From 49805aac59838b1fa6cdeb2a1120c7a80ca8bf67 Mon Sep 17 00:00:00 2001 From: flow-bot Date: Wed, 10 Jan 2024 17:01:35 +0000 Subject: [PATCH] Updates --- 404.html | 26 + CNAME | 1 + _src/cli/annotate-exports.md | 80 + _src/cli/coverage.md | 128 + _src/cli/index.md | 96 + _src/config/declarations.md | 59 + _src/config/ignore.md | 58 + _src/config/include.md | 33 + _src/config/index.md | 91 + _src/config/libs.md | 17 + _src/config/lints.md | 15 + _src/config/options.md | 630 + _src/config/untyped.md | 58 + _src/config/version.md | 31 + _src/declarations/index.md | 87 + _src/editors/emacs.md | 22 + _src/editors/index.md | 9 + _src/editors/sublime-text.md | 18 + _src/editors/vim.md | 156 + _src/editors/vscode.md | 20 + _src/editors/webstorm.md | 8 + _src/enums/defining-enums.md | 243 + _src/enums/enabling-enums.md | 57 + _src/enums/index.md | 145 + _src/enums/migrating-legacy-patterns.md | 224 + _src/enums/using-enums.md | 615 + _src/errors/index.md | 79 + _src/faq.md | 277 + _src/getting-started.md | 23 + _src/index.md | 13 + _src/install.md | 163 + _src/lang/annotation-requirement.md | 311 + _src/lang/depth-subtyping.md | 68 + _src/lang/lazy-modes.md | 67 + _src/lang/nominal-structural.md | 141 + _src/lang/refinements.md | 284 + _src/lang/subtypes.md | 148 + _src/lang/type-hierarchy.md | 122 + _src/lang/types-and-expressions.md | 101 + _src/lang/types-first.md | 254 + _src/lang/variables.md | 209 + _src/lang/variance.md | 144 + _src/lang/width-subtyping.md | 65 + _src/libdefs/creation.md | 199 + _src/libdefs/index.md | 46 + _src/linting/flowlint-comments.md | 82 + _src/linting/index.md | 80 + _src/linting/rule-reference.md | 232 + _src/react/components.md | 191 + _src/react/events.md | 68 + _src/react/hoc.md | 179 + _src/react/index.md | 33 + _src/react/multiplatform.md | 132 + _src/react/refs.md | 54 + _src/react/types.md | 308 + _src/strict/index.md | 58 + _src/tools/babel.md | 30 + _src/tools/eslint.md | 104 + _src/tools/flow-remove-types.md | 41 + _src/tools/index.md | 14 + _src/types/aliases.md | 89 + _src/types/any.md | 93 + _src/types/arrays.md | 266 + _src/types/casting.md | 148 + _src/types/classes.md | 391 + _src/types/comments.md | 115 + _src/types/conditional.md | 147 + _src/types/empty.md | 58 + _src/types/functions.md | 393 + _src/types/generators.md | 5 + _src/types/generics.md | 437 + _src/types/index.md | 42 + _src/types/indexed-access.md | 146 + _src/types/interfaces.md | 316 + _src/types/intersections.md | 247 + _src/types/literals.md | 45 + _src/types/mapped-types.md | 139 + _src/types/maybe.md | 79 + _src/types/mixed.md | 114 + _src/types/modules.md | 49 + _src/types/objects.md | 514 + _src/types/opaque-types.md | 159 + _src/types/primitives.md | 404 + _src/types/tuples.md | 259 + _src/types/type-guards.md | 222 + _src/types/typeof.md | 115 + _src/types/unions.md | 250 + _src/types/utilities.md | 771 + _src/usage.md | 88 + assets/css/styles.edb45c3d.css | 1 + ...dicon-b797181c93b3755f4fa1258a4cca14d4.ttf | Bin 0 -> 72504 bytes ...scode-ca5205105d042b2a09dc485fba0634be.gif | Bin 0 -> 676052 bytes assets/js/10.5cab9749.js | 1 + assets/js/1000.14e9de8a.js | 1 + assets/js/1049.9e530d57.js | 1 + assets/js/1065.a0dbdc0e.js | 181 + assets/js/1065.de3b9f15.js | 2 + assets/js/1065.de3b9f15.js.LICENSE.txt | 6 + assets/js/1086.14a78e6c.js | 1 + assets/js/1091.b8bfd1e4.js | 1 + assets/js/1105.80237606.js | 1 + assets/js/1109.53b35ea5.js | 1 + assets/js/1134.17105716.js | 2 + assets/js/1134.17105716.js.LICENSE.txt | 6 + assets/js/1134.63ddd0c7.js | 445 + assets/js/1147.5c68f082.js | 247 + assets/js/1147.9c78ae5a.js | 2 + assets/js/1147.9c78ae5a.js.LICENSE.txt | 6 + assets/js/1151.03a36ca2.js | 1 + assets/js/1156.13b411ab.js | 1370 + assets/js/1156.414b1ab6.js | 2 + assets/js/1156.414b1ab6.js.LICENSE.txt | 6 + assets/js/1209.76276011.js | 1 + assets/js/1217.6123c62f.js | 1 + assets/js/1259.b4096c55.js | 317 + assets/js/1259.ec012273.js | 2 + assets/js/1259.ec012273.js.LICENSE.txt | 6 + assets/js/1313.d10cc958.js | 1 + assets/js/1345.d7ea927e.js | 1 + assets/js/1448.3246558a.js | 2 + assets/js/1448.3246558a.js.LICENSE.txt | 6 + assets/js/1448.ee78432f.js | 187 + assets/js/1466.b69bd1b6.js | 1 + assets/js/1471.0d410d50.js | 2 + assets/js/1471.0d410d50.js.LICENSE.txt | 6 + assets/js/1471.f4935752.js | 93 + assets/js/1540.23466b6d.js | 1 + assets/js/1661.2e609aed.js | 1 + assets/js/168.4084be54.js | 1 + assets/js/1706.b21a58bf.js | 1 + assets/js/180.49ffb9d3.js | 372 + assets/js/180.f35ada22.js | 2 + assets/js/180.f35ada22.js.LICENSE.txt | 6 + assets/js/1848.6e365ebf.js | 1 + assets/js/1886.3930b16b.js | 575 + assets/js/1886.622d7f2a.js | 2 + assets/js/1886.622d7f2a.js.LICENSE.txt | 6 + assets/js/1908.2c382ba8.js | 1 + assets/js/1930.0b17c84b.js | 1 + assets/js/1958.d7cfea40.js | 1 + assets/js/1960.8eff0e2c.js | 406 + assets/js/1960.e580ef88.js | 2 + assets/js/1960.e580ef88.js.LICENSE.txt | 6 + assets/js/1961.00730df4.js | 894 + assets/js/1961.6af70c85.js | 2 + assets/js/1961.6af70c85.js.LICENSE.txt | 6 + assets/js/1984.9797305a.js | 1 + assets/js/1992.689143a6.js | 1 + assets/js/2040.39c04ae1.js | 1 + assets/js/2060.1ce6877c.js | 2 + assets/js/2060.1ce6877c.js.LICENSE.txt | 6 + assets/js/2060.b7f8986c.js | 133 + assets/js/2075.42cb52d9.js | 2 + assets/js/2075.42cb52d9.js.LICENSE.txt | 6 + assets/js/2075.50b99f89.js | 203 + assets/js/2108.c89cbfba.js | 1 + assets/js/2140.0307ae92.js | 2 + assets/js/2140.0307ae92.js.LICENSE.txt | 6 + assets/js/2140.45018a21.js | 264 + assets/js/2160.b1954ec2.js | 1 + assets/js/2175.a467d67a.js | 1 + assets/js/2240.a40b3926.js | 2 + assets/js/2240.a40b3926.js.LICENSE.txt | 6 + assets/js/2240.f7ab52d2.js | 486 + assets/js/2259.ff9afb23.js | 1 + assets/js/2378.08f000fc.js | 1 + assets/js/2394.d9de10ba.js | 1 + assets/js/249.b447d2e4.js | 2 + assets/js/249.b447d2e4.js.LICENSE.txt | 6 + assets/js/249.e91386e0.js | 227 + assets/js/2490.26bb2f27.js | 1 + assets/js/2524.7afc641b.js | 1 + assets/js/2554.0673177f.js | 1 + assets/js/2565.75cc8af7.js | 1 + assets/js/2571.0debfd3f.js | 2 + assets/js/2571.0debfd3f.js.LICENSE.txt | 6 + assets/js/2571.3e9b5346.js | 313 + assets/js/2601.785852cd.js | 1 + assets/js/2625.8dd63d43.js | 1 + assets/js/2638.edecc05b.js | 1 + assets/js/2657.35cf273e.js | 1 + assets/js/2798.15e85de8.js | 87 + assets/js/2798.58a5b297.js | 1 + assets/js/2814.5021f04e.js | 2 + assets/js/2814.5021f04e.js.LICENSE.txt | 6 + assets/js/2814.f576c6ab.js | 473 + assets/js/2837.c1fc15db.js | 1 + assets/js/2860.ccd1e606.js | 1 + assets/js/287.79aaf96f.js | 1 + assets/js/2886.f51502cb.js | 1 + assets/js/2892.f3674e45.js | 412 + assets/js/2892.fda2dc1b.js | 2 + assets/js/2892.fda2dc1b.js.LICENSE.txt | 6 + assets/js/2911.74ecabdf.js | 334 + assets/js/2911.c5e65e38.js | 2 + assets/js/2911.c5e65e38.js.LICENSE.txt | 10 + assets/js/2954.39c6182a.js | 2 + assets/js/2954.39c6182a.js.LICENSE.txt | 6 + assets/js/2954.c3c96925.js | 221 + assets/js/2974.5a120feb.js | 1 + assets/js/2975.1a577c1a.js | 1 + assets/js/3031.07faec4d.js | 1 + assets/js/3036.2817380a.js | 773 + assets/js/3036.cbfd34be.js | 2 + assets/js/3036.cbfd34be.js.LICENSE.txt | 6 + assets/js/3103.d424af1a.js | 1 + assets/js/3169.75d3a922.js | 1 + assets/js/3175.4623d4bd.js | 1 + assets/js/3271.c17eb19a.js | 1 + assets/js/3292.37fedcae.js | 1 + assets/js/3361.a09822ec.js | 1 + assets/js/3377.4e54056b.js | 1 + assets/js/3389.44c31390.js | 1 + assets/js/3397.d81097d9.js | 1 + assets/js/3418.fe6aa13b.js | 1 + assets/js/3426.7a8d681d.js | 1 + assets/js/3430.3a4d3a20.js | 1 + assets/js/3470.1f5577ea.js | 1 + assets/js/3482.f5cd412a.js | 1 + assets/js/3490.7c9a646b.js | 1 + assets/js/3525.b75f8037.js | 1 + assets/js/3539.8e41f2f8.js | 1 + assets/js/3584.b7d0f7d5.js | 1 + assets/js/3585.a0fdd2fe.js | 2 + assets/js/3585.a0fdd2fe.js.LICENSE.txt | 6 + assets/js/3585.bbfa65b6.js | 215 + assets/js/3590.380dfa4c.js | 1 + assets/js/3619.0c068931.js | 1 + assets/js/3632.512d8b35.js | 2 + assets/js/3632.512d8b35.js.LICENSE.txt | 6 + assets/js/3632.9f3e032d.js | 196 + assets/js/3682.78f44c31.js | 2 + assets/js/3682.78f44c31.js.LICENSE.txt | 6 + assets/js/3682.ac6ff8bf.js | 150 + assets/js/3698.df8b743d.js | 1 + assets/js/3760.313a31a1.js | 441 + assets/js/3760.70ebeccd.js | 2 + assets/js/3760.70ebeccd.js.LICENSE.txt | 6 + assets/js/3769.c0a74c56.js | 1 + assets/js/3808.9cc0ee5e.js | 1 + assets/js/3818.52e10916.js | 1 + assets/js/3835.10b298c2.js | 1 + assets/js/3847.5182a5d7.js | 1 + assets/js/385.c9dbdd20.js | 1 + assets/js/3851.4a9ebda0.js | 1 + assets/js/3898.a25efbec.js | 1 + assets/js/3903.181d5c6e.js | 1 + assets/js/3905.294ba8eb.js | 1 + assets/js/3919.0d67ae42.js | 209 + assets/js/3919.4432453c.js | 2 + assets/js/3919.4432453c.js.LICENSE.txt | 6 + assets/js/3939.7eaae777.js | 1 + assets/js/3997.380b744e.js | 1 + assets/js/4028.0f7be909.js | 2 + assets/js/4028.0f7be909.js.LICENSE.txt | 6 + assets/js/4028.7929b3ae.js | 270 + assets/js/4099.d293f4c8.js | 1 + assets/js/4129.b574e251.js | 2 + assets/js/4129.b574e251.js.LICENSE.txt | 6 + assets/js/4129.e15aae2a.js | 114 + assets/js/4132.cf0d068b.js | 1 + assets/js/4170.1dc21c14.js | 1 + assets/js/4188.752a68bf.js | 160 + assets/js/4188.c58fea82.js | 2 + assets/js/4188.c58fea82.js.LICENSE.txt | 6 + assets/js/4244.296d7732.js | 1 + assets/js/4314.ca390dec.js | 1 + assets/js/4340.d90bec6c.js | 1 + assets/js/4352.37108b95.js | 1 + assets/js/4367.f9d15811.js | 1 + assets/js/4368.6242d162.js | 2 + assets/js/4368.6242d162.js.LICENSE.txt | 6 + assets/js/4368.973542b9.js | 264 + assets/js/4370.b23daaa9.js | 1 + assets/js/4386.bfae335d.js | 338 + assets/js/4386.e5410b3b.js | 2 + assets/js/4386.e5410b3b.js.LICENSE.txt | 6 + assets/js/4392.88be3c03.js | 1 + assets/js/4397.c0bddcab.js | 1 + assets/js/4407.3aae7ab5.js | 909 + assets/js/4407.f24a98c4.js | 2 + assets/js/4407.f24a98c4.js.LICENSE.txt | 6 + assets/js/4422.1cb367d3.js | 1 + assets/js/4469.b5252e80.js | 1 + assets/js/4502.f5fec547.js | 1 + assets/js/4506.77a2991a.js | 1 + assets/js/4508.81b19c11.js | 1 + assets/js/4511.4e5e46a7.js | 1 + assets/js/4588.f2f9f239.js | 1 + assets/js/4702.38902698.js | 1 + assets/js/4721.175dbe5c.js | 1 + assets/js/4784.6b9d1e1e.js | 1 + assets/js/4840.4be9bbc8.js | 1 + assets/js/486.d9b07c81.js | 1 + assets/js/4860.a333a6da.js | 1 + assets/js/4896.a33bc4d6.js | 1 + assets/js/4902.57b8a462.js | 2 + assets/js/4902.57b8a462.js.LICENSE.txt | 6 + assets/js/4902.efb01a14.js | 126 + assets/js/4912.6e0d306b.js | 2 + assets/js/4912.6e0d306b.js.LICENSE.txt | 6 + assets/js/4912.dea0f1b5.js | 170 + assets/js/4946.53bdd182.js | 2 + assets/js/4946.53bdd182.js.LICENSE.txt | 6 + assets/js/4946.cfe74c4b.js | 515 + assets/js/4972.a00ed942.js | 1 + assets/js/4991.033580af.js | 1 + assets/js/5062.190662bd.js | 2 + assets/js/5062.190662bd.js.LICENSE.txt | 6 + assets/js/5062.d66ce501.js | 129 + assets/js/5097.c41b7b2f.js | 1 + assets/js/5131.8b42d5f9.js | 1 + assets/js/5172.55cc621c.js | 1 + assets/js/5215.9ac72533.js | 1 + assets/js/5221.d6f374a8.js | 1 + assets/js/5237.407b1995.js | 1 + assets/js/5239.5d7ca55a.js | 1 + assets/js/525.a08afd69.js | 2 + assets/js/525.a08afd69.js.LICENSE.txt | 6 + assets/js/525.fa3dba2f.js | 261 + assets/js/5288.bcdf8e6a.js | 2051 + assets/js/5288.fdc26891.js | 2 + assets/js/5288.fdc26891.js.LICENSE.txt | 6 + assets/js/529.44b442f7.js | 1 + assets/js/5316.f1f4648e.js | 1 + assets/js/5377.b89fc3f8.js | 2067 + assets/js/5377.e1e1a1eb.js | 2 + assets/js/5377.e1e1a1eb.js.LICENSE.txt | 6 + assets/js/5414.65f24c3a.js | 1 + assets/js/5501.b615e78d.js | 1 + assets/js/5562.cd4ead74.js | 1 + assets/js/5593.2e65fb56.js | 2 + assets/js/5593.2e65fb56.js.LICENSE.txt | 6 + assets/js/5593.71e13596.js | 186 + assets/js/5641.2eef5e08.js | 1 + assets/js/565.69ec915e.js | 1 + assets/js/5691.cef8c333.js | 1 + assets/js/5703.83ea00ab.js | 423 + assets/js/5703.b3646744.js | 2 + assets/js/5703.b3646744.js.LICENSE.txt | 6 + assets/js/5745.ffd36961.js | 1 + assets/js/5789.7ab12558.js | 1 + assets/js/5849.5c57243a.js | 2 + assets/js/5849.5c57243a.js.LICENSE.txt | 6 + assets/js/5849.97b6216c.js | 151 + assets/js/588.e5ea213f.js | 1 + assets/js/5880.095348fe.js | 686 + assets/js/5880.14f5a392.js | 2 + assets/js/5880.14f5a392.js.LICENSE.txt | 6 + assets/js/5898.367d7429.js | 1 + assets/js/5962.1b154b2a.js | 212 + assets/js/5962.cf4e9fcb.js | 2 + assets/js/5962.cf4e9fcb.js.LICENSE.txt | 6 + assets/js/5975.ba58926b.js | 1 + assets/js/6020.fd5de0c7.js | 1 + assets/js/6065.9ee332e5.js | 1 + assets/js/6081.624ea89b.js | 1 + assets/js/6082.4af8a070.js | 2 + assets/js/6082.4af8a070.js.LICENSE.txt | 6 + assets/js/6082.953833a2.js | 264 + assets/js/6094.dd70aa33.js | 1 + assets/js/6104.007d544c.js | 1 + assets/js/6136.dfc4bfad.js | 1 + assets/js/6241.2e9f5bdf.js | 2 + assets/js/6241.2e9f5bdf.js.LICENSE.txt | 6 + assets/js/6241.d8cb181b.js | 229 + assets/js/6272.f9b3cdc6.js | 1 + assets/js/6290.068917a8.js | 1 + assets/js/6316.157c4414.js | 1355 + assets/js/6316.3a9fab01.js | 1 + assets/js/6329.369e2ba8.js | 1 + assets/js/6393.7cb3deb5.js | 1 + assets/js/64.d7c257b8.js | 1 + assets/js/6423.a0154131.js | 2 + assets/js/6423.a0154131.js.LICENSE.txt | 6 + assets/js/6423.b6271fc7.js | 281 + assets/js/6424.3a507a7e.js | 2 + assets/js/6424.3a507a7e.js.LICENSE.txt | 6 + assets/js/6424.41d2a4c6.js | 544 + assets/js/6432.8f67f499.js | 1 + assets/js/6449.3e8636c3.js | 2 + assets/js/6449.3e8636c3.js.LICENSE.txt | 6 + assets/js/6449.fbe95a4a.js | 825 + assets/js/6470.33bec0d3.js | 1 + assets/js/6479.5de341cd.js | 1 + assets/js/6489.897c8385.js | 2 + assets/js/6489.897c8385.js.LICENSE.txt | 6 + assets/js/6489.c01d9090.js | 160 + assets/js/650.f276d9bc.js | 1 + assets/js/6522.00dd2490.js | 1 + assets/js/6567.031c15cf.js | 1 + assets/js/6586.89a16f93.js | 1 + assets/js/6587.11bbb595.js | 433 + assets/js/6587.1466021b.js | 2 + assets/js/6587.1466021b.js.LICENSE.txt | 6 + assets/js/6618.901a3e8a.js | 1 + assets/js/6641.0726fefc.js | 1 + assets/js/665.9d4b2055.js | 2 + assets/js/665.9d4b2055.js.LICENSE.txt | 6 + assets/js/665.ea3dec56.js | 2627 + assets/js/6686.555ef1a4.js | 1 + assets/js/6717.338ea325.js | 358 + assets/js/6717.86d17675.js | 2 + assets/js/6717.86d17675.js.LICENSE.txt | 6 + assets/js/6778.a7f9f534.js | 1 + assets/js/6780.e538d469.js | 1 + assets/js/6798.a0a87077.js | 1 + assets/js/6894.61d518cf.js | 2 + assets/js/6894.61d518cf.js.LICENSE.txt | 64 + assets/js/6923.4bd4b036.js | 1 + assets/js/6943.36e5dcf5.js | 1 + assets/js/6945.7839b727.js | 1 + assets/js/6956.75567b7a.js | 1 + assets/js/6990.60c608ae.js | 1 + assets/js/7043.6c28e0ba.js | 2 + assets/js/7043.6c28e0ba.js.LICENSE.txt | 6 + assets/js/7043.c99b557e.js | 240 + assets/js/7085.2da88da6.js | 1 + assets/js/7131.af65a3d6.js | 2 + assets/js/7131.af65a3d6.js.LICENSE.txt | 6 + assets/js/7131.ef199ac3.js | 134 + assets/js/7210.dccd8a9d.js | 1 + assets/js/7216.82683887.js | 1 + assets/js/728.1f188d20.js | 1 + assets/js/7287.67d8151a.js | 290 + assets/js/7287.94bb8d3f.js | 2 + assets/js/7287.94bb8d3f.js.LICENSE.txt | 6 + assets/js/7322.62a440b9.js | 1 + assets/js/7324.55dbe265.js | 1 + assets/js/7357.60f17144.js | 1 + assets/js/7454.c4cbd7ac.js | 1 + assets/js/7466.0592b0a0.js | 1 + assets/js/7473.75d32f9d.js | 1 + assets/js/7493.35ce4f7a.js | 1 + assets/js/7520.851d616b.js | 1 + assets/js/7521.710cbe18.js | 1 + assets/js/753.c21fceb8.js | 1 + assets/js/7550.c71fbb00.js | 1 + assets/js/7562.8aeb83c2.js | 2 + assets/js/7562.8aeb83c2.js.LICENSE.txt | 6 + assets/js/7562.f9821228.js | 252 + assets/js/7637.a10259f0.js | 2 + assets/js/7637.a10259f0.js.LICENSE.txt | 6 + assets/js/7637.aff67a32.js | 251 + assets/js/7667.b9d7153f.js | 1 + assets/js/7678.09b0f00f.js | 1 + assets/js/7724.5b44829a.js | 41607 ++++ assets/js/7724.ccc7d3de.js | 2 + assets/js/7724.ccc7d3de.js.LICENSE.txt | 9 + assets/js/7758.dda2fbc1.js | 1 + assets/js/776.52166cee.js | 1 + assets/js/7778.70985237.js | 2 + assets/js/7778.70985237.js.LICENSE.txt | 6 + assets/js/7778.ba66a016.js | 837 + assets/js/7835.3b3c09d8.js | 490 + assets/js/7835.fed695f5.js | 2 + assets/js/7835.fed695f5.js.LICENSE.txt | 6 + assets/js/7966.b4ef84f5.js | 1 + assets/js/7997.402d61b8.js | 1 + assets/js/8002.799b71bc.js | 2 + assets/js/8002.799b71bc.js.LICENSE.txt | 8 + assets/js/8017.5a10ad1f.js | 1 + assets/js/8027.0a3be280.js | 1 + assets/js/8063.96e4bd2b.js | 1 + assets/js/8070.b2932ef2.js | 2 + assets/js/8070.b2932ef2.js.LICENSE.txt | 6 + assets/js/8070.e9befa07.js | 618 + assets/js/8071.e0b453f4.js | 1 + assets/js/8073.856ade5f.js | 1 + assets/js/8084.1629b62c.js | 2 + assets/js/8084.1629b62c.js.LICENSE.txt | 6 + assets/js/8084.1c54978e.js | 177 + assets/js/8118.3febc31b.js | 1 + assets/js/813.efa2999f.js | 1 + assets/js/8180.71c4e4e9.js | 563 + assets/js/8180.b2381f36.js | 2 + assets/js/8180.b2381f36.js.LICENSE.txt | 6 + assets/js/836.b690b489.js | 1 + assets/js/8396.b75cac9d.js | 1 + assets/js/8401.8631a32b.js | 1130 + assets/js/8401.ba60f1a3.js | 1 + assets/js/8424.591b7eae.js | 342 + assets/js/8424.b47120a1.js | 2 + assets/js/8424.b47120a1.js.LICENSE.txt | 6 + assets/js/848.6ccac2fb.js | 2 + assets/js/848.6ccac2fb.js.LICENSE.txt | 6 + assets/js/848.78fe8e26.js | 1333 + assets/js/8480.07b41f57.js | 1 + assets/js/8506.dc7fd971.js | 1 + assets/js/8528.45e71d7f.js | 1 + assets/js/854.8e35156d.js | 2 + assets/js/854.8e35156d.js.LICENSE.txt | 6 + assets/js/854.9020f381.js | 213 + assets/js/8641.3df11c4b.js | 1 + assets/js/8670.266e1bf4.js | 243 + assets/js/8670.522cc23d.js | 2 + assets/js/8670.522cc23d.js.LICENSE.txt | 6 + assets/js/8712.1d41ff09.js | 1 + assets/js/8713.c204a0f9.js | 1 + assets/js/8715.172094c4.js | 2 + assets/js/8715.172094c4.js.LICENSE.txt | 6 + assets/js/8715.8b394ad8.js | 356 + assets/js/8719.644b750e.js | 2 + assets/js/8719.644b750e.js.LICENSE.txt | 6 + assets/js/8719.ec1724e6.js | 339 + assets/js/8748.af6aff9f.js | 1 + assets/js/8757.e063498f.js | 1 + assets/js/8819.8f01a10a.js | 1 + assets/js/8880.0e52c112.js | 1 + assets/js/8894.52aa9cfa.js | 1 + assets/js/8899.b1fe8204.js | 1 + assets/js/8906.90c5de7a.js | 2 + assets/js/8906.90c5de7a.js.LICENSE.txt | 6 + assets/js/8906.ef7cf848.js | 229 + assets/js/8946.a7036c9d.js | 2 + assets/js/8946.a7036c9d.js.LICENSE.txt | 6 + assets/js/8946.a960f7e2.js | 76 + assets/js/8985.e67ce2b4.js | 1 + assets/js/908.7a4eb83a.js | 1 + assets/js/911.8605976d.js | 176 + assets/js/911.cb5ea3c2.js | 2 + assets/js/911.cb5ea3c2.js.LICENSE.txt | 6 + assets/js/9172.7f698d9b.js | 2 + assets/js/9172.7f698d9b.js.LICENSE.txt | 1 + assets/js/9206.16398572.js | 1 + assets/js/9225.872a1216.js | 1 + assets/js/9277.9908b298.js | 1 + assets/js/9307.228f79a3.js | 1 + assets/js/931.d69b8a0f.js | 1 + assets/js/9337.6c20da2f.js | 1 + assets/js/9343.60b6adf7.js | 289 + assets/js/9343.bdc8d465.js | 2 + assets/js/9343.bdc8d465.js.LICENSE.txt | 6 + assets/js/9390.f01d7d65.js | 1 + assets/js/9398.016daacb.js | 396 + assets/js/9398.a4b8a2d7.js | 2 + assets/js/9398.a4b8a2d7.js.LICENSE.txt | 6 + assets/js/9400.16453223.js | 301 + assets/js/9400.1d5fbae2.js | 2 + assets/js/9400.1d5fbae2.js.LICENSE.txt | 6 + assets/js/9466.2e6a88ec.js | 1 + assets/js/9487.c37004d9.js | 7371 + assets/js/9487.c9fbf014.js | 1 + assets/js/9506.368ed619.js | 1 + assets/js/9537.02320fdb.js | 2 + assets/js/9537.02320fdb.js.LICENSE.txt | 6 + assets/js/9537.18e73c82.js | 207 + assets/js/9541.4560e197.js | 1 + assets/js/957.de39d01c.js | 1 + assets/js/9607.622810b9.js | 2 + assets/js/9607.622810b9.js.LICENSE.txt | 6 + assets/js/9647.b1861c7a.js | 1 + assets/js/9684.19d777f5.js | 2 + assets/js/9684.19d777f5.js.LICENSE.txt | 6 + assets/js/9684.2bbdb36e.js | 463 + assets/js/9701.b0601203.js | 1 + assets/js/972.de4b56d9.js | 1 + assets/js/9837.a4f6fb00.js | 1 + assets/js/9850.0f22bc6f.js | 1 + assets/js/9907.6f8b4686.js | 383 + assets/js/9907.ddc37b5f.js | 2 + assets/js/9907.ddc37b5f.js.LICENSE.txt | 6 + assets/js/996.a97ccabb.js | 2 + assets/js/996.a97ccabb.js.LICENSE.txt | 6 + assets/js/996.b4571109.js | 862 + assets/js/9963.4a87e5a1.js | 1 + assets/js/9993.dfbc0bca.js | 1 + assets/js/common.1e30ee28.js | 1 + assets/js/main.2b7a990f.js | 2 + assets/js/main.2b7a990f.js.LICENSE.txt | 63 + assets/js/runtime~main.2221b8d0.js | 1 + blog/2015/02/18/Import-Types/index.html | 26 + blog/2015/02/18/Typecasts/index.html | 26 + blog/2015/02/20/Flow-Comments/index.html | 26 + .../03/12/Bounded-Polymorphism/index.html | 26 + blog/2015/07/03/Disjoint-Unions/index.html | 41 + blog/2015/07/29/Version-0.14.0/index.html | 26 + blog/2015/09/10/Version-0.15.0/index.html | 26 + blog/2015/09/22/Version-0.16.0/index.html | 26 + blog/2015/10/07/Version-0.17.0/index.html | 26 + blog/2015/11/09/Generators/index.html | 26 + blog/2015/12/01/Version-0.19.0/index.html | 48 + blog/2016/02/02/Version-0.21.0/index.html | 46 + .../07/01/New-Unions-Intersections/index.html | 64 + blog/2016/08/01/Windows-Support/index.html | 55 + blog/2016/10/04/Property-Variance/index.html | 77 + blog/2016/10/13/Flow-Typed/index.html | 98 + .../07/Strict-Function-Call-Arity/index.html | 68 + blog/2017/07/27/Opaque-Types/index.html | 27 + blog/2017/08/04/Linting-in-Flow/index.html | 26 + .../index.html | 28 + .../index.html | 31 + .../03/Flow-Support-in-Recompose/index.html | 29 + .../index.html | 29 + .../index.html | 27 + .../10/18/Exact-Objects-By-Default/index.html | 26 + .../index.html | 27 + .../12/13/React-Abstract-Component/index.html | 27 + .../20/Changes-to-Object-Spreads/index.html | 26 + .../index.html | 26 + .../Live-Flow-Errors-in-your-IDE/index.html | 26 + .../index.html | 26 + .../2/8/A-More-Responsive-Flow/index.html | 26 + .../4/9/Upgrading-Flow-Codebases/index.html | 26 + .../index.html | 26 + .../Improvements-to-Flow-in-2019/index.html | 26 + .../09/What-were-building-in-2020/index.html | 26 + .../index.html | 26 + .../index.html | 26 + .../index.html | 26 + .../index.html | 26 + .../index.html | 26 + .../Sound-Typing-for-this-in-Flow/index.html | 26 + .../index.html | 26 + .../09/13/Introducing-Flow-Enums/index.html | 26 + .../TypeScript-Enums-vs-Flow-Enums/index.html | 26 + .../index.html | 26 + .../index.html | 26 + .../index.html | 26 + .../index.html | 26 + .../01/17/Local-Type-Inference/index.html | 26 + .../index.html | 26 + .../index.html | 27 + blog/2023/04/10/Unused-Promise/index.html | 28 + .../index.html | 26 + blog/archive/index.html | 26 + blog/atom.xml | 913 + blog/index.html | 97 + blog/page/2/index.html | 26 + blog/rss.xml | 753 + cd3c4b260f85aac6f600f3c017046ef9.wasm | Bin 0 -> 471543 bytes css.worker.js | 49832 ++++ css.worker.js.LICENSE.txt | 6 + editor.worker.js | 12963 ++ en/docs/cli/annotate-exports/index.html | 53 + en/docs/cli/coverage/index.html | 60 + en/docs/cli/index.html | 33 + en/docs/config/declarations/index.html | 41 + en/docs/config/ignore/index.html | 36 + en/docs/config/include/index.html | 33 + en/docs/config/index.html | 38 + en/docs/config/libs/index.html | 35 + en/docs/config/lints/index.html | 27 + en/docs/config/options/index.html | 130 + en/docs/config/untyped/index.html | 39 + en/docs/config/version/index.html | 34 + en/docs/declarations/index.html | 48 + en/docs/editors/emacs/index.html | 26 + en/docs/editors/index.html | 26 + en/docs/editors/sublime-text/index.html | 26 + en/docs/editors/vim/index.html | 26 + en/docs/editors/vscode/index.html | 28 + en/docs/editors/webstorm/index.html | 26 + en/docs/enums/defining-enums/index.html | 52 + en/docs/enums/enabling-enums/index.html | 40 + en/docs/enums/index.html | 32 + .../migrating-legacy-patterns/index.html | 37 + en/docs/enums/using-enums/index.html | 53 + en/docs/errors/index.html | 32 + en/docs/faq/index.html | 51 + en/docs/getting-started/index.html | 31 + en/docs/index.html | 26 + en/docs/install/index.html | 43 + .../lang/annotation-requirement/index.html | 101 + en/docs/lang/depth-subtyping/index.html | 39 + en/docs/lang/lazy-modes/index.html | 46 + en/docs/lang/nominal-structural/index.html | 39 + en/docs/lang/refinements/index.html | 56 + en/docs/lang/subtypes/index.html | 71 + en/docs/lang/type-hierarchy/index.html | 28 + en/docs/lang/types-and-expressions/index.html | 55 + en/docs/lang/types-first/index.html | 80 + en/docs/lang/variables/index.html | 72 + en/docs/lang/variance/index.html | 63 + en/docs/lang/width-subtyping/index.html | 37 + en/docs/libdefs/creation/index.html | 70 + en/docs/libdefs/index.html | 47 + en/docs/linting/flowlint-comments/index.html | 39 + en/docs/linting/index.html | 39 + en/docs/linting/rule-reference/index.html | 48 + en/docs/react/components/index.html | 74 + en/docs/react/events/index.html | 42 + en/docs/react/hoc/index.html | 66 + en/docs/react/index.html | 35 + en/docs/react/multiplatform/index.html | 26 + en/docs/react/refs/index.html | 35 + en/docs/react/types/index.html | 92 + en/docs/strict/index.html | 27 + en/docs/tools/babel/index.html | 29 + en/docs/tools/eslint/index.html | 35 + en/docs/tools/flow-remove-types/index.html | 32 + en/docs/tools/index.html | 26 + en/docs/types/aliases/index.html | 33 + en/docs/types/any/index.html | 39 + en/docs/types/arrays/index.html | 71 + en/docs/types/casting/index.html | 51 + en/docs/types/classes/index.html | 66 + en/docs/types/comments/index.html | 39 + en/docs/types/conditional/index.html | 35 + en/docs/types/empty/index.html | 32 + en/docs/types/functions/index.html | 73 + en/docs/types/generators/index.html | 26 + en/docs/types/generics/index.html | 90 + en/docs/types/index.html | 31 + en/docs/types/indexed-access/index.html | 42 + en/docs/types/interfaces/index.html | 65 + en/docs/types/intersections/index.html | 79 + en/docs/types/literals/index.html | 32 + en/docs/types/mapped-types/index.html | 38 + en/docs/types/maybe/index.html | 35 + en/docs/types/mixed/index.html | 38 + en/docs/types/modules/index.html | 28 + en/docs/types/objects/index.html | 92 + en/docs/types/opaque-types/index.html | 42 + en/docs/types/primitives/index.html | 77 + en/docs/types/tuples/index.html | 52 + en/docs/types/type-guards/index.html | 36 + en/docs/types/typeof/index.html | 46 + en/docs/types/unions/index.html | 63 + en/docs/types/utilities/index.html | 116 + en/docs/usage/index.html | 26 + flow/master/flow.js | 52454 +++++ flow/master/flowlib/APACHE_LICENSE | 55 + flow/master/flowlib/bom.js | 2440 + flow/master/flowlib/core.js | 2799 + flow/master/flowlib/cssom.js | 574 + flow/master/flowlib/dom.js | 4582 + flow/master/flowlib/indexeddb.js | 149 + flow/master/flowlib/intl.js | 231 + flow/master/flowlib/node.js | 3374 + flow/master/flowlib/react-dom.js | 694 + flow/master/flowlib/react.js | 685 + flow/master/flowlib/serviceworkers.js | 237 + flow/master/flowlib/streams.js | 141 + flow/master/flowlib/webassembly.js | 104 + html.worker.js | 29059 +++ html.worker.js.LICENSE.txt | 6 + img/favicon.ico | Bin 0 -> 3626 bytes img/favicon.png | Bin 0 -> 1347 bytes img/featurette-bigger.gif | Bin 0 -> 67115 bytes img/featurette-confidently.gif | Bin 0 -> 33996 bytes img/featurette-faster.gif | Bin 0 -> 37867 bytes img/featurette-smarter.gif | Bin 0 -> 36131 bytes img/flow_for_vscode.gif | Bin 0 -> 676052 bytes img/icon-github.svg | 3 + img/icon-stackoverflow.svg | 6 + img/icon-twitter.svg | 3 + img/logo.svg | 15 + img/oss_logo.png | Bin 0 -> 4728 bytes index.html | 26 + json.worker.js | 20274 ++ json.worker.js.LICENSE.txt | 6 + opensearch.xml | 11 + search/index.html | 26 + sitemap.xml | 1 + try/index.html | 26 + ts.worker.js | 174667 +++++++++++++++ ts.worker.js.LICENSE.txt | 21 + 758 files changed, 463980 insertions(+) create mode 100644 404.html create mode 100644 CNAME create mode 100644 _src/cli/annotate-exports.md create mode 100644 _src/cli/coverage.md create mode 100644 _src/cli/index.md create mode 100644 _src/config/declarations.md create mode 100644 _src/config/ignore.md create mode 100644 _src/config/include.md create mode 100644 _src/config/index.md create mode 100644 _src/config/libs.md create mode 100644 _src/config/lints.md create mode 100644 _src/config/options.md create mode 100644 _src/config/untyped.md create mode 100644 _src/config/version.md create mode 100644 _src/declarations/index.md create mode 100644 _src/editors/emacs.md create mode 100644 _src/editors/index.md create mode 100644 _src/editors/sublime-text.md create mode 100644 _src/editors/vim.md create mode 100644 _src/editors/vscode.md create mode 100644 _src/editors/webstorm.md create mode 100644 _src/enums/defining-enums.md create mode 100644 _src/enums/enabling-enums.md create mode 100644 _src/enums/index.md create mode 100644 _src/enums/migrating-legacy-patterns.md create mode 100644 _src/enums/using-enums.md create mode 100644 _src/errors/index.md create mode 100644 _src/faq.md create mode 100644 _src/getting-started.md create mode 100644 _src/index.md create mode 100644 _src/install.md create mode 100644 _src/lang/annotation-requirement.md create mode 100644 _src/lang/depth-subtyping.md create mode 100644 _src/lang/lazy-modes.md create mode 100644 _src/lang/nominal-structural.md create mode 100644 _src/lang/refinements.md create mode 100644 _src/lang/subtypes.md create mode 100644 _src/lang/type-hierarchy.md create mode 100644 _src/lang/types-and-expressions.md create mode 100644 _src/lang/types-first.md create mode 100644 _src/lang/variables.md create mode 100644 _src/lang/variance.md create mode 100644 _src/lang/width-subtyping.md create mode 100644 _src/libdefs/creation.md create mode 100644 _src/libdefs/index.md create mode 100644 _src/linting/flowlint-comments.md create mode 100644 _src/linting/index.md create mode 100644 _src/linting/rule-reference.md create mode 100644 _src/react/components.md create mode 100644 _src/react/events.md create mode 100644 _src/react/hoc.md create mode 100644 _src/react/index.md create mode 100644 _src/react/multiplatform.md create mode 100644 _src/react/refs.md create mode 100644 _src/react/types.md create mode 100644 _src/strict/index.md create mode 100644 _src/tools/babel.md create mode 100644 _src/tools/eslint.md create mode 100644 _src/tools/flow-remove-types.md create mode 100644 _src/tools/index.md create mode 100644 _src/types/aliases.md create mode 100644 _src/types/any.md create mode 100644 _src/types/arrays.md create mode 100644 _src/types/casting.md create mode 100644 _src/types/classes.md create mode 100644 _src/types/comments.md create mode 100644 _src/types/conditional.md create mode 100644 _src/types/empty.md create mode 100644 _src/types/functions.md create mode 100644 _src/types/generators.md create mode 100644 _src/types/generics.md create mode 100644 _src/types/index.md create mode 100644 _src/types/indexed-access.md create mode 100644 _src/types/interfaces.md create mode 100644 _src/types/intersections.md create mode 100644 _src/types/literals.md create mode 100644 _src/types/mapped-types.md create mode 100644 _src/types/maybe.md create mode 100644 _src/types/mixed.md create mode 100644 _src/types/modules.md create mode 100644 _src/types/objects.md create mode 100644 _src/types/opaque-types.md create mode 100644 _src/types/primitives.md create mode 100644 _src/types/tuples.md create mode 100644 _src/types/type-guards.md create mode 100644 _src/types/typeof.md create mode 100644 _src/types/unions.md create mode 100644 _src/types/utilities.md create mode 100644 _src/usage.md create mode 100644 assets/css/styles.edb45c3d.css create mode 100644 assets/fonts/codicon-b797181c93b3755f4fa1258a4cca14d4.ttf create mode 100644 assets/images/flow_for_vscode-ca5205105d042b2a09dc485fba0634be.gif create mode 100644 assets/js/10.5cab9749.js create mode 100644 assets/js/1000.14e9de8a.js create mode 100644 assets/js/1049.9e530d57.js create mode 100644 assets/js/1065.a0dbdc0e.js create mode 100644 assets/js/1065.de3b9f15.js create mode 100644 assets/js/1065.de3b9f15.js.LICENSE.txt create mode 100644 assets/js/1086.14a78e6c.js create mode 100644 assets/js/1091.b8bfd1e4.js create mode 100644 assets/js/1105.80237606.js create mode 100644 assets/js/1109.53b35ea5.js create mode 100644 assets/js/1134.17105716.js create mode 100644 assets/js/1134.17105716.js.LICENSE.txt create mode 100644 assets/js/1134.63ddd0c7.js create mode 100644 assets/js/1147.5c68f082.js create mode 100644 assets/js/1147.9c78ae5a.js create mode 100644 assets/js/1147.9c78ae5a.js.LICENSE.txt create mode 100644 assets/js/1151.03a36ca2.js create mode 100644 assets/js/1156.13b411ab.js create mode 100644 assets/js/1156.414b1ab6.js create mode 100644 assets/js/1156.414b1ab6.js.LICENSE.txt create mode 100644 assets/js/1209.76276011.js create mode 100644 assets/js/1217.6123c62f.js create mode 100644 assets/js/1259.b4096c55.js create mode 100644 assets/js/1259.ec012273.js create mode 100644 assets/js/1259.ec012273.js.LICENSE.txt create mode 100644 assets/js/1313.d10cc958.js create mode 100644 assets/js/1345.d7ea927e.js create mode 100644 assets/js/1448.3246558a.js create mode 100644 assets/js/1448.3246558a.js.LICENSE.txt create mode 100644 assets/js/1448.ee78432f.js create mode 100644 assets/js/1466.b69bd1b6.js create mode 100644 assets/js/1471.0d410d50.js create mode 100644 assets/js/1471.0d410d50.js.LICENSE.txt create mode 100644 assets/js/1471.f4935752.js create mode 100644 assets/js/1540.23466b6d.js create mode 100644 assets/js/1661.2e609aed.js create mode 100644 assets/js/168.4084be54.js create mode 100644 assets/js/1706.b21a58bf.js create mode 100644 assets/js/180.49ffb9d3.js create mode 100644 assets/js/180.f35ada22.js create mode 100644 assets/js/180.f35ada22.js.LICENSE.txt create mode 100644 assets/js/1848.6e365ebf.js create mode 100644 assets/js/1886.3930b16b.js create mode 100644 assets/js/1886.622d7f2a.js create mode 100644 assets/js/1886.622d7f2a.js.LICENSE.txt create mode 100644 assets/js/1908.2c382ba8.js create mode 100644 assets/js/1930.0b17c84b.js create mode 100644 assets/js/1958.d7cfea40.js create mode 100644 assets/js/1960.8eff0e2c.js create mode 100644 assets/js/1960.e580ef88.js create mode 100644 assets/js/1960.e580ef88.js.LICENSE.txt create mode 100644 assets/js/1961.00730df4.js create mode 100644 assets/js/1961.6af70c85.js create mode 100644 assets/js/1961.6af70c85.js.LICENSE.txt create mode 100644 assets/js/1984.9797305a.js create mode 100644 assets/js/1992.689143a6.js create mode 100644 assets/js/2040.39c04ae1.js create mode 100644 assets/js/2060.1ce6877c.js create mode 100644 assets/js/2060.1ce6877c.js.LICENSE.txt create mode 100644 assets/js/2060.b7f8986c.js create mode 100644 assets/js/2075.42cb52d9.js create mode 100644 assets/js/2075.42cb52d9.js.LICENSE.txt create mode 100644 assets/js/2075.50b99f89.js create mode 100644 assets/js/2108.c89cbfba.js create mode 100644 assets/js/2140.0307ae92.js create mode 100644 assets/js/2140.0307ae92.js.LICENSE.txt create mode 100644 assets/js/2140.45018a21.js create mode 100644 assets/js/2160.b1954ec2.js create mode 100644 assets/js/2175.a467d67a.js create mode 100644 assets/js/2240.a40b3926.js create mode 100644 assets/js/2240.a40b3926.js.LICENSE.txt create mode 100644 assets/js/2240.f7ab52d2.js create mode 100644 assets/js/2259.ff9afb23.js create mode 100644 assets/js/2378.08f000fc.js create mode 100644 assets/js/2394.d9de10ba.js create mode 100644 assets/js/249.b447d2e4.js create mode 100644 assets/js/249.b447d2e4.js.LICENSE.txt create mode 100644 assets/js/249.e91386e0.js create mode 100644 assets/js/2490.26bb2f27.js create mode 100644 assets/js/2524.7afc641b.js create mode 100644 assets/js/2554.0673177f.js create mode 100644 assets/js/2565.75cc8af7.js create mode 100644 assets/js/2571.0debfd3f.js create mode 100644 assets/js/2571.0debfd3f.js.LICENSE.txt create mode 100644 assets/js/2571.3e9b5346.js create mode 100644 assets/js/2601.785852cd.js create mode 100644 assets/js/2625.8dd63d43.js create mode 100644 assets/js/2638.edecc05b.js create mode 100644 assets/js/2657.35cf273e.js create mode 100644 assets/js/2798.15e85de8.js create mode 100644 assets/js/2798.58a5b297.js create mode 100644 assets/js/2814.5021f04e.js create mode 100644 assets/js/2814.5021f04e.js.LICENSE.txt create mode 100644 assets/js/2814.f576c6ab.js create mode 100644 assets/js/2837.c1fc15db.js create mode 100644 assets/js/2860.ccd1e606.js create mode 100644 assets/js/287.79aaf96f.js create mode 100644 assets/js/2886.f51502cb.js create mode 100644 assets/js/2892.f3674e45.js create mode 100644 assets/js/2892.fda2dc1b.js create mode 100644 assets/js/2892.fda2dc1b.js.LICENSE.txt create mode 100644 assets/js/2911.74ecabdf.js create mode 100644 assets/js/2911.c5e65e38.js create mode 100644 assets/js/2911.c5e65e38.js.LICENSE.txt create mode 100644 assets/js/2954.39c6182a.js create mode 100644 assets/js/2954.39c6182a.js.LICENSE.txt create mode 100644 assets/js/2954.c3c96925.js create mode 100644 assets/js/2974.5a120feb.js create mode 100644 assets/js/2975.1a577c1a.js create mode 100644 assets/js/3031.07faec4d.js create mode 100644 assets/js/3036.2817380a.js create mode 100644 assets/js/3036.cbfd34be.js create mode 100644 assets/js/3036.cbfd34be.js.LICENSE.txt create mode 100644 assets/js/3103.d424af1a.js create mode 100644 assets/js/3169.75d3a922.js create mode 100644 assets/js/3175.4623d4bd.js create mode 100644 assets/js/3271.c17eb19a.js create mode 100644 assets/js/3292.37fedcae.js create mode 100644 assets/js/3361.a09822ec.js create mode 100644 assets/js/3377.4e54056b.js create mode 100644 assets/js/3389.44c31390.js create mode 100644 assets/js/3397.d81097d9.js create mode 100644 assets/js/3418.fe6aa13b.js create mode 100644 assets/js/3426.7a8d681d.js create mode 100644 assets/js/3430.3a4d3a20.js create mode 100644 assets/js/3470.1f5577ea.js create mode 100644 assets/js/3482.f5cd412a.js create mode 100644 assets/js/3490.7c9a646b.js create mode 100644 assets/js/3525.b75f8037.js create mode 100644 assets/js/3539.8e41f2f8.js create mode 100644 assets/js/3584.b7d0f7d5.js create mode 100644 assets/js/3585.a0fdd2fe.js create mode 100644 assets/js/3585.a0fdd2fe.js.LICENSE.txt create mode 100644 assets/js/3585.bbfa65b6.js create mode 100644 assets/js/3590.380dfa4c.js create mode 100644 assets/js/3619.0c068931.js create mode 100644 assets/js/3632.512d8b35.js create mode 100644 assets/js/3632.512d8b35.js.LICENSE.txt create mode 100644 assets/js/3632.9f3e032d.js create mode 100644 assets/js/3682.78f44c31.js create mode 100644 assets/js/3682.78f44c31.js.LICENSE.txt create mode 100644 assets/js/3682.ac6ff8bf.js create mode 100644 assets/js/3698.df8b743d.js create mode 100644 assets/js/3760.313a31a1.js create mode 100644 assets/js/3760.70ebeccd.js create mode 100644 assets/js/3760.70ebeccd.js.LICENSE.txt create mode 100644 assets/js/3769.c0a74c56.js create mode 100644 assets/js/3808.9cc0ee5e.js create mode 100644 assets/js/3818.52e10916.js create mode 100644 assets/js/3835.10b298c2.js create mode 100644 assets/js/3847.5182a5d7.js create mode 100644 assets/js/385.c9dbdd20.js create mode 100644 assets/js/3851.4a9ebda0.js create mode 100644 assets/js/3898.a25efbec.js create mode 100644 assets/js/3903.181d5c6e.js create mode 100644 assets/js/3905.294ba8eb.js create mode 100644 assets/js/3919.0d67ae42.js create mode 100644 assets/js/3919.4432453c.js create mode 100644 assets/js/3919.4432453c.js.LICENSE.txt create mode 100644 assets/js/3939.7eaae777.js create mode 100644 assets/js/3997.380b744e.js create mode 100644 assets/js/4028.0f7be909.js create mode 100644 assets/js/4028.0f7be909.js.LICENSE.txt create mode 100644 assets/js/4028.7929b3ae.js create mode 100644 assets/js/4099.d293f4c8.js create mode 100644 assets/js/4129.b574e251.js create mode 100644 assets/js/4129.b574e251.js.LICENSE.txt create mode 100644 assets/js/4129.e15aae2a.js create mode 100644 assets/js/4132.cf0d068b.js create mode 100644 assets/js/4170.1dc21c14.js create mode 100644 assets/js/4188.752a68bf.js create mode 100644 assets/js/4188.c58fea82.js create mode 100644 assets/js/4188.c58fea82.js.LICENSE.txt create mode 100644 assets/js/4244.296d7732.js create mode 100644 assets/js/4314.ca390dec.js create mode 100644 assets/js/4340.d90bec6c.js create mode 100644 assets/js/4352.37108b95.js create mode 100644 assets/js/4367.f9d15811.js create mode 100644 assets/js/4368.6242d162.js create mode 100644 assets/js/4368.6242d162.js.LICENSE.txt create mode 100644 assets/js/4368.973542b9.js create mode 100644 assets/js/4370.b23daaa9.js create mode 100644 assets/js/4386.bfae335d.js create mode 100644 assets/js/4386.e5410b3b.js create mode 100644 assets/js/4386.e5410b3b.js.LICENSE.txt create mode 100644 assets/js/4392.88be3c03.js create mode 100644 assets/js/4397.c0bddcab.js create mode 100644 assets/js/4407.3aae7ab5.js create mode 100644 assets/js/4407.f24a98c4.js create mode 100644 assets/js/4407.f24a98c4.js.LICENSE.txt create mode 100644 assets/js/4422.1cb367d3.js create mode 100644 assets/js/4469.b5252e80.js create mode 100644 assets/js/4502.f5fec547.js create mode 100644 assets/js/4506.77a2991a.js create mode 100644 assets/js/4508.81b19c11.js create mode 100644 assets/js/4511.4e5e46a7.js create mode 100644 assets/js/4588.f2f9f239.js create mode 100644 assets/js/4702.38902698.js create mode 100644 assets/js/4721.175dbe5c.js create mode 100644 assets/js/4784.6b9d1e1e.js create mode 100644 assets/js/4840.4be9bbc8.js create mode 100644 assets/js/486.d9b07c81.js create mode 100644 assets/js/4860.a333a6da.js create mode 100644 assets/js/4896.a33bc4d6.js create mode 100644 assets/js/4902.57b8a462.js create mode 100644 assets/js/4902.57b8a462.js.LICENSE.txt create mode 100644 assets/js/4902.efb01a14.js create mode 100644 assets/js/4912.6e0d306b.js create mode 100644 assets/js/4912.6e0d306b.js.LICENSE.txt create mode 100644 assets/js/4912.dea0f1b5.js create mode 100644 assets/js/4946.53bdd182.js create mode 100644 assets/js/4946.53bdd182.js.LICENSE.txt create mode 100644 assets/js/4946.cfe74c4b.js create mode 100644 assets/js/4972.a00ed942.js create mode 100644 assets/js/4991.033580af.js create mode 100644 assets/js/5062.190662bd.js create mode 100644 assets/js/5062.190662bd.js.LICENSE.txt create mode 100644 assets/js/5062.d66ce501.js create mode 100644 assets/js/5097.c41b7b2f.js create mode 100644 assets/js/5131.8b42d5f9.js create mode 100644 assets/js/5172.55cc621c.js create mode 100644 assets/js/5215.9ac72533.js create mode 100644 assets/js/5221.d6f374a8.js create mode 100644 assets/js/5237.407b1995.js create mode 100644 assets/js/5239.5d7ca55a.js create mode 100644 assets/js/525.a08afd69.js create mode 100644 assets/js/525.a08afd69.js.LICENSE.txt create mode 100644 assets/js/525.fa3dba2f.js create mode 100644 assets/js/5288.bcdf8e6a.js create mode 100644 assets/js/5288.fdc26891.js create mode 100644 assets/js/5288.fdc26891.js.LICENSE.txt create mode 100644 assets/js/529.44b442f7.js create mode 100644 assets/js/5316.f1f4648e.js create mode 100644 assets/js/5377.b89fc3f8.js create mode 100644 assets/js/5377.e1e1a1eb.js create mode 100644 assets/js/5377.e1e1a1eb.js.LICENSE.txt create mode 100644 assets/js/5414.65f24c3a.js create mode 100644 assets/js/5501.b615e78d.js create mode 100644 assets/js/5562.cd4ead74.js create mode 100644 assets/js/5593.2e65fb56.js create mode 100644 assets/js/5593.2e65fb56.js.LICENSE.txt create mode 100644 assets/js/5593.71e13596.js create mode 100644 assets/js/5641.2eef5e08.js create mode 100644 assets/js/565.69ec915e.js create mode 100644 assets/js/5691.cef8c333.js create mode 100644 assets/js/5703.83ea00ab.js create mode 100644 assets/js/5703.b3646744.js create mode 100644 assets/js/5703.b3646744.js.LICENSE.txt create mode 100644 assets/js/5745.ffd36961.js create mode 100644 assets/js/5789.7ab12558.js create mode 100644 assets/js/5849.5c57243a.js create mode 100644 assets/js/5849.5c57243a.js.LICENSE.txt create mode 100644 assets/js/5849.97b6216c.js create mode 100644 assets/js/588.e5ea213f.js create mode 100644 assets/js/5880.095348fe.js create mode 100644 assets/js/5880.14f5a392.js create mode 100644 assets/js/5880.14f5a392.js.LICENSE.txt create mode 100644 assets/js/5898.367d7429.js create mode 100644 assets/js/5962.1b154b2a.js create mode 100644 assets/js/5962.cf4e9fcb.js create mode 100644 assets/js/5962.cf4e9fcb.js.LICENSE.txt create mode 100644 assets/js/5975.ba58926b.js create mode 100644 assets/js/6020.fd5de0c7.js create mode 100644 assets/js/6065.9ee332e5.js create mode 100644 assets/js/6081.624ea89b.js create mode 100644 assets/js/6082.4af8a070.js create mode 100644 assets/js/6082.4af8a070.js.LICENSE.txt create mode 100644 assets/js/6082.953833a2.js create mode 100644 assets/js/6094.dd70aa33.js create mode 100644 assets/js/6104.007d544c.js create mode 100644 assets/js/6136.dfc4bfad.js create mode 100644 assets/js/6241.2e9f5bdf.js create mode 100644 assets/js/6241.2e9f5bdf.js.LICENSE.txt create mode 100644 assets/js/6241.d8cb181b.js create mode 100644 assets/js/6272.f9b3cdc6.js create mode 100644 assets/js/6290.068917a8.js create mode 100644 assets/js/6316.157c4414.js create mode 100644 assets/js/6316.3a9fab01.js create mode 100644 assets/js/6329.369e2ba8.js create mode 100644 assets/js/6393.7cb3deb5.js create mode 100644 assets/js/64.d7c257b8.js create mode 100644 assets/js/6423.a0154131.js create mode 100644 assets/js/6423.a0154131.js.LICENSE.txt create mode 100644 assets/js/6423.b6271fc7.js create mode 100644 assets/js/6424.3a507a7e.js create mode 100644 assets/js/6424.3a507a7e.js.LICENSE.txt create mode 100644 assets/js/6424.41d2a4c6.js create mode 100644 assets/js/6432.8f67f499.js create mode 100644 assets/js/6449.3e8636c3.js create mode 100644 assets/js/6449.3e8636c3.js.LICENSE.txt create mode 100644 assets/js/6449.fbe95a4a.js create mode 100644 assets/js/6470.33bec0d3.js create mode 100644 assets/js/6479.5de341cd.js create mode 100644 assets/js/6489.897c8385.js create mode 100644 assets/js/6489.897c8385.js.LICENSE.txt create mode 100644 assets/js/6489.c01d9090.js create mode 100644 assets/js/650.f276d9bc.js create mode 100644 assets/js/6522.00dd2490.js create mode 100644 assets/js/6567.031c15cf.js create mode 100644 assets/js/6586.89a16f93.js create mode 100644 assets/js/6587.11bbb595.js create mode 100644 assets/js/6587.1466021b.js create mode 100644 assets/js/6587.1466021b.js.LICENSE.txt create mode 100644 assets/js/6618.901a3e8a.js create mode 100644 assets/js/6641.0726fefc.js create mode 100644 assets/js/665.9d4b2055.js create mode 100644 assets/js/665.9d4b2055.js.LICENSE.txt create mode 100644 assets/js/665.ea3dec56.js create mode 100644 assets/js/6686.555ef1a4.js create mode 100644 assets/js/6717.338ea325.js create mode 100644 assets/js/6717.86d17675.js create mode 100644 assets/js/6717.86d17675.js.LICENSE.txt create mode 100644 assets/js/6778.a7f9f534.js create mode 100644 assets/js/6780.e538d469.js create mode 100644 assets/js/6798.a0a87077.js create mode 100644 assets/js/6894.61d518cf.js create mode 100644 assets/js/6894.61d518cf.js.LICENSE.txt create mode 100644 assets/js/6923.4bd4b036.js create mode 100644 assets/js/6943.36e5dcf5.js create mode 100644 assets/js/6945.7839b727.js create mode 100644 assets/js/6956.75567b7a.js create mode 100644 assets/js/6990.60c608ae.js create mode 100644 assets/js/7043.6c28e0ba.js create mode 100644 assets/js/7043.6c28e0ba.js.LICENSE.txt create mode 100644 assets/js/7043.c99b557e.js create mode 100644 assets/js/7085.2da88da6.js create mode 100644 assets/js/7131.af65a3d6.js create mode 100644 assets/js/7131.af65a3d6.js.LICENSE.txt create mode 100644 assets/js/7131.ef199ac3.js create mode 100644 assets/js/7210.dccd8a9d.js create mode 100644 assets/js/7216.82683887.js create mode 100644 assets/js/728.1f188d20.js create mode 100644 assets/js/7287.67d8151a.js create mode 100644 assets/js/7287.94bb8d3f.js create mode 100644 assets/js/7287.94bb8d3f.js.LICENSE.txt create mode 100644 assets/js/7322.62a440b9.js create mode 100644 assets/js/7324.55dbe265.js create mode 100644 assets/js/7357.60f17144.js create mode 100644 assets/js/7454.c4cbd7ac.js create mode 100644 assets/js/7466.0592b0a0.js create mode 100644 assets/js/7473.75d32f9d.js create mode 100644 assets/js/7493.35ce4f7a.js create mode 100644 assets/js/7520.851d616b.js create mode 100644 assets/js/7521.710cbe18.js create mode 100644 assets/js/753.c21fceb8.js create mode 100644 assets/js/7550.c71fbb00.js create mode 100644 assets/js/7562.8aeb83c2.js create mode 100644 assets/js/7562.8aeb83c2.js.LICENSE.txt create mode 100644 assets/js/7562.f9821228.js create mode 100644 assets/js/7637.a10259f0.js create mode 100644 assets/js/7637.a10259f0.js.LICENSE.txt create mode 100644 assets/js/7637.aff67a32.js create mode 100644 assets/js/7667.b9d7153f.js create mode 100644 assets/js/7678.09b0f00f.js create mode 100644 assets/js/7724.5b44829a.js create mode 100644 assets/js/7724.ccc7d3de.js create mode 100644 assets/js/7724.ccc7d3de.js.LICENSE.txt create mode 100644 assets/js/7758.dda2fbc1.js create mode 100644 assets/js/776.52166cee.js create mode 100644 assets/js/7778.70985237.js create mode 100644 assets/js/7778.70985237.js.LICENSE.txt create mode 100644 assets/js/7778.ba66a016.js create mode 100644 assets/js/7835.3b3c09d8.js create mode 100644 assets/js/7835.fed695f5.js create mode 100644 assets/js/7835.fed695f5.js.LICENSE.txt create mode 100644 assets/js/7966.b4ef84f5.js create mode 100644 assets/js/7997.402d61b8.js create mode 100644 assets/js/8002.799b71bc.js create mode 100644 assets/js/8002.799b71bc.js.LICENSE.txt create mode 100644 assets/js/8017.5a10ad1f.js create mode 100644 assets/js/8027.0a3be280.js create mode 100644 assets/js/8063.96e4bd2b.js create mode 100644 assets/js/8070.b2932ef2.js create mode 100644 assets/js/8070.b2932ef2.js.LICENSE.txt create mode 100644 assets/js/8070.e9befa07.js create mode 100644 assets/js/8071.e0b453f4.js create mode 100644 assets/js/8073.856ade5f.js create mode 100644 assets/js/8084.1629b62c.js create mode 100644 assets/js/8084.1629b62c.js.LICENSE.txt create mode 100644 assets/js/8084.1c54978e.js create mode 100644 assets/js/8118.3febc31b.js create mode 100644 assets/js/813.efa2999f.js create mode 100644 assets/js/8180.71c4e4e9.js create mode 100644 assets/js/8180.b2381f36.js create mode 100644 assets/js/8180.b2381f36.js.LICENSE.txt create mode 100644 assets/js/836.b690b489.js create mode 100644 assets/js/8396.b75cac9d.js create mode 100644 assets/js/8401.8631a32b.js create mode 100644 assets/js/8401.ba60f1a3.js create mode 100644 assets/js/8424.591b7eae.js create mode 100644 assets/js/8424.b47120a1.js create mode 100644 assets/js/8424.b47120a1.js.LICENSE.txt create mode 100644 assets/js/848.6ccac2fb.js create mode 100644 assets/js/848.6ccac2fb.js.LICENSE.txt create mode 100644 assets/js/848.78fe8e26.js create mode 100644 assets/js/8480.07b41f57.js create mode 100644 assets/js/8506.dc7fd971.js create mode 100644 assets/js/8528.45e71d7f.js create mode 100644 assets/js/854.8e35156d.js create mode 100644 assets/js/854.8e35156d.js.LICENSE.txt create mode 100644 assets/js/854.9020f381.js create mode 100644 assets/js/8641.3df11c4b.js create mode 100644 assets/js/8670.266e1bf4.js create mode 100644 assets/js/8670.522cc23d.js create mode 100644 assets/js/8670.522cc23d.js.LICENSE.txt create mode 100644 assets/js/8712.1d41ff09.js create mode 100644 assets/js/8713.c204a0f9.js create mode 100644 assets/js/8715.172094c4.js create mode 100644 assets/js/8715.172094c4.js.LICENSE.txt create mode 100644 assets/js/8715.8b394ad8.js create mode 100644 assets/js/8719.644b750e.js create mode 100644 assets/js/8719.644b750e.js.LICENSE.txt create mode 100644 assets/js/8719.ec1724e6.js create mode 100644 assets/js/8748.af6aff9f.js create mode 100644 assets/js/8757.e063498f.js create mode 100644 assets/js/8819.8f01a10a.js create mode 100644 assets/js/8880.0e52c112.js create mode 100644 assets/js/8894.52aa9cfa.js create mode 100644 assets/js/8899.b1fe8204.js create mode 100644 assets/js/8906.90c5de7a.js create mode 100644 assets/js/8906.90c5de7a.js.LICENSE.txt create mode 100644 assets/js/8906.ef7cf848.js create mode 100644 assets/js/8946.a7036c9d.js create mode 100644 assets/js/8946.a7036c9d.js.LICENSE.txt create mode 100644 assets/js/8946.a960f7e2.js create mode 100644 assets/js/8985.e67ce2b4.js create mode 100644 assets/js/908.7a4eb83a.js create mode 100644 assets/js/911.8605976d.js create mode 100644 assets/js/911.cb5ea3c2.js create mode 100644 assets/js/911.cb5ea3c2.js.LICENSE.txt create mode 100644 assets/js/9172.7f698d9b.js create mode 100644 assets/js/9172.7f698d9b.js.LICENSE.txt create mode 100644 assets/js/9206.16398572.js create mode 100644 assets/js/9225.872a1216.js create mode 100644 assets/js/9277.9908b298.js create mode 100644 assets/js/9307.228f79a3.js create mode 100644 assets/js/931.d69b8a0f.js create mode 100644 assets/js/9337.6c20da2f.js create mode 100644 assets/js/9343.60b6adf7.js create mode 100644 assets/js/9343.bdc8d465.js create mode 100644 assets/js/9343.bdc8d465.js.LICENSE.txt create mode 100644 assets/js/9390.f01d7d65.js create mode 100644 assets/js/9398.016daacb.js create mode 100644 assets/js/9398.a4b8a2d7.js create mode 100644 assets/js/9398.a4b8a2d7.js.LICENSE.txt create mode 100644 assets/js/9400.16453223.js create mode 100644 assets/js/9400.1d5fbae2.js create mode 100644 assets/js/9400.1d5fbae2.js.LICENSE.txt create mode 100644 assets/js/9466.2e6a88ec.js create mode 100644 assets/js/9487.c37004d9.js create mode 100644 assets/js/9487.c9fbf014.js create mode 100644 assets/js/9506.368ed619.js create mode 100644 assets/js/9537.02320fdb.js create mode 100644 assets/js/9537.02320fdb.js.LICENSE.txt create mode 100644 assets/js/9537.18e73c82.js create mode 100644 assets/js/9541.4560e197.js create mode 100644 assets/js/957.de39d01c.js create mode 100644 assets/js/9607.622810b9.js create mode 100644 assets/js/9607.622810b9.js.LICENSE.txt create mode 100644 assets/js/9647.b1861c7a.js create mode 100644 assets/js/9684.19d777f5.js create mode 100644 assets/js/9684.19d777f5.js.LICENSE.txt create mode 100644 assets/js/9684.2bbdb36e.js create mode 100644 assets/js/9701.b0601203.js create mode 100644 assets/js/972.de4b56d9.js create mode 100644 assets/js/9837.a4f6fb00.js create mode 100644 assets/js/9850.0f22bc6f.js create mode 100644 assets/js/9907.6f8b4686.js create mode 100644 assets/js/9907.ddc37b5f.js create mode 100644 assets/js/9907.ddc37b5f.js.LICENSE.txt create mode 100644 assets/js/996.a97ccabb.js create mode 100644 assets/js/996.a97ccabb.js.LICENSE.txt create mode 100644 assets/js/996.b4571109.js create mode 100644 assets/js/9963.4a87e5a1.js create mode 100644 assets/js/9993.dfbc0bca.js create mode 100644 assets/js/common.1e30ee28.js create mode 100644 assets/js/main.2b7a990f.js create mode 100644 assets/js/main.2b7a990f.js.LICENSE.txt create mode 100644 assets/js/runtime~main.2221b8d0.js create mode 100644 blog/2015/02/18/Import-Types/index.html create mode 100644 blog/2015/02/18/Typecasts/index.html create mode 100644 blog/2015/02/20/Flow-Comments/index.html create mode 100644 blog/2015/03/12/Bounded-Polymorphism/index.html create mode 100644 blog/2015/07/03/Disjoint-Unions/index.html create mode 100644 blog/2015/07/29/Version-0.14.0/index.html create mode 100644 blog/2015/09/10/Version-0.15.0/index.html create mode 100644 blog/2015/09/22/Version-0.16.0/index.html create mode 100644 blog/2015/10/07/Version-0.17.0/index.html create mode 100644 blog/2015/11/09/Generators/index.html create mode 100644 blog/2015/12/01/Version-0.19.0/index.html create mode 100644 blog/2016/02/02/Version-0.21.0/index.html create mode 100644 blog/2016/07/01/New-Unions-Intersections/index.html create mode 100644 blog/2016/08/01/Windows-Support/index.html create mode 100644 blog/2016/10/04/Property-Variance/index.html create mode 100644 blog/2016/10/13/Flow-Typed/index.html create mode 100644 blog/2017/05/07/Strict-Function-Call-Arity/index.html create mode 100644 blog/2017/07/27/Opaque-Types/index.html create mode 100644 blog/2017/08/04/Linting-in-Flow/index.html create mode 100644 blog/2017/08/16/Even-Better-Support-for-React-in-Flow/index.html create mode 100644 blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases/index.html create mode 100644 blog/2017/09/03/Flow-Support-in-Recompose/index.html create mode 100644 blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem/index.html create mode 100644 blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals/index.html create mode 100644 blog/2018/10/18/Exact-Objects-By-Default/index.html create mode 100644 blog/2018/10/29/Asking-for-Required-Annotations/index.html create mode 100644 blog/2018/12/13/React-Abstract-Component/index.html create mode 100644 blog/2019/08/20/Changes-to-Object-Spreads/index.html create mode 100644 blog/2019/1/28/What-the-flow-team-has-been-up-to/index.html create mode 100644 blog/2019/10/25/Live-Flow-Errors-in-your-IDE/index.html create mode 100644 blog/2019/10/30/Spreads-Common-Errors-and-Fixes/index.html create mode 100644 blog/2019/2/8/A-More-Responsive-Flow/index.html create mode 100644 blog/2019/4/9/Upgrading-Flow-Codebases/index.html create mode 100644 blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax/index.html create mode 100644 blog/2020/02/19/Improvements-to-Flow-in-2019/index.html create mode 100644 blog/2020/03/09/What-were-building-in-2020/index.html create mode 100644 blog/2020/03/16/Making-Flow-error-suppressions-more-specific/index.html create mode 100644 blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow/index.html create mode 100644 blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types/index.html create mode 100644 blog/2020/12/01/Types-first-the-only-supported-mode-in-flow/index.html create mode 100644 blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement/index.html create mode 100644 blog/2021/06/02/Sound-Typing-for-this-in-Flow/index.html create mode 100644 blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/index.html create mode 100644 blog/2021/09/13/Introducing-Flow-Enums/index.html create mode 100644 blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/index.html create mode 100644 blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/index.html create mode 100644 blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/index.html create mode 100644 blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/index.html create mode 100644 blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/index.html create mode 100644 blog/2023/01/17/Local-Type-Inference/index.html create mode 100644 blog/2023/02/16/Exact-object-types-by-default-by-default/index.html create mode 100644 blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/index.html create mode 100644 blog/2023/04/10/Unused-Promise/index.html create mode 100644 blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/index.html create mode 100644 blog/archive/index.html create mode 100644 blog/atom.xml create mode 100644 blog/index.html create mode 100644 blog/page/2/index.html create mode 100644 blog/rss.xml create mode 100644 cd3c4b260f85aac6f600f3c017046ef9.wasm create mode 100644 css.worker.js create mode 100644 css.worker.js.LICENSE.txt create mode 100644 editor.worker.js create mode 100644 en/docs/cli/annotate-exports/index.html create mode 100644 en/docs/cli/coverage/index.html create mode 100644 en/docs/cli/index.html create mode 100644 en/docs/config/declarations/index.html create mode 100644 en/docs/config/ignore/index.html create mode 100644 en/docs/config/include/index.html create mode 100644 en/docs/config/index.html create mode 100644 en/docs/config/libs/index.html create mode 100644 en/docs/config/lints/index.html create mode 100644 en/docs/config/options/index.html create mode 100644 en/docs/config/untyped/index.html create mode 100644 en/docs/config/version/index.html create mode 100644 en/docs/declarations/index.html create mode 100644 en/docs/editors/emacs/index.html create mode 100644 en/docs/editors/index.html create mode 100644 en/docs/editors/sublime-text/index.html create mode 100644 en/docs/editors/vim/index.html create mode 100644 en/docs/editors/vscode/index.html create mode 100644 en/docs/editors/webstorm/index.html create mode 100644 en/docs/enums/defining-enums/index.html create mode 100644 en/docs/enums/enabling-enums/index.html create mode 100644 en/docs/enums/index.html create mode 100644 en/docs/enums/migrating-legacy-patterns/index.html create mode 100644 en/docs/enums/using-enums/index.html create mode 100644 en/docs/errors/index.html create mode 100644 en/docs/faq/index.html create mode 100644 en/docs/getting-started/index.html create mode 100644 en/docs/index.html create mode 100644 en/docs/install/index.html create mode 100644 en/docs/lang/annotation-requirement/index.html create mode 100644 en/docs/lang/depth-subtyping/index.html create mode 100644 en/docs/lang/lazy-modes/index.html create mode 100644 en/docs/lang/nominal-structural/index.html create mode 100644 en/docs/lang/refinements/index.html create mode 100644 en/docs/lang/subtypes/index.html create mode 100644 en/docs/lang/type-hierarchy/index.html create mode 100644 en/docs/lang/types-and-expressions/index.html create mode 100644 en/docs/lang/types-first/index.html create mode 100644 en/docs/lang/variables/index.html create mode 100644 en/docs/lang/variance/index.html create mode 100644 en/docs/lang/width-subtyping/index.html create mode 100644 en/docs/libdefs/creation/index.html create mode 100644 en/docs/libdefs/index.html create mode 100644 en/docs/linting/flowlint-comments/index.html create mode 100644 en/docs/linting/index.html create mode 100644 en/docs/linting/rule-reference/index.html create mode 100644 en/docs/react/components/index.html create mode 100644 en/docs/react/events/index.html create mode 100644 en/docs/react/hoc/index.html create mode 100644 en/docs/react/index.html create mode 100644 en/docs/react/multiplatform/index.html create mode 100644 en/docs/react/refs/index.html create mode 100644 en/docs/react/types/index.html create mode 100644 en/docs/strict/index.html create mode 100644 en/docs/tools/babel/index.html create mode 100644 en/docs/tools/eslint/index.html create mode 100644 en/docs/tools/flow-remove-types/index.html create mode 100644 en/docs/tools/index.html create mode 100644 en/docs/types/aliases/index.html create mode 100644 en/docs/types/any/index.html create mode 100644 en/docs/types/arrays/index.html create mode 100644 en/docs/types/casting/index.html create mode 100644 en/docs/types/classes/index.html create mode 100644 en/docs/types/comments/index.html create mode 100644 en/docs/types/conditional/index.html create mode 100644 en/docs/types/empty/index.html create mode 100644 en/docs/types/functions/index.html create mode 100644 en/docs/types/generators/index.html create mode 100644 en/docs/types/generics/index.html create mode 100644 en/docs/types/index.html create mode 100644 en/docs/types/indexed-access/index.html create mode 100644 en/docs/types/interfaces/index.html create mode 100644 en/docs/types/intersections/index.html create mode 100644 en/docs/types/literals/index.html create mode 100644 en/docs/types/mapped-types/index.html create mode 100644 en/docs/types/maybe/index.html create mode 100644 en/docs/types/mixed/index.html create mode 100644 en/docs/types/modules/index.html create mode 100644 en/docs/types/objects/index.html create mode 100644 en/docs/types/opaque-types/index.html create mode 100644 en/docs/types/primitives/index.html create mode 100644 en/docs/types/tuples/index.html create mode 100644 en/docs/types/type-guards/index.html create mode 100644 en/docs/types/typeof/index.html create mode 100644 en/docs/types/unions/index.html create mode 100644 en/docs/types/utilities/index.html create mode 100644 en/docs/usage/index.html create mode 100644 flow/master/flow.js create mode 100644 flow/master/flowlib/APACHE_LICENSE create mode 100644 flow/master/flowlib/bom.js create mode 100644 flow/master/flowlib/core.js create mode 100644 flow/master/flowlib/cssom.js create mode 100644 flow/master/flowlib/dom.js create mode 100644 flow/master/flowlib/indexeddb.js create mode 100644 flow/master/flowlib/intl.js create mode 100644 flow/master/flowlib/node.js create mode 100644 flow/master/flowlib/react-dom.js create mode 100644 flow/master/flowlib/react.js create mode 100644 flow/master/flowlib/serviceworkers.js create mode 100644 flow/master/flowlib/streams.js create mode 100644 flow/master/flowlib/webassembly.js create mode 100644 html.worker.js create mode 100644 html.worker.js.LICENSE.txt create mode 100644 img/favicon.ico create mode 100644 img/favicon.png create mode 100644 img/featurette-bigger.gif create mode 100644 img/featurette-confidently.gif create mode 100644 img/featurette-faster.gif create mode 100644 img/featurette-smarter.gif create mode 100644 img/flow_for_vscode.gif create mode 100644 img/icon-github.svg create mode 100644 img/icon-stackoverflow.svg create mode 100644 img/icon-twitter.svg create mode 100644 img/logo.svg create mode 100644 img/oss_logo.png create mode 100644 index.html create mode 100644 json.worker.js create mode 100644 json.worker.js.LICENSE.txt create mode 100644 opensearch.xml create mode 100644 search/index.html create mode 100644 sitemap.xml create mode 100644 try/index.html create mode 100644 ts.worker.js create mode 100644 ts.worker.js.LICENSE.txt diff --git a/404.html b/404.html new file mode 100644 index 00000000000..e445ab58945 --- /dev/null +++ b/404.html @@ -0,0 +1,26 @@ + + + + + +Page Not Found | Flow + + + + + + + + + + + + + + +
+
Skip to main content

Page Not Found

We could not find what you were looking for.

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

+ + + + \ No newline at end of file diff --git a/CNAME b/CNAME new file mode 100644 index 00000000000..23e7ab96957 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +flow.org diff --git a/_src/cli/annotate-exports.md b/_src/cli/annotate-exports.md new file mode 100644 index 00000000000..95c90642d96 --- /dev/null +++ b/_src/cli/annotate-exports.md @@ -0,0 +1,80 @@ +--- +title: Flow Annotate-Exports +slug: /cli/annotate-exports +--- + +Upgrading to [Types-First](../../lang/types-first) mode may require a substantial +number of type annotations at module boundaries. To help with the process of +upgrading large codebases, we are providing a codemod command, whose goal is to +fill in these missing annotations. This command is included in the Flow binary +in versions `>= 0.125`. + +> Note: As of version 0.134, types-first is the default mode. If you are using a +version `>=0.134`, make sure you set `types_first=false` in your .flowconfig while +running this codemod. + +This command uses types that Flow infers, to fill in positions that would otherwise +raise *signature-verification* failures. It will include the necessary type import +statements, as long as the respective types are exported from their defining modules. + +It is designed for use on multiple files at once, rather than one file at a time. +For this reason it doesn't connect to an existing Flow server, but rather starts +a checking process of its own. + +As is typical with such mechanized approaches, it comes with a few caveats: + +1. It won’t be able to fill in every required type annotation. Some cases will +require manual effort. +2. Inserted annotations may cause new flow errors, since it’s not always possible +to match inferred type with types that can be written as annotations. +3. File formatting may be affected. If a code formatter (e.g. prettier) is used, +it is recommended that you run it after the codemod has finished running. + + +### How to apply the codemod {#toc-how-to-apply-the-codemod} + +A typical way to invoke this command is + +``` +flow codemod annotate-exports \ + --write \ + --repeat \ + --log-level info \ + /path/to/folder \ + 2> out.log +``` + +This command will transform files under `/path/to/folder`. This does not need to +be the root directory (the one containing `.flowconfig`). + +It uses the following flags: +* `--write` will update files that require annotations under `/path/to/folder` +in-place. Without this flag the resulting files will be printed on the command line. + +* `--repeat` ensures that the transformation will be applied until no more files +change. This mode is necessary here, because each new type the codemod adds may +require new locations to be annotated. + +* `--log-level info` outputs useful debugging information in the standard error stream. +This option might lead to verbose output, so we're redirecting the error output +to a log file `out.log`. + +Another convenient way to provide the input is by passing the flag +``` +--input-file file.txt +``` +where `file.txt` contains a specific list of files to be transformed. + +### Codemod output {#toc-codemod-output} + +After each iteration of the codemod, a summary will be printed on the CLI. This +summary includes statistical information about the number of annotations that were +added, and how many locations were skipped. It also prints counts for various kinds +of errors that were encountered. These can be matched to the errors printed in the +logs. + +A common error case is when a type `A`, defined in a file `a.js`, but not exported, +is inferred in file `b.js`. The codemod will skip adding this annotation and report +an error in the logs. The fix this case, you can export `A` in `a.js`. Note that +it is not necessary to manually import `A` in `b.js`. The codemod will do this +automatically. diff --git a/_src/cli/coverage.md b/_src/cli/coverage.md new file mode 100644 index 00000000000..5a95b85e2e6 --- /dev/null +++ b/_src/cli/coverage.md @@ -0,0 +1,128 @@ +--- +title: Flow Coverage +slug: /cli/coverage +--- +The coverage command provides a metric of the amount of checking that Flow has +performed on each part of your code. A program with high Flow coverage should +increase your confidence that Flow has detected any potential runtime errors. + +The determining factor for this is the presence of [`any`](../../types/any/) in the +inferred type of each expression. An expression whose inferred type is `any` is +considered *uncovered*, otherwise it is considered *covered*. + +To see why this metric was chosen for determining Flow's effectiveness, consider +the example + +```js flow-check +const one: any = 1; +one(); +``` + +This code leads to a runtime type error, since we are attempting to perform a call +on a number. Flow, however, does not flag an error here, because we have annotated +variable `one` as `any`. Flow's checking is effectively turned off whenever `any` +is involved, so it will silently allow the call. The use of this *unsafe* type has +rendered the type checker ineffective, and the coverage metric is here to surface +this, by reporting all instances of `one` as uncovered. + +## Design Space {#toc-design-space} + +**Which types should be "covered"?** + +What was described above is a rather coarse grained way to determine coverage. One +could imagine a criterion that flags expressions as uncovered if *any* part of their +type includes `any`, for example `Array`. While there is value in a metric like +this, the "uncovered" part of the type will typically be uncovered through various +operations on values of this type. For example, in the code + +```js flow-check +declare const arr: Array; +arr.forEach(x => {}); +``` + +the parameter `x` will be flagged as uncovered. Also, in practice, a strict criterion +like this would be too noisy and rather expensive to compute on the fly. + +**Union types** + +An exception to this principle are union types: the type `number | any` is considered +*uncovered*, even though technically `any` is not the top-level constructor. +Unions merely encode an option among *a set of* other types. In that sense we are +conservatively viewing an expression as uncovered, when at least one possible type +of that expression causes limited checking. For example, in the code + +```js flow-check +let x: number | any = 1; +x = "a"; +``` + +Flow will let you assign anything to `x`, which reduces confidence in the use +of `x` as a number. Thus `x` is considered uncovered. + +**The empty type** + +An interesting type from a coverage perspective is the [`empty`](../../types/empty) type. +This type roughly corresponds to *dead code*. As such checking around expressions with +type `empty` is more relaxed, but for a good reason: this code will not be executed at +runtime. Since it is a common practice to clean up such code, Flow coverage will +also report code whose type is inferred to be `empty`, but distinguishes it from +the case of `any`. + + +## Command Line Use {#toc-command-line-use} + +To find out the coverage of a file foo.js with the following contents + +```js flow-check +function add(one: any, two: any): number { + return one + two; +} + +add(1, 2); +``` + +you can issue the following command + +``` +$ flow coverage file.js +Covered: 50.00% (5 of 10 expressions) +``` +This output means that 5 out of the 10 nodes of this program were inferred to have type +`any`. To see exactly which parts are uncovered you can also pass one of the following +flags: +* `--color`: This will print foo.js on the terminal with the uncovered locations in +red color. E.g. `flow coverage --color file.js` +* `--json`: This will list out all location spans that are uncovered under +the tag `"uncovered_locs"`. E.g. `flow coverage --json file.js` + +Finally, as an example of dead code, consider the code: + +```js flow-check +function f(x: 'a' | 'b') { + if (x === 'a') { + // ... + } else if (x === 'b') { + // ... + } else { + x; + } +} +``` + +The final `else` clause should never be reached, as we've already checked for both members of the union. +Because of this, `x` is inferred to have the type `empty` in that branch. + +In the colored version of this command, these parts appear in blue color, +and in the JSON version they are under the field `"empty_locs"`. + +**Use on multiple files** + +If you want to check coverage of multiple files at once, Flow offers the +`batch-coverage` command: +``` +$ flow batch-coverage dir/ +``` +will report coverage statistics for each file under `dir/`, as well as aggregate +results. + +Note that `batch-coverage` requires a non-lazy Flow server. diff --git a/_src/cli/index.md b/_src/cli/index.md new file mode 100644 index 00000000000..4bb855b5108 --- /dev/null +++ b/_src/cli/index.md @@ -0,0 +1,96 @@ +--- +title: Flow CLI +slug: /cli +description: How to use Flow from the command line. Including how to manage the Flow background process. +--- + +The flow command line tool is made to be easy-to-use for simple cases. + +Using the command `flow` will type-check your current directory if the +`.flowconfig` file is present. A flow server will automatically be started if +needed. + +The CLI tool also provides several other options and commands that allow you to +control the server and build tools that integrate with Flow. For example, this +is how the [Nuclide](https://nuclide.io/) editor integrates with Flow to +provide autocompletion, type errors, etc. in its UI. + +To find out more about the CLI just type: + +```sh +flow --help +``` + +This will give you information about everything that flow can do. Running this +command should print something like this: + +``` +Usage: flow [COMMAND] [PROJECT_ROOT] + +Valid values for COMMAND: + ast Print the AST + autocomplete Queries autocompletion information + batch-coverage Shows aggregate coverage information for a group of files or directories + check Does a full Flow check and prints the results + check-contents Run typechecker on contents from stdin + config Read or write the .flowconfig file + coverage Shows coverage information for a given file + cycle Output .dot file for cycle containing the given file + find-module Resolves a module reference to a file + find-refs Gets the reference locations of a variable or property + force-recheck Forces the server to recheck a given list of files + get-def Gets the definition location of a variable or property + graph Outputs dependency graphs of flow repositories + init Initializes a directory to be used as a flow root directory + ls Lists files visible to Flow + lsp Acts as a server for the Language Server Protocol over stdin/stdout [experimental] + print-signature Prints the type signature of a file as extracted in types-first mode + server Runs a Flow server in the foreground + start Starts a Flow server + status (default) Shows current Flow errors by asking the Flow server + stop Stops a Flow server + type-at-pos Shows the type at a given file and position + version Print version information + +Default values if unspecified: + COMMAND status + PROJECT_ROOT current folder + +Status command options: + --color Display terminal output in color. never, always, auto (default: auto) + --from Specify client (for use by editor plugins) + --help This list of options + --json Output results in JSON format + --no-auto-start If the server is not running, do not start it; just exit + --old-output-format Use old output format (absolute file names, line and column numbers) + --one-line Escapes newlines so that each error prints on one line + --quiet Suppresses the server-status information that would have been printed to stderr + --retries Set the number of retries. (default: 3) + --show-all-errors Print all errors (the default is to truncate after 50 errors) + --strip-root Print paths without the root + --temp-dir Directory in which to store temp files (default: /tmp/flow/) + --timeout Maximum time to wait, in seconds + --version Print version number and exit +``` + +Example with custom project root: +```sh +mydir +├── frontend +│ ├── .flowconfig +│ └── app.js +└── backend +``` + +```sh +flow check frontend +``` + +You can then, further dig into particular COMMANDs by adding the `--help` flag. + +So, for example, if you want to know more about how the autocomplete works, you +can use this command: + +```sh +flow autocomplete --help +``` diff --git a/_src/config/declarations.md b/_src/config/declarations.md new file mode 100644 index 00000000000..695caf4a65a --- /dev/null +++ b/_src/config/declarations.md @@ -0,0 +1,59 @@ +--- +title: .flowconfig [declarations] +slug: /config/declarations +--- + +Often third-party libraries have broken type definitions or have type +definitions only compatible with a certain version of Flow. In those cases it +may be useful to use type information from the third-party libraries without +typechecking their contents. + +The `[declarations]` section in a `.flowconfig` file tells Flow to parse files +matching the specified regular expressions in _declaration mode_. In declaration +mode the code is not typechecked. However, the signatures of functions, classes, +etc are extracted and used by the typechecker when checking other code. + +Conceptually one can think of declaration mode as if Flow still typechecks the +files but acts as if there is a `$FlowFixMe` comment on every line. + +See also [`[untyped]`](../untyped) for not typechecking files, and instead using `any` for all contents. + +Things to keep in mind: + +1. Declaration mode should only be used for existing third-party code. You + should never use this for code under your control. +2. These are [OCaml regular expressions](http://caml.inria.fr/pub/docs/manual-ocaml/libref/Str.html#TYPEregexp). +3. These regular expressions match against absolute paths. They probably should + start with `.*` + +An example `[declarations]` section might look like: + +``` +[declarations] +.*/third_party/.* +.*/src/\(foo\|bar\)/.* +.*\.decl\.js +``` + +This `[declarations]` section will parse in declaration mode: + +1. Any file or directory under a directory named `third_party` +2. Any file or directory under `.*/src/foo` or under `.*/src/bar` +3. Any file that ends with the extension `.decl.js` + +You may use the `` placeholder in your regular expressions. +At runtime, Flow will treat the placeholder as if it were the absolute +path to the project's root directory. This is useful for writing regular +expressions that are relative rather than absolute. + +For example, you can write: + +``` +[declarations] +/third_party/.* +``` + +Which would parse in declaration mode any file or directory under the directory +named `third_party/` within the project root. However, unlike the previous +example's `.*/third_party/.*`, it would NOT parse files or directories under +directories named `third_party/`, like `src/third_party/`. diff --git a/_src/config/ignore.md b/_src/config/ignore.md new file mode 100644 index 00000000000..5ca1f347f3b --- /dev/null +++ b/_src/config/ignore.md @@ -0,0 +1,58 @@ +--- +title: .flowconfig [ignore] +slug: /config/ignore +--- + +The `[ignore]` section in a `.flowconfig` file tells Flow to ignore files +matching the specified regular expressions when type checking your code. By +default, nothing is ignored. + +Things to keep in mind: + +1. These are [OCaml regular expressions](http://caml.inria.fr/pub/docs/manual-ocaml/libref/Str.html#TYPEregexp). +2. These regular expressions match against absolute paths. They probably should + start with `.*` +3. Ignores are processed AFTER includes. If you both include and ignore a file + it will be ignored. + +An example `[ignore]` section might look like: + +``` +[ignore] +.*/__tests__/.* +.*/src/\(foo\|bar\)/.* +.*\.ignore\.js +``` + +This `[ignore]` section will ignore: + +1. Any file or directory under a directory named `__tests__` +2. Any file or directory under `.*/src/foo` or under `.*/src/bar` +3. Any file that ends with the extension `.ignore.js` + +You may use the `` placeholder in your regular expressions. +At runtime, Flow will treat the placeholder as if it were the absolute +path to the project's root directory. This is useful for writing regular +expressions that are relative rather than absolute. + +For example, you can write: + +``` +[ignore] +/__tests__/.* +``` + +Which would ignore any file or directory under the directory named `__tests__/` +within the project root. However, unlike the previous example's +`.*/__tests__/.*`, it would NOT ignore files or directories under other +directories named `__tests__/`, like `src/__tests__/`. + +### Exclusions {#toc-ignore-exclusions} +Sometimes you may want to ignore all files inside a directory with the exception of a few. An optional prefix "!" which negates the pattern may help. With this, any matching file excluded by a previous pattern will become included again. + +``` +[ignore] +/node_modules/.* +!/node_modules/not-ignored-package-A/.* +!/node_modules/not-ignored-package-B/.* +``` diff --git a/_src/config/include.md b/_src/config/include.md new file mode 100644 index 00000000000..33e6f5be7d7 --- /dev/null +++ b/_src/config/include.md @@ -0,0 +1,33 @@ +--- +title: .flowconfig [include] +slug: /config/include +--- + +The `[include]` section in a `.flowconfig` file tells Flow to include the +specified files or directories. Including a directory recursively includes all +the files under that directory. Symlinks are followed as long as they lead to a +file or directory that is also included. Each line in the include section is a +path to include. These paths can be relative to the root directory or absolute, +and support both single and double star wildcards. + +The project root directory (where your `.flowconfig` lives) is automatically +included. + +For example, if `/path/to/root/.flowconfig` contains the following `[include]` +section: + +``` +[include] +../externalFile.js +../externalDir/ +../otherProject/*.js +../otherProject/**/coolStuff/ +``` + +Then when Flow checks the project in `/path/to/root`, it will read and watch + +1. `/path/to/root/` (automatically included) +2. `/path/to/externalFile.js` +3. `/path/to/externalDir/` +4. Any file in `/path/to/otherProject/` that ends in `.js` +5. Any directory under `/path/to/otherProject` named `coolStuff/` diff --git a/_src/config/index.md b/_src/config/index.md new file mode 100644 index 00000000000..179c53e0ab8 --- /dev/null +++ b/_src/config/index.md @@ -0,0 +1,91 @@ +--- +title: .flowconfig +slug: /config +description: Flow tries to work out of the box as much as possible, but can be configured to work with any codebase. +--- + +Every Flow project contains a `.flowconfig` file. You can configure Flow by +modifying `.flowconfig`. New projects or projects that are starting to use Flow +can generate a default `.flowconfig` by running `flow init`. + +### `.flowconfig` format {#toc-flowconfig-format} + +The `.flowconfig` uses a custom format that vaguely resembles INI files. + +The `.flowconfig` consists of different sections: + +* [`[version]`](./version) +* [`[options]`](./options) +* [`[include]`](./include) +* [`[ignore]`](./ignore) +* [`[untyped]`](./untyped) +* [`[declarations]`](./declarations) +* [`[libs]`](./libs) +* [`[lints]`](./lints) +* [`[strict]`](../strict/#toc-enabling-flow-strict-in-a-flowconfig) + +### Comments {#toc-comments} + +Lines beginning with zero or more spaces followed by an `#` or `;` or `💩` are +ignored. For example: + +``` +# This is a comment + # This is a comment +; This is a comment + ; This is a comment +💩 This is a comment + 💩 This is a comment +``` + +### Where to put the `.flowconfig` {#toc-where-to-put-the-flowconfig} + +The location of the `.flowconfig` is significant. Flow treats the directory that +contains the `.flowconfig` as the _project root_. By default Flow includes all +the source code under the project root. The paths in the +[[include] section](./include) are relative to the project root. Some other +configuration also lets you reference the project root via the macro +``. + +Most people put the `.flowconfig` in the root of their project (i.e. next to the +`package.json`). Some people put all their code in a `src/` directory and +therefore put the `.flowconfig` at `src/.flowconfig`. + +### Example {#toc-example} + +Say you have the following directory structure, with your `.flowconfig` in +`mydir`: + +```text +otherdir +└── src + ├── othercode.js +mydir +├── .flowconfig +├── build +│ ├── first.js +│ └── shim.js +├── lib +│ └── flow +├── node_modules +│ └── es6-shim +└── src + ├── first.js + └── shim.js +``` + +Here is an example of how you could use the `.flowconfig` directives. + +```text +[include] +../otherdir/src + +[ignore] +.*/build/.* + +[libs] +./lib +``` + +Now `flow` will include a directory outside the `.flowconfig` path in its +check, ignore the `build` directory and use the declarations in `lib`. diff --git a/_src/config/libs.md b/_src/config/libs.md new file mode 100644 index 00000000000..5cb33e10826 --- /dev/null +++ b/_src/config/libs.md @@ -0,0 +1,17 @@ +--- +title: .flowconfig [libs] +slug: /config/libs +--- + +The `[libs]` section in a `.flowconfig` file tells Flow to include the +specified [library definitions](../../libdefs/) when type +checking your code. Multiple libraries can be specified. By default, the +`flow-typed` folder in your project root directory is included as a library +directory. This default allows you to use +[`flow-typed`](https://github.com/flowtype/flow-typed) to install library +definitions without additional configuration. + +Each line in the `[libs]` section is a path to the library file or directory +which you would like to include. These paths can be relative to the project +root directory or absolute. Including a directory recursively includes all the +files under that directory as library files. diff --git a/_src/config/lints.md b/_src/config/lints.md new file mode 100644 index 00000000000..dcaed41dc3e --- /dev/null +++ b/_src/config/lints.md @@ -0,0 +1,15 @@ +--- +title: .flowconfig [lints] +slug: /config/lints +--- + +The `[lints]` section in a `.flowconfig` file can contain several key-value +pairs of the form: + +``` +[lints] +ruleA=severityA +ruleB=severityB +``` + +Check out the [linting docs](../../linting) for more information. diff --git a/_src/config/options.md b/_src/config/options.md new file mode 100644 index 00000000000..1c2c1eace00 --- /dev/null +++ b/_src/config/options.md @@ -0,0 +1,630 @@ +--- +title: .flowconfig [options] +slug: /config/options +--- + +import {SinceVersion, UntilVersion} from '../../components/VersionTags'; + +The `[options]` section in a `.flowconfig` file can contain several key-value +pairs of the form: + +``` +[options] +keyA=valueA +keyB=valueB +``` + +Any options that are omitted will use their default values. Some options +can be overridden with command line flags. + +## Available options {#toc-available-options} + +### all {#toc-all} + +Type: `boolean` + +Set this to `true` to check all files, not just those with `@flow`. + +The default value for `all` is `false`. + +### autoimports {#toc-autoimports} + +Type: `boolean` + +When enabled, IDE autocomplete suggests the exports of other files, and the necessary `import` statements are automatically inserted. A "quick fix" code action is also provided on undefined variables that suggests matching imports. + +The default value for `autoimports` is `true` as of Flow v0.155.0. + +### babel_loose_array_spread {#toc-babel-loose-array-spread} + +Type: `boolean` + +Set this to `true` to check that array spread syntax is only used with arrays, not arbitrary iterables (such as `Map` or `Set`). This is useful if you transform your code with Babel in [loose mode](https://babeljs.io/docs/en/babel-plugin-transform-spread#loose) which makes this non-spec-compliant assumption at runtime. + +For example: + +```js +const set = new Set(); +const values = [...set]; // Valid ES2015, but Set is not compatible with $ReadOnlyArray in Babel loose mode +``` + +The default value for `babel_loose_array_spread` is `false`. + +### emoji {#toc-emoji} + +Type: `boolean` + +Set this to `true` to add emoji to the status messages that Flow +outputs when it's busy checking your project. + +The default value for `emoji` is `false`. + +### enums {#toc-enums} + +Type: `boolean` + +Set this to `true` to enable [Flow Enums](../../enums). +[Additional steps](../../enums/enabling-enums/) are required beyond just enabling the `.flowconfig` option. + +The default value for `enums` is `false`. + +### exact_by_default {#toc-exact-by-default} + +Type: `boolean` + +When set to `true` (the default as of version 0.202), Flow interprets object types as exact by default: + +```js flow-check +type O1 = {foo: number} // exact +type O2 = {| foo: number |} // exact +type O3 = {foo: number, ...} // inexact +``` + +When this flag is `false`, Flow has the following behavior: + +```js flow-check +type O1 = {foo: number} // inexact +type O2 = {| foo: number |} // exact +type O3 = {foo: number, ...} // inexact +``` + +- From inception to Flow version 0.199, the default value of the flag was `false`. +- In versions 0.200 and 0.201, the flag was required to be explicitly set to either `true` or `false`. +- From version 0.202, the default value is `true`. + +You can read more about this change in our blog post about making [exact by object types by default, by default](https://medium.com/flow-type/exact-object-types-by-default-by-default-cc559af6f69). + +### experimental.const_params {#toc-experimental-const-params} + +Type: `boolean` + +Setting this to `true` makes Flow treat all function parameters as const +bindings. Reassigning a param is an error which lets Flow be less conservative +with refinements. + +The default value is `false`. + +### include_warnings {#toc-include-warnings} + +Type: `boolean` + +Setting this to `true` makes Flow commands include warnings in the error output. +Warnings are hidden by default in the CLI to avoid console spew. (An IDE is a +much better interface to show warnings.) + +The default value is `false`. + +### lazy_mode {#toc-lazy-mode} + +Type: `boolean` + +For more on lazy modes, see the [lazy modes docs](../../lang/lazy-modes/). + +Setting `lazy_mode` in the `.flowconfig` will cause new Flow servers for that +root to use lazy mode (or no lazy mode if set to `false`). This option can +be overridden from the CLI using the `--lazy-mode` flag. + +The default value is `false`. + +### max_header_tokens {#toc-max-header-tokens} + +Type: `integer` + +Flow tries to avoid parsing non-flow files. This means Flow needs to +start lexing a file to see if it has `@flow` or `@noflow` in it. This option +lets you configure how much of the file Flow lexes before it decides there is +no relevant docblock. + +- Neither `@flow` nor `@noflow` - Parse this file with Flow syntax disallowed and do not typecheck it. +- `@flow` - Parse this file with Flow syntax allowed and typecheck it. +- `@noflow` - Parse this file with Flow syntax allowed and do not typecheck it. This is meant as an escape hatch to suppress Flow in a file without having to delete all the Flow-specific syntax. + +The default value of `max_header_tokens` is 10. + +### module.file_ext {#toc-module-file-ext} + +By default, Flow will look for files with the extensions `.js`, `.jsx`, `.mjs`, +`.cjs` and `.json`. You can override this behavior with this option. + +For example, if you do: + +``` +[options] +module.file_ext=.foo +module.file_ext=.bar +``` + +Then Flow will instead look for the file extensions `.foo` and `.bar`. + +> **Note:** you can specify `module.file_ext` multiple times + +### module.ignore_non_literal_requires {#toc-module-ignore-non-literal-requires} + +Type: `boolean` + +Set this to `true` and Flow will no longer complain when you use `require()` +with something other than a string literal. + +The default value is `false`. + +### module.name_mapper {#toc-module-name-mapper} + +Type: `regex -> string` + +Specify a regular expression to match against module names, and a replacement +pattern, separated by a `->`. + +For example: + +``` +module.name_mapper='^image![a-zA-Z0-9$_]+$' -> 'ImageStub' +``` + +This makes Flow treat `require('image!foo.jpg')` as if it were +`require('ImageStub')`. + +These are [OCaml regular expressions](http://caml.inria.fr/pub/docs/manual-ocaml/libref/Str.html#TYPEregexp). +Use `\(` and `\)` (slashes required!) to create a capturing group, which you +can refer to in the replacement pattern as `\1` (up to `\9`). + +> **Note:** you can specify `module.name_mapper` multiple times + +### module.name_mapper.extension {#toc-module-name-mapper-extension} + +Type: `string -> string` + +Specify a file extension to match, and a replacement module name, separated by +a `->`. + +> **Note:** This is just shorthand for +> `module.name_mapper='^\(.*\)\.EXTENSION$' -> 'TEMPLATE'`) + +For example: + +``` +module.name_mapper.extension='css' -> '/CSSFlowStub.js.flow' +``` + +Makes Flow treat `require('foo.css')` as if it were +`require(PROJECT_ROOT + '/CSSFlowStub')`. + +> **Note:** You can specify `module.name_mapper.extension` multiple times for +> different extensions. + +### module.system {#toc-module-system} + +Type: `node | haste` + +The module system to use to resolve `import` and `require`. +Haste mode is used by Meta. + +The default is `node`. + +### module.system.node.main_field {#toc-module-system-node-main-field} + +Type: `string` + +Flow reads `package.json` files for the `"name"` and `"main"` fields to figure +out the name of the module and which file should be used to provide that +module. + +So if Flow sees this in the `.flowconfig`: + +``` +[options] +module.system.node.main_field=foo +module.system.node.main_field=bar +module.system.node.main_field=baz +``` + +and then it comes across a `package.json` with + +``` +{ + "name": "kittens", + "main": "main.js", + "bar": "bar.js", + "baz": "baz.js" +} +``` + +Flow will use `bar.js` to provide the `"kittens"` module. + +If this option is unspecified, Flow will always use the `"main"` field. + +See [this GitHub issue for the original motivation](https://github.com/facebook/flow/issues/5725) + +### module.system.node.resolve_dirname {#toc-module-system-node-resolve-dirname} + +Type: `string` + +By default, Flow will look in directories named `node_modules` for node +modules. You can configure this behavior with this option. + +For example, if you do: + +``` +[options] +module.system.node.resolve_dirname=node_modules +module.system.node.resolve_dirname=custom_node_modules +``` + +Then Flow will look in directories named `node_modules` or +`custom_node_modules`. + +> **Note:** you can specify `module.system.node.resolve_dirname` multiple times + +### module.use_strict {#toc-module-use-strict} + +Type: `boolean` + +Set this to `true` if you use a transpiler that adds `"use strict";` to the top +of every module. + +The default value is `false`. + +### munge_underscores {#toc-munge-underscores} + +Type: `boolean` + +Set this to `true` to have Flow treat underscore-prefixed class properties and +methods as private. This should be used in conjunction with [`jstransform`'s +ES6 class transform](https://github.com/facebook/jstransform/blob/master/visitors/es6-class-visitors.js), +which enforces the same privacy at runtime. + +The default value is `false`. + +### no_flowlib {#toc-no-flowlib} + +Type: `boolean` + +Flow has builtin library definitions. Setting this to `true` will tell Flow to +ignore the builtin library definitions. + +The default value is `false`. + +### react.runtime {#toc-react-runtime} + +Type: `automatic | classic` + +Set this to `automatic` if you are using React's automatic runtime in `@babel/plugin-transform-react-jsx`. +Otherwise, use `classic`. [See the babel documentation](https://babeljs.io/docs/en/babel-plugin-transform-react-jsx) +for details about the transform. + +The default value is `classic`. + +### server.max_workers {#toc-server-max-workers} + +Type: `integer` + +The maximum number of workers the Flow server can start. By default, the server +will use all available cores. + +### sharedmemory.hash_table_pow {#toc-sharedmemory-hash-table-pow} + +Type: `unsigned integer` + +The 3 largest parts of the shared memory are a dependency table, a hash table, +and a heap. While the heap grows and shrinks, the two tables are allocated in +full. This option lets you change the size of the hash table. + +Setting this option to X means the table will support up to 2^X elements, +which is 16*2^X bytes. + +By default, this is set to 19 (Table size is 2^19, which is 8 megabytes) + +### sharedmemory.heap_size {#toc-sharedmemory-heap-size} + +Type: `unsigned integer` + +This option configures the maximum possible size for the shared heap. You should +most likely not need to configure this, as it doesn't really affect how much +RSS Flow uses. However, if you are working on a massive codebase you might see +the following error after init: "Heap init size is too close to max heap size; +GC will never get triggered!" In this case, you may need to increase the size +of the heap. + +By default, this is set to 26843545600 (25 * 2^30 bytes, which is 25GiB) + +### suppress_type {#toc-suppress-type} + +Type: `string` + +This option lets you alias `any` with a given string. This is useful for +explaining why you're using `any`. For example, let's say you sometimes want +to sometimes use `any` to suppress an error and sometimes to mark a TODO. +Your code might look like + +``` +const myString: any = 1 + 1; +const myBoolean: any = 1 + 1; +``` + +If you add the following to your configuration: + +``` +[options] +suppress_type=$FlowFixMe +suppress_type=$FlowTODO +``` + +You can update your code to the more readable: + +``` +const myString: $FlowFixMe = 1 + 1; +const myBoolean: $FlowTODO = 1 + 1; +``` + +> **Note:** You can specify `suppress_type` multiple times. + +### traces {#toc-traces} + +Type: `integer` + +Enables traces on all error output (showing additional details about the flow +of types through the system), to the depth specified. This can be very +expensive, so is disabled by default. + +### use_mixed_in_catch_variables {#toc-use-mixed-in-catch-variables} + +Type: `boolean` + +Changes the default type of `catch` variables from [`any`](../../types/any) to [`mixed`](../../types/mixed). E.g. + +```js flow-check +try { +} catch (e) { +} +``` + +in the above example, if the option is `true`, `catch` will be typed as `mixed` as it lacks an explicit type annotation. + +## Deprecated options + +The following options no longer exist in the latest version of Flow: + +### esproposal.class_instance_fields {#toc-esproposal-class-instance-fields} + +Type: `enable | ignore | warn` + +Set this to `warn` to indicate that Flow should give a warning on use of +instance [class fields](https://github.com/tc39/proposal-class-public-fields) +per the pending spec. + +You may also set this to `ignore` to indicate that Flow should simply ignore +the syntax (i.e. Flow will not use this syntax to indicate the presence of a +property on instances of the class). + +The default value of this option is `enable`, which allows use of this proposed +syntax. + +### esproposal.class_static_fields {#toc-esproposal-class-static-fields} + +Type: `enable | ignore | warn` + +Set this to `warn` to indicate that Flow should give a warning on use of static +[class fields](https://github.com/tc39/proposal-class-public-fields) +per the pending spec. + +You may also set this to `ignore` to indicate that Flow should simply ignore +the syntax (i.e. Flow will not use this syntax to indicate the presence of a +static property on the class). + +The default value of this option is `enable`, which allows use of this proposed +syntax. + +### esproposal.decorators {#toc-esproposal-decorators} + +Type: `ignore | warn` + +Set this to `ignore` to indicate that Flow should ignore decorators. + +The default value of this option is `warn`, which gives a warning on use since +this proposal is still very early-stage. + +### esproposal.export_star_as {#toc-esproposal-export-star-as} + +Type: `enable | ignore | warn` + +Set this to `enable` to indicate that Flow should support the `export * as` +syntax from [leebyron's proposal](https://github.com/leebyron/ecmascript-more-export-from). + +You may also set this to `ignore` to indicate that Flow should simply ignore +the syntax. The default value of this option is `warn`, which gives a warning +on use since this proposal is still very early-stage. + +### esproposal.optional_chaining {#toc-esproposal-optional-chaining} + +Type: `enable | ignore | warn` + +Set this to `enable` to indicate that Flow should support the use of +[optional chaining](https://github.com/tc39/proposal-optional-chaining) +per the pending spec. + +You may also set this to `ignore` to indicate that Flow should simply ignore +the syntax. + +The default value of this option is `warn`, which gives a warning on +use since this proposal is still very early-stage. + +### esproposal.nullish_coalescing {#toc-esproposal-nullish-coalescing} + +Type: `enable | ignore | warn` + +Set this to `enable` to indicate that Flow should support the use of +[nullish coalescing](https://github.com/tc39/proposal-nullish-coalescing) +per the pending spec. + +You may also set this to `ignore` to indicate that Flow should simply ignore +the syntax. + +The default value of this option is `warn`, which gives a warning on +use since this proposal is still very early-stage. + +### inference_mode {#toc-inference-mode} + +Type: `classic | constrain-writes` + +Setting this to `constrain-writes` will enable the constrained-writes inference mode. + +For more info, see the [variable declaration docs](../../lang/variables). + +The default value is `classic` + +### log.file {#toc-log-file} + +Type: `string` + +The path to the log file (defaults to `/tmp/flow/.log`). + +### sharedmemory.dirs {#toc-sharedmemory-dirs} + +Type: `string` + +This affects Linux only. + +Flow's shared memory lives in a memory mapped file. On more modern versions of +Linux (3.17+), there is a system call `memfd_create` which allows Flow to create +the file anonymously and only in memory. However, in older kernels, Flow needs +to create a file on the file system. Ideally this file lives on a memory-backed +tmpfs. This option lets you decide where that file is created. + +By default this option is set to `/dev/shm` and `/tmp` + +> **Note:** You can specify `sharedmemory.dirs` multiple times. + +### sharedmemory.minimum_available {#toc-sharedmemory-minimum-available} + +Type: `unsigned integer` + +This affects Linux only. + +As explained in the [`sharedmemory.dirs`](#toc-sharedmemory-dirs-string) option's description, Flow needs to +create a file on a filesystem for older kernels. `sharedmemory.dirs` specifies +a list of locations where the shared memory file can be created. For each +location, Flow will check to make sure the filesystem has enough space for the +shared memory file. If Flow will likely run out of space, it skips that location +and tries the next. This option lets you configure the minimum amount of space +needed on a filesystem for shared memory. + +By default it is 536870912 (2^29 bytes, which is half a gigabyte). + +### strip_root {#toc-strip-root} + +Type: `boolean` + +Obsolete. Set this to `true` to always strip the root directory from file paths +in error messages when using `--json`, `--from emacs`, and `--from vim`. +Do not use this option. Instead, pass the command line flag `--strip-root`. + +By default this is `false`. + +### suppress_comment {#toc-suppress-comment} + +Type: `regex` + +Defines a magical comment that suppresses any Flow errors on the following +line. For example: + +``` +suppress_comment= \\(.\\|\n\\)*\\$FlowFixMe +``` + +will match a comment like this: + +``` +// $FlowFixMe: suppressing this error until we can refactor +var x : string = 123; +``` + +and suppress the error. If there is no error on the next line (the suppression +is unnecessary), an "Unused suppression" warning will be shown instead. + +If no suppression comments are specified in your config, Flow will apply one +default: `// $FlowFixMe`. + +> **Note:** You can specify `suppress_comment` multiple times. If you do define +> any `suppress_comment`s, the built-in `$FlowFixMe` suppression will be erased +> in favor of the regexps you specify. If you wish to use `$FlowFixMe` with +> some additional custom suppression comments, you must manually specify +> `\\(.\\|\n\\)*\\$FlowFixMe` in your custom list of suppressions. + +> **Note:** In version v0.127.0, the option to specify the suppression comment +> syntax was removed. `$FlowFixMe`, `$FlowIssue`, `$FlowExpectedError`, +> and `$FlowIgnore` became the only standard suppressions. + +### temp_dir {#toc-temp-dir} + +Type: `string` + +Tell Flow which directory to use as a temp directory. Can be overridden with the +command line flag `--temp-dir`. + +The default value is `/tmp/flow`. + +### types_first {#toc-types-first} + +Type: `boolean` + +For more on types-first mode, see the [types-first docs](../../lang/types-first/). + +Flow builds intermediate artifacts to represent signatures of modules as they are +checked. If this option is set to `false`, then these artifacts are built using +inferred type information. If this option is set to `true`, then they are built +using type annotations at module boundaries. + +The default value for `types_first` is `true` (as of version 0.134). + +### well_formed_exports {#toc-well-formed-exports} + +Type: `boolean` + +Enforce the following restrictions on file exports: +* Statements manipulating `module.exports` and the `exports` alias may only appear + as top-level statements. +* Parts of the source that are visible from a file's exports need to be annotated + unless their type can be trivially inferred (e.g. the exported expression is a + numeric literal). This is a requirement for types-first mode to function properly. + Failure to properly annotate exports raise `signature-verification-failure`s. + +This option is set to `true` by default, since it is implied by [`types_first`](#toc-types-first-boolean), +but the option is useful on its own when upgrading a project from classic mode to +types-first mode. + +### well_formed_exports.includes {#toc-well-formed-exports-includes} + +Type: `string` + +Limit the scope of the `well_formed_exports` requirement to a specific directory +of this project. For example +``` +well_formed_exports=true +well_formed_exports.includes=/dirA +well_formed_exports.includes=/dirB +``` +will only report export related errors in files under `dirA` and `dirB`. This option +requires `well_formed_exports` to be set to `true`. + +The purpose of this option is to help prepare a codebase for Flow types-first mode. + +Between versions v0.125.0 and v0.127.0, this option was named `well_formed_exports.whitelist`. diff --git a/_src/config/untyped.md b/_src/config/untyped.md new file mode 100644 index 00000000000..59b8ebe5da8 --- /dev/null +++ b/_src/config/untyped.md @@ -0,0 +1,58 @@ +--- +title: .flowconfig [untyped] +slug: /config/untyped +--- + +The `[untyped]` section in a `.flowconfig` file tells Flow to not typecheck files +matching the specified regular expressions and instead throw away types and treat modules as [`any`](../../types/any). + +This is different from the [`[ignore]`](../ignore) config section that causes matching files to be ignored by the module resolver, +which inherently makes them un-typechecked, and also unresolvable by `import` or `require`. +When ignored, [`[libs]`](../libs) must then be specified for each `import` using `flow-typed`, which may not always be desired. + +It is also different from the [`[declarations]`](../declarations) section. +This also does not typecheck the file contents, but `[declarations]` does extract and use the signatures of functions, classes, etc, when checking other code. + +`[untyped]` instead causes a file to be ignored by the typechecker as if it had `@noflow` in it, +resolve modules as `any` type, but allow them to NOT be ignored by the module resolver. +Any matching file is skipped by Flow (not even parsed, like other `@noflow` files!), but can still be `require()`'d. + +Things to keep in mind: + +1. These are [OCaml regular expressions](http://caml.inria.fr/pub/docs/manual-ocaml/libref/Str.html#TYPEregexp). +2. These regular expressions match against absolute paths. They probably should + start with `.*` + +An example `[untyped]` section might look like: + +``` +[untyped] +.*/third_party/.* +.*/src/\(foo\|bar\)/.* +.*\.untyped\.js +``` + +This `[untyped]` section will parse: + +1. Any file or directory under a directory named `third_party` +2. Any file or directory under `.*/src/foo` or under `.*/src/bar` +3. Any file that ends with the extension `.untyped.js` + +You may use the `` placeholder in your regular expressions. +At runtime, Flow will treat the placeholder as if it were the absolute path +to the project's root directory. This is useful for writing regular +expressions that are relative rather than absolute. + +For example, you can write: + +``` +[untyped] +/third_party/.* +``` + +Which would parse in declaration mode any file or directory under the directory +named `third_party/` within the project root. However, unlike the previous +example's `.*/third_party/.*`, it would NOT parse files or directories under +directories named `third_party/`, like `src/third_party/`. + + diff --git a/_src/config/version.md b/_src/config/version.md new file mode 100644 index 00000000000..71488dc2848 --- /dev/null +++ b/_src/config/version.md @@ -0,0 +1,31 @@ +--- +title: .flowconfig [version] +slug: /config/version +--- + +You can specify in the `.flowconfig` which version of Flow you expect to use. +You do this with the `[version]` section. If this section is omitted or left +blank, then any version is allowed. If a version is specified and not matched, +then Flow will immediately error and exit. + +So if you have the following in your `.flowconfig`: + +``` +[version] +0.22.0 +``` + +and you try to use Flow v0.21.0, then Flow will immediately error with the +message + +`"Wrong version of Flow. The config specifies version 0.22.0 but this is version +0.21.0"` + +So far, we support the following ways to specify supported versions + +- Explicit versions, (e.g. `0.22.0`, which only matches `0.22.0`). +- Intersection ranges, which are ANDed together, (e.g. `>=0.13.0 <0.14.0`, + which matches `0.13.0` and `0.13.5` but not `0.14.0`). +- Caret ranges, which allow changes that do not modify the left-most non-zero + digit (e.g. `^0.13.0` expands into `>=0.13.0 <0.14.0`, and `^0.13.1` expands + into `>=0.13.1 <0.14.0`, whereas `^1.2.3` expands into `>=1.2.3 <2.0.0`). diff --git a/_src/declarations/index.md b/_src/declarations/index.md new file mode 100644 index 00000000000..be66dc47806 --- /dev/null +++ b/_src/declarations/index.md @@ -0,0 +1,87 @@ +--- +title: Declaration Files +slug: /declarations +description: Learn how to write types in .flow files. +--- + +## What's a Declaration File? {#toc-what-s-a-declaration-file} + +Let's look at a more general, and sometimes more convenient way to +declare types for modules: `.flow` files. + +There are two possible use cases, depending on whether an implementation file exists +or not. + +In the first case, the exported types of a module are declared in a _declaration +file_ `.flow`, that is located in the same directory as the corresponding _implementation +file_ ``. The declaration file completely shadows the colocated +implementation. In other words, Flow will completely ignore `` and just +read `.flow` instead. + +In the second case, the implementation file is missing entirely. `.flow` +is treated as if it is named ``. + +Note that the `.flow` extension applies both to `.js` files as well as `.json` +ones. The corresponding declaration files have extensions `.js.flow` and `.json.flow`, +respectively. + +Now let's see an example of the first case documented above. Suppose we have the +following code in a file `src/LookBeforeYouLeap.js`: + +```js +import { isLeapYear } from "./Misc"; +if (isLeapYear("2020")) console.log("Yay!"); +``` + +and suppose that `src/Misc.js` has an incompatible implementation of `isLeapYear`: + +```js flow-check +export function isLeapYear(year: number): boolean { + return year % 4 == 0; // yeah, this is approximate +} +``` + +If we now create a declaration file `src/Misc.js.flow`, the declarations in it +will be used instead of the code in `src/Misc.js`. Let's say we have the +following declarations in `src/Misc.js.flow`. + +> NOTE: The syntax for declarations in a declaration file is the same as we've seen in +> [Creating Library Definitions section](../libdefs/creation). + +```js flow-check +declare export function isLeapYear(year: string): boolean; +``` + +What do you think will happen? + +Right, the `isLeapYear` call in `src/LookBeforeYouLeap.js` will typecheck, since +the `year` parameter expects a `string` in the declaration file. + +As this example shows, declaration files must be written with care: it is up +to the programmer to ensure they are correct, otherwise they may hide type +errors. + + +## Inlining declarations in regular code {#toc-inlining-declarations-in-regular-code} + +Sometimes it is useful to make declarations inline, as part of the source of +an implementation file. + +In the following example, say you want to finish writing +the function `fooList` without bothering to mock up its dependencies first: a +function `foo` that takes a `number` and returns a `string`, and a class +`List` that has a `map` method. You can do this by including declarations for +`List` and `foo`: + +```js flow-check +declare class List { + map(f: (x: T) => U): List; +} +declare function foo(n: number): string; + +function fooList(ns: List): List { + return ns.map(foo); +} +``` + +Just don't forget to replace the declarations with proper implementations. diff --git a/_src/editors/emacs.md b/_src/editors/emacs.md new file mode 100644 index 00000000000..b5d019457b3 --- /dev/null +++ b/_src/editors/emacs.md @@ -0,0 +1,22 @@ +--- +title: Emacs +slug: /editors/emacs +--- + +### flow-for-emacs {#toc-flow-for-emacs} + +You can add support for Flow in Emacs by using [flow-for-emacs](https://github.com/flowtype/flow-for-emacs) + +### Requirements {#toc-emacs-requirements} + +* Requires Flow to be installed and available on your path. +* Requires projects containing JavaScript files to be initialised with flow init. +* Requires JavaScript files to be marked with /* @flow */ at the top. + +### Installation {#toc-emacs-installation} + +```sh +cd ~/.emacs.d/ +git clone https://github.com/flowtype/flow-for-emacs.git +echo -e "\n(load-file \"~/.emacs.d/flow-for-emacs/flow.el\")" >> ~/.emacs +``` diff --git a/_src/editors/index.md b/_src/editors/index.md new file mode 100644 index 00000000000..0fa527cde78 --- /dev/null +++ b/_src/editors/index.md @@ -0,0 +1,9 @@ +--- +title: Editors +description: "Detailed guides, tips, and resources on how to integrate Flow with different code editors." +slug: /editors +--- + +You can benefit from having Flow run as you develop by integrating into your editor. + +Editor plugins are provided and maintained by the community. If you have trouble configuring or using a specific plugin for your IDE, please visit the project's repo or search for a community provided answer. diff --git a/_src/editors/sublime-text.md b/_src/editors/sublime-text.md new file mode 100644 index 00000000000..d9eec66894b --- /dev/null +++ b/_src/editors/sublime-text.md @@ -0,0 +1,18 @@ +--- +title: Sublime Text +slug: /editors/sublime-text +--- + +### Flow For Sublime Text 2 and 3 {#toc-flow-for-sublime-text-2-and-3} + +[Sublime Text](https://www.sublimetext.com/) can be integrated with Flow by using [Package Control](https://packagecontrol.io) + +* Install the Package Control plugin if you don't have it +* Press Ctrl+Shift+P to bring up the Command Palette (or use Tools > Command Palette menu) +* Select Package Control: Install Package +* Type 'Flow' to find 'Flow for Sublime Text 2 and 3' +* Select 'Flow for Sublime Text 2 and 3' to install + +### SublimeLinter-flow {#toc-sublimelinter-flow} + +You may also wish to install a popular SublimeLinter plugin for Flow like [SublimeLinter-flow](https://packagecontrol.io/packages/SublimeLinter-flow). diff --git a/_src/editors/vim.md b/_src/editors/vim.md new file mode 100644 index 00000000000..f35781e7286 --- /dev/null +++ b/_src/editors/vim.md @@ -0,0 +1,156 @@ +--- +title: Vim +slug: /editors/vim +--- + +Flow's editor integration is primarily via the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/). There are [many vim LSP clients](https://microsoft.github.io/language-server-protocol/implementors/tools/) to choose from, such as [ALE](#toc-ale). + +## ALE {#toc-ale} + +The Asynchronous Lint Engine (ALE) plugin for Vim 8+ and NeoVim, [vim-ale](https://github.com/w0rp/ale), is a generalized linting engine with support for Flow and many other tools. + +### Installation {#toc-installation} + +Follow the [instructions](https://github.com/w0rp/ale#3-installation) in the ALE README. + +Configure ALE to use the `flow-language-server` linter for JavaScript files: + +```vim +" In ~/.vim/ftplugin/javascript.vim, or somewhere similar. + +" Enables only Flow for JavaScript. See :ALEInfo for a list of other available +" linters. NOTE: the `flow` linter uses an old API; prefer `flow-language-server`. +let b:ale_linters = ['flow-language-server'] + +" Or in ~/.vim/vimrc: +let g:ale_linters = { +\ 'javascript': ['flow-language-server'], +\} +``` + +## coc.nvim-neovim {#toc-coc-nvim-neovim} + +[Coc](https://github.com/neoclide/coc.nvim) is an intellisense engine for vim8 & neovim. + +### Setup {#toc-setup} + +```vim +set nocompatible +filetype off + +" install coc.nvim using Plug or preffered plugin manager +call plug#begin('~/.vim/plugged') +Plug 'neoclide/coc.nvim', {'branch': 'release'} +call plug#end() + +filetype plugin indent on + +" ======= coc settings +set updatetime=300 +set shortmess+=c + +" Use leader T to show documentation in preview window +nnoremap t :call show_documentation() + + +function! s:show_documentation() + if (index(['vim','help'], &filetype) >= 0) + execute 'h '.expand('<cword>') + else + call CocAction('doHover') + endif +endfunction + +" instead of having ~/.vim/coc-settings.json +let s:LSP_CONFIG = { +\ 'flow': { +\ 'command': exepath('flow'), +\ 'args': ['lsp'], +\ 'filetypes': ['javascript', 'javascriptreact'], +\ 'initializationOptions': {}, +\ 'requireRootPattern': 1, +\ 'settings': {}, +\ 'rootPatterns': ['.flowconfig'] +\ } +\} + +let s:languageservers = {} +for [lsp, config] in items(s:LSP_CONFIG) + let s:not_empty_cmd = !empty(get(config, 'command')) + if s:not_empty_cmd | let s:languageservers[lsp] = config | endif +endfor + +if !empty(s:languageservers) + call coc#config('languageserver', s:languageservers) + endif +``` + +## LanguageClient-neovim {#toc-languageclient-neovim} + +Another way to add support for Flow in Vim is to use [LanguageClient-neovim](https://github.com/autozimu/LanguageClient-neovim). + +* Suports vim 8 and neovim +* Adds completions to omnifunc +* Checks JavaScript files for type errors on save +* Look up types under cursor + +### Requirements {#toc-requirements} + +* Requires Flow to be installed and available on your path. +* Requires projects containing JavaScript files to be initialised with flow init. +* Requires JavaScript files to be marked with /* @flow */ at the top. + +### Pathogen {#toc-pathogen} + +```sh +cd ~/.vim/bundle +git clone git://github.com/autozimu/LanguageClient-neovim.git +``` + +### NeoBundle {#toc-neobundle} + +Add this to your ~/.vimrc + +```vim + NeoBundleLazy 'autozimu/LanguageClient-neovim', { + \ 'autoload': { + \ 'filetypes': 'javascript' + \ }} +``` + +With Flow build step, using flow-bin + +```vim + NeoBundleLazy 'autozimu/LanguageClient-neovim', { + \ 'autoload': { + \ 'filetypes': 'javascript' + \ }, + \ 'build': { + \ 'mac': 'npm install -g flow-bin', + \ 'unix': 'npm install -g flow-bin' + \ }} +``` + +### VimPlug {#toc-vimplug} + +```vim + Plug 'autozimu/LanguageClient-neovim', { + \ 'branch': 'next', + \ 'do': 'bash install.sh && npm install -g flow-bin', + \ } +``` + +### Setup {#toc-setup} +```vim +let g:LanguageClient_rootMarkers = { +\ 'javascript': ['.flowconfig', 'package.json'] +\ } +let g:LanguageClient_serverCommands={ +\ 'javascript': ['flow', 'lsp'], +\ 'javascript.jsx': ['flow', 'lsp'] +\} + +" check the type under cursor w/ leader T +nnoremap t :call LanguageClient_textDocument_hover() +nnoremap y :call LanguageClient_textDocument_definition() +``` diff --git a/_src/editors/vscode.md b/_src/editors/vscode.md new file mode 100644 index 00000000000..b1fce3373c9 --- /dev/null +++ b/_src/editors/vscode.md @@ -0,0 +1,20 @@ +--- +title: Visual Studio Code +slug: /editors/vscode +--- + +![Screenshot of Flow Language Support](/img/flow_for_vscode.gif) + +Support for Flow in [Visual Studio Code](https://code.visualstudio.com/) is provided by +the [Flow Language Support](https://marketplace.visualstudio.com/items?itemName=flowtype.flow-for-vscode) +extension. It provides all the functionality you would expect: + +- IntelliSense (Autocomplete) +- Go to Definition / Peek Definition +- Diagnostics (Errors, Warnings) +- Hover type information +- Toggleable code coverage reports + +## Installation + +Search for "Flow Language Support" in the VS Code extensions panel or install through the [Marketplace](https://marketplace.visualstudio.com/items?itemName=flowtype.flow-for-vscode). diff --git a/_src/editors/webstorm.md b/_src/editors/webstorm.md new file mode 100644 index 00000000000..bccca7b354a --- /dev/null +++ b/_src/editors/webstorm.md @@ -0,0 +1,8 @@ +--- +title: WebStorm +slug: /editors/webstorm +--- + +Webstorm installation instructions can be found here: +- [WebStorm 2016.3](https://www.jetbrains.com/help/webstorm/2016.3/using-the-flow-type-checker.html) +- [WebStorm 2017.1](https://www.jetbrains.com/help/webstorm/2017.1/flow-type-checker.html) diff --git a/_src/enums/defining-enums.md b/_src/enums/defining-enums.md new file mode 100644 index 00000000000..9810332c91e --- /dev/null +++ b/_src/enums/defining-enums.md @@ -0,0 +1,243 @@ +--- +title: Defining enums +slug: /enums/defining-enums +--- + +Learn how to define a Flow Enum. Looking for a quick overview? Check out the [Quickstart Guide](../#toc-quickstart). + +An enum declaration is a statement. Its name defines both a value (from which to [access its members](../using-enums/#toc-accessing-enum-members), +and call its [methods](../using-enums/#toc-methods)), and a type (which can be [used as an annotation](../using-enums/#toc-using-as-a-type-annotation) for the type of its members). + +Enum members must all be of the same type, and those members can be one of four types: +[string](#toc-string-enums), [number](#toc-number-enums), [boolean](#toc-boolean-enums), and [symbol](#toc-symbol-enums). + +Every enum has some common properties: + +#### Consistent member type {#toc-consistent-member-type} +The type of the enum members must be consistent. For example, you can’t mix `string` and `number` members in one enum. +They must all be strings, numbers, or booleans (you do not provide values for `symbol` based enums). + +#### Member name starting character {#toc-member-name-starting-character} +Member names must be valid identifiers (e.g. not start with numbers), and must not start with lowercase `a` through `z`. +Names starting with those letters are reserved for enum [methods](../using-enums/#toc-methods) (e.g. `Status.cast(...)`). + +This is not allowed: + +```js flow-check +enum Status { + active, // Error: names can't start with lowercase 'a' through 'z' +} +``` + +#### Unique member names {#toc-unique-member-names} +Member names must be unique. This is not allowed: + +```js flow-check +enum Status { + Active, + Active, // Error: the name 'Active` was already used above +} +``` + +#### Literal member values {#toc-literal-member-values} +If you specify a value for an enum member, it must be a literal (string, number, or boolean), not a computed value. This is not allowed: + +```js flow-check +enum Status { + Active = 1 + 2, // Error: the value must be a literal +} +``` + +#### Unique member values {#toc-unique-member-values} +Member values must be unique. This is not allowed: + +```js flow-check +enum Status { + Active = 1, + Paused = 1, // Error: the value has already been used above +} +``` + +#### Fixed at declaration {#toc-fixed-at-declaration} +An enum is not extendable, so you can’t add new members after the fact while your code is running. +At runtime, enum member values can’t change and the members can’t be deleted. In this way they act like a frozen object. + + +## String enums {#toc-string-enums} +String enums are the default. If you don’t specify an `of` clause (e.g. `enum Status of number {}`, `enum Status of symbol {}`, etc.), +and do not specify any values (e.g. `enum Status {Active = 1}`) then the definition will default to be a string enum. + +Unlike the other types of enums (e.g. number enums), you can either specify values for the enum members, or not specify values and allow them to be defaulted. + +If you don’t specify values for your enum members, they default to strings which are the same as the name of your members. + +```js flow-check +enum Status { + Active, + Paused, + Off, +} +``` +Is the same as: + +```js flow-check +enum Status { + Active = 'Active', + Paused = 'Paused', + Off = 'Off', +} +``` +You must consistently either specify the value for all members, or none of the members. This is not allowed: + +```js flow-check +enum Status { + Active = 'active', + Paused = 'paused', + Off, // Error: you must specify a value for all members (or none of the members) +} +``` +Optionally, you can use an `of` clause: + +```js flow-check +enum Status of string { + Active, + Paused, + Off, +} +``` + +We infer the type of the enum based on its values if there is no `of` clause. +Using an `of` clause will ensure that if you use incorrect values, the error message will always interpret it as an enum of that type. + + +## Number enums {#toc-number-enums} +Number enums must have their values specified. + +You can specify a number enum like this: + +```js flow-check +enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +``` +Optionally, you can use an `of` clause. +This does not affect the type-checking behavior of a valid Flow Enum, +it just ensures that all enum members are `number`s as the definition site. + +```js flow-check +enum Status of number { + Active = 1, + Paused = 2, + Off = 3, +} +``` + +We do not allow defaulting of number enums (unlike some other languages), because if a member from the middle of such an enum is added or removed, +all subsequent member values would be changed. This can be unsafe (e.g. push safety, serialization, logging). + Requiring the user to be explicit about the renumbering makes them think about the consequences of doing so. + +The value provided must be a number literal. (Note: there is no literal for negative numbers in JavaScript, they are the application of a unary `-` operation on a number literal.) +We could expand allowed values in the future to include certain non-literals, if requests to do so arise. + + +## Boolean enums {#toc-boolean-enums} +Boolean enums must have their values specified. Boolean enums can only have two members. + +You can specify a boolean enum like this: + +```js flow-check +enum Status { + Active = true, + Off = false, +} +``` +Optionally, you can use an `of` clause. +This does not affect the type-checking behavior of a valid Flow Enum, +it just ensures that all enum members are `boolean`s as the definition site. + +```js flow-check +enum Status of boolean { + Active = true, + Off = false, +} +``` + + +## Symbol enums {#toc-symbol-enums} +Symbol enums can’t have their values specified. Each member is a new symbol, with the symbol description set to the name of the member. +You must use the `of` clause with symbol enums, to distinguish them from string enums, which are the default when omitting values. + +You can specify a symbol enum like this: + +```js flow-check +enum Status of symbol { + Active, + Paused, + Off, +} +``` + + +## Flow Enums with Unknown Members {#toc-flow-enums-with-unknown-members} +You can specify that your enum contains "unknown members" by adding a `...` to the end of the declaration: + +```js flow-check +enum Status { + Active, + Paused, + Off, + ... +} +const status: Status = Status.Active; + +switch (status) { + case Status.Active: break; + case Status.Paused: break; + case Status.Off: break; +} +``` + +When this is used, Flow will always require a `default` when [switching over the enum](../using-enums/#toc-exhaustive-checking-with-unknown-members), +even if all known enum members are checked. The `default` checks for "unknown" members you haven't explicitly listed. + +This feature is useful when an enum value crosses some boundary and the enum declaration on each side may have different memebers. +For example, an enum definition which is used on both the client and the server: an enum member could be added, which would be immediately seen by the server, +but could be sent to an outdated client which isn't yet aware of the new member. + +One use case for this would be the JS output of [GraphQL Enums](https://graphql.org/learn/schema/#enumeration-types): +Flow Enums with unknown members could be used instead of the added `'%future added value'` member. + + +## Enums at runtime {#toc-enums-at-runtime} +Enums exist as values at runtime. We use a [Babel transform](https://www.npmjs.com/package/babel-plugin-transform-flow-enums) to transform +Flow Enum declarations into calls to the [enums runtime](https://www.npmjs.com/package/flow-enums-runtime) (read more in the [enabling enums documentation](../enabling-enums/)). +We use a runtime so all enums can share an implementation of the enum [methods](../using-enums/#toc-methods). + +We use `Object.create(null)` for enums' prototype (which has the enum methods), so properties in `Object.prototype` will not pollute enums. +The only own properties of the enum object are the enum members. The members are non-enumerable (use the [`.members()` method](../using-enums/#toc-members) for that). +The entire enum object is frozen, so it cannot be modified. + + +## Style guide {#toc-style-guide} + +#### Naming enums {#toc-naming-enums} +We encourage you to define enum names in `PascalCase`, following the naming conventions of other types. All caps names (e.g. `STATUS`) are harder to read and discouraged. + +We encourage you to name enums in the singular. E.g. `Status`, not `Statuses`. Just like the type of `true` and `false` is `boolean`, not `booleans`. + +Don't append `Enum` to the name (e.g. don't name your enum `StatusEnum`). This is unnecessary, just like we don't append `Class` to every class name, and `Type` to every type alias. + +#### Naming enum members {#toc-naming-enum-members} +We encourage you to define enum member names in `PascalCase`. All caps names (e.g. `ACTIVE`) are harder to read and discouraged. +Additionally, since Flow enforces that these are constants, you don't need to use the name to signal that intent to the programmer. + +See also: the rule about [enum member name starting characters](#toc-member-name-starting-character). + +#### Don't create a separate type {#toc-don-t-create-a-separate-type} +A Flow Enum, like a class, is both a type and a value. You don't need to create a separate type alias, you can use the enum name. + +#### Use dot access for accessing members {#toc-use-dot-access-for-accessing-members} +Prefer `Status.Active` vs. `const {Active} = Status;`. This makes it easier find uses of the enum with text search, and makes it clearer to the reader what enum is involved. + Additionally, this is required for [switch statements involving enums](../using-enums/#toc-exhaustively-checking-enums-with-a-switch). diff --git a/_src/enums/enabling-enums.md b/_src/enums/enabling-enums.md new file mode 100644 index 00000000000..2c6616ec3ad --- /dev/null +++ b/_src/enums/enabling-enums.md @@ -0,0 +1,57 @@ +--- +title: Enabling enums in your project +slug: /enums/enabling-enums +--- + +## Upgrade tooling {#toc-upgrade-tooling} +To enable Flow Enums in your repo, you must first update the following packages: + +- Upgrade to at least Flow 0.159 + - Flow needs to have some configuration set to enable enums - see below. +- Upgrade [Prettier](https://prettier.io/) to at least version 2.2 + - As of that version, Prettier can handle parsing and pretty printing Flow Enums out of the box. + - You must use the `flow` [parser option](https://prettier.io/docs/en/options.html#parser) for JavaScript files to be able to format Flow Enums. +- Upgrade [Babel](https://babeljs.io/) to at least version 7.13.0 + - As of that version, Babel can parse Flow Enums. However, to enable this parsing some configuration needs to be supplied, + and additionally it does not include the transform required - see below. +- Upgrade [jscodeshift](https://github.com/facebook/jscodeshift) to at least version 0.11.0 +- Upgrade [hermes-parser](https://www.npmjs.com/package/hermes-parser) to at least version 0.4.8 +- For ESLint, either: + - Use [hermes-eslint](https://www.npmjs.com/package/hermes-eslint) as your ESLint parser, at least version 0.4.8 + - Or upgrade [babel-eslint](https://github.com/babel/babel-eslint) to version 10.1.0 + - As of that version, `babel-eslint` can handle Flow Enums out of the box. + - Do not upgrade to 11.x, this branch does not support Flow Enums. + - Or use another solution using Babel 7.13.0 or later, with Flow enabled - this may also work + +If you have any other tool which examines your code, you need to update it as well. If it uses [flow-parser](https://www.npmjs.com/package/flow-parser), +[hermes-parser](https://www.npmjs.com/package/hermes-parser) or `@babel/parser`, upgrade those as per the instructions above. +If it uses some other parser, you will need to implement parsing Flow Enums in that parser. You can look at the existing code in Babel, Flow, and Hermes parsers to guide your work. + + +## Enable enums {#toc-enable-enums} +- In your `.flowconfig`, under the `[options]` heading, add `enums=true` +- Add the Flow Enums Babel transform. It turns enum declaration AST nodes into calls to the runtime: + [babel-plugin-transform-flow-enums](https://www.npmjs.com/package/babel-plugin-transform-flow-enums). + Add it to your development dependencies and adjust your Babel configuration to use the transform. + The transform by default requires the runtime package directly (below), but you can configure this. +- Add the Flow Enum runtime package to your production dependencies. + This will be required and used at runtime to create Flow Enums: [flow-enums-runtime](https://www.npmjs.com/package/flow-enums-runtime) + + +## Enable suggested ESLint rules {#toc-enable-suggested-eslint-rules} +Enums can be exhaustively checked in `switch` statements, so may increase the use of `switch` statements compared to before. +To prevent common issues with `switch` statements, we suggest you enable these ESLint rules (at least as warnings): + +- [no-fallthrough](https://eslint.org/docs/rules/no-fallthrough): + This prevents the user from accidentally forgetting a `break` statement at the end of their switch case, while supporting common use-cases. +- [no-case-declarations](https://eslint.org/docs/rules/no-case-declarations): + This prevents lexicaly scoped declarations (`let`, `const`) from being introduced in a switch case, without wrapping that case in a new block. + Otherwise, declarations in different cases could conflict. + +We also have some Flow Enums specific rules as part of [eslint-plugin-fb-flow](https://www.npmjs.com/package/eslint-plugin-fb-flow): +- [use-flow-enums](https://www.npmjs.com/package/eslint-plugin-fb-flow#use-flow-enums): + Suggests that enum-like `Object.freeze` and `keyMirror` usage be turned into Flow Enums instead. +- [flow-enums-default-if-possible](https://www.npmjs.com/package/eslint-plugin-fb-flow#flow-enums-default-if-possible): + Auto-fixes string enums with specified values identical to the member names to defaulted enums. +- [no-flow-enums-object-mapping](https://www.npmjs.com/package/eslint-plugin-fb-flow#no-flow-enums-object-mapping): + Suggests using a function with a switch to map enum values to other values, instead of an object literal. diff --git a/_src/enums/index.md b/_src/enums/index.md new file mode 100644 index 00000000000..29fb8c8bc7e --- /dev/null +++ b/_src/enums/index.md @@ -0,0 +1,145 @@ +--- +title: Flow Enums +description: "Define a fixed set of constants which create their own type. Exhaustively checked in switch statements." +slug: /enums +--- + +Flow Enums define a fixed set of constants which create their own type. + +Unlike other features of Flow, Flow Enums exist as values at runtime, as well as existing as types. + +[Read how to enable Flow Enums in your project](./enabling-enums/). + + +## Benefits {#toc-benefits} +Enums provide several benefits over existing patterns: + +* Reduce repetition: Enum declarations provide both the type and the value of the enum. +* Improve Flow performance: Enums are guaranteed to have good type-checking performance, + unlike unions which may be expensive to type-check in certain situations. +* Enable new functionality: Enums come with a `cast` [method](./using-enums/#toc-methods), which converts from a primitive type to an enum type safely. +* Enhance safety: Enums define their own type which does not implicitly coerce to and from other types (e.g. from `string`s), + and are required to be [exhaustively checked in switch statements](./using-enums/#toc-exhaustively-checking-enums-with-a-switch). These properties can help prevent logic bugs. + + +## Quickstart {#toc-quickstart} + +#### [Defining enums](./defining-enums) {#toc-defining-enums-defining-enums} +An enum named `Status` with three members: `Active`, `Paused`, and `Off`. + +```js flow-check +enum Status { + Active, + Paused, + Off, +} +``` +By default, enums define members with string values which mirror their names. You can also explicitly set values: +```js flow-check +enum Status { + Active = 'active', + Paused = 'paused', + Off = 'off', +} +``` +You can use numbers as well: +```js flow-check +enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +``` +Values must be unique, literals, and all of the same type. Check out the [full docs on defining enums](./defining-enums/) to learn more. + + +#### [Using enums](./using-enums/) {#toc-using-enums-using-enums} +To access an enum member, use dot access: + +```js +Status.Active +``` +To use the enum type as an annotation, use the enum name: + +```js +const status: Status = Status.Active; +``` +Cast from the representation type (in this case, a `string`) to the enum type: + +```js +const status: Status | void = Status.cast(someString); +``` +You can easily provide a default value with the `??` operator: + +```js +const status: Status = Status.cast(someString) ?? Status.Off; +``` +Read more about the [other methods enums provide](./using-enums/#toc-methods), including `isValid`, `members`, and `getName`. + +Cast an enum type to its representation type (must be done explicitly): + +```js +(status: string) +``` +Checks of enums in `switch` statements are exhaustive - we ensure you check all members: +```js flow-check +enum Status { + Active, + Paused, + Off, +} +const status: Status = Status.Active; + +// ERROR: Incomplete exhaustive check +switch (status) { + case Status.Active: break; + case Status.Paused: break; + // We forgot to add `case: Status.Off:` here, resulting in error above. + // Using `default:` would also work to check all remaining members. +} +``` +Read more about [exhaustively checking enums](./using-enums/#toc-exhaustively-checking-enums-with-a-switch). + +Check out the [the full docs on using enums](./using-enums/) to learn more. + + +## When to use Flow Enums {#toc-when-to-use-flow-enums} +If you previously defined a union type of literals, you can use an enum to define that type instead. Instead of + +```js flow-check +type Status = + | 'Active' + | 'Paused' + | 'Off'; + +const x: Status = 'Active'; +``` + +or +```js flow-check +const Status = Object.freeze({ + Active: 'Active', + Paused: 'Paused', + Off: 'Off', +}); +type StatusType = $Keys; +const x: StatusType = Status.Active; +``` + +you can use: +```js flow-check +enum Status { + Active, + Paused, + Off, +} +const x: Status = Status.Active; +``` + +See [migrating from legacy patterns](./migrating-legacy-patterns) to learn more about migrating legacy JavaScript enum patterns to Flow Enums. + + +## When to not use Flow Enums {#toc-when-to-not-use-flow-enums} +Enums are designed to cover many use cases and exhibit certain benefits. The design makes a variety of trade-offs to make this happen, and in certain situations, +these trade-offs might not be right for you. In those cases, you can continue to use existing patterns to satisfy your use cases. +[Read more about those situations](./using-enums/#toc-when-to-not-use-enums). diff --git a/_src/enums/migrating-legacy-patterns.md b/_src/enums/migrating-legacy-patterns.md new file mode 100644 index 00000000000..2b2687e5bf6 --- /dev/null +++ b/_src/enums/migrating-legacy-patterns.md @@ -0,0 +1,224 @@ +--- +title: Migrating from legacy patterns +slug: /enums/migrating-legacy-patterns +--- + +Learn how to migrate to Flow Enums from legacy JavaScript enum patterns like `Object.freeze`. + +First, learn how to [update the enum definition site](#toc-updating-definitions), and next learn how to [update files that import and use the enum](#toc-updating-usage). + +## Updating definitions {#toc-updating-definitions} + +#### Object.freeze {#toc-object-freeze} +If you are using `Object.freeze`, you can migrate to an enum if the values of the object are: + +* All the same primitive type, and that type is `boolean`, `string`, `number`, or `symbol`. +* All literals. +* Contain no duplicate values. + +Replace + +```js flow-check +const Status = Object.freeze({ + Active: 1, + Paused: 2, + Off: 3, +}); + +export type StatusType = $Values; + +export default Status; +``` + +with +```js flow-check +export default enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +``` + +- Check to ensure that the key names do not start with lowercase ‘a’-‘z’ (disallowed in enums). If they do, you’ll need to rename the member names. +- Remove any usage of `$Keys<...>` or `$Values<...>` on the enum type, these are no longer needed as a Flow Enum defines a type itself (its name). +- Delete any type exports based on the enum, as you just need to export the Flow Enum. A Flow Enum acts as both a type and a value (like a class). + +Then, take a look at [how to update files that import and use the enum](#toc-updating-usage). + + +#### keyMirror {#toc-keymirror} +The `keyMirror` utility creates an object whose values are mirrors of its key names. You can replace `keyMirror` usage with a string based enum. + +Replace + +```js +import keyMirror from 'keyMirror'; + +const Status = keyMirror({ + Active: null, + Paused: null, + Off: null, +}); + +export type StatusType = $Keys; + +export default Status; +``` + +with + +```js flow-check +export default enum Status { + Active, + Paused, + Off, +} +``` + +- Check to ensure that the key names do not start with lowercase ‘a’-‘z’ (disallowed in enums). If they do, you’ll need to rename the member names. +- Remove any usage of `$Keys<...>` on the enum type, it's no longer needed as a Flow Enum defines a type itself (its name). +- Delete any type exports based on the enum, you just need to export the Flow Enum. A Flow Enum acts as both a type and a value (like a class). + +Then, take a look at [how to update files that import and use the enum](#toc-updating-usage). + + +## Updating usage {#toc-updating-usage} + +#### Fix type imports {#toc-fix-type-imports} +Previous patterns required you to export (and then import) a type separate from the enum itself. +Flow Enums are both types and values (like a class), so you just need to export the Flow Enum itself. Since there is now one export, you only need one import. +Read more about [exporting enums](../using-enums/#toc-exporting-enums) and [importing enums](../using-enums/#toc-importing-enums). + +If you previously had: +```js flow-check +const Status = Object.freeze({ + Active: 1, + Paused: 2, + Off: 3, +}); +export type StatusType = $Values; +export default Status; +``` + +And you've replaced it with: +```js flow-check +export default enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +``` + +Then you need to fix the imports as well: + +##### If both type and value were imported {#toc-if-both-type-and-value-were-imported} +For a user of the enum, if you previously imported both the type and the value, you can delete the type import and update annotations used. + +Change +```js +import type {StatusType} from 'status'; + +import Status from 'status'; + +const myStatus: StatusType = Status.Active; +``` +to +```js +// Type import is deleted + +import Status from 'status'; + +const myStatus: Status = Status.Active; // Changed type annotation to just `Status` +``` + +##### If only the type was imported {#toc-if-only-the-type-was-imported} +For a user of the enum, if you previously imported just the type, change the type import to a default import rather than a named import. + +Change +```js +import type {StatusType} from 'status'; + +function isActive(status: StatusType) { ... } +``` +to + +```js +// Remove the braces `{` `}` and changed the name - this is a default import now +import type Status from 'status'; + +function isActive(status: Status) { ... } // Changed type annotation to just `Status` +``` + + +#### Mapping enums to other values {#toc-mapping-enums-to-other-values} +Sometimes you want to map from an enum value to some other value. Previously, we sometimes used object literals for this. +With Flow Enums, use a function with a `switch` instead. The switch is [exhaustively checked](../using-enums/#toc-exhaustively-checking-enums-with-a-switch), +so Flow will ensure you update your mapping when you add or remove Flow Enum members. + +Replace this pattern + +```js +const STATUS_ICON: {[Status]: string} = { + [Status.Active]: 'green-checkmark', + [Status.Paused]: 'grey-pause', + [Status.Off]: 'red-x', +}; +const icon = STATUS_ICON[status]; +``` + +with + +```js +function statusIcon(status: Status): string { + switch (status) { + case Status.Active: + return 'green-checkmark'; + case Status.Paused: + return 'grey-pause'; + case Status.Off: + return 'red-x'; + } +} +const icon = statusIcon(status); +``` +Read more about [mapping enums to other values](../using-enums/#toc-mapping-enums-to-other-values). + + +#### Usage as the representation type (e.g. a string) {#toc-usage-as-the-representation-type-e-g-a-string} +You can't use a Flow Enum directly as its representation type (e.g. a `string`). +If you get Flow errors about using an enum as its representation type, first try to refactor your code so that it expects the enum type instead of the representation type +(e.g. change annotations from `string` to `Status`). If you really want to use the enum as its representation type, you can add in explicit casts. +See [casting to represetation type](../using-enums/#toc-casting-to-representation-type). + + +#### Casting to the enum type {#toc-casting-to-the-enum-type} +If before you cast from an enum's representation type (e.g. `string`) to the enum type with something like this: + +```js +function castToStatus(input: number): StatusType | void { + switch(input) { + case 1: return Status.Active; + case 2: return Status.Paused; + case 3: return Status.Off; + default: return undefined; + } +} + +castToStatus(x); +``` + +You can now just use the [cast](../using-enums/#toc-cast) method: + +```js +Status.cast(x); +``` + + +#### Update switch statements {#toc-update-switch-statements} +Flow Enums are exhaustively checked in `switch` statements. You might need to update your code when you are switching over an enum value. +Read more at [exhaustively checking enums in switch statements](../using-enums/#toc-exhaustively-checking-enums-with-a-switch). + + +#### Operations over enum members {#toc-operations-over-enum-members} +If previously you used functionality like `Object.values`, `Object.keys`, or `for-in` loops to get and operate on the enum members, +you can use the [members method](../using-enums/#toc-members) instead. diff --git a/_src/enums/using-enums.md b/_src/enums/using-enums.md new file mode 100644 index 00000000000..ae02ba1556e --- /dev/null +++ b/_src/enums/using-enums.md @@ -0,0 +1,615 @@ +--- +title: Using enums +slug: /enums/using-enums +--- + +Flow Enums are not a syntax for [union types](../../types/unions/). They are their own type, and each member of a Flow Enum has the same type. +Large union types can cause performance issues, as Flow has to consider each member as a separate type. With Flow Enums, no matter how large your enum is, +Flow will always exhibit good performance as it only has one type to keep track of. + +We use the following enum in the examples below: +```js +enum Status { + Active, + Paused, + Off, +} +``` + +### Accessing enum members {#toc-accessing-enum-members} +Access members with the dot syntax: + +```js +const status = Status.Active; +``` +You can’t use computed access: + +```js flow-check +enum Status { + Active, + Paused, + Off, +} +const x = "Active"; +Status[x]; // Error: computed access on enums is not allowed +``` + +### Using as a type annotation {#toc-using-as-a-type-annotation} +The enum declaration defines both a value (from which you can access the enum members and methods) and a type of the same name, which is the type of the enum members. + +```js +function calculateStatus(): Status { + ... +} + +const status: Status = calculateStatus(); +``` + +### Casting to representation type {#toc-casting-to-representation-type} +Enums do not implicitly coerce to their representation type or vice-versa. +If you want to convert from the enum type to the representation type, you can use an explicit cast `(x: string)`: + +```js flow-check +enum Status { + Active, + Paused, + Off, +} + +const s: string = Status.Active; // Error: 'Status' is not compatible with 'string' +const statusString: string = (Status.Active: string); +``` + +To convert from a nullable enum type to nullable string, you can do: +```js +const maybeStatus: ?Status = ....; +const maybeStatusString: ?string = maybeStatus && (maybeStatus: string); +``` + +If you want to convert from the representation type (e.g. `string`) to an enum type (if valid), check out the [cast method](#toc-cast). + +### Methods {#toc-methods} +Enum declarations also define some helpful methods. + +Below, `TEnum` is the type of the enum (e.g. `Status`), and `TRepresentationType` is the type of the representation type for that enum (e.g. `string`). + +#### .cast {#toc-cast} +Type: `cast(input: ?TRepresentationType): TEnum | void` + +The `cast` method allows you to safely convert a primitive value, like a `string`, to the enum type (if it is a valid value of the enum), and `undefined` otherwise. + +```js +const data: string = getData(); +const maybeStatus: Status | void = Status.cast(data); +if (maybeStatus != null) { + const status: Status = maybeStatus; + // do stuff with status +} +``` + +Set a default value in one line with the `??` operator: +```js +const status: Status = Status.cast(data) ?? Status.Off; +``` + +The type of the argument of `cast` depends on the type of enum. If it is a [string enum](../defining-enums/#toc-string-enums), the type of the argument will be `string`. +If it is a [number enum](../defining-enums/#toc-number-enums), the type of the argument will be `number`, and so on. +If you wish to cast a `mixed` value, first use a `typeof` refinement: +```js +const data: mixed = ...; +if (typeof data === 'string') { + const maybeStatus: Status | void = Status.cast(data); +} +``` + +`cast` uses `this` (representing the object of enum members), so if you want to pass the function itself as a value, you should use an arrow function. For example: +```js +const strings: Array = ...; +// WRONG: const statuses: Array = strings.map(Status.cast); +const statuses: Array = strings.map((input) => Status.cast(input)); // Correct +``` + +Runtime cost: For [mirrored string enums](../defining-enums/#toc-string-enums) (e.g `enum E {A, B}`), as the member names are the same as the values, the runtime cost is constant - +equivalent to calling `.hasOwnProperty`. For other enums, a `Map` is created on the first call, and subsequent calls simply call `.has` on the cached map. +Thus the cost is amoritzed constant. + +#### .isValid {#toc-isvalid} +Type: `isValid(input: ?TRepresentationType): boolean` + +The `isValid` method is like `cast`, but simply returns a boolean: `true` if the input supplied is a valid enum value, and `false` if it is not. + +```js +const data: string = getData(); +const isStatus: boolean = Status.isValid(data); +``` + +`isValid` uses `this` (representing the object of enum members), so if you want to pass the function itself as a value, you should use an arrow function. For example: + +```js +const strings: Array = ...; +// WRONG: const statusStrings = strings.filter(Status.isValid); +const statusStrings = strings.filter((input) => Status.isValid(input)); // Correct +``` + +Runtime cost: The same as described under `.cast` above. + +#### .members {#toc-members} +Type: `members(): Iterator` + +The `members` method returns an [iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators#iterators) (that is iterable) of all the enum members. + +```js +const buttons = []; +function getButtonForStatus(status: Status) { ... } + +for (const status of Status.members()) { + buttons.push(getButtonForStatus(status)); +} +``` +The iteration order is guaranteed to be the same as the order of the members in the declaration. + +The enum is not enumerable or iterable itself (e.g. a for-in/for-of loop over the enum will not iterate over its members), you have to use the `.members()` method for that purpose. + +You can convert the iterable into an `Array` using: `Array.from(Status.members())`. +You can make use of [`Array.from`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from)'s second argument to map over the values at +the same time you construct the array: e.g. + +```js +const buttonArray = Array.from( + Status.members(), + status => getButtonForStatus(status), +); +``` + +#### .getName {#toc-getname} +Type: `getName(value: TEnum): string` + +The `getName` method maps enum values to the string name of that value's enum member. When using `number`/`boolean`/`symbol` enums, +this can be useful for debugging and for generating internal CRUD UIs. For example: +```js +enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +const status: Status = ...; + +console.log(Status.getName(status)); +// Will print a string, either "Active", "Paused", or "Off" depending on the value. +``` +Runtime cost: The same as described under `.cast` above. A single cached reverse map from enum value to enum name is used for `.cast`, `.isValid`, and `.getName`. +The first call of any of those methods will create this cached map. + + +### Exhaustively checking enums with a `switch` {#toc-exhaustively-checking-enums-with-a-switch} +When checking an enum value in a `switch` statement, we enforce that you check against all possible enum members, and don’t include redundant cases. +This helps ensure you consider all possibilities when writing code that uses enums. It especially helps with refactoring when adding or removing members, +by pointing out the different places you need to update. + +```js +const status: Status = ...; + +switch (status) { // Good, all members checked + case Status.Active: + break; + case Status.Paused: + break; + case Status.Off: + break; +} +``` + +You can use `default` to match all members not checked so far: +```js +switch (status) { + case Status.Active: + break; + default: // When `Status.Paused` or `Status.Off` + break; +} +``` + +You can check multiple enum members in one switch case: +```js +switch (status) { + case Status.Active: + case Status.Paused: + break; + case Status.Off: + break; +} +``` + +You must match against all of the members of the enum (or supply a `default` case): +```js flow-check +enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +const status: Status = Status.Active; + +// Error: you haven't checked 'Status.Off' in the switch +switch (status) { + case Status.Active: + break; + case Status.Paused: + break; +} +``` + +You can’t repeat cases (as this would be dead code!): +```js flow-check +enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +const status: Status = Status.Active; + +switch (status) { + case Status.Active: + break; + case Status.Paused: + break; + case Status.Off: + break; + case Status.Paused: // Error: you already checked for 'Status.Paused' + break; +} +``` + +A `default` case is redundant if you’ve already matched all cases: +```js flow-check +enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +const status: Status = Status.Active; + +switch (status) { + case Status.Active: + break; + case Status.Paused: + break; + case Status.Off: + break; + default: // Error: you've already checked all cases, the 'default' is redundant + break; +} +// The following is OK because the `default` covers the `Status.Off` case: +switch (status) { + case Status.Active: + break; + case Status.Paused: + break; + default: + break; +} +``` +Except if you are switching over an enum with [unknown members](../defining-enums/#toc-flow-enums-with-unknown-members). + +If you nest exhaustively checked switches inside exhaustively checked switches, and are returning from each branch, you must add a `break;` after the nested switch: +```js +switch (status) { + case Status.Active: + return 1; + case Status.Paused: + return 2; + case Status.Off: + switch (otherStatus) { + case Status.Active: + return 1; + case Status.Paused: + return 2; + case Status.Off: + return 3; + } + break; +} +``` + +Remember, you can add blocks to your switch cases. They are useful if you want to use local variables: + +```js +switch (status) { + case Status.Active: { + const x = f(); + ... + break; + } + case Status.Paused: { + const x = g(); + ... + break; + } + case Status.Off: { + const y = ...; + ... + break; + } +} +``` +If you didn't add blocks in this example, the two declarations of `const x` would conflict and result in an error. + +Enums are not checked exhaustively in `if` statements or other contexts other than `switch` statements. + + +### Exhaustive checking with unknown members {#toc-exhaustive-checking-with-unknown-members} +If your enum has [unknown members](../defining-enums/#toc-flow-enums-with-unknown-members) (specified with the `...`), e.g. + +```js +enum Status { + Active, + Paused, + Off, + ... +} +``` + +Then a `default` is always required when switching over the enum. The `default` checks for "unknown" members you haven't explicitly listed. + +```js +switch (status) { + case Status.Active: + break; + case Status.Paused: + break; + case Status.Off: + break; + default: + // Checks for members not explicitly listed +} +``` + +You can use the `require-explicit-enum-switch-cases` [Flow Lint](../../linting/flowlint-comments/) to require that all known members are explicitly listed as cases. For example: + +```js flow-check +enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +const status: Status = Status.Active; + +// flowlint-next-line require-explicit-enum-switch-cases:error +switch (status) { + case Status.Active: + break; + case Status.Paused: + break; + default: + break; +} +``` + +You can fix if by doing: +```js +// flowlint-next-line require-explicit-enum-switch-cases:error +switch (status) { + case Status.Active: + break; + case Status.Paused: + break; + case Status.Off: // Added the missing `Status.Off` case + break; + default: + break; +} +``` +The `require-explicit-enum-switch-cases` lint is not one to enable globally, but rather on a per-`switch` basis when you want the behavior. +With normal enums, for each `switch` statement on it, you can either provide a `default` or not, and thus decide if you want to require each case explicitly listed or not. +Similarly for Flow Enums with unknown members, you can also enable this lint on a per-switch basis. + +The lint works for switches of regular Flow Enum types as well. +It in effect bans the usage of `default` in that `switch` statement, by requiring the explicit listing of all enum members as cases. + + +### Mapping enums to other values {#toc-mapping-enums-to-other-values} +There are a variety of reasons you may want to map an enum value to another value, e.g. a label, icon, element, and so on. + +With previous patterns, it was common to use object literals for this purpose, however with Flow Enums we prefer functions which contain a switch, which we can exhaustively check. + +Instead of: +```js +const STATUS_ICON: {[Status]: string} = { + [Status.Active]: 'green-checkmark', + [Status.Paused]: 'grey-pause', + [Status.Off]: 'red-x', +}; +const icon = STATUS_ICON[status]; +``` + +Which doesn't actually guarantee that we are mapping each `Status` to some value, use: +```js +function getStatusIcon(status: Status): string { + switch (status) { + case Status.Active: + return 'green-checkmark'; + case Status.Paused: + return 'grey-pause'; + case Status.Off: + return 'red-x'; + } +} +const icon = getStatusIcon(status); +``` + +In the future if you add or remove an enum member, Flow will tell you to update the switch as well so it's always accurate. + +If you actually want a dictionary which is not exhaustive, you can use a [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map): +```js +const counts = new Map([ + [Status.Active, 2], + [Status.Off, 5], +]); +const activeCount: Status | void = counts.get(Status.Active); +``` + +Flow Enums cannot be used as keys in object literals, as [explained later on this page](#toc-distinct-object-keys). + + +### Enums in a union {#toc-enums-in-a-union} +If your enum value is in a union (e.g. `?Status`), first refine to only the enum type: + +```js +const status: ?Status = ...; + +if (status != null) { + (status: Status); // 'status' is refined to 'Status' at this point + switch (status) { + case Status.Active: break; + case Status.Paused: break; + case Status.Off: break; + } +} +``` +If you want to refine *to* the enum value, you can use `typeof` with the representation type, for example: + +```js +const val: Status | number = ...; + +// 'Status' is a string enum +if (typeof val === 'string') { + (val: Status); // 'val' is refined to 'Status' at this point + switch (val) { + case Status.Active: break; + case Status.Paused: break; + case Status.Off: break; + } +} +``` + + +### Exporting enums {#toc-exporting-enums} +An enum is a type and a value (like a class is). To export both the type and the value, export it like a you would a value: + +```js flow-check +export enum Status {} +``` +Or, as the default export (note: you must always specify an enum name, `export default enum {}` is not allowed): + +```js flow-check +export default enum Status {} +``` + +Using CommonJS: +```js flow-check +enum Status {} +module.exports = Status; +``` + +To export **only** its type, but not the value, you can do: + +```js flow-check +enum Status {} +export type {Status}; +``` +Other functions within the file will still have access to the enum implementation. + + +### Importing enums {#toc-importing-enums} +If you have exported an enum like this: + +```js flow-check +// status.js +export default enum Status { + Active, + Paused, + Off, +} +``` + +You can import it as both a value and a type like this: +```js +import Status from 'status'; + +const x: Status /* used as type */ = Status.Active /* used as value */; +``` + +If you only need to use the type, you can import it as a type: +```js +import type Status from 'status'; + +function printStatus(status: Status) { + ... +} +``` + +Using CommonJS: +```js +const Status = require('status'); +``` + + +### Generic enums {#toc-generic-enums} +There is currently no way to specify a generic enum type, but there have been enough requests that it is something we will look into in the future. + +For some use cases of generic enums, you can currently ask users to supply functions which call the enum [methods](#toc-methods) instead (rather than passing in the enum itself), for example: + +```js +function castToEnumArray( + f: TRepresentationType => TEnum, + xs: Array, +): Array { + return xs.map(f); +} + +castToEnumArray((input) => Status.cast(input), ["Active", "Paused", "Invalid"]); +``` + + +### When to not use enums {#toc-when-to-not-use-enums} +Enums are designed to cover many use cases and exhibit certain benefits. The design makes a variety of trade-offs to make this happen, and in certain situations, +these trade-offs might not be right for you. In these cases, you can continue to use existing patterns to satisfy your use cases. + + +#### Distinct object keys {#toc-distinct-object-keys} +You can’t use enum members as distinct object keys. + +The following pattern works because the types of `LegacyStatus.Active` and `LegacyStatus.Off` are different. One has the type `'Active'` and one has the type `'Off'`. + +```js flow-check +const LegacyStatus = Object.freeze({ + Active: 'Active', + Paused: 'Paused', + Off: 'Off', +}); +const o = { + [LegacyStatus.Active]: "hi", + [LegacyStatus.Off]: 1, +}; +const x: string = o[LegacyStatus.Active]; // OK +const y: number = o[LegacyStatus.Off]; // OK +const z: boolean = o[LegacyStatus.Active]; // Error - as expected +``` +We can’t use the same pattern with enums. All enum members have the same type, the enum type, so Flow can’t track the relationship between keys and values. + +If you wish to map from an enum value to another value, you should use a [function with an exhaustively-checked switch instead](#toc-mapping-enums-to-other-values). + + +#### Disjoint object unions {#toc-disjoint-object-unions} +A defining feature of enums is that unlike unions, each enum member does not form its own separate type. Every member has the same type, the enum type. +This allows enum usage to be analyzed by Flow in a consistently fast way, however it means that in certain situations which require separate types, we can’t use enums. +Consider the following union, following the [disjoint object union](../../types/unions/#toc-disjoint-object-unions) pattern: + +```js flow-check +type Action = + | {type: 'Upload', data: string} + | {type: 'Delete', id: number}; +``` +Each object type in the union has a single common field (`type`) which is used to distinguish which object type we are dealing with. + +We can’t use enum types for this field, because for this mechanism to work, the type of that field must be different in each member of the union, +but enum members all have the same type. + +In the future, we might add the ability for enums to encapsulate additional data besides a key and a primitive value - this would allow us to replace disjoint object unions. + + +#### Guaranteed inlining {#toc-guaranteed-inlining} +Flow Enums are designed to allow for inlining (e.g. [member values must be literals](../defining-enums/#toc-literal-member-values), +[enums are frozen](../defining-enums/#toc-fixed-at-declaration)), however the inlining itself needs to be part of the build system (whatever you use) rather than Flow itself. + +While enum member access (e.g. `Status.Active`) can be inlined (other than [symbol enums](../defining-enums/#toc-symbol-enums) which cannot be inlined due to the nature of symbols), +usage of its methods (e.g. `Status.cast(x)`) cannot be inlined. diff --git a/_src/errors/index.md b/_src/errors/index.md new file mode 100644 index 00000000000..a4a2ef79fd6 --- /dev/null +++ b/_src/errors/index.md @@ -0,0 +1,79 @@ +--- +title: Error Suppressions +slug: /errors +description: "Learn how to suppress Flow's type errors." +--- + +Flow reports many different kinds of errors for many common programming mistakes, but not every JavaScript pattern can be understood by Flow. +If you are confident your code is correct, and that Flow is +erroring too conservatively, you can suppress the error so that +Flow does not report it. + +### What is a Suppression? {#toc-what-is-a-suppression} + +A suppression is a special kind of comment that you can place on the line before a type +error. It tells Flow not to report that error when checking your code. Suppression +comments look like the following: + +``` +// [] extra text +``` + +A suppressor can be one of the following: +- `$FlowFixMe`: for type errors that you intend to fix later +- `$FlowIssue`: for a type error that you suspect is an issue with Flow +- `$FlowExpectedError`: for a location where you expect Flow to produce a type error (for instance, when performing an invalid type cast). +- `$FlowIgnore`: for locations where you want Flow to ignore your code + +Note that all of the suppressors behave identically; we simply recommend using them as described here for your own ease of reference. + +The `` portion of a suppression is optional, but when included specifies which [error code](#toc-making-suppressions-more-granular-with-error-codes) the suppression affects. + +Some examples of suppression comments: + +``` +// $FlowFixMe + +// $FlowIssue[incompatible-type] + +/* $FlowIgnore[prop-missing] some other text here */ + +/* $FlowFixMe[incompatible-cast] this + is a multi-line + comment */ + +{ /* $FlowIssue this is how you suppress errors inside JSX */ } +``` + +In order to be a valid suppression comment, there are also some conditions that must be true: +- No text can precede the suppressor, or come between the suppressor and the code. For example: `// some text then $FlowFixMe` is not a valid suppression, nor is `// $FlowIssue some text [incompatible-type]` or ` //$FlowFixMe [prop-missing]` (note the space here!). +- Suppressions must be on the line immediately before the error they suppress, otherwise they will not apply. + +### Making Suppressions More Granular with Error Codes {#toc-making-suppressions-more-granular-with-error-codes} + +Suppressible Flow errors will also have an error code associated with them (after version 0.127). This code concisely describes the type of issue the error is reporting, and is different between different kinds of errors. + +In order to prevent suppressions from suppressing different kinds of type errors on the same line (by default suppressions without codes suppress every error on the following line), you can add an error code to your suppression. For example: `// $FlowFixMe[incompatible-type]` would only suppress errors with the `incompatible-type` code. So: + +```js flow-check +//$FlowFixMe[incompatible-type] +(3 : string); +``` +would report no errors, but +```js flow-check +//$FlowFixMe[prop-missing] +(3 : string); +``` +would still report a type incompatibility. + +To suppress multiple error codes on the same line, you can stack suppression comments one after another, and they will all apply to the first non-comment line like so: + +```js flow-check +let y : number | { x : number } = 1; + +// $FlowFixMe[incompatible-type] +// $FlowFixMe[prop-missing] +(y.x : string); +``` + +This will suppress both of the two errors on this line. diff --git a/_src/faq.md b/_src/faq.md new file mode 100644 index 00000000000..3171487e16c --- /dev/null +++ b/_src/faq.md @@ -0,0 +1,277 @@ +--- +title: FAQ +description: Have a question about using Flow? Check here first! +slug: /faq +--- + +## I checked that `foo.bar` is not `null`, but Flow still thinks it is. Why does this happen and how can I fix it? + +Flow does not keep track of side effects, so any function call may potentially nullify your check. +This is called [refinement invalidation](../lang/refinements/#toc-refinement-invalidations). Example: + +```js flow-check +type Param = { + bar: ?string, +} +function myFunc(foo: Param): string { + if (foo.bar) { + console.log("checked!"); + return foo.bar; // Flow errors. If you remove the console.log, it works + } + + return "default string"; +} +``` + +You can get around this by storing your checked values in local variables: + +```js flow-check +type Param = { + bar: ?string, +} +function myFunc(foo: Param): string { + if (foo.bar) { + const bar = foo.bar; + console.log("checked!"); + return bar; // Ok! + } + + return "default string"; +} +``` + +## I checked that my value is of type A, so why does Flow still believe it's A | B? + +Refinement invalidation can also occur variables are updated: + +```js flow-check +type T = string | number; + +let x: T = 'hi'; + +function f() { + x = 1; +} + +if (typeof x === 'string') { + f(); + (x: string); +} +``` + +A work around would be to make the variable `const` and refactor your code to avoid the reassignment: + +```js flow-check +type T = string | number; + +const x: T = 'hi'; + +function f(x: T): number { + return 1; +} + +if (typeof x === 'string') { + const xUpdated = f(x); + (xUpdated: number); + (x: string); +} +``` + +## I'm in a closure and Flow ignores the if check that asserts that `foo.bar` is defined. Why? + +In the previous section we showed how refinements are lost after a function call. The exact same thing happens within closures, since +Flow does not track how your value might change before the closure is called: + +```js flow-check +const people = [{age: 12}, {age: 18}, {age: 24}]; +const oldPerson: {age: ?number} = {age: 70}; +if (oldPerson.age) { + people.forEach(person => { + console.log(`The person is ${person.age} and the old one is ${oldPerson.age}`); + }) +} +``` + +The solution here is to move the if check in the `forEach`, or to assign the `age` to an intermediate variable: + +```js flow-check +const people = [{age: 12}, {age: 18}, {age: 24}]; +const oldPerson: {age: ?number} = {age: 70}; +if (oldPerson.age) { + const age = oldPerson.age; + people.forEach(person => { + console.log(`The person is ${person.age} and the old one is ${age}`); + }) +} +``` + +## But Flow should understand that this function cannot invalidate this refinement, right? + +Flow is not [complete](../lang/types-and-expressions/#toc-soundness-and-completeness), so it cannot check all code perfectly. Instead, +Flow will make conservative assumptions to try to be sound. + +## Why can't I use a function in my if-clause to check the type of a property? + +Flow doesn't track refinements made in separated function calls: + +```js flow-check +const add = (first: number, second: number) => first + second; +const val: string | number = 1; +const isNumber = (valueToRefine: mixed) => typeof valueToRefine === 'number'; +if (isNumber(val)) { + add(val, 2); +} +``` + +However, Flow has [predicates functions](../types/functions/#predicate-functions) that can do these checks via `%checks`: + +```js flow-check +const add = (first: number, second: number) => first + second; +const val: string | number = 1; +const isNumber = (valueToRefine: mixed): %checks => typeof valueToRefine === 'number'; +if (isNumber(val)) { + add(val, 2); +} +``` + +## Why can't I pass an `Array` to a function that takes an `Array` + +The function's argument allows `string` values in its array, but in this case Flow prevents the original array from receiving a `number`. +Inside the function, you would be able to push a `number` to the argument array, causing the type of the original array to no longer be accurate. + +You can fix this error by changing the type of the argument to `$ReadOnlyArray`, making it [covariant](../lang/variance/#toc-covariance). +This prevents the function body from pushing anything to the array, allowing it to accept narrower types. + +As an example, this would not work: + +```js flow-check +const fn = (arr: Array) => { + arr.push(123); // Oops! Array was passed in - now inaccurate + return arr; +}; + +const arr: Array = ['abc']; + +fn(arr); // Error! +``` + +but with `$ReadOnlyArray` you can achieve what you were looking for: + +```js flow-check +const fn = (arr: $ReadOnlyArray) => { + // arr.push(321); NOTE! Since you are using $ReadOnlyArray<...> you cannot push anything to it + return arr; +}; + +const arr: Array = ['abc']; + +fn(arr); +``` + +## Why can't I pass `{a: string}` to a function that takes `{a: string | number}` + +The function argument allows `string` values in its field, but in this case Flow prevents the original object from having a `number` written to it. +Within the body of the function you would be able to mutate the object so that the property `a` would receive a `number`, causing the type of the original object to no longer be accurate. + +You can fix this error by making the property [covariant](../lang/variance/#toc-covariance) (read-only): `{+a: string | number}`. +This prevents the function body from writing to the property, making it safe to pass more restricted types to the function. + +As an example, this would not work: + +```js flow-check +const fn = (obj: {a: string | number}) => { + obj.a = 123; // Oops! {a: string} was passed in - now inaccurate + return obj; +}; + +const object: {a: string} = {a: 'str' }; + +fn(object); // Error! +``` + +but with a covariant property you can achieve what you were looking for: + +```js flow-check +const fn = (obj: {+a: string | number}) => { + // obj.a = 123 NOTE! Since you are using covariant {+a: string | number}, you can't mutate it + return obj; +}; + +const object: {a: string} = { a: 'str' }; + +fn(object); +``` + +## Why can't I refine a union of objects? + +There are two potential reasons: +1. You are using inexact objects. +2. You are destructuring the object. When destructuring, Flow loses track of object properties. + +Broken example: + +```js flow-check +type Action = + | {type: 'A', payload: string} + | {type: 'B', payload: number}; + +// Not OK +const fn = ({type, payload}: Action) => { + switch (type) { + case 'A': return payload.length; // Error! + case 'B': return payload + 10; + } +} +``` + +Fixed example: + +```js flow-check +type Action = + | {type: 'A', payload: string} + | {type: 'B', payload: number}; + +// OK +const fn = (action: Action) => { + switch (action.type) { + case 'A': return action.payload.length; + case 'B': return action.payload + 10; + } +} +``` + +## I got a "Missing type annotation" error. Where does it come from? + +Flow requires type annotations at module boundaries to make sure it can scale. To read more about that, check out our [blog post](https://medium.com/flow-type/asking-for-required-annotations-64d4f9c1edf8) about that. + +The most common case you'll encounter is when exporting a function or React component. Flow requires you to annotate inputs. For instance in this example, Flow will complain: + +```js flow-check +export const add = a => a + 1; +``` + +The fix here is to add types to the parameters of `add`: + +```js flow-check +export const add = (a: number): number => a + 1; +``` + +To see how you can annotate exported React components, check out our docs on [HOCs](../react/hoc/#toc-exporting-wrapped-components). + +There are other cases where this happens, and they might be harder to understand. You'll get an error like `Missing type annotation for U` For instance, you wrote this code: + +```js flow-check +const array = ['a', 'b'] +export const genericArray = array.map(a => a) +``` + +Here, Flow will complain on the `export`, asking for a type annotation. Flow wants you to annotate exports returned by a generic function. The type of `Array.prototype.map` is `map(callbackfn: (value: T, index: number, array: Array) => U, thisArg?: any): Array`. The `` corresponds to what is called a [generic](../types/generics/), to express the fact that the type of the function passed to map is linked to the type of the array. + +Understanding the logic behind generics might be useful, but what you really need to know to make your typings valid is that you need to help Flow to understand the type of `genericArray`. + +You can do that by annotating the exported constant: + +```js flow-check +const array = ['a', 'b'] +export const genericArray: Array = array.map(a => a) +``` diff --git a/_src/getting-started.md b/_src/getting-started.md new file mode 100644 index 00000000000..981862a45fc --- /dev/null +++ b/_src/getting-started.md @@ -0,0 +1,23 @@ +--- +title: Getting Started +slug: /getting-started +description: Never used a type system before or just new to Flow? Let's get you up and running in a few minutes. +--- + +Flow is a static type checker for your JavaScript code. It does a lot of work +to make you more productive. Making you code faster, smarter, more confidently, +and to a bigger scale. + +Flow checks your code for errors through **static type annotations**. These +_types_ allow you to tell Flow how you want your code to work, and Flow will +make sure it does work that way. + +```js flow-check +function square(n: number): number { + return n * n; +} + +square("2"); // Error! +``` + +First step: [install Flow](../install). diff --git a/_src/index.md b/_src/index.md new file mode 100644 index 00000000000..01ae475b7ad --- /dev/null +++ b/_src/index.md @@ -0,0 +1,13 @@ +--- +title: Documentation +description: Guides and references for all you need to know about Flow +displayed_sidebar: docsSidebar +spug: / +--- + +Guides and references for all you need to know about Flow. + +import DocCardList from '@theme/DocCardList'; +import docsCategories from '../src/js/docs-categories'; + + diff --git a/_src/install.md b/_src/install.md new file mode 100644 index 00000000000..1df4e4136ba --- /dev/null +++ b/_src/install.md @@ -0,0 +1,163 @@ +--- +title: Installation +slug: /install +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## Setup Compiler + +First you'll need to setup a compiler to strip away Flow types. You can +choose between [Babel](http://babeljs.io/) and +[flow-remove-types](https://github.com/facebook/flow/tree/master/packages/flow-remove-types). + + + + +[Babel](http://babeljs.io/) is a compiler for JavaScript code that has +support for Flow. Babel will take your Flow code and strip out any type +annotations. Read more about [using Babel](../tools/babel). + +First install `@babel/core`, `@babel/cli`, and `@babel/preset-flow` with +either [Yarn](https://yarnpkg.com/) or [npm](https://www.npmjs.com/). + +```bash npm2yarn +npm install --save-dev @babel/core @babel/cli @babel/preset-flow +``` + +Next you need to create a `.babelrc` file at the root of your project with +`"@babel/preset-flow"` in your `"presets"`. + +```json +{ "presets": ["@babel/preset-flow"] } +``` + +If you then put all your source files in a `src` directory you can compile them +to another directory by running: + +```bash +./node_modules/.bin/babel src/ -d lib/ +``` + +You can add this to your `package.json` scripts easily, alongside your `"devDependencies"` on Babel. + +```json +{ + "name": "my-project", + "main": "lib/index.js", + "scripts": { + "build": "babel src/ -d lib/", + "prepublish": "yarn run build" + } +} +``` + +> **Note:** You'll probably want to add a `prepublish` script that runs this +> transform as well, so that it runs before you publish your code to the npm +> registry. + + + + +[flow-remove-types](https://github.com/facebook/flow/tree/master/packages/flow-remove-types) is a small +CLI tool for stripping Flow type annotations from files. It's a lighter-weight +alternative to Babel for projects that don't need everything Babel provides. + +First install `flow-remove-types` with either +[Yarn](https://yarnpkg.com/) or [npm](https://www.npmjs.com/). + +```bash npm2yarn +npm install --save-dev flow-remove-types +``` + +If you then put all your source files in a `src` directory you can compile them +to another directory by running: + +```sh +./node_modules/.bin/flow-remove-types src/ -d lib/ +``` + +You can add this to your `package.json` scripts easily, alongside your `"devDependencies"` on `flow-remove-types`. + +```json +{ + "name": "my-project", + "main": "lib/index.js", + "scripts": { + "build": "flow-remove-types src/ -d lib/", + "prepublish": "yarn run build" + } +} +``` + +> **Note:** You'll probably want to add a `prepublish` script that runs this +> transform as well, so that it runs before you publish your code to the npm +> registry. + + + + +## Setup Flow + +Flow works best when installed per-project with explicit versioning rather than +globally. + +Luckily, if you're already familiar with `npm` or `yarn`, this process should +be pretty familiar! + +### Add a `devDependency` on the `flow-bin` npm package + +```bash npm2yarn +npm install --save-dev flow-bin +``` + +### Add a `"flow"` script to your `package.json` + +```json +{ + "name": "my-flow-project", + "version": "1.0.0", + "devDependencies": { + "flow-bin": "^0.226.0" + }, + "scripts": { + "flow": "flow" + } +} +``` + +### Run Flow + +The first time, run: + +```bash npm2yarn +npm run flow init +``` + +``` +> my-flow-project@1.0.0 flow /Users/Projects/my-flow-project +> flow "init" +``` + +After running `flow` with `init` the first time, run: + +```bash npm2yarn +npm run flow +``` + +``` +> my-flow-project@1.0.0 flow /Users/Projects/my-flow-project +> flow + +No errors! +``` + +## Setup ESLint + +If you use ESLint, you can read [our page on ESLint](../tools/eslint) to set it up to support Flow. diff --git a/_src/lang/annotation-requirement.md b/_src/lang/annotation-requirement.md new file mode 100644 index 00000000000..93273ea1ed9 --- /dev/null +++ b/_src/lang/annotation-requirement.md @@ -0,0 +1,311 @@ +--- +title: Annotation Requirement +slug: /lang/annotation-requirement +--- + +> **Note:** As of version 0.199 Flow uses [Local Type Inference](https://medium.com/flow-type/local-type-inference-for-flow-aaa65d071347) as its inference algorithm. +The rules in this section reflect the main design features in this inference scheme. + +Flow tries to avoid requiring type annotation for parts of programs where types can easily +be inferred from the immediate context of an expression, variable, parameter, etc. + +## Variable declarations + +Take for example the following variable definition +```js +const len = "abc".length; +``` +All information necessary to infer the type of `len` is included in the initializer +`"abc".length`. Flow will first determine that `"abc"` is a string, and then that the +`length` property of a string is a number. + +The same logic can be applied for all `const`-like initializations. Where things +get a little more complicated is when variable initialization spans across multiple statements, +for example in +```js flow-check +declare var maybeString: ?string; + +let len; +if (typeof maybeString === "string") { + len = maybeString.length; +} else { + len = 0; +} +``` +Flow can still determine that `len` is a `number`, but in order to do so it looks +ahead to multiple initializer statements. See section on [variable declarations](../variables) +for details on how various initializer patterns determine the type of a variable, +and when an annotation on a variable declaration is necessary. + +## Function Parameters + +Unlike variable declarations, this kind of "lookahead" reasoning cannot be used to determine +the type of function parameters. Consider the function +```js +function getLength(x) { + return x.length; +} +``` +There are many kinds of `x` on which we could access and return a `length` property: +an object with a `length` property, or a string, just to name a few. If later on in +the program we had the following calls to `getLength` +```js +getLength("abc"); +getLength({ length: 1 }); +``` +one possible inference would be that `x` is a `string | { length: number }`. What this implies, +however, is that the type of `getLength` is determined by any part of the current +program. This kind of global reasoning can lead to surprising action-at-a-distance +behavior, and so is avoided. Instead, Flow requires that function parameters are annotated. Failure to +provide such a type annotation manifests as a `[missing-local-annot]` error on the parameter `x`, +and the body of the function is checked with `x: any`: +```js flow-check +function getLength(x) { + return x.length; +} + +const n = getLength(1); // no error since getLength's parameter type is 'any' +``` + +To fix this error, one can simply annotate `x` as +```js flow-check +function getLength(x: string) { + return x.length; +} +``` +The same requirement holds for class methods +```js flow-check +class WrappedString { + data: string; + setStringNoAnnotation(x) { + this.data = x; + } + setString(x: string) { + this.data = x; + } +} +``` + +## Contextual Typing {#toc-contextual-typing} + +Function parameters do not always need to be explicitly annotated. In the case of a +callback function to a function call, the parameter type can easily +be inferred from the immediate context. Consider for example the following code +```js +const arr = [0, 1, 2]; +const arrPlusOne = arr.find(x => x % 2 === 1); +``` +Flow infers that the type of `arr` is `Array`. Combining this with the builtin +information for `Array.find`, Flow can determine that the type of `x => x % 2 + 1` +needs to be `number => mixed`. This type acts as a *hint* for Flow and provides enough +information to determine the type of `x` as `number`. + +Any attendant annotation can potentially act as a hint to a function parameter, for example +```js flow-check +const fn1: (x: number) => number = x => x + 1; +``` +However, it is also possible that an annotation cannot be used as a function +parameter hint: +```js flow-check +const fn2: mixed = x => x + 1; +``` +In this example the `mixed` type simply does not include enough information to +extract a candidate type for `x`. + +Flow can infer the types for unannotated parameters even when they are nested within +other expressions like objects. For example in +in +```js flow-check +const fn3: { f: (number) => void } = { f: (x) => {(x: string)} }; +``` +Flow will infer `number` as the type of `x`, and so the cast fails. + + +## Function Return Types {#toc-function-return-types} + +Unlike function parameters, a function's return type does not need to be annotated in general. +So the above definition of `getLength` won't raise any Flow errors. + +There are, however, a couple of notable exceptions to this rule. The first one is +class methods. If we included to the `WrappedString` class a `getString` method +that returns the internal `data` property: +```js flow-check +class WrappedString { + data: string; + getString(x: string) { + return this.data; + } +} +``` +Flow would complain that `getString` is missing an annotation on the return. + +The second exception is recursive definitions. A trivial example of this would be +```js flow-check +function foo() { + return bar(); +} + +function bar() { + return foo(); +} +``` +The above code raises a `[definition-cycle]` error, which points to the two locations +that form a dependency cycle, the two missing return annotations. Adding +a return annotation to either function would resolve the issue. + +Effectively, the requirement on an annotation for method returns is a special-case +of the recursive definition restriction. The recursion is possible through access on +`this`. + +## Generic Calls {#toc-generic-calls} + +In calls to [generic functions](../../types/generics) the type of the result may +depend on the types of the values passed in as arguments. +This section discusses how this result is computed, when type arguments are not +explicitly provided. + +Consider for example the definition +```js +declare function map( + f: (T) => U, + array: $ReadOnlyArray, +): Array; +``` +and a potential call with arguments `x => x + 1` and `[1, 2, 3]`: +```js +map(x => x + 1, [1, 2, 3]); +``` +Here Flow infers that the type of `x` is `number`. + +Some other common examples of generic calls are calling the constructor of the generic +[`Set` class](https://github.com/facebook/flow/blob/82f88520f2bfe0fa13748b5ead711432941f4cb9/lib/core.js#L1799-L1801) +or calling `useState` from the React library: +```js flow-check +const set = new Set([1, 2, 3]); + +import { useState } from 'react'; +const [num, setNum] = useState(42); +``` +Flow here infers that the type of `set` is `Set`, and that `num` and `setNum` +are `number` and `(number) => void`, respectively. + +### Computing a Solution + +Computing the result of a generic call amounts to: +1. coming up with a solution for `T` and `U` that does not contain generic parts, +2. replacing `T` and `U` with the solution in the signature of `map`, and +3. performing a call to this new signature of `map`. + +This process is designed with two goals in mind: +* *Soundness*. The results need to lead to a correct call when we reach step (3). +* *Completeness*. The types Flow produces need to be as precise and informative as possible, +to ensure that other parts of the program will be successfully checked. + +Let's see how these two goals come into play in the `map` example from above. + +Flow detects that `$ReadOnlyArray` needs to be compatible with the type of `[1, 2, 3]`. +It can therefore infer that `T` is `number`. + +With the knowledge of `T` it can now successfully check `x => x + 1`. The parameter `x` +is contextually typed as `number`, and thus the result `x + 1` is also a number. +This final constraint allows us to compute `U` as a `number` too. + +The new signature of `map` after replacing the generic parts with the above solution +is +```js +(f: (number) => number, array: $ReadOnlyArray) => Array +``` +It is easy to see that the call would be successfully checked. + +### Errors during Polymorphic Calls + +If the above process goes on smoothly, you should not be seeing any errors associated with the call. +What happens though when this process fails? + +There are two reasons why this process could fail: + +#### Under-constrained Type Parameters + +There are cases where Flow might not have enough information to decide the type of a type parameter. +Let's examine again a call to the builtin generic +[`Set` class](https://github.com/facebook/flow/blob/82f88520f2bfe0fa13748b5ead711432941f4cb9/lib/core.js#L1799-L1801) +constructor, this time without passing any arguments: +```js flow-check +const set = new Set(); +set.add("abc"); +``` +During the call to `new Set`, we are not providing enough information for Flow to +determine the type for `T`, even though the subsequent call to `set.add` clearly +implies that `T` will be a string. Remember that inference of type arguments is +local to the call, so Flow will not attempt to look ahead in later statements +to determine this. + +In the absence of information, Flow would be at liberty to infer *any* type +as `T`: `any`, `mixed`, `empty`, etc. +This kind of decision is undesirable, as it can lead to surprising results. +For example, if we silently decided on `Set` then the call to `set.add("abc")` would +fail with an incompatibility between `string` and `empty`, without a clear indication +of where the `empty` came from. + +So instead, in situations like this, you'll get an `[underconstrained-implicit-instantiation]` error. +The way to fix this error is by adding a type annotation. There a few potential ways to do this: + +- Add an annotation at the call-site in one of two ways: + * an explicit type argument + ```js + const set = new Set(); + ``` + * an annotation on the initialization variable: + ```js + const set: Set = new Set(); + ``` + +- Add a default type on the type parameter `T` at the definition of the class: + ```js + declare class SetWithDefault extends $ReadOnlySet { + constructor(iterable?: ?Iterable): void; + // more methods ... + } + ``` + In the absence of any type information at the call-site, Flow will use the default + type of `T` as the inferred type argument: + ```js + const defaultSet = new SetWithDefault(); // defaultSet is SetWithDefault + ``` + +#### Incompatibility Errors + +Even when Flow manages to infer non-generic types for the type parameters in a generic +call, these types might still lead to incompatibilities either in the current call or in +code later on. + +For example, if we had the following call to `map`: +```js flow-check +declare function map(f: (T) => U, array: $ReadOnlyArray): Array; +map(x => x + 1, [{}]); +``` +Flow will infer `T` as `{}`, and therefore type `x` as `{}`. This will cause an error when checking the arrow function +since the `+` operation is not allowed on objects. + +Finally, a common source of errors is the case where the inferred type in a generic +call is correct for the call itself, but not indicative of the expected use later in the code. +For example, consider +```js flow-check +import { useState } from 'react'; +const [str, setStr] = useState(""); + +declare var maybeString: ?string; +setStr(maybeString); +``` +Passing the string `""` to the call to `useState` makes Flow infer `string` as the type +of the state. So `setStr` will also expect a `string` as input when called later on, +and therefore passing a `?string` will be an error. + +Again, to fix this error it suffices to annotate the expected "wider" type of state +when calling `useState`: +```js +const [str, setStr] = useState(""); +``` + +## Empty Array Literals {#toc-empty-array-literals} +Empty array literals (`[]`) are handled specially in Flow. You can read about their [behavior and requirements](../../types/arrays/#toc-empty-array-literals). diff --git a/_src/lang/depth-subtyping.md b/_src/lang/depth-subtyping.md new file mode 100644 index 00000000000..d77206e51a3 --- /dev/null +++ b/_src/lang/depth-subtyping.md @@ -0,0 +1,68 @@ +--- +title: Depth Subtyping +slug: /lang/depth-subtyping +--- + +Assume we have two [classes](../../types/classes), which have a subtype relationship using `extends`: + +```js flow-check +class Person { + name: string; +} +class Employee extends Person { + department: string; +} +``` + +It's valid to use an `Employee` instance where a `Person` instance is expected. + +```js flow-check +class Person { name: string } +class Employee extends Person { department: string } + +const employee: Employee = new Employee(); +const person: Person = employee; // OK +``` + +However, it is not valid to use an object containing an `Employee` instance +where an object containing a `Person` instance is expected. + +```js flow-check +class Person { name: string } +class Employee extends Person { department: string } + +const employee: {who: Employee} = {who: new Employee()}; +const person: {who: Person} = employee; // Error +``` + +This is an error because objects are mutable. The value referenced by the +`employee` variable is the same as the value referenced by the `person` +variable. + +```js +person.who = new Person(); +``` + +If we write into the `who` property of the `person` object, we've also changed +the value of `employee.who`, which is explicitly annotated to be an `Employee` +instance. + +If we prevented any code from ever writing a new value to the object through +the `person` variable, it would be safe to use the `employee` variable. Flow +provides a syntax for this: + +```js flow-check +class Person { name: string } +class Employee extends Person { department: string } + +const employee: {who: Employee} = {who: new Employee()}; +const person: {+who: Person} = employee; // OK +person.who = new Person(); // Error! +``` + +The plus sign `+` indicates that the `who` property is [covariant](../variance/#toc-covariance). +Using a covariant property allows us to use objects which have subtype-compatible +values for that property. By default, object properties are invariant, which allow +both reads and writes, but are more restrictive in the values they accept. + +Read more about [property variance](../variance/). diff --git a/_src/lang/lazy-modes.md b/_src/lang/lazy-modes.md new file mode 100644 index 00000000000..2d10c3807dc --- /dev/null +++ b/_src/lang/lazy-modes.md @@ -0,0 +1,67 @@ +--- +title: Lazy Mode +slug: /lang/lazy-modes +--- + +By default, the Flow server will typecheck all your code. This way it can answer +questions like "are there any Flow errors anywhere in my code". This is very +useful for tooling, like a continuous integration hook which prevents code +changes which introduce Flow errors. + +However, sometimes a Flow user might not care about all the code. If they are +editing a file `foo.js`, they might only want Flow to typecheck the subset of +the repository needed to answer questions about `foo.js`. Since Flow would only +check a smaller number of files, this would be faster. This is the motivation +behind Flow's lazy mode. + +## Classifying Files {#toc-classifying-files} + +Lazy mode classifes your code into four categories: + +1. **Focused files**. These are the files which the user cares about. +2. **Dependent files**. These are the files which depend on the focused files. +Changes to the focused files might cause type errors in the dependent files. +3. **Dependency files**. These are the files which are needed in order to +typecheck the focused or dependent files. +4. **Unchecked files**. All other files. + +Lazy mode will still find all the JavaScript files and parse them. But it won't +typecheck the unchecked files. + +## Choosing Focused Files {#toc-choosing-focused-files} + +Flow will focus files when they change on disk, using Flow's built-in file watcher +("dfind") or Watchman. + +So, all files that change while Flow is running will be focused. But what about +files that change when Flow is not running? If you're using Git or Mercurial, +Flow will ask it for all of the files that have changed since the mergebase +with "master" (the common ancestor of the current commit and the master branch). + +If you're not using "master" (e.g. "main" instead), you can change this with +the `file_watcher.mergebase_with` config. If you're working from a clone, you +might want to set this to "origin/master" (for Git), which will focus all files +that have changed locally, even if you commit to your local "master" branch. + +The net result is that Flow will find the same errors in lazy mode as in a full +check, so long as there are no errors upstream. For example, if your CI ensures +that there are no errors in "master," then it's redundant for Flow to check all +of the unchanged files for errors that can't exist. + +## Using Lazy Mode {#toc-using-lazy-mode} + +To enable lazy mode, set `lazy_mode=true` in the `.flowconfig`. + +To start Flow in lazy mode manually, run + +```bash +flow start --lazy-mode true +``` + +## Forcing Flow to Treat a File as Focused {#toc-forcing-flow-to-treat-a-file-as-focused} + +You can force Flow to treat one or more files as focused from the CLI. + +```bash +flow force-recheck --focus path/to/A.js path/to/B.js +``` diff --git a/_src/lang/nominal-structural.md b/_src/lang/nominal-structural.md new file mode 100644 index 00000000000..d28d4bd1fea --- /dev/null +++ b/_src/lang/nominal-structural.md @@ -0,0 +1,141 @@ +--- +title: Nominal & Structural Typing +slug: /lang/nominal-structural +--- + +A static type checker can use either the name (nominal typing) or the structure (structural typing) +of types when comparing them against other types (like when checking if one is a [subtype](../subtypes) of another). + +## Nominal typing {#toc-nominal-typing} + +Languages like C++, Java, and Swift have primarily nominal type systems. + +```js +// Pseudo code: nominal system +class Foo { method(input: string) { /* ... */ } } +class Bar { method(input: string) { /* ... */ } } + +let foo: Foo = new Bar(); // Error! +``` + +In this pseudo-code example, the nominal type system errors even though both classes have a method of the same name and type. +This is because the name (and declaration location) of the classes is different. + +## Structural typing {#toc-structural-typing} + +Languages like Go and Elm have primarily structural type systems. + +```js +// Pseudo code: structural system +class Foo { method(input: string) { /* ... */ } } +class Bar { method(input: string) { /* ... */ } } + +let foo: Foo = new Bar(); // Works! +``` + +In this pseudo-code example, the structural type system allows a `Bar` to be used as a `Foo`, +since both classes have methods and fields of the same name and type. + +If the shape of the classes differ however, then a structural system would produce an error: + +```js +// Pseudo code +class Foo { method(input: string) { /* ... */ } } +class Bar { method(input: number) { /* ... */ } } + +let foo: Foo = new Bar(); // Error! +``` + +We've demonstrated both nominal and structural typing of classes, but there are +also other complex types like objects and functions which can also be either +nominally or structurally compared. +Additionally, a type system may have aspects of both structural and nominal systems. + +## In Flow + +Flow uses structural typing for objects and functions, but nominal typing for classes. + +### Functions are structurally typed {#toc-functions-are-structurally-typed} + +When comparing a [function type](../../types/functions) with a function it must have the same structure +in order to be considered valid. + +```js flow-check +type FuncType = (input: string) => void; +function func(input: string) { /* ... */ } +let test: FuncType = func; // Works! +``` + +### Objects are structurally typed {#toc-objects-are-structurally-typed} + +When comparing an [object type](../../types/objects) with an object it must have the same structure +in order to be considered valid. + +```js flow-check +type ObjType = {property: string}; +let obj = {property: "value"}; +let test: ObjType = obj; // Works +``` + +### Classes are nominally typed {#toc-classes-are-nominally-typed} + +When you have two [classes](../../types/classes) with the same structure, they still are not +considered equivalent because Flow uses nominal typing for classes. + +```js flow-check +class Foo { method(input: string) { /* ... */ } } +class Bar { method(input: string) { /* ... */ } } +let test: Foo = new Bar(); // Error! +``` + +If you wanted to use a class structurally you could do that using an [interface](../../types/interfaces): + +```js flow-check +interface Interface { + method(value: string): void; +}; + +class Foo { method(input: string) { /* ... */ } } +class Bar { method(input: string) { /* ... */ } } + +let test1: Interface = new Foo(); // Works +let test2: Interface = new Bar(); // Works +``` + +### Opaque types +You can use [opaque types](../../types/opaque-types) to turn a previously structurally typed alias into a nominal one (outside of the file that it is defined). + +```js flow-check +// A.js +export type MyTypeAlias = string; +export opaque type MyOpaqueType = string; + +const x: MyTypeAlias = "hi"; // Works +const y: MyOpaqueType = "hi"; // Works +``` + +In a different file: + +```js +// B.js +import type {MyTypeAlias, MyOpaqueType} from "A.js"; + +const x: MyTypeAlias = "hi"; // Works +const y: MyOpaqueType = "hi"; // Error! `MyOpaqueType` is not interchangable with `string` +// ^^^^ Cannot assign "hi" to y because string is incompatible with MyOpaqueType +``` + +### Flow Enums + +[Flow Enums](../../enums) do not allow enum members with the same value, but which belong to different enums, to be used interchangeably. + +```js flow-check +enum A { + X = "x", +} +enum B { + X = "x", +} + +const a: A = B.X; // Error! +``` diff --git a/_src/lang/refinements.md b/_src/lang/refinements.md new file mode 100644 index 00000000000..9b11299f45e --- /dev/null +++ b/_src/lang/refinements.md @@ -0,0 +1,284 @@ +--- +title: Type Refinements +slug: /lang/refinements +--- + +Refinements allow us to narrow the type of a value based on conditional tests. + +For example, in the function below `value` is a [union](../../types/unions) of `"A"` or `"B"`. + +```js flow-check +function func(value: "A" | "B") { + if (value === "A") { + (value: "A"); + } +} +``` + +Inside of the `if` block we know that value must be `"A"` because that's the only +time the if-statement will be true. + +The ability for a static type checker to be able to tell that the value inside +the if statement must be `"A"` is known as a refinement. + +Next we'll add an `else` block to our if statement. + +```js flow-check +function func(value: "A" | "B") { + if (value === "A") { + (value: "A"); + } else { + (value: "B"); + } +} +``` + +Inside of the `else` block we know that value must be `"B"` because it can only +be `"A"` or `"B"` and we've removed `"A"` from the possibilities. + +## Ways to refine in Flow + +### `typeof` checks +You can use a `typeof value === ""` check to refine a value to one of the categories supported by the [`typeof`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof) operator. + +The `typeof` operator can output `"undefined"`,`"boolean"`, `"number"`, `"bigint"`, `"string"`, `"symbol"`, `"function"`, or `"object"`. + +Keep in mind that the `typeof` operator will return `"object"` for objects, but also `null` and arrays as well. + +```js flow-check +function func(value: mixed) { + if (typeof value === "string") { + (value: string); + } else if (typeof value === "boolean") { + (value: boolean); + } else if (typeof value === "object") { + // `value` could be null, an array, or an object + (value: null | interface {} | $ReadOnlyArray); + } +} +``` + +To check for `null`, use a `value === null` [equality](#equality-checks) check. + +```js flow-check +function func(value: mixed) { + if (value === null) { + (value: null); // `value` is null + } +} +``` + +To check for [arrays](../../types/arrays), use `Array.isArray`: + +```js flow-check +function func(value: mixed) { + if (Array.isArray(value)) { + (value: $ReadOnlyArray); // `value` is an array + } +} +``` + +### Equality checks + +As shown in the introductory example, you can use an equality check to narrow a value to a specific type. +This also applies to equality checks made in `switch` statements. + +```js flow-check +function func(value: "A" | "B" | "C") { + if (value === "A") { + (value: "A"); + } else { + (value: "B" | "C"); + } + + switch (value) { + case "A": + (value: "A"); + break; + case "B": + (value: "B"); + break; + case "C": + (value: "C"); + break; + } +} +``` + +While in general it is not recommended to use `==` in JavaScript, due to the coercions it performs, +doing `value == null` (or `value != null`) checks `value` exactly for `null` and `void`. +This works well with Flow's [maybe](../../types/maybe) types, which create a union with `null` and `void`. + +```js flow-check +function func(value: ?string) { + if (value != null) { + (value: string); + } else { + (value: null | void); + } +} +``` + +You can refine a union of object types based on a common tag, which we call [disjoint object unions](../../types/unions/#toc-disjoint-object-unions): + +```js flow-check +type A = {type: "A", s: string}; +type B = {type: "B", n: number}; + +function func(value: A | B) { + if (value.type === "A") { + // `value` is A + (value.s: string); // Works + } else { + // `value` is B + (value.n: number); // Works + } +} +``` + +### Truthiness checks + +You can use non-booleans in JavaScript conditionals. +`0`, `NaN`, `""`, `null`, and `undefined` will all coerce to `false` (and so are considered "falsey"). +Other values will coerce to `true` (and so are considered "truthy"). + +```js flow-check +function func(value: ?string) { + if (value) { + (value: string); // Works + } else { + (value: null | void); // Error! Could still be the empty string "" + } +} +``` + +You can see in the above example why doing a truthy check when your value can be a string or number is not suggested: +it is possible to unintentionally check against the `""` or `0`. +We created a [Flow lint](../../linting) called [sketchy-null](../../linting/rule-reference/#toc-sketchy-null) to guard against this scenario: + +```js flow-check +// flowlint sketchy-null:error +function func(value: ?string) { + if (value) { // Error! + } +} +``` + +### `instanceof` checks + +You can use the [instanceof](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof) operator to narrow a value as well. +It checks if the supplied constructor's prototype is anywhere in a value's prototype chain. + +```js flow-check +class A { + amaze(): void {} +} +class B extends A { + build(): void {} +} + +function func(value: mixed) { + if (value instanceof B) { + value.amaze(); // Works + value.build(); // Works + } + + if (value instanceof A) { + value.amaze(); // Works + value.build(); // Error + } + + if (value instanceof Object) { + value.toString(); // Works + } +} +``` + +### Assignments + +Flow follows your control flow and narrows the type of a variable after you have assigned to it. + +```js flow-check +declare const b: boolean; + +let x: ?string = b ? "str" : null; + +(x: ?string); + +x = "hi"; + +// We know `x` must now be a string after the assignment +(x: string); // Works +``` + +### Type Guards + +You can create a reusable refinement by defining a function which is a [type guard](../../types/type-guards/). + +```js flow-check +function nonMaybe(x: ?T): x is T { + return x != null; +} + +function func(value: ?string) { + if (nonMaybe(value)) { + (value: string); // Works! + } +} +``` + +## Refinement Invalidations {#toc-refinement-invalidations} + +It is also possible to invalidate refinements, for example: + +```js flow-check +function otherFunc() { /* ... */ } + +function func(value: {prop?: string}) { + if (value.prop) { + otherFunc(); + value.prop.charAt(0); // Error! + } +} +``` + +The reason for this is that we don't know that `otherFunc()` hasn't done +something to our value. Imagine the following scenario: + +```js flow-check +const obj: {prop?: string} = {prop: "test"}; + +function otherFunc() { + if (Math.random() > 0.5) { + delete obj.prop; + } +} + +function func(value: {prop?: string}) { + if (value.prop) { + otherFunc(); + value.prop.charAt(0); // Error! + } +} + +func(obj); +``` + +Inside of `otherFunc()` we sometimes remove `prop`. Flow doesn't know if the +`if (value.prop)` check is still true, so it invalidates the refinement. + +There's a straightforward way to get around this. Store the value before +calling another function and use the stored value instead. This way you can +prevent the refinement from invalidating. + +```js flow-check +function otherFunc() { /* ... */ } + +function func(value: {prop?: string}) { + if (value.prop) { + const prop = value.prop; + otherFunc(); + prop.charAt(0); + } +} +``` diff --git a/_src/lang/subtypes.md b/_src/lang/subtypes.md new file mode 100644 index 00000000000..0fe6c045ac4 --- /dev/null +++ b/_src/lang/subtypes.md @@ -0,0 +1,148 @@ +--- +title: Subsets & Subtypes +slug: /lang/subtypes +--- + +## What is a subtype? {#toc-what-is-a-subtype} + +A type like `number`, `boolean`, or `string` describes a set of possible +values. A `number` describes every possible number, so a single number +(such as `42`) would be a *subtype* of the `number` type. Conversely, `number` +would be a *supertype* of the type `42`. + +If we want to know whether one type is the subtype of another, we need to look at +all the possible values for both types and figure out if the other has a +_subset_ of the values. + +For example, if we had a `TypeA` which described the numbers 1 through 3 +(a [union](../../types/unions) of [literal types](../../types/literals)), and +a `TypeB` which described the numbers 1 through 5: `TypeA` would be considered +a _subtype_ of `TypeB`, because `TypeA` is a subset of `TypeB`. + +```js flow-check +type TypeA = 1 | 2 | 3; +type TypeB = 1 | 2 | 3 | 4 | 5; +``` + +Consider a `TypeLetters` which described the strings: "A", "B", "C", and a +`TypeNumbers` which described the numbers: 1, 2, 3. Neither of them would +be a subtype of the other, as they each contain a completely different set of +values. + +```js flow-check +type TypeLetters = "A" | "B" | "C"; +type TypeNumbers = 1 | 2 | 3; +``` + +Finally, if we had a `TypeA` which described the numbers 1 through 3, and a +`TypeB` which described the numbers 3 through 5. Neither of them would be a +subtype of the other. Even though they both have 3 and describe numbers, they +each have some unique items. + +```js flow-check +type TypeA = 1 | 2 | 3; +type TypeB = 3 | 4 | 5; +``` + +## When are subtypes used? {#toc-when-are-subtypes-used} + +Most of the work that Flow does is comparing types against one another. + +For example, in order to know if you are calling a function correctly, Flow +needs to compare the arguments you are passing with the parameters the +function expects. + +This often means figuring out if the value you are passing in is a subtype of +the value you are expecting. + +So if you write a function that expects the numbers 1 through 5, any subtype of +that set will be acceptable. + +```js flow-check +function f(param: 1 | 2 | 3 | 4 | 5) { + // ... +} + +declare const oneOrTwo: 1 | 2; // Subset of the input parameters type. +declare const fiveOrSix: 5 | 6; // Not a subset of the input parameters type. + +f(oneOrTwo); // Works! +f(fiveOrSix); // Error! +``` + +## Subtypes of complex types {#toc-subtypes-of-complex-types} + +Flow needs to compare more than just sets of primitive values, it also needs to +be able to compare objects, functions, and every other type that appears in the +language. + +### Subtypes of objects {#toc-subtypes-of-objects} + +You can start to compare two objects by their keys. If one object contains all +the keys of another object, then it may be a subtype. + +For example, if we had an `ObjectA` which contained the key `foo`, and an +`ObjectB` which contained the keys `foo` and `bar`. Then it's possible that +`ObjectB` is a subtype of `ObjectA`, if `ObjectA` is inexact. + +```js flow-check +type ObjectA = {foo: string, ...}; +type ObjectB = {foo: string, bar: number}; + +let objectB: ObjectB = {foo: 'test', bar: 42}; +let objectA: ObjectA = objectB; // Works! +``` + +But we also need to compare the types of the values. If both objects had a key +`foo` but one was a `number` and the other was a `string`, then one would not +be the subtype of the other. + +```js flow-check +type ObjectA = {foo: string, ...}; +type ObjectB = {foo: number, bar: number}; + +let objectB: ObjectB = { foo: 1, bar: 2 }; +let objectA: ObjectA = objectB; // Error! +``` + +If these values on the object happen to be other objects, we would have to +compare those against one another. We need to compare every value +recursively until we can decide if we have a subtype or not. + +### Subtypes of functions {#toc-subtypes-of-functions} + +Subtyping rules for functions are more complicated. So far, we've seen that `A` +is a subtype of `B` if `B` contains all possible values for `A`. For functions, +it's not clear how this relationship would apply. To simplify things, you can think +of a function type `A` as being a subtype of a function type `B` if functions of type +`A` can be used wherever a function of type `B` is expected. + +Let's say we have a function type and a few functions. Which of the functions can +be used safely in code that expects the given function type? + +```js flow-check +type FuncType = (1 | 2) => "A" | "B"; + +declare function f1(1 | 2): "A" | "B" | "C"; +declare function f2(1 | null): "A" | "B"; +declare function f3(1 | 2 | 3): "A"; + +(f1: FuncType); // Error +(f2: FuncType); // Error +(f3: FuncType); // Works! +``` + +- `f1` can return a value that `FuncType` never does, so code that relies on `FuncType` +might not be safe if `f1` is used. Its type is not a subtype of `FuncType`. +- `f2` can't handle all the argument values that `FuncType` does, so code that relies on +`FuncType` can't safely use `f2`. Its type is also not a subtype of `FuncType`. +- `f3` can accept all the argument values that `FuncType` does, and only returns +values that `FuncType` does, so its type is a subtype of `FuncType`. + +In general, the function subtyping rule is this: a function type `B` is a subtype +of a function type `A` if and only if `B`'s inputs are a superset of `A`'s, and `B`'s outputs +are a subset of `A`'s. The subtype must accept _at least_ the same inputs as its parent, +and must return _at most_ the same outputs. + +The decision of which direction to apply the subtyping rule on inputs and outputs is +governed by [variance](../variance), which is the topic of the next section. diff --git a/_src/lang/type-hierarchy.md b/_src/lang/type-hierarchy.md new file mode 100644 index 00000000000..fa39415a8fd --- /dev/null +++ b/_src/lang/type-hierarchy.md @@ -0,0 +1,122 @@ +--- +title: Type Hierarchy +slug: /lang/type-hierarchy +--- + +Types in Flow form a hierarchy based on [subtyping](../subtypes): + +```mermaid +graph BT + +mixed -.- any + +symbol --> mixed +null --> mixed +maybe["Maybe: + ?string"] +maybe --> mixed +null --> maybe +void --> maybe +void --> mixed +string --> maybe +string --> mixed + +union["Union: + number | bigint"] +number --> union +number --> mixed +union --> mixed +bigint --> mixed +bigint --> union + +boolean --> mixed +true --> boolean +false --> boolean + +empty-interface["interface {}"] --> mixed +some-interface["interface {prop: string}"] --> empty-interface +someclass["class A {prop: string}"] --> some-interface +inexact-empty-obj["Inexact empty object: + {...}"] +inexact-empty-obj --> empty-interface +inexact-some-obj["Inexact object: + {prop: string, ...}"] --> inexact-empty-obj +inexact-some-obj --> some-interface +exact-some-obj["Exact object: + {prop: string}"] --> inexact-some-obj +exact-empty-obj["Exact empty object: + {}"] +exact-empty-obj --> inexact-empty-obj +roarray["$ReadOnlyArray<T>"] --> empty-interface +tuple["Tuple: + [T, T]"] +tuple --> roarray +array["Array<T>"] --> roarray + +any-func["Function: + (...$ReadOnlyArray<empty>) => mixed"] +any-func --> empty-interface +some-func["(number) => boolean"] --> any-func +some-func2["(string) => string"] --> any-func + +inter["Intersection: + (number => boolean) & (string => string)"] +inter --> some-func +inter --> some-func2 + +empty --> inter +empty --> null +empty --> void +empty --> true +empty --> false +empty --> exact-some-obj +empty --> exact-empty-obj +empty --> tuple +empty --> array +empty --> string +empty --> number +empty --> bigint +empty --> someclass +empty --> symbol +any-bottom["any"] -.- empty + +click mixed "../../types/mixed" +click any "../../types/any" +click any-bottom "../../types/any" +click empty "../../types/empty" +click boolean "../../types/primitives/#toc-booleans" +click number "../../types/primitives/#toc-numbers" +click string "../../types/primitives/#toc-strings" +click symbol "../../types/primitives/#toc-symbols" +click bigint "../../types/primitives/#toc-bigints" +click null "../../types/primitives/#toc-null-and-void" +click void "../../types/primitives/#toc-null-and-void" +click true "../../types/literals" +click false "../../types/literals" +click union "../../types/unions" +click inter "../../types/intersections" +click maybe "../../types/maybe" +click array "../../types/arrays" +click roarray "../../types/arrays/#toc-readonlyarray" +click tuple "../../types/tuples" +click someclass "../../types/classes" +click empty-interface "../../types/interfaces" +click some-interface "../../types/interfaces" +click exact-some-obj "../../types/objects" +click exact-empty-obj "../../types/objects" +click inexact-some-obj "../../types/objects/#exact-and-inexact-object-types" +click inexact-empty-obj "../../types/objects/#exact-and-inexact-object-types" +click any-func "../../types/functions" +click some-func "../../types/functions" +click some-func2 "../../types/functions" + +classDef default fill:#eee, stroke:#000, stroke-width:1px +``` + +Click on a node to go to the documentation for that type. + +Types appearing higher in this graph are more general, while those appearing lower are more specific. +An arrow pointing from type `A` to type `B` means that `A` is a subtype of `B`. +For example, the type `string` is a subtype of `?string`. + +How can `any` be at both the top and the bottom? Because [it is unsafe](../../types/any/). This is denoted with a dotted line. diff --git a/_src/lang/types-and-expressions.md b/_src/lang/types-and-expressions.md new file mode 100644 index 00000000000..9a9b82ad2bd --- /dev/null +++ b/_src/lang/types-and-expressions.md @@ -0,0 +1,101 @@ +--- +title: Types & Expressions +slug: /lang/types-and-expressions +--- + +In JavaScript there are many types of values: numbers, strings, booleans, +functions, objects, and more. + +```js flow-check +(1234: number); +("hi": string); +(true: boolean); +([1, 2]: Array); +({prop: "value"}: {prop: string}); +(function func(s: string) {}: string => void); +``` + +These values can be used in many different ways: + +```js flow-check +1 + 2; +"foo" + "bar"; +!true; +[1, 2].push(3); +const obj = {prop: "s"}; +let value = obj.prop; +obj.prop = "value"; +function func(s: string) {} +func("value"); +``` + +All of these different expressions create a new type which is a result of the +types of values and the operations run on them. + +```js flow-check +let num: number = 1 + 2; +let str: string = "foo" + "bar"; +``` + +In Flow every value and expression has a type. + +## Figuring out types statically {#toc-figuring-out-types-statically} + +Flow needs a way to be able to figure out the type of every expression. But it +can't just run your code to figure it out, if it did it would be affected by +any issues that your code has. For example, if you created an infinite loop +Flow would wait for it to finish forever. + +Instead, Flow needs to be able to figure out the type of a value by analyzing +it without running it (static analysis). It works its way through every known +type and starts to figure out what all the expressions around them result in. + +For example, to figure out the result of the following expression, Flow needs to +figure out what its values are first. + +```js +val1 + val2; +``` + +If the values are numbers, then the expression results in a number. If the +values are strings, then the expression results in a string. There are a number +of different possibilities here, so Flow must look up what the values are. + +If Flow is unable to figure out what the exact type is for each value, Flow +must figure out what every possible value is and check to make sure that the +code around it will still work with all of the possible types. + +## Soundness and Completeness {#toc-soundness-and-completeness} + +When you run your code, a single expression will only be run with a limited set +of values. But still Flow checks _every_ possible value. In this way Flow is +checking too many things or _over-approximating_ what will be valid code. + +By checking every possible value, Flow might catch errors that will not +actually occur when the code is run. Flow does this in order to be _"sound"_. + +In type systems, ***soundness*** is the ability for a type checker to catch +every single error that _might_ happen at runtime. This comes at the cost of +sometimes catching errors that will not actually happen at runtime. + +On the flip-side, ***completeness*** is the ability for a type checker to only +ever catch errors that _would_ happen at runtime. This comes at the cost of +sometimes missing errors that will happen at runtime. + +In an ideal world, every type checker would be both sound _and_ complete so +that it catches _every_ error that _will_ happen at runtime. + +Flow tries to be as sound and complete as possible. But because JavaScript was +not designed around a type system, Flow sometimes has to make a tradeoff. When +this happens Flow tends to favor soundness over completeness, ensuring that +code doesn't have any bugs. + +Soundness is fine as long as Flow isn't being too noisy and preventing you from +being productive. Sometimes when soundness would get in your way too much, Flow +will favor completeness instead. There's only a handful of cases where Flow +does this. + +Other type systems will favor completeness instead, only reporting real errors +in favor of possibly missing errors. Unit/Integration testing is an extreme +form of this approach. Often this comes at the cost of missing the errors that +are the most complicated to find, leaving that part up to the developer. diff --git a/_src/lang/types-first.md b/_src/lang/types-first.md new file mode 100644 index 00000000000..e3480e3c082 --- /dev/null +++ b/_src/lang/types-first.md @@ -0,0 +1,254 @@ +--- +title: File Signatures (Types-First) +slug: /lang/types-first +--- + +Flow checks codebases by processing each file separately in dependency +order. For every file containing important typing information for the checking +process, a signature needs to be extracted and stored in +main memory, to be used for files that depend on it. Flow relies on annotations +available at the boundaries of files to build these signatures. We call this +requirement of Flow's architecture *Types-First*. + +The benefit of this architecture is dual: + +1. It dramatically improves *performance*, in particular when it comes to +rechecks. Suppose we want Flow to check a file `foo.js`, for which it hasn't +checked its dependencies yet. Flow extracts the dependency signatures just by +looking at the annotations around the exports. This process is mostly +syntactic, and therefore much faster than full type inference that legacy versions +of Flow (prior to v0.125) used to perform in order to generate signatures. + +2. It improves error *reliability*. Inferred types often become complicated, and may +lead to errors being reported in downstream files, far away from their actual source. +Type annotations at file boundaries of files can help localize such errors, and +address them in the file that introduced them. + +The trade-off for this performance benefit is that exported parts of the code need to be +annotated with types, or to be expressions whose type can be trivially inferred +(for example numbers and strings). + +More information on the Types-First architecture can be found in [this post](https://medium.com/flow-type/types-first-a-scalable-new-architecture-for-flow-3d8c7ba1d4eb). + +## How to upgrade your codebase to Types-First {#toc-how-to-upgrade-your-codebase-to-types-first} + +> Note: Types-first has been the default mode since v0.134 and the only available +mode since v0.143. No `.flowconfig` options are necessary to enable it since then. +In case you're upgrading your codebase from a much earlier version here are some +useful tools. + +### Upgrade Flow version {#toc-upgrade-flow-version} + +Types-first mode was officially released with version 0.125, but has been available in +*experimental* status as of version 0.102. If you are currently on an older +Flow version, you’d have to first upgrade Flow. Using the latest Flow version +is the best way to benefit from the performance benefits outlined above. + +### Prepare your codebase for Types-First {#toc-prepare-your-codebase-for-types-first} + +Types-first requires annotations at module boundaries in order to build type +signature for files. If these annotations are missing, then a `signature-verification-failure` +is raised, and the exported type for the respective part of the code will be `any`. + +To see what types are missing to make your codebase types-first ready, add the +following line to the `[options]` section of the `.flowconfig` file: + +``` +well_formed_exports=true +``` + +Consider for example a file `foo.js` that exports a function call to `foo` + +```js +declare function foo(x: T): T; +module.exports = foo(1); +``` + +The return type of function calls is currently not trivially inferable (due to +features like polymorphism, overloading etc.). Their result needs to be annotated +and so you’d see the following error: + +``` +Cannot build a typed interface for this module. You should annotate the exports +of this module with types. Cannot determine the type of this call expression. Please +provide an annotation, e.g., by adding a type cast around this expression. +(`signature-verification-failure`) + + 4│ module.exports = foo(1); + ^^^^^^ +``` + +To resolve this, you can add an annotation like the following: + +```js +declare function foo(x: T): T; +module.exports = (foo(1): number); +``` + +> Note: As of version 0.134, types-first is the default mode. This mode automatically +enables `well_formed_exports`, so you would see these errors without explicitly +setting this flag. It is advisable to set `types_first=false` during this part of +the upgrade. + +#### Seal your intermediate results {#toc-seal-your-intermediate-results} + +As you make progress adding types to your codebase, you can include directories +so that they don’t regress as new code gets committed, and until the entire project +has well-formed exports. You can do this by adding lines like the following to your +.flowconfig: + +``` +well_formed_exports.includes=/path/to/directory +``` + +> Warning: That this is a *substring* check, not a regular expression (for performance +reasons). + + +#### A codemod for large codebases {#toc-a-codemod-for-large-codebases} + + +Adding the necessary annotations to large codebases can be quite tedious. To ease +this burden, we are providing a codemod based on Flow's inference, that can be +used to annotate multiple files in bulk. See [this tutorial](../../cli/annotate-exports/) for more. + + +### Enable the types-first flag {#toc-enable-the-types-first-flag} + +Once you have eliminated signature verification errors, you can turn on the types-first +mode, by adding the following line to the `[options]` section of the `.flowconfig` file: + +``` +types_first=true +``` + +You can also pass `--types-first` to the `flow check` or `flow start` commands. + +The `well_formed_exports` flag from before is implied by `types_first`. Once +this process is completed and types-first has been enabled, you can remove +`well_formed_exports`. + +Unfortunately, it is not possible to enable types-first mode for part of your repo; this switch +affects all files managed by the current `.flowconfig`. + +> Note: The above flags are available in versions of Flow `>=0.102` with the `experimental.` +prefix (and prior to v0.128, it used `whitelist` in place of `includes`): +``` +experimental.well_formed_exports=true +experimental.well_formed_exports.whitelist=/path/to/directory +experimental.types_first=true +``` + +> Note: If you are using a version where types-first is enabled by default (ie. `>=0.134`), +make sure you set `types_first=false` in your .flowconfig while running the codemods. + + +### Deal with newly introduced errors {#toc-deal-with-newly-introduced-errors} + +Switching between classic and types-first mode may cause some new Flow errors, +besides signature-verification failures that we mentioned earlier. These errors +are due differences in the way types based on annotations are interpreted, compared +to their respective inferred types. + +Below are some common error patterns and how to overcome them. + + +#### Array tuples treated as regular arrays in exports {#toc-array-tuples-treated-as-regular-arrays-in-exports} + + +In types-first, an array literal in an *export position* + +```js +module.exports = [e1, e2]; +``` + +is treated as having type `Array`, where `e1` and `e2` have types `t1` +and `t2`, instead of the tuple type `[t1, t2]`. + +In classic mode, the inferred type encompassed both types at the same time. This +might cause errors in importing files that expect for example to find type `t1` +in the first position of the import. + +**Fix:** If a tuple type is expected, then the annotation `[t1, t2]` needs to be +explicitly added on the export side. + +#### Indirect object assignments in exports {#toc-indirect-object-assignments-in-exports} + + +Flow allows the code + +```js +function foo(): void {} +foo.x = () => {}; +foo.x.y = 2; +module.exports = foo; +``` + +but in types-first the exported type will be + +```plaintext +{ + (): void; + x: () => void; +} +``` + +In other words it won’t take into account the update on `y`. + +**Fix:** To include the update on `y` in the exported type, the export will need +to be annotated with the type + +```plaintext +{ + (): void; + x: { (): void; y: number; }; +}; +``` + +The same holds for more complex assignment patterns like + +```js +function foo(): void {} +Object.assign(foo, { x: 1}); +module.exports = foo; +``` + +where you’ll need to manually annotate the export with `{ (): void; x: number }`, +or assignments preceding the function definition + +```js +foo.x = 1; +function foo(): void {} +module.exports = foo; +``` + +Note that in the last example, Flow types-first will pick up the static update if +it was after the definition: + +```js +function foo(): void {} +foo.x = 1; +module.exports = foo; +``` + +### Exported variables with updates {#toc-exported-variables-with-updates} + +The types-first signature extractor will not pick up subsequent update of an exported +let-bound variables. Consider the example + +```js +let foo: number | string = 1; +foo = "blah"; +module.exports = foo; +``` + +In classic mode the exported type would be `string`. In types-first it will be +`number | string`, so if downstream typing depends on the more precise type, then +you might get some errors. + +**Fix:** Introduce a new variable on the update and export that one. For example +```js +const foo1: number | string = 1; +const foo2 = "blah"; +module.exports = foo2; +``` diff --git a/_src/lang/variables.md b/_src/lang/variables.md new file mode 100644 index 00000000000..a78479ffa24 --- /dev/null +++ b/_src/lang/variables.md @@ -0,0 +1,209 @@ +--- +title: Variable Declarations +slug: /lang/variables +--- + +import {SinceVersion} from '../../components/VersionTags'; + +When you are declaring a new variable, you may optionally declare its type. + +JavaScript has three ways of declaring local variables: + +- `var` - declares a variable, optionally assigning a value. + ([MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var)) +- `let` - declares a block-scoped variable, optionally assigning a value. + ([MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let)) +- `const` - declares a block-scoped variable, assigning a value that cannot be re-assigned. + ([MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const)) + +In Flow these fall into two groups: + +- `let` and `var` - variables that **can** be reassigned. +- `const` - variables that **cannot** be reassigned. + +```js flow-check +var varVariable = 1; +let letVariable = 1; +const constVariable = 1; + +varVariable = 2; // Works! +letVariable = 2; // Works! +constVariable = 2; // Error! +``` + +## `const` {#toc-const} + +Since a `const` variable cannot be re-assigned at a later time it is fairly +simple. + +Flow can either infer the type from the value you are assigning to it or you +can provide it with a type. + +```js flow-check +const foo /* : number */ = 1; +const bar: number = 2; +``` + +## `var` and `let` {#toc-var-and-let} +Since `var` and `let` can be re-assigned, there's a few more rules you'll need +to know about. + +When you provide a type, you will be able to re-assign the value, but it must +always be of a compatible type. + +```js flow-check +let foo: number = 1; +foo = 2; // Works! +foo = "3"; // Error! +``` + +When the variable has no annotation, Flow infers a precise type based on + their initializer or initial assignment. All subsequent assignments +to that variable will be constrained by this type. This section shows some examples +of how Flow determines what type an unannotated variable is inferred to have. + + +**If you want a variable to have a different type than what Flow infers for it, +you can always add a type annotation to the variable’s declaration. That will +override everything discussed in this page!** + +### Variables initialized at their declarations {#toc-variables-initialized-at-their-declarations} + +The common case for unannotated variables is very straightforward: when a +variable is declared with an initializer that is not the literal `null`, that +variable will from then on have the type of the initializer, and future writes +to the variable will be constrained by that type. + +```js flow-check +import * as React from 'react'; + +type Props = $ReadOnly<{ prop: string }>; + +declare var x: number; +declare var y: number; +declare var props: Props; + +let product = Math.sqrt(x) + y; +// `product` has type `number` + +let Component = ({prop}: Props): React.Node => { return
} +// `Component` has type`React.ComponentType` + +let element = +// `element` has type `React.Element>` + +/* Let's define a new component */ + +type OtherProps = $ReadOnly<{ ...Props, extra_prop: number }>; +declare var OtherComponent: (OtherProps) => React.Node; +declare var other_props: OtherProps + +/* Any subsequent assignments to `product`, `Component`, or `element` will be + * checked against the types that Flow infers for the initializers, and if + * conflicting types are assigned, Flow will signal an error. */ + +product = "Our new product is..."; +Component = ({prop}: OtherProps): React.Node => { return
}; +element = ; +``` + +If you want these examples to typecheck, and for Flow to realize that different +kinds of values can be written to these variables, you must add a type +annotation reflecting this more general type to their declarations: +```js +let product: number | string = ... +let Component: mixed = ... // No good type to represent this! Consider restructuring +let element: React.Node = ... +``` +### Variables declared without initializers {#toc-variables-declared-without-initializers} + +Often variables are declared without initializers. In such cases, Flow will try +to choose the "first" assignment or assignments to the variable to define its +type. "First" here means both top-to-bottom and nearer-scope to +deeper-scope—we’ll try to choose an assignment that happens in the same function +scope as the variable’s declaration, and only look inside nested functions if we +don’t find any assignments locally: +```js flow-check +let topLevelAssigned; +function helper() { + topLevelAssigned = 42; // Error: `topLevelAssigned` has type `string` +} +topLevelAssigned = "Hello world"; // This write determines the var's type +topLevelAssigned = true; // Error: `topLevelAssigned` has type `string` +``` +If there are two or more possible "first assignments," due to an `if`- or +`switch`-statement, they’ll both count—this is one of the few ways that Flow +will still infer unions for variable types: +```js flow-check +let myNumberOrString; +declare var condition: boolean; +if (condition) { + myNumberOrString = 42; // Determines type +} else { + myNumberOrString = "Hello world"; // Determines type +} +myNumberOrString = 21; // fine, compatible with type +myNumberOrString = "Goodbye"; // fine, compatible with type +myNumberOrString = false; // Error: `myNumberOrString` has type `number | string` +``` +This only applies when the variable is written to in both branches, however. If +only one branch contains a write, that write becomes the type of the variable +afterwards (though Flow will still check to make sure that the variable is +definitely initialized): + +```js flow-check +let oneBranchAssigned; +declare var condition: boolean; +if (condition) { + oneBranchAssigned = "Hello world!"; +} +oneBranchAssigned.toUpperCase(); // Error: `oneBranchAssigned` may be uninitialized +oneBranchAssigned = 42; // Error: `oneBranchAssigned` has type `string` +``` +### Variables initialized to `null` {#toc-variables-initialized-to-null} + +Finally, the one exception to the general principle that variable’s types are +determined by their first assignment(s) is when a variable is initialized as (or +whose first assignment is) the literal value `null`. In such cases, the *next* +non-null assignment (using the same rules as above) determines the rest of the +variable’s type, and the overall type of the variable becomes a union of `null` +and the type of the subsequent assignment. This supports the common pattern +where a variable starts off as `null` before getting assigned by a value of some +other type: +```js flow-check +function findIDValue(dict: {[key: string]: T}): T { + let idVal = null; // initialized as `null` + for (const key in dict) { + if (key === 'ID') { + idVal = dict[key]; // Infer that `idVal` has type `null | T` + } + } + if (idVal === null) { + throw new Error("No entry for ID!"); + } + return idVal; +} +``` + +## Catch variables +If a `catch` variable does not have an annotation, its default type is [`any`](../../types/any). + +You can optionally annotate it with exactly [`mixed`](../../types/mixed) or `any`. E.g. + +```js flow-check +try { +} catch (e: mixed) { + if (e instanceof TypeError) { + (e: TypeError); // OK + } else if (e instanceof Error) { + (e: Error); // OK + } else { + throw e; + } +} +``` + +By using `mixed`, you can improve your safety and Flow [coverage](../../cli/coverage/), +at the trade-off of increased runtime checks. + +You can change the default type of `catch` variables when there is no annotation by setting the [`use_mixed_in_catch_variables`](../../config/options/#toc-use-mixed-in-catch-variables) option to true. diff --git a/_src/lang/variance.md b/_src/lang/variance.md new file mode 100644 index 00000000000..61f7fa5cd97 --- /dev/null +++ b/_src/lang/variance.md @@ -0,0 +1,144 @@ +--- +title: Type Variance +slug: /lang/variance +--- + +Variance is a topic that comes up fairly often in type systems. It is used to determine +how type parameters behave with respect to subtyping. + +First we'll setup a couple of classes that extend one another. + +```js +class Noun {} +class City extends Noun {} +class SanFrancisco extends City {} +``` + +We saw in the section on [generic types](../../types/generics/#toc-variance-sigils) +that it is possible to +use variance sigils to describe when a type parameter is used in an output position, +when it is used in an input position, and when it is used in either one. + +Here we'll dive deeper into each one of these cases. + +## Covariance {#toc-covariance} + +Consider for example the type +```js +type CovariantOf = { + +prop: X; + getter(): X; +} +``` +Here, `X` appears strictly in *output* positions: it is used to read out information +from objects `o` of type `CovariantOf`, either through property accesses `o.prop`, +or through calls to `o.getter()`. + +Notably, there is no way to input data through the reference to the object `o`, +given that `prop` is a readonly property. + +When these conditions hold, we can use the sigil `+` to annotate `X` in the definition +of `CovariantOf`: +```js +type CovariantOf<+X> = { + +prop: X; + getter(): X; +} +``` + +These conditions have important implications on the way that we can treat an object +of type `CovariantOf` with respect to subtyping. As a reminder, subtyping rules +help us answer the question: "given some context that expects values of type +`T`, is it safe to pass in values of type `S`?" If this is the case, then `S` is a +subtype of `T`. + +Using our `CovariantOf` definition, and given that `City` is a subtype of `Noun`, it is +also the case that `CovariantOf` is a subtype of `CovariantOf`. Indeed +* it is safe to *read* a property `prop` of type `City` when a property +of type `Noun` is expected, and +* it is safe to *return* values of type `City` when calling `getter()`, when +values of type `Noun` are expected. + +Combining these two, it will always be safe to use `CovariantOf` whenever a +`CovariantOf` is expected. + +A commonly used example where covariance is used is [`$ReadOnlyArray`](../../types/arrays/#toc-readonlyarray). +Just like with the `prop` property, one cannot use a `$ReadOnlyArray` reference to write data +to an array. This allows more flexible subtyping rules: Flow only needs to prove that +`S` is a subtype of `T` to determine that `$ReadOnlyArray` is also a subtype +of `$ReadOnlyArray`. + + +## Invariance {#toc-invariance} + +Let's see what happens if we try to relax the restrictions on the use of `X` and make, +for example, `prop` be a read-write property. We arrive at the type definition +```js +type NonCovariantOf = { + prop: X; + getter(): X; +}; +``` +Let's also declare a variable `nonCovariantCity` of type `NonCovariantOf` +```js +declare var nonCovariantCity: NonCovariantOf; +``` +Now, it is not safe to consider `nonCovariantCity` as an object of type `NonCovariantOf`. +Were we allowed to do this, we could have the following declaration: +```js +const nonCovariantNoun: NonCovariantOf = nonCovariantCity; +``` +This type permits the following assignment: +```js +nonCovariantNoun.prop = new Noun; +``` +which would invalidate the original type for `nonCovariantCity` as it would now be storing +a `Noun` in its `prop` field. + + +What distinguishes `NonCovariantOf` from the `CovariantOf` definition is that type parameter `X` is used both +in input and output positions, as it is being used to both read and write to +property `prop`. Such a type parameter is called *invariant* and is the default case +of variance, thus requiring no prepending sigil: +```js +type InvariantOf = { + prop: X; + getter(): X; + setter(X): void; +}; +``` +Assuming a variable +```js +declare var invariantCity: InvariantOf; +``` +it is *not* safe to use `invariantCity` in a context where: +- an `InvariantOf` is needed, because we should not be able to write a `Noun` to property +`prop`. +- an `InvariantOf` is needed, because reading `prop` could return a `City` which +may not be `SanFrancisco`. + +In orther words, `InvariantOf` is neither a subtype of `InvariantOf` nor +a subtype of `InvariantOf`. + + +## Contravariance {#toc-contravariance} + +When a type parameter is only used in *input* positions, we say that it is used in +a *contravariant* way. This means that it only appears in positions through which +we write data to the structure. We use the sigil `-` to describe this kind of type +parameters: + +```js +type ContravariantOf<-X> = { + -prop: X; + setter(X): void; +}; +``` +Common contravariant positions are write-only properties and "setter" functions. + +An object of type `ContravariantOf` can be used whenever an object of type +`ContravariantOf` is expected, but not when a `ContravariantOf` is. +In other words, `ContravariantOf` is a subtype of `ContravariantOf`, but not +`ContravariantOf`. +This is because it is fine to write `SanFrancisco` into a property that can have any `City` written +to, but it is not safe to write just any `Noun`. diff --git a/_src/lang/width-subtyping.md b/_src/lang/width-subtyping.md new file mode 100644 index 00000000000..d2e21005ed4 --- /dev/null +++ b/_src/lang/width-subtyping.md @@ -0,0 +1,65 @@ +--- +title: Width Subtyping +slug: /lang/width-subtyping +--- + +It's safe to use an object with "extra" properties in a position that is +annotated with a specific set of properties, if that object type is [inexact](../../types/objects/#exact-and-inexact-object-types). + +```js flow-check +function func(obj: {foo: string, ...}) { + // ... +} + +func({ + foo: "test", // Works! + bar: 42 // Works! +}); +``` + +Within `func`, we know that `obj` has at least a property `foo` and the +property access expression `obj.foo` will have type `string`. + +This is a kind of subtyping commonly referred to as "width subtyping" because +a type that is "wider" (i.e., has more properties) is a subtype of a +narrower type. + +So in the following example, `obj2` is a _subtype_ of `obj1`. + +```js flow-check +let obj1: {foo: string, ...} = {foo: 'test'}; +let obj2 = {foo: 'test', bar: 42}; +(obj2: {foo: string, ...}); +``` + +However, it's often useful to know that a property is definitely absent. + +```js flow-check +function func(obj: {foo: string, ...} | {bar: number, ...}) { + if (obj.foo) { + (obj.foo: string); // Error! + } +} +``` + +The above code has a type error because Flow would also allow the call +expression `func({foo: 1, bar: 2})`, because `{foo: number, bar: number}` +is a subtype of `{bar: number, ...}`, one of the members of the parameter's union +type. + +For cases like this where it's useful to assert the absence of a property, +You can use [exact object types](../../types/objects/#exact-and-inexact-object-types). + +```js flow-check +function func(obj: {foo: string} | {bar: number}) { + if (obj.foo) { + (obj.foo: string); // Works! + } +} +``` + +[Exact object types](../../types/objects/#exact-and-inexact-object-types) disable width +subtyping, and do not allow additional properties to exist. + +Using exact object types lets Flow know that no extra properties will exist at +runtime, which allows [refinements](../refinements/) to get more specific. diff --git a/_src/libdefs/creation.md b/_src/libdefs/creation.md new file mode 100644 index 00000000000..c4256b758d4 --- /dev/null +++ b/_src/libdefs/creation.md @@ -0,0 +1,199 @@ +--- +title: Creating Library Definitions +slug: /libdefs/creation +--- + +Before spending the time to write your own libdef, we recommend that you look to +see if there is already a libdef for the third-party code that you're addressing. +`flow-typed` is a [tool and repository](https://github.com/flowtype/flow-typed/) +for sharing common libdefs within the Flow community -- so it's a good way to +knock out a good chunk of any public libdefs you might need for your project. + +However sometimes there isn't a pre-existing libdef or you have third-party +code that isn't public and/or you really just need to write a libdef yourself. +To do this you'll start by creating a `.js` file for each libdef you're going to +write and put them in the `/flow-typed` directory at the root of your project. +In these libdef file(s) you'll use a special set of Flow syntax (explained +below) to describe the interfaces of the relevant third-party code. + +## Declaring A Global Function {#toc-declaring-a-global-function} + +To declare a global function that should be accessible throughout your project, +use the `declare function` syntax in a libdef file: + +**flow-typed/myLibDef.js** +```js flow-check +declare function foo(a: number): string; +``` + +This tells Flow that any code within the project can reference the +`foo` global function, and that the function takes one argument (a `number`) and +it returns a `string`. + +## Declaring A Global Class {#toc-declaring-a-global-class} + +To declare a global class that should be accessible throughout your project, +use the `declare class` syntax in a libdef file: + +**flow-typed/myLibDef.js** +```js flow-check +declare class URL { + constructor(urlStr: string): URL; + toString(): string; + + static compare(url1: URL, url2: URL): boolean; +} +``` + +This tells Flow that any code within the project can reference the `URL` global +class. Note that this class definition does not have any implementation details +-- it exclusively defines the interface of the class. + +## Declaring A Global Variable {#toc-declaring-a-global-variable} + +To declare a global variable that should be accessible throughout your project, +use the `declare var`, `declare let`, or `declare const` syntax in a libdef file: + +**flow-typed/myLibDef.js** +```js flow-check +declare const PI: number; +``` + +This tells Flow that any code within the project can reference the `PI` global +variable -- which, in this case, is a `number`. + +## Declaring A Global Type {#toc-declaring-a-global-type} + +To declare a global type that should be accessible throughout your project, +use the `declare type` syntax in a libdef file: + +**flow-typed/myLibDef.js** +```js flow-check +declare type UserID = number; +``` + +This tells Flow that any code within the project can reference the `UserID` +global type -- which, in this case, is just an alias for `number`. + +## Declaring A Module {#toc-declaring-a-module} + +Often, third-party code is organized in terms of modules rather than globals. To +write a libdef that declares the presence of a module you'll want to use the +`declare module` syntax: + +```js flow-check +declare module "some-third-party-library" { + // This is where we'll list the module's exported interface(s) +} +``` + +The name specified in quotes after `declare module` can be any string, but it +should correspond to the same string you'd use to `require` or `import` the +third-party module into your project. For defining modules that are accessed via +a relative `require`/`import` path, please see the docs on the [`.flow` files](../../declarations) + +Within the body of a `declare module` block, you can specify the set of exports +for that module. However, before we start talking about exports we have to talk +about the two kinds of modules that Flow supports: CommonJS and ES modules. + +Flow can handle both CommonJS and ES modules, but there are some relevant +differences between the two that need to be considered when using +`declare module`. + +#### Declaring An ES Module {#toc-declaring-an-es-module} + +[ES modules](https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export) +have two kinds of exports: A **named** export and a **default** export. Flow supports the ability +to declare either or both of these kinds of exports within a `declare module` body as follows: + +###### Named Exports {#toc-named-exports} + +**flow-typed/some-es-module.js** +```js flow-check +declare module "some-es-module" { + // Declares a named "concatPath" export + declare export function concatPath(dirA: string, dirB: string): string; +} +``` + +Note that you can also declare other things inside the body of the +`declare module`, and those things will be scoped to the body of the +`declare module` -- **but they will not be exported from the module**: + +**flow-typed/some-es-module.js** +```js flow-check +declare module "some-es-module" { + // Defines the type of a Path class within this `declare module` body, but + // does not export it. It can only be referenced by other things inside the + // body of this `declare module` + declare class Path { + toString(): string; + } + + // Declares a named "concatPath" export which returns an instance of the + // `Path` class (defined above) + declare export function concatPath(dirA: string, dirB: string): Path; +} +``` + +###### Default Exports {#toc-default-exports} + +**flow-typed/some-es-module.js** +```js flow-check +declare module "some-es-module" { + declare class URL { + constructor(urlStr: string): URL; + toString(): string; + + static compare(url1: URL, url2: URL): boolean; + } + + // Declares a default export whose type is `typeof URL` + declare export default typeof URL; +} +``` + +It is also possible to declare both **named** and **default** exports in the +same `declare module` body. + +#### Declaring A CommonJS Module {#toc-declaring-a-commonjs-module} + +CommonJS modules have a single value that is exported (the `module.exports` +value). To describe the type of this single value within a `declare module` +body, you'll use the `declare module.exports` syntax: + +**flow-typed/some-commonjs-module.js** +```js flow-check +declare module "some-commonjs-module" { + // The export of this module is an object with a "concatPath" method + declare module.exports: { + concatPath(dirA: string, dirB: string): string; + }; +} +``` + +Note that you can also declare other things inside the body of the +`declare module`, and those things will be scoped to the body of the +`declare module`, **but they will not be exported from the module**: + +**flow-typed/some-commonjs-module.js** +```js flow-check +declare module "some-commonjs-module" { + // Defines the type of a Path class within this `declare module` body, but + // does not export it. It can only be referenced by other things inside the + // body of this `declare module` + declare class Path { + toString(): string; + } + + // The "concatPath" function now returns an instance of the `Path` class + // (defined above). + declare module.exports: { + concatPath(dirA: string, dirB: string): Path + }; +} +``` + +NOTE: Because a given module cannot be both an ES module and a CommonJS module, + it is an error to mix `declare export [...]` with + `declare module.exports: ...` in the same `declare module` body. diff --git a/_src/libdefs/index.md b/_src/libdefs/index.md new file mode 100644 index 00000000000..c4be1c5b6d0 --- /dev/null +++ b/_src/libdefs/index.md @@ -0,0 +1,46 @@ +--- +title: Library Definitions +slug: /libdefs +description: Learn how to create and use library definitions for the third-party code your code depends on. +--- + +## What's a "Library Definition"? {#toc-what-s-a-library-definition} + +Most real JavaScript programs depend on third-party code and not just code +immediately under the control of the project. That means a project using Flow +may need to reference outside code that either doesn't have type information or +doesn't have accurate and/or precise type information. In order to handle this, +Flow supports the concept of a "library definition" (a.k.a. "libdef"). + +A libdef is a special file that informs Flow about the type signature of some +specific third-party module or package of modules that your application uses. +If you're familiar with languages that have header files (like `C++`), you can +think of libdefs as a similar concept. + +These special files use the same `.js` extension as normal JS code, but they are +placed in a directory called `flow-typed` in the root directory of your project. +Placement in this directory tells Flow to interpret them as libdefs rather than +normal JS files. + +> NOTE: Using the `/flow-typed` directory for libdefs is a convention that +> enables Flow to JustWork™ out of the box and encourages consistency +> across projects that use Flow, but it is also possible to explicitly +> configure Flow to look elsewhere for libdefs using the [`[libs]` section +> of your `.flowconfig`](../config/libs). + +You can also learn about [declaration files](../declarations). + +## General Best Practices {#toc-general-best-practices} + +**Try to provide a libdef for each third-party library your project uses.** + +If a third-party library that has no type information is used by your project, +Flow will treat it like any other untyped dependency and mark all of its exports +as `any`. + +Because of this behavior, it is a best practice to find or write libdefs for as +many of the third-party libraries that you use as you can. We recommend checking +out the `flow-typed` +[tool and repository](https://github.com/flow-typed/flow-typed/) +, which helps you quickly find and install pre-existing libdefs for your +third-party dependencies. diff --git a/_src/linting/flowlint-comments.md b/_src/linting/flowlint-comments.md new file mode 100644 index 00000000000..ff8eee30a2e --- /dev/null +++ b/_src/linting/flowlint-comments.md @@ -0,0 +1,82 @@ +--- +title: Flowlint Comments +slug: /linting/flowlint-comments +--- + +You can use `flowlint` comments to specify more granular lint settings within a file. +These comments come in three froms: +* [flowlint](#toc-flowlint) +* [flowlint-line](#toc-flowlint-line) +* [flowlint-next-line](#toc-flowlint-next-line) + +In all forms, whitespace and asterisks between words are ignored, allowing for flexible formatting. + +### flowlint {#toc-flowlint} +The basic `flowlint` comment takes a comma-delimited list of `rule:severity` pairs and +applies those settings for the rest of the source file until overridden. This has +three primary purposes: applying settings over a block, applying settings over a file, +and applying settings over part of a line. + +**settings over a block of code:** +A pair of `flowlint` comments can be used to apply a certain setting over a block of code. +For example, to disable the untyped-type-import lint over a block of type imports would look like this: +```js +import type { + // flowlint untyped-type-import:off + Foo, + Bar, + Baz, + // flowlint untyped-type-import:error +} from './untyped.js'; +``` + +**settings over a file:** +A `flowlint` comment doesn't have to have a matching comment to form a block. +An unmatched comment simply applies its settings to the rest of the file. You +could use this, for example, to suppress all sketchy-null-check lints in a particular file: +```js +// flowlint sketchy-null:off +... +``` + +**settings over part of a line:** +The settings applied by `flowlint` start and end right at the comment itself. This +means that you can do things like +```js +function foo(a: ?boolean, b: ?boolean) { + if (/* flowlint sketchy-null-bool:off */a/* flowlint sketchy-null-bool:warn */ && b) { + ... + } else { + ... + } +} +``` +if you want control at an even finer level than you get from the line-based comments. + +### flowlint-line {#toc-flowlint-line} +A `flowlint-line` comment works similarly to a `flowlint` comment, except it only +applies its settings to the current line instead of applying them for the rest of the file. +The primary use for `flowlint-line` comments is to suppress a lint on a particular line: +```js +function foo(x: ?boolean) { + if (x) { // flowlint-line sketchy-null-bool:off + ... + } else { + ... + } +} +``` + + +### flowlint-next-line {#toc-flowlint-next-line} +`flowlint-next-line` works the same as `flowlint-line`, except it applies its settings to the next line instead of the current line: +```js +function foo(x: ?boolean) { + // flowlint-next-line sketchy-null-bool:off + if (x) { + ... + } else { + ... + } +} +``` diff --git a/_src/linting/index.md b/_src/linting/index.md new file mode 100644 index 00000000000..d1f0df52c20 --- /dev/null +++ b/_src/linting/index.md @@ -0,0 +1,80 @@ +--- +title: Linting Overview +slug: /linting +description: Learn how to configure Flow's linter to find potentially harmful code. +--- + +Flow contains a linting framework that can tell you about more than just type errors. This framework is highly configurable in order to show you the information you want and hide the information you don't. + +### Configuring Lints in the `.flowconfig` {#toc-configuring-lints-in-the-flowconfig} + +Lint settings can be specified in the `[lints]` section of the `.flowconfig` as a list of `rule=severity` pairs. These settings apply globally to the entire project. + +``` +[lints] +all=warn +untyped-type-import=error +sketchy-null-bool=off +``` + +### Configuring Lints from the CLI {#toc-configuring-lints-from-the-cli} + +Lint settings can be specified using the `--lints` flag of a Flow server command as a comma-delimited list of `rule=severity` pairs. These settings apply globally to the entire project. + +``` +flow start --lints "all=warn, untyped-type-import=error, sketchy-null-bool=off" +``` + +### Configuring Lints with Comments {#toc-configuring-lints-with-comments} + +Lint settings can be specified inside a file using `flowlint` comments. These +settings apply to a region of a file, or a single line, or part of a line. For +more details see [Flowlint Comments](./flowlint-comments). + +```js flow-check +// flowlint sketchy-null:error +const x: ?number = 0; + +if (x) {} // Error + +// flowlint-next-line sketchy-null:off +if (x) {} // No Error + +if (x) {} /* flowlint-line sketchy-null:off */ // No Error + +// flowlint sketchy-null:off +if (x) {} // No Error +if (x) {} // No Error +``` + +### Lint Settings Precedence {#toc-lint-settings-precedence} + +Lint settings in `flowlint` comments have the highest priority, followed by lint rules in the `--lints` flag, followed by the `.flowconfig`. +This order allows you to use `flowlint` comments for fine-grained linting control, the `--lints` flag for trying out new lint settings, and the `.flowconfig` for stable project-wide settings. + +Within the `--lints` flag and the `.flowconfig`, rules lower down override rules higher up, allowing you to write things like +``` +[lints] +# warn on all sketchy-null checks +sketchy-null=warn +# ... except for booleans +sketchy-null-bool=off +``` + +The lint settings parser is fairly intelligent and will stop you if you write a redundant rule, a rule that gets completely overwritten, or an unused flowlint suppression. This should prevent most accidental misconfigurations of lint rules. + +### Severity Levels and Meanings {#toc-severity-levels-and-meanings} + +**off:** +The lint is ignored. Setting a lint to `off` is similar to suppressing a type error with a suppression comment, except with much more granularity. + +**warn:** +Warnings are a new severity level introduced by the linting framework. They are treated differently than errors in a couple of ways: +* Warnings don't affect the exit code of Flow. If Flow finds warnings but no errors, it still returns 0. +* Warnings aren't shown on the CLI by default, to avoid spew. CLI warnings can be + enabled by passing the `--include-warnings` flag to the Flow server or the + Flow client, or by setting `include_warnings=true` in the `.flowconfig`. + This is good for smaller projects that want to see all project warnings at once. + +**error:** +Lints with severity `error` are treated exactly the same as any other Flow error. diff --git a/_src/linting/rule-reference.md b/_src/linting/rule-reference.md new file mode 100644 index 00000000000..ed987c2cca5 --- /dev/null +++ b/_src/linting/rule-reference.md @@ -0,0 +1,232 @@ +--- +title: Lint Rule Reference +slug: /linting/rule-reference +--- + +### `all` {#toc-all} +While `all` isn't technically a lint rule, it's worth mentioning here. `all` sets the default +level for lint rules that don't have a level set explicitly. `all` can only +occur as the first entry in a `.flowconfig` or as the first rule in a `--lints` +flag. It's not allowed in comments at all because it would have different +semantics than would be expected. + +### `ambiguous-object-type` {#toc-ambiguous-object-type} +Triggers when you use object type syntax without explicitly specifying exactness or inexactness. + +This lint setting is ignored when [`exact_by_default`](../../config/options/#toc-exact-by-default) is set to `false`. + +```js flow-check +// flowlint ambiguous-object-type:error + +type A = {x: number}; // Error +type B = {x: number, ...} // Ok +type C = {| x: number |} // Ok +``` + +### `deprecated-type` {#toc-deprecated-type} +Triggered on the `bool` type, which is just an alias for `boolean`. Just use `boolean` instead. + +```js flow-check +// flowlint deprecated-type:error + +type A = Array; // Error +``` + +### `implicit-inexact-object` {#toc-implicit-inexact-object} +Like [`ambiguous-object-type`](#toc-ambiguous-object-type), except triggers even when the `exact_by_default` option is set to `false`. + +### `nonstrict-import` {#toc-nonstrict-import} +Used in conjuction with [Flow Strict](../../strict/). Triggers when importing a non `@flow strict` module. When enabled, dependencies of a `@flow strict` module must also be `@flow strict`. + +### `sketchy-null` {#toc-sketchy-null} +Triggers when you do an existence check on a value that can be either null/undefined or falsey. + +For example: +```js flow-check +// flowlint sketchy-null:error + +const x: ?number = 5; +if (x) {} // sketchy because x could be either null or 0. + +const y: number = 5; +if (y) {} // not sketchy because y can't be null, only 0. + +const z: ?{foo: number} = {foo: 5}; +if (z) {} // not sketchy, because z can't be falsey, only null/undefined. +``` + +Setting `sketchy-null` sets the level for all sketchy null checks, but there are more granular rules for particular types. These are: +* `sketchy-null-bool` +* `sketchy-null-number` +* `sketchy-null-string` +* `sketchy-null-mixed` +* `sketchy-null-bigint` + +The type-specific variants are useful for specifying that some types of sketchy null checks are acceptable while others should be errors/warnings. For example, if you want to allow boolean sketchy null checks (for the pattern of treating undefined optional booleans as false) but forbid other types of sketchy null checks, you can do so with this `.flowconfig` `[lints]` section: +``` +[lints] +sketchy-null=warn +sketchy-null-bool=off +``` +and now +```js +function foo (bar: ?bool): void { + if (bar) { + ... + } else { + ... + } +} +``` +doesn't report a warning. + +Suppressing one type of sketchy null check only suppresses that type, so, for example +```js flow-check +// flowlint sketchy-null:error, sketchy-null-bool:off +const x: ?(number | bool) = 0; +if (x) {} +``` +would still have a `sketchy-null-number` error on line 3. + +### `sketchy-number` {#toc-sketchy-number} +Triggers when a `number` is used in a manner which may lead to unexpected results if the value is falsy. +Currently, this lint triggers if a `number` appears in: +* the left-hand side of an `&&` expression. + +As a motivating example, consider this common idiom in React: + +```js +{showFoo && } +``` + +Here, `showFoo` is a boolean which controls whether or not to display the `` element. If `showFoo` is true, then this evaluates to `{}`. If `showFoo` is false, then this evaluates to `{false}`, which doesn't display anything. + +Now suppose that instead of a boolean, we have a numerical value representing, say, the number of comments on a post. We want to display a count of the comments, unless there are no comments. We might naively try to do something similar to the boolean case: + +```js +{count && <>[{count} comments]} +``` + +If `count` is, say, `5`, then this displays "[5 comments]". However, if `count` is `0`, then this displays "0" instead of displaying nothing. (This problem is unique to `number` because `0` and `NaN` are the only falsy values which React renders with a visible result.) This could be subtly dangerous: if this immediately follows another numerical value, it might appear to the user that we have multiplied that value by 10! Instead, we should do a proper conditional check: + +```js +{count ? <>[{count} comments] : null} +``` + +### `unclear-type` {#toc-unclear-type} +Triggers when you use `any`, `Object`, or `Function` as type annotations. These +types are unsafe. + +```js flow-check +// flowlint unclear-type:error + +declare const a: any; // Error +declare const c: Object; // Error +declare const d: Function; // Error +``` + +### `unnecessary-invariant` {#toc-unnecessary-invariant} +Triggers when you use `invariant` to check a condition which we know must be truthy based on the available type information. This is quite conservative: for example, if all we know about the condition is that it is a `boolean`, then the lint will not fire even if the condition must be `true` at runtime. + +Note that this lint does not trigger when we know a condition is always `false`. It is a common idiom to use `invariant()` or `invariant(false, ...)` to throw in code that should be unreachable. + +```js flow-check +// flowlint unnecessary-invariant:error +declare function invariant(boolean): void; + +declare const x: Array; // Array is truthy +invariant(x); +``` + +### `unnecessary-optional-chain` {#toc-unnecessary-optional-chain} + +Triggers when you use `?.` where it isn't needed. This comes in two main flavors. The first is when the left-hand-side cannot be nullish: + +```js flow-check +// flowlint unnecessary-optional-chain:error +type Foo = { + bar: number +} + +declare var foo: Foo; +foo?.bar; // Error +``` + +The second is when the left-hand-side could be nullish, but the short-circuiting behavior of `?.` is sufficient to handle it anyway: + +```js flow-check +// flowlint unnecessary-optional-chain:error +type Foo = { + bar: { + baz: number + } +} + +declare var foo: ?Foo; +foo?.bar?.baz; // Error +``` + +In the second example, the first use of `?.` is valid, since `foo` is potentially nullish, but the second use of `?.` is unnecessary. The left-hand-side of the second `?.` (`foo?.bar`) can only be nullish as a result of `foo` being nullish, and when `foo` is nullish, short-circuiting lets us avoid the second `?.` altogether! + +```js +foo?.bar.baz; +``` + +This makes it clear to the reader that `bar` is not a potentially nullish property. + +### `unsafe-getters-setters` {#toc-unsafe-getters-setters} +Triggers when you use getters or setters. Getters and setters can have side +effects and are unsafe. + +For example: + +```js flow-check +// flowlint unsafe-getters-setters:error +let a = 1; +const o = { + get a() { return a; }, // Error: unsafe-getters-setters + set b(x: number) { a = x; }, // Error: unsafe-getters-setters + c: 10, +}; +``` + +### `untyped-import` {#toc-untyped-import} +Triggers when you import from an untyped file. Importing from an untyped file +results in those imports being typed as `any`, which is unsafe. + +### `untyped-type-import` {#toc-untyped-type-import} +Triggers when you import a type from an untyped file. Importing a type from an +untyped file results in an `any` alias, which is typically not the intended behavior. +Enabling this lint brings extra attention to this case and can help improve Flow +coverage of typed files by limiting the spread of implicit `any` types. + +### `unused-promise` {#toc-unused-promise} +Triggers when a `Promise` is unused. This can be dangerous, because errors are potentially unhandled, and the code may not execute in the desired order. + +A promise can be "used" by... +* `await`ing it +* Calling `.then` with a rejection handler (i.e., with two arguments) +* Calling `.catch` +* Calling `.finally` +* Storing it in a variable, passing it to a function, etc. + +For example: + +```js flow-check +// flowlint unused-promise:error +declare function foo(): Promise; + +async function bar() { + await foo(); // ok + foo(); // error, we forgot to await! +} + +function baz() { + foo().catch(err => {console.log(err)}); // ok + foo(); // error +} +``` + +You can explicitly ignore the promise with the `void` operator (e.g., `void foo();`). + +Note: As of v0.201.0, this rule subsumed the `unused-promise-in-async-scope` and `unused-promise-in-sync-scope` rules. diff --git a/_src/react/components.md b/_src/react/components.md new file mode 100644 index 00000000000..640c143b178 --- /dev/null +++ b/_src/react/components.md @@ -0,0 +1,191 @@ +--- +title: Components +slug: /react/components +--- + +Adding Flow types to your [React components](https://react.dev/learn/your-first-component) is incredibly powerful. After typing +your component, Flow will statically ensure that you are using the component in +the way it was designed to be used. + +## Functional Components {#toc-functional-components} + +Adding Flow types to a functional component is the same as [adding types to a standard function](../../types/functions/). +Just create an object type for the props and Flow will ensure that the props passed to the component match up with what is expected. + +```js flow-check +import * as React from 'react'; + +type Props = { + foo: number, + bar?: string, +}; + +function MyComponent(props: Props) { + props.doesNotExist; // Error! You did not define a `doesNotExist` prop. + + return
{props.bar}
; +} + + +``` + +> **Note:** We import `React` as a namespace here with +> `import * as React from 'react'` instead of as a default with +> `import React from 'react'`. When importing React as an ES module you may use +> either style, but importing as a namespace gives you access to React's +> [utility types](../types). + + +### Adding Default Props to Functional Components {#toc-adding-default-props-to-functional-components} + +A nice pattern to add default props to functional components is to use +[destructuring with default values](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment/#default_value). +By destructuring the props in the function parameter, you can assign a value to any props that are not passed +to the component (or passed with the value `undefined`). + +```js flow-check +import * as React from 'react'; + +type Props = { + foo?: number, // foo is optional to pass in. + bar: string, // bar is required. +}; + +function MyComponent({foo = 42, bar}: Props) { + // Flow knows that foo is not null or undefined + const baz = foo + 1; +} + +// And we don't need to include foo. +; +``` + +## Class Components {#toc-class-components} + +To Flowify a [class component](https://react.dev/reference/react/Component#defining-a-class-component), the type of the props can be passed as the first +argument to the `React.Component` type. This will have the same effect as adding types +to the `props` parameter of a function component. + +```js flow-check +import * as React from 'react'; + +type Props = { + foo: number, + bar?: string, +}; + +class MyComponent extends React.Component { + render(): React.Node { + this.props.doesNotExist; // Error! You did not define a `doesNotExist` prop. + + return
{this.props.bar}
; + } +} + +; +``` + +Now wherever we use `this.props` in our React component Flow will treat it as +the `Props` type we defined. + +> **Note:** If you don't need to use the `Props` type again you could also +> define it inline: `extends React.Component<{ foo: number, bar?: string }>`. + +`React.Component` is a [generic type](../../types/generics) that takes two type +arguments: props and state. The second type argument, `State`, is optional. By +default it is `undefined` so you can see in the example above we did not include +`State`. We will learn more about state in the next section... + +### Adding State {#toc-adding-state} + +To add a type for state to your React class component: create a new object +type, in the example below we name it `State`, and pass it as the second type +argument to `React.Component`. + +```js flow-check +import * as React from 'react'; + +type Props = { /* ... */ }; + +type State = { + count: number, +}; + +class MyComponent extends React.Component { + state: State = { + count: 0, + }; + + componentDidMount() { + setInterval(() => { + this.setState(prevState => ({ + count: prevState.count + 1, + })); + }, 1000); + } + + render(): React.Node { + return
Count: {this.state.count}
; + } +} + +; +``` + +In the example above we are using a [React `setState()` updater function](https://react.dev/reference/react/Component#setstate) +but you could also pass a partial state object to `setState()`. + +> **Note:** If you don't need to use the `State` type again you could also +> define it inline: `extends React.Component<{}, { count: number }>`. + +### Using Default Props for Class Components {#toc-using-default-props-for-class-components} + +React supports the notion of `defaultProps` which you can think of as default +function arguments. When you create an element and do not include a prop +which has a default then React will substitute that prop with its corresponding +value from `defaultProps`. Flow supports this notion as well. To type default +props add a `static defaultProps` property to your class. + +```js flow-check +import * as React from 'react'; + +type Props = { + foo: number, // foo is required. + bar: string, // bar is required. +}; + +class MyComponent extends React.Component { + static defaultProps: {foo: number} = { + foo: 42, // ...but we have a default prop for foo. + }; +} + +// So we don't need to include foo. + +``` + +> **Note:** You don't need to make `foo` nullable in your `Props` type. Flow +> will make sure that `foo` is optional if you have a default prop for `foo`. + +If you add a type annotation to `defaultProps` you can define the type as +```js flow-check +type DefaultProps = { + foo: number, +}; +``` +and spread that into the `Props` type: +```js +type Props = { + ...DefaultProps, + bar: string, +}; +``` +This way you avoid duplicating the properties that happen to have a default value. + +> **Note:** You can also apply this format of default props to functional components +> by adding a `defaultProps` property to a the component function. However, it is generally +> simpler to use the destructuring pattern described above. +> ```js flow-check +> function MyComponent(props: {foo: number}) {} +> MyComponent.defaultProps = {foo: 42}; +> ``` diff --git a/_src/react/events.md b/_src/react/events.md new file mode 100644 index 00000000000..0790d4953d9 --- /dev/null +++ b/_src/react/events.md @@ -0,0 +1,68 @@ +--- +title: Event Handling +slug: /react/events +--- + +The [React docs for handling events](https://react.dev/learn/responding-to-events) show how an event handler can be attached to +a React element. To type these event handlers you may use the `SyntheticEvent` +types like this: + +```js flow-check +import {useState} from 'react'; +import * as React from 'react'; + +function MyComponent(): React.Node { + const [state, setState] = useState({count: 0}); + + const handleClick = (event: SyntheticEvent) => { + // To access your button instance use `event.currentTarget`. + (event.currentTarget: HTMLButtonElement); + + setState(prevState => ({ + count: prevState.count + 1, + })); + }; + + return ( +
+

Count: {state.count}

+ +
+ ); +} +``` + +There are also more specific synthetic event types like +`SyntheticKeyboardEvent`, `SyntheticMouseEvent`, or +`SyntheticTouchEvent`. The `SyntheticEvent` types all take a single type +argument: the type of the HTML element the event handler was placed on. + +If you don't want to add the type of your element instance you can also use +`SyntheticEvent` with *no* type arguments like so: `SyntheticEvent<>`. + +> **Note:** To get the element instance, like `HTMLButtonElement` in the example +> above, it is a common mistake to use `event.target` instead of +> `event.currentTarget`. The reason you want to use `event.currentTarget` is +> that `event.target` may be the wrong element due to [event propagation][]. + +[event propagation]: https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Examples#example_5_event_propagation + +> **Note:** React uses its own event system so it is important to use the +> `SyntheticEvent` types instead of the DOM types such as `Event`, +> `KeyboardEvent`, and `MouseEvent`. + +The `SyntheticEvent` types that React provides and the DOM events they are +related to are: + +- `SyntheticEvent` for [Event](https://developer.mozilla.org/en-US/docs/Web/API/Event) +- `SyntheticAnimationEvent` for [AnimationEvent](https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent) +- `SyntheticCompositionEvent` for [CompositionEvent](https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent) +- `SyntheticInputEvent` for [InputEvent](https://developer.mozilla.org/en-US/docs/Web/API/InputEvent) +- `SyntheticUIEvent` for [UIEvent](https://developer.mozilla.org/en-US/docs/Web/API/UIEvent) +- `SyntheticFocusEvent` for [FocusEvent](https://developer.mozilla.org/en-US/docs/Web/API/FocusEvent) +- `SyntheticKeyboardEvent` for [KeyboardEvent](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent) +- `SyntheticMouseEvent` for [MouseEvent](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent) +- `SyntheticDragEvent` for [DragEvent](https://developer.mozilla.org/en-US/docs/Web/API/DragEvent) +- `SyntheticWheelEvent` for [WheelEvent](https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent) +- `SyntheticTouchEvent` for [TouchEvent](https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent) +- `SyntheticTransitionEvent` for [TransitionEvent](https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent) diff --git a/_src/react/hoc.md b/_src/react/hoc.md new file mode 100644 index 00000000000..727036ed159 --- /dev/null +++ b/_src/react/hoc.md @@ -0,0 +1,179 @@ +--- +title: Higher-order Components +slug: /react/hoc +--- + +A popular pattern in React is the [higher-order component pattern][], so it's +important that we can provide effective types for higher-order components in +Flow. If you don't already know what a higher-order component is then make sure +to read the [React documentation on higher-order components][] before +continuing. + +[higher-order component pattern]: https://facebook.github.io/react/docs/higher-order-components.html +[React documentation on higher-order components]: https://facebook.github.io/react/docs/higher-order-components.html + +You can make use of the [`React.AbstractComponent`](../types/#toc-react-abstractcomponent) type to annotate your higher order components. + +### The Trivial HOC {#toc-the-trivial-hoc} + +Let's start with the simplest HOC: + +```js flow-check +import * as React from 'react'; + +function trivialHOC( + Component: React.AbstractComponent +): React.AbstractComponent { + return Component; +} +``` + +This is a basic template for what your HOCs might look like. At runtime, this HOC doesn't +do anything at all. Let's take a look at some more complex examples. + +### Injecting Props {#toc-injecting-props} + +A common use case for higher-order components is to inject a prop. +The HOC automatically sets a prop and returns a component which no longer requires +that prop. For example, consider a navigation prop. How would one type this? + +To remove a prop from the config, we can take a component that includes the +prop and return a component that does not. It's best to construct these +types using object type spread. + +```js flow-check +import * as React from 'react'; + +type InjectedProps = {foo: number} + +function injectProp( + Component: React.AbstractComponent<{...Config, ...InjectedProps}> +): React.AbstractComponent { + return function WrapperComponent( + props: Config, + ) { + return ; + }; +} + +function MyComponent(props: { + a: number, + b: number, + ...InjectedProps, +}): React.Node {} + +const MyEnhancedComponent = injectProp(MyComponent); + +// We don't need to pass in `foo` even though `MyComponent` requires it: +; // OK + +// We still require `a` and `b`: +; // ERROR +``` + +### Preserving the Instance Type of a Component {#toc-preserving-the-instance-type-of-a-component} + +Recall that the instance type of a function component is `void`. Our example +above wraps a component in a function, so the returned component has the instance +type `void`. + +```js flow-check +import * as React from 'react'; + +type InjectedProps = {foo: number} + +function injectProp( + Component: React.AbstractComponent<{...Config, ...InjectedProps}> +): React.AbstractComponent { + return function WrapperComponent( + props: Config, + ) { + return ; + }; +} + +// A class component in this example +class MyComponent extends React.Component<{ + a: number, + b: number, + ...InjectedProps, +}> {} + +const MyEnhancedComponent = injectProp(MyComponent); + +// If we create a ref object for the component, it will never be assigned +// an instance of MyComponent! +const ref = React.createRef(); + +// Error, mixed is incompatible with MyComponent. +; +``` + +We get this error message because `React.AbstractComponent` doesn't set the `Instance` type +parameter, so it is automatically set to `mixed`. If we wanted to preserve the instance type +of the component, we can use [`React.forwardRef`](https://reactjs.org/docs/forwarding-refs.html): + +```js flow-check +import * as React from 'react'; + +type InjectedProps = {foo: number} + +function injectAndPreserveInstance( + Component: React.AbstractComponent<{...Config, ...InjectedProps}, Instance> +): React.AbstractComponent { + return React.forwardRef((props, ref) => + + ); +} + +class MyComponent extends React.Component<{ + a: number, + b: number, + ...InjectedProps, +}> {} + +const MyEnhancedComponent = injectAndPreserveInstance(MyComponent); + +const ref = React.createRef(); + +// All good! The ref is forwarded. +; +``` + +### Exporting Wrapped Components {#toc-exporting-wrapped-components} + +If you try to export a wrapped component, chances are that you'll run into a missing annotation error: + +```js flow-check +import * as React from 'react'; + +function trivialHOC( + Component: React.AbstractComponent, +): React.AbstractComponent { + return Component; +} + +type Props = $ReadOnly<{bar: number, foo?: number}>; + +function MyComponent({bar, foo = 3}: Props): React.Node {} + +export const MyEnhancedComponent = trivialHOC(MyComponent); // ERROR +``` + +You can add an annotation to your exported component using `React.AbstractComponent`: + +```js flow-check +import * as React from 'react'; + +function trivialHOC( + Component: React.AbstractComponent, +): React.AbstractComponent { + return Component; +} + +type Props = $ReadOnly<{bar: number, foo?: number}>; + +function MyComponent({bar, foo = 3}: Props): React.Node {} + +export const MyEnhancedComponent: React.AbstractComponent = trivialHOC(MyComponent); // OK +``` diff --git a/_src/react/index.md b/_src/react/index.md new file mode 100644 index 00000000000..db920a4dbf3 --- /dev/null +++ b/_src/react/index.md @@ -0,0 +1,33 @@ +--- +title: Getting Started +slug: /react +description: Learn how to use Flow to effectively type common and advanced React patterns. +--- + +Developers will often use Flow and React together, so it is important that Flow +can effectively type both common and advanced React patterns. This guide will +teach you how to use Flow to create safer React applications. + +In this guide we will assume you know [the React basics](https://react.dev/learn) and focus on adding +types for patterns you are already familiar with. We will be using examples +based on `react-dom`, but all of these patterns work in other environments +like `react-native` as well. + +## Setup Flow with React {#toc-setup-flow-with-react} + +Flow and Babel work well together, so it doesn't take much to adopt Flow as a +React user who already uses Babel. If you need to setup Babel with Flow, you can +follow [this guide](../tools/babel/). + +## React Runtimes + +Flow supports the `@babel/plugin-transform-react-jsx` runtime options required +to use JSX without explicitly importing the React namespace. + +If you are using the new automatic runtime, use this configuration in your `.flowconfig` so +that Flow knows to auto-import `jsx`: + +```ini +[options] +react.runtime=automatic +``` diff --git a/_src/react/multiplatform.md b/_src/react/multiplatform.md new file mode 100644 index 00000000000..ec8c658e118 --- /dev/null +++ b/_src/react/multiplatform.md @@ -0,0 +1,132 @@ +--- +title: Multi-platform Support for React Native +slug: /react/multiplatform +description: "Flow's support for multiple platforms inside a single React Native codebase" +--- + +:::caution +The feature is still experimental. Behaviors might change in the future. +::: + +## Benefits {#toc-benefits} + +React Native supports conditional bundling of files with [platform specific extensions](https://reactnative.dev/docs/platform-specific-code#platform-specific-extensions). For example, if you have different implementations of an Image component for iOS and Android, you can have an `Image.ios.js` file and `Image.android.js` file, and an import of Image can be resolved to either file based on the platform you are targeting. + +These platform specific files live under the same repository, but it would normally require two flowconfigs to check them like the following setup: + +```toml title=.flowconfig +; for ios +[ignore] +.*\.android\.js$ +[options] +module.file_ext=.js +module.file_ext=.ios.js +``` + +```toml title=.flowconfig.android +; for android +[ignore] +; Ignore other platform suffixes +.*\.ios\.js$ +[options] +module.file_ext=.js +module.file_ext=.android.js +``` + +Flow's optional React Native multi-platform support allows you to check your entire project with mixed platforms under a single Flow root, so that during the development of a module with both .ios and .android files, you no longer have to run both Flow servers and constantly switch between different servers to see type errors on different platforms. + +## Quick Start {#toc-quick-start} + +You can start by deleting the flowconfig for all other platforms, deleting all the platform specific configs in the only remaining flowconfig, and add the following new lines to the `options` section: + +``` +experimental.multi_platform=true +experimental.multi_platform.extensions=.ios +experimental.multi_platform.extensions=.android +``` + +For example, these are the required changes for the `.flowconfig` example above: + +```diff title=.flowconfig +[ignore] +- .*\.android\.js$ +[options] +module.file_ext=.js +- module.file_ext=.ios.js ++ experimental.multi_platform=true ++ experimental.multi_platform.extensions=.ios ++ experimental.multi_platform.extensions=.android +``` + +After enabling the new configurations, there will likely be new errors. The sections below explain the additional rules that Flow imposes to check a multiplatform React Native project. + +## Common Interface Files {#toc-common-interface-file} + +Suppose you have a file that imports the `Image` module, but `Image` module has different iOS and Android implementations as follows: + +```jsx title=MyReactNativeApp.js +import * as React from 'react'; +import Image from './Image'; + +; +; +``` + +```jsx title=Image.ios.js +import * as React from 'react'; + +type Props = { src: string, lazyLoading?: boolean }; + +export default function Image(props: Props): React.Node { /* ... */ } +``` + +```jsx title=Image.android.js +import * as React from 'react'; + +type Props = { src: string, lazyLoading: boolean }; + +export default class Image extends React.Components { + static defaultProps: { lazyLoading: boolean } = { lazyLoading: false }; + render(): React.Node { /* ... */ } +} +``` + +When you enabled multiplatform support, you will likely see that error that the `./Image` module cannot be resolved. To fix the error, you need to create a common interface file under the same directory: + +### Common Interface File in `.js.flow` {#toc-common-interface-file-in-js-flow} + +One option is to write a common interface file in `.js.flow`: + +```jsx title=Image.js.flow +import * as React from 'react'; + +type Props = { src: string, lazyLoading?: boolean }; + +declare const Image: React.AbstractComponent; +export default Image; +``` + +Flow will ensure that the module types of both `Image.ios.js` and `./Image.android.js` are subtype of the module type of `./Image.js.flow`. Flow will also ensure that there exists an implementation for each platform you declared in your `.flowconfig`. + +### Common Interface File in `.js` {#toc-common-interface-file-in-js} + +Sometimes you might target desktop platforms in addition to iOS and Android, and you only have a special implementation for one platform, and all the other platforms will use the fallback implementation in a `.js` file. For example: + +```jsx title=Image.js +import * as React from 'react'; +import DefaultImage from 'react-native/Libraries/Image'; + +export default DefaultImage; +``` + +```jsx title=Image.ios.js +import * as React from 'react'; + +type Props = { src: string, lazyLoading: boolean }; + +export default function Image(props: Props): React.Node { + // Custom implementation to take advantage of some unique iOS capabilities +} +``` + +In this case, Flow will use the `.js` file as the common interface file, and check all other platform-specific implementation files' against the `.js` file. Since the `.js` file is already a fallback implementation, Flow will no longer require that platform-specific implementation files exist for all platforms. diff --git a/_src/react/refs.md b/_src/react/refs.md new file mode 100644 index 00000000000..9711fc4c751 --- /dev/null +++ b/_src/react/refs.md @@ -0,0 +1,54 @@ +--- +title: Ref Functions +slug: /react/refs +--- + +React allows you to grab the instance of an element or component with [refs](https://react.dev/learn/manipulating-the-dom-with-refs). + +## Refs in Functional Components {#toc-refs-in-functional-components} + +Inside a functional component, refs are accessed with the `useRef` hook: + +```js flow-check +import {useRef} from 'react'; +import * as React from 'react'; + +function MyComponent() { + const buttonRef = useRef(null); + (buttonRef: {current: null | HTMLButtonElement}); // useRef wraps the ref value in an object + return ; +} +``` + +Note that `useRef` wraps the ref value in an object with a `current` property. This must be +reflected in the type of anything accepting the ref value. + +## Refs in Class Components {#toc-refs-in-class-components} + +Refs in class components are similar to function components. To create one, add a +property to your class and assign the result of `React.createRef` to it. + +```js flow-check +import * as React from 'react'; + +class MyComponent extends React.Component<{}> { + // The `null` here is important because you may not always have the instance. + buttonRef: {current: null | HTMLButtonElement}; + + constructor() { + super(); + this.buttonRef = React.createRef(); + } + + render(): React.Node { + return ; + } +} +``` + +One notable difference between `useRef` and `createRef` is that `createRef` does not accept +a default value. It will initialize the ref with the value `null`. This is because +DOM elements will not exist until the first render of `MyComponent` and so a `null` value +must be used. + +Again, note that the ref value is wrapped in an object with a `current` property. diff --git a/_src/react/types.md b/_src/react/types.md new file mode 100644 index 00000000000..4fb0cfd3bde --- /dev/null +++ b/_src/react/types.md @@ -0,0 +1,308 @@ +--- +title: Type Reference +slug: /react/types +--- + +React exports a handful of utility types that may be useful to you when typing +advanced React patterns. In previous sections we have seen a few of them. The +following is a complete reference for each of these types along with some +examples for how/where to use them. + +These types are all exported as named type exports from the `react` module. If +you want to access them as members on the `React` object (e.g. +[`React.Node`](#toc-react-node)) and +you are importing React as an ES module then you should import `React` as a +namespace: + +```js +import * as React from 'react'; +``` + +If you are using CommonJS you can also require React: + +```js +const React = require('react'); +``` + +You can also use named type imports in either an ES module environment or a +CommonJS environment: + +```js +import type {Node} from 'react'; +``` + +We will refer to all the types in the following reference as if we imported them +with: + +```js +import * as React from 'react'; +``` + +> **Note:** While importing React with a default import works: +> +> ``` +> import React from 'react'; +> ``` +> +> You will have access to all of the values that React exports, but you will +> **not** have access to the types documented below! This is because Flow will +> not add types to a default export since the default export could be any value +> (like a number). Flow will add exported named types to an ES namespace object +> which you can get with `import * as React from 'react'` since Flow knows if +> you export a value with the same name as an exported type. +> +> Again, if you import React with: `import React from 'react'` you will be able +> to access `React.Component`, `React.createElement()`, `React.Children`, and +> other JavaScript *values*. However, you will not be able to access +> [`React.Node`](#toc-react-node), [`React.ChildrenArray`](#toc-react-childrenarray) or +> other Flow *types*. You will need to use a named type import like: +> `import type {Node} from 'react'` in addition to your default import. + +## `React.Node` {#toc-react-node} + +This represents any node that can be rendered in a React application. +`React.Node` can be null, a boolean, a number, a string, a React +element, or an array of any of those types recursively. + +`React.Node` is a good default to use to annotate the return type of a function component +and class render methods. You can also use it to type elements your component takes in as children. + +Here is an example of `React.Node` being used as the return type to a function component: + +```js +function MyComponent(props: {}): React.Node { + // ... +} +``` + +It may also be used as the return type of a class `render` method: +```js +class MyComponent extends React.Component<{}> { + render(): React.Node { + // ... + } +} +``` + +Here is an example of `React.Node` as the prop type for children: + +```js +function MyComponent({ children }: { children: React.Node }) { + return
{children}
; +} +``` + +All `react-dom` JSX intrinsics have `React.Node` as their children type. +`
`, ``, and all the rest. + +## `React.MixedElement` {#toc-react-mixedelement} + +The most general type of all React elements (similar to `mixed` for all values). `React.MixedElement` is defined as +`React.Element`. + +A common use case of this type is when we want to annotate an element with a type that hides the element details. For example +```js +const element: React.MixedElement =
; +``` + +## `React.Element` {#toc-react-element} + +A React element is the type for the value of a JSX element: + +```js +const element: React.Element<'div'> =
; +``` + +`React.Element` is also the return type of +`React.createElement()`/`React.jsx()`. + +A `React.Element` takes a single type argument, +`typeof Component`. `typeof Component` is the component type of the React +element. For an intrinsic element, `typeof Component` will be the string literal +for the intrinsic you used. Here are a few examples with DOM intrinsics: + +```js +(
: React.Element<'div'>); // OK +(: React.Element<'span'>); // OK +(
: React.Element<'span'>); // Error: div is not a span. +``` + +`typeof Component` can also be your React class component or function component. + +```js +function Foo(props: {}) {} +class Bar extends React.Component<{}> {} + +(: React.Element); // OK +(: React.Element); // OK +(: React.Element); // Error: Foo is not Bar +``` + +Take note of the `typeof`, it is required! We want to get the +type *of* the value `Foo`. `(Foo: Foo)` is an error because `Foo` cannot be used +as a type, so the following is correct: `(Foo: typeof Foo)`. + +`Bar` without `typeof` would be the type of an instance of `Bar`: `(new Bar(): Bar)`. +We want the type *of* `Bar` not the type of an instance of `Bar`. +`Class` would also work here, but we prefer `typeof` for consistency +with function components. + +## `React.ChildrenArray` {#toc-react-childrenarray} + +A React children array can be a single value or an array nested to any level. +It is designed to be used with the [`React.Children` API](https://react.dev/reference/react/Children). + +For example if you want to get a normal JavaScript array from a +`React.ChildrenArray` see the following example: + +```js +import * as React from 'react'; + +// A children array can be a single value... +const children: React.ChildrenArray = 42; +// ...or an arbitrarily nested array. +const children: React.ChildrenArray = [[1, 2], 3, [4, 5]]; + +// Using the `React.Children` API can flatten the array. +const array: Array = React.Children.toArray(children); +``` + +## `React.AbstractComponent` {#toc-react-abstractcomponent} + +`React.AbstractComponent` represents a component with +a config of type Config and instance of type Instance. + +The `Config` of a component is the type of the object you need to pass in to JSX in order +to create an element with that component. The `Instance` of a component is the type of the value +that is written to the `current` field of a ref object passed into the `ref` prop in JSX. + +Config is required, but Instance is optional and defaults to mixed. + +A class or function component with config `Config` may be used in places that expect +`React.AbstractComponent`. + +This is Flow's most abstract representation of a React component, and is most useful for +writing HOCs and library definitions. + +## `React.ComponentType` {#toc-react-componenttype} + +This is the same as [`React.AbstractComponent`](#toc-react-abstractcomponent), but only specifies the first type argument. + +## `React.ElementType` {#toc-react-elementtype} + +Similar to [`React.AbstractComponent`](#toc-react-abstractcomponent) except it also +includes JSX intrinsics (strings). + +The definition for `React.ElementType` is roughly: + +```js +type ElementType = + | string + | React.AbstractComponent; +``` + +## `React.Key` {#toc-react-key} + +The type of the key prop on React elements. It is a union of strings and +numbers defined as: + +```js +type Key = string | number; +``` + +## `React.Ref` {#toc-react-ref} + +The type of the [ref prop on React elements][]. `React.Ref` +could be a string, ref object, or ref function. + +[ref prop on React elements]: https://react.dev/learn/manipulating-the-dom-with-refs + +The ref function will take one and only argument which will be the element +instance which is retrieved using +[`React.ElementRef`](#toc-react-elementref) or null since +[React will pass null into a ref function when unmounting][]. + +[React will pass null into a ref function when unmounting]: https://react.dev/learn/manipulating-the-dom-with-refs#how-to-manage-a-list-of-refs-using-a-ref-callback + +Like [`React.Element`](#toc-react-element), `typeof Component` +must be the type *of* a React component so you need to use `typeof` as in +`React.Ref`. + +The definition for `React.Ref` is roughly: + +```js +type Ref = + | string + | (instance: React.ElementRef | null) => mixed; + | { -current: React$ElementRef | null, ... } +``` + +## `React.ElementConfig` {#toc-react-elementconfig} + +This utility gets the type of the object that you must pass in to a +component in order to instantiate it via `createElement()` or `jsx()`. + +Importantly, props with defaults are optional in the resulting type. + +For example, + +```js +import * as React from 'react'; + +class MyComponent extends React.Component<{foo: number}> { + static defaultProps = {foo: 42}; + + render() { + return this.props.foo; + } +} + +// `React.ElementProps<>` requires `foo` even though it has a `defaultProp`. +({foo: 42}: React.ElementProps); + +// `React.ElementConfig<>` does not require `foo` since it has a `defaultProp`. +({}: React.ElementConfig); +``` + +Like [`React.Element`](#toc-react-element), `typeof Component` must be the +type *of* a React component so you need to use `typeof` as in +`React.ElementProps`. + + +## `React.ElementProps` {#toc-react-elementprops} + +> **Note:** Because [`React.ElementProps`](#toc-react-elementprops) does not preserve the optionality of `defaultProps`, [`React.ElementConfig`](#toc-react-elementconfig) (which does) is more often the right choice, especially for simple props pass-through as with [higher-order components](../hoc/#toc-supporting-defaultprops-with-react-elementconfig). +You probably should not use ElementProps. + +Gets the props for a React element type, *without* preserving the optionality of `defaultProps`. +`typeof Component` could be the type of a React class component, a function component, or a JSX intrinsic string. +This type is used for the `props` property on [`React.Element`](#toc-react-element). + +Like [`React.Element`](#toc-react-element), `typeof Component` must be the +type *of* a React component so you need to use `typeof` as in +`React.ElementProps`. + +## `React.ElementRef` {#toc-react-elementref} + +Gets the instance type for a React element. The instance will be different for +various component types: + +- React.AbstractComponent will return the Instance type. +- React class components will be the class instance. So if you had + `class Foo extends React.Component<{}> {}` and used + `React.ElementRef` then the type would be the instance of `Foo`. +- React function components do not have a backing instance and so + `React.ElementRef` (when `Bar` is `function Bar() {}`) will give + you the undefined type. +- JSX intrinsics like `div` will give you their DOM instance. For + `React.ElementRef<'div'>` that would be `HTMLDivElement`. For + `React.ElementRef<'input'>` that would be `HTMLInputElement`. + +Like [`React.Element`](#toc-react-element), `typeof Component` must be the +type *of* a React component so you need to use `typeof` as in +`React.ElementRef`. + +## `React.Config` {#toc-react-config} + +Calculates a config object from props and default props. This is most useful for annotating +HOCs that are abstracted over configs. See our [docs on writing HOCs](../hoc) for more information. diff --git a/_src/strict/index.md b/_src/strict/index.md new file mode 100644 index 00000000000..f7eb60295a1 --- /dev/null +++ b/_src/strict/index.md @@ -0,0 +1,58 @@ +--- +title: Flow Strict +slug: /strict +description: Learn how to enable stricter type checking on a file-by-file basis. +--- + +You can enable stronger safety guarantees in Flow (such as banning `any`/`Object`/`Function` types and requiring all dependencies to be typed) by adding **`@flow strict`** to your files. + +### Overview {#toc-overview} +Flow was designed for easy adoption, so it allows you opt-out of type checking in certain situations, permitting unsafe behaviors. But since many codebases now have a high adoption of Flow types, this trade-off can be flipped. You can use *Flow Strict* to disallow previously-allowed unsafe patterns. This gives you improved safety guarantees that catch more bugs and make refactoring easier. And you can implement these stronger guarantees incrementally, on a file-by-file basis. + +### Features {#toc-features} +Enabling Flow Strict for a file means that several previously-allowed patterns will now trigger a Flow error. Each disallowed pattern has a corresponding [Flow Lint](../linting/) rule which triggers the error. The list of rules enabled for `@flow strict` is configured in each `.flowconfig`. Here are the recommended rules: + + - [`nonstrict-import`](../linting/rule-reference/#toc-nonstrict-import): Triggers an error when importing from a module which is not also `@flow strict`. This is very important, because it means that when a file is marked as strict, all of its dependencies are strict as well. + - [`unclear-type`](../linting/rule-reference/#toc-unclear-type): Triggers an error when using `Object`, `Function`, or `any` in a type annotation. + - [`untyped-import`](../linting/rule-reference/#toc-untyped-import): Triggers an error when importing from an untyped module. + - [`untyped-type-import`](../linting/rule-reference/#toc-untyped-type-import): Triggers an error when importing a type from an untyped module. + - [`unsafe-getters-setters`](../linting/rule-reference/#toc-unsafe-getters-setters): Triggers an error when using getters and setters, which can be unsafe. + - [`sketchy-null`](../linting/rule-reference/#toc-sketchy-null): Triggers an error when doing an existence check on a value that could be null/undefined or falsey. + +For a full list of available lint rules, see the [Lint Rule Reference](../linting/rule-reference/). + +Additionally, note that function parameters are considered const (i.e., treated as if they were declared with `const` rather than `let`). This feature is not yet configurable in Flow Strict; it is always on. + +### Enabling Flow Strict in a .flowconfig {#toc-enabling-flow-strict-in-a-flowconfig} +Flow Strict is configured in each `.flowconfig`. To enable: +1. Add a `[strict]` section to the `.flowconfig`. +2. List the lint rules to enable . These are strongly recommended: +```text +[strict] +nonstrict-import +unclear-type +unsafe-getters-setters +untyped-import +untyped-type-import +``` +Also recommended, but optional as it may be too noisy in some codebases: +`sketchy-null` + +We recommend you enable all your desired rules from the beginning, then adopt Flow Strict file-by-file. This works better than enabling a single rule, adding `@flow strict` to many files, and then adding more rules to the config. + +### Adoption {#toc-adoption} +Add `@flow strict` to a file and fix all errors that appear. Because Flow Strict requires dependencies to also be strict (if the `nonstrict-import` rule is enabled), start at the leaves of the dependency tree and work up from there. Do not add `$FlowFixMe` to suppress the new errors as they appear; just add `@flow strict` once all issues have been resolved. Since the most common reasons for using `$FlowFixMe` stem from reliance on untyped dependencies or behavior, future issues should be greatly reduced once Flow Strict is enabled. + +Be liberal with enabling Flow Strict. Unlike adding or removing `@flow`, adding or removing `@flow strict` (by itself) does not change Flow coverage. It only prevents or allows certain new unsafe behavior from being added in the future. Even if in the future Flow Strict has to be disabled for the file, at least unsafe behavior was prevented from being added in the meantime. + +Library definitions are considered strict (as they can be included in many different projects with contradicting strict configurations). + +### Strict Local {#toc-strict-local} +If you enable the `nonstrict-import` rule in your Flow Strict configuration (recommended), then all dependencies of a strict file must also be strict. While this the optimal goal, for large pre-existing codebases it may be beneficial to allow some of the benefits of Flow Strict to be put in use before all dependencies are strict. + +`@flow strict-local` is the same as `@flow strict`, except it does not require its dependencies to also be strict (i.e. it is "locally" strict). It does not have a separate configuration: it uses the same configuration as Flow Strict, just without the `nonstrict-import` rule. + +Once all the dependencies of a `@flow strict-local` file are strict, the file can be upgraded to a `@flow strict` file. A `@flow strict` file cannot depend on a `@flow strict-local` file as this would break the `nonstrict-import` rule. + +### What's Ahead {#toc-what-s-ahead} +Eventually, some features of Flow Strict could become the default behavior of Flow, if those features prove successful and achieve widespread adoption. diff --git a/_src/tools/babel.md b/_src/tools/babel.md new file mode 100644 index 00000000000..cb7b9a7a8dd --- /dev/null +++ b/_src/tools/babel.md @@ -0,0 +1,30 @@ +--- +title: Babel +slug: /tools/babel +--- + +Flow and [Babel](http://babeljs.io/) are designed to work great together. It +takes just a few steps to set them up together. + +If you don't have Babel setup already, you can do that by following +[this guide](http://babeljs.io/docs/setup/). + +Once you have Babel setup, install `@babel/preset-flow` and `babel-plugin-syntax-hermes-parser` with either +[Yarn](https://yarnpkg.com/) or [npm](https://www.npmjs.com/). + +```sh +yarn add --dev @babel/preset-flow babel-plugin-syntax-hermes-parser +# or +npm install --save-dev @babel/preset-flow babel-plugin-syntax-hermes-parser +``` + +Then add the `@babel/preset-flow` preset and `babel-plugin-syntax-hermes-parser` plugin to your Babel config. + +```json +{ + "presets": ["@babel/preset-flow"], + "plugins": ["babel-plugin-syntax-hermes-parser"], +} +``` + +You can read the documentation of [babel-plugin-syntax-hermes-parser](https://github.com/facebook/hermes/blob/main/tools/hermes-parser/js/babel-plugin-syntax-hermes-parser/README.md) to see how to configure it. [This website's Babel config](https://github.com/facebook/flow/blob/baa74a889dc81fe36f0fd362db6d3e27d44d961d/website/babel.config.js#L10-L17) provides an example with custom parser options. diff --git a/_src/tools/eslint.md b/_src/tools/eslint.md new file mode 100644 index 00000000000..21385ba1b01 --- /dev/null +++ b/_src/tools/eslint.md @@ -0,0 +1,104 @@ +--- +title: ESLint +slug: /tools/eslint +--- + +ESLint is a static analysis tool which can help you quickly find and +fix bugs and stylistic errors in your code. The rules ESLint provide +complement the checks provided by Flow's type system. + +You can quick-start setup ESLint, install `hermes-eslint` with either +[Yarn](https://yarnpkg.com/) or [npm](https://www.npmjs.com/). + +```sh +yarn add --dev eslint hermes-eslint eslint-plugin-ft-flow +# or +npm install --save-dev eslint hermes-eslint eslint-plugin-ft-flow +``` + +Then create a `.eslintrc.js` file in your project root with the following: + +```js +module.exports = { + root: true, + parser: 'hermes-eslint', + plugins: [ + 'ft-flow' + ], + extends: [ + 'eslint:recommended', + 'plugin:ft-flow/recommended', + ], +}; +``` + +In the above config the order of the `extends` plugins is important as `plugin:ft-flow/recommended` +disables some rules from `eslint:recommended` so it needs to be defined after to work correctly. + +For more information about configuring ESLint, [check out the ESLint docs](https://eslint.org/). + +You can then lint your codebase with: + +```sh +yarn run eslint . --ext .js,.jsx +# or +npm run eslint . --ext .js,.jsx +``` + +### Usage With Prettier {#toc-usage-with-prettier} + +If you use [`prettier`](https://www.npmjs.com/package/prettier), there is also +a helpful config to help ensure ESLint doesn't report on formatting issues that +prettier will fix: [`eslint-config-prettier`](https://www.npmjs.com/package/eslint-config-prettier). + +Using this config by adding it to the **_end_** of your `extends`: + +```diff + module.exports = { + root: true, + parser: 'hermes-eslint', + plugins: [ + 'ft-flow' + ], + extends: [ + 'eslint:recommended', + 'plugin:ft-flow/recommended', ++ 'prettier', + ], + }; +``` + + +### Additional Plugins {#toc-additional-plugins} + +ESLint plugins provide additional rules and other functionality on top of ESLint. +Below are just a few examples that might be useful: + +- Helpful language rules by the Flow team: [`eslint-plugin-fb-flow`](https://www.npmjs.com/package/eslint-plugin-fb-flow) +- React best practices: [`eslint-plugin-react`](https://www.npmjs.com/package/eslint-plugin-react) + and [`eslint-plugin-react-hooks`](https://www.npmjs.com/package/eslint-plugin-react-hooks) +- Jest testing: [`eslint-plugin-jest`](https://www.npmjs.com/package/eslint-plugin-jest) +- Import/export conventions : [`eslint-plugin-import`](https://www.npmjs.com/package/eslint-plugin-import) +- NodeJS best practices: [`eslint-plugin-node`](https://www.npmjs.com/package/eslint-plugin-node) +- ESLint comment restrictions: [`eslint-plugin-eslint-comments`](https://www.npmjs.com/package/eslint-plugin-eslint-comments) + +Every plugin that is out there includes documentation on the various configurations and rules they offer. +A typical plugin might be used like: + +```diff + module.exports = { + root: true, + parser: 'hermes-eslint', + plugins: [ + 'ft-flow' ++ 'jest', + ], + extends: [ + 'eslint:recommended', + 'plugin:ft-flow/recommended', ++ 'plugin:jest/recommended', + ], + }; +``` + +Search ["eslint-plugin" on npm](https://www.npmjs.com/search?q=eslint-plugin) for more. diff --git a/_src/tools/flow-remove-types.md b/_src/tools/flow-remove-types.md new file mode 100644 index 00000000000..628e30b7e47 --- /dev/null +++ b/_src/tools/flow-remove-types.md @@ -0,0 +1,41 @@ +--- +title: flow-remove-types +slug: /tools/flow-remove-types +--- + +[`flow-remove-types`](https://github.com/facebook/flow/tree/master/packages/flow-remove-types) is a small +CLI tool for stripping Flow type annotations from files. It's a lighter-weight +alternative to Babel for projects that don't need everything Babel provides. + +First install `flow-remove-types` with either +[Yarn](https://yarnpkg.com/) or [npm](https://www.npmjs.com/). + +```sh +yarn add --dev flow-remove-types +# or +npm install --save-dev flow-remove-types +``` + +If you then put all your source files in a `src` directory you can compile them +to another directory by running: + +```sh +yarn run flow-remove-types src/ -d lib/ +``` + +You can add this to your `package.json` scripts easily. + +```json +{ + "name": "my-project", + "main": "lib/index.js", + "scripts": { + "build": "flow-remove-types src/ -d lib/", + "prepublish": "yarn run build" + } +} +``` + +> **Note:** You'll probably want to add a `prepublish` script that runs this +> transform as well, so that it runs before you publish your code to the npm +> registry. diff --git a/_src/tools/index.md b/_src/tools/index.md new file mode 100644 index 00000000000..a5c280a11c9 --- /dev/null +++ b/_src/tools/index.md @@ -0,0 +1,14 @@ +--- +title: Tools +slug: /tools +displayed_sidebar: docsSidebar +description: Detailed guides, tips, and resources on how to integrate Flow with different JavaScript tools. +--- + +import DocCardList from '@theme/DocCardList'; + + diff --git a/_src/types/aliases.md b/_src/types/aliases.md new file mode 100644 index 00000000000..403451cc86e --- /dev/null +++ b/_src/types/aliases.md @@ -0,0 +1,89 @@ +--- +title: Type Aliases +slug: /types/aliases +--- + +When you have complicated types that you want to reuse in multiple places, you +can alias them in Flow using a **type alias**. + +```js flow-check +type MyObject = { + foo: number, + bar: boolean, + baz: string, +}; +``` + +These type aliases can be used anywhere a type can be used. + +```js flow-check +type MyObject = { + // ... +}; + +const val: MyObject = { /* ... */ }; +function method(val: MyObject) { /* ... */ } +class Foo { constructor(val: MyObject) { /* ... */ } } +``` + +Type aliases are just that: aliases. They don't create a _different_ type, just another name for one. +This means that a type alias is completely interchangeable with the type it is equal to. + +```js flow-check +type MyNumber = number; +declare const x: MyNumber; +declare function foo(x: number): void; +foo(x); // ok, because MyNumber = number +``` + +[Opaque type aliases](../opaque-types) offer an alternative for when you don't want to treat the +types as the same. + +## Type Alias Syntax {#toc-type-alias-syntax} + +Type aliases are created using the keyword `type` followed by its name, an +equals sign `=`, and a type definition. + +```js +type Alias = Type; +``` + +Any type can appear inside a type alias. + +```js flow-check +type NumberAlias = number; +type ObjectAlias = { + property: string, + method(): number, +}; +type UnionAlias = 1 | 2 | 3; +type AliasAlias = ObjectAlias; +``` + +#### Type Alias Generics {#toc-type-alias-generics} + +Type aliases can also have their own [generics](../generics). + +```js flow-check +type MyObject = { + property: A, + method(val: B): C, +}; +``` + +Type alias generics are [parameterized](../generics#toc-parameterized-generics). +When you use a type alias you need to pass parameters for each of its generics. + +```js flow-check +type MyObject = { + foo: A, + bar: B, + baz: C, +}; + +var val: MyObject = { + foo: 1, + bar: true, + baz: 'three', +}; +``` diff --git a/_src/types/any.md b/_src/types/any.md new file mode 100644 index 00000000000..02cdd60dd44 --- /dev/null +++ b/_src/types/any.md @@ -0,0 +1,93 @@ +--- +title: Any +slug: /types/any +--- + +> **Warning:** Do not mistake `any` with [`mixed`](../mixed). It's also not the same as [`empty`](../empty). + +If you want a way to opt-out of using the type checker, `any` is the way to do +it. **Using `any` is completely unsafe, and should be avoided whenever +possible.** + +For example, the following code will not report any errors: + +```js flow-check +function add(one: any, two: any): number { + return one + two; +} + +add(1, 2); // Works. +add("1", "2"); // Works. +add({}, []); // Works. +``` + +Even code that will cause runtime errors will not be caught by Flow: + +```js flow-check +function getNestedProperty(obj: any) { + return obj.foo.bar.baz; +} + +getNestedProperty({}); +``` + +There are only a couple of scenarios where you might consider using `any`: + +1. When you are in the process of converting existing code to using Flow + types and you are currently blocked on having the code type checked (maybe + other code needs to be converted first). +2. When you are certain your code works and for some reason Flow is unable to + type check it correctly. There are a (decreasing) number of idioms in + JavaScript that Flow is unable to statically type. + +You can ban `any` by enabling the [`unclear-type`](../../linting/rule-reference/#toc-unclear-type) lint rule. + +You can use the [coverage](../../cli/coverage/) command to identify code typed as `any`. + +## Avoid leaking `any` {#toc-avoid-leaking-any} + +When you have a value with the type `any`, you can cause Flow to infer `any` +for the results of all of the operations you perform. + +For example, if you get a property on an object typed `any`, the resulting +value will also have the type `any`. + +```js flow-check +function fn(obj: any) { + let foo = obj.foo; // Results in `any` type +} +``` + +You could then use the resulting value in another operation, such as adding it +as if it were a number and the result will also be `any`. + +```js flow-check +function fn(obj: any) { + let foo = obj.foo; // Results in `any` type + let bar = foo * 2; // Results in `any` type +} +``` + +You could continue this process until `any` has leaked all over your code. + +```js flow-check +function fn(obj: any) { + let foo = obj.foo; + let bar = foo * 2; + return bar; // Results in `any` type +} + +let bar = fn({ foo: 2 }); // Results in `any` type +let baz = "baz:" + bar; // Results in `any` type +``` + +Prevent this from happening by cutting `any` off as soon as possible by casting +it to another type. + +```js flow-check +function fn(obj: any) { + let foo: number = obj.foo; +} +``` + +Now your code will not leak `any`. diff --git a/_src/types/arrays.md b/_src/types/arrays.md new file mode 100644 index 00000000000..025b6d80e75 --- /dev/null +++ b/_src/types/arrays.md @@ -0,0 +1,266 @@ +--- +title: Arrays +slug: /types/arrays +--- + +Array types represent lists of **unknown length**, where all items have the **same type**. +This is in contrast to [tuple types](../tuples), which have a fixed length and where each element can have a different type. + +JavaScript array literal values can be used to create both tuple and array types: + +```js flow-check +const arr: Array = [1, 2, 3]; // As an array type +const tup: [number, number, number] = [1, 2, 3]; // As a tuple type +``` + +## `Array` Type {#toc-array-type} + +The type `Array` represents an array of items of type `T`. +For example, an array of numbers would be `Array`: + +```js flow-check +const arr: Array = [1, 2, 3]; +``` + +You can put any type within `Array`: + +```js flow-check +const arr1: Array = [true, false, true]; +const arr2: Array = ["A", "B", "C"]; +const arr3: Array = [1, true, "three"]; +``` + +## `$ReadOnlyArray` Type {#toc-readonlyarray} + +You can use the type `$ReadOnlyArray` instead of `Array` to represent a [read-only](../../lang/variance) array which cannot be mutated. +You can't write to a read-only array directly, and can't use methods which mutate the array like `.push()`, `.unshift()`, etc. + +```js flow-check +const readonlyArray: $ReadOnlyArray = [1, 2, 3] + +const first = readonlyArray[0]; // OK to read +readonlyArray[1] = 20; // Error! +readonlyArray.push(4); // Error! +readonlyArray.unshift(4); // Error! +``` + +Note that an array of type `$ReadOnlyArray` can still have mutable _elements_: + +```js flow-check +const readonlyArray: $ReadOnlyArray<{x: number}> = [{x: 1}]; +readonlyArray[0] = {x: 42}; // Error! +readonlyArray[0].x = 42; // Works +``` + +The main advantage to using `$ReadOnlyArray` instead of `Array` is that `$ReadOnlyArray`'s +type parameter is [*covariant*](../../lang/variance/#toc-covariance) +while `Array`'s type parameter is [*invariant*](../../lang/variance/#toc-invariance). +That means that `$ReadOnlyArray` is a subtype of `$ReadOnlyArray` while +`Array` is NOT a subtype of `Array`. So it's often useful to use +`$ReadOnlyArray` in type annotations for arrays of various types of elements. +Take, for instance, the following scenario: + +```js flow-check +const someOperation = (arr: Array) => { + // Here we could do `arr.push('a string')` +} + +const array: Array = [1]; +someOperation(array) // Error! +``` + +Since the parameter `arr` of the `someOperation` function is typed as a mutable +`Array`, pushing a string into it would be possible inside that scope, which +would then break the type contract of the outside `array` variable. By +annotating the parameter as `$ReadOnlyArray` instead in this case, Flow can be +sure this won't happen and no errors will occur: + +```js flow-check +const someOperation = (arr: $ReadOnlyArray) => { + // Nothing can be added to `arr` +} + +const array: Array = [1]; +someOperation(array); // Works +``` + +`$ReadOnlyArray` represents the supertype of all arrays and all [tuples](../tuples): + +```js flow-check +const tup: [number, string] = [1, 'hi']; +const arr: Array = [1, 2]; + +function f(xs: $ReadOnlyArray) { /* ... */ } + +f(tup); // Works +f(arr); // Works +``` + +## Empty Array Literals {#toc-empty-array-literals} + +Empty array literals (`[]`) are handled specially in Flow when it comes to their [annotation requirements](../../lang/annotation-requirement). +What makes them special is that they do not contain enough information to +determine their type, and at the same time they are too common to always +require type annotations in their immediate context. + +So, to type empty arrays Flow follows these rules: + +### Contextual Inference + +First, if [contextual information](../../lang/annotation-requirement/#toc-contextual-typing) exists, +we'll use it to determine the array element type: + +```js flow-check +function takesStringArray(x: Array): void {} + +const arr1: Array = []; +takesStringArray([]); +``` + +In both cases, the `[]` will be typed as an `Array`. + +Note that for the contextual information to work, the type needs to be available +right at the definition of the array. This means that the last two lines in the following +code will error: + +``` js flow-check +function takesStringArray(x: Array): void {} + +const arr2 = []; +takesStringArray(arr2); +``` + +The second error is due to `arr2` being inferred as `Array` which leads to another error at the call +to `takesStringArray`. + +### Initializer Inference + +Flow allows another way to determine the types of empty arrays when they are immediately assigned to a variable: + +```js +const arr3 = []; +``` + +The way it does this is reminiscent of the typing of +[variables without initializers](../../lang/variables/#toc-variables-declared-without-initializers): +Flow tries to choose the "first" *assignment* or *assignments* +to the variable to define its type. In the case of empty arrays, an assignment is either +* an indexed write statement `a[i] = e;`, or +* an array `push` call `a.push(e)`. + +In either case the type of `e` is used as the type of the array element. + +Here are some examples: + +#### Straight-line Code +Once the first assignemnt has been found, the type of the array element is pinned to that of the +assigned expression. Subsequent writes to array with elements of +a different type are errors: + +``` js flow-check +const arr3 = []; +arr3.push(42); // arr3 is inferred as Array +arr3.push("abc"); // Error! +``` + +#### Conditional Code + +If the array is assigned in sibling branches of conditional statements, the type +of the array element is pinned to the union of the assigned types: + +``` js flow-check +declare const cond: boolean; + +const arr4 = []; +if (cond) { + arr4[0] = 42; +} else { + arr4.push("abc"); +} +// arr4 is inferred as Array +arr4.push("def"); // Works +arr4[0] = true; // Error! +``` + +#### Nearer Scope Wins + +Shallow scope of assignment is prefered when there are multiple scopes where assignments happen: + +``` js flow-check +const arr5 = []; +function f() { + arr5.push(42); // Error! +} +f(); +arr5.push("abc"); // This assignment wins. arr5 is inferred as Array +arr5.push(1); // Error! +``` + +## Array access is unsafe {#toc-array-access-is-unsafe} + +When you retrieve an element from an array there is always a possibility that +it is `undefined`. You could have either accessed an index which is out of the +bounds of the array, or the element could not exist because it is a "sparse +array". + +For example, you could be accessing an element that is out of the bounds of the +array: + +```js flow-check +const array: Array = [0, 1, 2]; +const value: number = array[3]; // Works + // ^ undefined +``` + +Or you could be accessing an element that does not exist if it is a "sparse array": + +```js flow-check +const array: Array = []; + +array[0] = 0; +array[2] = 2; + +const value: number = array[1]; // Works + // ^ undefined +``` + +In order to make this safe, Flow would have to mark every single array access +as "*possibly undefined"*. + +Flow does not do this because it would be extremely inconvenient to use. You +would be forced to refine the type of every value you get when accessing an +array. + +```js flow-check +const array: Array = [0, 1, 2]; +const value: number | void = array[1]; + +if (value !== undefined) { + // number +} +``` + +## Discouraged Array Type Shorthand Syntax {#toc-array-type-shorthand-syntax} + +There is an alternative to the `Array` syntax: `T[]`. +This syntax is discouraged and may be deprecated in the future. + +```js flow-check +const arr: number[] = [0, 1, 2, 3]; +``` + +Just note that `?Type[]` is the equivalent of `?Array` and not `Array`. + +```js flow-check +const arr1: ?number[] = null; // Works +const arr2: ?number[] = [1, 2]; // Works +const arr3: ?number[] = [null]; // Error! +``` + +If you want to make it `Array` you can use parenthesis like: `(?Type)[]` + +```js flow-check +const arr1: (?number)[] = null; // Error! +const arr2: (?number)[] = [1, 2]; // Works +const arr3: (?number)[] = [null]; // Works +``` diff --git a/_src/types/casting.md b/_src/types/casting.md new file mode 100644 index 00000000000..e243c0769a4 --- /dev/null +++ b/_src/types/casting.md @@ -0,0 +1,148 @@ +--- +title: Type Casting Expressions +slug: /types/casting +--- + +Sometimes it is useful to assert a type without using something like a function +or a variable to do so. For this Flow supports an inline type cast expression +syntax which can be used in a number of different ways. + +## Type Cast Expression Syntax {#toc-type-cast-expression-syntax} + +In order to create a type cast expression around a `value`, add a colon `:` +with the `Type` and wrap the expression with parentheses `(` `)`. + +```js +(value: Type) +``` + +> **Note:** The parentheses are necessary to avoid ambiguity with other syntax. + +Type cast expressions can appear anywhere an expression can appear. + +```js +let val = (value: Type); +let obj = { prop: (value: Type) }; +let arr = ([(value: Type), (value: Type)]: Array); +``` + +The value itself can also be an expression: + +```js +(2 + 2: number); +``` + +When you strip the types all that is left is the value. + +```js +(value: Type); +``` + +```js +value; +``` + +## Type Assertions {#toc-type-assertions} + +Using type cast expressions you can assert that values are certain types. + +```js flow-check +let value = 42; + +(value: 42); // Works! +(value: number); // Works! +(value: string); // Error! +``` + +Asserting types in this way works the same as types do anywhere else. + +## Type Casting {#toc-type-casting} + +When you write a type cast expression, the result of that expression is the +value with the provided type. If you hold onto the resulting value, it will +have the new type. + +```js flow-check +let value = 42; + +(value: 42); // Works! +(value: number); // Works! + +let newValue = (value: number); + +(newValue: 42); // Error! +(newValue: number); // Works! +``` + +## Using type cast expressions {#toc-using-type-cast-expressions} + +> **Note:** We're going to go through a stripped down example for +> demonstrating how to make use of type cast expressions. This example is not +> solved well in practice. + +### Type Casting through any {#toc-type-casting-through-any} + +Because type casts work the same as all other type annotations, you can only +cast values to less specific types. You cannot change the type or make it +something more specific. + +But you can use [any](../any) to cast to whatever type you want. + +```js flow-check +let value = 42; + +(value: number); // Works! +(value: string); // Error! + +let newValue = ((value: any): string); + +(newValue: number); // Error! +(newValue: string); // Works! +``` + +By casting the value to any, you can then cast to whatever you want. + +This is unsafe and not recommended. But it's sometimes useful when you are +doing something with a value which is very difficult or impossible to type and +want to make sure that the result has the desired type. + +For example, the following function for cloning an object. + +```js flow-check +function cloneObject(obj: any) { + const clone: {[string]: mixed} = {}; + + Object.keys(obj).forEach(key => { + clone[key] = obj[key]; + }); + + return clone; +} +``` + +It would be hard to create a type for this because we're creating a new object +based on another object. + +If we cast through any, we can return a type which is more useful. + +```js flow-check +function cloneObject(obj: T): T { + const clone: {[string]: mixed} = {}; + + Object.keys(obj).forEach(key => { + clone[key] = obj[key]; + }); + + return ((clone: any): T); +} + +const clone = cloneObject({ + foo: 1, + bar: true, + baz: 'three' +}); + +(clone.foo: 1); // Works! +(clone.bar: true); // Works! +(clone.baz: 'three'); // Works! +``` diff --git a/_src/types/classes.md b/_src/types/classes.md new file mode 100644 index 00000000000..f94f0ef0cdc --- /dev/null +++ b/_src/types/classes.md @@ -0,0 +1,391 @@ +--- +title: Classes +slug: /types/classes +--- + +JavaScript [classes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes) +in Flow operate both as a value and a type. You can use the name of the class as the type of its instances: + +```js flow-check +class MyClass { + // ... +} + +const myInstance: MyClass = new MyClass(); // Works! +``` + +This is because classes in Flow are [nominally typed](../../lang/nominal-structural). + +This means two classes with identical shapes are not compatible: + +```js flow-check +class A { + x: number; +} +class B { + x: number; +} +const foo: B = new A(); // Error! +const bar: A = new B(); // Error! +``` + +You also cannot use an [object type](../objects) to describe an instance of a class: + +```js flow-check +class MyClass { + x: number; +} +const foo: {x: number, ...} = new MyClass(); // Error! +``` + +You can use [interfaces](../interfaces) to accomplish this instead: + +```js flow-check +class A { + x: number; +} +class B { + x: number; +} + +interface WithXNum { + x: number; +} + +const foo: WithXNum = new A(); // Works! +const bar: WithXNum = new B(); // Works! + +const n: number = foo.x; // Works! +``` + +## Class Syntax {#toc-class-syntax} + +Classes in Flow are just like normal JavaScript classes, but with added types. + +### Class Methods {#toc-class-methods} + +Just like in [functions](../functions), class methods can have annotations for both parameters +(input) and returns (output): + +```js flow-check +class MyClass { + method(value: string): number { + return 0; + } +} +``` + +Also just like regular functions, class methods may have `this` annotations as well. +However, if one is not provided, Flow will infer the class instance type (or the class type for static methods) +instead of `mixed`. When an explicit `this` parameter is provided, it must be a [supertype](../../lang/subtypes/) of +the class instance type (or class type for static methods). + +```js flow-check +class MyClass { + method(this: interface {x: string}) { /* ... */ } // Error! +} +``` + +Unlike class properties, however, class methods cannot be unbound or rebound from +the class on which you defined them. So all of the following are errors in Flow: + +```js flow-check +class MyClass { method() {} } +const a = new MyClass(); +a.method; // Error! +const {method} = a; // Error! +a.method.bind({}); // Error! +``` + +Methods are considered [read-only](../../lang/variance): + +```js flow-check +class MyClass { + method() {} +} + +const a = new MyClass(); +a.method = function() {}; // Error! +``` + +Flow supports [private methods](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields), +a feature of ES2022. Private methods start with a hash symbol `#`: + +```js flow-check +class MyClass { + #internalMethod() { + return 1; + } + publicApi() { + return this.#internalMethod(); + } +} + +const a = new MyClass(); +a.#internalMethod(); // Error! +a.publicApi(); // Works! +``` + +Flow requires return type annotations on methods in most cases. +This is because it is common to reference `this` inside of a method, and `this` is typed as the instance of the class - +but to know the type of the class we need to know the return type of its methods! + +```js flow-check +class MyClass { + foo() { // Error! + return this.bar(); + } + bar() { // Error! + return 1; + } +} +``` +```js flow-check +class MyClassFixed { + foo(): number { // Works! + return this.bar(); + } + bar(): number { // Works! + return 1; + } +} +``` + +### Class Fields (Properties) {#toc-class-fields-properties} + +Whenever you want to use a class field in Flow you must first give it an +annotation: + +```js flow-check +class MyClass { + method() { + this.prop = 42; // Error! + } +} +``` + +Fields are annotated within the body of the class with the field name followed +by a colon `:` and the type: + +```js flow-check +class MyClass { + prop: number; + method() { + this.prop = 42; + } +} +``` + +Fields added outside of the class definition need to be annotated within the body +of the class: + +```js flow-check +function func(x: number): number { + return x + 1; +} + +class MyClass { + static constant: number; + static helper: (number) => number; + prop: number => number; +} +MyClass.helper = func +MyClass.constant = 42 +MyClass.prototype.prop = func +``` + +Flow also supports using the [class properties syntax](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#field_declarations): + +```js flow-check +class MyClass { + prop = 42; +} +``` + +When using this syntax, you are not required to give it a type annotation. But +you still can if you need to: + +```js flow-check +class MyClass { + prop: number = 42; +} +``` + +You can mark a class field as read-only (or write-only) using [variance](../../lang/variance) annotations. +These can only be written to in the constructor: + +```js flow-check +class MyClass { + +prop: number; + + constructor() { + this.prop = 1; // Works! + } + + method() { + this.prop = 1; // Error! + } +} + +const a = new MyClass(); +const n: number = a.prop; // Works! +a.prop = 1; // Error! +``` + +Flow supports [private fields](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields), +a feature of ES2022. Private fields start with a hash symbol `#`: + +```js flow-check +class MyClass { + #internalValue: number; + + constructor() { + this.#internalValue = 1; + } + + publicApi() { + return this.#internalValue; + } +} + +const a = new MyClass(); +const x: number = a.#internalValue; // Error! +const y: number = a.publicApi(); // Works! +``` + +### Extending classes and implementing interfaces + +You can optionally `extend` one other class: + +```js flow-check +class Base { + x: number; +} + +class MyClass extends Base { + y: string; +} +``` + +And also implement multiple [interfaces](../interfaces): + +```js flow-check +interface WithXNum { + x: number; +} +interface Readable { + read(): string; +} + +class MyClass implements WithXNum, Readable { + x: number; + read(): string { + return String(this.x); + } +} +``` + +You don't need to `implement` an interface to be a subtype of it, but doing so enforces that your class meets the requirements: + +```js flow-check +interface WithXNum { + x: number; +} + +class MyClass implements WithXNum { // Error! +} +``` + +### Class Constructors {#toc-class-fields-constructors} + +You can initialize your class properties in class constructors: + +```js flow-check +class MyClass { + foo: number; + + constructor() { + this.foo = 1; + } +} +``` + +You must first call `super(...)` in a derived class before you can access `this` and `super`: + +```js flow-check +class Base { + bar: number; +} + +class MyClass extends Base { + foo: number; + + constructor() { + this.foo; // Error + this.bar; // Error + super.bar; // Error + super(); + this.foo; // OK + this.bar; // OK + super.bar; // OK + } +} +``` + +However, Flow will not enforce that all class properties are initialized in constructors: + +```js flow-check +class MyClass { + foo: number; + bar: number; + + constructor() { + this.foo = 1; + } + + useBar() { + (this.bar: number); // No errors. + } +} +``` + +### Class Generics {#toc-class-generics} + +Classes can also have their own [generics](../generics): + +```js flow-check +class MyClass { + property: A; + method(val: B): C { + throw new Error(); + } +} +``` + +Class generics are [parameterized](../generics#toc-parameterized-generics). +When you use a class as a type you need to pass parameters for each of its +generics: + +```js flow-check +class MyClass { + constructor(arg1: A, arg2: B, arg3: C) { + // ... + } +} + +const val: MyClass = new MyClass(1, true, 'three'); +``` + +## Classes in annotations {#toc-classes-in-annotations} + +When you use the name of your class in an annotation, it means an _instance_ of your class: + +```js +class MyClass {} + +const b: MyClass = new MyClass(); // Works! +const a: MyClass = MyClass; // Error! +``` + +See [here](../utilities#toc-class) for details on `Class`, which allows you +to refer to the type of the class in an annotation. diff --git a/_src/types/comments.md b/_src/types/comments.md new file mode 100644 index 00000000000..5b22efde67e --- /dev/null +++ b/_src/types/comments.md @@ -0,0 +1,115 @@ +--- +title: Comment Types +slug: /types/comments +--- + +Flow supports a comment-based syntax, which makes it possible to use Flow +without having to compile your files. + +```js flow-check +/*:: +type MyAlias = { + foo: number, + bar: boolean, + baz: string, +}; +*/ + +function method(value /*: MyAlias */) /*: boolean */ { + return value.bar; +} + +method({foo: 1, bar: true, baz: ["oops"]}); +``` + +These comments allow Flow to work in plain JavaScript files without any +additional work. + +## Comment types syntax {#toc-comment-types-syntax} + +There are two primary pieces of the syntax: type includes and type annotations. + +### Type include comments {#toc-comment-type-include} + +If you want to have Flow treat a comment as if it were normal syntax, you can +do so by adding a double colon `::` to the start of the comment: + +```js flow-check +/*:: +type MyAlias = { + foo: number, + bar: boolean, + baz: string, +}; +*/ + +class MyClass { + /*:: prop: string; */ +} +``` + +This includes the code into the syntax that Flow sees: + +```js flow-check +type MyAlias = { + foo: number, + bar: boolean, + baz: string, +}; + +class MyClass { + prop: string; +} +``` + +But JavaScript ignores these comments, so your code is valid JavaScript syntax: + +```js flow-check +class MyClass { + +} +``` + +This syntax is also available in a `flow-include` form: + +```js flow-check +/*flow-include +type MyAlias = { + foo: number, + bar: boolean, + baz: string, +}; +*/ + +class MyClass { + /*flow-include prop: string; */ +} +``` + +### Type annotation comments {#toc-comment-type-annotation} + +Instead of typing out a full include every time, you can also use the type +annotation shorthand with a single colon `:` at the start of the comment. + +```js flow-check +function method(param /*: string */) /*: number */ { + return 1; +} +``` + +This would be the same as including a type annotation inside an include comment. + +```js flow-check +function method(param /*:: : string */) /*:: : number */ { + return 1; +} +``` + +> **Note:** If you want to use optional function parameters you'll need to use +> the include comment form. + +--- + +> **Special thanks to**: [Jarno Rantanen](https://github.com/jareware) for +> building [flotate](https://github.com/jareware/flotate) and supporting us +> merging his syntax upstream into Flow. diff --git a/_src/types/conditional.md b/_src/types/conditional.md new file mode 100644 index 00000000000..7aacb6a7122 --- /dev/null +++ b/_src/types/conditional.md @@ -0,0 +1,147 @@ +--- +title: Conditional Types +slug: /types/conditional +--- + +Flow's conditional type allows you to conditionally choose between two different output types by inspecting an input type. It is useful to extract parts of a type, or to describe a complex overload. + +## Basic Usage {#toc-basic-usage} + +It has a syntax that is similar to conditional expressions: `CheckType extends ExtendsType ? TrueType : FalseType`. + +If `CheckType` is a subtype of `ExtendsType`, the conditional type will be evaluated to `TrueType`. Otherwise, it will be evaluated to `FalseType`. + +The following example illustrates both cases. + +```js flow-check +class Animal {} +class Dog extends Animal {} + +type TypeofAnimal = Dog extends Animal ? 'animal' : 'unknown'; // evaluates to 'animal' +type TypeofString = string extends Animal ? 'animal' : 'unknown'; // evaluates to 'unknown' +``` + +## Generic Conditional Types {#toc-generic-conditional-types} + +This might not look very useful, since you already know what type it will evaluate to. However, combining with generics, you can perform complex computations over types. For example, you can write down a type-level `typeof` operator: + +```js flow-check +type TypeOf = + T extends null ? 'null' : + T extends void ? 'undefined' : + T extends string ? 'string' : + T extends number ? 'number' : + T extends boolean ? 'boolean' : + T extends (...$ReadOnlyArray)=>mixed ? 'function' : 'object' + +type T1 = TypeOf; // evaluates to 'null' +type T2 = TypeOf; // evaluates to 'undefined' +type T3 = TypeOf; // evaluates to 'string' +type T4 = TypeOf; // evaluates to 'number' +type T5 = TypeOf; // evaluates to 'boolean' +type T6 = TypeOf<(string)=>boolean>; // evaluates to 'function' +type T7 = TypeOf<{foo: string}>; // evaluates to 'object' +``` + +## Function return types dependent on input types {#toc-dependent-function-return} + +Conditional types also allow you to intuitively describe the conditions for choosing different function overloads: + +```js flow-check +declare function wrap(value: T): T extends string ? { type: 'string', value: string } + : T extends number ? { type: 'number', value: number } + : { type: 'unsupported' } + +const v1 = wrap(3); // has type { type: 'number', value: number } +const v2 = wrap('4'); // has type { type: 'string', value: string } +const v3 = wrap({}); // has type { type: 'unsupported' } +``` + +The above example can also be written with function overload: + +```js flow-check +declare function wrap(value: string): { type: 'string', value: string } +declare function wrap(value: number): { type: 'number', value: number } +declare function wrap(value: mixed): { type: 'unsupported' } + +const v1 = wrap(3); // has type { type: 'number', value: number } +const v2 = wrap('4'); // has type { type: 'string', value: string } +const v3 = wrap({}); // has type { type: 'unsupported' } +``` + +## Inferring Within Conditional Types {#toc-infer-type} + +You can use the power of conditional types to extract parts of a type using `infer` types. For example, the builtin `ReturnType` is powered by conditional types: + +```js flow-check +type ReturnType = T extends (...args: $ReadOnlyArray) => infer Return ? Return : empty; + +type N = ReturnType<(string) => number>; // evaluates to `number` +type S = ReturnType<(number) => string>; // evaluates to `string` +``` + +We used the infer type here to introduce a new generic type variable named `Return`, which can be used in the type branch of the conditional type. Infer types can only appear on the right hand side of the `extends` clause in conditional types. Flow will perform a subtyping check between the check type and the extends type to automatically figure out its type based on the input type `T`. + +In the example of `type N = ReturnType<(string) => number>`, Flow checks if `(string) => number` is a subtype of `(...args: $ReadOnlyArray) => infer Return`, and during this process `Return` is constrained to `number`. + +When doing extractions like the above example, you usually want the conditional type to always choose the true branch where the type is successfully extracted. For example, silently choosing the false branch is not great: + +```js flow-check +type ExtractReturnTypeNoValidation = + T extends (...args: $ReadOnlyArray) => infer Return ? Return : any; + +(1: ExtractReturnTypeNoValidation); // no error :( +``` + +Instead, you might want Flow to error when the input is not a function type. This can be accomplished by adding constraints to the type parameter: + +```js flow-check +type ReturnType) => mixed> = + T extends (...args: $ReadOnlyArray) => infer Return ? Return : any; + +(1: ReturnType<(string) => number>); +(1: ReturnType); +``` + +## Distributive Conditional Types {#toc-distributive-conditional-type} + +When a generic conditional type is given a union type as a type argument, the conditional _distributes_ over the union's members. For example, the `TypeOf` example above can distribute over a union: + +```js flow-check +type TypeOf = + T extends null ? 'null' : + T extends void ? 'undefined' : + T extends string ? 'string' : 'other'; + +type StringOrNull = TypeOf; // evaluates to 'string' | 'null' +``` + +This works by first breaking up the union type, and then passing each type to the conditional type to be evaluated separately. In the example above, this looks something like: + +``` +TypeOf +--> (break up the union) --> TypeOf | TypeOf +--> (evaluate each conditional type separately) --> 'string' | 'null' +``` + +If you want to avoid this behavior, you can wrap the check type and extends type with unary tuple type: + +```js flow-check +type NonDistributiveTypeOf = + [T] extends [null] ? 'null' : + [T] extends [void] ? 'undefined' : + [T] extends [string] ? 'string' : 'other'; + +type Other = NonDistributiveTypeOf; // evaluates to 'other' +``` + +This trick works because Flow will only enable the distributive behavior of conditional type if the check type is a generic type. The example above does not choose any true branch of the conditional type, because `[string | null]` is not a subtype of `[null]`, `[void]`, or `[string]`, since tuples are [invariantly](../../lang/variance/#toc-invariance) typed. + +## Adoption {#toc-adoption} + +To use conditional types, you need to upgrade your infrastructure so that it supports the syntax: + +- `flow` and `flow-parser`: 0.208.0. Between v0.208 to v0.211.1, you need to explicitly enable it in your .flowconfig, under the `[options]` heading, add `conditional_type=true`. +- `prettier`: 3 +- `babel` with `babel-plugin-syntax-hermes-parser`. See [our Babel guide](../../tools/babel/) for setup instructions. +- `eslint` with `hermes-eslint`. See [our ESLint guide](../../tools/eslint/) for setup instructions. diff --git a/_src/types/empty.md b/_src/types/empty.md new file mode 100644 index 00000000000..b4609361f68 --- /dev/null +++ b/_src/types/empty.md @@ -0,0 +1,58 @@ +--- +title: Empty +slug: /types/empty +--- + +The `empty` type has no values. It is the [subtype of all other types](../../lang/type-hierarchy) (i.e. the [bottom type](https://en.wikipedia.org/wiki/Bottom_type)). +In this way it is the opposite of [`mixed`](../mixed), which is the supertype of all types. + +It is not common to annotate your code using `empty`. However, there are a couple of situations that it might be useful: + +If you have a function that always throws, you can annotate the return as `empty`, as the function never returns: + +```js flow-check +function throwIt(msg: string): empty { + throw new Error(msg); +} +``` + +You can use a cast to `empty` to assert that you have refined away all members of a union: + +```js flow-check +function f(x: 'a' | 'b'): number { + switch (x) { + case 'a': + return 1; + case 'b': + return 2; + default: + return (x: empty); + } +} +``` + +If you had not checked for all members of the union (for example, changed `x` to be of type `'a' | 'b' | 'c'`), +then `x` would no longer be `empty` in the `default`, and Flow would error. + +> Note: If you want exhaustively checked enums by defualt, without having to cast to `empty`, +> you could enable and use [Flow Enums](../../enums) in your project. + +Since `empty` is the subtype of all types, all operations are permitted on something that has the `empty` type. +However since no values can be `empty`, this is "safe", unlike with [`any`](../any). + +```js flow-check +const str = "hello"; + +if (typeof str === "string") { + (str: string); // Yes it's a string +} else { + // Works! Since we will never enter this branch + (str: empty); + const n: number = str + 1; +} +``` + +We put "safe" in quotes above, as due type safety holes in your code or bugs within Flow itself, +it is possible to get values which are `empty` typed. + +You can use the [coverage](../../cli/coverage/) command to identify code typed as `empty`. diff --git a/_src/types/functions.md b/_src/types/functions.md new file mode 100644 index 00000000000..e54db72b4ba --- /dev/null +++ b/_src/types/functions.md @@ -0,0 +1,393 @@ +--- +title: Functions +slug: /types/functions +--- + +Functions have two places where types are applied: parameters (input) and the return value (output). + +```js flow-check +function concat(a: string, b: string): string { + return a + b; +} + +concat("foo", "bar"); // Works! +concat(true, false); // Error! +``` + +Using inference, return types are often optional: + +```js flow-check +function concat(a: string, b: string) { + return a + b; +} + +const s: string = concat("foo", "bar"); // Works! +``` + +If defined where we can get the type from the context of the expression, type annotations can be optional: + +```js flow-check +[1, 2, 3].map(x => x * x); // From the context, we know parameter `x` has type `number` +``` + +## Syntax of functions + +There are three forms of functions that each have their own slightly different syntax. + +### Function Declarations + +```js flow-check +function func(str: string, bool?: boolean, ...nums: Array): void { + // ... +} +``` + +### Arrow Functions + +```js flow-check +let func = (str: string, bool?: boolean, ...nums: Array): void => { + // ... +}; +``` + +### Function Types + +```js flow-check +type T = (str: string, bool?: boolean, ...nums: Array) => void; +``` + +You may also optionally leave out the parameter names. + +```js flow-check +type T = (string, boolean | void, Array) => void; +``` + +You might use these functions types for something like a callback. + +```js flow-check +function func(callback: (error: Error | null, value: string | null) => void) { + // ... +} +``` + +### Type arguments + +Functions can have type arguments: + +```js flow-check +function f(x: T): Array { + return [x]; +} + +const g = (x: T): Array => [x]; + +type H = (T) => Array; +``` + +## Function Parameters + +Function parameters can have types by adding a colon `:` followed by the type +after the name of the parameter. + +```js flow-check +function func(param1: string, param2: boolean) { + // ... +} +``` + +### Optional Parameters + +You can also have optional parameters by adding a question mark `?` after the +name of the parameter and before the colon `:`. + +```js flow-check +function func(optionalValue?: string) { + // ... +} +``` + +Optional parameters will accept missing, `undefined`, or matching types. But +they will not accept `null`. + +```js flow-check +function func(optionalValue?: string) { + // ... +} + +func(); // Works. +func(undefined); // Works. +func("string"); // Works. + +func(null); // Error! +``` + +### Rest Parameters + +JavaScript also supports having rest parameters or parameters that collect an +array of arguments at the end of a list of parameters. These have an ellipsis +`...` before them. + +You can also add type annotations for rest parameters using the same syntax but +with an `Array`. + +```js flow-check +function func(...args: Array) { + // ... +} +``` + +You can pass as many arguments as you want into a rest parameter. + +```js flow-check +function func(...args: Array) { + // ... +} + +func(); // Works. +func(1); // Works. +func(1, 2); // Works. +func(1, 2, 3); // Works. +``` + +> Note: If you add a type annotation to a rest parameter, it must always +> explicitly be an `Array` of `$ReadOnlyArray` type. + +### `this` parameter + +Every function in JavaScript can be called with a special context named `this`. +You can call a function with any context that you want. Flow allows you to annotate +the type for this context by adding a special parameter at the start of the function's parameter list: + +```js flow-check +function func(this: { x: T }) : T { + return this.x; +} + +const num: number = func.call({x : 42}); +const str: string = func.call({x : 42}); // Error! +``` + +This parameter has no effect at runtime, and is erased along with types when Flow is transformed into JavaScript. +When present, `this` parameters must always appear at the very beginning of the function's parameter list, and must +have an annotation. Additionally, [arrow functions](./#toc-arrow-functions) may not have a `this` parameter annotation, as +these functions bind their `this` parameter at the definition site, rather than the call site. + +If an explicit `this` parameter is not provided, Flow will attempt to infer one based on usage. If `this` is not mentioned +in the body of the function, Flow will infer `mixed` for its `this` parameter. + + +## Function Returns + +Function returns can also add a type using a colon `:` followed by the type +after the list of parameters. + +```js flow-check +function func(): number { + return 1; +} +``` + +Return types ensure that every branch of your function returns the same type. +This prevents you from accidentally not returning a value under certain +conditions. + +```js flow-check +function func(): boolean { + if (Math.random() > 0.5) { + return true; + } +} +``` + +Async functions implicitly return a promise, so the return type must always be a `Promise`. + +```js flow-check +async function func(): Promise { + return 123; +} +``` + +### Predicate Functions + +Sometimes you will want to move the condition from an `if` statement into a function: + +```js flow-check +function concat(a: ?string, b: ?string): string { + if (a != null && b != null) { + return a + b; + } + return ''; +} +``` + +However, Flow will error in the code below: + +```js flow-check +function truthy(a: ?string, b: ?string): boolean { + return a != null && b != null; +} + +function concat(a: ?string, b: ?string): string { + if (truthy(a, b)) { + return a + b; // Error! + } + return ''; +} +``` + +This is because the refinement information of `a` and `b` as `string` instead of `?string` is lost when returning from the `truthy` function. + +You can fix this by making `truthy` a *predicate function*, by using the `%checks` annotation like so: + +```js flow-check +function truthy(a: ?string, b: ?string): boolean %checks { + return a != null && b != null; +} + +function concat(a: ?string, b: ?string): string { + if (truthy(a, b)) { + return a + b; + } + return ''; +} +``` + +#### Limitations of predicate functions + +The body of these predicate functions need to be expressions (i.e. local variable declarations are not supported). +But it's possible to call other predicate functions inside a predicate function. +For example: + +```js flow-check +function isString(y: mixed): %checks { + return typeof y === "string"; +} + +function isNumber(y: mixed): %checks { + return typeof y === "number"; +} + +function isNumberOrString(y: mixed): %checks { + return isString(y) || isNumber(y); +} + +function foo(x: string | number | Array): string | number { + if (isNumberOrString(x)) { + return x + x; + } else { + return x.length; // no error, because Flow infers that x can only be an array + } +} + +foo('a'); +foo(5); +foo([]); +``` + +Another limitation is on the range of predicates that can be encoded. The refinements +that are supported in a predicate function must refer directly to the value that +is passed in as an argument to the respective call. + +For example, consider the *inlined* refinement + +```js flow-check +declare var obj: { n?: number }; + +if (obj.n != null) { + const n: number = obj.n; +} +``` +Here, Flow will let you refine `obj.n` from `?number` to `number`. Note that the +refinement here is on the property `n` of `obj`, rather than `obj` itself. + +If you tried to create a *predicate* function to encode the same condition, +then the following refinement would fail + +```js flow-check +function bar(a: {n?: number, ...}): %checks { + return a.n != null; +} + +declare var obj: {n?: number}; + +if (bar(obj)) { + const n: number = obj.n; // Error +} +``` +This is because the only refinements supported through `bar` would be on `obj` itself. + + +## Callable Objects + +Callable objects can be typed, for example: + +```js flow-check +type CallableObj = { + (number, number): number, + bar: string, + ... +}; + +function add(x: number, y: number) { + return x + y; +} + +add.bar = "hello world"; + +(add: CallableObj); +``` + +In general, functions can have properties assigned to them if they are function declarations, or +simple variable declarations of the form `const f = () => ...`. The properties must be assigned in +the format `f.prop = ;`, in the same statement list as the function definition (i.e. not conditionally). + +Note that the object representing the static properties assigned to the function is inexact. + +## Overloaded functions +You can use intersection types to define [overloaded function types](../intersections/#toc-intersection-of-function-types): + +```js flow-check +declare const fn: + & ((x: 'string') => string) + & ((x: 'number') => number) + +const s: string = fn('string'); +const n: number = fn('number'); +``` + +## Any function + +If you want to specify you want to allow any function, and do not care what it is, you can use this pattern: + +```js flow-check +function useCallback) => mixed>( + callback: T, + inputs: ?$ReadOnlyArray, +): T { + return callback; +} +useCallback((x: string) => true); // OK +useCallback((x: number) => [1]); // OK +``` + +You could use type arguments to capture the arguments and return type, to do more complicated transformations: + +```js flow-check +function func, TReturn>( + callback: (...TArgs) => TReturn, +): (boolean, ...TArgs) => Array { + return (b, ...args): Array => { + if (b) { + return [callback(...args)]; + } else { + return []; + } + }; +} + +const f: (boolean, string, number) => Array = + func((x: string, y: number) => x.slice(y)); // OK +``` + +The type `Function` is just an alias for [`any`](../any), and is unsafe. +You can ban its use in your code with the [unclear-type lint](../../linting/rule-reference/#toc-unclear-type). diff --git a/_src/types/generators.md b/_src/types/generators.md new file mode 100644 index 00000000000..b3f042c834f --- /dev/null +++ b/_src/types/generators.md @@ -0,0 +1,5 @@ +--- +layout: guide +--- + + diff --git a/_src/types/generics.md b/_src/types/generics.md new file mode 100644 index 00000000000..8716ab1aed4 --- /dev/null +++ b/_src/types/generics.md @@ -0,0 +1,437 @@ +--- +title: Generics +slug: /types/generics +--- + +Generics (sometimes referred to as polymorphic types) are a way of abstracting +a type away. + +Imagine writing the following `identity` function which returns whatever value +was passed. + +```js +function identity(value) { + return value; +} +``` + +We would have a lot of trouble trying to write specific types for this function +since it could be anything. + +```js flow-check +function identity(value: string): string { + return value; +} +``` + +Instead we can create a generic (or polymorphic type) in our function and use +it in place of other types. + +```js flow-check +function identity(value: T): T { + return value; +} +``` + +Generics can be used within functions, function types, classes, type aliases, +and interfaces. + +> **Warning:** Flow does not infer generic types. If you want something to have a +generic type, **annotate it**. Otherwise, Flow may infer a type that is less +polymorphic than you expect. + +### Syntax of generics {#toc-syntax-of-generics} + +There are a number of different places where generic types appear in syntax. + +### Functions with generics {#toc-functions-with-generics} + +Functions can create generics by adding the type parameter list `` before +the function parameter list. + +You can use generics in the same places you'd add any other type in a function +(parameter or return types). + +```js flow-check +function method(param: T): T { + return param; +} + +const f = function(param: T): T { + return param; +} +``` + +### Function types with generics {#toc-function-types-with-generics} + +Function types can create generics in the same way as normal functions, by +adding the type parameter list `` before the function type parameter list. + +You can use generics in the same places you'd add any other type in a function +type (parameter or return types). + +```js +(param: T) => T +``` + +Which then gets used as its own type. + +```js flow-check +function method(func: (param: T) => T) { + // ... +} +``` + +### Classes with generics {#toc-classes-with-generics} + +Classes can create generics by placing the type parameter list before the body +of the class. + +```js flow-check +class Item { + // ... +} +``` + +You can use generics in the same places you'd add any other type in a class +(property types and method parameter/return types). + +```js flow-check +class Item { + prop: T; + + constructor(param: T) { + this.prop = param; + } + + method(): T { + return this.prop; + } +} +``` + +### Type aliases with generics {#toc-type-aliases-with-generics} + +```js flow-check +type Item = { + foo: T, + bar: T, +}; +``` + +### Interfaces with generics {#toc-interfaces-with-generics} + +```js flow-check +interface Item { + foo: T, + bar: T, +} +``` + +### Supplying Type Arguments to Callables {#toc-supplying-type-arguments-to-callables} + +You can give callable entities type arguments for their generics directly in the call: + +```js flow-check +function doSomething(param: T): T { + // ... + return param; +} + +doSomething(3); +``` + +You can also give generic classes type arguments directly in the `new` expression: +```js flow-check +class GenericClass {} +const c = new GenericClass(); +``` + +If you only want to specify some of the type arguments, you can use `_` to let flow infer a type for you: + +```js flow-check +class GenericClass{} +const c = new GenericClass(); +``` + +> **Warning:** For performance purposes, we always recommend you annotate with +concrete arguments when you can. `_` is not unsafe, but it is slower than explicitly +specifying the type arguments. + +## Behavior of generics {#toc-behavior-of-generics} + +### Generics act like variables {#toc-generics-act-like-variables} + +Generic types work a lot like variables or function parameters except that they +are used for types. You can use them whenever they are in scope. + +```js flow-check +function constant(value: T): () => T { + return function(): T { + return value; + }; +} +``` + +### Create as many generics as you need {#toc-create-as-many-generics-as-you-need} + +You can have as many of these generics as you need in the type parameter list, +naming them whatever you want: + +```js flow-check +function identity(one: One, two: Two, three: Three) { + // ... +} +``` + +### Generics track values around {#toc-generics-track-values-around} + +When using a generic type for a value, Flow will track the value and make sure +that you aren't replacing it with something else. + +```js flow-check +function identity(value: T): T { + return "foo"; // Error! +} + +function identity(value: T): T { + value = "foo"; // Error! + return value; // Error! +} +``` + +Flow tracks the specific type of the value you pass through a generic, letting +you use it later. + +```js flow-check +function identity(value: T): T { + return value; +} + +let one: 1 = identity(1); +let two: 2 = identity(2); +let three: 3 = identity(42); // Error +``` + +### Adding types to generics {#toc-adding-types-to-generics} + +Similar to `mixed`, generics have an "unknown" type. You're not allowed to use +a generic as if it were a specific type. + +```js flow-check +function logFoo(obj: T): T { + console.log(obj.foo); // Error! + return obj; +} +``` + +You could refine the type, but the generic will still allow any type to be +passed in. + +```js flow-check +function logFoo(obj: T): T { + if (obj && obj.foo) { + console.log(obj.foo); // Works. + } + return obj; +} + +logFoo({ foo: 'foo', bar: 'bar' }); // Works. +logFoo({ bar: 'bar' }); // Works. :( +``` + +Instead, you could add a type to your generic like you would with a function +parameter. + +```js flow-check +function logFoo(obj: T): T { + console.log(obj.foo); // Works! + return obj; +} + +logFoo({ foo: 'foo', bar: 'bar' }); // Works! +logFoo({ bar: 'bar' }); // Error! +``` + +This way you can keep the behavior of generics while only allowing certain +types to be used. + +```js flow-check +function identity(value: T): T { + return value; +} + +let one: 1 = identity(1); +let two: 2 = identity(2); +// $ExpectError +let three: "three" = identity("three"); +``` + +### Generic types act as bounds {#toc-generic-types-act-as-bounds} + +```js flow-check +function identity(val: T): T { + return val; +} + +let foo: 'foo' = 'foo'; // Works! +let bar: 'bar' = identity('bar'); // Works! +``` + +In Flow, most of the time when you pass one type into another you lose the +original type. So that when you pass a specific type into a less specific one +Flow "forgets" it was once something more specific. + +```js flow-check +function identity(val: string): string { + return val; +} + +let foo: 'foo' = 'foo'; // Works! +// $ExpectError +let bar: 'bar' = identity('bar'); // Error! +``` + +Generics allow you to hold onto the more specific type while adding a +constraint. In this way types on generics act as "bounds". + +```js flow-check +function identity(val: T): T { + return val; +} + +let foo: 'foo' = 'foo'; // Works! +let bar: 'bar' = identity('bar'); // Works! +``` + +Note that when you have a value with a bound generic type, you can't use it as +if it were a more specific type. + +```js flow-check +function identity(val: T): T { + let str: string = val; // Works! + let bar: 'bar' = val; // Error! + return val; +} + +identity('bar'); +``` + +### Parameterized generics {#toc-parameterized-generics} + +Generics sometimes allow you to pass types in like arguments to a function. +These are known as parameterized generics (or parametric polymorphism). + +For example, a type alias with a generic is parameterized. When you go to use +it you will have to provide a type argument. + +```js flow-check +type Item = { + prop: T, +} + +let item: Item = { + prop: "value" +}; +``` + +You can think of this like passing arguments to a function, only the return +value is a type that you can use. + +Classes (when being used as a type), type aliases, and interfaces all require +that you pass type arguments. Functions and function types do not have +parameterized generics. + +***Classes*** + +```js flow-check +class Item { + prop: T; + constructor(param: T) { + this.prop = param; + } +} + +let item1: Item = new Item(42); // Works! +let item2: Item = new Item(42); // Error! +``` + +***Type Aliases*** + +```js flow-check +type Item = { + prop: T, +}; + +let item1: Item = { prop: 42 }; // Works! +let item2: Item = { prop: 42 }; // Error! +``` + +***Interfaces*** + +```js flow-check +interface HasProp { + prop: T, +} + +class Item { + prop: string; +} + +(Item.prototype: HasProp); // Works! +(Item.prototype: HasProp); // Error! +``` + +### Adding defaults to parameterized generics {#toc-adding-defaults-to-parameterized-generics} + +You can also provide defaults for parameterized generics just like parameters +of a function. + +```js flow-check +type Item = { + prop: T, +}; + +let foo: Item<> = { prop: 1 }; +let bar: Item<2> = { prop: 2 }; +``` + +You must always include the brackets `<>` when using the type (just like +parentheses for a function call). + +### Variance Sigils {#toc-variance-sigils} + +You can also specify the subtyping behavior of a generic via variance sigils. +By default, generics behave invariantly, but you may add a `+` to their +declaration to make them behave covariantly, or a `-` to their declaration to +make them behave contravariantly. See [our docs on variance](../../lang/variance) +for a more information on variance in Flow. + +Variance sigils allow you to be more specific about how you intend to +use your generics, giving Flow the power to do more precise type checking. +For example, you may want this relationship to hold: + +```js flow-check +type GenericBox<+T> = T; + +var x: GenericBox = 3; +(x: GenericBox); +``` + +The example above could not be accomplished without the `+` variance sigil: + +```js flow-check +type GenericBoxError = T; + +var x: GenericBoxError = 3; +(x: GenericBoxError); // number | string is not compatible with number. +``` + +Note that if you annotate your generic with variance sigils then Flow will +check to make sure those types only appear in positions that make sense for +that variance sigil. For example, you cannot declare a generic type parameter +to behave covariantly and use it in a contravariant position: + +```js flow-check +type NotActuallyCovariant<+T> = (T) => void; +``` diff --git a/_src/types/index.md b/_src/types/index.md new file mode 100644 index 00000000000..da8e2a8ad61 --- /dev/null +++ b/_src/types/index.md @@ -0,0 +1,42 @@ +--- +title: Type Annotations +slug: /types +description: "Learn how to add Flow type annotations to your code: Primitives, Objects, Functions, Classes, and more." +--- + +Adding type annotations is an important part of your interaction with Flow. + +Flow has a powerful ability to infer the types of your programs. The majority +For example, you don't have to produce annotations for common patterns like `Array.map`: + +```js flow-check +["foo", "bar"].map(s => ( // s is inferred to have type string + s.length +)); +``` + +Still, there are places where you'll want to add types. + +Imagine the following `concat` function for concatenating two strings together. + +```js flow-check +function concat(a, b) { + return a + b; +} +``` + +You need to add annotations on parameters of `concat`, so that Flow can type +check its body. Now you'll get a warning from Flow if you are calling this +function with unexpected types. + +```js flow-check +function concat(a: string, b: string) { + return a + b; +} + +concat("A", "B"); // Works! +concat(1, 2); // Error! +``` + +This guide will teach you the syntax and semantics of all the different types +you can have in Flow. diff --git a/_src/types/indexed-access.md b/_src/types/indexed-access.md new file mode 100644 index 00000000000..65602ee2deb --- /dev/null +++ b/_src/types/indexed-access.md @@ -0,0 +1,146 @@ +--- +title: Indexed Access Types +slug: /types/indexed-access +--- + +Flow’s Indexed Access Types allow you to get the type of a property from an [object](../objects), [array](../arrays), or [tuple](../tuples) type. + +## Usage {#toc-indexed-access-type-usage} + +Access an object type's property: +```js flow-check +type Cat = { + name: string, + age: number, + hungry: boolean, +}; + +type Hungry = Cat['hungry']; // type Hungry = boolean +const isHungry: Hungry = true; // OK - `Hungry` is an alias for `boolean` + +// The index can be a type, not just a literal: +type AgeProp = 'age'; +type Age = Cat[AgeProp]; // type Age = number +const catAge: Age = 6; // OK - `Age` is an alias for `number` +``` + +Access an array type's element, by getting the type at the array's indices (which are `number`s): +```js flow-check +type CatNames = Array; + +type CatName = CatNames[number]; // type CatName = string +const myCatsName: CatName = 'whiskers'; // OK - `CatName` is an alias for `string` +``` + +Access a tuple type's elements: +```js flow-check +type Pair = [string, number]; + +const name: Pair[0] = 'whiskers'; // OK - `Pair[0]` is an alias for `string` +const age: Pair[1] = 6; // OK - `Pair[1]` is an alias for `number` +const wrong: Pair[2] = true; // Error - `Pair` only has two elements +``` + +The index can be a union, including the result of calling [`$Keys<...>`](../utilities/#toc-keys): +```js flow-check +type Cat = { + name: string, + age: number, + hungry: boolean, +}; + +type Values = Cat[$Keys]; // type Values = string | number | boolean +``` + +The index can also be a generic: +```js flow-check +function getProp>(o: O, k: K): O[K] { + return o[k]; +} + +const x: number = getProp({a: 42}, 'a'); // OK +const y: string = getProp({a: 42}, 'a'); // Error - `number` is not a `string` +getProp({a: 42}, 'b'); // Error - `b` does not exist in object type +``` + +You can nest these accesses: +```js flow-check +type Cat = { + name: string, + age: number, + hungry: boolean, + personality: { + friendly: boolean, + hungerLevel: number, + } +}; + +type Friendly = Cat['personality']['friendly']; // type Friendly = boolean +const isFriendly: Friendly = true; // Pet the cat +``` + + +## Optional Indexed Access Types {#toc-optional-indexed-access-types} + +Optional Indexed Access Types work like optional chaining. They allow you to access properties from nullable object types. +If before you did: + +```js +type T = $ElementType<$NonMaybeType, 'prop'> | void; +``` + +You can now do: + +```js +type T = Obj?.['prop']; +``` + +Like optional chaining, the resulting types of Optional Indexed Access Types include `void`. +If you have a long chain of nested optional accesses, you can wrap the entire thing with a `$NonMaybeType<...>` if you don’t want `void` in your resulting type. + +Example: + +```js flow-check +type TasksContent = ?{ + tasks?: Array<{ + items?: { + metadata?: { + title: string, + completed: boolean, + }, + }, + }>, +}; + +type TaskData = TasksContent?.['tasks']?.[number]?.['items']?.['metadata']; +``` + +There is one small difference between optional chaining and Optional Indexed Access Types. +If the object type you access is not nullable, the resulting type in optional chaining will not include `void`. +With Optional Indexed Access Types, for implementation reasons, the resulting type will always include `void`. +However, if your object type is not nullable then you don’t need to use an Optional Indexed Access Type, but should just use a regular Indexed Access Type. + + +## Adoption {#toc-adoption} + +To use Indexed Access Types, you need to upgrade your infrastructure so that it supports the syntax: + +- `flow` and `flow-parser`: 0.155 +- `prettier`: 2.3.2 +- `babel`: 7.14 + +Indexed Access Types are a replacement for the [`$PropertyType`](../utilities#toc-propertytype) and [`$ElementType`](../utilities#toc-elementtype) utility types. +If you're familiar with those utility types already, here is a quick conversion guide: +- `$PropertyType` → `Obj['prop']` +- `$ElementType` → `Obj[T]` +- `$ElementType<$PropertyType, T>` → `Obj['prop'][T]` + +We have created an ESLint rule that warns on `$ElementType` and `$PropertyType` usage and recommends Indexed Access Types instead. +It includes an auto-fixer that can handle most cases. You can simply enable this rule on your codebase and autofix all existing issues. + +Install [`eslint-plugin-fb-flow`](https://www.npmjs.com/package/eslint-plugin-fb-flow), and add `fb-flow` to your ESLint plugin list. +Then enable the rule in your ESLint config: + +``` +'fb-flow/use-indexed-access-type': 1, +``` diff --git a/_src/types/interfaces.md b/_src/types/interfaces.md new file mode 100644 index 00000000000..45f7dba1305 --- /dev/null +++ b/_src/types/interfaces.md @@ -0,0 +1,316 @@ +--- +title: Interfaces +slug: /types/interfaces +--- + +[Classes](../classes) in Flow are [nominally typed](../../lang/nominal-structural). This means that when you have two separate +classes you cannot use one in place of the other even when they have the same +exact properties and methods: + +```js flow-check +class Foo { + serialize(): string { return '[Foo]'; } +} + +class Bar { + serialize(): string { return '[Bar]'; } +} + +const foo: Foo = new Bar(); // Error! +``` + +Instead, you can use `interface` in order to declare the structure of the class +that you are expecting. + +```js flow-check +interface Serializable { + serialize(): string; +} + +class Foo { + serialize(): string { return '[Foo]'; } +} + +class Bar { + serialize(): string { return '[Bar]'; } +} + +const foo: Serializable = new Foo(); // Works! +const bar: Serializable = new Bar(); // Works! +``` + +You can also declare an anonymous interface: + +```js flow-check +class Foo { + a: number; +} + +function getNumber(o: interface {a: number}): number { + return o.a; +} + +getNumber(new Foo()); // Works! +``` + +You can also use `implements` to tell Flow that you want the class to match an +interface. This prevents you from making incompatible changes when editing the +class. + +```js flow-check +interface Serializable { + serialize(): string; +} + +class Foo implements Serializable { + serialize(): string { return '[Foo]'; } // Works! +} + +class Bar implements Serializable { + serialize(): number { return 42; } // Error! +} +``` + +You can also use `implements` with multiple interfaces. + +```js +class Foo implements Bar, Baz { + // ... +} +``` + +Interfaces can describe both instances and objects, unlike object types which can only describe objects: + +```js flow-check +class Foo { + a: number; +} +const foo = new Foo(); +const o: {a: number} = {a: 1}; + +interface MyInterface { + a: number; +} + +function acceptsMyInterface(x: MyInterface) { /* ... */ } +acceptsMyInterface(o); // Works! +acceptsMyInterface(foo); // Works! + +function acceptsObj(x: {a: number, ...}) { /* ... */ } +acceptsObj(o); // Works! +acceptsObj(foo); // Error! +``` + +Unlike objects, interfaces cannot be [exact](../objects/#exact-and-inexact-object-types), as they can always have other, unknown properties. + +## Interface Syntax {#toc-interface-syntax} + +Interfaces are created using the keyword `interface` followed by its name and +a block which contains the body of the type definition. + +```js flow-check +interface MyInterface { + // ... +} +``` + +The syntax of the block matches the syntax of object types. + +### Interface Methods {#toc-interface-methods} + +You can add methods to interfaces following the same syntax as class methods. Any [`this` parameters](../functions/#this-parameter) you +provide are also subject to the same restrictions as class methods. + +```js flow-check +interface MyInterface { + method(value: string): number; +} +``` + +Also like [class methods](../classes#toc-class-methods), interface methods must also remain bound to the interface on which they were defined. + +You can define [overloaded methods](../intersections/#declaring-overloaded-functions) by declaring the same method name multiple times with different type signatures: + +```js flow-check +interface MyInterface { + method(value: string): string; + method(value: boolean): boolean; +} + +function func(a: MyInterface) { + const x: string = a.method('hi'); // Works! + const y: boolean = a.method(true); // Works! + + const z: boolean = a.method('hi'); // Error! +} +``` + +### Interface Properties {#toc-interface-properties} + +You can add properties to interfaces following the same syntax as class +properties: + +```js flow-check +interface MyInterface { + property: string; +} +``` + +Interface properties can be optional as well: + +```js flow-check +interface MyInterface { + property?: string; +} +``` + +### Interfaces as maps {#toc-interfaces-as-maps} + +You can create [indexer properties](../objects#toc-objects-as-maps) the same +way as with objects: + +```js flow-check +interface MyInterface { + [key: string]: number; +} +``` + +### Interface Generics {#toc-interface-generics} + +Interfaces can also have their own [generics](../generics/): + +```js flow-check +interface MyInterface { + property: A; + method(val: B): C; +} +``` + +Interface generics are [parameterized](../generics#toc-parameterized-generics). +When you use an interface you need to pass parameters for each of its generics: + +```js flow-check +interface MyInterface { + foo: A; + bar: B; + baz: C; +} + +const val: MyInterface = { + foo: 1, + bar: true, + baz: 'three', +}; +``` + +## Interface property variance (read-only and write-only) {#toc-interface-property-variance-read-only-and-write-only} + +Interface properties are [invariant](../../lang/variance/) by default. But you +can add modifiers to make them covariant (read-only) or contravariant +(write-only). + +```js flow-check +interface MyInterface { + +covariant: number; // read-only + -contravariant: number; // write-only +} +``` + +#### Covariant (read-only) properties on interfaces {#toc-covariant-read-only-properties-on-interfaces} + +You can make a property covariant by adding a plus symbol `+` in front of the +property name: + +```js flow-check +interface MyInterface { + +readOnly: number | string; +} +``` + +This allows you to pass a more specific type in place of that property: + +```js flow-check +interface Invariant { + property: number | string; +} +interface Covariant { + +readOnly: number | string; +} + +const x: {property: number} = {property: 42}; +const y: {readOnly: number} = {readOnly: 42}; + +const value1: Invariant = x; // Error! +const value2: Covariant = y; // Works +``` + +Because of how covariance works, covariant properties also become read-only +when used. Which can be useful over normal properties. + +```js flow-check +interface Invariant { + property: number | string; +} +interface Covariant { + +readOnly: number | string; +} + +function func1(value: Invariant) { + value.property; // Works! + value.property = 3.14; // Works! +} + +function func2(value: Covariant) { + value.readOnly; // Works! + value.readOnly = 3.14; // Error! +} +``` + +#### Contravariant (write-only) properties on interfaces {#toc-contravariant-write-only-properties-on-interfaces} + +You can make a property contravariant by adding a minus symbol - in front of +the property name. + +```js flow-check +interface InterfaceName { + -writeOnly: number; +} +``` + +This allows you to pass a less specific type in place of that property. + +```js flow-check +interface Invariant { + property: number; +} +interface Contravariant { + -writeOnly: number; +} + +const numberOrString = Math.random() > 0.5 ? 42 : 'forty-two'; + +const value1: Invariant = {property: numberOrString}; // Error! +const value2: Contravariant = {writeOnly: numberOrString}; // Works! +``` + +Because of how contravariance works, contravariant properties also become +write-only when used. Which can be useful over normal properties. + +```js flow-check +interface Invariant { + property: number; +} +interface Contravariant { + -writeOnly: number; +} + +function func1(value: Invariant) { + value.property; // Works! + value.property = 3.14; // Works! +} + +function func2(value: Contravariant) { + value.writeOnly; // Error! + value.writeOnly = 3.14; // Works! +} +``` diff --git a/_src/types/intersections.md b/_src/types/intersections.md new file mode 100644 index 00000000000..0cdd9451ee9 --- /dev/null +++ b/_src/types/intersections.md @@ -0,0 +1,247 @@ +--- +title: Intersections +slug: /types/intersections +--- + +Sometimes it is useful to create a type which is ***all of*** a set of other +types. For example, you might want to write a function which accepts a value that +implements two different [interfaces](../interfaces): + +```js flow-check +interface Serializable { + serialize(): string; +} + +interface HasLength { + length: number; +} + +function func(value: Serializable & HasLength) { + // ... +} + +func({ + length: 3, + serialize() { + return '3'; + }, +}); // Works + +func({length: 3}); // Error! Doesn't implement both interfaces +``` + + +## Intersection type syntax {#toc-intersection-type-syntax} + +Intersection types are any number of types which are joined by an ampersand `&`. + +```js +Type1 & Type2 & ... & TypeN +``` + +You may also add a leading ampersand which is useful when breaking intersection +types onto multiple lines. + +```js +type Foo = + & Type1 + & Type2 + & ... + & TypeN +``` + +Each of the members of a intersection type can be any type, even another +intersection type. + +```js +type Foo = Type1 & Type2; +type Bar = Type3 & Type4; + +type Baz = Foo & Bar; +``` + +## Intersection types require all in, but one out + +Intersection types are the opposite of union types. When calling a function +that accepts an intersection type, we must pass in ***all of those types***. But +inside of our function we only have to treat it as ***any one of those +types***. + +```js flow-check +type A = {a: number, ...}; +type B = {b: boolean, ...}; +type C = {c: string, ...}; + +function func(value: A & B & C) { + const a: A = value; + const b: B = value; + const c: C = value; +} +``` + +Even as we treat our value as just one of the types, we do not get an error +because it satisfies all of them. + +## Intersection of function types {#toc-intersection-of-function-types} + +A common use of intersection types is to express functions that return +different results based on the input we pass in. Suppose for example +that we want to write the type of a function that: +* returns a string, when we pass in the value `"string"`, +* returns a number, when we pass in the value `"number"`, and +* returns any possible type (`mixed`), when we pass in any other string. + +The type of this function will be +```js flow-check +type Fn = + & ((x: "string") => string) + & ((x: "number") => number) + & ((x: string) => mixed); +``` +Each line in the above definition is called an *overload*, and we say that functions +of type `Fn` are *overloaded*. + +Note the use of parentheses around the arrow types. These are necessary to override +the precedence of the "arrow" constructor over the intersection. + +### Calling an overloaded function + +Using the above definition we can declare a function `fn` that has the following behavior: +```js flow-check +declare const fn: + & ((x: "string") => string) + & ((x: "number") => number) + & ((x: string) => mixed); + +const s: string = fn("string"); // Works +const n: number = fn("number"); // Works +const b: boolean = fn("boolean"); // Error! +``` +Flow achieves this behavior by matching the type of the argument to the *first* +overload with a compatible parameter type. Notice for example that the argument +`"string"` matches both the first and the last overload. Flow will +just pick the first one. If no overload matches, Flow will raise an error at the +call site. + +### Declaring overloaded functions + +An equivalent way to declare the same function `fn` would be by using consecutive +"declare function" statements +```js flow-check +declare function fn(x: "string"): string; +declare function fn(x: "number"): number; +declare function fn(x: string): mixed; +``` + +A limitation in Flow is that it can't *check* the body of a function against +an intersection type. In other words, if we provided the following implementation +for `fn` right after the above declarations +```js flow-check +function fn(x: mixed) { + if (x === "string") { return ""; } + else if (x === "number") { return 0; } + else { return null; } +} +``` +Flow silently accepts it (and uses `Fn` as the inferred type), but does not check +the implementation against this signature. This makes this kind of declaration +a better suited candidate for [library definitions](../../libdefs/), where implementations are omitted. + + +## Intersections of object types {#toc-intersections-of-object-types} + +When you create an intersection of [inexact object types](../objects/#exact-and-inexact-object-types), +you are saying that your object satisfies each member of the intersection. + +For example, when you create an intersection of two inexact objects with different sets +of properties, it will result in an object with all of the properties. + +```js flow-check +type One = {foo: number, ...}; +type Two = {bar: boolean, ...}; + +type Both = One & Two; + +const value: Both = { + foo: 1, + bar: true +}; +``` + +When you have properties that overlap by having the same name, Flow follows the same +strategy as with overloaded functions: it will return the type of the first property +that matches this name. + +For example, if you merge two inexact objects with a property named `prop`, first with a +type of `number` and second with a type of `boolean`, accessing `prop` will return +`number`. + +```js flow-check +type One = {prop: number, ...}; +type Two = {prop: boolean, ...}; + +declare const both: One & Two; + +const prop1: number = both.prop; // Works +const prop2: boolean = both.prop; // Error! +``` + +To combine exact object types, you should use [object type spread](../objects/#object-type-spread) instead: + +```js flow-check +type One = {foo: number}; +type Two = {bar: boolean}; + +type Both = { + ...One, + ...Two, +}; + +const value: Both = { + foo: 1, + bar: true +}; +``` + +**Note:** When it comes to objects, the order-specific way in which intersection +types are implemented in Flow, may often seem counter-intuitive from a set theoretic +point of view. In sets, the operands of intersection can change order arbitrarily +(commutative property). For this reason, it is a better practice to define this +kind of operation over object types using object type spread where the ordering +semantics are better specified. + + +## Impossible intersection types {#toc-impossible-intersection-types} + +Using intersection types, it is possible to create types which are impossible +to create at runtime. Intersection types will allow you to combine any set of +types, even ones that conflict with one another. + +For example, you can create an intersection of a number and a string. + +```js flow-check +type NumberAndString = number & string; + +function func(value: NumberAndString) { /* ... */ } + +func(3.14); // Error! +func('hi'); // Error! +``` + +But you can't possibly create a value which is both a *number and a string*, +but you can create a type for it. There's no practical use for creating types +like this, but it's a side effect of how intersection types work. + +An accidental way to create an impossible type is to create an intersection of +[exact object types](../objects/#exact-and-inexact-object-types). For example: + +```js flow-check +function func(obj: {a: number} & {b: string}) { /* ... */ } + +func({a: 1}); // Error! +func({b: 'hi'}); // Error! +func({a: 1, b: 'hi'}); // Error! +``` + +It's not possible for an object to have exactly the property `a` and no other +properties, and simultaneously exactly the property `b` and no other properties. diff --git a/_src/types/literals.md b/_src/types/literals.md new file mode 100644 index 00000000000..b60f1cde0ec --- /dev/null +++ b/_src/types/literals.md @@ -0,0 +1,45 @@ +--- +title: Literal Types +slug: /types/literals +--- + +Flow has [primitive types](../primitives) for +literal values, but can also use literal values as types. + +For example, instead of accepting `number` type, we could accept only the +literal value `2`. + +```js flow-check +function acceptsTwo(value: 2) { /* ... */ } + +acceptsTwo(2); // Works! + +acceptsTwo(3); // Error! +acceptsTwo("2"); // Error! +``` + +You can use primitive values for these types: + +- Booleans: like `true` or `false` +- Numbers: like `42` or `3.14` +- Strings: like `"foo"` or `"bar"` +- BigInts: like `42n` + +Using these with [union types](../unions) is powerful: + +```js flow-check +function getColor(name: "success" | "warning" | "danger") { + switch (name) { + case "success" : return "green"; + case "warning" : return "yellow"; + case "danger" : return "red"; + } +} + +getColor("success"); // Works! +getColor("danger"); // Works! + +getColor("error"); // Error! +``` + +Consider using [Flow Enums](../../enums) instead of unions of literal types, if they fit your use-case. diff --git a/_src/types/mapped-types.md b/_src/types/mapped-types.md new file mode 100644 index 00000000000..7c297ead544 --- /dev/null +++ b/_src/types/mapped-types.md @@ -0,0 +1,139 @@ +--- +title: Mapped Types +slug: /types/mapped-types +--- + +Flow's mapped types allow you to transform object types. They are useful for modeling complex runtime operations over objects. + +## Basic Usage {#toc-basic-usage} + +Mapped Types have syntax similar to indexed object types but use the `in` keyword: +```js flow-check +type O = {foo: number, bar: string}; + +type Methodify = () => T; + +type MappedType = {[key in keyof O]: Methodify}; +``` + +In this example, `MappedType` has all of the keys from `O` with all of the value types transformed by +`Methoditfy`. The `key` variable is substituted for each key in `O` when creating the property, so +this type evaluates to: +``` +{ + foo: Methodify, + bar: Methodify, +} += { + foo: () => number, + bar: () => string, +} +``` + +## Mapped Type Sources {#toc-mapped-type-sources} + +We call the type that comes after the `in` keyword the *source* of the mapped type. The source of +a mapped type must be a subtype of `string | number | symbol`: +```js flow-check +type MappedType = {[key in boolean]: number}; // ERROR! +``` + +Typically, you'll want to create a mapped type based on another object type. In this case, you +should write your mapped type using an inline `keyof`: +```js flow-check +type GetterOf = () => T; +type Obj = {foo: number, bar: string}; +type MappedObj = {[key in keyof Obj]: GetterOf}; +``` + +> NOTE: `keyof` only works inline in mapped types for now. Full support for `keyof` is not yet available. + +But you do not need to use an object to generate a mapped type. You can also use a union of string +literal types to represent the keys of an object type: +```js flow-check +type Union = 'foo' | 'bar' | 'baz'; +type MappedType = {[key in Union]: number}; +// = {foo: number, bar: number, baz: number}; +``` + +Importantly, when using string literals the union is collapsed into a *single object type*: +```js flow-check +type MappedTypeFromKeys = {[key in Keys]: number}; +type MappedFooAndBar = MappedTypeFromKeys<'foo' | 'bar'>; +// = {foo: number, bar: number}, not {foo: number} | {bar: number} +``` + +If you use a type like `number` or `string` in the source of your mapped type then Flow will create +an indexer: +```js flow-check +type MappedTypeFromKeys = {[key in Keys]: number}; +type MappedFooAndBarWithIndexer = MappedTypeFromKeys<'foo' | 'bar' | string>; +// = {foo: number, bar: number, [string]: number} +``` + +## Distributive Mapped Types {#toc-distributive-mapped-types} + +When the mapped type uses an inline `keyof` or a type parameter bound by a `$Keys` +Flow will distribute the mapped type over unions of object types. + +For example: +```js flow-check +// This mapped type uses keyof inline +type MakeAllValuesNumber = {[key in keyof O]: number}; +type ObjWithFoo = {foo: string}; +type ObjWithBar = {bar: string}; + +type DistributedMappedType = MakeAllValuesNumber< + | ObjWithFoo + | ObjWithBar +>; // = {foo: number} | {bar: number}; + +// This mapped type uses a type parameter bound by $Keys +type Pick> = {[key in Keys]: O[key]}; +type O1 = {foo: number, bar: number}; +type O2 = {bar: string, baz: number}; +type PickBar = Pick; // = {bar: number} | {bar: string}; +``` + +Distributive mapped types will also distribute over `null` and `undefined`: +```js flow-check +type Distributive = {[key in keyof O]: O[key]}; +type Obj = {foo: number}; +type MaybeMapped = Distributive;// = ?{foo: number} +(null: MaybeMapped); // OK +(undefined: MaybeMapped); // OK +({foo: 3}: MaybeMapped); // OK +``` + +## Property Modifiers {#toc-property-modifiers} + +You can also add `+` or `-` variance modifiers and the optionality modifier `?` in mapped types: +```js flow-check +type O = {foo: number, bar: string} +type ReadOnlyPartialO = {+[key in keyof O]?: O[key]}; // = {+foo?: number, +bar?: string}; +``` + +When no variance nor optionality modifiers are provided and the mapped type is distributive, +the variance and optionality are determined by the input object: +```js flow-check +type O = {+foo: number, bar?: string}; +type Mapped = {[key in keyof O]: O[key]}; // = {+foo: number, bar?: string} +``` + +Otherwise, the properties are read-write and required when no property modifiers are present: +```js flow-check +type Union = 'foo' | 'bar' | 'baz'; +type MappedType = {[key in Union]: number}; +// = {foo: number, bar: number, baz: number}; +``` + +> NOTE: Flow does not yet support removing variance or optionality modifiers. + +## Adoption {#toc-adoption} + +To use mapped types, you need to upgrade your infrastructure so that it supports the syntax: + +- `flow` and `flow-parser`: 0.210.0. Between v0.210.0 to v0.211.1, you need to explicitly enable it in your .flowconfig, under the `[options]` heading, add `mapped_type=true`. +- `prettier`: 3 +- `babel` with `babel-plugin-syntax-hermes-parser`. See [our Babel guide](../../tools/babel/) for setup instructions. +- `eslint` with `hermes-eslint`. See [our ESLint guide](../../tools/eslint/) for setup instructions. diff --git a/_src/types/maybe.md b/_src/types/maybe.md new file mode 100644 index 00000000000..8bee2966b1a --- /dev/null +++ b/_src/types/maybe.md @@ -0,0 +1,79 @@ +--- +title: Maybe Types +slug: /types/maybe +--- + +You can prefix a type with `?` to make it a [union](../unions) with `null` and `void`: +`?T` is equivalent to the union `T | null | void`. + +For example, `?number` is equivalent to `number | null | void`, and allows for numbers, `null`, and `undefined` as values. It's "maybe" a number. + +```js flow-check +function acceptsMaybeNumber(value: ?number) { + // ... +} + +acceptsMaybeNumber(42); // Works! +acceptsMaybeNumber(); // Works! (implicitly undefined) +acceptsMaybeNumber(undefined); // Works! +acceptsMaybeNumber(null); // Works! +acceptsMaybeNumber("42"); // Error! +``` + +In the case of objects, a **missing** property is not the same thing as an explicitly `undefined` property. + +```js flow-check +function acceptsMaybeProp({value}: {value: ?number}) { + // ... +} + +acceptsMaybeProp({value: undefined}); // Works! +acceptsMaybeProp({}); // Error! +``` + +If you want to allow missing properties, use [optional property](../objects/#toc-optional-object-type-properties) syntax, where the `?` is placed _before_ the colon. +It is also possible to combine both syntaxes for an optional maybe type, for example `{value?: ?number}`. + + +## Refining maybe types {#toc-refining-maybe-types} + +Imagine we have the type `?number`, if we want to use that value as a `number` +we'll need to first check that it is not `null` or `undefined`. + +```js flow-check +function acceptsMaybeNumber(value: ?number): number { + if (value !== null && value !== undefined) { + return value * 2; + } + return 0; +} +``` + +You can simplify the two checks against `null` and `undefined` using a single +`!= null` check which will do both. + +```js flow-check +function acceptsMaybeNumber(value: ?number): number { + if (value != null) { + return value * 2; + } + return 0; +} +``` +Most double equal checks are discouraged in JavaScript, but the above pattern is safe (it checks for exactly `null` and `undefined`). + +You could also flip it around, and check to make sure that the value has a type +of `number` before using it. + +```js flow-check +function acceptsMaybeNumber(value: ?number): number { + if (typeof value === 'number') { + return value * 2; + } + return 0; +} +``` + +However, type refinements can be lost. For instance, calling a function after refining the type of an object's property will invalidate this refinement. +Consult the [refinement invalidations](../../lang/refinements/#toc-refinement-invalidations) docs for more details, to understand why Flow works this way, +and how you can avoid this common pitfall. diff --git a/_src/types/mixed.md b/_src/types/mixed.md new file mode 100644 index 00000000000..27ab6cfac49 --- /dev/null +++ b/_src/types/mixed.md @@ -0,0 +1,114 @@ +--- +title: Mixed +slug: /types/mixed +--- + +`mixed` is the [supertype of all types](../../lang/type-hierarchy). All values are `mixed`. +However, this means that very few operations are permitted on it, without refining to some more specific type. +That's because the valid operations on `mixed` must be valid for all types. + +In general, programs have several different categories of types: + +**A single type:** + +Here the input value can only be a `number`. + +```js flow-check +function square(n: number) { + return n * n; +} +``` + +**A group of different possible types:** + +Here the input value could be either a `string` or a `number`. + +```js flow-check +function stringifyBasicValue(value: string | number) { + return '' + value; +} +``` + +**A type based on another type:** + +Here the return type will be the same as the type of whatever value is passed +into the function. + +```js flow-check +function identity(value: T): T { + return value; +} +``` + +These three are the most common categories of types. They will make up the +majority of the types you'll be writing. + +However, there is also a fourth category. + +**An arbitrary type that could be anything:** + +Here the passed in value is an unknown type, it could be any type and the +function would still work. + +```js flow-check +function getTypeOf(value: mixed): string { + return typeof value; +} +``` + +These unknown types are less common, but are still useful at times. + +You should represent these values with `mixed`. + +## Anything goes in, Nothing comes out {#toc-anything-goes-in-nothing-comes-out} + +`mixed` will accept any type of value. Strings, numbers, objects, functions– +anything will work. + +```js flow-check +function stringify(value: mixed) { + // ... +} + +stringify("foo"); +stringify(3.14); +stringify(null); +stringify({}); +``` + +When you try to use a value of a `mixed` type you must first figure out what +the actual type is or you'll end up with an error. + +```js flow-check +function stringify(value: mixed) { + return "" + value; // Error! +} + +stringify("foo"); +``` + +Instead you must ensure the value is a certain type by [refining](../../lang/refinements/) it. + +```js flow-check +function stringify(value: mixed) { + if (typeof value === 'string') { + return "" + value; // Works! + } else { + return ""; + } +} + +stringify("foo"); +``` + +Because of the `typeof value === 'string'` check, Flow knows the `value` can +only be a `string` inside of the `if` statement. This is known as a +[refinement](../../lang/refinements/). + +## Versus `any` +`mixed` is safe, while [`any`](../any) is not. Both accept all values, but `any` also unsafely allows all operations. + +## Versus `empty` +`mixed` is the opposite of [`empty`](../empty): +- Everything is a `mixed`, but few operations are permitted on it without first refining to a specific type. It is the supertype of all types. +- Nothing is `empty`, but any operation is permitted on it. It is the subtype of all types. diff --git a/_src/types/modules.md b/_src/types/modules.md new file mode 100644 index 00000000000..2f52b8bc7c5 --- /dev/null +++ b/_src/types/modules.md @@ -0,0 +1,49 @@ +--- +title: Module Types +slug: /types/modules +--- + +## Importing and exporting types {#toc-importing-and-exporting-types} + +It is often useful to share types between modules (files). +In Flow, you can export type aliases, interfaces, and classes from one file and import them in another. + +**`exports.js`** + +```js flow-check +export default class MyClass {}; +export type MyObject = { /* ... */ }; +export interface MyInterface { /* ... */ }; +``` + +**`imports.js`** + +```js +import type MyClass, {MyObject, MyInterface} from './exports'; +``` + +> ***Don't forget to add `@flow` at the top of your file, otherwise Flow won't report errors***. + +## Importing and exporting values as types {#toc-importing-and-exporting-values} + +Flow also supports importing the type of values exported by other modules using [`typeof`](../typeof/). + +**`exports.js`** + +```js flow-check +const myNumber = 42; +export default myNumber; +export class MyClass { /* ... */ }; +``` + +**`imports.js`** + +```js +import typeof MyNumber from './exports'; +import typeof {MyClass} from './exports'; + +const x: MyNumber = 1; // Works: like using `number` +``` + +Just like other type imports, this code can be stripped away by a compiler so +that it does not add a runtime dependency on the other module. diff --git a/_src/types/objects.md b/_src/types/objects.md new file mode 100644 index 00000000000..3737dc77339 --- /dev/null +++ b/_src/types/objects.md @@ -0,0 +1,514 @@ +--- +title: Objects +slug: /types/objects +--- + +Objects can be used in many different ways in JavaScript. +There are a number of ways to type them in order to support the different use cases. + +- Exact object types: An object which has exactly a set of properties, e.g. `{a: number}`. We recommend using exact object types rather than inexact ones, as they are more precise and interact better with other type system features, like [spreads](#object-type-spread). +- [Inexact object types](#exact-and-inexact-object-types): An object with at least a set of properties, but potentially other, unknown ones, e.g. `{a: number, ...}`. +- [Objects with indexers](#toc-objects-as-maps): An object that can used as a map from a key type to a value type, e.g. `{[string]: boolean}`. +- [Interfaces](../interfaces): Interfaces are separate from object types. Only they can describe instances of classes. E.g. `interfaces {a: number}`. + +Object types try to match the syntax for objects in JavaScript as much as +possible. Using curly braces `{}` and name-value pairs using a colon `:` split +by commas `,`. + +```js flow-check +const obj1: {foo: boolean} = {foo: true}; +const obj2: { + foo: number, + bar: boolean, + baz: string, +} = { + foo: 1, + bar: true, + baz: 'three', +}; +``` + +## Optional object type properties {#toc-optional-object-type-properties} + +In JavaScript, accessing a property that doesn't exist evaluates to +`undefined`. This is a common source of errors in JavaScript programs, so Flow +turns these into type errors. + +```js flow-check +const obj = {foo: "bar"}; +obj.bar; // Error! +``` + +If you have an object that sometimes does not have a property you can make it +an _optional property_ by adding a question mark `?` after the property name in +the object type. + +```js flow-check +const obj: {foo?: boolean} = {}; + +obj.foo = true; // Works! +obj.foo = 'hello'; // Error! +``` + +In addition to their set value type, these optional properties can either be +`void` or omitted altogether. However, they cannot be `null`. + +```js flow-check +function acceptsObject(value: {foo?: string}) { /* ... */ } + +acceptsObject({foo: "bar"}); // Works! +acceptsObject({foo: undefined}); // Works! +acceptsObject({}); // Works! + +acceptsObject({foo: null}); // Error! +``` + + +To make all properties in an object type optional, you can use the [`Partial`](../utilities/#toc-partial) utility type: + +```js flow-check +type Obj = { + foo: string, +}; + +type PartialObj = Partial; // Same as `{foo?: string}` +``` + +To make all properties in an object type required, you can use the [`Required`](../utilities/#toc-required) utility type: + +```js flow-check +type PartialObj = { + foo?: string, +}; + +type Obj = Required; // Same as `{foo: string}` +``` + +## Read-only object properties + +You can add [variance](../../lang/variance) annotations to your object properties. + +To mark a property as read-only, you can use the `+`: + +```js flow-check +type Obj = { + +foo: string, +}; + +function func(o: Obj) { + const x: string = o.foo; // Works! + o.foo = 'hi'; // Error! +} +``` + +To make all object properties in an object type read-only, you can use the [`$ReadOnly`](../utilities/#toc-readonly) utility type: + +```js flow-check +type Obj = { + foo: string, +}; + +type ReadOnlyObj = $ReadOnly; // Same as `{+foo: string}` +``` + +You can also mark your properties as write-only with `-`: + +```js flow-check +type Obj = { + -foo: string, +}; + +function func(o: Obj) { + const x: string = o.foo; // Error! + o.foo = 'hi'; // Works! +} +``` + + +## Object methods {#toc-object-methods} + +Method syntax in objects has the same runtime behavior as a function property. These two objects are equivalent at runtime: + +```js flow-check +const a = { + foo: function () { return 3; } +}; +const b = { + foo() { return 3; } +} +``` + +However, despite their equivalent runtime behavior, Flow checks them slightly differently. In particular, object +properties written with method syntax are [read-only](../../lang/variance); Flow will not allow you to write a new value to them. + +```js flow-check +const b = { + foo() { return 3; } +} +b.foo = () => { return 2; } // Error! +``` + +Additionally, object methods do not allow the use of `this` in their bodies, in order to guarantee simple behavior +for their `this` parameters. Prefer to reference the object by name instead of using `this`. + +```js flow-check +const a = { + x: 3, + foo() { return this.x; } // Error! +} +const b = { + x: 3, + foo(): number { return b.x; } // Works! +} +``` + +## Object type inference {#toc-object-type-inference} + +> NOTE: The behavior of empty object literals has changed in version 0.191 - +> see this [blog post](https://medium.com/flow-type/improved-handling-of-the-empty-object-in-flow-ead91887e40c) for more details. + +When you create an object value, its type is set at the creation point. You cannot add new properties, +or modify the type of existing properties. + +```js flow-check +const obj = { + foo: 1, + bar: true, +}; + +const n: number = obj.foo; // Works! +const b: boolean = obj.bar; // Works! + +obj.UNKNOWN; // Error - prop `UNKNOWN` is not in the object value +obj.foo = true; // Error - `foo` is of type `number` +``` + +If you supply a type annotation, you can add properties missing in the object value as optional properties: + +```js flow-check +const obj: { + foo?: number, + bar: boolean, +} = { + // `foo` is not set here + bar: true, +}; + +const n: number | void = obj.foo; // Works! +const b: boolean = obj.bar; // Works! + +if (b) { + obj.foo = 3; // Works! +} +``` + +You can also give a wider type for a particular property: + +```js flow-check +const obj: { + foo: number | string, +} = { + foo: 1, +}; + +const foo: number | string = obj.foo; // Works! +obj.foo = "hi"; // Works! +``` + +The empty object can be interpreted as a [dictionary](#toc-objects-as-maps), if you supply the appropriate type annotation: + +```js flow-check +const dict: {[string]: number} = {}; // Works! +``` + +You may need to add type annotations to an object literal, if it references itself recursively (beyond simple cases): + +```js flow-check +const Utils = { // Error + foo() { + return Utils.bar(); + }, + bar() { + return 1; + } +}; + +const FixedUtils = { // Works! + foo(): number { + return FixedUtils.bar(); + }, + bar(): number { + return 1; + } +}; +``` + +## Exact and inexact object types + +Exact object types are the default (as of version 0.202), unless you have set [`exact_by_default=false`](../../config/options#toc-exact-by-default) in your `.flowconfig`. + +Inexact objects (denoted with the `...`) allow extra properties to be passed in: + +```js flow-check +function method(obj: {foo: string, ...}) { /* ... */ } + +method({foo: "test", bar: 42}); // Works! +``` + +> **Note:** This is because of ["width subtyping"](../../lang/width-subtyping). + +But exact object types do not: + +```js flow-check +function method(obj: {foo: string}) { /* ... */ } + +method({foo: "test", bar: 42}); // Error! +``` + +If you have set `exact_by_default=false`, you can denote exact object types by adding a pair of "vertical bars" or "pipes" to the inside of the curly braces: + +```js flow-check +const x: {|foo: string|} = {foo: "Hello", bar: "World!"}; // Error! +``` + +[Intersections](../intersections) of exact object types may not work as you expect. If you need to combine exact object types, use [object type spread](#object-type-spread): + +```js flow-check +type FooT = {foo: string}; +type BarT = {bar: number}; + +type FooBarT = {...FooT, ...BarT}; +const fooBar: FooBarT = {foo: '123', bar: 12}; // Works! + +type FooBarFailT = FooT & BarT; +const fooBarFail: FooBarFailT = {foo: '123', bar: 12}; // Error! +``` + +## Object type spread + +Just like you can spread object values, you can also spread object types: + +```js flow-check +type ObjA = { + a: number, + b: string, +}; + +const x: ObjA = {a: 1, b: "hi"}; + +type ObjB = { + ...ObjA, + c: boolean, +}; + +const y: ObjB = {a: 1, b: 'hi', c: true}; // Works! +const z: ObjB = {...x, c: true}; // Works! +``` + +You have to be careful spreading inexact objects. +The resulting object must also be inexact, +and the spread inexact object may have unknown properties that can override previous properties in unknown ways: + +```js flow-check +type Inexact = { + a: number, + b: string, + ... +}; + +type ObjB = { // Error! + c: boolean, + ...Inexact, +}; + +const x: ObjB = {a:1, b: 'hi', c: true}; +``` + +The same issue exists with objects with [indexers](#toc-objects-as-maps), as they also have unknown keys: + +```js flow-check +type Dict = { + [string]: number, +}; + +type ObjB = { // Error! + c: boolean, + ...Dict, +}; + +const x: ObjB = {a: 1, b: 2, c: true}; +``` + +Spreading an object value at runtime only spreads "own" properties, that is properties that are on the object directly, not the prototype chain. +Object type spread works in the same way. +Because of this, you can't spread [interfaces](../interfaces), as they don't track whether a property is "own" or not: + +```js flow-check +interface Iface { + a: number; + b: string; +} + +type ObjB = { // Error! + c: boolean, + ...Iface, +}; + +const x: ObjB = {a: 1, b: 'hi', c: true}; +``` + +## Objects as maps {#toc-objects-as-maps} + +JavaScript includes a [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) class, +but it is still very common to use objects as maps as well. In this use case, an object +will likely have properties added to it and retrieved throughout its lifecycle. +Furthermore, the property keys may not even be known statically, so writing out +a type annotation would not be possible. + +For objects like these, Flow provides a special kind of property, called an +"indexer property." An indexer property allows reads and writes using any key +that matches the indexer key type. + +```js flow-check +const o: {[string]: number} = {}; +o["foo"] = 0; +o["bar"] = 1; +const foo: number = o["foo"]; +``` + +An indexer can be optionally named, for documentation purposes: + +```js flow-check +const obj: {[user_id: number]: string} = {}; +obj[1] = "Julia"; +obj[2] = "Camille"; +obj[3] = "Justin"; +obj[4] = "Mark"; +``` + +When an object type has an indexer property, property accesses are assumed to +have the annotated type, even if the object does not have a value in that slot +at runtime. It is the programmer's responsibility to ensure the access is safe, +as with arrays. + +```js flow-check +const obj: {[number]: string} = {}; +obj[42].length; // No type error, but will throw at runtime +``` + +Indexer properties can be mixed with named properties: + +```js flow-check +const obj: { + size: number, + [id: number]: string +} = { + size: 0 +}; + +function add(id: number, name: string) { + obj[id] = name; + obj.size++; +} +``` + +You can mark an indexer property as read-only (or write-only) using [variance](../../lang/variance) annotations: + +```js flow-check +type ReadOnly = {+[string]: number}; +type WriteOnly = {-[string]: number}; +``` + +## Keys, values, and indexed access + +You can extract the keys of an object type using the [`$Keys`](../utilities/#toc-keys) utility type: + +```js flow-check +type Obj = { + foo: string, + bar: number, +}; + +type T = $Keys; + +function acceptsKeys(k: T) { /* ... */ } + +acceptsKeys('foo'); // Works! +acceptsKeys('bar'); // Works! +acceptsKeys('hi'); // Error! +``` + +You can extract the values of an object type using the [`$Values`](../utilities/#toc-values) utility type: + +```js flow-check +type Obj = { + foo: string, + bar: number, +}; + +type T = $Values; + +function acceptsValues(v: T) { /* ... */ } + +acceptsValues(2); // Works! +acceptsValues('hi'); // Works! +acceptsValues(true); // Error! +``` + +You can get the type of an object type's specific property using [indexed access types](../indexed-access): + +```js flow-check +type Obj = { + foo: string, + bar: number, +}; + +type T = Obj['foo']; + +function acceptsStr(x: T) { /* ... */ } + +acceptsStr('hi'); // Works! +acceptsStr(1); // Error! +``` + +## Arbitrary objects + +If you want to accept an arbitrary object safely, there are a couple of patterns you could use. + +An empty inexact object `{...}` accepts any object: + +```js flow-check +function func(obj: {...}) { + // ... +} + +func({}); // Works! +func({a: 1, b: "foo"}); // Works! +``` + +It's often the right choice for a [generic](../generics) bounded to accept any object: + +```js flow-check +function func(obj: T) { + // ... +} + +func({}); // Works! +func({a: 1, b: "foo"}); // Works! +``` + +However, you can't access any properties off of `{...}`. + +You can also try using a [dictionary](#toc-objects-as-maps) with [`mixed`](../mixed) values, which would allow you to access any property (with a resulting `mixed` type): + +```js flow-check +function func(obj: {+[string]: mixed}) { + const x: mixed = obj['bar']; +} + +func({}); // Works! +func({a: 1, b: "foo"}); // Works! +``` + +The type `Object` is just an alias for [`any`](../any), and is unsafe. +You can ban its use in your code with the [unclear-type lint](../../linting/rule-reference/#toc-unclear-type). diff --git a/_src/types/opaque-types.md b/_src/types/opaque-types.md new file mode 100644 index 00000000000..6c01800bc44 --- /dev/null +++ b/_src/types/opaque-types.md @@ -0,0 +1,159 @@ +--- +title: Opaque Type Aliases +slug: /types/opaque-types +--- + +Opaque type aliases are type aliases that do not allow access to their +underlying type outside of the file in which they are defined. + +```js flow-check +opaque type ID = string; +``` + +Opaque type aliases, like regular type aliases, may be used anywhere a type can +be used. + + +```js flow-check +opaque type ID = string; + +function identity(x: ID): ID { + return x; +} +export type {ID}; +``` + +## Opaque Type Alias Syntax {#toc-opaque-type-alias-syntax} + +Opaque type aliases are created using the words `opaque type` followed by its +name, an equals sign `=`, and a type definition. + +```js +opaque type Alias = Type; +``` + +You can optionally add a subtyping constraint to an opaque type alias by adding +a colon `:` and a type after the name. + +```js +opaque type Alias: SuperType = Type; +``` + +Any type can appear as the super type or type of an opaque type alias. + +```js flow-check +opaque type StringAlias = string; +opaque type ObjectAlias = { + property: string, + method(): number, +}; +opaque type UnionAlias = 1 | 2 | 3; +opaque type AliasAlias: ObjectAlias = ObjectAlias; +opaque type VeryOpaque: AliasAlias = ObjectAlias; +``` + +## Opaque Type Alias Type Checking {#toc-opaque-type-alias-type-checking} + +### Within the Defining File {#toc-within-the-defining-file} + +When in the same file the alias is defined, opaque type aliases behave exactly +as regular [type aliases](../aliases/) do. + +```js flow-check +opaque type NumberAlias = number; + +(0: NumberAlias); + +function add(x: NumberAlias, y: NumberAlias): NumberAlias { + return x + y; +} +function toNumberAlias(x: number): NumberAlias { return x; } +function toNumber(x: NumberAlias): number { return x; } +``` + +### Outside the Defining File {#toc-outside-the-defining-file} + +When importing an opaque type alias, it behaves like a +[nominal type](../../lang/nominal-structural/#toc-nominal-typing), hiding its +underlying type. + +**`exports.js`** + +```js +export opaque type NumberAlias = number; +``` + +**`imports.js`** + +```js +import type {NumberAlias} from './exports'; + +(0: NumberAlias) // Error: 0 is not a NumberAlias! + +function convert(x: NumberAlias): number { + return x; // Error: x is not a number! +} +``` + +### Subtyping Constraints {#toc-subtyping-constraints} + +When you add a subtyping constraint to an opaque type alias, we allow the opaque +type to be used as the super type when outside of the defining file. + +**`exports.js`** + +```js flow-check +export opaque type ID: string = string; +``` + +**`imports.js`** + +```js +import type {ID} from './exports'; + +function formatID(x: ID): string { + return "ID: " + x; // Ok! IDs are strings. +} + +function toID(x: string): ID { + return x; // Error: strings are not IDs. +} +``` + +When you create an opaque type alias with a subtyping constraint, the type in +the type position must be a subtype of the type in the super type position. + +```js flow-check +opaque type Bad: string = number; // Error: number is not a subtype of string +opaque type Good: {x: string, ...} = {x: string, y: number}; +``` + +### Generics {#toc-generics} + +Opaque type aliases can also have their own [generics](../generics/), +and they work exactly as generics do in regular [type aliases](../aliases#toc-type-alias-generics) + +```js flow-check +opaque type MyObject: {foo: A, bar: B, ...} = { + foo: A, + bar: B, + baz: C, +}; + +var val: MyObject = { + foo: 1, + bar: true, + baz: 'three', +}; +``` + +### Library Definitions {#toc-library-definitions} + +You can also declare opaque type aliases in +[libdefs](../../libdefs). There, you omit the underlying +type, but may still optionally include a super type. + +```js flow-check +declare opaque type Foo; +declare opaque type PositiveNumber: number; +``` diff --git a/_src/types/primitives.md b/_src/types/primitives.md new file mode 100644 index 00000000000..e94a09bb07d --- /dev/null +++ b/_src/types/primitives.md @@ -0,0 +1,404 @@ +--- +title: Primitive Types +slug: /types/primitives +--- + +JavaScript has a number of different primitive types +([MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#primitive_values)): + +| | Example | Flow type | +| - | ------- | --------- | +| **Booleans** | `true` or `false` | `boolean` +| **Strings** | `'foo'` | `string` +| **Numbers** | `123` | `number` +| **Null** | `null` | `null` +| **Undefined** | `undefined` | `void` +| **Symbols** *(new in ES2015)* | `Symbol('foo')` | `symbol` +| **BigInts** *(new in ES2020)* | `123n` | `bigint` + +Some primitive types appear in the language as literal values: + +```js flow-check +true; +"hello"; +3.14; +null; +undefined; +3n; +``` + +BigInts and Symbols can be created with calls to `BigInt` and `Symbol`, respectively: + +```js flow-check +BigInt("2364023476023"); +Symbol("hello"); +``` + +The Flow types of literal values are lowercase (mirroring the output of JavaScript's +[`typeof` expression](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof)): + +```js flow-check +function func(a: number, b: string, c: boolean, d: bigint) { /* ... */ } + +func(3.14, "hello", true, 3n); +``` + +Some literals can also be used as [literal types](../literals): + +```js flow-check +function acceptTwo(x: 2) { /* ... */ } + +acceptTwo(2); // Works! +acceptTwo(1); // Error! +``` + +Some primitives can also be wrapped as objects: + +> NOTE: You probably never want to use the wrapper object variants. + +```js flow-check +new Boolean(false); +new String("world"); +new Number(42); +``` + +Types for the wrapper objects are capitalized (the same as their constructor): + +```js flow-check +function func(x: Number, y: String, z: Boolean) { + // ... +} + +func(new Number(42), new String("world"), new Boolean(false)); +``` + +These wrapper objects are rarely used. + +## Booleans {#toc-booleans} + +Booleans are `true` and `false` values in JavaScript. The `boolean` type in +Flow accepts these values. + +```js flow-check +function acceptsBoolean(value: boolean) { /* ... */ } + +acceptsBoolean(true); // Works! +acceptsBoolean(false); // Works! + +acceptsBoolean("foo"); // Error! +``` + +JavaScript can also implicitly convert other types of values into booleans. + +```js +if (42) {} // 42 => true +if ("") {} // "" => false +``` + +Flow understands these coercions and will allow them as part of an +`if` statement's test or other conditional contexts. + +To explicitly convert non-booleans to a `boolean`, you can use `Boolean(x)` or `!!x`. + +```js flow-check +function acceptsBoolean(value: boolean) { /* ... */ } + +acceptsBoolean(0); // Error! + +acceptsBoolean(Boolean(0)); // Works! +acceptsBoolean(!!0); // Works! +``` + +You can [refine](../../lang/refinements/) a value to `boolean` using a `typeof` check: + +```js flow-check +function acceptsBoolean(value: boolean) { /* ... */ } + +function func(value: mixed) { + if (typeof value === 'boolean') { + acceptsBoolean(value); // Works: `value` is `boolean` + } +} +``` + +Remember that `boolean` and `Boolean` are different types. + +- A `boolean` is a literal value like `true` or `false` or the result of an + expression like `a === b`. +- A `Boolean` is a wrapper object created by the global `new Boolean(x)` + constructor. You probably don't want to use this! + +## Numbers {#toc-numbers} + +Number literals in JavaScript are floating point numbers, for example `42` or `3.14`. +JavaScript also considers `Infinity` and `NaN` to be numbers. +These are represented by the `number` type. JavaScript also has a separate [BigInt type](#toc-bigints). + +```js flow-check +function acceptsNumber(value: number) { /* ... */ } + +acceptsNumber(42); // Works! +acceptsNumber(3.14); // Works! +acceptsNumber(NaN); // Works! +acceptsNumber(Infinity); // Works! + +acceptsNumber("foo"); // Error! +acceptsNumber(123n); // Error! +``` + +You can [refine](../../lang/refinements/) a value to `number` using a `typeof` check: + +```js flow-check +function acceptsNumber(value: number) { /* ... */ } + +function func(value: mixed) { + if (typeof value === 'number') { + acceptsNumber(value); // Works: `value` is `number` + } +} +``` + +Remember that `number` and `Number` are different types. + +- A `number` is a literal value like `42` or `3.14` or the result of an + expression like `parseFloat(x)`. +- A `Number` is a wrapper object created by the global `new Number(x)` constructor. You probably don't want to use this! + +## Strings {#toc-strings} + +Strings are `"foo"` values in JavaScript. The `string` type in Flow accepts these values. + +```js flow-check +function acceptsString(value: string) { /* ... */ } + +acceptsString("foo"); // Works! +acceptsString(`template literal`); // Works! + +acceptsString(false); // Error! +``` + +JavaScript implicitly converts other types of values into strings by +concatenating them. + +```js +"foo" + 42; // "foo42" +"foo" + {}; // "foo[object Object]" +``` + +Flow will only accept strings and numbers when concatenating them to strings. + +```js flow-check +"foo" + "foo"; // Works! +"foo" + 42; // Works! +`foo ${42}`; // Works! + +"foo" + {}; // Error! +"foo" + []; // Error! +`foo ${[]}`; // Error! +``` + +You must be explicit and convert other types into strings. You can do this by +using the String function or using another method for stringifying values. + +```js flow-check +"foo" + String({}); // Works! +"foo" + [].toString(); // Works! +"" + JSON.stringify({}) // Works! +``` + +You can [refine](../../lang/refinements/) a value to `string` using a `typeof` check: + +```js flow-check +function acceptsString(value: string) { /* ... */ } + +function func(value: mixed) { + if (typeof value === 'string') { + acceptsString(value); // Works: `value` is `string` + } +} +``` + +Remember that `string` and `String` are different types. + +- A `string` is a literal value like `"foo"` or the result of an expression + like `"" + 42`. +- A `String` is a wrapper object created by the global `new String(x)` constructor. You probably don't want to use this! + +## `null` and `undefined` {#toc-null-and-void} + +JavaScript has both `null` and `undefined`. Flow treats these as separate +types: `null` and `void` (for `undefined`). + +```js flow-check +function acceptsNull(value: null) { /* ... */ } + +acceptsNull(null); // Works! +acceptsNull(undefined); // Error! + +function acceptsUndefined(value: void) { /* ... */ } + +acceptsUndefined(undefined); // Works! +acceptsUndefined(null); // Error! +``` + +You can [refine](../../lang/refinements/) a value to `null` or `void` using equality checks: + +```js flow-check +function acceptsNull(value: null) { /* ... */ } + +function func(value: mixed) { + if (value === null) { + acceptsNull(value); // Works: `value` is `null` + } +} +``` + +```js flow-check +function acceptsUndefined(value: void) { /* ... */ } + +function func(value: mixed) { + if (value === undefined) { + acceptsUndefined(value); // Works: `value` is `void` + } +} +``` + +`null` and `void` also appear in other types: + +### Maybe types {#toc-maybe-types} + +[Maybe types](../maybe) are for places where a value is optional and you can create them by +adding a question mark in front of the type such as `?string` or `?number`. + +`?T` is equivalent to `T | null | void`. + +```js flow-check +function acceptsMaybeString(value: ?string) { /* ... */ } + +acceptsMaybeString("bar"); // Works! +acceptsMaybeString(undefined); // Works! +acceptsMaybeString(null); // Works! +acceptsMaybeString(); // Works! +``` + +To refine, `value == null` checks exactly for both `null` and `undefined`. + +Read the [maybe type docs](../maybe) for more details. + +### Optional object properties {#toc-optional-object-properties} + +Object types can have optional properties where a question mark `?` comes after +the property name. + +```js +{propertyName?: string} +``` + +In addition to their set value type, these optional properties can either be +`void` or omitted altogether. However, they cannot be `null`. + +```js flow-check +function acceptsObject(value: {foo?: string}) { /* ... */ } + +acceptsObject({foo: "bar"}); // Works! +acceptsObject({foo: undefined}); // Works! +acceptsObject({}); // Works! + +acceptsObject({foo: null}); // Error! +``` + +### Optional function parameters {#toc-optional-function-parameters} + +Functions can have optional parameters where a question mark `?` comes after +the parameter name. + +```js +function func(param?: string) { /* ... */ } +``` + +In addition to their set type, these optional parameters can either be `void` +or omitted altogether. However, they cannot be `null`. + +```js flow-check +function acceptsOptionalString(value?: string) { /* ... */ } + +acceptsOptionalString("bar"); // Works! +acceptsOptionalString(undefined); // Works! +acceptsOptionalString(); // Works! + +acceptsOptionalString(null); // Error! +``` + +### Function parameters with defaults {#toc-function-parameters-with-defaults} + +Function parameters can also have defaults. This is a feature of ES2015. + +```js +function func(value: string = "default") { /* ... */ } +``` + +In addition to their set type, default parameters can also be `void` or omitted +altogether. However, they cannot be `null`. + +```js flow-check +function acceptsOptionalString(value: string = "foo") { /* ... */ } + +acceptsOptionalString("bar"); // Works! +acceptsOptionalString(undefined); // Works! +acceptsOptionalString(); // Works! + +acceptsOptionalString(null); // Error! +``` + +## Symbols {#toc-symbols} + +Symbols are created with `Symbol()` in JavaScript. Flow has basic support for symbols, using the `symbol` type. + +```js flow-check +function acceptsSymbol(value: symbol) { /* ... */ } + +acceptsSymbol(Symbol()); // Works! +acceptsSymbol(Symbol.isConcatSpreadable); // Works! + +acceptsSymbol(false); // Error! +``` + +You can [refine](../../lang/refinements/) a value to `symbol` using a `typeof` check: + +```js flow-check +function acceptsSymbol(value: symbol) { /* ... */ } + +function func(value: mixed) { + if (typeof value === 'symbol') { + acceptsSymbol(value); // Works: `value` is `symbol` + } +} +``` + + +## BigInts {#toc-bigints} + +BigInts can be used to represent integers of arbitrary precision. In other words, they can store integers which are too large to store as a `number`. + +A `bigint` literal is just a `number` literal along with an `n` suffix. + +Note that `bigint` and `number` are incompatible types. That is, a `bigint` cannot be used where a `number` is expected, and vice versa. + +```js flow-check +function acceptsBigInt(value: bigint) { /* ... */ } + +acceptsBigInt(42n); // Works! +acceptsBigInt(42); // Error! +``` + +You can [refine](../../lang/refinements/) a value to `bigint` using a `typeof` check: + +```js flow-check +function acceptsBigInt(value: bigint) { /* ... */ } + +function func(value: mixed) { + if (typeof value === 'bigint') { + acceptsBigInt(value); // Works: `value` is `bigint` + } +} +``` diff --git a/_src/types/tuples.md b/_src/types/tuples.md new file mode 100644 index 00000000000..deafedd44d5 --- /dev/null +++ b/_src/types/tuples.md @@ -0,0 +1,259 @@ +--- +title: Tuples +slug: /types/tuples +--- + +Tuple types represent a **fixed length** list, where the elements can have **different types**. +This is in contrast to [array types](../arrays), which have an unknown length and all elements have the same type. + +## Tuple Basics + +JavaScript array literal values can be used to create both tuple and array types: + +```js flow-check +const arr: Array = [1, 2, 3]; // As an array type +const tup: [number, number, number] = [1, 2, 3]; // As a tuple type +``` + +In Flow you can create tuple types using the `[type1, type2, type3]` syntax: + +```js flow-check +const tuple1: [number] = [1]; +const tuple2: [number, boolean] = [1, true]; +const tuple3: [number, boolean, string] = [1, true, "three"]; +``` + +When you get a value from a tuple at a specific index, it will return the +type at that index: + +```js flow-check +const tuple: [number, boolean, string] = [1, true, "three"]; + +const num: number = tuple[0]; // Works! +const bool: boolean = tuple[1]; // Works! +const str: string = tuple[2]; // Works! +``` + +Trying to access an index that does not exist results in an index-out-of-bounds error: + +```js flow-check +const tuple: [number, boolean, string] = [1, true, "three"]; + +const none = tuple[3]; // Error! +``` + +If Flow doesn't know which index you are trying to access it will return all +possible types: + +```js flow-check +const tuple: [number, boolean, string] = [1, true, "three"]; + +function getItem(n: number) { + const val: number | boolean | string = tuple[n]; + // ... +} +``` + +When setting a new value inside a tuple, the new value must match the type at +that index: + +```js flow-check +const tuple: [number, boolean, string] = [1, true, "three"]; + +tuple[0] = 2; // Works! +tuple[1] = false; // Works! +tuple[2] = "foo"; // Works! + +tuple[0] = "bar"; // Error! +tuple[1] = 42; // Error! +tuple[2] = false; // Error! +``` + +## Strictly enforced tuple length (arity) {#toc-strictly-enforced-tuple-length-arity} + +The length of the tuple is known as the "arity". The length of a tuple is +strictly enforced in Flow. + +This means that a shorter tuple can't be used in place of a longer one: + +```js flow-check +const tuple1: [number, boolean] = [1, true]; + +const tuple2: [number, boolean, void] = tuple1; // Error! +``` + +Also, a longer tuple can't be used in place of a shorter one: + +```js flow-check +const tuple1: [number, boolean, void] = [1, true, undefined]; + +const tuple2: [number, boolean] = tuple1; // Error! +``` + +[Optional elements](#optional-tuple-elements) make the arity into a range. + +## Tuples don't match array types {#toc-tuples-don-t-match-array-types} + +Since Flow does not know the length of an array, an `Array` type cannot be +passed into a tuple: + +```js flow-check +const array: Array = [1, 2]; + +const tuple: [number, number] = array; // Error! +``` + +Also a tuple type cannot be passed into to an `Array` type, since then you +could mutate the tuple in an unsafe way (for example, `push`ing a third item onto it): + +```js flow-check +const tuple: [number, number] = [1, 2]; + +const array: Array = tuple; // Error! +``` + +However, you can pass it to a [`$ReadOnlyArray`](../arrays/#toc-readonlyarray) type, since mutation is disallowed: + +```js flow-check +const tuple: [number, number] = [1, 2]; + +const array: $ReadOnlyArray = tuple; // Works! +``` + +## Cannot use mutating array methods on tuples {#toc-cannot-use-mutating-array-methods-on-tuples} + +You cannot use `Array.prototype` methods that mutate the tuple, only ones that do not: + +```js flow-check +const tuple: [number, number] = [1, 2]; +tuple.join(', '); // Works! + +tuple.push(3); // Error! +``` + +## Length refinement + +You can refine a [union](../unions) of tuples by their length: + +```js flow-check +type Union = [number, string] | [boolean]; +function f(x: Union) { + if (x.length === 2) { + // `x` is `[number, string]` + const n: number = x[0]; // OK + const s: string = x[1]; // OK + } else { + // `x` is `[boolean]` + const b: boolean = x[0]; + } +} +``` + +## Tuple element labels + +> NOTE: This and the following sections require your tooling to be updated as described in the "Adoption" section at the end of this page. + +You can add a label to tuple elements. This label does not affect the type of the tuple element, +but is useful in self-documenting the purpose of the tuple elements, especially when multiple elements have the same type. + +```js flow-check +type Range = [x: number, y: number]; +``` + +The label is also necessary to add a variance annotation or optionality modifier to an element (as without the label we would have parsing ambiguities). + +## Variance annotations and read-only tuples + +You can add [variance](../../lang/variance) annotations (to denote read-only/write-only) on labeled tuple elements, just like on object properties: + +```js flow-check +type T = [+foo: number, -bar: string]; +``` + +This allows you to mark elements as read-only or write-only. For example: + +```js flow-check +function f(readOnlyTuple: [+foo: number, +bar: string]) { + const n: number = readOnlyTuple[0]; // OK to read + readOnlyTuple[1] = 1; // ERROR! Cannot write +} +``` + +You can also use the [`$ReadOnly`](../utilities/#toc-readonly) on tuple types as a shorthand for marking each property as read-only: + +```js flow-check +type T = $ReadOnly<[number, string]>; // Same as `[+a: number, +b: string]` +``` + +## Optional tuple elements + +You can mark tuple elements as optional with `?` after an element’s label. This allows you to omit the optional elements. +Optional elements must be at the end of the tuple type, after all required elements. + +```js flow-check +type T = [foo: number, bar?: string]; +([1, "s"]: T); // OK: has all elements +([1]: T); // OK: skipping optional element +``` + +You cannot write `undefined` to the optional element - add `| void` to the element type if you want to do so: + +```js flow-check +type T = [foo?: number, bar?: number | void]; +declare const x: T; +x[0] = undefined; // ERROR +([undefined]: T); // ERROR + +x[1] = undefined; // OK: we've added `| void` to the element type +``` + +You can also use the [`Partial`](../utilities/#toc-partial) and [`Required`](../utilities/#toc-required) utility types to make all elements optional or required respectively: + +```js flow-check +type AllRequired = [number, string]; +([]: Partial); // OK: like `[a?: number, b?: string]` now + +type AllOptional = [a?: number, b?: string]; +([]: Required); // ERROR: like `[a: number, b: string]` now +``` + +Tuples with optional elements have an arity (length) that is a range rather than a single number. For example, `[number, b?: string]` has an length of 1-2. + +## Tuple spread + +You can spread a tuple type into another tuple type to make a longer tuple type: + +```js flow-check +type A = [number, string]; +type T = [...A, boolean]; // Same as `[number, string, boolean]` +([1, "s", true]: T); // OK +``` + +Tuple spreads preserve labels, variance, and optionality. You cannot spread arrays into tuples, only other tuples. + +At the value level, if you spread a tuple with optional elements into an array literal, then you cannot have anything after that spread and retain the tuple view of the array value. +That is because a tuple with optional elements has a length that's a range, so we don't know at what index any subsequent values would be at. +You can still type this value as the appropriate `Array` type - only the tuple view of the value is affected. + +```js flow-check +const a: [foo?: 1] = []; +const b = [0, ...a, 2]; // At runtime this is `[0, 2]` +(b: [0, 1 | void, 2]); // ERROR +(b: Array); // OK + +const c: [0, foo?: 1] = [0]; +const d: [bar?: 2] = [2]; +const e = [...c, ...d]; // At runtime this is `[0, 2]` +(e: [0, foo?: 1, bar?: 2]); // ERROR +(e: Array); // OK +``` + +## Adoption + +To use labeled tuple elements (including optional elements and variance annotations on elements) and tuple spread elements, +you need to upgrade your infrastructure so that it supports the syntax: + +- `flow` and `flow-parser`: 0.212.0 +- `prettier`: 3 +- `babel` with `babel-plugin-syntax-hermes-parser`. See [our Babel guide](../../tools/babel/) for setup instructions. +- `eslint` with `hermes-eslint`. See [our ESLint guide](../../tools/eslint/) for setup instructions. diff --git a/_src/types/type-guards.md b/_src/types/type-guards.md new file mode 100644 index 00000000000..e94e9ed995f --- /dev/null +++ b/_src/types/type-guards.md @@ -0,0 +1,222 @@ +--- +title: Type Guards +slug: /types/type-guards +--- + +Flow lets you define functions whose return expression encodes some type predicate over a parameter `param`. This predicate is annotated in place of a return type annotation as `param is PredicateType`. It declares that if the function returns `true` then `param` is of type `PredicateType`. + +The syntax for a function like this is: +```js +function predicate(param: InputType): param is PredicateType { + return ; +} +``` +The type of this function can also be written in terms of a type guard annotation: +```js +type PredicateFunc = (param: InputType) => param is PredicateType; +``` + + +## Basic Usage {#toc-basic-usage} + +Let's see a simple example where we define a type guard function and then use it to refine some values. + +### Defining a type guard function + +```js flow-check +type A = { type: "A"; data: string }; +type B = { type: "B"; data: number }; +type AorB = A | B; + +function isA(value: AorB): value is A { + return value.type === "A"; +} +``` +We have defined a data type `AorB` that is a disjoint union of two types `A` and `B` that each have a property `type` used as tag. + +We have also written a *user defined type guard* function `isA` defined over objects of type `AorB`. This function returns `true` when the value of of the `type` property of its input is `"A"`. Using the definitions of `A` and `B`, Flow can prove that when the value of `type` is `"A"` then the type of `value` will be `A`. + +### Using a type guard function to refine values + +Functions that have a declared type guard can be used to refine values in conditionals. In the example above, we can use `isA` to refine a variable of type `AorB` to just `A`: + +```js flow-check +type A = { type: "A"; data: string }; +type B = { type: "B"; data: number }; +type AorB = A | B; + +function isA(value: AorB): value is A { + return value.type === "A"; +} + +function test(x: AorB) { + if (isA(x)) { + // `x` has now been refined to type A. + // We can assign it variables of type A ... + const y: A = x; + // ...and access A's properties through `x` + const stringData: string = x.data; + + // As a sanity check, the following assignment to B will error + const error: B = x; + } +} +``` +In the then-branch of the conditional `if (isA(x))`, `x` will have the type `A`. + + + + +## Refine with `Array.filter` + +Flow recognizes when you call `filter` on an array of type `Array` with a callback function that holds a type guard with type `(value: T) => value is S`. +It will use this to produce an output array of type `Array`. Note that `S` needs to be a subtype of the type of the array element `T`. + +For example +```js flow-check +type Success = $ReadOnly<{type: 'success', value: 23}>; +type Error = $ReadOnly<{type: 'error', error: string}>; + +type Response = + | Success + | Error + +function filterSuccess(response: Array): Array { + return response.filter( + (response): response is Success => response.type === 'success' + ); +} + +function filterError1(response: Array): Array { + const result = response.filter( + (response): response is Success => response.type === 'success' + ); + // The following is expected to error + return result; +} + +function filterError2(response: Array): Array { + const result = response.filter( + // The following is expected to error + (response): response is Error => response.type === 'success' + ); + return result; +} +``` +In `filterError1`, filtering produces `Array` that is not compatible with the expected return type `Array`. + +In `filterError2`, the predicate `response.type === 'success'` is used to refine `Response`s to `Success`s, not `Error`s. + + +## Defining Type Guard Functions {#toc-restrictions-of-type-guard-functions} + +To ensure that refinement with type guard functions is sound, Flow runs a number of checks associated with these functions. + +### Predicate parameter is a regular parameter to the function + +In a type guard annotation of the form `parameter is Type`, `parameter` needs to belong to the current function's parameter list. +```js flow-check +function missing(param: mixed): prop is number { + return typeof param === "number"; +} +``` + +It cannot be a parameter bound in a destructuring pattern, or a rest paramter: +```js flow-check +function destructuring({prop}: {prop: mixed}): prop is number { + return typeof prop === "number"; +} +``` +```js flow-check +function rest(...value: Array): value is Array { + return Array.isArray(value); +} +``` +### Predicate type is consistent with the parameter type + +The type guard `Type` needs to be compatible with the type of the parameter. In other words, given a definition +```js +function isT(x: ParamType): x is Type { + return ... +} +``` +Flow will check that `Type` is a subtype of `ParamType`. So the following will be an error: +```js flow-check +function isNumber(x: string): x is number { + return typeof x === "number"; +} +``` + +### Type guard function returns boolean + +A type guard function needs to return a boolean expression. The following are invalid declarations: +```js flow-check +function isNumberNoReturn(x: string): x is string {} +``` +```js flow-check +function nonMaybe(x: ?V): x is V { + return x; +} +``` +A correct version of `nonMaybe` would be +```js flow-check +function nonMaybe(x: ?V): x is V { + return !!x; +} +``` + +### Predicate type is consistent with refined type + +In addition to the above checks, Flow also ensures that the declared type guard is consistent with the check happening in the body of the function. To establish this it needs to guarantee two things: + +1. The type of the refined parameter at the return location *after* the predicate of the return expression has been applied is a subtype of the guard type. For example, the following definitions are correct: +```js flow-check +function numOrStr(x: mixed): x is number | string { + return (typeof x === "number" || typeof x === "string"); +} + +function numOrStrWithException(x: mixed): x is number | string { + if (typeof x === "number") { + return true; + } else { + if (typeof x === "string") { + return true; + } else { + throw new Error(""); + } + } +} +``` +But in the following Flow will raise errors: +```js flow-check +function numOrStrError(x: mixed): x is number | string { + return (typeof x === "number" || typeof x === "boolean"); +} +``` + +2. The parameter that is refined cannot be reassigned in the body of the type guard function. Therefore the following are errors: +```js flow-check +function isNumberError1(x: mixed): x is number { + x = 1; + return typeof x === "number"; +} +``` +```js flow-check +function isNumberError2(x: mixed): x is number { + function foo() { + x = 1; + } + foo(); + return typeof x === "number"; +} +``` + + +## Adoption {#toc-adoption} + +To use type guards, you need to upgrade your infrastructure so that it supports the syntax: + +- `flow` and `flow-parser`: 0.209.1. Between v0.209.1 to v0.211.1, you need to explicitly enable it in your .flowconfig, under the `[options]` heading, add `type_guards=true`. +- `prettier`: 3 +- `babel` with `babel-plugin-syntax-hermes-parser`. See [our Babel guide](../../tools/babel/) for setup instructions. +- `eslint` with `hermes-eslint`. See [our ESLint guide](../../tools/eslint/) for setup instructions. diff --git a/_src/types/typeof.md b/_src/types/typeof.md new file mode 100644 index 00000000000..783f8653b75 --- /dev/null +++ b/_src/types/typeof.md @@ -0,0 +1,115 @@ +--- +title: Typeof Types +slug: /types/typeof +--- + +JavaScript has a `typeof` operator which returns a string describing a value. + +```js flow-check +typeof 1 === 'number' +typeof true === 'boolean' +typeof 'three' === 'string' +``` + +However it is limited in that this string only describes so much about the type. + +```js flow-check +typeof {foo: true} === 'object' +typeof null === 'object' +typeof [true, false] === 'object' +``` + +In Flow, there is a similar `typeof` type operator, but it's much more powerful. + +## `typeof` type syntax {#toc-typeof-type-syntax} + + +The `typeof` operator returns the Flow type of a given value to be used as a type. + +```js flow-check +let num1 = 42; +let num2: typeof num1 = 3.14; // Works! +let num3: typeof num1 = 'world'; // Error! + +let bool1 = true; +let bool2: typeof bool1 = false; // Works! +let bool3: typeof bool1 = 42; // Error! + +let str1 = 'hello'; +let str2: typeof str1 = 'world'; // Works! +let str3: typeof str1 = false; // Error! +``` + +You can use any value with `typeof`, as long as the arugment itself is a variable or member access: + +```js flow-check +let obj1 = {foo: 1, bar: true, baz: 'three'}; +let obj2: typeof obj1 = {foo: 42, bar: false, baz: 'hello'}; +let num: typeof obj1.bar = 1; + +let arr1 = [1, 2, 3]; +let arr2: typeof arr1 = [3, 2, 1]; + +type T = typeof {a: 1}; // Invalid! +``` + +## `typeof` inherits behaviors of inference {#toc-typeof-inherits-behaviors-of-inference} + +When you use `typeof`, you're taking the results of Flow's inference and +asserting it as a type. While this can be very useful, it can also lead to some +unexpected results. + +For example, when you use literal values in Flow, their inferred type is the +primitive that it belongs to. Thus, the number 42 has the inferred type of +`number`. You can see this when you use `typeof`. + +```js flow-check +let num1 = 42; +let num2: typeof num1 = 3.14; // Works! + +let bool1 = true; +let bool2: typeof bool1 = false; // Works! + +let str1 = 'hello'; +let str2: typeof str1 = 'world'; // Works! +``` + +However, this only happens with the inferred type. If you specify the literal +type, it will be used in `typeof`. + +```js flow-check +let num1: 42 = 42; +let num2: typeof num1 = 3.14; // Error! + +let bool1: true = true; +let bool2: typeof bool1 = false; // Error! + +let str1: 'hello' = 'hello'; +let str2: typeof str1 = 'world'; // Error! +``` + +## `typeof` inherits behaviors of other types {#toc-typeof-inherits-behaviors-of-other-types} + +There are many different types in Flow, some of these types behave differently +than others. These differences make sense for that particular type but not for +others. + +When you use `typeof`, you're inserting another type with all of its behaviors. +This can make `typeof` seem inconsistent where it is not. + +For example, if you use `typeof` with a class you need to remember that classes +are *nominally* typed instead of *structurally* typed. So that two classes with +the same exact shape are not considered equivalent. + +```js flow-check +class MyClass { + method(val: number) { /* ... */ } +} + +class YourClass { + method(val: number) { /* ... */ } +} + +let test1: typeof MyClass = YourClass; // Error! +let test2: typeof MyClass = MyClass; // Works! +``` diff --git a/_src/types/unions.md b/_src/types/unions.md new file mode 100644 index 00000000000..7527e47026a --- /dev/null +++ b/_src/types/unions.md @@ -0,0 +1,250 @@ +--- +title: Unions +slug: /types/unions +--- + +Sometimes it's useful to create a type which is ***one of*** a set of other +types. For example, you might want to write a function which accepts a set of +primitive value types. For this Flow supports **union types**. + +```js flow-check +function toStringPrimitives(value: number | boolean | string): string { + return String(value); +} + +toStringPrimitives(1); // Works! +toStringPrimitives(true); // Works! +toStringPrimitives('three'); // Works! + +toStringPrimitives({prop: 'val'}); // Error! +toStringPrimitives([1, 2, 3, 4, 5]); // Error! +``` + +## Union type syntax {#toc-union-type-syntax} + +Union types are any number of types which are joined by a vertical bar `|`. + +```js +Type1 | Type2 | ... | TypeN +``` + +You may also add a leading vertical bar which is useful when breaking union +types onto multiple lines. + +```js +type Foo = + | Type1 + | Type2 + | ... + | TypeN +``` + +Each of the members of a union type can be any type, even another union type. + +```js flow-check +type Numbers = 1 | 2; +type Colors = 'red' | 'blue' + +type Fish = Numbers | Colors; +``` + +If you have enabled [Flow Enums](../../enums/), they may be an alternative to unions of [literal types](../literals). + +## Union shorthands + +The union of some type `T` with `null` or `void` is common, so we provide a shorthand called [maybe types](../maybe), by using the `?` prefix. The type `?T` is equivalent to `T | null | void`: + +```js flow-check +function maybeString(x: ?string) { /* ... */ } +maybeString('hi'); // Works! +maybeString(null); // Works! +maybeString(undefined); // Works! +``` + +The union of every single type that exists is the [`mixed`](../mixed) type: + +```js flow-check +function everything(x: mixed) { /* ... */ } +everything(1); // Works! +everything(true); // Works! +everything(null); // Works! +everything({foo: 1}); // Works! +everything(new Error()); // Works! +``` + +## Unions & Refinements {#toc-unions-refinements} + +When you have a value which is a union type it's often useful to break it apart +and handle each individual type separately. With union types in Flow you can +[refine](../../lang/refinements) the value down to a single type. + +For example, if we have a value with a union type that is a `number`, a +`boolean`, or a `string`, we can treat the number case separately by using +JavaScript's `typeof` operator. + +```js flow-check +function toStringPrimitives(value: number | boolean | string) { + if (typeof value === 'number') { + return value.toLocaleString([], {maximumSignificantDigits: 3}); // Works! + } + // ... +} +``` + +By checking the `typeof` our value and testing to see if it is a `number`, Flow +knows that inside of that block it is only a number. We can then write code +which treats our value as a number inside of that block. + +## Union types requires one in, but all out {#toc-union-types-requires-one-in-but-all-out} + +When calling a function that accepts a union type we must pass in ***one of +those types***. But inside of the function we are required to handle ***all of +the possible types***. + +Let's rewrite the function to handle each type individually using [refinements](../../lang/refinements). + +```js flow-check +function toStringPrimitives(value: number | boolean | string): string { + if (typeof value === 'number') { + return String(value); + } else if (typeof value === 'boolean') { + return String(value); + } + return value; // If we got here, it's a `string`! +} +``` + +If we do not handle each possible type of our value, Flow will give us an error: + +```js flow-check +function toStringPrimitives(value: number | boolean | string): string { + if (typeof value === 'number') { + return String(value); + } + return value; // Error! +} +``` + +## Disjoint Object Unions {#toc-disjoint-object-unions} + +There's a special type of union in Flow known as a "disjoint object union" which can +be used with [refinements](../../lang/refinements/). These disjoint object unions are +made up of any number of object types which are each tagged by a single property. + +For example, imagine we have a function for handling a response from a server +after we've sent it a request. When the request is successful, we'll get back +an object with a `type` property set to `'success'` and a `value` that we've +updated. + +```js +{type: 'success', value: 23} +``` + +When the request fails, we'll get back an object with `type` set to `'error'` +and an `error` property describing the error. + +```js +{type: 'error', error: 'Bad request'} +``` + +We can try to express both of these objects in a single object type. However, +we'll quickly run into issues where we know a property exists based on the +`type` property but Flow does not. + +```js flow-check +type Response = { + type: 'success' | 'error', + value?: number, + error?: string +}; + +function handleResponse(response: Response) { + if (response.type === 'success') { + const value: number = response.value; // Error! + } else { + const error: string = response.error; // Error! + } +} +``` + +Trying to combine these two separate types into a single one will only cause us +trouble. + +Instead, if we create a union type of both object types, Flow will be able to +know which object we're using based on the `type` property. + +```js flow-check +type Response = + | {type: 'success', value: 23} + | {type: 'error', error: string}; + +function handleResponse(response: Response) { + if (response.type === 'success') { + const value: number = response.value; // Works! + } else { + const error: string = response.error; // Works! + } +} +``` + +In order to use this pattern, there must be a key that is in every object in your union (in our example above, `type`), +and every object must set a different [literal type](../literals) for that key (in our example, the string `'success'`, and the string `'error'`). +You can use any kind of literal type, including numbers and booleans. + +### Disjoint object unions with exact types {#toc-disjoint-unions-with-exact-types} + +Disjoint unions require you to use a single property to distinguish each object +type. You cannot distinguish two different [inexact objects](../objects/#exact-and-inexact-object-types) by different properties. + +```js flow-check +type Success = {success: true, value: boolean, ...}; +type Failed = {error: true, message: string, ...}; + +function handleResponse(response: Success | Failed) { + if (response.success) { + const value: boolean = response.value; // Error! + } +} +``` + +This is because in Flow it is okay to pass an object value with more properties +than the inexact object type expects (because of [width subtyping](../../lang/width-subtyping/)). + +```js flow-check +type Success = {success: true, value: boolean, ...}; +type Failed = {error: true, message: string, ...}; + +function handleResponse(response: Success | Failed) { + // ... +} + +handleResponse({ + success: true, + error: true, + value: true, + message: 'hi' +}); +``` + +Unless the objects somehow conflict with one another there is no way to +distinguish them. + +However, to get around this you could use **exact object types**. + +```js flow-check +type Success = {success: true, value: boolean}; +type Failed = {error: true, message: string}; + +type Response = Success | Failed; + +function handleResponse(response: Response) { + if (response.success) { + const value: boolean = response.value; + } else { + const message: string = response.message; + } +} +``` + +With exact object types, we cannot have additional properties, so the objects +conflict with one another and we are able to distinguish which is which. diff --git a/_src/types/utilities.md b/_src/types/utilities.md new file mode 100644 index 00000000000..d5d2d1d5367 --- /dev/null +++ b/_src/types/utilities.md @@ -0,0 +1,771 @@ +--- +title: Utility Types +slug: /types/utilities +--- + +import {SinceVersion, UntilVersion} from '../../components/VersionTags'; + +Flow provides a set of utility types to operate on other types to create new types. + +## `$Keys` {#toc-keys} + +You can extract the type of the keys from an [object type](../objects). Typically this will be a [union](../unions) of [string literal](../literals) types: + +```js flow-check +const countries = { + US: "United States", + IT: "Italy", + FR: "France" +}; + +type Country = $Keys; + +const italy: Country = 'IT'; // Works +const nope: Country = 'nope'; // Error! +``` + +In the example above, the type of `Country` is equivalent to `type Country = 'US' | 'IT' | 'FR'`, but Flow was able to extract it from the keys of `countries`. + +If you want to create an enum type, [Flow Enums](../../enums) might be a better fit for your use-case. + +## `$Values` {#toc-values} + +`$Values` represents the union type of all the value types of the enumerable properties in an [object type](../objects/): + +```js flow-check +type Props = { + name: string, + age: number, +}; + +// The following two types are equivalent: +type PropValues = string | number; +type Prop$Values = $Values; + +const name: Prop$Values = 'Jon'; // Works +const age: Prop$Values = 42; // Works +const fn: Prop$Values = true; // Error! +``` + +Note that using `$Values` on the [`typeof`](../typeof) an object literal will result in a type more general than you might expect: + +```js flow-check +const obj = { + foo: 1, + bar: 2, +}; + +function acceptsValues(x: $Values) { /* ... */ } + +acceptsValues(1); // Works +acceptsValues(3); // Works, because the type was interpreted as `number`. +``` + +This behavior changes if you use `Object.freeze` on the object literal expression: + +```js flow-check +const obj = Object.freeze({ + foo: 1, + bar: 2, +}); + +function acceptsValues(x: $Values) { /* ... */ } + +acceptsValues(1); // Works +acceptsValues(3); // Error! Because the type was interpreted as `1 | 2`. +``` + +If you want to create an enum type, [Flow Enums](../../enums) might be a better fit for your use-case. + +## `$ReadOnly` {#toc-readonly} + +`$ReadOnly` is a type that represents the read-only version of a given [object type](../objects/) +or [tuple type](../tuples) `T` (support for tuples is for Flow ). +A read-only object type is an object type whose keys are all [read-only](../objects/#read-only-object-properties). +Similarly, a read-only tuple is one where each element is [read-only](../tuples/#variance-annotations-and-read-only-tuples). + +This means that the following are equivalent: +```js flow-check +type ReadOnlyObj = { + +key: number, // read-only field, marked by the `+` annotation +}; +type ReadOnlyTuple = [+foo: number]; +``` +→ +```js flow-check +type ReadOnlyObj = $ReadOnly<{ + key: number, +}>; +type ReadOnlyTuple = $ReadOnly<[number]>; +``` + +This is useful when you need to use a read-only version of an object type you've already defined, without manually having to re-define and annotate each key as read-only. For example: + +```js flow-check +type Props = { + name: string, + age: number, +}; + +type ReadOnlyProps = $ReadOnly; + +function render(props: ReadOnlyProps) { + const {name, age} = props; // Works + props.age = 42; // Error! +} +``` + +Additionally, other utility types, such as [`$ObjMap`](#toc-objmap), may strip any read/write annotations, so `$ReadOnly` is a handy way to quickly make the object read-only again after operating on it: + +```js flow-check +type Obj = { + +key: number, +}; + +type MappedObj = $ReadOnly<$ObjMap(T) => Array>> // Still read-only +``` + +The `$ReadOnly` utility works on object and tuple types. +If you want to make other types read-only, you can use one of the following: +- `Array` -> [`$ReadOnlyArray`](../arrays/#toc-readonlyarray) +- `Set` -> `$ReadOnlySet` +- `Map` -> `$ReadOnlyMap` +- `WeakSet` -> `$ReadOnlyWeakSet` +- `WeakMap` -> `$ReadOnlyWeakMap` + +## `Partial` {#toc-partial} + +This utility converts all of an object or interface's named fields to be optional, +while maintaining all the object's other properties (e.g. exactness, variance). +Use this utility instead of `$Shape`. + +Since Flow , it also converts all of a tuple type's elements to be [optional](../tuples/#optional-tuple-elements). + +Example for objects: +```js flow-check +type Person = { + name: string, + age: number, +}; +type PartialPerson = Partial; +// Above equivalent to `{name?: string, age?: number}` + +const a: PartialPerson = {}; // OK +const b: PartialPerson = {name: 'George'}; // OK +const c: PartialPerson = {name: 'George', age: 123}; // OK + +(c: Person); // ERROR: `PersonDetails` is not a `Person` (unlike with `$Shape`) +``` + +For tuples: +```js flow-check +type AllRequired = [number, string]; +([]: Partial); // OK: like `[a?: number, b?: string]` now +``` + +A object or tuple of type `T` cannot be supplied to `Partial`, due to mutability. You can resolve this by making the object [read-only](#toc-readonly): + +```js flow-check +type Person = { + name: string, + age: number, +}; + +const person: Person = {name: 'George', age: 123}; + +function noPerson(o: Partial) { + // Can mutate: + o.name = undefined; +} +noPerson(person); // Error! + +function okPerson(o: $ReadOnly>) { + // Can't mutate - it's read-only! +} +okPerson(person); // Works +``` + +Note: Up until Flow version 0.201, this utility type was named `$Partial`. + +## `Required` {#toc-required} + +The `Required` utility type is the opposite of [`Partial`](#toc-partial): +it converts all of an object or interface’s optional fields to be required. + +Since Flow , it also converts all of a tuple type's elements to be [required](../tuples/#optional-tuple-elements). + +Example for objects: +```js flow-check +type PartialPerson = { + name?: string, + age?: number, +}; +type Person = Required; +// Above equivalent to `{name: string, age: number}` + +const a: Person = {name: 'George', age: 123}; // OK +const b: Person = {age: 123}; // ERROR: missing `name` property +``` + +For tuples: +```js flow-check +type AllOptional = [a?: number, b?: string]; +([]: Required); // ERROR: like `[a: number, b: string]` now +``` + +## `ReturnType` {#toc-return-type} + +This utility type extracts the return type from a given function type. + +```js flow-check +declare function f(s: string, n: number): boolean; +type Bool = ReturnType; +(true: Bool); +(1: Bool); // Error: number is not boolean +``` + +## `Parameters` {#toc-parameters} + +This utility type extracts the parameter types from a given function type into a [tuple type](../tuples/). + +```js flow-check +declare function f(s: string, n: number): boolean; +type Tuple = Parameters; // Evaluates to [string, number] +('s': Tuple[0]); +(1: Tuple[1]); +(false: Tuple[2]); // Error: tuple type only has two elements +``` + +## `Exclude` {#toc-exclude} + +This utility type excludes all subtypes of `U` from `T`. + +```js flow-check +type T = Exclude<1 | 2 | 3 | 4, 1 | 3>; // evaluates to 2 | 4 +(1: T); // error +(2: T); // ok +(3: T); // error +(4: T); // ok +``` + +## `Extract` {#toc-extract} + +This utility type retains only subtypes of `U` from `T`. + +```js flow-check +declare class Car {} +declare class Animal {} +declare class Dog extends Animal {} +declare class Cat extends Animal {} +type T = Extract; // evaluates to Dog | Cat +(new Car(): T); // error +(new Dog(): T); // ok +(new Cat(): T); // ok +``` + +## `ThisParameterType` {#toc-this-parameter-type} + +This utility type extracts the type of the `this` parameter of a given function type. + +```js flow-check +type T = ThisParameterType<(this: number, bar: string) => void>; // Evaluates to number +('1': T); // error +(2: T); // ok +``` + +## `OmitThisParameter` {#toc-omit-this-parameter-type} + +This utility type removes the `this` parameter from a given function type. + +```js flow-check +type HasThisParamFun = (this: number, bar: string) => void; +type NoThisParamFun = OmitThisParameter // Evaluates to (bar: string) => void +declare const hasThisParam: HasThisParamFun; +declare const noThisParam: NoThisParamFun; + +hasThisParam(''); // error: global object is not number +noThisParam(''); // ok: no this type requirement +``` + +## `Pick` {#toc-pick} + +This utility type allows you to generate an object type using a subset of the fields from +another object type. + +```js flow-check +type O = {foo: number, bar: string, baz: boolean}; +type FooAndBar = Pick; + +declare const fooAndBar: FooAndBar; +fooAndBar.baz; // error: baz is missing +(fooAndBar.foo: number); // ok +(fooAndBar.bar: string); // ok +``` + +## `Omit` {#toc-omit} + +This utility type allows you to generate an object type by omitting the specified fields from +another object type. +```js flow-check +type O = {foo: number, bar: string, baz: boolean}; +type JustBaz= Omit; + +declare const justBaz: JustBaz; +(justBaz.baz: boolean); // ok +justBaz.foo; // error: missing foo +justBaz.bar; // error: missing bar +``` + +## `Record` {#toc-record} + +This utility type allows you to generate an object type from a union of keys with the given +`Type` for each field. +```js flow-check +type NumberRecord = Record<'foo' | 'bar', number>; +declare const numberRecord: NumberRecord; +(numberRecord.foo: number); // ok +(numberRecord.bar: number); // ok +numberRecord.baz; // error +``` + +Note that `Record` is different than using an indexer: +```js flow-check +type NumberRecord = Record<'foo' | 'bar', number>; +type IndexedObject = {['foo' | 'bar']: number}; + +// Record uses explicit fields, which means they are all required +const rec: Record = {}; // error +// Indexers do not have this same requirement +const idx: IndexedObject = {}; // no error +``` + +## `$Exact` {#toc-exact} + +You can use `$Exact` to make an [inexact object type](../objects/#exact-and-inexact-object-types) exact: + +```js flow-check +type InexactUser = {name: string, ...}; +type ExactUser = $Exact; + +const user = {name: 'John Wilkes Booth'}; +// These will both be satisfied because they are equivalent: +const a: ExactUser = user; +const b: {name: string} = user; +``` + +This is an utility type to avoid, as it's clearer and more concinse to start off with an exact object type and make it inexact using [object type spread](../objects/#object-type-spread) +(if you wish to have both inexact and exact variants of one object type): + +```js flow-check +type ExactUser = {name: string}; +type InexactUser = {...ExactUser, ...}; + +const user = {name: 'John Wilkes Booth'}; +const a: ExactUser = user; +``` + +## `$Diff` {#toc-diff} + +As the name hints, `$Diff` is the type representing the set difference of `A` and `B`, i.e. `A \ B`, where `A` and `B` are both [object types](../objects/). Here's an example: + +```js flow-check +type Props = {name: string, age: number, ...}; +type DefaultProps = {age: number}; +type RequiredProps = $Diff; + +function setProps(props: RequiredProps) { + // ... +} + +setProps({name: 'foo'}); // Works +setProps({name: 'foo', age: 42, baz: false}); // Works, you can pass extra props too +setProps({age: 42}); // Error! `name` is required +``` + +As you may have noticed, the example is not a random one. +`$Diff` is exactly what the React definition file uses to define the type of the props accepted by a React Component. + +Note that `$Diff` will error if the object you are removing properties from does not have the property being removed, i.e. if `B` has a key that doesn't exist in `A`: + +```js flow-check +type Props = {name: string, age: number}; +type DefaultProps = {age: number, other: string}; +type RequiredProps = $Diff; // Error! + +function setProps(props: RequiredProps) { + props.name; + // ... +} +``` + +As a workaround, you can specify the property not present in `A` as optional. For example: + +```js flow-check +type A = $Diff<{}, {nope: number}>; // Error! +type B = $Diff<{}, {nope: number | void}>; // Works + +const a: A = {}; +const b: B = {}; +``` + +## `$Rest` {#toc-rest} + +`$Rest` is the type that represents the runtime object rest operation, e.g.: `const {foo, ...rest} = obj`, where `A` and `B` are both [object types](../objects/). +The resulting type from this operation will be an object type containing `A`'s *own* properties that are not *own* properties in `B`. +In flow, we treat all properties on [exact object types](../objects/#exact-and-inexact-object-types) as [own](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty). +For inexact objects, a property may or may not be own. + +For example: + +```js flow-check +type Props = {name: string, age: number}; + +const props: Props = {name: 'Jon', age: 42}; +const {age, ...otherProps} = props; +(otherProps: $Rest); +otherProps.age; // Error! +``` + +The main difference with [`$Diff`](#toc-diff), is that `$Rest` aims to represent the true runtime rest operation, +which implies that exact object types are treated differently in `$Rest`. +For example, `$Rest<{n: number}, {...}>` will result in `{n?: number}` because an in-exact empty object may have an `n` property, +while `$Diff<{n: number}, {...}>` will result in `{n: number}`. + +## `$NonMaybeType` {#toc-nonmaybe} + +`$NonMaybeType` converts a type `T` to a non-[maybe type](../maybe). +In other words, the values of `$NonMaybeType` are the values of `T` except for `null` and `undefined`. + +```js flow-check +type MaybeName = ?string; +type Name = $NonMaybeType; + +('Gabriel': MaybeName); // Works +(null: MaybeName); // Works +('Gabriel': Name); // Works +(null: Name); // Error! `null` can't be annotated as Name because Name is not a maybe type +``` + +## `$KeyMirror` {#toc-keymirror} + +`$KeyMirror` is a special case of `$ObjMapi`, when `F` is the identity +function type, ie. `(K) => K`. In other words, it maps each property of an object +to the type of the property key. Instead of writing `$ObjMapi(K) => K>`, +you can write `$KeyMirror`. For example: +```js +const obj = { + a: true, + b: 'foo' +}; + +declare function run(o: O): $KeyMirror; + +// newObj is of type {a: 'a', b: 'b'} +const newObj = run(obj); + +(newObj.a: 'a'); // Works +(newObj.b: 'a'); // Error! String 'b' is incompatible with 'a' +``` + +Tip: Prefer using `$KeyMirror` instead of `$ObjMapi` (if possible) to fix certain +kinds of `[invalid-exported-annotation]` errors. + +## `$TupleMap` {#toc-tuplemap} + +`$TupleMap` takes an iterable type `T` (e.g.: [`Tuple`](../tuples) or [`Array`](../arrays)), and a [function type](../functions) `F`, +and returns the iterable type obtained by mapping the type of each value in the iterable with the provided function type `F`. +This is analogous to the JavaScript function `map`. + +Following our example from [`$ObjMap`](#toc-objmap), let's assume that `run` takes an array of functions, instead of an object, and maps over them returning an array of the function call results. We could annotate its return type like this: + +```js flow-check +// Function type that takes a `() => V` and returns a `V` (its return type) +type ExtractReturnType = (() => V) => V + +function run A>>(iter: I): $TupleMap { + return iter.map(fn => fn()); +} + +const arr = [() => 'foo', () => 'bar']; +(run(arr)[0]: string); // Works +(run(arr)[1]: string); // Works +(run(arr)[1]: boolean); // Error! +``` + +## `Class` {#toc-class} + +Given a type `T` representing instances of a class `C`, the type `Class` is the type of the class `C`. +For example: + +```js flow-check +class Store {} +class ExtendedStore extends Store {} +class Model {} + +function makeStore(storeClass: Class) { + return new storeClass(); +} + +(makeStore(Store): Store); +(makeStore(ExtendedStore): Store); +(makeStore(Model): Model); // Error! +``` + +For classes that take type parameters, you must also provide the parameter. For example: + +```js flow-check +class ParamStore { + constructor(data: T) {} +} + +function makeParamStore(storeClass: Class>, data: T): ParamStore { + return new storeClass(data); +} +(makeParamStore(ParamStore, 1): ParamStore); +(makeParamStore(ParamStore, 1): ParamStore); // Error! +``` + +## `$Exports` {#toc-exports} + +The following are functionally equivalent + +```js +import typeof * as T from 'my-module'; +``` + +```js +type T = $Exports<'my-module'>; +``` + +The advantage of the `$Exports` syntax is that you can `export` the type on the same line +```js +export type T = $Exports<'my-module'>; +``` + +where as you would otherwise need to export an alias in the `import typeof` case +```js +import typeof * as T from 'my-module'; +export type MyModuleType = T; +``` + +## Deprecated utility types + +### `$PropertyType` {#toc-propertytype} + +**WARNING:** `$PropertyType` is deprecated as of Flow version 0.155, and will be removed in a future version of Flow. + +`$PropertyType` is equivalent to the `T['k']` [indexed access type](../indexed-access). + +### `$ElementType` {#toc-elementtype} + +**WARNING:** `$ElementType` is deprecated as of Flow version 0.155, and will be removed in a future version of Flow. + +`$ElementType` is equivalent to the `T[K]` [indexed access type](../indexed-access). + +### `$Partial` +A former alias of [Partial](#toc-partial). Support was removed in version 0.203. + +### `$Shape` {#toc-shape} + +NOTE: **Deprecated!** This utility is unsafe - please use [`Partial`](#toc-partial) documented above to make all of an object's fields optional. + +A variable of type `$Shape`, where `T` is some object type, can be assigned objects `o` +that contain a subset of the properties included in `T`. For each property `p: S` of `T`, +the type of a potential binding of `p` in `o` must be compatible with `S`. + +For example +```js flow-check +type Person = { + age: number, + name: string, +} +type PersonDetails = $Shape; + +const person1: Person = {age: 28}; // ERROR: missing `name` +const person2: Person = {name: 'a'}; // ERROR: missing `age` +const person3: PersonDetails = {age: 28}; // OK +const person4: PersonDetails = {name: 'a'}; // OK +const person5: PersonDetails = {age: 28, name: 'a'}; // OK +const person6: PersonDetails = {age: '28'}; // ERROR: string is incompatible with number +``` + +NOTE: `$Shape` is **not** equivalent to `T` with all its fields marked as optional. +In particular, Flow unsoundly allows `$Shape` to be used as a `T` in several +contexts. For example in + +```js +const personShape: PersonDetails = {age: 28}; +(personShape: Person); +``` +Flow will unsoundly allow this last cast to succeed. + +It is also not equivalent to itself in some contexts: + +```js flow-check +function f(input: $Shape): $Shape { + return input; // ERROR: `T` is incompatible with `$Shape` of `T` +} +``` + +This utility type is deprecated and will be deleted in the future - +use [`Partial`](#toc-partial) instead. + +### `$Call` {#toc-call} +NOTE: **Deprecated!** This utility is deprecated as of Flow version 0.208 - please use [Conditional Types](../conditional) or [Indexed Access Types](../indexed-access) to extract types instead. + +`$Call` is a type that represents the result of calling the given [function type](../functions) `F` with 0 or more arguments `T...`. +This is analogous to calling a function at runtime (or more specifically, it's analogous to calling [`Function.prototype.call`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call)), but at the type level; this means that function type calls happens statically, i.e. not at runtime. + +Let's see a couple of examples: +```js flow-check +// Takes an object type, returns the type of its `prop` key +type ExtractPropType = ({prop: T, ...}) => T; +type Obj = {prop: number}; +type PropType = $Call; // Call `ExtractPropType` with `Obj` as an argument +type Nope = $Call; // Error! Argument doesn't match `Obj`. + +(5: PropType); // Works +(true: PropType); // Error! PropType is a number +``` + +```js flow-check +// Takes a function type, and returns its return type +type ExtractReturnType = (() => R) => R; +type Fn = () => number; +type ReturnType = $Call; + +(5: ReturnType); // Works +(true: ReturnType); // Error! ReturnType is a number +``` + +`$Call` can be very powerful because it allows you to make calls in type-land that you would otherwise have to do at runtime. +The type-land calls happen statically and will be erased at runtime. + +```js flow-check +// Getting return types: +function getFirstValue(map: Map): ?V { + for (const [key, value] of map.entries()) { + return value; + } + return null; +} + +// Using $Call, we can get the actual return type of the function above: +type Value = $Call>; + +(5: Value); +(true: Value); // Error! Value is a `number` + +// We could generalize it further: +type GetMapValue = + $Call; + +(5: GetMapValue>); +(true: GetMapValue>); +(true: GetMapValue>); // Error! value is a `number` +``` + +### `$ObjMap` {#toc-objmap} +NOTE: **Deprecated!** This utility is deprecated as of Flow version 0.211- please use [Mapped Types](../mapped-types) instead. + +`ObjMap` takes an [object type](../objects) `T`, and a [function type](../functions) `F`, and returns the object type obtained by mapping the type of each value in the object with the provided function type `F`. In other words, `$ObjMap` will [call](#toc-call) (at the type level) the given function type `F` for every property value type in `T`, and return the resulting object type from those calls. + +Let's see an example. Suppose you have a function called `run` that takes an object of thunks (functions in the form `() => A`) as input: + +```js flow-check +function run) => mixed}>(o: O): $FlowFixMe { + return Object.keys(o).reduce<{[string]: (...$ReadOnlyArray) => mixed}>( + (acc, k) => ({...acc, [(k: string)]: o[k]()}), + {}, + ); +} +``` + +The function's purpose is to run all the thunks and return an object made of values. What's the return type of this function? + +The keys are the same, but the values have a different type, namely the return type of each function. +At a value level (the implementation of the function) we're essentially mapping over the object to produce new values for the keys. +How to express this at a type level? + +This is where `ObjMap` comes in handy + +```js flow-check +// let's write a function type that takes a `() => V` and returns a `V` (its return type) +type ExtractReturnType = (() => V) => V; + +declare function run) => mixed}>(o: O): $ObjMap; + +const o = { + a: () => true, + b: () => 'foo' +}; + +(run(o).a: boolean); // Works +(run(o).b: string); // Works +(run(o).b: boolean); // Error! `b` is a string +run(o).c; // Error! `c` was not in the original object +``` + +This is extremely useful for expressing the return type of functions that manipulate objects values. +You could use a similar approach (for instance) to provide the return type of bluebird's [`Promise.props`](http://bluebirdjs.com/docs/api/promise.props.html) function, +which is like `Promise.all` but takes an object as input. + +Here's a possible declaration of this function, which is very similar to our first example: + +```js flow-check +declare function props(promises: O): Promise<$ObjMap>; + +const promises = {a: Promise.resolve(42)}; +props(promises).then(o => { + (o.a: 42); // Works + (o.a: 43); // Error! Flow knows it's 42 +}); +``` + +### `$ObjMapi` {#toc-objmapi} +NOTE: **Deprecated!** This utility is deprecated as of Flow version 0.211- please use [Mapped Types](../mapped-types) instead. + +`ObjMapi` is similar to [`ObjMap`](#toc-objmap). The difference is that function +type `F` will be [called](#toc-call) with both the key and value types of the elements of +the object type `T`, instead of just the value types. For example: + +```js flow-check +const o = { + a: () => true, + b: () => 'foo' +}; + +type ExtractReturnObjectType = (K, () => V) => { k: K, v: V }; + +declare function run(o: O): $ObjMapi; + +(run(o).a: {k: 'a', v: boolean}); // Works +(run(o).b: {k: 'b', v: string}); // Works +(run(o).a: {k: 'b', v: boolean}); // Error! `a.k` is "a" +(run(o).b: {k: 'b', v: number}); // Error! `b.v` is a string +run(o).c; // Error! `c` was not in the original object +``` + +### `$ObjMapConst` {#toc-objmapconst} +NOTE: **Deprecated!** This utility is deprecated as of Flow version 0.211- please use [Mapped Types](../mapped-types) instead. + +`$ObjMapConst` is a special case of `$ObjMap`, when `F` is a constant +function type, e.g. `() => T`. Instead of writing `$ObjMap T>`, you +can write `$ObjMapConst`. For example: +```js +const obj = { + a: true, + b: 'foo' +}; + +declare function run(o: O): $ObjMapConst; + +// newObj is of type {a: number, b: number} +const newObj = run(obj); + +(newObj.a: number); // Works +(newObj.b: string); // Error! Property `b` is a number +``` + +Tip: Prefer using `$ObjMapConst` instead of `$ObjMap` (if possible) to fix certain +kinds of `[invalid-exported-annotation]` errors. diff --git a/_src/usage.md b/_src/usage.md new file mode 100644 index 00000000000..9731c6475ed --- /dev/null +++ b/_src/usage.md @@ -0,0 +1,88 @@ +--- +title: Usage +slug: /usage +--- + +Once you have [installed](../install/) Flow, you will want to get a feel of how to use Flow at the most basic level. For most new Flow projects, you will follow this general pattern: + +- [Initialize your project](#toc-initialize-your-project) with `flow init`. +- Start the [Flow background process](#toc-run-the-flow-background-process) with `flow`. +- [Determine](#toc-prepare-your-code-for-flow) which files Flow will monitor with `// @flow`. +- [Write Flow code](#toc-write-flow-code) for your project. +- [Check your code](#toc-check-your-code) for type errors. + +### Initialize Your Project {#toc-initialize-your-project} + +Preparing a project for Flow requires only one command: + +```sh +flow init +``` + +Run this command at the top level of your project to create one, empty file called [`.flowconfig`](../config/). At its most basic level, `.flowconfig` tells the Flow background process the root of where to begin checking Flow code for errors. + +And that is it. Your project is now Flow-enabled. + +> It is common to have an empty `.flowconfig` file for your project. However, you can [configure and customize Flow](../config/) in many ways through options available to be added to `.flowconfig`. + +### Run the Flow Background Process {#toc-run-the-flow-background-process} + +The core benefit to Flow is its ability to quickly check your code for errors. Once you have enabled your project for Flow, you can start the process that allows Flow to check your code incrementally and with great speed. + +```sh +flow status +``` + +This command first starts a background process that will check all [Flow files](#toc-prepare-your-code-for-flow) for errors. The background process continues running, monitoring changes to your code and checking those changes incrementally for errors. + +> You can also type `flow` to accomplish the same effect as `status` is the default flag to the `flow` binary. + +> Only one background process will be running at any given time, so if you run `flow status` multiple times, it will use the same process. + +> To stop the background process, run `flow stop`. + +### Prepare Your Code for Flow {#toc-prepare-your-code-for-flow} + +The Flow background process monitors all Flow files. However, how does it know which files are Flow files and, thus, should be checked? Placing the following **before any code** in a JavaScript file is the flag the process uses to answer that question. + +```js flow-check +// @flow +``` + +This flag is in the form of a normal JavaScript comment annotated with `@flow`. The Flow background process gathers all the files with this flag and uses the type information available from all of these files to ensure consistency and error free programming. + +> You can also use the form `/* @flow */` for the flag as well. + +> For files in your project without this flag, the Flow background process skips and ignores the code (unless you call `flow check --all`, which is beyond the scope of basic usage). + +### Write Flow Code {#toc-write-flow-code} + +Now that all the setup and initialization is complete, you are ready to write actual Flow code. For each file that you have flagged with `// @flow`, you now have the full power of Flow and its type-checking available to you. Here is an example Flow file: + +```js flow-check +function foo(x: ?number): string { + if (x) { + return x; + } + return "default string"; +} +``` + +Notice the types added to the parameter of the function along with a return type at the end of the function. You might be able to tell from looking at this code that there is an error in the return type since the function can also return a `number`. However, you do not need to visually inspect the code since the Flow background process will be able to catch this error for you when you [check your code](#toc-check-your-code). + +### Check Your Code {#toc-check-your-code} + +The great thing about Flow is that you can get near real-time feedback on the state of your code. At any point that you want to check for errors, just run: + +```sh +# equivalent to `flow status` +flow +``` + +The first time this is run, the [Flow background process](#toc-run-flow-background-process) will be spawned and all of your Flow files will be checked. Then, as you continue to iterate on your project, the background process will continuously monitor your code such that when you run `flow` again, the updated result will be near instantaneous. + +For the [code above](#toc-write-flow-code), running `flow` will yield: + +```sh +3:12-3:12: Cannot return `x` because number is incompatible with string. [incompatible-return] +``` diff --git a/assets/css/styles.edb45c3d.css b/assets/css/styles.edb45c3d.css new file mode 100644 index 00000000000..ff8d1e0ebe4 --- /dev/null +++ b/assets/css/styles.edb45c3d.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}.monaco-editor,html{-webkit-text-size-adjust:100%}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:rgba(0,0,0,.05);--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 rgba(0,0,0,.1);--ifm-global-shadow-md:0 5px 40px rgba(0,0,0,.2);--ifm-global-shadow-tl:0 12px 28px 0 rgba(0,0,0,.2),0 2px 4px 0 rgba(0,0,0,.1);--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:rgba(0,0,0,.03);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#dc2319;--ifm-color-primary-dark:#dc2319;--ifm-color-primary-darker:#dc2319;--ifm-color-primary-darkest:#dc2319;--ifm-color-primary-light:#dc2319;--ifm-color-primary-lighter:#dc2319;--ifm-color-primary-lightest:#dc2319;--ifm-navbar-height:3.5rem;--ifm-navbar-padding-vertical:0;--ifm-code-font-size:95%;--flow-yellow:#e8bd36;--flow-gray-darker:#384048;--flow-gray-darkest:#2d343a;--flow-green:#9cd732;--flow-red:#dc2319;--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:transparent;--docusaurus-collapse-button-bg-hover:rgba(0,0,0,.1);--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12);--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base);--sash-size:4px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:transparent}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base)}body{word-wrap:break-word}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.tabItem_LNqP{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6,.featureDecorationRise_hJ0D:after{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid rgba(0,0,0,.1);border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}.monaco-editor .editor-widget input,.monaco-hover .hover-contents a.code-link,.monaco-hover .hover-contents a.code-link:hover,.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator,a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}.container_lyt7,.container_lyt7>svg,.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label,img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul,.tabList__CuJ{margin-bottom:var(--ifm-leading)}.markdown li{word-wrap:break-word}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.monaco-action-bar.vertical,.text--left{text-align:left}.text--justify{text-align:justify}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .inline-deleted-margin-view-zone,.monaco-inputbox-container,.text--right,.tryEditorConfigInputCell_xR5n{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.featureHeading_TLGJ,.featuretteHeading_haRC,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.monaco-description-button .monaco-button-description,.monaco-editor .ghost-text-decoration,.monaco-editor .suggest-preview-text,.monaco-icon-label.italic:after,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.text--italic{font-style:italic}.monaco-editor .peekview-widget .head .peekview-title .filename,.monaco-editor .peekview-widget .head .peekview-title .meta,.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:rgba(53,120,229,.15);--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:rgba(235,237,240,.15);--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:rgba(0,164,0,.15);--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:rgba(84,199,236,.15);--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:rgba(255,186,0,.15);--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:rgba(250,56,62,.15);--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{-webkit-text-decoration-color:var(--ifm-alert-border-color);text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after,.flowErrorUnderlineLeftPadding_BT3g,.monaco-action-bar.vertical .actions-container,.monaco-editor .mtkz,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore,.monaco-editor .view-zones .view-lines .view-line span,.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs__link:-webkit-any-link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs__link:any-link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:transparent;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button,.quick-input-box{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;pointer-events:none;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor transparent;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child,.monaco-hover .code:first-child,.monaco-hover li>ul,.monaco-hover p:first-child,.monaco-hover ul:first-child,.quick-input-widget.hidden-input .quick-input-list{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child,.monaco-hover .code:last-child,.monaco-hover li>p,.monaco-hover p:last-child,.monaco-hover ul:last-child,.tabItem_Ymn6>:last-child{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title,.title_xvU1{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:-webkit-sticky;position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.monaco-editor .find-widget textarea,.monaco-hover p,.navbar__items--center .navbar__brand{margin:0}.monaco-editor .suggest-details>.monaco-scrollable-element,.monaco-table>.monaco-list,.monaco-tree-type-filter-input,.navbar__items--center+.navbar__items--right,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:hsla(0,0%,100%,.1);--ifm-navbar-search-input-placeholder-color:hsla(0,0%,100%,.5);color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:hsla(0,0%,100%,.05);--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);position:fixed;transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:rgba(0,0,0,.6);position:fixed;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover,.sidebarItemLink_mo7H:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto;padding-left:0}.tabs__item{border-bottom:3px solid transparent;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:hsla(0,0%,100%,.05);--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:hsla(0,0%,100%,.1);--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:hsla(0,0%,100%,.07);--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}.docusaurus-highlight-code-line{background-color:#484d5b;display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.navbar,.navbar-sidebar{background-color:#2d343a}.navbar .menu__link,.navbar .navbar-sidebar__back,.navbar .navbar__link,.navbar .navbar__toggle{color:hsla(0,0%,100%,.7)}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container,.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before,.monaco-list>.monaco-scrollable-element,.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view,.monaco-tl-contents,.monaco-tl-twistie,.navbar__brand,.navbar__logo,body,html{height:100%}.navbar .navbar__icon{padding:0 1rem 0 0}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description,.navbar .navbar__icon:hover,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label,.navbar .navbar__icon:active{opacity:.7}.navbar .navbar__icon:before{background-color:hsla(0,0%,100%,.7);content:"";display:flex;height:20px;width:21px}.navbar .twitter__link:before{background:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0idHdpdHRlciIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjUwIDIwMy4xIj48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9Ii43IiBkPSJNNzguNiAyMDMuMWM5NC4zIDAgMTQ1LjktNzguMiAxNDUuOS0xNDUuOSAwLTIuMiAwLTQuNC0uMS02LjYgMTAtNy4zIDE4LjctMTYuMyAyNS42LTI2LjUtOS40IDQuMS0xOS4zIDYuOS0yOS41IDguMSAxMC43LTYuNCAxOC43LTE2LjUgMjIuNS0yOC40LTEwLjEgNi0yMS4xIDEwLjItMzIuNiAxMi40QzE5MS00LjUgMTU4LjUtNS41IDEzNy44IDE0Yy0xMy4zIDEyLjUtMTkgMzEuMi0xNC44IDQ5QzgxLjkgNjAuOSA0My40IDQxLjQgMTcuNCA5LjQgMy44IDMyLjggMTAuNyA2Mi44IDMzLjMgNzcuOGMtOC4yLS4yLTE2LjEtMi40LTIzLjMtNi40di42YzAgMjQuNCAxNy4yIDQ1LjQgNDEuMiA1MC4zLTcuNiAyLjEtMTUuNSAyLjQtMjMuMi45IDYuNyAyMC45IDI2IDM1LjIgNDcuOSAzNS42LTE4LjIgMTQuMy00MC42IDIyLTYzLjcgMjItNC4xIDAtOC4yLS4zLTEyLjItLjcgMjMuNSAxNS4xIDUwLjcgMjMgNzguNiAyMyIvPjwvc3ZnPg==) no-repeat}.navbar .stackoverflow__link:before{background:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0ic3RhY2tvdmVyZmxvdyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzIuNiAzMS44IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzMi42IDMxLjgiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtb3BhY2l0eT0iLjciIGQ9Ik0yNS40IDI5di04LjVoMi45djExLjNIMi44VjIwLjVoMi44VjI5eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtb3BhY2l0eT0iLjciIGQ9Im04LjcgMTkuNyAxMy45IDIuOS42LTIuOC0xMy45LTIuOS0uNiAyLjh6bTEuOC02LjcgMTIuOSA2IDEuMi0yLjYtMTIuOS02LTEuMiAyLjZ6bTMuNi02LjNMMjUgMTUuOGwxLjgtMi4yLTEwLjktOS0xLjggMi4xek0yMS4yIDBsLTIuMyAxLjcgOC40IDExLjQgMi4zLTEuN0wyMS4yIDB6TTguNCAyNi4xaDE0LjJ2LTIuOEg4LjR2Mi44eiIvPjwvc3ZnPg==) no-repeat}.navbar .github__link:before{background:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iZ2l0aHViIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMi42IDMxLjgiPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtb3BhY2l0eT0iLjciIGQ9Ik0xNi4zIDBDNy4zIDAgMCA3LjMgMCAxNi4zYzAgNy4yIDQuNyAxMy4zIDExLjEgMTUuNS44LjEgMS4xLS40IDEuMS0uOHYtMi44Yy00LjUgMS01LjUtMi4yLTUuNS0yLjItLjctMS45LTEuOC0yLjQtMS44LTIuNC0xLjUtMSAuMS0xIC4xLTEgMS42LjEgMi41IDEuNyAyLjUgMS43IDEuNSAyLjUgMy44IDEuOCA0LjcgMS40LjEtMS4xLjYtMS44IDEtMi4yLTMuNi0uNC03LjQtMS44LTcuNC04LjEgMC0xLjguNi0zLjIgMS43LTQuNC0uMS0uMy0uNy0yIC4yLTQuMiAwIDAgMS40LS40IDQuNSAxLjcgMS4zLS40IDIuNy0uNSA0LjEtLjUgMS40IDAgMi44LjIgNC4xLjUgMy4xLTIuMSA0LjUtMS43IDQuNS0xLjcuOSAyLjIuMyAzLjkuMiA0LjMgMSAxLjEgMS43IDIuNiAxLjcgNC40IDAgNi4zLTMuOCA3LjYtNy40IDggLjYuNSAxLjEgMS41IDEuMSAzVjMxYzAgLjQuMy45IDEuMS44IDYuNS0yLjIgMTEuMS04LjMgMTEuMS0xNS41QzMyLjYgNy4zIDI1LjMgMCAxNi4zIDB6Ii8+PC9zdmc+) no-repeat}.navbar-sidebar .navbar__icon{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.codeBlockContent_Ttwj:hover>.copyButton_Szi8,.codeBlockTitle_bovw:hover+.codeBlockContent_Ttwj .copyButton_Szi8,.copyButton_Szi8:focus,.footerLogoLink_BH7S:hover,.hash-link:focus,.minimap.autohide:hover,.monaco-diff-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-diff-editor.hc-light .delete-sign,.monaco-diff-editor.hc-light .insert-sign,.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays:hover .codicon,.monaco-editor .minimap.slider-mouseover .minimap-slider.active,.monaco-editor .minimap.slider-mouseover:hover .minimap-slider,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover,.monaco-editor.hc-black .delete-sign,.monaco-editor.hc-black .insert-sign,.monaco-editor.hc-light .delete-sign,.monaco-editor.hc-light .insert-sign,.navbar-sidebar .navbar__icon:active,.navbar-sidebar .navbar__icon:hover,.quick-input-list .quick-input-list-rows .monaco-highlighted-label span,:hover>.hash-link{opacity:1}.rounded{border-radius:.25rem}.version{border-radius:6px;display:inline-block;font-size:12px;padding:3px 5px;vertical-align:middle}.version.added{background:var(--flow-green);color:#fff}.version.removed{background:var(--flow-red);color:#fff}.gh-btn{position:relative;vertical-align:middle}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.codicon[class*=codicon-],.featureHero_TZRQ,.monaco-icon-label:before{-webkit-font-smoothing:antialiased}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite l;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}.loader_vvXV{margin-top:2rem}.search-result-match{background:rgba(255,215,142,.25);color:var(--docsearch-hit-color);padding:.09em 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:hsla(0,0%,100%,.05);--docusaurus-collapse-button-bg-hover:hsla(0,0%,100%,.1)}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.sidebar_re4s{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:-webkit-sticky;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size);font-weight:var(--ifm-font-weight-bold)}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.imgFluid_d2uQ{height:auto;max-width:100%}.heroBanner_UJJx{overflow:hidden;text-align:center}.feature_nI3B,.heroBanner_UJJx{padding:4rem 0;position:relative}.feature_nI3B{align-items:center;width:100%}.DocSearch-Button,.DocSearch-Button-Container{align-items:center;display:flex}.featureHero_TZRQ{background:var(--flow-gray-darker);color:#fff;line-height:1.1;margin-left:auto;margin-right:auto;overflow:hidden;padding:7rem 0}.feature_nI3B.featureHero_TZRQ .featureButton_Npcu{border-color:hsla(0,0%,100%,.2);color:#fff}.featureHero_TZRQ .featureHeading_TLGJ{color:var(--flow-yellow);margin-bottom:2rem;text-shadow:1px 1px #2d343a,2px 2px #2d343a,3px 3px #2d343a,4px 4px #2d343a,5px 5px #2d343a,6px 6px #2d343a,7px 7px #2d343a,8px 8px #2d343a,9px 9px #2d343a,10px 10px #2d343a,11px 11px #2d343a,12px 12px #2d343a,13px 13px #2d343a,14px 14px #2d343a,15px 15px #2d343a,16px 16px #2d343a,17px 17px #2d343a,18px 18px #2d343a,19px 19px #2d343a,20px 20px #2d343a,21px 21px #2d343a,22px 22px #2d343a,23px 23px #2d343a,24px 24px #2d343a,25px 25px #2d343a,26px 26px #2d343a,27px 27px #2d343a,28px 28px #2d343a,29px 29px #2d343a,30px 30px #2d343a,31px 31px #2d343a,32px 32px #2d343a,33px 33px #2d343a,34px 34px #2d343a,35px 35px #2d343a,36px 36px #2d343a,37px 37px #2d343a,38px 38px #2d343a,39px 39px #2d343a,40px 40px #2d343a,41px 41px #2d343a,42px 42px #2d343a,43px 43px #2d343a,44px 44px #2d343a,45px 45px #2d343a,46px 46px #2d343a,47px 47px #2d343a,48px 48px #2d343a,49px 49px #2d343a,50px 50px #2d343a,51px 51px #2d343a,52px 52px #2d343a,53px 53px #2d343a,54px 54px #2d343a,55px 55px #2d343a,56px 56px #2d343a,57px 57px #2d343a,58px 58px #2d343a,59px 59px #2d343a,60px 60px #2d343a,61px 61px #2d343a,62px 62px #2d343a,63px 63px #2d343a,64px 64px #2d343a,65px 65px #2d343a,66px 66px #2d343a,67px 67px #2d343a,68px 68px #2d343a,69px 69px #2d343a,70px 70px #2d343a,71px 71px #2d343a,72px 72px #2d343a,73px 73px #2d343a,74px 74px #2d343a,75px 75px #2d343a,76px 76px #2d343a,77px 77px #2d343a,78px 78px #2d343a,79px 79px #2d343a,80px 80px #2d343a,81px 81px #2d343a,82px 82px #2d343a,83px 83px #2d343a,84px 84px #2d343a,85px 85px #2d343a,86px 86px #2d343a,87px 87px #2d343a,88px 88px #2d343a,89px 89px #2d343a,90px 90px #2d343a,91px 91px #2d343a,92px 92px #2d343a,93px 93px #2d343a,94px 94px #2d343a,95px 95px #2d343a,96px 96px #2d343a,97px 97px #2d343a,98px 98px #2d343a,99px 99px #2d343a,100px 100px #2d343a,101px 101px #2d343a,102px 102px #2d343a,103px 103px #2d343a,104px 104px #2d343a,105px 105px #2d343a,106px 106px #2d343a,107px 107px #2d343a,108px 108px #2d343a,109px 109px #2d343a,110px 110px #2d343a,111px 111px #2d343a,112px 112px #2d343a,113px 113px #2d343a,114px 114px #2d343a,115px 115px #2d343a,116px 116px #2d343a,117px 117px #2d343a,118px 118px #2d343a,119px 119px #2d343a,120px 120px #2d343a,121px 121px #2d343a,122px 122px #2d343a,123px 123px #2d343a,124px 124px #2d343a,125px 125px #2d343a,126px 126px #2d343a,127px 127px #2d343a,128px 128px #2d343a,129px 129px #2d343a,130px 130px #2d343a,131px 131px #2d343a,132px 132px #2d343a,133px 133px #2d343a,134px 134px #2d343a,135px 135px #2d343a,136px 136px #2d343a,137px 137px #2d343a,138px 138px #2d343a,139px 139px #2d343a,140px 140px #2d343a,141px 141px #2d343a,142px 142px #2d343a,143px 143px #2d343a,144px 144px #2d343a,145px 145px #2d343a,146px 146px #2d343a,147px 147px #2d343a,148px 148px #2d343a,149px 149px #2d343a,150px 150px #2d343a,151px 151px #2d343a,152px 152px #2d343a,153px 153px #2d343a,154px 154px #2d343a,155px 155px #2d343a,156px 156px #2d343a,157px 157px #2d343a,158px 158px #2d343a,159px 159px #2d343a,160px 160px #2d343a,161px 161px #2d343a,162px 162px #2d343a,163px 163px #2d343a,164px 164px #2d343a,165px 165px #2d343a,166px 166px #2d343a,167px 167px #2d343a,168px 168px #2d343a,169px 169px #2d343a,170px 170px #2d343a,171px 171px #2d343a,172px 172px #2d343a,173px 173px #2d343a,174px 174px #2d343a,175px 175px #2d343a,176px 176px #2d343a,177px 177px #2d343a,178px 178px #2d343a,179px 179px #2d343a,180px 180px #2d343a,181px 181px #2d343a,182px 182px #2d343a,183px 183px #2d343a,184px 184px #2d343a,185px 185px #2d343a,186px 186px #2d343a,187px 187px #2d343a,188px 188px #2d343a,189px 189px #2d343a,190px 190px #2d343a,191px 191px #2d343a,192px 192px #2d343a,193px 193px #2d343a,194px 194px #2d343a,195px 195px #2d343a,196px 196px #2d343a,197px 197px #2d343a,198px 198px #2d343a,199px 199px #2d343a,200px 200px #2d343a,201px 201px #2d343a,202px 202px #2d343a,203px 203px #2d343a,204px 204px #2d343a,205px 205px #2d343a,206px 206px #2d343a,207px 207px #2d343a,208px 208px #2d343a,209px 209px #2d343a,210px 210px #2d343a,211px 211px #2d343a,212px 212px #2d343a,213px 213px #2d343a,214px 214px #2d343a,215px 215px #2d343a,216px 216px #2d343a,217px 217px #2d343a,218px 218px #2d343a,219px 219px #2d343a,220px 220px #2d343a,221px 221px #2d343a,222px 222px #2d343a,223px 223px #2d343a,224px 224px #2d343a,225px 225px #2d343a,226px 226px #2d343a,227px 227px #2d343a,228px 228px #2d343a,229px 229px #2d343a,230px 230px #2d343a,231px 231px #2d343a,232px 232px #2d343a,233px 233px #2d343a,234px 234px #2d343a,235px 235px #2d343a,236px 236px #2d343a,237px 237px #2d343a,238px 238px #2d343a,239px 239px #2d343a,240px 240px #2d343a,241px 241px #2d343a,242px 242px #2d343a,243px 243px #2d343a,244px 244px #2d343a,245px 245px #2d343a,246px 246px #2d343a,247px 247px #2d343a,248px 248px #2d343a,249px 249px #2d343a,250px 250px #2d343a,251px 251px #2d343a,252px 252px #2d343a,253px 253px #2d343a,254px 254px #2d343a,255px 255px #2d343a,256px 256px #2d343a,257px 257px #2d343a,258px 258px #2d343a,259px 259px #2d343a,260px 260px #2d343a,261px 261px #2d343a,262px 262px #2d343a,263px 263px #2d343a,264px 264px #2d343a,265px 265px #2d343a,266px 266px #2d343a,267px 267px #2d343a,268px 268px #2d343a,269px 269px #2d343a,270px 270px #2d343a,271px 271px #2d343a,272px 272px #2d343a,273px 273px #2d343a,274px 274px #2d343a,275px 275px #2d343a,276px 276px #2d343a,277px 277px #2d343a,278px 278px #2d343a,279px 279px #2d343a,280px 280px #2d343a,281px 281px #2d343a,282px 282px #2d343a,283px 283px #2d343a,284px 284px #2d343a,285px 285px #2d343a,286px 286px #2d343a,287px 287px #2d343a,288px 288px #2d343a,289px 289px #2d343a,290px 290px #2d343a,291px 291px #2d343a,292px 292px #2d343a,293px 293px #2d343a,294px 294px #2d343a,295px 295px #2d343a,296px 296px #2d343a,297px 297px #2d343a,298px 298px #2d343a,299px 299px #2d343a,300px 300px #2d343a,301px 301px #2d343a,302px 302px #2d343a,303px 303px #2d343a,304px 304px #2d343a,305px 305px #2d343a,306px 306px #2d343a,307px 307px #2d343a,308px 308px #2d343a,309px 309px #2d343a,310px 310px #2d343a,311px 311px #2d343a,312px 312px #2d343a,313px 313px #2d343a,314px 314px #2d343a,315px 315px #2d343a,316px 316px #2d343a,317px 317px #2d343a,318px 318px #2d343a,319px 319px #2d343a,320px 320px #2d343a,321px 321px #2d343a,322px 322px #2d343a,323px 323px #2d343a,324px 324px #2d343a,325px 325px #2d343a,326px 326px #2d343a,327px 327px #2d343a,328px 328px #2d343a,329px 329px #2d343a,330px 330px #2d343a,331px 331px #2d343a,332px 332px #2d343a,333px 333px #2d343a,334px 334px #2d343a,335px 335px #2d343a,336px 336px #2d343a,337px 337px #2d343a,338px 338px #2d343a,339px 339px #2d343a,340px 340px #2d343a,341px 341px #2d343a,342px 342px #2d343a,343px 343px #2d343a,344px 344px #2d343a,345px 345px #2d343a,346px 346px #2d343a,347px 347px #2d343a,348px 348px #2d343a,349px 349px #2d343a,350px 350px #2d343a,351px 351px #2d343a,352px 352px #2d343a,353px 353px #2d343a,354px 354px #2d343a,355px 355px #2d343a,356px 356px #2d343a,357px 357px #2d343a,358px 358px #2d343a,359px 359px #2d343a,360px 360px #2d343a,361px 361px #2d343a,362px 362px #2d343a,363px 363px #2d343a,364px 364px #2d343a,365px 365px #2d343a,366px 366px #2d343a,367px 367px #2d343a,368px 368px #2d343a,369px 369px #2d343a,370px 370px #2d343a,371px 371px #2d343a,372px 372px #2d343a,373px 373px #2d343a,374px 374px #2d343a,375px 375px #2d343a,376px 376px #2d343a,377px 377px #2d343a,378px 378px #2d343a,379px 379px #2d343a,380px 380px #2d343a,381px 381px #2d343a,382px 382px #2d343a,383px 383px #2d343a,384px 384px #2d343a,385px 385px #2d343a,386px 386px #2d343a,387px 387px #2d343a,388px 388px #2d343a,389px 389px #2d343a,390px 390px #2d343a,391px 391px #2d343a,392px 392px #2d343a,393px 393px #2d343a,394px 394px #2d343a,395px 395px #2d343a,396px 396px #2d343a,397px 397px #2d343a,398px 398px #2d343a,399px 399px #2d343a,400px 400px #2d343a,401px 401px #2d343a,402px 402px #2d343a,403px 403px #2d343a,404px 404px #2d343a,405px 405px #2d343a,406px 406px #2d343a,407px 407px #2d343a,408px 408px #2d343a,409px 409px #2d343a,410px 410px #2d343a,411px 411px #2d343a,412px 412px #2d343a,413px 413px #2d343a,414px 414px #2d343a,415px 415px #2d343a,416px 416px #2d343a,417px 417px #2d343a,418px 418px #2d343a,419px 419px #2d343a,420px 420px #2d343a,421px 421px #2d343a,422px 422px #2d343a,423px 423px #2d343a,424px 424px #2d343a,425px 425px #2d343a,426px 426px #2d343a,427px 427px #2d343a,428px 428px #2d343a,429px 429px #2d343a,430px 430px #2d343a,431px 431px #2d343a,432px 432px #2d343a,433px 433px #2d343a,434px 434px #2d343a,435px 435px #2d343a,436px 436px #2d343a,437px 437px #2d343a,438px 438px #2d343a,439px 439px #2d343a,440px 440px #2d343a,441px 441px #2d343a,442px 442px #2d343a,443px 443px #2d343a,444px 444px #2d343a,445px 445px #2d343a,446px 446px #2d343a,447px 447px #2d343a,448px 448px #2d343a,449px 449px #2d343a,450px 450px #2d343a,451px 451px #2d343a,452px 452px #2d343a,453px 453px #2d343a,454px 454px #2d343a,455px 455px #2d343a,456px 456px #2d343a,457px 457px #2d343a,458px 458px #2d343a,459px 459px #2d343a,460px 460px #2d343a,461px 461px #2d343a,462px 462px #2d343a,463px 463px #2d343a,464px 464px #2d343a,465px 465px #2d343a,466px 466px #2d343a,467px 467px #2d343a,468px 468px #2d343a,469px 469px #2d343a,470px 470px #2d343a,471px 471px #2d343a,472px 472px #2d343a,473px 473px #2d343a,474px 474px #2d343a,475px 475px #2d343a,476px 476px #2d343a,477px 477px #2d343a,478px 478px #2d343a,479px 479px #2d343a,480px 480px #2d343a,481px 481px #2d343a,482px 482px #2d343a,483px 483px #2d343a,484px 484px #2d343a,485px 485px #2d343a,486px 486px #2d343a,487px 487px #2d343a,488px 488px #2d343a,489px 489px #2d343a,490px 490px #2d343a,491px 491px #2d343a,492px 492px #2d343a,493px 493px #2d343a,494px 494px #2d343a,495px 495px #2d343a,496px 496px #2d343a,497px 497px #2d343a,498px 498px #2d343a,499px 499px #2d343a,500px 500px #2d343a}.featureDark_a6DN .featureHeading_TLGJ,.featureHero_TZRQ .featureHeading_TLGJ span{color:#fff}.featureDecoration__xwc{position:absolute;width:10%;z-index:1}.featureDecoration__xwc:after,.featureDecoration__xwc:before{border:2rem solid red;content:"";display:block;position:absolute;z-index:0}.codicon-wrench-subaction,.featureDecoration__xwc:after{opacity:.5}.featureDecorationRise_hJ0D{bottom:100%;left:0}.featureDecorationRise_hJ0D:after,.featureDecorationRise_hJ0D:before{border-left:0!important;border-right-color:transparent!important;border-top:0!important;bottom:0;left:0}.featureDecorationDrop_I6lf{right:0;top:100%}.featureDecorationDrop_I6lf:after,.featureDecorationDrop_I6lf:before{border-bottom-width:0!important;border-left-color:transparent!important;border-right-width:0!important;right:0;top:0}.featureDecorationDrop_I6lf:after{margin-right:50%}.feature_nI3B .featureButton_Npcu{border:4px solid transparent;display:block;font-size:1.6rem;font-weight:800;letter-spacing:.04em;line-height:1;margin-bottom:1rem;padding:1rem 1.25rem;position:relative;text-align:center;text-transform:uppercase;vertical-align:middle}.feature_nI3B .featureButton_Npcu:active,.feature_nI3B .featureButton_Npcu:focus,.feature_nI3B .featureButton_Npcu:hover{background-color:var(--flow-yellow);border-color:var(--flow-yellow);color:var(--flow-gray-darkest);text-decoration:none}.featurette_bF5V{margin-bottom:2rem;margin-top:2rem}.featureSmall_lp6d{padding:4rem 0 3rem}.featureHeading_TLGJ{font-size:2.5rem;font-weight:900;position:relative}.featuretteHeading_haRC{color:#55595c;font-weight:900}.featureImage_yA8i{height:200px;width:200px}.featureText_jiyO{font-size:1.3rem}.featuretteText_Qk9t{color:#55595c;font-size:1.1rem}.featureGray_eU5K{background:#eee}.featureGray_eU5K .featureHeading_TLGJ,.featureLight_Ee7O .featureHeading_TLGJ{color:#444}.featureGray_eU5K .featureText_jiyO,.featureLight_Ee7O .featureText_jiyO{color:#666}.code_TD_d,.featureLight_Ee7O{background:#fff}.featureLight_Ee7O .featureDecoration__xwc:after,.featureLight_Ee7O .featureDecoration__xwc:before{border-color:#fff}.featureDark_a6DN{background:var(--flow-gray-darkest)}.featureDark_a6DN .featureText_jiyO{color:#ccc}.featureDark_a6DN .featureDecoration__xwc:after,.featureDark_a6DN .featureDecoration__xwc:before{border-color:var(--flow-gray-darkest)}.featureYellow_kO_R{background:var(--flow-yellow);text-align:center}.featureYellow_kO_R .featureHeading_TLGJ{color:var(--flow-gray-darkest)}.featureYellow_kO_R .featureButton_Npcu{background:#fff;border-color:#fff;color:var(--flow-gray-darkest)}.featureYellow_kO_R .featureButton_Npcu:active,.featureYellow_kO_R .featureButton_Npcu:focus,.featureYellow_kO_R .featureButton_Npcu:hover{background-color:var(--flow-gray-darkest);border-color:var(--flow-gray-darkest);color:var(--flow-yellow);text-decoration:none}.featureYellow_kO_R .featureDecoration__xwc:after,.featureYellow_kO_R .featureDecoration__xwc:before{border-color:var(--flow-yellow)}.featureHeroText_Vxrh{margin-top:1.5rem;position:relative}.releaseVersion_sUFB{color:#fff;text-decoration:underline}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Input,.DocSearch-Link{-webkit-appearance:none;font:inherit}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *,.monaco-editor .bracket-match{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a,.monaco-editor .codelens-decoration>a{text-decoration:none}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:0 0;border:0;color:var(--docsearch-text-color);flex:1;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Hit-action-button,.DocSearch-Reset{-webkit-appearance:none;border:0;cursor:pointer}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards b;appearance:none;background:none;border-radius:50%;color:var(--docsearch-icon-color);padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:focus{outline:0}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:0 0}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul,.errors_L9uf ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a,.cta_wrapper_gL2E,.monaco-action-bar .action-item.action-dropdown-item,.monaco-editor .find-widget.replaceToggled>.replace-part,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right,.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar,.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:-webkit-sticky;position:sticky;top:0;z-index:10}.DocSearch-Footer,.editorContainer_Bd0o,.monaco-findInput,.quick-input-progress.monaco-progress-container{position:relative}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action,.quick-input-action,.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border-radius:50%;color:inherit;padding:2px}.monaco-editor .monaco-editor-overlaymessage.below .anchor.below,.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top,.monaco-list-type-filter-message:empty,svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon,.monaco-action-bar .action-item .codicon,.monaco-action-bar .action-item .icon,.monaco-action-bar.vertical .action-item,.tocCollapsibleContent_vkbj a{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Prefill,.monaco-editor .parameter-hints-widget .signature .parameter.active,.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight,.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file,.monaco-table-th,.quick-input-list .monaco-highlighted-label .highlight,.tab_i50q,.tryEditorConfigLabel_ngPW{font-weight:700}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key,.quick-input-list .quick-input-list-rows>.quick-input-list-row,.quick-input-titlebar{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container{z-index:calc(var(--ifm-z-index-fixed) + 1)}.toolbar_aOgB{background:#fff;border-bottom:1px solid #ddd;display:flex;font-size:14px}.tryEditorConfig_b_Gg{background-color:#fff;height:calc(100vh - var(--ifm-navbar-height) - 40px);overflow:auto;position:absolute;width:100%;z-index:10}.tryEditorConfig_b_Gg table{display:table;margin-bottom:0;width:100%}.tryEditorConfig_b_Gg tr:first-child{border:none}.tryEditorConfig_b_Gg td{border-left:none;border-right:none;border-top:none}.tryEditorConfig_b_Gg h3{margin-bottom:5px;margin-top:5px}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element,.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label,.monaco-editor .tokens-inspect-widget .tm-metadata-table,.monaco-progress-container.discrete.done .progress-bit,.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view,.tryEditorConfigLabelCell_xSL2{width:100%}.tryEditorConfigLabelCell_xSL2 a{padding-left:5px}.resetBanner_Yek_,.version_hqjX{align-items:center;display:flex;gap:10px;justify-content:flex-end;margin-left:auto;margin-right:10px}.tryEditor_yXoz{display:flex;flex:1;height:calc(100vh - var(--ifm-navbar-height))}.code_TD_d,.results_sFhT{flex:1;width:50%}.results_sFhT{background:#f7f7f7;border-left:1px solid #ddd;font-size:12px;position:relative}.resultBody_oQwQ{display:flex;flex:1;height:calc(100vh - var(--ifm-navbar-height) - 40px);overflow:auto}.tabs_UvjV{display:flex;list-style:none;margin:0;padding:0}.tab_i50q{border-right:1px solid #ddd;cursor:pointer;padding:7px 15px}.versionWarning_jUOj{color:red}.selectedTab_lDqe{background:#fff;border-bottom:2px solid #404040;margin-bottom:-1px}.loader_pHWQ{display:flex;justify-content:center;margin-top:10px}@keyframes a{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.loader_pHWQ>div{animation:1.4s ease-in-out infinite both a;background-color:#ccc;border-radius:100%;height:14px;width:14px}.loader_pHWQ>.bounce1__odZ{animation-delay:-.32s}.loader_pHWQ>.bounce2_a9T1{animation-delay:-.16s}.resultBody_oQwQ{margin-bottom:0;padding:7px 10px}.errors_L9uf li+li{border-top:1px solid #eee;margin-top:10px;padding-top:10px}.errors_L9uf li ul li,.errors_L9uf li ul li+li{border:none;margin:inherit;padding:inherit;padding-left:20px}.monaco-editor .arrow-revert-change:hover,.monaco-editor .codelens-decoration>a:hover,.monaco-editor .codelens-decoration>a:hover .codicon:before,.monaco-editor .contentWidgets .codicon-light-bulb:hover,.monaco-editor .contentWidgets .codicon-lightbulb-autofix:hover,.monaco-editor .detected-link-active,.monaco-editor .margin-view-zones .lightbulb-glyph:hover,.monaco-editor .marker-widget .descriptioncontainer .filename,.monaco-editor .parameter-hints-widget .docs .markdown-docs a:hover,.monaco-editor .peekview-widget .head .peekview-title.clickable,.monaco-hover a:hover,.msgHighlight_M1rB,.msgType_AmYR{cursor:pointer}.monaco-editor .accessibilityHelpWidget{overflow:scroll;padding:10px;vertical-align:middle}.monaco-aria-container{left:-999em}.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@keyframes b{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:.15s ease-out b}@keyframes c{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:.1s ease-out c}.monaco-editor .monaco-editor-overlaymessage .message{background-color:var(--vscode-inputValidation-infoBackground);border:1px solid var(--vscode-inputValidation-infoBorder);color:var(--vscode-inputValidation-infoForeground);padding:1px 4px}.monaco-editor.hc-black .monaco-editor-overlaymessage .message,.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-black .suggest-widget,.monaco-editor.hc-light .monaco-editor-overlaymessage .message,.monaco-editor.hc-light .suggest-details,.monaco-editor.hc-light .suggest-widget{border-width:2px}.monaco-editor .monaco-editor-overlaymessage .anchor{border:8px solid transparent;height:0!important;position:absolute;width:0!important;z-index:1000}.monaco-editor .monaco-editor-overlaymessage .anchor.top{border-bottom-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage .anchor.below{border-top-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.monaco-list,.monaco-split-view2>.monaco-scrollable-element>.split-view-container{height:100%;position:relative;white-space:nowrap;width:100%}.monaco-editor .suggest-widget .monaco-list,.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines,.monaco-list.mouse-support{user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-inputbox>.ibwrapper,.monaco-list-rows,.monaco-split-view2{height:100%;position:relative;width:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{min-width:100%;width:auto}.monaco-list-row{box-sizing:border-box;overflow:hidden;position:absolute;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-multiple,.monaco-list.selection-single{outline:0!important}.monaco-drag-image{border-radius:10px;display:inline-block;font-size:12px;padding:1px 7px;position:absolute;z-index:1000}.monaco-list-type-filter-message{box-sizing:border-box;height:100%;left:0;opacity:.7;padding:40px 1em 1em;pointer-events:none;position:absolute;text-align:center;top:0;white-space:normal;width:100%}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{background:0 0;opacity:1;transition:opacity .1s linear}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{display:none;position:absolute}.monaco-scrollable-element>.shadow.top{display:block;height:3px;left:3px;top:0;width:100%}.monaco-scrollable-element>.shadow.left{display:block;height:100%;left:0;top:3px;width:3px}.monaco-scrollable-element>.shadow.top-left-corner{display:block;height:3px;left:0;top:0;width:3px}.codeActionMenuWidget{background-color:var(--vscode-menu-background);border-color:none;border-radius:5px;border-width:0;box-shadow:0 2px 8px rgb(0,0,0,16%);color:var(--vscode-menu-foreground);display:block;font-size:13px;min-width:160px;overflow:auto;padding:8px 0;width:100%;z-index:40}.codeActionMenuWidget .monaco-list .monaco-scrollable-element,.monaco-editor{overflow:visible}.codeActionMenuWidget .monaco-list:not(.element-focused):focus:before{content:"";height:100%;left:0;outline:0!important;outline-offset:0!important;pointer-events:none;position:absolute;top:0;width:100%;z-index:5}.codeActionMenuWidget .monaco-list{border:0!important;user-select:none;-webkit-user-select:none;-ms-user-select:none}.codeActionMenuWidget .monaco-list .monaco-scrollable-element .monaco-list-rows{height:100%!important}.codeActionMenuWidget .monaco-list .monaco-list-row:not(.separator){background-position:2px 2px;background-repeat:no-repeat;-mox-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:flex;padding:0 26px;touch-action:none;white-space:nowrap;width:100%}.codeActionMenuWidget .monaco-list .monaco-list-row:hover:not(.option-disabled),.codeActionMenuWidget .monaco-list .moncao-list-row.focused:not(.option-disabled){background-color:var(--vscode-menu-selectionBackground)!important;color:var(--vscode-menu-selectionForeground)!important}.codeActionMenuWidget .monaco-list .option-disabled,.codeActionMenuWidget .monaco-list .option-disabled .focused{-webkit-touch-callout:none;color:var(--vscode-disabledForeground)!important;pointer-events:none;-webkit-user-select:none;user-select:none}.codeActionMenuWidget .monaco-list .separator{background-position:2px 2px;background-repeat:no-repeat;border-bottom:1px solid var(--vscode-menu-separatorBackground);border-radius:0;-mox-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:flex;font-size:inherit;height:0!important;margin:5px 0!important;opacity:1;padding-top:0!important;touch-action:none;white-space:nowrap;width:100%}.monaco-description-button .monaco-button-description,.monaco-description-button .monaco-button-label,.monaco-editor .contentWidgets .codicon-light-bulb,.monaco-editor .contentWidgets .codicon-lightbulb-autofix{align-items:center;display:flex;justify-content:center}.monaco-editor .codelens-decoration{color:var(--vscode-editorCodeLens-foreground);display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .codelens-decoration>a,.monaco-editor .codelens-decoration>span{user-select:none;-webkit-user-select:none;-ms-user-select:none;vertical-align:sub;white-space:nowrap}.monaco-editor .codelens-decoration>a:hover,.monaco-editor .codelens-decoration>a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration .codicon{color:currentColor!important;color:var(--vscode-editorCodeLens-foreground);vertical-align:middle}@keyframes d{0%{opacity:0;visibility:visible}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{animation:.1s linear d}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none;-ms-user-select:none}.colorpicker-color-decoration,.hc-light .colorpicker-color-decoration{border:.1em solid #000;box-sizing:border-box;cursor:pointer;display:inline-block;height:.8em;line-height:.8em;margin:.1em .2em 0;width:.8em}.hc-black .colorpicker-color-decoration,.vs-dark .colorpicker-color-decoration{border:.1em solid #eee}.colorpicker-header{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=") 0 0/9px 9px;display:flex;height:24px;image-rendering:pixelated;position:relative}.colorpicker-header .picked-color{align-items:center;color:#fff;cursor:pointer;display:flex;flex:1;justify-content:center;line-height:24px;width:216px}.colorpicker-header .picked-color .codicon{color:inherit;font-size:14px;left:8px;position:absolute}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{cursor:pointer;width:74px;z-index:inherit}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{flex:1;height:150px;min-width:220px;overflow:hidden;position:relative}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{border:1px solid #fff;border-radius:100%;box-shadow:0 0 2px rgba(0,0,0,.8);height:9px;margin:-5px 0 0 -5px;position:absolute;width:9px}.colorpicker-body .strip{height:150px;width:25px}.colorpicker-body .hue-strip{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);cursor:grab;margin-left:8px;position:relative}.colorpicker-body .opacity-strip{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=") 0 0/9px 9px;cursor:grab;image-rendering:pixelated;margin-left:8px;position:relative}.colorpicker-body .strip.grabbing,.monaco-tree-type-filter-grab.grabbing{cursor:grabbing}.colorpicker-body .slider{border:1px solid hsla(0,0%,100%,.71);box-shadow:0 0 1px rgba(0,0,0,.85);box-sizing:border-box;height:4px;left:-2px;position:absolute;top:0;width:calc(100% + 4px)}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.monaco-editor .goto-definition-link{cursor:pointer;text-decoration:underline}.monaco-action-bar{height:100%;white-space:nowrap}.monaco-action-bar .actions-container{align-items:center;display:flex;height:100%;margin:0 auto;padding:0;width:100%}.monaco-action-bar .action-item{align-items:center;cursor:pointer;display:block;justify-content:center;position:relative}.monaco-action-bar .action-item.disabled,.monaco-button-dropdown.disabled,.monaco-dropdown>.dropdown-label>.action-label.disabled,.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.hc-light.mac.mouse-default .view-lines,.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines{cursor:default}.monaco-action-bar .action-item .codicon{align-items:center;display:flex;height:16px;width:16px}.monaco-action-bar .action-label{border-radius:5px;font-size:11px;padding:3px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover,.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:.6}.monaco-action-bar.vertical .action-label.separator{border-bottom:1px solid #bbb;display:block;margin-left:.8em;margin-right:.8em;padding-top:1px}.monaco-action-bar .action-item .action-label.separator{background-color:#bbb;cursor:default;height:16px;margin:5px 4px!important;min-width:1px;padding:0;width:1px}.monaco-action-bar .action-item.select-container{align-items:center;display:flex;flex:1;justify-content:center;margin-right:10px;max-width:170px;min-width:60px;overflow:hidden}.monaco-action-bar .action-item.action-dropdown-item>.action-label{margin-right:1px}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex;flex-wrap:nowrap;justify-content:space-between}.monaco-editor .peekview-widget .head .peekview-title{align-items:center;display:flex;font-size:13px;margin-left:20px;min-width:0;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .suggest-preview-additional-widget,.monaco-editor .view-lines,.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-inputbox>.ibwrapper>textarea.input.empty{white-space:nowrap}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:"-";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;padding-right:2px;text-align:right}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{margin-right:4px}.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon,.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file,.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}::-ms-clear{display:none}.monaco-editor{position:relative;--monaco-monospace-font:"SF Mono",Monaco,Menlo,Consolas,"Ubuntu Mono","Liberation Mono","DejaVu Sans Mono","Courier New",monospace;font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif}.monaco-editor .overflow-guard{overflow:hidden;position:relative}.monaco-editor .blockDecorations-container,.monaco-editor .cursors-layer,.monaco-editor .glyph-margin,.monaco-editor .view-overlays,.monaco-editor .view-ruler{position:absolute;top:0}.monaco-editor .inputarea{background-color:initial;border:none;color:transparent;margin:0;min-height:0;min-width:0;outline:0!important;overflow:hidden;padding:0;position:absolute;resize:none}.monaco-editor .suggest-details,.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused)>.contents>.main .monaco-icon-label{color:var(--vscode-editorSuggestWidget-foreground)}.monaco-diff-editor .diffOverview .diffViewport,.monaco-editor .inputarea.ime-input,.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.monaco-editor .margin-view-overlays .line-numbers{box-sizing:border-box;cursor:default;display:inline-block;font-variant-numeric:tabular-nums;height:100%;position:absolute;text-align:right;vertical-align:middle}.monaco-editor .reference-zone-widget .inline,.monaco-icon-label:before{vertical-align:top;display:inline-block}.monaco-editor .relative-current-line-number{display:inline-block;text-align:left;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-mouse-cursor-text{cursor:text}.monaco-editor .margin-view-overlays .current-line,.monaco-editor .view-overlays .current-line{box-sizing:border-box;display:block;left:0;position:absolute;top:0}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.context-view,.monaco-diff-editor .diff-review-shadow,.monaco-editor .lines-content .cdr,.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .margin-view-overlays .cgmr{align-items:center;display:flex;justify-content:center;position:absolute}.monaco-editor .blockDecorations-block,.monaco-editor .lines-content .core-guide{box-sizing:border-box;position:absolute}.mtkcontrol{background:#960000!important;color:#fff!important}.monaco-editor.enable-user-select{user-select:auto;-webkit-user-select:initial;-ms-user-select:initial}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .lines-decorations{background:#fff;position:absolute;top:0}.monaco-editor .margin-view-overlays .cldr{height:100%;position:absolute}.monaco-editor .margin-view-overlays .cmdr{height:100%;left:0;position:absolute;width:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{left:-6px;position:absolute;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{left:-1px;position:absolute;width:1px}.minimap.autohide{opacity:0;transition:opacity .5s}.monaco-editor .overlayWidgets{left:0;position:absolute;top:0}.monaco-editor .scroll-decoration{height:6px;left:0;position:absolute;top:0}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius,.monaco-editor.hc-light .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius,.monaco-editor.hc-light .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius,.monaco-editor.hc-light .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius,.monaco-editor.hc-light .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer>.cursor{overflow:hidden;position:absolute}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{background:0 0!important;border-style:solid;border-width:1px;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{background:0 0!important;border-bottom-style:solid;border-bottom-width:2px;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{background:0 0!important;border-bottom-style:solid;border-bottom-width:1px;box-sizing:border-box}@keyframes e{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes f{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes g{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:.5s ease-in-out 20 alternate e}.cursor-phase{animation:.5s ease-in-out 20 alternate f}.cursor-expand>.cursor{animation:.5s ease-in-out 20 alternate g}.monaco-sash{position:absolute;touch-action:none;z-index:35}.monaco-sash.disabled{pointer-events:none;cursor:default!important;pointer-events:none!important}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.vertical{cursor:ew-resize;height:100%;top:0;width:var(--sash-size)}.monaco-sash.horizontal{cursor:ns-resize;height:var(--sash-size);left:0;width:100%}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:" ";cursor:all-scroll;display:block;height:calc(var(--sash-size)*2);position:absolute;width:calc(var(--sash-size)*2);z-index:100}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:calc(var(--sash-size)*-.5);top:calc(var(--sash-size)*-1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{bottom:calc(var(--sash-size)*-1);left:calc(var(--sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{left:calc(var(--sash-size)*-1);top:calc(var(--sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{right:calc(var(--sash-size)*-1);top:calc(var(--sash-size)*-.5)}.monaco-sash:before{background:0 0;content:"";height:100%;pointer-events:none;position:absolute;transition:background-color .1s ease-out;width:100%}.monaco-sash.vertical:before{left:calc(50% - var(--sash-hover-size)/ 2);width:var(--sash-hover-size)}.monaco-sash.horizontal:before{height:var(--sash-hover-size);top:calc(50% - var(--sash-hover-size)/ 2)}.pointer-events-disabled{pointer-events:none!important}.monaco-sash.debug{background:#0ff}.monaco-sash.debug.disabled{background:rgba(0,255,255,.2)}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-editor .arrow-revert-change,.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-editor .zone-widget .zone-widget-container{border-bottom-style:solid;border-bottom-width:0;border-top-style:solid;border-top-width:0;position:relative}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown>.dropdown-label{align-items:center;cursor:pointer;display:flex;height:100%;justify-content:center}.monaco-dropdown-with-default,.monaco-dropdown-with-primary{border-radius:5px;display:flex!important;flex-direction:row}.monaco-table,.monaco-table-tr{display:flex;height:100%}.monaco-dropdown-with-default>.action-container>.action-label,.monaco-dropdown-with-primary>.action-container>.action-label,.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label,.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-],.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;line-height:16px;margin-left:-3px;padding-left:0;padding-right:0}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label,.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{background-position:50%;background-repeat:no-repeat;background-size:16px;display:block}.monaco-action-bar .action-item.menu-entry .action-label.icon,.monaco-dropdown-with-default>.action-container.menu-entry>.action-label.icon{background-position:50%;background-repeat:no-repeat;background-size:16px;height:16px;width:16px}.monaco-split-view2>.sash-container{height:100%;pointer-events:none;position:absolute;width:100%}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:auto}.monaco-editor .suggest-widget>.tree,.monaco-split-view2>.monaco-scrollable-element{height:100%;width:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{position:absolute;white-space:normal}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{background-color:var(--separator-border);content:" ";left:0;pointer-events:none;position:absolute;top:0;z-index:5}.monaco-button-dropdown .monaco-button-dropdown-separator>div,.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-table{flex-direction:column;position:relative;white-space:nowrap;width:100%}.monaco-table>.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table-th{height:100%;width:100%}.monaco-table-td,.monaco-table-th{box-sizing:border-box;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{border-left:1px solid transparent;content:"";left:calc(var(--sash-size)/2);position:absolute;width:0}.monaco-table>.monaco-split-view2,.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-custom-toggle{border:1px solid transparent;border-radius:3px;box-sizing:border-box;cursor:pointer;float:left;height:20px;margin-left:2px;overflow:hidden;padding:1px;user-select:none;-webkit-user-select:none;-ms-user-select:none;width:20px}.monaco-custom-toggle:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{border:1px dashed var(--vscode-focusBorder)}.hc-black .monaco-custom-toggle,.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle,.hc-light .monaco-custom-toggle:hover,.modified-in-monaco-diff-editor.hc-black .slider.active,.modified-in-monaco-diff-editor.hc-light .slider.active,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar,.quick-input-list .monaco-list-row.focused .monaco-keybinding-key{background:none}.monaco-custom-toggle.monaco-checkbox{background-size:16px!important;border:1px solid transparent;border-radius:3px;height:18px;margin-left:0;margin-right:9px;opacity:1;padding:0;width:18px}.monaco-custom-toggle.monaco-checkbox:not(.checked):before{visibility:hidden}.monaco-inputbox{box-sizing:border-box;display:block;font-size:inherit;padding:0;position:relative}.monaco-inputbox.idle{border:1px solid transparent}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px}.monaco-inputbox>.ibwrapper>.input{border:none;box-sizing:border-box;color:inherit;display:inline-block;font-family:inherit;font-size:inherit;height:100%;line-height:inherit;resize:none;width:100%}.monaco-editor .parameter-hints-widget .docs .markdown-docs code,.monaco-editor .parameter-hints-widget .overloads,.monaco-editor .suggest-details p code,.monaco-editor .tokens-inspect-widget .tm-token,.monaco-editor .tokens-inspect-widget .tm-token-type,.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{-ms-overflow-style:none;display:block;outline:0;scrollbar-width:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>.mirror{word-wrap:break-word;box-sizing:border-box;display:inline-block;left:0;position:absolute;top:0;visibility:hidden;white-space:pre-wrap;width:100%}.monaco-inputbox-container .monaco-inputbox-message{word-wrap:break-word;box-sizing:border-box;display:inline-block;font-size:12px;line-height:17px;margin-top:-1px;overflow:hidden;padding:.4em;text-align:left;width:100%}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;height:16px;width:16px}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls,.monaco-findInput>.controls{position:absolute;right:2px;top:3px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.hc-light .monaco-findInput.highlight-0 .controls,.monaco-findInput.highlight-0 .controls{animation:.1s linear h}.hc-light .monaco-findInput.highlight-1 .controls,.monaco-findInput.highlight-1 .controls{animation:.1s linear i}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:.1s linear j}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:.1s linear k}@keyframes h{0%{background:rgba(253,255,0,.8)}to{background:0 0}}@keyframes i{0%{background:rgba(253,255,0,.8)}99%{background:0 0}}@keyframes j{0%{background:hsla(0,0%,100%,.44)}to{background:0 0}}@keyframes k{0%{background:hsla(0,0%,100%,.44)}99%{background:0 0}}.monaco-tl-row{align-items:center;display:flex;height:100%;position:relative}.monaco-tl-indent{height:100%;left:16px;pointer-events:none;position:absolute;top:0}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{border-left:1px solid transparent;box-sizing:border-box;display:inline-block;height:100%;transition:border-color .1s linear}.monaco-tl-twistie{align-items:center;display:flex!important;flex-shrink:0;font-size:10px;justify-content:center;padding-right:6px;text-align:right;transform:translateX(3px);width:16px}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:1.25s steps(30) infinite l}.monaco-tree-type-filter{display:flex;margin:0 6px;max-width:200px;padding:3px;position:absolute;top:0;transition:top .3s;z-index:100}.monaco-tree-type-filter.disabled{top:-40px}.monaco-tree-type-filter-grab{align-items:center;cursor:grab;display:flex!important;justify-content:center;margin-right:2px}.monaco-tree-type-filter-input .monaco-inputbox{height:23px}.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.input,.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.mirror{padding:2px 4px}.monaco-tree-type-filter-input .monaco-findInput>.controls{top:2px}.monaco-tree-type-filter-actionbar{margin-left:4px}.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label{padding:2px}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-bottom-width:1px;border-top-width:1px}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span,.monaco-hover .hover-contents a.code-link>span{border-bottom:1px solid transparent;text-decoration:underline;text-underline-position:under}.monaco-editor .reference-zone-widget .messages{height:100%;padding:3em 0;text-align:center;width:100%}.monaco-editor .reference-zone-widget .ref-tree{background-color:var(--vscode-peekViewResult-background);color:var(--vscode-peekViewResult-lineForeground);line-height:23px}.monaco-editor .reference-zone-widget .ref-tree .reference{overflow:hidden;text-overflow:ellipsis}.monaco-editor .reference-zone-widget .ref-tree .reference-file{color:var(--vscode-peekViewResult-fileForeground);display:inline-flex;height:100%;width:100%}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows>.monaco-list-row.selected:not(.highlighted){background-color:var(--vscode-peekViewResult-selectionBackground);color:var(--vscode-peekViewResult-selectionForeground)!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-left:auto;margin-right:12px}.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight{background-color:var(--vscode-peekViewResult-matchHighlightBackground)}.monaco-editor .reference-zone-widget .preview .reference-decoration{background-color:var(--vscode-peekViewEditor-matchHighlightBackground);border:2px solid var(--vscode-peekViewEditor-matchHighlightBorder);box-sizing:border-box}.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input,.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background{background-color:var(--vscode-peekViewEditor-background)}.monaco-editor .reference-zone-widget .preview .monaco-editor .margin{background-color:var(--vscode-peekViewEditorGutter-background)}.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight{border:1px dotted var(--vscode-contrastActiveBorder,transparent);box-sizing:border-box}.monaco-count-badge{border-radius:11px;box-sizing:border-box;display:inline-block;font-size:11px;font-weight:400;line-height:11px;min-height:18px;min-width:18px;padding:3px 6px;text-align:center}.monaco-count-badge.long{border-radius:2px;line-height:normal;min-height:auto;padding:2px 3px}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{-moz-osx-font-smoothing:grayscale;background-position:0;background-repeat:no-repeat;background-size:16px;flex-shrink:0;height:22px;line-height:inherit!important;padding-right:6px;width:16px}.monaco-icon-label>.monaco-icon-label-container{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{font-size:.9em;margin-left:.5em;opacity:.7;white-space:pre}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.deprecated{opacity:.66;text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{text-decoration:line-through}.monaco-icon-label:after{font-size:90%;font-weight:600;margin:auto 16px 0 5px;opacity:.75;text-align:center}.monaco-hover{animation:.1s linear d;box-sizing:initial;cursor:default;line-height:1.5em;overflow:hidden;position:absolute;user-select:text;-webkit-user-select:text;-ms-user-select:text;z-index:50}.monaco-editor .find-widget .button.toggle.disabled,.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls,.monaco-editor .find-widget.hiddenEditor,.monaco-editor .find-widget.reduced-find-widget .matchesCount,.monaco-editor .find-widget>.replace-part,.monaco-editor .parameter-hints-widget .docs.empty,.monaco-editor .suggest-details.no-docs,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty,.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide,.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-hover.hidden,.quick-input-list .quick-input-list-entry-action-bar .action-label,.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){word-wrap:break-word;max-width:500px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul,.monaco-hover .code,.monaco-hover p,.monaco-hover ul{margin:8px 0}.monaco-hover hr{border-left:0;border-right:0;box-sizing:border-box;height:1px;margin:4px -8px -4px}.monaco-editor .suggest-details ol,.monaco-editor .suggest-details ul,.monaco-hover ol,.monaco-hover ul{padding-left:20px}.monaco-hover code{border-radius:3px;padding:0 .4em}.monaco-editor .parameter-hints-widget .docs .code,.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source,.monaco-hover .monaco-tokenized-source{white-space:pre-wrap}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px}.monaco-hover .hover-row.status-bar .actions .action-container{cursor:pointer;margin-right:16px}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before,.monaco-hover .hover-contents a.code-link:before{content:"("}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after,.monaco-hover .hover-contents a.code-link:after{content:")"}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span{display:inline-block;margin-bottom:4px}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{cursor:default;opacity:.4;pointer-events:none}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;margin-right:4px;vertical-align:text-top}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{font-style:italic;opacity:.6}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{padding:8px 12px 0 20px;position:absolute;user-select:text;-webkit-user-select:text;-ms-user-select:text;white-space:pre}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{color:inherit;opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{color:var(--vscode-textLink-foreground);color:var(--vscode-textLink-activeForeground)}.monaco-editor .snippet-placeholder{background-color:var(--vscode-editor-snippetTabstopHighlightBackground,transparent);min-width:2px;outline-color:var(--vscode-editor-snippetTabstopHighlightBorder,transparent);outline-style:solid;outline-width:1px}.monaco-editor .finish-snippet-placeholder{background-color:var(--vscode-editor-snippetFinalTabstopHighlightBackground,transparent);outline-color:var(--vscode-editor-snippetFinalTabstopHighlightBorder,transparent);outline-style:solid;outline-width:1px}.monaco-editor.hc-light .dnd-target,.monaco-editor.vs .dnd-target{border-right:2px dotted #000;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #aeafad;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.hc-light.mac.mouse-copy .view-lines,.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines{cursor:copy}.monaco-editor .find-widget{box-sizing:border-box;height:33px;line-height:19px;overflow:hidden;padding:0 4px;position:absolute;transform:translateY(calc(-100% - 10px));transition:transform .2s linear;z-index:35}.monaco-workbench.reduce-motion .monaco-editor .find-widget{transition:transform 0ms linear}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:-webkit-focus-ring-color solid 1px;outline-offset:-1px}.monaco-editor .find-widget .monaco-inputbox .input{background-color:initial;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{display:flex;font-size:12px;margin:4px 0 0 17px}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-bottom:2px;padding-top:2px}.monaco-editor .find-widget>.find-part .find-actions,.monaco-editor .find-widget>.replace-part .replace-actions{align-items:center;display:flex;height:25px}.monaco-editor .find-widget .monaco-findInput{display:flex;flex:1;vertical-align:middle}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{box-sizing:border-box;display:flex;flex:initial;height:25px;line-height:23px;margin:0 0 0 3px;padding:2px 0 0 2px;text-align:center;vertical-align:middle}.monaco-editor .find-widget .button{align-items:center;background-position:50%;background-repeat:no-repeat;border-radius:5px;cursor:pointer;display:flex;flex:initial;height:16px;justify-content:center;margin-left:3px;padding:3px;width:16px}.monaco-editor .find-widget .codicon-find-selection{border-radius:5px;height:22px;padding:3px;width:22px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{padding:1px 6px;top:-1px;width:auto}.monaco-editor .find-widget .button.toggle{border-radius:0;box-sizing:border-box;height:100%;left:3px;position:absolute;top:0;width:18px}.monaco-editor .find-widget .disabled{color:var(--vscode-disabledForeground);cursor:default}.monaco-editor .find-widget>.replace-part>.monaco-findInput{display:flex;flex:auto;flex-grow:0;flex-shrink:0;position:relative;vertical-align:middle}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important}.monaco-editor .find-widget .monaco-sash{left:0!important}.monaco-editor.hc-black .find-widget .button:before{left:2px;position:relative;top:1px}.monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{align-items:center;cursor:pointer;display:flex;font-size:140%;justify-content:center;margin-left:2px;opacity:0;transition:opacity .5s}.monaco-editor .inline-folded:after{color:grey;content:"⋯";cursor:pointer;display:inline;line-height:1em;margin:.1em .2em 0}.monaco-editor .iPadShowKeyboard{background:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4LjAzNiA0LjAxSDQuMDA4VjMyLjAzaDQ0LjAyOFY0LjAxWk00LjAwOC4wMDhBNC4wMDMgNC4wMDMgMCAwIDAgLjAwNSA0LjAxVjMyLjAzYTQuMDAzIDQuMDAzIDAgMCAwIDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAgMCA0LjAwMy00LjAwMlY0LjAxQTQuMDAzIDQuMDAzIDAgMCAwIDQ4LjAzNi4wMDhINC4wMDhaTTguMDEgOC4wMTNoNC4wMDN2NC4wMDNIOC4wMVY4LjAxM1ptMTIuMDA4IDBoLTQuMDAydjQuMDAzaDQuMDAyVjguMDEzWm00LjAwMyAwaDQuMDAydjQuMDAzaC00LjAwMlY4LjAxM1ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzVjguMDEzWm00LjAwMiAwaDQuMDAzdjQuMDAzSDQwLjAzVjguMDEzWm0tMjQuMDE1IDguMDA1SDguMDF2NC4wMDNoOC4wMDZ2LTQuMDAzWm00LjAwMiAwaDQuMDAzdjQuMDAzaC00LjAwM3YtNC4wMDNabTEyLjAwOCAwaC00LjAwM3Y0LjAwM2g0LjAwM3YtNC4wMDNabTEyLjAwOCAwdjQuMDAzaC04LjAwNXYtNC4wMDNoOC4wMDVabS0zMi4wMjEgOC4wMDVIOC4wMXY0LjAwM2g0LjAwM3YtNC4wMDNabTQuMDAzIDBoMjAuMDEzdjQuMDAzSDE2LjAxNnYtNC4wMDNabTI4LjAxOCAwSDQwLjAzdjQuMDAzaDQuMDAzdi00LjAwM1oiIGZpbGw9IiM0MjQyNDIiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+") 50% no-repeat;border:4px solid #f6f6f6;border-radius:4px;height:36px;margin:0;min-height:0;min-width:0;overflow:hidden;padding:0;position:absolute;resize:none;width:58px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4LjAzNiA0LjAxSDQuMDA4VjMyLjAzaDQ0LjAyOFY0LjAxWk00LjAwOC4wMDhBNC4wMDMgNC4wMDMgMCAwIDAgLjAwNSA0LjAxVjMyLjAzYTQuMDAzIDQuMDAzIDAgMCAwIDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAgMCA0LjAwMy00LjAwMlY0LjAxQTQuMDAzIDQuMDAzIDAgMCAwIDQ4LjAzNi4wMDhINC4wMDhaTTguMDEgOC4wMTNoNC4wMDN2NC4wMDNIOC4wMVY4LjAxM1ptMTIuMDA4IDBoLTQuMDAydjQuMDAzaDQuMDAyVjguMDEzWm00LjAwMyAwaDQuMDAydjQuMDAzaC00LjAwMlY4LjAxM1ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzVjguMDEzWm00LjAwMiAwaDQuMDAzdjQuMDAzSDQwLjAzVjguMDEzWm0tMjQuMDE1IDguMDA1SDguMDF2NC4wMDNoOC4wMDZ2LTQuMDAzWm00LjAwMiAwaDQuMDAzdjQuMDAzaC00LjAwM3YtNC4wMDNabTEyLjAwOCAwaC00LjAwM3Y0LjAwM2g0LjAwM3YtNC4wMDNabTEyLjAwOCAwdjQuMDAzaC04LjAwNXYtNC4wMDNoOC4wMDVabS0zMi4wMjEgOC4wMDVIOC4wMXY0LjAwM2g0LjAwM3YtNC4wMDNabTQuMDAzIDBoMjAuMDEzdjQuMDAzSDE2LjAxNnYtNC4wMDNabTI4LjAxOCAwSDQwLjAzdjQuMDAzaDQuMDAzdi00LjAwM1oiIGZpbGw9IiNDNUM1QzUiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+") 50% no-repeat;border:4px solid #252526}@font-face{font-display:block;font-family:codicon;src:url(/assets/fonts/codicon-b797181c93b3755f4fa1258a4cca14d4.ttf) format("truetype")}.codicon[class*=codicon-]{text-rendering:auto;-moz-osx-font-smoothing:grayscale;display:inline-block;font:16px/1 codicon;text-align:center;text-decoration:none;text-transform:none;user-select:none;-webkit-user-select:none;-ms-user-select:none}@keyframes l{to{transform:rotate(1turn)}}.codicon-gear.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin,.codicon-sync.codicon-modifier-spin{animation:1.5s steps(30) infinite l}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.monaco-editor .suggest-widget{display:flex;flex-direction:column;z-index:40}.monaco-editor .suggest-widget.message{align-items:center;flex-direction:row}.monaco-editor .suggest-details,.monaco-editor .suggest-widget{background-color:var(--vscode-editorSuggestWidget-background);border-color:var(--vscode-editorSuggestWidget-border);border-style:solid;border-width:1px;flex:0 1 auto;width:100%}.monaco-editor .suggest-widget .suggest-status-bar{border-top:1px solid var(--vscode-editorSuggestWidget-border);box-sizing:border-box;display:none;flex-flow:row nowrap;font-size:80%;justify-content:space-between;overflow:hidden;padding:0 4px;width:100%}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:var(--vscode-editorSuggestWidgetStatus-foreground)}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:", ";margin-right:.3em}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{background-position:2px 2px;background-repeat:no-repeat;-mox-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:flex;padding-right:10px;touch-action:none;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused{color:var(--vscode-editorSuggestWidget-selectedForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon{color:var(--vscode-editorSuggestWidget-selectedIconForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:pre}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-highlightForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-focusHighlightForeground)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;cursor:pointer;font-size:14px;opacity:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;right:2px;top:6px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{opacity:.6;overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{align-self:center;font-size:85%;line-height:normal;margin-left:12px;opacity:.4;overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{font-size:85%;margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label,.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox,.tags_jXut{display:inline}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-grow:1;flex-shrink:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{flex-shrink:4;max-width:70%;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;height:18px;position:absolute;right:10px;visibility:hidden;width:18px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right>.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{background-position:50%;background-repeat:no-repeat;background-size:80%;display:block;height:16px;margin-left:2px;width:16px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{align-items:center;display:flex;margin-right:4px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{border:.1em solid #000;display:inline-block;height:.7em;margin:0 0 0 .3em;width:.7em}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{cursor:default;display:flex;flex-direction:column}.monaco-editor .suggest-details.focused{border-color:var(--vscode-focusBorder)}.monaco-editor .suggest-details a{color:var(--vscode-textLink-foreground)}.monaco-editor .suggest-details a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .suggest-details code{background-color:var(--vscode-textCodeBlock-background);border-radius:3px;padding:0 .4em}.monaco-editor .suggest-details>.monaco-scrollable-element>.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type{flex:2;margin:0 24px 0 0;opacity:.7;overflow:hidden;padding:4px 0 12px 5px;text-overflow:ellipsis;white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs{margin-right:24px;overflow:hidden}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs{min-height:calc(1rem + 8px);padding:0;white-space:normal}.monaco-editor .parameter-hints-widget .signature,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .monaco-tokenized-source{white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code{word-wrap:break-word;white-space:pre-wrap}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-preview-additional-widget .content-spacer{color:transparent;white-space:pre}.monaco-editor .suggest-preview-additional-widget .button{cursor:pointer;display:inline-block;text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-hidden{font-size:0;opacity:0}.monaco-editor .detected-link,.monaco-editor .detected-link-active,.monaco-editor .inline-completion-text-to-replace{text-decoration:underline;text-underline-position:under}.monaco-editor .tokens-inspect-widget{padding:10px;user-select:text;-webkit-user-select:text;-ms-user-select:text;z-index:50}.tokens-inspect-separator{border:0;height:1px}.monaco-editor .tokens-inspect-widget .tm-token-length{float:right;font-size:60%;font-weight:400}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:var(--monaco-monospace-font);text-align:right}.monaco-editor .parameter-hints-widget{cursor:default;display:flex;flex-direction:column;line-height:1.5em;z-index:39}.monaco-editor .parameter-hints-widget>.phwrapper{display:flex;flex-direction:row;max-width:440px}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.visible{transition:left .05s ease-in-out}.monaco-editor .parameter-hints-widget .body,.monaco-editor .parameter-hints-widget .monaco-scrollable-element{display:flex;flex:1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:normal}.monaco-editor .parameter-hints-widget .docs code{border-radius:3px;padding:0 .4em}.monaco-editor .parameter-hints-widget .controls{align-items:center;display:none;flex-direction:column;justify-content:flex-end;min-width:22px}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{background-repeat:no-repeat;cursor:pointer;height:16px;width:16px}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{height:12px;line-height:12px;text-align:center}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor .rename-box{color:inherit;z-index:100}.monaco-editor .rename-box.preview{padding:3px 3px 0}.monaco-editor .rename-box .rename-input{padding:3px;width:calc(100% - 6px)}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .rename-box.preview .rename-label,.monaco-progress-container.active .progress-bit{display:inherit}.monaco-editor .unicode-highlight{background-color:var(--vscode-editorUnicodeHighlight-background);border:1px solid var(--vscode-editorUnicodeHighlight-border);box-sizing:border-box}.editor-banner{background:var(--vscode-banner-background);box-sizing:border-box;cursor:default;display:flex;font-size:12px;height:26px;overflow:visible;width:100%;background-color:var(--vscode-banner-background)}.monaco-button-dropdown,.monaco-text-button{cursor:pointer;display:flex}.editor-banner .icon-container{align-items:center;display:flex;flex-shrink:0;padding:0 6px 0 10px}.editor-banner .icon-container.custom-icon{background-position:50%;background-repeat:no-repeat;background-size:16px;margin:0 6px 0 10px;padding:0;width:16px}.editor-banner .message-container{align-items:center;display:flex;line-height:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-banner .message-container p{-webkit-margin-before:0;-webkit-margin-after:0;margin-block-end:0;margin-block-start:0}.editor-banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px;margin:0 4px}.editor-banner .message-actions-container a.monaco-button{margin:2px 8px;padding:0 12px;width:inherit}.editor-banner .message-actions-container a{margin-left:12px;padding:3px;text-decoration:underline}.editor-banner .action-container{padding:0 10px 0 6px}.editor-banner,.editor-banner .action-container .codicon,.editor-banner .message-actions-container .monaco-link{color:var(--vscode-banner-foreground)}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.editor-banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-aria-container{clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;top:0;width:1px}.monaco-editor.hc-black,.monaco-editor.hc-light{-ms-high-contrast-adjust:none}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor.vs .diffOverview{background:rgba(0,0,0,.03)}.monaco-diff-editor.vs-dark .diffOverview{background:hsla(0,0%,100%,.01)}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar{background:0 0}.modified-in-monaco-diff-editor .slider.active{background:hsla(0,0%,67%,.4)}.monaco-diff-editor .delete-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-editor .insert-sign{align-items:center;display:flex!important;font-size:11px!important;opacity:.7!important}.monaco-diff-editor .diff-review-line-number{display:inline-block;text-align:right}.monaco-diff-editor .diff-review{position:absolute;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-diff-editor .diff-review-summary{padding-left:10px}.monaco-diff-editor .diff-review-table{display:table;min-width:100%}.monaco-diff-editor .diff-review-row{white-space:pre;display:table-row;width:100%}.monaco-diff-editor .diff-review-spacer{display:inline-block;vertical-align:middle;width:10px}.monaco-diff-editor .diff-review-spacer>.codicon{font-size:9px!important}.monaco-diff-editor .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px}.monaco-diff-editor .diff-review-actions .action-label{height:16px;margin:2px 0;width:16px}.context-view.fixed{all:initial;color:inherit;font-family:inherit;font-size:13px;position:fixed}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,87%,.4);border:1px solid hsla(0,0%,80%,.4);border-bottom-color:hsla(0,0%,73%,.4);box-shadow:inset 0 -1px 0 hsla(0,0%,73%,.4);color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:initial;border:1px solid #6fc3df;box-shadow:none;color:#fff}.hc-light .monaco-keybinding>.monaco-keybinding-key{background-color:initial;border:1px solid #0f4a85;box-shadow:none;color:#292929}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,50%,.17);border:1px solid rgba(51,51,51,.6);border-bottom-color:rgba(68,68,68,.6);box-shadow:inset 0 -1px 0 rgba(68,68,68,.6);color:#ccc}.monaco-text-button{align-items:center;box-sizing:border-box;justify-content:center;padding:4px;text-align:center;width:100%}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled,.monaco-button.disabled:focus{cursor:default;opacity:.4!important}.monaco-description-button .monaco-button-description>.codicon,.monaco-description-button .monaco-button-label>.codicon,.monaco-text-button>.codicon{color:inherit!important;margin:0 .2em}.monaco-button-dropdown>.monaco-button:focus{outline-offset:-1px!important}.monaco-button-dropdown.disabled>.monaco-button-dropdown-separator,.monaco-button-dropdown.disabled>.monaco-button.disabled,.monaco-button-dropdown.disabled>.monaco-button.disabled:focus{opacity:.4!important}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-right-width:0!important}.monaco-button-dropdown .monaco-button-dropdown-separator{cursor:default;padding:4px 0}.monaco-button-dropdown>.monaco-button.monaco-dropdown-button{border-left-width:0!important}.blogPostFooterDetailsFull_mRVl,.monaco-description-button{flex-direction:column}.monaco-description-button .monaco-button-label{font-weight:500}.monaco-progress-container{height:5px;overflow:hidden;width:100%}.monaco-progress-container .progress-bit{display:none;height:5px;left:0;position:absolute;width:2%}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.infinite .progress-bit{animation-duration:4s;animation-iteration-count:infinite;animation-name:m;animation-timing-function:linear;transform:translateZ(0)}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100)}@keyframes m{0%{transform:translateX(0) scaleX(1)}50%{transform:translateX(2500%) scaleX(3)}to{transform:translateX(4900%) scaleX(1)}}.quick-input-widget{font-size:13px;-webkit-app-region:no-drag;left:50%;margin-left:-300px;position:absolute;width:600px;z-index:2550}.quick-input-left-action-bar{display:flex;flex:1;margin-left:4px}.quick-input-title{overflow:hidden;padding:3px 0;text-align:center;text-overflow:ellipsis}.quick-input-right-action-bar{display:flex;flex:1;margin-right:4px}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:50%;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px}.quick-input-header .quick-input-description{margin:4px 2px}.quick-input-header{display:flex;margin-bottom:-2px;padding:6px 6px 0}.quick-input-widget.hidden-input .quick-input-header{margin-bottom:0;padding:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all,.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-filter{display:flex;flex-grow:1;position:relative}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{left:-10000px;position:absolute}.quick-input-count{align-items:center;align-self:center;display:flex;position:absolute;right:4px}.buttonGroup__atx,.copyButton_Szi8{right:calc(var(--ifm-pre-padding)/2)}.quick-input-count .monaco-count-badge{border-radius:2px;line-height:normal;min-height:auto;padding:2px 4px;vertical-align:middle}.quick-input-action .monaco-text-button{align-items:center;display:flex;font-size:11px;height:27.5px;padding:0 6px}.quick-input-message{margin-top:-1px;overflow-wrap:break-word;padding:5px}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-progress.monaco-progress-container,.quick-input-progress.monaco-progress-container .progress-bit{height:2px}.quick-input-list{line-height:22px;margin-top:6px;padding:0 1px 1px}.quick-input-list .monaco-list{max-height:440px;overflow:hidden}.quick-input-list .quick-input-list-entry{box-sizing:border-box;display:flex;height:100%;overflow:hidden;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-style:solid;border-top-width:1px}.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{display:flex;flex:1;height:100%;overflow:hidden}.quick-input-list .quick-input-list-rows{display:flex;flex:1;flex-direction:column;height:100%;margin-left:5px;overflow:hidden;text-overflow:ellipsis}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding,.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:8px}.quick-input-list .quick-input-list-label-meta{line-height:normal;opacity:.7;overflow:hidden;text-overflow:ellipsis}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible;margin-right:4px;margin-top:1px}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:0 2px 2px}.monaco-keybinding{align-items:center;display:flex;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{border-radius:3px;border-style:solid;border-width:1px;display:inline-block;font-size:11px;margin:0 2px;padding:3px 5px;vertical-align:middle}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:-webkit-sticky;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.authorCol_Hf19{flex-grow:1!important;max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:-webkit-sticky;position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.CodeBlockFilenameTab_T2zd{border:1px solid var(--ifm-color-primary-contrast-foreground);border-radius:8px 8px 0 0;color:var(--ifm-color-primary-contrast-foreground);font-weight:300;padding:6px 10px}.codeBlockContainer_r6yT{border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading);overflow:hidden}.codeBlockContent_Ttwj{direction:ltr;position:relative}.codeBlockTitle_bovw{border-bottom:1px solid var(--ifm-color-emphasis-300);font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_ec6o{border-radius:0;margin:0;padding:0}.copyButton_Szi8{background:rgba(0,0,0,.3);border-radius:var(--ifm-global-radius);color:var(--ifm-color-white);opacity:0;padding:.4rem .5rem;position:absolute;top:calc(var(--ifm-pre-padding)/2);transition:opacity .2s ease-in-out;-webkit-user-select:none;user-select:none}.codeBlockLines_pvST{display:flex;flex-direction:column;float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLine_WHOb{display:table-row}.codeBlockLineNumber_gZUW{display:table-cell;opacity:.5;padding-right:1em;text-align:right;-webkit-user-select:none;user-select:none;width:2.5em}.codeBlockLineContent_Nema{display:table-cell;position:relative}.flowErrors_qefp{background-color:#d5382f;border-radius:0;color:#fff;margin:0;padding:.5rem 1rem;white-space:normal;word-break:break-word}.flowErrorUnderlineContainer_r80d{bottom:0;height:0;line-height:0;position:absolute}.flowErrorUnderline_swOQ{border-bottom:2px dotted #d5382f;cursor:help;display:inline-block;line-height:2px;-webkit-user-select:none;user-select:none}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 rgba(0,0,0,.15);transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 rgba(0,0,0,.2)}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:transparent transparent transparent var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.containsTaskList_mC6p{list-style:none}:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.button_ipBY{background-color:var(--ifm-color-primary-dark);border:2px solid transparent;border-radius:6px;color:#fff;cursor:pointer;display:inline-block;font-size:14px;padding:12px 27px;text-align:center;text-decoration:none}.button_ipBY:hover{background-color:#fff;border:2px solid var(--ifm-color-primary-dark);color:var(--ifm-color-primary-dark)}.button_ipBY:disabled{cursor:not-allowed;opacity:.6}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.editor_ksb3{grid-gap:12px;display:grid;grid-template-areas:"c c" "d e";grid-template-columns:50% 50%}.editor_header_k1u9{align-content:center;align-items:baseline;display:flex;grid-area:c;justify-content:space-between}.cta_wrapper_gL2E>*+*{margin-left:8px}.editor_input_J9Qe{background:#3a3b3c;grid-area:d}.editor_preview_IykG{grid-area:e}.preview_fail_note_lUiM{border:1px solid #f6f6f6;color:var(--ifm-color-primary-dark);width:50%}.live_editor_gff9{background-color:#3a3b3c;caret-color:#fff;font-family:Roboto Mono,Menlo,monospace;font-size:14px;min-height:400px}.live_error_EIYU{background:none;color:red;font-family:monospace;font-size:1em;padding:10px;white-space:break-spaces}.live_preview_LmGk{border:1px solid #fff;padding:10px}.unknown_component_htsO{background-color:#ffe9e9;border:2px solid #ff7e7e;border-radius:var(--ifm-global-radius);margin-bottom:8px;padding:2px 8px}.unknown_component_children_WmeU{border:2px solid var(--collapse-button-bg-color-dark);border-radius:var(--ifm-global-radius);padding:4px 8px;position:relative}.unknown_component_children_WmeU:before{background:var(--collapse-button-bg-color-dark);border-bottom-left-radius:var(--ifm-global-radius);color:var(--ifm-color-primary-contrast-background);content:"children";display:block;padding:0 4px;position:absolute;right:0;top:-1px}.filepath_validation_list_jJSD{color:#ea0000}.FeedbackButton_oOHZ{background-color:#e4e6eb;border:0 solid #e2e8f0;border-radius:1.5rem;box-sizing:border-box;color:#000;cursor:pointer;display:inline-block;font-size:16px;font-weight:600;line-height:1;padding:1rem 1.6rem;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none}.FeedbackButton_oOHZ:hover{background-color:#828282}.FeedbackIcon_kE_h{height:13px;padding-right:5px}@media screen and (min-width:346px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:2.7rem}}@media screen and (min-width:404px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:3.1rem}}@media screen and (min-width:460px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:3.4rem}}@media screen and (min-width:518px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:3.6rem}}@media screen and (min-width:548px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:3.8rem}}@media only screen and (min-width:576px){.featureDecoration__xwc:after,.featureDecoration__xwc:before{border-width:3rem}}@media screen and (min-width:576px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:4rem;max-width:100%;width:540px}}@media only screen and (min-width:768px){.featureDecoration__xwc{width:7.5%}}@media screen and (min-width:768px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:5rem;max-width:100%;width:720px}.feature_nI3B .featureButton_Npcu{display:inline-block;margin-bottom:0;margin-right:2rem}.featurette_bF5V{height:8rem;margin-bottom:3rem;margin-top:0}}@media only screen and (min-width:992px){.featureDecoration__xwc:after,.featureDecoration__xwc:before{border-width:5rem}}@media screen and (min-width:992px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:4rem;max-width:100%;width:960px}.featureHero_TZRQ .featureHeading_TLGJ .hiddenLargerUp_LvEH{display:none!important}.feature_nI3B .featureButton_Npcu{margin-bottom:0}}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:-webkit-sticky;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:-webkit-sticky;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn{max-width:75%!important}}@media only screen and (min-width:1200px){.featureDecoration__xwc{width:5%}.featureHeadingCenter_F0Tm{margin-top:3.5rem}}@media screen and (min-width:1200px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:4.5rem;max-width:100%;width:1140px}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (min-width:1680px){.docusaurus-mermaid-container{margin-left:calc(-50vw + var(--doc-sidebar-width) + var(--ifm-container-width-xl)/ 2);margin-right:calc(-50vw + var(--ifm-container-width-xl)/ 2);max-width:none!important}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media screen and (max-width:966px){.heroBanner_UJJx{padding:2rem}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{-webkit-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media screen and (max-width:768px){.featurette_bF5V{height:11rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.title_xvU1{font-size:2rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen and (-ms-high-contrast:active){.monaco-editor.vs .view-overlays .current-line,.monaco-editor.vs-dark .view-overlays .current-line{border-color:windowtext!important;border-left:0;border-right:0}.monaco-editor.vs .cursor,.monaco-editor.vs-dark .cursor{background-color:windowtext!important}.monaco-editor.vs .dnd-target,.monaco-editor.vs-dark .dnd-target{border-color:windowtext!important}.monaco-editor.vs .selected-text,.monaco-editor.vs-dark .selected-text{background-color:highlight!important}.monaco-editor.vs .view-line,.monaco-editor.vs .view-overlays,.monaco-editor.vs-dark .view-line,.monaco-editor.vs-dark .view-overlays{-ms-high-contrast-adjust:none}.monaco-editor.vs .view-line span,.monaco-editor.vs-dark .view-line span{color:windowtext!important}.monaco-editor.vs .view-line span.inline-selected-text,.monaco-editor.vs-dark .view-line span.inline-selected-text{color:highlighttext!important}.monaco-editor.vs .reference-decoration,.monaco-editor.vs .selectionHighlight,.monaco-editor.vs .wordHighlight,.monaco-editor.vs .wordHighlightStrong,.monaco-editor.vs-dark .reference-decoration,.monaco-editor.vs-dark .selectionHighlight,.monaco-editor.vs-dark .wordHighlight,.monaco-editor.vs-dark .wordHighlightStrong{background:0 0!important;border:2px dotted highlight!important;box-sizing:border-box}.monaco-editor.vs .rangeHighlight,.monaco-editor.vs-dark .rangeHighlight{background:0 0!important;border:1px dotted activeborder!important;box-sizing:border-box}.monaco-editor.vs .bracket-match,.monaco-editor.vs-dark .bracket-match{background:0 0!important;border-color:windowtext!important}.monaco-editor.vs .currentFindMatch,.monaco-editor.vs .findMatch,.monaco-editor.vs-dark .currentFindMatch,.monaco-editor.vs-dark .findMatch{background:0 0!important;border:2px dotted activeborder!important;box-sizing:border-box}.monaco-editor.vs .find-widget,.monaco-editor.vs-dark .find-widget{border:1px solid windowtext}.monaco-editor.vs .monaco-list .monaco-list-row,.monaco-editor.vs-dark .monaco-list .monaco-list-row{-ms-high-contrast-adjust:none;color:windowtext!important}.monaco-editor.vs .monaco-list .monaco-list-row.focused,.monaco-editor.vs-dark .monaco-list .monaco-list-row.focused{background-color:highlight!important;color:highlighttext!important}.monaco-editor.vs .monaco-list .monaco-list-row:hover,.monaco-editor.vs-dark .monaco-list .monaco-list-row:hover{background:0 0!important;border:1px solid highlight;box-sizing:border-box}.monaco-editor.vs .monaco-scrollable-element>.scrollbar,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar{-ms-high-contrast-adjust:none;background:background!important;border:1px solid windowtext;box-sizing:border-box}.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider{background:windowtext!important}.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider:hover,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider:hover{background:highlight!important}.monaco-editor.vs .decorationsOverviewRuler,.monaco-editor.vs-dark .decorationsOverviewRuler{opacity:0}.monaco-diff-editor.vs .diffOverviewRuler,.monaco-diff-editor.vs-dark .diffOverviewRuler,.monaco-editor.vs .minimap,.monaco-editor.vs-dark .minimap{display:none}.monaco-editor.vs .squiggly-d-error,.monaco-editor.vs-dark .squiggly-d-error{background:0 0!important;border-bottom:4px double #e47777}.monaco-editor.vs .squiggly-b-info,.monaco-editor.vs .squiggly-c-warning,.monaco-editor.vs-dark .squiggly-b-info,.monaco-editor.vs-dark .squiggly-c-warning{border-bottom:4px double #71b771}.monaco-editor.vs .squiggly-a-hint,.monaco-editor.vs-dark .squiggly-a-hint{border-bottom:4px double #6c6c6c}.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{-ms-high-contrast-adjust:none;background-color:highlight!important;color:highlighttext!important}.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label{-ms-high-contrast-adjust:none;background:0 0!important;border:1px solid highlight;box-sizing:border-box}.monaco-editor.vs .line-delete,.monaco-editor.vs .line-insert,.monaco-editor.vs-dark .line-delete,.monaco-editor.vs-dark .line-insert{background:0 0!important;border:1px solid highlight!important;box-sizing:border-box}.monaco-editor.vs .char-delete,.monaco-editor.vs .char-insert,.monaco-editor.vs-dark .char-delete,.monaco-editor.vs-dark .char-insert{background:0 0!important}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv,.codeBlockLines_pvST{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/fonts/codicon-b797181c93b3755f4fa1258a4cca14d4.ttf b/assets/fonts/codicon-b797181c93b3755f4fa1258a4cca14d4.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5abfa748fb56c712c19d127f550727acc3fabe59 GIT binary patch literal 72504 zcmeFa37A_~eFu8Z)zw{fudeQubhT?{G?Hc?&!UmW%Qzm}Sv-#8B#z@Op2XSgB#twN zkPx#Z#AZuE2oQ#_vId|$<8n6&B4tvi^#f6pxkScb_feqZ^S@4tTU9^7AC$#EY2%5j7^k{8G2(EIS+!9Seed`t7*=9ijZY3Z$P&qiK^Ty9?3yu11K=2x0uYniR>bmX)@ zj_a;u*RXH0Z}M&YoA@on{+6$T+&{(({2;gZx$GDGe0C0hAD`u0_&Mw?Y?Axzb?lGX zvur)TnZ1G~`Gf48><&J_74|%Pf#1dci2Vlp7=JCloZZE5;urC2_*Hx-zn1Ukd-;{@ zclc%edI)YAtu&x#MVJLy9z{)D=n6TOX9ac<+sQ6wyVzyya@NgySc&zrGV6o%A4J=S z*$5kjo-xM8*#xVz23y0{vUSiq&R`qZMz)D^!!eosafig%<8*H?o`90d_N6 zU{fOgdo{bA9b&IxuVt@ice2CmP3+C=Zgvm5m%WYM$KKBFXYXL|V((^) z>^r>>>6r&iNpFg#8x#2>U4eID4G^KKldqN%krBBs9BEv(K{6vCp$F zurIPNu`jc)u8eilEQ&+)D3;q&-*egVIbU(9#$OZcUHH=pNM@ICx$ejVS(Z{V-wxA52T z*Yi90o%{{_Fh9cI$lt`@%<8@c z*gvozvP;;d?0PoMZeY9ljcgy=&#q%TScO&D&)E_7R`v;K%^dpUJo_82@@am6$Jk?h z6W_>9zJt5Gi(Say&1TuZvNy8dW&gxOyqooNha0TMrr4Q$f#1*X=5OI|Wgq4ZzM4zy zTK+J9gny9V%5USZ=C|`h{58-}W9(cWVGr>4va8us>}%{#*;mWL>PqJpK;ov)^NX#!j%mV1Evs^Do)A*tgkt*mv32+0*@&Q`-T?hng`TRjzsB78E0$${$o_>r$5yj6OR=-rZ?mJ2KcvI{|NReE31i;Z1Q}p^ zfFlV6{Av$A1MF{6UM0X+p}bmv?2qO(0_+&dYXx`#<#hu5Aj-W0+(Nle0Gx|8uNPpy zKzV}zxEX8SD8SA^xnF>Tk2Y@-;Ik+X2=FZ^Zx#UmW6cEta6;CkX9H{!1KgW64-0^gv*r;2_A!)i6yWsC zHwl2tv*w!x7~O;D0&t?`-2(g~l=ld5>d$)x_*E$1F2Hx9ykCG*KfgnOQ~yvq0Z#q= zE&+Ze$_E74@1T6Q0KW|7q5$L!YraQ-tk@>e4j`G@e6Ik>+9vfqKr*%YegQ}(*8G3~ zWE5)>EdWR>*8EKY$Su};%S0+4j9`5^(wJl6cM z0HhylJ}Lk?$eO<`0Ex(&M+G1oS@W0xq$F#8L;&)VH9sl<$;q0J2|$LjCiNcxY08=( z7l2%4O`;tD3Co&~3qaPg=I;tX>ayk&0+7F~`FjG8#H{)I0;H!j|3CoJnKeHl06EQ? ze<%Qn&6=MSfb3>X8fO5cIBR}N0P>tQpA>*(XU*dRknybfX#q%k*8GeBdpx z)_h6;x&Ukbi2$?$*8HphI|JqC1fVIf=H~^VGqC0t1fV^z<`)H^N3iCX1fWr{=2rxu zTd?NW1fXTG=AQ{b-(bxX0?<5I^JxKgCCaZ0KpSDrKNo;r!kXU@fQG`Fe<1)}g*Cq^ z0Ih{J|55<@3u}H$0GbSI{*?f98rJ-_0JIy{{A&T|Ijs2|0cbp|`CS3%KCJmY0cb(2 z`8NX4hgkFb0?>?D^KS*9BeCW)0??LNb4dVt6KnoJ02&l){+$4HDc1aZ0d^Ri#2~F0PTx4e=GnUi#3}9(8yS`B>>%wHJ=rLmd2X@BmjMlHGd)i z&5bqxSpYg5Yd$9cZH_hnMF4soYyMOK8Xjx@OaQtbYn~K<*2kJZ7l8i9n*S;QO^`MJ zO#nI}YyLt2+97NHy8!e=*8HUadl=<^2n6l=6+Q#dB3bi!0qB#g`GNp6OV)f*06HdA z69H(Oti=VOce0iw01cG2LITi5SxXjxR?1po0qCc!r3gS%Wi3?zIxA~w0_2x$=>pJW zS<4iFM$1|e0qC}@WeGsbWi49(`Yvll1)%w|mLmWin6+X8(1uyd6@XsMTAlzjWY&rc zuxC&v1fVsuR#E`^Gi&(*(4<)_B>L$f z`lnBTQ~&e}aO#Hv0Z#oeD8PxXLjs&=HY~u2W+MWeXf`UqiDs(=$amZt6W~OraRE+r znh@Ybr%3@$bgBt(qSKTBr*_u`IJLVWz^UES0-V~tT7Xl#*9dTG_gVo??OrFqsogUI zoZ7lxfV>y2GX&tpW~~hZoZ2@lz^P3e1vs^7lK`hSZ5H6vrZWXNwdpJYPHj3{fK!{! z5#UtEEdreCI48iVj#~vd)$v>bPIcTSz^RVg1vowbd;w0+zd!(fXx6$=fYbAL2ylAN zMFO0jvr~Z6y)PEv=b_vs!09=c2ynXhr2?GpeVG8K>n<1Iblq+NPS?!~aJuda0ZzYP zDZuIXJp!D5ze<49v8x3*mDdRH>rh@R!1tk~?*P96K0KWs}egS?b%9{iz9@07>zz?ImS%4owxgfybi1MHSe-p}A2=F(fqn#GX)LHAT0uv#9@2o|10bs|o*1ZC3H%g)r0Nb9mh(-XceAXfw z0kHR3>wW=P{;c&50r&t|i)aVH8^BsbI{w^O9F_e!8@J%SGKLEZF<%a~giSok&oZ9=S0C!RTwgB%!c~pR1i1L^Kd>*Xz5dnBV zSnHz#@Pn`xJsW^Wgta~<0N)5}eO!S36UyHa;31Tc3&3;2T67-3`cXb1z#WvoCjh?+ zYyG|eJS?pB2LkZ5uolr8U}vKILjg{6>yrYA%CXiT32+)apAz6SzMd3-pN6%L3oxS1 zrv)gM+WL$DUybsQ1>nzNt)~RowJ85YfIp1#vjUv@;d26<`seck{8p4-5a73={GtG- z`T8XRemlx93-CiIzaqe2gYv5a@E)<&p9;W_#9ChyplD<3&jjFGVyzPbjK=TN0`NDn z*4G8#d19?U7hu$;ZwSB}#ae$M0KXJ#eNzA)D%Sc-0r;v|>stcwTCvt&3BZ5FTHh9c zCyTZIS^z#R*7}YByj!gGT><#HSnGQN@OZHn%>jVzLHT_Fc)?ifZw25FW36Wd;2C4B zB?0)zSnCG@@RqUG-w7}pM}IE>4;pLzg8+PKto1_y)`jvP1xSf){YZd$D1R&fpBrm6 z1t^-_qVoXw;aKZg0eIwC>z@SRn`5n?2*69nTK_Bne;sQ*CqU8S*1rhAhsRn!6@WL7 zwSFc5zaDFy6o7}1wSF!DUmt7zs{p)yto3gKjQaT(0`LT~*1roNCe2#E6o7Y-wf;i@ zenQszl>kMwTh9x?cgR{V2vGdHMQsM)PbAk+0C*PJvs?f^M)oY`1_9ni_AKT(0e(mJ ztSkTzBzrb20AD0~7SAKVE6JY4^9b-yvS;x;0z8%MS$ZA-pCx!o)}k4j&bzAybMv@LWr^i6p{zF&SO zJc56hhd&}QAGj3MQhPlPO+`QF%i}`^0g!%nQ zB(e~BFmfXD1Iw^pZGFW0g*|R>wI8v672Oow7kwc5DJSJz;Jn3oES8DAI`-Mv4_(L2 zx%at0@V0u7#qIc}_`dj^@%!Ts#~+J76+aRGX<{L9cj7~dpC+$L-j{qh`5nL4-{Bwd z7yT#vFZ;htYm#06H{&M;!89Otc*_K(zJd!z)c`lpEZp!Y@ekl8^ z-0O3X=f0Yk@>k{`DZ~p4g`yV>lfYe?gzU+(fy6?pY*Kl zIn?vL&J#zWTog+UP-86dV=;Na=top>NAB}Ar`^300 zzIFW2_&dixGXCZ9=O*G4QxiKTUNLe1#LqeADKK^o2>1seX912 z+E1pAOnqSLGgHsichp}||9t(qMxk*{L*tJ zbWLT=t~GC3^VFK}ukBg8W$oA38S9R$J2CUbOmls1{ax!HU4Qb7oo9UfjFTJA-tg3H zeD=E8*UmmR`_qjB8)rA(u<`DV%}s?(M>i{*_icXP=H{8nGhch=V`qNjtbw!6JZs0< z_Sv_b{opz7IhUUE)h(;Gymres=cKvD+&kxfvi0n(3tJ!9`pK=|-ukO^cb)srbH8!! zFSZSByKdX(xBcsRk9jkY2-*M}X zr*=GZk$ch3i+;FM+c~@QuAPtW{Kn3c7Y|(g)Ws)vb?v(DlENitU-IQkTg}s zcg+{CW!E~_c3r#b+B2?w_}XW#>$>iS>mJ|RwRg+j2lo~BeQICx`nA^|xc(zIup4G? zxbKFK->BW#cjI+8zVpUs_Z$09+%$93GY57Z_`rd0lLwNbldy7P@W@S)C#XC*!h39< zh$o9YIldkt9JQxfpOGiV3*1loO0_aMBaIiNxXo3iI>P-`>k#~@R;p8V{HsolNIkZc zh>Md|oRk>hwaFQd%M)>h5A|)nU~^wCZB;I>*s0uNe-95Cwv#ZT`GgXZdUna0nHZl`oL9FkSdiQAdDVZ<}G;n|uj%c`D= za(7jxcWtS(wl}ki_ziJ9hWJ+ozSBO?D2aAWR%dv9B!o|u(u@T1NGj-thL6v1(6EGn zS-dA1O80Q?$$&Ldir=}VS%UhhVhWDKV&pUE0tr5iw7YfJI{Ba zHAES!`)aj@w~1=qPpH*;qt9wItiI!-IE=!Yw)^_*X?y^&NJ2o@g|@4sMkTr)&&Tzp zYF&&qL9;4GRL=+(L*?2&uVOc>#^c3_nTbLHZ$&RXG(MCL-X7@Ne?!Hp*Q3RWV*7+* zy8T;v2#;I&OrLzp_3A{eRIh>*bqvI~4S6xc{lv-+d)ZAn?tbd7r`HI-p-S96Rj1RQ z*={Fjtorp@RaNM5!Gn2K3=i?-2TwJmAZ~fuGr!cP!tZo`11(lQ^5xH5&l3|hzg{h= ze!G!)s=AWQzpfoCNc(?Mqvf$62mOh@oB&m8r9^ejyftra^R^w{z1!aQ`Ok0bj9GZI zAlvIi`JfLvzyB2H+vj?x&ifZSZ#@UKe4^X2`FVTW=RUWsZ@0bM+UB;;gRgE$+z+EC z7)M_jwMMO?SG;?4)GF-TR}{~M4)%0#o*1c#l79%l7q7p*c(pjc@RIX_k&MYveMH=+ za02Jq1+R0z_H)G*&o^NTl2 z($>wAyp?lFl7^PT8dt+hVOJyXo5|~-Sp8}0BtrOsAsC9jccyIz-WJH>Rq#CbRl|;PmPt_(XrJlyTsmJ!0t4A3d zqRC{`>P{waGBwRSLZ^=eG$3ssv0r#y6Bt_~h@dqn%H=6)kJ_$ayVgZ?IJAtCdaAyv z(o?BTB+;0lx3z*CwL3MUFqe=L^wlF9yfZ`P9D5#pX3_e2w7TNO0nZ&cN=_P*PCx57`gMU25y zZ5c;9I&@Y$v`>;KtgPd8>JhaRM-!^3Hj!QBK7Trq4QQO^MDw__ZojH|s;PtG30?`v z{Ti-YFZ>%1J93-6iL|Z@nuj8f#nYLj*Cu%)>Jqv2;DXM0Q!p+vh^|gzT%aD4Bht%< zLYuJFQaxBN~DGUs_ z@$z8RiMw8DC8+=7?!Qk0Jh zwFlCPlpcJmL0aQ@tv;a=!vLyyual$+z9mZB*{en(>Rw&H+OeIh^?PMy_a*kBc~!D5 zU7Qww#~b30tD#6FWISm&j`8FtL!o2#`$N(Pt%^JCHoS)Gd7dlyGdl@hpizY0BR#AR zZ9oNEuT3rb!l z8Qjt@B}soRKv4n1JSZuKDoaqi!$DyvlB7EpcrEqG?i*px^5$lKcN01tEhl#Dxe_p~*miL+`2o zUrx>`8%-6Bo=qg|WYP}a|L>q}M(^%)p452`o)%<>iaBV(dd$Mx)(<_RRKxI21U3g0 zUra41R>7fa%_p@9?_`S96Wp2A=k-}#KdB#`n_HYS8v5Mf%I-PXA9G7N!^r82hOwCQ zJbOSl41LgQc;4KVgNm*z16R=W7yV2&Q4g}0E+gC3BNc%AFv)5(0cNBM)EZk#`iZ!o zAgzF;rZUJ^mBvPpo!CRnatdNOi5Z~Q<0{Hi*VHEKl^F@zbHLFjr^b`Jay><8KfJ$N zkNG+*%&F-ZB8q!PPZ86w$ajcE;-84vorT+-@{1S2WYqDzbE0)Pl^@)48;6 z8%CzLWJ$Pv5qD2JI0g4z<{cUM_Ds?Wy$R62M6{nkZ`4XTSbQgSZwY_kI!n5~G`qOy zRfwKKcS(VsV~D<-L;RXlhCDCPIHoeOhC^J_kcN><8Y1*Ba2VXS2E7n=K&eJ#%EPdt zNg(x%NFZYEYhA-#PSGrIz0${J3+hEliWGZ_5#DQ-?QnmU8z4*ZCcn$i>sB(G&m|+; zx6Nc%SJI@*GTDfeP0(fBcA_?}s_&#U_N%#QG*|W0NlxvF(OY1% zN1>1V!3ZruBN;>v5asKx!Km2?9y>?5GY}AgQQaB2WG9n}O~Qf%1eqlDc1hn!aKNe# zj=%Ifje73nyhSfZ#CD0;#~~7ezlwY6uhKb)vfTO1RXV|-uKBB@o;UB2G!gGd@QJ>O zavny8=ri(5tV4FpUFb86cOI3L$|%R!m)1)&=z{7 z6LU!pZ`LE>u&yW&D=-qmxTkD{jnRu|=Dmww2jx91D>7t4)r^F-a44*VR9%VaVF(t@ zR;-v2?dk5yrDKMyg>5YoMk&j-yhGx;>SnB5p%7JV9fw1TrmJ!|WQJ73H1Jqd1JA-? zIjn^s>`YnxyNkW~nTuD@TSJD{on)^P4Zzp@@nVSd8X_7*vqCN}keS4*A4mjrN<8U< zeg#gwqKa;)V&YUrCCoE%;V67*(C2aGQ0m{y0g0*vyQq`Gc6fC1$z!-06h^gtLPQ< zO*nih4pFyaFvwa!Qgp1oSvDg&D2%ho_@i!>O-r?lg`Aa%X{6f;-Y!9VB-^%^vi9mF z2o@NBKE`SZ)bdNUF{K1+VRAj6EcK{0&>EI+;JGBl@=-6kF6!1}P7)dl=l&;RCY0x% zV#19^ z%jCQA>uSAf(#!GI39pvW=mNRJJC zB`B-phauMqRSX76@a;^?v#gArU0nX#V)fV=%jyz8jEZmHj$2mN4uc0(+={oa+sat> zRyt-~N}oZ4pw95*{0Y?=jGtP(cz$G;xhrz>1(Ay{Ms%iq&YuKy>i7u7kL@#;&v_bm z!hN6@k=NzZ!3|z|&Pn)h=p6VL;c;pIDo$O#&-2J6hCj64Rri-PLA^# z4sFNFg+rlm&NJe{$8gw)K~%3eB0hS0%m|0u<4E|Vnb*Fr0*jv9sB-77ZmfIEkaay) zh<5jO7g8}@eCBD{80(Jpc1H`rp;Q4s2cN0Vr+iBTl!@w9dekwx^_b1U!+bIl$hd&; zpMoK=;^m+I_)e{UKU#>|RyqpZJ*2_ik}u}yTL>CXNK;KCV%ZnIw1&N+=3Ih7pheSG zzG&x?MwGOFe6yoP+qNQxscNB*zqASMrnTiGxX2GMZxgUWLI1!xFTAgHGSx|AsV>G# z@p!3^-Ztm^@_3ESwZG%wT%3;NyH?8E2=0a$t0$bg!f&mD!3P33F)>-G!pudl22lir zC`xO$TGm79*)_dCutmw!LF^)UI~*@N4<+WQKvpN?ZO<3kbW@MYhN(%iZkrJ`>6o4_$C8PA!?L77c$;?A zFv0H=$(XD!>-D5VPC~CZQ|Lz&MG*0W0uL8#hGZ84E9n5mB*Ga+>=Wu1I55F!HWX+ zS?#WMCjcMn;6ws%$1UgyU0u;a!76--D=++#Kh3f+MMqvF@suPi zlOgg*)QL<`z@cQ4N=L%~20 z%+$hfihFUpZ1uj@D%<#IRgRWN^}v_q>Bsed2t$7{3?mHl{IU2o*Tk*f-phKe;M20r zMAku?b&1FbiH(4TLKFq&LSQk}*GObE1Ony}JCn7tctMu*gRenO9C0Bk=G@BRxg$p& zu(R3D8HYS#fiC?%cerr`^boS+N63yPUcF3d)nD9XZ{BQg3f|w^`GBvTF%1g-D_nt<$;B)^zd z6ek>xTZUq$Y+biAdPFs|G27NFgT*USUdrl29E*32c6-S}k~`64*s*PBL$;C2IG$-* zr5-;NlH*CGcx&pqYkjM)ufr=**Kx}J7j+H%FsIj+IOB@i*5S3K%67UNq!+a|?N=(t0P_`{!rM{Ola5j z>aMXdgc;vqkB{4pPsZkBpBozw0*yg&rS>GLjVs1?2zL>)8xxsy2n_0%jcbHc=3YLW z54#xQrw`&&@-RXfPo9t;LYAmCAp=&h`raTexst*EY$=FSQXP@uf=Mxi(M_|EEYl*Q zqQWXgjKdR*7D2U%Admy58+@ja0X2X$4~nJ*$BC~16wD<$RaID=4Z|1#Ll9+yiiYl$ z5z|FD!zknL!0OeW)zf1Iv0nVxs8q@*aOQNSGD@fGqvi5p{h*FlqcRWE)Q$95J^WP+3CyNA?1V`K^UJf@GTQ~I%oLVeu^>5<5Q!p2r>Xy z(XWpAOKl^6S75$Y6IpMnH z`9)JZOvmuH;I(D<)50Di|JVG&!XlI$SZ0_VI#y^zph5M4j;kqS&x1gdD7OOfSMoDq zRO4#_7OsknnIPptO`_LfMbuS{YZVd@{ttvVc-&XvZS~K|ZdlVR=chKTF3Y(}rYkp^ zOO{uS^m?JxT~?nQj>V%=ByPB2L)B!yBO2Ci#9=1Qh+A-V%L!E)86I}&2DnYGzG3xI z7q>_c6!b{f@aVwZR=*yPNOl4uu{$K2VXmr!wrROh+Z&1dVYkp5wNulBkq)m5;x``j zq#8zw7zPQ<*|q}|jE^iFgtP)%j%+R;QeJ!;<+WrzSw9)1h`<9O*UqlN1G78fIUZgE zqPUWCFX|4sQIGRdUtg(dB_olfB|WOfd_Sf>S_sRwVZoOoTZS!%KOYK5=u0FVx;M^g zrA=F3?}OD^#*D1Nt9d5ss)C;=fo7M$C`uqk>DS3?OA6Q&ICKq;`g#@2r8GH34s%$d z7-lM%lCLHpacl7H`iZy3a*TwuoE|XiK8>-)f3yAKSn4KJUNPj*n^wowNPvD_}3T`Ak0_ zYWK+*|I;3+i`qlr)&J`TNQu+>;*)pY@Q7~ModzVR`&M*BTBD8#B~I&zE1mO`8~5I- zgkB%Gp8{Tq^&EePIZm2X7us-Ye#5v$bS0R{G`@iSvA$kka=ZI_lOZ=B$)%%`WxD+- zZ41RrzZsEYJ)INgH7Vlf(weE22G+o(E%b`Eo$iq2t*_LuNVBK|E39;PZf1`=o{>ZCMH_@CN2G_-SQ_3A=lb$$s~PvEc3-^BSCVRYg@4AO~< zI0OAC?ze>dVT&)^4>JV3cyX?DW@-NL{&nr^#qW?LrNz0$r8g{Jx9n>oj~ND`I=y@M z?#ao?#rgT&{gXAY6k!{Q^KiXd#ZU7m0o)_dwc7L-G?@Vl1v{0d0>J>)Z<(k>T4WRY zzUTx&=~&V$qZOz(9+U&GPC#edgslFZ;M8>}YS1rXr%aMQlBkr{p^^v)kXKH{3&tOM zRUthb4kfrVs&!Jkz&Yp)axj2r!1SM(RKZV530N{yyQJU6mLYguu3q_=ZoH|4kZ^9; zn7lYUiFi?YBv>LRzInSGkMh_>i zhb;U{^|-p*(Y8L=z9zcj8W3Xnn$cYD@?`Qz_ikMC*XD6JcFox%?Q4i%>9D67fseG! zcfedBdTqqo5e^HIGY}e(#|tuLLLeL&2<6(mU^odl=HVB207)?sM$ru9pc|SZtGT3v zEl8vnJ6z_A2Tvs(Ff#)Kz@;X5{_+jH#tNgn3qMzdJ=3D(xc(5yci0n&5WwY9C?}`HZZZQ7uNd2!^)MMKWk9={@AvNzh6H$hZVW;)rqN z`9!TOl2sG+gGVt7cOO0a!Y}P>ueH4`2jQuJ{{}g<-pAC9(M{T`t{$T)Bj*0Mm;J@< zd+o^QkL2JlK7L%B13jPmJrnp+;LH(@KWPNHO_&vwc|le_rc8T0yeVBRX|6FmUQ#oo zV^L2ZN*SfH-)A4YWaE9_T)e2cuIi`N^7xQv#r<)^Ln3qGgXs1($zc*M?fHy)$rx=E z8yF5+s~{l>VM!kzl0+FkEFTIO)dKZ~XircrY_M!-0p1>o`?~qo>%*Zv?uSdQAZo_VrHy&u%KcHTL?0@`55Mz zMSDop+f)c*k1wIaKUY@QA{nD^e4^hU*t9vBvp1CNTD`Pb7_qWBGu3SwU89-aHGU%3 zGiT@0$tW7v;e{`(n3I^tRgkn=EAra&|HYhiaE%5Uk!Q5yL!D@62Vp>ipZRT<>W=NP zD^jT|V%zszam9HZ|LP@L>Iq-FWXltmwCzy3A5oo^PrnIwR$l(-ORuASmC$n#te8Bg zc0Ezwo?Ki^<_?@Ruko*meC%B?5IeSRghx={E-{8@U=boW82(gb){EZsh1WW+bmyE^ z+5BXe#Pd?BI?`{}wz;oz$UmHXYHrj^!uo*grzf8Da_;?fw5wxJvnKd~L9r~@w(u_? zfmba;krj7dG|q{S<;LRYjFL09n7kcdZ@C5EH;9|J=f?6qklW;wJqz8^f7v~<;vPKR zxye%dCNF7kH)x7_z;g`QAH|HtGJ_=9$93c|LiI-Ybb_0|w#C%2g!Ai~jIFD>;3OAz zJ>{SWu^$h0rLM0mrJi_#456<+(V17+%L-E2LdN1bv`)2-d|L7klNh94Lnf?>CAS}?Jm4CX5R!04;#p+p!lSGrAGIJMr?xgZcv;2jt6G)d{T8R! z>cIw~Be>(B)z9tTO0UiPBLh4d<|9L938uJ{@5#q*yd+c39C|<3?KJWy($Ra6QW5Fv zquccNS@%b98(t{dZZXXVBmGj;bseb>w@DXVyDP_WpGYi^Jjhri;$<@9oM&?B;qF+h zdpMnM(}?oU;v!oQ#==y`wFAjdE~e$N;?Kq4>$^zgH{7U?^id9W!5;NIL~FuGj59vw zy#rnm9KQYbqJ{WvTSjJ}OOb~U1F~_Z>4%pEBN;O*a76`K+TgsHqETM*Deo0VJaS19eV{N( zosN+E;VWlR3-q%bwV}RiX;yVsIqHU-tSDMIyd4fr8df5Y^rUgrz{?4R{%A4eI3X{r zDaaoV!#^KHV%+7VQK7d{-rq}ea8M)48QDRJO**25@UnG68AuQTiP|(0z5tVW)^h$1 zU5l^*lrlsdk;k)SAVtJGabm%1AmgynPUiXc(-r!*;$GzIpnAZkdfL5^GhM1JX9F#k z7b?qDsgw^^mg~~Fp1huI`a(0Lv|<|6@nq)~2ixhkA~d5fEgkC+MEDG;O`$+KBX$bg zvvV)B<@o$;r!|nl3qe-Wx1a8emv;T(;#hvZpd%S|ou@CA8}su-gdi@obfhsi2PLfI zr=WO`=nIhr1RmV>u;5Na&CbXnX-(fN$V|hFjEuQM!ACeF=jNI;0u22ia&Ust@KB`; zBLR#ZfB%M6%!u!Lfy58&q(HSIl^q{yv-<2R*Xk*y4a3@FT?PBMduYgk-Hosj)+Xuc zQYmtkwI?<-)Qw1&1<&e=_LJrcv)C&|C4aqCQ-dIi|BLMVLqnN!!|!`GpLMzyyLtM3 z;d3)Xq4#J1w2?J%;Iw|Q-y#RR>n1BT5)2aRiwW|Bx4Q+h8l!eD81P=hTRM2~;33T4rC#<@oaCusaa@f0 zHeHg)!%n~(Hi^C>H5v{sat0x_3Yysr?4$Zr6#*>#qgW87^gvFuB}=vb!DPQvDMTyD zRn>UG38~SFJJ?-Gr=?glU-2r@F2B3SsmR0DaOXuU%$)xEVAb_yJ!$p~j3h?Vk;qBC z*i-fgoO}o|!_>C3Jwtgd7OQk#AWz#rkq5m;kps7#c1C~!<9syqbLkOUm+6^>6KK@Ku0;{9zd5pK50}cnc?9~rD9ZJ!svD-npTE} zlytOW>&f<4Q==1lBc6<9Af|0_4Mv=0$q74Um%9D1mFwwBDiLj-r-M6*n`-7uZqxn> zd#OrKU1gggMb)@rn_Sbwe%9rausU+3?qoQU?ddKcQY-Z6j!uwhdpJnULDu~j5u*yG z|I0$4huzBjJh<2CVWW;rg%z)n^%>aKRYXO|F!}kAwQ-|0^l5}wjtyIzHd@18<1qS0 z*fX>ylXzAqZ;>qaK)jKj6%N8J?eC~9B*Pl1RyyYG_JY?7|LD!T^PYFYI|yF_K7xAU z7Z^SZNGGHp7lI!;VM!p$JBLsfa$k0tGVe{>7-zoa|&g|w@N^o(2dVo}p5PwVi# zVx?1QBC`q>zay!k39FoxRY{iPU8ZmM7jPj`({SM}L%NqfKkS4?O0q1ea&|B^H0r^@ zE%;Fkv1Q^%2yE6n2?l}CCm~gZ4u<7QlnzNAQMjQwLa&R7e10IGPgt&-0RzrWl+>Wg z`t+7l6?-z@UnunFT@R;ZyqVNsHmF@`czC%Q9bOaUnGRr=x9z9{JrL=#}fNREo9>n zrz;&ckS?bujg*l@8XrvOs-{J;7(szqhEh=?pY9%Wx->g_TUFzfe20WQ#h)CH_XH9Z4rMfqxH-IFP@zvh<%=^RFm3%E zZ#mxBhrAxVoOpcgaJ1+|Gs97*%Z?)jO&sO^jQRibN-w+uN zS<1RpFOq5FUIq$bM^6;>rp!HBC9|@|LFANlT=IA%AY236tWzVo(KvE^R^QTN_4ix7 z^wzUngSqLYMSb?ZlGTrYn{0ZAUW&XjCq} z&{j#4@cPvm2`Z4cG~EcIx5iu{*%zs9kLI%8$Oa5DywHPGN1}<1TBf1v_rYgXN8I3? zj#W!ZZ9#QWCt6Gh1p(wi2f|^6_i@<$K$2?MnALe99=G5GGY#!r*XoYDe~sGjou_ul)9n`M^X~43 zH|=Ri(}-2{NRBs<25v@?S)ZIXDOF@Srbo72H{$4lB>e1ld2t03W1 z{UOv~l;H#3DKFc&P}6Rtnj$<+9}RD>rfoW?ZCayg2lsg!j^C&uUjVBBZRqdNl#Ur; z8?pAV-H1k~kw4j(+l?9pe)C{$k^#R%4l$V(mI=HSb+Sn?!|OpsU{FH5l1HFqBc~ON z;vIJcHp#sDMt+;4?6~d_KcqU_w>x8LyMGWVIB;xw1^=Y+B-J$ZwftTuba2rNIn&NL z8Ee2Au+tn1Lb^E7rX%Az!Y4{TT!mTnJ^qn32-1>2V!6`mJUze9O8hw z?ispQ@mxsjQ+TD*h=x4qy7NjbAamu(TOD=BsDaKOU83Cj;IB+qPh~I9cggdP9$lJqgN2-8Yl8JGf1AWS(bCcb+ROUm5$xNDq7p-@?zhDovrLuUx;FXF({?t2P_r6*yK zJlPO-NHFfeg+NkJs)|*>yXWS)+I7jkeV25d(z8`?Dmd;sXOTrmgbdDJsLUg!L0kd# z;S!{pw*5W-fwm9Rj!_69k{Szc0%4|(Amam~jMfMQ1-Teie1WD2LC34ULK=cf=~&^YGK7?E-J&ZS#oq8s~p!PlNl>2#r=rk77h3#k?q;m=S55o=+=x=pbU9<*;;zSizsOSVX`PCqC-y5?5wF%uLYv<@D$ zUi~Aw{?%>T{{-_ncxGKZGB5&5>N8vBBIldu|JJ!%BNv(%ytrkHdH(q)wr({qxPbT& z_VyTQ`*YfS(N9nihZxWVd~0yG5RY8uM5pw3(Il`U&Aio7F1k{ZZ-zyzn#;^+Ww5U? z9Id7zT_=qlP|d)NkYbF3)Vy?JsW1D;7jDcAr47-h@`uL7hu*0l}o&= zZkYVU04Vl=YPq*z+RkIG=88HYtPU<-b}O-y#s&}da8FgEwy>~py?O)b)?yx)1K$zl zK;pSDamXx&V1TMZ6iHAm;NHU{AtZ7q^l?35?2jq)y0_g?_g_hhVOY=TIAk9KhPR-~l8}X>!t?tMnXNnu@HVI~*1EH%V{Y z{x*I{A*Qb$I!Sld^(Wt*KNxacV)M9hN5*7=h|U?oYAw1Kh9S6Vutp2_1g+{->^=~z z&8lL&A*dIan^@5W6D|nk)tBw{WtYxJjih0fW2w;aa5xn$M>S+!m!qlh(6EB9u&^rG z;o)qhYD^l{G7P+QrK+9b7m~?>PfOKc-hXE}IMu?9f-474yV1triWL{*BW`&ZX}|^F z?-Blj&KMy*g;w`YBW_8$b!n;w)`O%G=<@Ujqgo*_Tx!;2oBPiy&bB`s9KAJ)lW zu@ja`g^jQz1xpW>=R^j2Y7#A8MScVf`SvuGf|-lSiwz#YuLD~U(>GXgN2~MjiDE6_ z1bug_w2^PFqUAtldn z;r5gi1fdk{;!tli+Wcn;GAl|RBxtfh#tTMp;7VOyp#L^ESE=NJH(eym^P#Pwfz<<{ zt)h61$gIZ{40zKEh)L7<9l+?l2rccXK?+u7QmW8IU@1|Q6hYF7YH|iKHF7ot!X#K> ziw=creUQBH(3(|PqETceh?JvyQsfvXQDp}mpV`@@nQ zhvj8C&TB$Oq}z^|3QmE+yD#Dd*IB7-{0R;rWGkUa%rV;ShxE|+F#32sasw|$`@yMc zNFxzv95y!$!(ebz&aj^da)&{a+7#vK2pYhnjU@)iwnCe$@MlpnIaJ6X&k9Kb%D+=( zuu8iy5RzrfkyRH7A-)-o+hFP_a@i=?T@x}gF6VnwM>V6<609ww24Uq~^lf3=HWfJ% zv-ObtexjBo%b@|>-nR|iRb>a%3tb_FwQLqt1f7wfHJmV!UXlo9%j0siL+!haC=oLj zw_X#LL%NMGifKV#22aNS5JxssH?)gsP~#%n8L$oo0U89YsS8%rQF=E*U_m$x3mHKt zgo&^aMXDw#(22wdB1 zcbUhWnF5`V$I+&ea5d5(=n!ctsS=II4u1)e;EgzK&Ok{cu?waNeKS!a@^}Uo^QH1D zh~wosXro!N5XVS=331$0GsjMakr@_vXajP{P6XowmjuHkpa##yqaa2Ci$jsEv62|0 zx#cP2z$g9%5y}uYbr$XJf-OaRiEM!mdO6xI5)3I^NOOcb8cBx;u90q9!^jc4JdL*} zhlI(|@m4R(x@sp4wbuEt}oom+Dv(+qKqmfw5kHwIk zU@pHtqhLy4V6AAsie;N1lf>s=CEL+}DMXFK;7Ac!#pu%>isNRv+$gpd#Op1XtGM6U zNYO+Q@DBR_lLDJ68mwtX8c{tk(cxPlxd1~6-I);9RIqp%DkEipQmP5IjlhbhHRRH5 zc*opu!!DPnj~y<1WxS9U;els1FfJpyj%vh-^Bsgmb<~C>GmUlnIIU8d^WKZoP&p43 z#ThI0kyxDK|^pQ4WAwJ&WCB$L63Bw zOS@Mc+pxbYn>Xh(3yqu3CPxm2E)8P*e^TAFPji_#7j^+ciWEG`*qHvQq2no(R*Ov>&@XU3V>AUPDpvl8>v{(ht)DJoV>XF zFrti%2RvXHIvGW7zyN~{7ss*Z#WGExB4bCaF-jdFngshpfh1#M3QEOI!g%@NuW{IoSV*x!Km@~Bj?u7b8Uz}Ad-1J8>} z6_rNFAXFoG*n>fYRTqeDAR;gd-3dt8Cb8BY^A4XWxdjP}Q*}ztQE-SR7)&UL-bxiisg$fM<2UAk8E+#N|JDl{UB)A;>pY8qlgh0f`NFy8q5eg#K&?6@{a7Dt3LgL`W!3v2( z5`;ST3gEE_|t+?qjO&4(^ae)Oy#Os5ArZ&&5=mOPxm^nMea&_%x17Q zH^@6GV{Iw@<7u&ulq<*KvcTBx#0{eG&Qoqo9=b3^4uYKEz_y|6!NBMvKOOnD$p8#K z3->(s*(uff9J8y-j6QclhySyZ_ZlxLmttlyQjA2sFMd?hKB~pu``-K;HSLXh>{YLN z-Ibblr3RNnyUtyhXA0$qVHG^32~cu0)QAZP17GFo=aGA|$0}~J=j`H@R>f+#`tv70 zxu>|vnk(+9z%|y1V`hT;koUK}A8F@)P&LV)Lzz?r`W)OA>wphK#i&%ohv3G@YAILn zuTfq>E2IUc;DEvNkB zr}ujecF;P^Q?j;$JCb`GMlO1tvb9%!7O}UN9Uqiv3@0XXm0Yf(AENP~!>xU9XPw`M zmmP5{_~U6fto4(7gMnkX+X#^gPbT)&1{A6&>n{P(>4e$Z1Rfc00E4vNVK@i4K4;-Kmow)=5 zS)TTOeCZP)pT#2}#cGp5{_==~lsiZ|$b39HC`l;*FMC-XtS}bCQypYI5i<5%1sNYw z!>ZxMk(8VkWf@6eG z*xZ?}6K%}S4BBw2ZuY0A{Y*~o&JBZ8_T&>Y=dN|Td-Qxo$qrdlXU&0`i08)fKlH@l zUu7OVBmrX+OJFgN$xlS136YiGxXtp=trc{&Yu~ns%JLj{_uDZf*UVyru0t_<|E|06 zVfL;~Xj9;O#OVJ4MlV@ptHjJBg&w!Vu1Hl-zD^mNq@K|hb4W0PSVi10P&6pcb9*#8 z<~U$UlDk;KJD0!m3qc*tA9u_85ZAv@qiEUISh< z^*ZpTwoObv!d}EM#g0y-$C4cca|1yw&@^~~Ip9TGQDaX6_*49#2WSOp728@ULDn`B z9;>Jv&EALRXh0hJ>QQGD`w3v>>>P9-?AxW!E{^IwYOT+-v78A58oP0A^$?Enmh_6@ zVv+5nIvknOU93J$U{@a4ZK@gG(>NgYS3)BO_U+Ma3?+R6(WO&9Vv4JK80V;a9qw8v z-3f~S1U_8hB*ww|1k&9mwYTY$CznQTZKr09@tPi)v$fjT9Tk1Y{fctWC3?dThkY;X z`{5&PT^oJ%G{ym}M6v)oZZ=Yw=ECwD3f8JsR^bh1>_k}(7wlCgw$XJW7_31*BgH6- znu%Srf~=+jw16O+A~X|%9n>DufrE;}<_PZ@pK6CbLNapDlOSaWEvjo&6q!v<54K{2{#6lxwdB9hQj@T zOG{eXGQA4kK$&rIlIiI2U<5*3g{u%(V3_C=*Ij~9%j2(~=vr4k>3IhaVmp_v*Z=N> zvU3LG=Tt15GD#D#r+Xnu#>I}Mbsy@FnvB!J7d44@N_QDoF<$&BbrMN2h<#PCvXOQv zg(nW%&Gz6D6xB}r{-0ee)(xAETha?dVYlik(eCwn$&E#a6&LBFu2P86Z}?Vq!%py< z<7^eS{vD@Xkf2*Bk>K=m<8&h@>}GK= zcS6`ss)VdW6`KgDRXa2if=G!MLQtK-7?vF(SFf|uuv4F`>$*DJ;~aOXG>@&I4+8C;cA265arNZe2M&RC1R}tJe)#smU(d=ydP0GbOM^*)teN;F3^r>OoQttVXhd zFyYjS&~^*_m~^>hLrN%01xk4Y|JQ_JX-Y+r^)7; z6jopk(#p^6h<0Y*b*G-!)`!4O;t7uov@`Ua(QUj=9XGQua3w?-6l|QMD_L_~eVzU~ zy_CQXXSA0lcx|FY<6hK_^54#+|H%-#BXbOla0{R-G- zFS+8Rr((lV{9(UQgkW5X@tn53sKPt@i-t`V931M*~L(?+G(wCq2BI(5^bFJ;uD+Z+$$S8Vn$&ls!1^sRcj~B_J@#nj%c|YvZ6c1 ztZOINcIG^-^~+(#Z-(T@|4LxP3ygftAghA3#q}Jf8`fG=Ct-HMCWe!e#B?Ad*K;i0 zMvoGQp!~nT^h*(087)|5RP`{(8oD$u$MWSN7h$ecS1eh;;G8e(dEJj;u^P5VLG?`R zK@+lUo(gvjCi4~94dp1QW>DR2*>1_#@3#F|S4t0sdwuNTbVVVr=X5V5&!W*_i!$=j zLPF0DY}ZkEyGb8DgZ}r^GAY0i-WWYJf`T>8I6@hfa8*szAt=dBwfqa#tW~NL3Vc~u zLxY)D^2Gt}7O<`2yjQ?vNx@Q-wBqWrR#uOxcwb%AaI^?7?H?-92wA8V?^ge?f2&vN z5(kc9n{F4&#%vg#-rS-*8ihA!vHd-dt<9D6@IATQ-NQL#Cd2h8o@oYKByX*Cmjw^Y?+4MQB zbZhV0<6WA8^*zoaOcD>6zcX=v?YP{pv?_t6XZ7GI{*y(ea0Q@2mWOIHY@``;?iug|`Ct zFoMeu9K+3~JNlmDg7)S;U#hGf{k602v(JXrd_n5`GG%R#%V)VK?Aw=oua_X^y?o`__&gnUHW?!fhtS@lF14oeMUUB|dM! zoe+DgB`#nEHiJ{*T&Ibw5*&=X%G_B_@hCb80f#TLOzbFgTB|o~KfBwkB=3(^lEcTc z$A2k2_)SL~aK3W$rj>MKzrz17f8P9jGCa6rd`X3 zW)PKfCYvp#J3G^-BF)*|FiUZjayk%86P=l&@1zoDp;pX#FnhZHn*J8LA|A4W5g71V zXm?+tGN^fVU5Cd;|2+l~6wMt(X6PEE`~o#7xFfqGkq#sBUIOtuEEl!?OO@O)K&2u( z`Czd(6`(=PSUu^59qD3(BX~f5ORt%_lf^9sY33d7+h?!I5S)@2!)vo|ci$m;(#AMM zqV3T>Pttf2T`xEW_?=6;5@(M$j2MIk;v0ofadhh%1POge+d;Pwad0b8PflhfFcPgY zfsvT0+EhLbbJP9_`N|yFdGbKE72J{+G94M%pse4Pjmj<2G$L%Ir#Z^;N5YNZnoM^4 znyq;oVu`W>2^ALhWt@h%GQOZeaW13`x~Wpc6Gw)qg#R;nVB_&h zDvTU82BqD#``rF2Mgbl3fXWZ9K8H+5oWaPKg3s?_15k!VyrjucNegQ)|NY)f0?Sr# zMsxTe9B@KDQLu94E=E=acxV_Z3@A<32!k@MpG|+;@`L-QS!HLZTCt{ZlYy( z>VP%ck|-e>{|}2BA;HDBHaA)Se4o`BEfKVg@9Q_3Bo>@!NNi$=TM(j@>lI%!xI95R zNIFY?LoR^TF8uV~+Wx%IK=8fU_zlNSMU}PfV+3C#`kzG?F*NAwS``vhq^l*GlCU(> zLSjRZ!;*uK4|%IFpl*vPpUuwAW#gTxLM~qf%_G{fYY6!62k!4_9?0ZDg2)z9r4z~a z*0kX!{XT&4EgU3_xRq>8nIH~4k$J?fM51o0!}PqCz2%HLUKyL{QkhJlU0hC#hjF}Z zZf~=acF*2}aO9~>8t%E!x@9w#ygF!t39Esg%0MH(N-WknG&a;3^JBde$0mAXH(L9e zoBLYJBkk=YWtv!baMK^FG@7E0rke2F_*zx=5t@U3ZCr=s9Tb8Ab~jdI2nIsGL^O#N zF>Hi??Eom!om0t!&cUQg99IS&_V&<_t;*e`q(Bt2Bh`35i-OQjc4T6I?MEw)nHiT@;$1O)t((f3h`ISJVZ<#R!T1AfDpUp;#M_86HRTq}L}mqkpDgl~LvNgzxB*jJ9_UgN9s3XM?^J10@IeQs zB~y?5a{V2aecx{`gG?Yf6!;7AnOjwgwLd^;4BxKE5<}Va^ilO=&f8gCHs8|viRM4J zlZ$^Qo>!@ilzNef1r=|mWk#*z_ zNGupNBCR76N{|HW1G-^I-|+{$*p&Ui{qpTieECY{3V(BZx&jnoERGm$5Ct3 zUo!tRvK)dmR74!C;G{;20&IZue+?&}>Ypc*tC19IhslgMrV?q-cIW#_o^!#hBotdtdr1HoU)l+Ec#DNl@tBhN8?NlV1Nr92$ z<$F8H#;9;}0%qiqOd=h%TfFS6@JdLwl(V^7JIq$4qb3|dcRP?n@zf#L=`6IDn|C*- z$QY@VJ5kJLdPr;(w$EPTjRRWV)Z4%j9_3f<{nqbo|Gx#$j1JHb-uW9%-@O+vVoPAAy7l9!{&R#4|m2yd+y07Zmc8* z^Q;tjxSaDd5?RGZ>te*ei&+AWlAdA0#c2<7O+OIG^Ofs9Zu#^6X=~Rm>+};}{&MF} zN%(0m-o=}nM%C+$Oih$*n7Qp|I%udNSH46N)>xZ_OV<%Uc;oL2MjErO;pF?t^{BV8 z;YHW;^Yi}ve8n3Wa62w_xcqdks+KA1v+=2^_-C!DpE+@zvCG%%Nf5|2Tq2nQ!*ZFQ zK2)n)G)lY*;3be)O(t-?#Xd%HW3cYy1yP!-mUo)(^!rk=srW-?>gb8%CzQL-8gh@% z&(HtL@bH!COujX4b$7?(E%}xQR7Zy@NZe6o7ht=A?3{)M2R0t@w6d6c5;8)ciu8+X zD#|NaF2i8U)M@| z&mHRLpu5j2OSc8Qis%5uR?!1_r+9mdkEeS-#7+9yDJtAGD`md+=WzG^QSM%U$8gMj7JEk*4>E$dNIF zHjuZV&SD^^C!ufhV%p8{3&#w9YMSUY`|Z)OeBhX>ipQ}>Ox@0cG?AUW6#`}i^_OQ$ zObR+L6~=4G;~>Kp@vC$bI}8)rZmW$QujKr@r>~m<`F#_Zn4_cbJv(rBJ6(T)5-63bl?c8CXYbC>Y9I9N<5j11s z0xmq87@4(Gldv&?Thq=5@AU^-?Hd2@CpE64Vs7yB5i|N|U=MsWnf{8auOO~Frkrff zc7vbZ7nupS##g|*1i5x}T%QPc7z9Q`u2p_Rz>b?_mgR#A%o4DeFWEP4NL)Q>(`2op z?Ir&G#eDIL;|K54xqF_(d;SfQCw`m`$-n5oh$Kah3I`qG9Ao34ktdO5z>&yOm>(UH zt42hG6z`T$B_+4XsFMFe*FuiF@k`jg{7IxB8Q-!@gJAm>$_v2jzS|f=@V=ih; z|7JdW`}XZimQ%}cAqjfY`2yiL#5GG)fdnbi500J(t=Mt|1)>LUum_vYHeG4@aMQ<{ zeu~lF2!X*Kk19z=KQPzF;f}=dosJmOcnt#5BNI=|{n|$odmQ>5El;528E@!Ih_Jy5 zR49&!DNid>L8xrs7%{Qfa>fdcSU&?tw^7p!@X64Kup`n;Wvt6;3M7Lwr3@LuiJ_=o3?Mf&+!I4KS92am_=Nf zl>j-G<~E32G6%54?(ZgbIJ``AguI1*!ty?62N5*zb#og{>SBtFwv{fn3*w z!X#68R9Z2YxR!|Nv=*@4g7@@k-*vi^@!f6?<5g_Ws9{`la^AssaxVr(WhCQ!lkr3D z!$;w?)X~F?Hp{q7eMa}h(2(Wa-SK3%Xg2VOIiid|`4Y-w3+z2FSRh8pW|miba)T*9%F=N9Qs=D!|Vfm5wEa4W3-f_YZc z$@JPOT0C!6bw2^Z;=v^g6oJ#3!W)ff!i*);z|_BrBzjIPdd6j_f*fO9hcJ*(D(frE z!LN!$PQ^?Ir`za*j~`HPERtg?YNV5gC*no!#7)bHdgy6nEjeZ0qg>J^~?z4}~5on{G4a z1nXtD_yqbP+6yXoF$C|g7WME$ILw>)Iti&7#@_&v6p%0pb=o3pAr@65m5xPi$=9en zy93t_D*CVx8uB(~HQ7;CU~A6?aE7OSZ&-)}K8=04il;}yT0ICzY}9y^SXrDbZ*Af}=Q*({$DRW9gM~7OtA!Z@(h2v88zsx!8{$Y)qnku@gx6Cld&-6o>{Py{M{jHJ1trJ`QtgM64BvO^j1fU5ble z5$6V(bOHQUx4cPJ&W%lNvILN=4xWQtbyDUV4Dqob|8>+-(=o=eGeuMfwS3O?tFzEU8wCh!B`IQ%?8Am z$$w>J4f;v%pt^cx@Mbmd^l2}9;FTkr{Y-o!JrRG?W3`43>A%pH8fR7P+$?aT#RpQU z8=w9FS;OwcSJLyph@cR*`yVqm^ID43+6>}DAcw*L)e!Djg+-Kt*U9HLv+Z_od$zsT zF8S4iNwOHPsFn%)M5!+_IT`6IovHccw$0}FTtAcHvJX)$P^{i^m;%975YP+ z!BB&T%Cu_?aDKKDVk5$eYOC@IKXt_OCo*YZMbI}d?e+^^!ppYhS~4E#MT@C)WjaV- zNMzEH@egKG$t*?_(g_s5d(cbfkL>r7sA?K^2HHjJqJexS*?L8a2&A2Wy+zRBy+z8^ zJV=dwVH~U4m`=vnTUcGMUk6zc@;xbVh{$f*Aj|OyKfB5C2}FoSKYXL<8@jx^w5KOT zsQ`e{vv+jHI4`&yG* zg0U_-^CbM*A!MMtV~qlLM7Uwhju;X!BUmF^pKatsGlyan?if0S>$^_0@%(l`Ojl{B zq}qli01+Qlu~a5SO3os>HuA6$?nK~FA&SDzj7A6YV6kk+zuYMeP7IYwa^uHhDDGTX zVsTfC+fme(Wbq`mDQP(qZgRTNprMWu-E}uDfPQqCfhI~+gfnzn_Z)b4r5uU*rPh2~ z`{3Y@^la@64HUj!80i7`Y)^Icv9`+2?QmSRG}@^bns8s!V@QinQ6|M;@@7KOK;ywr zaHt4>f$f_mFlUbAGz)nz$`Ok&G*m-4^>Bwova<;46@5T~>%f$$SQF&_&G-Piq|!Mz zDFFjEKOZC*%>m}mbv=N?(w@sDQ;37dGT!-A<`}+YE@_hid0;idgoqzyrrMGjOaE%V z%C&pfz7SWWE1Ip)YDsTva_r6-JIOrxbOsN%0CqE>WY8Jln7{qIhGFm zEYYymdI(k#x)P4%1aw8Bt+d6B#L^>U!ePNrjs`-b+6q7}f~%)pK53FI+%IGR#yq+V z=HngZN6H6}4J1pG<<@~_vqDVYwZI{8Am_PuOB;@fR(3ErG#+qdACJb$lcnUqv4dr- z(#?bWYp&my2^?bwxk+LftoUGXU_vuw@F;xryxB=3UYsu(6cgbEcjS^0njy5JF+)Xm z5p{{oSo!6jrXvVC`k2rZW!;WDPW-kw$KSq|tSE$PntYA^XT$7^ejB>J7@E|6bXWcwK;n0S#_@MXdg%0Jr-yub9^lbc)|l4Ln*= z@&^39xO>awf_EDI`b*)_X55#4sDl3sU7}+vRWGKk5DChLB!LOk5zCN$@kk}m(iCn3aJJjm+oqWb|o^hU; zo4cQl;azjU12#Ugk<0DbQ}`S1%Cuy23XBoOE#LYF=MxTp&ppFe?zuzve@{+6|1x)o zf8iPd0%gM{$~suV!W3A#$I6!^a)JHPbqItS{En8EfgyMqB$v_Q}r+gdX<# zM-O!-hK`Rq*?47WWN*8bmLHi$0UwL%0!am=YxufA^-U>(_FG>4W_Cy{$U}`EQjRF= zV0*f~Bi(-BKzq7_%{QP~4`@oi%Ceq`&!|Kv==D)+r$)fN(IVWaMAIWS1mdeKQhHI+ zs}vn!iQf=<<;=H;W%>F{?y&Aun+94pUL`MzxD1-e+?xG@T$=E!;0zBM{9pQHI;ng ziO)UyX!6vls}D~lo=86NRDfNzwQk>#87B6#AWBlwO~JSD(K5PF)@suMvRJ$pl#sQi z?`nES)4Lgc*qezUugPdftrg5jVLXd0d7--xqC878gVf584dbuEg(JhLAtdx%vRZI+ zut<_oy4!*i93MtMV##&Gc;Q04wPLF{O6o}lI)c-dvN+ft{dZANe@GZf9(0`Yt=Mz5 zq@POc-5ZT%lLy^w)COS_lv|6`;;1qrrnNVTgM$TIXAxeVNg@fE(Q%1{w&Ex$6VLlxx@$%CNkU3qW=IPRH=W$ z4yi&Ei~`E5Vgeo!kX17q@uG1LFhfAlT2oM40gpX%28Hmne~ISS{&e_Fh^R)tl-_O-uV&StAd_DSuFfURpQL^ngS2&aiE=78T^O(cDp{c z2J$1ftYUdLQ7~0Hjop$zjFD+y6@VnQG6{rC)&o(eZ*Kls-yYZRpzi5pM{W?&yd#sS zy|K*#!zkm}*JHUfurq!v;U{8m(EbXzEa;)5zkqnvv$0`dL85AySFyTWo|^Iw_tf^M zJN!)b(C+SoD*A{!J0CF3+GN!~z%y+99N|@W>BzVJSZ=3?q!tT=wm;A&9!6V2 zgAk|LL5|)}n_x=RqYzq$z}+Byvc_uzgoxlWlAsQ>nKYrk7nO#@PKdwz3pb{oFkQgy z5{@ac4HENB)XC?jPCL>v`V)&y#EK`dbPf7hn1KwD@K3ueu|>?tTwG z9&=n35yQ6$$*{93=YGNSU+?y`an<`j$Yrg)E?_4ie;!As3eaGhdQsR3pmtun@Ek^` zsC``IfG7%tutOH1m&7&5*;+VAi!$|PXFOC{i@LHHO?$EZ`(s`@nlI(qiCZJG-JXx6 z-QjpVnfg+IZ9X4x2@T%sPKvQtYKi2`NNa1v%te|@_-8gpa&a%x)*LOCe7{tTHn&0} za*-S=Cb|2QFhcyiKX{T1ufXQhOndjCGulT+w@El_9M^pr9}F6yaSRmHA2}GYJVQ+r zI8nYbc0|uXIJ;h8L*8qgyznfy$iv!vnXkOy-?-_Vp86c13}|i`3Gl{*#2PWzG{5+3 zxYy{<54k;;pQ*Z|pD!}B6e8z!0#2(tMo(7X@CEKQjnBR>s>jh&x=Tmh_msd63)Ze+ z>vc@Oa;X@iOm$cWGg*p%66P$1(M zld&n`9b@BpP+(+4kBjNiv=}A?_=_;blpa&*!GYeM$Lz?8HDP!8#lP8C^sTp8ZN+29 z()miy&|sva*i(G4*Z-m!^NTM3RZG$DvL`G;%pU9M9T+^_+{O)labNyeGnaNm28Vho zdDIvaAGGxiZmdCX1TRvMl1Jfp@eXZZ3y%=910)8~C{=(KY4|}DcjgvV$&a8T*y6;t zWIkWuXBVA3sFL?vv622o6S%F{%!BglyhaeDis@>$qtcnlbXGdDCj<_vt?i5V3%u<> z@>u{^F2N=U(&WC_(?B%=6GisROs1o!Bb)6w4ip8bOgs8jbc37{zhtSrm{aQYh86c!`g`OqB!K z3eAn=w(KJ5Fy*)O zwUUFmA*+clD9Drr_reIHlh8KEqDugg<-gT?>k;d%){)KS(e=^g;qKF)e(PJkBaz6F z%gdvq-Q7>pmRhb79%8A2 z3XK=LMc?`U!}rwV{Xspnm>;a6QV*NaG0+5Wqy4Oa1jVmQ{D8%bECGTT^-!r>0u;oN z{Jw%HMLAx?eTfBy)qT9yNM09d*(Io!cHh2CI%gM#yj&I*RWe4mS(^)1EbB(L9?i$XsHi&DmQ1BF== zER3l_uV@7<8bt|afxQA1jU81enV$f%8xlBZPkknPDOET_nwv<;oc?g}?@JM#_k^!c z-1^MqWFZA!$Fy0BR7IH^>U3H(j#jJJN~@E}((1h9M^ZB><#&3fohnaF>ChI^9hKbGk~^_V1aW(6 zMmj6#b9rZ*ktfj;V*3aRoo&c0$;%~B(Fan^4-T@k% z;73C85tQxYI3{zP6I273HVvOZA#5YxwA)52VU@u;h zHqNfSgJ13S?T<_Tr)O=-xx*2M?B@O#xP)!uMkQ-aiGdJ|={D8LJ4rq$#`HMaSiDqF zKLmP377gMU-~%BgCVI!MWX0k=ikLTE90S?9(!JD`jtlw_L)Ba;P8EcLk4{1{+iUCr6Q^hbd^u(mmO7@<5AEh$2w3M(duOGna@+ zV$`C}f%*optrL%V+2;EnM^)b?{Sxrld%*)uiAF;Fs0%W^#5|6#dVXsSVLhq*Qs+pE zotyLK+U}bu%CAJ7;15hi8?_I%IwJW6>5Nq*t>cAlfr z^f`SE%sonScs5#&d3D!+=pN}8j>CS^NB+%f_IZ8axnM^QKc~al5dQQP+3GC~^y9!= z%Lf^9QzHS{hz9J)r*WX6x8*=D<2aau;=5PmeZ(HXihD2Sw0N|$;Ne+Yv-D!jVuAxI z3d*9GXoPaY_i5``;La${-hqtwcl-Bu^zBU?O6=X!zJGuF9=+MOZ+O@$0Yd1sIO#s( z=Gbk|_NCe7VCl^y_-@H{v?by#rfDZ_KsRH*6h5Nyw7w2`@S@X_*!cj~qaC|bR!cV3 zYTg6 z>rnih{yr{@yTn8OfZip&9v@{*JAT~ukK5on`_EUWRuF^)5H0(OOH;jD>qQBlv6D@& zrUwRMFs!)XjKfGn4_U|~jIf*+g>wP;1I)MaBT?ME5OgHEt7>@>vC1@LXlvxhQl(Z< z3>9$vnUqDYbsv!9m_+Bm|7D6TrPN|Pm2W0Y!uadur{`_o{4XjtYi{tA(8~97GVaMAA`^_aY3fVAtj^ZMZEQH z*yePSwQACQ)#f8pQwPqxvBMh}bpKTOdmQIC>@qF8$M-%GZ~ncOpKTfN1J`l-db>P{ zf?&i;Ooo)VFDy}b!LURTn6&x(-V(oS`iyp2|I>EA8$;GF>ms}Ty^SJ|Ns-=w<{1P2 zqg}OYdt^6S0nz_%FJ6H+A`XD#Ap^f9f8dB$!^nmr6KmX~?GGH?6)hh;$#=)@mP2FR z(YBF;e77D7ln)IQi4*D8c-raRQ?b)lNkww8&V%%sEb}!Rpd3d7VK!&jb#(P1yMb= z^|VFu*=!-w(o-_CSvj6<2gLK1NNLSDe(RrkL?Fbxueimek!~S&l#~>2h=9S}+|wRe zjh1>^j6zRG%t_=kM%zQd#lI5#EFm0nFR!&V&ja6JC{Y;EB}|*>6|u5qv$wOG;?PF~ z2Akq_di(Zwx_5N@UVTG&D-o$X%gurz`H`ldWDZoZ_f*ibkr@@@GAzh3f=G|nd|bS9 zBtQoh6#(u+U+_*x@Wes5Sb!V_K7(?-X3MIzVnKHL(1D_S!E2|+15n9SgAO^WOzE2d z!W7jWp|8?OkTp6JiWX2Wyj(bk4VmIZQ7`K0%6T*~xDt0nW0|<4(in3iAez)-hM6f6 z%J{Z)sbCY+gJ&pErNoiqd6|~2wDS{XS zeZwpu4dFy=#~@@lrV_>WbRh$bzm4w^np@jOAzsKP+*m|R2391IR=9j;UubOBB! zzSV$8#v;vz?c|xgF@a)dSv8YBl3Bbh$@}343B7f!L@^#ocDQbGrIE{YThAX8QX}{iRZWXy?)L%#LSoKWgj7ke>)-pA>coByaKKz?em3 zeJ5CE!aG);*{a1RCGYj#a%$@l4^U?R$m84NR_wMB)(U8m7Ij{k$rk2!=oMLOZ%(~( zLoJmG_~30 zwta2j3+XkOL5v4m(M0)?M&RNLmmaCP6BF*PM<1%Wp;OW7!hn~d`p|ca?y&}q@#62h!!2(2bfxM}^?G^x zwap&;mFdSPlD+!h2b&MKTpo5?x|_Sb-YK_QxM({q!(K~e%HETxCMS~B+?%!>BicD~SO=qmZzqcV z3H~dDfK5C}MZy2R#=ak%RxP>Sq1L$PMgga5!^)s~4n1(F=Wn4z$#}Z2oQ}ioSg5e{ zV{Zma?fduv1ik_KL{2n$*0JCx?58lETzok62p0wQPD`a=x?I10D*)^8$va%l64)!@ z!~mECGKq}Gq~@q3KCZeot{9gLES7GOGjMK()xp3M=)z?s-}D85VCs?&J}8Da{@zC{ z-qcieY6@?43E!O%fua$s98cgjcE;c8S1D6+$_8cb3Dz@V7I-q89KX;ZU9gS~)ZPO! zLu48&3nLbjG`lkODyxbiQwm?1mcluz*#up@Z&@LeAcBszE$cbd^jD0lgx2hdDpZtu z&=#m3J}cJyGDlLoyS#UI>?&p+7<<>rBS($_chP>V{C$N7+w9rzn|@a4OE6EQ?Lsd* zi7eD&4H69sLMC+$@x~&@b!s}Z={WNBiPNX;r{DIpb?w^M22W&8XXNWcd+x8MYe)A! zefS}?HUZBma-!q`rdPwv^IF%XwOk{Jp*l+-WMSf2QtnA6J#<0;EIN7T4o-IsI?;w_ zOc5)dAe6}D(Eb8wg9+P^c$UxvR{2^>Z{$F<*q+U{7o!J^d}ntlWdMN@Xrlc) z!5W5TEYs#i{fhow1BK>%Lv|@}vl}%?##HfKu?FbNr7WvXJ7$ zE~Z)WLCSLqzJ;v#CR33fvp|*?E3y9r<|70Y*npn9m{(OMkw`kx0uE=muQ>`lb45Z? zGiD!67bgi`A`(SKfDa?rO96XbNv`C7+{)}pL(sN;GhZC*hM$#~T$sE3*K=5=f$THu zWS?AZXRxVE-M9e+#PrI_bv&mwSI(TdqaCNFMQHR1roRhAM33>nyNi|g?y-raf~sY7 z{F`Td6l&A{8Ryz-Uh~B3UiZ4`)29i!PhU#Q*G~-33>+UF-FM$`ePFAvC6ABfw-rBu z-OyuE-O$Bw3?vp5Vg7Dm1ql-}J$0RYkp8ax)b-2dMBkoNrJOU;9o?NdBh})x6g?y9 zq^ku~FHP|dE2CDhO|A%;n4054$4c>#k7kvlTY3Q*2-%we}YQcZeM2XOMONcR}Qhwx% zQ0=WfNwj`Oa9zXsP(n8?u~NHP=}$C0uCeM77-Z${)=sRF(m^YP@OZ+yjaerw8h%Fx zat#8`kk$^mO2AD;tO(rSARtt94Cj4<5C|)@9C4Ho=TP&JId}HS?BF1Oi*8p}_;(f)GHINfZuUKM2$Nen@*j>s#<&Y-8nRE@A(YNIU!(#Ks?B9AQ2ey$04Rtz5wH zBdp%7tSQP(XA-VNWQXj^c**PT@_wq+=5=-7B#pp)H0E=~Jou%(kCfbQughy|bGy9m z?Y@+ryie8#Y&>8Mh%>7X+J=;auZq9EOTbPOw9CS3s5#=eQb)PPDkAo^Qk} z#|YHQXLe_kW5o$VJ`&(&_hw&Jw!aS)?HI;f!Ybrs*@e@zfDA9UX@oq(F@L|5ow#k)rqugG0e86DWK88 z_ykiW(60u(HT1h>DAj|*B>K>^|$5-vUq_SbIT{+j)*zvtMF&o<8+`0jTy zBF37INkp#L4Tas7w}HnGo!W?rVW`~Y)W%vNV+9`<)I;d|8oqJGo$hQ{{Bi{4Dj2UkvGt=ZM`WiXld;?1D=*ey{E0&!A@9tKm%!5>_*v% z=>Rvb*9T27I7out5H2qK-7c3oCo))&3#X4cK(|RFk7}=FA#Lzm8iz&4Q6ht4vx1{T zk8M>kL?NYp9T9ENJ`^=i+XFGao+y*wc;(2d(*3>*297imY0y zmMW^&z59-(S`Q%P6jL>CSE^t%*9Jc9{-OKlWbP`BbQZkYF0a_Ur&;|x=&bGg+PQI; zSHOZ4`9=4)yarA0BX&UQpnZCES;m-nsY4V{)Js&OfWsE0cGX5Xk==(UQz`%CLqq?D zBa~fK0}r0erP2ou)jkvy(mCk1mJ(eZnFE7GZ&%GL^d9ir%89n-^bi~~A9Qs0#;9!R z(SrdmVu0wjBw}CYl&1R30lm&NrnHD8-z381jsq4UZfz4};^jl{>tEm)1kdl5?N5+U zf<7UXmo^YoBVm+yZOJo-XK0md;n)b7G2+^&6A#cKSQgE^7lGaR zyR+uoX52m5J-tOkZ{whr$kgfH?o_v{`AbR{R>o7~ey z)Us*rdRRrOr`IPP98hAZmXu+h)S_>LuhzVl__k|3@VD`A5By(qFY!y}JkBoG5jNI!F{|NX{{7rz!)VSjZI!2C&z{(BMouND=HsAn%4*dk9 zm&F8`E$GPn$bA>wIo7E^`H{Y*&*;zR&UjCCC--!c0;CtNE|e!s-aEiQ2y<9VKr_}O z{&*~Z!UpIWDYFv)4&teB%czY1ZlV@Fl8D^rM1~SxY%mhNFA|$K_gGGTBIi{4x&~sC zg$j5!Wz`ZrlW2{`OHm7@cOn;e+T)3{Y2vR2n){m{^&j=u-Y_vW^Vmb-yJb}cdFlad zEK5jbNFfsbBYIDwCGjiPsMuAqSK?|ciJ7`b$M=tq6i`SA4@3McAbag#b>NB&+;%mf z+_~`_iVHcnZ=5BTrxDUBT2pZgCHN6}r%=QpLp8lFo{hgQZrgkX8;>fZ z=^?nbffh-!n_|Zpr<(}hCtC!YbUcHO~));pjeE+e!xg%>qwI4zx8Ku5_qzQnRaeWPm`oIg_#1}YBZq9Ob&l* zUfwX`=mNeJM3H?)Ltr$eB)=9u?EOsyXyJF>uSPKlJglBjr_|GGTFt6CwWQXe4c+(- z7jal4(in*v2Ghc3fGQluXk>gyl;2ivY@b!-0J`vfre2|8P%9mgVilt{7Vb`{C|~1d zafA$p778pO$e^rakOTIqI*tnt2JwAJy$I{VWdW<6=NE1G$hf%X43AjmzJm73L9ae6 z8;D@THL`ydtNZc=0%kF;=PC>`nBRT-_epu(ps^ELo8Q+BQ^15Yi(rH8D_CRuF}hRH zn#uO)zWw8RSl4uLKV`$?k!e$u2gUK>QDMLHRKzl6aE|UHPXxwIZJNMZuEXkLF%b=5yRfUym1P|^rQHfqSa?ZAOhzBkxIjKc(Z``2XGmZ(l(8$MR{~qn+=DnGdT&LR zGLo5*OC*A`JunclXwE7Pmw2SI;3UD4WX43<1TTvOpehAa1&=|~PdPxBF~oQR;d`wZ zFVV`I@=)%U2gtYFuhHcBl_wF_$92qyOx^R=jYZ z`d}P8ZQAh}e%vF~lb~m*q$yQQCBd<<$?h6=p$WK`6FU$!K-HHw0+xi9BVvKjIcZTX z^ceB}V_jx4Wf(Yu(IkK@Pz?$rc^-M)flm}Blp-And<|*mtfX?Vqa<1=H`A7YAdy;)Y@{?Nowl22(lRD~ z79@{}JFzb*GH4TcO>jBo(LTHd1{uDT`VsYUsvRlvdc0+`k#fDKX+9z<^8y~h!WFEw zS?2%in|`k8HsQ$P^(l~Sj83gVhSUeh`eHOUm?C#c@(riRzd&d?X@y?F=628F|!ZtVYb&agEV44gd&`)JqTZl^gg&eKu&w z+J!=m-EJT{C?i*t)yI(KM*kuGL9yTe=BA*0k8~987h=T?-AurPm6JjBlK=C4W+xKZ0v0uFkBS%I2$;Us*rmD?u^|R zr8b&I$Q3+H9wDO(O27cmfl49a5^<>sQ%(@|81hmB&6>L& z>L8Rr*>Aw$hGu~g&#>n0Q8qAH8el{Mkibk~Y;q_bb0Ip^-8L*IM+}G43`C8Y#ECNL z7n3fCCuY{p6rdA0c)!DP>-AAsLtc zL}o3n=V|>uq$Yw(fbP-yG$*r+s;RhSbL4XA2&0IRQplfWiILQ$0eNAIKvJ`QOJL3G;zli*y@zJc|500m5H6+U5xq*LG zBTLX$76UC3H^hZNR3OniR&ueEYewMG{O#Kfd$*~1mz?TC1CT){wU5}dr=bR0-WGwA zo+qi0#DauIgcVIhFhTpkUd=yr-bHc-Va|ph&{5AK*umitv4$8Si>gAN8i!ptoXV&8 z`>>fKj*0)n%o4D_8MfKntFv7>qgQ3Tcp6AKFV$M~y~%XS&oo26>6GS7*2_H1fnsaQ zi=?bH&KRmUvio`>l`5oC??DYt9-&13tELCPWZJnz3@7t!u9uZ3YG ze`nY`kvQQ3c^URmE3&tRjF8nH-&mI=iI@c&FP3K6rhPyy+S_9HIW2qJQr^2d4tID* zz4o~RgT8p+=jh4|q+Nr={NRyNOkxM(p&Q;8E!YTo+oSm%9!ktA(! z_aer5rtFD`UXET=M>4yl07E6ei>TtrTB;?4gW?OJX+3L14I2w1G9{~q1l)}L`b$=^ z^`fp~7j-)fI?GlSArg!|pTb zKEEifhqSB*{g}wq#(welfbXZRnHAy5Mr*}d#BFP3P#>7YWCP`~t$a^+t6SpOA48B?L=3g(ewK=dZm9C!R1%$U zD(A$yD{l91l)Pk8MaL4fmeZFjz1KZ}gp|US;vjh9&@f2oHzKv-u2eLUYioB89E|62 zU$gw)t~O>=Yw3$LoN4U6KWas$-c{^OCCe!sK`JgWfS&7i#(RuZa_m@pe(&4dL-7Ln zf8nVPxrd}u^s#E_zqGz`8|SaaSQH^h`clZ1c*S5F6Q61Ao7>PZ$~8B&gH(1R5uXst z>csTsCNmHtC*Op7X>>t}w?|1Qk(8U8GXE%6^e*IwV~F9FgQ}@&{Z9NX>0fi4bK!aT zABk6J@)`2AQ8@$CEf+QJ56@!@Mj?Hk^T9L1`@`q=iXIEEr1BTWD8WHvswL)OEVAtOp1%G) z+5Db#vdAhG!$UD`CX;SLk~p&fJ8ny7I<2ClVJ_t2sG+mzKaG2)mF@)JyE&Om8VN56 zqsbCz*l~~QFiJevGLudobv^5`%`a(dZQoHl)|f4;HD+TWgj#pFWv{Lv=LQNaQBH~W zUX)nhEFaA|;Nsf3BVD%m*Qx`P`1njX*C(cXZvlfaZF6$Uo(`OGpL$CFUYnfUB$H^b zblvtEw^e?y##!5y*eV&V3owve>qw5W94B|Q?A+;{p4il3 zToX>CROgITbc&w|w47+wHid9%!UT;F9JmlE0-FV3a6CS21@yKI;NbOzZZf5{?oL!d zp|9FEyUHYpA|ETM7E5-yThf)5?<FKzsu zHBX*2A479^VDj{iB0cblke=mP5Z_ ziGnyhnZDWOv3_*%`~W=w4k&UntimL+uNF?-+MgF^*XjIRm>LM8c_wVq$Pfg z*6bC4-sc%x6E;qiC+<0d%Comuwbb0gsngAF?JrK9D!8?pdsesd%O`;4{em^g!Z$T9 zsL%)&fXNHrBbuvl#7hg0PPgu^Sh@HBU?aLKt5rdk@3ivhfUQ040lK_6Z8XMI;PaJ1 z&lzAR;c_NE@jI}DnVKlbaVcQcKs!(y1Gc%KH~769UHB_0&r2eFw0K^s7w2KzhpSj2 zEHD1s4Xoj(5B~ar$W(7}Pu5NK__aK}{9<6y43vffUnVNU{k472 zyM1^x2!;5dTkdy2VH_yCor6wir!yGYZM2snyUkL&xhvA%9@%A;N_iHi4D^bm;iO&@ zSsD{$G=qbqmW*KY%@ppZWv9RFl?Om|)EoVdFE?AeBBhdkjNZD0;HD6HkaT!f5<(|} zz3s%}02IX`qKH1xGm!pGi@C_DgpgyOzf0a$0{71e<_cYxj&X%p=a zjvF?HMDz#a?@e&qG`-{H-eyWN-)L5_#g-6qLGx1j)b5OaD<$Et5ExZUi7Zoe22kR4r&AY`5;&-0x+UA!^psDGm_I@I^t2t=(((Hqfcp^K6jm#V zIKp@X&xB509*alTwr2`fEr>5+L-E8Poq?{;+n>rv#FoTu5%V?CpQ<${%V;X*t>}|C zI$Qj#^QHBq4(JLlI(0C)-}fX!ln=V@pxi#>MIxMEs%*43s80i zSQ&QK=hhA|qEu^&KP)!+HiCA*kO6!}!jyJYZhjloXfxH?(VD_qb6*>}?)X49-rAkJkQ z=RE&Q4h%N~;|n)J`Y7vIfVnz^z2lh7Mj3jHLY^eH`Mfq>Vr32v@p$}Yv^ow`J-TtE zBOKqvi;58;R{T?ehro5#QMNi|FZ(dix6j4X&GF~rKW-pfT=jgxWQd!fk@JzzJSK_0 z!5@f|DWsU;`r^k#ZF?0Q7LR1HG9ZHWP2@L;PZq6-j0lJkLYT}PK|_3h`n%%)Exvi- z-@ZxmHvgIH-uhQO9LI^EFZmXq3ln}oOE3CeQF~w#(43zp@xmV$S^J>=a17{5p6@OB zr9w+f0WMR1;54u87{C7D#OsrLhxaCT+xG5og9}1%E(#6kUeg`QZsfZ0(TVCQCayEO z+fbW=_Hhu~Ah>GtS&5g=mT*j+DB;?OYC~eHvO4M>AJyB_#L*Ki(U{Lo{~aAgiFcB? zwkEjfF8L3`STT9380>Juutvv5hEeFss)b%>Y!qYx%F6HKu&ip`;(#H?1(eKJrvI(q zduLiX`E;hcvye@tay{vmWCCEj^wCTv*_`A0u0J>W6@T8z^dre zfKGKXUR&yi@5{9{w{{-%+-xzQ@pFweKzvaHZ`7uc8Iw^f<5!Pd36bQ(xD|W&SDwuZ zOTXoZ(F)ZZB!cYqP1l;<%eY1S5@UBBg@~Bvn2HGUyo><7>=!dRby(`7|3Pv^ytU?yjd|78Z)i(MB$AU5H8Ph$TAVBf5^JB8=!CZr)u`A; z;JpeaMH!KSb=1FL1E$lKg^w4yPV}G-4oq+hppm~Bso#j@vCLva$#{;Kjxxeh874s< zk7mK&skvkL-Xq-ww7C}>L=V!!Bg{l0f?D_m;>wG{OAf@qH`ewA406y!l#etqF@4eE zkr-iUVj@qePUEQhp*V3K77<0oWFq0WbarKkgX!*Q^_@g>A@3wx-;>{+wF?E(bMG!V z#JqH*BnmG}zWMm8OYykT1E%jA)LwZVOiG4&xKOQhv=z}BJH@sR(h5C-@dzdMgi0bX zBPJ)+WVXB9)|^MYZD}iaXIm`w=9*zyBedBC##umX!uMNfy0qgBaje*WLjs2wb1(IV zwa^rUv;mP4=|l6-3{_B+b(FlAJI0CyOT;NI*=mOZ_;R`(2oCqpX)A045er9F>{yw-O>0$AZB?osp6l zAa{?EC;#y+Nc1gI6|9%$zK~jQYWjcNMh{p~vV+8Xd*kwJAy>Zac==9kk%(8T`bmx7 zkj5iVci$G3P@Xbm2`ictDsJ3w{_wxb-)H;%{PLrRTp zljF6R09~opa&S%ZR>m^*YC7Yn9)p zIJ-uPGn84zfq9*6sn0Td_whZ)6V7vVy=kTC01NHl)-&qdvB(tzy3~u(>zWtkSI>7j zaQ8=j8fjM~T-Ft|adBlUMNV;q{AXUPUZ-BK-k{#7&frV) zCiP}Dqt2>XHK*$8oSIkX)q;A9x}X--MYW`s)rz{LR@ItXR~zcGx}u&@SJgH3UFxms zZR+jn9qOIxyVduoP4%pLmwLDQUiBXJed@jHeYitBuimddpgyQRq&}>^U;TjkL3LgI zkosXf0De^cnEHtNsQQ@txcY?pr22976Y5j6<4>xeQlC*b)K9CQQJ+;mt3IdxiTb?y zIrRng^Xi|f|3&>X^+om1)i0?3Reed_RR5d$MfFSS%j%cauc%*Dzox#TeqH?w^)J=G zQoo`8wfar$ZS_0qch&Ey-&g-ueN}x;{ek*->ffvXp#G!!-_;+gKT>zp zAFKaE{fYWh^=InO)nBOpq`t1cq5eTlEw>TlJ5Q~zE4o%$c@ z@74dM{-^q;`j+|!qlpz&Y#Z920rPJhrzXcp7)ir5JR@bKjf{a|)W~6wEf__k*=R9Z zjW(lXw3AS!(KhdW>G9YSfHf#%^Pe(P!*6`tc+fG=_|Q#;`GB>^DY@F=O1A zFeZ%y#zEtdahS-VqsB4gxN*X`kL(&Jjr)xUj0cT}jE9XW;}PRg<1yoL;|b%{#wp`T za@oD2Ho2;4H+2xI;_1w(t`oiUz^?Lu=)%whZmF0z{^|i>%+?)l`I=^ta z?#!&NE??_?r&_$ zjfvnYeMdUjUb{H6xTwpy>wsL{C^)!6-{bAPXRDC4D>Ezc;LOHKa^~8`DiyC^US3&? z>7B$`Ub?>8zqY=-Vg}psvrtz`UHA0H+TzUGdD(TgccZcyJG(fubRl|nd2x=f798`?(bi#FRd-mb9H<6e0}ypKi9|fRjD`Z zy3CD*b%y86>YUB6oLQBoFlQGRR#vWZfcFU6Mz%cmH|BJEEYkeRV0U9hc4B%b%6eQ+ z&Mq%5&a4D?I_xa3_Fv?vM9oT;=h* zGPAbUuV-345$-ZNwt_xzfvBSH9<@RAI;6`Io$)=boeI zHkKeT48rY#TfXf@o%ftsT%O-?XYQrW-}@dLOKTe|E6c0v^*J}VgBGAu>W%x^TVGh( zU=qm~^0qF~2e)=pS{{Izlq?`%FM=ExV>6m-B|L2 z<1#;HR@eK_t;{@rg$eTb9p7EHz{oG0%UP(y6`%e7iOs?udzDQe|cf9zRc_F zI2P_*Tt2(7Sa;?Y&YkOLDXGsT_2$C-5_Ez-k>gA#Jq&|WtM!XiqH*17eTgEN1YBoH z%gcn2rsOxEvzN$7gyG=_Fq|8VogbCN*i=-OmAEDXJ!{S=IT!U znU$HPIZYqfWPEUBUFayI!>M0wkiEGGoAGn?`kb_40;)qtFD%WhUbXeMPzXnFQOAXu zxZYfuJLl<*wT-j9*~VhM5bR#P$OyRrrC4R`EU#Y8+;v!Xf(Kk%Sc%GBOup7!zSmin z_<@$1!Cvg#BF$o-W5LmVV(G07?&F9nU)&K88LzRoxWM|edNn+`yi#A1$LUL>^AOAE z`~pkwJgWsO3Iu4~nHLfSeE;=hi#!IXu7IzrNf*dwynVzP?tv=k!wjN_aB;;*%~1&TpL6FTcDbub}r9 z*Hewn1)+M712fo<%`YyWtvf-9(%{zo>de`*Oagva&iBh28E!Ja-QXzWaGg$x={@dX zg{iM*=2w?Dm~dBVj&uF%S6AxE^Rz3oU3Xnf?^x$)U^+i~p2anFetC7_8YBp6yvjg{ zQP<`5*uv7;sVd>nmwXn3d!k|ektgS(-bgOy6_G-P+lX`c}T;N#?v*ufb zh+K`nWo>!MyHGznbGBdJdI4S{a-n`TvN&_aW#({EW0W|JJys$!*enJ!D>%Qfe)TNN zsWe9OOB@e)yT*xGYF%e;dyRb-z71~n8@tTA`eJ`@QSPo|Z`oK|UpRL)bJsyBGJV&P z<#Xq%InE3hUj^ePJDT9uMCqJf@!}7l)O*>qJ-;$n5&Y8qb#2f&f{K z>6KX&HuvntA|r5PefiwNGxpXIS5JSTGpj7WQQ1ofb0*`1V_YcPi!524s0HdU0dD9+z1x6VA~anhsfP$|~wCE%!Gz zqf5){^^AN8Pu;%`eW!)EyKyAG3@tr3Gh0u}Jm_CpWf7`hNiMI>&nzum({FFmKPz<6 z3N)N$Jiao+8aO+%l+dhLFgc^L?J$X%FtSdW!KS^kz*0b)u18iDmXiF3XbJ^iziI|M z3956oKj2iOvd!1Vyh}Y`F!@kuz1kp{mf!eFN1B(yO_aFlp(Y1K!6xKOSAPgi%sfs zKDJt)uRoKL#T5aMH4jdYq8wkh1ia6vGiDu;nX`Z0R+AExtBG3(GqM8*5SdO{}q|F+$E! zJGZgT+=1;&tU;w`&j*5Eu$|SNx7uG{y1ancB*Wfo9HPr;)-^NOb=T_a@QU+m{j!9{ z!##8D{6c+k&RT=dL3WGlUxuN%Ce!6=YK_K_u{v9a#?RKhwdD3U5nZmcfI*kL2>9A&OUSXKKjWZYP>*trZ9&!;rFnoxxhilAi+Aw%QYKBxZ8`hlR zv^v9r8(t3w!yObHUO<0x$@y0Q+hh7Vg?l9hcutj5~^ zF3g-=tn;X)+5QHL8w(*rBaCaumXs8 z=aXA|vlr)5TRW_03o}dJ);`p7;~9TzcSVTB+IhI)?We6@+<0dD0UKx0^lZe#J1G7c z_&r2=XZ<|$gR)oG*xa~yc1>u1JlNb=iLEnM)?(|c)Xk+CV9gqepY1(atG%srdLd10 z?QX1C>sJbN-t|0OR};! z+w!Fsc1gd!C&diXl15{hi--HNp?QD%^2LxNVyhwNIczd{^~%I1lxB%xU|hZ!y@C*7 zU71;x{n(Y6_1W{zmGcYh!H8s&>D4de*bG)aTekbJz*uJ3x}e8xKcfgiY;MPqjin1q aw7tK54Sg0|WnEidz9Wm6ms&$f3LcXxMpw-$GIEACd@Wr5=EEV{UBaVzdx916vXmtw`~KG*&Jf;S)X zEtwoMnK@_9L_tYjSj3VVjuW&B_+L;F5;IfL^Re)f@axNoYr9BD1uJW+t2(b~a;F;^ zX`4oUHg~JCx3O}`?e%hs_RZz@>#_H%PYM7}eep_3XsAxe`_V&-ilZRj5&d<&c zuU=lRtZ#2`VKCVL8|wcz(ZJBu<#csqq%`GtIl1A0|JBhv!y_OAcmVAG>+wHK03vKK z#$Az}G-a~fbIL_DCevD1I7GKe(@{UJ!mYvF=C2ZG{=)RQ7KhEpmFtqAe~lA=9>hbN zK3~3n28X&wMn%WO#>FQjhN4EMBx9sxW@KmO=Hx*NP&11%phacn6_r)hRY+xZ4XBOH zO|30$Uz?B`x;nf1`Uk!Z4k00qjCGApj!n%>&mk_1EPP*HSzTM-*xcG)hWoy|uzP@b z`0MBh0qzX${1VQ=*4o(Y-a_lq!tCkw;r$Kv4+J7-Zl)fJM8u;tC2pqt7AV_u6sgcc zizn)OF(C%eYrIB_QWYeySa%nr{e-uBSMYh-0<(Xr1#Y) z3;o$2D0Wshb#1Du+tYWsaWs$HQ(!* z6_u2QYpEiQ5$ae?(6!~%$WUz|-0E1d<8#+Fw&wj^PjNrWUX6J_dc*YzwimPMle2E- z{l)&k?+B%1(*LBrTG5JIdbr4%U;3daSlFzx%=YPTHAM3rp=KpamJ)9-?K?H|YJ{rb zrkYEeoJf9@u2t6$uLXe|TQ5`Jnu;8YXcoI%LsElEPh0(($}D%i^%8OFamVP`pQ~qS z)V}4�i`o#D_Ft^UMy(U$pg$*>W7SNm5^KnCKngraz%S9&&Y6b{8k81%p<7;(zQ!LK0q)CRQg*VNGKZaz2qo*P{+u+Xr35A*My za+kyiZnKvWm;|?^kvRvGc2F5$+=|dfiZOJXPMEOfn)R|hY}n-VyKOkkpxtdDuf846 zxo4bG4AP*m?^47(p|)8f%^23JmNKixCn=Pr-;X}yAT%r&tJU2csu*)TukL35_*>)1 z_E@o5;MHxLbL822jgDq5<)lM7h3IPKS(&A z=t>31H*id3FqtQH8hze*zFSn_dcR)?`|$FMW5M}li&Xnj@WQJnlCa*We= z9t?tC1^I2rAiZ!0H=xlft}u@dJk`gB-kKos+f`iz!A)^)!w*NL01bST#<$r#d~$ zRs1KJdAHPG6zAl~(qFhCF*Bo59{$OPw*RUfs4epN1ow%l8H6^KxEsEv6$V#{A1Z06 z4KEjs(c7KE8#Z!-VlroBKbcyssunaz1uq6u;MCMeNm_n&psKeWz2uWNTv-SW%{&mU zdYbVPWGSY`V8M9Y)UZj`hD;rmkXY(1>QZJV!4~f~5h@&UqiKip$TJ!CXnWN3G~4p& zS8RoYlvbqlm&$TM3St*13o3$tYtj>0b^nOyRVn|iy>C0$`OTu&$h+!NfPco60+9jR zRmX5JM3AlIA?3<@RW7$VE*@3u3=e6P;x#ajd6OiT=sTBzC0MmPY1W2G30+JsnE+Z& z`lnqS=#Kr!(k72w^sw>r`r=n4S!)kYn#Vv zT{=m(w|ui|JLfobPU03u0&x=K$IJ-dr#2Af712{esIk{`7Y8Q=aDdq-D|6-%{j8Ye8@p_qJN#jLnRtS@7oL$@7^C3OvoU*uvXC2*ReWF2 zS#R2X2uv+ekD)UT&0-Y9tP{aiPn`@z!;!DZ<(`??Kj*HB^U zl2p*7XHJdN`kdZVnK>wr_Fp=gEldvMR2ykLB2thxK`j3l(W}r>2mZc>ePZ!Ep=_D29WVc4Duai^&~rRli*bG+(zi<~ur?Tz|U? z^=`8RIy;9r+}sp;e=IU~c0(H6e8XOMu9E$__9Z?CboTB(4Rj8i^?we!d;R$j(|-W? z!9D!3cMthv*D%U}dnDi6K4z!y2ok49td98pU1Qfc-~3HdP~RantZPzc-XkpK?TDVJ z8}-8=AjRzESNo16YV~`B^LoLt;OB?A;{LlrvEGvhREe&SaQ<%04>`9=3EJMg z^6p+QytJo!-FZy*>0A%Faz_gOF_Y};T4n({QGIBR3b`Do3+lko(medgTnewWi(!v@(1p#KlY#NEWE7t4*YEn>%X+tc-`C{cn>K<;{;ad zZ5ZtBfa}}K(&vBoU&G$7Qo>$Ou)!+Ey{zA~uvI707h$jR$Zuj{#A* zM>+ZVvRp^2cLEvQql0s!Lmi^SVxz&ru@Q!`A&RjkOkYsCV&f-*d5?m#V}KgManzdO zdWuna4gnNhQO3fNl24J)r?^t$`0~jB_C+AOCWtl_C@>jb9~(oF3jDMIWQBqR{Jp9T zK_uY#hAI$@WYC2q707T6V!=*e0E5s60iO)xXNBYEHxd`05{0W{6a8Hh4J?(ryfV6y z6#e4#9DED9qDcK?qlsgW{F9G!lVhust#d)>&C%$Kz-dDedMXfo55Niq;H3f)sADjx zLD-8fez72AO(PGi`=wd)oH}tX_T93)Mqix zQi`jF>1+NoL8_|JX38TV5W^O>eFo1S1 z8GSKYpc90*mrSu3&!q{Xz|PVp$)eQ^V9^BJ6K5%O1M9nDZ~`(c;xa5nvaLjtj&0Im za*8gv@<0rLE9>)@#kF)IWLNI9aD%6`OX75LNKSBfPH0^8Raf+<>KGgnH%Soyje8=W zJpj2mM*lgQg&KsX37pLaO~itj-66R~5IArmgL`6ob;7h^Zb(&*|8q_yBrhZ&uYNO) z&QZ?6D7_gW4#E`28VAfiO@ibG|0l_s#&pk)uQG@QQ6R@c>h9O0x-9_h{MO6w(Ej8d&A#&Y` zFWbaXia8)1|2Q^kZxZa}nd-di?mW;|9(*7))-aNR+lxUnfp#%dfH?-HMgn1yEF_Nw zFR^9iD8$Fxtwr2IQBE^skGjzw0fzubjsuIk>)-3R}j`~>kj%xQW5-89=cTp zeyNHet^UGVVQ*9=hivo7v%-D4GU>e1&#m+($#iH9c`VmICCiA`wJ&E$A1`#eQu|hrXhA#x3ESRi>d zP%bX$iaD~12r~54OG_Q7nIDhF8Y8(GP)q`1#_oxO^wuzE#MSi85|(B?meA+rCbI-u zCIl620MUA)Nm5(bEr5D6E>zTkEX}~d$Nc;R2+n3RB(6WmxMzv1ysrvG0}axw>#$^l z=$%E}inZ(rCTG|~;^IJG4H7asp%-X@M=U)slIF}w6VS9+pNjKPVGd-_V4xTR8YhEh zB6Xs@1dcgChP&EYgn_K&L*?B;hWTLQZPr%N&>G@SC$`9qnC=yOkbW~Ta1umy4W!0K zAnu6~cmz5%_vu>zCCL%Uu7O(DKt7cbR_f%*rv&~)kg;JVYjB^%BZw9ZxYPu=yau-= zbkqqK9mjN$`$yr50Ci(JJgfU?u{+inWAu~?CrAc!aCjjFjK&u%#LgQtT3L@47VY)`DPJ(3K z0MwuQDKr7NHHkSVaWESb2n94?o^7SHuA_J})05aOU!|Y7x@)3(jl8;}L$N4`EmC@} z?Nw!lYp=f`2Qr$Qi^sYWkksie=Ee6u6+5>k*w>NP-QjE!kTbO=9}*xJ;6>;Zz*_~P z_>uX{wt^Zs64&41Xfolix-#Uv>7!QEH8E813d&UtAZO0NAYBRC$h3YRBzFgrr+(X4 z39KUSneT?K7!4r&fYuPZajFGy^~KJMYMPq(S_bU|vy~*8grp<{P+I^$qJuEFbAi7{ zs0Lk#-FGoJRv1%ve>TKmz5|J&#mH}=xtp%(+dC^H<0rxM1=}I4*eO?pS!+Z?__Hbh zWN4{rW0h`35SLgyZMm%;1LXCuc&%xZC79O@77o4>C0@OqPdI?Y3yLyvxcjLO9e2U#K5&M-m*Lg&8P;FQ`W8&3@mX#kD zmP-a&2;N>If|%BxjT!!UW=SL;1n&C+nE(+B_9ZpdiL?5%vP>Wwa*!cOW+GX0jB<0E z90lwqu}?>&6xaBtb{)to%W{q<`P)z*mjLu1P|{G4 z2Fh^rdcR-IO2^y^)-{MrebM%1kq;AOIg_oLv-+|LAaf76%Ke`25?>5jV$e6736V%nfFogh{0h2%ph`(ip&6Sv=P zDU%0_A-z=pK$oGvvZwxJ??kz)+|`}L&8ut^ef)1L<3BeJHEgWa{kyH1+$f&9g6X4V zb@d3J*(8q#?d5pXg40J}n^HK_VWZ zuLKOme+w|J#Bw^L+6fWu^MX%;h|i9k1w~=@LqVTF{|Z2^C_kyNJJ5?ku*=zf!DUC4 znL1OCF^6u>;>6S7dHF=&tJty3`Xzg!L?(9-g=8jalb=iCUCH*@3exrw%kX<|Oow49 z)y@l+Qv$d?H`)9Y`sv=oZ4$!iT_XNwSg^u+70guxGHo~%XaA|+55%YTB5YnfL>oJ& z2zej|nM+*U5{ArB^*}>zu&(YB8vC*_;c4}%zMNNUD`?fw<5#3J<0P=a+EHu9Qrk1E zTFlIwh2J<5=B(1Vqb|QJa#gaj+mhs0{^^KI9fPf56O9O)_iLjz{dQlnxLY>I;;?{FuU-q^gjU z_ollTDrTt5DK1Q}xOK1?J*Z5qC?dcUG{%O6KEJfQy1u!+gTa09>*Va>jD`D}<>8r% znGyhU;bv5o($blJJF}UD4)J54RC3<{qfodAx4$Ue48g|};eGU{$&$vJkRdY4#V(gl zp^V@%zkF%MV3fkgBj%P&&5%Ng#gOBs#-)Xej1e%$FVt)UbQHtG&Q^ZlS*evoZy4@M zg-6(aC8F&F-NnwKO*Q!Oh5!+>*|a;e(UnV-vod88K9rOnDNf7&%!J%~m#4;A>qgR> zOY(|0T4vOig@(QcX8)oaWEZFfdq0@u+bKGE6rtEo>!*B9p`pvlGHQW&b4J@EU(tPHdxb8&<^xf z-i|CReT?u|S+JSuHD}zsD)|zF_F*SGJ;DM%9{qSK=)4e!!j4TDgx$wfjPQJRQXB?y z+5;kduf|UQgsXFkOglL=pMy1p(lYEJ56_c?$t$TPhc$KsJ4~5qro%zUCuRnO!)(OM zzF_(vwTu$Vy|I(xdEvKAQl*J|GSWxsrYlBDZctA#8MSfe(If@)&Tz~Tk4<4`eQlj$ zDSY;raG75D4v_$Bea&H&ar{0fGg+_Gp#I|reF08W;*ARZXJwv9^gd*%2x^KT7Zl;U zw_$QPnk4=qC4!Y0DWvx}?r+$8%+`I2Ew6m9jbHtL?_MgY*MT>0klXUY8_TsY)%> zx3hIDGBV6}o)y1ocnRHhLS`jRmJOIwPiD#vvVVEAv8F6pSSjL?QZ%Dhncx%Q{5O zgH@J7)DN4sO@$BJI8FBF!F_Z5()D5dkLi*JyD**W!#m0!e>^VLDW97^4&F;;R6NE6 zo)7g8I9*iz+?DzbXSVy?wnX?d_!k?0=-b^zKk@s?Pp+q^VT|Ax@~uA#NU*JiDT-}3 zvLmr@{wt<9r#Vu^&Vff3>`>dgh*atgCKUP92)s561Rj4W47+A_$Fn^o31VsNWX&%O z^!q46xx?slt22f#Nb0mPdtn{Q>QiGn)t96evmvF`VY!jR>8qSGS0nJ3ZabLF|A9!XBJWn`OA z^0}jF$?k2|WH-zT5^Fpu!9NZuU>gdOFKMvUNd9ta91=x2Lf*7Q(<2(HO+`h~^z@9j za(W&TB{hBCjDjCW3?Db;i4xN@%gW7h?)=2IS+uem#5M6NkOzOGlslju<;oD337QT^ zedhMcBKb+IYKeK5GRn_LCg7oJ%b5Y0^FHP)AyIQw&&XSCI~HhxsJXgjU%4uIQ1?_uhGZ!+!m|{+p<0$DPbkcIYD~9yx4A4t5bOO z8uhGNz4mjxmOQ-%x2(D)@iXRSOLf1-jCv&I3!}L_eV+lH%7;{2wKJtfhF@s>xf@zq z@L9C>!7{~5x!_l1xx7zbnq23vw^F;tC50d!WhC9@fvPPC>FnV(R2+_qN_j>zPK00c z|GL;q1sN@Q`nDBwaM*o22l=$M7GB7fI&vv9b8TFq_9;^BTShz#n< zGyB_^)BoG&Ptd-Ko=2!aR-Gvu%=jjM?d_nmqlay?6QsT17ll#m+cSm3ij!H$ZpiGY z7=hd;7EXymhkz$6g~~h|0rTGLrk#{T;cZ5+td<EBM^kqV-VNo z%8Wg#8T%`7>dT|rBm^5$WYCV5F^wkW{@tWSCfd-_iL}e%JBwP9*}kg>bexR>kdMND z`8$Zj$45H51?ktp$;iTsO~pZ?#ONq1PBD}g+29Osk+|OM;VAvJ5dRJ4u^>l{)SRNA z^*MjRVk$uhTD;IwFi_)_^y<6uxi6!ka8%OB`@ZRNtNcgB_A4vkTfrKCSW|(m)`)gC zXq0s40g;vtsx&0(A;3QhOZ|fTmNimn80E*-wqFZ2Tyq%w8pe8QiQCIaKqGt;Cvy!% zW?oZFRJ;9}gYHVFVluUy{LtP|_}l4o{??AXb%y2i{CjBLk7o>l?4=MlpQ?Oqv+>_* zmKBh^SyHA+IZh2{k1rG`L&&nRaoFg%5!1QDSmdFK-#Te2tUp@*^iGW`7z+BTtWj`4 z(D^jRQ*>i7|5*O$%#kHR;hC0FaKwNW(4*CO#le(Z`Ht-VJgUFfN>jo>KQ%*q{i7)y zlzH+Gp4rk~mFu%}(CLryj-|NJ`%O*X?~uzizR+?+1v_t2d#48)GOgEeryx@pPS#KjEx; z+IH-3b{bZhte_KwAd^vjR$%7G{}5PCzAUALt-zUAmbVa0Qu@6^u@UD?z)bvDB_+@? z^7YVg;q^jg-fwfk>>&&*cyqtuq3zE%G@orhc=wNUYyDs0cq8AY*^B7oJz-Y zXpu3u;L|Soci#5NVC&s*NQQwOV?6ZTuGE&-pz-uO(p!Si_O(_1m+F)0+jO%t&6t2OXJRMNT(D5W!GBX zZG_2?mfUThJ{|@osg+Eky(YrkPZCAQkxWH(kfBqTNgg<4o24aXm%*gHCgcaAvcn;C z?2RA9qOKt$h0z$d(ekKT3e8*b@(A$s&@=sabEKgYW>&o6|l#UJ2$r2qlaAh4}pb2>V?3PpP~kydnx#)m8gF+Ml=2uzx8q z=_@QbP5?&QgA135F{iC($|Jefqs>^JxOCom1bw_@ZuuX<*h8FPD|%TF##AbvjPY(ip#P#3kbu{< zz_qmJx@1oVm;71~Ra(>~8Q*CH|8$QAhfa?dD8xvYGTHQYz&vp<$>4H@Duzo`I)rC< zO(qIQk+AA!e@-b-MjRQ$ zaf8EkYI!dBlPI0WP@<7AZKc8gojRNwP3JS_L^`HI{NMA>ln7c>>#ZDro2d4AFI_Y| zC}9>L(j`0k`nBtZPD4a*Q(8{kQyjjSyvFprh}$PjXZqwcgg?~q&Dgn&e+bVkYTRx~ z=Nz6DxiIs&Ai*BEbUH{;ENtgixFkA)soETpxO}rsq$4-@R3-TKHX6aDc#dw*-+9S+IGrqIzkKJ`_rUl{D;S{tvU?+1q4aN3 zi4w_!L+@B@h);aXOZ*!j=YBfim((?UtGc&4W_;Bri#v2mBqrj)UHW=y?sSyFKR6Du zn>aB0%99ZJve7>gg00XUNa zBW0XhB=TEfIBlshZpb6%V^lbqIL`0i4;%9^?nzZj)|Rn5+>lDY_p0vDt&<>bSG z@Qt)L?A?;HBkJfwp)_)V7v0END6s$qYMv$L`FH8t*YaBkY0`ZyR(`8heuTSjuhQEz zTi)nG{_Hi;SY2+jmwp3lyP5OReVUq&kAWVd`eEh_@hIqFh%;qWeaQmr308}%%^~{+ zryyOjN{qgCWdldAI$YgO%ihBK(1ZI-ypYYe>F*FUs$hBpy;Gx$fa2zx87V^4Jk3lY}D!fv@g=xZS0*@5o-Z4veJ zStOgL@bmqmjJl%Y2pttz)c$A$mJvp{K1GvtMfey-FbD=ut%C;iU7qD|G1>3}H9y^V zy8q1DBwxu$#!qjwAjQ1X#l1(gNEb!#$p&{kjsRI%DiLf;Iet z^>PeSOHgUqG`P6FoNaikK7BE|gPcnve4$DC^ppY=Nfo#Xa1;)l*a#dEOkEA#TLONIm(UHL2(@ zsWshs4V(Qg?H@jq#E^C8Q;4L^b>>F~#4H&;#6ptvI_3NqRjlR%N`WZIt<8bz=)US7 zPM(W?$HjfDHUA`%{T`4F>n;WcLJ>ssT_Mrk&-nyf`2?FeY0d@V&k@~M1w3oH62H(y zV(dNReIKdAgIO^Q{Cx6A0-CzZ)n3Yz1oJ&e3XB5NMnnp}kyPT5l+JY(Fula^KxDTL zTqQSg&ugWx;(;~>P04yEZ|7E~^-agMw#UjwL5)?LRhbBZwYHF2xSraUms;yheVo8V z64A5yOPx-i@oj8_uuYNI5mSv+K$l(3swhlX0(%Q%RC zr8bgUH%u(hJOOUb8UCC>-77k{D{JgkL{h;J)XLI(V6lNPdmc?f;v&-fRpRxlSWv@U zUS)t`?(=-QR~{61Q4w=C!+LnNbk&u{WlWUXj%9Y3yB=8;3NrOYSp#dP&k+10wB-Yk zu!6dB27%hZQOSC=VA;&Fjan4Zx+;^py4RkHSF`S(4|t;WQoUb4^;9eb_AQGxY>FoF z5jTe0K@4PuCoeUYW*OHK6%y6t3<2}yP&oBL_)2QKAoxbVqb6-ZxwX9^W$K!b=m^w< zA2rM2d;TJPpq@)+ZSAgYIzoQ_F$0W)O@$?~pj}wx8D$M~1?Oq%{NzcwUT>0pt!$j__~2fe+=_3#6Cr(lQ$c+T+Xd^wRcKu1`WSc{zD(r;c(Hp; z&U4yq>=W7%xK4b`QQ*~in-?>~ zq|IrjIcRlmDQj55hV;oD-+xTr^=Z(zbF)@t;~AyxR*z+y!yWMyh=CET=as=MK*Xrr~9-voHK-jC~V!$Kl} zw+K%3?rv=#%E}wwDqOF@c8$UfbHNg>H(G}x&^C_6)aZW2gADTIif0H*TO->SB#D4KWnzYyQ-tmEGovOZq1dxL|8M90AEHW^0YjNG4E>1 z-?2r1jlC1IW@PTTvLnVE3jJ&Sc_9I6iQL_Z{2d&LaVLz!n4xU4IL>j^+DVf3QDQ~H zY(zjv=1f7 za71^@V731$SmAk5w{&>{+Yw6U4*ThVkExBBX+0jPKnvbT=!4BA`yN1C z`@4|%Tk}N3M+q*J@CBSct>p%j9k@^ z{d+ns%zB+I0T8#%TQlC@=V&QroG|wEspn>0zK^Ek0+xc`N_jawL~OtP*sdm@V-~Oc z=fPikT?gQJ>l2AYrpxz&i;N$s*tyK-!!_h%ra{XEg}#fnlG=yAuz3*If`99;^0MF3 z5GOR4X82me-vHIdYd1!){JJq` zH*D2EVBzs(LYY5h13-*rT$%Ijg)cxD=`y8ea<)Zxt`i?8_zm5Zc-tp?=Vl=h>Rq8k@`;ot#}{ zY!>ZV8|#UhVV2#sCKxsl8*lu8h%{4~DTx}EW#eXEbRf+aeQg$fw3|#5ofS5R_;Gr^ zaXLpm2abV7HI{qNA_R^3cXo|dy1tt8m=a!>R_fqRtDF*ESu&Y~{=t)njbbXTO1gN> zclw!34y|F+=V64oJbo_%2KITsi6|;@Rw{1YC)S^roW3TwYn#! z?X?1I>kVeT5wLewLH5lS6TT&tI{n{+?QTCSUC}Dl=v7@1qFY`o)XZda&r2)T?c7Lv z5w{133xwS127(BF(Y8D6nop+AEe45iVw(x3aZlKK{dG6Bg5t2f%o_08Pv~OwO1qwU zuCA6;)qdhw<^Hid5C(_E87zErFdn(xHf2#YUo2fLBgFb?da2x?O*~}Fc8*jkbXxfB zgQ9qVgmxloBflQR24DY%6hZEn-%?B!*o*xg9py0bGek>liTl>Axmy#pG z@Hd1fi!a!;!X;4zR>az#0{f#s)IUDM7skpe8d&)#8g=6PYRKtjCumpPlqTBE8PX*Q zZ86hXPu##Z%2GapNXk=XaE;2-6lfvk=_)T>G-@*e$Oo}H=?+#}D{7We@f#upSwRyDCWF?YBMyl6fhF1clU4*H*9j64QqyLtt(1=!<6MhTxt@|%-~yaz z0jn0Y=-Gu#ranb>=lvP?g4^`XYibtc9FowGNCKAxwGTx@9fM=Hguz4GY_oa^3*meP z2jvQ#E(Og!fq3WKU#=T(&qHIYgn}4<`L155`2X6 zsw29DB?e(EAPV(-Lg1)G&!|8tKgI$CDX~&sOR+7Esic;73rr32$O)`Y7vmF0ck7WDJr2z1+#RmSi_92B zRZ>cj3kK0e0%IdH1Lp$ivAH}Tu}u0?>%0ZSIh18Fdwn#z?vj4gyK}OBC8P;I^Y%T7 zmN?C~r$0H;%hy0q@;F#G^*%*25(XvIvNMb5pLq)Pk3dWEU=eY79<;(kD%yl_v}Bvp zR)WL0$)$Gr+zs=M4!-`#@;!*liP*ZXBR$TJgQLyiZYcHUzr@VrjJ6IwZa7Mti*HOJ zUd-SN;^BsE%ZX|u55=8j#Y~QlzYOC@%Sevm@my-iRkEbI3m>_e!5>;YcS_gp&5ghA zK?MnJHefb-xK3OX9$rT%$vXGuvz#98AC7ljwP7{=VR7$i>jh(Rw ze*JU(T?#3F9EA)c!eJIFX(FbvE*RI=K9>bY;v&VeDF`k3bmavT*~!x+geN7x@SZnb zYp-O2r=~b#I}Vi7d`4wov0YYi-dYC1?g!C6WNY?{?xUIukC0tm(+zC_Taq99n1V0P zyEqfpXj34P=(d8_qCC@fHayLYWHgg&h`xKpwKw3o?Q_B^%JbT@|<9G?%ZG z`Q)yw!L20bp4<{aAE%)r^DM<)GuFGuIqSj4YzqPNf8O-5nZ*_(iyqn(ZtiayY4JCb zF9?3Qu(LFa?K*3OYwEqTOUUFmC=*B+P=M$r%~r)#0dKWXD5&CBSx3FS$>;wZAOnp= zIvz*zsVIrpt)CwrDdsJTQz%dIHTv;mKFHnWd@Ir)#T~dq3Ht31lwbu&?bc|%*2GMW zF>A7r&ic#mcdOJBFVtp&@BK002A7C)CF>P6>bbENGr=+(YNXsLO5rlp1U@7n4^FT7&oT9t)T&|(8ttsr$Vnnw zf#y;mquP%w2eiCabfB3H5tRS@A*|@1y-7doKV_eDgyZy3#J5pJd!W2g6p>d;;1D;2 zKR~LqSkc8;*}J6>GaDrUwmjkX&N8EK>35ovffmJO0UE?|FiQEsj+!OqN^Gs{CNa9& z61f`b@1IDL07@w};d)fKf{a>xH`i1n8^{oCXk zu{d;19NIIx54g3Il8Bw=eTM>pTkbar zJ%L*uD%jAyQboKE?4m}M_(SoEg6T7Yt(WMDmvmK&CL>7G-beogWLo88%=F(cx}PVL zPoTYDyuE*P6_Wd4K%RY|Cpe(=B(TUHp@0c#@FaM;N_@$BMv)vYv6R%t_V+5KRIAm` zeksAqa9;A=a9ZXahH5)%hsaX$A?{;qiC}O!10sBfhv573V30#Q8`%u<%HEP%5&?;6VWl1(8`Y!lM(`|C*)dDqF(!gJD}6BAtp>^6F()0I6Y7{VaGKCj6})DD zZaISl1|WJ@pm-y?kyL^|oEA9I6*d+`TRBACo)x{EMS*IIvgtCk9ZU4jGVE%ylv#X? zS;}YuCeT(<2ra7XPOmGHod!^Y8=_B3eVGH2 znSdJ?{RhqixPX>h=Wp_?0x08lB{j-*UG*ns_Fl7kvTZy%EzQjVO#Se2vB# zA#M1VjOOV3pYvawtr)St2rmX=pxjxdnvsRN8T~o4A)K*m0 zV*4ePereU*s{m_J?{iVffl15w7R&x~@Yz!J_cJnM@w?|GG&pA-)wQW_aCQ9hFf)Ft z!&Y}Rs=aZ9L~PymyQ{CWinjr+5b0EUw3_A@J&l-ifs|+ApAQ$xt~yd1_(pDF*zTWp z*o=1Q$$8Q0EsC;Xe08+tPKEZB3dxg)j8A9Wn2=I(iCmJ83JetY;%B>s@e8#AkR<`8 zUI2$X!Ovd-hRzA?RzVinB$Efy1P;8)Sd@?zHN8w?aV#`V52VaYU<3xLLvgK1@};@fhTOuL;Bl|^h}Gi5WkE8rLFRTth3$bUnn(}7nN9rJe60y z)SZIL9iPsfVn!RC37=3IzYx~o7OAOI1EDiTgfol0;S1xW(oa$s^u(jK&z$xn50ioJ zl4{aiiaXmf_r?N>ilc(bQKuf9=*-p#H zONTZH$ZS{2_Yth}Ru1xN{}3pr&9<2C$t;HU!WqfT^9;`d-d{}jtgaL3i50obN`a~7t()y7+l7=xpM)@5A zRX#>df1R56jgF2WN7{z>Tt7KoTzg|Rmer2-%(|N;HMbu=FZ;T~J-Va$dEh;IkUi=; zpV;R7f@zg*hWpx3+`^{{8j*n=s{{m_9(>EZO&*6J7Q+A(6RIy>I!wE5^KoCN+Y9Y3 zRQ$^lyMg~UBF*z31GoJ`4*hgb9zXr;41E;}`}5c#+^B{w2_)`n7-qxOVZ!ATvNP}& zxAX0_rE%oC^)Y#JbQbdS@^dyBLvj3q*q|{;^B7C!_d~ZBrVfh9+q)zW5C5Da95?cm zFyo)N{FJyYyry*={_P^!plZp`S5K(Z0qL0}tpi}{=VboX*jd=Gvz>zc3+o#xGvH)5 zjTQ{^3p05}(I?}SHTpjQT0o`0fUph!*o!KC0e#nancw)Cn|Yd}`I-;+fY(F-m^CCj z@`2Mif-iXREHjV~IRh-SNK-h5C;5_VIEQCN2UUbKbc;a!sG2i+Paj7tSl{8q2qgHz zA-H&>V>+8_dZu&wrhEDrtU#NrK%lGjH4gwbV|RhWYcxA^GxPbL-^wym_=PLEpli5y zd&{p$RZHp^n$SUcYvbRwWP!TMhIz)|iI^MQ&Utf3fV)(q;En&D=mA-U0hwnxmSelK zU%9qlJGW>1wu5`OqI!e#Esv9^phjgnuGZN4Gb=P{iZ#SV+hA{lYCXoYihN_P2 z9@KzOGrq0xAty(_EAJY4#xOMItO{KQ*)#SdxE$h)Z*IJ&F4 z0Tckp@3@^KzyZK(brw0i%e$?wbRPT-CLm%s81K%GJB#h#O8MUz@n65pB>^^12Oywh zbRqSm^9Xi8?3&41?jrR}gY+1z@l?PEmQc9E*bA~ssFJxL%*Y+=%xoKc*T0R|^Yo{P z{l0@LBb7Z?kiFS2A=`tB+siiGhmqR92-lyM+?Q5EmO=l9cXv0#Il9}qj-UL};3$}_ok(>rffjqmc!{S-Xi`^*GfVHuSrCfD;9+Dki(p)J75)I5#9bT3S@v%P3d z?*NiWdX%exVZFq7!#}KYM*Q3lLfdQo+vk4V@4oHZJ@4PX?gu~c|Gw|z{g>eW@Ebqn zm)1=a|M3q@@)v*eN5Ak-zlaxq&z!u-qAwt4bPXSKF>`buA31iPbi6Bm-&=Da1eD84 z4PjY>lbhTt%0W334K1d?8s1_{uJSIP01%)$ozkbnVyHyK;iS|Nr6w$Ds-rSBJDE@i z#S&&jRO*XtE}zwDHVf@u!_zAF%WS{f>v{g(kN^LJyAy;vAsj?JR7_-CbZmrtl#HaD zw5-Iu)Xe1E^y~!v6b&UEH7!LQRbfO}Sa5iKb(ocKkhsOo)!pUY6&Uyx5C|9^4md_m zR$eASDZ!>zOzQ;8NJ$hyU^q8tIJy%Ofj|+7FG0yrVK8K&`|x0y zIC+YPVnRC=6GG5aaU_d~3__lucp(A>!c-Lnt-_O0<3^4hJ$?ikQshXIB~6}0nNsCS zmMvYrgc(!jOqwzGWNhUM7A;%5Z2g=SRA|p$x{5JFnv~hmX9J?ikz=jf3l%9=X$wK8 z4b`o2-k7QSm5PXSWzQWUV}(VB3H2B{VX^iUrqO)$6SadRmI}eXxDuD2ydFnB1LU<1_ts<*}G8esqu`8>{ps_|9Z@lph z9CwV7#mRbnkq+eW@GpgNgc}k`C5!({lF22Lb23UOr)-kSC#%HrN-d?#lFKcvyknI= znscR0GtZ>(Ck!hLYR#aafpY-uLTu`n0Sa*H&OGtt^G-`xz~&k;@5`@H`V2*sl>JP) zroROrg)~x0C#AGfOD_$n!57FxbGkNf0jkZRE+h)n=)&7m&phuepjB62EdT*n`{WbW zA8(CJs~2(I)kj}@1r|tQc^&pwGAwHn8$rJ85=>{Cg_c=qy`=WpX|1g`+H9}Y7TejD z+k?|HcM_FUHZ$}zI$6*$3j(tksBnRI5umr;dR<{a-s%`gl*L2;?H6EyFH#AcMKMJ< zVTBiFxM7C@)RfbBq4UW)Qr-WQkd_KI=D1^zKL)vD4k{SA<~OS+XJ;Z@SuYV0#-xds;>FsA|c@(STX$MezZ)}qb!x?PX+eb+9(Nq_##J~$19B_~Cy)zIf!91Q(A27HCdt#4lXD`i>sQ z{_z)DK!gtOs{-H1iQfMkeVu;yp2SE+1e$<>4Bnq$j6u>mmW(6_0W_a7E=NPm{HxfX z{s4$SIZWU@Prw_&2Dd;4Hqe0&grG?xW+v(RgnHGRTH_|CxvX6cbCjc82eSqkvZ>94 zY7;@}Y_vNzj3aem7)WHuVh$RrBMnwaK?c|Yk1fPQ9V_}kTZFimEucUyT%d>Ba#%!$ z@C8MEK}!{mAcPI{#RTt&;tPW%B;$3FODN#t@`ytXFY2s}$wT8A)hI^gwUH{H$qBij zqb3cJ>tc(e<1I)a!myoSkAL)|AGziM5)jgmg*;&*w*WWvQGy7*1eUK z;UpV47^Emdl~s7{V3gxX=uSYSFm|K_9$01xmZ=d}hJYh12*C$56_RVb#Fcgk%STwS zgjGl+nZb-;I@Kwl2~w~+7aLXLFqjLiiEV3!^Z?uNNl1HcO^|2%jA zQJCTt26DyRX|Y(y(hV3&V25dZp*SIU1ZETgm}HV*S(MO7=*-{&30!~#Dd4~~1@X*7 zP(^KSKtcagInXpdq~HSGNWn4>p_f2>-~(i=DkCtH0YgLtt!n*@AeOKe4QRkFi-?F9 z+%TU+Gz6}0Tq9uFn8v~Ota)~Lp19^XM+~{?f{N>4KgGt!4uCz(Wya zd6y0EU26@BMc68;kZ25ni`qUBOyYV#0;SW?A?N5mLNY@RwVLnyKc=&37;Uo{s!U`eLsCI@ z@3LGA7%>GO$R=|wa9;~dL%Q1h!`X`YH4mU5s?f|Qf%%|NYrfag@by|gw(2$cqTm88 zNP&U_%-ZnN|Uu-Uz1tj2rCAaF|5-hZ~+L0^gIL%pBkR>Er=tAe@(=Kvgjl>&Vb}5Z>+%kdsks!5Ue58_ex6vVJ z^aoyGf)Hev1<^e;9?qIfR+skzmdiDHD^OonXGE!~et{qF3tts*01UI{Zv|RV0R=B} zzh>B~9nRM37J$vt?7aXUo@s{q=9j@7f$(uP{sQZMJOvmJxko_IU@OcxcUREB`#wyM z8NZ+&mi(|CG(Zgvs3nzd#RC*JUe^Za*zR}N@kZ$7ZgF+0$MJ+G)g<7-B=i4KY+gH| zKF_vzw2^I~1-0o`5Q^uUNjdUR`Jd%0e^VsoqZ`*q?r^rN&5Re?y4Dr;2Nu2DBeC8y z@?B=llWuBUs{qzl(~MGU{qgxfcP$lFl^pcS} zjJ&#TNc{$+Yk?DJb2T6!0()gVcZSGvB1%9=7TmyFz|eLrEqHr8Hlsr<*mb9VNC5*l z6WDb3pa1_iH`q9=7l@U6c^bZhp1p%N9}6-!xf(z!G6>{7%xb)V6PEVtpTh2y}7 z^FT@#s}tZJ7Qnr{ zzy}XvFCo0IX~LSAs~oCmfqbw7slpl+*du6irMk7fI%e0 z6H1$aLXi{^IMH#kwiyBlh_c9|GRmVw&8x)Avqa0&Gye;d4;a8ec#RJTI;gsh5?De+ z;J>VDs%SzZH!wK$`zutG5)r5?4af`@*g8&Bw*UmdUG&Aw;3_wWm0^?>St$SlD8^Vp zMm)sBJS>x^(Zh#=o_)$ELewXRZ6vsCG6J{R7)bv-xDPbP4n#)KI#ERU!i;T$1=tZNUK3(+4jogxs1W8^b$zL2v!5TnTnUz`D$7D1{eWaIR z#K(Ia#&2A_2dhAvWXK1buASsAghWUPumA`k$Dtx2z`&+OoQL{2$EHk24xGbzl**~3 z%Bp;nJ6uVY%tx1mNt&EVnQRs3GAo<>Mnp49=Xx%*{7Il>%L%XmE#nuj*r>VOhSL(b zO_GdBq(~|N2q>5eKw&5uSrJNHjJv_ey~MLk%&Az+sr~;eNkGViN(r*E z%I^fv@T>_T*-!nF6d&*_PfcmUY`=m_;XaEK9PX#!D z$4DihS`jRa0>WbsW5}{TaqG(FtY*!7<~b=8i#qXE)@Sj$eqfA6j(V>qk^oEFQa+^Nz1*u z)665KOeDQbCC$tv?UIzN74_7|&>YPwJ;qj<&-k=}2jEitd;kjQ(k|7{F&$I>G}Hfd z1c7T0_i(YL^oGugA94sS(ON$!D5Va_E;Hk#s!)s#@B#)XI0Wi|j(e>^9fGrS%KWfS z7bKD`9Et7PDGP9}MmxPCkkr+K02qBRM=h_QgC(-CJpcoUTLBFnCD4o0s++<5iUj?U zuwc+RebBXdpS*aV{_s-_wTpVt3oHM)C|9CC!gvA_HBobY0~B2io%({Fdd}X63xqVH zynwLxR1Ac)Ce^#J?b-m(_%15QCri433m`8R-~gv8QiLs7g-zJpyUgvO7tYgjwM!(rQ-j5+Z*=S0@mRzehSGLSvM=$xzroXUQc3v&kVF54zL=J`>9xCb$okqDp z-wa|Rreq=h1oBPdOxEO0PLTQCAJ&S=&M z#+eFM;|oS(%CK2Ln=)VG626pWJfIs57Po6SDzBkIo3mp%uH$AtVP|G$VEl|!ApimZ zWh!+^QLY!zG~fY16KPt}qyr1~VlN+b1McMHiKb|TxkGElXsw({ zZ5Cw&JirkFX+=gAU@!o0R^<@c4gtvJGbm%r%cRwDohyJHzTK!e$e}iHC0T9*b*AMt z?mRxzgJ2epZ_q)0fT|LJ-CUF1W%8;)#3r`MD3aMJ6cEyZb~UzHzYBP^r}EeOda9;d z=CFolv3};VzDy{!=2v}UZT9H4K9e~44!91FRVHVY7Lg771ocS-EOQ_DAu$~pW2>Np z`kcsnmBwXf#T9|@sWX^XmPL!rcr6_oh$RpMvXE&i2qL!7i@p$t!0;sUeyz3$ zj2LS%9jdJfz#_5Bq1wV_U)g0Oxj!)Q<=f!k(b}s0qP3)3>LGP1qsj}O8&ZC-Bq0sb zpj$embAt~c0aIHHrB*fmS`3OC>kT(+vX15t-%NJPU-UFUJ|u2eAnp`TKm>3GVL0w_ zhH*Fn4;cR^1{WXayFTYncqH|ZBzB=wv_q*a7^O{0f^GezD_DplxKZwAjHFl#%NdB}bV{P_&Bd4qcr1y002t zfd8&9t)AW3^J+6VfR@wkKL>Q0xI>QSL%%bVzMBp-d4^#C209t%kcM;_7ZDeCij@wa zOXRe_ts!%G&<&s{Zexh_&Zv#*K81h+eh>imgRSOQ;KZK1WP8_^${1_$?f_UU+$9 zKy+z%TFJ_^{!EMicBr>>o4w_@*LAwTJYHwgHy(P-)O(_LcE1n$vj&Z2^z9Olqo)6# zn6r-swGL$}g%!4E`&VK6tLOSkwtVtXiT-v8t)(Vi841p>N_w!0EeQM4XP}Ed#%ey# zX{YwGXZi{OWhib*nat?gzfz1QfB~rHR?+ynPh%YM{oq%Fp6>%~SkX9xmhrj;vC;!v z2s)vFMrl95q(^a%*5((M z{M(m*%D?>juY7eB2|(#WtOE0E(hMMAaat%(kwbdDI4Y$F`8ujnoJ$hfQmHD|SL&%^ zd7h`zg>zD>*X*|Y4Ufy`>QaV|&+GU6zW)yxC^$%1XgJ5>R#1S@==ivR5IO(3P-%II zdFimQ*;)Ar$_P5@$hb&QK%kmRFtCbRz>+9CEBiuwYm2*U8&><93(PC5TTFZ$oII>- z%#6GY-5h<~bgP!Agl&CWqK1Mpdo7-QjnX8W;^mRWQG#}%g!W<Zzg zM3#pO9$wTVp~XWIatyaQ)CO_fLx~X^R-9<@g^CUrJ5v0ZF(k&39z~WU2@<8rlqXxV ze7Q2F%9$=@)}#p&r;=(8Q4t^obkt8rlO!3<6p853PnMJhZFDM?RG*8ghP!GFtJbW_ zxNiOGHHwI_B2t7?0WK`qwQAd9MPb&hT()#I?qPvqP24>^dlgjSp~U|_4)L1Q<3Jd& zgd`;v?zAUZNe9FQBRk=FD03ec9W;CX3_7&v(WFZc(zZqvsHR1WHcI+4HiDr#hZ63;jyMUJB|*yG+Mrbu}FcU#DokTs&kx`Vgs%1zA*UO4nF*L6Cc1k zmlXzu_7CO7hgW{=xd{*^+_MOi^L~l@DbV)KFOCXGDC7GkDQ#q8iaM=GqKYlDSR#xr#`t25G~PI4j@Fzb zPH(Rr1>}#Q&=#92s>}w-QJZA4Bqz8Dx!Y4v1y@& zeIIN9!gCvJfC2~!e8A&;>!FDk2yC)o0-7mc@IZOFd|+pNd9vx|2PUBKfmtS$spnjd z;t4{eabblS9bq(~MWukGKtc&wgpr09Ehw>I8qtw3>O2f`dcrv;B#}a?EWBEc3JZEM zK&YmHmH`8(?FwwL!VXJpv4#AqM3P7?3#4vRLgHj44ovH$C$?R?+9Rg$w%jw_YV<8M zC@>&mF(NR40J`d4hYkiNJYWI^8@Nke3JI7s3kVOS00IT?0&1wg4aAG4ce+sE?gK1< zuqT@P+6h8=@D6OJaTco(X{07NQ;m%}UbKeCGNw=gjxztA>{1G2er&SHF1HLb%QB-J zGtD!91!5vqf>t)sqjG0Jw zd}1JPycmF!0GYFEf^I>4GSt$%(algG&04Tis8XB)GaN#|?!pb|0v37ixU;@SM z!5&|k42yRQemB>Qv(4t0|Dwv{uYW%I?z4~n`|bb3FTagElEZW6NHrO{(VueyI!;L7 za|8UG0ZqrhpD|@OPkU72q&7UQh#*~Fq9E6zumQX^;9(n-*xjswI2KUg0S|jX11P`( z3^X7CaCv}sazTM9ppXJ5%wPi0R33fZLWK|LMgza{K*d#Vh(u(A2qu86A}Vo-Ol)Ex zlK3P2F$sX1JD?Q<=l}_5af@5b;sFbYKua_UTajoTe4Nu9?kNWa)@h>;Wl=HvY=;@= zc#a&q<(@ODagXSs-;9zN4ig1(euRu)LsS-~+4-@M^=srJ4avwyIx>)q7}DT0WONNivt8BCrvlHOZ;#yK`j5AD-*G(Rm$>}w47xkG$n^As6l*#5X?S8 zrVoY0K?_Rwf-s$!nG|S=1tkyxGM@>}XhIW;l295aJBQ6qUXhep9OWp#XhkYU3juTF zBQaiQMsqr&obOR5_wwk@bV`GlCqc^_eF!rFm0=(HNP|9|7ZAYggJfN(K&uY=9K%RR z9UhQ{U|N6|Bs5_Rx`L!dCwWmxYLt>0R0-~yz0U>4>h!Fos5CRpH)iKg+t6Sd+SH?k6lbZ9NI73&u{*mr; zH0^6n|N2*(_VuQO-QrD48P1}~(_6P(tR5X3PsTo0vXSLjikNweZU4(!EiFy^F78ShXEiZY&a#T1Z)eF!` zA|Hg%f({8rKvOk?t-K%x#uOw9&$$25+SqLZ?VWoLXUYfcxZII`%ui9Knz z7n=R!3}|WSY!@m7f{1~pX-EN0gKQxI@i@qYsmBGvPzAB_*bH4r0Rr~x+bj=P%f{t0 zalh>4FuO#giAZi;mmAJ&I=4w8MvPyx8{Ih5vHFz=Pb3m~8)J8`Rp>E=xyj=fDn7(BcJ41id01FjXxB6M%JAe9<3tWQqZk z(ugjnaE>X^qCb}cm*UVf0TG$wI)L9A= zM-+Spw9tVQRPFzW(ZM+jWX_o|xV*tBV0yU=zLkSBeDtI*z3C~JMAhhqH7QlIhSje2 zCxANc*?xlTY5!(XcGK>?9>#qjJFaroBIUSaSIc+q>Jt2X^CwVd2^Rl?4HRAkA;fC89y3Soe-rx3JP1t2DEyT^N=_jy~9B@(1HS#v=uLp8}q790_9Jn{hz z^>QMR0a*fbC*W!#_;Pk|ax*u0DnK3MvJnvodR!rTZ14?ApnUEp2t(!%_oW1IArJ_0 zdP7KrMd<%lsTUNPV`eE;S0*)p1PFT`GJv;tZB)2jpc8GUW`3^obielt%rpVh5r)$N zYqP*cco7}X5glRhXXt=0De!!1Wq6NgPs3vl5wvg52M&IAhgsgp^SFok0fRUDM_OcsGM!(O^L(9Srbzv51SIcNcl#1!|>eaIharg@|eJ1ZJQiCon1c_iy!HcY*B-25FP0N7raOa@}L4|Kmr4r zABJb2*pVRVmm%qwBRM(nh?9kBn1{J&Y`~B{*$A8H6jQ6&E;o2r>J&9-{k!j?WM8?-?RD`lD9 z#&Ot1an#~n-nArsNnTk(7WIY}=T&Hc>6~_fn9(Vn(-~KjMs}Zgn@Q-9L_w68IZB09 zml)kY3A|~OG0wQvPQ&1hv z#C<$c0@d*XnAc1*rvf5?PtWO*g82r&co(*S2e`07zf&L=I<7m1h5-O0%5^ z;F~!GZW#A=-WYCw1p#(vcN99IujrZaVUFQ4E@e1;Dz`4N7IYKvaviV%&sP=`@FBPG z0T2L(BiL>oz@|u7rlfhLlVzG8ffo*@RDX>LD5E3QeU>=}Fyfq_!x)=?SR@oqg zC&8Nj8K990sgv5DgoKbpql8SDQc;qfwTBqiRcDleA+pD$)^%~G`l;b|cMzC&Rl|1` z=p`3e9XLlFc0hDqX$K?t0kF0KwCZXMA_5)&qkoBuH0lMsSZg*~qi-M&xMeE2MKVwz zAymLA%*0G&U|@d%2LC_?`p5zjAW-X&kMe+8X`mtdxUEmXRzS+G?K=M&NVs}K!z?_> znQUpVwwH?9#-#e{joPM)s|Z+8YNhw-S>|MNz(9OoiXAi8U>y(wA<&{JfTnoSA0NOG zBAB8>*K`&T0&{Agb?Q#}NfDTZ7T=(QE`b*vgOZ785EoDnEr1vZ5n%hEArC?YVvt_| zK?M$?RrPRHR^X>$uo!5d5c!2E4`LAQ@MH?14=4};9#W|QN~uyCwUWw6nplmV=zq1z ziBQ6p3h{(km2sx(sSg`WRk(^57qA#w7w2|06r?V>Gc`@uD`hIh>-<^x{nJn1`$969Dx6`A<%qG;8k0229;3| z-`WHcZ~~RFkGdjEV_+cnpjItu287|Ru`9cpk$U;_e?^Kq{8uUqGKHu(2Ep{NW*d=J zNP86krv%$rAX^Ms!h$EbAGF|V;*q7b5T7kcrymO+cbXCU;XK2$w=7eSC}1H8;vkH% zArjJB7BU2yi(0P5PZC0m=L=O&MzpF`WQc)V009_k)&B0TsZuADOI0Weze*tj3xt;bW|F zz#yaowXAXujUg(t(z*NbVY;QHJ1QW2Xv&+Oy zoTG}ckYk5t7{)nBkttfRyAW%^Ta3XE8+*0&ucFG0sCvBUXr9Vjm3O4Z;B&p}SYrpg zy(p2D;?Ok>rDI;u0i$BT1I)()?8kdN5oxI`w|iI6=3JG~9~CU9yDPy90HrLI%x5P$JjuJei&g|EwhDL#p!!!%8nCa( zs+o+*+iX;x?9JZ{&JI^i#Z1l>2qxvc0O-Pc3lRT%quPxM7?jhjw$=Q~1B=G-h|BWE zZ|Ue_@N}MRe9Px3vT=+REJJlziKD%&(7^1=!R*j1BgnW@&J$hExAPQXRe)j}#!`~SVNcnRQ0KD+tuhb4WK3vLTPN^{YFD}o6;+s0v;eVC zUjQp;WycJ?&=0-X4ei(tG0fXy0F!+H22lUm2Y}g`t=X4t*`3YVnC+#GfG!l=%pT&* zPRIVW@oUmI2P^uwBVUVaTT| zEfT^UqIQ^zS_okvYKL23aBU271`^=Y=Z)S^+y+%q z0F&+B@9o*1joI;C+3$VXLtWGrc#5Q5Do+^I21wPXO3ikM%V!K9vLm0kkgzMKJB1f; zIJW^ar+jFtOd)_Mk0*kHSE3~l;VKZ}Fq)#WBXl2}&!Rcd6M;`93?OrT3p&WM17TH! zoe!~9TW3H8RS>yNfLhqlAx0*?B;fxK@T=HE&e%l$*hao16CnTtz~lo^00RKuQBL3U zE#>h2+39is5zODtY>K@5gdGCr+~@&q^njL3O9;+)aQk<2J9yO*0xA>Mh^I_0*SFG_ zd_R}rEbsvpKz$pbc!gKo+AKB9oegR6UT@&I^?wyit{)nUAM z*VerNeD5g>3!Xds7N&t0bSWya&#R`LVFDw_f`U485I{A;x*r>WcvK^(Wmw{o_11J8 z9pHc#?h_C%FlS3ZQ;KL)_W=Lo{VP}y6;=OWQ);!jKl@~_n+*aG0!Lot`>yZ(4x5$~ z00Xe(P5$Jp?%wrn@CiTJ2X%@WOx5^Wid$SNf_m$@KIR|%!64k)u9QYuk#1uchVGUK zY@}8$s!WE*w~IRRX+aiv;c8~#YH0-*Q6M7oFcyI(=py-y5@85Q)Oj!+>Os%MqrT(= z&*V?O2nw(C2H(X{CCMC(A*PJV6C%79|5q6=p#?t6?dNA{RCv-mpKC1k?G(^0W|g}< z#~)L${NC7YkK}KkiApZ;b5H7}p7iaF_eu}tdtc=g@5QtJyR59a7A*L!+yP^L@w#5g zh9-l`?f8Pe$wDvrlMnw_qh9w%&)!vW0PRiR@xAny4eMMkg{CO+e&4~Wc=)Mr9TIxW zv~0`04*T0)nqc;*ZqN2`@9(&8`!i!nPM-Pfy}+P=E{!n!olV&X-}#lz-=-34g`mDe4k8k}sPlLdM!9+DOd^j-l;NZt4nLOA65G@YJF4WCDHTtV zCQ%B7K9bqYbQ_!%BQsuk7=PEt`SZQMFE8*<5YVs?kx+4v@o>?xF){K{64J5~^U-T- zpuqDJ6rn&Ap%njt;q;UNl@;N@^&nQ(fVLJ&)Mv+dCY5T)dq8+}uuSo!t!uDGjBmogV2xT`9$)h($#uMMw%2 zMp6`{mtjbX4)XfF82Im<5EOO_s;eWSg9Z@;(;%t%0>#1?CNy+FxNTrTfDot13uy3# z26gl5)wFpNXHK0vdG_@A6KGJOLx~nOdekOOB%Vl(GWE1nt5s8}R-Jl4fvj0ja+M&# zYZ<-*(m+#-afe8aPJovC+#f1?! zUYwZmW5@r2?KCn{LgL3sEDm7S@&UpJffhDcc=4eMiVamPY?9(qL`fATM6fs`B147_ zEOgf~p<4tJj6+b=W&t+?3KYO?YgF-@cZ-c?mYcMl`%G^ZzjF^U{z62B&6g;ZAD`*G zdGhJmuXm6By?Xfb<=3AyQ;AcksaUO2W!0()7!Yuk2^2Ums{;&B&@5pb+@*vDzbdP& z5`c+@t+pyi1{n_Gf<_v)%o(vTbWAKxgcOTNLIsyd9MK;W36c>T7Tzg`g%awz2A`a4 zga-x8d=fCCd^S+xg9usJ;GYjRSdz(_j+;UQ-dF%34GoqnVIh))WI-m6f=eL-+C(6! zHX{EzC_{siz)Qgl=rRBg1rs{Jt%N#wQz1BZfJbXqjwid8UvRe592(n!J z8VrpRCeRJ8-KI#vI9mHLq6=e{UDhrUbfh(~Ws@|*FJ`T^lUi$yDDEL>k6kZEhvY%y zy?f@+M~MyiY0U&Dp#-Q96}k|DIS|g!QlpK~=nf+%YEvO!d6q+nOd-$=u7ecpwNr(Q z>P#+QWL;|lruOKw*uMBM-dN*~FZMX&k3|ld|cQeZWFQb2HY zi69LLCoL%9$qk~c39jJ0d;tXP8itF{+;&4KpEad^ST`bcdzj4Pu)`LiGZ@BhJB{cO z0RlyBza977b>E$LqLg}pDX99RO05iCmbB8EmFFNBotqEg)Lx_q#^;|yw7wc!b=}La z$h^0afnxa*L8?=PC8+8N$b?I|GbT8pF3?o?Ah`)JA^}AR$n?P358Mx70>%FkmJo(B z0mv<60wK^%3MSAn=p`_K7%_qVCUBJ2UoL_q>WpuY}$;DVx~*2vPcfdQP15Zi#y zCQ_h*7F_8&kSPuy5L2SPNMc8Y*g(`k#xWB15Qsk%V#$I?#3B07h)HY$ewMPI1w3&9 z4v1nDS5>@KDG!UQSitji20brEk9t7^n)PC3w4xCWB)P!``K;o!gutbOy2(@3SkS;c zCFcVkSW+BQbh-@G<^vUQ)^RYh!C(z6B=T^U=MtzVXZ^|~xOoAWHc%To(at0x*nm7N zI4lcBGH|$4;h~NLFB8D4cRra&Dp}b|SH2RKv82cEN&&?wIslis#HIfgdC8V4;xdX1 zkm4|d=>TDN@l+8?W~nX|G-yZ;nijA?tc(Y#?@dNmxWZ;$Hn<|dkdHs+t4j(h0K$;) zf;JgQ0R!Mykq_*Keq4ecZ7Q&V3aG#WcY0d~-sdYbv7jO;;>{enl&6i<&sldu2$xK7 z&kb0RHju+inHZp)g+MfHXh6f+j#xw_e$=BO?dV9ADAJOW6r?CMX-ZG39uy7%0k(W1 zF?Fd+3FJ~OHPz)5Wh&DSNUw{&Sca24@S%E=Msm_rs!}r)GX|KE96KUWLEs>Q|ER)^ zAn8H|22`9?1m{<{I*oC-sy;SGt*m^)3~rFM3KxOoQaTb41RDP)pe}5%X(*_`BtJKx z-CU{#UR#LL!lw}442VxvOPDMf+gQgw7P66*Y%FORQ<>V-0TR%xW;5H_n|{`_tI8!$ zpBPhnLi4B=fPiY*qErmEcB!h>l%|sBpKWRnCAYoiU5Irj-;Rw|!%~iqb+4E*Ty;4 z@s4?HEFAA@Jt^=E;mlj)@*bJINe=IljjZG*Ga1R6kV63$uwEz*Q>UHH@|Lq)U#wsS zK?k~uiZ@lWPssum2zYQe9K7H)zuC=kUbEnmLauNLB*S^u^Pc(KXUT5(vR9^JO>fy# zL1Q_~T2ZuC7PO#Gt>VlKIJ2S~z32lJ0LHgH7H&B`<4kv&#-aYSr}a{qON7ft8ilfx zqx@u7w;I;0mi4M>{pw7hS7lW;bfMWxOen_G${en#r4wZ7SV-E^m99my)hy>4!5P}l zj`p<2LFc4Ige88~_O`j*ZEqW8!@%A(duO`kadZE8&^Io{T^QGF|10THgV`H^9Hg(M9BF8-|;;t!o|YhA-UV43~JsDgLpSrZ?E<9<;e> zYG`7**lI)Q0{LuR_2=Etpaqt1TJkXHPVZa>r)-NaBg zTUQ@7!4qR@h`;^eai2Kc=Pvh(+nw&@!L@qPjc8zYe9N27EN3zMbdrO-(M>-&)NSDj zoVz@#%V9&bpqnyX8=urshht(ltY*O z>}g+nKLfhgNzZal2d~)*Z1(pMkbqh?>vWS(o$<-1x&b~h@NMRs)HxDRwBi<|w^`nk zB7k5A9_lOxo`6^(KtUkqx0^d*q+t$Zp!P8mdOfWj{+!O%-RoX|`rkkA`N#YI?N8o| zJ7w2&ucq8f#59X7(jqO`qTRMa`5G|Z*6s123a=)B4VYQ&evTnxyfvW%R0-XATHo`7_&WZH6gn?|11>R{p%EW#|K#vk8 zIqC?2#HItVMeW*fx7?1&a%lgED|ATU5y$`$$Yc$~pnK>8y@sX8_An9t5dZkE5c|&% zhX~hn&C2{vmw0LLgir85t9bYeQpW64L@wo!u+kRI(Twl_BJk$wXtvJK3A%tw^d;sd z>1~_Lq^SNq}NS+MywU!a_Wt1^lD~jxi@tzyomN zID~{9N&q#0A_Jm;9?XCUeuo`UsV9yjCoB&K!?E^su-qQ;molWYgbx9Ish2DfKwP2H z3V`{Xj@}~e2|)q?8f%d4Yz0hZVjLWMhe|S8UaEY zQNu<)fQLfh1H3?Pk^}`vLr0`Q1(3lGpM?Zw!vo;w1$yBanb8hazynBNl!)VBaHR+= zgd;4ZEG~crLZAgyKqYhuXo~?!gj%iW4_`lLd}51zxm8UegPd0T^BY7|zBdZbS-1LkQf( zLv;iKf&>C0BoqJ0#18C*UV>$F#>8pD08F~BUj$2|$WtD$LjxvBPx9a+6A?|_k}cu# zy!-$F8vim-e$Q?leT^)Ob{D9ob^G1Z))w^DqZBF$<_AbTb8- zaguP;4tq03UQ!7{CCW=Ei`UG=6GC3v!BIblQ=wUp^Q}RS& zUdV*47U&&9VwP4AKD%|>ey33y(Jt$A9m^F@Gb90pP%ij%weYK5*Y&mdYXV@#DiFXy z8w2_tH2VMam0ugQU#Gw+9l`qKVKx%=;7X%OA$61Ts|cj&3QFSx0%EncKsApuMPF1k zdD9;*KmzorI62^jWONI_t~FcqRZBBPI~F83fCVZbCrc9rUK1rZ04B!(N%f&g7w2(; zq%!*eHwL0iL847;q)mXeO++UnvI>T}gFIVjJk_Laz@#L2Lw2;_1NDea)ih1BmTSY{ z|Cl1z3JuHJQBQ@CzobE$N~1Jli*2PTUgMR&1|-0q3icq+Q16ydolO^g1l%@s9T>G9 zj$lW<;8O$F87*K}i$Wpx)^{X=QR5&VQe-29k#B8+ff(0YGk3DUHDyR475Z)gDzR+O zmcRd|sco04UGuA5N7s1z^QjgF6_6M_7daFMCe`ivIF1{jw^m zNr3A!W)AogsX|cSOa%hy@-_l5h;j)2C~WA51I6$o;}>t|_kNEUiIcd(DvJRYpo#yd z!inp(6`tbQ(CpE&XmlebzyK_U<93Fpq7)7kcO7Dk0csVz(2#S|IyYrJf%yJt^kw`5D)h08p|@YV1-guYtN5dW7y?zSTEp}+qm*_S7P zfB~3NE;$vNO??Y>V7g8q*}%cp_mrv4h}{5Qpcj@STB0XFB+aNTB9%8p6l5Y z2q2gJOQbVpKq)!E`16bXBh6e4b~i17>DZcMT6gVO4z@WTXd0aVSf_KEr^k7x?+(4_ zxf4K|s0*N|i+ZR#TBwbhsgIhe3jk9TU{gk#s(;x63FN9Uxo#KQl)E|?d14j;0u2n7 zqRZN>&)Rtz<(2?uK$*XH*^t>9Y;&2GLE00-Yyujli|Zf$0mBcnAeTFX6I;5s77wkv#IIY$Q~b!vnElz*h+!HBb>(_yuo*T!h_sXLUF6}dyU*ThPt7Fm7M1Pj2x<5+iC%~ zCj1src5-iXRQ-wHi4Qa*_F5qNS4zI+K# zV~E|O8V3Obk#$dqm%3Lx)LDGg712#ap|hQuyVJbNvbVH;jS-(nxQW}r8dkPbsn8+XX^$lB6B~L?8;TgKX*qGdKr4 z#?uZ!2PBFl%nKeqYTs1`F3!hXPNl#KQ({GnZI5c8T@$i2kp} z0}aP>8`Yg!w`p0&CH&%b-OjPX(cpgKM-JX-!M<;9{o0@kRl3--VTY`hZI&Z~;3p&! zNZJ+iF@w=Dd%{sI00km-1h+$zqQ(LMDq^W1Q;~p0k>Q2^DnK`pz}!=m&X5$`k>GJW zRLC;4CSpU40A^0;09Vq4at$8$-;>1gVc_AQ;UXfVVk6|EWFn>A*j&Ma z=BC4f!zXB{sDs3(rzQeIfoegkYXL!P!|a5D?d?JT?t#IsZZ0qHuWqoff-ey=S@N=S z^D+x_wDYtybjozeg!cAC2Q(B)NQt<3Ns34nRtigrND0e%O1lV3$@qPVN;NhAzW?;4 zG6Dyx5i>^2HG&G;gfo{d{s zRq89LuoA|G1+_I5S_H<74fEBD7%&5Jfw`^g%K(&b(2(iv%lB{ImwxjC-b?tf;lzI7 z>1@2tusw0^LWJCF`SN9XUgo?)};~@880M6W?td`0?S%i}&sfXBC14(W7teI;yN#?4?AV(o{DXg9G6ikSC9T z!TIy%%j*iCYrObW|K>Z>+wVU8{P_3l@6Z1~GXY)IR1^amcp!oaD!3qn4LbNBgb)^3 z26WR^$CX!Nku?^F8Rs*onyXMb_=VrVtecw>w(>S$w* zJno3&k6b8+9FarLA<%M37Rj8EOggD#lTbdnq?A=sd1aJXQW8)U1f-=Ebr*IrCMerw z2Ns&yi2{KGY`R%qCvLVmr&*t{X%>qAY56xF7cKayf}bq_`e&en3R)JU>x>~ZUF1+u`>n^=RI`_t^X|-yhtFM|;=XIf6FfhRdOHcvA6%Z`J z1q?g9aKmFo>}w|r?1|r?mTH{orJHW-F~=WwJhI3ohg_&q@UWBu%S~C(X;LgT6#~uq z)Fh-r5^dB}2QZs~n^H30jGJx$6QX)F(n%|ww9zlH8fKXNb~QDu0gJ-H1z2lMFxCTa zT`<^T4~#1*7WW9GW!S2nEwm?$6T%73o-nNn*Q!7Q+j+0Ox3<6Ovs2wH?Pk#n<4gq4 z2k#WlnmHe!kirHVSdj(`aC^|gV{@b65f>hi@KFjXRqjFE9$Y}ey&$~|k3CJWkT?q{ zO!R?5891><3LSuSlL#tofsi_Ippe0BFXXN`7FLLmLGRGmPQ(}W#w-22?OH$m_0?k! zFP9YV`@PiRSKJ-d|2n_{`su5`z6a`Oz5e%p*Z>4x$N~#6kp&W2 z!V_Ockfy!B3n0-z2Ew4b-hm*C85qd$dIpB&-9!Ue;E4tlN4W{0VQFrBBOK#spr%F5 zRaK)}`2coDGC9Blegq;Q+b76C!mp58o8SD%LM*hwLvN16R?q5|0S1IXS)VJ(=kBIM z)OF-@Czu=R>V~%ylw^T?JLMy_WgK>VqYB-V#0EkD!W5uTcD@rr6HX(@Qb4=`sJ<_{FqQb zl0cyjeJCN@x4sH+fTD?n!2SA>v6F$Uql{`E>pHNg3zQ%NI`rJ>P6t5}oKB*s!(0S8 z&``X2)MPc~sGw4YE;8&?Db)mFIFK-e#IewW#-rU6U`LQ+J^^kexM4I&S2$!Uux@n= z!397P%_*kv2`}{O>xAIM7TydCP{_c}ie|hoW9S-R zfxBJ6b1f*z)^^CSxamX!D!>})I4j#nUV;(wD8Ux$fi6cl5dsi6LJ}m0L?kQ`0x^eH5;gH9KfKv;gul^ zUsNX+Q}9-GHsb|T&;S~>kOecMBm-t#0}Cd=fqLSz!1^>Wfe)BIQ!;y|+WTHGyDJtm6^zo z!j9Dfb`K1b;F!luXb2wrVL+l!qKLGtuzV!vM$UG&k+enyly$n%vJ`?cyz#&`sY3{! zz_sW*U7b^TN^UY35b$U;f_qc0J3s>kmS(hXXcFm7FL#Q=5`3%g%l_ zw4*I;Xw&i3g$+fTXmzGhRM-Kpw#S%hCT=u)AkDRwDEcgl>&q@Ovx%Oq+ai+>MLVni zq4a(?Z9)BMQS&?0{@(Y$^)2vz1AN~OhEA*O*kx^-3EQf60J!5F8ClCZ&E{4!o7IPF z67RY`E(S8l7d63;iyTrRKY5C)JnfaUyyY%``Bkc&a0qvM+q2S6z`jimai96(=e9Nc za9sfiw0n^$xHr=At@NZP9n*>+SA9{#0tiI;IFlwqKCA>e3*0U>?x=$~ij#ql1f1Xl zFFV=`es;B^hSdBDpO_x5YI*aV=jFb8nj7kKhq77dx-K!FIxcv?6Mpc92Z)m`J-MDH zg~(7q2ukW!5H)b2m-1{w2|PfAW18k~8|;iukl_)S6?HGB5d#qrVzdsB9SdXspvOxB zm->%`Tf(FnF^WF2l_evHl+*gfixr^d$cDJ}fk-v9{Qda1>W~95JU-UU=mip6| zzV)fE`$MGO3NyJn9*(e)5HgXLkuygKX(xnOqJW8$Yc55Jh(6S{Pl3&p>F7Anf)Y?v z_wE0w5G=tiNrX0~UmS!4NMz9#bU+q~02pM^lQrOz36Kg*0qZ@%iWN>9nH>kF-P(O% z2eMtL9UR;ZR33HP!u`tvh@0_QoSBsw&*|OWdDtH{Uqzk4{BT_1QGcb^Mt_*h*2HTga?Ko2!3oE_5rjQJK}Qi9Qwp>(nmx#$X+q!Qe2*Q zhNpP)Rnt_+%yEL%n8}wp+;zlbY}O|7fmoXbl5XnbZVnw;{s<-JCt!BtW5UDpd;>U9 znH-8h1@MG7?1c!RPB#dUI1$g2Z3HxI030$PNb#p7md0srsA+a+X@2NvdT5A(sFI}P zmsm*Dw4M;#sr*z2v9`h3=m~J507Tlc8({OW~r8L=|VXF<98##DW&lNC zsGR=AV2UV*lBlFsDy3fPh-PZprRIsA=OC)6dah_F?A)1>s`A}qt+go*_GWhWLp!uX z2rOiN@B|i6=YFV@E>W;$8kasRv`R&J zeu<}YS-^bR&51&(CStkKOpJaQjov5@M&g|I#eViDy3UA9w43S0sVVNoV_=4(@@FdA zK^0`3Zdn~`D2JudK}y8V73Kj`{RR^tm2SZQAx{ZSG+Z7VOj?U20vIf&rdsO6V(O$; z>=52TEO<%2oZ3OPX25K#$c~%Ot!aJormhx7%C2myw(NfJ>Rwnu^nB-6t=|wp;Si|d zIxs;jxlkXzzzs=&AH7yFdd?0V)8?=P{)JBa48&@<&Nx()&b~n8{M1oi!jKAQkS>n{ zW&y&sL4sPEpgLggEKe6qBTvvF7BCMK7%4k^M6|}O+%~I1w8Dw%%Q~juwTh_&jBKf* z>Ws3fjp`#tJ*tjyX1W?~;?C>hHZC+o>L4^(6$s90K#nZ^)&^)~HO)>nrI7eV1h9&p z=_pf~4VdYW4puEw0u9=0wU29Xq!pn5Q0sJV0fxW^q*rsDQH_Ry8NCx)S;OO`fEih+ z7tkT`gh8P`nHk+-7MzhmGU~-fFU3l)#fm7Wu0qGMiqx#y!(C-;nrYnuE@YYPs4+(&w3OrLv9OD}#BNiLM%XB2| z@WD;k20Dbq;{+)jnuZg25f!wR@mhg8O~FlsffXR?D+QPsQ!mCUG9yo~rkF8Q z&k34E-N_>hnre)OZ+!0X8RTe{p0E0*FDdV82kC_Iw2V$oggod3=<1?HpkYSPjMJjd zNKhB*R1WIo#NC{+=jen=ti(&mPC^tFABJ98`NTQ+Y4SkN*9n9Ph;8h+13XYONbC-+ z<`z&O$prXN3x9L8dZ{FXPYH_2JN9jz?TQpC9tS7i< zM*}sto+_IP?))$S68~^g7hNRXB}Ev9TzUhn>V!IELxNVsy|U6&*8>z*07UqXI>-Y$ zR2s{~s^IvuhDJ0*KXgN{wOh9}T-%e0R`f;pv|VcgM}wQ0;zLk_G~n`Zu7R@PmGmgL z?PJJ820tF7;wtkHP&=f60VPB67Oy&utq2t72XtlcWMT!B03~(Cf)=Ij{N_yKv}vC< zYEy;GZLh-JwX5j=bzfs8Cnujf8+F1!Kn1Xy569_J&zWcGM1pQ69GXBktW!6v105p6 z2Qc6|EjK*WC_69!H#R8qaGY(Bz-4<@K6?g2t94wnwReX%c#rp6FUdsjv`@Qszfec3 zVP!qG_lx>Nw_Ygm90X2o zJ%)IfH+g^mHIp3C@W+^cSNx|~g}l{fBk; zs&?|hhx9m7nK>@k1pR4R&$U{Ls z!{HPC(Jy`P{cM-QZ-j6V~awsg-W6EJD)Q^qz_!CdxC0abupGJt-gJ7BJSWp1W@2wYdeQh1&&VfA{B%DL) zF#z1cz5TB}&EM_j528=syg36ws5BH7Lq}v%>0ySL%#NqisZgnv3WW9AcDY|~7(8Z` z$!BpI%`Kt8BGtK+QHeq#`lhqVp!y||j}DOzm5vaT!ow+*iMbHN4wQ)$HOsZj%(1wa zPR~zJ78I0}mz0!}Ezs4~$}JVMGESCC(+{&xjtdTw6bTLw77q?!6pr7MPY)IUj}wlP zT@IECkBbwh5)NkIlak*HP+wix3XYd-WNj96*445U&RWyhFH@7wvRGWtd{udsTJN}k zpn$JaseGL#xap*U)2co!M2PUGO2tJ}B1(P2)ddz878g@w0QutLD_UDpbnsMSf+|(* zWX_~n)8bs!

I7xV1o}xOMwCm|g!UQ@{&>({nULd58kp_`SgAo0Z1Q0wJ@gsu_MjACVVSxZvHC0$eUNhYCmGD<3^w6aMorOdL*Ew9w_%P-<^ZGfSMLV&2F zj7n{_yDl0m>TH=W)@+_;0v$VkEPfO_0WKcBP2s6h2FNOe2Fg#SqK!goE zSc%6#27zFb$0(9)iWDg8pc2VgD1=Z_0sZqKph&@IBb-v$KotU6uplzqhJb)KQ#NR) z87?HaAeeO|@Su|lP(4SN3rLV44(BSk-~ts&h+xt z@`4ARzSJTl<#S5dV1mq0sf{8OO87t{k~8oC1>Qa=VWmgws00O)WBhvX&iDuoY-=ml2;bgGs%?h#2u{@6eLjg1m~c0X1i>zs}{LqJ!p)d z6e1uYj&gq8;)f;tGMIoOP&R-ig$E#}pag;gn*I0uoQn|4VmRvjWL_$Q}EHG0vfbj(!O`$OLTM`43 zu|6<)iAxD|+yWh_KnON4f()eK10}enhs1Q4dlu)OrX+?#1 z8jGIL0s%jjYEXhQl?)Xp0zllM1Y*L(+yLbVJUpj{L$qNL!<3U~&5TDovCRkKB_PfVVjcwuobDL5G-P8;nlDJLk4)wa9~>>Imbyj zkibHneqrZ3LekEDTx4%zf+su0c~5iVGZv$Zpc)t$7X<3V6(AXCa>9g>i>Ls0oB#+w zJ}0J&l!t~8rDr}G8i$9>A`E88AeP*Tk8&0UF)2|=Na`XFlnRufW;n%KHX=|nxWo$} z{TTl|BBq&z2QiAn zGry7mc6`N$t_Z6Wz3yxdIKtS^_F<_1!$wxJlcj7sg7(Za4XvwQP19JXIYMflRkSPQ z%3ATXC$ya9CFf+VT7s(2*5*^T=$vhAX?t7NB5tZz-7QvmTUFl%x3|LuE^&W*T;Ud1 zxyUtca+$ka=VG;^ogjc_i^jq0a<;SE^{iG(&<#2fL7Qro0$JMn!nfYlGk8@md)?b! z_->-I^QCWn?R#JR=2yS_<=JJk`#}I31)ACgtI<4T+Y+(>*ST6jGZgWix-4j1o#U(~@i&vat7QfiVF{Uw$Va!8=VAq3~ z{cl$TTr>iISI7xItJF;E!Yf4o7y>VOFB;_9{FED zcpuR+p%M!;QJiBQX6AOcz5Q))hg+Fw9`Kq8%x2EU3D)DKb6B8YHPl8J3lrG$IWfFw z59b9IDWij5G5~=NP+~>@u$%zNXfy>skgN`waYT&*L%%z?tVI*JL%}Do7km$T#8)MS zDB3`3PlsI8pC-A;L4ER)kKE)bNBPQKgX1r7uqfqD6VZ6=V^c>{yy9JOX&qcOD?s># z)z&q9BmD|QZNUPyiB!r0hZwR=V5t%b_#80fl0b_|GHZjSAO^^Y4jgdTaJ_arP*aA@ z5L?`9XM5Y-{&q5x+p9;bInLD_WFheU2-sA@ZcN)vczZJoiq=}!G(NZxxB?bs%SQ%k z(@J=&b25~1$z)ujmq!&mf3R@;!ZRQUK$c8YLOguNWx+rmi7D*}QF-fI?s}HT-sP~L z{p)Qnd)SkDgEu$-_kS@v^PCsu)$Hbq-^<&=@>=b@>D_hFcin3)Bpra6=|friFgz6D zkPvv73<+wq5RwTHmV?;-r!o(SV1#|_HY~e4qHU6y!Cn6Ir+@wJzcc?@ckTpkHUEu5 ze6UD@277{S3V}SKwbc5M(mSbo(=Z*18^FN0GO(LbpoLKwn~!@Zy%+_(m7gg1iZB@b3XNwh>5rZA^C!^o2yA+8ycDev8y&*Yrp&ZLNE+NF&slZS_SL+ zz5e?u;8R2Y|6?#CJc8ZW4X-Fb9Q-h{CyF?@m0plYOpj$qo<3dneKT*6ZFC;@#JVjJY#WBl2 zNDMyyLlXwbtp0<=b}K$jJi@Ptlt|eF2(z`c07R7n#y)H(4QC7MVK95NP0n~9Yugq=A% zWivbfmdJ^eNfC&^6`SamWHJF!zOv`J2=!u zJ=l}0(E=6BL&HNxVNAxI^hv@I#4EXo5NxQYVu5`rj506*fcSubaTr#az>&zGiQtQr z(Vw$R0ga%AA%GhVND)+kgN1uEK!^iU=t@G^Hylz495RWCaGX>kguQ_!uLOjVcmci8 zOGFz5g@g%5&=@4?H;ieh68M(HIDy-tj>Iqpk4%AXm>t1f6`W#7v`ZNjAQ6cOiMZs- ztb76WBb{XwN75um)BLSR?7_@ZN13y`SuB9+LdOD#N3MZ4d_uFa-gi7F4>WK`_slanH;!nZRKI z07Z@{=mZle0E9G27%elD^g%NLKJ0=fn&YaOD}dW9GCPSwdL)q8;6$~HOFCFQTuKb|1O!)l0T>Y=egK@yK$81O zREcOARPfHQoW7S41*qc(78ss_3xlJAg|B!PX8;IkZ~|Be0byx@Fd_jwIsqXfo_g>D z{CO1b#8g@!&`K!LUg}EF1d=U1&2bz}U@grEGRNJMO?PC?b-YpRk~7gtE1FC~Aax>6 zEK+=gvfmVglOThY5CH}Vphxk7v-_O3uv1bggUi_=*$PhgB2LwSiD>aMnXnH}pn!y- z6-N4xQ2>RPd6^c-5fG?Pk^})983mSc15tShhoBdYfSEU)zI_E8PXK}cK^0JbYdl!` zCA`rHPfDmX~2%xqPU;qg4I?0#}2B-iOU;qXn z0TdCQZ^c_4iQ8bfQlVtD2#TA$@Hlz^lY(i0&9Dzzpa2DEfJ$fp1+V}ld6^Q>fEPJf z|8WCJP)}K=z^N_C+BN5K(Cp{3Q$%R!*j zLRguQ1WclkhcB3b@<0LG=?-s*fD`Zq>YdrrF(Y5$mI&w$S_pvJ&{PdL0hXauia=g` z$&vAWPv-HTT3`&7fU{toUt*=-VWpDPghV#;J!p!>HrwC43ojpqMFTG`|$^q3aU@I*^3S_*CJ{E1!^8 zoKVVppp_|^2^Vf*XtaqLt}HKW6nDU38?G2u*pY+ykfkl+Rct1%VpbnR!?R5jv~6OY z<2eA#+N_mBP0YU&6F;J3kG$=8sUqR*)f2t~KvtQSksfUa|VU1))o@7JL zDkO1Q{mtYWJ-508Fe3BODb7S{wKEIofKpD-Ppm6ZkjO9)fwKkNSDs+N5djF`%84Ka zIxrwF_<&#_kxm(m$2)|~{TnTK zGy<-r)|<4NQ%2=IjwcawsIrY<2v%EKsN>9t792^14(2u95S0`j0*T;}%NRd^@R3tE zQNm^p=8;!}Ujn*pi z=_vqeaV~1H9crfrXvhXiqRbKt6a|6Y>Z``=tghL=6sH0F9^l;|kc{?eJvin4 z{%H6LX>pxGUYmfpT~k2=19j4iVFL*NT?T`e3JEd~Z|g}tQP~@vg0`7?KLkGmmX>fl z&vQKo3M6)>BOmM61hBvUpbn3<)n@MIj*ZwDaYh$sp{#DgnFJxp2eTF9hf^H$t2#m; zKL!96bj^$ks7e$GxIpmR-*psgoQPk;x<23o7DsUq^X?&^bs?|yAHQ`X&vk<^*7)}8 zuMTVB-nlsAaBlu^wN~`!X7v76V7x+OL2+dWj%6>hpm7 z5d^LznUT=KbI1cul>+Rkb8X#ocYk+y=dwOO@-l(ihW7Ou&EypF@G3@hDp&Lo-){>j zaj@k>JsevGXwtQ)^d^?zD76&-x=ew&{S-CEA+l-PIk;s3`hW`HzKgrQo4uG9aCIDN z)EoD+$)@#XObC_Nbz66NTyObNTN1CHX+N)b9sTvO9vZ!awP-c==H7!v7x-ld=>-no zRz_#Qo#2%KqU=-gO@)Ln*z`Uq8TNP$6%V+T(89oJ1MD*dE|+aP*9iyDiE-r#N#k>$ zDW!OCd$$J~R`BZ4)~qwBuHt4j)+`e`0a8Q1#pUklpa*!Ow}1+J^m;q^#1J0EXB$LQ zjlckK3shH%%!doKz_i;7cp!yJ*!L&-fxIun-na6$q-H&--HAexEdwRcjyT|YyHSGfDjf8EK!Aqg)fJSiHnYhDvgqel#G>+my?#8n4FrO zpr4|dq@JaaLQ$zhs*0&4DMBeKtF^AREEFatksu|CC?F3gCJi6I7^6WFgH zz<~%25( zBTJr4xw7TUm@{jBjCjbDDxXb?E~!!s=`5sY%6a3ajvYOCV&}}slP81;ghHJX6-&1% zQ-^j7|Lwc~_$cDXjh~t)F_H?iUQ=jfL?MOrx_VPkfR(}og%@V6-O~mwZeePG_ip=8 zE|=UA(7py92e0s6e2Rf?+@F!7fBw@2_+Nhj4k%!O2ok8^feRYwV1iN5a*qI?QD}u| z7!rWth6TtZQynz9CgM%B`O$%GKT)OPQB|$zVv8`oC}WH*E(V2lv{(mSSKeIX6$oj8 zAY^yrm}Qt-MYtoxIPM(Tn~*G+AYC{@HYwc)Q5H7k22CPa#00-=CgzxAmTBghXr`&= zn4Jj$T1aMasM3a~fuWjev5AZ+YN)K5+G?qvdNzQCRlFHm7ID@&5*WMo z%329=&=I1ZHIazZ9w!ExB8^ZrGUHO6iXiQE5kkl8wJJ#X?6or5xaPOuhAZy4u*B|JtZc{f0Vq#`PVi`>h4e-+B$LF2LJ1RO(80qU zG?Ib{s1$N&2ZxFxAqyEVdWZ;SB`m@Tiw?{vqRhFfa;mE+_3ElC!_0EbFV{@-%`@jL z^UgL~r0psf27SeaD{*MANCSvCEU|ag^qQZw^|b7^ML8Q|r`j440s~y*hFiq0q!0rC z3nDnILJAL;AOZszhuuL2u$0|_bPrQ3!rLXNP=dn~J4`X!aHG($wN!Hpl(*<6uK41N zH}3f3kV7E_oS(sq>#cIiIbyyx@muU{QU4L}!NPG&Ixq}SEXmpkFwlDI5g&p!!zno2 zK?$9vFagPjY|sG;6$q}v1|p~}I0}4Epu5^3++DliATv-q?k6Rv011 zSSLcWAQKBbz=0!#z*`~UKnrA%2E+*g1su@f3o774BTURwdlP{XJ8%RHGEoR>3sVvv z2p%Oy?uuBhO&53C|fjt_smeL?HL-74%w6#7in?xI_4wa`Nk>#&T@wHoax)y z&s;$v3%QS7@vBuxFmx+8HSK<#yXU^t7&V{xuPFd*(F+OKI<6HIY*E0V3NpZeJ{C}k z6R1FM3iCCEqQC?3zzy=grh*PMG>T)X;Md63$bYi%1w}l9!iJ!g#&CrZMhL+LXxIW4 zT;PWi@W4%JSOE{rkcLqZq9TWo!yu+$rW`my2qZAm7nGouFAzZxYsi8EJdqU{sHqT4 zV8w@NKm;cEss^g40TMJ*2o#isSXBUm47jy+8pr_MVh1-3Xk~5c+M-_f%GbSi(Vg$4 zAFklHAqu^#R{HAPKJmxTKn<#Tx-lJOdE?Cvcr#>$_(1FybtvHfut;`ulY}NcHrdiD z3VRWO$8`o8pkkWm9XTvP4OPH_D0sl9It&5HOnKW2)HIkc2!UA@kyI5(fVMC2fC_ax z1P+*$hB;J(rkWDB?3}o0v!C2L+3bc8Jf@w_w z;m}D=`kFJH_RTMT_uCPC1YlMGey2Pu_r6}4gmNIkXJXBm#y{;uStd0~Ku@ZayhS)D z@R;z0H@uXT8X+su$*bg)fP$Gy=%&G~Z4HA7#2lWWw#nV$QCkp+q?T9(9tiGoRVW1K zI@QEN5W!1RkpYfHjH_tv&hLtxRro5=1OwEr66HI(bESSiGV_I=yeGRji z#|*hH1~zE!I)nT&X9mW?#%Y_|Uq9K1n@#Q}j&{y-q)fYKJ#*5N2T1`h38{wlnW_*M zxPSy|$^i*vQUW=hp#&m80u(TH(USJ52Ov#?6mS~3x@DybX&V7b+mxwZIY13tCISs; zfQcz^byQtV3|B|21Fjw*3tW9RSKBoMab>HJ#~Risgw@q#bF~r;Y3Ta$_rA`KHngX$ zU!AQp3hfNA7u}cUc4-04V4Om}j5Y2C)5fv>q%bGc&Ea;l`=lN&f`})>%e=Yr#VPH_ zhw;G#<(|N|%-FX;Y(a!~=z9q&5Hd5lOXh|<{NdpL`m44htfm+2zh}6PV(M1&zfmbk98~c;j*oUAo(?;di_H>t3Hqydh5ZvYY+vXs?W! zC;s#Td{MA#j#JU5@bR0J+v;@(7#r!#0F_Gu&wUO&$_0P&!gB)9)keDF6VLdgH@@hP zU%caEcI_9mQvlfx?AyOMV2XRbp0m07V)O7PouGSa8}7RQ9*$aJ=dda<1Qf`l74j7eI>G`U;6XvbU1w7; z*;0XCF@Y!rejGD_9Ah2Q0ZOw_HuDe#I&vr#I7llvgG4cQsZc?&Fo7+#dqOybL|BAn zvUb_Vf40&-OPFy&gJ#HQd{L-Bpu>E7=M#M=eUAWmg>pQVU`MZmK!$)ey0bulWLazD zQy&8+AGknH)Bz!|0ezG)ZpART111mucucjkK+W?okK`~D5CU!`0wpAed?bhv06~Y) zFm8A^mh}M)q&qT5T8QTm3HTh%R)6ysfAqJBn%Ie;$cds@dlLd+_-BgS#(&zTf1AfH zq6dIBQH2i%Fg}5LEOdZMfk8zk6e3VicZ5K$fI)KDKzt-*EFcdPG=Ui7RvsmY$D{&K zMmBuIT`lkdcjEyikU<#$iG1`h&v-Z4Qe9(l0>l#~mQ?{!Wj0{)T_EF)(O8BMgcLj| z1kb@03uA=%n2-9nk4+$PQ*es<_k_R~Shmt}QV3^H^DkB?I<=S^erGY9BshwQ2w;du z)@NA|a5u0Zh=Fth69WrfrUDHABrOwIHegi&@URBZh%sFzK}D90A1Ezx<1oH6NEQ$Y z8$gZ`V~rw!l41i3f!JklhLz`uP#KD!IEqn8l~P%iqH=$x zhSfr;D4)zE9Q;W73VYrACs$>)ebU?sJgG+`tcXKxpG+l;} z0U>}qWwS?cD3L+&Jl}NXJ?XS35n!@z}Ya| z2MiIzdJ5xuFJyfZI1Bav_)8sgHqv1M5L5ydpn@AnOtWyDabYpT^E)q?oQ3d!Ea-w~ zV}mc`9NTF+9FcwyX_f9dmGFs`@_Ci?`JNk5c>#cV0+65i>6J-{iulKs7P6nH7?$N` zd`(kz9|s745->hNXJ7Z090oUFHx#}@3!UOW$KVtcnjjjYBARyUBA}_5iu!qq z{|I3JrHV|KG*Wncv)LyLx|UbyeCC%3(f52gT6k`xn>}g?Ko_6&Nu>5!r1N>CN@}DR zVQBripZeLK1HhkKnSTIEp!x}*rpP%a@HDZQcWK#t3|WAwSE00LrfAw>Bf6$++NLCW z1Sv|OQu?2CDxfC+x}q!kpHsLmuh9otw?=H4g*?g#To|N4`jCjKg_XFZ;j{=z%B0(K z51GQKNLs0sI*RxSr2(+1`^l-B%AcAVs{i$*Ejp!kI;#6wmZA5jAxEaSn5M9Lrn35> z^G0TOBX23dV?{7zM3AcmSF0)zb5I1D7+OpP$E&h{f~k-QBsNOcaReh|1PdiaZd$F5 zQ=*`Hd7xUVDJrEc3ZW~ongca~wgMmYMAy?LnaI;ij3qeHq6^5t{jp$gMc zaJ;7wiF6TA#H<5R0tkQ@g&LkQ-+{ZNtF<-q)W-QsPrI>fde$!n{fYv2 z@BLf~<=USS8?#bYz1Xe5JTDW*a+WJ)+TODwQzCDsBvG`BRCL%LMABokb~wYJ9< zRh_X=i@;3pMKMrjv3v7G45wYal#ai^RdN+28XzIJ6J)?sxfP& z+2*Y#3Xmq6pPtjD%2#)gl!%K_^F%qLXoK*;+MOumEDI;^WKMJqN zyBq=kl1S2lBLWf^lhPX-@Rv|4ofa?_B{01u00A3{0u~T5f8v3Hb`8>rw9*+D)d@l= zU;$ZcxQYN>H#K7^CQ~>@05{DZl{Z$5KLu zJK&%?aC1yhCQY590h0?hAm~&P%vP4=LAa(mx0-=zMKCwr+W`+oT8siNw_ zrTem)IxAResx2D;t}!3|a+c->I$DRD5y~xCQxsc6mv!kCc4Iacq&94$ExbfFg7|ViAX(R#;MYO!d#%TYDh=(LZ@Jy&7P)M9kHuM}? z0G)AloU>R_&YM)m_G>B+7r6e`G z1Hhw7!72m-6HNFD^~+tKvrFqEK@OvW^lK6U%=k$DcK`s(^O;H6OBJE$_?wP4sf!d)#`vtF4pQPc!p3|uiRMX{~jWbZvOTHI3k zMZA*f7m3jIE5h|R&Hf$}@||4%uA+f2k2G8#v3+~oarD?epZHc0BF)a$-zWY6>B_5`!X@k#! z;aoBaqH4x(M@+#w&_0_oeK;urLDZ@B!Xjb3oBXjeKFgsut(QAovelUJ$Yhur8c?(3 zoY+`Si*w-9J$du1dT%;fL$>IW z1*R2#gUi)wl3Ew0DVFd87UmK_c1+9biifyblwuH?*Qk)Uv&^O&)OMJFbR1a-9oYBjr4{1ulXc94L#{AAD#7k}Sw}t&~37COqmgXepT5j2_#J z5?z&QUXhX6lZf?9%3RTWvX$Px$56UjIkNiAp!OTmM>doVK*dI2=AuX@$gbC37Hy~I zVLP;E`dM0nc@1i(B<#qR8n(HTm_yQ^`X)isxjV zmd^G&b8Kv$59RsZ`|8A?d1TOhY8H%&_i*wC;@BdRQpAU$if0eIb7&`#Z231x86eJA zo4t);oBCrpvr2F-=+*EM8RH;htxjC)sst4VEtAItNF0swd32p&8b{$V@YD8K05Azw zHZlV^Tb@7Uw7cN+sfK)If;{FswLYFRY$|r+vF7o;yw3_gI*FqPqPp>prkd1nG0 zDTgNtzyrl{Ck!ymK=%|(2x?jh)SF<5b}~w%z>{1{L4{%Hz^c&>vS31Ak3bt$syAv} zhx?h_wG5D9UMESbr@?EoCCz#s;=y6o%s=_MQFG*_w749-Z_HM7|9WG$q}GV|QY|p8 zGb68C(KE0&Jt9}J`+&1OY_ntW_M!s#@wwPyt1kvL#v_~{A+7*Jv9lVf=cOjJ!)k=hs7hEE74uG82Xl2{9?I3fJeC6O0{s>4y1mS%j;ZT((t z3wa35d@Ntm)c>U%FFQR)(_^!3QXxL8^*XOobL9*k_58tSwUQyIsFB1+Rq;~Dg&x4_ z6wqbSC;>S@TGLn@b_$Il`vMvDJ{z=dcgzxvXx7}(hdNfDGA7BlBXgSJ0LuOD8D^1NSMb4f_0Fi0 z!7GpB)yh{G7`}I&7h9hql$8x%zq;Op(;893Mj2p{ZP*-d;-r3vWa{{m9f1yShC~b9 zB0AB@jjv!DpujPoSBMBVB+4KlY2*hD%l+B0SXEG#vREdPD%9T(G)MtkEVtXqfLn## z1%vfCg#s4W8dWt4M-u2Hh3p@sBCCa4Vwp>A$_yY_(>VnN&2)dIkqatR7<{HvqOk>e zD*0QlY+&=}^C1*HS$}AnPYUXzJoC0wqkQDIHHcs~fK^0vKIXG=p^HaWe$iYdCQ#gC zqI>!Agxr@A@TBQRT`BHzDCM=5%_`+3Dk)G>rCgg6Q#k(nqCrT~M-pHST(uNXkdve+ zG@K}fiZKBm7?>D?CMheX0k1Jf!KU~sUwYD*k@Z^5Bv@oztSAn5)}OY=z6<3VQdS#d9g}*R+^hWVyh40>*IM( zi?VCmpZkb5=pwA`v@Hke2Vsof3;OU>pXm<*@!d3UYUL|E`lL)@kxlD z)OAXV-QemAf7iOzy-^31(Q7#K?ujSpPbO^GVKp$jq;Ou>Sy0lad)f)0hZZx-0ElVW zv{bWcD`X|RUJ__jTNt0}>l!$b4B?ae?wq|*YF;Y%r2OLkYTjY>z922h+gUTu8W*S5=A;QDEZHf3oKrSU^gvCKLQDYOW*A)FIc@_hrt_fq zEGww0VWc`l8~8Y9Un#Wvb3sfnv+EktbHpBk5|t2Onj}*uSh|Je2_=ni9dQrtv=G-W zx-GKAGx=tfPJ}3SoIcZaoIV061|=uiEowxN{#Agp)QPOR*D665p)_Z7Y@}Soiw<)O zo^NxE$^ikXZ%*@gXz*3V^l^*`Bj>PrswBhUmq6qm&aLQVm@$FeGzeI_gOUqo&L?lNVpVmex*S}^S+q6GkF$N}i4LvAZ(=Ze_1Cd8 zJ_yqXZX)8CtW%~i^K8o-5Km#!9V3P z8;y%L?lJA5^OH%ykMxTQN6J6fO+-0=T&jOn^7M{qri9yB*oHAcT_F?z1BIK5pJ*wy zwlLGwu36z$a9}VVC|6W|ZoOPaP7=!`&za&^)p4#6lFTf zZCAl)i$dge%XEe)Gb|1T(V*XCVv*!ab>cD#WTsABG56`l7cZF&clNc8%#&N(mn%G4 zA`DIg(DP(=>5MLB75$+btaUw^a?QgS`f}?sKD^c;_C#S!X}H7=ObL3#)%zTy&6tE` zSM?&Y`z?+ll_YB%9-Hho(^CymEg+X1qHE&gly>eq;MHlU7>NlMxnx?YK0C{E0ql3f z_Nbga8!Rk57gK6e^TZ5GL-q4viDYVFqWqkyoz`7el&fXtJ160()_Xe)$r`=oLRS} zd~$qu0Ug-a+0v?bF>t*qrq!(Bwzj7%Z&>~FP(M?40*+Jg@BC`fL5P@Y(CHESZu+Y4 z{p?u|{Q5pa;cqkp86K_JhQ5bSD~w8+E_c5wjdhpSEKx)9L*6;GPF`{LW*umQ_lFZb z-9g(VoZBY3j>dtTN78@-pgM{Q7cb&~#MvDAInS5GgSXO;)-jar!;yhG#l0q;OjN*5 za-E(URG^;*D^vKp9#jWD{TsopaCvoo+EKpJ52N4QT{><^9sMwtg144!&=+5=2q0)B z3c~lma7@5qrWhIXv~y;=rNbkhVs)VUfjbANQT%C@@INKQz>*P$}T^&_N|DcgVq!o{AQ7(^9FsG|85&1${8ea4lfZ*u!Szlx_&)F_2+3qSyoC zfEKX}7pkLCZol-4wGUKAw9cPhhdGXpm3)kYVc`|KaUQh~74J0|iDTa7N(|BpxJx?$ zfNxgs+C4fDG6kJhcGq}HGz3jIMah9qxevl0Wdue5RN4}?)E}|U-?W}n^O+CvMF5On zCtXSm5I~M~X=(6fT$Ov=PihKj6t~6Ai1?JtxQjRe)vns(8b!Bx$aK*ZMK{ST+~LH> z`~ZjQD~TmS+N`_!&3sw6f%$yyU|`O?3TozEz|9j-3&z6<&PoFOEW=Uc0<2z<#|yvn z?#gMXRkTRb!=8?B1I#htWS`d(h@zs=&b=!noSh@QNs2f$&CTM95!CxFQaV8}uT%R&c;*+e`= zM&m#s!UTM%LTSV7H5&z}vLITpzDXznuG=JCGtg0Vq6mtr@@B*Ep1=zA_6gF!6;(3o zpB@HKF%(98g^b;xIGy30z!>yfx2_ZAE1mE-SO{JdSVU)7L(DH2P7z>GjMyfgx>`)E zLtc@f0^>`gbF$ZP({;Fi1fw6-egk1ph?zvPF|e#*JfO%bv7waiqBwC9xSiFRjQ2V! z?(f3jOaVPeDsQ}tU?@7lgnsi(7+()7{p8Nnzm0>{CNOn#vI3}B!>Q=v0?bG(jyq%V zle+Cnx*fS00%xdL#JgaSIpJU1!1Kspk1LoFSCegVVxM7QJ4_%jJDo9btnF{4E!oUj zqdxFfoa2kyQ$>71wxqnfo8!0b^P7i}SN-ZR+?hK1**eMQm zC}~NvBS%Zq;=~wP3O4@?C0K?%ZsvIP~`j&!0PV_RJ>am9!mjVSeRXooVBSZ=u7BxQrm3jo?0Xp!I?CKNQ#V4NU z7bhbQh}scr6@_iq7&Ro58`rxxM%}QX@6c;&pb{{k=+&T@<21r$U~@UCMd+Ayq&dBV zNbEPKh-D-l`@o&UUE=F8a0-4eg+)nT!Li&rYkXUmF+ax+nnWD4cprmK$$*2W0D>W- zfKvcL2SmZ~c0R!>h4wvSqGIC~T6@Cj2T(JDF@%EEfr4f517KdlVf!H}_yIUN0XlvF z1t{3Vc<~GXjPnTNSU!W4tK_`Q%p7~Dk;T)?jaKucev(oqfAufyTNMuiYSSgGDhbLj3*S$U*Iv442=nZ&}@!kxXtnC=v`hk z)ZP?(o1NmY;-Y5ReVlfxA`$2;l4~4R!}2WI+|MqaG9E)uB*5){R*IK=I*u%M^;wZ# zLxq4xRl-FgxLZ-mMO+aC=MyHmS8o_qNN~ST;E#Eee~d&@Lz!r&QHiZ7pUA8`&5w4i z48^&cKEMU-w9p*RL5{d2PJ5dYfUofqlTlV}ffEDcOz%)pfnB|lEgV4Xrzn;UO$;R_ zj{_F7ITUTXFoVNI7o~vKxrQd|6a`=E>l&%lBU(_$1DqQST&~5Pv=~@GQ*>@twDnf3 ziB|MyY%ETB3Fk<#YDNjNMjo{i-0;XzIGPT)ni%eyx;!}P76kbI+RT(%Q?+(kiF6U0 zxY3*PDmmQR3J4GN zuHd;do*qa%%bS}+V3t`#3!Z)&HYOTGb!C-tt(JrDrkrf}#mPEZZS6BNlH3)Oay@^s z6Y(PgTQ_ZI^+XR=Xh#kdd;;TbongDE8@nt^5oiyu_l;g>cv5#8*2WQINk&i!m0*o9 z9FN*_=|{;DT8SP5?#|#KTLh!5?3VgUMaDDHPury~~j~ac?_}s2; zTrH-sk&@LB_@L}POq=*TUfuXndiY>y`413a>EywtOlyi8bCG`WWF_=^SM0^(87Pn< zC}?b5>b`%u@!~TEGNFePmOK9|J|Eg->wF{U7dk4#+NI63n445CpG;g(kk}>~Oi!{M z)^A=1r^F)5QONSX+0)h~VW>OjeWQI7cH;2{y28!)2Kz%kG3YvVDJ3P#;Lr{60?+tsEtytXwy{=vNpm;B^cxg< z!gIK4qA;HREbF2%X9*vZKY@=Tw#FTYj8=yQH@YP3t2vw2II03q9pRY zw}d80m^D%H&(<+@ZeoC|%YkL{D|*pMq?8R;M=zX6$-R{Az-O_1i%)Z)3!~E4*~&>l zHwv3hjK|gasPHk24%F0JC|Fxf$prlPK4Jo%4}j;zfGru{I4Ed}TbpNI3AzFma9h-R zbBsAgAz;h*h^nCu{x1_E=(wbad4iZSHPpTBb!_@4D>R=z&u5N2s0`$ zibHpdWsWC}&`Uq*gt-+b>U@tUZCXb?ZNd$eHKd-(Uyhhy@@Y^E21*7dsfeapu%5t< z#8OD?kujpAQ6t`mtl&r4p?6sVq2W2nl@kldRellLgcS#Z6{h@&+PYwmz|1+?)89K$=MfDsD_eE@G0Fl~@32EIek(tl83Rj~UT-(5(xlW#PG!Q3q(B z`xZyMKLP|z##U$;>Dl`aCHv@wfM8oG;qrw^#G&yv?Ge}S#M8f`_iIFOQxsXQm*ob% zYqX@J@f05k$_i^4jS|X^xD$b2cyl)#&g^9SDAgygrCige!XO1qo$p5#YEdd?{*qU! zmQfl>0+Ed=+YgkdA|hS8>O#zeYq?$ zx16wY|J>GKdFNhed&!Ll4@OzRr$?uvyk%UoHMpGZDKf=pxQuzMhX4yb``OUg(&;!N zGD>{11;!_Ur)vmeKB({S2*3sv2A-eAo_s#iQyxUB+~AuIB>^uR7)%?BuwTaDT{e$2 zRI-Xw6iseXbA|}11a}*3b*cIDoabsTyxz6RScz(Pb`(K@ip%C>N|buo(EYHe-Ks49 zIyYWqt$M{SaaJE-TsIRm96`a>tBY9nmEV<^-=~Y*2s&NW4^|k8WPcu)TQt?X*Hp*6 z0WEY&_(=2ix=~^?{ZW_HEiW5u2uXMII@ansYxh`r8+M?o)GRQs$HgoY zoHwl3H$!dLS5||3?g2hezi1nNiG{4Fds2Fhv>Kmw#x4#HX}nKpX9@W&--bHAje@^@dU`+o=6=58ei?kf23cS7=3%en;RyV2_7r^e2K==Hd{2(Z z-%VLlF>PQFqOf>{LW#k_mLp>toLWb2G%XeLEp~@%yf#yt zbD4qC>#Hrb_%BGmY0_c6?5g5f)!N^xPC_t=?W1r!j+{}K?%48Ic;fKsWnYMHx)ZXY zJ*Y4Ish7Y-r1*odM|RIM6X^#g3D?v!Y$UMv!@Mwi1h*6V=D-+%P6*rY8A2*HKX+^#W=0{t(-EU~ z5j!hBE!lg;erY`u^JkqTq~_4?v7J!1zQpLBZGI_2&@gW_eMYD%J<0bi7_tQJgs8#9 z%z*2PD&-Mn^P-9Faer0>Mig9eQp->ig8l1MCh&$8dxJnhqz}3rAjB*EG`i|oRwq@6 zwGPUF!__>Ol8>a_4UYT1?p&GKqb+XsiK*;bu>|4zj9$c9Lhl%osahjuCRR4Sg0R1N zaF*1G&yn%6yN4XEjEPW-MVk2s~JgOOcq7!-^04%3GBi=^G+N{ z;wk_L2eI~YsglR@6gCPo-A+ndW~S9NQ$!t9>A^6y=?J%GgaQ2?vkq^-K|kGRf3D!& zo7aV^Iy>;etSw%(8U{TgiM0I~x_tGGM>n{SfJW;Pd_Db2z1-sphF)j;y&>L=Zj4c4 zr}sLwFH?~_km){m@EFkb#!BVPI9D0h>woQ4d&z5H^1>#B+6hU0#U#KTuRo1E+qbJZuP+nQdF3g%T;xVOM8_~7%qdAByXkwG==$88d$KvOK1DQ2Pr%2pcxm7&^OSw5%_&1@jDKRyl?!m_qki%YjE^S7kbkwat^+qcK4xq z((-{_R>p(~LAr?4%otM^b_#~`6pO&ON(|XAOngm2qg*?Ef?{5L5O*80*Xk%r<)z8& zS9gi0}yF zPLnv9MbUWn&t~*8HbNNk!*10{tn5)qm`17D@zm0GwsP_bVV_$+bzb@)^9501_A5Pp zEYMa=ZOHYaUHmcavaMNQ%_OC}y(@2jkOPaaD^*v&6oY$tiLydnK3+$E*#s0^B$u_i zSN`XcXx(CTfeSgvcHYKZ6Z&lW7$EiScw&PA$FJy|vE5irU6V828R!w1y&7#HOYVv<1lc_uQ z^jo+vwXwNXx>bjR<5;@&(hluXaiKT3yYQuLjRnsI1$64?T_N~@5sxIIj8_f4ykLcA zMJ(NgqBOM`YO#n2mjbwI#bIO}!$297+Xff1koV~KM3iJ^b&zwK*_d!a2syzYZOg@i z``=11#hqdB`%o593lDM?`uPD*Ye_;ljnvZiH6%IQuxMWG)8xucKmDeRiCFbA)DbBe zbN@VO{`O-XvU5y2F*U_3HWVPzYr3(Ur@}dd+2CLS0aha?xKSYl!G#f7@id{#m-9de zDIml)-;GUy0?PE!!Q6m2Z%teV%S&dP`Hv>NwW-T27D5N};{m*NxumRC@-_=oxxDoy z2CO#E4;E&*l1i^9nCZ*9-nHdJgQXq_CDuJ#_)U&CbV*CfZ6g-NHmJ18$8KX*c_kM& zd6Ol^wwT?5@AS9CXLaYx_YhuwT$)GsXj#9qcO9@f+h;v?seEL3+Q5g*pMfvt z&D`W?%UmROW#ibTTCuBci%aFZl|y3%#&GWvWi|4aHgHjr9~3L0%u@afP2j`Ude+ z{z37ivzQ2BqeYY1e#&c1#0z3H4VnrH`sNe8MmWNCuDlLzUM|;0RDO0G!hU_Y$H@co z=4(j;qt=Fx(-zA%Ej2xctiUQEj7t;A3@2Lb480C|x;n-k&e{WpzSVvhs3v`E?^_^G zt3-bqS+C%o?|Ir^^9JVLoa~OjKU(S7)zoMET&sB^+x>B|Jema(jMspnfg6{R*vp1g zy(64wVPL~)iY-8kJ-nURg8AWGB^uuOXzNm2WsojK6)-Q!F!}n8=SB~&M^oo zoqt$-y=f|;*P4aT>m97HqOr+15WPQF=myj7W8zrK7o zYv&xg$dmXoT4wvUaNYAurEhDD zZ>`OM27xK^(vVNl5YWhVJGDA=R1L>V1?{4Q;X_U7*3iqybs z=g~J~@+YX8lWS?AP!!8iM9%Yz*U;(JVr0cq6h(H1@2te3LogrbPuO4SBj+FzeL}0I6qJ2@rd|GQnF9?cTq9+XXZ6v_b9koABP0+m{CZRdXlr_g?Y#lq z6p!HYNIu2@?7S+VC3rwTX6h z_JpDd7%zu-!2|=F081^WLyGi1n5yP$=3$%EIW5rx5d~ez8jo)}H4~`PDVNqgAcR{& z#VQ9&kce|AcRfG1equ?eeffqJG^wkL=H6vooToTXP1~cd?NbUithM-WJVmB@)NCqVlD_?H#p5Wu1hUds>QO^5 z^jaje(gKYb_^k;>!#e9WHu*4tN;tp>c4p5Xgu`o;P87uQV8#N!)cZA;OIlAB*|mQMVU#~_)quc z&q%Fbv@KKglhbhN6=dX}x>3<(PIFOFJe_!H!bL)r6w?4&}5%{n;OiTHC1$daqIAYPXvm&%ihG{BrYw1x1dSfro+^C=4 zl891m)PkWhKz^8J=f)GHl&VQt_Sl*#NiTIu$g;6!z7By{qKlNzi0tt2_KLIKOz&t~ z!(50gqMUEKha2-m7xZ+|QZ=j_AQLd>W}}7E2utr$Gnq-8rwJv|%WCa9#Od45tmx&M zD%+da2j{D1u9~b{gc``3T+L5k(fjLd(6glDJ=u)XqO=bwQpsKV;~8oXbCsmog8bHu`(ZioHlJe|H(X#B_1M&qi%t_Ca(ceN`e7@t+Q771m#!jT+?moT zlhFyDUVd!ZsK!e5y3h@K+l(w4`QBoTk>2+_=@B3?>sfj>^0Z~Usjr-=9Q+1$2*`(X zKNQSkm2j)MI}JoM?#aX6z&kJUS*O>EPDJgu&{1M~eQgmxvx|A0UK*vT5>QgYwcGcM zR%@7nRB&&9ekLc3$)dqHx1HLgILjBGu8qk2;#p4KePPBm!>nDQZMT&*la-viWmvy{ z)rwkaH&blp)-KXMGp3UADBK#_SOoFz*n2UR^L$>xHUAI`O~cJoMdp<*f*CP}l~Ic7 z=scZcAhz{<@z|<(1+Db0*=cuhE9q{?n3abwb@DKEZWu6*)+%-- z<3$7MoEU|DlIi=Gy9C6hjJx`}Ryyb*Z*_I$fs@9OlctI7MJOfAxT!BuKG~*tm-v8h zAuk~_<>>8?4N>?lSeBk=#QN?#^QA9!idRa^#7o3_Et8Il7;0AP(UW~|H-e6LK1oTmVBuGr zFz?_|o4jY`UfC~{wsN-4uN2p>lq+Fmqjl_KtC&1K2&O#b-3YIyQnKm^Zl-;;e(<^P zpt{){b24{9j7$|NfhiN!RAR2>*Ae~m~L@@>4)>qb| ze=c~m@vuK4X5Ec{G)Y`uNW8Z&X}yYtOX;>~#hW<~{nEh@R#tp#im$)-(2q4xCGv2Ts=c zt$diypf37KKd?+dw#$|{ASN;A7uvrLsVGg&)#_g}GT4q~Vr8;lOweR~PG_D+%m(vu zS7iU3_)X0k8O!JW)Kh-FRaSeh*+4}!oSU=A64GeFgS^vvZ}xAxlMNwphQ#NpsPB*ub?;ypxw}$^Drz3 zmn+6OsX1}yPVTq;@@yWsJxQdH&Z2&?p;p59?i6K~L8qJ24eJyW+*loI$A}feq2o-b zyi%cjRJp5W6&g@oBS+Z_u@SvmNvw8C7OeS;lQZ84M?nEOlKyJgKUa}k^ z1kc-=0^uE9srUK9IeWR*<1Kigz>A1JDf^=RvNh4A23#mZ-S?ZBi7YlBu`UjdsE&}k z&dcpmNTZqI!8BuG2T;lpIt5Is@5^AoZdxI1Pqvqf)zY5&tw1}RmXOi(E0&+!a+MkG zTiQ5c2l67YSLI7zx2n|zS2%M`IA+a+&$=X8ps2`!+Y@e+1 za4#YrD`gKnM{7PW*iMQOPj!|yWt_ClPpw#(4yHdXovwFr3yCXf(d0l;=Q9p0jsSQV z7Z>>Iu_=G3kA~0xT;RZPGoQ82UJ?Fc=$sj!`DTCH&F|*Wx8B~#-9Dw6k9+J?)3;U; z<4h*r+||6S*7`~Ua;}-_AgSHtDsB$|dEG*Mua(vi8ylo%Z9@A5lx9ygNJJD`xM7S; z9}49dIprC(=;^J=;tB^1MfnvL4iSn5iUkVtp@3ln1Vg?ukkd#BtJ#W(`N*ln>FTQK z2Rpp5FS0N*u}x`lv5xZc8wzrH7f}w3NOg$so=)(HON}rzVyc7gslS_V@NSj&IM;&%t2u_aFLy`vVUajr--w|GUT{ zT%ruU%DFQ4k4N4S;g$RmglXfJ_LQUcEvu(ZK1!8~Ctq59$4~AmVc!G<1_g(N1{q6- zzl}0{86E58AD5V@ne;w2Ej=SMD?2AwJw+!n4_K^RR8pR8Q&C-08(L7;*z}>frM0cS zqqD2Kr?;B^R-J0tDv>@jm@pMRoi>}2Zu+;C%G$~ z=e=d8H($Qq-hI1&Fi3bnA{j(g<8b{3z;2at$mt2iq?SvUjm7K^Cwy$ZG+3QC@Qy;_ z!FmoUK1?G@4>2cWL)m<-4gU?47KYttDkMKtq^vDOb4yhT~^SxRlqR|j*oHmhT8EjK5io(OW~ z_SUZ#IkLGg#@pNOZcaBoo{+e--?!o%AFPgdbU^-G;2A)EunRNK{Yz;*ri~?x{6K*y zq`<@gIIgB3cxTn!pb$*CesB&AxvOVZ5U%kYk`qZ+umlpiZtU^f`*pWR-%r1@m7+)`v=0vlfm7s zl=c|eZ7qUqN;)$05bSk!yUe}hKcR}4xT+$2hik^&>>zyW-JG{{`=7JI zd6CWYlqSOv^B#ne_cWd4688#NREMpS@O_z>WHa@u_ke7=;rk`85{CCntNIrVVQOZq z56YXiOAabp)riC@JK>oRt9tQm4yy<0N)KyBcwa@7j%5;9)_vBpIjWyCFFk5laz8lw z<;MSR05jOC`LN;OxFuTw_7|ZT5!><{oD1yNe2`H%V{Spf$eD*B7NCuH!9!Z zX%D7Nk616R_EH!uzD3zt|5EYr*#Jc-OU)ZVr0w|-Ls8lJ@Nv?}`A3ccmWvVYS=)4ex?UvygxvU?Y~1c<*%L+GW5ws@=w=nJ0_}_bOAPxjYj5d) zzwtj9TgA7TaKQhSfKsEvE86s(^VjX{P+yNV*BG|jJz!DA?S9!)pAxbP^9Qekx>v(#(}Tc10pFjc>2N+BWF2xb!W^i5`B~fH{%X#m^8R|s@hRlA zMK*w7uoGVJ)E_eva!XfMYzVdr<)8%gRH3K~-CKp9;9EALjI4N8a8(e4LJl&syEt8X zRWNg84*v>GlcB3ph++yky2qfziDMNC$6*d;sI278Qq^18IyKCA%V2UYRdo5XUaWGN z9H#C-ALWsCMXp%{7VEPJBh);?0Z$-9cyE~5w;-Zeqkf*kvna<%YNH8;0fh-LC$@bV zHTgMk;K}XTJ3rKX3WR5a;>71MZx!-8j)8;H71TD-K?qJ?2#4h4OuZ$u^J(X^dlZSq zZ)z0#%cTKNq&I75WLqsTY;t;o{+0OFp)a z;ART<+5cRsfmW(BAU9K!dR1nrSgJQWJk!ve=%N3*RDVZqwt2xV^pPl;da{SM#ChUd z?W0m71o^pc;_E5~5g;=GQ*ft!T(yTI3z1E#{E)j?@!QcdbH0!Bg~koFR$t1RP76|+ z&bw-|70a!)KkE7V*Vk7?mD^g#FD@)xH#Ciw+k1RmT!BpJI?*Z|L*`!h7K{!f|PxzRTi-=q6C%TmsY#{XhiEaqDL)=sT;5G!; z5LQD#JzJaplhywQ>OUwA2hOICHnYmKEUBLv zS+SEf0d$osm$RAq!P^dTfTsdm+W0OvqoqmdYCDxrJKofZ2g`Tfg8lpI~sxSD^{5x+YBKv;wcFeOi z`%^yZ_{{9w{KDeWvVi-_+IsQSMm*?u-k#3KoLydB|Hj*!>5ovik9n)Iy8`>7?P53l zbBeqWA-rwsq3nx*@U~_UJ)$#eF$(rCUck$r$4JL9EAXPKZxG3 zXgo_a5Sdi&J8#ozD1Pvkh$QPTygg7xGwcZ`mH(BujgA}Nd0VmE;`xKOCxw~5-+9|q zwbt|Bc)JHcS8T4^oBAi-zF{nC`N3Nha;4Vt?)Aa=pS<0f$orGGJB!9YcpF+q(f)1x zczde!58h_2N;2Lb4xAj!V)Mk@-~Z(8da$8CA{`I}4nXDI1qEVCGpq&SYFVyX~Yx4;>|6L`kW7)gAq%~;uJII%bd z-hbll-d3_v2;(m+c2aE{_O{a;`+3FEU1zLzGCV7|Ei(DwI_ab3AO7TR$!=~W@BVIH zj5O0;eu9?uUO|d^$zEZ)`~F^0b_i363w)&Yelf7HWWQt|t@Ar?nGVY8{^afT{=wgQ zdvI7gAj2$Ei66$$=lO@=9AXT8Jm-~FWaRj?H2kU|An_QEN2kj+Me|h ze&;R8i|$-Za*uR0c&gF_0Q(?UCZ3sQ|@y-WssP$UWU~_=C4s(>fOA zS2OxQcpJ)kJr^OO2;pr}`SpVBciuV^I(aA?uw65RPQS^9^>P z^UA+@PLYiuBioIgdK$zKga%L>6z?j=@TG(?MzN6XAznBQ;UCF?@V1BS_B2!!H5bC$ zUMk|Vx0h5H*vW&vbb@DLDv`OkMY2)`ofSVe>@*Jcv3Wyy+d9eGE!!{1m3kIwsgUQu zmfg?W{2jP?Bs;PLf(vKSo+Ei=H-rDcTPlJf*-c0^|I{qXKjZp0&4R@BAExy)uK$p& ze>1J0n)P?b`c<(0zq6}9Yz-dV8S|@VMg2vyA}aYyziZai5`pq`rYAnL}A0f~3B^G2{2t|6obS^7e;j{So{Bpjo8eBfn|ZkJzs)H~&qu zevSQ^t?WNE>)&GkM7;D5&HA_4KUf(R;@Vm14E!GZO=lbb5&MGKo-@B{*1H(M*Nfd> zV_&(W{r*l@INd4ihh}Zpiuu7BUWp+hjKv!H|26f4S2;0%A zHUqdG&hlsMmn50|p;;U6ME{I^y5h|^C%4Xj&@4#ohX_FZ68kT(%YMW@2tleljR4`^oM5s68lyz1PVW6-%5?h)>;!P(^}UAn4k1}?3Xp{|6A<8N`vnHMYH5L zp~im1{=aHgVJVpHIRaZ##S3hX7_nB8rn_SUGBYDTFY>upCk9BK6O|p{nZ(XcxPvQb zn0vaV*)CWi7HxQdEM|4Dlb8=@za8rm$AH`G7^nb>sV!(Yc#h7lDB2DlKUfkK4yYH8 zLO-4xz)&x7=?lDR{h?Wx6Osh1N~6+$)2!cPKQG*M*64fenU zuQpF?P1!Bn^NA1Ze~JCwe0mvA{k){_n)T>j^x$hc`rYB*H0$@+kFO!G6kbPUIr(-` zN{?~>cg^}e_IHaa{}%gSb}GRS-)>I6$9^^x!ta_z;k;1L2`_DGhA!OeN5zl0r+SK} z6tFbP28sRDaxXH}9EfK9jD3h^X%BW+=~M-CMCNcY(e}8!tooPO7v&m%O854c*zaS~ zJA=gjx++EXkJy)7q97cQ?dM8$aHG^lP)_NDIb0dYk zjYEIeEc*I@-?2meSL{G60aEb&T@?Nx&(E3jTPm}LpOva{qX6GQb@fYlLFSH*W9-RG#9o@LEkaq8F^x@H+%y--P zjvd)?yx-crAK0N47j5LsBhn;;*ai}Mex@I^mjKOo**j@I0pYSrrhtF;oyv9fD z%aBV(8U4dH{(_x1B(mSzy%acj!Ry_>Vdr0LqaYsL=TF-ZNQSfiX&e7Dc8K4_{j`l+ zoPtzwJkcWU8l?UI2|H>@qQAC#>$0N1*~Wih$C&_t2v0|NY(yq}3KoUOP;g{3CfCUp zMc8gsNHeqiT^ZOj^u{$U&U2ng<_eXjpt8^7=K46JFykC*Ws?@r=N z6x+Tx8vAJ*5ZSQ*z1?d(zCEZKVEc|8LvSN(!}oU2EOhAA6MHb*pSJPse1s2zoe3HC z@7N)?Je{$~5`_#rf3=Nv*s5P`LslX8ueQ;5WIIOARF;eXyKQ`L_kLi935)+b zcBEM!s(xVSacH9eTOG8AI&LEAzu3ly0UWOL*qEQ#L8~r^OUVb}O*hpk{ED6P1R$i{ z`vp4|j1thF{(_wpO3I(uxkwpQfM937JcaXr!cLLk?9iBd^F_vKWRdXBvvKc*DMGQ| zK}7Xe5dAu4`hO`u|9=jcexeLAX8H?={x)Vx`|dyg1foC3O#cd^ocsc(@WSG3o09U1 z%Fw*3+PZ%Pkz>v9=-Bu~42;Rhr|#*QAGOynAnKZHJJ{blIsFMD-ME|EyFOrR^yT^4 zBiY|TL^5do`Dg*jad;Jcgxe!?F^G4BN z!Urc~MqG0Uh)79&zt>&?FO49z*RLS5CL6JYfXLTa?E9GMe+AJN9@;M;D&GFR_WB<| z6kTolTkUlmBvz;n*IArM>C5!Lfe1cgBa91~;t5{`HZyCgdk9&I5dRwzGruD1VNb3@AsHejhWbrTrh~-h!bDwQu?* z7L9b5bT>$YbT>$YbPGtQ0@B^m(%mWD-3ZbtEe!(ZIt#G3d++-`&-1?Le2TgLGryTj z?-$$ahY;P`Uio;A-)%1!D(rp28JH(O+g{&<=+^eq8(&n=w{hdcwHA2rI{mE6?r((X zYs|#^ToDp$?+|2rH7_9{-jCYqr7Hhbh`z^6kfENSnCU+eqObSQZ1FPcA7Z9oY%lj? zx32fgFcLUn!O;~c?|BSJL<>5(&rO`Xtw2J=)c`sE7u%~PM)-b(UC^}4WMu=`)uj~8g+Vu)>1G{m(miyO&u-G$hglJDb?1_#rpr5N>@HS=w z*`OeF~C@>D&FY8Nxw6sQjb?!jo@;Qtrq7^DSoj`Tn6Kq#*{~KVO9i zbpL!XRUZB0{X^|e!u2lC=keE=>31PIOTQY<7q}ewIcD(yOCsz^@=t@%iaV2H{-IZi_dnH9dfUczO zzg|gQ^KA!jzlzi4TFlkQPklwL5qrCDe_To9zg$TJVg)LDI(=cLUwlBB3}`RU4FY;& zb36wW$+VS(fy7Bpk1czXo$WXe#6bL$Iadw;x!{(8xXok?u}5zih+nUyk2zg1tv3wB z--^@nFgNzh=nVt$kK%N+5_=!g49)QOE9n~pVO#f|fgn0-I^CI5mi)#*y!atb_vKH% z++;F>Zi2sx6DX1i&J|mGLake1AYGvG68JTfdHz}AI+OV!PW{QStk(?0Lw)ZX2I4ny zGJZh$M+Ray*8uS+aiU2C{I^$9TEy2YsR$!CSqpR}X{v$!N8-e5O6&uDSMV6DqR2M<3j90f@L@5OMDnL6K7T=f`cu=i|v`So09z<;0 zyqP?N`;yd;*tYe;my)67<3-aP3?_M$H{fY>ds%ye0RjXpj-nP*SH_4;r8)RRoyu0c zK#s?KNt%eKrXQd1of@C+S)C3<#nZD6B{CrXiGjE_=WfM`y^N0O8v`MUEBS8PizEE! zOy+lS`jN@ZP&xd=m9$XJd3_~CPA8~LKl;}zX%v|I+EqyZnt^!YlGu9r%;S3|^Ecvj z%Ru}W;`Gg&`_q*aMkBw;+%IG#oAE4Y6$}=xvIBLU#2}Y06HdKfxb;EtwK@08l_ZG) z`YW@3e#vC6#Yr}0ArQIzYbNvUO8PEN2|aeMkFFz`{w9*D8YLIU zzs+O}VEe?riIZj?K=CvN10*nVIl}*PB^7qv8UN)<`fko$i_;cWaptW#*R2PW70h`@ z@$b#Kzg|hzUf-`IieIm!?{?j9LiF9PyN&k$szsonC_1`AqOQQbQK26xQGaCy!1*1IJsiz7955w0@1yFQ z%M?rvVgoFCD6ZLn$tvyxVm#mro^No#A5x-gyDomQuT1|39MJor=*F&#rw;lF4*1tA z31ruunbxIW!+8H9MD1^UiO@;^PKag%Y=6LbM(Mx60pEnkh1c+Y+Lx^>DiDl^RWJ_y z)Ki~W2X-EM)%QCa;E!W^%?5<50R^cs91B(gNw47mA^)KD5CZ=GKfnPm)1W=6ciw!3 z1Fln|Z+4xD6tV0N81H8|z!W9*$CcEO2xWf*2mDP+q{hhjGaNuKtak$kz{5tR2i#mq zcn_ZC8Bz!q85Q;aB_%2`8TqqO zoIwpIqiC>lMcN;{V6(RlCNc zYX1aL$kbWn#q0xlcXi0l5|>Ng2MP&?{y z0$URGXoFf;-mhHLJmP1&&Q0vC*otyRM56#fvtHERvmiQPlVIw~HyE$F0qIY6otMxu z($?Pj>`}1I#Ud4k&?OWcFyd;JO4$o;KMK)WP0KxH1{a%eYyj{_N^}k5ZD7_ze24MAUrFc6$)vX_kp$P>o0RC3$vKq( z6uf~_qQkY|ydQSmsyP|`NA;fDl!$`p-Y$&Z-c3pb=0!8i<%LYh7#4!DYuaY`;n025 zS{$0^eTIqnzX{PYTKwTRyAE_E`Jqvt{d^@U4wnw5f>Rd=V-Jo8@Wd&ndlZO*2)q!j z^DLYZa}t=0TNv+7p`?WLWXvs$C#??Jtp~w)aLnO_vSxc>#NRwX>c3Gp5ViJq0{2@U zb&H+f=21Tj-1k)K@9wStb?h8;X2ty+Mn(LtZZ{s_;g2wCi0rGnnf_3>pBaeX)Xf#d zK&bp+ApTX|en-tiO1`0Qnb)X!{&&>e@CG#xBVu&?2!VFZK-`8=)Bvno2I4Dfj#XJ7 zk<-rvs{kV3ly#)}qZGT(O)7Ii>Q+BI3<{$ZfV#XSw4bE@1vSTz^Zf~ZQ+pmzca6UB zQc!8z0|5^M4n^(?<^$94MZ6OV3Zud&tK&kvvwQ%$&#Jm3THm*ZUsxt3>rP?? zI5d_kbNnM~B1Nzc z2yBdta%&yBt<Nc*_ zsUK2UbdA2jV4nVtnqRBiT89#Hr1doeA@vHgGA40x4uW++3f6EUY?{a5M%|MC8b;ls z<`Mube714X`|Ce35U&JZ@cqI-csbvB0Iz?;K%BS?JgN)VS^gC@|7Q>Ikv_^dS^8@O z>OV*GZmqvRo?HLdr08e9;&=D&U(vijFcSZp4XA50@4s(A{VYqjME17^6q3*CXnH>* z<+UuK=}7ZJ-}z8ATLnV%jO{>-#H;7Sz#w>!uSE9W99^|^Vlh7x+3%p7Z=xvyDdHbQ z_O&ccxWoP{k?m4@=Z{Ah5kj2<2+jK;ORlpMy?-LIuVu;Q{(0-y2Gq_gi6@1v{5o)l zZ~iJvI54mfSl6pl*n4t4zDEM7GQRO#|vbk)?;PzR>?gmIz4y!=vjd#*b*~ zuS7N*$vx~)s^u~02n9^bjV}P%--+yBWC`iCuS(hyK(=z0pH5E4F7|Rh~1^p%%$XK@9(!p?tgnA{SSRWkl&Z^pIk)z_bR@X zZ|7;hmVpdyeEp^T0)p+_L&77Z4aB1(;|xvW6Q2eprE0o|*=D3==g4N|-j;#N#PiFm zs_kQI>Z`0?g37nrl``$Epz^Kg^WK~CEr^P^F5gbSj<1`UUufxE6kA?i0hMpJav=@Z zMc!_|Jg7cC{7Qv?C{FqK1qcQS^7~}dS)L73qUcD%<6d7xtizNOx@{pi{3eUD!v<`k z*eSVh%#lg1%RnIMnM^9fBGTqjp|0Md3*m6s^E5wIPyj}7xxmMZsAx@ON|I23%0Rp0 z8Lm-1suz=mpzQ2913`Q0I?eA`z`>iYg<=dGf`n1EG~Jh4`{?N`4~fu*di zt@7O$sO$3Wjr4%ZK;NWCQd1I5jcZ;3>&EYM22l}##J;c(zLkM~1W(t}GkT^Q&Nb-( zVYs~sx`;|M!E!>#a_Zhhv0Vh+_Vl|doI-1F=Iw#D&M z3r*GdA^QDdMA{p+exbsHSEHXmC!=RvqI?L+bS0*x7C+Lg%Z_rPZro9{m$xjmv(YQE zz)P~BRn4z_Py{GQ|D6hVCxl8|q<&jk91;R5--60OQT%%#>Z}{9cmcBawtNdJ1F5jX zGbGKS3KgSR$p4{y3!=h7WuTZG;iklqOWA1aeuQ!(d_k)HmfP~}3wVpK<=g52!LQ|8 z3HryC7n8~--3d_MEKSokzerEhJ@4x>&~OhtbKkzbA4@*i*)ZB5Vg>Ad=+J6cI>&J# zIMFy4Us!wJaiLV%=g%EmP4_>ZnPCWm2_aBuv^$^@3oe-==tY7F0kC8P0RYlwnHtnA zX?`c;9G++=grh-D04!GA9SDHQP`wY7Z~~aq3QdNf5J2V`p$`h7&JqMX7I|w2w0RqY z)}k8X5+^EZTm}0wg$~2ZH>U}@M9`G%6<5%Ns|Ke7DOayoCYyqU~%g3>t!t@Hi#y9nvF^vnuDrfGalm#-o^RjkevM^V0MXdXi!>!QC z68r2_3PO+tWxj;<&Shj=jYhc2yvq$KA>mC7KqCM@qvVE%78X^m*6yBki)(fmXlSj!Ru6U`Qay4D^#d>&A;;%eRjLEemhUx8VoM&+!)5=L25$ z-j;7igzIj~xA`(lt7vtNvm<34>BUQrO6r>4uQIwSku0AiUpDW^0n6QIhL$fHFI$eo zk4&*%L%9xKwqA{tKe-%Q`CH;yrwhn2!rEUm>yNOJE1@K+!Xlue#{%GCId!pM;QOZ zc#wQe7WT-FIPZsvsEC>zD!E}tR=iaq6e;n6(#+9LIl zJ+-C}(`FNn#VdUNFHK3ON_yE#Tt=+eG8$*vk?JY}35j&6K$Ifkag!axL(Tm8xq2*G zbRNllOZA1pmZ*x_`jG=0kA>uw1c)k?JCiPMnkeISzP=qPhjvXKc*D!=`-|_b&WzC) z#5LNRE=P{IqZ(GAk+|An)s{OMpju|x~qTH!#R2q z$V;$x_vmH+JKbYi{>6Rqc|E@^8Wdgme@pb(u$Gb9*&u{gSn`ZlN|J!E8 zg`1xly{K!_O_R0tonMi^Y+U$!=sMQ4d^vjA`tkFT_oe%H7lQHsA5X!H&9>W>mjB6X z5adEU|M@8x`-?dqQO-4Vv%^Bl&;R`?c)P;_^k%g2@soh^53+j@92PEV5D{%_5)<$7 zEFnoFG&CgnMTUGD2#~$$g=d2RS;wgIsxqr;P*X#@M6Rg;w8J7E*YRVA<@zZYT{$`Z zx}jx8QD$!b8j#I_He3?hS~r^V+NnC&{l*{_B!U>E&!DHET#Exs6b_Zu+hhvFE1A1D z=C}^EQfgPoXKH7fpvvsh&|YRAK5@|Scm(D3QxF8m+SUSE{G1K)Ml|tk_ZBr#bMFFQ z&^nwF@Z{&QWsAlNpcY;4u!tm0;&LEr$`*ijSV~o$u6I}~5!|kDVvY~RAXUc7Fl6LxoYT?&U!9fGvU!Q`cm?GV1L!_)o zLPlX6>(t$0JdG9dK1^B42IypWlyapKB~K)06HzXF z4fgn@K`!ni{%5(YX6|sBnzG&Oc^ra8G-lZPjs89akfd)`Qb7g5d^Q%{d%Z!t1sN4d@GwyYy+X8T zMNd$R5$cmwixIXlxvY$IL7zzA<@m04r#DTK6k(q*d>ks5ryQC~QRVq)MKq`THn2t% zXU`IK4hp}&WDzOaDl|Q03s{1_E|7V^v?BeA5sf-%NTWHsBUe?s=BI3+7Fg0{|0K~Stw7+Y6rR9$skqF073xhMWh~)v)lywyI#eAgw$c3>%8-okm<7|FVFC50DHs-Omfr}{N#yW@T z+jXUvn1Lx5oFtZ3XR87tcncFIN6=l5*4<*Sh_>8e~ELI zrR4h7P;yjkCus-@=z*4Fgt`{@LYuUSZ95=_*Reo?)7EDl33=o|dw=PGu*RXX@v$hC zgh$gTXH3f)k;;D>G z04m_gclf%`K5U9pCxA!nc!mLMfZCbR z?s0Ad8yegBrlzAq@e>kCmSrXbtVWXl=DxQSaV7$vIe;i)9ExHe0y4B73Xda*<)gzG zZp>^t`Ip|nVV3o-9I*CB1DPSxFEu=4HbuY8<%L>yfQH$F1X$D{!deDEqwPJVOOHCj z5P2aIR&fH4Gk_Bo#^(rxEudaF9!!V|m@zT)PTxFS%pF8>VN!&FewB@AW)JHeY?B}u zVd>MDgp3?FX14-Mr|xjRN{aaGX&!e@4_zB(G~x+A@B%DXo(-}H4RG8YbLE$suw5_RMP1&n4;I$!lB#niwt z_fX3}!h4n0TbX|kY7gDqU4;^*HebBOLeZ&FHF{LJP{hAT)}QA=o_KuGsymH>Q}Wac zdrab@xbCTRZw24H+_bTzd`%&i7CR#FQmgP{ohB>=_I9VTBsOXqBygPC^=WLE&sGd? zc>wkB7ZpL6cn0+-8jFbRm3`*cx}V@dPeBg6nD|hthKji%N{Z@%!X1nV%Lioo(V0hG zMHH!){uS=dbPlq@Xe)2XhaX59DzreFY&xoszb;Wr+w6od(i(V(_nPyJz8Hgp9Gblq zC8<^H@NWCeL=;gbBnew5bWDYA5KTR7hZy8Y-VjL(QAn;GEKtvtvZicEZ~{UW#}>{0 zULnf)tI$w>;U_BORfmQ`t#&VM$#dS#A|zcZ*2bh+rTEBTWn9*tQ6FQsztmPy#j*8i zit?`ZR^%^m>RKRa$3a3|Yl==3!)B};pOw(%s@ZO$E$btxoLnpE#X$&jX6xL?bs zFk-f%eq%=8q*ueHSvt7wj5gIMow77kE}ElMT387MVP<^$>afuK$H_A1<@+oRW3o8s zR)|(leSZ? z(^;9-dh!{T8r39?@hB`#mf`9;_#HD^)Yk_VF`ntvt)7;^}c(;U~P06tqubbw3{(SO3n6NX|PyYR;BwIX{@8iK{`uT0Xz~0RR%BwU1$U zj?htG;Bt1{ukjb)Pke|vNJetGuFy6?cqmQ*K={0;ApPvkSXS`IlrL9p5d#mWzC^Pw z6mLI&>Pq!USYKgF9FVQbBA&t1>EegrexX2t3;{7(-@9ZQC0C^X#4stg+y{%-&L=|Z zRUiT(L>(mU2m^U47wHIj2oTwx<5P|ig^L&6CgIF>_(4U^RYUn8Wj(ZHIM$ous1yoTTn*V%s#+(3fHhBM%9c-sNiP_ zhJp`*F0hZ0uMT{}5~D2m1gtlhH3>fl(_2q5R%F+dF)1$3N1SIMPSHYsOT<+P4r{R2 zL|IJf!2sHN0Sx;FKUzTC^Ul~9XXv-5-az5;c=PrMZEp1HT2U5G0|e@Xr}?gD6$a^f z36F4TPpRN=1p!YjpdO#bc?8G1tn&G3CZ2+Y1#8NtQr#(1ci^MCpIYbGKA!jqCn=VDm*Y$7=j|<0OgFN^NYku5k=!UjL{tg$DAbpah_5)jRGma0xWyA zrsVi8dmXpjl9=C$TV%gtRQOa%p;W}0=A)(teC~J^OmPV@sTi;w%|;yDs!PDw18tQI zDO>eWIWW6g)nLMH?47<;73LRS#3DfR_vw6WFv)W-fM&^z6=_}-6n(++OKzUS=g?nR z)ChQN1E%AlSkt?mlynWlFlg^kfh=STsmgc&a+M}Y2ml2y8*w7Z-U4QGH+vQ3g{XUu zg#L4Q!yL)^9IwtC`47k<@GgfIcBiPhODwq>jk#-zxpEm9J*aeAgSp09dEKUY`7CM3 zFgbGbKENb_P~XgzO1g9(2;3?PMN61Yw+Az8xh^LmBgZ^Ek}&l19yHtlXIfhda~L>D z(#?&0!7lD;H|Szq*zGqqyWIFuMT8TkfTmzEFlY#yc;X6f0E(in7BL%4ze|R`wSX64C2Eac##VDgh zT|XlkB~eVUlsYc%EU=(B5HLFcq3X;pZO5DW%K32x1=TTwh&_>1R+*%qw|TN7W@Uai zi=Fd$Hf%zEX+}AZQpw4Oa-|QtT_L%ZjfG$y6|kW>7e%J$(S(pG74&QTv6dcR@WfC& zD#0r&L@Kj!7AlE8R<1JVeP{qYFLHwmE+Y1TZ*|Ew8Yl9$j1{%JyWbE;9SS{gnrTd1 z8dnEZW+HVyAKZyvPRk5ogHB`N4gPvCVU`Dm%L9;?*qqe)PQ0{%%}!WofDNqg z&1gvHZOoygqS9(4&dMnWr8a;HLvLz)QNiyA+jOFc9vI6=l~E#Ze-BxvskJFbZ8gIb zjGXGMX+SX9&8k^JiA!X%>0y4gi_a5zb^(We;-4%As~F~QxX?A+`Ig#i4rP#@RK_k{^)D4(S2D*jI&V&@ZnP(KXQ#R zQ&yOuu(9#Mu`i#-);C7M_{T-pIsqfd&|c%=B;%F&<4B*!#YDzX2*<*$bJ4vfa2Pl~ z4$Dj+;vlv}Vum835!Qa#50E_rn@J(18gJK-2pNv1lo^_|F3Eja7@xHYxT_y6RzWps ziImUVAct_L$3qO)3mUB%idA>2D2f;_x<|UD|D$EBWX*(vSB9$Yv_{&r*2#p{=X#Hd zdbQ&xby$-?KS)^GcAV@w&Ved6tCI2eQt+R)#*nq?BAuqmtsie`c}ZrBRJcy{v^!z; zPS-vkw>oKj*U7BQI$4)f8L8xWhtp#Ywi-8?D0gxCh5k%J+FT!V)3yhKpQk(Akle`x zGoEGI!vm@?eyYhyBG1w}nEiRjRhzIOW;wsvfJGJCG;-?kHea^U-QlVV!o^Ph#ctij z-R|Kk)S;LuOAW=j=#0fMjK1D*_)-3)PZ@)+OG#+Xtml@NmY49MKQ68FFY7vtZg?&4 zq%BAFEQ+-+?|oiACR{n?U-`7NeBL5^;kD8dy%N#6B5k-V3AXxyf7Oe06(FF#=(P&p zx;nhJf{*wG2JXu$n!wt7j5UlWYd+EQILispt!w_M-}W16|6{-J=K*HWGRtl5`+d&w zd+7Tcg!F$Ci3Rz6@jv^0f1!^4KY(F9^PkRDFVElXE^lpzlE+3!NDy+6AzH49X z**m@V`ydYefQ5vL<5nrJD$Qk(~VU($ovY!KE^4D_-O}{v1CVjjpsS-7~f6j zFqG{;P`UEeOdl`>)Hz&w<#4^bT!=aC%4|4!v%6fBPcoe>^HU*y8sPBL?sC0decZig zq~CWSZEG5zKvJy{Cz1t$c9+$Mif;Tqm8~%PeTdB=P$7PK7*{U%-#dqwsST~~6TcSX zA9%`-HoNt%jb=AJYlX8z-E%IHS+R-rBSK#6I^wqOu5u+K9d(#21MMzvt>zj4JD(^7 zTz)UayMw{}A^QDJ9pP=Nf@UDEfZeb}KkYzDc69RfYr8U@?!OI!Rh{J#36iRB z*@VJlSY&)qws9mqyD%NAd#RrnWIlmj5p^@2D2CB$#L%M$dJ zEZ_>D9mtW?dH-G<7Xle~qCk3k5-eD5``DRu(C#vQAFlAt?y^7T*w@|VZovNS?($!# zBSlbBI;ENqZ$I7hh`FasW82jJdJwEG{a)l9%{l3eM;G%OdBfMsEG@|k_JMiMpdHAx z8W;EL-DPi>C;erY@HVcsj(5N9E`xR;x$6*RuXiBt4!CTkN_e>3>_G19XQ4( zpd*!hUuL0m1-gIRUAC!&d-ySZ_@I-_Sm>mGXwdd_7+C6lv&>R_U+#M${vSGrZQWx} zm4ToBhB{h(0-y1HcR5z98E$>k6>F*+4pyT>4-kofKTOP*M=7j}F^Wh?e=`V%C4BIN zaS9R9NK)j@r{VyFB$B`EKt^lOSO+3Sx^|DG83oJU>_GO=Hqr&F4TB2tuGI9(J)uH= zS=0jkJzr-a@n&YT2Au$5D%5EBH#3mmsvhQOTp$?s%`q9Vk&urNs1T2UMn;M)g)0PF zW|1t;ARzfM2u9=QEqA@lviJgB1XT5~&tuej0|70!Td4ZMD5fNAlTw`Kc6a%!-$xs2 z)e0H}t8T9}fcH!2jq5y(85o|VuDbR6G{el4tAiq%O~p%Yc9-GjKCRqg>yV>MI7^v& zsYUQkuu}xhI&EjThg+R%%ys^{5Wh{L9z6PZ?-knG)EhV;F1#@sDEjr%=SRP;dYotU zcov8{o%;k^I%G=07KmL(zl|u_*U@hqn9QtCoR^tl-~hY6k~(Ro>JV8tjnMP=0^o6e zJb3Yi@-Bm~(m$N%3*ISG43wVA!h2UBDOaR?y}P_#lp`N*DL!AwUqBR>tIQB6)ZwCR zpb?M4JyLYLyNtHtZ#*vjU771hvEJq2jFz0=gVt(`hu6Ey zU(Uhxu4p&Dgg_x?tf$>6Eij;J;_Xnrs9JkVe!aVV9sP#9!oH1uISj-2OD&Da=cgMl zo+fyG-(4mMXRrw`oLjn(u5XqQ;G2ID zK$`%s(FUu&{fhwF1SsRByP<+di2Hy1i*U0EP#q@uPyZs^R56(*<$nJc;X04wWVl1> zd0kd<9YzP`ahJ-54QDrHm1=kHU^H^cu=cXFj~Dwh)l66~gqtr)~!4`ymiGz6hp=44?sS{h^#e1o%ZA_Sn}HX=ez z3UEWcyb}>(TCB~DO_T%$!J+UKEllDy^a@Q9bUcp{#z+hJ=)mRJvvk6e#MKjMYJ3O6oXU3OhfoWfN4I6$&h> zCQA)@3%9{BvlK$UIJl9~2G3H+o{MIM3kzn;$pA}(NMBJ?U;`#>_e!~#33kG!kGXSl zR9dtdBTxINnAEWurL&4`T%nQUg~h<0>TJ4xWEvG)(mG-Z^(NU*MGREc;tll5o4bnDJPE#WPJ#f!D^oXGY*y`H6_ce;nS*gq z#Vx2uX{YwcZ>)Pt3mQVK<_&$P^|4Zq=zVkya@5cl)Y6?P!j%pm>+sR#=I9Kb@m$dE ztbFNB^LRp^X~}2EdS)-ZoeLI1K~4h0r^tkqI2H0>-<0ZTK+4YkR2>NVh5^M`+Se|i z#Dru)qp=8%j-YIhCsZh6xbCbnC%CepPllx2yGR<z>YykjYF9)Web6HOnU41uIE2HTu$ zHaQiLS%p>0>lB_$6RpUKaZxSyYzRrM%Y5ci$jNM$hVG$|zq)>SL4iY)$xCP%nrwkF zSWi(aJqU#1(oy7+<|%#RXB5%{@n-%tCVJKs6vgPR92y#stBg%z;!CCz+6`ixr6@HI zBpB2lYR4Plb#ZieARRpFLffPkqg)z>l1Uk-*lapC7j8f?$*v6n5^HmBK~tyLOF`HcjVlCS`j zg^LpXW@x}AEpC?feGHy0$#+Ylh ze0@U9PrN}L(+;VmQyq1nDojG~L4DOt6P{StLLr9!;rnE=EMT{3Lo6ZsT~O;&yO9ro z$w@an5qE|@g1Dh>hBdNCV*r?GwqOydR;FP0fqUt1)*@Zb&25FH9!#Y=6knw|E%T1Y zoFE1!48o_U;Us6HHY+M&dtuHetAdWf3NUTax00urBKBEC(+k^T0Sfa`3U=MFLDk(U zH79iqhIY~@ln_Va8b;o&5+7KdmB(`{EwU&pR3&3;sL>pq6P-s)=8@y?`MHEn`A^E6Pd_)$H)Kb>Jr4yD-mm8O$eYv`P-PVUM1L@C@Qk7w5lBy4yx z@Eiq1AC-)v`;=b@x19cmF|pAQ}&?j zVE5|r5l(*pj*-{rp;Yp_Q^yy=xEUyUUej)eTr9D1s zJG;9{P2|mHK>3u~P+aU-?sE+-;~TC6X#Q46rn}?dK$Cm!Wi=e9N@Wj*sxi) zpuIlE_$;$>=!^MMaCq6Fnn$n$2o;4xrqpB1e8Bt7!KeT%1o% zd}_6<_UHtR6bh1L+@oyV&9O|8T?{+1iX*R7+YQyUO{719D|#CPCi8uDz{R}_NO1+l z5NFiA;=uzYMQSMBDtf_jP;9L0@8++Ar-D9sB{gg+u^B z+BV&^QOG2_+%%gqJEX;IG`PQUXjrzC$~_hRS!LiNn!JXwElssqyE&6sR%i;j#7P#N z?9kGU@=31 z_m#A)n4)8Rq#FfK8@Xi|skUrixNJ1T_A_eY_s*XoBKW#JF~wtEUGcwNr#4jApiqvY zT_=wSjQOHQ`wtG}#!{4nDl;lEv;T^@Dgb*CVH302G z1EU%ITsb0C4$g{ZP|fE77YKM}^%z zHh?5h4T607X~{Zkxl8hcZg3|ohU^_WG8E-q8rIM^DRg8shA(mAUnvl>aku({Yls9; zT*)MLsaH_&Y+UKWcHVX6)S2j!e%VRCp9KT7z)jO(d5|d_Et&9OFG)G=wK}(HC>N}n z9EbP27y}v;k3%6bK5@3`xF_3EB6&gHE>ID+Wa7)B0gU&ui5v*I?y;_R%Om$I^kA6F zl13t%h#<^I>;z?gu$Nh3(JhRFF>Am?^|p&3V_PP5`^fS{O2ZHuoGtV}d@bDtOn( z-aXYweQsbN$}urX|6WA8Acy1qWNg^FH!vDaVqjf^u!{5$y$YFW=OdJ06vJPGK5W(#zH(cu;#A(;snLe zS3##;#fIQeX;*>Ai-x)-B9ikEQZ-8Aydt=&;t?1r6MAL;6g5kzD8oXvIgNf(ouODD zzz0rjJOm0@S1Z#_3q$4HWyG@FSq%if!DI@pfZw*Pt+Uums11R$d+7eO^u6o~uA73f znfro~yS4~W+2-And|7!WBZ%(Ltw=jIH}kZ8l1+@<(*cOOtX+v+Ow$ zE({yP1WoHYD{6apD*b0|lorXH&IVX!&c&wM&y6|)OrIj;N%e`g*Sb7-%{UL9f`+bh z31Bl+rHgu|YYM0voQF5nZXn7O6r*Hv`>13aYFw%AxaMYlw>H_Iyk087pqd8sHZio3 zdH~*U8j%2??UHjbk7^yzwWQ|2-b_1y=B}q;C5vrVmTnj(oQiu9_1BQDus(gH9 z`;AJ}-`(>x{v^onR$XAyyZ@?B3Dtn>^&=vz#5BH##keVu4GZlz=EE>WCAp$eCJ1|rVm|2M*WFl2&@$y2&FdUE8&SAOEASJ zXl{z9Y`?Y`BsB&Q5Ou0K!9e8r`x4q0L`v2r*C^A}OeU_J(Q}B{f*BXso3Idk5_(Wq zQ`yKM*gdk{sVuQy*^(+K1LhXK_52BqlV6e{ey{U7cQ>t?F-fkeResAeRcBN2Cw>^? zBR(luJFJ$M<0k6DIWTsl8B!ACX{jm?Bu&lgEg;xL%{Jq_)v%Pd7Ya5o_~U4q!X0d} zvsu;iB;Tq|>H$<2<5)FSRh+wqKJTMGUr2s|&_dm7nuTjheJY#f(S@`>p7Ok50MW|c zxlsVds+Dqhr{mc&hbU0{U)?8sAwTvSVIPUe3 z(}eMsQB=eM4&;3E%5=@@5)ua(@EZwc7orm~Rt0DyDG5PgSaUP#ZhjjxEWQ7v>2#5Rb);^=Ow6VU}nFjibbu_%2u{2`8*2mTG90 z6huQGez2Tra!$Bvd$a+bDk+?d{W6uDPWzm1jBOd&Ytr5Sl@GZ*IXWYH5V5B;#~~`8 zW_QOue=T?%A%-`6z%L`T4L)mr~`u1JTEn9m^`AG{Oq@93>!9$H58~dHdojW1R zJ3Mc;YLlz4Itz=kmc8oNfg9{Hz^DrSvKK}4 zHd5d%8)-uf5(bcG)*VHMD(8T%j8pOm&aPwG)T*u?h0tv^&A{{HMC@y>9%t>yE;;p! zg>k*YCR`+U&$kEdikzL!yb0#DFiY$5k{j4I>kV#W3l?~~ZZc|v3C?MWrEcg;C8dpy z%`tpUr>z^E{;n`@YYvYhh>j~F0_Ta)L;1TRHTE~PTO#v}<9jVuJCZT^08x}HrOsVh zOO~9}4>h`qT`(n2jI(!A9Gp~+@kaqsoGF+2`?MSoP9JiU`z)3bl>JptMi^Q$yq<9& zi*dg>J4w03irJJ6lEKR^&L6g)ivrTwH)u)TSnv>5RvA- zoNu)sfVJ%aA6mWxB2oD<9vA1FFHUX-=v>%DUfA9(*Rwr-KJl*TVxQOG^5NQfFe+F} zrrM*s_C8FN&)Piw?+=m$UPU%v8IN9tq+UfGU8%?q3C;}7UZ4+Hz_`DV@C3r8-M@UV z*e6N1k*mzlc}2;yeD$oEPmpMrk(DcdQf~!v+ppq%2JjB&YX?2)`{e9Im1bu4l=V8* z2G!UjJmT}^2ut`lHoc1tU@43!NJ{1Qe4dxxUR>|TB!6Bhw;1KR0 z&+!dPN-7KE+?A5%6Bf?lE271eq7_l5CX?bL7sAEA%gK*B#FsDVuN5vpKT}qg7t${< zC?L)gmXReY;HMm9FIJR@)ls4x^a#H+2DNxMr?k4ZzM-k5t)r`_516`0D<>;2EIUgm zl1eY9EYByeJTJG;okAeBg&Xg^-65LoogiGA;&PtP@WOHUEB~>ux^I1Uq<3)!mPjR3>!|W#)Qk^o&JXs++_17~4#M03m_x z-b|(0jDWe7i_}U>Ak2L|Pq)+U7da0!O>8|bj%NDQ@2|9c`f$GXrv3%+$ z@XzSuEt_>RiXBk6#v;Vdj4z29j`(P#V$fv!S0Q}KPb7kT1wI94BleG*#g)poGeaTr z*a17mA|%HJbFnQp`g^hO>s!D(*z8C5;mug}O5lgTgnh2T7EXE7dwAI{LLb7*!(#c&@@O-StS&~=e&(vdxLW1O{;eJ$Bdr6fjt=fRYcl*us! zvr@Q!7+m`~+qm?Lj=oq7Dy#TO<;NorW^~n6FkdOD-RtsUYbOsvRGbDw??Po1RC%D6 z8Ll>O0qVZTvdr)9jl1z>kf))I$dW+Z`(Q7OCp{>bFz+^RLp$E#IP@tQ-uulY+htHQCQ|RiZejWIhqskudLIuOj+Q?jbs#_dbTYuS^66|s;o;|ZbG9p= zv!R|o{PKRceC5l>ld*@u&+m^`fI#s7hr73ms`_ucyI6 z`KVyEni>2`uo$~lREX}*3}FY6I9GU7sL}OV;t{a;jk2gPOMBY4f*a!eFQUR7YG%nd z!4kLEq9Pu(=upBEOA28|pG5jy|3rjHR< z96W;u98z^~zIJY8RCCNqiO&b{1>;KXjqC*Gm||O_<7;c?*liPKbl0L2T6gBIdK1g) zW5$4=UZ3ZRN|ZI?h)Ep0KF^d&EN3PklO$qjbYs&|&cZ4td2(l-w}V*THasR}?)n1% zNTR$$SxoAx{ld*@Vg;8MF=@Ls3%9)t5}BUafxNmG?)owLJ%EYLK)A6egp;J`#}S)} z;jkz|O`;SeADe|=yC}w$q!hM=14p{MC?P}wapJK#^f#8Il#-O=%3^cb9hglI4wVxf zM`ErG5+zwAy<9j{$-n)1cS*sUL^X3p79bL*ju4upn#&PaC^tu}kV>LfC?8j(R=ccL znWR=qv7)8D%Q9(vs8$(%BSew@v(`wGdad%Sl1C1owIA%kG`xr_JGo}0OYFeivKCkF zvHSS}EU9J(W_*R;jTL>IWX-1>@s(i?D+bi0T7B~IRdKZ|MqJ5SWwmP6sk(;I8H zQOP=U90`qs4r`AyNp+Xx6PjMvt~pdD>#kZQG*9lXIdzcU-waP^nZvib=x_gDeoy(+ z*x-{XYZ?e=w=tmF^?XVfvwZZNYk$Vs^|M9y4+;(ml|u}R40Vi(jZ=+31brgSx)A&)@bQ}#r3@PQzk?sSY%+Y~5DW>DbBWz6nxz>#T5 z*~?t}G%P6jDhZz+%C$e+bcb^7Au;*Sz>z7Ko(G&fBJS&P|vqhe%%vwT>phG#<9o;A#bay-{G@Y$Y2o(hMj=*{;2G7XWhJD6s4 zkrGL~fFN5f!kHN2tO9@+b{#Tx+;!zefX}#AVdfJB|r4vXl7>fM3kYMhaZ%3#wjlw^yFBMjy!Xzxf?52fk|Bx7@t zO)_^CUJ_)fDeOd|v(Q>Dq|}=OpyZTEcNVjl+ISa<_8!5aNODPa478`G7MPW?oZAU_HxwqabBKt_#LB;=( zFnGim2#XlAme^4@v8u(+} zY--#n;c$-xI?PAfz!tL&d=`G9k~I7X=a{F!z8EhwX}N?ES7qsm*dY$m8+D<|(9HvviqA&9DH})nJ zfaGwPV7#M!hZkj)4rD|E?Da$iI;qd?^Vy7_4^*{n<=AJFf>rZUj)DeJxLGx}KwNxt ziJ7+iE@QZYNQ}E|`VU&O^m5o1^B8LSZ3MW5o2&f19jQAMsIWUN9QO#vuS}E2*rwsq z^&+6~U}G~W$|v7C2qhJWWDV2?p@dMS(*uVY*fgiG8fiot4s3$7GW7|=o#9#Dhz2PR zNaIBfd*jGYia8HZ9!_$Ydt>6#AO#v9d`drF`?yW+Sv7KP!G zU)?ggQe-n~ETZ473IVoc;EOG)6zDXErEj8#-CB+2Z&^SGX9mz}x%)v%}VZb2(OgO&G}v6+V` zjk341NUy!S!f1qBMHpt0fcdU~MBhmaeUihuT&5Q*UZPo*<%G?Nnlzi=E>>(UF~^X< zS>vEhqXn^6>l$qT{SCk?x$WF?9L|s{ME4$7+p<{UR4R^2`EP)iZZjdlb@v@OR&^w} zRro+&2(UnYb&wia7AxRK2z;oYX+y&q7*!=!@9z9mJnA9dSMc<$!uALui#bx?eJuR0 z1}1j@3RJ`8DbE=tc$Nxa^tvX1Tb(FokvP^hRz)ALc=qXCir~N~AV4J^20<4go9O0n zJVpU-%KdM~d>!LP*RrVqfj2u6b@k>kYQ*C7bgBuz(RJQkQYp1mie05b7<<5AZqTFL z!&rSwS&BeE)V5|@Dp^NDp!j-<96<-F`n?{^@sSi~s}SiEKWtdp`mKIFb$VjRTbwI9 zSm5=orEU&?a*<3~{)gsB@x&Nch$+33o#740@HroLwP!WPb(2NX>_An+a#q2InqbJ*_{%g<*L-k9`OR#QeewhDQv z6b~lV$X65=rM?D6!i#p2VjZQqb{Lla?#)>jrYpKn{7xQPS=?GSZx^`jJ~&-fp7B`$ z+bxV%ya4kV+_K(S->WXc>6&-9sUJjqkrQl_WdtiGE5-vR7Aj3!DUH^GYU$)A>7JMI znm<-}1~)-n9@0XZ#xU*<>Mh02Pw?l8lRci7;nka?38V^l+PO~gu?F@k;=5h-jLoS4 zD%nV3>8=Xkm$^rvgLUB44hvB>aBp00zK+^fvh(ct9|s&( zvhyGGTM!^WVW$DY5Z}G+ksu>Qpr|!JmiR2r#Tz?ZiRSWG-Wl}?vscth? zY}mqAMg&xz9#<@ldEC3j#fuDK3k+ck?JbI~yBah2817j!F@oaq3_o@Q&}?qK!_{Ei z;G#5;`IsrtQq46n!{yt}c1J=A2j2z0K}Uf{Q9Q>Di3tz+jV`90GBZHst%if}uvjX? z<9tGI*4M5ygzk}h_XuDp9G?L`*c)Gww3JqtD7o(Lr3%0pbrq;n#ul_>9hUBpkY|gO zHpw#|A92;*@&_7P^o){+J>=07_OglN26k~zaI?FOaxrH!zE#Zj9CMYBm9MA( z{VU$8T@Cj*y{~?Xp7^>|M4ANnT(Ig|aPfX(9rQbawAOXX8}p$12tG(=61NUOvpLE* ze1`7G@;DV1$+YrLbn=}9u#B&bdg=f(bfA(PLkctNKCm>a4WO$>nZwzF6~S0~UW{#5 zj*UN%%nUMZrnig7zI~19tAQ;GEh$SjJBtrDi=KTZ2nO(0r_fYCuYjJgR$HktnCexq z(q^#imem(zJyseCE*g3y6Yr7~E2X_lA0eR^7b1mg7(izUBd60Y{%}ER z+52I$i<9@5zK4@mHSv{J4K(url)gg5DyAd>=|% zQj5DvN-+u=SZ656*l^7!Vh$Fj5>W>U$4W#+OQ>uaJH@(BDUpi+A4~Z^W^JH%t)brx z;geI7&Oc@MQ7P@XE+0wSL@6LX+HWCeW81)Q|8r`ALGFY2=NmJusGL6f=2BAn!OY_cSl-O@~E64RFR>o<-4|me{BFK;r$8 zvaW-xgQMg1Z6&WNaWVt82s^hb(VQ}ZyB*moZ#I40RPVjdReUR^lsfld+!d_tS1>|? zMB@W|MN=ilmKIADz*4!2Lr|W|jh^l%{3l-tR+*UF4V5_kvaqPR z_q2FF*v3wCd3>OU$Bm>KPO40DrB)>dXQIT7npXmBQ#G+Aw(u+)!y&R)K{#O4#9bk;)l*7s~qfx z%OeX%lrr%{Wv0j-e#N}p#M}^cAWCXx*S?z&pS$2G}sa|cSnmX6@oWL z>QfX8^GNZMwc+0$C=cbq_dUwyTto=#Z24G&0B%6oHef2bc1t0!IZ3ezQwY|X^G4}( zn)I;ol#}%4n_TBlsiwvzv>BGJ@Ftsu(huTIB=gJ*a?G;{U3DEi^Wi1S5~P`58>JzZ zJr(z&5fyBiH3_O>oG)Nk-Me|R_?GQMCATj;GZ~&>YdlOLgN^3`T^Oc+8j)=zBkR;zk`Bb<^>+%>>uYv3|w~5PyVSX;FJCnLFPxBm8?`@(5>X+Lh89$QJkA^Vox= zjl_MtUa2_}xC>Vpb2taMe0tW)T8&)f@4zFj2jBR0JN!<)N}2lIHWqH*m2MA_*f+4e zuat$W@t6U{^{G@X+V62G-e>8~XW7>^C9b#!ZmZq@nts*HU)RwQ$24n0>$zoc9 zv(e*zH;E5phJn33Ql{`e;sPh$Eixl^g3K{gPu_FG*3cQj z))rRM)<0kHwWBeSA4~DfH_0-zALLpv>*w<@cJ_SZ?#?Jt+!GLHwH5fr$<=Y^h5k;q zWDmFN)=lvR_P4m)v0zC9xDJs7_Dy&3?ND-DMYn>Aj<^==_fn~4ZySgmGowb;3~TG7 z$#PXiI)V@=^>0!FVo~qi!uik)w!m%D0yYQFRe1+tBc~3dD7ENqjvQyeppXyxCb+R- z;BibkR?kt^lBV3AbaZZZ1SU7%cJfUGBw$azY~iO0vJjiN+2&7@%=-iC=rL)u@Pu2{Mp^Mw? zS=~VwpKVD$)>57J<@11dzgBPe=GHAVMp%`sYi#YXA4Z~_c9iJ}nRog5_T6K@#i%^b zvOg&C5_&Cf#eFLUc|c6V>xzXvLpz|Ee0Yh@NSS?{!Mj9yN)3G+b_1SR;b z#1)6lYviq3`y65oCsO-PDhvS#imn~LOan9AEVS=l7IXQ7c+^^Q!j)l49k~PQ#OIiJ zld`585Si_3xoL;(C9%g}VPLn8l`@c6^W2}cM{G|Z5z?6IsT2<{#-uC4fBR`phUa?}UMqwaZ-wpCtNbO-$&eJq#r6 zs@X*onCi2|tpL7}1Nm&#OfaIc0W>o^5;O7x+;=tOxbEYskz3OfX77{t4Drm2MTG{u zm(w;$^F2|U?a$oaj}hGjhPG7zfWBgQkqC!HK6=w^W|t+`w}F(pCc=Ue?A5eG_br4xop>{;iaXg38M)x?4Fx^* zWOaVcTzgBwPhk~-Y2I0#)6J`X7wB{#2D3*u0^^$S(oJx*TJX>kd)xI1=JoZL?aZ&z zS(_f|9map&)1o?RSU5XYL&$`gXUFYQk-wI!(y@+9U~1DKan^$_4mHS(+VgMw41 z#hF-2c?w4Ix=-x5vT5?rq;(wFq^}UDRapoy(Z@ZVu9&jLV=%PS=cax`)+IEku(!yk zdc-X|gNsi{OiE5kO-s+njHjT(dF=)-|IOQXg+#<8q-5k2lvLC-w6t{}=o=WBm_4%8 zzFNxZpzF*o%_$?G>KP;|s>mklsYaEeBh5qQ4}3`z9|e3XP^4KPt(Y?6t6|Tso^ey% zQ=_a_hQ?Jy+__YEi&H_E8%u)ovrg!EK!+&e6|$9;=c?BFB7RtI{GrHE)M7#SjKx? zIRv-qRda&%gC}0FNCX30@TleF9g2-r`g!uQrb*#8{!0Uc*Jv_04?9JDLo%m2Zy7%% zk|Rl-8rBqqeaL+s*sgmgk%;$~8h6tj4mDVnTZ2=q7bHi0OJcai0++c!4 z57^1Z;WM zU8Ill@`WFb&9Q^{~A>eVIrE)4#a;Vvwp0g0vsNq18w`WK`) z{Bjx1C(=&|Rb)3YKd!(~M~2vY%lF{wf3lTWNI_%nrVe5o?WK*ng^-8Fc(@n^K+EBj zW_Xe{`kb{=)whYRab>jsYRA`NPFB9)uAcDTTPoDoUS7xRrTF+2=LP>e-G+nqx72dn2{%`DY+I!_Yp%;nUmLM}sc;PgUnSf( z^wldBCArs4>xvzLVnMemJ3~1~eHYc_azM3s_ciSe@c4E0A~kM%I&{E`3Qs!>p{rTG zd25o1kHVnztXB%n&|fI?8hb2}H!^+jV#z%;)j;tegJ(b#j7>ft#IU2lj4U{0+2%LZ z*0Uv%P-p=98Vy=6(wA9;w(!NiKh_}YS7*3W1M zGaj#m_f3FMsLvqG=ZdBA{8BK*_0;ya?IfglczeuXgFBc?un!{}KTWPd`rEeN7$Kn( zxIBBcNBMy z&svlALhYHTO*@1^c#(>}b~u?jOyfGlfr|dN7K*nddqsITi6Tu*i{Vm(u%D=6;2>x^dE+ygA zYWk9*G)ti%NPkNyB^2Y!Wf<}`nvyzEN=`g7GFeoO_BOG!(gX&=7uGrEkU(j*yy&=M zdm~o;LusvN(ec$aM(nmOGP?883C%l3SG}2KWW%GuPgU_P^nB0_5$P~`uj_y5h70Yy zg~#B-O>I!2MzKkz;K{IKJg$@BZGLC_=G@nL{ssLPc8H%-(99WcUWJV@D2z#AxaDoR z!2@u`WeWOYv2gbru_6#tH3NZuQE1Fe){mn`D;^%<{Tn>A0PY|CtyOF``B{IfkdbXh zbAvg6#6~&p1%RlGYDik2L?tn;DCb)3lALXlO6po{{?ikk4jDH{e~VeGbrpd{DeAnx zby!x(g!H#}o~x;x_qSOf813Cn5saWh1p%z$_Z z{Om^EW|(b?0r@((=k}g0JH>_pHCAG;7|&KzREi<})xESX1AA!#(OZYP&3)lAMh>1FDj4WHZO=1LJs zuX1^I3zbsM)yk7zmpbki>z|N6(i%#7Q(L!NYKtMEIG;4uT6X=3JGq6v8(_SPXRk7< z^&uBy^4mejz3NPIOEZP!iPw&+aiyu2me$GdCinL0JIJkU#|U9(>)7fBQ>`4zlP6al z_nW85E$w@fKkU}+w{E6dd#opa{I<9M1eU_a8!KfBVc)V5BW;7%M{wF=SFmgF$R^t^|CN@;d+u6+3jOX=Lf z`hM1j_v^G=6HNEjw9TVAm)V8+N+Xf9t+@KHb6n{zgVt%=srz3SgeYA{BGPtpdA}_w zrMtc^PuneZ`u16$((Ua~+Fot_w^iG8x5@Ri{nq_&>)w>^(^%<{&FJGzjXN-(uBIOj zIvsCkQhFq6=pMbUKi;iO_gJ+~|1!CMyx&22oP{R%b&mJsa3uYh|BKYO)sNVRlayYE zL+Qu6^(Wsp)4jf}r=NV=KRM~5L;en*`r{1DKhh8{zcjxXfHBO_`H!BNUrar3ZEgLp zyfpuH1}5tAGxH}?<^Oc1;2#he6zq)<5+3Xr5gnr%8=n9@QvgS4q@`qL$)TU0DR}+; znL@|qGllWD6Yt(ne)#A+I0YquK+Y7Ja+g=v);Gcp8n-vA;rE`+9G=cT!=c*q>StU! zQxF?JC;nNL1&-;_DsPBl?Flpfy_QDW=p3^$3=`5 zL1v#Pp#+diX9`&1lKrQ|-ygHjzn&?WmDAk+$7kj$#XJShwV%f-4EodLn(J2IH9Y@ylKz2IXeQ{9&R4HGl5sp?jf;maS9oQ4U=KXE2 zZkZh)p&*x?4U@z`g>*91+1;VKp`q_gL?HbA&HLWSn2+^9=o8!ze6S~~^?a|$gC0Q7 z6sQHUte8$@NG{F59P#Q0vvJt!lM>c28E}3X9QQ{UZC!+Su~pT}CMC5fm<$%d4iW|2 zbsf(n6K61+iI%rQFj7=Z-FFyc&hP0lx0>FW3KrsTjk#~MtyDrw9o#>C5xwhK7q zzRf)arsS?=E%=}>?6^lWq$Cb~N30tV0*I_eoi&w(jnTR^pn|H%e}WKzmSCG}LpD63 z{Y3bc=BDlkOz&kvTvjeS4hk>m3`~8BRGR<5vYprbWWR6cwUgIuJr)}l-Ce;4DcdT7 z^?ZxNl8mJ_stu?ZpGS9ZpgTCxGfu@{{AQ`|BqsFz6XDNaI(62Spv=W&ebpCmP5=o@1_nKs2}=C^ zGZPU&Z*VsIEVJNJnQ(@lm&LX!hoI*#2p|f>G}j>n5c7Lb;;%7}?dc3mGUVMiUysxa zyQCikkomCWH9GiPvr7S?gE5d9m@@)MUc{qg^a4R7>0!`M1dvQ@b|ZY+@5J9T0*LEQ zHWfK|Nf<)>edzm`LAQVmE#Z{-+s-M**!mDk08u4SZvJ@&CMnVpr#6%IHe?27xi42> zw@|UxNF`fZ4PBUuQoOWCz0!Fo8Pn-BKIK?DK;3SkuJC3{2b6ZaEO6L=QRx zLjsw7mMeKk*gyVEV6QSVti+HJ?Mjc*uLKYVII1%Oh+L_;#_t3We9ep7!C#1wlmtYO z`4-VQdO-VWx_MQsrMo7=&JpKk|~(V(}3 zEDo@jMfqis?mvlgUf|$;UkXfcQEf++{`GVO~B4mUhBJ%|ivN0asaWVf>4Dc!PTr8RZzb>LG zNTtJp+;AyAwi>uJ2Zmy~5+U1cc_zpuOY@NJm+#wb&hv!}X;2meKk+g1Vumk)bU={* zIg4R2TP_G?DaRE-a48p@#0=SfafEKO`Liq+JuT30!J-5L9t2>JDCJV3G?Krsu8xH7psUeOLOu;GpU72Hn4MD7TmgA}i5(!>P4j0^ zF+`L#q1$Y|PdUC5Auo%vxF$-*4B;^$J6_*#c#Mh;k?tRNN+8YljpB*$Wu!C1_poJke`_|oBj_8Q`2YWOgj72ocXQP8f;b|>~+q5H)rUCKg=0* zy9eq5|Je<>&hohqT-=ba{VN@y#lL(*Zl0M7)q&?XFn-p7xTWc?3CIT6^HiCi$-r=E z6c>0#9YofDaYJ7FC^`JW4|DcI2jp8CY@6Z2SucR~lpwpN-J&b!OrAgKfQLrJIiB(J z$D#CAzhfB0Gdv@e4jvg4&qzWq?1L?SzR~G`#WMZIZ^r>j2Bz|7ddN;1YWhP5W`q?2I%+ zz3Mjyxv=FA)HsWZ=gH&;KJG zfNpe>62pGSGqM>Y-TDh1fNXSH1%{@vo{YsV|Jdk!^Ju;G;Ca7Q+bN#0#SY~^&;gYz z!hKBnr{-*B>vW@Y;QHA4M(2xL`+v33DZ#$`N>#%W0<34OvVNoEw7Lu3=-eAOOt9R0 zYnorWH(~LM4lI;@Cj;|VIZXKyTK!oE5Oslv#MV~#2NTi)I0U?WPIVx^OrS3pYR=Ae z!0N=!CiP#Efg@Z3TN#$D*1s_jxqmE0nn|!eK3vQ%KR#NiUq6O0d9I#(-EoT7{f!JP zsA*aVM7|}yzqbH{e^Ks$8JYpl$j7~^WP^;W_W<$gZ|3Z<7#G!Jp%DL+3=9F*BXc8< zZuk$m!eBa?3JiWzkY)e$KhS|wb7m8oO_p8N&d*qKC1=d5%**UO2F$V_wLI>Ux zRYgT!)&Yn)3#y{}9@NqQya)L=p5XFc^Dlg7&7NU!1|@yLXqJ!T(A!_lq1r z_8_DGa8Q~vkGpn`y!~L zLo&Yz>ZYHdV1``@m8{Hy>@}CaVy)zYyeFdaazK}=%8`<#jmX{Ul$7j``P=tIF)X^M zCN$?kU2PEr)w`+J`%6#<^#pqv0a%uQuLT1Qr7xfT<9i}VPzRvwx(Moi(t;nJ0I~9;=OLbe zm>6K3R|wI9x(iPbe<+v=^#s>wSC$qaT7Vkh4S=*Jrfv6P{$mvD{l_*1gAmW zzxD(of>2Lzss)-CTJQ%?(5w^w0qP0HRi%I4YbJPT)v|M{1@p!0XIcP*#P$zb5W2k# zSbIhl!1i~Pc+y8gf1?FhleXttU{bpKS6WavNZxYc2^PY7UY+kXLp;G{El9h994>Ku z4JkUkLvU`~5P0qhG6Fb`7QHs*nu<-+%8r&x>Y-Y&pXB;4f;y-t_(-HP`e@5`cibeM z`_sgq_L?8(37u=f4^J>u_4ouv7BO>e0SGhk!v2w91}tH3J7Urb;2;JF$0*r>dT#@C zDX1IF#znTxZ-=~e^%%Q(y4Rd!Tkgkc9}jpaDKgx;?#VB$kKxqYMRBwdAc&szpL+sS zN@Lk<639ejCPqaV0v`2QP{;AZ6U0lwc%tW=2X%bFTfcdN2{vRH>O*)0$e(|bfZx5q z-^-=Zm&3n&^Z&OBnO{Epm;VWofXK@d5b+OPjmhxO zPfAa_8Xss^qXy|}q@rR^yPA~Pcn!zYtZbFcocvQ-yGMHI-#jVp?om}3Fwofjl028%`N)R5^yw6by)%q`Jl9RjS`f$A5TjEITpfWy-#NMuk65Q z&|lht%MwtW7b@TSFJqyDLfu|yS7VLym2ryvO2vK$5F!CnAaC;Csqc1xNC!#ARL>8I zz&PQ=n}f&^DgoRL4=!S%GYL4i14)%a;kVXm4Sur&Pzh+e0YpMlREN^qmBk>Fz*W>j z33^4ddKa ze97D@I z-#;IR&-P_IZ|#3G17m)LE$8F#r%LdUQSTJi{HI`O7HNp_N!zzC7w{HHFhs?xjbWNW zf!m8D?7pL~Jmn1yhLkB}O{dSt1%m5OGH`7iOw$pY+^NojA#C!J#h;YGYG40*LBMa| zCrt1Mc*`0RECsP@;hf=3tEIUhEjx*h1V}+}FQGoe?1vf1w?iHiiTtFje^n4%hPSlhTqprZUGUd};4-|0 zM9Q$)u@!B-#U)xA5)56KfqZV5e=q~zmEf`&aN8>Tm%-4xd!~OZ2m;=s{kvcY>AM+N z4h%b(3FTcon1#Swek%x0%|Onh5xY|*I5z`7ltAHi(7#gxi8`UZ_fB5JAbe*9tH3`7 zLyyJp{i+0#g7-}Gp-RA&mM3_?Tz0AijNmHdiuKcipzjwYP;@5Zn_j0V=p;A~hIqx> zh$kYoQK3rUboZq7v;F@>2?FUn(Us1W09;Qp%8O&b-12iUB-P8)QTdkz0VEho^rQOQ zVCb)0LGxqt3xwC1F(?R0x||9@?7=U=&@U!od1+~O?Pz;@`~QY6{2C1Xu_X90H1lgP zq=V)Mx!?+sL6_1WP8=479&(T3Br7Fbf}vW_tAyHy zOL-G|!KK+7&7@NF%04=cmins3KWPConV&rLg6lLGsy2TO=K#Ins%1cysk;pFqP^Sx zcO}7TSxny~oF>~?bq?}stX>$(5DB4ZJp?ShEcl@X{b{Mn+@}{@ziGjbk|15a)%9b@ zn`)EXjMnD;KWagL`duB$OIon45Az-5m36(-9m~E`7j#h)oM{1`U&V>9jtX1v^m#Be z+94FoR(DAY3~VU=7z{y6g0o;Khy+eqomnSb-MEn6jMO6W1^j(~l!U;CKT3i;|KCf3 zQ!OYG`R)pUz{{>6?9>%x{THra<&rB1`CC`;DgKK;@_b&%2}Ar@Ng&_zUj#$vTCneL z)k~LP@lUQm5Q+VFkk^lr;BSH<9 z*!n)SEDmWhTL`@gbF`R~04a-a3xs?RhI*_l=Bxhkg6q^3+%}|;{TTG|jY)Y>0Ey}P zpUYxvRTxM~@FN(4UT|esz`!6Cp!dy{!@?UlJ>vmb`dXd4f{9DP zP&n<6U}%*055bV<-vmQ{^a9E{ewXdQMK*L+4_`I{{m(}J_}TyeAsG6_4qQDw;`QII z$*^kvxY6J)U;e0guf=m{{ma?Ckdt3PpgLMmXjpiJoJC}ehO@I(LTpm9Vv1`BWNR!t zCs#Kyudv8E16W#o8Vo%ykgKn4YHn$5d(z&~+135@Sx;}@^L{UAFjUbvBL4E#7^Ej2 zdLuUZ4iXHVAMwsbOROxP-V5zyf84FzKlpNb#9PjX2C)OTJP`3%av1fdd3-TXB>>tD zL<#mnj(8#60K^UyTG2x7K#@-0)>|U#tJ)9=c&sy!geN!izHl{9v(GGmy8q*pae}2kxJePnxdzYGDB;flI?_~+#n;V6& zqAq%3hyB115Y!GlbP+tW0~bAUE_k#<5E=|I-@fH}dN0HxiI@jrITn@FowFSAU&T=9q~3_C0zMA z82S<=xHZ7L{?#<(&bs8zs0J3+?i(ynD?zgH$7g#VF5L@Z^>r*?^u%pIh4Wx2QmXy@ zh}StD1v$tAdc>P*+>8Ld7lQW0zjXst=$Xh8lAX9o8@}{0L{JHcCoiM$eUyoyMBha+ zv2k|9Yg$dX1?dL9PDg-#x)(ao$~ZmZeVpG3J>u2OApunPK6P;^4bg+YKQC=sPvn0d z44obELVM!VBVMB)-N5&r`1d1TNKZVbS}b*XFOU=5typgoGMeghguj`B}wAC4dzZoiUTs(lau% z?#Dw~W$RS0qJq;4Bl}#rnyUJS#$S}f1A1XpR`)`Dcm!%5240FyjO+DJUMNR>gv941 z$ny_KkmUbfWUu|;ZPUk{)0Ik#*Vd3$xf?ZF7+NXNB2qZMWISz^q2|H%x!(^8@X4Jl zowMg3iq;xqm4%JG|dkZZE%YRkK99y~B^Sl(i@ zf>H+eAGNgkph+{T%j7Jg8D5T+M%f8W z&jWHI;!jNrRd0Z)a{DHO%xSXPCXn(UdrK!q=1eSu ziX}H#idieS#2=C7cj_;eJ$VjLt1|Ij1SJj}bx|62@hA(|8Q6M!SRk+e z^iY`%PnoCVB-6w6h1ME*zg6XGv)`LXY^|-T!160i{;#ge-+am%h+lO(1MMuf4(4xCw*kqR;*!$=`*;^dcHGL%v0Q;Oib~N&IwX^5cGXzYoU1F!+zNJ72LzG*e2& znxtRd<|PJReUaa)AG>;heP6*d@DrRqrs`aL#5ljO=d8p*H^?*U{bMRN0kOyIDic*x z$UJG?Nm{;TCn2NymBX-WqB*+Vg-O?X{6^G??ia0ijE7&{R0t(QPHn@)Ytd#N*0CdK z5wU<@0c9{U*1e7qI3l$2igJw;jXmk!De^kb-&}Kq^}-_{@&;{7w)fm2e1AgR7PJia zlK6-h9)D#>f9)~sDsHc!P2lPcq!s||M@}I+QBJpfdci=Xy z`;2$Wz#tI?U?(Zw&7g^0FXOz+I5mXgEYpdw+trBV?hUYmc?T!w+{JcFLY|ea2lMKT z2)k;A9yQ#HxC|HEkAX}cZjeP)HR~_aB zs(+j)Bil(7uiV#nXk)y-B;kr~S`8B(UmIF`R-?3>?7h*j`g+Ad@P2D%1~ko_eSMiD zQ5-h$Bvp=lFFkN#3W~B3@EAL9s&XrPHyYw>AxjH`rd>100IZN`>gttE6rG$o%H#b; zxVdPT+?&FcxLQKr$dz3-HnJo;4T`lpVZj^+xMF<1_Vj>8(8+7)u@G+H9U6n_`rt*6`fwKK8^ z%EnY$sbEkv*fqow6+7IeI}*)-MwE8rDW%eWFbLeNlLSvk>2B>JH@*iYrs0j<35-VL z|CZ_qnn=oTtHp{1!JNFvXnTZfpXWX(&6ha!nh{wY6;!%>r5n|s^?4>&yd0a__26+3 z>hv8;7vfm|<+q|#s-;P~C^GL*hlk>0BXS)&AB(aePkgvut0Gi7$zw+K{%EhhdYa89 z0PXb)VJXqNZzdK<(mJp>sP~v6Ev|PAU!CUB5Okmi>EGBJV<(bFs8~@Ms&mub)Fiaz zz&`0{{Pehgo1h~C+r}EFjd5}->v?MI;K#dTMjv6kpBJcS-~t22hI;OKw|v{hLsPHN zq`A%)E>mFcfmcFuXy;ImjmhL!iT^UjE)+!SI0S~DKp2m5?gWgK>cUTm?2}a!pL&~Z<{qgL))OM3 zXWQhOVa|Rno*g$|w{U|(1zzxSTlY&6aS|`aisFa7<(SkJb_{^=wgsv5h?%Znf9jIA zloqnFk{^c2!q1!QKFpSKhJdPuQyNLUB?ryWQvn{SLf86Vh)QnZO!2baz?&ZK$cdUd z(UYR3cyg%G&tFQdK(3?Sd}LS7fs)(rJ!Ae#;7!Ae8w5Ge5$->h8WX;xbARnHINzh7>6L2LX;{&hC4#hZR9NR7BI(8sGtZKVA;0h3i zkJp95U>@0fTMR4$pw>jfzd>y}0LYCuYopC|m)9UeFHQl5$11%RT`; z9P9X~kPwDS*ABqb(@Xz?4%^?=R*w1*2$y6I3y_BaAyj1Cw4jU&mZO6G#y$lvY66R> zleVvca1|cewEv?DF94nB<{O0Jp;DPpSQMg21SY)>fH=%v=Lre|k&VhAe+975Elu#{ zY%_e`9fz0cX*x`L*))_VM-%Uk_c|)CuRSF@ocwaU-;UL`5%3`TLqf%Nw^Pt(qs*;O z_4%{44sAR6L+G8!Ift(v^kFAPzFm2seB+lzVk5qVIjE_4hqAL6%pG-Uu9T};A4EW@s2R5Jg$rVj+ z0!dO@ICDZGB;*Efia;_-K2&ld5S=E7!5PE^2C+1N*v3I<`6e7hKHPjh*O5tfG<^8L zKC@InfpMQZ2R?#CzSA4PsZ1MTQ%*!@U;inFnS5XQ17AfVKV?2YRZTy2XFpA_-@OJu zopHbW2Y%!@ZhGLG27Dxw8vdqW|IlF@^KpMGQ$o=Le>=Vad(8mrC^biLfNMj5`*?tb zlfS1a(XbOj0m6JfI4TyXw8t5=7W&-0;&i; zq$Z-!XMFBb&Y{l(F)SKFUr2)b4nnyq9Y;08-Z+PigTp2o!rqUEeK-i4A_|}33!fqi z`-DsabPh*U3SACFmm zX+{D&!ckFz^2Q^viKB3(kSh412nvOeT%t&bRredBC=R3g!BHYq(OQ*UWe(Ac?U7W> zVOV{5yv~GU;BeMP+$o-z*MiZH6(b}R$;)VBc>2)z4(;F%V??!L8?a-oGGfFNuiR;j zm6zg>UcweR#8N4gk>ev(BSzF{)Mr18y?+>&*$}74A8(illGKVnVYQ7{$cSg2Co?^a z-)xV!LBX|ageT`u04OCmHzv3@`nkSM00v1Z9g<%?boDa3668#*rA3AMI!<;9EQLpY zYmwl-I-e=4R@ z>YGC>X*fWCV(N#()U1lcsYBmM{|W!K!X;Vk+Cue0h-gmh*x+P3-RF%j4vR1m@o*P8v|;b~n%WuW$@P zDe%2l5KWzDN(@8ZanFCEApEExlB6(NpfL7cVZ3W0IH@qHsW4@tFzu)?gQO_SJc>=7 zGTXH%S2<9;FhA)iSFEt0Dyyhq0={HIx!Se3A*r~jskp3V0-^IQsacXuD+_YXOu8>g zewXY2;q5KMs@@j$ZMqu)1*A*5ySuwn1nCr{q`Q&s?k?#L>F!RYOFD%4PH^dRt+V#o z`<(N?-fvvj{KB{AH^z9L`-bYk{>YM4qW`*N1iN&Cvvf+cbjGE0ORadWv2vR{6W zT>&A50KSi0;qn4{KMbA=8j%VD`K|y~tHOq%^4W*V=gF1WO_jKdl@5JnGxQ*s@RfK} z`Qy&8KA4rH@D{{PRhz%M95nyb>iZAxZ-3`7M1+(A-|~LZ82)!ChX3Qc9`OAx?)O&T zzZrWXrT@>m90>n$m%}-8^pE$u`JB9kAFaMk#}VbvTaDu_OJAOj;0cFkmsbt@*VDUI z7k9N#p-ma3`0YMFTYZeTc#rRQkC(ShvLpqOa@{|U;HM+c3CX2^m$!;q198A&ck>0B zJ~1Ji@l%&W4nPIvp;_|k&o0L+iXQ}qAD6d1-_?!$W_}SEWOPT1EZ6l9c~OCvxA!9U zWy?)YXCrs{YHI#}9Kq=$(fyyg9RJM`oLR0c?^}-eQHUtbn+te(JDMRo+S>Bl z*z>W=QSN_t%>VF>JcAh&$z;vT^DDEYJPhl#I&9I6G65<&T2`tLkiY;ec1J}5L<0zj zOmzQN>^8z6^Xdp;jzY~QVk5HE597YvA?B#M|8;rGN+A$cIz1f?CoLK@7_O))@g`h| zbG`>g)gcH*PxqaGH;S^q=@!#S4aj<;1(70I6xzYQ*-59+yI2OCouDzPTgKXj1>TjKS%qNT zUyZq{7WPV3T_vB!p622i;BVX_QW_9(hw0A&W~(u`4)d>89}59!#+%crdZW+_HU{fq zKQ%X~Ll)gvj*k8_21=K93&L5JHlXiqpRO(wvlpg*-PmBVHuKL75Y29|uWpM>@k}7Js-fe%o7_1WBpR-w=dilX1I8ScD=7 zLsC!yxSVKfhyS38a(?vTxQPuW7p@!2+Vxupet{qyWeUA3{2&{^6)&7TeGYEUc-7l_ zPK)pL6}$zA;PqVoSj$zaEuZhQls%mn1X)5l&)v?pN@F=yAc)}2yc!)X=$FEI!U{F8 zEzd*Oi!(^*Pf=~ieb$g$QUr!Oj{e9)$X;j=p&+Fd?RWj4pzwhNP)r5sU{MtUL={W0 zkU4D_NEDEyPODqm>gkBoAQ1TKAWbF(5XivGTchhGwC~WuC-!B5l-~yKDFVCeeUV-; zY5T$@&xH}|b_BG%Cc=ofZKCH!#nWv-L9G)HLHfubB*^{a{q9mf)G9}MZSA>O*BGEO zJZqc?&-|>B2Y7j#aINvIGDD1Cbt~NeaqJm{NX__1t1mIlSSAuU_WW|o+%K^poME2& z$K`EYW<;KJE@kPMr%K~#Y=wO`v4Mn?5K+}1m$$5|OHuJDuW}~kCBp1?k$xvIV0z~< zM`U`MJ`ou5SR+8YEQ!9vuMG7ebxDlihnJ=7NN)*IT%$;Fia}ScXq8``A}|&g=BW6)i4{2zSkc&g>C3&+`Df zYoVlIQ?lxc4`j;iSEyERiD(+mY;bH32Uj1G@|qqHZPZc7*T8VD+hMHG-O-0$e^9LL zK$!`FA}T>BPf&x`$hE<_3@L^W@#(^tsR(R3d2K$XhP(Qb0Y|Z91GDM+GkthvsIl~> zGHgi?`^Yz5n3B!ZnEKvc(5jCD-5Z2BH+|x=@9cw1zQCl{_hai|H_KQ0u=|n_-*q>Xhx!$l|vNBSsmFX`q$-oZR#6 z70Y%EwbVO;IJaY(HcVNd#L^;MUP0k$lraw}I)Xm>ogtS#4iu$~c=^`RZ(%+W0nSrQ zz2X*vb7gC^?@RW8NAT$l`m>M3E!**EXs~Sl7c>^Bo7e6F!xuR$loozQw1Ky1%|}y0 z)sYRn`4Eco%}krV6Kmvzs{IfSY&>+C{iT&+ z+w(<4Ik3-_iN}s~T$=>Q4Siy=r%{V+8=q2;4R>1-@j^Z{hD|Gzxw6_7Pv=IOKVpDVmSKKp3T-v7O}CG%L}m1O_O|Mb~+A>W=Rv)CWB00eKX z41bV(OG?L<&TpH=ZoBz8fSj+4`{v#DXrz?&%95|$)?BvIC~xYW!{JJ%4?f>L=gsl* zXC<|W))wb)E1P2Fi;Hx&e09c&W3g?#s~dtK1>T+zTWYU?jE}%IZ*a;2@An9JbFY1o zBu(`Fo+}ot`{Jfm0Q3T0c-OD{5&Mg01yXtVFFQGBDZ8rgv2sF+XZ~wg{m^&bt3u%>= z=@&;aJhyA*o=DUk_jvg{7}Pd=qz7qe;wPZENn`%|RABp!`MkIM$KV*DX}8>-so+ISGm~YCx_OvqLy>>cLzJK%u)egClRcX6avGthmqZG zgC@bBLhw+oGM{Y#am?1m`(Wz>xwKL>;@GcDX~T#7B?pURzJ-Sp#eK#H4nu6Vi3fPpl z;|&aFn0gC);YjbFmCMeqLUQT-JVU+*4;;t8I83Fgg=?EbMv#&8hy&>GP(C>mK;mgKcC`n0PvRtQ>=qjr`12(B!W)i|HefznKd;Y@##^YtNE(6wv*>RY|C%-4Sx7Sz&KeAig9WC96v)qw4z>QC5_3+^lZ}+sWvng zjSYRWjbA@m^>gcboNJv*1#XKC6dVpi4sp-nb=K_1O~j8OMlsCGk^!rWU!Oaw zxE~fJ59HwJP69@eOh+6Jw?&sPgIZyf-7q!^h6NEaeKKn;p$g`0nr1 z^&k>#l!Kr~Bv$LkBf0J*E2Ha(D6^lZj^x1f=4B{0^26!8O!a`bR3)BlqsKDA>xg`t^^J(JeDBbL zC&BfltWBgXOUE|aG%?84w#OK;Cxse5IgxKCy)){M`=}9PiD?=%yYEaD`(7JSs$oG8 zSso)yA19$ci0Pa$TxByQH0!;zdj)1$^T*HQPKK6n+%HG8>*g2bj2qYh0#}_P5V{|7 z3=s5wz)$V9#LRWRK&JQ7l)HV2Zz`6)((lh}ZP)^3GKkh$9qg7uB;heL@xr^> z%bKJUx@uMcVFSk;*CKAnElpqud*x$D4N2{>@D0XoN(IC8Tbi?^&k-Xhl{hkYG!57U z!9sqqm0)HFN@haPBT*JZ!4%trsdvkuXdkN@?)Rexob7rr+=Z}iQvI*_IFooj2+LtG z#0m|1aMD|G%;H`7yL~ezZJTXjRiUu$Z;@10iV~(cV!!DAE>+90F?*hkLfAKC%2+a4 zRxW|c!~r2)b>dZ` zf@UgGVcj12aUN0vxW3FZKw}UH+WX5HDyk}9v1`iu9$#=p8^~=1-%kQ6bG|K|zJ(J^ zPGDScb(S!UDy-4uf=t@VJ8#=3El^ImZz|QVGI4>J=#m;gm3rbg^&InFRM2PsH<*4_ z)z6_FurFB5w`y!kjd8RpsOH{7RM#38fCVYFYrhuu6$$hR&Inp+4@z)Ci@4+fzQ2%G znlw0=W+$*V)R^vm49?j>Rj6ZG+Bw>pGRi5WnN#?JP_s}-1hW0aj3h9i+0%SQpQpvNEQalrpo+im^k-tec^)l9!q= zeysRum#|x`m}``s7O7Sx3A1pFH1o8$ff_WKa}>G)ZV;9vKu`pChS`PMPNfS}V!c}u zft8ONCMMuQY)w_MFaD!-gMzNT!wus{*jRaT3Xy|%;*v4SyxCFIDl(pIsyW6YR0(qX z#F7HOaqcEU>^UkX95P7c(2?SCB#}|tV*dP}B@QR4_v~=1KDo6$rzLijK`c<2$w?X} z!NICa!oMIWyNS~xaWVNMyk_Ty^@->-fW;jvs(+qWAzqCZQm)5W3b9{F8N>hnnIf&Q znEiZwrm0pI$Fn>l39DH5OhX~OQ=Ui?AqYrS{To%@0!`Hb-qSPQArg@W<%kngImJ&t zT-OQD1C-j8X}6Tsw&pcJIXuir)lcks(n-}0c5UL`x&RzS)OGD~FhopNUp>?GF`=K- zLm@Y_@nLR!Z`R~zrF+FX8Ji_g7wBW6_f=dljsn^sF%t>YY)K@jJ32e@Ci7GYDmcMk zHN!HxFDpYLJCZe)E1j$Dy$l4wW>td63YJ`FKjXFVM}nf`MlEB#AmUb6gVpZua8 zt`j2o<(oWoeRIIY8&Urc%i>`jc@~OHg$YZ}VM}LNqZs zxhF%24Dt<)3fP&L5Nlss?&T#nB8S3-neH)TP0|3QSy{wcLpwy@kYmy;2$pF06td6c z2J#n!+JmNJ<|D`DzaMz*ZpKtcTw2IlfME32CCRY4?=4^=E_|=(v$$#V=MuY*1vR%Q zcPwV+Gg%BSSwzt#6t`tIMkSM-W_53Z1{zC5)jEI>myl^qjQXh&AS zEh0fIV(#5mz-AhECm41>8XXm7(G9SIld-B|XBn8Wyj(PUVDXKm+e8&XS?a#HBSq{c2T1;7<7cAOUK_7xrN12DRSuDcJ z+3aE=Q_T>GEq;b=)W27(o@@XhrEQWdS%I?v$eY)`CoY#MMq|}1P2oClx-&56GOBu4$x;aRI?eqzBGsjp zADSS2>KeGTS0&3k&6*nLit_yFUw3^fka}&a$vmS0+tf0*Uoi-egxZw*qNx?f+{Emx@EfI$L~^AuSzdip9VJ!O31vP-Qtdre z83}9U_6L*fxy*cXNM8f(aHn>Qg*NgoJ;2+Kh0asibS8l0f`>H#*qoy>XY0>@I>TUpem2FdMi`xIL=WJyP5~ zM%q0lCEaGyJ?5@GmMJ}k7TtK6B=#xRcI^7nQN8;{y)H|=@4xrD-8S5F@V@Ffk;mJH7<4bL?Xb1w{{p$?8~8x)ib@VpzKa_M!IHl0A= zYE~icaqaC1_1+5p(3CRT&^%g4J%Z)c_wKYGSCEX6dJKw(45Es#o@gveyBqZ7KnCtO zGR-(7Va!&}jd`IQu(;TkZ)0orzP|akOuPD?`Jp%@b<}6ZFdyjKdSm z_Y+K(lPoVMIou{W?1PR z5v!(7sq0K@FB5CDOict#psXtZcywmCQ=7O_XIM*H%}OUHEoLm;W^8$8r!2U74V1c=GkBTR1yeP1!_U*ll}47< z#qxCeew+)|L6FmG$kAC?Fv;uFWKk+!s03NaY@v^kYH|Khl$=_6O*x+wCgb&?(pNHM z39bqIt`2Gw&VdFKd<{FhWg&04I6ja^G zpDdMMx~D-*(#zN+)K(D0(*fPiAW7J8Af$$$oiV>5vxzqPda z^@Znru@b1dFwaHv*D^J*7a3HDIdLy4K(UlT&8>KGK7uOOfaalX^?utX@C4(<+ag;7 z)zig&VY5SSvxPwq_U_1qT^7vk2$a|c#~g2yuwo0th8#y8G(dK%D-yJR3)FmNm*8Yq z{Nn48`gVd9n7QumGc_=PcNrMLi6a%*&U=9^ij!RQ3Q+Xdn9}y(TcYdRGE-Gifo^)QYcq$Dzm&dB)&8r{w$RVtK*3Kyg8aF2)DxyJYK zMekwD<6$TLVXy7sVD;e$@Nj|;IOPMJ>j5r30N3e&+cv=WRlox>1m*fib!NOsiLX)f z_Pm)2yD^%88r@2b!??u@_YVDU3EHgbro~oUX=o6h75=?HPRf1Qb)kVu2*w{tu z4n(yj+kTqaCA;y`t|9w*%h_ee^)R&+=iSoTl@H&B<*{%<&ktu;J%F;qH7|{Zm^B|% zS@m_l7glrY0fgbeA=|66xs4Ep5%tY5j-$EF2mz!=KN#)&muLl9jjyp9R`Xxu^}{u` z5>3nIx0t+tZu{~7><0M)nJGZ%<3ARIeylowZ2Nz#`hjI2Amrs2{QY;zPZVZ8q@gUoyavByCs3^u?Oj`bI< zQPo7Bd{gJK)YCey3k3JVXhIUjQHcAC%2$8|^TddOg^(G2eM3Xfsj!L6)bl&6(TlCB zC*y?}QiEC)&ofi-XeRzbLrYoz)AblpiH4v!b>2Rrc%38lw+WSA^L~kj*sOUdCV7vr zMzS9M6#JQWu%7LFO-j`)`BHe+g@JD11{a3<*M&7;zMAmXaBHnt(KL){wJX2sPW)$;NC6xXV5Rt2d$HDB^9Wo?=f*Jv;lbB zSnY7p)1YmLqcNM92x1nBwXB!s-?T8Sho-ym>ZWb`RBz1b`;9SN83%GhaYF~Gd#TU< zhv42nHu*Ie^d2-XeDp*91oxH>LtRGG1!}@;)xO3Y+r#t=&smr+h9>{0;+a^CfY3^S=PxR~T=D-G0y-f028i7Mb6|IXgjs;9fC|rSb^RU$DlH_f2TOtSZ1k z=3qvzMB_ME+@n>+xts5=R+U5n0|Mi~0oBJ&PiQW+vBaR}Z-dO+(?6^#LvOIpe(&^* zh35UVswgZWvexwvTe+M8tt!9;>R+uYz)sIeXg>G0#E(wTA6Avyvvd$dpjBm|cg${K*P<1L5i8>-V_$6xI(8vwRyK`N2CXHr6Q)DEvzK5lxB- zYPs13g)*TAx;MpQ6dCcH|Kk6Au1nY`S~?XWjG%Qyz#8>so3%KKucZ zyuMkF0lG!{KYBxc>OD^X#w7_EP}MFL4O^!`#e9c(++ z+AaIV5r)77)=go^`eJ4Ol1xwNF#VUbmQSpJ))|4n)lHu`!arF7zem$YVa-l_f4paZ z;$r?}1tcbdYdZYm2v0x?09gSq!obY_A$!|ekK!umP6uqh~#n0`_RDum?QiX9fq6UN;EiQ^&3P|&xybe znh~e~A7W3puoGwAZ)TEU0k|^t3)=bGjgwr2GLP}nxuFgVbA_QoD93Sbc>imqF7XTL9F*L%R{5V5O_ko*-!llVF`aU z1{sg-&JG!jpXRg)=L`Z0{*g(zV>6c69&|I2+}CLv#+jfaF#}+C1qwZ-pPrpS-KO_Dn{CYNxhu+`kVp|sMZtI{jx6q zPWbf?(bOOUkMgggX>KU*&uIEX_@yKz@beTy{MX3&57G5MIAy<%Gr(=bFKp%C2xUN8 z&5uJ3kX!%ziRQmaj{o&fz=cEP?+b^&MovgMd-7xC9Q_$NKOqCjf$7-IQ0 zG{V{IV|292Z>J%pIQ8tzynNZ~QDtJIV z4J=YlnkT3;2g&1Mh~||Z5Kn`yHsk|t{x4{izanR^GyF+o@<-$>`{_Rs%48KX{*7bu zzebK-#haC(e;+wk#m;}8hW;8kt0_!VO}leKJ|K}TTpjQ$K%EuxH_n?gW2(PJ&iLD7 zpvL5{k>k7U`-G?Y#V!6tt9;T~0W~K7h_3(V$oV_1GBE*2D0}1B=l?SO%oL2|c1%wcYf@6H-!UCYUPVyj-BE%4a zP;dk%CX=wH?M&0M2BjA^cs3Om0+7#aj%E$x5y@b1r7azJ2|f8iA@O~iFL_X!5j&>s zX3sjHh0b`qmz@8BQ1(x>%CBpPw^azCKk+oGpd-I&O#a1bs44vW6Q1S_p9=Y>WAYzQ zLr)qLJsPm1CymK(gfhADxd(Ux%68&^895awSxx`!m|R!F%ji6ophKdwc#52$!(xA- z1W#}(zrUmF1?vgX5bM22gX#Q%ryei$9)|S(EuJPy z9L(u|7dhW`e;rf)wu<}VKm2u4k(D-|k*ELtyz-yaqyMLZ;vcBX+arVj<7wvatGK_^ zqeH^V*_$3SgO=#mG38fgK>qv80IIKSgYybA%pcWP0ofJRpZ+m3Y^nwx)mI-O-VBX* zPS5<|CH|Ee9dj-Fd%Hi7W*3(lQCGKjp9`A9&riSMJQ9u{GXuBJ?2&c#o^BERret%?J#$x>!@oxsw> z)?A_T)LuKo56rH)fDf?YIU>&lWH_CWI<5O2tJDMZeeuou2m^^V=i+_O^(hE~sfyU~ zL+BcvHe8-rIS~Y~MHQs^vUc_nhm-e^8=6pLj0r}H5;=oKiDAx@z)5lT=R_$i!alN%=|%3+jXm>0B_B(K_}S=m>Q*sBsu4&IJp#(r+Yfw zWPcno$xnA#04vB2UI5Z*^33*% zGHW%9iiBx)nmL=mQ_=n zT9%(?Wz7$3=Q>@!z^(Zgzl;=m{>ryO4XD0?D3r(mmZCR{ilG~Y$L<1KESifUTWe0V zj?o_C;7{5mA*ijJAc(bXI=}B}`F2UefM_-=I#KRDTg#%fs{f>0x!d)OSYOZ+IUc1d zdSAC>zfr?C)bBGbPGzSDGEU07AsLeZf*9u6Mf?G3=+rYbc65g7_wBf)uyCY-o`o1M zx(;5|i?Y&q4~z3RFglTd1Gi5^f!f}vs_=x~Fb3)JopWMUVNh^7?2lFo^0FIl|@Uo0M$ZSU(yHwXJy9*MWGEU1fYT?~* zKGAio4yh56+-n&g;i(5-!gTG|(yuNWI%GZ^v#v2lTXFWk=0bGXpdz8;TqgD5IXkmS zA7Rcr9JKb{k?&k}pA`SlU-(_M{HEj(+~7|6!JnV4#S77bMto^2N{oGb-O3V0Tg$@) zn)R6eqaGqRfzw=GEAh9t6823Cuw!xTm@d7h6bA%QT~Mq(3UaPxN;;nE1#J0#6+W-N zYp=zCw7n2L@jVnw-cG9Hs3NSOGv}I^E~{monMSd~fBs^A46}nW4Fp0{8)qSbRTP?x zHblun`%Kj*Iv2v)S{h{bLG*p?eLJAsGEWKTY~>o1I853YbT6eJt*-N$Jv@A2eHleo zjczP)JOWfR9ma^2ks=JqIW=o#dQG$r!>l3-KLLOIR=oy^mBE|ZQ1cE%jpU+Zn2Uhj z5H$f>qP=F+N)O`o(Gl68q@cA$I@L>xRL3&ts8aDEbL_m(#O6xU5plXNB;R&KTR{}x zfOlOlVNT_V5KW;dDdTFu0XxT{Xp_-32wz_Xp@?+Q$Of1DEW^QT@S&rX>nfFCGfTzi zm=w`}I7dhZ_BVYA$z-i5c8H(JWfVfKAP3T9WHClSc&B$*8&Wl=&)BFzT%=kB?uVu> z+K9D)pekngRDZ!<#1!}43UUQZQImoz6tU!sph9BQY>BO~i!s@pxt4y?yLjlE7@ww> z1RY3k0b$FWtg+^^_I)Xa?^1SOAXDHLWTqVbWug%>D*H6~?W`y({;EWT+w)KPI|p?n z(G1ftt%FJ@2Z=dpnCQIHgGEHMe)1rMpKM3ZDRtE9@WXDWqXfT(=tnT)Sz%&CaHbA4 zu~XKQ<{XD3-z_?geI8>_R?<&o0c&jRhX_bieeI!TYFfw7FXK)PkMcpV3ke)|qI=Mq zf3vgxU<+c!-A5-fHPkvDt12}1(y%A>t%JWg^cI;T{E*H{I_KPWhRu=qdd5XdhtDW_{Zp4z>qKj( zC+{hDL`qws;uZ>ZMQT8b*&39o)S4N$UV|&u)uUQf_^*FnFMMUwvAKLW#a_aYAmiAW z2(B`YB)twpE}(*jR2fWnu#R2*+>j=Zp-AySKQ4^DdEs;45T|(qGT&_LwoFwNOWv28 zy!hrz9joZXr7x6P9Q|~nC(ebgZ;y=T`*hxIt?yDwDQ4(>zHGl+sbYLhQ`!M0r+nZ zF4aAE-7Yv}pNu)Ghy#2>*u8IbCRm#w?%7iRTv|FmB#uevB8F&k#p&E{h;&x07iI*p zzt;-<>`HDx_`*;3Vy@RAF*UK-h;loAb{Ofn#LjguXlNSF83XruyygzxHfL9G*@^vr zs3BgRWA~2xyAOyjcM*v-dyz4}g{|sr$i-`Z@+-UYk^8>s#MU?k()+F6T-ww@hkALc zj8&L|eC;_o(+E{lMR#n*{y`tR$(5f~PaW%ef=tQ=UF~&{n6B=iseZlgN@-t^|1K}` zunAlQ%nR7tD)NMdshM^TT*|`)R(H{D2IR)E09pIY!X*TLj~l!wUHc*C`d#?|vClGi z7e)9&Z&~xd*)d%JMvxyme1w^wW3{Y6LU4c{VEC}3UVbW+#^@*!q~FFO+k=qmIfey- zy#*z=wM~ib>fXe>UY5LISX(*J2LC=)9QEmS7xBY4nWTtKE)}PeuIhv>Mb)h!k%e9# zGnM4(xjO2$fm#+kJ!2sO=st>Za@HtAOHS94a1~z+UPN_8Ewychc#d(bigzAM+>;_3 zcGE)^(Q{i#OQWAz8ERQ<_7{;~XFeDC%*o_xsJ+G0QYcXK0=Z(%!nnbVqQ0ePS^EpJ z5td)!(Cw=@KON>YHX4bR%0gTFva>Iev(Th;Gi})>;Cw>Q1g zPHl=kaf<(@gE>o4BHEB~XEbTs zXhWY5N-jm`zTE2ac1kRpwo*1Ms-|6z65=8<1#D+NJo5tXQDWJNI#1TGVclJviX=W;XCICO!e4%oP^ss&h6oHf7dzSE60MP5dlqrwBd_v_ zjfa_0ZijnPIAROSF_u~UPTeP&M8LpT`~j461xtCs@nbQG?8^j4M<#a93*XCY{~O{6 z)Hzk%K)FF*LGP)6=>!ytP1?#{|Ld$U3n#X%swkapj;tCD4G}!1#OSXRQLM0bmH~{y zJxsf3&dkoV-%lBmp`)J{;?vzk@w_0FsvxoRk6FoPp$3v`Fg3qbMnfA2Hu%L0ZbC(%o^e>5}_y>tPE;xoyLsbaacLbLvqi))95uZBYW$z3;F)Vo6#99>-o5u z*UoC5`i}mZo<{bYu?bZ1`Wdk-D42;&0%46EuY?0FTeKN0!H~3;?*c@m0iq**g%2Ed^ zUfGAQea3(y+O~t$$|5dBDbAt=*60+{sDD0btAclR+UnX+`#nSmVIb>^w;re$%wV~1 z1kr-;d_)LX-}z%&EsQI}s_90uniQ(q6rj1r`M(d!QwJ@2dl{t<8>>t#YUp84`Ke2n zpobEGiD^Zjt*>K}eqfZbjcJy|kqNP#x?LgZtnn`9lXCPkS~Ya;Xb3!|Gk!UBwlp-> z?YCTgUzDk07+7L--5}MMF8C>)aoUP8fU~H5li<5#ONOl{L2TqKAXXNF;KQ!rx6g~F z?{$3niD6z%;|`te<)^UeXnsu}WeGnvq~PRnEN-*x99J>k`uWsVe~T%O_XOBTfXNt{ z*ZisKv{VbMeO>xxb{ZWdk)%dkdT$w1(IhDsLO>m|_qSddea$j_rcl!>IA^CqgCdD7 zY*JD1f%v%uC_6-IY@zKetM(UuDiJ}^Doa;?p5$r?dnTsPKJQ^;MO6EAeI{0M82*$? zCBT5x|jcA7}x3pNF3uZ#`U6ovI)Eo8JN@synL#_YWP0GGp- zB(30^3!CF3A);?#=eMHi7rW_gK`9@*nao+B7Glo>I>(DGq>TSQ6ok>!b{4B0TVbkJ zN)(3Hs83=CTf~Y~fK|O%(U+3D+X6R6S;g1SsNijvhThvA3#+7(wTv9IUI?`sw!Xfg zjsignc0n=_FlBaG5m>z8YAIM2K}|a?`2L(gCi(urSAL&aUz}IAOS+r)MrKP&$3iO0 zcc;ZI$Y7g5>=Db~7lq_1i;H!ur;|oUz=Yoj=f24GUg(ounG_cLEGfHDJ-`ZSP*@4r zXjk%+U`O9o>8|Ds{_H<_#YgI-Mh)ru-PixCqDTi56EwD(R->xaSLMz#9^+X2FX|)_ zd&;INeA?5B--Uy19mN4kYMZ$N@>O*p^B#j&9H8%1x_snK7jl;BUBMFhbduGXI!lZ` zU=-a!ztytS>xbZ_(zLYEysK&?Xw)kYYKn-gB{a5=k4w^dxQ$@?51S`-s+;q^nsbk(&$8`M$PFffobGJ z&ogz2Gs-baC-5=t5PiK-n3(Bo(sOA|GSluanjYN4K^@n2M^%D?(EV_i2aQb?6=bYv z)D;b7b$;22j>_XUTMVX=lTTT4SG^sT~sya0X}JCjs0g1`|12 z84U)PLz3vlm>Ww5U{T#FE+F%Fo8DCn)o{1!HS5N647Z3RwG0jQARrZ{3@C?iaUxa+-8u1TPo$TJRn=`*M^q2l3p7%wF_I{$YVN%JNU!uxk$Cy^2b5itv zNGx?qvSrE^qy@XT219?c9u-);IW&y11G zj9Kc8Mc9m$+l)=ij5W=y?efffo>>Q(S(nsV*RWZ4w^`4YSr3{yujN?}BHX6CriSfT zx!Itv&L_0YCoRvX+|Q@IT*%;A$kJKJaa+hsT_|W-C|X`9 zxnC%Ixmdxon7)m(#sNuxOM^ctpkXG6smpUM%af(c%frjF_sbhESH2uB8$08CFw7V3a$*(trCFQH3YZTe zUp$vtywq8}c3ZtoUH#s&`mnqT@~{eqx0d=6SJ!tjoH;-ew?WFgL6){b(YisjvO#{dL5Z|U{jkA|x5>i0 z$(pvw-nz-SvdMO|Np>`uFHoKXPyfA}`>k;7iJMClOK42Q9oBSi2d@H+2 zN4qHxyIFX9Ijy^SNPGFbdxg4t1uJ_+M|&j?dzcT~E$c&V2MK`s5!<-L{o1nq=GOgI zyn`0rgLc`2Hur;0-GhPfgPyd5q1J;Dyu)GM!!g;zQTM|M-NS|O130lMfnod%xFbj6 zBOykpt8e(*vPV03M-LrG*9@^IR`}l@j!t!t&)tu28IEtPj_-7jc6pCLj*pKXj=}Ix zAUsaM(@&tvPas!MVA@Vlj!%w`aAe(V#SdPQpft~iAI`LX!(07E&~}JVcS<<=jl|=W zEd7+Y{FJoqly>!$o(@;ptp&ufyF0n1KlzNk?M!^>jP3Z06ZxDQa3+j@F2Z*%ntm?c zb}qPjE_Qq_iF^SpNh{-DsPJ8=re6T-(Te45tsPABA}xS7e3yoLmqs3!Ch3=EZI>3S zmsWsF8~m$xdY9rL9JS*E9@X6u{-<=KR}7=4?)cZ9eAjMr*B*M;fgabvbk{+8hjRxn z=De;+@Na87yp;3LUd>#nmEUTP-fFkqR;=Du z0&c7H?ml_km8IWRm*3Tn-qp9=6}N$9^WD~tdoUi{{9cc?j3Aki+b78ks-bVH`fS^= zm>6b#9olxig8#70_pm1Su6*-d)^60HDBO zkrC0C1B=pd@d=4Z$zT0hk8a@=5)qS-l95wTQc=^;($Py+mB-dMxBRUhon98`7cDO- zYaglL8XNXUJ=!hVSWZ6ar2>Vtd{d+(QChSXFMC?AjCi;(yLe+_SdRiP^OlHUa6KJA zu0SMVSG5>Hrw*g7fCeo3CWO^o#z7~S2Z7{uQ*ESySOmU6xTXS8_Qy~ZgZCz6AzJWO z%Z4IB9K}8`F*MixpBVQ^W0ToM)W_vB!C=vG1^ZI`qJ;+2$N^J{B^d%jaA^#3!VC(` zRGje?RkakT6@9@-EXI^73srsojuiZ!W4lqLL%Gxeo^us%z@a?#+(OFm{++_|hUC&Du0%va^4>4n-xHW@Ky)C}j2KMw$ z%iu6HclxeopvzcL*sga%4V+s_LPUnGf471M6%@#VmrgkLM*G-6Kmo!a-$PHh!6aS< z`>JHD6JA812M!f3hCXgYGlSn3slESoGx7+dm-jwJAYg<#`MUx+ocmMo4LZ5NOr=KIHm!T{gj-vJd8$7r~Uo zJ#XM3(LNR{av^33p*6szZSwmNCYuRxXeJYtNglZ3Wcg~;Weo_Z1{L(@Ao*Y)veuN#-R`09dqXJ@(94T6T!TO&Z1@1E3RZlt%^}*r1p9@gVQJ^qeEjt3 z5+mWh?>@&6gWUE(nGO*^e?GgCiIx1S}E!gDp{UBvUC04ep4r4<)l^;Pdr%4?G%Wxq9sP6lD*W z?_P~o?(I*ua(qQFBe@m-%2YrkD$md4yB@A})F87?R=JO>N>m-t$Y*+nx{$ZLaRv4(&vp)lOXMUY!B$K;!QY&Aup3hveSJoxabi z0pd+5G$bE6cD>zmWc_iXY6)NAI>UW+ULfy@ zpN_*dkV%VYVv+`7e|MHSpOBQNpa%s7Zwq~{Z@IS~q4#h@_hL1f@F0G}MXhRn6%&w7 z&-Hyg!V{92;Q!<8uD_xT!-d~Z!pu-Zhs4m0bPGdwholbOjS7e`Gt|&6-5nyO0s;;p z-H3t+k^&MU79z-T@AK|+_Bv~w_kGtoYn}h#`RQ5Db6?l}`PQ@t#_7rUjEnrx+MV{8}yo zksM;tcjA>ubmES3R};a^C5#GiGAYX^ld7jO-6{st(0Il%tvm4}91x7Luwq94%w)$Y zEjY7$3XN_c-Yut+S;IzKCZ1ZBe!Lv?Z#9LhR3a@{vjTp|G)lIRnHCPI;yBjTmZvnk zj=dwj!%5wp2m-p_NcSB16q(P!yTBV?;FYZuQ9rC}ENO^csHQDqn&2SG%*pxSN?Vh! zCtPTn?QvNxP$55lJ1sc7A%}}fi+NnC=j<^~Z|5eC+0ejq?4Psk%E*wDMo#!-GTE!X zh^=IKYYMP`mpPr$-kui81LY7sW#|6>ZdB!SP)00yHR5%{5NBgxsvgRjeN<2T{`;?F zyWh*jzZRH0>ghchTN5gVtf*d#u9!p<_%koUP`KcDWKH8}8!dL#}B zI@3MAJylPuS3e=NU>?IFbD*PCIC=YIxU!08ll&L6ML~oagG=)c==NLzz3!10_w_m2 zqkprHd;=+}JqCZ60_~ySfXQ_r7D-f4V~(KUM(>?%r61=DP3}Knm=8j?55o)|R<^}R z$sF4Do%b7uf0nKYnnvHQk+uvnfHkp{BP%QCNXZ9uSv@CK5iE5!q4$_f1)TqinCTmr zau(;I-E5J`*5k(3{^U1Y+>z2LUsFCA`Up{|b#bylf<}BlG1sfsFQmA5?a34L8qMBW zkmV;iCv=vGx&;;47vOy`X~TMX@~1|kESr$5h2x;iq7NEdb8Yv7232!!I35@?#&buC zi7o3o9{cCL9Kc}imyxX@@6!{8&M^<>i|+jBcdnAa#ftQK8>FfKtnBIJy>@+9^btde ze)VoY{$qrXjT%=ilqVl0sc8xVd;Cfe+nmF5hbdMo()V6HJB^dLBp3~7i)6|RI$JV; zAgY==XI*J9S)FRX^ChmPHM%4>vl?crjaM&wjDuM4TjXEzN16Q>naCcNJnMSdh_G5L6ij2N4>WYgK6FBPrMPoxFXfOti71$YDoEQ{Z}NTheaz$7jRcx2v)4V++ES!8~f@xVtvX2Lf;q-u%re;#)>_)4D#|Rk|CPK7WAlr zm4*okO85n?YiYy7g#7B0CzYSR$8{zPwJStoFNuwBJQ ziQdi%0FsFzW*PJ6p5_8TRDqwLCV%sB_Syhmp@C-gR#@>Dh3}W{Jhjp#+!d}S8kug( zy1ZFfswqbU2cP}yo-gqy6|0c^eE-+WO}2pW*;Q=paIC?Q<>tuNjp)tVU$211eX2=} zN!VT&)JL0{aK7RV;Dhs_Clasc*Pd_K=fBo7?M@voUZ}yqM|B>Kn?-39@9DFgp zsAeS)8n)sle5Z$vp6vsUbD8a^2*!NOrZo8Ni*X!#s1qhW;VHa)U9p&r%XGA1F-ym{ zSqgY;S_^$RlBVMS{e464c1Z!<#k+y^#;qx|{`E1d zvjs-k;lUx1=-=AkTb!{J zrdnX5_?)NZy5j@srQhpJZLD=;e(GaIAUB81ax~+;im^Q$>@Uq=?Q)`ntisPmBI29Y zo$x@*j=UPVzh9MrkA2I#qh9~cmlWBOgW+a=7j+aXp>J=5V@}wzV{&#)k$@N6WtY1q zOc$kus0XE!m&XrOWw?|mlW2cl{df_b5#4{5H&a&f>(}+Q%x1~S6N2S__6IKl`CKa? z5XgK=I1fl4PU2lB@HgtGbq#Dt5`Z#ue+7p2TLh-xUMJ4Jtw=;`+jgdG&oonC08=a* zKC$?NoicU^WX;N;rrX*9H)kMZjPL5uq#%Jc@HOqKh&1>6KV%3rto&feiemb zDDSo1a5`nT{?hVqUd%OmV_E`%Go#5rWL?RO;3Bg)fzvFsu^j|4#(A9)0V?Y8^P13>K z-vanjCA&i@rN~Eb%sD-%_5`&zfKs@jgL4lZ;!^C8(9Nb|wDDHjnQ()FMxelb)`r!1 zfY1XYN>z_%4!mK5sALuxH65kM!L@mJhLg;lW41hikQ?xQPTV^@704Y5RN&;F+0Cqr=PPSNFzRpEe*9STyr zt9=U8dy_3s7<%eIqnC4S$b7PBYd5lJbCZqWqPH_(Met)I>D1b+J(Yz@q|Cs1hEa3D zXZ~@D0#8K?c7ftx8+@{dWRCUGiS?O~wdsaR5oigWZfj_&S6?NcF(khwrtJ7#Uuo;R zwzEa^ci7y5d`7lz+OCN_R(xmRX}<`^>41QAC$(yu8}_y4y&VO#-;CiA|6~WK-Gl9X zGxThLmkaa0HPn=U*#8blSqcYX{eHp1FPXR#j1W<5nf0$t3ofS$z0V7AXme#xG*cVZ zmmD=s+!5tMq2WI)UmR-FSfEXxS<%9|9A&J3HSn?>_ImCE4U*c#>LuKs-L6vGa?YZ$ z7J3YF5wku4|G9qB7J1K>-!+Coc$%0f<~g%Bg2C$@|ByqJlh} z(~(6Q3QYb2z*+Z(=M3a@+LA!gd&48_&Te6$pukY-CN6y~J_!dmVKJ&{o17bwJL0di z?=;E!D_mD_QExLzIr$~14>y9}ZG|+L?|sI`IX&ckMsWSAjzxM=D=cdOT5C4F4g5J@ zsIzc>C4PlR41eH~3sLGYka-bewHb74s^^WFEp#x%=-tbaMr*$xv5{h_t%Tbqa`(-E zHqdtXx!dhNNXCX z%80*@?}Gk?swrb0{fu!mJa>#;Mg_;2?YrcB)H2^CDqew#9WBE| z!t#_Ju$2KID0YqglB(j*4AUe7Ev)QOY?^nloD_pKtIRYKpv#)eykCV1{-p zxrI|C*t-PTdq>@y(d_=tIRVZ2g(AX);R>vlMSw|V*z1QoL+p~*0OeWNtV1Ou^I_Pj z7K)|Xw0AZ3rM8KrdhEv$t>H?vWMs|{XU2Jv1F`@?HlSvhkdgoS*ejeQiI8yT>-x(K*B_e-EYt$o-qx;Dw^=w< zbPL|Ld|ffe*frzzpMY4XDFg?dM<$&eWWyL7z))7yK>YQs#=;Hbey@}#SQ8drmA~rf z_tgZTv+oFDZnY}qW;g-7+Z7%=%KKgKqBARCJh!}fcSmWX`mTIz zz$b8gI#%WF-qx;`xqbmBkMj`VHM{@URf87!pD)nZMfgaS%wUxy0witdiqeG0c$aD! z3meutGt~PE*DjuDHV^lDR4Vbs`|L7*nVA`OW-B$8WkP`WMc9`wR8ulF)v^R+Gd?=m|bYQcydH53#|S^83jt3TV& z^p^^JE9ONJfH9dYi8-Hr>Sgd~n%VTKXE#=XCFZAcH2X*VCS- z;i4_*eVbc!U*D}hS6S5bWHYT~RiGTmwml~zy0<6o$;TSp94NFJszMYOyOICCsoktHF(?#QF(u z$AN20PW`?&%QI_xvnLEce2wy!C6*9ks!hAsKkg~LZG3t1B-=QyY4zjNm6Yg3nP-jz zS8Ejq3US90vWhC|+WN-k)^>NC-M#&T??*)8d z6AW+Fr#}sf0m(ixyj@xQOB2mT!!IRFs`Td*!wrohXAhr%kOvQ=V-k|neG=MQVBM6T z+J3R!efscq$8Rx{?1N{EI(2Tl+jl$Scv;Y@5A5c_q3K4iusiJPDFQ*2yrgtDou|6I zwBXjxNjBc`31m03fOjkCR+@7AvQ6)hxU5WWHt4sxpEbFkq11CnoMo#Uf&}I(wbQwb z8gu5UsrgJUxQ&~`B(_Ji65#hl!X$0ZaM|Pc&ktpx+?BC}vAc?$k2{OZVK)V=-yNJ*yr?1LVG*Qu zVjbopZw+vnZF%%iJCs*agW^P2GoD6NvV1nM5`0m&uhn@@{Hp;+&~3a>A5haEob#xB z|AixICYa(#W@VhzN$PS(*lE6$WUxmW`4SO`8x8<Jw^?294oKd^T4W9-eOtM zL!wy*sLWdMS1b&PDj3Y9$IcJpFod5);r#boAy9Qi%pj>u68{$TZXp&(VweLTAt{+C zXl!h9f53{+LuNvF`Aq?y@FF3b!IYiM2hJq1_r(Qic`eZ(_~RV3iDvOuzNlQ(4MSpM&tZGha+68lBr|U>Cua!~@wqD&W{ewu z>Q5`FrVg8Z^k6Uq#C`2KNHodEa0aj+Pp%;O9o}gse0sz`9K;$C^p*BT;9ScXcXqR* zSO35>d?IhhhxWS*B#tr-&v<;CYQgB%_(jccPF6||JOsyKn4%x zb2lBq0kweKY=g+_jp`_RI>yP3f`hS#X}y2$9Lz+JE^u0YG_RX@z}C{M3Fj{K7$n*B zw-G~Z*oA$jp%`6%b={#g5VYQ)`6yx=a6_WP{INNPl(iKF^)sfXtw%%6vAr~bSQ{;8 zDE5vF4#{%>rVq4^OseS;awX#M9aK;*=`!ewPJoSg5vzX?FvV%Z!lS1Qt{jM?NSSa} ztzM?OiNgCmI*ej&Ptq|(0x2$UCYifVx%YR(eL3}o7TFJ^2EKkt9f{HvC@0cLwiYlD zzQ6^~Kxc;KK)Du_IhQFz+fNNVw?ZN}i~K56L!js{blfd7MWYWnNIpRa0913CSZKU~ zqwzg-xz>_b%bVbR70m1eez@_GPU%38SY4TDD&fF$TFsBxN2H#0Gcf)^A1OF17uKDS~!Jm)C&q`-_%D3XF zssV;DnoX=Gp-%_}S92g_-HN`)6$ToWZjhqq?q0$Bc`X!`1@lnTFefB`3N%uX2IloZ zNF=-nGA6A22KGXEq596ZXyXoMrRNJ*H!W<|A_w99apR4l-$1~7f@aBuOpUyJQj@FK z5aZO(Z|agN8&t+Cz-Fa-56|rV5T-($d(0s z)7=tb$Bxa;mZ<^nzzkBQuzwMYOQ)v~-C#aHzmk9L_2Y%A#h~3c)9$4}yzZ5VxM{R8 zH;g}{q(qiTFT~4q{YZ-(YQ4dLrRM!XcgBZ8&vChSWT}f)gx*iSVVY*Wvbyz?MqNBF zw6L&>EB`>SAq=5d>I~6h0j9QkO%rn>9B|$PkO!Ix9h!MWOyWS22Fl?CkUUB4Mm51@0-B3oGiJDqe?+y2k>@xe&@w5Ug0h)ec?i z@&da?i&Ilm_pV3{?j+$4L)EY@)J_~d7%~++v#^`1wks%ah~0TMo!KW*ayXS4f>cw? z6~Dt6Q2kUq3Tv%xiedp;^9#P9P6DWl!_V|U6a)-flt5?rb614~)F}N9vCcl&8!I72 z1G(a4qwcz=v0^OcrwuTY$^oWNy;XP{l8Vq(SAa*X@8|Sn@lz`vU4N7Xp2LS1uuwhI zNm|1UG~Etbh01V_e@9sV7cl#g@uHi0G_dLh-nAfjUo-COr<^P(CWTy~OmB;uFP=qXt19%uaC6U+Y^$9Ap9|IBz9fKRf2VPneQ ztopS!EGMWUH2v0BSt*{)PqOfHBLA(=3bW6Q$v7x(k`5Wqq2b8aM^~mIuF%wWD1GzT z6;er!%5wJ+mnC~V37nhs7)lD9;_>~&2^-T2@#c%z<7#)dfKIpk?S>(CmdPl^Wbgor*V2f%Eg9zV-!v)e+35h)trjOiQFSO8#XZhUB;v?{Y?=<>2Y$w`D7OJdpMm= zG-0cQb+n_I1wofUq)QkSp!>W}_KH=fTrIATu0(Q;YBZ88ve<-P``rpo?`tMqlxxZh zo9t2Pt$Mx6WX&zfGz~A}nC$ZEklNti&Ae-SFM1ho7w)lisfcX{z2YG^Zh@&)xp)hy zLTEUZa<{1&4L*jjW7)t++&DEW#;Wvh3w<2RLd0Vy_e;F-##(1~(2Idd>Oq0mm+ zd4E+>{AAd~+|AF>N$0Xm?QF?VvD)0cr1yYljri_v+qQw2u>lLi_HYblX<*E1*IrSZ z-YveA+HopwXNI#zY|h%cEp-xVWd6zRTDP6vfu`0~AZw_Zg+KDKbA-B2HLaR#wWF4+ zlR2Mb4y_^uPRMlL)!N--FvSD!?)fRjGt1qp@RQfX`wta-bSy+~hBe)F>t#;sU?&ZW zd&!XJwLYaFkMhALrV&Z$sWa0`23@En%-F+Io5pj>{q)m^!1y5Jir!Z3p(%Vb6Mt_r zNKgRg;a&vQH0930f~WAlZbk9sDUq3UJl}I@^0A;dHU6@96#=(j^zskAVbM)l_BeHu|~ z)04~wK&^|;3By8NwYj>r(HXW~k4Rw{f<Bcepbia`_mtKT&xS&!8d{ zDF74J70M4oKN)VMwZW1$H$p;*&1q<`Jl((36>#fkn)C4nvCptDY^cpJcZwd_@R8nc zI&JDSzBX;L9VDnUsUXv`9s`KHMCQdd-V?tIIdvZ3U4J&{u}(fIqmIXSQBbIF_oJcF zf@5!s4?+n0rh-;b0o+U3fr>FKRadA$mIk{ls`W zs1!E)-Zvm@@v=TWkK88^;`Fy+%A%J<5mv7KC^?MU2!i#Cc5eDMZ?|90#?w0b?2XQo z=24L>(&+B>cO^df3N+qqnWnQrG9Lh6@WPocXAYB+hV5tb&aPU|!s(LB?hmZDgDTi3 z3I1AvDMZjIB_gaYA`A@{Z~Ws9*bL4e*VY5uG>0~0>iS?lj9 zzDX5R13pAk>mD+O>A7FNp`@vxWNs=fX<5voMCK-NodXsJ>EC)qL@c#AO?2hrL$qny$L`+ElD|%bDY6b>TzSX=V!Fk@lHz zUQrGWS77Q4*1_(8eyZ>Bbn0WX{vrPC;0X%1eTVxpxrm z7R5wMx$hK1#G>8wi`?|cK<^ymc&cK#EYH+MBvltQ>6E1Ba!m-Y ztJdkIZ8^WIz6=)ajaj4kVcwC7sXhC^DSeBBS7$KT<7S1oluibTdianV_AgVw`yxsZZ!s}o8Rc=@4hx9OBD+VzV;h;wQX`Uu>N+} zV@-FTdqN%IhxIjV&-^ORKKQ4n0f~F| zPp_)`-W`UZFm98ucJCosgR3E*n{i&h;`~N`ntcAIY3ay9kmcz`u#>t{e|*oLgN9fh z1_--<9Gex``$=2sx{t&KsL3XJ6Oe)8w{0xuE2vUb22aN&_&g`FB=7FK<^&2@%t}5v zBmgqbC?=zV-pG%J(0*!aPWv-n{iiwAs$1~f+t?NSh{94*CTY_%@e}fXPasS|Z z8XeIOw&Qh1S2S3SE|(ndKVMAjB)JY8jvtzM9rpFgRhwqbBtZc9k%G*BQEmj9aWVnh z>==xR_(i2#VZyCMdI_dE$5i5- z6Z?70oH%mgh%7}PgtdhQ#gpd0`I|cvXH!1gu6~_ww%C@P2E>m;i_MPxgU z(QER;^whKU_Cfz_&rRIvfKGxqu8#g;K9=}=zncd!fO>spY9W@+K!w@RT~q%_)ZT6|98K_s;=R`U7WUuosxZ5PXW z6CGtfCTTP{e{{q>9@2aD;U>BcPbck{e7%sQPn}|WAX0IXsrPa8=+p{V57;1tW$QV< zIZxEf6ZtEy~O#ap9VXD>7U4dwawP6{@LT6OuW7rmDVVX z_VJJzpO#tcdTw0@^ekaTcE%3n2Hq2)%r$VQP4wl>)$yR8h}AFBK7RX$_kM|G;7X)+ z-ICA!)vNf?-H?d2sL{P24}Va{U0&1vv4itKde4f^lpK6TCW18+C4GJ2ow1QT28PmA zm&Mh?DMGzGl8%-7LM0+KJtESB`p%c3qDg+ayW7V#C)BjWqF zl4@Jl-*nE@QXWT`zae>t|4Vr@uT=IarK67jgXo0xyt2Bdby5<75?+Fvss~kW$@5wE zv7tdUOvvm;ED2+#H&kF^(7$AGI6?+l_1d(aYsoI};BCDiR7wAma9DWjv8ZEzEVD(e zfjYl_ITANGtm^Tux#s;R3rAhQ?7_fEZOVOPUo~)c(`W0DGat39vVtp_r-mDr_2-H%7Q63lmLxC9$9xav>dSK7Zaw{m+% zRN`4}&s-OE=dzO(- zkhZsIC+4#$n@?#Jvhrf;)H*zE!{HN>TO71ZzJn05i_K;rv($1%A~ohadW7emv40$Q*zyw)BD_Vp~WZ7(7%qXKACwMDA z7)X1c6&Ob;nSm~olM=6(U^GKp;AQjngLGA|A=0MvzTR%HrA=Fj>Uzri9&t3m(oPVm zLx%-*KILT(2wX7(U~=p5J9dUa1eH5aZby{1)Ef`|YDN~UskT6^onHxtM$$>&c6{(C zBdN%4nVf>wm~C*J!Pv$e&wndp;|-0Z4M3Z>NAnqwOi_kY$4(=4Ym($tL1xMJ6~zMx zS#xfAoJeM8waJ~2adPXIlAR5F8uMt&GCn1n_!;>h%s5b#!-pWa;ZiPu<6Z|v-VD7m z)20C4bOrcTCU!dW4iL>F5{^QiW%lp%k zak`jlBt&0J$%b~z<}336U&+s}#AQN_6&IdLg8Cr&ZUa)IMiA&zo+u0z zBzigP+*N+)w=S3HV@x4G53c)>^cI+&u-4}K0z{3*g6Tcgj-*j9FF2{87n65UDy_rU zYADF{9{{A8fTyuUK?DG}Q)z$*)aGV5Y697KXBq$52>{_H5=l(!)#Mr{V?>F76#Wft zSVVa$Ul)Kx`7NFz44Hu<60^~P!Yr~2nMV?1zjLS+cRy6a_{G<0Yx7@SvEi~WuOHfx zNe6;>f2K!k?f_``HdJ_mQPBQxYt+(6JpInoD4j95nivL8Wt8!761zcSy&<8f{xn7l zi=nQr8}v=Yq!R~;++ljWFm+_Y{fDly&jc%6)_6GliLXO?m_RfzGnj=k@LC>?-!RIA zTpDbt_H?C$#$!rd96ZRpD)tBV7)Ny9k=@=)mq%@?^0U?))Rfl zT8+?I=`{TCJCBhOY~?5iUZs`BOk#U}uL$q0`DfAqQ^=|kSTmPX6O)~rIP)7c9$Cu%WteNZ>ILBiFIxZr25Y}-OzpWwrf;o?AsB81Yq1|_bjQ5SG8bbSD z1-` z|7^cJU4E@Y5%-ZuPI5jeHkya{8D}~$k z#Zoj|!Xd|<)%VsQ`cD%~HR`jAl?;>kos7ukIg4q1t+=n%FGFO7neNd3^@^piEC+Ru zfIw1Jv&a<^2rdQlvqv1{)N-LQ{u14@T4+YA-Ks^6j3K$%=MyohGgLtRoHr{ESpICo z=<1wU^!RHnzZTq+zl$bS#XvpkboC?M7=XyuFDcC2xhQ(iYy7NGlOo3=aniE7?Gns6{h6^8;ibliSsR^@FKz64W!q#jHNmt6aR zwvd-uoRIQ)IA2A!&;e&1Er=TMs{gu*hV_WclN$&@G)u53lwbixsG8S{fb~RG&p!!c zRlKZpxPkUw99J#lg{pT}=`42>T|FNm3qodB;Yia&gCV*kfsl>2C~xpNn6V!Z5#^53 z-bje(uHt15AiuiRAVSIOIP4#40sNTy7u!;X2+myvt=We(;&^uP#%E8d z1;iS&`JLo3w(KeTx3t>PpNO8F;#d6miUXtn$ez{FnE;hBfo5iDfD0GrL z8ZBZaJmPQ3DjC@6A`kSs<`Kc1X6~Pkgf^3Vjmbrvr+-MIw962GFVNDx`6K`-Hp>JN zR!WMr9F1lr8z^{j2gR!XP)aU@tZsjFqcL{<;-+*6^wr>vpN-=0g~i+#MQ4FysYi%_ z@*-kl(j>60ygaEljN}+gGH81O?#tPkTK)}FUB89 z*o(94S;j^7v=QiPIFsVGi%5jvTn3mj2n+nutGmj3P!%cpxiOJfv6=Q9(A=54JfN=^ zS;*NDE2xh;SDIiS8b5qL{vsA0kqFvm8e6tYq!q?T7nW_{l-CcW^+fnL5U)3ZjpuOO zKq0T4A`U5Uh`A0T`gD}Mwlt(!=I10<+hythoaY#bg#Kjar40k{7M1Zk8@gep{)U%v z?{iHmGW<3pnV{>=;jWx2*3?l*`d+B>D0XtKnbggWdOfDo?A!Po;soXIil=lqQh6>6 zHT!fcSDhrBS5dkAB8J0!gf<^wM$wjT(Gc8IsqJVqh!$K6*n4%6lDgo)mSL< z+P1TyI$zlh#s_5-r5DeMi;}2U(8QUM^YFgnYmIR_w#&yNjI7t-dm0)v|?7Mq(&<%)IJ%&IgS z1HTM#p^B8_8kXr374q4s_vscb<6^QejB?ej4#kzZ5v7kCYe>TYXE9j&s~EDe8Am{4 zjU5m?y>#IP*KQ>z*A`Ph9uu4Pt=%@k0kNhlG2J5?SU6TrpR_(`WK*(I^-MIo zc}&*S5)adV5-a`^lCoE*PiobYE}l}{2fP14Oewhq^({GH^L^VblFxYQpXy}LeQDY! zD>tijJ|fyyGj5(oJne~F{gJhL;cef(yNX$Ux}zqDMWs*#G1>&0E@r^y#XoRdSCK8v zwR{{$_|~@!X6kX+i`xf&IACdAC2#Nl;Sh2}+Tr=+rhFPpB4Bmg;pXweL(QkZlUSD= z*M4xdJ?ON5m%6%agcx>fo85I(#&oVpElP{05j}Gl2v|)>5+OGEgNP*S4Ok^nVzdO= zA}HQ!lsM?s!d7KBcD#1tM!BIjk~2@%9K`r$S*H}*vJ)mNkgfCZjok|w*>LIS#hnHN z-`D@dfhEC@VTctedB?AI>v=Nm1L1dX1&Up2ZFCisOcj8snXrGKP!XHp8H!@^7zPB&b96pzNjtXk!1?-UA~bm zF_N58W!sw!+Y)@+lCs-UDkTCM+cNQtyUyEkpK|+hHOm5$_Y z5>*7N1eE!9oG{YS3yF_;MgOI)X+9)iUcx1nX=pUFBJ*=U+Gpw((3Hpn3^>&~vHA4k zjApjkvbI2Np&iS=&>NB*f31=iD4c100g?__IW-_$9w_}4@b3W4G80f@hNrdxz~{09 zgQ($M44m>*__ln0D zaPWMnDWf7a6B*I0zA7_8JI8&2&h2l4J2Nm&Y|m^!C2}sC0qusBJy670>3FegQIf-L zup~$zl??#0Oid?Fo9w<{AeQf}fVF5lAlawW9^Yrk_b~9pmOeiK@6+8g^OjV=26*8N zl@1zYi@937d69eRaGm$|HZq682B`EW+CT)-xKZ}-u{=xo`Cf;+&*LrVciY3~D%*vr zKIHCewgigqw?4A8a0PLzM zkL(g5v(BvU=d@nDH0Hp1q_! z+vH44s2zW~db#W|KWk{?CEUb79Ls7~`qYVCjw=?%!{e)5ageD67U91iQ@X3iqZGl3 zR3DCjo=NaQ&Xxo3Adg+z{0u9d&)Q<;-VtXLL2Cp3U*A`hz?|t6W{^=9g*vWxtOlqDi7v zPoF;-H&u0Mb|A+hOQwI@O+BHlzhWI(A~rk3L0&pwyh3g>x@-$lG8~YPuBCd9*=)3z zxCE?uwEBNhVVwKL@u=Q?RsYL;@tcP_j4ZJ8Je!e~V z@gcQ8+a=4JUk$lf(X&F!A?!>ZRftS(%6h&i6pvbuX`&F1&xNc@rGLN+C!MzA*{$sZ znCs8=6zFCNpymw^hPbbA_LmFio&$?^CoH4qyW=6 z`_W2OfH1SlMNs_S^wk3CmleO^o(%Elz7z!jwn)ld9;g|mzBp362>`@zJlwpU?g=6^b3EnM-C$g86YEn5r4V<+}I-nZ;};f#Z? zzkIzyRHJB_u-dzq+aB6gH7+)(Y5xY<&vpLp=S7*-eY}ej%ZR)yQ#*Q~y7gS#snAhm z-dlIL-7bhgxxW`x?PmWWX^l$i-ulFtYrxGO_a85fqt*S>#C%4)L(}(KrBI&me>Zc? z!gwh2#(BKqsrq$q8h<2Bd%yV5@{5czd32}!cZzY-yQAlSDAFhQzV}?E%^v=`?7yaB z5|G!m@eCv6*LRIA@1Mh%1r?U{Y`wx03mUq|R}Ox|S%ehz?YtwB3LATp?hjrdZU`$G z*!w(8E^2z2tUdULj8#P0(7`t{rMS6w>ci0`Ih*J$BS*hSsU=VPrq_hRjPLkI zrIohy&#a&PrR2D&YH~LqI=$@atJ#lVuBpV!i8u%ui!wpHVla;UhGHa4qH;KqPS~!O zAW=1v%BmD`36rcI%j7XAR8EwvnaCBf?}>y<)lL;i`@HW>l&YI4QGR%F374*)tI$kl zxs@c{uux-Ir1%IS)A**rvdOM5Nv7%TlYhJIKmg}&2oweo|K9`t|9>Exf9}5e|EM=Fa{DYi{~~0sgPCxc>zH&7BgGyxfx09+0GGrCDV^&eO}y z|38~D`GvRX{sI60;DrAH{Kr-OFM$7^nZ^IgovnZTFRZy@>DA}`=FO}0sN1(I%S*xx2BBofGKIEd^*cN;QwD!=0^12ux`nJz`udWe**s& z)>EExeSp}uj@sGl|2uc4n=SO8xwAUcs{bo@h6gwNx2BA(C2FS8aq|BO{L}k@Ua$Yp zn=(G@kp$tr*>a6!_WwE79Pqrf;gbEou;#ln#fwS*fi;&&vT4_BXtq+#i^VFXY(Ud3 z?@HcL3_aVLy-{$7UHhTP(bL`lF=;IZx}RTGe?5f0LjJuRz~ZC9EYus(Cvf@LyFg>c zjVL%Gvkd=9%@afO`?tq%>~AC3wMINUC2)(H+yDG7;S-#|MI-1M78}o^t&2$^JJG4a zinr);Sc2J?H4%_fw0g?V%+m@a|9P%!yg_9kK7*t7v^x7dNMHlb<@~!MQyd1b$+g?s zt0r)iww4vxL^RY8tQh1mS>j9zd<8BH%ew`-Dv7m^ehx76XSmM@@)px(0jetmnH1Pc z}ch;f^)!*PaV52+?X0 z&$+Ndl0ME#gqd3&i9&Qe8kxchE07Q@62rpa0+7ZgnkTSCJhuXWSlS64mcXWYC$mNH zXX^>G9ty0Y%^GQ@tXPu!pRj#8i~l2%fZjO-ltm;ttg`DV>g2F44A|Tk59zbGL7y=6x1-wpGP*}U zxuML(8X+W*yG9#w(&a8lLI}Is46w&tW<2%T)IyiE(DwQ4HOm;67vFm7!J4=~=d8b!=dFp)Mz5hAmpEr>@P^$xOxmeg<^7`&qbUu9X`zl_!@$V5oxvLbv zE_)i0e||jb{;sg%>X849Jn7Gq$NKVja9zV5$6&$0W6(@+28_WNE0 z?fff`KjD^hUj7CMx&q!03H$?~0`I54`st5z2E?EBz*o509gu+b+aCrExWNbpad8aL+WJLA!~%MBdJGl|!KBF1LkedUK&z$fy-0T9~xhC0J6@ zkwIM`ECGc8RR13JoJ=8jhL}RG9r;96S!|UvXhvsiaoMO&!=fjlYP5PorHe^-+6R%& zR2nu->fjhzyh%h=s#x8FFSC%)ta^1DIi27eze?6_NKXpV+iF?YnvG08VT>1rn1lud zB%`wRuC*A|7@UT-U{%R#cs)o?KGQENL`QqOs@$$-g&#vb$4-NKmaLu?*vh`5r%&is z+MYHoP)(_zjv7$OLT1_0p5jJMKmq2C<|-1nAW7WfRDoE^uP3qAw7A_w*6yP(A{c5) zS*u%@oRlOHpdbXfO|EY3I)yhG>R4{`%d=FgJ?$y?x|X;qT35&2Txu*2T~%Wco2A_( zxV3vD_5bK8bErWSngOKP8_!vra9-@*BfRL9<~nicMrxj}nxQ0T8Q)pX0DCjQ<9uL( zwaGz4!WEkerlK_ue8z9Cla>ztZyIUIO?pPSy!HhveBt-Y+11jLpQNFM(~3pn9Z{6Q zROskj>0cH~v4|z+BP?5NxFf1km_#I>fXg_{DdzaVQ2ZtLQrx&!l99zY4zW8n49&lF zm%A?T01KRD<^Nu}%S+}mma%-vih((HV@}YR&pf{`Um1pLHYJ$h+~qb~S+- zB>&P3%?~;2SIoi>2Y%(AxK;N#u10lrTMevN+nUw0b{4a09XC@0OV+^VwXk75>|DF& z*TR+%vw(eUW+NNfYW{Vzn_cW+tC`l%zIC-vz3pt{+S5Nyr&UvQv$U|Q7jZgg3Fz>X?V@~s#+q~vD z=S{byRciMrY*edeUY*qwIV5JXawM#+{ku-QC=J6dI;vL(sSnRv*X2%kjm_Qeb>G+E+PyFE04j=*pI&UtDk-DZ~yw=?>_j|m4v~j=HNWn9hPBxvehMg^rDYH{O2$K z`qTgZ_Rl~5_pg6R>)cC*$9M7~1hF@G@v&!wmwn$nBiDaED1<~fghp6|L&qCor3Bg+d$l%Mm(+qS7;W4mSG2chPzZ&|7j4Ej zS={A)#P@~6cUa?Bh2sZ&1~+?OD293mhSwJ%;TMN)D1LM(hi6!ab7+Tnc!zrUd?}b3 z_|-|f7AsHqeqQK>vv-KhqJ>ZRgvYioYp93@r)z3>Y>_BtgeZk;Xo+n2gbs8%!ofTbCju@OD!7aFJ$mo`i)AM`{sLbZ^!;(|Bh+SZQ#! zF&c+S5_fSar*Y+&Xm$r_iRO*t=xBfDj)FEih(?YlID#hlk01z;{uq!1IgtMNhp0hS z-P2$X6|(_F^-2bTfHO`x9mUvtIHwleYw4J9bZ1)Ji2bV6ziu;t^zJq?0lh zOQhqIyhKW7HcKnXk{6LC2pL3o6h}jLNDOw8777|8u^fOx*Q(tOVQx^49QvhOiNfIn2Toh4Wfq0mXAux_SoY@Hq*_ogj3s?DIAye#3+$AOg=}T*{f9tT`1Jqc_m>0rpW|Xk!ET0I z2?Hs!0v?b80O|q9;sFIZ1oDZW-t(Lc!vRG~0vEsmBfwHh$^u=|pDU1`Fr=hc%Affe zEEfO39vh&ZF7Timz%4gAqiyP=FdzcSc>)@0Bp`~RD9`~PnlBwdoEVw` z;OQR3i2@lAc_}ccyCMRB+9Day0jf2ezA~s9kenTm9~g?8f8nW`F)XtZP)~pYJqiOB z(4rP_0&)5QApoN%U;%NGs)o|0<3XfF3IiTs0{Hp?(4#A00n^GpLhzssIsy_xpMAjrS=Ou^ zFtht30?75BEXA_V`61u>pZw_p6~F>g8m=c`tp(_Tz}D+}v4#MvbRD+C&lBpQGM;3)!p$|)ZT z10_(l9Li88Y859lTQoLIRuW0w%z} z?y;;NLciKWzxw-}BaoafK)>!mzyH;Uz%H2r$+-gh`@sBbx?_5`1`;bF)4uBYEGqgw z7|Nh7kO3?^oOCNI%G+43m%W80AT35(zHN>+(OThvx_Tp6S3bZ9g`Zz-35d<+#Z8oe2t zPu4?ccSTo#u$OzthnX|8R+zbqk{#(p?xQ_-%%o>a$($)ATtcc(;GlltpfoxwuDUwz zo0wJ0s&Ps>GOM%CVJQ45yZ=HOpzgW1q8ypFA{|`3#i@#_G1{^6N~;!txN!mjjmx7x zVx(TWtG}885-a8@ZI2};CzwDU71;j<5qo|4khOy0~V?6C+H}=y|>C-_C)ICkqLS58DozzIZ)JNUaM*Y-E?bJ~X)l5y*QeD+koz+F{ z8=qWHGrCBdJWu%&bpNaimVoo84BVA!z1D2q)^7dQa2?ljJ=b(y*LHo^cum*6QN-v$ zKEIM;S2vigLL`BGQH70Bf}Plgt=NdY*pA)UkbT&a&DfLu*p(gGl%3g@t=X8p*`D3m zpnch*&Do><*`*!Yq}`CXQO0zX*RK8AupQg7J=?Th+qQk%xb2mDJzuI>WTVuS5}A|0 zJ>0@w+(dcY!HwL+t=z_)+|Iq+&)wY6J>Ak>-OPR6(T&~It=-n0-QK<3-`(BdJ>KG7 z-rP-?wZYmGBu6Hh+wT3|@EzasJ>T?Q-xG!#>nT~<6)UgAQtRn2V)Ay14J7&DFTMJs z)_U3sp4z6(;Qy%I;1K@c629OOPT>>o;1-_Y7{1{Z&fynMQ6gkDuT?ONY(G*urqA*m z9#GRP+aes};=8;$_zR#c&?4Pw0vAlBslz9fB`bbm-#{MZLO$d~UgQvo-w=u`Aq8F6 z3M3vtr80f3`iq}Z8Yi)f0u>OXCm_#83ZV8OrI19dF0i^BAf#1#pEKK^}ZdMD-tl`yu)kWAFm z?#QX6mg{xxHMZ@Xl~K*7acj z2LCs-$O2_Ij`$;X73g8V1uf9_Zr}E>A;RX8cv>*5;R+pD4z()vp5j`c2QSY`aGYyT z2XFuOun+)JF{-!X#`}_R{P~|}+T_OKt$C`Xup6XSdMwRqpZSudD-h3`Tcu4u_-U{L zh41#V!6|@szMRS+PMgo#N~}_zt;5O!V7e<_ZslY8y1+u8{ptHoUX7$b2dCfm1rYaP z^IB>DAF&8)NNS{wo^S|fAHyosMk)d4`s`(L>kh4?RsOT9ldFQD_SjYYEfDvj+9Db| z1njZ(!yh}d*Kp;76STK~0P zv03ew+x33IVeyz;HeXw5b-HkNzu|HDoIZA;Qm8wg>@tl;SWrw>Oo&KWU|ax4U`PNH zU5*MpMhsUV{{UAWlVDH)KL<$auv|_{zg$vTTU}paW2aWu)?{ySb9Hf7iB@{GPFKE$ zeY1dzom_rDAy!X&fl;BBr=h8vgrSp(w4=7Wn8$us$*I7nm6xA@cirFN;cL~};_dJ8 z@vouNO;Pz3S^LND8oPf10S5f`jNrb34-s~2*bretfc+#+jF?beMMW6}GL%L!D)HdCc9xii}c#L6XDTl>;HZ(MJ3c{ zJBd=G7F4(NCQ+VWn})>t^(E7gG|{G2yOwR+whu8{acFWbL4$DV-mS=RZ(e~Q{o;+N z4sTv%Ap6oKIa0Amj~_F-l{}epWy_bxB~`@Dl+&?7i^WCxGptpGTpyb4nY5fzuTHah zo@#pZQ?jCc&CXgC_0zE^6{35>8FO*t$B`$;mm!091KaBQ-oxr-DY zJeV-t(Qf0#=I16Jm@=D4_Y|dQM1K)|aFf(d=7()22 zkxyPFqJlXu_)fz-P>rR~$>RF8(P4=#*4Q(g+=B$-rZgs-B1(OP1PWhu;Y&wy6%UU& z9r0k56EM911y4(zgxBgU{BndlQb>@w5V~|BgA-B_)-8LF&Hq>5efh0|6B59ElG!do zkl+FnCY005OD>RrTnQvFBuokNgcym2bN$p|G9gYuV+t!UIE8{GXat1=YVB9$m051t z<#V3xLbP=VjXCD$+DS&7f~47wfka*oTIivPX7a2pkiuq4+VYdDP)v)CTI#8(z89`w zHoDKeyWYFcpsK+RTkNr0qFJ*osQOVzshs6W#~QaHTkg5(uDg_UnqFExt!+efZ|w%N zTkydNFWibtJ(gKE?(k?%sMu^4NVe6!Hr(>dF`xT{Q|N{43dQ7fxDoE4!D9s@kiZX6 zjkwO-_19r{>$`t0o4`2NK9xVb&1D&8$cQWDpWQ3Aoo%Q+g>95~@qiaV&LP?`n zdW!W?u%!_gfmG{qmA6)qfeH-oehqZs11Do8WHo^~6=Dtrhp~bQJP3jvv>yRH$d;pt z!7f2M)Cxr4w-O@iP$6{T3t{Mz5r$zmV3|vA*anoeH3dd7^x+SIsFfCe&U=CBntTfL zm%j}Wh)r~21I>mLLrLUq;Mh!&X44{(z@|23A<7fM7{>Z3kqhm3#xHjA7l52@P$l8Z zM%Y-JX~as5b+lvVptg)ljR6HABNGd7GL;jE2me+u02OJlXqy1SV1WA|LE?-+sXI=R zl5>*~y`Fiwz@>8BsQl!1g{Zh;s7WhB_Zuu2t3{)mB%WPAU&-h0wV*DscvNm zR~e#B3CiRv(njcHV2@>t0dbfH~&X$YOtlB~cJCQB5Pp7lIdva-X>W9Y#b$*`WCO4Tmm`3XD` zV8J%y#o2P;9QbzLBP3>x4FxMfd~j+9Bqgj60vM27Xf zQm;h86NEu0? z8r9yeA3fg@s1Z40V)ud zl*z}EHK!AwSkSlwfrkB-z$G?u8BBUo#$GC=FnA`H-~}sD z#;*vsvXibj`kf@43TQ_NAX7mK*A6-B#6>nT7@Q{|!bX7`z(5nchRmz{&Pq=X1Er@d z1jqmaQW7Tk@xeTlQ(w&M$YnP36&Qpa=5($M>sx^YBH*czML=Q@o8|~Ue1ZtT8IT@` zvxOp%D<5}>1A!h{pnV~L`<|K6jlR(vkoz^?p3!^8%b96VzyL`)n$t!uig8K!>C$i# zF$Q9Dr%`=k+ETW%=ZOq%k^ktPtU)BzwI1&b{n4Y;`~|f*yy0trEoxg2TepJwo`8x7 z>%Ga*Yq2E=8<|K#Voy7a-Z>3rNnijD=H>$y2!R#XM(J{hAPEdHt*=pW0&?RaL{gN3 zKAUBQ4s4p*^|l}9_{RlJvjYVd(BJ8T3rUZadmkD2MPsjv#&YoU4&*Q$G&0cG3}~PO z+A0QfexdH>lt2R+$iQZ*f$<_>YT+3iI1x193E$eA<;r6a5h4}cN*&P zY`_95_&~Q&@N)}TpxjPKAq+%7@c^Yz1Sk-J$3?J$4s;*`DJVe(I=}>^I~Gz$7Xj5J zh4rW>o!nPXU<%4Eg8vg>-LX&4K-AeTA&(mz>BabZ%ki$fWYun2T$lg@TKuG*uVMq( zS-}RN^nneeU;~SXLNTPCK@B8u1t0*J2G&l34xE7FeP4kFQrcMWyj=t$;5fM<)q!Df zoZ=`%K?zK6@C>*>?Iq{{2{M3tk460Gz>rSffiFVJ95X=Z<-!5zodOFq0r7-iK?xLp z_?%Ax;Y1KS3@ncV%u{^cC~W=Ho1kv)aGzdl|9E4GaQYN>00kg0{k#oc`*~^L>)b&- z6fPKi{TuEMk=mc_v_Jvq4Fxtp@IGJ_er^LuVDTD{-nOFyN)HA)5Bs1l1xU~8s802& zt_hrO8K$o3PXA!)&hPCwFXDKQ>eNmHY47#ekMtx&1IowfAYlJ!5OWe|3q)W5wvB=? z=;C%~QeIyofYps}LO#sw9Wi$S8^0s1YCW5-SM>vIA-a#n(XY6EQIqN9vN0 ziCy4e5;;p0Rk5B(AwU8o@cx9=R&f?%C|UBL?`Sa>%`C<8O&5Jp)u2QVl<*gcQPs9X z78k9fW-S|SBQl~f99M=nm@yDXf`_sK z8_n*jD2j!9YO7o?(HPWc_u~OmQp~}&fp^DFs;(* zGKK3>=_rdaKr%_Yw%`OTfE0Fa==!bOpmH=F0RlE4=XMSj;Y(D!Ok7GPS5AdhLX1lk z#9(9+7&H%3@C>AYic2IxH|?vPSS3zEhNEDh1H9!4ZqC~d4+8v6@pkS6HlP6tuOg-3 z?$U5xTwvK zBt>Lg%majgOs)wAHedo`(B@Jq`jl^3AV5GM04lK{4L!mAia_kxkK&|K^`M~RChqRo zFM;w$127K;piTo4lMI{S1K#jHF)^%;Vp*8-3KS3q05k;rZ3BFc1b(jHKH&qJ6c?Rf zTFT*0;*w3i1XViZRYt@@FH{7)<5o)Ml`bHx?n_HF1VTEbP2^_-*w6*Iln4@(2ow-B z0cJ+Ojr!#DFnhuB6oCZU?deWuC^@6!Iu7@wZgb}C6W&e(H;)uT@OVUEMWIv_1tbK( zMH2z=3JMegX7oR;Q#$nrR>gD!aBdY)KsqZDVupcKAf;ixBn2QQPB_3|0RIV2oj~1c z%mmiUV#p){hTu&??7uAL1Ukl0Z4w5Y^b;&#Mw?+qWt2vz00gS;?0V8jCD2IK&PYEl zfhg_?L{RoREY~m_HIV)u4`ohO7o))?2oy2~MoLzpUBHA*Qo89Q220@S}=EmVzE6X|TX3(QG9o z1z?^u3=FJfMR6Yj3=HU_wv4E@mQ81gmS3W%9BYGx)^W9hjcE_7XrZ=Pv=M3U@n`v> zKAg?fqIPSEB@0233>Fa~#o{$oOEtieYtc4IJRwsivkdZ4B`wPz0skj$>9$Ee0bKIn zX6wL=g3D$;2YKo?aFb(yd?6^;0%-*|annLlIM8ru0vQ!Ia%X};LNX6pRdO*mb^va% zasqP8h{%8|b46E#Y(pex25}vNhA!(HN=3I z5f9G>aA9|NRc9{}tZ(3Uh~9Q<`Z0N(cQFEyc%|1UVx+M8A+{8flY~nlZ$pcI<7C;< zcPnRl$#=Hi=orYHb79tu5p)oK8lNh5hqQq)BCyk(CbLN)B%J+3s>IOA3X1kSo z)$wg=CuDu(L{4E@qQXlFbZXOa6~u#SqwaJxX&oGAAcePoU;lR*B*fY-7iJbPLe3PKZ0LxAV3(@R6ZG?$MAye(E%lQXb&1n|UF4klbeDRqp& zixJP~AOJfQ&x;Ar0)7tv(vSX>)b>(N?yPcN_Q+5%vm>Bbdh-nmyWmRwO-qB$1xnzG zmu2|~u(LkERN)1ff~N`4B$A?F`W!(_NAi(1aXNP->8P#)ZP)G3Q0L6PT81YuQ5=5#6`yC{S>cK`Sg#FSfiIFUnhV51=Epyun2 zlt^=wNsFKZ?6Z|Q7z*_VN)W74960Fmz)4q=Kz%OfIN_LWE}5MGqz34bQec3}BoRy? zqm&_F&bi&b6jPk^n;-A%m@W^ZZt5&G1XomE0$H0|S!So;ho97QS%Uo(nu8~6qAi+b z(uScgdZUq~9*+Z}IeMdMh7MaMfJ2&iqw5Eeh9nbp}$WI{$|R5cBDnkn#lPr#G{6IP){Bcr^Wu zjzg1;xs(J{lQjYL3ED+u6pBK`L^%PhU9{&^_QXOiU|k9lSN*L(zg7A|b2Ujb3&^ZJ z*K;Vz&0Ib13EFc=-wyNC&-+l%YcVvN@j4eT7E-3T3J{r=b=fI@u0SEB07-aJp8z~A zYC;ey30Ne6g6x2-@~Jp*`3%)&7cb}-(D9HC1{h!p)^2yIu69(f>D;e9p#U+{5TM%= zF+(sk%9N;QyAY)m2;< zxHJI|&$^k6KNILtBF|I5GX+3^^ORIx>HmdDCqn4OY*s*GIS8*aMrHL| zGg~@u73ZFWS4GxfQl(gN>Y6O{SaZb#p!Lm!M`WR!uzSvpxAcb{{PD03Qa+9dl=u^j z6!VNQ!;MZ|lMeH$+_AKe{z|UDs3580buT8 zb0LF4pfaWQP=_G4n#~~E1lh}rOh%M3bVZi11`=^I79#?^d*ot+`J59p&JGoQ8gf>B z(MDJh*w1gxYwQtdo419Ww;xw_dA-JLxn^}%h|*2S8m%!%j2C*9jejwnxp>!5Cg(@0 z2+YY*;ldZ!x2S2UqCvnRxwgXBmH#&xdsny$lGt}WV0$*!WnI(l5g)C#eWhJ6%;F(Gg&RxELaZ zX)5j6*e_5XN3+OwW)4I**qv$6{9hfQ5SQ{J5*|Mu7z-Vz-phiGCYduhVO=C)fE2FW zQZgmGj5xe>E3wdnGpOGAVe_D_@6>MMv9Pl?V{_FG8d8qg!#&kw&D3GdAN8W#$%}Cr zL}nL|6dG^n3>ESEEjtyDg@3+hWLHQfL0m;cSSe2QbO)236sR+*8xM?kj-8vJ z1F{>tCxBk4?(GtY>H@^$9{&lT(T?IC$^d|6q0)`J1!my%rt%;RD13$fK=&A+T?u;l9wTc=y4PIx$p{v75g+zuLk0>6JR=yfNFu>jA4>{$vV1nm4eGNhVu_`U z$R$FRI;l+OD(aw5T>nk;jLeE4*DSqmzvJ`zJ-_e&0|p8X5*8XBA|@&>Cb}>_LPknX zu2dGy`K6$stZ=5Rq->CI!fZCBpcZY?fttX4zJj8#5SgUf!mik|&Y?DSo>X?e=AED< zRW_L>p#%eyZXRcSbWB=bV`pn`b9Z}xgNKWc2fCO$!k8l}VWMZbL&B5eea+k74nK+(1V10O~o2a3RBn4j)2{C~+bYb>}Ez%&2iA$BrI9f-HwlT}W`4N}^1u z5@LmwE+M)om?Wk`JT6F_EEKb1PAstexG>f;At@r8YW7j+0tM1bMPEXVDs?JVj3;KE zxH>e?hbB$!WdF^wB7~+B9vpq3JVtGrsI%8f(H&OI1O{95`_xgDxPLf;>lrxIs)CT$yEUZ{2}H7a0Ir#&Bi0kk<-mlyRH} zFTzm5Y#pHRNd_sx5NHNYbg)wvKONbrr=Nm~kCH@yQp$NwsyC&3ip5u3eJ6ZSM0|9R z5P=C2u)v^#Fq}!mnE^t`!Y>~1HcfJE5fQ}`RZLljJ0eQgW2C`k&;+D&T;T$si`rOe zFuRqqhM&P51MNFN3K^=p>$2PKB843l%~xV2_CXbzbak5*Qyi1n8&$-Lg=r~_0Lp-$ z4FBj#cLS5a0fMQmmBlJ6Bz6pK9|Uv6sCN`c;&UAsgGP@ogh3(}j*eKEbI_&J1$D*6 z1#@y(pzE&9H{+bMv+l?Ql%_?b(A6Gx+0nCD6$$jt&_By_0*sfSMRXlfOPxdpwCJ3* z)>|8Sj@Kml%*woA^I;L$NM8iV*A9>Ft5J3c`LzCa6 z@}y4QZJYfw(uXtt_u7ePD>zN*@E!Quc4MBo=Iy4Pc2bFd{dM4>zY{v?ZliUP>82|^ zI^v1DUJ=@x(_Xvn;(@*P9y|HnyX2KW?t8W~QLfZT$N#Q-@p$L{`t8p{AN^mE4*w*J z+N-ZV`s}G=&pP+9cW;N=-Fv>h^yj0WzC=wJJ+m5!5hWTYfc;J`XsV;Gm5W%?`uG+P2Ca(?V1 zDM{svS7?G6Op%2ps#l4fT!AS`NFgzZ2@0=BjuQp3#3xcQ6KDqTb$fhU<1Q3AXBn*z z`Uw~w)G&v7)WJ`&G+7>Ec!d*8;8e7n=k2bd%(*brCIZRZF$u%Zyj6jB=cs@L4g>=U zz`!%=nGgvsP|zWq13@7eO>#8T5?^`X1Q$rbmrOu{f|ki^C;(|_D!``y6m&G2;6U?E z=})8ib0++p4dseyiHis$TecJi-l_)z3KZ@N!XUx~lH&q4*a11kq5mmiNM#8>$%$tE z^CwLz(Jf@^baKx@#|PvfJ9>gObIF`pllI^tD(FWPSJ(g*LNO~0^@LbSxIk!NP=OKr zqyktY6@J#_0SVXwupD3k2}aOR26+h<4TF$Zj4~nBoPYxnz}jFFIsz1w2@@wE0Xorf z0t{^60V@CjTMJ_uDa7h!x48mop^(;CT?7Rb2yLS_K!HtwmP#1F01`?7R2X1j6BI}R zX{oRR2w*`3`D|2hPH-F~oMA>}Adzt(MKef=C_7wG5};00El52l1JH#L5}JVp2Dsum zRSPS7-32dF$x{!Z_=FPdl_k_3;XcW6SnLTjl2Gyh3opa6x*1%Nf_Mnez* z55(k4DfsAu;DK2KO?U*VAwp$Mx*&;(AOtfb6$VN`1>SDpvmYqIeO&+od-Asgq9p+c zEFj~y6#=v*SOEq;Kw1nysByl18;lRAdbCh#)B_xqgbA=owzVcLb*k{w(Sm^2!QQb8 zFaXpQ5cw@qen)f)HM1??7F85zVD(28J-^#7W`1X%NqCW3j4W3(bPasoxEJdpxi zR1+1EIz>8&VQan`wI~Kh#N>CIz%W?&#pYsH! zX3xA7AuLJ?Mp-&9lxUQq@4%pMcbJj;QuMwVJvjk-weV!LBmYyLtK$!$D7VXHp#lKH z_$IH|{3J;KKzqF$9h+GFQhZ1s_hiIyj$>&>;1XlWU%#iOs7Xi)^nZP82h!gl6%yr4%~U}S;0%u9T!INo693U?N*4Li=;+cF9bgCA;0^9hK}=xSppoT3 zU-hk$DtVIiai1FP4B9N95W-F>;b0RwVIXXlGH68u?h^iGp!HSZ^2pB*K@K2g(GZ=W z0LtGsG0_v6;TcX%CAbpSNuCgWRpX(~~PUDFW5jG$s!C?`?4k>9M8VVxv z2}M@)-XXjn$4nKJaZDjljX~7lAWCBLDak<0P#aESCTilkRN^blP}JQ_Aa3F)zL}E5 zi|`FbBg_K`MbYz-;w#e93zA_%h@u+;5C9ED{pHdM0>XM(Q6j=(FosYB8W99K-x^(? zG3paA&S3#v-xevw_Xy)OCeaf54FCTnQV2p|BvqmCa1S;PAQQ$>7Q$aQwxAbcLO4<5 zI*t(NG?5%hATnMc=}@2&(jy<*<2=S=98wZH`eOwtP9o;tIp$7JNRHP4PZ+8osVt&4 zF68}uAOPy$0O}zBEf4Y3ff}5jO^CyD{NqQy1PW0OyZMZqu#pT7)5aj77r2t>AmnCU zMcUxf6)pvgnB+6&V@z;@Bczbmq(B$AWcK(8C~8X=@WDh$LJ6=F$7DdnfaFtxM7flU z6JX*c)L02P!L@b5s)b0%^^J7&Ms&~##rVmg7=t~1!8>i%Tu_P=DA!LS2m8>O6Zpw7 zoPjhfT{3Z{lDxq<5(L-v#{Vd!Wf6RV({)E-^oUW=#Xhy(QdR^L$dWIdz*?9<3?)dx zlotuO!r^J=JJCTZ41>8e!>Vlo#k>NY%-&&GK(Uk+RJx`_@MJL9Q&p16tlK|`l)!O}02-vo7%a+9=Ew@9NOMWs6(AJ|bl0I!$`$}haU93eecMeK$0le1 z8Wabh0OdJ+KnAQCBq?Wi4Tse!O4gkSbvm7KZ~@I^00d|U&6Jx9uoMTJiGnx`#R14= z-j$df9A-(#QWSuCoQxVMU3b3cb#k4cl$mlaiX(IYgf$8SfZ}Uvs6${7bEH`xn3xto zfxUo$>iHNH2pbl3m;VNs0CK3nr9j73OiDGR=ZQ$iPZEI!90LeoCvy=2cxu30REu4j zjMI$Sa1?=+WeOIE$kJikq`XLR$Y@SzP!NSE5l{e> zb3sdS@W*q~sgG8Qcp-t)JR1^#8Jb1M6+m6oaTds6 z+ti_%(^;2tg$o%R3UZK$h|qzJ#vH4J?%Q$f8`zyLQP?#7MQsX$k~q8R#k( z#H$zxtXPCv@nyjT(838|8m^#JWu_Fb7}iEf$VO3^Q3wF9MjnfznR8Lf#cqLfnZUbd z#c}FJ!IT05bP2cmEI#1awF!a_LffL&Pt{D$89~h(K9TGstq$VhZw}AX29f`?13oe& zA0C7{!oUVhKw}k7)HZF;G;JLcPtf8c*@np18U+NP?a#vPDpG9$ZXI`Mt4c5*$HZ4Z zluG5r?f>82L-qjf;1aGR_)g&>ZsH=M_b6`TI&MPLPm(a><5Di*GDU_~Zst<1=Pk_M zYVPL}?(C5zU4U-sDsFe!ljoZ5>I!NnG|*YzE$hlIH4>gt#BL?!j@;ZXP{7aZZfhJ( z?ig7g>i{o2z$5V*Arg|2;64IQ5`yzCZ%tUl?g#=A#gXp@YBs*3A7&HTX5%h>V*s`w z;MgA_X)i6tU*YJ@K$aoe%-}_K)3q&OK~m8d(&Qt3)!%60H)Y^Ag{{zHFG$AW`&}Rd zZW1y6U`~S44u;YI8?f@qqdqdQ0-p}@7~v?LBF8q-Ypn+xF+1|5 zP`Mi)iKi$KBoZfqZSfiu$CfLpUT%pmLW=Jd#FOQWVgCis@Xjy^$KVNfV99kOE7HnJ0!Ez@FcBg5Y_4{s7XZU0L} zZv->*H51?`CGh7Wl!lU}QK)XwjOdP%Y6;BR)-^ze0NriGmn+NI&Fz+up@7eE0%`q} ze!zf`#q(`3nK@IytmX3qfWVG1DFc|K5A8$n>XR;_UoT~{KNhO*p@$Tp!$7CQC;u7> z)EG{f7!}X~EC196^zuAo0J#Q?&xsa33mI;vntsf(&)HUOsUSSjra?UPO`}9LEeYlM z0niNjS8C34qoxB$*wstpcv` z0t7H~C<7|`0gHKbTDcfoZC!f=LydWK77+Ak{j*%VGD)kRQEM~?2$^ar0sqO=Gm(u} ziPb?-)gn$Cb{KtMBIM%KENvq)q8_B<9dK4nA9iKq4)9ubW(#5vE3_dLwq}EN?YLuT zllBeb@a~p&YFkp0c!e)~_SAI78}iC>fkxyV!S=mFYIN8}atvpEr(>1^a0dk$v<*xm zh1bo7xiqtCGxs=TUMXbdBW%{gd>XheTqS6xGGH9UjDW)MMl-m=Sm0GBOxj!+m@@PP zbYMrvkjh#j-QVTqcM?H*Dpw2vUKBP8nhA%=_z8AIUULJuNywQK7}1vDk`Xw}V3CO< zj8trQhH8AqfDFWG%tgBJCxRsSggw+;1PHGzh=PlnSU6olDCK-lo&N|#tYI3*RcyhJ zYQ-2>hoyQ~cghJGSj~zzidO~rj%&j=179y5VqwsMf{ey1RF;Gf)+ny+|28TZv1@q?(h%rYCbb0v9ZW8Wf5~lK{WIxlxpXbU=qt!G@i~x+IJyC&&gg6`kZ2!L|?4oQPz)A;_{2Fd3y| zLjrKnLM@IRcroLRa;40;$+k51a6pVrXQw;uUhnpb1%7llYdB^4x*-}r@-`a9fDFO9 z&!R|tAq^t4iPys+;&0=HydEyX@j&itKRhWWFEo}?`ADz?Q}G`{Z_YO`18Xoc=6vy@ z@$nXL^ThnmN@OnmF%0jp3ZEkha^q?Hr5K*k9y$FX8!sW*pAAQSB(*Qrqp&xM;n8y| z^B!XvQ(#c4Jw3W(2A)#S-{H?|F$ZII+5=)3AFn+o@c+$Mu*;KupdR>^iE!6Lq&77& zISTR+p0IfiF(ZFt=_GwcT5|Bvan`zU|B7HBndjsqk465BpTqp$pJC_CMd^|U;6wz`gyxKssXHP=P^X?U? zq8V@V?mwj|R$c){eB5wO=o_v>L%%mChwEZ2R>+dl=J`#*#u5Ws{(V$pa+CY4KO)A@u(rBiCvdc|h7TW;6; z1&76Ba@l-Nx>hh(o9#lEPo3f_l`^_gaO0h*UjMQ~fkRn)T3JIWG_pHNLBSJ3WKzWQ zGZHy*>>!Er`~(dZ9VIO_Jw?sJb15|RTuQ1fpUqT)>2(OQi`HBKQnRk-^Ry5#G#+SW)6! zziJ)el%NBngVQ}CI`lgsB14L-8rH1fB>zOM25lv;4MBl*-(J3b{r&|UxD+goC{D1I zvM4D>7#K;Q`VWP(}e-bS9W<-hM$`YZKrWmb= zJNRbneW#mEDSmDa`ZBdm>9C%3o~ux?+u~3wQldlS#&_I*!GbDc@k zujga&GblqK*Bt!MUL=O+Nq@N)zQVAW3q(@?< zstdhjOk-V5wzj}DfpJjgy;#=z(#rRTh^QJ%fO-K#{M9vfoNm2^?rD_9Oo=kbgSWwT zm^HIl#l9w2F|ZJXH;uB^ctAVIAgLwEL_@07 zk1L~%aF1GI`yeQLUg5NlTX5GL@1*dQj=;ZDk&Kwy)ZyJW(~E~P>K3l;$O^FtOY&b| zOLMoxC2tnZ1&LFo*6fS+4#>^sVTc=Id042V>1@(wXO#eZD1T3qOhYS{(CctcVA2vdljB8S7 z83%_V?;8LPkLn^w_pp_W{FiRA6=hfRyKNU`9wuy+OKiuMn0v}@`u_Q5TI_z1 zG&1Y&vU9u5T)mclJA?#;V>c$4)pXgLm-Wq#nDYlH z%&LB-JV9~k$hnYbi`&iZ8f$*#CHvNo#9L%38|2-da=Gp;aH3ayD4RTk^LceR|AD$E z>hi5uKe<59nZ*MCuQ>U{`%X#2^YXCd>+L-D)KQ6>;a?Q^_cnt31b;My%1C)|J{I(rS+O`XXtLL zemxNAcyhU&WOc*mbv#YqqtCC&U!ZPbt{{(~E8eerzsQ?Z(UouSM&JCg^-$?q_v(ZE zv_JH@;U8iNDkhpT^+Z)^RtfMebC|`Ci;k?Q1T{56i&laZPk|`&Nf5MA_ir#I@kUMb(i>7a@)BZ@h@8zzm&!xWbqXLik zbwBEJuC}obhLY8%N?x#&2+<)ju^i2@yq1cf;W5=BpYg!m13R(Qm6HtyYSC>tMbi4I zCupkk33cS{KzUQ)mVN-N2?KhuXn>q4Cn1joocYgeKbEJI5xKigl)q8Slv}(X*aK9ca6FvSpw2U%t_rFg&7I*1 z(@s)&m?jzerJ4)km!EqAfog4OyCxz8Hv#2x=7@-VS$Ex`1J~5tFR>iZNF$ooG^q+3 zRM7VY0=afZ9=eju8lWL%`8#r{S*MRRuLhfMU;x88X2RGUJwgG_%I4VVLOj8I&I20v za3DL+-N5{H8XetJXWfTW#UurkyL@7FKqSPaNX`)mO^;l71JGHoEc?i~ z(6N8RnbcS=*OW<4T{$g;O-cUYk5`Wnx())5K9609V9lLfCI}jE={2h}$KD?h$AGNw z0y4$&YOVIe3%bOY%?GxM!J(#>fg{(?hhhY~)rpeWPj?#Osq^;!AggY(l?ER8mM{3X zWqS!q$%@q5U7J0+D$bWe{So_lVP&2D*rA%XL4Ub*ZB1)=T9^m8@Eu3at&*k#bKhed z@@Bo;-##Y$cf2bd{^qW_c@8F}WZ7{qS9Um(j)+`81_k>TP$*n84_qwC(BRVBM16_C z+Ch8Hq7orAmsJ3kzQIp^Uqz-d1esdx^Yr_x&GU&_ine24e~%dC#&&(@-`|nX+ypSH z47tSauM*62S7Y~JR=GLV1%6>-Of+A+Bf?*_*vBeR?$FSOcAR$FpI7MK2V0$nWPCv>DV!*-2ljIA|IjP#97TwX`^!*3U&jZ}jYb z1$I4qif;V#Cvg`@A4Uwx4k%&#+bca$JrQB@xz{>ZDQ;(Ffvyg>FJ0wGyu-Fg|Gjky z8MCFG^JdA>%Y=)Qo!LKT(SnPSi_VZj-=`OEH$9abUX!Yx`Rj7iZR#oXGxnXC8J^ypYgZWL zQ}sWhPLLWb2_2E+bh)CvPs>goHg=H^OUA{W!>t=Ov2WTS>o^HN8KMbh4wucV-Po&? z%q+RH?`)>vn-X#CN0yOz>w8hh9*@t)YUrbH1q!zkX_GH2ND4R5>|IAXGtcW{(BDWX zrbmmZWwA+2ucW>{K9RDNSig=rwWpvTejC$J$4|mAsxleh zi!h^fS2Ui7QT7QAZWkSs&!@vugWvMq>?5bB8pGEs?4|v28fLa0*INAZ^7+dLsu_J> z3)Jq-W~qd&sNEPz+YevZ{Qc`yN}@j#ZIC8jWMJTR7Z8+cl~TrJ0L&KKUs`X zyIgS0#p@P>6RI$dfG@H7LA-XWEy+6?cJNB1h`Ov#hp)&YYnl7@ZE#Wo&OD65@`1B0i@dF-aK_D#w%OD7Z0U{y* zK(?ztShzcYRx%U51~?JK!9xL*1VErakQN2!0Ry@8uyR%El#&oi0FWS$;gch@S7+_owM4LL|8w!9SHMFjJv|023Dpl$* z2o;ZthNklnBX)>f5KM91k80ITo794~h-q2_VUplED0nG6{%d%&8zL2o?OIDv`gGpi z?$P)NuO}%iMQ?<=!K=F4)N`!Z*DBI*ORxROs}_c1*=vAK=639Y?V;z=VtNSp>$~V2v}@M@)om}VEPO+<^mGaCQ0!?GRDIi=xsvo2Vi2! zjV^Q8N-@$LFiDuy)!QO859PL2xRN9gU^Y^vnK)P4XMd=Iw&si+I4JIFJ_ig_eRUm5gO8 znXEX0OET`5!E6l>b0(=J!xh0JH!qactb9Pu$S}`MEYZ!awLE0l5ruiKCHZ2oQ!nFt zi1DXh@%eNyewSoakOaOwxRW3-w~64RH_&3em|_P6$MOr4F3l+!Ij1)gY=HE+C7KQ; zzSbprsHMRC5(RE@pGV-qvD{WbwGjYH70dtExvjO4z@r~;gi!41%t2`{&o%ch-d8f2 zW03$XSY+M7=j(}&>6))i+AJ^sHMlt`qnZm&l-^i&l&dQLw)`*eRol4SeHY8;^t}q~ z1|Moc*KgjR3`qJcx?Pto<184)e@5Hi!P#ADgA%`1sYQVbx`p^?hheasdzgOiF}!z{ z6%>~G>jdKWy*p1mf^LCIr8BAO7gc1j&_`J^PrK@3h8kk_%jn>(xoPaH9;12dlqZ z>r*BLdoD-Sb48VpGFis?g9Q<9QMvbHOI)|o#9;YF-mKMY)GA}?WtZzMvFOi#V2~^d zG1i2y7z&J{O%2~hNtdmmcd7wnB;ysL46>GqF0Kkm1>~dNGDEYJQD6@4lqm*W5mgLX zm(>FlobNEXB8e<9O5<*Sq|sdb7w|hiDI{KWW4)IZ87gN;YNNl!P)xMRK}GK-nzG)1 z@kFZDq&iJ(*Z%a|7^Qm(HSGdbT6FqBmOIOWh$8EL)SUkqStoX}9YQgyr1*w$Q?9ss zWY;=E$b4*nlm3Y1D8sTXuRuq|Lz=&mM)lCRmPE zzSx2X)Rq6tx!8H@o#6yDzoxY7SF}d{OT(Wp3W$71XYs8j2>}Q8sps1wQWS$kmLzrj zk#lS-Hm^$3_Uz1*cf{%OLEqm(9P(wZ6X>1!JY8cxbXuD3%&hcTTM{RXI5YuJdQHtR}BN&#bd|57~fw`lTZGP=(BPv8;-*^eHoB#IuI z511k|b44^iQ1RKrSeilZ3y| zI>l4?$0nbZ?>*DG0lB*|f(MfCh*$j_r6OrllI-?!DJ|7fTIm+k3>EhvJ4g_>AUbWG zED)S%$2Pu;Co*}+Hr|Qk`IvR+oWNII93Y4ffVd##;KJ&o znOqA2CfDP6xBWx$0fMth-;dYoBL^>$vF5k=EK3tePJCRVjr`NP9zyf{1U5{Pdj`^; z!_aXT}uQH8@rSnHs>b9Bzc$SP^O4{;O0(X5y>A2|S1)c4#) z*M-JV^22X$7vF85Y!{$Wi^-Vx{SKdVRw8B6>6yVK4xPo8=apNr4bQE&9pfZK;fOO( zwV^)^&y@*H)o{EQ>YYdz0VX}WY63Q4q;pUwSMEgzhEfXuOo9E{fE}UfssP_l{diA3 ziA*F6socsKC_I`}n-48iQo?6|*IusB8Y@4Z^1&;|4yT^#R>eO9+>vb?GJ@QBi6u27 zy`!zTsHAXTAmzM~tiG>Z+{^eHoq4t1y`oYj>quG{`YE8?vc++7Y*bn0(7&&w!UOhg zrNpSAhh#$M;u{^`eB+w5wznc5r21bOQpHMRQAF;dus;Ppf!vjVU%y}LH^4>Nuq zjVr`qcks6?YVlKDH?dMpVm?PTukC3GwA0w@7E- z*d$}3UQ@+jgw|esoM}p>Py87jbf3aI753@Re9%9a)92CBWP6z}Twk_1G*Sm{oW2>> zTLj{wRK;~t5TUz4A5WP6lP<{ZDA2z-b8r_xVbUfjGQ zb=AUC)isi&Y}+*`d_?|C(L#mk5I*ymP}6MfVedI}*i;O1(}i%;yBU~%sF=h!#xaSHy4ZFLrpRVbI){VU3~Lcb z2xI$z2oplIL71ykI&J@r4WC28r|+;PtoB|x$$k`Ti1@$$XYZ957r^hHa*4tBrdiHz z!^ltq+m+7-&F(oX<1Vu9gMaCnd^JY+)nSIXzQp2LvqsD5R^a_`U(2n;dkh*uKCLzIJT z%RIv=j#%GLJebTMWBngk^Gp59eNubDH6s>fZ(}NsgYfCzcTajb{u66{U;FmXL2GV- zl642e>${_&-+txAk3ECU<-j$6_?0XFcdWT6!|j-=)0Oeeza`gs7|I}EhJ6qPiqdsk zsWDde$Gt#2VKYH2kS`YhH>^2KoL3m$I)R*s9l)nD2ssvRVYs8_={RE`QR=e8)u{#! zgv&S$d^9!h%ez79vM!c%1~P$Ti2G5xIYLP4IHi59(&UG;`Nrx?e6V_hi*9_sss7b_ zF7~V)l|*FI&TwK^r=BA3?yMN+139S$2{3t?pm^vOfCukZou8GyHq|=d##DJL(PRJ% zW~4H>?TmU=qDfB2A?J+TF42sK-$0i!0yT%c-`mM_()wp>#lK}WX$>syZ$D??J!PBr z`4$|*=>9B6GNGsG*Y}gRuWqi&mzn;&EBlYnR!fPlLj+0t-Ou)!=*ul2T(6(FPO4kJ zr4B2}Ly%H3v1Eh2B}GR8VXuX_a9+C}sW<$0`w<-eL&gfvArpL78!#qMfWyNe)7<_C za<&~-FyU+fPt@nX5a(14>Np*1A@8z#Pab_60^c&Y48f7>)|mh)DEsgPGw4+XF@l1s z0s|r^Rh4I@6my7WdT0|tjY)2LwsO4Oijy5<<5m~!fx#RaZI0DM6*SLX9*1P_!v=z|17Rwz1YlfmFk(M+-vxyWTITE6fcA;iZiL$22@&-j2wHn?gOvi< zmcM^W;nTUp-4D7U=ts*%cbHy~(*2PsEk-q0O33iWzeEj~tKMAmYPqo})XxamzxSb& z>?X%J03so(pNGbn?)4d?jG_kV2NRkY>8u_%jogr-d^pCPV)SsFf9*x$!wKPrsfUx| zuPFnjq-Tu+rsX#i17?&yPX)}XUU4)-Q8dPZ^Ex+^0v8OJzrI;Ot5F3lncX%HTDH8G z6trUNI~}xo_Ze02+Wi#c;C0s*Nx^SC8>WNb`dlvwZakbd4tW>6nH2Iq{PT3k=F=;x z&@CJdI&?ewW^(9Gyu?iChh#PCu-)|A=&+C3_mac*@_lE*_KTiThaZ%rpu-O^CR0r~bnu=0BDX`fe{XPuAH4U>aEdY;aH{{5d=d5l+RY=W0dV#*`( z)QrqKnK`*e*?EP}i(U|lOC$@d;!CTlZ&%jT5gybxHMhi+w{~=Pb-(KA?R!n^9~c}O z9vK}QpO~DQ_HCb;Uszn~nOk04fAe18MlWnX)>u3kLm`DK)N3jkPGFJo+<@rqD28$TSFC)OSy$5J z7q?q;`DD&*i-AJ@mI{%)MY8<)>c#&nR!;V{>VLt?*U|Q~|ACc@(UJLln0Rj3QUC5$ z=+~onlN}A4{}-&>vLLwS{{bt%n4js3q`3K?So!DO`+5Ofvz1!6OCZkQc~+C0$xB^+ z!9UMEf2Ib%p^|vM`k|E|yPWg$!VI2s;OreEKq)>dyndq#KlV_X3L7`W$#e@4O| zfuKBxx+5a(36gmHGtpcy?6+yvCOw7i<<%w~CsRZ*El+%IaTH&+o>n})YbZEDhv?27 zC(+GPnj|woD8})IhjPc>5-z@*20Jj)l+*PWsLfy5kt|(Ux^{lMQKPq@E zp1Y63HfgNd2Z#(QJqX>;$~g{e{Gmjs@13y~32UuK;GiSak3{K4caGlGH<1+_x9q!! zc-4yprsC=wbsimewjbHnHSU7!u8tepnH*1{18nMbU6gPN@z#CI2NLyjHij=>&3=6F zvJWgl&X~JTHO>cTI*Ik@U8R03(y?`F;6Jn)KU)8ol>y=l;mAdl)AA;s9S9lh04w>A<4c0GA?A{b)jS}XM2Yq91CjENlpC@<48>X`H^Sq zmnw1}LktDhZd1w>pj^U%Hqr0Lil1pSeQ0JZKvL4jZizmqPZE&P4= z0&frtaFF*$g5dc$U7FtHNs6@yh{%RYYx10(P-s0jWp5{BDpCUX#9VX#Iz`{M;S+vd zpVQuN1X?ojGOlBlxk7mQSoC!&e$1>>9U4kB5Lz-l z47`k>#wSPcTKAJEpg@%8UZj+P1Ug6zsM6v6SPpE^_nr6_td z28t-ftY}n9ujKiF5rOJ^W-K@ghHWtESU$yV1TZV>rK-A0KSYl>NYMx&<(w;~h}zOz z@h6gA$HSpnNW23sHSmWbkR;g(Ph%1bW^aTuHiatc^^t?8yf&x1*XkH@X%d|?Qz>RH zMz}1JJOr&vACjjdSVX91%xo1o=QBlT68# zAWQK$h87parXKcIQ;?D)7ev8A9T8&)lK;pvTk(9pz(MxKrq*23IbTcld;E**VtHh6 z`)uK;NCcTu<2Yk9#=G5doXhV%!|OZ#q>(%u^konr1?CK#lDGw89VHGv0f1~M3PHW} z=1Cy>3RK_+QgMvwK`c6&10hPS+X;d%q=Mm%+xHk>;poJfqMrOMmvsDP_+E-BN_D8} zRpB^+)Kv_}^m0#avvgT*fi8wE^$lz{SEt&6#%*87iA;~MtWtt~Y&m^=Lk`io=87`q z!w^-?zi>WM!aLYY7C!MSFWc)DBjt>}As&*0I1`i!rGV33uMvwiszTI1tzSJCHSGYA zty$b18^mFISe2!stMqT!Z5LyL6}^kC1*>tvsk1~7&`!Me@!y30~^086McA3nU%0%v5$ zT{@!&REAu}Hu!L|wTdj>K3^Z4t#gZ%VbdV?7}QnuKBRf3&Q!E2|4P#BMe_YqJVF)- zH4HPjP|au2PhKnAmLn+g02c*gAMgq&8dGeTRpzT`vuty4?l0(`sFFu+xx`sw+VcJ5B}xpZ|wlpY@tL4-3}`ydO@XD;Y6X6@=YbCG6G3E zIs0ixLzE`j%*8^O;vt@8A!VcnFOG;1%j@ukR=$WyP*(1a?CiWJj{bIdGXk=CQ)F>4 z6a)oK!XEF>2T>%>y7VW}^%v@8*D!3l7-A8=E~CQPyiwcDYgZmr-|F@ZC~Q+ZWjN zorn7SPTD!q4|2s@q=8uHh(PO@;Lw=R+?eprn8#}|q1Mr?qnsZX#CNzkf0YKvkjwvT ziIpLDNX(T_sfvwbiOWRBWkcd}1mki$&ha#E)^uKII{(kK-(@G ze&*4IvS+UF!WO}9BpUp!S-Q>!#IncuETsiYAjh&k92eTk3%-HUpj$SPb@3B1ap#Lm z=Lt(66e{euDI5zcoX{_v^eCMASvUhtc=nSuf?gG;8OFA6Jt$+)!+;o*mvJ0d)&<+f zxoV1TS@V=@$_8l)N&?15o}77*k#~{ma4U#l9wy*~Hb`B)T0kTymoKaYNLUK_h}uE~ zX%{~MHbE-cL7--%biE{8!H*~gk;R?lgchQ+P_%kiO;0(6v9G2+yFhUZGs!JY2?-CzCcK+q3D-7~MzVB+Z)zKI-LVlER+42<79e=aYWl#nL%GZ~ zcA2z8_REg=y|3tpD|m^Xf<(Y)R&t&mi@e&>Yx~!LF zZ|0s%ypmq6cPdbu*2C)01^isAcS{Hahrg6RhMSFw-L#fs&hQs(f5<7&8gbdCPZ8~` zDX(kYddEuQL@CxVms9OQrvs!jQY1-LK;o-ShXI{p(?Y6SrxRU8$d4MH>);K?qZD1M zX0q6B(yDIm-_7J}?SkwrLJ8u|Z`&ecyNsJ6dM_m3<$$EjRq{%CoI*5?;=oFi4|66T zI!SgJrZ#B?H-(xvH2-MpJZ4DmC^u$O^Iy=c_k2WG;dgTw=&+}jiRyr`-t$8=F2ABc zmr>d=DcW~y@Zl`i&454B47+%>ge*L%`Kk9_^?7bT**wquP~7R^^jbC##GMh&Nszv= zjJWE85~l#bJV(phr7ns}1l>8q9JaE^a>dAD1pQVxTTTx=@sXTiB21ot9)h|1C|W?2 z@T9hH_Cagh@0Kj(Tce?an!1Bhlp*dEgVpTqVs@{jnH$tZ30Iy2OcY%jvEsysVADsP zu!12V+tBuC+gW~tSV%X(Y4|Kp@s|~|WA^K~1`f|bvrNkM-Q6t6t zXOTC9NEF1eL?M8dtakViyYhOLr>u;lCfGp8LPH=^Bk4{yoL0GIW5R1fy=hVDN-JKY z+Q?Lj&oQ@$<9&w;I5EYOF|#(jqCL~FzvZzE50H*n!B##oBhdF+*1*og;3y{?j=9+~ zrAfM4pgBjBY02Lo2l0`F(=$y?rrmaDd@a%{2`MzJAW>!9B0gUt4p*4=^G*-S8k7&3 z3d>FkolUDK^@HY)p9l_+_W!{=By-je#VcNj2t@8ND2D=SPgEx($tpGgqAlDC(9d*5lQ zR)Q>HaCo2*Q|IdUsPC$|S@OY9Q$q00SiA3Ecl4^L-LXW`TL~Y^CbGg6#Se{g^hu8# z^kkwtgvgf2_L|Tf#jXc3_7pDKy=zf{zHfPy&O~`dJ&Ovg{XSpFu9vq)Wv|_c3e=u{ zV^F(JM&dS;)^E6@79d*A>QcrrG|^*ZIHI7jo3HVUJ)=9(63!pqNb&Z^Qsz%r(!0WF zNzCgU8v{|4X>_ob$lQWR*6ZpKr*+nI^R?0NIT=+PD4&2Vj5QL5aB ze0r`fUaSAZi+faCWG%>Q1ra0B8;?8cxEKAX6+{@bs(ZT27_&sSU?lvf+mw|&Z@SCK zR*Qsxz2K6Blfn@taJji<&OM`#V$UKqBQ+0^Lw7W=x7;_Ru2vU;{ULWI%x+EW z*x4>?^9PRbqK;peAGc6T*siFa&&$Ss*e?)gc^@)Q_;+Wn8Av-Pb88rt5#W|-p)R<< zaW1QNzH5O%$ZZW-2>6{^k&-BAa$gTXIJaIOP4z>dOv@d)8zgGX?Yc%EK{uGtVM|g* zJaWl0h_$;NB6A?h%`-|h50XrzB@wVrpT(3aX3^?9A80bai$Y|hf1Ap^2Z1Iv?Mc*- z&R_{69z?J+AIWPKp$48$Z|z1)kC|QXjmpWoX@N*ygumC&Bem$D{(MGy=6W`;tS&)H zZt}i}AIxlF8y(=5vm$eM&-N@(MjUl+%Xd3{5P9_;$n@RrDj@(}9dn-WK`T8_<||lj zEl}s94BFA+mU)}+yJq>}`ZLYVv-+k8@NPuVAi%`I_HD+eAExTci=Plbj?qK1XCP3h zv-AyGyPO}F8?s#Mc->&U?yk9N7_ZJpCzbqXj_=Iw2q1J$IqhC2H)=Nmtwp|tZGyCC z+4xqRUoPtWbqb7NZ!%dqJ_mw4gF4uCAAFH(no$=SzEVrl>m$J(%K!c)hDlL*et&0w z#G=68E{Q8yGn3jdXrbhT+1Wbv(VvE==iv}w7f37Z*ggPW%a#;+NPGa zPnLQZv!|ve?d3(|v-69~tLtyy-LndI&@<69d;jI@_luvu|6bJw(KipQ-old8@mqAJ zI%)=Yg?G^^%s6T%FiW{Ebv8jI%~xwO%|Pi+`WXVI6&88gMtO?93%NFm8Lq|!3SVso zw9?}^Ts)-1-rzIbO-pst#67PIZD!8?S4&7kr7X`owN|>S-!G$LNA(=hK}!5Vv+)dM zhqOc8+1_>?E|V`Wk9McXujlt#$3f+9Axu*y&XU`_!x$$W&}Zp%92i<;h$e_NYYctB z#OuNfe`g1{&Bi}o&(Pb+$)rgyh%=)q{gT(kYvd(%UlC6ZZ@wLydh5{`l-emy?`Ug! zEQWTdg>4=iu1Ds}C&{DFbzdUgFd~HKH1$`&g*$0a&Nl{MPW3&5Zf}+gN6p`iTx*jq zYRTZ=w1T2uXZ&Q^Q4~Dy1BN0QR0QWpL5h0C?9>4J2=%>(lfz(A->+B_`aRYNbvP2$ zPr_ujg-|D#`%@cvfJdpTk*XoC93xxS41uISepM0qS5qtugF`aEN+@l6eK??4(3LzJ!@CC=T?R7Sl-7ra;flB7dM8 zv2t>s)`|7wu%6LKI?u1uc(54dHi+SRXA-=rBIyNT;3v!sQXmCWN#Np`2r$%$CBlr% zF}9V6mSCZcrs7ATW0AM*wn->XTQa~9^d$htlr-i;%Kv(tKtdYy_ACN8WHJm<>)@+Ic^b8kX`eo0FKP*J#9yglb%uJs3qXjw31V zayT#z9&v_)D*9bHqOPrI%TQO$(dJXWYu+@w}EhmF%*+bp#2=JaI$m60!r)*fK1?) zBkwEkG<3L_A48&U;nz%)dGP=%@0RHg-!c}pBUO>ccWFkTUvR~rjT_||_(cPUuqk8H zFJU^V*jfG2AD@co#UT+SOg|F6qHaeWpiH?{30232-SxkgKV(*&7tzN6iYKWn7-D3L zO_6kRgfI@v(IJdpqIJP>Uht|dE5Yh;*`{Nn=Mh9{0UCJNmDI#=V&B2uVA|-V5o| z_FSZujuSrdWSQItpL|~H5AY31vwlCsOK1Xg6q2LKtMXE#R%+mL!D$1+U^1Ls>$brf zF;nnzS4b)@&TvaIzK2qZN-c0u*+@Q)T|6z0RVZICpF4{HaG}o!7&1m_#EYu>Cs<_a zTQ^?D+44%!ID74|&UdEDb(RTX&Y%`0&6!-BQpwU`rF7rZb#9%er38&(1Q&ML(7Uu( z!Ws;QjB2<($r_!6=s<&;T&()~E1rlVWCCkJq=2E2W7xzS| z(JCVkwD}Fj%TWQ}FmN6vN%Fv)BTY3c+MoLq16!dM6Mf#87@HXbPLz~oS_&ODlOgOo zRL1^gUDM<=Ao<(3eYKSI{uHC_v`X(^HFIBYJ zq~?f&TD$Pyp>ed-G);cIU%}jWPg`C@_T;HLFAr3`r6S?j!?Ym#E~RsoDQ!;IL{L4P z=;rWnU{(e67G>bCr~dD!VI|quj;{>Ktun*!yr+UzS-+GS6j3?M=F22cIi|{1x19z} zYth|>-*NEBrz=34gMJu!yJHzOMx{j}KwZa}*S)FsWUU1>f)%P7Cd^l3;guE2HzI7` zvSyQE9r?^RURrJqoJP>~u!OUmJ-c_H^YlzpJirEXr|+`11~$p2%*aJr44NyVJqGG& z8~O6&Qu$jERtrtr{U-hbZf9$EA<|GIH@4CQiY!#0+sO3a(vgH1hfeB+eq@izn6w~o zW+c6_J%;%630CwHrDMG_wxV&HqO#lB+&vGn!<~@Q|HrbTQ7XP)$mYg2@}p0ESFHDG znLtG6yorInt5dZ{?iZumiW4RUpr8?h;W73|*u!#X8yI0wPcN!F2p1OITJ*{$*=^|O zG@}@|+PiDj&oeVgE$mz6{m1uwc@6|I^za=E$nqJ z<5qZ3Buo$BC?3^zr$6pyxV`^ds0&H5>;aVHP)k0EUrg4#mCxK6JG=PfqJ1QzMNjK3 zRNVIVHH_GnRBdqUo!;t`b8}UYO{~Yj?}7;FT`{t8KC>ppT=I4}4Fm-WIT??74AV3g4yJ$H zEMGa2`B;J8Nu9{HR|)P%J>JyIg@Vg_eHesyYZpWZQfkkxpwEICTLqN zNTSc_Oc`AA0kgH|cAcbMV82_f-QIBr-Q9xCk298PCl6Q2^4S`wxKob#QR*@0e8TWt z7GLgx)L6yO{o`ZfeW`j<>N|^^?ezVwB&WtrE}c+6)J8urPjrhK~Ix&<*e|9oCG zqpgt^gIQFv6?m4_*LZlpc5p(I8%+g$3?nK?(%xBx4&PdXOoUGL&!UF1cC3f>zTaHR z5_*%bcxW4Eoo<&+cP7Ad|Hd8WJ8bz`N4J2>z!z6VQYnGM5m`I^$Rl-~qaoyOi7JB2 zvQ-2OYPcJ{&k4~wksJd5+Y!YR!ib}qt)mQ?0xW}`Mb1|@~ok&_9ceaBGeognM zlCTKBBpqW|-5KmJruYvfMOPz5B-et{hxHym%HwenuW6-t6ULgCj0>rh?<9rLRdkRE z&>KHfuVDnH^iog5^T^MZ@&mY%bTb({`R0gJ7M#Xe=nGiBvi`~=laxds0FRdO~jBO2sBTmZYqGH3i-3_ z6At@CEXmINcFT!nH7SwU2c*1Px3s3{V@`Vx9ys|`w)Y)7u&6_Lbs@NN zFh2Sr!ttLh%8&pi3-**o8{Bk&#~ARiWYk0967BGMRoH0zlt@Q1@t*MK^Rn9zaj@?{ zUafDt*PnBHW*&I5%z(qEA*#}}jy|>}vx+~^;alDYC~k$j%_0xDNgI-wUtk>&2*iiqzTF#o~>0;1XPl7X_-nIyF&p7Iz{c-Ge{gJHKlkxe@Sl;I z3Tpu63mk7Y5Gh@;=DApG8z8R*Q1tXH=!}Em>Sk4CWaDHq%;Kxa#wqNNX36U2@4^x& zr{C49C(4c|tc(*jYDAdy%i968EiGBy?o%7ntBo1YakLv#jmYJ%)aS8FSgPsAUstzY zzQB8{9v-O5xV}(oo;~@RLCjb@i7j3UK+PU1g$S;&2`Nf>PW&^P*NA{c)ulR96%lZX z<^clmRv9r1r57zr@2`aB>-8vDGg0~$vd{Dueg&w%^`exgqDHrtAoW$>24r!LYul7) zq&Q}9Gw_ElY09-~MaYi3Pl&#mqo3j{uct3&^CnX;r}zNWT!Tt|Gk8uNrz|um)rvt1 z$Enq}7I$lGR$0IWc?8pCH*ik#fNA$=89jCStdU~o+<1voyxwd~&0I{ivtO;j0|au* z7rBe-M1dTz-lq}I22koIns*Y7#FJloTvpawf1#P=g?`SgNpu#W#!r+TnfgYV<`@V_ zO6oNl#bD?Qp9b(g%`}c^wHwiboyH%2o3N*?XZ|PL_{OQv8Kzxz8^j%@`LEPm|5q)yOp@O1B|4I zSZU#A2ZwA%2)EM4{>|Q6&l8OvNOKPn&>M>YFNuK62p~}Qv4yS)9B*>I>-*TFPj9m4 z^!O4f4c#DfKXY^E(Bg%qMnyCxweG2F*74LesV+_db)ZuL*d7b4)9Cd!SjQPW?&MR-C(XD1Z`Vrmcn@YnW&Fd1pk)T?T+xts#^`1 z+Lb_P`-Nog)~RKSfS@oGu^K+TN?X|a=qK>zY{!#Tb(MDtPr0ToK6X4U_egj-_Vhb* zUd<%9;X}>N0Uei}}wNENf^c?+$Y}7YlnRP9W}bM_mUz4;2cHY`NkK z9^neM7eZcaQI5ZyGPyI2L`E@hrw%aR`I6?qYAo-F9192O(ilYfchV+K-!fmyFkw;q zN}tJ+xd3X_SyqTiLpmIG@GvZ?^nNocHlN2+&07kU(#me&=N8jL6aH2ynYO-IA;6wk z*A^xvhJ@-`EhQXhB&=V;s!=nIL?k@gkiRk8q~!O42p&_Qs;7?OedL;KALNIM z*;Udw-}BHY#Cq=mHNyqqT%iYAYYW+^JEu^X34lZ%B_Bg{odLYROi=oDMSiQwN-E43 z+6sOWYLY&9C>qXH#*{0`ah7K8pRGR`V(H@0y>mW9ZB7=cZiEe&)RrbYZWJ9N0S}w} zz-z*GeJ9q<#LLW1sLfBKOh$A#PKQk_x2(q(Pu*!6O)x+3sGb3?>)IUHU<+=5(ZTb* zHLCK1nDH8(fd-+Nx^ky5KS4F(~FVlnw6%drh`njrN6e40cOSVW3#5Ld)H9 z(mS=@cH)Aa1rTft&wu8T9jXraR5qNP<}iikm>)U`b_)9!HZJG`5eCR{q*~n~l-mQ$ z&$S;X%HN0c0e>$QF}ryEs;Hs5@2jM3ZlKV}kGkT#016U-CRbRHDi(wWfCW(vW?r>V z`*$q?U!&f^~LuxbO& zp_X+A4TNIo4hbgk90(+a1KXkN9&P~b&`nffAfeFG2LO;h0s==9`3&8Kn(%X?xVUd$ z!n1>2u)~%hK32LPt^trA($HQE>ru$rMZrE2F9p! z`0O#t@mi>vD$l&Oe2gF6!(Q&GUe?N$Zcz|-Xy4!v2z7#(o^m?HraB=JK$jsTJB}cD zmHN(eMhC8Pz^@~3iY#!bpH1_skwu;ZUH1|5SKu8IS@mQZzI)EhuN7qgx7QzU@_ybh z*6ARC)Mzqs1duUwDK{L#w^1Lp0jv$j)K-Hj?+9!~ASDircMm9L2kE#Ej4fRm0ruWE zTAM8+iW?M)mG3J~K!y#kw?{bLyU~b^{IY1c2L(KdjJ6CNMk-wpO4#*Ng#pt$XV?!C zlb*-`mu3`Z<)Z+4CEW}KNhVAY-gk=vuCC7SACJ8EnyhtnjsqIEjzywecKIFcP(}CZ zw$U>l5)yH_R!V)MpEn(=brJ#;?@8(Mewc^xlQ-uqAd!O6{a`zg_Jp}!9BaHl9C}c4 zVe$Ch4?EIs2cg_r)_~&8&h_!0jIU4QN`vST5$3b&k^&CKvD>#DF}KE=AJz%YoYMzT@hH{uR$lurDY2z%50!aL$MeDT3QcaEoje4|I2LRI$>Nqg63s{bf} zgtQIpjc$q@8ROi|2Vp9uGyJU{ZmrUZPP5qqmuoVkrVO=Mgpa9yIvGbQwA65 z>Ml=O8Dc%HD9v46key`%U<*wiw@^xlNRCc@i5xe9V2R!F>`!k-!yJZ)=r~Jjd#3?| zP#B-J7k!hxstb%Mevk8YaRebXi$rZhp=4BSb*uk^0Q=qT27N~6lMe_7b$n6|iLc-I zIllUD1^EYVaQyB(CcF1RrUmTCcSgdC?uI=N-G@>X+6Tz3t%OnR<-b%3q;S}arDm3M z+wLP|Zh&Elc!PTHhV~6;ECH)8ioiyrK+Gsq5cYW~j7v?^?Ah{U7Lblbjdu9S%i^4p zc)`2Lc~k)qVntPMfynUWo{I$%!NYD*{UEra-Jmt2n^?c~fcQ&gzjlhJ*e7bmr#mpl z0(?Ag#uiPJYz{X7=;hnORN9AM-Nmx-h5B$i)-I&V*mPlvMl8O26#bryLAn_;p|-;n zcYzCy4Ca}7K`&YrVB4^Ph1G5Rr>oxof(Pf@hvqkd+AERV$b)kS*M^-#KgOZ@3w)xG zW|nqq8Z=NU)O<;8^NgjSv%wPPz{Myt)l!KX-LQ&(aJNVZVKTQsdSW8| z%*xCU;8#_%AgwJsik&uA5W);C%SO-SpB%2_gTJym{}yiS>!0GyJpZ*{7db25#kI z%9Wc6YFH4fS}%4Wog=JqFgY3J9$^%U+Jce{YO7^hry~lgZLA>h2YK6P9jFVbja_q3uKYt^@W8EUYwb^F`xdJBOIOWgqWlpDvSp zHrj18b=wLUo4u7`^=>Q)h&21UcJC(ODzV!B@o^`?M`#v#hz9;2c{jWWenon_7hIL8 zDld2lbMnzHNf4M#Ynnk=U4L$j+w7e)kR)Cr$#lrL-%Fq(#>M+7ihBR-uqxy{wDR|G|$~4@%{e0PC{i_%dOt7rqh+_y(7%hlZSY;=7&W`pKiy--X zNhpPwNlG5&Vn#}Fh{j%$cnVR(v43Nysc{<;6e%J7KB^<4xCxaTElscoa|jM!Ld7on zXq|N-O!ZsC(u`c3l)3D*M|ZLEK=sYmf{4n!%85a=bC?;|k*IRvpFM8PBWY~%pztAI2>O&u86PttU~QcB zJa&`rq`%KgMzUaw*_HE2bM7wkN!~`ms31|JzI9zj!Fd7ieGHIur@Xo7dX@LVANNEB z-@UL-d)xzJkLd^wDVPyEP_K-#Gg3vWgtCy2+DiFTf`e4)FSQ|7>BCPc*q>=bB>Y-B z9y5ewJ7oek{5qbygF$sz{$qP(9ZwJAM3-nT*PciZnbT=LyVvXnqogd|{CwDTscP-{ zTVB_a-_#89eURnRB!huehESL^$$bn6!V0LJEZ`wAehN&H!vLYoM_i^KNDz%788sph zah*azo8Q%vy2`CYZ01QxmL+uWN_z1W3%Tv=jmpE9wA8hzprgn}{=BdU9P&W*pJ8}6v1 z3LH&u4HWC`1+kuDsLF<=6wlLK$3n1!cn2Qj(@O#}C_r9?O!o*38_4gFViV2-#X#6C ztgv{{Ff^X9y;l=<0sWTrv&I7lz3D`zZn4O0JcO3dG_rSfMbywU7l^X#{9H=SN9k}_GhobX;~v~wQu z^TqaH>C?$&Edr-SxjqHj>Ih9D>gJznlB9-(EDmK_AvZya?1oME8N0gRj;&+L!Hj|~ zeqzv&G*Y;lTJk)DfzYFjI|tO=)UIn=QWeHzxW>&JH=2~HM#1cN;q02suPX;=VsODl zQZ13V8XumKVth)HeuqUXiOQ$3ZT`S5dAUfbcDbCUHXprP)G}TjAa!2nfetNd2(NQ+ zcZelaVB}QfUP|y}T;QZTaq1^hERXXrJy@dJ~Pv)G#e9ukJE#rq57E!$b?q+UpK5sZVbER-n8rOxyl4B3 zJ?4bOp3kFtEYo8E^4<;0WVhE+`rtTO=7-U$DR)%W`^ET&w}E~qsxO?0hkAazpMv5F zHwQzZpZLg-8}@X*5oH`8c0k{hy>VsrmKPB_Z9xi%$YYN1+w^4^g755i|CD*u69VpX zgvb;2-1HWzoN}#W+ZsADr=R`8bhYacAAfz98;LPZGv72UPW}}5IIOH7rS-wnegq~A ztVQak$b8yU&T#?PdIJY1_bZl>X+|DBfq2tr-MPV?_PsOxzCaKCBx#&#i_Vp$8IijStlV z2$*g9U`Rr@h=H4tpPc|qFJg|O?@~E20+~3-zIF=}BAj)%T`ZnnSxh>3n*<%y3k(|Z zHA%4c1%}^Dye&X9$c+UB#F^3%Jn@Yi?b8J*Y<_ef_#j2YQ2-c_i+mv$*(l}#Df@C|zA4nhMuAh0+Rz~T`-ot42sOExXGa<~4I%0n zW6smbwEjSGsH5ss$dU>Gb8S#5Y~}V5@(zyTRiwUUAH85n9=wlqQe)YN_*P<$yZ0h)fg z1Z*k*Zlx`Wk6CXiR_ZGDxgtC*mWtmgXEDQCzy1$cV$V;hUbm4V}?zqjt_7YzvduGpX)K5jCj$cz+;*l4~jp`cc+xw!-O7~_9j z2HNFf`vY&TIGL&~1wZ7K=Ni`8AQLP%+2i^EEQj zXRW+;H?BHhsfb&8r#>zE;Uxbb9+8BI_`b=|yiM8BzM$3{P_Y^*A>;JMm)k~%S zl>hp}E|W!8`6rdC`$*fCIQ;|c-ll3$9~E>EM-0c!XK`)i(62KRR0gTv`_iU>^wVwDV^4p{c$37m?A8`2Oq@D?#Hg%pJ=k3#B+F z%bYfdONwXgKhr9Zgi1h(Oc2|dxE=Y|(%Gh!LBmJRqy;1dh6N;MVGu)WQgcADcdV}d zyw38zh29Edj0)B{srqdnj^;=NgW zhl3xTq#D(1#rvLFZ{nAc9@hds`3f}!MnTFnpqKIJ{;|gA0HRB6mr*i*8`_6z=6Q%g zA|$#zQ8V77sNSBk^BxLg6`XG?n2E(i&5fUZi0o)z;d?ga33)2k zj94NFI}&djSwHti_IiR%byjsC)Jvse_=7(+X;elDRYs*eilmb_2+K;!5%Cwou@O>G z)__+h+}eAFhfwO?bv|~{arLLDnCczy$?g}F&`4m%NJi#x-yxgg>ac%{&hqL}Pyuoo zub%5tZ6zI*UYs`f|ejI{P96+v*+56YZZrR@TQhfQFqamzuNq2JCn!)O)Fgdpf(wZ z%lni=jI+nuXgac=Yg|;$cZmmN3Da7xMFnyD;-}=g=-&m4R8}bKjl`7e0Fn6lV)t$w zZ`FHeiJE=Y{_Z&kxD!u^(ac+sq?|sp6LT|XW`UUu&TATaKQ@p0NOLL1EM;HtP0Zc7 zmS|%iHg!rxtU9G0WhT~t(Kc4Aorp}PyeZ?m;U2x;z_vf+#t9`X2y3KqiY{IKz`&$T zFRPu%dP<=f%Mc?*y>fPX-!9S;C?`E$%8V=#(_rui{uBn%#jq9Yv!Js!CEX|{6r+#RG$tdm_STvhD;0f@{vUlGQzzfyFbb3E)Gns2b81!(WS8V?brLZ zAG>f}BJl(!n}lkUQyvjSi%lhVXU@BIO^UJjC1}1-A_Bg|7m0{}Ce2&5HC@orh(#e; z$wGeY6DPSJLpVU?zCVIZMU|w;mAcFoJ@degSViZ<0ORpM-UgI}km)cn;FYPWjCpUu7SI%~-RINK&YP`2RMAxoVnWj+44773pD%uO$H z&==nJ_%qZ3-8e?=^&mLFR^*psxBgPl@Zq<{frA+IVhV90`b51hLTHq=bUUgZj@`Tq9$OjCM_WVIZ4My9e>VYN zpBA|c49GVlcr8nz)CgwPivR+{K*~nrt<`D_rw`LJ>11D`Bb%t zI>CExxvbywaFM4Izl}I}!aRv;C%-8y&TGcNFD7*o(`qYKQB$J~dK zv6Dxoif4Un3C$K1H4)FsF1MnU7D4ruLY$|hFE=Vd?o9_MuoQUvVo!B9$C>v_rE7_m z0FCv#zrSN=JK`HYMmfZLD|~uz&j$MC_XNMoJ$2_KDtRNt*_<6QID8oT#k~Kmnyxc2 zv!>jLE;x%RLZ17JhDsm!U&J57&a8+|Y!<01w*__Wme>>?Sm=>-RB-;6w2cGSBQdq? ze#G~#tHLRxDd{;AH*soRbij5nPRD4V@sef`yTqJl$3!)BedFCAMSdFvl zV&5z!`3tHE|N5*8q`bAV_KPq6_YC1?VP(p-heVKu*KB#W0(_`2GCsfX*KgP7a_`H1 zwWwXBQ8NXdgQ@Sk^6PhLb5q^ocO#~D-5t2k%FBD+TGsWk+&<1;5*c-F;DkK$+i^Jm zRI6jW=VJ=0}5i@Ppn7aVup@={?%B%FS~*uD72g?<1o@6~bj!Vo0L>D87%3^M9>2*+C==+hTdv*ZA)GV{4 zF|$qpsH}ZSQi~2w*1)I}MWS~c^e^Do_()f;{Tc|rDmfu5I?fP5 ze{-J%m(^GnVjY4p5r_nTR<3AUh~lS%KK1vu!F|{>SvJ>i zn2!Lf-m+U<0VY=@1^VFDKzD0?KhDU$*e89xd=^W+01J#37z5nY#a!*1`x)w43VYZX z*@TCu7jief4IfgEk6QY>cAtusM?^+RL*LZa#V1-@k30U~xzzPym5l$G%$8D~#_RRu z?QX~;3avGLqbVCRBX5G=&hZa1uSYgs7;kL1`0R4UAd<=y84=5F zCkIre6yfTFoGl_TkpZZETm(Dv5>#JW*2}ADR^=z$j5`HMAlYNU{t(%jpyc>(m$#$% zgH}z%n|MUVsl6aFJG%yDYPpTxNE(%m-UteSJx+sD0S2U@mKsGw&?wj$lTt{)*dZp` zu)ZiV2{Z^_3HZs*fPRMBzK7(}YkRuQe5|H;+x&^x~8YMDVrX2}hPSw9t`jJx~CmBI~ z52p`yJxDyGQvY;-({Lo1M-LMmd}y}d(2w;a44}0c9`WR@=x|6#xeZn|27NHcfcT9& zHt@*IPZ4-T!)nS{V$;(NYzC0OSC>N(Os*%x=JkV|LTZBnMMC#4c!MVBU+V|^2lhWG zpoR#*c?F%(D3rE${+3_Ob4?IMG#Xf9IO#F|$-ASw zrpu@MdqtOG+}lwP(VD|z5AnCIN;}o%E~P}(vIT@a?dhXU0&;`x+IoCFq9ckwcA?EZ z6%#xW-@A)h^`^Sttacy$%<2;Sdw*`J)auESYh|G%&VL}SYQd6{w4>pW!bjq5-(kr4 ze4g$&ZLN63>gm=y=XaVrFTQjI9@T%ZjYzn^%tY(m^KMsk!QeK9h3CDctWZ-pzSZ0C zMSh(}0dM6--aY^G{l)bKXkvdw7FB;e?xfB6`T$AJ5632%pl6}fLEK@raHOv`mHbzC zbnRV!5569HWkRq z!rzG#i;LHx+ZcG&1q6|1_M1*N|}}c0L}neH{OZ^JX#W6W6xK znxg{;O{bc^w67vA4;%m5p3A*fnb8-iJVF1HTO=)>l=rry7o#GErSb)2e$Uf?slAIO z!Zi?jgJ}zwb1-CKNCPbWa`EY|Ai}AaN=(R3cs8=Z>J8d}1;Hhe-idUPF^XNbgD4K;h|Ld_%Q+}IjhwMY=?EugG?_w84%ocy0EI@+vLa4nsKElLdsNhk zisF?XL2hPGe(vVi9q3|d=Ws)d!%QYW@vC-4nC)Lv=4kk0ykoVLjW|-F?cgSgL>wt7 z9UsrMgOgOs*DR`O^VJMjti4Sv>b*oo^g@{^T`U0dw1r07`zc|C{4wqU!~<31%c(6h zr;*E^f`vz_Q}7eQboGG5uZfEF<$uN1S)1QdIB9c`s%xsE#VCWN)Pz6`?us)QvWj=t z(GMX^V->wwgzdmHhd3R;GYnzpYQ z7p}{JslN%aoa|)#T-|eI+>WtgWQ_Gcn?blcffU-^>_*gfF-C!j&@!q0r(Di z5CXC7fPo`&1$<36Y|7(BGJ4E$L~=>CkGq=m9!w59o{b}0`ccgnSFw+xat#6)O={M6 z#7K-sKfJ=1w#MJmh|Vs~q`7eG9^A(zi<=|zcPMKfeTX3ny6$c=b_PXNCWi*6n6aeV|t z3P~hG`+vpCu`}en2THPni}xRgxO!u8n0B#qo5#<$-+(Xmn>!Ym@!OJDwC9xR+-0fP zPp4^F3F%Va{JHOk^B|Wp42T%)YnUVO7Sb_WUWDqRCyWrT)+OJJ0vh6l9=VVxi$v=O zJs(?+8r!@7A0iO zNi1hDQ;XNLeMk6*k)9wtHJvQU_Fa^#fP5S`)Khc|leJr!_^!u^YhPeso(KhTe-_9@{!#P!9 zn5Od2ufm2bro7hl1fxJ}PU_ks?hv()hH2088Tl<9$47j8{7?thtHdbfEqdX&>K{UJ z?|1jze^Tk^5NTh*eP_2^u*SbjKU)?j4o-%b444|?T%&ys1S;1E2K33NE7Bq`$*Ckz z=4o%HBPPnUJ-k=aDPN=vd8Q2_lj4zC>Lm{5G`B=-B)q4V68^X(`*f2K&XiRJ-XD#@T@cYbyN@`5UjBxtA>(?!K!>TUrjW6|DKt)!uKp=ER&^z_-GR7&;{ zF8q*?E6(W7th}aP+KfM$Z)Wil?(mIZa)ijas@KOekxw&TtQv-edc@t*G z+PruI{32wKAnH|Waf*!io^&d6_BaQz?6bNWNnmUX<$ECr(Ec^eXoE%LOLTF!+bsh< zJ(Qf19jIGVN=?LmT1B_t!HKv^Jzt?x5{R-PVjr9nYnS@KJ)RA`7g4TK;~^oI79k*1 zLMDWl20o));=-nFE7opxYJ$K!B{7X#uYC^Qa(0*1g+%ln34jj-NONI&78pGG>e({= zn@&~nRFdF)h}w1Rlst!U7<{^q;`9^#+t(j|^t^(o3?V7s5g4gb=Bd50P|>Qz)zQC_ ztTnJeO#LkoJS~HqDZUyEX1hqs7cn8hgAjFZO+oHgjR0$_a2#_e91&#^olweJu|Yjy z0kJSK{;z5LUj|}mHVZf0uZE~WEa|hOsKDs~L{DF|5yh{|X@;At6p`h`ov^268JTlv@g*v`F@A-{w+3o+4u#a} ze^WJ8lshw{vD6JRi_uU??gOS=T?eM8+MUF1N}`7v-{TDf8S!jx&&!)Zl0OtOW%~JN zLT7V@^5{RYN-;6Y(9=4-W`BRwdVdsv=gt|zLf-Pkz!753L<~NM^=LS2a3LxcBr9t| z>jXQY-w!FDj4S#;9$L=InO{%JNmo3GMc84AP2XfaN=s9C&1pGyPx}yU%8=dhqx?aq za2hj}0*0NwvlHeE$|(RCkuDatrW~9q7KCA+Rf|EHGVqz`($bR6b$}^QpuPlM!fsTy z;s}9L{ja=--;K47fi#Nl;sHqNFvU!}0Zke9xn|F|RiIAiHB=EXOx4Z0fmTFp>c`< zTAJyHDC?dag5h7Q9}p^viTOjPNe$)$%%nx1;+1EmlU|Qb-4%=%hwuvjCLY~P4N<~> zT`_+GMo-(5KKPkGleV_`77rIrxH65EI^~~JR|l!|uRmQU$s(}Akn!o-uu9l&&D(a4 zW}iwn2&0%PKgFKW<4q>TWUI-t$rCwhL7lW~ohej@m)Eb#Q~3P#yH><+XSe}TG?Xk9M%b z6y+V61xeC4_@oeS%TW6a8K@@R0RqW{v0Bnz@vI+H1QItmSQgVnGBBA(&HHjuwIyb? zL${W85Kkp0X|PKl)eD7rc@4JafBhY!Y7Ak9*r`=jSWM?&Wv2r{MPti0 zGvRBjCP{!@{3Duz#YGm%^!~AG)9*{78A0BFCiexA{sB>TM3W*go~e;*h$HIWXaxL-^b!EWcy|6fOgK^3Lwg!70-!-4 z=qZS^58eJIqN4%?-7xP6EZ@I9=ScjSzRy@H*0>V!M5DUm+Xj}yNJyHw+Q{|kf@>q7 zy$wLwfL6II>qtJLzVvEX2ee&8Q*}gpcSlbJ9uvx>lg36+rP6qdd2-+)gp;)t8zMXQ zKrlF15dm!GIibA#MgRaBhoy?Sf4e($Gm@es=#w<+6w$2xc3ku_){5ECkka$K$LEq; z>-10|D3#Ql-m5p7Iu-m`2Ew9>sZX{e9*rPabg1W%`Nc!=?*#we#&JglK+hNSi|2$x z&Q}o)+<6Bg4g$Z=Zhn@ArpAryrz8D}>!7EA2l-wn7ru{RiZq+FH&HQMaG*u*_o-Ph zAN06w{dhYNxXDAXdaHD{-S(JJ?u1%1bqYUnN<*$JY^;75UmX=G-w+`Kz)YF?DB6K@ z15U~LFu>1|jh<=Gmfk-BQt?UhLW<{n^FES)IoXGkQ>I|Ck~M7#HK%ssf_LIcQb&VA zIwq-e;>InZ>RxbUq!#+z!_JD6AK3OcQjzTk`{fUcD*<|XdDB_F=0oZgwSZM{iYUR4 zDl%1P?ZZ!L`=2acX{O1+HX1dFKu$$JpVGp+s5y{hZqQaZo#n5|RNR7eQAnGMoZ6~k z`>*k=FPzZz*o!s4Hj-yYs#M-70f8yv)W57=Bz$#Ow!sa_dD-mkCcVIqbq`#NtlJAM z{p#`ET3PMF=~g3OCx!4*o;;}|+0dB9`g9=RGc<|*cM?)^3Gmz34=>akUxJ{(@e$TL z2J%W>jqR%OAaxfs{M+XX5oa(hfG6TzuC5vd8Ry+4Q?D3soLc}n>$ah)bgY{K92_d= zv-SKJbA1HqWrU4fkH+FL_aZ<;q^B)bSS|CX3DIT$F@BYf;80X*v_mjHdn)g~hLj~e zr7PV%$@A|R+&`TIe2Y*9!#0x=8 z>mwlO7MCmnog60C?N?l`bxnOqmu3W4=W+z;`Im~%boG0sBI&4j>|XY&VGM-13-1BF zp_BV6cY&*>Y>O=J4oRcUg)D|#QFpouu2gArU`m%p#ZQr%%sRw=SR4TbzI}v`b@3kP zZu2`G-%n(v9(<@5a=nq_arqXI&vnb!fZh51g$qm0m%#~x;Q`AHeoYXhrSq8HnL%hu zI2h)JCgr;!SUfTS03RTL&_!>OMNchyUpU%cW`Gi+W|4(RnX1-OCQTDF$AhRklxV`B zPu1RtO^~~B(qP42(G){D{WJvUh6c2v_5yl{+P;e8X_`Nk;Mm;6U`HA$@2=4IjakccTsrH2BU-OE5x`Kg`AAJzIy(TpWJ)q(rr~WYLLsCFS(V&h)^ie zU)i-ea~m(1_6^KfgrcPDBnO9-qRMl>=(4(5)S}pyr zy}c+*LdwQluu$7k%M41nEZ?ss9Ob1;LN97z)ky(=F<1aQbrXwK=_IAGg1UwRi#I1a zFvjs&Vl1GTJ6uD>Az?CIlX<{NMpq(@N9{WsH$u$XrEHL0L^j!vHcs-H&<}>Ubza12 zfcD--H_MpF9U`eBn`uUyhz`I>8>cSky3}nQCl8M2_P=B0J+8X6&K^}y#RTJPh{aX! zG!DK3ph~>2okz3AL#J!552~Q><_QEFDe9AN?8Xm8%1vUIKs@$mxI>wd{!ABq3*Pj0%4N?iybfRF#u!&r*$Flu< zwwCbcc|Mdcgngc?-E(cFXa5~5w?Dcs_4RbsTV5^tFiC1Au>Irp1WliA_fZ*B zvgnbrqmtye_&+|K6EdLhU4E_!$^RQG{|%DcIp_M9y1gKp9KKclvMy*tlr8@9BIVKd zx4%}6zyJMlSU>gr&&hl87YA*(`TFGZ1?2UA$~7~5{vCap5Rsc?APYKAVEOkm2C@A2 zdx&w3ZH0*X`~Edfg|iwQL^QUK#8!-B;0FrKIU;wyDJr%-lkZvbxqU_1D=coC7$sEl$FDywJIHlCrc@+HSR6mlnTVXG!d8K- z_|9X8r3S!$xh2J^Scnj+lED$Yt+ChugJy34za7K}=-ZVlpio5Q4YAa;TZ1lOWD3#Z zwz7s=UwN3FvYMMJJ&h4woG#8=+pCO|jc5$HP#=@Sp{$%tm$dE{>Djzp$Rit91&!=y z+(jsJ%=DA$^z1sG0B#5H6@CGrBM+un#mAV1b_(Tp@z$V8tGAg2;n7;>pjs&-}oQF(-Z?lNWch@iX%ixr&7vj z@MBcN5BGtzXsygm7M)rIt&ThU93rgBSIqK`(`8lS@{uubIn}|N+{9(-?D5N!AV2R z1I62qSHZ@HeMdX0v6bC9MD>CE>#T8)TzhH$=)V^_smHsj>B28vd=EcqOnFh;HzFR{ zhxe~2lEG_}NLH>dw8l5u@7oUHWAkxDT~k(lk0Rh!^eul~<4Y^vd)Bq>@5JirL%J0m zw>E!I2-`Ade0(o#ZXOY&eppcbMsZ^ows*mhQI!RyVu3 zl#L&)$#(fX@;SlR*OJ!T=fSh;AEhea)>LVC56q^EJPiif9h%gH%-8y~);uCTGM@-p zXsK&`^Em0q`Y7ac&q-_j3({|P#G#9WB5jQ+NnV=2C6^|B+L~XH9=qv;F3;7qwbmyc zd*yhBuB@K4wZA7l@l6O_-4SW;oJu+gs0m&B=F{H&h4g#SMCkg@y7srWXzHnOu=ov#dh8@(OV7u~CCM+rAZ4nqXykQYIZPX+uj{#h5=*zRc>Ktx($&eq zE2sO3M|5D0)Uz(vXSGSe=&{HrDG6_?67n8r^v`ELOV3Mo!dZ70SEZGYlvh<%G)|2* zc7JXz=+2K8A3uKF-roM# zSN;Ed@Naux`XYrGQ%1}D$Gj9$lK&5EA+cVr=D)Co6ZZcbTj2d4Y{3N|9T6E79TOX; zW*?vA?VOwzicQbTdYGM?m;XQ5f^m*{&>gm5ocQ`p$$zkgxc^sd!S}zhg>;a^^!)!~ z3tQU;wLAa87QP*~jxCK;p8N+}xO%*I{W0?|0MySkT)+O_?lbs*umu?B35NTBv4zpb z(vcMPy+SIYbDh3)KI7Nl0wu`H=tRQ}t?#gf55nS)4_C*G&Gc`hZpki~wOgt_l_E0) zY{pxvXDd;q+J)M!ujgybn?2UXTWieXxZcOJ=(N=?HM`Bewy8M+t+e~zVGHL^{!eTn zMV-B)VRImsO3-$)qj7sAl~bokx3g(?B1h75eX{dE*urHTkP!LP9_rA6^$Pv?)X)1^AE^xuZ?&^&4&{`3#~hj`{k zy49n-@EcgaRmUr_vn_B4wZQaaHtgTXt3T^IrM_Q=)QI|dGsRv}UXYqcKL5(i2gVW$ zT;fHLv$C^Mz*J%*qYO;;HzFy0_HS|2^a>OXRGboqTa>&4X%3Wvc^!}#(_Xo##0B@y zD#7Y4zG}n@E}!m}pW@FPspQD|IFn_eX*b{@L)3vGH9aCj17`QU58U1$h+|&8LW+?JpaRv$`=2m1nFfOg7J~%vZ&3w8ST$!)= z&)u%Xge-5cH~~-VOW6|+V0A{;36j6UOTf?lRgn+$u(U)$po*fjXqmqfjd zfohx|b1HNUiRY>7SRX&CSNnN=ROg9bv)yoiIli`Do9yVQu~#Wnu;imiK4;4yNB(hh zzlYVErZ)~t<|WW$o4o-WN}YxQf`}TIW*XH3-V8EFArVL62F*yK&cktU0w!}5UY-C7 zhJi5EHk@TYFM{>qi*JuPqGglqfQ7;M;X-}u*%J+IBnA_L&7U2tf0p9YtqHeih**7V z`<#6vZudve120Ld_MRUxuh+CK0nf&&@-rsFSiJF@iZx{-UX-2k>Q&q61^$((d;gSZ z;^`v-J~W^mDwmMjFbsVx`*RDzB;S@SDH|@e&HYN}Y>(KH^=f{R!{TZoW(_IPX)sqU zlJe(Z4RZuNNCl+w4@%ntz>bGL5S4CR zwJbcI88S^ezW8)P`0c0hgYdsI=jrR@1cTHM1_|vr8b$JdJ;l|ZiUQUzh^Mw!Z3rk% zYkHD-P}UnlXo;0E@?aIzI?;0%MfNh?7dhuIGbGxpAMO&`;N8PMYvHN3(wj8O1ZDQ6 z@9`-(r?~G)k}SQWm7om-`f<4BpQ7yA=;p|Rxi{$EU0z^YvJj99ApDEaM%^Y65<+oV zyqag$+k18#OAP2^YM>)Xc$!N5w#gbwPQ|9!H$r?y!Ti=1jw5g4>x{zkdQBtqplYET2u7Y0C{;ppgW>)Mp<(gY@(Nj#e#5?ZO zpZmlEZ-rs3DJ1QfRt8bMNWpRq)xJ8b1CcXEw#)V%>B1IPu{^pC{@k%7(cXx;04 zSx+P|TPe%`Nhvd)MuV}*C6$9wm5!@rl?c^MQ(BS09#lV7^!a9rm@r~#+2NV0(`$6y z^x%@oJ%rpEQE|>O1Dd*g*FidKbiQZ@#{~q7V4v^wfBw3%w@8c z8Uhhvh13(nW=@no7`cc|#U~@83m0@!B~J&3(@o${!oBZ(6L$@hf!*7aM z=lt#x!E-xGrvBa9ymuChCluWqF%c}=@$q6HZ^&m<-*R?6ff4NQ{>qJ=j97XVcUNwiX_(>;Dtcw$3jn{rno;uj!oB3Q#BO+yikV4<-f|=y z80Fh{+jrw-=zTbxJpsb5T3wxhSIL#r}`0 zs3+DlN~`t>WSiMM;qP)PXmi2Suw;#I! zb(NV!l-WJ1MLh)FthJ}OM#J+@{A(Gzd`k^52}1%yO~Hh?fL&TBNqJ*HR+ZY`pCGF@GDUs6e=vGQf)RBT9 zB7y=2KmPswchB?ZJ?EZ#pL0LY`_&{nH-#z8j9oA3DJu9Hf_L(0W)Z0YR`l5OS4XQj z?^t8sEYtJ;Du6yv2W^CK7s8v5N1s#NavQQdyr}$2vco`Q3oXS#(&6_V5x~^ne|BS0 zeL`hcC-qlfrPQnv5^WnUUX)(H)|Py?m5a0bRi-B0s)yLSMaP1%93^1Zy{yxp!DBjm z=r@<_+HX!Jj+Y{QVGCx_(gD7X8L@LL7%vJNsgZpdU@7os@Xh!ltEX^-&{= z&b{Xuz#?Or=HuZRk3kR}LFi-H^j7dLqy1~>B~e#=;3`T`gpxcXVqJV1}eU)!@{mG zinZyn<|v2th>)MQAMnC++wu&gw#UWCStBckyX8i{Mel4yzoob63}T-K`WhHWu~-LW zt3Gx1G>b&J`GHtaeylD=w_d1K!~>8`g^a}=1^rgx{!Mt(z8 zoz4CbPYBHR(5Y2NG=m;>Xg`Rz&?71-%<*&Q=}Bd)zoEi#=2}>&5iu^o*dtXd1lsmC zKV04+WE8?I?`H5>_l`erk)Mg{Vq(uiR45nrb+sYk)H6gZ(IqFk%P=U}e`0^l+Bcoz<@YXSw-bk$@(L!C=nj^~QUj%`#8N^RgRgSQdX9Jp^ zrruz=TV^ZoBmB@V%&S@nT*l?hNm26b0RD>CYoJk*w^x^_h&RtyHL5{LW@lvF@muxR zeQ?Lp;3e81Oz*8Q=nuhYKqQ9bo+%-35=sz?wj;Q;^0~F9w}7H~95fzz zOFGVq8is)&*hH-Ye0*Du)mhF4EX_MHC~z?f4@K6qM%lRXa)!rzF0(v3()lEm2UC;A z7=&KDRJnE4lqdO@qrE(c-o{H$5yT&MJ>#-AV=pd<^GN-yK{faIcS~sDfZ6vKiH6Nj zf|9uxI34-UTV! z8fF5`3i4BCR0M<|G?Y~Q55VV0&=m@h!$$iG2`Ekh_R<#9R)Fp;g9I~yk*A=p89yWr z2q)_bl7YMc3@=MbjcbWc4$ovv$!}oE{s54hQk?IacyIZ!XjsWqOvzd@unP@ZOfHZ^ zJjE-yG}ChPih%iIAoMt3D5pIKz(%sUi2o3Dh3vy0M*8o}vC~Ujj8uqnD7}z81PbB` zMJc7FXTS{!5;w^*rBdx+49L-4CTO21gDZsFl)P~*`&0XOu(+0GfB!1kjRl&#|Sh?IGaQ$7`xNF5&a>d)2km_WR z<2e6VazP3bEM8y08wNt!l=0#~`P?AU!{Y01iQ>3??fU$^7FpiYLJSEYe;dTn%y&gT zTGHmp6?qW3i{v=~T*@o%LYK{-k^DG3lvh9#XD)?xAfa;=Q5MkSFSX)_#avfvlvAoD zDdlgHYfH!Qr7>VZN_zMg_;)n?uMb2R3+Om|wC*UN@-mdqMf9R7KtPOAXiHbozVmoI z(qq?D1k&&GjjLj3=CSOe!EaBe-$0Akg|RxDkH6wWj7UJu<@!%c{QUV6xYLH!Gax^Q z)NPW=Fn7~OGm{D=bs7|^yWE8HEU1Zeag;FeFn#_2u96TSy$@1>D{Gdwi~JaW{!+pG zx0`!-tBkMd9dbhRaG$w%R8y6s`=g~N+}SsY$r`Lzd2{bvAG(pmFmWwh?Ak(w&fH0h zyM!I@Xp^(NSDdNN6{(OHRTk0{JZH=Jr_s+@=v$)Hg7xW5H5z!n{BV(@p)+=BZ({+t zcoO+epIf}YZm0FaDb>|ki`Valv~Ib`y=av|l_=M%@a+WC3li~pS3+BEQU}9C2U4r! zA%G;^G6N;%}ZgJ>8%M|_O%!I3Km z04sS_8TdXqQccG<++auu$l#`IC#q6Wul}DG=)dF`+#s-{?x{Lma*4R9IvuiVw>$kk z^NbrpKm#I10m{7O@4OltX{NfpCEIV>^}f#;a$ES|v2hG5BBnJ}tz7%i)0H>Q1LkXd za65S_91|2F91(Z3zCj`G+$GjHRotn@2+(LuDM%sak5@hYZ{9%u3*X)X|Le_$z3=AO zFV-t5bpXXk`KvvrVZLKuGyiMEHm-tA z&B1frWu?i*`)37(qaJ)#A+=E0E^OHdL1G}TwfjBp?5SO|T8AzeQg~uuBW~;vWVZZ{nGdXiv5p$kw zb7FS^30h!eNWLv?9;eknXeQ51)>=pw=|G`C@({q6Tx6vt0uRHmukam6RPe0uuPhf% z(^mPe42Dn_egTz?jTPGlBgkh%K$zl1*pTDluP6(}*H8u!upT%>1?rI~2;%6|x4Gm^ z?3uF^e=BH-45&hI!k6xDsOb^JT$uL<{mI1ra*q$U@~ zujdXnU*TtcHpl&8Or-{_Oec_i4iYz;n29NyHXT231>3lnPIK3A<8+<&OYPiC?Ej3t zZvlApPME<@B=fA*7CdKfV>aauen~v zny4koAQImS=@n1&_+m*2v|MK8<;=9Pct(v5w2p5Dg5{Z-z{?)55HmsDuikf;G*i{& zcK&s%glF{qbsM6({(5kE=#|QM+t|MjFDCdt%%+QwKP1hSa22&Ti&sj5Z**XAJRJspMJi=B%HaF&DXG5tJYDF)dYc-BM+XPt-g8qi2aZ z7zZy1>WER(iFl$is`%<+isL!zJ!wN#I@DDf;FR}rTZbYnlbgCWF#PfhAJerq+1FRR zsP2Z%sy6d2W#2K?x?UxlyH(VCRrg9mVIog6RXQIsPHbXVgI#zbDXT^8jT<58rBhvp z;2XwceZ}^C7XZ6pgha7|$d-L*O@OoqUD`XZ=z9l*cnuCM=2j{ExbB^JkfGU=z5Zdq zkW|^E@b1`uzxx~uzgRn`@RKEbLsFG*z6_z0)raxuBA;whnw5ew#Ox2rUq_1!uur*5 zP|S$p?%f#-R_R3P9^)@Hvq3e6Lb2YuG5*7yh=Q2`hCcPuJGBy}MyqA`w&Ktf{)1uQ z$EB9}iBEz=^UilKFEp~&Upan=lG*tbM!cQmq6pc!SBIH@cd!!=H^R7VCsbF$E)Pi(C9~xp_{sNiii2Z7_NqsNDk5G(Q-Zwu7h#@BZo6utt zDRXsSez+p)lO^XgsCmJGRQGPX)vO+Wq~AWN^&8S<`LJ6(;X^JMc%?xq^#I1j&v=5e z!?Q0R6wFYCf8VT+^26)O7v{u3k1oY}+mJdxw`%+S@?niq4Fa%H@_7jMNK9^BDRd_m z)svA6sV}0wn4YqBy?}Y#r*HH4>5e}Ml;g8EU%gb?`Pksd2`R{`_NdLUh+N5-?qI* zxH>-{qpf?+C?oZlW0$D;7$f%V^K7I~EgYwX;VCG5w|B?s%-W2Tt`|wnKv3KX_SqHWa)rf6F2js241>1MWQD#Iyrl&fXG-SKmU-0ANhPnz zm)Y*-xLv&PXmS0T_x|KTpXc{{ch#pe0Vjo**uwi~3-lrn3miV?`5o66YfD;aJ5cLD zr4E!m^0ZOgm71DnPAD@AO$${A%}f*qE@P%@W+aXJrdn&oT5xJ)qih54Rq=UgC7)>{ zZ>4Xco@Al>K&koxw}O72X<8<(W;=sY+wko9CARRgtLN2!4W;BYH;c?HH>;!G(?3?I zf65L!*5nYL4#h!K5N_3*dRX4lpbFkF8Xt+BGi;Ub`Y`L-c zx}>LXXNAy1`+SSY!c;U;JH1kJ|K6`}Ya>teo<6w$``7o+i*oZ!``?{6Pnj}S{@p`o zERhetzNCOw-}cc6UK-|qm>Qe)WSNww`x!J=GtpX-^ENLSDh^pN%oX^`0Y*cIi z&otX%?to3xcukLef&>y8D@&&Oar)g@B37El7-sl~X;fqjRmS|D}j3tOdBC{}_Jle%BY$*d&2P zP2|y6r0f~2twj|NZ%-NvraR1@ZlmPVbkCc8E4YGfNAh%=W&uRlpZ-*WJ@hV~ogKLh zfUvJh;@M0`TPaQdteVHoj3seHoZ6MF??#aN;$_7QiaQmpFzTYB)?vC5umq({Gh+7WY5@-ZLbJQTK z(};VB4Mv@-zoosUko1Tyf0hK+Z#<>+HdrG(y|SBLue44*cG*5)5oc-MpD~r=n{}=T zIiP2AC>^PA|6TlfO3Tl>KwuXG5OHHS3%gymbo<5*DSqehg64UoLsJreLW*yb5*{MJ~^&qmD_<$W))-jF*WIDuurhk+v3TK3Tc#D(x!U*7j z>%%fK4fzK3H5Ud&RZUIfEdn3YF%D*O7AC1polVmRK#Lj9Bof~!tU>W`4E39JDf7;v zP&l4RkVC>mSF^7Z)8FX2lWN+cF`9EX$50EiB`H{6&iOn_>y*!i_Qi}>TqRL8r*qoV z6k!UAhZ}1wJd!i{oTu#hBrsV#LPA3QJTzC--QJ(;CJch&F79JM!Wa(6xyyZB18 zAMV}w>uJ`z4NRIMH85oy;&Szo;)94ds9^0pUlJB<036G4l(atX;9_84??;ibCUzZM zMVVEh8Ly73P6I27wN^0^E|hWM=2^PN&42=z7+jMkM{;X%xnt8^{I$_mAf2>N5&Lw} zGa($(&JiWWA1&G~$&z$W8)t8520GGbC2*;G(z@{A72&sqMc{E>xr{xf<3ktwY+=(Y^6U}?gJ8jUd`BjYM4f)}nIyQeV zP+E)xA2xi)u|={@|4^LS`VV0OAP9Ah&Js$7gOR*5%+MqNND2`zF{=M0IAtAdl+7WQ zQQNLvW$tWa{)D4_QQGq(_^P<66~BC3<5V%2IeTKrC$=ng%HP`X%T;S9g`#Bz4GD>@ zoyLs9qbKD#k&>|zj!vyA91=*dlUXxP+$O9Z?MmzwzLJS_RWGZ3?9e;wweytT&=x5h#vzZEg(sNzX4{l>4FB7YVewVawTprFV zTl+G9mm>|#GMXxm_3a_hqC()O5BWXiCJt6iIfFKnIklT< ze{-QFcXGZFTX&u0jeKaEM0h#5GN=mK_TSUV~JiNfwp%l>Zui< zIRCmQSjRUV=iVBYgSyDqU90VWSO0GsZ(I^|?OvJq;QkB8=V^N-&>mdq$CH-FmegKi zMaxrBKikUqzCvme7$-uXwzrgoFqnq9ureXQCyl~lPi-cz=~88kJPU~wUP|4Kl4p{$ z91woeJS}rB@XD3l8~Ng%W#iBAS7#+_s&EVSI^fT4Sm+h;S941ef#p>quLhCwl}zl9 zrlh?ptd(SwN**=VKLg%+ zO9y*J)xpXiF`rYHSESKNdfdn_Y>eCGsckU1^tu?+aJ#VlY(6@n%x*UXZH?jz`paDc zQ?C3N?i7$Y0{H7)6@k7N2VS!#fGJ>$6gUTf)5PUX ze2yJ1u(J8SHlk=I{^y29*nKNO&=;)#QU-hZ!HxNHD$aiPf4*2NG&_@*w8NIXI0YgD z)`_-)v_BG(rN||qsZ0OJUAvj9JjRG>E zP%V7>laD>ml>5E%4Qz+)!U(BTZXBOVrW`ZUmx52)lX!T;&ZQ(x0WOQ6RdSHGT!bhQ7#2laL4^bGeAHi3qdL zXVHHICPijz6idfwIXm?_L>#c$;pLA(vswV1h;MIL-DYh{WS6E2)f}AqcF|Awm zFktQ;mS2OH{VCs~fA&_Wm6^G-{}1cuKSYV1EX1E}?0ISJ?KjqcwJG%6eZYB7hAz3^ z`Cl%1ha}MoRZ1d!9t{mGUzD%bj;5t!4GIT5_Rd1r$M%UZ7<%zui0~mvmu)#$G?;KbUqx&D_sh*Euod;bcCV2P}@4p?qZNMX8kB?RDq8-GAbB7;^?z zEp)66(9G@VIM70)rQN?bXbI(vgv$4l$_6URp!i?|or`0G5qy&78+mj)#`4l%ZSxkl zdnj~_xpr*333!*~B?s9z3^{(X-KaX*CwQ~n`2O+b8<$JfApb$TN%}F}-6@-nZ1kgc z(~@J;vP)1i!pz!X!Nd~P!v5belit~cSzVdo+Z*3{+cEjaD@hn#;S4jKi1=Zw1*GY1 zX7K1vlL3w8SegZMJNd(#i1QL@bND&t6h`f4@CQcZa_&+EW_bIp&+R^#g^f@wBC zDZUlDt($HmkfBPpn4)`u3_}k32oIU;&&sAv@CGM}ro${uP2DkeMgE`M8Ptm_EErYR ze3I4xmtZDxOaJ+&v~sqa-kfP~t#o|kaiQi%7hm60#-ZjL43n@{H6x?Nh|`o{u;1h9 zrDIE(##{#|1c|lUwsf}Lv_7bGVw`WtLr6@P;S~FmPWAcd)+C=M34KOznFZv93W{@PKv`;fze{> z#d1e2i&@C4+V7I33Yy9Y-iGp21dyt5jp@d^rMv+bOBgh^o~6D+^@<3cg11*1iWX`c zo`Vm{5v(irl_w(Vs`K8W{BBEHcgbIDlop%UgHlBAdMa3~>wOnNNur>W@fdls%L6|L zO)Pj7#BM?-O9>VHSH)&U(V6oEf)*`*9&)|@>2{DQT8i>&6lpmO)tL;Z^@D!2+Wc^= z>@RH1)cTnT)JB(S&18c6%ehA7HFs`;1Lh%Hu6UE=w`&e@3O`kW^b3Jo2&zURyfXp2 zg$-r?UMdvG&EG*%_UpPE$emE{;cP^AFaxcgu#p}R$sBSoCP5DnR7ne-NB|Wlic1kg z1*XU=uDt-=xCt2P(8NMmg~Fn3rQArM;G3y*<4@@f9?skm$w?Kgj6!C5GE?JZf6mxF z2Rk(Q_v>@`JN{a##~@=bn&`cr(28Pz$a+bNVbABq6c`M+s1?CBYgFCT5?F#<2AK(J zEuHR(_`J)+4Wpy9xL((Ac|*0GcaOW`@~&zBk>l>qV@aL>3cmHYL9It~rztIg zeYQV(9CXSm6n$xCpk-qH`31!;3G>S2cQgJY5{??lN;Jl7^KkCk)BSZ^l=c~hBl&tsZNbH2_2qJ%F^PB zZZTJ#Khg{L6vaks-jD!(?eMx1r?hYf2+EhVg zCCaN^A#2MEdQkyY-SDb3bCcf?WzDC>Nbs?sDv##wgL5+$EmhX#88S9lq9=}K(@dO> zOB@C?EFv*eCia4FH5i6pTSOM!Qb}mzG?W-Jcs|SB0S(0-L5D-p;ZcA7B0G5$9-s#sogM9RM3YEbiF3)HnW)l}FeO_s+ zSrz|g!J)gV&Gn30b55ncIk8-%$?E=y`X;&2!$;m4+eB2g>L4=W}GuLf+vOBiHjQ ztL;O67hn7AxGK#ZKb^7KT-qMOh;or0kcArLGRE=B5?0J@ zsI-=b&7c3)eBY{K%`+S^_QGW-_mgH1Z!@HtM#f$5UfWu2yScNKEzeb{s|J@FkT-5| zfL##7mhIKaG^V~HDNEXnZy*(wS*J$ARm9=lsHb|hwlN)BvXORw9lA<-+yzg%947}* zFJ36ImuIeDBl*)iP^e5us)O=$Pi>?0NJ7<*5{JL_(3kZpoKe9Ee@sXaU2@N>w`TJ| zmhtzG=8<&oFo>W7%%kRv*00??<8SdwWlZcW=i4eXxo8Ij{HQBdQ#$7wFzUY*5DbD3h^_OOvi|FTLM{@>&x)9DQ{<+mhLnCkH z-+#+iMgI5u4FlvhefFLI-aZDF*3w#&C7!j?zQ0NTx9KmcUeAa;a>3Xt@aK)D@+XIT zFVcHQ5xwr83&#amYTt><-0J)Nk(NJPB5J&-^+3TMyb_NWEXL*LDJ^W_uv2f+zczx(U7|4n%EGN5A@KcN+^rhvMO7H>Fn+phLFV(G+4S3do*?0q{`^J+;BFzEd1X^_sUVMQaeo4oFd zcXNaKLYeDaNzdX3I%RUR*~q)052)P|-iTLM4_XV}y1@M5v1#KQmqrmtd z=D#B?lVrkX=K+^P7DAf5Kk2X{PZF!?5mAcKR*rR)QVUw?g%h>vD&8v!YcvlyOE*{F zQIbX5s>uCEx_v*RXm0M1p3uZU@rXB$HF9!+G?oyB3~wk(F9UT5f2HGu7IUF_=JgL! zVxl*bOUo2OlLgi}UQys%BZYNyY0N{6rBgn)3^MCJ6J-DSQt>{a4ibK74`gMz;QH#h zbv<*PM(2m@M}91)t)`!Znh6=G^O7#To)3Un{+ibRr`O#Su4>3`+>*PGP+dZwcp6X< zTcNGX36-yX@@4+6;QwI@UTrHfFZccuE>nhG!MYW5Z!hM?BJ2u`ZYqwq?y`KV%D&(B zB{(=K%_YL6u@{g+0@G!HqvS>NdT}=OX_(;s<+T!Nip(u+SXgf+me@-S^GVC}!D4Gi z{qjqFh~&q&^E17QV~Ld4`96pe>}Gx1&)3n)40V?F&R4H{-w3)He&^o9pax!8`okB+ zq+Ztr#yV0hOBtfRQ@Bf*bw>CZiMLAt*sf+ZM0e}4gUgOs)0iIen@4-}Qa_*e-E-0Y z39*dzK^!I%TUnDzlw{={$D7yP7MaMCz22WD5nj#8j^jN^&bl@BMwSS&+>3z>i8F|L zq^X;QOUzYUJ=IT_RFNDPcSL*a`M(%?*GOMOxL}lul3s50>$=5J=!62Ni z(|2ZWGk1n^f4!+`~o1@-$wBP*Cxww$`!^Vei8*iUK z)XPr_WzEhjj`;d4;eEs;V?HV3*5#C19J4-r?Y^=235X|t4PqPn<3m&dzSY;|qdM=n zT6s`dq*!*s!hUyfCxe#x#IWL#u~0!}mehyN z%4}NPa?aiSwts`gI8l#i@$pI|OfSF|3b>WG!4NduF6C7BRzFmn_EQ z!cFj6A9Jz(8A9Y>6EqoMqY+ZR($J^_DwyGg`#F3eZ6`w?!+1)QiePPgQ6P|UB!(HG zUkA|FOBQYIGZKvefV>bZKTMD^Hi!F0&97X+Gy_CjA5{PGJW;N`7YC9OMxj$}hnjnc zG`zLB77cAj@4v+zFre4`9i)xmqKKpmZvxG6F#yyrlLjEr%0!d;`t$R#GMb8|ls+iS z)m7_}OTwZb%HMt{i4q17^!ZHFnoa2WA`to*rqltbb8L={K3c)rfglo-GtE3fXBc#R zSpoQE1r+h;%Fp!&<%qI@cg|Kk-4~n$iHKYDkOHrBorcVTlm=}{$|GPPmE)b9W z90z%PqV3%>#u07PM<46l{E`NNa>utxI%J+Ig+${(pVA+Z?`S4C%f~>NrwN6UI2Zpu zn4arlKi?f>zlJb%ByPo$rV60yF!A<Dffxr|zsob7;hSf6VH%?_3xW=u1ZE`D<9;dOKS{T~ z7CN;|Ni`sJWdh_1z5{8MH{vX9$ciZK@@qyIGky0CS~eF7c($8Fr-@1ywjoCmUBImB z&8mow3F3tu3pK3tSG!<2S=>aKR(sNsc-vPI{`}OFIhke9$3#Z>xfcQXWM|y@U?}4@ zU~G^qPoUAJxIfWy-cXF1p!s7BxdN!B4Ld8jdh``C5G(M9zxlPN*Gz#40tmY8hllbK z@NL;8Q>us_)-(WU$-Qq<2uEHrB;DY|k@@Xj$}rXAKrA?vW>XB514?#F3ow+GR({oL z$qZ?39-^rB`(AUR`wes>dnJ;}Hf4pi&noo!0vjoKLh07=6=RW$ z>lR7&#gC$fVlgF>jtznD8oV4$AJI+RY8qsHt_y5*<&$!)Lrb^hsXPn3CdJ3;1q&($ zIGNVEa)P;2v|$;vX-mSeX&6KwVFTgXCm_yJih7U0;--gE?8-YRA~N?`R!Oi*`=~O# z={x%QyCcHe)6xN*(yeBw#IKhGzHiLmJeW`Usjb!#G zKbl{u^dHSk2zn2BZ|SllSoUs%exB#Fdo~n+ z`+)D-3_BVOAz*tCJD+>o(=4(6;pzhXjH5#y&V3=M4}y6>W3Po*hRvv$P~c~Fh@D~j z^D@>_`OnFQYEa?f?+|ttAYl*QW(J67K14O~$Ik&7U#G#IUD+398tssl1&VQ+9nyQe z>((p;IKhU$3kDYxEupMqMh-_$BxW{soU8@|J;GfI79L-9U2~A0$~O2ZZqnBcV>WbI z(3tmHS&2M=5^R7vFt`#^+Cks#`8KRG>RAQ1ZSxj9n8@ZOM~kqf)hh$jArStnMr6?p zP9Q=(kp<~s!^=e^QShRjZBH)6o`~J@U z?j5ivmOfoy??TCnO)QvvYN4Z@#1}o%kmN*7p>H;4LmcI|Qbz{11fEzV2=zZI=-MxR zhg5%i?@d-jTT#T{K0?5NO#IVT6&}NpIHUUq$2B#TXkXTW+=%$}`cDC0Y(AZvSN3pC z&Yz1^x@Et!uZ&zht}_L9kI%ngt?r&o5OihMTHI@L1YV#oW9HxIXT?S8M|(>YgPzXU zEd0Ae-neEzsnPq9zM8ZH*0pTBRrf*aQ>{UXPUAmPFWBh;zt`6koo7JKT@7Cz{qzUc z<6|7V<`K_y(rKlr_5QB3oKzndpU4P#{q^k)J^Q3(IwT~=#L4?ykQUo%7f{dsBR9Ny z2mZhwe?9Y4-{3FshmU8IBlBOqng4tnspI?F+U>YAnG1r=@l6Gj{&+wf}Ac&_luu0Yc6!?5_;2O4&CVu=x zP9~SGx+b$3*ac9n1+YQl@#`$Nro1aUGfWD5g*m0 zr&Jvh&C|^8+pNK7&3GKZ?Dx?yX|k{-upkHMB0_P_6)4a2j*KmI=sgVt$u$hQZJMP@Zch?)0mAvl`cJU6p)sD`b(m8!}GdK6iK*gU9Qyx22Q5u ze3}e5$=|_-?59Z2KHWJwH9gfT-H@rTSc~7#{b#Nan@FxiuW)<+v*l0DPrUSA zm8h}WM&;~ZN>O%d_ntYkN~-BngU>FTol$qcj=IXZjC9cu4WF1U>ps>j<=``Uk@ zzN6vmV7BF8=j%wIez#WU7`XM#)Qp#Z%ZcDC;3Z`5glB(E1Sj~qh0dcF*b|C{p@l%5 zOw07fKF<2BYu%T}_UU<*Efq?=qsdek-ZSh2n|W@;5n~791p5F4Nd{-4t}hSpOvh1Y z0xZii!3?|}fz`iw(G5x0zt_>y#*%**lOedrm!1tO20-h8qlU83c5Wv=CPSwE{z^~M z_>;kZ-qIsc*xBuVe=>*9AoF17{S<3{rM*AJ0(qNVt_R?#dO=jm8H%~v zP)aq21e=@e0yu&p*vd}6aT|=lQ!(^`!D3X!s9WXJ5Z-t?cCo+GsPOgA@7ssE$mX_g z=%{y$_wSOygQLN(t7+5$3ys#0cHAwyQl0%r@r`f8G}-TVpl-eL9vlT6J=e*-X%pC0wKr*PluoTpRs>EJYH# z$ppN-=7rWoTV)NAwrRxc)=2(2vUEl`W5iLi534Aw_A|+Wn07eGd%XN|J_m*{@NY&p zMK3%n#$7WDD5}mKY6jDF?K%jOi;v1m)+KzuBV4xwp6Y*aItw5@_~h@irP5x-Il5Iw z_oZAjDa<9w9ul9iK3rJ};4woh#==d;%q0P}g)9R1*}p`03RPqUx_6lO3?@Ak3bdBR zx4$wVE?aqi#W$b4?+!?JV|gTzIVj#~-qi_|P*0EF-x6=0S;;YfG)@S!c-xgjD9`)S z21Y(H=Cvw_xk>{yHiz@!(fw27%A`d0G&&5i_jGz-ZUD#h{k zPO;77!hT7Nb#6L&X=%?G?AY|r=9>@M*2eCK&;Eb)`yMWyHx^j0$oIeH1=(`4@;6&x z6B^Cs`3Vy1peU~pjBKxaEn{+Q}JW)U>HJ8l=^GM^HUyWyVY z79dm9p$wZsK&ILUXl3wCB14^r4N8aeGCnx>f~*A-DydqK)Fulo%^cP~F6I*W?nvh0 z{^mv8>oT2YP<_sNr6QjGBxJqcQo|%SSMp%P4zd*gMOm6Z!9sS^OBNnDWI2ve)5W_+ zUEfY=@&J4hw;Mm1*{EO_qCVQ)={~Uc;ri$nP!_g<0bQzSDI#eiOtPDwwWkJ)bG=&o zQs@kQ3a0jiaAIAa6dny=hOz`xwp6+W{XJ*Q=ZO4S!wcgU?$2 zS!{k47tLWOe25pUq*67+#WRo(+J~3g0n(%WN5_qFfH*mI>u)aBJ)C$Min(oZ=0&$; z(9Fl1^v;~3>KIQGtj>Pg%Rl4oAJDPs+#oc=byxj-Mjk;!LJJ}3GQ=#sy4TVlw`hTp zUebRbEU#oU${fJRoNg`&1F&%&`X6WK?b~tKa1dT zS}Q<&`Dk;A5;Tnc+6xZAY!Ya%x5QIYmv-V7Nd$#Kpw9fW58F4nly37Fu`aB9YAmGcr`n#8NF>?J>mONeS_^)7nefAQ4 z6O^v~sHt|kDZ-W>dw5g{>dDjR2~(EY(Wfn%P=^9-kwHxk2qd zx@#;G5qX3bu9NMw0Pf5X4m8%*s6iYjI+l6HVn&YJ2@)@D{*boPL3wC-=PCWN;jo) z2xocwNc7Y-lK$N5pK_BSH)Cy3d;E$vjcC%&aOkJU;R+w^0$!{j%}`bDHmL&2ldar#d_FGEJTm#}mL><|nyWIJ z`8OmfgdXX)S}d1(anLxzRtjK{TT;)H!*C1HJv=lUjO2o#$sG^z-hT9)AqT~m;U9206?Drw=(&bqPso*i z4Gs|gZXnHmK2yjN2u+l|+9KCJ#C$*FM=$VtP$MIU)~8acMTTH^)#X6n4#5vV!9#=F zhD#;4@3EYVxil47NecZa;z_*{YMM@^ZB?*T8?@2q&XDv z{+0c+!-IR=HmNVxI2##E1y!1XFD$5(SYMFMVgr0;m#Id)LDy4=61RHg_Pd8mWmvz@ zud43#ypgFX*O!wY_@Fy5R?!>!30gLLS~6?s_gBWcTkz`i>8FIzKMwboQ_-PC_v7x| zSA}=w#+I*GhOayi77UELh*Y<>Sg)H*ykMK;7rBzMI?zeIV)~=5b8pK_T9Kb713^g* z9rktq(e11ApYT292`CmG3z)Js$-fXBznGcm>P=)QVE9~PxGyv`LVN%YmA|I=udUP| z>i)8TnU0h(T13EPDcA7pvF{^r%x8cu0AixMwZ1FkR2gf z_e@W-UO(TG+P=l7$$!j$)4byW>EN4Hd%IOTT}KMf{jW>({`~>I+(sttR;dv?f4Ev` zIaTrYJsfDre~GjuaT57jEWK{|S>ritSPwYU4WE9jg`9nDmE9|S_`75Yq_5j^>(PdF zAI0jhF;O-L~5lj4|q^S_VO%<##b{DM? zv!{Qi-L!HW&lb=;zZ_|aGG9hD zGk9lijJ;t#yR4CVFYS-&$u1V*CqCKn!}faBmLSRmPFn{slfaN7{a zp9J=Wdx&XD>%Mtz;aPg^chtd$R}Ter?mrDW+?sl7{M6%b ziC^2`h}6$gs}{AdUk9JCUH{j3e!O@=BaZ^o^lpfJUHS11#!=|nT;SE(4DOfOx!0^u zGt?H=50$}O_K!Yf%MU6j?}w#P{}PrrR3THGHG97?3DV#ZkBb#CRo8tqNY-DNWqBPfJgju&!8^Yc#x2f8%C8;NxPxY zM94tz`lvLq@f(S@ENPNXdSTNijU~%Xh)U}@%A~}a*p3;67|{CC>kafOfi0Whe$yz% zEzCN4GKK8b8I+ORME5_%w9;Q5LHBfsL&RGQw&o$dz)#~k(!=fEtVr9FWtkb zTQZCYlrm(4EKZYy(@c?`PZfj zQ0XXVXGj!su#8+_vXIYqOo)X+fwwlM9eMLQmc3H^V|CEn`8*ze`z=pDh;oPILm?|( zAt?*ad5S3v@iK+c3wMljV@yGBsf~4Gwkp65Nq1lYWnjT@G#s3GE z0kzz@XuczC$&%QXYCBl0`%&vZV>UsvW^y2ApeHGcowzFCkG?ZgY{NCoRoo)|7Dt1@ zf|R_fzg8Zw$k=1SBI@XZS2xV(xrq>tkwR_vOo9N|6KeRQ_l~kZ6aNvG#xmjs^m`xi zOyTi;jJm;<1$pfXGaJFpA65SVV>)`hZZh3IC2U`IjCFavSn(J^Ioj_UitV24Rq8_~ z7En%PF>{c`rD|WgV?|3fBaNx5g2y~gp6g;#5USKuD)a}lBIe`o!pqAvk80=3SBBM{K8Er_3=e7&hg~$pM89V(Mi3A~GFcaH$E$G&uZB}UeDErY&_S1_r zA@QcNVLj#VZ1nI{X-Rf!auQi?3}>XOJ1ix`Ku>QAK)!Fn;i(TT5ca1|(o%S85fTbS zfqK(R9x{Ap3^BO9X|0&pschpkS9mXCq2bHt#E>z6b=IV0T7F#R%NRk?2P^ifvi3C- zs4`Z8=H#`oCrY$L#JvsiJjMQPNNx#}r63A^-wMIYdv2Va`Ul4HyvruxK_;tp7{Ak> zX-Hh<9)#7!;yeYGkc5_x^zBKrGzu#af#R=Pqx9RAn{jTHA$$+V$aG{?Ff4kFksk$6 zvxo+Tt;-kQ!FY22w>g)<`L346;kt;C!fOLCjj$LA6l-VZ%hFqc9|Xo1NDXV69W&sF zU2t9KSa>l3`x@k{b(IWj5wMXKd2oz-k2=hY_pb~Ii!UnOj@;oN+OiG`p5SNwAeO9O z>~NM0R+JD0yz94i z`COpSkqsY$&cofpFk*+~!Z*j0ad=9BNFdvEJ$e|9Pcje<-XL0Ckjd&c7@>oqu!NJA zXVjKJ|GRvZ=u~{}|ERmqt|p+jUGParAoSi_=pnSwJBHAE=vAs9UAlmPNg#BPDn-Ch zrAhCg0@4*kI*3Y>B8VWUh=t+*oHb|GGjrCQc{|@>ueI0S*M0x4(tw8Bt+QB#%pKa2 z@bVE|8O=9v1Rc}JN|XSb=0iE82ASwfHo+4Y3#%X;cj&O6?YBWV9JphgMP&GAU`a2- z=UGZVDQKHhLZ?yTCVAJMC->s>-+w2Hrh|M!ou?=WVgtx%g(Bhb)+|=Xcu?2E1_dzf zq|Pl~>Nh54V6}tfJgy+xsz|U;*YcxwB8~!!LgNC2N!b2^_*G$(jI~$`kqumc^acqd zTL?s$h-37>Bq?*9CDk58V1J<@uw-n#HL?LyI3h-Q9?}#(ooukuaNBc9%n~AWJssENq5S9P?W5x?)MTUIQR4>%j2mzsPsu z0-3$9Hh`d2tbKwNtF<khD}hJ2@2B{8gE}Exc<4 zWva*^dkY|k1H@M7m;gX`Vwo&`8dRAP+K?rMW>@G1X=y43K=Yc5vEafU>|j4RpmXiY zHO~ZwBZmRW^Z`aB&xrJ?q8K1o7yu@wJ}X<60o9b1Z8y>HGk6=n4ofC~m0_|EILOXh zR(hs<@d%3oQs@uZ6s5U|wPOZL7PqJoa=137G(+j+B}@{1%YdyIOqIxFXr7N{%*ngx zw09)DheD+rsi`CBq5jRL(uqv?9K&LIv0>WqT9LmkS~i+E>jOZnX1*ATIYpl#tRE0L zkEH~(QL>G)o?vNv0Ifqq{bD+QeMa-oh6+@1HZi@FgQKpZ*Y!<_74YEc?YE%L{1OMUHV+=jM6`PfR@c1Z*`jWihWKj?@t!)Z|qgbF7j}uagB~$ZaN}ltIka zo9JvP#M+!uwXnrbmN8WyVl}~|x?U#1L~d=)9IH&3UrCa5g?#<06>ED&_`Eutp)_8I z>CC1pR1M0vSwSa8YEi-=cdVG1lCe_*5WCG}vz6hyRS}ki(Q0a;l0TsiX4f0D{G-*F?E{TK8B zDsQYV*^)i2mJh9rVz#ye(!B>{vYERC>5)N(imx09i`vN|9RkYx1UmpZ)}KJnMoCo) zt;CqqndDPenpXnSu~ajw#o&Y>)zR`M5zh?DzZ7+=y4XL-HP_F(eN9?ym)Ti@w7L%M zN=Lq!rN>ArFW4+<9?NTG`IW1)Kp>t`N!R7i6b5O?fC9>V*HqwcyPnC3CXqi|XpfH0 zy)#09Mxk2*GY=E)zq_JQ%7bQK@76AXJWb0gx*#xWZ9(kPI^&Ox_4<|g> zNG5+rnDj|@B61w~lth?!Vqm~cs9s?4>NXcv6nd+Ks z+yTM2l-LB#7P478wv;$~7vH4AQC?Xl!f%dPV@J6fwgDY!X_2Wx+f@%?O!iKHTq40N~#w*ZD00U>l>0=hSoxkYFKP|?Ho6EO* z?9!9V?ui2>2Phw#lf@2!4%pMeV;LoPSaBP}pZSuR?63>9cG8n&H;#Br_g4ZAR*>c` zj2pvY0IfXryogf!BlD!=-m)*P_KceLK)a`D0h*d`HFIAjY=xw~trXDVJzSH@%iS zE96X)%4;;3Pr=1Mx%m8xVUCCxBaS2OrvT#Qb54LvPW10CW5X979bkspQ323Ltj=gV zlN92lQl0skQlZMQ#D|~N4CWze?5d7ZB^f&)Cbd+;aw*-lr;%z!cJ~~5r{m`0cdWT~ zHxIbYj1nSG-NL!k;qg+Zfoqg!p-#&-iwRAfr;Yg>xAP!n$=t~ zj2J}#BWGB$t{F<`qIz@iN*eT)F}eF0ZEhRde1iJ#>O&LNXi85@wkh}W`>!l=*Tj`*T6k&iT{%9oC=9ZyW zlK;vDu@vtv(CX%s9aGW5a_nvwN7W`c7TlN+yX3xgSXV|Lnn@~ME@Q6szOgf#ZNnP- zo@H<*s8-gHvy+^tV}F5N-k70y*rAj$CPR&M*y*SlNRVMsv*Ci!cYzsxY?*11S)C`C z@{qWIjZ{f>3+6r2_qSanSz{IxxQr&FQ1RQE$tK!rp;Uxg<(#SW0cBU6)Hzd`4YPYb zqnZ-kj-+j-v#O_813DI@dmh?kCX&MelSAU(x=OH3Vh5|gq^0n@j#2xljnx8cp_}W{ zUNG=R$q*S0%BveA|KK&$@uF|XTD?In6HVwbFU6P`>><##?$68 zdQFD)cc8=O2o23CpOdYeH<0IzO*Q3hpWn7UGeJD-d>;Q|wDRL{1#NKCKRVxdwyGCP zd{95vNX9x&E|E zW2h_>O6fqRD)E=|1#NHT-+C$4;+_5W!M}aS&`{)W_hT}Wz<;S4;Q5bzf&TxBHBRHo z_CExE&&>Vq9{Aoi_6GS%xj+?Q?#}w@~w?=VF&Pxub>gt$+t07 z|6&6ckJnd!tba89a&Z>$T}5z~=8Fj${*EQ!J6dWx_hin?k9sda5FI$jB0VtnbqCna zkv6G;(vrLCfOD%Q=RvjbuFnHg2{up&g_0iKx$cK^EvzOp;DrX$4&Qf;N>&Pl&*$S) zXAYt9a=qNIp`(F-`x>&oHJ1*7=Qi(29(_C7IuyGd;*I`x#u8dX6Eql?_0zP1+3atYztc`b2_UJ(*JsHRB$rSb3%P}Zg#_E<6$U0x+mh`tJ*B}e0;-V50N>VtyRPk)Zpc%xn>F=JWZb2H$>mX02nn(#NAN9*HN=IFXCF$iYF$iv(6`nLDXhGwV8o67NX^cJp7X1^T7w`4g5S=d%vCIh=^! zLI#=X4|(qVdDaYnB5*jSf$0ABHsk9*P-RBJuUWc$gV}s+ z2>qHGWbpH-NH4lRC~ee^V(sNGCRXN8?is}B4h3mjNM3xEtS!=DM)4}=YvQkOUVgt7 znsN&Kn(wq!+5Y}Xk;lAtcfrDR`}iC8-7*XKU4sB~#)&8;G*ACG@^-u)AMlCV`$n_t3;-%l9xjpnKRBQ}!rt2)j8SFflzW56d!M=f;H zvGaji$d9HwYvEBR8o$VsZswSU2uJ^Ux0hrzOKK0eaYM;erBOgEC&N@)mfe1s6{gkR zqsT2Z_I9f3*qAp+!YnxT3EiP}?bI`Rw$zHa@mP8XRug2&hbO7_(v)d% zTzh2al2vC}(b9yK{7u_&v3;s@2S(i z-Rn(1DQVIkOXL}TSE+Q^miQc?oBvuWs?Hhl^aH{wI*znZIC$ABGP$s}XJTdl0?IC` zd}UzI9yRP%*E_j-@Qa)Sp57pQCNYPBWa-MW3@+8^KTw&fiEKfmVzm^R>ZyEj$G#YH z*_ziya(-(ADY8#yO4aUN{vnsEoh{c+<4{kPtDCDfexwphAz!~xXVu{FELFZ?>8VqH z^j`{v#+BAvuZq>v6rQei`oHUorBrNM?+rU#dzPly{NY*5@5{fGN-Z24LkX0e8tF={ zTchcms&Q1xZ99{BVva1FU;y7QFa!$tzj4q1FV?e#6XE}7+;i@K7#vx##q2?%C`~{Zrz9anDKrTkaY1 z-?`_O|C4)8UL8IeYdrq`5; zf8(AH#l-)MdyZ{${qNlK6ZQWO+;hnPl6wwN=lNf7&tfkBlY4G58l^i#x4f90xjAL@ zc_Y3QwMl3p=NFk{RStHZxL`e)q}0@8Q~!H;@@{$g1^4qSR^biS57@`Eis)!zE;uhM zENoVjTsRCnOo~>6ekA2iJ{gA6_ElmYlD1Ou@kC}&nB?gP% zXST#SG=!_>=y_KVyl(G59r)&3Z~l>Q5gjW5RvLZcAxTl0mRsL~gRnKt))7VWPPU;; z5kZYz6`3kEJ;{F^|@mJ`39c3+uhUVwL@M!`UWbX8c1+mIh=`s`!!eN2I=OI9i zpcmE}`&*O?Q*4KYZK?N;N5a)g;P-5}#A@<%qtno2Fo3@%{ay-ECROu8p3VnB2W?p$SWv%Mr*LA zyjx1m$SwZa((9wzCHl*=)jPF8WjT}2?-AyuQU^B^%p}$D5HZ1L_;|-FC@7W%tbRrb zI-B04W7sl8O-FX6{@C{7;)2Bj`(ky-+2#sDlLeqDTZwE_7pJeO$9hWR;jYI-3Yw|N z&Fd5vBel~puX%-F>E2epJ?7i@6Oi3`JFmpOm+Vdq+>b?yustpFvF6*j-c{miKl+V! zOYzv{A^o$!ai2$K4w8Q_dMr7PS(fpAXEQ}LU*q2Fj5m+IJxh6H@Ja%0oS42ce%yJFC%a*(s~PW_-va;xTKB1#Ok>5avxLc z7gv5dhO2}um|v+YcnyT1;G9Sy*ATk-REeecC@BFUO|D^7i2(<8ltKN8j%7pw95BpJP#~GZtm@jhOWLJ z5d`rQu8`*PvTsQpVC7_Pek4o9%cQz=Kn?u9UC~*E-^jiS=5?m}R1W&V(sl(@{)fykq?}xlPe{s{UvV&jBrMqi#i25>|EloSxoS|1RZZ@HlE z@&VU2-rPIuH*Kly9(1-ox6R36)v+8kPrnQ)XS}x(andV(CQ)x_O|cBHU3>nscfsij zCggH20V5UBms*Kl0mv387-W8;^c$A(c^Z*u=^~m{E6x3}bvJKL?R_%@WI0D4s$0Qu z;a6C(Wpzn&IoB$b9|0R-xwq8|W}JBP81poT%cTXc82Ci9{@cC|vt3v3%;G)XzrLlH zKHPUDD81;WeHLmV{WPd{KRyo8;-&8Xv98aiz~O4J=QaW14~;ygS@8^eb>7Jj|X>m}w~Ee(V` z)M&p9NO8GjNuKF&+}-hB_qizYkhqs}4)y~JK~ z{vUcmZ7r$(uV2urzs+#`cPlIY&lELxq;br>6K0_izNM&dlk+&&S(*qJ(OV%TT$YEo zwa#G_VH;YE6-CxJJH|CqgZz{iD+rtcoowGu+a-q`$!zF`5q0|p3d3iiS1Vd~lre zHi)hMD;=~^kZLdnLH}-brmrNNhUB;|gRXg0!SCe$-C-t0#t!;(3w3w6m&|R_*Rh_A zzKLET3b}%v>ZT2kYy!N#EPHDIgu0eMsQ(6|qzr~tC!r0);t@6{GmLZ_Yr_vTe$I%+ za?!uI91jd^qrDvXuAE7n8P#w=W~C>S8&L=oHCEM9ZTr1qZ8!US8aLjXo?4Q{3F=&_ zb!vd9q0hhK89=*Wta}cuY**_vF@|Ot!Z&++{0E@otr@^Q`ijO5OzG;FR{>(q;`uq^ zqK+1$92aBD5)=W5lCf$qkOfmIg4wPSj4UA1+fi*xE7+Y|FbgQPZ@S?blUrpcl?A-* zdA}-29Dm!>!WBT-2Is*5b!vee7~rq1glo;zv=&&(00I^QxdwT%=CId%FB>e<1u80n z1-6|F3JwBqSm0Z~5ghFjxv&H-A_0y9u?0Dbqj~uNNxl~Zw_1=#t%6rF@Wvcg{1zUa z%&wIS^YVl+{AZg6iLrxo06@LvKq+kk97bTQRu6VJ^GpVXd;{_Y#b3k20<(DDEMVda zh8dBu;?99N-i0#2-u`hZPVXD*3oPQ3M;$ zHEZ-$KTep=DFSYUjRZX_Ozi%Y`HwB>+)jvVL*aNVJueuE@0L7hjWWstn09e5v57Gc zD&o=g+1Q3qQ1hIj>dgriVd0Tq~;FJ7uP+m80Py}0Quu`TE zJQeGmD>0c0+Q+wRgE^4V6b9^#i#P>25SY$PZ5a2?T)6{e=Zp3|0VYVHQoV2as^-L< zmtP-08;gVd<5n$SE1|30mkJ3(F21*HZnB&40b=wfIWjItpLpYWk$Ks~j8JmUovzr6 zHtAW$xY#-_Vt1gTwZ=sL%@e#6VKsg2cF?H;=ABT$cT)Sw_M1+lYF~tJlJDCUAA~<( zXRifGlh^q-42Rc86?0ZwvyY<~1guIgikp3cpZ-GNm5Z~2#lPcV&%;c?6H(KQCFLg=1JMN5mq1Lts0a|vG#$~v+3d01+SS)Umj?f zg%|yPs6LTW;`^=i6*;RWiO|7b_R$YX{(PsecU4dB+I}$5JS4mS#n!g7F6h=v^%M5T z{(QJ!?&<||A}&aUtArxr)DJbLdZKr^LjFshWn1a*%VgZCVZ6f zXo(c?Go>&Cis;}uuuyU(S1^*z!v>X9%`<3UBO-UiCr7$qTh*1qZ4VZx(j~|sSKS?@ zz(S>Gg6uL8`#6Heh=MTEQF~t5Bowp+(jtIr3AJ(W*lT`l@M=$xz z>W46k2pC`v?>uL=eTpt9hIvMc@8Ig3>T88o#B^(`8OpVMLwT=BZ{rIP^GO1;E68*z zK^W6;wbYZqjLl$f!THy_8Rvyn2+FfAX(uk3ydJ4S6LWk8K!z+bdL4YaVcsl6dE~Gr zX@j8O{_=;ejh>HY(u{k~3fI zKj`a8L&77^UkVLbI{~rGv|2phEeb3)?sxRv;M@mFpg=H83I~+eMxTubRTemgwig5; z++Elz3>4eYVjVn`sKg9gepyB(1SslmyyDp$aNS)tiWNjjERZ;=M>u|tt0J32K zfGJD>4&J>Gg!d*n*!jBJgOzI2T-chQfz!{DQ>9!Jk9z9PwZMrJ^^Caaz0;B_Q%nkd ze?rd`KdL`_$s5#r+Wtx(OufaUlCSt4uPi+$6ZKABmLpBK!fkd3R!ZpR*OLGWDB9%O zaUru2Ej3brj(6rMBB%}l*IvUD^cxN*1S)lrC4Gk>ZO69K;y3h_XYrzdU0MF?gVJAJbFok~K4F4%(g2huEJ&CAX6XmlA zgPbvC{V(v4j2j%(Ieof1n%9> zL>9u3ky+iIi8`){N|BCAc1aHUx$T9W)ED@jNug??er+7c?Nay(%@M{e>$>T1zvmXn zXiD8K2*g?_GD4Po5yGtof|raYcQFl3j0@-w3eAoWYGsSR)AMU)=%3Qfzlk0GUX|m< zsr-3w_@-t>F=%8}mW=W9OH8&kpr9<(r|i?qBIIWmL#|S@*CQ5cpNC46JtJ@wAT~k-^W2X>EmJhcs<=KWvdOcv8L6V z6?J3BBKN~%h$-y%8|wT^jK|LQ)N0mCos9!5{U;A+^R+$hTs6j&B>pK7|E{tAWMaP# zqtAs%wHR|84P;22n2aggwU~GqRo*2|jo)&vQqin#3|{#(ru&`v!QLENKSjkfPlBSWjs!DfR@y~N~E<%0$8eb+anTQejB0KVX zz`xV@%}!R0`9aH1g~II`jZY*aOeQzKM#PodW9DAZP7?)1y>eH*+);vh`ZC5w0|h2nj$?4+ZMb56soYSL|`y zcM+*O+iHPd;t1j?p2#ljLG*lYJXymEVx+i&nvbB(2yFhzX(f!n8@JBBGG|2jrKJ6` z!7LK=Z|}ZQPXcF1w%g|_k%&e~3;9WR6=XMJA0byn-QBA~pam@Q{Q-4GCix_1YBE+! zUi2a7LGfSaLRux#7z``{t&H~?%<9+7F1rrgxu+(U*1-CV-{eMiRE%$GuJlMuX0+16 zTFu^z{7~sbPTUf$19{+{dv~l?8=HBAm!A~NKKuBdv&+*&4Ym*KitfVsNz{s1ANr$ zBzv`8#t{d}$BF6gQd4)4-^a%5Fj=qX%E*a+GjHHZQ@1r(xI)d2-L*)5PJ=muDV>RV zGBwFNJ3!@lC+Z*F6T^D-0kGwYEf8IEgp)v;Dj#pH zUdT9-Y^w|IBdH!MEz18UWqe^Rc69;z9{w0A>?bzcXH$g$hR+ilMh4s zNozqblf|-*X)K*26sLDs-mRpWPEVrXQ1F z6O@-`4gOT0vB=g))A+?y|LaLa{|RGKi+blTwq_Ajj-n~}dg>uTdd1By4WyLR{7SNl z`HOsO%SwpDzh%(UO8?_P5Uc6{bC9^riV=7J2DQ8V%&PaDw!4vJe5-Zwj{ijdFWDYzAIjk$OLEaUTaEtZOVsQaE%CQeW`F3vU=X+HXVB0b>F+=K+kZgc*t-eTeueJr<7w~aTOINK@x8TC zOF}Bg1X20x0zZ)7pRG=L%z02XHU2^ps&)iV>w_lj?w{#Ci0^xv7JP+o9GVIQbH64~A*K7!Jk^nf=MuvTV(Z&}*GoBU+-3zjU;e{AZwCJ=aqj+j8uhpA zF)%GhTo047keKUPe_8889SQ}j_sqF)5_iuODpwsAC~KCFQDFL_H@@+p$sRO z3bgflreCh+IxA&b>!Tl{w-y)s7csA8C%Rt?vbR&G@*9oN30w7KxoIWQ(pzBn^$4jR zaAUf>T*)HR2Sjak^rog(Ul<3fq!#mSDutTmU%(3Ssa6v8g#SajyOyI+N~sA?<;`qf zXpR6=Ys}``wFbM1D;Zb)aUcmP<791xzL&KQl!nhCA-VVnLK-T(pI=}7X+yjF&gNLY zYC+(8mv>C1Fx5Til(c}Hn)2pQEor`#QVnBgCRH*`mP#_9Ra1wIlHd8YoLl)Q^pzAQ z4F0yRf|PdBxR}nf0#r}WgHQo>?vRk_@S+n2XYsz`RK3&1#Aq~RS?;!SR*m~E1xNpz za=ikL(&+Cl66bghx2-(xhs?&ltN`d?fEL$oY!QCaw_=t75-bee?$6Z%1yB zDw*q`)A_EN_&w~h$2bX3h4eS3$|Tda0XfY|8?N9ww6Ro6wN1%i%X8d)7Hxxx~aj18mtbX%Wf$WODi7PCN`^{MFC6p zH(#v?%xK8X2~epH_|UAVb;d5eyE8=HJ!896;jyOHjN?xWU4%$$N37c2WslVQW43

r zZGX)@XTId0ZSm-!=P)Su%rTy0CR1h7hI^LSH?a?c=c@`oQPALhaS0wyq6_&n>Q;Qc z3J=Yr-{q8NI{2zSZrUD2+m^FFns=tFJ}iq2ET8%UeM-cK4X$h?{8fMk#51GCHd`;z zenS(*W^_X}%oJ$x$#R)KnYtex01l@2G8StJ`;bP!M(Hefi$ zBdaNWsAp0m`Tl%9iF=r>|GSKm*}~YywcRa-I>L>D<|{}Zd)3#)3px98Ca}8VufXkp zoTK0PSE===mr^9U_>RkWvGXZ@sI~YsJRz#r%O58bxu+;6n>y8aY7XNgsqb5hBg!Fr z$iH86&n}~>bkmeON?gElg80xjFg**b(CKLS1nPmL!?=>rqkwTsU7&F*Fqm$CkU}9h zmo<6J_NLZ5AQ=SD5d|{}Y~fU|w-7$nG4-iBqfmc+myc=yWp^@5Nh*1s`F$FrL2_<>Ph^TEVkNcTg_J3ESw_|3)k=)*5yj&TVMy3$Q|5OqHb!a1~ zN|u}Jb|NEI2T{aky(`Bje0!t@!CpH{H9hjk;IA+Vd=Mj(u-&)yC-W+qAh*Lu@19Oi zw}$~d(t^t&%k&1k;9{F(mVKnpglYxv;)CbjIc@0_WqE*wg2*YZk&3PiSCWJnGZ|P) zmwvG}_N|{*g3R(569TQs)ibQ-y=WBWI#_V?)MKX}{on(Pnu#Guh`*fO#AkOnJj$E& z3T|N{Gy{Zq@*B-uR!!rRbBhAtG#_h^z}C1aXJ9a$pwy@SML`wh-}m(@e^9Iz zid8&v1xx&kZ#ToZS4nt?CN0P}=R|;NI_>IS#n?z@9p^nUzse=h$&{NX_`IgzxW{TP z{ScWXB;m^N3T~8L+*+l($Vn}hq;;>@`l*7EdPDydc?*YSK|O)-%Id&a%)Gg^rt>l4 zrkKM6UCGwK{HE}~ED@RI^{aAuu7)>FI}|Qks@AOP-&WYo(>-cc#N@Y3u}`@Cy|jz# zd)1WR>EAj4OtA##OWpRYOZvdPT(V?T<$JK_=$Pv8ruci?)9`?%wn~ayM^cZi{bqQF zeI-_R#Jm0KYBb4H-!9V>^n6{Psk8EQ%=xjD05u3esyH|um=^Rcb{>bfKDznkntOi# z{rIkg>fGKGp?4A?75Ua^o#5cczxRxF#CR;ryt?4|W$N@5{rYN}x^=<}bfHw70a;=Q zmX!Gy_k^sw!1@Yi;RU&d79V=^gJQ`B39rA_?!(hOc`gcib?GAcEIwe=Qo+b8cc$PT z54RiY4D9?1Xt1k4j!}CM#A2sO<~jhR(*}U(gFHPA0U&`Qz!8V~F$`dvE+L z$7B5oqa1N8$YX;viVH}OG=SW2OT^B%kftX@jo$ij=xlw0BQLb4q|C~{u>xb}Ag%L_ zQ;0phH#k^F_*GR76O2X?ETVS#gFvccqFn=52um*-gCw|gLpuJ#)Yk%H>||FAYT zXaQPih7#}WAbt9@tTB2M%!+A`mJ0%Id2f)sRKOMIYU0V$H%Uf{Q1FtQ^lv3JjXB2v zq?I|#^>j&v8ICULONHe324?xK403nns^sbtAi-HotiKIoL{g*oKZOZ63^)`)MWij!AlDTHm#?P!;W`v zMExRPY9|{NZaHMU9+MI7!IJ62CRwfQn8oM2$n}X{w2i+g7>Pe9O9K2El!)&T7rk9B z*ze`{23Ld&v1F32cqV=DtZj?oe%ZH2SIxC%S`+$=qf2`Eo35r1=3yr*%!D3?%{~t% zYf##>r3X*zY>TiQO_pk`u7-U=xyw!(qUI;Xl1Z85TtE~`p}d)2^(JZjaXCpHIP(`H z7H&H?^X$GnCcRYJE!s?a`X(3)x%fu$LU#--3=1f0xP_6pK&fSBP)WoN0$GtTCP}Qq z`jy&Y&z&K#X%_yD-}}#uvxcYTHzJh69w;2t-jjK0!F;4`N@+f%nvi_PL}6VkzRSp= zz5)mue)Hl4JD15#YMqf?xJwV>!ew1aApv@G;--^xnsUPNci^sz;1OJ2qp$@z1TK&k zF>b)W&16?+urd9r&sfaMQFdZ2H@5qRXZ1RiIewSEN1lNK* zH>EGh0H5Q*`Wqn3;7Yp0As3A2nm!JEK*pyD;v%OQOi0wIRj6?{Ne3#8m^2fyg>%#< zfzXpiev>c{)jo7+*C?0;dq$+z6>{X$rOFO5&Q>; z!9X>09<{fcw{T=`lVI^oGBOaefiz>(EX+N)OC=lp&t0)&!!mD|!(B(!hR?>;Cj%_a z*f-VCMbbhX%0DJYF@zq*ztghyzO&$xkZZMc1hLLgYU!|+uV7Xxv)zDBr#XPdxlc1W|{T6OHh zZ$Bp~nAT?O)l!qHOhXCdF>=l{6z0?=uSYfZV29WY*=gMC!$LgL5jFLQwse_R4ef!l zvAXp7ikw6^Wt!YnwF^a?P$vVQsqTF_3V{Gz2gVmZZz$k6)!~KcP_htMrVzDl;4!BV zHuDwubY<8%7$W4z$KM?y6^i3!6B2MYN{Kvljch|2eRDl;b;!%9t-uOH4uv5W2m#%! zT8lakOXn3M_-|jy+z=UNF&AEK}^p>r0e$E#%@|^C_G5?UZIjs-h#97M)1bii? z+ax#J6b@w=K8#AUjA$iAhrY!V($_6BvTkaY>M3)=kG}D@kGhnF z-iRIIFB#$h&C?y33!aAbjvdl1dD4AoCC;RwzPx2Q&$%HKM$071P9v0p*MH1&&ZiKD zR=?_ambl-o5vFZ$%{`xM7u9K*hw0dd(G72)9OZO9tymEZ^j3L}yZntHDQZ^t46k!N z-U|0*tWuy=2Fs_1x2ma~A+)I^BvbTPndkRT(tqp{vzJhyDG3_GNxEq7RzcJ#R?e7E z&PGo{6E2CNGLfQyuw(V#WKJsB=&2(s#IhD6^C#{gx6gRm@b zYZ*7@!4Vz6C(QCfkV2jQXot;TaC2b>yWAkqb$c(OX;sekC)b9+Ab@0nj6~%Mr6^ft z@Oxh@P9U^x7#-wIe(Akm&u^l%fkyHZejF?64rcP-2G>@^SWSq@phne*h`H0>IVpv6 z+77a?(49`BS>~X6Rfwq@Gz3uI=sJ{C+qo#8en9{sbLH5+^BglLi8g8T}&({+mi7 zA(QksN0cN%Hx#7{x#p2ubvh9cE3@I-zr%eb z;20Zm@4_v34Cb5^2wo65{2^YnKNMYt)x=;Qh$~pU+7ioQl1?@lMgDXOAmRA{WC)oo zu(D;YJzsi_&V7Aszy=4|U=7l>xq9^Tkz3cxj`4Bzs)f{{;aXZU-9`^OW1#t=U+d)O z2BT@aV<5ogCcH_VWd<9HBy*Ew?j`A6Ybl=Pke@SXZ)j2zKLV!d{xzd;$1N81GW0&? zUOB%B9DJu;UO%}B@);gdFS~hp9IWo;YJ#{(-_UhPbl?d8-0DRNv>&!T7=aw4l zO+A6+5Q1goM`i}&hHqutOcSKm=o{fVmP`pR_m#4`eKkL=&@o7&A){0aN`|aB9rJ(%7Cgujp|#UpUlO6LhAq-R8NTQ&hlMbYLNb z>n(=F3$(oatyWY~&rrc{q)K@vtHa0zYj2eab#Iz-Wt*3KQIzMo+IkMm4`vXZZifrh zNIzA6%vyuV+Tw!bDyuUPMS%+2G7_6}-3hr0i{FY&e3hmtZoHFGBq+?+Ig_;U(OXq7ubXc8`IpW3=prY^$AeB`%6R z3ooE{iFE5#|1$dU5v-Q4qc-ERoufgNGqu*7vB~N7K;K4L9>-&gsJ1nT(%rQBJ>~pU zyC){+88TZ9ksT_rQM44l(!OsbLinCK7V*EjVsE@364)Q zcibS<-%-A;<0att89Qv3xZh?fnw}w`hSoee1nHybBdAZ(O~g`zm{9jVn+gjcmXSN< z?Y&L>rY~bVQ6t9pd^uoQ)R0EZS$1s(<9#zIVj0MlV4J-Ks?F#^-}_wlg{0(Z|I3-5 zSQ>~=)w_kGRXFSA!V&2C7ZNt&TF5TAu)p{FJzJIP**F!}2U61mZ&o7i2r<1B@HSdY z%=}#QrazYtT0R5pxCc*cS~a%qU+yOpxx!vJ_h-ywsrc@_(D|c%K{>J@&>fL!l{|y; zKS9iis3*t&@|Ai=e1pb?A3hxHip|%pdb(x`cp2MF#wvMu^piX>awL1*l!-hgh9qXUZf-y`H%u{}ExOP;L3sh70xt`zQyxi#@Z$_`_4l#;gZ5x^=TwpJ9|4i>` z_q2El)?HRG$)vwbndYIO8Cgu<{PQL)Ed>}mo2`>0VgF!npu{3|mOWNw$!J(6x9Xwc zQ^9sxnclb3+he&+?qAgP$0={&-J;#K zqH~};wE-G$==3g2R7pgipClbKQ^2pt{w-`X<%xL^mKTb+uYR~QFXa^`U3yxXiz$&{ z;t?{sTIy8hAdd`!->_6Sx4?zl!XJzoPrQ7AF{8rHZSS9j697yMo7r}U(HL=M)5^R9 zZN0r{o$M8=AUIeYyYY%IR$VCLj1g83i}yDMNlSkU6i*bZ6h`sAwA`<#JM@a#kS-1#yUP;YgMsZ91nJw-yyNs5C3QqOll|2q%{vMd%kknWVZ>e zD3y|_u&Q=s@T~xAH@`}Bm2p6wSJ^-U`L_uhc$G@8M63bwD_C;hD{%L-pRTO7*#id< z&ypU`1}$#WO>w|Re82ot>6H~~wt3j}uD9Z(g7Z&b&7u1dabG=O-DuV6JsKNFz7)Dh zyzxO-BkV}VYUYNWkC_v78X{Ap;+C)#AISL2Nz+F7J%#CsW-n!cvE1#LHI49RW=?y? z-Y@lHU-O-;XBNiTw*PYO*N@dff-spz%~HnswQ+e!Ghv58VerGdB|ATFR~+coZEK?r zh3+rl-Ny&?e`>k`d$JWHQqUY^Nyf{6Ki3w1kSI9Lh(%D{7u9}Kf&MsiOci|NhlJls zb)62zKqTzLEh)37pLm&O4Imd|<=O%ZbI2DxY*6QV*3X`DG}+B8r*>-S$}vl*=hlE) z$xgP||HVCjzLM|%68CcZoAR^37u#o->Mt5U10Lpu`6r(fis(3a+UgR5f|!a*kTwp^ z?q0ruAraAW_(b1mx13bnqO$s?wywVC!(&rrT?-tGYrC6u&Z_>;`h>GTzn|&eah9c2ehA36`Ox&DoPb}hrW2UClK|sFYVq( zm2PcAL;xu*zj194pO)PFEHz_~2Rv46euF9pkN!+p+~DoWqua{s;HG z5H>tQ&nU3eOB|tb*Oc zR8B>|7(6J&RAk(DAmuoEvh$+sMm&uK2aO_Qmub3A`@^QOr9nGZ%Q2Sig5^N-t**as zS--xw(IcUijEP)ggnRLHf7_w<2zu%J3OF$yRUB@X;_;>_wqJpHtiK#;rmk{s7zMoA zZHiO>{p0xWzyqoK8hagt6)=*W#={DW~Vdpy^13kSi5wQVd}rUoPFSl)FC3$rGSNzAGRe zGJtKlUQ6%~8i8U9q08Ca&|b|X_UA!5f_$z)mP~^B@KI)a6$Uhvy&kIxm0LY0kh7)V z)yYA&t?tGtQb^+o!L=JWvb+`h5oiPr5Kkr-g&8UhFWwlk9XAiblZIr%;6j8CVZ+e4 z=YvE1QULd%;2Rvlf`o*y6Q5eCk``Q+fE@-Mc^_FfoSjI#9#eMC*r=i}`fM;o&Ss2G zDX{!w2qNW5?)*f@>w1bWl+iU1uX}(&qe)Z#T{4robKr)m^-8iDAAQ8%<5kQ<@(JX< zF{YaYibbp}62`Rd#iUvU0 zJLud<<+8KHNzDqgfcXd%9!T2nMMpkocNBg7Ob?=37N{dU>RcLmujQ5Jm+HpFkVicE z$`CVlh;u#mZGqEsaA``F$wm>Sm=e2)-Ym5~Fpok#Is<532@6AT<7NQnGwF?r!Cw^!=p2*lrwCR4+_*Zp(lvq#RHXDLDvb#-r#(o4+m z8qtKZx6*4@xDHX2ORj1@Mf(pXkbkahLGN^y%?|OtbNPqf?aaAD-WLy|@YRDb$Dq(| zXiX5I8h=eV`>^*I%oYyfq;zT{w0>jBy%bdiwDqCxG8q7S!FF+o6af)KzC=Xk&SaR- zG}Qx!txzuu*?qw(Rpn$6dvFem3UiW%c@hLB0rj`R<^35elopeaZ4U#9VTQJ>n04s? z06m3}z$v9g9F%SAmSDU)`M2&H%vd5cW1gR>IuZ{V5vNeKd`~We#j(Dohs?=v%pDa9 zspe3SM5yI{9_tWWV|RO?)xQKj69QVk_9tBBlKp^zqivdCD(nLT& zdhZ}jRJwqGNKve8p8f7K_IbxCpU+ue*7^Z+%sJOxuG`D+aS%P8=q{1AESSkC%bS%M zCHj|USKXpy;!dM%3Drcj!^Yl3#ki1U(*x=|)1_Q*(9F-mE0IoO`vvhPa#BpX#_Fp3 z(}YsF^84()&{m*`eCEK@%)JMy5a%CKWvRnlKTRv=>z`1f{xr}_NJ-A7rpks8 zoi$k^eV%k+#YvqtXhtnI_0Q&s#k*XH84TF-6B)cz^e)&m3jHTwP$VSbu*_1a^BYTb1>Ogt+N?ZHaq^9YPc z*?FAUxmvN$$WOV!7*4}c$Ej%?$FR}i++t~$*v*&k2iXnYY)WY&WSrPm57q+uErg{L z_&+xY^^2DUyb{5`IoOt_>7inEwFzrQ$0No?pA-eBSE_if580R)xGM-%$tcPQn3KAM z7d}CBx^WW^vY}X*)@IE#kO`AJaA(ko;Y8JBU-a-rkwXv^o7nbCZ!J*%(NzvfZkJL1 z0U7Z*{~uDSvVPRD_5yHM`0au3wI?2o>IH_l>W~IWVU^pgaE{UkE0-V|bF}dpOYbAa zFljMHejD+B7Svj*)!*q{$(WJ27YZ@a0|WH!??F{{3vZ%bQx29s4}5FPS@Re39e*)9 z7?xHp5q(^Tey;_`W|{ml4ee6-^in}qAl=>bCbt)3>`feVR=p!#mdv=B-9^uvV}f9` zm}@zA)Ew1Ea1=EHN_F?b>Do~sel=bzAhfj0I3Sp?MQ?Z#;KA;DmD6SEr4jd{XNBNf?S`N8(u{dC_jtlo4B`ULGp^}G(6XeNzlqhOfd2)5vLL7MBm9#2z{a)NEFXHf4<-^Oobkb$WPf>x?ZYG&uGoQjk zrA)KDbw=`Xx|w)O9sa#>|8f-GBxaZNEK2nKZ8(rAUA@LwD8UoHd5==rfK)BDs~rw1 z?YrNloIdkMPw(zdq}9J~jkhaqsBCAo>1%?VyxzF~YKTU#H z%*LGZ@6V1IHaY<6#SlNdNQV`OY^!WBBtLU1he!J3lZOj$-)7V&-~O|HoodyY{_l_K zo7{<`j^`88mPBsNAM-uN2F9f`YxKN#>OUQ8&Yh_9I72Y+4VnK)lcWhlCXs~1`KMgR zJV!;v79%hds17jsolvVY86GaZO&gb+z}+$PY#B#B2y_(saLHSNf%L8kcdW@D7tk0Q z(QIJoX7#D}G4#Jk^5byzKWi{X7llZ>&|?gP*gE55t-bXkJ}`pGXq|Zl?z=^6^2&P7 zVx2YEMRb*Di=^CEws8z~;mBVPO*Kk6AEyys=V)K&!Y{+7bzoBD+$-xm*?HBOgG|A< zm^aq>SWC*fQ&|A62+j@O<`sn42EUB!Rfn<2#kzpe23OTbL5B@N#$juxPeQ?^@^_|~ zk4r?<=v{G|njH*Fp{`=S6SnhUa6UZm=LEZ@L2w}P8{i!U1<%KoHg{9PVbIiWFgp-L(?jkJfTFNeiEi8^2W>c=tUb+_q_7_$R(nSNKdN*7k?mO$mz znfv%gJiN?KqFc7t-G;&doF8LyA|PghrBDLs_+kyHaAe_|Z!uGH?X=AEZuCW1vPi6M zu(`ez(4a0^-gVQ-ve${zNW%SG+KT@P>E(P9*9!SA^EP663MT9iQIkfmZxJ{Z?NFwC9&+ z*Ob@AbYqSy_549zfv~>AxOGtu%(rDOT;xVj44D0~N1)bcn`w7bwUX7V4h@vekDt8| z%q?@fer4u~UH6nbkuR3sSy0F&4H^QWnTsKMpC8_%6iwc!p?5jW!nS^@`;sRtHjZ z5ly8_qwJL4!RDzFNK}`iqWB6q2ZVnL)$T`?=#jeU*cri!86tTWM)NSR8&VjD^Q2DL zHK9Nzg$o?S7VX+HIchtm-nVgxqd; zuEHLj1utQ*jwNUFYWfZ5SveDV?miE z_x*?OpJ_g|&WB8k#V1j5y3D|d-A>k;%>J%m(9N9GxE!Q81r3w<<0M%4Nd0%;oGn_m zGQddXezP#~@?kve`K;!&o%pNZYHXnQYrLO)>#AJGbM-rz*3vIp?)<#oH^quFPxE^8 zA?s?9e(ft?xUnArEj_IPF(%Fw5AgkA|N6pQtXW-sE;ywCD!t7&rqJzoUeqdED`)vI%5l(9yeK9#{)k9_- z-{>@US*9>CJ)br^|7D)D4$ncEX9DL)+%;a_V3SI2dPLK2mm9wff~;{4C_z~oYN{ix zJ>1a@$O&q90O7kYgl20^fi`MGRE68L;GTKbns+$O1c~$La1wW)S#L7kbtP<0N}09& z16x`qHs`TPX2p%CnHF2#M&*Z7k`5Oh`5SBl$~^XUV!9mS(3c&YLli9NF8Ufs*2 zem%*!fDdw9+ zCU7SPz$wjO9HdVu@|~a6x$v_)WA_Y{UMaz6feAs8v2WY8YtkCbOoKSD_1p%QWfcRv z#W0ffLE+4r4_(rRNO|GlnET*CH=!O8JYlKhVse_6b_57j{Z@RRa=mPm54-?cE(UL7&6 z>{bQO2XOjh!t824%dt@|l9uWqF`vRp=>4&A61AoD*~VX2@~QoxZNR(^85 zGPy#_&x#~hLTF?KDi4l$mz*k7S9VspN8D*{lo!AbK6jM+=9)vvN``sTj+i(ma>7TZ zrjw%ulcFJGIW%MY6sL^n-kd@}XVRJU=_zk?EQ5)~Pm{30iFZ|41ki=goqu7_hkJtC z#=UCBI%8BI2f~oMtjP#?q;c-}kVHMI3F!%Q&iEq2T<2Wy+`=1l+0h8x|M}|MUYPTj zw29s~X7qq86l>YOHGf$pNH+LtR} zcg6~LuCK(RT}hM)8!;O4FxwoCrz%^5=;Sd;n7Oe~I4T`Ct7!?INt$}}7_9P7VxfV-)qx`VG7_7-z_1??_}FXP zggJ)$%{LBrNjCpGiL8c|2iKm50>E2e<6kZ32KZD5T4(mBK)!12wseCzcJ=P|kbRRO zXwgyv$o6aK8tmH0X}1DzQxkR%rS9@2R{O@8Xw{tm;Gt=SfX{w0e=U*!x(Lv!>}Gjh zVbrx0F93E7V=&$g=qcu(c=0_xadU54Ny~*a8NQf?*Q730b#vjKIJfqOr~&eFvR?ZS z9j=#JU8f^hah669s<;iI-Ai?zvb9u(HLKPy^y2{HUp~f@H%00ynrpJm|Kg6B6%04L zcFk{&(>sSoaJuW{qXs_JthIdcJVF1wPoC*Ir8B`i<&r|+cXN{ya^B(A%{R=H-yu_9 zq>&F>e)}*#Tx;oDP!%m&m*-V%V{HvNR&Pk>#ZbH!Z8453x}Nv@e)4Ba_o@Bm-(9kL zgFUzIG^s|mGbde>dN(qto7BHz#VLb1VzH3|#puk9d?P<+WilAfbuZ$6l7)JsBtw#7 zqA~WRj|^0hVBj9|^Sb9pP5~*iJGFA)AI};iYdk%&7F1=5Ewkw2zT1VV1l^uCArbGh zCpkz<@-C~WI3|2LQ(;L=u1C2|p4esU48P8a6u5PJ=(;TDYAcf<(C-y`m>mSRGRY*7 z-DA31M2XzCEIU$H5Tu{O5AR&_(at_g{KMt4WhQ^H&=M^VLQ>`I6?7xOz1LnQ9 zi0^&)KkU65dY+g;9c(ouoQ{P2ZNT!y{;tnsh+e1*ew<0ZL@ZL-CZ$lBcjH6iQzNur zZ<+q!o&D$-7=3~yRD`trLCzwL?fl!C=e5X6MoigKbCv2h3!Wc&-kmxwp~^T`4?Idc zxI2{#`{v3%bp!YUbM%`#j-(uifYaI)4o+hXr@7M`>xU;J?|(2F)_d|ghH-3q%eXNz z_3O*YZ@0#1?_K|v^8C|Mw83W2NG>}pQK4dD)GDIWgkgsYjPp-tp!W6Qu!NUpkAn6( z%|!m#850KOjCCt z({irMJE)$9u6)%sIJxj~=ji)C3VJp^k;S8lkK(qsz3$$B@*nQ`>D_zQ!mnO@`uz3B zB_+E#{EgH=ZkU^A4SB8OF9~@+q`ym#F*6g$t@U`e4acMY7|db0W#G>#;u|eLLmJ5t zb1wCN5L|vOPWsMdbLE#EV<+V>6+sTGUGq}iq-53HtF8=JZe>oB78L*db8F%6>Aw#4 zZIX~?g%zH9ZaS`FW^(@Q@+D^Zj zGHQmMX!Xa@Zr3)mA@o4rmF+TuK~XO9l>bEZ!UvZMD^o`&OAy9&^#lcjbq)4SF~Wg+i|J{ZXBAPG%jZ7vC> z@fWv9VwEwdCxA?!C5Zkt8(u>zF+hPxwjWzfH?9*@dZNk6SVHw~6gN(`&xSXbk|EfI zv?NY%kx0=@5-3foAuAY=`j6mpxsmF{O)Xfv2H=n&P6p((!Isr>uJ)91oWGwC>3j~U6L9@Hu7bHzp*(m8lqyZ zNu<>w&Kut0GYm_2xeYI|nH%r#8&^x%1~AY~`jgpEN_!)EKt8pD{pMKOCP8*;OO=#6_6s!HJynC^UxG91ICG&5 zx*mTF^i0~hOkpUACRa}y+1W_X!&ic=YpHH8p2n!`hevY9D_WUksQA^sZg~!>iwfTN zYZwxKn5CHO7GHT6QlN9A!F?tA(0=|_%u(alLDjq4NJ}vmzoyZu$_C7STwudW-OIrI z6$fbbYs2cP?1p#?YLVV4QRKIZvz?BRDav$1)Q#EiWJ-gMM&d8BgtZP)ZJ%yEDp`0C zUzw|+a4LF#(SG)C$fqZiT|5~<_VwFc5*r3&R1pY2eu}#Vqwt!AVDpfwLY%Mo9Q?-^ z!$K=RxbM~QWqR?89a*g>f2#3bZy)_=(!7qEQCvqJl1q^xgjJr%+gz8keq`5;ol~bd z?0NFIr<=?ih36#Sxn~5Q(fS_N0vvR=X=~!9V0)q3*Eto%2VO@SWwJA64m;!xTX+Y4 z$N%h30NrdS=T9Brp+Aq&@j4mr>T-o#MUAif$YeYboTgOdCej-Y13+KHN)>ZGHNJ55 z{B14mI!mJuv?|-!&}!9{x@W;?gLKiH)DpP;Qv%9}*7A6)MXfMHu%nhc5S|%mS}N zq^KFBE<<1)s8Hd*@C0|kU^AGPydIN8H^VPWyRIYc=NiY9_LLifLX0iUuLo*#GQpmx zw=o=VBe!#qnE=RfQ@$Ii!ipqqio0dr0V8$W4H>~kur{WS=qB1|gK7H~j$Ec~sKK4z ziQnW(Ubs=s6@86<@x(Q#*Iem{v7eDc?Y!;AzmAJW4fxJhsIt2 zw!^>#Z=Gd*r8jXKB|TWK?MNKMYip~ZJKuJ-g;XrlHzWfiwFg+FXIp#9uSL!Ety(#> zD`#Jg4jdziCLZBXdvo&0bH6TCWECGr>M$m(W5!*(7ZLB9OOyO(F zyu@TGwY7z>@@1yYaNO;zRJ$f8G+FpA!s%B$rRDF!j2a4MNDhq9K;M5qgxei}=8>loY9g{jXztj1(v-%}N0U$daaZt?xb zGK8ba1h93P;A)%{je?2{1I(3!1bnG{55%d|bN@p)@I!t#kT18JQ*3RCNeK()L(jKy z&+#0l#!?kZ-bmYOFY*Zpdv!^UQihOcFUGIyipnKi^S9y_@v@jL{4{8qgXVkzfLpuN+g2dza3Ah{kn+veDkY;Yf37x`%$Iy%6-DHP>8tZ#IjBq#4?I z%y)jwO%Hfq{1_l-90z0K4as78KF$^i=wRAi$8t+-3JS8`VxYK|oc25GEZbLUNAw1C zqsiTo83z$kvVBsd=3{hQAmd+yueeFJ9h zopV2qV=N`ybK(f_<}*9sU9qa)K1Rb z`(te%9woePBiA@ivKZ0>>xcJ#u(u#6uC5;$IHGSNzL|yA-=UTlKbWkA-MhZJnf07! zfRgE?NRF|L+0=LN#^M|OIV&3d&%Fz2X}jX6f#&%b$&OU?^EV6#8=4QC!kaqJ&Bdvn zS$JvBC5DO^q#74S6+RT=e>kA(&Hj-`kBl9KzRA*5$>x8F&Ao=y-0ADe`m#cnQdNaG$Z2=0KH4MJPHb!*4gKI*Hg|Jj&e#L>d? z6eRlM-}QwwPOFstYPsqZFV&lLBBr-HU~({lT#DcGP@s%O#kn>^bJlTW-Zs zDCz|Jr^iY%U+ogV!=t}L$ez0;Q3p2g2CFmHcP##HqGpFt<^m{!>!7;=YSpr|-Q7^g zH5RNiQ?nXvDw;7D%O-f$j6us3sQ#g`iGHb@`Vv4p_3&kXdjl`OCZjnJ2+KPTOhovk z{MZGA?sZ)ZXSP;@HKDb4X0j0s^y$k0it%2-5v^e9oQrC(U?@$<9@bbCmr?>ag|Pj= zq#QMA4FS64Xvi*9bB^HnA4+We!>oJH@{LCt<@`Bsk+hFe``7@$;%{jNZuGP9Z?)Bc z!sA*mhqat6fWE`mjiMN$j^l67k~f}G@i62oRWgiXP>Mh4=5c+!evIijx&GGP)t`Wi zeR9S?EL!uL!&w4-;7eYa2Ek*1sv~5|4@a#84qxwP{eqx5Q=<*NHsc5Zw~`O>1KkP$ z+$NpxZsNv5u-e3WYW6{{rWzoM%>Q!cM3fO>@b-`-(zem{m8AU^&US|CU`g$o zv%G$Ont(8GM@oQ1mRYIIag6nV>RkXGhsHg%oC^%SbA9vy93--qOsfPGL*l<<-x}lk zrhN^r3r3&3C-NJ#&z=S z9Qs3=nX(XVC2kG>pSd!}X=3IG^Rx#0gMqR4(#+wVi+;d&#-PbL0HXnjp}(P~27C8U z-QsDZir-6Z?*`V?9=32zTI@@%_k(P3J*`%NGgxbEOqQKXYXqGrWB%43!6Bd{BTIUH z!S(E#Q6B^bgpX-S6W^X)?h>RA00J~o2o8O11`|_Y?Rh;wR>?qH2d`V0Iq5z=S_Zyo zsvTy(ML9LTlTiDHj51;t zD{!Y%;iB?E(29pQ<})VE@!Lah8+j zj+Xw~0bmZSndEA!>S&nE=w`#}o&GU9u4$SX8{`@rJ1cka!hS`@geYqVZh{Wo z4FVlWCy*#<%wz^ou|N9yAxb86#$Ym7X9#0{22gZV!lFZU8IYi4r}W{%%mYlXSwrS` z3?xt+#8|ImcuBe@x@Hj1Y;dYn8+FF;Il95da46K-TwbSAYqY*_XNid~Mj5Gf` z!C#QHgX45snM`Q|!Q1YvX&JG_2NYv}3GYfFK{xBu=X5LE3wzR3)hX*8O3EtRHPxS4xzyu2XuxiX14=k&YHW5K#}b-DPIpdo zAW^oAc5kUH+hzU>oU`NsEwhq#Is+X?-oSQAw23L`VFyitOJV^>UI;obi-U~GBS}{6 zZSK#~(h(~RZC;i##~=jQemd*!9D7`aeoEciRiPA!5@6V$b$|oC@C*4Fstpj1liWA{KY&WvDzIh~xd3x0HYp&7M|@x8`a=$20@xdy(A5zmZ+f z;&N9iBIFCJwe3hc%c+u231PNh)@?^L`Cc6_9pIo#d6i!{mg+{4iN6&S`jFyt6^Sa! zGr5qPkE&vvt5%>z&ksS=;KVR8nm0xigQsy{aRs?bN##|L3WD;=PltL!Sp%(Oqhw)7 zm|*(*H<<;?#e|Ac61T~iZK zvR%7JvQN($xLeQd%Q2*0nx$NMoLOA_uHjsw1KsWsC}MkLcQK;b4^uQf@>glX%4+#H0Ha8{xFN? znj8J?p*e#BtoGRDY}%JcKuN}Jmxo0kple?mxEjgVUT(h0M=GZ>VjwoQ4_|#KK8fcR zMKq~0gJqey46W(1qhF0>LV${*-K>2NaT8lLm-1w_9Y*xwFID`c*+a04msNVRspykZ z-5GI)^YOv2GAK%vw3FN?hNfGv1BAan?z^d;v(?zDZw(}B%r1I8Ali5@te&jCU7Ybl zLP2T51b1DAvkUCQy!__qgQ9b3H|gg~v${*^OoXd?TBhY6V=Vkj8kj( zy9Wn_@ zPkrV86c_%H^JiUaO;ubV)-_OlF^bKuZuA}3AT=6${Y%N4#CkHM@(aRZ!7w~$6I!a? z_DXWiCA*6J`wHft?QN+Ymt^I3BQ$xQbt^Y)A?wSycPOz@@n5#dg#gqvDy6(gA%mw?7Y-1n??Fm>Wgb(4&v7rR0a z>m0hn32<2z9rH^hj%g`V#_la}&eGtc&yHAz%Upuz8<@eYtCHm82A;tV2cMV}(otbf zyE#hO_<=99bLzBf9_5Yr$knI0zAu|MxMyFsF&}kJy55ML+BeWjdMC}NU{JHw~%<#{>G?sO!WDxgxKcOdj767w~vy`i;`|~AIT3+3u233+{GS_ z*-XwgahNsR#^VpXc8~?gtwBB2W{>yJ$?bEs*P4Wm;#v-Ob~0Qy3N((|wpcL@3Ka8) zcoPQPl*ILpUt@;`iDem4*K9UZ&sQhnmP#F*Urdu9XdKN6^L@^~o9I)Ulz!Cmb2BAO ztRKGR1=;$(5cibBC*Wxb2In$c~b7vB+#@g9x4w&shz6P*LP&wEbE>$#wWy&h^UL4 zX?dvz&{FX!p6ODSNZ&ZSHnm{CM4{^yTI1<#^p>)_?t{_i(5J!f4={oh`a5PK=Qx?X zHEP=k_27C|2kG1AxxooD3JIrcr-c;MFS0Q6N7jg^c|3WVoEtPT8s?n=}_B?AEIe~ zkJCtJBTxU>^|R~8y-nUXz{^P(;B{tvA+<9m*J0M_5@5EO<_UuSgDIeRyZ42|RLsfJ zMTj*0vH6}5c-XinTS$;&*Nqq2eVW{TmdW8nJchwt&~wCM z$%}~2`uwV)Up0%rYT2L|5h#u}qK@t18zr~Lt=t&WJrv*XS5vvKi2l}#Cm-d5-)Stb zu3snj{M~V%b@$KBVyIomVL=z&y;Oo|oB316OBm=|H;t5cv7`owdhz%0^}Rh7rMaQE-_WvnBSX;(wRTot|{z4E`fXD)Ho|ATuTd;gw&jY~q!#L54Pd#>piUp@Fk!y|dc zJ>Pkh^#95|v)H9Peff6k)7SsaJrhwS{~zI=+5d03=ey*<|AjrH01|+!2TmphB3!-s zSlR#o>pfFkqH_ZcBsf!s%YsMzRZ>#^8}^*^QmOhs*z*xWUH+=9s5R2;<@>KIV*kOO zFR?h+06f7kIwmeKB0eeE$VD$LCDYX-EB6U8uh2ds@$Qx9QD#zFUQt<9T~k}9_u^$^ zQ*cJ}>qfuUHyxdh4aVJFefVEwAX>)6P zr<}}nL;K6;*2AXbqtmnh!k()Oe*e1!kWq0Pm=sG#jU!=B22>pX!JcKtg=d`K#|BStciH?Oeg**qzBUPqOi$fh0fc!iMtNbi#yH!hQv?o(xH-*lKM zF+d18k2dd3lfqL6tiI1yzN@xlGMyNGRlWGo@do~nQA^EollNSe^H@vm|HPh)j9>pZ z?D>$F)}*z5y^qKwervo{+7^~9U|ej{*0?>EE9>`hyshc;6iGXQ*R;KPZ?58I^{t8a zS6>$E-NuSd-+WK&X$krAapKMEub;Z3sQIK|ir+SeGyYH5vsq{R`In_8zfY5$Z+?7T z>r3Ff(be(u^fK|;?WwNL-#?Bw$DZD}PD&8?k+c=t@b)^>x%sLMpW<&?q7Icf2@9eT z?@q->>6X=#U=WoH5(5ik5F(06A@`C5qs2oIG{|W0wYb-6OKVVZgK$ukeJ-Rg0g>6N zm4J!{L{SRD!v&%g6^L3_#d>QvC}TcsD@m*+d^1(kX4gGRqtts_QoJy*_Yr;Lu+C$t z3(5^D?ky!PDnafC0+a^5slrc`Bj5;1|D$l>^w4BB`o&x8D!K#OHKPgSDp(2Mybs52Eu0k1q3B%gF+3I(bP z!h0j5nC$Y8`s$pjJ+d8Ga|zV*w@|xzYdf5WhY9}P9!fXHt)iQX6{4@ zFjO)_37ZW2yc$2?TGK82gxI?z&hS{+qGlS2>c&rktw#1XuYC>YZ1EVI)8)&c^;4OFO=mR9oI!dhj8AQ$4 zK{g$G3K`Z?fEeS{BeWieE2_vetbut0S)0ubYNMpbz!cPrkBUQq7kLTfywe%fYeS&x z+m$zv>^;La7?8?0kr>HwSGGnS5SJk`@+O+4U`MFOj(~auvsz9>>j~4P9w&0D3e@fj z)?)u&9$AOV09$Hu!?Lju^K)DDgpL)vzKX*;y$8NcZ|F(DVZG- zW6W{P613J4E1M)SlHQ;2!_qk4-kDVU=_}to-zgUm6dl$rxyNYl(qvmxp(`oaxEFdE z8Jxqdusm};(lY3yCNfs|ESetYtxfxZVOZytD6}S&AaA zN;@HsZ&Hkw&DVXGh>+C!$Yx+Z%#i!e)YIAma@LH8!rxT~)~?8RVwBu0D#)@Es~KV^$5h|)E8p!Dd+G#7(bF85 zJje{3gpKlpBM=oAGMi0j%{GXu?eF*@E45YDr&M)gGjVdZbOG}Lp)ZE7BUczGwJyZu zMxf-v6}FUt&)t|C?%&TE{lI2!aLxRkue)(g9;ukcQvoD4@+h5Y%<4konM{R8_p^#Y zOK+LX${Kfp?xjHua1hEcx%!S+w5$%O5yiBbBlqF2r&2HGL;L)=r{ZOW}S2ubtqVm zxURozxe&H6t)#1X98}t+HggO5)kC)6hf=5d(Qm!|aoV1hR~nuzIWPa*6SKN-mA$v3 z65#KlKlkfJfd692Q`wOdUn>6G?wIdUZzLOTEw;LIC8*ddI^LMbd83{BLArlMWHsZr zAr=s{TUnkomI~~91!A4nUAphju_h}H2aVjb;|K&@Wz1m2TY9PYFSX1;uw0-s33wX& zq%X)^>zH3dn4Gfy?h_DD2oK^q2C||Axaxu8$3V$ep#C(Fo*%@S3iR0#Mw)|orm-kE zhyxCS&PKi5#5!9V$)*E&0tM7tRe4B2p86=tT_65Ha}hvvd4H4!k$^G>@lOMdA!Nnh zaVi72VNI9sR!{W00dfX%Vy&v;S1>ayR`3{zG5~R5fWUA*IFdrODv875toQm=LF9R?l0tc zjUh1Qv?+5VUaKB>jWHGqiVC^_)*`{k>6lB`3j%IQw=g_PDHlsr65vFEZI}4_FZj{k z4?FE}igrd8y9Bjd5M?e=sGiv0dQHwwVl6X%NK@j8tBXw_ppO7*G>CnymB0rBaixMJ zz3+>|2=d{Hcu4f43OF-av{Wi^mjI$7CjHvsFItL)G$zsIVg&(lYOPlQHHg1Hif0Y` z$1a6U7{mfk)^>TgLV}N$-n9(`Fhckt1Q1`~4Wx2xh874N3${-u3YOwf0FY)YTo6T+ zR!$SCkN(+%mX#q!$q*&dv2g}C=TL(F2>&%#6=o%3c__g{3Cy*Y#%;*mukRmlBHNSW zligzch!_nAB>X}s$22{{nWLL;_ji+o?MFv~ z4k!1NZ~cgXTiauTv+R`p!+vH_59d(Z*}naen-0xwj?HZk^7Zxhd9Sa`{6aZTA!z)E zVa(5*iJ`|O%X!UF+1bln@f>E6_R15UzRNlOB#%dna(Tp8534!2E4S4-Hu7(e80Wc} zq%s+ojra|*mycLHdsWcI;1r<6p9ghdB{!cx%ZrXGs&&tuWpyo3YvM+AYbfLoQmbp<7pifQuLe`?5R^6ABvcKUt^z{DgVoLnoxQEYVRG>IvneVku_wjC*qgiOhJzY%(DRxfIj z3JM4VBX{w((?B8nhhQTgDmw?z&tjf-W~HAv+1?V-V<5eZV6JO2s}=$pEbx_GlwagN zTPgp_Y2fct8(&MXEmH0}KjQkUYd|tYWrhThl8og6SkzG6<(axp1X%6?m^Qb>dN_d% zlrC$T2LDyoqm7`NjWwAK>Bub;bj{*weWtuF5@qSKatao~0I3kO&S~EkrqfMl2fLN_;p3 z=RkYnN14@w@A8j?aghY#tMDT5G9gTCNGm?BUFvH%Sl3fHQVaRgQdiB@3PI+kXAUAa zH`3k41oNYSvZ$vr-V|h-4hzCu(=Q93CuouI+P&3C0I-z|SnmPmB2T5^C$6XvS@LS0 zs5tds5YO%SX_eCGhxy;-Co1f^375ux7-crrQEv;WxY1pW!T`6+E2QiMH^s0Qr@*-M zbp3kCB1Zj>!LAe9s4Bd4gR6AsutaSHs+qrj4X<%>sv39C`iDgt>m~?AMfNqn$r%j1 zl=5k*_m#8Hiv9@%Wo&@VbBXr&xN~m@RAAIxYjnm^Oc{}Q$sTR7r=QJPAw9prv1l>l4?7ZM?hQsx9K`MU5g+a&NA#uq@Z)1R&97Gj5ajrud5mY((abok!Sx3SQN@|@#j>x~Gf9C@Q5 z+vAa#R};qN*`Xejt28k5$O{5#a_IHsVw%vFAmUhJicAoZTRIh;F!il@6&@{{xKF;h*|} zJ7s@XTF?;`5$RSjQ=usYzj)RklkN<1tdCdqwYdd3NJkn}Gv$h#r>kym3-j*894!cF zsR+~?IY;Dlu!RzwH~1NUKDP@;`1v-WBssIRM7hPPGi0h06RI!8Adaq*EihE2Wb2g; zCPv02#=sKZ#D9|y0A&4*_i>I*f8XjO*_{0gXFlAhFwEbXP;=LJRx1_w>-D>5np5E_ zK1$UU2=lsZND2au6>J0=3$}EQTFy3tnB~D?{K0HH^#L3BP{?d!e7b!UVUQZ9jg6vV zjA2@uN;Kt&VtfJI2XE##A%C`Na)MB~po9HI*Mc6oXZo_ez{lUiL{1B|0rLSHiy6N7 z4CmMs*(J%JSSJ4WFle&!gZCwA_XX=!w;w%W>;%$cT2xe*_q`V(uE6`XA0MkXBs_}b z6hyr)m1cwig$08}-F)c8v8-Q2PCn>X{{^x?!ofrdmyfD}CJ;h)HZVx^V@X4CGgBGY z#-q;4WKZP>B>rXBEt_tD>X_VmsAzL(dsG5L~S31x;8xhje+!2p03nNQ^ zW-T}cJ*c_UuRJJgHTakLVN#8oWc`*&*H(8gPYtVCgnz%Y{n+i_x!Ly$mPG8XO^zFt zgD|{1n14JU?~kI22j6FJ=?DxAJokao^pqyf+*fvZtjr(lznNU(usLRrQXSe_9*d7c zTAt(^CQ5hKjx}vn$Nh`ivE8KMj}E`Zmf^~es9Fcm2pLkTv*6)EjH?5^dsN(l3XHOF z+437yf@i;S_93A+e+ga>#*2;%4eIk#LV~RM_b;bS`6u=f-tnU9%ZOJR{AnLqwVQ<$ z8{ZqJR$S|?pa(@!&EnI-}G-Zi~$XY5pf&xd!7A2u?B`T{ldV#7j**RrN^}rXWD>c%Y_V@kgc;Wr{<+y#} zYmk9RkebO3@GM_kS2)bAOlH_xIIT1pAybEM1ga{niXMX9mSSy}G6F=2tiwKToY_&x zIA^W*sM%KtXHW1nr>r=Chdep?*N;@UK-o#lNRAJUTrW*pJPfNPBQ|aa2TR)MAoa1! zO$O>xxph*x_)|88A(i)9vqU+iZ1LORON(K+IXl6gvGz#>yoL7IHmFs{LDcW7aAI{b z#Z!Doeg(>)4I)&XOTD7DrN_PHZm<~KHlQ!ox6oLT9CCqg<4h6YJ2z6wVB?Q#HjBm^ z#OnpV!ziUW5OFThggfWn{wb_fH4b+QeKfSpf|LZS-OtG6@PPj}@Z#KnL znGRgXGA<;+nNZDdlBd>7ns#G~yL4|SS{=$6g+8vHuM6d7i5QskP^A5+6>IOG_kYEn z8JJkuIJkKD5Z{vPi~nQ`ON(@(_GHvM6=XF(k1wd{3Mp#e5Pc(c!+LCi-^cIH|HhtK z2r;)V4J_+cThq%n1~Wj|Hl*_UmO_kq>QMjZ)`IjtlG)%?W~bqhXVl)8 z!>`{?&wu>E%E#ckw$W^5NL$%7GEz=4BDA*%kaA4hy>M5d-`j4({rWv!W-7L<5~1CExM0e z5nw1at3hgYpbIz=#;ufVuP7bIr3DT#rTy;J2W(oI0fO z)b;*&I)0fl^b8`1s((et8!n-9Rpes7j*s6Mr%`+3EIJTzoxE*eqP3`7<$nDpT=UfPYn^`C1&P_^oJPjbuwx* zg9^>(PGg5r$dgim=(-M>bueAW35Hm2le(t7i5I9$q&M65hFlHCz6@-E9s&@kOfw{c zEORFchhmmfa_OKc-NzJq#ek=W1=36`M}*jb-dt>j;^T~m4m2(;w3gFH$Pc~CnB)$n zC_I>6RtHDMCdG}fX)!@hO0cV;5GIu*Q&+XNp1Y-32^n_-=Id3T@UtK@ z2C>|X5q(6G)vTeu;{;kbezornJu~w(qNDH^K(|~CuRSl5K4#j$U3S@EenENA3DuHKXKqFHf! zrec6ID9#(~++49dfV|F-*HNlmxxb!d`|&}KJSaKfJoi%9S>{4FiY|0|@BZy4V-R*n zT#wLBq8~+ol9T>klHEp}sDfoiNap}C%No_CR7UXrWyh57$@su+;-uPcJIg+xjW6aO zW`{?7W!Gj0HIMyFZ6EOOIhB3;@-R=~rx6K{oHR3sy>c!WpRI*xR^{EO8A%SoJa^n+ zW`?u$${y(kE8FeBJgN5wO?kI~Nd8-drDO!}Ngk&sD#?pn+15bQ>_r3I1zfn@%2Fv3 zX5&S}fC`~cDwMW%JtFil8AO|0cG4e?Nl&TWY9&*N*^ex@<2?!ggRQ%MYx<4*#=nHI z5d%htqeqW!85>&1wzK#lw3)rE~)A_~w0cMcZP{O%E3HS}PURkN!nN3&N#zk!^; z4@vdOEYYOib2h+1f2z7K7*wvr4}#f5n>nA^QDyl5XFVES1aGbfjVb`)a>2m=QDKop zYK+v9z>_g~C}-CPIx7zPVF;Z9?>6zqt2WRutPY{AnH~k07ZE&#LU}NH=|TBGCW^kI zM(BGu_kP0KxyJ7m++FE|;ll+W5K+GT8e6@$MUs4<$_ET*rFxdV@9&!8!K=0Pj- zFK$`AN=Oag5{U+8)CP#~CoO>4ofpumL2xK%#!TK1MLKL68YBZlFmz-1F;QYNNM(|$ zJ&|8CCCSdp=Y8_^nD}qwH8`3X3NhqL88{g+!m5`kfZbjWqs95A6bW2NdJ|vEM~^$Z zQhwRkQd)riV5TlhcJEC+g!)Ky?=k>_PXxgtTM?oOL5ARJ<$N;i6)c!I9Zh+&C&XQ>BE0#;PG9^(WVl;}#coq??K!uT3VW zTOkjDqo(9QUUR{cjSx(SXW&$lsiYc7l!>yd4~=>EDl4g<#S%;lu)y53>{aa3tE$#MBruGZ_h$YotfnazDZ-RKa&-m&tAZR$ELQ;x9pOWqVR_3Sq0 z>op_3_E+_sPpdJ|@Z!SjKk=q8WwDa58R^9NU&+WL3$C*ZhMY~2!@t^3o_)UyJV!7! z^l`gN!w+whX;%a6sZ0@AUtz`ZhJ=dRgZulj3Nnx1XvE&voZgSu<9Bo79;i~|I7qZE zax>buACZkXNcQ~8!2LRZR7I|6z^}+%pfs{eX{{kP5cphxMZ*noL>JA`lDfaeR5P{| zXUoq~B6NUaHdhT9sBPFPy$C{EkO>UErp%Kq70jR{{k$Vez7YS!kbXp1dsac=ydECY z3YZL;f^e20_a9!nlZ?WnDJ|OGvMq$<4^sk6f)tWle0v^y_H&+PKh*On{6tsr_Jz?KS6hYBozR4pL4ft%R^ndSZY! z+K%LLJeyxSRi9&QAs^KBnlxieWMHHqJ#I1D<$5kRF-|fV5^GmCB21dW4n)p5ayi|)>-Ij#yp4TRl)WHbiO$`jW zS`L6n31U1n`D0F-wM2tThM-aw>ML$gP~*+Pa{5jt=BtTc*M?=Lws?kxY*)TJ{0-zg zw0Pek_HDzB)(bhP#?;bzLibqUSPEp}6Vty&CZ?MJNfHP$bFg3t6DMW{=rc4M9eg5a z!$nN}Fv2rK=s3wA!$Xn|wQ)}J<=p}4tzI9UC=fIiVvS|jB`A!U2Lj6UqQFw2gh0D! z$ydghS}>)^+!ilGrnzs8d06;ZJJH=|l#~XQY5FSAj_FiboJ}Ps$V5YQuU!qhE7X z(%)pJY_bABvybs7bS~~Tg@PA7lrXCB3X<&)r)zJTgaf`}2nfl-vZvL_^(DSa=8E+}T4O&M!5kdoXY$M*cLR4c~Jom0A{e6)rC%)hm3 zRQ7hVXsM~v7aRE+DcNs_Pgh%I7}_LW=?&OO_iT$xfA;go8)Ay*m^QK+`zO)EE{f@F zsFN>>T>icN>+roQpZY8XwMR|ZFt3yPCYi7vsaCA>BQA&C=2z0s`#qhHL;dbbV+Z2o zj{M~|=e#b?btbLL$4aZ0!u=n^ohz&5edpC%zNnNPi5FGGVh@zr*&A~aJ$rEFMubX^ zP16QWpxyRGuyk;ft>Pb3<_Uz#Y3$P^MUUe-okY40{jXXiTWp1r?tyEdWgzB4vbr^b zNt~c9qIj zX1S4`iI<`#uaH6Y`s*$yhn}CZYQVYQn6+QBZn3gh5r2*k0xfmI@ zomtf8s~{5g>B;rBK<&1Rt_!*7Ca-rYI z^Yxe?E1u;icwFe1&j)v_Z5Uh=0Q@niQa|r0_8aZSY@40HvcUrX+k|Ci_Ws8lLm7`z zCPJm8zzPtEISg$M)3Nh0HnuQ~gdDg9Vx@v?E2yW#B7SEugioHO8v0~(Pb|FFXiDX- z_{+n3dn0?UgKcI0nP{o3&n4}ck}jA9wo>+0Q#V3tCzH!?|mVn z6wWu~%QJ)0h7^r1vRXF_!JY!Rnnp6B_+9a_5nSXJX$-2n0W- z+8D(tFK0)9*^8JT24`7`+_ZDE5s?YnxS~KYXP|R4g5u9D9!Kd!8!d(8vL`koWP#@V zD_^}-=ms?&d@=GF>l6#M&GBqNI`~ftkA@-NooF7az8w*G zxR9vA^JLK0QsK5Lilw^gQ{c&D!^J>_ul|i+s+^2@Za83XptI^h$ttFlJ8FM&3)mG3 z*}c5laAK2qhU~msp?axdFG|k5R7DWj%j+^GbY4=*sv#PW?-=SUebO$l(P`9Zr@2Y$ z9CgpFD>ObT?2$J3jZo~H*V1C|t)6UaJ~FRzG`lBrqpQ9JwV)9@uff-@3JsS}Jj(md z#&NiuchFXnxLh!MSe$oDA;g?Tn;_}Cp~TX5k!SRJip5{`%mBO*6Y!g3BsG3%LdZqcg9#R#@cs8(S zKG-wrddnk1UjiLzaIZsTBpEzNJpn-8H=lxpRm?#MUXQFjIdhaHZ%G1!sY_=jJ_?Hy z_!pS9FzUyr@to8HXk%?|AT8OMDa;Y_c2AIEc(_M9Y{X0ez-d*$=AUv= zjez&T2is|Mo2l~{^a}x&Ytx0_HyVK$Kw5|E$F3e~K@5A(1dC5JA1w`L>hhmo<@d^g z{kV3-aLYU+3j}-?1*_+#!_t6kfGONIFPHqjkI0%S?(EY|fX*zVJ^+Y&NA)~WLR~g3 z&tcItnOtT0V2OSR#D6E^PZzbM_T`>SOHwzP!rv%-uq^8P$n@QkA7XQIAU?eJg?7_h zd(!jLyq;F~ABs%6)Z6zZr)osjbfhr1|C*6~FJlp=zkapf=W#or zz2EI*&frwAL8$YEmzdqx-d|DzQw48Cj=V!d7eu^(k0V7%DFw+-3ZUKi+qR4MbtD4b zvyB}!@t!GFR+;@ARw}$9E%~r-Sr^qT>|FiA)7`_MDa}kq@PDG;x3J%DKn*}o zIMYExI+%PAPvNFy)%!PQI46m^uy=&n2E>C*!juQBf6zSmGf90*x=S{fTp`pG#APrn zvvKAjV@R#y9LxXj<-gGWSo1*bm79i99pHeiHi77XL=KSiOQS`?x7>*GpxS+UPX!y= z7PG;Z_r+|MnQ3Qe&87eW=2~et?;QRPj@RX~3wVaEv=vO*oDB`+Cq|grT3^IV3LD4E zhJBu`_{?Pu4XD*&i}nT&8AhsMm`8LLEbm2NA`)E`lSz^y6s41LhCFL0QzMIyMHla1lP`ZWREzZ?qjp+ca9$B^hnU zBymRE9+U5g*kNLTSv9kWLbZe+O^CJaMByvuB%k^9xwWmxc7FXo*mH5y*@E9kzn;FY zC_fIxGP%+0@q{l!mHT}MEl{}NAwHB zjKclAwj`}%aIgg)Tfdk{Nl2h(+gVjZ5iIOnd>2F{q~(>=M0x-O@a-x)C#T2^W2YB- z@_h<=VG)<&ljCjT0&d`*C*G47xj*zG@3rmS3J)Kj48~%01SS|gK>lCs8JXH1w?CY5 z55rVUh+30!o8q1p&=liI_bFP+C?{lz8uV9m{r}i=iewvFBjZ=4aqnljtHZ_oTK{E# zvc=3k(#_m$_YL#uGoo%Oe3L{8ysS|AU+h`>idb(q?^$7OYtmA@v0*u*qs@jvaH%WmG69V&|JHw<|5PR^-2@iwyfWcp){F$jcYy4m-;&jJ5|1{^*;n(Srj_vG$};C`7_t` zE_1%-MRDqr?BC0kerRc?pJVRf#!EHI&rGAV{~UgL&0?nTWlZ7=O;?;RF+=t5|6Z!%Y>nsjP573B=jN)y!ocu?YTTfBc?KH7 zz=w61s1A-~OQkUF(1_9#qA`R!xwQDt6iSfBGFsu+`Od|;j z25eSN&m>XWs-a7F7a4Z&!erf;h?#U4Z+Hffk@#!gtovjG5ph0oV&y}R*?&Zm5MaDb zF6D)FlUj^3Gxn$t!4D{RFH7D*v_?=s zqQN`1NHPEiAIf+-qt38YPIM*hud*7)J_n>(x&`|8c7mPextpI|VMUhZ6MJ%7;4ptqop zFB^L-?`E7~_5u43JY!I%I8b<3+>||<_`bNxe|kQfZtIsy?=&KyW|Lmt-pcgSFjG)f zI1qLYJKne2fP{!FTpUvY8Z9*6cib)l#C5JV;_@=16g&`MvC)iYTX8vN}My(uP0c)zG*|x`v6kES(j#WH|6f4vKX?Yw%e@o zs!MUkgZ7HcraRuaFFeWNASLaCG&}nh{`8J)sg#`*qwa*+Qjm&FYZ>U0cUa*P`kClW zg|m7mMfRB`nKy#%di6ncckS+)J}c9EFLk9TKtI6}5lq*6jrNG97xmiKr;vT?ubqwkNk>w}6 zr72aJpZ^~H>|dh`XLgK5pwF|uG-ShjX1o?F9#uNSZOyD^{Mu{cie&?5(J@gB^@yDH zG0{y5-lcN9(tf2;O<%no0prpLI%MXD$FHh6fF1pV>G?rIvNrqXU3Jg^PkoYBv{m#;W$RyDSI)WB9k5$Oo)ID;+wscYT#oxxXyQ3Xz(zsZ)hzwVTGx>Y? zSASEy!=X)cc98>=Z!)pE6+^H8E_aLYzh)B6#}=+Yz=e`uuLMasMVGeKS&<+&bP*7^ zuoVOLK*oz)yD#FDx6X3uI3}?Bx(I`sE8B+vRv$Bk`w8tIL_{3n#ll?Y-Y?`#S)$X* zOQGNH*wvS3lFG)dhj`J_w&~m)DUpDi(SO(Q?jw**>z;zJ4z(K9EW+|VFz{8%m1oz! z33qzJ?Teflqp#**p)#VRM>8@#nj(5vpCH2XEn$RJy|0s_ysd(X_%MgRMhbeF4?n(h(19aveZe2@iS*ik4}ipCNRW*c1!5;-cfudVC$8zlpaa z3-Zu9A3xVbK1gd8ryp;iYkPGoFV+700|_PkUE8ZK1%9O|e*1RwiXO+0d6ZN@Pn%`k ze)QO5(Ww|GlI7AaOq8y@2R;j$!ANP$q!WeZE9ulqkiwxsF_IYh8{G6ZEjn3 zv-q3Lhh3lI)pvdMK3 z7`S{v+}*TKk7&_%Z(bb8qu=->L(>qNcutq`qpVb!>nh5pX}oCD>9byE^Xp|WteoAs z|Lo7DSAVd|Y!g9H=yv${I`u5M>F;{fO<&Luz)ZXnlvgXFx z%)N-hCJWm3S4AH2Zv{FBB1V(%)m9c*?}tf5{FbrbX)SDjDl=$`U6!oGa3K+0`FMX>W-6X?!`Z*y#$?Da2 z@t=inQzEu(b{d4w4yNcYrlQR(Ke&Hr_P#H(Q*q?_+>`!y;Qczc=+ed zDxKKeT$cw1*0Ez!L{f!^D|eF6ohVSYtRpv;2uNG!ZFO~7808QLQta&b=3E8b3`~1V z-Imt{4_)n1Xvb_9r=RO+whep~$|3QwBgZ-Ryn*vEWbHR{Qn@Z-<0e)_n<+C>d32C?X=8`aA#t&8D)70`9m1=&}K_ zBmk@dr(=T?z-(RY27v8EaC07sMeCX?ud{RT4FObe%q6h4)qgGk1|kuf&&qtO?2x!c zpH2L{D+0rcLHP&3+(iCsX2-hYKD~k~}X6UksV?W8)(wLx8I5Tl;24gWsQ6ei5K$l_( z&&Dyh0C1I}(fVRIbE2=QS8)GWcxE2j&Rr$|1YZ@uBUvrcj&BIBJk*yk$_1=1=+*xK zU0fAk5Ae>htC5KMyp)k1+?@_aR$MCrZq<5lQ)o1%wOd)2XI$39 z)6*|rp$A>}UU+-8dgRYH`!MwUSzK!^%?Hll2Tc88YbQAcVWsKwvqC-@@XauxF58{D zxFy4PVvmhNKY2=e8AV$Re%aM4oFS>GCsIxqr=WG+#ObA7JpGKxhm=9~mVt)-_&y)% zFW5wPrTbDXy)G8^p0Vz}4AtRrQgoz{xxMb_o|F}*#Bhx{b3obaFm2iY?R-}3twhSvM;8}S7BX-!E+q)q#B4~hn| zt19#6+@N-@>$IJs~{=;Hqd6FsX~tsE2pr7zLLk z+0^ipvI5eT5^-f2W@RYGduU?A;@6kF!ZseYp^-P5+8R5{{1_k*a~fWpfW{_v zO*0nEF9P35qB!`Ww|v}ijxR0LFNbY^oni}&iW0Oo7`wgwS;UYwH%K4%$#B;6TU6BL z-?B^BWubpRUcdL4LhcYu6!(cw+g-?Nw7Q@Bru;Kuwl>IzJ$CM;oik=$a9uYi@V#oZ zXto`1LaoWpg21re8Ey7M-(0$L?1E&&+gsvvMhPR;JK67rVW4o~ODQ19G`(o^D^Gnu z2-a0GDiw0)z0eQ1GV*+O0Ju~n*7jgYyxm`J+k`$?@-!GfL^s&=4OA0pBAHUS`H6nZ zzPzrT^pN7o@nbhjCNZZW_r=F|A+lGXC+4q-iG^bhf~c%&G+pv-!FBOjTU(7#Om{N-qQo*0+BI)2iopwiBflvFt(^>%Ee0BhO(dpOx=})a^X6_3Vo_~Wgj?=Y?Ag-jYIhHlFCt5lE&);!bvGgtn z6FNTAqv2%mXZaEGKD##%b@el?`tvK7XjRl4-@ZTmeTo1L2tSZV_z>PC2m}uT`ZBUg zu?;M*lUHe}Y-Y{Oe-foRlKL>8%e$sc)8-cP6;S_L%owl0Mx*sgc0~Y>a%yYywdoIn z7%H$twbKyM&3T+ov}?*Y9hVYo4HQlf_|W)JLL~c7@xb*ryQd0qPJN}1I3o!!8!0M#?X1nzcq3;rBZ>ZAE1z z!X3U-(>m_pg%tSn8)jmFyJ8{fFYI2+S*4fqlR#Sg#Y>3ym6ELQ8APZ|W;dq0=a`;8 zmebTyhRqKYy{hBb_ILsLxxY0rKW1LjX_4Z4*rS^xiHU93BTV3z52dzy1nml2>LhK6be}89I;;KMev7L(RJTUY*5^e>nyZ zTiYB3vF9<=`+gymB0c3&>ZJ9OyCNr=e=x{Xl69LAg-Hk;qk^FSj)+6OL`;!~uJRqR zRk5`q^-oTp#gj!)%r0k(SGd3c2z|x=2rQ&ZdA3B%By*LkGl)dh%XBkB~J6;!J z?7r+gGhjZRYc)nNVtV_n5A{}PlrHzfWK!4EE4_;gbv#iqy8L!QF-Yu`&jUG@9?VF0 zSNp?cvU+o!x5=Nhp6|7P^8$I6zTgmQw>mmZ>d@2~sc=pa6r0%ep6(xp)$k-Ut;`F! z+2QWJQc|j%&raZ*siouXOl0PJ5BPh4egKPX&P|`HV1dm~wCt^?;vHnpdl`iXJ5QG! zNoB~XV8b|_4tZ!nhcRp7CBbmi(fP0Y46vDtF_U*)lDFpd8=<7lXp{Vgg&OoVSIY}Z zr*W#04r6cbZGWI8(tnq=lc_OWx-IoHZ~^~Q4H$83vK9Gx`t-j0@tJ&&PV|2PTo$7) z(0sD+u>;T`@zwiZr-5H}!qy)K(*HV*dHoIh;qbw~*8gS&4nE$`oQ?ft6u8AADU?9y z!|GcUz}M|!pK!kVN)5FX3)Rm?90^RUN71DuN7wuabK3=B?b5e6d??Wu9h*SdA6x|W z+tPr+IE_RJS`nA+;1^gs>;M?rKErMaK|K$uZ`NzBm&4HH()+hdFXQ_U;bIuokWk+2 zfuQ}iTFD>uM2_!STU9y7<|50CudrrefTHTie2JxV?AfY_<8!D&vAWq(5-WMY$=c5Q z)|Uk3f+={eLgV?qE8U`AspTp=qgYbYjJ;hoyR2^|+QzwG=S*_FJ6TFuTi@Ky$s-^< zDkdfS|A9SM^_uDx;DrjZ!i5gVCaGE`b+;r zVmb)3&P?KA6OJPPb93X@R%cm1H?dL#5*f|=Tm~xW>k{q>d;N0HYg@N(a_)No<+I;) zXa$9pSyg=+*0mN&Qx+LKJB*p}=1QpqL;#oJJu;N#;y907XAcYBNU^6X_R(-^3t?4h)s zSIP!REqH^EV|>MVjN_#^pXX1*rl^UeHQq)wJ<9yAh`slH59u%TKM9r`9OqNkE$aPa zv2&+JSN`Mu;NM5fN`F6-b0YscJw2nxQun8h@akXUj$){XwU0KaPGedb7ypJj2E*Z- zxGg>Kvh55Nt_HCl5`QJ4pig%Jh5cXb*?`NS?tA|gr^KiFi1lkMM#rKumyCXU6d{cm z9xk*PUGUXE96P>#=Fw^*Q5s{TO}}IIij{?L!AAqsIb}^i$wQRz^ffZyk+A3dti#GT zi-OG&rO`)I$coA~ORew2>_S3$F_nfNE0yMq{%X6BrWI4QQT-@;haY{y@=_TDlRK-K z!loL-bk^vjt#;c>x=HaZWA>gAY- zz4Kp6d7Jozu~CeSw*Le)z;qi>9x_VmOp#nHa99LZ+qCn+jmZQYdsX7?bE#vrCnBRC)V@{+j4%=gC{S%dUk$*RbZ zJbqdGW|3S}Yga;Y=sxss3OjBam!Wc=OJAfkVKU$xsYo5=3vRE8R>FQv#FB3->x zUK?r!KGSlAmZv++?y+9p2$oZq59h%%aM|#3Rot}r)`zgB+OJ1I*1Z_#FN`@l zvxxs9A2q0X`fYM8ASyJ@a-b%#GR~E}==DpL0~d~^lqVeHCXttEuBa;Yk+ZRcOJ!Z@ z6wzB1azf+g`Wxk0i|iPz)VQ7tBO7mBm!WD$rYheT4l?h04Gr*x(33U)cy&ui$VNKt z>55yUrHV1`v5(&E)e1h2=f;L<-pQd(`karl4HYaCQVdoWGNkTQnkBU)-#hzTN#WHn zwaJ}BE$DrWE=njJR(4GcT(RN5!!Ai*hqs9T>z2M}n5ia!$-I(JY-V&Umn>$mx)=3E z$l|%Vm+BG6;3~JMju-H4l{NFl9nrKcG(p9!)?9sXv=A3&cpNbO$aQsA<5{GEcgKA3 z6pEl4+Bsp11wflBvpfgs9+ia4-Pp{?({0O)iwMUlg%YWR;Ft1`PQv(|h%48bcR+}I zA|YhVy-~qZywW3>nE$MK8i1gxx;7v|Z=U5j_Y zPOjlJf&17MrHw^M$kt-dhs!dl*E>|qKbnz{feyvQj@$TAi&_QzHaHZz>*;0k2m(KufG&s(i-iXzL zqcXy_Iy^&T1J^BO(>>*`@Q>S#sdH(hWpgX#;)%sYgZxKjkdK;RG3bo;@rW+n;j)cn z?E473c~nwHi+S&shQ=}11st<1lgA5vh~}`0Q)IC0Be6Ts zz!BCa4et9 zz6WA#h3QEUeM2e}qGwc9Ln2rejt=%m&_)(I9R}#^4+4~ScrIA&slu!%WbdOgq?m)s zL|-Zh2^j>faB5sj+HYhICPLV1lTDH-Ss~68(fy9wGqHk6yeoq%9;w5oEUtSs=+y-w zA|9^Je2{WMo978ausNpv(Fvp3lR0Cl4L?A+&q9{foj)r^y=-FP|yY=wS z+rDNXY-;eDxEauu?sM4bd3I2U0^S4?sXKb*!{4XYcjtBrigrZZz|0iBiy5yH{(Cl8 zI9(7E)b!%PFC}j4ZIb*0Z<*qQ%`#z?q%)*{)cUXAFV?)|pd6dR3VM~lH#qFeTA0BK zDUX@2lr<*~imW1W&ZgOEY}m6QTv>7p&w3`@E-Rp0!PG_qZH*0YZ86PCV`UU^nxJx4 zcIuVKu(gQrC@b{1wjz25M9%!FQf6$Dk22X0^dRPXZ2nYXYz1N*vJ^@ z<->y2hOi;wS=2HkhiFv~JQrV1L}c7waIC0%I2i~7ZPt)f{f#DbuoiSjI(DD=6o=hRq`w-c%xdfP$d_G|_pHjF_IO5CG zr*T?l#G-16hzufjJK7LOGE0tO&j2uV5kZB7Jcl^Z@ED}SXaN<*$IJEQ8pLr4@aHc9 z>(80ukZgNKX*fw>*LOfIXrg@f0U@&pJWpPhkN%pF(wYwv$*p$tAAk`V8uzdPM#9y{*p>h}{{URa z9lh5`z_GZ%mRh-amT(3}*ZjB$rhQ_sWZ7u;kh891Yi z8vsbX@9O9=B(?-|WF$as3Gl8^=Snn?k!FlcAV2$O9?CaPPbJbL!Ba)5Aw3-|)IN+c z@!nnIsosvv-h?PSt>89u9W&zx5Fkc`xPF(%2Ug-8L)jc=D19{g@y^8{20>xt3F!p7 zG9ROCU`Y-unw@*X16%O*2f!y-EhzD2%|2jYj58O;U}(&fhZ8IS#EFd=b{Yd2C?;N3 zbU?OVtV4{idO^MdPado!qR2?tr=-AG`$RwPsF&wvNV2-ROz%l+x|NVxhM{5Y%bYKz zcN>go8PQUIOoMs&i(DCk6XOiHJ0ESTPgNQ}8!~rbd^Ou(95V#C<)f8(=A@A{4A7ZZ z&%6hiYB5eZF<;mkW;33?=l5J3F#T-EnlV^Chwqg-cB0z>^d8GkHOo2LwPgRP5#gQ~ z=1Av1mH6?%X3R~{c#dy7fG%$g>J>sND)r4Y|fC-WeqQG@{Tk^^%N)fevd{B zLXBux)HUOK9Gkz+nMWOxba}~^!yrXm@S4fZ3MRRn*zR>(F$5}D`jcfu5?FM~_su&s zzHx314c%lVZJ0^J)k&BCsfvmjWDM&#Sj>e;1CwS{MVVqUMMrvvI#$_DDv_N`3Fgba z&?p(@NvaOFXWR1Esj(B{Gxq1Mmx&J8iy=Tdh#&o)-Rq4Xi^*r)M42bArKdT!O)fec zkSA!I8QhczA0Cto@gMoh;{t+E7vM%k0k&DW9m_-YRSPa_XA1^=1JL>8&lhaO`s~9( z^(g7hS86;G|5hq*xuOl6y1&~kY$+{ZYE5(VHP|@dW|N$^k3a=9`^jKN%Ms^u*U@I1VB>Ru>m!YO%T>Wz4jLSuCJSg|j$C7oYD6_nJ`xs#hT(z0r6Fb1fNU=b9he5eRyovpi7cROXW{?(>dyCY|2x+QK&{2a57|ApJeJW$~>S){%op z_XeR_B>Ulx^EfS;L|w${`@ml8*ovL_TpWBUX43!?buE>@pcNknHA#dPcxQ(yf)I=eJIKEqmv%6+HA)~Q>&}z>M)dni<4r>o#Bzt7$8QX?X zikPk{o}*3VANQKr^>yYVcTPbnXqfH$eHV5)4|QHv%Qz4C$(mvuTZ9XzYZ=)aeM_rO;3-m;M4^v}z+ZT7cUI_d68B zk?4Q-u^>S`zcep_%@6-{HY`;=HP2W-EFq;A(E6k$HNsMEI6*M|=c+s4{YfjM4C0zk zPmOD;H)eA9VR-aSzLlvHqlBa0+(%jo^Xik4fJ4Bi2$*sd^(y!AET-$32hDhr0L{3$S4nPR1u8vLZNxdfK1gp=|k%Q)FaTd`D47a#EJB2U3hs>O}+5g1}aWVj{~b!t$m+ zk@jP3jQ{F88GBI`V?A37Mi^u&C3ZpExYta>G60kr7VYxh*dc`+KdKX4sFS9jylM-j zK}fDSeFE=iIdH@sCK&q6Fykb7iv)06{1@}`m+$JAdW4O#DcZbJ>C3>0StZ{WJa^u; z?bz!@od?SD`o`AU89mF%I+iD@?+EaoS2|CF05hV>!O?FTdQ^NXw(%MM`C4O3a*#JC zQ;WYk1`XlUl(FT2xz_<&LnXW0*F{%N;_bJ&+Y-QEt2pqiv)9Av3=b~FX~wkoK(mM9 zpPA9S+**{R8MV)-rU4dL1uaDGcPycFPsg;{;k)bh@g4uIpx)o)Qa7GJnS_YgXNCjm z@~`c91xv2vcQ{_R2JmXVNeBeaD|n9jP#3NtNj0Mh_PZSmPAbnHbu1I6v%v;Q)l=-v z#+5h=oqxt$Psfta03&yURCzi>l0_}p@_H7gw4$pQGdGQ_%*XsJo-_FDi8CFx12QJK-jx*>~37V{o@%cwZE4Q zD9u5D)R_yr((}9U?9q5G=2$R$+7G<28}<-rI5aZ)nY4`Cd$wgF<;EGXW1``LAlwjm z$NmbEF>K<&qg#m^hMxk#Z;(a0U%lThvYVbl{nfnTAX-`Olya%3{A7@U52fPVR3 z;k-_cZBhB4ekRX`GpOPU1z*4V+7U~_yMFqm^FhS&gTe1|0*ed%(62l69PeCF^|IcF zPhf_?Z^H?#54dt3>b`KqGW5Zsf1D%)_*#7`y68cC8rq1fM zI<9+vlbDxXNFQ97fA%ncppbW6vf{bc64W?iiT_$|^y*3^Zy98SHUI0^#co~>(^U&Z+OEkN0o-ZKa#DpHN7u1RxJaHeZUHW|LWpl>?pq}3HQt<;Up=M3u zrl8>fp#(LlJ(a7`zz`|+`p58}way2pCeU{Sh)YNL_ob&ijt$0zryfl1s&AiPYm+x^ zmweQ@T)D|!#*sexblDk`S$+TgyD9QgAWnH`_hT&|n)uuX>pF2crZMY@=YfNhP{j!R zy!IQSUF4pSzkzlxWBroV9jq>%UsIei`T0lpY1-?rzfbzlShz9j#tuG_3I7LsW+*tz zB8RqylF4{c$F8_4PjZKi;kauqej~GE&&5 zq=c0ugl<42;)Jx7tz*BTlCB8KrBJp86dBpX*NPnGM}yssu3zbSz@*iZY+lrHs-RkB z!WL{$W*3%~GQQko>^M$xp(%T&hn-o=D&a^ z&i!Lm5;4gErdj>Ge=#{(4Z6?pcy6^o(;F@%5dEH*+Ep(7Y~Xb=TyBiwgw3SdMBS%) z&N^_;k=WRudqz$$a8azxVB#4W<`9`8aeb%=ntq7k;Q-nVB@jblbz|an+f3EmOR$DZ zWZ;I=3t(9yBEBB$Tq&-`XrQVz5l@CVv~LvLvymDg61C5Q#y#_{E813S94=&*86!+{3 z^VjZaSO+|ydGIQ9^~&vX_8JRxAm~w%```#v2gPg__-rxMZY?tNzby0X7W|w1j9ln} zUF6Kzy#D{k++Ds!75@99XNDOVhVG$<9(w4Op}QMFhi(ax5^#W_yBmjYqytDFnb+1pn-n8tgn9P(x2U5R*i;h^`$0uwh2@foU zhe-ObmD=yJ{yHEfC*r+-7*5)DdVZ7-|qUEn{AjuNscrAsEBQ0n?bG-yI zXs~t805dw%8e{eQ+Z43OOpJT<@!k{i;3cOF!{BANr)j|}UeDeHe|qqWJmhoWTf>mm z;4f(*YiGk1Azz|y$V1m-D2+ll;yKboH}|xiSry92%Xwqt$nT5yGa`Si_`Qw%x%PxI>S{B?IO=-$X-3qqgJ*A}exJOe zRMAoe5d8mIHNUvHxVgC@`2YC)zg6?x|A%Ux@l5X1e^m2UE@kEaQO&Og{#!LiK8VI@ zgX0qYEt68ybR5&O{9Lp19>?Yv*`%Z-7eB=rl~q*N)Yjdq=2eX?twEX3I$FIud!F~+ zZ8m(-H~0##l{+*#HvW3ze^m3V_W2KseJ?+n=r6CVeOceACURQU+}(6uh}`Qq-ak9P z_%GGGzVPbzpTD=Nx#7!L@k|)M_hB(F*_A%We^hfldxUA}Nb+Aqus~vaRZGe^GFnM% z)>%27??0+}N6oZfH|Qlc-m&(LEwkUjXIttTj+>`~4=-31>S`scG;;1xH+D6=uTw9Y zXObbaHK@1g^lGtq)b#NgnlSj0fW&{R=9=K3miO%swx<4%YVM`p`25+IR~SN4_Wx4N z8?HKRqkG%8UT6MCHNWQFnkuYA%>KCm{f}zy>1t*yc8L4GRr8+XPrd(JH8&dQ&3ZHb zzg6==2KnzO(boS~&4mhHrEt8J{4Gwmy`PN82c%z{Y$Of5rd4_Qx3m0PTTcdNG*a$R zH|sw2Z(shHCsw!w%f}%fh)ZH;ut+-WjU`M6YDHI16Bi0vx*>~aDCVi)Jq+`BkEy^U zrVw-XcuYTLjdyj@fcATEyDhGIXr(HYOWe;u5eaN(YA|?iXJO-hR#8*MzuuxF7NFjd zS3i=dp_1mhp3zbF7hnk&uxH@Q7aWWRCi3UrHbnT_NJa|18#xB-YCP&u#17o}gi{g?Ip-3PZH$pFl1eu8kkQG*wK2yWpi)K?p)$I0oK&{%0*P(uI$K{O>BSrDuiO0KRUyEL7lhq^05b^lv z(qDQLY7j@XU{-i!iv49FZd4_3BP#gOc_JO-scCMppp(|ho_ohs6c>|*>? zls$G*17{%dR2~1KV}kX$@V5!1v;DW}!A+lsv&fQx&S|M{!d-6_7}=!e#J{k1MX*S| zyqwWJU6ESgq)dDGfq~R?k7l25L+hh+*LQ=(C5Me+s0&Nh>ayrFJb<)Zy#JW$Ul9`c zjL!loKH1EQQwT{r`d&e+^Im{Z|~-=$t{GQ5UiM9lwHWroP{xZAug?0hLf zA^;m|q}l@pe((hM9_7l2gJ$iE2?`vc{42A%;>KCHv|#-@8EQEL7#x=~yD(1L&8SjQ zL3MAc35EhQPj6EP88Tft-CQ>Cx#p5yqcFq_9w%^-9ggDNs3b zUKtIqD#Gmnq^pxdZRtpEJW>!k?|_DCJ_JOvajFas;#H#6n40?DkHst7an6=m>Ijc* z1NRs`*g_W-$5?{i;oRUay2Bb~#k*hx(M06SNkStYE~)~%l2T^36nhIV8WVq}#j>NI z4KD_pjXleb@{0ytL_<*W*doX^O;e?dA%!Sd_C=42aHzDJ#ZUC&ls#?!P+%t34An}P zDs9ZUV*_q@a>|h};k5rqByo+aW1_p}+JQ7SVG1N7$Be3HY&L^*YG}Bog zG9YH-_k5DD0xF4ozEoV@V_+j37-lVA#QalenoXSqUm+o+^rKHU`NXqr1$yH2oc;OV z*3k2c&o6r{EocpH8bLW!??77Kq$N_S0Tqkd5$PWV-nXRIw7C#r4WZzs@b~i65G%63 zX9<;{oVw(i3Gp&`@|9UGo#cd|0h>2yFKK~_Ar((7xjSV3QcTIBE$%aedS|Bxhn-}e zg#eGly${WWUxE?s-sJ5-O_XsnnhGdj^e)5iHuChYqA01`>r@j~V7$@KFP;vh$x&6g ziIEi!D%(Gq`PS4DNwO@u7xgvEi{4WHRqtn~SyZA)#8V|9+yD4u9tQG8gNVkX6-d&- zJiVVrWfEHaRwt84)iY@8W-^4nYE=jxeWd~h%W4v}Lb!3Ov|4Sl@xC8y78KCqkO2Wy zc+uPkWS8%aQqG3v1EyM7WdN&4FJHiU?*~5r)h{vzSSCiF;6l6nJu|}>X6bV=QM9YB zo529<5j0Sas5{Y8UU~hOO!#=oJ>ok4mu}i6p|>$Wl%MvLHavg(e5w8M*r?^mJ+WVL z?a@j@gUTK^{`V-e=dtdgpp0ag1r)6R-6J&aCb|Fgh7NgML(;p z+Xo;9ziB*5Mcc}j(qXmz$E&^qfysZ>LchShJn!(WS;O9UE_AIJaZJbP4Yz|N;@UcX zyE~LfoIQT?k2Hp`6+*8Q+~L^vBl7Zc=`KN|5Ho{$L@Z_6*6>2C-*aSOw0FUqEekqj z;sIILL7S~%GeD5`l{Id)hvV0okeJ+It8b2VO01De)q7`uaqfU0Z$-qUuR-7yqUh|*D1wX8RGzPysDE=Vz7g! zzmnGP{K=!Z`St0G$VvhBQyS0BZ%Mi*XBT=r>rn>t);gKeu|FR`_oQ^`%>{`bt_Lvv zCHA_Z-D6|367^M6N8ky5bpMAjulWgLBH)VDl%X@@V#|!_G_&)b2XLK*S|MZpB@ka* zgPw(eq_2n(n+$r{`b1YCQGbGO-Fkl6!tg5q>o)*RAdq7Y>m>=|x<$z6_{y{R_~Ae{ z3@2g^;20lwtty;64~W=_@z{zJrHZqK5HjJ=jxq8)bAW#Vah{<-`$RD@1W;wuN)kpa zpGYKR%{&WMHP1t8Vz3-|D~2;ub{LT1RuIQ0G9ZOT2>EYK^;GegW&n_B4&aT5^R7=4 zLxA#N96}~ZOeml!EcviKfO(xscn)yOuydIJ%Wq@U2~xU4|6{Y0ZED`!Lg$ga37i*Z z$r6^5*}}WGUwK&xJ}qS-c>LS>WT!+i1P*{ir!_|dOA7V-3o&WK%;!C6lkB%rpY9rDAuaSzpQSHwW$G_t_1C|Nd#PK(%?X@=s%XCI#>Q$naQc*DSGkp z?p(mVB|s5K!aJ0YbP_(812~oiT@@N61Me(H#|^`nIALTZSg}c<>QyI@49`y(24rXh zc#LGD7qFGD#M73-k4ni4mAM7w|2ZbvC+2#a zalQPS%bXe41&QSlAdd9NU=N6$Mn%o;fH*VbUvNdg+`-(4yXE-g0Ll6^Lwn_YwlKP2 zldQP>cUED+*Gfd1!lK$w>~r&i*7J~<;Fu&RSsk&>BnVHN-Bk%DxKbsCNEiIX+PY#? zV0W&GBfX*N+)cU;1cq4*`;^e33N~dQ|FFt`?t-sl96bS%G{F0 z?Yx zgC?EI!*z&vub(;&Jq?EI?OX&VKp-@KArf#VkmK(T<|05K&`Eyym?*Qd z>&}o$Q{0whMM|#YC<%5@BF6>=OqYzvX^;oy=u5^X7~upA{Np+IfGkuI49?<DC`NS z(bj0*(RfWGVBV!s$Q2}v)LttTVC61HU>tSb9zLcO@c*W60jf8D2+TkT8ukL*hiiQ2 zYf|4=v(y4|I#U8BQhd6Tc+K)$=PO9V;;L+b0v=g@5^--slkZGsexrfEE#xp>VWY^* zzR6+}k+E2Gt@B96G6mnBrtB-4q?^9WL@Q0fPi9q17w+r?NVg#2rcHNw8GxLE8fHvj zW?1*%h8>+n^8^>@qacu>*ja^HgkvsI;4F~`4M>?M(5six-vlx=3Dg= zI7H!br4yMroB0JAB?%Ya1zxyaOWD~V$fX$(5DMP(Xt$I4vLkVvy!ieHDfaf)x2dAtNyR32urPz~m)@f2KN$TTCA`Krae&$@UfLhI5#= znA&=CB&Ji;&`I>_ay@|%oAt&y5<*ibz&zZ;82>;_z)`pu$Z&i0LDln|)$p_dO187r z=Wv#H-C1LumjMP!R)RO)@dl^Fgn&xf$NUC(Yim}NAR`g_DM*bt5JXtSCc1*XF9-^? z1n%wS$o%S5P>lPz$;nW}d(h8u{4px8n1i7&{$8TI%^n;P_Eb%+%Xz(cG#cgeNQSN; zD22xFe9;w25aU4`p+Hmxr;RXB^JL`~@Ru^iR2#0kychr?m{8)U)f(qre2)o@pd-L# z9-S~PVOn%#q_n($9a3)ry*tcT;E^A4w~)k5IK`qgrz%Hm?`892 z(BfBvB>}cq-`k2~eTg-rj!Rk>s>H^mU+ogxzK}re@V`&DUOI~6^Q)Wv=SuQg=^#axliy{cJB3jVLl4i)Ji=6(`jvlcFkSCMUeOHGlR@r( zBO$yC6)7DqUhlC0ZmfYR89NLz??%!Uk6I`$OT7xnH=d7vFtb*ht+%sr~Hwf4KK z4CCGrq<2%h{P2Ab2mD-0Uq_@8Js6i>|BIg)ad1L5scYD|?8u_Xu)B5akoF3jCWzV=7i7v?0bxk=yo z>>JtdEs)`CIVB0j%VchXdg4y8WpNkO=Simg*}6miz37}QZ#jK|*b^@h8|JmS1H|^2 zVb#Z1G#}3%YUyu)zx=pF!s@%{Wiq$uLkv;QQVw~QJvCeO#&CU^zMI>hIHP1>vN~j7NK`0-1dY4_9j1Vui4dz8 zFp<@|*vw6v{slv-aXJH5_q@SOcA1tDV6kSu$rkXJzbwfMd>EH(D^&NA!I!oe>EMNHNGe6qYKIoiQHIavt)J~mjK%yayT5+pbw%?BI-GjtsdbLia~&z(0o+5 zf+qHZlGr8$FeucaX7_7H@`U` z)A0GHT0ql1&>+8VlgkRCGot%Ne^Wz8q7}U;SdyzmO|j^g$QF&x0O?0&_9Xaa4ZGZQ z`rcbJ5su{A){x=c<_bwV2*{*ZI?B^goXJ!-Lb1#sL;;QQ~18W`-W zM*OO2g@VnI zBm6p|NP(c&2vk2`eN(1%d3%8RP_UeC{gS3noFFxAUd;=35{tpHq8$x}dP`^e!K@zH|z z)#;a3>CWy{2N|KmZ*Baadso7jN`gujteEl3Nc;UUPC;bJKJ*ZAW369XLI>mv=}sNu zgC_z-ifRKiM8SOGujjQ$)qmE+h(%$IrIwu+3Y&`Nr$uqt>T>6S+l8^hIG?b%cNZ~Z zm8XP|6foqQTbs00D)?0-?OPwPumC63*$1p$?bfdrHB4{&{c!>{QRKZVMKqg8rEI+45WZiHJJhivGod5KL*ldnegEY^_EDoO<}SMp#%!2K~U%OT@~`OLq#6N1J#Viiujqyb!#t=JOcr zW$)-@r&%3)#6A&8ROxj}Gm(;V(wvg+T`)G0kc!unl1PV}{I_cUmxI*e{4xVR7!Ic9 zv)$0k5E5u*Pzw_01CPXcb3p^z=O7v|8s4bX-mL100A`j4e{8b1C%J^hvPbvyYo}7Q z6M6qjHGir|O!MyYA>KG@rtvlt$LuMojrvWYL=rTwaXiDc)-EZpo7B4M{!l!ho$pxeW)7<-DhQzKbcVnNKjaZz z5efINM-r^oUcS2ja5b2C>8R(Ev7)9?{S4{p;>byV$Wgth%4rAHCQiQ9Zg!Y-5_&*F zF2K1CnMF!H;1;`$3Lp^{Ht~w3_x^OVPDt8(H;ar$*#BK2d9L6lh(zuT1EP?FIfCJ0 zb50;i>?J<-+^ilGOFCX5J|^KsHdOe_ts#qyjq?!RN~17=?+f3gQ6 z$WRUc);b+<{mCqgxN%CSiOd z4HwpoSME#@wQ{@Q%@7Z}Q6*IhY{^V~^hqZ~hX0;&h4rWT)H-`k1*ABkREYD^ea_E^ zi<>EI->9}`7VYW4R>|hT_jV@E@A{Yn!o=-JL9@I-+9T;_z{sbUPFSjB&^)1+*cok- zaICzlKDJ=5J64=ge#|IX6;n|zJzV|60NO{jftB1kKoPn***eB3$WYup!b8~}Bjbe+ ze#&&c8_(s-)U!*H&Rua!1Sc$&BaXSx+@9AA(9@V#XW`=@A742}E1qV_Da3ema%R|H zOxB$lRtVjDnRXiB`a;9b-4yy4+F(%yYmCpPO27DE>$hq$E#~;sXPLz8)AvsSZykQF zhMg))cIKm|e{Lj+-K>SG$}f;yZN0wONzN?Fxc6&cId-l0HQW8T3|i)@wcn>h#8Um! z48LG0qa()m|9)St+oqSA@w@-;x;qaORbKB~h0i!W{c>|NlmITK^Kc}PS_e=kz5o>& zNs$Dt6LKPCx>`WN)LrXf@j_Md2brNu>u_$tD^=?BOf0X|28pR0G$k*cL-?q4_a00g zW<*9S*nkylCeEYSs|cvYv-3negwoZE#%c0QP?A*D|IMw3%CioKC)37UVAm-)2}VeA zU1Df;#6kT-G2wGLKmo645a%2t)SwM$mlxoUKo~O%n3q#SHl+L3D;YF%Xx}S4DLhV1 z<#E zC^mqIvjySfIDLkNp&}zWRgyL=khP`a4v$Wac?19`(ToFSd4Xl#;S%;WrWkEvR7p_l zh6ZV!pbMLceiMS2@Nn`Zp*e!?O_1JNbF{49ejcO?Kf>xdg#IaRV=v)9xGF~~tFA$a zmKnw*ySz>+xkPZI>AL<_#Xa zDJ2v?s+%@8y|`D4+k$NJVxdPJk6jD#piLT5Iw?Gm90dU1Im1Ml5fIVMxiJ;Kt0(HM z2RYwnxw2<2+Co&HQhG3xp)i1l^Z>$`IYBTA6-`@@1DcT+m6To}YZj_(zoDzCsO&&$ z*hzzzn?U8w^I6aDQ=V#x+V-WgSQ11Hi23iHyDdNd7;nVdTKEBa(k?3D@m`E%C%Mrc zXHH=dr}OagW6qiDvlo5QMHmDy!=Q!-w$uX&ucl+W4~)qu!!-5cFb@?Zipb@7pSi%a z@#rDTWJgr1=vgDQOA$ox126Z<^VUv3OUI6Pl2eWxjohJ`WRJqK6E8d7%rpP6A@6ch zJ3YdD^U-d%!sO!>R$$$~GUX9}fZU=qJK-KYAbnl1l}#^Rf}E_RC_t5>GgmzW&sQwt zk5|eQm}ho#W1qvnyMMd$PtELpr+M)qB#t%aQOHm-dcU3A=25~Uz4Z_MM12q;9G)=T zhwYsKfg=$&g8CazEyu%CxUu7*_jDt%RV! z7!86Un`8g|QyJVX?AlZ=_ZMR;h3}`tUlx2>CTJOyY~es064u__1)8U90q#ADmQw-7 z*onDVX(y(5^cn~}te$6WLcXT>=+Bql1psO32NT<%`CR@U*v=}*JS~2NCA+kQ3=4gG zZVky17#-z#l%lJX{5k$r)??n_uFciOW7!PEESD=;w5+)kaY7p(x3~AiCwmj)UU5-t zr0GvXqVk?6O^-KxVNZ3AOmIR=)qH6q8&pYoXPJNA@Njc}e3HIb$;qP)b8x!Q zGE(2MS=LiroYb1 z*Mb_1%ML7`D*#z^#H;U@9d3O4;od^%V5L!i=qmeSdp?!sW}^DB*TY;r=&l^tVR{Bs>Oe78IW-rVUE#( z(KZxN($64U9nN*!4qLIN)NnN_RNa89!SMu3NU3LBc~d*FUPU*x0a(UTu_6r+M8Ctw zaN#wNWu_Gcoqyvoc3N=D!fK`QSTln$B?E8@1`93+OW6R1xdaI9=Zum!UeP()twnbP zZ)DJ<{HsUOEzNEeZ)J_wfYcg6GMI7XI%rei84AZZ&M7K|2IYgdxrjiUqYA}iBqgrY zP5{urHY+QsEQGV87%X5ng#K~pg>s|*Tn*8|8!~83PiPpHBAsAF6;oKs=~F?8^#-0K zkdn7jI1y3isFMBdd2%DixG0OR7aZZ}+)0UGxCZ8FLxpuOVSNxNnw_YLs*(&Tvo3{2 z0~^~IA60(0A0iDs6-*`5UT>siCm^J_$$)facv)Z^u`WW@BHJ3xg1Nv)>zqb`8?Oq} zXcFL!+2qE2TZAw)Fk;ueveB^%&R$qCh?T2GzK_y#o0R=%mC-6f9 zY&K+?{B{&P^Ee5O8|>g?-k%_qm}WeU>8<4d&c0>I$BhklB>!Q|-Q7@*c8REjf;zPx zF;9D5@Po;Qf_RMD1uLn#)Yk{I>fPQ=4`?VV3BY+Zz=nap?*%}rT@%TMa7$-Nnf_Ni z*wpnnutGb<8LB`FN2h2Y6~7I&dI#w^HmY`I$*ZL@xp-}lGJtQ@9^Dealw908|N32( z%M-sc_~=h~_AlZ!1uH%KZ(gGXNw&H$vgKRORC?50&NNSsUn7N#v*VchGoJLk^U8K5 z-Q-eW=4Y@{WhmIVO~PRr(8XQ407xgmckqU4@m3SuU;+R*U4yjRgLFZiJjg5E1eIZy zEdhV0cxh&Q;bIt51&i{n?8h+1;X0@0h50uKxKy)>PoO(3dr`5RF-KHdz^@2|A0I?v zc~`zhk{2fWr93C5pt!ZuO2Gz>lEOzT+y_#sic9w z$mM?n?(jOErc$VQdk9@g-l2_=Q#@4xbfL0vCuCBp^g#!9=_tlaRY@^Lo|BYIS~Zc& z?|fWO?!}3SEvOaTyk>mMZ>kWap>hfps)gxDX}-y(qcYQU$c0)C$(K6OvtDZY1|3X@ zJa`bKeVzW(AVWL)vMO+N+zF}~d#NKmfe@n8Euy0zY=!Qc`=m|2a8gjWO z#<%MVeAR6s5DEDzJ6Y-aV2g7j0O}EK;NGf;Ik|ncQ_w(-6W-eQ`U%7*)u@wA3QTi? z;qPcWoIZWLsbW_Wlbo00<_I690MiIza!+gvpYSszrpe>2a)c^T%7!YJ8$l0=5WTjr255G4&vkPvR}H?~1r^-zlsYCt_u z!r@qJ@f*BCZ;Dkx_XHmbWvp$H^!k&|2W-9ths6-IHJNY0m2?(NM29w;am8oCCp?6o z>7lv3KF}lK0CqTQBHqUJjs33-P;XQ7+GG>dgOCXRC$&|g)zS{Uh=c)EYhol2vA{$h z>pG#Q?0B@}I$&M!{n`h}#euAIbkmwwf9s)8&U-dB0W@*2OIplvv$JXa*pFf~1MsZO zMr(KqPihTnE#CcULiZ7c`WW8n=PXrWdBzl-`4(IaluITN!rHy)kmp=tDrn%#yf_?dVB)5Dc35FiJ~ ziaT^})eixWJgg$Hl=b6G7c*z6kc%IETRX&2ph1y8YQAVqK_Z~+ z79B7&p8Uwz0FD%N=e_%^H;|J)VVxO0POfLr!>3*ctE4>!V^qjEzt$55wUP7TPU7n^ z1JzWyo1lrn#MW#G{Fp7O!xMM*>tBj-sa)Qb6qZmu;#yTMtI9jvSR>uo7)mcu>8u@I z4avo78dJN?o|~V{E8x+OW_%&Ad%qbCY)5^Ty_ypsCAS#PL{m1 zM(#)eL(4+p$u}L2@F~nocuW#XU;rilg#@UPpH&hJD@Y7TxT%V6+jBV6tef{pf1oE2 z9ItdlO@wv^uYaUCgQvyRDh!~d4N-Nu*Ve^?*=G-IBqU!UVWgqXNb5O$i)abeTJaaB z*6?=>d4h#;*J>w2S+80Y-!tmOfQUqK6lXhf4LM5B%#~lhS2&ErjnGz5_WSXKEAON| zSP{Zaq4O?^0iq?S~)b$D3^U$1)~%N!BPkGr8I^c>Ssk zSP2wjMA2gDlEvzxS3+G*b9M>1V}8{yyK{fup!Z>DNSGynE<6?(ZD>%4q~SGB>uc;@ zdE`XLVDYh}CtO2?E;co19U|NOF5LeUZ%dz%b219BbfeI^6CStQ-}-H{S)1}@Gp>PB zM);`n>zNgA1#$mT@%3B~(h8nW8mg-h1NxIkE8UQlC0Rn>oZAdLXonm~b*ma%-i@uvA?OWD^fDG;wMj{yK@(ENxmp~$S|>9E4k<`!nrUf~ z?ItPM9G>-v#HM1+%YbZu^@Mp zxI}UZZGx_QFbU^}MD5{1X;OS|FFcc&(_0kDnX_v>Uv0pU63e&|fH-4Vc6{lqOta2R za-ke})*q)NYRJ2#*pct6_siSWWPK}zPbZeME59lxKx!|SwvO|j#6pDTk)jMVRYzA@ zi)U+S=K+_~veaO&z(32!iYkLU^muSG-)6V@;Et@Gee(})J!h`%5nC72816Ix&&Aps z3jbApi8HNd&d!2^*73}vQN+a?*r;8n+5H3p_xz~+R@wtcpG}G$qx{8fX|-&>@VZsS zic@p#$7&Vdd%i?Qq2IA{p2;7d->9~yU{bPzj!$W^pQAX|qaYW9w_!uyjAFJT=Sk7- zOrW5+l$oFx>s(E0^y?Gt-7#m89$^nvvpQM@F?WNU8;?)dXz=Cuw)N{EGTMAc(%JKq z&jzWu>Iqb2Y)(nKx7%PWXr878YOy)}4E_Dsnmchj;7$PO%$GeY>Ko^L#6u9j5P&X3 z3rDz8o*c| z^6FK~b9BG4F3e#bF<@+d{r=@>-{fq4>(|9Bo!p|(!sb-`5`92w+mJt9dZvA*e;cew zLoMAubdNkMC@2$l9_Ei3#^OyVbh*@+!+1KR7t1UHy9UR1%A$sm5w`UIM>SVeQP|`c(Z|w|{YbJ?XpC0| zXJT2ey*+{@;YywO=ECC$<=mL-6TC2XKvDRQSFZ!7*pwgnw^kT51oBSjFS7Qg3OwX9 zL~R9L66(Y}tU74s#tFh2`T{au7fq~3D;-bn{EeN& zxW*lto7rj`?QMZt@j|uG30LX33ay%+lNalGa|xQdp=PVL7@If4@s!*~&7tDXJT5H! z`h*uCc~2o7m|6hhU6KO#)Z8Z5@a!AEWVAipj=!a>%U`8R@g=a8S$|_9Tql~#v~v33 zfT}(A^_OH{P2@->PC?e;e&NH{_ZGfp`mQF=D+Dgwy4`d2RW$L!QU6iRH;V4FA|q*I zPvV>&-{?f0Keaa+NWmVIMPC2AnfdutN5x@dEz0Dm!0ri<*#f5njG@hqz8>;d1GBUj zRK&9cLPmgWF@>YyoY^5}0VgeZH4A-oqK2svdSf`*z(?IeU;Jc&D@pO*H@+x^-(g@$A2AV(rCsl zLINa;8){1=I_n&N`ZHJB!M{s^#22ZvqAMyoRvMe04GRh|fS@)CjRCmbQt_^Lb}|GD)z;J$lH`U2n?pG1fgt30e(B^JRtinG$gxirQ8#_ zhhbCGdnYQ<&u78Mub#>A&5d9Fdln9`x`aZ>B{p#>ooe3K$5SDw`Zn1p2^BWh8Q8U> zi3Kwsl4y*RZMfoHJX(2WqeniL6X1Y`R1_X^_Zah^XU!>7QH)jLX%0f-1K0f^FCNnp z=^@i$PU0yNS>?YMs3=6X+x$da$ zh4U$&`zysLIHBXh=8Bij#CUI=3iemVFPSqOfk1=m4HXv^7Peoa4xP=k(qZD$4QgSz zvt_7vu>DD@2=p{7TiZEBZOd$b$~u@dx2>98(A{(TZck%=FILM=FgE{An6QZ1RkFA! zcZ^e#D_iVmUP;PA2Jyt9loZKWUIUZ(RqUuxLFF``Ju2qy_O>SP9A2HKpsz9sF2X}K zBr_r25E%p~+dd+KO4P+W*TxC(`wxj9zMruGzRCM(OUamltbf$Z@7Fv>48^vQ?o+wY zp5VrqpmXXl7Yv9Ak0nxo#!`5|t2kWspdf*m1WXW{i)u6x^4GfzFHS8uy&D#D}d;)m*!eglRhq$-ygrX*q;BrAJ; z_lr>`AayP7v9%4rd^p@jIO2OHy#Xou?-ZuZ9Va1Lg;KPxVe_Tk|-c&M1n0`yZiIO5<3Tf$4Btxe+-L zl%ZR#BL}B$J_q~x>{;>iVyR3h253*?Pp{>aEjMnjPTy{Jl-ks|q2DJ?IKA*rxpY8P zLQ~vFn}f^XG~W^YS84x&?C*H-Qh1p^k~~!?Z(Fa-X1olG&(r%fMwR49rc>R-zD){! z;q-_`00K}L=F0dyvq2?-EZh?68l1+BGQE%DlQ= ztmM-P)|0Iu%k{MvWW08Ue78Zck0XKJ!#GL@dk|D_9t;B6C+BAWR32hZ-dJm@fvt+@ z8~<`O4;vuuJAU3IM+P>0_-5oS^w}ua%+x$~wAf{NoHLZ2=Ao;k$gYk$Y*T|m#)Y#) z^D*sgW=w9$dNYfT>d1nrZ@O>cuL5-xroi?@xFAKSMSndwtp8r2w!twZRkB4ZDm0F# zVUtIM+0{?%_>tkw(126j3(vUIlaP+(Kc^1}6(ug#goedqk6NJTSu|waw=1a+gzpfM zeHCh8*DiO%J{jNs!9K$6?ZA8Dp}|P?1nW`!qY3-6$Y7|E+n3V1wg%3W!cZF4JxQ68 z5n~~4D#WE+g=b4j1TmPHL}za^Eq3{<-(Jm(%uFtjsM>cZ2LyS}_)bL`1tQ7+hmiK9sRE2pqL!aK(-#2>e3SCxuoB$`OgG~tU1T%t6Alia$t_|f%7-AI08bKQtA%J zN&@H|Jf{>q;eov#S1P+t1(4JRC=#KI&;e=1C1giiLVMG{T%of8b_0g+I|$}q6_&tS zbMpw*&VbbY?hRfpD9k4LQK zi{;m}$(gO*N!>Nh8&~#>m7k}rcU+}fd@mEVr4|Dj>YFikWZzAL7#*ppL1OM@MT0Im zNDUSsqeMbJ8p??T1x(RIh4@I;dK;R1;F?P9(OPU))UbS2GG-R4*pvELw>K8y)UFQs+G#@^4l>c7izX=dRVf{ZZy+|T z_c_PzE7Q?Z=?^cPqxN#ykMbEbZ0**_c3+kdwawrxlNsoySxoN3U<}G*l@7`J9t;%F zVD)ya(Pxuka3N}TkBC^VrtwX_x5JduUYx9FHM0(ZcO^yqjz-q?WB|3bp(rDDCT)N( zAdsk_vCX1Vr0$yD)~efrDb+XuJ{R&gN%LWq1uMsy zVN9UMf9>Bm3_WH}3wu|fiUrNLyN4Ri_&c~ishz}>THSl&Fx+iJ+gP@>T+&4b5s;|B zWLL5$;+}Bn1&$nxpY(BkY57k99hb}SGOa=$m~0d@!m^f%&k(kBa-;BL?ZX4OnF%d zpRa@&SqsWYM>14KzhlvzQ7vI_qb6%|4ypDAR6Kl{% zJJ#rOGd0v$1^pc$!LWLM9`F2T7IOIWp*jAVL;U`L!7#?|O>c2|Jx2IG9R!S# zs3#>8Eb#|yOfV>%?b<8|c%rz)ChD1+S-m1H>#2!ecRP9IGe0@ds@o(K7msuO;qvl) z7z!td+dZ7@DGWQ|mukjHN6t1+6x>%Xl1_@fUqr}kkxYV)AuS{rJytJ3mnp_+pfpk$ zZ)<<$L(d|yjJ@Uy73RY^h?~{wi=f*EQ&5oNPRA3^MIrcOhsmMY5%%(@u^J z1IZzycCr427g4=Snu`(8c_;P zp4uAtynY$2MZH*=^uRq*b#E4nG>v!qj&*V@_l(%^`EXyfS52DU$Dhn=%yYQ--3hdQ zgQmW`v6^?5jLSJG1_JUkCtE=v*BO4;`DZ1)^H^|aUUcebxzm%YL;dxE!>O=1ik9wy zVFbG8-95V0M6-D)iVR@Up=E(l19$EE4^)|FucZqDZYlxHDw7sE7)(1Ez*^PtG-5#k z2`J)p)*4!e+WfTES0n4 zqIj{5`e6jRsA6_H_k7ru30^bfTHs>AQsW{kH5T&=efx{qxv@gc*bX#YyI)NVUHi%y z8@+~z<~`!zZ;L*gjM2uaoAap&5L`Ihdr(*JR9Db}E_g0K(6XG`F=6a>mC#!4?F>GR z7UV146N-k3o_W)Ax%_rCL4t*V;7(966SqE_e4B(N{2T6~--oh`v9yX~B(%wg(BYMCq>|nRh$q$?@VI3+ zz>s(Z)?R6BD@&)$ecktr`4v=Tr>3dVKP!uM9twOUwRdsxB1#EWbvC zB4EtL5W=Roedu3^Fd7FnxX~AZSLl=?E4ZcV_(F2qf-LkSF-Cs~84DjddE4wiAfva* zmkU`9A8MiWj2;Z*j}>JI-@y9D)}@x_6_w@rmAF5?qm%7}F?bQ28eMO2RV&#mVkN}6 zcp($bj0i5t*OUzjX_}ON91^PkJoMwYnxsyrYLN(gGd+xKSku!aaJM7qK5et~j+BgS zEg?0U$mxY_;;8IQBKJKr^)&;g!?QQhUk>lv?CV}09^L|ua`>W15Gw{h(`6h(+uK@N zm}Icb$rD=g{ioRCck5iMqN3iL(=ton&lHEH)I#`K;=OV6iVG%R6x0V#9D!H)Oi}V7 zlD=(F5uwb5Q_RrAlj^u&dUHzux~FI>N^g1a zlQN=eh&s@8g@jKm+{oy(4`sqO4HU6V{A4`G(G>DkiF&$OYeub-v`z3ku@Gsy_-6YB zWF3z%Lif^jq5EIdEA%fKHEK2MyGVKFF*ggU$<3)XYr{7t2sBe}_7&GylS7_dtbJfT zO`x0F>z(|KZ=N;bJJqyxn`GA)o~_$AH%2OI--#CCgqj7ha@1$7e*Hm|Z6V&Fq0Uz5 z_twJQ_g2m|=Qp;JELh*{E6m(+f87|K-% zZJi;fMKyv$HiSFZOrB7SGp-2DqIA)qup7Sg8Wds{GEJ1dBHc{|FR*449bVR`PyW{4 z(HYK3S_+)<<4r%__vZXD4;AQZkqVtT27&f+GOUKdG%QdE9P$*_JdxKneRE+HTq2?9 z{F=idiFED)Db1B@w}hn?9zHU9^~Rxy1mCWe`AX))2-3`lrWAs$FIz9r zYUNH!O5}a?w;fPMSY(b^qc?!FVX%OUXhE^y7bxv&X>j~}y$tSwQ^c71#BY9!a5B`J zHzrUt=9|c_ibf-WfXap@*BZRtHG~pPUK{(LWzHDPx%QAsn#xF*Ph#%C}8tKBK_J#NU&qww_UQY}8RZD9s(4BO}q>><}AWQ-2U@;N_>I%?p zolV_=On^H?$veA)ITyZ>QwYCvU@aXQ23}XwE^@fEtu&*S|7yCgl83Mo4VR9yk%5s> zxq(kaKd(yxBIf9!Q^A>%h3`T6@fp_}llerUybGWkYfL{8kkF*@S(!-?e+r>d;!9}q z!~f*)G5tms(tpRMZ1h5^K=|6LG73l3BInJ%sjfSzF^)~hKSOg zQlx9#Wl9ZNN2MJLhj>3S;Oh&ei+R;Iq|7G{|!%f^ZN>?2rem z$Z2tKxXJBEA3BRwlU~7^sCL$1rPmU@iyhf-Z|%BmVpL062am-?iEKKCB@!?vB8G@` zagu^4lD>j6r#EsCqC%9L?u-xh?*D-E<>e%VzDm;`xnGb6?*k?EglTh?2$2aN7COGK zGak{UJ5kadx~1scW6G?JY*K5FkddfAc{#+8YzTu`cwAUH#mV146T!YKd`&??>Cv@R zLH*YIcZ58;sTf7p>>W#nouTu%TC82tc$h@vNyJ1eIAfef;5Q&;I|*#P&^CT-BNhB4 zEotPorc!>tFMMKJVLa*_W0#Gv>Kw1VY!O&;W#)w&wapv!Dt6AZK_hntXG(_>6a(n!0aLn%)U7+L@a;=LA0Usym5?;Qy zD}ktm6FI(f!PeB65=yBU7RfJUXOspxj_9gOscYNHs?y}^M|p{KE8KfKK2w3IM2#;D ziHjw!6u9nvoyqf>`dUhHPU?gZR=B%b>KJ85JMSN|{Rr*>{8BL^7*IeCUOj z2sR9j*fqI1bH6^eoGUBX;I~Jp=Ib@dU45+b44;TRa~4ktf8=RnZO7&$d!!8a%U026 zU**5t{eiS}Us3bZt5yY6;pr(MHe(`oO}ZrfB4nu|+1@)GpHjXLm~tonxF@P!uI{IF zt#SB+)9?3#QE|nVld08wR$qi$iZ`b0R{5;wtGDS&tQYSyq^=X_-M)PRUo5Ej&9Bk8 zlDB!xY1_CenI^XsI`1h5$s>SV)q_&_lX&{kWLSglhJZ;jBlwfveg>vb9fjVwT<}=W z3B>&Q1g*M810>8Ph+B+6b%#TCS(Y4yupvT-*wj(Me*hIvmXY3eO$L4H@q0=aeH%%7 zISL8zC2({cQj&lG;*^aoMTfS{EyG9*$a5F#r4cM9*>hgF~;F`0S>yP#s-alS>}JKRpE%io*qv!fGIMo1>q z{f-12OQ(DkKT@gmEoW0nN_Skp2NM-yrGYFBte?qv8OyGl=-9Z~Vn^IYW^AzKmdA5} zIG`h4o+o%g!TYEIM3>8t#3lR5)d&t@tC2Q2#%6SrO_DBUq)>*l` zqa*w0eI3Rd__=-GWlW~(Y63~4~2nwJmFtdZ&c^iw^j%( zFV3Yd%V`P}7n-nyyZyjl8C9k22VQ%1G_j}I-jwNGuY8sIi ze%M?9_kED_r}ehaXuzuZAkEaT0E#dgPI>$)PI)SQHXY5WSqHAS&O|~lr8<@+F$iUC z(I9Dl;qJLKD{r3rNAdocGJW<^HdaPMEF)@#fRKIb4zFosc@r>jt1L?PA_Vj#%w-oU1mypFr!=yfME(q1+7n$cB zpLz?f^OqqWF&EG~mkfvNOi?P!OB!%bG{Q092~n&V_UV=p*Y%IxG0+8`N}Hgf zC6y066>Szc5(!54WOG|Ni$RUzr|=5wADn`-V7>D?a!NTuhtihX z+gU6PBn%D|u(17H3PMQ&Njy2f76nBgLb}Gp=ql&eUUpUA4bs@nJk8{ag^Pvn3|@fx zNI$^3_7Pz!14_8b^8@iVa=u*==!5E98hCr*N`D=9!i$TOMBzSZo&pd2sKXH^A@%|K z@r>lQXqpLQ@I@1@f<)B$>{KN3-bIo5WywA`?Ucz(_9XLBWo*%50Zh#0cZkauOMm|S z6c8-PZeQNgn$>Mtu5gbE)4lxbCGeNTa?bWr{>005h(h76VSEkccZ4d03xdC>Rv|&1J3EFU#d)VY&uvK%70nw=7kyJx8GSXa;yy1=n;eZ?*QWtC3~UTe zWOZZK}FTm_AB~BRnOW*Otzz|OnXIMP*=a`t$Kj*=~lEL7I&`n5)#P< z&K(>SvNnX@9Qb_Qe%cFpIN*ey`?ieAXv0>1bX2yag7z+VDjk_`G+X5N+5+w7j5;}_ z8t+f8_CnR@83Mlfl>J^eG&zLBogdEQI`Q6Gzf-HYCZ;e)fVJdls9XI$x;8ko_G3kD zNPF$4q1w<846~)$aQwOm>bl7G!s~2x(G}R?oXB6OkkfTSL9!CR&;%E4>f$TvlG^K% zhw4&}XaxEz;RUr5be*j`_} zR9}MB0L5>};l07$UtcOD#lY0i;_{&~L8_tJzM+QtPI`k|xqm}_MMHzXWMOo}JrKC5 zy`crav6V!+URSb>x={hKvE{kcl%VvuRb!rEV|YkoAw-%ox3Rswanhyn`%>eNA^YA! zsR5*>pK4Kk%*aEWO~blPBWgm!FPp{+ul)3HnuxwU#(QBRvuT=>d1|O>R)~079(f+A zc|j=qt2Oe16fwMs#4=|y`cl)Xe{+ue#ifwujf!UR7tNbP%{3SZd-HqDaLllgJ90!8 z1P9>fWdb7l%hVhU>=!u|g?Z%+ZwXjS$jV4P^?mT*nTBzkp02iGP{9iW$JareX8C$% zNgfv9TKgAXZpje0;AehiU;WK|gFSV_)e0gYJ~7oX5J>Fj=GxB%of#p}{N|j(tjvo3 z`l{BS4LP-K<6qiZzW4O}7#y7#A0M1qUtC=LFDCb3fBgPGV16&aM2wl(t0vmC){xuF zdqQ&L)0EHY87?uIIk|cH1%*Yx{9b8U`QiMYNp@4~ zm$r6aMD3QZ)^YE?W%P9q{2Uw_9vO8_8k?M&o|&DS&$`~mzL8xeHw?XbFsy7~+-;4VGbH+|PXZ8owZnlHDFn8Xy$cxD=(7LUUvT>SM zL*`a2+AZ>gr$4B=#D=Ct#K5DRZwh}cR%J-K{f^lTJvTO3A9lB-cxz*Ad910qqy$)E zM4|5oBN5bmkVl~%`}PX``dGgmwg~-zJ-(v;fP<<(c)*e5_1N}+6S*V(PiGmZ=ua2= zSjbOT=IpVbZlCnw2HiP3^ank-Mj(TpyengaUi|2*0=x5jVzlu?z65#ILw>R%439kD zC0F(N%e-+K4)BqGf`qK*$S@K#tS{d9UN<&=B-k)}eB`4XJ4jD!qVY+bE(yNR=qGEk z&w62C?Fg-K`&hP5eh#z=W0CHzLyw}oMHt7U{S^(yV}c$hFg$fOcJ1;Op-*%8kn?h4 zJl-(KHQ`f2%EUxsS{37DQf7z2WODBB>jEi-D-%zzecxg*pCS-l#0+{L53WjdM-EfAvQV?CzTp8w#skw4&QRevye5KytQUV?~<0@L8Zii|T zC+3A3>OjMVTKc%8g*xV(sfBtA!zoZzayU6h1J@{TO(XYe19LM8UjJf?&{d3=tzvY^ zOJAgJOlP*)@mPUshHQCs`zeq&~BP?`|q*O0%G@vq?^y_8=g zA!akbM#G(0*2kg)Wd@>RsqD-rl5%F&C)27~Hl{K=jkhzsr{ro4;x?yOBqI7~7{qOCo#TPyuf@lDo-0-ycnI_0{dorOs#DThdxy+rKyCB+cp9Coc=sh(O`cWyu-SE`BREgKDv+VIdomU%?!6 zLYBa$*DVOYiw`Lc#ZI&1V6Z_J;PS&nAGoPQ6|oj9Yr7raLP;oQgUk8S21MWQxD?q> z@zVJMz9B!ycaE}fexR6GG)GPag}#zCfzQ8KiWJEmDct?2f=Wo!S`MjJof2Bk9EpgG zGZ!f?B`d_{D}=1Y2`KZBD(`T9c;BZwA~I<<2twQZ_NKixaFqS!2wZGlV9aQ8RPmbR z3xJvXvKJBW;(0>$1)nls9BMl8T8RaHAH>pVf_wuG_T@&x033#&qEkIe#|FxJHGHyT|d4iZ@$! zFNS_Kq~p7Rlk-LeA@nyU{ng*}Ehgsa;UH;irirRQ*4WAw$eUwo_V0>1R;#Wx-X!VLNq(zapNUy47?)FZb*OnAgJ5xA4HV0!vMT(FXiZie2V3`>1Xng% zTo#jN(OP%h*Vk_!TA@m))+3cHthf_5Og{U_ui)Dd075eA_=X>uplC{y%~LtWo@kIT zq_UFDSvg~pQ~!O&a1;tNHnSJ?x~0 z)K+q9#AMQa0~>~Dc|M?tzD@U!Ylx!1Z-FhazxGRh{MmfP>=1HSs?`CH7B>zx@Qx4evjn8?L9%jh@-vwck{fceXp{hP{@EtFwnXaBf)G zoIW?)fpg<-TtagA&bi_AkLLz5aBft6%joR})_!5}t@*rjZu~ar8n@xGqAUrQ0@i*d zUolM+agI&?tpCXM!ZRX%=iDeWmyic#LRzE5{1|u74cRD(PZC*2&W%*fa$+`y{d1!} zJGn56jNP^0+5U33%Xf=`b7QP6QKPxIXk&G5 zP|}5=5Oy0fMZrd~YQ=S3>1#^xx{DuAw60mb4akhAKWpcJe+5lq?ibQBQSL%=MzH@Gv zyddG-IX4XFD~a@y=Br4|rsk{3&p0<&tC<%YI6Dm&8@Wc47Mplirxu%SB>0{4`3a3U zCz1}TKT3Qm%P$#s28aA#b~t6 zrtJCPU?~c=e#_(UTbktX->nOx%y5d3J-vQ7t`5TYy5wY-4{k6waSctpWW6~&q2_6E z(+!ai35Doo8a#@V(Tw|$FNY005+*CTKt=40@}!|qJLtB}y=T+qFS(aHwKX1mZa`NGcqGum+04J!gY${~(fN0Zt$Evy;KCcQcW2_{+t7=djzK5T2OcEoFiAe)43Nl zNP?W2N*2p`H%-ha zqH3`!_WWwQ$5K(moi!rs5vd*~?olM8V%6N;U*|o|8=}ZoYpVIy=l9PILE;5((dTfN zRvl|ZxEFl94Fw6PfOA7-!8fQOn)XI*t&HV@UpQtAy{LGdT=0T_mKGeNQf=AL7TY^n z2DQtN#zi^P7k17Kv)X#~7?$Q z8&Y&5?BPwX^A|tO9iAI&4RL&{wastW7sKGrLHJQ6T5O4z4$ckkC7uJMqB)LK|457h zygEUK0Ve#P(%}D}fD2_C>U$Ka-2agnC+-nr?IXlk#NE|P{gJnym92kZpn1?fF^-Cs z3yy)rn|LN9N9_{hxIYo&XS>AM4@QhDzjc3y?a~8CrIR!~wu@9jz0mmztl5=4qHsmUceDq@_@9vK zrj)(JE>bZJKOvA}he}WDPDRc)kQF|GW)KAqrCUybXMXq3w5PZxClV z7=;szxK^&oCK3+6Va<<72_ThQRP16hfK&~4K{{g?sW7B!h`=)YBT})nI>-P>6(?57 zs50-W+^~aGwL#zal9i*yk zy}Uz=k04cKk_W+^2s%-5iT0p-`jN~r08-T{<^#moJ%(9Nyk4c7og=<5hUE~c*6hb6 ze_zx>r~qDxkAX|nm9YVr>4tH@i17hZNq>om-yz1;Puv-O0Aef^$Nhsw+JI5>(;SH| z%e!x7=BCj$D}O+$F>#sr7DtxnkKMXEuWl(IxV|1W6own7zBthW5aTHFbMa!L5?_3S zm!j#V<0X{pz69hi#Rv)dkW1-Fv;}uB#d1Bw7kN?F7P`I^$A2zC)=8p0l6V;+CY>M` zSl1rQy&Ny=ksu!@@ioEmer%~fL?NdRAjVm&2f#>u92ieixTA9ME{i)V6d#p{ce&hY zarl2-8U7QE11Q`vVDvf(jEOMCn1%9CF+K|zk0{3GM-*eZAf*_9!bu-0#(xAx<6U6% zgi*MPLtq3H;~iiu?=6{~-hHrT?bm?+`quASZ(HQd>e;YTJJ2pL3MgYyNrW5#qcXKE zw<1X;7!#%#n^3JHk#u4FtPNzgqgk%xV>4{C>Tc@G$WNX7#cZnWhjFz!&e zuy}+W3P*>cy+h&l7305AI4N1U0sA*<{CmLYlvTa27*hx6A61M`10$8!aaK4lbS}?`< z6fj2mx*Vf$JBsm0!qZFE#z?ja1-lgPBMp2Nt(8n_od}BInTl~a2rfm--xHv4WBb6! z;wDgh0E{~n&b89;EMVMMjQ>vI3O`z~R5NE}H8&ljaHoJV*+o+3D22=7yY>vAa8WPM zy$&LAKcH}jz!=6<_MN)FXaJ78?@C$ft9OHD{rxY`aSb$?dza$)XoI;pNT5;`C}`B= zHi%ffp_r(6L3Cv(ZhrkXNT`N$sU!LJ>Ov^Ke&Lp=AEG>^hQ!^=Aw~;bgUH)*}un+|PJ($N`1h0Y)G3k%CBE-?$wLC-anahr$K#0%K=Q)%8PQ z1 zdt(){xkXEz2FAZqxY~xt+>0Mt_7r0nFp_A{WYjhqYsbR(0g7?8c#|niF$RFKv-VFE z&X^js=V8(wN2GtGYP%lh-`Uz}P&%P8{;xQer*R2DB)_9n?H@hNGekvaH={@HUKTdq zetru6fkFEo=KTQWsEF7&8COVR_|v4+w9ig4=~=)NVrO`m&oUdDTUx((A!;|Zm3Maa z^zKu&T|_GDE}ov6+qJyh+SdOs0$ItQ);k7d^*uv`&UGoDDza@^DtqE^xZ*g$HSDl7YjTA+7T5`A(ENhY_S`mq}Gn8h(Q&xD=Pjo zB9Y@gx}HyWAIUz+4V4wBa$m5H1>q3xPwR%HWR|s&fb8iXgTmStpYbMF&+s& z(eP$9OTBVN(^($o3MGH8ow&piM4BmJ!ot|6YI~yMh0Nb5r>NS$L!>EFBfLUDRP3sg zJSr-lLZs<4Ma3(Zt&fX}dx)eAZ`wJ14GpfR$Q^}t?g|pfl7mVRM4${d>u>RHu^DLT zb~nHJJ~%Bm)D!Xd8mk*s1RTO;u5f(;erW!8MZbhuycq}ge!Vt+;3Ss20h;&3$tfSfor+-P8fN0H8$Lku0Ysa_l z9PnL*=-hE8F8vXlhW+nf;Xib|XadOI0s)&pfD@f8cCR=Y3P6|W?!Vb$*mb-P z=+an}xjr0&0=!f(wPU~;bO{n$Clr)$=y>hXCBX5Dg)b8;Sz(+?(@B$<`YeKi!31A( zUDY$aN%67anE{&?5WlhZ`_Q90;#E(Zrk#MzzT*W~j%>8+cpd17{}P-Q>RGF;!z|f5 z4Ks4u`t}{Ke*;cT0WSc@OS%rK?Ug66=Xf2`C76zwcn-YUXT3VT`UBzZIWG3gb2rU7 zD5Yf0QS~lstqo|Khod1~R_JxU8%zQjZ3}$wV`;_^#k$N5CgumNJ3Dr|4}|(IAJC;e zZ~`1JfG*KJVB0RbXYIe|cs+K355=TmV9w)|OTT9>G#^E8p$vZ&7O?qm!3h?yX*6Dl zQ16Q-LM{6@bZH-)(4)xr!x$%^=^uI135)9>lChigJRS4=Kf{=IVd^9_{iDV8pFoo` z7QmYn4|!A6pLmnWE^qRN@urH?ys5mqWO{P{>E!`m;OXV+gksN$@ySEp)N+hB)e1xI zPpDP9KmKh4WIujPO!lH37kl2+%48s_Afiv_Zue^c@@(6=B*l)P`+ zgiWWFyov7{_I9Yn2Tw1b2~B+sHwinN!vBTE<#!uV4?+9T;`)=4cYBlc*P`Kn1x>pa zR|G?)(Lwg}pLkQQjuYS6ylL3KjrRbWI%ov~HNQ{^{t23ZFow3gjVk}h19#-ND2(*? z-(VSx9f78u?5DOSf4l;`n&nVv@NtW4H;fU={rG71^T6UVDn$29gTlfXHMDLt@O9TG znO!RQ&dPpbxWoOV4R~^>T5nrJpR5yS5$Oe^7Zk2XE;H`ccn7hQlqIod_pr} zK`A`A_+tpR2&8krd6>O#00BuN$Xn|xI*;cBP%pIq-dyg|OWj)OHJja9?RUERdq4Y` z`g?uqc=mH`H1)qx@*3U`2p$h(B-EI*;M*>0!+4X4{>9wCSzJIELkdYAn*#2r#dS1{ z5&T>=7%vi~X==dO}>9Gdp@1KhWC_72NgZ#wfwEg@76BW4)PQK$a?@$Zt-#UzsgSx+8)bK@8`ng)y97*~e1D7~~Xhk&scwf9T@)IYMetWzpFR;O5XwoR0R3CE%xaLgt;mY+CC`kj%V_-AloSJz1aiUo~)7^jkc z{{SwD*92yeAj|mmUlqs}!;t5Nq`cmXsY{wxvEZgo= zf@#J)tg(Ll0&rJmjfFtDtce>l7v?B=rpvY|t%j*Vtd@(J^2Y0^_?X`CL+!Kd1&BE2 z*fxmYHx{_3hU3lzm)oUdvws)m{$>+>ze8{|=|}NC_u`ICbO0{bCoW_AkXKN^l75>H z=6ny6en&;Q!=ztanhhh%b09xKMMM*K+$M_H<2`GML-YGdKbi%c1@8zbv;|+hvXf%L zr#=ntlqh#B=?D3{izw{H^($ztzQn#+e)kUc;Q z{tfCJ_&`VVdZ+E5gR0sA%ph;~(|PJX3Dr+XF`Nu-V2YYI{9&FlYdst27RDM#MC>Kj zM*-B(!df6NC6XmbJCa`4Pg|CVAeu|Dd~6=$WPljoaGP0EWKQjTx`!5E8(R)@E@eAs z7Y;*L4_ir3A78&G4o57Uh{&kunAkW-d_rPUvTOjXhL&lHD43QNo99=UzgI&uaIdPZ zt8V~QGMnP?FVRjdon5;snc&MGKL?ZAgKByPhW2V`3yYNAOZ&NSpoSKZmhB!6y*!2m zr0ryt1+SR!2`%ZSMgTQ5GpPn37cMG&X&`<>42Bl;_qP+&U>**TDgZnjSgHVs+wI6? zVM~}hHMG67ojjgHEG!q!O+|fJLxZVgH2J$0&RJAsKNsFd{qoFE!2{-#HMBbzQAcWM zsvq;Z57Tysp@O|!I9}+9wB4Dx@O`wKue%cPGp>1ao z1~?q=q3xy$PN(hu1zNmA7XWhMn1;5*|4A+!h8707SRT44B6~HoV;0V~0{_um_#mAA zw`Bc9cocmexutXGGGS@E+tu@^W}N^P$t`MJrNQ02ves`;xSzJ$siAp`vh3H;+5*iE zYiQd*56yTdZnu8Chqf`DJDPG>L))CIAPnO~sDjnd8g9&PF18fJ8!fdfJ=@x+A{r4t z`U2A|U{r*!KKRp_Xt7U4UjC>|H_L_ta^ZX}a0j{YqoIQS7?$w8P{Du)K6x3g1k0Pb zf}S;*NPfI^ENd26F8sKK^VeMX0a|Fw8Ech2da|REwa3zla9BN0+lkwqOcfkhI45%9 zMCkB)mOcI9cN$hZJ{=-E(F6KR+xUb-vfDFWhF<$i)p&k>{(o3C-W8n=q$mHQmi=*d zuRg>UBIk%qPl@5IF zbxnZJeOq9|wllib-_q4U?U+f}SA9QS4Y(r9$gg)?5k3L(Laz| zb)0xHIK`dX@ujh>8r=Tr+*z<>%HxV-uE>F9@8$)!&evgZG(>jiiSb_T*e~A%s2%@3 zLfvwA>>>;Us27^oeOel-49J)q;R2v9rTlb*n+Ec@U4(VP6cwd0-d{loJjc{F#M zeQx4?te+1d+Rt+8Y$}&yzpXz;MDTp`IG6LGC=M4^B|wqOyTTI!E_Pg zcEL;;;oZ&oQmWh53k@YKrJ#Z+P3y(BtIysncQJ+CTJAP$-dgRny3DuM@22-EgX16y#L~2Bfum=4We+F942!S6KMZnRALvCq< zTcWJwM_2KFlZp|(EyfQ;TbQ*yhpD+ma*U=H z$7}W!SZ0uNvc49lo0}2Xc49(gSgp>&NR+sNK!~g_4Sd}lYZe=chf(gcJsi3Xata86 zNpapyiMotXSicg7msM4JDRR;tm{J#%_0V+J$wn9xrbydvaitN0C&mF)J8X%1QY%x~ z{zR=7MEK(E%o|OKS6d^@o$lieSoS~i+$Dq5*}ynXJ?FTXHkes6m*Elryd zUof^HljZIA58N;Zp0e7NeWR6LQD3f@Z8T$E5QA-JCA zM4F^U=%!r7nEl!N&6JL`tKx+G!W*g@y?kOC1Z3QFSCBg;lBkv9IlgOXH2qYhcP>?x zDz_$mL8L+XT`Nn$nTdA)Qv?r1up|K^c8s0;6KN-_wx77GxmD6Erhy;D-#Fgm?&j2C zxkKJ!g+363l4TG(CEjgS^#wunE2ThDefxYsc7$E+b_~-4=dQL7N{E?P9vd`X`r<^u znoTd2iZha!@MJ|EL^#L5U2D;V;Is%u5}5-N8ulac1eKyIj&AmTBpJqKim6GWB44f@ zkd|QS3saG5I>dCjFtCc;Kpxdy)yu>@-H`0VgVYVcxDZWWgzn_~>31c-_)^I}q% z?yPG$#ogR=K`C0_3)V97RmNx{GwC&IOM# zVV?X}?~chkRE=YIRP(b{s@5pUhu91tIRNq+dgkoi zc{R;=Hcqzx5=`Xk!PEIljl z7)+3ft!N-hRL=P!se1*pddY3n9eE%Fd{5e@GHzgab7;~g+?;Hay339C* z^vn}PEeK?-;LL2j=**eBY+2T9S&8h}x$HQV?XH{KaRu3N=i2dh+3~H}@e|n#a@h+h z+l!dni*X?zsOTs9@<;WIzijjDN*cS9Jb;_ZOQz&j-N!y+0>6z_jeA_&`u?@D-Hnw#Tw|8_gv2^wDl+Y6K@$%Px^gigF z^M{ZJmhR8OKSf1LMFK5Em@bkc5|^5uVd|Helm0XpnCDUbED0?J=6Qqy_jM5<+S=Cs zwc~wuXLnCgS?~QmKo=PrjzQEO7-^lzJhW(&J^~gkY@WxZNb-8xH#;y$oI(=TLbU%z zmeNM|Ig$?eldl*$0z-T+FOFW=DO&)#2wxkrc9eu3sz#mlh3CMXj46unLq^E}U<&h`w&a(&BDYF25c>_uaEZQn@o~hPT?Z};cs%!y^w$7?W9&I5uS!#VA ztoEkbo98*almFSGbqBvYC|m66BB!FQt1w+;meBfWU*4d;d~cp-aWZc3`Qbbdtc8fx zA^#^?N7$qZCA$=4xThs15kB;`W8Q46}u0`uofqIsTe)LX0kskUGfNFfC zY;pWf2Kw?5g0kSV`|^7&#C2TX*S?H27znc}VfvPv|1gHs^Qdd3JRX(W_g>bP>R!og(e8MCgaj^Dw@1KV{M0afQwE94%Wk z)ghq3`tr&ju~>n={83#*GqgSK%(8{KTkq#N2X`t0O!%K=M^*G}sh#wYg?a9dihjH= z59lIh3gLS#L}7lKa5qhPbrkvBtR4q8Dq=2JU;em?ZnCe7i2mRtcfcNtBG1yU64)tQ zoN3V}k(9IV_2sF*pa_afBnXB3|3yVV-j{c!-H)JNJubE!1(6dQZ*po5|0^?Zf0tj@ zXLSB+1qP_H2Obq${EjvDJX5*qcdgi4w+=vLcXVYNeAU>-UKH8E*+jv`-9t>v)92YE z-}hE_0Uwmz++2gh!eu@I5!4-VJqn1RzVuE_PkEXF^dnT0qzm$ZjW-eh(!-56AcETJ z^ZCoyj=Z8yrQOC}G>UfbfMxre;f#rqosBmjf*K#RygRxQJ0%E5FsOU(A&1@Xx8HX_ z#0hlSQI-ClMg2NHOOv_?HJf2(3BTcuSsQ7=J_}b8_SD&*FMfP#B&8 z#qQ{eMnqCk!D>i*iJKV_AHEso@O;SS=Dx`h-uRw+)TLrE>q!bRH37EEU)O)bHr}vT zKP`okQD8zeO&OT?Hr}qaN}sB-M;f2=+->YdDv>7x8*i*tAfk7sM&!pf-VSp<2x3$u zq|~s{6@ox@m=*iTbp7G(=t_**10aGbf-led_=VAc{Lc@B0Y0=+Xz6(aA1}%<06Cwg zD!5M;D`*}cto2QLgWs+%3q&|mQt87+SLpA9`3^VUxP#Dwn>uvk!qHI$aj5JK5(uw{ zCQOh>rc4-I9#5W|fNi`zedN}6d~}7~QuA|0MpsT-v1z50n7}q6zTKeV z?&!**YyEr-;XC)yOv*q*Q)9AK^P1Y7jW^cnLgixi99r-dvUas6DR*lU7n@Ik$dwm$ zKx6Nf47J(4<#u3n0>dAI zYXj~#8ea|GB`c_~VH8teg!8U9%V2ZUHxXxM?&XNiZ2=o^N5u7a^+XN8 z#@l|*hi}CYE_@pWHoAgM)6M|TD`bW$h&BiI;OfJuLKWcVHMvQf#!o5{$BL4jc!6-K zY=u!w(9%8OU~~oL9Q-kHT?_3dq#Vs5&B?z40s?10NH{F{uTS>x|CXxDuxx!KY;cu^cf4YFLEW)@j`CQglyR5&fio1JzA4CpD zR|fgt3lRHSnCePU{-UdL1+lp~`B$&_f2|?p#}!2a%dLSU1n8*6)UMFmpcbUnh*8?{ zyyo_2@Zq<`GZuO;W)eWG^vz!4EhAcvR2hvEc`1`SE}BAAICcvtSB^N!S2Em_%?F$8 z0=WKz##jtZBe^t>Bi$niNtsQ+gCdUTxDR6&5!yYoz{t9q@N1DV67tvxNSbiSy-QT= z&+ds|5Yr5tuy#iJ`6~hiQsaz}iO1(a4z)n1_^2YLR>vxvXRR_|oZ>Eoyjb6{h_!EbN+-~Db|(aMsGi+1gbt%%QD zyq_zlhYXRH*!#5RPh@O?JroFX;t6sLN#P3bH?@SE0vjk{S zzvgFWrYRU1s`B)7)~#e`Rwf(0sPFl{o}CT-YGm@@l8ofNj&zZ=D+X>n$c6@sdGBcu z1YfN?d}Ys3>G(ALiif9rnl`7P``lIIB31h-Po=^_n(b7})~9_-k%4&)NfTzIuH`Fy zXpRq9FTYu>*D!5t$5@}96+>X|NARLc47fLDb*@3PK71LxZIotDSIDv{2itf{bG*@@ z#aNkHPLB22Sybw$rgd%wy>XPo8~KP#iXa-g>w=HBTYK@FpH&LDvX!YPAtUsxRr8DB zdfHigP+YR97P{VL=QrhE7QkF4<+;#j$~f%QK%_5{Vrm7Ef=ZE5)T_Kk2`X2^r1$&P zP^Pkgk;{CWBMQD&pT$0KP->LB=U0zeO~<#{nQ@KCcfBaO z+l}qhKiNzhqB>;s?Tam{S9|z!@+F^V5ms1!$DP;n?I}X?y=L|8@iHQEKOnXwMtA*I z)XRs7EnaB-D0kJPaRISq8>I`&i>n(&M({d8?@uM=T+Nln0;}8Q-E8eIIqKl^!D5A% zK-IR@G{p=2u_3SUM+XbaabiD&k(_JDx6n{ex$QC8i$#u#o|^@J?uZOWlan#q+*vjv zHK*1ttg%iM+B6#^xi7Z#?uspR7+=d}R?GeIbPwpgdNr~s?8)-2wP5ab{IeNk zvl5A((a%Ligx-Bm&lmQi-d!uZ)OW++Hg5xc@>&(o@A+Bmya5WVUv;X#7lN7#M{YF# zYO?yh7=Hd1o3+|S5E9d@(%5x+sjHUfJ{K>C%mPs(e#@I$#t%~o@62d5Zwx^5R&NLu z5!#>MOlmG#BckP7u#2{?B7OI(#jAL!6Bpd0RQ#*0`E5>G>ekHQ`mg%_;??Tg#&dq# zn`0X8YdzV&;Xd5nvPgSd(tUn=y(bJbTXLJlc0a|z@UIWnGq2Uti^L~9!qe%F6H)d5 z#T_Q#U_Isz9`8(@HA+nN|L`cW!oMFSX80eC5(nd*7$pV)qr?IyM~Mj!Mu{a(ra?}x z1j0s%b^bO=OpA7l>|m5w=)@>7=6^g&?Ed#rV$HKgi97$rC~*bS-$#jw|JO%}Y5(6H zB@X(Rqr`D1M~R2fj*b%N{9ha;CfFGzw*PNNiD45HKZ@!2-;Jdnt^~@0eP49KZ z?ym%%D)fRG;n0;JHxSZWNVlybFrU#x!Bmep*N7=Ku>f?kGN)QZN-QUOS_)%l_&|1T zU-A~n2&brv>kCSpI8YF=9Bg~(=SULd*h(PKnF^dFBhG^Y+eK7w^g?w-`)- zPO#INvh<@3-J}(_#FNqBUPK#pSEe79lX;$>@rv9^Pb7(#fahLz9WMqv-BB)>sq6l3a>3Dy5yP2$AMsD*Hvf_bI(UHKz~ngSp&d*E0~w&d zi~=9eZ8rTqx2clawUgU?=9s#Z+Z+lP_b}dYoiV?DDz|9}N*Ky8EdAl-uOD3udK1x{@d_6b9S#WyC@{I=w+E z*^%g&4&->w^e6UH{^rWQEn3^E$OQmu%CE70EGb+QIO!tkPk2hrK^v_ zJWhQh`qqBR{|tY^jx%)s`GBKiP=G(t`tbjw?!5!4{{Q~}bB=TDy;rhF_TD=7%*eezcLn_~;vGSeY@k5p7LN>+%5sC*A1mEP~J&vjkD@Avl~|ERwnkLT<8yx(s( zM4<-oi$SiR|K9t=AtmvU=PO2Oc_Iu-EiXkAtvF|&=j&}*l1xaue0N|toZU2OFXjIu zx5@i)PalA*C0#v?$^@-(g{UBNn?L*koJ*K{{s80yg==`kes0szj;i@*7}UvEOGo;E zqxXru+~y^9XmAy6l09D*W7eTQ;Gc6mzr0WU&hvFIKsl*G)|C(4(+BKbEe)K8-1w2> z*`p*z8r_Q_U zXiI%G<#TQ94R(Ql%x&^2^GeXyQT_shI-(?Uf!YmC_IbVvLRpvK|E1g}5(XtK^M_G= z;%mb3^d=Jickn^>H!sl#Hkdy|?E8+5>hLU{kY6MAcHblRGDi`6Yx9zqE%ZJuBx7qH z9N(Xkk?3_k@1W2yO~>%4fP;vA$e$wi8V3=3m%WI6enaD-=|wiOqx&FY@7W9=$-^0X z{5@hX>OM6yduMDeVfqlgzCIEA?)`^DpzWveKEO7=&>o1QBibQu(=WTw3mqA`tbceA zxvc8O&FK7LdO0~_AIRcVIP|0Ko6btRk6x#s-XGOR==J3xoa2$p6G!!0LFVzNKs z$&N^%Ede25si?zM<;=wbhG$T zzm3>)te~K>lsc81=K5iJ`Ds*tN3WN5Tw^{my&y+*HQ(qSw+|)|`5nFf>np$mP3Z5D z%P4ddlPr+?A$lF>6!`EJ;26;M07L;pn+hD*kc+2etSy(t?i5Ffx3ERdigP`W#W&}>-Z|jh&{US;zbRsz{}G@ zT(tkf?R!bsN^*!^|1Dzwp%HS#?R$@n`mcp7Bzhg^h(w{3a8z=l`EfnAS8_V>uzXzA z^*eqQc^`J1y?PLpKTcgeiUUD*;m1l&#}CVYH-UeYoGO2mocKJ2gOG=1&L1VGKTcrv zg9+@ocUaE*F@ZZeyY?q=ZgbYqzTryLT?;?oVT!t0{U$NJIWOQD>)S@zYyhmd7QUks#^4uYwM@Oa;6n%A1Th#ap{lb z)Su-S9E^ypm-(PQr1_(Hblm& z5B+k|4v^xh48Vc{Z?(eWPKfP^yoFqJK&gT2o@?uH0&@h=9r6|qCopD*?V)VzZznKP ze(@az)SPk+SCOOgZn^qN6ZnT~t29IwNlyJyiLDkQSwqS%0^Vc)f)qb2IZ^RKf0tjp zPzGJumtX9?!=5`2IAH=Gh2HlM%X_Y^Vb9NjPX)xFU)fp``Tg2=|tW_%M7#y>DqefB7gJ_TmBj48`gJns-^*%$ane0uq=)z z9Q^5u->P4)7g4DKYI8^{_TQ0Hk1DYz$S)|_{Ps{lV{I_DA4u_Iyam#u3H&3?V~T&M zPyB~`=25if=rDY6b#ZhaKFVhvy-pmxOB^8%kgZc>IP-t-IpTOA^Ov9hE}!|&J*NK$ z(W7Gj3+PeH@90tG|3}cH;@{DuoACeJ=ux~M=uzGO4tmt%KSqzzxcXyLU&tc^Iqg{@eyOb@drZfAt7ER-hllEe-l{~~ z!%vQzo5y>rzm9aNrz7S2`osqUs2h9w#2<(1Utrj^b$$>`AZWfM5#?tX_Iu@u6MRNN z75PCt&ynzMg$G}I?7XFB5Z?q453p;vgHIUg-+e|$z181*MtgL(_r3L_KPLJcCBw@8h_T;$=+HS#*7Z9o~Xb81WG8`4Clgs%_fm`2#xUfA>d zoF$gooPO^>s_;MJMzh*CCXXt&b~CybduTWOz5H#YB5DG@a?bv{Y0Z;FuF?dZLN$2CDM! zH`mApDj^ki;$nWfyI5d$X0YvSK{z4p(w&ajaNCRUU&OZu!~x6*KuZC{>cB*Ia2Pj# zs{2D@uzwhL&?){|MThhl{5^5t30oKP=6Y_@_P^3Vtu`cjiR5wyy7rwAirj-nyYNDP zH_=6@fXtKHpod(}Q&V8apZq?D*CG3dag)%Y;D0%c-yqtZ&H0%)@F5=e*TeW4%o1?? zFy1eG_R`?sUb6m_xZ2l$IE>FlOYhJ_Va;FGPoCWLC7_o9X~6F$I(AzCm}LPCoZ9dI z9E{V2Z!s;U|F@Wyq$e{i zEoA>^nU))u{+4OU^q=6C|EHOjB0rdxqTDiqVcEB^imLfSB5=$U7FC z-tqmc`>%pgND`Qun$!gQkT zhY@@ijH;>thzl1m7%_1IPOF_Fsq@6fk%&DKjQ#<)Z1`K&{Sde8sw_yj=K|P><9Y^Q zq$p@VwA1`97(Jmd70+^5jpF%>b%FGmJ=WwoS{g?Ilz(8-Sip^sE_DhjhmO-L|5T0o z`1%3zrU!}dN4BH>v&Dj37s&E}#*d=4K)^9B_5 z^D8G@$shAkfByV+h8wchvWn>C zzVhuv1akVYBO!P2_iEIC$w&R`qv(%y@xw=*)MSmkzd3acVg5J$+GAJpBC+dSf4GuQ z!v}01VaL3OErcsu3CnL@@;_}#wYqzC&P88SZdql06@UEIqV z+>#9$=u2^`4m+UL2lkp(?uqd^EKvCUjJ>f)8sTVcFw++}W|D|3^O?#pO`ja%0CM>=>LX!#{q&@D z`tn>Rl@VrNa>#4R75Jh@BCgb!Urn{n`ql~qugFTHaV3Mkz1w9Dc^g3crIf#wXix*a znw|cewWqXH3to(nfcj}K*$4EIv|$)~bpG!MWJU|TwXrTXN4_8ho>6pLrH-j~b#z`e z|J3v768H!hgjd1@&D~1sN&g0VKUFrEX)A-6n){ZFk~HQOQB_TatLO-7|5OF9=F4Za z(HmU`D2MbF1PrTFpXL<^jd>0@xF@7dfD45mA~`gJv58XsF=&cUm2Zlog(@Ul@(X$? z(e=LzK1J)dx?8Cl#!h`pbzBj^u#sj1J5(* zczZ?;ET4;C7eu8#)Cb473HWoxn5lh~tnuHy5jcMK4Mo3r8A6mN^i-*tA^1(H8Om9o zd`#`hVF)1|c!9W$?URA_E0VqS zmRd-b7>xDm)ik=@y{cPc{0#F+;008o4pt6P~8fd&c&QE^|~L7sa+EK+ywOw zI_}h8(=kD5G=$m}}I3{oD z(LAOS?a&R<<=bqo(wpkNfkuw*1?}kr=wicZ<{wb&SkgInq9bI_l8y&KmW|9Y zFV)MNIqE5Tjl#EukpH7MB3_<%_fNqYu!f=uvi>4Azlo9sFoyHOkl&bv7jDZGM5)1wfx&@RR#8 zUn&SiBQN0xjKnA>F6n*foo!hqDd)LS8EHg)nR4i9htMEzw1@F!nuj0CXB-%ULeyT- zQ+@7M;^MR4)Rqbr(#SdI=$KeoD#dcap!Y&S)vdZnOD?;HKC^Gm3CpivbEGx&TjOq~ zjHh4WEuR>0xKW)xr)DMejAGCu(*jhL&H^* zMj1Y1?B(Ej7i08Mb=m+mFf}1xqiUTQ+!R z__#j0w#+WW&SY)-aXhX`-sTt;-zM+%!S{u3>;3kU!q0m8-0#&ae_4?y{X68&x@%WXpG6tOVCJ&z)QIde$_x)l%28Ik4ut)ASOs zTZceaqx`6vr_s;Ww-F7l2Z=Y&q;q|^5srgGj6XTsN;HqYYqMf`UBde`nNYVP*G9ZY z`YRS;uWs$ZjayCBuemRX_FHjnrq-p;3)gw|y9{n->`=cs`$Tj&gzJ6Ir}PCyVejFD z8}Fr_Ec-05(POxKI=;w+M^A~i;t_n^T`v>9+BYM0%&t#l2kjimA~^ZdJ?2Nj#%1jNt~N`2jCxtr7!l<{@d zWp^hK_3X!vwXf@GH^02$KD+&-{M*Nb-LH!wXLnw&-H7XY`E9Q2!KV+qzTZM#?y`8? z+(d&Rl5PS$U3NWS+(|G3IJzl zzyqj`1uBYAXkb4gK)nc?(Fq_-9`q0f60i(1tPhd_1saoMMATepe-mW70GZqbKYysH zgdZ%b6YMZ7n|I5=OGj2gPS<72)H^Z6gVolbQP$Bq_)X2(z#8$7F0$V?Ltx3q#EEhW z?V&qCsu=De!inZyujJT*Lk*pRQ9qilk7<4#56dbt#Zm}PehR*x9J1IRBCi?pHQykD zH7t6|G~W|dc|15fQ1t>#Pq{+5IvHy>?`g#O^$0!MNJKrxqYII3JZ{}v!7m;LE5krE znjo6kAaW9i5m^wPrtToQMY~781Qttz zA6Kjo!sP)HX@V##K;O22)Sn5sVgYW9@kCBQRvsYDbPVMkAZb_pw@?rcerOg;h_gs= z-vWqf9f;`#A_64vtOKDK(WedK&Mbzsx&YbDVkoCUrvdTPBEXddz=R9%>jHosc54Uy zmZ5MW*?Kg41pp=(`URrD`=UsURTBuEIK{FKBw38Z2E_A(B{~V5lUMEDc~SMJrjUOYXC4JUtUEs1WgpoGHl?6h)7Nevk41*VUSV3o-rMU{*q0yOC+;E zL~55@#PblnyD^A#R4@3ZpuCef;6w_p0SW)iUrokU3;7a>(P~I2?UYH0x2|| z>4mB2@ZoJW>bvEvS?NSP>;Moc)c90VEv`7#smghQh&%QgjF)wV5M1 z0!ZORMGXVSy1BKwfSlw&)G!?`XzrvRkOxL3)(d2Tfhb_WPA!o5wqbHn02XnMTVOVM zFX$9c4i*@6YMPQ<48-f2DxPT28V4GtpceC{;&IC0!UvH9@|vY{>0*IWOqz8-IF?xM z3t)WP=Ui$;h!1Aux1gkGVqmTuNK*(zfmuN23R1)@B`kGrmFj*;deGC6K`k#9{_ySl6HtD=PB7SY+#n1$WE;2xnV|v%rA6 zz~X`~lsum8D2j^0#vrPRggb4NdD7bjbi;}ElSMiq0IZ;tocThwM^tXE`ho%)%mBH0 zRArAE@OMEOcs zxhpgq#BR{3Utv5Pc?}++3awCD$m?{;q_y%jaVvi}ArcZ)p;`fwTriaZfcTU`RbX%) zM9Ipcl#n5aQL`-Rj0{$-933EwR6NUAUY9e^h|vjDK1M~po&A#4jAvbwQ4UmXm~{%K zTe1M6sF1C{Cc(I#!G zLA2qus54+zv-?I=k}}1mGG;Md3{9NHc@o~1Xv!h6^?G9uC7Sapc1d1`X+kPxp+HHL zEF$TO>5@unHLT0eTCEWkj8n30WO`Ysbf`wj!z^T14_K){BoTA8_`m zKizCKVht#l1-(eUXCR-&*$xsD2gTczd{xesn~e6TsW>!R zP2AqxoC>Te(akoN>laIuFzm`~%z5qk05dRb@{%JoKdVd{xT_hQ|7`IA#cN8B=29s> z#P#O^?vtn9c9&>UluL*<-FcpC8?HmgqtZH8l*07jR&v69`{G3QqRElY`y-vCv7r0U z0#>NRJ7y~Lu`;qF;VZI@*Ck5z*rk~?t6D4JSUN*k+ocMI*H)@oW2m}ZjAPGH%G}Va zw!38{Q5!y_tBUIzp^(qaS^?-`G%pAr<`infSq7^=7r%_%Mtf=$)cSBB2+a7RRef7p zQl}-}Zq(F9mf@A^2a8eiCz%h!E}(KsscYspj`cM@3e`LVuDK;m{3S~f)7q`QTPZw? z?f!$sORk17w4T2eVem9+F|)3`(YOfIK)*RVL4Q@k3U8>u?1R-GrlEe9fP&ga0-Av08@ zEY{J#(1p?2m9|~O2Dr~qQ^>Rfr`8N|$Vc^(N>zkfQ?h(W^jAH$}znT1Z-nl5WSCc(<@+tuD3n6flGL+5L9P z2SoWr{3db-QcR(#X73l6f+rCcl)f;N~`|m1i)XY*3qn5gafb;n7k!|72X=U{S1bBXC4b6=4F|J3LXFv`PP zparR7O4Ge)98i-3NX{sqqz+IPSf%u#8Ms{^Aw{(t%?=jtO%7747i!G8+?Y4eFLkq_ zJ^$Ec`nhsZ(=ONmHJChPl=iNW=_pH^t3F4s;fbS zaHY2a@b0^Lt3J!Nz3QZI7_w3&sS*q9GS9C$E@$`GGdXE+Y)3Uhmdzu@Sj{|0o>caC zfaIDCCQxds67v<)))o7%5mrbmx0jz;eq_@q`~G^z@ExOTciS6ROQpl@QKRAFsSna< z@)~skSmU8mnWFrvk&>P1f@!1J_Bw)JM$m0FcdhS?Rcd~Sgp6<{zm9@`j7V5BzwxS} z`y+$>$7=n%G!Bex@3nQ6T8jg7{q1#=DXgthtA$ygDh$gwa9xx`6iu;4RF7*2kKawT z^Z0-vZTBph8GeWE(OZJ{(pTs*4ZX>XJ07&kZdwO3 zD})LIm7ALBDy42sw(%*67|W=e$!H<~%8fF5e0r#|N-BIZ=ZX0Rg+;|B&q~Y6D=Mp= z)6mk^yWIe8t zvZ`+)JW4I<>U@JzO2%zU-OHLhZRejqKhHBSszff^0?^Rxej$o|O{o&pU#BoPZRX-i zA1H1g>@J@u5@#+SLB@OKQGMKH#h9{tNIh7af6x^I4&!CBRtyL_X{UZD4+u2@mq%|< zj(_?&iR%I(8{vXuWCY>GsScydXj;u@+;@>o#V%9@9XZttW_@NM4=HchQ7ePcK0fhJ zJ3UgM+jQH(sP5`ar@Wm!y7W2sFg6)kCo1w5gH>iK%cP2_CZD^E%<}7jP}P>8 zAm)Z7UaQB=DK1t+S^Sqi*R+AJ^c3hp?Q8uBte=!$>bfnN=FU7`Yx%6>ewxSCmk<2V zZeBO^yf)Vr$8w>CdOREs59JPit$Nk<0j=v;?_m0MkF}Srn+5h0V^HmAtuS}LZ%I-k zsUj8SnI%` ziIOMq?9=W-MGsedYg(2ITePvnsT>=DY(v&v3bb9HJ0b#}ODlpHm&Nj6^po$GSsH6> z`1`p(7uSrMdiRX>Ye?hh>NFU~!UbC8meB}!-uJvY#huF0rYtb^#k@pVMIQ!c4{nD+ zuoXPpG0mFDvok*8FZ2|$FQZheW(g5H^?hn?c70@5IiUBf~~HE3VN> zWsel^Qq_pMkwb0W$2>lX`}-tydqbVy)1 z*1N?P4@yX8uHA0_xD79O>~T*2%`Vkex9dw|uN>*E1Oh?;lITdrIv%v`3kR94BM5!Z zM@~rkF_Ag}mBnCSRyFBecV=n&l?sc~@DKfg5w48OIUkjjX*A*zd~Vm!KF-h3RSij^ zHpG)wt~qOI={=*GirSwKWRB*xnWK8SG#m$dd+iV|0b#vbl!`oeosTy?MLMO~qDVm3Rj7xra^J#_3uT)@x~|V9*AHK*4$8 zb(V#4tVvajZ^|swj)j3ArUU@e&mpr78|^219S}K^2Edkrfwr@WQxv4HoN8V7E1u>i zU||A7hIwM4T(J;?-3quwROi7aw!0>*a6d3_(*#mY>)k&@BLCV#weg_zPaFwfv2^JCa49xZ-^k%?1 zQHe)hYpvUKr-^_*@~DOraZC&Gqdqf=x*a2bchW98Zf?=C0oam$dCiqPkVKtXLQbD-uCIXb{}j zn=YWuK)^im`U6W5u%E?DhMY%XwnTe+iOoNyXDpMV>^010MYnapyy>${*bPisG^d?;9;Aa9oKS^*R|73shW%7yWotE{eo#GJKgFWYDwNhV6Lgxm7K;4j z)Z~M^=I~b-k45@0&x|=X%*~4u41z0Y^*qSilbbSVU$PBfTT{=k0aGHX9|(?Uk>x!C zCbq!v3C)7Ai~&Q|c|Lp}umiA=cQGAu3_FvsYjK*flL3ML#GOv0R>sfzPF0AGU*&4z z;8+*)Spq04O?NR>z}8Y>3PiT{Aj_te)ckAy8V|yVh!Q)O7RSNpgw~P8S7{g7c-!9I z_4=~-uxJuzrX@3HA1_)1&FSuk;@0!qqC1JmBeE3T7ftRdTKXeTQqP>fY9bc`u z!s;_KQnU)-$!CTU5)ML02O-$Y(doHE?^i(G)0?kgH@4C8C9VSca~Dc!Ke=<-6a)JM zcj>N3@yH0!L0HXDu7LbZ%2p7xpNvsiGN(V@j$#hSq4S0|%hW|H#jRWF z`JZ2zO$~EVvce$gwCU;6N!=hv3lV^b+3}Z5eGe**}SP#$ZIZnJX14Isk&mkD0046hf3^fq>`B_xU5aJX- zECLF_hYzS}Z3hl9mM!)x`Je93%yRBwtJo}^1Kl-GXV$P$P6b5*l|gzn9OgHw`IrkR)DA>&Lf-g!y6QH> zs99IIGkb%x*a{bsEjCeG57!MwzHc&gWE`AYz4+Me<|0Et0Y1*YB5CYhM|!IEn>X5l zgl0EM3G)r-ke8akduY;p*`O~4>;(M0Gt7O=Gd9lLv55m|(XDBZVxBZIYK*dK3pST{FVLNd z{}Li{0d1&v;c|`3b<$zc(dskXJOzdpAf+*UM{R;>!u&=T2(y{+h;`WZ+m||vVXQGA z0sw2mCiH4m>!^)XUUuPaz}5|LzZwo|(Qt{t)f`Ojb=-F#Jp{03S6jsB;mc8U2>J9d z^@4s%W1vzt2@+m@rmA zm+I6KM^n%#1b(I$^v%N|Lw0@)QzsWkssQ*&jp;S*rVKxU`Yl@ZTInx2I8`7W z-C8gRf`e|YU0x+WYN6@oc43^*5mo)>y^sgqw}cJDE<}CM2kzn-+;TIx9H5l)!5~}E zFyGDa?Hb)qgkhzi(M>+56;**Ezv3D};|@1c^+-XVN{+9y9O3FjX|U%C?17zvCa-nH z=2fr3>GZ?tFfVGp!VW`8l1`WxG=u1o=m?5sWHSeHFPwjPQ4$NTVr@nzWX7-DmZLqP zZ$@h|5OV`hK>-bCG!U`GZZ5B9vD;1gO{o`ADi902e%_y1a~i;Eomu8)VRP@wjyf(Q ztw;L!6)!yl-#5}q?a=G))+ugQLlM?-LN>SDZBp*pWaya;6+9p1V{7WO&iZKUvBC09 z(8l(y=2aQ3kyX3G1yjMdI~5=833MjfuaZwkg4Ks5@Vmh@yZn?+v*?7`jFChRAB0%e z3Sy$C`#5sZ!=?G$E52+9;#`$^@zMR7i*p+*oKel66s^tAED+sLbE)?#xS$k6y~CE` zlgsPX*NwbnRvHA3Ig^o)w?4d!9AvH+li2+}o(g-@6TR%_@X7s}u!oz6hgY44?P4`USCIs9Mu{P zTcypPTO?Lx_Emvq5R>N0o+5?zGK<1uLgvm_@FIm51VjiK25_icgp-v=$`*Wf!Bo2k-mO;a;?YcKCeznrM=nSCUsllJDmvKhfkMujH_X+&*>wg8RK3V6Ac+JK4;8`X1?~y z^kP6iB%RRxT{!TUWZ*$85Q#iN_B#)hqR6WK@dV&O+y2NWij4dn@A&*u%KV@D6^Wtz zNxt!~7|Prd`B2{j`NkDg|DfQI(6I0bxl55T4wkVAzJZBJNuJ4R=^2?>@V$!A`P2*E z`NbvL(WT{ib`{k%wGoBLijY!S6Ox4VoDl{`S@htRQ1fu z?D$u27N!@MS5)r5-G^J5%zxN=G&I+9=Q9#+g;ZEqz@?>bBc-H8QKn@cU?RTn3TpyU zq?9zJG@4fSs3KIHJ{M!sck2pm8`4QSe>UZM{|l^-BLzddSx^SZDU}-5nha_t%6($W z@rsb`9yk5To|N=}o9<|mbF3mnmKN0Lxw-UW2g3I90SpC;=15XU?T_;B@(p#)3kO=eoq(bI!A(CwVV&%Aq_7VDMZU2(pSBOTO0!l*a?|$|*2g4uKeFVY z5NK|!g6()NQd0M8mfV0WQbi9?;C#pQ1Y*i^S>|NVak$lCUw?(TW$=-7%@8t6PWs5C z#NpP&stV%Xba2V#y4gLp)loR`P+?8V0KK1*9lmxfOD-*@aMaiTXJX2azW$#ib=>UI z!*XN;WsxUJNv-aF_>+9Y-R)J&Pg!!GPj5fH+?Uju6Cag3_xk#D)&Nl=Jl0F=uM9e( zKF@>r5uf>Q-Q@Bf#*K8`wp7Z>3`LVqEZ$~MeZX~HqH@R)nI$JFC=*}(&Q0ITlB3-6 z{?1LubMyJfEV<^}`8{s>72S1-o%JJP3U|&>`_9&<2jSn2`ugigxRqIi9uxF2+q&OC z6ZL+U{C5mxAAdSQbi3IX{_G=#bz%q@DXF7u8}bt}Mg`!7JhZT&4LMd3>Y|)Pr3h_j z79+r=^32)irXTC;Z#aaQM81U3<9G7;zeA6&Ho@!*4dkz?bZ|_Ur+yjA0U5rn#pBXE zSExe%@WmohVZEY48CBUyJ6g_Mt|Vi!|*iI=Fu1&~r<^qhTD;U;%;qt48jU zLS%T133An3_y2v>L?c&?#+}mgoc&c3c5Kz8wEe8;NUldJI-WdDM>T&m(f6WedMYP= zZvIX0?85R&)yh6c(f;-OPq9mF+gdWp1*!Y6_q!ZoQ)5@2lqJ3bqQ8qj*J@Uqzy~=I1u*udBwIx7G)R9_d3>6K>m6 zbi8Qtth_sb^j~)XZsf9|tC63B0YFGa2lg-&mLGZOc^a1Z3*zyo+2cOc!&Q?`A3Q&t zd)$BR+pxNNkV8N2dHUIhx(DZ?m;q12Zs|e~IEwxqzFpG+_zJ8ufy8>hDLPI@!%$Et z{b-~9Gn{J=4fA^r-MZiej$$;gbf%9wu}l{1B>%O-o}z<3yA?eteu6ZLQZx1r0ftUv z7HVF2>U5!8pzZH)F1|YHva3v;C826k5(nV=W7XK^k5hUM$5suP><|qjg@bUiYmwr3chpAZ&De58aukuZCBCXt zG5@}5kp64rs&RNfaxzEpMJi;kw$!n6gY!tyarfh-{dYyje;o}Y+6T5@{rmGy`?5%apvc9>nuU|Ml7S+T)(5sW-lRXqe+1fv2*#kx;NPHp5F=1U`P% zK#)0h7{%CejsTK)oV8zD>Uvysr077_me@t%v7wA+sHOGXJ4_pKf3a%v&s;bp9_Mpd zDfd~4R_(7E51WY4cN<9vyWN=5MO9zjU9Fh1sLe zo1?buFP}FD?3&{+G2|D{f9!iYzF7X@=U=O`KY!jtmW!0^?VMv(*&jOx_3w5LK62;i zAwO?&f7?09zkc3?|Lfh}S>VeiXZZKeo2$mhKW~JOf8H2?_9*)m zGY>CPM%0W7;B^b>GLL$CZZc~-+SnZkp%u7p6nek4t0&u>GE4B zf#8KPqgeG8$#L8_V|_7**89FiG-tX)@K4_l-U0AIOug});C?2s#(* zrE^rF!*CxQXtD`-_T0j5whE1i5qEHB(jbKV)d3obhoAsO`jWzA; zjSnvt7?h~>hY_*(`kHewO3tnp@oJ+k+6kH}3etO8DCEx3vogPJd@_#g`{#}8FF?q~ zI!k!qkIx&Sr9*b_@1HkC$g1pjw_xeLeRl7e!f=%n=0Wy@xxe z=Fw4A_Ivlq2)nvIo{9}LTTrsgWxVi9Rd&8)twqxWQEue_b(y^ibhLA@kGTcYqZ>%A zO5b(<+I_+ce5XoNnttHmMt(u4A^JtwbzBCE-}awGKyWn%NpKn>&j08>d3@!%ZW6M; zb1qg5{lJkq{h5I9Cm`fLj;!#EG;-&ZeT@GFfKbuJwGTk}PpY!a5FhSuTd(%qg2%K_ z;-8>j-Vd!pk?fk?IW+mLk^^=x+Ea-dg1yh1?>Mq`KRddEsx0#JMm~=A7`yk!&iVd% zgYUeFr0iRrRF$p9W^JdZL~5bFy9L{FL0I(3M8|hd_b-%vm3GnJ-GWHDuV;TQ&8I!e z{)iCC==5ncgQg*-z|hJBdOB`@q=WnSo%6X`!FeMAj-Ah{sN8!#wdy>UNd6hc`ygyuybbo?xruO6^cFS8FX*l%vg^s zlz5{&_gF1hW#m#_=t1X8b>0S|L@I(2bXil<+w;B@qfRY zi(FmE&!WFF7Y;Z!9q4b7E9wh->AwEf1`T-wXYUgd9ua9078UDY8JBo7@K&;EjDu%N zW?Whp@&<0tTzENyyF@ShPDN!|RZXpoolE^ar2h88-ImrimGbh3d&JCGMBn}m+#aN7 zpIKZq@ciZU%xpfY`P7_mr`MaNm4(8DwT;cEtH~eVBZ--N`rFo7AoT*;=@QG8b#lf% z{VkH1iCj^-NFT5b_32NGrR}>gWb8zR6_k9&6Rpin%T~Eoi1%LzQKM54YVE_Bi-WtG1TT zSGDtei(^G!z0?P`dlw!PQJwC={*ISdaGni}Cu|Bp>Tiv+R{oJ$JV1+Ez98~>bB|e^ z6(qFt$>|)oFy4cl;FS%BhSM?+MwW!C-jc<^V&mW>Xxj#KtrWZCe$(0v0&RX*ODUep z85KydDh9|}hwffL&w{ba1*)Y3Km^3`v(mmu@)1VJWS+?R8{S^svr*nppGHK;A(R3m z*iEF(PqWNgzY>)4rkjiP>So1?Y7TYEi<4L#eJQ6)Pxo3`O-%H4QeIS@{AEploB0&$ z0vm(dw)aw~5)SIQ;rVk{ELCPKIlLa*kfz^2J!4H&by1Xx+t(cQ9F8;>770>Fo>{!2 zes2E;E}Y20-gb#i($x3NQjxbAbm@)=Fnp=_Ma5FFvUyw5g2@HZWA^p!KhU<=g6T z4UBeI8z;^B9PLOXc2=9!pDV82-+mgg*3#YBchzN^lwkbfug&FWIUf&q!}0Gmt33MRKXZf3*<&`6 zCD&sguSOAJCBF4afg##U@RkPM2M^z?Tw`y}Tx=QW&l!5SF}Lj`8Mt^yyQ@(xa~x-P z6tki$x_1R^L-UM~!v4;6YMd{xx3Ri*FUxFbY)Sd(^()RbZ=NUK{$eGsaP#ZO=X3e6 zTQBf5q`$8ys%+owmAaRu>s6&|-@Y_!YV3MnHlo}8>KQb6wrXb#W9b`9@|t8TERh{^ z8oe8V3IhARs>acspI?Hl|`Q6v$|$Mw%0?I5T8ODL zR@`Md81G$#>I(WM(c=w*)3utQ3sdJYsyV{xmFS!k8#?I8U%V`&J4v~ z@DukLxpz zsxNIAjw*94M2cWGT*`5J?z+{Lv?@C%`RaZx^DNmiW=`~I9-Y|b^d8fB{-LF>Y4wHL z^(Y?GstLiCazm~gpRi=hHtM9_rNZ2IBN%qC%+-Twy0vA=i`i(2sD;dz2pF4FfGqmx z=mkMRc$JrymOizuedY2{UqDpxYKKqA%8y#azeMBWjWT&3h((EjjS z`D(AZ_$&Ienb>7*RnNN?ne|(J<-Jp5er5o0!QpL zjH@Px?Cu2p8^*j(#{ONUZ@}Bhu+i}W{#>#qDY3$h;cJ&BNq3En!sV_S(kn{2Ijne? z=r(PSV_R^RTH%-*jBSfvY7x|bRAM*l6Z7Ogb98RN-KJVwlt=B%K?MPRD;DBA6OlX4 zq|=yhZH;y&pAHI%y{}zqqicO+u)u!DVuksdU7Bv6Np5A+r`sWc+T;ULb*H8zgT?6x zpReDOl_jANVr`0HyFrT9!dp2L_S%s*JhD!yiRo>>vbP$RmD&fImisC_0ex~5BE-TM z4IY|JrhmGdoJv99v}#R_%Yt{|Ttj{Tr3_iN(i=10 zrc43e#4Vz@>JFwC@wX%Nq35}77RSW3aDfyO&`B0R-s#$XIiTc~_t~6)vZMe(YcFB+ zKq>M-c?6q?XQ0f}fSL3D3bY_#y#Yn2e=I@J`63cjOWzMbSMVtL6=6di{h)M+NCsN4 zg?{iAPdAy^>uf?dcBegK%>u1a$FQGrf&?|j(%G3Q!V6N-DGyAlsoFVshre{_8>>&UAe-jpA6LZ-P#7ijybyRuY6dK3dgD=$nEnoiaHyDLT-V zy1!eRYb>sn&hd-2w|Ygq3@m=jB4J^KoM1ijt#rgLip;VIkwH!zY?|T|8TweBr5f8A z$v+>{6&;~fH^K*H`2gE5IR%Qq4&dEQ%W%)oCQ2@l4? z+`YWStUSb&h@G~SZ83cuiq9w3_@irVO zpaRkY0dn=X$IVzp8&dROV!`KAGVh!{YYh$}OTDJa?_r+06(6(3;&v0@FF$=T0?2O) zNV9Oc6+c;Z)MU{i>J-%H`zKN0SG$K09+8H!+|gC_b-;El;% zqi0OxlTO-LPZuam>Jt@s)su9wC(N)WBY*u;fHFSCd?v2^>1MBt*EZ-4{Oodzwq{}2 z#PQjOKdWC&%uSnFQl$4W^7?#bdK7#1c(q%rd)_U zO$uU>rKbo=$Hu1`pn9Ow^%^HKl!$#PG zAHt=)Ay3G!p^{~syPWLhmDgoP!?_KToi)``q^0%eR9MoJ!oY#5fEx|a`bYB>oLF`z zByqR#gu>?^LT-=SSz!{W5;h12>)$KLqm_Qvo_cOQoIjlN^Vl^pG)s$K z5!ntS$MvL}0JTwiTd=hx)$a~iA+it~jSDHqlmY*ud-H~;j9+v{6|bXs^gAUd>!E zC#sRJA@;d(exE!dyB1j?AMvAgSYKh@O$AGFGf-K?y)g_dyiCR?Yc(3U^y2(rF1#Ch zs?|0$U`R$m&Nt*og2?D38d%Y&!V9JSjwp}tOGRNaH*C{$>Vxb1>liN9j!m%1>=dL~ zRn7>a=aE_hV9 znb2oHcvtHrgMN3KuFA3W2COy}4K-1{b%%yp(WZ+h7IJupBs(NeYH#`wl(5v zoQXC~jP3Ol70SL~!GI)GPa3d{4Va#*&+xM2Hr|mPfA@Y&g z@?Mof?P7!oonL4=XoH)|DVRoO(C)IilwuHDMoVq6;jLap_q7GnF)6XdUr67fdW3Jl zmJ6-K^ty(LT?dX3A5Q(@?P}@`#?qmwe(RT~U zU-b^H*0EOJYa-~m?bKU8Ny>&xBSTBdnoG7|dksZ~>iaFwbV&E5f!-(DJtiw%?~!}! zyE8fQZgA>I;#!$b7!hq2zZ3I8d57U1WbU{r`j(&TN0f&$M&a!ndp8>aPogN(n zUb1Z#{#`F{``GKA^SuJcODoJX4>sQG>=zqUMi^RAuQE;VOMW?&N=d9W{4Ooab`;e4Ir^9MBk%+Zvu_x|+Q{S|dDK z!vU(NoE$_*cO)ZOTttER63}B4GiU04z6P#-=|~a-#v7k-x;XV3Iv%@jmvv25*lzk8 zbb6+KT6J$)o9c7WB8g^|=6#cK9ZkY+jnA(qr;Yape|-HsM>lhUdeA)Pv#Y~rD^pa< zY>F3hA}_0Ec<^SweVy5TILj+CtDHQWQ8%kMKI;dX(}K+=`cLap&)Gre9PJ1~M{y#t zv0mGehHEk<$X!gT0>9b=rTMaE*pX*-V#HE@d9Z|*F9$BdCVG@2XOy$VUS9Q}REU|| zV!rXNaqo9eiK|8U ze^+eyN9Odf((u3QGdz*|0OmCGbg`lDnI2p~+>82M+_ODqPT}4~V*)sHs$=WpZ+gs} zdYGMIPAzY|QjSZ@$-U>7S6FEDthlJGyh1IrvZhw9K(wI_&YZrk{)IVhIb=?AkpSk@ zKHGj~cF`>e*cuvKh*|%(b;z7Ht?Z$#J$o!!tGd2ILGhD0y>-N#hBt;6zz8oq#Y{F$ zYzbn%-KmzEpY%qZlOZ(o8O;H63U4=OD%+1VgLOu<_@&D8Q2DWHv|f6oD7XUUbQ&y7 zzk7xK*;`Z@!Ruryh`59xhGpgf?ai#K}C8WOX1$dw#~SnDi{)*FwK^i>+vw> z12+5f(s1TQJX?;^iOfE?^QdbBBA+QN7*nzdo`D6 zLK|6LvS&=a*q?Qh7*+QRaskWfDrtC|4nWhSW5b- zoS7z`9bx<;|B53C(1XkLwE9BfV_=wKf+Cx#4nGoLPG#cIpL`R3WNzjn%+qs@9a2v= z)Qxc|6Zns)prf%SxrD&RFO^wbLauOq8f?^rfhbuQ$KdW3;y>Z<-OmlB$MgJINU?WcXUP&W=Z`SEz(o7*hW|>!OSS;oB~JJ?AT&`@&GhaUGHz2+_4VTHgl? zb)d(fX5Ot;Q!t5B8TRw$gvwjwE$?LLkRmcfOohFI;oe0SABifHz-U0+!?`b^4|^JH zOQS=i<0{33mWNHtbuUEWgVYR(m#=s({kdxG7S-&}!Bsn`T)a;m=a36-Rc6K^Ooz1h z;hB*t(sy$C&ADw}yYK(rJD3&kUAwXF6NsR#C~u{K=My3N$f@>@EAOm1Fk}$DUECAV zdGaZ&KL-*a^Q6qol4ckPbO-h04KuBMzY6;rA1pzwPZu~Re=hG^oNhrfDIt1~r)nW# z$sNZG&emw+MfZ3L7aa6P@m~MPwM1rMLR-1DHxxdh&Gi9eac{gc9GK8%YG;xoZR+J# zdIT2t5*M{(6|`N?^bjv3ko0IR`*_(uO<}sRDPHPBy6SqmN(XCM;ETXG!}Sca3>KAP z#-6;$BFjAUx;tG%QH=R_CDmVMA|*&a*Ouzpm%N3YfIxf_mub<3XB~ z?AGWRVsBaB!sb4W5%doErhor{9@ZhNqbweB@1+;Hvm-DmP zbpttV>vhIfxs^tU^o$|71-;jVp`Uw3a6uGxv1EL~Jq2dyESO=P z_umm9Rhd!Zs(SQzZgFQefXwCFCyB-u>N$N^MH#3+eWEUDlo;gnwF$~1U$){E+FKoN z&cMRQASIy_cKpTAZ6g?^oNbBIjsZ@6BwUY=JpI z$?k2C_mJDNwonVw+fsq)qwC1eht}}e6IQ~6TJGQ)p3(p6Wr(CmL?>=k(lg1ddEGAW zU_lepO9oEuV5v>I-o}~uNx+<9&`w`ASJKk4WKsU(;|dB%!uMOfRz`6p8=btjBC?k4 zn7qgKTp`h86e~&LrQ;C!wt^_GDQ{&~6W8^DY7b;e773O>*PQKVE zaaYCMuVUExT4`(0qot7YooOz=()J|euPRpS@;$n%BTqXqbT5AswY?;Q;<_>#@jCv4 zV`^!SSFyRV`Usj?cI4}IrfCyWHgT!PWhD98`|H`|9`ll-7I^Lp&o3rJuMai8`q-?w z5%7?Re_(WZn2GNG{S^w&{3SQjsHRz%i}g7Lu`cJj+j zADO7WSBWyEA{E;TQsLgo`{c4(YQ)D)B~RKAM6?#!)y1dqdizQH$5fMX@42Y#^L_R? zUwQ(17nok43>!(WULM{pfQ^Ai&Krhh^`jCanV0u7p1(t>KQ;2Y3#W(4e!EPYq&KZ= zm)m5F%-Wc9;}y^1CClsPGc!$7FJJF%l<)7Z=*6sjlD8keTU8p7(zuB#xMw?Cx%XAU ze5ls$@+Er&D;Pxb5tx~!kr#C$7-kQ(#U&xx#|S5JQhq?phuxcWzK_=-KpS>((|+<3 z<~eH<$Ta@fRY~4xETrs3otq1*7cFU~i_Nl1e&B_9C+o+;Q4) zf?7F0&2^G2anAhkn7Wy|OLWJbKt0t}XTTNpts5bY<4UocYOE#mip9lvM@N6R zY({sre$<#IFy{cksB+p#f^Rd)X_&cbu3gy1^BDc0PyE$ABo!+-*&~6OboPPgB)7*T zl%J9hSM%-j^sPt5^^RISOu3ejXqxjcTru~(Rlqqa6b5|Mx>hD=O6cePy+joBrEtC9 zLeMJvD7xs;HLWP(39Kw)nKufgWV#Uxn!)oM4BZ!fb|$?Ow6AV|U^1(-4A6GAU&mb3|&?I(d_@u%-=QN zAIjs+TOdYg%^b1rj~x`S;Oe7J9iX@3l`tUbP^Tgi=OgYac9mDA+}}{CiQ}52J=~BTef=%@HC> zNYR{IqN)v06AX~6_@kR6qFY&*{aK>hzDM&TA&x3VH~IT9Oo21%xV%bV{*Puveu1c zS8i{8Ru)46N|SBO$LSnTSkXCHy*U(8*ppH!FQ#DDrc?zaS`J}rw1&c7K-|(vodi(r zhOU78Q~PsMC5EDIcBjrDrm1MBImD&O)uaVQ5`?o}h}kBJ8!|X~w6guTkJi7vSpT7i z{~w;K{}Zz+@MsM={b&t5^Jw+W;cJ6GT1`)X2u;SXYDG0CngA_z0JO$DE zadZL}Fgg9XX?*6(=e)yBE}f}w8}B;jnkzN|yU$_ZPAlORRC%vy2ZJ}HbTD>=Wu}fdnTMZKsFHn|Gl$7^;R59D^NfER}~q{l~h-N4IZ9-`_W zay^}v8S5O_;G0}cgq;b}=O5UVt7>y-t`z$SL75FE-|8PNg7T;<^24Aou5Zi{YK?zGob% z#F1zxj?^;Ar)7~0(43c_A%9Fk96C~GSKSuhoNnXyqK*0tI8v8XnPSUVC!udounXE8+BjSQgW zs*B0|+RAP-W!eTzlphb|s%0YFyD+oR&?$6~f|yS?`AZ7om%v@66zVjyA&`Oyqj(xN z42iolY~F9O`H`v0XY+WIYtN+X?-S)lt$M&jIVaXc3=ibRNgMy^HN|Co=ov?31-g5SXd=VW-HOhn1r<%DI=qq`0~aA){{Oj>OZXi6^wlFNtHz7=>U&b-fnUEy3;W_l*$4{=Kq;gB&OTd%C58wyYIFVJ)7dBUPMN z%HR3vS^_mznxuqOZy*s{5aVK`1hQjqa2cWY{)%myjGolHNZ`?$?8PEy+4?SKdo2Zu zm9F51Uf~h=K3+^VT`|ls(DjNrvfMSt9V!K9%&Q^kA~mdZ!m%IFq1q6v=UT{$e2yu= zP$t~~0;DAJ!#St|1g~&Z`B6hXwGToDvUvtBYqtVWnPp4f{RRCBu1ckE4u~8YtCgmz zEM9p5%g+Z(O&I}1n4SxwBSBRCbVrHy5^g4&6%=LC8M>L2ljmG9k4x39kS$baF zq-SD;-zd)7_tX4O_lj@@S4 z*q#7t+Fp{vN&J!VUmX6EnEmMxil0~3N%rxd7k7TK^d1t^|9=GUfhbDQ>BIjYSKHbs zkK&KIr=lpHJ|>TR18f`vLqhI`Mw}e}+u`~X{haQItXAwQ!iC3$~L z+FN>H{T$;wKK!!f7F1Yop3R?*KW+{5GzJ|U{%j&)CpG#3zhv3FR5IaC*8F?ppzcV$*E^&c=Z1v{ut_CGZmyD z{>$MfZ9~%h$yTe*Jp^WWj+6GkL{T(M5mH}}6ACcDa4}VQ7dOcuK$tMjfDXhT;ZYPE zBG{Z&zwwtjfUOp|ixO{l4w`ni%I){~BYccg_Uq3miV?8d#+b1H%<$N>Mbdg8WEH$u znr|%Z)0Jj;Q;Q$FSUmov*`#FZPf2@fH0a}pDWd>eeSG-M!kw^=o2^In3kJXG+S!=yAf12R|e7=92QMUBO_)GkeDZyaE{r54>4>zOy zzfVV7?!6j``6eR#`{DOp`uqy&wZ90-N2(WI@`SB8AW_4*5m%_yVZtjU=HoWtTAcGc z$auC0pykR3)FKed5mXRL-{Ua{$gmT&$VMc24!`?*<-qUTqPeg4fTX=W;o{+pGMlvH zO0Sf>{ayepW{c6RVjnRVKUVN0ih}DMdyupz%0fJ|+D21>{gbU$ZmuILI~#v|*wOH` zxt>as(Lo3^9@niIV-4?T6h$Dwt;9N>5R2d~i)tPQwBnC5$}$IsKMPORBi%58Vn)(! zu4n%+it;-AE!W1AlfzH;^=Hx^|1z3YB0aIn4X(1sfq37cWDD*sa@acNF~?C9_~DTP$^D455gUlxW?Ydd_rg%G4r-|Op32x3~- zy`?4fE_kxz^(SMH)Vjf4f`Mmg+qQaFZh3aS-U~t`l4J&pbi;xosgtF#5RpBH-p4ZD z&osI*qt3q~mk@e6;odYG9;>Hp+~=UjH0w~_qM^Plvbd-X?-@0k+@2@8ArNz)bP+^> z_eE77GKffoZ;kN_*Z^B9B9xR!pUadmoNKcAr`c35c->L}1t$>BrhgP`1(!9hL00b= z8>oG`i&A4Ad+8d>?aDGGYtE2_f#8MNSm|!M=(`ZQtrY2X{(fIa#qxo~8Y96MvUN(q zh+i|+vqweJhiTbE(Z07cUH^Vh1vBPbyyrQ6OE=sxCjSD&wZt6U=Co0--gj|}K4XvK zR69@vw`vb&cw{Ef)wb$LI&)ol+b6JXw(6;|^V}t5Ch?=T8kpr)g-(J&OlJWD^Lct6 z7H-l@N;j@58ebE(l~VXUxOymT|6ZB!H`s7O5d0El{hwn7fGIcw82ryL1%SML(3fzE zDHuLl@6JK7cRc7zaK10@>F%Qm00wJ^-vNU+02t(f8mia>z~J^D0R!?cfWbZY7%;@c z0Yl~qV9+=K448^s<~wHr1I-!0fE_X38Pm+k2nP)K>QaIzSljsn`GCCr&b+r`UcH9#dK|nPtB(Q!|PMkJaBpY5HPHVeSTM-6?@1O@Lu8k+iu^P zY90xkt=ds%k^{h?W4?dijT#OZ=tK4YkAOku%G?>iKr{$F&aR?SAnSzA$)oB1sW0KM zng?wP0tADOcl#LAe=-FuFe;h!y9l8I-|r_M?)JF?!Jt#wRaOVxjNIRM`%J-RD6=;i zFn`R$0Ym1i##XY0{O+=M#)aXPQh(}8;1mKy5ATyCe}VTUtQ^j~+DsK5$lCy5V6NIj zVP8393Ls3GD|M%{tH!HuN&b{w{RJ@amEy`2s68-rYlj~2ijECs>NuEQjgt(o2QjY3W^*dD`_{N`PKAh6f7j90h(Y4cVs zWE=xf@0+UEu!NtXTpC}#gizD5jzj7|SC<>faD~o22j?7k6p6RF7W>7D6E%G!vZ(tx z1UrPs^zEW3cEutzh5iJU&$Q8(5fIBia5%0+Q801Ol#@>02NgfloUBL@meZF*VqTk| zc+XV!xpbKz;`SIMMBjA;dC3EJT#d=~oFj{30G8$sEl(YDBRAs%1l>cxaHVY3$IKfJ z7=XS605H%O5_PQr*;Pk3Fd>oy5$n2JQ6&-*sS^x>a1V?Ny?{n-MNX+BasIk#EfUQN z!WU4&&81h+ASzr$#_RmxVSR2S*M|DZ+50zHYH$!qASC2M@u5uhB2ka4X^V7A zONcArP?02Gz8QdM;)-B~A*n%B*;3heqZjFZv&P~EHApx+2!jx;$$FdL8E?EGb|37@ zNDztch)omXebqtKg{w#KPH@}-Q_u?R_7!3yQ;6VSC-VphJe0R13YtO=qtAp6iB^~CtFXIgfj)L?~?`A(-eHt@1z{d+v!Thtsk;qtUI{xq^mSZ_2oyd zXD%7CsP?z^z2SC3GWE$&pONY>8(Pn{>c}`}n%rMSo1AQil}XafJWxlrk?Ss-sYBd0 z&?vBx=kJsGkV$&5Rdpj@${Rtm#rbD2NP36|cO%!3<8ZgH34mq0Lmx*E>4gWG)3b;4Lik9{Y6HRY#sR(X zVrHi^6izP~QwgggI%x==&;7fk-%Tk!jZ1O5e&Za z`xklv-mb*XL^fCx>wX$79MKEm+XKSM>c}-LA%=Em(ZWA9T|9+YDb40KGkSf2L0WEx=U2j|zq2YB_S2!y21GZ~2=fhI~Gu(2;S|70Ty9GDH9nuSKDJK7KXrbTu zTgOv%7%&R&S56;rX`TI_+Lg{*-iH_YJugMF=de(_?)R|=BI=CQq^)~9(PFr>vLj3S zDLEc3&7=A(3CIhZKuh-L_V`v~&cw$}7mrM9wmzlpVttb>t%DSms~Uy8f-ek?WN?C*T-m*3yrNLgNmF!(Ff z?e8It?{D+gAmA&&AXj5SSj{yc0WJqD=W!%rzFLT)f+GnKBjz|*`E{anrd|=)s3r){ z1v6enM3)b*JD0BDavoP0L$A4xtg73Uvz-R(akD7pq?w!00u8R)Ry{3xkGrr8EuLSq z7@@EK19~eO^c3c|1ny8Ub0z{xGBXHb3-i>@)FEjC&_dvr!_Z+Y5Ty*(Uk>AsR_IbqxD*U(DlCek(H3%qT zD+uU2%SgB|C~{f26l4kyM8@oZa_1f*|Ikz4;&uj3%d|GluTOpCM+Wwx{th@|<4EVs z9-%0uN)Q<4MQFUQLDQX+py#~h(buj^kkcY-qVp_jbb*o2g+#{ZIX4oC0!)BL!SPYN zf}fT*j9J5@^%gBpL{M_FP*-4!Xz_XeHAv~seHLkV5z_co&wUvd=-t-dkTOE=eb8GKwECOxp4fd$o@_9X zeQx+JdfPmO$9wK={6KGf)mo~!EURJ%^Bu2S<_Sk=Ab&*xM zgSRg?@NTC5wG7pc*1r6*%ULEa^J@J9{UyD3v#lzPZnO1O62#Sj?T|Ck_sCSRY+<=L z*A}#qr3c=kY~=a+7(ZZY8)y{?%?~Tee0bSwutRsFAO_1sPoizG*D*BLCW&NaA>9Fj zDIVjrI?5XM{#yCao9vQ~d6VZ+!{yr+#np=(X7|H}Jl+xoGg2c$WDp$j5H{j)2XwfL zNTjZ(kH@KA%F-{A9(wn5vwRe5+2ZZ+$JNN<3g(i1!$z1yJ2oah(m4`g6dCB)L(dv8 z-YlJ9LK^6rs%1$X7T04`3Uv_DKn;k~%)yH-Z>dEY2^|J?mL7M&-+3Od|B6Dy(; zPaT|g74b!_jV8Wdcm<=}MNeh*$u4d_orMl4Dm}YALAx^KJ)y(Z^{v*shOvHluu+F| zSEp#12AUyq+yV33I__AyV0;7zh>p7>M*F51ul(kbanQNO7`tiLBhFutoDmyDezTNFE2gHaw^u=Zd z@7wrZdd(oKCFPdW8`OCznfK+KoZ9xg$PM$HDTIrQ;m#!>OM4 zop0XcJSaD@`7u1s+4`|gcIj!r?gqZ z&P6tGXNpx80l+`I6N-eKCiqoHG4uE3) zNcHmK*Kcd<08kXq{N5A1vyTuYjDDp%rdqon#CohlEjcjc#h;>;ZcwETqkhF`31q&V z4z^V6s&TAj&W1NW6NO)S_GKgjLl3%dk81rNXr&CXfZu7QgT9%cI@E;=SazoypWFXH zD?OvjjX5@;oS~IukNRegbf{@Z>{F=;>#|V5fO0}BNsvGONh<-V2~sJ^1EAQzSMyr_ zU(iY=sz~@pHJo?BWEQjg6Kg=ejn7P;w0q4pum4zyHt8;$q>2nn3!*SR(4l?>imU_%Re!2P8y1f}{{%M!0E%!O z>cvfHL3fO(abYl}^q**@B`#2O)PDFGT8TU%;FwlAGN9IKNK? zm%qpy4bjWCHm5WeY6r*sQo~uiv^@{6M7y=sX}Vu7@oLOh5~XZ&$>u>(KcFWy5I?T4 zCZx#O`P$CA3>Z)(_KR0~mE~nu`T(G~0Z&bAj=RAt(VDEFrz_D;8lSgja`yLZZ*>8c zXzG}sL6S8fGBYA#zEe6B^$%0VTJ)tP5K;R$5oYost#rDE^Q7^aj*Z};5{(G)>6P|4 zY|G~Q9V~z6>kDzXZjxsz(F9gK6oN5a;w5j4-9vB}h3K5qbFAlh@dSJC2fS|vFrch@ z>jShBDSqQ+3x6lmBU-6XOVZ2YxDxHB0p+v~b+!`Cyfc;?Frd6RRf%?DKsji9K2?df zCVApr_?OkqkF`t>&jzpz0Js)_aexyl;cp7W@0Nw_r3e3W`Qh~O0HlaB)y@CWyYL4o z!rjZ{k++|2$uU?;jW*IVKklZ${lv)#AeZ>cP#hO5f}b+y+dG{uG0sHZ#a-oZzNKIJs~&o9d`W z^U%8hK{7ut7}>&<4vZET!UvEatyXU7(i+{Tryd#}e@Q$*h8ckkQ+tLH?!r{%( z8@msz1RUNB<;<5A)`j?;8CqRcyLq@vpW6P#&1g*nA5}LiYrx>%1^CVQf0iOdu0W5g zn?H*ShiQ)@X@x%wJ?JR=!_D}@rwd;RNa3dTMi4=?w?M6nb2%gzq+;cL52~A$4AV$R z)IIMaM6!NANZOr|A`Zxf$UMD2)@a(cm)(M##|3VNK7HFlfi#&K8)COoly705xU0z- z)8ffWzzn2@QzyFW6uFS&-??3112DpBc*e7@%y*{~SXrrVSiv`G@Le zf?LA#Zno4wjizPnJ|YsOxi%uWRLe{ll>!>;u-H+%hnnBa^aC-UOdZz|wZneg!L>y* zwicCA9a_5TzA(3oJNB##^V4M5Voz3N= z8cq1kI8&nu_b%L>Dn|Q#B|t**Bx$GIEOKi)=b*azUR)gM(26VH;mx4Zm$6G^aaW3E=9bKdjOG+s$BnMtsJ*@V)Q`{=ZoXfY)dahEo3@ zgWY`!T>pm7{x@gnA4u*0$7A$susisS^6i(yHw^d4XaDrbpPU=i6XpA_=O!*O>4|4@ zTC7oeR(6hC0(_L_Pv^!gzZE`8`zuLr#c66wwF$)94Ox|?(T*m=P-q*)6K=p-Y4hU6?{6M-UnFaPPaD0 zt#YI0+WFtQzl`AHmvM`bcT-NV7f6}FOiU6?hm(M6(k<0uFMdqW|L{D;TPp#DIkI$R0(Qb0e=1r~_% zLMQ?m-48?fQow;n{%Z?!iZ@va>ycHifM>b$sw?EmOnY0CfS;ZN9zA`nZkHJGH6wz3 zvaFDT%jG?Vy-o~R>+k6_WdP-yToFM}QTqM!K5aMIws#jL*f#7pIM>!csJ&j?kTrJ>zbd!_sYe4vvw6Hf!LR5x3NEDrx`2px!G0V-H2^DCpw}GXAFFl6Yg&-vMuk|Wd zrh?vNHf>P^x3LtO1XUi5(rCIMNT?)T3~OoUG0%_aX2+zt@V%Wj6Y62zcAONmW<2OfEzi$bM(v7ZNBmR5pZZyUQaBMCTD z>C}oXCf4`QhJaxBgjgugMe6zRdfW`-;}9SLB% zQn4o$;njXbqJ~S&ZAX9ZK=EbiSsv8_$0_&mL=G$o^cp%)6sT8}>V}A7PtU7(ly&kM z+Voqmr7$xtpG&=Sxv^gnc;oZmO}W>BjO7J$Bs7Mq$$dx>wW;l2HmO`@-TaV`x7BfIZ<-N)b?sI8MjW*xvr-&VzMj;GGot_&hi z$sN$YWS+|b9ew1&b&n`y9K^uajlxG3)GSVv=V-E^rPj^WJoE;PKZ~G62PX(Bp-uw|ggw0uSwBwUVdlX^(B?obRXHV|3g8i*JeHITBITCjx zV#CI3hR$)?U5FjV8Yo60>SMOX!BnG7-ppau&atQKMkH+Se=}?%Y;j9Fnkq&KRKbz` zC`kHh6PZ;du7ZP?7?;Br?6~A5H6pD?ilf-YEA`5FD^Ju^v@;36SAcf7f=zUW5pAp> z(sm-EHw7QLtOZ}z(A9jPMt!;4)dGoig(dQd&Zjv166Crknxbm;I?>a`V4-siKAXbP zajvC}W_w@JWw<~{e&b*!zBO(6RJFzUD`n)ka;P;JJe8!XW5A6l!t<{G*lo>e+5Q8b6p0{pqCjFwdSy>Ju7@>dkmRIA5%RUNr8z=!> zc2`LwFTiDMi4{^wfHfmlI{dxr?HR|wT|)}J!9cKkDeY3bp4_*{;hoQXU8S9tnu0Mu zc4qL^*x+1t$DQ2SBwT@GE;~$^|9wgflfB}#*r>{F^DkNZ>vZ~C7-Qt3_I*if+0uwH zx-$Y19i1C*;9NFpL_t2)CT%QEvKfgrikpR*TlcQl%cds9b7TT(_B+@d`*mX&nj2-u zTy}M7BSxI9!*cR8P3;g}>`S~C${Lg9u@)DMg@{wSMtW{)f)TPQ$P$!6lZsvCAA*tu z<7TEHtJql&y*)S7X;T(i^i+$+IOrY^{D6zA|iok>(k`JKBJy16hd!zY}c#mOTXtcLAZJ zQm$Q_Fk9~?+t*DnBOevD6)U1YGKUrAYYE32{x(;_odimpt`0Z}L5!rKFD11druqdK zHl3E7oOQ+-BvPH_wwx76Ton0SfDTM0D;Je;7u6CMOCBY4K6>I@)%zuQNbwrt)EaoW zT0^0(qPVV&wXPxxQU(L|RBQS@)3oE$;FJ$IB#ht>uICMyff_9LksIy?sTyVLw~0dC zIL2u=-ntJWix5+T8ZUZ`5NT)@saBtp!{fv0VE_+YR;LR!sl4n?r|W7%;u;6hO1W!N z_(4ac+nU52G3l~L=$2;6T~KoKEt_VX4=)Em%Sk#ZTep)gxeq>fkDGR@IHzf8;Z7j# z(Z=i{{LqWfNyB67cIFMY)fJDLRF0rG8X@|6A40W;&)p9xLCkVjYYKOL9;%aXB^){c z3guHzx#2bNmNr-gJRy$LZ>2=P;aY#g9g*K)<+9tFmC}~GR;P-eW`ldpID1agAa4GkOM~WI z_k#G)Ub2M;T^$S(B6So@3*?P(5&j+|ZXGNc0a%E^2sGcp$PfgUvtr7>aozk9?EzjV zhr-H#m*ZVqTiXZz0{<63z)L0gbg1XIeVJb?s7_ugKRvpCeW|G60>qfoPhu?LZ^W3{ zAu;9;C&n6nC&ucBsu$-E<}=qfB-1y$;KW$d_ZR%>P0Pwf_Q%ASo3*;|$xCIVIbg(D zAgR-3L7$NtUP0x_8`!3qfifAOc@ROG-fY#9r*h|(H}qs5&cZ_&K_=>@zTf~ZJH6Xf6N1r+95G!x^^G# zy3tYH%L3*zxf&1Cy#EmDfxB)la0nfTdXgXgI-jWlKKAG)n-f+T&^d^@kH1HI`q%kP z;H5%vi}8C+!a=AfTsM6#ITg~#@*=K*9}070ToogZkkVklOrT%f!h-DId_b+b5x(M0Bn*#F#Cf_J9EFEvJsF*Mn{yq~V#j(knR!VoHB= zBZMpu@aTS`T4Ox)=pO9LsGQ@DpY*oP3`YU6IM?Czp4Ykhb3T)vhPpr@j#=(2q&?#y z{dwz~l#D4sQ3s(ODVD0d<20|*lA*s8!Yekt7Evyg-WP=pt@GQUR&`Ffpp*H`XXNIW zQ2SjGWcWD=6q~%0FYTJO8nDKN^|c@F%X~(U8pYHDtuq~Ln$61Gqis{EA%yX~G8BOP zx-TOn8ncIav@c_BIw?5IPZ8VgDzFxZ>ys+RBn4DZ9lCC^Ah|v-)=VgOQzZwlqD4#i3c?Q205m`t%n>*OYbrzMS^IGL8Pj2?Q?N8Joa= zOrNyXAH`K4{9Nm_^7JwOOI-DA`s6>yRZ$MoCntVV-P~h8Y2--l>f6jCKk2jeoep^V zL^4-90alw$dTbMra(-rd+9p84koyfa@X#i(V3CiVh$m?EV@2|^gz-5~%=%rIGX_PsTkm|K}7S`p}9ef zc!SCx2r$U|<4nE}4Px}uvyJCt+Sn3SjmNCAmu;8BJYRFUk&yXG zj?%Ok3%u@5HJ8egBJInxXj^~g4z?M-y+K3E+a(Q5vfZ$AEMD(`*x*wAEL@$}N6#IpX}f8%I%3|>RT*D%EG z1a?c5hAaAyFbZnEbM+8ZxdDp)RmCR>z%b^G=gv%~8qL7NWgkcv<|nm<0h0dl>=?W} zH>K-9(KiIq{N6^87ob#ddW^X*-8KL8=lzt#a#BNN72b2)oqMK@pe-);Obt=$ZMAEe zKidf2ELzQ&o@yiDyuy1XT&U+vUHK1f1eHHFPmM84d!`=N5N!p44<0VkCb02+poi$_ z<#Kk7`Ok`esyV_Z?@Mrrh3_-GhG=6JKE}*1g(L!(SPoraWGoMUZzGsHE3y1R(U-a+ z90NtJN%48Vd)%FSIxf&U8x;7bVN7me0}=9QRiKSvJJv8Gw{9yv5!?VgT!=b7f0tN* za3MR0T`=r*r#Rc`i#Rk0J@Be;9i>jA>P| zwmS}Le5Q?2f-H>kr-zG3JbkP)vp2=}0b<_eq!mgM$vQ+WNm0(JtP@2a{&0zQ!cGqej7<)Wy{xzRR53esP(-8pW#!NS41D^(eHGg)oiYJ6=fobV z>u)LQjY7;_Yyfrrh8ioS*TXYfsAD9(mA z0h;)&M@&wv8m!sl3cL~#Qm>>!)bIG?@hBZ|Ryn}nJUdmJ18Y3!i%}N&MMei$p zlq=^_h*i)5{fg|5&0O#Xxu~N}Kr@e8|BCmSS6zqIZOd*zxyfEQAQyr<(~^gvynERpLJ)*4Jg!b-t{8`l!tDTp zh|!bmd!jB-=8e(gseYQcvC?yyhMmZndB{ULbF0l=ELgI^omw+sf{H>(G{LKXaMs05 za1=3tjU_U03c|&OM(=<9v&fj}Evku!k~f6Xk_`Kv2Z)5I9jNQHp$~xuy5mp3Z#2u> z0LeO_HrxFV2+2C3 z+|0F2k(jeP*MRO-hmf3R$AEs=K=+tjrRPgl#pePeBIONM_S-qwM#h(`sWLL}crAr3 zN~EL<5`S!p$9UHy zLU5hjN485&f>Np#*hKcOQqrp=E>*SUIM)wsB40@oE1p;#(66R>Iuw|_Q(KcV%Z}P& z+;7s*B6?Mu*M<=D$rCaKBVj$Wl=TuzWvA;;`-ko&D!jSevNy6e;WUeNXEIoV%nE3r zTe2p9Df**?D9Ap$ebz6;^u?t(HR0#v+-ka8U%FNH_M7JEI4@z` zAGP7B@w!7gN|*=TS{%k;~n(ZC^vY@>CLsBD-9j)4Y}2o6^^@z4k!`ug@eg-YAsM!HHp0YMZ%kN z(eP&P_lY4O;W z_wzyyPLl7{kgD8Mm{>tZ5)VKG7)dvH%=Yo_P=h_N(HLMH#%;GAE|5`=-KvGMHhH_U z-=mDk1EL2q&SeW~ol9r`~`kZ5sJnR8elTJNN@c+l$TfRm4ckSE6 z3=PuVT~gAZ(v6Zz3P>X;p-7i>BaL)-BS;S2DIhH&h=7WS0xIx3hZ59p-1l|e&-T2V zZT^9EuJt*NeOICFyW)j0xI|7Kx^-ENyM;+lwpVM*B4&n>mSo1P*M+}4)-s3=%Nx1R zKj~>)`}Qm90FPcHmE!n;Onh!14~4SLr-ZM9>2b1U^DRRSf?a#=@Kn94w4v{ae)9&A zZ#um5(NI6S9W4UCY&9Z&==<217xA#u3;hohRFT&o-nibtG03raB~{Ce!5P7y`??2L z65Gf!8A1Xt#z9yJ<}9HU&L^cg8SV_q=qauUjuC;x(km22GIBoZBVG+xG7mX_z+DTd z7*X};ms+j&LS{sH+1Pf4kmtR*i318^`nAF=D-jEPB_76%^di=AMn-)%6w0*w-Fe&G zaJPz>1B-0G6zK1_DzvVsXNW#RGeo~P%e(k2@mfY9r94aGOb@6gp9j?x502j8GoRqL zzfS_%TX1aNsL)k;nH$Ed1RGAbC3(Ig+kQb-k4=*hQ}|l;ay3`aD*@8=+^0g%U;~~> z7OnP%L6|kxWfK7^IeIhus@8G_9T8M*o}!#8o`NE2GiR*4HGKZ;eJhK{TZ1%j=1iqq&Fd? zoTgMw|6_s)&G3BBjtV1YvfD?1K$o3X1MQVhm(RkI>_XT@8ND*%XThyYH5j3#-XFc^ z2Dz-R$>(n7)1wK@bH{Oh$dW}au$lDQj&3dWVxMZvo#!+sZ2$a?gWTTd#%RlK2fF}M z=;OX6^6$HyA{e$LD8g5%NF19l3$o>S@Ic5!g`k z-m7KX5=+(t3b~cwAlXej&CHv0u%o(FV-B{C}q;7 z%Ka|00V$Engbinq)Dm((6|1e^XG=sORbu(irQ2D`)YEt0u!FhgDsvAt*FewR(uOkJ z6z?Qa`itg#69^A|S1|Sv#--M2yyFE;aaHCzKcgD0)!Y|yX4EL&ds;wK%pRL@Y6^>m zgrkjDJSAl|_=f76L0RjsSThx+`Zr&c-j!XZ>9O0;_pXg(2=%REw+ysXbyisS<@8uD z;|QQf9SqgSt9szdWZ9(6{HfzfwcjS)!qzi|4+lF$2p{~tm$VmN=(DwrZEw2X43)7Ngc$QTB2x-naS5UahCNB|g*(imn7cb$iwHe#pvd^R_qC1!q8nI;da%hx zU5}Tp4Kkl>-Smex#a_#Isgk2>I43d=n(paKIS8)CY9KwPoy=_Mi`u8LYqhm#|9d9=cNwnJPF`#jun=pXtI(G7W6 zh)H=2Zt}CV+H7yKexnDeZZYJ*US}mh`4Fp2N$o`)LHu&eYqZ5afeP%%fXF1~xwnG> z#-qZYcoGDm6_o*L+oPexfe~axvrN545a9!ty;T^!`<@yIn>^VG_r}ik34}bUx-Is~ zPsJIAVn5dOE1$g@A&v$Tnf$7|xdVySuI~=k^_y|rj~Jb8WzY%Z{94Q5+;;su2>so= z{2~|N9yc@loB1=v`C~cg>t&O(Df>=s`#%RG$}jmOFS%@*AP6kOb+`DyN(DqNT479h zV9S8ACICEG;3Y;-QB9y^cwm`BAogzHbF;u=|DaMCe;Z8SLs?3XdJRHy!r(TIV6CN~ zFPMIb5Ym;51P6X?~|A{`70<#-u(qA2L=y1A~8^;3wEeLaUXZvZEU zDWbA;q%1O(M+Zp3F?x(6_`^gf-9oe`CD$z?6+r>^L+w0kQhu;LlZcL{`GY)B^GTs? znXo3zr#A6y`?La+oKZuqRQB<)22?RGBHZkdVz(sYJYg+X98^3fN%v&T9rB`NF{2$` z$tL(?D=)_O4Kc@VA;`4mQWlLIT2!cLHI1 zsGE$SdzyHfw$CznW6QcRTQm{dUx17S63LaHdHH}Ld5P%TS9R=TN}3r40|4xM(ktu) z<)sMH)+8y2L&~Dg6mpUerGUH#g|t#~DO~c(Bs-OoUEN+XdvoG8GU8_<6z9=r6^Ezel=cBPPGZl0o-iXhroKF_1 zCB{i0%z5W1&5UjzP1dZEDK3Y@lkkZ5EB}pr)UVwL`(}L3W7sbowQgEGZs*X|6hu+} zmbD%LHe5pyvS7L@h``i?Av=Ze!#vv+;>4@MyS)&RC!6D9f&Snd&b_G|FD*QEIeV)> zu(lxkoSJaO$ul-&aeLI3U>N6Z^@53bio%pC;dw!RvenE5KJO9$q4& zl&uI;mPwg`>{$@Dnb(pgILHi&mIM7r07rgiB~dDohJg)1K%sX=)($M|HhLf!3(8kX z@YgS(P%eGOReWb2wM`Dqya#-pCeRfoxF)UaCR`vz0g^IY#qIEizKme9X)uL->3ca2 zDeWq1tP)?JDtA%sorJrxsZ}>B%8NAZ4wdV!1>hEJC~2C?U*f6eqT}MAdIsXiP1TgH zF#U$Hf1CBHHpo7xbfmlLkw{f~Lg~XAFvbE5WjRYZb&WqJc?2?|Y!JwO8m#oW%A5MR zJfv{CIb{$>Cvv^U9fn>ymN?rPA#R%GcHN8nTy{p!uHr&oq_3lM)YMkU)910&tbEI2 zV^Mt_UN<39d630^X{fqd=u-JQ`iLN#&1UTb#QJ@U8daEv&H|)Sa~Xc;%iE$gI`o<7 zh&8zjfdeECjQIIu-_a+X8($CAt!WcrOgA>`HwKR|v-31=vOJnw#}`~rZ8Agn+RMAw zi)s->FuJafD};aO+=M>$9AyR#eg<+Vj|q|4Y{axA?A2~2bm2!%Y<^JMOw`^;nuz8d z+en3mrY+a32-8AW-@-c6qVuRlA+?2VhW#^dtKt?SqYz)=r+aKPtY%jLAxc`d z`)sx~DtFkVc3>@an0a(O5mB&K0O_&fJ=#Dw>uYtxYPW%O5Gc3Wl(uu(bSA=fC1G~( z)_0jNb_Um@2cnS}{^*LTCyvnRj@!VBRWM}}>W&x2zWfaIOou5@xJTWnhf{$)w_YSW zxT4@kcZo1g@{ev)%-$EAy&09=eKiWbnWeq<`n@ZQy~#^mK9qfPuzfgweJSaEhLFDM zg}(lJqz)J4wqS&zV8oYwz4*%gJK_DE^ZmXy{Z`Zi;MT_ZdeDq8=$!)d`V8^=AE+yR z2p@GoZ-f!%T?Q1C2mSd5J6i@1vj^=*vUh*Ta;6N37{y=rHq5cQ2-_HXT6lG+I z13ggPbqWf-4=56j4pe^D7YLOjJIf67ea+dc^@`UOW959UG$RvTP)~RN% z?X;amUfKKJqXTLmyxyv;5^$|NQb!Vemz(ne7p_*PF=Qp5hCpWmoQ=+{%A+`7~0(i-X=1UOq;GhfE|*YT@^4goDjdae?+hlElB>T2F(Q`%@%Fp6hAu>q>EusNxeTzBvx$SID5mvXj zWeA&U2uTM@V8E**gyNo6%|y+?nLUK~dHj-veTT{}MlK*Y)$$Jh85>Iwj9kt^Tqi@< zM^0~6+Wc=5K8(yq4R!7jvkD10;OV&%o;1mzTOoVd?>1#TgY&kCkiQ60s?p+GDJIf8 zFNTqV`=&Zgx_jO|ERP8k^klYS%GKDyCV2)5W_L$M0>iDuv}Hb-&MfUT!bgd6B+9-L znUR9hCYtclC_^(bu76mh;#o~O1hLmu#Glj4{Bl`BlQo=FWAIYm1w?5|nyGLL^zt12u+VbOYPdyBpj&vZv; zJrRZRRqa+0GCy7`%tuep`l&CdXo@XV%&Dq$qn}Fr_w~gHuoO&?9tq!zZ((}5z*l>% zx!lfz6&r3^vfp;8%mb!~FmOuJmj1bb%+;c6H7|mDU~g2t!M=>P6c5UFFeooIR=Ao1 zsm)x*=dY{svU2ZD>cZZsVV_-=MhTiJb&!6nYgPO(K(=f2#!fAPS`O~lKwW}ST=qu1 zAj_t2{U4?-*CNs#u8Yj<`NXI^xpo`!KS~czAOt>@g#sH;my>Nf(5}YgkG0TQ;7e7@>;+OYhd=J56(d49Y z+iJ;FFeV32qBi5TgckHIvpL6m^Bo0ma7BG%8^13(#VY4AhqAG4N%4o(6|d0 zz`8G$#B3_B9Ng`Hjl6EE_G7S#;R-v|^(t}g9|X)~*3v6{9-qTq;T=3mJUF_uFMaXz zz;-}8yi|imkLg+8=FvRtJhSYMGl5J@AWc!@OrzmN@8HF_t40{-#i}7CiRtQ<=FtXz z@+!x3ZOG~HEeVUiY$&3$gvgUH7?<}$sv%!*3r%>*#Ci8TcTaliZm+K>N9gm=;CeR1 z+lR^<$=BzVlKz$_Efu4WP1-f?$NKzTM7Ic;;moil5Ph^uU7eNOpPSlbJp|pC0qHqh zl1B1_#y@!1|C_C^?XsUvxNqUelW=~d zr!{<0ar7)E%=B@72n+t25`h(-kF3HipXGWxv^p28awWwD^ymkOQ`zB52QhgDN?7|R z`UV{ue+uNJ3M`KU;qeDUN?kg-(2dPRERjgs&A>%|a1VW``{N!k?FQd}jyS$^ubU9D zR|Xxj`ap6QAqOW^i<^DRGk8%_e9Y|9^hC(ekW;2f=q4f2X6#)qjZ0T}9Jd`1)-(`p z{F%w(@SH|e14W3|hV_W-5%x4l$~3SurNc8eVG%SzQQ08$0MHjc-{ws#6fBW6{lKaP z0azwPzq??E3Tv{Vup3G?Y@1=;ST`x-*@(K4o1ffu8lf+FixlXu-l!BYI3!N00;jcP z8#@2Ap6cl&6+O=$qRkjseTj_O+Aq!wG2t$VECblBFliIBa2U)%{k$NvcWRFqFID5SJ9mR#GqU5+$LLiP z$Z>?mJO>9f!+c0%coGnIAOrg7kKmIB(p`?Z0TX2*OONY_@P2~2=ZUKN%gCsB&?uL( zq(j(>VUV0{Tsi0lUTRRDELw&p$kp*#{ipbc^LGY7-W43-_3zL*1aM?D6G>Krz*LE| zlxn$oiK;8$My4bM4xRCM)GuYU){e4$$S8I+6eV=HW0Ty^=-??uHYsA+B=6kP3ncr_yM((&+`62#M1fm{~BD67AlF3dyQ4_keyN zqjj4j@C72qY9ewHGxoPe6mVvw+oZ&lW#9~FjB%v9Q)Z^mN7$#@NobME)S`-5u-}*h zvpWfyL}fWPXWE8m6d`0Mre?BeWfvHvnS4VrO31dHLcceaZEbz9A$DBIht8WaT5}3Ff^V%KrdU&`eq2TbA#2w;(Sv-z=Z`ab+NJ zgB+^cw*o7V0=w}17D3!LC;iTzf{EzDz^(A!z;re2qTcz!ezBt5yVoarl&7^w#^o?) zEl5h4^X4cEsfdgHJ&K=-7TatV-KBw96GY!w%eODh{yGP`+6`0a( z3!FV-Hn?Z_U>1ur+S?zkL%&D_&hmM8E#r=3+{YR2^9Y~wN$y`ld%s7z&xiJY&usj! z|M}HA6m}u(0qoKRP?W-X+S^%-`zIFozZl~_mI(Z}V%(`Kt_hF<3YlYxK)H60Ak;df zeq|lMK#V(-&Z}k_svC?06|R4{n%uaqS-k3_+Rr~&^(B0y6@ z4n-+orpZH53THXLCq}k?+(+b|?{ZduRZzMZkz?x z{=kRi#k-5mUHvs4q1U0bx6_J0kZa)KQ$F6coq=Xn3VfuTCsV1Rn8vbf`q& zXF;iiSd_d5zhyV=*gEu5sqTo}BO#4w2Uv$r3rbMhTZAebXgW2tOQO3}$y?TPk%F7C zomuNspvEyu0g=4qG{()9piHtRMDtD9x`Pf%?jbcq4-;v>yz!DXRI-qUd+!J83yy)+=H{p^WdZR#5 z3biNJApt^_k*zb`pb2weqguk{_pp8X#4mM>NH-l!A%i=XiU0dO$bWZ=v-$VFFrE z(yY;W&jm9BCHKhQ&{t1Q>=R}XeAPW*U;8;}GdSn0ptK#t_qlt}?c3)R81$2Z(snA6 zVy;*jc)$mr5$Pn9_>1i3uX5xnIzDGn@?+V}8J-lFRzT?pNS6QosQR5+|DT+9|2WHl zy3qyMP4I;|6;#3>1f5eKsQT~Mz22;Gxlz(f^Zy4sp8M+l2qP@13`rw&Hloinke@FV;=q9N!Xe+^qKq>WV4QW5)u7T1IoJNPGI?!|J{{f?hn+`Q8{bt1blbGbx%dh-oG2_+uSsUQ+d zlv^;#S^|3KWjAMYs<=fKdh`7i`NK-`Jeymrypwmmkf84xkVhBA76GWF1B8D;nERz} zq)6s_imylfPh~gIIb{$M_;~Cd{+dnjS9{O(EJ=z-23>qhl< zDMP!9;nL)~h))p>Vf$&(B3@uUOBoWtN^&pWTaAuQP8rMw=G0vp?m5rKf|n{{OE~`I zhjlEy7&d$F%lR6GK9*M&3vEEExxQmo5wPz>u^bfFGk2mc2rq_xhJ!;SwZ!xSw_U$3 zheYB~>WS3toD#S>^7z3u#)|4NSPkl6O!s!WNgj@D#Si`b2O(&d<3;y#vR@W@1s-r4Eoqhwl}egLn?+7I*KdC8C#W(mCI?z zFq4SHswA^F$wAkttxPS7+=o3BkwCc%Lv~f^`qt&)6rA~FOhFE>ONrJ_m*bz3e(!`} z2E%}GH$A`zdF_}Jk>1~gbKzw+Jtd+c0gQd!S2DUwC1XT_NNNn>uqnIoTptD>(jn#I z$d*#0Reta%X%FC&t>uXA`IJVm36YCslnqL-3qWW$L6+V1xTHVtjiWR#v*_sMDAt!r z?g2qaByK`g^6(UNNxEimTLvq0Gn!3#mCZdsA^C=JX2p+G%sE-_4%tTxEP=1J-1qv5 zSJmCtQ494E<K>6j_=AvYY!}#r#Vl zR*$twX7k7G>-RxxUh*@G#5*-zicr~&j^1kFk?bZ%es)c32aw&|zrjd3`_^KoZl2Cp zyY)niOLo|9{gULyu@?7Kc5|Y|)qBE}+60qb^k8tBe+EH=_SSxj!=*lbHOk5hcD!rh zo_GRahdP-tFKYC_4%zx@S@`;d_MnDZHUp zZF?%~u=pXy0z`K+6$t|}kDTnUI&Oj;nb<}vq^i+^C+FBB(&nKWv1^1_%Gq-b?VUx* z4+*^FJ--b!Ce#3Zlk6LgJ_zb}qj-phgmPl~MYuml=JXAOezQ)0=$0Sz-5>V8)Z~CJ zFA+8coEeW6W}mD?Wjv0LEPFBp4u{7s!_2Q#BK+H)Q3O4bO4$oB(VLomOfHb`cUISU z!<>c?9#zs;)SKXtH$M$1H^P?Pf5(+F?_K|a3tLrJhn{3_atMmASA1`w{e5Zzz}Hvz zzrPQ~*JD)Ibe_Z4lciFg@)CbXx}V?h&(`~2c<%qmMLb^Yfe)tH>FL)?Zvma~e+xD8 z$IqtYKYvBKU!;%(oP0bL|NMA5qmY2lc!~c_Qy}QynF5`@?hhP)JZ0*y?q2+O%JRPO z@w5l_s&l7pNIm*^ddRX)D!hui)ccIzE;KC<=<*$=v^a?2)?ofaSGzTk=kD)Ie(bF0 z#U+0x7XB~rygxslt`@VNE&1!OP9Dqw_YaR|SO3M2r}cyzXN`_?UF{1wo-Ues0N!KA0yY{LvIxVg;HSL2Q9LRtp!#!n3Y#2)19Fo-Fuf$v>iy zoOb!ny4qrRRwwSC4+0O))WZLvDexH2`_~kbzxj9qy4ugRMw5>zB)shacJ22iKS$nb z$`dH_*~O4!D1g}?b9gUFiC}oWk&wBuw-m=xEa2u1EctI!e+M58){;QbX@IE9!x)%d^RU6%Im=rxJ^Hi?&_+oJm*b; zI=_|qs-yEnkIQ^h^rfE6*Noxm?Tl1;bGv}9wgzfV<|&>x^}Jg6tgC&h7M|jgJi7|B z{f zg`@U&{QLbDYnY{<9VL@E-m$O1#l9KjT%V{$l_k0(Lu}K>9*ZBDN&zs z0S*vo`TH+~=zsBEJ{PJ$1;+|>I-MYtqq>VuzeGKaN1iAv|g??Uz z|KtE!RU=#{%AG$hf8Pp+0k-XO1~H#wwJgAMH@FFG+kgW^a9sCT7FX@l^&7V8RU!o1 z{$@G>>>jnhwRJjytMJO3yHUI<5Z^Gh6ImS4{#Mx*IZjyJ)eJb5#UTKQ)?ZxoP+8o$ ztMI!-eXE0!#{P=PYLvFR1DECTSD94w6NnQ zLIagk%pF$8*s9+K#yMG>HtzFpEA0=OV2-!#jaStO|6{lZN9Q?g)s-@mjU#MT5gHQg zBJK9Y_BT{5J3AM5%QT5>9C{Vb#B#Z8?sfMJ?$OT(0k&-lFKb}i-VcnlH*I-z+Wt4GkQ6 zy_c8>{k~COccK05s}>3j40uHI&$HezS4r;QeDEBZQNP6X>&%0Xt~>MY>~6bn!XCKo zt)`T?ecLDjvJ#t3O^vY*Ov=|$cW5FG`RLGwucOk1>-|7rgur2MdLSrJ!VxewVf)X6 zFuhZ~ji?${;`ATuLguf@4UyrcraqxC@hGf}cO+!xT(~3ben8 zTC9C}3#l+3JG7Fo4f$~er(z!ZA%H-PAgT#Hl(p(MDjjQgDMDCWX&5*F7muVy+Kd+q zSc9<-J6*B-1G{bvPX25M@ZdUehVG_9@H- zlt}?E+r@*z>4l>ffh-Jxz2u+|FN-UNLND9RvM3qEinK&m6eo*n3Byi5{|1RyA2!`Q z!i=O#g!xLhERGSDJEamG9u=gU`TkZQ&1NRc)p%HzMXpFSw2lLQ2QiG5%{VdZC@#Y| z1*5>tct%24lx!jq%B|8TgO)2iVF6-RElSS@H%$18WCw_yB7Ob5DY2}EEAFS>r)Elp zz{`YR#b$)Sr|K+Xi|WIwCs4xUGt!~5LcEgON8r>p-r`+>QBuW@0;63vX5Ay|L6@LR zLnDI~`5rHegk+F$N6i?4gSj2;M@5kOhURs!R`8+Z+lWJ-jSPi_xT`pc%HfV1>2!ty z{i5G+LnWS>lUd2BB_4co+gYMPx@$4YD^($wBkt*~5I%rIi!I3nfk9-P_rz3!fhSL$ zrS*gHLd~X((b`~O(j00J5_=d_zY#BWU9bl|yga4Ya+UEl3M}*2J`lO0C`c_}$PM99 zW|B9I7@xl6M0{mz2S+xFT&d@!^i&Wf;R5&NXIC%9R6Q|mGY}#!YJoUe;DO4}OM#8?X^!q+2S6P$N z1&Q~0VQ#Bb5q~MUp^gd!nW_srim0{U*GlG?@Mmd}n&13P2#2hbntz*)9YIEas>heI z@M+;2k!eTe9fZn4SiD?GgU7d-rC{Jf@wRjoiQh(i-6+HNhv;D?_Nw4d!8uSF%dDe# zAz5#iiP9l(szYQ~Oz^?_Ga@K*0n}7GIl-@ZzfIvn)obH|wQY(s~&eYV6_@Y%rjp~eh+#?`Zb!kD(A)II>)0ed(UO|+DMK=@q&P^Q@O~W2Id|FEkR!wH z9)|O9b^)u|BQa#%1(dCEhOq~p3rIp#)+(WFp%`~=4I>GAcp|#k zB00J7-J~s;TA&t4X!LeO5Wd%LUcw8yYG{xbdHJy2{3hAxWyCbu#|P#^F(aAk8+Y%E zmP&NUm6aPy+L{>dnfJIk=S4lw8oRzK$&|cb$e5HJvwWZ>SBD)OM_!j(;U+f5EZ}@A zlb5eR@D5&ds+Y`*cTo%<pBCk@_N{bc%b_)bLmknwJiPwLh2 zu;ef4h|Be#7$j$2Hf~!aI&e$Bel)eynA`gH2cEj#_hkI4+<42k%G!EPE1$9Ycv`A& z(knV!I=LgQpuOdfom8-9{yasXP{iGO)9q92W}>Cb;cok-&X0x_2iuRY@6H}J&oy25 zUXE3~CgCW#D9W{Ccoz)wuUF8hb!v{84$x^PE~+01Ct<; zWmHOjG6vbJUzhlDV-w%2g;I05O_7~Yo0I>^b+soPW>2{MpKv=op_cGq^@5Y!fgx7{ zv4YeQ2;J{_YdDOWks3Qmb6BI%frz8kRQxr_^aAmP@IXWK=U62q}s*+@flB17>X}eNG zj2wv1Ubjt3+EgchTU2gWuRPMvZT034Zw-1$+ca)1nlZsrO3iO?wZ8JXCrD~Dsp*c1 zx-mS|-Z2e?Gkda|Blg`-{HBk01(JBKj93gF02pS_rl?VvlLk=1etMFybRuws5cT#f z%>!@kJR?a9V||$A$AY)@)ZfVZ^UAsUz$I6zWxTnC-C-T8riZF-Yyhw9{Y8)DtDY#H zsoR&EIA48g=2hb8J%`^&E3DXBwi!yBs);T?5CMCp5P0T~8C>(xjKDX4h#P`ydK=Y5 zjm^)TA=g*zi!Wn3oS_NarA-*Rc^QTg&#^MM?r~2LUci(;f!xGRtPb;g_IfOnN~*jd zLjr#%{(wt(O8J!%MDw@g2$jL=x7_W+8z?oU5R4gkt;8nfi6<;LjU;nT;OIN-OW!z> z#XP36_BU3SoQafAku*;KDhYn>CLj?p@mcaPJO^%E>K>!VqY)!n(o9K;hfxkx7IfTl zn>=uFS=z1m7SCxd)GHkhv(1ObE#lRcr|hDIYsA{)BD(k$3B&J@mj=dE8B%|>pg>TD zLr@OSj8EYXh0nU1xDxWL`)0$A!QrEO;40XCL%4T@AtP@jIr8*qzJySNl|x^l@_o74 za9gr8((gI9oav~fd8T#{y`01o!^5uz(RL+xQE9QZrvB1|n$*l94<}n;=|y0v zQauR>j2akZndk3(&X(--lkMhFG{{Wl^^rZS_mds2luSl&Tz@Oq`bcs%O)^$3wVUUG z#Bv(7piUi!c}KKXFj%OAM=WVo^p%gIbaj$1qP#JJ)a-LxbOIxKAB)QB^eWz4S+{~1 z+GJBQ&B=TGkauFpo~sq(#)Kld8Jmi!NJ%kG#j1`=e#pv-^L2Y3rHMb3zAw!!C?ggU zPfbPXM;72nZf#l#!u_gY{T^8!{n)YdBLP1S!!QtbHf~vKGT9iVd2-rqk*e+PukxP`fDbYl-HY~=EfIVEgxNZq zdgQu5O&q3knXyF~k#-qrP#JMu94&{hr9%qsGhac|2s)v1#=3H``TS8;3i~dFY{Fm} zqyma*MG=tui<&a>=`!K(6@1g;bP(5N>54{1@ySegX`!G}M)$&8aoO)deNhz|yNb%s z+$$NY1cS=3zf-Y|X%BJgg7X6*ol=LbkIDEXrHKUcCNO6 zR&B>p?II+@_MNK3si51)qo&8`xkUk!g?Jt)BM;YEXjCu%maZsjPaP3-|Sr9@vI)Q{@k4fLCTwgbkvwa$%Z5qmO!bX$;m!GOLI#NeZ1GS7j$FEmpWS>ju;aT zWhfG5NSAF@6b-B?^;HxpT3*pl)<}fn}lNPFo zl1in|ZZ}HFnRPxT^i}HcxgGD|z_ex#15z@pR%V&$WZdYyre4n=+{LQU<)PDsv)ZD! zS^sr7fl9=r)klI11?b=3rLELmF{;easM?sWk&tUoEo@Kg6W?CfTCY}XsZJo&Hgm{_({AiTeJjnf{p{{d1%P^TGp&iGjuSJ#Pzp)`Hth6FI4c`Z`Dl z>(B=8BR!;Pb$vI}vsyp6&f4_eg)>%i5Kg!6v%(N-a36u{z+U~(kHW!yw6a4N&X1Nu zxR(dvt%i}TICp1;(DsMO-w*K-4&&hr;pqy8kFND*BH_aw5T^bd3F50jyfU`;ns zT^VLbdP(2#(y?v?*RU1^cNC3#R7`hN!gW;2RcnSuC%ThU`|BvB>2noDRaNvcb+R$F zq_JB?V;T)(cV@@*UB~YBj~yEBj~SDV8zqgKG#HP+9KXLmZcWCvfc5I3?koEuMn%_G zP7SYIW?#AOzw#iP@VYwTtvliCI^mx*A)n#3CdMDQKk;Ew$*Qwm3sr-hi!r7_f{i#y2>GG@7q}UHDU8if3rfVCf>-ULb zW~U)!Gc8wV+H_|+TxYzRC%PJD`etVa_GgCn$5An7M_rkEE|Wjiot4Cto^r*1K07>x2E*Fy!-a z*XBWY<`LZHk&@?88t2jG=2bBc<}q(ffUp*D?=0ZEEf6Lz5Z{G6p4xrX85hE+6>1{Ou+kSjpXf%`BTItmzGlo zr9_I~pL}%_5OFa^M;|>bsj__BXW{&u1$ZC-_D*=$iLojlXkz|yC%ll#L3u}cCgM7y zL|(iTE~|tnyeMDpjr;pM;bj{x;9<$`loA%n76WY-+{h!Xix#$(>g6|?IYZ}06CBE9hQPWWd^)D?WLiJ4$|EaG~R=EKEB382FMh_|m*gbCzbTg|wb%E<=q zgiK*NZhwLRTY!@YJTdbNk5f7HOd=%^d+~dv-m`Lmi0cn{`w5eR_h;TmHVJ{yGwZVTncl_G`F(^kWEcX7zK|-NoRy z_+m>AxIcYvnM`{MqE8sAPrRw5!*CY19{61Mm-~m8arH2yWdznC1u~8&h7hV zVMuVVgd$wO&<7q8?s@bH&FxslHQ69YLYji#sIGqW*~k8@N4{zrgq#TLaT`bfa3mEX zLOCQp+lvAl5nh9!mF7r;G`3aA!EUHo3c@jJL3p+U*|tgd#{HH`rB*|N>+}w`LM{}Q zs!dEAQc6OFD~16!C?rFn@^Xz!>qo2cCbk#%x85?iz1az(=7I|ltD~Zwd4JRNULPZCEo@+7z*JNifooWyTn-4jWiPTy^oV$p8 z%(C!rK4tj#5K@SiD`Wb4V^K9kc8PzDa19lvqNNE4kdj-t{Yf*EggcK!UgfD%X{ds*Bk!_wl=Vo~<CxkJ3EJ z@+1b*qx^W;<=E#lZYkkSr=+D1Z-7{9~ z1fasu3p6_A#>*4bsZnL_X_4gLszNa+k~h0|b+&f=Ia?~ozF}Q^L2j^qe5}N2cKzxC z^KHnt$kNAP%e(L-N-c}(V)lXsMhxU6h539g7Jx1v6PJI_cmU;%|9T?!eBJ|?!x#L^zoldUN;7kK@?NK6;1_6a92EK( zA?#_WdSpzjY;@eSqd6Rxa2x7hRt(4mXwATTooiOvpM{t`z0mi%j*6ipWar6y-SHgu z9%*>n{BHSp4r}Ef&EY+*kdF~f@ZaK!P)~>m%&e>WX{YH}0LHIEe0Qb`I*0GC zFe_Auc`}C|7*@KUrDHE>X1n0v`W+|FX`dGZ=r2I^bV^6YRGfb3{ZqFT^}WcD^x3e*0JNb-7ruf02&O-s|rE z1B~A(HwV{e)3cy*Jg~j+`AYu10MN$TI#21rx7(#HXYX}=ycaYx=jQNNuX{BY-|LDc z+s^x!kLEBt&(cBfC;}XTsqD^lU=_7ly_X~5$GjQ_WQ$B|}cUL0wM6^(Jz)6#~Lq?8X1 z1)=ouas?&muQW4a0XC^V(jE|)B2X*w&wvLt$B;MiMjECcw8insU*?>D*%DPVT}E<2 zmc#o=0U*R&jX|vy%O#L440AT#5wB}3n9+HB`Esi4? z|5MXD_5U{DvBh$>xc!m{Jg!sxvbzCYiu3E+ap&*YMRtBvoVERaZ%+L0n9b*h!N2+a zYa;L>LI?6E?v1>*NfcO8SK^ZzQ+RFxpj~UPB28Pd2{W9e3 z(%KQ@Sv&WL@f^GLBIJEU18Apr1gKM-EN--0=LUu(GeOv!-lKs*2^@O}pa$hmnRI~e zPsbGf^_yq-yYhb+7)qCUf`1(tfsZOpF4q2HMoUHi(cXf<`RJb)H^n;Mww~v)4(Aeq z!mm0OyCN?Pj1#>74K(_lkJ=0#6n|RW0593@=K{8ZA z|3bh+VW9cv;s--7+nzqGLWo z=p5TyBE22~_LlPlW7gqqQFRvahHKxH8zR)+5|&Rl@54~+U`fWBj0&a-LOo6dV#ZKJ zyjVK7xIMoAv-T$#8{0I#wO*+`d+0#ye|zH5d;eLtu@8|jgWsWee__uSiZID7GY3fh z){yl1MBt}E_{i^H=lzZb#vxm~R zby$ZGP_;@uXL0n9c#iEYj0!&!fx&5LrT{_*;W9k00vw3Erj_)3?eF5i2tKj5L~x_m zq~nM1)!~uf58`j8BJ5m6L=OLS!QPUIfUt<uC}1my_Qgi+JZ(jpOs*`EBF;2+1xRJf0uGwsC9$I1U1y zCCY(q133BpA1xfep8PIm$^R#l<4>!`C1BOKb+&3`{OzjI`KMLGXQc7%^6}(Y&OezP zb-?6kg5T*sH#t~UEY7VOG}vt9=DEiwKl{n*qmy6c(aBFt18myGEcu@%M;Nnp-QyzM#-P8R9A_s# zU~G0q++TS-s+k(bAU`hz9=c$*<;)5AQiK%!SF3A_6%rjNj)Kjn;U2 zMeMIv4RQ-5nov{={Tw0;h~_l0lN^H>GBxf{P73u80md{x`in(86?~E7!uZcu$vgs=`;QhkC#~KYHE!Ze0L+Ayffu~{^zzcKkQh`_yRJLHhVlVi?OLFfcjnYN+}WM-X_MDj)p0 zFz(zg@=}Q=))a^a9*bd4yg2mG(Ry=1_9vxg03273WiJexgDq8 zudqxHfvFH1H(rVKHy?I!-h2Wk$0`ie`*pf%5Om9gltx6{wLF;|BhnFnziQY%I{bZd zeA|kJpk;ITojdt4QNnWkcJd=4IK_L?UVK#g<8E?%#yWdi`sH2ekL$_#N2QUML+2;V z|J|Mf>?Ri;l`bMl{xD(A%#x?!b4v&RAWP%mFlR9EsH6@&Dk+>jD$zc>9hi}ucQYsd zD12V-npN?ao@W=6~_1r1+g=dFtn*(v$C8jDLam)Nbzs{4;;7dLKP1T?0O2 ze?BVh&Ky4~Ekhrb9M2w=?gxnc>qn&}M~b6IC3{%0U&H56XEFtv@ToI7PWe}7^2#~? zjCBW74mN&AE+p~Kk4pKgG;pkcd{p|wF>4JlORDS`0^#!n9HfdVpz2MD0RgHvqsSZj zEf}Za^S?f3L7mALc9V+}2KuP<8n2gK75@hd&{hf()d3!r{&qK^d78mb=nd>9kd;8_ zZesbg>Cd~#ug>JtW7ewz+p&wsEIN*`U#i|09+j@5X!E}IK%CP;^7^Ra*+~-_&W{zq zeobOYTI9~|PbA5TB?;u@Q7P^r#Jo4Ndfnk3apni7QSY2jk9{ke*bX%|G<1u`lb#=` z$5Jw#H@(nqdVkXL_YnTncV0c#u-Z$a`u)pETj?;jWbu4k>9^g4)CmG;yU|jAMUvdP z=iD>$6rN!hAF=xbGNyw5*T!m5l#57`(+N|%=_4`?L8e1GI%cVGkYPNAB1ytM$$p$W zW>JrO<+jla9y^nj-vDhTPKR8YwAaPCIApe;f?Q=tL6Fl412vCH#S|6;&g2Zzw=#e; zxuxtnQGLb{lH}W;cM~q75H3R)a=Ba?L)Mo@{wwA*V{$vg74MF6Gc&e4#!r`sbAu^}-XknzqzVObvtd87^Y(yEC zEMWqt`J(TZNos8ELlZ`I*=FUbryz7pG5*W4C(h)YKOsrZJt|2Wo(Yft4T0qR;sdm4 z&$gcPD^C_c(LLRI0O9f3;`0k8>;E+I@Q(zNUr%PeWIv6VN1Z4ugOjWS!f#`V;n{5m zU@WNyo{S~;|H)V?JRM7woulnJ?~aX_CJSG70WDhG#*3Ygv|tj*$M~O}C_l*=(L_Lt z)*b{HF@ZOhfVR*h>a=Z82G0NE?k%ID-uw1#W*EAL?(P&2kW{*30O^oW8VTtfy1Ub% z2apmZ1p#TKyFrjr5fB6s$>mtJkNSw{MX|3yyUxn=jS|+gH;7_V{tVY zN=FDWWlvq7b`svP{;$sx;>N;Jn($X6=FN>I(ys9LO;oi>65YZ7NXjDAzx5BBsPDPv zFMi)dJ$av=<^4N>WE_{_@6_q~A6m4VXX#!6-9L04ene*P*YJ$E5&siV{~DR`KamOn zAJ9vM5{(|2-9%;uS`5F0$2Xg(^cw<6Dg5n!BalQ{V*F;rL_AAByAB!Rh#QOkuT2zl zqHF;BKXe`b7}56qid>tG{mN`l>wK$XhDx+GPq27~Z8w zgh`>7jwSn`(kaRA8e4f%N`mx5%OYER?__(X9cUT&LI!KxD__N3p zq^l10oxaPH`IxIq^5{TxpD&4yH9BYOKc1zUul^UNiB9qu2lamnkAFsHV{(_>NHByE z^Jip6MGPeP_Ya@k#f#rZwCJ~vk`6Nqa{Mq<1a>f=EV*`JF`22X53VudrO+`?Ni=@E2 zp$r?}(ed$$rD8)>nHVU_2IPOcu>_+;#MDBW?+gyA`y8jhu$jGP*@m>Tk5l2Q|30Gq z5t(hH^D6;%e|`8E+>-B@$b{sQ^Zg=a{bSc5XZ;5$>*urd((KPy=l^Ec!T(;ydGj%( z<`Wtb8D$tA9cTL}KFJp?In6ZIQ71hoI#WG6_m_uR2F6pNn-8z4)u=|qZI1Shh>szy zX9yYR^Dcyk`S*{Z-wrjh9V=e-2oLkk64!EV@8@M7;W}t}FMsw$CHw2?_v;%E^R5O} zSBM`ro$){|{T<~uL>+D5ny0USy*fqx%tRBR%a%t)h>sz}5*Kl(sYzzXY5l2TcBE?= zkGfgnI`Fm)#=ibshVU>a5Idqz$W0YPiV!l+o6CMbs@W9*(Ywhi1fP*w<;%jrbDQ1@ z#hiCsOHDtPxM!tH|3Wt$%mQhQw~#l&S#T3RR?IU+_a!nuP~mEEO)f~^t5akU{>f)7 z^?e(fOi-l#OUC&xbi9XS5zzTKsl`K{7tQ!j2?8V0yp8L9m1s@i8Pi5Z<`mN|648 z&p1k)X;7d6=iROBWT~7?9uoSdUg605{)4XZBI;g)lYbgRgRXwm$0qIWF3#qy($`hQ zJL!m5M?R>ujfX$q6#tflM2Gz?y2m=saiFu~mh#3>8(0l9`icFgm$HYI11PkiTPp%g zY+QKHQT4Fn+epwry!XkhW4HUf#6KJj#6xpKdzi|oMzq*S&0U?SD_?32J7fEW56G=^ zeIAV-{}5p=j^-FW;(*i+nyB%Ma)1$G-5hHAH*SkD^-&3CYxgs5%@}(kGZ{sBNT|-L z(#54TeA1_D6tcpyI1v!FG-s?E(|45jD63YpTJ`yq8B7@H`OuReOWnE*%k8Yni|OOt zpjEgkb_e2PNQK1nU1qlQ1m80&b z&o3Kr-fX;vb+!wX_i>4we`s>jUO$NF@Vh*@^Y)VPvnSwQ>5g?>z}1%vTBI_US5nQR zx7H}>05K5BI}gWD@Z1!y;e0$OeU^dm*j7N?15&q{be%|o~$(0 zT4Xwi2H@z2%_I=cHZa`-!MZJg@fCA$K;FM~vSyw0mDxa} z@WHqn5lct7qBBZkK8v68Uu2aQ91dpN9M>D?U$T-DvX2K-oMbhK?^1@fV1;wsx57P@ zmKOOu&J3z4Bs1v~zfF-Q61-XHSo?^Jg#ybl_*O==NE(SqYZ5en(Byh^OGY&Ti8<-* zR8fhYG429HJ-tHlscj@&BVu0w!c$PT!dRh|5gj^mgaSW;a%eLnPnI(vm53!*FqtwJ z$C(y@r1L5W6Bh|`zDrkHR3TUM^XJuebX7sPI>{u{rW*2ti=Fv6{Xgtu*Z6>{zX<@% zzA7WQSLt-$9|Cn(?##ay{ZdD3NKgLGkmJ=V!SfOVS}JGRfh;Ye`re?~+4YLolg|^L z=h<`FkUl4|C=et7U4@wHEycdLo7O1URcU-b#z=b$pX=pEN2c6p&~r@ETTxZvN=?U$ zAuM{D3-kwM!S-W2jYTad;~!l#IVpx|GRQ!Zs2*(_lPuFmZN3)QkMQ9!t9%flm+vfU zq&AFr4^~*3fYc0k$4A|I&RZI6afoBb_8&N&m)T|Vv8N(SH6M-MDk*p2=d`$TlWVwHQd+f+>1WG0MaN&qptub%G__r6G4ncP zm+2gw5gYqz0m@;=ldLT+TUFb}Nv@;YrA{eZYMlFT^0ya@u4S%BA*@}~r>}374?fz_ zX`^7y8`Y97xQu09D*)>FyK|oi264ZZo`S*}s@v+U=w%nNr$V7X7f~wnPg2sX;LoJd zap-hkFN8-^rK>B07&vLWmiz(Fs_NEF(j33h#;}Chn!7m4H2KVvirf)e#c_(K${~F! zBh~hP#L0Exj=FWC=PORj6=n#-5;7ic;nUi~&`OLA+=S+yubmFD<34W_TZG&BMvvfK zTK9H+UT+VrxKuRPZ|#va37xz_u_Kgv$9CQQDryTjt(HrhV-h zwW`VexkPpEM#s&KKU))5rpYFR*FkVyOj<5?xeZ#Wc}%ZCw@w@PAH5ZsElWPA%enfX zxCI}ZSk0A1&HD(q7gq1C(7r_}@==W}1p{fOtJsME!|57jE)4oeorvZ@t9k7zn+LDx zb#Ihj*;AFPgNWxwQmN^lpsj}S?MoK?%vgn&yKABslR0<0Qtw?k@uD-qBFTq=MHY)F}Z{kV!}nF#&83I#&I#$bJp zf(Sxv{lI4~z#(g5R>fe>qo6AWzfpQ~Ysny6UQ;f3u(%KoqfJN)l7reI4f24n#(01z zI$q{UNU`%18MaVqSSZgS!?LuAc&50kGml_1OM4kUM}zm46swUJ$ixQppjlM6GgOd2 z)HW!{DiU?Gj9jkPF=s=WRzJ+P+5L%7L>n~RgN=%X=!sgPy8_rNt1jX;nQ|x`CC?=? zY(SyGnvY#yLywKr3m&qT65`Ki&Ia~Idly`A7~nlXkbq8ABIB8-NH*jFLJ^McrwiFD zjP4wdge&4bj5LZkiE`BPj8ur~?Zu%yi+)lYd2I_0YqenAG7qxbim^_lEej59Ac*oQ z3KFi1(X_@2$OP5dSoEQD$w#69J<;YS?=3WYuL*-T*g%`Rz;|Bp3P|xPiE$*sJomeS zRlyWobP)=Y3H6_8I3RIBP>Rlh7+_btT&KTAXH@5FoHzPh&N`wc$cf|yvHd|oSBT%- zOPHy3LO|f(;NQl!1uaFQT0T#b3&(9n$E_At@?u4GDQ2`nN#@c_c7?cr*iksglLmO> zUhXC@JIAf{Cv$m&1Vm8L$XUv~z*4qEhc;{U*PFdRvF12S#~$>N|7E5~tYC(o5`t<80A{$uS%BL5xv2al~0k>k-6OG+tSt zgeU@gTa>3F4)@s8+%y$HBH1>O?1q`F(kPJieL+<8rDHmZ`CWEMR zU0hA<7&Ode7w0)n5Oa+Ij>T=zGNbB)x7h=GTm|H+@yN38XHv;qo_sjUR>-pSILnrW z(m)pS*1gm2D`~G{q`ezVRr03U%gWntF+Dxc4}OtX(wSyEnQkbV!?ByAA>^E9i(BVO z^j#!R-OTqBI7W_1(Y5Sp^y`dkexQ8zxi}KX?UX1O$1YF0bUuBS=Vdu!hFeIfS@4#h zAIi_7%dR-8SV&D;c$QjlK&RE;qUYU&X3GxYZe?}K0*yC=EYfL7qg^Aki;~|J+CuUU z=<-w!9|vzF8a*uJIdsxmBtXWrR)aj2F|>tnfN9T*^c#v4MN3POi)46%^)Ru}vP+E2 zOCMffZ}EvfZj~WUE_G@pR^=e)SM)heFEcN2q8Q@xu;UK*F4Nm!lfM9col~?}#Ao3z z`_76IMWGmH$MVsGM|%#$f)t5bQoO`l9zKL>LQ>JeulX#4$jH!^fLGH@xuS#@Ub~)X zUqP^jTz;5dQB47E7Dc^o%dQldsL0=|M4~5aSJu#>c)0PU;595@?S8qTbNYL&)RfI< zibxM$O~SgBiIX4Z$I4bM42jS~BTO!;ZUdg(t}CMws!mT-sIPeRLB9HsgIFS4ZL$@m z_d>2nl=2$6QXa{wi=qa8j8dahgQSApBN~a4Q;V6y@U^v84^V}R#R;OUJ3^}9F|Wk6 zu3G@#-X20}^Q!4jE0U8WC;NuYkfVv?i%Tt5H|Z8qa;Jv51p6a}{*H*x)uua{=5wO9 zdU5**Q58-UPc+QMdRcoGDSHe$PLli!e-%on(mm<&MO`_2G$?ZcuP^EjGL4#;4|NOy z*LscLVSNUHI!#y2wUSxmVItYvq=s0b1{%Ixr_M%gqXhlV#7y?a7S{%o#OLd^FCzJy zUK|z~DuYfd>Y%>Opsps;nC95`oUW8ld^k}aF5L=PYOX>@)BC0hsAY{upf^3AZ-@}O z6j#ICE1n&>Xn}9nhc%_=peGEq*3`FDwc)225yIZrzW9cZqTe!=)%H+)jf9PHb}NiFnk zC$$2sQH0gIfNK+ymX+b>T8FQo8*NEut@Cv#S#5Axx=sQ6cI8??S0$)KAGD}K@*<{- zd`9Njoz3lad0=N-W?HvFC+3h5mUEl7E>c0Db5eOh*K|@GO)NUg+iv&w`IwXP)WT1X z?M0<8d$`PBjWfSgeL|LrCVyK{{l1?lb1qktJ&Tuc4c+o9D(k*YXha(!qdaoAvg9K( zdmsK-T-9^t0m}Xi;#cZZz3-syvRgfFocVJtDEu2pDm<Z+f|ZYX%pyhZgxu)@i$wlEOW-AzF&GZ1V$_0%G<<_cET6~C~TIgNCv4|mB0|R zXQNd2$6lEY-FK0nP&FgDB)r5PL+1v4${pwIANL2h;Br$1P)!h3siT=pq&ZKR_6(~b zP3Sw1l8xYq4NcJd*p?$GN$vBa$MZ~f3#nE7nbgEN)RZZXRCAXLSsw{sh%Myd za3=UKvK1^A(Jz{GE=~cLY~2=_xR;7d=7AfFP1NX(D~s(jOKsHPPBs44JlWUOXuZ_b z{a0$yYS_bhoMRtRCO(o5Qe#Y2q0F>njBumQRZUtau5?KdE;-_^J7T|!BVF-l*;B*a zS)p8#SnU9=CDX4pB29i=0X=VDHFaJ)^C!Hh@;$lY0hnT6$H}2ov&_z{byQ)Y@lf1H z9>vBnrNr+*VY*r`;oWd9ASO|_!~9M`R*gfAONse?qvdd2it_DZ9wk#Xh;#HVGW6~8 z_}e+8O{C#&ejZAJcvPl<&FS@6F`CtPZ#FrTHV-NOXifaz92EYw(f!|~s6T>2!keJb z*e5#9;U*|VAp1c%31LYIF9g⩔|1l_B=~(ft{uLCu{uUJWBZ9(~ zuYU%GijaZYU~~YE;y~?2T1Y<~PVuw@y|~NA3z44_AjEm9C-_K3Nt9InCMf(NMRiri zh$vNMVs-j;p1MPT(C8}P&yjZpzendDYADx!sL~{NDm@`LQ}*W+cc40W#r5RTLY>VN z0@?RPf3(rLy)ZII4teEQFK>704=L)#>s@_1Q->aw%}_>~8h5URov5MA+m@UKE%nL8 z`N$QD{C9pL`woT;2H*W5Mg4OE^cO(>O{4p3=Bv@8*!Z7QTouc;?hxXor;k-! z@QJply{%mkK+btL!kJ>GK!yFk_5Gy}~pOmb7 zBXSvPC?(`VQnD$9c}%fTQiewB29+YDsGQW#_Bmvpc5rY?`{vhmKWjE6=(0E6b_AYJYtbv%QvkFcu>q-p~u%44n<%F3S{+;7*7I&94Rn&P(O&q(?@HkKIG zI1VAZ`>cO?>UdA)aJi+NT42>r1>ayAqa5P7mXx?Yw*I{*8c-LS1Mt*@-qN%uOhI!C zUe%*p6;@5dOA@@D8Hf|%%ixqh8(ffsnBuC^o5gHDyGJGUtCwfHS^e#x4_8fj|0Nn8 z)?v5Ng7=a4i)cT1&)Qa-b!`N~hicR2c6mIHm;jNCyqdiF!mEJ$-C->O!FXMlyN+HC zOilRyjqWbabsG?A>-**TP9XaxhF;A*M?h`w$~yFi6crWw&B@*4W)`*@bWXeRQv$^< zOa$YVw&f|=bVL`fPc0sfWQg3|pN;N`BXZ2BJ}C*K{_i8$w!1i0Oo*Yp~3mY3WlShfUmhhNu4OVlxPEZX$((Se!#Vnb+l$rvmbCg!TaFbP5YD_ zu2ssMHGLW9>v4|iU^Vqf!+iUWpyi0m_aUJ6p#>e8?Py1BN_t&q#vQ#o(vCQ{Q@ZyS zS+>h1{0@Mr3hUO4$$M`Y&>Qm51$6~RoX0~&PYMb$O9+TiG?yH9WpS!@-662Xc)MRx zROQL!Y=jh5t=xLNd@{ZDKJPWTT#WdGY~f^@&n%1(b2eKa=_kFaQ9N{S(=CRkMDtw9 zdqVDOW{Ac`@tu}K;wtW!DeIVHq|u{PRp^fNO;*J_7MS92UgUDjjw8Kzw%)>Fs3$l3 zqExO*75aYcWN(&Fu&&xGZ%OQPG-VV^7npc}<3YyeTvw|NbeAxOSbrf7zT%FVFcNFl ziwQB&34t@~l$nPWO^>XyxCMXy@RGN!*M|e3ZejM!26TZJYBf@zFXZIj)Btm(2sA=e)@oxfE1o zQhloN&r{1(-*KqWXA_S~XQw(mQmJhkb|EMu5k_Bm*(yvjf5MZw1T((XU~}IXHIF*- zL$)C8D7Gy}Ev1dVh}*=1PMCo99%y4pIAprTg9Te5=E;^UrO*KJralk$$6aM3!=ktj z0fO(BJ0_>fuN>V^qOP-Gd9iu((+ZL=@b6Q{a@k+Z^hoJQ^XH)(zFx#6)jEbdjYODy zzL>L(QjHE$`%vqm$J?Rq7OiBQb&vB&W0~-ix=oi4+rqw!6+!%scerfnAwE9<`MsE{ zE+Hk$Mv@IJ!y6Ad{J*Mj%QdC0wo~xod5vp03pUMN@vO#cuhA7DA41O@r3b!gHGaYF zboBbjW`!&5d8pY>FiMhu8~XOH(wEzrAA#{k<{K{$J<|jOo<1Bn?Zsi0t}@j>+*VvN z&BGKHFY5%-_AaB)-yZ8EoH#a=%w7X&o++B*63!D7ZgM)@CQVhx`xt3VAVFH*o-m~& za*t}q(xGT^G2|L0+0(bv936$hIA zyqb_kj3?`rdCU5HYBKNcKCPUJ_Zmnc z3}29!pg*^b`@Cd`AUfW4M#v)U2`frK8@)@v^F3i3E>bUkeqm090g$9VtK2|HiU+Dv zCQm6!So0(xq#;C?41B9OOcfSZm&iM@6ZY_&)iM&>{lv&jpHdK^Rh9KIz94N$}@Kf@+Q$8-0R@f*NS@QO?pj^dn-gieOK zb*iN{M?p33m6}D_)kSi!M9&_YZznOD_D7X~qx_x2zded{w8n-h-qJb8A1#Y&0S5;q z0;Xnzu7|pi^{*Y{dNkvB$2H}+Fvoc~sQ8J~|eoyWd#ycS*1sTcpYO~M3HJinBi z=l$NHL_LF_{~QdMqMIGxQ{1(Xg^?$k@Go zJA;+MNd!?KB6b`MB?liN(WYXPV+$IVK|;>2ywroZOy0>el29q#6j56;*=7rqbKKxl z@4E{qx4rovE2b!|Ye&GyR_Py%d!ou@QGA0ZPV5psJOijJfr3gwIv8GY5U&>q`zlhx zb$OB~wj!EWu)P7yh1xk)k9DvuzVNzwi#`$kID6GO5RZ>EDI-RkL9UI_IeL$nE^`z zbN0pa?6-~ShLCJ4a5CH*6f(^c_K47Nf$V`-j>5RD2A#cnVzRHLO6ML(^|>pi2TJE> zQfxY!Q0d%3cC_=P6f3h_p1>V8|M6t0uXm9!Xg*+Q z64NE@ir`cmJgt)jcLDRK8&b~~aNNJ*$9+|NYtHlb>(iIciQnlWx1a_)QLsp`#Pwwh z{|N@i3zPye8IZU|PJS`0fLC}M-;j^5;GT8?nNOi?PzIY})KEjH@nkY5MG-PS%!1wd z^;W^aVLq`!;e)NG{1-(w^jVS=SZJcf@)Tq!-o?sx8Y)9L;-W%&<)F+=6pqE>Vi-)* zt|Szqft*;P1t~G4D76qR9n>l@RW8i}0_-?I_R1hTI{-;7zAQf;-(VnaP& ziMljW0tQ6>AghzP-4+ z@#4X^#+UR>p|2a|piRy>xNbQ-9=P=h!z;>1v6V$c)X znihFmcFbBjp)KC{Emqwvb+=m}G3?nneLvq z>WQ>PXti|&wGG1BM!VYzU`@Jvz)mBrUSEn1u{)WZFPFw!4SZfkAhm~ey>v}{X~l>% z$%!+q(h|h`V)i}NLM6(Y7|P~1T(EwJ2DD?jjc`MSXFrGdqrL5))AN6H3;g@^{BH}7 z-{E1uduRV2iv|8a0g3(HEs*pVliwf4+22ime;8-~7xNCT|6k`FnE#r0w2{9#N2UGg z7KrM_|C?LjD;JDBN9fW2*rR2M{P!MhA_43#J=#Blikh`o(0?}0er29T1QmbuXbbYt z)kN8%CgC4r6-QdRBVpwC9rahX+~41@N~+5&5ItIbdE}oaKMS5$B5}W){LCr;V)7Fb z`}*0+c4;r}r*YP^jQwwJ0WS=+AIvax7DWSLOrhOh%rGL|zYhqTM^G4k_GkydQ5=mn z_`W=SY@4wHvo@P?<9rdD@#0^0HxpzPk$!gz+{`Cu)``~6^s>3T8C zWTgMrqm4s){;vVyKNx32%lrR2AdE53SoC=R@jk0F!m_&cSVXdAw>0J2t~Iu5_%8#( zn|X(Ou=fD!CF(Og;15>GuX)FtYBXHN?Z>}*w4VnoZU%&WGH(MA##yF}KY|L*us6rU zKimQxqW{Yt?U|IBV1X{eO~ zv6rJa`@L@50)H51S?xWxf193XAR0|SjI(#{*x9Q!TYiL^*2i1#Q;P|^D096 zQ@;)POF0)<19a4f7j%g~jQr{H^SHvbXLD~LUGPal^C-$GE5upi%d1+w;IqXLykQJF z8z=x}Fz2ZXDp}7b|9n)%$S$<~u}^nzQA1!s=od>*dE_O7&>&F%`uAF2-3kEj$q#*j zZ+g-1nzbXzACgQ{(t>W;#1O*G1juY?QkOAaGQ-y}3+6D?45#O}z%b~P zC5l7>(RCIQX0w6Nh3cXhVC$!?`oRLxW+Ad>MTh#5QhemsL0$}I4AfOkv9}A&Kv=OD zm=gNEMEdwq--3$BV&TEJ^R1AncRR0RcVw9Z)|H*8f=@Hy@YFXjK@Us%ul_T$@1);v`|W8#?-2M z3Z|eKa&4nI!o?WTS+fjnwp;UULm4m&vJJ+!@3cip6YC#E8v%Cim7Ysc6iOn*d-N9+ zNKzsd&x0SOKFyrg6UXU!9{2tIJDPT~VUxZD6#8i>Dh(Ylu+Pa4MnuS-gFa*u&>8s5 z%?9IcxfHg*N#OT-vs;(KK!WExftF+sk8GMjc;PAq*UXSEg_hbkg!4xjJRfmz>UR0L zqCb@ioSGfUj+YRHV}Ur3wnT8E6v2GSAl2zk6egr#T*Y2%Rqb|es6RVxjTmIG>gs#RceXFJKKIT{vfVlg5Xden*#S6rdgEM$e$XWQ*7j%0U zo$J%(VqQG`zkp-o_1ed-mqB}&L$E{P8;VkMQw^)a8f@? zF-tM!=*)w9x-NJr2u;OloHlOuJBRI1r>Fzj(whS1sz6KSOkq~l|E`Hm#*0{d*rc)OxwVSvtc*&&HYo#?8+~2?0bYuCBBZCK^B5Gy>973luu}qt&7MMUukIvY%21XRx zaTSedtqe2){$Tuyp>T>?FEYq`E>17WOM_cu@5StmSGZJk?9ze{de;EHBI{<@DcMEd z4&>y|-Y$FScpE!xT|sy$-q-av*oqe_TgGjuA#AlZGW7HvlC zH0?u?xX0pa+wZz>IE8ci?kW@#EWVWfv;%Z(@~MG>L{?x~OZ9(%hkA;Ol7qYizmqv_}{5|o~)J8-~QDX z5boG#SG6ch3(}dA0(p2c3g*z7x==t7>N80xV^!iJsv(keA*%!tiX8s=8aDy+x>t9W zahYC#R0O*+ZktmwP~cantI~>#bzbY}Yb;=&-BmQ#crw3aYFE@F-}YJ)R|ZSrqO_OV zx<@0+o;{+no{Yw^Ck}4>r7Nw=Hgua^(_!h06+vlXE~CK0llBaYbWr4DL0(S7J&^#X z#o`h7{N9HWfazWz9Ag*I|jVFv~d5tX~t~hOmwr zKj0Yi;vJ%M49t@9#=KQ}`%y!h(bB*gf8$Xz?cL2CZmPhh^!ee34z9KX=LF9iLg$bJ z26Za^Z|g2}XPU5_Sq^;{YIR67I(R;G*P{dmOLO(^Nu^U zmhq&3lLOdLCmi(Qp>_lFqh$|6;Zg&xcY<0CTHB~t!yq~6A@tDMq*5VJR~JYyj)apa zBTW`mQsPhL$&n>!fWYO$m|U(i4BFl9z1eool#`$eb0u0wx*+r`4fjL4A0AhN#W)|r zWgcwop~%|cmGJ_gqAyMA43M>!WrQd*t?TqoMYI=N81HHrKQu!3aA5AVdcvfQ->)LQ zZfT@1+bget5djpH17xBD1tZMvZfmfoyW-3!hmuJ*gAFAW)rp1G!8V2;H1DgINmN;*n;}EIqpb~+_sQ-w67dpc#ErQ}Qr)^<6^AMX2q^KjUDil!83M!umVTf2N zoB0++8dO?Ywin!`wDMIgRg{)}wi-(02O< z2RfiWKqa=d(O2#cQQmx_$ww?5cON1@>sowYHr&e(jwVAht>-2SDTN#MZtHNYYvOqr zvAJX2%e0f2b^VZLeEk^osL>qC+-T{WYDl!@B0FQt))&_5&P@6uPK!i)mQjy}@ zBX3rcKTUzc%qvddk&wHGXOr#NP7GRvavhOZbH8n*7c*|S<;jeE#9%TcN{%r zl~ccHZVVXo4yy9#C|JCe$m#cfLM)9H;rb%YjaERj=+uSCGYqJ!FtaIz?DGJlNgLK< zhVH3{N8&JPn|RGl9${(~8h0XO-sE2q{#=7p>0kgJ?+8$Y?nxn1~4 zKNU?Ov+B^CBv~L}?ud&ok>-mixse zdKqU@jdIasiRDQK(%I;0LPYx9y8iSCjB}d2;7%A95>S>ns+}ZrqO>H((;ofQNbH>{ zqr3tyX8Co|Ox~=A(kdfMBASdinv6h0xdUs0%CZC}# za(wBA_wAhqvt-jUpY$jYC`RG*WDx7gUquSJJCl7+`&N#dz25^iXd5%5O-A!o1A#|8@yl8ixSNc)#ssDjk1q9?*7K2Xd!hgKp- zVa(ywv^Pi*$D~zd<>D@AF^3B!sDsZdg=4teym-ZMr78mX_5(TEV(T;gd7JB1Vb7b; zp=fMDxXtxTM6t4zLDzGE4d>7M(L>sI%if*Dvhy4DT!7dF?)Na>HR7}oUaUJTk4=B{ ze1SLdnmJROXODrg7N9>5(ryTgQ!FQ&kB1eTp{4os47&0f;8>E&QM?c0=|&_wh`+lb zClP2M$CnXiI3$|8$dT6Xq`tq_I!QAoE=^S`%_uHbes@^66x~Q98pz!Zpa%o-!P@$L z6-S=|Yp7WqwJNLHWnbWT=};uAh}w#K^zjny6qKIgu!na~S@OM;z}CSPGz!*ktK;Yf z(1C&2lG4=c05T{NSuGMSFA&UFMIUBi)ztPDJsoVV`_c{A_FgJd5Z0oi%uwpTwAAuJ zD)^~bK^Rl(uo$p(xR84NF?#JQTuIB9p_ZCP zi>3MI@0LdIi@e^hx5!F8cSVnL^O7}pE2tC&enPkQ=uK0HH;9P^-5PE^5bLe}{i3CIY zyZ=# zFTdL^XGHes%!Y5IdW_$A*CqGmz8QM?=FRdO{^VhVTVPUrWKPo^;TD+B9a(%ivb;R9 zdO5OAHTqV3)ICXX%Wo9LRdDy^=nib)!{z89)!4E4*opDj7r(Ld+_8(7W0%Wg-!I3I z^6(O<#*e6gARG>~ym8F-afyvl4YS+W)Dscw;{+xXB>ofRu@e;S6I3e`G*=UJ)RPSU z^h6SqEbZvX{*xT-H;txbWB?EK6u%mpOeh)HaoidW>wW$?xa`&P0!~((JQP0 z<7vgbY3255)s<=Wt7!q`X^6xO!m*?4Kck;FgDLUGQ0A=+mi=dA%qB@3JYl9DLe-ZMlHdGmn|JT3e|!xjEw8QMepd+uDt+Ckwk9 z%@KdjxYVcys{6QBTeWtrhPT4~#Q${tHI5`k{yMID`0Kv){VOYf6iHl5&C^HbSf{z@ z#;J4lYqT^A_f|I+RyIz-&sYvL&{bi0W*g1^E|I18un*QhJc$?Vu;DV39EbzOG_KU- ztu<7wB~WjFZD08UUCtU=(BoN7TiH60Sa$e=WD@XB8v2fYWg*0W$18uwr(?%&btmBa z4wPm$>h)Z(>27$yZe;#$bjNP&>Tdk^-9(zby_)>#%$6{|KKZLNn_2%a&TNssRnZitex@I4 z19#5Pl6HJkqGjZ)FKNP58r=e`l=Ho?*DI6wOM4LWU(^Oe zH%R4{g1;(I=c}W-BMCW8-!#|VP-y-UsqB-xFbV&M;ibw2>~Ea2C5fuvW6DUh-($*K z!ibo%S`+r*4+ZL3rTMS9{|~i+k^#~>6hvaP9#q>K`a^-53B{HFC!})xtkjRWzW`%C z{4E`O^{$1=e)}IWrSN~^oc$J4>e@0Ja~hZbjgVPtg!flxwv3h1e^MLVaL(e%rT#%} zfSCK!>`TEPqDXRNo#y=(QzGX6zhcTtW{-pY_lUVa=MT==pK1d!l^XT}q^kO9-KD;U zSu0MK#!dp*$EJ0bLC1fl(7d9O{M3Ga6H{J(dH)HaK*gRl|2?Ke%>6^~vH$bj|5u-? z>BFy>Qs8fD14bXIaaqzTr`UfZWd4 z54SteZe1QeQ&tT<;-=E=1`mr(_>qheu7$ogq#J`_&Rf$;#IqES`x7!gOzc9JcaZD= zgK}!6P_}X;@1pNuZM2_B$3nW!xz}$6o?YIOI=q~%$NgfMC_!Da4n>!xBaj>q#({Q% zh#@9e@<^|UVm}43(>?gc0B^+}5(ELcuAZd$D@<1R0*nyST@hPiacdI@iEO7YF_ILfWM}VI(Dix%xuO(^9}K`uJ__>m zdy2+s7W^qHG4QkY${EstqAcn-85zGOz>!5)b=x@^Lz@W}e|H^lcU2R>cy56|-3&l~#v4qI@J_x}95{RdjR)`2d{dR| zm$j>lk4W0&!y8aV4Mqwm5`&?aBepq^`mmMF?K>}8un99EnO}|G@nJ0hiRh~0r01dH zgQSBV)tw-fm)l>tT6$h*K95u)V*m%u2QyPls3W1+faA<$)Cs0xxN$a8_UEs;1O*~B zbJ+;l?KBy?U86bXY2w6d@1kT*XS6bPqxTHRp?BQ!zNRW(KYxo35FVNc*cnE;L^l9n z-G!8WzP$z#VUs=)Oiqdx-)EpTz(#%hnRnl|NRUz(NTgr?lyF%xRve=nM_}CFR1knU z8WBt|@WibO+rluRQ|W%|OraC?JI*CLjmCZ6YR3^y({~rM!EXgId~iM}U|8;8rDGVPIBjes4_ zydFb6P!vj{Pye#*C6yRx6F}BEVP;9`o+B>QJ(l}vszL`(ri&~KFL>Xw)+e5myC8fl zsOElUWDI!zfDR$$p}_;PWCjg3URZ={YeaKhKW0& z_K!P5w`2|pGb=!STCQ{*y=8iW+4~VcK2gUrEc+Lg0uy9hL|1YP0dE_DrdRf=uZ@mc8odIgZcJS zSFH|Iv>Wqd@*XgMV@XQEljU9Yrq;QU1CO?ED~It-FL%^F`7C`~1@*!`^s=17pU*_d z?#_^qpF?QlRh}@$GaNpCIqv^jcw?1?5C34_In2rTEhBETHzkkFlR5A@&a38uK=k9J zjNC1Hg_c3>faCP~%Xgd!Eko7^u32-r+q`;T`%Y^=`<|T3ugaa}M9{burkw4%-EEpk zF+G9Rd>c{r^qETPIH}N}9@A?Qov9zac0XodNITeV?&rhY$sna_MOG7&zj}GRzyIx{ z@7=bg1=ES#waWvKv9^&@_0Rb#kD%|W@h4~6-TWx?4?l!oY&>0cf97;`6rb>NmU-0}h7cia#wspi`Go1NMNXjpMS*qhTN~Z7wH!JR3i_)twgTLH*Y98P)3ATGl78wYFoIj>|2)x*cpikL(r+|7lCHv>DIfW&_(J=1{W! zwQHe<`s=W#zErEx8lD$N?cd>e0Y}IAFE2SY0td#{zCY6t%Uj^Nc!3po?A8?6-Q-Jo zYQ0S2Y07F1CGqbkb*nssV(I%}x@%tRLwp+}ptL)IvyZF+iqJj7h)KCJ)Q3!Ne}u zHqe(%RupoUq<6R#5M95n6Vmrwy!WyT{gK;k@H6jtL6iKJ#PT=jy5|zy0?co@a^l8rN)^i|pCxD?7 zFjC~od?-su48$|DBtQ4PRP;n*PXuJ8swySOm8U`$QdPbt+!skxiSoUp1!RCCG1Q7P z&;e0O(#({ABv8O`O3F0@9XD33cwE0%;!e5%c?QW~47ovun|Fq*ZH9ML#*>zefbt|| zJw}p5W^`vVYF+@L8GxA=Ks639+(WX80>;{=Gmj&c6opr#MYi7Y#I;G&G)Q~8mxUCO zphcctYLE@b$SzSzRF6cOv;dHd18||hT8wngaR5`T47C}+HVTLZ4ve(+@)ybVQOfo6 zPSUi=4K&DokYBi$|Mfhz{A>P+clM#k)6mGY?O9-T3y^gk3AYoFi~-xH2V(OAkoS?8Yk@?a zl-ilO2c@~!1dF-j1_gu{xukXlMA-#Y*MP(C=yooLx~F0Wpl(BNS3@v<|fajh%TV?DRxo{`jnAOZC9*rSPWS# zmexz;%ZT`vQFKSoL*K55*YGL1zRA@7xaIS%D&BAB~dN+6FGS_T)>_zV6AY*|ZG4g3yDg`{v zu#`KZG|B81I=_H4QaaBB+@lpKT! zyG-&bhxKz|zqb_CTNhQEcGd4Nt9M(g_ZO>o_N(_Us&_afP7G_l_|%+d*IcyLTq={P z&ek9yI$L73AfsAT-&%CU@UpEId#M)pTP@g^j-B}baQ9bXQO0c-H#{>8Fmy^wcY{S3 zLyEL5f{28IAOa!{4k6tj9Yc3_m(nSUCQDxv~hvm@?FbnC60Kv7d6@`ieh05E7sLgz3qF(B1Tk0NJ>RD0hJy7bqUFuI;7ARg8tX{_4OB}=l z3aKcI8Yqj|E<@6m$BUOIs+T9*mZwIRr&p9`4wPqam*>(}%h(~J-nfn@p&DU?8dm2Nc*3`yPjUmb9h{mvq=~VHIwF|{Sbv?x9N5^Lb>y>#xUD|P$}3%rZQCGPBhW0@)C)*LNV#o$Hv}-peY=OyVQ3z zh9h0-0EOeH73%!^rrj>}TRv`p6$;yf{XbL+9_dm)qA?s)3QmM-$@jv4TA@Bin9J0D zjs$step;c@CS&Z5TA}2f5P-(;CwwAzszizwCWt$P^G}t6eGd&u&4z%c+sa?9Py?>< zd>*x#`MX`}w&&Y2KyU63_!fPz2r(=f`7fGoADgzJH3r_LTJJ3dG(Pd4O}B1GtWdna zX$%E)WOH+?T~iKtYkKwU;d>fGo1HDX zOa1&ESO|txUFQ_e-@4R))fi%hMBQq}65)$43pm9{u_$A)v0Kk{sjQgj!gKCDGauQ} z>Q*7y`O$Ry3$`g%C2gVUN2OpOuP^HR&N|Sg{OLIVIZ#GWa?iu>cfNNXJ7g+Zd!oG z3;1XQlA8X@S#nsK{{LflIxs?l4-VHuONImi6}Z)70}1vULg$ z4Yk@Q|DpQ^()G2?HsUPpj)IktHrv5N6_;F~L{HL5bJ~_23Q@g*f zTY5#ZfF|&6Zkc}G?g;q~!Bu2`%*cnR%cchU0rzkmE*OSCTWJCEA5b$#hGV8!6A1JJ z&RGciC6Wu+U)MmB|M-N^vEQpVl~K+hlCN~~h5s5MH$7NufPTQE_r7ZndnYyChiC(FEFZQe1QT|IS?NGL*t^`5@FiH%3=gn-V378T>>LJX@Gx<_KeK&$eAG2qw0}EnijM;iU8@uAj>n zU}(c>;t;Us89OIf_w`+dup?~DL(6_W)n7Grt~H3^^jz~|_Ia+HrYbD&BTOc&rA}5)bYQnO4 zVi<><6M}ORZbw#%z+~)pJcVm&K`1yzi6eIbJFyn57JMALU%!$3+6YE0YdzFt-4RDb z%Yq>lfdO3wyUHRhN}RBzVa{IH1e ztnjWl>!ujNEiDWbMeYdMRjaypT!PVTR3He}h_aQ<6~W@DT5N51WftR3?{K>We6_U3 z4*L-dB4T_>w{%q&vEa~B^^1a(axu&1c~I7o;qR^{6-=aSmap)~PKk>(L}Zy+t&f4M z3saSzikyIwBS0bwR`sS%sZo#47{-^nAs?2)!^j@4ajv(elnaFp zv@!E`xU1g6tqYbK)V$La&`*5rWN1(OsE0$!`{As>vskAdtZHyM;gdQ(gV`rjKcZ1u z_E-#^b=UnawsZy0h3q+Ha3Y+~pq<<(AA{k|$FJAY+Q5+R0*sxzWa+S%Dh?x%d(ure zs=^^T6hTFlR;W9ak3`f-`c+*G*y?8yUX?__$Kp65#tqB*V<*I$Gjqd( zh=e{g`HD9y83^WtnGAw50mqTxDJ<{`RTxuq-Wd#oS~472BPbxR`Wammx?d93K$kp^ zE9Z2*xQAZxY@I2Nw_q)nFwV2~DaMI`b|Ip`+s|K)5F4lwUC>^7MSxczx_bSyovwA8 z>G!dyq*3ka2x6d1=!9jc*@FvGLS0llLRZNRrev|oRc(Fca(h>% zjx2V3TA_Yw-l3%Om}9dwAX9I2mQ=5IEIMp&4}*wGYq6D=oM?AOU@E2cl$}eiPh^|W z{eT?GfS-Ja^hZ6LR$`GIeeg! zyp~|G!?JTVW_xE6PE_9Q<{KSA_H9Z|rTleh=UTE9_n5L@`I{8wFX`&vW^Q$r_my;Z ze95-`HmgNc(ch%}H9zt=8Lnu>hj*P{iv=(WmAcDFyyc;#ZB+v!$03|<$c~;yhG%lTGI7x!4|bWLR7QSr1E_w616j>QnU50>-*P=VX~hh z2gAXJ>Ht7dgv6xel+;~BsB#F} z08wa+A(>nBJBG)p4B6SfhY0QSewSzd;p0%6N!+J5gK;IpdzhSXSt!x{&`@RT+%p?L@Q^EZ6dMSXU82WUhn=T+3tMw!;V>S;8G z2ZxBUD;DmId;DLUB^SoKoZaT>qnqW}t^s0ivm9vT_-jt<5QgVLs>21ZgU!<3i0Lrz zz(=y}$7Z>k(|Stgi!PKAO(W<`P&n8um1&s&hT*xuxi3yEcAQ6{HsIL%1_-n`fpWq> zyjmV`cs}iImKTAq+dpoWe5VlmIW0IA*SIP%z5(m0<8*1`f8H!DrrDez4ym=FKXO{X zY?coM!Gni4OQZ|M!>PF4&610~W$F(Gh%|zGUke-)V)sCA4--J?#bS!7*^M#}e;Ocu zY?i+oAONQH*D%<8;TvGHMEzJTD@Zek4yzNtZI*`(5WjAgg32xD0Nz1fr~L9Ost1|N ze*wMCf&%XB2`6GjguPBPtLWj{2 z`lJS4H;D8?IKpBYH0x(s90%sY82XhQF(BJZE=uK zMrtvc6$R>-nN?%IVHc+GKU!*GU@b2#y}Jlss^>x49^^_N6lDrg7J7tWwo-sneoGS6E-xta- zhlE}HDwiF{cYz1{h|qm;;^p-K2mpHf+GFOriwKotEPv$d_XG5X7AFpv(snHn$xHGrYH;62 zJV|oIX{|TJBs{ad4b!RJi2)r3A-)}`=NatKRQ_sqey>R^Z@x|&z!d>qPMs_ z*)!xF&J6=&1u)_5fk%hOCTFIn0qW>4x&|gn>(FFrJ2Y85V+GyNlO^V0vfR$;-<>Rv zpXcmOmT^X#kG%QA?*;A7=k)B$-YCQg3lV2WS2zBL?p_E5Z$JNl2hRgvg#2-`s03%` z z`nmhiWO0i&`5o|PZ-lo1XcjfTyOSk0Kc@yo@%=mIVUo^&nk;`I>9Ek^?*iV?31B!@ z+8Zc9(&>02%l_BNvdI*v>H0U4&Sw&M^q&E55zJwpf0DghYg5nD>UK}3CT=l4OiRt* zNQ;Li&ddmARL|VV{C5I)kEG*j{_yBzndMU|bT~wK`=2JuQp0@-5MZsF6npf~$?_L# z9rgj>jc@3c{2}=C57|3GyY`fr<}*IDW|1{ns2B;z-bv5fEZ9iTX4b);M5KpJ`y zs4A;`_XNIJi?-GQ@adi9W{#Yll_P++Z(q<=WncFJZ?V@gM?)EoZGKMaa+>-JeEI@# zHNJ~YXL61iX9)o~qIYF)Nr6YJIW=um?;79Mr%^z@9q&^UV3T^&fbuf%X3voAiJ21@NzT+U4Kxw4=-O z%MV>W5DK0?zJ3p!0pi&o-)YsrUE-MuhGb^m?;uW>qL|kB_U5i`^gAu<{x-|3e_$}_ zU8HgEhv$(mOwii$ zsp}_G9%(fGhj)60Zu9Z4?{w?6{)Xfu7HHg4&RE(1;R~S6@@CgTrQ|=(li?^Qhn{vWC@HhWxYWP_xsbMhBQiDZF#q;VUKu5Nk?^U1|S4_x+JC- z+l-}!;*QK@zN(ey(aikgdGc4{Ss%)z?xIN<~V%&%V|%3f2ecsskp&qlq6( z-#xN4q#vAbfl}#s@!>ec5|`pQ&praQWe$GhG;^K>7`8tkFf-Aat6ER6(VY`z3b6#R zXP)pFN7O{Dv#}gDwXR9ow0|(J=y>K$ZR@!gTFTq31;a7!pOa=6ws+s@XH`Utt5^W) z8U0RosV%<}7x=dJMu*z|$U80Y9UIddsFa*a$=O9cS63L-{5Vf;>=DoQ&yxbC#bBC) zclr?OIb>3sqMh;9LP8zk%7_g;e%xQa0LWY&sbfaKBroF#c0rtf`vOo!6VJk4V5%;A zwr0R_CtYO%-{g8}y^)00%Qaf=v7XT+&c@R=qmW0?INJR$0GdF$e}Onx0{p%AQO`%e z0Pz3Qc{1_p&z+q4U?+bLs6D_={@>gq_duDzW`6k5|4GUGxt#xe^!HZu|A(m<;IH@Z zAE4bQ;D5SD{=w3+N6EBy^bZO`!<&DoMpr{_5yd5^-0)1zKpLWVd$)xAqTgo*8s2PD z*p8kV{t)fX-v0Lo_sCsd*>v)|+PRrMO6C{l^snuKn>*iLZdB2A46J8F)HuV)xY74W zDUob?`2$L(2%lv1l?k{R9fk>7H7a}Yl0}s<$DK>3HLC0tTL)li8O^8mNeM;SL!bUz zH7d%G3eZIJ%KokzwUsRL5zy`6{-=ASjMib*=&$$41_C}i4>$D8_!A}bj%UTf$Yom* z`s%Y6@X+_j;U)3y^+z1Fu`0i``yAfwe-(}DG!Vc&(jpb*?MlCUj|}Ojvi|QaEe2Sg z@(1lchh|30HH<^MeF&RGgi$MoWF!D@KA0ItEG^~D$`w#cX zt?|e|?)JAOcrG?k?9B|`P>i!Y^M!ou3jftTQrfN4@JMWiL+{c5=^nW|Gcw;s2){Er zQS@afbG7sAI$&vmAKLA+)?O?AVYk+VI^sy$o-$Z0*|POiRH(z|Uc1ks)&6QWN@70O zL{I{Y)?^8UO?M5k%|WTl2*IYbs+GVBC+foe)Oqo4z{KmDkALp=Ib>hn*rF{hPpBP! z&I~lXdGQQn<=tb{xBZ#Xl?DEe_Zz%z~}=$Y|O3+cjH*@knqS&}O% z=g4l~9=8W?M$Zi9vhEX7Fxa8pJ`W+_a*sUrKsEA{t>fEQjhdR{q5jL>J?e4zOm2RM@vh) zHq9!a8r{co{vq$sAB+<8;b2eR`B@bAyRYTvmjhsD0p>_WTOIUu?ISDK7K~AaF;!8s%`tGM`A+ zI*!Zz<8aV|mUrqQklzjmPLhmhWaW|M{(KRq5qI~(4P(ILR#*)E_(%UzZ?#L^=5VmNN%0gK<(N4DRZY>cbRNNi5ksM>7Jl`Nu1z%QQ-46~Svw6Opv8NS1p zy(jN%RD2OyawPUfLU-jIVr|08Jy#=?Yv3niq z^8_4-yC(L-L3xJ%*Mss08^6j=2Vzmn`=*qIJvIOF=dI4*Zy=0%+Qyur8ZDq5`iBE? z!I2HE=2HRBeRCe5=F5DJCc{}#sM~iS5+#xd*kAs|f%qIn_q%Z+-_+9O6id5eF0?)UmU(RX5hX$ph!0J)!PezOZ`BKX>& zjURaKPYHoOA2P8UiE--vW8@OZ%8z@6CpwPwbA@gUIWdGxhM{h|^DYXRVq|ECVbeU&Jdq#d{u52d^R z4;%lkO7uA75%Am}-uU^%YW~*eiB|J{8jqg=p8KJ}e&1eU$96{i%Vi{?e*U5);g5|s zCj)@z{)m`Av|^jx^!+k6skas?ZZ6v#VVg;Ze(tUK2>~@(cKdD6H zH#$gR6;!};f4BSi-o|g@aC}FL_?g^GW}4rg`{+Of*KHC@>K){0cC-Ijw1k@mzRq!W zj>f~UeR6|!U@l@$BtoG#ewGKWsXt8YjQbnE`|h3i$Ht#UY9<4g15_f#+kpM3MF5T@ zBxXz?<6gSNY z%O4jUnOV!_r`1l7`#MZEOb<&gO`ge47$bHNfx%AP#wr2|?PvYW6YcM)2YF;xX(TCn zhFX#N8YuED^fOFOO+m*75mDHlayCn?)fl%f_EL8;aqA@)9IC<)VtDGQ%c5Y5+Xav} z=Iq=r{JXD+twvA0WItmN-sx0Krr)rme=>*bHA!MY2-y;dI?tfpM(jxfiv1~j{A*EB z4P_8?+GUDVjEl-Co-~p(t5$&4-!Y!FAfaz=0;^rk<*{*XcxO8TgA}(%!|X|v^pZgj zDBb0$GC9uT_(T3lwbvvf@RZg!dKe~RZ4vTM62$I6gbdzyxDfWHe$M3PW)p*k%{A#hd1uLJ+S-}rZsK%n)NAF5_0I<`l!xQzST!jOtwgK?L3#Qdn|EzPU(464 zmV9#TCKZOaKCD-7bmXAHBP&=x4m$r|W{m|M8Tr0BB5k|5HRcZEis7YFJLQ~##RWlh zZVhFC4TKJiY@WM&cxt+N`99L~3$%9%3c2g^=z3^WV0big?+Z^SQZnskY)W>{jjY^) z6vHRQg=OUx>KTrS#)|o>B8ANI|vMr=Hv!`Nk6`*B9@eSSPoB1F7%lB(|L|!SATxJ&WEnUux=wd6|G{kAs+#?vjN>Gi%Y|lrJ%= zGnrqBBZdl_LSWK#oG4H1$sRU&mp4|oF50yhrjU9*P@M9_WHP=H>Y-R#>h(<8pVQ?T zqh`P-db-Bc!RJ9HRIH3*X7@(@EW0;6JyYPKE-=X(9tr%s^yX}&*DPM@zR>bL{gFhU zi%Bm`pS?g22pw2=gd6`9`RugxTw;vtH(i2MM!C9VoG8+%Vi^KL*+>n2M>!~X-Y`YR z1>59JQG7kuO5pv1ogEf$bW*M(DLTaF)pey2$P8orF~}69XTDT=T4B8-nC|X*GJ~v2 ziqnQUE}yi6sdONQb9rimo^$ya!hkib+x7iJ!wBKH`gkANjQMjp#tO8$uB6kC)JND$ z>PnvxsG}xwriv@B7Hc$PkIX@3q8Vb zHZ`h>kayk%jrZ%vvMgu@CEMfolRufUC{(oI@#(+s|6pv;bfLpCj7NY(M9%622GTO; z#`gMXkZ#Lky9)lxB4cmxl{Y6^Zw*Peh5-ls$z&&dF?|z-lcI9*egJDs^&B#A)F7&3 zYtAK82_^nG+xD^zT~yGhCEcUpAzDl+;>VSECX1RX?ypxMvk84=Iw8foEn$oHJ{*7>(0c0&v z#X~NrG(xK-pL-LE<&^lWulWT8JHO^hVm6F83W?PvNd1{j7n6E$grAOzXrK&^*a*9h z1=P2kKdHq}NhgWlak_yEnfqL1^W%%pEOieQ7hL7tj}cxZOQazLM!vKUBsUnyt$ji$ z?|$2i!${s zwT`1$NeNu}wCsm?qXm2B*m#*-*xy}o+-N3scjWV{(y&gjR$Th5eLdvm;4R$xW<{Ho zpil)ZqPMWtVHlk9Tsa1p!u#y&`B#K&pdQ#>TJ;!7O@2A;N$A{Kv$^o&swgF}(=_n! z4f4!83s}R_Udam=c)GEUpD>{85D*Ev+{-ITSInY= zXN`w_qpT`9$3<^7j=-eXBy(F6EG=BDV6jf3>|hS_r34kxYgdu5=izig#JjAqjA?|o z{}omDS z;=`>j0txNOb1#suGo3!)WX(^zaPQa!NG4&%eVJzE@Vbi^+D~QoaPu4sZT3(yCdf89 zn?wwy#m~^h%C&kbEfU(@{SwzTcR(veeQm2fq0b!VC4-?YG2LgUYQZG>%J6}q&aI~J z+F>D&2+zfu@b}WlM=zOXafyk4uz6G*DxCDt^!`(Ip0&Qf^0zVudDcE%q~N^97g=T; z;e!)m>t)I#JmQV=m{Z9(r#m`cnPkm|k_oaWrnT`~HYsS980~iB?2mj)!Ww%4(c3)e zkuN@az3C3PE@x-RlJ-JYh;$xU-46GY-tto~bIW{Hd@XaF$?Gp2KJ|$67|r3cOH1ja zA}ME1JKm*tcE!)TFw>O%m z35+Fg;g2(i3dhJc>f8@%*KPV-+VVTQ79xbgnljr7 zg2Ki5B0&L6@uMdU?-vmaVl=( z@7RrGIG@m_l(Xq8?x`s8p%Bc6>2#)7$)qypFj zF2StEHpbHo52NP<%*#ITJ_#!B8JM$O3(ca4DmGMm#H(XT%Q04rQR0DclHm#bsDEX> zqD*_ye%p3YSoaOB$Qv=nv9GFZF{V;Zu4QQPY)Kf}lsEjkWu8i)yY`N`d z)Km$Zw6dp=wqv#HU}>v$OEqx6o)GNPyQ6cy4$*s-@&pPq|8a~r<`UC~vwohzYTB#F z2lqUr?zUuE-@y$Wp!_7;RoI)rADVXc9HmT6dEbiy)EwU%3z+Ocd4H2}SeknD+&Ae8 z;ggK?-VFCH^AfL7-?-6O0OWhHJxV@Y7_|`4H=a(vaYOKB#gp@;XQ>PeY#A{xV9|!3 zn5`rh81n138lO6vQahASkZQQXV|Wq zVS!4S%_SIrB=f>Sw;v!PiOUYcG)qj2B zjI^tTv`;=$LprEmwuAO#bDQv)BOuILi2KrPHf|g!ynbj(4`-68Bb6?gxc|5?`Ke2j zyn5GY*crhuSrC1ukke)ms*$rSwO}Sjwv;-cBMSV*6&zki#a8P`tNWNqj_PyR0l(4=#sfjP^_}<`pPyj4%#DDMBEWdHV0uB2%M^rE z5Cp4bV#)>OGl8x2!Dpv#ce&}kVe&XN1u;nlI>f;oa1gJ)A)^+AjuD*w1X9QWmSF{R z!Xd75U`en32(gZbZz1 z(~TSfVb678UjpZecom31i>WSA5kr_&J=ETKkvCXL!6A66Ae)mQJXIe|RS+`F7taJj zqYAOeVG4rSg>e#2v>L*b$EnYcz8>Aq;+`g z`*7rRc%o=TGFL<@bwt24wuN;lVlyI_Ix=50vQRCu*gCQ_JhHqjvhsao^=72CwPYPm zSUrw+gLPD6c+{)1sF&}fnp>i}rlVT9qPs<-d#t1T!lU1oMZb9;-QN=3&lPzi*MJm< z3~>Yhk~K8Q@_L$D#JqJx`gF`PPV9g_&@ChmZXC)72bLwuUuzvl6%j{M9!K{fuA(IhOcO=^tJ3A|eo75=W4!m*nz3FjZip2JPN;2A3w5rLwPvTHG9wn0Mr zpIzdPQ{s-t=Z+(!iMt_|bn|x7t@0#-*6?P3`!C~h0BcP5cJlqL$XAPh9 z({78U1#%<3xK8z%20t)Kj{1-mvz12kAz1`BD!w)OsZF|BM7nu;y2Xd|*P@ZZLWn@5 zqbWSqX(q)nBBMAx163-P>e?FSS{`2Sk$O2jlw&Ky?NXXwd1gRsX6uK{ZW^~xHQed4 z1mtcv&imWxA8<2L%hN|@(lfWRMr~5^xFky=vMbZGD?VgbZDqH3W_o#szfMoB5zFL? zaBRR0e=(E!jV24Vl?lO1a`B-3EGL?9J6<6@YV+aouejc9G0`I^KFMcO8Rnf% z&&@3(I7V}mP(1g0YbFzIF1vU>$Sa?@Evc3pH=>mk+v_w!D;mZ5%p}b?exjp zRBM))LOcar;)Oiwg&Ycn7Yz#)Z|A1gIY`i+Tl=-(s2!&!t+p>_zvKJYgcPjA78OvthW}&-r zY~x&Pk27pT-`bRS9#bli%*Ygn8Pl?p)$heIO`NKRKvq^%yyDj88soSwQ`9GJCTF}8OLC$b#C{uPO&Dn>anuYQ6JNw z-3i4qd0NZ%wqER1{gv9fq?1|<-gL+TOyNpsMn%0*29)qDrupQh-U?E6?S|eF2AQ3U zmlQebLTi<@AYBTI5{iT>yf01s>on;2I$a(yM^$~~)VUjlFJ6hKJ_}(w+xWl;Dzej< zI!0j1+jMuif!m740y$PBz~rd!>=vxTam><=ia4^pv?2Q$R7m zM$tU79QyRE%?o_EP(PMuWy?j!reV0QEB?h;BPO}-Mr38H33=W7#^zg~wyyD4H9cnf zs`q5I0#G2E>zUp}f$!R&O!UWIwA5;}H}Xv|MTI@9*1k@lVD<+mb^eTMefbCvHLlumX;DLML3 z+4Es`SwN`0nLlm6%T?{4_r@M;@AbX|J6>fM#D^1Phjq*4UH5Z^;TKd<1aS3p1PS)< zF`4eulYdB_zZyDc1NR}y#qYM6$4Wmg{NfvFsM$RS1oPc0eARhqO%}DqIq1XVq~RT8 zrgPv|UT>sL2B_9xoyT!cY7jTf!|wRd295Pcxnq{kUwGaIr4<~w2?EcA)6(Ag`10Dt zs;69jX0Ke}??@eos+iwvj^H^T$LIKnc{8ZoVWhj*^yATnbvCj$C_I( zwJQUtjCpp@_YuD357Ep+C|3pwO(O1zks;w56Ox|_f7^N(6-BEFdwui=Bb%^3m}r=g5rUXQNrg@gnM-#! zJQ5s{&mGgy5~b4=;&C`G5Gj$wHlcJL*C$^;H$&y7uK??Ls2V*p%;qk+|L42LL~E9x zAM+EL5t8V2-VLj)PdYbAXFAz8GTe3SzJ^vsghnFYRC zuiPn=Y&FyjgH4=wROl(e1 z-sIY#QthAyVx~`%;8N!Nurh&v(X{-?{8-GwO!b0nanE4qf(}_(=soawG*l1*97?@B9IMpj9{Ur`;P z6%)n<0aDy<4XAd`G5M}FPUI>@&X;2~Ury9GAFEj-jQ#RhW#~-JA_WJo91$EzdzPEcqSPRg^L zukfAl#+^$eJFN`gitl}Wjaq&N{#NPut>N;=H+R2XG9Bt#6lBc##@qAFT=M&r(|2{~ zx6$nHLjpK07l=NizB`P3FBC$R>!Q|jNVguJ*dT)PfAYU|l0M+lMBsb#^KqA_gKwjX zH1pKvLk2pqD(@|aX|MzR1?CYSEowfQZboUA3_myAi5Xr;Wvzi$vG53pBB3N?1a%Z? zSPSG6bV1y4{0yhgh>D-PAR#4l@lp}9g7}HcRo8CbVc@u{_dr3%K;qHkr{L$M>HD za{hheqTkGy?QeJ3C$`V1-eGlwlCWQs;~0{3bD@_FzLoNc)B%G?ndH{;^+u0*{!X0D z0NoZ&3=w%cgFq66P=R~wZAHTOJA#?lyE88(B1oe(9Tv#Ng7q&aTnu18PI`^&Rk8|Z zob3G1*8Bf2EBn4jlzjls8HrZ*7Y;Yl{ZRI?(8@j;TG`jO@$xnPq3pYv98vc5e<=HE zKDh-2|An&exv%VFpq2eB`?2xe$j8joLF8j)NoJ>fCvs<+c2C&{?7MP_f!QYbK;%PM zQ7!Q~A;*ev3i_Cjj^-KQQeJYRo7E6$$xmtv6$I?NI7V!Akx#C4_Ff9o1{&$$&a#>A zlcO?v?9aLHe2`%jkALbb94%kOeI{)CNz`w^BzE{FHZ(`7?UDAqSBU^N}g&i|nvVXz!LspN%@R<2aY8W_&{A zel#x)7HpY1J-HwG2zhlQ-rHiGk%H_r_q3d%^26z*u>0lLqLp(I<53Z=<(<)LNUj;c zyVa_PonAac0))QP1Jd&Q#7HuWKW`mNDMvTb<(!1gTUxM&UDC?u&xPl3x31T z6vn&!v=^=H_i0%2`Mo}McfKg;ir<}93vKv)%jTp1pkW$u=$Q_eU41x zhVxsoORk2HWlzQg9MPO-yU{!n}dX#-ak!F}g4`SsaI+jdn3GQl2?i@L4U8E!JK?Jg4< zo}>jgYS9!Ip-70G4HfAYt#dD27DMt{F?Tr3 z-yFQ+I?{CMJLXMoUP+Fuub9j>E22JUC(d4J@h3C7^1_Zr53k3KPp#V6p_y14``)J4 z(m9D|m8{p;C$!tNXj0Dex=0E6ha#p3coWFs9eEkLc^dSFIr; zmzp|M^MoDm=n}pa6Y88y>LuS1mpq%L<jJ_P``-!4#?|B?*r?NlIx!2mv-2Mbea>m>3fQF9;gy(G63~z0Bu8 zhD3qR>FbFILU6)B7=(AG5v+oeL`WqycK_P*5+=RKA@jH$XMANP#A(7XI0oHP+IhPk(yTS9cXFLcaj$lR_`%Tv~ioRT-=_v!s+FoKgcq*@dZT%KE^o{F{ta2GJw!Uq6 z4ynW~g8EvBiKi2$h&jCYnA0UG9@lsE6zt^Z>L*mY=}+1#pX#eJR+k;QvRv+g{H%mJ zIOe}_J2mE2REZ3&*2K+GpGvyB^E$q!7qk?rN*PQtZbZHQWpUmrXJThD8C^` z+g;8@k}zHwp~q77cJLFFtfH@2Rn$Z&9G*xZ%lP?>u6K@HS;cBgb4j!Uw_7Qb8VPA{bkCFVO!JLjL^V1_3K<);dD%>Kj^uyKHI~^S2pbZ%6mIAB zP;OHfGO7mZgwCC|THPM5OUxElBv`Uitr!u!^i(m%XNiMqc7zxFl$5ITxdkQZD8XZa zsuK=WUQaao8Hmb)$QPbVd!g%u%35#oyP7|69OV^|$(0yg4x4o9e1;5o`FL(ojrVHb zY0HMrA~?&Hx+v7O8mj;YE?~PR_ncwWVtTKEY8tg}iQonNIqtM_}<&GK$ z9q$TU<%$up_wPC_%qJr0jBnKUzjJ_)U8|ZYeMph?MDc6M38u3QwzeaFf>tc#n%QLT zl5ZE^T3DxcKnZWzjlGMbmefbo@jP@oF{bQZwtW+W(!_d!SYoaP#Uwy)Qj00LNY&M_ z4&`B6%;L48wte8ZNb=ojSgFf@EAcawc0{~JmDtYnDdO%Ia2-~@x8OVVR%D@O`+}E{ z6Jc&El#AXGCRSlbk|+yh=IqD$?DdUQgA{Y5NdX7WNJGx)gUQ%zrY4TC-FX_Z8WXTX zD?+?OcJJ9mid-;-352{G`1R77CG!{ul-%T!KZzYsLC!)9Mq%}<5)*?5upz6jz{k6v zz{ed2^X&R2A$U^|0(S^80&+YT^1%{<<4(C+WG6N9jIj2k`a>xR^dZC`y9ibYt%)5i5`xzZS-a@OpX>bg4CJ&v7_(Q9JJ&g4%|)ci zmekRnMDXr|TM$lSFx8a919u3ci7PQ9l)?nTn+rBdy+qM1_V%LP9eq&}6Gz@sH!fLM zC4_|}(jo+8%lTH7dFffiz(5h~wN5#QE(-s7C-@h9zSl6`}a zXXiEyA(p3Uq9)ZWR`6&xy0A$(M1hZEAo-~w=-p-ab2y~EH+>$f`XyiW zIsxYKyk&BYi~Xbl(ER2<+7Pg25Nbg|C1@V=h6Xr*Sc^2E6DAiwloXm?XS^%^;zS_U0v%s~`rol!y-9$gka= z9v=J3{(y5tt!R{&W5~;C{Km4-oNz*U>!<}pU|U`!HEUF-T6Ev$)7R4+0S4GD=Fvl3 z6ouDt-)~Y}DSJFoMo`*EFClC{{GK8??Qus7`KyyLu7Tk!;0Vd?=t_9>T~I(OXXtzy z-Ia#eMzR?F+^9i#h^pA0{k;J-DGaQ=kDh?tWUfHI53%-1yu$QPpsOVtrzY1y<>5OIi1qQtt;v z-6FkcDS2N6%z07OS{9LA>0zmY%u%ULkueD$eF#nGv>d*V8FiHk-=F>oBp1^b3ni5D zfH7CTR(nAVGczUIH9m>+}Uy_&bI5vK#8og_&YQONuB|^ z4^mIs61doqHs6+`k1WV$${8otWWg(BOc9dxBJc_+%!Nntk=~W&#x;MUqTy*?2`x~J zEaDT&xIJ)z&P&+uec&DO;(KZ^)YO+ERmJiVZ;az zlb(Wb?J|Y#(wCs}JD_ya+>B@~a7+cqOXu=LrgC3!g>GKKO?VzjTzTJ8sRLt0oPXJ% zR0S(W@Mc5GYFg~p0jr)ioJ!lWK3eJl>#Ahcst*HIL)%p@FRK{Y ztGn>3-@?mB4Y{Ump|bk{tO z7v@%T4q`E##U`z+Ki5;gg4GZ&*}%@;;9!<;+M83vj!rxi|C}Q41-f#6!I!goFLOv< zVmQ9c4X9hqAmmXjRn&l8ZKqPvD1FTWy3R{*)2_}!wMxGIxVksyy}8np%VBzFF%9Nk z2?#az=QrwpYSg9t0T|>wh_~%0rGaX^y|DDpklS88#?JzyUpn%Bq6Kx48oy^KfTp~? z7{y-l?QmztFX6ZUH6`);p9hlCN1B`cf0bG)elbzDHSFgmbkHWs=dNx5V9?6b$LKGB z!K3B>{~0idwF?+Tw;+w|#^iD*_WSiB2J4nzWiIYEH*fEJyAljEH`B>=6W2QJC#4(Q zW;!JflG4pWuPar^``^ws>#?Hy^{$*Sz$V2Ft!7O}*Xtb%I}Oz9UBa6zL^@AOMdj@GteKPmlbqkR`J_^;;XgL=K)@_%%5 zb4aNd=0Q?=k{Wx=`(&R!x?KZy=c(9k3(|KgiC=RQsi#S{d$jNp^t zNY2iOvstB||5W~;VPv_&hc;2l0!e9fOs=TkcuEhQo4AfMU;~sOX;8oy%GR|!QO5UY zvS-m!3(sQZTHjt$S|H{gdwg9rDCiWt*0)9eP;>K*<7dyRRgm5^+V9uPd($eUgK{`p z{!dA5+$Pw>yXr*VHFv#&iDe+O1D%w9&ijq`pXL8PblA5e^CaGBO>Ud@i<>GHUpW3fmC?4-2{zt+TFOb%_LM7o_{9Ejg5 zK{6HtrynXoT0n_>PLu$omdf=`>r2N3Nwh%Ey)0lRoRzFL&s6TdcH@fxnUT(q2Bd z+P`?}&Rz>r^aJ8^|3B{jGA!!0-NS~Np@vTB?iLYgaX>&C1VKtdLRvzRFzD{?Zjh2L zhwkoB0ZBn63`%%rKoAwZu6wQbUhlI#A7|U<^Zz)H`0e}ld=!kXfwoHjAur>jEa(GP zBP|HspVJkIVEknR60J8F0HTEhAgpBpP?v+A(H6nMiE~2WMn679B5OFFudNkY`Ei;+)-}gZD`~@ zufi4B5oH?|yopBw4wr4UU^+A@E$LBO{3~5!jHlh{vq@NTw?E}je}}whD9BVypGBdg zQ?+_CqUbDN@92m!z`rm`a*c-5YrR7cmXw}uWGT~aH>kFW>GjX#&XPhlR@#ak@6P0@ z=;*O@3=19IU%c{+xz{EZ%Gc{2frs+-uEol6^^m>7mYtAKYu*axdO*wnoF-{rE;%t` zhW3=NCzmaH=|!K1z^4@KfNU{F=>g4w7pV$n#?_pi1MVI#(x@{ zzTG((S^X*FkTZb!Bf7)@T>Ga?zHdhGb}a4*JkB5?@diW&P8T$`hAct$ch_zz4%6%_ z=g8i9M-n1El9UR`5?zNxw>A&cDqex7UWeP~ngNtxHo((Wg4M5b0?KW=vj?pbDadp^ zkYphM$+}#X;!f2X0fjvCZ>xw%the#)XMh->2E~c* zh=N_qb4Q8{65voE(zlXaFChB9GBJJPsFs-%i?I|C%$hJfUY zTnW2pkOa3Iumg+S8D(ctHMbjydW$?`^oB4fnLyvES#PPFCDnC;;)=lZ_KP3|XvjiIOZsZCWb-G(;tVKBrJ}nVnxa=Yydy}>vM=>lv%^>+ zzMSiCBo!_+mY>WH&K*xde|;Z7S24+td@#;4JJ=2{h2#QKsL=&*hE%=RkN3fuTxFth!Mk^PMXfA91jI1@?xd+C z)&AsaQL`nrd2u^|gLy6j9rS&`!hv@3KKKc~brI-4HJ-7UnfD`CN%~fI^ZWbYPq|96 zx89h~=+}^Nj@}2#UzGmD-~CQWoVf*tnjPXuMSF!!ATMqX9{l}%aI}g!rEfuVm0Ti6 z?}H=y*3tVw5Z?NGjJ`$-{QLXh17F9ZH{Z7B!|z4eEmX=nZ}o~=X}d2a;sJJX()52# z(F@ju9@-x6tQA9Zm6W7n5D(-U`0E!@%8-vJi3%zkoxC4mtC(|Q^grh+`@i*^pR0t) zfd;s0&!=yhUizq6nUjq4Ewq7q+7d+hKo>AU*oXmL#W0;O2Xc==Aj{4ngU0Bs;V6#f zK*cWfvU<2d?LXu|KS(N!Vb1K1Hyz2f^ycfCa9*W|cpJ#RrR2`~36fZFIPV%*F6(h_Usm_-9)K> zkimWBwk&n~pb;5UCif!~IXholPzypP62r_3lyUP!l4L`cLMh=S6K8nQWJZ>IG18dE zm!n3_7cLJmcPk4(qAtK?im(>-8TE!H&Anjcl;U);!E8u;?r+Q;u_AA_I|vX}yvLHU zFPYlIu>=b&2TATD}N$lr*W4SzyvCh%*>d()u0`jz$q{pf! zKNr~d;DF&09r)D&KA+1 z?-`(Qg5U2Mz8m(C{wsz(#G@wr#q{KHlfCck+_1wEkB(vL6V`pWp;jRyAL2ryq=2e0^pAQV4ublWpJA*IT#!HdvWg zbiPT;$`*88*V28F!Ac%sDe)eMz(Nwg{4Nwn_B0h#k6G;UuGSl}i+#Zz^Kg$X|B$3% zzT&No2&hlB--&~;ltT=$7VBCU(hJJMeRhbOl?yV>+QB~C1#dVYJVi9s{^ydl1J=!% zHqj^R3q#Z!1eAOL*R>ptq@mUe zJBlU=$%XFep$QaDkamKwl-s5usQ~>j>`7JZT{=NnN|9el4vqGw>gye^l$B41PeeE5 zprQK7u!q_b5(t;UdQYlLV{$XHvYXxplyk%e24Zj2*Gb=FssU}X5yTN57z33; z2NBS=Gf}S=IWurV5Qgxwu=jc0Z3}Ecukb|qt`@o2aQVjBSutwX-*X?k14)whhJ0ls zRIpdo1(1$I5Z4?o+Tpgqf2ai`4nw6$YJuVV@viFxiY^#pkd(F5Y-KuA*LfW3l-Kag zd>-pJtqH=DR8d|zBa2Blx;k>B;4HtE6@Pcl((V%o9ozV-O145Wt_$Ez9-Q#=BIit_ ztsKRG+*?`FBe@!%bJcosRVzA23LHP@>0;#lR73@esZKaPzmq%vUM-I7B6U!HK&6F!Y zKu`ZJ;liyIEqs#BH)y5!mG*pe`sWKbNkL%pcaG0bGydwzz+k)@#)nX3tR%abY4Qc>3|cZBQLgi!-@hnk3Q!3^v`8xK|}q> z5)iaPNH-b0BOU4dwV`q`){n|Axx{6UXNi+oq1!4I_8*wu<~BqdlfQ zo6y&qs_VL7H+R8Lz}3*)Dsp~G{RWX1Dx>{tsk~h7LVS#E!yKzaKn=Sk@kEX>etq0JegEd|5KB7yv98Cd_hsq zzkoXb-d>&ceEm1Ns$Z6wPy$@=*(NLCr%mQblg04^2lK;0d!};u23VYIGVLQzn9nJx zO3}A7pc->I|J>)P|KOmtJa*6q!kVn+AC+U_yCC!T=W@ZE0*9l@@MrEMRR zV8G8K0-T5%Ce##mS~=7ZTm@9gTAb0Ppq0al_A3I}INDqX^l02tj~VKqjjJ+dVDmoG znE$PEkUMrC<6wTO9LGoFC#En5i}tSXN8^9oWRhC+bXUP9m4B}suk0@W0Diu0AIgyZ zqsH8?@Veen;Tz+gaVNF&O2*R!xd{*aj$l-hSw@v0RO%|tb7loEeBLNc> z_=$a^cHHL2CX?(uPk@t~2(-!CXD{Ju`ef51Oz;0U0$kxcrBeqj>}dRXNUydRdpWCa z&{+c9lvS9r-S;Ld>8B=3;iLGrs3+wS^SOYf&=$sg?sWk3U%Jo?o&Uw*6+0|lfBe*a zIqH0!3$$_^`&?j^<6rn(8pt5O5#UZL$4j;3z8}ozQ;j*;NW4H}fjJqtYU9E~77W7L zr|c=^Z9qIZ8vng=gcC<8wKoz}bE5b-rJ&!FY$BPw=t}wrPXLV$QF1c_@S_o#dpw>8 zZWFUcG3Mu*BaJ!7cjhy5Xv?L$MXpBQo2*tzFUu3&r_SFh2O)79x-8ZGn4u=1@CKX& zjQPCQNO!s8Uuw*?WUx=VjbEHFXQ`p5*Dq&hbI@)B+G-qMyqvvtIfgr*<%OOayiS{p zpRJJRxw~GUhOyA$Srznuy1S0uU1Q_?HWN_v zm$BvO)SF|z|GU-Uz_ssuf9Tc9CPw?-j)X7lY6XOz9BDPnS49i+jgzBLLcjGm%FVWK zSxyIPzGSd({cl#t#p%pxcW0zNKM_WPM)(@ zD~Bgm$RD^*8LAhHy|7rC*0>5cUR3ll{W?7yM%x7t)G5W zxHnm;G4pL(#iy@%fi5}d+jvc$!k@NMYDhqPAhH&gJi>Q(7mV*u2H5_zR1Z4$Tc6LA z;m$N1zw<7u9KU+qN87^mBc#%J;0( z<(SCdQCxEh<^TOI@&E6ye4p=}=QH;Rr)HNQtCT;QT~g9BtbH?clFeW?Ft4XR9{%Uq<7_VD>w{r63R}cNVyVsIk8~AB+<1`vd)^3^toe!P7 z^5-Tq9CUjrB`#51gMRsOwIqe0YyeX=STt1URwL|Qks}5faq{TH|F`*25?SF1^zrnS z-%%{v_0ucgoYxBSkFWe1!=JwVD?>-n$1~Q(<5kKXr^_E1DWCqB4|zSZsXBi?MA*Vy zzdwZnGrRn!^Px)dqxsOXiq*fL4;@<@Pwx><=R=wNKXaZ*+V#HMz|Nl!L9zblz49YH zMN*X!A=x1W!pHZDKd(|cSE5pneZW7z@-qh-Br8Ut_lo+#ovVdni@q!X2!Uo`QLFso z`LFzb5ahjH;7_mof&i!IzuqhU^5riI>7o#dD7E4^e?TFN ziH^usLF&3FX571jok)pOz3>NVF+LAA;Ai-~V*R?DGAU--XC; znsUz>)a-{isR*X#4t`cUq>X@gp0)9a^NcA6&maaw*sW-UefiH?8_$|uzOPbla-s93 z;<`P0fgx<^BO*eLpVf|x0=0pu!La_YFF(}UC@X=~$k)L6eU)PJ3G$N;SpCnh{CQl*A)X+D|2Nlbr+4jtnhc$N?w_3xo$6eE8S4BmfBwhU zYyU~L_>Vnc@K6s}^Vkt0`1|7hXeQJ&`SShh2_kqlbbD{VEw?`K-OB2XBSbI^B+!51 zOtm2Dkjhqmr`6_fbl?K*6Xy9s9Dqpk3;pR(kig4)e`vLk)4rUxzT@9s$CXN>i=8mRx1YT;*i zR4v9w{*!89kK`r%<9hA1S}027;GbQ*`@$CQgO~rdc=rVv{9*Bqnurvr0b9IlfPbzQ z#~!fUKP}!Ra;Y|QR|}68?`pVEkU)Fr^7+*Q0;?8bKUIqlzE1x<6M9c!K2kz{TrJj! zr2nB>JUXft`_DmKZ<PGeUp-*`bSEA#TEa8cqH=%=odRRx zxLRCCOP@Zf7TyYhGKiOk*xVPzt$O)!{;^v8M}5NYR)C|Kki!Mc!{4g~RRPtb=NO=M zXS+*Oq%2TG@TS7kXpx%bfgkaTz8jjvxgrxI(pU~b!k%-|c zd}5C;mOz143zsY~I<#7dub|;)Wg}z#QZ4Y2vFnVRPO8PdTdhA;3*FzUg}!Ql2-E`x z>k}?NyeuTuny55rF{1(HHu-*1QT|w(Q z;tQQD5{Nb#MF0J@mcUa8?BqEH2?Q0x|2$k$zlm_>S}RZmS~UJBh95OqO7J!J{z)E5 zV7i=gYz`C75=m1{_a0zCG77a9g=psQgFtJtM)BM~; zLIFDDxnAhcMWcG{Xt;DX67_S7!8TNar0KDah{6k7B;aK#{cQ!Ezu6gS0D)d>Y3`YI zU#gO|l?T1~;|ltCxb*p_MZ)_lq?eDy@TZG}kD<2TBT>q-;NQ$)P?bz=d;OE`Ie$Vz z(YFvaNJ)^WqPF`&B%aF-PTcjQNYq)COdlDPJ|l&#ThxGr-hFVm%S7qG*@!@~{Pbv% zAf)4q^)JNmuoeT&6a14r@+WiHrJdfxL)gjlFDjY9T>FvTPw+Qv*yT!$&8IYy&MC&=vH~7S;FR($NY!j-i=e;JY~tl!^>38ci=I zKzLr_scTT-aH-n@9rjPxS}b(7r;CKRjlj(Ts*`Ii=M!_-+2K;i5-K4PJY0vg2A2y) zy8(kpwv-&IUYN{s`ZQe@GV-T}FxusG7Sdp8#qz<39nB23+v*5vb662C@H5^>PN3Z$ zR0=O=qhi(E>A0J@8QLy;=2{CDi8{X4I*CMW#m%5+@wG|yZk{$Nzl^m0%@X3+RDA3$ z`_t9a|8b=`?rwfvT>taQ6Zwg{?EJ;G%9+Kra0Oi67U&zWIwsw6hN%Q(i+ho3qxxZtv_uBe?(Lh>hrfF=Au)zlhkN{cj>R zA@1j?%l>v9%zfc(#AZq4KaJP`{(BLd2*m$k#D?PkC}Ly&?;|#{M-iJnkzQfF|NDrI z*gr&U_Mo&g*vZq;;@V2O_g^ipp(CxyH?Mz=*qkh`p-svS@%tyT;?u=7R9(h-yB>|u z60;p#&&G)nMJtK`u)p?EuE^zgSuyVSh>akU%b|%WY@|iXM+IG6L+j1(8${m9CRoG< zeA1+xsLR9}>5_dE(O<*!6IC%u7{Hq(r(CF5M((kOj!h}cBOQ4Dte z)})+Om+=>wJucSrhYIe|wxPMy830e0E`(JEE9*K zsJnh5ln|rH@S;}^zr2Jl=L@z*1f`CbrX(+77vs|f#yWcKs<#r>{j-FYr1~5uw-UFz zvxL8P^gZ3(N`k}4K91mWJD-ME*nhsOI=4I>w?j%=9>vO_-BoSd zclr#wW|xG5!&m}tD=w3!$)rgqm}0O<`rkU$Y|UbT%rX~c^1f@fYU7}qE&9;A9|%r0 zTSaFyTlb)vE$d^=me3g6LKIB1)eX~Z$;G=0SDtFNVmJS#W-A0SQ20c%)jJQ>Y-wFy zEyt`+@q9b?(1B7^J9LR>evCH!Vsx_-X4UeTgAVe`J{+iFYl;j_(GY6bikV9y+s7z| z8Mbg!u;GpjTj)%_$P2_Nhe=MajE!$PT3_AvMI>J|qPa+kIiQQPYi%#?;iRi3=f^Dk zb&il`(B8|tDA?XNnB7~^Adq=ZQpO2`*~C4BV#j+vJYH@L5mjF4XxH9B81mz;%2qPm zJ@&3EGh(nvsyddc&8Rw29BoKjI+vw3OXDm~%4Sz`o^BS{z zS_P6IR{U)^R_F|kLDMUu(IPot+c;x+^~G?jfqB`u9k)gKbZ?nOMV}fAqSAn?S%Ip( z3gj>VVM$oSlA0vD3kCSzh_!&8@Uin?_DC?KKxAx`wTSl(rtCnCGuTK0N;98wt}q9)?K2bTyo?GEP<6rD zAzQsIytVpnh2E=UJGR1t1kX!(@iw7&=4Q|`0|9a_msbDHKc%+*S;hcq?Vk?z?0yWZ`iCUF2)mMe*dP!Ly=5oYhtZFAfkE#j<-3 zTU@*uZ^s4{*3bxEHYRmzd^?IS^a!o(>w)+CqXcL>C)T%59+iPNK1kvgif<0zNPBX3 z`Vp4@Ck3^j_L0C1jswYfw1N5?Z*<%ac6W8(bkA%I6}}`4`&J)}x-+Hov~@Jp)eue^ z*nAzn_O3A9bkEauP5?p#c0B?It+O*6dCKCLKdP!Cs$+?+2*XUyopEDV8fXF(Ee-C@ zV=Iq-TFR4MyDgX+7G8;@#wHM0OTiA?Xrwk}@s{xS+YN1RzHe3J(`7Ov70vxf-KH@I;c00_XMZcy%tBlVt#A$=-5KpJxNQ8Tckz#Y5sNW$w zyF)2F#>{IOcfB+>#a3e9h zgmf4*&Ut;rP9Wvvi(vc`7!Wrbj-DVDq8`d@7BX+doE$^TUi}`W3BQrPB_~0pggRl( zpRsQ=hxAb=v^v7geJ7C>yb`3A$Qxz!H+t1(0~1_tZZxs@-AFUg=4 z4-yF3@RZuR1tb#5BY(KXk1nGj7xER+_RELN$C~eM5^vtTXK#(IlECtuDp$o{Y6NNv zlaS}#8Y$pNjgd&sQrB6*Fe~xMD_CPrZFd{Zj8!Svc4ie7m{iFwH_A6#Km=%TjxX77 zq4c7%QKH7heWgyx_xc!!7(!&;fu zHc6S2Y+%X0E1|%yBF-DTG3CWH#<5wmlfFh2?y%4S$~?J?CF#asS1 zk6@;YAa&zwJv$Nh6R8yK{EoFi0TD}rPg6bs_-*<^+#%Z=k8a41uDrzJm`8Jqo5kc6 zE2qFL_P!xIhZ|R!m-JB5MWK660=J??FrU@`9+?vMkUbx$zBryOUq7alIMQYrTKg=IlP&avForH9i+SOkKTdRSi;;W-h4_TQhVr>>cgp zNzZ%!-qOjbHb`4qMy48}#NoE31ZP84O_V7u+?3O6tF?-R{txvN3KL(O%V|FK_*7an z)TPaQsl6t&J_@Rx0V!;wu0CJ)oQj!!XE{i_PkC#U5zYvk_ZLsa{N8?~3 zY0+bTx=Qy1Jw9}C;2B^n@v_J=FWXothWR0`PPNG^6Sy_5;@3sdI%?w{%WK28KYz&K ztXs+DcjGz{=ji~^iA>QZIx`=_mo*Go_p2XKp zDI?r-zcC}Is=0z!VnDbf+&T)Yo^ucnCjo9wtd`x zLHEAF6F3mT(ifh}wp;yFnhgDR_+pQjzpx$}x5>@6vF9LP|Lpa6O7E#Am+B4;0@Ed8 zMrR8e22w!8W`I+;br`{Q!fQ&|s6$(5lezoX|+(mXb^m zu$$iR5LGG_#JV1)(0OYnC*k!<#w>BBu0ZA;)PT3dz|0B%6%O(yvGbVN|D-=%v!I zIOcGJNEw1D9#Y3XbPlv@3~bto%OHtw@yX4M&CQyGda-iz9DQYcE2b1I zrbY`*mL}Q~pfPj|oAi!vwD)hXitOeWdRrL=Q47=VC`myCmTdSx&+#AfDFQnciPjV? zI{?K5OVLS7Z`71Z`IV}y6xnV#Dp-}!y2d=T4)VYBLNVG6-@#3DkM-*~P0_*Z*KxPqe1tQrQCW7>a>g1nJOdLi4O9~Hufuzp)R2!t)yh}q}8l+ohtS+ zt8|vh+1S0XJ&H4A0;Gk+(<=fAl?Yj_faH**uaaSoF;Rk5RZN^fTNA+HPCBD=5GiN= z5^?obS+$~f5KR$q&m?MpB9bP!y2Ltmw+ficN*c$iSteMsx0BA~97G=+pNJM`CsmUg zSG~PlI@nb@9Su~JsvDXr9j}4GI7ghGY3W89-gP5`x&%o8}ruhQg9ZwDic*LKEjja*LQqis- zwJj4>tR7b6P}?XOHQ-c>ldNdxBSa7!A2?C_I<8JyFi>Kub$YM$!CI?bcb(#%&@;^@ zyL7nXj#z?8h;V$Ag-@-QZ)0wIX-N7rRQC~;v=>;B(u7QLT&HK`aa0^O~kZSIaBtv(PImCk-`D6XV@x*`YW{h z%Vk|?g}PAX`jPAUk$Ph2Sy4#)6Ztn^XvAo1R^@#W>LX+Cqp%3z1i5j^c+v#W(>)oa zO&DZ&K1ly+kg0Bv^Zg*(w?QuQA?_zbmlK9~o)2AlHN;mp1b#on%-+;SLxKLjALGfe zGW06q-H^jTHE)fFcnb|y0{iTvB=f48e1mxSYBawM+_^fgx-+8BgR^lD7k9WM z@O^xoUo*El20aYkdNi+1-{?ZcsJU$ zSXD)e4MaU`Omy=XzluU>Oay(S55`de3RU~Oav>+9y}mtWqG z3Q$yTCy?a#Tn<44+L7y0J6EAeYCP)6;9d!1TlJUk^;i2g?}_n>?4XxI+mNm#^Z`z2 zvyf1B!dspCw=0ux)Aa08i^iw*22|u1lktaCA-Z^wf=ZAXFyMH5;avfgs;=m z;dN$S_iMQ;=IWCTbszBADALI499CMu@$q1?Y9*4FUzw`)UVn7JEKDmfknjVF2i9P~ z%?Rd?1)${A$IYf`kvueM*s&kGhu#|5J7w$GTw^i&=6w=J;LLjT6mk9XkoM-Nw$+@b z4!>FxLNXlt%h=Vfr0%LDLG+vz%nd((njZBHp~G~hk|dMbsnF>ZDyy1ki@eXPD=7yb zsiv38Zw3k|lWgOp*=g1f%SP4SiAuTfvU??s*XJ{Ey7n+$u0{Y6@!>h*VH*<&@YOVE;du9z%O*oVC_Sym7($kN$grYvoHNzeR@bT|rW$|f;fJ|f~^ zyi{{T*e9_?GLq+I3Jx4Xq`Y4=O}T%IK1&B1NkR*5^W8%ej;PxU1U?H4H9GgB(RqUU z?mi@bCF&A%tl8Rd_y*H#0pJmlQ4qaQaqun>5|bj{R3)STMx`t(p(-yeuPC9U$|cAn zttcig%==nZf=xqJ`i8OukAR{W+g=N$s!9t8%ZN)s zy}&o_T&tkHUHP)Ep{=E>rmtzBW29&3)!3Vd5Yav zvf><=jmAcg*60^aVOGh-CzqyT9$@h(#H^M`ki4`ujA9ZZplg1mQ?x0FnMa~#nbpGs zx75;ysLa~Un}E`zto8ziD=5iqut;Rm$V53q;V?|%YKfn&O5W{aqmk+ev$2AZwfJrL z9C2@aR4OJ#D$$gXo5}v#Y{fJYtg6Ym+azCB@FaLiZ&i|bq+S^CtK@O#0*bbKHu2nF zVW$=qr%MYlPj%+xZ#1w^TJSL96`(Nb&lHc!T#9&THs*v{8!3m4NnZ5A`pr~Jia2~3 z4?h_Hil~^ZAM@qb(vcTpH`4A0W37UPvP2TuZH(e0ZZ18KDdQoyfrBB{rh)UqIuSjB z*(pouO@-ITdbE-0uNyA{6Ox`iJ9M#ZLdM1CoJq!4k`0EqTQE4KiO{yjp=ByFh&5nr zXfx{-Y`D)VM&JV7B(CG|#^>|!DfyNSLoWV>@Mj_UsG10pcXSt8Q&1~9MAo^(idD5tKDIJ*B+q{-vA>AAhdJi$lbbGNHCn{Do*_n zzDug&)1Z>{%Y6JHnJe#a`Eb%=s0`mkzG)SNElFR7YrWQ8JVLH>RaBAe9)0+zsCAvn zZB1Jt?hzg3&&cEa_Ox_qdS18aJFO}meDP=$qrKI?Y7e*$UC9Qz;i2_`+lR~=Ufr6` zF}*%IZ95Q=HvPb>86jK&Y`t*DVb)NU5zR~LkS+evTf_|h+o?W?eRq(J7-vY>hg!*3 z24ATb20N}_~noBDLeF0$R?m*Djs z_Nmb~t@0!^dN5JIkoI6eDmIC0kPcA}q&$m(Z7Hz97hg}#JCrj4_jxX_xL0HKv0_;O z7+rUQ${mqFwkm5*L)wEwMeUL(eqHaVqPH=?c7gV$KZWxSDByvDTEe5nHEWk1Jj^ln2np98rg+lH*CC#AGvc}ISnT$vHi=$b`BG>$jA%kcQ(NA> z;8OggK`A~;XM3ip~>Ul&`6s#+iaa*_Yy~$P+WmCMk za3;GA?U*CB9xPv{HubvV;;OS1JHRbbRH6{xenEMkka=GPh>d=qV?t7vnMDK@CBRq$ zlSGyQj4G`JHda}gUXZg8h}D(|&w6!eHVnF~alz6W4!#Rp1cZ-|qMAOB5I`-9qDGyN zFhc_*+>so|ZTF8;Yz4CDieHM=KvXMr=d|CGWRZ1_-k51*K-%aMosCtzH;Np4)gohi z&9OlGgFZL|&lN<{U%%JWLR4`5rgXp23zx(>28%1c`h%khwHe)v7+N=FWC78VwH%yn z_OD1KsL^*CaI==!*afUhhiVHV%b4Ap6qUiwrTO%HA>()UH(SMlsD{t(8=K1ZR$uot zzhXkjEOCSG)9vJ{6mJ57R?b-EC~t3?0@MgrEz(Ji_m*F^9wsz7D;fey(Noy_XY}fa zCHzKK#1TTA5H$xp{VsC3`LVmiAI?xE^H6>$A|?-!gz`KfJ@dn*2oe^cx~@Bj7q{>3 zHaR0mh`JYFKoKoBbMfd1eol|TKx6j2C_GmM0rPscuwk&rh5Wd=Ds4hh6r*)NJ@ouo zf^F4i!4D?N`e-P#;}D_DVgdbp=~|?!h^SlE4{tv@^}#2}`$PyTBE{i+kY@aHCt?oqXYdIFhoI9Ruuo zoW#ABfm`v!38t=m8Y8&hT2VL;FX6~5ZeJL2ZecdPfniPMeql{+*e#)oyt+Wj z4xH6i5dIR379-a2u#J;!Rmwt%Hf zE7=0;g`^5SVs~+RgD+eP8!(l#(!-~FphC!-B6CUgo_jkPW5(SKyA-{|_KU3Xi@rp* zJvd4NZ;ePHM^Lo z(gV@2$v0CT^yfWmn-kZG0GNvdi@m}_1SyvaRui|<_iNv~^ljte`){i=lu~y%>^EOb z`n>4;WF7g^9`yyX-50Z}A}`nbtUXzWUQafDX`tKjF;LsAd-Fu}na(#V!j2hT{>~V9 z7vX+IZf%Fm>~BjEhxX1i^td@5ya(O#tthnK3T|tL9I+Pxcd*)r3jrcngBVbH&O>|RV8>JGpc8WT>q9h)+y@aDB;S3_#or8bTAX@&mFg+)M2e30_vy<@}0ZiS)7v$0xtA_wEyf)p-d~#$dGhnS$}%yS_>Q zuJ&98-#}}{MuJ2UU2|87xh1f0}%28z6yI?A}fSV{bpZL)Uwj?F`$2APorwwFa7GN$>O&LmMMYOG%Pg$yIv=9H$^0 zi%Zz)_i;-D0>&@$&gV4LQwJ_C8@rmQa`-11bO z$|WYMB%)1%St%M)zLg4wFI9(bK+IXbTUhtF5 z+cX3@Ho6@6(r1-$6^maSxd^w;B}u@A&1s9{ue+@XVLMSQ&3*JCv5Nr-#z5e+qo z*8I@udwlojw7#MccNY!^8xDt+%e16@Ey z0F8s(vGq(JBlqfbE_(Jb<=jo)vbmd(Fl+)aC9V=%yDM*Vm-H?!Jqz;H11w@OD-gS) zmo)fwcdJh>n8S*Obbj;NBV~#;8zGeNTaPcxS0ci94t?sp3m6O$3DIqiUTyM*G=>|Y zQw@KrG;HDt7rc7-K(Jv!5bYBtx2+hvC)*|pqr&y1Tf<}^b_HF0@IzY(6hp8G7wfA3 z2s$RswQw${Qo)X8a2w7ILfIQjRODD3w3jT%ntgZ;ho#^j*t&Cn@y1`vEG@IT&-_9G zebPKhk{vvbF4^*+Kx|m7r_@$*wGX|6^-3ctn2L9{<*{z6MoEkKH@X4tfIc`3X%lWL zi%+tE3ua<8+_B>FTseaVjp9#@2b1;iX_BSk(iCfwQTt|dLzfb770Nt&puDgq4gXoW z$8b9k=?MdkhERjfr$)L?xr^)lR7#6#?w*#9XGyDbNAKzp?|b7!sq_auKqEbs$Kl#B`Lg16 zCOdECcj0t80}*agiFCFS2#7u7YrgCc1U$^gy=Q86N9;XnpV;~W7sGWTI)rfF>({?n zN+o@=5Cj>-9NL8nY+;5bTfSclEuBeDP7ezvnC=BDheRqD-Y{7z&&ounP2gcnh!pq1 zqWBOlKkrV7X2iIKV|g{QZT^c@S>Bg5i1wKGjS)lbpz;U${Z{cErJag}8o7b_iVr%UN!X^bXjv&bhlSD=lfi!Q=h#&HOFkHiHZh90 zvTfj=S`K~iSGzkt1`TX-D_H$->rPE$eP0a4cf}8*4(g;$RlzTJM(r?)tYqgYsiDP3Ad^0g!TuEutIE=MzwKnlVIGcFMJ zv^j8?#!8C)P|odYB^gUV56`%Z7w;f^(${BP03+97y8Vfb2HiUBdd+@`G4^11d3C{35ntSvv7$M-T z-+{P?GLiCixt-l*4`#Vwk#QO2pusQ8_HGq!HBzdR=91d{6GnV|e z*ew6j=cI=z`G_J@lFk~oU*WN-AFaR@qNEhe?iQv=g#$z`e$&9(c6Tcja9^b1Y$F4ghuGb5V z2&Ln5!%H3{P3?}Wf1fM#O%NjTF$}R5Vpb4E)|$B{!`fDvsTvER zwug_~9E3dhYTH~MCq5Nw&%4y0YJKYr390Sq%aF$6!}g!<$f@mozTa6a)K&Jl zYXa0+wcphs)ZMbL_4W-OkT&{{Hj+j4nO!G{6s=rMFj^X5zsEWDFnoXQqX) zmdUU>YjLmdCdTsCm;0^A6B$gtadzs$E0y{n_jw}%buMrm6{EUu0{d@|-xH}>S)n9Hju zt2<73hvWq#wc~DAComGQJnNd`zJU_&Ow`a!9y(9jPETe$p)C3aihexx;@i{&%0vVC zXdSsu%aiH0`RRctuUgWl%d}oi+`%%w!!vW0X_cIE`s!;vwl~W0Z&n-Lppngx&c5E! zf4wC#0}$!SNtpRuH`~`dqvRruJ|!>g>#PalWZBKAJT z96eZlg>mq{IP?8`|Fu~P2Dg*IBgcQ|!uKp7>ofxSCmGzAg_p-ZxZMx>r^u}TL1G@7 zl8-uj;rlb5-v2y2{RhsceING@on2hr|PN z^o-1`>&YCss)^Z!MXLVArDfJ;<!TN_M+Jcw>Bz_^kH*qA?x?M z{L?2FzRj*1GExGB5>PxnjH$w@ZzGN3l_^Wdc>frtb;yfLe?TUED^9`&dlkeErD-V} z$W(}b799{D$x=JH@NF+}eP#2>aH80FDECg+7q#AUtGYz*IC}V3HTFk=$K|Q|Q<~PY z8kM$rGs9bV8j8Y)Y!g{Noza)|X;Z3Rgr+CLXG(JMmL4%xK6I&fEQ}QCcO}Zzl>dUK zKV|Or*6u{V?A`DWl&^z1US#y&9DKU+_2aM*D9KXBIs|W?+~MB!*N?$pU1%R^U2NfC zfA6&12PodUPJ_M8&OnJ5{>{~e@{3^$B`&G?ToOK@oT1Yd!rgx1apW?u913Yh)**pM zkuhAN0hushj)RCIg&L1h_~sl1dms}n7pvVyDjL=t&WtoGCg0nK%pc}bz#<$WY1eNY zWYg*QqgY3xF|Sp=4ZQ`!(;H*>{Ge$Wkz5hDM9*Rv2y?s`i6=(3Lex6~EOOmt66`g; zLR0d%qx0k@i7PE}PmThQmN)6}2pHZOb2|yMFh4}OJFuJ{{WRPlGv4mqN|t!X3Iduq z2kN_=g?^u06GWKfrOFC!HJ>cT*CVKO(J?T&`pabS^Liw|i0nodFSFwIrw?>Xbfp#h zfZY;ZVW2Jn>RBF$bRPSa3Clf};@280YgBU{Fg*RB>LG{rOlH?u<%grdBgFuF_~*sE zkM+D|T_0bDq@%1un$4jOxW=2#R*6VDX|9y>KF|g6hz9LObM-DM#uF^8lw52QeKsyq zk=JNC<>dblZ)X)3<=<|7W*E9d8XUSy5Ks|mMoCct>5vjcLQ0hG96-85T1r5=krWXF z5EVpH8j(icdl<_2$KLySpR;?8=U{!-TGwxV!+-~mT+il!2ahr2-+E*|$^(p-cGMyU zHd2yOO7IldDiM{i=xWqOl54rNr%#96M1x8sNVh4GWb-|_r2aznb!#TPT%h8;sP~}e z!92Z#xcX_uwfACvYiB>?h^m-j++#g2EXY4uH#{seH!u7#{Av<>z-#Y}=OxcQBTn>o z7FXYoGFLwe5!VWZJBzcRxXOHq7%8i2|G+`z=fdJw|IRZx9~jfpqSwcnF3zXflR!Q| zv3Q1ffKqf@ki8z`Zf#F{gP^EH25Uo1fr9qj&T1Lg2oPM36t+!ppH)UIC+^8Cm%tZ& zHpixJJ8hMxy#&^@_WUn$IqiLR-PxEbYS0Cv+}rzsf;*ZU`j&42%UTFjEHg4zT!w1c z<&F;tUK5k7Vi7OGWWEhwXFx6|p57dxn8au%j_)JD6Zeu)LcWrJg++y%B-?E0Z|!@d zCi;|+Kk(p@5MMMC?TxEbAWnUz@0rilpg|BQ+4tGMPyNg# zQKF#EDg$7x@%fqlE`P*wqBE;(`;)7}5)ge5c5$Xq=$@x#kbopj%xE$(d^tpKwez%| zLA!7~J-l494T>S>&hI{{5+rzwjDa;4cEwiBhbE#A@uuh7{ z>`m#doSBwUSMu~}C86GGy06gUyeD+sqvROJZ7t(PQ+T2>x(wj=?(mo2z zE6tI-Yh0e^hf_-)zO(Wft~61Ayl+y$X0=RM%HF`O4id3aO7jz8l?Xt2`IaJFO#-b zvwdF8Xlz}+7Q7{uqZ`L&lIl!C)WH`ep7goe3jG>O9#-yE?l+uq67>-#-}B$X>5k^< zLt<`FroSnxK704#!`b(090S!~l?xos;wgON$S7aAq3*Psues9&X~xG(^L!F{m85&H zb;1r)c>)WaVR%qzRTaxOM_h}u`=(CCZ9<$@bhTVYGS0qI>g!r_B-bynT&MdC6y)<~ zWi2l0SiXg?&T-k)<_+6RX4w1B&exma$hdQSRx%WMVvW(F!rGy9ySq-&F5CUXv~G6U zyBCEzG0r0M@h0adGx8nVEv`(689b_G-YdHQa6^OL+o4WY|Eor-mcYjI&q-_c&vm~s z=>{ngLZxX*Pe1lZuI-PxR{Ww!erecGCeOXHIH8O5R3atjwT))Vk6gaOJqBcSvFr_V z3?!|-)vT4K=aW!P#%@*d-%+V(f!K`%yd4uwotnq%R$Xvo#@Erwy(4bxL^ zc6fc^k1);{XWlk3Rg!(-moZ1YsX8Rs7k}pJ11^Qx+nZfVQkg=xa7-Gz0isnOecIn5jbWxagB#xf(3cpp37U9=wl_qgrs}&yid%V6H)q%JnZxBw+xb9RYi3Zg8GoA27n7)TyJGH?!b1eF&Cx-agLjzHi zYwSb%9`{G6K32squoLd)K5V(*xM>yI2oy}}+3slMF~Z`bxFz(Y+Gvyw&#bV}O0&fq zN0|qlv?Uww8s>}gFc-Uf6aH8k0^Px(>}#wtFT`C@*b&_Ou2vpk2qq0~oMxN0yW?4p zruIw_jm^LMO;j(ruw%g2ZhWOz8LoS)5DdSWV4vzY8CGMi13RoTm$tBjd$VK(uFV+< z;}25S*k`&t#Ga*FdFcXn%w;s_i*QNksC(odpy~W2GS8?C$ z?&Zt!;M|q#7RpqvXsLRjvHUNqa1C9}6oQBSj_cE0Wn$V_33lI)WN&0;F@H~exiciy zWS88jyV@2YLULuKZhZ9R za9wC<*@$;_tID11UVAOI=daENE zz%i$e6}Iz(5Dgl9$j0k^2`9%c2NBVXWso&}#z3Sw5M}@=06fKCspW=%rmjS1ZKfZD- z#D5y>%yuSlklBI)WAcVec+OclGyKR6zsr5V|9*A!t$zxWR1roX+A_)+Qr~ieK*p!u z)ld`NCNHU_0BnbVsU?p}=`(w(C_&SiL0*Hzv%W!jIcRoH=!Ju5hQ`3DuS1;vWN5L;Ch)XHpdMNOsKE4VVeESUCL?x`}5xiqmu8J`9O6tAojq~W| zsCPtUu{&?jRuRt*8ux94507e+=AyA)j^L<@;9?i29*W@Gqy|L<@>3EB-i%a&hmSV; zU0#Y1aRzEm2%T+YIHCI`XLPZ1cjeeg@T(pvouhjta&Z}kF|qoH=Z#veKbqoY=3OIf zE%PXd!J~JhMw6cz*{jg@AW@I>vGCIU)kN7nH#dkLt4G}w4|>q&LVnKM#w3O&E!x5y z!|qE=;p-^#)X1T}=zGxU9%wA3PwXW|DR6eI+qt-2{n$rX@;_Fh#xmm)Wn#4nWAce3 zVkobE9FNmu(DD|EznB|ur5~4d)y*{ZbUOQ;f}7Z1TjLmw;-~v%D>vCv*-5f7Vt7Fb z{<#(n0jKJ2CK!}qu$QuR<|g)S63t^u-3y>3G)FUX0tZddzny_>SD?M4NRqWq(&p2A zZH|V^o~*MJ{q-DSvMh%4WrH|&$kU01i@c`~v5Wnd*HzkL9*nLC z!LPPfORSs5B8pT5X9e#wrryzXf2`M-&fOL>1GUD!ktrD%E!W7o$c~mBjm99973F?< za|R6+oT<>5EI(?0Z9Y#!9Kma#;?Asr z#%w8Q7W_UC@id$4!6#Wb`(58)f16d0u(VLVJ`ay#i4;`3k17ai3jDThzoxIg7G# z9&O=#(N=ZQPTu*2`$fCwbvZcD2%)!#jX)GzYS*yIxCS8N6kvL&ni<6VrXVD{4MZgl zrV$6HcCn*$L;9(3X%o;yHqcRBD7x%Rd7zwUrogjV7e{7FBQzlNjUcpa5S|NO-?h@H zHb)>H;Bdv3>if zg!)2hcd>+B&?ya04DSSy zHqJ~C`B)I^e8Pp%*{bZ)`dEpEGVz+VVf4id7^4Xd{3Q)ilMVR{jd#(2t>!ey4jcL$ zHC8Y#P64+(9xlf&Nt2*VQ`U0hH~pq;oBGaSyiJ!PDp5>&Q3_fG3<_LfFkf?~W_=T3 zHR~J=M=%<1a1mdczW^7Sa8I)qQOit3i)K?x4H@Ksfy@4BGlQEB<1j1Cft(miNDXH!z6YoRzj18AIkH z9&Z|FTMK58D}s89Ysi5P#RyNLje!E%qZiO(*vDjv8p@sx^waHOh!@ZSZC9})nXct& zSK%@v@{x4gO|DeR1R>*teB>{gL>w&sYKQsA5t9f`oT~Hl<}5NF`Rf(IP3Ct%J_5Xe z-X}|>MPVwQ&++finfHdhsD9#?N`Bo~~N*sY@wgwv&9h&SyUvG$dISuT*v_f zHwBT87*H2koWS=9UD*6)Vm>?*f@BgoX0tcc?{05=n;m)C&;YFQpgRSigUQTBJuq2d zH$||8rboR9kH``fCOOCWzDh+j1|+_(gD`-j!i>m;=Q-P#V8M50Uqbr${l0{XA~t8G zrBTM=(!UNuA;=OOXC(o$M6NMi^PSCL$fEt|#1XzPOXGauj7gYeJ^NJRJ;WfC(`0~# z<^8ppsT6l~j_E(Fjn8C0T7YCc!nuwdgvzCT;EGrgRC8jMiitk4IU9mf`VP4^j$q&d zOrrf2!B#R0#0zMEN#vc|KKB#8FUTO~y~FJMb!KZ|lw#cKoOsoAR^;C8>fk5cz}ooF zgHZOK&M@>H^a27fnB4MUZ5&s)hX(_nancGHgeoYgBr`>JM~?BGSTsuL8yh1u{gZKt=Z!CM~rIMg$2~@NRu?ENzyy?%+z25@{I##c3u5`4E9Wse1^Y&K+YY8by_SeS4 z;lMx#>*dQ_C`A#mJ((=RhY#bsw4!-MS#J!$Eq9EHamLya=rnATB`ESb3w_&#jO z=!yd-(bh^#tu%LQt%^Lkpms8shG4$;v`*tzUNod2t#tD zS+BfWdWD?|%E^%x?s|1gC>2Eev{3-q+QxWb2!_s2b2VnG!pg5=o@Kgol#htK$W?Oe zdY!x_c$s`R7dS0=lTP(L2d0>(8q@VA>-_gz6~_E&m% zatH*8>HB?&{Rp4&z42^W>*ybstN!DA?0^#f1hV~^vGj+gpqud*CA?#RTwixV|4j*5 z6V&&ossay`(CvSsgawC6Sl0fgE&E`7-Q@Fk#8g%6T-Ev_6B>2nVqAmg0b{AfPv(Qf zF=MHtB%n1Ep@f%hgEB~1<$4oBpSSjN_c{?^rP0Ge0JbuQxF~J3@Blv*TMRFA3noL?nds)*Fo;Ejw6um$SU|G zoo`doUwK~%Poef4DB({u_$uc{gc5crqZ6x{efDWl@&D}WV%7nGY{~9mjQ!81s@fj8 zkN--8XFBJ8+!Rd4-lEF66=(JsSWt*7poB6siH#CUUP|pv=^m=^=?nyS zgWB}OG-A9wO0q9DJK+3 zOd@Z>X3S$cUsVb}*k{<7Pg0jYv2pJE>lCQu+OXrL-F0VY-ukrR%#m4OO5RmEN2a5RkwYs)ClLawjF;#h2tr>dU6 z5ItlpAwjm-wBMx#yZQko%#`|mpoG_H3@FjCjzG3I%sy`YwBvAHf^Zh^N%})BXqi>+l4nJww!hS*l0y6ch zVLP0C-!HTQ!=`E=8{ikLZ5#r3L<@fezY!H1cR3~=Y1rZu)q_qNHkbd2OdT0Ew?7!R zM_~=0Cl#?}Q%9aU97AM-6#S1+fE^`_4Eu)d@=AAu8}muS)_FG-GvUku9qKP3A*Wuq z<{cH<2Zrq?467F?w2vVn3s(sK84u;3AAMxlj%6ySH}w}tNPBCoche#TIlqvOZ+|y8=$%}{uUm+3$ABuh(gMYu^3m7&d zW!fFKaX1M5^3Myt`zXLoC`8TV2oF^uBN2P+eTL58$dnqE7B4VhFSrnR%KXf?F{|A*BqZeJoaM&2h1YKjzF1O9 zd%Ke0u)Pxy*^cCHA|ynX9N?`B&8y(=%ap_miek^>MMbN%?bLlp$bn3akb}@d%}+u? zG})4|%Ki2ie1Bb39HhkHTMl?W?2bu*oUA$t3Axvg*0O;{8*#*2UtTKSH*8a|_Ve$x z0hv1Hts@tFVM)e$NIcXz5gZMDEBZ1iR8e}+J__*AumLjl_Yhg)^G6$pzX%4farpP9 z2B{fH8X$7)9e{)&hj@RvbUF!^I=XTCuL{P`z9#5^Dpg4T!m4Iusq%qR(GffLFyS*d zkPY+?(M7Oh(ITRv5$ss`*o6IrFC#N4GdssNIJaOw;q%EV{UcSX>)--PqwGY&CzXHb zYh2$n%(f65Bz$I{_Y=Oj`Q2hRG!m4)p<`d;y-0V09lOEAfK2#?&>}E@PWU>N|BYbW zh;08|FysVZ{v;Sy9r*uS!T60Q$ZV)&%XiY(6ge=S^fhLSUk4f84t$OI7aZmKpC;dH zr2kehJaKtUBoGN-8b5&&;A?<{k6w@7avJb8|AIO`=O2!_Lq8IbT@ zcvI9&W?>nON|SFX+{zQA@wE46b}Ujbc*4ai$DN|_YI(zJZpC{js6TbhL zU|b6G``Oo^-T@N6x`293$0J{Z5R3xrkQ2Vb~d@r2SOl4Ju3ABU`;+6k&u83uYw4jNbJ%ivoF?AWiEAxD$%8h;Rs4#|pOsP6$! z(1F9|zPmdk>t$f_{ohihHdBs5FzC-A7~n2`w-)~rL5K{#fXEAQ6i7R9q!It|yz9tO zocsXX#ovI&4-tfaFBS(O7z7BxoPat={-_R0P|Hlu&QT6L5DVXb5DWE_VsQwS@_AD~ zGle{toycGL4!~#QLL0UhBAQTFE^4tJLZv#aJG^|45QG#0SJJXeG7w^6H8h}%fX_xn zDIm^euW>H!qVj)x{31c*Z{3CAeYWzvxB0)ii=n6c=dwt5f!zsxR(N__BDxSR=!fVj|bJ?dr9Yj0ry)fDmbb2HR6&Zr@ zW`noam%enTEIQ)-R0o}O7oNV-`ym+ME*3;!pM419{Eq7&w!aU-7(=Q43>s%rISCp! zKLvosXYlQh2XTK3!DiBYg?RK2_#he&F!t*pGje^pyy^5{p|1#cv2__GLhbgSpi;o- zUGj-K=*V4gpe2*r!1D@`br27`cu9vti$$sTZr9Is5C9qn#Dbdy?E&Y)Ph#=zwb6+> zsI4w&@h0uuVF(5}Q3w6U!~({8G2`KtlOb5SP_Hgf2PNKm@g0Clajzlavu4@cfdhZ4 zgC6&{35&VzaU(*oA7<&6)IbPUWYD<5OIln|R4=XI>OCQ=|6}7wEViZ-{NxYC;@PL0 zqlMJ6&U0k~f_pCWl_NQ(3l~21)>MTyRL?C|;41GhKR;b`PzOD*LfKt?qkb2tg8;F3 z7H}7UN)g|IiedJ99f(B(M!_NiK6~1xVdVfp*kD3D2Z+T0CLId74d~vc)v;I*Uc-2B z9D+&5r=CHIMO*;%SS;v2F=QV=rI4U;4!FD!0znvyHn@xwi;IJGWMnq`d=LbDHgCaS zDL9=JAr`GFlwVZk|MIlrq;CB34Rk3HCqt^AJ;xuql;1-t zzd&>2pioEju!ztbkc8S^_%0X z0;G(1_t#A|%}gL=L^E$+Mm9A=7Q-7*w_=~*zz$@DYeWAe$ySxh5c%ptcVih9!7#tY zs0?%|{nxKN_;IDx5?~Yly^KT)N+w`!YhVaQEk{f_)jG zpvFLF$r<(B)Zdp8ieN8dwO9-vvXfT@{~#j=R|Vp~vk8e#%E;v?G(bj_oc~5fuoz+; zkR;oo@%=6()%(7ODKezmmytvW%6>?Nlo2m9OW@T->Oq&1N9*@T8QGG~BME^f0Wvb& zhVUE(!4R7KIiXq}oWJlK9BIFL4y%i;^_+``4D)TR+O24`JIF5O|C5Y7`Pp;)p-YLm zBSf;3e6mY9@ElrO5}!8aUhFf>ozh#gE&^T3vkHl^+UujGm{Q_a-s8+FN|1?Yxx#ZN zL#l5d&5uH=ty``QO0k%}-Bx=SB+B+S7Uyqe&4U&jN3OXneKQuX?Wj4e*S>U_sc7e0 z-xNf0)mKCrAtQ@1-`_hfUQ~STcFAFGEQVKWV=}ww$Cmc~tBZC3Gljw^4s%+#+k!Y&B1Mut@9o`Kqv?$|i_i?d!ow=W}B`pBz- zzmO4NSN#|>RgVQeI8^(ET=-YL2VhQ+0oE^9YJa6C$hzadoMZu#@;AK)5Mw3$a;Wx~ zl7jZTqyTVq>wv7>JcOh?%qS}T3phF=#%e3+{plg!CxoQ<^wmx@PJQ{hkLu9M*++H6 ztW<@}hu1;YyZb>jhmyiXY;Y_oG92V#{=u0r%G2@N|FbhutPyJMlGm>%GpIR=u{MfBo=0*X z#aN~s*46f%wa7y?$KmRRAPg;olQ9-PZ(|Cwp8r$tQ5p3BTL{(-!ABgbb%_Jc#9jla z=V=@;_ii}Q`TiS8$q1lA^d6{x>^;mGPWB$Y>?{G$Q1i*Z?mYxK8V?TD%pS?@lMBtL zjd}K+$vzzYygW*@$x-i7$R?hXc??HC-*1**{DinYI8-~2=si9X z;yf|z{A2I&Ym6m-LuUmMV{ITF@&WbyUCbZoKt2E8la%eNciw3`)&-R5o^U3Bq*PeG z_*3s;f#J&d#Q|B**L#YH0EcQkTIiwQ3?+bLY?X6FQF>z1lXBK{n^UQNN8~~R193#} zfjCqHVyp?*rM)K1XRq&&hKDfn{iAoyroBRtA27q!pkJb z0Q`-uL-za%aHuvON5OvVOb~}^f7yE^z9Lxc15h0;@GC|rs9%NTO{V*!|GJ+4g+{*O<@|AX}jkbnJj4juecyZ(o=V$xCQ9Cj& z8GmbB+W%x+eERFBCXgyKk$0dnHGs-AfY)D~P#G@O+s7)?#z?|LXP$%1zZ{01?dM;S z`}vprHO_>#)qVn*7cqaIe*r+K0LFjFzq+DuBwIfmJQx3S{>3Pt9Nf(DkNFqyT>Oq- zw7?LL&9TZb-R|$8>h+r$Aq3;db7(di zJ^Xz>E=PN8ATs|#s0=!Z_~Y1Pl{r2F%X-h2kyimc7yngdG@EbBG^}yV6$9tc1@S;x zGFQru-uVqGxk-6XLB;-r*mjRNFuUb2UNz- zWI&1DdvdSo$pvi63v5jAC69#~$A}BqjTkRG7aOP-FE6$X&}pO$ttCHbd%$|Ob|nd_ zw_`#*`su=Q81quW>afvWtZ$Qdn|Ib{v{ak7CY}{x?yM-U{Mh=gEa~G>0Kj=O1aUrOT8km@>eFP-6sZcH$*>WeR7Zn78Ar*^37y&2n zyMTbION#pB`|v^9ag310h3PfTQCU)ehmJS`^F@WoCPIkc-l$_b&#X{mTR3?CUi6Ms=-iYZp)%s&`a}r>9@+RyTr2EO@=9hEjqXy^y$SV9LVmtX0P_3Whwtu_{`=31G zVfwE=;=ww8#3OJU@)W6B5tL&vL~9d{Y;9CH)6fJ3>?XVap|!aZf@JM?-{v)0oeQFXeYRQ#%>mNOH7M|B^P^%Xp7ZD9AXkdJssoKCbh9R7dR+Wd*?KKlfW9RQpz zuRuHt>(Dvp0#I=+EQJE-I5kSUgn-lKzMm`pI)=u-IbDtt?LFa*4o;W+{05DR*ATqcIK0dw!Ot2;CqIJpHP26fVcJIsQo9YI7pi z?#}Tep7RDlDQ`d+*^Wy?Xc+=K60P(slRyjLhP8*wh-nD!42yivHUwLYJh)1D!FPzNU+?aiTpzKrIII2l9NkVM`X%R(O@^hAxs zFn|r;)-aGO`JQeN-_fH`k;$CDtZ$gusKtPjF&f#+6H$ugKR<;*oQ&O%Qr)Phs{Sg_h4z^<(#* z;hZnKBP|cy7^_|u2d)6*Gs{2u{&EFSF$+8jE%X#WtZ$H68}D`RUCyJdEpapmd#_FM zfBzJwpa4S*gL}14+C@O}6^!-Y)HiEGD%|b|E(qd*vwnCo7Gh|1e;tpi#kGhrh14D6 z@F~oRN1^+AVhWs$p$lk>09jjo(uef*X3#4FobdZZ`9(_7vvQ5PTPLaQwd)H9)b=to zg<5*H2L_@toiAl2A9iPldt$N7y%v4JCB5f~MXn8%#va14X_}F-c58Yy>@o`4g2h6c zHa|qBy!_68si%2YDyN|yG95O$hePD9hrJ_raRJ1Q_VJ552D%8CL?O%_v$hc|*XWUf zr}A*l0%JEC`b@{U4~x6<8YcbfxvX2fE{vG^5E`d?@?aFzok(#A0~GX4X4LG9-DfqE06au}zmeUIG0k^Xegerg*G}VYfECklcOMDTGk~% z9oY?ym0YIf_Thr-Lr9&Z2v!OG#N`c$Yhs$u7w#>ieauhZ)D?ezsu>k+_1bBS4?~tX@Vbq-rxGldlBeH=1)4$CPVT{2PZUOzs>{AR zP{$ZQ>gza{OxR=UNgAr`@-;POPZRD*R-g~})jqu)S^?&*KtXGK&_uSY-XnYd>cji1 z>1PI>!JLK`UAb~}A=(|Dbh_>?aBwQ?H45=m+E*?YwZ9MzV78JbFGM@hWD^KX z29Z9Hz!7N#OA(tulrr@%kq>&R_!gt#ab+=JXw;z-o1m3{_;l)=HC=yNzRMF)J$BP` z-n>?Kqr0DuuSKw_vc$Thp8AkR9MmW+OZOsZuVL=7T#-f(lWikl(9(ISVbYN5;xs)b ziSMLUVwK*|i?bwI)Q@wk <*&^?*@UeO^(GIuS`eOnJzIi_d+W2Afet;rcDV11g~ zI!IwY@ckPvPg0c9CwJ{Rp%d@bNK!{3_o8O8J_V|auYE6k@HSr;b#|Z$++S$(ozr0P zw#IWZwURJz2_jzwh) z%?~~=f@+Cyg@fT<_y>{)LU=h+eAzB7;{-rRx;zqg-GR$pNetrkyrW_ z*BNX=UbES3VZxs;pS_bUcux&i4YUan5vgKKc42T(~O+O*)sAK6SS7= zF}t~5@h&iQHPdl^T30W&Us3mL#9qQ}HJqA3SD}j1$QPEkGSpubtxvS|W_a{D-`$LlB_tQN2d8z{s@^6om^^d&m?m_yQcv7dS5>4IW1;Msp5>_J zw#x`gieqEL#o2HJM@%-SaE!|+9t+r%pNy=yokkRG9JD@sBv-ain%MOuww#7g42rL) zEO`)%2Z1`NMGCXIm!e5_MtJ--yX_xZL|z?5g^EjH(Lq;Eeb63f({Ie_#GOuaseU0- zWY@;uyJ|07H@3_}iO#3uN$5EWsfU2xo@U>>r*)cYgkQaCutjMtPH*!Tb1KR^ervGV zOd^=t5XHc^aJ72sTrW?3+3WTCd-bL?AE}>hqSB!}Ar^E8i=7t5*3<_PIo0)@3ELTb zp|oi^Pf+Au5$Iu&x&>z zF4gd%!Bo0S0z2<~8D2jpE4Z5d()D9a%6paz%8h(Ot&5;Ds8k)|7))`RC_&Tb`#=gHaUOhn9WQGQbIXryw_V!*1hD*eTcce&g()0Uu>UX9G0_)UWh_ixwD+4Pr z9<);UG;4&saSEBe5x~@93#|w$zzli05i&OI`8I}MRMu_R_rXo?kk=H!a~+NoIs9rl z9)!N?+$vzEJ~eG8eNK1ZsR1wp-1hE9SlN^(I%O!|z^w!}$k|v?)>Jokaqy-bm|4Y- zU;|FX=Dj%u_uc@XjSW8=OI=0biyNu;tRvXm*RXallxx%by_q#tvC~-%KjBypWodsa zV;@>~uz<54Wv&nFs1qfHuakzCRk;t7e_)qAe01=UHd)wYWdL=oA0-N$7wRYD@5>JN zbM_Bs@&|8Eg;VzFFj#}V*uwV+H>7EcLxap5)3QwzC~UYlLt8PTC|-l9Qk9voWb8IX z)z@KXDt#z7;7@Ku@w)qQLL<+Udr~#J88|E8j)qyV8Rv?GVq*ENu=q;C{4ZgK$L6?Q z>WCD`aidLTJ_`dURk<;vz(R#1IaR``{K07YH$n#ewcmN)*)(x730W9Sc=J7i<(-zP znniimgXT>wW);wGYlupPZOqIg1uR`7Nh{)#h}r1SUNxPrtXp<73ALN|9Gv;9OkHSA zg4TT_(6Eg7)ph$e6Qe1U$pmaZU5@#7Gvy;zq9K{}Cyih_SsktCA+IP?7ufBV%=wLP z>g>Y6^o`PAWZXon!rN+$Q=h|@pFNv6*sKzqX`k+0=|uMYt}#aH-nmq<^R8@mV9HoGrVTKa%0*`JOin^y zdjD{;bT=AG4?!v~dTTGL;sAaB%h@dET3@3>H-geJ0;sN}G<2qs+W9f)duvii;>>v5 zpo~y6^%d9fr6+x)g$ci~3A30>05e@K96lDGz%u zST;39gro>qR7m8><2Zxr+$)2R9jCl+Z6#4Tp4k|1zO5PMG$ijA?{|&e%T*+L!!g@Q zBdVl25?Jf8*N6gkT=$e`?8iG3zjpe9-zSg0yOsA>|{!DSKOmR4gIs)kWX#7ms!s?Nae?%4P^e$Ie!!q{P?`ynFBh zqZoBNJM>*KA*19|%}h9HKIM|=>OfE|MLN9;B$Ngr!6GEzgK{?Aw>uKAvba#!lrL62 z@Vk8j80bopE3dsCzgM#1ewhmHSQ%Xl@x5dg9XzAP4fnXymP3RI)^d78KOK-5=(tl= z?5=fxJQD-`A!;PIU!iXJg$Qen< z_h6vVQ7WB@hH-4Z6)X%jKS_AmHDKL(@zlT-pCTBzMRsQP{I; z*#)hl?rC=%_F5A=iU(Ir$&7H*OhQYczw-k&U09``#LZGkc(|cCJ#5g~snUmw@KMis zZ`#Ucuj#rw>iz`g^s<{0Tb#{M(HOj7KHSFq+Eb6F!acmr{2s~VwbuXOruVY zQQ`TV5UJbIwz1E3>Y}Z=Gf=QpoT}8%h(yz~d1GZWU%p(!U*)#v7+bkh0efb|Q`eRp z%oH0)>Qv>V8SBSRm=BM4v)itrg=cP($Dg_xF1!)1P6dB<|1A|Cxcg!>-OZ2oY+l`X z?oqT}j_7)ZmYM#x| z%a$bFZy$O0(zeYird%elOQvE4QLTW22*yWw(*t6JvwQf*VU1rh+gNX2DlxRzE^ zyX)71(2(4E{$kU~*J3k!d9!P_hHEBzOe&yGhvA4yQO$lerO>&-1=BHIUTU)NTfT*8 zzF-pQ?2XCh^+8di!i>|8jIT<+imep;l)Pl(c!s_hR8RwwYnvfk0=;@YtO*7)4A@ZX zg9OhzopukfWQCm82bpPr85^9;*OzAjFy1{n`eGQpwJORD3Gd|k4%6HCFhy<>XBvt22rtQRd$sPniOkNxF~}PsJ|PmySfr4-#xE*Z|L<#^c8UQmHF1wAuQiO z)Jq^2V-PjrDyRF7$a|fw-fjx<6>fJBsrYI@=T4D1NS=3DHN}o~3B* zZ{5EY7frFWKc)3)LB?^s+MJOU&Z_f%2*2WWoqCn)FVS}tMcbNrWh zr7jkw3Z1=hRYFevnvB-X8+yh@<~kOVSCw2J?6_inb>h6ZheKp}tG= z3#=AP63owoYCL+R6k>g?C}8Qy#FU}xtKwtW*!V2I>EaLDys^l5C9T7LBvW<`l#3{6mW52 z;*Nk~Fz>cFX2Y5m$m^8I_9$wKZX*inrW!Ogf{8Ca}j@afN9Iu!tYjY-V26oNJ)>ogA`pkh=FQO{V__Zbv% z0>Kyz86W4V-;}Hq}~6JzFKx2MZ<~oqIQYw+U|` zjQ?zfb?(gCf| z@H6_TjEq(OpcaY9%W!X;J_-HH@6PaAkrH~6UsXccjFG^zf_pvi54g^?+~f)I_Ex7% z!;;68Je6$ivyLKnk75mh$M z%pZ4IaVtG6VRf8Ug7V7M(1=Hm1t-|A#$CBl7!md4-UO!srTop_i0JaN32vJ>d7Xub zn7Y*oUJptI1N_L?Ho-~$@Hhoyp2)Zt_a+6>04%OjWc=H*$+IPKig&Cc6F#m^3O7+I z*@Q+WP6$q&dljc-Ul^G*e~*;}V@b)m>l(_pvZ;&9amo)DB2#u(r!Kvw1bJYSrlOsl z5Xbn6?)eFnhHlU1Y$c5wL&=!ND?Tm5sQ=36_Pq>(?`HJ;RI0(x(=v2|N93+z`v(S= zrP;EXUopsw@NYKHV7y~?S&!;k(kK25Du)}>%G}l0((t2lWX^uQ8XkZBF;7&kqW#xv zX;e3Im7?-)lz+WZ5`W`~RaCyt_pj! zp?&$R&T_nZ-9l8+!|$_tAZm>!{ODqzvvUSS2^wuY(Ip}Fb4K*rZP3G2!GBq${?~d` z073M>etrFGl^XfeL1}1_NH^lyf)&Hj`o{3$0e{FG!`;i<^1hFMK%lN)Q0N`wu!x7A zkF9P`%l|B(qbqldv;Geei67TdA+#Ar4CGE=0ch)Z+57hx)>qp|M3X z{SX73O`TD{*ceE4$mRxQnS`a}kr(%_{Tp>ZH?fdnOpNJH4|k7i%L5RT96~lfcPZGk z8fKC{8^lXK5oHfdgcUmG!9O2>27UO^8`d7sUi*wVNLM5FQ?O3uw0Ce_;|ADA21R7- z6wTPO!C9gH*gklqehxiU)Ro8(?vO(vA6|ZM$rDqyKZlX~8*`a4k;Z+9ar7+*wU0!% z**%(Lj4P_-W2}HGl}7W$@v7huev~Tg+~bsmThhR@g?K}{#GGZY8Ch_(gjPB~{oAXV zTBGY`!qh77X}n+Sf1Sy>`z8R>+#hqREq$&aRXRKKd7x~7Rq#x3PU+-%@`UO&;~7fR zHI4#_1~r-4;*RIHEJ}NT(;SDK`U-Or4(YDhr-NM?d6a4rEY__QyZF>^tPO|MnlH`X6)?YYb*T~aSveh1DitG$g!DRm zsa0FMkB<&hpP##prai5xT@s?z9iaqYDi%X=OnlSy0jt1PvMtc2lxR}u^C&6twJ$5( z0?&KCy`-JMUG00jVcFW_<6cv&cY)+$cKK7zlEeqUEFrW*4(0$qI^UY7S-edG= zy|_N3xm&_xk2sri8oyO_d4GwLZ`mMBapXBKcs2~NzOf!>`!)LG#aCY$n|gsNwS9H3 zk%_&`-*32lUCjSO{h~t+d7(@AHu2*W+e(^y7%!>Oq{Ml5aU99@2;NKKF75>P2^j3s zO)Dl3o5QRKg4T+e!rCgrtd$_xV}8}G0}BbjX^yy0C}OV34P(o`?{rEJNyEd`w}gph}N*t!|1iqr{E%& zHkoXowX)48-8g_Bwq+EN6>Mrfj0N%kR+rHAly;44MMZ79tq9oIp6( z?$ojzS6p3}GQu?)yV&(3Fo_5yxh~Dr1mmTFaF$}&&4+xn#XN#*Z>4gF6{F~5gZv4c zCO{+<3ZgcpakU+>xv6p0|Bt!146AbQx_F62r*uh)G>CwdY@}NRK}uA*K@g;+yFma;IG^6g)geO*8L3?Gh|Twb74;MM_8bAOgjoAe{J!BG}EAS z-!LYKZE1}=59rsm4fAs`zKA#}6@VO;uIF!@!RqAw!TNK?q6spW2y?JVc3Xx;TpBC4 z6LK)mY~o=*IlU2Tj%1|k0@(f$slXz2Rx+iI9CKfeOtM$qor`I?CW<*Xt5ncq*}vr7 z38KS)I!T@*`XxV^Vp;bGKW?#Z6*preGlG7?t-@VLEheUIHU-Y!7IuK)6ZE|uJb$IWdXQ=fKy zmannBJUSIg$)0KVapB&$3}A_&r`_Tu(_AX;v2g24Gr#+WesGwF#`_Mk*w^qkZv=Wu zb-A-I7c%j@`7xAqMc9%IMK`=Y@YmQ0*&Dk4^Frs%qbJJm0g_c;R9dgqj% zjd6akC<``{pC@~>*Ur~pW-(WwcVD-b1$pBtP4<_0{B}`o3D?5FFA?KLTMlFe7hm>! zP7%%aFGPstx_g>g>)MG=pp)|;`qT(NpdtUzbH~<`=wgKaC<#|e{@vD~3)>6z)f3z* z?TFdx_4=0;_tXusZTT~qmqf`A2K^N((}|yeF1&*8Z|mgBU`X!c$MAUZv|2xot8cj- zk1R6TFf{s5ESXU{%E>%V=!>p=2uOANVRL@FTB_bnvvA4Ep26nwiyOB+N=NI7@DklK z<7a6LEDy#;X7q!D;Ng+6uL*Q~K(xy#UE_PI{ZNfMzB#)nr$?Y=Y&?7@E`npjL*@E~ z0Jc=E8bNL=@`e5?5<9Aeq9u(>4YV5@zKtKT@GKXlF&M$T&ryC9@6hU0-tXjXkr10= zKy7`4VHBDX&+*Cs4cZ*hKyCZ#=33Z{(|r8$R+EUrmb%TG@yoaNo3*}!?%6C%Nm@Bx z_|}$fek#wPv}AIW&1BR1S&M^PqjL~9_tHGKEkwiES4 zuB4b#5ue}{zT}A(DRav}K-Ea?0?A?Rc?-X|H^)lv!TUK>> zd6884;T7mNzmlg;W0sGl_uB2wlD2HzXzdv4{4|(Ew9*?;%kX0>^5wG+yl(GuZBqDi z?x4K6k%~DGMagbs)HZNyAX=%SiBI45y9(=b?;#A*k0tMF*KHoezTHkCt~_kq%!;yM zTZ%Al;N-qL%=O#=MHf`F^51M3Hhiy<7NX9sf1 z7kN-F=gUQgLvv22_GtH%NGBm0_oW(gh8gF^MVTfQkTI_Si9bgzucsK;Q-Z^z4&D>X z0r`fVC(D?J?~X|aE*}e=XZF0qxThNrAI{98xQVK_y}OrGxM^gj2jNxG$X!Ym1Rp7C zA4y@Km$)9f9FNTiy?tA}%*7qw<60nzc*&I7OX*9D8@Zb1s+*xQS@m@+x@Yfz>h}mWAezJu z(+(-#7%7ntDcK*X96wMz6DeIfFk>memD>3!qW^)n2n8ysXB-lmsKmIcj$pR;Ec_+0 z+?)9%7Z1zE{Yui@p1^rej0D}7z2;!-A2E*2AnI#AVtpgSs(BB8wS@|Q6P`{O0XsZo zl7yVn3cl1 zEumMaNtgEEnXM2sJ|iG^QPFdRGS0w*0uVOh!oQP{)6IlYX-6P1`ATjE3AcG)ZHZ_P zCtC-(dX@)$-lU{AA*aj(m5g6ekHandUr)j`_1IDctG1~DR0?-Odov%QET zxSIF$aKHAcY5ZgFSugX_=)T(smR)#)6H%(TDpv6hTy+G}8sW110Wl6LTDUPTqH){d zv2uzr)I-r4aEx4_5YADANT&GMX1yyWxJGrcovLh+U5{h5pDHtg&>}S!lt{DrK@7r_ zm-7;&!V}Ub5(-T~#R1`^`w8Wwi4q)%1ty7g0g2{{bf0J(gLUJ+(*{>?QE|{lyYqum zjU~|VtX?b=it>jj!zWzQNgB!HFmg|xkRdUdNG=<+nc2q^b_Ct2d(gm>vQn4AG{)rL zl@cfd{}Cmg z(jB*w4Z&3FO0IQcB$JOG1jFSPw_Rl$?z97F6?FA7OpoI3dAOPuOhx8 zDIL z&OORz7D%xjfHcRS9h(l)J-GPUAd|u=SQ3?JT|dKSB#r;IN?@E}@T9!x3YOOa?QV3I zdmt+rp;IC{0UlV1w~jEB(ZM3{hI2iJ8#73onJ~xcp>H>~rhgJHS%Gk`u+C@{$?`X-?od;%ZfhK6Vrg7Y?74-U(LTwhO*rvw2)t1bEkyV z6I3KiIEr2xU|MpcEDWyRG0F+^QfVofRTyx?xqBV%`K`rAH1S z(A=&JzAR+8Nc0pfP`3CV`m>-#WmBp$1Gga$>nJ+x9B+Jp2B{z9wDl>W+kGuy|Z&J0e9(Qw{1nDsB&p(LP32$ z242f`eABPbmfzPT-?e`pgp?M<(I(f}J##0w$1_Al(;LCHf#3$aO{3_Cdirv!lmzlQ zj3@R?iK~+hE{lx>H02Qo)oBtiB+nBaO61xN;rmFrT~e zaJ5|Cy&hi+XO5v%t(j|LF9G_B4d{)qhg%CwDfjSkK%HymT;$=mW z7|v<8imuBeA0_PS=;F9Nh`t}!;anO5eQM4&xVC%X>abw)!zc<$ z1C3mTX6YYaB-{+d-;UiT!gzGSrPMIEcli*OTE(7y1N>a5s9}(LGoUWK)%= zUa1atjOmX&o>9K>grQ7Jap7zC0mtBowyIcP*~sPBQq8ZvYz{bcP^BXbxW9aTI51o& z+o!L+_IhxkIEK2v!#sy8ZPbk5xzT#}|;8{2u1jK0>%hQjZ#Stz5c)p}&xAn8;rDVe3S`4IG*ZXn89)B-r&GG}Z{}vA|t?f;oVNQoY_u zhculR)uTKpxcL@o-hx!k@tu_7yH4%ogTIKUu~4=wiV^RluRfVVRp5qCnL)OmIV_x= z!7Lub?Z3Ewah9kbgx^m{s$d$SHA~!oQ$lf;oRVeWueoOnv-h>TIi}Y)gDuE#5j}$Lq-Sp*jSMJfH zITh;BKw<0MNir4m6){#;{TfVRIX4d_Z+M|!L?5Q53?_+9qwB6*=6fQ!O7|FYH}Xii z#o)`9;{0of*?AFiH{yMN!1cmjRMBLO)qHpI^#KN;Ju)Dv^UY;M!0bfCpajfL+y>v1 zyAhdufBE=;{%#rxZDbe6?K}7>VnK#dx|JqOO1F5$BlJsFpa_-k^_6&om8W-zXKKIt z&%(qU{7ZIqiW;GJhec@x3&>hKyr zHyiin5tJZz>KVgt8Zo^{u5jux9@6H6Xr8xOjmen^@}&;FU6XK)Z=%um`KkF)W~-wF zwzxZZ`^%T^fdX7QbLT>On#YksM78}pJjJj1>p8L`>*54$T>Qe0el4N~1DiQZo{ zLxx_@1MQLa-+`*(Ss8yHpK#Tc+flHN7FUBDd}cZsqnynCOp(0Yrl*Gag~e?m1*M_f zriGQhl`Eu7Bl#?R6}m&K#m(&7EEK88W*4*D>F?rsck|rsMd+6#r>i)?WLd9zr5e%rVi zgyUu2f*PwgFNjaqyVx?ZQ2!P;N1%|lYC^^QYSE#>eCi9)85!{o@>mzih|!f@mQH#o zY~6X$vX?tG%c75Oz}BW;aCho*mmcQY_Mqf9jH^T3Z^->RrROm%@JM*qDUevXS$$py zBCu7-%QJX+jt=(Lb7AN`1geIi2o+=a2P&z8c+qdygSkJ_6E!r#b2>=}} zKL`K4oE93BP(*9)AOAd_Ni1>M(Nvx5&{#uxN1)dO?n6;e(oiy1%EeYjl2^^BcFquRd z*GtmFmJqq-TWHM=?QFMw!ph<p9Ee2wK97uW+{UNPQ^ zNtC(Fu}ahH8|UuSCOC4%#^Jd&+pEWj^1g&N%Dwtq@UFKQGp`Z8?0zO_li1Y~hVyRo zrWN`_)>qs)ruBLKhIh2l^(nmRj2uMY_1eT%?WyrAsSPOH;qn68hK>uA4QwEBljQX3 zU31+Zpe3kG&WxiKZ~HtLfR2)QPngJu!&K>mVtxiu0i!fx+fYQp=S;?%d9rE%Y`y+- z)}eq`p7b;m09z;EqD>AGy34HOvY_HqiV-=e==h4LKiEi7Uj%RB^Q-jwPfj8L1;FQ^`lzG7n_ zdOv_?uwg4N#}#XBYJ+Kfe(5%v9~e#@V>P)gJtHr;PZEACHioINib4so5RW@3{^jts zv?=#BD)EA02T2|QrN4@-`Rw^#Zv|EIuQA~5jQI4_?_5QBjIg$3|7Lc<4!v^S!hxA( zYOb9yp88Xv^(>wDZ1Ur}!8=(N$>6CaO?zMOGjH&)PmP*K(SwPudvE@#c~(7s zm`9w?g1-NP@L9|wRwoP5=^J#MNORw(RMYt$yk4kz4p+_Sj3_^Ykb&Fu;6f%bAv4me zzu<37O-$kbATLsPS|b;`X4RS*t5cydet`g4-2dV%zr}ssX0j$kT$(E zM)G<|@wM%IDaN2jQ{tKJsyWn@5UnDvdnJC>?fB`uU3irf9ZLZ*VnxH}2l|FFe23!_0l6iZ~7YN|5# zQ0k)g&8P!Rw~f~&`DSBEZ6r2ga1#XvPe7XFEu-zIpY!Z*CilC8s@XnNiOaLC>5@0_ zCq!5iY2IVfrE>1EdcvchO>REKn$T_&V<(ipo@{33%zOPuHPhT@6Pm!UQ=a$oPP6Qn4AU$LFF!;iB( zjB?fczN(GWFy5iC^O3q{?W@?;UifD_GPNb^aM-*JyJTz~$Q0`i0}a!={ku(HzkhVc zd3J3^Xyf{L*D7)h`P{O34ep<=TcfYbLkw`rCb{;CKFdKqnadauL_Hp(eD~ z@j+xNM$3v-?br1m7Ev0rP3M#B|obM^{UZOl-syhmFSP zWjpxrnz5Hat(V}q7tM&f5Q+C&G1oC4*MU+``!AmF!d*m3aGs)EPV zUQ+d|MY638Fn$$awjH32pqWk^_(;jWF)ARR#@^D(F*7$1J{MHoA(1T|)P);Z4=g*L zspFNZgTiago|6z&kl+=L2Z_0RcaLK@j|Y!z`jXoEWw!(?mpU_mx#>kib}oC5`pY;B zy2@_`H!_BdSOs^`J1vYLEyaoLBTy}j6RfLqOpRk>(S{B#Vaf4??K6^~s%uAQ`0kXd zn{|X~;D)hB`6-An{P07K@}T@0jroo-ye=YWuL9Ied_QXj9*Z9ok_{p-2?_(7w_doJ zJ`-4aRbWsG#Y-2-ZQez!86X3JQ2oL^bt1R%B5eswp9nJ;mAiy02Kc;2zqpL4T}ea7 z!IS&}6*Y&PQRd>E^eC@EwR^(;DhN@Mo8I_{Ch;R-F9z$57dWYSKe-+L8QQ z;MPPKJWS$DsHyk-k-g$UB!sbQgW(okj9=m?4SE@#0xsLa`Rbp%1eGbCJQar7WI*e^4IvWky zmyGDaHqKonVjnV-`s$KJJffz$MA`$maN-yO_me*`;WRQu+Tx~gb0v2-C%9PK3dSTZ zYNYDWMDLiOx5TG@izjXyPlc;z93usrH>Vg^B-+j-gG|w$`-3s+Q8t*64$%+51e$3? z-Hg-AVB-2T!R?q1qO{h*r}u>;t>K<>Yzxvkk&%&+GUZc5^IxEM!opucVG%&@rN6-@ z%f)Mo#J_?}smVe7Im1OM!by4LJnx}g7tg$kid=<2<``45 zR8tIHvV040o=s_P=45haOnwTwcD55^U1xsSR(=mnL9cMZm~KIac8+X?^^N+K+s_5a zYXxvyWXU7D3#Nth8#D_2n+wA|3avN_tuDd!%VG_p=b)A0X}!7-9|~@pwi?N8bTRJg2n^%*krO zK&`^9yuy<7e_5-5e7;tp{J2&j@J-uRNAV`KR^glZ&i8&sXoabW7=oX{^^;l!KIDsM zYZWdHVMutqeI9;S0a9UVa4q^VbzV4HZ#tx=M>7qU1*&#Xm1C5oRs#QBtpY?I7t@`q zFoo9ia3K9NiRXN|9I}PoX{~~p!{z%u#mu_Z7D6rh=m18D`u;FxK|DS_Npi z+&R|vPc=Q`3hqa&ZPa&)Xao>O`!S~@ zsiYm>$3bcpVCXiRRl6g?sGP#t3e(E5Cx?!vVPnN#H=bP=aQbNDe{g;C1+g0#t)17) z11R#77vGi=e(3$V3kp{VYn)o2I2>--Ww3SY-MyGJ2#+>LtSp2^mxSwj(B^)tb$=6w z>-kp(@Piv1Wqr2}f3)Gkqr&a^a9W4q5|6{dBQ8Bd62KM2a-n`8xtWFjLBX?9m~u6vt~svH1@l>Eb-r9gNmO4>+cb2ZxHb*jQom+l z53B%fQR<_b9>S|H&Jac+a0Pi%YNDD>7;8Hd8KG6WeVw~3IE4lq$O1{atAI~iu@9AG z1vA^mHUQT4N`}8{rRM+wQymqg6V&@#%(@x{C5&SAxST1MGo;SQ>oZ&_ zPn?02%LNpmgl{L=sZbk+*Ik)SQ)XGCTWFct>nof=F~E1oq1(zGa6Q;gg~Q4PSlfzS zBNfMlQ6LMX8suU;f_)I`FZ(%tca9#y+75O4oI!mrNm5L9IPydu-yY#FOp}2(hOxHU zdk|i$r%+O8ze))$x+yl8ck4H-?T~zx9NE|TC-V4pvD23V*$^gme1c>1nC4$hN5DCT zjYe4S>RHbiD6#vAQwQr>1sd#51|iHF{vYRG&(_ra{qI0h_8fXB=v-1Z@Q72lafVYz z^`Ddu(ft3ebV&67vUKP@^>I@6KQA33{*OzC&T#6S!w9DTu6p(Sbfk|EfpF@8g74}1 zL*XM%o$i=O0AqIUTp(-p(%io)9n#zqiCQ~XVi%)jx12?S=>jp2PdIgmLS4tDL!+lj z*^|__NH2v!z4)^=K#Pp)>sL!a|zI!iA-s^bIe|x_JudDvI%D)+$Gu zP%QxdHVi#k^B3cfJ_^w5~)q4S&l=^x#T^(Bu=QR;TF(RDKL`LFw> zpj>&z`0UCJ+3kL}Eoan0sZ^P*QLfZR#yXqQmYq5mMgF~olM=hN8Yp@QU`BjCMh{(o za>R@{SMUvhO`*()8H1+`K#83d=RAxVp`{M?qCPFL!|cUES5qe;EZ_9$@r0p=P71!y zaO%X<-^+V{VoJx0W%T=a^%JzCFT9Q2S+MDXY$$O6I_fDi0(~(sG&u9zbUa`19cfPEs1nNrMGxK9AQ=|}-ItLI zdRZP*+ndF1{}X!Xw8ZX+zYVEgWoAF_v-@eZz}OL_+^RpZ?M_C^*|~Bexq#^cEF!aV zbAOUtz<@cSW&eLLTF&n!fmUxQGn@VF5ysv#*MW~;OOV|>p~B1i1cB=4@r&>RM$38O z<@b+$c1V8^UjDxmURI=;I!m9?C}N7hZGJGSooyvHhmcE-Oa+e4ky(e=%DA`psyG1^snyFA3>KJr-UK zX$&W$#r09|&gSgxe?Xv~^w|NzO9zicD|eQC+u~m$PyuH4eAurzB03>lK`1l(s2>#= zE&DGJ&)|scu8Aa=&uxnw_1XPyv?wecAyAK~cISkb9;o>gM|5_ylqT#M{=&>gW-%}H z%l<4<)n8 zHR5XI|M6(q?yFaI-|iQ53$pqTN6QH_+q`BSBD}uO4?G&P*nR7;_+$&tY4_LBLZm0h z3kWZTi>Q$}dhq>77!i&a5+5pvFG{)J-#-#wN6hRab_8U!0DDQZeFuP<4ehfVz|?77 zO@H{Qli`?ZHz;)lO0{c@M$v*HP$B)OSAP65TBPh9k4H=D%ErMifFsHuggZN0QgbSh z1WK=vI)On&R?pCYe$-QD_Sw@cj*eOj>9^>LaD?21G>4Gs5fqXi4~u@RI8V!5=Xoewr4)h1dNy!UDkS z!h(waBt*_KhW@ugDu1s+fWQ7MM9#zOju{YVg-F4X5YdICSYS4tj%09P*nNZWC}+>7 zv9S&SyiP758Jq?^*-HgTLytlWiu24Mq@k$Xs@mVTp9a}|wNwti~I`3P%2bz1y390RnUE}2t`Xui%UI1NF}gi1R{3bqS1g z4qm4|i$WV?JooQ}NPrBABz@jOq zZ8}K%X)&s>rCw4B#HL$=wx1pekz>*jrMLcn2d^8T73t+3lV5+%vj_+g!QHh#2ob&6 z`y(o6+O!+{AfzE4M!vA)6bo!xG~Bj3YCpZDB|Po&>$Irn8))2{59dX(Td0@cEJqR3 zw)Fl$16V5!df%TIh!(M0Sdg%iwy2nCU8MGrnZ5r$H1eO(HzD=^$;| zdzdtlr)}B_D1QF{%%(M^IR<7op&>f^|A)YA(opK-`)|lH)vx|m9=E74EV_Vy!(3S?g2=G zCp^C10fAS{gF*x4!Xl%dTKh-G#V5cBrLd2DPA&{5XA%p=$=M-^mO<{ao1Qnfw6?uC zzRL#Jrw#NS-DT5eo&{Z>Lnb^V2fMW818x)Wk*8&x z@x$=`6HX2rUpU2O=frIyI*uv^^CZkg{&safdt@#*_QQNB-|YKQ{GRFG-A^ znH52HF&)%?&|QrARu|*>T@3dsjZz=qnU8!QR);9Dg)OZ()%l9+)JR(Z^aFsdwJ-#Q z&w#F}ynO7go0dQ&!IRuPwH`nc6h;T_GUBVS7T3~!d*V4mkK42hfPMhb_3tXKVY?Ur zCwI7%dHtUKDWVj{lLNl;kfQ`jGU4zL4ikJT38GXb|r(Zj+S2D;`fasJu{M&gBmuFtql zjPg2)B;Zz}N5u%=G7>T5@LEVGInc)&P9*_mI&Mis8%_U!tE4>OHUXe(QE9I;pzAX@ zIc>;CUbxIYy6?GO%;_L1$tgHkgDd}b}!Hh#7_P`WJrcpE=2fx0B@ z#9i?aG69}P_lkvsO9GgH0Z{kyGL%tW&NP@Ra+oaq_Y(kJi4NM#0S&7kO#q8ZkR=dS zm#aB%3PHo_f0_V-9W09jV6h;|GZUa{6&hAQo&Zp2PHoCrMztk7AGDbR#;6`2>h9@> zh1G+oN*u25ZyU3Kp%Xy=(togTP-W~uJon81X&e931o#PZkS7O%J@Zc|fKZDt6q*Cs zH@uHkzX$gr?(++&zX6J3By=4CMZM2VfFqzNF}(b*kOL@C^x{FlN`B$bs5jI6e2NfU zPk>R~0AWpeQY-Qr(5v*l_*}@eeKc7bBoRQNN3xC1U1^2kbOS zLf%MTC9ZO-+X^#>b!%nXaGt4A^R5`kxfnVv>rDma9;>ayw|X|HvK!Rhm6esDw9LQ0!d>4{-6r4<%4P943gMQiC5# zAydz!;;I-uhd%S4qA%bb?;F5;GYlf5cmC;_|0u)q_?iE^eFM}KiqWKoPJs4Sm$MTf zGYz@C^JSBHS&;UKCtlkLQ1rN&!zvhN3dtT~I@_^&g0dO21y4*NX<_#M5Ixo-QwRbS zJ>55eFts?lx=>uNh6Ju=0^9i5gNSpc5HUX;Ygb&S#u1}hN2TZ9!B*^_fuj79#U`5D z3FGn;ATn)lthh*2qEa~CSPlh#`QjvLj`tvrK{#9X7KAsfEufj@e&i(Olnw5{ou{R@ z4s^h%+2+l>4GV(Scsd9dm*51hmcqY&zy0_!$s*tUgogv=)5Ph8Y>7`y0}lnL(?!)8 zq@xE1*9>eCupJmL2+Rm#Qja(ueiC0oW*vlosOg?8u-q&azo`^QL3WRhV} zd>+U-lKDk!_2#vFMeorPc+$QU4U>BKI5NV^V(UgLvYV=O@|E_76#2?8ClssjD)U5f z;n%7KymNVG@{})9-{fuR%h7zA_okBR`qi0NSXu+{hU?8Yjp|=#GN&QBbD7;y%Aagf z9jPQTFcGaY8GWRB2Yh)mThOLn8MApCHS=PzcCwYi1VWV@*PVP+TNKZSLU+>kr#>ub zn!dtPApkKU<=Bt$4~)hLr?q@PWD_-$ot&=cLCb!;Vs3Qz)wU>)b3he?VO#f`ZM>b5 zt5=IZgcsB&lIf(kK4un286OOE%7brDW}M+sMkTavtfFccnInaOZ- zS@!P1a9n?7HgDgug7d*EFm_cgy41~;+ldDw;1ebw{i!hZ`FmmdTVDE4Yp=7zTNKWNdQQ;3y<+> zo*#N%|NG}nca?Ex@$oI*vB16i=<2)k&l@dVns4ZkTf9F#Z+h!07A+s#_{ZnXyJoMC z*o~Qs5Aj-0dFh9GOpP!mAav)|PWAjm;8ySyH~lq@@%JR#b1vqDKEQBlRB?y!(oc6@ z>>gVG&c!rYh>(W5m^|^CAcgZTrWQH^K(dA2;=$q+`?CS2rwpf`T})=i0Cdb#fqTkJ zhdgg~@P%Pv!(UuXP5Q($VZ&2_n@xit+lFkmR;Je+xK@6fNR9=*SMqLX#js(v`5Ao+ z+~REjVM9RQ4g+xtOTEN%af)z{GjR%lmo66!4DbJOoPvVG1#mGdYR5MI#G=NuF8Rq##7&I@?nFySky<$zl4Mhe-*f=`c`t14+tCTry~3F)$!2=ybJ*16jZF> z^E{DcwzkPc_g*q*&-Y|o%n4nK(P zIZbn7duo=9Lv7E8z9mrGbAj6FEo=F^2@V&blA(_dF@FI`2#D=T<;;uY6W#j{h-rw4uw_+foxAGyPXld22WIwOEwEo^9nC%%nR`zJ}?R4Hms^#mcw3>IY zI?9cY8sSjBIV^(y0`HDrDAJk{9Yu>5Dn2@wzrhsWtt|qej`CASTOdI8`)q5iDn&Kb zZShaG=Rg#q+dtW!WA{n9UCxT$qBqbB?en5H(G%gHrUFFtRRLGR@=!`I3oLPLiy%DDlv{D=!bB~>JLm2jw9&*WP8%Z@S%9n zLqm3yAd#O#cFNq%r%4Dp6?}@k%xjdaf3iJ+2)aL`?^1J|arSR_TSmO_YrnHSfvF(I zgZ4`V9heHH_>p)jD?n^09}vCRGQt4gd~znQeDpWAXCSR`nfaFhAPI34L0_*Vh>=-8 zYkR&OMn4)0fa?8^ZO>qfNIW(3vXasJg`e6f{@(T+Ge3%;3qHSW2_zwsI|l&U^K1mY zTp#mD^r8^E1GeW;$gaAJJoqn+A=p${3``%f03zrX#sft%NQCwrp40T3-#y;Z?P2Xr zduMRezCE=)lPIu{NwKF9beQc4N!fiG4LJZ#v^P$p5YP*41B8>^)*o!ohu^>8#)be> zp(o1;vfFZ{+Y31+#je%32_kQF91?!p8Y^kr1$JAII?7+C0)`6F;XL&g+8z`UvTlEZje{UH?~)kZ=^VcdsnOMA9qg zYiVE^T$HBKMyTj42lig7`g2o27LM&O`88hP1;&w_zh}F)MUpcC9UaHI05$mO`SKo?+8x!Q9Bi?0)1Fg6qf93dS~fa{aX(FWaiA1i6H~+Nw$|Au%!wL@|LNfgQ z1Xw&;d@E|cK)T^Z+&Xju#Ar94(FKFHT-U(}%eo#w z77nfLXz}%%ESy6DrXq(29guFgmg_+X&BE#I(lWM@o!Xu;L#2Mgz~T#{3xqo1CFSQ< z*o9kOFby%Xxug@!3iG4MpVI|1ofMG87fcsivfs>U2Uy{!M@R}kO#r&w;pi7|XJXc; zi!WKtt;o3EOnOL1htpOR7&D6z=;*k8nuU9hbR2;DDbw($$NfoM8bE%ZO*Z^`hV$zU z&I!x=e5Rr2%;O%&H2nOym!&$&G)Vp?(_psqEafEAK>37M-6t@J%RD&DTP{56X|#zS za9{enOhd`7I0&}8+8R-`yyi61z#iIu)HNSl(2yH2I64Ngd~S74mD;|Wn;*`a9-Gam zTUcA)__zsJK6fKO!yflQrU4EyCO0M++)TBI4Ol*#YOSnRg5n^9k~CnWWiQ_gbj?dC zkWcu??Uwy*rePpec$pOQmrTQB!bkb93)Cx2kGtlHUQ_?_X+QtCcSp1*WB#q>!%D<% zHVv_SjyGB+>E5@_Jno-ZkU=vI(2dr+=Aub#g=dgV1MJgo|T$>yc3F;Mwn-At5HJ%SS#&&1mVt!*hx-W%V zKJ$&8KYiNY!!}wl%SUKTIQ~zMd*(kr?nwoH`?$}~gtrjR2OjtJZF%|C`LqS0crz=7 zl|rayzh)W$%O?%hz3}c6cG!I>bfZ;t=%at{^n~W?l*gRYOA*LQ>pyEr%1xOUgx?5F!uR?1rzU!a+WHYD?(H(CI;n|#gsHSoB%x0D)a z3;>a(vUpBk-t6N=b4|sqed~RCUkbH+q}Wd$_pXCxj}x)m?sDu30qi+YQY$0FV0!tI388%3a{T^kkz2 z#GHTgxIeah*hG(`4eY1x48;5Y?FSt8#=ouQbGB;$_>%uN;{Y>j{?jVHo%hfG`-@A! z`;R^A{r{gpN7(;=4;@+fe-%1H{l5eqY1s27i;Q}Q@EN?m zm==R4EOdJB0tvVIGG#x!qcA%krU!ZBKa97}#FL4+P0vtSwvTt)?nB-^Pp6##5))Ts z<|Xh^v_XIZIgp3>b`&h!Mt^M)pZOV+cv7?-^KFzAUuL|V^qB5GGa|x5{>H%#~&1+AKo#dTm{nACO>v{j_JJVL%@PD{ryY3`j65s61@?Mjxs79FCkT z?ZIQ@HM-nAb#1GZ7Q>2%CD`od8G(3eg57O{+^Ey>qFSb(IxLMfKRUB;dtB{=hTB^5 zdbWBVh+u5@Uh0Ar4cu5RBR~AGW4pd z*P2pX%14e|9*cqDx%+H9&+n#&pd)!m7TJLfjb3fOX`T=ipR!$K6E~1it3;S~ii-3! zVcSn=iS)=Bg1cweFt{g3FZe@zGGLd^k?UzgcpZVIs;hcPtTXV&mt!jJ`H-pBYX>uV zg#5691oNf9!&=sIplE<8_ao)K0kwsVuj-aK5ArrS`YfIq1(}K1$*Wv}+`HHhIkS$b z0p7nQ%>WQ?^IChfw~$eAXMZl{PWbLp%}1g1mkom)Lm$WJo7t~Ui@1H)y;joyBS6gxI^1Y4VrtRf{9=@Gi z(s`R%M#~!Pj5>I$QY%far@Q6)j=s7DcTvzu{YBWx zqmld+80|?5xp%2ivVL;!a|jlbKO7bIa!}^Xolv4qA3XI>ftsJuup>O$Ib07tlrm^r z$rnpIDohkH-Mf{k))|oq@eD&-axc*^a7nLTOp6GDL>o-dxrQ+#p8{|E{bos1?MG4C z%L@cTXx(p@!m+Q-(csOhbWba;K8Q1)BbJ`%?iehOSrw+^PVqy%H}~jfU~u|D{o|gY zw>YHfm^ZJw@%xc*(uDSo;N!f*>ounD5bT$4<1FG2G^KqJK9wZT*(Os!D+GUMfg2It z$%dNVoGV#M-6(fjLr9L2!7LfPxVhF9WL@8uD5_2`Jex=DIcWk$wumReW(0X(>WB33xrr>@U&$IKy8qPbknCFWtvM;I2kB3p3%ujy z?{PG9RDI4a7JDn_Ava*B6OMVRLt&Q!sn#*ZS$o#oBsv~2)wS)Rq$^t+ez?P{8%XSIW7CT7TppST(z+zgWg4OM5k z-)1V-@axfPRH~`pe=)*36p>djyrbCll3k*>!EgFDT6x9SL(7;I+jaaFk4{f`0|jmSGOW<~s7gbA;`;D+-f?j3@VZn-W?KIt!rJ)P4=<5<`fepyU$(8k zTmz2P6k2tAV1wD~w+@CAe|*lp_1!kN*y;1K&F3AT z?@X0zJM$?H?*sc^&)gmOI{o#>ZZl5Prr)h^bF0fS)sf#-p42%-e&y}@*ucx zS7d+WhU9w1p>Ks*OZnxJ2ODk@Y}7ibU+u?*4#rAyw{6(wB;0R&<(hc>DUP{Z31y5F1iD9mtwNo^yE>-d1iOZc%nD+!h$ z3CfLeuRUrt4o2^e84?i^q4`BwNwAl+yP!fY3q>wxXvY=hC6J^qW4XTffuiX4Cjqri zpJY4)b0aTZX&ea$Unyegmx7D@krdTr zbNG;>#<2_4Q65SMs|g25xQivIdk#8;xRwUX=md?AhrHhmdKw+99v(C;%{#*<0M9}1 zWgq%J7dv5Gm<5#r0~h7P%aHXwZ#hLb&ZnWfs8|c*VauCgte^b*{0$IDiPli@cg6#3 zP{XnJ$zxDNE})TODj^a{rI!3+FN!f#-2JH>?o;KN=mP8TDBQ5t2>wG#N6@_;kleo6*LD!O@KZTB zc&W|EAd#32e1XsUER^`30gB;T`mx4?==cGc9el_PHjhKW9NC$dJ8EOzR)U;Ng5i-^ zOiYj?vzR3FqDpjPlH##%)J3H_+A_!UMv){iUW(1^u!~&=74avqH`}3npq(9#k>iMP z?u;OlX7(W^MKrQ3<+q8?2K|TyCAQ&XH`7$NGPJ}a&9t~%!NseECu)salvYH{eG0bG zHyNHtdVtFiPUzZM5&zCJ`4+8FempOMcFJ@YX39iLhe(Q#dX$fJG%`)9d^-*MtHe!G zGMWIay}C#6D<~f$Qc|{4Qp&x*$D<<&BvBLk5_?4+PN=$PlHOFP1C!(vIK-#HbAxql z(!6dbQ3#~3QpZ`6q98MK6Z*nUbCn9T5tOcydu zA}~mGE=?0zLDiAYloCLd6bO|&$W$cDirxy-V#-owX1C=BVIfm!kn!BC2RblO?@eL{ zYp}`TWhW_RUAmgx(vqEhIa+)(Pzx@ZQUoa2%d!J!mMUgz!o^I{JS*;+rcN3e+qPPg4`Z1y0l|}KbCyVGNi8n=eaLP(SCk;EuD;>;B*UZm$%D*d` zZ8*&6QEHpV5jJp_E zi6jP}N_iibwp=LN&@O9DD-(4u>l7}NXpW|kL#Mt=M(K>i@RbXZqkJX2e6AkJVY$4k zrF{ATh4U^BuN;W~Yx(dbDfb)ulNP}LBO>UZO7hP(0-n7`I1%UnO(`I-fIBD7&zDgI z9|iNyoEM)EK_QoCH}SoJ7Czi) zDyyu`s)6(3+l9}bH{YsgIk`OR>xTsMU_?-8Ft6#YbMegl0_5)C(Yxhim-chVs^o6n ze!~72h)au3A+6Y1>WTXQ(Ds&LQLkD)yNQi`pfFLD0^w8bi z-Q7cXi70|fONk(Y0;0SF2*O&f=U&hK{NIm!nlEhI@jK4*y!IV{BiB;&Lm@)upHvFB6J+f0*Fao- zm3iv-6l-qmNPfOCo^v*(?J4$nXSZ$orp$aSU%&sW)=;%gQ#vex8ToVpw>;JS3z9$E zzN|xMVAa7g@5M+{;=uW4$*(W=vI$38T}60iGIG8gzt9N<@Ke8b@8WprxtC|ZrnHC! z+_@?3UTn+I=fL2T1)QSE^v~@oFp*?7E&A}gVDvG{YFJ5DEy#Z-sIh`z`kLVnc$ipU zjB!l#*Q?(L0c|R@Ou)A1wxL3|pDC$+#X@_w9WxG<%QTaBSEHMV2NOpN9d@`yqX-9i zI6z~upVG&f%lOh%=c4*6mDUFM-++-Zk}$oe&j@H*kCk&L0~(u=fSI49^wd0|MZe*Zn%p$eJGr)?-EpCdH>@<5ioYX|0dS5RpefHId z&qZ8T^J&6eyuAy%R@I_TPB6-&atXOc%q@%I*^FQc3X}(&N{^do=F0|x+ubj<2y#3W z9le&eP&v^R!AV3Z*h-%J#z$AB>Sid%r@H=FvBS<{z4SHuqEB57gkFkPkdnsTSLH|~ zA3v;>h?I)*wKcu>$oSL(y7}0q&8KcvsRdj1WJ+r*fPa^B%9+BkF{qu!R~)COM>?VG zxSY$emVC5(%F`{5)5!l?Z>W4l)$nqTfF|-Mnz>62U&2u|8MjBIvfx|7-+zc(HOR^0 z!2Czwo2?G3nPqGf=$ai(X+1k^C+>w**}UOP!3m!tWy=0~tM#zMm~uJQ z&82tRsC4TI(xcC4b1H~^v0l_z+ma5wn1knz)bfYs_gBvcN(3KM07WYN)SuQ7Wjx3I zxRBkl1<6g$w&qwJm>EF-SbW%VD7ap=#4UZ#i;=1BQ)lQ*a7b-GG8@`!;6~T#jZ4(~ z1XH+t_qG8^s-i@l96V#y@j@A2cNAZ0R(%!U2}bpvi9kT|@6sD8e*Nf5E%6IRK^gW8 zae{H3>wWq}%HgW-6;y2gyT`;I)TMVs+Ttv z$+2Y2efBJ7owv;ON!e>#!)i;sW3gJXByi_qbnS6j!Wl|R2GrqjoUVEje9nW`o zVRB0839l{-8RVAY$=;sRsb}rf1Qq*B5g|pEA}D~>E1v0cG>xjuo$pZKB;~H{@B1c5 zh{8Pst)v4fueLR^7#@~_7UXZ@&Yw(aZT*Z%tU-t=Z8$Lw#PbF&TZJ_L$-9HQGI9nW zyYQs7=u2OFWC#qmBC2PYxRB8M^xuAFjw`~hA(F$O7nGJt#zYw=y z)dh)Vk3xQV&#ud{pAnx3r;?L7LI$8@Dypt$NY%!cg5Vr^5XNl4v#;PV_FX4QMbdnc z%{Wk{@GUm&8jJY{!It!)Td>DT=Fkk;_s%{~UIinWAPwey#JI^L&C7f6(X4S<1T`OH z8$kgySAwt9K-ss`@Za4Kikd|jA#JfyE5Y%rTIe^Mk?ahaa%J}H^6W?eF}8S&O`jomQ<`B2Up9 z_4d2jvD_}SJdGgKYjGKQtV);h4+mC_+Z4R=T-^2VkH2R~Kz%96e_J?eN?J!~SHmye zsQBp!i|S|gS8ChkB~KWr?gA1L(k$IIi1|5ejMG#DYkneEG=qB+A%4gof)~b4_6R%s$dRvg7f-9KY#DY~WEt)sTE!*bmue8;)arp@8-6+R&ub_$!dStuhfyt>!(W~s~EOijL95ms| z6Pv-;9&NlJ48vdUluR@j5CREF$d9t~5}M=dBJ^c_V~ zLEjRb|4Nr4I=Aj@$DIYPfTD^yzDM`^M4uAG4!-5&;dor60FERJ9r!TtavbARgK<*8 z<0ZBp=V4QR{#0~jbDn{hj^15^_A;b1(qa^MsiH8F%D$QN=heIjf(fXLA9zvSrLPCE zSW_RyW8+;V>Ky#pAaDf|gwCZ-F{Tn)MtXZaU8cSM=J-_(;rGbq>hu2HH8hw7YpT7M zQgs~FCC1`C2ct|be}8kRFIbtQyxzZG5B3lM6M1}3(~}x>d8d(*o$~pfNo2$1y@vO7 zSVEtqg{N>g&`?(W*)c3KT=9!#I;dIQHoEUsP9xztF|BZI)^|3{B!oiwaf3GX^jvZA z9tq!)9t`(XJOF+7cajsQPFB}?nnlr4`!zf-=xIPAAMN!$`j16h(X_sE`paLih(B$` zPc@2iw$u&zzH)zozjx0>M~Jd7&Mpei6$_hGZqyMMB%ny|N_A79^=_In;RFSq@hk5@ zyK9GV{s*nHB6BW$9dS}Qx^XLX?$Z$+-_TUlcy6%_ztTW=P;y3Ao=KGXZlPMbt-khS z;~B`=0j(iN5dZc^=uL6kr-gT)?dX3_H#{KN#o5!Vog9zZXQpL(gmTF8b6Rl(x0YXY zpE2@1CVhrL(?-_u&B*$sjm zNL=D1o5o_=@RqiF#Z2TVar-VveK=u2Im``DpEh9NkxEq5u+KbW3b6p`gIzb{a(d!q z>M=*I?Gj>FfySQ)$YF^;zYQP${EoPSAcG$GKEIR$^dAMH?E*oy&Ce34d z_d|U(cVZ`Z5;Avuu)7{V^)xFUZ7g{?3(rm(b+5691HQ+I4Up9k$Ti{7$>+g8|5Os< zsay)=Nc9*<1+tBJUUPbG3wV5E)?pCI>q91picU#n`4)33Kr+HJ*B7X|3ltIdmQ(ds z1AFr=dNPFq;Vk5mFjRgm7MTe&3OE3j1;`xgDGx@WG6X<9Jne*i?X`TLIQiZd_T7Yg zUYqdL9N~~HHJ667f|j3^5j?L>2ap&7C{%$|Z~z4qsI0{ao{`sb^3wr%YioIG!~E{Z zdB;uoZQ1}0dc1GY0kO4UIXwXI9Q2c>NO3F_C`1~h1td}R^9Q3azyWGt;9(8eR}JRb zO6Cp+vA1e@x5fHC4hw99dAd&cUX^2DfIBvA(QLW{Wf`x%ns9%b0}WsaKm);`xzKs1 zM-+6x=3U^DIUv!6KT4%y!IQ(yMe*~QJA@MReXF7@~`mIlNxgfxEe;jjS$ z^ME0{oO#R8yyYPD<(c=9x9JIJdciTP1-m96oG}}*s73xoi2L~jkq9^aOm88 zD51R2J578hzwqY01UPwOn@D1Zc4C)vVozKmM{3M}g1= zY1A%hwCw5hqUkI;>0r!sc8atC@}M75UL|t`S!u~FV_svesc$E^sV3ZKN4<>eV8i?o zUU_W7q7;O?F$}7l%&HWoY|-9zV)!%iEg2cAm$TF-eP(Sl@Z~Z#db74xvc8B=j7)fb ztGl+-P4LqK$haBJtO{i11xh&sLvwvpdIBQA5h1w%c3z;rQ-FM50PBnwMQH3sYkUX@ zJTVcg0`r%jgss7R-22GErLbIZZX&>M_(g7@ix2;b7qek(qGdqP1h9e3&wbU4!zDd0 zKAovPznCJ8S~%M@_c38DfTc8)01oJBXFg11_X{KQ!?6U&?-o?Ug2T)K@;Zg``JsWk zdCJ11?xGZrc70Zzf^jBuQubkbK)-%xA9>L{j?IGQp5UN~JTs?&K&{w`+~S~J7&~2| zBTDwxWY+e6){ICtn`(Ai*)zq|6b^~7F{A{_R3Ii205cVd!LR^x0*1B>!(_`(TuoiC zhdu0r1@#0g%jLeGh`|=k9a#19!2|?@08~hTr%O@hwWXBKWyAqK)v>u~wXj_OAObjf zP%f0jFt$)QKYud++EfLkKVPDsxm*D{($0)Lg@oQ8Oc_cm?;nioS{SqnGp-A3tIu2# z4sy`p91{+2UY1|m54JRqy~_bSWS|5zyHqsSX5RBF9E15R2?J|ltBiGHEqj8E-}o$v z2K9)Nez7cpQfBY$C++5!2%#sCl>(w_Gg;^WD_+ot{_f!u*@eCFZWdJ{WOeK#+03eS zn8I}=6m?wix{RspxCic;4RuKg-bxt$SnPQZ*+t?T!czL;BgN{fr|L>XE3b1@Hm~KE zVFp#W)IP^bp+ExQBSm}aHV!m24pG()Vl@r-CwV`pl!2$^ttLt}B(_X7G)y%$QZ~u|Kl%m-#K2`vlk}1_yqfR&rZS=cf;I7a+qzxqC~q<0^2d4_6QcX`+ZCkr=m1Y zI8maW3?MV0@76$Uu?Duci$%(-9tDeYq@eeSh^mBWY+5n0m*Y42$*jf6v zvs|yyu&`MY0xT3MJw$gc#dy&5Gq)Hw!RyL*7|v=)uv4%IsBl8KkfSu)JQq02F47nq zu{ir)s4BZD)Tb0 zx>`53!i1?py@S4rx5G%(DJH9MAp#$ch-})KI#wj06uI>{8=P<@BqX+i%g~B|D-CZw z*88C4ZDG&5kE3)&=~PKj^?C^;Ed0Z?A2?2vY4_*L%43}Y#A*$!p692^1=o_jR zqVL9No5mnq>C6xNFH?;1ULBK3dMVfR@{9J^YC{WS{OAHWSc(IVf(_TgDZq0ZxBAw? zI5>8Fea!Gj!=co}>&$wO%u~~}^fhoMLdQi(BXXN8hz2Q{ON171G_b_3d3r}zBcwc zu6g-bl;NxvFNqe0F4rg&y&evFtulDyF>r#pJ06>>kYNO=$qJg`pO*Z#t~Dr)B$aGa zw5E#%MJOQ`tG{MdyzjBzdw0z6TDigyvTh2?$y~Qdg#*Dcz|RSR{UOe2offA z1|xxXsVDyMDMj&{KJxEY@9h=+6gczN2J-^KGsRY_31AYmrNMg#G1jiHN8RR>nmWhy z$%WQYxIPixdX4WNMnj@n%1{c#6swOE%~MT`ZR?AtVe^aJ&&b&K@mxhL%mR8QnH8_) znJv!;*2A7*W{MZ*?7y4VdbW7DH%*9s?O6bT5c;NkFea5ST1F>ptSs@$#4E?5tWPU% zscVA5%mWCp-?0VHJ-L?5p#oKXM>E~?gjA=8o_(1NXW8ye8e>ymeZt~F(PGg1ShvCZ zlmnd{NlUIlOEJ%uY-v`!++k8S4of!KAc;xl{3bi)RE@#q?@g=u?^lHe7I$-A(NP5u zy@kd;TRV)mUU6z(GMi&dwPv9kiST*`m3|Westu5dFV|@Ls9Qu99-E$*3@;;J4;fkw zHfSzQX2~R>cwdL^jR}89-64@!NNez(vY`xT!iRkmKtNa6zxF{q|M^u+K!8)mlEp?{ z@=AU4N?`fA6~MYIH2Z-I(0cMs2v^^0(I6BH=*n(%GUn9S+rrs=@0|D|Ff?>xVkWD8 z$oq|#YG7W5Zmf_0X0l7Z(Aw&F@Yb?5Ytfgr&RJ(o!=P$^pD};&80_3(|30CH;YOF@ zTY58V>_r$((*bs64d6l%tZAvjoP|DsT|!~{s{CW|ym`@bgSri^l8we-n`X`D?|Md1 z`}+^8MJcBBqs>I#+f8xse=op|n}r$=MC=0@3x-I(NAvCho=_EDSqtE63|rxvB(KY4 z=ntcGUS}`adSgwArf;hVU+IBASV^nIgjYUbkEXy6%?RxK#`W#WgT54n8q7GaeyY&B z1(|`unU>&htv@P70`eq_eZqG+6$S#vSM$7hvTBoeSetj6%62X6C?5=jdf$@ z2aP@rT|5o?4Yj4t4U}vVqtm5t73(vjzqstOpnXW=?~1FcsW^}RoB|m+0@%G*xsKu7yoAJ-E@@f z%rxJJ^$phq!J2Kvf4NGks)q;Nb=^DM??ho7^bn7HPK=IAibgm5Nm=i6W?|ix4WX6r z>F|}lC-2IrlPMl<2kVRGP?sb~lc2-Ip)f8Vh%4{tBcu|D6c#F;x*2bJAM>h71TuR1 z@}W<*tLUBlPzRQ>`{VUd1@z(i&)wX*@e~9Y*`d+qpCvqDB!b@gU?Y0nF*8;H8_4HY zN!40*l*v2vz)~2gJYGPlt2)>Ki$paLl;7q7A_z4Tb!$zt9VTK{)zUIrk@D+>Z~+z# zwK6(ik&$+N>L9RsI8|f2^h%$ZN&kqNcK&3pTxN>U3(ld;zr;wdF3ER;*ca_RsALEc$dHPU6Sjt|Ke08#oahMsI#{F+}mY%6}v zyKcEYu$x4M&i3+JZh}?urI&Uab$Tv{E#mxl|t0}4e3d=_zWvgD$SExoXQs*vH@x$*Q(|N7T;+ugvoQ0 z7ltM|uc!EFaAQSA&F*-m5>|VDqvw3rDe@uFXzay8$~Q8kWk+tR$ptgqz+IEu!>N)h zJiMbmw?p!hCoQx6)W(;K>OLt{=)0`xkWbokPxVzetGF&z4QhyyMs^14T4OB6B~WJ$ zu6E@&>T@gRJlLnHiWj6Prg+dEqe5j{v~HbPqjkM@o~*kryk}OiuU?#zC;cmHpr~BE zm+VL+sIO3$%qrnwrKV$oLke4n{?|7(GA>wA##_GKW=~|dK~+vvlBsJ8bcapeYuB9C z>OWYw$=5!YP*>z8aE$5ak(O|MV6Ts8Wx+FjV9Jv7cJMxmnh`QKk~J0z zM&DCFeYVPGFw3`86ZYIX0i={{$bHc?yPLWibQH_A%+Evk=pwgsiknm6C?b6%C4t-N zuO6y8P>WN393qu0^&5F=^WD=8)Y^dUEQ^9~s2;Z;8BP!iyX>!xgwQEl zN%n@lB_t=|^3x0jzPRiY+fuiwdR@p$(R{9g0{qgKzn~0T-|_`l=fUD3SQdzhuDvAj zIuFOoz zvWYatc;GS9s~&tCPKpZx=qa=^%t5s~3*&ghI|V-Qu@Vqq%OUY9fN^1lFVjio9y4Ak zh$FC+iKtufh_7){9K4OBLS~WfmJAJMAgJrHr^yWKv0oCK)$Zj`z+t~?hqar0AI)B# zC-w{R{p&gDoldxssi@RTqN8ym(%iR`Fin~Ga43dlrC-KYM|6FNM;oyhE&^Hf4M$wlx7YK9*P1KRBb$<&}A+Qj7vu4?F`kSJp!2n{i)Ur z6x*qaJfjwzA=Yywy(1_*xd2tmE&kX$Ea^bHqw|>1yve4wdFdd%geMG>zrFjmQNB5UuZ1kitrvP_-NHo3h@q5n^l{z|_(?b6A(F+B2L^f#AP05nxc77~ zt>~(lO?`p}ve+ZTOa$I;VFnARSxzKR_Ls^4@k`Kh+H zIKuF#H`iObt<2!&Gk&7LECO(-go&_}l_CjqUsD^ss$DFr;#ia%gOz(=r3B9UL}L9k z*J0-a9HVg)h9a6Yh9O|Mq2B&x_4D;Qy8B+PL`xsMn`Tk?r?_k4$cP-bBqIt zP{LBaW$%m+mOY9gk}_A{5u_D%gO%2NrQz@Ht~yK&IKs7$j$Dx=OlFtJ)%&P>o-YaT4~VGmqA5i3eWvlYN!B;$yDHLURS{m^^)mMc|KsxgjfX*3 ziZqjV8=)d}J>OFYt|w%*Inl#v1KF zkJZQc_%8FYL60A{W&<4i2C&kzPiUcd$m82v@g0cfJ=rK)sq+JDhyPjioc0RP+yGG z?^~M4i}|dLEkCEjG95(=M+TCilZwsiW#%kn76S4ZHwZy9u^~|IM_b$^sAIt*YW=(m zSAN?K^5L)xMmAvq^HhffLFX=`dHtAUC1nrByNngI>+7we3L3>vn!qQV#wTR#_=uEt zm+2Ov77prAM?J-icQDfOeGidfpznRA)+ZR{yoUf72>B|!-5agb+aMJ4QW?dMUIGg~ z$~;Sr+fXE8IOQM+lgYFW&Em3`u}C_Y9L3lt62hN594!7>F4S8VS03l?XPQ}dk}3l9 zZ=%&s;u(>`&k7|F zQ;RJvqrLGWsUzJj8iTibK28`fu_G^06%ub49?n0@jBYHT)XJheN~1rjzirDzYDD7p z!g}*V0fW!uO1hLl1)KEyY%6|jd7l~6)FdQdu+E1Lf#I)*Y*-!aI3B;Sa^VL@rLyO( z(ry?chlCn|x+$*qF{YGrbsMtls&W=^(fJ+*qPN>z(pfdV?LJY8a$kksz7~_VPK~#P zkQ0X}js!ceSph>xmK!#MJekjo4@3+CF-r-L8+a$WuMZDx!2Mn!wY5<0 z|3Lj?`)4M`GWKx(Qo7qNb0Rr6Dj%cAIQOoqX92kHMF8xFB%y@E(Y!y*{yR)9D7!lU~vEA^3+LfewOTJ0|%L zj6RqTu91{-ElWzTWa74uamiYWb8O4fF6=U-3EZNSdg;}!$}sy%$zK&JL2h#04@_sj z9MQ}OLC^SVkSd_FqKlg$Yi|zdHd&&w;jL0jV&AGd z+zze{E*^hnIx&O#RR^Jddo3P@+m8>&a|Q^|biM5-}C=YOk%X zy=BuymwcF=W(q5E`=mC}ra+|AYHXEeL6WX#lC8e?qNoFtSDrpw3CEh{j_wL}qyNB@ zzK5(#Uzm|J_#Yd;9Z_P{GtM0-y4<<`j!c7ySOc@?;bkFp!yUAD8pdzCfry4}i#GOIlqzus6BZd{KG7S9N8>Z>AMDvbn9&Z> ziTj#ek$pUH$(+EapvSmS&)vM$vgjEJ30O`S8A`iTh4(B97fgWXWEN*tENloaXMezA zrBaTa1)cOvAyzjedSb-*8=EiTo2Aalv;3K@V?K8;PkuTCN6=jy**7#TWtN zF~D)Rb{NZ}Q#;BnO9bz>$w}>}OJ#2~v#W`rZirgngECkL-(IPIX<2A<+5D=ky?o6T z-zP=7UYZ*D$T5fwC9`)a%<=<>MRxSiL!iu9gDbS}zkqdLud*T1^%MBfYPGr2P(xjt)C z5`ES48>ys^oDiIa!SI@Yr8Ou^Lf%WXvQxmLGq`YAE579FI$c&rIxWPv4RZqh0RTXt z#k0t4z;}gbGzz*h!%f+%OA0V0IsE2!RSO@kjKn;L^5M084kV<0)irY`rcjbyV|O** z!NwcIwRhE%zSZsF?hsAB)>xOm-;Vkvp!VZfyp9JjMZ^e9vNT+)G}Os2Ny{%y*gs3l zKf%dA#mPUR);~%(pv)u%9fbNSIDw0*2x5iBsWO zrV*^nj(!!6X+stw)f4<qXcSM}8Q*Igj~@_vqpkrG=cP1mtIA?~cgG9YJ>oMI z@U`}}+Fq2qvp|t$w6{?d#-W59p9sO%T@TN?r_s*06SVP_;yQrzU!DoYmucfNk46#9 z-l-$EFRvSt6G?1p11I?;(pCX`2$SB_B`wiKzY|Hm?i8A{no!r1yeN`_?tXWtE`{2{ z6gf?^^M3q~x>QQDkd(M&oO*naOPVh3;lfrd&6}s2+IZG)(sV~`QH_%LCOt5UGj4=u zNW_!l8fGfjOPcoKlI>-B@~1ySMi$Etr_D>(79EwY&$boKad640lgn`4&vCC$wGhqK z>^Fc-rlU$svFzo>QH*ihCnkvI59XwKOZ42c)&{8M7Yt_IK+ESSxf@-TTd9-0=Uh0r zUpOjS#JF&8yuK(;Iqlt{Xz`*;@yb49X?^i$(UKjP5oxqGZ~epO9&`Lug=gRwf2MD5Z{)u2wzm(FT+*E%AJ zI#cwTpec~M7}-QjPQETKJ>0Y8yWrD=x~A_9t&}-MO~%D~;`)AKLoG+OJY6N$W95BoeAT?cn3;1SE8NwstN%P9XAY@QRq}cq7Msab?H#!S<)*b5z~! zaf5ZRp<9A&pBn-i8%y`zGNS1-Z5(t`>kKc+AYoFQ<2DV^H{lQIj#ku-;<&#!L>dc_ zANvj+WBf7J)bpZ$YV3~kO9?k7&(n9Lod58S^e^7DzdR!SA6}6D(~)Xr$IRb(lIJf} z|L@#v#5>aH^Y2K*E+{!qSuy7rl4ru|V@U$Sgk$9d3$Q{UvR%;-K!J;hY|aEte*_}? zW=?)lF@hmk?v_>YXNKg!@u_NW)r;{Hpa8;zBmDpY6gWOrb$nL0~0t#&J+}-%P zcPvRz4)?gU`?`?&h!%FlkeqGC#AQU#!j2h|4des6XtdoSbW;9Qew_qZ5ljeHOdU4! zks~49ZjUpSJVDU(*QsjCKOwT&SzsE!fdU9&^$}1YlsHwtzxt1~u(MND7!ilTZzbm* z^DD%u>M2klEeWJ73if-EyB;VvSkDDZCBOYp>)nFG+K~yTIL8r2=57%Q zI+7%eoCvFTj3`UaylDuafFJ^qecvMEM3S&MJQDb?O*rPWzm%L$dJel$X$*w#!kCU( zF_y1&&y<`dwgZC*pg_<#Y(DtC+&Nm<8AI}j7RG)@GV->Dg(*#&{@wtJx{drhbRC^6 ziL+DH`-Gy!E7?KUn%R~T?N1nzep*&?P?)!i3%_{+J{0YrSTXnWSF+uTcA1b9eb`rX zZ#yfn+doY{qJoa5oCVn>Tdx#{3%_3TLA)dVizH!sHH)5->Eos*vbYslDS{UE z86inHqJ_0AN^}RTV{P>?#eBCuktCQm_igp_c5{9~uwssBVM-r*MNfbNKQMkHDct&q zws<$xlIMsa>5FN(5J`04cwSiTdkt|3h=7F&`lZkW>NsQ-|AK}2vOG% zzSsSr&IreGREq4{eY>B83b~5^f@!Yoe$ayd4$G>`5lND=Bd&i*C!vT#6@B6vk-f%v6(V2f z825rQmuiZGoUp%agyTkLqa<-}n#bsXTEw6T9j`A&`CSGH)VhIKKEIW?%L-v}&wG*y z(44(ZCBMXDmaz!3mbE{0c}&}T@PW0GO$8kNB~ce6XRn?dB(5Wow0zKp@nW|Rq|h2M zXTL;{$cAFk_4wf-Hu%nN9Pe|?O6~^69BN{h5g!JRG?EHdQ@Z?C13~w6+$d!6Vd$_E ze`N;wxQ9eaYF{X#9mol{7H(VkAfA+F9Tvw%VNO_}1+;Bvx8c(&*!GPv8roxIzqPoj z{z|wKG@c`+oG(5I?XWON%T$PJr%TJuA2V15yzCYsuWIVy8Qu8ejS}Z&Ov3e3*K`lbw4DuJPC+UBHUcf08Jd z;ZB({@1-jN5KVevl5!=w2l_F48YCT`OUTAJfAT8oa7INlF(9Wa-|W}v33sS0a`Uh; zR77v<`dZ41x=tnFI@MfUT?3~^d*n$uHH`^~>mKB^jp={OtXGZGUS!k`{`|IC;|b>Y zLu&$*0{xlzt$W!NDb|Cg01_o3jFz=SYl3Up2CR`aO?M|46^lvrW7i3rZ|Cu-JnYu| zH1`_sbymLKCmp^YhVXa}35=dX05)s}K#UJS`*;8loUa2J;(j786K57vpFw6AfnYRpqR4cA4Sd*aN4sNX zMj}@S(qZAwm>mEXKH2X*LSzg6LS*NvROM?9u4=FXdW(ar3d715w5Rr8)ecn^I}WZH ze4ivO{aICdS!0d%lIsKu<|*)$=^s9Y{%(;y`x-i9o}R(;{z(mZ_U&^Xe){FhmorMz zU$}Sw$3GFDLKkcy7o~uIc(v2d_)7|S`YH6#=me+zhfg7<1WhNzr;s|r7IOS4^!$JG zDO7m+DOB10vNLDpn60#Ze|BdV@hKGhvF_Uj6DlQqBd+Dh7j=TuzVY@vPP@#nBlzf3 zNZu}hk&smp@oL9TyDu7{i;~{4OMwsynf=F4q3n>qe+t1Y(=U7q>4(vN`cK$AQ$j7C z(@&vuwveBRMt`w|M8`Rw_eG81GTc3j#J@1S1H8X15`?5TC0i610Y+k!9^az^= z#zVu!1xa|F=%N_VB`@H#{{=QrjX^SWK@M`^Q%Hs_iwsxk0#aiK2jje*9Pw)Bf}Pyw z+o>-~R6^nese!n*{VfG#WBNy12p7BmA8aA<1^MLe@B)M_q~ORFGR0Vybz}<}2!>hx z@xDBI%PjpcyQov$==cW@o`H>Wm^1aV~+a<~WgA|az*|VARG8A*@44nF# zt#k%XZCUT#9#j1rHqSw0_%GPJ%k7VTVe?KDvd6ZN-wIiSwW&vx2wzmE1>A}EQqMsN zegx?)=S69~XI>vdPT5LF*t~io)IFO`ohoG8DPFPPM;1@RaqN*2bxJ*9 zD}h^qF0J0%ml=rWyrmgV*-EjEciF=HwJP5MDtc}#T`3FLl1gkPLF(dX3Guj2;GSL# z=HtV?@%;WTTgar>DK<}bv=pC!bUA|#{YW8;U@H;hQ4;l@;#;HO4p>p8N%){TDa+S*iXDnDzgsR6&Fi;yGy8`Hp?@Iq0dU;lgv!6F2#Zh|t?d z%}B=2H&D+sDAW-(EHd;CLPRJZ6Q7ivg0RiTCu#`%u$)^pE6e|79+D*E5h zzNX#g08+7k9W3ic$HB5ZG#)}b4Q*A1helrSX}4IKmE4N+I^E~wh`&y`0s;7{81`*HDbfIwOw*XCV3hA zoxevS)5{Pz>#l*gKJs-f};GiJ0$K`{Fs z{0f$3D%!2jAyDkhvtUuWsG+hDw7Ye}V-@R0!0tyP68^?x)u`W!DhC!$d3!2pNskNr($wyD?cqJ7Dh7uupk4| z;4oJNP9WL|0ew}BO*qbvjLf9WoLsxWyu#yR;+_3Zo}ZH$tybl^8Ld>oX)$^BvSqEE z@YjsieD-)o8@K+W6pTuVH1g(mG4a}fW#F3xCsZz4{~|6_jK ziRk`&e#i<8U&s$@IfDP3AAWz#k8{x16OAFWv5Fn<`C?M?gz zU-G<3(vFKs+AS8nQ=a#U$o6DLdu(*5zMwG-3qs^aap=j6mPv}}nCE@s`8hE*F(?liOXK*3Ybj|&O};rTh5(I);ITlwU> z^!l%>1uBh4JZ}a<$j7qRC;?VRednRC>!+R{4j-iVpG+-IJU^%TvGxfuqdh4mk2tTr zFWC6ojF$D^Y7F(b)7WeDQqZ~2&1nB*D{l&MQaGO<4m^Vf2$5~rLjU>vFwfD4y|(L_=u6sj{JU>Ua@{s+xxfojIS08fDiit_e zF;3vR5&hfWMhC+Pe%3QvxpOsw=e>EBA4fcI@u83W6Qw-1o1Qnci9bPp=Z7YO^;fT| zLFaU0D-Yj9-j+%s-n0W!O>UltzS1)yG={rkwEVVi-t(`4$#R`>5I6ys z&jG(gwnxlYehT{2{ICg}e^!1ZbTB$CCVz*%-s=RV|0*W;y1+>8n8rxR__>)(|H$+H zLw;Zoqx_QJGWZkt`t!Kp zmhYd!TT!>J>av!m{@U!>$a(qTpKbOoE2QO=WgMl3^_$l>k5J)JQA$Vlb9Ii5A4Gg# zvX14qClH!HZuX2_z*QGf;lDO}#}Jy6)`2-o_n+jqi)ukib>)lwzc+ioTgSQ7;IidE zj|z{l#Xi?M_EbGCdVqp}-!^921G*RgMe9%`$2OmF2PI#Y@Hpt~IBFf>S+BAv*?-+S z7=x(a9?Ngd2~e(~v7JYSEBSwhoYS9c$U_&SKSANggxEi~4oV#`BeMO6nIFI!G2&RR8OO*Rnm8H zvo~@7h!kGU52a|FYTp*Qrss)mH&TZ1%oAL^|8- z{UJ4;XG2~n#Wc!X7-tRQSLisdU*XVue$fJPo#@FQ##xSa_CNGhXFQHk;jS*LQ+^0k zxHXwLw-PGnQUVV_G;LTNL4x813xpmO^c*RimSn*C%mVT469N_fkK?QY9jl!QNQhjk8i_7q@=3j&tKIbUDcD+CnJksC7)l+~Ye<4G9UoRF6v;RA@qA;%6AG zp1LDQ=(1<2kzJXINR3Tz20AKiGdY9>g4ZpO(sST_OgpQVxv$VK3j_s$!&UKgLWh_R zX3;XoZP&Ry64p{QxzGMB1^PEt7U2Q6KC|BHNdIktIB6X|%z@TV4N2$a5UF8;NDYBI z{~J^|i?3IX@}Dda3c9GNe`_5gRcF(xe0aDt4| z+I`P*Lyf}t1YTya`x#ljJhS&6<4wdGY_8^2+^dEC0T0k;M;V-$t zt@fW46BniFCQ)j%ipl>uH?9YAHdLSG#v_x;-~Kp`yEOK6zb`^6he{rl=olR=g5U%t~nr^B_s${_| zwxFMPK{0V+6+LMiEYG!1FG50yPo`CIHxkd0#kmO~=i0{kX_Y8LDuOJI$c<>r)pNN~ z>>)Y|qK6~=aRx8_*NR2@`q%)CXj4HYZ9o~TKVF2?gP>dn0p~A5xMB6@?LiOp>$lP! ztPpFE|F&(|)j1~@mOrB|{CM#qCco`LXKiEk8AM3p$@KBG z%FUvFd!K7}rs*L>n3p7%vkgCha?}YUgy^%=LZIfe-SZbAj<+CZ_8`#|=MscI?(Q@e zf-L^}cW$(RB#&}K+_VMnXbpm{@pNlIXhU4D|N0SG+~ks*4k$4p>*KhY;E7^lSCLZX z=iWP%;PY#c(`nUNZp;wtbfbO3*gVON9(a^R>aVsz4pcjnrfb-wdR{6Z1j)i8h4VHr zKQN|Y9=DB6@7ygU>PS@dk0i1f+^P4oeL=fd$Mg|{yFLj>k<4&aMlP;fwV+a^%B%Hdg z{!&bYyzG|vpA-`;4mm|9xv{v$2?gLI9%H5}WwC2wz%WYxIIYSrjA+Kr=Jk~yFsAtO zYYn3G_RKWIcCm*1$K}WW?5FrkqMUfD|5!}UqUHagqz(}$k>{5mq5pN9p#D8h(lWDb z{Ic`%kK)8FqXeNN{l_@zEE~GO!aR->?~%qu_|p99+EJY7<{s-vW47vo*29`mzV*KV zP@TpJljONLxxr2vve19R!mRo@MT&@%h;F%bz20(Wwy3ZBS)nUOGP?gMPE@(B1pYNn z{2eOqUzE{B6Z1(HpRzDZrd$4aV5q|9@Skgla)V$;pQ2&&HKT^J;ni+wP}iA^E<@3b z-R4Y2_g(+p`*zn(x_=iZ=5($URA-XvNz;?zm3rfujP5@SulC)}mLD`Me_MV$mOi)q zK*R|!*64zy`Y*$)xD+5lRB^QY@I!U}RYN|XuOW#j|5QVO&VQ~UHzPyCifa+WE7Baq z@G7M7c==(CSbo4z`~S53DB=b_?T@**{0K1CKezn&P*8&Lf2kqgj%vuE_y1T!{&rw^ zC35I!c$LZdm*LerrB{C%UM=~k|+CN%E`x=%axjR>}_|2lE zVAbLK_G5v=pl`1??*D|&=CuqSd{03lC4_hEK01jL5H9s`4Vkf`0v~VH)6?kCgb-Wx zYcih3m8f+RzdW=Jb{aS_7O^PZe`YU<+9BKnITt5_ z$f1uHE-_Kd|1uWcBge``$mllxld(;)O<5Jd4AzEt;4F3vSaTAUe*~de)=jy(zQ1qP zZ9Q0(nBk{ebtN(P^0<+}Y=ImE3lkx!o*2j$tmz%JcKMPpgPkMXEk9%z|0Qu*DMwU< z&z(~M9wccF!Q`g%!WbFzrLJ8fm;(WwpU|b;fX$1m)7_+3!c8WRMFP#dk%DHYCaqCQ zit!);-AE*oaq-(w=~lbMvgwdk~lYPPp^u(sLZ{cU! z`+gHx*;i0dr7u)TlZNEUTuvPpRoPA>a>|jjfQ?{v5TpYgpp;*Z37MUbM%%JUe{0V6gv$T7<}t{-Mqh30>vpb zL|2?>qxf11Q!X?n?Vsop{Tlzj#Z13aLIJsO|0T|88G|h}H|3 z>A!hi3&;|N&Hr#$P=fZ{!_y0KyYKbuV9nV*G$P{S?LJR}CNbi!Km&2Gmj2+#^zEBf zSyPL^O#hYvc6Ik0%K#r$A4h8lvhm3Hjn|o8=@chAA7?qD`&XD&d|&ua~* zC`RKu4j+#5d!e&vZE%$CZuunx)DcU)dlxMJ{o5lUc*=iqyT5!$38L`<&%y39%g*_M z|F9Pl{va%iA^LUsx9NM~IXlAi&CSAnycZHtM?JR}dUE7|!UX=l-Tx5pYzqI7uwRLE zcDsLaSFn@V82{;K=!=_WQ0tF$n3C;C;)+?N>(*sN<%FnP-0Ct{_ml z22<$cW;^~b%=GE){=YPR1JwJz4C8HqwnwD@a97aG2RV@eo|(Q+J+J-kHi)}|puS0K zgz5X-UBT!<|F^T-eZ*df6%nn0LdB0TgB6h-7a}#S_ZFuFSA;$!I$nDRN+xP=9p=Qo zRZo!95-LiNS7N=tme$SfnpQk~)YOuclRG}hEC-8`DqCB+Kb3h3?LZ@GEL}nG;sAJ{ z4(e`}q|?XpdhN8N+ya6qQ&rngq#_N)F)5)C5BvdEP035ls&qfG-lv4LVbFqnfT&>5 zR{(5tWBLG}eiLcA+!qbo3JTm}lh`uY6vxz>LBX4VBM1L6GiTvS$)1!v)h=&A#n;k*NUI2{Fn$Q-sNPJX0GA3m7JQ%u?4JtA3 z0tUoTZo?1ywAY>SfCAFS$P(^^6bVH^>*?kkDRI7XkUp)^E5^*U6eVT;0!=Ozt`W_T z^`1ilBN%+G^{qsVPGc7NQ(51ut9h_CrTYq!yvdVnmoJfS!Y}LIss{z)x{gWTK&i%P zxAISqr>XsrkS|R4zyJb#v7HUBworCR2PS;7&%*y`u6UQr@XER;?ctnAvdfmbEr;O* zrW#}f%ASU5hY6OXuaWh_rAK`>bq5RaBEp*79@LR|AB$VTi$ISKNQy+w89=8j^3WcY zV;3xU*X9->l-TF6_l-GLCi%!{oLqKagE{1p0?G|};*4vktDNB|6#zRVR7NepGMcbQ zkPH-+3m+R@DHR;j40mA!nPGC<0C2^}k=b}#K}t3N5*s8t0p_(kn!NRS4E7m)5p0q; z?3&TdchXpr*7WE7HG|cx3s~fG{DedA;G%5jSuH}awB^Q$1A|e6lU6m}SZI_7|9`Z- z1z*&A*S-zI07G|!ba%JX-AD`4T@unTba$5w-Q6Lnbhju-C?x{Yq4FPeZ@2rp_kG>< zJn!N6nKj?F&f_@2DL@Akji)e+_?Q>)g#+bE9zrX#Nf%8e%AZx((}SQ5cFlAYm72`R zlCM?H;5p8!PHIMBkrH@|un0eas4y1^Vqjc2Q1_655o#E^QzhB^pA1Wx)n}OIYXtr5 zo^Z-)R}_Hjn(-{e2vSfySA$7WVSJE}>w>yiDOt|E z)RmZbyvhI$`o5nET8jrS(UoTr&R_1{EFvI zH315rjE*`MyS_Kq1}obellUwT;kPtI#~#QldYE_k_91b=0B*fF1yM1TO2}FFHGOX1 z7NUEUzh3?9lDzWn!^75&xm-u5-~(LT<-AKO>mg4M40v>~?bGW~9qgw%Gp*XsBAs&W zE!jKQK~5Kac#g+m^k0`?d&WdbLSRu-VDcB%7(gs>8VJ6(TND`W!?F)epU2;R*p<2N z&~iLUA-UO_F6l+m2M6K+-PS}*VImL@k6uK#)xh3e8j(#NhvWEd$UW+qjg3=(5nSbi z>ufI8BL^!dgbmMH2L{Pa-ksODzWm7S;k7)3e$mkQZuSs8Gg8&SEX@+8;NerBcfo5% zd3VBlO6(nLU%D@gFUdBrbcDx=91i-DyJl(Mr&PEqUo}Rr9>jZyyrF%xr&hXhghKAU zc0K7e?&E)&ch|Y=AZp!2(JNl|{A&?C`SoJs_w$5s(T}uGy(1YPoVAhr?F#4ltbOXf zd{OK7YWk%CRrCr>*X^)39V}0mNdA z-!21;mcUU6F0+V!a|D5R4Ldgdh@4c=A4(2assvb~I)IaG0Fi(zY%1*Ig+Q_^z=Jk% zie4~70xVgtYm}9TE5FCVrT_kpzaYq-;EIE49TxO4kYgFJb@`kD0!yW)4%22#WDRCX z4ZK+ja!m~+NwKzG0zc&s)Q4)UbpyR;yPECPz@5^M|i1#^H$AM zGgI|qSKW-r!z<3~Sj)(qt4PC$nA{9I@&V6Q-DorqpCC}|lx}Rmj?RN* z@7(RE5zm;l<=FMM7}L^dWNyo&CErm=wYIjnd4bqPxrh%L91>*#{hs1@A0-(Q0u(aT zXdqGS&hnx3w(scTfaNg=*Rka-5fYeT>|y|p3;<06xJfGP!~^ia6TmJOMnpk~e;r0} z9q-yEeX<1Gr|CQ^kT59|EwT&MQpB}|$CAwfh{5h;a$yv^0YKhx#^WHQWmpEaWCE#x zGZ}69eJ)sm0okAO2q8v1AfO zxf+!-;Epx{7E3SyxB$B^;O0;0#wQm{brJV@H_1;n6_Gl5)C??07xu{9l^GH!w;O=J z_uOSRj9Dys%@s`SY-a8i`RxjfnGsp2ovD5u3m@rHUh-gs6Kr#pa10l0bCpa23g!eQ z(O_oL=mD-9-FdyFzK5$ZsKKCE>a=a!xRi&ZOM7@+XFs>G=NRF9e_>B0n;9l+TB;4e zgV9nUav4U-&0mIW$?>#&aGdJ4W6&xlPXh#6@$94GJ^({^d% zb9|YWdD5Qw@wrzY(Thv@7uSq0LK!^STD|v2To?p%fkJr;d)`Yn99Da|%whnVI>>04 z-`%6k5E6LPA^hl`_FN`}=*ft@2MRBc6gbX2z^BO}vtc2G?SYA&fJ&Qyhvh+5Hm)23 zt_&)SePqM|f@F8cKVBsoT6V^Lb?B4%SSB4HXKQZT7kBGfKU zl=1joYlJd`rL&;ztxURqn_(wWI$1>?`M&dje2(@?kZgn+vLKj9EX0*iO`}a+ZCLEi zs#s1gF>=#v*qBI`Sj3HvrZQQttFLPvQ`Uj6~(v z8vB7^FZ4XjkxPJ=#at2D&umJ{D%>cAINn`8w_V**O(%8U>pGnw8Y9aTBy&+$U_yV}(jd7lDg^xx1{r-QWGY$}ZOgBfKU zD+x4Nl6k6!QLTH(_`FdPQV) zStqjjK?<21w=MAAUQunv#On!+2`x_-VOhkYwpxqQ-NYTQEtE6DtoJg23jhJVVpq8U z3UG*m7dVcg!Zov&WUOg^xt`F~mRr7AzAWq_Tthai@IglF3VhJ@Qik-6wx?Z~eP-BN zYlgX8&`4%gV{}~$NvsAU=%J=OFtmeMwTDBCxKAw zuroPGu;-32I1AK@Io9K%SW!>s*7sa}AvLKz)7fe-9w{{Hk-Nv*+n0BJk?jOqg;q-q z>2Iozh#OmP8%Vx_%eC7nQ2Qvq_I@Nv{=^5tSAz71*)YEAAtP-K(y`ZKXz!QXGJ@5z)A(&&-K-M{GgHv2n$ir0s8PFbf&i#uRi&22 zd67XDZ6TsfDG_!VOuNb8%I=fP=gJj5_AKS4dmT?i!UOHAzK->sWZDMVG|<=tY+VM4 zTgxgFmP#uGm^Ha;-4s2!4Fq?p+xw0}SOOS62F@Gk&k&c0+7I2efL>|OmSfbb<4nhw zUIbm!1K=|Nb+$n+LTc)~GMobCvwW^np7KuV&2gxetjmF-xH|rk?#y*VjM<@Dz9XX% zL)Q%e9Eu4~t>oEHgRrR~u)JUjy@@9%E*daJh$S$xL)2Ac zeV2U{vN}|1+ zi%t?aOkPQ}w~NeDlFiBQ%wG1-qTWUyjYLEEAOa4vYD8QKTM$Bdd*%Lu{Yrn#$k$}7 zKzZAwftLK5i0Q{KgS(VC)vO;?wl`X}XSgyDx<({R%Jke_Ep-#>74K*kpC0(o&WQQVXxPkMU{@;c2NvxntF08p>VcJ!!EkLw^KS!-GK*!0H53H{ zPUkB13|d|G11psj9hc|a8RxVn{C$_YQ=3f z2y(ApEq_om+OFpR!2dO#qNEKjw5h@pcH1iI=%t;s%AC%Nu~Syg8(F~lPT4G7iYaL+ zNy6Zv_QZZiB=iuj`h8AejcFTIRdJmT@haZo%Hj@GxZx*`+6z8<0(0AzU4q;@@BX2P zZ7$Z4`Ek2!LJjacL8+}^2JP}=B5?8ZsBowQ`;I+)SFq-j%GxK*ube0$DHDpL=tjxp zgxib`9dO~V5K!G{(mr||4tRa%NPuf_;p#r?Y@CU4Z@NwBSZj$o{G{c(zt^wH@TnL1 zU876?(7WL+%0)LAlF!9!FF$m%?dW)Y-H*ARv_l;`_?i{9*}WV6@WaWP@Tt);rpRYZ z$!PPnV*vT_gR18*)2xwY0gr<`jtxA)8M#X}ant_CGCD{58rEn+I5n1|cF^`*K^FuDjfd zqG!-@64}p<5-t*es8mwQUf5zu09`L^rM&K4LgV?K6o3}~g#4)+@*M{aCct?OfZP)sr=aep&BjWZfY~6 z@D!cghbo?pp;ttcT#Fo2?QAYuTs6oXD9<`A>c}HQeyr_xBvTp>pa7?hG(MAj?=xBcT;!?bIlss=RY~E|&Al#lLSxu( z5wN&0K-_s`i#JsY_~Ta1^}hNP^LxQ}D{2|+>ZPfh&LZXM;oJ(L0wt-JZ>iD^n2)2s z+b$fPb&?{oGei8wNA4DcG%o%OSV$Y zd&JBIBQ#Gs5++MT=eL`{I9sf8m(3J=lVUlZ;^9(?! z(rRHdh=<})(-L9yWqYAB-RY_OIYdQ2{|JbL8*oVYuxffV3MW)E}`^ z*i9%)48eKO1_-6*gn;9K=+SKQxM>N1Asp>qWB9X&Wv0OdQ3Iy%fGf~O5Qmy)axix< zM{qET%yjK!fC^zgD#r870cCFO1aJ&NHv{z~J8BAeMs|~CD+Z-IVr~F#hbJNChN(>~ z2v4MqB4h!bvj4TFy0X@SmTJ94q<%(DQqV_8Wqk;PqakcGkqy>qI(Et#G>_9Fq8WwQ zJFp%Hr0RnS{@CxEhK{+8(in*7CLAQRr9haZtS{Ca9D;&wzR`q3<>P~iU z49_Dl9Gi|m-F9bYge2oFY#;p+>9T zj1t@U#}b}6A@+Dea1XACC*hRHo*AyGP(_UgJl541bttkxLa!>u@O1GS{&zfT)Ck04 zp?#q?x(~gaO2!z)PUSKwj` zk+aJR4gymwyamZ;n$$tLk4kIcEuX6O$ddt7H2wf`=I7P?9be_)q#ApG#A%IfC!^OW- zl(K0-NAy6R99D49hw!nl3s%EC3fpNdZBl zB=Re6&|?M$7!=ZzASBy5^rHP>Yr1Cu(7Y1{4eq%4mD(e}>3m@O?SR!8fh5snLRjvV zSnJ9rb{#_@txfqD#3QIUiH?J{)5@V`%;4_I2Wg9s8gwo$&5qQiqNAZ*;@mNjk zqYTEW2q>wfIpY#zDmOQXW-?@WYZ7A}+_p$I2xSE)zYtn9ZIOM+kQF^ljQ2a+B8MfC z6Gu`asK>DX;99l$?83#Ps+|UOg@;rNCF2 zQ9V;Zt0pP6+U+B=36Y}SWKvpl(?`~4nTm#oN$D@oKC%ZADVd-r$CuJrGIdF^6J$1IU*#2I^H0Xs4HI)jGPD zU{5n?7ZT5Tqw(?@8op3`=^a_lm}(M$!Zh&CHpmmLxlD%FR?)y#vk3iyl)Kqh^A>-x z?8c_}nZrIxheEj8$C2vf*nPsUz~(9${DwqB+an4Rrr|7@3Kt7Tot^bk@6-)tPwY>i zCt399Jla*}X3Hl6K9L2s&9yH-f6{?h)ZOS0YUxlE2SP3uYFrlTpQcvj-E4>EvGG@W zc4(UQfmi0`AWn7g!AM*NVVP+y73K1Q?k3Tt<>wP{5`KYtveOjRX&aTEfQq}bt9^rS zhkO-%WQPGd;`*-|)&T&`Lsh)D^Lb&~<@rp(NK_OnwGT5)oNU<(G=iUe@#pV0BVkvn z9bG6Md|q5=X!jT`Z4D^QYfGM1>lkRK`wd~S2d0ISaeSQ~w}+ygMYmG1&u1Y`rrOEf z{SyiWs@~FzW^vBygOe5H)hmC>VNW~`1A86SS$8W6CI|#}=;G0Udy;u43@yhhkc<9Hy z7aIrhrcH~b^4>G+-gOWR2EME++9KUwc5X(8;GLI4HPc$PSqs(A&nr!g$?Wu|vKE_L z&a0p0+8G{YExo)ruMH%#H^InWe$97LpO|ZJ!JhqQ;`v2m{bg#``{rvp0bA!yuYs#nX*U|hxgDHPuG0eXdW%H^uC+I-09A zY(tOc_j$Caw*x0bHOH6tmY1*g7vClse&o@_B>~|U!ozic#G3^W$X-ViLSf3Ec{B_K z<4g7rX-RZY7+(*~f=mwDGT1nLpGVU+-@K1Ev)<({U`Jsw%$Lp-$|W-yLc5vgO4SM# z{(dyCH6BPJVZ0aK{f5Pi<}#zg{#SXle~mYbCZqi~j^^b49z0*RhJWSJmS&=Vb~88L z3-5$i_SOdeIGXQL!YNO6zr4NtZ^D%KSPZVVt`s~zUz^dNmKQc1i9dvQ|9CY2fyMkf znipV6B+Aj1n-f#BjGzNmWElT~@u7J%C@S-N9!(Fto%OGlm!EmGy&p&OGAe3>@?OYK zEJi5bvM@o0X|G5ZSK%+1vYZCs`yb=Yza7oDD?a^xG~Zk{hyI-+SpW?&eL865!-o0X zw56+1ZLw%{kHtLyU3dqD@tN;NVD_2tZGXX(e;&>Mz+#-C1c?1{ALxIA#jv#g7H@VX zj$f;C1(P2foKA@$vi|eY+?q_`pN{5y;u9~b{|4jRB{{7A6y9C_WqEP@bu?!yF7|L$ z4%$lb;1zsGnt>)U_4$dIYacyW1-M&)A%25ZiqjVeXOdzh$WEAZ+y|)XnY>ekCt7}h zihvD<+_Dq0P>3VQE`Aqgp>RHiMI5|KdcKiP-m`EjE9M0_*OOv5#iBKHr!U>Fr3J<`^5LXwN4%jhWH>O+eQv)Rg(VhX3G|ME=8=P^N-x0&z zU=3t)PP@uZ_e$A%^4xHSgtMmrG1Kt_!%=6#G#LUBV|M!~^fx0oxs5-gwqcM9)nh&G zD!^|YeytNx2Zbrk6si~o?_o-7r9$EnsX^Wj6M!Ss@*-$j&Nq4Y3`Ng82(QQUCrmjW zO$G(d*uvzAgyzvslCRcj7-Z!~A4N2z zI111*HFFGW#X3h6R%u;#5Dhw9lG>s1X6B7ClOOSBQ+#mdxTR@e z=Hyo*bWM#BQ8Bh(c{F@V*R`f>zVq<9!;kPecLf&8!+Xl^RIpiZUs(tY4NiKkoWA%} zM)&ZN5r{0H{zA9RN+gs*je58-BPwL)A?w00HAPAuX6&vc^^H6@iZlMktr(#y92o7d ziG<^BP24A`F6zmXK+kKIEFcs?3(!cJpkysqnrZINl%Xx*`wURADweFuI7K2Nlage` zddzI7DNf?~Uga`#mYoI9oQ9TB_(=tPC-|V$z}l7?*iNIVqiJg%DcHk2P<%70k6%64Rb`pZC&{Pg?vrOBsll(f zGMjbLRHj^Qt24H;*m2QZ7h7#_rTBJb<)Wo+qT118?CsjkMQblwjk6iapWy1h@vzy8 ziu)?4{hHAKh#vhK&xyrD(DD4cX>3i#Z|+G;2# z96R41xB05nj*v2mf(G)8y)SLMOClOjT{se{({^{e42${5hdp z$KDQ?A7A{K&`!Hwr&GQokuua~^!UJrTTuU+&~38#zfWjM{POg;qG5K#djRRgU{oYQ z?iJ9o{vKRy9Uq5IXw^F-VIl;jtH!c_KcN}3P=6?Cf1l9q_-=nsjHjPd{1>q{h~y

d$kD>ZoV%#SlZ*AEr0tS{=>8iM`Zrxpc??LUZ{VsB z$RgW$@Gm9pzr@<2DB%9kG87veF@D@tx^@`lktfucVb_yZ$h6 zvFfpMr%`ild}UtO&WQ`NT8CLkpzggVmE#|>pLegzQ7l0JJAm{9Tpc)ZLL|j}FMd26 zekOiWH2mVj$8o4GXL9mhci_z$|Lp=GKIKQZ7Qp^pbR)ht@?x7=13ICz8~tzNAQ*RF zx6D<3=yHAmNI!Ksla7EtbU6sWbO+)-FKdHn)?x5BgZql!)CN)6a5Y#S@VOY^S{KwhG+nfhld_&puqa0(tLfcD>a6cM2$}< z5sp4GtYcl5m=II+%ft3+3?3(OSm`ft^%7E_Qg#m@jg0<-?f~jxd&^psbi7~ucL3=x z58J;@j6YGt{8O^S{&!C4e<9iV-P!gp&%~dj=$CWnzk@B^9Gd;F-;4hmrcVCb)QPJV z7`vZ3j#R&<&fB9y4*#j6+dCUX=+v?I4vmP6G7685bFhd{@(W5%dm8JYm7bH7sgj*r zP*_x4Qd*{%&t9pWS6)|N)6mo`VdvV`0(}?iRCo9FHx9i1GfX`>HT@^2xQrP4kZ zdsa;Q>gD6P>C+chN^?&=20i2QgT{-4 zmC&YXZDF)VXqXzeMasGIbL)DTPYiG~EgKcE4VARvB7JzsNy9f^!F<$w8US@J)Lr9(LeTO=J~=kJ-+S>43@i>?BFt@ zp3j@TRy;TP{Lt=v;faT6>6AVA;C$IELFwWR`#ekdh;^+@ALh-VvihQ|$aIT4N&HEr zQ|Yy5>ti2bm-IJ!5SWW@Mbd9Un*px)o zGymX+SaYoIjuU$orG-tx1~?mc9pdprHBT(uG@JTAccgRqJj^2qaX^?vcrOEIoT$=< z*(|B5cczJ3+r{2{mw$mGh5!=ger<3k1zGCk4vc$wCFgg2(Atv*=!`gu`Fe;#@BQuS zUW9&7J9T#l6QX@$ywL+gTt{#wye^KQOH0bg!CkH>f%rg9+{Cvw$Sv?GK}IS3?B14_ z-Y^-0Xg`38!8(KiD1Wh=C?@tTKQ!P3g2^%@f?lEqZT4M63WtcB;vI+Si!I?i2T8@_ z86!#YNMKXaH$Uu6(3W7?90yWJkEU9nD(2|oB^H*j*08|nt1Zy5=|+LNAr^vX1#)G> zp$zCjvCU$6WV2;5t;=^DWNuZ3CWlvvYmBfV+cxo_b3*)w=#+qvDjf`*H%-!6eTi#V zl*BKFhZXc)aQUP@5XE_p_!FJL=N-`CO3ROGbR#9ngNk(+7*VyePT)nQXzQLZBGj{r zCy8l(Wacax>qm7VP<~fT!ZQ+L#K-)=-gN*u++>V(Itj@f*HYH}`6G9c)1+4^5`2xC zoPsjLDbXp#I1(dbSTm~DTV|3EirdMa%x+}q%o(G-vFUZ+AIv=)FYS950ra0V3CirF zmjEiT0G_a9&PstFJ(W_^eDz7Dr%3{7yY;t2ULBxBKeI2)=rkzO}sbJP(I04ge)wYt0NjuQSJ;0bWOpV@ku>qedL#eLR zzz$EjCBeOBQyt^U+_ZL=Wd$?C`6s(YCSAP<9-+79LG{Qe^oxx7wJ{Sx;>qxOq6K#O z{e9XNb9&n2i$Qe~AZD3QkcCc}=R_`|)rCrx`kxPYQ7C{6AOjTKXR`%aP0)9tGS}Nx z=)2Hgj>S1#@kyd*OWUw=jc`o)yKNzUqG-Pwx6)|RML>!1BCV|xVuN0zn+|7-LnKi- zrT+f&+43)>cL3L!6vI>hPo17(ixjP&)^1kdAQuz0{+DC#zu%;%4Do_|?-Y$M$`3$o ztaZ0WmFoy&xIO3yDxTE#CFdGf21wn`CM>85!#3IjjRouxvc3bBX&yB6bet4tyn(Ql zgf^egbp#6s*2U+~i^>>`V$!K)7%5UnSQI{Eg?y!(Chi-~zxg5->48R&t@Dcg;c#pv z>_-Mg^U>~z2go`0AK6^@>lD^)2vQC##t0XXf_9%}M&qp0HhE33YjEf6C|NO&Ur{sG zaGR<;u@Jp&Z`bX%jJ>lb(Z+-LAw6gmIHCQ*IbYpQU!Y|N+0)qnDk5w=BfsW#Pn(C zVpYAL;q%Vh)iWjjt{v88mPzrovx|x1Q{_~oQxg8;Q~m}`tizoLx9@S;1p4<1jzfp0 zHZaq*if68#!^EjfG!(w>uYzwd?R3*5RD1Ued(QfW^{!C!*y>-KTX8q~d zI^|Y;+bltkOY-}YP=bh(J8%xgWfkoO23(j&6dwuIOuCKsf96j#|QM#S?t)+jhb1y}ML>ih!eciMId& z=kBX4T414PeyXQxg2ytLigcM6CxeXuFYp4BBp=q@Y18|`CMo$aF{L$I+7Mo=i;rXi z@lrVWvW}>cnvy9Z*wiGbWhYn@2G%~1o7|Ka=W$?B2$?woqL)k%+6=5m2~hKj1cMNR ze;A360Vzxapca8CBmksH4vm@#9)%ClzzmiGdrP$81k`Q8Td0@nv|xgLMg|mc_i?z?6XxbcTVg+@bai7(Tm>TGsHvS7={mTwa?5 zNE}D(VrrUSp=MK3YDTE0%7MnYq9m?FEkS5i!*&9Q#92XPNx0E<2~obfnAvU7chn8Q z-9+L(-QZ|`PqZtt*UOlh*4}Lqq2eb|-DT><(lIk2#ECW66E`Q(f6=y2@x+%#CCLn1bVCueXOx3p@-YyDs>4{>k3mmiA0Er zSV%(O2?ZgbsBV~8Mn*PODN)vhaL)xwHbLg|G9fxI61ZUUuyEhc6s*&)! z&1vyL8adl(?3Az!p-GxwOzw8<-FCsyFH909NdZe-%gcmW9>Y8&jZY`T1(HEj5GV&@ z5yO}sVVo|J0J}Pyp~I1p#0VdU6`i%mNwk+NbDRmI3(OfNPm`B>s>hyq%~3f5Or~Yt zkPP=6@yH%Ad_uu+-I|_qn$?QLNm=LOzlU8!WRbFmrW!&9TVOBWnmW$VCKI4om)IPh3y0;HGfcgXlox;O zK3|Y_(Vq7akQntE|M6Tp~kq$bCHbY~$qWWHij?8pMN6=t> z#|n7TP}KnaYPaJmOHA^D4n!*Fn&rJbD>16CrnRoL60p{U?JhA~3+3}-b%)*iT+fqPFs`Dy)JlFd(+Yk6nn%vHX3g-P7NoqusI`uVBZCKY)j`n|Sp?E}=rY z4hAAu?R5j>93zSn0yb1cOk7t!>@(&MB-*9M{SIl6pdf+KZ?ti)m*;3Gg;c{~RmF4E z_Na^0l|Vly8tq=5*h?Ro-jwNt2BS=M2U9k!Y#~q$Qh3+&mm3)w2C`+tqT10Op z^0UTjKuh|1tUQN@TW^Vp4?O!WqPGu;+AWoDX9KDy{8eCik9Dyohoc7r{6{&p_stBH zKJu?`baBfY-$(ES8$2}iVY2dJ$oo{6wTzJZiD{3hLyWs4yWM540$8gk*xG^q6tDBJ z&ZWwX3O%@00qiAlYvb|_V(-!1Ma9-#I26t;W)a>)nT4BOG5tZS~}QLeC%%L!ys8uqlU`yA|b zTG``{-Tj>zh(OZ&6f|FbuYT37Bghxgy9^%hpf}05mpCSe zoFwG?$Lw6S>@c4PIQB?HU4lg`eFtK#ETk9~xBVTd{RxfzaShpAIRo8~LGKEByV4D) zVo)1933ym^6)Feh?8#cPUoCLFQu_MJ640k6@*3jW{}|Ql2!B9_1+8+g-=GWCz_v*R z^7`qMK}+AkcDz9)u|ew`mX)`IPn{#d>&*rfLpowZh8qJ31A}tCP2Izptd=ajaxgG+z-!qZs7S17PYqlw4BcY$fCf5k9AJJ}H|a z$>R|{j?w+3(lRB2C>F&0cZhLamW{qh>8L|@9bJs|U1R$RW8I|V{UYN$@Z%;Xsh&=bRKPs@OL`lX^~9g#6v;;-}r+y7z9_3x7q z|G45h@8$hRInPgPD0Id3f4RIsrJ#RP2K<*Q>A$vI_vr_F?E5X3sdsdotLTzat$&CP#oxeWgEEmzXdEmsK~bj#)Y=awtvw=LIu=$5PN_br!7e(|vZ ztne1kK@OQ*DBAjn^!3jwf(9CPLpmhyDl^KTTdo}WM!Lo{XXi;h#`sd@JDEqp z$YjW~R1abZ)AMOYoAw0!WIoZj-`jXxH2W;hPt>*+?zdb&>i$BEru?z4lB-u*owr7F zg{SDD>4!+j@LO8AUp5}h&ahu~fAS3xN|}+9qm;772)Rr!?? z&1?6U>deMoeCue!o^Epe`)%d-^ur%@f1VMwmnPLOf5_bop0Rd+)qA%+=W)88BV0Qo zt=5(v@*>vf3iO44QK_LDx2GkcH9Wu-+&hmL4W?MP{Hm8W4(|`6n-(Z%KaCWm!D3Cq zh>LG_m#=^GOaj777r{erL^fIw=v|U}B^A{d;`u5 zYi5}ues6?uJQ9hqJtTorJn}c$Jm(K(0Mnjnn2N29H@4}QjpCd^8Vl%_ z3z~j#I^P4Ls2s}gSDbtu*{{66tzeRl+uF%jm_GYZ-8Bja-EzgH*wwwtvaqdR`W$u8 zz$QL?&^W{bO+P5du22AN(VT9?2N;+G|X+ogq+-XweZIdfB{ZL&pY{|iNHX~2^ zgmYH(l4NK^>6FC*n@pB0_f;3R1Fy0gd2-O=%!ivsOfx5ki#OJ#(Ax^G37PvFdulj7 zGuI)sF}V2W#;wKfiiKNi!+pw9@4-jadJDLIhMt@>xKf_t?M9G;P3!e|RCJ+Pwey;Iz68bbY{lD<8P9zuuK{S9?A zG4>PGeq|eB519UfmUt*)*39+g%UMwv1plmd!^j!5o?YLGpE*Y(dO>S*6a?9ARkc1X z@2w5}niO~R9XH~AM?doPYyfo2#glw#n&0~9iX9B{Re|a5?FMF52bQ|t*Zpx?XjS>* z(o6z8zO)Jmum(f=DL|T*?R1Z8-6ZO!uVwC4(#N4@f)D}(5L624OwIp8?k34cR2^

fGu0!Z=_}%*(s2(972dYC!R=kJ@y_CZ5Dg>S&U!#BK8>IymoMMc;$rGRilcNu!iW_T=`3j1KK2uNip z6NB6YvxW9vJ*?2^&1fpV0p@4S~)8bm?&5AsK7`&aU;6?TCNsOOq4fj0TKAf z@GwT7>3I1W1N9XpH=Dxz`&AZe9```N!K?WSq5ZU}2t$RJ3fl3hf21Eq7yTUYXdXLM zK7l2eZy)?z{CvU=p|*7Cjd^peoHw&^@av_%ZRt8?v4gj1(^><>vgL8HRjc0xf#rN3 z0colBBoXByl4=w+S!mTwUKI-aadA&^)x3hNXiT|*?Wmc zeWUP&%)WgV-)xVWVpM4ZjyVvcWdT99fz88ysFJ0|o#oOV0&}l}Tx;KwEx25EdZlj5 zilMC4JIi`{vfkBtTOqB|gSpy1#X1o)GQ-b}E`d~YquqN7-u2C%cDF0CgY5$6iMU#b zPxe0fOKZJ_UHZ`DYh8qV!`xY&6WN8{f*i^{zTs`!2Ce(!#2`S$7fU4QM zjV~_8cOJ%54(TK`=BdJ(B(8s%2p)uc_6gW1}wR7hT*vBbZ$XQd=f3OShf=D`fm`hS`6iH6P+;n->vhR zQx@eOKJWAq%94MM4-uu6YCu>$Dmi_6ik3-3?!!|#$W?Tm8}H{szg|hx*6$Hg`jkCK z2hIP=aM-Q_CqoRdnkJy7VjPHL{>0&;ab@U~^JFz72c;>kd`L9`FpaCv`CMjhtaOzW zx2o$yhv0R`vLXKT)sqUgxi(FaHPalFZ}bnHzRc{Ho~9CT` zss4UftiW!?&NzIdQ*juS*}4E^mG3JGopY;cbzVPE=$OqzSCTpx%8*f288rl476*Tr z)raYNAKqY%sb#@sO5P=W@|`%C-{fdpvum}0%}bB6`^48oB=>dfwJ*iHP@|(Rw8$J! z#B?KU$h=7X7nWzQT`F5F30@vpsot)<{eICl_43f;QTklA>0DmA%W4pNjFZV+w_I;8 zCe@^mV{-rHMErMCi78;;B}eBDG09oan6I1t)0_41g-f3cC+aHEub_8s%X+>FFLTMi zaYj1W6Hl64Tls(e0&4^NUNyI)zlTml$I}@TTKw(Go5-9)Z-G!ocVz{nfmjkr`F#=d zy*s84yptt+WbQ|xi-B=0`LQ+78OEz0CNL}!+`j;($UtS-g@0S>%P5C&aT&A#L(aVX zaCwMS$u!7H>=Can3yLncP#epmT_C?T;}A_SqPX;>xX5^DNMAo}DsHe!1O}BrXk9TX zUZJ;kTWD}W=zuXmd{_kjrwpXAu&nNqh0(M@XqFr+6|d>tg$aN9v0O`6Pe=0`P2d&Mnqdccsf{ zuBQ>Z1CjQ};mgK>9+*)*Wx(NGXN_aYzS5X6f!HMDn0e1w!P6)|=@>)I=tk3sWox7r zLjHGcbd_mLnG7*-Cb4d>;!69x9gd%EF+>IhgHOx2J`%<)tjCJactj1w)4|3|O~<@K zNHBdCPnjQga}|Rk7>KrqU8O78(F2vN@#F-d5U?+&ks%Ysu} zAPm|R0wu$+QhGq49e|7tA%c6_Eg&r?L4>@8-f=S^o+8$70r?4$qE#Iwts0-l4#>Tn z#72%2qfbiOYcjj!?$Y*7*9F(Y-+?_^%TK)#YxdY4#7v9Sr2*sPSK1ZNu!mME_m4nQD=9BGae83LN3o=n6p`b2)- zq;KW1yra-8_7Ma0ku5UC0~NTVJM?{FN|EMdle`Hcg%F=-IcBaPh3}WVKql3_DStg( zUZ7u5;$6`wQR*yS;qba5J*whhy|7A%snHwQoF!K=%G|myGTv?r)NZe=Q^2bwuIh~< z9bgiENnAytUUlJ8<@lj$qpyk@SUpNn-C$bn3a(BrsCE*oPFt@w>#dH0sTsXN`>>C` zqmR0$Pq^vL@OfYO193%5Lrtl8ZKqo0#XiE35aNfdT8a8vh3(n~s=DX!b@7|Uz%fRI zN>ZdTRFpARv|FYe!g@jJ`o=GHH^%i%i8Uk0=-)?6h@(N2C`4q;h=g|h0FH)vwT6#E zpj_{UwfqJ>m_|*p#*5=%zFVN++Xf}d#)F1Ni;c!t_k{)$WK5TFBpUBa`p3n#!y;3wG|m;DAXbU7Egda&}(S^1y6uF{WyUC zW!KZc=yDMpp8pkowDY7k8mmDzZE<)=?)V9PoRSG%8{dV0?`3Bj^np&EB?m2`O<(?_ zwIgTN$<_dhC;WJzL-7Rvcf%*YmC$lOWbb+SbmQXm)BCBOo;wkVZ}jV6ApU)82i-4S z?oT}7zvv2FRspjOGHk{0EP~#<@NNHzCv4at{?XbYCGwkn{cm`JEuO?Zo?!W4I#v%2 z_|3uiFFc|2iNvIhRieV$U*X57H%>pho_@7<{J;}_v#+y-Zlxi+{lpV0$Ugi%|P|+xAK<47BU%M{CFLPQUSAtsN;FvcI~Xe&PwHnfG0Ry3`3i_g#T; zf?}P=YdCgYxf6>2f+rmJ`WIwIzytpUPY6gBf1Um&`pY1xWToQ}ML5gJ@Z)ZUlM#ke zXlutGc*6MR&>vla_EpV7|4>5vAG-qG$qDR#4?pS?=l#MH5EWg2bNc=43PfbP*X2U- z1nI>{sMC*x+hYszxQ*n44er^*>uXj_AE?qlSLi*Dv?H4xN2F zgrWBJTJmT8%$j}6blFN$C$bz)A*ZkJy8`F=Up}$#(a9SF5xYGFAiuHV>b#J0K6;5j zmB1c@KpR0Jf%Lu-Bj%C{!v2WkeBk{<Z_!X>(hF*tw?%6!N@@fK(pltd5laRB{tl%5~+qq_u)N?NuLDn zBnK|-cs|<4A~DdybZ9x{3rlbYA?hFpP^v4R-nL9i`@?aFatI~z?7{$pLQvG>CMrhL zf!8#)_1M%Lu=qU;$ZRT!3R*E(_;b>OY8lUfM)qdZ{Q@$A-gld^&%Xje>!2Z#&FPI9WXk{MG!F)Cm+6#o+B>Qd0#g2e z?7d}FlzrESO$^;3ARr~(Di^I%(gGGBB2og<0s=VTfNZD?(C6fW3q}&R(Y4i(HsYRi5bK6fCo;!Iq=UvJKJ1{)ae&jEppK> zxb+4Nb6&?C-?A2yA`{Kv4C$cJ*o%BlMPBVLT94+MQryVn_w~J{`t=0$OZ;#1>b8ly z3tZ65v%A4=f=73jvOPLy*Li|(PI3 z%=yf%5NMFNDLd7e;;P zhZZ-aHhK4k{n9^x@@_S7DWpCHxGx0sDLS8|QM6lt>=(FRux{LOUzjd75^27jBkj93 zao-vBzHssuF`@Y+OuLmyLCy=8HO66WLV4k`MrCp-#Dsm9J_XtoclbdOqJi(YFKp<+ zKa0~uo-=!9(JS(S-qEC5sA6M`S1K~fqFI?;p zo!FsI*$>LQdA$Je?sZ|;3%o`ITTouugx#|IctGtgDDRF2E}CH5a2sggJigN7^{T)@ zp^S!}*Sly6_Z6~uS-5sNTo&ob!>&X5HWzx|HhZ4agy zOfKQkN9RGdoL+{BUR21Vci8}XF=LGCJFJxuxC_#nXPRCTmv9{Rs*HFBKdI9fV#L?| z>)mRere!9`$+D-n=pT3ki!T@>RLJDQ!BvcDyRHv33}Q&j3g7t9JoX z{0~p+1VW_XO=&XavR>^Z?C3p<+FEVfK+mm=wx81rSo`KgMs>npl{=bJBb9`AGFKEh zw-E8FwB`buQgpFp>Ae>Lzivu>76JVb1HHcL*Pk4{7hlYI6Rf~5cAY_$pAcJ;!qwxw zoLT1zX(A(8)w?u=fj)ohRoM)zeV^#BZ>*4o(H*HGt)wno!+YdJEKXJzsP^zc0(HUK zg5(5`*P@b?fcKKR#+=vZ)B0UrUsP}nv;4#Lhx!V(wr{86#=8}urf`~0gFc0I_;pu32(B$f4 zbG6hFn9qA2dJVym#jOVzI9{B*2KY)X^%U9j-mIXc7AD08?7nV|L(pWRn&c{^ijB;)g?@^F3o^0==7RKRtGL`GLsN%~pN#qLRYH+C+Cy^N!T^5DQTztQrXz7= zK3C<&4?f9k5_asqC3aR%SzZtWUvvZQ;-L|=x%?Xvgq#GR+FL11$)YVXz^l?nm6au& z^Hkue@Y^yPU{aZpS_<26Tq;s&JT$zz*2*KnmV|7a3YGF_-HPsJx+W8zlvnt2Xe5AR z9$e(5?~ZLt7B-6M&ZvOaa*F#?ObsEspf8syi*S*l^;m6@xReKlMv*2BnlTwInk1PJ zQ)EVaI_J5{(^hds@gwW$Sfi7I;xEtmuyq?Ti2!J=2*|yYt{g`uE~>h`EKXeZ8abj~ zEH!O=E@6W(Qv{1v%>%;$l9ym`g4(6a=jc*0@u9I39GV(5ee?0ue`U&(={yTzIDhx8 zWh}0uU{6HEQX2bdE@iFkp6H^b2OIpsT&kwry>S4QUbuq`So`+Ih0LVQ(O=UT#(SQE zAC<;}#)|9Z@;sgVb0(8t_8BGU`3&MH&>^(CbLB2CvK(Jz>k;v2H@99WjE>5^ay&=p zvG^JP&*wpWY^uk6!RXQTQEAa~T)O_y9+jd+5XXUfMZUpviL_-7~Btk%aK_@m z5uE*??u~|i8NUt_cfM94Dxg1?{YKXO)guNKlVaI+h4&O{Qk?z@)Jmx-&z8&2*1WCq zj{DL|t9HJf7vq;P{;ua$dc^iY&AjjVLkaWE)QaQ!RcVAX?%lW21J=Iura}#a9nPC; z-?f!4aNlCWHH82^iq&pEHHQj($fUf)>a(zrk~EIfACxbx_QZCUq>FTXP`kC-3n4De z+)y|@r8{5#JX5VSTdQMAvwHOfG^8}w^z^jOtJS`W&eD9R4hyJgc7N@OU>}b|0b$lJ z2O8DNiefruOeEF@yF(o5)c8J{Us`)P&{j+Z3+NTHwydie=%2ut;Ptn!u?*v0D+fCIL<6f=57wxL- zbn0A8TzgFgS*`5$Ra;7-yKV41AM>x!&ZTsTZyz*5tDa}5ea^o0ZA!bVs;|70_H+KN zZ`1lD)dS6HUy9bP zZQb|#?#-)L$WOd~brJ#0Aa6XC-CqpU8BpHU11MbMF$|yeZHs|)^EPi; zXJcR1FEkO)AqWaC6YD+E06}5Wl0jM*-Pd57aa6&vo1jn*5EPDlSKA~gM9BZS8AQ~d zBq+S9*pc$1KlXtYI}nAS(D_jmm7uW5zD-a_T4DQ}jH5|?EGkrmtF{3yOSIXK#6Y`d z5dKebV2*kl~7pL$Fj^FX?hQp>WCo>Vs%SR(wU7)bJm zO9YNdz2~Sih)1VO^?dmpIY>jdQhtcfz3Q`$KVBmEadfgb+VcPeg+>FkN$_sea z?;S~Gm>L6oALL*h7(*bt(=O^BV(##hj)b+L&k<&ohZVUT(`3DGC28INvghoW(z3vwkdoK>52S@alj7)^j^;!(v=jw0AbZ-e!V)CqEBGI%h)%al_oH2On<^JG@5^{s4m*g`an$$R{62 zki+Oau-+n1YlZZ=!WPtn(y#^f;zasUsU#GB-qwN|IZA->^Njg6rE||E$KVU*a)63oV+ zx(I&WaaO!->0AaA`V4}fHwp1V^p@;NgdUu$6%U~Ez@>BW`L^Q}qPGwle2;WbOHGF@ zsLOOx(ej&gRI`dYz0LQf^R%!7y=8kr{WVtc<3{Pg=75{es?W_L3LCbehBX(I-g2kB zb2<|A1ty)-Tx!~?JKNo&4tN$0lcJb-jg%(R4` zXqhPfRrd;EQXA>&20>D&+scQ`jICKhzy~5Yo@ec21u);9eF&%X;0OQ-a%z|!oTFg< z(^Kl&^~G-Zf?5lp^9-04eEag+Y3|$C5nq85s_CIN-&ZCx3U=thujq(CE&2*JE>H+v zKZ&WBn6 z>UhD$QS%BaPIKAX3&tZoeg)xLh$qWUCzkztf#3Pt?Eq+v`u{r1>|Tq|EVJ z4*)0W>1`)z#*dt&)(9tQ(Ed)+l)>8B#`&4WrO&|A!!UQ{S;YDV8YYXKL)R6k1qKDT zE&|>*S{tBPn6d?L8-Ic`Ddi$mYy)c#kE7aU!ypCzTt=-4l~35hlB0tA^NgAgbnez@4POczO_= zDMZnI%j4M8+&I;?w>_v=*fd%dc5wuU@?xYhPBr_W_>l#`#7yxv9}Ok{yq7n1TG}J ztz$V5-X0|MsMq-)zN#YGY7gxqb9>vvu`^Pz_V9iAZOlIHq2Fc?ysbiL@Hzn|NLBwb zX^YPoS)KbD1^rj1%vyXMBU7C;Mq9~70A?d!3&DQSnH*8q!kXYat^ZjW_p|Kpj4*(n5i%_#e87tCYbyy60Q ztmm{)J=VIY9_usol0qcySToC4Sz%8Kw_`T}kF_4E$NKFJ3g*Wf9uhzA8Lg#eE%{qV zsasEqOLj+wclM0eMD*+U3`q1^dqv?sPYUZRCx6*90QA}%@uRefIg)xLk~?+7i0jd| z$NFm%UbmkV6N#?yo)O_EwfUrQLBE3N877&iPYP~y%grZ6=B~($kup9q z^NO;ae%#|WCiR^xaDry1;c zY*;hOtRMPCWSF>^bUTdybbzGCy-U_#1~2gMdB9p(wBn9*D_Y4=;?t zB|Q~Bi?Yl0|B#-rIg2tsf*xeP|DGe>JYX8tKU`c(*w6n*zx;M<`n)BF{Cddm~4SSKR|y(Z@_qI1Icabyzhy7#^fd4tlO7hj@{X4T(H=6L#aI+n*DH zAdkMj-uJQ5g^TfNpT~w`Ee5P{s6sHPTWVpXXa);<5XaUm3Z-$3RtRR~6Zy@1-9Exh z$D{?Ka@6qnX3vaos)%eHb0+SGR$+UN6jEQsMiz2XObIVADk<8RQP~; zF^hsV4mD*o+J4a!2j0)ySsDlEk0~mgbgh7F?m0HImaH=MG%Y;%n~fujRrcslXHhF< zo?-A=6gpk4vgS)@R34=VPrP7T4c8no*?=tX8MHP%VQ@_8-FE^UlWm5pMYweiBmBX5 zD#o*)Y|7uB;tL&YzjmV6qaop{@YSqVYnR3N5yA}7Ut}#!IX$-~U+mip4R4?)AOO<4 zVwR|4A;i*s-~Gnk`@Nq~bpCk268PbPW)z7U{14mlirLCo&Y~>c8#aUgM!$2p$Ns;3 zxksY5ODx3x|6j3?+k0tG((TJV{^D)1kivf=7GmN3@OEeL|EfG0$}7e{8q4ITOLs8$ zQNu8NSTlkL|IPT}!T*3KkcjQYh%(EMg8$o>d#JCNkkhcq*BO5eUSKg|F^<+LFG2jE zM@QZYxfg)}qt+8 zbT4Bkf4p<@wNoslewJ1Qc*P9S;e_DWqjzk?X^4?UT{$85Ucr`OWn%B-%Z1O#{!H$K zT6@h#C1n{w@(Ow3rI2c}YW3?YV@m1@YegkSZq=kM0#_OrI&nxI&35vrA76atH0!!p zYELMGJA8@Z#Ii!PfZNLWn%ei3nfS*wYf~8{8*5X|Cm(QNC8#?}AhKK=Bt7p#)i@f?AJ#yRZvc{=OeXf;ld;rrO`%N1Z48QndK{ql z!1?~p9Y>Ad<4PlJF(SKrFVZ-MVK4VE%4>rOM5bT+m|swg;<-kkd}b}C$Vf96ZA5@C zkg=o&79&R^{ORfHJh}VPm~ELn6vCva@$jV8nxNiE3Cx^VXfM!I029CG@0o+H#Imi}#znG9-b^y?!Zv@ob^1C(b-o zcAF|rS|j9?!ddO2@HuC&sLFZ#Kx?nk+w=wE54tEd#ZTr?@1(b8J8Yf0r>(QyO?^60J( zLClqVYd(E0a3kW?Kkjml%oU8Od;kMiwe~#464|W=iyq*o)E*&o2hqm9o((B+zqUFX z*t=9)G(_9i`Q9{X{{HS3J%k}B0jYy z0BOAuC};bAQKt6Nn==+rk6?a>44yalhL#i`tx2hEobtf=>}W?amdS|2)?Y}(ogo9= z$RQKf*CJ7r!aY1S?k619OQ33Bn*U_Z;%mb!}@nn%$vCxom-_6sKG&su+o{U$Nl^U6o(NBK*RS#gR@Ryj+uv($e=l6U(qS7?44`!;#B)||pk^$IOCUIp z4r7wSGL|JN)E)a}EDg#=PNQTj&&IDJGnO_fA;ac(b4*Xi5tg9$(Wc*^ij%yiH@(_l zOI!v3q-PB2)&?A)eA^kzvXYFCLBtxbaEof-8B29n$g2_J@`~ouv(n2|h>T?ifYw=i z(|iH|NFy?q%fc@(KXuHV7JH|bKXZ{eUuc)Sl+kq_J?OI zE1E<)7fy~=Av2co>u)*tW-R+h&(V>9JKz~hdZX5KPnSDt4pCT-CKc7IdSZT%u_WJ_ zu{_R&Bq*}%_nG(0u>`3)CM;1GoV!ju|Lq+o@R_$GTe)*s4SeSPv-?h#|8w`9 za(^ycxz|qh@gLlG{?FT~cHMVQ{O$Wr44Ivud9eG==l}72C&iz-?~M4P_nnOU+;_6# zs}^3Q)`KlL`arsTK^Ko2_=mThDL(SRZps8j*k59#$XyqP8pl z;&u}&=!Xl=I}{76yNA{AnFIH9IFATn(1;#WtWWX5IuGo(jLU+Yo5O0johtuH#*X_= zUA}-0cH*;!|Kg!B}ponOXs>1B`A43pC+6rP1;wN zFqM&?12tPIY~AP{0tM4e!0tOO;KOQbpUi#lJD+alU+Sq?eccGouVN*_q=)N8OH$1v^1$RQ$6@#k_DOrf^gF=GaQ!k}0}?j3dsw zXucsc=W?%)ya3PUf4{nez#GKn9VS}@vm1W7su!tjs}v9))2#{ErM_`xI^hwUa~h=` z+R9JD0y2&az$vEkIlXMy%vyYiihG31D={%TfH)x?mY+bXB50on+eNwq=RK{;U}FN2 zS0NVGBJVK1Y<#SAzY!?!GSd`)y6RJ(L~wOiSXKTbU}jyQxb~gL)(?}Ku*1u3<=TAx zoireabPmb<^+6z&scviIGa+1tY*%yMqx31*>qGdbZ6y(apX>8Ay!P79J1y;1 z{u&1O09Soxd`cv7fHAbpV$cFTK6T!)5=BYKQmClI*pSvS04NS+&{NMfKgxVHAZO`hD@N`9bqHLoaj^G5-n`RDYMQ=|%7BR! z&zPAITHj!%yYj_hty-c=wX~^^LGR;Ku1~!8edi|zEIVtWFsi-stD5W|!8%rMm zK7d3`8QjjSSQhC(?j=Ncz7ei|^y~#y;?#g8vtG{$6JYR1|?4bLU=N+`oCAf#^@pG9J!WV6q z?9cGRM}I&U6!h$KNeY{_x1+-P}5 zw-U=?Pdjm`CnBBsv4)ycKzibr65pdq*B{Bu97_r|WS7eG?sB&_NVw0HDZRqfM8$Xh zf{kmS6l2_>MWMSsl)=q%93JgK0och5r=yu7N3z3e+|eG1ky22a_i#W;=r?$;Dyb6r zb&Oi(Q5>`SAYA}`_U*ZJ^6?j00>)hD|H3NGY_BwJon#st}|nAw^g z*_y?IJ$WvlbM%RFw40UtifFUbOaT9|g#Gy&$CLAV8>hxxB72(^kFvL>Hl6G@mvVf` zdk4%*p}S(9UA0J1hs&vo98Ll@>$1^^IgL z;;SPZ72J=1%ofdgS(WC9TX1{u^rf84#-1-_Y15N>24~&Rj%kv=i9<8FqoV8S=15BR zLMOY#5Np_ETu$z^jKecf58HXC2v5EyTlB)qM~tb#Wqj6l^*nmFS<7iMWH+Rp+S>F4 zv3hY2l6l&{x)fWaDoxt{K){B#4fK6VL}KMz0oX=GF>J=M_9;E)O)|g`ml%UvEotq^ z;rcX0oVkEful`oUm~>X|*K(3h+bKYHb`E6eGq9R}Smwn`H1*bcHU>QZ1=|r;%dC6+ z{Jp+Lk`xCPmz%xb90~JPeM_}U&G|&~t#XE-ILF9S(CMK|TJdMb^)pLagpF8(9t*#d zS$3wp5`xuQ2JQN*mc-8Rb@f`MuD+cxy z^$%YhUaQRYIw7P@o@aIzx9V9Kafia?Sc!PBXahuZY!Cj+wJLq1_)o4e3;y*q*yPh;~-+OV!0l;i*dm$=z4t z9r_>m5T&9Y`)D>zZtG+60(x!K(&EN?aaMwhLryY1R%8R}#E zj@jH?d^x1$d8+(XaM*1L&3e2A5vP^oLFU!IBe-)>V*!Dzc8A?dOD~EZO5vRMimB?N zQdfNgu{!8kuJ!t$4Q^BNqJ)B`#A*X=!LUYoke zJpUR`qCD_`+X<``mAc7e<(PQ+Zx_=E&~2petQIMF&q+%hACh`3{=C#}!#h5Qy{uH3 z4(~6yxx=+evZf@-gDC6~T_RHl)59m({yqU-YeD)cq0N8h83J)e#`PUH+(VA-(b z`o7WSe0X+fd?8JOfzj`d3gT`^!%8h3J0_YF#IcPeLh znpk(?W4c({x@${dtO;XBDeIaH_jV~)&u(}23Xjs{+gcEFk>}u=l%w2}CY+Oeys@6y z=RB_;yDc-~DL#3;;R(jT5%5({W+@sk-cgUzg`1XObwN=j)dA|M10EONomXn1AJ6a- zK<8zuz~a8@H9F?RUdU>wO>`ww!dQ{rG#12;cAfO?ovAP%T~3hO1z&MP0|y^pEM{~n zDsR_V?29yny;niy{RgZ>FG|w*O+x)#NBquecm%Z&gGK%OM`*&#jN9Bf{0G!by8T;< zd}!^#*oOlY=g&qTRgWI9F%@JiH44ay)9iSk(R0Lq)0z~O5ifo?Ja9i9(M4$FZMmo;6CTzf!N^i8$mAzg4^m?B5-LcL=8qK zgZaaPmIOnzO+%)nf=D$%=gjczI7w=qm0q`mEXRfpYKMjyUbzD?U8M;FkA|je1P2`n zHTMZ)cRv(r6ozq+^iFCRW_rlw<#X<`(!59fbfLcAmvCqOK<}2rT54Tb#EA4{BM44~ znSw(;GKJfY1hQpeQF7flYa1#f<$L5_WMFNCQeCL{O5~T3FqZTP9dLNnScKF~9GNT$ za#jxK^1ECUkwehH7meYM7fxC}4^r~C(AM`k`{C&6%BUCmca_K@NEM?u_?Z0_4_cXV zQE3cD8h#*PJQ(9}?|gLQt)L?@mzWGVY9me;fo~kdaS_AD|0`1TVC-2)_=-oYYM-5L z_X(SOXNKR>_zoTjUlBULq8n66T!s~fTX8S&tn3v$4M`E51F|R{ z);nM-fV7_y3W{Ns`_mcV35IYTkokZEn*YDuT_` znc{Vz!ox-A*@K`rTA-+dG-j0v^j?O(7ZQ}veEp!&<A^EmVM^2zG~osFbPoo!`&dKnaeui8`KS@s=mk+eawfNudomNU!5ev>tl}m* zEuR#XDRs8GmF?A|XZfFJfzXGTc35rlT73zKxR&|h zSx$ke%W_a}+pr|9+LS9y_eokgYj0wM4>I@;$R}f`Nwi|?%9x#*z{otGwjPmoxyVlE z6uS0m+7mQeoT&%x1`k5Q3_nKSGYlXy#wT7Q~8UWAs2b0o4)-*!sO-XadSGZyP6 zeufp3ryIBA98Ib#R$!#yrKoXh%IqZZ3-Ru&nYzpwVdk>=lV?I`z6LDz(FEc9G7hVtnGjmy-1#up)GFHe$jotDois zN=0LZ<(z}&)Vk!h#N}3cL^o#Vc8Uvk_+IO11vOQHo^s*6x{2Lyj(s`($eE(Npd)!f z==l#vQyC2Mdo}VL=W{rFWZuRdu?mQno6k2hK2~`!&y_jfp0t3gx!?gLzl#={om_x% zi2&^q6gM7eACB4uLzG-bBV-bi&=0=NMIka!2hca`}j1@$?BpHq$Qs< zN;)AWfk#R#$4cBiOHMJBCdicL8I;y*?uH0V z10e(C=y?~&>F-Vq5V^O1K9UB82GOY5f}K?0paRkOT~NXQMBBsr|7~qg!jH8**_+y) zQ*dq11-Q0HVN=^9_h+>|YX3~z!}e=!5AV;lJ&=D}+vA1*pK5#j{}XKw-_Nu?k^h>u z$MZkd_8i_%+jDP+wukqhXnO`0F}_(;WITc!dv1RLu4>$9J2E0_sHT%_c*bT4`rX!- z`cGc{S~&TwdHoA)=Z1l__ev}S8B6XPbJ&5zk!x2478E3L&7et(O-P?sWG zOPpET%$14|K6JiE3ME+PNygX0^}~j^ALb28CIo_RpJ?)YE~$(jQS*~c2V6bJfuI`& zI?UDMS2zMW?EtuX7F5wQ+!@!yL`kU=m5j;LSXkUzQr{M~lbm~=a>IE5n>}D5=+Rjg z+Wr>#cj0FkZ7jzP14QdEC^u?VuD@*@pfv@FC$<`!+%=-fB3IOYdnQDW25|M9*>d$9 zCc6i7^+eo#_=0)R$?LQUEFt}lf7V$@H2?^@Ie0N98MK~neFCTh@9{iJs}uKJTuJ6(qwd7Nku9BkIFQVx(st^@p`GDBYgabmUVp#k=^7o#<_WYixQD>=x zAMJ22T?A9a>u|kv!Z<6I_@Y6FLn3ydbfQpfQ?sM<05+@$=r3=!xG zg-1Zx-A=Mg9B8!aOycM92(i34h{V18gqO%KJ~WHt&3-mySxi8j+N~f_m2f)T!I1tq zm!3SpZ>oBZx1s5}Nd<;!dlZ!IU4m|YTFQ_LZdZHpsVmNel2MkA;FN-qM2g>tPrJ6c z#x18}$P>zd8_HAX@z~l-8#~i35#=;D0z-p1n6_uS2D(a?mHj!-agj@Rys4-18aFSg^Y#baq5$>*8`mme4(KTdE6`soYPN8P3g z%CDC^-jw-bobrHFfnScDz)n_&zImP?K|iTuQ287y^jdM-oIjzt+sJ80nR(sHf>QA^U((d zzRcIhQ5)ryE|XCY$%YUtR9M>?HXJQ$uoMU%VmirQF0WP;K|L|fwwC@>O|$c1%0oKR zbCv9$AAPb+yZSB%?H+-I{MDFJ%fC*!8MPQYs>b#{^c5&x=_q-6lrEicLj2WAr*r2b zjkzn9$n**&5f$FS{`CnlP(O*dp^Z^8FM;7|KgsaBf|N=~>dBRR2OD+ST>Wb&WKv~) zZyqhA+gRs3?wnky9V&T#8khNnN{&NsqE9;>?rAEW=BffC;z3f~Z&-T6K(;{sy>+C< zTm6&c&*fmR;{_tyPj#Dm))bGo{hO_M^*mR2*a%P#qlZ@A?*URxQYEe*Z{ z_)U4K_Y6&w2fwOdS~NYfKDt;s6wdVts^B@pd5m^=wW8c<^|CyePI8D-Wx3Ag!HD*@DF)cg6^tJPA z4F&7RlnRG|DBbe9wXsW$cLm4=1-*RM-cSQ)EaM!ZX@$oOJ{&2ru57|~o)Bj^bU)+a zB*y`lgpaRqLm3{e@CRcoJKuJ8QF%0VuIJ^z2v^PKj5gxZ6}m!Yfk-oyZrlnlD%xZ&F~?TiqQ{`lYFuXJXd|L)tIKL zf2VooNF8KzN5W3vj#;hmx53_rcCl&SkCc#XG=6dw?Y;Aa1*{Ia6TzbTIfF#ifw3`C zmq3(rf#K$z;!n=9X~wTZQ_Yf&$Y=9j!=jW|(<;MDpbM z%4cZ@Y;-XNoHTHd!3koM4wPf^uagflxE{zf8c^d**Of_pgeG{B)c5dR-wb9CtuPmk z5g`tbVDL!LoAltzOlsr(pkBpbCH>&u+MsE6^NI5z2dD(+!$X$YIDUwh=u|mtj`l5~Fw#?0~ec;yF3;u!!Cyy9Bl?sv32rGUT$a?+OS4DgV zrf|71b7e@l;>Zmf8p8QLQeq+eqDM0#_o7PJru>5zF1RV$f3~zl%jafUzsLUkUvwx7Nkz zjc%y`zlcaPvAdSF(cm5d(@Fu`i`S3(W0_wRI^ZMfR7q=v#)_X#A#@Ein(qFQ&97fX zRb3-itu`dGLd9wjWK<+JUm>mwrXj3lxK$q;zJiTW6nbqWR&oB!O))H%i!tZOBTU0W zr5<{nmH)p8{?jkMJjQ_wP%I=5vI!bl+DPj~`h{ zR71ZzUnxUOa~fNbGeRCJ!d;cZ%gw{!lEO!uYSJ5{ zgPp3%1gW1-XfMT4yyhYk7LjU@dKW#d1wD@PS?WMo${nV(G-w2xT-smbX&Fy&gyIAp z&OdOfOS6NderS4dACh*IHodSe+0dLoUnkuxF5NtUQ*@QebXC))6+@>geON#7x;VF! z3+U!cc`Fy5TT_y^bwH1nGaR@n?YYyv0_c5dHN3?s{LKXd1LVT-8A8paBI5|7rcy$~ zvZCv=Y;Ch5(XtIkvI3d1gUyN3UlM1D6Xqz>qy=ymtV*OPrx*2PryJy$yaZLe#I`O} z#!0Elk$#q=gq>R`lWWVC8&)6Qcc6=HK71|4Z;=#IYH0WE}D1C-gs#=d=AU$Mg3Q>qPzE66-Jn zVx3h3K&-<6h;<(B66=KgzfY`#wL`3P?fIyVoy6=R6r5MCJV3)$eGT}xue;M}?u<6g>u--?mK z#5%BBF(@N_1@cy`R1ghUVSpYxLgU!F1n`7L;T8?>V)P_i2mwdN9ny~vop3ij!JDw* z0ncq6;sOxJF)iCnJOE4~&UrzzeazT4^9g@bofj&X|Mkd1&o;KGGWnrc_6Gq^yT+75 zUt5|_(4q%jL`z}Jz-^I+9U0HaFjF9NTdW)h>rS1u3%&6W!7WNuc1R>-!yEKHDE+C; zDdk}Rm%Sg9!X$!c`N&1k*+E=7RIyGGe*qBB_fcL=Kkdj~U%-4|>0x2JGE+ z76B%n$tZ7D2kNcZr(mrogkUi^6R%i{BD0Bhu@>y~ve(?4wq9~>ORR&!#3L4`Xzlh9 zUrHto&fJRU({yCYhd<~Hrsc%lB)T%~*S+?pjuH1|h)ZW=0|O$*5pf~ElQ;e+SujLr z`kmi_0r20n$}s*Ns|?fsxzw@LznMCI^AA$TRC@vbp(vNmZZ-_4MAwfx+eB9Yt8^=r z;%{J;*xivK zM%}ZM#^i?&fMpkypdKQ*0MT_XR%uBIBci48g&3)azlEW!pA$BX@e%wd_!64Cq7J!1=npHv1>sHaFu=zT1B=Ctc?*AzG^!PU)4WJ(03PKRi|J8&R4bZ zDuDA<-$Imvt=9r(orM9us>PRwiAcUG<82X3?|?u7|DaG0m9WUWQKr7p`}0)`)MKH= zC8cH8F=dL%xB0645lv59+uA!iyUeOndon`0`{6Jo)xJ0R4kP1l0mf>}%dynTce8Wz zaHhq@4_{Ugd{s0|e0os~jA9$mO(spUar{1)c!vT6uwA}lu zTKEp|TMV^V79#7E8o zdIX%WI%OV$@sQi%NLFVY^@B20cK7}Q(C44dS#0xFKbBWmp;>EHgzVv~K3v*lcLQg{ zC`^l8FeF|$K<`gf`Zf*gUXA_Eh!K2MqQei=;{ktIib1U-C#42&KCXR?hSM9?*S9@} zY<8Xz!|zJ~7*fTcHNiyP_+2fAQ!k?drp5aNivu?&Fs~4}Y*0Ig?n6Tg)t34(UlpkI zu6ox`!UUiwl^(%Yg~5=nn8m-(xO2g6s=Ui%a<&;(>ETQZBl_E@FeIr0G5uRg+(@Pc z>05^N8Q)4=BtTC(GAbVl(8D)FXIC8^;}<+xl10jJ&^eiqdI5Y86^0acknyf8Acbk3p1e9SC*XQ;nd$I=>4eDBLtv`O7EbAyLBA0 zt7roZ3B))4Ps9xfYXj;BKB}@|F9Q!5;MiHTQK8sC(Kdw@ZM~mDvCRx~hHF?{YYz0z zIq|x6UHPyEhhlsC-0|@bIBOjk;tz*n+y4-XZH|Cq-@@1d#g+_y(t;@3&Q&ST(uukN zC^kT_(`kNPS1L6BPJA!2}fIgBovS@cq z3&Ek-n?<`goft_yP5jD?Ny`XJJBJo`HuB6v53`MwTW?O(J-$0;cl`hcQ+;>jSQX!`<1 z`}-7;_y$eNenq?4`R7G@-I!bwRST3&U*n%7+$!1=1t*&n zW_JA9pMOLR$IxQDCOBWilYcTIWYK8KBNoNV-1sp_&Y~u%k((CaW_F z2c*~L%cWd4zqDa973%Sh9oSJ59&&&lCxw=h2QS(jlM)qgx;!Y`ksARfM5qpC>ZLz} z288Ow@CN3rclf@O+DlJ}Jk4rW$Tm&AqD+KGH!V5)erW^PQJF1b&#}?R zyg}FCU)l#2n#5lI&X;yj8Y?E*4+bQ_w>AKt{`p89RZ{?baU;RgNQ4LQxs9r!`HgSw zfXxBP(Dt`BazNsfx>uyH~Xk>y03+(^_&8V4m|4?%I*oRF4 zjYil4+%N$D*8WP|g0_0B$O=;DiF@ZjyG%$z#!bA#$_W(>%y7d%5oc$-STGadvi+HW z22Y&{7?A9wMPJJWsii94S1#T8t^HHzr^FME;m6=#3urRkP-)Rtyh5l0l5pj=%>fAk zW4@!v!nh(E(-oM2=KP^Vm0t>IHU}hku~ELY|Ji^fm7A~~{;ds{oB2^-oxoN)?I1(7 z+c1Fq)~;j--;|qW8G;aof%mmnQJ|kTAgSGg^-Wr|Ooa)GVPH!@b1gk^wzm#D-iJGz z1QG&3KdH#UQ`rp;ty7osYxd==?HrI0sAqM;p`VCv?IvuivI|dIcY)Ua__y|E*+zbA z?-8tb)R)O`mu=*L#Kjz3Dym}xHw<*Jmna4ToVELx!NQyrLhW_9Hu0oiaqJ@no!;0^ zJo>T^^bi+2Hk7&+PK*9g z+1@Rn`Myk{BlUgd+`Z86tGstRzpu@24oFTmNDXa|!u4MWGD(q1GTmC?*&dLz>kUp# z)NBt(PyieH&YJfbcQjZQ8cBI&}90miK*gr`e$@HuYf-gNl*$Q;3(XAyG{?-}I*=VIx1;+-#eQ0BT${M7VrQK* zBum;^v7ZytKKyCLhK;oKPHy~??+-X(Y=|GGj871!oI_4W?ig`yD#PH@k+Kapq!Z?t zaNa{PO}x(3->cY3ff(P`?lX-blwpXGc0O3g9hW_GG?@ zvSMo^m0`&yXu>=i2p#32?1-y5fHExWBAN&%g{o^Fj#H$q)6n6W+aAOAIQ;v6XwLzW?U(avqLMnkWPx zs3NsHFu?dqPm~Zku72KCd4{$Wr*!`}e){~f~% z0O}9jEhPRUp#DA#6d`f_0T`$s^H-pL!Ywv3wJCy)Y~B=yveaxM{}CIRmi<9dpZWA2 zX=IVKg+enGLK?{%iwPKBO8D4Sen&`bbJnxdV(!s0Od1JWYF77s=YfIx|Fxy2$jk(3 znXmr1=G#i!+%)_%|HYwoj^9qMu#nRR!9MfZ3#IoiK^LV$B#}!{MJ1_S>c?H5`44E( z-7>e#z*YLjh|hdcFO<*x40?vipKFVOGMOME(4{2ke z4Ht=&*pskF9n4(UxGipgR-@Pi3}zOB0_(3((SVzTJye3N_nLu!FqpB^L=I;Dn@)#~ zvtRs7QYr_n-U!)pYvm6k@*P>tq869KUb)i~&qjnDqC8H1y!o4>zfZ zk^F5rEX(c8;w~okaOcea9@Hm&tkE(mJ zswU$XL);GlBYDA~(a#Jt(zLDn3LITn(dAVQr>I(L8@a-n>ttmKk`zygDdul`xE2ES zU9o4mrQHQLBZ~l@qd~z_j2vRYP;n zaq3~4$5YS7hQHienar@UZ@=wT0DC74YhJ{)>f^ifS0o|{ln3Tk5udpZ~RW|fI zKfNse@)f=VhWogxlBbV`XZbf+{Z-3awY)??yBblTS9U@c{sExK((M4%S zt^|VL;L;p-DZ&ZZPjxc}n1bMn_z^7oWF*FGYme1~!((r?=ukNDN;58_K7MQDQ^6$I z&KZgqXWN>kOne*)N5IC{Wya9@t`+FxjiP4zEpb0cYb9hK)sXV+0I+t(f^_5f|YB4|ydq%$Dq#*J(r+X0&s@}C;!EX}uvnkKP+TP0% zGcxM*_E3N!Q4CytHYZNaHHe6*l52ay1Q%s#k>EbhmE9K{2=my>pu)_Pms1>xj>}GF zP{~uA_Zeye7iOIq^sT~4)q~xo1B^WxNL)HeqB@fs*&OPyWWyd!r7;4W;uwqT@gAXp zJo|a-Vfk7)ievI)jygB`EsvS8l-v z=w+|3nDRYzVP~_GWSw-QtAdlNCGIKp-rU59Mumf_P4q*EP81|?LbHmjidhh6*9nDc zKNZ<2kjg}EIM+A}a^T8`OfSFKs*pZfGbDp*vEb9;&qNzttGo`12+dxqKV zn+sW024^kzF5~9sBe`l!T;-JM2|<2KW2B_!X`9%@dMA1Ru+io%Cj?p9aPIh^-X69f z^o>-FIjb+1V|3?E?z1MEUSrQjKBI#;ljoJU9!b!(J`L48H8(vr_H2bDavnI^pAU3 zi?{H6Lf^_6#L+xja)>{KnO!k(L+N{JndMhDyYU&={^`~(G1q|X?ijO!*a$v zQ|JSq1lJMX5o?JVzp5tSN)kci((KW}`%Vv z*67b{i7gkW!ZzIA@f9Cnp}*KpvTURxRTcn9wd;St`a#h31zeQnz1%lO|MYzd zN0FTya>G0^a$d5Iw(T^5$RbiyjS?T$PB8c*8Xc#gGGE{0@PdZYx3_(&$LxE98x3@b z8fyn!Uv&EJCe!fA-5Pk5@;n3SX}esB|KP32z0czbub(iCHwCHg=j(r3*BykztOm~Z zix=-!svxs+=7irwo@#!{d?>`JD+Vns`1Bs)T|+n`(ws}HWOhHEbLu(b;R|H;4`xql zaljv3r;6ebU)c-JaY-Mws7Y_$dBoqnDSn7ANy(M}+)?22q}wudYMTN`__`LR+Wzd_ z8!o-*wOa0znY7y~1!|cUZ~6C}DpKBwA%1cyW;L1Vlmbl@HGFtBbZn?RjzaT6aU%`w zXkIDf*bVXme`M3s8l~~1*DiE#_nzyUIg4YpA=;y&eUEtd=Z0@xTZF@sZf}g5`0nQ2 zI+$_~`M+>JrOZkcGVn6cr^Yi!N|~Wd^k2wRa*uKU9in z@{t$!QK>;MBMj)DyJ~`>Bx#Ps@Cr-)2niq`piJd2X(w=X6;zEJ=msa`CJ@|62=rRT zRF>DbNI=wqIzBQ-^)?pMP`=7Z1Hor~Y#KtFLE9Cw6aD}cBUB}+~4i)Oqey$WOyfK#`^71YDEsUmZ>e2~h5 zrn%2d`9 zSQv6+*?gnuUF{@D*a!BFbu6%vU5(&;XZ%`la|gu#M)bju$601ew5)g>vq`ve(ETgv z;Qm)}`c3#>0nfHUh;!TS_K`6uW{qSW%3KD!|`5>s{)N#8+Ac(8_OP;Q>botTm( z7WA5aV_cQME-}Iaz1b!9sRFrwEy^pNq|5$cX{ealYnWGp6fF~zGPa_SsRPID?lZr( zE)b0UXpUHm`sCKo!x!#oAE;TL2Z`?TqdDFXESG(pt)2|M646ZZREYY?2Ni~spvZI$8jF)myYsick zc}x81aU#lYe8d?lO1duKlo|1}APlVzhH=6O$FyORrk!2UG>}C~Q;LKsK_cT}Q5LW? ziyN)7t$n_zLJx*(9rJ@Eq=%MFkA#q%J<#0O zbE>#U{DI&GH}dKr>HR3fIZEA}y-USP-bGu4e;Lo7swICJ z&$vf1MU&Nbi#<<;2N~gq-$8#F&t{B%`jUSc&z5miIn#mBXY18A-7H`BnxE*{_6s!b z+YX3KRXDq+lL^4VX;b8|~;TYE?6Hw@39ZOzd6 zX>b(Scw}OFW)^-Lys)_RR<(Tj+o4(TRO?P>@zz%ikM+T)0VW{1d?`#q3KVE2e9le_ z#DSj%3m{Q^ISoGFK<$j6`pbC!j^Xja;9H&Z#gS#2_ao3YpZ6!en>!ys?y`C|A4nCz zv;e)xPJ5*a;rNQ-L3!iAxBTTa7=CCrZ-KlNDSduuCM^Q_mqRnlzl`Va8>oE?ojhNO z4%UU0zipsiAUa$;G;_X8Wc}qd_}iJmP14kJqC++O(98~5$#L3g!sc-1pEgis#)IIe z!DLrl7ZJs<;6#V>4b(40htBN&;}z&tz{wvAs2>>JErUDn|7AS?Wjy~kAjJ=K=U>Ki zRqdZ(i*xel_v(f4YxOGrUcIV&r@HdC4!%?`+tt&d*w3isOeG184}gJYv_Gm>jU3^{ z>Lo>(7ayM4#fhwzZ_vG?-y;(Fm+|aJ@R#xYlOcEZ%bB!>wC>L%xyGrdC|q~`GM;}U zfBt1W!_8lR8P9(i&-1NNeAe52HD!yPk+e!F=l2qS8P9(i&%a*Eea$I<8PCLD$aDWM zF`j9EQjFky48VV2Jbz_j@VeIh_{@j*slHw~|67ylPomKe2Hl?|i~s$9;3Bf9iz2fB z%EHJfkZE}Mm0x!U?DOSVE;vNmNH#n)>b6<*COka64V-kI5X@7RU6%UyFT>&wsI zePKo4TG~AbU28e+!an?bb`JQ5H>oZw!_TDqs%+EP{jlIoD*3YX_G_4&mRbx}=S`{~ zG^EbGXVpA!6J0n=dXky3mnj|geVjA9pXCgmT@ieQMxnT;s~&omyd@zHZ7^=XVM>!cE6rU{|5NK z(4^Y47ys6zf*CZyn^bZFfFDgN6k`;Y-&xV$n^fNc|3A*8^ZJlgWtrh;(gR?L$GUfa z(2xR{mlHzS#FrDzv-6g}oJkuJG%&ARU`2Z#to_Q0zKIzU%(uRp@egOx-o&1Y+JJNi zl6!f%*jkA9|CwL+5jmrW@13G^7hG3};%MA2g&|asZr#0jEpDS<#}3&6Z!9ROc)V zjJx88GwEevt|B>NX@|3rf1@GA>ddlCJ<^8*{>Ps7A9LW(VYJ|6kX=7P$-%exSkJ8f z>~1F3$RTWyI0$c2u~Ay%^dna?zVP0>?dBD*C0}ZOiqb}eEBOKX0H^*<=#E(1&Sc81 zPslUIkHGs~v=O4avzjHM&xS3p`5cFziTNKbq&7C-OtUtNEq6Tn;MM#g@a)sakMG`m z{_OGO@=`LRC~d+ANblk;P-BkxY}z2?KnjLHRMWJ3N!f!SnJSjJOZ>wnI}}pzoq5Tv zdSq4XM@)XHpBh}RE$nkX0)Y)bY2~&Y_iy>JYf%D_bAf|toF4ljZ;o!8x10f^pnMpq zXD&yr)E$uzBQ;YAtZSO-IwDZyW77zIb=%po$^v+_(gBxO8d&$RJgGORFzlf+IH2n& z47{LY26J(A*)v=>TbS|A6P^sNOeG`HZSKzgsW^XKVLnJywdEwRJkcgLyc(iM6 z3X9$K4viBeA(6SuC2}JvZvgAD4=}^&nmA!ciZLd)1o7 zZrj~!aNrRC0)v4oFt6A6^GHIAGy``;cb_SrW8y$418+`VpQYGn(nuS_)spUhYZu2S zvlxs5oq7EZUZctLe#0DJL}a^9w?cD7Rul$3CU;Yg`f|h$yH%H7kEC{dT;TvJ4tbMm z!B8-BCDD`A1330z*fvbk6pF(^H?`7qUn%4DF=Q`GEH zIa2wMb;c29acHV2mN2lFeKjjj#W8sF>4{d3_UXYQZ}w^;RiRn#iZl7dj}53@bFvLL16S-!C+NUU>IP@9XmW z*MhfX6vSb zO4AFZ6XgemY@+oOdVM|zwF6cCc*NJ=f0%crY+VI1;!?f3 zf5vX>Trj&=K2Zw1WXmL3`E+se@WoMoiD^#noAnc-x=)B(kFM5rVtXIf&xn@#;P)B6 z2US0)b-E*UPszxn=ivFf{?Z3mr)RNDUOjIaD}l->FJu$O)?QZG-X`83PDDFuf9Y=z zF;QM5xuYw?zPuGETDVAQd(5ki?`$3$?vjP6LPWnx1fra-0&4NC6poVRvK`O3MsrR z^5OL$kZ)XLyv(nMo1k43+dasdl( zBHmqwva3Z4C=vW)Lw76l11DF^OHL+7t6Zv3t<3f09;ZK>-7oT1*|dLBKk-)fu+}$B zd&8Kl^})jCPAx<)4E5d^}wd$F3U+RNYG_`?M;rRyT6CXleV}W=%bCV04sf`-$wQb?aQAujdaB zKD{%y_jVEW(|UK)YQMX@!|{rCKYf5;H_Rcc9kr0% zCRVxDus}3;)FJ$No3K@2i4prS51-O8Hc)Bi%HZ+cIc}$?*w0tx)J{g8eBR4ddzgY( zaxz~3dA~H``Nq9#T#cij4{8RVZ@LbCoc;LuunGIcR-oGH0@>M7m)eV+_(4w;n~dY3 zh!=Y~Z}5=_s6jG@kbVCq2r5Jjgx~byp!yofMwn^-8_>t3l{CW442*}6k5^pqV zLxfAOAg7(zK$tHdA&e6Ncld#%u!rl6EL%Fr$izgOM2}V&!Jl;=EfRV4?&|2BAa`JZ|B1!|A-g*h*1D|$_NG! zdtbs4T4eO1c?H4b0^M^9kaK$|KO%;MM=-Z)VJa9oXg_! zO7&RQ`kS|_U&UE>Cijo>qmNHN{rIkKrp7LG77{R}{xbY^?8+jpSNlk3Io-A0)gBK2 zt~OX1oay>6_#re3OB(9m@I!xoSNCEd{1=+ILh!zDp-)&b$A_~9E__!v9Pj@4uKq60`u)2a%m3E@56UQI)IZ>d z&cCZCm&AXFvzDTiCE&x~dAp{i81*mT)!G(sfB&w=q?Et#T@7!l{P?csag|6BM{LRo z#XV*I2XWS9Zp;P7+)r^9pAmx;srt?J{KBgB^#Un0z`MfXWW{&4^Jnwl6*nBLzbk1% zV*Qm1{chvg&{r-r`si8k_}zl{Rnso#4i?fto0{7;;+wUr*#*C}&$Sb*o-163d|}MB z+kHl2`;UydjggumUD$Rf6{nR|7lpfWx#D3;;m-Hr?{^2wPcC%gUGOiI(aW(8a0d%! z_o#->FZiJWbx*EI#Ef01s@{9(MikZ z<+I2j?sarw`1^%23Jauk`%n0xAB?#ydcZ|4bOvG5>F$u+Z|(DM5DMMUh~FR-=i)3@ z;kwe{v63_0OT6}HC}$7ebj9&EeInU{puin0L|wlMe&LkS>BMLr_*t<>DWdB~7|Qus zaXBXhT{;c*qTu&CerWy{F|3ucW55&>oQ!=3uZ5b_9{ugF_#xWpHfEMm$altEoV@=x z!LR;B%4ps8PYT6%2!&h`T{t@WY6cauLYEe}{5xY#R%jzRYKf{UKE(jGh5_GcQ>`|4_{GxQLb6-GEPDOQ% zTw(3GP%*Kp>6fLTp~~U&r63rBamz&a)byK2k#M16$L!nh^y!-mTf5Meri10Z??T0n zG`do_FCb~@6D{=HQc$L^ZF;*&DF?hRd|3)Q@3%Pg__{MHrM%86&+3ie(A~t%8PbtW z5O7>S)o_IOTT;az?)!Cd{f?#ky)Lk*F#jP`e8&O&MX30#-||PZ{bF4hr1@t!(NvA& zyYE6pc)vyD%GyF#%nx-gvIxiXx*zIX*B6%>f4I3!uu5Khn)=EfeRLCgg2MR=efs}o zDd;yh*T42#)_$oAq@&_Lg^CH5H{ksiz)axRe#^zWu$;G&@}=Lxl8^cib>ZC2l^-aP zbsG_q7jyUi`dSVwfMp$yrGxtdzV%yz^I^sR)NjcKvMNw};%t<4g&SFy_wk|A0S9E? z4U~=;%i2`F`dJnNSpQ|Ls>H5zfj#PW@Of&Y67&aqlsg2d<~fc;c&^U%ly8F9g+R8Q zF1mQ@oo=R_KkI^lGav#{;BdpSj_Q;=7DFG%H#m{uuk6upb>Rnl^xX~n zfAR&?Q?hYfU!>=l`%)JK1r9bJ!i9=Du1+hp>T`}ml99Ll*0S-vPjCx-FTkhImx6xO zg(hUq(=A6Y)zj^+e_)ToaTA}4ur9)hyowOvSh|yq>YrFTxcL1a)w$p6Lb00TQV#@y zk%<_!yxC2J^iL2?$;&AQmy?qkR@gocT z=3~5=1)}xz{>|%ku~_`TRqr=l{mQET4MqAR4*cq4?75Hy0{`?e(pY^%k*a=2kuvAr z=l_NxE&KN7!?OU7+qrST`nz$!;@mjE6da%QB>Aa(Y|1&1?q?RTgq6S@F_rEJa35n% zUHywYc8x8qna|t4FMQzX!hMWivcPqx`K7nd64Qof7ni^K7;jDN9^`}{ zet+}P$cam4agauaaLLo{&KE&*uJ++6Q{;H!Ua_1$3OMhv>*>XIa{M=mt}mLikKLbd zK1E0V1&J;kMXD{0glRVVN00rdMECs7-zrNF_|Fy^d#W>)jwIzXA1FJPaw5$7(1-`!d?rDf#XqUuc{3mj&X;6mz)!!X4vb;gx zQKT2&{CpxZ>6h#Ir5(Y3+2_3JAkcLFyDKG|q{Kxp{yhtP^D)A+0H42h_1uL=zgMDe zqw3ve{Z`sK$kX@8Au*+Hi?kwMK1+dL7C~F5EawuX%9~e`U2i*|A(KT?)~)&`+^!qTmD@Rn zW9dFa*E4&)g4V07G#+fm#}0gaUv{=xyVdqZm##$Y`8#j={LTMIr z*Ej#yEbvlcp#lO?_87VSKY#Og;;*0szXb;B|2ClgVNQqVgo`2Jq7n?A6Mj7X)eV&u zZFB#Zqr%tl01ph27YDRKzXS$oiGbC4V7UKJfdTxFG}GS#1NynF;AddSf(Hiqe+dl1 zEyM7@Fp&r{9(~n4Ju~+x5?(wy-hAJ~+`75Ay$4-wI^6$WJV2S}fx)sqp#P)X7VPU4 z!7Ikg?IGQUMi&BuM!K(1&O#Pj5Ce5@JeSG3W8S@K$vdQG>(kx4*UtlkuTZ^3*lI$6 ztKV$`jaG9^o zG+In~7vGmglGQR`MBAz;wD0zhKGKESQSjSqb3Bur41R3crzsd?+uU`7_{_xH31KQSJ ziN)~-%r932wUsId=YheB(S4;x8a^HV9|wl7#p7QB!~d*!Tpn3GIs8-ROC-+>kxLOzS@H?F8>_7ZCqblTiiT3*);h-SOJ39 zjf9JJBlefN5m6#AbzV1$X)ZLH4C}uRAnqc2f2CjtOB;RVntJ-i#KpON2_0V-do&Vt z!ZP#nHF67z)2+@!M{ss!O|5)U9lX)h6kpwZ@%n6NIHYyte6c49$@t~#9{6GpBnrOR z(|NwwQ}%VS#~8lYGdi%=)o}P@0HK=Yg97&-tgcagtsC-D;V*)TV=8-pHk!&a6_|-P zw}sct=+Em$v7<$xfv6$bdEFT8?LRx$oFN|UCQ0$i1^$=C9_!KAKkLRW@!ZU>i#`9b z(R3aV{hyBI(cTGu#*d;u9A5aeel4u_r$F%k|kY61r+jt5K}huLFn&T7VyQBX9W@Md8}= zKQ@{m;ax2#en^UMP)N;j5Yqffds5Olq%DjCIp9V!&&RSJ%-NFC>yp4HRq+V^x7 z+1CL?X-AI&YI#1rc#*+<$bTO|Sbdk=>{MF9GshGm`kP>@%~~y=V0hgCsq}DIY`*vz zI=)G6&g;g17(k#f2W@wdyKekmH?D3MZ;T^zoQIC1p`SisxaRCv3H+DE9&6HG{FYHI z9SZweZS8&Jh=4jBSnb zz$+N6fj9>gV99ML*C?HRT&sz2c(B<+XIY2G8QCkj#af6XQrn5m2@f5dA4GNrSucC; z4(XIM?7zHI^6+39fG|w}CJctU!~@KbEd@ECO1OcX4AE2p^bW&{ZaATH2s&?@axJ)!Sh#K> z>A|>>%jaA#JHY^&T$Q{2bDrd(^GNrg&3JdYkeDIVNM=wevJNVDP^biY8d!=n`W=W} zJq^#jri~;!GDzLY7(bP%ok?RmShFwvQl)M?hp~N#;T{c9BU1-g^meF;vI&MvSL?!& zD(V2O);6(#=$gbCGq_m_h`dhhi~n*v!exmTcSE=3TE3xWGpi(338Nn#9j@Q#$9WoH zw_F%d14ZF91BX6OUQsd#L5hmz@_VSXT9QNb#l;@aEH)E`UcJfkxSED64oAIaCA=Ys z64yKmOQnwysl96&fe*4Qv=SX<9rg_GHni6G|u)Xh@)F=F;8k z03Z&~rQxVXg4BKR{N)7h;CfXn+xXZeNk%r|CbVW3y$W2iJnA>F|;&guHqEOXVJ9JD`vsjWdQc0rALrkj|Ld z)8r`RK{PM-^vB308#ai2F;K3@bT65Ti5_VLkzTT@$X}BeT_3n4wgqaK&eF)j`xbj^cup`I!szc#$SzSM|&I#;LV55i5jR^h3m1 zFC|=o7NpNnUCz~^Idx8v7ML4Hs+XXDtA(Oy=}rH}Ll>9EzC;ew@-Axc>wXWyXRtAA zb7A4h!Qg|6Oqn7J&ECnex~huO8#dPZ!c!AHe6froEIf^Pm01UTDNKsuYtGu(GCe>Asf z`>{C5Qv2Y;OWo&9NaBV*1X~}*0n%5CKXqE&TJe~8v3a#L@Y6eEbTY3Mt66*XA;URL zwVa`pl8Q&fHkN8rw_X*yRFxFHzwh{QY8>mZs{OrMdpwjU7LwgwjRM3d+-O{TKOrr!y`nN7#rQXby9XB8XK0c47&Ha zQtqZ;i>}Hwx)0mVPNJ3w*%lAf5%ChwQyUzCc}n-6P5oT#NfmvM;VPIKfwN0%PO+|} zCbkoQwzn+z>A1($YcFlkb6u(NWOPt$D5qF+>_fo5X7LgDboJxTle5!RwZ@YPPKUWW z6u@>P;qgOCUp(^Ey;M%o&nl^BpLfsBJ`zDr_#vMeA&Bx202G3h06~5Q!8n4rFgm%f zJUpudddV8vyLNh!)_9Y@@}@lUreE>$(jn(uvDR_*$&2?9&GE6A@L{U);ac@!JM!Tn z_T_c+y^`R|m+O1=m9IdJulTC3$dRukv7fY?pHzaMY_6ZoD?j-fKlN2V~s6b-;g-KxXYVH-kW2>U%f-P!_eEZ3q!rd-$ovTR^IvU5x?^*402qG2- z5(BO%s9VVy0%>r963h`9#DTCHAh9^>Wjjd*2f=F=!0O-XLfIyrzxdy1-0*X^o`V<`&ITiTS%X-+FP@zN zs(Ka5))dTz0HPlPEYtv*o2ZG!EeWz&U*xjRuSTvABcQ_Q2(RD#2n!OfZ={T#ct z91(hTv!g7t>$LHH#GdTBAaW{=ag@ZcOs(}BDxB&d4u89_AYFd+al2@f!@PBtt-^EzphZL~rx3p%`mwJ7BN$EpmY3`dc8!4PYv&4kgvo zab3VsrJZ^-kRB(#E|H042uM2jlz9l)oCmUJ24%^okj4PVVnL*k6z(D5LANzYBoMO$ zbSxO=xaLyn`h==Nj)HJlOrb-i9^X? zgMgUVpFVaAYdW$!eGOzxN+U50Be66Sm64!EOBbNaWUEUbj7=X}O4CrVr)y8S9fOz7d*A`}&{K-s1KnC>`hG<}sLUK?#usJ5@S}cf-Gz%2VMA4KQ zp8Ex&&*vx>h{XOnQqbX{q3qqhUi3jMEf<#+(q@Wi4%&ppBCW?M99@ zNzSRmfCW=;@l)h0dg>457n~qHcn!8Q4_k;0INMnPr|T6=#RfLN1&Yy0N0^yYWvY@? z*h$_@VY4)1&`4(OF^+#y88s%RB8vDz$^}mBmptosa&m0?k0W8#&wl_A2hKB zWQWNOCQ9Smh2ipBZfXSYGlQ66PflJJ9=?{RpG;aYNu@|iJ@QW}OH5S}ihSDwGV3vN z+fRPe4xI5`gRA(1>G$z^}74Qor5-73pbfOSl&u4dj=kS=7?dGL@iU22G7$xM6;T3+-z zNz}P=KgfS@|aB>ct%GBq}(#5j8tW(*B}xH**k+gVnKat8cy%B z$Dsi2@dD1dipH)K<|k>GF6k_gXGQMm!8BqS}OXwyb5j za;k)pD^BWLLIUjpwv|^J9^DmautLmtPv9p|CgIC36H4G5*AUQh%$u|>Y)$8`S3`T3 z#L`tb*_K&>7qiEo--?>238xD8N^+}frXJs7RtGL;s=T3pN^U2QhtnuemFZoeLPS@| z93mCfn-$!WPN*n3f2_Q(z(EoD?2I};wV6x^3%!~WqDoq?z>x)7uXKL9lx_7{eLC}Dy)%hrn8$|Z)@suJN{C8bdh4Plvtsfby54AruzGpN zHDwT+dNIsNXI(~PqOCd7DQO}P%#aT%(+xu5f5I@r;7yvG`?11CqfXK=oysXSg1MHn z$8jbnVQ$%ahTleM$nieC_t}at*m!~GIx~T2XhVxgAHI>Dp91oYdwne%F7%O_y;fRM zL(Nkj-lMw-CpY_Z^gz^9Nw!Bf$TCH!CasZ(+}xNSZ=>o+?v=UG+bBAOQ7RWU?;87z znd7Y3iC&VVhZl>a^qF8gs(d=hy7)%(7F>c3N`H{MbK2U+L4h{IAT}ZDCe;DID*4PR zfeK~Lwqi~Mp0oVoso>vBj0$tMbu{*&!RdN~K=>Cd`Hc*$aIKvhxt>3G2@3km5b z@E;eBv?2qVdIC8K%UtT^ge{96NE=yK`mh;1Vt=2sqQDW|Yq;xPhkcJmvMz;-Jrg}A zQ(H8%At4>hV5B)&@NB~aHs=B4^LS3v2U2|Cno`R`B;?HoW6G~@KccT%*E2iutW*n2 zUe5zzAc0!)fa{r=Xx8G9Yi)BRLjq2>Lvn}TOIMo+fo+oRa1W``L#mEV#kfm>#&~H# zBO@8IuOmD7_d`jJZpYvj5qKA^69@~nuC1^~o^WT2|hI<>nTD=ec7{(zR_?k~L1c3LI*}6~JWQCbPmeuAn?XZmm`pE*Mg!zj zU`Z4+{IaeS;X#_;`}@fCoH|B>SxH$>qz?B2`o;%%<-!&|A)4IkJ;0nz-P+u_{ox=5 zo%TqVJ03b@B@l?3aaTTnovu*EuE12u3uUF)1KDefAx%mwzxm$#1LYETW;epst=7am zq&sPq1p#yhDpv1+<;4{o7IA`S89xrN`@=5R^T<_DY60wwp+2r z$%^OF$t4ACQX|bk#|FU}8&AhA!)$gAii+N)PiwLqE3*N>^n}3)-Lb~Z0gU5LVrkdc zVsD;R-Y(O7A2+q{)oiq#V8E9;Y_Xp-hb{Q8JJnwIk~S~f-Y);}-OBKFHyRMa3xyp&a#dNWNI zXKd<GA@Hwu1t42(aKi4Qd*i{CBe#i7L$F^ZC(Nz zt*$&*6@L^co1&BajwGTSV}Rs~+<58$6oT!A`DXz!_ta8FX&H7%oQ$q#$VD+^?Hfx5 z5iy*RCnFqbA%tMjDVlTnNJ<4_uvL)e`5)W8Xz?987G+C-X>>+V%e^p`+#$$jOrn|>9JY!sxh$-EqZzw>f(Vkj zL)KD)5R8dKe$zy5!2n&5PBkYi6Dl#2%#HKvGxI%x0jMXG$krgy-Ejrwh8TZ4;F+u& zR3%czOnyL5K0`(eBS=Wr!oyU8G+jrNtuaVQbcur^qskd!smh-__UFnh74$p_&7NYlXX1Jn#E72Stxf{X(?1 z3`|g%ch*LSq;U5&BO`hr}hQ9jMnDhSFY)5lNhEaAlzL;9C4iHj|kKhP44RL;dY(=|6ZNljrXW(f= z_j1%IH-2%DA10SLwLdbG9Sb6cu9?xCz6zBt)X~<45sWQw*o%N=SD)aEuM2UBRTHeq z2IJ+c=)Ha1ZikFmW$b2!OTac{eg~a$5^!l^OC^07+aQFfF>k$y1Z2lf1u{6bzLg1n zS`ur5;7LA9g@|VS3g8c=C_d8Bu9YS7!xPUv1{S=@1H2^W!!RR@~RGBk#PN%Z_OVgoPv|u*(U%GFXbJ7_a|=r-=?+U{s73{QYK&5r*7%z~^+EIX@fici9wN**GndNtFf5ilT*=!b~W(6ELpeDxf_GO}u<&@Bfy{;!HaNW`g$U2wQ}0 z;pPVvY$kvO(w%1SFb#QX>6;xLgdEq=FB@K`l&B4R=Cq2`|XL3nnH;38+HD)oP;7E(AU6g7mriQAM*)B_IoEbTi~RptH;Y zDz*s9XZt0RZiqKu)!g&L(?Y&^GZ~U8nK)n!U}9ue_eR7jYap(9Z^AuC(L)8r2J--Q zHh6)pUNTpDAP|r>ck`*Pp$}3YC#qgAG9n=^H^2cieS2|wF3AswW*CNu+B8_AOyuk9 zBaXN!wJPncO^8nyYq&xTNpuNJv^7R@yQ~Rc^O*x`S%)U6ol()CtBMECNGp2# zdjsO3@&FN(;G2Z%5GQ5>c62U7(1<-ILg}YBMJRKAi7#Y)Y+EgXWaia1QLr3UfkZG& zMr-ytRU!7gbrvvr>D z*fd`e#L>YMDTO$_+8{5VY>#-zcK?0`wheDpnWjrHmV>#Srvv{Rs{_@5J7ya}_o5_G zAMPPia8W~G%*YJH`G0Oz}>d996tE~ce)2^!u zs905r)QJT=YMYEpUB zq~`F*3?u{C>c*{~T*VX8N8n|3d+V+*uT`_6#wdYkZ{jZigZU)OLcruwhAAtGV@TRU z_q9Z`uIb{W9lbDoA@Lj{yb{D?z7W5Vpr@bm-Vo#>;$6^eW#`j>QuVPsi+;CV@xubz zcvC3|=whR>#dW~!J&K$S8*xnD_XH`B3BAPT)x27lXO-o;pe1;$`lvjFC$`_an7&|t z0c$?9$s+brjZ<)hzTC7kyS1e{18Cw_m(3YQAD@?%&U7hO-GMW*bcPY~vZgk=kDu3E zs+F2Kn)pZWsFJIBLv5C#?+bidbr=DB_YirR`|4*cG#A}wQP3!LwPK|O5K&f{x4RTy zeMYk#TR^;l_VO-TO7Ke{q|jn}R+3Eb-bTv7*jj#0vDV3)AR9Wk zd|xevMl~0q?ToA7pw%e@#zsn0VPi%018~P{XETy!`2G;fQ_x* zq@QjJdQPptz^pP0BtW7GsiRt>3sPA+3j)d5ffY)@*v6o}HiXu>@Xu|ST6V#@LtwKZ zL1QlL3d7SOY1$N%@VoQDcejvdsIC>ZM^j4FZO&xiKB8U0QEbfEh9hswWu`!#KGO1Xck0%Ly@_%cr4u*-jRY{oT|DY?eV$Q7gUI( zbFcvkO@d}am%KCwbgE5NT)!@(++_sHxlI5z6|WiYG**?{yW4DbR)q7(4YmTgFx=Qh zM+a$qqO8XpWwHXp0zAX`{M?KI3yvLNCNCc*-rP%fw$a~|lAT~HQ+X%cR7bb$MWckF zO?Mh8iq{78b%DdMrx__X@7JK5Df-K@UbbeuRJyEFxD0c$!lGfYp2SKcrh15B%EH6l zsa$rA(3h)eh^udydZ0|auZ#enmZH<1!o43;AC&Jx;kZMJO9(~j`?I>yU;=%bJu zl>R(RkoQ|d-PZ3O$|BnYFTuc37Ae-&vW!d`=vCvzM5vZovT`%Y8$gj@t38e>CnR71 z4P}WuK?H(aHV|Jp3jfyjM-&-)d+AW)ayp}7f*acmhh>-DcTh^2$O{1@k}7C`5%fp^ z0=ZgdVIk`BJulf#=AJ=nZzX@M0B4BO3{JC4a+ovaf<&DxR&;OAUT0tS^?Srr31B~W zb^Ay{UrQ`g_m|w-OWgGJXWWA6vg98jfM#6EGOo_)5kPAx#Y zl3iRLai&xN&sC%N1&ItV3>q;@04@?GQjbvw#x*8i$J=wjEleZ35K!R;vj?|VQ(vYJ z#+JZ61eXkay(o4Y4F(fjO=)}n2|OHge14T-*-czQ>yhi0&jhr%wMiWXhs6ocw$L(z zP8I++l9mt|gD?@PLzAcwhPpqa#V9XCJS$H7&&RcSE;9 z|1L`KJwBGM9k**5-piOUIwQvZCggobjd4SIU0{&q&!N@dda|c%V1{z*8J7mZ=G+iRo>?2LicEI+i<=k=&Te2pm^WpR;6Ze zTxlp+fj*0d+p%^y&Zx_6le!E`PB9zAs4}LHg@1nxU_nuDa@?h2GAZsYl-=-Vp>jnT zH@>btp$jwRgn`zV%kx>dR+}z6alC~xn({E1Igf+0V$j@HKs?$xipz+6_s#rQS_b9| zVXKQ&z!xqD7V-B_#poNTR2Xo^-t;Vbd#ns}1-llT+(_fIzBerV%v>o-)q0o^WjBUs z@2btrfz3SM{kLZ>_t&cKzdyLo55(zW`4oIz#SYOHSRGDaR7&7oNLk{#;A`w{xqNdW z2%7&4#P2X=z8h-^NrEAW1<-S_nkcJbLE^ycMgw%NPW`!y#^Ixcn6@0^3{}kag!?vJ zQW~mpP8JjD0(YMaVQAf_L8O6Mak{qADdmV*uive939D9Jko9>L(D16m0nz3Ogzx1m zB_oP`x1wsDN__MdXjF0agXf12n)yB3T|K+2Js&M0_VYi~4ER(I11BgvoY%SOBS&eC zYVtBPb%FoUZrhM96-X!ym3$NRCd5t+2{$<3W}n~tk@WUW?dJjvE7QEDa{-rlX$Nt1 zy}1+QHbe85&R862QIhVLxMg$5UP({^!~6zIKNn;B_cH->;WH+I05i7$i<$tNqkwsx z;uI1F3x^!w^oZQR|MN6U5Lo z#E`5SR0p{jR=o&!-PlWyQ2`_|YfGVvmqO7wd}!vtrEbl}R6df3=Ko)HZy8i&|8{{A zn{JR0kdzc@krDyvwkQ$lmX?l9BVE!W-Q6G}AWDazv`U9`r*iI13AWGwymRL8iD4W+ z-s`vGT8ry^Fuq?{ozH4qQT75bjAZ^ETTu%ANEhR+EBj!@&g*q6=6Wl7 z2XfklDn`|ApXaQJs^E%k+m3z9_4K{%)BcL5AGV*4aK%m7#?4g3&2Psob3I$PeYRck z?928uXzqA8yLhC^c(k2(EbatcyM*(V2^V$}$hi}#>=NlJ6EE*1vT!F|u}k8rOuDv{ zB*2|4Y?mxvnJm4Ne3Lun?f{wVaomvhFXD#32^s>y_0##nUloe|m@GVu6`q_e{dlDM zAN~Tr&mVR=Zs>m|Zs_~tU26;F(T$VN&+l6Ap1Nzj9jRyo#MEz}jj8{%F4(lR{cTtG zyAW87&i8Nni-rb{%I{is&^)d{XV8{ z2%`G2@1P>V>dcK(--37DpW=pgvHe}?KZzSkj>bPf+aor3EvM>KkC-}vSQUF&CqWTWbz^@#BZXVV4qXXiIkKYv{S^oV5# zfOvr(F$Px2LOlkh9`HeyB{8Zg^?Gm0eyehDn(I)owY9Tnm{+Z-~x`( z4{^iq`VM3%irs44csHdMYWQH^3v@~-Nv{3dU27~s8&Gx+xp6uwyT69|+HUhWZs?A0 zd=fXTrhpY&nFsD#uT$GjIKP{1n7D1aAd-DiFJPM{ZnL0hh-|BNkQfhjxyA!72yt!N zxwv}2;#}gro0WA%9Wp|TqEII8OKoCuO$)_r!Mo=p&0Y4eT4=6!&fI_gMRKhRWz}J0 z=&Fw6X0Z_vHyn=u`VJB=ntt4zKDle%^pXADUF&q{dzK{^OfBSH3b9%jm26jn)?wMX zv|8rZxo%{r35cQuh3|spF#327Z=6!KU5&sAD9_1Wo%hW5EE|qT6Yb;W9yayj_Y+2( z-n_wZE?9>S6}WMlj;7?ReJsW9ik?I(NXt%&<6)=j}yYNhZH40yh&>8AV{Ue`C4SuBs2~+ zg;rEQ5n6}UCoN2qW?hWMCnY2--!FwhSG+~J(uJ!uRs{cYLCgK8W*m8~@8~0fTquTb zAzrvq2WO$g|A{3b(gKQ#Els@5h^~gUHanGrT)RQ2^cG#iP%7uD9tj+`MeMXx8h7tZ ziIGf^*X6Y#rcki3PE@|ff)=Dltix$%^%)deI{$U5HWxedNO%u!EK{+;VhYV&;g!Y4!Y{JjmQ^LXvtF}v zyo;%m`a~dddF>q1^_&bjFNt@FgzM>I(wVm+n%|xDh)KN9R9??iY|E4{Ykr?=x1MEy z40CkA#q<}*`2Ttk|Mw~U{|uKv5I^EHGX61$|7}SX0XX0?vh(nM?4#;+7{qsU4Gn+b z|L|@^Y)I78_`~a8%^1N9g=cBGdGa~=MQMf>rNsa;-pi_bS)*L|T@W8YMj(jqUfl<| z{!M|`82IG)%4)1?dVF>cxc*iCytKNuepsZxx+3(oV*DXYV;<1>014tZz9xQU_{7q~ z9%$GUcEXC0ZuJ^TJZjivCCCjy;8`K}hBQ7f0}Y$vMGr1K*&*(kOFTqIj151W8R47S zG;Z|w>2rtWu8KxUJe7E&awiCjP5wi3Nmg&3+AAMzPBjL?aQ3|D!-h?Gv%05}3Qazh z_s2(%g82KN(GD6mA;>tl$~e{_&CgG5t6~12INUn5v9*HjMRVK@SzCHSb>E8tl1EKI zOmgvZ8Zf1&n}FQDHEcdO3F51oFh3GZJ48n7OBpYH@t^lwTWJ+FjP(z5zY1Teti#}9 zLb8lmUBQ~Xs-j`wrLy~8{lSHOIN>^q3&}JHFbMMRAK*kjy%kRki_Su>LSY$_fQiQF zvM-1zL`%?&@TOc>9=!gDlHvj_3G64y%XVf7cI-~ei8yR4*kdTTcvxhQ6)e3Gyx$Kg zQVI*ngp7EC*S0*o1qTX7FNt)G)}l}nXG{bXb#7ut2y4;Z3R4bOihguI87ei(Xk}FU zOc1{*OkQM(PWQ_zUhaB9(KWL+@0r zm2yMl;3~?Q#2DbZL*dmg+|z$~1Ctm#R3^+cPhbJL>Rp|3-RzQjh*AR66>Qn;lv+Y- z6^#0)cjlHG-M|c>h9PY!Ru$^i+KXlW;TS4`LH1%wq zHj_hzd@>aC>|BVu!ZY0;7~0+y@2K#XT$P74FA@-hM{Rq%s9b&}jw|lrWUoa23q2lO z&xY(igWeZnN%Y+j^f+3B5B&$7APt)~FQm3c9$)d>8ofdLF=Wh7l##30GVSf!c;r6T zqse>$C;==k{P~*$7E*1trnpsdwVyLF$SVczzg*g$dHsQB-yR!(Hl`Bud09aHtV%i= zXjnd3VcR&3N_>~DVABa{`L%D?Rct!q>(Z5uvM;MB%S<3mKs4Qs05ay~V)i^pc(I+^ zsxq`QCp!v-*DiZ=pDf}=s>9yUP>1IdoA`q(&94!lS4^-v?;(t@gfW>tkY$! z5eF4TOw@7{OsZCxV710q6okPnD4oLSF#`3Jj1A5*eu?MO#9q_4Cp?BU0olXXDX0NK zeBL^Itb%%Gr(|D|@*YN#au7!|CXyyQrRs(kD7y(j#*Tb)5~R?2Mn7g00e7UL4T5v< zRq=uD?qn3|I1M+$md^#g6TJA^t?oLy0E}Rb7KQ#4)D5Ss;Fz#i6gQBnoylFGePc;M z4B~vRf>&hR9H^MS-lbPU&Se-bq>3@fkTjAuM|K^i5_=> zq1H(?9qjz+qSQb<=gr`nA{pM>lf+~Ob<|pGuKS=bg2D-*WlY0u7#%7@Tu(}Fb66H9 z^ZQ3#hzjcdw8x$uo`2BcLYb?1dpd2D?b zL*#I}%0t1MZY#Ic+^^&mQotyGU{PmTw7kdl&$MMJ1EJ27s>D;<8!_p zykUtlktth7(L6(}SrV6qcRxN+CBO1<-d*h>(ePJ#%1ZcvC)3EW!}EHZ$gGw? zJ|n+9FMFe;D+VTDWOOv5^X;Rtw%48`F5{PYw@?v33ffy#MbfX%BV7*z1u3{S2945* zP|EuSBk)YR7OOSc+q@U?K)p{l?$ctE+90>uI>ooU-2p}~jxX3jVB3djcayQ?>~7@| zo?U4U2q?DPR1p;yO=}9L4ohJB!iH*L#~Q;Zn7&_@_DMFzw>?$nio!CNwjOUkx^+Q~ z{M{EQjyIv+w%ObiC6_idGAgQnl2fydx zVh`dbQte!sHNzap6@^%Kgs;2~-`FcEB>6omMqAk6g=L@TL?4;@N?u>hEmd&4*e|wZ zgY~tD`kdO(hpm7crHks);x*Lt)UdE5L#$3_N;ufI0d*IJDw9c$pYUst}XmK{sO zD^Iq`b=yt`!5c$Bdgz*6lt%7a3F?c_iXD~M>FE2_Hw_(m^mW#H*>p`ah}ZKaISG^E zmQr!DuQ_R0*R{KiSSlOY&fVUk^TaSB57XjJ?*LBxkOE|Y6>GZef1 z-5Tqq9gfzway_=t)m1BjhD|eA-63bItu_|EmBHc2N}`dw?Vn&mtJ59Ew@AXRY_>U+ zO*b#!ao%WW!2$2q+3(X*fo4Jox6DBOnu;A|_x00U@Vu>< z;!6^hiOzVHoCl~ux!1GcFBg88WADx4(L|Id7s-3JnvkbOu>^Yc7k$lH^|(9 z=tOw|+dZ%gA1l0A-z_{uSD8pS30h&ctqTPp=d>CsmOko?UV2({N-9qa*-e=C5W>e( zaLTudTB+e+gcz{PsVXpSdda;cJDoVoV4M~7neshF^Uo_rx~7tOvL%C%pM0QI34btyblxD$6XO5 zRR$NI-~--5buAPWNAP_XNr*|Ms~qHISLm@XYw9^JXM}Hd*~A;fj_-SU*$Sz|4{GB9 zlNf?3_T!bC2IBnwVru?!ivB!`pm(&c{oYo?TmGYsZs)HC43+!0%Lj}T1kCCM%y|3b zB>Aay`U&QfHuqf(g1vsb+&!e&|H`^MR6l65(dw&M5cGE7=g6Q3RzdJlL5OsLq>Vuh z2*LLhf^aJQcfI|hLa1`YKn*rDut@%RGeHYtte`0k%Sf*3My~Mm;PQg&w0h?+J-%}} z3Pd*p&$bc#Sl}_vU74%;#5Cg}g5q|@Z{082219d&nGc&bvxMfo6TO=r=B4iL)EQh& z`Q#qflLt_KQC?3xsNq@YKv{*l+%r$M`Je1d3YaykJ=sWoqC-clz8!AP6=A6q@pvLk z6T#iICfuq&!if&FvKjGaIQ(g_i%~wQx4v2uB92Qx>XJ=>_>7}#KU|%j?pv^}7?|1= z91+vt+h@u$5CJ!!;FtZxTNF{+ST5?CEu5J+y2tCN0kHrPF#1#iS;#0|0augT_JKE^nYOO%du&#oS_1a}$n~CW~#~#=df%>0MK(GD3{w61`Fv zOmc-rY7@rO2BGmjiWRfVhJ=@gaoY` zNnWK039NuMMig1I(2@yCYF2O~EP?673NT9#NC&E$!A>TUh&l+!opTcMs zYr2*av>pB;Dv9rQ3ZtT|dPPb_ex#CGs%EHvF9AZsjKA>?ZfM^FGQqSD(23|*;(BX? z1v`_)m!t+@={%A7ym#ifH(drvNj`=o}>L|sv!GQ1ZkX_|3+ zIB)S$wur}t0^6HBc4U`3$?=lQ^kPtMJR$_67>b%^#;cd#_5l&um#4;ikhsPQ$(4!5 zlM!w3>q=I1BUgHL6&oZ)mk3rS##91FIE`dww|q;_qhM55rZtE@Pq2T^c>Z}0CJZ)n zI7*b6e;t+VAc*L_L%wdgBzI{(W*q62qT67Y#Y)fw4T}tG_V}x^Mdm7sdzfmoDfjb* z;0h_9+25C)tgKXf!7~WDL}uQMNa|8?9<7UV!zCU(^H@mE3D=reZVJnKq$&W4b1bXU zf7Ll;=C+~1^X3+~V)_~cmrB$<_eR2={C*reA}$gCFp%l^Rwj8FD43fn&YHg)0fJ5}j%eZat|&rWHw{ z>IIAhLZ$s18<;Xuyf-`oul1YLvI$<-?7T3J#jvb0yIO^?FiL>0SQD4|W;wbhqJ`^$ zAKVQi>dS%`=V}G8*ZCWesZ%9EDisZG@th-FS0na7TuD)D+)rh0D0_Fk(I9K!h!zm# zr`Ua~n%$z&XozLX3nybv8L7m$f9`y;cug5v7`Njbb4xRkqvplQEIx54(lj%eyR2jw zpcjLgO(|rJ9;gWZqkK?!;QyJP=-!@9Hw5UN_epOPr@-{;=Tb38puDRUc%WOG0 z*}ks@uTN|?p9b+fsgnWi0QVrKlbB>)liXmGIO_9 zA+U$ZCVxoCg_weOc|`iwwHNmXHEw(%$1k|pESoPqQ-Gvi)q!RU_rwQ8ehI!Ht8>MH zpLksMLK^}R>vOAJXUSD7w6QG5oGNW04kAw165`gJoALp{9Uq`#Q<$%L`PbMGXWM0` zdGE;%hV;JctnVfp_{fVbh{qF;R%<(lIIc1v%Zm`vR+O~KP52N?*dgpT%@u_xoTz`bs&-`9huVMHra+8$+O{_+CjLTawVbaY#PhZ&%P489=*0 z3v(mqe%7O)f!r^u(CyS!mu2=xrD@SrAJzI|v$zg3CM!3u4I`0Yk1}MI#Pq|xP$rV8 z*@(B2>a6nhf#Gm07ivQTyIMR^AF)mznU(9<9wuNT8lenuAmtwuWlriApuWVMDin1aj4PWM1q-OKhQ%nwYHyJrULyECGY*P|)6Fc!!@P7R-6$33n(~)CS0duY< zjF06%PFrKvXTO+mxz@`n5O|9~Rmi4N6zz_~!ZhyNnK(wh$NJObp)ZbtRGX7Pdo=%2r-SW|`_-V>RQWxVcvJ zJFOFArXS~q9>NE1rSx!zEGmXzSETk<&-Z@}7;c{*2pIgtxG1A^abAe6w2d@>{b;g>o~%Wjm^v>4~f_X#fNoulqR zDw4sv@)DJj2?5p_`K78XO9$t*PoUJ*Rn`raDL ziJaGUR{_w+l7G3by1%Zr7_xt#2~U%WSo;~VMfIxsBA$QthVFw)^7|Wk$r}&IHs5P( zPFBHf25cI3z$-h$JA6X3{Iq%3`GVUsMHksEs^BdWi!H|bEpAzwpgc+Ez*QEuZ4K~t z_{dg7{I*KXc7oit-thKD?v?}j&L-4OYy6I{z>f9kj*R;b!F86xMZyvc)Tiw`w`(@@ zncypBK`$TRzA&*bd%*NM@X;$-+6TmY&ujO>gZ3)T_PU|I^qDVq?IXW4A<#DaG8Xp5 zYaT?8#-(9g>v!piN>GVj|Y@7pDQ+`|Ad zjRYyOlLU)Tg!CT;@vm#cXDg-i58|4?fCTZKT-t70LW1}sX4|oAs=D*X#e`6T`xRn0?Niz-LE(31ynR1$dGj6e8 z9%syVEy&+Aafn-NgagsUHSBx?jI{$p4m5Eu(=(d5-mxaG@L z9LL5FrqMr7FD$PdY2qtO!h4l_F?%ya!0Hr46Sq2_+If%a{s^H&te&TOp%@w|hp$Zs z@$2K&DHauKG`nmI@)J#*x+L7xv|WiSFs*H$1rM@16{aD_L%>3RL#a5Un+>M_!qcR+ zjQ3fJ{dd2VzHhnVuk`Am)C_QoMO~#Y85`XxH63dPH1TI0l{Tv+;t9RJp4DL3gBE0U zDr=0BQnPML@`^&7r{SU@jl2YGx&^d+z9g4BKr`L)sfotr6iA=m=O32SV0KFg4xVbn zJSe9LJ!wIfd?s_yf;>Uh{xR*!VI!u=#Fgz;qen>(I_6<57b|J;#i1XB*l{dP(7fBX zv1r=8wI}RrYY)XKiYVifFNO$mnk2=EgL88sg-P@v!zQ*&j6a7qO1h+QgR2odk`xvW(oO+N&1O=CKFqkINcA+$q%%L{|C~Xc@%VG*xMj`fEV9SQ zv)Sh|?BG#~CoBE46_+w+^WJPBd!^MVTk97z`mn1PwyqTN7j+^F*A>Dd5zUvhEBZdv z4i>pFS9(;4+0s-tnVPk4T=*e(HkWmtQS)-;B4l+6@vZM-wL50>;>!wRl%<-!aWM=y z&`UaIj&iH3?iol$qL(=^Mg20XyP*2=F>SG33SN_0yCj$FZC9E#&ZL7O?fBV&_KXcG z;ias-bJ%ShQ`xHlq=6%g?fkRPnLBA4ctjh7iuR1KacJf(Rj*w~!|7_w#$0DB97T2O zxi#iudQwhP`cC25he8Acn$;3beNj!*!FscKmJc?U3Y5A@m7bO{QW2cn6e!e?8~>!i z%Z&F)vTwkB3@Jga4A+g)7-xJ)s`?S}POuTzeSCwj+tbPT9$>~N5noL}nPrd`WKjmY zx#C{*{prr6R^#1;#OZb(^2?y>eIxhOzCIVM^#yxpHJE%BT)N!pVQ-YNZ*Pa6ZMeKK z(bj8O3G>10dg@|s5EJm-qWfU-u>$rT4!$X9wMmeY$p})=PE%tXfs@;mOc=z~tcDwCgN2CV*Q!Ld;BChke|Lxmv4f zY3jkT+KEe#_=<2~35C5?7|vMC2k~pNN2pCaTl$+Unj98eg?}8Ua zCJ`?3-Q>D+4h}P~QCMm_-&YM)^U9r6Rw|V|VF`9ILYxv2#fcy%xW-#V0xm^0=l4ha zr8+y1N*jeQsd@zFMJ5rH#n;4Czy#@1Ldns3Gz!SL*aYh*Q;JfFF>09|wBsjXiN=VV zhsL9(1a&Qo->mcSR^p7JQ@U8s?FZJB-g!sw@#+!}VM0jEYTY?q@u#;|%t@-l5Rp?i zTlhx0JYg_nygeNSVb^$4u@$ zflFO_Ex>=vgBYou$Ak;T(WBdZdFT#1R-gE^Ru0alk?M74mj-GOJ66k(E*5&Uj2ve{ zg1QE+kjITSM&emP+^5s#1nF-b#fy_%nrOvDCAvbQ*OF-Rhb4Y|1^-}|{ULp_Kwmbg>j7LX+EPk)7;`ot~vO}P_< z`Y1~cH%96eGDmR8dUlR|3QoFDPd`~n4#Q`96{Xib6_dibQZ-raU-f&h&KKu_(FS>8 z4TbWfibGu5dzlU2VUWW7O7o$tWLo({6RcIL6ZjwXU*lZV{US?FPO5!P^ z->eA8&cO*m`S97(H2-!`_9L(1+m&-140%s4ahDl#P06g~z&7n?;HM8F?ZmD>4>Vw~ zHDvvGoh$@yiUn{%2beYnyb5)hGB>}!ArQlWK0>L=tm1kJIev%o>0SR@FnN* z`IxI4BSvuKZ7@llgeJ0W8PRCQio$7g9up-=Fo;>dW)5I!6k`}8d~h3vV?o;0LMn7& zMUkUpz)T*o$^+B)R^xRUI-k%v0!p^?m_km4VY*|Qj9XUCitUBrWvvsJ<%(V@Mcxj3 zoj=ZaDWO{D>uoLt9{73q@Ha)K=Fvr9Wv20TO-*B5{N^fhPPuAPr|_UDW^D}r_#N{8{h&D_IXH{9q@dfx+?TcG z)Ctk@a@X<&zo7E<-tC!4y238!Z>W~u{BBOJz~$avIk}NvUjv_Dp?|&+PkHqD?1d{~ zkDelGNb;a#3BD6i0(e%!@0EOFRIntXaB!EV;hnq%u0Zj1fDhX&X;*>bZr86f z^wF}P79(|g6(MJyfXF)|7g+f&O=dlF-*ZBK^G&sA%D!pft_t?Bh)}PsujUmzfhncy zExq07R<}Q|-(1kym5qz5%|WSMFzMb=>4*+iW8OW53{vOKcakzq@^JDOj<<39i5j zvz&?01{r3|nGVYpFVgi3HirF0SMpL0acM5zDtw?x%T4`K8?8!}!Tc%()IcGs{CqZ0Kwzr=7Y@Yf{ z?t?*&4su?ujUXRA5a}x0)*Eks0wNk3Y4389=gFV|`Nv)S-pX)3b5LHnF07u7aMq1f zxa-P^(~q|-d^8HR60v0*M0|4fki*I)q8e$0Y<%~(tkH5fsq?3Oi3I#sf_xZnT8S=s z`(pX&xccdg_%R6j-koxJ6A9lFDWnnPf4j!-mYRcLjsMLj+;<`|tSJKQ$(-cnEK3r+ zvebQj)b1z@Ly4xL58EKDy96YF0=Lvbd+CVfYw9~#gpVi~dU}{&a7ylMA!sLqOzs2- zGs{zXf|?!$$}R<7Dv=_cfI&fWOoa8uAYfgiAaxSsTnP#Sj|QwPk$txDp9O1mO^4jT z3N5^I+pjwqp&+Op+mJnq&p{D8;tl+xNZ)Wazuj8>8{iOqEW+nNedxH{S9Ulw!N*eT zGLzk*Bgc!h|@Mh>Oy)Y1TBzTHMBqcJsiAZ-^5$aL2lup#k(a7wXhn?xdya=$_ROgzn>Pe1A z7xc%-Cp@WE5^|#BK+>a*Js;bs51+^d_ex2yr~)-4L%OYBE-osz=P{nQ?bCR*=z$En zhVv31`<{+AiH#vClfgwlf{N9FiBV&ZnO2GeFU88o$1N#6+pv9>1rxjY_}ShJyN5Ut zrWy#lf@wt@^#Tq295n)LC2MPFe15^R@R9g^FqX9tX1sA{2x&olFaI+qsDwoRgc-_& z%dm;EWQitA&yvmT5RhRBchK0~6Tu@1=J|<>8VQ$2{j2{`jd(QSB4vfmoQmK zIay?f296v5M)X}t`XtdEG`Py-Clo27{3)_w$$1(n1#T&#%znx{$-*Pa0y`Dm$b$%iJ_elM&S*%EUTsb}9_T0`#_$(x_@Aiozt*#!bh9omFYg0G z0RO`ez=p$5C&WU|uwnl^&gT#|%=oRUwdK`Oc3KmX5Ifjl7P9g2H_{FWws#GA^5nbh zv>%Y2mQBmdi9g%~f>eC}HaiV}kewd*@bNG^t&@Me2^2k4yZkzP@h~A~vA)+9_7w@( zU{*^4*XEvAX*}8la#^});b@1!pnu*3V#Lp$9wj5Lq8;;N@6j96Y58zc@hzWrKS&5qe>_-3 z=Af$eC;Jcv+Jcbmv<^w9zy2g1S?tjUGmsFA>IpLM(Vu#{$^|~!1OiuY-ivoXV#7b| zLqvX#fI*4T`J7?FwGs)&M|GfAFY4>pHYt(WsV4iaLgv(pP(V?m;fkcw|f z-HAwDRkYz~%0}C%crT!;H95j~XC__O$QoFNIM@VI1wj|~0vpW7n?M2EQ`HDeyxCb8 zH-W*pdVAjD3=V5osb{yc{&28O^F%=BS$b*n3?UmaJ*uA8uLFu#%# z+7+!aao-CLa{kKR^@$X1ZAaANg%B;RV3Z(kCN!Z5BK$c)XpD4zprX(o-6$TU6vU5+ zT&s%`s|HWE#g8fydM2@`VCS0F@9H=Hlfw}C$BSdk|nN}F>7K^8NY&=dD=c@_m4qr(q z%98N07eLJ0Plp$tup2TD0c599yKu(JL#}k~o8gUyg0~h3{IE^QR4KMdNrA06K|)qR zE8b)Z{H8_{q{8Eh?}M$ly*f%Z$R^MVgbn|&3Djj415~v_veTzGfmR}FP*a&(Ld6=Q zOd=bl0BXLHrOmw>)#;bY4vQ;E?w$SQb?oH1!i+X!yVV#6DI(4W@pkj*)x+#`Q@d5= z*$rlMQa&a+S4TX7*srMR{0KX-oY{f#v)R-@c3RGgwm1RvI6J+TNYJLo*7c4BjU8Hp z5G~_?4Z|?NP)ld9b1!j*+l?pen;Irc=vHC`b*-gxwq?jzH+RRy`6US=#>@VYohI3F zFyK+6fB*9Cne4P0T9#siL{DM#diJx*$Xl@Bp3=$^e_R_d7QY-cr5Y5h`F%mv2{1I? z94^u$Z2>s;CGbl|Xjn5`1`V`baCP&Qf|BkU#3c!LWIr{K^Lr@7E-gh0PI*LI={ZC) z9{2jL^#XfoBRH5A7{sl+h;EKK*c>e|sIjFmnA1jBA~mj9dNqY1cjpoL!7d~6P_XVF zlpk=_Dp45qfWmO=^hniQ>nNZraEJA*uK7Tp8^Q(IO5@yjjJe-uey%{Da6jjv5`W(s zwRNe>g&ZA2NreqQaCuY794y1V-d*aA=da-eOdrj1qX}J2Ct!xQ@sj(1AhlU3NVcFw zL)42kj#t>}f9ZbkE)*Il0*(v}_ISvn)HbkDT_|0LSgkcUH)>S~L-Np@e0H#x#V!reA4o+@lq>7(b0xSI+0VFS5aCs2?ZW zdrDqBD)99h9E9!dNs7G8s9&Hm_;H}j>Oz1qTs6oQiZQYprswj*x6k|MQkx3b&`eBj z&P^?+io;S^v6^3P(fx#NgSh^pP;|a!5cGVby(%R?JaATlK^Gq;#?fTX4B7C*Kw=Gu zGT*}Bwvqc+IS($!&hGGSlvFygW33?TC`8ETmXK^@eLf_cpD(6mfhWpCSp)$`pC66%+# zaLygSqJA7o`LXaGctxG=xj&p$4D`)8xjh43PKSHBr)L#`tF!NBvi`?M(jVVf-w&ny zaapnD!vEhd(2)O6FVKv={`&=5-9KHR$yT2f-oF4Y&~$Hl%l_L1nz{%cWGICc$AMOZ z3N&1$1mY7+zk_lZFb02!L z2sTLoRDsi7yI_BlWC?+EuG((#g#+0Rd;{hF)1~%Z*XOlKq9$L~`*cZX)&{JP7I(LF zEMx&sA?+WR6}f>6G{1NdjaV(RGO)M{cnVj&JwBVAT~?gKS-X`ES}j=eVD=jsu%U!_ z3Z9&;z);GsR<^96{5_HkAUS&kbh%|8MIdKi*7%wcSXNX+O*&Xs3}=AVkxC-$1zu4r zbkN3rntOT#^@$apm~`@CNpK2(yRy}qOnvq2D@rwk+}SUJPNAt;9xoRr(2bu=dq!eQ zKlj_R;^8aGOT1NsaP{C7717kHbM%S=F3=3{m=TW%I@MW%{!?7}aY6+^mqVBO^mxj5 z)V!v$=~V97`A3j-T27C-tHCN;%}g8|H=CUE)2F^pd5WNaH{dvv=0pC| zF?V3JchQW0Mgdx7;G%c56(JQ&-018{#{^vn|MY+(Fy;;nINmus=Kj+ymF~|LN5{?Gy!<~I?d8-$@s3y=Js{|puo>JZ zgw+DLu%b!da$!@*8B0wkLJ0bzQNYgU>=sG8+585^UBIsXM$m6_S}z`q_WpE(D{$2Y zfR^76ICfybuk`*f+Pk{(9GVa^=B_qip8CU>I|N!FW9}!=!X`up)}}u@;CO0->l?IO zT>+C5vRD(A50@ZEp2JY=d@R9xc*3RpQ)r1claS&)gqG7=?%7Aj&3ezRmX`y;s9I|b zWYB`jYOWXhYTz$|p^?IBf7Uk9GzSdNZvZe!qJ`9|2{e++=t6(0tYy1apb2#7y^lBW^8z3EZx>N(e z9bm2t7=iqb*!<_q;1hiL<1hctZH`ytHBPl_i1_&gs%i&?+Pj8DMA$?E3&MwEUdgwj zQ_?d`12S`xzOBapR3SDwY}W{dv}?TXKT(J^vyTMOrxaqc8+aLI0m)((G`BNVl-i$>h?A@B6gC#7w#D4j8XW=@V#fWa zsIb&);>EuQpmWl$7bL%1jpv4?FUvi>8sB7&cydGBT3#^L5JV{%Csk26acTt8`Z1bx z^X5^uz zqO~H!bv`FQi?;gNYWz2DbF2_IFE!2P)yPj6=GWudQ$oL?j%m+t)_7x7)F}eAYrK;` zR)~in?HaX+P{x{10)R2EX&^7P@WXaEzAv4^VO^;3NbI_ zhWPt2uc-vpGXV4=yGOVVtu z#UtF1Gj^XKSCauvMk_2-j2|e(P8HICLY$Th0MMaAd;&mpQ2~HDzPYgbQvmWHK>xD# zPT_#t{0e|bH3W8-8kk;c5Vf8Kps?UI7_k}{!XRA&&QlA*XSvN809w(H|6xHG0zk|+ zam$anjVRJq0_MF4e#9;*>l^Px;X_WZ#=oZj0f0<{Xuqw-A1TCsNyJlPz<{uXnI1~T z;Rqz&L$eEh{IDdPF39X^K~7TR4HWT>BHU*egn#5V2dnWD$tQ7IvcKaez(V}VzT*iw z0pQ_%m^AnioVMj>@ZjVB@Yq27ZX-Aa zFc77`l`p0J%0M(egogkKKdJu)4-=D9(~vmrtD%>R^G9)7k?ifaVSD>fp#sPpopCSK zdSQTyi9-W%!G)^ew1Fs0kv@p9g3=U1dpi?keXFC!^#yG%P%$xy7s+Aqc_<1+mw(?G z!4`lrAw7=L0X39fzI*il)nx9xu=EvPQ9+>}0`O@rBoOZ$$UFKVy*0wVI z$Uywrz`P}G`~f^XxbX2Ww;suzaisLrN%2$;_{sEsg2uAr-|~}fN(4cOfp|*#I^icD zn86d_DhK?ehgu*~YhYC%N-y=N@BkQy(F7WSXlryoD__d+KQEPe7b=`pNj)`I;xT_( z{P+BXyCo_YFc2XX6UPSP2BcyFW@SqBLJi?uK_fN5PqeUW=89%eQ66f)kvRhoM+Rb+ zKhz|>=f3`Fc$gH^I+nfwcv$^_Vya4l`lo^UhF?ox9oedFoKw8UCEP!QhpY2zNAO@z zdHcPhZq7OY5A%?%$9b#{U|`;gLF?I>fqBb_P^%*Y@f9!s4;#T(jRRo<4h=+OTW%N> zDWOSGQ)Bn3h;Ihs&)}haD)%?=&?(CF9X!0Kj&^1`DqlL1z8>7$T4-R}-&;H4Cog@h z7X#gkzoNuLAxsy?U_toF@8E&nREh*BU%G-AiFF*OZ4_J;hzF!EU|=4A2Ub*Ajw9(y zz6qKSb##t#iC=SF)_b!P3KZyFPtCpjSnjA|;sS^=pfGmtWwOQdm;@(@=>?acf8C+pa)ZjrQ(Wy$7{JM}>R`m{2!RJwG>lcw%9b zx!D=A1ML3>5%-U6W)apL)(!!fz?(}V5ew7~9a9ExSW8l#=q8%N{nq5D|gh5}ZNkaLvm;h9spTdOE z4=DNf-=qHzn9zMm0Kf#)+?qdN!k;uNj#%E8M}>UNa6@PIe-A<>BkW*K)>y{FP)P+2 zDeBD%tO(yAF03dMObeUa+B-Uf;51s_*1hlPAAmH|eS?VFz8ABfXBL+r5Mh(P-X5~G zyVtn+JYafe_DasPqh`8%a&mce%5M-6*2^djve@VFL85~|#F*GeBmz171Bl@5K7a_v z_q^#Qe};$;2IG_m&2*7QYd!2K zRcYyt;L#P{H;C{(P?eH-I#E zF;^f7Pjm^ok;6Wquw6$7aLmuDN(Z!I3X$JfGc4}3s$>!jKGoR@&<15osNYP)f6E>I zoHn3Z*aNCkQF-@Az}EPws`QOEe1nLNa0`GoJVh=BXv0STfn#n|Hoq}A=74t8*~)+c z-u%JV=;+oReZyIElsi;N>^_m zceZ|mh#GyUZ?plp!rNR-9y*{6uilGh3C(Q_PqE<+HjIPym8W6 z`X3yJlQh+Lem4-PI>ZLRaX2x%0q*c=Z0e9c{9mg||Li#Y3pOaC1N1@u8+}On6@4&0 zqz^$5`cVHPeRwtSa(?yz8`d|(GB-OQ^r2zfjw`caQK7{7ptTetDcPzBoT3lGvF_X{ z?H+S_)MQPew6}fO9_tSCt76{;T1!`3TB3nI@9{@$%Ch@Rd&mpKzn7GHlPF&vUugeA zQp)>eOvJf&;ZKf3MV%|jUpNkB40fD27;jD-hr>+zkCKw@*kXH@^MAtzodZcpZy(wG zuPyH#M2*8t`cEV!c8n8jD3^wsj9dfr|B^mT#ZjSG07Gg&?ekV1g9|ao=SI#6Y*sBT1ArgaRnTcLAtFRq0StI&C)mU$chqC8gjq zHpBnl@019r@>dZ;4sC`xt3vdPSWJ$0Rm6)@r7yFXd>(4Lt7kWXOf5gL44Gf7v0SQ|# ze;25~jX`Mzk)T3shSX(&qlE2=&7i20q0NA9bQFV%EWi6ZOmNtkNu!|n+F0}Kr*}%> z=>jP#NZ^c6Jmb$ZVMq@2pVO1W4L<*vusv%tFcxV+Tik?% z;%SANWKBIQDV@TE*+o&|ub2J@zQC}`qtg!DDfP?y{sUh)uo*PNjm}`gJO>l^v840{ z^b<+R`@t2xLre%l!OBMr#bL3XxS`_YJ{b&2*!~I=T+BNDcT5OWI*SR;t|gyLguWhN z0%z9wKVSm!M|e!y8VDw!j6)%cihXPCIK%{iFC;OL9Vcvq$RLgF7J3{Eg3W zI+}E1JfGML07W=W4o)YM;P&Hb0<`qw^fGgeX5(5fB`q6$vdLX^Sd8#_#_UBv7%29U zyvd0BS!cSXM2-Y$PqtOdyxmI?SQ{zEn2u?7x^&~Kz6)FO40*kVN9Ph?7gshLPDMBG z$81JE{;rY%!6Bjg9;f_)!&!o~^o-1`>>Ro9+=9ZQVslu*{F2m)(5lLpHMMoG>R%i9 zy=iK0X$8a|m+JVgWUtQNK8X19pz%YYG&LOf$_l%kqt=C?T2Uck{Q?=7<=V3t7mkvom?{YKz{zYn=OJ?UVA z7zBW63}lKr4*UTF81lD29Gw;f%b&`$UXbiD@GR8(KIYR9f8hH_QHQAd%Y7#7JsLHkk#{6VXf6PzB zpTof(9ZPgbrWHh0GkIo~08+tp>#o2vemJOf|86vc=>U|UoJ%VZlE0gL#%~8y zFfBT@$G$k_86Sv0z&Sj`A2@p87e8yPQ%DB^=MvXzpw66297l@C(;3N*Kjr~L$#rj0{9ddj>n$y&XN~DY9gkWSUm;dvbUJjA3x@lcLv_p8R$O-OygEn*q(Bc z-GX3$5ZeHt~^mffrjGwe*kud)V2Ts literal 0 HcmV?d00001 diff --git a/assets/js/10.5cab9749.js b/assets/js/10.5cab9749.js new file mode 100644 index 00000000000..6e855351628 --- /dev/null +++ b/assets/js/10.5cab9749.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[10],{30010:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/2023/08/17/Announcing-5-new-Flow-tuple-type-features","metadata":{"permalink":"/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features","source":"@site/blog/2023-08-17-Announcing-5-new-Flow-tuple-type-features.md","title":"Announcing 5 new Flow tuple type features","description":"Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more.","date":"2023-08-17T00:00:00.000Z","formattedDate":"August 17, 2023","tags":[],"hasTruncateMarker":false,"authors":[{"name":"George Zahariev"}],"frontMatter":{"title":"Announcing 5 new Flow tuple type features","short-title":"Announcing 5 new Flow tuple type features","author":"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-5-new-flow-tuple-type-features-ff4d7f11c50a"},"nextItem":{"title":"Flow can now detect unused Promises","permalink":"/blog/2023/04/10/Unused-Promise"}},"content":"Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more."},{"id":"/2023/04/10/Unused-Promise","metadata":{"permalink":"/blog/2023/04/10/Unused-Promise","source":"@site/blog/2023-04-10-Unused-Promise.md","title":"Flow can now detect unused Promises","description":"As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous,","date":"2023-04-10T00:00:00.000Z","formattedDate":"April 10, 2023","tags":[],"hasTruncateMarker":false,"authors":[{"name":"David Richey"}],"frontMatter":{"title":"Flow can now detect unused Promises","short-title":"Flow can now detect unused Promises","author":"David Richey","medium-link":"https://medium.com/flow-type/flow-can-now-detect-unused-promises-b49341256640"},"prevItem":{"title":"Announcing 5 new Flow tuple type features","permalink":"/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features"},"nextItem":{"title":"Announcing Partial & Required Flow utility types + catch annotations","permalink":"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations"}},"content":"As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous,\\nbecause errors are potentially unhandled, and the code may not execute in the intended order. They are\\nusually mistakes that Flow is perfectly positioned to warn you about."},{"id":"/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations","metadata":{"permalink":"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations","source":"@site/blog/2023-03-15-Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations.md","title":"Announcing Partial & Required Flow utility types + catch annotations","description":"Starting in Flow version 0.201, make an object type\u2019s fields all optional using Partial (use instead of the unsafe $Shape),","date":"2023-03-15T00:00:00.000Z","formattedDate":"March 15, 2023","tags":[],"hasTruncateMarker":false,"authors":[{"name":"George Zahariev"}],"frontMatter":{"title":"Announcing Partial & Required Flow utility types + catch annotations","short-title":"Announcing Partial & Required Flow utility types","author":"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-partial-required-flow-utility-types-catch-annotations-3a32f0bf2a20"},"prevItem":{"title":"Flow can now detect unused Promises","permalink":"/blog/2023/04/10/Unused-Promise"},"nextItem":{"title":"Exact object types by default, by default","permalink":"/blog/2023/02/16/Exact-object-types-by-default-by-default"}},"content":"Starting in Flow version 0.201, make an object type\u2019s fields all optional using `Partial` (use instead of the unsafe `$Shape`),\\nand make an object type\u2019s optional fields required with `Required`."},{"id":"/2023/02/16/Exact-object-types-by-default-by-default","metadata":{"permalink":"/blog/2023/02/16/Exact-object-types-by-default-by-default","source":"@site/blog/2023-02-16-Exact-object-types-by-default-by-default.md","title":"Exact object types by default, by default","description":"We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan.","date":"2023-02-16T00:00:00.000Z","formattedDate":"February 16, 2023","tags":[],"hasTruncateMarker":false,"authors":[{"name":"George Zahariev"}],"frontMatter":{"title":"Exact object types by default, by default","short-title":"Exact object types by default, by default","author":"George Zahariev","medium-link":"https://medium.com/flow-type/exact-object-types-by-default-by-default-cc559af6f69"},"prevItem":{"title":"Announcing Partial & Required Flow utility types + catch annotations","permalink":"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations"},"nextItem":{"title":"Local Type Inference for Flow","permalink":"/blog/2023/01/17/Local-Type-Inference"}},"content":"We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan."},{"id":"/2023/01/17/Local-Type-Inference","metadata":{"permalink":"/blog/2023/01/17/Local-Type-Inference","source":"@site/blog/2023-01-17-Local-Type-Inference.md","title":"Local Type Inference for Flow","description":"Local Type Inference makes Flow\u2019s inference behavior more reliable and predictable, by modestly increasing Flow\u2019s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases.","date":"2023-01-17T00:00:00.000Z","formattedDate":"January 17, 2023","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Sam Zhou"}],"frontMatter":{"title":"Local Type Inference for Flow","short-title":"Local Type Inference","author":"Sam Zhou","medium-link":"https://medium.com/flow-type/local-type-inference-for-flow-aaa65d071347"},"prevItem":{"title":"Exact object types by default, by default","permalink":"/blog/2023/02/16/Exact-object-types-by-default-by-default"},"nextItem":{"title":"Improved handling of the empty object in Flow","permalink":"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow"}},"content":"Local Type Inference makes Flow\u2019s inference behavior more reliable and predictable, by modestly increasing Flow\u2019s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases."},{"id":"/2022/10/20/Improved-handling-of-the-empty-object-in-Flow","metadata":{"permalink":"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow","source":"@site/blog/2022-10-20-Improved-handling-of-the-empty-object-in-Flow.md","title":"Improved handling of the empty object in Flow","description":"Flow handled the empty object literal {} in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior.","date":"2022-10-20T00:00:00.000Z","formattedDate":"October 20, 2022","tags":[],"hasTruncateMarker":false,"authors":[{"name":"George Zahariev"}],"frontMatter":{"title":"Improved handling of the empty object in Flow","short-title":"Improvements to empty object","author":"George Zahariev","medium-link":"https://medium.com/flow-type/improved-handling-of-the-empty-object-in-flow-ead91887e40c"},"prevItem":{"title":"Local Type Inference for Flow","permalink":"/blog/2023/01/17/Local-Type-Inference"},"nextItem":{"title":"Requiring More Annotations to Functions and Classes in Flow","permalink":"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes"}},"content":"Flow handled the empty object literal {} in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior."},{"id":"/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes","metadata":{"permalink":"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes","source":"@site/blog/2022-09-30-Requiring-More-Annotations-on-Functions-and-Classes.md","title":"Requiring More Annotations to Functions and Classes in Flow","description":"Flow will now require more annotations to functions and classes.","date":"2022-09-30T00:00:00.000Z","formattedDate":"September 30, 2022","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Sam Zhou"}],"frontMatter":{"title":"Requiring More Annotations to Functions and Classes in Flow","short-title":"Functions and Classes Annotation Requirements","author":"Sam Zhou","medium-link":"https://medium.com/flow-type/requiring-more-annotations-to-functions-and-classes-in-flow-e8aa9b1d76bd"},"prevItem":{"title":"Improved handling of the empty object in Flow","permalink":"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow"},"nextItem":{"title":"New Flow Language Rule: Constrained Writes","permalink":"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes"}},"content":"Flow will now require more annotations to functions and classes."},{"id":"/2022/08/05/New-Flow-Language-Rule-Constrained-Writes","metadata":{"permalink":"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes","source":"@site/blog/2022-08-05-New-Flow-Language-Rule-Constrained-Writes.md","title":"New Flow Language Rule: Constrained Writes","description":"Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated.","date":"2022-08-05T00:00:00.000Z","formattedDate":"August 5, 2022","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"New Flow Language Rule: Constrained Writes","short-title":"Introducing Constrained Writes","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/new-flow-language-rule-constrained-writes-4c70e375d190"},"prevItem":{"title":"Requiring More Annotations to Functions and Classes in Flow","permalink":"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes"},"nextItem":{"title":"Introducing: Local Type Inference for Flow","permalink":"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow"}},"content":"Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated."},{"id":"/2021/09/27/Introducing-Local-Type-Inference-for-Flow","metadata":{"permalink":"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow","source":"@site/blog/2021-09-27-Introducing-Local-Type-Inference-for-Flow.md","title":"Introducing: Local Type Inference for Flow","description":"We\'re replacing Flow\u2019s current inference engine with a system that behaves more predictably and can be reasoned about more locally.","date":"2021-09-27T00:00:00.000Z","formattedDate":"September 27, 2021","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Michael Vitousek"}],"frontMatter":{"title":"Introducing: Local Type Inference for Flow","short-title":"Introducing Local Type Inference","author":"Michael Vitousek","medium-link":"https://medium.com/flow-type/introducing-local-type-inference-for-flow-6af65b7830aa"},"prevItem":{"title":"New Flow Language Rule: Constrained Writes","permalink":"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes"},"nextItem":{"title":"Introducing Flow Enums","permalink":"/blog/2021/09/13/Introducing-Flow-Enums"}},"content":"We\'re replacing Flow\u2019s current inference engine with a system that behaves more predictably and can be reasoned about more locally."},{"id":"/2021/09/13/Introducing-Flow-Enums","metadata":{"permalink":"/blog/2021/09/13/Introducing-Flow-Enums","source":"@site/blog/2021-09-13-Introducing-Flow-Enums.md","title":"Introducing Flow Enums","description":"Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type.","date":"2021-09-13T00:00:00.000Z","formattedDate":"September 13, 2021","tags":[],"hasTruncateMarker":false,"authors":[{"name":"George Zahariev"}],"frontMatter":{"title":"Introducing Flow Enums","short-title":"Introducing Flow Enums","author":"George Zahariev","medium-link":"https://medium.com/flow-type/introducing-flow-enums-16d4239b3180"},"prevItem":{"title":"Introducing: Local Type Inference for Flow","permalink":"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow"},"nextItem":{"title":"TypeScript Enums vs. Flow Enums","permalink":"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums"}},"content":"Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type."},{"id":"/2021/09/13/TypeScript-Enums-vs-Flow-Enums","metadata":{"permalink":"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums","source":"@site/blog/2021-09-13-TypeScript-Enums-vs-Flow-Enums.md","title":"TypeScript Enums vs. Flow Enums","description":"A comparison of the enums features of TypeScript and Flow.","date":"2021-09-13T00:00:00.000Z","formattedDate":"September 13, 2021","tags":[],"hasTruncateMarker":false,"authors":[{"name":"George Zahariev"}],"frontMatter":{"title":"TypeScript Enums vs. Flow Enums","short-title":"TypeScript Enums vs. Flow Enums","author":"George Zahariev","medium-link":"https://medium.com/flow-type/typescript-enums-vs-flow-enums-83da2ca4a9b4"},"prevItem":{"title":"Introducing Flow Enums","permalink":"/blog/2021/09/13/Introducing-Flow-Enums"},"nextItem":{"title":"Introducing Flow Indexed Access Types","permalink":"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types"}},"content":"A comparison of the enums features of TypeScript and Flow."},{"id":"/2021/07/21/Introducing-Flow-Indexed-Access-Types","metadata":{"permalink":"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types","source":"@site/blog/2021-07-21-Introducing-Flow-Indexed-Access-Types.md","title":"Introducing Flow Indexed Access Types","description":"Flow\u2019s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type.","date":"2021-07-21T00:00:00.000Z","formattedDate":"July 21, 2021","tags":[],"hasTruncateMarker":false,"authors":[{"name":"George Zahariev"}],"frontMatter":{"title":"Introducing Flow Indexed Access Types","short-title":"Flow Indexed Access Types","author":"George Zahariev","medium-link":"https://medium.com/flow-type/introducing-flow-indexed-access-types-b27175251fd0"},"prevItem":{"title":"TypeScript Enums vs. Flow Enums","permalink":"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums"},"nextItem":{"title":"Sound Typing for \'this\' in Flow","permalink":"/blog/2021/06/02/Sound-Typing-for-this-in-Flow"}},"content":"Flow\u2019s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type."},{"id":"/2021/06/02/Sound-Typing-for-this-in-Flow","metadata":{"permalink":"/blog/2021/06/02/Sound-Typing-for-this-in-Flow","source":"@site/blog/2021-06-02-Sound-Typing-for-this-in-Flow.md","title":"Sound Typing for \'this\' in Flow","description":"Improvements in soundness for this-typing in Flow, including the ability to annotate this on functions and methods.","date":"2021-06-02T00:00:00.000Z","formattedDate":"June 2, 2021","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Daniel Sainati"}],"frontMatter":{"title":"Sound Typing for \'this\' in Flow","short-title":"Sound Typing for \'this\'","author":"Daniel Sainati","medium-link":"https://medium.com/flow-type/sound-typing-for-this-in-flow-d62db2af969e"},"prevItem":{"title":"Introducing Flow Indexed Access Types","permalink":"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types"},"nextItem":{"title":"Clarity on Flow\'s Direction and Open Source Engagement","permalink":"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement"}},"content":"Improvements in soundness for `this`-typing in Flow, including the ability to annotate `this` on functions and methods."},{"id":"/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement","metadata":{"permalink":"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement","source":"@site/blog/2021-05-25-Clarity-on-Flows-Direction-and-Open-Source-Engagement.md","title":"Clarity on Flow\'s Direction and Open Source Engagement","description":"An update on Flow\'s direction and open source engagement.","date":"2021-05-25T00:00:00.000Z","formattedDate":"May 25, 2021","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Vladan Djeric"}],"frontMatter":{"title":"Clarity on Flow\'s Direction and Open Source Engagement","short-title":"Flow Direction Update","author":"Vladan Djeric","medium-link":"https://medium.com/flow-type/clarity-on-flows-direction-and-open-source-engagement-e721a4eb4d8b"},"prevItem":{"title":"Sound Typing for \'this\' in Flow","permalink":"/blog/2021/06/02/Sound-Typing-for-this-in-Flow"},"nextItem":{"title":"Types-First the only supported mode in Flow (Jan 2021)","permalink":"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow"}},"content":"An update on Flow\'s direction and open source engagement."},{"id":"/2020/12/01/Types-first-the-only-supported-mode-in-flow","metadata":{"permalink":"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow","source":"@site/blog/2020-12-01-Types-first-the-only-supported-mode-in-flow.md","title":"Types-First the only supported mode in Flow (Jan 2021)","description":"Types-First will become the only mode in Flow in v0.143 (mid Jan 2021).","date":"2020-12-01T00:00:00.000Z","formattedDate":"December 1, 2020","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Panagiotis Vekris"}],"frontMatter":{"title":"Types-First the only supported mode in Flow (Jan 2021)","short-title":"Types-First only supported mode","author":"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-the-only-supported-mode-in-flow-jan-2021-3c4cb14d7b6c"},"prevItem":{"title":"Clarity on Flow\'s Direction and Open Source Engagement","permalink":"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement"},"nextItem":{"title":"Flow\'s Improved Handling of Generic Types","permalink":"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types"}},"content":"Types-First will become the only mode in Flow in v0.143 (mid Jan 2021)."},{"id":"/2020/11/16/Flows-Improved-Handling-of-Generic-Types","metadata":{"permalink":"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types","source":"@site/blog/2020-11-16-Flows-Improved-Handling-of-Generic-Types.md","title":"Flow\'s Improved Handling of Generic Types","description":"Flow has improved its handling of generic types by banning unsafe behaviors previously allowed and clarifying error messages.","date":"2020-11-16T00:00:00.000Z","formattedDate":"November 16, 2020","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Michael Vitousek"}],"frontMatter":{"title":"Flow\'s Improved Handling of Generic Types","short-title":"Generic Types Improvements","author":"Michael Vitousek","medium-link":"https://medium.com/flow-type/flows-improved-handling-of-generic-types-b5909cc5e3c5"},"prevItem":{"title":"Types-First the only supported mode in Flow (Jan 2021)","permalink":"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow"},"nextItem":{"title":"Types-First: A Scalable New Architecture for Flow","permalink":"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow"}},"content":"Flow has improved its handling of generic types by banning unsafe behaviors previously allowed and clarifying error messages."},{"id":"/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow","metadata":{"permalink":"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow","source":"@site/blog/2020-05-18-Types-First-A-Scalable-New-Architecture-for-Flow.md","title":"Types-First: A Scalable New Architecture for Flow","description":"Flow Types-First mode is out! It unlocks Flow\u2019s potential at scale by leveraging fully typed module boundaries. Read more in our latest blog post.","date":"2020-05-18T00:00:00.000Z","formattedDate":"May 18, 2020","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Panagiotis Vekris"}],"frontMatter":{"title":"Types-First: A Scalable New Architecture for Flow","short-title":"Types-First: A Scalable New","author":"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-a-scalable-new-architecture-for-flow-3d8c7ba1d4eb"},"prevItem":{"title":"Flow\'s Improved Handling of Generic Types","permalink":"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types"},"nextItem":{"title":"Making Flow error suppressions more specific","permalink":"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific"}},"content":"Flow Types-First mode is out! It unlocks Flow\u2019s potential at scale by leveraging fully typed module boundaries. Read more in our latest blog post."},{"id":"/2020/03/16/Making-Flow-error-suppressions-more-specific","metadata":{"permalink":"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific","source":"@site/blog/2020-03-16-Making-Flow-error-suppressions-more-specific.md","title":"Making Flow error suppressions more specific","description":"We\u2019re improving Flow error suppressions so that they don\u2019t accidentally hide errors.","date":"2020-03-16T00:00:00.000Z","formattedDate":"March 16, 2020","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Daniel Sainati"}],"frontMatter":{"title":"Making Flow error suppressions more specific","short-title":"Making Flow error suppressions","author":"Daniel Sainati","medium-link":"https://medium.com/flow-type/making-flow-error-suppressions-more-specific-280aa4e3c95c"},"prevItem":{"title":"Types-First: A Scalable New Architecture for Flow","permalink":"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow"},"nextItem":{"title":"What we\u2019re building in 2020","permalink":"/blog/2020/03/09/What-were-building-in-2020"}},"content":"We\u2019re improving Flow error suppressions so that they don\u2019t accidentally hide errors."},{"id":"/2020/03/09/What-were-building-in-2020","metadata":{"permalink":"/blog/2020/03/09/What-were-building-in-2020","source":"@site/blog/2020-03-09-What-were-building-in-2020.md","title":"What we\u2019re building in 2020","description":"Learn about how Flow will improve in 2020.","date":"2020-03-09T00:00:00.000Z","formattedDate":"March 9, 2020","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Andrew Pardoe"}],"frontMatter":{"title":"What we\u2019re building in 2020","short-title":"What we\u2019re building in 2020","author":"Andrew Pardoe","medium-link":"https://medium.com/flow-type/what-were-building-in-2020-bcb92f620c75"},"prevItem":{"title":"Making Flow error suppressions more specific","permalink":"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific"},"nextItem":{"title":"Improvements to Flow in 2019","permalink":"/blog/2020/02/19/Improvements-to-Flow-in-2019"}},"content":"Learn about how Flow will improve in 2020."},{"id":"/2020/02/19/Improvements-to-Flow-in-2019","metadata":{"permalink":"/blog/2020/02/19/Improvements-to-Flow-in-2019","source":"@site/blog/2020-02-19-Improvements-to-Flow-in-2019.md","title":"Improvements to Flow in 2019","description":"Take a look back at improvements we made to Flow in 2019.","date":"2020-02-19T00:00:00.000Z","formattedDate":"February 19, 2020","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Andrew Pardoe"}],"frontMatter":{"title":"Improvements to Flow in 2019","short-title":"Improvements to Flow in 2019","author":"Andrew Pardoe","medium-link":"https://medium.com/flow-type/improvements-to-flow-in-2019-c8378e7aa007"},"prevItem":{"title":"What we\u2019re building in 2020","permalink":"/blog/2020/03/09/What-were-building-in-2020"},"nextItem":{"title":"How to upgrade to exact-by-default object type syntax","permalink":"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax"}},"content":"Take a look back at improvements we made to Flow in 2019."},{"id":"/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax","metadata":{"permalink":"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax","source":"@site/blog/2020-01-29-How-to-Upgrade-to-exact-by-default-object-type-syntax.md","title":"How to upgrade to exact-by-default object type syntax","description":"Object types will become exact-by-default. Read this post to learn how to get your code ready!","date":"2020-01-29T00:00:00.000Z","formattedDate":"January 29, 2020","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"How to upgrade to exact-by-default object type syntax","short-title":"Upgrade to exact-by-default","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/how-to-upgrade-to-exact-by-default-object-type-syntax-7aa44b4d08ab"},"prevItem":{"title":"Improvements to Flow in 2019","permalink":"/blog/2020/02/19/Improvements-to-Flow-in-2019"},"nextItem":{"title":"Spreads: Common Errors & Fixes","permalink":"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes"}},"content":"Object types will become exact-by-default. Read this post to learn how to get your code ready!"},{"id":"/2019/10/30/Spreads-Common-Errors-and-Fixes","metadata":{"permalink":"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes","source":"@site/blog/2019-10-30-Spreads-Common-Errors-and-Fixes.md","title":"Spreads: Common Errors & Fixes","description":"Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them.","date":"2019-10-30T00:00:00.000Z","formattedDate":"October 30, 2019","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"Spreads: Common Errors & Fixes","short-title":"Spreads: Common Errors & Fixes","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/spreads-common-errors-fixes-9701012e9d58"},"prevItem":{"title":"How to upgrade to exact-by-default object type syntax","permalink":"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax"},"nextItem":{"title":"Live Flow errors in your IDE","permalink":"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE"}},"content":"Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them."},{"id":"/2019/10/25/Live-Flow-Errors-in-your-IDE","metadata":{"permalink":"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE","source":"@site/blog/2019-10-25-Live-Flow-Errors-in-your-IDE.md","title":"Live Flow errors in your IDE","description":"Live errors while you type makes Flow feel faster in your IDE!","date":"2019-10-25T00:00:00.000Z","formattedDate":"October 25, 2019","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"title":"Live Flow errors in your IDE","short-title":"Live Flow errors in your IDE","author":"Gabe Levi","medium-link":"https://medium.com/flow-type/live-flow-errors-in-your-ide-bcbeda0b316"},"prevItem":{"title":"Spreads: Common Errors & Fixes","permalink":"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes"},"nextItem":{"title":"Coming Soon: Changes to Object Spreads","permalink":"/blog/2019/08/20/Changes-to-Object-Spreads"}},"content":"Live errors while you type makes Flow feel faster in your IDE!"},{"id":"/2019/08/20/Changes-to-Object-Spreads","metadata":{"permalink":"/blog/2019/08/20/Changes-to-Object-Spreads","source":"@site/blog/2019-08-20-Changes-to-Object-Spreads.md","title":"Coming Soon: Changes to Object Spreads","description":"Changes are coming to how Flow models object spreads! Learn more in this post.","date":"2019-08-20T00:00:00.000Z","formattedDate":"August 20, 2019","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"Coming Soon: Changes to Object Spreads","short-title":"Changes to Object Spreads","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/coming-soon-changes-to-object-spreads-73204aef84e1"},"prevItem":{"title":"Live Flow errors in your IDE","permalink":"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE"},"nextItem":{"title":"Upgrading Flow Codebases","permalink":"/blog/2019/4/9/Upgrading-Flow-Codebases"}},"content":"Changes are coming to how Flow models object spreads! Learn more in this post."},{"id":"/2019/4/9/Upgrading-Flow-Codebases","metadata":{"permalink":"/blog/2019/4/9/Upgrading-Flow-Codebases","source":"@site/blog/2019-4-9-Upgrading-Flow-Codebases.md","title":"Upgrading Flow Codebases","description":"Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!","date":"2019-04-09T00:00:00.000Z","formattedDate":"April 9, 2019","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"Upgrading Flow Codebases","short-title":"Upgrading Flow Codebases","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/upgrading-flow-codebases-40ef8dd3ccd8"},"prevItem":{"title":"Coming Soon: Changes to Object Spreads","permalink":"/blog/2019/08/20/Changes-to-Object-Spreads"},"nextItem":{"title":"A More Responsive Flow","permalink":"/blog/2019/2/8/A-More-Responsive-Flow"}},"content":"Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!"},{"id":"/2019/2/8/A-More-Responsive-Flow","metadata":{"permalink":"/blog/2019/2/8/A-More-Responsive-Flow","source":"@site/blog/2019-2-8-A-More-Responsive-Flow.md","title":"A More Responsive Flow","description":"Flow 0.92 improves on the Flow developer experience.","date":"2019-02-08T00:00:00.000Z","formattedDate":"February 8, 2019","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"title":"A More Responsive Flow","short-title":"A More Responsive Flow","author":"Gabe Levi","medium-link":"https://medium.com/flow-type/a-more-responsive-flow-1a8cb01aec11"},"prevItem":{"title":"Upgrading Flow Codebases","permalink":"/blog/2019/4/9/Upgrading-Flow-Codebases"},"nextItem":{"title":"What the Flow Team Has Been Up To","permalink":"/blog/2019/1/28/What-the-flow-team-has-been-up-to"}},"content":"Flow 0.92 improves on the Flow developer experience."},{"id":"/2019/1/28/What-the-flow-team-has-been-up-to","metadata":{"permalink":"/blog/2019/1/28/What-the-flow-team-has-been-up-to","source":"@site/blog/2019-1-28-What-the-flow-team-has-been-up-to.md","title":"What the Flow Team Has Been Up To","description":"Take a look at what the Flow was up to in 2018.","date":"2019-01-28T00:00:00.000Z","formattedDate":"January 28, 2019","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Avik Chaudhuri"}],"frontMatter":{"title":"What the Flow Team Has Been Up To","short-title":"What the Flow Team Has Been Up To","author":"Avik Chaudhuri","medium-link":"https://medium.com/flow-type/what-the-flow-team-has-been-up-to-54239c62004f"},"prevItem":{"title":"A More Responsive Flow","permalink":"/blog/2019/2/8/A-More-Responsive-Flow"},"nextItem":{"title":"Supporting React.forwardRef and Beyond","permalink":"/blog/2018/12/13/React-Abstract-Component"}},"content":"Take a look at what the Flow was up to in 2018."},{"id":"/2018/12/13/React-Abstract-Component","metadata":{"permalink":"/blog/2018/12/13/React-Abstract-Component","source":"@site/blog/2018-12-13-React-Abstract-Component.md","title":"Supporting React.forwardRef and Beyond","description":"We made some major changes to our React model to better model new React components. Let\'s","date":"2018-12-13T00:00:00.000Z","formattedDate":"December 13, 2018","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"Supporting React.forwardRef and Beyond","short-title":"Supporting React.forwardRef","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/supporting-react-forwardref-and-beyond-f8dd88f35544"},"prevItem":{"title":"What the Flow Team Has Been Up To","permalink":"/blog/2019/1/28/What-the-flow-team-has-been-up-to"},"nextItem":{"title":"Asking for Required Annotations","permalink":"/blog/2018/10/29/Asking-for-Required-Annotations"}},"content":"We made some major changes to our React model to better model new React components. Let\'s\\ntalk about React.AbstractComponent!"},{"id":"/2018/10/29/Asking-for-Required-Annotations","metadata":{"permalink":"/blog/2018/10/29/Asking-for-Required-Annotations","source":"@site/blog/2018-10-29-Asking-for-Required-Annotations.md","title":"Asking for Required Annotations","description":"Flow will be asking for more annotations starting in 0.85.0. Learn how","date":"2018-10-29T00:00:00.000Z","formattedDate":"October 29, 2018","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Sam Goldman"}],"frontMatter":{"title":"Asking for Required Annotations","short-title":"Asking for Required Annotations","author":"Sam Goldman","medium-link":"https://medium.com/flow-type/asking-for-required-annotations-64d4f9c1edf8"},"prevItem":{"title":"Supporting React.forwardRef and Beyond","permalink":"/blog/2018/12/13/React-Abstract-Component"},"nextItem":{"title":"On the Roadmap: Exact Objects by Default","permalink":"/blog/2018/10/18/Exact-Objects-By-Default"}},"content":"Flow will be asking for more annotations starting in 0.85.0. Learn how\\nto deal with these errors in our latest blog post."},{"id":"/2018/10/18/Exact-Objects-By-Default","metadata":{"permalink":"/blog/2018/10/18/Exact-Objects-By-Default","source":"@site/blog/2018-10-18-Exact-Objects-By-Default.md","title":"On the Roadmap: Exact Objects by Default","description":"We are changing object types to be exact by default. We\'ll be releasing codemods to help you upgrade.","date":"2018-10-18T00:00:00.000Z","formattedDate":"October 18, 2018","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"On the Roadmap: Exact Objects by Default","short-title":"Exact Objects by Default","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/on-the-roadmap-exact-objects-by-default-16b72933c5cf"},"prevItem":{"title":"Asking for Required Annotations","permalink":"/blog/2018/10/29/Asking-for-Required-Annotations"},"nextItem":{"title":"New Flow Errors on Unknown Property Access in Conditionals","permalink":"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals"}},"content":"We are changing object types to be exact by default. We\'ll be releasing codemods to help you upgrade."},{"id":"/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals","metadata":{"permalink":"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals","source":"@site/blog/2018-03-16-New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals.md","title":"New Flow Errors on Unknown Property Access in Conditionals","description":"TL;DR: Starting in 0.68.0, Flow will now error when you access unknown","date":"2018-03-16T00:00:00.000Z","formattedDate":"March 16, 2018","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"title":"New Flow Errors on Unknown Property Access in Conditionals","short-title":"Unknown Props in Conditionals","author":"Gabe Levi","medium-link":"https://medium.com/flow-type/new-flow-errors-on-unknown-property-access-in-conditionals-461da66ea10"},"prevItem":{"title":"On the Roadmap: Exact Objects by Default","permalink":"/blog/2018/10/18/Exact-Objects-By-Default"},"nextItem":{"title":"Better Flow Error Messages for the JavaScript Ecosystem","permalink":"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem"}},"content":"TL;DR: Starting in 0.68.0, Flow will now error when you access unknown\\nproperties in conditionals."},{"id":"/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem","metadata":{"permalink":"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem","source":"@site/blog/2018-02-20-Better-Flow-Error-Messages-for-the-Javascript-Ecosystem.md","title":"Better Flow Error Messages for the JavaScript Ecosystem","description":"Over the last year, the Flow team has been slowly auditing and improving all the","date":"2018-02-20T00:00:00.000Z","formattedDate":"February 20, 2018","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Caleb Meredith"}],"frontMatter":{"title":"Better Flow Error Messages for the JavaScript Ecosystem","short-title":"Better Error Messages","author":"Caleb Meredith","medium-link":"https://medium.com/flow-type/better-flow-error-messages-for-the-javascript-ecosystem-73b6da948ae2"},"prevItem":{"title":"New Flow Errors on Unknown Property Access in Conditionals","permalink":"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals"},"nextItem":{"title":"Typing Higher-Order Components in Recompose With Flow","permalink":"/blog/2017/09/03/Flow-Support-in-Recompose"}},"content":"Over the last year, the Flow team has been slowly auditing and improving all the\\npossible error messages generated by the type checker. In Flow 0.66 we\u2019re\\nexcited to announce a new error message format designed to decrease the time it\\ntakes you to read and fix each bug Flow finds."},{"id":"/2017/09/03/Flow-Support-in-Recompose","metadata":{"permalink":"/blog/2017/09/03/Flow-Support-in-Recompose","source":"@site/blog/2017-09-03-Flow-Support-in-Recompose.md","title":"Typing Higher-Order Components in Recompose With Flow","description":"One month ago Recompose landed an","date":"2017-09-03T00:00:00.000Z","formattedDate":"September 3, 2017","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Ivan Starkov"}],"frontMatter":{"title":"Typing Higher-Order Components in Recompose With Flow","short-title":"Flow Support in Recompose","author":"Ivan Starkov","medium-link":"https://medium.com/flow-type/flow-support-in-recompose-1b76f58f4cfc"},"prevItem":{"title":"Better Flow Error Messages for the JavaScript Ecosystem","permalink":"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem"},"nextItem":{"title":"Private Object Properties Using Flow\u2019s Opaque Type Aliases","permalink":"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases"}},"content":"One month ago [Recompose](https://github.com/acdlite/recompose) landed an\\nofficial Flow library definition. The definitions were a long time coming,\\nconsidering the original PR was created by\\n[@GiulioCanti](https://twitter.com/GiulioCanti) a year ago."},{"id":"/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases","metadata":{"permalink":"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases","source":"@site/blog/2017-08-25-Private-Object-Properties-Using-Flows-Opaque-Type-Aliases.md","title":"Private Object Properties Using Flow\u2019s Opaque Type Aliases","description":"In the last few weeks, a proposal for private class fields in Javascript reached","date":"2017-08-25T00:00:00.000Z","formattedDate":"August 25, 2017","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"Private Object Properties Using Flow\u2019s Opaque Type Aliases","short-title":"Private Props w/ Opaque Types","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/private-object-properties-using-flows-opaque-type-aliases-e0100e9b0282"},"prevItem":{"title":"Typing Higher-Order Components in Recompose With Flow","permalink":"/blog/2017/09/03/Flow-Support-in-Recompose"},"nextItem":{"title":"Even Better Support for React in Flow","permalink":"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow"}},"content":"In the last few weeks, a proposal for [private class fields in Javascript](https://github.com/tc39/proposal-class-fields) reached\\nstage 3. This is going to be a great way to hide implementation details away\\nfrom users of your classes. However, locking yourself in to an OOP style of\\nprogramming is not always ideal if you prefer a more functional style. Let\u2019s\\ntalk about how you can use Flow\u2019s [opaque type aliases](https://flow.org/en/docs/types/opaque-types/) to get private properties\\n on any object type."},{"id":"/2017/08/16/Even-Better-Support-for-React-in-Flow","metadata":{"permalink":"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow","source":"@site/blog/2017-08-16-Even-Better-Support-for-React-in-Flow.md","title":"Even Better Support for React in Flow","description":"The first version of Flow support for React was a magical implementation of","date":"2017-08-16T00:00:00.000Z","formattedDate":"August 16, 2017","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Caleb Meredith"}],"frontMatter":{"title":"Even Better Support for React in Flow","short-title":"Even Better React Support","author":"Caleb Meredith","medium-link":"https://medium.com/flow-type/even-better-support-for-react-in-flow-25b0a3485627"},"prevItem":{"title":"Private Object Properties Using Flow\u2019s Opaque Type Aliases","permalink":"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases"},"nextItem":{"title":"Linting in Flow","permalink":"/blog/2017/08/04/Linting-in-Flow"}},"content":"The first version of Flow support for React was a magical implementation of\\n`React.createClass()`. Since then, React has evolved significantly. It is time\\nto rethink how Flow models React."},{"id":"/2017/08/04/Linting-in-Flow","metadata":{"permalink":"/blog/2017/08/04/Linting-in-Flow","source":"@site/blog/2017-08-04-Linting-in-Flow.md","title":"Linting in Flow","description":"Flow\u2019s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter.","date":"2017-08-04T00:00:00.000Z","formattedDate":"August 4, 2017","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Roger Ballard"}],"frontMatter":{"title":"Linting in Flow","short-title":"Linting in Flow","author":"Roger Ballard","medium-link":"https://medium.com/flow-type/linting-in-flow-7709d7a7e969"},"prevItem":{"title":"Even Better Support for React in Flow","permalink":"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow"},"nextItem":{"title":"Opaque Type Aliases","permalink":"/blog/2017/07/27/Opaque-Types"}},"content":"Flow\u2019s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter."},{"id":"/2017/07/27/Opaque-Types","metadata":{"permalink":"/blog/2017/07/27/Opaque-Types","source":"@site/blog/2017-07-27-Opaque-Types.md","title":"Opaque Type Aliases","description":"Do you ever wish that you could hide your implementation details away","date":"2017-07-27T00:00:00.000Z","formattedDate":"July 27, 2017","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"Opaque Type Aliases","short-title":"Opaque Type Aliases","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/hiding-implementation-details-with-flows-new-opaque-type-aliases-feature-40e188c2a3f9"},"prevItem":{"title":"Linting in Flow","permalink":"/blog/2017/08/04/Linting-in-Flow"},"nextItem":{"title":"Strict Checking of Function Call Arity","permalink":"/blog/2017/05/07/Strict-Function-Call-Arity"}},"content":"Do you ever wish that you could hide your implementation details away\\nfrom your users? Find out how opaque type aliases can get the job done!"},{"id":"/2017/05/07/Strict-Function-Call-Arity","metadata":{"permalink":"/blog/2017/05/07/Strict-Function-Call-Arity","source":"@site/blog/2017-05-07-Strict-Function-Call-Arity.md","title":"Strict Checking of Function Call Arity","description":"One of Flow\'s original goals was to be able to understand idiomatic JavaScript.","date":"2017-05-07T00:00:00.000Z","formattedDate":"May 7, 2017","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"title":"Strict Checking of Function Call Arity","short-title":"Strict Function Call Arity","author":"Gabe Levi","hide_table_of_contents":true},"prevItem":{"title":"Opaque Type Aliases","permalink":"/blog/2017/07/27/Opaque-Types"},"nextItem":{"title":"Introducing Flow-Typed","permalink":"/blog/2016/10/13/Flow-Typed"}},"content":"One of Flow\'s original goals was to be able to understand idiomatic JavaScript.\\nIn JavaScript, you can call a function with more arguments than the function\\nexpects. Therefore, Flow never complained about calling a function with\\nextraneous arguments.\\n\\nWe are changing this behavior.\\n\\n\x3c!--truncate--\x3e\\n\\n### What is arity?\\n\\nA function\'s *arity* is the number of arguments it expects. Since some functions\\nhave optional parameters and some use rest parameters, we can define the\\n*minimum arity* as the smallest number of arguments it expects and the *maximum\\narity* as the largest number of arguments it expects.\\n\\n```js\\nfunction no_args() {} // arity of 0\\nfunction two_args(a, b) {} // arity of 2\\nfunction optional_args(a, b?) {} // min arity of 1, max arity of 2\\nfunction many_args(a, ...rest) {} // min arity of 1, no max arity\\n```\\n\\n### Motivation\\n\\nConsider the following code:\\n\\n```js\\nfunction add(a, b) { return a + b; }\\nconst sum = add(1, 1, 1, 1);\\n```\\n\\nThe author apparently thought the `add()` function adds up all its\\narguments, and that `sum` will have the value `4`. However, only the first two\\narguments are summed, and `sum` actually will have the value `2`. This is\\nobviously a bug, so why doesn\'t JavaScript or Flow complain?\\n\\nAnd while the error in the above example is easy to see, in real code it\'s often\\na lot harder to notice. For example, what is the value of `total` here:\\n\\n```js\\nconst total = parseInt(\\"10\\", 2) + parseFloat(\\"10.1\\", 2);\\n```\\n\\n`\\"10\\"` in base 2 is `2` in decimal and `\\"10.1\\"` in base 2 is `2.5` in decimal.\\nSo the author probably thought that `total` would be `4.5`. However, the correct\\nanswer is `12.1`. `parseInt(\\"10\\", 2)` does evaluates to `2`, as expected.\\nHowever, `parseFloat(\\"10.1\\", 2)` evaluates to `10.1`. `parseFloat()` only takes\\na single argument. The second argument is ignored!\\n\\n### Why JavaScript allows extraneous arguments\\n\\nAt this point, you might feel like this is just an example of JavaScript making\\nterrible life decisions. However, this behavior is very convenient in a bunch of\\nsituations!\\n\\n#### Callbacks\\n\\nIf you couldn\'t call a function with more arguments than it handles, then\\nmapping over an array would look like\\n\\n```js\\nconst doubled_arr = [1, 2, 3].map((element, index, arr) => element * 2);\\n```\\n\\nWhen you call `Array.prototype.map`, you pass in a callback. For each element in\\nthe array, that callback is invoked and passed 3 arguments:\\n\\n1. The element\\n2. The index of the element\\n3. The array over which you\'re mapping\\n\\nHowever, your callback often only needs to reference the first argument: the\\nelement. It\'s really nice that you can write\\n\\n```js\\nconst doubled_arr = [1, 2, 3].map(element => element * 2);\\n```\\n\\n#### Stubbing\\n\\nSometimes I come across code like this\\n\\n```js\\nlet log = () => {};\\nif (DEBUG) {\\n log = (message) => console.log(message);\\n}\\nlog(\\"Hello world\\");\\n```\\n\\nThe idea is that in a development environment, calling `log()` will output a\\nmessage, but in production it does nothing. Since you can call a\\nfunction with more arguments than it expects, it is easy to stub out `log()` in\\nproduction.\\n\\n#### Variadic functions using `arguments`\\n\\nA variadic function is a function that can take an indefinite number of\\narguments. The old-school way to write variadic functions in JavaScript is by\\nusing `arguments`. For example\\n\\n```js\\nfunction sum_all() {\\n let ret = 0;\\n for (let i = 0; i < arguments.length; i++) { ret += arguments[i]; }\\n return ret;\\n}\\nconst total = sum_all(1, 2, 3); // returns 6\\n```\\n\\nFor all intents and purposes, `sum_all` appears like it takes no arguments. So\\neven though it appears to have an arity of 0, it is convenient that we can call\\nit with more arguments.\\n\\n### Changes to Flow\\n\\nWe think we have found a compromise which catches the motivating bugs without\\nbreaking the convenience of JavaScript.\\n\\n#### Calling a function\\n\\nIf a function has a maximum arity of N, then Flow will start complaining if you\\ncall it with more than N arguments.\\n\\n```js\\ntest:1\\n 1: const num = parseFloat(\\"10.5\\", 2);\\n ^ unused function argument\\n 19: declare function parseFloat(string: mixed): number;\\n ^^^^^^^^^^^^^^^^^^^^^^^ function type expects no more than 1 argument. See lib: /core.js:19\\n```\\n\\n#### Function subtyping\\n\\nFlow will not change its function subtyping behavior. A function\\nwith a smaller maximum arity is still a subtype of a function with a larger\\nmaximum arity. This allows callbacks to still work as before.\\n\\n```js\\nclass Array {\\n ...\\n map(callbackfn: (value: T, index: number, array: Array) => U, thisArg?: any): Array;\\n ...\\n}\\nconst arr = [1,2,3].map(() => 4); // No error, evaluates to [4,4,4]\\n```\\n\\nIn this example, `() => number` is a subtype of `(number, number, Array) => number`.\\n\\n#### Stubbing and variadic functions\\n\\nThis will, unfortunately, cause Flow to complain about stubs and variadic\\nfunctions which are written using `arguments`. However, you can fix these by\\nusing rest parameters\\n\\n```js\\nlet log (...rest) => {};\\n\\nfunction sum_all(...rest) {\\n let ret = 0;\\n for (let i = 0; i < rest.length; i++) { ret += rest[i]; }\\n return ret;\\n}\\n```\\n\\n### Rollout plan\\n\\nFlow v0.46.0 will ship with strict function call arity turned off by default. It\\ncan be enabled via your `.flowconfig` with the flag\\n\\n```ini\\nexperimental.strict_call_arity=true\\n```\\n\\nFlow v0.47.0 will ship with strict function call arity turned on and the\\n`experimental.strict_call_arity` flag will be removed.\\n\\n\\n#### Why turn this on over two releases?\\n\\nThis decouples the switch to strict checking of function call arity from the\\nrelease.\\n\\n#### Why not keep the `experimental.strict_call_arity` flag?\\n\\nThis is a pretty core change. If we kept both behaviors, we\'d have to test that\\neverything works with and without this change. As we add more flags, the number\\nof combinations grows exponentially, and Flow\'s behavior gets harder to reason\\nabout. For this reason, we\'re choosing only one behavior: strict checking of\\nfunction call arity.\\n\\n### What do you think?\\n\\nThis change was motivated by feedback from Flow users. We really appreciate\\nall the members of our community who take the time to share their feedback with\\nus. This feedback is invaluable and helps us make Flow better, so please keep\\nit coming!"},{"id":"/2016/10/13/Flow-Typed","metadata":{"permalink":"/blog/2016/10/13/Flow-Typed","source":"@site/blog/2016-10-13-Flow-Typed.md","title":"Introducing Flow-Typed","description":"Having high-quality and community-driven library definitions (\u201clibdefs\u201d) are","date":"2016-10-13T00:00:00.000Z","formattedDate":"October 13, 2016","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Jeff Morrison"}],"frontMatter":{"title":"Introducing Flow-Typed","short-title":"Introducing Flow-Typed","author":"Jeff Morrison","hide_table_of_contents":true},"prevItem":{"title":"Strict Checking of Function Call Arity","permalink":"/blog/2017/05/07/Strict-Function-Call-Arity"},"nextItem":{"title":"Property Variance and Other Upcoming Changes","permalink":"/blog/2016/10/04/Property-Variance"}},"content":"Having high-quality and community-driven library definitions (\u201clibdefs\u201d) are\\nimportant for having a great experience with Flow. Today, we are introducing\\n**flow-typed**: A [repository](https://github.com/flowtype/flow-typed/) and\\n[CLI tool](http://npmjs.org/packages/flow-typed) that represent the first parts\\nof a new workflow for building, sharing, and distributing Flow libdefs.\\n\\nThe goal of this project is to grow an ecosystem of libdefs that\\n[allows Flow\'s type inference to shine](https://medium.com/@thejameskyle/flow-mapping-an-object-373d64c44592)\\nand that aligns with Flow\'s mission: To extract precise and *accurate* types\\nfrom real-world JavaScript. We\'ve learned a lot from similar efforts like\\nDefinitelyTyped for TypeScript and we want to bring some of the lessons we\'ve\\nlearned to the Flow ecosystem.\\n\\nHere are some of the objectives of this project:\\n\\n\x3c!--truncate--\x3e\\n\\n- Libdefs should be **versioned** \u2014 both against the libraries they describe\\n *and* against the version(s) of Flow they are compatible with.\\n- Libdefs should meet a **high quality bar**, including **libdef tests** to\\n ensure that their quality persists over time.\\n- There must be a straightforward way to **contribute libdef improvements over\\n time** and for developers to **benefit from those improvements** over time.\\n- The process of managing libdefs for a Flow project should be **automated,\\n simple, and easy to get right**.\\n\\n### Versioned & Tested Libdefs\\n\\nAnyone can contribute a libdef (or improve on an existing one), but when doing\\nso it\'s important that we maintain a high quality bar so that all developers\\nfeel confident in the libdefs they are using. To address this, flow-typed\\nrequires that all libdef contributions are explicitly versioned against both\\nthe version of the library they are describing and the version(s) of Flow the\\nlibdef is compatible with.\\n\\nAdditionally, all libdefs must be accompanied by tests that exercise the\\nimportant parts of the API and assert that they yield the correct types. By\\nincluding both version information and tests with each libdef, we can\\nautomatically verify in Travis that the tests work as expected for all versions\\nof Flow a libdef is compatible with. Tests also help to ensure that future\\nchanges to the libdef don\'t regress its features over time.\\n\\n### Automating Libdef Installation\\n\\nWe\'ve built a simple CLI tool called `flow-typed` that helps to automate the\\nprocess of finding, installing, and upgrading libdefs in your Flow projects. It\\nuses the explicit version info associated with each libdef to find all\\nnecessary libdefs based on your project\'s package.json dependencies. This\\nminimizes the work you need to do in order to pull in and update libdefs in\\nyour projects.\\n\\nYou can get the flow-typed CLI using either yarn (`yarn global add flow-typed`)\\nor npm (`npm install -g flow-typed`).\\n\\n### Installing Libdefs\\n\\nInstalling libdefs from the flow-typed repository is a matter of running a\\nsingle command on your project after installing your dependencies:\\n\\n```\\n> yarn install # Or `npm install` if you\'re old-school :)\\n> flow-typed install\\n```\\n\\nThe `flow-typed install` command reads your project\'s package.json file,\\nqueries the flow-typed repository for libdefs matching your dependencies, and\\ninstalls the correctly-versioned libdefs into the `flow-typed/` directory for\\nyou. By default, Flow knows to look in the `flow-typed/` directory for libdefs\\n\u2014 so there is no additional configuration necessary.\\n\\nNote that it\'s necessary to run this command *after* running `yarn` or\\n`npm install`. This is because this command will also generate stub libdefs for\\nyou if one of your dependencies doesn\'t have types.\\n\\nOnce libdefs have been installed, **we recommend that you check them in to your\\nproject\'s repo**. Libdefs in the flow-typed repository may be improved over\\ntime (fixing a bug, more precise types, etc). If this happens for a libdef that\\nyou depend on, you\'ll want to have control over when that update is applied to\\nyour project. Periodically you can run `flow-typed update` to download any\\nlibdef updates, verify that your project still typechecks, and the commit the\\nupdates.\\n\\n### Why Not Just Use Npm To Distribute Libdefs?\\n\\nOver time libdefs in the flow-typed repo may be updated to fix bugs, improve\\naccuracy, or make use of new Flow features that better describe the types of\\nthe library. As a result, there are really 3 versions that apply to each\\nlibdef: The version of the library being described, the current version of the\\nlibdef in the flow-typed repo, and the version(s) of Flow the libdef is\\ncompatible with.\\n\\nIf an update is made to some libdef that you use in your project after you\'ve\\nalready installed it, there\'s a good chance that update may find new type\\nerrors in your project that were previously unknown. While it is certainly a\\ngood thing to find errors that were previously missed, you\'ll want to have\\ncontrol over when those changes get pulled in to your project.\\n\\nThis is the reason we advise that you commit your installed libdefs to version\\ncontrol rather than rely on a system like npm+semver to download and install a\\nnon-deterministic semver-ranged version from npm. Checking in your libdefs\\nensures that all collaborators on your project have consistent output from Flow\\nat any given commit in version history.\\n\\n### Building a Community\\n\\nThis is first and foremost a community project. It was started by a community\\nmember (hey [@splodingsocks](https://github.com/splodingsocks)!) and has\\nalready benefitted from hours of work by many others. Moreover, this will\\ncontinue to be a community effort: Anyone can create and/or help maintain a\\nlibdef for any npm library. Authors may create libdefs for their packages when\\npublishing, and/or consumers can create them when someone else hasn\'t already\\ndone so. Either way, everyone benefits!\\n\\nWe\'d like to send a big shout-out to [@marudor](https://github.com/marudor) for\\ncontributing so many of his own libdefs and spending time helping others to\\nwrite and contribute libdefs. Additionally we\'d like to thank\\n[@ryyppy](https://github.com/ryyppy) for helping to design and iterate on the\\nCLI and installation workflow as well as manage libdef reviews.\\n\\nThe Flow core team intends to stay invested in developing and improving this\\nproject, but in order for it to truly succeed we need your help! If you\'ve\\nalready written some libdefs for Flow projects that you work on, we encourage\\nyou to [contribute](https://github.com/flowtype/flow-typed/#how-do-i-contribute-library-definitions)\\nthem for others to benefit from them as well. By managing libdefs in a\\ncommunity-driven repository, the community as a whole can work together to\\nextend Flow\'s capabilities beyond just explicitly-typed JS.\\n\\nIt\'s still early days and there\'s still a lot to do, so we\'re excited to hear\\nyour ideas/feedback and read your pull requests! :)\\n\\nHappy typing!"},{"id":"/2016/10/04/Property-Variance","metadata":{"permalink":"/blog/2016/10/04/Property-Variance","source":"@site/blog/2016-10-04-Property-Variance.md","title":"Property Variance and Other Upcoming Changes","description":"The next release of Flow, 0.34, will include a few important changes to object","date":"2016-10-04T00:00:00.000Z","formattedDate":"October 4, 2016","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Sam Goldman"}],"frontMatter":{"title":"Property Variance and Other Upcoming Changes","short-title":"Property Variance","author":"Sam Goldman","hide_table_of_contents":true},"prevItem":{"title":"Introducing Flow-Typed","permalink":"/blog/2016/10/13/Flow-Typed"},"nextItem":{"title":"Windows Support is Here!","permalink":"/blog/2016/08/01/Windows-Support"}},"content":"The next release of Flow, 0.34, will include a few important changes to object\\ntypes:\\n\\n* property variance,\\n* invariant-by-default dictionary types,\\n* covariant-by-default method types,\\n* and more flexible getters and setters.\\n\\n\x3c!--truncate--\x3e\\n\\n### What is Variance?\\n\\nDefining the subtype relationship between types is a core responsibility of Flow\\nas a type system. These relationships are determined either directly for\\nsimple types or, for complex types, defined in terms of their parts.\\n\\nVariance describes the subtyping relationship for complex types as it relates\\nto the subtyping relationships of their parts.\\n\\nFor example, Flow directly encodes the knowledge that `string` is a subtype of\\n`?string`. Intuitively, a `string` type contains string values while a `?string`\\ntype contains `null`, `undefined`, and also string values, so membership in the\\nformer naturally implies membership in the later.\\n\\nThe subtype relationships between two function types is not as direct. Rather,\\nit is derived from the subtype relationships between the functions\' parameter\\nand return types.\\n\\nLet\'s see how this works for two simple function types:\\n\\n```js\\ntype F1 = (x: P1) => R1;\\ntype F2 = (x: P2) => R2;\\n```\\n\\nWhether `F2` is a subtype of `F1` depends on the relationships between `P1` and\\n`P2` and `R1` and `R2`. Let\'s use the notation `B <: A` to mean `B` is a\\nsubtype of `A`.\\n\\nIt turns out that `F2 <: F1` if `P1 <: P2` and `R2 <: R1`. Notice that the\\nrelationship for parameters is reversed? In technical terms, we can say that\\nfunction types are \\"contravariant\\" with respect to their parameter types and\\n\\"covariant\\" with respect to their return types.\\n\\nLet\'s look at an example:\\n\\n```js\\nfunction f(callback: (x: string) => ?number): number {\\n return callback(\\"hi\\") || 0;\\n}\\n```\\n\\nWhat kinds of functions can we pass to `f`? Based on the subtyping rule above,\\nthen we can pass a function whose parameter type is a supertype of `string` and\\nwhose return type is a subtype of `?number`.\\n\\n```js\\nfunction g(x: ?string): number {\\n return x ? x.length : 0;\\n}\\nf(g);\\n```\\n\\nThe body of `f` will only ever pass `string` values into `g`, which is safe\\nbecause `g` takes at least `string` by taking `?string`. Conversely, `g` will\\nonly ever return `number` values to `f`, which is safe because `f` handles at\\nleast `number` by handling `?number`.\\n\\n#### Input and Output\\n\\nOne convenient way to remember when something is covariant vs. contravariant is\\nto think about \\"input\\" and \\"output.\\"\\n\\nParameters are in an *input* position, often called a \\"negative\\" position.\\nComplex types are contravariant in their input positions.\\n\\nReturn is an *output* position, often called a \\"positive\\" position. Complex\\ntypes are covariant in their output positions.\\n\\n## Property Invariance\\n\\nJust as function types are composed of parameter and return types, so too are\\nobject types composed of property types. Thus, the subtyping relationship\\nbetween objects is derived from the subtyping relationships of their\\nproperties.\\n\\nHowever, unlike functions which have input parameters and an output return,\\nobject properties can be read and written. That is, properties are *both* input\\nand output.\\n\\nLet\'s see how this works for two simple object types:\\n\\n```js\\ntype O1 = {p: T1};\\ntype O2 = {p: T2};\\n```\\n\\nAs with function types, whether `O2` is a subtype of `O1` depends on the\\nrelationship between its parts, `T1` and `T2`.\\n\\nHere it turns out that `O2 <: O1` if `T2 <: T1` *and* `T1 <: T2`. In technical\\nterms, object types are \\"invariant\\" with respect to their property types.\\n\\nLet\'s look at an example:\\n\\n```js\\nfunction f(o: {p: ?string}): void {\\n // We can read p from o\\n let len: number;\\n if (o.p) {\\n len = o.p.length;\\n } else {\\n len = 0;\\n }\\n\\n // We can also write into p\\n o.p = null;\\n}\\n```\\n\\nWhat kinds of objects can we pass into `f`, then? If we try to pass in an\\nobject with a subtype property, we get an error:\\n\\n```js\\nvar o1: {p: string} = {p: \\"\\"};\\nf(o1);\\n```\\n\\n```\\nfunction f(o: {p: ?string}) {}\\n ^ null. This type is incompatible with\\nvar o1: {p: string} = {p: \\"\\"};\\n ^ string\\nfunction f(o: {p: ?string}) {}\\n ^ undefined. This type is incompatible with\\nvar o1: {p: string} = {p: \\"\\"};\\n ^ string\\n```\\n\\nFlow has correctly identified an error here. If the body of `f` writes `null`\\ninto `o.p`, then `o1.p` would no longer have type `string`.\\n\\nIf we try to pass an object with a supertype property, we again get an error:\\n\\n```js\\nvar o2: {p: ?(string|number)} = {p: 0};\\nf(o2);\\n```\\n\\n```\\nvar o1: {p: ?(string|number)} = {p: \\"\\"};\\n ^ number. This type is incompatible with\\nfunction f(o: {p: ?string}) {}\\n ^ string\\n```\\n\\nAgain, Flow correctly identifies an error, because if `f` tried to read `p`\\nfrom `o`, it would find a number.\\n\\n### Property Variance\\n\\nSo objects have to be invariant with respect to their property types because\\nproperties can be read from and written to. But just because you *can* read and\\nwrite, doesn\'t mean you always do.\\n\\nConsider a function that gets the length of an nullable string property:\\n\\n```js\\nfunction f(o: {p: ?string}): number {\\n return o.p ? o.p.length : 0;\\n}\\n```\\n\\nWe never write into `o.p`, so we should be able to pass in an object where the\\ntype of property `p` is a subtype of `?string`. Until now, this wasn\'t possible\\nin Flow.\\n\\nWith property variance, you can explicitly annotate object properties as being\\ncovariant and contravariant. For example, we can rewrite the above function:\\n\\n```js\\nfunction f(o: {+p: ?string}): number {\\n return o.p ? o.p.length : 0;\\n}\\n\\nvar o: {p: string} = {p: \\"\\"};\\nf(o); // no type error!\\n```\\n\\nIt\'s crucial that covariant properties only ever appear in output positions. It\\nis an error to write to a covariant property:\\n\\n```js\\nfunction f(o: {+p: ?string}) {\\n o.p = null;\\n}\\n```\\n\\n```\\no.p = null;\\n^ object type. Covariant property `p` incompatible with contravariant use in\\no.p = null;\\n^ assignment of property `p`\\n```\\n\\nConversely, if a function only ever writes to a property, we can annotate the\\nproperty as contravariant. This might come up in a function that initializes an\\nobject with default values, for example.\\n\\n```js\\nfunction g(o: {-p: string}): void {\\n o.p = \\"default\\";\\n}\\nvar o: {p: ?string} = {p: null};\\ng(o);\\n```\\n\\nContravariant properties can only ever appear in input positions. It is an\\nerror to read from a contravariant property:\\n\\n```js\\nfunction f(o: {-p: string}) {\\n o.p.length;\\n}\\n```\\n\\n```\\no.p.length;\\n^ object type. Contravariant property `p` incompatible with covariant use in\\no.p.length;\\n^ property `p`\\n```\\n\\n### Invariant-by-default Dictionary Types\\n\\nThe object type `{[key: string]: ?number}` describes an object that can be used\\nas a map. We can read any property and Flow will infer the result type as\\n`?number`. We can also write `null` or `undefined` or `number` into any\\nproperty.\\n\\nIn Flow 0.33 and earlier, these dictionary types were treated covariantly by\\nthe type system. For example, Flow accepted the following code:\\n\\n```js\\nfunction f(o: {[key: string]: ?number}) {\\n o.p = null;\\n}\\ndeclare var o: {p: number};\\nf(o);\\n```\\n\\nThis is unsound because `f` can overwrite property `p` with `null`. In Flow\\n0.34, dictionaries are invariant, like named properties. The same code now\\nresults in the following type error:\\n\\n```\\nfunction f(o: {[key: string]: ?number}) {}\\n ^ null. This type is incompatible with\\ndeclare var o: {p: number};\\n ^ number\\nfunction f(o: {[key: string]: ?number}) {}\\n ^ undefined. This type is incompatible with\\ndeclare var o: {p: number};\\n ^ number\\n```\\n\\nCovariant and contravariant dictionaries can be incredibly useful, though. To\\nsupport this, the same syntax used to support variance for named properties can\\nbe used for dictionaries as well.\\n\\n```\\nfunction f(o: {+[key: string]: ?number}) {}\\ndeclare var o: {p: number};\\nf(o); // no type error!\\n```\\n\\n### Covariant-by-default Method Types\\n\\nES6 gave us a shorthand way to write object properties which are functions.\\n\\n```js\\nvar o = {\\n m(x) {\\n return x * 2\\n }\\n}\\n```\\n\\nFlow now interprets properties which use this shorthand method syntax as\\ncovariant by default. This means it is an error to write to the property `m`.\\n\\nIf you don\'t want covariance, you can use the long form syntax:\\n\\n```js\\nvar o = {\\n m: function(x) {\\n return x * 2;\\n }\\n}\\n```\\n\\n### More Flexible Getters and Setters\\n\\nIn Flow 0.33 and earlier, getters and setters had to agree exactly on their\\nreturn type and parameter type, respectively. Flow 0.34 lifts that restriction.\\n\\nThis means you can write code like the following:\\n\\n```js\\n// @flow\\ndeclare var x: string;\\n\\nvar o = {\\n get x(): string {\\n return x;\\n },\\n set x(value: ?string) {\\n x = value || \\"default\\";\\n }\\n}\\n```"},{"id":"/2016/08/01/Windows-Support","metadata":{"permalink":"/blog/2016/08/01/Windows-Support","source":"@site/blog/2016-08-01-Windows-Support.md","title":"Windows Support is Here!","description":"We are excited to announce that Flow is now officially available on 64-bit","date":"2016-08-01T00:00:00.000Z","formattedDate":"August 1, 2016","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"title":"Windows Support is Here!","short-title":"Windows Support","author":"Gabe Levi","hide_table_of_contents":true},"prevItem":{"title":"Property Variance and Other Upcoming Changes","permalink":"/blog/2016/10/04/Property-Variance"},"nextItem":{"title":"New Implementation of Unions and Intersections","permalink":"/blog/2016/07/01/New-Unions-Intersections"}},"content":"We are excited to announce that Flow is now officially available on 64-bit\\nWindows! Starting with\\n[Flow v0.30.0](https://github.com/facebook/flow/releases/tag/v0.30.0), we will\\npublish a Windows binary with each release. You can download the Windows binary\\nin a .zip file directly from the\\n[GitHub releases page](https://github.com/facebook/flow/releases) or install it\\nusing the [flow-bin npm package](https://www.npmjs.com/package/flow-bin). Try\\nit out and [report any issues](https://github.com/facebook/flow/issues) you\\ncome across!\\n\\n![Windows Support GIF]({{ site.baseurl }}/static/windows.gif)\\n\\nGetting Flow working on Windows was not easy, and it was made possible by the\\nhard work of [Gr\xe9goire](https://github.com/OCamlPro-Henry),\\n[\xc7agdas](https://github.com/OCamlPro-Bozman) and\\n[Fabrice](https://github.com/lefessan) from\\n[OCamlPro](https://www.ocamlpro.com/).\\n\\n\x3c!--truncate--\x3e\\n\\n### Getting Started with Windows\\n\\n#### Getting Started with flow-bin on Windows\\n\\nDoes your JavaScript project use npm to manage dependencies? Well, then the\\neasiest way for you to install Flow is with npm! Just run\\n\\n```bash\\n> npm install --save-dev flow-bin\\n```\\n\\n(Note: on Windows, it is recommended to use npm v3, to avoid the long\\n`node_modules` paths that npm v2 creates)\\n\\nThis will install the\\n[flow-bin npm package](https://www.npmjs.com/package/flow-bin) and\\nautomatically add it to your package.json. Once installed, there are a few ways\\nto use the Flow binary. One is to use `./node_modules/.bin/flow` directly. For\\nexample, every Flow project needs a `.flowconfig` file in the root directory.\\nIf you don\'t already have a `.flowconfig`, you could create it with Powershell,\\nlike\\n\\n```bash\\n> New-Item .flowconfig\\n```\\n\\nor you could run the `flow init` command, using `./node_modules/.bin/flow`\\n\\n```bash\\n> ./node_modules/.bin/flow init\\n```\\n\\nAnother way to run Flow is via an npm script. In your package.json file, there\\nis a `\\"scripts\\"` section. Maybe it looks like this:\\n\\n```js\\n\\"scripts\\": {\\n \\"test\\": \\"make test\\"\\n}\\n```\\n\\nYou can run the Flow binary directly from a script by referencing `flow` in a\\nscript, like so:\\n\\n```js\\n\\"scripts\\": {\\n \\"test\\": \\"make test\\",\\n \\"flow_check\\": \\"flow check || exit 0\\"\\n}\\n```\\n\\nand then running that script via `npm run`\\n\\n```bash\\n> npm run flow_check\\n```\\n\\n(Note: the `|| exit 0` part of the script is optional, but `npm run` will show\\nan error message if the script finishes with a non-zero exit code)\\n\\nYou can also install `flow-bin` globally with\\n\\n```bash\\n> npm install --global flow-bin\\n```\\n\\n#### Getting Started with flow.exe\\n\\nEach [GitHub release of Flow](https://github.com/facebook/flow/releases)\\nstarting with v0.30.0 will have a zipped Windows binary. For example, the\\n[v0.30.0 release](https://github.com/facebook/flow/releases/tag/v0.30.0)\\nincludes [flow-win64-v0.30.0.zip](https://github.com/facebook/flow/releases/download/v0.30.0/flow-win64-v0.30.0.zip).\\nIf you download and unzip that, you will find a `flow/` directory, which\\ncontains `flow.exe`. `flow.exe` is the Flow binary, so if you put that\\nsomewhere in your path, and you should be good to go.\\n\\n```bash\\n> mkdir demo\\n> cd demo\\n> flow.exe init\\n> \\"/* @flow */ var x: number = true;\\" | Out-File -Encoding ascii test.js\\n> flow.exe check\\ntest.js:1\\n 1: /* @flow */ var x: number = true;\\n ^^^^ boolean. This type is incompatible with\\n\\n 1: /* @flow */ var x: number = true;\\n ^^^^^^ number\\n```"},{"id":"/2016/07/01/New-Unions-Intersections","metadata":{"permalink":"/blog/2016/07/01/New-Unions-Intersections","source":"@site/blog/2016-07-01-New-Unions-Intersections.md","title":"New Implementation of Unions and Intersections","description":"Summary","date":"2016-07-01T00:00:00.000Z","formattedDate":"July 1, 2016","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Sam Goldman"}],"frontMatter":{"title":"New Implementation of Unions and Intersections","short-title":"New Unions and Intersections","author":"Sam Goldman","hide_table_of_contents":true},"prevItem":{"title":"Windows Support is Here!","permalink":"/blog/2016/08/01/Windows-Support"},"nextItem":{"title":"Version 0.21.0","permalink":"/blog/2016/02/02/Version-0.21.0"}},"content":"### Summary\\n\\nBefore Flow 0.28, the implementation of union/intersection types had serious\\nbugs and was [the][gh1759] [root][gh1664] [cause][gh1663] [of][gh1462]\\n[a][gh1455] [lot][gh1371] [of][gh1349] [weird][gh842] [behaviors][gh815] you\\nmay have run into with Flow in the past. These bugs have now been addressed in\\n[a diff landing in 0.28][fotu].\\n\\n\x3c!--truncate--\x3e\\n\\nAs you might expect after a major rewrite of a tricky part of the type system\\nimplementation, there will be a short period of adjustment: you may run into\\nkinks that we will try to iron out promptly, and you may run into some\\nunfamiliar error messages.\\n\\n### New Error Messages\\n\\n```\\n Could not decide which case to select\\n\\n\\n Case 1 may work:\\n \\n\\n But if it doesn\'t, case 2 looks promising too:\\n \\n\\n Please provide additional annotation(s) to determine whether case 1 works\\n (or consider merging it with case 2):\\n \\n \\n ...\\n```\\n\\nWhat this means is that at ``, Flow needs to make a choice: one\\nof the members of the union/intersection type at\\n`` must be applied, but Flow can\'t choose\\nsafely based on available information. In particular, it cannot decide between\\ncase `1` and `2`, so Flow lists a bunch of annotations that can help it\\ndisambiguate the two cases.\\n\\n### Actions Needed\\n\\nYou can fix the errors in two ways:\\n\\n- Actually go and annotate the listed locations. This should be by far the most\\n common fix.\\n- Discover that there is real, unintentional ambiguity between case 1 and 2,\\n and rewrite the two cases in the union type to remove the ambiguity. When\\n this happens, typically it will fix a large number of errors.\\n\\nThere are two more possibilities, however:\\n\\n- There\'s no real ambiguity and Flow is being too conservative / dumb. In this\\n case, go ahead and do the annotations anyway and file an issue on GitHub. We\\n plan to do a lot of short-term follow-up work to disambiguate more cases\\n automatically, so over time you should see less of (3).\\n- You have no idea what\'s going on. The cases being pointed to don\'t make sense.\\n They don\'t correspond to what you have at ``. Hopefully you\\n won\'t run into (4) too often, but if you do **please file an issue**, since\\n this means there are still latent bugs in the implementation.\\n\\nIf you file an issue on GitHub, please include code to reproduce the issue. You\\ncan use [Try Flow](https://flowtype.org/try/) to share your repro case easily.\\n\\nIf you\'re curious about the whys and hows of these new error messages, here\'s\\nan excerpt from the commit message of the \\"fate of the union\\" diff:\\n\\n### Problem\\n\\nFlow\'s inference engine is designed to find more errors over time as\\nconstraints are added...but it is not designed to backtrack. Unfortunately,\\nchecking the type of an expression against a union type does need backtracking:\\nif some branch of the union doesn\'t work out, the next branch must be tried,\\nand so on. (The same is true for checks that involve intersection types.)\\n\\nThe situation is further complicated by the fact that the type of the\\nexpression may not be completely known at the point of checking, so that a\\nbranch that looks promising now might turn out to be incorrect later.\\n\\n### Solution\\n\\nThe basic idea is to delay trying a branch until a point where we can decide\\nwhether the branch will definitely fail or succeed, without further\\ninformation. If trying a branch results in failure, we can move on to the next\\nbranch without needing to backtrack. If a branch succeeds, we are done. The\\nfinal case is where the branch looks promising, but we cannot be sure without\\nadding constraints: in this case we try other branches, and *bail* when we run\\ninto ambiguities...requesting additional annotations to decide which branch to\\nselect. Overall, this means that (1) we never commit to a branch that might\\nturn out to be incorrect and (2) can always select a correct branch (if such\\nexists) given enough annotations.\\n\\n[gh1759]: https://github.com/facebook/flow/issues/1759\\n[gh1664]: https://github.com/facebook/flow/issues/1664\\n[gh1663]: https://github.com/facebook/flow/issues/1663\\n[gh1462]: https://github.com/facebook/flow/issues/1462\\n[gh1455]: https://github.com/facebook/flow/issues/1455\\n[gh1371]: https://github.com/facebook/flow/issues/1371\\n[gh1349]: https://github.com/facebook/flow/issues/1349\\n[gh842]: https://github.com/facebook/flow/issues/824\\n[gh815]: https://github.com/facebook/flow/issues/815\\n[fotu]: https://github.com/facebook/flow/commit/2df7671e7bda770b95e6b1eaede96d7a8ab1f2ac"},{"id":"/2016/02/02/Version-0.21.0","metadata":{"permalink":"/blog/2016/02/02/Version-0.21.0","source":"@site/blog/2016-02-02-Version-0.21.0.md","title":"Version 0.21.0","description":"Yesterday we deployed Flow v0.21.0! As always, we\'ve listed out the most","date":"2016-02-02T00:00:00.000Z","formattedDate":"February 2, 2016","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"title":"Version 0.21.0","short-title":"Version 0.21.0","author":"Gabe Levi","hide_table_of_contents":true},"prevItem":{"title":"New Implementation of Unions and Intersections","permalink":"/blog/2016/07/01/New-Unions-Intersections"},"nextItem":{"title":"Version-0.19.0","permalink":"/blog/2015/12/01/Version-0.19.0"}},"content":"Yesterday we deployed Flow v0.21.0! As always, we\'ve listed out the most\\ninteresting changes in the\\n[Changelog](https://github.com/facebook/flow/blob/master/Changelog.md#v0210).\\nHowever, since I\'m on a plane and can\'t sleep, I thought it might be fun to\\ndive into a couple of the changes! Hope this blog post turns out interesting\\nand legible!\\n\\n### JSX Intrinsics\\n\\nIf you\'re writing JSX, it\'s probably a mix of your own React Components and\\nsome intrinsics. For example, you might write\\n\\n```js\\nrender() {\\n return

;\\n}\\n```\\n\\nIn this example, `FluffyBunny` is a React Component you wrote and `div` is a\\nJSX intrinsic. Lower-cased JSX elements are assumed to be intrinsics by React\\nand by Flow. Up until Flow v0.21.0, Flow ignored intrinsics and gave them the\\ntype `any`. This meant Flow let you set any property on JSX intrinsics. Flow\\nv0.21.0 will, by default, do the same thing as v0.20.0, However now you can\\nalso configure Flow to properly type your JSX intrinsics!\\n\\n\x3c!--truncate--\x3e\\n\\n#### Example of how to use JSX intrinsics\\n\\n.flowconfig\\n\\n```js\\n[libs]\\nmyLib.js\\n```\\n\\nmyLib.js\\n\\n```js\\n// JSXHelper is a type alias to make this example more concise.\\n// There\'s nothing special or magic here.\\n// JSXHelper<{name: string}> is a React component\\n// with the single string property \\"name\\", which has a default\\ntype JSXHelper = Class>;\\n\\n// $JSXIntrinsics is special and magic.\\n// This declares the types for `div` and `span`\\ntype $JSXIntrinsics = {\\n div: JSXHelper<{id: string}>,\\n span: JSXHelper<{id: string, class: string}>,\\n};\\n```\\n\\nmyCode.js\\n\\n```js\\n
; // No error\\n
; // Error: `id` prop is a string, not a number!\\n```\\n\\n#### What is going on here?\\n\\nThe new bit of magic is this `$JSXIntrinsics` type alias. When Flow sees\\n`` it will look to see if `$JSXIntrinsics` exists and if so will grab\\nthe type of `$JSXIntrinsics[\'foo\']`. It will use this type to figure out which\\nproperties are available and need to be set.\\n\\nWe haven\'t hardcoded the intrinsics into Flow since the available intrinsics\\nwill depend on your environment. For example, React native would have different\\nintrinsics than React for the web would.\\n\\n### Smarter string refinements\\n\\nOne of the main ways that we make Flow smarter is by teaching it to recognize\\nmore ways that JavaScript programmers refine types. Here\'s an example of a\\ncommon way to refine nullable values:\\n\\n```js\\nclass Person {\\n name: ?string;\\n ...\\n getName(): string {\\n // Before the if, this.name could be null, undefined, or a string\\n if (this.name != null) {\\n // But now the programmer has refined this.name to definitely be a string\\n return this.name;\\n }\\n // And now we know that this.name is null or undefined.\\n return \'You know who\';\\n }\\n}\\n```\\n\\n#### New string refinements\\n\\nIn v0.21.0, one of the refinements we added is the ability to refine types by\\ncomparing them to strings.\\n\\nThis is useful for refining unions of string literals into string literals\\n\\n```js\\nfunction test(x: \'foo\' | \'bar\'): \'foo\' {\\n if (x === \'foo\') {\\n // Now Flow understands that x has the type \'foo\'\\n return x;\\n } else {\\n return \'foo\';\\n }\\n}\\n```\\n\\nAnd can also narrow the value of strings:\\n\\n```js\\nfunction test(x: string): \'foo\' {\\n if (x === \'foo\') {\\n // Now Flow knows x has the type \'foo\'\\n return x;\\n } else {\\n return \'foo\';\\n }\\n}\\n```\\n\\nThis is one of the many refinements that Flow currently can recognize and\\nfollow, and we\'ll keep adding more! Stay tuned!"},{"id":"/2015/12/01/Version-0.19.0","metadata":{"permalink":"/blog/2015/12/01/Version-0.19.0","source":"@site/blog/2015-12-01-Version-0.19.0.md","title":"Version-0.19.0","description":"Flow v0.19.0 was deployed today! It has a ton of changes, which the","date":"2015-12-01T00:00:00.000Z","formattedDate":"December 1, 2015","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"author":"Gabe Levi","hide_table_of_contents":true},"prevItem":{"title":"Version 0.21.0","permalink":"/blog/2016/02/02/Version-0.21.0"},"nextItem":{"title":"Typing Generators with Flow","permalink":"/blog/2015/11/09/Generators"}},"content":"Flow v0.19.0 was deployed today! It has a ton of changes, which the\\n[Changelog](https://github.com/facebook/flow/blob/master/Changelog.md#v0190)\\nsummarizes. The Changelog can be a little concise, though, so here are some\\nlonger explanations for some of the changes. Hope this helps!\\n\\n### `@noflow`\\n\\nFlow is opt-in by default (you add `@flow` to a file). However we noticed that\\nsometimes people would add Flow annotations to files that were missing `@flow`.\\nOften, these people didn\'t notice that the file was being ignored by Flow. So\\nwe decided to stop allowing Flow syntax in non-Flow files. This is easily fixed\\nby adding either `@flow` or `@noflow` to your file. The former will make the\\nfile a Flow file. The latter will tell Flow to completely ignore the file.\\n\\n### Declaration files\\n\\nFiles that end with `.flow` are now treated specially. They are the preferred\\nprovider of modules. That is if both `foo.js` and `foo.js.flow` exist, then\\nwhen you write `import Foo from \'./foo\'`, Flow will use the type exported from\\n`foo.js.flow` rather than `foo.js`.\\n\\nWe imagine two main ways people will use `.flow` files.\\n\\n\x3c!--truncate--\x3e\\n\\n1. As interface files. Maybe you have some library `coolLibrary.js` that is\\n really hard to type with inline Flow types. You could put\\n `coolLibrary.js.flow` next to it and declare the types that `coolLibrary.js`\\n exports.\\n\\n ```js\\n// coolLibrary.js.flow\\ndeclare export var coolVar: number;\\ndeclare export function coolFunction(): void;\\ndeclare export class coolClass {}\\n ```\\n\\n2. As the original source. Maybe you want to ship the minified, transformed\\n version of `awesomeLibrary.js`, but people who use `awesomeLibrary.js` also\\n use Flow. Well you could do something like\\n\\n ```bash\\ncp awesomeLibraryOriginalCode.js awesomeLibrary.js.flow\\nbabel awesomeLibraryOriginalCode --out-file awesomeLibrary.js\\n ```\\n\\n### Order of precedence for lib files\\n\\nNow your local lib files will override the builtin lib files. Is one of the\\nbuiltin flow libs wrong? Send a pull request! But then while you\'re waiting for\\nthe next release, you can use your own definition! The order of precedence is\\nas follows:\\n\\n1. Any paths supplied on the command line via --lib\\n2. The files found in the paths specified in the .flowconfig `[libs]` (in\\n listing order)\\n3. The Flow core library files\\n\\nFor example, if I want to override the builtin definition of Array and instead\\nuse my own version, I could update my `.flowconfig` to contain\\n\\n```\\n// .flowconfig\\n[libs]\\nmyArray.js\\n```\\n\\n```js\\n// myArray.js\\ndeclare class Array {\\n // Put whatever you like in here!\\n}\\n```\\n\\n### Deferred initialization\\n\\nPreviously the following code was an error, because the initialization of\\n`myString` happens later. Now Flow is fine with it.\\n\\n```js\\nfunction foo(someFlag: boolean): string {\\n var myString:string;\\n if (someFlag) {\\n myString = \\"yup\\";\\n } else {\\n myString = \\"nope\\";\\n }\\n return myString;\\n}\\n```"},{"id":"/2015/11/09/Generators","metadata":{"permalink":"/blog/2015/11/09/Generators","source":"@site/blog/2015-11-09-Generators.md","title":"Typing Generators with Flow","description":"Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an upcoming feature already supported by Flow.","date":"2015-11-09T00:00:00.000Z","formattedDate":"November 9, 2015","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Sam Goldman"}],"frontMatter":{"title":"Typing Generators with Flow","short-title":"Generators","author":"Sam Goldman","hide_table_of_contents":true},"prevItem":{"title":"Version-0.19.0","permalink":"/blog/2015/12/01/Version-0.19.0"},"nextItem":{"title":"Version-0.17.0","permalink":"/blog/2015/10/07/Version-0.17.0"}},"content":"Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an [upcoming feature](https://github.com/tc39/ecmascript-asyncawait) already supported by Flow.\\n\\n\x3c!--truncate--\x3e\\n\\nSo much wonderful material has already been produced describing generators. I am going to focus on the interaction of static typing with generators. Please refer to the following materials for information about generators:\\n\\n* Jafar Husain gave an [incredibly lucid and well-illustrated talk](https://www.youtube.com/watch?v=DqMFX91ToLw#t=970) that covers generators. I have linked to the point where he gets into generators, but I highly recommend the entire talk.\\n* Exploring ES6, a comprehensive book by Axel Rauschmayer, who has generously made the contents available for free online, has a [chapter on generators](http://exploringjs.com/es6/ch_generators.html).\\n* The venerable MDN has a [useful page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators) describing the `Iterator` interface and generators.\\n\\nIn Flow, the `Generator` interface has three type parameters: `Yield`, `Return`, and `Next`. `Yield` is the type of values which are yielded from the generator function. `Return` is the type of the value which is returned from the generator function. `Next` is the type of values which are passed into the generator via the `next` method on the `Generator` itself. For example, a generator value of type `Generator` will yield `string`s, return a `number`, and will receive `boolean`s from its caller.\\n\\nFor any type `T`, a `Generator` is both an `Iterable` and an `Iterator`.\\n\\nThe unique nature of generators allows us to represent infinite sequences naturally. Consider the infinite sequence of natural numbers:\\n\\n```javascript\\nfunction *nats() {\\n let i = 0;\\n while (true) {\\n yield i++;\\n }\\n}\\n```\\n\\nBecause generators are also iterators, we can manually iterate the generator:\\n\\n```javascript\\nconst gen = nats();\\nconsole.log(gen.next()); // { done: false, value: 0 }\\nconsole.log(gen.next()); // { done: false, value: 1 }\\nconsole.log(gen.next()); // { done: false, value: 2 }\\n```\\n\\nWhen `done` is false, `value` will have the generator\'s `Yield` type. When `done` is true, `value` will have the generator\'s `Return` type or `void` if the consumer iterates past the completion value.\\n\\n```javascript\\nfunction *test() {\\n yield 1;\\n return \\"complete\\";\\n}\\nconst gen = test();\\nconsole.log(gen.next()); // { done: false, value: 1 }\\nconsole.log(gen.next()); // { done: true, value: \\"complete\\" }\\nconsole.log(gen.next()); // { done: true, value: undefined }\\n```\\n\\nBecause of this behavior, manually iterating poses typing difficulties. Let\'s try to take the first 10 values from the `nats` generator through manual iteration:\\n\\n```javascript\\nconst gen = nats();\\nconst take10: number[] = [];\\nfor (let i = 0; i < 10; i++) {\\n const { done, value } = gen.next();\\n if (done) {\\n break;\\n } else {\\n take10.push(value); // error!\\n }\\n}\\n```\\n\\n```\\ntest.js:13\\n 13: const { done, value } = gen.next();\\n ^^^^^^^^^^ call of method `next`\\n 17: take10.push(value); // error!\\n ^^^^^ undefined. This type is incompatible with\\n 11: const take10: number[] = [];\\n ^^^^^^ number\\n```\\n\\nFlow is complaining that `value` might be `undefined`. This is because the type of `value` is `Yield | Return | void`, which simplifies in the instance of `nats` to `number | void`. We can introduce a dynamic type test to convince Flow of the invariant that `value` will always be `number` when `done` is false.\\n\\n```javascript\\nconst gen = nats();\\nconst take10: number[] = [];\\nfor (let i = 0; i < 10; i++) {\\n const { done, value } = gen.next();\\n if (done) {\\n break;\\n } else {\\n if (typeof value === \\"undefined\\") {\\n throw new Error(\\"`value` must be a number.\\");\\n }\\n take10.push(value); // no error\\n }\\n}\\n```\\n\\nThere is an [open issue](https://github.com/facebook/flow/issues/577) which would make the dynamic type test above unnecessary, by using the `done` value as a sentinel to refine a tagged union. That is, when `done` is `true`, Flow would know that `value` is always of type `Yield` and otherwise of type `Return | void`.\\n\\nEven without the dynamic type test, this code is quite verbose and it\'s hard to see the intent. Because generators are also iterable, we can also use `for...of` loops:\\n\\n```javascript\\nconst take10: number[] = [];\\nlet i = 0;\\nfor (let nat of nats()) {\\n if (i === 10) break;\\n take10.push(nat);\\n i++;\\n}\\n```\\n\\nThat\'s much better. The `for...of` looping construct ignores completion values, so Flow understands that `nat` will always be `number`. Let\'s generalize this pattern further using generator functions:\\n\\n```javascript\\nfunction *take(n: number, xs: Iterable): Iterable {\\n if (n <= 0) return;\\n let i = 0;\\n for (let x of xs) {\\n yield x;\\n if (++i === n) return;\\n }\\n}\\n\\nfor (let n of take(10, nats())) {\\n console.log(n); // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9\\n}\\n```\\n\\nNote that we explicitly annotated the parameters and return type of the `take` generator. This is necessary to ensure Flow understands the fully generic type. This is because Flow does not currently infer a fully generic type, but instead accumulates lower bounds, resulting in a union type.\\n\\n```javascript\\nfunction identity(x) { return x }\\nvar a: string = identity(\\"\\"); // error\\nvar b: number = identity(0); // error\\n```\\n\\nThe above code produces errors because Flow adds `string` and `number` as lower bounds to the type variable describing the type of the value bound by `x`. That is, Flow believes the type of `identity` is `(x: string | number) => string | number` because those are the types which actually passed through the function.\\n\\nAnother important feature of generators is the ability to pass values into the generator from the consumer. Let\'s consider a generator `scan`, which reduces values passed into the generator using a provided function. Our `scan` is similar to `Array.prototype.reduce`, but it returns each intermediate value and the values are provided imperatively via `next`.\\n\\nAs a first pass, we might write this:\\n\\n```javascript\\nfunction *scan(init: U, f: (acc: U, x: T) => U): Generator {\\n let acc = init;\\n while (true) {\\n const next = yield acc;\\n acc = f(acc, next);\\n }\\n}\\n```\\n\\nWe can use this definition to implement an imperative sum procedure:\\n\\n```javascript\\nlet sum = scan(0, (a,b) => a + b);\\nconsole.log(sum.next()); // { done: false, value: 0 }\\nconsole.log(sum.next(1)); // { done: false, value: 1 }\\nconsole.log(sum.next(2)); // { done: false, value: 3 }\\nconsole.log(sum.next(3)); // { done: false, value: 6 }\\n```\\n\\nHowever, when we try to check the above definition of `scan`, Flow complains:\\n\\n```\\ntest.js:7\\n 7: acc = f(acc, next);\\n ^^^^^^^^^^^^ function call\\n 7: acc = f(acc, next);\\n ^^^^ undefined. This type is incompatible with\\n 3: function *scan(init: U, f: (acc: U, x: T) => U): Generator {\\n ^ some incompatible instantiation of T\\n```\\n\\nFlow is complaining that our value, `next`, may be `void` instead of the expected `T`, which is `number` in the `sum` example. This behavior is necessary to ensure type safety. In order to prime the generator, our consumer must first call `next` without an argument. To accommodate this, Flow understands the argument to `next` to be optional. This means Flow will allow the following code:\\n\\n```javascript\\nlet sum = scan(0, (a,b) => a + b);\\nconsole.log(sum.next()); // first call primes the generator\\nconsole.log(sum.next()); // we should pass a value, but don\'t need to\\n```\\n\\nIn general, Flow doesn\'t know which invocation is \\"first.\\" While it should be an error to pass a value to the first `next`, and an error to *not* pass a value to subsequent `next`s, Flow compromises and forces your generator to deal with a potentially `void` value. In short, given a generator of type `Generator` and a value `x` of type `Y`, the type of the expression `yield x` is `N | void`.\\n\\nWe can update our definition to use a dynamic type test that enforces the non-`void` invariant at runtime:\\n\\n```javascript\\nfunction *scan(init: U, f: (acc: U, x: T) => U): Generator {\\n let acc = init;\\n while (true) {\\n const next = yield acc;\\n if (typeof next === \\"undefined\\") {\\n throw new Error(\\"Caller must provide an argument to `next`.\\");\\n }\\n acc = f(acc, next);\\n }\\n}\\n```\\n\\nThere is one more important caveat when dealing with typed generators. Every value yielded from the generator must be described by a single type. Similarly, every value passed to the generator via `next` must be described by a single type.\\n\\nConsider the following generator:\\n\\n```javascript\\nfunction *foo() {\\n yield 0;\\n yield \\"\\";\\n}\\n\\nconst gen = foo();\\nconst a: number = gen.next().value; // error\\nconst b: string = gen.next().value; // error\\n```\\n\\nThis is perfectly legal JavaScript and the values `a` and `b` do have the correct types at runtime. However, Flow rejects this program. Our generator\'s `Yield` type parameter has a concrete type of `number | string`. The `value` property of the iterator result object has the type `number | string | void`.\\n\\nWe can observe similar behavior for values passed into the generator:\\n\\n```\\nfunction *bar() {\\n var a = yield;\\n var b = yield;\\n return {a,b};\\n}\\n\\nconst gen = bar();\\ngen.next(); // prime the generator\\ngen.next(0);\\nconst ret: { a: number, b: string } = gen.next(\\"\\").value; // error\\n```\\n\\nThe value `ret` has the annotated type at runtime, but Flow also rejects this program. Our generator\'s `Next` type parameter has a concrete type of `number | string`. The `value` property of the iterator result object thus has the type `void | { a: void | number | string, b: void | number | string }`.\\n\\nWhile it may be possible to use dynamic type tests to resolve these issues, another practical option is to use `any` to take on the type safety responsibility yourself.\\n\\n```javascript\\nfunction *bar(): Generator {\\n var a = yield;\\n var b = yield;\\n return {a,b};\\n}\\n\\nconst gen = bar();\\ngen.next(); // prime the generator\\ngen.next(0);\\nconst ret: void | { a: number, b: string } = gen.next(\\"\\").value; // OK\\n```\\n\\n(Note that the annotation `Generator` is equivalent to `Generator`.)\\n\\nPhew! I hope that this will help you use generators in your own code. I also hope this gave you a little insight into the difficulties of applying static analysis to a highly dynamic language such as JavaScript.\\n\\nTo summarize, here are some of the lessons we\'ve learned for using generators in statically typed JS:\\n\\n* Use generators to implement custom iterables.\\n* Use dynamic type tests to unpack the optional return type of yield expressions.\\n* Avoid generators that yield or receive values of multiple types, or use `any`."},{"id":"/2015/10/07/Version-0.17.0","metadata":{"permalink":"/blog/2015/10/07/Version-0.17.0","source":"@site/blog/2015-10-07-Version-0.17.0.md","title":"Version-0.17.0","description":"Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:","date":"2015-10-07T00:00:00.000Z","formattedDate":"October 7, 2015","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"author":"Gabe Levi","hide_table_of_contents":true},"prevItem":{"title":"Typing Generators with Flow","permalink":"/blog/2015/11/09/Generators"},"nextItem":{"title":"Version-0.16.0","permalink":"/blog/2015/09/22/Version-0.16.0"}},"content":"Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:\\n\\n![New error format]({{ site.baseurl }}/static/new_error_format_v0_17_0.png)\\n\\nThis should hopefully help our command line users understand many errors without having to refer to their source code. We\'ll keep iterating on this format, so tell us what you like and what you don\'t like! Thanks to [@frantic](https://github.com/frantic) for building this feature!\\n\\nThere are a whole bunch of other features and fixes in this release! Head on over to our [Release](https://github.com/facebook/flow/releases/tag/v0.17.0) for the full list!"},{"id":"/2015/09/22/Version-0.16.0","metadata":{"permalink":"/blog/2015/09/22/Version-0.16.0","source":"@site/blog/2015-09-22-Version-0.16.0.md","title":"Version-0.16.0","description":"On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again @samwgoldman)!","date":"2015-09-22T00:00:00.000Z","formattedDate":"September 22, 2015","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jeff Morrison"}],"frontMatter":{"author":"Jeff Morrison","hide_table_of_contents":true},"prevItem":{"title":"Version-0.17.0","permalink":"/blog/2015/10/07/Version-0.17.0"},"nextItem":{"title":"Version-0.15.0","permalink":"/blog/2015/09/10/Version-0.15.0"}},"content":"On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again [@samwgoldman](https://github.com/samwgoldman))!\\n\\nAs always, the [Changelog](https://github.com/facebook/flow/blob/master/Changelog.md#v0160) is best at summing up the big changes."},{"id":"/2015/09/10/Version-0.15.0","metadata":{"permalink":"/blog/2015/09/10/Version-0.15.0","source":"@site/blog/2015-09-10-Version-0.15.0.md","title":"Version-0.15.0","description":"Today we released Flow v0.15.0! A lot has changed in the last month and we\'re excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!","date":"2015-09-10T00:00:00.000Z","formattedDate":"September 10, 2015","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"author":"Gabe Levi","hide_table_of_contents":true},"prevItem":{"title":"Version-0.16.0","permalink":"/blog/2015/09/22/Version-0.16.0"},"nextItem":{"title":"Version-0.14.0","permalink":"/blog/2015/07/29/Version-0.14.0"}},"content":"Today we released Flow v0.15.0! A lot has changed in the last month and we\'re excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!\\n\\nCheck out the [Changelog](https://github.com/facebook/flow/blob/master/Changelog.md#v0150) to see what\'s new."},{"id":"/2015/07/29/Version-0.14.0","metadata":{"permalink":"/blog/2015/07/29/Version-0.14.0","source":"@site/blog/2015-07-29-Version-0.14.0.md","title":"Version-0.14.0","description":"It has come to our attention that not everyone obsessively checks GitHub for Flow releases. This came as a surprise, but we would like to support these users too. Therefore, we will start announcing each Flow release on the blog, starting with this release.","date":"2015-07-29T00:00:00.000Z","formattedDate":"July 29, 2015","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"author":"Gabe Levi","hide_table_of_contents":true},"prevItem":{"title":"Version-0.15.0","permalink":"/blog/2015/09/10/Version-0.15.0"},"nextItem":{"title":"Announcing Disjoint Unions","permalink":"/blog/2015/07/03/Disjoint-Unions"}},"content":"It has come to our attention that not everyone obsessively checks GitHub for Flow releases. This came as a surprise, but we would like to support these users too. Therefore, we will start announcing each Flow release on the blog, starting with this release.\\n\\nSo here is Flow v0.14.0! Check out the [Changelog](https://github.com/facebook/flow/blob/master/Changelog.md#v0140) for the canonical list of what has changed."},{"id":"/2015/07/03/Disjoint-Unions","metadata":{"permalink":"/blog/2015/07/03/Disjoint-Unions","source":"@site/blog/2015-07-03-Disjoint-Unions.md","title":"Announcing Disjoint Unions","description":"Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:","date":"2015-07-03T00:00:00.000Z","formattedDate":"July 3, 2015","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Avik Chaudhuri"}],"frontMatter":{"title":"Announcing Disjoint Unions","short-title":"Disjoint Unions","author":"Avik Chaudhuri","hide_table_of_contents":true},"prevItem":{"title":"Version-0.14.0","permalink":"/blog/2015/07/29/Version-0.14.0"},"nextItem":{"title":"Announcing Bounded Polymorphism","permalink":"/blog/2015/03/12/Bounded-Polymorphism"}},"content":"Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:\\n\\n* Specifying such data by a set of disjoint cases, distinguished by \u201ctags\u201d, where each tag is associated with a different \u201crecord\u201d of properties. (These descriptions are called \u201cdisjoint union\u201d or \u201cvariant\u201d types.)\\n* Doing case analysis on such data, by checking tags and then directly accessing the associated record of properties. (The common way to do such case analysis is by pattern matching.)\\n\\nExamples of programs that analyze or transform such data range from compilers working with abstract syntax trees, to operations that may return exceptional values, with much more in between!\\n\\nAs of Flow 0.13.1 it is now possible to program in this style in JavaScript in a type-safe manner. You can define a disjoint union of object types and do case analysis on objects of that type by switching on the value of some common property (called a \\"sentinel\\") in those object types.\\n\\nFlow\'s syntax for disjoint unions looks like:\\n\\n```javascript\\ntype BinaryTree =\\n { kind: \\"leaf\\", value: number } |\\n { kind: \\"branch\\", left: BinaryTree, right: BinaryTree }\\n\\nfunction sumLeaves(tree: BinaryTree): number {\\n if (tree.kind === \\"leaf\\") {\\n return tree.value;\\n } else {\\n return sumLeaves(tree.left) + sumLeaves(tree.right);\\n }\\n}\\n```\\n\\n\x3c!--truncate--\x3e\\n\\n## The problem\\n\\nConsider the following function that returns different objects depending on the data passed into it:\\n\\n```javascript\\ntype Result = { status: string, errorCode?: number }\\n\\nfunction getResult(op): Result {\\n var statusCode = op();\\n if (statusCode === 0) {\\n return { status: \'done\' };\\n } else {\\n return { status: \'error\', errorCode: statusCode };\\n }\\n}\\n```\\n\\nThe result contains a `status` property that is either `\'done\'` or `\'error\'`,\\nand an optional `errorCode` property that holds a numeric status code when the\\n`status` is `\'error\'`.\\n\\nOne may now try to write another function that gets the error code from a result:\\n\\n```javascript\\nfunction getErrorCode(result: Result): number {\\n switch (result.status) {\\n case \'error\':\\n return result.errorCode;\\n default:\\n return 0;\\n }\\n}\\n```\\n\\nUnfortunately, this code does not typecheck. The `Result` type does not precisely\\ncapture the relationship between the `status` property and the `errorCode` property.\\nNamely it doesn\'t capture that when the `status` property is `\'error\'`, the `errorCode`\\nproperty will be present and defined on the object. As a result, Flow thinks that\\n`result.errorCode` in the above function may return `undefined` instead of `number`.\\n\\nPrior to version 0.13.1 there was no way to express this relationship, which meant\\nthat it was not possible to check the type safety of this simple, familiar idiom!\\n\\n## The solution\\n\\nAs of version 0.13.1 it is possible to write a more precise type for `Result`\\nthat better captures the intent and helps Flow narrow down the possible shapes\\nof an object based on the outcome of a dynamic `===` check. Now, we can write:\\n\\n```javaScript\\ntype Result = Done | Error\\ntype Done = { status: \'done\' }\\ntype Error = { status: \'error\', errorCode: number }\\n```\\n\\nIn other words, we can explicitly list out the possible shapes of results. These\\ncases are distinguished by the value of the `status` property. Note that here\\nwe use the string literal types `\'done\'` and `\'error\'`. These match exactly the strings\\n`\'done\'` and `\'error\'`, which means that `===` checks on those values are enough for\\nFlow to narrow down the corresponding type cases. With this additional reasoning, the\\nfunction `getErrorCode` now typechecks, without needing any changes to the code!\\n\\nIn addition to string literals, Flow also supports number literals as singleton types\\nso they can also be used in disjoint unions and case analyses.\\n\\n## Why we built this\\n\\nDisjoint unions are at the heart of several good programming practices pervasive in functional programming languages. Supporting them in Flow means that JavaScript can use these practices in a type-safe manner. For example, disjoint unions can be used to write type-safe [Flux dispatchers](https://facebook.github.io/flux/docs/dispatcher.html). They are also heavily used in a recently released [reference implementation of GraphQL](https://github.com/graphql/graphql-js)."},{"id":"/2015/03/12/Bounded-Polymorphism","metadata":{"permalink":"/blog/2015/03/12/Bounded-Polymorphism","source":"@site/blog/2015-03-12-Bounded-Polymorphism.md","title":"Announcing Bounded Polymorphism","description":"As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow\'s bounded polymorphism syntax looks like","date":"2015-03-12T00:00:00.000Z","formattedDate":"March 12, 2015","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Avik Chaudhuri"}],"frontMatter":{"title":"Announcing Bounded Polymorphism","short-title":"Bounded Polymorphism","author":"Avik Chaudhuri","hide_table_of_contents":true},"prevItem":{"title":"Announcing Disjoint Unions","permalink":"/blog/2015/07/03/Disjoint-Unions"},"nextItem":{"title":"Announcing Flow Comments","permalink":"/blog/2015/02/20/Flow-Comments"}},"content":"As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow\'s bounded polymorphism syntax looks like\\n\\n```JavaScript\\nclass BagOfBones { ... }\\nfunction eat(meal: T): Indigestion { ... }\\n```\\n\\n## The problem\\n\\nConsider the following code that defines a polymorphic function in Flow:\\n\\n```JavaScript\\nfunction fooBad(obj: T): T {\\n console.log(Math.abs(obj.x));\\n return obj;\\n}\\n```\\n\\nThis code does not (and should not!) type check. Not all values `obj: T` have a property `x`, let alone a property `x` that is a `number`, given the additional requirement imposed by `Math.abs()`.\\n\\n\x3c!--truncate--\x3e\\n\\nBut what if you wanted `T` to not range over all types, but instead over only the types of objects with an `x` property that has the type `number`? Intuitively, given that condition, the body should type check. Unfortunately, the only way you could enforce this condition prior to Flow 0.5.0 was by giving up on polymorphism entirely! For example you could write:\\n\\n```JavaScript\\n// Old lame workaround\\nfunction fooStillBad(obj: { x: number }): {x: number } {\\n console.log(Math.abs(obj.x));\\n return obj;\\n}\\n```\\n\\nBut while this change would make the body type check, it would cause Flow to lose information across call sites. For example:\\n\\n```JavaScript\\n// The return type of fooStillBad() is {x: number}\\n// so Flow thinks result has the type {x: number}\\nvar result = fooStillBad({x: 42, y: \\"oops\\"});\\n\\n// This will be an error since result\'s type\\n// doesn\'t have a property \\"y\\"\\nvar test: {x: number; y: string} = result;\\n```\\n\\n## The solution\\n\\nAs of version 0.5.0, such typing problems can be solved elegantly using bounded polymorphism. Type parameters such as `T` can specify bounds that constrain the types that the type parameters range over. For example, we can write:\\n\\n```JavaScript\\nfunction fooGood(obj: T): T {\\n console.log(Math.abs(obj.x));\\n return obj;\\n}\\n```\\n\\nNow the body type checks under the assumption that `T` is a subtype of `{ x: number }`. Furthermore, no information is lost across call sites. Using the example from above:\\n\\n```JavaScript\\n// With bounded polymorphism, Flow knows the return\\n// type is {x: number; y: string}\\nvar result = fooGood({x: 42, y: \\"yay\\"});\\n\\n// This works!\\nvar test: {x: number; y: string} = result;\\n```\\n\\nOf course, polymorphic classes may also specify bounds. For example, the following code type checks:\\n\\n```JavaScript\\nclass Store {\\n obj: T;\\n constructor(obj: T) { this.obj = obj; }\\n foo() { console.log(Math.abs(this.obj.x)); }\\n}\\n```\\n\\nInstantiations of the class are appropriately constrained. If you write\\n\\n```JavaScript\\nvar store = new Store({x: 42, y: \\"hi\\"});\\n```\\n\\nThen `store.obj` has type `{x: number; y: string}`.\\n\\nAny type may be used as a type parameter\'s bound. The type does not need to be an object type (as in the examples above). It may even be another type parameter that is in scope. For example, consider adding the following method to the above `Store` class:\\n\\n```JavaScript\\nclass Store {\\n ...\\n bar(obj: U): U {\\n this.obj = obj;\\n console.log(Math.abs(obj.x));\\n return obj;\\n }\\n}\\n```\\n\\nSince `U` is a subtype of `T`, the method body type checks (as you may expect, `U` must also satisfy `T`\'s bound, by transitivity of subtyping). Now the following code type checks:\\n\\n```JavaScript\\n // store is a Store<{x: number; y: string}>\\n var store = new Store({x: 42, y: \\"yay\\"});\\n\\n var result = store.bar({x: 0, y: \\"hello\\", z: \\"world\\"});\\n\\n // This works!\\n var test: {x: number; y: string; z: string } = result;\\n```\\n\\nAlso, in a polymorphic definition with multiple type parameters, any type parameter may appear in the bound of any following type parameter. This is useful for type checking examples like the following:\\n\\n```JavaScript\\nfunction copyArray(from: Array, to: Array) {\\n from.forEach(elem => to.push(elem));\\n}\\n```\\n\\n## Why we built this\\n\\nThe addition of bounded polymorphism significantly increases the expressiveness of Flow\'s type system, by enabling signatures and definitions to specify relationships between their type parameters, without having to sacrifice the benefits of generics. We expect that the increased expressiveness will be particularly useful to library writers, and will also allow us to write better declarations for framework APIs such as those provided by React.\\n\\n## Transformations\\n\\nLike type annotations and other Flow features, polymorphic function and class definitions need to be transformed before the code can be run. The transforms are available in react-tools `0.13.0`, which was recently released"},{"id":"/2015/02/20/Flow-Comments","metadata":{"permalink":"/blog/2015/02/20/Flow-Comments","source":"@site/blog/2015-02-20-Flow-Comments.md","title":"Announcing Flow Comments","description":"As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can\'t fit a Flow-stripping transformation into their setup. This was one of our most requested features and hopefully it will enable even more people to use Flow!","date":"2015-02-20T00:00:00.000Z","formattedDate":"February 20, 2015","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"title":"Announcing Flow Comments","short-title":"Flow Comments","author":"Gabe Levi","hide_table_of_contents":true},"prevItem":{"title":"Announcing Bounded Polymorphism","permalink":"/blog/2015/03/12/Bounded-Polymorphism"},"nextItem":{"title":"Announcing Import Type","permalink":"/blog/2015/02/18/Import-Types"}},"content":"As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can\'t fit a Flow-stripping transformation into their setup. This was one of our [most requested features](https://github.com/facebook/flow/issues/3) and hopefully it will enable even more people to use Flow!\\n\\nThis feature introduces 3 special comments: `/*:`, `/*::`, and `/*flow-include`. Flow will read the code inside these special comments and treat the code as if the special comment tokens didn\'t exist. These special comments are valid JavaScript block comments, so your JavaScript engine will ignore the code inside the comments.\\n\\n\x3c!--truncate--\x3e\\n\\n## The Flow Comment Syntax\\n\\nThere are 3 special comments that Flow currently supports. You may recognize this syntax from [Jarno Rantanen](https://github.com/jareware)\'s excellent project, [flotate](https://github.com/jareware/flotate).\\n\\n### 1. `/*:`\\n\\n`/*: */` is interpreted by Flow as `: `\\n\\n```JavaScript\\nfunction foo(x/*: number*/)/* : string */ { ... }\\n```\\n\\nis interpreted by Flow as\\n\\n```JavaScript\\nfunction foo(x: number): string { ... }\\n```\\n\\nbut appears to the JavaScript engine (ignoring comments) as\\n\\n```JavaScript\\nfunction foo(x) { ... }\\n```\\n\\n### 2. `/*::`\\n\\n`/*:: */` is interpreted by Flow as ``\\n\\n```JavaScript\\n/*:: type foo = number; */\\n```\\n\\nis interpreted by Flow as\\n\\n```JavaScript\\ntype foo = number;\\n```\\n\\nbut appears to the runtime (ignoring comments) as\\n\\n```JavaScript\\n\\n```\\n\\n### 3. `/*flow-include`\\n\\n`/*flow-include */` is interpreted by Flow as ``. It behaves the same as `/*::`\\n\\n```JavaScript\\n/*flow-include type foo = number; */\\n```\\n\\nis interpreted by Flow as\\n\\n```JavaScript\\ntype foo = number;\\n```\\n\\nbut appears to the runtime (ignoring comments) as\\n\\n```JavaScript\\n\\n```\\n\\nNote: whitespace is ignored after the `/*` but before the `:`, `::`, or `flow-include`. So you can write things like\\n\\n```JavaScript\\n/* : number */\\n/* :: type foo = number */\\n/* flow-include type foo = number */\\n```\\n\\n## Future Work\\n\\nWe plan to update our Flow transformation to wrap Flow syntax with these special comments, rather than stripping it away completely. This will help people write Flow code but publish code that works with or without Flow.\\n\\n## Thanks\\n\\nSpecial thanks to [Jarno Rantanen](https://github.com/jareware) for building [flotate](https://github.com/jareware/flotate) and supporting us merging his syntax upstream into Flow."},{"id":"/2015/02/18/Import-Types","metadata":{"permalink":"/blog/2015/02/18/Import-Types","source":"@site/blog/2015-02-18-Import-Types.md","title":"Announcing Import Type","description":"As of Flow 0.3.0, it\'s now possible to import types from another module. So, for example, if you\'re only importing a class for purposes of referencing it in a type annotation, you can now use the new import type syntax to do this.","date":"2015-02-18T00:00:00.000Z","formattedDate":"February 18, 2015","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Jeff Morrison"}],"frontMatter":{"title":"Announcing Import Type","short-title":"Import Type","author":"Jeff Morrison","hide_table_of_contents":true},"prevItem":{"title":"Announcing Flow Comments","permalink":"/blog/2015/02/20/Flow-Comments"},"nextItem":{"title":"Announcing Typecasts","permalink":"/blog/2015/02/18/Typecasts"}},"content":"As of Flow 0.3.0, it\'s now possible to import types from another module. So, for example, if you\'re only importing a class for purposes of referencing it in a type annotation, you can now use the new `import type` syntax to do this.\\n\\n## Motivation\\n\\nHas this ever happened to you:\\n\\n```JavaScript\\n// @flow\\n\\n// Post-transformation lint error: Unused variable \'URI\'\\nimport URI from \\"URI\\";\\n\\n// But if you delete the require you get a Flow error:\\n// identifier URI - Unknown global name\\nmodule.exports = function(x: URI): URI {\\n return x;\\n}\\n```\\n\\nNow you have an out! To solve this problem (and with an eye toward a near future with ES6 module syntax), we\'ve added the new `import type` syntax. With `import type`, you can convey what you really mean here \u2014 that you want to import the *type* of the class and not really the class itself.\\n\\n\x3c!--truncate--\x3e\\n\\n## Enter Import Type\\n\\nSo instead of the above code, you can now write this:\\n\\n```JavaScript\\n// @flow\\n\\nimport type URI from \'URI\';\\nmodule.exports = function(x: URI): URI {\\n return x;\\n};\\n```\\n\\nIf you have a module that exports multiple classes (like, say, a Crayon and a Marker class), you can import the type for each of them together or separately like this:\\n\\n```JavaScript\\n// @flow\\n\\nimport type {Crayon, Marker} from \'WritingUtensils\';\\nmodule.exports = function junkDrawer(x: Crayon, y: Marker): void {}\\n```\\n\\n## Transformations\\n\\nLike type annotations and other Flow features, `import type` need to be transformed away before the code can be run. The transforms will be available in react-tools `0.13.0` when it is published soon, but for now they\'re available in `0.13.0-beta.2`, which you can install with\\n\\n```bash\\nnpm install react-tools@0.13.0-beta.2\\n```\\n\\n## Anticipatory Q&A\\n\\n### Wait, but what happens at runtime after I\'ve added an `import type` declaration?\\n*Nothing! All `import type` declarations get stripped away just like other flow syntax.*\\n\\n### Can I use `import type` to pull in type aliases from another module, too?\\nNot quite yet...but soon! There are a few other moving parts that we need to build first, but we\'re working on it.\\n\\nEDIT: Yes! As of Flow 0.10 you can use the `export type MyType = ... ;` syntax to compliment the `import type` syntax. Here\'s a trivial example:\\n\\n```javascript\\n// @flow\\n\\n// MyTypes.js\\nexport type UserID = number;\\nexport type User = {\\n id: UserID,\\n firstName: string,\\n lastName: string\\n};\\n```\\n\\n```javascript\\n// @flow\\n\\n// User.js\\nimport type {UserID, User} from \\"MyTypes\\";\\n\\nfunction getUserID(user: User): UserID {\\n return user.id;\\n}\\n```\\n\\nNote that we only support the explicit named-export statements for now (i.e. `export type UserID = number;`). In a future version we can add support for latent named-export statements (i.e. `type UserID = number; export {UserID};`) and default type exports (i.e. `export default type MyType = ... ;`)...but for now these forms aren\'t yet supported for type exports."},{"id":"/2015/02/18/Typecasts","metadata":{"permalink":"/blog/2015/02/18/Typecasts","source":"@site/blog/2015-02-18-Typecasts.md","title":"Announcing Typecasts","description":"As of version 0.3.0, Flow supports typecast expression.","date":"2015-02-18T00:00:00.000Z","formattedDate":"February 18, 2015","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Basil Hosmer"}],"frontMatter":{"title":"Announcing Typecasts","short-title":"Typecasts","author":"Basil Hosmer","hide_table_of_contents":true},"prevItem":{"title":"Announcing Import Type","permalink":"/blog/2015/02/18/Import-Types"}},"content":"As of version 0.3.0, Flow supports typecast expression.\\n\\nA typecast expression is a simple way to type-annotate any JavaScript expression. Here are some examples of typecasts:\\n\\n```JavaScript\\n(1 + 1 : number);\\nvar a = { name: (null: ?string) };\\n([1, \'a\', true]: Array).map(fn);\\n```\\n\\nFor any JavaScript expression `` and any Flow type ``, you can write\\n\\n```JavaScript\\n( : )\\n```\\n\\n**Note:** the parentheses are necessary.\\n\\n\x3c!--truncate--\x3e\\n\\n## How Typecasts Work\\n\\nTo evaluate a typecast expression, Flow will first check that `` is a ``.\\n\\n```JavaScript\\n(1+1: number); // this is fine\\n(1+1: string); // but this is is an error\\n```\\n\\nSecond, Flow will infer that the typecast expression `(: )` has the type ``.\\n\\n```JavaScript\\n[(0: ?number)]; // Flow will infer the type Array\\n[0]; // Without the typecast, Flow infers the type Array\\n```\\n\\n## Safety\\n\\nTypecasts obey the same rules as other type annotations, so they provide the same safety guarantees. This means they are safe unless you explicitly use the `any` type to defeat Flow\'s typechecking. Here are examples of upcasting (which is allowed), downcasting (which is forbidden), and using `any`.\\n\\n```JavaScript\\nclass Base {}\\nclass Child extends Base {}\\nvar child: Child = new Child();\\n\\n// Upcast from Child to Base, a more general type: OK\\nvar base: Base = new Child();\\n\\n// Upcast from Child to Base, a more general type: OK\\n(child: Base);\\n\\n// Downcast from Base to Child: unsafe, ERROR\\n(base: Child);\\n\\n// Upcast base to any then downcast any to Child.\\n// Unsafe downcasting from any is allowed: OK\\n((base: any): Child);\\n```\\n\\n## More examples\\n\\nTypecasts are particularly useful to check assumptions and help Flow infer the types you intend. Here are some examples:\\n\\n```JavaScript\\n(x: number) // Make Flow check that x is a number\\n(0: ?number) // Tells Flow that this expression is actually nullable.\\n(null: ?number) // Tells Flow that this expression is a nullable number.\\n```\\n\\n## Transformations\\n\\nLike type annotations and other Flow features, typecasts need to be transformed away before the code can be run. The transforms will be available in react-tools `0.13.0` when it is published soon, but for now they\'re available in `0.13.0-beta.2`, which you can install with\\n\\n```bash\\nnpm install react-tools@0.13.0-beta.2\\n```"}]}')}}]); \ No newline at end of file diff --git a/assets/js/1000.14e9de8a.js b/assets/js/1000.14e9de8a.js new file mode 100644 index 00000000000..fac794b351c --- /dev/null +++ b/assets/js/1000.14e9de8a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1e3],{91e3:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>d,contentTitle:()=>i,default:()=>p,frontMatter:()=>l,metadata:()=>r,toc:()=>s});var n=t(87462),a=(t(67294),t(3905));const l={author:"Gabe Levi",hide_table_of_contents:!0},i=void 0,r={permalink:"/blog/2015/12/01/Version-0.19.0",source:"@site/blog/2015-12-01-Version-0.19.0.md",title:"Version-0.19.0",description:"Flow v0.19.0 was deployed today! It has a ton of changes, which the",date:"2015-12-01T00:00:00.000Z",formattedDate:"December 1, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Version 0.21.0",permalink:"/blog/2016/02/02/Version-0.21.0"},nextItem:{title:"Typing Generators with Flow",permalink:"/blog/2015/11/09/Generators"}},d={authorsImageUrls:[void 0]},s=[{value:"@noflow",id:"noflow",level:3},{value:"Declaration files",id:"declaration-files",level:3}],m={toc:s};function p(e){let{components:o,...t}=e;return(0,a.mdx)("wrapper",(0,n.Z)({},m,t,{components:o,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Flow v0.19.0 was deployed today! It has a ton of changes, which the\n",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/master/Changelog.md#v0190"},"Changelog"),"\nsummarizes. The Changelog can be a little concise, though, so here are some\nlonger explanations for some of the changes. Hope this helps!"),(0,a.mdx)("h3",{id:"noflow"},(0,a.mdx)("inlineCode",{parentName:"h3"},"@noflow")),(0,a.mdx)("p",null,"Flow is opt-in by default (you add ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow")," to a file). However we noticed that\nsometimes people would add Flow annotations to files that were missing ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow"),".\nOften, these people didn't notice that the file was being ignored by Flow. So\nwe decided to stop allowing Flow syntax in non-Flow files. This is easily fixed\nby adding either ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow")," or ",(0,a.mdx)("inlineCode",{parentName:"p"},"@noflow")," to your file. The former will make the\nfile a Flow file. The latter will tell Flow to completely ignore the file."),(0,a.mdx)("h3",{id:"declaration-files"},"Declaration files"),(0,a.mdx)("p",null,"Files that end with ",(0,a.mdx)("inlineCode",{parentName:"p"},".flow")," are now treated specially. They are the preferred\nprovider of modules. That is if both ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js")," and ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js.flow")," exist, then\nwhen you write ",(0,a.mdx)("inlineCode",{parentName:"p"},"import Foo from './foo'"),", Flow will use the type exported from\n",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js.flow")," rather than ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js"),"."),(0,a.mdx)("p",null,"We imagine two main ways people will use ",(0,a.mdx)("inlineCode",{parentName:"p"},".flow")," files."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1049.9e530d57.js b/assets/js/1049.9e530d57.js new file mode 100644 index 00000000000..799a15ccea2 --- /dev/null +++ b/assets/js/1049.9e530d57.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1049],{11049:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var o=n(87462),i=(n(67294),n(3905));const a={title:"Clarity on Flow's Direction and Open Source Engagement","short-title":"Flow Direction Update",author:"Vladan Djeric","medium-link":"https://medium.com/flow-type/clarity-on-flows-direction-and-open-source-engagement-e721a4eb4d8b"},r=void 0,l={permalink:"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement",source:"@site/blog/2021-05-25-Clarity-on-Flows-Direction-and-Open-Source-Engagement.md",title:"Clarity on Flow's Direction and Open Source Engagement",description:"An update on Flow's direction and open source engagement.",date:"2021-05-25T00:00:00.000Z",formattedDate:"May 25, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"Vladan Djeric"}],frontMatter:{title:"Clarity on Flow's Direction and Open Source Engagement","short-title":"Flow Direction Update",author:"Vladan Djeric","medium-link":"https://medium.com/flow-type/clarity-on-flows-direction-and-open-source-engagement-e721a4eb4d8b"},prevItem:{title:"Sound Typing for 'this' in Flow",permalink:"/blog/2021/06/02/Sound-Typing-for-this-in-Flow"},nextItem:{title:"Types-First the only supported mode in Flow (Jan 2021)",permalink:"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow"}},s={authorsImageUrls:[void 0]},d=[],c={toc:d};function p(e){let{components:t,...n}=e;return(0,i.mdx)("wrapper",(0,o.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"An update on Flow's direction and open source engagement."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1065.a0dbdc0e.js b/assets/js/1065.a0dbdc0e.js new file mode 100644 index 00000000000..f53dbcecfe4 --- /dev/null +++ b/assets/js/1065.a0dbdc0e.js @@ -0,0 +1,181 @@ +"use strict"; +exports.id = 1065; +exports.ids = [1065]; +exports.modules = { + +/***/ 71065: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/restructuredtext/restructuredtext.ts +var conf = { + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">", notIn: ["string"] } + ], + surroundingPairs: [ + { open: "(", close: ")" }, + { open: "[", close: "]" }, + { open: "`", close: "`" } + ], + folding: { + markers: { + start: new RegExp("^\\s*"), + end: new RegExp("^\\s*") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".rst", + control: /[\\`*_\[\]{}()#+\-\.!]/, + escapes: /\\(?:@control)/, + empty: [ + "area", + "base", + "basefont", + "br", + "col", + "frame", + "hr", + "img", + "input", + "isindex", + "link", + "meta", + "param" + ], + alphanumerics: /[A-Za-z0-9]/, + simpleRefNameWithoutBq: /(?:@alphanumerics[-_+:.]*@alphanumerics)+|(?:@alphanumerics+)/, + simpleRefName: /(?:`@phrase`|@simpleRefNameWithoutBq)/, + phrase: /@simpleRefNameWithoutBq(?:\s@simpleRefNameWithoutBq)*/, + citationName: /[A-Za-z][A-Za-z0-9-_.]*/, + blockLiteralStart: /(?:[!"#$%&'()*+,-./:;<=>?@\[\]^_`{|}~]|[\s])/, + precedingChars: /(?:[ -:/'"<([{])/, + followingChars: /(?:[ -.,:;!?/'")\]}>]|$)/, + punctuation: /(=|-|~|`|#|"|\^|\+|\*|:|\.|'|_|\+)/, + tokenizer: { + root: [ + [/^(@punctuation{3,}$){1,1}?/, "keyword"], + [/^\s*([\*\-+‣•]|[a-zA-Z0-9]+\.|\([a-zA-Z0-9]+\)|[a-zA-Z0-9]+\))\s/, "keyword"], + [/([ ]::)\s*$/, "keyword", "@blankLineOfLiteralBlocks"], + [/(::)\s*$/, "keyword", "@blankLineOfLiteralBlocks"], + { include: "@tables" }, + { include: "@explicitMarkupBlocks" }, + { include: "@inlineMarkup" } + ], + explicitMarkupBlocks: [ + { include: "@citations" }, + { include: "@footnotes" }, + [ + /^(\.\.\s)(@simpleRefName)(::\s)(.*)$/, + [{ token: "", next: "subsequentLines" }, "keyword", "", ""] + ], + [ + /^(\.\.)(\s+)(_)(@simpleRefName)(:)(\s+)(.*)/, + [{ token: "", next: "hyperlinks" }, "", "", "string.link", "", "", "string.link"] + ], + [ + /^((?:(?:\.\.)(?:\s+))?)(__)(:)(\s+)(.*)/, + [{ token: "", next: "subsequentLines" }, "", "", "", "string.link"] + ], + [/^(__\s+)(.+)/, ["", "string.link"]], + [ + /^(\.\.)( \|)([^| ]+[^|]*[^| ]*)(\| )(@simpleRefName)(:: .*)/, + [{ token: "", next: "subsequentLines" }, "", "string.link", "", "keyword", ""], + "@rawBlocks" + ], + [/(\|)([^| ]+[^|]*[^| ]*)(\|_{0,2})/, ["", "string.link", ""]], + [/^(\.\.)([ ].*)$/, [{ token: "", next: "@comments" }, "comment"]] + ], + inlineMarkup: [ + { include: "@citationsReference" }, + { include: "@footnotesReference" }, + [/(@simpleRefName)(_{1,2})/, ["string.link", ""]], + [/(`)([^<`]+\s+)(<)(.*)(>)(`)(_)/, ["", "string.link", "", "string.link", "", "", ""]], + [/\*\*([^\\*]|\*(?!\*))+\*\*/, "strong"], + [/\*[^*]+\*/, "emphasis"], + [/(``)((?:[^`]|\`(?!`))+)(``)/, ["", "keyword", ""]], + [/(__\s+)(.+)/, ["", "keyword"]], + [/(:)((?:@simpleRefNameWithoutBq)?)(:`)([^`]+)(`)/, ["", "keyword", "", "", ""]], + [/(`)([^`]+)(`:)((?:@simpleRefNameWithoutBq)?)(:)/, ["", "", "", "keyword", ""]], + [/(`)([^`]+)(`)/, ""], + [/(_`)(@phrase)(`)/, ["", "string.link", ""]] + ], + citations: [ + [ + /^(\.\.\s+\[)((?:@citationName))(\]\s+)(.*)/, + [{ token: "", next: "@subsequentLines" }, "string.link", "", ""] + ] + ], + citationsReference: [[/(\[)(@citationName)(\]_)/, ["", "string.link", ""]]], + footnotes: [ + [ + /^(\.\.\s+\[)((?:[0-9]+))(\]\s+.*)/, + [{ token: "", next: "@subsequentLines" }, "string.link", ""] + ], + [ + /^(\.\.\s+\[)((?:#@simpleRefName?))(\]\s+)(.*)/, + [{ token: "", next: "@subsequentLines" }, "string.link", "", ""] + ], + [ + /^(\.\.\s+\[)((?:\*))(\]\s+)(.*)/, + [{ token: "", next: "@subsequentLines" }, "string.link", "", ""] + ] + ], + footnotesReference: [ + [/(\[)([0-9]+)(\])(_)/, ["", "string.link", "", ""]], + [/(\[)(#@simpleRefName?)(\])(_)/, ["", "string.link", "", ""]], + [/(\[)(\*)(\])(_)/, ["", "string.link", "", ""]] + ], + blankLineOfLiteralBlocks: [ + [/^$/, "", "@subsequentLinesOfLiteralBlocks"], + [/^.*$/, "", "@pop"] + ], + subsequentLinesOfLiteralBlocks: [ + [/(@blockLiteralStart+)(.*)/, ["keyword", ""]], + [/^(?!blockLiteralStart)/, "", "@popall"] + ], + subsequentLines: [ + [/^[\s]+.*/, ""], + [/^(?!\s)/, "", "@pop"] + ], + hyperlinks: [ + [/^[\s]+.*/, "string.link"], + [/^(?!\s)/, "", "@pop"] + ], + comments: [ + [/^[\s]+.*/, "comment"], + [/^(?!\s)/, "", "@pop"] + ], + tables: [ + [/\+-[+-]+/, "keyword"], + [/\+=[+=]+/, "keyword"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1065.de3b9f15.js b/assets/js/1065.de3b9f15.js new file mode 100644 index 00000000000..d7bfbba1809 --- /dev/null +++ b/assets/js/1065.de3b9f15.js @@ -0,0 +1,2 @@ +/*! For license information please see 1065.de3b9f15.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1065],{71065:(e,n,s)=>{s.r(n),s.d(n,{conf:()=>i,language:()=>t});var i={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">",notIn:["string"]}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"`",close:"`"}],folding:{markers:{start:new RegExp("^\\s*\x3c!--\\s*#?region\\b.*--\x3e"),end:new RegExp("^\\s*\x3c!--\\s*#?endregion\\b.*--\x3e")}}},t={defaultToken:"",tokenPostfix:".rst",control:/[\\`*_\[\]{}()#+\-\.!]/,escapes:/\\(?:@control)/,empty:["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param"],alphanumerics:/[A-Za-z0-9]/,simpleRefNameWithoutBq:/(?:@alphanumerics[-_+:.]*@alphanumerics)+|(?:@alphanumerics+)/,simpleRefName:/(?:`@phrase`|@simpleRefNameWithoutBq)/,phrase:/@simpleRefNameWithoutBq(?:\s@simpleRefNameWithoutBq)*/,citationName:/[A-Za-z][A-Za-z0-9-_.]*/,blockLiteralStart:/(?:[!"#$%&'()*+,-./:;<=>?@\[\]^_`{|}~]|[\s])/,precedingChars:/(?:[ -:/'"<([{])/,followingChars:/(?:[ -.,:;!?/'")\]}>]|$)/,punctuation:/(=|-|~|`|#|"|\^|\+|\*|:|\.|'|_|\+)/,tokenizer:{root:[[/^(@punctuation{3,}$){1,1}?/,"keyword"],[/^\s*([\*\-+\u2023\u2022]|[a-zA-Z0-9]+\.|\([a-zA-Z0-9]+\)|[a-zA-Z0-9]+\))\s/,"keyword"],[/([ ]::)\s*$/,"keyword","@blankLineOfLiteralBlocks"],[/(::)\s*$/,"keyword","@blankLineOfLiteralBlocks"],{include:"@tables"},{include:"@explicitMarkupBlocks"},{include:"@inlineMarkup"}],explicitMarkupBlocks:[{include:"@citations"},{include:"@footnotes"},[/^(\.\.\s)(@simpleRefName)(::\s)(.*)$/,[{token:"",next:"subsequentLines"},"keyword","",""]],[/^(\.\.)(\s+)(_)(@simpleRefName)(:)(\s+)(.*)/,[{token:"",next:"hyperlinks"},"","","string.link","","","string.link"]],[/^((?:(?:\.\.)(?:\s+))?)(__)(:)(\s+)(.*)/,[{token:"",next:"subsequentLines"},"","","","string.link"]],[/^(__\s+)(.+)/,["","string.link"]],[/^(\.\.)( \|)([^| ]+[^|]*[^| ]*)(\| )(@simpleRefName)(:: .*)/,[{token:"",next:"subsequentLines"},"","string.link","","keyword",""],"@rawBlocks"],[/(\|)([^| ]+[^|]*[^| ]*)(\|_{0,2})/,["","string.link",""]],[/^(\.\.)([ ].*)$/,[{token:"",next:"@comments"},"comment"]]],inlineMarkup:[{include:"@citationsReference"},{include:"@footnotesReference"},[/(@simpleRefName)(_{1,2})/,["string.link",""]],[/(`)([^<`]+\s+)(<)(.*)(>)(`)(_)/,["","string.link","","string.link","","",""]],[/\*\*([^\\*]|\*(?!\*))+\*\*/,"strong"],[/\*[^*]+\*/,"emphasis"],[/(``)((?:[^`]|\`(?!`))+)(``)/,["","keyword",""]],[/(__\s+)(.+)/,["","keyword"]],[/(:)((?:@simpleRefNameWithoutBq)?)(:`)([^`]+)(`)/,["","keyword","","",""]],[/(`)([^`]+)(`:)((?:@simpleRefNameWithoutBq)?)(:)/,["","","","keyword",""]],[/(`)([^`]+)(`)/,""],[/(_`)(@phrase)(`)/,["","string.link",""]]],citations:[[/^(\.\.\s+\[)((?:@citationName))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]]],citationsReference:[[/(\[)(@citationName)(\]_)/,["","string.link",""]]],footnotes:[[/^(\.\.\s+\[)((?:[0-9]+))(\]\s+.*)/,[{token:"",next:"@subsequentLines"},"string.link",""]],[/^(\.\.\s+\[)((?:#@simpleRefName?))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]],[/^(\.\.\s+\[)((?:\*))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]]],footnotesReference:[[/(\[)([0-9]+)(\])(_)/,["","string.link","",""]],[/(\[)(#@simpleRefName?)(\])(_)/,["","string.link","",""]],[/(\[)(\*)(\])(_)/,["","string.link","",""]]],blankLineOfLiteralBlocks:[[/^$/,"","@subsequentLinesOfLiteralBlocks"],[/^.*$/,"","@pop"]],subsequentLinesOfLiteralBlocks:[[/(@blockLiteralStart+)(.*)/,["keyword",""]],[/^(?!blockLiteralStart)/,"","@popall"]],subsequentLines:[[/^[\s]+.*/,""],[/^(?!\s)/,"","@pop"]],hyperlinks:[[/^[\s]+.*/,"string.link"],[/^(?!\s)/,"","@pop"]],comments:[[/^[\s]+.*/,"comment"],[/^(?!\s)/,"","@pop"]],tables:[[/\+-[+-]+/,"keyword"],[/\+=[+=]+/,"keyword"]]}}}}]); \ No newline at end of file diff --git a/assets/js/1065.de3b9f15.js.LICENSE.txt b/assets/js/1065.de3b9f15.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1065.de3b9f15.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1086.14a78e6c.js b/assets/js/1086.14a78e6c.js new file mode 100644 index 00000000000..e9d76c47d67 --- /dev/null +++ b/assets/js/1086.14a78e6c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1086],{61086:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>m,contentTitle:()=>u,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>r});var a=t(87462),s=(t(67294),t(3905));t(45475);const i={title:"Using enums",slug:"/enums/using-enums"},u=void 0,o={unversionedId:"enums/using-enums",id:"enums/using-enums",title:"Using enums",description:"Flow Enums are not a syntax for union types. They are their own type, and each member of a Flow Enum has the same type.",source:"@site/docs/enums/using-enums.md",sourceDirName:"enums",slug:"/enums/using-enums",permalink:"/en/docs/enums/using-enums",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/enums/using-enums.md",tags:[],version:"current",frontMatter:{title:"Using enums",slug:"/enums/using-enums"},sidebar:"docsSidebar",previous:{title:"Defining enums",permalink:"/en/docs/enums/defining-enums"},next:{title:"Migrating from legacy patterns",permalink:"/en/docs/enums/migrating-legacy-patterns"}},m={},r=[{value:"Accessing enum members",id:"toc-accessing-enum-members",level:3},{value:"Using as a type annotation",id:"toc-using-as-a-type-annotation",level:3},{value:"Casting to representation type",id:"toc-casting-to-representation-type",level:3},{value:"Methods",id:"toc-methods",level:3},{value:".cast",id:"toc-cast",level:4},{value:".isValid",id:"toc-isvalid",level:4},{value:".members",id:"toc-members",level:4},{value:".getName",id:"toc-getname",level:4},{value:"Exhaustively checking enums with a switch",id:"toc-exhaustively-checking-enums-with-a-switch",level:3},{value:"Exhaustive checking with unknown members",id:"toc-exhaustive-checking-with-unknown-members",level:3},{value:"Mapping enums to other values",id:"toc-mapping-enums-to-other-values",level:3},{value:"Enums in a union",id:"toc-enums-in-a-union",level:3},{value:"Exporting enums",id:"toc-exporting-enums",level:3},{value:"Importing enums",id:"toc-importing-enums",level:3},{value:"Generic enums",id:"toc-generic-enums",level:3},{value:"When to not use enums",id:"toc-when-to-not-use-enums",level:3},{value:"Distinct object keys",id:"toc-distinct-object-keys",level:4},{value:"Disjoint object unions",id:"toc-disjoint-object-unions",level:4},{value:"Guaranteed inlining",id:"toc-guaranteed-inlining",level:4}],l={toc:r};function d(e){let{components:n,...t}=e;return(0,s.mdx)("wrapper",(0,a.Z)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Flow Enums are not a syntax for ",(0,s.mdx)("a",{parentName:"p",href:"../../types/unions/"},"union types"),". They are their own type, and each member of a Flow Enum has the same type.\nLarge union types can cause performance issues, as Flow has to consider each member as a separate type. With Flow Enums, no matter how large your enum is,\nFlow will always exhibit good performance as it only has one type to keep track of."),(0,s.mdx)("p",null,"We use the following enum in the examples below:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"enum Status {\n Active,\n Paused,\n Off,\n}\n")),(0,s.mdx)("h3",{id:"toc-accessing-enum-members"},"Accessing enum members"),(0,s.mdx)("p",null,"Access members with the dot syntax:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const status = Status.Active;\n")),(0,s.mdx)("p",null,"You can\u2019t use computed access:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":8,"endLine":7,"endColumn":8,"description":"Cannot access `x` on enum `Status` [1] because computed access is not allowed on enums. [invalid-enum-access]"}]','[{"startLine":7,"startColumn":8,"endLine":7,"endColumn":8,"description":"Cannot':!0,access:!0,"`x`":!0,on:!0,enum:!0,"`Status`":!0,"[1]":!0,because:!0,computed:!0,is:!0,not:!0,allowed:!0,"enums.":!0,'[invalid-enum-access]"}]':!0},'enum Status {\n Active,\n Paused,\n Off,\n}\nconst x = "Active";\nStatus[x]; // Error: computed access on enums is not allowed\n')),(0,s.mdx)("h3",{id:"toc-using-as-a-type-annotation"},"Using as a type annotation"),(0,s.mdx)("p",null,"The enum declaration defines both a value (from which you can access the enum members and methods) and a type of the same name, which is the type of the enum members."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"function calculateStatus(): Status {\n ...\n}\n\nconst status: Status = calculateStatus();\n")),(0,s.mdx)("h3",{id:"toc-casting-to-representation-type"},"Casting to representation type"),(0,s.mdx)("p",null,"Enums do not implicitly coerce to their representation type or vice-versa.\nIf you want to convert from the enum type to the representation type, you can use an explicit cast ",(0,s.mdx)("inlineCode",{parentName:"p"},"(x: string)"),":"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":19,"endLine":7,"endColumn":31,"description":"Cannot assign `Status.Active` to `s` because `Status` [1] is incompatible with string [2]. You can explicitly cast your enum value to a string using `(: string)`. [incompatible-type]"}]','[{"startLine":7,"startColumn":19,"endLine":7,"endColumn":31,"description":"Cannot':!0,assign:!0,"`Status.Active`":!0,to:!0,"`s`":!0,because:!0,"`Status`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,string:!0,"[2].":!0,You:!0,can:!0,explicitly:!0,cast:!0,your:!0,enum:!0,value:!0,a:!0,using:!0,"`(:":!0,"string)`.":!0,'[incompatible-type]"}]':!0},"enum Status {\n Active,\n Paused,\n Off,\n}\n\nconst s: string = Status.Active; // Error: 'Status' is not compatible with 'string'\nconst statusString: string = (Status.Active: string);\n")),(0,s.mdx)("p",null,"To convert from a nullable enum type to nullable string, you can do:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const maybeStatus: ?Status = ....;\nconst maybeStatusString: ?string = maybeStatus && (maybeStatus: string);\n")),(0,s.mdx)("p",null,"If you want to convert from the representation type (e.g. ",(0,s.mdx)("inlineCode",{parentName:"p"},"string"),") to an enum type (if valid), check out the ",(0,s.mdx)("a",{parentName:"p",href:"#toc-cast"},"cast method"),"."),(0,s.mdx)("h3",{id:"toc-methods"},"Methods"),(0,s.mdx)("p",null,"Enum declarations also define some helpful methods."),(0,s.mdx)("p",null,"Below, ",(0,s.mdx)("inlineCode",{parentName:"p"},"TEnum")," is the type of the enum (e.g. ",(0,s.mdx)("inlineCode",{parentName:"p"},"Status"),"), and ",(0,s.mdx)("inlineCode",{parentName:"p"},"TRepresentationType")," is the type of the representation type for that enum (e.g. ",(0,s.mdx)("inlineCode",{parentName:"p"},"string"),")."),(0,s.mdx)("h4",{id:"toc-cast"},".cast"),(0,s.mdx)("p",null,"Type: ",(0,s.mdx)("inlineCode",{parentName:"p"},"cast(input: ?TRepresentationType): TEnum | void")),(0,s.mdx)("p",null,"The ",(0,s.mdx)("inlineCode",{parentName:"p"},"cast")," method allows you to safely convert a primitive value, like a ",(0,s.mdx)("inlineCode",{parentName:"p"},"string"),", to the enum type (if it is a valid value of the enum), and ",(0,s.mdx)("inlineCode",{parentName:"p"},"undefined")," otherwise."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const data: string = getData();\nconst maybeStatus: Status | void = Status.cast(data);\nif (maybeStatus != null) {\n const status: Status = maybeStatus;\n // do stuff with status\n}\n")),(0,s.mdx)("p",null,"Set a default value in one line with the ",(0,s.mdx)("inlineCode",{parentName:"p"},"??")," operator:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const status: Status = Status.cast(data) ?? Status.Off;\n")),(0,s.mdx)("p",null,"The type of the argument of ",(0,s.mdx)("inlineCode",{parentName:"p"},"cast")," depends on the type of enum. If it is a ",(0,s.mdx)("a",{parentName:"p",href:"../defining-enums/#toc-string-enums"},"string enum"),", the type of the argument will be ",(0,s.mdx)("inlineCode",{parentName:"p"},"string"),".\nIf it is a ",(0,s.mdx)("a",{parentName:"p",href:"../defining-enums/#toc-number-enums"},"number enum"),", the type of the argument will be ",(0,s.mdx)("inlineCode",{parentName:"p"},"number"),", and so on.\nIf you wish to cast a ",(0,s.mdx)("inlineCode",{parentName:"p"},"mixed")," value, first use a ",(0,s.mdx)("inlineCode",{parentName:"p"},"typeof")," refinement:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const data: mixed = ...;\nif (typeof data === 'string') {\n const maybeStatus: Status | void = Status.cast(data);\n}\n")),(0,s.mdx)("p",null,(0,s.mdx)("inlineCode",{parentName:"p"},"cast")," uses ",(0,s.mdx)("inlineCode",{parentName:"p"},"this")," (representing the object of enum members), so if you want to pass the function itself as a value, you should use an arrow function. For example:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const strings: Array = ...;\n// WRONG: const statuses: Array = strings.map(Status.cast);\nconst statuses: Array = strings.map((input) => Status.cast(input)); // Correct\n")),(0,s.mdx)("p",null,"Runtime cost: For ",(0,s.mdx)("a",{parentName:"p",href:"../defining-enums/#toc-string-enums"},"mirrored string enums")," (e.g ",(0,s.mdx)("inlineCode",{parentName:"p"},"enum E {A, B}"),"), as the member names are the same as the values, the runtime cost is constant -\nequivalent to calling ",(0,s.mdx)("inlineCode",{parentName:"p"},".hasOwnProperty"),". For other enums, a ",(0,s.mdx)("inlineCode",{parentName:"p"},"Map")," is created on the first call, and subsequent calls simply call ",(0,s.mdx)("inlineCode",{parentName:"p"},".has")," on the cached map.\nThus the cost is amoritzed constant."),(0,s.mdx)("h4",{id:"toc-isvalid"},".isValid"),(0,s.mdx)("p",null,"Type: ",(0,s.mdx)("inlineCode",{parentName:"p"},"isValid(input: ?TRepresentationType): boolean")),(0,s.mdx)("p",null,"The ",(0,s.mdx)("inlineCode",{parentName:"p"},"isValid")," method is like ",(0,s.mdx)("inlineCode",{parentName:"p"},"cast"),", but simply returns a boolean: ",(0,s.mdx)("inlineCode",{parentName:"p"},"true")," if the input supplied is a valid enum value, and ",(0,s.mdx)("inlineCode",{parentName:"p"},"false")," if it is not."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const data: string = getData();\nconst isStatus: boolean = Status.isValid(data);\n")),(0,s.mdx)("p",null,(0,s.mdx)("inlineCode",{parentName:"p"},"isValid")," uses ",(0,s.mdx)("inlineCode",{parentName:"p"},"this")," (representing the object of enum members), so if you want to pass the function itself as a value, you should use an arrow function. For example:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const strings: Array = ...;\n// WRONG: const statusStrings = strings.filter(Status.isValid);\nconst statusStrings = strings.filter((input) => Status.isValid(input)); // Correct\n")),(0,s.mdx)("p",null,"Runtime cost: The same as described under ",(0,s.mdx)("inlineCode",{parentName:"p"},".cast")," above."),(0,s.mdx)("h4",{id:"toc-members"},".members"),(0,s.mdx)("p",null,"Type: ",(0,s.mdx)("inlineCode",{parentName:"p"},"members(): Iterator")),(0,s.mdx)("p",null,"The ",(0,s.mdx)("inlineCode",{parentName:"p"},"members")," method returns an ",(0,s.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators#iterators"},"iterator")," (that is iterable) of all the enum members."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const buttons = [];\nfunction getButtonForStatus(status: Status) { ... }\n\nfor (const status of Status.members()) {\n buttons.push(getButtonForStatus(status));\n}\n")),(0,s.mdx)("p",null,"The iteration order is guaranteed to be the same as the order of the members in the declaration."),(0,s.mdx)("p",null,"The enum is not enumerable or iterable itself (e.g. a for-in/for-of loop over the enum will not iterate over its members), you have to use the ",(0,s.mdx)("inlineCode",{parentName:"p"},".members()")," method for that purpose."),(0,s.mdx)("p",null,"You can convert the iterable into an ",(0,s.mdx)("inlineCode",{parentName:"p"},"Array")," using: ",(0,s.mdx)("inlineCode",{parentName:"p"},"Array.from(Status.members())"),".\nYou can make use of ",(0,s.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from"},(0,s.mdx)("inlineCode",{parentName:"a"},"Array.from")),"'s second argument to map over the values at\nthe same time you construct the array: e.g. "),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const buttonArray = Array.from(\n Status.members(),\n status => getButtonForStatus(status),\n);\n")),(0,s.mdx)("h4",{id:"toc-getname"},".getName"),(0,s.mdx)("p",null,"Type: ",(0,s.mdx)("inlineCode",{parentName:"p"},"getName(value: TEnum): string")),(0,s.mdx)("p",null,"The ",(0,s.mdx)("inlineCode",{parentName:"p"},"getName")," method maps enum values to the string name of that value's enum member. When using ",(0,s.mdx)("inlineCode",{parentName:"p"},"number"),"/",(0,s.mdx)("inlineCode",{parentName:"p"},"boolean"),"/",(0,s.mdx)("inlineCode",{parentName:"p"},"symbol")," enums,\nthis can be useful for debugging and for generating internal CRUD UIs. For example:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},'enum Status {\n Active = 1,\n Paused = 2,\n Off = 3,\n}\nconst status: Status = ...;\n\nconsole.log(Status.getName(status));\n// Will print a string, either "Active", "Paused", or "Off" depending on the value.\n')),(0,s.mdx)("p",null,"Runtime cost: The same as described under ",(0,s.mdx)("inlineCode",{parentName:"p"},".cast")," above. A single cached reverse map from enum value to enum name is used for ",(0,s.mdx)("inlineCode",{parentName:"p"},".cast"),", ",(0,s.mdx)("inlineCode",{parentName:"p"},".isValid"),", and ",(0,s.mdx)("inlineCode",{parentName:"p"},".getName"),".\nThe first call of any of those methods will create this cached map."),(0,s.mdx)("h3",{id:"toc-exhaustively-checking-enums-with-a-switch"},"Exhaustively checking enums with a ",(0,s.mdx)("inlineCode",{parentName:"h3"},"switch")),(0,s.mdx)("p",null,"When checking an enum value in a ",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," statement, we enforce that you check against all possible enum members, and don\u2019t include redundant cases.\nThis helps ensure you consider all possibilities when writing code that uses enums. It especially helps with refactoring when adding or removing members,\nby pointing out the different places you need to update."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const status: Status = ...;\n\nswitch (status) { // Good, all members checked\n case Status.Active:\n break;\n case Status.Paused:\n break;\n case Status.Off:\n break;\n}\n")),(0,s.mdx)("p",null,"You can use ",(0,s.mdx)("inlineCode",{parentName:"p"},"default")," to match all members not checked so far:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"switch (status) {\n case Status.Active:\n break;\n default: // When `Status.Paused` or `Status.Off`\n break;\n}\n")),(0,s.mdx)("p",null,"You can check multiple enum members in one switch case:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"switch (status) {\n case Status.Active:\n case Status.Paused:\n break;\n case Status.Off:\n break;\n}\n")),(0,s.mdx)("p",null,"You must match against all of the members of the enum (or supply a ",(0,s.mdx)("inlineCode",{parentName:"p"},"default")," case):"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":9,"endLine":9,"endColumn":14,"description":"Incomplete exhaustive check: the member `Off` of enum `Status` [1] has not been considered in check of `status`. [invalid-exhaustive-check]"}]','[{"startLine":9,"startColumn":9,"endLine":9,"endColumn":14,"description":"Incomplete':!0,exhaustive:!0,"check:":!0,the:!0,member:!0,"`Off`":!0,of:!0,enum:!0,"`Status`":!0,"[1]":!0,has:!0,not:!0,been:!0,considered:!0,in:!0,check:!0,"`status`.":!0,'[invalid-exhaustive-check]"}]':!0},"enum Status {\n Active = 1,\n Paused = 2,\n Off = 3,\n}\nconst status: Status = Status.Active;\n\n// Error: you haven't checked 'Status.Off' in the switch\nswitch (status) {\n case Status.Active:\n break;\n case Status.Paused:\n break;\n}\n")),(0,s.mdx)("p",null,"You can\u2019t repeat cases (as this would be dead code!):"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":15,"startColumn":8,"endLine":15,"endColumn":20,"description":"Invalid exhaustive check: case checks for enum member `Paused` of `Status` [1], but member `Paused` was already checked at case [2]. [invalid-exhaustive-check]"}]','[{"startLine":15,"startColumn":8,"endLine":15,"endColumn":20,"description":"Invalid':!0,exhaustive:!0,"check:":!0,case:!0,checks:!0,for:!0,enum:!0,member:!0,"`Paused`":!0,of:!0,"`Status`":!0,"[1],":!0,but:!0,was:!0,already:!0,checked:!0,at:!0,"[2].":!0,'[invalid-exhaustive-check]"}]':!0},"enum Status {\n Active = 1,\n Paused = 2,\n Off = 3,\n}\nconst status: Status = Status.Active;\n\nswitch (status) {\n case Status.Active:\n break;\n case Status.Paused:\n break;\n case Status.Off:\n break;\n case Status.Paused: // Error: you already checked for 'Status.Paused'\n break;\n}\n")),(0,s.mdx)("p",null,"A ",(0,s.mdx)("inlineCode",{parentName:"p"},"default")," case is redundant if you\u2019ve already matched all cases:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":15,"startColumn":3,"endLine":16,"endColumn":10,"description":"Invalid exhaustive check: default case checks for additional enum members of `Status` [1], but all of its members have already been checked. [invalid-exhaustive-check]"}]','[{"startLine":15,"startColumn":3,"endLine":16,"endColumn":10,"description":"Invalid':!0,exhaustive:!0,"check:":!0,default:!0,case:!0,checks:!0,for:!0,additional:!0,enum:!0,members:!0,of:!0,"`Status`":!0,"[1],":!0,but:!0,all:!0,its:!0,have:!0,already:!0,been:!0,"checked.":!0,'[invalid-exhaustive-check]"}]':!0},"enum Status {\n Active = 1,\n Paused = 2,\n Off = 3,\n}\nconst status: Status = Status.Active;\n\nswitch (status) {\n case Status.Active:\n break;\n case Status.Paused:\n break;\n case Status.Off:\n break;\n default: // Error: you've already checked all cases, the 'default' is redundant\n break;\n}\n// The following is OK because the `default` covers the `Status.Off` case:\nswitch (status) {\n case Status.Active:\n break;\n case Status.Paused:\n break;\n default:\n break;\n}\n")),(0,s.mdx)("p",null,"Except if you are switching over an enum with ",(0,s.mdx)("a",{parentName:"p",href:"../defining-enums/#toc-flow-enums-with-unknown-members"},"unknown members"),"."),(0,s.mdx)("p",null,"If you nest exhaustively checked switches inside exhaustively checked switches, and are returning from each branch, you must add a ",(0,s.mdx)("inlineCode",{parentName:"p"},"break;")," after the nested switch:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"switch (status) {\n case Status.Active:\n return 1;\n case Status.Paused:\n return 2;\n case Status.Off:\n switch (otherStatus) {\n case Status.Active:\n return 1;\n case Status.Paused:\n return 2;\n case Status.Off:\n return 3;\n }\n break;\n}\n")),(0,s.mdx)("p",null,"Remember, you can add blocks to your switch cases. They are useful if you want to use local variables:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"switch (status) {\n case Status.Active: {\n const x = f();\n ...\n break;\n }\n case Status.Paused: {\n const x = g();\n ...\n break;\n }\n case Status.Off: {\n const y = ...;\n ...\n break;\n }\n}\n")),(0,s.mdx)("p",null,"If you didn't add blocks in this example, the two declarations of ",(0,s.mdx)("inlineCode",{parentName:"p"},"const x")," would conflict and result in an error."),(0,s.mdx)("p",null,"Enums are not checked exhaustively in ",(0,s.mdx)("inlineCode",{parentName:"p"},"if")," statements or other contexts other than ",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," statements."),(0,s.mdx)("h3",{id:"toc-exhaustive-checking-with-unknown-members"},"Exhaustive checking with unknown members"),(0,s.mdx)("p",null,"If your enum has ",(0,s.mdx)("a",{parentName:"p",href:"../defining-enums/#toc-flow-enums-with-unknown-members"},"unknown members")," (specified with the ",(0,s.mdx)("inlineCode",{parentName:"p"},"..."),"), e.g."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"enum Status {\n Active,\n Paused,\n Off,\n ...\n}\n")),(0,s.mdx)("p",null,"Then a ",(0,s.mdx)("inlineCode",{parentName:"p"},"default")," is always required when switching over the enum. The ",(0,s.mdx)("inlineCode",{parentName:"p"},"default"),' checks for "unknown" members you haven\'t explicitly listed.'),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"switch (status) {\n case Status.Active:\n break;\n case Status.Paused:\n break;\n case Status.Off:\n break;\n default:\n // Checks for members not explicitly listed\n}\n")),(0,s.mdx)("p",null,"You can use the ",(0,s.mdx)("inlineCode",{parentName:"p"},"require-explicit-enum-switch-cases")," ",(0,s.mdx)("a",{parentName:"p",href:"../../linting/flowlint-comments/"},"Flow Lint")," to require that all known members are explicitly listed as cases. For example:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":9,"endLine":9,"endColumn":14,"description":"Incomplete exhaustive check: the member `Off` of enum `Status` [1] has not been considered in check of `status`. The default case [2] does not check for the missing members as the `require-explicit-enum-switch-cases` lint has been enabled. [require-explicit-enum-switch-cases]"}]','[{"startLine":9,"startColumn":9,"endLine":9,"endColumn":14,"description":"Incomplete':!0,exhaustive:!0,"check:":!0,the:!0,member:!0,"`Off`":!0,of:!0,enum:!0,"`Status`":!0,"[1]":!0,has:!0,not:!0,been:!0,considered:!0,in:!0,check:!0,"`status`.":!0,The:!0,default:!0,case:!0,"[2]":!0,does:!0,for:!0,missing:!0,members:!0,as:!0,"`require-explicit-enum-switch-cases`":!0,lint:!0,"enabled.":!0,'[require-explicit-enum-switch-cases]"}]':!0},"enum Status {\n Active = 1,\n Paused = 2,\n Off = 3,\n}\nconst status: Status = Status.Active;\n\n// flowlint-next-line require-explicit-enum-switch-cases:error\nswitch (status) {\n case Status.Active:\n break;\n case Status.Paused:\n break;\n default:\n break;\n}\n")),(0,s.mdx)("p",null,"You can fix if by doing:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"// flowlint-next-line require-explicit-enum-switch-cases:error\nswitch (status) {\n case Status.Active:\n break;\n case Status.Paused:\n break;\n case Status.Off: // Added the missing `Status.Off` case\n break;\n default:\n break;\n}\n")),(0,s.mdx)("p",null,"The ",(0,s.mdx)("inlineCode",{parentName:"p"},"require-explicit-enum-switch-cases")," lint is not one to enable globally, but rather on a per-",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," basis when you want the behavior.\nWith normal enums, for each ",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," statement on it, you can either provide a ",(0,s.mdx)("inlineCode",{parentName:"p"},"default")," or not, and thus decide if you want to require each case explicitly listed or not.\nSimilarly for Flow Enums with unknown members, you can also enable this lint on a per-switch basis."),(0,s.mdx)("p",null,"The lint works for switches of regular Flow Enum types as well.\nIt in effect bans the usage of ",(0,s.mdx)("inlineCode",{parentName:"p"},"default")," in that ",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," statement, by requiring the explicit listing of all enum members as cases."),(0,s.mdx)("h3",{id:"toc-mapping-enums-to-other-values"},"Mapping enums to other values"),(0,s.mdx)("p",null,"There are a variety of reasons you may want to map an enum value to another value, e.g. a label, icon, element, and so on."),(0,s.mdx)("p",null,"With previous patterns, it was common to use object literals for this purpose, however with Flow Enums we prefer functions which contain a switch, which we can exhaustively check."),(0,s.mdx)("p",null,"Instead of:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const STATUS_ICON: {[Status]: string} = {\n [Status.Active]: 'green-checkmark',\n [Status.Paused]: 'grey-pause',\n [Status.Off]: 'red-x',\n};\nconst icon = STATUS_ICON[status];\n")),(0,s.mdx)("p",null,"Which doesn't actually guarantee that we are mapping each ",(0,s.mdx)("inlineCode",{parentName:"p"},"Status")," to some value, use:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"function getStatusIcon(status: Status): string {\n switch (status) {\n case Status.Active:\n return 'green-checkmark';\n case Status.Paused:\n return 'grey-pause';\n case Status.Off:\n return 'red-x';\n }\n}\nconst icon = getStatusIcon(status);\n")),(0,s.mdx)("p",null,"In the future if you add or remove an enum member, Flow will tell you to update the switch as well so it's always accurate."),(0,s.mdx)("p",null,"If you actually want a dictionary which is not exhaustive, you can use a ",(0,s.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map"},(0,s.mdx)("inlineCode",{parentName:"a"},"Map")),":"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const counts = new Map([\n [Status.Active, 2],\n [Status.Off, 5],\n]);\nconst activeCount: Status | void = counts.get(Status.Active);\n")),(0,s.mdx)("p",null,"Flow Enums cannot be used as keys in object literals, as ",(0,s.mdx)("a",{parentName:"p",href:"#toc-distinct-object-keys"},"explained later on this page"),"."),(0,s.mdx)("h3",{id:"toc-enums-in-a-union"},"Enums in a union"),(0,s.mdx)("p",null,"If your enum value is in a union (e.g. ",(0,s.mdx)("inlineCode",{parentName:"p"},"?Status"),"), first refine to only the enum type:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const status: ?Status = ...;\n\nif (status != null) {\n (status: Status); // 'status' is refined to 'Status' at this point\n switch (status) {\n case Status.Active: break;\n case Status.Paused: break;\n case Status.Off: break;\n }\n}\n")),(0,s.mdx)("p",null,"If you want to refine ",(0,s.mdx)("em",{parentName:"p"},"to")," the enum value, you can use ",(0,s.mdx)("inlineCode",{parentName:"p"},"typeof")," with the representation type, for example:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const val: Status | number = ...;\n\n// 'Status' is a string enum\nif (typeof val === 'string') {\n (val: Status); // 'val' is refined to 'Status' at this point\n switch (val) {\n case Status.Active: break;\n case Status.Paused: break;\n case Status.Off: break;\n }\n}\n")),(0,s.mdx)("h3",{id:"toc-exporting-enums"},"Exporting enums"),(0,s.mdx)("p",null,"An enum is a type and a value (like a class is). To export both the type and the value, export it like a you would a value:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"export enum Status {}\n")),(0,s.mdx)("p",null,"Or, as the default export (note: you must always specify an enum name, ",(0,s.mdx)("inlineCode",{parentName:"p"},"export default enum {}")," is not allowed):"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"export default enum Status {}\n")),(0,s.mdx)("p",null,"Using CommonJS:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status {}\nmodule.exports = Status;\n")),(0,s.mdx)("p",null,"To export ",(0,s.mdx)("strong",{parentName:"p"},"only")," its type, but not the value, you can do:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status {}\nexport type {Status};\n")),(0,s.mdx)("p",null,"Other functions within the file will still have access to the enum implementation."),(0,s.mdx)("h3",{id:"toc-importing-enums"},"Importing enums"),(0,s.mdx)("p",null,"If you have exported an enum like this:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"// status.js\nexport default enum Status {\n Active,\n Paused,\n Off,\n}\n")),(0,s.mdx)("p",null,"You can import it as both a value and a type like this:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"import Status from 'status';\n\nconst x: Status /* used as type */ = Status.Active /* used as value */;\n")),(0,s.mdx)("p",null,"If you only need to use the type, you can import it as a type:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"import type Status from 'status';\n\nfunction printStatus(status: Status) {\n ...\n}\n")),(0,s.mdx)("p",null,"Using CommonJS:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const Status = require('status');\n")),(0,s.mdx)("h3",{id:"toc-generic-enums"},"Generic enums"),(0,s.mdx)("p",null,"There is currently no way to specify a generic enum type, but there have been enough requests that it is something we will look into in the future."),(0,s.mdx)("p",null,"For some use cases of generic enums, you can currently ask users to supply functions which call the enum ",(0,s.mdx)("a",{parentName:"p",href:"#toc-methods"},"methods")," instead (rather than passing in the enum itself), for example:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},'function castToEnumArray(\n f: TRepresentationType => TEnum,\n xs: Array,\n): Array {\n return xs.map(f);\n}\n\ncastToEnumArray((input) => Status.cast(input), ["Active", "Paused", "Invalid"]);\n')),(0,s.mdx)("h3",{id:"toc-when-to-not-use-enums"},"When to not use enums"),(0,s.mdx)("p",null,"Enums are designed to cover many use cases and exhibit certain benefits. The design makes a variety of trade-offs to make this happen, and in certain situations,\nthese trade-offs might not be right for you. In these cases, you can continue to use existing patterns to satisfy your use cases."),(0,s.mdx)("h4",{id:"toc-distinct-object-keys"},"Distinct object keys"),(0,s.mdx)("p",null,"You can\u2019t use enum members as distinct object keys."),(0,s.mdx)("p",null,"The following pattern works because the types of ",(0,s.mdx)("inlineCode",{parentName:"p"},"LegacyStatus.Active")," and ",(0,s.mdx)("inlineCode",{parentName:"p"},"LegacyStatus.Off")," are different. One has the type ",(0,s.mdx)("inlineCode",{parentName:"p"},"'Active'")," and one has the type ",(0,s.mdx)("inlineCode",{parentName:"p"},"'Off'"),"."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":12,"startColumn":20,"endLine":12,"endColumn":41,"description":"Cannot assign `o[LegacyStatus.Active]` to `z` because string [1] is incompatible with boolean [2]. [incompatible-type]"}]','[{"startLine":12,"startColumn":20,"endLine":12,"endColumn":41,"description":"Cannot':!0,assign:!0,"`o[LegacyStatus.Active]`":!0,to:!0,"`z`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,boolean:!0,"[2].":!0,'[incompatible-type]"}]':!0},"const LegacyStatus = Object.freeze({\n Active: 'Active',\n Paused: 'Paused',\n Off: 'Off',\n});\nconst o = {\n [LegacyStatus.Active]: \"hi\",\n [LegacyStatus.Off]: 1,\n};\nconst x: string = o[LegacyStatus.Active]; // OK\nconst y: number = o[LegacyStatus.Off]; // OK\nconst z: boolean = o[LegacyStatus.Active]; // Error - as expected\n")),(0,s.mdx)("p",null,"We can\u2019t use the same pattern with enums. All enum members have the same type, the enum type, so Flow can\u2019t track the relationship between keys and values."),(0,s.mdx)("p",null,"If you wish to map from an enum value to another value, you should use a ",(0,s.mdx)("a",{parentName:"p",href:"#toc-mapping-enums-to-other-values"},"function with an exhaustively-checked switch instead"),"."),(0,s.mdx)("h4",{id:"toc-disjoint-object-unions"},"Disjoint object unions"),(0,s.mdx)("p",null,"A defining feature of enums is that unlike unions, each enum member does not form its own separate type. Every member has the same type, the enum type.\nThis allows enum usage to be analyzed by Flow in a consistently fast way, however it means that in certain situations which require separate types, we can\u2019t use enums.\nConsider the following union, following the ",(0,s.mdx)("a",{parentName:"p",href:"../../types/unions/#toc-disjoint-object-unions"},"disjoint object union")," pattern:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Action =\n | {type: 'Upload', data: string}\n | {type: 'Delete', id: number};\n")),(0,s.mdx)("p",null,"Each object type in the union has a single common field (",(0,s.mdx)("inlineCode",{parentName:"p"},"type"),") which is used to distinguish which object type we are dealing with."),(0,s.mdx)("p",null,"We can\u2019t use enum types for this field, because for this mechanism to work, the type of that field must be different in each member of the union,\nbut enum members all have the same type."),(0,s.mdx)("p",null,"In the future, we might add the ability for enums to encapsulate additional data besides a key and a primitive value - this would allow us to replace disjoint object unions."),(0,s.mdx)("h4",{id:"toc-guaranteed-inlining"},"Guaranteed inlining"),(0,s.mdx)("p",null,"Flow Enums are designed to allow for inlining (e.g. ",(0,s.mdx)("a",{parentName:"p",href:"../defining-enums/#toc-literal-member-values"},"member values must be literals"),",\n",(0,s.mdx)("a",{parentName:"p",href:"../defining-enums/#toc-fixed-at-declaration"},"enums are frozen"),"), however the inlining itself needs to be part of the build system (whatever you use) rather than Flow itself."),(0,s.mdx)("p",null,"While enum member access (e.g. ",(0,s.mdx)("inlineCode",{parentName:"p"},"Status.Active"),") can be inlined (other than ",(0,s.mdx)("a",{parentName:"p",href:"../defining-enums/#toc-symbol-enums"},"symbol enums")," which cannot be inlined due to the nature of symbols),\nusage of its methods (e.g. ",(0,s.mdx)("inlineCode",{parentName:"p"},"Status.cast(x)"),") cannot be inlined."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1091.b8bfd1e4.js b/assets/js/1091.b8bfd1e4.js new file mode 100644 index 00000000000..0021db98e73 --- /dev/null +++ b/assets/js/1091.b8bfd1e4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1091],{21091:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>r,contentTitle:()=>s,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>d});var n=t(87462),l=(t(67294),t(3905));t(45475);const a={title:"Lazy Mode",slug:"/lang/lazy-modes"},s=void 0,i={unversionedId:"lang/lazy-modes",id:"lang/lazy-modes",title:"Lazy Mode",description:"By default, the Flow server will typecheck all your code. This way it can answer",source:"@site/docs/lang/lazy-modes.md",sourceDirName:"lang",slug:"/lang/lazy-modes",permalink:"/en/docs/lang/lazy-modes",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/lazy-modes.md",tags:[],version:"current",frontMatter:{title:"Lazy Mode",slug:"/lang/lazy-modes"},sidebar:"docsSidebar",previous:{title:"Type Refinements",permalink:"/en/docs/lang/refinements"},next:{title:"File Signatures (Types-First)",permalink:"/en/docs/lang/types-first"}},r={},d=[{value:"Classifying Files",id:"toc-classifying-files",level:2},{value:"Choosing Focused Files",id:"toc-choosing-focused-files",level:2},{value:"Using Lazy Mode",id:"toc-using-lazy-mode",level:2},{value:"Forcing Flow to Treat a File as Focused",id:"toc-forcing-flow-to-treat-a-file-as-focused",level:2}],c={toc:d};function h(e){let{components:o,...t}=e;return(0,l.mdx)("wrapper",(0,n.Z)({},c,t,{components:o,mdxType:"MDXLayout"}),(0,l.mdx)("p",null,'By default, the Flow server will typecheck all your code. This way it can answer\nquestions like "are there any Flow errors anywhere in my code". This is very\nuseful for tooling, like a continuous integration hook which prevents code\nchanges which introduce Flow errors.'),(0,l.mdx)("p",null,"However, sometimes a Flow user might not care about all the code. If they are\nediting a file ",(0,l.mdx)("inlineCode",{parentName:"p"},"foo.js"),", they might only want Flow to typecheck the subset of\nthe repository needed to answer questions about ",(0,l.mdx)("inlineCode",{parentName:"p"},"foo.js"),". Since Flow would only\ncheck a smaller number of files, this would be faster. This is the motivation\nbehind Flow's lazy mode."),(0,l.mdx)("h2",{id:"toc-classifying-files"},"Classifying Files"),(0,l.mdx)("p",null,"Lazy mode classifes your code into four categories:"),(0,l.mdx)("ol",null,(0,l.mdx)("li",{parentName:"ol"},(0,l.mdx)("strong",{parentName:"li"},"Focused files"),". These are the files which the user cares about."),(0,l.mdx)("li",{parentName:"ol"},(0,l.mdx)("strong",{parentName:"li"},"Dependent files"),". These are the files which depend on the focused files.\nChanges to the focused files might cause type errors in the dependent files."),(0,l.mdx)("li",{parentName:"ol"},(0,l.mdx)("strong",{parentName:"li"},"Dependency files"),". These are the files which are needed in order to\ntypecheck the focused or dependent files."),(0,l.mdx)("li",{parentName:"ol"},(0,l.mdx)("strong",{parentName:"li"},"Unchecked files"),". All other files.")),(0,l.mdx)("p",null,"Lazy mode will still find all the JavaScript files and parse them. But it won't\ntypecheck the unchecked files."),(0,l.mdx)("h2",{id:"toc-choosing-focused-files"},"Choosing Focused Files"),(0,l.mdx)("p",null,'Flow will focus files when they change on disk, using Flow\'s built-in file watcher\n("dfind") or Watchman.'),(0,l.mdx)("p",null,'So, all files that change while Flow is running will be focused. But what about\nfiles that change when Flow is not running? If you\'re using Git or Mercurial,\nFlow will ask it for all of the files that have changed since the mergebase\nwith "master" (the common ancestor of the current commit and the master branch).'),(0,l.mdx)("p",null,'If you\'re not using "master" (e.g. "main" instead), you can change this with\nthe ',(0,l.mdx)("inlineCode",{parentName:"p"},"file_watcher.mergebase_with"),' config. If you\'re working from a clone, you\nmight want to set this to "origin/master" (for Git), which will focus all files\nthat have changed locally, even if you commit to your local "master" branch.'),(0,l.mdx)("p",null,"The net result is that Flow will find the same errors in lazy mode as in a full\ncheck, so long as there are no errors upstream. For example, if your CI ensures\nthat there are no errors in \"master,\" then it's redundant for Flow to check all\nof the unchanged files for errors that can't exist."),(0,l.mdx)("h2",{id:"toc-using-lazy-mode"},"Using Lazy Mode"),(0,l.mdx)("p",null,"To enable lazy mode, set ",(0,l.mdx)("inlineCode",{parentName:"p"},"lazy_mode=true")," in the ",(0,l.mdx)("inlineCode",{parentName:"p"},".flowconfig"),"."),(0,l.mdx)("p",null,"To start Flow in lazy mode manually, run"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"flow start --lazy-mode true\n")),(0,l.mdx)("h2",{id:"toc-forcing-flow-to-treat-a-file-as-focused"},"Forcing Flow to Treat a File as Focused"),(0,l.mdx)("p",null,"You can force Flow to treat one or more files as focused from the CLI."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"flow force-recheck --focus path/to/A.js path/to/B.js\n")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1105.80237606.js b/assets/js/1105.80237606.js new file mode 100644 index 00000000000..5aee99a7cb6 --- /dev/null +++ b/assets/js/1105.80237606.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1105],{41105:(e,o,r)=>{r.r(o),r.d(o,{assets:()=>i,contentTitle:()=>n,default:()=>l,frontMatter:()=>a,metadata:()=>m,toc:()=>d});var t=r(87462),s=(r(67294),r(3905));const a={title:"Spreads: Common Errors & Fixes","short-title":"Spreads: Common Errors & Fixes",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/spreads-common-errors-fixes-9701012e9d58"},n=void 0,m={permalink:"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes",source:"@site/blog/2019-10-30-Spreads-Common-Errors-and-Fixes.md",title:"Spreads: Common Errors & Fixes",description:"Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them.",date:"2019-10-30T00:00:00.000Z",formattedDate:"October 30, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Spreads: Common Errors & Fixes","short-title":"Spreads: Common Errors & Fixes",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/spreads-common-errors-fixes-9701012e9d58"},prevItem:{title:"How to upgrade to exact-by-default object type syntax",permalink:"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax"},nextItem:{title:"Live Flow errors in your IDE",permalink:"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE"}},i={authorsImageUrls:[void 0]},d=[],p={toc:d};function l(e){let{components:o,...r}=e;return(0,s.mdx)("wrapper",(0,t.Z)({},p,r,{components:o,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them."))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1109.53b35ea5.js b/assets/js/1109.53b35ea5.js new file mode 100644 index 00000000000..b89f1b11c12 --- /dev/null +++ b/assets/js/1109.53b35ea5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1109],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docsSidebar":[{"type":"category","label":"Introduction","items":[{"type":"link","label":"Getting Started","href":"/en/docs/getting-started","docId":"getting-started"},{"type":"link","label":"Installation","href":"/en/docs/install","docId":"install"},{"type":"link","label":"Usage","href":"/en/docs/usage","docId":"usage"}],"collapsed":true,"collapsible":true},{"type":"link","label":"FAQ","href":"/en/docs/faq","docId":"faq"},{"type":"category","label":"Type Annotations","items":[{"type":"link","label":"Type Annotations","href":"/en/docs/types","docId":"types/index"},{"type":"link","label":"Primitive Types","href":"/en/docs/types/primitives","docId":"types/primitives"},{"type":"link","label":"Literal Types","href":"/en/docs/types/literals","docId":"types/literals"},{"type":"link","label":"Mixed","href":"/en/docs/types/mixed","docId":"types/mixed"},{"type":"link","label":"Empty","href":"/en/docs/types/empty","docId":"types/empty"},{"type":"link","label":"Any","href":"/en/docs/types/any","docId":"types/any"},{"type":"link","label":"Maybe Types","href":"/en/docs/types/maybe","docId":"types/maybe"},{"type":"link","label":"Functions","href":"/en/docs/types/functions","docId":"types/functions"},{"type":"link","label":"Objects","href":"/en/docs/types/objects","docId":"types/objects"},{"type":"link","label":"Arrays","href":"/en/docs/types/arrays","docId":"types/arrays"},{"type":"link","label":"Tuples","href":"/en/docs/types/tuples","docId":"types/tuples"},{"type":"link","label":"Classes","href":"/en/docs/types/classes","docId":"types/classes"},{"type":"link","label":"Type Aliases","href":"/en/docs/types/aliases","docId":"types/aliases"},{"type":"link","label":"Opaque Type Aliases","href":"/en/docs/types/opaque-types","docId":"types/opaque-types"},{"type":"link","label":"Interfaces","href":"/en/docs/types/interfaces","docId":"types/interfaces"},{"type":"link","label":"Generics","href":"/en/docs/types/generics","docId":"types/generics"},{"type":"link","label":"Unions","href":"/en/docs/types/unions","docId":"types/unions"},{"type":"link","label":"Intersections","href":"/en/docs/types/intersections","docId":"types/intersections"},{"type":"link","label":"Indexed Access Types","href":"/en/docs/types/indexed-access","docId":"types/indexed-access"},{"type":"link","label":"Conditional Types","href":"/en/docs/types/conditional","docId":"types/conditional"},{"type":"link","label":"Mapped Types","href":"/en/docs/types/mapped-types","docId":"types/mapped-types"},{"type":"link","label":"Type Guards","href":"/en/docs/types/type-guards","docId":"types/type-guards"},{"type":"link","label":"Typeof Types","href":"/en/docs/types/typeof","docId":"types/typeof"},{"type":"link","label":"Type Casting Expressions","href":"/en/docs/types/casting","docId":"types/casting"},{"type":"link","label":"Utility Types","href":"/en/docs/types/utilities","docId":"types/utilities"},{"type":"link","label":"Module Types","href":"/en/docs/types/modules","docId":"types/modules"},{"type":"link","label":"Comment Types","href":"/en/docs/types/comments","docId":"types/comments"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Type System","items":[{"type":"link","label":"Types & Expressions","href":"/en/docs/lang/types-and-expressions","docId":"lang/types-and-expressions"},{"type":"link","label":"Variable Declarations","href":"/en/docs/lang/variables","docId":"lang/variables"},{"type":"link","label":"Subsets & Subtypes","href":"/en/docs/lang/subtypes","docId":"lang/subtypes"},{"type":"link","label":"Type Hierarchy","href":"/en/docs/lang/type-hierarchy","docId":"lang/type-hierarchy"},{"type":"link","label":"Type Variance","href":"/en/docs/lang/variance","docId":"lang/variance"},{"type":"link","label":"Nominal & Structural Typing","href":"/en/docs/lang/nominal-structural","docId":"lang/nominal-structural"},{"type":"link","label":"Depth Subtyping","href":"/en/docs/lang/depth-subtyping","docId":"lang/depth-subtyping"},{"type":"link","label":"Width Subtyping","href":"/en/docs/lang/width-subtyping","docId":"lang/width-subtyping"},{"type":"link","label":"Type Refinements","href":"/en/docs/lang/refinements","docId":"lang/refinements"},{"type":"link","label":"Lazy Mode","href":"/en/docs/lang/lazy-modes","docId":"lang/lazy-modes"},{"type":"link","label":"File Signatures (Types-First)","href":"/en/docs/lang/types-first","docId":"lang/types-first"},{"type":"link","label":"Annotation Requirement","href":"/en/docs/lang/annotation-requirement","docId":"lang/annotation-requirement"}],"collapsed":true,"collapsible":true},{"type":"category","label":"React","items":[{"type":"link","label":"Getting Started","href":"/en/docs/react","docId":"react/index"},{"type":"link","label":"Components","href":"/en/docs/react/components","docId":"react/components"},{"type":"link","label":"Event Handling","href":"/en/docs/react/events","docId":"react/events"},{"type":"link","label":"Ref Functions","href":"/en/docs/react/refs","docId":"react/refs"},{"type":"link","label":"Higher-order Components","href":"/en/docs/react/hoc","docId":"react/hoc"},{"type":"link","label":"Type Reference","href":"/en/docs/react/types","docId":"react/types"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Flow Enums","items":[{"type":"link","label":"Flow Enums","href":"/en/docs/enums","docId":"enums/index"},{"type":"link","label":"Enabling enums in your project","href":"/en/docs/enums/enabling-enums","docId":"enums/enabling-enums"},{"type":"link","label":"Defining enums","href":"/en/docs/enums/defining-enums","docId":"enums/defining-enums"},{"type":"link","label":"Using enums","href":"/en/docs/enums/using-enums","docId":"enums/using-enums"},{"type":"link","label":"Migrating from legacy patterns","href":"/en/docs/enums/migrating-legacy-patterns","docId":"enums/migrating-legacy-patterns"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Declarations","href":"/en/docs/declarations","docId":"declarations/index"},{"type":"category","label":"Library Definitions","items":[{"type":"link","label":"Library Definitions","href":"/en/docs/libdefs","docId":"libdefs/index"},{"type":"link","label":"Creating Library Definitions","href":"/en/docs/libdefs/creation","docId":"libdefs/creation"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Error Suppressions","href":"/en/docs/errors","docId":"errors/index"},{"type":"category","label":"Linting","items":[{"type":"link","label":"Linting Overview","href":"/en/docs/linting","docId":"linting/index"},{"type":"link","label":"Flowlint Comments","href":"/en/docs/linting/flowlint-comments","docId":"linting/flowlint-comments"},{"type":"link","label":"Lint Rule Reference","href":"/en/docs/linting/rule-reference","docId":"linting/rule-reference"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Flow Strict","href":"/en/docs/strict","docId":"strict/index"},{"type":"category","label":"Flow CLI","items":[{"type":"link","label":"Flow CLI","href":"/en/docs/cli","docId":"cli/index"},{"type":"link","label":"Flow Coverage","href":"/en/docs/cli/coverage","docId":"cli/coverage"},{"type":"link","label":"Flow Annotate-Exports","href":"/en/docs/cli/annotate-exports","docId":"cli/annotate-exports"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Configuration","items":[{"type":"link","label":".flowconfig","href":"/en/docs/config","docId":"config/index"},{"type":"link","label":".flowconfig [version]","href":"/en/docs/config/version","docId":"config/version"},{"type":"link","label":".flowconfig [options]","href":"/en/docs/config/options","docId":"config/options"},{"type":"link","label":".flowconfig [include]","href":"/en/docs/config/include","docId":"config/include"},{"type":"link","label":".flowconfig [ignore]","href":"/en/docs/config/ignore","docId":"config/ignore"},{"type":"link","label":".flowconfig [untyped]","href":"/en/docs/config/untyped","docId":"config/untyped"},{"type":"link","label":".flowconfig [declarations]","href":"/en/docs/config/declarations","docId":"config/declarations"},{"type":"link","label":".flowconfig [libs]","href":"/en/docs/config/libs","docId":"config/libs"},{"type":"link","label":".flowconfig [lints]","href":"/en/docs/config/lints","docId":"config/lints"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Tools","items":[{"type":"link","label":"Babel","href":"/en/docs/tools/babel","docId":"tools/babel"},{"type":"link","label":"ESLint","href":"/en/docs/tools/eslint","docId":"tools/eslint"},{"type":"link","label":"flow-remove-types","href":"/en/docs/tools/flow-remove-types","docId":"tools/flow-remove-types"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Editors","items":[{"type":"link","label":"Editors","href":"/en/docs/editors","docId":"editors/index"},{"type":"link","label":"Visual Studio Code","href":"/en/docs/editors/vscode","docId":"editors/vscode"},{"type":"link","label":"Sublime Text","href":"/en/docs/editors/sublime-text","docId":"editors/sublime-text"},{"type":"link","label":"Vim","href":"/en/docs/editors/vim","docId":"editors/vim"},{"type":"link","label":"Emacs","href":"/en/docs/editors/emacs","docId":"editors/emacs"},{"type":"link","label":"WebStorm","href":"/en/docs/editors/webstorm","docId":"editors/webstorm"}],"collapsed":true,"collapsible":true}]},"docs":{"cli/annotate-exports":{"id":"cli/annotate-exports","title":"Flow Annotate-Exports","description":"Upgrading to Types-First mode may require a substantial","sidebar":"docsSidebar"},"cli/coverage":{"id":"cli/coverage","title":"Flow Coverage","description":"The coverage command provides a metric of the amount of checking that Flow has","sidebar":"docsSidebar"},"cli/index":{"id":"cli/index","title":"Flow CLI","description":"How to use Flow from the command line. Including how to manage the Flow background process.","sidebar":"docsSidebar"},"config/declarations":{"id":"config/declarations","title":".flowconfig [declarations]","description":"Often third-party libraries have broken type definitions or have type","sidebar":"docsSidebar"},"config/ignore":{"id":"config/ignore","title":".flowconfig [ignore]","description":"The [ignore] section in a .flowconfig file tells Flow to ignore files","sidebar":"docsSidebar"},"config/include":{"id":"config/include","title":".flowconfig [include]","description":"The [include] section in a .flowconfig file tells Flow to include the","sidebar":"docsSidebar"},"config/index":{"id":"config/index","title":".flowconfig","description":"Flow tries to work out of the box as much as possible, but can be configured to work with any codebase.","sidebar":"docsSidebar"},"config/libs":{"id":"config/libs","title":".flowconfig [libs]","description":"The [libs] section in a .flowconfig file tells Flow to include the","sidebar":"docsSidebar"},"config/lints":{"id":"config/lints","title":".flowconfig [lints]","description":"The [lints] section in a .flowconfig file can contain several key-value","sidebar":"docsSidebar"},"config/options":{"id":"config/options","title":".flowconfig [options]","description":"The [options] section in a .flowconfig file can contain several key-value","sidebar":"docsSidebar"},"config/untyped":{"id":"config/untyped","title":".flowconfig [untyped]","description":"The [untyped] section in a .flowconfig file tells Flow to not typecheck files","sidebar":"docsSidebar"},"config/version":{"id":"config/version","title":".flowconfig [version]","description":"You can specify in the .flowconfig which version of Flow you expect to use.","sidebar":"docsSidebar"},"declarations/index":{"id":"declarations/index","title":"Declaration Files","description":"Learn how to write types in .flow files.","sidebar":"docsSidebar"},"editors/emacs":{"id":"editors/emacs","title":"Emacs","description":"flow-for-emacs","sidebar":"docsSidebar"},"editors/index":{"id":"editors/index","title":"Editors","description":"Detailed guides, tips, and resources on how to integrate Flow with different code editors.","sidebar":"docsSidebar"},"editors/sublime-text":{"id":"editors/sublime-text","title":"Sublime Text","description":"Flow For Sublime Text 2 and 3","sidebar":"docsSidebar"},"editors/vim":{"id":"editors/vim","title":"Vim","description":"Flow\'s editor integration is primarily via the Language Server Protocol. There are many vim LSP clients to choose from, such as ALE.","sidebar":"docsSidebar"},"editors/vscode":{"id":"editors/vscode","title":"Visual Studio Code","description":"Screenshot of Flow Language Support","sidebar":"docsSidebar"},"editors/webstorm":{"id":"editors/webstorm","title":"WebStorm","description":"Webstorm installation instructions can be found here:","sidebar":"docsSidebar"},"enums/defining-enums":{"id":"enums/defining-enums","title":"Defining enums","description":"Learn how to define a Flow Enum. Looking for a quick overview? Check out the Quickstart Guide.","sidebar":"docsSidebar"},"enums/enabling-enums":{"id":"enums/enabling-enums","title":"Enabling enums in your project","description":"Upgrade tooling","sidebar":"docsSidebar"},"enums/index":{"id":"enums/index","title":"Flow Enums","description":"Define a fixed set of constants which create their own type. Exhaustively checked in switch statements.","sidebar":"docsSidebar"},"enums/migrating-legacy-patterns":{"id":"enums/migrating-legacy-patterns","title":"Migrating from legacy patterns","description":"Learn how to migrate to Flow Enums from legacy JavaScript enum patterns like Object.freeze.","sidebar":"docsSidebar"},"enums/using-enums":{"id":"enums/using-enums","title":"Using enums","description":"Flow Enums are not a syntax for union types. They are their own type, and each member of a Flow Enum has the same type.","sidebar":"docsSidebar"},"errors/index":{"id":"errors/index","title":"Error Suppressions","description":"Learn how to suppress Flow\'s type errors.","sidebar":"docsSidebar"},"faq":{"id":"faq","title":"FAQ","description":"Have a question about using Flow? Check here first!","sidebar":"docsSidebar"},"getting-started":{"id":"getting-started","title":"Getting Started","description":"Never used a type system before or just new to Flow? Let\'s get you up and running in a few minutes.","sidebar":"docsSidebar"},"index":{"id":"index","title":"Documentation","description":"Guides and references for all you need to know about Flow","sidebar":"docsSidebar"},"install":{"id":"install","title":"Installation","description":"Setup Compiler","sidebar":"docsSidebar"},"lang/annotation-requirement":{"id":"lang/annotation-requirement","title":"Annotation Requirement","description":"Note: As of version 0.199 Flow uses Local Type Inference as its inference algorithm.","sidebar":"docsSidebar"},"lang/depth-subtyping":{"id":"lang/depth-subtyping","title":"Depth Subtyping","description":"Assume we have two classes, which have a subtype relationship using extends:","sidebar":"docsSidebar"},"lang/lazy-modes":{"id":"lang/lazy-modes","title":"Lazy Mode","description":"By default, the Flow server will typecheck all your code. This way it can answer","sidebar":"docsSidebar"},"lang/nominal-structural":{"id":"lang/nominal-structural","title":"Nominal & Structural Typing","description":"A static type checker can use either the name (nominal typing) or the structure (structural typing)","sidebar":"docsSidebar"},"lang/refinements":{"id":"lang/refinements","title":"Type Refinements","description":"Refinements allow us to narrow the type of a value based on conditional tests.","sidebar":"docsSidebar"},"lang/subtypes":{"id":"lang/subtypes","title":"Subsets & Subtypes","description":"What is a subtype?","sidebar":"docsSidebar"},"lang/type-hierarchy":{"id":"lang/type-hierarchy","title":"Type Hierarchy","description":"Types in Flow form a hierarchy based on subtyping:","sidebar":"docsSidebar"},"lang/types-and-expressions":{"id":"lang/types-and-expressions","title":"Types & Expressions","description":"In JavaScript there are many types of values: numbers, strings, booleans,","sidebar":"docsSidebar"},"lang/types-first":{"id":"lang/types-first","title":"File Signatures (Types-First)","description":"Flow checks codebases by processing each file separately in dependency","sidebar":"docsSidebar"},"lang/variables":{"id":"lang/variables","title":"Variable Declarations","description":"When you are declaring a new variable, you may optionally declare its type.","sidebar":"docsSidebar"},"lang/variance":{"id":"lang/variance","title":"Type Variance","description":"Variance is a topic that comes up fairly often in type systems. It is used to determine","sidebar":"docsSidebar"},"lang/width-subtyping":{"id":"lang/width-subtyping","title":"Width Subtyping","description":"It\'s safe to use an object with \\"extra\\" properties in a position that is","sidebar":"docsSidebar"},"libdefs/creation":{"id":"libdefs/creation","title":"Creating Library Definitions","description":"Before spending the time to write your own libdef, we recommend that you look to","sidebar":"docsSidebar"},"libdefs/index":{"id":"libdefs/index","title":"Library Definitions","description":"Learn how to create and use library definitions for the third-party code your code depends on.","sidebar":"docsSidebar"},"linting/flowlint-comments":{"id":"linting/flowlint-comments","title":"Flowlint Comments","description":"You can use flowlint comments to specify more granular lint settings within a file.","sidebar":"docsSidebar"},"linting/index":{"id":"linting/index","title":"Linting Overview","description":"Learn how to configure Flow\'s linter to find potentially harmful code.","sidebar":"docsSidebar"},"linting/rule-reference":{"id":"linting/rule-reference","title":"Lint Rule Reference","description":"all","sidebar":"docsSidebar"},"react/components":{"id":"react/components","title":"Components","description":"Adding Flow types to your React components is incredibly powerful. After typing","sidebar":"docsSidebar"},"react/events":{"id":"react/events","title":"Event Handling","description":"The React docs for handling events show how an event handler can be attached to","sidebar":"docsSidebar"},"react/hoc":{"id":"react/hoc","title":"Higher-order Components","description":"A popular pattern in React is the higher-order component pattern, so it\'s","sidebar":"docsSidebar"},"react/index":{"id":"react/index","title":"Getting Started","description":"Learn how to use Flow to effectively type common and advanced React patterns.","sidebar":"docsSidebar"},"react/multiplatform":{"id":"react/multiplatform","title":"Multi-platform Support for React Native","description":"Flow\'s support for multiple platforms inside a single React Native codebase"},"react/refs":{"id":"react/refs","title":"Ref Functions","description":"React allows you to grab the instance of an element or component with refs.","sidebar":"docsSidebar"},"react/types":{"id":"react/types","title":"Type Reference","description":"React exports a handful of utility types that may be useful to you when typing","sidebar":"docsSidebar"},"strict/index":{"id":"strict/index","title":"Flow Strict","description":"Learn how to enable stricter type checking on a file-by-file basis.","sidebar":"docsSidebar"},"tools/babel":{"id":"tools/babel","title":"Babel","description":"Flow and Babel are designed to work great together. It","sidebar":"docsSidebar"},"tools/eslint":{"id":"tools/eslint","title":"ESLint","description":"ESLint is a static analysis tool which can help you quickly find and","sidebar":"docsSidebar"},"tools/flow-remove-types":{"id":"tools/flow-remove-types","title":"flow-remove-types","description":"flow-remove-types is a small","sidebar":"docsSidebar"},"tools/index":{"id":"tools/index","title":"Tools","description":"Detailed guides, tips, and resources on how to integrate Flow with different JavaScript tools.","sidebar":"docsSidebar"},"types/aliases":{"id":"types/aliases","title":"Type Aliases","description":"When you have complicated types that you want to reuse in multiple places, you","sidebar":"docsSidebar"},"types/any":{"id":"types/any","title":"Any","description":"Warning: Do not mistake any with mixed. It\'s also not the same as empty.","sidebar":"docsSidebar"},"types/arrays":{"id":"types/arrays","title":"Arrays","description":"Array types represent lists of unknown length, where all items have the same type.","sidebar":"docsSidebar"},"types/casting":{"id":"types/casting","title":"Type Casting Expressions","description":"Sometimes it is useful to assert a type without using something like a function","sidebar":"docsSidebar"},"types/classes":{"id":"types/classes","title":"Classes","description":"JavaScript classes","sidebar":"docsSidebar"},"types/comments":{"id":"types/comments","title":"Comment Types","description":"Flow supports a comment-based syntax, which makes it possible to use Flow","sidebar":"docsSidebar"},"types/conditional":{"id":"types/conditional","title":"Conditional Types","description":"Flow\'s conditional type allows you to conditionally choose between two different output types by inspecting an input type. It is useful to extract parts of a type, or to describe a complex overload.","sidebar":"docsSidebar"},"types/empty":{"id":"types/empty","title":"Empty","description":"The empty type has no values. It is the subtype of all other types (i.e. the bottom type).","sidebar":"docsSidebar"},"types/functions":{"id":"types/functions","title":"Functions","description":"Functions have two places where types are applied: parameters (input) and the return value (output).","sidebar":"docsSidebar"},"types/generators":{"id":"types/generators","title":"generators","description":""},"types/generics":{"id":"types/generics","title":"Generics","description":"Generics (sometimes referred to as polymorphic types) are a way of abstracting","sidebar":"docsSidebar"},"types/index":{"id":"types/index","title":"Type Annotations","description":"Learn how to add Flow type annotations to your code: Primitives, Objects, Functions, Classes, and more.","sidebar":"docsSidebar"},"types/indexed-access":{"id":"types/indexed-access","title":"Indexed Access Types","description":"Flow\u2019s Indexed Access Types allow you to get the type of a property from an object, array, or tuple type.","sidebar":"docsSidebar"},"types/interfaces":{"id":"types/interfaces","title":"Interfaces","description":"Classes in Flow are nominally typed. This means that when you have two separate","sidebar":"docsSidebar"},"types/intersections":{"id":"types/intersections","title":"Intersections","description":"Sometimes it is useful to create a type which is all of a set of other","sidebar":"docsSidebar"},"types/literals":{"id":"types/literals","title":"Literal Types","description":"Flow has primitive types for","sidebar":"docsSidebar"},"types/mapped-types":{"id":"types/mapped-types","title":"Mapped Types","description":"Flow\'s mapped types allow you to transform object types. They are useful for modeling complex runtime operations over objects.","sidebar":"docsSidebar"},"types/maybe":{"id":"types/maybe","title":"Maybe Types","description":"You can prefix a type with ? to make it a union with null and void:","sidebar":"docsSidebar"},"types/mixed":{"id":"types/mixed","title":"Mixed","description":"mixed is the supertype of all types. All values are mixed.","sidebar":"docsSidebar"},"types/modules":{"id":"types/modules","title":"Module Types","description":"Importing and exporting types","sidebar":"docsSidebar"},"types/objects":{"id":"types/objects","title":"Objects","description":"Objects can be used in many different ways in JavaScript.","sidebar":"docsSidebar"},"types/opaque-types":{"id":"types/opaque-types","title":"Opaque Type Aliases","description":"Opaque type aliases are type aliases that do not allow access to their","sidebar":"docsSidebar"},"types/primitives":{"id":"types/primitives","title":"Primitive Types","description":"JavaScript has a number of different primitive types","sidebar":"docsSidebar"},"types/tuples":{"id":"types/tuples","title":"Tuples","description":"Tuple types represent a fixed length list, where the elements can have different types.","sidebar":"docsSidebar"},"types/type-guards":{"id":"types/type-guards","title":"Type Guards","description":"Flow lets you define functions whose return expression encodes some type predicate over a parameter param. This predicate is annotated in place of a return type annotation as param is PredicateType. It declares that if the function returns true then param is of type PredicateType.","sidebar":"docsSidebar"},"types/typeof":{"id":"types/typeof","title":"Typeof Types","description":"JavaScript has a typeof operator which returns a string describing a value.","sidebar":"docsSidebar"},"types/unions":{"id":"types/unions","title":"Unions","description":"Sometimes it\'s useful to create a type which is one of a set of other","sidebar":"docsSidebar"},"types/utilities":{"id":"types/utilities","title":"Utility Types","description":"Flow provides a set of utility types to operate on other types to create new types.","sidebar":"docsSidebar"},"usage":{"id":"usage","title":"Usage","description":"Once you have installed Flow, you will want to get a feel of how to use Flow at the most basic level. For most new Flow projects, you will follow this general pattern:","sidebar":"docsSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/1134.17105716.js b/assets/js/1134.17105716.js new file mode 100644 index 00000000000..71815a0c995 --- /dev/null +++ b/assets/js/1134.17105716.js @@ -0,0 +1,2 @@ +/*! For license information please see 1134.17105716.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1134,6717],{41134:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>r,language:()=>i});var o=n(96717),r=o.conf,i={defaultToken:"invalid",tokenPostfix:".js",keywords:["break","case","catch","class","continue","const","constructor","debugger","default","delete","do","else","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","let","new","null","return","set","super","switch","symbol","this","throw","true","try","typeof","undefined","var","void","while","with","yield","async","await","of"],typeKeywords:[],operators:o.language.operators,symbols:o.language.symbols,escapes:o.language.escapes,digits:o.language.digits,octaldigits:o.language.octaldigits,binarydigits:o.language.binarydigits,hexdigits:o.language.hexdigits,regexpctl:o.language.regexpctl,regexpesc:o.language.regexpesc,tokenizer:o.language.tokenizer}},96717:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>d,language:()=>u});var o,r,i=n(38139),s=Object.defineProperty,a=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,g=Object.prototype.hasOwnProperty,l=(e,t,n,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of c(t))g.call(e,r)||r===n||s(e,r,{get:()=>t[r],enumerable:!(o=a(t,r))||o.enumerable});return e},p={};l(p,o=i,"default"),r&&l(r,o,"default");var d={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:p.languages.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:p.languages.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:p.languages.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:p.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},u={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","out","package","private","protected","public","override","readonly","require","global","return","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<",">",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([dgimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}}}}]); \ No newline at end of file diff --git a/assets/js/1134.17105716.js.LICENSE.txt b/assets/js/1134.17105716.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1134.17105716.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1134.63ddd0c7.js b/assets/js/1134.63ddd0c7.js new file mode 100644 index 00000000000..56b4ccb6985 --- /dev/null +++ b/assets/js/1134.63ddd0c7.js @@ -0,0 +1,445 @@ +"use strict"; +exports.id = 1134; +exports.ids = [1134,6717]; +exports.modules = { + +/***/ 41134: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/* harmony import */ var _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(96717); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/javascript/javascript.ts + +var conf = _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.conf; +var language = { + defaultToken: "invalid", + tokenPostfix: ".js", + keywords: [ + "break", + "case", + "catch", + "class", + "continue", + "const", + "constructor", + "debugger", + "default", + "delete", + "do", + "else", + "export", + "extends", + "false", + "finally", + "for", + "from", + "function", + "get", + "if", + "import", + "in", + "instanceof", + "let", + "new", + "null", + "return", + "set", + "super", + "switch", + "symbol", + "this", + "throw", + "true", + "try", + "typeof", + "undefined", + "var", + "void", + "while", + "with", + "yield", + "async", + "await", + "of" + ], + typeKeywords: [], + operators: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.operators, + symbols: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.symbols, + escapes: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.escapes, + digits: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.digits, + octaldigits: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.octaldigits, + binarydigits: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.binarydigits, + hexdigits: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.hexdigits, + regexpctl: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.regexpctl, + regexpesc: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.regexpesc, + tokenizer: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.tokenizer +}; + + + +/***/ }), + +/***/ 96717: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38139); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/basic-languages/typescript/typescript.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + onEnterRules: [ + { + beforeText: /^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/, + afterText: /^\s*\*\/$/, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent, + appendText: " * " + } + }, + { + beforeText: /^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.None, + appendText: " * " + } + }, + { + beforeText: /^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.None, + appendText: "* " + } + }, + { + beforeText: /^(\t|(\ \ ))*\ \*\/\s*$/, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.None, + removeText: 1 + } + } + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: "`", close: "`", notIn: ["string", "comment"] }, + { open: "/**", close: " */", notIn: ["string"] } + ], + folding: { + markers: { + start: new RegExp("^\\s*//\\s*#?region\\b"), + end: new RegExp("^\\s*//\\s*#?endregion\\b") + } + } +}; +var language = { + defaultToken: "invalid", + tokenPostfix: ".ts", + keywords: [ + "abstract", + "any", + "as", + "asserts", + "bigint", + "boolean", + "break", + "case", + "catch", + "class", + "continue", + "const", + "constructor", + "debugger", + "declare", + "default", + "delete", + "do", + "else", + "enum", + "export", + "extends", + "false", + "finally", + "for", + "from", + "function", + "get", + "if", + "implements", + "import", + "in", + "infer", + "instanceof", + "interface", + "is", + "keyof", + "let", + "module", + "namespace", + "never", + "new", + "null", + "number", + "object", + "out", + "package", + "private", + "protected", + "public", + "override", + "readonly", + "require", + "global", + "return", + "set", + "static", + "string", + "super", + "switch", + "symbol", + "this", + "throw", + "true", + "try", + "type", + "typeof", + "undefined", + "unique", + "unknown", + "var", + "void", + "while", + "with", + "yield", + "async", + "await", + "of" + ], + operators: [ + "<=", + ">=", + "==", + "!=", + "===", + "!==", + "=>", + "+", + "-", + "**", + "*", + "/", + "%", + "++", + "--", + "<<", + ">", + ">>>", + "&", + "|", + "^", + "!", + "~", + "&&", + "||", + "??", + "?", + ":", + "=", + "+=", + "-=", + "*=", + "**=", + "/=", + "%=", + "<<=", + ">>=", + ">>>=", + "&=", + "|=", + "^=", + "@" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [/!(?=([^=]|$))/, "delimiter"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/(@digits)[eE]([\-+]?(@digits))?/, "number.float"], + [/(@digits)\.(@digits)([eE][\-+]?(@digits))?/, "number.float"], + [/0[xX](@hexdigits)n?/, "number.hex"], + [/0[oO]?(@octaldigits)n?/, "number.octal"], + [/0[bB](@binarydigits)n?/, "number.binary"], + [/(@digits)n?/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string_double"], + [/'/, "string", "@string_single"], + [/`/, "string", "@string_backtick"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@jsdoc"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + jsdoc: [ + [/[^\/*]+/, "comment.doc"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + regexp: [ + [ + /(\{)(\d+(?:,\d*)?)(\})/, + ["regexp.escape.control", "regexp.escape.control", "regexp.escape.control"] + ], + [ + /(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/, + ["regexp.escape.control", { token: "regexp.escape.control", next: "@regexrange" }] + ], + [/(\()(\?:|\?=|\?!)/, ["regexp.escape.control", "regexp.escape.control"]], + [/[()]/, "regexp.escape.control"], + [/@regexpctl/, "regexp.escape.control"], + [/[^\\\/]/, "regexp"], + [/@regexpesc/, "regexp.escape"], + [/\\\./, "regexp.invalid"], + [/(\/)([dgimsuy]*)/, [{ token: "regexp", bracket: "@close", next: "@pop" }, "keyword.other"]] + ], + regexrange: [ + [/-/, "regexp.escape.control"], + [/\^/, "regexp.invalid"], + [/@regexpesc/, "regexp.escape"], + [/[^\]]/, "regexp"], + [ + /\]/, + { + token: "regexp.escape.control", + next: "@pop", + bracket: "@close" + } + ] + ], + string_double: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ], + string_single: [ + [/[^\\']+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/'/, "string", "@pop"] + ], + string_backtick: [ + [/\$\{/, { token: "delimiter.bracket", next: "@bracketCounting" }], + [/[^\\`$]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/`/, "string", "@pop"] + ], + bracketCounting: [ + [/\{/, "delimiter.bracket", "@bracketCounting"], + [/\}/, "delimiter.bracket", "@pop"], + { include: "common" } + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1147.5c68f082.js b/assets/js/1147.5c68f082.js new file mode 100644 index 00000000000..aec82eca2c1 --- /dev/null +++ b/assets/js/1147.5c68f082.js @@ -0,0 +1,247 @@ +"use strict"; +exports.id = 1147; +exports.ids = [1147]; +exports.modules = { + +/***/ 21147: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/coffee/coffee.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + blockComment: ["###", "###"], + lineComment: "#" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + folding: { + markers: { + start: new RegExp("^\\s*#region\\b"), + end: new RegExp("^\\s*#endregion\\b") + } + } +}; +var language = { + defaultToken: "", + ignoreCase: true, + tokenPostfix: ".coffee", + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + regEx: /\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/, + keywords: [ + "and", + "or", + "is", + "isnt", + "not", + "on", + "yes", + "@", + "no", + "off", + "true", + "false", + "null", + "this", + "new", + "delete", + "typeof", + "in", + "instanceof", + "return", + "throw", + "break", + "continue", + "debugger", + "if", + "else", + "switch", + "for", + "while", + "do", + "try", + "catch", + "finally", + "class", + "extends", + "super", + "undefined", + "then", + "unless", + "until", + "loop", + "of", + "by", + "when" + ], + symbols: /[=>{r.r(n),r.d(n,{conf:()=>t,language:()=>s});var t={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{blockComment:["###","###"],lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".coffee",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],regEx:/\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/,keywords:["and","or","is","isnt","not","on","yes","@","no","off","true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","if","else","switch","for","while","do","try","catch","finally","class","extends","super","undefined","then","unless","until","loop","of","by","when"],symbols:/[=>{e.r(t),e.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>i,metadata:()=>r,toc:()=>c});var o=e(87462),a=(e(67294),e(3905));e(45475);const i={title:"Type Annotations",slug:"/types",description:"Learn how to add Flow type annotations to your code: Primitives, Objects, Functions, Classes, and more."},s=void 0,r={unversionedId:"types/index",id:"types/index",title:"Type Annotations",description:"Learn how to add Flow type annotations to your code: Primitives, Objects, Functions, Classes, and more.",source:"@site/docs/types/index.md",sourceDirName:"types",slug:"/types",permalink:"/en/docs/types",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/index.md",tags:[],version:"current",frontMatter:{title:"Type Annotations",slug:"/types",description:"Learn how to add Flow type annotations to your code: Primitives, Objects, Functions, Classes, and more."},sidebar:"docsSidebar",previous:{title:"FAQ",permalink:"/en/docs/faq"},next:{title:"Primitive Types",permalink:"/en/docs/types/primitives"}},l={},c=[],d={toc:c};function m(n){let{components:t,...e}=n;return(0,a.mdx)("wrapper",(0,o.Z)({},d,e,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Adding type annotations is an important part of your interaction with Flow."),(0,a.mdx)("p",null,"Flow has a powerful ability to infer the types of your programs. The majority\nFor example, you don't have to produce annotations for common patterns like ",(0,a.mdx)("inlineCode",{parentName:"p"},"Array.map"),":"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'["foo", "bar"].map(s => ( // s is inferred to have type string\n s.length\n));\n')),(0,a.mdx)("p",null,"Still, there are places where you'll want to add types."),(0,a.mdx)("p",null,"Imagine the following ",(0,a.mdx)("inlineCode",{parentName:"p"},"concat")," function for concatenating two strings together."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":17,"endLine":1,"endColumn":17,"description":"Missing an annotation on `a`. [missing-local-annot]"},{"startLine":1,"startColumn":20,"endLine":1,"endColumn":20,"description":"Missing an annotation on `b`. [missing-local-annot]"}]','[{"startLine":1,"startColumn":17,"endLine":1,"endColumn":17,"description":"Missing':!0,an:!0,annotation:!0,on:!0,"`a`.":!0,'[missing-local-annot]"},{"startLine":1,"startColumn":20,"endLine":1,"endColumn":20,"description":"Missing':!0,"`b`.":!0,'[missing-local-annot]"}]':!0},"function concat(a, b) {\n return a + b;\n}\n")),(0,a.mdx)("p",null,"You need to add annotations on parameters of ",(0,a.mdx)("inlineCode",{parentName:"p"},"concat"),", so that Flow can type\ncheck its body. Now you'll get a warning from Flow if you are calling this\nfunction with unexpected types."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":8,"endLine":6,"endColumn":8,"description":"Cannot call `concat` with `1` bound to `a` because number [1] is incompatible with string [2]. [incompatible-call]"},{"startLine":6,"startColumn":11,"endLine":6,"endColumn":11,"description":"Cannot call `concat` with `2` bound to `b` because number [1] is incompatible with string [2]. [incompatible-call]"}]','[{"startLine":6,"startColumn":8,"endLine":6,"endColumn":8,"description":"Cannot':!0,call:!0,"`concat`":!0,with:!0,"`1`":!0,bound:!0,to:!0,"`a`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2].":!0,'[incompatible-call]"},{"startLine":6,"startColumn":11,"endLine":6,"endColumn":11,"description":"Cannot':!0,"`2`":!0,"`b`":!0,'[incompatible-call]"}]':!0},'function concat(a: string, b: string) {\n return a + b;\n}\n\nconcat("A", "B"); // Works!\nconcat(1, 2); // Error!\n')),(0,a.mdx)("p",null,"This guide will teach you the syntax and semantics of all the different types\nyou can have in Flow."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1156.13b411ab.js b/assets/js/1156.13b411ab.js new file mode 100644 index 00000000000..9645ea935c4 --- /dev/null +++ b/assets/js/1156.13b411ab.js @@ -0,0 +1,1370 @@ +"use strict"; +exports.id = 1156; +exports.ids = [1156]; +exports.modules = { + +/***/ 1156: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/solidity/solidity.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["<", ">"] + ], + autoClosingPairs: [ + { open: '"', close: '"', notIn: ["string", "comment"] }, + { open: "{", close: "}", notIn: ["string", "comment"] }, + { open: "[", close: "]", notIn: ["string", "comment"] }, + { open: "(", close: ")", notIn: ["string", "comment"] } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".sol", + brackets: [ + { token: "delimiter.curly", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" }, + { token: "delimiter.angle", open: "<", close: ">" } + ], + keywords: [ + "pragma", + "solidity", + "contract", + "library", + "using", + "struct", + "function", + "modifier", + "constructor", + "address", + "string", + "bool", + "Int", + "Uint", + "Byte", + "Fixed", + "Ufixed", + "int", + "int8", + "int16", + "int24", + "int32", + "int40", + "int48", + "int56", + "int64", + "int72", + "int80", + "int88", + "int96", + "int104", + "int112", + "int120", + "int128", + "int136", + "int144", + "int152", + "int160", + "int168", + "int176", + "int184", + "int192", + "int200", + "int208", + "int216", + "int224", + "int232", + "int240", + "int248", + "int256", + "uint", + "uint8", + "uint16", + "uint24", + "uint32", + "uint40", + "uint48", + "uint56", + "uint64", + "uint72", + "uint80", + "uint88", + "uint96", + "uint104", + "uint112", + "uint120", + "uint128", + "uint136", + "uint144", + "uint152", + "uint160", + "uint168", + "uint176", + "uint184", + "uint192", + "uint200", + "uint208", + "uint216", + "uint224", + "uint232", + "uint240", + "uint248", + "uint256", + "byte", + "bytes", + "bytes1", + "bytes2", + "bytes3", + "bytes4", + "bytes5", + "bytes6", + "bytes7", + "bytes8", + "bytes9", + "bytes10", + "bytes11", + "bytes12", + "bytes13", + "bytes14", + "bytes15", + "bytes16", + "bytes17", + "bytes18", + "bytes19", + "bytes20", + "bytes21", + "bytes22", + "bytes23", + "bytes24", + "bytes25", + "bytes26", + "bytes27", + "bytes28", + "bytes29", + "bytes30", + "bytes31", + "bytes32", + "fixed", + "fixed0x8", + "fixed0x16", + "fixed0x24", + "fixed0x32", + "fixed0x40", + "fixed0x48", + "fixed0x56", + "fixed0x64", + "fixed0x72", + "fixed0x80", + "fixed0x88", + "fixed0x96", + "fixed0x104", + "fixed0x112", + "fixed0x120", + "fixed0x128", + "fixed0x136", + "fixed0x144", + "fixed0x152", + "fixed0x160", + "fixed0x168", + "fixed0x176", + "fixed0x184", + "fixed0x192", + "fixed0x200", + "fixed0x208", + "fixed0x216", + "fixed0x224", + "fixed0x232", + "fixed0x240", + "fixed0x248", + "fixed0x256", + "fixed8x8", + "fixed8x16", + "fixed8x24", + "fixed8x32", + "fixed8x40", + "fixed8x48", + "fixed8x56", + "fixed8x64", + "fixed8x72", + "fixed8x80", + "fixed8x88", + "fixed8x96", + "fixed8x104", + "fixed8x112", + "fixed8x120", + "fixed8x128", + "fixed8x136", + "fixed8x144", + "fixed8x152", + "fixed8x160", + "fixed8x168", + "fixed8x176", + "fixed8x184", + "fixed8x192", + "fixed8x200", + "fixed8x208", + "fixed8x216", + "fixed8x224", + "fixed8x232", + "fixed8x240", + "fixed8x248", + "fixed16x8", + "fixed16x16", + "fixed16x24", + "fixed16x32", + "fixed16x40", + "fixed16x48", + "fixed16x56", + "fixed16x64", + "fixed16x72", + "fixed16x80", + "fixed16x88", + "fixed16x96", + "fixed16x104", + "fixed16x112", + "fixed16x120", + "fixed16x128", + "fixed16x136", + "fixed16x144", + "fixed16x152", + "fixed16x160", + "fixed16x168", + "fixed16x176", + "fixed16x184", + "fixed16x192", + "fixed16x200", + "fixed16x208", + "fixed16x216", + "fixed16x224", + "fixed16x232", + "fixed16x240", + "fixed24x8", + "fixed24x16", + "fixed24x24", + "fixed24x32", + "fixed24x40", + "fixed24x48", + "fixed24x56", + "fixed24x64", + "fixed24x72", + "fixed24x80", + "fixed24x88", + "fixed24x96", + "fixed24x104", + "fixed24x112", + "fixed24x120", + "fixed24x128", + "fixed24x136", + "fixed24x144", + "fixed24x152", + "fixed24x160", + "fixed24x168", + "fixed24x176", + "fixed24x184", + "fixed24x192", + "fixed24x200", + "fixed24x208", + "fixed24x216", + "fixed24x224", + "fixed24x232", + "fixed32x8", + "fixed32x16", + "fixed32x24", + "fixed32x32", + "fixed32x40", + "fixed32x48", + "fixed32x56", + "fixed32x64", + "fixed32x72", + "fixed32x80", + "fixed32x88", + "fixed32x96", + "fixed32x104", + "fixed32x112", + "fixed32x120", + "fixed32x128", + "fixed32x136", + "fixed32x144", + "fixed32x152", + "fixed32x160", + "fixed32x168", + "fixed32x176", + "fixed32x184", + "fixed32x192", + "fixed32x200", + "fixed32x208", + "fixed32x216", + "fixed32x224", + "fixed40x8", + "fixed40x16", + "fixed40x24", + "fixed40x32", + "fixed40x40", + "fixed40x48", + "fixed40x56", + "fixed40x64", + "fixed40x72", + "fixed40x80", + "fixed40x88", + "fixed40x96", + "fixed40x104", + "fixed40x112", + "fixed40x120", + "fixed40x128", + "fixed40x136", + "fixed40x144", + "fixed40x152", + "fixed40x160", + "fixed40x168", + "fixed40x176", + "fixed40x184", + "fixed40x192", + "fixed40x200", + "fixed40x208", + "fixed40x216", + "fixed48x8", + "fixed48x16", + "fixed48x24", + "fixed48x32", + "fixed48x40", + "fixed48x48", + "fixed48x56", + "fixed48x64", + "fixed48x72", + "fixed48x80", + "fixed48x88", + "fixed48x96", + "fixed48x104", + "fixed48x112", + "fixed48x120", + "fixed48x128", + "fixed48x136", + "fixed48x144", + "fixed48x152", + "fixed48x160", + "fixed48x168", + "fixed48x176", + "fixed48x184", + "fixed48x192", + "fixed48x200", + "fixed48x208", + "fixed56x8", + "fixed56x16", + "fixed56x24", + "fixed56x32", + "fixed56x40", + "fixed56x48", + "fixed56x56", + "fixed56x64", + "fixed56x72", + "fixed56x80", + "fixed56x88", + "fixed56x96", + "fixed56x104", + "fixed56x112", + "fixed56x120", + "fixed56x128", + "fixed56x136", + "fixed56x144", + "fixed56x152", + "fixed56x160", + "fixed56x168", + "fixed56x176", + "fixed56x184", + "fixed56x192", + "fixed56x200", + "fixed64x8", + "fixed64x16", + "fixed64x24", + "fixed64x32", + "fixed64x40", + "fixed64x48", + "fixed64x56", + "fixed64x64", + "fixed64x72", + "fixed64x80", + "fixed64x88", + "fixed64x96", + "fixed64x104", + "fixed64x112", + "fixed64x120", + "fixed64x128", + "fixed64x136", + "fixed64x144", + "fixed64x152", + "fixed64x160", + "fixed64x168", + "fixed64x176", + "fixed64x184", + "fixed64x192", + "fixed72x8", + "fixed72x16", + "fixed72x24", + "fixed72x32", + "fixed72x40", + "fixed72x48", + "fixed72x56", + "fixed72x64", + "fixed72x72", + "fixed72x80", + "fixed72x88", + "fixed72x96", + "fixed72x104", + "fixed72x112", + "fixed72x120", + "fixed72x128", + "fixed72x136", + "fixed72x144", + "fixed72x152", + "fixed72x160", + "fixed72x168", + "fixed72x176", + "fixed72x184", + "fixed80x8", + "fixed80x16", + "fixed80x24", + "fixed80x32", + "fixed80x40", + "fixed80x48", + "fixed80x56", + "fixed80x64", + "fixed80x72", + "fixed80x80", + "fixed80x88", + "fixed80x96", + "fixed80x104", + "fixed80x112", + "fixed80x120", + "fixed80x128", + "fixed80x136", + "fixed80x144", + "fixed80x152", + "fixed80x160", + "fixed80x168", + "fixed80x176", + "fixed88x8", + "fixed88x16", + "fixed88x24", + "fixed88x32", + "fixed88x40", + "fixed88x48", + "fixed88x56", + "fixed88x64", + "fixed88x72", + "fixed88x80", + "fixed88x88", + "fixed88x96", + "fixed88x104", + "fixed88x112", + "fixed88x120", + "fixed88x128", + "fixed88x136", + "fixed88x144", + "fixed88x152", + "fixed88x160", + "fixed88x168", + "fixed96x8", + "fixed96x16", + "fixed96x24", + "fixed96x32", + "fixed96x40", + "fixed96x48", + "fixed96x56", + "fixed96x64", + "fixed96x72", + "fixed96x80", + "fixed96x88", + "fixed96x96", + "fixed96x104", + "fixed96x112", + "fixed96x120", + "fixed96x128", + "fixed96x136", + "fixed96x144", + "fixed96x152", + "fixed96x160", + "fixed104x8", + "fixed104x16", + "fixed104x24", + "fixed104x32", + "fixed104x40", + "fixed104x48", + "fixed104x56", + "fixed104x64", + "fixed104x72", + "fixed104x80", + "fixed104x88", + "fixed104x96", + "fixed104x104", + "fixed104x112", + "fixed104x120", + "fixed104x128", + "fixed104x136", + "fixed104x144", + "fixed104x152", + "fixed112x8", + "fixed112x16", + "fixed112x24", + "fixed112x32", + "fixed112x40", + "fixed112x48", + "fixed112x56", + "fixed112x64", + "fixed112x72", + "fixed112x80", + "fixed112x88", + "fixed112x96", + "fixed112x104", + "fixed112x112", + "fixed112x120", + "fixed112x128", + "fixed112x136", + "fixed112x144", + "fixed120x8", + "fixed120x16", + "fixed120x24", + "fixed120x32", + "fixed120x40", + "fixed120x48", + "fixed120x56", + "fixed120x64", + "fixed120x72", + "fixed120x80", + "fixed120x88", + "fixed120x96", + "fixed120x104", + "fixed120x112", + "fixed120x120", + "fixed120x128", + "fixed120x136", + "fixed128x8", + "fixed128x16", + "fixed128x24", + "fixed128x32", + "fixed128x40", + "fixed128x48", + "fixed128x56", + "fixed128x64", + "fixed128x72", + "fixed128x80", + "fixed128x88", + "fixed128x96", + "fixed128x104", + "fixed128x112", + "fixed128x120", + "fixed128x128", + "fixed136x8", + "fixed136x16", + "fixed136x24", + "fixed136x32", + "fixed136x40", + "fixed136x48", + "fixed136x56", + "fixed136x64", + "fixed136x72", + "fixed136x80", + "fixed136x88", + "fixed136x96", + "fixed136x104", + "fixed136x112", + "fixed136x120", + "fixed144x8", + "fixed144x16", + "fixed144x24", + "fixed144x32", + "fixed144x40", + "fixed144x48", + "fixed144x56", + "fixed144x64", + "fixed144x72", + "fixed144x80", + "fixed144x88", + "fixed144x96", + "fixed144x104", + "fixed144x112", + "fixed152x8", + "fixed152x16", + "fixed152x24", + "fixed152x32", + "fixed152x40", + "fixed152x48", + "fixed152x56", + "fixed152x64", + "fixed152x72", + "fixed152x80", + "fixed152x88", + "fixed152x96", + "fixed152x104", + "fixed160x8", + "fixed160x16", + "fixed160x24", + "fixed160x32", + "fixed160x40", + "fixed160x48", + "fixed160x56", + "fixed160x64", + "fixed160x72", + "fixed160x80", + "fixed160x88", + "fixed160x96", + "fixed168x8", + "fixed168x16", + "fixed168x24", + "fixed168x32", + "fixed168x40", + "fixed168x48", + "fixed168x56", + "fixed168x64", + "fixed168x72", + "fixed168x80", + "fixed168x88", + "fixed176x8", + "fixed176x16", + "fixed176x24", + "fixed176x32", + "fixed176x40", + "fixed176x48", + "fixed176x56", + "fixed176x64", + "fixed176x72", + "fixed176x80", + "fixed184x8", + "fixed184x16", + "fixed184x24", + "fixed184x32", + "fixed184x40", + "fixed184x48", + "fixed184x56", + "fixed184x64", + "fixed184x72", + "fixed192x8", + "fixed192x16", + "fixed192x24", + "fixed192x32", + "fixed192x40", + "fixed192x48", + "fixed192x56", + "fixed192x64", + "fixed200x8", + "fixed200x16", + "fixed200x24", + "fixed200x32", + "fixed200x40", + "fixed200x48", + "fixed200x56", + "fixed208x8", + "fixed208x16", + "fixed208x24", + "fixed208x32", + "fixed208x40", + "fixed208x48", + "fixed216x8", + "fixed216x16", + "fixed216x24", + "fixed216x32", + "fixed216x40", + "fixed224x8", + "fixed224x16", + "fixed224x24", + "fixed224x32", + "fixed232x8", + "fixed232x16", + "fixed232x24", + "fixed240x8", + "fixed240x16", + "fixed248x8", + "ufixed", + "ufixed0x8", + "ufixed0x16", + "ufixed0x24", + "ufixed0x32", + "ufixed0x40", + "ufixed0x48", + "ufixed0x56", + "ufixed0x64", + "ufixed0x72", + "ufixed0x80", + "ufixed0x88", + "ufixed0x96", + "ufixed0x104", + "ufixed0x112", + "ufixed0x120", + "ufixed0x128", + "ufixed0x136", + "ufixed0x144", + "ufixed0x152", + "ufixed0x160", + "ufixed0x168", + "ufixed0x176", + "ufixed0x184", + "ufixed0x192", + "ufixed0x200", + "ufixed0x208", + "ufixed0x216", + "ufixed0x224", + "ufixed0x232", + "ufixed0x240", + "ufixed0x248", + "ufixed0x256", + "ufixed8x8", + "ufixed8x16", + "ufixed8x24", + "ufixed8x32", + "ufixed8x40", + "ufixed8x48", + "ufixed8x56", + "ufixed8x64", + "ufixed8x72", + "ufixed8x80", + "ufixed8x88", + "ufixed8x96", + "ufixed8x104", + "ufixed8x112", + "ufixed8x120", + "ufixed8x128", + "ufixed8x136", + "ufixed8x144", + "ufixed8x152", + "ufixed8x160", + "ufixed8x168", + "ufixed8x176", + "ufixed8x184", + "ufixed8x192", + "ufixed8x200", + "ufixed8x208", + "ufixed8x216", + "ufixed8x224", + "ufixed8x232", + "ufixed8x240", + "ufixed8x248", + "ufixed16x8", + "ufixed16x16", + "ufixed16x24", + "ufixed16x32", + "ufixed16x40", + "ufixed16x48", + "ufixed16x56", + "ufixed16x64", + "ufixed16x72", + "ufixed16x80", + "ufixed16x88", + "ufixed16x96", + "ufixed16x104", + "ufixed16x112", + "ufixed16x120", + "ufixed16x128", + "ufixed16x136", + "ufixed16x144", + "ufixed16x152", + "ufixed16x160", + "ufixed16x168", + "ufixed16x176", + "ufixed16x184", + "ufixed16x192", + "ufixed16x200", + "ufixed16x208", + "ufixed16x216", + "ufixed16x224", + "ufixed16x232", + "ufixed16x240", + "ufixed24x8", + "ufixed24x16", + "ufixed24x24", + "ufixed24x32", + "ufixed24x40", + "ufixed24x48", + "ufixed24x56", + "ufixed24x64", + "ufixed24x72", + "ufixed24x80", + "ufixed24x88", + "ufixed24x96", + "ufixed24x104", + "ufixed24x112", + "ufixed24x120", + "ufixed24x128", + "ufixed24x136", + "ufixed24x144", + "ufixed24x152", + "ufixed24x160", + "ufixed24x168", + "ufixed24x176", + "ufixed24x184", + "ufixed24x192", + "ufixed24x200", + "ufixed24x208", + "ufixed24x216", + "ufixed24x224", + "ufixed24x232", + "ufixed32x8", + "ufixed32x16", + "ufixed32x24", + "ufixed32x32", + "ufixed32x40", + "ufixed32x48", + "ufixed32x56", + "ufixed32x64", + "ufixed32x72", + "ufixed32x80", + "ufixed32x88", + "ufixed32x96", + "ufixed32x104", + "ufixed32x112", + "ufixed32x120", + "ufixed32x128", + "ufixed32x136", + "ufixed32x144", + "ufixed32x152", + "ufixed32x160", + "ufixed32x168", + "ufixed32x176", + "ufixed32x184", + "ufixed32x192", + "ufixed32x200", + "ufixed32x208", + "ufixed32x216", + "ufixed32x224", + "ufixed40x8", + "ufixed40x16", + "ufixed40x24", + "ufixed40x32", + "ufixed40x40", + "ufixed40x48", + "ufixed40x56", + "ufixed40x64", + "ufixed40x72", + "ufixed40x80", + "ufixed40x88", + "ufixed40x96", + "ufixed40x104", + "ufixed40x112", + "ufixed40x120", + "ufixed40x128", + "ufixed40x136", + "ufixed40x144", + "ufixed40x152", + "ufixed40x160", + "ufixed40x168", + "ufixed40x176", + "ufixed40x184", + "ufixed40x192", + "ufixed40x200", + "ufixed40x208", + "ufixed40x216", + "ufixed48x8", + "ufixed48x16", + "ufixed48x24", + "ufixed48x32", + "ufixed48x40", + "ufixed48x48", + "ufixed48x56", + "ufixed48x64", + "ufixed48x72", + "ufixed48x80", + "ufixed48x88", + "ufixed48x96", + "ufixed48x104", + "ufixed48x112", + "ufixed48x120", + "ufixed48x128", + "ufixed48x136", + "ufixed48x144", + "ufixed48x152", + "ufixed48x160", + "ufixed48x168", + "ufixed48x176", + "ufixed48x184", + "ufixed48x192", + "ufixed48x200", + "ufixed48x208", + "ufixed56x8", + "ufixed56x16", + "ufixed56x24", + "ufixed56x32", + "ufixed56x40", + "ufixed56x48", + "ufixed56x56", + "ufixed56x64", + "ufixed56x72", + "ufixed56x80", + "ufixed56x88", + "ufixed56x96", + "ufixed56x104", + "ufixed56x112", + "ufixed56x120", + "ufixed56x128", + "ufixed56x136", + "ufixed56x144", + "ufixed56x152", + "ufixed56x160", + "ufixed56x168", + "ufixed56x176", + "ufixed56x184", + "ufixed56x192", + "ufixed56x200", + "ufixed64x8", + "ufixed64x16", + "ufixed64x24", + "ufixed64x32", + "ufixed64x40", + "ufixed64x48", + "ufixed64x56", + "ufixed64x64", + "ufixed64x72", + "ufixed64x80", + "ufixed64x88", + "ufixed64x96", + "ufixed64x104", + "ufixed64x112", + "ufixed64x120", + "ufixed64x128", + "ufixed64x136", + "ufixed64x144", + "ufixed64x152", + "ufixed64x160", + "ufixed64x168", + "ufixed64x176", + "ufixed64x184", + "ufixed64x192", + "ufixed72x8", + "ufixed72x16", + "ufixed72x24", + "ufixed72x32", + "ufixed72x40", + "ufixed72x48", + "ufixed72x56", + "ufixed72x64", + "ufixed72x72", + "ufixed72x80", + "ufixed72x88", + "ufixed72x96", + "ufixed72x104", + "ufixed72x112", + "ufixed72x120", + "ufixed72x128", + "ufixed72x136", + "ufixed72x144", + "ufixed72x152", + "ufixed72x160", + "ufixed72x168", + "ufixed72x176", + "ufixed72x184", + "ufixed80x8", + "ufixed80x16", + "ufixed80x24", + "ufixed80x32", + "ufixed80x40", + "ufixed80x48", + "ufixed80x56", + "ufixed80x64", + "ufixed80x72", + "ufixed80x80", + "ufixed80x88", + "ufixed80x96", + "ufixed80x104", + "ufixed80x112", + "ufixed80x120", + "ufixed80x128", + "ufixed80x136", + "ufixed80x144", + "ufixed80x152", + "ufixed80x160", + "ufixed80x168", + "ufixed80x176", + "ufixed88x8", + "ufixed88x16", + "ufixed88x24", + "ufixed88x32", + "ufixed88x40", + "ufixed88x48", + "ufixed88x56", + "ufixed88x64", + "ufixed88x72", + "ufixed88x80", + "ufixed88x88", + "ufixed88x96", + "ufixed88x104", + "ufixed88x112", + "ufixed88x120", + "ufixed88x128", + "ufixed88x136", + "ufixed88x144", + "ufixed88x152", + "ufixed88x160", + "ufixed88x168", + "ufixed96x8", + "ufixed96x16", + "ufixed96x24", + "ufixed96x32", + "ufixed96x40", + "ufixed96x48", + "ufixed96x56", + "ufixed96x64", + "ufixed96x72", + "ufixed96x80", + "ufixed96x88", + "ufixed96x96", + "ufixed96x104", + "ufixed96x112", + "ufixed96x120", + "ufixed96x128", + "ufixed96x136", + "ufixed96x144", + "ufixed96x152", + "ufixed96x160", + "ufixed104x8", + "ufixed104x16", + "ufixed104x24", + "ufixed104x32", + "ufixed104x40", + "ufixed104x48", + "ufixed104x56", + "ufixed104x64", + "ufixed104x72", + "ufixed104x80", + "ufixed104x88", + "ufixed104x96", + "ufixed104x104", + "ufixed104x112", + "ufixed104x120", + "ufixed104x128", + "ufixed104x136", + "ufixed104x144", + "ufixed104x152", + "ufixed112x8", + "ufixed112x16", + "ufixed112x24", + "ufixed112x32", + "ufixed112x40", + "ufixed112x48", + "ufixed112x56", + "ufixed112x64", + "ufixed112x72", + "ufixed112x80", + "ufixed112x88", + "ufixed112x96", + "ufixed112x104", + "ufixed112x112", + "ufixed112x120", + "ufixed112x128", + "ufixed112x136", + "ufixed112x144", + "ufixed120x8", + "ufixed120x16", + "ufixed120x24", + "ufixed120x32", + "ufixed120x40", + "ufixed120x48", + "ufixed120x56", + "ufixed120x64", + "ufixed120x72", + "ufixed120x80", + "ufixed120x88", + "ufixed120x96", + "ufixed120x104", + "ufixed120x112", + "ufixed120x120", + "ufixed120x128", + "ufixed120x136", + "ufixed128x8", + "ufixed128x16", + "ufixed128x24", + "ufixed128x32", + "ufixed128x40", + "ufixed128x48", + "ufixed128x56", + "ufixed128x64", + "ufixed128x72", + "ufixed128x80", + "ufixed128x88", + "ufixed128x96", + "ufixed128x104", + "ufixed128x112", + "ufixed128x120", + "ufixed128x128", + "ufixed136x8", + "ufixed136x16", + "ufixed136x24", + "ufixed136x32", + "ufixed136x40", + "ufixed136x48", + "ufixed136x56", + "ufixed136x64", + "ufixed136x72", + "ufixed136x80", + "ufixed136x88", + "ufixed136x96", + "ufixed136x104", + "ufixed136x112", + "ufixed136x120", + "ufixed144x8", + "ufixed144x16", + "ufixed144x24", + "ufixed144x32", + "ufixed144x40", + "ufixed144x48", + "ufixed144x56", + "ufixed144x64", + "ufixed144x72", + "ufixed144x80", + "ufixed144x88", + "ufixed144x96", + "ufixed144x104", + "ufixed144x112", + "ufixed152x8", + "ufixed152x16", + "ufixed152x24", + "ufixed152x32", + "ufixed152x40", + "ufixed152x48", + "ufixed152x56", + "ufixed152x64", + "ufixed152x72", + "ufixed152x80", + "ufixed152x88", + "ufixed152x96", + "ufixed152x104", + "ufixed160x8", + "ufixed160x16", + "ufixed160x24", + "ufixed160x32", + "ufixed160x40", + "ufixed160x48", + "ufixed160x56", + "ufixed160x64", + "ufixed160x72", + "ufixed160x80", + "ufixed160x88", + "ufixed160x96", + "ufixed168x8", + "ufixed168x16", + "ufixed168x24", + "ufixed168x32", + "ufixed168x40", + "ufixed168x48", + "ufixed168x56", + "ufixed168x64", + "ufixed168x72", + "ufixed168x80", + "ufixed168x88", + "ufixed176x8", + "ufixed176x16", + "ufixed176x24", + "ufixed176x32", + "ufixed176x40", + "ufixed176x48", + "ufixed176x56", + "ufixed176x64", + "ufixed176x72", + "ufixed176x80", + "ufixed184x8", + "ufixed184x16", + "ufixed184x24", + "ufixed184x32", + "ufixed184x40", + "ufixed184x48", + "ufixed184x56", + "ufixed184x64", + "ufixed184x72", + "ufixed192x8", + "ufixed192x16", + "ufixed192x24", + "ufixed192x32", + "ufixed192x40", + "ufixed192x48", + "ufixed192x56", + "ufixed192x64", + "ufixed200x8", + "ufixed200x16", + "ufixed200x24", + "ufixed200x32", + "ufixed200x40", + "ufixed200x48", + "ufixed200x56", + "ufixed208x8", + "ufixed208x16", + "ufixed208x24", + "ufixed208x32", + "ufixed208x40", + "ufixed208x48", + "ufixed216x8", + "ufixed216x16", + "ufixed216x24", + "ufixed216x32", + "ufixed216x40", + "ufixed224x8", + "ufixed224x16", + "ufixed224x24", + "ufixed224x32", + "ufixed232x8", + "ufixed232x16", + "ufixed232x24", + "ufixed240x8", + "ufixed240x16", + "ufixed248x8", + "event", + "enum", + "let", + "mapping", + "private", + "public", + "external", + "inherited", + "payable", + "true", + "false", + "var", + "import", + "constant", + "if", + "else", + "for", + "else", + "for", + "while", + "do", + "break", + "continue", + "throw", + "returns", + "return", + "suicide", + "new", + "is", + "this", + "super" + ], + operators: [ + "=", + ">", + "<", + "!", + "~", + "?", + ":", + "==", + "<=", + ">=", + "!=", + "&&", + "||", + "++", + "--", + "+", + "-", + "*", + "/", + "&", + "|", + "^", + "%", + "<<", + ">>", + ">>>", + "+=", + "-=", + "*=", + "/=", + "&=", + "|=", + "^=", + "%=", + "<<=", + ">>=", + ">>>=" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/, "number.hex"], + [/0[0-7']*[0-7](@integersuffix)/, "number.octal"], + [/0[bB][0-1']*[0-1](@integersuffix)/, "number.binary"], + [/\d[\d']*\d(@integersuffix)/, "number"], + [/\d(@integersuffix)/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string"], + [/'[^\\']'/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@doccomment"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + doccomment: [ + [/[^\/*]+/, "comment.doc"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1156.414b1ab6.js b/assets/js/1156.414b1ab6.js new file mode 100644 index 00000000000..aa4f1972a47 --- /dev/null +++ b/assets/js/1156.414b1ab6.js @@ -0,0 +1,2 @@ +/*! For license information please see 1156.414b1ab6.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1156],{1156:(x,e,i)=>{i.r(e),i.d(e,{conf:()=>d,language:()=>f});var d={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},f={defaultToken:"",tokenPostfix:".sol",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["pragma","solidity","contract","library","using","struct","function","modifier","constructor","address","string","bool","Int","Uint","Byte","Fixed","Ufixed","int","int8","int16","int24","int32","int40","int48","int56","int64","int72","int80","int88","int96","int104","int112","int120","int128","int136","int144","int152","int160","int168","int176","int184","int192","int200","int208","int216","int224","int232","int240","int248","int256","uint","uint8","uint16","uint24","uint32","uint40","uint48","uint56","uint64","uint72","uint80","uint88","uint96","uint104","uint112","uint120","uint128","uint136","uint144","uint152","uint160","uint168","uint176","uint184","uint192","uint200","uint208","uint216","uint224","uint232","uint240","uint248","uint256","byte","bytes","bytes1","bytes2","bytes3","bytes4","bytes5","bytes6","bytes7","bytes8","bytes9","bytes10","bytes11","bytes12","bytes13","bytes14","bytes15","bytes16","bytes17","bytes18","bytes19","bytes20","bytes21","bytes22","bytes23","bytes24","bytes25","bytes26","bytes27","bytes28","bytes29","bytes30","bytes31","bytes32","fixed","fixed0x8","fixed0x16","fixed0x24","fixed0x32","fixed0x40","fixed0x48","fixed0x56","fixed0x64","fixed0x72","fixed0x80","fixed0x88","fixed0x96","fixed0x104","fixed0x112","fixed0x120","fixed0x128","fixed0x136","fixed0x144","fixed0x152","fixed0x160","fixed0x168","fixed0x176","fixed0x184","fixed0x192","fixed0x200","fixed0x208","fixed0x216","fixed0x224","fixed0x232","fixed0x240","fixed0x248","fixed0x256","fixed8x8","fixed8x16","fixed8x24","fixed8x32","fixed8x40","fixed8x48","fixed8x56","fixed8x64","fixed8x72","fixed8x80","fixed8x88","fixed8x96","fixed8x104","fixed8x112","fixed8x120","fixed8x128","fixed8x136","fixed8x144","fixed8x152","fixed8x160","fixed8x168","fixed8x176","fixed8x184","fixed8x192","fixed8x200","fixed8x208","fixed8x216","fixed8x224","fixed8x232","fixed8x240","fixed8x248","fixed16x8","fixed16x16","fixed16x24","fixed16x32","fixed16x40","fixed16x48","fixed16x56","fixed16x64","fixed16x72","fixed16x80","fixed16x88","fixed16x96","fixed16x104","fixed16x112","fixed16x120","fixed16x128","fixed16x136","fixed16x144","fixed16x152","fixed16x160","fixed16x168","fixed16x176","fixed16x184","fixed16x192","fixed16x200","fixed16x208","fixed16x216","fixed16x224","fixed16x232","fixed16x240","fixed24x8","fixed24x16","fixed24x24","fixed24x32","fixed24x40","fixed24x48","fixed24x56","fixed24x64","fixed24x72","fixed24x80","fixed24x88","fixed24x96","fixed24x104","fixed24x112","fixed24x120","fixed24x128","fixed24x136","fixed24x144","fixed24x152","fixed24x160","fixed24x168","fixed24x176","fixed24x184","fixed24x192","fixed24x200","fixed24x208","fixed24x216","fixed24x224","fixed24x232","fixed32x8","fixed32x16","fixed32x24","fixed32x32","fixed32x40","fixed32x48","fixed32x56","fixed32x64","fixed32x72","fixed32x80","fixed32x88","fixed32x96","fixed32x104","fixed32x112","fixed32x120","fixed32x128","fixed32x136","fixed32x144","fixed32x152","fixed32x160","fixed32x168","fixed32x176","fixed32x184","fixed32x192","fixed32x200","fixed32x208","fixed32x216","fixed32x224","fixed40x8","fixed40x16","fixed40x24","fixed40x32","fixed40x40","fixed40x48","fixed40x56","fixed40x64","fixed40x72","fixed40x80","fixed40x88","fixed40x96","fixed40x104","fixed40x112","fixed40x120","fixed40x128","fixed40x136","fixed40x144","fixed40x152","fixed40x160","fixed40x168","fixed40x176","fixed40x184","fixed40x192","fixed40x200","fixed40x208","fixed40x216","fixed48x8","fixed48x16","fixed48x24","fixed48x32","fixed48x40","fixed48x48","fixed48x56","fixed48x64","fixed48x72","fixed48x80","fixed48x88","fixed48x96","fixed48x104","fixed48x112","fixed48x120","fixed48x128","fixed48x136","fixed48x144","fixed48x152","fixed48x160","fixed48x168","fixed48x176","fixed48x184","fixed48x192","fixed48x200","fixed48x208","fixed56x8","fixed56x16","fixed56x24","fixed56x32","fixed56x40","fixed56x48","fixed56x56","fixed56x64","fixed56x72","fixed56x80","fixed56x88","fixed56x96","fixed56x104","fixed56x112","fixed56x120","fixed56x128","fixed56x136","fixed56x144","fixed56x152","fixed56x160","fixed56x168","fixed56x176","fixed56x184","fixed56x192","fixed56x200","fixed64x8","fixed64x16","fixed64x24","fixed64x32","fixed64x40","fixed64x48","fixed64x56","fixed64x64","fixed64x72","fixed64x80","fixed64x88","fixed64x96","fixed64x104","fixed64x112","fixed64x120","fixed64x128","fixed64x136","fixed64x144","fixed64x152","fixed64x160","fixed64x168","fixed64x176","fixed64x184","fixed64x192","fixed72x8","fixed72x16","fixed72x24","fixed72x32","fixed72x40","fixed72x48","fixed72x56","fixed72x64","fixed72x72","fixed72x80","fixed72x88","fixed72x96","fixed72x104","fixed72x112","fixed72x120","fixed72x128","fixed72x136","fixed72x144","fixed72x152","fixed72x160","fixed72x168","fixed72x176","fixed72x184","fixed80x8","fixed80x16","fixed80x24","fixed80x32","fixed80x40","fixed80x48","fixed80x56","fixed80x64","fixed80x72","fixed80x80","fixed80x88","fixed80x96","fixed80x104","fixed80x112","fixed80x120","fixed80x128","fixed80x136","fixed80x144","fixed80x152","fixed80x160","fixed80x168","fixed80x176","fixed88x8","fixed88x16","fixed88x24","fixed88x32","fixed88x40","fixed88x48","fixed88x56","fixed88x64","fixed88x72","fixed88x80","fixed88x88","fixed88x96","fixed88x104","fixed88x112","fixed88x120","fixed88x128","fixed88x136","fixed88x144","fixed88x152","fixed88x160","fixed88x168","fixed96x8","fixed96x16","fixed96x24","fixed96x32","fixed96x40","fixed96x48","fixed96x56","fixed96x64","fixed96x72","fixed96x80","fixed96x88","fixed96x96","fixed96x104","fixed96x112","fixed96x120","fixed96x128","fixed96x136","fixed96x144","fixed96x152","fixed96x160","fixed104x8","fixed104x16","fixed104x24","fixed104x32","fixed104x40","fixed104x48","fixed104x56","fixed104x64","fixed104x72","fixed104x80","fixed104x88","fixed104x96","fixed104x104","fixed104x112","fixed104x120","fixed104x128","fixed104x136","fixed104x144","fixed104x152","fixed112x8","fixed112x16","fixed112x24","fixed112x32","fixed112x40","fixed112x48","fixed112x56","fixed112x64","fixed112x72","fixed112x80","fixed112x88","fixed112x96","fixed112x104","fixed112x112","fixed112x120","fixed112x128","fixed112x136","fixed112x144","fixed120x8","fixed120x16","fixed120x24","fixed120x32","fixed120x40","fixed120x48","fixed120x56","fixed120x64","fixed120x72","fixed120x80","fixed120x88","fixed120x96","fixed120x104","fixed120x112","fixed120x120","fixed120x128","fixed120x136","fixed128x8","fixed128x16","fixed128x24","fixed128x32","fixed128x40","fixed128x48","fixed128x56","fixed128x64","fixed128x72","fixed128x80","fixed128x88","fixed128x96","fixed128x104","fixed128x112","fixed128x120","fixed128x128","fixed136x8","fixed136x16","fixed136x24","fixed136x32","fixed136x40","fixed136x48","fixed136x56","fixed136x64","fixed136x72","fixed136x80","fixed136x88","fixed136x96","fixed136x104","fixed136x112","fixed136x120","fixed144x8","fixed144x16","fixed144x24","fixed144x32","fixed144x40","fixed144x48","fixed144x56","fixed144x64","fixed144x72","fixed144x80","fixed144x88","fixed144x96","fixed144x104","fixed144x112","fixed152x8","fixed152x16","fixed152x24","fixed152x32","fixed152x40","fixed152x48","fixed152x56","fixed152x64","fixed152x72","fixed152x80","fixed152x88","fixed152x96","fixed152x104","fixed160x8","fixed160x16","fixed160x24","fixed160x32","fixed160x40","fixed160x48","fixed160x56","fixed160x64","fixed160x72","fixed160x80","fixed160x88","fixed160x96","fixed168x8","fixed168x16","fixed168x24","fixed168x32","fixed168x40","fixed168x48","fixed168x56","fixed168x64","fixed168x72","fixed168x80","fixed168x88","fixed176x8","fixed176x16","fixed176x24","fixed176x32","fixed176x40","fixed176x48","fixed176x56","fixed176x64","fixed176x72","fixed176x80","fixed184x8","fixed184x16","fixed184x24","fixed184x32","fixed184x40","fixed184x48","fixed184x56","fixed184x64","fixed184x72","fixed192x8","fixed192x16","fixed192x24","fixed192x32","fixed192x40","fixed192x48","fixed192x56","fixed192x64","fixed200x8","fixed200x16","fixed200x24","fixed200x32","fixed200x40","fixed200x48","fixed200x56","fixed208x8","fixed208x16","fixed208x24","fixed208x32","fixed208x40","fixed208x48","fixed216x8","fixed216x16","fixed216x24","fixed216x32","fixed216x40","fixed224x8","fixed224x16","fixed224x24","fixed224x32","fixed232x8","fixed232x16","fixed232x24","fixed240x8","fixed240x16","fixed248x8","ufixed","ufixed0x8","ufixed0x16","ufixed0x24","ufixed0x32","ufixed0x40","ufixed0x48","ufixed0x56","ufixed0x64","ufixed0x72","ufixed0x80","ufixed0x88","ufixed0x96","ufixed0x104","ufixed0x112","ufixed0x120","ufixed0x128","ufixed0x136","ufixed0x144","ufixed0x152","ufixed0x160","ufixed0x168","ufixed0x176","ufixed0x184","ufixed0x192","ufixed0x200","ufixed0x208","ufixed0x216","ufixed0x224","ufixed0x232","ufixed0x240","ufixed0x248","ufixed0x256","ufixed8x8","ufixed8x16","ufixed8x24","ufixed8x32","ufixed8x40","ufixed8x48","ufixed8x56","ufixed8x64","ufixed8x72","ufixed8x80","ufixed8x88","ufixed8x96","ufixed8x104","ufixed8x112","ufixed8x120","ufixed8x128","ufixed8x136","ufixed8x144","ufixed8x152","ufixed8x160","ufixed8x168","ufixed8x176","ufixed8x184","ufixed8x192","ufixed8x200","ufixed8x208","ufixed8x216","ufixed8x224","ufixed8x232","ufixed8x240","ufixed8x248","ufixed16x8","ufixed16x16","ufixed16x24","ufixed16x32","ufixed16x40","ufixed16x48","ufixed16x56","ufixed16x64","ufixed16x72","ufixed16x80","ufixed16x88","ufixed16x96","ufixed16x104","ufixed16x112","ufixed16x120","ufixed16x128","ufixed16x136","ufixed16x144","ufixed16x152","ufixed16x160","ufixed16x168","ufixed16x176","ufixed16x184","ufixed16x192","ufixed16x200","ufixed16x208","ufixed16x216","ufixed16x224","ufixed16x232","ufixed16x240","ufixed24x8","ufixed24x16","ufixed24x24","ufixed24x32","ufixed24x40","ufixed24x48","ufixed24x56","ufixed24x64","ufixed24x72","ufixed24x80","ufixed24x88","ufixed24x96","ufixed24x104","ufixed24x112","ufixed24x120","ufixed24x128","ufixed24x136","ufixed24x144","ufixed24x152","ufixed24x160","ufixed24x168","ufixed24x176","ufixed24x184","ufixed24x192","ufixed24x200","ufixed24x208","ufixed24x216","ufixed24x224","ufixed24x232","ufixed32x8","ufixed32x16","ufixed32x24","ufixed32x32","ufixed32x40","ufixed32x48","ufixed32x56","ufixed32x64","ufixed32x72","ufixed32x80","ufixed32x88","ufixed32x96","ufixed32x104","ufixed32x112","ufixed32x120","ufixed32x128","ufixed32x136","ufixed32x144","ufixed32x152","ufixed32x160","ufixed32x168","ufixed32x176","ufixed32x184","ufixed32x192","ufixed32x200","ufixed32x208","ufixed32x216","ufixed32x224","ufixed40x8","ufixed40x16","ufixed40x24","ufixed40x32","ufixed40x40","ufixed40x48","ufixed40x56","ufixed40x64","ufixed40x72","ufixed40x80","ufixed40x88","ufixed40x96","ufixed40x104","ufixed40x112","ufixed40x120","ufixed40x128","ufixed40x136","ufixed40x144","ufixed40x152","ufixed40x160","ufixed40x168","ufixed40x176","ufixed40x184","ufixed40x192","ufixed40x200","ufixed40x208","ufixed40x216","ufixed48x8","ufixed48x16","ufixed48x24","ufixed48x32","ufixed48x40","ufixed48x48","ufixed48x56","ufixed48x64","ufixed48x72","ufixed48x80","ufixed48x88","ufixed48x96","ufixed48x104","ufixed48x112","ufixed48x120","ufixed48x128","ufixed48x136","ufixed48x144","ufixed48x152","ufixed48x160","ufixed48x168","ufixed48x176","ufixed48x184","ufixed48x192","ufixed48x200","ufixed48x208","ufixed56x8","ufixed56x16","ufixed56x24","ufixed56x32","ufixed56x40","ufixed56x48","ufixed56x56","ufixed56x64","ufixed56x72","ufixed56x80","ufixed56x88","ufixed56x96","ufixed56x104","ufixed56x112","ufixed56x120","ufixed56x128","ufixed56x136","ufixed56x144","ufixed56x152","ufixed56x160","ufixed56x168","ufixed56x176","ufixed56x184","ufixed56x192","ufixed56x200","ufixed64x8","ufixed64x16","ufixed64x24","ufixed64x32","ufixed64x40","ufixed64x48","ufixed64x56","ufixed64x64","ufixed64x72","ufixed64x80","ufixed64x88","ufixed64x96","ufixed64x104","ufixed64x112","ufixed64x120","ufixed64x128","ufixed64x136","ufixed64x144","ufixed64x152","ufixed64x160","ufixed64x168","ufixed64x176","ufixed64x184","ufixed64x192","ufixed72x8","ufixed72x16","ufixed72x24","ufixed72x32","ufixed72x40","ufixed72x48","ufixed72x56","ufixed72x64","ufixed72x72","ufixed72x80","ufixed72x88","ufixed72x96","ufixed72x104","ufixed72x112","ufixed72x120","ufixed72x128","ufixed72x136","ufixed72x144","ufixed72x152","ufixed72x160","ufixed72x168","ufixed72x176","ufixed72x184","ufixed80x8","ufixed80x16","ufixed80x24","ufixed80x32","ufixed80x40","ufixed80x48","ufixed80x56","ufixed80x64","ufixed80x72","ufixed80x80","ufixed80x88","ufixed80x96","ufixed80x104","ufixed80x112","ufixed80x120","ufixed80x128","ufixed80x136","ufixed80x144","ufixed80x152","ufixed80x160","ufixed80x168","ufixed80x176","ufixed88x8","ufixed88x16","ufixed88x24","ufixed88x32","ufixed88x40","ufixed88x48","ufixed88x56","ufixed88x64","ufixed88x72","ufixed88x80","ufixed88x88","ufixed88x96","ufixed88x104","ufixed88x112","ufixed88x120","ufixed88x128","ufixed88x136","ufixed88x144","ufixed88x152","ufixed88x160","ufixed88x168","ufixed96x8","ufixed96x16","ufixed96x24","ufixed96x32","ufixed96x40","ufixed96x48","ufixed96x56","ufixed96x64","ufixed96x72","ufixed96x80","ufixed96x88","ufixed96x96","ufixed96x104","ufixed96x112","ufixed96x120","ufixed96x128","ufixed96x136","ufixed96x144","ufixed96x152","ufixed96x160","ufixed104x8","ufixed104x16","ufixed104x24","ufixed104x32","ufixed104x40","ufixed104x48","ufixed104x56","ufixed104x64","ufixed104x72","ufixed104x80","ufixed104x88","ufixed104x96","ufixed104x104","ufixed104x112","ufixed104x120","ufixed104x128","ufixed104x136","ufixed104x144","ufixed104x152","ufixed112x8","ufixed112x16","ufixed112x24","ufixed112x32","ufixed112x40","ufixed112x48","ufixed112x56","ufixed112x64","ufixed112x72","ufixed112x80","ufixed112x88","ufixed112x96","ufixed112x104","ufixed112x112","ufixed112x120","ufixed112x128","ufixed112x136","ufixed112x144","ufixed120x8","ufixed120x16","ufixed120x24","ufixed120x32","ufixed120x40","ufixed120x48","ufixed120x56","ufixed120x64","ufixed120x72","ufixed120x80","ufixed120x88","ufixed120x96","ufixed120x104","ufixed120x112","ufixed120x120","ufixed120x128","ufixed120x136","ufixed128x8","ufixed128x16","ufixed128x24","ufixed128x32","ufixed128x40","ufixed128x48","ufixed128x56","ufixed128x64","ufixed128x72","ufixed128x80","ufixed128x88","ufixed128x96","ufixed128x104","ufixed128x112","ufixed128x120","ufixed128x128","ufixed136x8","ufixed136x16","ufixed136x24","ufixed136x32","ufixed136x40","ufixed136x48","ufixed136x56","ufixed136x64","ufixed136x72","ufixed136x80","ufixed136x88","ufixed136x96","ufixed136x104","ufixed136x112","ufixed136x120","ufixed144x8","ufixed144x16","ufixed144x24","ufixed144x32","ufixed144x40","ufixed144x48","ufixed144x56","ufixed144x64","ufixed144x72","ufixed144x80","ufixed144x88","ufixed144x96","ufixed144x104","ufixed144x112","ufixed152x8","ufixed152x16","ufixed152x24","ufixed152x32","ufixed152x40","ufixed152x48","ufixed152x56","ufixed152x64","ufixed152x72","ufixed152x80","ufixed152x88","ufixed152x96","ufixed152x104","ufixed160x8","ufixed160x16","ufixed160x24","ufixed160x32","ufixed160x40","ufixed160x48","ufixed160x56","ufixed160x64","ufixed160x72","ufixed160x80","ufixed160x88","ufixed160x96","ufixed168x8","ufixed168x16","ufixed168x24","ufixed168x32","ufixed168x40","ufixed168x48","ufixed168x56","ufixed168x64","ufixed168x72","ufixed168x80","ufixed168x88","ufixed176x8","ufixed176x16","ufixed176x24","ufixed176x32","ufixed176x40","ufixed176x48","ufixed176x56","ufixed176x64","ufixed176x72","ufixed176x80","ufixed184x8","ufixed184x16","ufixed184x24","ufixed184x32","ufixed184x40","ufixed184x48","ufixed184x56","ufixed184x64","ufixed184x72","ufixed192x8","ufixed192x16","ufixed192x24","ufixed192x32","ufixed192x40","ufixed192x48","ufixed192x56","ufixed192x64","ufixed200x8","ufixed200x16","ufixed200x24","ufixed200x32","ufixed200x40","ufixed200x48","ufixed200x56","ufixed208x8","ufixed208x16","ufixed208x24","ufixed208x32","ufixed208x40","ufixed208x48","ufixed216x8","ufixed216x16","ufixed216x24","ufixed216x32","ufixed216x40","ufixed224x8","ufixed224x16","ufixed224x24","ufixed224x32","ufixed232x8","ufixed232x16","ufixed232x24","ufixed240x8","ufixed240x16","ufixed248x8","event","enum","let","mapping","private","public","external","inherited","payable","true","false","var","import","constant","if","else","for","else","for","while","do","break","continue","throw","returns","return","suicide","new","is","this","super"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}}}}]); \ No newline at end of file diff --git a/assets/js/1156.414b1ab6.js.LICENSE.txt b/assets/js/1156.414b1ab6.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1156.414b1ab6.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1209.76276011.js b/assets/js/1209.76276011.js new file mode 100644 index 00000000000..452b1fe994e --- /dev/null +++ b/assets/js/1209.76276011.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1209],{41209:(e,t,l)=>{l.r(t),l.d(t,{assets:()=>s,contentTitle:()=>n,default:()=>u,frontMatter:()=>a,metadata:()=>r,toc:()=>m});var i=l(87462),o=(l(67294),l(3905));l(45475);const a={title:"Sublime Text",slug:"/editors/sublime-text"},n=void 0,r={unversionedId:"editors/sublime-text",id:"editors/sublime-text",title:"Sublime Text",description:"Flow For Sublime Text 2 and 3",source:"@site/docs/editors/sublime-text.md",sourceDirName:"editors",slug:"/editors/sublime-text",permalink:"/en/docs/editors/sublime-text",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/editors/sublime-text.md",tags:[],version:"current",frontMatter:{title:"Sublime Text",slug:"/editors/sublime-text"},sidebar:"docsSidebar",previous:{title:"Visual Studio Code",permalink:"/en/docs/editors/vscode"},next:{title:"Vim",permalink:"/en/docs/editors/vim"}},s={},m=[{value:"Flow For Sublime Text 2 and 3",id:"toc-flow-for-sublime-text-2-and-3",level:3},{value:"SublimeLinter-flow",id:"toc-sublimelinter-flow",level:3}],d={toc:m};function u(e){let{components:t,...l}=e;return(0,o.mdx)("wrapper",(0,i.Z)({},d,l,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("h3",{id:"toc-flow-for-sublime-text-2-and-3"},"Flow For Sublime Text 2 and 3"),(0,o.mdx)("p",null,(0,o.mdx)("a",{parentName:"p",href:"https://www.sublimetext.com/"},"Sublime Text")," can be integrated with Flow by using ",(0,o.mdx)("a",{parentName:"p",href:"https://packagecontrol.io"},"Package Control")),(0,o.mdx)("ul",null,(0,o.mdx)("li",{parentName:"ul"},"Install the Package Control plugin if you don't have it"),(0,o.mdx)("li",{parentName:"ul"},"Press Ctrl+Shift+P to bring up the Command Palette (or use Tools > Command Palette menu)"),(0,o.mdx)("li",{parentName:"ul"},"Select Package Control: Install Package"),(0,o.mdx)("li",{parentName:"ul"},"Type 'Flow' to find 'Flow for Sublime Text 2 and 3'"),(0,o.mdx)("li",{parentName:"ul"},"Select 'Flow for Sublime Text 2 and 3' to install")),(0,o.mdx)("h3",{id:"toc-sublimelinter-flow"},"SublimeLinter-flow"),(0,o.mdx)("p",null,"You may also wish to install a popular SublimeLinter plugin for Flow like ",(0,o.mdx)("a",{parentName:"p",href:"https://packagecontrol.io/packages/SublimeLinter-flow"},"SublimeLinter-flow"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1217.6123c62f.js b/assets/js/1217.6123c62f.js new file mode 100644 index 00000000000..d48487d72fa --- /dev/null +++ b/assets/js/1217.6123c62f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1217],{91217:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>h});var s=o(87462),n=(o(67294),o(3905));const a={author:"Gabe Levi",hide_table_of_contents:!0},r=void 0,i={permalink:"/blog/2015/07/29/Version-0.14.0",source:"@site/blog/2015-07-29-Version-0.14.0.md",title:"Version-0.14.0",description:"It has come to our attention that not everyone obsessively checks GitHub for Flow releases. This came as a surprise, but we would like to support these users too. Therefore, we will start announcing each Flow release on the blog, starting with this release.",date:"2015-07-29T00:00:00.000Z",formattedDate:"July 29, 2015",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Version-0.15.0",permalink:"/blog/2015/09/10/Version-0.15.0"},nextItem:{title:"Announcing Disjoint Unions",permalink:"/blog/2015/07/03/Disjoint-Unions"}},l={authorsImageUrls:[void 0]},h=[],u={toc:h};function c(e){let{components:t,...o}=e;return(0,n.mdx)("wrapper",(0,s.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"It has come to our attention that not everyone obsessively checks GitHub for Flow releases. This came as a surprise, but we would like to support these users too. Therefore, we will start announcing each Flow release on the blog, starting with this release."),(0,n.mdx)("p",null,"So here is Flow v0.14.0! Check out the ",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/master/Changelog.md#v0140"},"Changelog")," for the canonical list of what has changed."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1259.b4096c55.js b/assets/js/1259.b4096c55.js new file mode 100644 index 00000000000..25f34de8680 --- /dev/null +++ b/assets/js/1259.b4096c55.js @@ -0,0 +1,317 @@ +"use strict"; +exports.id = 1259; +exports.ids = [1259]; +exports.modules = { + +/***/ 91259: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/redis/redis.ts +var conf = { + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".redis", + ignoreCase: true, + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + keywords: [ + "APPEND", + "AUTH", + "BGREWRITEAOF", + "BGSAVE", + "BITCOUNT", + "BITFIELD", + "BITOP", + "BITPOS", + "BLPOP", + "BRPOP", + "BRPOPLPUSH", + "CLIENT", + "KILL", + "LIST", + "GETNAME", + "PAUSE", + "REPLY", + "SETNAME", + "CLUSTER", + "ADDSLOTS", + "COUNT-FAILURE-REPORTS", + "COUNTKEYSINSLOT", + "DELSLOTS", + "FAILOVER", + "FORGET", + "GETKEYSINSLOT", + "INFO", + "KEYSLOT", + "MEET", + "NODES", + "REPLICATE", + "RESET", + "SAVECONFIG", + "SET-CONFIG-EPOCH", + "SETSLOT", + "SLAVES", + "SLOTS", + "COMMAND", + "COUNT", + "GETKEYS", + "CONFIG", + "GET", + "REWRITE", + "SET", + "RESETSTAT", + "DBSIZE", + "DEBUG", + "OBJECT", + "SEGFAULT", + "DECR", + "DECRBY", + "DEL", + "DISCARD", + "DUMP", + "ECHO", + "EVAL", + "EVALSHA", + "EXEC", + "EXISTS", + "EXPIRE", + "EXPIREAT", + "FLUSHALL", + "FLUSHDB", + "GEOADD", + "GEOHASH", + "GEOPOS", + "GEODIST", + "GEORADIUS", + "GEORADIUSBYMEMBER", + "GETBIT", + "GETRANGE", + "GETSET", + "HDEL", + "HEXISTS", + "HGET", + "HGETALL", + "HINCRBY", + "HINCRBYFLOAT", + "HKEYS", + "HLEN", + "HMGET", + "HMSET", + "HSET", + "HSETNX", + "HSTRLEN", + "HVALS", + "INCR", + "INCRBY", + "INCRBYFLOAT", + "KEYS", + "LASTSAVE", + "LINDEX", + "LINSERT", + "LLEN", + "LPOP", + "LPUSH", + "LPUSHX", + "LRANGE", + "LREM", + "LSET", + "LTRIM", + "MGET", + "MIGRATE", + "MONITOR", + "MOVE", + "MSET", + "MSETNX", + "MULTI", + "PERSIST", + "PEXPIRE", + "PEXPIREAT", + "PFADD", + "PFCOUNT", + "PFMERGE", + "PING", + "PSETEX", + "PSUBSCRIBE", + "PUBSUB", + "PTTL", + "PUBLISH", + "PUNSUBSCRIBE", + "QUIT", + "RANDOMKEY", + "READONLY", + "READWRITE", + "RENAME", + "RENAMENX", + "RESTORE", + "ROLE", + "RPOP", + "RPOPLPUSH", + "RPUSH", + "RPUSHX", + "SADD", + "SAVE", + "SCARD", + "SCRIPT", + "FLUSH", + "LOAD", + "SDIFF", + "SDIFFSTORE", + "SELECT", + "SETBIT", + "SETEX", + "SETNX", + "SETRANGE", + "SHUTDOWN", + "SINTER", + "SINTERSTORE", + "SISMEMBER", + "SLAVEOF", + "SLOWLOG", + "SMEMBERS", + "SMOVE", + "SORT", + "SPOP", + "SRANDMEMBER", + "SREM", + "STRLEN", + "SUBSCRIBE", + "SUNION", + "SUNIONSTORE", + "SWAPDB", + "SYNC", + "TIME", + "TOUCH", + "TTL", + "TYPE", + "UNSUBSCRIBE", + "UNLINK", + "UNWATCH", + "WAIT", + "WATCH", + "ZADD", + "ZCARD", + "ZCOUNT", + "ZINCRBY", + "ZINTERSTORE", + "ZLEXCOUNT", + "ZRANGE", + "ZRANGEBYLEX", + "ZREVRANGEBYLEX", + "ZRANGEBYSCORE", + "ZRANK", + "ZREM", + "ZREMRANGEBYLEX", + "ZREMRANGEBYRANK", + "ZREMRANGEBYSCORE", + "ZREVRANGE", + "ZREVRANGEBYSCORE", + "ZREVRANK", + "ZSCORE", + "ZUNIONSTORE", + "SCAN", + "SSCAN", + "HSCAN", + "ZSCAN" + ], + operators: [], + builtinFunctions: [], + builtinVariables: [], + pseudoColumns: [], + tokenizer: { + root: [ + { include: "@whitespace" }, + { include: "@pseudoColumns" }, + { include: "@numbers" }, + { include: "@strings" }, + { include: "@scopes" }, + [/[;,.]/, "delimiter"], + [/[()]/, "@brackets"], + [ + /[\w@#$]+/, + { + cases: { + "@keywords": "keyword", + "@operators": "operator", + "@builtinVariables": "predefined", + "@builtinFunctions": "predefined", + "@default": "identifier" + } + } + ], + [/[<>=!%&+\-*/|~^]/, "operator"] + ], + whitespace: [[/\s+/, "white"]], + pseudoColumns: [ + [ + /[$][A-Za-z_][\w@#$]*/, + { + cases: { + "@pseudoColumns": "predefined", + "@default": "identifier" + } + } + ] + ], + numbers: [ + [/0[xX][0-9a-fA-F]*/, "number"], + [/[$][+-]*\d*(\.\d*)?/, "number"], + [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, "number"] + ], + strings: [ + [/'/, { token: "string", next: "@string" }], + [/"/, { token: "string.double", next: "@stringDouble" }] + ], + string: [ + [/[^']+/, "string"], + [/''/, "string"], + [/'/, { token: "string", next: "@pop" }] + ], + stringDouble: [ + [/[^"]+/, "string.double"], + [/""/, "string.double"], + [/"/, { token: "string.double", next: "@pop" }] + ], + scopes: [] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1259.ec012273.js b/assets/js/1259.ec012273.js new file mode 100644 index 00000000000..c9e50680768 --- /dev/null +++ b/assets/js/1259.ec012273.js @@ -0,0 +1,2 @@ +/*! For license information please see 1259.ec012273.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1259],{91259:(E,S,e)=>{e.r(S),e.d(S,{conf:()=>T,language:()=>R});var T={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},R={defaultToken:"",tokenPostfix:".redis",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["APPEND","AUTH","BGREWRITEAOF","BGSAVE","BITCOUNT","BITFIELD","BITOP","BITPOS","BLPOP","BRPOP","BRPOPLPUSH","CLIENT","KILL","LIST","GETNAME","PAUSE","REPLY","SETNAME","CLUSTER","ADDSLOTS","COUNT-FAILURE-REPORTS","COUNTKEYSINSLOT","DELSLOTS","FAILOVER","FORGET","GETKEYSINSLOT","INFO","KEYSLOT","MEET","NODES","REPLICATE","RESET","SAVECONFIG","SET-CONFIG-EPOCH","SETSLOT","SLAVES","SLOTS","COMMAND","COUNT","GETKEYS","CONFIG","GET","REWRITE","SET","RESETSTAT","DBSIZE","DEBUG","OBJECT","SEGFAULT","DECR","DECRBY","DEL","DISCARD","DUMP","ECHO","EVAL","EVALSHA","EXEC","EXISTS","EXPIRE","EXPIREAT","FLUSHALL","FLUSHDB","GEOADD","GEOHASH","GEOPOS","GEODIST","GEORADIUS","GEORADIUSBYMEMBER","GETBIT","GETRANGE","GETSET","HDEL","HEXISTS","HGET","HGETALL","HINCRBY","HINCRBYFLOAT","HKEYS","HLEN","HMGET","HMSET","HSET","HSETNX","HSTRLEN","HVALS","INCR","INCRBY","INCRBYFLOAT","KEYS","LASTSAVE","LINDEX","LINSERT","LLEN","LPOP","LPUSH","LPUSHX","LRANGE","LREM","LSET","LTRIM","MGET","MIGRATE","MONITOR","MOVE","MSET","MSETNX","MULTI","PERSIST","PEXPIRE","PEXPIREAT","PFADD","PFCOUNT","PFMERGE","PING","PSETEX","PSUBSCRIBE","PUBSUB","PTTL","PUBLISH","PUNSUBSCRIBE","QUIT","RANDOMKEY","READONLY","READWRITE","RENAME","RENAMENX","RESTORE","ROLE","RPOP","RPOPLPUSH","RPUSH","RPUSHX","SADD","SAVE","SCARD","SCRIPT","FLUSH","LOAD","SDIFF","SDIFFSTORE","SELECT","SETBIT","SETEX","SETNX","SETRANGE","SHUTDOWN","SINTER","SINTERSTORE","SISMEMBER","SLAVEOF","SLOWLOG","SMEMBERS","SMOVE","SORT","SPOP","SRANDMEMBER","SREM","STRLEN","SUBSCRIBE","SUNION","SUNIONSTORE","SWAPDB","SYNC","TIME","TOUCH","TTL","TYPE","UNSUBSCRIBE","UNLINK","UNWATCH","WAIT","WATCH","ZADD","ZCARD","ZCOUNT","ZINCRBY","ZINTERSTORE","ZLEXCOUNT","ZRANGE","ZRANGEBYLEX","ZREVRANGEBYLEX","ZRANGEBYSCORE","ZRANK","ZREM","ZREMRANGEBYLEX","ZREMRANGEBYRANK","ZREMRANGEBYSCORE","ZREVRANGE","ZREVRANGEBYSCORE","ZREVRANK","ZSCORE","ZUNIONSTORE","SCAN","SSCAN","HSCAN","ZSCAN"],operators:[],builtinFunctions:[],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}],[/"/,{token:"string.double",next:"@stringDouble"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],stringDouble:[[/[^"]+/,"string.double"],[/""/,"string.double"],[/"/,{token:"string.double",next:"@pop"}]],scopes:[]}}}}]); \ No newline at end of file diff --git a/assets/js/1259.ec012273.js.LICENSE.txt b/assets/js/1259.ec012273.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1259.ec012273.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1313.d10cc958.js b/assets/js/1313.d10cc958.js new file mode 100644 index 00000000000..86823395d13 --- /dev/null +++ b/assets/js/1313.d10cc958.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1313],{61313:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>d});var n=o(87462),i=(o(67294),o(3905));const a={title:"Improved handling of the empty object in Flow","short-title":"Improvements to empty object",author:"George Zahariev","medium-link":"https://medium.com/flow-type/improved-handling-of-the-empty-object-in-flow-ead91887e40c"},r=void 0,s={permalink:"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow",source:"@site/blog/2022-10-20-Improved-handling-of-the-empty-object-in-Flow.md",title:"Improved handling of the empty object in Flow",description:"Flow handled the empty object literal {} in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior.",date:"2022-10-20T00:00:00.000Z",formattedDate:"October 20, 2022",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Improved handling of the empty object in Flow","short-title":"Improvements to empty object",author:"George Zahariev","medium-link":"https://medium.com/flow-type/improved-handling-of-the-empty-object-in-flow-ead91887e40c"},prevItem:{title:"Local Type Inference for Flow",permalink:"/blog/2023/01/17/Local-Type-Inference"},nextItem:{title:"Requiring More Annotations to Functions and Classes in Flow",permalink:"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes"}},l={authorsImageUrls:[void 0]},d=[],m={toc:d};function p(e){let{components:t,...o}=e;return(0,i.mdx)("wrapper",(0,n.Z)({},m,o,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Flow handled the empty object literal {} in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1345.d7ea927e.js b/assets/js/1345.d7ea927e.js new file mode 100644 index 00000000000..4d890fcb340 --- /dev/null +++ b/assets/js/1345.d7ea927e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1345],{28592:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>m,contentTitle:()=>r,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var o=a(87462),n=(a(67294),a(3905));const s={author:"Jeff Morrison",hide_table_of_contents:!0},r=void 0,i={permalink:"/blog/2015/09/22/Version-0.16.0",source:"@site/blog/2015-09-22-Version-0.16.0.md",title:"Version-0.16.0",description:"On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again @samwgoldman)!",date:"2015-09-22T00:00:00.000Z",formattedDate:"September 22, 2015",tags:[],hasTruncateMarker:!1,authors:[{name:"Jeff Morrison"}],frontMatter:{author:"Jeff Morrison",hide_table_of_contents:!0},prevItem:{title:"Version-0.17.0",permalink:"/blog/2015/10/07/Version-0.17.0"},nextItem:{title:"Version-0.15.0",permalink:"/blog/2015/09/10/Version-0.15.0"}},m={authorsImageUrls:[void 0]},l=[],p={toc:l};function d(e){let{components:t,...a}=e;return(0,n.mdx)("wrapper",(0,o.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again ",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/samwgoldman"},"@samwgoldman"),")!"),(0,n.mdx)("p",null,"As always, the ",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/master/Changelog.md#v0160"},"Changelog")," is best at summing up the big changes."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1448.3246558a.js b/assets/js/1448.3246558a.js new file mode 100644 index 00000000000..173c6a2d8dc --- /dev/null +++ b/assets/js/1448.3246558a.js @@ -0,0 +1,2 @@ +/*! For license information please see 1448.3246558a.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1448],{11448:(e,o,t)=>{t.r(o),t.d(o,{conf:()=>n,language:()=>s});var n={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'},{open:"(*",close:"*)"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'},{open:"(*",close:"*)"}]},s={defaultToken:"",tokenPostfix:".cameligo",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["abs","assert","block","Bytes","case","Crypto","Current","else","failwith","false","for","fun","if","in","let","let%entry","let%init","List","list","Map","map","match","match%nat","mod","not","operation","Operation","of","record","Set","set","sender","skip","source","String","then","to","true","type","with"],typeKeywords:["int","unit","string","tz","nat","bool"],operators:["=",">","<","<=",">=","<>",":",":=","and","mod","or","+","-","*","/","@","&","^","%","->","<-","&&","||"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\(\*]+/,"comment"],[/\*\)/,"comment","@pop"],[/\(\*/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/1448.3246558a.js.LICENSE.txt b/assets/js/1448.3246558a.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1448.3246558a.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1448.ee78432f.js b/assets/js/1448.ee78432f.js new file mode 100644 index 00000000000..5318123bb36 --- /dev/null +++ b/assets/js/1448.ee78432f.js @@ -0,0 +1,187 @@ +"use strict"; +exports.id = 1448; +exports.ids = [1448]; +exports.modules = { + +/***/ 11448: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/cameligo/cameligo.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["(*", "*)"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["<", ">"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" }, + { open: '"', close: '"' }, + { open: "(*", close: "*)" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" }, + { open: '"', close: '"' }, + { open: "(*", close: "*)" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".cameligo", + ignoreCase: true, + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + keywords: [ + "abs", + "assert", + "block", + "Bytes", + "case", + "Crypto", + "Current", + "else", + "failwith", + "false", + "for", + "fun", + "if", + "in", + "let", + "let%entry", + "let%init", + "List", + "list", + "Map", + "map", + "match", + "match%nat", + "mod", + "not", + "operation", + "Operation", + "of", + "record", + "Set", + "set", + "sender", + "skip", + "source", + "String", + "then", + "to", + "true", + "type", + "with" + ], + typeKeywords: ["int", "unit", "string", "tz", "nat", "bool"], + operators: [ + "=", + ">", + "<", + "<=", + ">=", + "<>", + ":", + ":=", + "and", + "mod", + "or", + "+", + "-", + "*", + "/", + "@", + "&", + "^", + "%", + "->", + "<-", + "&&", + "||" + ], + symbols: /[=><:@\^&|+\-*\/\^%]+/, + tokenizer: { + root: [ + [ + /[a-zA-Z_][\w]*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "identifier" + } + } + ], + { include: "@whitespace" }, + [/[{}()\[\]]/, "@brackets"], + [/[<>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/\$[0-9a-fA-F]{1,16}/, "number.hex"], + [/\d+/, "number"], + [/[;,.]/, "delimiter"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/'/, "string", "@string"], + [/'[^\\']'/, "string"], + [/'/, "string.invalid"], + [/\#\d+/, "string"] + ], + comment: [ + [/[^\(\*]+/, "comment"], + [/\*\)/, "comment", "@pop"], + [/\(\*/, "comment"] + ], + string: [ + [/[^\\']+/, "string"], + [/\\./, "string.escape.invalid"], + [/'/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/\(\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1466.b69bd1b6.js b/assets/js/1466.b69bd1b6.js new file mode 100644 index 00000000000..da2a9b5de70 --- /dev/null +++ b/assets/js/1466.b69bd1b6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1466],{11466:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>r,toc:()=>m});var t=a(87462),i=(a(67294),a(3905));const l={title:"Strict Checking of Function Call Arity","short-title":"Strict Function Call Arity",author:"Gabe Levi",hide_table_of_contents:!0},o=void 0,r={permalink:"/blog/2017/05/07/Strict-Function-Call-Arity",source:"@site/blog/2017-05-07-Strict-Function-Call-Arity.md",title:"Strict Checking of Function Call Arity",description:"One of Flow's original goals was to be able to understand idiomatic JavaScript.",date:"2017-05-07T00:00:00.000Z",formattedDate:"May 7, 2017",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Strict Checking of Function Call Arity","short-title":"Strict Function Call Arity",author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Opaque Type Aliases",permalink:"/blog/2017/07/27/Opaque-Types"},nextItem:{title:"Introducing Flow-Typed",permalink:"/blog/2016/10/13/Flow-Typed"}},s={authorsImageUrls:[void 0]},m=[{value:"What is arity?",id:"what-is-arity",level:3},{value:"Motivation",id:"motivation",level:3},{value:"Why JavaScript allows extraneous arguments",id:"why-javascript-allows-extraneous-arguments",level:3},{value:"Callbacks",id:"callbacks",level:4},{value:"Stubbing",id:"stubbing",level:4},{value:"Variadic functions using arguments",id:"variadic-functions-using-arguments",level:4},{value:"Changes to Flow",id:"changes-to-flow",level:3},{value:"Calling a function",id:"calling-a-function",level:4},{value:"Function subtyping",id:"function-subtyping",level:4},{value:"Stubbing and variadic functions",id:"stubbing-and-variadic-functions",level:4},{value:"Rollout plan",id:"rollout-plan",level:3},{value:"Why turn this on over two releases?",id:"why-turn-this-on-over-two-releases",level:4},{value:"Why not keep the experimental.strict_call_arity flag?",id:"why-not-keep-the-experimentalstrict_call_arity-flag",level:4},{value:"What do you think?",id:"what-do-you-think",level:3}],u={toc:m};function d(e){let{components:n,...a}=e;return(0,i.mdx)("wrapper",(0,t.Z)({},u,a,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"One of Flow's original goals was to be able to understand idiomatic JavaScript.\nIn JavaScript, you can call a function with more arguments than the function\nexpects. Therefore, Flow never complained about calling a function with\nextraneous arguments."),(0,i.mdx)("p",null,"We are changing this behavior."),(0,i.mdx)("h3",{id:"what-is-arity"},"What is arity?"),(0,i.mdx)("p",null,"A function's ",(0,i.mdx)("em",{parentName:"p"},"arity")," is the number of arguments it expects. Since some functions\nhave optional parameters and some use rest parameters, we can define the\n",(0,i.mdx)("em",{parentName:"p"},"minimum arity")," as the smallest number of arguments it expects and the ",(0,i.mdx)("em",{parentName:"p"},"maximum\narity")," as the largest number of arguments it expects."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"function no_args() {} // arity of 0\nfunction two_args(a, b) {} // arity of 2\nfunction optional_args(a, b?) {} // min arity of 1, max arity of 2\nfunction many_args(a, ...rest) {} // min arity of 1, no max arity\n")),(0,i.mdx)("h3",{id:"motivation"},"Motivation"),(0,i.mdx)("p",null,"Consider the following code:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"function add(a, b) { return a + b; }\nconst sum = add(1, 1, 1, 1);\n")),(0,i.mdx)("p",null,"The author apparently thought the ",(0,i.mdx)("inlineCode",{parentName:"p"},"add()")," function adds up all its\narguments, and that ",(0,i.mdx)("inlineCode",{parentName:"p"},"sum")," will have the value ",(0,i.mdx)("inlineCode",{parentName:"p"},"4"),". However, only the first two\narguments are summed, and ",(0,i.mdx)("inlineCode",{parentName:"p"},"sum")," actually will have the value ",(0,i.mdx)("inlineCode",{parentName:"p"},"2"),". This is\nobviously a bug, so why doesn't JavaScript or Flow complain?"),(0,i.mdx)("p",null,"And while the error in the above example is easy to see, in real code it's often\na lot harder to notice. For example, what is the value of ",(0,i.mdx)("inlineCode",{parentName:"p"},"total")," here:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},'const total = parseInt("10", 2) + parseFloat("10.1", 2);\n')),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},'"10"')," in base 2 is ",(0,i.mdx)("inlineCode",{parentName:"p"},"2")," in decimal and ",(0,i.mdx)("inlineCode",{parentName:"p"},'"10.1"')," in base 2 is ",(0,i.mdx)("inlineCode",{parentName:"p"},"2.5")," in decimal.\nSo the author probably thought that ",(0,i.mdx)("inlineCode",{parentName:"p"},"total")," would be ",(0,i.mdx)("inlineCode",{parentName:"p"},"4.5"),". However, the correct\nanswer is ",(0,i.mdx)("inlineCode",{parentName:"p"},"12.1"),". ",(0,i.mdx)("inlineCode",{parentName:"p"},'parseInt("10", 2)')," does evaluates to ",(0,i.mdx)("inlineCode",{parentName:"p"},"2"),", as expected.\nHowever, ",(0,i.mdx)("inlineCode",{parentName:"p"},'parseFloat("10.1", 2)')," evaluates to ",(0,i.mdx)("inlineCode",{parentName:"p"},"10.1"),". ",(0,i.mdx)("inlineCode",{parentName:"p"},"parseFloat()")," only takes\na single argument. The second argument is ignored!"),(0,i.mdx)("h3",{id:"why-javascript-allows-extraneous-arguments"},"Why JavaScript allows extraneous arguments"),(0,i.mdx)("p",null,"At this point, you might feel like this is just an example of JavaScript making\nterrible life decisions. However, this behavior is very convenient in a bunch of\nsituations!"),(0,i.mdx)("h4",{id:"callbacks"},"Callbacks"),(0,i.mdx)("p",null,"If you couldn't call a function with more arguments than it handles, then\nmapping over an array would look like"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"const doubled_arr = [1, 2, 3].map((element, index, arr) => element * 2);\n")),(0,i.mdx)("p",null,"When you call ",(0,i.mdx)("inlineCode",{parentName:"p"},"Array.prototype.map"),", you pass in a callback. For each element in\nthe array, that callback is invoked and passed 3 arguments:"),(0,i.mdx)("ol",null,(0,i.mdx)("li",{parentName:"ol"},"The element"),(0,i.mdx)("li",{parentName:"ol"},"The index of the element"),(0,i.mdx)("li",{parentName:"ol"},"The array over which you're mapping")),(0,i.mdx)("p",null,"However, your callback often only needs to reference the first argument: the\nelement. It's really nice that you can write"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"const doubled_arr = [1, 2, 3].map(element => element * 2);\n")),(0,i.mdx)("h4",{id:"stubbing"},"Stubbing"),(0,i.mdx)("p",null,"Sometimes I come across code like this"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},'let log = () => {};\nif (DEBUG) {\n log = (message) => console.log(message);\n}\nlog("Hello world");\n')),(0,i.mdx)("p",null,"The idea is that in a development environment, calling ",(0,i.mdx)("inlineCode",{parentName:"p"},"log()")," will output a\nmessage, but in production it does nothing. Since you can call a\nfunction with more arguments than it expects, it is easy to stub out ",(0,i.mdx)("inlineCode",{parentName:"p"},"log()")," in\nproduction."),(0,i.mdx)("h4",{id:"variadic-functions-using-arguments"},"Variadic functions using ",(0,i.mdx)("inlineCode",{parentName:"h4"},"arguments")),(0,i.mdx)("p",null,"A variadic function is a function that can take an indefinite number of\narguments. The old-school way to write variadic functions in JavaScript is by\nusing ",(0,i.mdx)("inlineCode",{parentName:"p"},"arguments"),". For example"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"function sum_all() {\n let ret = 0;\n for (let i = 0; i < arguments.length; i++) { ret += arguments[i]; }\n return ret;\n}\nconst total = sum_all(1, 2, 3); // returns 6\n")),(0,i.mdx)("p",null,"For all intents and purposes, ",(0,i.mdx)("inlineCode",{parentName:"p"},"sum_all")," appears like it takes no arguments. So\neven though it appears to have an arity of 0, it is convenient that we can call\nit with more arguments."),(0,i.mdx)("h3",{id:"changes-to-flow"},"Changes to Flow"),(0,i.mdx)("p",null,"We think we have found a compromise which catches the motivating bugs without\nbreaking the convenience of JavaScript."),(0,i.mdx)("h4",{id:"calling-a-function"},"Calling a function"),(0,i.mdx)("p",null,"If a function has a maximum arity of N, then Flow will start complaining if you\ncall it with more than N arguments."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},'test:1\n 1: const num = parseFloat("10.5", 2);\n ^ unused function argument\n 19: declare function parseFloat(string: mixed): number;\n ^^^^^^^^^^^^^^^^^^^^^^^ function type expects no more than 1 argument. See lib: /core.js:19\n')),(0,i.mdx)("h4",{id:"function-subtyping"},"Function subtyping"),(0,i.mdx)("p",null,"Flow will not change its function subtyping behavior. A function\nwith a smaller maximum arity is still a subtype of a function with a larger\nmaximum arity. This allows callbacks to still work as before."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"class Array {\n ...\n map(callbackfn: (value: T, index: number, array: Array) => U, thisArg?: any): Array;\n ...\n}\nconst arr = [1,2,3].map(() => 4); // No error, evaluates to [4,4,4]\n")),(0,i.mdx)("p",null,"In this example, ",(0,i.mdx)("inlineCode",{parentName:"p"},"() => number")," is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"(number, number, Array) => number"),"."),(0,i.mdx)("h4",{id:"stubbing-and-variadic-functions"},"Stubbing and variadic functions"),(0,i.mdx)("p",null,"This will, unfortunately, cause Flow to complain about stubs and variadic\nfunctions which are written using ",(0,i.mdx)("inlineCode",{parentName:"p"},"arguments"),". However, you can fix these by\nusing rest parameters"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"let log (...rest) => {};\n\nfunction sum_all(...rest) {\n let ret = 0;\n for (let i = 0; i < rest.length; i++) { ret += rest[i]; }\n return ret;\n}\n")),(0,i.mdx)("h3",{id:"rollout-plan"},"Rollout plan"),(0,i.mdx)("p",null,"Flow v0.46.0 will ship with strict function call arity turned off by default. It\ncan be enabled via your ",(0,i.mdx)("inlineCode",{parentName:"p"},".flowconfig")," with the flag"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-ini"},"experimental.strict_call_arity=true\n")),(0,i.mdx)("p",null,"Flow v0.47.0 will ship with strict function call arity turned on and the\n",(0,i.mdx)("inlineCode",{parentName:"p"},"experimental.strict_call_arity")," flag will be removed."),(0,i.mdx)("h4",{id:"why-turn-this-on-over-two-releases"},"Why turn this on over two releases?"),(0,i.mdx)("p",null,"This decouples the switch to strict checking of function call arity from the\nrelease."),(0,i.mdx)("h4",{id:"why-not-keep-the-experimentalstrict_call_arity-flag"},"Why not keep the ",(0,i.mdx)("inlineCode",{parentName:"h4"},"experimental.strict_call_arity")," flag?"),(0,i.mdx)("p",null,"This is a pretty core change. If we kept both behaviors, we'd have to test that\neverything works with and without this change. As we add more flags, the number\nof combinations grows exponentially, and Flow's behavior gets harder to reason\nabout. For this reason, we're choosing only one behavior: strict checking of\nfunction call arity."),(0,i.mdx)("h3",{id:"what-do-you-think"},"What do you think?"),(0,i.mdx)("p",null,"This change was motivated by feedback from Flow users. We really appreciate\nall the members of our community who take the time to share their feedback with\nus. This feedback is invaluable and helps us make Flow better, so please keep\nit coming!"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1471.0d410d50.js b/assets/js/1471.0d410d50.js new file mode 100644 index 00000000000..0012bbf1683 --- /dev/null +++ b/assets/js/1471.0d410d50.js @@ -0,0 +1,2 @@ +/*! For license information please see 1471.0d410d50.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1471],{31471:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>s,language:()=>o});var s={comments:{lineComment:"#"}},o={defaultToken:"keyword",ignoreCase:!0,tokenPostfix:".azcli",str:/[^#\s]/,tokenizer:{root:[{include:"@comment"},[/\s-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}],[/^-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}]],type:[{include:"@comment"},[/-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":"key.identifier"}}],[/@str+\s*/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}]],comment:[[/#.*$/,{cases:{"@eos":{token:"comment",next:"@popall"}}}]]}}}}]); \ No newline at end of file diff --git a/assets/js/1471.0d410d50.js.LICENSE.txt b/assets/js/1471.0d410d50.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1471.0d410d50.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1471.f4935752.js b/assets/js/1471.f4935752.js new file mode 100644 index 00000000000..47806db1008 --- /dev/null +++ b/assets/js/1471.f4935752.js @@ -0,0 +1,93 @@ +"use strict"; +exports.id = 1471; +exports.ids = [1471]; +exports.modules = { + +/***/ 31471: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/azcli/azcli.ts +var conf = { + comments: { + lineComment: "#" + } +}; +var language = { + defaultToken: "keyword", + ignoreCase: true, + tokenPostfix: ".azcli", + str: /[^#\s]/, + tokenizer: { + root: [ + { include: "@comment" }, + [ + /\s-+@str*\s*/, + { + cases: { + "@eos": { token: "key.identifier", next: "@popall" }, + "@default": { token: "key.identifier", next: "@type" } + } + } + ], + [ + /^-+@str*\s*/, + { + cases: { + "@eos": { token: "key.identifier", next: "@popall" }, + "@default": { token: "key.identifier", next: "@type" } + } + } + ] + ], + type: [ + { include: "@comment" }, + [ + /-+@str*\s*/, + { + cases: { + "@eos": { token: "key.identifier", next: "@popall" }, + "@default": "key.identifier" + } + } + ], + [ + /@str+\s*/, + { + cases: { + "@eos": { token: "string", next: "@popall" }, + "@default": "string" + } + } + ] + ], + comment: [ + [ + /#.*$/, + { + cases: { + "@eos": { token: "comment", next: "@popall" } + } + } + ] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1540.23466b6d.js b/assets/js/1540.23466b6d.js new file mode 100644 index 00000000000..1fad28b12e3 --- /dev/null +++ b/assets/js/1540.23466b6d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1540],{31540:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>m});var a=t(87462),i=(t(67294),t(3905));t(45475);const r={title:"Mixed",slug:"/types/mixed"},l=void 0,s={unversionedId:"types/mixed",id:"types/mixed",title:"Mixed",description:"mixed is the supertype of all types. All values are mixed.",source:"@site/docs/types/mixed.md",sourceDirName:"types",slug:"/types/mixed",permalink:"/en/docs/types/mixed",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/mixed.md",tags:[],version:"current",frontMatter:{title:"Mixed",slug:"/types/mixed"},sidebar:"docsSidebar",previous:{title:"Literal Types",permalink:"/en/docs/types/literals"},next:{title:"Empty",permalink:"/en/docs/types/empty"}},o={},m=[{value:"Anything goes in, Nothing comes out",id:"toc-anything-goes-in-nothing-comes-out",level:2},{value:"Versus any",id:"versus-any",level:2},{value:"Versus empty",id:"versus-empty",level:2}],p={toc:m};function d(e){let{components:n,...t}=e;return(0,i.mdx)("wrapper",(0,a.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"mixed")," is the ",(0,i.mdx)("a",{parentName:"p",href:"../../lang/type-hierarchy"},"supertype of all types"),". All values are ",(0,i.mdx)("inlineCode",{parentName:"p"},"mixed"),".\nHowever, this means that very few operations are permitted on it, without refining to some more specific type.\nThat's because the valid operations on ",(0,i.mdx)("inlineCode",{parentName:"p"},"mixed")," must be valid for all types."),(0,i.mdx)("p",null,"In general, programs have several different categories of types:"),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},"A single type:")),(0,i.mdx)("p",null,"Here the input value can only be a ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function square(n: number) {\n return n * n;\n}\n")),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},"A group of different possible types:")),(0,i.mdx)("p",null,"Here the input value could be either a ",(0,i.mdx)("inlineCode",{parentName:"p"},"string")," or a ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function stringifyBasicValue(value: string | number) {\n return '' + value;\n}\n")),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},"A type based on another type:")),(0,i.mdx)("p",null,"Here the return type will be the same as the type of whatever value is passed\ninto the function."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function identity(value: T): T {\n return value;\n}\n")),(0,i.mdx)("p",null,"These three are the most common categories of types. They will make up the\nmajority of the types you'll be writing."),(0,i.mdx)("p",null,"However, there is also a fourth category."),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},"An arbitrary type that could be anything:")),(0,i.mdx)("p",null,"Here the passed in value is an unknown type, it could be any type and the\nfunction would still work."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function getTypeOf(value: mixed): string {\n return typeof value;\n}\n")),(0,i.mdx)("p",null,"These unknown types are less common, but are still useful at times."),(0,i.mdx)("p",null,"You should represent these values with ",(0,i.mdx)("inlineCode",{parentName:"p"},"mixed"),"."),(0,i.mdx)("h2",{id:"toc-anything-goes-in-nothing-comes-out"},"Anything goes in, Nothing comes out"),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"mixed")," will accept any type of value. Strings, numbers, objects, functions\u2013\nanything will work."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function stringify(value: mixed) {\n // ...\n}\n\nstringify("foo");\nstringify(3.14);\nstringify(null);\nstringify({});\n')),(0,i.mdx)("p",null,"When you try to use a value of a ",(0,i.mdx)("inlineCode",{parentName:"p"},"mixed")," type you must first figure out what\nthe actual type is or you'll end up with an error."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":10,"endLine":2,"endColumn":19,"description":"Cannot use operator `+` with operands string [1] and mixed [2] [unsafe-addition]"}]','[{"startLine":2,"startColumn":10,"endLine":2,"endColumn":19,"description":"Cannot':!0,use:!0,operator:!0,"`+`":!0,with:!0,operands:!0,string:!0,"[1]":!0,and:!0,mixed:!0,"[2]":!0,'[unsafe-addition]"}]':!0},'function stringify(value: mixed) {\n return "" + value; // Error!\n}\n\nstringify("foo");\n')),(0,i.mdx)("p",null,"Instead you must ensure the value is a certain type by ",(0,i.mdx)("a",{parentName:"p",href:"../../lang/refinements/"},"refining")," it."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function stringify(value: mixed) {\n if (typeof value === \'string\') {\n return "" + value; // Works!\n } else {\n return "";\n }\n}\n\nstringify("foo");\n')),(0,i.mdx)("p",null,"Because of the ",(0,i.mdx)("inlineCode",{parentName:"p"},"typeof value === 'string'")," check, Flow knows the ",(0,i.mdx)("inlineCode",{parentName:"p"},"value")," can\nonly be a ",(0,i.mdx)("inlineCode",{parentName:"p"},"string")," inside of the ",(0,i.mdx)("inlineCode",{parentName:"p"},"if")," statement. This is known as a\n",(0,i.mdx)("a",{parentName:"p",href:"../../lang/refinements/"},"refinement"),"."),(0,i.mdx)("h2",{id:"versus-any"},"Versus ",(0,i.mdx)("inlineCode",{parentName:"h2"},"any")),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"mixed")," is safe, while ",(0,i.mdx)("a",{parentName:"p",href:"../any"},(0,i.mdx)("inlineCode",{parentName:"a"},"any"))," is not. Both accept all values, but ",(0,i.mdx)("inlineCode",{parentName:"p"},"any")," also unsafely allows all operations."),(0,i.mdx)("h2",{id:"versus-empty"},"Versus ",(0,i.mdx)("inlineCode",{parentName:"h2"},"empty")),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"mixed")," is the opposite of ",(0,i.mdx)("a",{parentName:"p",href:"../empty"},(0,i.mdx)("inlineCode",{parentName:"a"},"empty")),":"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},"Everything is a ",(0,i.mdx)("inlineCode",{parentName:"li"},"mixed"),", but few operations are permitted on it without first refining to a specific type. It is the supertype of all types."),(0,i.mdx)("li",{parentName:"ul"},"Nothing is ",(0,i.mdx)("inlineCode",{parentName:"li"},"empty"),", but any operation is permitted on it. It is the subtype of all types.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1661.2e609aed.js b/assets/js/1661.2e609aed.js new file mode 100644 index 00000000000..e61aa39219a --- /dev/null +++ b/assets/js/1661.2e609aed.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1661],{91262:(e,l,n)=>{n.d(l,{Z:()=>r});var t=n(67294),o=n(72389);function r(e){let{children:l,fallback:n}=e;return(0,o.default)()?t.createElement(t.Fragment,null,null==l?void 0:l()):null!=n?n:null}},51661:(e,l,n)=>{n.r(l),n.d(l,{default:()=>i});var t=n(67294),o=n(91262),r=n(52263),s=n(89007);n(51854);const a=t.lazy((()=>Promise.all([n.e(532),n.e(8002),n.e(5316)]).then(n.bind(n,75316))));function i(){const e=(0,r.default)(),{siteConfig:l={}}=e;return t.createElement(s.Z,{title:"Try Flow: the Flow Playground",description:l.description,noFooter:!0},t.createElement(o.Z,null,(()=>t.createElement(t.Suspense,{fallback:t.createElement("div",null,"Loading...")},t.createElement(a,{defaultFlowVersion:l.customFields.flowVersion,flowVersions:l.customFields.allFlowVersions})))))}}}]); \ No newline at end of file diff --git a/assets/js/168.4084be54.js b/assets/js/168.4084be54.js new file mode 100644 index 00000000000..a35869ed7f5 --- /dev/null +++ b/assets/js/168.4084be54.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[168],{10168:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var o=n(87462),a=(n(67294),n(3905));const l={title:"Local Type Inference for Flow","short-title":"Local Type Inference",author:"Sam Zhou","medium-link":"https://medium.com/flow-type/local-type-inference-for-flow-aaa65d071347"},r=void 0,i={permalink:"/blog/2023/01/17/Local-Type-Inference",source:"@site/blog/2023-01-17-Local-Type-Inference.md",title:"Local Type Inference for Flow",description:"Local Type Inference makes Flow\u2019s inference behavior more reliable and predictable, by modestly increasing Flow\u2019s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases.",date:"2023-01-17T00:00:00.000Z",formattedDate:"January 17, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"Sam Zhou"}],frontMatter:{title:"Local Type Inference for Flow","short-title":"Local Type Inference",author:"Sam Zhou","medium-link":"https://medium.com/flow-type/local-type-inference-for-flow-aaa65d071347"},prevItem:{title:"Exact object types by default, by default",permalink:"/blog/2023/02/16/Exact-object-types-by-default-by-default"},nextItem:{title:"Improved handling of the empty object in Flow",permalink:"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow"}},c={authorsImageUrls:[void 0]},s=[],d={toc:s};function p(e){let{components:t,...n}=e;return(0,a.mdx)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Local Type Inference makes Flow\u2019s inference behavior more reliable and predictable, by modestly increasing Flow\u2019s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1706.b21a58bf.js b/assets/js/1706.b21a58bf.js new file mode 100644 index 00000000000..bf97dd4953e --- /dev/null +++ b/assets/js/1706.b21a58bf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1706],{1706:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>c,toc:()=>i});var a=o(87462),n=(o(67294),o(3905));const r={title:"On the Roadmap: Exact Objects by Default","short-title":"Exact Objects by Default",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/on-the-roadmap-exact-objects-by-default-16b72933c5cf"},s=void 0,c={permalink:"/blog/2018/10/18/Exact-Objects-By-Default",source:"@site/blog/2018-10-18-Exact-Objects-By-Default.md",title:"On the Roadmap: Exact Objects by Default",description:"We are changing object types to be exact by default. We'll be releasing codemods to help you upgrade.",date:"2018-10-18T00:00:00.000Z",formattedDate:"October 18, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"On the Roadmap: Exact Objects by Default","short-title":"Exact Objects by Default",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/on-the-roadmap-exact-objects-by-default-16b72933c5cf"},prevItem:{title:"Asking for Required Annotations",permalink:"/blog/2018/10/29/Asking-for-Required-Annotations"},nextItem:{title:"New Flow Errors on Unknown Property Access in Conditionals",permalink:"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals"}},l={authorsImageUrls:[void 0]},i=[],d={toc:i};function u(e){let{components:t,...o}=e;return(0,n.mdx)("wrapper",(0,a.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"We are changing object types to be exact by default. We'll be releasing codemods to help you upgrade."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/180.49ffb9d3.js b/assets/js/180.49ffb9d3.js new file mode 100644 index 00000000000..88b8f8f01e4 --- /dev/null +++ b/assets/js/180.49ffb9d3.js @@ -0,0 +1,372 @@ +"use strict"; +exports.id = 180; +exports.ids = [180]; +exports.modules = { + +/***/ 90180: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/scala/scala.ts +var conf = { + wordPattern: /(unary_[@~!#%^&*()\-=+\\|:<>\/?]+)|([a-zA-Z_$][\w$]*?_=)|(`[^`]+`)|([a-zA-Z_$][\w$]*)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + folding: { + markers: { + start: new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))") + } + } +}; +var language = { + tokenPostfix: ".scala", + keywords: [ + "asInstanceOf", + "catch", + "class", + "classOf", + "def", + "do", + "else", + "extends", + "finally", + "for", + "foreach", + "forSome", + "if", + "import", + "isInstanceOf", + "macro", + "match", + "new", + "object", + "package", + "return", + "throw", + "trait", + "try", + "type", + "until", + "val", + "var", + "while", + "with", + "yield", + "given", + "enum", + "then" + ], + softKeywords: ["as", "export", "extension", "end", "derives", "on"], + constants: ["true", "false", "null", "this", "super"], + modifiers: [ + "abstract", + "final", + "implicit", + "lazy", + "override", + "private", + "protected", + "sealed" + ], + softModifiers: ["inline", "opaque", "open", "transparent", "using"], + name: /(?:[a-z_$][\w$]*|`[^`]+`)/, + type: /(?:[A-Z][\w$]*)/, + symbols: /[=>))/, ["@brackets", "white", "variable"]], + [ + /@name/, + { + cases: { + "@keywords": "keyword", + "@softKeywords": "keyword", + "@modifiers": "keyword.modifier", + "@softModifiers": "keyword.modifier", + "@constants": { + token: "constant", + next: "@allowMethod" + }, + "@default": { + token: "identifier", + next: "@allowMethod" + } + } + } + ], + [/@type/, "type", "@allowMethod"], + { include: "@whitespace" }, + [/@[a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*/, "annotation"], + [/[{(]/, "@brackets"], + [/[})]/, "@brackets", "@allowMethod"], + [/\[/, "operator.square"], + [/](?!\s*(?:va[rl]|def|type)\b)/, "operator.square", "@allowMethod"], + [/]/, "operator.square"], + [/([=-]>|<-|>:|<:|:>|<%)(?=[\s\w()[\]{},\."'`])/, "keyword"], + [/@symbols/, "operator"], + [/[;,\.]/, "delimiter"], + [/'[a-zA-Z$][\w$]*(?!')/, "attribute.name"], + [/'[^\\']'/, "string", "@allowMethod"], + [/(')(@escapes)(')/, ["string", "string.escape", { token: "string", next: "@allowMethod" }]], + [/'/, "string.invalid"] + ], + import: [ + [/;/, "delimiter", "@pop"], + [/^|$/, "", "@pop"], + [/[ \t]+/, "white"], + [/[\n\r]+/, "white", "@pop"], + [/\/\*/, "comment", "@comment"], + [/@name|@type/, "type"], + [/[(){}]/, "@brackets"], + [/[[\]]/, "operator.square"], + [/[\.,]/, "delimiter"] + ], + allowMethod: [ + [/^|$/, "", "@pop"], + [/[ \t]+/, "white"], + [/[\n\r]+/, "white", "@pop"], + [/\/\*/, "comment", "@comment"], + [/(?==>[\s\w([{])/, "keyword", "@pop"], + [ + /(@name|@symbols)(?=[ \t]*[[({"'`]|[ \t]+(?:[+-]?\.?\d|\w))/, + { + cases: { + "@keywords": { token: "keyword", next: "@pop" }, + "->|<-|>:|<:|<%": { token: "keyword", next: "@pop" }, + "@default": { token: "@rematch", next: "@pop" } + } + } + ], + ["", "", "@pop"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\/\*/, "comment", "@push"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + case: [ + [/\b_\*/, "key"], + [/\b(_|true|false|null|this|super)\b/, "keyword", "@allowMethod"], + [/\bif\b|=>/, "keyword", "@pop"], + [/`[^`]+`/, "identifier", "@allowMethod"], + [/@name/, "variable", "@allowMethod"], + [/:::?|\||@(?![a-z_$])/, "keyword"], + { include: "@root" } + ], + vardef: [ + [/\b_\*/, "key"], + [/\b(_|true|false|null|this|super)\b/, "keyword"], + [/@name/, "variable"], + [/:::?|\||@(?![a-z_$])/, "keyword"], + [/=|:(?!:)/, "operator", "@pop"], + [/$/, "white", "@pop"], + { include: "@root" } + ], + string: [ + [/[^\\"\n\r]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [ + /"/, + { + token: "string.quote", + bracket: "@close", + switchTo: "@allowMethod" + } + ] + ], + stringt: [ + [/[^\\"\n\r]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"(?=""")/, "string"], + [ + /"""/, + { + token: "string.quote", + bracket: "@close", + switchTo: "@allowMethod" + } + ], + [/"/, "string"] + ], + fstring: [ + [/@escapes/, "string.escape"], + [ + /"/, + { + token: "string.quote", + bracket: "@close", + switchTo: "@allowMethod" + } + ], + [/\$\$/, "string"], + [/(\$)([a-z_]\w*)/, ["operator", "identifier"]], + [/\$\{/, "operator", "@interp"], + [/%%/, "string"], + [ + /(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/, + ["metatag", "keyword.modifier", "number", "metatag"] + ], + [/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/, ["metatag", "number", "metatag"]], + [/(%)([\-#+ 0,(])(@fstring_conv)/, ["metatag", "keyword.modifier", "metatag"]], + [/(%)(@fstring_conv)/, ["metatag", "metatag"]], + [/./, "string"] + ], + fstringt: [ + [/@escapes/, "string.escape"], + [/"(?=""")/, "string"], + [ + /"""/, + { + token: "string.quote", + bracket: "@close", + switchTo: "@allowMethod" + } + ], + [/\$\$/, "string"], + [/(\$)([a-z_]\w*)/, ["operator", "identifier"]], + [/\$\{/, "operator", "@interp"], + [/%%/, "string"], + [ + /(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/, + ["metatag", "keyword.modifier", "number", "metatag"] + ], + [/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/, ["metatag", "number", "metatag"]], + [/(%)([\-#+ 0,(])(@fstring_conv)/, ["metatag", "keyword.modifier", "metatag"]], + [/(%)(@fstring_conv)/, ["metatag", "metatag"]], + [/./, "string"] + ], + sstring: [ + [/@escapes/, "string.escape"], + [ + /"/, + { + token: "string.quote", + bracket: "@close", + switchTo: "@allowMethod" + } + ], + [/\$\$/, "string"], + [/(\$)([a-z_]\w*)/, ["operator", "identifier"]], + [/\$\{/, "operator", "@interp"], + [/./, "string"] + ], + sstringt: [ + [/@escapes/, "string.escape"], + [/"(?=""")/, "string"], + [ + /"""/, + { + token: "string.quote", + bracket: "@close", + switchTo: "@allowMethod" + } + ], + [/\$\$/, "string"], + [/(\$)([a-z_]\w*)/, ["operator", "identifier"]], + [/\$\{/, "operator", "@interp"], + [/./, "string"] + ], + interp: [[/{/, "operator", "@push"], [/}/, "operator", "@pop"], { include: "@root" }], + rawstring: [ + [/[^"]/, "string"], + [ + /"/, + { + token: "string.quote", + bracket: "@close", + switchTo: "@allowMethod" + } + ] + ], + rawstringt: [ + [/[^"]/, "string"], + [/"(?=""")/, "string"], + [ + /"""/, + { + token: "string.quote", + bracket: "@close", + switchTo: "@allowMethod" + } + ], + [/"/, "string"] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/180.f35ada22.js b/assets/js/180.f35ada22.js new file mode 100644 index 00000000000..cabd6979175 --- /dev/null +++ b/assets/js/180.f35ada22.js @@ -0,0 +1,2 @@ +/*! For license information please see 180.f35ada22.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[180],{90180:(e,t,o)=>{o.r(t),o.d(t,{conf:()=>r,language:()=>n});var r={wordPattern:/(unary_[@~!#%^&*()\-=+\\|:<>\/?]+)|([a-zA-Z_$][\w$]*?_=)|(`[^`]+`)|([a-zA-Z_$][\w$]*)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},n={tokenPostfix:".scala",keywords:["asInstanceOf","catch","class","classOf","def","do","else","extends","finally","for","foreach","forSome","if","import","isInstanceOf","macro","match","new","object","package","return","throw","trait","try","type","until","val","var","while","with","yield","given","enum","then"],softKeywords:["as","export","extension","end","derives","on"],constants:["true","false","null","this","super"],modifiers:["abstract","final","implicit","lazy","override","private","protected","sealed"],softModifiers:["inline","opaque","open","transparent","using"],name:/(?:[a-z_$][\w$]*|`[^`]+`)/,type:/(?:[A-Z][\w$]*)/,symbols:/[=>))/,["@brackets","white","variable"]],[/@name/,{cases:{"@keywords":"keyword","@softKeywords":"keyword","@modifiers":"keyword.modifier","@softModifiers":"keyword.modifier","@constants":{token:"constant",next:"@allowMethod"},"@default":{token:"identifier",next:"@allowMethod"}}}],[/@type/,"type","@allowMethod"],{include:"@whitespace"},[/@[a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*/,"annotation"],[/[{(]/,"@brackets"],[/[})]/,"@brackets","@allowMethod"],[/\[/,"operator.square"],[/](?!\s*(?:va[rl]|def|type)\b)/,"operator.square","@allowMethod"],[/]/,"operator.square"],[/([=-]>|<-|>:|<:|:>|<%)(?=[\s\w()[\]{},\."'`])/,"keyword"],[/@symbols/,"operator"],[/[;,\.]/,"delimiter"],[/'[a-zA-Z$][\w$]*(?!')/,"attribute.name"],[/'[^\\']'/,"string","@allowMethod"],[/(')(@escapes)(')/,["string","string.escape",{token:"string",next:"@allowMethod"}]],[/'/,"string.invalid"]],import:[[/;/,"delimiter","@pop"],[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/@name|@type/,"type"],[/[(){}]/,"@brackets"],[/[[\]]/,"operator.square"],[/[\.,]/,"delimiter"]],allowMethod:[[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/(?==>[\s\w([{])/,"keyword","@pop"],[/(@name|@symbols)(?=[ \t]*[[({"'`]|[ \t]+(?:[+-]?\.?\d|\w))/,{cases:{"@keywords":{token:"keyword",next:"@pop"},"->|<-|>:|<:|<%":{token:"keyword",next:"@pop"},"@default":{token:"@rematch",next:"@pop"}}}],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],case:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword","@allowMethod"],[/\bif\b|=>/,"keyword","@pop"],[/`[^`]+`/,"identifier","@allowMethod"],[/@name/,"variable","@allowMethod"],[/:::?|\||@(?![a-z_$])/,"keyword"],{include:"@root"}],vardef:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword"],[/@name/,"variable"],[/:::?|\||@(?![a-z_$])/,"keyword"],[/=|:(?!:)/,"operator","@pop"],[/$/,"white","@pop"],{include:"@root"}],string:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],stringt:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],fstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([\-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],fstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([\-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],sstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],sstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],interp:[[/{/,"operator","@push"],[/}/,"operator","@pop"],{include:"@root"}],rawstring:[[/[^"]/,"string"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],rawstringt:[[/[^"]/,"string"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/180.f35ada22.js.LICENSE.txt b/assets/js/180.f35ada22.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/180.f35ada22.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1848.6e365ebf.js b/assets/js/1848.6e365ebf.js new file mode 100644 index 00000000000..39c3fba0a54 --- /dev/null +++ b/assets/js/1848.6e365ebf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1848],{1848:(o,e,n)=>{n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var t=n(87462),r=(n(67294),n(3905));const s={title:"New Flow Errors on Unknown Property Access in Conditionals","short-title":"Unknown Props in Conditionals",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/new-flow-errors-on-unknown-property-access-in-conditionals-461da66ea10"},i=void 0,a={permalink:"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals",source:"@site/blog/2018-03-16-New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals.md",title:"New Flow Errors on Unknown Property Access in Conditionals",description:"TL;DR: Starting in 0.68.0, Flow will now error when you access unknown",date:"2018-03-16T00:00:00.000Z",formattedDate:"March 16, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{title:"New Flow Errors on Unknown Property Access in Conditionals","short-title":"Unknown Props in Conditionals",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/new-flow-errors-on-unknown-property-access-in-conditionals-461da66ea10"},prevItem:{title:"On the Roadmap: Exact Objects by Default",permalink:"/blog/2018/10/18/Exact-Objects-By-Default"},nextItem:{title:"Better Flow Error Messages for the JavaScript Ecosystem",permalink:"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem"}},l={authorsImageUrls:[void 0]},c=[],w={toc:c};function p(o){let{components:e,...n}=o;return(0,r.mdx)("wrapper",(0,t.Z)({},w,n,{components:e,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"TL;DR: Starting in 0.68.0, Flow will now error when you access unknown\nproperties in conditionals."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1886.3930b16b.js b/assets/js/1886.3930b16b.js new file mode 100644 index 00000000000..def6e8a80cd --- /dev/null +++ b/assets/js/1886.3930b16b.js @@ -0,0 +1,575 @@ +"use strict"; +exports.id = 1886; +exports.ids = [1886]; +exports.modules = { + +/***/ 81886: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/systemverilog/systemverilog.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["begin", "end"], + ["case", "endcase"], + ["casex", "endcase"], + ["casez", "endcase"], + ["checker", "endchecker"], + ["class", "endclass"], + ["clocking", "endclocking"], + ["config", "endconfig"], + ["function", "endfunction"], + ["generate", "endgenerate"], + ["group", "endgroup"], + ["interface", "endinterface"], + ["module", "endmodule"], + ["package", "endpackage"], + ["primitive", "endprimitive"], + ["program", "endprogram"], + ["property", "endproperty"], + ["specify", "endspecify"], + ["sequence", "endsequence"], + ["table", "endtable"], + ["task", "endtask"] + ], + autoClosingPairs: [ + { open: "[", close: "]" }, + { open: "{", close: "}" }, + { open: "(", close: ")" }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + folding: { + offSide: false, + markers: { + start: new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:begin|case(x|z)?|class|clocking|config|covergroup|function|generate|interface|module|package|primitive|property|program|sequence|specify|table|task)\\b"), + end: new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:end|endcase|endclass|endclocking|endconfig|endgroup|endfunction|endgenerate|endinterface|endmodule|endpackage|endprimitive|endproperty|endprogram|endsequence|endspecify|endtable|endtask)\\b") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".sv", + brackets: [ + { token: "delimiter.curly", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" }, + { token: "delimiter.angle", open: "<", close: ">" } + ], + keywords: [ + "accept_on", + "alias", + "always", + "always_comb", + "always_ff", + "always_latch", + "and", + "assert", + "assign", + "assume", + "automatic", + "before", + "begin", + "bind", + "bins", + "binsof", + "bit", + "break", + "buf", + "bufif0", + "bufif1", + "byte", + "case", + "casex", + "casez", + "cell", + "chandle", + "checker", + "class", + "clocking", + "cmos", + "config", + "const", + "constraint", + "context", + "continue", + "cover", + "covergroup", + "coverpoint", + "cross", + "deassign", + "default", + "defparam", + "design", + "disable", + "dist", + "do", + "edge", + "else", + "end", + "endcase", + "endchecker", + "endclass", + "endclocking", + "endconfig", + "endfunction", + "endgenerate", + "endgroup", + "endinterface", + "endmodule", + "endpackage", + "endprimitive", + "endprogram", + "endproperty", + "endspecify", + "endsequence", + "endtable", + "endtask", + "enum", + "event", + "eventually", + "expect", + "export", + "extends", + "extern", + "final", + "first_match", + "for", + "force", + "foreach", + "forever", + "fork", + "forkjoin", + "function", + "generate", + "genvar", + "global", + "highz0", + "highz1", + "if", + "iff", + "ifnone", + "ignore_bins", + "illegal_bins", + "implements", + "implies", + "import", + "incdir", + "include", + "initial", + "inout", + "input", + "inside", + "instance", + "int", + "integer", + "interconnect", + "interface", + "intersect", + "join", + "join_any", + "join_none", + "large", + "let", + "liblist", + "library", + "local", + "localparam", + "logic", + "longint", + "macromodule", + "matches", + "medium", + "modport", + "module", + "nand", + "negedge", + "nettype", + "new", + "nexttime", + "nmos", + "nor", + "noshowcancelled", + "not", + "notif0", + "notif1", + "null", + "or", + "output", + "package", + "packed", + "parameter", + "pmos", + "posedge", + "primitive", + "priority", + "program", + "property", + "protected", + "pull0", + "pull1", + "pulldown", + "pullup", + "pulsestyle_ondetect", + "pulsestyle_onevent", + "pure", + "rand", + "randc", + "randcase", + "randsequence", + "rcmos", + "real", + "realtime", + "ref", + "reg", + "reject_on", + "release", + "repeat", + "restrict", + "return", + "rnmos", + "rpmos", + "rtran", + "rtranif0", + "rtranif1", + "s_always", + "s_eventually", + "s_nexttime", + "s_until", + "s_until_with", + "scalared", + "sequence", + "shortint", + "shortreal", + "showcancelled", + "signed", + "small", + "soft", + "solve", + "specify", + "specparam", + "static", + "string", + "strong", + "strong0", + "strong1", + "struct", + "super", + "supply0", + "supply1", + "sync_accept_on", + "sync_reject_on", + "table", + "tagged", + "task", + "this", + "throughout", + "time", + "timeprecision", + "timeunit", + "tran", + "tranif0", + "tranif1", + "tri", + "tri0", + "tri1", + "triand", + "trior", + "trireg", + "type", + "typedef", + "union", + "unique", + "unique0", + "unsigned", + "until", + "until_with", + "untyped", + "use", + "uwire", + "var", + "vectored", + "virtual", + "void", + "wait", + "wait_order", + "wand", + "weak", + "weak0", + "weak1", + "while", + "wildcard", + "wire", + "with", + "within", + "wor", + "xnor", + "xor" + ], + builtin_gates: [ + "and", + "nand", + "nor", + "or", + "xor", + "xnor", + "buf", + "not", + "bufif0", + "bufif1", + "notif1", + "notif0", + "cmos", + "nmos", + "pmos", + "rcmos", + "rnmos", + "rpmos", + "tran", + "tranif1", + "tranif0", + "rtran", + "rtranif1", + "rtranif0" + ], + operators: [ + "=", + "+=", + "-=", + "*=", + "/=", + "%=", + "&=", + "|=", + "^=", + "<<=", + ">>+", + "<<<=", + ">>>=", + "?", + ":", + "+", + "-", + "!", + "~", + "&", + "~&", + "|", + "~|", + "^", + "~^", + "^~", + "+", + "-", + "*", + "/", + "%", + "==", + "!=", + "===", + "!==", + "==?", + "!=?", + "&&", + "||", + "**", + "<", + "<=", + ">", + ">=", + "&", + "|", + "^", + ">>", + "<<", + ">>>", + "<<<", + "++", + "--", + "->", + "<->", + "inside", + "dist", + "::", + "+:", + "-:", + "*>", + "&&&", + "|->", + "|=>", + "#=#" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + { include: "@numbers" }, + [/[;,.]/, "delimiter"], + { include: "@strings" } + ], + identifier_or_keyword: [ + [ + /@identifier/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "identifier" + } + } + ] + ], + numbers: [ + [/\d+?[\d_]*(?:\.[\d_]+)?[eE][\-+]?\d+/, "number.float"], + [/\d+?[\d_]*\.[\d_]+(?:\s*@timeunits)?/, "number.float"], + [/(?:\d+?[\d_]*\s*)?'[sS]?[dD]\s*[0-9xXzZ?]+?[0-9xXzZ?_]*/, "number"], + [/(?:\d+?[\d_]*\s*)?'[sS]?[bB]\s*[0-1xXzZ?]+?[0-1xXzZ?_]*/, "number.binary"], + [/(?:\d+?[\d_]*\s*)?'[sS]?[oO]\s*[0-7xXzZ?]+?[0-7xXzZ?_]*/, "number.octal"], + [/(?:\d+?[\d_]*\s*)?'[sS]?[hH]\s*[0-9a-fA-FxXzZ?]+?[0-9a-fA-FxXzZ?_]*/, "number.hex"], + [/1step/, "number"], + [/[\dxXzZ]+?[\dxXzZ_]*(?:\s*@timeunits)?/, "number"], + [/'[01xXzZ]+/, "number"] + ], + module_instance: [ + { include: "@whitespace" }, + [/(#?)(\()/, ["", { token: "@brackets", next: "@port_connection" }]], + [/@identifier\s*[;={}\[\],]/, { token: "@rematch", next: "@pop" }], + [/@symbols|[;={}\[\],]/, { token: "@rematch", next: "@pop" }], + [/@identifier/, "type"], + [/;/, "delimiter", "@pop"] + ], + port_connection: [ + { include: "@identifier_or_keyword" }, + { include: "@whitespace" }, + [/@systemcall/, "variable.predefined"], + { include: "@numbers" }, + { include: "@strings" }, + [/[,]/, "delimiter"], + [/\(/, "@brackets", "@port_connection"], + [/\)/, "@brackets", "@pop"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + strings: [ + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ], + include: [ + [ + /(\s*)(")([\w*\/*]*)(.\w*)(")/, + [ + "", + "string.include.identifier", + "string.include.identifier", + "string.include.identifier", + { token: "string.include.identifier", next: "@pop" } + ] + ], + [ + /(\s*)(<)([\w*\/*]*)(.\w*)(>)/, + [ + "", + "string.include.identifier", + "string.include.identifier", + "string.include.identifier", + { token: "string.include.identifier", next: "@pop" } + ] + ] + ], + table: [ + { include: "@whitespace" }, + [/[()]/, "@brackets"], + [/[:;]/, "delimiter"], + [/[01\-*?xXbBrRfFpPnN]/, "variable.predefined"], + ["endtable", "keyword.endtable", "@pop"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1886.622d7f2a.js b/assets/js/1886.622d7f2a.js new file mode 100644 index 00000000000..2f90ca8010f --- /dev/null +++ b/assets/js/1886.622d7f2a.js @@ -0,0 +1,2 @@ +/*! For license information please see 1886.622d7f2a.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1886],{81886:(e,n,i)=>{i.r(n),i.d(n,{conf:()=>t,language:()=>r});var t={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["begin","end"],["case","endcase"],["casex","endcase"],["casez","endcase"],["checker","endchecker"],["class","endclass"],["clocking","endclocking"],["config","endconfig"],["function","endfunction"],["generate","endgenerate"],["group","endgroup"],["interface","endinterface"],["module","endmodule"],["package","endpackage"],["primitive","endprimitive"],["program","endprogram"],["property","endproperty"],["specify","endspecify"],["sequence","endsequence"],["table","endtable"],["task","endtask"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!1,markers:{start:new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:begin|case(x|z)?|class|clocking|config|covergroup|function|generate|interface|module|package|primitive|property|program|sequence|specify|table|task)\\b"),end:new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:end|endcase|endclass|endclocking|endconfig|endgroup|endfunction|endgenerate|endinterface|endmodule|endpackage|endprimitive|endproperty|endprogram|endsequence|endspecify|endtable|endtask)\\b")}}},r={defaultToken:"",tokenPostfix:".sv",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["accept_on","alias","always","always_comb","always_ff","always_latch","and","assert","assign","assume","automatic","before","begin","bind","bins","binsof","bit","break","buf","bufif0","bufif1","byte","case","casex","casez","cell","chandle","checker","class","clocking","cmos","config","const","constraint","context","continue","cover","covergroup","coverpoint","cross","deassign","default","defparam","design","disable","dist","do","edge","else","end","endcase","endchecker","endclass","endclocking","endconfig","endfunction","endgenerate","endgroup","endinterface","endmodule","endpackage","endprimitive","endprogram","endproperty","endspecify","endsequence","endtable","endtask","enum","event","eventually","expect","export","extends","extern","final","first_match","for","force","foreach","forever","fork","forkjoin","function","generate","genvar","global","highz0","highz1","if","iff","ifnone","ignore_bins","illegal_bins","implements","implies","import","incdir","include","initial","inout","input","inside","instance","int","integer","interconnect","interface","intersect","join","join_any","join_none","large","let","liblist","library","local","localparam","logic","longint","macromodule","matches","medium","modport","module","nand","negedge","nettype","new","nexttime","nmos","nor","noshowcancelled","not","notif0","notif1","null","or","output","package","packed","parameter","pmos","posedge","primitive","priority","program","property","protected","pull0","pull1","pulldown","pullup","pulsestyle_ondetect","pulsestyle_onevent","pure","rand","randc","randcase","randsequence","rcmos","real","realtime","ref","reg","reject_on","release","repeat","restrict","return","rnmos","rpmos","rtran","rtranif0","rtranif1","s_always","s_eventually","s_nexttime","s_until","s_until_with","scalared","sequence","shortint","shortreal","showcancelled","signed","small","soft","solve","specify","specparam","static","string","strong","strong0","strong1","struct","super","supply0","supply1","sync_accept_on","sync_reject_on","table","tagged","task","this","throughout","time","timeprecision","timeunit","tran","tranif0","tranif1","tri","tri0","tri1","triand","trior","trireg","type","typedef","union","unique","unique0","unsigned","until","until_with","untyped","use","uwire","var","vectored","virtual","void","wait","wait_order","wand","weak","weak0","weak1","while","wildcard","wire","with","within","wor","xnor","xor"],builtin_gates:["and","nand","nor","or","xor","xnor","buf","not","bufif0","bufif1","notif1","notif0","cmos","nmos","pmos","rcmos","rnmos","rpmos","tran","tranif1","tranif0","rtran","rtranif1","rtranif0"],operators:["=","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>+","<<<=",">>>=","?",":","+","-","!","~","&","~&","|","~|","^","~^","^~","+","-","*","/","%","==","!=","===","!==","==?","!=?","&&","||","**","<","<=",">",">=","&","|","^",">>","<<",">>>","<<<","++","--","->","<->","inside","dist","::","+:","-:","*>","&&&","|->","|=>","#=#"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],{include:"@numbers"},[/[;,.]/,"delimiter"],{include:"@strings"}],identifier_or_keyword:[[/@identifier/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}]],numbers:[[/\d+?[\d_]*(?:\.[\d_]+)?[eE][\-+]?\d+/,"number.float"],[/\d+?[\d_]*\.[\d_]+(?:\s*@timeunits)?/,"number.float"],[/(?:\d+?[\d_]*\s*)?'[sS]?[dD]\s*[0-9xXzZ?]+?[0-9xXzZ?_]*/,"number"],[/(?:\d+?[\d_]*\s*)?'[sS]?[bB]\s*[0-1xXzZ?]+?[0-1xXzZ?_]*/,"number.binary"],[/(?:\d+?[\d_]*\s*)?'[sS]?[oO]\s*[0-7xXzZ?]+?[0-7xXzZ?_]*/,"number.octal"],[/(?:\d+?[\d_]*\s*)?'[sS]?[hH]\s*[0-9a-fA-FxXzZ?]+?[0-9a-fA-FxXzZ?_]*/,"number.hex"],[/1step/,"number"],[/[\dxXzZ]+?[\dxXzZ_]*(?:\s*@timeunits)?/,"number"],[/'[01xXzZ]+/,"number"]],module_instance:[{include:"@whitespace"},[/(#?)(\()/,["",{token:"@brackets",next:"@port_connection"}]],[/@identifier\s*[;={}\[\],]/,{token:"@rematch",next:"@pop"}],[/@symbols|[;={}\[\],]/,{token:"@rematch",next:"@pop"}],[/@identifier/,"type"],[/;/,"delimiter","@pop"]],port_connection:[{include:"@identifier_or_keyword"},{include:"@whitespace"},[/@systemcall/,"variable.predefined"],{include:"@numbers"},{include:"@strings"},[/[,]/,"delimiter"],[/\(/,"@brackets","@port_connection"],[/\)/,"@brackets","@pop"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],strings:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],include:[[/(\s*)(")([\w*\/*]*)(.\w*)(")/,["","string.include.identifier","string.include.identifier","string.include.identifier",{token:"string.include.identifier",next:"@pop"}]],[/(\s*)(<)([\w*\/*]*)(.\w*)(>)/,["","string.include.identifier","string.include.identifier","string.include.identifier",{token:"string.include.identifier",next:"@pop"}]]],table:[{include:"@whitespace"},[/[()]/,"@brackets"],[/[:;]/,"delimiter"],[/[01\-*?xXbBrRfFpPnN]/,"variable.predefined"],["endtable","keyword.endtable","@pop"]]}}}}]); \ No newline at end of file diff --git a/assets/js/1886.622d7f2a.js.LICENSE.txt b/assets/js/1886.622d7f2a.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1886.622d7f2a.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1908.2c382ba8.js b/assets/js/1908.2c382ba8.js new file mode 100644 index 00000000000..99b9040bada --- /dev/null +++ b/assets/js/1908.2c382ba8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1908],{11908:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>n,metadata:()=>i,toc:()=>h});var r=o(87462),a=(o(67294),o(3905));const n={author:"Gabe Levi",hide_table_of_contents:!0},s=void 0,i={permalink:"/blog/2015/10/07/Version-0.17.0",source:"@site/blog/2015-10-07-Version-0.17.0.md",title:"Version-0.17.0",description:"Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:",date:"2015-10-07T00:00:00.000Z",formattedDate:"October 7, 2015",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Typing Generators with Flow",permalink:"/blog/2015/11/09/Generators"},nextItem:{title:"Version-0.16.0",permalink:"/blog/2015/09/22/Version-0.16.0"}},l={authorsImageUrls:[void 0]},h=[],d={toc:h};function u(e){let{components:t,...o}=e;return(0,a.mdx)("wrapper",(0,r.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:"),(0,a.mdx)("p",null,"![New error format]","({{ site.baseurl }}/static/new_error_format_v0_17_0.png)"),(0,a.mdx)("p",null,"This should hopefully help our command line users understand many errors without having to refer to their source code. We'll keep iterating on this format, so tell us what you like and what you don't like! Thanks to ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/frantic"},"@frantic")," for building this feature!"),(0,a.mdx)("p",null,"There are a whole bunch of other features and fixes in this release! Head on over to our ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/releases/tag/v0.17.0"},"Release")," for the full list!"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1930.0b17c84b.js b/assets/js/1930.0b17c84b.js new file mode 100644 index 00000000000..d15e2996c5b --- /dev/null +++ b/assets/js/1930.0b17c84b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1930],{71930:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>p,default:()=>c,frontMatter:()=>m,metadata:()=>r,toc:()=>i});var a=t(87462),o=(t(67294),t(3905));t(45475);const m={title:"Type Reference",slug:"/react/types"},p=void 0,r={unversionedId:"react/types",id:"react/types",title:"Type Reference",description:"React exports a handful of utility types that may be useful to you when typing",source:"@site/docs/react/types.md",sourceDirName:"react",slug:"/react/types",permalink:"/en/docs/react/types",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/react/types.md",tags:[],version:"current",frontMatter:{title:"Type Reference",slug:"/react/types"},sidebar:"docsSidebar",previous:{title:"Higher-order Components",permalink:"/en/docs/react/hoc"},next:{title:"Flow Enums",permalink:"/en/docs/enums"}},l={},i=[{value:"React.Node",id:"toc-react-node",level:2},{value:"React.MixedElement",id:"toc-react-mixedelement",level:2},{value:"React.Element<typeof Component>",id:"toc-react-element",level:2},{value:"React.ChildrenArray<T>",id:"toc-react-childrenarray",level:2},{value:"React.AbstractComponent<Config, Instance>",id:"toc-react-abstractcomponent",level:2},{value:"React.ComponentType<Config>",id:"toc-react-componenttype",level:2},{value:"React.ElementType",id:"toc-react-elementtype",level:2},{value:"React.Key",id:"toc-react-key",level:2},{value:"React.Ref<typeof Component>",id:"toc-react-ref",level:2},{value:"React.ElementConfig<typeof Component>",id:"toc-react-elementconfig",level:2},{value:"React.ElementProps<typeof Component>",id:"toc-react-elementprops",level:2},{value:"React.ElementRef<typeof Component>",id:"toc-react-elementref",level:2},{value:"React.Config<Props, DefaultProps>",id:"toc-react-config",level:2}],d={toc:i};function c(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"React exports a handful of utility types that may be useful to you when typing\nadvanced React patterns. In previous sections we have seen a few of them. The\nfollowing is a complete reference for each of these types along with some\nexamples for how/where to use them."),(0,o.mdx)("p",null,"These types are all exported as named type exports from the ",(0,o.mdx)("inlineCode",{parentName:"p"},"react")," module. If\nyou want to access them as members on the ",(0,o.mdx)("inlineCode",{parentName:"p"},"React")," object (e.g.\n",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-node"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.Node")),") and\nyou are importing React as an ES module then you should import ",(0,o.mdx)("inlineCode",{parentName:"p"},"React")," as a\nnamespace:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"import * as React from 'react';\n")),(0,o.mdx)("p",null,"If you are using CommonJS you can also require React:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"const React = require('react');\n")),(0,o.mdx)("p",null,"You can also use named type imports in either an ES module environment or a\nCommonJS environment:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"import type {Node} from 'react';\n")),(0,o.mdx)("p",null,"We will refer to all the types in the following reference as if we imported them\nwith:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"import * as React from 'react';\n")),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},(0,o.mdx)("strong",{parentName:"p"},"Note:")," While importing React with a default import works:"),(0,o.mdx)("pre",{parentName:"blockquote"},(0,o.mdx)("code",{parentName:"pre"},"import React from 'react';\n")),(0,o.mdx)("p",{parentName:"blockquote"},"You will have access to all of the values that React exports, but you will\n",(0,o.mdx)("strong",{parentName:"p"},"not")," have access to the types documented below! This is because Flow will\nnot add types to a default export since the default export could be any value\n(like a number). Flow will add exported named types to an ES namespace object\nwhich you can get with ",(0,o.mdx)("inlineCode",{parentName:"p"},"import * as React from 'react'")," since Flow knows if\nyou export a value with the same name as an exported type."),(0,o.mdx)("p",{parentName:"blockquote"},"Again, if you import React with: ",(0,o.mdx)("inlineCode",{parentName:"p"},"import React from 'react'")," you will be able\nto access ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Component"),", ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.createElement()"),", ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Children"),", and\nother JavaScript ",(0,o.mdx)("em",{parentName:"p"},"values"),". However, you will not be able to access\n",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-node"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.Node")),", ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-childrenarray"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.ChildrenArray"))," or\nother Flow ",(0,o.mdx)("em",{parentName:"p"},"types"),". You will need to use a named type import like:\n",(0,o.mdx)("inlineCode",{parentName:"p"},"import type {Node} from 'react'")," in addition to your default import.")),(0,o.mdx)("h2",{id:"toc-react-node"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.Node")),(0,o.mdx)("p",null,"This represents any node that can be rendered in a React application.\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Node")," can be null, a boolean, a number, a string, a React\nelement, or an array of any of those types recursively."),(0,o.mdx)("p",null,(0,o.mdx)("inlineCode",{parentName:"p"},"React.Node")," is a good default to use to annotate the return type of a function component\nand class render methods. You can also use it to type elements your component takes in as children."),(0,o.mdx)("p",null,"Here is an example of ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Node")," being used as the return type to a function component:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"function MyComponent(props: {}): React.Node {\n // ...\n}\n")),(0,o.mdx)("p",null,"It may also be used as the return type of a class ",(0,o.mdx)("inlineCode",{parentName:"p"},"render")," method:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"class MyComponent extends React.Component<{}> {\n render(): React.Node {\n // ...\n }\n}\n")),(0,o.mdx)("p",null,"Here is an example of ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Node")," as the prop type for children:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"function MyComponent({ children }: { children: React.Node }) {\n return
{children}
;\n}\n")),(0,o.mdx)("p",null,"All ",(0,o.mdx)("inlineCode",{parentName:"p"},"react-dom")," JSX intrinsics have ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Node")," as their children type.\n",(0,o.mdx)("inlineCode",{parentName:"p"},"
"),", ",(0,o.mdx)("inlineCode",{parentName:"p"},""),", and all the rest."),(0,o.mdx)("h2",{id:"toc-react-mixedelement"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.MixedElement")),(0,o.mdx)("p",null,"The most general type of all React elements (similar to ",(0,o.mdx)("inlineCode",{parentName:"p"},"mixed")," for all values). ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.MixedElement")," is defined as\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Element"),"."),(0,o.mdx)("p",null,"A common use case of this type is when we want to annotate an element with a type that hides the element details. For example"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"const element: React.MixedElement =
;\n")),(0,o.mdx)("h2",{id:"toc-react-element"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.Element")),(0,o.mdx)("p",null,"A React element is the type for the value of a JSX element:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"const element: React.Element<'div'> =
;\n")),(0,o.mdx)("p",null,(0,o.mdx)("inlineCode",{parentName:"p"},"React.Element")," is also the return type of\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.createElement()"),"/",(0,o.mdx)("inlineCode",{parentName:"p"},"React.jsx()"),"."),(0,o.mdx)("p",null,"A ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Element")," takes a single type argument,\n",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component"),". ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component")," is the component type of the React\nelement. For an intrinsic element, ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component")," will be the string literal\nfor the intrinsic you used. Here are a few examples with DOM intrinsics:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"(
: React.Element<'div'>); // OK\n(: React.Element<'span'>); // OK\n(
: React.Element<'span'>); // Error: div is not a span.\n")),(0,o.mdx)("p",null,(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component")," can also be your React class component or function component."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"function Foo(props: {}) {}\nclass Bar extends React.Component<{}> {}\n\n(: React.Element); // OK\n(: React.Element); // OK\n(: React.Element); // Error: Foo is not Bar\n")),(0,o.mdx)("p",null,"Take note of the ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof"),", it is required! We want to get the\ntype ",(0,o.mdx)("em",{parentName:"p"},"of")," the value ",(0,o.mdx)("inlineCode",{parentName:"p"},"Foo"),". ",(0,o.mdx)("inlineCode",{parentName:"p"},"(Foo: Foo)")," is an error because ",(0,o.mdx)("inlineCode",{parentName:"p"},"Foo")," cannot be used\nas a type, so the following is correct: ",(0,o.mdx)("inlineCode",{parentName:"p"},"(Foo: typeof Foo)"),"."),(0,o.mdx)("p",null,(0,o.mdx)("inlineCode",{parentName:"p"},"Bar")," without ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof")," would be the type of an instance of ",(0,o.mdx)("inlineCode",{parentName:"p"},"Bar"),": ",(0,o.mdx)("inlineCode",{parentName:"p"},"(new Bar(): Bar)"),".\nWe want the type ",(0,o.mdx)("em",{parentName:"p"},"of")," ",(0,o.mdx)("inlineCode",{parentName:"p"},"Bar")," not the type of an instance of ",(0,o.mdx)("inlineCode",{parentName:"p"},"Bar"),".\n",(0,o.mdx)("inlineCode",{parentName:"p"},"Class")," would also work here, but we prefer ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof")," for consistency\nwith function components."),(0,o.mdx)("h2",{id:"toc-react-childrenarray"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.ChildrenArray")),(0,o.mdx)("p",null,"A React children array can be a single value or an array nested to any level.\nIt is designed to be used with the ",(0,o.mdx)("a",{parentName:"p",href:"https://react.dev/reference/react/Children"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.Children")," API"),"."),(0,o.mdx)("p",null,"For example if you want to get a normal JavaScript array from a\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.ChildrenArray")," see the following example:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"import * as React from 'react';\n\n// A children array can be a single value...\nconst children: React.ChildrenArray = 42;\n// ...or an arbitrarily nested array.\nconst children: React.ChildrenArray = [[1, 2], 3, [4, 5]];\n\n// Using the `React.Children` API can flatten the array.\nconst array: Array = React.Children.toArray(children);\n")),(0,o.mdx)("h2",{id:"toc-react-abstractcomponent"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.AbstractComponent")),(0,o.mdx)("p",null,(0,o.mdx)("inlineCode",{parentName:"p"},"React.AbstractComponent")," represents a component with\na config of type Config and instance of type Instance."),(0,o.mdx)("p",null,"The ",(0,o.mdx)("inlineCode",{parentName:"p"},"Config")," of a component is the type of the object you need to pass in to JSX in order\nto create an element with that component. The ",(0,o.mdx)("inlineCode",{parentName:"p"},"Instance")," of a component is the type of the value\nthat is written to the ",(0,o.mdx)("inlineCode",{parentName:"p"},"current")," field of a ref object passed into the ",(0,o.mdx)("inlineCode",{parentName:"p"},"ref")," prop in JSX."),(0,o.mdx)("p",null,"Config is required, but Instance is optional and defaults to mixed."),(0,o.mdx)("p",null,"A class or function component with config ",(0,o.mdx)("inlineCode",{parentName:"p"},"Config")," may be used in places that expect\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.AbstractComponent"),"."),(0,o.mdx)("p",null,"This is Flow's most abstract representation of a React component, and is most useful for\nwriting HOCs and library definitions."),(0,o.mdx)("h2",{id:"toc-react-componenttype"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.ComponentType")),(0,o.mdx)("p",null,"This is the same as ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-abstractcomponent"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.AbstractComponent")),", but only specifies the first type argument."),(0,o.mdx)("h2",{id:"toc-react-elementtype"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.ElementType")),(0,o.mdx)("p",null,"Similar to ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-abstractcomponent"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.AbstractComponent"))," except it also\nincludes JSX intrinsics (strings)."),(0,o.mdx)("p",null,"The definition for ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.ElementType")," is roughly:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"type ElementType =\n | string\n | React.AbstractComponent;\n")),(0,o.mdx)("h2",{id:"toc-react-key"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.Key")),(0,o.mdx)("p",null,"The type of the key prop on React elements. It is a union of strings and\nnumbers defined as:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"type Key = string | number;\n")),(0,o.mdx)("h2",{id:"toc-react-ref"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.Ref")),(0,o.mdx)("p",null,"The type of the ",(0,o.mdx)("a",{parentName:"p",href:"https://react.dev/learn/manipulating-the-dom-with-refs"},"ref prop on React elements"),". ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Ref"),"\ncould be a string, ref object, or ref function."),(0,o.mdx)("p",null,"The ref function will take one and only argument which will be the element\ninstance which is retrieved using\n",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-elementref"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.ElementRef"))," or null since\n",(0,o.mdx)("a",{parentName:"p",href:"https://react.dev/learn/manipulating-the-dom-with-refs#how-to-manage-a-list-of-refs-using-a-ref-callback"},"React will pass null into a ref function when unmounting"),"."),(0,o.mdx)("p",null,"Like ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-element"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.Element")),", ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component"),"\nmust be the type ",(0,o.mdx)("em",{parentName:"p"},"of")," a React component so you need to use ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof")," as in\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Ref"),"."),(0,o.mdx)("p",null,"The definition for ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Ref")," is roughly:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"type Ref =\n | string\n | (instance: React.ElementRef | null) => mixed;\n | { -current: React$ElementRef | null, ... }\n")),(0,o.mdx)("h2",{id:"toc-react-elementconfig"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.ElementConfig")),(0,o.mdx)("p",null,"This utility gets the type of the object that you must pass in to a\ncomponent in order to instantiate it via ",(0,o.mdx)("inlineCode",{parentName:"p"},"createElement()")," or ",(0,o.mdx)("inlineCode",{parentName:"p"},"jsx()"),"."),(0,o.mdx)("p",null,"Importantly, props with defaults are optional in the resulting type."),(0,o.mdx)("p",null,"For example,"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"import * as React from 'react';\n\nclass MyComponent extends React.Component<{foo: number}> {\n static defaultProps = {foo: 42};\n\n render() {\n return this.props.foo;\n }\n}\n\n// `React.ElementProps<>` requires `foo` even though it has a `defaultProp`.\n({foo: 42}: React.ElementProps);\n\n// `React.ElementConfig<>` does not require `foo` since it has a `defaultProp`.\n({}: React.ElementConfig);\n")),(0,o.mdx)("p",null,"Like ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-element"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.Element")),", ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component")," must be the\ntype ",(0,o.mdx)("em",{parentName:"p"},"of")," a React component so you need to use ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof")," as in\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.ElementProps"),"."),(0,o.mdx)("h2",{id:"toc-react-elementprops"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.ElementProps")),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},(0,o.mdx)("strong",{parentName:"p"},"Note:")," Because ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-elementprops"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.ElementProps"))," does not preserve the optionality of ",(0,o.mdx)("inlineCode",{parentName:"p"},"defaultProps"),", ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-elementconfig"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.ElementConfig"))," (which does) is more often the right choice, especially for simple props pass-through as with ",(0,o.mdx)("a",{parentName:"p",href:"../hoc/#toc-supporting-defaultprops-with-react-elementconfig"},"higher-order components"),".\nYou probably should not use ElementProps.")),(0,o.mdx)("p",null,"Gets the props for a React element type, ",(0,o.mdx)("em",{parentName:"p"},"without")," preserving the optionality of ",(0,o.mdx)("inlineCode",{parentName:"p"},"defaultProps"),".\n",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component")," could be the type of a React class component, a function component, or a JSX intrinsic string.\nThis type is used for the ",(0,o.mdx)("inlineCode",{parentName:"p"},"props")," property on ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-element"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.Element")),"."),(0,o.mdx)("p",null,"Like ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-element"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.Element")),", ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component")," must be the\ntype ",(0,o.mdx)("em",{parentName:"p"},"of")," a React component so you need to use ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof")," as in\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.ElementProps"),"."),(0,o.mdx)("h2",{id:"toc-react-elementref"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.ElementRef")),(0,o.mdx)("p",null,"Gets the instance type for a React element. The instance will be different for\nvarious component types:"),(0,o.mdx)("ul",null,(0,o.mdx)("li",{parentName:"ul"},"React.AbstractComponent will return the Instance type."),(0,o.mdx)("li",{parentName:"ul"},"React class components will be the class instance. So if you had\n",(0,o.mdx)("inlineCode",{parentName:"li"},"class Foo extends React.Component<{}> {}")," and used\n",(0,o.mdx)("inlineCode",{parentName:"li"},"React.ElementRef")," then the type would be the instance of ",(0,o.mdx)("inlineCode",{parentName:"li"},"Foo"),"."),(0,o.mdx)("li",{parentName:"ul"},"React function components do not have a backing instance and so\n",(0,o.mdx)("inlineCode",{parentName:"li"},"React.ElementRef")," (when ",(0,o.mdx)("inlineCode",{parentName:"li"},"Bar")," is ",(0,o.mdx)("inlineCode",{parentName:"li"},"function Bar() {}"),") will give\nyou the undefined type."),(0,o.mdx)("li",{parentName:"ul"},"JSX intrinsics like ",(0,o.mdx)("inlineCode",{parentName:"li"},"div")," will give you their DOM instance. For\n",(0,o.mdx)("inlineCode",{parentName:"li"},"React.ElementRef<'div'>")," that would be ",(0,o.mdx)("inlineCode",{parentName:"li"},"HTMLDivElement"),". For\n",(0,o.mdx)("inlineCode",{parentName:"li"},"React.ElementRef<'input'>")," that would be ",(0,o.mdx)("inlineCode",{parentName:"li"},"HTMLInputElement"),".")),(0,o.mdx)("p",null,"Like ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-element"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.Element")),", ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component")," must be the\ntype ",(0,o.mdx)("em",{parentName:"p"},"of")," a React component so you need to use ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof")," as in\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.ElementRef"),"."),(0,o.mdx)("h2",{id:"toc-react-config"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.Config")),(0,o.mdx)("p",null,"Calculates a config object from props and default props. This is most useful for annotating\nHOCs that are abstracted over configs. See our ",(0,o.mdx)("a",{parentName:"p",href:"../hoc"},"docs on writing HOCs")," for more information."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1958.d7cfea40.js b/assets/js/1958.d7cfea40.js new file mode 100644 index 00000000000..3cc2938f2e7 --- /dev/null +++ b/assets/js/1958.d7cfea40.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1958],{1958:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>m,toc:()=>r});var a=t(87462),o=(t(67294),t(3905));t(45475);const s={title:"Comment Types",slug:"/types/comments"},l=void 0,m={unversionedId:"types/comments",id:"types/comments",title:"Comment Types",description:"Flow supports a comment-based syntax, which makes it possible to use Flow",source:"@site/docs/types/comments.md",sourceDirName:"types",slug:"/types/comments",permalink:"/en/docs/types/comments",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/comments.md",tags:[],version:"current",frontMatter:{title:"Comment Types",slug:"/types/comments"},sidebar:"docsSidebar",previous:{title:"Module Types",permalink:"/en/docs/types/modules"},next:{title:"Types & Expressions",permalink:"/en/docs/lang/types-and-expressions"}},i={},r=[{value:"Comment types syntax",id:"toc-comment-types-syntax",level:2},{value:"Type include comments",id:"toc-comment-type-include",level:3},{value:"Type annotation comments",id:"toc-comment-type-annotation",level:3}],p={toc:r};function d(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Flow supports a comment-based syntax, which makes it possible to use Flow\nwithout having to compile your files."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":13,"startColumn":33,"endLine":13,"endColumn":40,"description":"Cannot call `method` with object literal bound to `value` because array literal [1] is incompatible with string [2] in property `baz`. [incompatible-call]"}]','[{"startLine":13,"startColumn":33,"endLine":13,"endColumn":40,"description":"Cannot':!0,call:!0,"`method`":!0,with:!0,object:!0,literal:!0,bound:!0,to:!0,"`value`":!0,because:!0,array:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2]":!0,in:!0,property:!0,"`baz`.":!0,'[incompatible-call]"}]':!0},'/*::\ntype MyAlias = {\n foo: number,\n bar: boolean,\n baz: string,\n};\n*/\n\nfunction method(value /*: MyAlias */) /*: boolean */ {\n return value.bar;\n}\n\nmethod({foo: 1, bar: true, baz: ["oops"]});\n')),(0,o.mdx)("p",null,"These comments allow Flow to work in plain JavaScript files without any\nadditional work."),(0,o.mdx)("h2",{id:"toc-comment-types-syntax"},"Comment types syntax"),(0,o.mdx)("p",null,"There are two primary pieces of the syntax: type includes and type annotations."),(0,o.mdx)("h3",{id:"toc-comment-type-include"},"Type include comments"),(0,o.mdx)("p",null,"If you want to have Flow treat a comment as if it were normal syntax, you can\ndo so by adding a double colon ",(0,o.mdx)("inlineCode",{parentName:"p"},"::")," to the start of the comment:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"/*::\ntype MyAlias = {\n foo: number,\n bar: boolean,\n baz: string,\n};\n*/\n\nclass MyClass {\n /*:: prop: string; */\n}\n")),(0,o.mdx)("p",null,"This includes the code into the syntax that Flow sees:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type MyAlias = {\n foo: number,\n bar: boolean,\n baz: string,\n};\n\nclass MyClass {\n prop: string;\n}\n")),(0,o.mdx)("p",null,"But JavaScript ignores these comments, so your code is valid JavaScript syntax:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n\n}\n")),(0,o.mdx)("p",null,"This syntax is also available in a ",(0,o.mdx)("inlineCode",{parentName:"p"},"flow-include")," form:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"/*flow-include\ntype MyAlias = {\n foo: number,\n bar: boolean,\n baz: string,\n};\n*/\n\nclass MyClass {\n /*flow-include prop: string; */\n}\n")),(0,o.mdx)("h3",{id:"toc-comment-type-annotation"},"Type annotation comments"),(0,o.mdx)("p",null,"Instead of typing out a full include every time, you can also use the type\nannotation shorthand with a single colon ",(0,o.mdx)("inlineCode",{parentName:"p"},":")," at the start of the comment."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function method(param /*: string */) /*: number */ {\n return 1;\n}\n")),(0,o.mdx)("p",null,"This would be the same as including a type annotation inside an include comment."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function method(param /*:: : string */) /*:: : number */ {\n return 1;\n}\n")),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},(0,o.mdx)("strong",{parentName:"p"},"Note:")," If you want to use optional function parameters you'll need to use\nthe include comment form.")),(0,o.mdx)("hr",null),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},(0,o.mdx)("strong",{parentName:"p"},"Special thanks to"),": ",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/jareware"},"Jarno Rantanen")," for\nbuilding ",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/jareware/flotate"},"flotate")," and supporting us\nmerging his syntax upstream into Flow.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1960.8eff0e2c.js b/assets/js/1960.8eff0e2c.js new file mode 100644 index 00000000000..bf7856cb6f3 --- /dev/null +++ b/assets/js/1960.8eff0e2c.js @@ -0,0 +1,406 @@ +"use strict"; +exports.id = 1960; +exports.ids = [1960]; +exports.modules = { + +/***/ 71960: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/cpp/cpp.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "[", close: "]" }, + { open: "{", close: "}" }, + { open: "(", close: ")" }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + folding: { + markers: { + start: new RegExp("^\\s*#pragma\\s+region\\b"), + end: new RegExp("^\\s*#pragma\\s+endregion\\b") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".cpp", + brackets: [ + { token: "delimiter.curly", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" }, + { token: "delimiter.angle", open: "<", close: ">" } + ], + keywords: [ + "abstract", + "amp", + "array", + "auto", + "bool", + "break", + "case", + "catch", + "char", + "class", + "const", + "constexpr", + "const_cast", + "continue", + "cpu", + "decltype", + "default", + "delegate", + "delete", + "do", + "double", + "dynamic_cast", + "each", + "else", + "enum", + "event", + "explicit", + "export", + "extern", + "false", + "final", + "finally", + "float", + "for", + "friend", + "gcnew", + "generic", + "goto", + "if", + "in", + "initonly", + "inline", + "int", + "interface", + "interior_ptr", + "internal", + "literal", + "long", + "mutable", + "namespace", + "new", + "noexcept", + "nullptr", + "__nullptr", + "operator", + "override", + "partial", + "pascal", + "pin_ptr", + "private", + "property", + "protected", + "public", + "ref", + "register", + "reinterpret_cast", + "restrict", + "return", + "safe_cast", + "sealed", + "short", + "signed", + "sizeof", + "static", + "static_assert", + "static_cast", + "struct", + "switch", + "template", + "this", + "thread_local", + "throw", + "tile_static", + "true", + "try", + "typedef", + "typeid", + "typename", + "union", + "unsigned", + "using", + "virtual", + "void", + "volatile", + "wchar_t", + "where", + "while", + "_asm", + "_based", + "_cdecl", + "_declspec", + "_fastcall", + "_if_exists", + "_if_not_exists", + "_inline", + "_multiple_inheritance", + "_pascal", + "_single_inheritance", + "_stdcall", + "_virtual_inheritance", + "_w64", + "__abstract", + "__alignof", + "__asm", + "__assume", + "__based", + "__box", + "__builtin_alignof", + "__cdecl", + "__clrcall", + "__declspec", + "__delegate", + "__event", + "__except", + "__fastcall", + "__finally", + "__forceinline", + "__gc", + "__hook", + "__identifier", + "__if_exists", + "__if_not_exists", + "__inline", + "__int128", + "__int16", + "__int32", + "__int64", + "__int8", + "__interface", + "__leave", + "__m128", + "__m128d", + "__m128i", + "__m256", + "__m256d", + "__m256i", + "__m64", + "__multiple_inheritance", + "__newslot", + "__nogc", + "__noop", + "__nounwind", + "__novtordisp", + "__pascal", + "__pin", + "__pragma", + "__property", + "__ptr32", + "__ptr64", + "__raise", + "__restrict", + "__resume", + "__sealed", + "__single_inheritance", + "__stdcall", + "__super", + "__thiscall", + "__try", + "__try_cast", + "__typeof", + "__unaligned", + "__unhook", + "__uuidof", + "__value", + "__virtual_inheritance", + "__w64", + "__wchar_t" + ], + operators: [ + "=", + ">", + "<", + "!", + "~", + "?", + ":", + "==", + "<=", + ">=", + "!=", + "&&", + "||", + "++", + "--", + "+", + "-", + "*", + "/", + "&", + "|", + "^", + "%", + "<<", + ">>", + ">>>", + "+=", + "-=", + "*=", + "/=", + "&=", + "|=", + "^=", + "%=", + "<<=", + ">>=", + ">>>=" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/, "number.hex"], + [/0[0-7']*[0-7](@integersuffix)/, "number.octal"], + [/0[bB][0-1']*[0-1](@integersuffix)/, "number.binary"], + [/\d[\d']*\d(@integersuffix)/, "number"], + [/\d(@integersuffix)/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string"], + [/'[^\\']'/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@doccomment"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*\\$/, "comment", "@linecomment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + linecomment: [ + [/.*[^\\]$/, "comment", "@pop"], + [/[^]+/, "comment"] + ], + doccomment: [ + [/[^\/*]+/, "comment.doc"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ], + raw: [ + [ + /(.*)(\))(?:([^ ()\\\t"]*))(\")/, + { + cases: { + "$3==$S2": [ + "string.raw", + "string.raw.end", + "string.raw.end", + { token: "string.raw.end", next: "@pop" } + ], + "@default": ["string.raw", "string.raw", "string.raw", "string.raw"] + } + } + ], + [/.*/, "string.raw"] + ], + annotation: [ + { include: "@whitespace" }, + [/using|alignas/, "keyword"], + [/[a-zA-Z0-9_]+/, "annotation"], + [/[,:]/, "delimiter"], + [/[()]/, "@brackets"], + [/\]\s*\]/, { token: "annotation", next: "@pop" }] + ], + include: [ + [ + /(\s*)(<)([^<>]*)(>)/, + [ + "", + "keyword.directive.include.begin", + "string.include.identifier", + { token: "keyword.directive.include.end", next: "@pop" } + ] + ], + [ + /(\s*)(")([^"]*)(")/, + [ + "", + "keyword.directive.include.begin", + "string.include.identifier", + { token: "keyword.directive.include.end", next: "@pop" } + ] + ] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1960.e580ef88.js b/assets/js/1960.e580ef88.js new file mode 100644 index 00000000000..e01923b872c --- /dev/null +++ b/assets/js/1960.e580ef88.js @@ -0,0 +1,2 @@ +/*! For license information please see 1960.e580ef88.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1960],{71960:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>i,language:()=>r});var i={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},r={defaultToken:"",tokenPostfix:".cpp",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["abstract","amp","array","auto","bool","break","case","catch","char","class","const","constexpr","const_cast","continue","cpu","decltype","default","delegate","delete","do","double","dynamic_cast","each","else","enum","event","explicit","export","extern","false","final","finally","float","for","friend","gcnew","generic","goto","if","in","initonly","inline","int","interface","interior_ptr","internal","literal","long","mutable","namespace","new","noexcept","nullptr","__nullptr","operator","override","partial","pascal","pin_ptr","private","property","protected","public","ref","register","reinterpret_cast","restrict","return","safe_cast","sealed","short","signed","sizeof","static","static_assert","static_cast","struct","switch","template","this","thread_local","throw","tile_static","true","try","typedef","typeid","typename","union","unsigned","using","virtual","void","volatile","wchar_t","where","while","_asm","_based","_cdecl","_declspec","_fastcall","_if_exists","_if_not_exists","_inline","_multiple_inheritance","_pascal","_single_inheritance","_stdcall","_virtual_inheritance","_w64","__abstract","__alignof","__asm","__assume","__based","__box","__builtin_alignof","__cdecl","__clrcall","__declspec","__delegate","__event","__except","__fastcall","__finally","__forceinline","__gc","__hook","__identifier","__if_exists","__if_not_exists","__inline","__int128","__int16","__int32","__int64","__int8","__interface","__leave","__m128","__m128d","__m128i","__m256","__m256d","__m256i","__m64","__multiple_inheritance","__newslot","__nogc","__noop","__nounwind","__novtordisp","__pascal","__pin","__pragma","__property","__ptr32","__ptr64","__raise","__restrict","__resume","__sealed","__single_inheritance","__stdcall","__super","__thiscall","__try","__try_cast","__typeof","__unaligned","__unhook","__uuidof","__value","__virtual_inheritance","__w64","__wchar_t"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*\\$/,"comment","@linecomment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],linecomment:[[/.*[^\\]$/,"comment","@pop"],[/[^]+/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],raw:[[/(.*)(\))(?:([^ ()\\\t"]*))(\")/,{cases:{"$3==$S2":["string.raw","string.raw.end","string.raw.end",{token:"string.raw.end",next:"@pop"}],"@default":["string.raw","string.raw","string.raw","string.raw"]}}],[/.*/,"string.raw"]],annotation:[{include:"@whitespace"},[/using|alignas/,"keyword"],[/[a-zA-Z0-9_]+/,"annotation"],[/[,:]/,"delimiter"],[/[()]/,"@brackets"],[/\]\s*\]/,{token:"annotation",next:"@pop"}]],include:[[/(\s*)(<)([^<>]*)(>)/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]],[/(\s*)(")([^"]*)(")/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]]]}}}}]); \ No newline at end of file diff --git a/assets/js/1960.e580ef88.js.LICENSE.txt b/assets/js/1960.e580ef88.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1960.e580ef88.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1961.00730df4.js b/assets/js/1961.00730df4.js new file mode 100644 index 00000000000..ad693725a60 --- /dev/null +++ b/assets/js/1961.00730df4.js @@ -0,0 +1,894 @@ +"use strict"; +exports.id = 1961; +exports.ids = [1961]; +exports.modules = { + +/***/ 31961: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/mysql/mysql.ts +var conf = { + comments: { + lineComment: "--", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".sql", + ignoreCase: true, + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + keywords: [ + "ACCESSIBLE", + "ADD", + "ALL", + "ALTER", + "ANALYZE", + "AND", + "AS", + "ASC", + "ASENSITIVE", + "BEFORE", + "BETWEEN", + "BIGINT", + "BINARY", + "BLOB", + "BOTH", + "BY", + "CALL", + "CASCADE", + "CASE", + "CHANGE", + "CHAR", + "CHARACTER", + "CHECK", + "COLLATE", + "COLUMN", + "CONDITION", + "CONSTRAINT", + "CONTINUE", + "CONVERT", + "CREATE", + "CROSS", + "CUBE", + "CUME_DIST", + "CURRENT_DATE", + "CURRENT_TIME", + "CURRENT_TIMESTAMP", + "CURRENT_USER", + "CURSOR", + "DATABASE", + "DATABASES", + "DAY_HOUR", + "DAY_MICROSECOND", + "DAY_MINUTE", + "DAY_SECOND", + "DEC", + "DECIMAL", + "DECLARE", + "DEFAULT", + "DELAYED", + "DELETE", + "DENSE_RANK", + "DESC", + "DESCRIBE", + "DETERMINISTIC", + "DISTINCT", + "DISTINCTROW", + "DIV", + "DOUBLE", + "DROP", + "DUAL", + "EACH", + "ELSE", + "ELSEIF", + "EMPTY", + "ENCLOSED", + "ESCAPED", + "EXCEPT", + "EXISTS", + "EXIT", + "EXPLAIN", + "FALSE", + "FETCH", + "FIRST_VALUE", + "FLOAT", + "FLOAT4", + "FLOAT8", + "FOR", + "FORCE", + "FOREIGN", + "FROM", + "FULLTEXT", + "FUNCTION", + "GENERATED", + "GET", + "GRANT", + "GROUP", + "GROUPING", + "GROUPS", + "HAVING", + "HIGH_PRIORITY", + "HOUR_MICROSECOND", + "HOUR_MINUTE", + "HOUR_SECOND", + "IF", + "IGNORE", + "IN", + "INDEX", + "INFILE", + "INNER", + "INOUT", + "INSENSITIVE", + "INSERT", + "INT", + "INT1", + "INT2", + "INT3", + "INT4", + "INT8", + "INTEGER", + "INTERVAL", + "INTO", + "IO_AFTER_GTIDS", + "IO_BEFORE_GTIDS", + "IS", + "ITERATE", + "JOIN", + "JSON_TABLE", + "KEY", + "KEYS", + "KILL", + "LAG", + "LAST_VALUE", + "LATERAL", + "LEAD", + "LEADING", + "LEAVE", + "LEFT", + "LIKE", + "LIMIT", + "LINEAR", + "LINES", + "LOAD", + "LOCALTIME", + "LOCALTIMESTAMP", + "LOCK", + "LONG", + "LONGBLOB", + "LONGTEXT", + "LOOP", + "LOW_PRIORITY", + "MASTER_BIND", + "MASTER_SSL_VERIFY_SERVER_CERT", + "MATCH", + "MAXVALUE", + "MEDIUMBLOB", + "MEDIUMINT", + "MEDIUMTEXT", + "MIDDLEINT", + "MINUTE_MICROSECOND", + "MINUTE_SECOND", + "MOD", + "MODIFIES", + "NATURAL", + "NOT", + "NO_WRITE_TO_BINLOG", + "NTH_VALUE", + "NTILE", + "NULL", + "NUMERIC", + "OF", + "ON", + "OPTIMIZE", + "OPTIMIZER_COSTS", + "OPTION", + "OPTIONALLY", + "OR", + "ORDER", + "OUT", + "OUTER", + "OUTFILE", + "OVER", + "PARTITION", + "PERCENT_RANK", + "PRECISION", + "PRIMARY", + "PROCEDURE", + "PURGE", + "RANGE", + "RANK", + "READ", + "READS", + "READ_WRITE", + "REAL", + "RECURSIVE", + "REFERENCES", + "REGEXP", + "RELEASE", + "RENAME", + "REPEAT", + "REPLACE", + "REQUIRE", + "RESIGNAL", + "RESTRICT", + "RETURN", + "REVOKE", + "RIGHT", + "RLIKE", + "ROW", + "ROWS", + "ROW_NUMBER", + "SCHEMA", + "SCHEMAS", + "SECOND_MICROSECOND", + "SELECT", + "SENSITIVE", + "SEPARATOR", + "SET", + "SHOW", + "SIGNAL", + "SMALLINT", + "SPATIAL", + "SPECIFIC", + "SQL", + "SQLEXCEPTION", + "SQLSTATE", + "SQLWARNING", + "SQL_BIG_RESULT", + "SQL_CALC_FOUND_ROWS", + "SQL_SMALL_RESULT", + "SSL", + "STARTING", + "STORED", + "STRAIGHT_JOIN", + "SYSTEM", + "TABLE", + "TERMINATED", + "THEN", + "TINYBLOB", + "TINYINT", + "TINYTEXT", + "TO", + "TRAILING", + "TRIGGER", + "TRUE", + "UNDO", + "UNION", + "UNIQUE", + "UNLOCK", + "UNSIGNED", + "UPDATE", + "USAGE", + "USE", + "USING", + "UTC_DATE", + "UTC_TIME", + "UTC_TIMESTAMP", + "VALUES", + "VARBINARY", + "VARCHAR", + "VARCHARACTER", + "VARYING", + "VIRTUAL", + "WHEN", + "WHERE", + "WHILE", + "WINDOW", + "WITH", + "WRITE", + "XOR", + "YEAR_MONTH", + "ZEROFILL" + ], + operators: [ + "AND", + "BETWEEN", + "IN", + "LIKE", + "NOT", + "OR", + "IS", + "NULL", + "INTERSECT", + "UNION", + "INNER", + "JOIN", + "LEFT", + "OUTER", + "RIGHT" + ], + builtinFunctions: [ + "ABS", + "ACOS", + "ADDDATE", + "ADDTIME", + "AES_DECRYPT", + "AES_ENCRYPT", + "ANY_VALUE", + "Area", + "AsBinary", + "AsWKB", + "ASCII", + "ASIN", + "AsText", + "AsWKT", + "ASYMMETRIC_DECRYPT", + "ASYMMETRIC_DERIVE", + "ASYMMETRIC_ENCRYPT", + "ASYMMETRIC_SIGN", + "ASYMMETRIC_VERIFY", + "ATAN", + "ATAN2", + "ATAN", + "AVG", + "BENCHMARK", + "BIN", + "BIT_AND", + "BIT_COUNT", + "BIT_LENGTH", + "BIT_OR", + "BIT_XOR", + "Buffer", + "CAST", + "CEIL", + "CEILING", + "Centroid", + "CHAR", + "CHAR_LENGTH", + "CHARACTER_LENGTH", + "CHARSET", + "COALESCE", + "COERCIBILITY", + "COLLATION", + "COMPRESS", + "CONCAT", + "CONCAT_WS", + "CONNECTION_ID", + "Contains", + "CONV", + "CONVERT", + "CONVERT_TZ", + "ConvexHull", + "COS", + "COT", + "COUNT", + "CRC32", + "CREATE_ASYMMETRIC_PRIV_KEY", + "CREATE_ASYMMETRIC_PUB_KEY", + "CREATE_DH_PARAMETERS", + "CREATE_DIGEST", + "Crosses", + "CUME_DIST", + "CURDATE", + "CURRENT_DATE", + "CURRENT_ROLE", + "CURRENT_TIME", + "CURRENT_TIMESTAMP", + "CURRENT_USER", + "CURTIME", + "DATABASE", + "DATE", + "DATE_ADD", + "DATE_FORMAT", + "DATE_SUB", + "DATEDIFF", + "DAY", + "DAYNAME", + "DAYOFMONTH", + "DAYOFWEEK", + "DAYOFYEAR", + "DECODE", + "DEFAULT", + "DEGREES", + "DES_DECRYPT", + "DES_ENCRYPT", + "DENSE_RANK", + "Dimension", + "Disjoint", + "Distance", + "ELT", + "ENCODE", + "ENCRYPT", + "EndPoint", + "Envelope", + "Equals", + "EXP", + "EXPORT_SET", + "ExteriorRing", + "EXTRACT", + "ExtractValue", + "FIELD", + "FIND_IN_SET", + "FIRST_VALUE", + "FLOOR", + "FORMAT", + "FORMAT_BYTES", + "FORMAT_PICO_TIME", + "FOUND_ROWS", + "FROM_BASE64", + "FROM_DAYS", + "FROM_UNIXTIME", + "GEN_RANGE", + "GEN_RND_EMAIL", + "GEN_RND_PAN", + "GEN_RND_SSN", + "GEN_RND_US_PHONE", + "GeomCollection", + "GeomCollFromText", + "GeometryCollectionFromText", + "GeomCollFromWKB", + "GeometryCollectionFromWKB", + "GeometryCollection", + "GeometryN", + "GeometryType", + "GeomFromText", + "GeometryFromText", + "GeomFromWKB", + "GeometryFromWKB", + "GET_FORMAT", + "GET_LOCK", + "GLength", + "GREATEST", + "GROUP_CONCAT", + "GROUPING", + "GTID_SUBSET", + "GTID_SUBTRACT", + "HEX", + "HOUR", + "ICU_VERSION", + "IF", + "IFNULL", + "INET_ATON", + "INET_NTOA", + "INET6_ATON", + "INET6_NTOA", + "INSERT", + "INSTR", + "InteriorRingN", + "Intersects", + "INTERVAL", + "IS_FREE_LOCK", + "IS_IPV4", + "IS_IPV4_COMPAT", + "IS_IPV4_MAPPED", + "IS_IPV6", + "IS_USED_LOCK", + "IS_UUID", + "IsClosed", + "IsEmpty", + "ISNULL", + "IsSimple", + "JSON_APPEND", + "JSON_ARRAY", + "JSON_ARRAY_APPEND", + "JSON_ARRAY_INSERT", + "JSON_ARRAYAGG", + "JSON_CONTAINS", + "JSON_CONTAINS_PATH", + "JSON_DEPTH", + "JSON_EXTRACT", + "JSON_INSERT", + "JSON_KEYS", + "JSON_LENGTH", + "JSON_MERGE", + "JSON_MERGE_PATCH", + "JSON_MERGE_PRESERVE", + "JSON_OBJECT", + "JSON_OBJECTAGG", + "JSON_OVERLAPS", + "JSON_PRETTY", + "JSON_QUOTE", + "JSON_REMOVE", + "JSON_REPLACE", + "JSON_SCHEMA_VALID", + "JSON_SCHEMA_VALIDATION_REPORT", + "JSON_SEARCH", + "JSON_SET", + "JSON_STORAGE_FREE", + "JSON_STORAGE_SIZE", + "JSON_TABLE", + "JSON_TYPE", + "JSON_UNQUOTE", + "JSON_VALID", + "LAG", + "LAST_DAY", + "LAST_INSERT_ID", + "LAST_VALUE", + "LCASE", + "LEAD", + "LEAST", + "LEFT", + "LENGTH", + "LineFromText", + "LineStringFromText", + "LineFromWKB", + "LineStringFromWKB", + "LineString", + "LN", + "LOAD_FILE", + "LOCALTIME", + "LOCALTIMESTAMP", + "LOCATE", + "LOG", + "LOG10", + "LOG2", + "LOWER", + "LPAD", + "LTRIM", + "MAKE_SET", + "MAKEDATE", + "MAKETIME", + "MASK_INNER", + "MASK_OUTER", + "MASK_PAN", + "MASK_PAN_RELAXED", + "MASK_SSN", + "MASTER_POS_WAIT", + "MAX", + "MBRContains", + "MBRCoveredBy", + "MBRCovers", + "MBRDisjoint", + "MBREqual", + "MBREquals", + "MBRIntersects", + "MBROverlaps", + "MBRTouches", + "MBRWithin", + "MD5", + "MEMBER OF", + "MICROSECOND", + "MID", + "MIN", + "MINUTE", + "MLineFromText", + "MultiLineStringFromText", + "MLineFromWKB", + "MultiLineStringFromWKB", + "MOD", + "MONTH", + "MONTHNAME", + "MPointFromText", + "MultiPointFromText", + "MPointFromWKB", + "MultiPointFromWKB", + "MPolyFromText", + "MultiPolygonFromText", + "MPolyFromWKB", + "MultiPolygonFromWKB", + "MultiLineString", + "MultiPoint", + "MultiPolygon", + "NAME_CONST", + "NOT IN", + "NOW", + "NTH_VALUE", + "NTILE", + "NULLIF", + "NumGeometries", + "NumInteriorRings", + "NumPoints", + "OCT", + "OCTET_LENGTH", + "OLD_PASSWORD", + "ORD", + "Overlaps", + "PASSWORD", + "PERCENT_RANK", + "PERIOD_ADD", + "PERIOD_DIFF", + "PI", + "Point", + "PointFromText", + "PointFromWKB", + "PointN", + "PolyFromText", + "PolygonFromText", + "PolyFromWKB", + "PolygonFromWKB", + "Polygon", + "POSITION", + "POW", + "POWER", + "PS_CURRENT_THREAD_ID", + "PS_THREAD_ID", + "PROCEDURE ANALYSE", + "QUARTER", + "QUOTE", + "RADIANS", + "RAND", + "RANDOM_BYTES", + "RANK", + "REGEXP_INSTR", + "REGEXP_LIKE", + "REGEXP_REPLACE", + "REGEXP_REPLACE", + "RELEASE_ALL_LOCKS", + "RELEASE_LOCK", + "REPEAT", + "REPLACE", + "REVERSE", + "RIGHT", + "ROLES_GRAPHML", + "ROUND", + "ROW_COUNT", + "ROW_NUMBER", + "RPAD", + "RTRIM", + "SCHEMA", + "SEC_TO_TIME", + "SECOND", + "SESSION_USER", + "SHA1", + "SHA", + "SHA2", + "SIGN", + "SIN", + "SLEEP", + "SOUNDEX", + "SOURCE_POS_WAIT", + "SPACE", + "SQRT", + "SRID", + "ST_Area", + "ST_AsBinary", + "ST_AsWKB", + "ST_AsGeoJSON", + "ST_AsText", + "ST_AsWKT", + "ST_Buffer", + "ST_Buffer_Strategy", + "ST_Centroid", + "ST_Collect", + "ST_Contains", + "ST_ConvexHull", + "ST_Crosses", + "ST_Difference", + "ST_Dimension", + "ST_Disjoint", + "ST_Distance", + "ST_Distance_Sphere", + "ST_EndPoint", + "ST_Envelope", + "ST_Equals", + "ST_ExteriorRing", + "ST_FrechetDistance", + "ST_GeoHash", + "ST_GeomCollFromText", + "ST_GeometryCollectionFromText", + "ST_GeomCollFromTxt", + "ST_GeomCollFromWKB", + "ST_GeometryCollectionFromWKB", + "ST_GeometryN", + "ST_GeometryType", + "ST_GeomFromGeoJSON", + "ST_GeomFromText", + "ST_GeometryFromText", + "ST_GeomFromWKB", + "ST_GeometryFromWKB", + "ST_HausdorffDistance", + "ST_InteriorRingN", + "ST_Intersection", + "ST_Intersects", + "ST_IsClosed", + "ST_IsEmpty", + "ST_IsSimple", + "ST_IsValid", + "ST_LatFromGeoHash", + "ST_Length", + "ST_LineFromText", + "ST_LineStringFromText", + "ST_LineFromWKB", + "ST_LineStringFromWKB", + "ST_LineInterpolatePoint", + "ST_LineInterpolatePoints", + "ST_LongFromGeoHash", + "ST_Longitude", + "ST_MakeEnvelope", + "ST_MLineFromText", + "ST_MultiLineStringFromText", + "ST_MLineFromWKB", + "ST_MultiLineStringFromWKB", + "ST_MPointFromText", + "ST_MultiPointFromText", + "ST_MPointFromWKB", + "ST_MultiPointFromWKB", + "ST_MPolyFromText", + "ST_MultiPolygonFromText", + "ST_MPolyFromWKB", + "ST_MultiPolygonFromWKB", + "ST_NumGeometries", + "ST_NumInteriorRing", + "ST_NumInteriorRings", + "ST_NumPoints", + "ST_Overlaps", + "ST_PointAtDistance", + "ST_PointFromGeoHash", + "ST_PointFromText", + "ST_PointFromWKB", + "ST_PointN", + "ST_PolyFromText", + "ST_PolygonFromText", + "ST_PolyFromWKB", + "ST_PolygonFromWKB", + "ST_Simplify", + "ST_SRID", + "ST_StartPoint", + "ST_SwapXY", + "ST_SymDifference", + "ST_Touches", + "ST_Transform", + "ST_Union", + "ST_Validate", + "ST_Within", + "ST_X", + "ST_Y", + "StartPoint", + "STATEMENT_DIGEST", + "STATEMENT_DIGEST_TEXT", + "STD", + "STDDEV", + "STDDEV_POP", + "STDDEV_SAMP", + "STR_TO_DATE", + "STRCMP", + "SUBDATE", + "SUBSTR", + "SUBSTRING", + "SUBSTRING_INDEX", + "SUBTIME", + "SUM", + "SYSDATE", + "SYSTEM_USER", + "TAN", + "TIME", + "TIME_FORMAT", + "TIME_TO_SEC", + "TIMEDIFF", + "TIMESTAMP", + "TIMESTAMPADD", + "TIMESTAMPDIFF", + "TO_BASE64", + "TO_DAYS", + "TO_SECONDS", + "Touches", + "TRIM", + "TRUNCATE", + "UCASE", + "UNCOMPRESS", + "UNCOMPRESSED_LENGTH", + "UNHEX", + "UNIX_TIMESTAMP", + "UpdateXML", + "UPPER", + "USER", + "UTC_DATE", + "UTC_TIME", + "UTC_TIMESTAMP", + "UUID", + "UUID_SHORT", + "UUID_TO_BIN", + "VALIDATE_PASSWORD_STRENGTH", + "VALUES", + "VAR_POP", + "VAR_SAMP", + "VARIANCE", + "VERSION", + "WAIT_FOR_EXECUTED_GTID_SET", + "WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS", + "WEEK", + "WEEKDAY", + "WEEKOFYEAR", + "WEIGHT_STRING", + "Within", + "X", + "Y", + "YEAR", + "YEARWEEK" + ], + builtinVariables: [], + tokenizer: { + root: [ + { include: "@comments" }, + { include: "@whitespace" }, + { include: "@numbers" }, + { include: "@strings" }, + { include: "@complexIdentifiers" }, + { include: "@scopes" }, + [/[;,.]/, "delimiter"], + [/[()]/, "@brackets"], + [ + /[\w@]+/, + { + cases: { + "@operators": "operator", + "@builtinVariables": "predefined", + "@builtinFunctions": "predefined", + "@keywords": "keyword", + "@default": "identifier" + } + } + ], + [/[<>=!%&+\-*/|~^]/, "operator"] + ], + whitespace: [[/\s+/, "white"]], + comments: [ + [/--+.*/, "comment"], + [/#+.*/, "comment"], + [/\/\*/, { token: "comment.quote", next: "@comment" }] + ], + comment: [ + [/[^*/]+/, "comment"], + [/\*\//, { token: "comment.quote", next: "@pop" }], + [/./, "comment"] + ], + numbers: [ + [/0[xX][0-9a-fA-F]*/, "number"], + [/[$][+-]*\d*(\.\d*)?/, "number"], + [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, "number"] + ], + strings: [ + [/'/, { token: "string", next: "@string" }], + [/"/, { token: "string.double", next: "@stringDouble" }] + ], + string: [ + [/[^']+/, "string"], + [/''/, "string"], + [/'/, { token: "string", next: "@pop" }] + ], + stringDouble: [ + [/[^"]+/, "string.double"], + [/""/, "string.double"], + [/"/, { token: "string.double", next: "@pop" }] + ], + complexIdentifiers: [[/`/, { token: "identifier.quote", next: "@quotedIdentifier" }]], + quotedIdentifier: [ + [/[^`]+/, "identifier"], + [/``/, "identifier"], + [/`/, { token: "identifier.quote", next: "@pop" }] + ], + scopes: [] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1961.6af70c85.js b/assets/js/1961.6af70c85.js new file mode 100644 index 00000000000..c6be1bdf33e --- /dev/null +++ b/assets/js/1961.6af70c85.js @@ -0,0 +1,2 @@ +/*! For license information please see 1961.6af70c85.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1961],{31961:(E,T,S)=>{S.r(T),S.d(T,{conf:()=>R,language:()=>A});var R={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},A={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ACCESSIBLE","ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BIGINT","BINARY","BLOB","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHAR","CHARACTER","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CUBE","CUME_DIST","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DEC","DECIMAL","DECLARE","DEFAULT","DELAYED","DELETE","DENSE_RANK","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DOUBLE","DROP","DUAL","EACH","ELSE","ELSEIF","EMPTY","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FIRST_VALUE","FLOAT","FLOAT4","FLOAT8","FOR","FORCE","FOREIGN","FROM","FULLTEXT","FUNCTION","GENERATED","GET","GRANT","GROUP","GROUPING","GROUPS","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","INTERVAL","INTO","IO_AFTER_GTIDS","IO_BEFORE_GTIDS","IS","ITERATE","JOIN","JSON_TABLE","KEY","KEYS","KILL","LAG","LAST_VALUE","LATERAL","LEAD","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LONGBLOB","LONGTEXT","LOOP","LOW_PRIORITY","MASTER_BIND","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NTH_VALUE","NTILE","NULL","NUMERIC","OF","ON","OPTIMIZE","OPTIMIZER_COSTS","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PERCENT_RANK","PRECISION","PRIMARY","PROCEDURE","PURGE","RANGE","RANK","READ","READS","READ_WRITE","REAL","RECURSIVE","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETURN","REVOKE","RIGHT","RLIKE","ROW","ROWS","ROW_NUMBER","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SMALLINT","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STORED","STRAIGHT_JOIN","SYSTEM","TABLE","TERMINATED","THEN","TINYBLOB","TINYINT","TINYTEXT","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VARBINARY","VARCHAR","VARCHARACTER","VARYING","VIRTUAL","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","Area","AsBinary","AsWKB","ASCII","ASIN","AsText","AsWKT","ASYMMETRIC_DECRYPT","ASYMMETRIC_DERIVE","ASYMMETRIC_ENCRYPT","ASYMMETRIC_SIGN","ASYMMETRIC_VERIFY","ATAN","ATAN2","ATAN","AVG","BENCHMARK","BIN","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_XOR","Buffer","CAST","CEIL","CEILING","Centroid","CHAR","CHAR_LENGTH","CHARACTER_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","Contains","CONV","CONVERT","CONVERT_TZ","ConvexHull","COS","COT","COUNT","CRC32","CREATE_ASYMMETRIC_PRIV_KEY","CREATE_ASYMMETRIC_PUB_KEY","CREATE_DH_PARAMETERS","CREATE_DIGEST","Crosses","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEFAULT","DEGREES","DES_DECRYPT","DES_ENCRYPT","DENSE_RANK","Dimension","Disjoint","Distance","ELT","ENCODE","ENCRYPT","EndPoint","Envelope","Equals","EXP","EXPORT_SET","ExteriorRing","EXTRACT","ExtractValue","FIELD","FIND_IN_SET","FIRST_VALUE","FLOOR","FORMAT","FORMAT_BYTES","FORMAT_PICO_TIME","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEN_RANGE","GEN_RND_EMAIL","GEN_RND_PAN","GEN_RND_SSN","GEN_RND_US_PHONE","GeomCollection","GeomCollFromText","GeometryCollectionFromText","GeomCollFromWKB","GeometryCollectionFromWKB","GeometryCollection","GeometryN","GeometryType","GeomFromText","GeometryFromText","GeomFromWKB","GeometryFromWKB","GET_FORMAT","GET_LOCK","GLength","GREATEST","GROUP_CONCAT","GROUPING","GTID_SUBSET","GTID_SUBTRACT","HEX","HOUR","ICU_VERSION","IF","IFNULL","INET_ATON","INET_NTOA","INET6_ATON","INET6_NTOA","INSERT","INSTR","InteriorRingN","Intersects","INTERVAL","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS_USED_LOCK","IS_UUID","IsClosed","IsEmpty","ISNULL","IsSimple","JSON_APPEND","JSON_ARRAY","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_ARRAYAGG","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SCHEMA_VALID","JSON_SCHEMA_VALIDATION_REPORT","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TABLE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","LAG","LAST_DAY","LAST_INSERT_ID","LAST_VALUE","LCASE","LEAD","LEAST","LEFT","LENGTH","LineFromText","LineStringFromText","LineFromWKB","LineStringFromWKB","LineString","LN","LOAD_FILE","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","MAKE_SET","MAKEDATE","MAKETIME","MASK_INNER","MASK_OUTER","MASK_PAN","MASK_PAN_RELAXED","MASK_SSN","MASTER_POS_WAIT","MAX","MBRContains","MBRCoveredBy","MBRCovers","MBRDisjoint","MBREqual","MBREquals","MBRIntersects","MBROverlaps","MBRTouches","MBRWithin","MD5","MEMBER OF","MICROSECOND","MID","MIN","MINUTE","MLineFromText","MultiLineStringFromText","MLineFromWKB","MultiLineStringFromWKB","MOD","MONTH","MONTHNAME","MPointFromText","MultiPointFromText","MPointFromWKB","MultiPointFromWKB","MPolyFromText","MultiPolygonFromText","MPolyFromWKB","MultiPolygonFromWKB","MultiLineString","MultiPoint","MultiPolygon","NAME_CONST","NOT IN","NOW","NTH_VALUE","NTILE","NULLIF","NumGeometries","NumInteriorRings","NumPoints","OCT","OCTET_LENGTH","OLD_PASSWORD","ORD","Overlaps","PASSWORD","PERCENT_RANK","PERIOD_ADD","PERIOD_DIFF","PI","Point","PointFromText","PointFromWKB","PointN","PolyFromText","PolygonFromText","PolyFromWKB","PolygonFromWKB","Polygon","POSITION","POW","POWER","PS_CURRENT_THREAD_ID","PS_THREAD_ID","PROCEDURE ANALYSE","QUARTER","QUOTE","RADIANS","RAND","RANDOM_BYTES","RANK","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_REPLACE","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPEAT","REPLACE","REVERSE","RIGHT","ROLES_GRAPHML","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCHEMA","SEC_TO_TIME","SECOND","SESSION_USER","SHA1","SHA","SHA2","SIGN","SIN","SLEEP","SOUNDEX","SOURCE_POS_WAIT","SPACE","SQRT","SRID","ST_Area","ST_AsBinary","ST_AsWKB","ST_AsGeoJSON","ST_AsText","ST_AsWKT","ST_Buffer","ST_Buffer_Strategy","ST_Centroid","ST_Collect","ST_Contains","ST_ConvexHull","ST_Crosses","ST_Difference","ST_Dimension","ST_Disjoint","ST_Distance","ST_Distance_Sphere","ST_EndPoint","ST_Envelope","ST_Equals","ST_ExteriorRing","ST_FrechetDistance","ST_GeoHash","ST_GeomCollFromText","ST_GeometryCollectionFromText","ST_GeomCollFromTxt","ST_GeomCollFromWKB","ST_GeometryCollectionFromWKB","ST_GeometryN","ST_GeometryType","ST_GeomFromGeoJSON","ST_GeomFromText","ST_GeometryFromText","ST_GeomFromWKB","ST_GeometryFromWKB","ST_HausdorffDistance","ST_InteriorRingN","ST_Intersection","ST_Intersects","ST_IsClosed","ST_IsEmpty","ST_IsSimple","ST_IsValid","ST_LatFromGeoHash","ST_Length","ST_LineFromText","ST_LineStringFromText","ST_LineFromWKB","ST_LineStringFromWKB","ST_LineInterpolatePoint","ST_LineInterpolatePoints","ST_LongFromGeoHash","ST_Longitude","ST_MakeEnvelope","ST_MLineFromText","ST_MultiLineStringFromText","ST_MLineFromWKB","ST_MultiLineStringFromWKB","ST_MPointFromText","ST_MultiPointFromText","ST_MPointFromWKB","ST_MultiPointFromWKB","ST_MPolyFromText","ST_MultiPolygonFromText","ST_MPolyFromWKB","ST_MultiPolygonFromWKB","ST_NumGeometries","ST_NumInteriorRing","ST_NumInteriorRings","ST_NumPoints","ST_Overlaps","ST_PointAtDistance","ST_PointFromGeoHash","ST_PointFromText","ST_PointFromWKB","ST_PointN","ST_PolyFromText","ST_PolygonFromText","ST_PolyFromWKB","ST_PolygonFromWKB","ST_Simplify","ST_SRID","ST_StartPoint","ST_SwapXY","ST_SymDifference","ST_Touches","ST_Transform","ST_Union","ST_Validate","ST_Within","ST_X","ST_Y","StartPoint","STATEMENT_DIGEST","STATEMENT_DIGEST_TEXT","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","STRCMP","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUBTIME","SUM","SYSDATE","SYSTEM_USER","TAN","TIME","TIME_FORMAT","TIME_TO_SEC","TIMEDIFF","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TO_BASE64","TO_DAYS","TO_SECONDS","Touches","TRIM","TRUNCATE","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UpdateXML","UPPER","USER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","UUID_SHORT","UUID_TO_BIN","VALIDATE_PASSWORD_STRENGTH","VALUES","VAR_POP","VAR_SAMP","VARIANCE","VERSION","WAIT_FOR_EXECUTED_GTID_SET","WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS","WEEK","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","Within","X","Y","YEAR","YEARWEEK"],builtinVariables:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@]+/,{cases:{"@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@keywords":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/#+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}],[/"/,{token:"string.double",next:"@stringDouble"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],stringDouble:[[/[^"]+/,"string.double"],[/""/,"string.double"],[/"/,{token:"string.double",next:"@pop"}]],complexIdentifiers:[[/`/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^`]+/,"identifier"],[/``/,"identifier"],[/`/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}}}}]); \ No newline at end of file diff --git a/assets/js/1961.6af70c85.js.LICENSE.txt b/assets/js/1961.6af70c85.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1961.6af70c85.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1984.9797305a.js b/assets/js/1984.9797305a.js new file mode 100644 index 00000000000..c7894ed6e3e --- /dev/null +++ b/assets/js/1984.9797305a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1984],{81984:(e,o,r)=>{r.r(o),r.d(o,{assets:()=>i,contentTitle:()=>n,default:()=>l,frontMatter:()=>a,metadata:()=>m,toc:()=>d});var t=r(87462),s=(r(67294),r(3905));const a={title:"Spreads: Common Errors & Fixes","short-title":"Spreads: Common Errors & Fixes",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/spreads-common-errors-fixes-9701012e9d58"},n=void 0,m={permalink:"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes",source:"@site/blog/2019-10-30-Spreads-Common-Errors-and-Fixes.md",title:"Spreads: Common Errors & Fixes",description:"Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them.",date:"2019-10-30T00:00:00.000Z",formattedDate:"October 30, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Spreads: Common Errors & Fixes","short-title":"Spreads: Common Errors & Fixes",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/spreads-common-errors-fixes-9701012e9d58"},prevItem:{title:"How to upgrade to exact-by-default object type syntax",permalink:"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax"},nextItem:{title:"Live Flow errors in your IDE",permalink:"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE"}},i={authorsImageUrls:[void 0]},d=[],p={toc:d};function l(e){let{components:o,...r}=e;return(0,s.mdx)("wrapper",(0,t.Z)({},p,r,{components:o,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them."))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1992.689143a6.js b/assets/js/1992.689143a6.js new file mode 100644 index 00000000000..73a9a9acec4 --- /dev/null +++ b/assets/js/1992.689143a6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1992],{61992:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>c,toc:()=>i});var a=o(87462),n=(o(67294),o(3905));const r={title:"On the Roadmap: Exact Objects by Default","short-title":"Exact Objects by Default",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/on-the-roadmap-exact-objects-by-default-16b72933c5cf"},s=void 0,c={permalink:"/blog/2018/10/18/Exact-Objects-By-Default",source:"@site/blog/2018-10-18-Exact-Objects-By-Default.md",title:"On the Roadmap: Exact Objects by Default",description:"We are changing object types to be exact by default. We'll be releasing codemods to help you upgrade.",date:"2018-10-18T00:00:00.000Z",formattedDate:"October 18, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"On the Roadmap: Exact Objects by Default","short-title":"Exact Objects by Default",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/on-the-roadmap-exact-objects-by-default-16b72933c5cf"},prevItem:{title:"Asking for Required Annotations",permalink:"/blog/2018/10/29/Asking-for-Required-Annotations"},nextItem:{title:"New Flow Errors on Unknown Property Access in Conditionals",permalink:"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals"}},l={authorsImageUrls:[void 0]},i=[],d={toc:i};function u(e){let{components:t,...o}=e;return(0,n.mdx)("wrapper",(0,a.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"We are changing object types to be exact by default. We'll be releasing codemods to help you upgrade."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2040.39c04ae1.js b/assets/js/2040.39c04ae1.js new file mode 100644 index 00000000000..80f25700d07 --- /dev/null +++ b/assets/js/2040.39c04ae1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2040],{32040:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>r,toc:()=>u});var a=n(87462),s=(n(67294),n(3905));n(45475);const l={title:"Nominal & Structural Typing",slug:"/lang/nominal-structural"},o=void 0,r={unversionedId:"lang/nominal-structural",id:"lang/nominal-structural",title:"Nominal & Structural Typing",description:"A static type checker can use either the name (nominal typing) or the structure (structural typing)",source:"@site/docs/lang/nominal-structural.md",sourceDirName:"lang",slug:"/lang/nominal-structural",permalink:"/en/docs/lang/nominal-structural",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/nominal-structural.md",tags:[],version:"current",frontMatter:{title:"Nominal & Structural Typing",slug:"/lang/nominal-structural"},sidebar:"docsSidebar",previous:{title:"Type Variance",permalink:"/en/docs/lang/variance"},next:{title:"Depth Subtyping",permalink:"/en/docs/lang/depth-subtyping"}},i={},u=[{value:"Nominal typing",id:"toc-nominal-typing",level:2},{value:"Structural typing",id:"toc-structural-typing",level:2},{value:"In Flow",id:"in-flow",level:2},{value:"Functions are structurally typed",id:"toc-functions-are-structurally-typed",level:3},{value:"Objects are structurally typed",id:"toc-objects-are-structurally-typed",level:3},{value:"Classes are nominally typed",id:"toc-classes-are-nominally-typed",level:3},{value:"Opaque types",id:"opaque-types",level:3},{value:"Flow Enums",id:"flow-enums",level:3}],p={toc:u};function m(e){let{components:t,...n}=e;return(0,s.mdx)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"A static type checker can use either the name (nominal typing) or the structure (structural typing)\nof types when comparing them against other types (like when checking if one is a ",(0,s.mdx)("a",{parentName:"p",href:"../subtypes"},"subtype")," of another)."),(0,s.mdx)("h2",{id:"toc-nominal-typing"},"Nominal typing"),(0,s.mdx)("p",null,"Languages like C++, Java, and Swift have primarily nominal type systems."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"// Pseudo code: nominal system\nclass Foo { method(input: string) { /* ... */ } }\nclass Bar { method(input: string) { /* ... */ } }\n\nlet foo: Foo = new Bar(); // Error!\n")),(0,s.mdx)("p",null,"In this pseudo-code example, the nominal type system errors even though both classes have a method of the same name and type.\nThis is because the name (and declaration location) of the classes is different."),(0,s.mdx)("h2",{id:"toc-structural-typing"},"Structural typing"),(0,s.mdx)("p",null,"Languages like Go and Elm have primarily structural type systems."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"// Pseudo code: structural system\nclass Foo { method(input: string) { /* ... */ } }\nclass Bar { method(input: string) { /* ... */ } }\n\nlet foo: Foo = new Bar(); // Works!\n")),(0,s.mdx)("p",null,"In this pseudo-code example, the structural type system allows a ",(0,s.mdx)("inlineCode",{parentName:"p"},"Bar")," to be used as a ",(0,s.mdx)("inlineCode",{parentName:"p"},"Foo"),",\nsince both classes have methods and fields of the same name and type."),(0,s.mdx)("p",null,"If the shape of the classes differ however, then a structural system would produce an error:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"// Pseudo code\nclass Foo { method(input: string) { /* ... */ } }\nclass Bar { method(input: number) { /* ... */ } }\n\nlet foo: Foo = new Bar(); // Error!\n")),(0,s.mdx)("p",null,"We've demonstrated both nominal and structural typing of classes, but there are\nalso other complex types like objects and functions which can also be either\nnominally or structurally compared.\nAdditionally, a type system may have aspects of both structural and nominal systems."),(0,s.mdx)("h2",{id:"in-flow"},"In Flow"),(0,s.mdx)("p",null,"Flow uses structural typing for objects and functions, but nominal typing for classes."),(0,s.mdx)("h3",{id:"toc-functions-are-structurally-typed"},"Functions are structurally typed"),(0,s.mdx)("p",null,"When comparing a ",(0,s.mdx)("a",{parentName:"p",href:"../../types/functions"},"function type")," with a function it must have the same structure\nin order to be considered valid."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type FuncType = (input: string) => void;\nfunction func(input: string) { /* ... */ }\nlet test: FuncType = func; // Works!\n")),(0,s.mdx)("h3",{id:"toc-objects-are-structurally-typed"},"Objects are structurally typed"),(0,s.mdx)("p",null,"When comparing an ",(0,s.mdx)("a",{parentName:"p",href:"../../types/objects"},"object type")," with an object it must have the same structure\nin order to be considered valid."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'type ObjType = {property: string};\nlet obj = {property: "value"};\nlet test: ObjType = obj; // Works\n')),(0,s.mdx)("h3",{id:"toc-classes-are-nominally-typed"},"Classes are nominally typed"),(0,s.mdx)("p",null,"When you have two ",(0,s.mdx)("a",{parentName:"p",href:"../../types/classes"},"classes")," with the same structure, they still are not\nconsidered equivalent because Flow uses nominal typing for classes."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":17,"endLine":3,"endColumn":25,"description":"Cannot assign `new Bar()` to `test` because `Bar` [1] is incompatible with `Foo` [2]. [incompatible-type]"}]','[{"startLine":3,"startColumn":17,"endLine":3,"endColumn":25,"description":"Cannot':!0,assign:!0,"`new":!0,"Bar()`":!0,to:!0,"`test`":!0,because:!0,"`Bar`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"`Foo`":!0,"[2].":!0,'[incompatible-type]"}]':!0},"class Foo { method(input: string) { /* ... */ } }\nclass Bar { method(input: string) { /* ... */ } }\nlet test: Foo = new Bar(); // Error!\n")),(0,s.mdx)("p",null,"If you wanted to use a class structurally you could do that using an ",(0,s.mdx)("a",{parentName:"p",href:"../../types/interfaces"},"interface"),":"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface Interface {\n method(value: string): void;\n};\n\nclass Foo { method(input: string) { /* ... */ } }\nclass Bar { method(input: string) { /* ... */ } }\n\nlet test1: Interface = new Foo(); // Works\nlet test2: Interface = new Bar(); // Works\n")),(0,s.mdx)("h3",{id:"opaque-types"},"Opaque types"),(0,s.mdx)("p",null,"You can use ",(0,s.mdx)("a",{parentName:"p",href:"../../types/opaque-types"},"opaque types")," to turn a previously structurally typed alias into a nominal one (outside of the file that it is defined)."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'// A.js\nexport type MyTypeAlias = string;\nexport opaque type MyOpaqueType = string;\n\nconst x: MyTypeAlias = "hi"; // Works\nconst y: MyOpaqueType = "hi"; // Works\n')),(0,s.mdx)("p",null,"In a different file:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},'// B.js\nimport type {MyTypeAlias, MyOpaqueType} from "A.js";\n\nconst x: MyTypeAlias = "hi"; // Works\nconst y: MyOpaqueType = "hi"; // Error! `MyOpaqueType` is not interchangable with `string`\n// ^^^^ Cannot assign "hi" to y because string is incompatible with MyOpaqueType\n')),(0,s.mdx)("h3",{id:"flow-enums"},"Flow Enums"),(0,s.mdx)("p",null,(0,s.mdx)("a",{parentName:"p",href:"../../enums"},"Flow Enums")," do not allow enum members with the same value, but which belong to different enums, to be used interchangeably."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":8,"startColumn":14,"endLine":8,"endColumn":16,"description":"Cannot assign `B.X` to `a` because `B` [1] is incompatible with `A` [2]. [incompatible-type]"}]','[{"startLine":8,"startColumn":14,"endLine":8,"endColumn":16,"description":"Cannot':!0,assign:!0,"`B.X`":!0,to:!0,"`a`":!0,because:!0,"`B`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"`A`":!0,"[2].":!0,'[incompatible-type]"}]':!0},'enum A {\n X = "x",\n}\nenum B {\n X = "x",\n}\n\nconst a: A = B.X; // Error!\n')))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2060.1ce6877c.js b/assets/js/2060.1ce6877c.js new file mode 100644 index 00000000000..ab296587c95 --- /dev/null +++ b/assets/js/2060.1ce6877c.js @@ -0,0 +1,2 @@ +/*! For license information please see 2060.1ce6877c.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2060],{32060:(e,o,n)=>{n.r(o),n.d(o,{conf:()=>t,language:()=>s});var t={comments:{lineComment:";",blockComment:["#|","|#"]},brackets:[["(",")"],["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".scheme",brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],keywords:["case","do","let","loop","if","else","when","cons","car","cdr","cond","lambda","lambda*","syntax-rules","format","set!","quote","eval","append","list","list?","member?","load"],constants:["#t","#f"],operators:["eq?","eqv?","equal?","and","or","not","null?"],tokenizer:{root:[[/#[xXoObB][0-9a-fA-F]+/,"number.hex"],[/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?/,"number.float"],[/(?:\b(?:(define|define-syntax|define-macro))\b)(\s+)((?:\w|\-|\!|\?)*)/,["keyword","white","variable"]],{include:"@whitespace"},{include:"@strings"},[/[a-zA-Z_#][a-zA-Z0-9_\-\?\!\*]*/,{cases:{"@keywords":"keyword","@constants":"constant","@operators":"operators","@default":"identifier"}}]],comment:[[/[^\|#]+/,"comment"],[/#\|/,"comment","@push"],[/\|#/,"comment","@pop"],[/[\|#]/,"comment"]],whitespace:[[/[ \t\r\n]+/,"white"],[/#\|/,"comment","@comment"],[/;.*$/,"comment"]],strings:[[/"$/,"string","@popall"],[/"(?=.)/,"string","@multiLineString"]],multiLineString:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string.escape"],[/"/,"string","@popall"],[/\\$/,"string"]]}}}}]); \ No newline at end of file diff --git a/assets/js/2060.1ce6877c.js.LICENSE.txt b/assets/js/2060.1ce6877c.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/2060.1ce6877c.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/2060.b7f8986c.js b/assets/js/2060.b7f8986c.js new file mode 100644 index 00000000000..56d7c26ae2d --- /dev/null +++ b/assets/js/2060.b7f8986c.js @@ -0,0 +1,133 @@ +"use strict"; +exports.id = 2060; +exports.ids = [2060]; +exports.modules = { + +/***/ 32060: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/scheme/scheme.ts +var conf = { + comments: { + lineComment: ";", + blockComment: ["#|", "|#"] + }, + brackets: [ + ["(", ")"], + ["{", "}"], + ["[", "]"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' } + ] +}; +var language = { + defaultToken: "", + ignoreCase: true, + tokenPostfix: ".scheme", + brackets: [ + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" } + ], + keywords: [ + "case", + "do", + "let", + "loop", + "if", + "else", + "when", + "cons", + "car", + "cdr", + "cond", + "lambda", + "lambda*", + "syntax-rules", + "format", + "set!", + "quote", + "eval", + "append", + "list", + "list?", + "member?", + "load" + ], + constants: ["#t", "#f"], + operators: ["eq?", "eqv?", "equal?", "and", "or", "not", "null?"], + tokenizer: { + root: [ + [/#[xXoObB][0-9a-fA-F]+/, "number.hex"], + [/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?/, "number.float"], + [ + /(?:\b(?:(define|define-syntax|define-macro))\b)(\s+)((?:\w|\-|\!|\?)*)/, + ["keyword", "white", "variable"] + ], + { include: "@whitespace" }, + { include: "@strings" }, + [ + /[a-zA-Z_#][a-zA-Z0-9_\-\?\!\*]*/, + { + cases: { + "@keywords": "keyword", + "@constants": "constant", + "@operators": "operators", + "@default": "identifier" + } + } + ] + ], + comment: [ + [/[^\|#]+/, "comment"], + [/#\|/, "comment", "@push"], + [/\|#/, "comment", "@pop"], + [/[\|#]/, "comment"] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/#\|/, "comment", "@comment"], + [/;.*$/, "comment"] + ], + strings: [ + [/"$/, "string", "@popall"], + [/"(?=.)/, "string", "@multiLineString"] + ], + multiLineString: [ + [/[^\\"]+$/, "string", "@popall"], + [/[^\\"]+/, "string"], + [/\\./, "string.escape"], + [/"/, "string", "@popall"], + [/\\$/, "string"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/2075.42cb52d9.js b/assets/js/2075.42cb52d9.js new file mode 100644 index 00000000000..760ef95859c --- /dev/null +++ b/assets/js/2075.42cb52d9.js @@ -0,0 +1,2 @@ +/*! For license information please see 2075.42cb52d9.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2075],{62075:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>i,language:()=>r});var i={wordPattern:/(#?-?\d*\.\d\w*%?)|((::|[@#.!:])?[\w-?]+%?)|::|[@#.!:]/g,comments:{blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},r={defaultToken:"",tokenPostfix:".css",ws:"[ \t\n\r\f]*",identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.bracket"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@strings"},["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@selectorname"},["[\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.bracket",next:"@selectorbody"}]],selectorbody:[{include:"@comments"},["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],["}",{token:"delimiter.bracket",next:"@pop"}]],selectorname:[["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@functioninvocation"},{include:"@numbers"},{include:"@name"},{include:"@strings"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","delimiter"],[",","delimiter"]],rulevalue:[{include:"@comments"},{include:"@strings"},{include:"@term"},["!important","keyword"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],urldeclaration:[{include:"@strings"},["[^)\r\n]+","string"],["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[/[^*/]+/,"comment"],[/./,"comment"]],name:[["@identifier","attribute.value"]],numbers:[["-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],keyframedeclaration:[["@identifier","attribute.value"],["{",{token:"delimiter.bracket",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.bracket",next:"@selectorbody"}],["}",{token:"delimiter.bracket",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"attribute.value",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"attribute.value",next:"@pop"}]],strings:[['~?"',{token:"string",next:"@stringenddoublequote"}],["~?'",{token:"string",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string",next:"@pop"}],[/[^\\"]+/,"string"],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string",next:"@pop"}],[/[^\\']+/,"string"],[".","string"]]}}}}]); \ No newline at end of file diff --git a/assets/js/2075.42cb52d9.js.LICENSE.txt b/assets/js/2075.42cb52d9.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/2075.42cb52d9.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/2075.50b99f89.js b/assets/js/2075.50b99f89.js new file mode 100644 index 00000000000..718c36b9fde --- /dev/null +++ b/assets/js/2075.50b99f89.js @@ -0,0 +1,203 @@ +"use strict"; +exports.id = 2075; +exports.ids = [2075]; +exports.modules = { + +/***/ 62075: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/css/css.ts +var conf = { + wordPattern: /(#?-?\d*\.\d\w*%?)|((::|[@#.!:])?[\w-?]+%?)|::|[@#.!:]/g, + comments: { + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}", notIn: ["string", "comment"] }, + { open: "[", close: "]", notIn: ["string", "comment"] }, + { open: "(", close: ")", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string", "comment"] }, + { open: "'", close: "'", notIn: ["string", "comment"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + folding: { + markers: { + start: new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"), + end: new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".css", + ws: "[ \n\r\f]*", + identifier: "-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*", + brackets: [ + { open: "{", close: "}", token: "delimiter.bracket" }, + { open: "[", close: "]", token: "delimiter.bracket" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + tokenizer: { + root: [{ include: "@selector" }], + selector: [ + { include: "@comments" }, + { include: "@import" }, + { include: "@strings" }, + [ + "[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)", + { token: "keyword", next: "@keyframedeclaration" } + ], + ["[@](page|content|font-face|-moz-document)", { token: "keyword" }], + ["[@](charset|namespace)", { token: "keyword", next: "@declarationbody" }], + [ + "(url-prefix)(\\()", + ["attribute.value", { token: "delimiter.parenthesis", next: "@urldeclaration" }] + ], + [ + "(url)(\\()", + ["attribute.value", { token: "delimiter.parenthesis", next: "@urldeclaration" }] + ], + { include: "@selectorname" }, + ["[\\*]", "tag"], + ["[>\\+,]", "delimiter"], + ["\\[", { token: "delimiter.bracket", next: "@selectorattribute" }], + ["{", { token: "delimiter.bracket", next: "@selectorbody" }] + ], + selectorbody: [ + { include: "@comments" }, + ["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))", "attribute.name", "@rulevalue"], + ["}", { token: "delimiter.bracket", next: "@pop" }] + ], + selectorname: [ + ["(\\.|#(?=[^{])|%|(@identifier)|:)+", "tag"] + ], + selectorattribute: [{ include: "@term" }, ["]", { token: "delimiter.bracket", next: "@pop" }]], + term: [ + { include: "@comments" }, + [ + "(url-prefix)(\\()", + ["attribute.value", { token: "delimiter.parenthesis", next: "@urldeclaration" }] + ], + [ + "(url)(\\()", + ["attribute.value", { token: "delimiter.parenthesis", next: "@urldeclaration" }] + ], + { include: "@functioninvocation" }, + { include: "@numbers" }, + { include: "@name" }, + { include: "@strings" }, + ["([<>=\\+\\-\\*\\/\\^\\|\\~,])", "delimiter"], + [",", "delimiter"] + ], + rulevalue: [ + { include: "@comments" }, + { include: "@strings" }, + { include: "@term" }, + ["!important", "keyword"], + [";", "delimiter", "@pop"], + ["(?=})", { token: "", next: "@pop" }] + ], + warndebug: [["[@](warn|debug)", { token: "keyword", next: "@declarationbody" }]], + import: [["[@](import)", { token: "keyword", next: "@declarationbody" }]], + urldeclaration: [ + { include: "@strings" }, + ["[^)\r\n]+", "string"], + ["\\)", { token: "delimiter.parenthesis", next: "@pop" }] + ], + parenthizedterm: [ + { include: "@term" }, + ["\\)", { token: "delimiter.parenthesis", next: "@pop" }] + ], + declarationbody: [ + { include: "@term" }, + [";", "delimiter", "@pop"], + ["(?=})", { token: "", next: "@pop" }] + ], + comments: [ + ["\\/\\*", "comment", "@comment"], + ["\\/\\/+.*", "comment"] + ], + comment: [ + ["\\*\\/", "comment", "@pop"], + [/[^*/]+/, "comment"], + [/./, "comment"] + ], + name: [["@identifier", "attribute.value"]], + numbers: [ + ["-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?", { token: "attribute.value.number", next: "@units" }], + ["#[0-9a-fA-F_]+(?!\\w)", "attribute.value.hex"] + ], + units: [ + [ + "(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?", + "attribute.value.unit", + "@pop" + ] + ], + keyframedeclaration: [ + ["@identifier", "attribute.value"], + ["{", { token: "delimiter.bracket", switchTo: "@keyframebody" }] + ], + keyframebody: [ + { include: "@term" }, + ["{", { token: "delimiter.bracket", next: "@selectorbody" }], + ["}", { token: "delimiter.bracket", next: "@pop" }] + ], + functioninvocation: [ + ["@identifier\\(", { token: "attribute.value", next: "@functionarguments" }] + ], + functionarguments: [ + ["\\$@identifier@ws:", "attribute.name"], + ["[,]", "delimiter"], + { include: "@term" }, + ["\\)", { token: "attribute.value", next: "@pop" }] + ], + strings: [ + ['~?"', { token: "string", next: "@stringenddoublequote" }], + ["~?'", { token: "string", next: "@stringendquote" }] + ], + stringenddoublequote: [ + ["\\\\.", "string"], + ['"', { token: "string", next: "@pop" }], + [/[^\\"]+/, "string"], + [".", "string"] + ], + stringendquote: [ + ["\\\\.", "string"], + ["'", { token: "string", next: "@pop" }], + [/[^\\']+/, "string"], + [".", "string"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/2108.c89cbfba.js b/assets/js/2108.c89cbfba.js new file mode 100644 index 00000000000..450d4bf694a --- /dev/null +++ b/assets/js/2108.c89cbfba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2108],{22108:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>p,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var a=t(87462),r=(t(67294),t(3905));const i={title:"Property Variance and Other Upcoming Changes","short-title":"Property Variance",author:"Sam Goldman",hide_table_of_contents:!0},p=void 0,o={permalink:"/blog/2016/10/04/Property-Variance",source:"@site/blog/2016-10-04-Property-Variance.md",title:"Property Variance and Other Upcoming Changes",description:"The next release of Flow, 0.34, will include a few important changes to object",date:"2016-10-04T00:00:00.000Z",formattedDate:"October 4, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Sam Goldman"}],frontMatter:{title:"Property Variance and Other Upcoming Changes","short-title":"Property Variance",author:"Sam Goldman",hide_table_of_contents:!0},prevItem:{title:"Introducing Flow-Typed",permalink:"/blog/2016/10/13/Flow-Typed"},nextItem:{title:"Windows Support is Here!",permalink:"/blog/2016/08/01/Windows-Support"}},l={authorsImageUrls:[void 0]},s=[{value:"What is Variance?",id:"what-is-variance",level:3},{value:"Input and Output",id:"input-and-output",level:4},{value:"Property Invariance",id:"property-invariance",level:2},{value:"Property Variance",id:"property-variance",level:3},{value:"Invariant-by-default Dictionary Types",id:"invariant-by-default-dictionary-types",level:3},{value:"Covariant-by-default Method Types",id:"covariant-by-default-method-types",level:3},{value:"More Flexible Getters and Setters",id:"more-flexible-getters-and-setters",level:3}],d={toc:s};function m(e){let{components:n,...t}=e;return(0,r.mdx)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"The next release of Flow, 0.34, will include a few important changes to object\ntypes:"),(0,r.mdx)("ul",null,(0,r.mdx)("li",{parentName:"ul"},"property variance,"),(0,r.mdx)("li",{parentName:"ul"},"invariant-by-default dictionary types,"),(0,r.mdx)("li",{parentName:"ul"},"covariant-by-default method types,"),(0,r.mdx)("li",{parentName:"ul"},"and more flexible getters and setters.")),(0,r.mdx)("h3",{id:"what-is-variance"},"What is Variance?"),(0,r.mdx)("p",null,"Defining the subtype relationship between types is a core responsibility of Flow\nas a type system. These relationships are determined either directly for\nsimple types or, for complex types, defined in terms of their parts."),(0,r.mdx)("p",null,"Variance describes the subtyping relationship for complex types as it relates\nto the subtyping relationships of their parts."),(0,r.mdx)("p",null,"For example, Flow directly encodes the knowledge that ",(0,r.mdx)("inlineCode",{parentName:"p"},"string")," is a subtype of\n",(0,r.mdx)("inlineCode",{parentName:"p"},"?string"),". Intuitively, a ",(0,r.mdx)("inlineCode",{parentName:"p"},"string")," type contains string values while a ",(0,r.mdx)("inlineCode",{parentName:"p"},"?string"),"\ntype contains ",(0,r.mdx)("inlineCode",{parentName:"p"},"null"),", ",(0,r.mdx)("inlineCode",{parentName:"p"},"undefined"),", and also string values, so membership in the\nformer naturally implies membership in the later."),(0,r.mdx)("p",null,"The subtype relationships between two function types is not as direct. Rather,\nit is derived from the subtype relationships between the functions' parameter\nand return types."),(0,r.mdx)("p",null,"Let's see how this works for two simple function types:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"type F1 = (x: P1) => R1;\ntype F2 = (x: P2) => R2;\n")),(0,r.mdx)("p",null,"Whether ",(0,r.mdx)("inlineCode",{parentName:"p"},"F2")," is a subtype of ",(0,r.mdx)("inlineCode",{parentName:"p"},"F1")," depends on the relationships between ",(0,r.mdx)("inlineCode",{parentName:"p"},"P1")," and\n",(0,r.mdx)("inlineCode",{parentName:"p"},"P2")," and ",(0,r.mdx)("inlineCode",{parentName:"p"},"R1")," and ",(0,r.mdx)("inlineCode",{parentName:"p"},"R2"),". Let's use the notation ",(0,r.mdx)("inlineCode",{parentName:"p"},"B <: A")," to mean ",(0,r.mdx)("inlineCode",{parentName:"p"},"B")," is a\nsubtype of ",(0,r.mdx)("inlineCode",{parentName:"p"},"A"),"."),(0,r.mdx)("p",null,"It turns out that ",(0,r.mdx)("inlineCode",{parentName:"p"},"F2 <: F1")," if ",(0,r.mdx)("inlineCode",{parentName:"p"},"P1 <: P2")," and ",(0,r.mdx)("inlineCode",{parentName:"p"},"R2 <: R1"),'. Notice that the\nrelationship for parameters is reversed? In technical terms, we can say that\nfunction types are "contravariant" with respect to their parameter types and\n"covariant" with respect to their return types.'),(0,r.mdx)("p",null,"Let's look at an example:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},'function f(callback: (x: string) => ?number): number {\n return callback("hi") || 0;\n}\n')),(0,r.mdx)("p",null,"What kinds of functions can we pass to ",(0,r.mdx)("inlineCode",{parentName:"p"},"f"),"? Based on the subtyping rule above,\nthen we can pass a function whose parameter type is a supertype of ",(0,r.mdx)("inlineCode",{parentName:"p"},"string")," and\nwhose return type is a subtype of ",(0,r.mdx)("inlineCode",{parentName:"p"},"?number"),"."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"function g(x: ?string): number {\n return x ? x.length : 0;\n}\nf(g);\n")),(0,r.mdx)("p",null,"The body of ",(0,r.mdx)("inlineCode",{parentName:"p"},"f")," will only ever pass ",(0,r.mdx)("inlineCode",{parentName:"p"},"string")," values into ",(0,r.mdx)("inlineCode",{parentName:"p"},"g"),", which is safe\nbecause ",(0,r.mdx)("inlineCode",{parentName:"p"},"g")," takes at least ",(0,r.mdx)("inlineCode",{parentName:"p"},"string")," by taking ",(0,r.mdx)("inlineCode",{parentName:"p"},"?string"),". Conversely, ",(0,r.mdx)("inlineCode",{parentName:"p"},"g")," will\nonly ever return ",(0,r.mdx)("inlineCode",{parentName:"p"},"number")," values to ",(0,r.mdx)("inlineCode",{parentName:"p"},"f"),", which is safe because ",(0,r.mdx)("inlineCode",{parentName:"p"},"f")," handles at\nleast ",(0,r.mdx)("inlineCode",{parentName:"p"},"number")," by handling ",(0,r.mdx)("inlineCode",{parentName:"p"},"?number"),"."),(0,r.mdx)("h4",{id:"input-and-output"},"Input and Output"),(0,r.mdx)("p",null,'One convenient way to remember when something is covariant vs. contravariant is\nto think about "input" and "output."'),(0,r.mdx)("p",null,"Parameters are in an ",(0,r.mdx)("em",{parentName:"p"},"input"),' position, often called a "negative" position.\nComplex types are contravariant in their input positions.'),(0,r.mdx)("p",null,"Return is an ",(0,r.mdx)("em",{parentName:"p"},"output"),' position, often called a "positive" position. Complex\ntypes are covariant in their output positions.'),(0,r.mdx)("h2",{id:"property-invariance"},"Property Invariance"),(0,r.mdx)("p",null,"Just as function types are composed of parameter and return types, so too are\nobject types composed of property types. Thus, the subtyping relationship\nbetween objects is derived from the subtyping relationships of their\nproperties."),(0,r.mdx)("p",null,"However, unlike functions which have input parameters and an output return,\nobject properties can be read and written. That is, properties are ",(0,r.mdx)("em",{parentName:"p"},"both")," input\nand output."),(0,r.mdx)("p",null,"Let's see how this works for two simple object types:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"type O1 = {p: T1};\ntype O2 = {p: T2};\n")),(0,r.mdx)("p",null,"As with function types, whether ",(0,r.mdx)("inlineCode",{parentName:"p"},"O2")," is a subtype of ",(0,r.mdx)("inlineCode",{parentName:"p"},"O1")," depends on the\nrelationship between its parts, ",(0,r.mdx)("inlineCode",{parentName:"p"},"T1")," and ",(0,r.mdx)("inlineCode",{parentName:"p"},"T2"),"."),(0,r.mdx)("p",null,"Here it turns out that ",(0,r.mdx)("inlineCode",{parentName:"p"},"O2 <: O1")," if ",(0,r.mdx)("inlineCode",{parentName:"p"},"T2 <: T1")," ",(0,r.mdx)("em",{parentName:"p"},"and")," ",(0,r.mdx)("inlineCode",{parentName:"p"},"T1 <: T2"),'. In technical\nterms, object types are "invariant" with respect to their property types.'),(0,r.mdx)("p",null,"Let's look at an example:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"function f(o: {p: ?string}): void {\n // We can read p from o\n let len: number;\n if (o.p) {\n len = o.p.length;\n } else {\n len = 0;\n }\n\n // We can also write into p\n o.p = null;\n}\n")),(0,r.mdx)("p",null,"What kinds of objects can we pass into ",(0,r.mdx)("inlineCode",{parentName:"p"},"f"),", then? If we try to pass in an\nobject with a subtype property, we get an error:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},'var o1: {p: string} = {p: ""};\nf(o1);\n')),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},'function f(o: {p: ?string}) {}\n ^ null. This type is incompatible with\nvar o1: {p: string} = {p: ""};\n ^ string\nfunction f(o: {p: ?string}) {}\n ^ undefined. This type is incompatible with\nvar o1: {p: string} = {p: ""};\n ^ string\n')),(0,r.mdx)("p",null,"Flow has correctly identified an error here. If the body of ",(0,r.mdx)("inlineCode",{parentName:"p"},"f")," writes ",(0,r.mdx)("inlineCode",{parentName:"p"},"null"),"\ninto ",(0,r.mdx)("inlineCode",{parentName:"p"},"o.p"),", then ",(0,r.mdx)("inlineCode",{parentName:"p"},"o1.p")," would no longer have type ",(0,r.mdx)("inlineCode",{parentName:"p"},"string"),"."),(0,r.mdx)("p",null,"If we try to pass an object with a supertype property, we again get an error:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"var o2: {p: ?(string|number)} = {p: 0};\nf(o2);\n")),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},'var o1: {p: ?(string|number)} = {p: ""};\n ^ number. This type is incompatible with\nfunction f(o: {p: ?string}) {}\n ^ string\n')),(0,r.mdx)("p",null,"Again, Flow correctly identifies an error, because if ",(0,r.mdx)("inlineCode",{parentName:"p"},"f")," tried to read ",(0,r.mdx)("inlineCode",{parentName:"p"},"p"),"\nfrom ",(0,r.mdx)("inlineCode",{parentName:"p"},"o"),", it would find a number."),(0,r.mdx)("h3",{id:"property-variance"},"Property Variance"),(0,r.mdx)("p",null,"So objects have to be invariant with respect to their property types because\nproperties can be read from and written to. But just because you ",(0,r.mdx)("em",{parentName:"p"},"can")," read and\nwrite, doesn't mean you always do."),(0,r.mdx)("p",null,"Consider a function that gets the length of an nullable string property:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"function f(o: {p: ?string}): number {\n return o.p ? o.p.length : 0;\n}\n")),(0,r.mdx)("p",null,"We never write into ",(0,r.mdx)("inlineCode",{parentName:"p"},"o.p"),", so we should be able to pass in an object where the\ntype of property ",(0,r.mdx)("inlineCode",{parentName:"p"},"p")," is a subtype of ",(0,r.mdx)("inlineCode",{parentName:"p"},"?string"),". Until now, this wasn't possible\nin Flow."),(0,r.mdx)("p",null,"With property variance, you can explicitly annotate object properties as being\ncovariant and contravariant. For example, we can rewrite the above function:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},'function f(o: {+p: ?string}): number {\n return o.p ? o.p.length : 0;\n}\n\nvar o: {p: string} = {p: ""};\nf(o); // no type error!\n')),(0,r.mdx)("p",null,"It's crucial that covariant properties only ever appear in output positions. It\nis an error to write to a covariant property:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"function f(o: {+p: ?string}) {\n o.p = null;\n}\n")),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},"o.p = null;\n^ object type. Covariant property `p` incompatible with contravariant use in\no.p = null;\n^ assignment of property `p`\n")),(0,r.mdx)("p",null,"Conversely, if a function only ever writes to a property, we can annotate the\nproperty as contravariant. This might come up in a function that initializes an\nobject with default values, for example."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},'function g(o: {-p: string}): void {\n o.p = "default";\n}\nvar o: {p: ?string} = {p: null};\ng(o);\n')),(0,r.mdx)("p",null,"Contravariant properties can only ever appear in input positions. It is an\nerror to read from a contravariant property:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"function f(o: {-p: string}) {\n o.p.length;\n}\n")),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},"o.p.length;\n^ object type. Contravariant property `p` incompatible with covariant use in\no.p.length;\n^ property `p`\n")),(0,r.mdx)("h3",{id:"invariant-by-default-dictionary-types"},"Invariant-by-default Dictionary Types"),(0,r.mdx)("p",null,"The object type ",(0,r.mdx)("inlineCode",{parentName:"p"},"{[key: string]: ?number}")," describes an object that can be used\nas a map. We can read any property and Flow will infer the result type as\n",(0,r.mdx)("inlineCode",{parentName:"p"},"?number"),". We can also write ",(0,r.mdx)("inlineCode",{parentName:"p"},"null")," or ",(0,r.mdx)("inlineCode",{parentName:"p"},"undefined")," or ",(0,r.mdx)("inlineCode",{parentName:"p"},"number")," into any\nproperty."),(0,r.mdx)("p",null,"In Flow 0.33 and earlier, these dictionary types were treated covariantly by\nthe type system. For example, Flow accepted the following code:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"function f(o: {[key: string]: ?number}) {\n o.p = null;\n}\ndeclare var o: {p: number};\nf(o);\n")),(0,r.mdx)("p",null,"This is unsound because ",(0,r.mdx)("inlineCode",{parentName:"p"},"f")," can overwrite property ",(0,r.mdx)("inlineCode",{parentName:"p"},"p")," with ",(0,r.mdx)("inlineCode",{parentName:"p"},"null"),". In Flow\n0.34, dictionaries are invariant, like named properties. The same code now\nresults in the following type error:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},"function f(o: {[key: string]: ?number}) {}\n ^ null. This type is incompatible with\ndeclare var o: {p: number};\n ^ number\nfunction f(o: {[key: string]: ?number}) {}\n ^ undefined. This type is incompatible with\ndeclare var o: {p: number};\n ^ number\n")),(0,r.mdx)("p",null,"Covariant and contravariant dictionaries can be incredibly useful, though. To\nsupport this, the same syntax used to support variance for named properties can\nbe used for dictionaries as well."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},"function f(o: {+[key: string]: ?number}) {}\ndeclare var o: {p: number};\nf(o); // no type error!\n")),(0,r.mdx)("h3",{id:"covariant-by-default-method-types"},"Covariant-by-default Method Types"),(0,r.mdx)("p",null,"ES6 gave us a shorthand way to write object properties which are functions."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"var o = {\n m(x) {\n return x * 2\n }\n}\n")),(0,r.mdx)("p",null,"Flow now interprets properties which use this shorthand method syntax as\ncovariant by default. This means it is an error to write to the property ",(0,r.mdx)("inlineCode",{parentName:"p"},"m"),"."),(0,r.mdx)("p",null,"If you don't want covariance, you can use the long form syntax:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"var o = {\n m: function(x) {\n return x * 2;\n }\n}\n")),(0,r.mdx)("h3",{id:"more-flexible-getters-and-setters"},"More Flexible Getters and Setters"),(0,r.mdx)("p",null,"In Flow 0.33 and earlier, getters and setters had to agree exactly on their\nreturn type and parameter type, respectively. Flow 0.34 lifts that restriction."),(0,r.mdx)("p",null,"This means you can write code like the following:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},'// @flow\ndeclare var x: string;\n\nvar o = {\n get x(): string {\n return x;\n },\n set x(value: ?string) {\n x = value || "default";\n }\n}\n')))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2140.0307ae92.js b/assets/js/2140.0307ae92.js new file mode 100644 index 00000000000..539911c1ca5 --- /dev/null +++ b/assets/js/2140.0307ae92.js @@ -0,0 +1,2 @@ +/*! For license information please see 2140.0307ae92.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2140],{22140:(e,o,r)=>{r.r(o),r.d(o,{conf:()=>t,language:()=>a});var t={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},a={defaultToken:"",tokenPostfix:".r",roxygen:["@alias","@aliases","@assignee","@author","@backref","@callGraph","@callGraphDepth","@callGraphPrimitives","@concept","@describeIn","@description","@details","@docType","@encoding","@evalNamespace","@evalRd","@example","@examples","@export","@exportClass","@exportMethod","@exportPattern","@family","@field","@formals","@format","@import","@importClassesFrom","@importFrom","@importMethodsFrom","@include","@inherit","@inheritDotParams","@inheritParams","@inheritSection","@keywords","@md","@method","@name","@noMd","@noRd","@note","@param","@rawNamespace","@rawRd","@rdname","@references","@return","@S3method","@section","@seealso","@setClass","@slot","@source","@template","@templateVar","@title","@TODO","@usage","@useDynLib"],constants:["NULL","FALSE","TRUE","NA","Inf","NaN","NA_integer_","NA_real_","NA_complex_","NA_character_","T","F","LETTERS","letters","month.abb","month.name","pi","R.version.string"],keywords:["break","next","return","if","else","for","in","repeat","while","array","category","character","complex","double","function","integer","list","logical","matrix","numeric","vector","data.frame","factor","library","require","attach","detach","source"],special:["\\n","\\r","\\t","\\b","\\a","\\f","\\v","\\'",'\\"',"\\\\"],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],tokenizer:{root:[{include:"@numbers"},{include:"@strings"},[/[{}\[\]()]/,"@brackets"],{include:"@operators"},[/#'$/,"comment.doc"],[/#'/,"comment.doc","@roxygen"],[/(^#.*$)/,"comment"],[/\s+/,"white"],[/[,:;]/,"delimiter"],[/@[a-zA-Z]\w*/,"tag"],[/[a-zA-Z]\w*/,{cases:{"@keywords":"keyword","@constants":"constant","@default":"identifier"}}]],roxygen:[[/@\w+/,{cases:{"@roxygen":"tag","@eos":{token:"comment.doc",next:"@pop"},"@default":"comment.doc"}}],[/\s+/,{cases:{"@eos":{token:"comment.doc",next:"@pop"},"@default":"comment.doc"}}],[/.*/,{token:"comment.doc",next:"@pop"}]],numbers:[[/0[xX][0-9a-fA-F]+/,"number.hex"],[/-?(\d*\.)?\d+([eE][+\-]?\d+)?/,"number"]],operators:[[/<{1,2}-/,"operator"],[/->{1,2}/,"operator"],[/%[^%\s]+%/,"operator"],[/\*\*/,"operator"],[/%%/,"operator"],[/&&/,"operator"],[/\|\|/,"operator"],[/<>/,"operator"],[/[-+=&|!<>^~*/:$]/,"operator"]],strings:[[/'/,"string.escape","@stringBody"],[/"/,"string.escape","@dblStringBody"]],stringBody:[[/\\./,{cases:{"@special":"string","@default":"error-token"}}],[/'/,"string.escape","@popall"],[/./,"string"]],dblStringBody:[[/\\./,{cases:{"@special":"string","@default":"error-token"}}],[/"/,"string.escape","@popall"],[/./,"string"]]}}}}]); \ No newline at end of file diff --git a/assets/js/2140.0307ae92.js.LICENSE.txt b/assets/js/2140.0307ae92.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/2140.0307ae92.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/2140.45018a21.js b/assets/js/2140.45018a21.js new file mode 100644 index 00000000000..3fbc3409d74 --- /dev/null +++ b/assets/js/2140.45018a21.js @@ -0,0 +1,264 @@ +"use strict"; +exports.id = 2140; +exports.ids = [2140]; +exports.modules = { + +/***/ 22140: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/r/r.ts +var conf = { + comments: { + lineComment: "#" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".r", + roxygen: [ + "@alias", + "@aliases", + "@assignee", + "@author", + "@backref", + "@callGraph", + "@callGraphDepth", + "@callGraphPrimitives", + "@concept", + "@describeIn", + "@description", + "@details", + "@docType", + "@encoding", + "@evalNamespace", + "@evalRd", + "@example", + "@examples", + "@export", + "@exportClass", + "@exportMethod", + "@exportPattern", + "@family", + "@field", + "@formals", + "@format", + "@import", + "@importClassesFrom", + "@importFrom", + "@importMethodsFrom", + "@include", + "@inherit", + "@inheritDotParams", + "@inheritParams", + "@inheritSection", + "@keywords", + "@md", + "@method", + "@name", + "@noMd", + "@noRd", + "@note", + "@param", + "@rawNamespace", + "@rawRd", + "@rdname", + "@references", + "@return", + "@S3method", + "@section", + "@seealso", + "@setClass", + "@slot", + "@source", + "@template", + "@templateVar", + "@title", + "@TODO", + "@usage", + "@useDynLib" + ], + constants: [ + "NULL", + "FALSE", + "TRUE", + "NA", + "Inf", + "NaN", + "NA_integer_", + "NA_real_", + "NA_complex_", + "NA_character_", + "T", + "F", + "LETTERS", + "letters", + "month.abb", + "month.name", + "pi", + "R.version.string" + ], + keywords: [ + "break", + "next", + "return", + "if", + "else", + "for", + "in", + "repeat", + "while", + "array", + "category", + "character", + "complex", + "double", + "function", + "integer", + "list", + "logical", + "matrix", + "numeric", + "vector", + "data.frame", + "factor", + "library", + "require", + "attach", + "detach", + "source" + ], + special: ["\\n", "\\r", "\\t", "\\b", "\\a", "\\f", "\\v", "\\'", '\\"', "\\\\"], + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.bracket" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + tokenizer: { + root: [ + { include: "@numbers" }, + { include: "@strings" }, + [/[{}\[\]()]/, "@brackets"], + { include: "@operators" }, + [/#'$/, "comment.doc"], + [/#'/, "comment.doc", "@roxygen"], + [/(^#.*$)/, "comment"], + [/\s+/, "white"], + [/[,:;]/, "delimiter"], + [/@[a-zA-Z]\w*/, "tag"], + [ + /[a-zA-Z]\w*/, + { + cases: { + "@keywords": "keyword", + "@constants": "constant", + "@default": "identifier" + } + } + ] + ], + roxygen: [ + [ + /@\w+/, + { + cases: { + "@roxygen": "tag", + "@eos": { token: "comment.doc", next: "@pop" }, + "@default": "comment.doc" + } + } + ], + [ + /\s+/, + { + cases: { + "@eos": { token: "comment.doc", next: "@pop" }, + "@default": "comment.doc" + } + } + ], + [/.*/, { token: "comment.doc", next: "@pop" }] + ], + numbers: [ + [/0[xX][0-9a-fA-F]+/, "number.hex"], + [/-?(\d*\.)?\d+([eE][+\-]?\d+)?/, "number"] + ], + operators: [ + [/<{1,2}-/, "operator"], + [/->{1,2}/, "operator"], + [/%[^%\s]+%/, "operator"], + [/\*\*/, "operator"], + [/%%/, "operator"], + [/&&/, "operator"], + [/\|\|/, "operator"], + [/<>/, "operator"], + [/[-+=&|!<>^~*/:$]/, "operator"] + ], + strings: [ + [/'/, "string.escape", "@stringBody"], + [/"/, "string.escape", "@dblStringBody"] + ], + stringBody: [ + [ + /\\./, + { + cases: { + "@special": "string", + "@default": "error-token" + } + } + ], + [/'/, "string.escape", "@popall"], + [/./, "string"] + ], + dblStringBody: [ + [ + /\\./, + { + cases: { + "@special": "string", + "@default": "error-token" + } + } + ], + [/"/, "string.escape", "@popall"], + [/./, "string"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/2160.b1954ec2.js b/assets/js/2160.b1954ec2.js new file mode 100644 index 00000000000..e3c840734a9 --- /dev/null +++ b/assets/js/2160.b1954ec2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2160],{92160:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=a(87462),r=(a(67294),a(3905));const o={title:"Property Variance and Other Upcoming Changes","short-title":"Property Variance",author:"Sam Goldman",hide_table_of_contents:!0},i=void 0,l={permalink:"/blog/2016/10/04/Property-Variance",source:"@site/blog/2016-10-04-Property-Variance.md",title:"Property Variance and Other Upcoming Changes",description:"The next release of Flow, 0.34, will include a few important changes to object",date:"2016-10-04T00:00:00.000Z",formattedDate:"October 4, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Sam Goldman"}],frontMatter:{title:"Property Variance and Other Upcoming Changes","short-title":"Property Variance",author:"Sam Goldman",hide_table_of_contents:!0},prevItem:{title:"Introducing Flow-Typed",permalink:"/blog/2016/10/13/Flow-Typed"},nextItem:{title:"Windows Support is Here!",permalink:"/blog/2016/08/01/Windows-Support"}},p={authorsImageUrls:[void 0]},s=[],d={toc:s};function m(e){let{components:t,...a}=e;return(0,r.mdx)("wrapper",(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"The next release of Flow, 0.34, will include a few important changes to object\ntypes:"),(0,r.mdx)("ul",null,(0,r.mdx)("li",{parentName:"ul"},"property variance,"),(0,r.mdx)("li",{parentName:"ul"},"invariant-by-default dictionary types,"),(0,r.mdx)("li",{parentName:"ul"},"covariant-by-default method types,"),(0,r.mdx)("li",{parentName:"ul"},"and more flexible getters and setters.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2175.a467d67a.js b/assets/js/2175.a467d67a.js new file mode 100644 index 00000000000..09795933a4f --- /dev/null +++ b/assets/js/2175.a467d67a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2175],{22175:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>s,contentTitle:()=>r,default:()=>u,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var n=t(87462),a=(t(67294),t(3905));t(45475);const l={title:"Usage",slug:"/usage"},r=void 0,i={unversionedId:"usage",id:"usage",title:"Usage",description:"Once you have installed Flow, you will want to get a feel of how to use Flow at the most basic level. For most new Flow projects, you will follow this general pattern:",source:"@site/docs/usage.md",sourceDirName:".",slug:"/usage",permalink:"/en/docs/usage",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/usage.md",tags:[],version:"current",frontMatter:{title:"Usage",slug:"/usage"},sidebar:"docsSidebar",previous:{title:"Installation",permalink:"/en/docs/install"},next:{title:"FAQ",permalink:"/en/docs/faq"}},s={},c=[{value:"Initialize Your Project",id:"toc-initialize-your-project",level:3},{value:"Run the Flow Background Process",id:"toc-run-the-flow-background-process",level:3},{value:"Prepare Your Code for Flow",id:"toc-prepare-your-code-for-flow",level:3},{value:"Write Flow Code",id:"toc-write-flow-code",level:3},{value:"Check Your Code",id:"toc-check-your-code",level:3}],d={toc:c};function u(e){let{components:o,...t}=e;return(0,a.mdx)("wrapper",(0,n.Z)({},d,t,{components:o,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Once you have ",(0,a.mdx)("a",{parentName:"p",href:"../install/"},"installed")," Flow, you will want to get a feel of how to use Flow at the most basic level. For most new Flow projects, you will follow this general pattern:"),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("a",{parentName:"li",href:"#toc-initialize-your-project"},"Initialize your project")," with ",(0,a.mdx)("inlineCode",{parentName:"li"},"flow init"),"."),(0,a.mdx)("li",{parentName:"ul"},"Start the ",(0,a.mdx)("a",{parentName:"li",href:"#toc-run-the-flow-background-process"},"Flow background process")," with ",(0,a.mdx)("inlineCode",{parentName:"li"},"flow"),"."),(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("a",{parentName:"li",href:"#toc-prepare-your-code-for-flow"},"Determine")," which files Flow will monitor with ",(0,a.mdx)("inlineCode",{parentName:"li"},"// @flow"),"."),(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("a",{parentName:"li",href:"#toc-write-flow-code"},"Write Flow code")," for your project."),(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("a",{parentName:"li",href:"#toc-check-your-code"},"Check your code")," for type errors.")),(0,a.mdx)("h3",{id:"toc-initialize-your-project"},"Initialize Your Project"),(0,a.mdx)("p",null,"Preparing a project for Flow requires only one command:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-sh"},"flow init\n")),(0,a.mdx)("p",null,"Run this command at the top level of your project to create one, empty file called ",(0,a.mdx)("a",{parentName:"p",href:"../config/"},(0,a.mdx)("inlineCode",{parentName:"a"},".flowconfig")),". At its most basic level, ",(0,a.mdx)("inlineCode",{parentName:"p"},".flowconfig")," tells the Flow background process the root of where to begin checking Flow code for errors."),(0,a.mdx)("p",null,"And that is it. Your project is now Flow-enabled."),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},"It is common to have an empty ",(0,a.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file for your project. However, you can ",(0,a.mdx)("a",{parentName:"p",href:"../config/"},"configure and customize Flow")," in many ways through options available to be added to ",(0,a.mdx)("inlineCode",{parentName:"p"},".flowconfig"),".")),(0,a.mdx)("h3",{id:"toc-run-the-flow-background-process"},"Run the Flow Background Process"),(0,a.mdx)("p",null,"The core benefit to Flow is its ability to quickly check your code for errors. Once you have enabled your project for Flow, you can start the process that allows Flow to check your code incrementally and with great speed."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-sh"},"flow status\n")),(0,a.mdx)("p",null,"This command first starts a background process that will check all ",(0,a.mdx)("a",{parentName:"p",href:"#toc-prepare-your-code-for-flow"},"Flow files")," for errors. The background process continues running, monitoring changes to your code and checking those changes incrementally for errors."),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},"You can also type ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow")," to accomplish the same effect as ",(0,a.mdx)("inlineCode",{parentName:"p"},"status")," is the default flag to the ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow")," binary.")),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},"Only one background process will be running at any given time, so if you run ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow status")," multiple times, it will use the same process.")),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},"To stop the background process, run ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow stop"),".")),(0,a.mdx)("h3",{id:"toc-prepare-your-code-for-flow"},"Prepare Your Code for Flow"),(0,a.mdx)("p",null,"The Flow background process monitors all Flow files. However, how does it know which files are Flow files and, thus, should be checked? Placing the following ",(0,a.mdx)("strong",{parentName:"p"},"before any code")," in a JavaScript file is the flag the process uses to answer that question."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"// @flow\n")),(0,a.mdx)("p",null,"This flag is in the form of a normal JavaScript comment annotated with ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow"),". The Flow background process gathers all the files with this flag and uses the type information available from all of these files to ensure consistency and error free programming."),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},"You can also use the form ",(0,a.mdx)("inlineCode",{parentName:"p"},"/* @flow */")," for the flag as well.")),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},"For files in your project without this flag, the Flow background process skips and ignores the code (unless you call ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow check --all"),", which is beyond the scope of basic usage).")),(0,a.mdx)("h3",{id:"toc-write-flow-code"},"Write Flow Code"),(0,a.mdx)("p",null,"Now that all the setup and initialization is complete, you are ready to write actual Flow code. For each file that you have flagged with ",(0,a.mdx)("inlineCode",{parentName:"p"},"// @flow"),", you now have the full power of Flow and its type-checking available to you. Here is an example Flow file:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":12,"endLine":3,"endColumn":12,"description":"Cannot return `x` because number [1] is incompatible with string [2]. [incompatible-return]"}]','[{"startLine":3,"startColumn":12,"endLine":3,"endColumn":12,"description":"Cannot':!0,return:!0,"`x`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,string:!0,"[2].":!0,'[incompatible-return]"}]':!0},'function foo(x: ?number): string {\n if (x) {\n return x;\n }\n return "default string";\n}\n')),(0,a.mdx)("p",null,"Notice the types added to the parameter of the function along with a return type at the end of the function. You might be able to tell from looking at this code that there is an error in the return type since the function can also return a ",(0,a.mdx)("inlineCode",{parentName:"p"},"number"),". However, you do not need to visually inspect the code since the Flow background process will be able to catch this error for you when you ",(0,a.mdx)("a",{parentName:"p",href:"#toc-check-your-code"},"check your code"),"."),(0,a.mdx)("h3",{id:"toc-check-your-code"},"Check Your Code"),(0,a.mdx)("p",null,"The great thing about Flow is that you can get near real-time feedback on the state of your code. At any point that you want to check for errors, just run:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-sh"},"# equivalent to `flow status`\nflow\n")),(0,a.mdx)("p",null,"The first time this is run, the ",(0,a.mdx)("a",{parentName:"p",href:"#toc-run-flow-background-process"},"Flow background process")," will be spawned and all of your Flow files will be checked. Then, as you continue to iterate on your project, the background process will continuously monitor your code such that when you run ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow")," again, the updated result will be near instantaneous."),(0,a.mdx)("p",null,"For the ",(0,a.mdx)("a",{parentName:"p",href:"#toc-write-flow-code"},"code above"),", running ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow")," will yield:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-sh"},"3:12-3:12: Cannot return `x` because number is incompatible with string. [incompatible-return]\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2240.a40b3926.js b/assets/js/2240.a40b3926.js new file mode 100644 index 00000000000..6f3d3b67d4b --- /dev/null +++ b/assets/js/2240.a40b3926.js @@ -0,0 +1,2 @@ +/*! For license information please see 2240.a40b3926.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2240],{92240:(e,t,i)=>{i.r(t),i.d(t,{conf:()=>n,language:()=>o});var n={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'"},{open:'"',close:'"'}],autoClosingPairs:[{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["comment"]},{open:'"""',close:'"""'},{open:"`",close:"`",notIn:["string","comment"]},{open:"(",close:")"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"<<",close:">>"}],indentationRules:{increaseIndentPattern:/^\s*(after|else|catch|rescue|fn|[^#]*(do|<\-|\->|\{|\[|\=))\s*$/,decreaseIndentPattern:/^\s*((\}|\])\s*$|(after|else|catch|rescue|end)\b)/}},o={defaultToken:"source",tokenPostfix:".elixir",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"<<",close:">>",token:"delimiter.angle.special"}],declarationKeywords:["def","defp","defn","defnp","defguard","defguardp","defmacro","defmacrop","defdelegate","defcallback","defmacrocallback","defmodule","defprotocol","defexception","defimpl","defstruct"],operatorKeywords:["and","in","not","or","when"],namespaceKeywords:["alias","import","require","use"],otherKeywords:["after","case","catch","cond","do","else","end","fn","for","if","quote","raise","receive","rescue","super","throw","try","unless","unquote_splicing","unquote","with"],constants:["true","false","nil"],nameBuiltin:["__MODULE__","__DIR__","__ENV__","__CALLER__","__STACKTRACE__"],operator:/-[->]?|!={0,2}|\*{1,2}|\/|\\\\|&{1,3}|\.\.?|\^(?:\^\^)?|\+\+?|<(?:-|<<|=|>|\|>|~>?)?|=~|={1,3}|>(?:=|>>)?|\|~>|\|>|\|{1,3}|~>>?|~~~|::/,variableName:/[a-z_][a-zA-Z0-9_]*[?!]?/,atomName:/[a-zA-Z_][a-zA-Z0-9_@]*[?!]?|@specialAtomName|@operator/,specialAtomName:/\.\.\.|<<>>|%\{\}|%|\{\}/,aliasPart:/[A-Z][a-zA-Z0-9_]*/,moduleName:/@aliasPart(?:\.@aliasPart)*/,sigilSymmetricDelimiter:/"""|'''|"|'|\/|\|/,sigilStartDelimiter:/@sigilSymmetricDelimiter|<|\{|\[|\(/,sigilEndDelimiter:/@sigilSymmetricDelimiter|>|\}|\]|\)/,sigilModifiers:/[a-zA-Z0-9]*/,decimal:/\d(?:_?\d)*/,hex:/[0-9a-fA-F](_?[0-9a-fA-F])*/,octal:/[0-7](_?[0-7])*/,binary:/[01](_?[01])*/,escape:/\\u[0-9a-fA-F]{4}|\\x[0-9a-fA-F]{2}|\\./,tokenizer:{root:[{include:"@whitespace"},{include:"@comments"},{include:"@keywordsShorthand"},{include:"@numbers"},{include:"@identifiers"},{include:"@strings"},{include:"@atoms"},{include:"@sigils"},{include:"@attributes"},{include:"@symbols"}],whitespace:[[/\s+/,"white"]],comments:[[/(#)(.*)/,["comment.punctuation","comment"]]],keywordsShorthand:[[/(@atomName)(:)/,["constant","constant.punctuation"]],[/"(?=([^"]|#\{.*?\}|\\")*":)/,{token:"constant.delimiter",next:"@doubleQuotedStringKeyword"}],[/'(?=([^']|#\{.*?\}|\\')*':)/,{token:"constant.delimiter",next:"@singleQuotedStringKeyword"}]],doubleQuotedStringKeyword:[[/":/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringKeyword:[[/':/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],numbers:[[/0b@binary/,"number.binary"],[/0o@octal/,"number.octal"],[/0x@hex/,"number.hex"],[/@decimal\.@decimal([eE]-?@decimal)?/,"number.float"],[/@decimal/,"number"]],identifiers:[[/\b(defp?|defnp?|defmacrop?|defguardp?|defdelegate)(\s+)(@variableName)(?!\s+@operator)/,["keyword.declaration","white",{cases:{unquote:"keyword","@default":"function"}}]],[/(@variableName)(?=\s*\.?\s*\()/,{cases:{"@declarationKeywords":"keyword.declaration","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@default":"function.call"}}],[/(@moduleName)(\s*)(\.)(\s*)(@variableName)/,["type.identifier","white","operator","white","function.call"]],[/(:)(@atomName)(\s*)(\.)(\s*)(@variableName)/,["constant.punctuation","constant","white","operator","white","function.call"]],[/(\|>)(\s*)(@variableName)/,["operator","white",{cases:{"@otherKeywords":"keyword","@default":"function.call"}}]],[/(&)(\s*)(@variableName)/,["operator","white","function.call"]],[/@variableName/,{cases:{"@declarationKeywords":"keyword.declaration","@operatorKeywords":"keyword.operator","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@constants":"constant.language","@nameBuiltin":"variable.language","_.*":"comment.unused","@default":"identifier"}}],[/@moduleName/,"type.identifier"]],strings:[[/"""/,{token:"string.delimiter",next:"@doubleQuotedHeredoc"}],[/'''/,{token:"string.delimiter",next:"@singleQuotedHeredoc"}],[/"/,{token:"string.delimiter",next:"@doubleQuotedString"}],[/'/,{token:"string.delimiter",next:"@singleQuotedString"}]],doubleQuotedHeredoc:[[/"""/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedHeredoc:[[/'''/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],doubleQuotedString:[[/"/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedString:[[/'/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],atoms:[[/(:)(@atomName)/,["constant.punctuation","constant"]],[/:"/,{token:"constant.delimiter",next:"@doubleQuotedStringAtom"}],[/:'/,{token:"constant.delimiter",next:"@singleQuotedStringAtom"}]],doubleQuotedStringAtom:[[/"/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringAtom:[[/'/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],sigils:[[/~[a-z]@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.interpol"}],[/~[A-Z]@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.noInterpol"}]],sigil:[[/~([a-zA-Z])\{/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.{.}"}],[/~([a-zA-Z])\[/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.[.]"}],[/~([a-zA-Z])\(/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.(.)"}],[/~([a-zA-Z])\"}],[/~([a-zA-Z])(@sigilSymmetricDelimiter)/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.$2.$2"}]],"sigilStart.interpol.s":[[/~s@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.s":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContentInterpol"}],"sigilStart.noInterpol.S":[[/~S@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.S":[[/(^|[^\\])\\@sigilEndDelimiter/,"string"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContent"}],"sigilStart.interpol.r":[[/~r@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.r":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContentInterpol"}],"sigilStart.noInterpol.R":[[/~R@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.R":[[/(^|[^\\])\\@sigilEndDelimiter/,"regexp"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContent"}],"sigilStart.interpol":[[/~([a-zA-Z])@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContentInterpol"}],"sigilStart.noInterpol":[[/~([a-zA-Z])@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol":[[/(^|[^\\])\\@sigilEndDelimiter/,"sigil"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContent"}],attributes:[[/\@(module|type)?doc (~[sS])?"""/,{token:"comment.block.documentation",next:"@doubleQuotedHeredocDocstring"}],[/\@(module|type)?doc (~[sS])?"/,{token:"comment.block.documentation",next:"@doubleQuotedStringDocstring"}],[/\@(module|type)?doc false/,"comment.block.documentation"],[/\@(@variableName)/,"variable"]],doubleQuotedHeredocDocstring:[[/"""/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],doubleQuotedStringDocstring:[[/"/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],symbols:[[/\?(\\.|[^\\\s])/,"number.constant"],[/&\d+/,"operator"],[/<<<|>>>/,"operator"],[/[()\[\]\{\}]|<<|>>/,"@brackets"],[/\.\.\./,"identifier"],[/=>/,"punctuation"],[/@operator/,"operator"],[/[:;,.%]/,"punctuation"]],stringContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringContent"}],stringContent:[[/./,"string"]],stringConstantContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringConstantContent"}],stringConstantContent:[[/./,"constant"]],regexpContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@regexpContent"}],regexpContent:[[/(\s)(#)(\s.*)$/,["white","comment.punctuation","comment"]],[/./,"regexp"]],sigilContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@sigilContent"}],sigilContent:[[/./,"sigil"]],docstringContent:[[/./,"comment.block.documentation"]],escapeChar:[[/@escape/,"constant.character.escape"]],interpolation:[[/#{/,{token:"delimiter.bracket.embed",next:"@interpolationContinue"}]],interpolationContinue:[[/}/,{token:"delimiter.bracket.embed",next:"@pop"}],{include:"@root"}]}}}}]); \ No newline at end of file diff --git a/assets/js/2240.a40b3926.js.LICENSE.txt b/assets/js/2240.a40b3926.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/2240.a40b3926.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/2240.f7ab52d2.js b/assets/js/2240.f7ab52d2.js new file mode 100644 index 00000000000..e0bc67e7e93 --- /dev/null +++ b/assets/js/2240.f7ab52d2.js @@ -0,0 +1,486 @@ +"use strict"; +exports.id = 2240; +exports.ids = [2240]; +exports.modules = { + +/***/ 92240: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/elixir/elixir.ts +var conf = { + comments: { + lineComment: "#" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "'", close: "'" }, + { open: '"', close: '"' } + ], + autoClosingPairs: [ + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["comment"] }, + { open: '"""', close: '"""' }, + { open: "`", close: "`", notIn: ["string", "comment"] }, + { open: "(", close: ")" }, + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "<<", close: ">>" } + ], + indentationRules: { + increaseIndentPattern: /^\s*(after|else|catch|rescue|fn|[^#]*(do|<\-|\->|\{|\[|\=))\s*$/, + decreaseIndentPattern: /^\s*((\}|\])\s*$|(after|else|catch|rescue|end)\b)/ + } +}; +var language = { + defaultToken: "source", + tokenPostfix: ".elixir", + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "<<", close: ">>", token: "delimiter.angle.special" } + ], + declarationKeywords: [ + "def", + "defp", + "defn", + "defnp", + "defguard", + "defguardp", + "defmacro", + "defmacrop", + "defdelegate", + "defcallback", + "defmacrocallback", + "defmodule", + "defprotocol", + "defexception", + "defimpl", + "defstruct" + ], + operatorKeywords: ["and", "in", "not", "or", "when"], + namespaceKeywords: ["alias", "import", "require", "use"], + otherKeywords: [ + "after", + "case", + "catch", + "cond", + "do", + "else", + "end", + "fn", + "for", + "if", + "quote", + "raise", + "receive", + "rescue", + "super", + "throw", + "try", + "unless", + "unquote_splicing", + "unquote", + "with" + ], + constants: ["true", "false", "nil"], + nameBuiltin: ["__MODULE__", "__DIR__", "__ENV__", "__CALLER__", "__STACKTRACE__"], + operator: /-[->]?|!={0,2}|\*{1,2}|\/|\\\\|&{1,3}|\.\.?|\^(?:\^\^)?|\+\+?|<(?:-|<<|=|>|\|>|~>?)?|=~|={1,3}|>(?:=|>>)?|\|~>|\|>|\|{1,3}|~>>?|~~~|::/, + variableName: /[a-z_][a-zA-Z0-9_]*[?!]?/, + atomName: /[a-zA-Z_][a-zA-Z0-9_@]*[?!]?|@specialAtomName|@operator/, + specialAtomName: /\.\.\.|<<>>|%\{\}|%|\{\}/, + aliasPart: /[A-Z][a-zA-Z0-9_]*/, + moduleName: /@aliasPart(?:\.@aliasPart)*/, + sigilSymmetricDelimiter: /"""|'''|"|'|\/|\|/, + sigilStartDelimiter: /@sigilSymmetricDelimiter|<|\{|\[|\(/, + sigilEndDelimiter: /@sigilSymmetricDelimiter|>|\}|\]|\)/, + sigilModifiers: /[a-zA-Z0-9]*/, + decimal: /\d(?:_?\d)*/, + hex: /[0-9a-fA-F](_?[0-9a-fA-F])*/, + octal: /[0-7](_?[0-7])*/, + binary: /[01](_?[01])*/, + escape: /\\u[0-9a-fA-F]{4}|\\x[0-9a-fA-F]{2}|\\./, + tokenizer: { + root: [ + { include: "@whitespace" }, + { include: "@comments" }, + { include: "@keywordsShorthand" }, + { include: "@numbers" }, + { include: "@identifiers" }, + { include: "@strings" }, + { include: "@atoms" }, + { include: "@sigils" }, + { include: "@attributes" }, + { include: "@symbols" } + ], + whitespace: [[/\s+/, "white"]], + comments: [[/(#)(.*)/, ["comment.punctuation", "comment"]]], + keywordsShorthand: [ + [/(@atomName)(:)/, ["constant", "constant.punctuation"]], + [ + /"(?=([^"]|#\{.*?\}|\\")*":)/, + { token: "constant.delimiter", next: "@doubleQuotedStringKeyword" } + ], + [ + /'(?=([^']|#\{.*?\}|\\')*':)/, + { token: "constant.delimiter", next: "@singleQuotedStringKeyword" } + ] + ], + doubleQuotedStringKeyword: [ + [/":/, { token: "constant.delimiter", next: "@pop" }], + { include: "@stringConstantContentInterpol" } + ], + singleQuotedStringKeyword: [ + [/':/, { token: "constant.delimiter", next: "@pop" }], + { include: "@stringConstantContentInterpol" } + ], + numbers: [ + [/0b@binary/, "number.binary"], + [/0o@octal/, "number.octal"], + [/0x@hex/, "number.hex"], + [/@decimal\.@decimal([eE]-?@decimal)?/, "number.float"], + [/@decimal/, "number"] + ], + identifiers: [ + [ + /\b(defp?|defnp?|defmacrop?|defguardp?|defdelegate)(\s+)(@variableName)(?!\s+@operator)/, + [ + "keyword.declaration", + "white", + { + cases: { + unquote: "keyword", + "@default": "function" + } + } + ] + ], + [ + /(@variableName)(?=\s*\.?\s*\()/, + { + cases: { + "@declarationKeywords": "keyword.declaration", + "@namespaceKeywords": "keyword", + "@otherKeywords": "keyword", + "@default": "function.call" + } + } + ], + [ + /(@moduleName)(\s*)(\.)(\s*)(@variableName)/, + ["type.identifier", "white", "operator", "white", "function.call"] + ], + [ + /(:)(@atomName)(\s*)(\.)(\s*)(@variableName)/, + ["constant.punctuation", "constant", "white", "operator", "white", "function.call"] + ], + [ + /(\|>)(\s*)(@variableName)/, + [ + "operator", + "white", + { + cases: { + "@otherKeywords": "keyword", + "@default": "function.call" + } + } + ] + ], + [ + /(&)(\s*)(@variableName)/, + ["operator", "white", "function.call"] + ], + [ + /@variableName/, + { + cases: { + "@declarationKeywords": "keyword.declaration", + "@operatorKeywords": "keyword.operator", + "@namespaceKeywords": "keyword", + "@otherKeywords": "keyword", + "@constants": "constant.language", + "@nameBuiltin": "variable.language", + "_.*": "comment.unused", + "@default": "identifier" + } + } + ], + [/@moduleName/, "type.identifier"] + ], + strings: [ + [/"""/, { token: "string.delimiter", next: "@doubleQuotedHeredoc" }], + [/'''/, { token: "string.delimiter", next: "@singleQuotedHeredoc" }], + [/"/, { token: "string.delimiter", next: "@doubleQuotedString" }], + [/'/, { token: "string.delimiter", next: "@singleQuotedString" }] + ], + doubleQuotedHeredoc: [ + [/"""/, { token: "string.delimiter", next: "@pop" }], + { include: "@stringContentInterpol" } + ], + singleQuotedHeredoc: [ + [/'''/, { token: "string.delimiter", next: "@pop" }], + { include: "@stringContentInterpol" } + ], + doubleQuotedString: [ + [/"/, { token: "string.delimiter", next: "@pop" }], + { include: "@stringContentInterpol" } + ], + singleQuotedString: [ + [/'/, { token: "string.delimiter", next: "@pop" }], + { include: "@stringContentInterpol" } + ], + atoms: [ + [/(:)(@atomName)/, ["constant.punctuation", "constant"]], + [/:"/, { token: "constant.delimiter", next: "@doubleQuotedStringAtom" }], + [/:'/, { token: "constant.delimiter", next: "@singleQuotedStringAtom" }] + ], + doubleQuotedStringAtom: [ + [/"/, { token: "constant.delimiter", next: "@pop" }], + { include: "@stringConstantContentInterpol" } + ], + singleQuotedStringAtom: [ + [/'/, { token: "constant.delimiter", next: "@pop" }], + { include: "@stringConstantContentInterpol" } + ], + sigils: [ + [/~[a-z]@sigilStartDelimiter/, { token: "@rematch", next: "@sigil.interpol" }], + [/~[A-Z]@sigilStartDelimiter/, { token: "@rematch", next: "@sigil.noInterpol" }] + ], + sigil: [ + [/~([a-zA-Z])\{/, { token: "@rematch", switchTo: "@sigilStart.$S2.$1.{.}" }], + [/~([a-zA-Z])\[/, { token: "@rematch", switchTo: "@sigilStart.$S2.$1.[.]" }], + [/~([a-zA-Z])\(/, { token: "@rematch", switchTo: "@sigilStart.$S2.$1.(.)" }], + [/~([a-zA-Z])\" }], + [ + /~([a-zA-Z])(@sigilSymmetricDelimiter)/, + { token: "@rematch", switchTo: "@sigilStart.$S2.$1.$2.$2" } + ] + ], + "sigilStart.interpol.s": [ + [ + /~s@sigilStartDelimiter/, + { + token: "string.delimiter", + switchTo: "@sigilContinue.$S2.$S3.$S4.$S5" + } + ] + ], + "sigilContinue.interpol.s": [ + [ + /(@sigilEndDelimiter)@sigilModifiers/, + { + cases: { + "$1==$S5": { token: "string.delimiter", next: "@pop" }, + "@default": "string" + } + } + ], + { include: "@stringContentInterpol" } + ], + "sigilStart.noInterpol.S": [ + [ + /~S@sigilStartDelimiter/, + { + token: "string.delimiter", + switchTo: "@sigilContinue.$S2.$S3.$S4.$S5" + } + ] + ], + "sigilContinue.noInterpol.S": [ + [/(^|[^\\])\\@sigilEndDelimiter/, "string"], + [ + /(@sigilEndDelimiter)@sigilModifiers/, + { + cases: { + "$1==$S5": { token: "string.delimiter", next: "@pop" }, + "@default": "string" + } + } + ], + { include: "@stringContent" } + ], + "sigilStart.interpol.r": [ + [ + /~r@sigilStartDelimiter/, + { + token: "regexp.delimiter", + switchTo: "@sigilContinue.$S2.$S3.$S4.$S5" + } + ] + ], + "sigilContinue.interpol.r": [ + [ + /(@sigilEndDelimiter)@sigilModifiers/, + { + cases: { + "$1==$S5": { token: "regexp.delimiter", next: "@pop" }, + "@default": "regexp" + } + } + ], + { include: "@regexpContentInterpol" } + ], + "sigilStart.noInterpol.R": [ + [ + /~R@sigilStartDelimiter/, + { + token: "regexp.delimiter", + switchTo: "@sigilContinue.$S2.$S3.$S4.$S5" + } + ] + ], + "sigilContinue.noInterpol.R": [ + [/(^|[^\\])\\@sigilEndDelimiter/, "regexp"], + [ + /(@sigilEndDelimiter)@sigilModifiers/, + { + cases: { + "$1==$S5": { token: "regexp.delimiter", next: "@pop" }, + "@default": "regexp" + } + } + ], + { include: "@regexpContent" } + ], + "sigilStart.interpol": [ + [ + /~([a-zA-Z])@sigilStartDelimiter/, + { + token: "sigil.delimiter", + switchTo: "@sigilContinue.$S2.$S3.$S4.$S5" + } + ] + ], + "sigilContinue.interpol": [ + [ + /(@sigilEndDelimiter)@sigilModifiers/, + { + cases: { + "$1==$S5": { token: "sigil.delimiter", next: "@pop" }, + "@default": "sigil" + } + } + ], + { include: "@sigilContentInterpol" } + ], + "sigilStart.noInterpol": [ + [ + /~([a-zA-Z])@sigilStartDelimiter/, + { + token: "sigil.delimiter", + switchTo: "@sigilContinue.$S2.$S3.$S4.$S5" + } + ] + ], + "sigilContinue.noInterpol": [ + [/(^|[^\\])\\@sigilEndDelimiter/, "sigil"], + [ + /(@sigilEndDelimiter)@sigilModifiers/, + { + cases: { + "$1==$S5": { token: "sigil.delimiter", next: "@pop" }, + "@default": "sigil" + } + } + ], + { include: "@sigilContent" } + ], + attributes: [ + [ + /\@(module|type)?doc (~[sS])?"""/, + { + token: "comment.block.documentation", + next: "@doubleQuotedHeredocDocstring" + } + ], + [ + /\@(module|type)?doc (~[sS])?"/, + { + token: "comment.block.documentation", + next: "@doubleQuotedStringDocstring" + } + ], + [/\@(module|type)?doc false/, "comment.block.documentation"], + [/\@(@variableName)/, "variable"] + ], + doubleQuotedHeredocDocstring: [ + [/"""/, { token: "comment.block.documentation", next: "@pop" }], + { include: "@docstringContent" } + ], + doubleQuotedStringDocstring: [ + [/"/, { token: "comment.block.documentation", next: "@pop" }], + { include: "@docstringContent" } + ], + symbols: [ + [/\?(\\.|[^\\\s])/, "number.constant"], + [/&\d+/, "operator"], + [/<<<|>>>/, "operator"], + [/[()\[\]\{\}]|<<|>>/, "@brackets"], + [/\.\.\./, "identifier"], + [/=>/, "punctuation"], + [/@operator/, "operator"], + [/[:;,.%]/, "punctuation"] + ], + stringContentInterpol: [ + { include: "@interpolation" }, + { include: "@escapeChar" }, + { include: "@stringContent" } + ], + stringContent: [[/./, "string"]], + stringConstantContentInterpol: [ + { include: "@interpolation" }, + { include: "@escapeChar" }, + { include: "@stringConstantContent" } + ], + stringConstantContent: [[/./, "constant"]], + regexpContentInterpol: [ + { include: "@interpolation" }, + { include: "@escapeChar" }, + { include: "@regexpContent" } + ], + regexpContent: [ + [/(\s)(#)(\s.*)$/, ["white", "comment.punctuation", "comment"]], + [/./, "regexp"] + ], + sigilContentInterpol: [ + { include: "@interpolation" }, + { include: "@escapeChar" }, + { include: "@sigilContent" } + ], + sigilContent: [[/./, "sigil"]], + docstringContent: [[/./, "comment.block.documentation"]], + escapeChar: [[/@escape/, "constant.character.escape"]], + interpolation: [[/#{/, { token: "delimiter.bracket.embed", next: "@interpolationContinue" }]], + interpolationContinue: [ + [/}/, { token: "delimiter.bracket.embed", next: "@pop" }], + { include: "@root" } + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/2259.ff9afb23.js b/assets/js/2259.ff9afb23.js new file mode 100644 index 00000000000..d2913de4289 --- /dev/null +++ b/assets/js/2259.ff9afb23.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2259],{82259:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var a=n(87462),o=(n(67294),n(3905));const i={title:"Announcing Disjoint Unions","short-title":"Disjoint Unions",author:"Avik Chaudhuri",hide_table_of_contents:!0},r=void 0,s={permalink:"/blog/2015/07/03/Disjoint-Unions",source:"@site/blog/2015-07-03-Disjoint-Unions.md",title:"Announcing Disjoint Unions",description:"Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:",date:"2015-07-03T00:00:00.000Z",formattedDate:"July 3, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Avik Chaudhuri"}],frontMatter:{title:"Announcing Disjoint Unions","short-title":"Disjoint Unions",author:"Avik Chaudhuri",hide_table_of_contents:!0},prevItem:{title:"Version-0.14.0",permalink:"/blog/2015/07/29/Version-0.14.0"},nextItem:{title:"Announcing Bounded Polymorphism",permalink:"/blog/2015/03/12/Bounded-Polymorphism"}},l={authorsImageUrls:[void 0]},d=[{value:"The problem",id:"the-problem",level:2},{value:"The solution",id:"the-solution",level:2},{value:"Why we built this",id:"why-we-built-this",level:2}],p={toc:d};function m(e){let{components:t,...n}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:"),(0,o.mdx)("ul",null,(0,o.mdx)("li",{parentName:"ul"},"Specifying such data by a set of disjoint cases, distinguished by \u201ctags\u201d, where each tag is associated with a different \u201crecord\u201d of properties. (These descriptions are called \u201cdisjoint union\u201d or \u201cvariant\u201d types.)"),(0,o.mdx)("li",{parentName:"ul"},"Doing case analysis on such data, by checking tags and then directly accessing the associated record of properties. (The common way to do such case analysis is by pattern matching.)")),(0,o.mdx)("p",null,"Examples of programs that analyze or transform such data range from compilers working with abstract syntax trees, to operations that may return exceptional values, with much more in between!"),(0,o.mdx)("p",null,'As of Flow 0.13.1 it is now possible to program in this style in JavaScript in a type-safe manner. You can define a disjoint union of object types and do case analysis on objects of that type by switching on the value of some common property (called a "sentinel") in those object types.'),(0,o.mdx)("p",null,"Flow's syntax for disjoint unions looks like:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-javascript"},'type BinaryTree =\n { kind: "leaf", value: number } |\n { kind: "branch", left: BinaryTree, right: BinaryTree }\n\nfunction sumLeaves(tree: BinaryTree): number {\n if (tree.kind === "leaf") {\n return tree.value;\n } else {\n return sumLeaves(tree.left) + sumLeaves(tree.right);\n }\n}\n')),(0,o.mdx)("h2",{id:"the-problem"},"The problem"),(0,o.mdx)("p",null,"Consider the following function that returns different objects depending on the data passed into it:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-javascript"},"type Result = { status: string, errorCode?: number }\n\nfunction getResult(op): Result {\n var statusCode = op();\n if (statusCode === 0) {\n return { status: 'done' };\n } else {\n return { status: 'error', errorCode: statusCode };\n }\n}\n")),(0,o.mdx)("p",null,"The result contains a ",(0,o.mdx)("inlineCode",{parentName:"p"},"status")," property that is either ",(0,o.mdx)("inlineCode",{parentName:"p"},"'done'")," or ",(0,o.mdx)("inlineCode",{parentName:"p"},"'error'"),",\nand an optional ",(0,o.mdx)("inlineCode",{parentName:"p"},"errorCode")," property that holds a numeric status code when the\n",(0,o.mdx)("inlineCode",{parentName:"p"},"status")," is ",(0,o.mdx)("inlineCode",{parentName:"p"},"'error'"),"."),(0,o.mdx)("p",null,"One may now try to write another function that gets the error code from a result:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-javascript"},"function getErrorCode(result: Result): number {\n switch (result.status) {\n case 'error':\n return result.errorCode;\n default:\n return 0;\n }\n}\n")),(0,o.mdx)("p",null,"Unfortunately, this code does not typecheck. The ",(0,o.mdx)("inlineCode",{parentName:"p"},"Result")," type does not precisely\ncapture the relationship between the ",(0,o.mdx)("inlineCode",{parentName:"p"},"status")," property and the ",(0,o.mdx)("inlineCode",{parentName:"p"},"errorCode")," property.\nNamely it doesn't capture that when the ",(0,o.mdx)("inlineCode",{parentName:"p"},"status")," property is ",(0,o.mdx)("inlineCode",{parentName:"p"},"'error'"),", the ",(0,o.mdx)("inlineCode",{parentName:"p"},"errorCode"),"\nproperty will be present and defined on the object. As a result, Flow thinks that\n",(0,o.mdx)("inlineCode",{parentName:"p"},"result.errorCode")," in the above function may return ",(0,o.mdx)("inlineCode",{parentName:"p"},"undefined")," instead of ",(0,o.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,o.mdx)("p",null,"Prior to version 0.13.1 there was no way to express this relationship, which meant\nthat it was not possible to check the type safety of this simple, familiar idiom!"),(0,o.mdx)("h2",{id:"the-solution"},"The solution"),(0,o.mdx)("p",null,"As of version 0.13.1 it is possible to write a more precise type for ",(0,o.mdx)("inlineCode",{parentName:"p"},"Result"),"\nthat better captures the intent and helps Flow narrow down the possible shapes\nof an object based on the outcome of a dynamic ",(0,o.mdx)("inlineCode",{parentName:"p"},"===")," check. Now, we can write:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-javaScript"},"type Result = Done | Error\ntype Done = { status: 'done' }\ntype Error = { status: 'error', errorCode: number }\n")),(0,o.mdx)("p",null,"In other words, we can explicitly list out the possible shapes of results. These\ncases are distinguished by the value of the ",(0,o.mdx)("inlineCode",{parentName:"p"},"status")," property. Note that here\nwe use the string literal types ",(0,o.mdx)("inlineCode",{parentName:"p"},"'done'")," and ",(0,o.mdx)("inlineCode",{parentName:"p"},"'error'"),". These match exactly the strings\n",(0,o.mdx)("inlineCode",{parentName:"p"},"'done'")," and ",(0,o.mdx)("inlineCode",{parentName:"p"},"'error'"),", which means that ",(0,o.mdx)("inlineCode",{parentName:"p"},"===")," checks on those values are enough for\nFlow to narrow down the corresponding type cases. With this additional reasoning, the\nfunction ",(0,o.mdx)("inlineCode",{parentName:"p"},"getErrorCode")," now typechecks, without needing any changes to the code!"),(0,o.mdx)("p",null,"In addition to string literals, Flow also supports number literals as singleton types\nso they can also be used in disjoint unions and case analyses."),(0,o.mdx)("h2",{id:"why-we-built-this"},"Why we built this"),(0,o.mdx)("p",null,"Disjoint unions are at the heart of several good programming practices pervasive in functional programming languages. Supporting them in Flow means that JavaScript can use these practices in a type-safe manner. For example, disjoint unions can be used to write type-safe ",(0,o.mdx)("a",{parentName:"p",href:"https://facebook.github.io/flux/docs/dispatcher.html"},"Flux dispatchers"),". They are also heavily used in a recently released ",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/graphql/graphql-js"},"reference implementation of GraphQL"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2378.08f000fc.js b/assets/js/2378.08f000fc.js new file mode 100644 index 00000000000..5326b22ed39 --- /dev/null +++ b/assets/js/2378.08f000fc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2378],{12378:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var o=n(87462),i=(n(67294),n(3905));const a={title:"Introducing Flow-Typed","short-title":"Introducing Flow-Typed",author:"Jeff Morrison",hide_table_of_contents:!0},r=void 0,l={permalink:"/blog/2016/10/13/Flow-Typed",source:"@site/blog/2016-10-13-Flow-Typed.md",title:"Introducing Flow-Typed",description:"Having high-quality and community-driven library definitions (\u201clibdefs\u201d) are",date:"2016-10-13T00:00:00.000Z",formattedDate:"October 13, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Jeff Morrison"}],frontMatter:{title:"Introducing Flow-Typed","short-title":"Introducing Flow-Typed",author:"Jeff Morrison",hide_table_of_contents:!0},prevItem:{title:"Strict Checking of Function Call Arity",permalink:"/blog/2017/05/07/Strict-Function-Call-Arity"},nextItem:{title:"Property Variance and Other Upcoming Changes",permalink:"/blog/2016/10/04/Property-Variance"}},s={authorsImageUrls:[void 0]},d=[{value:"Versioned & Tested Libdefs",id:"versioned--tested-libdefs",level:3},{value:"Automating Libdef Installation",id:"automating-libdef-installation",level:3},{value:"Installing Libdefs",id:"installing-libdefs",level:3},{value:"Why Not Just Use Npm To Distribute Libdefs?",id:"why-not-just-use-npm-to-distribute-libdefs",level:3},{value:"Building a Community",id:"building-a-community",level:3}],p={toc:d};function m(e){let{components:t,...n}=e;return(0,i.mdx)("wrapper",(0,o.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Having high-quality and community-driven library definitions (\u201clibdefs\u201d) are\nimportant for having a great experience with Flow. Today, we are introducing\n",(0,i.mdx)("strong",{parentName:"p"},"flow-typed"),": A ",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/flowtype/flow-typed/"},"repository")," and\n",(0,i.mdx)("a",{parentName:"p",href:"http://npmjs.org/packages/flow-typed"},"CLI tool")," that represent the first parts\nof a new workflow for building, sharing, and distributing Flow libdefs."),(0,i.mdx)("p",null,"The goal of this project is to grow an ecosystem of libdefs that\n",(0,i.mdx)("a",{parentName:"p",href:"https://medium.com/@thejameskyle/flow-mapping-an-object-373d64c44592"},"allows Flow's type inference to shine"),"\nand that aligns with Flow's mission: To extract precise and ",(0,i.mdx)("em",{parentName:"p"},"accurate")," types\nfrom real-world JavaScript. We've learned a lot from similar efforts like\nDefinitelyTyped for TypeScript and we want to bring some of the lessons we've\nlearned to the Flow ecosystem."),(0,i.mdx)("p",null,"Here are some of the objectives of this project:"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},"Libdefs should be ",(0,i.mdx)("strong",{parentName:"li"},"versioned")," \u2014 both against the libraries they describe\n",(0,i.mdx)("em",{parentName:"li"},"and")," against the version(s) of Flow they are compatible with."),(0,i.mdx)("li",{parentName:"ul"},"Libdefs should meet a ",(0,i.mdx)("strong",{parentName:"li"},"high quality bar"),", including ",(0,i.mdx)("strong",{parentName:"li"},"libdef tests")," to\nensure that their quality persists over time."),(0,i.mdx)("li",{parentName:"ul"},"There must be a straightforward way to ",(0,i.mdx)("strong",{parentName:"li"},"contribute libdef improvements over\ntime")," and for developers to ",(0,i.mdx)("strong",{parentName:"li"},"benefit from those improvements")," over time."),(0,i.mdx)("li",{parentName:"ul"},"The process of managing libdefs for a Flow project should be ",(0,i.mdx)("strong",{parentName:"li"},"automated,\nsimple, and easy to get right"),".")),(0,i.mdx)("h3",{id:"versioned--tested-libdefs"},"Versioned & Tested Libdefs"),(0,i.mdx)("p",null,"Anyone can contribute a libdef (or improve on an existing one), but when doing\nso it's important that we maintain a high quality bar so that all developers\nfeel confident in the libdefs they are using. To address this, flow-typed\nrequires that all libdef contributions are explicitly versioned against both\nthe version of the library they are describing and the version(s) of Flow the\nlibdef is compatible with."),(0,i.mdx)("p",null,"Additionally, all libdefs must be accompanied by tests that exercise the\nimportant parts of the API and assert that they yield the correct types. By\nincluding both version information and tests with each libdef, we can\nautomatically verify in Travis that the tests work as expected for all versions\nof Flow a libdef is compatible with. Tests also help to ensure that future\nchanges to the libdef don't regress its features over time."),(0,i.mdx)("h3",{id:"automating-libdef-installation"},"Automating Libdef Installation"),(0,i.mdx)("p",null,"We've built a simple CLI tool called ",(0,i.mdx)("inlineCode",{parentName:"p"},"flow-typed")," that helps to automate the\nprocess of finding, installing, and upgrading libdefs in your Flow projects. It\nuses the explicit version info associated with each libdef to find all\nnecessary libdefs based on your project's package.json dependencies. This\nminimizes the work you need to do in order to pull in and update libdefs in\nyour projects."),(0,i.mdx)("p",null,"You can get the flow-typed CLI using either yarn (",(0,i.mdx)("inlineCode",{parentName:"p"},"yarn global add flow-typed"),")\nor npm (",(0,i.mdx)("inlineCode",{parentName:"p"},"npm install -g flow-typed"),")."),(0,i.mdx)("h3",{id:"installing-libdefs"},"Installing Libdefs"),(0,i.mdx)("p",null,"Installing libdefs from the flow-typed repository is a matter of running a\nsingle command on your project after installing your dependencies:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre"},"> yarn install # Or `npm install` if you're old-school :)\n> flow-typed install\n")),(0,i.mdx)("p",null,"The ",(0,i.mdx)("inlineCode",{parentName:"p"},"flow-typed install")," command reads your project's package.json file,\nqueries the flow-typed repository for libdefs matching your dependencies, and\ninstalls the correctly-versioned libdefs into the ",(0,i.mdx)("inlineCode",{parentName:"p"},"flow-typed/")," directory for\nyou. By default, Flow knows to look in the ",(0,i.mdx)("inlineCode",{parentName:"p"},"flow-typed/")," directory for libdefs\n\u2014 so there is no additional configuration necessary."),(0,i.mdx)("p",null,"Note that it's necessary to run this command ",(0,i.mdx)("em",{parentName:"p"},"after")," running ",(0,i.mdx)("inlineCode",{parentName:"p"},"yarn")," or\n",(0,i.mdx)("inlineCode",{parentName:"p"},"npm install"),". This is because this command will also generate stub libdefs for\nyou if one of your dependencies doesn't have types."),(0,i.mdx)("p",null,"Once libdefs have been installed, ",(0,i.mdx)("strong",{parentName:"p"},"we recommend that you check them in to your\nproject's repo"),". Libdefs in the flow-typed repository may be improved over\ntime (fixing a bug, more precise types, etc). If this happens for a libdef that\nyou depend on, you'll want to have control over when that update is applied to\nyour project. Periodically you can run ",(0,i.mdx)("inlineCode",{parentName:"p"},"flow-typed update")," to download any\nlibdef updates, verify that your project still typechecks, and the commit the\nupdates."),(0,i.mdx)("h3",{id:"why-not-just-use-npm-to-distribute-libdefs"},"Why Not Just Use Npm To Distribute Libdefs?"),(0,i.mdx)("p",null,"Over time libdefs in the flow-typed repo may be updated to fix bugs, improve\naccuracy, or make use of new Flow features that better describe the types of\nthe library. As a result, there are really 3 versions that apply to each\nlibdef: The version of the library being described, the current version of the\nlibdef in the flow-typed repo, and the version(s) of Flow the libdef is\ncompatible with."),(0,i.mdx)("p",null,"If an update is made to some libdef that you use in your project after you've\nalready installed it, there's a good chance that update may find new type\nerrors in your project that were previously unknown. While it is certainly a\ngood thing to find errors that were previously missed, you'll want to have\ncontrol over when those changes get pulled in to your project."),(0,i.mdx)("p",null,"This is the reason we advise that you commit your installed libdefs to version\ncontrol rather than rely on a system like npm+semver to download and install a\nnon-deterministic semver-ranged version from npm. Checking in your libdefs\nensures that all collaborators on your project have consistent output from Flow\nat any given commit in version history."),(0,i.mdx)("h3",{id:"building-a-community"},"Building a Community"),(0,i.mdx)("p",null,"This is first and foremost a community project. It was started by a community\nmember (hey ",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/splodingsocks"},"@splodingsocks"),"!) and has\nalready benefitted from hours of work by many others. Moreover, this will\ncontinue to be a community effort: Anyone can create and/or help maintain a\nlibdef for any npm library. Authors may create libdefs for their packages when\npublishing, and/or consumers can create them when someone else hasn't already\ndone so. Either way, everyone benefits!"),(0,i.mdx)("p",null,"We'd like to send a big shout-out to ",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/marudor"},"@marudor")," for\ncontributing so many of his own libdefs and spending time helping others to\nwrite and contribute libdefs. Additionally we'd like to thank\n",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/ryyppy"},"@ryyppy")," for helping to design and iterate on the\nCLI and installation workflow as well as manage libdef reviews."),(0,i.mdx)("p",null,"The Flow core team intends to stay invested in developing and improving this\nproject, but in order for it to truly succeed we need your help! If you've\nalready written some libdefs for Flow projects that you work on, we encourage\nyou to ",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/flowtype/flow-typed/#how-do-i-contribute-library-definitions"},"contribute"),"\nthem for others to benefit from them as well. By managing libdefs in a\ncommunity-driven repository, the community as a whole can work together to\nextend Flow's capabilities beyond just explicitly-typed JS."),(0,i.mdx)("p",null,"It's still early days and there's still a lot to do, so we're excited to hear\nyour ideas/feedback and read your pull requests! :)"),(0,i.mdx)("p",null,"Happy typing!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2394.d9de10ba.js b/assets/js/2394.d9de10ba.js new file mode 100644 index 00000000000..11329cbbd64 --- /dev/null +++ b/assets/js/2394.d9de10ba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2394],{54949:(e,n,o)=>{o.d(n,{S:()=>t,l:()=>l});var i=o(67294);function t(e){let{version:n}=e;return i.createElement("span",{class:"version added",title:"Added in "+n},"\u2265",n)}function l(e){let{version:n}=e;return i.createElement("span",{class:"version removed",title:"Removed after "+n},"\u2264",n)}},82394:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>m,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>d,toc:()=>r});var i=o(87462),t=(o(67294),o(3905)),l=(o(45475),o(54949));const a={title:".flowconfig [options]",slug:"/config/options"},s=void 0,d={unversionedId:"config/options",id:"config/options",title:".flowconfig [options]",description:"The [options] section in a .flowconfig file can contain several key-value",source:"@site/docs/config/options.md",sourceDirName:"config",slug:"/config/options",permalink:"/en/docs/config/options",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/config/options.md",tags:[],version:"current",frontMatter:{title:".flowconfig [options]",slug:"/config/options"},sidebar:"docsSidebar",previous:{title:".flowconfig [version]",permalink:"/en/docs/config/version"},next:{title:".flowconfig [include]",permalink:"/en/docs/config/include"}},m={},r=[{value:"Available options",id:"toc-available-options",level:2},{value:"all",id:"toc-all",level:3},{value:'autoimports ',id:"toc-autoimports",level:3},{value:"babel_loose_array_spread",id:"toc-babel-loose-array-spread",level:3},{value:"emoji",id:"toc-emoji",level:3},{value:"enums",id:"toc-enums",level:3},{value:"exact_by_default",id:"toc-exact-by-default",level:3},{value:"experimental.const_params",id:"toc-experimental-const-params",level:3},{value:"include_warnings",id:"toc-include-warnings",level:3},{value:"lazy_mode",id:"toc-lazy-mode",level:3},{value:"max_header_tokens",id:"toc-max-header-tokens",level:3},{value:"module.file_ext",id:"toc-module-file-ext",level:3},{value:"module.ignore_non_literal_requires",id:"toc-module-ignore-non-literal-requires",level:3},{value:"module.name_mapper",id:"toc-module-name-mapper",level:3},{value:"module.name_mapper.extension",id:"toc-module-name-mapper-extension",level:3},{value:"module.system",id:"toc-module-system",level:3},{value:"module.system.node.main_field",id:"toc-module-system-node-main-field",level:3},{value:"module.system.node.resolve_dirname",id:"toc-module-system-node-resolve-dirname",level:3},{value:"module.use_strict",id:"toc-module-use-strict",level:3},{value:"munge_underscores",id:"toc-munge-underscores",level:3},{value:"no_flowlib",id:"toc-no-flowlib",level:3},{value:'react.runtime ',id:"toc-react-runtime",level:3},{value:"server.max_workers",id:"toc-server-max-workers",level:3},{value:"sharedmemory.hash_table_pow",id:"toc-sharedmemory-hash-table-pow",level:3},{value:"sharedmemory.heap_size",id:"toc-sharedmemory-heap-size",level:3},{value:"suppress_type",id:"toc-suppress-type",level:3},{value:"traces",id:"toc-traces",level:3},{value:'use_mixed_in_catch_variables ',id:"toc-use-mixed-in-catch-variables",level:3},{value:"Deprecated options",id:"deprecated-options",level:2},{value:'esproposal.class_instance_fields ',id:"toc-esproposal-class-instance-fields",level:3},{value:'esproposal.class_static_fields ',id:"toc-esproposal-class-static-fields",level:3},{value:'esproposal.decorators ',id:"toc-esproposal-decorators",level:3},{value:'esproposal.export_star_as ',id:"toc-esproposal-export-star-as",level:3},{value:'esproposal.optional_chaining ',id:"toc-esproposal-optional-chaining",level:3},{value:'esproposal.nullish_coalescing ',id:"toc-esproposal-nullish-coalescing",level:3},{value:'inference_mode ',id:"toc-inference-mode",level:3},{value:"log.file",id:"toc-log-file",level:3},{value:"sharedmemory.dirs",id:"toc-sharedmemory-dirs",level:3},{value:"sharedmemory.minimum_available",id:"toc-sharedmemory-minimum-available",level:3},{value:'strip_root ',id:"toc-strip-root",level:3},{value:'suppress_comment ',id:"toc-suppress-comment",level:3},{value:"temp_dir",id:"toc-temp-dir",level:3},{value:'types_first ',id:"toc-types-first",level:3},{value:'well_formed_exports ',id:"toc-well-formed-exports",level:3},{value:'well_formed_exports.includes ',id:"toc-well-formed-exports-includes",level:3}],p={toc:r};function u(e){let{components:n,...o}=e;return(0,t.mdx)("wrapper",(0,i.Z)({},p,o,{components:n,mdxType:"MDXLayout"}),(0,t.mdx)("p",null,"The ",(0,t.mdx)("inlineCode",{parentName:"p"},"[options]")," section in a ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file can contain several key-value\npairs of the form:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[options]\nkeyA=valueA\nkeyB=valueB\n")),(0,t.mdx)("p",null,"Any options that are omitted will use their default values. Some options\ncan be overridden with command line flags."),(0,t.mdx)("h2",{id:"toc-available-options"},"Available options"),(0,t.mdx)("h3",{id:"toc-all"},"all"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," to check all files, not just those with ",(0,t.mdx)("inlineCode",{parentName:"p"},"@flow"),"."),(0,t.mdx)("p",null,"The default value for ",(0,t.mdx)("inlineCode",{parentName:"p"},"all")," is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-autoimports"},"autoimports ",(0,t.mdx)(l.S,{version:"0.143.0",mdxType:"SinceVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"When enabled, IDE autocomplete suggests the exports of other files, and the necessary ",(0,t.mdx)("inlineCode",{parentName:"p"},"import"),' statements are automatically inserted. A "quick fix" code action is also provided on undefined variables that suggests matching imports.'),(0,t.mdx)("p",null,"The default value for ",(0,t.mdx)("inlineCode",{parentName:"p"},"autoimports")," is ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," as of Flow v0.155.0."),(0,t.mdx)("h3",{id:"toc-babel-loose-array-spread"},"babel_loose_array_spread"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," to check that array spread syntax is only used with arrays, not arbitrary iterables (such as ",(0,t.mdx)("inlineCode",{parentName:"p"},"Map")," or ",(0,t.mdx)("inlineCode",{parentName:"p"},"Set"),"). This is useful if you transform your code with Babel in ",(0,t.mdx)("a",{parentName:"p",href:"https://babeljs.io/docs/en/babel-plugin-transform-spread#loose"},"loose mode")," which makes this non-spec-compliant assumption at runtime."),(0,t.mdx)("p",null,"For example:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-js"},"const set = new Set();\nconst values = [...set]; // Valid ES2015, but Set is not compatible with $ReadOnlyArray in Babel loose mode\n")),(0,t.mdx)("p",null,"The default value for ",(0,t.mdx)("inlineCode",{parentName:"p"},"babel_loose_array_spread")," is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-emoji"},"emoji"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," to add emoji to the status messages that Flow\noutputs when it's busy checking your project."),(0,t.mdx)("p",null,"The default value for ",(0,t.mdx)("inlineCode",{parentName:"p"},"emoji")," is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-enums"},"enums"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," to enable ",(0,t.mdx)("a",{parentName:"p",href:"../../enums"},"Flow Enums"),".\n",(0,t.mdx)("a",{parentName:"p",href:"../../enums/enabling-enums/"},"Additional steps")," are required beyond just enabling the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," option."),(0,t.mdx)("p",null,"The default value for ",(0,t.mdx)("inlineCode",{parentName:"p"},"enums")," is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-exact-by-default"},"exact_by_default"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"When set to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," (the default as of version 0.202), Flow interprets object types as exact by default:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type O1 = {foo: number} // exact\ntype O2 = {| foo: number |} // exact\ntype O3 = {foo: number, ...} // inexact\n")),(0,t.mdx)("p",null,"When this flag is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),", Flow has the following behavior:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type O1 = {foo: number} // inexact\ntype O2 = {| foo: number |} // exact\ntype O3 = {foo: number, ...} // inexact\n")),(0,t.mdx)("ul",null,(0,t.mdx)("li",{parentName:"ul"},"From inception to Flow version 0.199, the default value of the flag was ",(0,t.mdx)("inlineCode",{parentName:"li"},"false"),"."),(0,t.mdx)("li",{parentName:"ul"},"In versions 0.200 and 0.201, the flag was required to be explicitly set to either ",(0,t.mdx)("inlineCode",{parentName:"li"},"true")," or ",(0,t.mdx)("inlineCode",{parentName:"li"},"false"),"."),(0,t.mdx)("li",{parentName:"ul"},"From version 0.202, the default value is ",(0,t.mdx)("inlineCode",{parentName:"li"},"true"),".")),(0,t.mdx)("p",null,"You can read more about this change in our blog post about making ",(0,t.mdx)("a",{parentName:"p",href:"https://medium.com/flow-type/exact-object-types-by-default-by-default-cc559af6f69"},"exact by object types by default, by default"),"."),(0,t.mdx)("h3",{id:"toc-experimental-const-params"},"experimental.const_params"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Setting this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," makes Flow treat all function parameters as const\nbindings. Reassigning a param is an error which lets Flow be less conservative\nwith refinements."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-include-warnings"},"include_warnings"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Setting this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," makes Flow commands include warnings in the error output.\nWarnings are hidden by default in the CLI to avoid console spew. (An IDE is a\nmuch better interface to show warnings.)"),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-lazy-mode"},"lazy_mode"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"For more on lazy modes, see the ",(0,t.mdx)("a",{parentName:"p",href:"../../lang/lazy-modes/"},"lazy modes docs"),"."),(0,t.mdx)("p",null,"Setting ",(0,t.mdx)("inlineCode",{parentName:"p"},"lazy_mode")," in the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," will cause new Flow servers for that\nroot to use lazy mode (or no lazy mode if set to ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"). This option can\nbe overridden from the CLI using the ",(0,t.mdx)("inlineCode",{parentName:"p"},"--lazy-mode")," flag."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-max-header-tokens"},"max_header_tokens"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"integer")),(0,t.mdx)("p",null,"Flow tries to avoid parsing non-flow files. This means Flow needs to\nstart lexing a file to see if it has ",(0,t.mdx)("inlineCode",{parentName:"p"},"@flow")," or ",(0,t.mdx)("inlineCode",{parentName:"p"},"@noflow")," in it. This option\nlets you configure how much of the file Flow lexes before it decides there is\nno relevant docblock."),(0,t.mdx)("ul",null,(0,t.mdx)("li",{parentName:"ul"},"Neither ",(0,t.mdx)("inlineCode",{parentName:"li"},"@flow")," nor ",(0,t.mdx)("inlineCode",{parentName:"li"},"@noflow")," - Parse this file with Flow syntax disallowed and do not typecheck it."),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("inlineCode",{parentName:"li"},"@flow")," - Parse this file with Flow syntax allowed and typecheck it."),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("inlineCode",{parentName:"li"},"@noflow")," - Parse this file with Flow syntax allowed and do not typecheck it. This is meant as an escape hatch to suppress Flow in a file without having to delete all the Flow-specific syntax.")),(0,t.mdx)("p",null,"The default value of ",(0,t.mdx)("inlineCode",{parentName:"p"},"max_header_tokens")," is 10."),(0,t.mdx)("h3",{id:"toc-module-file-ext"},"module.file_ext"),(0,t.mdx)("p",null,"By default, Flow will look for files with the extensions ",(0,t.mdx)("inlineCode",{parentName:"p"},".js"),", ",(0,t.mdx)("inlineCode",{parentName:"p"},".jsx"),", ",(0,t.mdx)("inlineCode",{parentName:"p"},".mjs"),",\n",(0,t.mdx)("inlineCode",{parentName:"p"},".cjs")," and ",(0,t.mdx)("inlineCode",{parentName:"p"},".json"),". You can override this behavior with this option."),(0,t.mdx)("p",null,"For example, if you do:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[options]\nmodule.file_ext=.foo\nmodule.file_ext=.bar\n")),(0,t.mdx)("p",null,"Then Flow will instead look for the file extensions ",(0,t.mdx)("inlineCode",{parentName:"p"},".foo")," and ",(0,t.mdx)("inlineCode",{parentName:"p"},".bar"),"."),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," you can specify ",(0,t.mdx)("inlineCode",{parentName:"p"},"module.file_ext")," multiple times")),(0,t.mdx)("h3",{id:"toc-module-ignore-non-literal-requires"},"module.ignore_non_literal_requires"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," and Flow will no longer complain when you use ",(0,t.mdx)("inlineCode",{parentName:"p"},"require()"),"\nwith something other than a string literal."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-module-name-mapper"},"module.name_mapper"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"regex -> string")),(0,t.mdx)("p",null,"Specify a regular expression to match against module names, and a replacement\npattern, separated by a ",(0,t.mdx)("inlineCode",{parentName:"p"},"->"),"."),(0,t.mdx)("p",null,"For example:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"module.name_mapper='^image![a-zA-Z0-9$_]+$' -> 'ImageStub'\n")),(0,t.mdx)("p",null,"This makes Flow treat ",(0,t.mdx)("inlineCode",{parentName:"p"},"require('image!foo.jpg')")," as if it were\n",(0,t.mdx)("inlineCode",{parentName:"p"},"require('ImageStub')"),"."),(0,t.mdx)("p",null,"These are ",(0,t.mdx)("a",{parentName:"p",href:"http://caml.inria.fr/pub/docs/manual-ocaml/libref/Str.html#TYPEregexp"},"OCaml regular expressions"),".\nUse ",(0,t.mdx)("inlineCode",{parentName:"p"},"\\(")," and ",(0,t.mdx)("inlineCode",{parentName:"p"},"\\)")," (slashes required!) to create a capturing group, which you\ncan refer to in the replacement pattern as ",(0,t.mdx)("inlineCode",{parentName:"p"},"\\1")," (up to ",(0,t.mdx)("inlineCode",{parentName:"p"},"\\9"),")."),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," you can specify ",(0,t.mdx)("inlineCode",{parentName:"p"},"module.name_mapper")," multiple times")),(0,t.mdx)("h3",{id:"toc-module-name-mapper-extension"},"module.name_mapper.extension"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"string -> string")),(0,t.mdx)("p",null,"Specify a file extension to match, and a replacement module name, separated by\na ",(0,t.mdx)("inlineCode",{parentName:"p"},"->"),"."),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," This is just shorthand for\n",(0,t.mdx)("inlineCode",{parentName:"p"},"module.name_mapper='^\\(.*\\)\\.EXTENSION$' -> 'TEMPLATE'"),")")),(0,t.mdx)("p",null,"For example:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"module.name_mapper.extension='css' -> '/CSSFlowStub.js.flow'\n")),(0,t.mdx)("p",null,"Makes Flow treat ",(0,t.mdx)("inlineCode",{parentName:"p"},"require('foo.css')")," as if it were\n",(0,t.mdx)("inlineCode",{parentName:"p"},"require(PROJECT_ROOT + '/CSSFlowStub')"),"."),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," You can specify ",(0,t.mdx)("inlineCode",{parentName:"p"},"module.name_mapper.extension")," multiple times for\ndifferent extensions.")),(0,t.mdx)("h3",{id:"toc-module-system"},"module.system"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"node | haste")),(0,t.mdx)("p",null,"The module system to use to resolve ",(0,t.mdx)("inlineCode",{parentName:"p"},"import")," and ",(0,t.mdx)("inlineCode",{parentName:"p"},"require"),".\nHaste mode is used by Meta."),(0,t.mdx)("p",null,"The default is ",(0,t.mdx)("inlineCode",{parentName:"p"},"node"),"."),(0,t.mdx)("h3",{id:"toc-module-system-node-main-field"},"module.system.node.main_field"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"string")),(0,t.mdx)("p",null,"Flow reads ",(0,t.mdx)("inlineCode",{parentName:"p"},"package.json")," files for the ",(0,t.mdx)("inlineCode",{parentName:"p"},'"name"')," and ",(0,t.mdx)("inlineCode",{parentName:"p"},'"main"')," fields to figure\nout the name of the module and which file should be used to provide that\nmodule."),(0,t.mdx)("p",null,"So if Flow sees this in the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig"),":"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[options]\nmodule.system.node.main_field=foo\nmodule.system.node.main_field=bar\nmodule.system.node.main_field=baz\n")),(0,t.mdx)("p",null,"and then it comes across a ",(0,t.mdx)("inlineCode",{parentName:"p"},"package.json")," with"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},'{\n "name": "kittens",\n "main": "main.js",\n "bar": "bar.js",\n "baz": "baz.js"\n}\n')),(0,t.mdx)("p",null,"Flow will use ",(0,t.mdx)("inlineCode",{parentName:"p"},"bar.js")," to provide the ",(0,t.mdx)("inlineCode",{parentName:"p"},'"kittens"')," module."),(0,t.mdx)("p",null,"If this option is unspecified, Flow will always use the ",(0,t.mdx)("inlineCode",{parentName:"p"},'"main"')," field."),(0,t.mdx)("p",null,"See ",(0,t.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/5725"},"this GitHub issue for the original motivation")),(0,t.mdx)("h3",{id:"toc-module-system-node-resolve-dirname"},"module.system.node.resolve_dirname"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"string")),(0,t.mdx)("p",null,"By default, Flow will look in directories named ",(0,t.mdx)("inlineCode",{parentName:"p"},"node_modules")," for node\nmodules. You can configure this behavior with this option."),(0,t.mdx)("p",null,"For example, if you do:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[options]\nmodule.system.node.resolve_dirname=node_modules\nmodule.system.node.resolve_dirname=custom_node_modules\n")),(0,t.mdx)("p",null,"Then Flow will look in directories named ",(0,t.mdx)("inlineCode",{parentName:"p"},"node_modules")," or\n",(0,t.mdx)("inlineCode",{parentName:"p"},"custom_node_modules"),"."),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," you can specify ",(0,t.mdx)("inlineCode",{parentName:"p"},"module.system.node.resolve_dirname")," multiple times")),(0,t.mdx)("h3",{id:"toc-module-use-strict"},"module.use_strict"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," if you use a transpiler that adds ",(0,t.mdx)("inlineCode",{parentName:"p"},'"use strict";')," to the top\nof every module."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-munge-underscores"},"munge_underscores"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," to have Flow treat underscore-prefixed class properties and\nmethods as private. This should be used in conjunction with ",(0,t.mdx)("a",{parentName:"p",href:"https://github.com/facebook/jstransform/blob/master/visitors/es6-class-visitors.js"},(0,t.mdx)("inlineCode",{parentName:"a"},"jstransform"),"'s\nES6 class transform"),",\nwhich enforces the same privacy at runtime."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-no-flowlib"},"no_flowlib"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Flow has builtin library definitions. Setting this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," will tell Flow to\nignore the builtin library definitions."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-react-runtime"},"react.runtime ",(0,t.mdx)(l.S,{version:"0.123.0",mdxType:"SinceVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"automatic | classic")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"automatic")," if you are using React's automatic runtime in ",(0,t.mdx)("inlineCode",{parentName:"p"},"@babel/plugin-transform-react-jsx"),".\nOtherwise, use ",(0,t.mdx)("inlineCode",{parentName:"p"},"classic"),". ",(0,t.mdx)("a",{parentName:"p",href:"https://babeljs.io/docs/en/babel-plugin-transform-react-jsx"},"See the babel documentation"),"\nfor details about the transform."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"classic"),"."),(0,t.mdx)("h3",{id:"toc-server-max-workers"},"server.max_workers"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"integer")),(0,t.mdx)("p",null,"The maximum number of workers the Flow server can start. By default, the server\nwill use all available cores."),(0,t.mdx)("h3",{id:"toc-sharedmemory-hash-table-pow"},"sharedmemory.hash_table_pow"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"unsigned integer")),(0,t.mdx)("p",null,"The 3 largest parts of the shared memory are a dependency table, a hash table,\nand a heap. While the heap grows and shrinks, the two tables are allocated in\nfull. This option lets you change the size of the hash table."),(0,t.mdx)("p",null,"Setting this option to X means the table will support up to 2^X elements,\nwhich is 16*2^X bytes."),(0,t.mdx)("p",null,"By default, this is set to 19 (Table size is 2^19, which is 8 megabytes)"),(0,t.mdx)("h3",{id:"toc-sharedmemory-heap-size"},"sharedmemory.heap_size"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"unsigned integer")),(0,t.mdx)("p",null,'This option configures the maximum possible size for the shared heap. You should\nmost likely not need to configure this, as it doesn\'t really affect how much\nRSS Flow uses. However, if you are working on a massive codebase you might see\nthe following error after init: "Heap init size is too close to max heap size;\nGC will never get triggered!" In this case, you may need to increase the size\nof the heap.'),(0,t.mdx)("p",null,"By default, this is set to 26843545600 (25 * 2^30 bytes, which is 25GiB)"),(0,t.mdx)("h3",{id:"toc-suppress-type"},"suppress_type"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"string")),(0,t.mdx)("p",null,"This option lets you alias ",(0,t.mdx)("inlineCode",{parentName:"p"},"any")," with a given string. This is useful for\nexplaining why you're using ",(0,t.mdx)("inlineCode",{parentName:"p"},"any"),". For example, let's say you sometimes want\nto sometimes use ",(0,t.mdx)("inlineCode",{parentName:"p"},"any")," to suppress an error and sometimes to mark a TODO.\nYour code might look like"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"const myString: any = 1 + 1;\nconst myBoolean: any = 1 + 1;\n")),(0,t.mdx)("p",null,"If you add the following to your configuration:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[options]\nsuppress_type=$FlowFixMe\nsuppress_type=$FlowTODO\n")),(0,t.mdx)("p",null,"You can update your code to the more readable:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"const myString: $FlowFixMe = 1 + 1;\nconst myBoolean: $FlowTODO = 1 + 1;\n")),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," You can specify ",(0,t.mdx)("inlineCode",{parentName:"p"},"suppress_type")," multiple times.")),(0,t.mdx)("h3",{id:"toc-traces"},"traces"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"integer")),(0,t.mdx)("p",null,"Enables traces on all error output (showing additional details about the flow\nof types through the system), to the depth specified. This can be very\nexpensive, so is disabled by default."),(0,t.mdx)("h3",{id:"toc-use-mixed-in-catch-variables"},"use_mixed_in_catch_variables ",(0,t.mdx)(l.S,{version:"0.201",mdxType:"SinceVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Changes the default type of ",(0,t.mdx)("inlineCode",{parentName:"p"},"catch")," variables from ",(0,t.mdx)("a",{parentName:"p",href:"../../types/any"},(0,t.mdx)("inlineCode",{parentName:"a"},"any"))," to ",(0,t.mdx)("a",{parentName:"p",href:"../../types/mixed"},(0,t.mdx)("inlineCode",{parentName:"a"},"mixed")),". E.g."),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"try {\n} catch (e) {\n}\n")),(0,t.mdx)("p",null,"in the above example, if the option is ",(0,t.mdx)("inlineCode",{parentName:"p"},"true"),", ",(0,t.mdx)("inlineCode",{parentName:"p"},"catch")," will be typed as ",(0,t.mdx)("inlineCode",{parentName:"p"},"mixed")," as it lacks an explicit type annotation."),(0,t.mdx)("h2",{id:"deprecated-options"},"Deprecated options"),(0,t.mdx)("p",null,"The following options no longer exist in the latest version of Flow:"),(0,t.mdx)("h3",{id:"toc-esproposal-class-instance-fields"},"esproposal.class_instance_fields ",(0,t.mdx)(l.l,{version:"0.148",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable | ignore | warn")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"warn")," to indicate that Flow should give a warning on use of\ninstance ",(0,t.mdx)("a",{parentName:"p",href:"https://github.com/tc39/proposal-class-public-fields"},"class fields"),"\nper the pending spec."),(0,t.mdx)("p",null,"You may also set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"ignore")," to indicate that Flow should simply ignore\nthe syntax (i.e. Flow will not use this syntax to indicate the presence of a\nproperty on instances of the class)."),(0,t.mdx)("p",null,"The default value of this option is ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable"),", which allows use of this proposed\nsyntax."),(0,t.mdx)("h3",{id:"toc-esproposal-class-static-fields"},"esproposal.class_static_fields ",(0,t.mdx)(l.l,{version:"0.148",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable | ignore | warn")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"warn")," to indicate that Flow should give a warning on use of static\n",(0,t.mdx)("a",{parentName:"p",href:"https://github.com/tc39/proposal-class-public-fields"},"class fields"),"\nper the pending spec."),(0,t.mdx)("p",null,"You may also set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"ignore")," to indicate that Flow should simply ignore\nthe syntax (i.e. Flow will not use this syntax to indicate the presence of a\nstatic property on the class)."),(0,t.mdx)("p",null,"The default value of this option is ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable"),", which allows use of this proposed\nsyntax."),(0,t.mdx)("h3",{id:"toc-esproposal-decorators"},"esproposal.decorators ",(0,t.mdx)(l.l,{version:"0.148",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"ignore | warn")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"ignore")," to indicate that Flow should ignore decorators."),(0,t.mdx)("p",null,"The default value of this option is ",(0,t.mdx)("inlineCode",{parentName:"p"},"warn"),", which gives a warning on use since\nthis proposal is still very early-stage."),(0,t.mdx)("h3",{id:"toc-esproposal-export-star-as"},"esproposal.export_star_as ",(0,t.mdx)(l.l,{version:"0.148",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable | ignore | warn")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable")," to indicate that Flow should support the ",(0,t.mdx)("inlineCode",{parentName:"p"},"export * as"),"\nsyntax from ",(0,t.mdx)("a",{parentName:"p",href:"https://github.com/leebyron/ecmascript-more-export-from"},"leebyron's proposal"),"."),(0,t.mdx)("p",null,"You may also set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"ignore")," to indicate that Flow should simply ignore\nthe syntax. The default value of this option is ",(0,t.mdx)("inlineCode",{parentName:"p"},"warn"),", which gives a warning\non use since this proposal is still very early-stage."),(0,t.mdx)("h3",{id:"toc-esproposal-optional-chaining"},"esproposal.optional_chaining ",(0,t.mdx)(l.l,{version:"0.148",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable | ignore | warn")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable")," to indicate that Flow should support the use of\n",(0,t.mdx)("a",{parentName:"p",href:"https://github.com/tc39/proposal-optional-chaining"},"optional chaining"),"\nper the pending spec."),(0,t.mdx)("p",null,"You may also set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"ignore")," to indicate that Flow should simply ignore\nthe syntax."),(0,t.mdx)("p",null,"The default value of this option is ",(0,t.mdx)("inlineCode",{parentName:"p"},"warn"),", which gives a warning on\nuse since this proposal is still very early-stage."),(0,t.mdx)("h3",{id:"toc-esproposal-nullish-coalescing"},"esproposal.nullish_coalescing ",(0,t.mdx)(l.l,{version:"0.148",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable | ignore | warn")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable")," to indicate that Flow should support the use of\n",(0,t.mdx)("a",{parentName:"p",href:"https://github.com/tc39/proposal-nullish-coalescing"},"nullish coalescing"),"\nper the pending spec."),(0,t.mdx)("p",null,"You may also set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"ignore")," to indicate that Flow should simply ignore\nthe syntax."),(0,t.mdx)("p",null,"The default value of this option is ",(0,t.mdx)("inlineCode",{parentName:"p"},"warn"),", which gives a warning on\nuse since this proposal is still very early-stage."),(0,t.mdx)("h3",{id:"toc-inference-mode"},"inference_mode ",(0,t.mdx)(l.S,{version:"0.184.0",mdxType:"SinceVersion"})," ",(0,t.mdx)(l.l,{version:"0.202.0",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"classic | constrain-writes")),(0,t.mdx)("p",null,"Setting this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"constrain-writes")," will enable the constrained-writes inference mode."),(0,t.mdx)("p",null,"For more info, see the ",(0,t.mdx)("a",{parentName:"p",href:"../../lang/variables"},"variable declaration docs"),"."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"classic")),(0,t.mdx)("h3",{id:"toc-log-file"},"log.file"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"string")),(0,t.mdx)("p",null,"The path to the log file (defaults to ",(0,t.mdx)("inlineCode",{parentName:"p"},"/tmp/flow/.log"),")."),(0,t.mdx)("h3",{id:"toc-sharedmemory-dirs"},"sharedmemory.dirs"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"string")),(0,t.mdx)("p",null,"This affects Linux only."),(0,t.mdx)("p",null,"Flow's shared memory lives in a memory mapped file. On more modern versions of\nLinux (3.17+), there is a system call ",(0,t.mdx)("inlineCode",{parentName:"p"},"memfd_create")," which allows Flow to create\nthe file anonymously and only in memory. However, in older kernels, Flow needs\nto create a file on the file system. Ideally this file lives on a memory-backed\ntmpfs. This option lets you decide where that file is created."),(0,t.mdx)("p",null,"By default this option is set to ",(0,t.mdx)("inlineCode",{parentName:"p"},"/dev/shm")," and ",(0,t.mdx)("inlineCode",{parentName:"p"},"/tmp")),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," You can specify ",(0,t.mdx)("inlineCode",{parentName:"p"},"sharedmemory.dirs")," multiple times.")),(0,t.mdx)("h3",{id:"toc-sharedmemory-minimum-available"},"sharedmemory.minimum_available"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"unsigned integer")),(0,t.mdx)("p",null,"This affects Linux only."),(0,t.mdx)("p",null,"As explained in the ",(0,t.mdx)("a",{parentName:"p",href:"#toc-sharedmemory-dirs-string"},(0,t.mdx)("inlineCode",{parentName:"a"},"sharedmemory.dirs"))," option's description, Flow needs to\ncreate a file on a filesystem for older kernels. ",(0,t.mdx)("inlineCode",{parentName:"p"},"sharedmemory.dirs")," specifies\na list of locations where the shared memory file can be created. For each\nlocation, Flow will check to make sure the filesystem has enough space for the\nshared memory file. If Flow will likely run out of space, it skips that location\nand tries the next. This option lets you configure the minimum amount of space\nneeded on a filesystem for shared memory."),(0,t.mdx)("p",null,"By default it is 536870912 (2^29 bytes, which is half a gigabyte)."),(0,t.mdx)("h3",{id:"toc-strip-root"},"strip_root ",(0,t.mdx)(l.l,{version:"0.48",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Obsolete. Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," to always strip the root directory from file paths\nin error messages when using ",(0,t.mdx)("inlineCode",{parentName:"p"},"--json"),", ",(0,t.mdx)("inlineCode",{parentName:"p"},"--from emacs"),", and ",(0,t.mdx)("inlineCode",{parentName:"p"},"--from vim"),".\nDo not use this option. Instead, pass the command line flag ",(0,t.mdx)("inlineCode",{parentName:"p"},"--strip-root"),"."),(0,t.mdx)("p",null,"By default this is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-suppress-comment"},"suppress_comment ",(0,t.mdx)(l.l,{version:"0.126",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"regex")),(0,t.mdx)("p",null,"Defines a magical comment that suppresses any Flow errors on the following\nline. For example:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"suppress_comment= \\\\(.\\\\|\\n\\\\)*\\\\$FlowFixMe\n")),(0,t.mdx)("p",null,"will match a comment like this:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"// $FlowFixMe: suppressing this error until we can refactor\nvar x : string = 123;\n")),(0,t.mdx)("p",null,'and suppress the error. If there is no error on the next line (the suppression\nis unnecessary), an "Unused suppression" warning will be shown instead.'),(0,t.mdx)("p",null,"If no suppression comments are specified in your config, Flow will apply one\ndefault: ",(0,t.mdx)("inlineCode",{parentName:"p"},"// $FlowFixMe"),"."),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," You can specify ",(0,t.mdx)("inlineCode",{parentName:"p"},"suppress_comment")," multiple times. If you do define\nany ",(0,t.mdx)("inlineCode",{parentName:"p"},"suppress_comment"),"s, the built-in ",(0,t.mdx)("inlineCode",{parentName:"p"},"$FlowFixMe")," suppression will be erased\nin favor of the regexps you specify. If you wish to use ",(0,t.mdx)("inlineCode",{parentName:"p"},"$FlowFixMe")," with\nsome additional custom suppression comments, you must manually specify\n",(0,t.mdx)("inlineCode",{parentName:"p"},"\\\\(.\\\\|\\n\\\\)*\\\\$FlowFixMe")," in your custom list of suppressions.")),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," In version v0.127.0, the option to specify the suppression comment\nsyntax was removed. ",(0,t.mdx)("inlineCode",{parentName:"p"},"$FlowFixMe"),", ",(0,t.mdx)("inlineCode",{parentName:"p"},"$FlowIssue"),", ",(0,t.mdx)("inlineCode",{parentName:"p"},"$FlowExpectedError"),",\nand ",(0,t.mdx)("inlineCode",{parentName:"p"},"$FlowIgnore")," became the only standard suppressions.")),(0,t.mdx)("h3",{id:"toc-temp-dir"},"temp_dir"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"string")),(0,t.mdx)("p",null,"Tell Flow which directory to use as a temp directory. Can be overridden with the\ncommand line flag ",(0,t.mdx)("inlineCode",{parentName:"p"},"--temp-dir"),"."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"/tmp/flow"),"."),(0,t.mdx)("h3",{id:"toc-types-first"},"types_first ",(0,t.mdx)(l.S,{version:"0.125.0",mdxType:"SinceVersion"})," ",(0,t.mdx)(l.l,{version:"0.142",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"For more on types-first mode, see the ",(0,t.mdx)("a",{parentName:"p",href:"../../lang/types-first/"},"types-first docs"),"."),(0,t.mdx)("p",null,"Flow builds intermediate artifacts to represent signatures of modules as they are\nchecked. If this option is set to ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),", then these artifacts are built using\ninferred type information. If this option is set to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true"),", then they are built\nusing type annotations at module boundaries."),(0,t.mdx)("p",null,"The default value for ",(0,t.mdx)("inlineCode",{parentName:"p"},"types_first")," is ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," (as of version 0.134)."),(0,t.mdx)("h3",{id:"toc-well-formed-exports"},"well_formed_exports ",(0,t.mdx)(l.S,{version:"0.125.0",mdxType:"SinceVersion"})," ",(0,t.mdx)(l.l,{version:"0.142",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Enforce the following restrictions on file exports:"),(0,t.mdx)("ul",null,(0,t.mdx)("li",{parentName:"ul"},"Statements manipulating ",(0,t.mdx)("inlineCode",{parentName:"li"},"module.exports")," and the ",(0,t.mdx)("inlineCode",{parentName:"li"},"exports")," alias may only appear\nas top-level statements."),(0,t.mdx)("li",{parentName:"ul"},"Parts of the source that are visible from a file's exports need to be annotated\nunless their type can be trivially inferred (e.g. the exported expression is a\nnumeric literal). This is a requirement for types-first mode to function properly.\nFailure to properly annotate exports raise ",(0,t.mdx)("inlineCode",{parentName:"li"},"signature-verification-failure"),"s.")),(0,t.mdx)("p",null,"This option is set to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," by default, since it is implied by ",(0,t.mdx)("a",{parentName:"p",href:"#toc-types-first-boolean"},(0,t.mdx)("inlineCode",{parentName:"a"},"types_first")),",\nbut the option is useful on its own when upgrading a project from classic mode to\ntypes-first mode."),(0,t.mdx)("h3",{id:"toc-well-formed-exports-includes"},"well_formed_exports.includes ",(0,t.mdx)(l.S,{version:"0.128.0",mdxType:"SinceVersion"})," ",(0,t.mdx)(l.l,{version:"0.142",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"string")),(0,t.mdx)("p",null,"Limit the scope of the ",(0,t.mdx)("inlineCode",{parentName:"p"},"well_formed_exports")," requirement to a specific directory\nof this project. For example"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"well_formed_exports=true\nwell_formed_exports.includes=/dirA\nwell_formed_exports.includes=/dirB\n")),(0,t.mdx)("p",null,"will only report export related errors in files under ",(0,t.mdx)("inlineCode",{parentName:"p"},"dirA")," and ",(0,t.mdx)("inlineCode",{parentName:"p"},"dirB"),". This option\nrequires ",(0,t.mdx)("inlineCode",{parentName:"p"},"well_formed_exports")," to be set to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true"),"."),(0,t.mdx)("p",null,"The purpose of this option is to help prepare a codebase for Flow types-first mode."),(0,t.mdx)("p",null,"Between versions v0.125.0 and v0.127.0, this option was named ",(0,t.mdx)("inlineCode",{parentName:"p"},"well_formed_exports.whitelist"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/249.b447d2e4.js b/assets/js/249.b447d2e4.js new file mode 100644 index 00000000000..cdf8ad42667 --- /dev/null +++ b/assets/js/249.b447d2e4.js @@ -0,0 +1,2 @@ +/*! For license information please see 249.b447d2e4.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[249],{80249:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>o,language:()=>s});var o={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`"},{open:'"',close:'"'},{open:"'",close:"'"}]},s={defaultToken:"",tokenPostfix:".go",keywords:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var","bool","true","false","uint8","uint16","uint32","uint64","int8","int16","int32","int64","float32","float64","complex64","complex128","byte","rune","uint","int","uintptr","string","nil"],operators:["+","-","*","/","%","&","|","^","<<",">>","&^","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=","&^=","&&","||","<-","++","--","==","<",">","=","!","!=","<=",">=",":=","...","(",")","","]","{","}",",",";",".",":"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex"],[/0[0-7']*[0-7]/,"number.octal"],[/0[bB][0-1']*[0-1]/,"number.binary"],[/\d[\d']*/,"number"],[/\d/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/`/,"string","@rawstring"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],rawstring:[[/[^\`]/,"string"],[/`/,"string","@pop"]]}}}}]); \ No newline at end of file diff --git a/assets/js/249.b447d2e4.js.LICENSE.txt b/assets/js/249.b447d2e4.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/249.b447d2e4.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/249.e91386e0.js b/assets/js/249.e91386e0.js new file mode 100644 index 00000000000..b5eaf6110f8 --- /dev/null +++ b/assets/js/249.e91386e0.js @@ -0,0 +1,227 @@ +"use strict"; +exports.id = 249; +exports.ids = [249]; +exports.modules = { + +/***/ 80249: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/go/go.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "`", close: "`", notIn: ["string"] }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string", "comment"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "`", close: "`" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".go", + keywords: [ + "break", + "case", + "chan", + "const", + "continue", + "default", + "defer", + "else", + "fallthrough", + "for", + "func", + "go", + "goto", + "if", + "import", + "interface", + "map", + "package", + "range", + "return", + "select", + "struct", + "switch", + "type", + "var", + "bool", + "true", + "false", + "uint8", + "uint16", + "uint32", + "uint64", + "int8", + "int16", + "int32", + "int64", + "float32", + "float64", + "complex64", + "complex128", + "byte", + "rune", + "uint", + "int", + "uintptr", + "string", + "nil" + ], + operators: [ + "+", + "-", + "*", + "/", + "%", + "&", + "|", + "^", + "<<", + ">>", + "&^", + "+=", + "-=", + "*=", + "/=", + "%=", + "&=", + "|=", + "^=", + "<<=", + ">>=", + "&^=", + "&&", + "||", + "<-", + "++", + "--", + "==", + "<", + ">", + "=", + "!", + "!=", + "<=", + ">=", + ":=", + "...", + "(", + ")", + "", + "]", + "{", + "}", + ",", + ";", + ".", + ":" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/\d*\d+[eE]([\-+]?\d+)?/, "number.float"], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F']*[0-9a-fA-F]/, "number.hex"], + [/0[0-7']*[0-7]/, "number.octal"], + [/0[bB][0-1']*[0-1]/, "number.binary"], + [/\d[\d']*/, "number"], + [/\d/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string"], + [/`/, "string", "@rawstring"], + [/'[^\\']'/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@doccomment"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + doccomment: [ + [/[^\/*]+/, "comment.doc"], + [/\/\*/, "comment.doc.invalid"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ], + rawstring: [ + [/[^\`]/, "string"], + [/`/, "string", "@pop"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/2490.26bb2f27.js b/assets/js/2490.26bb2f27.js new file mode 100644 index 00000000000..7dc4ebbae60 --- /dev/null +++ b/assets/js/2490.26bb2f27.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2490],{52490:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>d});var o=n(87462),i=(n(67294),n(3905));n(45475);const a={title:"Flow Annotate-Exports",slug:"/cli/annotate-exports"},r=void 0,s={unversionedId:"cli/annotate-exports",id:"cli/annotate-exports",title:"Flow Annotate-Exports",description:"Upgrading to Types-First mode may require a substantial",source:"@site/docs/cli/annotate-exports.md",sourceDirName:"cli",slug:"/cli/annotate-exports",permalink:"/en/docs/cli/annotate-exports",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/cli/annotate-exports.md",tags:[],version:"current",frontMatter:{title:"Flow Annotate-Exports",slug:"/cli/annotate-exports"},sidebar:"docsSidebar",previous:{title:"Flow Coverage",permalink:"/en/docs/cli/coverage"},next:{title:".flowconfig",permalink:"/en/docs/config"}},l={},d=[{value:"How to apply the codemod",id:"toc-how-to-apply-the-codemod",level:3},{value:"Codemod output",id:"toc-codemod-output",level:3}],m={toc:d};function p(e){let{components:t,...n}=e;return(0,i.mdx)("wrapper",(0,o.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Upgrading to ",(0,i.mdx)("a",{parentName:"p",href:"../../lang/types-first"},"Types-First")," mode may require a substantial\nnumber of type annotations at module boundaries. To help with the process of\nupgrading large codebases, we are providing a codemod command, whose goal is to\nfill in these missing annotations. This command is included in the Flow binary\nin versions ",(0,i.mdx)("inlineCode",{parentName:"p"},">= 0.125"),"."),(0,i.mdx)("blockquote",null,(0,i.mdx)("p",{parentName:"blockquote"},"Note: As of version 0.134, types-first is the default mode. If you are using a\nversion ",(0,i.mdx)("inlineCode",{parentName:"p"},">=0.134"),", make sure you set ",(0,i.mdx)("inlineCode",{parentName:"p"},"types_first=false")," in your .flowconfig while\nrunning this codemod.")),(0,i.mdx)("p",null,"This command uses types that Flow infers, to fill in positions that would otherwise\nraise ",(0,i.mdx)("em",{parentName:"p"},"signature-verification")," failures. It will include the necessary type import\nstatements, as long as the respective types are exported from their defining modules."),(0,i.mdx)("p",null,"It is designed for use on multiple files at once, rather than one file at a time.\nFor this reason it doesn't connect to an existing Flow server, but rather starts\na checking process of its own."),(0,i.mdx)("p",null,"As is typical with such mechanized approaches, it comes with a few caveats:"),(0,i.mdx)("ol",null,(0,i.mdx)("li",{parentName:"ol"},"It won\u2019t be able to fill in every required type annotation. Some cases will\nrequire manual effort."),(0,i.mdx)("li",{parentName:"ol"},"Inserted annotations may cause new flow errors, since it\u2019s not always possible\nto match inferred type with types that can be written as annotations."),(0,i.mdx)("li",{parentName:"ol"},"File formatting may be affected. If a code formatter (e.g. prettier) is used,\nit is recommended that you run it after the codemod has finished running.")),(0,i.mdx)("h3",{id:"toc-how-to-apply-the-codemod"},"How to apply the codemod"),(0,i.mdx)("p",null,"A typical way to invoke this command is"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre"},"flow codemod annotate-exports \\\n --write \\\n --repeat \\\n --log-level info \\\n /path/to/folder \\\n 2> out.log\n")),(0,i.mdx)("p",null,"This command will transform files under ",(0,i.mdx)("inlineCode",{parentName:"p"},"/path/to/folder"),". This does not need to\nbe the root directory (the one containing ",(0,i.mdx)("inlineCode",{parentName:"p"},".flowconfig"),")."),(0,i.mdx)("p",null,"It uses the following flags:"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("p",{parentName:"li"},(0,i.mdx)("inlineCode",{parentName:"p"},"--write")," will update files that require annotations under ",(0,i.mdx)("inlineCode",{parentName:"p"},"/path/to/folder"),"\nin-place. Without this flag the resulting files will be printed on the command line.")),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("p",{parentName:"li"},(0,i.mdx)("inlineCode",{parentName:"p"},"--repeat")," ensures that the transformation will be applied until no more files\nchange. This mode is necessary here, because each new type the codemod adds may\nrequire new locations to be annotated.")),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("p",{parentName:"li"},(0,i.mdx)("inlineCode",{parentName:"p"},"--log-level info")," outputs useful debugging information in the standard error stream.\nThis option might lead to verbose output, so we're redirecting the error output\nto a log file ",(0,i.mdx)("inlineCode",{parentName:"p"},"out.log"),"."))),(0,i.mdx)("p",null,"Another convenient way to provide the input is by passing the flag"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre"},"--input-file file.txt\n")),(0,i.mdx)("p",null,"where ",(0,i.mdx)("inlineCode",{parentName:"p"},"file.txt")," contains a specific list of files to be transformed."),(0,i.mdx)("h3",{id:"toc-codemod-output"},"Codemod output"),(0,i.mdx)("p",null,"After each iteration of the codemod, a summary will be printed on the CLI. This\nsummary includes statistical information about the number of annotations that were\nadded, and how many locations were skipped. It also prints counts for various kinds\nof errors that were encountered. These can be matched to the errors printed in the\nlogs."),(0,i.mdx)("p",null,"A common error case is when a type ",(0,i.mdx)("inlineCode",{parentName:"p"},"A"),", defined in a file ",(0,i.mdx)("inlineCode",{parentName:"p"},"a.js"),", but not exported,\nis inferred in file ",(0,i.mdx)("inlineCode",{parentName:"p"},"b.js"),". The codemod will skip adding this annotation and report\nan error in the logs. The fix this case, you can export ",(0,i.mdx)("inlineCode",{parentName:"p"},"A")," in ",(0,i.mdx)("inlineCode",{parentName:"p"},"a.js"),". Note that\nit is not necessary to manually import ",(0,i.mdx)("inlineCode",{parentName:"p"},"A")," in ",(0,i.mdx)("inlineCode",{parentName:"p"},"b.js"),". The codemod will do this\nautomatically."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2524.7afc641b.js b/assets/js/2524.7afc641b.js new file mode 100644 index 00000000000..b92cb2a54c1 --- /dev/null +++ b/assets/js/2524.7afc641b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2524],{22524:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>m,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>d});var s=t(87462),n=(t(67294),t(3905));const a={title:"Coming Soon: Changes to Object Spreads","short-title":"Changes to Object Spreads",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/coming-soon-changes-to-object-spreads-73204aef84e1"},r=void 0,i={permalink:"/blog/2019/08/20/Changes-to-Object-Spreads",source:"@site/blog/2019-08-20-Changes-to-Object-Spreads.md",title:"Coming Soon: Changes to Object Spreads",description:"Changes are coming to how Flow models object spreads! Learn more in this post.",date:"2019-08-20T00:00:00.000Z",formattedDate:"August 20, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Coming Soon: Changes to Object Spreads","short-title":"Changes to Object Spreads",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/coming-soon-changes-to-object-spreads-73204aef84e1"},prevItem:{title:"Live Flow errors in your IDE",permalink:"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE"},nextItem:{title:"Upgrading Flow Codebases",permalink:"/blog/2019/4/9/Upgrading-Flow-Codebases"}},m={authorsImageUrls:[void 0]},d=[],l={toc:d};function p(e){let{components:o,...t}=e;return(0,n.mdx)("wrapper",(0,s.Z)({},l,t,{components:o,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"Changes are coming to how Flow models object spreads! Learn more in this post."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2554.0673177f.js b/assets/js/2554.0673177f.js new file mode 100644 index 00000000000..e611c45816d --- /dev/null +++ b/assets/js/2554.0673177f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2554],{52554:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>c,frontMatter:()=>n,metadata:()=>s,toc:()=>m});var r=o(87462),i=(o(67294),o(3905));const n={title:"Typing Higher-Order Components in Recompose With Flow","short-title":"Flow Support in Recompose",author:"Ivan Starkov","medium-link":"https://medium.com/flow-type/flow-support-in-recompose-1b76f58f4cfc"},a=void 0,s={permalink:"/blog/2017/09/03/Flow-Support-in-Recompose",source:"@site/blog/2017-09-03-Flow-Support-in-Recompose.md",title:"Typing Higher-Order Components in Recompose With Flow",description:"One month ago Recompose landed an",date:"2017-09-03T00:00:00.000Z",formattedDate:"September 3, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Ivan Starkov"}],frontMatter:{title:"Typing Higher-Order Components in Recompose With Flow","short-title":"Flow Support in Recompose",author:"Ivan Starkov","medium-link":"https://medium.com/flow-type/flow-support-in-recompose-1b76f58f4cfc"},prevItem:{title:"Better Flow Error Messages for the JavaScript Ecosystem",permalink:"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem"},nextItem:{title:"Private Object Properties Using Flow\u2019s Opaque Type Aliases",permalink:"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases"}},p={authorsImageUrls:[void 0]},m=[],l={toc:m};function c(e){let{components:t,...o}=e;return(0,i.mdx)("wrapper",(0,r.Z)({},l,o,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"One month ago ",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/acdlite/recompose"},"Recompose")," landed an\nofficial Flow library definition. The definitions were a long time coming,\nconsidering the original PR was created by\n",(0,i.mdx)("a",{parentName:"p",href:"https://twitter.com/GiulioCanti"},"@GiulioCanti")," a year ago."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2565.75cc8af7.js b/assets/js/2565.75cc8af7.js new file mode 100644 index 00000000000..756cc516506 --- /dev/null +++ b/assets/js/2565.75cc8af7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2565],{42565:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var t=a(87462),o=(a(67294),a(3905));a(45475);const l={title:"Any",slug:"/types/any"},r=void 0,i={unversionedId:"types/any",id:"types/any",title:"Any",description:"Warning: Do not mistake any with mixed. It's also not the same as empty.",source:"@site/docs/types/any.md",sourceDirName:"types",slug:"/types/any",permalink:"/en/docs/types/any",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/any.md",tags:[],version:"current",frontMatter:{title:"Any",slug:"/types/any"},sidebar:"docsSidebar",previous:{title:"Empty",permalink:"/en/docs/types/empty"},next:{title:"Maybe Types",permalink:"/en/docs/types/maybe"}},d={},s=[{value:"Avoid leaking any",id:"toc-avoid-leaking-any",level:2}],p={toc:s};function m(e){let{components:n,...a}=e;return(0,o.mdx)("wrapper",(0,t.Z)({},p,a,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},(0,o.mdx)("strong",{parentName:"p"},"Warning:")," Do not mistake ",(0,o.mdx)("inlineCode",{parentName:"p"},"any")," with ",(0,o.mdx)("a",{parentName:"p",href:"../mixed"},(0,o.mdx)("inlineCode",{parentName:"a"},"mixed")),". It's also not the same as ",(0,o.mdx)("a",{parentName:"p",href:"../empty"},(0,o.mdx)("inlineCode",{parentName:"a"},"empty")),".")),(0,o.mdx)("p",null,"If you want a way to opt-out of using the type checker, ",(0,o.mdx)("inlineCode",{parentName:"p"},"any")," is the way to do\nit. ",(0,o.mdx)("strong",{parentName:"p"},"Using ",(0,o.mdx)("inlineCode",{parentName:"strong"},"any")," is completely unsafe, and should be avoided whenever\npossible.")),(0,o.mdx)("p",null,"For example, the following code will not report any errors:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function add(one: any, two: any): number {\n return one + two;\n}\n\nadd(1, 2); // Works.\nadd("1", "2"); // Works.\nadd({}, []); // Works.\n')),(0,o.mdx)("p",null,"Even code that will cause runtime errors will not be caught by Flow:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function getNestedProperty(obj: any) {\n return obj.foo.bar.baz;\n}\n\ngetNestedProperty({});\n")),(0,o.mdx)("p",null,"There are only a couple of scenarios where you might consider using ",(0,o.mdx)("inlineCode",{parentName:"p"},"any"),":"),(0,o.mdx)("ol",null,(0,o.mdx)("li",{parentName:"ol"},"When you are in the process of converting existing code to using Flow\ntypes and you are currently blocked on having the code type checked (maybe\nother code needs to be converted first)."),(0,o.mdx)("li",{parentName:"ol"},"When you are certain your code works and for some reason Flow is unable to\ntype check it correctly. There are a (decreasing) number of idioms in\nJavaScript that Flow is unable to statically type.")),(0,o.mdx)("p",null,"You can ban ",(0,o.mdx)("inlineCode",{parentName:"p"},"any")," by enabling the ",(0,o.mdx)("a",{parentName:"p",href:"../../linting/rule-reference/#toc-unclear-type"},(0,o.mdx)("inlineCode",{parentName:"a"},"unclear-type"))," lint rule."),(0,o.mdx)("p",null,"You can use the ",(0,o.mdx)("a",{parentName:"p",href:"../../cli/coverage/"},"coverage")," command to identify code typed as ",(0,o.mdx)("inlineCode",{parentName:"p"},"any"),"."),(0,o.mdx)("h2",{id:"toc-avoid-leaking-any"},"Avoid leaking ",(0,o.mdx)("inlineCode",{parentName:"h2"},"any")),(0,o.mdx)("p",null,"When you have a value with the type ",(0,o.mdx)("inlineCode",{parentName:"p"},"any"),", you can cause Flow to infer ",(0,o.mdx)("inlineCode",{parentName:"p"},"any"),"\nfor the results of all of the operations you perform."),(0,o.mdx)("p",null,"For example, if you get a property on an object typed ",(0,o.mdx)("inlineCode",{parentName:"p"},"any"),", the resulting\nvalue will also have the type ",(0,o.mdx)("inlineCode",{parentName:"p"},"any"),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function fn(obj: any) {\n let foo = obj.foo; // Results in `any` type\n}\n")),(0,o.mdx)("p",null,"You could then use the resulting value in another operation, such as adding it\nas if it were a number and the result will also be ",(0,o.mdx)("inlineCode",{parentName:"p"},"any"),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function fn(obj: any) {\n let foo = obj.foo; // Results in `any` type\n let bar = foo * 2; // Results in `any` type\n}\n")),(0,o.mdx)("p",null,"You could continue this process until ",(0,o.mdx)("inlineCode",{parentName:"p"},"any")," has leaked all over your code."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function fn(obj: any) {\n let foo = obj.foo;\n let bar = foo * 2;\n return bar; // Results in `any` type\n}\n\nlet bar = fn({ foo: 2 }); // Results in `any` type\nlet baz = "baz:" + bar; // Results in `any` type\n')),(0,o.mdx)("p",null,"Prevent this from happening by cutting ",(0,o.mdx)("inlineCode",{parentName:"p"},"any")," off as soon as possible by casting\nit to another type."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function fn(obj: any) {\n let foo: number = obj.foo;\n}\n")),(0,o.mdx)("p",null,"Now your code will not leak ",(0,o.mdx)("inlineCode",{parentName:"p"},"any"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2571.0debfd3f.js b/assets/js/2571.0debfd3f.js new file mode 100644 index 00000000000..1971de613cb --- /dev/null +++ b/assets/js/2571.0debfd3f.js @@ -0,0 +1,2 @@ +/*! For license information please see 2571.0debfd3f.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2571],{2571:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>u,language:()=>b});var i,r,o=n(38139),s=Object.defineProperty,a=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,p=Object.prototype.hasOwnProperty,m=(e,t,n,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of d(t))p.call(e,r)||r===n||s(e,r,{get:()=>t[r],enumerable:!(i=a(t,r))||i.enumerable});return e},l={};m(l,i=o,"default"),r&&m(r,i,"default");var c=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],u={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["\x3c!--","--\x3e"],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${c.join("|")}))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:l.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${c.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:l.languages.IndentAction.Indent}}],folding:{markers:{start:new RegExp("^\\s*\x3c!--\\s*#region\\b.*--\x3e"),end:new RegExp("^\\s*\x3c!--\\s*#endregion\\b.*--\x3e")}}},b={defaultToken:"",tokenPostfix:".html",ignoreCase:!0,tokenizer:{root:[[/)/,["delimiter","tag","","delimiter"]],[/(<)(script)/,["delimiter",{token:"tag",next:"@script"}]],[/(<)(style)/,["delimiter",{token:"tag",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/]+/,"metatag.content"],[/>/,"metatag","@pop"]],comment:[[/-->/,"comment","@pop"],[/[^-]+/,"comment.content"],[/./,"comment.content"]],otherTag:[[/\/?>/,"delimiter","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"module"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/'module'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}}}}]); \ No newline at end of file diff --git a/assets/js/2571.0debfd3f.js.LICENSE.txt b/assets/js/2571.0debfd3f.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/2571.0debfd3f.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/2571.3e9b5346.js b/assets/js/2571.3e9b5346.js new file mode 100644 index 00000000000..34174265f84 --- /dev/null +++ b/assets/js/2571.3e9b5346.js @@ -0,0 +1,313 @@ +"use strict"; +exports.id = 2571; +exports.ids = [2571]; +exports.modules = { + +/***/ 2571: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38139); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/basic-languages/html/html.ts +var EMPTY_ELEMENTS = [ + "area", + "base", + "br", + "col", + "embed", + "hr", + "img", + "input", + "keygen", + "link", + "menuitem", + "meta", + "param", + "source", + "track", + "wbr" +]; +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g, + comments: { + blockComment: [""] + }, + brackets: [ + [""], + ["<", ">"], + ["{", "}"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" } + ], + onEnterRules: [ + { + beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + afterText: /^<\/([_:\w][_:\w-.\d]*)\s*>$/i, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent + } + }, + { + beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent } + } + ], + folding: { + markers: { + start: new RegExp("^\\s*"), + end: new RegExp("^\\s*") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".html", + ignoreCase: true, + tokenizer: { + root: [ + [/)/, ["delimiter", "tag", "", "delimiter"]], + [/(<)(script)/, ["delimiter", { token: "tag", next: "@script" }]], + [/(<)(style)/, ["delimiter", { token: "tag", next: "@style" }]], + [/(<)((?:[\w\-]+:)?[\w\-]+)/, ["delimiter", { token: "tag", next: "@otherTag" }]], + [/(<\/)((?:[\w\-]+:)?[\w\-]+)/, ["delimiter", { token: "tag", next: "@otherTag" }]], + [/]+/, "metatag.content"], + [/>/, "metatag", "@pop"] + ], + comment: [ + [/-->/, "comment", "@pop"], + [/[^-]+/, "comment.content"], + [/./, "comment.content"] + ], + otherTag: [ + [/\/?>/, "delimiter", "@pop"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/] + ], + script: [ + [/type/, "attribute.name", "@scriptAfterType"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [ + />/, + { + token: "delimiter", + next: "@scriptEmbedded", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/(<\/)(script\s*)(>)/, ["delimiter", "tag", { token: "delimiter", next: "@pop" }]] + ], + scriptAfterType: [ + [/=/, "delimiter", "@scriptAfterTypeEquals"], + [ + />/, + { + token: "delimiter", + next: "@scriptEmbedded", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptAfterTypeEquals: [ + [ + /"module"/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.text/javascript" + } + ], + [ + /'module'/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.text/javascript" + } + ], + [ + /"([^"]*)"/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter", + next: "@scriptEmbedded", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptWithCustomType: [ + [ + />/, + { + token: "delimiter", + next: "@scriptEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptEmbedded: [ + [/<\/script/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }], + [/[^<]+/, ""] + ], + style: [ + [/type/, "attribute.name", "@styleAfterType"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [ + />/, + { + token: "delimiter", + next: "@styleEmbedded", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/(<\/)(style\s*)(>)/, ["delimiter", "tag", { token: "delimiter", next: "@pop" }]] + ], + styleAfterType: [ + [/=/, "delimiter", "@styleAfterTypeEquals"], + [ + />/, + { + token: "delimiter", + next: "@styleEmbedded", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleAfterTypeEquals: [ + [ + /"([^"]*)"/, + { + token: "attribute.value", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter", + next: "@styleEmbedded", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleWithCustomType: [ + [ + />/, + { + token: "delimiter", + next: "@styleEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleEmbedded: [ + [/<\/style/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }], + [/[^<]+/, ""] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/2601.785852cd.js b/assets/js/2601.785852cd.js new file mode 100644 index 00000000000..1183a239e66 --- /dev/null +++ b/assets/js/2601.785852cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2601],{52601:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var n=a(87462),o=(a(67294),a(3905));a(45475);const i={title:"Getting Started",slug:"/react",description:"Learn how to use Flow to effectively type common and advanced React patterns."},r=void 0,s={unversionedId:"react/index",id:"react/index",title:"Getting Started",description:"Learn how to use Flow to effectively type common and advanced React patterns.",source:"@site/docs/react/index.md",sourceDirName:"react",slug:"/react",permalink:"/en/docs/react",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/react/index.md",tags:[],version:"current",frontMatter:{title:"Getting Started",slug:"/react",description:"Learn how to use Flow to effectively type common and advanced React patterns."},sidebar:"docsSidebar",previous:{title:"Annotation Requirement",permalink:"/en/docs/lang/annotation-requirement"},next:{title:"Components",permalink:"/en/docs/react/components"}},l={},c=[{value:"Setup Flow with React",id:"toc-setup-flow-with-react",level:2},{value:"React Runtimes",id:"react-runtimes",level:2}],d={toc:c};function p(e){let{components:t,...a}=e;return(0,o.mdx)("wrapper",(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Developers will often use Flow and React together, so it is important that Flow\ncan effectively type both common and advanced React patterns. This guide will\nteach you how to use Flow to create safer React applications."),(0,o.mdx)("p",null,"In this guide we will assume you know ",(0,o.mdx)("a",{parentName:"p",href:"https://react.dev/learn"},"the React basics")," and focus on adding\ntypes for patterns you are already familiar with. We will be using examples\nbased on ",(0,o.mdx)("inlineCode",{parentName:"p"},"react-dom"),", but all of these patterns work in other environments\nlike ",(0,o.mdx)("inlineCode",{parentName:"p"},"react-native")," as well."),(0,o.mdx)("h2",{id:"toc-setup-flow-with-react"},"Setup Flow with React"),(0,o.mdx)("p",null,"Flow and Babel work well together, so it doesn't take much to adopt Flow as a\nReact user who already uses Babel. If you need to setup Babel with Flow, you can\nfollow ",(0,o.mdx)("a",{parentName:"p",href:"../tools/babel/"},"this guide"),"."),(0,o.mdx)("h2",{id:"react-runtimes"},"React Runtimes"),(0,o.mdx)("p",null,"Flow supports the ",(0,o.mdx)("inlineCode",{parentName:"p"},"@babel/plugin-transform-react-jsx")," runtime options required\nto use JSX without explicitly importing the React namespace."),(0,o.mdx)("p",null,"If you are using the new automatic runtime, use this configuration in your ",(0,o.mdx)("inlineCode",{parentName:"p"},".flowconfig")," so\nthat Flow knows to auto-import ",(0,o.mdx)("inlineCode",{parentName:"p"},"jsx"),":"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-ini"},"[options]\nreact.runtime=automatic\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2625.8dd63d43.js b/assets/js/2625.8dd63d43.js new file mode 100644 index 00000000000..1ba88e5fe66 --- /dev/null +++ b/assets/js/2625.8dd63d43.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2625],{12625:(n,t,e)=>{e.r(t),e.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>s,metadata:()=>r,toc:()=>d});var i=e(87462),o=(e(67294),e(3905));const s={title:"Sound Typing for 'this' in Flow","short-title":"Sound Typing for 'this'",author:"Daniel Sainati","medium-link":"https://medium.com/flow-type/sound-typing-for-this-in-flow-d62db2af969e"},a=void 0,r={permalink:"/blog/2021/06/02/Sound-Typing-for-this-in-Flow",source:"@site/blog/2021-06-02-Sound-Typing-for-this-in-Flow.md",title:"Sound Typing for 'this' in Flow",description:"Improvements in soundness for this-typing in Flow, including the ability to annotate this on functions and methods.",date:"2021-06-02T00:00:00.000Z",formattedDate:"June 2, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"Daniel Sainati"}],frontMatter:{title:"Sound Typing for 'this' in Flow","short-title":"Sound Typing for 'this'",author:"Daniel Sainati","medium-link":"https://medium.com/flow-type/sound-typing-for-this-in-flow-d62db2af969e"},prevItem:{title:"Introducing Flow Indexed Access Types",permalink:"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types"},nextItem:{title:"Clarity on Flow's Direction and Open Source Engagement",permalink:"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement"}},l={authorsImageUrls:[void 0]},d=[],p={toc:d};function u(n){let{components:t,...e}=n;return(0,o.mdx)("wrapper",(0,i.Z)({},p,e,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Improvements in soundness for ",(0,o.mdx)("inlineCode",{parentName:"p"},"this"),"-typing in Flow, including the ability to annotate ",(0,o.mdx)("inlineCode",{parentName:"p"},"this")," on functions and methods."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2638.edecc05b.js b/assets/js/2638.edecc05b.js new file mode 100644 index 00000000000..3e7ec530e2e --- /dev/null +++ b/assets/js/2638.edecc05b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2638],{82638:e=>{e.exports=JSON.parse('{"permalink":"/blog/page/2","page":2,"postsPerPage":50,"totalPages":2,"totalCount":54,"previousPage":"/blog","blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/2657.35cf273e.js b/assets/js/2657.35cf273e.js new file mode 100644 index 00000000000..a22650cb1a3 --- /dev/null +++ b/assets/js/2657.35cf273e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2657],{52991:(e,t,o)=>{o.d(t,{Z:()=>g});var n=o(67294),i=o(86010),r=o(53438),s=o(39960),l=o(13919),a=o(95999);const c="cardContainer_fWXF",d="cardTitle_rnsV",m="cardDescription_PWke";function u(e){let{href:t,children:o}=e;return n.createElement(s.default,{href:t,className:(0,i.default)("card padding--lg",c)},o)}function f(e){let{href:t,icon:o,title:r,description:s}=e;return n.createElement(u,{href:t},n.createElement("h2",{className:(0,i.default)("text--truncate",d),title:r},o," ",r),s&&n.createElement("p",{className:(0,i.default)("text--truncate",m),title:s},s))}function p(e){var t;let{item:o}=e;const i=(0,r.Wl)(o);return i?n.createElement(f,{href:i,icon:"\ud83d\uddc3\ufe0f",title:o.label,description:null!=(t=o.description)?t:(0,a.translate)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:o.items.length})}):null}function h(e){var t,o;let{item:i}=e;const s=(0,l.Z)(i.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",a=(0,r.xz)(null!=(t=i.docId)?t:void 0);return n.createElement(f,{href:i.href,icon:s,title:i.label,description:null!=(o=i.description)?o:null==a?void 0:a.description})}function w(e){let{item:t}=e;switch(t.type){case"link":return n.createElement(h,{item:t});case"category":return n.createElement(p,{item:t});default:throw new Error("unknown item type "+JSON.stringify(t))}}function b(e){let{className:t}=e;const o=(0,r.jA)();return n.createElement(g,{items:o.items,className:t})}function g(e){const{items:t,className:o}=e;if(!t)return n.createElement(b,e);const s=(0,r.MN)(t);return n.createElement("section",{className:(0,i.default)("row",o)},s.map(((e,t)=>n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(w,{item:e})))))}},52657:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>a,toc:()=>d});var n=o(87462),i=(o(67294),o(3905)),r=(o(45475),o(52991));const s={title:"Tools",slug:"/tools",displayed_sidebar:"docsSidebar",description:"Detailed guides, tips, and resources on how to integrate Flow with different JavaScript tools."},l=void 0,a={unversionedId:"tools/index",id:"tools/index",title:"Tools",description:"Detailed guides, tips, and resources on how to integrate Flow with different JavaScript tools.",source:"@site/docs/tools/index.md",sourceDirName:"tools",slug:"/tools",permalink:"/en/docs/tools",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/tools/index.md",tags:[],version:"current",frontMatter:{title:"Tools",slug:"/tools",displayed_sidebar:"docsSidebar",description:"Detailed guides, tips, and resources on how to integrate Flow with different JavaScript tools."},sidebar:"docsSidebar"},c={},d=[],m={toc:d};function u(e){let{components:t,...o}=e;return(0,i.mdx)("wrapper",(0,n.Z)({},m,o,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)(r.Z,{items:[{type:"link",label:"Babel",href:"/en/docs/tools/babel"},{type:"link",label:"ESLint",href:"/en/docs/tools/eslint"},{type:"link",label:"flow-remove-types",href:"/en/docs/tools/flow-remove-types"}],mdxType:"DocCardList"}))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2798.15e85de8.js b/assets/js/2798.15e85de8.js new file mode 100644 index 00000000000..e1a0742b219 --- /dev/null +++ b/assets/js/2798.15e85de8.js @@ -0,0 +1,87 @@ +"use strict"; +exports.id = 2798; +exports.ids = [2798]; +exports.modules = { + +/***/ 52798: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/ini/ini.ts +var conf = { + comments: { + lineComment: "#" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".ini", + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + tokenizer: { + root: [ + [/^\[[^\]]*\]/, "metatag"], + [/(^\w+)(\s*)(\=)/, ["key", "", "delimiter"]], + { include: "@whitespace" }, + [/\d+/, "number"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/"/, "string", '@string."'], + [/'/, "string", "@string.'"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/^\s*[#;].*$/, "comment"] + ], + string: [ + [/[^\\"']+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [ + /["']/, + { + cases: { + "$#==$S2": { token: "string", next: "@pop" }, + "@default": "string" + } + } + ] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/2798.58a5b297.js b/assets/js/2798.58a5b297.js new file mode 100644 index 00000000000..707f88a9712 --- /dev/null +++ b/assets/js/2798.58a5b297.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2798],{22798:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>r,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var a=t(87462),o=(t(67294),t(3905));t(45475);const s={title:"Depth Subtyping",slug:"/lang/depth-subtyping"},r=void 0,i={unversionedId:"lang/depth-subtyping",id:"lang/depth-subtyping",title:"Depth Subtyping",description:"Assume we have two classes, which have a subtype relationship using extends:",source:"@site/docs/lang/depth-subtyping.md",sourceDirName:"lang",slug:"/lang/depth-subtyping",permalink:"/en/docs/lang/depth-subtyping",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/depth-subtyping.md",tags:[],version:"current",frontMatter:{title:"Depth Subtyping",slug:"/lang/depth-subtyping"},sidebar:"docsSidebar",previous:{title:"Nominal & Structural Typing",permalink:"/en/docs/lang/nominal-structural"},next:{title:"Width Subtyping",permalink:"/en/docs/lang/width-subtyping"}},p={},l=[],m={toc:l};function d(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Assume we have two ",(0,o.mdx)("a",{parentName:"p",href:"../../types/classes"},"classes"),", which have a subtype relationship using ",(0,o.mdx)("inlineCode",{parentName:"p"},"extends"),":"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class Person {\n name: string;\n}\nclass Employee extends Person {\n department: string;\n}\n")),(0,o.mdx)("p",null,"It's valid to use an ",(0,o.mdx)("inlineCode",{parentName:"p"},"Employee")," instance where a ",(0,o.mdx)("inlineCode",{parentName:"p"},"Person")," instance is expected."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class Person { name: string }\nclass Employee extends Person { department: string }\n\nconst employee: Employee = new Employee();\nconst person: Person = employee; // OK\n")),(0,o.mdx)("p",null,"However, it is not valid to use an object containing an ",(0,o.mdx)("inlineCode",{parentName:"p"},"Employee")," instance\nwhere an object containing a ",(0,o.mdx)("inlineCode",{parentName:"p"},"Person")," instance is expected."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":31,"endLine":5,"endColumn":38,"description":"Cannot assign `employee` to `person` because `Person` [1] is incompatible with `Employee` [2] in property `who`. This property is invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number. [incompatible-type]"}]','[{"startLine":5,"startColumn":31,"endLine":5,"endColumn":38,"description":"Cannot':!0,assign:!0,"`employee`":!0,to:!0,"`person`":!0,because:!0,"`Person`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"`Employee`":!0,"[2]":!0,in:!0,property:!0,"`who`.":!0,This:!0,invariantly:!0,"typed.":!0,See:!0,"https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number.":!0,'[incompatible-type]"}]':!0},"class Person { name: string }\nclass Employee extends Person { department: string }\n\nconst employee: {who: Employee} = {who: new Employee()};\nconst person: {who: Person} = employee; // Error\n")),(0,o.mdx)("p",null,"This is an error because objects are mutable. The value referenced by the\n",(0,o.mdx)("inlineCode",{parentName:"p"},"employee")," variable is the same as the value referenced by the ",(0,o.mdx)("inlineCode",{parentName:"p"},"person"),"\nvariable."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"person.who = new Person();\n")),(0,o.mdx)("p",null,"If we write into the ",(0,o.mdx)("inlineCode",{parentName:"p"},"who")," property of the ",(0,o.mdx)("inlineCode",{parentName:"p"},"person")," object, we've also changed\nthe value of ",(0,o.mdx)("inlineCode",{parentName:"p"},"employee.who"),", which is explicitly annotated to be an ",(0,o.mdx)("inlineCode",{parentName:"p"},"Employee"),"\ninstance."),(0,o.mdx)("p",null,"If we prevented any code from ever writing a new value to the object through\nthe ",(0,o.mdx)("inlineCode",{parentName:"p"},"person")," variable, it would be safe to use the ",(0,o.mdx)("inlineCode",{parentName:"p"},"employee")," variable. Flow\nprovides a syntax for this:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":8,"endLine":6,"endColumn":10,"description":"Cannot assign `new Person()` to `person.who` because property `who` is not writable. [cannot-write]"}]','[{"startLine":6,"startColumn":8,"endLine":6,"endColumn":10,"description":"Cannot':!0,assign:!0,"`new":!0,"Person()`":!0,to:!0,"`person.who`":!0,because:!0,property:!0,"`who`":!0,is:!0,not:!0,"writable.":!0,'[cannot-write]"}]':!0},"class Person { name: string }\nclass Employee extends Person { department: string }\n\nconst employee: {who: Employee} = {who: new Employee()};\nconst person: {+who: Person} = employee; // OK\nperson.who = new Person(); // Error!\n")),(0,o.mdx)("p",null,"The plus sign ",(0,o.mdx)("inlineCode",{parentName:"p"},"+")," indicates that the ",(0,o.mdx)("inlineCode",{parentName:"p"},"who")," property is ",(0,o.mdx)("a",{parentName:"p",href:"../variance/#toc-covariance"},"covariant"),".\nUsing a covariant property allows us to use objects which have subtype-compatible\nvalues for that property. By default, object properties are invariant, which allow\nboth reads and writes, but are more restrictive in the values they accept."),(0,o.mdx)("p",null,"Read more about ",(0,o.mdx)("a",{parentName:"p",href:"../variance/"},"property variance"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2814.5021f04e.js b/assets/js/2814.5021f04e.js new file mode 100644 index 00000000000..91c93a6cae8 --- /dev/null +++ b/assets/js/2814.5021f04e.js @@ -0,0 +1,2 @@ +/*! For license information please see 2814.5021f04e.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2814],{12814:(e,o,n)=>{n.r(o),n.d(o,{conf:()=>t,language:()=>r});var t={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}]},r={defaultToken:"",tokenPostfix:".ecl",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],pounds:["append","break","declare","demangle","end","for","getdatatype","if","inmodule","loop","mangle","onwarning","option","set","stored","uniquename"].join("|"),keywords:["__compressed__","after","all","and","any","as","atmost","before","beginc","best","between","case","cluster","compressed","compression","const","counter","csv","default","descend","embed","encoding","encrypt","end","endc","endembed","endmacro","enum","escape","except","exclusive","expire","export","extend","fail","few","fileposition","first","flat","forward","from","full","function","functionmacro","group","grouped","heading","hole","ifblock","import","in","inner","interface","internal","joined","keep","keyed","last","left","limit","linkcounted","literal","little_endian","load","local","locale","lookup","lzw","macro","many","maxcount","maxlength","min skew","module","mofn","multiple","named","namespace","nocase","noroot","noscan","nosort","not","noxpath","of","onfail","only","opt","or","outer","overwrite","packed","partition","penalty","physicallength","pipe","prefetch","quote","record","repeat","retry","return","right","right1","right2","rows","rowset","scan","scope","self","separator","service","shared","skew","skip","smart","soapaction","sql","stable","store","terminator","thor","threshold","timelimit","timeout","token","transform","trim","type","unicodeorder","unordered","unsorted","unstable","update","use","validate","virtual","whole","width","wild","within","wnotrim","xml","xpath"],functions:["abs","acos","aggregate","allnodes","apply","ascii","asin","assert","asstring","atan","atan2","ave","build","buildindex","case","catch","choose","choosen","choosesets","clustersize","combine","correlation","cos","cosh","count","covariance","cron","dataset","dedup","define","denormalize","dictionary","distribute","distributed","distribution","ebcdic","enth","error","evaluate","event","eventextra","eventname","exists","exp","fail","failcode","failmessage","fetch","fromunicode","fromxml","getenv","getisvalid","global","graph","group","hash","hash32","hash64","hashcrc","hashmd5","having","httpcall","httpheader","if","iff","index","intformat","isvalid","iterate","join","keydiff","keypatch","keyunicode","length","library","limit","ln","loadxml","local","log","loop","map","matched","matchlength","matchposition","matchtext","matchunicode","max","merge","mergejoin","min","nofold","nolocal","nonempty","normalize","nothor","notify","output","parallel","parse","pipe","power","preload","process","project","pull","random","range","rank","ranked","realformat","recordof","regexfind","regexreplace","regroup","rejected","rollup","round","roundup","row","rowdiff","sample","sequential","set","sin","sinh","sizeof","soapcall","sort","sorted","sqrt","stepped","stored","sum","table","tan","tanh","thisnode","topn","tounicode","toxml","transfer","transform","trim","truncate","typeof","ungroup","unicodeorder","variance","wait","which","workunit","xmldecode","xmlencode","xmltext","xmlunicode"],typesint:["integer","unsigned"].join("|"),typesnum:["data","qstring","string","unicode","utf8","varstring","varunicode"],typesone:["ascii","big_endian","boolean","data","decimal","ebcdic","grouped","integer","linkcounted","pattern","qstring","real","record","rule","set of","streamed","string","token","udecimal","unicode","unsigned","utf8","varstring","varunicode"].join("|"),operators:["+","-","/",":=","<","<>","=",">","\\","and","in","not","or"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]]}}}}]); \ No newline at end of file diff --git a/assets/js/2814.5021f04e.js.LICENSE.txt b/assets/js/2814.5021f04e.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/2814.5021f04e.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/2814.f576c6ab.js b/assets/js/2814.f576c6ab.js new file mode 100644 index 00000000000..f1bb47b806f --- /dev/null +++ b/assets/js/2814.f576c6ab.js @@ -0,0 +1,473 @@ +"use strict"; +exports.id = 2814; +exports.ids = [2814]; +exports.modules = { + +/***/ 12814: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/ecl/ecl.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string", "comment"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" }, + { open: '"', close: '"' } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".ecl", + ignoreCase: true, + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + pounds: [ + "append", + "break", + "declare", + "demangle", + "end", + "for", + "getdatatype", + "if", + "inmodule", + "loop", + "mangle", + "onwarning", + "option", + "set", + "stored", + "uniquename" + ].join("|"), + keywords: [ + "__compressed__", + "after", + "all", + "and", + "any", + "as", + "atmost", + "before", + "beginc", + "best", + "between", + "case", + "cluster", + "compressed", + "compression", + "const", + "counter", + "csv", + "default", + "descend", + "embed", + "encoding", + "encrypt", + "end", + "endc", + "endembed", + "endmacro", + "enum", + "escape", + "except", + "exclusive", + "expire", + "export", + "extend", + "fail", + "few", + "fileposition", + "first", + "flat", + "forward", + "from", + "full", + "function", + "functionmacro", + "group", + "grouped", + "heading", + "hole", + "ifblock", + "import", + "in", + "inner", + "interface", + "internal", + "joined", + "keep", + "keyed", + "last", + "left", + "limit", + "linkcounted", + "literal", + "little_endian", + "load", + "local", + "locale", + "lookup", + "lzw", + "macro", + "many", + "maxcount", + "maxlength", + "min skew", + "module", + "mofn", + "multiple", + "named", + "namespace", + "nocase", + "noroot", + "noscan", + "nosort", + "not", + "noxpath", + "of", + "onfail", + "only", + "opt", + "or", + "outer", + "overwrite", + "packed", + "partition", + "penalty", + "physicallength", + "pipe", + "prefetch", + "quote", + "record", + "repeat", + "retry", + "return", + "right", + "right1", + "right2", + "rows", + "rowset", + "scan", + "scope", + "self", + "separator", + "service", + "shared", + "skew", + "skip", + "smart", + "soapaction", + "sql", + "stable", + "store", + "terminator", + "thor", + "threshold", + "timelimit", + "timeout", + "token", + "transform", + "trim", + "type", + "unicodeorder", + "unordered", + "unsorted", + "unstable", + "update", + "use", + "validate", + "virtual", + "whole", + "width", + "wild", + "within", + "wnotrim", + "xml", + "xpath" + ], + functions: [ + "abs", + "acos", + "aggregate", + "allnodes", + "apply", + "ascii", + "asin", + "assert", + "asstring", + "atan", + "atan2", + "ave", + "build", + "buildindex", + "case", + "catch", + "choose", + "choosen", + "choosesets", + "clustersize", + "combine", + "correlation", + "cos", + "cosh", + "count", + "covariance", + "cron", + "dataset", + "dedup", + "define", + "denormalize", + "dictionary", + "distribute", + "distributed", + "distribution", + "ebcdic", + "enth", + "error", + "evaluate", + "event", + "eventextra", + "eventname", + "exists", + "exp", + "fail", + "failcode", + "failmessage", + "fetch", + "fromunicode", + "fromxml", + "getenv", + "getisvalid", + "global", + "graph", + "group", + "hash", + "hash32", + "hash64", + "hashcrc", + "hashmd5", + "having", + "httpcall", + "httpheader", + "if", + "iff", + "index", + "intformat", + "isvalid", + "iterate", + "join", + "keydiff", + "keypatch", + "keyunicode", + "length", + "library", + "limit", + "ln", + "loadxml", + "local", + "log", + "loop", + "map", + "matched", + "matchlength", + "matchposition", + "matchtext", + "matchunicode", + "max", + "merge", + "mergejoin", + "min", + "nofold", + "nolocal", + "nonempty", + "normalize", + "nothor", + "notify", + "output", + "parallel", + "parse", + "pipe", + "power", + "preload", + "process", + "project", + "pull", + "random", + "range", + "rank", + "ranked", + "realformat", + "recordof", + "regexfind", + "regexreplace", + "regroup", + "rejected", + "rollup", + "round", + "roundup", + "row", + "rowdiff", + "sample", + "sequential", + "set", + "sin", + "sinh", + "sizeof", + "soapcall", + "sort", + "sorted", + "sqrt", + "stepped", + "stored", + "sum", + "table", + "tan", + "tanh", + "thisnode", + "topn", + "tounicode", + "toxml", + "transfer", + "transform", + "trim", + "truncate", + "typeof", + "ungroup", + "unicodeorder", + "variance", + "wait", + "which", + "workunit", + "xmldecode", + "xmlencode", + "xmltext", + "xmlunicode" + ], + typesint: ["integer", "unsigned"].join("|"), + typesnum: ["data", "qstring", "string", "unicode", "utf8", "varstring", "varunicode"], + typesone: [ + "ascii", + "big_endian", + "boolean", + "data", + "decimal", + "ebcdic", + "grouped", + "integer", + "linkcounted", + "pattern", + "qstring", + "real", + "record", + "rule", + "set of", + "streamed", + "string", + "token", + "udecimal", + "unicode", + "unsigned", + "utf8", + "varstring", + "varunicode" + ].join("|"), + operators: ["+", "-", "/", ":=", "<", "<>", "=", ">", "\\", "and", "in", "not", "or"], + symbols: /[=>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F_]+/, "number.hex"], + [/0[bB][01]+/, "number.hex"], + [/[0-9_]+/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string"], + [/'[^\\']'/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + whitespace: [ + [/[ \t\v\f\r\n]+/, ""], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + string: [ + [/[^\\']+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/'/, "string", "@pop"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/2837.c1fc15db.js b/assets/js/2837.c1fc15db.js new file mode 100644 index 00000000000..fe814bfdc5f --- /dev/null +++ b/assets/js/2837.c1fc15db.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2837],{52837:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>p,toc:()=>s});var o=n(87462),a=(n(67294),n(3905));const r={title:"Announcing Import Type","short-title":"Import Type",author:"Jeff Morrison",hide_table_of_contents:!0},i=void 0,p={permalink:"/blog/2015/02/18/Import-Types",source:"@site/blog/2015-02-18-Import-Types.md",title:"Announcing Import Type",description:"As of Flow 0.3.0, it's now possible to import types from another module. So, for example, if you're only importing a class for purposes of referencing it in a type annotation, you can now use the new import type syntax to do this.",date:"2015-02-18T00:00:00.000Z",formattedDate:"February 18, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Jeff Morrison"}],frontMatter:{title:"Announcing Import Type","short-title":"Import Type",author:"Jeff Morrison",hide_table_of_contents:!0},prevItem:{title:"Announcing Flow Comments",permalink:"/blog/2015/02/20/Flow-Comments"},nextItem:{title:"Announcing Typecasts",permalink:"/blog/2015/02/18/Typecasts"}},l={authorsImageUrls:[void 0]},s=[{value:"Motivation",id:"motivation",level:2},{value:"Enter Import Type",id:"enter-import-type",level:2},{value:"Transformations",id:"transformations",level:2},{value:"Anticipatory Q&A",id:"anticipatory-qa",level:2},{value:"Wait, but what happens at runtime after I've added an import type declaration?",id:"wait-but-what-happens-at-runtime-after-ive-added-an-import-type-declaration",level:3},{value:"Can I use import type to pull in type aliases from another module, too?",id:"can-i-use-import-type-to-pull-in-type-aliases-from-another-module-too",level:3}],m={toc:s};function d(e){let{components:t,...n}=e;return(0,a.mdx)("wrapper",(0,o.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"As of Flow 0.3.0, it's now possible to import types from another module. So, for example, if you're only importing a class for purposes of referencing it in a type annotation, you can now use the new ",(0,a.mdx)("inlineCode",{parentName:"p"},"import type")," syntax to do this."),(0,a.mdx)("h2",{id:"motivation"},"Motivation"),(0,a.mdx)("p",null,"Has this ever happened to you:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"// @flow\n\n// Post-transformation lint error: Unused variable 'URI'\nimport URI from \"URI\";\n\n// But if you delete the require you get a Flow error:\n// identifier URI - Unknown global name\nmodule.exports = function(x: URI): URI {\n return x;\n}\n")),(0,a.mdx)("p",null,"Now you have an out! To solve this problem (and with an eye toward a near future with ES6 module syntax), we've added the new ",(0,a.mdx)("inlineCode",{parentName:"p"},"import type")," syntax. With ",(0,a.mdx)("inlineCode",{parentName:"p"},"import type"),", you can convey what you really mean here \u2014 that you want to import the ",(0,a.mdx)("em",{parentName:"p"},"type")," of the class and not really the class itself."),(0,a.mdx)("h2",{id:"enter-import-type"},"Enter Import Type"),(0,a.mdx)("p",null,"So instead of the above code, you can now write this:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"// @flow\n\nimport type URI from 'URI';\nmodule.exports = function(x: URI): URI {\n return x;\n};\n")),(0,a.mdx)("p",null,"If you have a module that exports multiple classes (like, say, a Crayon and a Marker class), you can import the type for each of them together or separately like this:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"// @flow\n\nimport type {Crayon, Marker} from 'WritingUtensils';\nmodule.exports = function junkDrawer(x: Crayon, y: Marker): void {}\n")),(0,a.mdx)("h2",{id:"transformations"},"Transformations"),(0,a.mdx)("p",null,"Like type annotations and other Flow features, ",(0,a.mdx)("inlineCode",{parentName:"p"},"import type")," need to be transformed away before the code can be run. The transforms will be available in react-tools ",(0,a.mdx)("inlineCode",{parentName:"p"},"0.13.0")," when it is published soon, but for now they're available in ",(0,a.mdx)("inlineCode",{parentName:"p"},"0.13.0-beta.2"),", which you can install with"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-bash"},"npm install react-tools@0.13.0-beta.2\n")),(0,a.mdx)("h2",{id:"anticipatory-qa"},"Anticipatory Q&A"),(0,a.mdx)("h3",{id:"wait-but-what-happens-at-runtime-after-ive-added-an-import-type-declaration"},"Wait, but what happens at runtime after I've added an ",(0,a.mdx)("inlineCode",{parentName:"h3"},"import type")," declaration?"),(0,a.mdx)("p",null,(0,a.mdx)("em",{parentName:"p"},"Nothing! All ",(0,a.mdx)("inlineCode",{parentName:"em"},"import type")," declarations get stripped away just like other flow syntax.")),(0,a.mdx)("h3",{id:"can-i-use-import-type-to-pull-in-type-aliases-from-another-module-too"},"Can I use ",(0,a.mdx)("inlineCode",{parentName:"h3"},"import type")," to pull in type aliases from another module, too?"),(0,a.mdx)("del",null,"Not quite yet...but soon! There are a few other moving parts that we need to build first, but we're working on it."),(0,a.mdx)("p",null,"EDIT: Yes! As of Flow 0.10 you can use the ",(0,a.mdx)("inlineCode",{parentName:"p"},"export type MyType = ... ;")," syntax to compliment the ",(0,a.mdx)("inlineCode",{parentName:"p"},"import type")," syntax. Here's a trivial example:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-javascript"},"// @flow\n\n// MyTypes.js\nexport type UserID = number;\nexport type User = {\n id: UserID,\n firstName: string,\n lastName: string\n};\n")),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-javascript"},'// @flow\n\n// User.js\nimport type {UserID, User} from "MyTypes";\n\nfunction getUserID(user: User): UserID {\n return user.id;\n}\n')),(0,a.mdx)("p",null,"Note that we only support the explicit named-export statements for now (i.e. ",(0,a.mdx)("inlineCode",{parentName:"p"},"export type UserID = number;"),"). In a future version we can add support for latent named-export statements (i.e. ",(0,a.mdx)("inlineCode",{parentName:"p"},"type UserID = number; export {UserID};"),") and default type exports (i.e. ",(0,a.mdx)("inlineCode",{parentName:"p"},"export default type MyType = ... ;"),")...but for now these forms aren't yet supported for type exports."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2860.ccd1e606.js b/assets/js/2860.ccd1e606.js new file mode 100644 index 00000000000..4966beb7d61 --- /dev/null +++ b/assets/js/2860.ccd1e606.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2860],{2860:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>m,frontMatter:()=>s,metadata:()=>r,toc:()=>p});var i=t(87462),a=(t(67294),t(3905));t(45475);const s={title:"Type Hierarchy",slug:"/lang/type-hierarchy"},c=void 0,r={unversionedId:"lang/type-hierarchy",id:"lang/type-hierarchy",title:"Type Hierarchy",description:"Types in Flow form a hierarchy based on subtyping:",source:"@site/docs/lang/type-hierarchy.md",sourceDirName:"lang",slug:"/lang/type-hierarchy",permalink:"/en/docs/lang/type-hierarchy",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/type-hierarchy.md",tags:[],version:"current",frontMatter:{title:"Type Hierarchy",slug:"/lang/type-hierarchy"},sidebar:"docsSidebar",previous:{title:"Subsets & Subtypes",permalink:"/en/docs/lang/subtypes"},next:{title:"Type Variance",permalink:"/en/docs/lang/variance"}},o={},p=[],y={toc:p};function m(e){let{components:n,...t}=e;return(0,a.mdx)("wrapper",(0,i.Z)({},y,t,{components:n,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Types in Flow form a hierarchy based on ",(0,a.mdx)("a",{parentName:"p",href:"../subtypes"},"subtyping"),":"),(0,a.mdx)("mermaid",{value:'graph BT\n\nmixed -.- any\n\nsymbol --\x3e mixed\nnull --\x3e mixed\nmaybe["Maybe:\n ?string"]\nmaybe --\x3e mixed\nnull --\x3e maybe\nvoid --\x3e maybe\nvoid --\x3e mixed\nstring --\x3e maybe\nstring --\x3e mixed\n\nunion["Union:\n number | bigint"]\nnumber --\x3e union\nnumber --\x3e mixed\nunion --\x3e mixed\nbigint --\x3e mixed\nbigint --\x3e union\n\nboolean --\x3e mixed\ntrue --\x3e boolean\nfalse --\x3e boolean\n\nempty-interface["interface {}"] --\x3e mixed\nsome-interface["interface {prop: string}"] --\x3e empty-interface\nsomeclass["class A {prop: string}"] --\x3e some-interface\ninexact-empty-obj["Inexact empty object:\n {...}"]\ninexact-empty-obj --\x3e empty-interface\ninexact-some-obj["Inexact object:\n {prop: string, ...}"] --\x3e inexact-empty-obj\ninexact-some-obj --\x3e some-interface\nexact-some-obj["Exact object:\n {prop: string}"] --\x3e inexact-some-obj\nexact-empty-obj["Exact empty object:\n {}"]\nexact-empty-obj --\x3e inexact-empty-obj\nroarray["$ReadOnlyArray<T>"] --\x3e empty-interface\ntuple["Tuple:\n [T, T]"]\ntuple --\x3e roarray\narray["Array<T>"] --\x3e roarray\n\nany-func["Function:\n (...$ReadOnlyArray<empty>) => mixed"]\nany-func --\x3e empty-interface\nsome-func["(number) => boolean"] --\x3e any-func\nsome-func2["(string) => string"] --\x3e any-func\n\ninter["Intersection:\n (number => boolean) & (string => string)"]\ninter --\x3e some-func\ninter --\x3e some-func2\n\nempty --\x3e inter\nempty --\x3e null\nempty --\x3e void\nempty --\x3e true\nempty --\x3e false\nempty --\x3e exact-some-obj\nempty --\x3e exact-empty-obj\nempty --\x3e tuple\nempty --\x3e array\nempty --\x3e string\nempty --\x3e number\nempty --\x3e bigint\nempty --\x3e someclass\nempty --\x3e symbol\nany-bottom["any"] -.- empty\n\nclick mixed "../../types/mixed"\nclick any "../../types/any"\nclick any-bottom "../../types/any"\nclick empty "../../types/empty"\nclick boolean "../../types/primitives/#toc-booleans"\nclick number "../../types/primitives/#toc-numbers"\nclick string "../../types/primitives/#toc-strings"\nclick symbol "../../types/primitives/#toc-symbols"\nclick bigint "../../types/primitives/#toc-bigints"\nclick null "../../types/primitives/#toc-null-and-void"\nclick void "../../types/primitives/#toc-null-and-void"\nclick true "../../types/literals"\nclick false "../../types/literals"\nclick union "../../types/unions"\nclick inter "../../types/intersections"\nclick maybe "../../types/maybe"\nclick array "../../types/arrays"\nclick roarray "../../types/arrays/#toc-readonlyarray"\nclick tuple "../../types/tuples"\nclick someclass "../../types/classes"\nclick empty-interface "../../types/interfaces"\nclick some-interface "../../types/interfaces"\nclick exact-some-obj "../../types/objects"\nclick exact-empty-obj "../../types/objects"\nclick inexact-some-obj "../../types/objects/#exact-and-inexact-object-types"\nclick inexact-empty-obj "../../types/objects/#exact-and-inexact-object-types"\nclick any-func "../../types/functions"\nclick some-func "../../types/functions"\nclick some-func2 "../../types/functions"\n\nclassDef default fill:#eee, stroke:#000, stroke-width:1px'}),(0,a.mdx)("p",null,"Click on a node to go to the documentation for that type."),(0,a.mdx)("p",null,"Types appearing higher in this graph are more general, while those appearing lower are more specific.\nAn arrow pointing from type ",(0,a.mdx)("inlineCode",{parentName:"p"},"A")," to type ",(0,a.mdx)("inlineCode",{parentName:"p"},"B")," means that ",(0,a.mdx)("inlineCode",{parentName:"p"},"A")," is a subtype of ",(0,a.mdx)("inlineCode",{parentName:"p"},"B"),".\nFor example, the type ",(0,a.mdx)("inlineCode",{parentName:"p"},"string")," is a subtype of ",(0,a.mdx)("inlineCode",{parentName:"p"},"?string"),"."),(0,a.mdx)("p",null,"How can ",(0,a.mdx)("inlineCode",{parentName:"p"},"any")," be at both the top and the bottom? Because ",(0,a.mdx)("a",{parentName:"p",href:"../../types/any/"},"it is unsafe"),". This is denoted with a dotted line."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/287.79aaf96f.js b/assets/js/287.79aaf96f.js new file mode 100644 index 00000000000..e2a10b38a95 --- /dev/null +++ b/assets/js/287.79aaf96f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[287],{60287:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var o=n(87462),a=(n(67294),n(3905));const l={title:"Local Type Inference for Flow","short-title":"Local Type Inference",author:"Sam Zhou","medium-link":"https://medium.com/flow-type/local-type-inference-for-flow-aaa65d071347"},r=void 0,i={permalink:"/blog/2023/01/17/Local-Type-Inference",source:"@site/blog/2023-01-17-Local-Type-Inference.md",title:"Local Type Inference for Flow",description:"Local Type Inference makes Flow\u2019s inference behavior more reliable and predictable, by modestly increasing Flow\u2019s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases.",date:"2023-01-17T00:00:00.000Z",formattedDate:"January 17, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"Sam Zhou"}],frontMatter:{title:"Local Type Inference for Flow","short-title":"Local Type Inference",author:"Sam Zhou","medium-link":"https://medium.com/flow-type/local-type-inference-for-flow-aaa65d071347"},prevItem:{title:"Exact object types by default, by default",permalink:"/blog/2023/02/16/Exact-object-types-by-default-by-default"},nextItem:{title:"Improved handling of the empty object in Flow",permalink:"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow"}},c={authorsImageUrls:[void 0]},s=[],d={toc:s};function p(e){let{components:t,...n}=e;return(0,a.mdx)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Local Type Inference makes Flow\u2019s inference behavior more reliable and predictable, by modestly increasing Flow\u2019s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2886.f51502cb.js b/assets/js/2886.f51502cb.js new file mode 100644 index 00000000000..5dcda244e1f --- /dev/null +++ b/assets/js/2886.f51502cb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2886],{62886:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var o=n(87462),r=(n(67294),n(3905));const a={title:"Introducing: Local Type Inference for Flow","short-title":"Introducing Local Type Inference",author:"Michael Vitousek","medium-link":"https://medium.com/flow-type/introducing-local-type-inference-for-flow-6af65b7830aa"},l=void 0,i={permalink:"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow",source:"@site/blog/2021-09-27-Introducing-Local-Type-Inference-for-Flow.md",title:"Introducing: Local Type Inference for Flow",description:"We're replacing Flow\u2019s current inference engine with a system that behaves more predictably and can be reasoned about more locally.",date:"2021-09-27T00:00:00.000Z",formattedDate:"September 27, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"Michael Vitousek"}],frontMatter:{title:"Introducing: Local Type Inference for Flow","short-title":"Introducing Local Type Inference",author:"Michael Vitousek","medium-link":"https://medium.com/flow-type/introducing-local-type-inference-for-flow-6af65b7830aa"},prevItem:{title:"New Flow Language Rule: Constrained Writes",permalink:"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes"},nextItem:{title:"Introducing Flow Enums",permalink:"/blog/2021/09/13/Introducing-Flow-Enums"}},c={authorsImageUrls:[void 0]},s=[],u={toc:s};function d(e){let{components:t,...n}=e;return(0,r.mdx)("wrapper",(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"We're replacing Flow\u2019s current inference engine with a system that behaves more predictably and can be reasoned about more locally."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2892.f3674e45.js b/assets/js/2892.f3674e45.js new file mode 100644 index 00000000000..f73cccd8832 --- /dev/null +++ b/assets/js/2892.f3674e45.js @@ -0,0 +1,412 @@ +"use strict"; +exports.id = 2892; +exports.ids = [2892]; +exports.modules = { + +/***/ 22892: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/pug/pug.ts +var conf = { + comments: { + lineComment: "//" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: '"', close: '"', notIn: ["string", "comment"] }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: "{", close: "}", notIn: ["string", "comment"] }, + { open: "[", close: "]", notIn: ["string", "comment"] }, + { open: "(", close: ")", notIn: ["string", "comment"] } + ], + folding: { + offSide: true + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".pug", + ignoreCase: true, + brackets: [ + { token: "delimiter.curly", open: "{", close: "}" }, + { token: "delimiter.array", open: "[", close: "]" }, + { token: "delimiter.parenthesis", open: "(", close: ")" } + ], + keywords: [ + "append", + "block", + "case", + "default", + "doctype", + "each", + "else", + "extends", + "for", + "if", + "in", + "include", + "mixin", + "typeof", + "unless", + "var", + "when" + ], + tags: [ + "a", + "abbr", + "acronym", + "address", + "area", + "article", + "aside", + "audio", + "b", + "base", + "basefont", + "bdi", + "bdo", + "blockquote", + "body", + "br", + "button", + "canvas", + "caption", + "center", + "cite", + "code", + "col", + "colgroup", + "command", + "datalist", + "dd", + "del", + "details", + "dfn", + "div", + "dl", + "dt", + "em", + "embed", + "fieldset", + "figcaption", + "figure", + "font", + "footer", + "form", + "frame", + "frameset", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "head", + "header", + "hgroup", + "hr", + "html", + "i", + "iframe", + "img", + "input", + "ins", + "keygen", + "kbd", + "label", + "li", + "link", + "map", + "mark", + "menu", + "meta", + "meter", + "nav", + "noframes", + "noscript", + "object", + "ol", + "optgroup", + "option", + "output", + "p", + "param", + "pre", + "progress", + "q", + "rp", + "rt", + "ruby", + "s", + "samp", + "script", + "section", + "select", + "small", + "source", + "span", + "strike", + "strong", + "style", + "sub", + "summary", + "sup", + "table", + "tbody", + "td", + "textarea", + "tfoot", + "th", + "thead", + "time", + "title", + "tr", + "tracks", + "tt", + "u", + "ul", + "video", + "wbr" + ], + symbols: /[\+\-\*\%\&\|\!\=\/\.\,\:]+/, + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + tokenizer: { + root: [ + [ + /^(\s*)([a-zA-Z_-][\w-]*)/, + { + cases: { + "$2@tags": { + cases: { + "@eos": ["", "tag"], + "@default": ["", { token: "tag", next: "@tag.$1" }] + } + }, + "$2@keywords": ["", { token: "keyword.$2" }], + "@default": ["", ""] + } + } + ], + [ + /^(\s*)(#[a-zA-Z_-][\w-]*)/, + { + cases: { + "@eos": ["", "tag.id"], + "@default": ["", { token: "tag.id", next: "@tag.$1" }] + } + } + ], + [ + /^(\s*)(\.[a-zA-Z_-][\w-]*)/, + { + cases: { + "@eos": ["", "tag.class"], + "@default": ["", { token: "tag.class", next: "@tag.$1" }] + } + } + ], + [/^(\s*)(\|.*)$/, ""], + { include: "@whitespace" }, + [ + /[a-zA-Z_$][\w$]*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "" + } + } + ], + [/[{}()\[\]]/, "@brackets"], + [/@symbols/, "delimiter"], + [/\d+\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/\d+/, "number"], + [/"/, "string", '@string."'], + [/'/, "string", "@string.'"] + ], + tag: [ + [/(\.)(\s*$)/, [{ token: "delimiter", next: "@blockText.$S2." }, ""]], + [/\s+/, { token: "", next: "@simpleText" }], + [ + /#[a-zA-Z_-][\w-]*/, + { + cases: { + "@eos": { token: "tag.id", next: "@pop" }, + "@default": "tag.id" + } + } + ], + [ + /\.[a-zA-Z_-][\w-]*/, + { + cases: { + "@eos": { token: "tag.class", next: "@pop" }, + "@default": "tag.class" + } + } + ], + [/\(/, { token: "delimiter.parenthesis", next: "@attributeList" }] + ], + simpleText: [ + [/[^#]+$/, { token: "", next: "@popall" }], + [/[^#]+/, { token: "" }], + [ + /(#{)([^}]*)(})/, + { + cases: { + "@eos": [ + "interpolation.delimiter", + "interpolation", + { + token: "interpolation.delimiter", + next: "@popall" + } + ], + "@default": ["interpolation.delimiter", "interpolation", "interpolation.delimiter"] + } + } + ], + [/#$/, { token: "", next: "@popall" }], + [/#/, ""] + ], + attributeList: [ + [/\s+/, ""], + [ + /(\w+)(\s*=\s*)("|')/, + ["attribute.name", "delimiter", { token: "attribute.value", next: "@value.$3" }] + ], + [/\w+/, "attribute.name"], + [ + /,/, + { + cases: { + "@eos": { + token: "attribute.delimiter", + next: "@popall" + }, + "@default": "attribute.delimiter" + } + } + ], + [/\)$/, { token: "delimiter.parenthesis", next: "@popall" }], + [/\)/, { token: "delimiter.parenthesis", next: "@pop" }] + ], + whitespace: [ + [/^(\s*)(\/\/.*)$/, { token: "comment", next: "@blockText.$1.comment" }], + [/[ \t\r\n]+/, ""], + [//, { token: "comment", next: "@pop" }], + [//,{token:"comment",next:"@pop"}],[//,"comment","@pop"],[/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">", notIn: ["string"] } + ], + surroundingPairs: [ + { open: "(", close: ")" }, + { open: "[", close: "]" }, + { open: "`", close: "`" } + ], + folding: { + markers: { + start: new RegExp("^\\s*"), + end: new RegExp("^\\s*") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".md", + control: /[\\`*_\[\]{}()#+\-\.!]/, + noncontrol: /[^\\`*_\[\]{}()#+\-\.!]/, + escapes: /\\(?:@control)/, + jsescapes: /\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/, + empty: [ + "area", + "base", + "basefont", + "br", + "col", + "frame", + "hr", + "img", + "input", + "isindex", + "link", + "meta", + "param" + ], + tokenizer: { + root: [ + [/^\s*\|/, "@rematch", "@table_header"], + [/^(\s{0,3})(#+)((?:[^\\#]|@escapes)+)((?:#+)?)/, ["white", "keyword", "keyword", "keyword"]], + [/^\s*(=+|\-+)\s*$/, "keyword"], + [/^\s*((\*[ ]?)+)\s*$/, "meta.separator"], + [/^\s*>+/, "comment"], + [/^\s*([\*\-+:]|\d+\.)\s/, "keyword"], + [/^(\t|[ ]{4})[^ ].*$/, "string"], + [/^\s*~~~\s*((?:\w|[\/\-#])+)?\s*$/, { token: "string", next: "@codeblock" }], + [ + /^\s*```\s*((?:\w|[\/\-#])+).*$/, + { token: "string", next: "@codeblockgh", nextEmbedded: "$1" } + ], + [/^\s*```\s*$/, { token: "string", next: "@codeblock" }], + { include: "@linecontent" } + ], + table_header: [ + { include: "@table_common" }, + [/[^\|]+/, "keyword.table.header"] + ], + table_body: [{ include: "@table_common" }, { include: "@linecontent" }], + table_common: [ + [/\s*[\-:]+\s*/, { token: "keyword", switchTo: "table_body" }], + [/^\s*\|/, "keyword.table.left"], + [/^\s*[^\|]/, "@rematch", "@pop"], + [/^\s*$/, "@rematch", "@pop"], + [ + /\|/, + { + cases: { + "@eos": "keyword.table.right", + "@default": "keyword.table.middle" + } + } + ] + ], + codeblock: [ + [/^\s*~~~\s*$/, { token: "string", next: "@pop" }], + [/^\s*```\s*$/, { token: "string", next: "@pop" }], + [/.*$/, "variable.source"] + ], + codeblockgh: [ + [/```\s*$/, { token: "string", next: "@pop", nextEmbedded: "@pop" }], + [/[^`]+/, "variable.source"] + ], + linecontent: [ + [/&\w+;/, "string.escape"], + [/@escapes/, "escape"], + [/\b__([^\\_]|@escapes|_(?!_))+__\b/, "strong"], + [/\*\*([^\\*]|@escapes|\*(?!\*))+\*\*/, "strong"], + [/\b_[^_]+_\b/, "emphasis"], + [/\*([^\\*]|@escapes)+\*/, "emphasis"], + [/`([^\\`]|@escapes)+`/, "variable"], + [/\{+[^}]+\}+/, "string.target"], + [/(!?\[)((?:[^\]\\]|@escapes)*)(\]\([^\)]+\))/, ["string.link", "", "string.link"]], + [/(!?\[)((?:[^\]\\]|@escapes)*)(\])/, "string.link"], + { include: "html" } + ], + html: [ + [/<(\w+)\/>/, "tag"], + [ + /<(\w+)(\-|\w)*/, + { + cases: { + "@empty": { token: "tag", next: "@tag.$1" }, + "@default": { token: "tag", next: "@tag.$1" } + } + } + ], + [/<\/(\w+)(\-|\w)*\s*>/, { token: "tag" }], + [//, "comment", "@pop"], + [/"], + ["<", ">"], + ["{{", "}}"], + ["{%", "%}"], + ["{", "}"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "%", close: "%" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "<", close: ">" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + onEnterRules: [ + { + beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + afterText: /^<\/(\w[\w\d]*)\s*>$/i, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent + } + }, + { + beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent } + } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: "", + builtinTags: [ + "if", + "else", + "elseif", + "endif", + "render", + "assign", + "capture", + "endcapture", + "case", + "endcase", + "comment", + "endcomment", + "cycle", + "decrement", + "for", + "endfor", + "include", + "increment", + "layout", + "raw", + "endraw", + "render", + "tablerow", + "endtablerow", + "unless", + "endunless" + ], + builtinFilters: [ + "abs", + "append", + "at_least", + "at_most", + "capitalize", + "ceil", + "compact", + "date", + "default", + "divided_by", + "downcase", + "escape", + "escape_once", + "first", + "floor", + "join", + "json", + "last", + "lstrip", + "map", + "minus", + "modulo", + "newline_to_br", + "plus", + "prepend", + "remove", + "remove_first", + "replace", + "replace_first", + "reverse", + "round", + "rstrip", + "size", + "slice", + "sort", + "sort_natural", + "split", + "strip", + "strip_html", + "strip_newlines", + "times", + "truncate", + "truncatewords", + "uniq", + "upcase", + "url_decode", + "url_encode", + "where" + ], + constants: ["true", "false"], + operators: ["==", "!=", ">", "<", ">=", "<="], + symbol: /[=>)/, ["delimiter.html", "tag.html", "delimiter.html"]], + [/(<)([:\w]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/(<\/)([\w\-]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [//, "delimiter.html", "@pop"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/] + ], + liquidState: [ + [/\{\{/, "delimiter.output.liquid"], + [/\}\}/, { token: "delimiter.output.liquid", switchTo: "@$S2.$S3" }], + [/\{\%/, "delimiter.tag.liquid"], + [/raw\s*\%\}/, "delimiter.tag.liquid", "@liquidRaw"], + [/\%\}/, { token: "delimiter.tag.liquid", switchTo: "@$S2.$S3" }], + { include: "liquidRoot" } + ], + liquidRaw: [ + [/^(?!\{\%\s*endraw\s*\%\}).+/], + [/\{\%/, "delimiter.tag.liquid"], + [/@identifier/], + [/\%\}/, { token: "delimiter.tag.liquid", next: "@root" }] + ], + liquidRoot: [ + [/\d+(\.\d+)?/, "number.liquid"], + [/"[^"]*"/, "string.liquid"], + [/'[^']*'/, "string.liquid"], + [/\s+/], + [ + /@symbol/, + { + cases: { + "@operators": "operator.liquid", + "@default": "" + } + } + ], + [/\./], + [ + /@identifier/, + { + cases: { + "@constants": "keyword.liquid", + "@builtinFilters": "predefined.liquid", + "@builtinTags": "predefined.liquid", + "@default": "variable.liquid" + } + } + ], + [/[^}|%]/, "variable.liquid"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/4099.d293f4c8.js b/assets/js/4099.d293f4c8.js new file mode 100644 index 00000000000..db41de13288 --- /dev/null +++ b/assets/js/4099.d293f4c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4099],{74099:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var n=o(87462),a=(o(67294),o(3905));const r={title:"Announcing Import Type","short-title":"Import Type",author:"Jeff Morrison",hide_table_of_contents:!0},i=void 0,s={permalink:"/blog/2015/02/18/Import-Types",source:"@site/blog/2015-02-18-Import-Types.md",title:"Announcing Import Type",description:"As of Flow 0.3.0, it's now possible to import types from another module. So, for example, if you're only importing a class for purposes of referencing it in a type annotation, you can now use the new import type syntax to do this.",date:"2015-02-18T00:00:00.000Z",formattedDate:"February 18, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Jeff Morrison"}],frontMatter:{title:"Announcing Import Type","short-title":"Import Type",author:"Jeff Morrison",hide_table_of_contents:!0},prevItem:{title:"Announcing Flow Comments",permalink:"/blog/2015/02/20/Flow-Comments"},nextItem:{title:"Announcing Typecasts",permalink:"/blog/2015/02/18/Typecasts"}},p={authorsImageUrls:[void 0]},l=[{value:"Motivation",id:"motivation",level:2}],m={toc:l};function u(e){let{components:t,...o}=e;return(0,a.mdx)("wrapper",(0,n.Z)({},m,o,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"As of Flow 0.3.0, it's now possible to import types from another module. So, for example, if you're only importing a class for purposes of referencing it in a type annotation, you can now use the new ",(0,a.mdx)("inlineCode",{parentName:"p"},"import type")," syntax to do this."),(0,a.mdx)("h2",{id:"motivation"},"Motivation"),(0,a.mdx)("p",null,"Has this ever happened to you:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"// @flow\n\n// Post-transformation lint error: Unused variable 'URI'\nimport URI from \"URI\";\n\n// But if you delete the require you get a Flow error:\n// identifier URI - Unknown global name\nmodule.exports = function(x: URI): URI {\n return x;\n}\n")),(0,a.mdx)("p",null,"Now you have an out! To solve this problem (and with an eye toward a near future with ES6 module syntax), we've added the new ",(0,a.mdx)("inlineCode",{parentName:"p"},"import type")," syntax. With ",(0,a.mdx)("inlineCode",{parentName:"p"},"import type"),", you can convey what you really mean here \u2014 that you want to import the ",(0,a.mdx)("em",{parentName:"p"},"type")," of the class and not really the class itself."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4129.b574e251.js b/assets/js/4129.b574e251.js new file mode 100644 index 00000000000..9e8a2ba429b --- /dev/null +++ b/assets/js/4129.b574e251.js @@ -0,0 +1,2 @@ +/*! For license information please see 4129.b574e251.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4129],{84129:(e,s,o)=>{o.r(s),o.d(s,{conf:()=>t,language:()=>n});var t={comments:{lineComment:"REM"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|REM\\s+)#region"),end:new RegExp("^\\s*(::\\s*|REM\\s+)#endregion")}}},n={defaultToken:"",ignoreCase:!0,tokenPostfix:".bat",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:/call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/,symbols:/[=> { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/bat/bat.ts +var conf = { + comments: { + lineComment: "REM" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' } + ], + surroundingPairs: [ + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' } + ], + folding: { + markers: { + start: new RegExp("^\\s*(::\\s*|REM\\s+)#region"), + end: new RegExp("^\\s*(::\\s*|REM\\s+)#endregion") + } + } +}; +var language = { + defaultToken: "", + ignoreCase: true, + tokenPostfix: ".bat", + brackets: [ + { token: "delimiter.bracket", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" } + ], + keywords: /call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/, + symbols: /[=>{i.r(r),i.d(r,{assets:()=>l,contentTitle:()=>n,default:()=>m,frontMatter:()=>t,metadata:()=>a,toc:()=>p});var o=i(87462),s=(i(67294),i(3905));const t={title:"Making Flow error suppressions more specific","short-title":"Making Flow error suppressions",author:"Daniel Sainati","medium-link":"https://medium.com/flow-type/making-flow-error-suppressions-more-specific-280aa4e3c95c"},n=void 0,a={permalink:"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific",source:"@site/blog/2020-03-16-Making-Flow-error-suppressions-more-specific.md",title:"Making Flow error suppressions more specific",description:"We\u2019re improving Flow error suppressions so that they don\u2019t accidentally hide errors.",date:"2020-03-16T00:00:00.000Z",formattedDate:"March 16, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Daniel Sainati"}],frontMatter:{title:"Making Flow error suppressions more specific","short-title":"Making Flow error suppressions",author:"Daniel Sainati","medium-link":"https://medium.com/flow-type/making-flow-error-suppressions-more-specific-280aa4e3c95c"},prevItem:{title:"Types-First: A Scalable New Architecture for Flow",permalink:"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow"},nextItem:{title:"What we\u2019re building in 2020",permalink:"/blog/2020/03/09/What-were-building-in-2020"}},l={authorsImageUrls:[void 0]},p=[],c={toc:p};function m(e){let{components:r,...i}=e;return(0,s.mdx)("wrapper",(0,o.Z)({},c,i,{components:r,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"We\u2019re improving Flow error suppressions so that they don\u2019t accidentally hide errors."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4170.1dc21c14.js b/assets/js/4170.1dc21c14.js new file mode 100644 index 00000000000..4277d571abf --- /dev/null +++ b/assets/js/4170.1dc21c14.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4170],{14170:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>r,default:()=>s,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var a=n(87462),o=(n(67294),n(3905));n(45475);const i={title:"Event Handling",slug:"/react/events"},r=void 0,l={unversionedId:"react/events",id:"react/events",title:"Event Handling",description:"The React docs for handling events show how an event handler can be attached to",source:"@site/docs/react/events.md",sourceDirName:"react",slug:"/react/events",permalink:"/en/docs/react/events",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/react/events.md",tags:[],version:"current",frontMatter:{title:"Event Handling",slug:"/react/events"},sidebar:"docsSidebar",previous:{title:"Components",permalink:"/en/docs/react/components"},next:{title:"Ref Functions",permalink:"/en/docs/react/refs"}},m={},d=[],p={toc:d};function s(e){let{components:t,...n}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"The ",(0,o.mdx)("a",{parentName:"p",href:"https://react.dev/learn/responding-to-events"},"React docs for handling events")," show how an event handler can be attached to\na React element. To type these event handlers you may use the ",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticEvent"),"\ntypes like this:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"import {useState} from 'react';\nimport * as React from 'react';\n\nfunction MyComponent(): React.Node {\n const [state, setState] = useState({count: 0});\n\n const handleClick = (event: SyntheticEvent) => {\n // To access your button instance use `event.currentTarget`.\n (event.currentTarget: HTMLButtonElement);\n\n setState(prevState => ({\n count: prevState.count + 1,\n }));\n };\n\n return (\n
\n

Count: {state.count}

\n \n
\n );\n}\n")),(0,o.mdx)("p",null,"There are also more specific synthetic event types like\n",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticKeyboardEvent"),", ",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticMouseEvent"),", or\n",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticTouchEvent"),". The ",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticEvent")," types all take a single type\nargument: the type of the HTML element the event handler was placed on."),(0,o.mdx)("p",null,"If you don't want to add the type of your element instance you can also use\n",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticEvent")," with ",(0,o.mdx)("em",{parentName:"p"},"no")," type arguments like so: ",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticEvent<>"),"."),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},(0,o.mdx)("strong",{parentName:"p"},"Note:")," To get the element instance, like ",(0,o.mdx)("inlineCode",{parentName:"p"},"HTMLButtonElement")," in the example\nabove, it is a common mistake to use ",(0,o.mdx)("inlineCode",{parentName:"p"},"event.target")," instead of\n",(0,o.mdx)("inlineCode",{parentName:"p"},"event.currentTarget"),". The reason you want to use ",(0,o.mdx)("inlineCode",{parentName:"p"},"event.currentTarget")," is\nthat ",(0,o.mdx)("inlineCode",{parentName:"p"},"event.target")," may be the wrong element due to ",(0,o.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Examples#example_5_event_propagation"},"event propagation"),".")),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},(0,o.mdx)("strong",{parentName:"p"},"Note:")," React uses its own event system so it is important to use the\n",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticEvent")," types instead of the DOM types such as ",(0,o.mdx)("inlineCode",{parentName:"p"},"Event"),",\n",(0,o.mdx)("inlineCode",{parentName:"p"},"KeyboardEvent"),", and ",(0,o.mdx)("inlineCode",{parentName:"p"},"MouseEvent"),".")),(0,o.mdx)("p",null,"The ",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticEvent")," types that React provides and the DOM events they are\nrelated to are:"),(0,o.mdx)("ul",null,(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/Event"},"Event")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticAnimationEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent"},"AnimationEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticCompositionEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent"},"CompositionEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticInputEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/InputEvent"},"InputEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticUIEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/UIEvent"},"UIEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticFocusEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/FocusEvent"},"FocusEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticKeyboardEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent"},"KeyboardEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticMouseEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent"},"MouseEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticDragEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/DragEvent"},"DragEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticWheelEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent"},"WheelEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticTouchEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent"},"TouchEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticTransitionEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent"},"TransitionEvent"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4188.752a68bf.js b/assets/js/4188.752a68bf.js new file mode 100644 index 00000000000..1cf89014d8c --- /dev/null +++ b/assets/js/4188.752a68bf.js @@ -0,0 +1,160 @@ +"use strict"; +exports.id = 4188; +exports.ids = [4188]; +exports.modules = { + +/***/ 14188: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/flow9/flow9.ts +var conf = { + comments: { + blockComment: ["/*", "*/"], + lineComment: "//" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}", notIn: ["string"] }, + { open: "[", close: "]", notIn: ["string"] }, + { open: "(", close: ")", notIn: ["string"] }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "<", close: ">" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".flow", + keywords: [ + "import", + "require", + "export", + "forbid", + "native", + "if", + "else", + "cast", + "unsafe", + "switch", + "default" + ], + types: [ + "io", + "mutable", + "bool", + "int", + "double", + "string", + "flow", + "void", + "ref", + "true", + "false", + "with" + ], + operators: [ + "=", + ">", + "<", + "<=", + ">=", + "==", + "!", + "!=", + ":=", + "::=", + "&&", + "||", + "+", + "-", + "*", + "/", + "@", + "&", + "%", + ":", + "->", + "\\", + "$", + "??", + "^" + ], + symbols: /[@$=>](?!@symbols)/, "delimiter"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/4188.c58fea82.js b/assets/js/4188.c58fea82.js new file mode 100644 index 00000000000..56190e8c03e --- /dev/null +++ b/assets/js/4188.c58fea82.js @@ -0,0 +1,2 @@ +/*! For license information please see 4188.c58fea82.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4188],{14188:(e,o,n)=>{n.r(o),n.d(o,{conf:()=>s,language:()=>t});var s={comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:"(",close:")",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}]},t={defaultToken:"",tokenPostfix:".flow",keywords:["import","require","export","forbid","native","if","else","cast","unsafe","switch","default"],types:["io","mutable","bool","int","double","string","flow","void","ref","true","false","with"],operators:["=",">","<","<=",">=","==","!","!=",":=","::=","&&","||","+","-","*","/","@","&","%",":","->","\\","$","??","^"],symbols:/[@$=>](?!@symbols)/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}}}}]); \ No newline at end of file diff --git a/assets/js/4188.c58fea82.js.LICENSE.txt b/assets/js/4188.c58fea82.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/4188.c58fea82.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/4244.296d7732.js b/assets/js/4244.296d7732.js new file mode 100644 index 00000000000..e8076a40a30 --- /dev/null +++ b/assets/js/4244.296d7732.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4244],{64244:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>i,toc:()=>h});var n=o(87462),a=(o(67294),o(3905));const r={author:"Gabe Levi",hide_table_of_contents:!0},s=void 0,i={permalink:"/blog/2015/09/10/Version-0.15.0",source:"@site/blog/2015-09-10-Version-0.15.0.md",title:"Version-0.15.0",description:"Today we released Flow v0.15.0! A lot has changed in the last month and we're excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!",date:"2015-09-10T00:00:00.000Z",formattedDate:"September 10, 2015",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Version-0.16.0",permalink:"/blog/2015/09/22/Version-0.16.0"},nextItem:{title:"Version-0.14.0",permalink:"/blog/2015/07/29/Version-0.14.0"}},l={authorsImageUrls:[void 0]},h=[],d={toc:h};function c(e){let{components:t,...o}=e;return(0,a.mdx)("wrapper",(0,n.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Today we released Flow v0.15.0! A lot has changed in the last month and we're excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!"),(0,a.mdx)("p",null,"Check out the ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/master/Changelog.md#v0150"},"Changelog")," to see what's new."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4314.ca390dec.js b/assets/js/4314.ca390dec.js new file mode 100644 index 00000000000..2a2c56a5056 --- /dev/null +++ b/assets/js/4314.ca390dec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4314],{74314:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>w,frontMatter:()=>i,metadata:()=>r,toc:()=>u});var a=n(87462),o=(n(67294),n(3905));const i={title:"New Flow Language Rule: Constrained Writes","short-title":"Introducing Constrained Writes",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/new-flow-language-rule-constrained-writes-4c70e375d190"},s=void 0,r={permalink:"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes",source:"@site/blog/2022-08-05-New-Flow-Language-Rule-Constrained-Writes.md",title:"New Flow Language Rule: Constrained Writes",description:"Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated.",date:"2022-08-05T00:00:00.000Z",formattedDate:"August 5, 2022",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"New Flow Language Rule: Constrained Writes","short-title":"Introducing Constrained Writes",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/new-flow-language-rule-constrained-writes-4c70e375d190"},prevItem:{title:"Requiring More Annotations to Functions and Classes in Flow",permalink:"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes"},nextItem:{title:"Introducing: Local Type Inference for Flow",permalink:"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow"}},l={authorsImageUrls:[void 0]},u=[],d={toc:u};function w(e){let{components:t,...n}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated."))}w.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4340.d90bec6c.js b/assets/js/4340.d90bec6c.js new file mode 100644 index 00000000000..0e71be49bcd --- /dev/null +++ b/assets/js/4340.d90bec6c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4340],{64340:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>r,default:()=>m,frontMatter:()=>s,metadata:()=>l,toc:()=>a});var n=o(87462),i=(o(67294),o(3905));const s={title:"Types-First the only supported mode in Flow (Jan 2021)","short-title":"Types-First only supported mode",author:"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-the-only-supported-mode-in-flow-jan-2021-3c4cb14d7b6c"},r=void 0,l={permalink:"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow",source:"@site/blog/2020-12-01-Types-first-the-only-supported-mode-in-flow.md",title:"Types-First the only supported mode in Flow (Jan 2021)",description:"Types-First will become the only mode in Flow in v0.143 (mid Jan 2021).",date:"2020-12-01T00:00:00.000Z",formattedDate:"December 1, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Panagiotis Vekris"}],frontMatter:{title:"Types-First the only supported mode in Flow (Jan 2021)","short-title":"Types-First only supported mode",author:"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-the-only-supported-mode-in-flow-jan-2021-3c4cb14d7b6c"},prevItem:{title:"Clarity on Flow's Direction and Open Source Engagement",permalink:"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement"},nextItem:{title:"Flow's Improved Handling of Generic Types",permalink:"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types"}},p={authorsImageUrls:[void 0]},a=[],d={toc:a};function m(e){let{components:t,...o}=e;return(0,i.mdx)("wrapper",(0,n.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Types-First will become the only mode in Flow in v0.143 (mid Jan 2021)."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4352.37108b95.js b/assets/js/4352.37108b95.js new file mode 100644 index 00000000000..1a22350bfc9 --- /dev/null +++ b/assets/js/4352.37108b95.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4352],{44352:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>u});var n=o(87462),i=(o(67294),o(3905));const r={title:"Linting in Flow","short-title":"Linting in Flow",author:"Roger Ballard","medium-link":"https://medium.com/flow-type/linting-in-flow-7709d7a7e969"},l=void 0,a={permalink:"/blog/2017/08/04/Linting-in-Flow",source:"@site/blog/2017-08-04-Linting-in-Flow.md",title:"Linting in Flow",description:"Flow\u2019s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter.",date:"2017-08-04T00:00:00.000Z",formattedDate:"August 4, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Roger Ballard"}],frontMatter:{title:"Linting in Flow","short-title":"Linting in Flow",author:"Roger Ballard","medium-link":"https://medium.com/flow-type/linting-in-flow-7709d7a7e969"},prevItem:{title:"Even Better Support for React in Flow",permalink:"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow"},nextItem:{title:"Opaque Type Aliases",permalink:"/blog/2017/07/27/Opaque-Types"}},s={authorsImageUrls:[void 0]},u=[],m={toc:u};function p(t){let{components:e,...o}=t;return(0,i.mdx)("wrapper",(0,n.Z)({},m,o,{components:e,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Flow\u2019s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4367.f9d15811.js b/assets/js/4367.f9d15811.js new file mode 100644 index 00000000000..c6d659184c7 --- /dev/null +++ b/assets/js/4367.f9d15811.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4367],{43634:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>m,frontMatter:()=>i,metadata:()=>r,toc:()=>l});var o=n(87462),a=(n(67294),n(3905));n(45475);const i={title:"Width Subtyping",slug:"/lang/width-subtyping"},s=void 0,r={unversionedId:"lang/width-subtyping",id:"lang/width-subtyping",title:"Width Subtyping",description:'It\'s safe to use an object with "extra" properties in a position that is',source:"@site/docs/lang/width-subtyping.md",sourceDirName:"lang",slug:"/lang/width-subtyping",permalink:"/en/docs/lang/width-subtyping",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/width-subtyping.md",tags:[],version:"current",frontMatter:{title:"Width Subtyping",slug:"/lang/width-subtyping"},sidebar:"docsSidebar",previous:{title:"Depth Subtyping",permalink:"/en/docs/lang/depth-subtyping"},next:{title:"Type Refinements",permalink:"/en/docs/lang/refinements"}},p={},l=[],d={toc:l};function m(e){let{components:t,...n}=e;return(0,a.mdx)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,'It\'s safe to use an object with "extra" properties in a position that is\nannotated with a specific set of properties, if that object type is ',(0,a.mdx)("a",{parentName:"p",href:"../../types/objects/#exact-and-inexact-object-types"},"inexact"),"."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(obj: {foo: string, ...}) {\n // ...\n}\n\nfunc({\n foo: "test", // Works!\n bar: 42 // Works!\n});\n')),(0,a.mdx)("p",null,"Within ",(0,a.mdx)("inlineCode",{parentName:"p"},"func"),", we know that ",(0,a.mdx)("inlineCode",{parentName:"p"},"obj")," has at least a property ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo")," and the\nproperty access expression ",(0,a.mdx)("inlineCode",{parentName:"p"},"obj.foo")," will have type ",(0,a.mdx)("inlineCode",{parentName:"p"},"string"),"."),(0,a.mdx)("p",null,'This is a kind of subtyping commonly referred to as "width subtyping" because\na type that is "wider" (i.e., has more properties) is a subtype of a\nnarrower type.'),(0,a.mdx)("p",null,"So in the following example, ",(0,a.mdx)("inlineCode",{parentName:"p"},"obj2")," is a ",(0,a.mdx)("em",{parentName:"p"},"subtype")," of ",(0,a.mdx)("inlineCode",{parentName:"p"},"obj1"),"."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"let obj1: {foo: string, ...} = {foo: 'test'};\nlet obj2 = {foo: 'test', bar: 42};\n(obj2: {foo: string, ...});\n")),(0,a.mdx)("p",null,"However, it's often useful to know that a property is definitely absent."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":6,"endLine":3,"endColumn":12,"description":"Cannot cast `obj.foo` to string because property `foo` of unknown type [1] is incompatible with string [2]. [incompatible-cast]"}]','[{"startLine":3,"startColumn":6,"endLine":3,"endColumn":12,"description":"Cannot':!0,cast:!0,"`obj.foo`":!0,to:!0,string:!0,because:!0,property:!0,"`foo`":!0,of:!0,unknown:!0,type:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"function func(obj: {foo: string, ...} | {bar: number, ...}) {\n if (obj.foo) {\n (obj.foo: string); // Error!\n }\n}\n")),(0,a.mdx)("p",null,"The above code has a type error because Flow would also allow the call\nexpression ",(0,a.mdx)("inlineCode",{parentName:"p"},"func({foo: 1, bar: 2})"),", because ",(0,a.mdx)("inlineCode",{parentName:"p"},"{foo: number, bar: number}"),"\nis a subtype of ",(0,a.mdx)("inlineCode",{parentName:"p"},"{bar: number, ...}"),", one of the members of the parameter's union\ntype."),(0,a.mdx)("p",null,"For cases like this where it's useful to assert the absence of a property,\nYou can use ",(0,a.mdx)("a",{parentName:"p",href:"../../types/objects/#exact-and-inexact-object-types"},"exact object types"),"."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(obj: {foo: string} | {bar: number}) {\n if (obj.foo) {\n (obj.foo: string); // Works!\n }\n}\n")),(0,a.mdx)("p",null,(0,a.mdx)("a",{parentName:"p",href:"../../types/objects/#exact-and-inexact-object-types"},"Exact object types")," disable width\nsubtyping, and do not allow additional properties to exist."),(0,a.mdx)("p",null,"Using exact object types lets Flow know that no extra properties will exist at\nruntime, which allows ",(0,a.mdx)("a",{parentName:"p",href:"../refinements/"},"refinements")," to get more specific."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4368.6242d162.js b/assets/js/4368.6242d162.js new file mode 100644 index 00000000000..b196a099b44 --- /dev/null +++ b/assets/js/4368.6242d162.js @@ -0,0 +1,2 @@ +/*! For license information please see 4368.6242d162.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4368],{84368:(e,t,i)=>{i.r(t),i.d(t,{conf:()=>n,language:()=>s});var n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},s={defaultToken:"",tokenPostfix:".kt",keywords:["as","as?","break","class","continue","do","else","false","for","fun","if","in","!in","interface","is","!is","null","object","package","return","super","this","throw","true","try","typealias","val","var","when","while","by","catch","constructor","delegate","dynamic","field","file","finally","get","import","init","param","property","receiver","set","setparam","where","actual","abstract","annotation","companion","const","crossinline","data","enum","expect","external","final","infix","inline","inner","internal","lateinit","noinline","open","operator","out","override","private","protected","public","reified","sealed","suspend","tailrec","vararg","field","it"],operators:["+","-","*","/","%","=","+=","-=","*=","/=","%=","++","--","&&","||","!","==","!=","===","!==",">","<","<=",">=","[","]","!!","?.","?:","::","..",":","?","->","@",";","$","_"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string","@multistring"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc","@push"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],multistring:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"""/,"string","@pop"],[/./,"string"]]}}}}]); \ No newline at end of file diff --git a/assets/js/4368.6242d162.js.LICENSE.txt b/assets/js/4368.6242d162.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/4368.6242d162.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/4368.973542b9.js b/assets/js/4368.973542b9.js new file mode 100644 index 00000000000..189bc760942 --- /dev/null +++ b/assets/js/4368.973542b9.js @@ -0,0 +1,264 @@ +"use strict"; +exports.id = 4368; +exports.ids = [4368]; +exports.modules = { + +/***/ 84368: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/kotlin/kotlin.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "<", close: ">" } + ], + folding: { + markers: { + start: new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".kt", + keywords: [ + "as", + "as?", + "break", + "class", + "continue", + "do", + "else", + "false", + "for", + "fun", + "if", + "in", + "!in", + "interface", + "is", + "!is", + "null", + "object", + "package", + "return", + "super", + "this", + "throw", + "true", + "try", + "typealias", + "val", + "var", + "when", + "while", + "by", + "catch", + "constructor", + "delegate", + "dynamic", + "field", + "file", + "finally", + "get", + "import", + "init", + "param", + "property", + "receiver", + "set", + "setparam", + "where", + "actual", + "abstract", + "annotation", + "companion", + "const", + "crossinline", + "data", + "enum", + "expect", + "external", + "final", + "infix", + "inline", + "inner", + "internal", + "lateinit", + "noinline", + "open", + "operator", + "out", + "override", + "private", + "protected", + "public", + "reified", + "sealed", + "suspend", + "tailrec", + "vararg", + "field", + "it" + ], + operators: [ + "+", + "-", + "*", + "/", + "%", + "=", + "+=", + "-=", + "*=", + "/=", + "%=", + "++", + "--", + "&&", + "||", + "!", + "==", + "!=", + "===", + "!==", + ">", + "<", + "<=", + ">=", + "[", + "]", + "!!", + "?.", + "?:", + "::", + "..", + ":", + "?", + "->", + "@", + ";", + "$", + "_" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/@\s*[a-zA-Z_\$][\w\$]*/, "annotation"], + [/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/, "number.float"], + [/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/, "number.float"], + [/0[xX](@hexdigits)[Ll]?/, "number.hex"], + [/0(@octaldigits)[Ll]?/, "number.octal"], + [/0[bB](@binarydigits)[Ll]?/, "number.binary"], + [/(@digits)[fFdD]/, "number.float"], + [/(@digits)[lL]?/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"""/, "string", "@multistring"], + [/"/, "string", "@string"], + [/'[^\\']'/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@javadoc"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\/\*/, "comment", "@comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + javadoc: [ + [/[^\/*]+/, "comment.doc"], + [/\/\*/, "comment.doc", "@push"], + [/\/\*/, "comment.doc.invalid"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ], + multistring: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"""/, "string", "@pop"], + [/./, "string"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/4370.b23daaa9.js b/assets/js/4370.b23daaa9.js new file mode 100644 index 00000000000..3400b1cdbe2 --- /dev/null +++ b/assets/js/4370.b23daaa9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4370],{34370:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>r,contentTitle:()=>c,default:()=>d,frontMatter:()=>l,metadata:()=>u,toc:()=>i});var o=a(87462),n=(a(67294),a(3905));const l={title:"Exact object types by default, by default","short-title":"Exact object types by default, by default",author:"George Zahariev","medium-link":"https://medium.com/flow-type/exact-object-types-by-default-by-default-cc559af6f69"},c=void 0,u={permalink:"/blog/2023/02/16/Exact-object-types-by-default-by-default",source:"@site/blog/2023-02-16-Exact-object-types-by-default-by-default.md",title:"Exact object types by default, by default",description:"We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan.",date:"2023-02-16T00:00:00.000Z",formattedDate:"February 16, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Exact object types by default, by default","short-title":"Exact object types by default, by default",author:"George Zahariev","medium-link":"https://medium.com/flow-type/exact-object-types-by-default-by-default-cc559af6f69"},prevItem:{title:"Announcing Partial & Required Flow utility types + catch annotations",permalink:"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations"},nextItem:{title:"Local Type Inference for Flow",permalink:"/blog/2023/01/17/Local-Type-Inference"}},r={authorsImageUrls:[void 0]},i=[],s={toc:i};function d(e){let{components:t,...a}=e;return(0,n.mdx)("wrapper",(0,o.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4386.bfae335d.js b/assets/js/4386.bfae335d.js new file mode 100644 index 00000000000..18f9358588e --- /dev/null +++ b/assets/js/4386.bfae335d.js @@ -0,0 +1,338 @@ +"use strict"; +exports.id = 4386; +exports.ids = [4386]; +exports.modules = { + +/***/ 54386: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/apex/apex.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "<", close: ">" } + ], + folding: { + markers: { + start: new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))") + } + } +}; +var keywords = [ + "abstract", + "activate", + "and", + "any", + "array", + "as", + "asc", + "assert", + "autonomous", + "begin", + "bigdecimal", + "blob", + "boolean", + "break", + "bulk", + "by", + "case", + "cast", + "catch", + "char", + "class", + "collect", + "commit", + "const", + "continue", + "convertcurrency", + "decimal", + "default", + "delete", + "desc", + "do", + "double", + "else", + "end", + "enum", + "exception", + "exit", + "export", + "extends", + "false", + "final", + "finally", + "float", + "for", + "from", + "future", + "get", + "global", + "goto", + "group", + "having", + "hint", + "if", + "implements", + "import", + "in", + "inner", + "insert", + "instanceof", + "int", + "interface", + "into", + "join", + "last_90_days", + "last_month", + "last_n_days", + "last_week", + "like", + "limit", + "list", + "long", + "loop", + "map", + "merge", + "native", + "new", + "next_90_days", + "next_month", + "next_n_days", + "next_week", + "not", + "null", + "nulls", + "number", + "object", + "of", + "on", + "or", + "outer", + "override", + "package", + "parallel", + "pragma", + "private", + "protected", + "public", + "retrieve", + "return", + "returning", + "rollback", + "savepoint", + "search", + "select", + "set", + "short", + "sort", + "stat", + "static", + "strictfp", + "super", + "switch", + "synchronized", + "system", + "testmethod", + "then", + "this", + "this_month", + "this_week", + "throw", + "throws", + "today", + "tolabel", + "tomorrow", + "transaction", + "transient", + "trigger", + "true", + "try", + "type", + "undelete", + "update", + "upsert", + "using", + "virtual", + "void", + "volatile", + "webservice", + "when", + "where", + "while", + "yesterday" +]; +var uppercaseFirstLetter = (lowercase) => lowercase.charAt(0).toUpperCase() + lowercase.substr(1); +var keywordsWithCaseVariations = []; +keywords.forEach((lowercase) => { + keywordsWithCaseVariations.push(lowercase); + keywordsWithCaseVariations.push(lowercase.toUpperCase()); + keywordsWithCaseVariations.push(uppercaseFirstLetter(lowercase)); +}); +var language = { + defaultToken: "", + tokenPostfix: ".apex", + keywords: keywordsWithCaseVariations, + operators: [ + "=", + ">", + "<", + "!", + "~", + "?", + ":", + "==", + "<=", + ">=", + "!=", + "&&", + "||", + "++", + "--", + "+", + "-", + "*", + "/", + "&", + "|", + "^", + "%", + "<<", + ">>", + ">>>", + "+=", + "-=", + "*=", + "/=", + "&=", + "|=", + "^=", + "%=", + "<<=", + ">>=", + ">>>=" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/@\s*[a-zA-Z_\$][\w\$]*/, "annotation"], + [/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/, "number.float"], + [/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/, "number.float"], + [/(@digits)[fFdD]/, "number.float"], + [/(@digits)[lL]?/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/"/, "string", '@string."'], + [/'/, "string", "@string.'"], + [/'[^\\']'/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@apexdoc"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + apexdoc: [ + [/[^\/*]+/, "comment.doc"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + string: [ + [/[^\\"']+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [ + /["']/, + { + cases: { + "$#==$S2": { token: "string", next: "@pop" }, + "@default": "string" + } + } + ] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/4386.e5410b3b.js b/assets/js/4386.e5410b3b.js new file mode 100644 index 00000000000..48e14edb6c1 --- /dev/null +++ b/assets/js/4386.e5410b3b.js @@ -0,0 +1,2 @@ +/*! For license information please see 4386.e5410b3b.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4386],{54386:(e,t,s)=>{s.r(t),s.d(t,{conf:()=>n,language:()=>i});var n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},o=[];["abstract","activate","and","any","array","as","asc","assert","autonomous","begin","bigdecimal","blob","boolean","break","bulk","by","case","cast","catch","char","class","collect","commit","const","continue","convertcurrency","decimal","default","delete","desc","do","double","else","end","enum","exception","exit","export","extends","false","final","finally","float","for","from","future","get","global","goto","group","having","hint","if","implements","import","in","inner","insert","instanceof","int","interface","into","join","last_90_days","last_month","last_n_days","last_week","like","limit","list","long","loop","map","merge","native","new","next_90_days","next_month","next_n_days","next_week","not","null","nulls","number","object","of","on","or","outer","override","package","parallel","pragma","private","protected","public","retrieve","return","returning","rollback","savepoint","search","select","set","short","sort","stat","static","strictfp","super","switch","synchronized","system","testmethod","then","this","this_month","this_week","throw","throws","today","tolabel","tomorrow","transaction","transient","trigger","true","try","type","undelete","update","upsert","using","virtual","void","volatile","webservice","when","where","while","yesterday"].forEach((e=>{o.push(e),o.push(e.toUpperCase()),o.push((e=>e.charAt(0).toUpperCase()+e.substr(1))(e))}));var i={defaultToken:"",tokenPostfix:".apex",keywords:o,operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@apexdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],apexdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}}}}]); \ No newline at end of file diff --git a/assets/js/4386.e5410b3b.js.LICENSE.txt b/assets/js/4386.e5410b3b.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/4386.e5410b3b.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/4392.88be3c03.js b/assets/js/4392.88be3c03.js new file mode 100644 index 00000000000..7ff4d86befd --- /dev/null +++ b/assets/js/4392.88be3c03.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4392],{54392:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>u});var n=o(87462),i=(o(67294),o(3905));const r={title:"Linting in Flow","short-title":"Linting in Flow",author:"Roger Ballard","medium-link":"https://medium.com/flow-type/linting-in-flow-7709d7a7e969"},l=void 0,a={permalink:"/blog/2017/08/04/Linting-in-Flow",source:"@site/blog/2017-08-04-Linting-in-Flow.md",title:"Linting in Flow",description:"Flow\u2019s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter.",date:"2017-08-04T00:00:00.000Z",formattedDate:"August 4, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Roger Ballard"}],frontMatter:{title:"Linting in Flow","short-title":"Linting in Flow",author:"Roger Ballard","medium-link":"https://medium.com/flow-type/linting-in-flow-7709d7a7e969"},prevItem:{title:"Even Better Support for React in Flow",permalink:"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow"},nextItem:{title:"Opaque Type Aliases",permalink:"/blog/2017/07/27/Opaque-Types"}},s={authorsImageUrls:[void 0]},u=[],m={toc:u};function p(t){let{components:e,...o}=t;return(0,i.mdx)("wrapper",(0,n.Z)({},m,o,{components:e,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Flow\u2019s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4397.c0bddcab.js b/assets/js/4397.c0bddcab.js new file mode 100644 index 00000000000..2a003657c84 --- /dev/null +++ b/assets/js/4397.c0bddcab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4397],{14397:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>c,frontMatter:()=>l,metadata:()=>s,toc:()=>m});var i=t(87462),a=(t(67294),t(3905));t(45475);const l={title:"Literal Types",slug:"/types/literals"},r=void 0,s={unversionedId:"types/literals",id:"types/literals",title:"Literal Types",description:"Flow has primitive types for",source:"@site/docs/types/literals.md",sourceDirName:"types",slug:"/types/literals",permalink:"/en/docs/types/literals",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/literals.md",tags:[],version:"current",frontMatter:{title:"Literal Types",slug:"/types/literals"},sidebar:"docsSidebar",previous:{title:"Primitive Types",permalink:"/en/docs/types/primitives"},next:{title:"Mixed",permalink:"/en/docs/types/mixed"}},o={},m=[],p={toc:m};function c(e){let{components:n,...t}=e;return(0,a.mdx)("wrapper",(0,i.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Flow has ",(0,a.mdx)("a",{parentName:"p",href:"../primitives"},"primitive types")," for\nliteral values, but can also use literal values as types."),(0,a.mdx)("p",null,"For example, instead of accepting ",(0,a.mdx)("inlineCode",{parentName:"p"},"number")," type, we could accept only the\nliteral value ",(0,a.mdx)("inlineCode",{parentName:"p"},"2"),"."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":12,"endLine":5,"endColumn":12,"description":"Cannot call `acceptsTwo` with `3` bound to `value` because number [1] is incompatible with number literal `2` [2]. [incompatible-call]"},{"startLine":6,"startColumn":12,"endLine":6,"endColumn":14,"description":"Cannot call `acceptsTwo` with `\\"2\\"` bound to `value` because string [1] is incompatible with number literal `2` [2]. [incompatible-call]"}]','[{"startLine":5,"startColumn":12,"endLine":5,"endColumn":12,"description":"Cannot':!0,call:!0,"`acceptsTwo`":!0,with:!0,"`3`":!0,bound:!0,to:!0,"`value`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,literal:!0,"`2`":!0,"[2].":!0,'[incompatible-call]"},{"startLine":6,"startColumn":12,"endLine":6,"endColumn":14,"description":"Cannot':!0,'`\\"2\\"`':!0,string:!0,'[incompatible-call]"}]':!0},'function acceptsTwo(value: 2) { /* ... */ }\n\nacceptsTwo(2); // Works!\n\nacceptsTwo(3); // Error!\nacceptsTwo("2"); // Error!\n')),(0,a.mdx)("p",null,"You can use primitive values for these types:"),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},"Booleans: like ",(0,a.mdx)("inlineCode",{parentName:"li"},"true")," or ",(0,a.mdx)("inlineCode",{parentName:"li"},"false")),(0,a.mdx)("li",{parentName:"ul"},"Numbers: like ",(0,a.mdx)("inlineCode",{parentName:"li"},"42")," or ",(0,a.mdx)("inlineCode",{parentName:"li"},"3.14")),(0,a.mdx)("li",{parentName:"ul"},"Strings: like ",(0,a.mdx)("inlineCode",{parentName:"li"},'"foo"')," or ",(0,a.mdx)("inlineCode",{parentName:"li"},'"bar"')),(0,a.mdx)("li",{parentName:"ul"},"BigInts: like ",(0,a.mdx)("inlineCode",{parentName:"li"},"42n"))),(0,a.mdx)("p",null,"Using these with ",(0,a.mdx)("a",{parentName:"p",href:"../unions"},"union types")," is powerful:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":12,"startColumn":10,"endLine":12,"endColumn":16,"description":"Cannot call `getColor` with `\\"error\\"` bound to `name` because string [1] is incompatible with literal union [2]. [incompatible-call]"}]','[{"startLine":12,"startColumn":10,"endLine":12,"endColumn":16,"description":"Cannot':!0,call:!0,"`getColor`":!0,with:!0,'`\\"error\\"`':!0,bound:!0,to:!0,"`name`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,literal:!0,union:!0,"[2].":!0,'[incompatible-call]"}]':!0},'function getColor(name: "success" | "warning" | "danger") {\n switch (name) {\n case "success" : return "green";\n case "warning" : return "yellow";\n case "danger" : return "red";\n }\n}\n\ngetColor("success"); // Works!\ngetColor("danger"); // Works!\n\ngetColor("error"); // Error!\n')),(0,a.mdx)("p",null,"Consider using ",(0,a.mdx)("a",{parentName:"p",href:"../../enums"},"Flow Enums")," instead of unions of literal types, if they fit your use-case."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4407.3aae7ab5.js b/assets/js/4407.3aae7ab5.js new file mode 100644 index 00000000000..fe0d7e2a99b --- /dev/null +++ b/assets/js/4407.3aae7ab5.js @@ -0,0 +1,909 @@ +"use strict"; +exports.id = 4407; +exports.ids = [4407]; +exports.modules = { + +/***/ 94407: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/powerquery/powerquery.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["[", "]"], + ["(", ")"], + ["{", "}"] + ], + autoClosingPairs: [ + { open: '"', close: '"', notIn: ["string", "comment", "identifier"] }, + { open: "[", close: "]", notIn: ["string", "comment", "identifier"] }, + { open: "(", close: ")", notIn: ["string", "comment", "identifier"] }, + { open: "{", close: "}", notIn: ["string", "comment", "identifier"] } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".pq", + ignoreCase: false, + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "{", close: "}", token: "delimiter.brackets" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + operatorKeywords: ["and", "not", "or"], + keywords: [ + "as", + "each", + "else", + "error", + "false", + "if", + "in", + "is", + "let", + "meta", + "otherwise", + "section", + "shared", + "then", + "true", + "try", + "type" + ], + constructors: ["#binary", "#date", "#datetime", "#datetimezone", "#duration", "#table", "#time"], + constants: ["#infinity", "#nan", "#sections", "#shared"], + typeKeywords: [ + "action", + "any", + "anynonnull", + "none", + "null", + "logical", + "number", + "time", + "date", + "datetime", + "datetimezone", + "duration", + "text", + "binary", + "list", + "record", + "table", + "function" + ], + builtinFunctions: [ + "Access.Database", + "Action.Return", + "Action.Sequence", + "Action.Try", + "ActiveDirectory.Domains", + "AdoDotNet.DataSource", + "AdoDotNet.Query", + "AdobeAnalytics.Cubes", + "AnalysisServices.Database", + "AnalysisServices.Databases", + "AzureStorage.BlobContents", + "AzureStorage.Blobs", + "AzureStorage.Tables", + "Binary.Buffer", + "Binary.Combine", + "Binary.Compress", + "Binary.Decompress", + "Binary.End", + "Binary.From", + "Binary.FromList", + "Binary.FromText", + "Binary.InferContentType", + "Binary.Length", + "Binary.ToList", + "Binary.ToText", + "BinaryFormat.7BitEncodedSignedInteger", + "BinaryFormat.7BitEncodedUnsignedInteger", + "BinaryFormat.Binary", + "BinaryFormat.Byte", + "BinaryFormat.ByteOrder", + "BinaryFormat.Choice", + "BinaryFormat.Decimal", + "BinaryFormat.Double", + "BinaryFormat.Group", + "BinaryFormat.Length", + "BinaryFormat.List", + "BinaryFormat.Null", + "BinaryFormat.Record", + "BinaryFormat.SignedInteger16", + "BinaryFormat.SignedInteger32", + "BinaryFormat.SignedInteger64", + "BinaryFormat.Single", + "BinaryFormat.Text", + "BinaryFormat.Transform", + "BinaryFormat.UnsignedInteger16", + "BinaryFormat.UnsignedInteger32", + "BinaryFormat.UnsignedInteger64", + "Byte.From", + "Character.FromNumber", + "Character.ToNumber", + "Combiner.CombineTextByDelimiter", + "Combiner.CombineTextByEachDelimiter", + "Combiner.CombineTextByLengths", + "Combiner.CombineTextByPositions", + "Combiner.CombineTextByRanges", + "Comparer.Equals", + "Comparer.FromCulture", + "Comparer.Ordinal", + "Comparer.OrdinalIgnoreCase", + "Csv.Document", + "Cube.AddAndExpandDimensionColumn", + "Cube.AddMeasureColumn", + "Cube.ApplyParameter", + "Cube.AttributeMemberId", + "Cube.AttributeMemberProperty", + "Cube.CollapseAndRemoveColumns", + "Cube.Dimensions", + "Cube.DisplayFolders", + "Cube.Measures", + "Cube.Parameters", + "Cube.Properties", + "Cube.PropertyKey", + "Cube.ReplaceDimensions", + "Cube.Transform", + "Currency.From", + "DB2.Database", + "Date.AddDays", + "Date.AddMonths", + "Date.AddQuarters", + "Date.AddWeeks", + "Date.AddYears", + "Date.Day", + "Date.DayOfWeek", + "Date.DayOfWeekName", + "Date.DayOfYear", + "Date.DaysInMonth", + "Date.EndOfDay", + "Date.EndOfMonth", + "Date.EndOfQuarter", + "Date.EndOfWeek", + "Date.EndOfYear", + "Date.From", + "Date.FromText", + "Date.IsInCurrentDay", + "Date.IsInCurrentMonth", + "Date.IsInCurrentQuarter", + "Date.IsInCurrentWeek", + "Date.IsInCurrentYear", + "Date.IsInNextDay", + "Date.IsInNextMonth", + "Date.IsInNextNDays", + "Date.IsInNextNMonths", + "Date.IsInNextNQuarters", + "Date.IsInNextNWeeks", + "Date.IsInNextNYears", + "Date.IsInNextQuarter", + "Date.IsInNextWeek", + "Date.IsInNextYear", + "Date.IsInPreviousDay", + "Date.IsInPreviousMonth", + "Date.IsInPreviousNDays", + "Date.IsInPreviousNMonths", + "Date.IsInPreviousNQuarters", + "Date.IsInPreviousNWeeks", + "Date.IsInPreviousNYears", + "Date.IsInPreviousQuarter", + "Date.IsInPreviousWeek", + "Date.IsInPreviousYear", + "Date.IsInYearToDate", + "Date.IsLeapYear", + "Date.Month", + "Date.MonthName", + "Date.QuarterOfYear", + "Date.StartOfDay", + "Date.StartOfMonth", + "Date.StartOfQuarter", + "Date.StartOfWeek", + "Date.StartOfYear", + "Date.ToRecord", + "Date.ToText", + "Date.WeekOfMonth", + "Date.WeekOfYear", + "Date.Year", + "DateTime.AddZone", + "DateTime.Date", + "DateTime.FixedLocalNow", + "DateTime.From", + "DateTime.FromFileTime", + "DateTime.FromText", + "DateTime.IsInCurrentHour", + "DateTime.IsInCurrentMinute", + "DateTime.IsInCurrentSecond", + "DateTime.IsInNextHour", + "DateTime.IsInNextMinute", + "DateTime.IsInNextNHours", + "DateTime.IsInNextNMinutes", + "DateTime.IsInNextNSeconds", + "DateTime.IsInNextSecond", + "DateTime.IsInPreviousHour", + "DateTime.IsInPreviousMinute", + "DateTime.IsInPreviousNHours", + "DateTime.IsInPreviousNMinutes", + "DateTime.IsInPreviousNSeconds", + "DateTime.IsInPreviousSecond", + "DateTime.LocalNow", + "DateTime.Time", + "DateTime.ToRecord", + "DateTime.ToText", + "DateTimeZone.FixedLocalNow", + "DateTimeZone.FixedUtcNow", + "DateTimeZone.From", + "DateTimeZone.FromFileTime", + "DateTimeZone.FromText", + "DateTimeZone.LocalNow", + "DateTimeZone.RemoveZone", + "DateTimeZone.SwitchZone", + "DateTimeZone.ToLocal", + "DateTimeZone.ToRecord", + "DateTimeZone.ToText", + "DateTimeZone.ToUtc", + "DateTimeZone.UtcNow", + "DateTimeZone.ZoneHours", + "DateTimeZone.ZoneMinutes", + "Decimal.From", + "Diagnostics.ActivityId", + "Diagnostics.Trace", + "DirectQueryCapabilities.From", + "Double.From", + "Duration.Days", + "Duration.From", + "Duration.FromText", + "Duration.Hours", + "Duration.Minutes", + "Duration.Seconds", + "Duration.ToRecord", + "Duration.ToText", + "Duration.TotalDays", + "Duration.TotalHours", + "Duration.TotalMinutes", + "Duration.TotalSeconds", + "Embedded.Value", + "Error.Record", + "Excel.CurrentWorkbook", + "Excel.Workbook", + "Exchange.Contents", + "Expression.Constant", + "Expression.Evaluate", + "Expression.Identifier", + "Facebook.Graph", + "File.Contents", + "Folder.Contents", + "Folder.Files", + "Function.From", + "Function.Invoke", + "Function.InvokeAfter", + "Function.IsDataSource", + "GoogleAnalytics.Accounts", + "Guid.From", + "HdInsight.Containers", + "HdInsight.Contents", + "HdInsight.Files", + "Hdfs.Contents", + "Hdfs.Files", + "Informix.Database", + "Int16.From", + "Int32.From", + "Int64.From", + "Int8.From", + "ItemExpression.From", + "Json.Document", + "Json.FromValue", + "Lines.FromBinary", + "Lines.FromText", + "Lines.ToBinary", + "Lines.ToText", + "List.Accumulate", + "List.AllTrue", + "List.Alternate", + "List.AnyTrue", + "List.Average", + "List.Buffer", + "List.Combine", + "List.Contains", + "List.ContainsAll", + "List.ContainsAny", + "List.Count", + "List.Covariance", + "List.DateTimeZones", + "List.DateTimes", + "List.Dates", + "List.Difference", + "List.Distinct", + "List.Durations", + "List.FindText", + "List.First", + "List.FirstN", + "List.Generate", + "List.InsertRange", + "List.Intersect", + "List.IsDistinct", + "List.IsEmpty", + "List.Last", + "List.LastN", + "List.MatchesAll", + "List.MatchesAny", + "List.Max", + "List.MaxN", + "List.Median", + "List.Min", + "List.MinN", + "List.Mode", + "List.Modes", + "List.NonNullCount", + "List.Numbers", + "List.PositionOf", + "List.PositionOfAny", + "List.Positions", + "List.Product", + "List.Random", + "List.Range", + "List.RemoveFirstN", + "List.RemoveItems", + "List.RemoveLastN", + "List.RemoveMatchingItems", + "List.RemoveNulls", + "List.RemoveRange", + "List.Repeat", + "List.ReplaceMatchingItems", + "List.ReplaceRange", + "List.ReplaceValue", + "List.Reverse", + "List.Select", + "List.Single", + "List.SingleOrDefault", + "List.Skip", + "List.Sort", + "List.StandardDeviation", + "List.Sum", + "List.Times", + "List.Transform", + "List.TransformMany", + "List.Union", + "List.Zip", + "Logical.From", + "Logical.FromText", + "Logical.ToText", + "MQ.Queue", + "MySQL.Database", + "Number.Abs", + "Number.Acos", + "Number.Asin", + "Number.Atan", + "Number.Atan2", + "Number.BitwiseAnd", + "Number.BitwiseNot", + "Number.BitwiseOr", + "Number.BitwiseShiftLeft", + "Number.BitwiseShiftRight", + "Number.BitwiseXor", + "Number.Combinations", + "Number.Cos", + "Number.Cosh", + "Number.Exp", + "Number.Factorial", + "Number.From", + "Number.FromText", + "Number.IntegerDivide", + "Number.IsEven", + "Number.IsNaN", + "Number.IsOdd", + "Number.Ln", + "Number.Log", + "Number.Log10", + "Number.Mod", + "Number.Permutations", + "Number.Power", + "Number.Random", + "Number.RandomBetween", + "Number.Round", + "Number.RoundAwayFromZero", + "Number.RoundDown", + "Number.RoundTowardZero", + "Number.RoundUp", + "Number.Sign", + "Number.Sin", + "Number.Sinh", + "Number.Sqrt", + "Number.Tan", + "Number.Tanh", + "Number.ToText", + "OData.Feed", + "Odbc.DataSource", + "Odbc.Query", + "OleDb.DataSource", + "OleDb.Query", + "Oracle.Database", + "Percentage.From", + "PostgreSQL.Database", + "RData.FromBinary", + "Record.AddField", + "Record.Combine", + "Record.Field", + "Record.FieldCount", + "Record.FieldNames", + "Record.FieldOrDefault", + "Record.FieldValues", + "Record.FromList", + "Record.FromTable", + "Record.HasFields", + "Record.RemoveFields", + "Record.RenameFields", + "Record.ReorderFields", + "Record.SelectFields", + "Record.ToList", + "Record.ToTable", + "Record.TransformFields", + "Replacer.ReplaceText", + "Replacer.ReplaceValue", + "RowExpression.Column", + "RowExpression.From", + "Salesforce.Data", + "Salesforce.Reports", + "SapBusinessWarehouse.Cubes", + "SapHana.Database", + "SharePoint.Contents", + "SharePoint.Files", + "SharePoint.Tables", + "Single.From", + "Soda.Feed", + "Splitter.SplitByNothing", + "Splitter.SplitTextByAnyDelimiter", + "Splitter.SplitTextByDelimiter", + "Splitter.SplitTextByEachDelimiter", + "Splitter.SplitTextByLengths", + "Splitter.SplitTextByPositions", + "Splitter.SplitTextByRanges", + "Splitter.SplitTextByRepeatedLengths", + "Splitter.SplitTextByWhitespace", + "Sql.Database", + "Sql.Databases", + "SqlExpression.SchemaFrom", + "SqlExpression.ToExpression", + "Sybase.Database", + "Table.AddColumn", + "Table.AddIndexColumn", + "Table.AddJoinColumn", + "Table.AddKey", + "Table.AggregateTableColumn", + "Table.AlternateRows", + "Table.Buffer", + "Table.Column", + "Table.ColumnCount", + "Table.ColumnNames", + "Table.ColumnsOfType", + "Table.Combine", + "Table.CombineColumns", + "Table.Contains", + "Table.ContainsAll", + "Table.ContainsAny", + "Table.DemoteHeaders", + "Table.Distinct", + "Table.DuplicateColumn", + "Table.ExpandListColumn", + "Table.ExpandRecordColumn", + "Table.ExpandTableColumn", + "Table.FillDown", + "Table.FillUp", + "Table.FilterWithDataTable", + "Table.FindText", + "Table.First", + "Table.FirstN", + "Table.FirstValue", + "Table.FromColumns", + "Table.FromList", + "Table.FromPartitions", + "Table.FromRecords", + "Table.FromRows", + "Table.FromValue", + "Table.Group", + "Table.HasColumns", + "Table.InsertRows", + "Table.IsDistinct", + "Table.IsEmpty", + "Table.Join", + "Table.Keys", + "Table.Last", + "Table.LastN", + "Table.MatchesAllRows", + "Table.MatchesAnyRows", + "Table.Max", + "Table.MaxN", + "Table.Min", + "Table.MinN", + "Table.NestedJoin", + "Table.Partition", + "Table.PartitionValues", + "Table.Pivot", + "Table.PositionOf", + "Table.PositionOfAny", + "Table.PrefixColumns", + "Table.Profile", + "Table.PromoteHeaders", + "Table.Range", + "Table.RemoveColumns", + "Table.RemoveFirstN", + "Table.RemoveLastN", + "Table.RemoveMatchingRows", + "Table.RemoveRows", + "Table.RemoveRowsWithErrors", + "Table.RenameColumns", + "Table.ReorderColumns", + "Table.Repeat", + "Table.ReplaceErrorValues", + "Table.ReplaceKeys", + "Table.ReplaceMatchingRows", + "Table.ReplaceRelationshipIdentity", + "Table.ReplaceRows", + "Table.ReplaceValue", + "Table.ReverseRows", + "Table.RowCount", + "Table.Schema", + "Table.SelectColumns", + "Table.SelectRows", + "Table.SelectRowsWithErrors", + "Table.SingleRow", + "Table.Skip", + "Table.Sort", + "Table.SplitColumn", + "Table.ToColumns", + "Table.ToList", + "Table.ToRecords", + "Table.ToRows", + "Table.TransformColumnNames", + "Table.TransformColumnTypes", + "Table.TransformColumns", + "Table.TransformRows", + "Table.Transpose", + "Table.Unpivot", + "Table.UnpivotOtherColumns", + "Table.View", + "Table.ViewFunction", + "TableAction.DeleteRows", + "TableAction.InsertRows", + "TableAction.UpdateRows", + "Tables.GetRelationships", + "Teradata.Database", + "Text.AfterDelimiter", + "Text.At", + "Text.BeforeDelimiter", + "Text.BetweenDelimiters", + "Text.Clean", + "Text.Combine", + "Text.Contains", + "Text.End", + "Text.EndsWith", + "Text.Format", + "Text.From", + "Text.FromBinary", + "Text.Insert", + "Text.Length", + "Text.Lower", + "Text.Middle", + "Text.NewGuid", + "Text.PadEnd", + "Text.PadStart", + "Text.PositionOf", + "Text.PositionOfAny", + "Text.Proper", + "Text.Range", + "Text.Remove", + "Text.RemoveRange", + "Text.Repeat", + "Text.Replace", + "Text.ReplaceRange", + "Text.Select", + "Text.Split", + "Text.SplitAny", + "Text.Start", + "Text.StartsWith", + "Text.ToBinary", + "Text.ToList", + "Text.Trim", + "Text.TrimEnd", + "Text.TrimStart", + "Text.Upper", + "Time.EndOfHour", + "Time.From", + "Time.FromText", + "Time.Hour", + "Time.Minute", + "Time.Second", + "Time.StartOfHour", + "Time.ToRecord", + "Time.ToText", + "Type.AddTableKey", + "Type.ClosedRecord", + "Type.Facets", + "Type.ForFunction", + "Type.ForRecord", + "Type.FunctionParameters", + "Type.FunctionRequiredParameters", + "Type.FunctionReturn", + "Type.Is", + "Type.IsNullable", + "Type.IsOpenRecord", + "Type.ListItem", + "Type.NonNullable", + "Type.OpenRecord", + "Type.RecordFields", + "Type.ReplaceFacets", + "Type.ReplaceTableKeys", + "Type.TableColumn", + "Type.TableKeys", + "Type.TableRow", + "Type.TableSchema", + "Type.Union", + "Uri.BuildQueryString", + "Uri.Combine", + "Uri.EscapeDataString", + "Uri.Parts", + "Value.Add", + "Value.As", + "Value.Compare", + "Value.Divide", + "Value.Equals", + "Value.Firewall", + "Value.FromText", + "Value.Is", + "Value.Metadata", + "Value.Multiply", + "Value.NativeQuery", + "Value.NullableEquals", + "Value.RemoveMetadata", + "Value.ReplaceMetadata", + "Value.ReplaceType", + "Value.Subtract", + "Value.Type", + "ValueAction.NativeStatement", + "ValueAction.Replace", + "Variable.Value", + "Web.Contents", + "Web.Page", + "WebAction.Request", + "Xml.Document", + "Xml.Tables" + ], + builtinConstants: [ + "BinaryEncoding.Base64", + "BinaryEncoding.Hex", + "BinaryOccurrence.Optional", + "BinaryOccurrence.Repeating", + "BinaryOccurrence.Required", + "ByteOrder.BigEndian", + "ByteOrder.LittleEndian", + "Compression.Deflate", + "Compression.GZip", + "CsvStyle.QuoteAfterDelimiter", + "CsvStyle.QuoteAlways", + "Culture.Current", + "Day.Friday", + "Day.Monday", + "Day.Saturday", + "Day.Sunday", + "Day.Thursday", + "Day.Tuesday", + "Day.Wednesday", + "ExtraValues.Error", + "ExtraValues.Ignore", + "ExtraValues.List", + "GroupKind.Global", + "GroupKind.Local", + "JoinAlgorithm.Dynamic", + "JoinAlgorithm.LeftHash", + "JoinAlgorithm.LeftIndex", + "JoinAlgorithm.PairwiseHash", + "JoinAlgorithm.RightHash", + "JoinAlgorithm.RightIndex", + "JoinAlgorithm.SortMerge", + "JoinKind.FullOuter", + "JoinKind.Inner", + "JoinKind.LeftAnti", + "JoinKind.LeftOuter", + "JoinKind.RightAnti", + "JoinKind.RightOuter", + "JoinSide.Left", + "JoinSide.Right", + "MissingField.Error", + "MissingField.Ignore", + "MissingField.UseNull", + "Number.E", + "Number.Epsilon", + "Number.NaN", + "Number.NegativeInfinity", + "Number.PI", + "Number.PositiveInfinity", + "Occurrence.All", + "Occurrence.First", + "Occurrence.Last", + "Occurrence.Optional", + "Occurrence.Repeating", + "Occurrence.Required", + "Order.Ascending", + "Order.Descending", + "Precision.Decimal", + "Precision.Double", + "QuoteStyle.Csv", + "QuoteStyle.None", + "RelativePosition.FromEnd", + "RelativePosition.FromStart", + "RoundingMode.AwayFromZero", + "RoundingMode.Down", + "RoundingMode.ToEven", + "RoundingMode.TowardZero", + "RoundingMode.Up", + "SapHanaDistribution.All", + "SapHanaDistribution.Connection", + "SapHanaDistribution.Off", + "SapHanaDistribution.Statement", + "SapHanaRangeOperator.Equals", + "SapHanaRangeOperator.GreaterThan", + "SapHanaRangeOperator.GreaterThanOrEquals", + "SapHanaRangeOperator.LessThan", + "SapHanaRangeOperator.LessThanOrEquals", + "SapHanaRangeOperator.NotEquals", + "TextEncoding.Ascii", + "TextEncoding.BigEndianUnicode", + "TextEncoding.Unicode", + "TextEncoding.Utf16", + "TextEncoding.Utf8", + "TextEncoding.Windows", + "TraceLevel.Critical", + "TraceLevel.Error", + "TraceLevel.Information", + "TraceLevel.Verbose", + "TraceLevel.Warning", + "WebMethod.Delete", + "WebMethod.Get", + "WebMethod.Head", + "WebMethod.Patch", + "WebMethod.Post", + "WebMethod.Put" + ], + builtinTypes: [ + "Action.Type", + "Any.Type", + "Binary.Type", + "BinaryEncoding.Type", + "BinaryOccurrence.Type", + "Byte.Type", + "ByteOrder.Type", + "Character.Type", + "Compression.Type", + "CsvStyle.Type", + "Currency.Type", + "Date.Type", + "DateTime.Type", + "DateTimeZone.Type", + "Day.Type", + "Decimal.Type", + "Double.Type", + "Duration.Type", + "ExtraValues.Type", + "Function.Type", + "GroupKind.Type", + "Guid.Type", + "Int16.Type", + "Int32.Type", + "Int64.Type", + "Int8.Type", + "JoinAlgorithm.Type", + "JoinKind.Type", + "JoinSide.Type", + "List.Type", + "Logical.Type", + "MissingField.Type", + "None.Type", + "Null.Type", + "Number.Type", + "Occurrence.Type", + "Order.Type", + "Password.Type", + "Percentage.Type", + "Precision.Type", + "QuoteStyle.Type", + "Record.Type", + "RelativePosition.Type", + "RoundingMode.Type", + "SapHanaDistribution.Type", + "SapHanaRangeOperator.Type", + "Single.Type", + "Table.Type", + "Text.Type", + "TextEncoding.Type", + "Time.Type", + "TraceLevel.Type", + "Type.Type", + "Uri.Type", + "WebMethod.Type" + ], + tokenizer: { + root: [ + [/#"[\w \.]+"/, "identifier.quote"], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F]+/, "number.hex"], + [/\d+([eE][\-+]?\d+)?/, "number"], + [ + /(#?[a-z]+)\b/, + { + cases: { + "@typeKeywords": "type", + "@keywords": "keyword", + "@constants": "constant", + "@constructors": "constructor", + "@operatorKeywords": "operators", + "@default": "identifier" + } + } + ], + [ + /\b([A-Z][a-zA-Z0-9]+\.Type)\b/, + { + cases: { + "@builtinTypes": "type", + "@default": "identifier" + } + } + ], + [ + /\b([A-Z][a-zA-Z0-9]+\.[A-Z][a-zA-Z0-9]+)\b/, + { + cases: { + "@builtinFunctions": "keyword.function", + "@builtinConstants": "constant", + "@default": "identifier" + } + } + ], + [/\b([a-zA-Z_][\w\.]*)\b/, "identifier"], + { include: "@whitespace" }, + { include: "@comments" }, + { include: "@strings" }, + [/[{}()\[\]]/, "@brackets"], + [/([=\+<>\-\*&@\?\/!])|([<>]=)|(<>)|(=>)|(\.\.\.)|(\.\.)/, "operators"], + [/[,;]/, "delimiter"] + ], + whitespace: [[/\s+/, "white"]], + comments: [ + ["\\/\\*", "comment", "@comment"], + ["\\/\\/+.*", "comment"] + ], + comment: [ + ["\\*\\/", "comment", "@pop"], + [".", "comment"] + ], + strings: [['"', "string", "@string"]], + string: [ + ['""', "string.escape"], + ['"', "string", "@pop"], + [".", "string"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/4407.f24a98c4.js b/assets/js/4407.f24a98c4.js new file mode 100644 index 00000000000..a7c970ab687 --- /dev/null +++ b/assets/js/4407.f24a98c4.js @@ -0,0 +1,2 @@ +/*! For license information please see 4407.f24a98c4.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4407],{94407:(e,t,a)=>{a.r(t),a.d(t,{conf:()=>n,language:()=>i});var n={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment","identifier"]},{open:"[",close:"]",notIn:["string","comment","identifier"]},{open:"(",close:")",notIn:["string","comment","identifier"]},{open:"{",close:"}",notIn:["string","comment","identifier"]}]},i={defaultToken:"",tokenPostfix:".pq",ignoreCase:!1,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.brackets"},{open:"(",close:")",token:"delimiter.parenthesis"}],operatorKeywords:["and","not","or"],keywords:["as","each","else","error","false","if","in","is","let","meta","otherwise","section","shared","then","true","try","type"],constructors:["#binary","#date","#datetime","#datetimezone","#duration","#table","#time"],constants:["#infinity","#nan","#sections","#shared"],typeKeywords:["action","any","anynonnull","none","null","logical","number","time","date","datetime","datetimezone","duration","text","binary","list","record","table","function"],builtinFunctions:["Access.Database","Action.Return","Action.Sequence","Action.Try","ActiveDirectory.Domains","AdoDotNet.DataSource","AdoDotNet.Query","AdobeAnalytics.Cubes","AnalysisServices.Database","AnalysisServices.Databases","AzureStorage.BlobContents","AzureStorage.Blobs","AzureStorage.Tables","Binary.Buffer","Binary.Combine","Binary.Compress","Binary.Decompress","Binary.End","Binary.From","Binary.FromList","Binary.FromText","Binary.InferContentType","Binary.Length","Binary.ToList","Binary.ToText","BinaryFormat.7BitEncodedSignedInteger","BinaryFormat.7BitEncodedUnsignedInteger","BinaryFormat.Binary","BinaryFormat.Byte","BinaryFormat.ByteOrder","BinaryFormat.Choice","BinaryFormat.Decimal","BinaryFormat.Double","BinaryFormat.Group","BinaryFormat.Length","BinaryFormat.List","BinaryFormat.Null","BinaryFormat.Record","BinaryFormat.SignedInteger16","BinaryFormat.SignedInteger32","BinaryFormat.SignedInteger64","BinaryFormat.Single","BinaryFormat.Text","BinaryFormat.Transform","BinaryFormat.UnsignedInteger16","BinaryFormat.UnsignedInteger32","BinaryFormat.UnsignedInteger64","Byte.From","Character.FromNumber","Character.ToNumber","Combiner.CombineTextByDelimiter","Combiner.CombineTextByEachDelimiter","Combiner.CombineTextByLengths","Combiner.CombineTextByPositions","Combiner.CombineTextByRanges","Comparer.Equals","Comparer.FromCulture","Comparer.Ordinal","Comparer.OrdinalIgnoreCase","Csv.Document","Cube.AddAndExpandDimensionColumn","Cube.AddMeasureColumn","Cube.ApplyParameter","Cube.AttributeMemberId","Cube.AttributeMemberProperty","Cube.CollapseAndRemoveColumns","Cube.Dimensions","Cube.DisplayFolders","Cube.Measures","Cube.Parameters","Cube.Properties","Cube.PropertyKey","Cube.ReplaceDimensions","Cube.Transform","Currency.From","DB2.Database","Date.AddDays","Date.AddMonths","Date.AddQuarters","Date.AddWeeks","Date.AddYears","Date.Day","Date.DayOfWeek","Date.DayOfWeekName","Date.DayOfYear","Date.DaysInMonth","Date.EndOfDay","Date.EndOfMonth","Date.EndOfQuarter","Date.EndOfWeek","Date.EndOfYear","Date.From","Date.FromText","Date.IsInCurrentDay","Date.IsInCurrentMonth","Date.IsInCurrentQuarter","Date.IsInCurrentWeek","Date.IsInCurrentYear","Date.IsInNextDay","Date.IsInNextMonth","Date.IsInNextNDays","Date.IsInNextNMonths","Date.IsInNextNQuarters","Date.IsInNextNWeeks","Date.IsInNextNYears","Date.IsInNextQuarter","Date.IsInNextWeek","Date.IsInNextYear","Date.IsInPreviousDay","Date.IsInPreviousMonth","Date.IsInPreviousNDays","Date.IsInPreviousNMonths","Date.IsInPreviousNQuarters","Date.IsInPreviousNWeeks","Date.IsInPreviousNYears","Date.IsInPreviousQuarter","Date.IsInPreviousWeek","Date.IsInPreviousYear","Date.IsInYearToDate","Date.IsLeapYear","Date.Month","Date.MonthName","Date.QuarterOfYear","Date.StartOfDay","Date.StartOfMonth","Date.StartOfQuarter","Date.StartOfWeek","Date.StartOfYear","Date.ToRecord","Date.ToText","Date.WeekOfMonth","Date.WeekOfYear","Date.Year","DateTime.AddZone","DateTime.Date","DateTime.FixedLocalNow","DateTime.From","DateTime.FromFileTime","DateTime.FromText","DateTime.IsInCurrentHour","DateTime.IsInCurrentMinute","DateTime.IsInCurrentSecond","DateTime.IsInNextHour","DateTime.IsInNextMinute","DateTime.IsInNextNHours","DateTime.IsInNextNMinutes","DateTime.IsInNextNSeconds","DateTime.IsInNextSecond","DateTime.IsInPreviousHour","DateTime.IsInPreviousMinute","DateTime.IsInPreviousNHours","DateTime.IsInPreviousNMinutes","DateTime.IsInPreviousNSeconds","DateTime.IsInPreviousSecond","DateTime.LocalNow","DateTime.Time","DateTime.ToRecord","DateTime.ToText","DateTimeZone.FixedLocalNow","DateTimeZone.FixedUtcNow","DateTimeZone.From","DateTimeZone.FromFileTime","DateTimeZone.FromText","DateTimeZone.LocalNow","DateTimeZone.RemoveZone","DateTimeZone.SwitchZone","DateTimeZone.ToLocal","DateTimeZone.ToRecord","DateTimeZone.ToText","DateTimeZone.ToUtc","DateTimeZone.UtcNow","DateTimeZone.ZoneHours","DateTimeZone.ZoneMinutes","Decimal.From","Diagnostics.ActivityId","Diagnostics.Trace","DirectQueryCapabilities.From","Double.From","Duration.Days","Duration.From","Duration.FromText","Duration.Hours","Duration.Minutes","Duration.Seconds","Duration.ToRecord","Duration.ToText","Duration.TotalDays","Duration.TotalHours","Duration.TotalMinutes","Duration.TotalSeconds","Embedded.Value","Error.Record","Excel.CurrentWorkbook","Excel.Workbook","Exchange.Contents","Expression.Constant","Expression.Evaluate","Expression.Identifier","Facebook.Graph","File.Contents","Folder.Contents","Folder.Files","Function.From","Function.Invoke","Function.InvokeAfter","Function.IsDataSource","GoogleAnalytics.Accounts","Guid.From","HdInsight.Containers","HdInsight.Contents","HdInsight.Files","Hdfs.Contents","Hdfs.Files","Informix.Database","Int16.From","Int32.From","Int64.From","Int8.From","ItemExpression.From","Json.Document","Json.FromValue","Lines.FromBinary","Lines.FromText","Lines.ToBinary","Lines.ToText","List.Accumulate","List.AllTrue","List.Alternate","List.AnyTrue","List.Average","List.Buffer","List.Combine","List.Contains","List.ContainsAll","List.ContainsAny","List.Count","List.Covariance","List.DateTimeZones","List.DateTimes","List.Dates","List.Difference","List.Distinct","List.Durations","List.FindText","List.First","List.FirstN","List.Generate","List.InsertRange","List.Intersect","List.IsDistinct","List.IsEmpty","List.Last","List.LastN","List.MatchesAll","List.MatchesAny","List.Max","List.MaxN","List.Median","List.Min","List.MinN","List.Mode","List.Modes","List.NonNullCount","List.Numbers","List.PositionOf","List.PositionOfAny","List.Positions","List.Product","List.Random","List.Range","List.RemoveFirstN","List.RemoveItems","List.RemoveLastN","List.RemoveMatchingItems","List.RemoveNulls","List.RemoveRange","List.Repeat","List.ReplaceMatchingItems","List.ReplaceRange","List.ReplaceValue","List.Reverse","List.Select","List.Single","List.SingleOrDefault","List.Skip","List.Sort","List.StandardDeviation","List.Sum","List.Times","List.Transform","List.TransformMany","List.Union","List.Zip","Logical.From","Logical.FromText","Logical.ToText","MQ.Queue","MySQL.Database","Number.Abs","Number.Acos","Number.Asin","Number.Atan","Number.Atan2","Number.BitwiseAnd","Number.BitwiseNot","Number.BitwiseOr","Number.BitwiseShiftLeft","Number.BitwiseShiftRight","Number.BitwiseXor","Number.Combinations","Number.Cos","Number.Cosh","Number.Exp","Number.Factorial","Number.From","Number.FromText","Number.IntegerDivide","Number.IsEven","Number.IsNaN","Number.IsOdd","Number.Ln","Number.Log","Number.Log10","Number.Mod","Number.Permutations","Number.Power","Number.Random","Number.RandomBetween","Number.Round","Number.RoundAwayFromZero","Number.RoundDown","Number.RoundTowardZero","Number.RoundUp","Number.Sign","Number.Sin","Number.Sinh","Number.Sqrt","Number.Tan","Number.Tanh","Number.ToText","OData.Feed","Odbc.DataSource","Odbc.Query","OleDb.DataSource","OleDb.Query","Oracle.Database","Percentage.From","PostgreSQL.Database","RData.FromBinary","Record.AddField","Record.Combine","Record.Field","Record.FieldCount","Record.FieldNames","Record.FieldOrDefault","Record.FieldValues","Record.FromList","Record.FromTable","Record.HasFields","Record.RemoveFields","Record.RenameFields","Record.ReorderFields","Record.SelectFields","Record.ToList","Record.ToTable","Record.TransformFields","Replacer.ReplaceText","Replacer.ReplaceValue","RowExpression.Column","RowExpression.From","Salesforce.Data","Salesforce.Reports","SapBusinessWarehouse.Cubes","SapHana.Database","SharePoint.Contents","SharePoint.Files","SharePoint.Tables","Single.From","Soda.Feed","Splitter.SplitByNothing","Splitter.SplitTextByAnyDelimiter","Splitter.SplitTextByDelimiter","Splitter.SplitTextByEachDelimiter","Splitter.SplitTextByLengths","Splitter.SplitTextByPositions","Splitter.SplitTextByRanges","Splitter.SplitTextByRepeatedLengths","Splitter.SplitTextByWhitespace","Sql.Database","Sql.Databases","SqlExpression.SchemaFrom","SqlExpression.ToExpression","Sybase.Database","Table.AddColumn","Table.AddIndexColumn","Table.AddJoinColumn","Table.AddKey","Table.AggregateTableColumn","Table.AlternateRows","Table.Buffer","Table.Column","Table.ColumnCount","Table.ColumnNames","Table.ColumnsOfType","Table.Combine","Table.CombineColumns","Table.Contains","Table.ContainsAll","Table.ContainsAny","Table.DemoteHeaders","Table.Distinct","Table.DuplicateColumn","Table.ExpandListColumn","Table.ExpandRecordColumn","Table.ExpandTableColumn","Table.FillDown","Table.FillUp","Table.FilterWithDataTable","Table.FindText","Table.First","Table.FirstN","Table.FirstValue","Table.FromColumns","Table.FromList","Table.FromPartitions","Table.FromRecords","Table.FromRows","Table.FromValue","Table.Group","Table.HasColumns","Table.InsertRows","Table.IsDistinct","Table.IsEmpty","Table.Join","Table.Keys","Table.Last","Table.LastN","Table.MatchesAllRows","Table.MatchesAnyRows","Table.Max","Table.MaxN","Table.Min","Table.MinN","Table.NestedJoin","Table.Partition","Table.PartitionValues","Table.Pivot","Table.PositionOf","Table.PositionOfAny","Table.PrefixColumns","Table.Profile","Table.PromoteHeaders","Table.Range","Table.RemoveColumns","Table.RemoveFirstN","Table.RemoveLastN","Table.RemoveMatchingRows","Table.RemoveRows","Table.RemoveRowsWithErrors","Table.RenameColumns","Table.ReorderColumns","Table.Repeat","Table.ReplaceErrorValues","Table.ReplaceKeys","Table.ReplaceMatchingRows","Table.ReplaceRelationshipIdentity","Table.ReplaceRows","Table.ReplaceValue","Table.ReverseRows","Table.RowCount","Table.Schema","Table.SelectColumns","Table.SelectRows","Table.SelectRowsWithErrors","Table.SingleRow","Table.Skip","Table.Sort","Table.SplitColumn","Table.ToColumns","Table.ToList","Table.ToRecords","Table.ToRows","Table.TransformColumnNames","Table.TransformColumnTypes","Table.TransformColumns","Table.TransformRows","Table.Transpose","Table.Unpivot","Table.UnpivotOtherColumns","Table.View","Table.ViewFunction","TableAction.DeleteRows","TableAction.InsertRows","TableAction.UpdateRows","Tables.GetRelationships","Teradata.Database","Text.AfterDelimiter","Text.At","Text.BeforeDelimiter","Text.BetweenDelimiters","Text.Clean","Text.Combine","Text.Contains","Text.End","Text.EndsWith","Text.Format","Text.From","Text.FromBinary","Text.Insert","Text.Length","Text.Lower","Text.Middle","Text.NewGuid","Text.PadEnd","Text.PadStart","Text.PositionOf","Text.PositionOfAny","Text.Proper","Text.Range","Text.Remove","Text.RemoveRange","Text.Repeat","Text.Replace","Text.ReplaceRange","Text.Select","Text.Split","Text.SplitAny","Text.Start","Text.StartsWith","Text.ToBinary","Text.ToList","Text.Trim","Text.TrimEnd","Text.TrimStart","Text.Upper","Time.EndOfHour","Time.From","Time.FromText","Time.Hour","Time.Minute","Time.Second","Time.StartOfHour","Time.ToRecord","Time.ToText","Type.AddTableKey","Type.ClosedRecord","Type.Facets","Type.ForFunction","Type.ForRecord","Type.FunctionParameters","Type.FunctionRequiredParameters","Type.FunctionReturn","Type.Is","Type.IsNullable","Type.IsOpenRecord","Type.ListItem","Type.NonNullable","Type.OpenRecord","Type.RecordFields","Type.ReplaceFacets","Type.ReplaceTableKeys","Type.TableColumn","Type.TableKeys","Type.TableRow","Type.TableSchema","Type.Union","Uri.BuildQueryString","Uri.Combine","Uri.EscapeDataString","Uri.Parts","Value.Add","Value.As","Value.Compare","Value.Divide","Value.Equals","Value.Firewall","Value.FromText","Value.Is","Value.Metadata","Value.Multiply","Value.NativeQuery","Value.NullableEquals","Value.RemoveMetadata","Value.ReplaceMetadata","Value.ReplaceType","Value.Subtract","Value.Type","ValueAction.NativeStatement","ValueAction.Replace","Variable.Value","Web.Contents","Web.Page","WebAction.Request","Xml.Document","Xml.Tables"],builtinConstants:["BinaryEncoding.Base64","BinaryEncoding.Hex","BinaryOccurrence.Optional","BinaryOccurrence.Repeating","BinaryOccurrence.Required","ByteOrder.BigEndian","ByteOrder.LittleEndian","Compression.Deflate","Compression.GZip","CsvStyle.QuoteAfterDelimiter","CsvStyle.QuoteAlways","Culture.Current","Day.Friday","Day.Monday","Day.Saturday","Day.Sunday","Day.Thursday","Day.Tuesday","Day.Wednesday","ExtraValues.Error","ExtraValues.Ignore","ExtraValues.List","GroupKind.Global","GroupKind.Local","JoinAlgorithm.Dynamic","JoinAlgorithm.LeftHash","JoinAlgorithm.LeftIndex","JoinAlgorithm.PairwiseHash","JoinAlgorithm.RightHash","JoinAlgorithm.RightIndex","JoinAlgorithm.SortMerge","JoinKind.FullOuter","JoinKind.Inner","JoinKind.LeftAnti","JoinKind.LeftOuter","JoinKind.RightAnti","JoinKind.RightOuter","JoinSide.Left","JoinSide.Right","MissingField.Error","MissingField.Ignore","MissingField.UseNull","Number.E","Number.Epsilon","Number.NaN","Number.NegativeInfinity","Number.PI","Number.PositiveInfinity","Occurrence.All","Occurrence.First","Occurrence.Last","Occurrence.Optional","Occurrence.Repeating","Occurrence.Required","Order.Ascending","Order.Descending","Precision.Decimal","Precision.Double","QuoteStyle.Csv","QuoteStyle.None","RelativePosition.FromEnd","RelativePosition.FromStart","RoundingMode.AwayFromZero","RoundingMode.Down","RoundingMode.ToEven","RoundingMode.TowardZero","RoundingMode.Up","SapHanaDistribution.All","SapHanaDistribution.Connection","SapHanaDistribution.Off","SapHanaDistribution.Statement","SapHanaRangeOperator.Equals","SapHanaRangeOperator.GreaterThan","SapHanaRangeOperator.GreaterThanOrEquals","SapHanaRangeOperator.LessThan","SapHanaRangeOperator.LessThanOrEquals","SapHanaRangeOperator.NotEquals","TextEncoding.Ascii","TextEncoding.BigEndianUnicode","TextEncoding.Unicode","TextEncoding.Utf16","TextEncoding.Utf8","TextEncoding.Windows","TraceLevel.Critical","TraceLevel.Error","TraceLevel.Information","TraceLevel.Verbose","TraceLevel.Warning","WebMethod.Delete","WebMethod.Get","WebMethod.Head","WebMethod.Patch","WebMethod.Post","WebMethod.Put"],builtinTypes:["Action.Type","Any.Type","Binary.Type","BinaryEncoding.Type","BinaryOccurrence.Type","Byte.Type","ByteOrder.Type","Character.Type","Compression.Type","CsvStyle.Type","Currency.Type","Date.Type","DateTime.Type","DateTimeZone.Type","Day.Type","Decimal.Type","Double.Type","Duration.Type","ExtraValues.Type","Function.Type","GroupKind.Type","Guid.Type","Int16.Type","Int32.Type","Int64.Type","Int8.Type","JoinAlgorithm.Type","JoinKind.Type","JoinSide.Type","List.Type","Logical.Type","MissingField.Type","None.Type","Null.Type","Number.Type","Occurrence.Type","Order.Type","Password.Type","Percentage.Type","Precision.Type","QuoteStyle.Type","Record.Type","RelativePosition.Type","RoundingMode.Type","SapHanaDistribution.Type","SapHanaRangeOperator.Type","Single.Type","Table.Type","Text.Type","TextEncoding.Type","Time.Type","TraceLevel.Type","Type.Type","Uri.Type","WebMethod.Type"],tokenizer:{root:[[/#"[\w \.]+"/,"identifier.quote"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+([eE][\-+]?\d+)?/,"number"],[/(#?[a-z]+)\b/,{cases:{"@typeKeywords":"type","@keywords":"keyword","@constants":"constant","@constructors":"constructor","@operatorKeywords":"operators","@default":"identifier"}}],[/\b([A-Z][a-zA-Z0-9]+\.Type)\b/,{cases:{"@builtinTypes":"type","@default":"identifier"}}],[/\b([A-Z][a-zA-Z0-9]+\.[A-Z][a-zA-Z0-9]+)\b/,{cases:{"@builtinFunctions":"keyword.function","@builtinConstants":"constant","@default":"identifier"}}],[/\b([a-zA-Z_][\w\.]*)\b/,"identifier"],{include:"@whitespace"},{include:"@comments"},{include:"@strings"},[/[{}()\[\]]/,"@brackets"],[/([=\+<>\-\*&@\?\/!])|([<>]=)|(<>)|(=>)|(\.\.\.)|(\.\.)/,"operators"],[/[,;]/,"delimiter"]],whitespace:[[/\s+/,"white"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],strings:[['"',"string","@string"]],string:[['""',"string.escape"],['"',"string","@pop"],[".","string"]]}}}}]); \ No newline at end of file diff --git a/assets/js/4407.f24a98c4.js.LICENSE.txt b/assets/js/4407.f24a98c4.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/4407.f24a98c4.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/4422.1cb367d3.js b/assets/js/4422.1cb367d3.js new file mode 100644 index 00000000000..b120edb9a1f --- /dev/null +++ b/assets/js/4422.1cb367d3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4422],{74422:(o,e,n)=>{n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var t=n(87462),r=(n(67294),n(3905));const s={title:"New Flow Errors on Unknown Property Access in Conditionals","short-title":"Unknown Props in Conditionals",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/new-flow-errors-on-unknown-property-access-in-conditionals-461da66ea10"},i=void 0,a={permalink:"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals",source:"@site/blog/2018-03-16-New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals.md",title:"New Flow Errors on Unknown Property Access in Conditionals",description:"TL;DR: Starting in 0.68.0, Flow will now error when you access unknown",date:"2018-03-16T00:00:00.000Z",formattedDate:"March 16, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{title:"New Flow Errors on Unknown Property Access in Conditionals","short-title":"Unknown Props in Conditionals",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/new-flow-errors-on-unknown-property-access-in-conditionals-461da66ea10"},prevItem:{title:"On the Roadmap: Exact Objects by Default",permalink:"/blog/2018/10/18/Exact-Objects-By-Default"},nextItem:{title:"Better Flow Error Messages for the JavaScript Ecosystem",permalink:"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem"}},l={authorsImageUrls:[void 0]},c=[],w={toc:c};function p(o){let{components:e,...n}=o;return(0,r.mdx)("wrapper",(0,t.Z)({},w,n,{components:e,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"TL;DR: Starting in 0.68.0, Flow will now error when you access unknown\nproperties in conditionals."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4469.b5252e80.js b/assets/js/4469.b5252e80.js new file mode 100644 index 00000000000..3218bd6c85f --- /dev/null +++ b/assets/js/4469.b5252e80.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4469],{24469:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/4502.f5fec547.js b/assets/js/4502.f5fec547.js new file mode 100644 index 00000000000..b7f1b1cba05 --- /dev/null +++ b/assets/js/4502.f5fec547.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4502],{64502:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>c,frontMatter:()=>l,metadata:()=>s,toc:()=>d});var i=t(87462),o=(t(67294),t(3905));t(45475);const l={title:"Linting Overview",slug:"/linting",description:"Learn how to configure Flow's linter to find potentially harmful code."},r=void 0,s={unversionedId:"linting/index",id:"linting/index",title:"Linting Overview",description:"Learn how to configure Flow's linter to find potentially harmful code.",source:"@site/docs/linting/index.md",sourceDirName:"linting",slug:"/linting",permalink:"/en/docs/linting",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/linting/index.md",tags:[],version:"current",frontMatter:{title:"Linting Overview",slug:"/linting",description:"Learn how to configure Flow's linter to find potentially harmful code."},sidebar:"docsSidebar",previous:{title:"Error Suppressions",permalink:"/en/docs/errors"},next:{title:"Flowlint Comments",permalink:"/en/docs/linting/flowlint-comments"}},a={},d=[{value:"Configuring Lints in the .flowconfig",id:"toc-configuring-lints-in-the-flowconfig",level:3},{value:"Configuring Lints from the CLI",id:"toc-configuring-lints-from-the-cli",level:3},{value:"Configuring Lints with Comments",id:"toc-configuring-lints-with-comments",level:3},{value:"Lint Settings Precedence",id:"toc-lint-settings-precedence",level:3},{value:"Severity Levels and Meanings",id:"toc-severity-levels-and-meanings",level:3}],m={toc:d};function c(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,i.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Flow contains a linting framework that can tell you about more than just type errors. This framework is highly configurable in order to show you the information you want and hide the information you don't."),(0,o.mdx)("h3",{id:"toc-configuring-lints-in-the-flowconfig"},"Configuring Lints in the ",(0,o.mdx)("inlineCode",{parentName:"h3"},".flowconfig")),(0,o.mdx)("p",null,"Lint settings can be specified in the ",(0,o.mdx)("inlineCode",{parentName:"p"},"[lints]")," section of the ",(0,o.mdx)("inlineCode",{parentName:"p"},".flowconfig")," as a list of ",(0,o.mdx)("inlineCode",{parentName:"p"},"rule=severity")," pairs. These settings apply globally to the entire project."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre"},"[lints]\nall=warn\nuntyped-type-import=error\nsketchy-null-bool=off\n")),(0,o.mdx)("h3",{id:"toc-configuring-lints-from-the-cli"},"Configuring Lints from the CLI"),(0,o.mdx)("p",null,"Lint settings can be specified using the ",(0,o.mdx)("inlineCode",{parentName:"p"},"--lints")," flag of a Flow server command as a comma-delimited list of ",(0,o.mdx)("inlineCode",{parentName:"p"},"rule=severity")," pairs. These settings apply globally to the entire project."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre"},'flow start --lints "all=warn, untyped-type-import=error, sketchy-null-bool=off"\n')),(0,o.mdx)("h3",{id:"toc-configuring-lints-with-comments"},"Configuring Lints with Comments"),(0,o.mdx)("p",null,"Lint settings can be specified inside a file using ",(0,o.mdx)("inlineCode",{parentName:"p"},"flowlint")," comments. These\nsettings apply to a region of a file, or a single line, or part of a line. For\nmore details see ",(0,o.mdx)("a",{parentName:"p",href:"./flowlint-comments"},"Flowlint Comments"),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":5,"endLine":4,"endColumn":5,"description":"Sketchy null check on number [1] which is potentially 0. Perhaps you meant to check for null or undefined [2]? [sketchy-null-number]"}]','[{"startLine":4,"startColumn":5,"endLine":4,"endColumn":5,"description":"Sketchy':!0,null:!0,check:!0,on:!0,number:!0,"[1]":!0,which:!0,is:!0,potentially:!0,"0.":!0,Perhaps:!0,you:!0,meant:!0,to:!0,for:!0,or:!0,undefined:!0,"[2]?":!0,'[sketchy-null-number]"}]':!0},"// flowlint sketchy-null:error\nconst x: ?number = 0;\n\nif (x) {} // Error\n\n// flowlint-next-line sketchy-null:off\nif (x) {} // No Error\n\nif (x) {} /* flowlint-line sketchy-null:off */ // No Error\n\n// flowlint sketchy-null:off\nif (x) {} // No Error\nif (x) {} // No Error\n")),(0,o.mdx)("h3",{id:"toc-lint-settings-precedence"},"Lint Settings Precedence"),(0,o.mdx)("p",null,"Lint settings in ",(0,o.mdx)("inlineCode",{parentName:"p"},"flowlint")," comments have the highest priority, followed by lint rules in the ",(0,o.mdx)("inlineCode",{parentName:"p"},"--lints")," flag, followed by the ",(0,o.mdx)("inlineCode",{parentName:"p"},".flowconfig"),".\nThis order allows you to use ",(0,o.mdx)("inlineCode",{parentName:"p"},"flowlint")," comments for fine-grained linting control, the ",(0,o.mdx)("inlineCode",{parentName:"p"},"--lints")," flag for trying out new lint settings, and the ",(0,o.mdx)("inlineCode",{parentName:"p"},".flowconfig")," for stable project-wide settings."),(0,o.mdx)("p",null,"Within the ",(0,o.mdx)("inlineCode",{parentName:"p"},"--lints")," flag and the ",(0,o.mdx)("inlineCode",{parentName:"p"},".flowconfig"),", rules lower down override rules higher up, allowing you to write things like"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre"},"[lints]\n# warn on all sketchy-null checks\nsketchy-null=warn\n# ... except for booleans\nsketchy-null-bool=off\n")),(0,o.mdx)("p",null,"The lint settings parser is fairly intelligent and will stop you if you write a redundant rule, a rule that gets completely overwritten, or an unused flowlint suppression. This should prevent most accidental misconfigurations of lint rules."),(0,o.mdx)("h3",{id:"toc-severity-levels-and-meanings"},"Severity Levels and Meanings"),(0,o.mdx)("p",null,(0,o.mdx)("strong",{parentName:"p"},"off:"),"\nThe lint is ignored. Setting a lint to ",(0,o.mdx)("inlineCode",{parentName:"p"},"off")," is similar to suppressing a type error with a suppression comment, except with much more granularity."),(0,o.mdx)("p",null,(0,o.mdx)("strong",{parentName:"p"},"warn:"),"\nWarnings are a new severity level introduced by the linting framework. They are treated differently than errors in a couple of ways:"),(0,o.mdx)("ul",null,(0,o.mdx)("li",{parentName:"ul"},"Warnings don't affect the exit code of Flow. If Flow finds warnings but no errors, it still returns 0."),(0,o.mdx)("li",{parentName:"ul"},"Warnings aren't shown on the CLI by default, to avoid spew. CLI warnings can be\nenabled by passing the ",(0,o.mdx)("inlineCode",{parentName:"li"},"--include-warnings")," flag to the Flow server or the\nFlow client, or by setting ",(0,o.mdx)("inlineCode",{parentName:"li"},"include_warnings=true")," in the ",(0,o.mdx)("inlineCode",{parentName:"li"},".flowconfig"),".\nThis is good for smaller projects that want to see all project warnings at once.")),(0,o.mdx)("p",null,(0,o.mdx)("strong",{parentName:"p"},"error:"),"\nLints with severity ",(0,o.mdx)("inlineCode",{parentName:"p"},"error")," are treated exactly the same as any other Flow error."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4506.77a2991a.js b/assets/js/4506.77a2991a.js new file mode 100644 index 00000000000..1222b383227 --- /dev/null +++ b/assets/js/4506.77a2991a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4506],{64506:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>r,contentTitle:()=>s,default:()=>c,frontMatter:()=>l,metadata:()=>a,toc:()=>d});var o=i(87462),t=(i(67294),i(3905));i(45475);const l={title:".flowconfig [version]",slug:"/config/version"},s=void 0,a={unversionedId:"config/version",id:"config/version",title:".flowconfig [version]",description:"You can specify in the .flowconfig which version of Flow you expect to use.",source:"@site/docs/config/version.md",sourceDirName:"config",slug:"/config/version",permalink:"/en/docs/config/version",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/config/version.md",tags:[],version:"current",frontMatter:{title:".flowconfig [version]",slug:"/config/version"},sidebar:"docsSidebar",previous:{title:".flowconfig",permalink:"/en/docs/config"},next:{title:".flowconfig [options]",permalink:"/en/docs/config/options"}},r={},d=[],m={toc:d};function c(e){let{components:n,...i}=e;return(0,t.mdx)("wrapper",(0,o.Z)({},m,i,{components:n,mdxType:"MDXLayout"}),(0,t.mdx)("p",null,"You can specify in the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," which version of Flow you expect to use.\nYou do this with the ",(0,t.mdx)("inlineCode",{parentName:"p"},"[version]")," section. If this section is omitted or left\nblank, then any version is allowed. If a version is specified and not matched,\nthen Flow will immediately error and exit."),(0,t.mdx)("p",null,"So if you have the following in your ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig"),":"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[version]\n0.22.0\n")),(0,t.mdx)("p",null,"and you try to use Flow v0.21.0, then Flow will immediately error with the\nmessage"),(0,t.mdx)("p",null,(0,t.mdx)("inlineCode",{parentName:"p"},'"Wrong version of Flow. The config specifies version 0.22.0 but this is version\n0.21.0"')),(0,t.mdx)("p",null,"So far, we support the following ways to specify supported versions"),(0,t.mdx)("ul",null,(0,t.mdx)("li",{parentName:"ul"},"Explicit versions, (e.g. ",(0,t.mdx)("inlineCode",{parentName:"li"},"0.22.0"),", which only matches ",(0,t.mdx)("inlineCode",{parentName:"li"},"0.22.0"),")."),(0,t.mdx)("li",{parentName:"ul"},"Intersection ranges, which are ANDed together, (e.g. ",(0,t.mdx)("inlineCode",{parentName:"li"},">=0.13.0 <0.14.0"),",\nwhich matches ",(0,t.mdx)("inlineCode",{parentName:"li"},"0.13.0")," and ",(0,t.mdx)("inlineCode",{parentName:"li"},"0.13.5")," but not ",(0,t.mdx)("inlineCode",{parentName:"li"},"0.14.0"),")."),(0,t.mdx)("li",{parentName:"ul"},"Caret ranges, which allow changes that do not modify the left-most non-zero\ndigit (e.g. ",(0,t.mdx)("inlineCode",{parentName:"li"},"^0.13.0")," expands into ",(0,t.mdx)("inlineCode",{parentName:"li"},">=0.13.0 <0.14.0"),", and ",(0,t.mdx)("inlineCode",{parentName:"li"},"^0.13.1")," expands\ninto ",(0,t.mdx)("inlineCode",{parentName:"li"},">=0.13.1 <0.14.0"),", whereas ",(0,t.mdx)("inlineCode",{parentName:"li"},"^1.2.3")," expands into ",(0,t.mdx)("inlineCode",{parentName:"li"},">=1.2.3 <2.0.0"),").")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4508.81b19c11.js b/assets/js/4508.81b19c11.js new file mode 100644 index 00000000000..10bc91dd282 --- /dev/null +++ b/assets/js/4508.81b19c11.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4508],{94508:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var a=t(87462),o=(t(67294),t(3905));t(45475);const r={title:"Objects",slug:"/types/objects"},i=void 0,s={unversionedId:"types/objects",id:"types/objects",title:"Objects",description:"Objects can be used in many different ways in JavaScript.",source:"@site/docs/types/objects.md",sourceDirName:"types",slug:"/types/objects",permalink:"/en/docs/types/objects",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/objects.md",tags:[],version:"current",frontMatter:{title:"Objects",slug:"/types/objects"},sidebar:"docsSidebar",previous:{title:"Functions",permalink:"/en/docs/types/functions"},next:{title:"Arrays",permalink:"/en/docs/types/arrays"}},l={},p=[{value:"Optional object type properties",id:"toc-optional-object-type-properties",level:2},{value:"Read-only object properties",id:"read-only-object-properties",level:2},{value:"Object methods",id:"toc-object-methods",level:2},{value:"Object type inference",id:"toc-object-type-inference",level:2},{value:"Exact and inexact object types",id:"exact-and-inexact-object-types",level:2},{value:"Object type spread",id:"object-type-spread",level:2},{value:"Objects as maps",id:"toc-objects-as-maps",level:2},{value:"Keys, values, and indexed access",id:"keys-values-and-indexed-access",level:2},{value:"Arbitrary objects",id:"arbitrary-objects",level:2}],c={toc:p};function m(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Objects can be used in many different ways in JavaScript.\nThere are a number of ways to type them in order to support the different use cases."),(0,o.mdx)("ul",null,(0,o.mdx)("li",{parentName:"ul"},"Exact object types: An object which has exactly a set of properties, e.g. ",(0,o.mdx)("inlineCode",{parentName:"li"},"{a: number}"),". We recommend using exact object types rather than inexact ones, as they are more precise and interact better with other type system features, like ",(0,o.mdx)("a",{parentName:"li",href:"#object-type-spread"},"spreads"),"."),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("a",{parentName:"li",href:"#exact-and-inexact-object-types"},"Inexact object types"),": An object with at least a set of properties, but potentially other, unknown ones, e.g. ",(0,o.mdx)("inlineCode",{parentName:"li"},"{a: number, ...}"),"."),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("a",{parentName:"li",href:"#toc-objects-as-maps"},"Objects with indexers"),": An object that can used as a map from a key type to a value type, e.g. ",(0,o.mdx)("inlineCode",{parentName:"li"},"{[string]: boolean}"),"."),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("a",{parentName:"li",href:"../interfaces"},"Interfaces"),": Interfaces are separate from object types. Only they can describe instances of classes. E.g. ",(0,o.mdx)("inlineCode",{parentName:"li"},"interfaces {a: number}"),".")),(0,o.mdx)("p",null,"Object types try to match the syntax for objects in JavaScript as much as\npossible. Using curly braces ",(0,o.mdx)("inlineCode",{parentName:"p"},"{}")," and name-value pairs using a colon ",(0,o.mdx)("inlineCode",{parentName:"p"},":")," split\nby commas ",(0,o.mdx)("inlineCode",{parentName:"p"},","),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const obj1: {foo: boolean} = {foo: true};\nconst obj2: {\n foo: number,\n bar: boolean,\n baz: string,\n} = {\n foo: 1,\n bar: true,\n baz: 'three',\n};\n")),(0,o.mdx)("h2",{id:"toc-optional-object-type-properties"},"Optional object type properties"),(0,o.mdx)("p",null,"In JavaScript, accessing a property that doesn't exist evaluates to\n",(0,o.mdx)("inlineCode",{parentName:"p"},"undefined"),". This is a common source of errors in JavaScript programs, so Flow\nturns these into type errors."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":5,"endLine":2,"endColumn":7,"description":"Cannot get `obj.bar` because property `bar` is missing in object literal [1]. [prop-missing]"}]','[{"startLine":2,"startColumn":5,"endLine":2,"endColumn":7,"description":"Cannot':!0,get:!0,"`obj.bar`":!0,because:!0,property:!0,"`bar`":!0,is:!0,missing:!0,in:!0,object:!0,literal:!0,"[1].":!0,'[prop-missing]"}]':!0},'const obj = {foo: "bar"};\nobj.bar; // Error!\n')),(0,o.mdx)("p",null,"If you have an object that sometimes does not have a property you can make it\nan ",(0,o.mdx)("em",{parentName:"p"},"optional property")," by adding a question mark ",(0,o.mdx)("inlineCode",{parentName:"p"},"?")," after the property name in\nthe object type."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":11,"endLine":4,"endColumn":17,"description":"Cannot assign `\'hello\'` to `obj.foo` because string [1] is incompatible with boolean [2]. [incompatible-type]"}]','[{"startLine":4,"startColumn":11,"endLine":4,"endColumn":17,"description":"Cannot':!0,assign:!0,"`'hello'`":!0,to:!0,"`obj.foo`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,boolean:!0,"[2].":!0,'[incompatible-type]"}]':!0},"const obj: {foo?: boolean} = {};\n\nobj.foo = true; // Works!\nobj.foo = 'hello'; // Error!\n")),(0,o.mdx)("p",null,"In addition to their set value type, these optional properties can either be\n",(0,o.mdx)("inlineCode",{parentName:"p"},"void")," or omitted altogether. However, they cannot be ",(0,o.mdx)("inlineCode",{parentName:"p"},"null"),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":21,"endLine":7,"endColumn":24,"description":"Cannot call `acceptsObject` with object literal bound to `value` because null [1] is incompatible with string [2] in property `foo`. [incompatible-call]"}]','[{"startLine":7,"startColumn":21,"endLine":7,"endColumn":24,"description":"Cannot':!0,call:!0,"`acceptsObject`":!0,with:!0,object:!0,literal:!0,bound:!0,to:!0,"`value`":!0,because:!0,null:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2]":!0,in:!0,property:!0,"`foo`.":!0,'[incompatible-call]"}]':!0},'function acceptsObject(value: {foo?: string}) { /* ... */ }\n\nacceptsObject({foo: "bar"}); // Works!\nacceptsObject({foo: undefined}); // Works!\nacceptsObject({}); // Works!\n\nacceptsObject({foo: null}); // Error!\n')),(0,o.mdx)("p",null,"To make all properties in an object type optional, you can use the ",(0,o.mdx)("a",{parentName:"p",href:"../utilities/#toc-partial"},(0,o.mdx)("inlineCode",{parentName:"a"},"Partial"))," utility type:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Obj = {\n foo: string,\n};\n\ntype PartialObj = Partial; // Same as `{foo?: string}`\n")),(0,o.mdx)("p",null,"To make all properties in an object type required, you can use the ",(0,o.mdx)("a",{parentName:"p",href:"../utilities/#toc-required"},(0,o.mdx)("inlineCode",{parentName:"a"},"Required"))," utility type:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type PartialObj = {\n foo?: string,\n};\n\ntype Obj = Required; // Same as `{foo: string}`\n")),(0,o.mdx)("h2",{id:"read-only-object-properties"},"Read-only object properties"),(0,o.mdx)("p",null,"You can add ",(0,o.mdx)("a",{parentName:"p",href:"../../lang/variance"},"variance")," annotations to your object properties."),(0,o.mdx)("p",null,"To mark a property as read-only, you can use the ",(0,o.mdx)("inlineCode",{parentName:"p"},"+"),":"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":5,"endLine":7,"endColumn":7,"description":"Cannot assign `\'hi\'` to `o.foo` because property `foo` is not writable. [cannot-write]"}]','[{"startLine":7,"startColumn":5,"endLine":7,"endColumn":7,"description":"Cannot':!0,assign:!0,"`'hi'`":!0,to:!0,"`o.foo`":!0,because:!0,property:!0,"`foo`":!0,is:!0,not:!0,"writable.":!0,'[cannot-write]"}]':!0},"type Obj = {\n +foo: string,\n};\n\nfunction func(o: Obj) {\n const x: string = o.foo; // Works!\n o.foo = 'hi'; // Error!\n}\n")),(0,o.mdx)("p",null,"To make all object properties in an object type read-only, you can use the ",(0,o.mdx)("a",{parentName:"p",href:"../utilities/#toc-readonly"},(0,o.mdx)("inlineCode",{parentName:"a"},"$ReadOnly"))," utility type:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Obj = {\n foo: string,\n};\n\ntype ReadOnlyObj = $ReadOnly; // Same as `{+foo: string}`\n")),(0,o.mdx)("p",null,"You can also mark your properties as write-only with ",(0,o.mdx)("inlineCode",{parentName:"p"},"-"),":"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":23,"endLine":6,"endColumn":25,"description":"Cannot get `o.foo` because property `foo` is not readable. [cannot-read]"}]','[{"startLine":6,"startColumn":23,"endLine":6,"endColumn":25,"description":"Cannot':!0,get:!0,"`o.foo`":!0,because:!0,property:!0,"`foo`":!0,is:!0,not:!0,"readable.":!0,'[cannot-read]"}]':!0},"type Obj = {\n -foo: string,\n};\n\nfunction func(o: Obj) {\n const x: string = o.foo; // Error!\n o.foo = 'hi'; // Works!\n}\n")),(0,o.mdx)("h2",{id:"toc-object-methods"},"Object methods"),(0,o.mdx)("p",null,"Method syntax in objects has the same runtime behavior as a function property. These two objects are equivalent at runtime:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const a = {\n foo: function () { return 3; }\n};\nconst b = {\n foo() { return 3; }\n}\n")),(0,o.mdx)("p",null,"However, despite their equivalent runtime behavior, Flow checks them slightly differently. In particular, object\nproperties written with method syntax are ",(0,o.mdx)("a",{parentName:"p",href:"../../lang/variance"},"read-only"),"; Flow will not allow you to write a new value to them."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":3,"endLine":4,"endColumn":5,"description":"Cannot assign function to `b.foo` because property `foo` is not writable. [cannot-write]"}]','[{"startLine":4,"startColumn":3,"endLine":4,"endColumn":5,"description":"Cannot':!0,assign:!0,function:!0,to:!0,"`b.foo`":!0,because:!0,property:!0,"`foo`":!0,is:!0,not:!0,"writable.":!0,'[cannot-write]"}]':!0},"const b = {\n foo() { return 3; }\n}\nb.foo = () => { return 2; } // Error!\n")),(0,o.mdx)("p",null,"Additionally, object methods do not allow the use of ",(0,o.mdx)("inlineCode",{parentName:"p"},"this")," in their bodies, in order to guarantee simple behavior\nfor their ",(0,o.mdx)("inlineCode",{parentName:"p"},"this")," parameters. Prefer to reference the object by name instead of using ",(0,o.mdx)("inlineCode",{parentName:"p"},"this"),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":18,"endLine":3,"endColumn":21,"description":"Cannot reference `this` from within method `foo` [1]. For safety, Flow restricts access to `this` inside object methods since these methods may be unbound and rebound. Consider replacing the reference to `this` with the name of the object, or rewriting the object as a class. [object-this-reference]"}]','[{"startLine":3,"startColumn":18,"endLine":3,"endColumn":21,"description":"Cannot':!0,reference:!0,"`this`":!0,from:!0,within:!0,method:!0,"`foo`":!0,"[1].":!0,For:!0,"safety,":!0,Flow:!0,restricts:!0,access:!0,to:!0,inside:!0,object:!0,methods:!0,since:!0,these:!0,may:!0,be:!0,unbound:!0,and:!0,"rebound.":!0,Consider:!0,replacing:!0,the:!0,with:!0,name:!0,of:!0,"object,":!0,or:!0,rewriting:!0,as:!0,a:!0,"class.":!0,'[object-this-reference]"}]':!0},"const a = {\n x: 3,\n foo() { return this.x; } // Error!\n}\nconst b = {\n x: 3,\n foo(): number { return b.x; } // Works!\n}\n")),(0,o.mdx)("h2",{id:"toc-object-type-inference"},"Object type inference"),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},"NOTE: The behavior of empty object literals has changed in version 0.191 -\nsee this ",(0,o.mdx)("a",{parentName:"p",href:"https://medium.com/flow-type/improved-handling-of-the-empty-object-in-flow-ead91887e40c"},"blog post")," for more details.")),(0,o.mdx)("p",null,"When you create an object value, its type is set at the creation point. You cannot add new properties,\nor modify the type of existing properties."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":5,"endLine":9,"endColumn":11,"description":"Cannot get `obj.UNKNOWN` because property `UNKNOWN` is missing in object literal [1]. [prop-missing]"},{"startLine":10,"startColumn":11,"endLine":10,"endColumn":14,"description":"Cannot assign `true` to `obj.foo` because boolean [1] is incompatible with number [2]. [incompatible-type]"}]','[{"startLine":9,"startColumn":5,"endLine":9,"endColumn":11,"description":"Cannot':!0,get:!0,"`obj.UNKNOWN`":!0,because:!0,property:!0,"`UNKNOWN`":!0,is:!0,missing:!0,in:!0,object:!0,literal:!0,"[1].":!0,'[prop-missing]"},{"startLine":10,"startColumn":11,"endLine":10,"endColumn":14,"description":"Cannot':!0,assign:!0,"`true`":!0,to:!0,"`obj.foo`":!0,boolean:!0,"[1]":!0,incompatible:!0,with:!0,number:!0,"[2].":!0,'[incompatible-type]"}]':!0},"const obj = {\n foo: 1,\n bar: true,\n};\n\nconst n: number = obj.foo; // Works!\nconst b: boolean = obj.bar; // Works!\n\nobj.UNKNOWN; // Error - prop `UNKNOWN` is not in the object value\nobj.foo = true; // Error - `foo` is of type `number`\n")),(0,o.mdx)("p",null,"If you supply a type annotation, you can add properties missing in the object value as optional properties:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const obj: {\n foo?: number,\n bar: boolean,\n} = {\n // `foo` is not set here\n bar: true,\n};\n\nconst n: number | void = obj.foo; // Works!\nconst b: boolean = obj.bar; // Works!\n\nif (b) {\n obj.foo = 3; // Works!\n}\n")),(0,o.mdx)("p",null,"You can also give a wider type for a particular property:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'const obj: {\n foo: number | string,\n} = {\n foo: 1,\n};\n\nconst foo: number | string = obj.foo; // Works!\nobj.foo = "hi"; // Works!\n')),(0,o.mdx)("p",null,"The empty object can be interpreted as a ",(0,o.mdx)("a",{parentName:"p",href:"#toc-objects-as-maps"},"dictionary"),", if you supply the appropriate type annotation:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const dict: {[string]: number} = {}; // Works!\n")),(0,o.mdx)("p",null,"You may need to add type annotations to an object literal, if it references itself recursively (beyond simple cases):"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":7,"endLine":1,"endColumn":11,"description":"Cannot compute a type for `Utils` because its definition includes references to itself [1]. Please add an annotation to these definitions [2] [3] [recursive-definition]"}]','[{"startLine":1,"startColumn":7,"endLine":1,"endColumn":11,"description":"Cannot':!0,compute:!0,a:!0,type:!0,for:!0,"`Utils`":!0,because:!0,its:!0,definition:!0,includes:!0,references:!0,to:!0,itself:!0,"[1].":!0,Please:!0,add:!0,an:!0,annotation:!0,these:!0,definitions:!0,"[2]":!0,"[3]":!0,'[recursive-definition]"}]':!0},"const Utils = { // Error\n foo() {\n return Utils.bar();\n },\n bar() {\n return 1;\n }\n};\n\nconst FixedUtils = { // Works!\n foo(): number {\n return FixedUtils.bar();\n },\n bar(): number {\n return 1;\n }\n};\n")),(0,o.mdx)("h2",{id:"exact-and-inexact-object-types"},"Exact and inexact object types"),(0,o.mdx)("p",null,"Exact object types are the default (as of version 0.202), unless you have set ",(0,o.mdx)("a",{parentName:"p",href:"../../config/options#toc-exact-by-default"},(0,o.mdx)("inlineCode",{parentName:"a"},"exact_by_default=false"))," in your ",(0,o.mdx)("inlineCode",{parentName:"p"},".flowconfig"),"."),(0,o.mdx)("p",null,"Inexact objects (denoted with the ",(0,o.mdx)("inlineCode",{parentName:"p"},"..."),") allow extra properties to be passed in:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function method(obj: {foo: string, ...}) { /* ... */ }\n\nmethod({foo: "test", bar: 42}); // Works!\n')),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},(0,o.mdx)("strong",{parentName:"p"},"Note:")," This is because of ",(0,o.mdx)("a",{parentName:"p",href:"../../lang/width-subtyping"},'"width subtyping"'),".")),(0,o.mdx)("p",null,"But exact object types do not:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":8,"endLine":3,"endColumn":29,"description":"Cannot call `method` with object literal bound to `obj` because property `bar` is missing in object type [1] but exists in object literal [2]. [prop-missing]"}]','[{"startLine":3,"startColumn":8,"endLine":3,"endColumn":29,"description":"Cannot':!0,call:!0,"`method`":!0,with:!0,object:!0,literal:!0,bound:!0,to:!0,"`obj`":!0,because:!0,property:!0,"`bar`":!0,is:!0,missing:!0,in:!0,type:!0,"[1]":!0,but:!0,exists:!0,"[2].":!0,'[prop-missing]"}]':!0},'function method(obj: {foo: string}) { /* ... */ }\n\nmethod({foo: "test", bar: 42}); // Error!\n')),(0,o.mdx)("p",null,"If you have set ",(0,o.mdx)("inlineCode",{parentName:"p"},"exact_by_default=false"),', you can denote exact object types by adding a pair of "vertical bars" or "pipes" to the inside of the curly braces:'),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":28,"endLine":1,"endColumn":56,"description":"Cannot assign object literal to `x` because property `bar` is missing in object type [1] but exists in object literal [2]. [prop-missing]"}]','[{"startLine":1,"startColumn":28,"endLine":1,"endColumn":56,"description":"Cannot':!0,assign:!0,object:!0,literal:!0,to:!0,"`x`":!0,because:!0,property:!0,"`bar`":!0,is:!0,missing:!0,in:!0,type:!0,"[1]":!0,but:!0,exists:!0,"[2].":!0,'[prop-missing]"}]':!0},'const x: {|foo: string|} = {foo: "Hello", bar: "World!"}; // Error!\n')),(0,o.mdx)("p",null,(0,o.mdx)("a",{parentName:"p",href:"../intersections"},"Intersections")," of exact object types may not work as you expect. If you need to combine exact object types, use ",(0,o.mdx)("a",{parentName:"p",href:"#object-type-spread"},"object type spread"),":"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":8,"startColumn":33,"endLine":8,"endColumn":53,"description":"Cannot assign object literal to `fooBarFail` because property `bar` is missing in `FooT` [1] but exists in object literal [2]. [prop-missing]"},{"startLine":8,"startColumn":33,"endLine":8,"endColumn":53,"description":"Cannot assign object literal to `fooBarFail` because property `foo` is missing in `BarT` [1] but exists in object literal [2]. [prop-missing]"}]','[{"startLine":8,"startColumn":33,"endLine":8,"endColumn":53,"description":"Cannot':!0,assign:!0,object:!0,literal:!0,to:!0,"`fooBarFail`":!0,because:!0,property:!0,"`bar`":!0,is:!0,missing:!0,in:!0,"`FooT`":!0,"[1]":!0,but:!0,exists:!0,"[2].":!0,'[prop-missing]"},{"startLine":8,"startColumn":33,"endLine":8,"endColumn":53,"description":"Cannot':!0,"`foo`":!0,"`BarT`":!0,'[prop-missing]"}]':!0},"type FooT = {foo: string};\ntype BarT = {bar: number};\n\ntype FooBarT = {...FooT, ...BarT};\nconst fooBar: FooBarT = {foo: '123', bar: 12}; // Works!\n\ntype FooBarFailT = FooT & BarT;\nconst fooBarFail: FooBarFailT = {foo: '123', bar: 12}; // Error!\n")),(0,o.mdx)("h2",{id:"object-type-spread"},"Object type spread"),(0,o.mdx)("p",null,"Just like you can spread object values, you can also spread object types:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type ObjA = {\n a: number,\n b: string,\n};\n\nconst x: ObjA = {a: 1, b: \"hi\"};\n\ntype ObjB = {\n ...ObjA,\n c: boolean,\n};\n\nconst y: ObjB = {a: 1, b: 'hi', c: true}; // Works!\nconst z: ObjB = {...x, c: true}; // Works!\n")),(0,o.mdx)("p",null,"You have to be careful spreading inexact objects.\nThe resulting object must also be inexact,\nand the spread inexact object may have unknown properties that can override previous properties in unknown ways:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":13,"endLine":10,"endColumn":1,"description":"Flow cannot determine a type for object type [1]. `Inexact` [2] is inexact, so it may contain `c` with a type that conflicts with `c`\'s definition in object type [1]. Try making `Inexact` [2] exact. [cannot-spread-inexact]"},{"startLine":9,"startColumn":6,"endLine":9,"endColumn":12,"description":"inexact `Inexact` [1] is incompatible with exact object type [2]. [incompatible-exact]"}]','[{"startLine":7,"startColumn":13,"endLine":10,"endColumn":1,"description":"Flow':!0,cannot:!0,determine:!0,a:!0,type:!0,for:!0,object:!0,"[1].":!0,"`Inexact`":!0,"[2]":!0,is:!0,"inexact,":!0,so:!0,it:!0,may:!0,contain:!0,"`c`":!0,with:!0,that:!0,conflicts:!0,"`c`'s":!0,definition:!0,in:!0,Try:!0,making:!0,"exact.":!0,'[cannot-spread-inexact]"},{"startLine":9,"startColumn":6,"endLine":9,"endColumn":12,"description":"inexact':!0,"[1]":!0,incompatible:!0,exact:!0,"[2].":!0,'[incompatible-exact]"}]':!0},"type Inexact = {\n a: number,\n b: string,\n ...\n};\n\ntype ObjB = { // Error!\n c: boolean,\n ...Inexact,\n};\n\nconst x: ObjB = {a:1, b: 'hi', c: true};\n")),(0,o.mdx)("p",null,"The same issue exists with objects with ",(0,o.mdx)("a",{parentName:"p",href:"#toc-objects-as-maps"},"indexers"),", as they also have unknown keys:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":13,"endLine":8,"endColumn":1,"description":"Flow cannot determine a type for object type [1]. `Dict` [2] cannot be spread because the indexer string [3] may overwrite properties with explicit keys in a way that Flow cannot track. Try spreading `Dict` [2] first or remove the indexer. [cannot-spread-indexer]"}]','[{"startLine":5,"startColumn":13,"endLine":8,"endColumn":1,"description":"Flow':!0,cannot:!0,determine:!0,a:!0,type:!0,for:!0,object:!0,"[1].":!0,"`Dict`":!0,"[2]":!0,be:!0,spread:!0,because:!0,the:!0,indexer:!0,string:!0,"[3]":!0,may:!0,overwrite:!0,properties:!0,with:!0,explicit:!0,keys:!0,in:!0,way:!0,that:!0,Flow:!0,"track.":!0,Try:!0,spreading:!0,first:!0,or:!0,remove:!0,"indexer.":!0,'[cannot-spread-indexer]"}]':!0},"type Dict = {\n [string]: number,\n};\n\ntype ObjB = { // Error!\n c: boolean,\n ...Dict,\n};\n\nconst x: ObjB = {a: 1, b: 2, c: true};\n")),(0,o.mdx)("p",null,'Spreading an object value at runtime only spreads "own" properties, that is properties that are on the object directly, not the prototype chain.\nObject type spread works in the same way.\nBecause of this, you can\'t spread ',(0,o.mdx)("a",{parentName:"p",href:"../interfaces"},"interfaces"),', as they don\'t track whether a property is "own" or not:'),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":13,"endLine":9,"endColumn":1,"description":"Flow cannot determine a type for object type [1]. `Iface` [2] cannot be spread because interfaces do not track the own-ness of their properties. Try using an object type instead. [cannot-spread-interface]"}]','[{"startLine":6,"startColumn":13,"endLine":9,"endColumn":1,"description":"Flow':!0,cannot:!0,determine:!0,a:!0,type:!0,for:!0,object:!0,"[1].":!0,"`Iface`":!0,"[2]":!0,be:!0,spread:!0,because:!0,interfaces:!0,do:!0,not:!0,track:!0,the:!0,"own-ness":!0,of:!0,their:!0,"properties.":!0,Try:!0,using:!0,an:!0,"instead.":!0,'[cannot-spread-interface]"}]':!0},"interface Iface {\n a: number;\n b: string;\n}\n\ntype ObjB = { // Error!\n c: boolean,\n ...Iface,\n};\n\nconst x: ObjB = {a: 1, b: 'hi', c: true};\n")),(0,o.mdx)("h2",{id:"toc-objects-as-maps"},"Objects as maps"),(0,o.mdx)("p",null,"JavaScript includes a ",(0,o.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map"},(0,o.mdx)("inlineCode",{parentName:"a"},"Map"))," class,\nbut it is still very common to use objects as maps as well. In this use case, an object\nwill likely have properties added to it and retrieved throughout its lifecycle.\nFurthermore, the property keys may not even be known statically, so writing out\na type annotation would not be possible."),(0,o.mdx)("p",null,'For objects like these, Flow provides a special kind of property, called an\n"indexer property." An indexer property allows reads and writes using any key\nthat matches the indexer key type.'),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'const o: {[string]: number} = {};\no["foo"] = 0;\no["bar"] = 1;\nconst foo: number = o["foo"];\n')),(0,o.mdx)("p",null,"An indexer can be optionally named, for documentation purposes:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'const obj: {[user_id: number]: string} = {};\nobj[1] = "Julia";\nobj[2] = "Camille";\nobj[3] = "Justin";\nobj[4] = "Mark";\n')),(0,o.mdx)("p",null,"When an object type has an indexer property, property accesses are assumed to\nhave the annotated type, even if the object does not have a value in that slot\nat runtime. It is the programmer's responsibility to ensure the access is safe,\nas with arrays."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const obj: {[number]: string} = {};\nobj[42].length; // No type error, but will throw at runtime\n")),(0,o.mdx)("p",null,"Indexer properties can be mixed with named properties:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const obj: {\n size: number,\n [id: number]: string\n} = {\n size: 0\n};\n\nfunction add(id: number, name: string) {\n obj[id] = name;\n obj.size++;\n}\n")),(0,o.mdx)("p",null,"You can mark an indexer property as read-only (or write-only) using ",(0,o.mdx)("a",{parentName:"p",href:"../../lang/variance"},"variance")," annotations:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type ReadOnly = {+[string]: number};\ntype WriteOnly = {-[string]: number};\n")),(0,o.mdx)("h2",{id:"keys-values-and-indexed-access"},"Keys, values, and indexed access"),(0,o.mdx)("p",null,"You can extract the keys of an object type using the ",(0,o.mdx)("a",{parentName:"p",href:"../utilities/#toc-keys"},(0,o.mdx)("inlineCode",{parentName:"a"},"$Keys"))," utility type:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":12,"startColumn":13,"endLine":12,"endColumn":16,"description":"Cannot call `acceptsKeys` with `\'hi\'` bound to `k` because property `hi` is missing in `Obj` [1]. [prop-missing]"}]','[{"startLine":12,"startColumn":13,"endLine":12,"endColumn":16,"description":"Cannot':!0,call:!0,"`acceptsKeys`":!0,with:!0,"`'hi'`":!0,bound:!0,to:!0,"`k`":!0,because:!0,property:!0,"`hi`":!0,is:!0,missing:!0,in:!0,"`Obj`":!0,"[1].":!0,'[prop-missing]"}]':!0},"type Obj = {\n foo: string,\n bar: number,\n};\n\ntype T = $Keys;\n\nfunction acceptsKeys(k: T) { /* ... */ }\n\nacceptsKeys('foo'); // Works!\nacceptsKeys('bar'); // Works!\nacceptsKeys('hi'); // Error!\n")),(0,o.mdx)("p",null,"You can extract the values of an object type using the ",(0,o.mdx)("a",{parentName:"p",href:"../utilities/#toc-values"},(0,o.mdx)("inlineCode",{parentName:"a"},"$Values"))," utility type:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":12,"startColumn":15,"endLine":12,"endColumn":18,"description":"Cannot call `acceptsValues` with `true` bound to `v` because: [incompatible-call] Either boolean [1] is incompatible with string [2]. Or boolean [1] is incompatible with number [3]."}]','[{"startLine":12,"startColumn":15,"endLine":12,"endColumn":18,"description":"Cannot':!0,call:!0,"`acceptsValues`":!0,with:!0,"`true`":!0,bound:!0,to:!0,"`v`":!0,"because:":!0,"[incompatible-call]":!0,Either:!0,boolean:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2].":!0,Or:!0,number:!0,'[3]."}]':!0},"type Obj = {\n foo: string,\n bar: number,\n};\n\ntype T = $Values;\n\nfunction acceptsValues(v: T) { /* ... */ }\n\nacceptsValues(2); // Works!\nacceptsValues('hi'); // Works!\nacceptsValues(true); // Error!\n")),(0,o.mdx)("p",null,"You can get the type of an object type's specific property using ",(0,o.mdx)("a",{parentName:"p",href:"../indexed-access"},"indexed access types"),":"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":11,"startColumn":12,"endLine":11,"endColumn":12,"description":"Cannot call `acceptsStr` with `1` bound to `x` because number [1] is incompatible with string [2]. [incompatible-call]"}]','[{"startLine":11,"startColumn":12,"endLine":11,"endColumn":12,"description":"Cannot':!0,call:!0,"`acceptsStr`":!0,with:!0,"`1`":!0,bound:!0,to:!0,"`x`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2].":!0,'[incompatible-call]"}]':!0},"type Obj = {\n foo: string,\n bar: number,\n};\n\ntype T = Obj['foo'];\n\nfunction acceptsStr(x: T) { /* ... */ }\n\nacceptsStr('hi'); // Works!\nacceptsStr(1); // Error!\n")),(0,o.mdx)("h2",{id:"arbitrary-objects"},"Arbitrary objects"),(0,o.mdx)("p",null,"If you want to accept an arbitrary object safely, there are a couple of patterns you could use."),(0,o.mdx)("p",null,"An empty inexact object ",(0,o.mdx)("inlineCode",{parentName:"p"},"{...}")," accepts any object:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(obj: {...}) {\n // ...\n}\n\nfunc({}); // Works!\nfunc({a: 1, b: "foo"}); // Works!\n')),(0,o.mdx)("p",null,"It's often the right choice for a ",(0,o.mdx)("a",{parentName:"p",href:"../generics"},"generic")," bounded to accept any object:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(obj: T) {\n // ...\n}\n\nfunc({}); // Works!\nfunc({a: 1, b: "foo"}); // Works!\n')),(0,o.mdx)("p",null,"However, you can't access any properties off of ",(0,o.mdx)("inlineCode",{parentName:"p"},"{...}"),"."),(0,o.mdx)("p",null,"You can also try using a ",(0,o.mdx)("a",{parentName:"p",href:"#toc-objects-as-maps"},"dictionary")," with ",(0,o.mdx)("a",{parentName:"p",href:"../mixed"},(0,o.mdx)("inlineCode",{parentName:"a"},"mixed"))," values, which would allow you to access any property (with a resulting ",(0,o.mdx)("inlineCode",{parentName:"p"},"mixed")," type):"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(obj: {+[string]: mixed}) {\n const x: mixed = obj['bar'];\n}\n\nfunc({}); // Works!\nfunc({a: 1, b: \"foo\"}); // Works!\n")),(0,o.mdx)("p",null,"The type ",(0,o.mdx)("inlineCode",{parentName:"p"},"Object")," is just an alias for ",(0,o.mdx)("a",{parentName:"p",href:"../any"},(0,o.mdx)("inlineCode",{parentName:"a"},"any")),", and is unsafe.\nYou can ban its use in your code with the ",(0,o.mdx)("a",{parentName:"p",href:"../../linting/rule-reference/#toc-unclear-type"},"unclear-type lint"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4511.4e5e46a7.js b/assets/js/4511.4e5e46a7.js new file mode 100644 index 00000000000..2279ab98f27 --- /dev/null +++ b/assets/js/4511.4e5e46a7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4511],{4511:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>m,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>d});var s=t(87462),n=(t(67294),t(3905));const a={title:"Coming Soon: Changes to Object Spreads","short-title":"Changes to Object Spreads",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/coming-soon-changes-to-object-spreads-73204aef84e1"},r=void 0,i={permalink:"/blog/2019/08/20/Changes-to-Object-Spreads",source:"@site/blog/2019-08-20-Changes-to-Object-Spreads.md",title:"Coming Soon: Changes to Object Spreads",description:"Changes are coming to how Flow models object spreads! Learn more in this post.",date:"2019-08-20T00:00:00.000Z",formattedDate:"August 20, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Coming Soon: Changes to Object Spreads","short-title":"Changes to Object Spreads",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/coming-soon-changes-to-object-spreads-73204aef84e1"},prevItem:{title:"Live Flow errors in your IDE",permalink:"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE"},nextItem:{title:"Upgrading Flow Codebases",permalink:"/blog/2019/4/9/Upgrading-Flow-Codebases"}},m={authorsImageUrls:[void 0]},d=[],l={toc:d};function p(e){let{components:o,...t}=e;return(0,n.mdx)("wrapper",(0,s.Z)({},l,t,{components:o,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"Changes are coming to how Flow models object spreads! Learn more in this post."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4588.f2f9f239.js b/assets/js/4588.f2f9f239.js new file mode 100644 index 00000000000..179ac8a379a --- /dev/null +++ b/assets/js/4588.f2f9f239.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4588],{54588:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>u,toc:()=>l});var o=n(87462),s=(n(67294),n(3905));const a={title:"Flow can now detect unused Promises","short-title":"Flow can now detect unused Promises",author:"David Richey","medium-link":"https://medium.com/flow-type/flow-can-now-detect-unused-promises-b49341256640"},i=void 0,u={permalink:"/blog/2023/04/10/Unused-Promise",source:"@site/blog/2023-04-10-Unused-Promise.md",title:"Flow can now detect unused Promises",description:"As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous,",date:"2023-04-10T00:00:00.000Z",formattedDate:"April 10, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"David Richey"}],frontMatter:{title:"Flow can now detect unused Promises","short-title":"Flow can now detect unused Promises",author:"David Richey","medium-link":"https://medium.com/flow-type/flow-can-now-detect-unused-promises-b49341256640"},prevItem:{title:"Announcing 5 new Flow tuple type features",permalink:"/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features"},nextItem:{title:"Announcing Partial & Required Flow utility types + catch annotations",permalink:"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations"}},r={authorsImageUrls:[void 0]},l=[],d={toc:l};function c(e){let{components:t,...n}=e;return(0,s.mdx)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous,\nbecause errors are potentially unhandled, and the code may not execute in the intended order. They are\nusually mistakes that Flow is perfectly positioned to warn you about."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4702.38902698.js b/assets/js/4702.38902698.js new file mode 100644 index 00000000000..adbe2764707 --- /dev/null +++ b/assets/js/4702.38902698.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4702],{94702:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>m,frontMatter:()=>u,metadata:()=>r,toc:()=>p});var o=n(87462),l=(n(67294),n(3905));const u={title:"Announcing 5 new Flow tuple type features","short-title":"Announcing 5 new Flow tuple type features",author:"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-5-new-flow-tuple-type-features-ff4d7f11c50a"},a=void 0,r={permalink:"/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features",source:"@site/blog/2023-08-17-Announcing-5-new-Flow-tuple-type-features.md",title:"Announcing 5 new Flow tuple type features",description:"Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more.",date:"2023-08-17T00:00:00.000Z",formattedDate:"August 17, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Announcing 5 new Flow tuple type features","short-title":"Announcing 5 new Flow tuple type features",author:"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-5-new-flow-tuple-type-features-ff4d7f11c50a"},nextItem:{title:"Flow can now detect unused Promises",permalink:"/blog/2023/04/10/Unused-Promise"}},s={authorsImageUrls:[void 0]},p=[],i={toc:p};function m(e){let{components:t,...n}=e;return(0,l.mdx)("wrapper",(0,o.Z)({},i,n,{components:t,mdxType:"MDXLayout"}),(0,l.mdx)("p",null,"Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4721.175dbe5c.js b/assets/js/4721.175dbe5c.js new file mode 100644 index 00000000000..1b81444a150 --- /dev/null +++ b/assets/js/4721.175dbe5c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4721],{74721:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>b,frontMatter:()=>o,metadata:()=>r,toc:()=>i});var n=a(87462),s=(a(67294),a(3905));a(45475);const o={title:"Babel",slug:"/tools/babel"},l=void 0,r={unversionedId:"tools/babel",id:"tools/babel",title:"Babel",description:"Flow and Babel are designed to work great together. It",source:"@site/docs/tools/babel.md",sourceDirName:"tools",slug:"/tools/babel",permalink:"/en/docs/tools/babel",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/tools/babel.md",tags:[],version:"current",frontMatter:{title:"Babel",slug:"/tools/babel"},sidebar:"docsSidebar",previous:{title:".flowconfig [lints]",permalink:"/en/docs/config/lints"},next:{title:"ESLint",permalink:"/en/docs/tools/eslint"}},p={},i=[],d={toc:i};function b(e){let{components:t,...a}=e;return(0,s.mdx)("wrapper",(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Flow and ",(0,s.mdx)("a",{parentName:"p",href:"http://babeljs.io/"},"Babel")," are designed to work great together. It\ntakes just a few steps to set them up together."),(0,s.mdx)("p",null,"If you don't have Babel setup already, you can do that by following\n",(0,s.mdx)("a",{parentName:"p",href:"http://babeljs.io/docs/setup/"},"this guide"),"."),(0,s.mdx)("p",null,"Once you have Babel setup, install ",(0,s.mdx)("inlineCode",{parentName:"p"},"@babel/preset-flow")," and ",(0,s.mdx)("inlineCode",{parentName:"p"},"babel-plugin-syntax-hermes-parser")," with either\n",(0,s.mdx)("a",{parentName:"p",href:"https://yarnpkg.com/"},"Yarn")," or ",(0,s.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/"},"npm"),"."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-sh"},"yarn add --dev @babel/preset-flow babel-plugin-syntax-hermes-parser\n# or\nnpm install --save-dev @babel/preset-flow babel-plugin-syntax-hermes-parser\n")),(0,s.mdx)("p",null,"Then add the ",(0,s.mdx)("inlineCode",{parentName:"p"},"@babel/preset-flow")," preset and ",(0,s.mdx)("inlineCode",{parentName:"p"},"babel-plugin-syntax-hermes-parser")," plugin to your Babel config."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-json"},'{\n "presets": ["@babel/preset-flow"],\n "plugins": ["babel-plugin-syntax-hermes-parser"],\n}\n')),(0,s.mdx)("p",null,"You can read the documentation of ",(0,s.mdx)("a",{parentName:"p",href:"https://github.com/facebook/hermes/blob/main/tools/hermes-parser/js/babel-plugin-syntax-hermes-parser/README.md"},"babel-plugin-syntax-hermes-parser")," to see how to configure it. ",(0,s.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/baa74a889dc81fe36f0fd362db6d3e27d44d961d/website/babel.config.js#L10-L17"},"This website's Babel config")," provides an example with custom parser options."))}b.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4784.6b9d1e1e.js b/assets/js/4784.6b9d1e1e.js new file mode 100644 index 00000000000..e877f9e988d --- /dev/null +++ b/assets/js/4784.6b9d1e1e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4784],{34784:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var s=n(87462),o=(n(67294),n(3905));n(45475);const a={title:"Types & Expressions",slug:"/lang/types-and-expressions"},r=void 0,i={unversionedId:"lang/types-and-expressions",id:"lang/types-and-expressions",title:"Types & Expressions",description:"In JavaScript there are many types of values: numbers, strings, booleans,",source:"@site/docs/lang/types-and-expressions.md",sourceDirName:"lang",slug:"/lang/types-and-expressions",permalink:"/en/docs/lang/types-and-expressions",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/types-and-expressions.md",tags:[],version:"current",frontMatter:{title:"Types & Expressions",slug:"/lang/types-and-expressions"},sidebar:"docsSidebar",previous:{title:"Comment Types",permalink:"/en/docs/types/comments"},next:{title:"Variable Declarations",permalink:"/en/docs/lang/variables"}},l={},p=[{value:"Figuring out types statically",id:"toc-figuring-out-types-statically",level:2},{value:"Soundness and Completeness",id:"toc-soundness-and-completeness",level:2}],u={toc:p};function m(e){let{components:t,...n}=e;return(0,o.mdx)("wrapper",(0,s.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"In JavaScript there are many types of values: numbers, strings, booleans,\nfunctions, objects, and more."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'(1234: number);\n("hi": string);\n(true: boolean);\n([1, 2]: Array);\n({prop: "value"}: {prop: string});\n(function func(s: string) {}: string => void);\n')),(0,o.mdx)("p",null,"These values can be used in many different ways:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'1 + 2;\n"foo" + "bar";\n!true;\n[1, 2].push(3);\nconst obj = {prop: "s"};\nlet value = obj.prop;\nobj.prop = "value";\nfunction func(s: string) {}\nfunc("value");\n')),(0,o.mdx)("p",null,"All of these different expressions create a new type which is a result of the\ntypes of values and the operations run on them."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'let num: number = 1 + 2;\nlet str: string = "foo" + "bar";\n')),(0,o.mdx)("p",null,"In Flow every value and expression has a type."),(0,o.mdx)("h2",{id:"toc-figuring-out-types-statically"},"Figuring out types statically"),(0,o.mdx)("p",null,"Flow needs a way to be able to figure out the type of every expression. But it\ncan't just run your code to figure it out, if it did it would be affected by\nany issues that your code has. For example, if you created an infinite loop\nFlow would wait for it to finish forever."),(0,o.mdx)("p",null,"Instead, Flow needs to be able to figure out the type of a value by analyzing\nit without running it (static analysis). It works its way through every known\ntype and starts to figure out what all the expressions around them result in."),(0,o.mdx)("p",null,"For example, to figure out the result of the following expression, Flow needs to\nfigure out what its values are first."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"val1 + val2;\n")),(0,o.mdx)("p",null,"If the values are numbers, then the expression results in a number. If the\nvalues are strings, then the expression results in a string. There are a number\nof different possibilities here, so Flow must look up what the values are."),(0,o.mdx)("p",null,"If Flow is unable to figure out what the exact type is for each value, Flow\nmust figure out what every possible value is and check to make sure that the\ncode around it will still work with all of the possible types."),(0,o.mdx)("h2",{id:"toc-soundness-and-completeness"},"Soundness and Completeness"),(0,o.mdx)("p",null,"When you run your code, a single expression will only be run with a limited set\nof values. But still Flow checks ",(0,o.mdx)("em",{parentName:"p"},"every")," possible value. In this way Flow is\nchecking too many things or ",(0,o.mdx)("em",{parentName:"p"},"over-approximating")," what will be valid code."),(0,o.mdx)("p",null,"By checking every possible value, Flow might catch errors that will not\nactually occur when the code is run. Flow does this in order to be ",(0,o.mdx)("em",{parentName:"p"},'"sound"'),"."),(0,o.mdx)("p",null,"In type systems, ",(0,o.mdx)("strong",{parentName:"p"},(0,o.mdx)("em",{parentName:"strong"},"soundness"))," is the ability for a type checker to catch\nevery single error that ",(0,o.mdx)("em",{parentName:"p"},"might")," happen at runtime. This comes at the cost of\nsometimes catching errors that will not actually happen at runtime."),(0,o.mdx)("p",null,"On the flip-side, ",(0,o.mdx)("strong",{parentName:"p"},(0,o.mdx)("em",{parentName:"strong"},"completeness"))," is the ability for a type checker to only\never catch errors that ",(0,o.mdx)("em",{parentName:"p"},"would")," happen at runtime. This comes at the cost of\nsometimes missing errors that will happen at runtime."),(0,o.mdx)("p",null,"In an ideal world, every type checker would be both sound ",(0,o.mdx)("em",{parentName:"p"},"and")," complete so\nthat it catches ",(0,o.mdx)("em",{parentName:"p"},"every")," error that ",(0,o.mdx)("em",{parentName:"p"},"will")," happen at runtime."),(0,o.mdx)("p",null,"Flow tries to be as sound and complete as possible. But because JavaScript was\nnot designed around a type system, Flow sometimes has to make a tradeoff. When\nthis happens Flow tends to favor soundness over completeness, ensuring that\ncode doesn't have any bugs."),(0,o.mdx)("p",null,"Soundness is fine as long as Flow isn't being too noisy and preventing you from\nbeing productive. Sometimes when soundness would get in your way too much, Flow\nwill favor completeness instead. There's only a handful of cases where Flow\ndoes this."),(0,o.mdx)("p",null,"Other type systems will favor completeness instead, only reporting real errors\nin favor of possibly missing errors. Unit/Integration testing is an extreme\nform of this approach. Often this comes at the cost of missing the errors that\nare the most complicated to find, leaving that part up to the developer."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4840.4be9bbc8.js b/assets/js/4840.4be9bbc8.js new file mode 100644 index 00000000000..4a1edc5e426 --- /dev/null +++ b/assets/js/4840.4be9bbc8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4840],{24840:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var o=n(87462),a=(n(67294),n(3905));const i={title:"Asking for Required Annotations","short-title":"Asking for Required Annotations",author:"Sam Goldman","medium-link":"https://medium.com/flow-type/asking-for-required-annotations-64d4f9c1edf8"},r=void 0,s={permalink:"/blog/2018/10/29/Asking-for-Required-Annotations",source:"@site/blog/2018-10-29-Asking-for-Required-Annotations.md",title:"Asking for Required Annotations",description:"Flow will be asking for more annotations starting in 0.85.0. Learn how",date:"2018-10-29T00:00:00.000Z",formattedDate:"October 29, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Sam Goldman"}],frontMatter:{title:"Asking for Required Annotations","short-title":"Asking for Required Annotations",author:"Sam Goldman","medium-link":"https://medium.com/flow-type/asking-for-required-annotations-64d4f9c1edf8"},prevItem:{title:"Supporting React.forwardRef and Beyond",permalink:"/blog/2018/12/13/React-Abstract-Component"},nextItem:{title:"On the Roadmap: Exact Objects by Default",permalink:"/blog/2018/10/18/Exact-Objects-By-Default"}},l={authorsImageUrls:[void 0]},d=[],m={toc:d};function u(t){let{components:e,...n}=t;return(0,a.mdx)("wrapper",(0,o.Z)({},m,n,{components:e,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Flow will be asking for more annotations starting in 0.85.0. Learn how\nto deal with these errors in our latest blog post."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/486.d9b07c81.js b/assets/js/486.d9b07c81.js new file mode 100644 index 00000000000..a5c1bd5f483 --- /dev/null +++ b/assets/js/486.d9b07c81.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[486],{10486:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>m,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>s});var n=o(87462),a=(o(67294),o(3905));const r={title:"Improvements to Flow in 2019","short-title":"Improvements to Flow in 2019",author:"Andrew Pardoe","medium-link":"https://medium.com/flow-type/improvements-to-flow-in-2019-c8378e7aa007"},m=void 0,i={permalink:"/blog/2020/02/19/Improvements-to-Flow-in-2019",source:"@site/blog/2020-02-19-Improvements-to-Flow-in-2019.md",title:"Improvements to Flow in 2019",description:"Take a look back at improvements we made to Flow in 2019.",date:"2020-02-19T00:00:00.000Z",formattedDate:"February 19, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Andrew Pardoe"}],frontMatter:{title:"Improvements to Flow in 2019","short-title":"Improvements to Flow in 2019",author:"Andrew Pardoe","medium-link":"https://medium.com/flow-type/improvements-to-flow-in-2019-c8378e7aa007"},prevItem:{title:"What we\u2019re building in 2020",permalink:"/blog/2020/03/09/What-were-building-in-2020"},nextItem:{title:"How to upgrade to exact-by-default object type syntax",permalink:"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax"}},l={authorsImageUrls:[void 0]},s=[],p={toc:s};function d(e){let{components:t,...o}=e;return(0,a.mdx)("wrapper",(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Take a look back at improvements we made to Flow in 2019."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4860.a333a6da.js b/assets/js/4860.a333a6da.js new file mode 100644 index 00000000000..cd065c954a2 --- /dev/null +++ b/assets/js/4860.a333a6da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4860],{34860:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>m,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>s});var a=o(87462),n=(o(67294),o(3905));o(45475);const i={title:"Multi-platform Support for React Native",slug:"/react/multiplatform",description:"Flow's support for multiple platforms inside a single React Native codebase"},l=void 0,r={unversionedId:"react/multiplatform",id:"react/multiplatform",title:"Multi-platform Support for React Native",description:"Flow's support for multiple platforms inside a single React Native codebase",source:"@site/docs/react/multiplatform.md",sourceDirName:"react",slug:"/react/multiplatform",permalink:"/en/docs/react/multiplatform",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/react/multiplatform.md",tags:[],version:"current",frontMatter:{title:"Multi-platform Support for React Native",slug:"/react/multiplatform",description:"Flow's support for multiple platforms inside a single React Native codebase"}},m={},s=[{value:"Benefits",id:"toc-benefits",level:2},{value:"Quick Start",id:"toc-quick-start",level:2},{value:"Common Interface Files",id:"toc-common-interface-file",level:2},{value:"Common Interface File in .js.flow",id:"toc-common-interface-file-in-js-flow",level:3},{value:"Common Interface File in .js",id:"toc-common-interface-file-in-js",level:3}],p={toc:s};function d(e){let{components:t,...o}=e;return(0,n.mdx)("wrapper",(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("admonition",{type:"caution"},(0,n.mdx)("p",{parentName:"admonition"},"The feature is still experimental. Behaviors might change in the future.")),(0,n.mdx)("h2",{id:"toc-benefits"},"Benefits"),(0,n.mdx)("p",null,"React Native supports conditional bundling of files with ",(0,n.mdx)("a",{parentName:"p",href:"https://reactnative.dev/docs/platform-specific-code#platform-specific-extensions"},"platform specific extensions"),". For example, if you have different implementations of an Image component for iOS and Android, you can have an ",(0,n.mdx)("inlineCode",{parentName:"p"},"Image.ios.js")," file and ",(0,n.mdx)("inlineCode",{parentName:"p"},"Image.android.js")," file, and an import of Image can be resolved to either file based on the platform you are targeting."),(0,n.mdx)("p",null,"These platform specific files live under the same repository, but it would normally require two flowconfigs to check them like the following setup:"),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-toml",metastring:"title=.flowconfig",title:".flowconfig"},"; for ios\n[ignore]\n.*\\.android\\.js$\n[options]\nmodule.file_ext=.js\nmodule.file_ext=.ios.js\n")),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-toml",metastring:"title=.flowconfig.android",title:".flowconfig.android"},"; for android\n[ignore]\n; Ignore other platform suffixes\n.*\\.ios\\.js$\n[options]\nmodule.file_ext=.js\nmodule.file_ext=.android.js\n")),(0,n.mdx)("p",null,"Flow's optional React Native multi-platform support allows you to check your entire project with mixed platforms under a single Flow root, so that during the development of a module with both .ios and .android files, you no longer have to run both Flow servers and constantly switch between different servers to see type errors on different platforms."),(0,n.mdx)("h2",{id:"toc-quick-start"},"Quick Start"),(0,n.mdx)("p",null,"You can start by deleting the flowconfig for all other platforms, deleting all the platform specific configs in the only remaining flowconfig, and add the following new lines to the ",(0,n.mdx)("inlineCode",{parentName:"p"},"options")," section:"),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre"},"experimental.multi_platform=true\nexperimental.multi_platform.extensions=.ios\nexperimental.multi_platform.extensions=.android\n")),(0,n.mdx)("p",null,"For example, these are the required changes for the ",(0,n.mdx)("inlineCode",{parentName:"p"},".flowconfig")," example above:"),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-diff",metastring:"title=.flowconfig",title:".flowconfig"},"[ignore]\n- .*\\.android\\.js$\n[options]\nmodule.file_ext=.js\n- module.file_ext=.ios.js\n+ experimental.multi_platform=true\n+ experimental.multi_platform.extensions=.ios\n+ experimental.multi_platform.extensions=.android\n")),(0,n.mdx)("p",null,"After enabling the new configurations, there will likely be new errors. The sections below explain the additional rules that Flow imposes to check a multiplatform React Native project."),(0,n.mdx)("h2",{id:"toc-common-interface-file"},"Common Interface Files"),(0,n.mdx)("p",null,"Suppose you have a file that imports the ",(0,n.mdx)("inlineCode",{parentName:"p"},"Image")," module, but ",(0,n.mdx)("inlineCode",{parentName:"p"},"Image")," module has different iOS and Android implementations as follows:"),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-jsx",metastring:"title=MyReactNativeApp.js",title:"MyReactNativeApp.js"},"import * as React from 'react';\nimport Image from './Image';\n\n;\n;\n")),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-jsx",metastring:"title=Image.ios.js",title:"Image.ios.js"},"import * as React from 'react';\n\ntype Props = { src: string, lazyLoading?: boolean };\n\nexport default function Image(props: Props): React.Node { /* ... */ }\n")),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-jsx",metastring:"title=Image.android.js",title:"Image.android.js"},"import * as React from 'react';\n\ntype Props = { src: string, lazyLoading: boolean };\n\nexport default class Image extends React.Components {\n static defaultProps: { lazyLoading: boolean } = { lazyLoading: false };\n render(): React.Node { /* ... */ }\n}\n")),(0,n.mdx)("p",null,"When you enabled multiplatform support, you will likely see that error that the ",(0,n.mdx)("inlineCode",{parentName:"p"},"./Image")," module cannot be resolved. To fix the error, you need to create a common interface file under the same directory:"),(0,n.mdx)("h3",{id:"toc-common-interface-file-in-js-flow"},"Common Interface File in ",(0,n.mdx)("inlineCode",{parentName:"h3"},".js.flow")),(0,n.mdx)("p",null,"One option is to write a common interface file in ",(0,n.mdx)("inlineCode",{parentName:"p"},".js.flow"),":"),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-jsx",metastring:"title=Image.js.flow",title:"Image.js.flow"},"import * as React from 'react';\n\ntype Props = { src: string, lazyLoading?: boolean };\n\ndeclare const Image: React.AbstractComponent;\nexport default Image;\n")),(0,n.mdx)("p",null,"Flow will ensure that the module types of both ",(0,n.mdx)("inlineCode",{parentName:"p"},"Image.ios.js")," and ",(0,n.mdx)("inlineCode",{parentName:"p"},"./Image.android.js")," are subtype of the module type of ",(0,n.mdx)("inlineCode",{parentName:"p"},"./Image.js.flow"),". Flow will also ensure that there exists an implementation for each platform you declared in your ",(0,n.mdx)("inlineCode",{parentName:"p"},".flowconfig"),"."),(0,n.mdx)("h3",{id:"toc-common-interface-file-in-js"},"Common Interface File in ",(0,n.mdx)("inlineCode",{parentName:"h3"},".js")),(0,n.mdx)("p",null,"Sometimes you might target desktop platforms in addition to iOS and Android, and you only have a special implementation for one platform, and all the other platforms will use the fallback implementation in a ",(0,n.mdx)("inlineCode",{parentName:"p"},".js")," file. For example:"),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-jsx",metastring:"title=Image.js",title:"Image.js"},"import * as React from 'react';\nimport DefaultImage from 'react-native/Libraries/Image';\n\nexport default DefaultImage;\n")),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-jsx",metastring:"title=Image.ios.js",title:"Image.ios.js"},"import * as React from 'react';\n\ntype Props = { src: string, lazyLoading: boolean };\n\nexport default function Image(props: Props): React.Node {\n // Custom implementation to take advantage of some unique iOS capabilities\n}\n")),(0,n.mdx)("p",null,"In this case, Flow will use the ",(0,n.mdx)("inlineCode",{parentName:"p"},".js")," file as the common interface file, and check all other platform-specific implementation files' against the ",(0,n.mdx)("inlineCode",{parentName:"p"},".js")," file. Since the ",(0,n.mdx)("inlineCode",{parentName:"p"},".js")," file is already a fallback implementation, Flow will no longer require that platform-specific implementation files exist for all platforms."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4896.a33bc4d6.js b/assets/js/4896.a33bc4d6.js new file mode 100644 index 00000000000..da2deb3220a --- /dev/null +++ b/assets/js/4896.a33bc4d6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4896],{74896:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>r,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var o=n(87462),a=(n(67294),n(3905));const l={title:"Announcing Flow Comments","short-title":"Flow Comments",author:"Gabe Levi",hide_table_of_contents:!0},r=void 0,i={permalink:"/blog/2015/02/20/Flow-Comments",source:"@site/blog/2015-02-20-Flow-Comments.md",title:"Announcing Flow Comments",description:"As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can't fit a Flow-stripping transformation into their setup. This was one of our most requested features and hopefully it will enable even more people to use Flow!",date:"2015-02-20T00:00:00.000Z",formattedDate:"February 20, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Announcing Flow Comments","short-title":"Flow Comments",author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Announcing Bounded Polymorphism",permalink:"/blog/2015/03/12/Bounded-Polymorphism"},nextItem:{title:"Announcing Import Type",permalink:"/blog/2015/02/18/Import-Types"}},m={authorsImageUrls:[void 0]},p=[{value:"The Flow Comment Syntax",id:"the-flow-comment-syntax",level:2},{value:"1. /*:",id:"1-",level:3},{value:"2. /*::",id:"2-",level:3},{value:"3. /*flow-include",id:"3-flow-include",level:3},{value:"Future Work",id:"future-work",level:2},{value:"Thanks",id:"thanks",level:2}],s={toc:p};function d(e){let{components:t,...n}=e;return(0,a.mdx)("wrapper",(0,o.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can't fit a Flow-stripping transformation into their setup. This was one of our ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/3"},"most requested features")," and hopefully it will enable even more people to use Flow!"),(0,a.mdx)("p",null,"This feature introduces 3 special comments: ",(0,a.mdx)("inlineCode",{parentName:"p"},"/*:"),", ",(0,a.mdx)("inlineCode",{parentName:"p"},"/*::"),", and ",(0,a.mdx)("inlineCode",{parentName:"p"},"/*flow-include"),". Flow will read the code inside these special comments and treat the code as if the special comment tokens didn't exist. These special comments are valid JavaScript block comments, so your JavaScript engine will ignore the code inside the comments."),(0,a.mdx)("h2",{id:"the-flow-comment-syntax"},"The Flow Comment Syntax"),(0,a.mdx)("p",null,"There are 3 special comments that Flow currently supports. You may recognize this syntax from ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/jareware"},"Jarno Rantanen"),"'s excellent project, ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/jareware/flotate"},"flotate"),"."),(0,a.mdx)("h3",{id:"1-"},"1. ",(0,a.mdx)("inlineCode",{parentName:"h3"},"/*:")),(0,a.mdx)("p",null,(0,a.mdx)("inlineCode",{parentName:"p"},"/*: */")," is interpreted by Flow as ",(0,a.mdx)("inlineCode",{parentName:"p"},": ")),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"function foo(x/*: number*/)/* : string */ { ... }\n")),(0,a.mdx)("p",null,"is interpreted by Flow as"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"function foo(x: number): string { ... }\n")),(0,a.mdx)("p",null,"but appears to the JavaScript engine (ignoring comments) as"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"function foo(x) { ... }\n")),(0,a.mdx)("h3",{id:"2-"},"2. ",(0,a.mdx)("inlineCode",{parentName:"h3"},"/*::")),(0,a.mdx)("p",null,(0,a.mdx)("inlineCode",{parentName:"p"},"/*:: */")," is interpreted by Flow as ",(0,a.mdx)("inlineCode",{parentName:"p"},"")),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"/*:: type foo = number; */\n")),(0,a.mdx)("p",null,"is interpreted by Flow as"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"type foo = number;\n")),(0,a.mdx)("p",null,"but appears to the runtime (ignoring comments) as"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"")),(0,a.mdx)("h3",{id:"3-flow-include"},"3. ",(0,a.mdx)("inlineCode",{parentName:"h3"},"/*flow-include")),(0,a.mdx)("p",null,(0,a.mdx)("inlineCode",{parentName:"p"},"/*flow-include */")," is interpreted by Flow as ",(0,a.mdx)("inlineCode",{parentName:"p"},""),". It behaves the same as ",(0,a.mdx)("inlineCode",{parentName:"p"},"/*::")),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"/*flow-include type foo = number; */\n")),(0,a.mdx)("p",null,"is interpreted by Flow as"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"type foo = number;\n")),(0,a.mdx)("p",null,"but appears to the runtime (ignoring comments) as"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"")),(0,a.mdx)("p",null,"Note: whitespace is ignored after the ",(0,a.mdx)("inlineCode",{parentName:"p"},"/*")," but before the ",(0,a.mdx)("inlineCode",{parentName:"p"},":"),", ",(0,a.mdx)("inlineCode",{parentName:"p"},"::"),", or ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow-include"),". So you can write things like"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"/* : number */\n/* :: type foo = number */\n/* flow-include type foo = number */\n")),(0,a.mdx)("h2",{id:"future-work"},"Future Work"),(0,a.mdx)("p",null,"We plan to update our Flow transformation to wrap Flow syntax with these special comments, rather than stripping it away completely. This will help people write Flow code but publish code that works with or without Flow."),(0,a.mdx)("h2",{id:"thanks"},"Thanks"),(0,a.mdx)("p",null,"Special thanks to ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/jareware"},"Jarno Rantanen")," for building ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/jareware/flotate"},"flotate")," and supporting us merging his syntax upstream into Flow."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4902.57b8a462.js b/assets/js/4902.57b8a462.js new file mode 100644 index 00000000000..5d815975c9d --- /dev/null +++ b/assets/js/4902.57b8a462.js @@ -0,0 +1,2 @@ +/*! For license information please see 4902.57b8a462.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4902],{4902:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>u,language:()=>p});var a,o,i=n(38139),r=Object.defineProperty,l=Object.getOwnPropertyDescriptor,m=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,d=(e,t,n,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of m(t))c.call(e,o)||o===n||r(e,o,{get:()=>t[o],enumerable:!(a=l(t,o))||a.enumerable});return e},s={};d(s,a=i,"default"),o&&d(o,a,"default");var u={comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:s.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:s.languages.IndentAction.Indent}}]},p={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[//,{token:"comment",next:"@pop"}],[/"] + }, + brackets: [["<", ">"]], + autoClosingPairs: [ + { open: "<", close: ">" }, + { open: "'", close: "'" }, + { open: '"', close: '"' } + ], + surroundingPairs: [ + { open: "<", close: ">" }, + { open: "'", close: "'" }, + { open: '"', close: '"' } + ], + onEnterRules: [ + { + beforeText: new RegExp(`<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + afterText: /^<\/([_:\w][_:\w-.\d]*)\s*>$/i, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent + } + }, + { + beforeText: new RegExp(`<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent } + } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".xml", + ignoreCase: true, + qualifiedName: /(?:[\w\.\-]+:)?[\w\.\-]+/, + tokenizer: { + root: [ + [/[^<&]+/, ""], + { include: "@whitespace" }, + [/(<)(@qualifiedName)/, [{ token: "delimiter" }, { token: "tag", next: "@tag" }]], + [ + /(<\/)(@qualifiedName)(\s*)(>)/, + [{ token: "delimiter" }, { token: "tag" }, "", { token: "delimiter" }] + ], + [/(<\?)(@qualifiedName)/, [{ token: "delimiter" }, { token: "metatag", next: "@tag" }]], + [/(<\!)(@qualifiedName)/, [{ token: "delimiter" }, { token: "metatag", next: "@tag" }]], + [/<\!\[CDATA\[/, { token: "delimiter.cdata", next: "@cdata" }], + [/&\w+;/, "string.escape"] + ], + cdata: [ + [/[^\]]+/, ""], + [/\]\]>/, { token: "delimiter.cdata", next: "@pop" }], + [/\]/, ""] + ], + tag: [ + [/[ \t\r\n]+/, ""], + [/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/, ["attribute.name", "", "attribute.value"]], + [ + /(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/, + ["attribute.name", "", "attribute.value"] + ], + [/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/, ["attribute.name", "", "attribute.value"]], + [/@qualifiedName/, "attribute.name"], + [/\?>/, { token: "delimiter", next: "@pop" }], + [/(\/)(>)/, [{ token: "tag" }, { token: "delimiter", next: "@pop" }]], + [/>/, { token: "delimiter", next: "@pop" }] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [//, { token: "comment", next: "@pop" }], + [/"], + ["<", ">"], + ["{{", "}}"], + ["{", "}"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "<", close: ">" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + onEnterRules: [ + { + beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + afterText: /^<\/(\w[\w\d]*)\s*>$/i, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent + } + }, + { + beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent } + } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: "", + tokenizer: { + root: [ + [/\{\{!--/, "comment.block.start.handlebars", "@commentBlock"], + [/\{\{!/, "comment.start.handlebars", "@comment"], + [/\{\{/, { token: "@rematch", switchTo: "@handlebarsInSimpleState.root" }], + [/)/, ["delimiter.html", "tag.html", "delimiter.html"]], + [/(<)(script)/, ["delimiter.html", { token: "tag.html", next: "@script" }]], + [/(<)(style)/, ["delimiter.html", { token: "tag.html", next: "@style" }]], + [/(<)([:\w]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/(<\/)(\w+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/]+/, "metatag.content.html"], + [/>/, "metatag.html", "@pop"] + ], + comment: [ + [/\}\}/, "comment.end.handlebars", "@pop"], + [/./, "comment.content.handlebars"] + ], + commentBlock: [ + [/--\}\}/, "comment.block.end.handlebars", "@pop"], + [/./, "comment.content.handlebars"] + ], + commentHtml: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.comment" + } + ], + [/-->/, "comment.html", "@pop"], + [/[^-]+/, "comment.content.html"], + [/./, "comment.content.html"] + ], + otherTag: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.otherTag" + } + ], + [/\/?>/, "delimiter.html", "@pop"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/] + ], + script: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.script" + } + ], + [/type/, "attribute.name", "@scriptAfterType"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [ + /(<\/)(script\s*)(>)/, + ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }] + ] + ], + scriptAfterType: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.scriptAfterType" + } + ], + [/=/, "delimiter", "@scriptAfterTypeEquals"], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptAfterTypeEquals: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.scriptAfterTypeEquals" + } + ], + [ + /"([^"]*)"/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptWithCustomType: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.scriptWithCustomType.$S2" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptEmbedded: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInEmbeddedState.scriptEmbedded.$S2", + nextEmbedded: "@pop" + } + ], + [/<\/script/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }] + ], + style: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.style" + } + ], + [/type/, "attribute.name", "@styleAfterType"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [ + /(<\/)(style\s*)(>)/, + ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }] + ] + ], + styleAfterType: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.styleAfterType" + } + ], + [/=/, "delimiter", "@styleAfterTypeEquals"], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleAfterTypeEquals: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.styleAfterTypeEquals" + } + ], + [ + /"([^"]*)"/, + { + token: "attribute.value", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleWithCustomType: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.styleWithCustomType.$S2" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleEmbedded: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInEmbeddedState.styleEmbedded.$S2", + nextEmbedded: "@pop" + } + ], + [/<\/style/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }] + ], + handlebarsInSimpleState: [ + [/\{\{\{?/, "delimiter.handlebars"], + [/\}\}\}?/, { token: "delimiter.handlebars", switchTo: "@$S2.$S3" }], + { include: "handlebarsRoot" } + ], + handlebarsInEmbeddedState: [ + [/\{\{\{?/, "delimiter.handlebars"], + [ + /\}\}\}?/, + { + token: "delimiter.handlebars", + switchTo: "@$S2.$S3", + nextEmbedded: "$S3" + } + ], + { include: "handlebarsRoot" } + ], + handlebarsRoot: [ + [/"[^"]*"/, "string.handlebars"], + [/[#/][^\s}]+/, "keyword.helper.handlebars"], + [/else\b/, "keyword.helper.handlebars"], + [/[\s]+/], + [/[^}]/, "variable.parameter.handlebars"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/5703.b3646744.js b/assets/js/5703.b3646744.js new file mode 100644 index 00000000000..c2dc3d77827 --- /dev/null +++ b/assets/js/5703.b3646744.js @@ -0,0 +1,2 @@ +/*! For license information please see 5703.b3646744.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[5703],{15703:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>h,language:()=>b});var a,r,m=n(38139),l=Object.defineProperty,i=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,d=(e,t,n,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of o(t))s.call(e,r)||r===n||l(e,r,{get:()=>t[r],enumerable:!(a=i(t,r))||a.enumerable});return e},c={};d(c,a=m,"default"),r&&d(r,a,"default");var p=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],h={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{{!--","--}}"]},brackets:[["\x3c!--","--\x3e"],["<",">"],["{{","}}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${p.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:c.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${p.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:c.languages.IndentAction.Indent}}]},b={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/\{\{!--/,"comment.block.start.handlebars","@commentBlock"],[/\{\{!/,"comment.start.handlebars","@comment"],[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/\}\}/,"comment.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentBlock:[[/--\}\}/,"comment.block.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentHtml:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],handlebarsInSimpleState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3"}],{include:"handlebarsRoot"}],handlebarsInEmbeddedState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"handlebarsRoot"}],handlebarsRoot:[[/"[^"]*"/,"string.handlebars"],[/[#/][^\s}]+/,"keyword.helper.handlebars"],[/else\b/,"keyword.helper.handlebars"],[/[\s]+/],[/[^}]/,"variable.parameter.handlebars"]]}}}}]); \ No newline at end of file diff --git a/assets/js/5703.b3646744.js.LICENSE.txt b/assets/js/5703.b3646744.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/5703.b3646744.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/5745.ffd36961.js b/assets/js/5745.ffd36961.js new file mode 100644 index 00000000000..1167a98c4e8 --- /dev/null +++ b/assets/js/5745.ffd36961.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[5745],{15745:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/5789.7ab12558.js b/assets/js/5789.7ab12558.js new file mode 100644 index 00000000000..277fcea092a --- /dev/null +++ b/assets/js/5789.7ab12558.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[5789],{5789:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>l,frontMatter:()=>o,metadata:()=>i,toc:()=>m});var a=t(87462),p=(t(67294),t(3905));t(45475);const o={title:"Mapped Types",slug:"/types/mapped-types"},r=void 0,i={unversionedId:"types/mapped-types",id:"types/mapped-types",title:"Mapped Types",description:"Flow's mapped types allow you to transform object types. They are useful for modeling complex runtime operations over objects.",source:"@site/docs/types/mapped-types.md",sourceDirName:"types",slug:"/types/mapped-types",permalink:"/en/docs/types/mapped-types",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/mapped-types.md",tags:[],version:"current",frontMatter:{title:"Mapped Types",slug:"/types/mapped-types"},sidebar:"docsSidebar",previous:{title:"Conditional Types",permalink:"/en/docs/types/conditional"},next:{title:"Type Guards",permalink:"/en/docs/types/type-guards"}},d={},m=[{value:"Basic Usage",id:"toc-basic-usage",level:2},{value:"Mapped Type Sources",id:"toc-mapped-type-sources",level:2},{value:"Distributive Mapped Types",id:"toc-distributive-mapped-types",level:2},{value:"Property Modifiers",id:"toc-property-modifiers",level:2},{value:"Adoption",id:"toc-adoption",level:2}],s={toc:m};function l(e){let{components:n,...t}=e;return(0,p.mdx)("wrapper",(0,a.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,p.mdx)("p",null,"Flow's mapped types allow you to transform object types. They are useful for modeling complex runtime operations over objects."),(0,p.mdx)("h2",{id:"toc-basic-usage"},"Basic Usage"),(0,p.mdx)("p",null,"Mapped Types have syntax similar to indexed object types but use the ",(0,p.mdx)("inlineCode",{parentName:"p"},"in")," keyword:"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type O = {foo: number, bar: string};\n\ntype Methodify = () => T;\n\ntype MappedType = {[key in keyof O]: Methodify};\n")),(0,p.mdx)("p",null,"In this example, ",(0,p.mdx)("inlineCode",{parentName:"p"},"MappedType")," has all of the keys from ",(0,p.mdx)("inlineCode",{parentName:"p"},"O")," with all of the value types transformed by\n",(0,p.mdx)("inlineCode",{parentName:"p"},"Methoditfy"),". The ",(0,p.mdx)("inlineCode",{parentName:"p"},"key")," variable is substituted for each key in ",(0,p.mdx)("inlineCode",{parentName:"p"},"O")," when creating the property, so\nthis type evaluates to:"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre"},"{\n foo: Methodify,\n bar: Methodify,\n}\n= {\n foo: () => number,\n bar: () => string,\n}\n")),(0,p.mdx)("h2",{id:"toc-mapped-type-sources"},"Mapped Type Sources"),(0,p.mdx)("p",null,"We call the type that comes after the ",(0,p.mdx)("inlineCode",{parentName:"p"},"in")," keyword the ",(0,p.mdx)("em",{parentName:"p"},"source")," of the mapped type. The source of\na mapped type must be a subtype of ",(0,p.mdx)("inlineCode",{parentName:"p"},"string | number | symbol"),":"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":28,"endLine":1,"endColumn":34,"description":"Cannot instantiate mapped type [1] because boolean [2] is incompatible with `string | number | symbol`, so it cannot be used to generate keys for mapped type [1]. [incompatible-type]"}]','[{"startLine":1,"startColumn":28,"endLine":1,"endColumn":34,"description":"Cannot':!0,instantiate:!0,mapped:!0,type:!0,"[1]":!0,because:!0,boolean:!0,"[2]":!0,is:!0,incompatible:!0,with:!0,"`string":!0,"|":!0,number:!0,"symbol`,":!0,so:!0,it:!0,cannot:!0,be:!0,used:!0,to:!0,generate:!0,keys:!0,for:!0,"[1].":!0,'[incompatible-type]"}]':!0},"type MappedType = {[key in boolean]: number}; // ERROR!\n")),(0,p.mdx)("p",null,"Typically, you'll want to create a mapped type based on another object type. In this case, you\nshould write your mapped type using an inline ",(0,p.mdx)("inlineCode",{parentName:"p"},"keyof"),":"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type GetterOf = () => T;\ntype Obj = {foo: number, bar: string};\ntype MappedObj = {[key in keyof Obj]: GetterOf};\n")),(0,p.mdx)("blockquote",null,(0,p.mdx)("p",{parentName:"blockquote"},"NOTE: ",(0,p.mdx)("inlineCode",{parentName:"p"},"keyof")," only works inline in mapped types for now. Full support for ",(0,p.mdx)("inlineCode",{parentName:"p"},"keyof")," is not yet available.")),(0,p.mdx)("p",null,"But you do not need to use an object to generate a mapped type. You can also use a union of string\nliteral types to represent the keys of an object type:"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Union = 'foo' | 'bar' | 'baz';\ntype MappedType = {[key in Union]: number};\n// = {foo: number, bar: number, baz: number};\n")),(0,p.mdx)("p",null,"Importantly, when using string literals the union is collapsed into a ",(0,p.mdx)("em",{parentName:"p"},"single object type"),":"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type MappedTypeFromKeys = {[key in Keys]: number};\ntype MappedFooAndBar = MappedTypeFromKeys<'foo' | 'bar'>;\n// = {foo: number, bar: number}, not {foo: number} | {bar: number}\n")),(0,p.mdx)("p",null,"If you use a type like ",(0,p.mdx)("inlineCode",{parentName:"p"},"number")," or ",(0,p.mdx)("inlineCode",{parentName:"p"},"string")," in the source of your mapped type then Flow will create\nan indexer:"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type MappedTypeFromKeys = {[key in Keys]: number};\ntype MappedFooAndBarWithIndexer = MappedTypeFromKeys<'foo' | 'bar' | string>;\n// = {foo: number, bar: number, [string]: number}\n")),(0,p.mdx)("h2",{id:"toc-distributive-mapped-types"},"Distributive Mapped Types"),(0,p.mdx)("p",null,"When the mapped type uses an inline ",(0,p.mdx)("inlineCode",{parentName:"p"},"keyof")," or a type parameter bound by a ",(0,p.mdx)("inlineCode",{parentName:"p"},"$Keys"),"\nFlow will distribute the mapped type over unions of object types."),(0,p.mdx)("p",null,"For example:"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"// This mapped type uses keyof inline\ntype MakeAllValuesNumber = {[key in keyof O]: number};\ntype ObjWithFoo = {foo: string};\ntype ObjWithBar = {bar: string};\n\ntype DistributedMappedType = MakeAllValuesNumber<\n | ObjWithFoo\n | ObjWithBar\n>; // = {foo: number} | {bar: number};\n\n// This mapped type uses a type parameter bound by $Keys\ntype Pick> = {[key in Keys]: O[key]};\ntype O1 = {foo: number, bar: number};\ntype O2 = {bar: string, baz: number};\ntype PickBar = Pick; // = {bar: number} | {bar: string};\n")),(0,p.mdx)("p",null,"Distributive mapped types will also distribute over ",(0,p.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,p.mdx)("inlineCode",{parentName:"p"},"undefined"),":"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Distributive = {[key in keyof O]: O[key]};\ntype Obj = {foo: number};\ntype MaybeMapped = Distributive;// = ?{foo: number}\n(null: MaybeMapped); // OK\n(undefined: MaybeMapped); // OK\n({foo: 3}: MaybeMapped); // OK\n")),(0,p.mdx)("h2",{id:"toc-property-modifiers"},"Property Modifiers"),(0,p.mdx)("p",null,"You can also add ",(0,p.mdx)("inlineCode",{parentName:"p"},"+")," or ",(0,p.mdx)("inlineCode",{parentName:"p"},"-")," variance modifiers and the optionality modifier ",(0,p.mdx)("inlineCode",{parentName:"p"},"?")," in mapped types:"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type O = {foo: number, bar: string}\ntype ReadOnlyPartialO = {+[key in keyof O]?: O[key]}; // = {+foo?: number, +bar?: string};\n")),(0,p.mdx)("p",null,"When no variance nor optionality modifiers are provided and the mapped type is distributive,\nthe variance and optionality are determined by the input object:"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type O = {+foo: number, bar?: string};\ntype Mapped = {[key in keyof O]: O[key]}; // = {+foo: number, bar?: string}\n")),(0,p.mdx)("p",null,"Otherwise, the properties are read-write and required when no property modifiers are present:"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Union = 'foo' | 'bar' | 'baz';\ntype MappedType = {[key in Union]: number};\n// = {foo: number, bar: number, baz: number};\n")),(0,p.mdx)("blockquote",null,(0,p.mdx)("p",{parentName:"blockquote"},"NOTE: Flow does not yet support removing variance or optionality modifiers.")),(0,p.mdx)("h2",{id:"toc-adoption"},"Adoption"),(0,p.mdx)("p",null,"To use mapped types, you need to upgrade your infrastructure so that it supports the syntax:"),(0,p.mdx)("ul",null,(0,p.mdx)("li",{parentName:"ul"},(0,p.mdx)("inlineCode",{parentName:"li"},"flow")," and ",(0,p.mdx)("inlineCode",{parentName:"li"},"flow-parser"),": 0.210.0. Between v0.210.0 to v0.211.1, you need to explicitly enable it in your .flowconfig, under the ",(0,p.mdx)("inlineCode",{parentName:"li"},"[options]")," heading, add ",(0,p.mdx)("inlineCode",{parentName:"li"},"mapped_type=true"),"."),(0,p.mdx)("li",{parentName:"ul"},(0,p.mdx)("inlineCode",{parentName:"li"},"prettier"),": 3"),(0,p.mdx)("li",{parentName:"ul"},(0,p.mdx)("inlineCode",{parentName:"li"},"babel")," with ",(0,p.mdx)("inlineCode",{parentName:"li"},"babel-plugin-syntax-hermes-parser"),". See ",(0,p.mdx)("a",{parentName:"li",href:"../../tools/babel/"},"our Babel guide")," for setup instructions."),(0,p.mdx)("li",{parentName:"ul"},(0,p.mdx)("inlineCode",{parentName:"li"},"eslint")," with ",(0,p.mdx)("inlineCode",{parentName:"li"},"hermes-eslint"),". See ",(0,p.mdx)("a",{parentName:"li",href:"../../tools/eslint/"},"our ESLint guide")," for setup instructions.")))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5849.5c57243a.js b/assets/js/5849.5c57243a.js new file mode 100644 index 00000000000..ed88762756b --- /dev/null +++ b/assets/js/5849.5c57243a.js @@ -0,0 +1,2 @@ +/*! For license information please see 5849.5c57243a.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[5849],{25849:(e,s,n)=>{n.r(s),n.d(s,{conf:()=>o,language:()=>t});var o={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},t={defaultToken:"",tokenPostfix:".dockerfile",variable:/\${?[\w]+}?/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/(ONBUILD)(\s+)/,["keyword",""]],[/(ENV)(\s+)([\w]+)/,["keyword","",{token:"variable",next:"@arguments"}]],[/(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/,{token:"keyword",next:"@arguments"}]],arguments:[{include:"@whitespace"},{include:"@strings"},[/(@variable)/,{cases:{"@eos":{token:"variable",next:"@popall"},"@default":"variable"}}],[/\\/,{cases:{"@eos":"","@default":""}}],[/./,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],whitespace:[[/\s+/,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],comment:[[/(^#.*$)/,"comment","@popall"]],strings:[[/\\'$/,"","@popall"],[/\\'/,""],[/'$/,"string","@popall"],[/'/,"string","@stringBody"],[/"$/,"string","@popall"],[/"/,"string","@dblStringBody"]],stringBody:[[/[^\\\$']/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/'$/,"string","@popall"],[/'/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]],dblStringBody:[[/[^\\\$"]/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/"$/,"string","@popall"],[/"/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]]}}}}]); \ No newline at end of file diff --git a/assets/js/5849.5c57243a.js.LICENSE.txt b/assets/js/5849.5c57243a.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/5849.5c57243a.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/5849.97b6216c.js b/assets/js/5849.97b6216c.js new file mode 100644 index 00000000000..4dda84a7754 --- /dev/null +++ b/assets/js/5849.97b6216c.js @@ -0,0 +1,151 @@ +"use strict"; +exports.id = 5849; +exports.ids = [5849]; +exports.modules = { + +/***/ 25849: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/dockerfile/dockerfile.ts +var conf = { + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".dockerfile", + variable: /\${?[\w]+}?/, + tokenizer: { + root: [ + { include: "@whitespace" }, + { include: "@comment" }, + [/(ONBUILD)(\s+)/, ["keyword", ""]], + [/(ENV)(\s+)([\w]+)/, ["keyword", "", { token: "variable", next: "@arguments" }]], + [ + /(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/, + { token: "keyword", next: "@arguments" } + ] + ], + arguments: [ + { include: "@whitespace" }, + { include: "@strings" }, + [ + /(@variable)/, + { + cases: { + "@eos": { token: "variable", next: "@popall" }, + "@default": "variable" + } + } + ], + [ + /\\/, + { + cases: { + "@eos": "", + "@default": "" + } + } + ], + [ + /./, + { + cases: { + "@eos": { token: "", next: "@popall" }, + "@default": "" + } + } + ] + ], + whitespace: [ + [ + /\s+/, + { + cases: { + "@eos": { token: "", next: "@popall" }, + "@default": "" + } + } + ] + ], + comment: [[/(^#.*$)/, "comment", "@popall"]], + strings: [ + [/\\'$/, "", "@popall"], + [/\\'/, ""], + [/'$/, "string", "@popall"], + [/'/, "string", "@stringBody"], + [/"$/, "string", "@popall"], + [/"/, "string", "@dblStringBody"] + ], + stringBody: [ + [ + /[^\\\$']/, + { + cases: { + "@eos": { token: "string", next: "@popall" }, + "@default": "string" + } + } + ], + [/\\./, "string.escape"], + [/'$/, "string", "@popall"], + [/'/, "string", "@pop"], + [/(@variable)/, "variable"], + [/\\$/, "string"], + [/$/, "string", "@popall"] + ], + dblStringBody: [ + [ + /[^\\\$"]/, + { + cases: { + "@eos": { token: "string", next: "@popall" }, + "@default": "string" + } + } + ], + [/\\./, "string.escape"], + [/"$/, "string", "@popall"], + [/"/, "string", "@pop"], + [/(@variable)/, "variable"], + [/\\$/, "string"], + [/$/, "string", "@popall"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/588.e5ea213f.js b/assets/js/588.e5ea213f.js new file mode 100644 index 00000000000..e49eab34339 --- /dev/null +++ b/assets/js/588.e5ea213f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[588],{90588:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>s,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var t=a(87462),i=(a(67294),a(3905));a(45475);const o={title:"Maybe Types",slug:"/types/maybe"},r=void 0,l={unversionedId:"types/maybe",id:"types/maybe",title:"Maybe Types",description:"You can prefix a type with ? to make it a union with null and void:",source:"@site/docs/types/maybe.md",sourceDirName:"types",slug:"/types/maybe",permalink:"/en/docs/types/maybe",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/maybe.md",tags:[],version:"current",frontMatter:{title:"Maybe Types",slug:"/types/maybe"},sidebar:"docsSidebar",previous:{title:"Any",permalink:"/en/docs/types/any"},next:{title:"Functions",permalink:"/en/docs/types/functions"}},s={},p=[{value:"Refining maybe types",id:"toc-refining-maybe-types",level:2}],m={toc:p};function u(e){let{components:n,...a}=e;return(0,i.mdx)("wrapper",(0,t.Z)({},m,a,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"You can prefix a type with ",(0,i.mdx)("inlineCode",{parentName:"p"},"?")," to make it a ",(0,i.mdx)("a",{parentName:"p",href:"../unions"},"union")," with ",(0,i.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"void"),":\n",(0,i.mdx)("inlineCode",{parentName:"p"},"?T")," is equivalent to the union ",(0,i.mdx)("inlineCode",{parentName:"p"},"T | null | void"),"."),(0,i.mdx)("p",null,"For example, ",(0,i.mdx)("inlineCode",{parentName:"p"},"?number")," is equivalent to ",(0,i.mdx)("inlineCode",{parentName:"p"},"number | null | void"),", and allows for numbers, ",(0,i.mdx)("inlineCode",{parentName:"p"},"null"),", and ",(0,i.mdx)("inlineCode",{parentName:"p"},"undefined"),' as values. It\'s "maybe" a number.'),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":20,"endLine":9,"endColumn":23,"description":"Cannot call `acceptsMaybeNumber` with `\\"42\\"` bound to `value` because string [1] is incompatible with number [2]. [incompatible-call]"}]','[{"startLine":9,"startColumn":20,"endLine":9,"endColumn":23,"description":"Cannot':!0,call:!0,"`acceptsMaybeNumber`":!0,with:!0,'`\\"42\\"`':!0,bound:!0,to:!0,"`value`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,number:!0,"[2].":!0,'[incompatible-call]"}]':!0},'function acceptsMaybeNumber(value: ?number) {\n // ...\n}\n\nacceptsMaybeNumber(42); // Works!\nacceptsMaybeNumber(); // Works! (implicitly undefined)\nacceptsMaybeNumber(undefined); // Works!\nacceptsMaybeNumber(null); // Works!\nacceptsMaybeNumber("42"); // Error!\n')),(0,i.mdx)("p",null,"In the case of objects, a ",(0,i.mdx)("strong",{parentName:"p"},"missing")," property is not the same thing as an explicitly ",(0,i.mdx)("inlineCode",{parentName:"p"},"undefined")," property."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":18,"endLine":6,"endColumn":19,"description":"Cannot call `acceptsMaybeProp` with object literal bound to the first parameter because property `value` is missing in object literal [1] but exists in object type [2]. [prop-missing]"}]','[{"startLine":6,"startColumn":18,"endLine":6,"endColumn":19,"description":"Cannot':!0,call:!0,"`acceptsMaybeProp`":!0,with:!0,object:!0,literal:!0,bound:!0,to:!0,the:!0,first:!0,parameter:!0,because:!0,property:!0,"`value`":!0,is:!0,missing:!0,in:!0,"[1]":!0,but:!0,exists:!0,type:!0,"[2].":!0,'[prop-missing]"}]':!0},"function acceptsMaybeProp({value}: {value: ?number}) {\n // ...\n}\n\nacceptsMaybeProp({value: undefined}); // Works!\nacceptsMaybeProp({}); // Error!\n")),(0,i.mdx)("p",null,"If you want to allow missing properties, use ",(0,i.mdx)("a",{parentName:"p",href:"../objects/#toc-optional-object-type-properties"},"optional property")," syntax, where the ",(0,i.mdx)("inlineCode",{parentName:"p"},"?")," is placed ",(0,i.mdx)("em",{parentName:"p"},"before")," the colon.\nIt is also possible to combine both syntaxes for an optional maybe type, for example ",(0,i.mdx)("inlineCode",{parentName:"p"},"{value?: ?number}"),"."),(0,i.mdx)("h2",{id:"toc-refining-maybe-types"},"Refining maybe types"),(0,i.mdx)("p",null,"Imagine we have the type ",(0,i.mdx)("inlineCode",{parentName:"p"},"?number"),", if we want to use that value as a ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),"\nwe'll need to first check that it is not ",(0,i.mdx)("inlineCode",{parentName:"p"},"null")," or ",(0,i.mdx)("inlineCode",{parentName:"p"},"undefined"),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsMaybeNumber(value: ?number): number {\n if (value !== null && value !== undefined) {\n return value * 2;\n }\n return 0;\n}\n")),(0,i.mdx)("p",null,"You can simplify the two checks against ",(0,i.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"undefined")," using a single\n",(0,i.mdx)("inlineCode",{parentName:"p"},"!= null")," check which will do both."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsMaybeNumber(value: ?number): number {\n if (value != null) {\n return value * 2;\n }\n return 0;\n}\n")),(0,i.mdx)("p",null,"Most double equal checks are discouraged in JavaScript, but the above pattern is safe (it checks for exactly ",(0,i.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"undefined"),")."),(0,i.mdx)("p",null,"You could also flip it around, and check to make sure that the value has a type\nof ",(0,i.mdx)("inlineCode",{parentName:"p"},"number")," before using it."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsMaybeNumber(value: ?number): number {\n if (typeof value === 'number') {\n return value * 2;\n }\n return 0;\n}\n")),(0,i.mdx)("p",null,"However, type refinements can be lost. For instance, calling a function after refining the type of an object's property will invalidate this refinement.\nConsult the ",(0,i.mdx)("a",{parentName:"p",href:"../../lang/refinements/#toc-refinement-invalidations"},"refinement invalidations")," docs for more details, to understand why Flow works this way,\nand how you can avoid this common pitfall."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5880.095348fe.js b/assets/js/5880.095348fe.js new file mode 100644 index 00000000000..96c2815d27a --- /dev/null +++ b/assets/js/5880.095348fe.js @@ -0,0 +1,686 @@ +"use strict"; +exports.id = 5880; +exports.ids = [5880]; +exports.modules = { + +/***/ 5880: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "TagAngleInterpolationBracket": () => (/* binding */ TagAngleInterpolationBracket), +/* harmony export */ "TagAngleInterpolationDollar": () => (/* binding */ TagAngleInterpolationDollar), +/* harmony export */ "TagAutoInterpolationBracket": () => (/* binding */ TagAutoInterpolationBracket), +/* harmony export */ "TagAutoInterpolationDollar": () => (/* binding */ TagAutoInterpolationDollar), +/* harmony export */ "TagBracketInterpolationBracket": () => (/* binding */ TagBracketInterpolationBracket), +/* harmony export */ "TagBracketInterpolationDollar": () => (/* binding */ TagBracketInterpolationDollar) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38139); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/basic-languages/freemarker2/freemarker2.ts +var EMPTY_ELEMENTS = [ + "assign", + "flush", + "ftl", + "return", + "global", + "import", + "include", + "break", + "continue", + "local", + "nested", + "nt", + "setting", + "stop", + "t", + "lt", + "rt", + "fallback" +]; +var BLOCK_ELEMENTS = [ + "attempt", + "autoesc", + "autoEsc", + "compress", + "comment", + "escape", + "noescape", + "function", + "if", + "list", + "items", + "sep", + "macro", + "noparse", + "noParse", + "noautoesc", + "noAutoEsc", + "outputformat", + "switch", + "visit", + "recurse" +]; +var TagSyntaxAngle = { + close: ">", + id: "angle", + open: "<" +}; +var TagSyntaxBracket = { + close: "\\]", + id: "bracket", + open: "\\[" +}; +var TagSyntaxAuto = { + close: "[>\\]]", + id: "auto", + open: "[<\\[]" +}; +var InterpolationSyntaxDollar = { + close: "\\}", + id: "dollar", + open1: "\\$", + open2: "\\{" +}; +var InterpolationSyntaxBracket = { + close: "\\]", + id: "bracket", + open1: "\\[", + open2: "=" +}; +function createLangConfiguration(ts) { + return { + brackets: [ + ["<", ">"], + ["[", "]"], + ["(", ")"], + ["{", "}"] + ], + comments: { + blockComment: [`${ts.open}--`, `--${ts.close}`] + }, + autoCloseBefore: "\n\r }]),.:;=", + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string"] } + ], + surroundingPairs: [ + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" } + ], + folding: { + markers: { + start: new RegExp(`${ts.open}#(?:${BLOCK_ELEMENTS.join("|")})([^/${ts.close}]*(?!/)${ts.close})[^${ts.open}]*$`), + end: new RegExp(`${ts.open}/#(?:${BLOCK_ELEMENTS.join("|")})[\\r\\n\\t ]*>`) + } + }, + onEnterRules: [ + { + beforeText: new RegExp(`${ts.open}#(?!(?:${EMPTY_ELEMENTS.join("|")}))([a-zA-Z_]+)([^/${ts.close}]*(?!/)${ts.close})[^${ts.open}]*$`), + afterText: new RegExp(`^${ts.open}/#([a-zA-Z_]+)[\\r\\n\\t ]*${ts.close}$`), + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent + } + }, + { + beforeText: new RegExp(`${ts.open}#(?!(?:${EMPTY_ELEMENTS.join("|")}))([a-zA-Z_]+)([^/${ts.close}]*(?!/)${ts.close})[^${ts.open}]*$`), + action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent } + } + ] + }; +} +function createLangConfigurationAuto() { + return { + brackets: [ + ["<", ">"], + ["[", "]"], + ["(", ")"], + ["{", "}"] + ], + autoCloseBefore: "\n\r }]),.:;=", + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string"] } + ], + surroundingPairs: [ + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" } + ], + folding: { + markers: { + start: new RegExp(`[<\\[]#(?:${BLOCK_ELEMENTS.join("|")})([^/>\\]]*(?!/)[>\\]])[^<\\[]*$`), + end: new RegExp(`[<\\[]/#(?:${BLOCK_ELEMENTS.join("|")})[\\r\\n\\t ]*>`) + } + }, + onEnterRules: [ + { + beforeText: new RegExp(`[<\\[]#(?!(?:${EMPTY_ELEMENTS.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`), + afterText: new RegExp(`^[<\\[]/#([a-zA-Z_]+)[\\r\\n\\t ]*[>\\]]$`), + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent + } + }, + { + beforeText: new RegExp(`[<\\[]#(?!(?:${EMPTY_ELEMENTS.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`), + action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent } + } + ] + }; +} +function createMonarchLanguage(ts, is) { + const id = `_${ts.id}_${is.id}`; + const s = (name) => name.replace(/__id__/g, id); + const r = (regexp) => { + const source = regexp.source.replace(/__id__/g, id); + return new RegExp(source, regexp.flags); + }; + return { + unicode: true, + includeLF: false, + start: s("default__id__"), + ignoreCase: false, + defaultToken: "invalid", + tokenPostfix: `.freemarker2`, + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + [s("open__id__")]: new RegExp(ts.open), + [s("close__id__")]: new RegExp(ts.close), + [s("iOpen1__id__")]: new RegExp(is.open1), + [s("iOpen2__id__")]: new RegExp(is.open2), + [s("iClose__id__")]: new RegExp(is.close), + [s("startTag__id__")]: r(/(@open__id__)(#)/), + [s("endTag__id__")]: r(/(@open__id__)(\/#)/), + [s("startOrEndTag__id__")]: r(/(@open__id__)(\/?#)/), + [s("closeTag1__id__")]: r(/((?:@blank)*)(@close__id__)/), + [s("closeTag2__id__")]: r(/((?:@blank)*\/?)(@close__id__)/), + blank: /[ \t\n\r]/, + keywords: ["false", "true", "in", "as", "using"], + directiveStartCloseTag1: /attempt|recover|sep|auto[eE]sc|no(?:autoe|AutoE)sc|compress|default|no[eE]scape|comment|no[pP]arse/, + directiveStartCloseTag2: /else|break|continue|return|stop|flush|t|lt|rt|nt|nested|recurse|fallback|ftl/, + directiveStartBlank: /if|else[iI]f|list|for[eE]ach|switch|case|assign|global|local|include|import|function|macro|transform|visit|stop|return|call|setting|output[fF]ormat|nested|recurse|escape|ftl|items/, + directiveEndCloseTag1: /if|list|items|sep|recover|attempt|for[eE]ach|local|global|assign|function|macro|output[fF]ormat|auto[eE]sc|no(?:autoe|AutoE)sc|compress|transform|switch|escape|no[eE]scape/, + escapedChar: /\\(?:[ntrfbgla\\'"\{=]|(?:x[0-9A-Fa-f]{1,4}))/, + asciiDigit: /[0-9]/, + integer: /[0-9]+/, + nonEscapedIdStartChar: /[\$@-Z_a-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u1FFF\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\u3040-\u318F\u31A0-\u31BA\u31F0-\u31FF\u3300-\u337F\u3400-\u4DB5\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\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\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\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\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\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\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/, + escapedIdChar: /\\[\-\.:#]/, + idStartChar: /(?:@nonEscapedIdStartChar)|(?:@escapedIdChar)/, + id: /(?:@idStartChar)(?:(?:@idStartChar)|(?:@asciiDigit))*/, + specialHashKeys: /\*\*|\*|false|true|in|as|using/, + namedSymbols: /<=|>=|\\lte|\\lt|<|\\gte|\\gt|>|&&|\\and|->|->|==|!=|\+=|-=|\*=|\/=|%=|\+\+|--|<=|&&|\|\||:|\.\.\.|\.\.\*|\.\.<|\.\.!|\?\?|=|<|\+|-|\*|\/|%|\||\.\.|\?|!|&|\.|,|;/, + arrows: ["->", "->"], + delimiters: [";", ":", ",", "."], + stringOperators: ["lte", "lt", "gte", "gt"], + noParseTags: ["noparse", "noParse", "comment"], + tokenizer: { + [s("default__id__")]: [ + { include: s("@directive_token__id__") }, + { include: s("@interpolation_and_text_token__id__") } + ], + [s("fmExpression__id__.directive")]: [ + { include: s("@blank_and_expression_comment_token__id__") }, + { include: s("@directive_end_token__id__") }, + { include: s("@expression_token__id__") } + ], + [s("fmExpression__id__.interpolation")]: [ + { include: s("@blank_and_expression_comment_token__id__") }, + { include: s("@expression_token__id__") }, + { include: s("@greater_operators_token__id__") } + ], + [s("inParen__id__.plain")]: [ + { include: s("@blank_and_expression_comment_token__id__") }, + { include: s("@directive_end_token__id__") }, + { include: s("@expression_token__id__") } + ], + [s("inParen__id__.gt")]: [ + { include: s("@blank_and_expression_comment_token__id__") }, + { include: s("@expression_token__id__") }, + { include: s("@greater_operators_token__id__") } + ], + [s("noSpaceExpression__id__")]: [ + { include: s("@no_space_expression_end_token__id__") }, + { include: s("@directive_end_token__id__") }, + { include: s("@expression_token__id__") } + ], + [s("unifiedCall__id__")]: [{ include: s("@unified_call_token__id__") }], + [s("singleString__id__")]: [{ include: s("@string_single_token__id__") }], + [s("doubleString__id__")]: [{ include: s("@string_double_token__id__") }], + [s("rawSingleString__id__")]: [{ include: s("@string_single_raw_token__id__") }], + [s("rawDoubleString__id__")]: [{ include: s("@string_double_raw_token__id__") }], + [s("expressionComment__id__")]: [{ include: s("@expression_comment_token__id__") }], + [s("noParse__id__")]: [{ include: s("@no_parse_token__id__") }], + [s("terseComment__id__")]: [{ include: s("@terse_comment_token__id__") }], + [s("directive_token__id__")]: [ + [ + r(/(?:@startTag__id__)(@directiveStartCloseTag1)(?:@closeTag1__id__)/), + ts.id === "auto" ? { + cases: { + "$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` }, + "$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` } + } + } : [ + { token: "@brackets.directive" }, + { token: "delimiter.directive" }, + { + cases: { + "@noParseTags": { token: "tag", next: s("@noParse__id__.$3") }, + "@default": { token: "tag" } + } + }, + { token: "delimiter.directive" }, + { token: "@brackets.directive" } + ] + ], + [ + r(/(?:@startTag__id__)(@directiveStartCloseTag2)(?:@closeTag2__id__)/), + ts.id === "auto" ? { + cases: { + "$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` }, + "$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` } + } + } : [ + { token: "@brackets.directive" }, + { token: "delimiter.directive" }, + { token: "tag" }, + { token: "delimiter.directive" }, + { token: "@brackets.directive" } + ] + ], + [ + r(/(?:@startTag__id__)(@directiveStartBlank)(@blank)/), + ts.id === "auto" ? { + cases: { + "$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` }, + "$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` } + } + } : [ + { token: "@brackets.directive" }, + { token: "delimiter.directive" }, + { token: "tag" }, + { token: "", next: s("@fmExpression__id__.directive") } + ] + ], + [ + r(/(?:@endTag__id__)(@directiveEndCloseTag1)(?:@closeTag1__id__)/), + ts.id === "auto" ? { + cases: { + "$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` }, + "$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` } + } + } : [ + { token: "@brackets.directive" }, + { token: "delimiter.directive" }, + { token: "tag" }, + { token: "delimiter.directive" }, + { token: "@brackets.directive" } + ] + ], + [ + r(/(@open__id__)(@)/), + ts.id === "auto" ? { + cases: { + "$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` }, + "$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` } + } + } : [ + { token: "@brackets.directive" }, + { token: "delimiter.directive", next: s("@unifiedCall__id__") } + ] + ], + [ + r(/(@open__id__)(\/@)((?:(?:@id)(?:\.(?:@id))*)?)(?:@closeTag1__id__)/), + [ + { token: "@brackets.directive" }, + { token: "delimiter.directive" }, + { token: "tag" }, + { token: "delimiter.directive" }, + { token: "@brackets.directive" } + ] + ], + [ + r(/(@open__id__)#--/), + ts.id === "auto" ? { + cases: { + "$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` }, + "$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` } + } + } : { token: "comment", next: s("@terseComment__id__") } + ], + [ + r(/(?:@startOrEndTag__id__)([a-zA-Z_]+)/), + ts.id === "auto" ? { + cases: { + "$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` }, + "$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` } + } + } : [ + { token: "@brackets.directive" }, + { token: "delimiter.directive" }, + { token: "tag.invalid", next: s("@fmExpression__id__.directive") } + ] + ] + ], + [s("interpolation_and_text_token__id__")]: [ + [ + r(/(@iOpen1__id__)(@iOpen2__id__)/), + [ + { token: is.id === "bracket" ? "@brackets.interpolation" : "delimiter.interpolation" }, + { + token: is.id === "bracket" ? "delimiter.interpolation" : "@brackets.interpolation", + next: s("@fmExpression__id__.interpolation") + } + ] + ], + [/[\$#<\[\{]|(?:@blank)+|[^\$<#\[\{\n\r\t ]+/, { token: "source" }] + ], + [s("string_single_token__id__")]: [ + [/[^'\\]/, { token: "string" }], + [/@escapedChar/, { token: "string.escape" }], + [/'/, { token: "string", next: "@pop" }] + ], + [s("string_double_token__id__")]: [ + [/[^"\\]/, { token: "string" }], + [/@escapedChar/, { token: "string.escape" }], + [/"/, { token: "string", next: "@pop" }] + ], + [s("string_single_raw_token__id__")]: [ + [/[^']+/, { token: "string.raw" }], + [/'/, { token: "string.raw", next: "@pop" }] + ], + [s("string_double_raw_token__id__")]: [ + [/[^"]+/, { token: "string.raw" }], + [/"/, { token: "string.raw", next: "@pop" }] + ], + [s("expression_token__id__")]: [ + [ + /(r?)(['"])/, + { + cases: { + "r'": [ + { token: "keyword" }, + { token: "string.raw", next: s("@rawSingleString__id__") } + ], + 'r"': [ + { token: "keyword" }, + { token: "string.raw", next: s("@rawDoubleString__id__") } + ], + "'": [{ token: "source" }, { token: "string", next: s("@singleString__id__") }], + '"': [{ token: "source" }, { token: "string", next: s("@doubleString__id__") }] + } + } + ], + [ + /(?:@integer)(?:\.(?:@integer))?/, + { + cases: { + "(?:@integer)": { token: "number" }, + "@default": { token: "number.float" } + } + } + ], + [ + /(\.)(@blank*)(@specialHashKeys)/, + [{ token: "delimiter" }, { token: "" }, { token: "identifier" }] + ], + [ + /(?:@namedSymbols)/, + { + cases: { + "@arrows": { token: "meta.arrow" }, + "@delimiters": { token: "delimiter" }, + "@default": { token: "operators" } + } + } + ], + [ + /@id/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@stringOperators": { token: "operators" }, + "@default": { token: "identifier" } + } + } + ], + [ + /[\[\]\(\)\{\}]/, + { + cases: { + "\\[": { + cases: { + "$S2==gt": { token: "@brackets", next: s("@inParen__id__.gt") }, + "@default": { token: "@brackets", next: s("@inParen__id__.plain") } + } + }, + "\\]": { + cases: { + ...is.id === "bracket" ? { + "$S2==interpolation": { token: "@brackets.interpolation", next: "@popall" } + } : {}, + ...ts.id === "bracket" ? { + "$S2==directive": { token: "@brackets.directive", next: "@popall" } + } : {}, + [s("$S1==inParen__id__")]: { token: "@brackets", next: "@pop" }, + "@default": { token: "@brackets" } + } + }, + "\\(": { token: "@brackets", next: s("@inParen__id__.gt") }, + "\\)": { + cases: { + [s("$S1==inParen__id__")]: { token: "@brackets", next: "@pop" }, + "@default": { token: "@brackets" } + } + }, + "\\{": { + cases: { + "$S2==gt": { token: "@brackets", next: s("@inParen__id__.gt") }, + "@default": { token: "@brackets", next: s("@inParen__id__.plain") } + } + }, + "\\}": { + cases: { + ...is.id === "bracket" ? {} : { + "$S2==interpolation": { token: "@brackets.interpolation", next: "@popall" } + }, + [s("$S1==inParen__id__")]: { token: "@brackets", next: "@pop" }, + "@default": { token: "@brackets" } + } + } + } + } + ], + [/\$\{/, { token: "delimiter.invalid" }] + ], + [s("blank_and_expression_comment_token__id__")]: [ + [/(?:@blank)+/, { token: "" }], + [/[<\[][#!]--/, { token: "comment", next: s("@expressionComment__id__") }] + ], + [s("directive_end_token__id__")]: [ + [ + />/, + ts.id === "bracket" ? { token: "operators" } : { token: "@brackets.directive", next: "@popall" } + ], + [ + r(/(\/)(@close__id__)/), + [{ token: "delimiter.directive" }, { token: "@brackets.directive", next: "@popall" }] + ] + ], + [s("greater_operators_token__id__")]: [ + [/>/, { token: "operators" }], + [/>=/, { token: "operators" }] + ], + [s("no_space_expression_end_token__id__")]: [ + [/(?:@blank)+/, { token: "", switchTo: s("@fmExpression__id__.directive") }] + ], + [s("unified_call_token__id__")]: [ + [ + /(@id)((?:@blank)+)/, + [{ token: "tag" }, { token: "", next: s("@fmExpression__id__.directive") }] + ], + [ + r(/(@id)(\/?)(@close__id__)/), + [ + { token: "tag" }, + { token: "delimiter.directive" }, + { token: "@brackets.directive", next: "@popall" } + ] + ], + [/./, { token: "@rematch", next: s("@noSpaceExpression__id__") }] + ], + [s("no_parse_token__id__")]: [ + [ + r(/(@open__id__)(\/#?)([a-zA-Z]+)((?:@blank)*)(@close__id__)/), + { + cases: { + "$S2==$3": [ + { token: "@brackets.directive" }, + { token: "delimiter.directive" }, + { token: "tag" }, + { token: "" }, + { token: "@brackets.directive", next: "@popall" } + ], + "$S2==comment": [ + { token: "comment" }, + { token: "comment" }, + { token: "comment" }, + { token: "comment" }, + { token: "comment" } + ], + "@default": [ + { token: "source" }, + { token: "source" }, + { token: "source" }, + { token: "source" }, + { token: "source" } + ] + } + } + ], + [ + /[^<\[\-]+|[<\[\-]/, + { + cases: { + "$S2==comment": { token: "comment" }, + "@default": { token: "source" } + } + } + ] + ], + [s("expression_comment_token__id__")]: [ + [ + /--[>\]]/, + { + token: "comment", + next: "@pop" + } + ], + [/[^\->\]]+|[>\]\-]/, { token: "comment" }] + ], + [s("terse_comment_token__id__")]: [ + [r(/--(?:@close__id__)/), { token: "comment", next: "@popall" }], + [/[^<\[\-]+|[<\[\-]/, { token: "comment" }] + ] + } + }; +} +function createMonarchLanguageAuto(is) { + const angle = createMonarchLanguage(TagSyntaxAngle, is); + const bracket = createMonarchLanguage(TagSyntaxBracket, is); + const auto = createMonarchLanguage(TagSyntaxAuto, is); + return { + ...angle, + ...bracket, + ...auto, + unicode: true, + includeLF: false, + start: `default_auto_${is.id}`, + ignoreCase: false, + defaultToken: "invalid", + tokenPostfix: `.freemarker2`, + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + tokenizer: { + ...angle.tokenizer, + ...bracket.tokenizer, + ...auto.tokenizer + } + }; +} +var TagAngleInterpolationDollar = { + conf: createLangConfiguration(TagSyntaxAngle), + language: createMonarchLanguage(TagSyntaxAngle, InterpolationSyntaxDollar) +}; +var TagBracketInterpolationDollar = { + conf: createLangConfiguration(TagSyntaxBracket), + language: createMonarchLanguage(TagSyntaxBracket, InterpolationSyntaxDollar) +}; +var TagAngleInterpolationBracket = { + conf: createLangConfiguration(TagSyntaxAngle), + language: createMonarchLanguage(TagSyntaxAngle, InterpolationSyntaxBracket) +}; +var TagBracketInterpolationBracket = { + conf: createLangConfiguration(TagSyntaxBracket), + language: createMonarchLanguage(TagSyntaxBracket, InterpolationSyntaxBracket) +}; +var TagAutoInterpolationDollar = { + conf: createLangConfigurationAuto(), + language: createMonarchLanguageAuto(InterpolationSyntaxDollar) +}; +var TagAutoInterpolationBracket = { + conf: createLangConfigurationAuto(), + language: createMonarchLanguageAuto(InterpolationSyntaxBracket) +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/5880.14f5a392.js b/assets/js/5880.14f5a392.js new file mode 100644 index 00000000000..fe8a618f132 --- /dev/null +++ b/assets/js/5880.14f5a392.js @@ -0,0 +1,2 @@ +/*! For license information please see 5880.14f5a392.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[5880],{5880:(e,t,n)=>{n.r(t),n.d(t,{TagAngleInterpolationBracket:()=>B,TagAngleInterpolationDollar:()=>D,TagAutoInterpolationBracket:()=>v,TagAutoInterpolationDollar:()=>w,TagBracketInterpolationBracket:()=>C,TagBracketInterpolationDollar:()=>E});var o,i,_=n(38139),r=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,u=Object.prototype.hasOwnProperty,c=(e,t,n,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of s(t))u.call(e,i)||i===n||r(e,i,{get:()=>t[i],enumerable:!(o=a(t,i))||o.enumerable});return e},d={};c(d,o=_,"default"),i&&c(i,o,"default");var l=["assign","flush","ftl","return","global","import","include","break","continue","local","nested","nt","setting","stop","t","lt","rt","fallback"],k=["attempt","autoesc","autoEsc","compress","comment","escape","noescape","function","if","list","items","sep","macro","noparse","noParse","noautoesc","noAutoEsc","outputformat","switch","visit","recurse"],p={close:">",id:"angle",open:"<"},g={close:"\\]",id:"bracket",open:"\\["},A={close:"[>\\]]",id:"auto",open:"[<\\[]"},m={close:"\\}",id:"dollar",open1:"\\$",open2:"\\{"},f={close:"\\]",id:"bracket",open1:"\\[",open2:"="};function F(e){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],comments:{blockComment:[`${e.open}--`,`--${e.close}`]},autoCloseBefore:"\n\r\t }]),.:;=",autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],folding:{markers:{start:new RegExp(`${e.open}#(?:${k.join("|")})([^/${e.close}]*(?!/)${e.close})[^${e.open}]*$`),end:new RegExp(`${e.open}/#(?:${k.join("|")})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`${e.open}#(?!(?:${l.join("|")}))([a-zA-Z_]+)([^/${e.close}]*(?!/)${e.close})[^${e.open}]*$`),afterText:new RegExp(`^${e.open}/#([a-zA-Z_]+)[\\r\\n\\t ]*${e.close}$`),action:{indentAction:d.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`${e.open}#(?!(?:${l.join("|")}))([a-zA-Z_]+)([^/${e.close}]*(?!/)${e.close})[^${e.open}]*$`),action:{indentAction:d.languages.IndentAction.Indent}}]}}function b(){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],autoCloseBefore:"\n\r\t }]),.:;=",autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],folding:{markers:{start:new RegExp(`[<\\[]#(?:${k.join("|")})([^/>\\]]*(?!/)[>\\]])[^<\\[]*$`),end:new RegExp(`[<\\[]/#(?:${k.join("|")})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`[<\\[]#(?!(?:${l.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),afterText:new RegExp("^[<\\[]/#([a-zA-Z_]+)[\\r\\n\\t ]*[>\\]]$"),action:{indentAction:d.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`[<\\[]#(?!(?:${l.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),action:{indentAction:d.languages.IndentAction.Indent}}]}}function x(e,t){const n=`_${e.id}_${t.id}`,o=e=>e.replace(/__id__/g,n),i=e=>{const t=e.source.replace(/__id__/g,n);return new RegExp(t,e.flags)};return{unicode:!0,includeLF:!1,start:o("default__id__"),ignoreCase:!1,defaultToken:"invalid",tokenPostfix:".freemarker2",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],[o("open__id__")]:new RegExp(e.open),[o("close__id__")]:new RegExp(e.close),[o("iOpen1__id__")]:new RegExp(t.open1),[o("iOpen2__id__")]:new RegExp(t.open2),[o("iClose__id__")]:new RegExp(t.close),[o("startTag__id__")]:i(/(@open__id__)(#)/),[o("endTag__id__")]:i(/(@open__id__)(\/#)/),[o("startOrEndTag__id__")]:i(/(@open__id__)(\/?#)/),[o("closeTag1__id__")]:i(/((?:@blank)*)(@close__id__)/),[o("closeTag2__id__")]:i(/((?:@blank)*\/?)(@close__id__)/),blank:/[ \t\n\r]/,keywords:["false","true","in","as","using"],directiveStartCloseTag1:/attempt|recover|sep|auto[eE]sc|no(?:autoe|AutoE)sc|compress|default|no[eE]scape|comment|no[pP]arse/,directiveStartCloseTag2:/else|break|continue|return|stop|flush|t|lt|rt|nt|nested|recurse|fallback|ftl/,directiveStartBlank:/if|else[iI]f|list|for[eE]ach|switch|case|assign|global|local|include|import|function|macro|transform|visit|stop|return|call|setting|output[fF]ormat|nested|recurse|escape|ftl|items/,directiveEndCloseTag1:/if|list|items|sep|recover|attempt|for[eE]ach|local|global|assign|function|macro|output[fF]ormat|auto[eE]sc|no(?:autoe|AutoE)sc|compress|transform|switch|escape|no[eE]scape/,escapedChar:/\\(?:[ntrfbgla\\'"\{=]|(?:x[0-9A-Fa-f]{1,4}))/,asciiDigit:/[0-9]/,integer:/[0-9]+/,nonEscapedIdStartChar:/[\$@-Z_a-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u1FFF\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\u3040-\u318F\u31A0-\u31BA\u31F0-\u31FF\u3300-\u337F\u3400-\u4DB5\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\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\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\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\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\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\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,escapedIdChar:/\\[\-\.:#]/,idStartChar:/(?:@nonEscapedIdStartChar)|(?:@escapedIdChar)/,id:/(?:@idStartChar)(?:(?:@idStartChar)|(?:@asciiDigit))*/,specialHashKeys:/\*\*|\*|false|true|in|as|using/,namedSymbols:/<=|>=|\\lte|\\lt|<|\\gte|\\gt|>|&&|\\and|->|->|==|!=|\+=|-=|\*=|\/=|%=|\+\+|--|<=|&&|\|\||:|\.\.\.|\.\.\*|\.\.<|\.\.!|\?\?|=|<|\+|-|\*|\/|%|\||\.\.|\?|!|&|\.|,|;/,arrows:["->","->"],delimiters:[";",":",",","."],stringOperators:["lte","lt","gte","gt"],noParseTags:["noparse","noParse","comment"],tokenizer:{[o("default__id__")]:[{include:o("@directive_token__id__")},{include:o("@interpolation_and_text_token__id__")}],[o("fmExpression__id__.directive")]:[{include:o("@blank_and_expression_comment_token__id__")},{include:o("@directive_end_token__id__")},{include:o("@expression_token__id__")}],[o("fmExpression__id__.interpolation")]:[{include:o("@blank_and_expression_comment_token__id__")},{include:o("@expression_token__id__")},{include:o("@greater_operators_token__id__")}],[o("inParen__id__.plain")]:[{include:o("@blank_and_expression_comment_token__id__")},{include:o("@directive_end_token__id__")},{include:o("@expression_token__id__")}],[o("inParen__id__.gt")]:[{include:o("@blank_and_expression_comment_token__id__")},{include:o("@expression_token__id__")},{include:o("@greater_operators_token__id__")}],[o("noSpaceExpression__id__")]:[{include:o("@no_space_expression_end_token__id__")},{include:o("@directive_end_token__id__")},{include:o("@expression_token__id__")}],[o("unifiedCall__id__")]:[{include:o("@unified_call_token__id__")}],[o("singleString__id__")]:[{include:o("@string_single_token__id__")}],[o("doubleString__id__")]:[{include:o("@string_double_token__id__")}],[o("rawSingleString__id__")]:[{include:o("@string_single_raw_token__id__")}],[o("rawDoubleString__id__")]:[{include:o("@string_double_raw_token__id__")}],[o("expressionComment__id__")]:[{include:o("@expression_comment_token__id__")}],[o("noParse__id__")]:[{include:o("@no_parse_token__id__")}],[o("terseComment__id__")]:[{include:o("@terse_comment_token__id__")}],[o("directive_token__id__")]:[[i(/(?:@startTag__id__)(@directiveStartCloseTag1)(?:@closeTag1__id__)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{cases:{"@noParseTags":{token:"tag",next:o("@noParse__id__.$3")},"@default":{token:"tag"}}},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[i(/(?:@startTag__id__)(@directiveStartCloseTag2)(?:@closeTag2__id__)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[i(/(?:@startTag__id__)(@directiveStartBlank)(@blank)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"",next:o("@fmExpression__id__.directive")}]],[i(/(?:@endTag__id__)(@directiveEndCloseTag1)(?:@closeTag1__id__)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[i(/(@open__id__)(@)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive",next:o("@unifiedCall__id__")}]],[i(/(@open__id__)(\/@)((?:(?:@id)(?:\.(?:@id))*)?)(?:@closeTag1__id__)/),[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[i(/(@open__id__)#--/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:{token:"comment",next:o("@terseComment__id__")}],[i(/(?:@startOrEndTag__id__)([a-zA-Z_]+)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag.invalid",next:o("@fmExpression__id__.directive")}]]],[o("interpolation_and_text_token__id__")]:[[i(/(@iOpen1__id__)(@iOpen2__id__)/),[{token:"bracket"===t.id?"@brackets.interpolation":"delimiter.interpolation"},{token:"bracket"===t.id?"delimiter.interpolation":"@brackets.interpolation",next:o("@fmExpression__id__.interpolation")}]],[/[\$#<\[\{]|(?:@blank)+|[^\$<#\[\{\n\r\t ]+/,{token:"source"}]],[o("string_single_token__id__")]:[[/[^'\\]/,{token:"string"}],[/@escapedChar/,{token:"string.escape"}],[/'/,{token:"string",next:"@pop"}]],[o("string_double_token__id__")]:[[/[^"\\]/,{token:"string"}],[/@escapedChar/,{token:"string.escape"}],[/"/,{token:"string",next:"@pop"}]],[o("string_single_raw_token__id__")]:[[/[^']+/,{token:"string.raw"}],[/'/,{token:"string.raw",next:"@pop"}]],[o("string_double_raw_token__id__")]:[[/[^"]+/,{token:"string.raw"}],[/"/,{token:"string.raw",next:"@pop"}]],[o("expression_token__id__")]:[[/(r?)(['"])/,{cases:{"r'":[{token:"keyword"},{token:"string.raw",next:o("@rawSingleString__id__")}],'r"':[{token:"keyword"},{token:"string.raw",next:o("@rawDoubleString__id__")}],"'":[{token:"source"},{token:"string",next:o("@singleString__id__")}],'"':[{token:"source"},{token:"string",next:o("@doubleString__id__")}]}}],[/(?:@integer)(?:\.(?:@integer))?/,{cases:{"(?:@integer)":{token:"number"},"@default":{token:"number.float"}}}],[/(\.)(@blank*)(@specialHashKeys)/,[{token:"delimiter"},{token:""},{token:"identifier"}]],[/(?:@namedSymbols)/,{cases:{"@arrows":{token:"meta.arrow"},"@delimiters":{token:"delimiter"},"@default":{token:"operators"}}}],[/@id/,{cases:{"@keywords":{token:"keyword.$0"},"@stringOperators":{token:"operators"},"@default":{token:"identifier"}}}],[/[\[\]\(\)\{\}]/,{cases:{"\\[":{cases:{"$S2==gt":{token:"@brackets",next:o("@inParen__id__.gt")},"@default":{token:"@brackets",next:o("@inParen__id__.plain")}}},"\\]":{cases:{..."bracket"===t.id?{"$S2==interpolation":{token:"@brackets.interpolation",next:"@popall"}}:{},..."bracket"===e.id?{"$S2==directive":{token:"@brackets.directive",next:"@popall"}}:{},[o("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}},"\\(":{token:"@brackets",next:o("@inParen__id__.gt")},"\\)":{cases:{[o("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}},"\\{":{cases:{"$S2==gt":{token:"@brackets",next:o("@inParen__id__.gt")},"@default":{token:"@brackets",next:o("@inParen__id__.plain")}}},"\\}":{cases:{..."bracket"===t.id?{}:{"$S2==interpolation":{token:"@brackets.interpolation",next:"@popall"}},[o("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}}}}],[/\$\{/,{token:"delimiter.invalid"}]],[o("blank_and_expression_comment_token__id__")]:[[/(?:@blank)+/,{token:""}],[/[<\[][#!]--/,{token:"comment",next:o("@expressionComment__id__")}]],[o("directive_end_token__id__")]:[[/>/,"bracket"===e.id?{token:"operators"}:{token:"@brackets.directive",next:"@popall"}],[i(/(\/)(@close__id__)/),[{token:"delimiter.directive"},{token:"@brackets.directive",next:"@popall"}]]],[o("greater_operators_token__id__")]:[[/>/,{token:"operators"}],[/>=/,{token:"operators"}]],[o("no_space_expression_end_token__id__")]:[[/(?:@blank)+/,{token:"",switchTo:o("@fmExpression__id__.directive")}]],[o("unified_call_token__id__")]:[[/(@id)((?:@blank)+)/,[{token:"tag"},{token:"",next:o("@fmExpression__id__.directive")}]],[i(/(@id)(\/?)(@close__id__)/),[{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive",next:"@popall"}]],[/./,{token:"@rematch",next:o("@noSpaceExpression__id__")}]],[o("no_parse_token__id__")]:[[i(/(@open__id__)(\/#?)([a-zA-Z]+)((?:@blank)*)(@close__id__)/),{cases:{"$S2==$3":[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:""},{token:"@brackets.directive",next:"@popall"}],"$S2==comment":[{token:"comment"},{token:"comment"},{token:"comment"},{token:"comment"},{token:"comment"}],"@default":[{token:"source"},{token:"source"},{token:"source"},{token:"source"},{token:"source"}]}}],[/[^<\[\-]+|[<\[\-]/,{cases:{"$S2==comment":{token:"comment"},"@default":{token:"source"}}}]],[o("expression_comment_token__id__")]:[[/--[>\]]/,{token:"comment",next:"@pop"}],[/[^\->\]]+|[>\]\-]/,{token:"comment"}]],[o("terse_comment_token__id__")]:[[i(/--(?:@close__id__)/),{token:"comment",next:"@popall"}],[/[^<\[\-]+|[<\[\-]/,{token:"comment"}]]}}}function $(e){const t=x(p,e),n=x(g,e),o=x(A,e);return{...t,...n,...o,unicode:!0,includeLF:!1,start:`default_auto_${e.id}`,ignoreCase:!1,defaultToken:"invalid",tokenPostfix:".freemarker2",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{...t.tokenizer,...n.tokenizer,...o.tokenizer}}}var D={conf:F(p),language:x(p,m)},E={conf:F(g),language:x(g,m)},B={conf:F(p),language:x(p,f)},C={conf:F(g),language:x(g,f)},w={conf:b(),language:$(m)},v={conf:b(),language:$(f)}}}]); \ No newline at end of file diff --git a/assets/js/5880.14f5a392.js.LICENSE.txt b/assets/js/5880.14f5a392.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/5880.14f5a392.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/5898.367d7429.js b/assets/js/5898.367d7429.js new file mode 100644 index 00000000000..8e9d419a315 --- /dev/null +++ b/assets/js/5898.367d7429.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[5898],{15898:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>n,metadata:()=>i,toc:()=>h});var r=o(87462),a=(o(67294),o(3905));const n={author:"Gabe Levi",hide_table_of_contents:!0},s=void 0,i={permalink:"/blog/2015/10/07/Version-0.17.0",source:"@site/blog/2015-10-07-Version-0.17.0.md",title:"Version-0.17.0",description:"Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:",date:"2015-10-07T00:00:00.000Z",formattedDate:"October 7, 2015",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Typing Generators with Flow",permalink:"/blog/2015/11/09/Generators"},nextItem:{title:"Version-0.16.0",permalink:"/blog/2015/09/22/Version-0.16.0"}},l={authorsImageUrls:[void 0]},h=[],d={toc:h};function u(e){let{components:t,...o}=e;return(0,a.mdx)("wrapper",(0,r.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:"),(0,a.mdx)("p",null,"![New error format]","({{ site.baseurl }}/static/new_error_format_v0_17_0.png)"),(0,a.mdx)("p",null,"This should hopefully help our command line users understand many errors without having to refer to their source code. We'll keep iterating on this format, so tell us what you like and what you don't like! Thanks to ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/frantic"},"@frantic")," for building this feature!"),(0,a.mdx)("p",null,"There are a whole bunch of other features and fixes in this release! Head on over to our ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/releases/tag/v0.17.0"},"Release")," for the full list!"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5962.1b154b2a.js b/assets/js/5962.1b154b2a.js new file mode 100644 index 00000000000..f9b33980afa --- /dev/null +++ b/assets/js/5962.1b154b2a.js @@ -0,0 +1,212 @@ +"use strict"; +exports.id = 5962; +exports.ids = [5962]; +exports.modules = { + +/***/ 85962: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/sparql/sparql.ts +var conf = { + comments: { + lineComment: "#" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "'", close: "'", notIn: ["string"] }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".rq", + brackets: [ + { token: "delimiter.curly", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" }, + { token: "delimiter.angle", open: "<", close: ">" } + ], + keywords: [ + "add", + "as", + "asc", + "ask", + "base", + "by", + "clear", + "construct", + "copy", + "create", + "data", + "delete", + "desc", + "describe", + "distinct", + "drop", + "false", + "filter", + "from", + "graph", + "group", + "having", + "in", + "insert", + "limit", + "load", + "minus", + "move", + "named", + "not", + "offset", + "optional", + "order", + "prefix", + "reduced", + "select", + "service", + "silent", + "to", + "true", + "undef", + "union", + "using", + "values", + "where", + "with" + ], + builtinFunctions: [ + "a", + "abs", + "avg", + "bind", + "bnode", + "bound", + "ceil", + "coalesce", + "concat", + "contains", + "count", + "datatype", + "day", + "encode_for_uri", + "exists", + "floor", + "group_concat", + "hours", + "if", + "iri", + "isblank", + "isiri", + "isliteral", + "isnumeric", + "isuri", + "lang", + "langmatches", + "lcase", + "max", + "md5", + "min", + "minutes", + "month", + "now", + "rand", + "regex", + "replace", + "round", + "sameterm", + "sample", + "seconds", + "sha1", + "sha256", + "sha384", + "sha512", + "str", + "strafter", + "strbefore", + "strdt", + "strends", + "strlang", + "strlen", + "strstarts", + "struuid", + "substr", + "sum", + "timezone", + "tz", + "ucase", + "uri", + "uuid", + "year" + ], + ignoreCase: true, + tokenizer: { + root: [ + [/<[^\s\u00a0>]*>?/, "tag"], + { include: "@strings" }, + [/#.*/, "comment"], + [/[{}()\[\]]/, "@brackets"], + [/[;,.]/, "delimiter"], + [/[_\w\d]+:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])*/, "tag"], + [/:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])+/, "tag"], + [ + /[$?]?[_\w\d]+/, + { + cases: { + "@keywords": { token: "keyword" }, + "@builtinFunctions": { token: "predefined.sql" }, + "@default": "identifier" + } + } + ], + [/\^\^/, "operator.sql"], + [/\^[*+\-<>=&|^\/!?]*/, "operator.sql"], + [/[*+\-<>=&|\/!?]/, "operator.sql"], + [/@[a-z\d\-]*/, "metatag.html"], + [/\s+/, "white"] + ], + strings: [ + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/'$/, "string.sql", "@pop"], + [/'/, "string.sql", "@stringBody"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"$/, "string.sql", "@pop"], + [/"/, "string.sql", "@dblStringBody"] + ], + stringBody: [ + [/[^\\']+/, "string.sql"], + [/\\./, "string.escape"], + [/'/, "string.sql", "@pop"] + ], + dblStringBody: [ + [/[^\\"]+/, "string.sql"], + [/\\./, "string.escape"], + [/"/, "string.sql", "@pop"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/5962.cf4e9fcb.js b/assets/js/5962.cf4e9fcb.js new file mode 100644 index 00000000000..2df9cb5d17a --- /dev/null +++ b/assets/js/5962.cf4e9fcb.js @@ -0,0 +1,2 @@ +/*! For license information please see 5962.cf4e9fcb.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[5962],{85962:(e,s,t)=>{t.r(s),t.d(s,{conf:()=>n,language:()=>i});var n={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"'",close:"'",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"}]},i={defaultToken:"",tokenPostfix:".rq",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["add","as","asc","ask","base","by","clear","construct","copy","create","data","delete","desc","describe","distinct","drop","false","filter","from","graph","group","having","in","insert","limit","load","minus","move","named","not","offset","optional","order","prefix","reduced","select","service","silent","to","true","undef","union","using","values","where","with"],builtinFunctions:["a","abs","avg","bind","bnode","bound","ceil","coalesce","concat","contains","count","datatype","day","encode_for_uri","exists","floor","group_concat","hours","if","iri","isblank","isiri","isliteral","isnumeric","isuri","lang","langmatches","lcase","max","md5","min","minutes","month","now","rand","regex","replace","round","sameterm","sample","seconds","sha1","sha256","sha384","sha512","str","strafter","strbefore","strdt","strends","strlang","strlen","strstarts","struuid","substr","sum","timezone","tz","ucase","uri","uuid","year"],ignoreCase:!0,tokenizer:{root:[[/<[^\s\u00a0>]*>?/,"tag"],{include:"@strings"},[/#.*/,"comment"],[/[{}()\[\]]/,"@brackets"],[/[;,.]/,"delimiter"],[/[_\w\d]+:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])*/,"tag"],[/:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])+/,"tag"],[/[$?]?[_\w\d]+/,{cases:{"@keywords":{token:"keyword"},"@builtinFunctions":{token:"predefined.sql"},"@default":"identifier"}}],[/\^\^/,"operator.sql"],[/\^[*+\-<>=&|^\/!?]*/,"operator.sql"],[/[*+\-<>=&|\/!?]/,"operator.sql"],[/@[a-z\d\-]*/,"metatag.html"],[/\s+/,"white"]],strings:[[/'([^'\\]|\\.)*$/,"string.invalid"],[/'$/,"string.sql","@pop"],[/'/,"string.sql","@stringBody"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"$/,"string.sql","@pop"],[/"/,"string.sql","@dblStringBody"]],stringBody:[[/[^\\']+/,"string.sql"],[/\\./,"string.escape"],[/'/,"string.sql","@pop"]],dblStringBody:[[/[^\\"]+/,"string.sql"],[/\\./,"string.escape"],[/"/,"string.sql","@pop"]]}}}}]); \ No newline at end of file diff --git a/assets/js/5962.cf4e9fcb.js.LICENSE.txt b/assets/js/5962.cf4e9fcb.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/5962.cf4e9fcb.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/5975.ba58926b.js b/assets/js/5975.ba58926b.js new file mode 100644 index 00000000000..a19c644602a --- /dev/null +++ b/assets/js/5975.ba58926b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[5975],{55975:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var o=a(87462),n=(a(67294),a(3905));const i={title:"Windows Support is Here!","short-title":"Windows Support",author:"Gabe Levi",hide_table_of_contents:!0},r=void 0,s={permalink:"/blog/2016/08/01/Windows-Support",source:"@site/blog/2016-08-01-Windows-Support.md",title:"Windows Support is Here!",description:"We are excited to announce that Flow is now officially available on 64-bit",date:"2016-08-01T00:00:00.000Z",formattedDate:"August 1, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Windows Support is Here!","short-title":"Windows Support",author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Property Variance and Other Upcoming Changes",permalink:"/blog/2016/10/04/Property-Variance"},nextItem:{title:"New Implementation of Unions and Intersections",permalink:"/blog/2016/07/01/New-Unions-Intersections"}},p={authorsImageUrls:[void 0]},l=[],m={toc:l};function d(e){let{components:t,...a}=e;return(0,n.mdx)("wrapper",(0,o.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"We are excited to announce that Flow is now officially available on 64-bit\nWindows! Starting with\n",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/releases/tag/v0.30.0"},"Flow v0.30.0"),", we will\npublish a Windows binary with each release. You can download the Windows binary\nin a .zip file directly from the\n",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/releases"},"GitHub releases page")," or install it\nusing the ",(0,n.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/package/flow-bin"},"flow-bin npm package"),". Try\nit out and ",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues"},"report any issues")," you\ncome across!"),(0,n.mdx)("p",null,"![Windows Support GIF]","({{ site.baseurl }}/static/windows.gif)"),(0,n.mdx)("p",null,"Getting Flow working on Windows was not easy, and it was made possible by the\nhard work of ",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/OCamlPro-Henry"},"Gr\xe9goire"),",\n",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/OCamlPro-Bozman"},"\xc7agdas")," and\n",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/lefessan"},"Fabrice")," from\n",(0,n.mdx)("a",{parentName:"p",href:"https://www.ocamlpro.com/"},"OCamlPro"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6020.fd5de0c7.js b/assets/js/6020.fd5de0c7.js new file mode 100644 index 00000000000..5bfae5698bd --- /dev/null +++ b/assets/js/6020.fd5de0c7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6020],{16020:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>r,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>m});var n=o(87462),s=(o(67294),o(3905));const i={title:"Announcing Flow Comments","short-title":"Flow Comments",author:"Gabe Levi",hide_table_of_contents:!0},a=void 0,l={permalink:"/blog/2015/02/20/Flow-Comments",source:"@site/blog/2015-02-20-Flow-Comments.md",title:"Announcing Flow Comments",description:"As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can't fit a Flow-stripping transformation into their setup. This was one of our most requested features and hopefully it will enable even more people to use Flow!",date:"2015-02-20T00:00:00.000Z",formattedDate:"February 20, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Announcing Flow Comments","short-title":"Flow Comments",author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Announcing Bounded Polymorphism",permalink:"/blog/2015/03/12/Bounded-Polymorphism"},nextItem:{title:"Announcing Import Type",permalink:"/blog/2015/02/18/Import-Types"}},r={authorsImageUrls:[void 0]},m=[],c={toc:m};function p(e){let{components:t,...o}=e;return(0,s.mdx)("wrapper",(0,n.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can't fit a Flow-stripping transformation into their setup. This was one of our ",(0,s.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/3"},"most requested features")," and hopefully it will enable even more people to use Flow!"),(0,s.mdx)("p",null,"This feature introduces 3 special comments: ",(0,s.mdx)("inlineCode",{parentName:"p"},"/*:"),", ",(0,s.mdx)("inlineCode",{parentName:"p"},"/*::"),", and ",(0,s.mdx)("inlineCode",{parentName:"p"},"/*flow-include"),". Flow will read the code inside these special comments and treat the code as if the special comment tokens didn't exist. These special comments are valid JavaScript block comments, so your JavaScript engine will ignore the code inside the comments."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6065.9ee332e5.js b/assets/js/6065.9ee332e5.js new file mode 100644 index 00000000000..bebb66d2551 --- /dev/null +++ b/assets/js/6065.9ee332e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6065],{26065:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var n=o(87462),r=(o(67294),o(3905));const a={title:"Introducing Flow-Typed","short-title":"Introducing Flow-Typed",author:"Jeff Morrison",hide_table_of_contents:!0},i=void 0,l={permalink:"/blog/2016/10/13/Flow-Typed",source:"@site/blog/2016-10-13-Flow-Typed.md",title:"Introducing Flow-Typed",description:"Having high-quality and community-driven library definitions (\u201clibdefs\u201d) are",date:"2016-10-13T00:00:00.000Z",formattedDate:"October 13, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Jeff Morrison"}],frontMatter:{title:"Introducing Flow-Typed","short-title":"Introducing Flow-Typed",author:"Jeff Morrison",hide_table_of_contents:!0},prevItem:{title:"Strict Checking of Function Call Arity",permalink:"/blog/2017/05/07/Strict-Function-Call-Arity"},nextItem:{title:"Property Variance and Other Upcoming Changes",permalink:"/blog/2016/10/04/Property-Variance"}},s={authorsImageUrls:[void 0]},d=[],p={toc:d};function c(e){let{components:t,...o}=e;return(0,r.mdx)("wrapper",(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Having high-quality and community-driven library definitions (\u201clibdefs\u201d) are\nimportant for having a great experience with Flow. Today, we are introducing\n",(0,r.mdx)("strong",{parentName:"p"},"flow-typed"),": A ",(0,r.mdx)("a",{parentName:"p",href:"https://github.com/flowtype/flow-typed/"},"repository")," and\n",(0,r.mdx)("a",{parentName:"p",href:"http://npmjs.org/packages/flow-typed"},"CLI tool")," that represent the first parts\nof a new workflow for building, sharing, and distributing Flow libdefs."),(0,r.mdx)("p",null,"The goal of this project is to grow an ecosystem of libdefs that\n",(0,r.mdx)("a",{parentName:"p",href:"https://medium.com/@thejameskyle/flow-mapping-an-object-373d64c44592"},"allows Flow's type inference to shine"),"\nand that aligns with Flow's mission: To extract precise and ",(0,r.mdx)("em",{parentName:"p"},"accurate")," types\nfrom real-world JavaScript. We've learned a lot from similar efforts like\nDefinitelyTyped for TypeScript and we want to bring some of the lessons we've\nlearned to the Flow ecosystem."),(0,r.mdx)("p",null,"Here are some of the objectives of this project:"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6081.624ea89b.js b/assets/js/6081.624ea89b.js new file mode 100644 index 00000000000..f8c94f0326b --- /dev/null +++ b/assets/js/6081.624ea89b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6081],{66081:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var t=s(87462),a=(s(67294),s(3905));s(45475);const r={title:"Classes",slug:"/types/classes"},o=void 0,i={unversionedId:"types/classes",id:"types/classes",title:"Classes",description:"JavaScript classes",source:"@site/docs/types/classes.md",sourceDirName:"types",slug:"/types/classes",permalink:"/en/docs/types/classes",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/classes.md",tags:[],version:"current",frontMatter:{title:"Classes",slug:"/types/classes"},sidebar:"docsSidebar",previous:{title:"Tuples",permalink:"/en/docs/types/tuples"},next:{title:"Type Aliases",permalink:"/en/docs/types/aliases"}},l={},d=[{value:"Class Syntax",id:"toc-class-syntax",level:2},{value:"Class Methods",id:"toc-class-methods",level:3},{value:"Class Fields (Properties)",id:"toc-class-fields-properties",level:3},{value:"Extending classes and implementing interfaces",id:"extending-classes-and-implementing-interfaces",level:3},{value:"Class Constructors",id:"toc-class-fields-constructors",level:3},{value:"Class Generics",id:"toc-class-generics",level:3},{value:"Classes in annotations",id:"toc-classes-in-annotations",level:2}],m={toc:d};function c(e){let{components:n,...s}=e;return(0,a.mdx)("wrapper",(0,t.Z)({},m,s,{components:n,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"JavaScript ",(0,a.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes"},"classes"),"\nin Flow operate both as a value and a type. You can use the name of the class as the type of its instances:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n // ...\n}\n\nconst myInstance: MyClass = new MyClass(); // Works!\n")),(0,a.mdx)("p",null,"This is because classes in Flow are ",(0,a.mdx)("a",{parentName:"p",href:"../../lang/nominal-structural"},"nominally typed"),"."),(0,a.mdx)("p",null,"This means two classes with identical shapes are not compatible:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":16,"endLine":7,"endColumn":22,"description":"Cannot assign `new A()` to `foo` because `A` [1] is incompatible with `B` [2]. [incompatible-type]"},{"startLine":8,"startColumn":16,"endLine":8,"endColumn":22,"description":"Cannot assign `new B()` to `bar` because `B` [1] is incompatible with `A` [2]. [incompatible-type]"}]','[{"startLine":7,"startColumn":16,"endLine":7,"endColumn":22,"description":"Cannot':!0,assign:!0,"`new":!0,"A()`":!0,to:!0,"`foo`":!0,because:!0,"`A`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"`B`":!0,"[2].":!0,'[incompatible-type]"},{"startLine":8,"startColumn":16,"endLine":8,"endColumn":22,"description":"Cannot':!0,"B()`":!0,"`bar`":!0,'[incompatible-type]"}]':!0},"class A {\n x: number;\n}\nclass B {\n x: number;\n}\nconst foo: B = new A(); // Error!\nconst bar: A = new B(); // Error!\n")),(0,a.mdx)("p",null,"You also cannot use an ",(0,a.mdx)("a",{parentName:"p",href:"../objects"},"object type")," to describe an instance of a class:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":31,"endLine":4,"endColumn":43,"description":"Cannot assign `new MyClass()` to `foo` because `MyClass` [1] is not a subtype of object type [2]. Class instances are not subtypes of object types; consider rewriting object type [2] as an interface. [class-object-subtyping]"}]','[{"startLine":4,"startColumn":31,"endLine":4,"endColumn":43,"description":"Cannot':!0,assign:!0,"`new":!0,"MyClass()`":!0,to:!0,"`foo`":!0,because:!0,"`MyClass`":!0,"[1]":!0,is:!0,not:!0,a:!0,subtype:!0,of:!0,object:!0,type:!0,"[2].":!0,Class:!0,instances:!0,are:!0,subtypes:!0,"types;":!0,consider:!0,rewriting:!0,"[2]":!0,as:!0,an:!0,"interface.":!0,'[class-object-subtyping]"}]':!0},"class MyClass {\n x: number;\n}\nconst foo: {x: number, ...} = new MyClass(); // Error!\n")),(0,a.mdx)("p",null,"You can use ",(0,a.mdx)("a",{parentName:"p",href:"../interfaces"},"interfaces")," to accomplish this instead:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class A {\n x: number;\n}\nclass B {\n x: number;\n}\n\ninterface WithXNum {\n x: number;\n}\n\nconst foo: WithXNum = new A(); // Works!\nconst bar: WithXNum = new B(); // Works!\n\nconst n: number = foo.x; // Works!\n")),(0,a.mdx)("h2",{id:"toc-class-syntax"},"Class Syntax"),(0,a.mdx)("p",null,"Classes in Flow are just like normal JavaScript classes, but with added types."),(0,a.mdx)("h3",{id:"toc-class-methods"},"Class Methods"),(0,a.mdx)("p",null,"Just like in ",(0,a.mdx)("a",{parentName:"p",href:"../functions"},"functions"),", class methods can have annotations for both parameters\n(input) and returns (output):"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n method(value: string): number {\n return 0;\n }\n}\n")),(0,a.mdx)("p",null,"Also just like regular functions, class methods may have ",(0,a.mdx)("inlineCode",{parentName:"p"},"this")," annotations as well.\nHowever, if one is not provided, Flow will infer the class instance type (or the class type for static methods)\ninstead of ",(0,a.mdx)("inlineCode",{parentName:"p"},"mixed"),". When an explicit ",(0,a.mdx)("inlineCode",{parentName:"p"},"this")," parameter is provided, it must be a ",(0,a.mdx)("a",{parentName:"p",href:"../../lang/subtypes/"},"supertype")," of\nthe class instance type (or class type for static methods)."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":3,"endLine":2,"endColumn":8,"description":"Cannot define method `method` [1] on `MyClass` because property `x` is missing in `MyClass` [2] but exists in interface type [3]. [prop-missing]"}]','[{"startLine":2,"startColumn":3,"endLine":2,"endColumn":8,"description":"Cannot':!0,define:!0,method:!0,"`method`":!0,"[1]":!0,on:!0,"`MyClass`":!0,because:!0,property:!0,"`x`":!0,is:!0,missing:!0,in:!0,"[2]":!0,but:!0,exists:!0,interface:!0,type:!0,"[3].":!0,'[prop-missing]"}]':!0},"class MyClass {\n method(this: interface {x: string}) { /* ... */ } // Error!\n}\n")),(0,a.mdx)("p",null,"Unlike class properties, however, class methods cannot be unbound or rebound from\nthe class on which you defined them. So all of the following are errors in Flow:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":3,"endLine":3,"endColumn":8,"description":"Cannot get `a.method` because property `method` [1] cannot be unbound from the context [2] where it was defined. [method-unbinding]"},{"startLine":4,"startColumn":8,"endLine":4,"endColumn":13,"description":"property `method` [1] cannot be unbound from the context [2] where it was defined. [method-unbinding]"},{"startLine":5,"startColumn":3,"endLine":5,"endColumn":8,"description":"Cannot get `a.method` because property `method` [1] cannot be unbound from the context [2] where it was defined. [method-unbinding]"}]','[{"startLine":3,"startColumn":3,"endLine":3,"endColumn":8,"description":"Cannot':!0,get:!0,"`a.method`":!0,because:!0,property:!0,"`method`":!0,"[1]":!0,cannot:!0,be:!0,unbound:!0,from:!0,the:!0,context:!0,"[2]":!0,where:!0,it:!0,was:!0,"defined.":!0,'[method-unbinding]"},{"startLine":4,"startColumn":8,"endLine":4,"endColumn":13,"description":"property':!0,'[method-unbinding]"},{"startLine":5,"startColumn":3,"endLine":5,"endColumn":8,"description":"Cannot':!0,'[method-unbinding]"}]':!0},"class MyClass { method() {} }\nconst a = new MyClass();\na.method; // Error!\nconst {method} = a; // Error!\na.method.bind({}); // Error!\n")),(0,a.mdx)("p",null,"Methods are considered ",(0,a.mdx)("a",{parentName:"p",href:"../../lang/variance"},"read-only"),":"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":3,"endLine":6,"endColumn":8,"description":"Cannot assign function to `a.method` because property `method` is not writable. [cannot-write]"}]','[{"startLine":6,"startColumn":3,"endLine":6,"endColumn":8,"description":"Cannot':!0,assign:!0,function:!0,to:!0,"`a.method`":!0,because:!0,property:!0,"`method`":!0,is:!0,not:!0,"writable.":!0,'[cannot-write]"}]':!0},"class MyClass {\n method() {}\n}\n\nconst a = new MyClass();\na.method = function() {}; // Error!\n")),(0,a.mdx)("p",null,"Flow supports ",(0,a.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields"},"private methods"),",\na feature of ES2022. Private methods start with a hash symbol ",(0,a.mdx)("inlineCode",{parentName:"p"},"#"),":"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":11,"startColumn":3,"endLine":11,"endColumn":17,"description":"Private fields can only be referenced from within a class."}]','[{"startLine":11,"startColumn":3,"endLine":11,"endColumn":17,"description":"Private':!0,fields:!0,can:!0,only:!0,be:!0,referenced:!0,from:!0,within:!0,a:!0,'class."}]':!0},"class MyClass {\n #internalMethod() {\n return 1;\n }\n publicApi() {\n return this.#internalMethod();\n }\n}\n\nconst a = new MyClass();\na.#internalMethod(); // Error!\na.publicApi(); // Works!\n")),(0,a.mdx)("p",null,"Flow requires return type annotations on methods in most cases.\nThis is because it is common to reference ",(0,a.mdx)("inlineCode",{parentName:"p"},"this")," inside of a method, and ",(0,a.mdx)("inlineCode",{parentName:"p"},"this")," is typed as the instance of the class -\nbut to know the type of the class we need to know the return type of its methods!"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":8,"endLine":2,"endColumn":7,"description":"Missing an annotation on return. [missing-local-annot]"},{"startLine":5,"startColumn":8,"endLine":5,"endColumn":7,"description":"Missing an annotation on return. [missing-local-annot]"}]','[{"startLine":2,"startColumn":8,"endLine":2,"endColumn":7,"description":"Missing':!0,an:!0,annotation:!0,on:!0,"return.":!0,'[missing-local-annot]"},{"startLine":5,"startColumn":8,"endLine":5,"endColumn":7,"description":"Missing':!0,'[missing-local-annot]"}]':!0},"class MyClass {\n foo() { // Error!\n return this.bar();\n }\n bar() { // Error!\n return 1;\n }\n}\n")),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClassFixed {\n foo(): number { // Works!\n return this.bar();\n }\n bar(): number { // Works!\n return 1;\n }\n}\n")),(0,a.mdx)("h3",{id:"toc-class-fields-properties"},"Class Fields (Properties)"),(0,a.mdx)("p",null,"Whenever you want to use a class field in Flow you must first give it an\nannotation:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":10,"endLine":3,"endColumn":13,"description":"Cannot assign `42` to `this.prop` because property `prop` is missing in `MyClass` [1]. [prop-missing]"}]','[{"startLine":3,"startColumn":10,"endLine":3,"endColumn":13,"description":"Cannot':!0,assign:!0,"`42`":!0,to:!0,"`this.prop`":!0,because:!0,property:!0,"`prop`":!0,is:!0,missing:!0,in:!0,"`MyClass`":!0,"[1].":!0,'[prop-missing]"}]':!0},"class MyClass {\n method() {\n this.prop = 42; // Error!\n }\n}\n")),(0,a.mdx)("p",null,"Fields are annotated within the body of the class with the field name followed\nby a colon ",(0,a.mdx)("inlineCode",{parentName:"p"},":")," and the type:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n prop: number;\n method() {\n this.prop = 42;\n }\n}\n")),(0,a.mdx)("p",null,"Fields added outside of the class definition need to be annotated within the body\nof the class:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(x: number): number {\n return x + 1;\n}\n\nclass MyClass {\n static constant: number;\n static helper: (number) => number;\n prop: number => number;\n}\nMyClass.helper = func\nMyClass.constant = 42\nMyClass.prototype.prop = func\n")),(0,a.mdx)("p",null,"Flow also supports using the ",(0,a.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#field_declarations"},"class properties syntax"),":"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n prop = 42;\n}\n")),(0,a.mdx)("p",null,"When using this syntax, you are not required to give it a type annotation. But\nyou still can if you need to:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n prop: number = 42;\n}\n")),(0,a.mdx)("p",null,"You can mark a class field as read-only (or write-only) using ",(0,a.mdx)("a",{parentName:"p",href:"../../lang/variance"},"variance")," annotations.\nThese can only be written to in the constructor:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":10,"endLine":9,"endColumn":13,"description":"Cannot assign `1` to `this.prop` because property `prop` is not writable. [cannot-write]"},{"startLine":15,"startColumn":3,"endLine":15,"endColumn":6,"description":"Cannot assign `1` to `a.prop` because property `prop` is not writable. [cannot-write]"}]','[{"startLine":9,"startColumn":10,"endLine":9,"endColumn":13,"description":"Cannot':!0,assign:!0,"`1`":!0,to:!0,"`this.prop`":!0,because:!0,property:!0,"`prop`":!0,is:!0,not:!0,"writable.":!0,'[cannot-write]"},{"startLine":15,"startColumn":3,"endLine":15,"endColumn":6,"description":"Cannot':!0,"`a.prop`":!0,'[cannot-write]"}]':!0},"class MyClass {\n +prop: number;\n\n constructor() {\n this.prop = 1; // Works!\n }\n\n method() {\n this.prop = 1; // Error!\n }\n}\n\nconst a = new MyClass();\nconst n: number = a.prop; // Works!\na.prop = 1; // Error!\n")),(0,a.mdx)("p",null,"Flow supports ",(0,a.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields"},"private fields"),",\na feature of ES2022. Private fields start with a hash symbol ",(0,a.mdx)("inlineCode",{parentName:"p"},"#"),":"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":14,"startColumn":21,"endLine":14,"endColumn":34,"description":"Private fields can only be referenced from within a class."}]','[{"startLine":14,"startColumn":21,"endLine":14,"endColumn":34,"description":"Private':!0,fields:!0,can:!0,only:!0,be:!0,referenced:!0,from:!0,within:!0,a:!0,'class."}]':!0},"class MyClass {\n #internalValue: number;\n\n constructor() {\n this.#internalValue = 1;\n }\n\n publicApi() {\n return this.#internalValue;\n }\n}\n\nconst a = new MyClass();\nconst x: number = a.#internalValue; // Error!\nconst y: number = a.publicApi(); // Works!\n")),(0,a.mdx)("h3",{id:"extending-classes-and-implementing-interfaces"},"Extending classes and implementing interfaces"),(0,a.mdx)("p",null,"You can optionally ",(0,a.mdx)("inlineCode",{parentName:"p"},"extend")," one other class:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class Base {\n x: number;\n}\n\nclass MyClass extends Base {\n y: string;\n}\n")),(0,a.mdx)("p",null,"And also implement multiple ",(0,a.mdx)("a",{parentName:"p",href:"../interfaces"},"interfaces"),":"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface WithXNum {\n x: number;\n}\ninterface Readable {\n read(): string;\n}\n\nclass MyClass implements WithXNum, Readable {\n x: number;\n read(): string {\n return String(this.x);\n }\n}\n")),(0,a.mdx)("p",null,"You don't need to ",(0,a.mdx)("inlineCode",{parentName:"p"},"implement")," an interface to be a subtype of it, but doing so enforces that your class meets the requirements:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":7,"endLine":5,"endColumn":13,"description":"Cannot implement `WithXNum` [1] with `MyClass` because property `x` is missing in `MyClass` [2] but exists in `WithXNum` [1]. [prop-missing]"}]','[{"startLine":5,"startColumn":7,"endLine":5,"endColumn":13,"description":"Cannot':!0,implement:!0,"`WithXNum`":!0,"[1]":!0,with:!0,"`MyClass`":!0,because:!0,property:!0,"`x`":!0,is:!0,missing:!0,in:!0,"[2]":!0,but:!0,exists:!0,"[1].":!0,'[prop-missing]"}]':!0},"interface WithXNum {\n x: number;\n}\n\nclass MyClass implements WithXNum { // Error!\n}\n")),(0,a.mdx)("h3",{id:"toc-class-fields-constructors"},"Class Constructors"),(0,a.mdx)("p",null,"You can initialize your class properties in class constructors:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n foo: number;\n\n constructor() {\n this.foo = 1;\n }\n}\n")),(0,a.mdx)("p",null,"You must first call ",(0,a.mdx)("inlineCode",{parentName:"p"},"super(...)")," in a derived class before you can access ",(0,a.mdx)("inlineCode",{parentName:"p"},"this")," and ",(0,a.mdx)("inlineCode",{parentName:"p"},"super"),":"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":5,"endLine":9,"endColumn":8,"description":"Must call `super` before accessing this [1] in a derived constructor. [reference-before-declaration]"},{"startLine":10,"startColumn":5,"endLine":10,"endColumn":8,"description":"Must call `super` before accessing this [1] in a derived constructor. [reference-before-declaration]"},{"startLine":11,"startColumn":5,"endLine":11,"endColumn":9,"description":"Must call `super` before accessing super [1] in a derived constructor. [reference-before-declaration]"}]','[{"startLine":9,"startColumn":5,"endLine":9,"endColumn":8,"description":"Must':!0,call:!0,"`super`":!0,before:!0,accessing:!0,this:!0,"[1]":!0,in:!0,a:!0,derived:!0,"constructor.":!0,'[reference-before-declaration]"},{"startLine":10,"startColumn":5,"endLine":10,"endColumn":8,"description":"Must':!0,'[reference-before-declaration]"},{"startLine":11,"startColumn":5,"endLine":11,"endColumn":9,"description":"Must':!0,super:!0,'[reference-before-declaration]"}]':!0},"class Base {\n bar: number;\n}\n\nclass MyClass extends Base {\n foo: number;\n\n constructor() {\n this.foo; // Error\n this.bar; // Error\n super.bar; // Error\n super();\n this.foo; // OK\n this.bar; // OK\n super.bar; // OK\n }\n}\n")),(0,a.mdx)("p",null,"However, Flow will not enforce that all class properties are initialized in constructors:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n foo: number;\n bar: number;\n\n constructor() {\n this.foo = 1;\n }\n\n useBar() {\n (this.bar: number); // No errors.\n }\n}\n")),(0,a.mdx)("h3",{id:"toc-class-generics"},"Class Generics"),(0,a.mdx)("p",null,"Classes can also have their own ",(0,a.mdx)("a",{parentName:"p",href:"../generics"},"generics"),":"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n property: A;\n method(val: B): C {\n throw new Error();\n }\n}\n")),(0,a.mdx)("p",null,"Class generics are ",(0,a.mdx)("a",{parentName:"p",href:"../generics#toc-parameterized-generics"},"parameterized"),".\nWhen you use a class as a type you need to pass parameters for each of its\ngenerics:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n constructor(arg1: A, arg2: B, arg3: C) {\n // ...\n }\n}\n\nconst val: MyClass = new MyClass(1, true, 'three');\n")),(0,a.mdx)("h2",{id:"toc-classes-in-annotations"},"Classes in annotations"),(0,a.mdx)("p",null,"When you use the name of your class in an annotation, it means an ",(0,a.mdx)("em",{parentName:"p"},"instance")," of your class:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"class MyClass {}\n\nconst b: MyClass = new MyClass(); // Works!\nconst a: MyClass = MyClass; // Error!\n")),(0,a.mdx)("p",null,"See ",(0,a.mdx)("a",{parentName:"p",href:"../utilities#toc-class"},"here")," for details on ",(0,a.mdx)("inlineCode",{parentName:"p"},"Class"),", which allows you\nto refer to the type of the class in an annotation."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6082.4af8a070.js b/assets/js/6082.4af8a070.js new file mode 100644 index 00000000000..7da27208b18 --- /dev/null +++ b/assets/js/6082.4af8a070.js @@ -0,0 +1,2 @@ +/*! For license information please see 6082.4af8a070.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6082],{86082:(e,t,o)=>{o.r(t),o.d(t,{conf:()=>r,language:()=>n});var r={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["{","}"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\{\\$REGION(\\s\\'.*\\')?\\}"),end:new RegExp("^\\s*\\{\\$ENDREGION\\}")}}},n={defaultToken:"",tokenPostfix:".pascal",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["absolute","abstract","all","and_then","array","as","asm","attribute","begin","bindable","case","class","const","contains","default","div","else","end","except","exports","external","far","file","finalization","finally","forward","generic","goto","if","implements","import","in","index","inherited","initialization","interrupt","is","label","library","mod","module","name","near","not","object","of","on","only","operator","or_else","otherwise","override","package","packed","pow","private","program","protected","public","published","interface","implementation","qualified","read","record","resident","requires","resourcestring","restricted","segment","set","shl","shr","specialize","stored","strict","then","threadvar","to","try","type","unit","uses","var","view","virtual","dynamic","overload","reintroduce","with","write","xor","true","false","procedure","function","constructor","destructor","property","break","continue","exit","abort","while","do","for","raise","repeat","until"],typeKeywords:["boolean","double","byte","integer","shortint","char","longint","float","string"],operators:["=",">","<","<=",">=","<>",":",":=","and","or","+","-","*","/","@","&","^","%"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\*\}]+/,"comment"],[/\}/,"comment","@pop"],[/[\{]/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\{/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/6082.4af8a070.js.LICENSE.txt b/assets/js/6082.4af8a070.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/6082.4af8a070.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/6082.953833a2.js b/assets/js/6082.953833a2.js new file mode 100644 index 00000000000..77efb71fde5 --- /dev/null +++ b/assets/js/6082.953833a2.js @@ -0,0 +1,264 @@ +"use strict"; +exports.id = 6082; +exports.ids = [6082]; +exports.modules = { + +/***/ 86082: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/pascal/pascal.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["{", "}"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["<", ">"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" } + ], + folding: { + markers: { + start: new RegExp("^\\s*\\{\\$REGION(\\s\\'.*\\')?\\}"), + end: new RegExp("^\\s*\\{\\$ENDREGION\\}") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".pascal", + ignoreCase: true, + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + keywords: [ + "absolute", + "abstract", + "all", + "and_then", + "array", + "as", + "asm", + "attribute", + "begin", + "bindable", + "case", + "class", + "const", + "contains", + "default", + "div", + "else", + "end", + "except", + "exports", + "external", + "far", + "file", + "finalization", + "finally", + "forward", + "generic", + "goto", + "if", + "implements", + "import", + "in", + "index", + "inherited", + "initialization", + "interrupt", + "is", + "label", + "library", + "mod", + "module", + "name", + "near", + "not", + "object", + "of", + "on", + "only", + "operator", + "or_else", + "otherwise", + "override", + "package", + "packed", + "pow", + "private", + "program", + "protected", + "public", + "published", + "interface", + "implementation", + "qualified", + "read", + "record", + "resident", + "requires", + "resourcestring", + "restricted", + "segment", + "set", + "shl", + "shr", + "specialize", + "stored", + "strict", + "then", + "threadvar", + "to", + "try", + "type", + "unit", + "uses", + "var", + "view", + "virtual", + "dynamic", + "overload", + "reintroduce", + "with", + "write", + "xor", + "true", + "false", + "procedure", + "function", + "constructor", + "destructor", + "property", + "break", + "continue", + "exit", + "abort", + "while", + "do", + "for", + "raise", + "repeat", + "until" + ], + typeKeywords: [ + "boolean", + "double", + "byte", + "integer", + "shortint", + "char", + "longint", + "float", + "string" + ], + operators: [ + "=", + ">", + "<", + "<=", + ">=", + "<>", + ":", + ":=", + "and", + "or", + "+", + "-", + "*", + "/", + "@", + "&", + "^", + "%" + ], + symbols: /[=><:@\^&|+\-*\/\^%]+/, + tokenizer: { + root: [ + [ + /[a-zA-Z_][\w]*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "identifier" + } + } + ], + { include: "@whitespace" }, + [/[{}()\[\]]/, "@brackets"], + [/[<>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/\$[0-9a-fA-F]{1,16}/, "number.hex"], + [/\d+/, "number"], + [/[;,.]/, "delimiter"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/'/, "string", "@string"], + [/'[^\\']'/, "string"], + [/'/, "string.invalid"], + [/\#\d+/, "string"] + ], + comment: [ + [/[^\*\}]+/, "comment"], + [/\}/, "comment", "@pop"], + [/[\{]/, "comment"] + ], + string: [ + [/[^\\']+/, "string"], + [/\\./, "string.escape.invalid"], + [/'/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/\{/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/6094.dd70aa33.js b/assets/js/6094.dd70aa33.js new file mode 100644 index 00000000000..f83e5306bea --- /dev/null +++ b/assets/js/6094.dd70aa33.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6094],{56094:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>i});var t=n(87462),s=(n(67294),n(3905));const r={title:"Announcing Typecasts","short-title":"Typecasts",author:"Basil Hosmer",hide_table_of_contents:!0},l=void 0,o={permalink:"/blog/2015/02/18/Typecasts",source:"@site/blog/2015-02-18-Typecasts.md",title:"Announcing Typecasts",description:"As of version 0.3.0, Flow supports typecast expression.",date:"2015-02-18T00:00:00.000Z",formattedDate:"February 18, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Basil Hosmer"}],frontMatter:{title:"Announcing Typecasts","short-title":"Typecasts",author:"Basil Hosmer",hide_table_of_contents:!0},prevItem:{title:"Announcing Import Type",permalink:"/blog/2015/02/18/Import-Types"}},p={authorsImageUrls:[void 0]},i=[{value:"How Typecasts Work",id:"how-typecasts-work",level:2},{value:"Safety",id:"safety",level:2},{value:"More examples",id:"more-examples",level:2},{value:"Transformations",id:"transformations",level:2}],m={toc:i};function d(e){let{components:a,...n}=e;return(0,s.mdx)("wrapper",(0,t.Z)({},m,n,{components:a,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"As of version 0.3.0, Flow supports typecast expression."),(0,s.mdx)("p",null,"A typecast expression is a simple way to type-annotate any JavaScript expression. Here are some examples of typecasts:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"(1 + 1 : number);\nvar a = { name: (null: ?string) };\n([1, 'a', true]: Array).map(fn);\n")),(0,s.mdx)("p",null,"For any JavaScript expression ",(0,s.mdx)("inlineCode",{parentName:"p"},"")," and any Flow type ",(0,s.mdx)("inlineCode",{parentName:"p"},""),", you can write"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"( : )\n")),(0,s.mdx)("p",null,(0,s.mdx)("strong",{parentName:"p"},"Note:")," the parentheses are necessary."),(0,s.mdx)("h2",{id:"how-typecasts-work"},"How Typecasts Work"),(0,s.mdx)("p",null,"To evaluate a typecast expression, Flow will first check that ",(0,s.mdx)("inlineCode",{parentName:"p"},"")," is a ",(0,s.mdx)("inlineCode",{parentName:"p"},""),"."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"(1+1: number); // this is fine\n(1+1: string); // but this is is an error\n")),(0,s.mdx)("p",null,"Second, Flow will infer that the typecast expression ",(0,s.mdx)("inlineCode",{parentName:"p"},"(: )")," has the type ",(0,s.mdx)("inlineCode",{parentName:"p"},""),"."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"[(0: ?number)]; // Flow will infer the type Array\n[0]; // Without the typecast, Flow infers the type Array\n")),(0,s.mdx)("h2",{id:"safety"},"Safety"),(0,s.mdx)("p",null,"Typecasts obey the same rules as other type annotations, so they provide the same safety guarantees. This means they are safe unless you explicitly use the ",(0,s.mdx)("inlineCode",{parentName:"p"},"any")," type to defeat Flow's typechecking. Here are examples of upcasting (which is allowed), downcasting (which is forbidden), and using ",(0,s.mdx)("inlineCode",{parentName:"p"},"any"),"."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"class Base {}\nclass Child extends Base {}\nvar child: Child = new Child();\n\n// Upcast from Child to Base, a more general type: OK\nvar base: Base = new Child();\n\n// Upcast from Child to Base, a more general type: OK\n(child: Base);\n\n// Downcast from Base to Child: unsafe, ERROR\n(base: Child);\n\n// Upcast base to any then downcast any to Child.\n// Unsafe downcasting from any is allowed: OK\n((base: any): Child);\n")),(0,s.mdx)("h2",{id:"more-examples"},"More examples"),(0,s.mdx)("p",null,"Typecasts are particularly useful to check assumptions and help Flow infer the types you intend. Here are some examples:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"(x: number) // Make Flow check that x is a number\n(0: ?number) // Tells Flow that this expression is actually nullable.\n(null: ?number) // Tells Flow that this expression is a nullable number.\n")),(0,s.mdx)("h2",{id:"transformations"},"Transformations"),(0,s.mdx)("p",null,"Like type annotations and other Flow features, typecasts need to be transformed away before the code can be run. The transforms will be available in react-tools ",(0,s.mdx)("inlineCode",{parentName:"p"},"0.13.0")," when it is published soon, but for now they're available in ",(0,s.mdx)("inlineCode",{parentName:"p"},"0.13.0-beta.2"),", which you can install with"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-bash"},"npm install react-tools@0.13.0-beta.2\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6104.007d544c.js b/assets/js/6104.007d544c.js new file mode 100644 index 00000000000..70a866335b6 --- /dev/null +++ b/assets/js/6104.007d544c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6104],{56104:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>l,contentTitle:()=>n,default:()=>d,frontMatter:()=>s,metadata:()=>a,toc:()=>m});var t=o(87462),i=(o(67294),o(3905));const s={title:"Live Flow errors in your IDE","short-title":"Live Flow errors in your IDE",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/live-flow-errors-in-your-ide-bcbeda0b316"},n=void 0,a={permalink:"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE",source:"@site/blog/2019-10-25-Live-Flow-Errors-in-your-IDE.md",title:"Live Flow errors in your IDE",description:"Live errors while you type makes Flow feel faster in your IDE!",date:"2019-10-25T00:00:00.000Z",formattedDate:"October 25, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Live Flow errors in your IDE","short-title":"Live Flow errors in your IDE",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/live-flow-errors-in-your-ide-bcbeda0b316"},prevItem:{title:"Spreads: Common Errors & Fixes",permalink:"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes"},nextItem:{title:"Coming Soon: Changes to Object Spreads",permalink:"/blog/2019/08/20/Changes-to-Object-Spreads"}},l={authorsImageUrls:[void 0]},m=[],u={toc:m};function d(e){let{components:r,...o}=e;return(0,i.mdx)("wrapper",(0,t.Z)({},u,o,{components:r,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Live errors while you type makes Flow feel faster in your IDE!"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6136.dfc4bfad.js b/assets/js/6136.dfc4bfad.js new file mode 100644 index 00000000000..88761f3443a --- /dev/null +++ b/assets/js/6136.dfc4bfad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6136],{26136:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var a=t(87462),o=(t(67294),t(3905));const i={title:"Announcing Disjoint Unions","short-title":"Disjoint Unions",author:"Avik Chaudhuri",hide_table_of_contents:!0},s=void 0,r={permalink:"/blog/2015/07/03/Disjoint-Unions",source:"@site/blog/2015-07-03-Disjoint-Unions.md",title:"Announcing Disjoint Unions",description:"Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:",date:"2015-07-03T00:00:00.000Z",formattedDate:"July 3, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Avik Chaudhuri"}],frontMatter:{title:"Announcing Disjoint Unions","short-title":"Disjoint Unions",author:"Avik Chaudhuri",hide_table_of_contents:!0},prevItem:{title:"Version-0.14.0",permalink:"/blog/2015/07/29/Version-0.14.0"},nextItem:{title:"Announcing Bounded Polymorphism",permalink:"/blog/2015/03/12/Bounded-Polymorphism"}},l={authorsImageUrls:[void 0]},d=[],m={toc:d};function c(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:"),(0,o.mdx)("ul",null,(0,o.mdx)("li",{parentName:"ul"},"Specifying such data by a set of disjoint cases, distinguished by \u201ctags\u201d, where each tag is associated with a different \u201crecord\u201d of properties. (These descriptions are called \u201cdisjoint union\u201d or \u201cvariant\u201d types.)"),(0,o.mdx)("li",{parentName:"ul"},"Doing case analysis on such data, by checking tags and then directly accessing the associated record of properties. (The common way to do such case analysis is by pattern matching.)")),(0,o.mdx)("p",null,"Examples of programs that analyze or transform such data range from compilers working with abstract syntax trees, to operations that may return exceptional values, with much more in between!"),(0,o.mdx)("p",null,'As of Flow 0.13.1 it is now possible to program in this style in JavaScript in a type-safe manner. You can define a disjoint union of object types and do case analysis on objects of that type by switching on the value of some common property (called a "sentinel") in those object types.'),(0,o.mdx)("p",null,"Flow's syntax for disjoint unions looks like:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-javascript"},'type BinaryTree =\n { kind: "leaf", value: number } |\n { kind: "branch", left: BinaryTree, right: BinaryTree }\n\nfunction sumLeaves(tree: BinaryTree): number {\n if (tree.kind === "leaf") {\n return tree.value;\n } else {\n return sumLeaves(tree.left) + sumLeaves(tree.right);\n }\n}\n')))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6241.2e9f5bdf.js b/assets/js/6241.2e9f5bdf.js new file mode 100644 index 00000000000..715cab5792b --- /dev/null +++ b/assets/js/6241.2e9f5bdf.js @@ -0,0 +1,2 @@ +/*! For license information please see 6241.2e9f5bdf.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6241],{96241:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>s,language:()=>o});var s={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*//\\s*#region\\b|^\\s*\\(\\*\\s*#region(.*)\\*\\)"),end:new RegExp("^\\s*//\\s*#endregion\\b|^\\s*\\(\\*\\s*#endregion\\s*\\*\\)")}}},o={defaultToken:"",tokenPostfix:".fs",keywords:["abstract","and","atomic","as","assert","asr","base","begin","break","checked","component","const","constraint","constructor","continue","class","default","delegate","do","done","downcast","downto","elif","else","end","exception","eager","event","external","extern","false","finally","for","fun","function","fixed","functor","global","if","in","include","inherit","inline","interface","internal","land","lor","lsl","lsr","lxor","lazy","let","match","member","mod","module","mutable","namespace","method","mixin","new","not","null","of","open","or","object","override","private","parallel","process","protected","pure","public","rec","return","static","sealed","struct","sig","then","to","true","tailcall","trait","try","type","upcast","use","val","void","virtual","volatile","when","while","with","yield"],symbols:/[=>\]/,"annotation"],[/^#(if|else|endif)/,"keyword"],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0x[0-9a-fA-F]+LF/,"number.float"],[/0x[0-9a-fA-F]+(@integersuffix)/,"number.hex"],[/0b[0-1]+(@integersuffix)/,"number.bin"],[/\d+(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string",'@string."""'],[/"/,"string",'@string."'],[/\@"/,{token:"string.quote",next:"@litstring"}],[/'[^\\']'B?/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\(\*(?!\))/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^*(]+/,"comment"],[/\*\)/,"comment","@pop"],[/\*/,"comment"],[/\(\*\)/,"comment"],[/\(/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/("""|"B?)/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]]}}}}]); \ No newline at end of file diff --git a/assets/js/6241.2e9f5bdf.js.LICENSE.txt b/assets/js/6241.2e9f5bdf.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/6241.2e9f5bdf.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/6241.d8cb181b.js b/assets/js/6241.d8cb181b.js new file mode 100644 index 00000000000..9b4c6ada84f --- /dev/null +++ b/assets/js/6241.d8cb181b.js @@ -0,0 +1,229 @@ +"use strict"; +exports.id = 6241; +exports.ids = [6241]; +exports.modules = { + +/***/ 96241: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/fsharp/fsharp.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["(*", "*)"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + folding: { + markers: { + start: new RegExp("^\\s*//\\s*#region\\b|^\\s*\\(\\*\\s*#region(.*)\\*\\)"), + end: new RegExp("^\\s*//\\s*#endregion\\b|^\\s*\\(\\*\\s*#endregion\\s*\\*\\)") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".fs", + keywords: [ + "abstract", + "and", + "atomic", + "as", + "assert", + "asr", + "base", + "begin", + "break", + "checked", + "component", + "const", + "constraint", + "constructor", + "continue", + "class", + "default", + "delegate", + "do", + "done", + "downcast", + "downto", + "elif", + "else", + "end", + "exception", + "eager", + "event", + "external", + "extern", + "false", + "finally", + "for", + "fun", + "function", + "fixed", + "functor", + "global", + "if", + "in", + "include", + "inherit", + "inline", + "interface", + "internal", + "land", + "lor", + "lsl", + "lsr", + "lxor", + "lazy", + "let", + "match", + "member", + "mod", + "module", + "mutable", + "namespace", + "method", + "mixin", + "new", + "not", + "null", + "of", + "open", + "or", + "object", + "override", + "private", + "parallel", + "process", + "protected", + "pure", + "public", + "rec", + "return", + "static", + "sealed", + "struct", + "sig", + "then", + "to", + "true", + "tailcall", + "trait", + "try", + "type", + "upcast", + "use", + "val", + "void", + "virtual", + "volatile", + "when", + "while", + "with", + "yield" + ], + symbols: /[=>\]/, "annotation"], + [/^#(if|else|endif)/, "keyword"], + [/[{}()\[\]]/, "@brackets"], + [/[<>](?!@symbols)/, "@brackets"], + [/@symbols/, "delimiter"], + [/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/0x[0-9a-fA-F]+LF/, "number.float"], + [/0x[0-9a-fA-F]+(@integersuffix)/, "number.hex"], + [/0b[0-1]+(@integersuffix)/, "number.bin"], + [/\d+(@integersuffix)/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"""/, "string", '@string."""'], + [/"/, "string", '@string."'], + [/\@"/, { token: "string.quote", next: "@litstring" }], + [/'[^\\']'B?/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\(\*(?!\))/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^*(]+/, "comment"], + [/\*\)/, "comment", "@pop"], + [/\*/, "comment"], + [/\(\*\)/, "comment"], + [/\(/, "comment"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [ + /("""|"B?)/, + { + cases: { + "$#==$S2": { token: "string", next: "@pop" }, + "@default": "string" + } + } + ] + ], + litstring: [ + [/[^"]+/, "string"], + [/""/, "string.escape"], + [/"/, { token: "string.quote", next: "@pop" }] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/6272.f9b3cdc6.js b/assets/js/6272.f9b3cdc6.js new file mode 100644 index 00000000000..264bf61579a --- /dev/null +++ b/assets/js/6272.f9b3cdc6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6272],{36272:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>i,contentTitle:()=>n,default:()=>g,frontMatter:()=>s,metadata:()=>d,toc:()=>l});var a=t(87462),r=(t(67294),t(3905));const s={title:"Upgrading Flow Codebases","short-title":"Upgrading Flow Codebases",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/upgrading-flow-codebases-40ef8dd3ccd8"},n=void 0,d={permalink:"/blog/2019/4/9/Upgrading-Flow-Codebases",source:"@site/blog/2019-4-9-Upgrading-Flow-Codebases.md",title:"Upgrading Flow Codebases",description:"Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!",date:"2019-04-09T00:00:00.000Z",formattedDate:"April 9, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Upgrading Flow Codebases","short-title":"Upgrading Flow Codebases",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/upgrading-flow-codebases-40ef8dd3ccd8"},prevItem:{title:"Coming Soon: Changes to Object Spreads",permalink:"/blog/2019/08/20/Changes-to-Object-Spreads"},nextItem:{title:"A More Responsive Flow",permalink:"/blog/2019/2/8/A-More-Responsive-Flow"}},i={authorsImageUrls:[void 0]},l=[],p={toc:l};function g(e){let{components:o,...t}=e;return(0,r.mdx)("wrapper",(0,a.Z)({},p,t,{components:o,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!"))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6290.068917a8.js b/assets/js/6290.068917a8.js new file mode 100644 index 00000000000..61a105b2d5c --- /dev/null +++ b/assets/js/6290.068917a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6290],{86290:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>p,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var n=o(87462),s=(o(67294),o(3905));const r={title:"Introducing Flow Indexed Access Types","short-title":"Flow Indexed Access Types",author:"George Zahariev","medium-link":"https://medium.com/flow-type/introducing-flow-indexed-access-types-b27175251fd0"},a=void 0,i={permalink:"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types",source:"@site/blog/2021-07-21-Introducing-Flow-Indexed-Access-Types.md",title:"Introducing Flow Indexed Access Types",description:"Flow\u2019s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type.",date:"2021-07-21T00:00:00.000Z",formattedDate:"July 21, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Introducing Flow Indexed Access Types","short-title":"Flow Indexed Access Types",author:"George Zahariev","medium-link":"https://medium.com/flow-type/introducing-flow-indexed-access-types-b27175251fd0"},prevItem:{title:"TypeScript Enums vs. Flow Enums",permalink:"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums"},nextItem:{title:"Sound Typing for 'this' in Flow",permalink:"/blog/2021/06/02/Sound-Typing-for-this-in-Flow"}},d={authorsImageUrls:[void 0]},c=[],l={toc:c};function p(e){let{components:t,...o}=e;return(0,s.mdx)("wrapper",(0,n.Z)({},l,o,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Flow\u2019s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6316.157c4414.js b/assets/js/6316.157c4414.js new file mode 100644 index 00000000000..1842dd68f5b --- /dev/null +++ b/assets/js/6316.157c4414.js @@ -0,0 +1,1355 @@ +"use strict"; +exports.id = 6316; +exports.ids = [6316]; +exports.modules = { + +/***/ 96316: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "diagram": () => (/* binding */ diagram) +/* harmony export */ }); +/* harmony import */ var _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(87115); +/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59373); +/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(91619); +/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(12281); +/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(7201); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(27484); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17967); +/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20683); +/* harmony import */ var dagre_d3_es_src_dagre_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(70277); +/* harmony import */ var dagre_d3_es_src_graphlib_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(45625); +/* harmony import */ var dagre_d3_es_src_graphlib_json_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(39354); +/* harmony import */ var dagre_d3_es__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(91518); +/* harmony import */ var dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(59542); +/* harmony import */ var dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_8__); +/* harmony import */ var dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(10285); +/* harmony import */ var dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_9__); +/* harmony import */ var dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(28734); +/* harmony import */ var dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_10__); + + + + + + + + + + + + + + + + + + + + + + +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 23], $V9 = [1, 24], $Va = [1, 27], $Vb = [4, 6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "timeline": 4, "document": 5, "EOF": 6, "directive": 7, "line": 8, "SPACE": 9, "statement": 10, "NEWLINE": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, ":": 15, "argDirective": 16, "title": 17, "acc_title": 18, "acc_title_value": 19, "acc_descr": 20, "acc_descr_value": 21, "acc_descr_multiline_value": 22, "section": 23, "period_statement": 24, "event_statement": 25, "period": 26, "event": 27, "open_directive": 28, "type_directive": 29, "arg_directive": 30, "close_directive": 31, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "timeline", 6: "EOF", 9: "SPACE", 11: "NEWLINE", 15: ":", 17: "title", 18: "acc_title", 19: "acc_title_value", 20: "acc_descr", 21: "acc_descr_value", 22: "acc_descr_multiline_value", 23: "section", 26: "period", 27: "event", 28: "open_directive", 29: "type_directive", 30: "arg_directive", 31: "close_directive" }, + productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [24, 1], [25, 1], [12, 1], [13, 1], [16, 1], [14, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 1: + return $$[$0 - 1]; + case 3: + this.$ = []; + break; + case 4: + $$[$0 - 1].push($$[$0]); + this.$ = $$[$0 - 1]; + break; + case 5: + case 6: + this.$ = $$[$0]; + break; + case 7: + case 8: + this.$ = []; + break; + case 11: + yy.getCommonDb().setDiagramTitle($$[$0].substr(6)); + this.$ = $$[$0].substr(6); + break; + case 12: + this.$ = $$[$0].trim(); + yy.getCommonDb().setAccTitle(this.$); + break; + case 13: + case 14: + this.$ = $$[$0].trim(); + yy.getCommonDb().setAccDescription(this.$); + break; + case 15: + yy.addSection($$[$0].substr(8)); + this.$ = $$[$0].substr(8); + break; + case 19: + yy.addTask($$[$0], 0, ""); + this.$ = $$[$0]; + break; + case 20: + yy.addEvent($$[$0].substr(2)); + this.$ = $$[$0]; + break; + case 21: + yy.parseDirective("%%{", "open_directive"); + break; + case 22: + yy.parseDirective($$[$0], "type_directive"); + break; + case 23: + $$[$0] = $$[$0].trim().replace(/'/g, '"'); + yy.parseDirective($$[$0], "arg_directive"); + break; + case 24: + yy.parseDirective("}%%", "close_directive", "timeline"); + break; + } + }, + table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 28: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 28: $V1 }, { 13: 8, 29: [1, 9] }, { 29: [2, 21] }, { 6: [1, 10], 7: 22, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: 20, 25: 21, 26: $V8, 27: $V9, 28: $V1 }, { 1: [2, 2] }, { 14: 25, 15: [1, 26], 31: $Va }, o([15, 31], [2, 22]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 22, 10: 28, 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: 20, 25: 21, 26: $V8, 27: $V9, 28: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), { 19: [1, 29] }, { 21: [1, 30] }, o($V2, [2, 14]), o($V2, [2, 15]), o($V2, [2, 16]), o($V2, [2, 17]), o($V2, [2, 18]), o($V2, [2, 19]), o($V2, [2, 20]), { 11: [1, 31] }, { 16: 32, 30: [1, 33] }, { 11: [2, 24] }, o($V2, [2, 5]), o($V2, [2, 12]), o($V2, [2, 13]), o($Vb, [2, 9]), { 14: 34, 31: $Va }, { 31: [2, 23] }, { 11: [1, 35] }, o($Vb, [2, 10])], + defaultActions: { 5: [2, 21], 7: [2, 2], 27: [2, 24], 33: [2, 23] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + 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 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = 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); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } 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).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + 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 + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + this.begin("open_directive"); + return 28; + case 1: + this.begin("type_directive"); + return 29; + case 2: + this.popState(); + this.begin("arg_directive"); + return 15; + case 3: + this.popState(); + this.popState(); + return 31; + case 4: + return 30; + case 5: + break; + case 6: + break; + case 7: + return 11; + case 8: + break; + case 9: + break; + case 10: + return 4; + case 11: + return 17; + case 12: + this.begin("acc_title"); + return 18; + case 13: + this.popState(); + return "acc_title_value"; + case 14: + this.begin("acc_descr"); + return 20; + case 15: + this.popState(); + return "acc_descr_value"; + case 16: + this.begin("acc_descr_multiline"); + break; + case 17: + this.popState(); + break; + case 18: + return "acc_descr_multiline_value"; + case 19: + return 23; + case 20: + return 27; + case 21: + return 26; + case 22: + return 6; + case 23: + return "INVALID"; + } + }, + rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%(?!\{)[^\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: { "open_directive": { "rules": [1], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "acc_descr_multiline": { "rules": [17, 18], "inclusive": false }, "acc_descr": { "rules": [15], "inclusive": false }, "acc_title": { "rules": [13], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 20, 21, 22, 23], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +let currentSection = ""; +let currentTaskId = 0; +const sections = []; +const tasks = []; +const rawTasks = []; +const getCommonDb = () => _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.j; +const parseDirective = (statement, context, type) => { + (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.k)(globalThis, statement, context, type); +}; +const clear = function() { + sections.length = 0; + tasks.length = 0; + currentSection = ""; + rawTasks.length = 0; + (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.m)(); +}; +const addSection = function(txt) { + currentSection = txt; + sections.push(txt); +}; +const getSections = function() { + return sections; +}; +const getTasks = function() { + let allItemsProcessed = compileTasks(); + const maxDepth = 100; + let iterationCount = 0; + while (!allItemsProcessed && iterationCount < maxDepth) { + allItemsProcessed = compileTasks(); + iterationCount++; + } + tasks.push(...rawTasks); + return tasks; +}; +const addTask = function(period, length, event) { + const rawTask = { + id: currentTaskId++, + section: currentSection, + type: currentSection, + task: period, + score: length ? length : 0, + //if event is defined, then add it the events array + events: event ? [event] : [] + }; + rawTasks.push(rawTask); +}; +const addEvent = function(event) { + const currentTask = rawTasks.find((task) => task.id === currentTaskId - 1); + currentTask.events.push(event); +}; +const addTaskOrg = function(descr) { + const newTask = { + section: currentSection, + type: currentSection, + description: descr, + task: descr, + classes: [] + }; + tasks.push(newTask); +}; +const compileTasks = function() { + const compileTask = function(pos) { + return rawTasks[pos].processed; + }; + let allProcessed = true; + for (const [i, rawTask] of rawTasks.entries()) { + compileTask(i); + allProcessed = allProcessed && rawTask.processed; + } + return allProcessed; +}; +const timelineDb = { + clear, + getCommonDb, + addSection, + getSections, + getTasks, + addTask, + addTaskOrg, + addEvent, + parseDirective +}; +const db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + addEvent, + addSection, + addTask, + addTaskOrg, + clear, + default: timelineDb, + getCommonDb, + getSections, + getTasks, + parseDirective +}, Symbol.toStringTag, { value: "Module" })); +const MAX_SECTIONS = 12; +const drawRect = function(elem, rectData) { + const rectElem = elem.append("rect"); + rectElem.attr("x", rectData.x); + rectElem.attr("y", rectData.y); + rectElem.attr("fill", rectData.fill); + rectElem.attr("stroke", rectData.stroke); + rectElem.attr("width", rectData.width); + rectElem.attr("height", rectData.height); + rectElem.attr("rx", rectData.rx); + rectElem.attr("ry", rectData.ry); + if (rectData.class !== void 0) { + rectElem.attr("class", rectData.class); + } + return rectElem; +}; +const drawFace = function(element, faceData) { + const radius = 15; + const circleElement = element.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible"); + const face = element.append("g"); + face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); + face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); + function smile(face2) { + const arc$1 = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .arc */ .Nb1)().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); + face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")"); + } + function sad(face2) { + const arc$1 = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .arc */ .Nb1)().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); + face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")"); + } + function ambivalent(face2) { + face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666"); + } + if (faceData.score > 3) { + smile(face); + } else if (faceData.score < 3) { + sad(face); + } else { + ambivalent(face); + } + return circleElement; +}; +const drawCircle = function(element, circleData) { + const circleElement = element.append("circle"); + circleElement.attr("cx", circleData.cx); + circleElement.attr("cy", circleData.cy); + circleElement.attr("class", "actor-" + circleData.pos); + circleElement.attr("fill", circleData.fill); + circleElement.attr("stroke", circleData.stroke); + circleElement.attr("r", circleData.r); + if (circleElement.class !== void 0) { + circleElement.attr("class", circleElement.class); + } + if (circleData.title !== void 0) { + circleElement.append("title").text(circleData.title); + } + return circleElement; +}; +const drawText = function(elem, textData) { + const nText = textData.text.replace(//gi, " "); + const textElem = elem.append("text"); + textElem.attr("x", textData.x); + textElem.attr("y", textData.y); + textElem.attr("class", "legend"); + textElem.style("text-anchor", textData.anchor); + if (textData.class !== void 0) { + textElem.attr("class", textData.class); + } + const span = textElem.append("tspan"); + span.attr("x", textData.x + textData.textMargin * 2); + span.text(nText); + return textElem; +}; +const drawLabel = function(elem, txtObject) { + function genPoints(x, y, width, height, cut) { + return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height); + } + const polygon = elem.append("polygon"); + polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7)); + polygon.attr("class", "labelBox"); + txtObject.y = txtObject.y + txtObject.labelMargin; + txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin; + drawText(elem, txtObject); +}; +const drawSection = function(elem, section, conf2) { + const g = elem.append("g"); + const rect = getNoteRect(); + rect.x = section.x; + rect.y = section.y; + rect.fill = section.fill; + rect.width = conf2.width; + rect.height = conf2.height; + rect.class = "journey-section section-type-" + section.num; + rect.rx = 3; + rect.ry = 3; + drawRect(g, rect); + _drawTextCandidateFunc(conf2)( + section.text, + g, + rect.x, + rect.y, + rect.width, + rect.height, + { class: "journey-section section-type-" + section.num }, + conf2, + section.colour + ); +}; +let taskCount = -1; +const drawTask = function(elem, task, conf2) { + const center = task.x + conf2.width / 2; + const g = elem.append("g"); + taskCount++; + const maxHeight = 300 + 5 * 30; + g.append("line").attr("id", "task" + taskCount).attr("x1", center).attr("y1", task.y).attr("x2", center).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666"); + drawFace(g, { + cx: center, + cy: 300 + (5 - task.score) * 30, + score: task.score + }); + const rect = getNoteRect(); + rect.x = task.x; + rect.y = task.y; + rect.fill = task.fill; + rect.width = conf2.width; + rect.height = conf2.height; + rect.class = "task task-type-" + task.num; + rect.rx = 3; + rect.ry = 3; + drawRect(g, rect); + task.x + 14; + _drawTextCandidateFunc(conf2)( + task.task, + g, + rect.x, + rect.y, + rect.width, + rect.height, + { class: "task" }, + conf2, + task.colour + ); +}; +const drawBackgroundRect = function(elem, bounds) { + const rectElem = drawRect(elem, { + x: bounds.startx, + y: bounds.starty, + width: bounds.stopx - bounds.startx, + height: bounds.stopy - bounds.starty, + fill: bounds.fill, + class: "rect" + }); + rectElem.lower(); +}; +const getTextObj = function() { + return { + x: 0, + y: 0, + fill: void 0, + "text-anchor": "start", + width: 100, + height: 100, + textMargin: 0, + rx: 0, + ry: 0 + }; +}; +const getNoteRect = function() { + return { + x: 0, + y: 0, + width: 100, + anchor: "start", + height: 100, + rx: 0, + ry: 0 + }; +}; +const _drawTextCandidateFunc = function() { + function byText(content, g, x, y, width, height, textAttrs, colour) { + const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content); + _setTextAttrs(text, textAttrs); + } + function byTspan(content, g, x, y, width, height, textAttrs, conf2, colour) { + const { taskFontSize, taskFontFamily } = conf2; + const lines = content.split(//gi); + for (let i = 0; i < lines.length; i++) { + const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2; + const text = g.append("text").attr("x", x + width / 2).attr("y", y).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily); + text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]); + text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"); + _setTextAttrs(text, textAttrs); + } + } + function byFo(content, g, x, y, width, height, textAttrs, conf2) { + const body = g.append("switch"); + const f = body.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("position", "fixed"); + const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); + text.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content); + byTspan(content, body, x, y, width, height, textAttrs, conf2); + _setTextAttrs(text, textAttrs); + } + function _setTextAttrs(toText, fromTextAttrsDict) { + for (const key in fromTextAttrsDict) { + if (key in fromTextAttrsDict) { + toText.attr(key, fromTextAttrsDict[key]); + } + } + } + return function(conf2) { + return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan; + }; +}(); +const initGraphics = function(graphics) { + graphics.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z"); +}; +function wrap(text, width) { + text.each(function() { + var text2 = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)(this), words = text2.text().split(/(\s+|
)/).reverse(), word, line = [], lineHeight = 1.1, y = text2.attr("y"), dy = parseFloat(text2.attr("dy")), tspan = text2.text(null).append("tspan").attr("x", 0).attr("y", y).attr("dy", dy + "em"); + for (let j = 0; j < words.length; j++) { + word = words[words.length - 1 - j]; + line.push(word); + tspan.text(line.join(" ").trim()); + if (tspan.node().getComputedTextLength() > width || word === "
") { + line.pop(); + tspan.text(line.join(" ").trim()); + if (word === "
") { + line = [""]; + } else { + line = [word]; + } + tspan = text2.append("tspan").attr("x", 0).attr("y", y).attr("dy", lineHeight + "em").text(word); + } + } + }); +} +const drawNode = function(elem, node, fullSection, conf2) { + const section = fullSection % MAX_SECTIONS - 1; + const nodeElem = elem.append("g"); + node.section = section; + nodeElem.attr( + "class", + (node.class ? node.class + " " : "") + "timeline-node " + ("section-" + section) + ); + const bkgElem = nodeElem.append("g"); + const textElem = nodeElem.append("g"); + const txt = textElem.append("text").text(node.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node.width); + const bbox = txt.node().getBBox(); + const fontSize = conf2.fontSize && conf2.fontSize.replace ? conf2.fontSize.replace("px", "") : conf2.fontSize; + node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding; + node.height = Math.max(node.height, node.maxHeight); + node.width = node.width + 2 * node.padding; + textElem.attr("transform", "translate(" + node.width / 2 + ", " + node.padding / 2 + ")"); + defaultBkg(bkgElem, node, section); + return node; +}; +const getVirtualNodeHeight = function(elem, node, conf2) { + const textElem = elem.append("g"); + const txt = textElem.append("text").text(node.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node.width); + const bbox = txt.node().getBBox(); + const fontSize = conf2.fontSize && conf2.fontSize.replace ? conf2.fontSize.replace("px", "") : conf2.fontSize; + textElem.remove(); + return bbox.height + fontSize * 1.1 * 0.5 + node.padding; +}; +const defaultBkg = function(elem, node, section) { + const rd = 5; + elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + node.type).attr( + "d", + `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z` + ); + elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node.height).attr("x2", node.width).attr("y2", node.height); +}; +const svgDraw = { + drawRect, + drawCircle, + drawSection, + drawText, + drawLabel, + drawTask, + drawBackgroundRect, + getTextObj, + getNoteRect, + initGraphics, + drawNode, + getVirtualNodeHeight +}; +const setConf = function(cnf) { + const keys = Object.keys(cnf); + keys.forEach(function(key) { + conf[key] = cnf[key]; + }); +}; +const draw = function(text, id, version, diagObj) { + const conf2 = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.g)(); + const LEFT_MARGIN = conf2.leftMargin ? conf2.leftMargin : 50; + diagObj.db.clear(); + diagObj.parser.parse(text + "\n"); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("timeline", diagObj.db); + const securityLevel = conf2.securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("#i" + id); + } + const root = securityLevel === "sandbox" ? (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("body"); + const svg = root.select("#" + id); + svg.append("g"); + const tasks2 = diagObj.db.getTasks(); + const title = diagObj.db.getCommonDb().getDiagramTitle(); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("task", tasks2); + svgDraw.initGraphics(svg); + const sections2 = diagObj.db.getSections(); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("sections", sections2); + let maxSectionHeight = 0; + let maxTaskHeight = 0; + let depthY = 0; + let sectionBeginY = 0; + let masterX = 50 + LEFT_MARGIN; + let masterY = 50; + sectionBeginY = 50; + let sectionNumber = 0; + let hasSections = true; + sections2.forEach(function(section) { + const sectionNode = { + number: sectionNumber, + descr: section, + section: sectionNumber, + width: 150, + padding: 20, + maxHeight: maxSectionHeight + }; + const sectionHeight = svgDraw.getVirtualNodeHeight(svg, sectionNode, conf2); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("sectionHeight before draw", sectionHeight); + maxSectionHeight = Math.max(maxSectionHeight, sectionHeight + 20); + }); + let maxEventCount = 0; + let maxEventLineLength = 0; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("tasks.length", tasks2.length); + for (const [i, task] of tasks2.entries()) { + const taskNode = { + number: i, + descr: task, + section: task.section, + width: 150, + padding: 20, + maxHeight: maxTaskHeight + }; + const taskHeight = svgDraw.getVirtualNodeHeight(svg, taskNode, conf2); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("taskHeight before draw", taskHeight); + maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20); + maxEventCount = Math.max(maxEventCount, task.events.length); + let maxEventLineLengthTemp = 0; + for (let j = 0; j < task.events.length; j++) { + const event = task.events[j]; + const eventNode = { + descr: event, + section: task.section, + number: task.section, + width: 150, + padding: 20, + maxHeight: 50 + }; + maxEventLineLengthTemp += svgDraw.getVirtualNodeHeight(svg, eventNode, conf2); + } + maxEventLineLength = Math.max(maxEventLineLength, maxEventLineLengthTemp); + } + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("maxSectionHeight before draw", maxSectionHeight); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("maxTaskHeight before draw", maxTaskHeight); + if (sections2 && sections2.length > 0) { + sections2.forEach((section) => { + const sectionNode = { + number: sectionNumber, + descr: section, + section: sectionNumber, + width: 150, + padding: 20, + maxHeight: maxSectionHeight + }; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("sectionNode", sectionNode); + const sectionNodeWrapper = svg.append("g"); + const node = svgDraw.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf2); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("sectionNode output", node); + sectionNodeWrapper.attr("transform", `translate(${masterX}, ${sectionBeginY})`); + masterY += maxSectionHeight + 50; + const tasksForSection = tasks2.filter((task) => task.section === section); + if (tasksForSection.length > 0) { + drawTasks( + svg, + tasksForSection, + sectionNumber, + masterX, + masterY, + maxTaskHeight, + conf2, + maxEventCount, + maxEventLineLength, + maxSectionHeight, + false + ); + } + masterX += 200 * Math.max(tasksForSection.length, 1); + masterY = sectionBeginY; + sectionNumber++; + }); + } else { + hasSections = false; + drawTasks( + svg, + tasks2, + sectionNumber, + masterX, + masterY, + maxTaskHeight, + conf2, + maxEventCount, + maxEventLineLength, + maxSectionHeight, + true + ); + } + const box = svg.node().getBBox(); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("bounds", box); + if (title) { + svg.append("text").text(title).attr("x", box.width / 2 - LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 20); + } + depthY = hasSections ? maxSectionHeight + maxTaskHeight + 150 : maxTaskHeight + 100; + const lineWrapper = svg.append("g").attr("class", "lineWrapper"); + lineWrapper.append("line").attr("x1", LEFT_MARGIN).attr("y1", depthY).attr("x2", box.width + 3 * LEFT_MARGIN).attr("y2", depthY).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)"); + (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.s)( + void 0, + svg, + conf2.timeline.padding ? conf2.timeline.padding : 50, + conf2.timeline.useMaxWidth ? conf2.timeline.useMaxWidth : false + ); +}; +const drawTasks = function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf2, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections) { + for (const task of tasks2) { + const taskNode = { + descr: task.task, + section: sectionColor, + number: sectionColor, + width: 150, + padding: 20, + maxHeight: maxTaskHeight + }; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("taskNode", taskNode); + const taskWrapper = diagram2.append("g").attr("class", "taskWrapper"); + const node = svgDraw.drawNode(taskWrapper, taskNode, sectionColor, conf2); + const taskHeight = node.height; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("taskHeight after draw", taskHeight); + taskWrapper.attr("transform", `translate(${masterX}, ${masterY})`); + maxTaskHeight = Math.max(maxTaskHeight, taskHeight); + if (task.events) { + const lineWrapper = diagram2.append("g").attr("class", "lineWrapper"); + let linelength = maxTaskHeight; + masterY += 100; + linelength = linelength + drawEvents(diagram2, task.events, sectionColor, masterX, masterY, conf2); + masterY -= 100; + lineWrapper.append("line").attr("x1", masterX + 190 / 2).attr("y1", masterY + maxTaskHeight).attr("x2", masterX + 190 / 2).attr( + "y2", + masterY + maxTaskHeight + (isWithoutSections ? maxTaskHeight : maxSectionHeight) + maxEventLineLength + 120 + ).attr("stroke-width", 2).attr("stroke", "black").attr("marker-end", "url(#arrowhead)").attr("stroke-dasharray", "5,5"); + } + masterX = masterX + 200; + if (isWithoutSections && !(0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.g)().timeline.disableMulticolor) { + sectionColor++; + } + } + masterY = masterY - 10; +}; +const drawEvents = function(diagram2, events, sectionColor, masterX, masterY, conf2) { + let maxEventHeight = 0; + const eventBeginY = masterY; + masterY = masterY + 100; + for (const event of events) { + const eventNode = { + descr: event, + section: sectionColor, + number: sectionColor, + width: 150, + padding: 20, + maxHeight: 50 + }; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("eventNode", eventNode); + const eventWrapper = diagram2.append("g").attr("class", "eventWrapper"); + const node = svgDraw.drawNode(eventWrapper, eventNode, sectionColor, conf2); + const eventHeight = node.height; + maxEventHeight = maxEventHeight + eventHeight; + eventWrapper.attr("transform", `translate(${masterX}, ${masterY})`); + masterY = masterY + 10 + eventHeight; + } + masterY = eventBeginY; + return maxEventHeight; +}; +const renderer = { + setConf, + draw +}; +const genSections = (options) => { + let sections2 = ""; + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + options["lineColor" + i] = options["lineColor" + i] || options["cScaleInv" + i]; + if ((0,khroma__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z)(options["lineColor" + i])) { + options["lineColor" + i] = (0,khroma__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z)(options["lineColor" + i], 20); + } else { + options["lineColor" + i] = (0,khroma__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z)(options["lineColor" + i], 20); + } + } + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + const sw = "" + (17 - 3 * i); + sections2 += ` + .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} path { + fill: ${options["cScale" + i]}; + } + .section-${i - 1} text { + fill: ${options["cScaleLabel" + i]}; + } + .node-icon-${i - 1} { + font-size: 40px; + color: ${options["cScaleLabel" + i]}; + } + .section-edge-${i - 1}{ + stroke: ${options["cScale" + i]}; + } + .edge-depth-${i - 1}{ + stroke-width: ${sw}; + } + .section-${i - 1} line { + stroke: ${options["cScaleInv" + i]} ; + stroke-width: 3; + } + + .lineWrapper line{ + stroke: ${options["cScaleLabel" + i]} ; + } + + .disabled, .disabled circle, .disabled text { + fill: lightgray; + } + .disabled text { + fill: #efefef; + } + `; + } + return sections2; +}; +const getStyles = (options) => ` + .edge { + stroke-width: 3; + } + ${genSections(options)} + .section-root rect, .section-root path, .section-root circle { + fill: ${options.git0}; + } + .section-root text { + fill: ${options.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`; +const styles = getStyles; +const diagram = { + db, + renderer, + parser: parser$1, + styles +}; + +//# sourceMappingURL=timeline-definition-8e5a9bc6.js.map + + +/***/ }), + +/***/ 91619: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Z": () => (/* binding */ is_dark) +}); + +// EXTERNAL MODULE: ./node_modules/khroma/dist/utils/index.js + 3 modules +var utils = __webpack_require__(61691); +// EXTERNAL MODULE: ./node_modules/khroma/dist/color/index.js + 4 modules +var dist_color = __webpack_require__(71610); +;// CONCATENATED MODULE: ./node_modules/khroma/dist/methods/luminance.js +/* IMPORT */ + + +/* MAIN */ +//SOURCE: https://planetcalc.com/7779 +const luminance = (color) => { + const { r, g, b } = dist_color/* default.parse */.Z.parse(color); + const luminance = .2126 * utils/* default.channel.toLinear */.Z.channel.toLinear(r) + .7152 * utils/* default.channel.toLinear */.Z.channel.toLinear(g) + .0722 * utils/* default.channel.toLinear */.Z.channel.toLinear(b); + return utils/* default.lang.round */.Z.lang.round(luminance); +}; +/* EXPORT */ +/* harmony default export */ const methods_luminance = (luminance); + +;// CONCATENATED MODULE: ./node_modules/khroma/dist/methods/is_light.js +/* IMPORT */ + +/* MAIN */ +const isLight = (color) => { + return methods_luminance(color) >= .5; +}; +/* EXPORT */ +/* harmony default export */ const is_light = (isLight); + +;// CONCATENATED MODULE: ./node_modules/khroma/dist/methods/is_dark.js +/* IMPORT */ + +/* MAIN */ +const isDark = (color) => { + return !is_light(color); +}; +/* EXPORT */ +/* harmony default export */ const is_dark = (isDark); + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/6316.3a9fab01.js b/assets/js/6316.3a9fab01.js new file mode 100644 index 00000000000..041c7b331d7 --- /dev/null +++ b/assets/js/6316.3a9fab01.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6316],{96316:(t,e,n)=>{n.r(e),n.d(e,{diagram:()=>A});var i=n(16432),s=n(59373),r=n(91619),a=n(12281),o=n(7201),c=(n(27484),n(17967),n(27856),n(70277),n(45625),n(39354),n(91518),n(59542),n(10285),n(28734),function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,2],n=[1,5],i=[6,9,11,17,18,20,22,23,26,27,28],s=[1,15],r=[1,16],a=[1,17],o=[1,18],c=[1,19],l=[1,23],h=[1,24],d=[1,27],u=[4,6,9,11,17,18,20,22,23,26,27,28],p={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,acc_title:18,acc_title_value:19,acc_descr:20,acc_descr_value:21,acc_descr_multiline_value:22,section:23,period_statement:24,event_statement:25,period:26,event:27,open_directive:28,type_directive:29,arg_directive:30,close_directive:31,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"acc_title",19:"acc_title_value",20:"acc_descr",21:"acc_descr_value",22:"acc_descr_multiline_value",23:"section",26:"period",27:"event",28:"open_directive",29:"type_directive",30:"arg_directive",31:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[24,1],[25,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,n,i,s,r,a){var o=r.length-1;switch(s){case 1:return r[o-1];case 3:case 7:case 8:this.$=[];break;case 4:r[o-1].push(r[o]),this.$=r[o-1];break;case 5:case 6:this.$=r[o];break;case 11:i.getCommonDb().setDiagramTitle(r[o].substr(6)),this.$=r[o].substr(6);break;case 12:this.$=r[o].trim(),i.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=r[o].trim(),i.getCommonDb().setAccDescription(this.$);break;case 15:i.addSection(r[o].substr(8)),this.$=r[o].substr(8);break;case 19:i.addTask(r[o],0,""),this.$=r[o];break;case 20:i.addEvent(r[o].substr(2)),this.$=r[o];break;case 21:i.parseDirective("%%{","open_directive");break;case 22:i.parseDirective(r[o],"type_directive");break;case 23:r[o]=r[o].trim().replace(/'/g,'"'),i.parseDirective(r[o],"arg_directive");break;case 24:i.parseDirective("}%%","close_directive","timeline")}},table:[{3:1,4:e,7:3,12:4,28:n},{1:[3]},t(i,[2,3],{5:6}),{3:7,4:e,7:3,12:4,28:n},{13:8,29:[1,9]},{29:[2,21]},{6:[1,10],7:22,8:11,9:[1,12],10:13,11:[1,14],12:4,17:s,18:r,20:a,22:o,23:c,24:20,25:21,26:l,27:h,28:n},{1:[2,2]},{14:25,15:[1,26],31:d},t([15,31],[2,22]),t(i,[2,8],{1:[2,1]}),t(i,[2,4]),{7:22,10:28,12:4,17:s,18:r,20:a,22:o,23:c,24:20,25:21,26:l,27:h,28:n},t(i,[2,6]),t(i,[2,7]),t(i,[2,11]),{19:[1,29]},{21:[1,30]},t(i,[2,14]),t(i,[2,15]),t(i,[2,16]),t(i,[2,17]),t(i,[2,18]),t(i,[2,19]),t(i,[2,20]),{11:[1,31]},{16:32,30:[1,33]},{11:[2,24]},t(i,[2,5]),t(i,[2,12]),t(i,[2,13]),t(u,[2,9]),{14:34,31:d},{31:[2,23]},{11:[1,35]},t(u,[2,10])],defaultActions:{5:[2,21],7:[2,2],27:[2,24],33:[2,23]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],s=[null],r=[],a=this.table,o="",c=0,l=0,h=2,d=1,u=r.slice.call(arguments,1),p=Object.create(this.lexer),y={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(y.yy[g]=this.yy[g]);p.setInput(t,y.yy),y.yy.lexer=p,y.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var f=p.yylloc;r.push(f);var m=p.options&&p.options.ranges;function _(){var t;return"number"!=typeof(t=i.pop()||p.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof y.yy.parseError?this.parseError=y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,k,x,v,w,S,$,E,I={};;){if(k=n[n.length-1],this.defaultActions[k]?x=this.defaultActions[k]:(null==b&&(b=_()),x=a[k]&&a[k][b]),void 0===x||!x.length||!x[0]){var T="";for(w in E=[],a[k])this.terminals_[w]&&w>h&&E.push("'"+this.terminals_[w]+"'");T=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+E.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(c+1)+": Unexpected "+(b==d?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(T,{text:p.match,token:this.terminals_[b]||b,line:p.yylineno,loc:f,expected:E})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+b);switch(x[0]){case 1:n.push(b),s.push(p.yytext),r.push(p.yylloc),n.push(x[1]),b=null,l=p.yyleng,o=p.yytext,c=p.yylineno,f=p.yylloc;break;case 2:if(S=this.productions_[x[1]][1],I.$=s[s.length-S],I._$={first_line:r[r.length-(S||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(S||1)].first_column,last_column:r[r.length-1].last_column},m&&(I._$.range=[r[r.length-(S||1)].range[0],r[r.length-1].range[1]]),void 0!==(v=this.performAction.apply(I,[o,l,c,y.yy,x[1],s,r].concat(u))))return v;S&&(n=n.slice(0,-1*S*2),s=s.slice(0,-1*S),r=r.slice(0,-1*S)),n.push(this.productions_[x[1]][0]),s.push(I.$),r.push(I._$),$=a[n[n.length-2]][n[n.length-1]],n.push($);break;case 3:return!0}}return!0}},y={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 s=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[s[0],s[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,s;if(this.options.backtrack_lexer&&(s={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&&(s.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in s)this[r]=s[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var s=this._currentRules(),r=0;re[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,s[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,s[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),28;case 1:return this.begin("type_directive"),29;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),31;case 4:return 30;case 5:case 6:case 8:case 9:break;case 7:return 11;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 27;case 21:return 26;case 22:return 6;case 23:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\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:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23],inclusive:!0}}};function g(){this.yy={}}return p.lexer=y,g.prototype=p,p.Parser=g,new g}());c.parser=c;const l=c;let h="",d=0;const u=[],p=[],y=[],g=()=>i.j,f=(t,e,n)=>{(0,i.k)(globalThis,t,e,n)},m=function(){u.length=0,p.length=0,h="",y.length=0,(0,i.m)()},_=function(t){h=t,u.push(t)},b=function(){return u},k=function(){let t=S();let e=0;for(;!t&&e<100;)t=S(),e++;return p.push(...y),p},x=function(t,e,n){const i={id:d++,section:h,type:h,task:t,score:e||0,events:n?[n]:[]};y.push(i)},v=function(t){y.find((t=>t.id===d-1)).events.push(t)},w=function(t){const e={section:h,type:h,description:t,task:t,classes:[]};p.push(e)},S=function(){let t=!0;for(const[e,n]of y.entries())y[e].processed,t=t&&n.processed;return t},$={clear:m,getCommonDb:g,addSection:_,getSections:b,getTasks:k,addTask:x,addTaskOrg:w,addEvent:v,parseDirective:f},E=Object.freeze(Object.defineProperty({__proto__:null,addEvent:v,addSection:_,addTask:x,addTaskOrg:w,clear:m,default:$,getCommonDb:g,getSections:b,getTasks:k,parseDirective:f},Symbol.toStringTag,{value:"Module"}));!function(){function t(t,e,n,s,r,a,o,c){i(e.append("text").attr("x",n+r/2).attr("y",s+a/2+5).style("font-color",c).style("text-anchor","middle").text(t),o)}function e(t,e,n,s,r,a,o,c,l){const{taskFontSize:h,taskFontFamily:d}=c,u=t.split(//gi);for(let p=0;p)/).reverse(),r=[],a=n.attr("y"),o=parseFloat(n.attr("dy")),c=n.text(null).append("tspan").attr("x",0).attr("y",a).attr("dy",o+"em");for(let s=0;se||"
"===t)&&(r.pop(),c.text(r.join(" ").trim()),r="
"===t?[""]:[t],c=n.append("tspan").attr("x",0).attr("y",a).attr("dy","1.1em").text(t))}))}const T=function(t,e,n){t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+e.type).attr("d",`M0 ${e.height-5} v${10-e.height} q0,-5 5,-5 h${e.width-10} q5,0 5,5 v${e.height-5} H0 Z`),t.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",e.height).attr("x2",e.width).attr("y2",e.height)},D=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},L=function(t,e,n,i){const s=n%12-1,r=t.append("g");e.section=s,r.attr("class",(e.class?e.class+" ":"")+"timeline-node section-"+s);const a=r.append("g"),o=r.append("g"),c=o.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(I,e.width).node().getBBox(),l=i.fontSize&&i.fontSize.replace?i.fontSize.replace("px",""):i.fontSize;return e.height=c.height+1.1*l*.5+e.padding,e.height=Math.max(e.height,e.maxHeight),e.width=e.width+2*e.padding,o.attr("transform","translate("+e.width/2+", "+e.padding/2+")"),T(a,e,s),e},C=function(t,e,n){const i=t.append("g"),s=i.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(I,e.width).node().getBBox(),r=n.fontSize&&n.fontSize.replace?n.fontSize.replace("px",""):n.fontSize;return i.remove(),s.height+1.1*r*.5+e.padding},M=function(t,e,n,s,r,a,o,c,l,h,d){for(const u of e){const e={descr:u.task,section:n,number:n,width:150,padding:20,maxHeight:a};i.l.debug("taskNode",e);const c=t.append("g").attr("class","taskWrapper"),p=L(c,e,n,o).height;if(i.l.debug("taskHeight after draw",p),c.attr("transform",`translate(${s}, ${r})`),a=Math.max(a,p),u.events){const e=t.append("g").attr("class","lineWrapper");let i=a;r+=100,i+=O(t,u.events,n,s,r,o),r-=100,e.append("line").attr("x1",s+95).attr("y1",r+a).attr("x2",s+95).attr("y2",r+a+(d?a:h)+l+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}s+=200,d&&!(0,i.g)().timeline.disableMulticolor&&n++}r-=10},O=function(t,e,n,s,r,a){let o=0;const c=r;r+=100;for(const l of e){const e={descr:l,section:n,number:n,width:150,padding:20,maxHeight:50};i.l.debug("eventNode",e);const c=t.append("g").attr("class","eventWrapper"),h=L(c,e,n,a).height;o+=h,c.attr("transform",`translate(${s}, ${r})`),r=r+10+h}return r=c,o},A={db:E,renderer:{setConf:function(t){Object.keys(t).forEach((function(e){conf[e]=t[e]}))},draw:function(t,e,n,r){const a=(0,i.g)(),o=a.leftMargin?a.leftMargin:50;r.db.clear(),r.parser.parse(t+"\n"),i.l.debug("timeline",r.db);const c=a.securityLevel;let l;"sandbox"===c&&(l=(0,s.Ys)("#i"+e));const h=("sandbox"===c?(0,s.Ys)(l.nodes()[0].contentDocument.body):(0,s.Ys)("body")).select("#"+e);h.append("g");const d=r.db.getTasks(),u=r.db.getCommonDb().getDiagramTitle();i.l.debug("task",d),D(h);const p=r.db.getSections();i.l.debug("sections",p);let y=0,g=0,f=0,m=0,_=50+o,b=50;m=50;let k=0,x=!0;p.forEach((function(t){const e=C(h,{number:k,descr:t,section:k,width:150,padding:20,maxHeight:y},a);i.l.debug("sectionHeight before draw",e),y=Math.max(y,e+20)}));let v=0,w=0;i.l.debug("tasks.length",d.length);for(const[s,$]of d.entries()){const t={number:s,descr:$,section:$.section,width:150,padding:20,maxHeight:g},e=C(h,t,a);i.l.debug("taskHeight before draw",e),g=Math.max(g,e+20),v=Math.max(v,$.events.length);let n=0;for(let i=0;i<$.events.length;i++){const t={descr:$.events[i],section:$.section,number:$.section,width:150,padding:20,maxHeight:50};n+=C(h,t,a)}w=Math.max(w,n)}i.l.debug("maxSectionHeight before draw",y),i.l.debug("maxTaskHeight before draw",g),p&&p.length>0?p.forEach((t=>{const e={number:k,descr:t,section:k,width:150,padding:20,maxHeight:y};i.l.debug("sectionNode",e);const n=h.append("g"),s=L(n,e,k,a);i.l.debug("sectionNode output",s),n.attr("transform",`translate(${_}, 50)`),b+=y+50;const r=d.filter((e=>e.section===t));r.length>0&&M(h,r,k,_,b,g,a,v,w,y,!1),_+=200*Math.max(r.length,1),b=50,k++})):(x=!1,M(h,d,k,_,b,g,a,v,w,y,!0));const S=h.node().getBBox();i.l.debug("bounds",S),u&&h.append("text").text(u).attr("x",S.width/2-o).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),f=x?y+g+150:g+100;h.append("g").attr("class","lineWrapper").append("line").attr("x1",o).attr("y1",f).attr("x2",S.width+3*o).attr("y2",f).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),(0,i.s)(void 0,h,a.timeline.padding?a.timeline.padding:50,!!a.timeline.useMaxWidth&&a.timeline.useMaxWidth)}},parser:l,styles:t=>`\n .edge {\n stroke-width: 3;\n }\n ${(t=>{let e="";for(let n=0;n{n.d(e,{Z:()=>o});var i=n(61691),s=n(71610);const r=t=>{const{r:e,g:n,b:r}=s.Z.parse(t),a=.2126*i.Z.channel.toLinear(e)+.7152*i.Z.channel.toLinear(n)+.0722*i.Z.channel.toLinear(r);return i.Z.lang.round(a)},a=t=>r(t)>=.5,o=t=>!a(t)}}]); \ No newline at end of file diff --git a/assets/js/6329.369e2ba8.js b/assets/js/6329.369e2ba8.js new file mode 100644 index 00000000000..bfd4c8a1205 --- /dev/null +++ b/assets/js/6329.369e2ba8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6329],{46329:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>w,frontMatter:()=>i,metadata:()=>r,toc:()=>u});var a=n(87462),o=(n(67294),n(3905));const i={title:"New Flow Language Rule: Constrained Writes","short-title":"Introducing Constrained Writes",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/new-flow-language-rule-constrained-writes-4c70e375d190"},s=void 0,r={permalink:"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes",source:"@site/blog/2022-08-05-New-Flow-Language-Rule-Constrained-Writes.md",title:"New Flow Language Rule: Constrained Writes",description:"Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated.",date:"2022-08-05T00:00:00.000Z",formattedDate:"August 5, 2022",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"New Flow Language Rule: Constrained Writes","short-title":"Introducing Constrained Writes",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/new-flow-language-rule-constrained-writes-4c70e375d190"},prevItem:{title:"Requiring More Annotations to Functions and Classes in Flow",permalink:"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes"},nextItem:{title:"Introducing: Local Type Inference for Flow",permalink:"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow"}},l={authorsImageUrls:[void 0]},u=[],d={toc:u};function w(e){let{components:t,...n}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated."))}w.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6393.7cb3deb5.js b/assets/js/6393.7cb3deb5.js new file mode 100644 index 00000000000..fc81d155f50 --- /dev/null +++ b/assets/js/6393.7cb3deb5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6393],{46393:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var o=i(87462),n=(i(67294),i(3905));i(45475);const a={title:"Library Definitions",slug:"/libdefs",description:"Learn how to create and use library definitions for the third-party code your code depends on."},r=void 0,s={unversionedId:"libdefs/index",id:"libdefs/index",title:"Library Definitions",description:"Learn how to create and use library definitions for the third-party code your code depends on.",source:"@site/docs/libdefs/index.md",sourceDirName:"libdefs",slug:"/libdefs",permalink:"/en/docs/libdefs",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/libdefs/index.md",tags:[],version:"current",frontMatter:{title:"Library Definitions",slug:"/libdefs",description:"Learn how to create and use library definitions for the third-party code your code depends on."},sidebar:"docsSidebar",previous:{title:"Declaration Files",permalink:"/en/docs/declarations"},next:{title:"Creating Library Definitions",permalink:"/en/docs/libdefs/creation"}},d={},l=[{value:"What's a "Library Definition"?",id:"toc-what-s-a-library-definition",level:2},{value:"General Best Practices",id:"toc-general-best-practices",level:2}],c={toc:l};function p(e){let{components:t,...i}=e;return(0,n.mdx)("wrapper",(0,o.Z)({},c,i,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("h2",{id:"toc-what-s-a-library-definition"},'What\'s a "Library Definition"?'),(0,n.mdx)("p",null,'Most real JavaScript programs depend on third-party code and not just code\nimmediately under the control of the project. That means a project using Flow\nmay need to reference outside code that either doesn\'t have type information or\ndoesn\'t have accurate and/or precise type information. In order to handle this,\nFlow supports the concept of a "library definition" (a.k.a. "libdef").'),(0,n.mdx)("p",null,"A libdef is a special file that informs Flow about the type signature of some\nspecific third-party module or package of modules that your application uses.\nIf you're familiar with languages that have header files (like ",(0,n.mdx)("inlineCode",{parentName:"p"},"C++"),"), you can\nthink of libdefs as a similar concept."),(0,n.mdx)("p",null,"These special files use the same ",(0,n.mdx)("inlineCode",{parentName:"p"},".js")," extension as normal JS code, but they are\nplaced in a directory called ",(0,n.mdx)("inlineCode",{parentName:"p"},"flow-typed")," in the root directory of your project.\nPlacement in this directory tells Flow to interpret them as libdefs rather than\nnormal JS files."),(0,n.mdx)("blockquote",null,(0,n.mdx)("p",{parentName:"blockquote"},"NOTE: Using the ",(0,n.mdx)("inlineCode",{parentName:"p"},"/flow-typed")," directory for libdefs is a convention that\nenables Flow to JustWork\u2122 out of the box and encourages consistency\nacross projects that use Flow, but it is also possible to explicitly\nconfigure Flow to look elsewhere for libdefs using the ",(0,n.mdx)("a",{parentName:"p",href:"../config/libs"},(0,n.mdx)("inlineCode",{parentName:"a"},"[libs]")," section\nof your ",(0,n.mdx)("inlineCode",{parentName:"a"},".flowconfig")),".")),(0,n.mdx)("p",null,"You can also learn about ",(0,n.mdx)("a",{parentName:"p",href:"../declarations"},"declaration files"),"."),(0,n.mdx)("h2",{id:"toc-general-best-practices"},"General Best Practices"),(0,n.mdx)("p",null,(0,n.mdx)("strong",{parentName:"p"},"Try to provide a libdef for each third-party library your project uses.")),(0,n.mdx)("p",null,"If a third-party library that has no type information is used by your project,\nFlow will treat it like any other untyped dependency and mark all of its exports\nas ",(0,n.mdx)("inlineCode",{parentName:"p"},"any"),"."),(0,n.mdx)("p",null,"Because of this behavior, it is a best practice to find or write libdefs for as\nmany of the third-party libraries that you use as you can. We recommend checking\nout the ",(0,n.mdx)("inlineCode",{parentName:"p"},"flow-typed"),"\n",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/flow-typed/flow-typed/"},"tool and repository"),"\n, which helps you quickly find and install pre-existing libdefs for your\nthird-party dependencies."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/64.d7c257b8.js b/assets/js/64.d7c257b8.js new file mode 100644 index 00000000000..a674481cfa9 --- /dev/null +++ b/assets/js/64.d7c257b8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[64],{40064:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>n,contentTitle:()=>d,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>r});var i=o(87462),s=(o(67294),o(3905));o(45475);const a={title:"Visual Studio Code",slug:"/editors/vscode"},d=void 0,l={unversionedId:"editors/vscode",id:"editors/vscode",title:"Visual Studio Code",description:"Screenshot of Flow Language Support",source:"@site/docs/editors/vscode.md",sourceDirName:"editors",slug:"/editors/vscode",permalink:"/en/docs/editors/vscode",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/editors/vscode.md",tags:[],version:"current",frontMatter:{title:"Visual Studio Code",slug:"/editors/vscode"},sidebar:"docsSidebar",previous:{title:"Editors",permalink:"/en/docs/editors"},next:{title:"Sublime Text",permalink:"/en/docs/editors/sublime-text"}},n={},r=[{value:"Installation",id:"installation",level:2}],u={toc:r};function p(e){let{components:t,...a}=e;return(0,s.mdx)("wrapper",(0,i.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,(0,s.mdx)("img",{alt:"Screenshot of Flow Language Support",src:o(1085).Z,width:"800",height:"558"})),(0,s.mdx)("p",null,"Support for Flow in ",(0,s.mdx)("a",{parentName:"p",href:"https://code.visualstudio.com/"},"Visual Studio Code")," is provided by\nthe ",(0,s.mdx)("a",{parentName:"p",href:"https://marketplace.visualstudio.com/items?itemName=flowtype.flow-for-vscode"},"Flow Language Support"),"\nextension. It provides all the functionality you would expect:"),(0,s.mdx)("ul",null,(0,s.mdx)("li",{parentName:"ul"},"IntelliSense (Autocomplete)"),(0,s.mdx)("li",{parentName:"ul"},"Go to Definition / Peek Definition"),(0,s.mdx)("li",{parentName:"ul"},"Diagnostics (Errors, Warnings)"),(0,s.mdx)("li",{parentName:"ul"},"Hover type information"),(0,s.mdx)("li",{parentName:"ul"},"Toggleable code coverage reports")),(0,s.mdx)("h2",{id:"installation"},"Installation"),(0,s.mdx)("p",null,'Search for "Flow Language Support" in the VS Code extensions panel or install through the ',(0,s.mdx)("a",{parentName:"p",href:"https://marketplace.visualstudio.com/items?itemName=flowtype.flow-for-vscode"},"Marketplace"),"."))}p.isMDXComponent=!0},1085:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/flow_for_vscode-ca5205105d042b2a09dc485fba0634be.gif"}}]); \ No newline at end of file diff --git a/assets/js/6423.a0154131.js b/assets/js/6423.a0154131.js new file mode 100644 index 00000000000..6fe5c00d158 --- /dev/null +++ b/assets/js/6423.a0154131.js @@ -0,0 +1,2 @@ +/*! For license information please see 6423.a0154131.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6423],{56423:(e,i,t)=>{t.r(i),t.d(i,{conf:()=>n,language:()=>s});var n={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},s={defaultToken:"",tokenPostfix:".cypher",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ALL","AND","AS","ASC","ASCENDING","BY","CALL","CASE","CONTAINS","CREATE","DELETE","DESC","DESCENDING","DETACH","DISTINCT","ELSE","END","ENDS","EXISTS","IN","IS","LIMIT","MANDATORY","MATCH","MERGE","NOT","ON","ON","OPTIONAL","OR","ORDER","REMOVE","RETURN","SET","SKIP","STARTS","THEN","UNION","UNWIND","WHEN","WHERE","WITH","XOR","YIELD"],builtinLiterals:["true","TRUE","false","FALSE","null","NULL"],builtinFunctions:["abs","acos","asin","atan","atan2","avg","ceil","coalesce","collect","cos","cot","count","degrees","e","endNode","exists","exp","floor","head","id","keys","labels","last","left","length","log","log10","lTrim","max","min","nodes","percentileCont","percentileDisc","pi","properties","radians","rand","range","relationships","replace","reverse","right","round","rTrim","sign","sin","size","split","sqrt","startNode","stDev","stDevP","substring","sum","tail","tan","timestamp","toBoolean","toFloat","toInteger","toLower","toString","toUpper","trim","type"],operators:["+","-","*","/","%","^","=","<>","<",">","<=",">=","->","<-","--\x3e","<--"],escapes:/\\(?:[tbnrf\\"'`]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+/,octaldigits:/[0-7]+/,hexdigits:/[0-9a-fA-F]+/,tokenizer:{root:[[/[{}[\]()]/,"@brackets"],{include:"common"}],common:[{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},[/:[a-zA-Z_][\w]*/,"type.identifier"],[/[a-zA-Z_][\w]*(?=\()/,{cases:{"@builtinFunctions":"predefined.function"}}],[/[a-zA-Z_$][\w$]*/,{cases:{"@keywords":"keyword","@builtinLiterals":"predefined.literal","@default":"identifier"}}],[/`/,"identifier.escape","@identifierBacktick"],[/[;,.:|]/,"delimiter"],[/[<>=%+\-*/^]+/,{cases:{"@operators":"delimiter","@default":""}}]],numbers:[[/-?(@digits)[eE](-?(@digits))?/,"number.float"],[/-?(@digits)?\.(@digits)([eE]-?(@digits))?/,"number.float"],[/-?0x(@hexdigits)/,"number.hex"],[/-?0(@octaldigits)/,"number.octal"],[/-?(@digits)/,"number"]],strings:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@stringDouble"],[/'/,"string","@stringSingle"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/\/\/.*/,"comment"],[/[^/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[/*]/,"comment"]],stringDouble:[[/[^\\"]+/,"string"],[/@escapes/,"string"],[/\\./,"string.invalid"],[/"/,"string","@pop"]],stringSingle:[[/[^\\']+/,"string"],[/@escapes/,"string"],[/\\./,"string.invalid"],[/'/,"string","@pop"]],identifierBacktick:[[/[^\\`]+/,"identifier.escape"],[/@escapes/,"identifier.escape"],[/\\./,"identifier.escape.invalid"],[/`/,"identifier.escape","@pop"]]}}}}]); \ No newline at end of file diff --git a/assets/js/6423.a0154131.js.LICENSE.txt b/assets/js/6423.a0154131.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/6423.a0154131.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/6423.b6271fc7.js b/assets/js/6423.b6271fc7.js new file mode 100644 index 00000000000..b8306eae10e --- /dev/null +++ b/assets/js/6423.b6271fc7.js @@ -0,0 +1,281 @@ +"use strict"; +exports.id = 6423; +exports.ids = [6423]; +exports.modules = { + +/***/ 56423: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/cypher/cypher.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "`", close: "`" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "`", close: "`" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: `.cypher`, + ignoreCase: true, + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.bracket" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + keywords: [ + "ALL", + "AND", + "AS", + "ASC", + "ASCENDING", + "BY", + "CALL", + "CASE", + "CONTAINS", + "CREATE", + "DELETE", + "DESC", + "DESCENDING", + "DETACH", + "DISTINCT", + "ELSE", + "END", + "ENDS", + "EXISTS", + "IN", + "IS", + "LIMIT", + "MANDATORY", + "MATCH", + "MERGE", + "NOT", + "ON", + "ON", + "OPTIONAL", + "OR", + "ORDER", + "REMOVE", + "RETURN", + "SET", + "SKIP", + "STARTS", + "THEN", + "UNION", + "UNWIND", + "WHEN", + "WHERE", + "WITH", + "XOR", + "YIELD" + ], + builtinLiterals: ["true", "TRUE", "false", "FALSE", "null", "NULL"], + builtinFunctions: [ + "abs", + "acos", + "asin", + "atan", + "atan2", + "avg", + "ceil", + "coalesce", + "collect", + "cos", + "cot", + "count", + "degrees", + "e", + "endNode", + "exists", + "exp", + "floor", + "head", + "id", + "keys", + "labels", + "last", + "left", + "length", + "log", + "log10", + "lTrim", + "max", + "min", + "nodes", + "percentileCont", + "percentileDisc", + "pi", + "properties", + "radians", + "rand", + "range", + "relationships", + "replace", + "reverse", + "right", + "round", + "rTrim", + "sign", + "sin", + "size", + "split", + "sqrt", + "startNode", + "stDev", + "stDevP", + "substring", + "sum", + "tail", + "tan", + "timestamp", + "toBoolean", + "toFloat", + "toInteger", + "toLower", + "toString", + "toUpper", + "trim", + "type" + ], + operators: [ + "+", + "-", + "*", + "/", + "%", + "^", + "=", + "<>", + "<", + ">", + "<=", + ">=", + "->", + "<-", + "-->", + "<--" + ], + escapes: /\\(?:[tbnrf\\"'`]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + digits: /\d+/, + octaldigits: /[0-7]+/, + hexdigits: /[0-9a-fA-F]+/, + tokenizer: { + root: [[/[{}[\]()]/, "@brackets"], { include: "common" }], + common: [ + { include: "@whitespace" }, + { include: "@numbers" }, + { include: "@strings" }, + [/:[a-zA-Z_][\w]*/, "type.identifier"], + [ + /[a-zA-Z_][\w]*(?=\()/, + { + cases: { + "@builtinFunctions": "predefined.function" + } + } + ], + [ + /[a-zA-Z_$][\w$]*/, + { + cases: { + "@keywords": "keyword", + "@builtinLiterals": "predefined.literal", + "@default": "identifier" + } + } + ], + [/`/, "identifier.escape", "@identifierBacktick"], + [/[;,.:|]/, "delimiter"], + [ + /[<>=%+\-*/^]+/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ] + ], + numbers: [ + [/-?(@digits)[eE](-?(@digits))?/, "number.float"], + [/-?(@digits)?\.(@digits)([eE]-?(@digits))?/, "number.float"], + [/-?0x(@hexdigits)/, "number.hex"], + [/-?0(@octaldigits)/, "number.octal"], + [/-?(@digits)/, "number"] + ], + strings: [ + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@stringDouble"], + [/'/, "string", "@stringSingle"] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/\/\/.*/, "comment"], + [/[^/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[/*]/, "comment"] + ], + stringDouble: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string"], + [/\\./, "string.invalid"], + [/"/, "string", "@pop"] + ], + stringSingle: [ + [/[^\\']+/, "string"], + [/@escapes/, "string"], + [/\\./, "string.invalid"], + [/'/, "string", "@pop"] + ], + identifierBacktick: [ + [/[^\\`]+/, "identifier.escape"], + [/@escapes/, "identifier.escape"], + [/\\./, "identifier.escape.invalid"], + [/`/, "identifier.escape", "@pop"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/6424.3a507a7e.js b/assets/js/6424.3a507a7e.js new file mode 100644 index 00000000000..18dac464a2d --- /dev/null +++ b/assets/js/6424.3a507a7e.js @@ -0,0 +1,2 @@ +/*! For license information please see 6424.3a507a7e.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6424],{76424:(e,t,r)=>{r.r(t),r.d(t,{conf:()=>h,language:()=>u});var o,n,i=r(38139),a=Object.defineProperty,m=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,l=(e,t,r,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of s(t))c.call(e,n)||n===r||a(e,n,{get:()=>t[n],enumerable:!(o=m(t,n))||o.enumerable});return e},d={};l(d,o=i,"default"),n&&l(n,o,"default");var p=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],h={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["\x3c!--","--\x3e"],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${p.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:d.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${p.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:d.languages.IndentAction.Indent}}]},u={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/@@@@/],[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)([\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],razorInSimpleState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3"}]],razorInEmbeddedState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],razorBlockCommentTopLevel:[[/\*@/,"@rematch","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorBlockComment:[[/\*@/,"comment.cs","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorRootTopLevel:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/[})]/,"@rematch","@pop"],{include:"razorCommon"}],razorRoot:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/\}/,"delimiter.bracket.cs","@pop"],[/\)/,"delimiter.parenthesis.cs","@pop"],{include:"razorCommon"}],razorCommon:[[/[a-zA-Z_]\w*/,{cases:{"@razorKeywords":{token:"keyword.cs"},"@default":"identifier.cs"}}],[/[\[\]]/,"delimiter.array.cs"],[/[ \t\r\n]+/],[/\/\/.*$/,"comment.cs"],[/@\*/,"comment.cs","@razorBlockComment"],[/"([^"]*)"/,"string.cs"],[/'([^']*)'/,"string.cs"],[/(<)([\w\-]+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)([\w\-]+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<\/)([\w\-]+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,]/,"delimiter.cs"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.cs"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.cs"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.cs"],[/0[0-7']*[0-7]/,"number.octal.cs"],[/0[bB][0-1']*[0-1]/,"number.binary.cs"],[/\d[\d']*/,"number.cs"],[/\d/,"number.cs"]]},razorKeywords:["abstract","as","async","await","base","bool","break","by","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","do","double","descending","explicit","event","extern","else","enum","false","finally","fixed","float","for","foreach","from","goto","group","if","implicit","in","int","interface","internal","into","is","lock","long","nameof","new","null","namespace","object","operator","out","override","orderby","params","private","protected","public","readonly","ref","return","switch","struct","sbyte","sealed","short","sizeof","stackalloc","static","string","select","this","throw","true","try","typeof","uint","ulong","unchecked","unsafe","ushort","using","var","virtual","volatile","void","when","while","where","yield","model","inject"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/}}}]); \ No newline at end of file diff --git a/assets/js/6424.3a507a7e.js.LICENSE.txt b/assets/js/6424.3a507a7e.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/6424.3a507a7e.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/6424.41d2a4c6.js b/assets/js/6424.41d2a4c6.js new file mode 100644 index 00000000000..f9ce1bf8b7d --- /dev/null +++ b/assets/js/6424.41d2a4c6.js @@ -0,0 +1,544 @@ +"use strict"; +exports.id = 6424; +exports.ids = [6424]; +exports.modules = { + +/***/ 76424: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38139); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/basic-languages/razor/razor.ts +var EMPTY_ELEMENTS = [ + "area", + "base", + "br", + "col", + "embed", + "hr", + "img", + "input", + "keygen", + "link", + "menuitem", + "meta", + "param", + "source", + "track", + "wbr" +]; +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g, + comments: { + blockComment: [""] + }, + brackets: [ + [""], + ["<", ">"], + ["{", "}"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "<", close: ">" } + ], + onEnterRules: [ + { + beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + afterText: /^<\/(\w[\w\d]*)\s*>$/i, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent + } + }, + { + beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent } + } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: "", + tokenizer: { + root: [ + [/@@@@/], + [/@[^@]/, { token: "@rematch", switchTo: "@razorInSimpleState.root" }], + [/)/, ["delimiter.html", "tag.html", "delimiter.html"]], + [/(<)(script)/, ["delimiter.html", { token: "tag.html", next: "@script" }]], + [/(<)(style)/, ["delimiter.html", { token: "tag.html", next: "@style" }]], + [/(<)([:\w\-]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/(<\/)([\w\-]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/]+/, "metatag.content.html"], + [/>/, "metatag.html", "@pop"] + ], + comment: [ + [/@[^@]/, { token: "@rematch", switchTo: "@razorInSimpleState.comment" }], + [/-->/, "comment.html", "@pop"], + [/[^-]+/, "comment.content.html"], + [/./, "comment.content.html"] + ], + otherTag: [ + [/@[^@]/, { token: "@rematch", switchTo: "@razorInSimpleState.otherTag" }], + [/\/?>/, "delimiter.html", "@pop"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/] + ], + script: [ + [/@[^@]/, { token: "@rematch", switchTo: "@razorInSimpleState.script" }], + [/type/, "attribute.name", "@scriptAfterType"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [ + /(<\/)(script\s*)(>)/, + ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }] + ] + ], + scriptAfterType: [ + [ + /@[^@]/, + { + token: "@rematch", + switchTo: "@razorInSimpleState.scriptAfterType" + } + ], + [/=/, "delimiter", "@scriptAfterTypeEquals"], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptAfterTypeEquals: [ + [ + /@[^@]/, + { + token: "@rematch", + switchTo: "@razorInSimpleState.scriptAfterTypeEquals" + } + ], + [ + /"([^"]*)"/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptWithCustomType: [ + [ + /@[^@]/, + { + token: "@rematch", + switchTo: "@razorInSimpleState.scriptWithCustomType.$S2" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptEmbedded: [ + [ + /@[^@]/, + { + token: "@rematch", + switchTo: "@razorInEmbeddedState.scriptEmbedded.$S2", + nextEmbedded: "@pop" + } + ], + [/<\/script/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }] + ], + style: [ + [/@[^@]/, { token: "@rematch", switchTo: "@razorInSimpleState.style" }], + [/type/, "attribute.name", "@styleAfterType"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [ + /(<\/)(style\s*)(>)/, + ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }] + ] + ], + styleAfterType: [ + [ + /@[^@]/, + { + token: "@rematch", + switchTo: "@razorInSimpleState.styleAfterType" + } + ], + [/=/, "delimiter", "@styleAfterTypeEquals"], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleAfterTypeEquals: [ + [ + /@[^@]/, + { + token: "@rematch", + switchTo: "@razorInSimpleState.styleAfterTypeEquals" + } + ], + [ + /"([^"]*)"/, + { + token: "attribute.value", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleWithCustomType: [ + [ + /@[^@]/, + { + token: "@rematch", + switchTo: "@razorInSimpleState.styleWithCustomType.$S2" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleEmbedded: [ + [ + /@[^@]/, + { + token: "@rematch", + switchTo: "@razorInEmbeddedState.styleEmbedded.$S2", + nextEmbedded: "@pop" + } + ], + [/<\/style/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }] + ], + razorInSimpleState: [ + [/@\*/, "comment.cs", "@razorBlockCommentTopLevel"], + [/@[{(]/, "metatag.cs", "@razorRootTopLevel"], + [/(@)(\s*[\w]+)/, ["metatag.cs", { token: "identifier.cs", switchTo: "@$S2.$S3" }]], + [/[})]/, { token: "metatag.cs", switchTo: "@$S2.$S3" }], + [/\*@/, { token: "comment.cs", switchTo: "@$S2.$S3" }] + ], + razorInEmbeddedState: [ + [/@\*/, "comment.cs", "@razorBlockCommentTopLevel"], + [/@[{(]/, "metatag.cs", "@razorRootTopLevel"], + [ + /(@)(\s*[\w]+)/, + [ + "metatag.cs", + { + token: "identifier.cs", + switchTo: "@$S2.$S3", + nextEmbedded: "$S3" + } + ] + ], + [ + /[})]/, + { + token: "metatag.cs", + switchTo: "@$S2.$S3", + nextEmbedded: "$S3" + } + ], + [ + /\*@/, + { + token: "comment.cs", + switchTo: "@$S2.$S3", + nextEmbedded: "$S3" + } + ] + ], + razorBlockCommentTopLevel: [ + [/\*@/, "@rematch", "@pop"], + [/[^*]+/, "comment.cs"], + [/./, "comment.cs"] + ], + razorBlockComment: [ + [/\*@/, "comment.cs", "@pop"], + [/[^*]+/, "comment.cs"], + [/./, "comment.cs"] + ], + razorRootTopLevel: [ + [/\{/, "delimiter.bracket.cs", "@razorRoot"], + [/\(/, "delimiter.parenthesis.cs", "@razorRoot"], + [/[})]/, "@rematch", "@pop"], + { include: "razorCommon" } + ], + razorRoot: [ + [/\{/, "delimiter.bracket.cs", "@razorRoot"], + [/\(/, "delimiter.parenthesis.cs", "@razorRoot"], + [/\}/, "delimiter.bracket.cs", "@pop"], + [/\)/, "delimiter.parenthesis.cs", "@pop"], + { include: "razorCommon" } + ], + razorCommon: [ + [ + /[a-zA-Z_]\w*/, + { + cases: { + "@razorKeywords": { token: "keyword.cs" }, + "@default": "identifier.cs" + } + } + ], + [/[\[\]]/, "delimiter.array.cs"], + [/[ \t\r\n]+/], + [/\/\/.*$/, "comment.cs"], + [/@\*/, "comment.cs", "@razorBlockComment"], + [/"([^"]*)"/, "string.cs"], + [/'([^']*)'/, "string.cs"], + [/(<)([\w\-]+)(\/>)/, ["delimiter.html", "tag.html", "delimiter.html"]], + [/(<)([\w\-]+)(>)/, ["delimiter.html", "tag.html", "delimiter.html"]], + [/(<\/)([\w\-]+)(>)/, ["delimiter.html", "tag.html", "delimiter.html"]], + [/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,]/, "delimiter.cs"], + [/\d*\d+[eE]([\-+]?\d+)?/, "number.float.cs"], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float.cs"], + [/0[xX][0-9a-fA-F']*[0-9a-fA-F]/, "number.hex.cs"], + [/0[0-7']*[0-7]/, "number.octal.cs"], + [/0[bB][0-1']*[0-1]/, "number.binary.cs"], + [/\d[\d']*/, "number.cs"], + [/\d/, "number.cs"] + ] + }, + razorKeywords: [ + "abstract", + "as", + "async", + "await", + "base", + "bool", + "break", + "by", + "byte", + "case", + "catch", + "char", + "checked", + "class", + "const", + "continue", + "decimal", + "default", + "delegate", + "do", + "double", + "descending", + "explicit", + "event", + "extern", + "else", + "enum", + "false", + "finally", + "fixed", + "float", + "for", + "foreach", + "from", + "goto", + "group", + "if", + "implicit", + "in", + "int", + "interface", + "internal", + "into", + "is", + "lock", + "long", + "nameof", + "new", + "null", + "namespace", + "object", + "operator", + "out", + "override", + "orderby", + "params", + "private", + "protected", + "public", + "readonly", + "ref", + "return", + "switch", + "struct", + "sbyte", + "sealed", + "short", + "sizeof", + "stackalloc", + "static", + "string", + "select", + "this", + "throw", + "true", + "try", + "typeof", + "uint", + "ulong", + "unchecked", + "unsafe", + "ushort", + "using", + "var", + "virtual", + "volatile", + "void", + "when", + "while", + "where", + "yield", + "model", + "inject" + ], + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/ +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/6432.8f67f499.js b/assets/js/6432.8f67f499.js new file mode 100644 index 00000000000..77e01c99eda --- /dev/null +++ b/assets/js/6432.8f67f499.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6432],{6432:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>r,toc:()=>d});var i=a(87462),t=(a(67294),a(3905));a(45475);const o={title:"Declaration Files",slug:"/declarations",description:"Learn how to write types in .flow files."},l=void 0,r={unversionedId:"declarations/index",id:"declarations/index",title:"Declaration Files",description:"Learn how to write types in .flow files.",source:"@site/docs/declarations/index.md",sourceDirName:"declarations",slug:"/declarations",permalink:"/en/docs/declarations",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/declarations/index.md",tags:[],version:"current",frontMatter:{title:"Declaration Files",slug:"/declarations",description:"Learn how to write types in .flow files."},sidebar:"docsSidebar",previous:{title:"Migrating from legacy patterns",permalink:"/en/docs/enums/migrating-legacy-patterns"},next:{title:"Library Definitions",permalink:"/en/docs/libdefs"}},s={},d=[{value:"What's a Declaration File?",id:"toc-what-s-a-declaration-file",level:2},{value:"Inlining declarations in regular code",id:"toc-inlining-declarations-in-regular-code",level:2}],m={toc:d};function p(e){let{components:n,...a}=e;return(0,t.mdx)("wrapper",(0,i.Z)({},m,a,{components:n,mdxType:"MDXLayout"}),(0,t.mdx)("h2",{id:"toc-what-s-a-declaration-file"},"What's a Declaration File?"),(0,t.mdx)("p",null,"Let's look at a more general, and sometimes more convenient way to\ndeclare types for modules: ",(0,t.mdx)("inlineCode",{parentName:"p"},".flow")," files."),(0,t.mdx)("p",null,"There are two possible use cases, depending on whether an implementation file exists\nor not."),(0,t.mdx)("p",null,"In the first case, the exported types of a module are declared in a ",(0,t.mdx)("em",{parentName:"p"},"declaration\nfile")," ",(0,t.mdx)("inlineCode",{parentName:"p"},".flow"),", that is located in the same directory as the corresponding ",(0,t.mdx)("em",{parentName:"p"},"implementation\nfile")," ",(0,t.mdx)("inlineCode",{parentName:"p"},""),". The declaration file completely shadows the colocated\nimplementation. In other words, Flow will completely ignore ",(0,t.mdx)("inlineCode",{parentName:"p"},"")," and just\nread ",(0,t.mdx)("inlineCode",{parentName:"p"},".flow")," instead."),(0,t.mdx)("p",null,"In the second case, the implementation file is missing entirely. ",(0,t.mdx)("inlineCode",{parentName:"p"},".flow"),"\nis treated as if it is named ",(0,t.mdx)("inlineCode",{parentName:"p"},""),"."),(0,t.mdx)("p",null,"Note that the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flow")," extension applies both to ",(0,t.mdx)("inlineCode",{parentName:"p"},".js")," files as well as ",(0,t.mdx)("inlineCode",{parentName:"p"},".json"),"\nones. The corresponding declaration files have extensions ",(0,t.mdx)("inlineCode",{parentName:"p"},".js.flow")," and ",(0,t.mdx)("inlineCode",{parentName:"p"},".json.flow"),",\nrespectively."),(0,t.mdx)("p",null,"Now let's see an example of the first case documented above. Suppose we have the\nfollowing code in a file ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/LookBeforeYouLeap.js"),":"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-js"},'import { isLeapYear } from "./Misc";\nif (isLeapYear("2020")) console.log("Yay!");\n')),(0,t.mdx)("p",null,"and suppose that ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/Misc.js")," has an incompatible implementation of ",(0,t.mdx)("inlineCode",{parentName:"p"},"isLeapYear"),":"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"export function isLeapYear(year: number): boolean {\n return year % 4 == 0; // yeah, this is approximate\n}\n")),(0,t.mdx)("p",null,"If we now create a declaration file ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/Misc.js.flow"),", the declarations in it\nwill be used instead of the code in ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/Misc.js"),". Let's say we have the\nfollowing declarations in ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/Misc.js.flow"),"."),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},"NOTE: The syntax for declarations in a declaration file is the same as we've seen in\n",(0,t.mdx)("a",{parentName:"p",href:"../libdefs/creation"},"Creating Library Definitions section"),".")),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare export function isLeapYear(year: string): boolean;\n")),(0,t.mdx)("p",null,"What do you think will happen?"),(0,t.mdx)("p",null,"Right, the ",(0,t.mdx)("inlineCode",{parentName:"p"},"isLeapYear")," call in ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/LookBeforeYouLeap.js")," will typecheck, since\nthe ",(0,t.mdx)("inlineCode",{parentName:"p"},"year")," parameter expects a ",(0,t.mdx)("inlineCode",{parentName:"p"},"string")," in the declaration file."),(0,t.mdx)("p",null,"As this example shows, declaration files must be written with care: it is up\nto the programmer to ensure they are correct, otherwise they may hide type\nerrors."),(0,t.mdx)("h2",{id:"toc-inlining-declarations-in-regular-code"},"Inlining declarations in regular code"),(0,t.mdx)("p",null,"Sometimes it is useful to make declarations inline, as part of the source of\nan implementation file."),(0,t.mdx)("p",null,"In the following example, say you want to finish writing\nthe function ",(0,t.mdx)("inlineCode",{parentName:"p"},"fooList")," without bothering to mock up its dependencies first: a\nfunction ",(0,t.mdx)("inlineCode",{parentName:"p"},"foo")," that takes a ",(0,t.mdx)("inlineCode",{parentName:"p"},"number")," and returns a ",(0,t.mdx)("inlineCode",{parentName:"p"},"string"),", and a class\n",(0,t.mdx)("inlineCode",{parentName:"p"},"List")," that has a ",(0,t.mdx)("inlineCode",{parentName:"p"},"map")," method. You can do this by including declarations for\n",(0,t.mdx)("inlineCode",{parentName:"p"},"List")," and ",(0,t.mdx)("inlineCode",{parentName:"p"},"foo"),":"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare class List {\n map(f: (x: T) => U): List;\n}\ndeclare function foo(n: number): string;\n\nfunction fooList(ns: List): List {\n return ns.map(foo);\n}\n")),(0,t.mdx)("p",null,"Just don't forget to replace the declarations with proper implementations."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6449.3e8636c3.js b/assets/js/6449.3e8636c3.js new file mode 100644 index 00000000000..3e5f833a366 --- /dev/null +++ b/assets/js/6449.3e8636c3.js @@ -0,0 +1,2 @@ +/*! For license information please see 6449.3e8636c3.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6449],{56449:(e,_,t)=>{t.r(_),t.d(_,{conf:()=>r,language:()=>i});var r={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},i={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["AES128","AES256","ALL","ALLOWOVERWRITE","ANALYSE","ANALYZE","AND","ANY","ARRAY","AS","ASC","AUTHORIZATION","AZ64","BACKUP","BETWEEN","BINARY","BLANKSASNULL","BOTH","BYTEDICT","BZIP2","CASE","CAST","CHECK","COLLATE","COLUMN","CONSTRAINT","CREATE","CREDENTIALS","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURRENT_USER_ID","DEFAULT","DEFERRABLE","DEFLATE","DEFRAG","DELTA","DELTA32K","DESC","DISABLE","DISTINCT","DO","ELSE","EMPTYASNULL","ENABLE","ENCODE","ENCRYPT","ENCRYPTION","END","EXCEPT","EXPLICIT","FALSE","FOR","FOREIGN","FREEZE","FROM","FULL","GLOBALDICT256","GLOBALDICT64K","GRANT","GROUP","GZIP","HAVING","IDENTITY","IGNORE","ILIKE","IN","INITIALLY","INNER","INTERSECT","INTO","IS","ISNULL","JOIN","LANGUAGE","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","LUN","LUNS","LZO","LZOP","MINUS","MOSTLY16","MOSTLY32","MOSTLY8","NATURAL","NEW","NOT","NOTNULL","NULL","NULLS","OFF","OFFLINE","OFFSET","OID","OLD","ON","ONLY","OPEN","OR","ORDER","OUTER","OVERLAPS","PARALLEL","PARTITION","PERCENT","PERMISSIONS","PLACING","PRIMARY","RAW","READRATIO","RECOVER","REFERENCES","RESPECT","REJECTLOG","RESORT","RESTORE","RIGHT","SELECT","SESSION_USER","SIMILAR","SNAPSHOT","SOME","SYSDATE","SYSTEM","TABLE","TAG","TDES","TEXT255","TEXT32K","THEN","TIMESTAMP","TO","TOP","TRAILING","TRUE","TRUNCATECOLUMNS","UNION","UNIQUE","USER","USING","VERBOSE","WALLET","WHEN","WHERE","WITH","WITHOUT"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["current_schema","current_schemas","has_database_privilege","has_schema_privilege","has_table_privilege","age","current_time","current_timestamp","localtime","isfinite","now","ascii","get_bit","get_byte","set_bit","set_byte","to_ascii","approximate percentile_disc","avg","count","listagg","max","median","min","percentile_cont","stddev_samp","stddev_pop","sum","var_samp","var_pop","bit_and","bit_or","bool_and","bool_or","cume_dist","first_value","lag","last_value","lead","nth_value","ratio_to_report","dense_rank","ntile","percent_rank","rank","row_number","case","coalesce","decode","greatest","least","nvl","nvl2","nullif","add_months","at time zone","convert_timezone","current_date","date_cmp","date_cmp_timestamp","date_cmp_timestamptz","date_part_year","dateadd","datediff","date_part","date_trunc","extract","getdate","interval_cmp","last_day","months_between","next_day","sysdate","timeofday","timestamp_cmp","timestamp_cmp_date","timestamp_cmp_timestamptz","timestamptz_cmp","timestamptz_cmp_date","timestamptz_cmp_timestamp","timezone","to_timestamp","trunc","abs","acos","asin","atan","atan2","cbrt","ceil","ceiling","checksum","cos","cot","degrees","dexp","dlog1","dlog10","exp","floor","ln","log","mod","pi","power","radians","random","round","sin","sign","sqrt","tan","to_hex","bpcharcmp","btrim","bttext_pattern_cmp","char_length","character_length","charindex","chr","concat","crc32","func_sha1","initcap","left and rights","len","length","lower","lpad and rpads","ltrim","md5","octet_length","position","quote_ident","quote_literal","regexp_count","regexp_instr","regexp_replace","regexp_substr","repeat","replace","replicate","reverse","rtrim","split_part","strpos","strtol","substring","textlen","translate","trim","upper","cast","convert","to_char","to_date","to_number","json_array_length","json_extract_array_element_text","json_extract_path_text","current_setting","pg_cancel_backend","pg_terminate_backend","set_config","current_database","current_user","current_user_id","pg_backend_pid","pg_last_copy_count","pg_last_copy_id","pg_last_query_id","pg_last_unload_count","session_user","slice_num","user","version","abbrev","acosd","any","area","array_agg","array_append","array_cat","array_dims","array_fill","array_length","array_lower","array_ndims","array_position","array_positions","array_prepend","array_remove","array_replace","array_to_json","array_to_string","array_to_tsvector","array_upper","asind","atan2d","atand","bit","bit_length","bound_box","box","brin_summarize_new_values","broadcast","cardinality","center","circle","clock_timestamp","col_description","concat_ws","convert_from","convert_to","corr","cosd","cotd","covar_pop","covar_samp","current_catalog","current_query","current_role","currval","cursor_to_xml","diameter","div","encode","enum_first","enum_last","enum_range","every","family","format","format_type","generate_series","generate_subscripts","get_current_ts_config","gin_clean_pending_list","grouping","has_any_column_privilege","has_column_privilege","has_foreign_data_wrapper_privilege","has_function_privilege","has_language_privilege","has_sequence_privilege","has_server_privilege","has_tablespace_privilege","has_type_privilege","height","host","hostmask","inet_client_addr","inet_client_port","inet_merge","inet_same_family","inet_server_addr","inet_server_port","isclosed","isempty","isopen","json_agg","json_object","json_object_agg","json_populate_record","json_populate_recordset","json_to_record","json_to_recordset","jsonb_agg","jsonb_object_agg","justify_days","justify_hours","justify_interval","lastval","left","line","localtimestamp","lower_inc","lower_inf","lpad","lseg","make_date","make_interval","make_time","make_timestamp","make_timestamptz","masklen","mode","netmask","network","nextval","npoints","num_nonnulls","num_nulls","numnode","obj_description","overlay","parse_ident","path","pclose","percentile_disc","pg_advisory_lock","pg_advisory_lock_shared","pg_advisory_unlock","pg_advisory_unlock_all","pg_advisory_unlock_shared","pg_advisory_xact_lock","pg_advisory_xact_lock_shared","pg_backup_start_time","pg_blocking_pids","pg_client_encoding","pg_collation_is_visible","pg_column_size","pg_conf_load_time","pg_control_checkpoint","pg_control_init","pg_control_recovery","pg_control_system","pg_conversion_is_visible","pg_create_logical_replication_slot","pg_create_physical_replication_slot","pg_create_restore_point","pg_current_xlog_flush_location","pg_current_xlog_insert_location","pg_current_xlog_location","pg_database_size","pg_describe_object","pg_drop_replication_slot","pg_export_snapshot","pg_filenode_relation","pg_function_is_visible","pg_get_constraintdef","pg_get_expr","pg_get_function_arguments","pg_get_function_identity_arguments","pg_get_function_result","pg_get_functiondef","pg_get_indexdef","pg_get_keywords","pg_get_object_address","pg_get_owned_sequence","pg_get_ruledef","pg_get_serial_sequence","pg_get_triggerdef","pg_get_userbyid","pg_get_viewdef","pg_has_role","pg_identify_object","pg_identify_object_as_address","pg_index_column_has_property","pg_index_has_property","pg_indexam_has_property","pg_indexes_size","pg_is_in_backup","pg_is_in_recovery","pg_is_other_temp_schema","pg_is_xlog_replay_paused","pg_last_committed_xact","pg_last_xact_replay_timestamp","pg_last_xlog_receive_location","pg_last_xlog_replay_location","pg_listening_channels","pg_logical_emit_message","pg_logical_slot_get_binary_changes","pg_logical_slot_get_changes","pg_logical_slot_peek_binary_changes","pg_logical_slot_peek_changes","pg_ls_dir","pg_my_temp_schema","pg_notification_queue_usage","pg_opclass_is_visible","pg_operator_is_visible","pg_opfamily_is_visible","pg_options_to_table","pg_postmaster_start_time","pg_read_binary_file","pg_read_file","pg_relation_filenode","pg_relation_filepath","pg_relation_size","pg_reload_conf","pg_replication_origin_create","pg_replication_origin_drop","pg_replication_origin_oid","pg_replication_origin_progress","pg_replication_origin_session_is_setup","pg_replication_origin_session_progress","pg_replication_origin_session_reset","pg_replication_origin_session_setup","pg_replication_origin_xact_reset","pg_replication_origin_xact_setup","pg_rotate_logfile","pg_size_bytes","pg_size_pretty","pg_sleep","pg_sleep_for","pg_sleep_until","pg_start_backup","pg_stat_file","pg_stop_backup","pg_switch_xlog","pg_table_is_visible","pg_table_size","pg_tablespace_databases","pg_tablespace_location","pg_tablespace_size","pg_total_relation_size","pg_trigger_depth","pg_try_advisory_lock","pg_try_advisory_lock_shared","pg_try_advisory_xact_lock","pg_try_advisory_xact_lock_shared","pg_ts_config_is_visible","pg_ts_dict_is_visible","pg_ts_parser_is_visible","pg_ts_template_is_visible","pg_type_is_visible","pg_typeof","pg_xact_commit_timestamp","pg_xlog_location_diff","pg_xlog_replay_pause","pg_xlog_replay_resume","pg_xlogfile_name","pg_xlogfile_name_offset","phraseto_tsquery","plainto_tsquery","point","polygon","popen","pqserverversion","query_to_xml","querytree","quote_nullable","radius","range_merge","regexp_matches","regexp_split_to_array","regexp_split_to_table","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","right","row_security_active","row_to_json","rpad","scale","set_masklen","setseed","setval","setweight","shobj_description","sind","sprintf","statement_timestamp","stddev","string_agg","string_to_array","strip","substr","table_to_xml","table_to_xml_and_xmlschema","tand","text","to_json","to_regclass","to_regnamespace","to_regoper","to_regoperator","to_regproc","to_regprocedure","to_regrole","to_regtype","to_tsquery","to_tsvector","transaction_timestamp","ts_debug","ts_delete","ts_filter","ts_headline","ts_lexize","ts_parse","ts_rank","ts_rank_cd","ts_rewrite","ts_stat","ts_token_type","tsquery_phrase","tsvector_to_array","tsvector_update_trigger","tsvector_update_trigger_column","txid_current","txid_current_snapshot","txid_snapshot_xip","txid_snapshot_xmax","txid_snapshot_xmin","txid_visible_in_snapshot","unnest","upper_inc","upper_inf","variance","width","width_bucket","xml_is_well_formed","xml_is_well_formed_content","xml_is_well_formed_document","xmlagg","xmlcomment","xmlconcat","xmlelement","xmlexists","xmlforest","xmlparse","xmlpi","xmlroot","xmlserialize","xpath","xpath_exists"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}}}}]); \ No newline at end of file diff --git a/assets/js/6449.3e8636c3.js.LICENSE.txt b/assets/js/6449.3e8636c3.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/6449.3e8636c3.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/6449.fbe95a4a.js b/assets/js/6449.fbe95a4a.js new file mode 100644 index 00000000000..87363036f19 --- /dev/null +++ b/assets/js/6449.fbe95a4a.js @@ -0,0 +1,825 @@ +"use strict"; +exports.id = 6449; +exports.ids = [6449]; +exports.modules = { + +/***/ 56449: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/redshift/redshift.ts +var conf = { + comments: { + lineComment: "--", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".sql", + ignoreCase: true, + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + keywords: [ + "AES128", + "AES256", + "ALL", + "ALLOWOVERWRITE", + "ANALYSE", + "ANALYZE", + "AND", + "ANY", + "ARRAY", + "AS", + "ASC", + "AUTHORIZATION", + "AZ64", + "BACKUP", + "BETWEEN", + "BINARY", + "BLANKSASNULL", + "BOTH", + "BYTEDICT", + "BZIP2", + "CASE", + "CAST", + "CHECK", + "COLLATE", + "COLUMN", + "CONSTRAINT", + "CREATE", + "CREDENTIALS", + "CROSS", + "CURRENT_DATE", + "CURRENT_TIME", + "CURRENT_TIMESTAMP", + "CURRENT_USER", + "CURRENT_USER_ID", + "DEFAULT", + "DEFERRABLE", + "DEFLATE", + "DEFRAG", + "DELTA", + "DELTA32K", + "DESC", + "DISABLE", + "DISTINCT", + "DO", + "ELSE", + "EMPTYASNULL", + "ENABLE", + "ENCODE", + "ENCRYPT", + "ENCRYPTION", + "END", + "EXCEPT", + "EXPLICIT", + "FALSE", + "FOR", + "FOREIGN", + "FREEZE", + "FROM", + "FULL", + "GLOBALDICT256", + "GLOBALDICT64K", + "GRANT", + "GROUP", + "GZIP", + "HAVING", + "IDENTITY", + "IGNORE", + "ILIKE", + "IN", + "INITIALLY", + "INNER", + "INTERSECT", + "INTO", + "IS", + "ISNULL", + "JOIN", + "LANGUAGE", + "LEADING", + "LEFT", + "LIKE", + "LIMIT", + "LOCALTIME", + "LOCALTIMESTAMP", + "LUN", + "LUNS", + "LZO", + "LZOP", + "MINUS", + "MOSTLY16", + "MOSTLY32", + "MOSTLY8", + "NATURAL", + "NEW", + "NOT", + "NOTNULL", + "NULL", + "NULLS", + "OFF", + "OFFLINE", + "OFFSET", + "OID", + "OLD", + "ON", + "ONLY", + "OPEN", + "OR", + "ORDER", + "OUTER", + "OVERLAPS", + "PARALLEL", + "PARTITION", + "PERCENT", + "PERMISSIONS", + "PLACING", + "PRIMARY", + "RAW", + "READRATIO", + "RECOVER", + "REFERENCES", + "RESPECT", + "REJECTLOG", + "RESORT", + "RESTORE", + "RIGHT", + "SELECT", + "SESSION_USER", + "SIMILAR", + "SNAPSHOT", + "SOME", + "SYSDATE", + "SYSTEM", + "TABLE", + "TAG", + "TDES", + "TEXT255", + "TEXT32K", + "THEN", + "TIMESTAMP", + "TO", + "TOP", + "TRAILING", + "TRUE", + "TRUNCATECOLUMNS", + "UNION", + "UNIQUE", + "USER", + "USING", + "VERBOSE", + "WALLET", + "WHEN", + "WHERE", + "WITH", + "WITHOUT" + ], + operators: [ + "AND", + "BETWEEN", + "IN", + "LIKE", + "NOT", + "OR", + "IS", + "NULL", + "INTERSECT", + "UNION", + "INNER", + "JOIN", + "LEFT", + "OUTER", + "RIGHT" + ], + builtinFunctions: [ + "current_schema", + "current_schemas", + "has_database_privilege", + "has_schema_privilege", + "has_table_privilege", + "age", + "current_time", + "current_timestamp", + "localtime", + "isfinite", + "now", + "ascii", + "get_bit", + "get_byte", + "set_bit", + "set_byte", + "to_ascii", + "approximate percentile_disc", + "avg", + "count", + "listagg", + "max", + "median", + "min", + "percentile_cont", + "stddev_samp", + "stddev_pop", + "sum", + "var_samp", + "var_pop", + "bit_and", + "bit_or", + "bool_and", + "bool_or", + "cume_dist", + "first_value", + "lag", + "last_value", + "lead", + "nth_value", + "ratio_to_report", + "dense_rank", + "ntile", + "percent_rank", + "rank", + "row_number", + "case", + "coalesce", + "decode", + "greatest", + "least", + "nvl", + "nvl2", + "nullif", + "add_months", + "at time zone", + "convert_timezone", + "current_date", + "date_cmp", + "date_cmp_timestamp", + "date_cmp_timestamptz", + "date_part_year", + "dateadd", + "datediff", + "date_part", + "date_trunc", + "extract", + "getdate", + "interval_cmp", + "last_day", + "months_between", + "next_day", + "sysdate", + "timeofday", + "timestamp_cmp", + "timestamp_cmp_date", + "timestamp_cmp_timestamptz", + "timestamptz_cmp", + "timestamptz_cmp_date", + "timestamptz_cmp_timestamp", + "timezone", + "to_timestamp", + "trunc", + "abs", + "acos", + "asin", + "atan", + "atan2", + "cbrt", + "ceil", + "ceiling", + "checksum", + "cos", + "cot", + "degrees", + "dexp", + "dlog1", + "dlog10", + "exp", + "floor", + "ln", + "log", + "mod", + "pi", + "power", + "radians", + "random", + "round", + "sin", + "sign", + "sqrt", + "tan", + "to_hex", + "bpcharcmp", + "btrim", + "bttext_pattern_cmp", + "char_length", + "character_length", + "charindex", + "chr", + "concat", + "crc32", + "func_sha1", + "initcap", + "left and rights", + "len", + "length", + "lower", + "lpad and rpads", + "ltrim", + "md5", + "octet_length", + "position", + "quote_ident", + "quote_literal", + "regexp_count", + "regexp_instr", + "regexp_replace", + "regexp_substr", + "repeat", + "replace", + "replicate", + "reverse", + "rtrim", + "split_part", + "strpos", + "strtol", + "substring", + "textlen", + "translate", + "trim", + "upper", + "cast", + "convert", + "to_char", + "to_date", + "to_number", + "json_array_length", + "json_extract_array_element_text", + "json_extract_path_text", + "current_setting", + "pg_cancel_backend", + "pg_terminate_backend", + "set_config", + "current_database", + "current_user", + "current_user_id", + "pg_backend_pid", + "pg_last_copy_count", + "pg_last_copy_id", + "pg_last_query_id", + "pg_last_unload_count", + "session_user", + "slice_num", + "user", + "version", + "abbrev", + "acosd", + "any", + "area", + "array_agg", + "array_append", + "array_cat", + "array_dims", + "array_fill", + "array_length", + "array_lower", + "array_ndims", + "array_position", + "array_positions", + "array_prepend", + "array_remove", + "array_replace", + "array_to_json", + "array_to_string", + "array_to_tsvector", + "array_upper", + "asind", + "atan2d", + "atand", + "bit", + "bit_length", + "bound_box", + "box", + "brin_summarize_new_values", + "broadcast", + "cardinality", + "center", + "circle", + "clock_timestamp", + "col_description", + "concat_ws", + "convert_from", + "convert_to", + "corr", + "cosd", + "cotd", + "covar_pop", + "covar_samp", + "current_catalog", + "current_query", + "current_role", + "currval", + "cursor_to_xml", + "diameter", + "div", + "encode", + "enum_first", + "enum_last", + "enum_range", + "every", + "family", + "format", + "format_type", + "generate_series", + "generate_subscripts", + "get_current_ts_config", + "gin_clean_pending_list", + "grouping", + "has_any_column_privilege", + "has_column_privilege", + "has_foreign_data_wrapper_privilege", + "has_function_privilege", + "has_language_privilege", + "has_sequence_privilege", + "has_server_privilege", + "has_tablespace_privilege", + "has_type_privilege", + "height", + "host", + "hostmask", + "inet_client_addr", + "inet_client_port", + "inet_merge", + "inet_same_family", + "inet_server_addr", + "inet_server_port", + "isclosed", + "isempty", + "isopen", + "json_agg", + "json_object", + "json_object_agg", + "json_populate_record", + "json_populate_recordset", + "json_to_record", + "json_to_recordset", + "jsonb_agg", + "jsonb_object_agg", + "justify_days", + "justify_hours", + "justify_interval", + "lastval", + "left", + "line", + "localtimestamp", + "lower_inc", + "lower_inf", + "lpad", + "lseg", + "make_date", + "make_interval", + "make_time", + "make_timestamp", + "make_timestamptz", + "masklen", + "mode", + "netmask", + "network", + "nextval", + "npoints", + "num_nonnulls", + "num_nulls", + "numnode", + "obj_description", + "overlay", + "parse_ident", + "path", + "pclose", + "percentile_disc", + "pg_advisory_lock", + "pg_advisory_lock_shared", + "pg_advisory_unlock", + "pg_advisory_unlock_all", + "pg_advisory_unlock_shared", + "pg_advisory_xact_lock", + "pg_advisory_xact_lock_shared", + "pg_backup_start_time", + "pg_blocking_pids", + "pg_client_encoding", + "pg_collation_is_visible", + "pg_column_size", + "pg_conf_load_time", + "pg_control_checkpoint", + "pg_control_init", + "pg_control_recovery", + "pg_control_system", + "pg_conversion_is_visible", + "pg_create_logical_replication_slot", + "pg_create_physical_replication_slot", + "pg_create_restore_point", + "pg_current_xlog_flush_location", + "pg_current_xlog_insert_location", + "pg_current_xlog_location", + "pg_database_size", + "pg_describe_object", + "pg_drop_replication_slot", + "pg_export_snapshot", + "pg_filenode_relation", + "pg_function_is_visible", + "pg_get_constraintdef", + "pg_get_expr", + "pg_get_function_arguments", + "pg_get_function_identity_arguments", + "pg_get_function_result", + "pg_get_functiondef", + "pg_get_indexdef", + "pg_get_keywords", + "pg_get_object_address", + "pg_get_owned_sequence", + "pg_get_ruledef", + "pg_get_serial_sequence", + "pg_get_triggerdef", + "pg_get_userbyid", + "pg_get_viewdef", + "pg_has_role", + "pg_identify_object", + "pg_identify_object_as_address", + "pg_index_column_has_property", + "pg_index_has_property", + "pg_indexam_has_property", + "pg_indexes_size", + "pg_is_in_backup", + "pg_is_in_recovery", + "pg_is_other_temp_schema", + "pg_is_xlog_replay_paused", + "pg_last_committed_xact", + "pg_last_xact_replay_timestamp", + "pg_last_xlog_receive_location", + "pg_last_xlog_replay_location", + "pg_listening_channels", + "pg_logical_emit_message", + "pg_logical_slot_get_binary_changes", + "pg_logical_slot_get_changes", + "pg_logical_slot_peek_binary_changes", + "pg_logical_slot_peek_changes", + "pg_ls_dir", + "pg_my_temp_schema", + "pg_notification_queue_usage", + "pg_opclass_is_visible", + "pg_operator_is_visible", + "pg_opfamily_is_visible", + "pg_options_to_table", + "pg_postmaster_start_time", + "pg_read_binary_file", + "pg_read_file", + "pg_relation_filenode", + "pg_relation_filepath", + "pg_relation_size", + "pg_reload_conf", + "pg_replication_origin_create", + "pg_replication_origin_drop", + "pg_replication_origin_oid", + "pg_replication_origin_progress", + "pg_replication_origin_session_is_setup", + "pg_replication_origin_session_progress", + "pg_replication_origin_session_reset", + "pg_replication_origin_session_setup", + "pg_replication_origin_xact_reset", + "pg_replication_origin_xact_setup", + "pg_rotate_logfile", + "pg_size_bytes", + "pg_size_pretty", + "pg_sleep", + "pg_sleep_for", + "pg_sleep_until", + "pg_start_backup", + "pg_stat_file", + "pg_stop_backup", + "pg_switch_xlog", + "pg_table_is_visible", + "pg_table_size", + "pg_tablespace_databases", + "pg_tablespace_location", + "pg_tablespace_size", + "pg_total_relation_size", + "pg_trigger_depth", + "pg_try_advisory_lock", + "pg_try_advisory_lock_shared", + "pg_try_advisory_xact_lock", + "pg_try_advisory_xact_lock_shared", + "pg_ts_config_is_visible", + "pg_ts_dict_is_visible", + "pg_ts_parser_is_visible", + "pg_ts_template_is_visible", + "pg_type_is_visible", + "pg_typeof", + "pg_xact_commit_timestamp", + "pg_xlog_location_diff", + "pg_xlog_replay_pause", + "pg_xlog_replay_resume", + "pg_xlogfile_name", + "pg_xlogfile_name_offset", + "phraseto_tsquery", + "plainto_tsquery", + "point", + "polygon", + "popen", + "pqserverversion", + "query_to_xml", + "querytree", + "quote_nullable", + "radius", + "range_merge", + "regexp_matches", + "regexp_split_to_array", + "regexp_split_to_table", + "regr_avgx", + "regr_avgy", + "regr_count", + "regr_intercept", + "regr_r2", + "regr_slope", + "regr_sxx", + "regr_sxy", + "regr_syy", + "right", + "row_security_active", + "row_to_json", + "rpad", + "scale", + "set_masklen", + "setseed", + "setval", + "setweight", + "shobj_description", + "sind", + "sprintf", + "statement_timestamp", + "stddev", + "string_agg", + "string_to_array", + "strip", + "substr", + "table_to_xml", + "table_to_xml_and_xmlschema", + "tand", + "text", + "to_json", + "to_regclass", + "to_regnamespace", + "to_regoper", + "to_regoperator", + "to_regproc", + "to_regprocedure", + "to_regrole", + "to_regtype", + "to_tsquery", + "to_tsvector", + "transaction_timestamp", + "ts_debug", + "ts_delete", + "ts_filter", + "ts_headline", + "ts_lexize", + "ts_parse", + "ts_rank", + "ts_rank_cd", + "ts_rewrite", + "ts_stat", + "ts_token_type", + "tsquery_phrase", + "tsvector_to_array", + "tsvector_update_trigger", + "tsvector_update_trigger_column", + "txid_current", + "txid_current_snapshot", + "txid_snapshot_xip", + "txid_snapshot_xmax", + "txid_snapshot_xmin", + "txid_visible_in_snapshot", + "unnest", + "upper_inc", + "upper_inf", + "variance", + "width", + "width_bucket", + "xml_is_well_formed", + "xml_is_well_formed_content", + "xml_is_well_formed_document", + "xmlagg", + "xmlcomment", + "xmlconcat", + "xmlelement", + "xmlexists", + "xmlforest", + "xmlparse", + "xmlpi", + "xmlroot", + "xmlserialize", + "xpath", + "xpath_exists" + ], + builtinVariables: [], + pseudoColumns: [], + tokenizer: { + root: [ + { include: "@comments" }, + { include: "@whitespace" }, + { include: "@pseudoColumns" }, + { include: "@numbers" }, + { include: "@strings" }, + { include: "@complexIdentifiers" }, + { include: "@scopes" }, + [/[;,.]/, "delimiter"], + [/[()]/, "@brackets"], + [ + /[\w@#$]+/, + { + cases: { + "@keywords": "keyword", + "@operators": "operator", + "@builtinVariables": "predefined", + "@builtinFunctions": "predefined", + "@default": "identifier" + } + } + ], + [/[<>=!%&+\-*/|~^]/, "operator"] + ], + whitespace: [[/\s+/, "white"]], + comments: [ + [/--+.*/, "comment"], + [/\/\*/, { token: "comment.quote", next: "@comment" }] + ], + comment: [ + [/[^*/]+/, "comment"], + [/\*\//, { token: "comment.quote", next: "@pop" }], + [/./, "comment"] + ], + pseudoColumns: [ + [ + /[$][A-Za-z_][\w@#$]*/, + { + cases: { + "@pseudoColumns": "predefined", + "@default": "identifier" + } + } + ] + ], + numbers: [ + [/0[xX][0-9a-fA-F]*/, "number"], + [/[$][+-]*\d*(\.\d*)?/, "number"], + [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, "number"] + ], + strings: [[/'/, { token: "string", next: "@string" }]], + string: [ + [/[^']+/, "string"], + [/''/, "string"], + [/'/, { token: "string", next: "@pop" }] + ], + complexIdentifiers: [[/"/, { token: "identifier.quote", next: "@quotedIdentifier" }]], + quotedIdentifier: [ + [/[^"]+/, "identifier"], + [/""/, "identifier"], + [/"/, { token: "identifier.quote", next: "@pop" }] + ], + scopes: [] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/6470.33bec0d3.js b/assets/js/6470.33bec0d3.js new file mode 100644 index 00000000000..9852725e25a --- /dev/null +++ b/assets/js/6470.33bec0d3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6470],{46470:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>n,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=o(87462),i=(o(67294),o(3905));const a={title:"Even Better Support for React in Flow","short-title":"Even Better React Support",author:"Caleb Meredith","medium-link":"https://medium.com/flow-type/even-better-support-for-react-in-flow-25b0a3485627"},n=void 0,l={permalink:"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow",source:"@site/blog/2017-08-16-Even-Better-Support-for-React-in-Flow.md",title:"Even Better Support for React in Flow",description:"The first version of Flow support for React was a magical implementation of",date:"2017-08-16T00:00:00.000Z",formattedDate:"August 16, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Caleb Meredith"}],frontMatter:{title:"Even Better Support for React in Flow","short-title":"Even Better React Support",author:"Caleb Meredith","medium-link":"https://medium.com/flow-type/even-better-support-for-react-in-flow-25b0a3485627"},prevItem:{title:"Private Object Properties Using Flow\u2019s Opaque Type Aliases",permalink:"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases"},nextItem:{title:"Linting in Flow",permalink:"/blog/2017/08/04/Linting-in-Flow"}},s={authorsImageUrls:[void 0]},p=[],c={toc:p};function m(e){let{components:t,...o}=e;return(0,i.mdx)("wrapper",(0,r.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"The first version of Flow support for React was a magical implementation of\n",(0,i.mdx)("inlineCode",{parentName:"p"},"React.createClass()"),". Since then, React has evolved significantly. It is time\nto rethink how Flow models React."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6479.5de341cd.js b/assets/js/6479.5de341cd.js new file mode 100644 index 00000000000..a3a7fda0f8e --- /dev/null +++ b/assets/js/6479.5de341cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6479],{56479:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>n,metadata:()=>s,toc:()=>p});var a=o(87462),r=(o(67294),o(3905));const n={title:"Typing Generators with Flow","short-title":"Generators",author:"Sam Goldman",hide_table_of_contents:!0},i=void 0,s={permalink:"/blog/2015/11/09/Generators",source:"@site/blog/2015-11-09-Generators.md",title:"Typing Generators with Flow",description:"Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an upcoming feature already supported by Flow.",date:"2015-11-09T00:00:00.000Z",formattedDate:"November 9, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Sam Goldman"}],frontMatter:{title:"Typing Generators with Flow","short-title":"Generators",author:"Sam Goldman",hide_table_of_contents:!0},prevItem:{title:"Version-0.19.0",permalink:"/blog/2015/12/01/Version-0.19.0"},nextItem:{title:"Version-0.17.0",permalink:"/blog/2015/10/07/Version-0.17.0"}},l={authorsImageUrls:[void 0]},p=[],u={toc:p};function c(e){let{components:t,...o}=e;return(0,r.mdx)("wrapper",(0,a.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an ",(0,r.mdx)("a",{parentName:"p",href:"https://github.com/tc39/ecmascript-asyncawait"},"upcoming feature")," already supported by Flow."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6489.897c8385.js b/assets/js/6489.897c8385.js new file mode 100644 index 00000000000..6049687cd4e --- /dev/null +++ b/assets/js/6489.897c8385.js @@ -0,0 +1,2 @@ +/*! For license information please see 6489.897c8385.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6489],{66489:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>o,language:()=>s});var o={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""',notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""'},{open:'"',close:'"'}],folding:{offSide:!0}},s={defaultToken:"invalid",tokenPostfix:".gql",keywords:["null","true","false","query","mutation","subscription","extend","schema","directive","scalar","type","interface","union","enum","input","implements","fragment","on"],typeKeywords:["Int","Float","String","Boolean","ID"],directiveLocations:["SCHEMA","SCALAR","OBJECT","FIELD_DEFINITION","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","QUERY","MUTATION","SUBSCRIPTION","FIELD","FRAGMENT_DEFINITION","FRAGMENT_SPREAD","INLINE_FRAGMENT","VARIABLE_DEFINITION"],operators:["=","!","?",":","&","|"],symbols:/[=!?:&|]+/,escapes:/\\(?:["\\\/bfnrt]|u[0-9A-Fa-f]{4})/,tokenizer:{root:[[/[a-z_][\w$]*/,{cases:{"@keywords":"keyword","@default":"key.identifier"}}],[/[$][\w$]*/,{cases:{"@keywords":"keyword","@default":"argument.identifier"}}],[/[A-Z][\w\$]*/,{cases:{"@typeKeywords":"keyword","@default":"type.identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,{token:"annotation",log:"annotation token: $0"}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"""/,{token:"string",next:"@mlstring",nextEmbedded:"markdown"}],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}]],mlstring:[[/[^"]+/,"string"],['"""',{token:"string",next:"@pop",nextEmbedded:"@pop"}]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/#.*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/6489.897c8385.js.LICENSE.txt b/assets/js/6489.897c8385.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/6489.897c8385.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/6489.c01d9090.js b/assets/js/6489.c01d9090.js new file mode 100644 index 00000000000..7cdded9c864 --- /dev/null +++ b/assets/js/6489.c01d9090.js @@ -0,0 +1,160 @@ +"use strict"; +exports.id = 6489; +exports.ids = [6489]; +exports.modules = { + +/***/ 66489: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/graphql/graphql.ts +var conf = { + comments: { + lineComment: "#" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"""', close: '"""', notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string", "comment"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"""', close: '"""' }, + { open: '"', close: '"' } + ], + folding: { + offSide: true + } +}; +var language = { + defaultToken: "invalid", + tokenPostfix: ".gql", + keywords: [ + "null", + "true", + "false", + "query", + "mutation", + "subscription", + "extend", + "schema", + "directive", + "scalar", + "type", + "interface", + "union", + "enum", + "input", + "implements", + "fragment", + "on" + ], + typeKeywords: ["Int", "Float", "String", "Boolean", "ID"], + directiveLocations: [ + "SCHEMA", + "SCALAR", + "OBJECT", + "FIELD_DEFINITION", + "ARGUMENT_DEFINITION", + "INTERFACE", + "UNION", + "ENUM", + "ENUM_VALUE", + "INPUT_OBJECT", + "INPUT_FIELD_DEFINITION", + "QUERY", + "MUTATION", + "SUBSCRIPTION", + "FIELD", + "FRAGMENT_DEFINITION", + "FRAGMENT_SPREAD", + "INLINE_FRAGMENT", + "VARIABLE_DEFINITION" + ], + operators: ["=", "!", "?", ":", "&", "|"], + symbols: /[=!?:&|]+/, + escapes: /\\(?:["\\\/bfnrt]|u[0-9A-Fa-f]{4})/, + tokenizer: { + root: [ + [ + /[a-z_][\w$]*/, + { + cases: { + "@keywords": "keyword", + "@default": "key.identifier" + } + } + ], + [ + /[$][\w$]*/, + { + cases: { + "@keywords": "keyword", + "@default": "argument.identifier" + } + } + ], + [ + /[A-Z][\w\$]*/, + { + cases: { + "@typeKeywords": "keyword", + "@default": "type.identifier" + } + } + ], + { include: "@whitespace" }, + [/[{}()\[\]]/, "@brackets"], + [/@symbols/, { cases: { "@operators": "operator", "@default": "" } }], + [/@\s*[a-zA-Z_\$][\w\$]*/, { token: "annotation", log: "annotation token: $0" }], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F]+/, "number.hex"], + [/\d+/, "number"], + [/[;,.]/, "delimiter"], + [/"""/, { token: "string", next: "@mlstring", nextEmbedded: "markdown" }], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"/, { token: "string.quote", bracket: "@open", next: "@string" }] + ], + mlstring: [ + [/[^"]+/, "string"], + ['"""', { token: "string", next: "@pop", nextEmbedded: "@pop" }] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/#.*$/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/650.f276d9bc.js b/assets/js/650.f276d9bc.js new file mode 100644 index 00000000000..dddbc3f2bd4 --- /dev/null +++ b/assets/js/650.f276d9bc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[650],{30650:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>r,contentTitle:()=>s,default:()=>m,frontMatter:()=>n,metadata:()=>l,toc:()=>u});var i=a(87462),o=(a(67294),a(3905));const n={title:"Opaque Type Aliases","short-title":"Opaque Type Aliases",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/hiding-implementation-details-with-flows-new-opaque-type-aliases-feature-40e188c2a3f9"},s=void 0,l={permalink:"/blog/2017/07/27/Opaque-Types",source:"@site/blog/2017-07-27-Opaque-Types.md",title:"Opaque Type Aliases",description:"Do you ever wish that you could hide your implementation details away",date:"2017-07-27T00:00:00.000Z",formattedDate:"July 27, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Opaque Type Aliases","short-title":"Opaque Type Aliases",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/hiding-implementation-details-with-flows-new-opaque-type-aliases-feature-40e188c2a3f9"},prevItem:{title:"Linting in Flow",permalink:"/blog/2017/08/04/Linting-in-Flow"},nextItem:{title:"Strict Checking of Function Call Arity",permalink:"/blog/2017/05/07/Strict-Function-Call-Arity"}},r={authorsImageUrls:[void 0]},u=[],p={toc:u};function m(e){let{components:t,...a}=e;return(0,o.mdx)("wrapper",(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Do you ever wish that you could hide your implementation details away\nfrom your users? Find out how opaque type aliases can get the job done!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6522.00dd2490.js b/assets/js/6522.00dd2490.js new file mode 100644 index 00000000000..f6b1f8a2109 --- /dev/null +++ b/assets/js/6522.00dd2490.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6522],{66522:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var a=t(87462),i=(t(67294),t(3905));t(45475);const o={title:"Annotation Requirement",slug:"/lang/annotation-requirement"},r=void 0,l={unversionedId:"lang/annotation-requirement",id:"lang/annotation-requirement",title:"Annotation Requirement",description:"Note: As of version 0.199 Flow uses Local Type Inference as its inference algorithm.",source:"@site/docs/lang/annotation-requirement.md",sourceDirName:"lang",slug:"/lang/annotation-requirement",permalink:"/en/docs/lang/annotation-requirement",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/annotation-requirement.md",tags:[],version:"current",frontMatter:{title:"Annotation Requirement",slug:"/lang/annotation-requirement"},sidebar:"docsSidebar",previous:{title:"File Signatures (Types-First)",permalink:"/en/docs/lang/types-first"},next:{title:"Getting Started",permalink:"/en/docs/react"}},s={},d=[{value:"Variable declarations",id:"variable-declarations",level:2},{value:"Function Parameters",id:"function-parameters",level:2},{value:"Contextual Typing",id:"toc-contextual-typing",level:2},{value:"Function Return Types",id:"toc-function-return-types",level:2},{value:"Generic Calls",id:"toc-generic-calls",level:2},{value:"Computing a Solution",id:"computing-a-solution",level:3},{value:"Errors during Polymorphic Calls",id:"errors-during-polymorphic-calls",level:3},{value:"Under-constrained Type Parameters",id:"under-constrained-type-parameters",level:4},{value:"Incompatibility Errors",id:"incompatibility-errors",level:4},{value:"Empty Array Literals",id:"toc-empty-array-literals",level:2}],m={toc:d};function p(e){let{components:n,...t}=e;return(0,i.mdx)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("blockquote",null,(0,i.mdx)("p",{parentName:"blockquote"},(0,i.mdx)("strong",{parentName:"p"},"Note:")," As of version 0.199 Flow uses ",(0,i.mdx)("a",{parentName:"p",href:"https://medium.com/flow-type/local-type-inference-for-flow-aaa65d071347"},"Local Type Inference")," as its inference algorithm.\nThe rules in this section reflect the main design features in this inference scheme.")),(0,i.mdx)("p",null,"Flow tries to avoid requiring type annotation for parts of programs where types can easily\nbe inferred from the immediate context of an expression, variable, parameter, etc."),(0,i.mdx)("h2",{id:"variable-declarations"},"Variable declarations"),(0,i.mdx)("p",null,"Take for example the following variable definition"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},'const len = "abc".length;\n')),(0,i.mdx)("p",null,"All information necessary to infer the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"len")," is included in the initializer\n",(0,i.mdx)("inlineCode",{parentName:"p"},'"abc".length'),". Flow will first determine that ",(0,i.mdx)("inlineCode",{parentName:"p"},'"abc"')," is a string, and then that the\n",(0,i.mdx)("inlineCode",{parentName:"p"},"length")," property of a string is a number."),(0,i.mdx)("p",null,"The same logic can be applied for all ",(0,i.mdx)("inlineCode",{parentName:"p"},"const"),"-like initializations. Where things\nget a little more complicated is when variable initialization spans across multiple statements,\nfor example in"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'declare var maybeString: ?string;\n\nlet len;\nif (typeof maybeString === "string") {\n len = maybeString.length;\n} else {\n len = 0;\n}\n')),(0,i.mdx)("p",null,"Flow can still determine that ",(0,i.mdx)("inlineCode",{parentName:"p"},"len")," is a ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),", but in order to do so it looks\nahead to multiple initializer statements. See section on ",(0,i.mdx)("a",{parentName:"p",href:"../variables"},"variable declarations"),"\nfor details on how various initializer patterns determine the type of a variable,\nand when an annotation on a variable declaration is necessary."),(0,i.mdx)("h2",{id:"function-parameters"},"Function Parameters"),(0,i.mdx)("p",null,'Unlike variable declarations, this kind of "lookahead" reasoning cannot be used to determine\nthe type of function parameters. Consider the function'),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"function getLength(x) {\n return x.length;\n}\n")),(0,i.mdx)("p",null,"There are many kinds of ",(0,i.mdx)("inlineCode",{parentName:"p"},"x")," on which we could access and return a ",(0,i.mdx)("inlineCode",{parentName:"p"},"length")," property:\nan object with a ",(0,i.mdx)("inlineCode",{parentName:"p"},"length")," property, or a string, just to name a few. If later on in\nthe program we had the following calls to ",(0,i.mdx)("inlineCode",{parentName:"p"},"getLength")),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},'getLength("abc");\ngetLength({ length: 1 });\n')),(0,i.mdx)("p",null,"one possible inference would be that ",(0,i.mdx)("inlineCode",{parentName:"p"},"x")," is a ",(0,i.mdx)("inlineCode",{parentName:"p"},"string | { length: number }"),". What this implies,\nhowever, is that the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"getLength")," is determined by any part of the current\nprogram. This kind of global reasoning can lead to surprising action-at-a-distance\nbehavior, and so is avoided. Instead, Flow requires that function parameters are annotated. Failure to\nprovide such a type annotation manifests as a ",(0,i.mdx)("inlineCode",{parentName:"p"},"[missing-local-annot]")," error on the parameter ",(0,i.mdx)("inlineCode",{parentName:"p"},"x"),",\nand the body of the function is checked with ",(0,i.mdx)("inlineCode",{parentName:"p"},"x: any"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":20,"endLine":1,"endColumn":20,"description":"Missing an annotation on `x`. [missing-local-annot]"}]','[{"startLine":1,"startColumn":20,"endLine":1,"endColumn":20,"description":"Missing':!0,an:!0,annotation:!0,on:!0,"`x`.":!0,'[missing-local-annot]"}]':!0},"function getLength(x) {\n return x.length;\n}\n\nconst n = getLength(1); // no error since getLength's parameter type is 'any'\n")),(0,i.mdx)("p",null,"To fix this error, one can simply annotate ",(0,i.mdx)("inlineCode",{parentName:"p"},"x")," as"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function getLength(x: string) {\n return x.length;\n}\n")),(0,i.mdx)("p",null,"The same requirement holds for class methods"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":25,"endLine":3,"endColumn":25,"description":"Missing an annotation on `x`. [missing-local-annot]"}]','[{"startLine":3,"startColumn":25,"endLine":3,"endColumn":25,"description":"Missing':!0,an:!0,annotation:!0,on:!0,"`x`.":!0,'[missing-local-annot]"}]':!0},"class WrappedString {\n data: string;\n setStringNoAnnotation(x) {\n this.data = x;\n }\n setString(x: string) {\n this.data = x;\n }\n}\n")),(0,i.mdx)("h2",{id:"toc-contextual-typing"},"Contextual Typing"),(0,i.mdx)("p",null,"Function parameters do not always need to be explicitly annotated. In the case of a\ncallback function to a function call, the parameter type can easily\nbe inferred from the immediate context. Consider for example the following code"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"const arr = [0, 1, 2];\nconst arrPlusOne = arr.find(x => x % 2 === 1);\n")),(0,i.mdx)("p",null,"Flow infers that the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"arr")," is ",(0,i.mdx)("inlineCode",{parentName:"p"},"Array"),". Combining this with the builtin\ninformation for ",(0,i.mdx)("inlineCode",{parentName:"p"},"Array.find"),", Flow can determine that the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"x => x % 2 + 1"),"\nneeds to be ",(0,i.mdx)("inlineCode",{parentName:"p"},"number => mixed"),". This type acts as a ",(0,i.mdx)("em",{parentName:"p"},"hint")," for Flow and provides enough\ninformation to determine the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"x")," as ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,i.mdx)("p",null,"Any attendant annotation can potentially act as a hint to a function parameter, for example"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const fn1: (x: number) => number = x => x + 1;\n")),(0,i.mdx)("p",null,"However, it is also possible that an annotation cannot be used as a function\nparameter hint:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":20,"endLine":1,"endColumn":20,"description":"An annotation on `x` is required because Flow cannot infer its type from local context. [missing-local-annot]"}]','[{"startLine":1,"startColumn":20,"endLine":1,"endColumn":20,"description":"An':!0,annotation:!0,on:!0,"`x`":!0,is:!0,required:!0,because:!0,Flow:!0,cannot:!0,infer:!0,its:!0,type:!0,from:!0,local:!0,"context.":!0,'[missing-local-annot]"}]':!0},"const fn2: mixed = x => x + 1;\n")),(0,i.mdx)("p",null,"In this example the ",(0,i.mdx)("inlineCode",{parentName:"p"},"mixed")," type simply does not include enough information to\nextract a candidate type for ",(0,i.mdx)("inlineCode",{parentName:"p"},"x"),"."),(0,i.mdx)("p",null,"Flow can infer the types for unannotated parameters even when they are nested within\nother expressions like objects. For example in\nin"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":52,"endLine":1,"endColumn":52,"description":"Cannot cast `x` to string because number [1] is incompatible with string [2]. [incompatible-cast]"}]','[{"startLine":1,"startColumn":52,"endLine":1,"endColumn":52,"description":"Cannot':!0,cast:!0,"`x`":!0,to:!0,string:!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"const fn3: { f: (number) => void } = { f: (x) => {(x: string)} };\n")),(0,i.mdx)("p",null,"Flow will infer ",(0,i.mdx)("inlineCode",{parentName:"p"},"number")," as the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"x"),", and so the cast fails."),(0,i.mdx)("h2",{id:"toc-function-return-types"},"Function Return Types"),(0,i.mdx)("p",null,"Unlike function parameters, a function's return type does not need to be annotated in general.\nSo the above definition of ",(0,i.mdx)("inlineCode",{parentName:"p"},"getLength")," won't raise any Flow errors."),(0,i.mdx)("p",null,"There are, however, a couple of notable exceptions to this rule. The first one is\nclass methods. If we included to the ",(0,i.mdx)("inlineCode",{parentName:"p"},"WrappedString")," class a ",(0,i.mdx)("inlineCode",{parentName:"p"},"getString")," method\nthat returns the internal ",(0,i.mdx)("inlineCode",{parentName:"p"},"data")," property:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":23,"endLine":3,"endColumn":22,"description":"Missing an annotation on return. [missing-local-annot]"}]','[{"startLine":3,"startColumn":23,"endLine":3,"endColumn":22,"description":"Missing':!0,an:!0,annotation:!0,on:!0,"return.":!0,'[missing-local-annot]"}]':!0},"class WrappedString {\n data: string;\n getString(x: string) {\n return this.data;\n }\n}\n")),(0,i.mdx)("p",null,"Flow would complain that ",(0,i.mdx)("inlineCode",{parentName:"p"},"getString")," is missing an annotation on the return."),(0,i.mdx)("p",null,"The second exception is recursive definitions. A trivial example of this would be"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":1,"endLine":1,"endColumn":14,"description":"The following definitions recursively depend on each other, and Flow cannot compute their types:\\n - function [1] depends on other definition [2]\\n - function [3] depends on other definition [4]\\nPlease add type annotations to these definitions [5] [6] [definition-cycle]"}]','[{"startLine":1,"startColumn":1,"endLine":1,"endColumn":14,"description":"The':!0,following:!0,definitions:!0,recursively:!0,depend:!0,on:!0,each:!0,"other,":!0,and:!0,Flow:!0,cannot:!0,compute:!0,their:!0,"types:\\n":!0,"-":!0,function:!0,"[1]":!0,depends:!0,other:!0,definition:!0,"[2]\\n":!0,"[3]":!0,"[4]\\nPlease":!0,add:!0,type:!0,annotations:!0,to:!0,these:!0,"[5]":!0,"[6]":!0,'[definition-cycle]"}]':!0},"function foo() {\n return bar();\n}\n\nfunction bar() {\n return foo();\n}\n")),(0,i.mdx)("p",null,"The above code raises a ",(0,i.mdx)("inlineCode",{parentName:"p"},"[definition-cycle]")," error, which points to the two locations\nthat form a dependency cycle, the two missing return annotations. Adding\na return annotation to either function would resolve the issue."),(0,i.mdx)("p",null,"Effectively, the requirement on an annotation for method returns is a special-case\nof the recursive definition restriction. The recursion is possible through access on\n",(0,i.mdx)("inlineCode",{parentName:"p"},"this"),"."),(0,i.mdx)("h2",{id:"toc-generic-calls"},"Generic Calls"),(0,i.mdx)("p",null,"In calls to ",(0,i.mdx)("a",{parentName:"p",href:"../../types/generics"},"generic functions")," the type of the result may\ndepend on the types of the values passed in as arguments.\nThis section discusses how this result is computed, when type arguments are not\nexplicitly provided."),(0,i.mdx)("p",null,"Consider for example the definition"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"declare function map(\n f: (T) => U,\n array: $ReadOnlyArray,\n): Array;\n")),(0,i.mdx)("p",null,"and a potential call with arguments ",(0,i.mdx)("inlineCode",{parentName:"p"},"x => x + 1")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"[1, 2, 3]"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"map(x => x + 1, [1, 2, 3]);\n")),(0,i.mdx)("p",null,"Here Flow infers that the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"x")," is ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,i.mdx)("p",null,"Some other common examples of generic calls are calling the constructor of the generic\n",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/82f88520f2bfe0fa13748b5ead711432941f4cb9/lib/core.js#L1799-L1801"},(0,i.mdx)("inlineCode",{parentName:"a"},"Set")," class"),"\nor calling ",(0,i.mdx)("inlineCode",{parentName:"p"},"useState")," from the React library:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const set = new Set([1, 2, 3]);\n\nimport { useState } from 'react';\nconst [num, setNum] = useState(42);\n")),(0,i.mdx)("p",null,"Flow here infers that the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"set")," is ",(0,i.mdx)("inlineCode",{parentName:"p"},"Set"),", and that ",(0,i.mdx)("inlineCode",{parentName:"p"},"num")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"setNum"),"\nare ",(0,i.mdx)("inlineCode",{parentName:"p"},"number")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"(number) => void"),", respectively."),(0,i.mdx)("h3",{id:"computing-a-solution"},"Computing a Solution"),(0,i.mdx)("p",null,"Computing the result of a generic call amounts to:"),(0,i.mdx)("ol",null,(0,i.mdx)("li",{parentName:"ol"},"coming up with a solution for ",(0,i.mdx)("inlineCode",{parentName:"li"},"T")," and ",(0,i.mdx)("inlineCode",{parentName:"li"},"U")," that does not contain generic parts,"),(0,i.mdx)("li",{parentName:"ol"},"replacing ",(0,i.mdx)("inlineCode",{parentName:"li"},"T")," and ",(0,i.mdx)("inlineCode",{parentName:"li"},"U")," with the solution in the signature of ",(0,i.mdx)("inlineCode",{parentName:"li"},"map"),", and"),(0,i.mdx)("li",{parentName:"ol"},"performing a call to this new signature of ",(0,i.mdx)("inlineCode",{parentName:"li"},"map"),".")),(0,i.mdx)("p",null,"This process is designed with two goals in mind:"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("em",{parentName:"li"},"Soundness"),". The results need to lead to a correct call when we reach step (3)."),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("em",{parentName:"li"},"Completeness"),". The types Flow produces need to be as precise and informative as possible,\nto ensure that other parts of the program will be successfully checked.")),(0,i.mdx)("p",null,"Let's see how these two goals come into play in the ",(0,i.mdx)("inlineCode",{parentName:"p"},"map")," example from above."),(0,i.mdx)("p",null,"Flow detects that ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray")," needs to be compatible with the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"[1, 2, 3]"),".\nIt can therefore infer that ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," is ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,i.mdx)("p",null,"With the knowledge of ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," it can now successfully check ",(0,i.mdx)("inlineCode",{parentName:"p"},"x => x + 1"),". The parameter ",(0,i.mdx)("inlineCode",{parentName:"p"},"x"),"\nis contextually typed as ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),", and thus the result ",(0,i.mdx)("inlineCode",{parentName:"p"},"x + 1")," is also a number.\nThis final constraint allows us to compute ",(0,i.mdx)("inlineCode",{parentName:"p"},"U")," as a ",(0,i.mdx)("inlineCode",{parentName:"p"},"number")," too."),(0,i.mdx)("p",null,"The new signature of ",(0,i.mdx)("inlineCode",{parentName:"p"},"map")," after replacing the generic parts with the above solution\nis"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"(f: (number) => number, array: $ReadOnlyArray) => Array\n")),(0,i.mdx)("p",null,"It is easy to see that the call would be successfully checked."),(0,i.mdx)("h3",{id:"errors-during-polymorphic-calls"},"Errors during Polymorphic Calls"),(0,i.mdx)("p",null,"If the above process goes on smoothly, you should not be seeing any errors associated with the call.\nWhat happens though when this process fails?"),(0,i.mdx)("p",null,"There are two reasons why this process could fail:"),(0,i.mdx)("h4",{id:"under-constrained-type-parameters"},"Under-constrained Type Parameters"),(0,i.mdx)("p",null,"There are cases where Flow might not have enough information to decide the type of a type parameter.\nLet's examine again a call to the builtin generic\n",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/82f88520f2bfe0fa13748b5ead711432941f4cb9/lib/core.js#L1799-L1801"},(0,i.mdx)("inlineCode",{parentName:"a"},"Set")," class"),"\nconstructor, this time without passing any arguments:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":17,"endLine":1,"endColumn":19,"description":"Cannot call `Set` because `T` [1] is underconstrained by new `Set` [2]. Either add explicit type arguments or cast the expression to your expected type. [underconstrained-implicit-instantiation]"}]','[{"startLine":1,"startColumn":17,"endLine":1,"endColumn":19,"description":"Cannot':!0,call:!0,"`Set`":!0,because:!0,"`T`":!0,"[1]":!0,is:!0,underconstrained:!0,by:!0,new:!0,"[2].":!0,Either:!0,add:!0,explicit:!0,type:!0,arguments:!0,or:!0,cast:!0,the:!0,expression:!0,to:!0,your:!0,expected:!0,"type.":!0,'[underconstrained-implicit-instantiation]"}]':!0},'const set = new Set();\nset.add("abc");\n')),(0,i.mdx)("p",null,"During the call to ",(0,i.mdx)("inlineCode",{parentName:"p"},"new Set"),", we are not providing enough information for Flow to\ndetermine the type for ",(0,i.mdx)("inlineCode",{parentName:"p"},"T"),", even though the subsequent call to ",(0,i.mdx)("inlineCode",{parentName:"p"},"set.add")," clearly\nimplies that ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," will be a string. Remember that inference of type arguments is\nlocal to the call, so Flow will not attempt to look ahead in later statements\nto determine this."),(0,i.mdx)("p",null,"In the absence of information, Flow would be at liberty to infer ",(0,i.mdx)("em",{parentName:"p"},"any")," type\nas ",(0,i.mdx)("inlineCode",{parentName:"p"},"T"),": ",(0,i.mdx)("inlineCode",{parentName:"p"},"any"),", ",(0,i.mdx)("inlineCode",{parentName:"p"},"mixed"),", ",(0,i.mdx)("inlineCode",{parentName:"p"},"empty"),", etc.\nThis kind of decision is undesirable, as it can lead to surprising results.\nFor example, if we silently decided on ",(0,i.mdx)("inlineCode",{parentName:"p"},"Set")," then the call to ",(0,i.mdx)("inlineCode",{parentName:"p"},'set.add("abc")')," would\nfail with an incompatibility between ",(0,i.mdx)("inlineCode",{parentName:"p"},"string")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"empty"),", without a clear indication\nof where the ",(0,i.mdx)("inlineCode",{parentName:"p"},"empty")," came from."),(0,i.mdx)("p",null,"So instead, in situations like this, you'll get an ",(0,i.mdx)("inlineCode",{parentName:"p"},"[underconstrained-implicit-instantiation]")," error.\nThe way to fix this error is by adding a type annotation. There a few potential ways to do this:"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("p",{parentName:"li"},"Add an annotation at the call-site in one of two ways:"),(0,i.mdx)("ul",{parentName:"li"},(0,i.mdx)("li",{parentName:"ul"},"an explicit type argument",(0,i.mdx)("pre",{parentName:"li"},(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"const set = new Set();\n"))),(0,i.mdx)("li",{parentName:"ul"},"an annotation on the initialization variable:",(0,i.mdx)("pre",{parentName:"li"},(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"const set: Set = new Set();\n"))))),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("p",{parentName:"li"},"Add a default type on the type parameter ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," at the definition of the class:"),(0,i.mdx)("pre",{parentName:"li"},(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"declare class SetWithDefault extends $ReadOnlySet {\n constructor(iterable?: ?Iterable): void;\n // more methods ...\n}\n")),(0,i.mdx)("p",{parentName:"li"},"In the absence of any type information at the call-site, Flow will use the default\ntype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," as the inferred type argument:"),(0,i.mdx)("pre",{parentName:"li"},(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"const defaultSet = new SetWithDefault(); // defaultSet is SetWithDefault\n")))),(0,i.mdx)("h4",{id:"incompatibility-errors"},"Incompatibility Errors"),(0,i.mdx)("p",null,"Even when Flow manages to infer non-generic types for the type parameters in a generic\ncall, these types might still lead to incompatibilities either in the current call or in\ncode later on."),(0,i.mdx)("p",null,"For example, if we had the following call to ",(0,i.mdx)("inlineCode",{parentName:"p"},"map"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":10,"endLine":2,"endColumn":14,"description":"Cannot use operator `+` with operands object literal [1] and number [2] [unsafe-addition]"}]','[{"startLine":2,"startColumn":10,"endLine":2,"endColumn":14,"description":"Cannot':!0,use:!0,operator:!0,"`+`":!0,with:!0,operands:!0,object:!0,literal:!0,"[1]":!0,and:!0,number:!0,"[2]":!0,'[unsafe-addition]"}]':!0},"declare function map(f: (T) => U, array: $ReadOnlyArray): Array;\nmap(x => x + 1, [{}]);\n")),(0,i.mdx)("p",null,"Flow will infer ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," as ",(0,i.mdx)("inlineCode",{parentName:"p"},"{}"),", and therefore type ",(0,i.mdx)("inlineCode",{parentName:"p"},"x")," as ",(0,i.mdx)("inlineCode",{parentName:"p"},"{}"),". This will cause an error when checking the arrow function\nsince the ",(0,i.mdx)("inlineCode",{parentName:"p"},"+")," operation is not allowed on objects."),(0,i.mdx)("p",null,"Finally, a common source of errors is the case where the inferred type in a generic\ncall is correct for the call itself, but not indicative of the expected use later in the code.\nFor example, consider"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":8,"endLine":5,"endColumn":18,"description":"Cannot call `setStr` with `maybeString` bound to the first parameter because: [incompatible-call] Either null or undefined [1] is incompatible with function type [2]. Or null or undefined [1] is incompatible with string [3]."}]','[{"startLine":5,"startColumn":8,"endLine":5,"endColumn":18,"description":"Cannot':!0,call:!0,"`setStr`":!0,with:!0,"`maybeString`":!0,bound:!0,to:!0,the:!0,first:!0,parameter:!0,"because:":!0,"[incompatible-call]":!0,Either:!0,null:!0,or:!0,undefined:!0,"[1]":!0,is:!0,incompatible:!0,function:!0,type:!0,"[2].":!0,Or:!0,string:!0,'[3]."}]':!0},"import { useState } from 'react';\nconst [str, setStr] = useState(\"\");\n\ndeclare var maybeString: ?string;\nsetStr(maybeString);\n")),(0,i.mdx)("p",null,"Passing the string ",(0,i.mdx)("inlineCode",{parentName:"p"},'""')," to the call to ",(0,i.mdx)("inlineCode",{parentName:"p"},"useState")," makes Flow infer ",(0,i.mdx)("inlineCode",{parentName:"p"},"string")," as the type\nof the state. So ",(0,i.mdx)("inlineCode",{parentName:"p"},"setStr")," will also expect a ",(0,i.mdx)("inlineCode",{parentName:"p"},"string")," as input when called later on,\nand therefore passing a ",(0,i.mdx)("inlineCode",{parentName:"p"},"?string")," will be an error."),(0,i.mdx)("p",null,'Again, to fix this error it suffices to annotate the expected "wider" type of state\nwhen calling ',(0,i.mdx)("inlineCode",{parentName:"p"},"useState"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},'const [str, setStr] = useState("");\n')),(0,i.mdx)("h2",{id:"toc-empty-array-literals"},"Empty Array Literals"),(0,i.mdx)("p",null,"Empty array literals (",(0,i.mdx)("inlineCode",{parentName:"p"},"[]"),") are handled specially in Flow. You can read about their ",(0,i.mdx)("a",{parentName:"p",href:"../../types/arrays/#toc-empty-array-literals"},"behavior and requirements"),"."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6567.031c15cf.js b/assets/js/6567.031c15cf.js new file mode 100644 index 00000000000..c74a44ef18a --- /dev/null +++ b/assets/js/6567.031c15cf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6567],{96567:(n,t,e)=>{e.r(t),e.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>u});var o=e(87462),s=(e(67294),e(3905));const i={title:"Requiring More Annotations to Functions and Classes in Flow","short-title":"Functions and Classes Annotation Requirements",author:"Sam Zhou","medium-link":"https://medium.com/flow-type/requiring-more-annotations-to-functions-and-classes-in-flow-e8aa9b1d76bd"},a=void 0,r={permalink:"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes",source:"@site/blog/2022-09-30-Requiring-More-Annotations-on-Functions-and-Classes.md",title:"Requiring More Annotations to Functions and Classes in Flow",description:"Flow will now require more annotations to functions and classes.",date:"2022-09-30T00:00:00.000Z",formattedDate:"September 30, 2022",tags:[],hasTruncateMarker:!1,authors:[{name:"Sam Zhou"}],frontMatter:{title:"Requiring More Annotations to Functions and Classes in Flow","short-title":"Functions and Classes Annotation Requirements",author:"Sam Zhou","medium-link":"https://medium.com/flow-type/requiring-more-annotations-to-functions-and-classes-in-flow-e8aa9b1d76bd"},prevItem:{title:"Improved handling of the empty object in Flow",permalink:"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow"},nextItem:{title:"New Flow Language Rule: Constrained Writes",permalink:"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes"}},l={authorsImageUrls:[void 0]},u=[],m={toc:u};function d(n){let{components:t,...e}=n;return(0,s.mdx)("wrapper",(0,o.Z)({},m,e,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Flow will now require more annotations to functions and classes."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6586.89a16f93.js b/assets/js/6586.89a16f93.js new file mode 100644 index 00000000000..952bedcc737 --- /dev/null +++ b/assets/js/6586.89a16f93.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6586],{6586:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>m,contentTitle:()=>o,default:()=>s,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var t=a(87462),l=(a(67294),a(3905));a(45475);const i={title:"Primitive Types",slug:"/types/primitives"},o=void 0,r={unversionedId:"types/primitives",id:"types/primitives",title:"Primitive Types",description:"JavaScript has a number of different primitive types",source:"@site/docs/types/primitives.md",sourceDirName:"types",slug:"/types/primitives",permalink:"/en/docs/types/primitives",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/primitives.md",tags:[],version:"current",frontMatter:{title:"Primitive Types",slug:"/types/primitives"},sidebar:"docsSidebar",previous:{title:"Type Annotations",permalink:"/en/docs/types"},next:{title:"Literal Types",permalink:"/en/docs/types/literals"}},m={},d=[{value:"Booleans",id:"toc-booleans",level:2},{value:"Numbers",id:"toc-numbers",level:2},{value:"Strings",id:"toc-strings",level:2},{value:"null and undefined",id:"toc-null-and-void",level:2},{value:"Maybe types",id:"toc-maybe-types",level:3},{value:"Optional object properties",id:"toc-optional-object-properties",level:3},{value:"Optional function parameters",id:"toc-optional-function-parameters",level:3},{value:"Function parameters with defaults",id:"toc-function-parameters-with-defaults",level:3},{value:"Symbols",id:"toc-symbols",level:2},{value:"BigInts",id:"toc-bigints",level:2}],p={toc:d};function s(e){let{components:n,...a}=e;return(0,l.mdx)("wrapper",(0,t.Z)({},p,a,{components:n,mdxType:"MDXLayout"}),(0,l.mdx)("p",null,"JavaScript has a number of different primitive types\n(",(0,l.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#primitive_values"},"MDN"),"):"),(0,l.mdx)("table",null,(0,l.mdx)("thead",{parentName:"table"},(0,l.mdx)("tr",{parentName:"thead"},(0,l.mdx)("th",{parentName:"tr",align:null}),(0,l.mdx)("th",{parentName:"tr",align:null},"Example"),(0,l.mdx)("th",{parentName:"tr",align:null},"Flow type"))),(0,l.mdx)("tbody",{parentName:"table"},(0,l.mdx)("tr",{parentName:"tbody"},(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("strong",{parentName:"td"},"Booleans")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"true")," or ",(0,l.mdx)("inlineCode",{parentName:"td"},"false")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"boolean"))),(0,l.mdx)("tr",{parentName:"tbody"},(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("strong",{parentName:"td"},"Strings")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"'foo'")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"string"))),(0,l.mdx)("tr",{parentName:"tbody"},(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("strong",{parentName:"td"},"Numbers")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"123")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"number"))),(0,l.mdx)("tr",{parentName:"tbody"},(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("strong",{parentName:"td"},"Null")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"null")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"null"))),(0,l.mdx)("tr",{parentName:"tbody"},(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("strong",{parentName:"td"},"Undefined")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"undefined")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"void"))),(0,l.mdx)("tr",{parentName:"tbody"},(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("strong",{parentName:"td"},"Symbols")," ",(0,l.mdx)("small",null,(0,l.mdx)("em",{parentName:"td"},"(new in ES2015)"))),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"Symbol('foo')")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"symbol"))),(0,l.mdx)("tr",{parentName:"tbody"},(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("strong",{parentName:"td"},"BigInts")," ",(0,l.mdx)("small",null,(0,l.mdx)("em",{parentName:"td"},"(new in ES2020)"))),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"123n")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"bigint"))))),(0,l.mdx)("p",null,"Some primitive types appear in the language as literal values:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'true;\n"hello";\n3.14;\nnull;\nundefined;\n3n;\n')),(0,l.mdx)("p",null,"BigInts and Symbols can be created with calls to ",(0,l.mdx)("inlineCode",{parentName:"p"},"BigInt")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"Symbol"),", respectively:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'BigInt("2364023476023");\nSymbol("hello");\n')),(0,l.mdx)("p",null,"The Flow types of literal values are lowercase (mirroring the output of JavaScript's\n",(0,l.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof"},(0,l.mdx)("inlineCode",{parentName:"a"},"typeof")," expression"),"):"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(a: number, b: string, c: boolean, d: bigint) { /* ... */ }\n\nfunc(3.14, "hello", true, 3n);\n')),(0,l.mdx)("p",null,"Some literals can also be used as ",(0,l.mdx)("a",{parentName:"p",href:"../literals"},"literal types"),":"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":11,"endLine":4,"endColumn":11,"description":"Cannot call `acceptTwo` with `1` bound to `x` because number [1] is incompatible with number literal `2` [2]. [incompatible-call]"}]','[{"startLine":4,"startColumn":11,"endLine":4,"endColumn":11,"description":"Cannot':!0,call:!0,"`acceptTwo`":!0,with:!0,"`1`":!0,bound:!0,to:!0,"`x`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,literal:!0,"`2`":!0,"[2].":!0,'[incompatible-call]"}]':!0},"function acceptTwo(x: 2) { /* ... */ }\n\nacceptTwo(2); // Works!\nacceptTwo(1); // Error!\n")),(0,l.mdx)("p",null,"Some primitives can also be wrapped as objects:"),(0,l.mdx)("blockquote",null,(0,l.mdx)("p",{parentName:"blockquote"},"NOTE: You probably never want to use the wrapper object variants.")),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'new Boolean(false);\nnew String("world");\nnew Number(42);\n')),(0,l.mdx)("p",null,"Types for the wrapper objects are capitalized (the same as their constructor):"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(x: Number, y: String, z: Boolean) {\n // ...\n}\n\nfunc(new Number(42), new String("world"), new Boolean(false));\n')),(0,l.mdx)("p",null,"These wrapper objects are rarely used."),(0,l.mdx)("h2",{id:"toc-booleans"},"Booleans"),(0,l.mdx)("p",null,"Booleans are ",(0,l.mdx)("inlineCode",{parentName:"p"},"true")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"false")," values in JavaScript. The ",(0,l.mdx)("inlineCode",{parentName:"p"},"boolean")," type in\nFlow accepts these values."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":16,"endLine":6,"endColumn":20,"description":"Cannot call `acceptsBoolean` with `\\"foo\\"` bound to `value` because string [1] is incompatible with boolean [2]. [incompatible-call]"}]','[{"startLine":6,"startColumn":16,"endLine":6,"endColumn":20,"description":"Cannot':!0,call:!0,"`acceptsBoolean`":!0,with:!0,'`\\"foo\\"`':!0,bound:!0,to:!0,"`value`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,boolean:!0,"[2].":!0,'[incompatible-call]"}]':!0},'function acceptsBoolean(value: boolean) { /* ... */ }\n\nacceptsBoolean(true); // Works!\nacceptsBoolean(false); // Works!\n\nacceptsBoolean("foo"); // Error!\n')),(0,l.mdx)("p",null,"JavaScript can also implicitly convert other types of values into booleans."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-js"},'if (42) {} // 42 => true\nif ("") {} // "" => false\n')),(0,l.mdx)("p",null,"Flow understands these coercions and will allow them as part of an\n",(0,l.mdx)("inlineCode",{parentName:"p"},"if")," statement's test or other conditional contexts."),(0,l.mdx)("p",null,"To explicitly convert non-booleans to a ",(0,l.mdx)("inlineCode",{parentName:"p"},"boolean"),", you can use ",(0,l.mdx)("inlineCode",{parentName:"p"},"Boolean(x)")," or ",(0,l.mdx)("inlineCode",{parentName:"p"},"!!x"),"."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":16,"endLine":3,"endColumn":16,"description":"Cannot call `acceptsBoolean` with `0` bound to `value` because number [1] is incompatible with boolean [2]. [incompatible-call]"}]','[{"startLine":3,"startColumn":16,"endLine":3,"endColumn":16,"description":"Cannot':!0,call:!0,"`acceptsBoolean`":!0,with:!0,"`0`":!0,bound:!0,to:!0,"`value`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,boolean:!0,"[2].":!0,'[incompatible-call]"}]':!0},"function acceptsBoolean(value: boolean) { /* ... */ }\n\nacceptsBoolean(0); // Error!\n\nacceptsBoolean(Boolean(0)); // Works!\nacceptsBoolean(!!0); // Works!\n")),(0,l.mdx)("p",null,"You can ",(0,l.mdx)("a",{parentName:"p",href:"../../lang/refinements/"},"refine")," a value to ",(0,l.mdx)("inlineCode",{parentName:"p"},"boolean")," using a ",(0,l.mdx)("inlineCode",{parentName:"p"},"typeof")," check:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsBoolean(value: boolean) { /* ... */ }\n\nfunction func(value: mixed) {\n if (typeof value === 'boolean') {\n acceptsBoolean(value); // Works: `value` is `boolean`\n }\n}\n")),(0,l.mdx)("p",null,"Remember that ",(0,l.mdx)("inlineCode",{parentName:"p"},"boolean")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"Boolean")," are different types."),(0,l.mdx)("ul",null,(0,l.mdx)("li",{parentName:"ul"},"A ",(0,l.mdx)("inlineCode",{parentName:"li"},"boolean")," is a literal value like ",(0,l.mdx)("inlineCode",{parentName:"li"},"true")," or ",(0,l.mdx)("inlineCode",{parentName:"li"},"false")," or the result of an\nexpression like ",(0,l.mdx)("inlineCode",{parentName:"li"},"a === b"),"."),(0,l.mdx)("li",{parentName:"ul"},"A ",(0,l.mdx)("inlineCode",{parentName:"li"},"Boolean")," is a wrapper object created by the global ",(0,l.mdx)("inlineCode",{parentName:"li"},"new Boolean(x)"),"\nconstructor. You probably don't want to use this!")),(0,l.mdx)("h2",{id:"toc-numbers"},"Numbers"),(0,l.mdx)("p",null,"Number literals in JavaScript are floating point numbers, for example ",(0,l.mdx)("inlineCode",{parentName:"p"},"42")," or ",(0,l.mdx)("inlineCode",{parentName:"p"},"3.14"),".\nJavaScript also considers ",(0,l.mdx)("inlineCode",{parentName:"p"},"Infinity")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"NaN")," to be numbers.\nThese are represented by the ",(0,l.mdx)("inlineCode",{parentName:"p"},"number")," type. JavaScript also has a separate ",(0,l.mdx)("a",{parentName:"p",href:"#toc-bigints"},"BigInt type"),"."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":8,"startColumn":15,"endLine":8,"endColumn":19,"description":"Cannot call `acceptsNumber` with `\\"foo\\"` bound to `value` because string [1] is incompatible with number [2]. [incompatible-call]"},{"startLine":9,"startColumn":15,"endLine":9,"endColumn":18,"description":"Cannot call `acceptsNumber` with `123n` bound to `value` because bigint [1] is incompatible with number [2]. [incompatible-call]"}]','[{"startLine":8,"startColumn":15,"endLine":8,"endColumn":19,"description":"Cannot':!0,call:!0,"`acceptsNumber`":!0,with:!0,'`\\"foo\\"`':!0,bound:!0,to:!0,"`value`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,number:!0,"[2].":!0,'[incompatible-call]"},{"startLine":9,"startColumn":15,"endLine":9,"endColumn":18,"description":"Cannot':!0,"`123n`":!0,bigint:!0,'[incompatible-call]"}]':!0},'function acceptsNumber(value: number) { /* ... */ }\n\nacceptsNumber(42); // Works!\nacceptsNumber(3.14); // Works!\nacceptsNumber(NaN); // Works!\nacceptsNumber(Infinity); // Works!\n\nacceptsNumber("foo"); // Error!\nacceptsNumber(123n); // Error!\n')),(0,l.mdx)("p",null,"You can ",(0,l.mdx)("a",{parentName:"p",href:"../../lang/refinements/"},"refine")," a value to ",(0,l.mdx)("inlineCode",{parentName:"p"},"number")," using a ",(0,l.mdx)("inlineCode",{parentName:"p"},"typeof")," check:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsNumber(value: number) { /* ... */ }\n\nfunction func(value: mixed) {\n if (typeof value === 'number') {\n acceptsNumber(value); // Works: `value` is `number`\n }\n}\n")),(0,l.mdx)("p",null,"Remember that ",(0,l.mdx)("inlineCode",{parentName:"p"},"number")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"Number")," are different types."),(0,l.mdx)("ul",null,(0,l.mdx)("li",{parentName:"ul"},"A ",(0,l.mdx)("inlineCode",{parentName:"li"},"number")," is a literal value like ",(0,l.mdx)("inlineCode",{parentName:"li"},"42")," or ",(0,l.mdx)("inlineCode",{parentName:"li"},"3.14")," or the result of an\nexpression like ",(0,l.mdx)("inlineCode",{parentName:"li"},"parseFloat(x)"),"."),(0,l.mdx)("li",{parentName:"ul"},"A ",(0,l.mdx)("inlineCode",{parentName:"li"},"Number")," is a wrapper object created by the global ",(0,l.mdx)("inlineCode",{parentName:"li"},"new Number(x)")," constructor. You probably don't want to use this!")),(0,l.mdx)("h2",{id:"toc-strings"},"Strings"),(0,l.mdx)("p",null,"Strings are ",(0,l.mdx)("inlineCode",{parentName:"p"},'"foo"')," values in JavaScript. The ",(0,l.mdx)("inlineCode",{parentName:"p"},"string")," type in Flow accepts these values."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":15,"endLine":6,"endColumn":19,"description":"Cannot call `acceptsString` with `false` bound to `value` because boolean [1] is incompatible with string [2]. [incompatible-call]"}]','[{"startLine":6,"startColumn":15,"endLine":6,"endColumn":19,"description":"Cannot':!0,call:!0,"`acceptsString`":!0,with:!0,"`false`":!0,bound:!0,to:!0,"`value`":!0,because:!0,boolean:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2].":!0,'[incompatible-call]"}]':!0},'function acceptsString(value: string) { /* ... */ }\n\nacceptsString("foo"); // Works!\nacceptsString(`template literal`); // Works!\n\nacceptsString(false); // Error!\n')),(0,l.mdx)("p",null,"JavaScript implicitly converts other types of values into strings by\nconcatenating them."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-js"},'"foo" + 42; // "foo42"\n"foo" + {}; // "foo[object Object]"\n')),(0,l.mdx)("p",null,"Flow will only accept strings and numbers when concatenating them to strings."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":1,"endLine":5,"endColumn":10,"description":"Cannot use operator `+` with operands string [1] and object literal [2] [unsafe-addition]"},{"startLine":6,"startColumn":1,"endLine":6,"endColumn":10,"description":"Cannot use operator `+` with operands string [1] and empty array literal [2] [unsafe-addition]"},{"startLine":7,"startColumn":8,"endLine":7,"endColumn":9,"description":"Cannot coerce array literal to string because empty array literal [1] should not be coerced. [incompatible-type]"}]','[{"startLine":5,"startColumn":1,"endLine":5,"endColumn":10,"description":"Cannot':!0,use:!0,operator:!0,"`+`":!0,with:!0,operands:!0,string:!0,"[1]":!0,and:!0,object:!0,literal:!0,"[2]":!0,'[unsafe-addition]"},{"startLine":6,"startColumn":1,"endLine":6,"endColumn":10,"description":"Cannot':!0,empty:!0,array:!0,'[unsafe-addition]"},{"startLine":7,"startColumn":8,"endLine":7,"endColumn":9,"description":"Cannot':!0,coerce:!0,to:!0,because:!0,should:!0,not:!0,be:!0,"coerced.":!0,'[incompatible-type]"}]':!0},'"foo" + "foo"; // Works!\n"foo" + 42; // Works!\n`foo ${42}`; // Works!\n\n"foo" + {}; // Error!\n"foo" + []; // Error!\n`foo ${[]}`; // Error!\n')),(0,l.mdx)("p",null,"You must be explicit and convert other types into strings. You can do this by\nusing the String function or using another method for stringifying values."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'"foo" + String({}); // Works!\n"foo" + [].toString(); // Works!\n"" + JSON.stringify({}) // Works!\n')),(0,l.mdx)("p",null,"You can ",(0,l.mdx)("a",{parentName:"p",href:"../../lang/refinements/"},"refine")," a value to ",(0,l.mdx)("inlineCode",{parentName:"p"},"string")," using a ",(0,l.mdx)("inlineCode",{parentName:"p"},"typeof")," check:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsString(value: string) { /* ... */ }\n\nfunction func(value: mixed) {\n if (typeof value === 'string') {\n acceptsString(value); // Works: `value` is `string`\n }\n}\n")),(0,l.mdx)("p",null,"Remember that ",(0,l.mdx)("inlineCode",{parentName:"p"},"string")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"String")," are different types."),(0,l.mdx)("ul",null,(0,l.mdx)("li",{parentName:"ul"},"A ",(0,l.mdx)("inlineCode",{parentName:"li"},"string")," is a literal value like ",(0,l.mdx)("inlineCode",{parentName:"li"},'"foo"')," or the result of an expression\nlike ",(0,l.mdx)("inlineCode",{parentName:"li"},'"" + 42'),"."),(0,l.mdx)("li",{parentName:"ul"},"A ",(0,l.mdx)("inlineCode",{parentName:"li"},"String")," is a wrapper object created by the global ",(0,l.mdx)("inlineCode",{parentName:"li"},"new String(x)")," constructor. You probably don't want to use this!")),(0,l.mdx)("h2",{id:"toc-null-and-void"},(0,l.mdx)("inlineCode",{parentName:"h2"},"null")," and ",(0,l.mdx)("inlineCode",{parentName:"h2"},"undefined")),(0,l.mdx)("p",null,"JavaScript has both ",(0,l.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"undefined"),". Flow treats these as separate\ntypes: ",(0,l.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"void")," (for ",(0,l.mdx)("inlineCode",{parentName:"p"},"undefined"),")."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":13,"endLine":4,"endColumn":21,"description":"Cannot call `acceptsNull` with `undefined` bound to `value` because undefined [1] is incompatible with null [2]. [incompatible-call]"},{"startLine":9,"startColumn":18,"endLine":9,"endColumn":21,"description":"Cannot call `acceptsUndefined` with `null` bound to `value` because null [1] is incompatible with undefined [2]. [incompatible-call]"}]','[{"startLine":4,"startColumn":13,"endLine":4,"endColumn":21,"description":"Cannot':!0,call:!0,"`acceptsNull`":!0,with:!0,"`undefined`":!0,bound:!0,to:!0,"`value`":!0,because:!0,undefined:!0,"[1]":!0,is:!0,incompatible:!0,null:!0,"[2].":!0,'[incompatible-call]"},{"startLine":9,"startColumn":18,"endLine":9,"endColumn":21,"description":"Cannot':!0,"`acceptsUndefined`":!0,"`null`":!0,'[incompatible-call]"}]':!0},"function acceptsNull(value: null) { /* ... */ }\n\nacceptsNull(null); // Works!\nacceptsNull(undefined); // Error!\n\nfunction acceptsUndefined(value: void) { /* ... */ }\n\nacceptsUndefined(undefined); // Works!\nacceptsUndefined(null); // Error!\n")),(0,l.mdx)("p",null,"You can ",(0,l.mdx)("a",{parentName:"p",href:"../../lang/refinements/"},"refine")," a value to ",(0,l.mdx)("inlineCode",{parentName:"p"},"null")," or ",(0,l.mdx)("inlineCode",{parentName:"p"},"void")," using equality checks:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsNull(value: null) { /* ... */ }\n\nfunction func(value: mixed) {\n if (value === null) {\n acceptsNull(value); // Works: `value` is `null`\n }\n}\n")),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsUndefined(value: void) { /* ... */ }\n\nfunction func(value: mixed) {\n if (value === undefined) {\n acceptsUndefined(value); // Works: `value` is `void`\n }\n}\n")),(0,l.mdx)("p",null,(0,l.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"void")," also appear in other types:"),(0,l.mdx)("h3",{id:"toc-maybe-types"},"Maybe types"),(0,l.mdx)("p",null,(0,l.mdx)("a",{parentName:"p",href:"../maybe"},"Maybe types")," are for places where a value is optional and you can create them by\nadding a question mark in front of the type such as ",(0,l.mdx)("inlineCode",{parentName:"p"},"?string")," or ",(0,l.mdx)("inlineCode",{parentName:"p"},"?number"),"."),(0,l.mdx)("p",null,(0,l.mdx)("inlineCode",{parentName:"p"},"?T")," is equivalent to ",(0,l.mdx)("inlineCode",{parentName:"p"},"T | null | void"),"."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function acceptsMaybeString(value: ?string) { /* ... */ }\n\nacceptsMaybeString("bar"); // Works!\nacceptsMaybeString(undefined); // Works!\nacceptsMaybeString(null); // Works!\nacceptsMaybeString(); // Works!\n')),(0,l.mdx)("p",null,"To refine, ",(0,l.mdx)("inlineCode",{parentName:"p"},"value == null")," checks exactly for both ",(0,l.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"undefined"),"."),(0,l.mdx)("p",null,"Read the ",(0,l.mdx)("a",{parentName:"p",href:"../maybe"},"maybe type docs")," for more details."),(0,l.mdx)("h3",{id:"toc-optional-object-properties"},"Optional object properties"),(0,l.mdx)("p",null,"Object types can have optional properties where a question mark ",(0,l.mdx)("inlineCode",{parentName:"p"},"?")," comes after\nthe property name."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-js"},"{propertyName?: string}\n")),(0,l.mdx)("p",null,"In addition to their set value type, these optional properties can either be\n",(0,l.mdx)("inlineCode",{parentName:"p"},"void")," or omitted altogether. However, they cannot be ",(0,l.mdx)("inlineCode",{parentName:"p"},"null"),"."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":21,"endLine":7,"endColumn":24,"description":"Cannot call `acceptsObject` with object literal bound to `value` because null [1] is incompatible with string [2] in property `foo`. [incompatible-call]"}]','[{"startLine":7,"startColumn":21,"endLine":7,"endColumn":24,"description":"Cannot':!0,call:!0,"`acceptsObject`":!0,with:!0,object:!0,literal:!0,bound:!0,to:!0,"`value`":!0,because:!0,null:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2]":!0,in:!0,property:!0,"`foo`.":!0,'[incompatible-call]"}]':!0},'function acceptsObject(value: {foo?: string}) { /* ... */ }\n\nacceptsObject({foo: "bar"}); // Works!\nacceptsObject({foo: undefined}); // Works!\nacceptsObject({}); // Works!\n\nacceptsObject({foo: null}); // Error!\n')),(0,l.mdx)("h3",{id:"toc-optional-function-parameters"},"Optional function parameters"),(0,l.mdx)("p",null,"Functions can have optional parameters where a question mark ",(0,l.mdx)("inlineCode",{parentName:"p"},"?")," comes after\nthe parameter name."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-js"},"function func(param?: string) { /* ... */ }\n")),(0,l.mdx)("p",null,"In addition to their set type, these optional parameters can either be ",(0,l.mdx)("inlineCode",{parentName:"p"},"void"),"\nor omitted altogether. However, they cannot be ",(0,l.mdx)("inlineCode",{parentName:"p"},"null"),"."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":23,"endLine":7,"endColumn":26,"description":"Cannot call `acceptsOptionalString` with `null` bound to `value` because null [1] is incompatible with string [2]. [incompatible-call]"}]','[{"startLine":7,"startColumn":23,"endLine":7,"endColumn":26,"description":"Cannot':!0,call:!0,"`acceptsOptionalString`":!0,with:!0,"`null`":!0,bound:!0,to:!0,"`value`":!0,because:!0,null:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2].":!0,'[incompatible-call]"}]':!0},'function acceptsOptionalString(value?: string) { /* ... */ }\n\nacceptsOptionalString("bar"); // Works!\nacceptsOptionalString(undefined); // Works!\nacceptsOptionalString(); // Works!\n\nacceptsOptionalString(null); // Error!\n')),(0,l.mdx)("h3",{id:"toc-function-parameters-with-defaults"},"Function parameters with defaults"),(0,l.mdx)("p",null,"Function parameters can also have defaults. This is a feature of ES2015."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-js"},'function func(value: string = "default") { /* ... */ }\n')),(0,l.mdx)("p",null,"In addition to their set type, default parameters can also be ",(0,l.mdx)("inlineCode",{parentName:"p"},"void")," or omitted\naltogether. However, they cannot be ",(0,l.mdx)("inlineCode",{parentName:"p"},"null"),"."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":23,"endLine":7,"endColumn":26,"description":"Cannot call `acceptsOptionalString` with `null` bound to `value` because null [1] is incompatible with string [2]. [incompatible-call]"}]','[{"startLine":7,"startColumn":23,"endLine":7,"endColumn":26,"description":"Cannot':!0,call:!0,"`acceptsOptionalString`":!0,with:!0,"`null`":!0,bound:!0,to:!0,"`value`":!0,because:!0,null:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2].":!0,'[incompatible-call]"}]':!0},'function acceptsOptionalString(value: string = "foo") { /* ... */ }\n\nacceptsOptionalString("bar"); // Works!\nacceptsOptionalString(undefined); // Works!\nacceptsOptionalString(); // Works!\n\nacceptsOptionalString(null); // Error!\n')),(0,l.mdx)("h2",{id:"toc-symbols"},"Symbols"),(0,l.mdx)("p",null,"Symbols are created with ",(0,l.mdx)("inlineCode",{parentName:"p"},"Symbol()")," in JavaScript. Flow has basic support for symbols, using the ",(0,l.mdx)("inlineCode",{parentName:"p"},"symbol")," type."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":15,"endLine":6,"endColumn":19,"description":"Cannot call `acceptsSymbol` with `false` bound to `value` because boolean [1] is incompatible with symbol [2]. [incompatible-call]"}]','[{"startLine":6,"startColumn":15,"endLine":6,"endColumn":19,"description":"Cannot':!0,call:!0,"`acceptsSymbol`":!0,with:!0,"`false`":!0,bound:!0,to:!0,"`value`":!0,because:!0,boolean:!0,"[1]":!0,is:!0,incompatible:!0,symbol:!0,"[2].":!0,'[incompatible-call]"}]':!0},"function acceptsSymbol(value: symbol) { /* ... */ }\n\nacceptsSymbol(Symbol()); // Works!\nacceptsSymbol(Symbol.isConcatSpreadable); // Works!\n\nacceptsSymbol(false); // Error!\n")),(0,l.mdx)("p",null,"You can ",(0,l.mdx)("a",{parentName:"p",href:"../../lang/refinements/"},"refine")," a value to ",(0,l.mdx)("inlineCode",{parentName:"p"},"symbol")," using a ",(0,l.mdx)("inlineCode",{parentName:"p"},"typeof")," check:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsSymbol(value: symbol) { /* ... */ }\n\nfunction func(value: mixed) {\n if (typeof value === 'symbol') {\n acceptsSymbol(value); // Works: `value` is `symbol`\n }\n}\n")),(0,l.mdx)("h2",{id:"toc-bigints"},"BigInts"),(0,l.mdx)("p",null,"BigInts can be used to represent integers of arbitrary precision. In other words, they can store integers which are too large to store as a ",(0,l.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,l.mdx)("p",null,"A ",(0,l.mdx)("inlineCode",{parentName:"p"},"bigint")," literal is just a ",(0,l.mdx)("inlineCode",{parentName:"p"},"number")," literal along with an ",(0,l.mdx)("inlineCode",{parentName:"p"},"n")," suffix."),(0,l.mdx)("p",null,"Note that ",(0,l.mdx)("inlineCode",{parentName:"p"},"bigint")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"number")," are incompatible types. That is, a ",(0,l.mdx)("inlineCode",{parentName:"p"},"bigint")," cannot be used where a ",(0,l.mdx)("inlineCode",{parentName:"p"},"number")," is expected, and vice versa."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":15,"endLine":4,"endColumn":16,"description":"Cannot call `acceptsBigInt` with `42` bound to `value` because number [1] is incompatible with bigint [2]. [incompatible-call]"}]','[{"startLine":4,"startColumn":15,"endLine":4,"endColumn":16,"description":"Cannot':!0,call:!0,"`acceptsBigInt`":!0,with:!0,"`42`":!0,bound:!0,to:!0,"`value`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,bigint:!0,"[2].":!0,'[incompatible-call]"}]':!0},"function acceptsBigInt(value: bigint) { /* ... */ }\n\nacceptsBigInt(42n); // Works!\nacceptsBigInt(42); // Error!\n")),(0,l.mdx)("p",null,"You can ",(0,l.mdx)("a",{parentName:"p",href:"../../lang/refinements/"},"refine")," a value to ",(0,l.mdx)("inlineCode",{parentName:"p"},"bigint")," using a ",(0,l.mdx)("inlineCode",{parentName:"p"},"typeof")," check:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsBigInt(value: bigint) { /* ... */ }\n\nfunction func(value: mixed) {\n if (typeof value === 'bigint') {\n acceptsBigInt(value); // Works: `value` is `bigint`\n }\n}\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6587.11bbb595.js b/assets/js/6587.11bbb595.js new file mode 100644 index 00000000000..f1e2f41580d --- /dev/null +++ b/assets/js/6587.11bbb595.js @@ -0,0 +1,433 @@ +"use strict"; +exports.id = 6587; +exports.ids = [6587]; +exports.modules = { + +/***/ 86587: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/st/st.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["(*", "*)"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["var", "end_var"], + ["var_input", "end_var"], + ["var_output", "end_var"], + ["var_in_out", "end_var"], + ["var_temp", "end_var"], + ["var_global", "end_var"], + ["var_access", "end_var"], + ["var_external", "end_var"], + ["type", "end_type"], + ["struct", "end_struct"], + ["program", "end_program"], + ["function", "end_function"], + ["function_block", "end_function_block"], + ["action", "end_action"], + ["step", "end_step"], + ["initial_step", "end_step"], + ["transaction", "end_transaction"], + ["configuration", "end_configuration"], + ["tcp", "end_tcp"], + ["recource", "end_recource"], + ["channel", "end_channel"], + ["library", "end_library"], + ["folder", "end_folder"], + ["binaries", "end_binaries"], + ["includes", "end_includes"], + ["sources", "end_sources"] + ], + autoClosingPairs: [ + { open: "[", close: "]" }, + { open: "{", close: "}" }, + { open: "(", close: ")" }, + { open: "/*", close: "*/" }, + { open: "'", close: "'", notIn: ["string_sq"] }, + { open: '"', close: '"', notIn: ["string_dq"] }, + { open: "var_input", close: "end_var" }, + { open: "var_output", close: "end_var" }, + { open: "var_in_out", close: "end_var" }, + { open: "var_temp", close: "end_var" }, + { open: "var_global", close: "end_var" }, + { open: "var_access", close: "end_var" }, + { open: "var_external", close: "end_var" }, + { open: "type", close: "end_type" }, + { open: "struct", close: "end_struct" }, + { open: "program", close: "end_program" }, + { open: "function", close: "end_function" }, + { open: "function_block", close: "end_function_block" }, + { open: "action", close: "end_action" }, + { open: "step", close: "end_step" }, + { open: "initial_step", close: "end_step" }, + { open: "transaction", close: "end_transaction" }, + { open: "configuration", close: "end_configuration" }, + { open: "tcp", close: "end_tcp" }, + { open: "recource", close: "end_recource" }, + { open: "channel", close: "end_channel" }, + { open: "library", close: "end_library" }, + { open: "folder", close: "end_folder" }, + { open: "binaries", close: "end_binaries" }, + { open: "includes", close: "end_includes" }, + { open: "sources", close: "end_sources" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "var", close: "end_var" }, + { open: "var_input", close: "end_var" }, + { open: "var_output", close: "end_var" }, + { open: "var_in_out", close: "end_var" }, + { open: "var_temp", close: "end_var" }, + { open: "var_global", close: "end_var" }, + { open: "var_access", close: "end_var" }, + { open: "var_external", close: "end_var" }, + { open: "type", close: "end_type" }, + { open: "struct", close: "end_struct" }, + { open: "program", close: "end_program" }, + { open: "function", close: "end_function" }, + { open: "function_block", close: "end_function_block" }, + { open: "action", close: "end_action" }, + { open: "step", close: "end_step" }, + { open: "initial_step", close: "end_step" }, + { open: "transaction", close: "end_transaction" }, + { open: "configuration", close: "end_configuration" }, + { open: "tcp", close: "end_tcp" }, + { open: "recource", close: "end_recource" }, + { open: "channel", close: "end_channel" }, + { open: "library", close: "end_library" }, + { open: "folder", close: "end_folder" }, + { open: "binaries", close: "end_binaries" }, + { open: "includes", close: "end_includes" }, + { open: "sources", close: "end_sources" } + ], + folding: { + markers: { + start: new RegExp("^\\s*#pragma\\s+region\\b"), + end: new RegExp("^\\s*#pragma\\s+endregion\\b") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".st", + ignoreCase: true, + brackets: [ + { token: "delimiter.curly", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" } + ], + keywords: [ + "if", + "end_if", + "elsif", + "else", + "case", + "of", + "to", + "__try", + "__catch", + "__finally", + "do", + "with", + "by", + "while", + "repeat", + "end_while", + "end_repeat", + "end_case", + "for", + "end_for", + "task", + "retain", + "non_retain", + "constant", + "with", + "at", + "exit", + "return", + "interval", + "priority", + "address", + "port", + "on_channel", + "then", + "iec", + "file", + "uses", + "version", + "packagetype", + "displayname", + "copyright", + "summary", + "vendor", + "common_source", + "from", + "extends" + ], + constant: ["false", "true", "null"], + defineKeywords: [ + "var", + "var_input", + "var_output", + "var_in_out", + "var_temp", + "var_global", + "var_access", + "var_external", + "end_var", + "type", + "end_type", + "struct", + "end_struct", + "program", + "end_program", + "function", + "end_function", + "function_block", + "end_function_block", + "interface", + "end_interface", + "method", + "end_method", + "property", + "end_property", + "namespace", + "end_namespace", + "configuration", + "end_configuration", + "tcp", + "end_tcp", + "resource", + "end_resource", + "channel", + "end_channel", + "library", + "end_library", + "folder", + "end_folder", + "binaries", + "end_binaries", + "includes", + "end_includes", + "sources", + "end_sources", + "action", + "end_action", + "step", + "initial_step", + "end_step", + "transaction", + "end_transaction" + ], + typeKeywords: [ + "int", + "sint", + "dint", + "lint", + "usint", + "uint", + "udint", + "ulint", + "real", + "lreal", + "time", + "date", + "time_of_day", + "date_and_time", + "string", + "bool", + "byte", + "word", + "dword", + "array", + "pointer", + "lword" + ], + operators: [ + "=", + ">", + "<", + ":", + ":=", + "<=", + ">=", + "<>", + "&", + "+", + "-", + "*", + "**", + "MOD", + "^", + "or", + "and", + "not", + "xor", + "abs", + "acos", + "asin", + "atan", + "cos", + "exp", + "expt", + "ln", + "log", + "sin", + "sqrt", + "tan", + "sel", + "max", + "min", + "limit", + "mux", + "shl", + "shr", + "rol", + "ror", + "indexof", + "sizeof", + "adr", + "adrinst", + "bitadr", + "is_valid", + "ref", + "ref_to" + ], + builtinVariables: [], + builtinFunctions: [ + "sr", + "rs", + "tp", + "ton", + "tof", + "eq", + "ge", + "le", + "lt", + "ne", + "round", + "trunc", + "ctd", + "\u0441tu", + "ctud", + "r_trig", + "f_trig", + "move", + "concat", + "delete", + "find", + "insert", + "left", + "len", + "replace", + "right", + "rtc" + ], + symbols: /[=>{o.r(n),o.d(n,{conf:()=>t,language:()=>r});var t={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["var","end_var"],["var_input","end_var"],["var_output","end_var"],["var_in_out","end_var"],["var_temp","end_var"],["var_global","end_var"],["var_access","end_var"],["var_external","end_var"],["type","end_type"],["struct","end_struct"],["program","end_program"],["function","end_function"],["function_block","end_function_block"],["action","end_action"],["step","end_step"],["initial_step","end_step"],["transaction","end_transaction"],["configuration","end_configuration"],["tcp","end_tcp"],["recource","end_recource"],["channel","end_channel"],["library","end_library"],["folder","end_folder"],["binaries","end_binaries"],["includes","end_includes"],["sources","end_sources"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"/*",close:"*/"},{open:"'",close:"'",notIn:["string_sq"]},{open:'"',close:'"',notIn:["string_dq"]},{open:"var_input",close:"end_var"},{open:"var_output",close:"end_var"},{open:"var_in_out",close:"end_var"},{open:"var_temp",close:"end_var"},{open:"var_global",close:"end_var"},{open:"var_access",close:"end_var"},{open:"var_external",close:"end_var"},{open:"type",close:"end_type"},{open:"struct",close:"end_struct"},{open:"program",close:"end_program"},{open:"function",close:"end_function"},{open:"function_block",close:"end_function_block"},{open:"action",close:"end_action"},{open:"step",close:"end_step"},{open:"initial_step",close:"end_step"},{open:"transaction",close:"end_transaction"},{open:"configuration",close:"end_configuration"},{open:"tcp",close:"end_tcp"},{open:"recource",close:"end_recource"},{open:"channel",close:"end_channel"},{open:"library",close:"end_library"},{open:"folder",close:"end_folder"},{open:"binaries",close:"end_binaries"},{open:"includes",close:"end_includes"},{open:"sources",close:"end_sources"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"var",close:"end_var"},{open:"var_input",close:"end_var"},{open:"var_output",close:"end_var"},{open:"var_in_out",close:"end_var"},{open:"var_temp",close:"end_var"},{open:"var_global",close:"end_var"},{open:"var_access",close:"end_var"},{open:"var_external",close:"end_var"},{open:"type",close:"end_type"},{open:"struct",close:"end_struct"},{open:"program",close:"end_program"},{open:"function",close:"end_function"},{open:"function_block",close:"end_function_block"},{open:"action",close:"end_action"},{open:"step",close:"end_step"},{open:"initial_step",close:"end_step"},{open:"transaction",close:"end_transaction"},{open:"configuration",close:"end_configuration"},{open:"tcp",close:"end_tcp"},{open:"recource",close:"end_recource"},{open:"channel",close:"end_channel"},{open:"library",close:"end_library"},{open:"folder",close:"end_folder"},{open:"binaries",close:"end_binaries"},{open:"includes",close:"end_includes"},{open:"sources",close:"end_sources"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},r={defaultToken:"",tokenPostfix:".st",ignoreCase:!0,brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["if","end_if","elsif","else","case","of","to","__try","__catch","__finally","do","with","by","while","repeat","end_while","end_repeat","end_case","for","end_for","task","retain","non_retain","constant","with","at","exit","return","interval","priority","address","port","on_channel","then","iec","file","uses","version","packagetype","displayname","copyright","summary","vendor","common_source","from","extends"],constant:["false","true","null"],defineKeywords:["var","var_input","var_output","var_in_out","var_temp","var_global","var_access","var_external","end_var","type","end_type","struct","end_struct","program","end_program","function","end_function","function_block","end_function_block","interface","end_interface","method","end_method","property","end_property","namespace","end_namespace","configuration","end_configuration","tcp","end_tcp","resource","end_resource","channel","end_channel","library","end_library","folder","end_folder","binaries","end_binaries","includes","end_includes","sources","end_sources","action","end_action","step","initial_step","end_step","transaction","end_transaction"],typeKeywords:["int","sint","dint","lint","usint","uint","udint","ulint","real","lreal","time","date","time_of_day","date_and_time","string","bool","byte","word","dword","array","pointer","lword"],operators:["=",">","<",":",":=","<=",">=","<>","&","+","-","*","**","MOD","^","or","and","not","xor","abs","acos","asin","atan","cos","exp","expt","ln","log","sin","sqrt","tan","sel","max","min","limit","mux","shl","shr","rol","ror","indexof","sizeof","adr","adrinst","bitadr","is_valid","ref","ref_to"],builtinVariables:[],builtinFunctions:["sr","rs","tp","ton","tof","eq","ge","le","lt","ne","round","trunc","ctd","\u0441tu","ctud","r_trig","f_trig","move","concat","delete","find","insert","left","len","replace","right","rtc"],symbols:/[=>{n.r(e),n.d(e,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>r,toc:()=>u});var a=n(87462),i=(n(67294),n(3905));const o={title:"Announcing Partial & Required Flow utility types + catch annotations","short-title":"Announcing Partial & Required Flow utility types",author:"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-partial-required-flow-utility-types-catch-annotations-3a32f0bf2a20"},l=void 0,r={permalink:"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations",source:"@site/blog/2023-03-15-Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations.md",title:"Announcing Partial & Required Flow utility types + catch annotations",description:"Starting in Flow version 0.201, make an object type\u2019s fields all optional using Partial (use instead of the unsafe $Shape),",date:"2023-03-15T00:00:00.000Z",formattedDate:"March 15, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Announcing Partial & Required Flow utility types + catch annotations","short-title":"Announcing Partial & Required Flow utility types",author:"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-partial-required-flow-utility-types-catch-annotations-3a32f0bf2a20"},prevItem:{title:"Flow can now detect unused Promises",permalink:"/blog/2023/04/10/Unused-Promise"},nextItem:{title:"Exact object types by default, by default",permalink:"/blog/2023/02/16/Exact-object-types-by-default-by-default"}},s={authorsImageUrls:[void 0]},u=[],d={toc:u};function c(t){let{components:e,...n}=t;return(0,i.mdx)("wrapper",(0,a.Z)({},d,n,{components:e,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Starting in Flow version 0.201, make an object type\u2019s fields all optional using ",(0,i.mdx)("inlineCode",{parentName:"p"},"Partial")," (use instead of the unsafe ",(0,i.mdx)("inlineCode",{parentName:"p"},"$Shape"),"),\nand make an object type\u2019s optional fields required with ",(0,i.mdx)("inlineCode",{parentName:"p"},"Required"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6641.0726fefc.js b/assets/js/6641.0726fefc.js new file mode 100644 index 00000000000..84890543c65 --- /dev/null +++ b/assets/js/6641.0726fefc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6641],{56641:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var a=n(87462),i=(n(67294),n(3905));const o={title:"Strict Checking of Function Call Arity","short-title":"Strict Function Call Arity",author:"Gabe Levi",hide_table_of_contents:!0},r=void 0,l={permalink:"/blog/2017/05/07/Strict-Function-Call-Arity",source:"@site/blog/2017-05-07-Strict-Function-Call-Arity.md",title:"Strict Checking of Function Call Arity",description:"One of Flow's original goals was to be able to understand idiomatic JavaScript.",date:"2017-05-07T00:00:00.000Z",formattedDate:"May 7, 2017",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Strict Checking of Function Call Arity","short-title":"Strict Function Call Arity",author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Opaque Type Aliases",permalink:"/blog/2017/07/27/Opaque-Types"},nextItem:{title:"Introducing Flow-Typed",permalink:"/blog/2016/10/13/Flow-Typed"}},c={authorsImageUrls:[void 0]},s=[],u={toc:s};function p(t){let{components:e,...n}=t;return(0,i.mdx)("wrapper",(0,a.Z)({},u,n,{components:e,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"One of Flow's original goals was to be able to understand idiomatic JavaScript.\nIn JavaScript, you can call a function with more arguments than the function\nexpects. Therefore, Flow never complained about calling a function with\nextraneous arguments."),(0,i.mdx)("p",null,"We are changing this behavior."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/665.9d4b2055.js b/assets/js/665.9d4b2055.js new file mode 100644 index 00000000000..edaa50b141c --- /dev/null +++ b/assets/js/665.9d4b2055.js @@ -0,0 +1,2 @@ +/*! For license information please see 665.9d4b2055.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[665],{90665:(e,t,n)=>{n.r(t),n.d(t,{CompletionAdapter:()=>ht,DefinitionAdapter:()=>Et,DiagnosticsAdapter:()=>gt,DocumentColorAdapter:()=>jt,DocumentFormattingEditProvider:()=>Dt,DocumentHighlightAdapter:()=>Ct,DocumentLinkAdapter:()=>Rt,DocumentRangeFormattingEditProvider:()=>Pt,DocumentSymbolAdapter:()=>St,FoldingRangeAdapter:()=>Lt,HoverAdapter:()=>bt,ReferenceAdapter:()=>xt,RenameAdapter:()=>It,SelectionRangeAdapter:()=>Ot,WorkerManager:()=>se,fromPosition:()=>ft,fromRange:()=>pt,setupMode:()=>rn,toRange:()=>mt,toTextEdit:()=>_t});var r,i,o=n(38139),a=Object.defineProperty,s=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,u=Object.prototype.hasOwnProperty,d=(e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of c(t))u.call(e,i)||i===n||a(e,i,{get:()=>t[i],enumerable:!(r=s(t,i))||r.enumerable});return e},g={};d(g,r=o,"default"),i&&d(i,r,"default");var l,h,f,p,m,v,_,b,k,w,C,y,E,A,x,I,S,T,R,D,P,M,j,L,F,O,N,W,U,V,H,K,z,q,X,B,$,Q,G,J,Y,Z,ee,te,ne,re,ie,oe,ae,se=class{_defaults;_idleCheckInterval;_lastUsedTime;_configChangeListener;_worker;_client;constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval((()=>this._checkIfIdle()),3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange((()=>this._stopWorker()))}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>12e4&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=g.editor.createWebWorker({moduleId:"vs/language/json/jsonWorker",label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then((e=>{t=e})).then((t=>{if(this._worker)return this._worker.withSyncedResources(e)})).then((e=>t))}};(h=l||(l={})).MIN_VALUE=-2147483648,h.MAX_VALUE=2147483647,(p=f||(f={})).MIN_VALUE=0,p.MAX_VALUE=2147483647,(v=m||(m={})).create=function(e,t){return e===Number.MAX_VALUE&&(e=f.MAX_VALUE),t===Number.MAX_VALUE&&(t=f.MAX_VALUE),{line:e,character:t}},v.is=function(e){var t=e;return st.objectLiteral(t)&&st.uinteger(t.line)&&st.uinteger(t.character)},(b=_||(_={})).create=function(e,t,n,r){if(st.uinteger(e)&&st.uinteger(t)&&st.uinteger(n)&&st.uinteger(r))return{start:m.create(e,t),end:m.create(n,r)};if(m.is(e)&&m.is(t))return{start:e,end:t};throw new Error("Range#create called with invalid arguments["+e+", "+t+", "+n+", "+r+"]")},b.is=function(e){var t=e;return st.objectLiteral(t)&&m.is(t.start)&&m.is(t.end)},(w=k||(k={})).create=function(e,t){return{uri:e,range:t}},w.is=function(e){var t=e;return st.defined(t)&&_.is(t.range)&&(st.string(t.uri)||st.undefined(t.uri))},(y=C||(C={})).create=function(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}},y.is=function(e){var t=e;return st.defined(t)&&_.is(t.targetRange)&&st.string(t.targetUri)&&(_.is(t.targetSelectionRange)||st.undefined(t.targetSelectionRange))&&(_.is(t.originSelectionRange)||st.undefined(t.originSelectionRange))},(A=E||(E={})).create=function(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}},A.is=function(e){var t=e;return st.numberRange(t.red,0,1)&&st.numberRange(t.green,0,1)&&st.numberRange(t.blue,0,1)&&st.numberRange(t.alpha,0,1)},(I=x||(x={})).create=function(e,t){return{range:e,color:t}},I.is=function(e){var t=e;return _.is(t.range)&&E.is(t.color)},(T=S||(S={})).create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},T.is=function(e){var t=e;return st.string(t.label)&&(st.undefined(t.textEdit)||q.is(t))&&(st.undefined(t.additionalTextEdits)||st.typedArray(t.additionalTextEdits,q.is))},(D=R||(R={})).Comment="comment",D.Imports="imports",D.Region="region",(M=P||(P={})).create=function(e,t,n,r,i){var o={startLine:e,endLine:t};return st.defined(n)&&(o.startCharacter=n),st.defined(r)&&(o.endCharacter=r),st.defined(i)&&(o.kind=i),o},M.is=function(e){var t=e;return st.uinteger(t.startLine)&&st.uinteger(t.startLine)&&(st.undefined(t.startCharacter)||st.uinteger(t.startCharacter))&&(st.undefined(t.endCharacter)||st.uinteger(t.endCharacter))&&(st.undefined(t.kind)||st.string(t.kind))},(L=j||(j={})).create=function(e,t){return{location:e,message:t}},L.is=function(e){var t=e;return st.defined(t)&&k.is(t.location)&&st.string(t.message)},(O=F||(F={})).Error=1,O.Warning=2,O.Information=3,O.Hint=4,(W=N||(N={})).Unnecessary=1,W.Deprecated=2,(U||(U={})).is=function(e){var t=e;return null!=t&&st.string(t.href)},(H=V||(V={})).create=function(e,t,n,r,i,o){var a={range:e,message:t};return st.defined(n)&&(a.severity=n),st.defined(r)&&(a.code=r),st.defined(i)&&(a.source=i),st.defined(o)&&(a.relatedInformation=o),a},H.is=function(e){var t,n=e;return st.defined(n)&&_.is(n.range)&&st.string(n.message)&&(st.number(n.severity)||st.undefined(n.severity))&&(st.integer(n.code)||st.string(n.code)||st.undefined(n.code))&&(st.undefined(n.codeDescription)||st.string(null===(t=n.codeDescription)||void 0===t?void 0:t.href))&&(st.string(n.source)||st.undefined(n.source))&&(st.undefined(n.relatedInformation)||st.typedArray(n.relatedInformation,j.is))},(z=K||(K={})).create=function(e,t){for(var n=[],r=2;r0&&(i.arguments=n),i},z.is=function(e){var t=e;return st.defined(t)&&st.string(t.title)&&st.string(t.command)},(X=q||(q={})).replace=function(e,t){return{range:e,newText:t}},X.insert=function(e,t){return{range:{start:e,end:e},newText:t}},X.del=function(e){return{range:e,newText:""}},X.is=function(e){var t=e;return st.objectLiteral(t)&&st.string(t.newText)&&_.is(t.range)},($=B||(B={})).create=function(e,t,n){var r={label:e};return void 0!==t&&(r.needsConfirmation=t),void 0!==n&&(r.description=n),r},$.is=function(e){var t=e;return void 0!==t&&st.objectLiteral(t)&&st.string(t.label)&&(st.boolean(t.needsConfirmation)||void 0===t.needsConfirmation)&&(st.string(t.description)||void 0===t.description)},(Q||(Q={})).is=function(e){return"string"==typeof e},(J=G||(G={})).replace=function(e,t,n){return{range:e,newText:t,annotationId:n}},J.insert=function(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}},J.del=function(e,t){return{range:e,newText:"",annotationId:t}},J.is=function(e){var t=e;return q.is(t)&&(B.is(t.annotationId)||Q.is(t.annotationId))},(Z=Y||(Y={})).create=function(e,t){return{textDocument:e,edits:t}},Z.is=function(e){var t=e;return st.defined(t)&&le.is(t.textDocument)&&Array.isArray(t.edits)},(te=ee||(ee={})).create=function(e,t,n){var r={kind:"create",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(r.options=t),void 0!==n&&(r.annotationId=n),r},te.is=function(e){var t=e;return t&&"create"===t.kind&&st.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||st.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||st.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||Q.is(t.annotationId))},(re=ne||(ne={})).create=function(e,t,n,r){var i={kind:"rename",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(i.options=n),void 0!==r&&(i.annotationId=r),i},re.is=function(e){var t=e;return t&&"rename"===t.kind&&st.string(t.oldUri)&&st.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||st.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||st.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||Q.is(t.annotationId))},(oe=ie||(ie={})).create=function(e,t,n){var r={kind:"delete",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(r.options=t),void 0!==n&&(r.annotationId=n),r},oe.is=function(e){var t=e;return t&&"delete"===t.kind&&st.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||st.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||st.boolean(t.options.ignoreIfNotExists)))&&(void 0===t.annotationId||Q.is(t.annotationId))},(ae||(ae={})).is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return st.string(e.kind)?ee.is(e)||ne.is(e)||ie.is(e):Y.is(e)})))};var ce,ue,de,ge,le,he,fe,pe,me,ve,_e,be,ke,we,Ce,ye,Ee,Ae,xe,Ie,Se,Te,Re,De,Pe,Me,je,Le,Fe,Oe,Ne,We,Ue,Ve,He,Ke,ze,qe,Xe,Be,$e,Qe,Ge,Je,Ye,Ze,et,tt,nt,rt,it,ot=function(){function e(e,t){this.edits=e,this.changeAnnotations=t}return e.prototype.insert=function(e,t,n){var r,i;if(void 0===n?r=q.insert(e,t):Q.is(n)?(i=n,r=G.insert(e,t,n)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(n),r=G.insert(e,t,i)),this.edits.push(r),void 0!==i)return i},e.prototype.replace=function(e,t,n){var r,i;if(void 0===n?r=q.replace(e,t):Q.is(n)?(i=n,r=G.replace(e,t,n)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(n),r=G.replace(e,t,i)),this.edits.push(r),void 0!==i)return i},e.prototype.delete=function(e,t){var n,r;if(void 0===t?n=q.del(e):Q.is(t)?(r=t,n=G.del(e,t)):(this.assertChangeAnnotations(this.changeAnnotations),r=this.changeAnnotations.manage(t),n=G.del(e,r)),this.edits.push(n),void 0!==r)return r},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e.prototype.assertChangeAnnotations=function(e){if(void 0===e)throw new Error("Text edit change is not configured to manage change annotations.")},e}(),at=function(){function e(e){this._annotations=void 0===e?Object.create(null):e,this._counter=0,this._size=0}return e.prototype.all=function(){return this._annotations},Object.defineProperty(e.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),e.prototype.manage=function(e,t){var n;if(Q.is(e)?n=e:(n=this.nextId(),t=e),void 0!==this._annotations[n])throw new Error("Id "+n+" is already in use.");if(void 0===t)throw new Error("No annotation provided for id "+n);return this._annotations[n]=t,this._size++,n},e.prototype.nextId=function(){return this._counter++,this._counter.toString()},e}();!function(){function e(e){var t=this;this._textEditChanges=Object.create(null),void 0!==e?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new at(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach((function(e){if(Y.is(e)){var n=new ot(e.edits,t._changeAnnotations);t._textEditChanges[e.textDocument.uri]=n}}))):e.changes&&Object.keys(e.changes).forEach((function(n){var r=new ot(e.changes[n]);t._textEditChanges[n]=r}))):this._workspaceEdit={}}Object.defineProperty(e.prototype,"edit",{get:function(){return this.initDocumentChanges(),void 0!==this._changeAnnotations&&(0===this._changeAnnotations.size?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),e.prototype.getTextEditChange=function(e){if(le.is(e)){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var t={uri:e.uri,version:e.version};if(!(r=this._textEditChanges[t.uri])){var n={textDocument:t,edits:i=[]};this._workspaceEdit.documentChanges.push(n),r=new ot(i,this._changeAnnotations),this._textEditChanges[t.uri]=r}return r}if(this.initChanges(),void 0===this._workspaceEdit.changes)throw new Error("Workspace edit is not configured for normal text edit changes.");var r;if(!(r=this._textEditChanges[e])){var i=[];this._workspaceEdit.changes[e]=i,r=new ot(i),this._textEditChanges[e]=r}return r},e.prototype.initDocumentChanges=function(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._changeAnnotations=new at,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},e.prototype.initChanges=function(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._workspaceEdit.changes=Object.create(null))},e.prototype.createFile=function(e,t,n){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var r,i,o;if(B.is(t)||Q.is(t)?r=t:n=t,void 0===r?i=ee.create(e,n):(o=Q.is(r)?r:this._changeAnnotations.manage(r),i=ee.create(e,n,o)),this._workspaceEdit.documentChanges.push(i),void 0!==o)return o},e.prototype.renameFile=function(e,t,n,r){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var i,o,a;if(B.is(n)||Q.is(n)?i=n:r=n,void 0===i?o=ne.create(e,t,r):(a=Q.is(i)?i:this._changeAnnotations.manage(i),o=ne.create(e,t,r,a)),this._workspaceEdit.documentChanges.push(o),void 0!==a)return a},e.prototype.deleteFile=function(e,t,n){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var r,i,o;if(B.is(t)||Q.is(t)?r=t:n=t,void 0===r?i=ie.create(e,n):(o=Q.is(r)?r:this._changeAnnotations.manage(r),i=ie.create(e,n,o)),this._workspaceEdit.documentChanges.push(i),void 0!==o)return o}}();(ue=ce||(ce={})).create=function(e){return{uri:e}},ue.is=function(e){var t=e;return st.defined(t)&&st.string(t.uri)},(ge=de||(de={})).create=function(e,t){return{uri:e,version:t}},ge.is=function(e){var t=e;return st.defined(t)&&st.string(t.uri)&&st.integer(t.version)},(he=le||(le={})).create=function(e,t){return{uri:e,version:t}},he.is=function(e){var t=e;return st.defined(t)&&st.string(t.uri)&&(null===t.version||st.integer(t.version))},(pe=fe||(fe={})).create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},pe.is=function(e){var t=e;return st.defined(t)&&st.string(t.uri)&&st.string(t.languageId)&&st.integer(t.version)&&st.string(t.text)},(ve=me||(me={})).PlainText="plaintext",ve.Markdown="markdown",function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(me||(me={})),(_e||(_e={})).is=function(e){var t=e;return st.objectLiteral(e)&&me.is(t.kind)&&st.string(t.value)},(ke=be||(be={})).Text=1,ke.Method=2,ke.Function=3,ke.Constructor=4,ke.Field=5,ke.Variable=6,ke.Class=7,ke.Interface=8,ke.Module=9,ke.Property=10,ke.Unit=11,ke.Value=12,ke.Enum=13,ke.Keyword=14,ke.Snippet=15,ke.Color=16,ke.File=17,ke.Reference=18,ke.Folder=19,ke.EnumMember=20,ke.Constant=21,ke.Struct=22,ke.Event=23,ke.Operator=24,ke.TypeParameter=25,(Ce=we||(we={})).PlainText=1,Ce.Snippet=2,(ye||(ye={})).Deprecated=1,(Ae=Ee||(Ee={})).create=function(e,t,n){return{newText:e,insert:t,replace:n}},Ae.is=function(e){var t=e;return t&&st.string(t.newText)&&_.is(t.insert)&&_.is(t.replace)},(Ie=xe||(xe={})).asIs=1,Ie.adjustIndentation=2,(Se||(Se={})).create=function(e){return{label:e}},(Te||(Te={})).create=function(e,t){return{items:e||[],isIncomplete:!!t}},(De=Re||(Re={})).fromPlainText=function(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")},De.is=function(e){var t=e;return st.string(t)||st.objectLiteral(t)&&st.string(t.language)&&st.string(t.value)},(Pe||(Pe={})).is=function(e){var t=e;return!!t&&st.objectLiteral(t)&&(_e.is(t.contents)||Re.is(t.contents)||st.typedArray(t.contents,Re.is))&&(void 0===e.range||_.is(e.range))},(Me||(Me={})).create=function(e,t){return t?{label:e,documentation:t}:{label:e}},(je||(je={})).create=function(e,t){for(var n=[],r=2;r=0;a--){var s=i[a],c=e.offsetAt(s.range.start),u=e.offsetAt(s.range.end);if(!(u<=o))throw new Error("Overlapping edit");r=r.substring(0,c)+s.newText+r.substring(u,r.length),o=c}return r}}(it||(it={}));var st,ct,ut,dt=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,"uri",{get:function(){return this._uri},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"version",{get:function(){return this._version},enumerable:!1,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,r=0;r0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return m.create(0,e);for(;ne?r=i:n=i+1}var o=n-1;return m.create(o,e-t[o])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1{let t,n=e.getLanguageId();n===this._languageId&&(this._listener[e.uri.toString()]=e.onDidChangeContent((()=>{window.clearTimeout(t),t=window.setTimeout((()=>this._doValidate(e.uri,n)),500)})),this._doValidate(e.uri,n))},i=e=>{g.editor.setModelMarkers(e,this._languageId,[]);let t=e.uri.toString(),n=this._listener[t];n&&(n.dispose(),delete this._listener[t])};this._disposables.push(g.editor.onDidCreateModel(r)),this._disposables.push(g.editor.onWillDisposeModel(i)),this._disposables.push(g.editor.onDidChangeModelLanguage((e=>{i(e.model),r(e.model)}))),this._disposables.push(n((e=>{g.editor.getModels().forEach((e=>{e.getLanguageId()===this._languageId&&(i(e),r(e))}))}))),this._disposables.push({dispose:()=>{g.editor.getModels().forEach(i);for(let e in this._listener)this._listener[e].dispose()}}),g.editor.getModels().forEach(r)}_disposables=[];_listener=Object.create(null);dispose(){this._disposables.forEach((e=>e&&e.dispose())),this._disposables.length=0}_doValidate(e,t){this._worker(e).then((t=>t.doValidation(e.toString()))).then((n=>{const r=n.map((e=>function(e,t){let n="number"==typeof t.code?String(t.code):t.code;return{severity:lt(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:n,source:t.source}}(0,e)));let i=g.editor.getModel(e);i&&i.getLanguageId()===t&&g.editor.setModelMarkers(i,t,r)})).then(void 0,(e=>{console.error(e)}))}};function lt(e){switch(e){case F.Error:return g.MarkerSeverity.Error;case F.Warning:return g.MarkerSeverity.Warning;case F.Information:return g.MarkerSeverity.Info;case F.Hint:return g.MarkerSeverity.Hint;default:return g.MarkerSeverity.Info}}var ht=class{constructor(e,t){this._worker=e,this._triggerCharacters=t}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(e,t,n,r){const i=e.uri;return this._worker(i).then((e=>e.doComplete(i.toString(),ft(t)))).then((n=>{if(!n)return;const r=e.getWordUntilPosition(t),i=new g.Range(t.lineNumber,r.startColumn,t.lineNumber,r.endColumn),o=n.items.map((e=>{const t={label:e.label,insertText:e.insertText||e.label,sortText:e.sortText,filterText:e.filterText,documentation:e.documentation,detail:e.detail,command:(n=e.command,n&&"editor.action.triggerSuggest"===n.command?{id:n.command,title:n.title,arguments:n.arguments}:void 0),range:i,kind:vt(e.kind)};var n,r;return e.textEdit&&(void 0!==(r=e.textEdit).insert&&void 0!==r.replace?t.range={insert:mt(e.textEdit.insert),replace:mt(e.textEdit.replace)}:t.range=mt(e.textEdit.range),t.insertText=e.textEdit.newText),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(_t)),e.insertTextFormat===we.Snippet&&(t.insertTextRules=g.languages.CompletionItemInsertTextRule.InsertAsSnippet),t}));return{isIncomplete:n.isIncomplete,suggestions:o}}))}};function ft(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function pt(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function mt(e){if(e)return new g.Range(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function vt(e){const t=g.languages.CompletionItemKind;switch(e){case be.Text:return t.Text;case be.Method:return t.Method;case be.Function:return t.Function;case be.Constructor:return t.Constructor;case be.Field:return t.Field;case be.Variable:return t.Variable;case be.Class:return t.Class;case be.Interface:return t.Interface;case be.Module:return t.Module;case be.Property:return t.Property;case be.Unit:return t.Unit;case be.Value:return t.Value;case be.Enum:return t.Enum;case be.Keyword:return t.Keyword;case be.Snippet:return t.Snippet;case be.Color:return t.Color;case be.File:return t.File;case be.Reference:return t.Reference}return t.Property}function _t(e){if(e)return{range:mt(e.range),text:e.newText}}var bt=class{constructor(e){this._worker=e}provideHover(e,t,n){let r=e.uri;return this._worker(r).then((e=>e.doHover(r.toString(),ft(t)))).then((e=>{if(e)return{range:mt(e.range),contents:wt(e.contents)}}))}};function kt(e){return"string"==typeof e?{value:e}:(t=e)&&"object"==typeof t&&"string"==typeof t.kind?"plaintext"===e.kind?{value:e.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:e.value}:{value:"```"+e.language+"\n"+e.value+"\n```\n"};var t}function wt(e){if(e)return Array.isArray(e)?e.map(kt):[kt(e)]}var Ct=class{constructor(e){this._worker=e}provideDocumentHighlights(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.findDocumentHighlights(r.toString(),ft(t)))).then((e=>{if(e)return e.map((e=>({range:mt(e.range),kind:yt(e.kind)})))}))}};function yt(e){switch(e){case Le.Read:return g.languages.DocumentHighlightKind.Read;case Le.Write:return g.languages.DocumentHighlightKind.Write;case Le.Text:return g.languages.DocumentHighlightKind.Text}return g.languages.DocumentHighlightKind.Text}var Et=class{constructor(e){this._worker=e}provideDefinition(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.findDefinition(r.toString(),ft(t)))).then((e=>{if(e)return[At(e)]}))}};function At(e){return{uri:g.Uri.parse(e.uri),range:mt(e.range)}}var xt=class{constructor(e){this._worker=e}provideReferences(e,t,n,r){const i=e.uri;return this._worker(i).then((e=>e.findReferences(i.toString(),ft(t)))).then((e=>{if(e)return e.map(At)}))}},It=class{constructor(e){this._worker=e}provideRenameEdits(e,t,n,r){const i=e.uri;return this._worker(i).then((e=>e.doRename(i.toString(),ft(t),n))).then((e=>function(e){if(!e||!e.changes)return;let t=[];for(let n in e.changes){const r=g.Uri.parse(n);for(let i of e.changes[n])t.push({resource:r,versionId:void 0,textEdit:{range:mt(i.range),text:i.newText}})}return{edits:t}}(e)))}};var St=class{constructor(e){this._worker=e}provideDocumentSymbols(e,t){const n=e.uri;return this._worker(n).then((e=>e.findDocumentSymbols(n.toString()))).then((e=>{if(e)return e.map((e=>({name:e.name,detail:"",containerName:e.containerName,kind:Tt(e.kind),range:mt(e.location.range),selectionRange:mt(e.location.range),tags:[]})))}))}};function Tt(e){let t=g.languages.SymbolKind;switch(e){case Ne.File:return t.Array;case Ne.Module:return t.Module;case Ne.Namespace:return t.Namespace;case Ne.Package:return t.Package;case Ne.Class:return t.Class;case Ne.Method:return t.Method;case Ne.Property:return t.Property;case Ne.Field:return t.Field;case Ne.Constructor:return t.Constructor;case Ne.Enum:return t.Enum;case Ne.Interface:return t.Interface;case Ne.Function:return t.Function;case Ne.Variable:return t.Variable;case Ne.Constant:return t.Constant;case Ne.String:return t.String;case Ne.Number:return t.Number;case Ne.Boolean:return t.Boolean;case Ne.Array:return t.Array}return t.Function}var Rt=class{constructor(e){this._worker=e}provideLinks(e,t){const n=e.uri;return this._worker(n).then((e=>e.findDocumentLinks(n.toString()))).then((e=>{if(e)return{links:e.map((e=>({range:mt(e.range),url:e.target})))}}))}},Dt=class{constructor(e){this._worker=e}provideDocumentFormattingEdits(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.format(r.toString(),null,Mt(t)).then((e=>{if(e&&0!==e.length)return e.map(_t)}))))}},Pt=class{constructor(e){this._worker=e}provideDocumentRangeFormattingEdits(e,t,n,r){const i=e.uri;return this._worker(i).then((e=>e.format(i.toString(),pt(t),Mt(n)).then((e=>{if(e&&0!==e.length)return e.map(_t)}))))}};function Mt(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}var jt=class{constructor(e){this._worker=e}provideDocumentColors(e,t){const n=e.uri;return this._worker(n).then((e=>e.findDocumentColors(n.toString()))).then((e=>{if(e)return e.map((e=>({color:e.color,range:mt(e.range)})))}))}provideColorPresentations(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.getColorPresentations(r.toString(),t.color,pt(t.range)))).then((e=>{if(e)return e.map((e=>{let t={label:e.label};return e.textEdit&&(t.textEdit=_t(e.textEdit)),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(_t)),t}))}))}},Lt=class{constructor(e){this._worker=e}provideFoldingRanges(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.getFoldingRanges(r.toString(),t))).then((e=>{if(e)return e.map((e=>{const t={start:e.startLine+1,end:e.endLine+1};return void 0!==e.kind&&(t.kind=function(e){switch(e){case R.Comment:return g.languages.FoldingRangeKind.Comment;case R.Imports:return g.languages.FoldingRangeKind.Imports;case R.Region:return g.languages.FoldingRangeKind.Region}return}(e.kind)),t}))}))}};var Ft,Ot=class{constructor(e){this._worker=e}provideSelectionRanges(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.getSelectionRanges(r.toString(),t.map(ft)))).then((e=>{if(e)return e.map((e=>{const t=[];for(;e;)t.push({range:mt(e.range)}),e=e.parent;return t}))}))}};function Nt(e){return 32===e||9===e||11===e||12===e||160===e||5760===e||e>=8192&&e<=8203||8239===e||8287===e||12288===e||65279===e}function Wt(e){return 10===e||13===e||8232===e||8233===e}function Ut(e){return e>=48&&e<=57}(Ft||(Ft={})).DEFAULT={allowTrailingComma:!1};var Vt=function(e,t){void 0===t&&(t=!1);var n=e.length,r=0,i="",o=0,a=16,s=0,c=0,u=0,d=0,g=0;function l(t,n){for(var i=0,o=0;i=48&&a<=57)o=16*o+a-48;else if(a>=65&&a<=70)o=16*o+a-65+10;else{if(!(a>=97&&a<=102))break;o=16*o+a-97+10}r++,i++}return i=n)return o=n,a=17;var t=e.charCodeAt(r);if(Nt(t)){do{r++,i+=String.fromCharCode(t),t=e.charCodeAt(r)}while(Nt(t));return a=15}if(Wt(t))return r++,i+=String.fromCharCode(t),13===t&&10===e.charCodeAt(r)&&(r++,i+="\n"),s++,u=r,a=14;switch(t){case 123:return r++,a=1;case 125:return r++,a=2;case 91:return r++,a=3;case 93:return r++,a=4;case 58:return r++,a=6;case 44:return r++,a=5;case 34:return r++,i=function(){for(var t="",i=r;;){if(r>=n){t+=e.substring(i,r),g=2;break}var o=e.charCodeAt(r);if(34===o){t+=e.substring(i,r),r++;break}if(92!==o){if(o>=0&&o<=31){if(Wt(o)){t+=e.substring(i,r),g=2;break}g=6}r++}else{if(t+=e.substring(i,r),++r>=n){g=2;break}switch(e.charCodeAt(r++)){case 34:t+='"';break;case 92:t+="\\";break;case 47:t+="/";break;case 98:t+="\b";break;case 102:t+="\f";break;case 110:t+="\n";break;case 114:t+="\r";break;case 116:t+="\t";break;case 117:var a=l(4,!0);a>=0?t+=String.fromCharCode(a):g=4;break;default:g=5}i=r}}return t}(),a=10;case 47:var h=r-1;if(47===e.charCodeAt(r+1)){for(r+=2;r=12&&e<=15);return e}:h,getToken:function(){return a},getTokenValue:function(){return i},getTokenOffset:function(){return o},getTokenLength:function(){return r-o},getTokenStartLine:function(){return c},getTokenStartCharacter:function(){return o-d},getTokenError:function(){return g}}};function Ht(e){return{getInitialState:()=>new tn(null,null,!1,null),tokenize:(t,n)=>function(e,t,n,r=0){let i=0,o=!1;switch(n.scanError){case 2:t='"'+t,i=1;break;case 1:t="/*"+t,i=2}const a=Vt(t);let s=n.lastWasColon,c=n.parents;const u={tokens:[],endState:n.clone()};for(;;){let d=r+a.getPosition(),g="";const l=a.scan();if(17===l)break;if(d===r+a.getPosition())throw new Error("Scanner did not advance, next 3 characters are: "+t.substr(a.getPosition(),3));switch(o&&(d-=i),o=i>0,l){case 1:c=en.push(c,0),g=Kt,s=!1;break;case 2:c=en.pop(c),g=Kt,s=!1;break;case 3:c=en.push(c,1),g=zt,s=!1;break;case 4:c=en.pop(c),g=zt,s=!1;break;case 6:g=qt,s=!0;break;case 5:g=Xt,s=!1;break;case 8:case 9:g=Bt,s=!1;break;case 7:g=$t,s=!1;break;case 10:const e=1===(c?c.type:0);g=s||e?Qt:Jt,s=!1;break;case 11:g=Gt,s=!1}if(e)switch(l){case 12:g=Zt;break;case 13:g=Yt}u.endState=new tn(n.getStateData(),a.getTokenError(),s,c),u.tokens.push({startIndex:d,scopes:g})}return u}(e,t,n)}}var Kt="delimiter.bracket.json",zt="delimiter.array.json",qt="delimiter.colon.json",Xt="delimiter.comma.json",Bt="keyword.json",$t="keyword.json",Qt="string.value.json",Gt="number.json",Jt="string.key.json",Yt="comment.block.json",Zt="comment.line.json",en=class{constructor(e,t){this.parent=e,this.type=t}static pop(e){return e?e.parent:null}static push(e,t){return new en(e,t)}static equals(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;for(;e&&t;){if(e===t)return!0;if(e.type!==t.type)return!1;e=e.parent,t=t.parent}return!0}},tn=class{_state;scanError;lastWasColon;parents;constructor(e,t,n,r){this._state=e,this.scanError=t,this.lastWasColon=n,this.parents=r}clone(){return new tn(this._state,this.scanError,this.lastWasColon,this.parents)}equals(e){return e===this||!!(e&&e instanceof tn)&&(this.scanError===e.scanError&&this.lastWasColon===e.lastWasColon&&en.equals(this.parents,e.parents))}getStateData(){return this._state}setStateData(e){this._state=e}};var nn=class extends gt{constructor(e,t,n){super(e,t,n.onDidChange),this._disposables.push(g.editor.onWillDisposeModel((e=>{this._resetSchema(e.uri)}))),this._disposables.push(g.editor.onDidChangeModelLanguage((e=>{this._resetSchema(e.model.uri)})))}_resetSchema(e){this._worker().then((t=>{t.resetSchema(e.toString())}))}};function rn(e){const t=[],n=[],r=new se(e);t.push(r);const i=(...e)=>r.getLanguageServiceWorker(...e);function o(){const{languageId:t,modeConfiguration:r}=e;an(n),r.documentFormattingEdits&&n.push(g.languages.registerDocumentFormattingEditProvider(t,new Dt(i))),r.documentRangeFormattingEdits&&n.push(g.languages.registerDocumentRangeFormattingEditProvider(t,new Pt(i))),r.completionItems&&n.push(g.languages.registerCompletionItemProvider(t,new ht(i,[" ",":",'"']))),r.hovers&&n.push(g.languages.registerHoverProvider(t,new bt(i))),r.documentSymbols&&n.push(g.languages.registerDocumentSymbolProvider(t,new St(i))),r.tokens&&n.push(g.languages.setTokensProvider(t,Ht(!0))),r.colors&&n.push(g.languages.registerColorProvider(t,new jt(i))),r.foldingRanges&&n.push(g.languages.registerFoldingRangeProvider(t,new Lt(i))),r.diagnostics&&n.push(new nn(t,i,e)),r.selectionRanges&&n.push(g.languages.registerSelectionRangeProvider(t,new Ot(i)))}o(),t.push(g.languages.setLanguageConfiguration(e.languageId,sn));let a=e.modeConfiguration;return e.onDidChange((e=>{e.modeConfiguration!==a&&(a=e.modeConfiguration,o())})),t.push(on(n)),on(t)}function on(e){return{dispose:()=>an(e)}}function an(e){for(;e.length;)e.pop().dispose()}var sn={wordPattern:/(-?\d*\.\d\w*)|([^\[\{\]\}\:\"\,\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:'"',close:'"',notIn:["string"]}]}}}]); \ No newline at end of file diff --git a/assets/js/665.9d4b2055.js.LICENSE.txt b/assets/js/665.9d4b2055.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/665.9d4b2055.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/665.ea3dec56.js b/assets/js/665.ea3dec56.js new file mode 100644 index 00000000000..38a35ea2c86 --- /dev/null +++ b/assets/js/665.ea3dec56.js @@ -0,0 +1,2627 @@ +"use strict"; +exports.id = 665; +exports.ids = [665]; +exports.modules = { + +/***/ 90665: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "CompletionAdapter": () => (/* binding */ CompletionAdapter), +/* harmony export */ "DefinitionAdapter": () => (/* binding */ DefinitionAdapter), +/* harmony export */ "DiagnosticsAdapter": () => (/* binding */ DiagnosticsAdapter), +/* harmony export */ "DocumentColorAdapter": () => (/* binding */ DocumentColorAdapter), +/* harmony export */ "DocumentFormattingEditProvider": () => (/* binding */ DocumentFormattingEditProvider), +/* harmony export */ "DocumentHighlightAdapter": () => (/* binding */ DocumentHighlightAdapter), +/* harmony export */ "DocumentLinkAdapter": () => (/* binding */ DocumentLinkAdapter), +/* harmony export */ "DocumentRangeFormattingEditProvider": () => (/* binding */ DocumentRangeFormattingEditProvider), +/* harmony export */ "DocumentSymbolAdapter": () => (/* binding */ DocumentSymbolAdapter), +/* harmony export */ "FoldingRangeAdapter": () => (/* binding */ FoldingRangeAdapter), +/* harmony export */ "HoverAdapter": () => (/* binding */ HoverAdapter), +/* harmony export */ "ReferenceAdapter": () => (/* binding */ ReferenceAdapter), +/* harmony export */ "RenameAdapter": () => (/* binding */ RenameAdapter), +/* harmony export */ "SelectionRangeAdapter": () => (/* binding */ SelectionRangeAdapter), +/* harmony export */ "WorkerManager": () => (/* binding */ WorkerManager), +/* harmony export */ "fromPosition": () => (/* binding */ fromPosition), +/* harmony export */ "fromRange": () => (/* binding */ fromRange), +/* harmony export */ "setupMode": () => (/* binding */ setupMode), +/* harmony export */ "toRange": () => (/* binding */ toRange), +/* harmony export */ "toTextEdit": () => (/* binding */ toTextEdit) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38139); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/language/json/workerManager.ts +var STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3; +var WorkerManager = class { + _defaults; + _idleCheckInterval; + _lastUsedTime; + _configChangeListener; + _worker; + _client; + constructor(defaults) { + this._defaults = defaults; + this._worker = null; + this._client = null; + this._idleCheckInterval = window.setInterval(() => this._checkIfIdle(), 30 * 1e3); + this._lastUsedTime = 0; + this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker()); + } + _stopWorker() { + if (this._worker) { + this._worker.dispose(); + this._worker = null; + } + this._client = null; + } + dispose() { + clearInterval(this._idleCheckInterval); + this._configChangeListener.dispose(); + this._stopWorker(); + } + _checkIfIdle() { + if (!this._worker) { + return; + } + let timePassedSinceLastUsed = Date.now() - this._lastUsedTime; + if (timePassedSinceLastUsed > STOP_WHEN_IDLE_FOR) { + this._stopWorker(); + } + } + _getClient() { + this._lastUsedTime = Date.now(); + if (!this._client) { + this._worker = monaco_editor_core_exports.editor.createWebWorker({ + moduleId: "vs/language/json/jsonWorker", + label: this._defaults.languageId, + createData: { + languageSettings: this._defaults.diagnosticsOptions, + languageId: this._defaults.languageId, + enableSchemaRequest: this._defaults.diagnosticsOptions.enableSchemaRequest + } + }); + this._client = this._worker.getProxy(); + } + return this._client; + } + getLanguageServiceWorker(...resources) { + let _client; + return this._getClient().then((client) => { + _client = client; + }).then((_) => { + if (this._worker) { + return this._worker.withSyncedResources(resources); + } + }).then((_) => _client); + } +}; + +// node_modules/vscode-languageserver-types/lib/esm/main.js +var integer; +(function(integer2) { + integer2.MIN_VALUE = -2147483648; + integer2.MAX_VALUE = 2147483647; +})(integer || (integer = {})); +var uinteger; +(function(uinteger2) { + uinteger2.MIN_VALUE = 0; + uinteger2.MAX_VALUE = 2147483647; +})(uinteger || (uinteger = {})); +var Position; +(function(Position3) { + function create(line, character) { + if (line === Number.MAX_VALUE) { + line = uinteger.MAX_VALUE; + } + if (character === Number.MAX_VALUE) { + character = uinteger.MAX_VALUE; + } + return { line, character }; + } + Position3.create = create; + function is(value) { + var candidate = value; + return Is.objectLiteral(candidate) && Is.uinteger(candidate.line) && Is.uinteger(candidate.character); + } + Position3.is = is; +})(Position || (Position = {})); +var Range; +(function(Range3) { + function create(one, two, three, four) { + if (Is.uinteger(one) && Is.uinteger(two) && Is.uinteger(three) && Is.uinteger(four)) { + return { start: Position.create(one, two), end: Position.create(three, four) }; + } else if (Position.is(one) && Position.is(two)) { + return { start: one, end: two }; + } else { + throw new Error("Range#create called with invalid arguments[" + one + ", " + two + ", " + three + ", " + four + "]"); + } + } + Range3.create = create; + function is(value) { + var candidate = value; + return Is.objectLiteral(candidate) && Position.is(candidate.start) && Position.is(candidate.end); + } + Range3.is = is; +})(Range || (Range = {})); +var Location; +(function(Location2) { + function create(uri, range) { + return { uri, range }; + } + Location2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Range.is(candidate.range) && (Is.string(candidate.uri) || Is.undefined(candidate.uri)); + } + Location2.is = is; +})(Location || (Location = {})); +var LocationLink; +(function(LocationLink2) { + function create(targetUri, targetRange, targetSelectionRange, originSelectionRange) { + return { targetUri, targetRange, targetSelectionRange, originSelectionRange }; + } + LocationLink2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Range.is(candidate.targetRange) && Is.string(candidate.targetUri) && (Range.is(candidate.targetSelectionRange) || Is.undefined(candidate.targetSelectionRange)) && (Range.is(candidate.originSelectionRange) || Is.undefined(candidate.originSelectionRange)); + } + LocationLink2.is = is; +})(LocationLink || (LocationLink = {})); +var Color; +(function(Color2) { + function create(red, green, blue, alpha) { + return { + red, + green, + blue, + alpha + }; + } + Color2.create = create; + function is(value) { + var candidate = value; + return Is.numberRange(candidate.red, 0, 1) && Is.numberRange(candidate.green, 0, 1) && Is.numberRange(candidate.blue, 0, 1) && Is.numberRange(candidate.alpha, 0, 1); + } + Color2.is = is; +})(Color || (Color = {})); +var ColorInformation; +(function(ColorInformation2) { + function create(range, color) { + return { + range, + color + }; + } + ColorInformation2.create = create; + function is(value) { + var candidate = value; + return Range.is(candidate.range) && Color.is(candidate.color); + } + ColorInformation2.is = is; +})(ColorInformation || (ColorInformation = {})); +var ColorPresentation; +(function(ColorPresentation2) { + function create(label, textEdit, additionalTextEdits) { + return { + label, + textEdit, + additionalTextEdits + }; + } + ColorPresentation2.create = create; + function is(value) { + var candidate = value; + return Is.string(candidate.label) && (Is.undefined(candidate.textEdit) || TextEdit.is(candidate)) && (Is.undefined(candidate.additionalTextEdits) || Is.typedArray(candidate.additionalTextEdits, TextEdit.is)); + } + ColorPresentation2.is = is; +})(ColorPresentation || (ColorPresentation = {})); +var FoldingRangeKind; +(function(FoldingRangeKind2) { + FoldingRangeKind2["Comment"] = "comment"; + FoldingRangeKind2["Imports"] = "imports"; + FoldingRangeKind2["Region"] = "region"; +})(FoldingRangeKind || (FoldingRangeKind = {})); +var FoldingRange; +(function(FoldingRange2) { + function create(startLine, endLine, startCharacter, endCharacter, kind) { + var result = { + startLine, + endLine + }; + if (Is.defined(startCharacter)) { + result.startCharacter = startCharacter; + } + if (Is.defined(endCharacter)) { + result.endCharacter = endCharacter; + } + if (Is.defined(kind)) { + result.kind = kind; + } + return result; + } + FoldingRange2.create = create; + function is(value) { + var candidate = value; + return Is.uinteger(candidate.startLine) && Is.uinteger(candidate.startLine) && (Is.undefined(candidate.startCharacter) || Is.uinteger(candidate.startCharacter)) && (Is.undefined(candidate.endCharacter) || Is.uinteger(candidate.endCharacter)) && (Is.undefined(candidate.kind) || Is.string(candidate.kind)); + } + FoldingRange2.is = is; +})(FoldingRange || (FoldingRange = {})); +var DiagnosticRelatedInformation; +(function(DiagnosticRelatedInformation2) { + function create(location, message) { + return { + location, + message + }; + } + DiagnosticRelatedInformation2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message); + } + DiagnosticRelatedInformation2.is = is; +})(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {})); +var DiagnosticSeverity; +(function(DiagnosticSeverity2) { + DiagnosticSeverity2.Error = 1; + DiagnosticSeverity2.Warning = 2; + DiagnosticSeverity2.Information = 3; + DiagnosticSeverity2.Hint = 4; +})(DiagnosticSeverity || (DiagnosticSeverity = {})); +var DiagnosticTag; +(function(DiagnosticTag2) { + DiagnosticTag2.Unnecessary = 1; + DiagnosticTag2.Deprecated = 2; +})(DiagnosticTag || (DiagnosticTag = {})); +var CodeDescription; +(function(CodeDescription2) { + function is(value) { + var candidate = value; + return candidate !== void 0 && candidate !== null && Is.string(candidate.href); + } + CodeDescription2.is = is; +})(CodeDescription || (CodeDescription = {})); +var Diagnostic; +(function(Diagnostic2) { + function create(range, message, severity, code, source, relatedInformation) { + var result = { range, message }; + if (Is.defined(severity)) { + result.severity = severity; + } + if (Is.defined(code)) { + result.code = code; + } + if (Is.defined(source)) { + result.source = source; + } + if (Is.defined(relatedInformation)) { + result.relatedInformation = relatedInformation; + } + return result; + } + Diagnostic2.create = create; + function is(value) { + var _a; + var candidate = value; + return Is.defined(candidate) && Range.is(candidate.range) && Is.string(candidate.message) && (Is.number(candidate.severity) || Is.undefined(candidate.severity)) && (Is.integer(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code)) && (Is.undefined(candidate.codeDescription) || Is.string((_a = candidate.codeDescription) === null || _a === void 0 ? void 0 : _a.href)) && (Is.string(candidate.source) || Is.undefined(candidate.source)) && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is)); + } + Diagnostic2.is = is; +})(Diagnostic || (Diagnostic = {})); +var Command; +(function(Command2) { + function create(title, command) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + var result = { title, command }; + if (Is.defined(args) && args.length > 0) { + result.arguments = args; + } + return result; + } + Command2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.title) && Is.string(candidate.command); + } + Command2.is = is; +})(Command || (Command = {})); +var TextEdit; +(function(TextEdit2) { + function replace(range, newText) { + return { range, newText }; + } + TextEdit2.replace = replace; + function insert(position, newText) { + return { range: { start: position, end: position }, newText }; + } + TextEdit2.insert = insert; + function del(range) { + return { range, newText: "" }; + } + TextEdit2.del = del; + function is(value) { + var candidate = value; + return Is.objectLiteral(candidate) && Is.string(candidate.newText) && Range.is(candidate.range); + } + TextEdit2.is = is; +})(TextEdit || (TextEdit = {})); +var ChangeAnnotation; +(function(ChangeAnnotation2) { + function create(label, needsConfirmation, description) { + var result = { label }; + if (needsConfirmation !== void 0) { + result.needsConfirmation = needsConfirmation; + } + if (description !== void 0) { + result.description = description; + } + return result; + } + ChangeAnnotation2.create = create; + function is(value) { + var candidate = value; + return candidate !== void 0 && Is.objectLiteral(candidate) && Is.string(candidate.label) && (Is.boolean(candidate.needsConfirmation) || candidate.needsConfirmation === void 0) && (Is.string(candidate.description) || candidate.description === void 0); + } + ChangeAnnotation2.is = is; +})(ChangeAnnotation || (ChangeAnnotation = {})); +var ChangeAnnotationIdentifier; +(function(ChangeAnnotationIdentifier2) { + function is(value) { + var candidate = value; + return typeof candidate === "string"; + } + ChangeAnnotationIdentifier2.is = is; +})(ChangeAnnotationIdentifier || (ChangeAnnotationIdentifier = {})); +var AnnotatedTextEdit; +(function(AnnotatedTextEdit2) { + function replace(range, newText, annotation) { + return { range, newText, annotationId: annotation }; + } + AnnotatedTextEdit2.replace = replace; + function insert(position, newText, annotation) { + return { range: { start: position, end: position }, newText, annotationId: annotation }; + } + AnnotatedTextEdit2.insert = insert; + function del(range, annotation) { + return { range, newText: "", annotationId: annotation }; + } + AnnotatedTextEdit2.del = del; + function is(value) { + var candidate = value; + return TextEdit.is(candidate) && (ChangeAnnotation.is(candidate.annotationId) || ChangeAnnotationIdentifier.is(candidate.annotationId)); + } + AnnotatedTextEdit2.is = is; +})(AnnotatedTextEdit || (AnnotatedTextEdit = {})); +var TextDocumentEdit; +(function(TextDocumentEdit2) { + function create(textDocument, edits) { + return { textDocument, edits }; + } + TextDocumentEdit2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument) && Array.isArray(candidate.edits); + } + TextDocumentEdit2.is = is; +})(TextDocumentEdit || (TextDocumentEdit = {})); +var CreateFile; +(function(CreateFile2) { + function create(uri, options, annotation) { + var result = { + kind: "create", + uri + }; + if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) { + result.options = options; + } + if (annotation !== void 0) { + result.annotationId = annotation; + } + return result; + } + CreateFile2.create = create; + function is(value) { + var candidate = value; + return candidate && candidate.kind === "create" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId)); + } + CreateFile2.is = is; +})(CreateFile || (CreateFile = {})); +var RenameFile; +(function(RenameFile2) { + function create(oldUri, newUri, options, annotation) { + var result = { + kind: "rename", + oldUri, + newUri + }; + if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) { + result.options = options; + } + if (annotation !== void 0) { + result.annotationId = annotation; + } + return result; + } + RenameFile2.create = create; + function is(value) { + var candidate = value; + return candidate && candidate.kind === "rename" && Is.string(candidate.oldUri) && Is.string(candidate.newUri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId)); + } + RenameFile2.is = is; +})(RenameFile || (RenameFile = {})); +var DeleteFile; +(function(DeleteFile2) { + function create(uri, options, annotation) { + var result = { + kind: "delete", + uri + }; + if (options !== void 0 && (options.recursive !== void 0 || options.ignoreIfNotExists !== void 0)) { + result.options = options; + } + if (annotation !== void 0) { + result.annotationId = annotation; + } + return result; + } + DeleteFile2.create = create; + function is(value) { + var candidate = value; + return candidate && candidate.kind === "delete" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.recursive === void 0 || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === void 0 || Is.boolean(candidate.options.ignoreIfNotExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId)); + } + DeleteFile2.is = is; +})(DeleteFile || (DeleteFile = {})); +var WorkspaceEdit; +(function(WorkspaceEdit2) { + function is(value) { + var candidate = value; + return candidate && (candidate.changes !== void 0 || candidate.documentChanges !== void 0) && (candidate.documentChanges === void 0 || candidate.documentChanges.every(function(change) { + if (Is.string(change.kind)) { + return CreateFile.is(change) || RenameFile.is(change) || DeleteFile.is(change); + } else { + return TextDocumentEdit.is(change); + } + })); + } + WorkspaceEdit2.is = is; +})(WorkspaceEdit || (WorkspaceEdit = {})); +var TextEditChangeImpl = function() { + function TextEditChangeImpl2(edits, changeAnnotations) { + this.edits = edits; + this.changeAnnotations = changeAnnotations; + } + TextEditChangeImpl2.prototype.insert = function(position, newText, annotation) { + var edit; + var id; + if (annotation === void 0) { + edit = TextEdit.insert(position, newText); + } else if (ChangeAnnotationIdentifier.is(annotation)) { + id = annotation; + edit = AnnotatedTextEdit.insert(position, newText, annotation); + } else { + this.assertChangeAnnotations(this.changeAnnotations); + id = this.changeAnnotations.manage(annotation); + edit = AnnotatedTextEdit.insert(position, newText, id); + } + this.edits.push(edit); + if (id !== void 0) { + return id; + } + }; + TextEditChangeImpl2.prototype.replace = function(range, newText, annotation) { + var edit; + var id; + if (annotation === void 0) { + edit = TextEdit.replace(range, newText); + } else if (ChangeAnnotationIdentifier.is(annotation)) { + id = annotation; + edit = AnnotatedTextEdit.replace(range, newText, annotation); + } else { + this.assertChangeAnnotations(this.changeAnnotations); + id = this.changeAnnotations.manage(annotation); + edit = AnnotatedTextEdit.replace(range, newText, id); + } + this.edits.push(edit); + if (id !== void 0) { + return id; + } + }; + TextEditChangeImpl2.prototype.delete = function(range, annotation) { + var edit; + var id; + if (annotation === void 0) { + edit = TextEdit.del(range); + } else if (ChangeAnnotationIdentifier.is(annotation)) { + id = annotation; + edit = AnnotatedTextEdit.del(range, annotation); + } else { + this.assertChangeAnnotations(this.changeAnnotations); + id = this.changeAnnotations.manage(annotation); + edit = AnnotatedTextEdit.del(range, id); + } + this.edits.push(edit); + if (id !== void 0) { + return id; + } + }; + TextEditChangeImpl2.prototype.add = function(edit) { + this.edits.push(edit); + }; + TextEditChangeImpl2.prototype.all = function() { + return this.edits; + }; + TextEditChangeImpl2.prototype.clear = function() { + this.edits.splice(0, this.edits.length); + }; + TextEditChangeImpl2.prototype.assertChangeAnnotations = function(value) { + if (value === void 0) { + throw new Error("Text edit change is not configured to manage change annotations."); + } + }; + return TextEditChangeImpl2; +}(); +var ChangeAnnotations = function() { + function ChangeAnnotations2(annotations) { + this._annotations = annotations === void 0 ? /* @__PURE__ */ Object.create(null) : annotations; + this._counter = 0; + this._size = 0; + } + ChangeAnnotations2.prototype.all = function() { + return this._annotations; + }; + Object.defineProperty(ChangeAnnotations2.prototype, "size", { + get: function() { + return this._size; + }, + enumerable: false, + configurable: true + }); + ChangeAnnotations2.prototype.manage = function(idOrAnnotation, annotation) { + var id; + if (ChangeAnnotationIdentifier.is(idOrAnnotation)) { + id = idOrAnnotation; + } else { + id = this.nextId(); + annotation = idOrAnnotation; + } + if (this._annotations[id] !== void 0) { + throw new Error("Id " + id + " is already in use."); + } + if (annotation === void 0) { + throw new Error("No annotation provided for id " + id); + } + this._annotations[id] = annotation; + this._size++; + return id; + }; + ChangeAnnotations2.prototype.nextId = function() { + this._counter++; + return this._counter.toString(); + }; + return ChangeAnnotations2; +}(); +var WorkspaceChange = function() { + function WorkspaceChange2(workspaceEdit) { + var _this = this; + this._textEditChanges = /* @__PURE__ */ Object.create(null); + if (workspaceEdit !== void 0) { + this._workspaceEdit = workspaceEdit; + if (workspaceEdit.documentChanges) { + this._changeAnnotations = new ChangeAnnotations(workspaceEdit.changeAnnotations); + workspaceEdit.changeAnnotations = this._changeAnnotations.all(); + workspaceEdit.documentChanges.forEach(function(change) { + if (TextDocumentEdit.is(change)) { + var textEditChange = new TextEditChangeImpl(change.edits, _this._changeAnnotations); + _this._textEditChanges[change.textDocument.uri] = textEditChange; + } + }); + } else if (workspaceEdit.changes) { + Object.keys(workspaceEdit.changes).forEach(function(key) { + var textEditChange = new TextEditChangeImpl(workspaceEdit.changes[key]); + _this._textEditChanges[key] = textEditChange; + }); + } + } else { + this._workspaceEdit = {}; + } + } + Object.defineProperty(WorkspaceChange2.prototype, "edit", { + get: function() { + this.initDocumentChanges(); + if (this._changeAnnotations !== void 0) { + if (this._changeAnnotations.size === 0) { + this._workspaceEdit.changeAnnotations = void 0; + } else { + this._workspaceEdit.changeAnnotations = this._changeAnnotations.all(); + } + } + return this._workspaceEdit; + }, + enumerable: false, + configurable: true + }); + WorkspaceChange2.prototype.getTextEditChange = function(key) { + if (OptionalVersionedTextDocumentIdentifier.is(key)) { + this.initDocumentChanges(); + if (this._workspaceEdit.documentChanges === void 0) { + throw new Error("Workspace edit is not configured for document changes."); + } + var textDocument = { uri: key.uri, version: key.version }; + var result = this._textEditChanges[textDocument.uri]; + if (!result) { + var edits = []; + var textDocumentEdit = { + textDocument, + edits + }; + this._workspaceEdit.documentChanges.push(textDocumentEdit); + result = new TextEditChangeImpl(edits, this._changeAnnotations); + this._textEditChanges[textDocument.uri] = result; + } + return result; + } else { + this.initChanges(); + if (this._workspaceEdit.changes === void 0) { + throw new Error("Workspace edit is not configured for normal text edit changes."); + } + var result = this._textEditChanges[key]; + if (!result) { + var edits = []; + this._workspaceEdit.changes[key] = edits; + result = new TextEditChangeImpl(edits); + this._textEditChanges[key] = result; + } + return result; + } + }; + WorkspaceChange2.prototype.initDocumentChanges = function() { + if (this._workspaceEdit.documentChanges === void 0 && this._workspaceEdit.changes === void 0) { + this._changeAnnotations = new ChangeAnnotations(); + this._workspaceEdit.documentChanges = []; + this._workspaceEdit.changeAnnotations = this._changeAnnotations.all(); + } + }; + WorkspaceChange2.prototype.initChanges = function() { + if (this._workspaceEdit.documentChanges === void 0 && this._workspaceEdit.changes === void 0) { + this._workspaceEdit.changes = /* @__PURE__ */ Object.create(null); + } + }; + WorkspaceChange2.prototype.createFile = function(uri, optionsOrAnnotation, options) { + this.initDocumentChanges(); + if (this._workspaceEdit.documentChanges === void 0) { + throw new Error("Workspace edit is not configured for document changes."); + } + var annotation; + if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) { + annotation = optionsOrAnnotation; + } else { + options = optionsOrAnnotation; + } + var operation; + var id; + if (annotation === void 0) { + operation = CreateFile.create(uri, options); + } else { + id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation); + operation = CreateFile.create(uri, options, id); + } + this._workspaceEdit.documentChanges.push(operation); + if (id !== void 0) { + return id; + } + }; + WorkspaceChange2.prototype.renameFile = function(oldUri, newUri, optionsOrAnnotation, options) { + this.initDocumentChanges(); + if (this._workspaceEdit.documentChanges === void 0) { + throw new Error("Workspace edit is not configured for document changes."); + } + var annotation; + if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) { + annotation = optionsOrAnnotation; + } else { + options = optionsOrAnnotation; + } + var operation; + var id; + if (annotation === void 0) { + operation = RenameFile.create(oldUri, newUri, options); + } else { + id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation); + operation = RenameFile.create(oldUri, newUri, options, id); + } + this._workspaceEdit.documentChanges.push(operation); + if (id !== void 0) { + return id; + } + }; + WorkspaceChange2.prototype.deleteFile = function(uri, optionsOrAnnotation, options) { + this.initDocumentChanges(); + if (this._workspaceEdit.documentChanges === void 0) { + throw new Error("Workspace edit is not configured for document changes."); + } + var annotation; + if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) { + annotation = optionsOrAnnotation; + } else { + options = optionsOrAnnotation; + } + var operation; + var id; + if (annotation === void 0) { + operation = DeleteFile.create(uri, options); + } else { + id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation); + operation = DeleteFile.create(uri, options, id); + } + this._workspaceEdit.documentChanges.push(operation); + if (id !== void 0) { + return id; + } + }; + return WorkspaceChange2; +}(); +var TextDocumentIdentifier; +(function(TextDocumentIdentifier2) { + function create(uri) { + return { uri }; + } + TextDocumentIdentifier2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri); + } + TextDocumentIdentifier2.is = is; +})(TextDocumentIdentifier || (TextDocumentIdentifier = {})); +var VersionedTextDocumentIdentifier; +(function(VersionedTextDocumentIdentifier2) { + function create(uri, version) { + return { uri, version }; + } + VersionedTextDocumentIdentifier2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri) && Is.integer(candidate.version); + } + VersionedTextDocumentIdentifier2.is = is; +})(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {})); +var OptionalVersionedTextDocumentIdentifier; +(function(OptionalVersionedTextDocumentIdentifier2) { + function create(uri, version) { + return { uri, version }; + } + OptionalVersionedTextDocumentIdentifier2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.integer(candidate.version)); + } + OptionalVersionedTextDocumentIdentifier2.is = is; +})(OptionalVersionedTextDocumentIdentifier || (OptionalVersionedTextDocumentIdentifier = {})); +var TextDocumentItem; +(function(TextDocumentItem2) { + function create(uri, languageId, version, text) { + return { uri, languageId, version, text }; + } + TextDocumentItem2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.integer(candidate.version) && Is.string(candidate.text); + } + TextDocumentItem2.is = is; +})(TextDocumentItem || (TextDocumentItem = {})); +var MarkupKind; +(function(MarkupKind2) { + MarkupKind2.PlainText = "plaintext"; + MarkupKind2.Markdown = "markdown"; +})(MarkupKind || (MarkupKind = {})); +(function(MarkupKind2) { + function is(value) { + var candidate = value; + return candidate === MarkupKind2.PlainText || candidate === MarkupKind2.Markdown; + } + MarkupKind2.is = is; +})(MarkupKind || (MarkupKind = {})); +var MarkupContent; +(function(MarkupContent2) { + function is(value) { + var candidate = value; + return Is.objectLiteral(value) && MarkupKind.is(candidate.kind) && Is.string(candidate.value); + } + MarkupContent2.is = is; +})(MarkupContent || (MarkupContent = {})); +var CompletionItemKind; +(function(CompletionItemKind2) { + CompletionItemKind2.Text = 1; + CompletionItemKind2.Method = 2; + CompletionItemKind2.Function = 3; + CompletionItemKind2.Constructor = 4; + CompletionItemKind2.Field = 5; + CompletionItemKind2.Variable = 6; + CompletionItemKind2.Class = 7; + CompletionItemKind2.Interface = 8; + CompletionItemKind2.Module = 9; + CompletionItemKind2.Property = 10; + CompletionItemKind2.Unit = 11; + CompletionItemKind2.Value = 12; + CompletionItemKind2.Enum = 13; + CompletionItemKind2.Keyword = 14; + CompletionItemKind2.Snippet = 15; + CompletionItemKind2.Color = 16; + CompletionItemKind2.File = 17; + CompletionItemKind2.Reference = 18; + CompletionItemKind2.Folder = 19; + CompletionItemKind2.EnumMember = 20; + CompletionItemKind2.Constant = 21; + CompletionItemKind2.Struct = 22; + CompletionItemKind2.Event = 23; + CompletionItemKind2.Operator = 24; + CompletionItemKind2.TypeParameter = 25; +})(CompletionItemKind || (CompletionItemKind = {})); +var InsertTextFormat; +(function(InsertTextFormat2) { + InsertTextFormat2.PlainText = 1; + InsertTextFormat2.Snippet = 2; +})(InsertTextFormat || (InsertTextFormat = {})); +var CompletionItemTag; +(function(CompletionItemTag2) { + CompletionItemTag2.Deprecated = 1; +})(CompletionItemTag || (CompletionItemTag = {})); +var InsertReplaceEdit; +(function(InsertReplaceEdit2) { + function create(newText, insert, replace) { + return { newText, insert, replace }; + } + InsertReplaceEdit2.create = create; + function is(value) { + var candidate = value; + return candidate && Is.string(candidate.newText) && Range.is(candidate.insert) && Range.is(candidate.replace); + } + InsertReplaceEdit2.is = is; +})(InsertReplaceEdit || (InsertReplaceEdit = {})); +var InsertTextMode; +(function(InsertTextMode2) { + InsertTextMode2.asIs = 1; + InsertTextMode2.adjustIndentation = 2; +})(InsertTextMode || (InsertTextMode = {})); +var CompletionItem; +(function(CompletionItem2) { + function create(label) { + return { label }; + } + CompletionItem2.create = create; +})(CompletionItem || (CompletionItem = {})); +var CompletionList; +(function(CompletionList2) { + function create(items, isIncomplete) { + return { items: items ? items : [], isIncomplete: !!isIncomplete }; + } + CompletionList2.create = create; +})(CompletionList || (CompletionList = {})); +var MarkedString; +(function(MarkedString2) { + function fromPlainText(plainText) { + return plainText.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&"); + } + MarkedString2.fromPlainText = fromPlainText; + function is(value) { + var candidate = value; + return Is.string(candidate) || Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value); + } + MarkedString2.is = is; +})(MarkedString || (MarkedString = {})); +var Hover; +(function(Hover2) { + function is(value) { + var candidate = value; + return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) || MarkedString.is(candidate.contents) || Is.typedArray(candidate.contents, MarkedString.is)) && (value.range === void 0 || Range.is(value.range)); + } + Hover2.is = is; +})(Hover || (Hover = {})); +var ParameterInformation; +(function(ParameterInformation2) { + function create(label, documentation) { + return documentation ? { label, documentation } : { label }; + } + ParameterInformation2.create = create; +})(ParameterInformation || (ParameterInformation = {})); +var SignatureInformation; +(function(SignatureInformation2) { + function create(label, documentation) { + var parameters = []; + for (var _i = 2; _i < arguments.length; _i++) { + parameters[_i - 2] = arguments[_i]; + } + var result = { label }; + if (Is.defined(documentation)) { + result.documentation = documentation; + } + if (Is.defined(parameters)) { + result.parameters = parameters; + } else { + result.parameters = []; + } + return result; + } + SignatureInformation2.create = create; +})(SignatureInformation || (SignatureInformation = {})); +var DocumentHighlightKind; +(function(DocumentHighlightKind2) { + DocumentHighlightKind2.Text = 1; + DocumentHighlightKind2.Read = 2; + DocumentHighlightKind2.Write = 3; +})(DocumentHighlightKind || (DocumentHighlightKind = {})); +var DocumentHighlight; +(function(DocumentHighlight2) { + function create(range, kind) { + var result = { range }; + if (Is.number(kind)) { + result.kind = kind; + } + return result; + } + DocumentHighlight2.create = create; +})(DocumentHighlight || (DocumentHighlight = {})); +var SymbolKind; +(function(SymbolKind2) { + SymbolKind2.File = 1; + SymbolKind2.Module = 2; + SymbolKind2.Namespace = 3; + SymbolKind2.Package = 4; + SymbolKind2.Class = 5; + SymbolKind2.Method = 6; + SymbolKind2.Property = 7; + SymbolKind2.Field = 8; + SymbolKind2.Constructor = 9; + SymbolKind2.Enum = 10; + SymbolKind2.Interface = 11; + SymbolKind2.Function = 12; + SymbolKind2.Variable = 13; + SymbolKind2.Constant = 14; + SymbolKind2.String = 15; + SymbolKind2.Number = 16; + SymbolKind2.Boolean = 17; + SymbolKind2.Array = 18; + SymbolKind2.Object = 19; + SymbolKind2.Key = 20; + SymbolKind2.Null = 21; + SymbolKind2.EnumMember = 22; + SymbolKind2.Struct = 23; + SymbolKind2.Event = 24; + SymbolKind2.Operator = 25; + SymbolKind2.TypeParameter = 26; +})(SymbolKind || (SymbolKind = {})); +var SymbolTag; +(function(SymbolTag2) { + SymbolTag2.Deprecated = 1; +})(SymbolTag || (SymbolTag = {})); +var SymbolInformation; +(function(SymbolInformation2) { + function create(name, kind, range, uri, containerName) { + var result = { + name, + kind, + location: { uri, range } + }; + if (containerName) { + result.containerName = containerName; + } + return result; + } + SymbolInformation2.create = create; +})(SymbolInformation || (SymbolInformation = {})); +var DocumentSymbol; +(function(DocumentSymbol2) { + function create(name, detail, kind, range, selectionRange, children) { + var result = { + name, + detail, + kind, + range, + selectionRange + }; + if (children !== void 0) { + result.children = children; + } + return result; + } + DocumentSymbol2.create = create; + function is(value) { + var candidate = value; + return candidate && Is.string(candidate.name) && Is.number(candidate.kind) && Range.is(candidate.range) && Range.is(candidate.selectionRange) && (candidate.detail === void 0 || Is.string(candidate.detail)) && (candidate.deprecated === void 0 || Is.boolean(candidate.deprecated)) && (candidate.children === void 0 || Array.isArray(candidate.children)) && (candidate.tags === void 0 || Array.isArray(candidate.tags)); + } + DocumentSymbol2.is = is; +})(DocumentSymbol || (DocumentSymbol = {})); +var CodeActionKind; +(function(CodeActionKind2) { + CodeActionKind2.Empty = ""; + CodeActionKind2.QuickFix = "quickfix"; + CodeActionKind2.Refactor = "refactor"; + CodeActionKind2.RefactorExtract = "refactor.extract"; + CodeActionKind2.RefactorInline = "refactor.inline"; + CodeActionKind2.RefactorRewrite = "refactor.rewrite"; + CodeActionKind2.Source = "source"; + CodeActionKind2.SourceOrganizeImports = "source.organizeImports"; + CodeActionKind2.SourceFixAll = "source.fixAll"; +})(CodeActionKind || (CodeActionKind = {})); +var CodeActionContext; +(function(CodeActionContext2) { + function create(diagnostics, only) { + var result = { diagnostics }; + if (only !== void 0 && only !== null) { + result.only = only; + } + return result; + } + CodeActionContext2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.typedArray(candidate.diagnostics, Diagnostic.is) && (candidate.only === void 0 || Is.typedArray(candidate.only, Is.string)); + } + CodeActionContext2.is = is; +})(CodeActionContext || (CodeActionContext = {})); +var CodeAction; +(function(CodeAction2) { + function create(title, kindOrCommandOrEdit, kind) { + var result = { title }; + var checkKind = true; + if (typeof kindOrCommandOrEdit === "string") { + checkKind = false; + result.kind = kindOrCommandOrEdit; + } else if (Command.is(kindOrCommandOrEdit)) { + result.command = kindOrCommandOrEdit; + } else { + result.edit = kindOrCommandOrEdit; + } + if (checkKind && kind !== void 0) { + result.kind = kind; + } + return result; + } + CodeAction2.create = create; + function is(value) { + var candidate = value; + return candidate && Is.string(candidate.title) && (candidate.diagnostics === void 0 || Is.typedArray(candidate.diagnostics, Diagnostic.is)) && (candidate.kind === void 0 || Is.string(candidate.kind)) && (candidate.edit !== void 0 || candidate.command !== void 0) && (candidate.command === void 0 || Command.is(candidate.command)) && (candidate.isPreferred === void 0 || Is.boolean(candidate.isPreferred)) && (candidate.edit === void 0 || WorkspaceEdit.is(candidate.edit)); + } + CodeAction2.is = is; +})(CodeAction || (CodeAction = {})); +var CodeLens; +(function(CodeLens2) { + function create(range, data) { + var result = { range }; + if (Is.defined(data)) { + result.data = data; + } + return result; + } + CodeLens2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.command) || Command.is(candidate.command)); + } + CodeLens2.is = is; +})(CodeLens || (CodeLens = {})); +var FormattingOptions; +(function(FormattingOptions2) { + function create(tabSize, insertSpaces) { + return { tabSize, insertSpaces }; + } + FormattingOptions2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.uinteger(candidate.tabSize) && Is.boolean(candidate.insertSpaces); + } + FormattingOptions2.is = is; +})(FormattingOptions || (FormattingOptions = {})); +var DocumentLink; +(function(DocumentLink2) { + function create(range, target, data) { + return { range, target, data }; + } + DocumentLink2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target)); + } + DocumentLink2.is = is; +})(DocumentLink || (DocumentLink = {})); +var SelectionRange; +(function(SelectionRange2) { + function create(range, parent) { + return { range, parent }; + } + SelectionRange2.create = create; + function is(value) { + var candidate = value; + return candidate !== void 0 && Range.is(candidate.range) && (candidate.parent === void 0 || SelectionRange2.is(candidate.parent)); + } + SelectionRange2.is = is; +})(SelectionRange || (SelectionRange = {})); +var TextDocument; +(function(TextDocument2) { + function create(uri, languageId, version, content) { + return new FullTextDocument(uri, languageId, version, content); + } + TextDocument2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri) && (Is.undefined(candidate.languageId) || Is.string(candidate.languageId)) && Is.uinteger(candidate.lineCount) && Is.func(candidate.getText) && Is.func(candidate.positionAt) && Is.func(candidate.offsetAt) ? true : false; + } + TextDocument2.is = is; + function applyEdits(document, edits) { + var text = document.getText(); + var sortedEdits = mergeSort(edits, function(a, b) { + var diff = a.range.start.line - b.range.start.line; + if (diff === 0) { + return a.range.start.character - b.range.start.character; + } + return diff; + }); + var lastModifiedOffset = text.length; + for (var i = sortedEdits.length - 1; i >= 0; i--) { + var e = sortedEdits[i]; + var startOffset = document.offsetAt(e.range.start); + var endOffset = document.offsetAt(e.range.end); + if (endOffset <= lastModifiedOffset) { + text = text.substring(0, startOffset) + e.newText + text.substring(endOffset, text.length); + } else { + throw new Error("Overlapping edit"); + } + lastModifiedOffset = startOffset; + } + return text; + } + TextDocument2.applyEdits = applyEdits; + function mergeSort(data, compare) { + if (data.length <= 1) { + return data; + } + var p = data.length / 2 | 0; + var left = data.slice(0, p); + var right = data.slice(p); + mergeSort(left, compare); + mergeSort(right, compare); + var leftIdx = 0; + var rightIdx = 0; + var i = 0; + while (leftIdx < left.length && rightIdx < right.length) { + var ret = compare(left[leftIdx], right[rightIdx]); + if (ret <= 0) { + data[i++] = left[leftIdx++]; + } else { + data[i++] = right[rightIdx++]; + } + } + while (leftIdx < left.length) { + data[i++] = left[leftIdx++]; + } + while (rightIdx < right.length) { + data[i++] = right[rightIdx++]; + } + return data; + } +})(TextDocument || (TextDocument = {})); +var FullTextDocument = function() { + function FullTextDocument2(uri, languageId, version, content) { + this._uri = uri; + this._languageId = languageId; + this._version = version; + this._content = content; + this._lineOffsets = void 0; + } + Object.defineProperty(FullTextDocument2.prototype, "uri", { + get: function() { + return this._uri; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(FullTextDocument2.prototype, "languageId", { + get: function() { + return this._languageId; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(FullTextDocument2.prototype, "version", { + get: function() { + return this._version; + }, + enumerable: false, + configurable: true + }); + FullTextDocument2.prototype.getText = function(range) { + if (range) { + var start = this.offsetAt(range.start); + var end = this.offsetAt(range.end); + return this._content.substring(start, end); + } + return this._content; + }; + FullTextDocument2.prototype.update = function(event, version) { + this._content = event.text; + this._version = version; + this._lineOffsets = void 0; + }; + FullTextDocument2.prototype.getLineOffsets = function() { + if (this._lineOffsets === void 0) { + var lineOffsets = []; + var text = this._content; + var isLineStart = true; + for (var i = 0; i < text.length; i++) { + if (isLineStart) { + lineOffsets.push(i); + isLineStart = false; + } + var ch = text.charAt(i); + isLineStart = ch === "\r" || ch === "\n"; + if (ch === "\r" && i + 1 < text.length && text.charAt(i + 1) === "\n") { + i++; + } + } + if (isLineStart && text.length > 0) { + lineOffsets.push(text.length); + } + this._lineOffsets = lineOffsets; + } + return this._lineOffsets; + }; + FullTextDocument2.prototype.positionAt = function(offset) { + offset = Math.max(Math.min(offset, this._content.length), 0); + var lineOffsets = this.getLineOffsets(); + var low = 0, high = lineOffsets.length; + if (high === 0) { + return Position.create(0, offset); + } + while (low < high) { + var mid = Math.floor((low + high) / 2); + if (lineOffsets[mid] > offset) { + high = mid; + } else { + low = mid + 1; + } + } + var line = low - 1; + return Position.create(line, offset - lineOffsets[line]); + }; + FullTextDocument2.prototype.offsetAt = function(position) { + var lineOffsets = this.getLineOffsets(); + if (position.line >= lineOffsets.length) { + return this._content.length; + } else if (position.line < 0) { + return 0; + } + var lineOffset = lineOffsets[position.line]; + var nextLineOffset = position.line + 1 < lineOffsets.length ? lineOffsets[position.line + 1] : this._content.length; + return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset); + }; + Object.defineProperty(FullTextDocument2.prototype, "lineCount", { + get: function() { + return this.getLineOffsets().length; + }, + enumerable: false, + configurable: true + }); + return FullTextDocument2; +}(); +var Is; +(function(Is2) { + var toString = Object.prototype.toString; + function defined(value) { + return typeof value !== "undefined"; + } + Is2.defined = defined; + function undefined2(value) { + return typeof value === "undefined"; + } + Is2.undefined = undefined2; + function boolean(value) { + return value === true || value === false; + } + Is2.boolean = boolean; + function string(value) { + return toString.call(value) === "[object String]"; + } + Is2.string = string; + function number(value) { + return toString.call(value) === "[object Number]"; + } + Is2.number = number; + function numberRange(value, min, max) { + return toString.call(value) === "[object Number]" && min <= value && value <= max; + } + Is2.numberRange = numberRange; + function integer2(value) { + return toString.call(value) === "[object Number]" && -2147483648 <= value && value <= 2147483647; + } + Is2.integer = integer2; + function uinteger2(value) { + return toString.call(value) === "[object Number]" && 0 <= value && value <= 2147483647; + } + Is2.uinteger = uinteger2; + function func(value) { + return toString.call(value) === "[object Function]"; + } + Is2.func = func; + function objectLiteral(value) { + return value !== null && typeof value === "object"; + } + Is2.objectLiteral = objectLiteral; + function typedArray(value, check) { + return Array.isArray(value) && value.every(check); + } + Is2.typedArray = typedArray; +})(Is || (Is = {})); + +// src/language/common/lspLanguageFeatures.ts +var DiagnosticsAdapter = class { + constructor(_languageId, _worker, configChangeEvent) { + this._languageId = _languageId; + this._worker = _worker; + const onModelAdd = (model) => { + let modeId = model.getLanguageId(); + if (modeId !== this._languageId) { + return; + } + let handle; + this._listener[model.uri.toString()] = model.onDidChangeContent(() => { + window.clearTimeout(handle); + handle = window.setTimeout(() => this._doValidate(model.uri, modeId), 500); + }); + this._doValidate(model.uri, modeId); + }; + const onModelRemoved = (model) => { + monaco_editor_core_exports.editor.setModelMarkers(model, this._languageId, []); + let uriStr = model.uri.toString(); + let listener = this._listener[uriStr]; + if (listener) { + listener.dispose(); + delete this._listener[uriStr]; + } + }; + this._disposables.push(monaco_editor_core_exports.editor.onDidCreateModel(onModelAdd)); + this._disposables.push(monaco_editor_core_exports.editor.onWillDisposeModel(onModelRemoved)); + this._disposables.push(monaco_editor_core_exports.editor.onDidChangeModelLanguage((event) => { + onModelRemoved(event.model); + onModelAdd(event.model); + })); + this._disposables.push(configChangeEvent((_) => { + monaco_editor_core_exports.editor.getModels().forEach((model) => { + if (model.getLanguageId() === this._languageId) { + onModelRemoved(model); + onModelAdd(model); + } + }); + })); + this._disposables.push({ + dispose: () => { + monaco_editor_core_exports.editor.getModels().forEach(onModelRemoved); + for (let key in this._listener) { + this._listener[key].dispose(); + } + } + }); + monaco_editor_core_exports.editor.getModels().forEach(onModelAdd); + } + _disposables = []; + _listener = /* @__PURE__ */ Object.create(null); + dispose() { + this._disposables.forEach((d) => d && d.dispose()); + this._disposables.length = 0; + } + _doValidate(resource, languageId) { + this._worker(resource).then((worker) => { + return worker.doValidation(resource.toString()); + }).then((diagnostics) => { + const markers = diagnostics.map((d) => toDiagnostics(resource, d)); + let model = monaco_editor_core_exports.editor.getModel(resource); + if (model && model.getLanguageId() === languageId) { + monaco_editor_core_exports.editor.setModelMarkers(model, languageId, markers); + } + }).then(void 0, (err) => { + console.error(err); + }); + } +}; +function toSeverity(lsSeverity) { + switch (lsSeverity) { + case DiagnosticSeverity.Error: + return monaco_editor_core_exports.MarkerSeverity.Error; + case DiagnosticSeverity.Warning: + return monaco_editor_core_exports.MarkerSeverity.Warning; + case DiagnosticSeverity.Information: + return monaco_editor_core_exports.MarkerSeverity.Info; + case DiagnosticSeverity.Hint: + return monaco_editor_core_exports.MarkerSeverity.Hint; + default: + return monaco_editor_core_exports.MarkerSeverity.Info; + } +} +function toDiagnostics(resource, diag) { + let code = typeof diag.code === "number" ? String(diag.code) : diag.code; + return { + severity: toSeverity(diag.severity), + startLineNumber: diag.range.start.line + 1, + startColumn: diag.range.start.character + 1, + endLineNumber: diag.range.end.line + 1, + endColumn: diag.range.end.character + 1, + message: diag.message, + code, + source: diag.source + }; +} +var CompletionAdapter = class { + constructor(_worker, _triggerCharacters) { + this._worker = _worker; + this._triggerCharacters = _triggerCharacters; + } + get triggerCharacters() { + return this._triggerCharacters; + } + provideCompletionItems(model, position, context, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => { + return worker.doComplete(resource.toString(), fromPosition(position)); + }).then((info) => { + if (!info) { + return; + } + const wordInfo = model.getWordUntilPosition(position); + const wordRange = new monaco_editor_core_exports.Range(position.lineNumber, wordInfo.startColumn, position.lineNumber, wordInfo.endColumn); + const items = info.items.map((entry) => { + const item = { + label: entry.label, + insertText: entry.insertText || entry.label, + sortText: entry.sortText, + filterText: entry.filterText, + documentation: entry.documentation, + detail: entry.detail, + command: toCommand(entry.command), + range: wordRange, + kind: toCompletionItemKind(entry.kind) + }; + if (entry.textEdit) { + if (isInsertReplaceEdit(entry.textEdit)) { + item.range = { + insert: toRange(entry.textEdit.insert), + replace: toRange(entry.textEdit.replace) + }; + } else { + item.range = toRange(entry.textEdit.range); + } + item.insertText = entry.textEdit.newText; + } + if (entry.additionalTextEdits) { + item.additionalTextEdits = entry.additionalTextEdits.map(toTextEdit); + } + if (entry.insertTextFormat === InsertTextFormat.Snippet) { + item.insertTextRules = monaco_editor_core_exports.languages.CompletionItemInsertTextRule.InsertAsSnippet; + } + return item; + }); + return { + isIncomplete: info.isIncomplete, + suggestions: items + }; + }); + } +}; +function fromPosition(position) { + if (!position) { + return void 0; + } + return { character: position.column - 1, line: position.lineNumber - 1 }; +} +function fromRange(range) { + if (!range) { + return void 0; + } + return { + start: { + line: range.startLineNumber - 1, + character: range.startColumn - 1 + }, + end: { line: range.endLineNumber - 1, character: range.endColumn - 1 } + }; +} +function toRange(range) { + if (!range) { + return void 0; + } + return new monaco_editor_core_exports.Range(range.start.line + 1, range.start.character + 1, range.end.line + 1, range.end.character + 1); +} +function isInsertReplaceEdit(edit) { + return typeof edit.insert !== "undefined" && typeof edit.replace !== "undefined"; +} +function toCompletionItemKind(kind) { + const mItemKind = monaco_editor_core_exports.languages.CompletionItemKind; + switch (kind) { + case CompletionItemKind.Text: + return mItemKind.Text; + case CompletionItemKind.Method: + return mItemKind.Method; + case CompletionItemKind.Function: + return mItemKind.Function; + case CompletionItemKind.Constructor: + return mItemKind.Constructor; + case CompletionItemKind.Field: + return mItemKind.Field; + case CompletionItemKind.Variable: + return mItemKind.Variable; + case CompletionItemKind.Class: + return mItemKind.Class; + case CompletionItemKind.Interface: + return mItemKind.Interface; + case CompletionItemKind.Module: + return mItemKind.Module; + case CompletionItemKind.Property: + return mItemKind.Property; + case CompletionItemKind.Unit: + return mItemKind.Unit; + case CompletionItemKind.Value: + return mItemKind.Value; + case CompletionItemKind.Enum: + return mItemKind.Enum; + case CompletionItemKind.Keyword: + return mItemKind.Keyword; + case CompletionItemKind.Snippet: + return mItemKind.Snippet; + case CompletionItemKind.Color: + return mItemKind.Color; + case CompletionItemKind.File: + return mItemKind.File; + case CompletionItemKind.Reference: + return mItemKind.Reference; + } + return mItemKind.Property; +} +function toTextEdit(textEdit) { + if (!textEdit) { + return void 0; + } + return { + range: toRange(textEdit.range), + text: textEdit.newText + }; +} +function toCommand(c) { + return c && c.command === "editor.action.triggerSuggest" ? { id: c.command, title: c.title, arguments: c.arguments } : void 0; +} +var HoverAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideHover(model, position, token) { + let resource = model.uri; + return this._worker(resource).then((worker) => { + return worker.doHover(resource.toString(), fromPosition(position)); + }).then((info) => { + if (!info) { + return; + } + return { + range: toRange(info.range), + contents: toMarkedStringArray(info.contents) + }; + }); + } +}; +function isMarkupContent(thing) { + return thing && typeof thing === "object" && typeof thing.kind === "string"; +} +function toMarkdownString(entry) { + if (typeof entry === "string") { + return { + value: entry + }; + } + if (isMarkupContent(entry)) { + if (entry.kind === "plaintext") { + return { + value: entry.value.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&") + }; + } + return { + value: entry.value + }; + } + return { value: "```" + entry.language + "\n" + entry.value + "\n```\n" }; +} +function toMarkedStringArray(contents) { + if (!contents) { + return void 0; + } + if (Array.isArray(contents)) { + return contents.map(toMarkdownString); + } + return [toMarkdownString(contents)]; +} +var DocumentHighlightAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideDocumentHighlights(model, position, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => worker.findDocumentHighlights(resource.toString(), fromPosition(position))).then((entries) => { + if (!entries) { + return; + } + return entries.map((entry) => { + return { + range: toRange(entry.range), + kind: toDocumentHighlightKind(entry.kind) + }; + }); + }); + } +}; +function toDocumentHighlightKind(kind) { + switch (kind) { + case DocumentHighlightKind.Read: + return monaco_editor_core_exports.languages.DocumentHighlightKind.Read; + case DocumentHighlightKind.Write: + return monaco_editor_core_exports.languages.DocumentHighlightKind.Write; + case DocumentHighlightKind.Text: + return monaco_editor_core_exports.languages.DocumentHighlightKind.Text; + } + return monaco_editor_core_exports.languages.DocumentHighlightKind.Text; +} +var DefinitionAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideDefinition(model, position, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => { + return worker.findDefinition(resource.toString(), fromPosition(position)); + }).then((definition) => { + if (!definition) { + return; + } + return [toLocation(definition)]; + }); + } +}; +function toLocation(location) { + return { + uri: monaco_editor_core_exports.Uri.parse(location.uri), + range: toRange(location.range) + }; +} +var ReferenceAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideReferences(model, position, context, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => { + return worker.findReferences(resource.toString(), fromPosition(position)); + }).then((entries) => { + if (!entries) { + return; + } + return entries.map(toLocation); + }); + } +}; +var RenameAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideRenameEdits(model, position, newName, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => { + return worker.doRename(resource.toString(), fromPosition(position), newName); + }).then((edit) => { + return toWorkspaceEdit(edit); + }); + } +}; +function toWorkspaceEdit(edit) { + if (!edit || !edit.changes) { + return void 0; + } + let resourceEdits = []; + for (let uri in edit.changes) { + const _uri = monaco_editor_core_exports.Uri.parse(uri); + for (let e of edit.changes[uri]) { + resourceEdits.push({ + resource: _uri, + versionId: void 0, + textEdit: { + range: toRange(e.range), + text: e.newText + } + }); + } + } + return { + edits: resourceEdits + }; +} +var DocumentSymbolAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideDocumentSymbols(model, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => worker.findDocumentSymbols(resource.toString())).then((items) => { + if (!items) { + return; + } + return items.map((item) => ({ + name: item.name, + detail: "", + containerName: item.containerName, + kind: toSymbolKind(item.kind), + range: toRange(item.location.range), + selectionRange: toRange(item.location.range), + tags: [] + })); + }); + } +}; +function toSymbolKind(kind) { + let mKind = monaco_editor_core_exports.languages.SymbolKind; + switch (kind) { + case SymbolKind.File: + return mKind.Array; + case SymbolKind.Module: + return mKind.Module; + case SymbolKind.Namespace: + return mKind.Namespace; + case SymbolKind.Package: + return mKind.Package; + case SymbolKind.Class: + return mKind.Class; + case SymbolKind.Method: + return mKind.Method; + case SymbolKind.Property: + return mKind.Property; + case SymbolKind.Field: + return mKind.Field; + case SymbolKind.Constructor: + return mKind.Constructor; + case SymbolKind.Enum: + return mKind.Enum; + case SymbolKind.Interface: + return mKind.Interface; + case SymbolKind.Function: + return mKind.Function; + case SymbolKind.Variable: + return mKind.Variable; + case SymbolKind.Constant: + return mKind.Constant; + case SymbolKind.String: + return mKind.String; + case SymbolKind.Number: + return mKind.Number; + case SymbolKind.Boolean: + return mKind.Boolean; + case SymbolKind.Array: + return mKind.Array; + } + return mKind.Function; +} +var DocumentLinkAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideLinks(model, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => worker.findDocumentLinks(resource.toString())).then((items) => { + if (!items) { + return; + } + return { + links: items.map((item) => ({ + range: toRange(item.range), + url: item.target + })) + }; + }); + } +}; +var DocumentFormattingEditProvider = class { + constructor(_worker) { + this._worker = _worker; + } + provideDocumentFormattingEdits(model, options, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => { + return worker.format(resource.toString(), null, fromFormattingOptions(options)).then((edits) => { + if (!edits || edits.length === 0) { + return; + } + return edits.map(toTextEdit); + }); + }); + } +}; +var DocumentRangeFormattingEditProvider = class { + constructor(_worker) { + this._worker = _worker; + } + provideDocumentRangeFormattingEdits(model, range, options, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => { + return worker.format(resource.toString(), fromRange(range), fromFormattingOptions(options)).then((edits) => { + if (!edits || edits.length === 0) { + return; + } + return edits.map(toTextEdit); + }); + }); + } +}; +function fromFormattingOptions(options) { + return { + tabSize: options.tabSize, + insertSpaces: options.insertSpaces + }; +} +var DocumentColorAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideDocumentColors(model, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => worker.findDocumentColors(resource.toString())).then((infos) => { + if (!infos) { + return; + } + return infos.map((item) => ({ + color: item.color, + range: toRange(item.range) + })); + }); + } + provideColorPresentations(model, info, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => worker.getColorPresentations(resource.toString(), info.color, fromRange(info.range))).then((presentations) => { + if (!presentations) { + return; + } + return presentations.map((presentation) => { + let item = { + label: presentation.label + }; + if (presentation.textEdit) { + item.textEdit = toTextEdit(presentation.textEdit); + } + if (presentation.additionalTextEdits) { + item.additionalTextEdits = presentation.additionalTextEdits.map(toTextEdit); + } + return item; + }); + }); + } +}; +var FoldingRangeAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideFoldingRanges(model, context, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => worker.getFoldingRanges(resource.toString(), context)).then((ranges) => { + if (!ranges) { + return; + } + return ranges.map((range) => { + const result = { + start: range.startLine + 1, + end: range.endLine + 1 + }; + if (typeof range.kind !== "undefined") { + result.kind = toFoldingRangeKind(range.kind); + } + return result; + }); + }); + } +}; +function toFoldingRangeKind(kind) { + switch (kind) { + case FoldingRangeKind.Comment: + return monaco_editor_core_exports.languages.FoldingRangeKind.Comment; + case FoldingRangeKind.Imports: + return monaco_editor_core_exports.languages.FoldingRangeKind.Imports; + case FoldingRangeKind.Region: + return monaco_editor_core_exports.languages.FoldingRangeKind.Region; + } + return void 0; +} +var SelectionRangeAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideSelectionRanges(model, positions, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => worker.getSelectionRanges(resource.toString(), positions.map(fromPosition))).then((selectionRanges) => { + if (!selectionRanges) { + return; + } + return selectionRanges.map((selectionRange) => { + const result = []; + while (selectionRange) { + result.push({ range: toRange(selectionRange.range) }); + selectionRange = selectionRange.parent; + } + return result; + }); + }); + } +}; + +// node_modules/jsonc-parser/lib/esm/impl/scanner.js +function createScanner(text, ignoreTrivia) { + if (ignoreTrivia === void 0) { + ignoreTrivia = false; + } + var len = text.length; + var pos = 0, value = "", tokenOffset = 0, token = 16, lineNumber = 0, lineStartOffset = 0, tokenLineStartOffset = 0, prevTokenLineStartOffset = 0, scanError = 0; + function scanHexDigits(count, exact) { + var digits = 0; + var value2 = 0; + while (digits < count || !exact) { + var ch = text.charCodeAt(pos); + if (ch >= 48 && ch <= 57) { + value2 = value2 * 16 + ch - 48; + } else if (ch >= 65 && ch <= 70) { + value2 = value2 * 16 + ch - 65 + 10; + } else if (ch >= 97 && ch <= 102) { + value2 = value2 * 16 + ch - 97 + 10; + } else { + break; + } + pos++; + digits++; + } + if (digits < count) { + value2 = -1; + } + return value2; + } + function setPosition(newPosition) { + pos = newPosition; + value = ""; + tokenOffset = 0; + token = 16; + scanError = 0; + } + function scanNumber() { + var start = pos; + if (text.charCodeAt(pos) === 48) { + pos++; + } else { + pos++; + while (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + } + } + if (pos < text.length && text.charCodeAt(pos) === 46) { + pos++; + if (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + while (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + } + } else { + scanError = 3; + return text.substring(start, pos); + } + } + var end = pos; + if (pos < text.length && (text.charCodeAt(pos) === 69 || text.charCodeAt(pos) === 101)) { + pos++; + if (pos < text.length && text.charCodeAt(pos) === 43 || text.charCodeAt(pos) === 45) { + pos++; + } + if (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + while (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + } + end = pos; + } else { + scanError = 3; + } + } + return text.substring(start, end); + } + function scanString() { + var result = "", start = pos; + while (true) { + if (pos >= len) { + result += text.substring(start, pos); + scanError = 2; + break; + } + var ch = text.charCodeAt(pos); + if (ch === 34) { + result += text.substring(start, pos); + pos++; + break; + } + if (ch === 92) { + result += text.substring(start, pos); + pos++; + if (pos >= len) { + scanError = 2; + break; + } + var ch2 = text.charCodeAt(pos++); + switch (ch2) { + case 34: + result += '"'; + break; + case 92: + result += "\\"; + break; + case 47: + result += "/"; + break; + case 98: + result += "\b"; + break; + case 102: + result += "\f"; + break; + case 110: + result += "\n"; + break; + case 114: + result += "\r"; + break; + case 116: + result += " "; + break; + case 117: + var ch3 = scanHexDigits(4, true); + if (ch3 >= 0) { + result += String.fromCharCode(ch3); + } else { + scanError = 4; + } + break; + default: + scanError = 5; + } + start = pos; + continue; + } + if (ch >= 0 && ch <= 31) { + if (isLineBreak(ch)) { + result += text.substring(start, pos); + scanError = 2; + break; + } else { + scanError = 6; + } + } + pos++; + } + return result; + } + function scanNext() { + value = ""; + scanError = 0; + tokenOffset = pos; + lineStartOffset = lineNumber; + prevTokenLineStartOffset = tokenLineStartOffset; + if (pos >= len) { + tokenOffset = len; + return token = 17; + } + var code = text.charCodeAt(pos); + if (isWhiteSpace(code)) { + do { + pos++; + value += String.fromCharCode(code); + code = text.charCodeAt(pos); + } while (isWhiteSpace(code)); + return token = 15; + } + if (isLineBreak(code)) { + pos++; + value += String.fromCharCode(code); + if (code === 13 && text.charCodeAt(pos) === 10) { + pos++; + value += "\n"; + } + lineNumber++; + tokenLineStartOffset = pos; + return token = 14; + } + switch (code) { + case 123: + pos++; + return token = 1; + case 125: + pos++; + return token = 2; + case 91: + pos++; + return token = 3; + case 93: + pos++; + return token = 4; + case 58: + pos++; + return token = 6; + case 44: + pos++; + return token = 5; + case 34: + pos++; + value = scanString(); + return token = 10; + case 47: + var start = pos - 1; + if (text.charCodeAt(pos + 1) === 47) { + pos += 2; + while (pos < len) { + if (isLineBreak(text.charCodeAt(pos))) { + break; + } + pos++; + } + value = text.substring(start, pos); + return token = 12; + } + if (text.charCodeAt(pos + 1) === 42) { + pos += 2; + var safeLength = len - 1; + var commentClosed = false; + while (pos < safeLength) { + var ch = text.charCodeAt(pos); + if (ch === 42 && text.charCodeAt(pos + 1) === 47) { + pos += 2; + commentClosed = true; + break; + } + pos++; + if (isLineBreak(ch)) { + if (ch === 13 && text.charCodeAt(pos) === 10) { + pos++; + } + lineNumber++; + tokenLineStartOffset = pos; + } + } + if (!commentClosed) { + pos++; + scanError = 1; + } + value = text.substring(start, pos); + return token = 13; + } + value += String.fromCharCode(code); + pos++; + return token = 16; + case 45: + value += String.fromCharCode(code); + pos++; + if (pos === len || !isDigit(text.charCodeAt(pos))) { + return token = 16; + } + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + value += scanNumber(); + return token = 11; + default: + while (pos < len && isUnknownContentCharacter(code)) { + pos++; + code = text.charCodeAt(pos); + } + if (tokenOffset !== pos) { + value = text.substring(tokenOffset, pos); + switch (value) { + case "true": + return token = 8; + case "false": + return token = 9; + case "null": + return token = 7; + } + return token = 16; + } + value += String.fromCharCode(code); + pos++; + return token = 16; + } + } + function isUnknownContentCharacter(code) { + if (isWhiteSpace(code) || isLineBreak(code)) { + return false; + } + switch (code) { + case 125: + case 93: + case 123: + case 91: + case 34: + case 58: + case 44: + case 47: + return false; + } + return true; + } + function scanNextNonTrivia() { + var result; + do { + result = scanNext(); + } while (result >= 12 && result <= 15); + return result; + } + return { + setPosition, + getPosition: function() { + return pos; + }, + scan: ignoreTrivia ? scanNextNonTrivia : scanNext, + getToken: function() { + return token; + }, + getTokenValue: function() { + return value; + }, + getTokenOffset: function() { + return tokenOffset; + }, + getTokenLength: function() { + return pos - tokenOffset; + }, + getTokenStartLine: function() { + return lineStartOffset; + }, + getTokenStartCharacter: function() { + return tokenOffset - prevTokenLineStartOffset; + }, + getTokenError: function() { + return scanError; + } + }; +} +function isWhiteSpace(ch) { + return ch === 32 || ch === 9 || ch === 11 || ch === 12 || ch === 160 || ch === 5760 || ch >= 8192 && ch <= 8203 || ch === 8239 || ch === 8287 || ch === 12288 || ch === 65279; +} +function isLineBreak(ch) { + return ch === 10 || ch === 13 || ch === 8232 || ch === 8233; +} +function isDigit(ch) { + return ch >= 48 && ch <= 57; +} + +// node_modules/jsonc-parser/lib/esm/impl/parser.js +var ParseOptions; +(function(ParseOptions2) { + ParseOptions2.DEFAULT = { + allowTrailingComma: false + }; +})(ParseOptions || (ParseOptions = {})); + +// node_modules/jsonc-parser/lib/esm/main.js +var createScanner2 = createScanner; + +// src/language/json/tokenization.ts +function createTokenizationSupport(supportComments) { + return { + getInitialState: () => new JSONState(null, null, false, null), + tokenize: (line, state) => tokenize(supportComments, line, state) + }; +} +var TOKEN_DELIM_OBJECT = "delimiter.bracket.json"; +var TOKEN_DELIM_ARRAY = "delimiter.array.json"; +var TOKEN_DELIM_COLON = "delimiter.colon.json"; +var TOKEN_DELIM_COMMA = "delimiter.comma.json"; +var TOKEN_VALUE_BOOLEAN = "keyword.json"; +var TOKEN_VALUE_NULL = "keyword.json"; +var TOKEN_VALUE_STRING = "string.value.json"; +var TOKEN_VALUE_NUMBER = "number.json"; +var TOKEN_PROPERTY_NAME = "string.key.json"; +var TOKEN_COMMENT_BLOCK = "comment.block.json"; +var TOKEN_COMMENT_LINE = "comment.line.json"; +var ParentsStack = class { + constructor(parent, type) { + this.parent = parent; + this.type = type; + } + static pop(parents) { + if (parents) { + return parents.parent; + } + return null; + } + static push(parents, type) { + return new ParentsStack(parents, type); + } + static equals(a, b) { + if (!a && !b) { + return true; + } + if (!a || !b) { + return false; + } + while (a && b) { + if (a === b) { + return true; + } + if (a.type !== b.type) { + return false; + } + a = a.parent; + b = b.parent; + } + return true; + } +}; +var JSONState = class { + _state; + scanError; + lastWasColon; + parents; + constructor(state, scanError, lastWasColon, parents) { + this._state = state; + this.scanError = scanError; + this.lastWasColon = lastWasColon; + this.parents = parents; + } + clone() { + return new JSONState(this._state, this.scanError, this.lastWasColon, this.parents); + } + equals(other) { + if (other === this) { + return true; + } + if (!other || !(other instanceof JSONState)) { + return false; + } + return this.scanError === other.scanError && this.lastWasColon === other.lastWasColon && ParentsStack.equals(this.parents, other.parents); + } + getStateData() { + return this._state; + } + setStateData(state) { + this._state = state; + } +}; +function tokenize(comments, line, state, offsetDelta = 0) { + let numberOfInsertedCharacters = 0; + let adjustOffset = false; + switch (state.scanError) { + case 2 /* UnexpectedEndOfString */: + line = '"' + line; + numberOfInsertedCharacters = 1; + break; + case 1 /* UnexpectedEndOfComment */: + line = "/*" + line; + numberOfInsertedCharacters = 2; + break; + } + const scanner = createScanner2(line); + let lastWasColon = state.lastWasColon; + let parents = state.parents; + const ret = { + tokens: [], + endState: state.clone() + }; + while (true) { + let offset = offsetDelta + scanner.getPosition(); + let type = ""; + const kind = scanner.scan(); + if (kind === 17 /* EOF */) { + break; + } + if (offset === offsetDelta + scanner.getPosition()) { + throw new Error("Scanner did not advance, next 3 characters are: " + line.substr(scanner.getPosition(), 3)); + } + if (adjustOffset) { + offset -= numberOfInsertedCharacters; + } + adjustOffset = numberOfInsertedCharacters > 0; + switch (kind) { + case 1 /* OpenBraceToken */: + parents = ParentsStack.push(parents, 0 /* Object */); + type = TOKEN_DELIM_OBJECT; + lastWasColon = false; + break; + case 2 /* CloseBraceToken */: + parents = ParentsStack.pop(parents); + type = TOKEN_DELIM_OBJECT; + lastWasColon = false; + break; + case 3 /* OpenBracketToken */: + parents = ParentsStack.push(parents, 1 /* Array */); + type = TOKEN_DELIM_ARRAY; + lastWasColon = false; + break; + case 4 /* CloseBracketToken */: + parents = ParentsStack.pop(parents); + type = TOKEN_DELIM_ARRAY; + lastWasColon = false; + break; + case 6 /* ColonToken */: + type = TOKEN_DELIM_COLON; + lastWasColon = true; + break; + case 5 /* CommaToken */: + type = TOKEN_DELIM_COMMA; + lastWasColon = false; + break; + case 8 /* TrueKeyword */: + case 9 /* FalseKeyword */: + type = TOKEN_VALUE_BOOLEAN; + lastWasColon = false; + break; + case 7 /* NullKeyword */: + type = TOKEN_VALUE_NULL; + lastWasColon = false; + break; + case 10 /* StringLiteral */: + const currentParent = parents ? parents.type : 0 /* Object */; + const inArray = currentParent === 1 /* Array */; + type = lastWasColon || inArray ? TOKEN_VALUE_STRING : TOKEN_PROPERTY_NAME; + lastWasColon = false; + break; + case 11 /* NumericLiteral */: + type = TOKEN_VALUE_NUMBER; + lastWasColon = false; + break; + } + if (comments) { + switch (kind) { + case 12 /* LineCommentTrivia */: + type = TOKEN_COMMENT_LINE; + break; + case 13 /* BlockCommentTrivia */: + type = TOKEN_COMMENT_BLOCK; + break; + } + } + ret.endState = new JSONState(state.getStateData(), scanner.getTokenError(), lastWasColon, parents); + ret.tokens.push({ + startIndex: offset, + scopes: type + }); + } + return ret; +} + +// src/language/json/jsonMode.ts +var JSONDiagnosticsAdapter = class extends DiagnosticsAdapter { + constructor(languageId, worker, defaults) { + super(languageId, worker, defaults.onDidChange); + this._disposables.push(monaco_editor_core_exports.editor.onWillDisposeModel((model) => { + this._resetSchema(model.uri); + })); + this._disposables.push(monaco_editor_core_exports.editor.onDidChangeModelLanguage((event) => { + this._resetSchema(event.model.uri); + })); + } + _resetSchema(resource) { + this._worker().then((worker) => { + worker.resetSchema(resource.toString()); + }); + } +}; +function setupMode(defaults) { + const disposables = []; + const providers = []; + const client = new WorkerManager(defaults); + disposables.push(client); + const worker = (...uris) => { + return client.getLanguageServiceWorker(...uris); + }; + function registerProviders() { + const { languageId, modeConfiguration: modeConfiguration2 } = defaults; + disposeAll(providers); + if (modeConfiguration2.documentFormattingEdits) { + providers.push(monaco_editor_core_exports.languages.registerDocumentFormattingEditProvider(languageId, new DocumentFormattingEditProvider(worker))); + } + if (modeConfiguration2.documentRangeFormattingEdits) { + providers.push(monaco_editor_core_exports.languages.registerDocumentRangeFormattingEditProvider(languageId, new DocumentRangeFormattingEditProvider(worker))); + } + if (modeConfiguration2.completionItems) { + providers.push(monaco_editor_core_exports.languages.registerCompletionItemProvider(languageId, new CompletionAdapter(worker, [" ", ":", '"']))); + } + if (modeConfiguration2.hovers) { + providers.push(monaco_editor_core_exports.languages.registerHoverProvider(languageId, new HoverAdapter(worker))); + } + if (modeConfiguration2.documentSymbols) { + providers.push(monaco_editor_core_exports.languages.registerDocumentSymbolProvider(languageId, new DocumentSymbolAdapter(worker))); + } + if (modeConfiguration2.tokens) { + providers.push(monaco_editor_core_exports.languages.setTokensProvider(languageId, createTokenizationSupport(true))); + } + if (modeConfiguration2.colors) { + providers.push(monaco_editor_core_exports.languages.registerColorProvider(languageId, new DocumentColorAdapter(worker))); + } + if (modeConfiguration2.foldingRanges) { + providers.push(monaco_editor_core_exports.languages.registerFoldingRangeProvider(languageId, new FoldingRangeAdapter(worker))); + } + if (modeConfiguration2.diagnostics) { + providers.push(new JSONDiagnosticsAdapter(languageId, worker, defaults)); + } + if (modeConfiguration2.selectionRanges) { + providers.push(monaco_editor_core_exports.languages.registerSelectionRangeProvider(languageId, new SelectionRangeAdapter(worker))); + } + } + registerProviders(); + disposables.push(monaco_editor_core_exports.languages.setLanguageConfiguration(defaults.languageId, richEditConfiguration)); + let modeConfiguration = defaults.modeConfiguration; + defaults.onDidChange((newDefaults) => { + if (newDefaults.modeConfiguration !== modeConfiguration) { + modeConfiguration = newDefaults.modeConfiguration; + registerProviders(); + } + }); + disposables.push(asDisposable(providers)); + return asDisposable(disposables); +} +function asDisposable(disposables) { + return { dispose: () => disposeAll(disposables) }; +} +function disposeAll(disposables) { + while (disposables.length) { + disposables.pop().dispose(); + } +} +var richEditConfiguration = { + wordPattern: /(-?\d*\.\d\w*)|([^\[\{\]\}\:\"\,\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"] + ], + autoClosingPairs: [ + { open: "{", close: "}", notIn: ["string"] }, + { open: "[", close: "]", notIn: ["string"] }, + { open: '"', close: '"', notIn: ["string"] } + ] +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/6686.555ef1a4.js b/assets/js/6686.555ef1a4.js new file mode 100644 index 00000000000..3b8957ad1bf --- /dev/null +++ b/assets/js/6686.555ef1a4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6686],{54949:(e,n,t)=>{t.d(n,{S:()=>a,l:()=>r});var i=t(67294);function a(e){let{version:n}=e;return i.createElement("span",{class:"version added",title:"Added in "+n},"\u2265",n)}function r(e){let{version:n}=e;return i.createElement("span",{class:"version removed",title:"Removed after "+n},"\u2264",n)}},56686:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>s,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var i=t(87462),a=(t(67294),t(3905)),r=(t(45475),t(54949));const o={title:"Variable Declarations",slug:"/lang/variables"},s=void 0,l={unversionedId:"lang/variables",id:"lang/variables",title:"Variable Declarations",description:"When you are declaring a new variable, you may optionally declare its type.",source:"@site/docs/lang/variables.md",sourceDirName:"lang",slug:"/lang/variables",permalink:"/en/docs/lang/variables",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/variables.md",tags:[],version:"current",frontMatter:{title:"Variable Declarations",slug:"/lang/variables"},sidebar:"docsSidebar",previous:{title:"Types & Expressions",permalink:"/en/docs/lang/types-and-expressions"},next:{title:"Subsets & Subtypes",permalink:"/en/docs/lang/subtypes"}},d={},p=[{value:"const",id:"toc-const",level:2},{value:'var and let ',id:"toc-var-and-let",level:2},{value:"Variables initialized at their declarations",id:"toc-variables-initialized-at-their-declarations",level:3},{value:"Variables declared without initializers",id:"toc-variables-declared-without-initializers",level:3},{value:"Variables initialized to null",id:"toc-variables-initialized-to-null",level:3},{value:'Catch variables ',id:"catch-variables-",level:2}],m={toc:p};function c(e){let{components:n,...t}=e;return(0,a.mdx)("wrapper",(0,i.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"When you are declaring a new variable, you may optionally declare its type."),(0,a.mdx)("p",null,"JavaScript has three ways of declaring local variables:"),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("inlineCode",{parentName:"li"},"var")," - declares a variable, optionally assigning a value.\n(",(0,a.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var"},"MDN"),")"),(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("inlineCode",{parentName:"li"},"let")," - declares a block-scoped variable, optionally assigning a value.\n(",(0,a.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let"},"MDN"),")"),(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("inlineCode",{parentName:"li"},"const")," - declares a block-scoped variable, assigning a value that cannot be re-assigned.\n(",(0,a.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const"},"MDN"),")")),(0,a.mdx)("p",null,"In Flow these fall into two groups:"),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("inlineCode",{parentName:"li"},"let")," and ",(0,a.mdx)("inlineCode",{parentName:"li"},"var")," - variables that ",(0,a.mdx)("strong",{parentName:"li"},"can")," be reassigned."),(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("inlineCode",{parentName:"li"},"const")," - variables that ",(0,a.mdx)("strong",{parentName:"li"},"cannot")," be reassigned.")),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":1,"endLine":7,"endColumn":13,"description":"Cannot reassign constant `constVariable` [1]. [reassign-const]"}]','[{"startLine":7,"startColumn":1,"endLine":7,"endColumn":13,"description":"Cannot':!0,reassign:!0,constant:!0,"`constVariable`":!0,"[1].":!0,'[reassign-const]"}]':!0},"var varVariable = 1;\nlet letVariable = 1;\nconst constVariable = 1;\n\nvarVariable = 2; // Works!\nletVariable = 2; // Works!\nconstVariable = 2; // Error!\n")),(0,a.mdx)("h2",{id:"toc-const"},(0,a.mdx)("inlineCode",{parentName:"h2"},"const")),(0,a.mdx)("p",null,"Since a ",(0,a.mdx)("inlineCode",{parentName:"p"},"const")," variable cannot be re-assigned at a later time it is fairly\nsimple."),(0,a.mdx)("p",null,"Flow can either infer the type from the value you are assigning to it or you\ncan provide it with a type."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const foo /* : number */ = 1;\nconst bar: number = 2;\n")),(0,a.mdx)("h2",{id:"toc-var-and-let"},(0,a.mdx)("inlineCode",{parentName:"h2"},"var")," and ",(0,a.mdx)("inlineCode",{parentName:"h2"},"let")," ",(0,a.mdx)(r.S,{version:"0.186",mdxType:"SinceVersion"})),(0,a.mdx)("p",null,"Since ",(0,a.mdx)("inlineCode",{parentName:"p"},"var")," and ",(0,a.mdx)("inlineCode",{parentName:"p"},"let")," can be re-assigned, there's a few more rules you'll need\nto know about."),(0,a.mdx)("p",null,"When you provide a type, you will be able to re-assign the value, but it must\nalways be of a compatible type."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":7,"endLine":3,"endColumn":9,"description":"Cannot assign `\\"3\\"` to `foo` because string [1] is incompatible with number [2]. [incompatible-type]"}]','[{"startLine":3,"startColumn":7,"endLine":3,"endColumn":9,"description":"Cannot':!0,assign:!0,'`\\"3\\"`':!0,to:!0,"`foo`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,'[incompatible-type]"}]':!0},'let foo: number = 1;\nfoo = 2; // Works!\nfoo = "3"; // Error!\n')),(0,a.mdx)("p",null,"When the variable has no annotation, Flow infers a precise type based on\ntheir initializer or initial assignment. All subsequent assignments\nto that variable will be constrained by this type. This section shows some examples\nof how Flow determines what type an unannotated variable is inferred to have."),(0,a.mdx)("p",null,(0,a.mdx)("strong",{parentName:"p"},"If you want a variable to have a different type than what Flow infers for it,\nyou can always add a type annotation to the variable\u2019s declaration. That will\noverride everything discussed in this page!")),(0,a.mdx)("h3",{id:"toc-variables-initialized-at-their-declarations"},"Variables initialized at their declarations"),(0,a.mdx)("p",null,"The common case for unannotated variables is very straightforward: when a\nvariable is declared with an initializer that is not the literal ",(0,a.mdx)("inlineCode",{parentName:"p"},"null"),", that\nvariable will from then on have the type of the initializer, and future writes\nto the variable will be constrained by that type."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":28,"startColumn":11,"endLine":28,"endColumn":33,"description":"Cannot assign `\'Our new pr...\'` to `product` because string [1] is incompatible with number [2]. All writes to `product` must be compatible with the type of its initializer [3]. Add an annotation to `product` [3] if a different type is desired. [incompatible-type]"},{"startLine":29,"startColumn":13,"endLine":29,"endColumn":65,"description":"Cannot assign function to `Component` because property `extra_prop` is missing in object type [1] but exists in object type [2] in the first parameter. All writes to `Component` must be compatible with the type of its initializer [3]. Add an annotation to `Component` [3] if a different type is desired. [prop-missing]"},{"startLine":30,"startColumn":11,"endLine":30,"endColumn":45,"description":"Cannot assign `` to `element` because property `extra_prop` is missing in object type [1] but exists in object type [2] in type argument `P` [3]. All writes to `element` must be compatible with the type of its initializer [4]. Add an annotation to `element` [4] if a different type is desired. [prop-missing]"},{"startLine":30,"startColumn":12,"endLine":30,"endColumn":25,"description":"Cannot assign `` to `element` because property `extra_prop` is missing in object type [1] but exists in object type [2] in the first parameter of type argument `ElementType` [3]. All writes to `element` must be compatible with the type of its initializer [4]. Add an annotation to `element` [4] if a different type is desired. [prop-missing]"}]','[{"startLine":28,"startColumn":11,"endLine":28,"endColumn":33,"description":"Cannot':!0,assign:!0,"`'Our":!0,new:!0,"pr...'`":!0,to:!0,"`product`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,All:!0,writes:!0,must:!0,be:!0,compatible:!0,the:!0,type:!0,of:!0,its:!0,initializer:!0,"[3].":!0,Add:!0,an:!0,annotation:!0,"[3]":!0,if:!0,a:!0,different:!0,"desired.":!0,'[incompatible-type]"},{"startLine":29,"startColumn":13,"endLine":29,"endColumn":65,"description":"Cannot':!0,function:!0,"`Component`":!0,property:!0,"`extra_prop`":!0,missing:!0,in:!0,object:!0,but:!0,exists:!0,"[2]":!0,first:!0,"parameter.":!0,'[prop-missing]"},{"startLine":30,"startColumn":11,"endLine":30,"endColumn":45,"description":"Cannot':!0,"``":!0,"`element`":!0,argument:!0,"`P`":!0,"[4].":!0,"[4]":!0,'[prop-missing]"},{"startLine":30,"startColumn":12,"endLine":30,"endColumn":25,"description":"Cannot':!0,parameter:!0,"`ElementType`":!0,'[prop-missing]"}]':!0},"import * as React from 'react';\n\ntype Props = $ReadOnly<{ prop: string }>;\n\ndeclare var x: number;\ndeclare var y: number;\ndeclare var props: Props;\n\nlet product = Math.sqrt(x) + y;\n// `product` has type `number`\n\nlet Component = ({prop}: Props): React.Node => { return
}\n// `Component` has type`React.ComponentType`\n\nlet element = \n// `element` has type `React.Element>`\n\n/* Let's define a new component */\n\ntype OtherProps = $ReadOnly<{ ...Props, extra_prop: number }>;\ndeclare var OtherComponent: (OtherProps) => React.Node;\ndeclare var other_props: OtherProps\n\n/* Any subsequent assignments to `product`, `Component`, or `element` will be\n * checked against the types that Flow infers for the initializers, and if\n * conflicting types are assigned, Flow will signal an error. */\n\nproduct = \"Our new product is...\";\nComponent = ({prop}: OtherProps): React.Node => { return
};\nelement = ;\n")),(0,a.mdx)("p",null,"If you want these examples to typecheck, and for Flow to realize that different\nkinds of values can be written to these variables, you must add a type\nannotation reflecting this more general type to their declarations:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"let product: number | string = ...\nlet Component: mixed = ... // No good type to represent this! Consider restructuring\nlet element: React.Node = ...\n")),(0,a.mdx)("h3",{id:"toc-variables-declared-without-initializers"},"Variables declared without initializers"),(0,a.mdx)("p",null,'Often variables are declared without initializers. In such cases, Flow will try\nto choose the "first" assignment or assignments to the variable to define its\ntype. "First" here means both top-to-bottom and nearer-scope to\ndeeper-scope\u2014we\u2019ll try to choose an assignment that happens in the same function\nscope as the variable\u2019s declaration, and only look inside nested functions if we\ndon\u2019t find any assignments locally:'),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":22,"endLine":3,"endColumn":23,"description":"Cannot assign `42` to `topLevelAssigned` because number [1] is incompatible with string [2]. All writes to `topLevelAssigned` must be compatible with the type of its initial assignment [3]. Add an annotation to `topLevelAssigned` [4] if a different type is desired. [incompatible-type]"},{"startLine":6,"startColumn":20,"endLine":6,"endColumn":23,"description":"Cannot assign `true` to `topLevelAssigned` because boolean [1] is incompatible with string [2]. All writes to `topLevelAssigned` must be compatible with the type of its initial assignment [3]. Add an annotation to `topLevelAssigned` [4] if a different type is desired. [incompatible-type]"}]','[{"startLine":3,"startColumn":22,"endLine":3,"endColumn":23,"description":"Cannot':!0,assign:!0,"`42`":!0,to:!0,"`topLevelAssigned`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,string:!0,"[2].":!0,All:!0,writes:!0,must:!0,be:!0,compatible:!0,the:!0,type:!0,of:!0,its:!0,initial:!0,assignment:!0,"[3].":!0,Add:!0,an:!0,annotation:!0,"[4]":!0,if:!0,a:!0,different:!0,"desired.":!0,'[incompatible-type]"},{"startLine":6,"startColumn":20,"endLine":6,"endColumn":23,"description":"Cannot':!0,"`true`":!0,boolean:!0,'[incompatible-type]"}]':!0},'let topLevelAssigned;\nfunction helper() {\n topLevelAssigned = 42; // Error: `topLevelAssigned` has type `string`\n}\ntopLevelAssigned = "Hello world"; // This write determines the var\'s type\ntopLevelAssigned = true; // Error: `topLevelAssigned` has type `string`\n')),(0,a.mdx)("p",null,'If there are two or more possible "first assignments," due to an ',(0,a.mdx)("inlineCode",{parentName:"p"},"if"),"- or\n",(0,a.mdx)("inlineCode",{parentName:"p"},"switch"),"-statement, they\u2019ll both count\u2014this is one of the few ways that Flow\nwill still infer unions for variable types:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":10,"startColumn":20,"endLine":10,"endColumn":24,"description":"Cannot assign `false` to `myNumberOrString` because: [incompatible-type] Either boolean [1] is incompatible with number [2]. Or boolean [1] is incompatible with string [3]. \\nAll writes to `myNumberOrString` must be compatible with the type of one of its initial assignments [4], [5]. Add an annotation to `myNumberOrString` [6] if a different type is desired."}]','[{"startLine":10,"startColumn":20,"endLine":10,"endColumn":24,"description":"Cannot':!0,assign:!0,"`false`":!0,to:!0,"`myNumberOrString`":!0,"because:":!0,"[incompatible-type]":!0,Either:!0,boolean:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,Or:!0,string:!0,"[3].":!0,"\\nAll":!0,writes:!0,must:!0,be:!0,compatible:!0,the:!0,type:!0,of:!0,one:!0,its:!0,initial:!0,assignments:!0,"[4],":!0,"[5].":!0,Add:!0,an:!0,annotation:!0,"[6]":!0,if:!0,a:!0,different:!0,'desired."}]':!0},'let myNumberOrString;\ndeclare var condition: boolean;\nif (condition) {\n myNumberOrString = 42; // Determines type\n} else {\n myNumberOrString = "Hello world"; // Determines type\n}\nmyNumberOrString = 21; // fine, compatible with type\nmyNumberOrString = "Goodbye"; // fine, compatible with type\nmyNumberOrString = false; // Error: `myNumberOrString` has type `number | string`\n')),(0,a.mdx)("p",null,"This only applies when the variable is written to in both branches, however. If\nonly one branch contains a write, that write becomes the type of the variable\nafterwards (though Flow will still check to make sure that the variable is\ndefinitely initialized):"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":19,"endLine":6,"endColumn":29,"description":"Cannot call `oneBranchAssigned.toUpperCase` because property `toUpperCase` is missing in possibly uninitialized variable [1]. [incompatible-use]"},{"startLine":7,"startColumn":21,"endLine":7,"endColumn":22,"description":"Cannot assign `42` to `oneBranchAssigned` because number [1] is incompatible with string [2]. All writes to `oneBranchAssigned` must be compatible with the type of its initial assignment [3]. Add an annotation to `oneBranchAssigned` [4] if a different type is desired. [incompatible-type]"}]','[{"startLine":6,"startColumn":19,"endLine":6,"endColumn":29,"description":"Cannot':!0,call:!0,"`oneBranchAssigned.toUpperCase`":!0,because:!0,property:!0,"`toUpperCase`":!0,is:!0,missing:!0,in:!0,possibly:!0,uninitialized:!0,variable:!0,"[1].":!0,'[incompatible-use]"},{"startLine":7,"startColumn":21,"endLine":7,"endColumn":22,"description":"Cannot':!0,assign:!0,"`42`":!0,to:!0,"`oneBranchAssigned`":!0,number:!0,"[1]":!0,incompatible:!0,with:!0,string:!0,"[2].":!0,All:!0,writes:!0,must:!0,be:!0,compatible:!0,the:!0,type:!0,of:!0,its:!0,initial:!0,assignment:!0,"[3].":!0,Add:!0,an:!0,annotation:!0,"[4]":!0,if:!0,a:!0,different:!0,"desired.":!0,'[incompatible-type]"}]':!0},'let oneBranchAssigned;\ndeclare var condition: boolean;\nif (condition) {\n oneBranchAssigned = "Hello world!";\n}\noneBranchAssigned.toUpperCase(); // Error: `oneBranchAssigned` may be uninitialized\noneBranchAssigned = 42; // Error: `oneBranchAssigned` has type `string`\n')),(0,a.mdx)("h3",{id:"toc-variables-initialized-to-null"},"Variables initialized to ",(0,a.mdx)("inlineCode",{parentName:"h3"},"null")),(0,a.mdx)("p",null,"Finally, the one exception to the general principle that variable\u2019s types are\ndetermined by their first assignment(s) is when a variable is initialized as (or\nwhose first assignment is) the literal value ",(0,a.mdx)("inlineCode",{parentName:"p"},"null"),". In such cases, the ",(0,a.mdx)("em",{parentName:"p"},"next"),"\nnon-null assignment (using the same rules as above) determines the rest of the\nvariable\u2019s type, and the overall type of the variable becomes a union of ",(0,a.mdx)("inlineCode",{parentName:"p"},"null"),"\nand the type of the subsequent assignment. This supports the common pattern\nwhere a variable starts off as ",(0,a.mdx)("inlineCode",{parentName:"p"},"null")," before getting assigned by a value of some\nother type:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function findIDValue(dict: {[key: string]: T}): T {\n let idVal = null; // initialized as `null`\n for (const key in dict) {\n if (key === 'ID') {\n idVal = dict[key]; // Infer that `idVal` has type `null | T`\n }\n }\n if (idVal === null) {\n throw new Error(\"No entry for ID!\");\n }\n return idVal;\n}\n")),(0,a.mdx)("h2",{id:"catch-variables-"},"Catch variables ",(0,a.mdx)(r.S,{version:"0.197",mdxType:"SinceVersion"})),(0,a.mdx)("p",null,"If a ",(0,a.mdx)("inlineCode",{parentName:"p"},"catch")," variable does not have an annotation, its default type is ",(0,a.mdx)("a",{parentName:"p",href:"../../types/any"},(0,a.mdx)("inlineCode",{parentName:"a"},"any")),"."),(0,a.mdx)("p",null,"You can optionally annotate it with exactly ",(0,a.mdx)("a",{parentName:"p",href:"../../types/mixed"},(0,a.mdx)("inlineCode",{parentName:"a"},"mixed"))," or ",(0,a.mdx)("inlineCode",{parentName:"p"},"any"),". E.g."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"try {\n} catch (e: mixed) {\n if (e instanceof TypeError) {\n (e: TypeError); // OK\n } else if (e instanceof Error) {\n (e: Error); // OK\n } else {\n throw e;\n }\n}\n")),(0,a.mdx)("p",null,"By using ",(0,a.mdx)("inlineCode",{parentName:"p"},"mixed"),", you can improve your safety and Flow ",(0,a.mdx)("a",{parentName:"p",href:"../../cli/coverage/"},"coverage"),",\nat the trade-off of increased runtime checks."),(0,a.mdx)("p",null,"You can change the default type of ",(0,a.mdx)("inlineCode",{parentName:"p"},"catch")," variables when there is no annotation by setting the ",(0,a.mdx)("a",{parentName:"p",href:"../../config/options/#toc-use-mixed-in-catch-variables"},(0,a.mdx)("inlineCode",{parentName:"a"},"use_mixed_in_catch_variables"))," option to true."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6717.338ea325.js b/assets/js/6717.338ea325.js new file mode 100644 index 00000000000..72af9d2a314 --- /dev/null +++ b/assets/js/6717.338ea325.js @@ -0,0 +1,358 @@ +"use strict"; +exports.id = 6717; +exports.ids = [6717]; +exports.modules = { + +/***/ 96717: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38139); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/basic-languages/typescript/typescript.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + onEnterRules: [ + { + beforeText: /^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/, + afterText: /^\s*\*\/$/, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent, + appendText: " * " + } + }, + { + beforeText: /^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.None, + appendText: " * " + } + }, + { + beforeText: /^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.None, + appendText: "* " + } + }, + { + beforeText: /^(\t|(\ \ ))*\ \*\/\s*$/, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.None, + removeText: 1 + } + } + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: "`", close: "`", notIn: ["string", "comment"] }, + { open: "/**", close: " */", notIn: ["string"] } + ], + folding: { + markers: { + start: new RegExp("^\\s*//\\s*#?region\\b"), + end: new RegExp("^\\s*//\\s*#?endregion\\b") + } + } +}; +var language = { + defaultToken: "invalid", + tokenPostfix: ".ts", + keywords: [ + "abstract", + "any", + "as", + "asserts", + "bigint", + "boolean", + "break", + "case", + "catch", + "class", + "continue", + "const", + "constructor", + "debugger", + "declare", + "default", + "delete", + "do", + "else", + "enum", + "export", + "extends", + "false", + "finally", + "for", + "from", + "function", + "get", + "if", + "implements", + "import", + "in", + "infer", + "instanceof", + "interface", + "is", + "keyof", + "let", + "module", + "namespace", + "never", + "new", + "null", + "number", + "object", + "out", + "package", + "private", + "protected", + "public", + "override", + "readonly", + "require", + "global", + "return", + "set", + "static", + "string", + "super", + "switch", + "symbol", + "this", + "throw", + "true", + "try", + "type", + "typeof", + "undefined", + "unique", + "unknown", + "var", + "void", + "while", + "with", + "yield", + "async", + "await", + "of" + ], + operators: [ + "<=", + ">=", + "==", + "!=", + "===", + "!==", + "=>", + "+", + "-", + "**", + "*", + "/", + "%", + "++", + "--", + "<<", + ">", + ">>>", + "&", + "|", + "^", + "!", + "~", + "&&", + "||", + "??", + "?", + ":", + "=", + "+=", + "-=", + "*=", + "**=", + "/=", + "%=", + "<<=", + ">>=", + ">>>=", + "&=", + "|=", + "^=", + "@" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [/!(?=([^=]|$))/, "delimiter"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/(@digits)[eE]([\-+]?(@digits))?/, "number.float"], + [/(@digits)\.(@digits)([eE][\-+]?(@digits))?/, "number.float"], + [/0[xX](@hexdigits)n?/, "number.hex"], + [/0[oO]?(@octaldigits)n?/, "number.octal"], + [/0[bB](@binarydigits)n?/, "number.binary"], + [/(@digits)n?/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string_double"], + [/'/, "string", "@string_single"], + [/`/, "string", "@string_backtick"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@jsdoc"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + jsdoc: [ + [/[^\/*]+/, "comment.doc"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + regexp: [ + [ + /(\{)(\d+(?:,\d*)?)(\})/, + ["regexp.escape.control", "regexp.escape.control", "regexp.escape.control"] + ], + [ + /(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/, + ["regexp.escape.control", { token: "regexp.escape.control", next: "@regexrange" }] + ], + [/(\()(\?:|\?=|\?!)/, ["regexp.escape.control", "regexp.escape.control"]], + [/[()]/, "regexp.escape.control"], + [/@regexpctl/, "regexp.escape.control"], + [/[^\\\/]/, "regexp"], + [/@regexpesc/, "regexp.escape"], + [/\\\./, "regexp.invalid"], + [/(\/)([dgimsuy]*)/, [{ token: "regexp", bracket: "@close", next: "@pop" }, "keyword.other"]] + ], + regexrange: [ + [/-/, "regexp.escape.control"], + [/\^/, "regexp.invalid"], + [/@regexpesc/, "regexp.escape"], + [/[^\]]/, "regexp"], + [ + /\]/, + { + token: "regexp.escape.control", + next: "@pop", + bracket: "@close" + } + ] + ], + string_double: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ], + string_single: [ + [/[^\\']+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/'/, "string", "@pop"] + ], + string_backtick: [ + [/\$\{/, { token: "delimiter.bracket", next: "@bracketCounting" }], + [/[^\\`$]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/`/, "string", "@pop"] + ], + bracketCounting: [ + [/\{/, "delimiter.bracket", "@bracketCounting"], + [/\}/, "delimiter.bracket", "@pop"], + { include: "common" } + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/6717.86d17675.js b/assets/js/6717.86d17675.js new file mode 100644 index 00000000000..22bbf56ed8d --- /dev/null +++ b/assets/js/6717.86d17675.js @@ -0,0 +1,2 @@ +/*! For license information please see 6717.86d17675.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6717],{96717:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>d,language:()=>m});var o,r,i=n(38139),s=Object.defineProperty,c=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,p=Object.prototype.hasOwnProperty,g=(e,t,n,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of a(t))p.call(e,r)||r===n||s(e,r,{get:()=>t[r],enumerable:!(o=c(t,r))||o.enumerable});return e},l={};g(l,o=i,"default"),r&&g(r,o,"default");var d={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:l.languages.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:l.languages.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:l.languages.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:l.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},m={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","out","package","private","protected","public","override","readonly","require","global","return","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<",">",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([dgimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}}}}]); \ No newline at end of file diff --git a/assets/js/6717.86d17675.js.LICENSE.txt b/assets/js/6717.86d17675.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/6717.86d17675.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/6778.a7f9f534.js b/assets/js/6778.a7f9f534.js new file mode 100644 index 00000000000..c745c5583c1 --- /dev/null +++ b/assets/js/6778.a7f9f534.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6778],{16778:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>m,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>s});var n=o(87462),a=(o(67294),o(3905));const r={title:"Improvements to Flow in 2019","short-title":"Improvements to Flow in 2019",author:"Andrew Pardoe","medium-link":"https://medium.com/flow-type/improvements-to-flow-in-2019-c8378e7aa007"},m=void 0,i={permalink:"/blog/2020/02/19/Improvements-to-Flow-in-2019",source:"@site/blog/2020-02-19-Improvements-to-Flow-in-2019.md",title:"Improvements to Flow in 2019",description:"Take a look back at improvements we made to Flow in 2019.",date:"2020-02-19T00:00:00.000Z",formattedDate:"February 19, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Andrew Pardoe"}],frontMatter:{title:"Improvements to Flow in 2019","short-title":"Improvements to Flow in 2019",author:"Andrew Pardoe","medium-link":"https://medium.com/flow-type/improvements-to-flow-in-2019-c8378e7aa007"},prevItem:{title:"What we\u2019re building in 2020",permalink:"/blog/2020/03/09/What-were-building-in-2020"},nextItem:{title:"How to upgrade to exact-by-default object type syntax",permalink:"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax"}},l={authorsImageUrls:[void 0]},s=[],p={toc:s};function d(e){let{components:t,...o}=e;return(0,a.mdx)("wrapper",(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Take a look back at improvements we made to Flow in 2019."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6780.e538d469.js b/assets/js/6780.e538d469.js new file mode 100644 index 00000000000..b857753c90e --- /dev/null +++ b/assets/js/6780.e538d469.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6780],{76780:(e,t,r)=>{function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t,r){var a,c=t.initialState;return{getState:function(){return c},dispatch:function(a,i){var l=function(e){for(var t=1;tDr});var f=0;var m=function(){};function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function d(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function h(e,t){var r=[];return Promise.resolve(e(t)).then((function(e){return Array.isArray(e),Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,r.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));r.push(e.sourceId);var t=function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var J,$,W,Q=null,Y=(J=-1,$=-1,W=void 0,function(e){var t=++J;return Promise.resolve(e).then((function(e){return W&&t<$?W:($=t,W=e,e)}))});function G(e){var t=e.event,r=e.nextState,n=void 0===r?{}:r,o=e.props,a=e.query,i=e.refresh,l=e.store,u=K(e,U);Q&&o.environment.clearTimeout(Q);var s=u.setCollections,f=u.setIsOpen,m=u.setQuery,p=u.setActiveItemId,d=u.setStatus;if(m(a),p(o.defaultActiveItemId),!a&&!1===o.openOnFocus){var h,v=l.getState().collections.map((function(e){return V(V({},e),{},{items:[]})}));d("idle"),s(v),f(null!==(h=n.isOpen)&&void 0!==h?h:o.shouldPanelOpen({state:l.getState()}));var y=M(Y(v).then((function(){return Promise.resolve()})));return l.pendingRequests.add(y)}d("loading"),Q=o.environment.setTimeout((function(){d("stalled")}),o.stallThreshold);var g=M(Y(o.getSources(V({query:a,refresh:i,state:l.getState()},u)).then((function(e){return Promise.all(e.map((function(e){return Promise.resolve(e.getItems(V({query:a,refresh:i,state:l.getState()},u))).then((function(t){return R(t,e.sourceId)}))}))).then(q).then((function(t){return _(t,e)})).then((function(e){return function(e){var t=e.collections,r=e.props,n=e.state,o=t.reduce((function(e,t){return j(j({},e),{},E({},t.source.sourceId,j(j({},t.source),{},{getItems:function(){return c(t.items)}})))}),{});return c(r.reshape({sources:Object.values(o),sourcesBySourceId:o,state:n})).filter(Boolean).map((function(e){return{source:e,items:e.getItems()}}))}({collections:e,props:o,state:l.getState()})}))})))).then((function(e){var r;d("idle"),s(e);var c=o.shouldPanelOpen({state:l.getState()});f(null!==(r=n.isOpen)&&void 0!==r?r:o.openOnFocus&&!a&&c||c);var m=F(l.getState());if(null!==l.getState().activeItemId&&m){var p=m.item,h=m.itemInputValue,v=m.itemUrl,y=m.source;y.onActive(V({event:t,item:p,itemInputValue:h,itemUrl:v,refresh:i,source:y,state:l.getState()},u))}})).finally((function(){d("idle"),Q&&o.environment.clearTimeout(Q)}));return l.pendingRequests.add(g)}var X=["event","props","refresh","store"];function Z(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ee(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var ne=/((gt|sm)-|galaxy nexus)|samsung[- ]/i;var oe=["props","refresh","store"],ae=["inputElement","formElement","panelElement"],ce=["inputElement"],ie=["inputElement","maxLength"],le=["item","source"];function ue(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function se(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function pe(e){var t=e.props,r=e.refresh,n=e.store,o=me(e,oe);return{getEnvironmentProps:function(e){var r=e.inputElement,o=e.formElement,a=e.panelElement;function c(e){!n.getState().isOpen&&n.pendingRequests.isEmpty()||e.target===r||!1===[o,a].some((function(t){return r=t,n=e.target,r===n||r.contains(n);var r,n}))&&(n.dispatch("blur",null),t.debug||n.pendingRequests.cancelAll())}return se({onTouchStart:c,onMouseDown:c,onTouchMove:function(e){!1!==n.getState().isOpen&&r===t.environment.document.activeElement&&e.target!==r&&r.blur()}},me(e,ae))},getRootProps:function(e){return se({role:"combobox","aria-expanded":n.getState().isOpen,"aria-haspopup":"listbox","aria-owns":n.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){e.inputElement;return se({action:"",noValidate:!0,role:"search",onSubmit:function(a){var c;a.preventDefault(),t.onSubmit(se({event:a,refresh:r,state:n.getState()},o)),n.dispatch("submit",null),null===(c=e.inputElement)||void 0===c||c.blur()},onReset:function(a){var c;a.preventDefault(),t.onReset(se({event:a,refresh:r,state:n.getState()},o)),n.dispatch("reset",null),null===(c=e.inputElement)||void 0===c||c.focus()}},me(e,ce))},getLabelProps:function(e){return se({htmlFor:"".concat(t.id,"-input"),id:"".concat(t.id,"-label")},e)},getInputProps:function(e){var a;function c(e){(t.openOnFocus||Boolean(n.getState().query))&&G(se({event:e,props:t,query:n.getState().completion||n.getState().query,refresh:r,store:n},o)),n.dispatch("focus",null)}var i=e||{},l=(i.inputElement,i.maxLength),u=void 0===l?512:l,s=me(i,ie),f=F(n.getState()),p=function(e){return Boolean(e&&e.match(ne))}((null===(a=t.environment.navigator)||void 0===a?void 0:a.userAgent)||""),d=null!=f&&f.itemUrl&&!p?"go":"search";return se({"aria-autocomplete":"both","aria-activedescendant":n.getState().isOpen&&null!==n.getState().activeItemId?"".concat(t.id,"-item-").concat(n.getState().activeItemId):void 0,"aria-controls":n.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:n.getState().completion||n.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:d,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:u,type:"search",onChange:function(e){G(se({event:e,props:t,query:e.currentTarget.value.slice(0,u),refresh:r,store:n},o))},onKeyDown:function(e){!function(e){var t=e.event,r=e.props,n=e.refresh,o=e.store,a=re(e,X);if("ArrowUp"===t.key||"ArrowDown"===t.key){var c=function(){var e=r.environment.document.getElementById("".concat(r.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},i=function(){var e=F(o.getState());if(null!==o.getState().activeItemId&&e){var r=e.item,c=e.itemInputValue,i=e.itemUrl,l=e.source;l.onActive(ee({event:t,item:r,itemInputValue:c,itemUrl:i,refresh:n,source:l,state:o.getState()},a))}};t.preventDefault(),!1===o.getState().isOpen&&(r.openOnFocus||Boolean(o.getState().query))?G(ee({event:t,props:r,query:o.getState().query,refresh:n,store:o},a)).then((function(){o.dispatch(t.key,{nextActiveItemId:r.defaultActiveItemId}),i(),setTimeout(c,0)})):(o.dispatch(t.key,{}),i(),c())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(r.debug||o.pendingRequests.cancelAll());t.preventDefault();var l=F(o.getState()),u=l.item,s=l.itemInputValue,f=l.itemUrl,m=l.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(m.onSelect(ee({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},a)),r.navigator.navigateNewTab({itemUrl:f,item:u,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(m.onSelect(ee({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},a)),r.navigator.navigateNewWindow({itemUrl:f,item:u,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return m.onSelect(ee({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},a)),void r.navigator.navigate({itemUrl:f,item:u,state:o.getState()});G(ee({event:t,nextState:{isOpen:!1},props:r,query:s,refresh:n,store:o},a)).then((function(){m.onSelect(ee({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},a))}))}}}(se({event:e,props:t,refresh:r,store:n},o))},onFocus:c,onBlur:m,onClick:function(r){e.inputElement!==t.environment.document.activeElement||n.getState().isOpen||c(r)}},s)},getPanelProps:function(e){return se({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){n.dispatch("mouseleave",null)}},e)},getListProps:function(e){return se({role:"listbox","aria-labelledby":"".concat(t.id,"-label"),id:"".concat(t.id,"-list")},e)},getItemProps:function(e){var a=e.item,c=e.source,i=me(e,le);return se({id:"".concat(t.id,"-item-").concat(a.__autocomplete_id),role:"option","aria-selected":n.getState().activeItemId===a.__autocomplete_id,onMouseMove:function(e){if(a.__autocomplete_id!==n.getState().activeItemId){n.dispatch("mousemove",a.__autocomplete_id);var t=F(n.getState());if(null!==n.getState().activeItemId&&t){var c=t.item,i=t.itemInputValue,l=t.itemUrl,u=t.source;u.onActive(se({event:e,item:c,itemInputValue:i,itemUrl:l,refresh:r,source:u,state:n.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var i=c.getItemInputValue({item:a,state:n.getState()}),l=c.getItemUrl({item:a,state:n.getState()});(l?Promise.resolve():G(se({event:e,nextState:{isOpen:!1},props:t,query:i,refresh:r,store:n},o))).then((function(){c.onSelect(se({event:e,item:a,itemInputValue:i,itemUrl:l,refresh:r,source:c,state:n.getState()},o))}))}},i)}}}var de=[{segment:"autocomplete-core",version:"1.7.1"}];function he(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ve(e){for(var t=1;t=r?null===n?null:0:o}function Se(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function je(e){for(var t=1;t0},reshape:function(e){return e.sources}},e),{},{id:null!==(r=e.id)&&void 0!==r?r:"autocomplete-".concat(f++),plugins:o,initialState:b({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var r;null===(r=e.onStateChange)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onStateChange)||void 0===r?void 0:r.call(e,t)}))},onSubmit:function(t){var r;null===(r=e.onSubmit)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onSubmit)||void 0===r?void 0:r.call(e,t)}))},onReset:function(t){var r;null===(r=e.onReset)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onReset)||void 0===r?void 0:r.call(e,t)}))},getSources:function(r){return Promise.all([].concat(v(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return h(e,r)}))).then((function(e){return c(e)})).then((function(e){return e.map((function(e){return b(b({},e),{},{onSelect:function(r){e.onSelect(r),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,r)}))},onActive:function(r){e.onActive(r),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,r)}))}})}))}))},navigator:b({navigate:function(e){var t=e.itemUrl;n.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,r=n.open(t,"_blank","noopener");null==r||r.focus()},navigateNewWindow:function(e){var t=e.itemUrl;n.open(t,"_blank","noopener")}},e.navigator)})}(e,t),n=a(we,r,(function(e){var t=e.prevState,n=e.state;r.onStateChange(Ie({prevState:t,state:n,refresh:u},o))})),o=function(e){var t=e.store;return{setActiveItemId:function(e){t.dispatch("setActiveItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var r=0,n=e.map((function(e){return l(l({},e),{},{items:c(e.items).map((function(e){return l(l({},e),{},{__autocomplete_id:r++})}))})}));t.dispatch("setCollections",n)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:n}),i=pe(Ie({props:r,refresh:u,store:n},o));function u(){return G(Ie({event:new Event("input"),nextState:{isOpen:n.getState().isOpen},props:r,query:n.getState().query,refresh:u,store:n},o))}return r.plugins.forEach((function(e){var r;return null===(r=e.subscribe)||void 0===r?void 0:r.call(e,Ie(Ie({},o),{},{refresh:u,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})}}))})),function(e){var t,r,n=e.metadata,o=e.environment;if(null===(t=o.navigator)||void 0===t||null===(r=t.userAgent)||void 0===r?void 0:r.includes("Algolia Crawler")){var a=o.document.createElement("meta"),c=o.document.querySelector("head");a.name="algolia:metadata",setTimeout((function(){a.content=JSON.stringify(n),c.appendChild(a)}),0)}}({metadata:ge({plugins:r.plugins,options:e}),environment:r.environment}),Ie(Ie({refresh:u},i),o)}var ke=r(67294);function Ae(e){var t=e.translations,r=(void 0===t?{}:t).searchByText,n=void 0===r?"Search by":r;return ke.createElement("a",{href:"https://www.algolia.com/ref/docsearch/?utm_source=".concat(window.location.hostname,"&utm_medium=referral&utm_content=powered_by&utm_campaign=docsearch"),target:"_blank",rel:"noopener noreferrer"},ke.createElement("span",{className:"DocSearch-Label"},n),ke.createElement("svg",{width:"77",height:"19","aria-label":"Algolia",role:"img"},ke.createElement("path",{d:"M2.5067 0h14.0245c1.384.001 2.5058 1.1205 2.5068 2.5017V16.5c-.0014 1.3808-1.1232 2.4995-2.5068 2.5H2.5067C1.1232 18.9995.0014 17.8808 0 16.5V2.4958A2.495 2.495 0 01.735.7294 2.505 2.505 0 012.5068 0zM37.95 15.0695c-3.7068.0168-3.7068-2.986-3.7068-3.4634L34.2372.3576 36.498 0v11.1794c0 .2715 0 1.9889 1.452 1.994v1.8961zm-9.1666-1.8388c.694 0 1.2086-.0397 1.5678-.1088v-2.2934a5.3639 5.3639 0 00-1.3303-.1679 4.8283 4.8283 0 00-.758.0582 2.2845 2.2845 0 00-.688.2024c-.2029.0979-.371.2362-.4919.4142-.1268.1788-.185.2826-.185.5533 0 .5297.185.8359.5205 1.0375.3355.2016.7928.3053 1.365.3053v-.0008zm-.1969-8.1817c.7463 0 1.3768.092 1.8856.2767.5088.1838.9195.4428 1.2204.7717.3068.334.5147.7777.6423 1.251.1327.4723.196.991.196 1.5603v5.798c-.5235.1036-1.05.192-1.5787.2649-.7048.1037-1.4976.156-2.3774.156-.5832 0-1.1215-.0582-1.6016-.167a3.385 3.385 0 01-1.2432-.5364 2.6034 2.6034 0 01-.8037-.9565c-.191-.3922-.29-.9447-.29-1.5208 0-.5533.11-.905.3246-1.2863a2.7351 2.7351 0 01.8849-.9329c.376-.242.8029-.415 1.2948-.5187a7.4517 7.4517 0 011.5381-.156 7.1162 7.1162 0 011.6667.2024V8.886c0-.259-.0296-.5061-.093-.7372a1.5847 1.5847 0 00-.3245-.6158 1.5079 1.5079 0 00-.6119-.4158 2.6788 2.6788 0 00-.966-.173c-.5206 0-.9948.0634-1.4283.1384a6.5481 6.5481 0 00-1.065.259l-.2712-1.849c.2831-.0986.7048-.1964 1.2491-.2943a9.2979 9.2979 0 011.752-.1501v.0008zm44.6597 8.1193c.6947 0 1.2086-.0405 1.567-.1097v-2.2942a5.3743 5.3743 0 00-1.3303-.1679c-.2485 0-.503.0177-.7573.0582a2.2853 2.2853 0 00-.688.2024 1.2333 1.2333 0 00-.4918.4142c-.1268.1788-.1843.2826-.1843.5533 0 .5297.1843.8359.5198 1.0375.3414.2066.7927.3053 1.365.3053v.0009zm-.191-8.1767c.7463 0 1.3768.0912 1.8856.2759.5087.1847.9195.4436 1.2204.7717.3.329.5147.7786.6414 1.251a5.7248 5.7248 0 01.197 1.562v5.7972c-.3466.0742-.874.1602-1.5788.2648-.7049.1038-1.4976.1552-2.3774.1552-.5832 0-1.1215-.0573-1.6016-.167a3.385 3.385 0 01-1.2432-.5356 2.6034 2.6034 0 01-.8038-.9565c-.191-.3922-.2898-.9447-.2898-1.5216 0-.5533.1098-.905.3245-1.2854a2.7373 2.7373 0 01.8849-.9338c.376-.2412.8029-.4141 1.2947-.5178a7.4545 7.4545 0 012.325-.1097c.2781.0287.5672.081.879.156v-.3686a2.7781 2.7781 0 00-.092-.738 1.5788 1.5788 0 00-.3246-.6166 1.5079 1.5079 0 00-.612-.415 2.6797 2.6797 0 00-.966-.1729c-.5205 0-.9947.0633-1.4282.1384a6.5608 6.5608 0 00-1.065.259l-.2712-1.8498c.283-.0979.7048-.1957 1.2491-.2935a9.8597 9.8597 0 011.752-.1494zm-6.79-1.072c-.7576.001-1.373-.6103-1.3759-1.3664 0-.755.6128-1.3664 1.376-1.3664.764 0 1.3775.6115 1.3775 1.3664s-.6195 1.3664-1.3776 1.3664zm1.1393 11.1507h-2.2726V5.3409l2.2734-.3568v10.0845l-.0008.0017zm-3.984 0c-3.707.0168-3.707-2.986-3.707-3.4642L59.7069.3576 61.9685 0v11.1794c0 .2715 0 1.9889 1.452 1.994V15.0703zm-7.3512-4.979c0-.975-.2138-1.7873-.6305-2.3516-.4167-.571-.9998-.852-1.747-.852-.7454 0-1.3302.281-1.7452.852-.4166.5702-.6195 1.3765-.6195 2.3516 0 .9851.208 1.6473.6254 2.2183.4158.576.9998.8587 1.7461.8587.7454 0 1.3303-.2885 1.747-.8595.4158-.5761.6237-1.2315.6237-2.2184v.0009zm2.3132-.006c0 .7609-.1099 1.3361-.3356 1.9654a4.654 4.654 0 01-.9533 1.6076A4.214 4.214 0 0155.613 14.69c-.579.2412-1.4697.3795-1.9143.3795-.4462-.005-1.3303-.1324-1.9033-.3795a4.307 4.307 0 01-1.474-1.0316c-.4115-.4445-.7293-.9801-.9609-1.6076a5.3423 5.3423 0 01-.3465-1.9653c0-.7608.104-1.493.3356-2.1155a4.683 4.683 0 01.9719-1.5958 4.3383 4.3383 0 011.479-1.0257c.5739-.242 1.2043-.3567 1.8864-.3567.6829 0 1.3125.1197 1.8906.3567a4.1245 4.1245 0 011.4816 1.0257 4.7587 4.7587 0 01.9592 1.5958c.2426.6225.3643 1.3547.3643 2.1155zm-17.0198 0c0 .9448.208 1.9932.6238 2.431.4166.4386.955.6579 1.6142.6579.3584 0 .6998-.0523 1.0176-.1502.3186-.0978.5721-.2134.775-.3517V7.0784a8.8706 8.8706 0 00-1.4926-.1906c-.8206-.0236-1.4452.312-1.8847.8468-.4335.5365-.6533 1.476-.6533 2.3516v-.0008zm6.2863 4.4485c0 1.5385-.3938 2.662-1.1866 3.3773-.791.7136-2.0005 1.0712-3.6308 1.0712-.5958 0-1.834-.1156-2.8228-.334l.3643-1.7865c.8282.173 1.9202.2193 2.4932.2193.9077 0 1.555-.1847 1.943-.5533.388-.3686.578-.916.578-1.643v-.3687a6.8289 6.8289 0 01-.8848.3349c-.3634.1096-.786.167-1.261.167-.6246 0-1.1917-.0979-1.7055-.2944a3.5554 3.5554 0 01-1.3244-.8645c-.3642-.3796-.6541-.8579-.8561-1.4289-.2028-.571-.3068-1.59-.3068-2.339 0-.7034.1099-1.5856.3245-2.1735.2198-.5871.5316-1.0949.9542-1.515.4167-.42.9255-.743 1.5213-.98a5.5923 5.5923 0 012.052-.3855c.7353 0 1.4114.092 2.0707.2024.6592.1088 1.2204.2236 1.6776.35v8.945-.0008zM11.5026 4.2418v-.6511c-.0005-.4553-.3704-.8241-.8266-.8241H8.749c-.4561 0-.826.3688-.8265.824v.669c0 .0742.0693.1264.1445.1096a6.0346 6.0346 0 011.6768-.2362 6.125 6.125 0 011.6202.2185.1116.1116 0 00.1386-.1097zm-5.2806.852l-.3296-.3282a.8266.8266 0 00-1.168 0l-.393.3922a.8199.8199 0 000 1.164l.3237.323c.0524.0515.1268.0397.1733-.0117.191-.259.3989-.507.6305-.7372.2374-.2362.48-.4437.7462-.6335.0575-.0354.0634-.1155.017-.1687zm3.5159 2.069v2.818c0 .081.0879.1392.1622.0987l2.5102-1.2964c.0574-.0287.0752-.0987.0464-.1552a3.1237 3.1237 0 00-2.603-1.574c-.0575 0-.115.0456-.115.1097l-.0008-.0009zm.0008 6.789c-2.0933.0005-3.7915-1.6912-3.7947-3.7804C5.9468 8.0821 7.6452 6.39 9.7387 6.391c2.0932-.0005 3.7911 1.6914 3.794 3.7804a3.7783 3.7783 0 01-1.1124 2.675 3.7936 3.7936 0 01-2.6824 1.1054h.0008zM9.738 4.8002c-1.9218 0-3.6975 1.0232-4.6584 2.6841a5.359 5.359 0 000 5.3683c.9609 1.661 2.7366 2.6841 4.6584 2.6841a5.3891 5.3891 0 003.8073-1.5725 5.3675 5.3675 0 001.578-3.7987 5.3574 5.3574 0 00-1.5771-3.797A5.379 5.379 0 009.7387 4.801l-.0008-.0008z",fill:"currentColor",fillRule:"evenodd"})))}function xe(e){return ke.createElement("svg",{width:"15",height:"15","aria-label":e.ariaLabel,role:"img"},ke.createElement("g",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.2"},e.children))}function Ne(e){var t=e.translations,r=void 0===t?{}:t,n=r.selectText,o=void 0===n?"to select":n,a=r.selectKeyAriaLabel,c=void 0===a?"Enter key":a,i=r.navigateText,l=void 0===i?"to navigate":i,u=r.navigateUpKeyAriaLabel,s=void 0===u?"Arrow up":u,f=r.navigateDownKeyAriaLabel,m=void 0===f?"Arrow down":f,p=r.closeText,d=void 0===p?"to close":p,h=r.closeKeyAriaLabel,v=void 0===h?"Escape key":h,y=r.searchByText,g=void 0===y?"Search by":y;return ke.createElement(ke.Fragment,null,ke.createElement("div",{className:"DocSearch-Logo"},ke.createElement(Ae,{translations:{searchByText:g}})),ke.createElement("ul",{className:"DocSearch-Commands"},ke.createElement("li",null,ke.createElement("kbd",{className:"DocSearch-Commands-Key"},ke.createElement(xe,{ariaLabel:c},ke.createElement("path",{d:"M12 3.53088v3c0 1-1 2-2 2H4M7 11.53088l-3-3 3-3"}))),ke.createElement("span",{className:"DocSearch-Label"},o)),ke.createElement("li",null,ke.createElement("kbd",{className:"DocSearch-Commands-Key"},ke.createElement(xe,{ariaLabel:m},ke.createElement("path",{d:"M7.5 3.5v8M10.5 8.5l-3 3-3-3"}))),ke.createElement("kbd",{className:"DocSearch-Commands-Key"},ke.createElement(xe,{ariaLabel:s},ke.createElement("path",{d:"M7.5 11.5v-8M10.5 6.5l-3-3-3 3"}))),ke.createElement("span",{className:"DocSearch-Label"},l)),ke.createElement("li",null,ke.createElement("kbd",{className:"DocSearch-Commands-Key"},ke.createElement(xe,{ariaLabel:v},ke.createElement("path",{d:"M13.6167 8.936c-.1065.3583-.6883.962-1.4875.962-.7993 0-1.653-.9165-1.653-2.1258v-.5678c0-1.2548.7896-2.1016 1.653-2.1016.8634 0 1.3601.4778 1.4875 1.0724M9 6c-.1352-.4735-.7506-.9219-1.46-.8972-.7092.0246-1.344.57-1.344 1.2166s.4198.8812 1.3445.9805C8.465 7.3992 8.968 7.9337 9 8.5c.032.5663-.454 1.398-1.4595 1.398C6.6593 9.898 6 9 5.963 8.4851m-1.4748.5368c-.2635.5941-.8099.876-1.5443.876s-1.7073-.6248-1.7073-2.204v-.4603c0-1.0416.721-2.131 1.7073-2.131.9864 0 1.6425 1.031 1.5443 2.2492h-2.956"}))),ke.createElement("span",{className:"DocSearch-Label"},d))))}function Re(e){var t=e.hit,r=e.children;return ke.createElement("a",{href:t.url},r)}function qe(){return ke.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},ke.createElement("path",{d:"M19 4.8a16 16 0 00-2-1.2m-3.3-1.2A16 16 0 001.1 4.7M16.7 8a12 12 0 00-2.8-1.4M10 6a12 12 0 00-6.7 2M12.3 14.7a4 4 0 00-4.5 0M14.5 11.4A8 8 0 0010 10M3 16L18 2M10 18h0"}))}function _e(e){var t=e.translations,r=void 0===t?{}:t,n=r.titleText,o=void 0===n?"Unable to fetch results":n,a=r.helpText,c=void 0===a?"You might want to check your network connection.":a;return ke.createElement("div",{className:"DocSearch-ErrorScreen"},ke.createElement("div",{className:"DocSearch-Screen-Icon"},ke.createElement(qe,null)),ke.createElement("p",{className:"DocSearch-Title"},o),ke.createElement("p",{className:"DocSearch-Help"},c))}function Te(){return ke.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},ke.createElement("path",{d:"M15.5 4.8c2 3 1.7 7-1 9.7h0l4.3 4.3-4.3-4.3a7.8 7.8 0 01-9.8 1m-2.2-2.2A7.8 7.8 0 0113.2 2.4M2 18L18 2"}))}var Le=["translations"];function Me(e){return function(e){if(Array.isArray(e))return He(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return He(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return He(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function He(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Ue(e){var t=e.translations,r=void 0===t?{}:t,n=Fe(e,Le),o=r.noResultsText,a=void 0===o?"No results for":o,c=r.suggestedQueryText,i=void 0===c?"Try searching for":c,l=r.reportMissingResultsText,u=void 0===l?"Believe this query should return results?":l,s=r.reportMissingResultsLinkText,f=void 0===s?"Let us know.":s,m=n.state.context.searchSuggestions;return ke.createElement("div",{className:"DocSearch-NoResults"},ke.createElement("div",{className:"DocSearch-Screen-Icon"},ke.createElement(Te,null)),ke.createElement("p",{className:"DocSearch-Title"},a,' "',ke.createElement("strong",null,n.state.query),'"'),m&&m.length>0&&ke.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},ke.createElement("p",{className:"DocSearch-Help"},i,":"),ke.createElement("ul",null,m.slice(0,3).reduce((function(e,t){return[].concat(Me(e),[ke.createElement("li",{key:t},ke.createElement("button",{className:"DocSearch-Prefill",key:t,type:"button",onClick:function(){n.setQuery(t.toLowerCase()+" "),n.refresh(),n.inputRef.current.focus()}},t))])}),[]))),n.getMissingResultsUrl&&ke.createElement("p",{className:"DocSearch-Help"},"".concat(u," "),ke.createElement("a",{href:n.getMissingResultsUrl({query:n.state.query}),target:"_blank",rel:"noopener noreferrer"},f)))}var Be=function(){return ke.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},ke.createElement("path",{d:"M17 6v12c0 .52-.2 1-1 1H4c-.7 0-1-.33-1-1V2c0-.55.42-1 1-1h8l5 5zM14 8h-3.13c-.51 0-.87-.34-.87-.87V4",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))};function Ve(e){switch(e.type){case"lvl1":return ke.createElement(Be,null);case"content":return ke.createElement(Ke,null);default:return ke.createElement(ze,null)}}function ze(){return ke.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},ke.createElement("path",{d:"M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}function Ke(){return ke.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},ke.createElement("path",{d:"M17 5H3h14zm0 5H3h14zm0 5H3h14z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function Je(){return ke.createElement("svg",{className:"DocSearch-Hit-Select-Icon",width:"20",height:"20",viewBox:"0 0 20 20"},ke.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},ke.createElement("path",{d:"M18 3v4c0 2-2 4-4 4H2"}),ke.createElement("path",{d:"M8 17l-6-6 6-6"})))}var $e=["hit","attribute","tagName"];function We(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Qe(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Xe(e,t){return t.split(".").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function Ze(e){var t=e.hit,r=e.attribute,n=e.tagName,o=void 0===n?"span":n,a=Ge(e,$e);return(0,ke.createElement)(o,Qe(Qe({},a),{},{dangerouslySetInnerHTML:{__html:Xe(t,"_snippetResult.".concat(r,".value"))||Xe(t,r)}}))}function et(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,o,a=[],c=!0,i=!1;try{for(r=r.call(e);!(c=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);c=!0);}catch(l){i=!0,o=l}finally{try{c||null==r.return||r.return()}finally{if(i)throw o}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return tt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return tt(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function tt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r|<\/mark>)/g,ct=RegExp(at.source);function it(e){var t,r,n,o,a,c=e;if(!c.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var i=((c.__docsearch_parent?null===(t=c.__docsearch_parent)||void 0===t||null===(r=t._highlightResult)||void 0===r||null===(n=r.hierarchy)||void 0===n?void 0:n.lvl0:null===(o=e._highlightResult)||void 0===o||null===(a=o.hierarchy)||void 0===a?void 0:a.lvl0)||{}).value;return i&&ct.test(i)?i.replace(at,""):i}function lt(){return lt=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function vt(e){var t=e.translations,r=void 0===t?{}:t,n=ht(e,pt),o=r.recentSearchesTitle,a=void 0===o?"Recent":o,c=r.noRecentSearchesText,i=void 0===c?"No recent searches":c,l=r.saveRecentSearchButtonTitle,u=void 0===l?"Save this search":l,s=r.removeRecentSearchButtonTitle,f=void 0===s?"Remove this search from history":s,m=r.favoriteSearchesTitle,p=void 0===m?"Favorite":m,d=r.removeFavoriteSearchButtonTitle,h=void 0===d?"Remove this search from favorites":d;return"idle"===n.state.status&&!1===n.hasCollections?n.disableUserPersonalization?null:ke.createElement("div",{className:"DocSearch-StartScreen"},ke.createElement("p",{className:"DocSearch-Help"},i)):!1===n.hasCollections?null:ke.createElement("div",{className:"DocSearch-Dropdown-Container"},ke.createElement(nt,dt({},n,{title:a,collection:n.state.collections[0],renderIcon:function(){return ke.createElement("div",{className:"DocSearch-Hit-icon"},ke.createElement(st,null))},renderAction:function(e){var t=e.item,r=e.runFavoriteTransition,o=e.runDeleteTransition;return ke.createElement(ke.Fragment,null,ke.createElement("div",{className:"DocSearch-Hit-action"},ke.createElement("button",{className:"DocSearch-Hit-action-button",title:u,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),r((function(){n.favoriteSearches.add(t),n.recentSearches.remove(t),n.refresh()}))}},ke.createElement(ft,null))),ke.createElement("div",{className:"DocSearch-Hit-action"},ke.createElement("button",{className:"DocSearch-Hit-action-button",title:f,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),o((function(){n.recentSearches.remove(t),n.refresh()}))}},ke.createElement(mt,null))))}})),ke.createElement(nt,dt({},n,{title:p,collection:n.state.collections[1],renderIcon:function(){return ke.createElement("div",{className:"DocSearch-Hit-icon"},ke.createElement(ft,null))},renderAction:function(e){var t=e.item,r=e.runDeleteTransition;return ke.createElement("div",{className:"DocSearch-Hit-action"},ke.createElement("button",{className:"DocSearch-Hit-action-button",title:h,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),r((function(){n.favoriteSearches.remove(t),n.refresh()}))}},ke.createElement(mt,null)))}})))}var yt=["translations"];function gt(){return gt=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Ot=ke.memo((function(e){var t=e.translations,r=void 0===t?{}:t,n=bt(e,yt);if("error"===n.state.status)return ke.createElement(_e,{translations:null==r?void 0:r.errorScreen});var o=n.state.collections.some((function(e){return e.items.length>0}));return n.state.query?!1===o?ke.createElement(Ue,gt({},n,{translations:null==r?void 0:r.noResultsScreen})):ke.createElement(ut,n):ke.createElement(vt,gt({},n,{hasCollections:o,translations:null==r?void 0:r.startScreen}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status}));function St(){return ke.createElement("svg",{viewBox:"0 0 38 38",stroke:"currentColor",strokeOpacity:".5"},ke.createElement("g",{fill:"none",fillRule:"evenodd"},ke.createElement("g",{transform:"translate(1 1)",strokeWidth:"2"},ke.createElement("circle",{strokeOpacity:".3",cx:"18",cy:"18",r:"18"}),ke.createElement("path",{d:"M36 18c0-9.94-8.06-18-18-18"},ke.createElement("animateTransform",{attributeName:"transform",type:"rotate",from:"0 18 18",to:"360 18 18",dur:"1s",repeatCount:"indefinite"})))))}var jt=r(20830),Et=["translations"];function wt(){return wt=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function It(e){var t=e.translations,r=void 0===t?{}:t,n=Pt(e,Et),o=r.resetButtonTitle,a=void 0===o?"Clear the query":o,c=r.resetButtonAriaLabel,i=void 0===c?"Clear the query":c,l=r.cancelButtonText,u=void 0===l?"Cancel":l,s=r.cancelButtonAriaLabel,f=void 0===s?"Cancel":s,m=n.getFormProps({inputElement:n.inputRef.current}).onReset;return ke.useEffect((function(){n.autoFocus&&n.inputRef.current&&n.inputRef.current.focus()}),[n.autoFocus,n.inputRef]),ke.useEffect((function(){n.isFromSelection&&n.inputRef.current&&n.inputRef.current.select()}),[n.isFromSelection,n.inputRef]),ke.createElement(ke.Fragment,null,ke.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:m},ke.createElement("label",wt({className:"DocSearch-MagnifierLabel"},n.getLabelProps()),ke.createElement(jt.W,null)),ke.createElement("div",{className:"DocSearch-LoadingIndicator"},ke.createElement(St,null)),ke.createElement("input",wt({className:"DocSearch-Input",ref:n.inputRef},n.getInputProps({inputElement:n.inputRef.current,autoFocus:n.autoFocus,maxLength:64}))),ke.createElement("button",{type:"reset",title:a,className:"DocSearch-Reset","aria-label":i,hidden:!n.state.query},ke.createElement(mt,null))),ke.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":f,onClick:n.onClose},u))}var Dt=["_highlightResult","_snippetResult"];function Ct(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function kt(e){return!1===function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch(t){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}function At(e){var t=e.key,r=e.limit,n=void 0===r?5:r,o=kt(t),a=o.getItem().slice(0,n);return{add:function(e){var t=e,r=(t._highlightResult,t._snippetResult,Ct(t,Dt)),c=a.findIndex((function(e){return e.objectID===r.objectID}));c>-1&&a.splice(c,1),a.unshift(r),a=a.slice(0,n),o.setItem(a)},remove:function(e){a=a.filter((function(t){return t.objectID!==e.objectID})),o.setItem(a)},getAll:function(){return a}}}function xt(e){const t=`algoliasearch-client-js-${e.key}`;let r;const n=()=>(void 0===r&&(r=e.localStorage||window.localStorage),r),o=()=>JSON.parse(n().getItem(t)||"{}");return{get:(e,t,r={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>{const r=JSON.stringify(e),n=o()[r];return Promise.all([n||t(),void 0!==n])})).then((([e,t])=>Promise.all([e,t||r.miss(e)]))).then((([e])=>e)),set:(e,r)=>Promise.resolve().then((()=>{const a=o();return a[JSON.stringify(e)]=r,n().setItem(t,JSON.stringify(a)),r})),delete:e=>Promise.resolve().then((()=>{const r=o();delete r[JSON.stringify(e)],n().setItem(t,JSON.stringify(r))})),clear:()=>Promise.resolve().then((()=>{n().removeItem(t)}))}}function Nt(e){const t=[...e.caches],r=t.shift();return void 0===r?{get:(e,t,r={miss:()=>Promise.resolve()})=>t().then((e=>Promise.all([e,r.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve(t),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}:{get:(e,n,o={miss:()=>Promise.resolve()})=>r.get(e,n,o).catch((()=>Nt({caches:t}).get(e,n,o))),set:(e,n)=>r.set(e,n).catch((()=>Nt({caches:t}).set(e,n))),delete:e=>r.delete(e).catch((()=>Nt({caches:t}).delete(e))),clear:()=>r.clear().catch((()=>Nt({caches:t}).clear()))}}function Rt(e={serializable:!0}){let t={};return{get(r,n,o={miss:()=>Promise.resolve()}){const a=JSON.stringify(r);if(a in t)return Promise.resolve(e.serializable?JSON.parse(t[a]):t[a]);const c=n(),i=o&&o.miss||(()=>Promise.resolve());return c.then((e=>i(e))).then((()=>c))},set:(r,n)=>(t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)),delete:e=>(delete t[JSON.stringify(e)],Promise.resolve()),clear:()=>(t={},Promise.resolve())}}function qt(e){let t=e.length-1;for(;t>0;t--){const r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function _t(e,t){return t?(Object.keys(t).forEach((r=>{e[r]=t[r](e)})),e):e}function Tt(e,...t){let r=0;return e.replace(/%s/g,(()=>encodeURIComponent(t[r++])))}const Lt="4.14.2",Mt={WithinQueryParameters:0,WithinHeaders:1};function Ht(e,t){const r=e||{},n=r.data||{};return Object.keys(r).forEach((e=>{-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(n[e]=r[e])})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}const Ft={Read:1,Write:2,Any:3},Ut=1,Bt=2,Vt=3,zt=12e4;function Kt(e,t=Ut){return{...e,status:t,lastUpdate:Date.now()}}function Jt(e){return"string"==typeof e?{protocol:"https",url:e,accept:Ft.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||Ft.Any}}const $t="GET",Wt="POST";function Qt(e,t){return Promise.all(t.map((t=>e.get(t,(()=>Promise.resolve(Kt(t))))))).then((e=>{const r=e.filter((e=>function(e){return e.status===Ut||Date.now()-e.lastUpdate>zt}(e))),n=e.filter((e=>function(e){return e.status===Vt&&Date.now()-e.lastUpdate<=zt}(e))),o=[...r,...n];return{getTimeout:(e,t)=>(0===n.length&&0===e?1:n.length+3+e)*t,statelessHosts:o.length>0?o.map((e=>Jt(e))):t}}))}function Yt(e,t,r,n){const o=[],a=function(e,t){if(e.method===$t||void 0===e.data&&void 0===t.data)return;const r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}(r,n),c=function(e,t){const r={...e.headers,...t.headers},n={};return Object.keys(r).forEach((e=>{const t=r[e];n[e.toLowerCase()]=t})),n}(e,n),i=r.method,l=r.method!==$t?{}:{...r.data,...n.data},u={"x-algolia-agent":e.userAgent.value,...e.queryParameters,...l,...n.queryParameters};let s=0;const f=(t,l)=>{const m=t.pop();if(void 0===m)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:er(o)};const p={data:a,headers:c,method:i,url:Xt(m,r.path,u),connectTimeout:l(s,e.timeouts.connect),responseTimeout:l(s,n.timeout)},d=e=>{const r={request:p,response:e,host:m,triesLeft:t.length};return o.push(r),r},h={onSuccess:e=>function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e),onRetry(r){const n=d(r);return r.isTimedOut&&s++,Promise.all([e.logger.info("Retryable failure",tr(n)),e.hostsCache.set(m,Kt(m,r.isTimedOut?Vt:Bt))]).then((()=>f(t,l)))},onFail(e){throw d(e),function({content:e,status:t},r){let n=e;try{n=JSON.parse(e).message}catch(o){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(n,t,r)}(e,er(o))}};return e.requester.send(p).then((e=>((e,t)=>(e=>{const t=e.status;return e.isTimedOut||(({isTimedOut:e,status:t})=>!e&&0==~~t)(e)||2!=~~(t/100)&&4!=~~(t/100)})(e)?t.onRetry(e):(({status:e})=>2==~~(e/100))(e)?t.onSuccess(e):t.onFail(e))(e,h)))};return Qt(e.hostsCache,t).then((e=>f([...e.statelessHosts].reverse(),e.getTimeout)))}function Gt(e){const t={value:`Algolia for JavaScript (${e})`,add(e){const r=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===t.value.indexOf(r)&&(t.value=`${t.value}${r}`),t}};return t}function Xt(e,t,r){const n=Zt(r);let o=`${e.protocol}://${e.url}/${"/"===t.charAt(0)?t.substr(1):t}`;return n.length&&(o+=`?${n}`),o}function Zt(e){return Object.keys(e).map((t=>{return Tt("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function er(e){return e.map((e=>tr(e)))}function tr(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}const rr=e=>{const t=e.appId,r=function(e,t,r){const n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:()=>e===Mt.WithinHeaders?n:{},queryParameters:()=>e===Mt.WithinQueryParameters?n:{}}}(void 0!==e.authMode?e.authMode:Mt.WithinHeaders,t,e.apiKey),n=function(e){const{hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:a,timeouts:c,userAgent:i,hosts:l,queryParameters:u,headers:s}=e,f={hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:a,timeouts:c,userAgent:i,headers:s,queryParameters:u,hosts:l.map((e=>Jt(e))),read(e,t){const r=Ht(t,f.timeouts.read),n=()=>Yt(f,f.hosts.filter((e=>0!=(e.accept&Ft.Read))),e,r);if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();const o={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(o,(()=>f.requestsCache.get(o,(()=>f.requestsCache.set(o,n()).then((e=>Promise.all([f.requestsCache.delete(o),e])),(e=>Promise.all([f.requestsCache.delete(o),Promise.reject(e)]))).then((([e,t])=>t))))),{miss:e=>f.responsesCache.set(o,e)})},write:(e,t)=>Yt(f,f.hosts.filter((e=>0!=(e.accept&Ft.Write))),e,Ht(t,f.timeouts.write))};return f}({hosts:[{url:`${t}-dsn.algolia.net`,accept:Ft.Read},{url:`${t}.algolia.net`,accept:Ft.Write}].concat(qt([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}])),...e,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),o={transporter:n,appId:t,addAlgoliaAgent(e,t){n.userAgent.add({segment:e,version:t})},clearCache:()=>Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then((()=>{}))};return _t(o,e.methods)},nr=e=>(t,r)=>t.method===$t?e.transporter.read(t,r):e.transporter.write(t,r),or=e=>(t,r={})=>_t({transporter:e.transporter,appId:e.appId,indexName:t},r.methods),ar=e=>(t,r)=>{const n=t.map((e=>({...e,params:Zt(e.params||{})})));return e.transporter.read({method:Wt,path:"1/indexes/*/queries",data:{requests:n},cacheable:!0},r)},cr=e=>(t,r)=>Promise.all(t.map((t=>{const{facetName:n,facetQuery:o,...a}=t.params;return or(e)(t.indexName,{methods:{searchForFacetValues:ur}}).searchForFacetValues(n,o,{...r,...a})}))),ir=e=>(t,r,n)=>e.transporter.read({method:Wt,path:Tt("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n),lr=e=>(t,r)=>e.transporter.read({method:Wt,path:Tt("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r),ur=e=>(t,r,n)=>e.transporter.read({method:Wt,path:Tt("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n),sr=1,fr=2,mr=3;function pr(e,t,r){const n={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:e=>new Promise((t=>{const r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((t=>r.setRequestHeader(t,e.headers[t])));const n=(e,n)=>setTimeout((()=>{r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e),o=n(e.connectTimeout,"Connection timeout");let a;r.onreadystatechange=()=>{r.readyState>r.OPENED&&void 0===a&&(clearTimeout(o),a=n(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{0===r.status&&(clearTimeout(o),clearTimeout(a),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(o),clearTimeout(a),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))},logger:(o=mr,{debug:(e,t)=>(sr>=o&&console.debug(e,t),Promise.resolve()),info:(e,t)=>(fr>=o&&console.info(e,t),Promise.resolve()),error:(e,t)=>(console.error(e,t),Promise.resolve())}),responsesCache:Rt(),requestsCache:Rt({serializable:!1}),hostsCache:Nt({caches:[xt({key:`4.14.2-${e}`}),Rt()]}),userAgent:Gt(Lt).add({segment:"Browser",version:"lite"}),authMode:Mt.WithinQueryParameters};var o;return rr({...n,...r,methods:{search:ar,searchForFacetValues:cr,multipleQueries:ar,multipleSearchForFacetValues:cr,customRequest:nr,initIndex:e=>t=>or(e)(t,{methods:{search:lr,searchForFacetValues:ur,findAnswers:ir}})}})}pr.version=Lt;const dr=pr;var hr="3.2.0";function vr(){}function yr(e){return e}function gr(e,t){return e.reduce((function(e,r){var n=t(r);return e.hasOwnProperty(n)||(e[n]=[]),e[n].length<5&&e[n].push(r),e}),{})}var br=["footer","searchBox"];function Or(){return Or=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Dr(e){var t=e.appId,r=e.apiKey,n=e.indexName,o=e.placeholder,a=void 0===o?"Search docs":o,c=e.searchParameters,i=e.onClose,l=void 0===i?vr:i,u=e.transformItems,s=void 0===u?yr:u,f=e.hitComponent,m=void 0===f?Re:f,p=e.resultsFooterComponent,d=void 0===p?function(){return null}:p,h=e.navigator,v=e.initialScrollY,y=void 0===v?0:v,g=e.transformSearchClient,b=void 0===g?yr:g,O=e.disableUserPersonalization,S=void 0!==O&&O,j=e.initialQuery,E=void 0===j?"":j,w=e.translations,P=void 0===w?{}:w,I=e.getMissingResultsUrl,D=P.footer,C=P.searchBox,k=Ir(P,br),A=wr(ke.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),x=A[0],N=A[1],R=ke.useRef(null),q=ke.useRef(null),_=ke.useRef(null),T=ke.useRef(null),L=ke.useRef(null),M=ke.useRef(10),H=ke.useRef("undefined"!=typeof window?window.getSelection().toString().slice(0,64):"").current,F=ke.useRef(E||H).current,U=function(e,t,r){return ke.useMemo((function(){var n=dr(e,t);return n.addAlgoliaAgent("docsearch",hr),!1===/docsearch.js \(.*\)/.test(n.transporter.userAgent.value)&&n.addAlgoliaAgent("docsearch-react",hr),r(n)}),[e,t,r])}(t,r,b),B=ke.useRef(At({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(n),limit:10})).current,V=ke.useRef(At({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(n),limit:0===B.getAll().length?7:4})).current,z=ke.useCallback((function(e){if(!S){var t="content"===e.type?e.__docsearch_parent:e;t&&-1===B.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&V.add(t)}}),[B,V,S]),K=ke.useMemo((function(){return Ce({id:"docsearch",defaultActiveItemId:0,placeholder:a,openOnFocus:!0,initialState:{query:F,context:{searchSuggestions:[]}},navigator:h,onStateChange:function(e){N(e.state)},getSources:function(e){var t=e.query,r=e.state,o=e.setContext,a=e.setStatus;return t?U.search([{query:t,indexName:n,params:jr({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(M.current),"hierarchy.lvl2:".concat(M.current),"hierarchy.lvl3:".concat(M.current),"hierarchy.lvl4:".concat(M.current),"hierarchy.lvl5:".concat(M.current),"hierarchy.lvl6:".concat(M.current),"content:".concat(M.current)],snippetEllipsisText:"\u2026",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20},c)}]).catch((function(e){throw"RetryError"===e.name&&a("error"),e})).then((function(e){var t=e.results[0],n=t.hits,a=t.nbHits,c=gr(n,(function(e){return it(e)}));return r.context.searchSuggestions.length0&&(W(),L.current&&L.current.focus())}),[F,W]),ke.useEffect((function(){function e(){if(q.current){var e=.01*window.innerHeight;q.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),ke.createElement("div",Or({ref:R},$({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===x.status&&"DocSearch-Container--Stalled","error"===x.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&l()}}),ke.createElement("div",{className:"DocSearch-Modal",ref:q},ke.createElement("header",{className:"DocSearch-SearchBar",ref:_},ke.createElement(It,Or({},K,{state:x,autoFocus:0===F.length,inputRef:L,isFromSelection:Boolean(F)&&F===H,translations:C,onClose:l}))),ke.createElement("div",{className:"DocSearch-Dropdown",ref:T},ke.createElement(Ot,Or({},K,{indexName:n,state:x,hitComponent:m,resultsFooterComponent:d,disableUserPersonalization:S,recentSearches:V,favoriteSearches:B,inputRef:L,translations:k,getMissingResultsUrl:I,onItemClick:function(e){z(e),l()}}))),ke.createElement("footer",{className:"DocSearch-Footer"},ke.createElement(Ne,{translations:D}))))}}}]); \ No newline at end of file diff --git a/assets/js/6798.a0a87077.js b/assets/js/6798.a0a87077.js new file mode 100644 index 00000000000..90aa02ce66a --- /dev/null +++ b/assets/js/6798.a0a87077.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6798],{16798:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>r,contentTitle:()=>d,default:()=>m,frontMatter:()=>l,metadata:()=>a,toc:()=>c});var o=i(87462),t=(i(67294),i(3905));i(45475);const l={title:".flowconfig [include]",slug:"/config/include"},d=void 0,a={unversionedId:"config/include",id:"config/include",title:".flowconfig [include]",description:"The [include] section in a .flowconfig file tells Flow to include the",source:"@site/docs/config/include.md",sourceDirName:"config",slug:"/config/include",permalink:"/en/docs/config/include",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/config/include.md",tags:[],version:"current",frontMatter:{title:".flowconfig [include]",slug:"/config/include"},sidebar:"docsSidebar",previous:{title:".flowconfig [options]",permalink:"/en/docs/config/options"},next:{title:".flowconfig [ignore]",permalink:"/en/docs/config/ignore"}},r={},c=[],s={toc:c};function m(e){let{components:n,...i}=e;return(0,t.mdx)("wrapper",(0,o.Z)({},s,i,{components:n,mdxType:"MDXLayout"}),(0,t.mdx)("p",null,"The ",(0,t.mdx)("inlineCode",{parentName:"p"},"[include]")," section in a ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file tells Flow to include the\nspecified files or directories. Including a directory recursively includes all\nthe files under that directory. Symlinks are followed as long as they lead to a\nfile or directory that is also included. Each line in the include section is a\npath to include. These paths can be relative to the root directory or absolute,\nand support both single and double star wildcards."),(0,t.mdx)("p",null,"The project root directory (where your ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," lives) is automatically\nincluded."),(0,t.mdx)("p",null,"For example, if ",(0,t.mdx)("inlineCode",{parentName:"p"},"/path/to/root/.flowconfig")," contains the following ",(0,t.mdx)("inlineCode",{parentName:"p"},"[include]"),"\nsection:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[include]\n../externalFile.js\n../externalDir/\n../otherProject/*.js\n../otherProject/**/coolStuff/\n")),(0,t.mdx)("p",null,"Then when Flow checks the project in ",(0,t.mdx)("inlineCode",{parentName:"p"},"/path/to/root"),", it will read and watch"),(0,t.mdx)("ol",null,(0,t.mdx)("li",{parentName:"ol"},(0,t.mdx)("inlineCode",{parentName:"li"},"/path/to/root/")," (automatically included)"),(0,t.mdx)("li",{parentName:"ol"},(0,t.mdx)("inlineCode",{parentName:"li"},"/path/to/externalFile.js")),(0,t.mdx)("li",{parentName:"ol"},(0,t.mdx)("inlineCode",{parentName:"li"},"/path/to/externalDir/")),(0,t.mdx)("li",{parentName:"ol"},"Any file in ",(0,t.mdx)("inlineCode",{parentName:"li"},"/path/to/otherProject/")," that ends in ",(0,t.mdx)("inlineCode",{parentName:"li"},".js")),(0,t.mdx)("li",{parentName:"ol"},"Any directory under ",(0,t.mdx)("inlineCode",{parentName:"li"},"/path/to/otherProject")," named ",(0,t.mdx)("inlineCode",{parentName:"li"},"coolStuff/"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6894.61d518cf.js b/assets/js/6894.61d518cf.js new file mode 100644 index 00000000000..fcb31d2d9cf --- /dev/null +++ b/assets/js/6894.61d518cf.js @@ -0,0 +1,2 @@ +/*! For license information please see 6894.61d518cf.js.LICENSE.txt */ +(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6894],{17967:(t,e)=>{"use strict";e.Nm=e.Rq=void 0;var n=/^([^\w]*)(javascript|data|vbscript)/im,i=/&#(\w+)(^\w|;)?/g,a=/&(newline|tab);/gi,r=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,o=/^.+(:|:)/gim,s=[".","/"];e.Rq="about:blank",e.Nm=function(t){if(!t)return e.Rq;var c,l=(c=t,c.replace(r,"").replace(i,(function(t,e){return String.fromCharCode(e)}))).replace(a,"").replace(r,"").trim();if(!l)return e.Rq;if(function(t){return s.indexOf(t[0])>-1}(l))return l;var u=l.match(o);if(!u)return l;var d=u[0];return n.test(d)?e.Rq:l}},91262:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(67294),a=n(72389);function r(t){let{children:e,fallback:n}=t;return(0,a.default)()?i.createElement(i.Fragment,null,null==e?void 0:e()):null!=n?n:null}},83971:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>$});var i=n(87462),a=n(67294),r=n(72389),o=n(86010),s=n(66412),c=n(35281),l=n(87594),u=n.n(l);const d=/title=(?["'])(?.*?)\1/,h=/\{(?<range>[\d,-]+)\}/,f={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function g(t,e){const n=t.map((t=>{const{start:n,end:i}=f[t];return"(?:"+n+"\\s*("+e.flatMap((t=>{var e,n;return[t.line,null==(e=t.block)?void 0:e.start,null==(n=t.block)?void 0:n.end].filter(Boolean)})).join("|")+")\\s*"+i+")"})).join("|");return new RegExp("^\\s*(?:"+n+")\\s*$")}function p(t,e){let n=t.replace(/\n$/,"");const{language:i,magicComments:a,metastring:r}=e;if(r&&h.test(r)){const t=r.match(h).groups.range;if(0===a.length)throw new Error("A highlight range has been given in code block's metastring (``` "+r+"), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.");const e=a[0].className,i=u()(t).filter((t=>t>0)).map((t=>[t-1,[e]]));return{lineClassNames:Object.fromEntries(i),code:n}}if(void 0===i)return{lineClassNames:{},code:n};const o=function(t,e){switch(t){case"js":case"javascript":case"ts":case"typescript":return g(["js","jsBlock"],e);case"jsx":case"tsx":return g(["js","jsBlock","jsx"],e);case"html":return g(["js","jsBlock","html"],e);case"python":case"py":case"bash":return g(["bash"],e);case"markdown":case"md":return g(["html","jsx","bash"],e);default:return g(Object.keys(f),e)}}(i,a),s=n.split("\n"),c=Object.fromEntries(a.map((t=>[t.className,{start:0,range:""}]))),l=Object.fromEntries(a.filter((t=>t.line)).map((t=>{let{className:e,line:n}=t;return[n,e]}))),d=Object.fromEntries(a.filter((t=>t.block)).map((t=>{let{className:e,block:n}=t;return[n.start,e]}))),p=Object.fromEntries(a.filter((t=>t.block)).map((t=>{let{className:e,block:n}=t;return[n.end,e]})));for(let u=0;u<s.length;){const t=s[u].match(o);if(!t){u+=1;continue}const e=t.slice(1).find((t=>void 0!==t));l[e]?c[l[e]].range+=u+",":d[e]?c[d[e]].start=u:p[e]&&(c[p[e]].range+=c[p[e]].start+"-"+(u-1)+","),s.splice(u,1)}n=s.join("\n");const b={};return Object.entries(c).forEach((t=>{let[e,{range:n}]=t;u()(n).forEach((t=>{null!=b[t]||(b[t]=[]),b[t].push(e)}))})),{lineClassNames:b,code:n}}const b="codeBlockContainer_Ckt0";function m(t){let{as:e,...n}=t;const r=function(t){const e={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(t.plain).forEach((t=>{let[i,a]=t;const r=e[i];r&&"string"==typeof a&&(n[r]=a)})),n}((0,s.p)());return a.createElement(e,(0,i.Z)({},n,{style:r,className:(0,o.default)(n.className,b,c.k.common.codeBlock)}))}const y={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function v(t){let{children:e,className:n}=t;return a.createElement(m,{as:"pre",tabIndex:0,className:(0,o.default)(y.codeBlockStandalone,"thin-scrollbar",n)},a.createElement("code",{className:y.codeBlockLines},e))}var w=n(86668),x=n(902);const R={attributes:!0,characterData:!0,childList:!0,subtree:!0};function _(t,e){const[n,i]=(0,a.useState)(),r=(0,a.useCallback)((()=>{var e;i(null==(e=t.current)?void 0:e.closest("[role=tabpanel][hidden]"))}),[t,i]);(0,a.useEffect)((()=>{r()}),[r]),function(t,e,n){void 0===n&&(n=R);const i=(0,x.zX)(e),r=(0,x.Ql)(n);(0,a.useEffect)((()=>{const e=new MutationObserver(i);return t&&e.observe(t,r),()=>e.disconnect()}),[t,i,r])}(n,(t=>{t.forEach((t=>{"attributes"===t.type&&"hidden"===t.attributeName&&(e(),r())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var k=n(23746);const E="codeLine_lJS_",C="codeLineNumber_Tfdd",S="codeLineContent_feaV";function T(t){let{line:e,classNames:n,showLineNumbers:r,getLineProps:s,getTokenProps:c}=t;1===e.length&&"\n"===e[0].content&&(e[0].content="");const l=s({line:e,className:(0,o.default)(n,r&&E)}),u=e.map(((t,e)=>a.createElement("span",(0,i.Z)({key:e},c({token:t,key:e})))));return a.createElement("span",l,r?a.createElement(a.Fragment,null,a.createElement("span",{className:C}),a.createElement("span",{className:S},u)):u,a.createElement("br",null))}var A=n(10195),D=n(95999);function I(t){return a.createElement("svg",(0,i.Z)({viewBox:"0 0 24 24"},t),a.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function L(t){return a.createElement("svg",(0,i.Z)({viewBox:"0 0 24 24"},t),a.createElement("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}const O={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function M(t){let{code:e,className:n}=t;const[i,r]=(0,a.useState)(!1),s=(0,a.useRef)(void 0),c=(0,a.useCallback)((()=>{(0,A.Z)(e),r(!0),s.current=window.setTimeout((()=>{r(!1)}),1e3)}),[e]);return(0,a.useEffect)((()=>()=>window.clearTimeout(s.current)),[]),a.createElement("button",{type:"button","aria-label":i?(0,D.translate)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,D.translate)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,D.translate)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,o.default)("clean-btn",n,O.copyButton,i&&O.copyButtonCopied),onClick:c},a.createElement("span",{className:O.copyButtonIcons,"aria-hidden":"true"},a.createElement(I,{className:O.copyButtonIcon}),a.createElement(L,{className:O.copyButtonSuccessIcon})))}function N(t){return a.createElement("svg",(0,i.Z)({viewBox:"0 0 24 24"},t),a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const B="wordWrapButtonIcon_Bwma",P="wordWrapButtonEnabled_EoeP";function F(t){let{className:e,onClick:n,isEnabled:i}=t;const r=(0,D.translate)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,o.default)("clean-btn",e,i&&P),"aria-label":r,title:r},a.createElement(N,{className:B,"aria-hidden":"true"}))}function j(t){var e;let{children:n,className:r="",metastring:c,title:l,showLineNumbers:u,language:h}=t;const{prism:{defaultLanguage:f,magicComments:g}}=(0,w.L)(),b=null!=(e=null!=h?h:function(t){const e=t.split(" ").find((t=>t.startsWith("language-")));return null==e?void 0:e.replace(/language-/,"")}(r))?e:f,v=(0,s.p)(),x=function(){const[t,e]=(0,a.useState)(!1),[n,i]=(0,a.useState)(!1),r=(0,a.useRef)(null),o=(0,a.useCallback)((()=>{const n=r.current.querySelector("code");t?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),e((t=>!t))}),[r,t]),s=(0,a.useCallback)((()=>{const{scrollWidth:t,clientWidth:e}=r.current,n=t>e||r.current.querySelector("code").hasAttribute("style");i(n)}),[r]);return _(r,s),(0,a.useEffect)((()=>{s()}),[t,s]),(0,a.useEffect)((()=>(window.addEventListener("resize",s,{passive:!0}),()=>{window.removeEventListener("resize",s)})),[s]),{codeBlockRef:r,isEnabled:t,isCodeScrollable:n,toggle:o}}(),R=function(t){var e,n;return null!=(e=null==t||null==(n=t.match(d))?void 0:n.groups.title)?e:""}(c)||l,{lineClassNames:E,code:C}=p(n,{metastring:c,language:b,magicComments:g}),S=null!=u?u:function(t){return Boolean(null==t?void 0:t.includes("showLineNumbers"))}(c);return a.createElement(m,{as:"div",className:(0,o.default)(r,b&&!r.includes("language-"+b)&&"language-"+b)},R&&a.createElement("div",{className:y.codeBlockTitle},R),a.createElement("div",{className:y.codeBlockContent},a.createElement(k.ZP,(0,i.Z)({},k.lG,{theme:v,code:C,language:null!=b?b:"text"}),(t=>{let{className:e,tokens:n,getLineProps:i,getTokenProps:r}=t;return a.createElement("pre",{tabIndex:0,ref:x.codeBlockRef,className:(0,o.default)(e,y.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,o.default)(y.codeBlockLines,S&&y.codeBlockLinesWithNumbering)},n.map(((t,e)=>a.createElement(T,{key:e,line:t,getLineProps:i,getTokenProps:r,classNames:E[e],showLineNumbers:S})))))})),a.createElement("div",{className:y.buttonGroup},(x.isEnabled||x.isCodeScrollable)&&a.createElement(F,{className:y.codeButton,onClick:()=>x.toggle(),isEnabled:x.isEnabled}),a.createElement(M,{className:y.codeButton,code:C}))))}function $(t){let{children:e,...n}=t;const o=(0,r.default)(),s=function(t){return a.Children.toArray(t).some((t=>(0,a.isValidElement)(t)))?t:Array.isArray(t)?t.join(""):t}(e),c="string"==typeof s?j:v;return a.createElement(c,(0,i.Z)({key:String(o)},n),s)}},46215:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>s});var i=n(67294),a=n(95999),r=n(35281),o=n(56262);function s(t){let{editUrl:e}=t;return i.createElement("a",{href:e,target:"_blank",rel:"noreferrer noopener",className:r.k.common.editThisPage},i.createElement(o.default,null),i.createElement(a.default,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}},92503:(t,e,n)=>{"use strict";n.d(e,{Z:()=>d});var i=n(87462),a=n(67294),r=n(86010),o=n(95999),s=n(86668),c=n(39960);const l="anchorWithStickyNavbar_LWe7",u="anchorWithHideOnScrollNavbar_WYt5";function d(t){let{as:e,id:n,...d}=t;const{navbar:{hideOnScroll:h}}=(0,s.L)();if("h1"===e||!n)return a.createElement(e,(0,i.Z)({},d,{id:void 0}));const f=(0,o.translate)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof d.children?d.children:n});return a.createElement(e,(0,i.Z)({},d,{className:(0,r.default)("anchor",h?u:l,d.className),id:n}),d.children,a.createElement(c.default,{className:"hash-link",to:"#"+n,"aria-label":f,title:f},"\u200b"))}},56262:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>s});var i=n(87462),a=n(67294),r=n(86010);const o="iconEdit_Z9Sw";function s(t){let{className:e,...n}=t;return a.createElement("svg",(0,i.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,r.default)(o,e),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}},71095:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>j});var i=n(87462),a=n(67294),r=n(35742);var o=n(18573);var s=n(39960);var c=n(86010),l=n(72389),u=n(86043);const d="details_lb9f",h="isBrowser_bmU9",f="collapsibleContent_i85q";function g(t){return!!t&&("SUMMARY"===t.tagName||g(t.parentElement))}function p(t,e){return!!t&&(t===e||p(t.parentElement,e))}function b(t){let{summary:e,children:n,...r}=t;const o=(0,l.default)(),s=(0,a.useRef)(null),{collapsed:b,setCollapsed:m}=(0,u.u)({initialState:!r.open}),[y,v]=(0,a.useState)(r.open),w=a.isValidElement(e)?e:a.createElement("summary",null,null!=e?e:"Details");return a.createElement("details",(0,i.Z)({},r,{ref:s,open:y,"data-collapsed":b,className:(0,c.default)(d,o&&h,r.className),onMouseDown:t=>{g(t.target)&&t.detail>1&&t.preventDefault()},onClick:t=>{t.stopPropagation();const e=t.target;g(e)&&p(e,s.current)&&(t.preventDefault(),b?(m(!1),v(!0)):m(!0))}}),w,a.createElement(u.z,{lazy:!1,collapsed:b,disableSSRStyle:!0,onCollapseTransitionEnd:t=>{m(t),v(!t)}},a.createElement("div",{className:f},n)))}const m="details_b_Ee";function y(t){let{...e}=t;return a.createElement(b,(0,i.Z)({},e,{className:(0,c.default)("alert alert--info",m,e.className)}))}var v=n(92503);function w(t){return a.createElement(v.Z,t)}const x="containsTaskList_mC6p";const R="img_ev3q";var _=n(35281),k=n(95999);const E="admonition_LlT9",C="admonitionHeading_tbUL",S="admonitionIcon_kALy",T="admonitionContent_S0QG";const A={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(k.default,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(k.default,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(k.default,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(k.default,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(k.default,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},D={secondary:"note",important:"info",success:"tip",warning:"danger"};function I(t){var e;const{mdxAdmonitionTitle:n,rest:i}=function(t){const e=a.Children.toArray(t),n=e.find((t=>{var e;return a.isValidElement(t)&&"mdxAdmonitionTitle"===(null==(e=t.props)?void 0:e.mdxType)})),i=a.createElement(a.Fragment,null,e.filter((t=>t!==n)));return{mdxAdmonitionTitle:n,rest:i}}(t.children);return{...t,title:null!=(e=t.title)?e:n,children:i}}var L=n(91262),O=n(86668),M=n(92949),N=n(16432);function B(){const{colorMode:t}=(0,M.I)(),e=(0,O.L)().mermaid,n=e.theme[t],{options:i}=e;return(0,a.useMemo)((()=>({startOnLoad:!1,...i,theme:n})),[n,i])}const P="container_lyt7";function F(t){let{value:e}=t;const n=function(t,e){const n=B(),i=null!=e?e:n;return(0,a.useMemo)((()=>{N.o.mermaidAPI.initialize(i);const e="mermaid-svg-"+Math.round(1e7*Math.random());return N.o.render(e,t)}),[t,i])}(e);return a.createElement("div",{className:"docusaurus-mermaid-container "+P,dangerouslySetInnerHTML:{__html:n}})}const j={head:function(t){const e=a.Children.map(t.children,(t=>a.isValidElement(t)?function(t){var e;if(null!=(e=t.props)&&e.mdxType&&t.props.originalType){const{mdxType:e,originalType:n,...i}=t.props;return a.createElement(t.props.originalType,i)}return t}(t):t));return a.createElement(r.Z,t,e)},code:function(t){const e=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(t.children).every((t=>{var n;return"string"==typeof t&&!t.includes("\n")||(0,a.isValidElement)(t)&&e.includes(null==(n=t.props)?void 0:n.mdxType)}))?a.createElement("code",t):a.createElement(o.Z,t)},a:function(t){return a.createElement(s.default,t)},pre:function(t){var e;return a.createElement(o.Z,(0,a.isValidElement)(t.children)&&"code"===(null==(e=t.children.props)?void 0:e.originalType)?t.children.props:{...t})},details:function(t){const e=a.Children.toArray(t.children),n=e.find((t=>{var e;return a.isValidElement(t)&&"summary"===(null==(e=t.props)?void 0:e.mdxType)})),r=a.createElement(a.Fragment,null,e.filter((t=>t!==n)));return a.createElement(y,(0,i.Z)({},t,{summary:n}),r)},ul:function(t){return a.createElement("ul",(0,i.Z)({},t,{className:(e=t.className,(0,c.default)(e,(null==e?void 0:e.includes("contains-task-list"))&&x))}));var e},img:function(t){return a.createElement("img",(0,i.Z)({loading:"lazy"},t,{className:(e=t.className,(0,c.default)(e,R))}));var e},h1:t=>a.createElement(w,(0,i.Z)({as:"h1"},t)),h2:t=>a.createElement(w,(0,i.Z)({as:"h2"},t)),h3:t=>a.createElement(w,(0,i.Z)({as:"h3"},t)),h4:t=>a.createElement(w,(0,i.Z)({as:"h4"},t)),h5:t=>a.createElement(w,(0,i.Z)({as:"h5"},t)),h6:t=>a.createElement(w,(0,i.Z)({as:"h6"},t)),admonition:function(t){const{children:e,type:n,title:i,icon:r}=I(t),o=function(t){var e;const n=null!=(e=D[t])?e:t;return A[n]||(console.warn('No admonition config found for admonition type "'+n+'". Using Info as fallback.'),A.info)}(n),s=null!=i?i:o.label,{iconComponent:l}=o,u=null!=r?r:a.createElement(l,null);return a.createElement("div",{className:(0,c.default)(_.k.common.admonition,_.k.common.admonitionType(t.type),"alert","alert--"+o.infimaClassName,E)},a.createElement("div",{className:C},a.createElement("span",{className:S},u),s),a.createElement("div",{className:T},e))},mermaid:function(t){return a.createElement(L.Z,null,(()=>a.createElement(F,t)))}}},45042:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>s});var i=n(67294),a=n(3905),r=n(75854),o=n.n(r);function s(t){let{children:e}=t;return i.createElement(a.MDXProvider,{components:o()},e)}},32244:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=n(67294),a=n(86010),r=n(39960);function o(t){const{permalink:e,title:n,subLabel:o,isNext:s}=t;return i.createElement(r.default,{className:(0,a.default)("pagination-nav__link",s?"pagination-nav__link--next":"pagination-nav__link--prev"),to:e},o&&i.createElement("div",{className:"pagination-nav__sublabel"},o),i.createElement("div",{className:"pagination-nav__label"},n))}},39407:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(87462),a=n(67294),r=n(86010),o=n(93743);const s="tableOfContents_bqdL";function c(t){let{className:e,...n}=t;return a.createElement("div",{className:(0,r.default)(s,"thin-scrollbar",e)},a.createElement(o.Z,(0,i.Z)({},n,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}},93743:(t,e,n)=>{"use strict";n.d(e,{Z:()=>g});var i=n(87462),a=n(67294),r=n(86668);function o(t){const e=t.map((t=>({...t,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);e.forEach(((t,e)=>{const i=n.slice(2,t.level);t.parentIndex=Math.max(...i),n[t.level]=e}));const i=[];return e.forEach((t=>{const{parentIndex:n,...a}=t;n>=0?e[n].children.push(a):i.push(a)})),i}function s(t){let{toc:e,minHeadingLevel:n,maxHeadingLevel:i}=t;return e.flatMap((t=>{const e=s({toc:t.children,minHeadingLevel:n,maxHeadingLevel:i});return function(t){return t.level>=n&&t.level<=i}(t)?[{...t,children:e}]:e}))}function c(t){const e=t.getBoundingClientRect();return e.top===e.bottom?c(t.parentNode):e}function l(t,e){var n;let{anchorTopOffset:i}=e;const a=t.find((t=>c(t).top>=i));if(a){var r;return function(t){return t.top>0&&t.bottom<window.innerHeight/2}(c(a))?a:null!=(r=t[t.indexOf(a)-1])?r:null}return null!=(n=t[t.length-1])?n:null}function u(){const t=(0,a.useRef)(0),{navbar:{hideOnScroll:e}}=(0,r.L)();return(0,a.useEffect)((()=>{t.current=e?0:document.querySelector(".navbar").clientHeight}),[e]),t}function d(t){const e=(0,a.useRef)(void 0),n=u();(0,a.useEffect)((()=>{if(!t)return()=>{};const{linkClassName:i,linkActiveClassName:a,minHeadingLevel:r,maxHeadingLevel:o}=t;function s(){const t=function(t){return Array.from(document.getElementsByClassName(t))}(i),s=function(t){let{minHeadingLevel:e,maxHeadingLevel:n}=t;const i=[];for(let a=e;a<=n;a+=1)i.push("h"+a+".anchor");return Array.from(document.querySelectorAll(i.join()))}({minHeadingLevel:r,maxHeadingLevel:o}),c=l(s,{anchorTopOffset:n.current}),u=t.find((t=>c&&c.id===function(t){return decodeURIComponent(t.href.substring(t.href.indexOf("#")+1))}(t)));t.forEach((t=>{!function(t,n){n?(e.current&&e.current!==t&&e.current.classList.remove(a),t.classList.add(a),e.current=t):t.classList.remove(a)}(t,t===u)}))}return document.addEventListener("scroll",s),document.addEventListener("resize",s),s(),()=>{document.removeEventListener("scroll",s),document.removeEventListener("resize",s)}}),[t,n])}function h(t){let{toc:e,className:n,linkClassName:i,isChild:r}=t;return e.length?a.createElement("ul",{className:r?void 0:n},e.map((t=>a.createElement("li",{key:t.id},a.createElement("a",{href:"#"+t.id,className:null!=i?i:void 0,dangerouslySetInnerHTML:{__html:t.value}}),a.createElement(h,{isChild:!0,toc:t.children,className:n,linkClassName:i}))))):null}const f=a.memo(h);function g(t){let{toc:e,className:n="table-of-contents table-of-contents__left-border",linkClassName:c="table-of-contents__link",linkActiveClassName:l,minHeadingLevel:u,maxHeadingLevel:h,...g}=t;const p=(0,r.L)(),b=null!=u?u:p.tableOfContents.minHeadingLevel,m=null!=h?h:p.tableOfContents.maxHeadingLevel,y=function(t){let{toc:e,minHeadingLevel:n,maxHeadingLevel:i}=t;return(0,a.useMemo)((()=>s({toc:o(e),minHeadingLevel:n,maxHeadingLevel:i})),[e,n,i])}({toc:e,minHeadingLevel:b,maxHeadingLevel:m});return d((0,a.useMemo)((()=>{if(c&&l)return{linkClassName:c,linkActiveClassName:l,minHeadingLevel:b,maxHeadingLevel:m}}),[c,l,b,m])),a.createElement(f,(0,i.Z)({toc:y,className:n,linkClassName:c},g))}},85162:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var i=n(67294),a=n(86010);const r="tabItem_Ymn6";function o(t){let{children:e,hidden:n,className:o}=t;return i.createElement("div",{role:"tabpanel",className:(0,a.default)(r,o),hidden:n},e)}},74866:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>R});var i=n(87462),a=n(67294),r=n(86010),o=n(12466),s=n(76775),c=n(91980),l=n(67392),u=n(50012);function d(t){return function(t){var e,n;return null!=(e=null==(n=a.Children.map(t,(t=>{if(!t||(0,a.isValidElement)(t)&&function(t){const{props:e}=t;return!!e&&"object"==typeof e&&"value"in e}(t))return t;throw new Error("Docusaurus error: Bad <Tabs> child <"+("string"==typeof t.type?t.type:t.type.name)+'>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.')})))?void 0:n.filter(Boolean))?e:[]}(t).map((t=>{let{props:{value:e,label:n,attributes:i,default:a}}=t;return{value:e,label:n,attributes:i,default:a}}))}function h(t){const{values:e,children:n}=t;return(0,a.useMemo)((()=>{const t=null!=e?e:d(n);return function(t){const e=(0,l.l)(t,((t,e)=>t.value===e.value));if(e.length>0)throw new Error('Docusaurus error: Duplicate values "'+e.map((t=>t.value)).join(", ")+'" found in <Tabs>. Every value needs to be unique.')}(t),t}),[e,n])}function f(t){let{value:e,tabValues:n}=t;return n.some((t=>t.value===e))}function g(t){let{queryString:e=!1,groupId:n}=t;const i=(0,s.k6)(),r=function(t){let{queryString:e=!1,groupId:n}=t;if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=n?n:null}({queryString:e,groupId:n});return[(0,c._X)(r),(0,a.useCallback)((t=>{if(!r)return;const e=new URLSearchParams(i.location.search);e.set(r,t),i.replace({...i.location,search:e.toString()})}),[r,i])]}function p(t){const{defaultValue:e,queryString:n=!1,groupId:i}=t,r=h(t),[o,s]=(0,a.useState)((()=>function(t){var e;let{defaultValue:n,tabValues:i}=t;if(0===i.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!f({value:n,tabValues:i}))throw new Error('Docusaurus error: The <Tabs> has a defaultValue "'+n+'" but none of its children has the corresponding value. Available values are: '+i.map((t=>t.value)).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return n}const a=null!=(e=i.find((t=>t.default)))?e:i[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:e,tabValues:r}))),[c,l]=g({queryString:n,groupId:i}),[d,p]=function(t){let{groupId:e}=t;const n=function(t){return t?"docusaurus.tab."+t:null}(e),[i,r]=(0,u.Nk)(n);return[i,(0,a.useCallback)((t=>{n&&r.set(t)}),[n,r])]}({groupId:i}),b=(()=>{const t=null!=c?c:d;return f({value:t,tabValues:r})?t:null})();(0,a.useLayoutEffect)((()=>{b&&s(b)}),[b]);return{selectedValue:o,selectValue:(0,a.useCallback)((t=>{if(!f({value:t,tabValues:r}))throw new Error("Can't select invalid tab value="+t);s(t),l(t),p(t)}),[l,p,r]),tabValues:r}}var b=n(72389);const m="tabList__CuJ",y="tabItem_LNqP";function v(t){let{className:e,block:n,selectedValue:s,selectValue:c,tabValues:l}=t;const u=[],{blockElementScrollPositionUntilNextRender:d}=(0,o.o5)(),h=t=>{const e=t.currentTarget,n=u.indexOf(e),i=l[n].value;i!==s&&(d(e),c(i))},f=t=>{var e;let n=null;switch(t.key){case"Enter":h(t);break;case"ArrowRight":{var i;const e=u.indexOf(t.currentTarget)+1;n=null!=(i=u[e])?i:u[0];break}case"ArrowLeft":{var a;const e=u.indexOf(t.currentTarget)-1;n=null!=(a=u[e])?a:u[u.length-1];break}}null==(e=n)||e.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.default)("tabs",{"tabs--block":n},e)},l.map((t=>{let{value:e,label:n,attributes:o}=t;return a.createElement("li",(0,i.Z)({role:"tab",tabIndex:s===e?0:-1,"aria-selected":s===e,key:e,ref:t=>u.push(t),onKeyDown:f,onClick:h},o,{className:(0,r.default)("tabs__item",y,null==o?void 0:o.className,{"tabs__item--active":s===e})}),null!=n?n:e)})))}function w(t){let{lazy:e,children:n,selectedValue:i}=t;const r=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const t=r.find((t=>t.props.value===i));return t?(0,a.cloneElement)(t,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},r.map(((t,e)=>(0,a.cloneElement)(t,{key:e,hidden:t.props.value!==i}))))}function x(t){const e=p(t);return a.createElement("div",{className:(0,r.default)("tabs-container",m)},a.createElement(v,(0,i.Z)({},t,e)),a.createElement(w,(0,i.Z)({},t,e)))}function R(t){const e=(0,b.default)();return a.createElement(x,(0,i.Z)({key:String(e)},t))}},86233:(t,e,n)=>{"use strict";n.d(e,{Z:()=>f});var i=n(67294),a=n(86010),r=n(95999),o=n(39960);const s="tag_zVej",c="tagRegular_sFm0",l="tagWithCount_h2kH";function u(t){let{permalink:e,label:n,count:r}=t;return i.createElement(o.default,{href:e,className:(0,a.default)(s,r?l:c)},n,r&&i.createElement("span",null,r))}const d="tags_jXut",h="tag_QGVx";function f(t){let{tags:e}=t;return i.createElement(i.Fragment,null,i.createElement("b",null,i.createElement(r.default,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),i.createElement("ul",{className:(0,a.default)(d,"padding--none","margin-left--sm")},e.map((t=>{let{label:e,permalink:n}=t;return i.createElement("li",{key:n,className:h},i.createElement(u,{label:e,permalink:n}))}))))}},29656:(t,e,n)=>{"use strict";n.r(e),n.d(e,{Collapsible:()=>c.z,ErrorBoundaryError:()=>T.aG,ErrorBoundaryTryAgainButton:()=>T.Cw,ErrorCauseBoundary:()=>T.QW,HtmlClassNameProvider:()=>h.FG,NavbarSecondaryMenuFiller:()=>g.Zo,PageMetadata:()=>h.d,ReactContextError:()=>d.i6,SkipToContentFallbackId:()=>S.u,SkipToContentLink:()=>S.l,ThemeClassNames:()=>l.k,composeProviders:()=>d.Qc,createStorageSlot:()=>a.WA,duplicates:()=>R.l,filterDocCardListItems:()=>o.MN,isMultiColumnFooterLinks:()=>w.a,isRegexpStringMatch:()=>x.F,listStorageKeys:()=>a._f,listTagsByLetters:()=>y,prefersReducedMotion:()=>u.n,processAdmonitionProps:()=>C,translateTagsPageTitle:()=>m,uniq:()=>R.j,useCollapsible:()=>c.u,useColorMode:()=>f.I,useContextualSearchFilters:()=>r._q,useCurrentSidebarCategory:()=>o.jA,useDocsPreferredVersion:()=>k.J,useEvent:()=>d.zX,useIsomorphicLayoutEffect:()=>d.LI,usePluralForm:()=>s.c,usePrevious:()=>d.D9,usePrismTheme:()=>_.p,useSearchLinkCreator:()=>v.M,useSearchQueryString:()=>v.K,useStorageSlot:()=>a.Nk,useThemeConfig:()=>i.L,useWindowSize:()=>p.i});var i=n(86668),a=n(50012),r=n(43320),o=n(53438),s=n(88824),c=n(86043),l=n(35281),u=n(91442),d=n(902),h=n(10833),f=n(92949),g=n(13102),p=n(87524),b=n(95999);const m=()=>(0,b.translate)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function y(t){const e={};return Object.values(t).forEach((t=>{const n=function(t){return t[0].toUpperCase()}(t.label);null!=e[n]||(e[n]=[]),e[n].push(t)})),Object.entries(e).sort(((t,e)=>{let[n]=t,[i]=e;return n.localeCompare(i)})).map((t=>{let[e,n]=t;return{letter:e,tags:n.sort(((t,e)=>t.label.localeCompare(e.label)))}}))}var v=n(66177),w=n(42489),x=n(98022),R=n(67392),_=n(66412),k=n(60373),E=n(67294);function C(t){var e;const{mdxAdmonitionTitle:n,rest:i}=function(t){const e=E.Children.toArray(t),n=e.find((t=>{var e;return E.isValidElement(t)&&"mdxAdmonitionTitle"===(null==(e=t.props)?void 0:e.mdxType)})),i=E.createElement(E.Fragment,null,e.filter((t=>t!==n)));return{mdxAdmonitionTitle:null==n?void 0:n.props.children,rest:i}}(t.children),a=null!=(e=t.title)?e:n;return{...t,...a&&{title:a},children:i}}var S=n(55225),T=n(69690)},88824:(t,e,n)=>{"use strict";n.d(e,{c:()=>l});var i=n(67294),a=n(52263);const r=["zero","one","two","few","many","other"];function o(t){return r.filter((e=>t.includes(e)))}const s={locale:"en",pluralForms:o(["one","other"]),select:t=>1===t?"one":"other"};function c(){const{i18n:{currentLocale:t}}=(0,a.default)();return(0,i.useMemo)((()=>{try{return function(t){const e=new Intl.PluralRules(t);return{locale:t,pluralForms:o(e.resolvedOptions().pluralCategories),select:t=>e.select(t)}}(t)}catch(e){return console.error('Failed to use Intl.PluralRules for locale "'+t+'".\nDocusaurus will fallback to the default (English) implementation.\nError: '+e.message+"\n"),s}}),[t])}function l(){const t=c();return{selectMessage:(e,n)=>function(t,e,n){const i=t.split("|");if(1===i.length)return i[0];i.length>n.pluralForms.length&&console.error("For locale="+n.locale+", a maximum of "+n.pluralForms.length+" plural forms are expected ("+n.pluralForms.join(",")+"), but the message contains "+i.length+": "+t);const a=n.select(e),r=n.pluralForms.indexOf(a);return i[Math.min(r,i.length-1)]}(n,e,t)}}},14732:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAIRlWElmTU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABIAAAAAQAAAEgAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAACCgAwAEAAAAAQAAACAAAAAAX7wP8AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAACexJREFUWAmdV2tsXMUV/uY+d9d3/YqDHUKKSYLzDiIpUAEFB9EUWhApiYOaIgjQJog/ULVQVQVpS6nUltJUiNLmoZZfVMS0lGdBPOzmgSolEIVgEsvkYRLb8Sv2rnfv7t7X9JxZ72YNVJV6tbt37p2Z833nO2fOzAr8jyslU9rSzh6xcWNnyEOllNr2Pfcv8CL/4hBBfWm6MRnXzP6t1/3puBAi4ncduzt0vndOz+P2l13iy16W323fvsXcunWHz89/6P7BFYUwf08U+d8IZTjfjGmaEFINjSIJrxBFGrQTmqa/bZnxvzzU/twB7tyyfbW5Y+sHyoYa/Lmf/0ZApLra9dSa7mDX+w8sTOfT26AHt+iWICAfga/ECCXpwR+AqUhdNwUsW0dQpKdQfz0O54cPrn2uj2wZZIsnlRhXkfgyAiIlIVIC0e+77r3PD3I7zQREPutHEAgRQYeQDKjmUkhK5gS1InpJY6Io0mOOoXmulKYW2/LI2hd2kU0txQTETBJaFRnVpNhpDL7tvc2PGwl/VygDUciFPsWWx5pkQCNIMkP4lS/1MDT3ESbfi27oRzRXd/ydv3prwy9SZLOjs+MLeCpRyiRYqmdveSPc1nX3j61k9ER2Mh8Aao5RHlO6E7hOgujcHVIACL8kSPUwsq1FxaIfJmq19vaNy9ynb3txH+fEB68NqUTlwUpGbkzHKXj6vXuuj0yvu+B6EftUkrokM7VZRHI2QuQmIIs2rwrSpQjdyUJGbI5HlcazXWpLRFJaCUPTfLv9kbWd/ypjcX+ZgJpJxsRv3/3uMc2UbUExCmjytOfnjcqQWJk+Mh/PgduTJCXISMsk6lYNwrJMgqNEmEmAWMjQsIQeeqLv0ZtfXUTh5CEcMqn0JUYqFE+9d+dW29Ha/GLol8DZk/PecJPMQDNIfiOENCkEFq0wahfcEF4xUOFgzz536QEVjlitfukT/7ztfu5LdZcwZyjw67c3HCamK8l7WmLsW0lQviseWoQwnUThdAOK52hJjmvqtZ4MYNZSWJvOId6ShklLkUNTUUKtFFLB1kgF+dFjN79xGVlUqmvTFUv+5t07VgkdK70irSJa06Xp095XiZD5pA7pIyaKE6TfrAxA3yArkD9loXiyHvmMhF8gfcuuKXDFXydlpdDFyl++eesqdomxtWWzR9VQGchr7ZjBgSFtpz0u39UjUSInI/rRYgQwbxTxxQNILBmAcckYhYFyjaizY/lsRAXrPImyEhT7gCooqJJeSwPRMEGFkxt8RSJYwelDAGXupQ76LRtg0ciISjSzMUc9BpEyYDZRm8LDWcX5RV6i6EqEngFDj0EXlrJFYijbRHQFv7iwLSmNpaOzlcAyilrCgChUx05Nq/qhvtBjH6kYZhsgnGEldTjeBBFR3GmF0LZA1YjJ6DiX7gfsPtixZtTobcqQwohkCz8wttE5bT8et2w7YYCCT9dMEUoMyTDJnG/NYLDfR21/LZCLqWj5oyZcN4fkgiycJBdCE/lwBDfN+wnmNbYh441j/9B2MusJu8Yi3TwlCWNrHR0lBqatuXZMpwzW6Esmqr4WtWNxGwUcx7dv2Ii7Nt+JwbMD8IZj8IZsDI8OY936dbhpzTp44hTiiTh0q4BFcy/H8otXYf6sZQjCAqyYIe24BsPW84zK2MYn3aUkpLicUXVPBZx9ZhWU79TS4EUZNJlXY1HD1XDmJpH3snjh+Reh6zrW374BV37tq0qFo2PXIB18inp7CWosWrJeEWPZIbj+AKzipVI6ZFNGp5kAY59PwkgeUvGvJGEJnPkIYZCkZ3BlyybYRgK+TwWnIYf4irNIrByGOScH3wtgGTFcdWEHRgpvY0nTjUjGG7gKYzB9nBKzQPlFS8wjixKHmABfGtrb1cYgwmiPm6FeQSGqpGLpMR8OYb6zAa31y8kQMDR6Gm/1PoU5i220tGk4OLwLI5MDSrS5tQtxzQW/w2Vzr1MrJpefwtHxd0iNVjLmGy5t624+2qvQCZu23lTEx64Hr/9bHzHbE6NEJN/ViUMNoh9W5oqWdbSkTDqM+Nhz9BXYtgM9jJFLcZiWg0PDb5EyVJYpcjct2Yxa8p5D1zPwb4yH+2BqydCqIcGl3PPY2tf6GJOxSyHo7lb3MJTb1LpSmHSCoGzOBcexouEuNDsXk3GJ/rPHsffMw/CjcUwW+1S88/4IjqQfxUjuNBrqGqEbGnTNwGcjfdg39AxqY4voHONJrjpRgN8rx6YxK+utzGjb3g1diTqzvZANaEMKTQ0WNrY9Bceu4wqGIPAxTHJ/NtaLdHFU8a1PzMa8WW1orp0HwzCZPvJuAbs/fhxT2iewtEY/lpSmmwm6Hlnzyg1lLCbyuYMGELji3rzwei0rZk4WDodrLnxSr4s10SooUEXTYcdjWBBfgvkti+nsVYoUHURBJ1SVcL7nYcqdgqSNcvGsdrx/bn+YMJvM/BSthyncx6A9dMrmO1+UUqWr++fdkg8KP7vxjXPfvHP1h4inNzVZV2lfv2hTpOuamJyawEv7/0yMqZDoFnlOZ2BeRJQwfkCguTRODfdiz6edaDDnIhFz0GC3RGfdAd3TB4Fi8taf3vz3A4zBp64yboVJ+UX5tLL5Zdz+8OUHXmxtXC7oAO6/uv95/dW+e7WG+BVojC/CnGSbWmbMwfUnMOb1IYtjCI0DuLz2meiaizbQ1ifNM+ljctexNet3rsdLZdtlLL5/gQBlvE4bTiiLckW2mP2IC81Y5iyefP0O1MVbfdp0RChczUeaRMhTwlEcjThss17aZiKiBJRFccb8ziWUfFoLb260BOsva2x2Pirbriagsr/6BbVVXUgX0judpMNLsLDv0Ds76ZQwYiU004hFhkV7qmM2i6R5iagx5ouE0SIoZzTCN2xHmFEghj881fVHmus6yRpMFcZ3TmMo29V4MwjQBIPPaxMTE3c7Nc5VvL9nc9nOTd/asmVp0z1LJ8ay389lgpe9vN/vB34hiHxKRI9zoFAs+Keyk/4/zo1k72sZX7/0e9f96IF8wf1rFJICNTVXnjx5cjPbZoxqApUQUAf1C3nw4EFz4cKFRxOJxIJsNusODQ0tWLZs2dnqSau3rDavXn5BM9Uf2hKBmK6n39w/NPLBjpl/wbq6uppaW1uPO45Tm8vlTtB3CdnyyljVNllqpcbg4OBXMplMQM+S2g/xICZFN/67Zuye/tM5Y/L0w27ZofMYHkvTlae9vb0P5PN52d/fH504cYKqmapyFeUrcnR2dio1TNOcTSU1ogn3E/tdTIyUUX8u+b/iNJZIpVIV9fgdPcuNovQPmp9pDjvBc589fPhwjsKwIwzDZurqL2PxuMpFg5VBYtnc09OzkDvYQGXA/9ko29i7d+/8I0eOMAG2WyH/H45a9ExgQQ3bAAAAAElFTkSuQmCC"},20625:function(t,e,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,a)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),a=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),r=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return a(e,t),e},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const s=r(n(67294)),c=o(n(83971)),l=o(n(52263)),u=o(n(72389)),d=n(86341),h=o(n(25510)),f=o(n(14732)),g=o(n(74071)),p=n(28084),b=[{names:["fbsource","fbs"],project:"fbsource",canonicalName:"fbsource"},{names:["www"],project:"facebook-www",canonicalName:"www"}];e.default=t=>{const{siteConfig:e}=(0,l.default)(),n=(0,p.usePluginData)("internaldocs-fb").opts.maxCodeBlockHeight,i=(0,u.default)(),a=(0,s.useRef)(null),r=(0,s.useRef)(null),o=(0,s.useRef)(null),m=(0,s.useRef)(!1),y=(0,s.useCallback)((t=>{m.current||(window.requestAnimationFrame((()=>{r.current&&o.current&&(t.target.scrollTop>0?r.current.style.boxShadow="0 1em 1em -1em black inset":r.current.style.boxShadow="none",t.target.scrollTop===t.target.scrollHeight-t.target.offsetHeight?o.current.style.boxShadow="none":o.current.style.boxShadow="0 -1em 1em -1em black inset"),m.current=!1})),m.current=!0)}),[]);(0,s.useEffect)((()=>{a.current&&(a.current.addEventListener("scroll",y),window.requestAnimationFrame((()=>{y({target:a.current})})))}));const v=function(t){try{return(0,c.default)(t)}catch(e){return s.default.createElement("p",{style:{color:"red",fontWeight:"bold"}},"Could not render codeblock")}}(Object.assign({children:""},t));if(!i)return v;if("string"!=typeof t.file)return v;let w,x,R,_;if((0,d.isInternal)()){if(!e.customFields)return v;const{fbRepoName:n,ossRepoPath:i}=e.customFields;if("string"!=typeof n)return v;w="string"==typeof i&&"string"!=typeof t.repo?function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.map((t=>t.startsWith("/")?t.slice(1):t)).map((t=>t.endsWith("/")?t.slice(0,t.length-1):t)).join("/")}(i,t.file):t.file;const a=b.find((e=>{var i;return e.names.includes((null!==(i=t.repo)&&void 0!==i?i:n).toLowerCase())}));if(void 0===a)return v;x=function(t,e){const n=new URL("https://www.internalfb.com");return n.pathname="/code/"+t.canonicalName+"/"+e,n.toString()}(a,w),R=function(t,e){const n=new URL("https://www.internalfb.com/intern/nuclide/open/arc");return n.searchParams.append("project",t.project),n.searchParams.append("paths[0]",e),n.toString()}(a,w),_=function(t,e){if("fbsource"!==t.canonicalName||!e.startsWith("fbandroid"))return null;const n=new URL("fb-ide-opener://open");return n.searchParams.append("ide","intellij"),n.searchParams.append("filepath","/fbsource/"+e),n.toString()}(a,w)}else{if("string"!=typeof e.organizationName||"string"!=typeof e.projectName)return v;w=t.file,x=function(t,e,n){const i=new URL("https://github.com");return i.pathname="/"+t+"/"+e+"/blob/master/"+n,i.toString()}(e.organizationName,e.projectName,t.file),R=null,_=null}const k=w.split("/"),E=k[k.length-1];return s.default.createElement("div",null,s.default.createElement("a",{href:x,title:"Browse entire file",target:"_blank",rel:"noreferrer",onClick:()=>d.feedback.reportFeatureUsage({featureName:"browse-file",id:w}),className:g.default.CodeBlockFilenameTab},E),null!==R?s.default.createElement("a",{target:"_blank",rel:"noreferrer",href:R,onClick:()=>d.feedback.reportFeatureUsage({featureName:"open-in-vscode",id:w})},s.default.createElement("img",{style:{padding:"0 6px",height:"16px"},title:"Open in VSCode @ FB",src:h.default})):null,null!==_?s.default.createElement("a",{target:"_blank",rel:"noreferrer",href:_,onClick:()=>d.feedback.reportFeatureUsage({featureName:"open-in-android-studio",id:w})},s.default.createElement("img",{style:{padding:"0 6px",height:"16px"},title:"Open in Android Studio",src:f.default})):null,s.default.createElement("div",{style:{position:"relative"}},s.default.createElement("div",{ref:a,style:{maxHeight:n,overflowY:"auto"}},v),void 0===n?null:[s.default.createElement("div",{key:"shadowtop",ref:r,style:{bottom:0,left:0,right:0,top:0,pointerEvents:"none",transition:"all .2s ease-out",boxShadow:"none",position:"absolute"}}),s.default.createElement("div",{key:"shadowbottom",ref:o,style:{bottom:0,left:0,right:0,top:0,pointerEvents:"none",transition:"all .2s ease-out",boxShadow:"none",position:"absolute"}})]))}},25510:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAG/0lEQVR42r2XbVBU5xXH/yB1mpk6Tqa1k1Fsa9hFzdhJJhknzfRDZ2rHdpx2mklDbdOZ1tpWg0GhgK/4shIBESTaqiNjTaOGoMsCu4ggb8E3UqQUd3mxRUVjaBKbMO7dF5Zl793n9NxnL9wdGMcvJP/ZM+d57of9/8459z57FzMvSkCafZZc2mmWjC9NNlsiDKURzTbXXwaI3W4abG869s0jAw8W1wfPpNb871mwvtiO2NqTjNUs7GxtxJtdlLijnRa3EC1uGCOrS6m2OkZeNKdEiZgxrSv/isxrT85BXvN1FHQRtjePJ21rjVprvGpqfVAsadNBwpTq8jVY7J//YAbNu2PmGZXzsaP5FvL/QdyBcWxrpqStLWSp9lJqXYCNAypHdAl3ZCnDpNZ4Dz6yE3KWRAl4nMoN86yapWz+ALZrXHlLBHmthK1NlLSl2QAIktUZkJHqDERS63kktf7QU4VX5k1/fGySyLxhHld57vmXuN1B7L4szTmIYQhbLlLS5maRUvWQ5x9kw8AEhLDWhchS4/Mml32wAJOKr7jE8yL2t8w1q3zEzLPrfoptTYS894mzym3XM4Nw3tyoJW1poRSHogMIHcAIkVo3xp3xKQuLr803K59QmacU5cOEt/qGUNS1fKITBmDC5N2eU/873VhWvPWiprc8FhdjMDsuUVJOQ9BSpYSszlGyVvvJWhPgYAAXAzhMALP60t5ynPiEcGgggiN3ON8klLgzYCjOPAe7LkszbrUms4zGqNzbPiBkOTvnbji5kiv93OoKc8UBwSGz1TkFQCr92JM42DeOw4OEsn4VZQMaB+H4MPFIKrHG9tWY+YVi7LrKxmwWCzJCxdZmHsclQqbjbwBmLzhy/esWu+Kz1obY0C84ZJb7KsUEmLzxdrf9Hm/9m/RgGA0H+wVHBMc/1qH+iewLZ5DbSsht1DgENjcQh76PgA8d7kwY60//AYYWFLcnW+xexVqjG/oFhwSQe3s8QDzE9oZXUdKr4RB3orRPRWk/8V7F4duEw0NcaauGDTWE7Ho2bBDcEQ07r3DLXf1YfeB56GonOaqFxc3zU84piqU6RCk6gN0vs9yfMwHiIWIzzq5agWJPUDeUMCV9hAN9UZT0MxCPZXcHIb1WIPM8YcdlwkbHaQBzJ+8T4wdpoa15/tNnFSXFwYZ2v0g555dZ7s9OAZj27K/7+3ex330XZdyJ4t4oA+hZBkMI7PsXIaNuFK8dXTOti0QJEwAplV7FUqVXLAFk5r0J8Mhn/OWi7yC9eggFN7gLA1Hs90wC8FrwNT2P8tH7y/gTdBrAewbAWb/gkNli532lCTD9dEuveAGZdT78uZGwvlqD7TqPgCGKPBqKdACOIoYoZohD9wgFPcfij+cJgG9IAEV5hg2XsfHSSj8b650I0dPvTQVIM+jTz/0ImS4VOWyeVacio5awrkrFni5C2R02dmsodBMKPXoIuT/0IfG1buy8vCg2ioHZYG080Zm8pMKroGKUcEoROOOjZZU+8ax9lBZVMIBt6mO4wf4qsupJxianhk0uIWFy2whr3+3Dro5alN3VjTVpXsAQMtwRlN7W8yj2dv4Cpubg1MOHa/l9ILcpIF5z+QnvMMipID3Ho5EAZgf2z8XG2rBhrvI6ypmQ20LcFReWr3oKuvKuHkXpEGGfO2oExeKGisI+eoJBEvO7D4KljEbWf+rTSI0SCf5ENEH3H2qirGOccMKrvPKX9mTEKQGvV57G5jZi8wiyLnB2Ef74Tt70s+LSXhTfIrzp1iNqZErk9bwCt8DeQeq9671PpsTUddPNkBd4e97UH6NE/Ond48huImxwfITVZSsnjOWNFf9zndu0CQUDbOwh5PdoyL9BiwoYJKdbODo+0YgVFfwRMcO6jjCtLg3QuqNBGg2LKLFCofE0sKZCJODXR3+CH77x7Ue8EyRMXstq+A1sPdz+fvpaPo9gdw8tP9BLwXDMX2MCXe7bEcIrCq3cF6C/OkM6gEYx9WLal8tKzZY/9iX0Dccq7Oke+1bRTa6+Sy1x3iWWLN3wpytunvkqhW5+qMq9ECJ+LMtgKt74sa9k5tG99tRLlr3dI8jto4pLw5EJE5XrvPepRif5KcBvfeS8Gqahj1W+Lr0nurBiRl7H03KOP4P0jnsn3x8hloQYiwhChk+af3+Pn/BzhVYUBshQ1Mjfm8H/BMsXppd7PBRTRO/ArWGVys+HCGt8dLZtjIY/0+LNP+OYgxmRebM++WDE3yVdohTW81XPOOHHCt36SJXT4etjBkAhZlJ2ikF0tjcka5r2X8NEa+sej+Bnitp7R43EVX+NIxEzLTIgBgcHF6iquECsrttEeJno/ohBFKW3yfjj+sVBmOvnL3aGM/Ern63nP5F03i+BlGn+f10JyvFCZOA3AAAAAElFTkSuQmCC"},60555:function(t,e,n){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.Button=void 0;const a=i(n(67294)),r=i(n(86010)),o=i(n(43150));e.Button=t=>{let{children:e,className:n,onClick:i,style:s,type:c,disabled:l}=t;return a.default.createElement("button",{className:(0,r.default)(o.default.button,n),onClick:i,style:s,type:c,disabled:l},e)}},92705:function(t,e,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,a)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),a=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),r=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return a(e,t),e},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.ClosableDiv=e.EditorTrigger=void 0;const s=r(n(67294)),c=o(n(83253)),l=o(n(39960)),u=n(29656),d=n(28084),h=o(n(44996)),f=n(60555),g=n(6434),p=n(32471),b=n(86341),m=n(19445),y=n(86341),v=n(78641),w=o(n(47181)),x=o(n(10275));function R(t){let{onDecision:e,lastEditTimestamp:n}=t;return s.default.createElement(s.default.Fragment,null,s.default.createElement("h3",null,"Continue"),s.default.createElement("p",null,"Do you want to continue with your last edit?"),n&&s.default.createElement("p",null,"created on: ",new Date(Number(n)).toLocaleString()),s.default.createElement("div",{style:{display:"flex",flexDirection:"row",gap:12,justifyContent:"end"}},s.default.createElement(f.Button,{onClick:()=>{e(!1)}},"No"),s.default.createElement(f.Button,{onClick:()=>{e(!0)}},"Yes")))}function _(){return(0,d.usePluginData)("internaldocs-fb")}const k=t=>/\.mdx?$/i.test(t),E=t=>t.replace(/[\w\d.-_]/gi,"").length>0,C=t=>t.startsWith("../")||t.includes("/../");function S(t){let{onSubmit:e,repoRootToWebsiteRoot:n}=t;const[i,a]=(0,s.useState)(""),r=!i||!k(i)||E(i)||C(i);return s.default.createElement("form",{onSubmit:t=>{t.preventDefault(),r||e(i)}},s.default.createElement("label",{style:{display:"block",marginBottom:12}},s.default.createElement("span",null,"New page file path"),s.default.createElement("div",{style:{display:"flex"}},s.default.createElement("code",null,n,"/"),s.default.createElement("input",{type:"text",value:i,placeholder:"docs/path/to/file.md",onChange:t=>{let{target:e}=t;return a(e.value)},style:{flexGrow:1},autoFocus:!0}))),r&&s.default.createElement("ul",{className:x.default.filepath_validation_list},!k(i)&&s.default.createElement("li",null,"You can only create markdown and mdx files, must end with `.mdx` or `.md`"),E(i)&&s.default.createElement("li",null,"File path contains disallowed symbols. You can use alphanumricals, dot, slash, hyphen and underscore."),C(i)&&s.default.createElement("li",null,"You cannot create files outside of website directory")),s.default.createElement(f.Button,{type:"submit",disabled:r,style:{display:"block",marginLeft:"auto"}},"Continue"))}function T(t){let{isOpen:e,onClose:n,kind:i,editUrl:a}=t;var r,o,d;const[f,p]=(0,s.useState)({type:i===m.DiffKind.modify?"restore-session-prompt":"input-new-page-path"}),y=_(),{repoRootToWebsiteRoot:w}=y,x=(0,s.useMemo)((()=>"pageRawContent-"+(0,v.generateHash)(""+(0,b.getEphemeralDiffNumber)()+a)),[a]),[k,E]=(0,s.useState)(null),C=(0,s.useMemo)((()=>(0,v.getFilePathRelativeToDocsFolder)(a,y.docsDir)),[a,y.docsDir]),T=(0,h.default)("_src/"+C),D=(0,s.useMemo)((()=>(0,u.createStorageSlot)(x)),[x]),I=(0,s.useCallback)((()=>{var t;p({type:"submitting"});const e=null==k?void 0:k.pageRawContent,n=(0,b.hasEphemeralDiffNumber)()?Number(null===(t=(0,b.getEphemeralDiffNumber)())||void 0===t?void 0:t.slice(1)):null;if(null==k)throw new Error("Attempting to submit a diff with null content, report to staticdocs oncall");const r=i===m.DiffKind.add?k.newFilePath:a?(0,v.getFilePathRelativeToRepoRoot)(a):null;if(!r){const t="The provided url "+a+" is invalid";throw p({type:"failed",reason:t}),new Error(t)}if(null==e)throw p({type:"failed",reason:"The page's raw content cannot be null"}),new Error("The page's raw content cannot be null");b.inpageeditor.submitDiff({file_path:r,new_content:e,project_name:null,diff_number:n,diff_kind:i}).then((t=>{p({type:"success",url:t.xfb_static_docs_editor_create_diff.url,diffId:t.xfb_static_docs_editor_create_diff.number_with_prefix})})).catch((t=>{const e="Error occurred while trying to create diff from editor. Stack trace "+t;throw p({type:"failed",reason:e}),new Error(e)}))}),[p,a,k,i]);(0,s.useEffect)((()=>{if(i===m.DiffKind.add)return;const t=D.get();try{E(t?JSON.parse(t):null)}catch(e){E(null)}}),[D,i]);const L=(0,s.useCallback)((t=>{if(t){const t=D.get();if(null==t)throw new Error("Cannot restore page raw content with no saved state in local storage");const e=JSON.parse(t);p({type:"editing"}),E({pageRawContent:e.pageRawContent,timestamp:e.timestamp,newFilePath:""})}else p({type:"loading-raw-content"}),fetch(T).then((t=>{if(!t.ok){const t="Failed to fetch page raw content from server.";throw p({type:"failed",reason:t}),new Error(t)}return t.text()})).then((t=>{E({pageRawContent:t,timestamp:Date.now().toString(),newFilePath:""}),p({type:"editing"})})).catch((t=>{p({type:"failed",reason:"Error occurred while trying fetch page raw content. Stack trace "+t})}))}),[p,T,D]);(0,s.useEffect)((()=>{if(i===m.DiffKind.add)return;null===D.get()?L(!1):p({type:"restore-session-prompt"})}),[]);const O=(0,s.useCallback)((t=>{D.set(JSON.stringify(t)),p({type:"editing"}),E({pageRawContent:t.pageRawContent,timestamp:t.timestamp,newFilePath:t.newFilePath})}),[p,D]),{colorMode:M}=(0,u.useColorMode)(),N=(0,s.useMemo)((()=>{let t="min(80vw, 1916px)";return"restore-session-prompt"!==f.type&&"loading-raw-content"!==f.type||(t="min(20, 360px)"),"input-new-page-path"===f.type&&(t="min(40, 520px)"),{content:{backgroundColor:"dark"===M?"black":"white",width:t,maxHeight:"calc(100% - 100px)",margin:"80px auto 10px",inset:"auto",overscrollBehavior:"contain"},overlay:{background:"rgba(0, 0, 0, .5)","overflow-y":"auto",display:"flex",alignItems:"flex-start",justifyContent:"center",zIndex:10}}}),[M,f.type]),B=null!==(r=null==k?void 0:k.timestamp)&&void 0!==r?r:null;return s.default.createElement(c.default,{ariaHideApp:!1,isOpen:e,shouldCloseOnOverlayClick:!1,shouldCloseOnEsc:!1,style:N},"restore-session-prompt"===f.type&&s.default.createElement(R,{onDecision:L,lastEditTimestamp:B}),"loading-raw-content"===f.type&&s.default.createElement("div",null,"Loading raw page content..."),"input-new-page-path"===f.type&&s.default.createElement(S,{repoRootToWebsiteRoot:w,onSubmit:t=>{E({timestamp:Date.now().toString(),pageRawContent:"",newFilePath:w+"/"+t}),p({type:"editing"})}}),"editing"===f.type&&s.default.createElement(g.SDocEditor,{pageRawContent:null!==(o=null==k?void 0:k.pageRawContent)&&void 0!==o?o:"",diffKind:i,newFilePath:null!==(d=null==k?void 0:k.newFilePath)&&void 0!==d?d:"",setPageRawContentVersion:O,onEditorSubmit:I,handleCloseEditor:n,isSubmitting:!1}),"submitting"===f.type&&s.default.createElement(A,{onClose:n},"Submitting changes..."),"success"===f.type&&s.default.createElement(A,{onClose:n},"Diff has been submitted"," ",s.default.createElement(l.default,{to:f.url},f.diffId)),"failed"===f.type&&s.default.createElement(A,{onClose:n},"Error: ",f.reason))}function A(t){let{children:e,onClose:n}=t;return s.default.createElement("div",null,s.default.createElement(f.Button,{onClick:n,style:{position:"absolute",padding:"2px 2px 1px",top:0,right:0}},s.default.createElement("img",{src:w.default,style:{height:"17px"}})),e)}e.EditorTrigger=function(t){let{position:e}=t;var n;const i=null===(n=(0,p.useDocMeta)())||void 0===n?void 0:n.metadata,[a,r]=(0,s.useState)({isOpen:!1,kind:m.DiffKind.modify}),o=_(),c=(0,s.useMemo)((()=>(null==i?void 0:i.editUrl)?(0,v.getFilePathRelativeToDocsFolder)(i.editUrl,o.docsDir):null),[i,o.docsDir]);if(null==i)return null;const{editUrl:l}=i;if("before-post"===e&&"top"!==o.opts.enableEditor)return null;if("after-post"===e&&![!0,"bottom"].includes(o.opts.enableEditor))return null;if(!(l||i.lastUpdatedAt||i.lastUpdatedBy))return null;o.repoRootToWebsiteRoot;const u="undefined"!=typeof window&&"1"===new URLSearchParams(window.location.search).get("enableEditor");return l&&c&&(u||(0,y.isInternal)()&&true)?s.default.createElement("div",{className:"margin-vert--"+("after-post"===e?"xl":"xs"),id:"editor-trigger"},s.default.createElement(f.Button,{onClick:()=>r({isOpen:!0,kind:m.DiffKind.modify}),style:{marginRight:8}},"Edit this page"),s.default.createElement(f.Button,{onClick:()=>r({isOpen:!0,kind:m.DiffKind.add})},"Add new page"),a.isOpen?s.default.createElement(T,{isOpen:!0,kind:a.kind,onClose:()=>{r({isOpen:!1,kind:m.DiffKind.modify})},editUrl:l}):null):null},e.ClosableDiv=A},47181:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKdJREFUeNrslQEKgDAIRefooO0GO0o3WFfqRNZAotbcNLAIGkjUPr7U6TwiOkvzznh9HzCUHwAgPyK9TkI/uz7n/bTKopAYyZLAeTroo7bIYweSSMOvSgTlX3GRVDUXfwygB2H3NADOUTM6LaAGaabuDoCDJElNzRvt9RSZFtn0mJo2WpScFgainkXzZqGxH0gjH9fFiJaM6wxZOD00muu/Mp8BrAIMAE/aslxTtku5AAAAAElFTkSuQmCC"},6434:function(t,e,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,a)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),a=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),r=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return a(e,t),e},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.SDocEditor=void 0;const s=r(n(67294)),c=o(n(39960)),l=o(n(95999)),u=o(n(44996)),d=o(n(74866)),h=o(n(85162)),f=n(2497),g=n(3905),p=o(n(75854)),b=n(19445),m=n(60555),y=n(77437),v=o(n(1925)),w=t=>({...p.default,MDXProvider:g.MDXProvider,Link:c.default,Translate:l.default,Tabs:d.default,TabItem:h.default,__unknownComponent:e=>function(n){const i=e in t,a=s.default.useMemo((()=>Object.keys(n).reduce(((t,e)=>("children"!==e&&(t[e]=n[e]),t)),{})),[n]);return s.default.createElement("div",{className:v.default.unknown_component},i&&s.default.createElement("p",null,"Live preview does not support imported components"),s.default.createElement("p",{style:{marginBottom:4}},i?"Imported":"Unknown"," component"," ",s.default.createElement("b",null,s.default.createElement("code",null,e))," ","with props ",s.default.createElement("code",null,(t=>{try{return JSON.stringify(t)}catch(e){return console.warn("Could not stringify props for UnknownComponent",t),"Could not stringify"}})(a))),!i&&s.default.createElement("details",null,s.default.createElement("summary",null,"Why did it not render?"),"Editor cannot render it due to the component being custom or nondefined"),n.children?s.default.createElement("div",{className:v.default.unknown_component_children},n.children):null)}});function x(t){let{onCancel:e,isSubmitDisabled:n,diffKind:i,filename:a}=t;return s.default.createElement("div",{className:v.default.editor_header},s.default.createElement("span",null,s.default.createElement("h2",{style:{margin:0}},"Staticdocs editor"),i===b.DiffKind.add?"Add content for a new file "+a:"Edit existing "+a),s.default.createElement("div",{className:v.default.cta_wrapper},s.default.createElement(m.Button,{onClick:e},"Cancel"),s.default.createElement(m.Button,{type:"submit",disabled:n},"Publish Diff")))}function R(){return s.default.createElement("div",{className:v.default.show_info},s.default.createElement("h3",null,"Note"),s.default.createElement("p",null,"The Live preview fails to render. ",s.default.createElement("br",null),"This might be because we currently do not have support for the operation being performed on the page e.g code-snippets. Please ignore this"," ",s.default.createElement("b",null,"if you are sure")," it is the case and continue with the editor."," ",s.default.createElement("b",null,"Happy Editing!")))}e.SDocEditor=function(t){let{onEditorSubmit:e,handleCloseEditor:n,pageRawContent:i,setPageRawContentVersion:a,isSubmitting:r,diffKind:o,newFilePath:c}=t;const[l,d]=(0,s.useState)(!1),[h,p]=(0,s.useState)({}),b=s.default.useMemo((()=>w(h)),[h]),m=(0,s.useCallback)((t=>{t.preventDefault(),e()}),[e]),_=(0,s.useCallback)((t=>{const e=(0,y.mdxToReactString)(t);if(null===e.code)return d(!0),"";d(!1);return Object.keys(h).join(",")!==Object.keys(e.importedComponents).join(",")&&p(e.importedComponents),"\n "+e.code+"\n render(\n <MDXProvider components={components}>\n <MDXContent components={components} />\n </MDXProvider>\n )\n "}),[d,h]),k=(0,s.useCallback)((t=>{a({pageRawContent:t,timestamp:Date.now().toString(),diffKind:o,newFilePath:c})}),[a,o,c]);if(null===i)return null;const E=c.split("/").pop();if(void 0===E)throw new Error('Could not extract filename from "'+c+'"');return s.default.createElement(f.LiveProvider,{code:i,noInline:!0,scope:{components:b,MDXProvider:g.MDXProvider,mdx:g.mdx,useBaseUrl:u.default},transformCode:_},s.default.createElement("form",{onSubmit:m,className:v.default.editor},s.default.createElement(x,{isSubmitDisabled:r,onCancel:n,diffKind:o,filename:E}),s.default.createElement("div",{className:v.default.editor_input},s.default.createElement(f.LiveEditor,{className:v.default.live_editor,onChange:k})),s.default.createElement("div",{className:v.default.editor_preview},l?s.default.createElement(R,null):s.default.createElement(f.LivePreview,{className:v.default.live_preview}),s.default.createElement(f.LiveError,{className:v.default.live_error}))))}},78641:(t,e)=>{"use strict";function n(t){const e=new URL(t).pathname;let n;if(e.startsWith("/intern/diffusion/"))n=6;else{if(!e.startsWith("/code/"))return console.warn("Unexpected editUrl format for in-page editor: "+t),null;n=3}const i=e.split("/");if(i.length<=n||""==i[i.length-1])return null;return e.split("/").slice(n).join("/")}Object.defineProperty(e,"__esModule",{value:!0}),e.generateHash=e.getFilePathRelativeToDocsFolder=e.getFilePathRelativeToRepoRoot=void 0,e.getFilePathRelativeToRepoRoot=n,e.getFilePathRelativeToDocsFolder=function(t,e){const i=n(t);if(!i)return null;const a=e.split("/");for(let n=0;n<a.length;n++){const t=a.slice(n).join("/");if(i.startsWith(t))return i.slice(t.length+1)}return null},e.generateHash=function(t){let e,n,i=0;if(0===t.length)return i.toString();for(e=0;e<t.length;e++)n=t.charCodeAt(e),i=(i<<5)-i+n,i|=0;return i.toString()}},84946:function(t,e,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,a)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),a=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),r=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return a(e,t),e};Object.defineProperty(e,"__esModule",{value:!0}),e.internLinks=void 0;const o=r(n(62854)),s=o,c=o.default||s.default;function l(t,e){return{type:"text",value:t,position:{start:e,end:e}}}e.internLinks=function(){return function(t){c(t,"paragraph",(t=>{t.children=t.children.reduce(((t,e)=>{if("text"!==e.type)return t.push(e),t;const n=/([DTP]\d+)(.)?/;if(!("value"in e))throw new Error('remark text node is missing "value" field');let i=e.value;if("string"!=typeof i)throw new Error('remark text node is missing "value" field');let a=i.match(n);for(a||t.push(e);a;){const c=a.index;if(null==c)break;"number"==typeof c&&c>0&&t.push(l(i.slice(0,a.index),e.position));a[2]&&a[2].match(/\w/)?t.push(l(a[1],e.position)):t.push((r=a[1],o="https://internalfb.com/"+a[1],s=e.pos,{type:"link",url:o,children:[l(r,s)],position:{start:s,end:s}})),i=i.slice(c+a[1].length),a=i.match(n),i&&!a&&t.push(l(i,e.position))}var r,o,s;return t}),[])}))}}},77437:function(t,e,n){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.mdxToReactString=void 0;const a=i(n(86504)),r=n(70905),o=n(12813),s=n(24284),c=n(84946),l=new Map,u=()=>t=>(0,r.remove)(t,(t=>{var e,n,i;return"mdxjsEsm"===t.type&&(null===(i=null===(n=null===(e=t.data)||void 0===e?void 0:e.estree)||void 0===n?void 0:n.body)||void 0===i||i.forEach((t=>{"ImportDeclaration"===t.type&&t.specifiers.forEach((e=>{l.set(e.local.name,t.source.value)}))})),!0)})),d=new Set(["/*@jsxRuntime classic @jsx React.createElement @jsxFrag React.Fragment*/",'import React from "react";',"export default MDXContent;"]);e.mdxToReactString=function(t){const e=/^---(.|\n)*?---/;try{return{code:(0,o.compileSync)(t.replace(e,"").split("\n").map((t=>{const e=t.trim().match(/^<!--(.*)-->$/);return e?"{/*"+e[1]+"*/}":t})).join("\n"),{remarkPlugins:[[s.remarkMermaid,{version:"v2"}],[c.internLinks,{}],a.default,u],format:"mdx",jsxRuntime:"classic",outputFormat:"program"}).value.toString().replace("const _components =","let _components =").split("\n").filter((t=>!d.has(t))).map((t=>{const e=t.match(/if \(!(.+)\) _missingMdxReference/);if(null===e)return t;const n=e[1];return" if (!"+n+") "+n+' = _components.__unknownComponent("'+n+'");'})).join("\n"),importedComponents:Object.fromEntries([...l])}}catch(n){return console.warn("Transpiler error",n),{code:null,importedComponents:{}}}finally{l.clear()}}},24284:(t,e)=>{"use strict";function n(t){return"code"===t.type&&"mermaid"===t.lang}function i(t){t.children=t.children.map((t=>{if(n(t)){return{type:"jsx",value:["<Mermaid chart={`",t.value,"`} />"].join("\n"),position:{...t.position,indent:[1,1,1]}}}return t}))}function a(t){t.children=t.children.map((t=>{if(n(t)){const e={start:{line:t.position.start.line,column:t.position.start.column},end:{line:t.position.end.line,column:t.position.end.column}},n=t.position.start.offset,i=t.position.end.offset,a=[n,i];return{type:"mdxJsxFlowElement",name:"Mermaid",data:{_xdmExplicitJsx:!0},children:[],meta:null,attributes:[{type:"mdxJsxAttribute",name:"chart",value:{type:"mdxJsxAttributeValueExpression",value:["`\n",t.value,"`"].join("\n"),data:{estree:{body:[{type:"ExpressionStatement",start:n,range:a,loc:e,expression:{loc:e,range:a,start:n,end:i,type:"Literal",value:t.value,raw:["`\n",t.value,"`"].join("\n")}}],comments:[],end:i,loc:e,range:a,sourceType:"module",start:n,type:"Program"}}},position:t.position}]}}return t}))}Object.defineProperty(e,"__esModule",{value:!0}),e.remarkMermaid=void 0,e.remarkMermaid=function(t){return"v1"===(null==t?void 0:t.version)?i:a}},32471:function(t,e,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,a)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),a=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),r=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return a(e,t),e};Object.defineProperty(e,"__esModule",{value:!0}),e.useDocMeta=e.DocMetaProvider=void 0;const o=r(n(67294)),s=o.default.createContext(null);e.DocMetaProvider=s.Provider;e.useDocMeta=()=>(0,o.useContext)(s)},86121:function(t,e,n){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const a=i(n(67294)),r=i(n(46215)),o=n(29656),s=i(n(56262)),c=n(86341),l=t=>{let{url:e}=t;return a.default.createElement("a",{href:e,target:"_blank",rel:"noreferrer noopener",className:o.ThemeClassNames.common.editThisPage},a.default.createElement(s.default,null),"View in CodeHub")};e.default=function(t){return(0,c.isInternal)()?a.default.createElement(l,{url:t.editUrl}):a.default.createElement(r.default,{...t})}},5307:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAPFJREFUOBGtkD8OAVEQxpcQR+ACSolTKGyh0KtQECdwBFdwA+fQoBGlzhVI/CnwG7vz8t6zj5X4km9n5vtmZmc3iv6ImF0reIWPAMWTHul1IEJoKKQ7S9beghP1ENZSDohHaC+TSwz8syc4JdhPWSaOob1AZgxsQ/I67ELVW+QNq1YdKYEKfrxjT2ERylW+j5TAN7Sepf6IeIGqa4wKaYMIWVggnmEvy0TT+ehGoVvt2EaPA97rJ8q3CXZJ+Om5tbs7FPLD7Ld/y+UyB7JkAz8Nytlr+DaMZmAvOKA2jZMz0QVL+qs5Z5y2PdUcVhw1UDwBK0d9heZjHrYAAAAASUVORK5CYII="},93930:function(t,e,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,a)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),a=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),r=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return a(e,t),e},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.FeedbackButton=void 0;const s=r(n(67294)),c=n(86341),l=o(n(84373)),u=o(n(5307)),d=o(n(91296));e.FeedbackButton=()=>{const[t,e]=(0,s.useState)(!1),[n,i]=(0,s.useState)(""),[a,r]=(0,s.useState)(!1),[o,h]=(0,s.useState)(0),[f,g]=(0,s.useState)(0);(0,s.useEffect)((()=>(document.addEventListener("mouseup",p),function(){document.removeEventListener("mouseup",p)}))),(0,s.useEffect)((()=>{let t=!0;return c.checkGKs.gk("sdocs_inline_feedback").then((e=>{t&&r(e)})),()=>{t=!1}}),[]);const p=(0,d.default)((0,s.useCallback)((t=>{var r;if(""!==(null===(r=document.getSelection())||void 0===r?void 0:r.toString())&&a){const a=document.getSelection();if(a&&a.toString()!=n){t&&t.preventDefault();const n=a.getRangeAt(0).getBoundingClientRect(),r=void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop;h(n.top-40+r),g(n.left+n.width/2-40),i(a.toString()),e(!0)}}else e(!1),g(0),h(0)}),[a,n]),200);return s.default.createElement(s.default.Fragment,null,t&&s.default.createElement("button",{onClick:()=>{var t;null!==n&&""!==n&&(null===(t=window.getSelection())||void 0===t||t.removeAllRanges(),c.feedback.reportContentSelected({textContent:n}))},className:l.default.FeedbackButton,style:{position:"absolute",top:o,left:f}},s.default.createElement("img",{src:u.default,className:l.default.FeedbackIcon}),"Feedback"))}},75854:function(t,e,n){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const a=i(n(71095)),r=n(86341),o=i(n(92969)),s={...a.default,FbInternalOnly:r.FbInternalOnly,FBInternalOnly:r.FbInternalOnly,OssOnly:r.OssOnly,OSSOnly:r.OssOnly,Mermaid:o.default};e.default=s},51788:function(t,e,n){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const a=i(n(67294)),r=i(n(45042)),o=n(92705),s=n(93930);e.default=function(t){return a.default.createElement(a.default.Fragment,null,a.default.createElement(o.EditorTrigger,{position:"before-post"}),a.default.createElement(r.default,{...t}),a.default.createElement(s.FeedbackButton,null),a.default.createElement(o.EditorTrigger,{position:"after-post"}))}},92969:function(t,e,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,a)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),a=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),r=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return a(e,t),e},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const s=r(n(67294)),c=o(n(33231));c.default.initialize({startOnLoad:!0});e.default=t=>{let{chart:e}=t;return(0,s.useEffect)((()=>c.default.contentLoaded()),[]),s.default.createElement("div",{className:"mermaid"},e)}},27484:function(t){t.exports=function(){"use strict";var t=1e3,e=6e4,n=36e5,i="millisecond",a="second",r="minute",o="hour",s="day",c="week",l="month",u="quarter",d="year",h="date",f="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,p=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,b={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var i=String(t);return!i||i.length>=e?t:""+Array(e+1-i.length).join(n)+t},y={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),i=Math.floor(n/60),a=n%60;return(e<=0?"+":"-")+m(i,2,"0")+":"+m(a,2,"0")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var i=12*(n.year()-e.year())+(n.month()-e.month()),a=e.clone().add(i,l),r=n-a<0,o=e.clone().add(i+(r?-1:1),l);return+(-(i+(n-a)/(r?a-o:o-a))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:l,y:d,w:c,d:s,D:h,h:o,m:r,s:a,ms:i,Q:u}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},v="en",w={};w[v]=b;var x=function(t){return t instanceof E},R=function t(e,n,i){var a;if(!e)return v;if("string"==typeof e){var r=e.toLowerCase();w[r]&&(a=r),n&&(w[r]=n,a=r);var o=e.split("-");if(!a&&o.length>1)return t(o[0])}else{var s=e.name;w[s]=e,a=s}return!i&&a&&(v=a),a||!i&&v},_=function(t,e){if(x(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new E(n)},k=y;k.l=R,k.i=x,k.w=function(t,e){return _(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var E=function(){function b(t){this.$L=R(t.locale,null,!0),this.parse(t)}var m=b.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(k.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var i=e.match(g);if(i){var a=i[2]-1||0,r=(i[7]||"0").substring(0,3);return n?new Date(Date.UTC(i[1],a,i[3]||1,i[4]||0,i[5]||0,i[6]||0,r)):new Date(i[1],a,i[3]||1,i[4]||0,i[5]||0,i[6]||0,r)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return k},m.isValid=function(){return!(this.$d.toString()===f)},m.isSame=function(t,e){var n=_(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return _(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<_(t)},m.$g=function(t,e,n){return k.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,i=!!k.u(e)||e,u=k.p(t),f=function(t,e){var a=k.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return i?a:a.endOf(s)},g=function(t,e){return k.w(n.toDate()[t].apply(n.toDate("s"),(i?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},p=this.$W,b=this.$M,m=this.$D,y="set"+(this.$u?"UTC":"");switch(u){case d:return i?f(1,0):f(31,11);case l:return i?f(1,b):f(0,b+1);case c:var v=this.$locale().weekStart||0,w=(p<v?p+7:p)-v;return f(i?m-w:m+(6-w),b);case s:case h:return g(y+"Hours",0);case o:return g(y+"Minutes",1);case r:return g(y+"Seconds",2);case a:return g(y+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,c=k.p(t),u="set"+(this.$u?"UTC":""),f=(n={},n[s]=u+"Date",n[h]=u+"Date",n[l]=u+"Month",n[d]=u+"FullYear",n[o]=u+"Hours",n[r]=u+"Minutes",n[a]=u+"Seconds",n[i]=u+"Milliseconds",n)[c],g=c===s?this.$D+(e-this.$W):e;if(c===l||c===d){var p=this.clone().set(h,1);p.$d[f](g),p.init(),this.$d=p.set(h,Math.min(this.$D,p.daysInMonth())).$d}else f&&this.$d[f](g);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[k.p(t)]()},m.add=function(i,u){var h,f=this;i=Number(i);var g=k.p(u),p=function(t){var e=_(f);return k.w(e.date(e.date()+Math.round(t*i)),f)};if(g===l)return this.set(l,this.$M+i);if(g===d)return this.set(d,this.$y+i);if(g===s)return p(1);if(g===c)return p(7);var b=(h={},h[r]=e,h[o]=n,h[a]=t,h)[g]||1,m=this.$d.getTime()+i*b;return k.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||f;var i=t||"YYYY-MM-DDTHH:mm:ssZ",a=k.z(this),r=this.$H,o=this.$m,s=this.$M,c=n.weekdays,l=n.months,u=n.meridiem,d=function(t,n,a,r){return t&&(t[n]||t(e,i))||a[n].slice(0,r)},h=function(t){return k.s(r%12||12,t,"0")},g=u||function(t,e,n){var i=t<12?"AM":"PM";return n?i.toLowerCase():i};return i.replace(p,(function(t,i){return i||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return k.s(e.$y,4,"0");case"M":return s+1;case"MM":return k.s(s+1,2,"0");case"MMM":return d(n.monthsShort,s,l,3);case"MMMM":return d(l,s);case"D":return e.$D;case"DD":return k.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return d(n.weekdaysMin,e.$W,c,2);case"ddd":return d(n.weekdaysShort,e.$W,c,3);case"dddd":return c[e.$W];case"H":return String(r);case"HH":return k.s(r,2,"0");case"h":return h(1);case"hh":return h(2);case"a":return g(r,o,!0);case"A":return g(r,o,!1);case"m":return String(o);case"mm":return k.s(o,2,"0");case"s":return String(e.$s);case"ss":return k.s(e.$s,2,"0");case"SSS":return k.s(e.$ms,3,"0");case"Z":return a}return null}(t)||a.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(i,h,f){var g,p=this,b=k.p(h),m=_(i),y=(m.utcOffset()-this.utcOffset())*e,v=this-m,w=function(){return k.m(p,m)};switch(b){case d:g=w()/12;break;case l:g=w();break;case u:g=w()/3;break;case c:g=(v-y)/6048e5;break;case s:g=(v-y)/864e5;break;case o:g=v/n;break;case r:g=v/e;break;case a:g=v/t;break;default:g=v}return f?g:k.a(g)},m.daysInMonth=function(){return this.endOf(l).$D},m.$locale=function(){return w[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),i=R(t,e,!0);return i&&(n.$L=i),n},m.clone=function(){return k.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},b}(),C=E.prototype;return _.prototype=C,[["$ms",i],["$s",a],["$m",r],["$H",o],["$W",s],["$M",l],["$y",d],["$D",h]].forEach((function(t){C[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),_.extend=function(t,e){return t.$i||(t(e,E,_),t.$i=!0),_},_.locale=R,_.isDayjs=x,_.unix=function(t){return _(1e3*t)},_.en=w[v],_.Ls=w,_.p={},_}()},28734:function(t){t.exports=function(){"use strict";return function(t,e){var n=e.prototype,i=n.format;n.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return i.bind(this)(t);var a=this.$utils(),r=(t||"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(t){switch(t){case"Q":return Math.ceil((e.$M+1)/3);case"Do":return n.ordinal(e.$D);case"gggg":return e.weekYear();case"GGGG":return e.isoWeekYear();case"wo":return n.ordinal(e.week(),"W");case"w":case"ww":return a.s(e.week(),"w"===t?1:2,"0");case"W":case"WW":return a.s(e.isoWeek(),"W"===t?1:2,"0");case"k":case"kk":return a.s(String(0===e.$H?24:e.$H),"k"===t?1:2,"0");case"X":return Math.floor(e.$d.getTime()/1e3);case"x":return e.$d.getTime();case"z":return"["+e.offsetName()+"]";case"zzz":return"["+e.offsetName("long")+"]";default:return t}}));return i.bind(this)(r)}}}()},10285:function(t){t.exports=function(){"use strict";var t={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"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,r={},o=function(t){return(t=+t)+(t>68?1900:2e3)},s=function(t){return function(e){this[t]=+e}},c=[/[+-]\d\d:?(\d\d)?|Z/,function(t){(this.zone||(this.zone={})).offset=function(t){if(!t)return 0;if("Z"===t)return 0;var e=t.match(/([+-]|\d\d)/g),n=60*e[1]+(+e[2]||0);return 0===n?0:"+"===e[0]?-n:n}(t)}],l=function(t){var e=r[t];return e&&(e.indexOf?e:e.s.concat(e.f))},u=function(t,e){var n,i=r.meridiem;if(i){for(var a=1;a<=24;a+=1)if(t.indexOf(i(a,0,e))>-1){n=a>12;break}}else n=t===(e?"pm":"PM");return n},d={A:[a,function(t){this.afternoon=u(t,!1)}],a:[a,function(t){this.afternoon=u(t,!0)}],S:[/\d/,function(t){this.milliseconds=100*+t}],SS:[n,function(t){this.milliseconds=10*+t}],SSS:[/\d{3}/,function(t){this.milliseconds=+t}],s:[i,s("seconds")],ss:[i,s("seconds")],m:[i,s("minutes")],mm:[i,s("minutes")],H:[i,s("hours")],h:[i,s("hours")],HH:[i,s("hours")],hh:[i,s("hours")],D:[i,s("day")],DD:[n,s("day")],Do:[a,function(t){var e=r.ordinal,n=t.match(/\d+/);if(this.day=n[0],e)for(var i=1;i<=31;i+=1)e(i).replace(/\[|\]/g,"")===t&&(this.day=i)}],M:[i,s("month")],MM:[n,s("month")],MMM:[a,function(t){var e=l("months"),n=(l("monthsShort")||e.map((function(t){return t.slice(0,3)}))).indexOf(t)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[a,function(t){var e=l("months").indexOf(t)+1;if(e<1)throw new Error;this.month=e%12||e}],Y:[/[+-]?\d+/,s("year")],YY:[n,function(t){this.year=o(t)}],YYYY:[/\d{4}/,s("year")],Z:c,ZZ:c};function h(n){var i,a;i=n,a=r&&r.formats;for(var o=(n=i.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(e,n,i){var r=i&&i.toUpperCase();return n||a[i]||t[i]||a[r].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}))).match(e),s=o.length,c=0;c<s;c+=1){var l=o[c],u=d[l],h=u&&u[0],f=u&&u[1];o[c]=f?{regex:h,parser:f}:l.replace(/^\[|\]$/g,"")}return function(t){for(var e={},n=0,i=0;n<s;n+=1){var a=o[n];if("string"==typeof a)i+=a.length;else{var r=a.regex,c=a.parser,l=t.slice(i),u=r.exec(l)[0];c.call(e,u),t=t.replace(u,"")}}return function(t){var e=t.afternoon;if(void 0!==e){var n=t.hours;e?n<12&&(t.hours+=12):12===n&&(t.hours=0),delete t.afternoon}}(e),e}}return function(t,e,n){n.p.customParseFormat=!0,t&&t.parseTwoDigitYear&&(o=t.parseTwoDigitYear);var i=e.prototype,a=i.parse;i.parse=function(t){var e=t.date,i=t.utc,o=t.args;this.$u=i;var s=o[1];if("string"==typeof s){var c=!0===o[2],l=!0===o[3],u=c||l,d=o[2];l&&(d=o[2]),r=this.$locale(),!c&&d&&(r=n.Ls[d]),this.$d=function(t,e,n){try{if(["x","X"].indexOf(e)>-1)return new Date(("X"===e?1e3:1)*t);var i=h(e)(t),a=i.year,r=i.month,o=i.day,s=i.hours,c=i.minutes,l=i.seconds,u=i.milliseconds,d=i.zone,f=new Date,g=o||(a||r?1:f.getDate()),p=a||f.getFullYear(),b=0;a&&!r||(b=r>0?r-1:f.getMonth());var m=s||0,y=c||0,v=l||0,w=u||0;return d?new Date(Date.UTC(p,b,g,m,y,v,w+60*d.offset*1e3)):n?new Date(Date.UTC(p,b,g,m,y,v,w)):new Date(p,b,g,m,y,v,w)}catch(t){return new Date("")}}(e,s,i),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&e!=this.format(s)&&(this.$d=new Date("")),r={}}else if(s instanceof Array)for(var f=s.length,g=1;g<=f;g+=1){o[1]=s[g-1];var p=n.apply(this,o);if(p.isValid()){this.$d=p.$d,this.$L=p.$L,this.init();break}g===f&&(this.$d=new Date(""))}else a.call(this,t)}}}()},59542:function(t){t.exports=function(){"use strict";var t="day";return function(e,n,i){var a=function(e){return e.add(4-e.isoWeekday(),t)},r=n.prototype;r.isoWeekYear=function(){return a(this).year()},r.isoWeek=function(e){if(!this.$utils().u(e))return this.add(7*(e-this.isoWeek()),t);var n,r,o,s=a(this),c=(n=this.isoWeekYear(),o=4-(r=(this.$u?i.utc:i)().year(n).startOf("year")).isoWeekday(),r.isoWeekday()>4&&(o+=7),r.add(o,t));return s.diff(c,"week")+1},r.isoWeekday=function(t){return this.$utils().u(t)?this.day()||7:this.day(this.day()%7?t:t-7)};var o=r.startOf;r.startOf=function(t,e){var n=this.$utils(),i=!!n.u(e)||e;return"isoweek"===n.p(t)?i?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):o.bind(this)(t,e)}}}()},27856:function(t){t.exports=function(){"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,n){return e=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},e(t,n)}function n(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function i(t,a,r){return i=n()?Reflect.construct:function(t,n,i){var a=[null];a.push.apply(a,n);var r=new(Function.bind.apply(t,a));return i&&e(r,i.prototype),r},i.apply(null,arguments)}function a(t){return r(t)||o(t)||s(t)||l()}function r(t){if(Array.isArray(t))return c(t)}function o(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function s(t,e){if(t){if("string"==typeof t)return c(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(t,e):void 0}}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}function l(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u=Object.hasOwnProperty,d=Object.setPrototypeOf,h=Object.isFrozen,f=Object.getPrototypeOf,g=Object.getOwnPropertyDescriptor,p=Object.freeze,b=Object.seal,m=Object.create,y="undefined"!=typeof Reflect&&Reflect,v=y.apply,w=y.construct;v||(v=function(t,e,n){return t.apply(e,n)}),p||(p=function(t){return t}),b||(b=function(t){return t}),w||(w=function(t,e){return i(t,a(e))});var x=L(Array.prototype.forEach),R=L(Array.prototype.pop),_=L(Array.prototype.push),k=L(String.prototype.toLowerCase),E=L(String.prototype.toString),C=L(String.prototype.match),S=L(String.prototype.replace),T=L(String.prototype.indexOf),A=L(String.prototype.trim),D=L(RegExp.prototype.test),I=O(TypeError);function L(t){return function(e){for(var n=arguments.length,i=new Array(n>1?n-1:0),a=1;a<n;a++)i[a-1]=arguments[a];return v(t,e,i)}}function O(t){return function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];return w(t,n)}}function M(t,e,n){n=n||k,d&&d(t,null);for(var i=e.length;i--;){var a=e[i];if("string"==typeof a){var r=n(a);r!==a&&(h(e)||(e[i]=r),a=r)}t[a]=!0}return t}function N(t){var e,n=m(null);for(e in t)!0===v(u,t,[e])&&(n[e]=t[e]);return n}function B(t,e){for(;null!==t;){var n=g(t,e);if(n){if(n.get)return L(n.get);if("function"==typeof n.value)return L(n.value)}t=f(t)}function i(t){return console.warn("fallback value for",t),null}return i}var P=p(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),F=p(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),j=p(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),$=p(["animate","color-profile","cursor","discard","fedropshadow","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),z=p(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"]),H=p(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),U=p(["#text"]),V=p(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),q=p(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),W=p(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Y=p(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),G=b(/\{\{[\w\W]*|[\w\W]*\}\}/gm),Z=b(/<%[\w\W]*|[\w\W]*%>/gm),K=b(/\${[\w\W]*}/gm),X=b(/^data-[\-\w.\u00B7-\uFFFF]/),J=b(/^aria-[\-\w]+$/),Q=b(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),tt=b(/^(?:\w+script|data):/i),et=b(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),nt=b(/^html$/i),it=function(){return"undefined"==typeof window?null:window},at=function(e,n){if("object"!==t(e)||"function"!=typeof e.createPolicy)return null;var i=null,a="data-tt-policy-suffix";n.currentScript&&n.currentScript.hasAttribute(a)&&(i=n.currentScript.getAttribute(a));var r="dompurify"+(i?"#"+i:"");try{return e.createPolicy(r,{createHTML:function(t){return t},createScriptURL:function(t){return t}})}catch(o){return console.warn("TrustedTypes policy "+r+" could not be created."),null}};function rt(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:it(),n=function(t){return rt(t)};if(n.version="2.4.3",n.removed=[],!e||!e.document||9!==e.document.nodeType)return n.isSupported=!1,n;var i=e.document,r=e.document,o=e.DocumentFragment,s=e.HTMLTemplateElement,c=e.Node,l=e.Element,u=e.NodeFilter,d=e.NamedNodeMap,h=void 0===d?e.NamedNodeMap||e.MozNamedAttrMap:d,f=e.HTMLFormElement,g=e.DOMParser,b=e.trustedTypes,m=l.prototype,y=B(m,"cloneNode"),v=B(m,"nextSibling"),w=B(m,"childNodes"),L=B(m,"parentNode");if("function"==typeof s){var O=r.createElement("template");O.content&&O.content.ownerDocument&&(r=O.content.ownerDocument)}var ot=at(b,i),st=ot?ot.createHTML(""):"",ct=r,lt=ct.implementation,ut=ct.createNodeIterator,dt=ct.createDocumentFragment,ht=ct.getElementsByTagName,ft=i.importNode,gt={};try{gt=N(r).documentMode?r.documentMode:{}}catch(Le){}var pt={};n.isSupported="function"==typeof L&<&&void 0!==lt.createHTMLDocument&&9!==gt;var bt,mt,yt=G,vt=Z,wt=K,xt=X,Rt=J,_t=tt,kt=et,Et=Q,Ct=null,St=M({},[].concat(a(P),a(F),a(j),a(z),a(U))),Tt=null,At=M({},[].concat(a(V),a(q),a(W),a(Y))),Dt=Object.seal(Object.create(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}})),It=null,Lt=null,Ot=!0,Mt=!0,Nt=!1,Bt=!1,Pt=!1,Ft=!1,jt=!1,$t=!1,zt=!1,Ht=!1,Ut=!0,Vt=!1,qt="user-content-",Wt=!0,Yt=!1,Gt={},Zt=null,Kt=M({},["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"]),Xt=null,Jt=M({},["audio","video","img","source","image","track"]),Qt=null,te=M({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),ee="http://www.w3.org/1998/Math/MathML",ne="http://www.w3.org/2000/svg",ie="http://www.w3.org/1999/xhtml",ae=ie,re=!1,oe=null,se=M({},[ee,ne,ie],E),ce=["application/xhtml+xml","text/html"],le="text/html",ue=null,de=r.createElement("form"),he=function(t){return t instanceof RegExp||t instanceof Function},fe=function(e){ue&&ue===e||(e&&"object"===t(e)||(e={}),e=N(e),bt=bt=-1===ce.indexOf(e.PARSER_MEDIA_TYPE)?le:e.PARSER_MEDIA_TYPE,mt="application/xhtml+xml"===bt?E:k,Ct="ALLOWED_TAGS"in e?M({},e.ALLOWED_TAGS,mt):St,Tt="ALLOWED_ATTR"in e?M({},e.ALLOWED_ATTR,mt):At,oe="ALLOWED_NAMESPACES"in e?M({},e.ALLOWED_NAMESPACES,E):se,Qt="ADD_URI_SAFE_ATTR"in e?M(N(te),e.ADD_URI_SAFE_ATTR,mt):te,Xt="ADD_DATA_URI_TAGS"in e?M(N(Jt),e.ADD_DATA_URI_TAGS,mt):Jt,Zt="FORBID_CONTENTS"in e?M({},e.FORBID_CONTENTS,mt):Kt,It="FORBID_TAGS"in e?M({},e.FORBID_TAGS,mt):{},Lt="FORBID_ATTR"in e?M({},e.FORBID_ATTR,mt):{},Gt="USE_PROFILES"in e&&e.USE_PROFILES,Ot=!1!==e.ALLOW_ARIA_ATTR,Mt=!1!==e.ALLOW_DATA_ATTR,Nt=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Bt=e.SAFE_FOR_TEMPLATES||!1,Pt=e.WHOLE_DOCUMENT||!1,$t=e.RETURN_DOM||!1,zt=e.RETURN_DOM_FRAGMENT||!1,Ht=e.RETURN_TRUSTED_TYPE||!1,jt=e.FORCE_BODY||!1,Ut=!1!==e.SANITIZE_DOM,Vt=e.SANITIZE_NAMED_PROPS||!1,Wt=!1!==e.KEEP_CONTENT,Yt=e.IN_PLACE||!1,Et=e.ALLOWED_URI_REGEXP||Et,ae=e.NAMESPACE||ie,e.CUSTOM_ELEMENT_HANDLING&&he(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Dt.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&he(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Dt.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Dt.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Bt&&(Mt=!1),zt&&($t=!0),Gt&&(Ct=M({},a(U)),Tt=[],!0===Gt.html&&(M(Ct,P),M(Tt,V)),!0===Gt.svg&&(M(Ct,F),M(Tt,q),M(Tt,Y)),!0===Gt.svgFilters&&(M(Ct,j),M(Tt,q),M(Tt,Y)),!0===Gt.mathMl&&(M(Ct,z),M(Tt,W),M(Tt,Y))),e.ADD_TAGS&&(Ct===St&&(Ct=N(Ct)),M(Ct,e.ADD_TAGS,mt)),e.ADD_ATTR&&(Tt===At&&(Tt=N(Tt)),M(Tt,e.ADD_ATTR,mt)),e.ADD_URI_SAFE_ATTR&&M(Qt,e.ADD_URI_SAFE_ATTR,mt),e.FORBID_CONTENTS&&(Zt===Kt&&(Zt=N(Zt)),M(Zt,e.FORBID_CONTENTS,mt)),Wt&&(Ct["#text"]=!0),Pt&&M(Ct,["html","head","body"]),Ct.table&&(M(Ct,["tbody"]),delete It.tbody),p&&p(e),ue=e)},ge=M({},["mi","mo","mn","ms","mtext"]),pe=M({},["foreignobject","desc","title","annotation-xml"]),be=M({},["title","style","font","a","script"]),me=M({},F);M(me,j),M(me,$);var ye=M({},z);M(ye,H);var ve=function(t){var e=L(t);e&&e.tagName||(e={namespaceURI:ae,tagName:"template"});var n=k(t.tagName),i=k(e.tagName);return!!oe[t.namespaceURI]&&(t.namespaceURI===ne?e.namespaceURI===ie?"svg"===n:e.namespaceURI===ee?"svg"===n&&("annotation-xml"===i||ge[i]):Boolean(me[n]):t.namespaceURI===ee?e.namespaceURI===ie?"math"===n:e.namespaceURI===ne?"math"===n&&pe[i]:Boolean(ye[n]):t.namespaceURI===ie?!(e.namespaceURI===ne&&!pe[i])&&!(e.namespaceURI===ee&&!ge[i])&&!ye[n]&&(be[n]||!me[n]):!("application/xhtml+xml"!==bt||!oe[t.namespaceURI]))},we=function(t){_(n.removed,{element:t});try{t.parentNode.removeChild(t)}catch(Le){try{t.outerHTML=st}catch(Le){t.remove()}}},xe=function(t,e){try{_(n.removed,{attribute:e.getAttributeNode(t),from:e})}catch(Le){_(n.removed,{attribute:null,from:e})}if(e.removeAttribute(t),"is"===t&&!Tt[t])if($t||zt)try{we(e)}catch(Le){}else try{e.setAttribute(t,"")}catch(Le){}},Re=function(t){var e,n;if(jt)t="<remove></remove>"+t;else{var i=C(t,/^[\r\n\t ]+/);n=i&&i[0]}"application/xhtml+xml"===bt&&ae===ie&&(t='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+t+"</body></html>");var a=ot?ot.createHTML(t):t;if(ae===ie)try{e=(new g).parseFromString(a,bt)}catch(Le){}if(!e||!e.documentElement){e=lt.createDocument(ae,"template",null);try{e.documentElement.innerHTML=re?st:a}catch(Le){}}var o=e.body||e.documentElement;return t&&n&&o.insertBefore(r.createTextNode(n),o.childNodes[0]||null),ae===ie?ht.call(e,Pt?"html":"body")[0]:Pt?e.documentElement:o},_e=function(t){return ut.call(t.ownerDocument||t,t,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT,null,!1)},ke=function(t){return t instanceof f&&("string"!=typeof t.nodeName||"string"!=typeof t.textContent||"function"!=typeof t.removeChild||!(t.attributes instanceof h)||"function"!=typeof t.removeAttribute||"function"!=typeof t.setAttribute||"string"!=typeof t.namespaceURI||"function"!=typeof t.insertBefore||"function"!=typeof t.hasChildNodes)},Ee=function(e){return"object"===t(c)?e instanceof c:e&&"object"===t(e)&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},Ce=function(t,e,i){pt[t]&&x(pt[t],(function(t){t.call(n,e,i,ue)}))},Se=function(t){var e;if(Ce("beforeSanitizeElements",t,null),ke(t))return we(t),!0;if(D(/[\u0080-\uFFFF]/,t.nodeName))return we(t),!0;var i=mt(t.nodeName);if(Ce("uponSanitizeElement",t,{tagName:i,allowedTags:Ct}),t.hasChildNodes()&&!Ee(t.firstElementChild)&&(!Ee(t.content)||!Ee(t.content.firstElementChild))&&D(/<[/\w]/g,t.innerHTML)&&D(/<[/\w]/g,t.textContent))return we(t),!0;if("select"===i&&D(/<template/i,t.innerHTML))return we(t),!0;if(!Ct[i]||It[i]){if(!It[i]&&Ae(i)){if(Dt.tagNameCheck instanceof RegExp&&D(Dt.tagNameCheck,i))return!1;if(Dt.tagNameCheck instanceof Function&&Dt.tagNameCheck(i))return!1}if(Wt&&!Zt[i]){var a=L(t)||t.parentNode,r=w(t)||t.childNodes;if(r&&a)for(var o=r.length-1;o>=0;--o)a.insertBefore(y(r[o],!0),v(t))}return we(t),!0}return t instanceof l&&!ve(t)?(we(t),!0):"noscript"!==i&&"noembed"!==i||!D(/<\/no(script|embed)/i,t.innerHTML)?(Bt&&3===t.nodeType&&(e=t.textContent,e=S(e,yt," "),e=S(e,vt," "),e=S(e,wt," "),t.textContent!==e&&(_(n.removed,{element:t.cloneNode()}),t.textContent=e)),Ce("afterSanitizeElements",t,null),!1):(we(t),!0)},Te=function(t,e,n){if(Ut&&("id"===e||"name"===e)&&(n in r||n in de))return!1;if(Mt&&!Lt[e]&&D(xt,e));else if(Ot&&D(Rt,e));else if(!Tt[e]||Lt[e]){if(!(Ae(t)&&(Dt.tagNameCheck instanceof RegExp&&D(Dt.tagNameCheck,t)||Dt.tagNameCheck instanceof Function&&Dt.tagNameCheck(t))&&(Dt.attributeNameCheck instanceof RegExp&&D(Dt.attributeNameCheck,e)||Dt.attributeNameCheck instanceof Function&&Dt.attributeNameCheck(e))||"is"===e&&Dt.allowCustomizedBuiltInElements&&(Dt.tagNameCheck instanceof RegExp&&D(Dt.tagNameCheck,n)||Dt.tagNameCheck instanceof Function&&Dt.tagNameCheck(n))))return!1}else if(Qt[e]);else if(D(Et,S(n,kt,"")));else if("src"!==e&&"xlink:href"!==e&&"href"!==e||"script"===t||0!==T(n,"data:")||!Xt[t])if(Nt&&!D(_t,S(n,kt,"")));else if(n)return!1;return!0},Ae=function(t){return t.indexOf("-")>0},De=function(e){var i,a,r,o;Ce("beforeSanitizeAttributes",e,null);var s=e.attributes;if(s){var c={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Tt};for(o=s.length;o--;){var l=i=s[o],u=l.name,d=l.namespaceURI;if(a="value"===u?i.value:A(i.value),r=mt(u),c.attrName=r,c.attrValue=a,c.keepAttr=!0,c.forceKeepAttr=void 0,Ce("uponSanitizeAttribute",e,c),a=c.attrValue,!c.forceKeepAttr&&(xe(u,e),c.keepAttr))if(D(/\/>/i,a))xe(u,e);else{Bt&&(a=S(a,yt," "),a=S(a,vt," "),a=S(a,wt," "));var h=mt(e.nodeName);if(Te(h,r,a)){if(!Vt||"id"!==r&&"name"!==r||(xe(u,e),a=qt+a),ot&&"object"===t(b)&&"function"==typeof b.getAttributeType)if(d);else switch(b.getAttributeType(h,r)){case"TrustedHTML":a=ot.createHTML(a);break;case"TrustedScriptURL":a=ot.createScriptURL(a)}try{d?e.setAttributeNS(d,u,a):e.setAttribute(u,a),R(n.removed)}catch(Le){}}}}Ce("afterSanitizeAttributes",e,null)}},Ie=function t(e){var n,i=_e(e);for(Ce("beforeSanitizeShadowDOM",e,null);n=i.nextNode();)Ce("uponSanitizeShadowNode",n,null),Se(n)||(n.content instanceof o&&t(n.content),De(n));Ce("afterSanitizeShadowDOM",e,null)};return n.sanitize=function(a){var r,s,l,u,d,h=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if((re=!a)&&(a="\x3c!--\x3e"),"string"!=typeof a&&!Ee(a)){if("function"!=typeof a.toString)throw I("toString is not a function");if("string"!=typeof(a=a.toString()))throw I("dirty is not a string, aborting")}if(!n.isSupported){if("object"===t(e.toStaticHTML)||"function"==typeof e.toStaticHTML){if("string"==typeof a)return e.toStaticHTML(a);if(Ee(a))return e.toStaticHTML(a.outerHTML)}return a}if(Ft||fe(h),n.removed=[],"string"==typeof a&&(Yt=!1),Yt){if(a.nodeName){var f=mt(a.nodeName);if(!Ct[f]||It[f])throw I("root node is forbidden and cannot be sanitized in-place")}}else if(a instanceof c)1===(s=(r=Re("\x3c!----\x3e")).ownerDocument.importNode(a,!0)).nodeType&&"BODY"===s.nodeName||"HTML"===s.nodeName?r=s:r.appendChild(s);else{if(!$t&&!Bt&&!Pt&&-1===a.indexOf("<"))return ot&&Ht?ot.createHTML(a):a;if(!(r=Re(a)))return $t?null:Ht?st:""}r&&jt&&we(r.firstChild);for(var g=_e(Yt?a:r);l=g.nextNode();)3===l.nodeType&&l===u||Se(l)||(l.content instanceof o&&Ie(l.content),De(l),u=l);if(u=null,Yt)return a;if($t){if(zt)for(d=dt.call(r.ownerDocument);r.firstChild;)d.appendChild(r.firstChild);else d=r;return Tt.shadowroot&&(d=ft.call(i,d,!0)),d}var p=Pt?r.outerHTML:r.innerHTML;return Pt&&Ct["!doctype"]&&r.ownerDocument&&r.ownerDocument.doctype&&r.ownerDocument.doctype.name&&D(nt,r.ownerDocument.doctype.name)&&(p="<!DOCTYPE "+r.ownerDocument.doctype.name+">\n"+p),Bt&&(p=S(p,yt," "),p=S(p,vt," "),p=S(p,wt," ")),ot&&Ht?ot.createHTML(p):p},n.setConfig=function(t){fe(t),Ft=!0},n.clearConfig=function(){ue=null,Ft=!1},n.isValidAttribute=function(t,e,n){ue||fe({});var i=mt(t),a=mt(e);return Te(i,a,n)},n.addHook=function(t,e){"function"==typeof e&&(pt[t]=pt[t]||[],_(pt[t],e))},n.removeHook=function(t){if(pt[t])return R(pt[t])},n.removeHooks=function(t){pt[t]&&(pt[t]=[])},n.removeAllHooks=function(){pt={}},n}return rt()}()},58875:(t,e,n)=>{var i;!function(){"use strict";var a=!("undefined"==typeof window||!window.document||!window.document.createElement),r={canUseDOM:a,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:a&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:a&&!!window.screen};void 0===(i=function(){return r}.call(e,n,e,t))||(t.exports=i)}()},94470:t=>{"use strict";var e=Object.prototype.hasOwnProperty,n=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,r=function(t){return"function"==typeof Array.isArray?Array.isArray(t):"[object Array]"===n.call(t)},o=function(t){if(!t||"[object Object]"!==n.call(t))return!1;var i,a=e.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&e.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!a&&!r)return!1;for(i in t);return void 0===i||e.call(t,i)},s=function(t,e){i&&"__proto__"===e.name?i(t,e.name,{enumerable:!0,configurable:!0,value:e.newValue,writable:!0}):t[e.name]=e.newValue},c=function(t,n){if("__proto__"===n){if(!e.call(t,n))return;if(a)return a(t,n).value}return t[n]};t.exports=function t(){var e,n,i,a,l,u,d=arguments[0],h=1,f=arguments.length,g=!1;for("boolean"==typeof d&&(g=d,d=arguments[1]||{},h=2),(null==d||"object"!=typeof d&&"function"!=typeof d)&&(d={});h<f;++h)if(null!=(e=arguments[h]))for(n in e)i=c(d,n),d!==(a=c(e,n))&&(g&&a&&(o(a)||(l=r(a)))?(l?(l=!1,u=i&&r(i)?i:[]):u=i&&o(i)?i:{},s(d,{name:n,newValue:t(g,u,a)})):void 0!==a&&s(d,{name:n,newValue:a}));return d}},52897:(t,e,n)=>{var i=n(18139);function a(t,e){var n,a=null;if(!t||"string"!=typeof t)return a;for(var r,o,s=i(t),c="function"==typeof e,l=0,u=s.length;l<u;l++)r=(n=s[l]).property,o=n.value,c?e(r,o,n):o&&(a||(a={}),a[r]=o);return a}t.exports=a,t.exports.default=a},18139:t=>{var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,i=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,r=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,s=/^[;\s]*/,c=/^\s+|\s+$/g,l="";function u(t){return t?t.replace(c,l):l}t.exports=function(t,c){if("string"!=typeof t)throw new TypeError("First argument must be a string");if(!t)return[];c=c||{};var d=1,h=1;function f(t){var e=t.match(n);e&&(d+=e.length);var i=t.lastIndexOf("\n");h=~i?t.length-i:h+t.length}function g(){var t={line:d,column:h};return function(e){return e.position=new p(t),v(),e}}function p(t){this.start=t,this.end={line:d,column:h},this.source=c.source}p.prototype.content=t;var b=[];function m(e){var n=new Error(c.source+":"+d+":"+h+": "+e);if(n.reason=e,n.filename=c.source,n.line=d,n.column=h,n.source=t,!c.silent)throw n;b.push(n)}function y(e){var n=e.exec(t);if(n){var i=n[0];return f(i),t=t.slice(i.length),n}}function v(){y(i)}function w(t){var e;for(t=t||[];e=x();)!1!==e&&t.push(e);return t}function x(){var e=g();if("/"==t.charAt(0)&&"*"==t.charAt(1)){for(var n=2;l!=t.charAt(n)&&("*"!=t.charAt(n)||"/"!=t.charAt(n+1));)++n;if(n+=2,l===t.charAt(n-1))return m("End of comment missing");var i=t.slice(2,n-2);return h+=2,f(i),t=t.slice(n),h+=2,e({type:"comment",comment:i})}}function R(){var t=g(),n=y(a);if(n){if(x(),!y(r))return m("property missing ':'");var i=y(o),c=t({type:"declaration",property:u(n[0].replace(e,l)),value:i?u(i[0].replace(e,l)):l});return y(s),c}}return v(),function(){var t,e=[];for(w(e);t=R();)!1!==t&&(e.push(t),w(e));return e}()}},48738:t=>{t.exports=function(t){return null!=t&&null!=t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}},91296:(t,e,n)=>{var i=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,o=/^0o[0-7]+$/i,s=parseInt,c="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,l="object"==typeof self&&self&&self.Object===Object&&self,u=c||l||Function("return this")(),d=Object.prototype.toString,h=Math.max,f=Math.min,g=function(){return u.Date.now()};function p(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function b(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&"[object Symbol]"==d.call(t)}(t))return NaN;if(p(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=p(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(i,"");var n=r.test(t);return n||o.test(t)?s(t.slice(2),n?2:8):a.test(t)?NaN:+t}t.exports=function(t,e,n){var i,a,r,o,s,c,l=0,u=!1,d=!1,m=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function y(e){var n=i,r=a;return i=a=void 0,l=e,o=t.apply(r,n)}function v(t){return l=t,s=setTimeout(x,e),u?y(t):o}function w(t){var n=t-c;return void 0===c||n>=e||n<0||d&&t-l>=r}function x(){var t=g();if(w(t))return R(t);s=setTimeout(x,function(t){var n=e-(t-c);return d?f(n,r-(t-l)):n}(t))}function R(t){return s=void 0,m&&i?y(t):(i=a=void 0,o)}function _(){var t=g(),n=w(t);if(i=arguments,a=this,c=t,n){if(void 0===s)return v(c);if(d)return s=setTimeout(x,e),y(c)}return void 0===s&&(s=setTimeout(x,e)),o}return e=b(e)||0,p(n)&&(u=!!n.leading,r=(d="maxWait"in n)?h(b(n.maxWait)||0,e):r,m="trailing"in n?!!n.trailing:m),_.cancel=function(){void 0!==s&&clearTimeout(s),l=0,i=c=a=s=void 0},_.flush=function(){return void 0===s?o:R(g())},_}},26024:(t,e,n)=>{"use strict";t.exports=n(68914)},16432:(t,e,n)=>{"use strict";n.d(e,{a:()=>On,b:()=>Bo,c:()=>zt,d:()=>In,e:()=>jt,f:()=>Ho,g:()=>ai,h:()=>bc,i:()=>lo,j:()=>ji,k:()=>zi,l:()=>Dt,m:()=>Ii,n:()=>Nt,o:()=>hf,p:()=>ms,s:()=>hi});const i=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];var i=Array.from("string"==typeof t?[t]:t);i[i.length-1]=i[i.length-1].replace(/\r?\n([\t ]*)$/,"");var a=i.reduce((function(t,e){var n=e.match(/\n([\t ]+|(?!\s).)/g);return n?t.concat(n.map((function(t){var e,n;return null!==(n=null===(e=t.match(/[\t ]/g))||void 0===e?void 0:e.length)&&void 0!==n?n:0}))):t}),[]);if(a.length){var r=new RegExp("\n[\t ]{"+Math.min.apply(Math,a)+"}","g");i=i.map((function(t){return t.replace(r,"\n")}))}i[0]=i[0].replace(/^\r?\n/,"");var o=i[0];return e.forEach((function(t,e){var n=o.match(/(?:^|\n)( *)$/),a=n?n[1]:"",r=t;"string"==typeof t&&t.includes("\n")&&(r=String(t).split("\n").map((function(t,e){return 0===e?t:""+a+t})).join("\n")),o+=r+i[e+1]})),o};var a=n(27484),r=n.n(a),o=n(17967),s=n(59373),l=n(27856),u=n.n(l),d=n(71610),h=n(61691);const f=(t,e)=>{const n=d.Z.parse(t);for(const i in e)n[i]=h.Z.channel.clamp[i](e[i]);return d.Z.stringify(n)},g=(t,e)=>{const n=d.Z.parse(t),i={};for(const a in e)e[a]&&(i[a]=n[a]+e[a]);return f(t,i)};var p=n(21883);const b=(t,e,n=0,i=1)=>{if("number"!=typeof t)return f(t,{a:e});const a=p.Z.set({r:h.Z.channel.clamp.r(t),g:h.Z.channel.clamp.g(e),b:h.Z.channel.clamp.b(n),a:h.Z.channel.clamp.a(i)});return d.Z.stringify(a)},m=(t,e,n=50)=>{const{r:i,g:a,b:r,a:o}=d.Z.parse(t),{r:s,g:c,b:l,a:u}=d.Z.parse(e),h=n/100,f=2*h-1,g=o-u,p=((f*g==-1?f:(f+g)/(1+f*g))+1)/2,m=1-p;return b(i*p+s*m,a*p+c*m,r*p+l*m,o*h+u*(1-h))},y=(t,e=100)=>{const n=d.Z.parse(t);return n.r=255-n.r,n.g=255-n.g,n.b=255-n.b,m(n,t,e)};var v=n(7201),w=n(12281),x=n(42454),R="comm",_="rule",k="decl",E=Math.abs,C=String.fromCharCode;Object.assign;function S(t){return t.trim()}function T(t,e,n){return t.replace(e,n)}function A(t,e){return t.indexOf(e)}function D(t,e){return 0|t.charCodeAt(e)}function I(t,e,n){return t.slice(e,n)}function L(t){return t.length}function O(t,e){return e.push(t),t}function M(t,e){for(var n="",i=0;i<t.length;i++)n+=e(t[i],i,t,e)||"";return n}function N(t,e,n,i){switch(t.type){case"@layer":if(t.children.length)break;case"@import":case k:return t.return=t.return||t.value;case R:return"";case"@keyframes":return t.return=t.value+"{"+M(t.children,i)+"}";case _:if(!L(t.value=t.props.join(",")))return""}return L(n=M(t.children,i))?t.return=t.value+"{"+n+"}":""}var B=1,P=1,F=0,j=0,$=0,z="";function H(t,e,n,i,a,r,o,s){return{value:t,root:e,parent:n,type:i,props:a,children:r,line:B,column:P,length:o,return:"",siblings:s}}function U(){return $=j>0?D(z,--j):0,P--,10===$&&(P=1,B--),$}function V(){return $=j<F?D(z,j++):0,P++,10===$&&(P=1,B++),$}function q(){return D(z,j)}function W(){return j}function Y(t,e){return I(z,t,e)}function G(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function Z(t){return B=P=1,F=L(z=t),j=0,[]}function K(t){return z="",t}function X(t){return S(Y(j-1,tt(91===t?t+2:40===t?t+1:t)))}function J(t){for(;($=q())&&$<33;)V();return G(t)>2||G($)>3?"":" "}function Q(t,e){for(;--e&&V()&&!($<48||$>102||$>57&&$<65||$>70&&$<97););return Y(t,W()+(e<6&&32==q()&&32==V()))}function tt(t){for(;V();)switch($){case t:return j;case 34:case 39:34!==t&&39!==t&&tt($);break;case 40:41===t&&tt(t);break;case 92:V()}return j}function et(t,e){for(;V()&&t+$!==57&&(t+$!==84||47!==q()););return"/*"+Y(e,j-1)+"*"+C(47===t?t:V())}function nt(t){for(;!G(q());)V();return Y(t,j)}function it(t){return K(at("",null,null,null,[""],t=Z(t),0,[0],t))}function at(t,e,n,i,a,r,o,s,c){for(var l=0,u=0,d=o,h=0,f=0,g=0,p=1,b=1,m=1,y=0,v="",w=a,x=r,R=i,_=v;b;)switch(g=y,y=V()){case 40:if(108!=g&&58==D(_,d-1)){-1!=A(_+=T(X(y),"&","&\f"),"&\f")&&(m=-1);break}case 34:case 39:case 91:_+=X(y);break;case 9:case 10:case 13:case 32:_+=J(g);break;case 92:_+=Q(W()-1,7);continue;case 47:switch(q()){case 42:case 47:O(ot(et(V(),W()),e,n,c),c);break;default:_+="/"}break;case 123*p:s[l++]=L(_)*m;case 125*p:case 59:case 0:switch(y){case 0:case 125:b=0;case 59+u:-1==m&&(_=T(_,/\f/g,"")),f>0&&L(_)-d&&O(f>32?st(_+";",i,n,d-1,c):st(T(_," ","")+";",i,n,d-2,c),c);break;case 59:_+=";";default:if(O(R=rt(_,e,n,l,u,a,s,v,w=[],x=[],d,r),r),123===y)if(0===u)at(_,e,R,R,w,r,d,s,x);else switch(99===h&&110===D(_,3)?100:h){case 100:case 108:case 109:case 115:at(t,R,R,i&&O(rt(t,R,R,0,0,a,s,v,a,w=[],d,x),x),a,x,d,s,i?w:x);break;default:at(_,R,R,R,[""],x,0,s,x)}}l=u=f=0,p=m=1,v=_="",d=o;break;case 58:d=1+L(_),f=g;default:if(p<1)if(123==y)--p;else if(125==y&&0==p++&&125==U())continue;switch(_+=C(y),y*p){case 38:m=u>0?1:(_+="\f",-1);break;case 44:s[l++]=(L(_)-1)*m,m=1;break;case 64:45===q()&&(_+=X(V())),h=q(),u=d=L(v=_+=nt(W())),y++;break;case 45:45===g&&2==L(_)&&(p=0)}}return r}function rt(t,e,n,i,a,r,o,s,c,l,u,d){for(var h=a-1,f=0===a?r:[""],g=function(t){return t.length}(f),p=0,b=0,m=0;p<i;++p)for(var y=0,v=I(t,h+1,h=E(b=o[p])),w=t;y<g;++y)(w=S(b>0?f[y]+" "+v:T(v,/&\f/g,f[y])))&&(c[m++]=w);return H(t,e,n,0===a?_:s,c,l,u,d)}function ot(t,e,n,i){return H(t,e,n,R,C($),I(t,2,-2),0,i)}function st(t,e,n,i,a){return H(t,e,n,k,I(t,0,i),I(t,i+1,-1),i,a)}var ct=n(70277),lt=n(45625),ut=n(39354);const dt=[];for(let c=0;c<256;++c)dt.push((c+256).toString(16).slice(1));function ht(t,e=0){return dt[t[e+0]]+dt[t[e+1]]+dt[t[e+2]]+dt[t[e+3]]+"-"+dt[t[e+4]]+dt[t[e+5]]+"-"+dt[t[e+6]]+dt[t[e+7]]+"-"+dt[t[e+8]]+dt[t[e+9]]+"-"+dt[t[e+10]]+dt[t[e+11]]+dt[t[e+12]]+dt[t[e+13]]+dt[t[e+14]]+dt[t[e+15]]}const ft=/^(?:[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;const gt=function(t){return"string"==typeof t&&ft.test(t)};const pt=function(t){if(!gt(t))throw TypeError("Invalid UUID");let e;const n=new Uint8Array(16);return n[0]=(e=parseInt(t.slice(0,8),16))>>>24,n[1]=e>>>16&255,n[2]=e>>>8&255,n[3]=255&e,n[4]=(e=parseInt(t.slice(9,13),16))>>>8,n[5]=255&e,n[6]=(e=parseInt(t.slice(14,18),16))>>>8,n[7]=255&e,n[8]=(e=parseInt(t.slice(19,23),16))>>>8,n[9]=255&e,n[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,n[11]=e/4294967296&255,n[12]=e>>>24&255,n[13]=e>>>16&255,n[14]=e>>>8&255,n[15]=255&e,n};function bt(t,e,n,i){switch(t){case 0:return e&n^~e&i;case 1:case 3:return e^n^i;case 2:return e&n^e&i^n&i}}function mt(t,e){return t<<e|t>>>32-e}const yt=function(t){const e=[1518500249,1859775393,2400959708,3395469782],n=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof t){const e=unescape(encodeURIComponent(t));t=[];for(let n=0;n<e.length;++n)t.push(e.charCodeAt(n))}else Array.isArray(t)||(t=Array.prototype.slice.call(t));t.push(128);const i=t.length/4+2,a=Math.ceil(i/16),r=new Array(a);for(let o=0;o<a;++o){const e=new Uint32Array(16);for(let n=0;n<16;++n)e[n]=t[64*o+4*n]<<24|t[64*o+4*n+1]<<16|t[64*o+4*n+2]<<8|t[64*o+4*n+3];r[o]=e}r[a-1][14]=8*(t.length-1)/Math.pow(2,32),r[a-1][14]=Math.floor(r[a-1][14]),r[a-1][15]=8*(t.length-1)&4294967295;for(let o=0;o<a;++o){const t=new Uint32Array(80);for(let e=0;e<16;++e)t[e]=r[o][e];for(let e=16;e<80;++e)t[e]=mt(t[e-3]^t[e-8]^t[e-14]^t[e-16],1);let i=n[0],a=n[1],s=n[2],c=n[3],l=n[4];for(let n=0;n<80;++n){const r=Math.floor(n/20),o=mt(i,5)+bt(r,a,s,c)+l+e[r]+t[n]>>>0;l=c,c=s,s=mt(a,30)>>>0,a=i,i=o}n[0]=n[0]+i>>>0,n[1]=n[1]+a>>>0,n[2]=n[2]+s>>>0,n[3]=n[3]+c>>>0,n[4]=n[4]+l>>>0}return[n[0]>>24&255,n[0]>>16&255,n[0]>>8&255,255&n[0],n[1]>>24&255,n[1]>>16&255,n[1]>>8&255,255&n[1],n[2]>>24&255,n[2]>>16&255,n[2]>>8&255,255&n[2],n[3]>>24&255,n[3]>>16&255,n[3]>>8&255,255&n[3],n[4]>>24&255,n[4]>>16&255,n[4]>>8&255,255&n[4]]},vt=function(t,e,n){function i(t,i,a,r){var o;if("string"==typeof t&&(t=function(t){t=unescape(encodeURIComponent(t));const e=[];for(let n=0;n<t.length;++n)e.push(t.charCodeAt(n));return e}(t)),"string"==typeof i&&(i=pt(i)),16!==(null===(o=i)||void 0===o?void 0:o.length))throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let s=new Uint8Array(16+t.length);if(s.set(i),s.set(t,i.length),s=n(s),s[6]=15&s[6]|e,s[8]=63&s[8]|128,a){r=r||0;for(let t=0;t<16;++t)a[r+t]=s[t];return a}return ht(s)}try{i.name=t}catch(a){}return i.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",i.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",i}("v5",80,yt),wt=vt;n(91518),n(96225);var xt=n(43349),Rt=(n(23352),n(22930),n(59542)),_t=n.n(Rt),kt=n(10285),Et=n.n(kt),Ct=n(28734),St=n.n(Ct),Tt=n(79697);const At={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},Dt={trace:(...t)=>{},debug:(...t)=>{},info:(...t)=>{},warn:(...t)=>{},error:(...t)=>{},fatal:(...t)=>{}},It=function(t="fatal"){let e=At.fatal;"string"==typeof t?(t=t.toLowerCase())in At&&(e=At[t]):"number"==typeof t&&(e=t),Dt.trace=()=>{},Dt.debug=()=>{},Dt.info=()=>{},Dt.warn=()=>{},Dt.error=()=>{},Dt.fatal=()=>{},e<=At.fatal&&(Dt.fatal=console.error?console.error.bind(console,Lt("FATAL"),"color: orange"):console.log.bind(console,"\x1b[35m",Lt("FATAL"))),e<=At.error&&(Dt.error=console.error?console.error.bind(console,Lt("ERROR"),"color: orange"):console.log.bind(console,"\x1b[31m",Lt("ERROR"))),e<=At.warn&&(Dt.warn=console.warn?console.warn.bind(console,Lt("WARN"),"color: orange"):console.log.bind(console,"\x1b[33m",Lt("WARN"))),e<=At.info&&(Dt.info=console.info?console.info.bind(console,Lt("INFO"),"color: lightblue"):console.log.bind(console,"\x1b[34m",Lt("INFO"))),e<=At.debug&&(Dt.debug=console.debug?console.debug.bind(console,Lt("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",Lt("DEBUG"))),e<=At.trace&&(Dt.trace=console.debug?console.debug.bind(console,Lt("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",Lt("TRACE")))},Lt=t=>`%c${r()().format("ss.SSS")} : ${t} : `,Ot=t=>u().sanitize(t),Mt=(t,e)=>{var n;if(!1!==(null==(n=e.flowchart)?void 0:n.htmlLabels)){const n=e.securityLevel;"antiscript"===n||"strict"===n?t=Ot(t):"loose"!==n&&(t=(t=(t=Ft(t)).replace(/</g,"<").replace(/>/g,">")).replace(/=/g,"="),t=Pt(t))}return t},Nt=(t,e)=>t?t=e.dompurifyConfig?u().sanitize(Mt(t,e),e.dompurifyConfig).toString():u().sanitize(Mt(t,e),{FORBID_TAGS:["style"]}).toString():t,Bt=/<br\s*\/?>/gi,Pt=t=>t.replace(/#br#/g,"<br/>"),Ft=t=>t.replace(Bt,"#br#"),jt=t=>!1!==t&&!["false","null","0"].includes(String(t).trim().toLowerCase()),$t=function(t){let e=t;if(t.split("~").length-1>=2){let t=e;do{e=t,t=e.replace(/~([^\s,:;]+)~/,"<$1>")}while(t!=e);return $t(t)}return e},zt={getRows:t=>{if(!t)return[""];return Ft(t).replace(/\\n/g,"#br#").split("#br#")},sanitizeText:Nt,sanitizeTextOrArray:(t,e)=>"string"==typeof t?Nt(t,e):t.flat().map((t=>Nt(t,e))),hasBreaks:t=>Bt.test(t),splitBreaks:t=>t.split(Bt),lineBreakRegex:Bt,removeScript:Ot,getUrl: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},evaluate:jt},Ht=(t,e)=>g(t,e?{s:-40,l:10}:{s:-40,l:-10}),Ut="#ffffff",Vt="#f2f2f2";class qt{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=(0,w.Z)(this.contrast,55),this.background="#ffffff",this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=Ht(this.primaryColor,this.darkMode),this.secondaryBorderColor=Ht(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Ht(this.tertiaryColor,this.darkMode),this.primaryTextColor=y(this.primaryColor),this.secondaryTextColor=y(this.secondaryColor),this.tertiaryTextColor=y(this.tertiaryColor),this.lineColor=y(this.background),this.textColor=y(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="calculated",this.personBkg="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=(0,w.Z)(this.contrast,55),this.border2=this.contrast,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 t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||y(this["cScale"+t]);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this.darkMode?this["cScalePeer"+t]=this["cScalePeer"+t]||(0,w.Z)(this["cScale"+t],10):this["cScalePeer"+t]=this["cScalePeer"+t]||(0,v.Z)(this["cScale"+t],10);this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor),this.cScaleLabel0=this.cScaleLabel0||this.cScale1,this.cScaleLabel2=this.cScaleLabel2||this.cScale1;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||g(this.mainBkg,{l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||g(this.mainBkg,{l:-(8+5*t)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.text,this.actorBorder=(0,w.Z)(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.sectionBkgColor=(0,w.Z)(this.contrast,30),this.sectionBkgColor2=(0,w.Z)(this.contrast,30),this.taskBorderColor=(0,v.Z)(this.contrast,10),this.taskBkgColor=this.contrast,this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor=this.text,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=this.mainBkg,this.gridColor=(0,w.Z)(this.border1,30),this.doneTaskBkgColor=this.done,this.doneTaskBorderColor=this.lineColor,this.critBkgColor=this.critical,this.critBorderColor=(0,v.Z)(this.critBkgColor,10),this.todayLineColor=this.critBkgColor,this.transitionColor=this.transitionColor||"#000",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||"#f4f4f4",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.stateBorder=this.stateBorder||"#000",this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#222",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.classText=this.primaryTextColor,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});for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["pie"+t]=this["cScale"+t];this.pie12=this.pie0,this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=(0,v.Z)(this.pie1,25)||this.primaryColor,this.git1=this.pie2||this.secondaryColor,this.git2=this.pie3||this.tertiaryColor,this.git3=this.pie4||g(this.primaryColor,{h:-30}),this.git4=this.pie5||g(this.primaryColor,{h:-60}),this.git5=this.pie6||g(this.primaryColor,{h:-90}),this.git6=this.pie7||g(this.primaryColor,{h:60}),this.git7=this.pie8||g(this.primaryColor,{h:120}),this.gitInv0=this.gitInv0||y(this.git0),this.gitInv1=this.gitInv1||y(this.git1),this.gitInv2=this.gitInv2||y(this.git2),this.gitInv3=this.gitInv3||y(this.git3),this.gitInv4=this.gitInv4||y(this.git4),this.gitInv5=this.gitInv5||y(this.git5),this.gitInv6=this.gitInv6||y(this.git6),this.gitInv7=this.gitInv7||y(this.git7),this.branchLabelColor=this.branchLabelColor||this.labelTextColor,this.gitBranchLabel0=this.branchLabelColor,this.gitBranchLabel1="white",this.gitBranchLabel2=this.branchLabelColor,this.gitBranchLabel3="white",this.gitBranchLabel4=this.branchLabelColor,this.gitBranchLabel5=this.branchLabelColor,this.gitBranchLabel6=this.branchLabelColor,this.gitBranchLabel7=this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||Ut,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Vt}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}}const Wt={base:{getThemeVariables:t=>{const e=new 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(){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||Ht(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Ht(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Ht(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Ht(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||y(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||y(this.tertiaryColor),this.lineColor=this.lineColor||y(this.background),this.textColor=this.textColor||this.primaryTextColor,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?(0,v.Z)(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||(0,v.Z)(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||y(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||(0,w.Z)(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 e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScale"+e]=(0,v.Z)(this["cScale"+e],75);else for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScale"+e]=(0,v.Z)(this["cScale"+e],25);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScaleInv"+e]=this["cScaleInv"+e]||y(this["cScale"+e]);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this.darkMode?this["cScalePeer"+e]=this["cScalePeer"+e]||(0,w.Z)(this["cScale"+e],10):this["cScalePeer"+e]=this["cScalePeer"+e]||(0,v.Z)(this["cScale"+e],10);this.scaleLabelColor=this.scaleLabelColor||this.labelTextColor;for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScaleLabel"+e]=this["cScaleLabel"+e]||this.scaleLabelColor;const t=this.darkMode?-4:-1;for(let e=0;e<5;e++)this["surface"+e]=this["surface"+e]||g(this.mainBkg,{h:180,s:-15,l:t*(5+3*e)}),this["surfacePeer"+e]=this["surfacePeer"+e]||g(this.mainBkg,{h:180,s:-15,l:t*(8+3*e)});this.classText=this.classText||this.textColor,this.fillType0=this.fillType0||this.primaryColor,this.fillType1=this.fillType1||this.secondaryColor,this.fillType2=this.fillType2||g(this.primaryColor,{h:64}),this.fillType3=this.fillType3||g(this.secondaryColor,{h:64}),this.fillType4=this.fillType4||g(this.primaryColor,{h:-64}),this.fillType5=this.fillType5||g(this.secondaryColor,{h:-64}),this.fillType6=this.fillType6||g(this.primaryColor,{h:128}),this.fillType7=this.fillType7||g(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||g(this.primaryColor,{l:-10}),this.pie5=this.pie5||g(this.secondaryColor,{l:-10}),this.pie6=this.pie6||g(this.tertiaryColor,{l:-10}),this.pie7=this.pie7||g(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||g(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||g(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||g(this.primaryColor,{h:60,l:-20}),this.pie11=this.pie11||g(this.primaryColor,{h:-60,l:-20}),this.pie12=this.pie12||g(this.primaryColor,{h:120,l:-10}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?(0,v.Z)(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||g(this.primaryColor,{h:-30}),this.git4=this.git4||g(this.primaryColor,{h:-60}),this.git5=this.git5||g(this.primaryColor,{h:-90}),this.git6=this.git6||g(this.primaryColor,{h:60}),this.git7=this.git7||g(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,w.Z)(this.git0,25),this.git1=(0,w.Z)(this.git1,25),this.git2=(0,w.Z)(this.git2,25),this.git3=(0,w.Z)(this.git3,25),this.git4=(0,w.Z)(this.git4,25),this.git5=(0,w.Z)(this.git5,25),this.git6=(0,w.Z)(this.git6,25),this.git7=(0,w.Z)(this.git7,25)):(this.git0=(0,v.Z)(this.git0,25),this.git1=(0,v.Z)(this.git1,25),this.git2=(0,v.Z)(this.git2,25),this.git3=(0,v.Z)(this.git3,25),this.git4=(0,v.Z)(this.git4,25),this.git5=(0,v.Z)(this.git5,25),this.git6=(0,v.Z)(this.git6,25),this.git7=(0,v.Z)(this.git7,25)),this.gitInv0=this.gitInv0||y(this.git0),this.gitInv1=this.gitInv1||y(this.git1),this.gitInv2=this.gitInv2||y(this.git2),this.gitInv3=this.gitInv3||y(this.git3),this.gitInv4=this.gitInv4||y(this.git4),this.gitInv5=this.gitInv5||y(this.git5),this.gitInv6=this.gitInv6||y(this.git6),this.gitInv7=this.gitInv7||y(this.git7),this.branchLabelColor=this.branchLabelColor||(this.darkMode?"black":this.labelTextColor),this.gitBranchLabel0=this.gitBranchLabel0||this.branchLabelColor,this.gitBranchLabel1=this.gitBranchLabel1||this.branchLabelColor,this.gitBranchLabel2=this.gitBranchLabel2||this.branchLabelColor,this.gitBranchLabel3=this.gitBranchLabel3||this.branchLabelColor,this.gitBranchLabel4=this.gitBranchLabel4||this.branchLabelColor,this.gitBranchLabel5=this.gitBranchLabel5||this.branchLabelColor,this.gitBranchLabel6=this.gitBranchLabel6||this.branchLabelColor,this.gitBranchLabel7=this.gitBranchLabel7||this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||Ut,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Vt}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}};return e.calculate(t),e}},dark:{getThemeVariables:t=>{const e=new class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=(0,w.Z)(this.primaryColor,16),this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=y(this.background),this.secondaryBorderColor=Ht(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Ht(this.tertiaryColor,this.darkMode),this.primaryTextColor=y(this.primaryColor),this.secondaryTextColor=y(this.secondaryColor),this.tertiaryTextColor=y(this.tertiaryColor),this.lineColor=y(this.background),this.textColor=y(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=(0,w.Z)(y("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=b(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=(0,v.Z)("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.taskBorderColor=b(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=b(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="calculated",this.personBkg="calculated",this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=(0,w.Z)(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=(0,w.Z)(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=(0,w.Z)(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 t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||y(this["cScale"+t]);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScalePeer"+t]=this["cScalePeer"+t]||(0,w.Z)(this["cScale"+t],10);for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||g(this.mainBkg,{h:30,s:-30,l:-(4*t-10)}),this["surfacePeer"+t]=this["surfacePeer"+t]||g(this.mainBkg,{h:30,s:-30,l:-(4*t-7)});this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["pie"+t]=this["cScale"+t];this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.classText=this.primaryTextColor,this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?(0,v.Z)(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=(0,w.Z)(this.secondaryColor,20),this.git1=(0,w.Z)(this.pie2||this.secondaryColor,20),this.git2=(0,w.Z)(this.pie3||this.tertiaryColor,20),this.git3=(0,w.Z)(this.pie4||g(this.primaryColor,{h:-30}),20),this.git4=(0,w.Z)(this.pie5||g(this.primaryColor,{h:-60}),20),this.git5=(0,w.Z)(this.pie6||g(this.primaryColor,{h:-90}),10),this.git6=(0,w.Z)(this.pie7||g(this.primaryColor,{h:60}),10),this.git7=(0,w.Z)(this.pie8||g(this.primaryColor,{h:120}),20),this.gitInv0=this.gitInv0||y(this.git0),this.gitInv1=this.gitInv1||y(this.git1),this.gitInv2=this.gitInv2||y(this.git2),this.gitInv3=this.gitInv3||y(this.git3),this.gitInv4=this.gitInv4||y(this.git4),this.gitInv5=this.gitInv5||y(this.git5),this.gitInv6=this.gitInv6||y(this.git6),this.gitInv7=this.gitInv7||y(this.git7),this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||(0,w.Z)(this.background,12),this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||(0,w.Z)(this.background,2)}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}};return e.calculate(t),e}},default:{getThemeVariables:t=>{const e=new 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=Ht(this.primaryColor,this.darkMode),this.secondaryBorderColor=Ht(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Ht(this.tertiaryColor,this.darkMode),this.primaryTextColor=y(this.primaryColor),this.secondaryTextColor=y(this.secondaryColor),this.tertiaryTextColor=y(this.tertiaryColor),this.lineColor=y(this.background),this.textColor=y(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=b(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="calculated",this.personBkg="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){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||(0,v.Z)(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||(0,v.Z)(this.tertiaryColor,40);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScale"+t]=(0,v.Z)(this["cScale"+t],10),this["cScalePeer"+t]=this["cScalePeer"+t]||(0,v.Z)(this["cScale"+t],25);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||g(this["cScale"+t],{h:180});for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||g(this.mainBkg,{h:30,l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||g(this.mainBkg,{h:30,l:-(7+5*t)});if(this.scaleLabelColor="calculated"!==this.scaleLabelColor&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor,"calculated"!==this.labelTextColor){this.cScaleLabel0=this.cScaleLabel0||y(this.labelTextColor),this.cScaleLabel3=this.cScaleLabel3||y(this.labelTextColor);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.labelTextColor}this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.textColor,this.edgeLabelBackground=this.labelBackground,this.actorBorder=(0,w.Z)(this.border1,23),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.signalColor=this.textColor,this.signalTextColor=this.textColor,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,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||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,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.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||g(this.tertiaryColor,{l:-40}),this.pie4=this.pie4||g(this.primaryColor,{l:-10}),this.pie5=this.pie5||g(this.secondaryColor,{l:-30}),this.pie6=this.pie6||g(this.tertiaryColor,{l:-20}),this.pie7=this.pie7||g(this.primaryColor,{h:60,l:-20}),this.pie8=this.pie8||g(this.primaryColor,{h:-60,l:-40}),this.pie9=this.pie9||g(this.primaryColor,{h:120,l:-40}),this.pie10=this.pie10||g(this.primaryColor,{h:60,l:-40}),this.pie11=this.pie11||g(this.primaryColor,{h:-90,l:-40}),this.pie12=this.pie12||g(this.primaryColor,{h:120,l:-30}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.labelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||g(this.primaryColor,{h:-30}),this.git4=this.git4||g(this.primaryColor,{h:-60}),this.git5=this.git5||g(this.primaryColor,{h:-90}),this.git6=this.git6||g(this.primaryColor,{h:60}),this.git7=this.git7||g(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,w.Z)(this.git0,25),this.git1=(0,w.Z)(this.git1,25),this.git2=(0,w.Z)(this.git2,25),this.git3=(0,w.Z)(this.git3,25),this.git4=(0,w.Z)(this.git4,25),this.git5=(0,w.Z)(this.git5,25),this.git6=(0,w.Z)(this.git6,25),this.git7=(0,w.Z)(this.git7,25)):(this.git0=(0,v.Z)(this.git0,25),this.git1=(0,v.Z)(this.git1,25),this.git2=(0,v.Z)(this.git2,25),this.git3=(0,v.Z)(this.git3,25),this.git4=(0,v.Z)(this.git4,25),this.git5=(0,v.Z)(this.git5,25),this.git6=(0,v.Z)(this.git6,25),this.git7=(0,v.Z)(this.git7,25)),this.gitInv0=this.gitInv0||(0,v.Z)(y(this.git0),25),this.gitInv1=this.gitInv1||y(this.git1),this.gitInv2=this.gitInv2||y(this.git2),this.gitInv3=this.gitInv3||y(this.git3),this.gitInv4=this.gitInv4||y(this.git4),this.gitInv5=this.gitInv5||y(this.git5),this.gitInv6=this.gitInv6||y(this.git6),this.gitInv7=this.gitInv7||y(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||y(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||y(this.labelTextColor),this.gitBranchLabel4=this.gitBranchLabel4||this.labelTextColor,this.gitBranchLabel5=this.gitBranchLabel5||this.labelTextColor,this.gitBranchLabel6=this.gitBranchLabel6||this.labelTextColor,this.gitBranchLabel7=this.gitBranchLabel7||this.labelTextColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||Ut,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Vt}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}};return e.calculate(t),e}},forest:{getThemeVariables:t=>{const e=new 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=(0,w.Z)("#cde498",10),this.primaryBorderColor=Ht(this.primaryColor,this.darkMode),this.secondaryBorderColor=Ht(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Ht(this.tertiaryColor,this.darkMode),this.primaryTextColor=y(this.primaryColor),this.secondaryTextColor=y(this.secondaryColor),this.tertiaryTextColor=y(this.primaryColor),this.lineColor=y(this.background),this.textColor=y(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="calculated",this.personBkg="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){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||(0,v.Z)(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||(0,v.Z)(this.tertiaryColor,40);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScale"+t]=(0,v.Z)(this["cScale"+t],10),this["cScalePeer"+t]=this["cScalePeer"+t]||(0,v.Z)(this["cScale"+t],25);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||g(this["cScale"+t],{h:180});this.scaleLabelColor="calculated"!==this.scaleLabelColor&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||g(this.mainBkg,{h:30,s:-30,l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||g(this.mainBkg,{h:30,s:-30,l:-(8+5*t)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.actorBorder=(0,v.Z)(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.taskBorderColor=this.border1,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=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||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,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.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||g(this.primaryColor,{l:-30}),this.pie5=this.pie5||g(this.secondaryColor,{l:-30}),this.pie6=this.pie6||g(this.tertiaryColor,{h:40,l:-40}),this.pie7=this.pie7||g(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||g(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||g(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||g(this.primaryColor,{h:60,l:-50}),this.pie11=this.pie11||g(this.primaryColor,{h:-60,l:-50}),this.pie12=this.pie12||g(this.primaryColor,{h:120,l:-50}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||g(this.primaryColor,{h:-30}),this.git4=this.git4||g(this.primaryColor,{h:-60}),this.git5=this.git5||g(this.primaryColor,{h:-90}),this.git6=this.git6||g(this.primaryColor,{h:60}),this.git7=this.git7||g(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,w.Z)(this.git0,25),this.git1=(0,w.Z)(this.git1,25),this.git2=(0,w.Z)(this.git2,25),this.git3=(0,w.Z)(this.git3,25),this.git4=(0,w.Z)(this.git4,25),this.git5=(0,w.Z)(this.git5,25),this.git6=(0,w.Z)(this.git6,25),this.git7=(0,w.Z)(this.git7,25)):(this.git0=(0,v.Z)(this.git0,25),this.git1=(0,v.Z)(this.git1,25),this.git2=(0,v.Z)(this.git2,25),this.git3=(0,v.Z)(this.git3,25),this.git4=(0,v.Z)(this.git4,25),this.git5=(0,v.Z)(this.git5,25),this.git6=(0,v.Z)(this.git6,25),this.git7=(0,v.Z)(this.git7,25)),this.gitInv0=this.gitInv0||y(this.git0),this.gitInv1=this.gitInv1||y(this.git1),this.gitInv2=this.gitInv2||y(this.git2),this.gitInv3=this.gitInv3||y(this.git3),this.gitInv4=this.gitInv4||y(this.git4),this.gitInv5=this.gitInv5||y(this.git5),this.gitInv6=this.gitInv6||y(this.git6),this.gitInv7=this.gitInv7||y(this.git7),this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||Ut,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Vt}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}};return e.calculate(t),e}},neutral:{getThemeVariables:t=>{const e=new qt;return e.calculate(t),e}}},Yt={theme:"default",themeVariables:Wt.default.getThemeVariables(),themeCSS:void 0,maxTextSize:5e4,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize"],deterministicIds:!1,deterministicIDSeed:void 0,flowchart:{titleTopMargin:25,diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},sequence:{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,useMaxWidth:!0,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,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:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",tickInterval:void 0,useMaxWidth:!0,topAxis:!1,useWidth:void 0},journey:{diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,useMaxWidth:!0,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"]},timeline:{diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,useMaxWidth:!0,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},class:{titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},state:{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,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},er:{titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12,useMaxWidth:!0},pie:{useWidth:void 0,useMaxWidth:!0},requirement:{useWidth:void 0,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},gitGraph:{titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0},c4:{useWidth:void 0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,useMaxWidth:!0,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,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}},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"},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},fontSize:16};Yt.class&&(Yt.class.arrowMarkerAbsolute=Yt.arrowMarkerAbsolute),Yt.gitGraph&&(Yt.gitGraph.arrowMarkerAbsolute=Yt.arrowMarkerAbsolute);const Gt=(t,e="")=>Object.keys(t).reduce(((n,i)=>Array.isArray(t[i])?n:"object"==typeof t[i]&&null!==t[i]?[...n,e+i,...Gt(t[i],"")]:[...n,e+i]),[]),Zt=Gt(Yt,""),Kt=Yt;function Xt(t){return null==t}var Jt={isNothing:Xt,isObject:function(t){return"object"==typeof t&&null!==t},toArray:function(t){return Array.isArray(t)?t:Xt(t)?[]:[t]},repeat:function(t,e){var n,i="";for(n=0;n<e;n+=1)i+=t;return i},isNegativeZero:function(t){return 0===t&&Number.NEGATIVE_INFINITY===1/t},extend:function(t,e){var n,i,a,r;if(e)for(n=0,i=(r=Object.keys(e)).length;n<i;n+=1)t[a=r[n]]=e[a];return t}};function Qt(t,e){var n="",i=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(n+='in "'+t.mark.name+'" '),n+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!e&&t.mark.snippet&&(n+="\n\n"+t.mark.snippet),i+" "+n):i}function te(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=Qt(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}te.prototype=Object.create(Error.prototype),te.prototype.constructor=te,te.prototype.toString=function(t){return this.name+": "+Qt(this,t)};var ee=te;function ne(t,e,n,i,a){var r="",o="",s=Math.floor(a/2)-1;return i-e>s&&(e=i-s+(r=" ... ").length),n-i>s&&(n=i+s-(o=" ...").length),{str:r+t.slice(e,n).replace(/\t/g,"\u2192")+o,pos:i-e+r.length}}function ie(t,e){return Jt.repeat(" ",e-t.length)+t}var ae=function(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),"number"!=typeof e.indent&&(e.indent=1),"number"!=typeof e.linesBefore&&(e.linesBefore=3),"number"!=typeof e.linesAfter&&(e.linesAfter=2);for(var n,i=/\r?\n|\r|\0/g,a=[0],r=[],o=-1;n=i.exec(t.buffer);)r.push(n.index),a.push(n.index+n[0].length),t.position<=n.index&&o<0&&(o=a.length-2);o<0&&(o=a.length-1);var s,c,l="",u=Math.min(t.line+e.linesAfter,r.length).toString().length,d=e.maxLength-(e.indent+u+3);for(s=1;s<=e.linesBefore&&!(o-s<0);s++)c=ne(t.buffer,a[o-s],r[o-s],t.position-(a[o]-a[o-s]),d),l=Jt.repeat(" ",e.indent)+ie((t.line-s+1).toString(),u)+" | "+c.str+"\n"+l;for(c=ne(t.buffer,a[o],r[o],t.position,d),l+=Jt.repeat(" ",e.indent)+ie((t.line+1).toString(),u)+" | "+c.str+"\n",l+=Jt.repeat("-",e.indent+u+3+c.pos)+"^\n",s=1;s<=e.linesAfter&&!(o+s>=r.length);s++)c=ne(t.buffer,a[o+s],r[o+s],t.position-(a[o]-a[o+s]),d),l+=Jt.repeat(" ",e.indent)+ie((t.line+s+1).toString(),u)+" | "+c.str+"\n";return l.replace(/\n$/,"")},re=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],oe=["scalar","sequence","mapping"];var se=function(t,e){var n,i;if(e=e||{},Object.keys(e).forEach((function(e){if(-1===re.indexOf(e))throw new ee('Unknown option "'+e+'" 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(t){return t},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=(n=e.styleAliases||null,i={},null!==n&&Object.keys(n).forEach((function(t){n[t].forEach((function(e){i[String(e)]=t}))})),i),-1===oe.indexOf(this.kind))throw new ee('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')};function ce(t,e){var n=[];return t[e].forEach((function(t){var e=n.length;n.forEach((function(n,i){n.tag===t.tag&&n.kind===t.kind&&n.multi===t.multi&&(e=i)})),n[e]=t})),n}function le(t){return this.extend(t)}le.prototype.extend=function(t){var e=[],n=[];if(t instanceof se)n.push(t);else if(Array.isArray(t))n=n.concat(t);else{if(!t||!Array.isArray(t.implicit)&&!Array.isArray(t.explicit))throw new ee("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");t.implicit&&(e=e.concat(t.implicit)),t.explicit&&(n=n.concat(t.explicit))}e.forEach((function(t){if(!(t instanceof se))throw new ee("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(t.loadKind&&"scalar"!==t.loadKind)throw new ee("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(t.multi)throw new ee("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")})),n.forEach((function(t){if(!(t instanceof se))throw new ee("Specified list of YAML types (or a single Type object) contains a non-Type object.")}));var i=Object.create(le.prototype);return i.implicit=(this.implicit||[]).concat(e),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=ce(i,"implicit"),i.compiledExplicit=ce(i,"explicit"),i.compiledTypeMap=function(){var t,e,n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function i(t){t.multi?(n.multi[t.kind].push(t),n.multi.fallback.push(t)):n[t.kind][t.tag]=n.fallback[t.tag]=t}for(t=0,e=arguments.length;t<e;t+=1)arguments[t].forEach(i);return n}(i.compiledImplicit,i.compiledExplicit),i};var ue=new le({explicit:[new se("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return null!==t?t:""}}),new se("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return null!==t?t:[]}}),new se("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return null!==t?t:{}}})]});var de=new se("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(t){if(null===t)return!0;var e=t.length;return 1===e&&"~"===t||4===e&&("null"===t||"Null"===t||"NULL"===t)},construct:function(){return null},predicate:function(t){return null===t},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});var he=new se("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e=t.length;return 4===e&&("true"===t||"True"===t||"TRUE"===t)||5===e&&("false"===t||"False"===t||"FALSE"===t)},construct:function(t){return"true"===t||"True"===t||"TRUE"===t},predicate:function(t){return"[object Boolean]"===Object.prototype.toString.call(t)},represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"});function fe(t){return 48<=t&&t<=55}function ge(t){return 48<=t&&t<=57}var pe=new se("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,n,i=t.length,a=0,r=!1;if(!i)return!1;if("-"!==(e=t[a])&&"+"!==e||(e=t[++a]),"0"===e){if(a+1===i)return!0;if("b"===(e=t[++a])){for(a++;a<i;a++)if("_"!==(e=t[a])){if("0"!==e&&"1"!==e)return!1;r=!0}return r&&"_"!==e}if("x"===e){for(a++;a<i;a++)if("_"!==(e=t[a])){if(!(48<=(n=t.charCodeAt(a))&&n<=57||65<=n&&n<=70||97<=n&&n<=102))return!1;r=!0}return r&&"_"!==e}if("o"===e){for(a++;a<i;a++)if("_"!==(e=t[a])){if(!fe(t.charCodeAt(a)))return!1;r=!0}return r&&"_"!==e}}if("_"===e)return!1;for(;a<i;a++)if("_"!==(e=t[a])){if(!ge(t.charCodeAt(a)))return!1;r=!0}return!(!r||"_"===e)},construct:function(t){var e,n=t,i=1;if(-1!==n.indexOf("_")&&(n=n.replace(/_/g,"")),"-"!==(e=n[0])&&"+"!==e||("-"===e&&(i=-1),e=(n=n.slice(1))[0]),"0"===n)return 0;if("0"===e){if("b"===n[1])return i*parseInt(n.slice(2),2);if("x"===n[1])return i*parseInt(n.slice(2),16);if("o"===n[1])return i*parseInt(n.slice(2),8)}return i*parseInt(n,10)},predicate:function(t){return"[object Number]"===Object.prototype.toString.call(t)&&t%1==0&&!Jt.isNegativeZero(t)},represent:{binary:function(t){return t>=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"]}}),be=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var me=/^[-+]?[0-9]+e/;var ye=new se("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(t){return null!==t&&!(!be.test(t)||"_"===t[t.length-1])},construct:function(t){var e,n;return n="-"===(e=t.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),".inf"===e?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===e?NaN:n*parseFloat(e,10)},predicate:function(t){return"[object Number]"===Object.prototype.toString.call(t)&&(t%1!=0||Jt.isNegativeZero(t))},represent:function(t,e){var n;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(Jt.isNegativeZero(t))return"-0.0";return n=t.toString(10),me.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"}),ve=ue.extend({implicit:[de,he,pe,ye]}),we=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),xe=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]))?))?$");var Re=new se("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(t){return null!==t&&(null!==we.exec(t)||null!==xe.exec(t))},construct:function(t){var e,n,i,a,r,o,s,c,l=0,u=null;if(null===(e=we.exec(t))&&(e=xe.exec(t)),null===e)throw new Error("Date resolve error");if(n=+e[1],i=+e[2]-1,a=+e[3],!e[4])return new Date(Date.UTC(n,i,a));if(r=+e[4],o=+e[5],s=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=6e4*(60*+e[10]+ +(e[11]||0)),"-"===e[9]&&(u=-u)),c=new Date(Date.UTC(n,i,a,r,o,s,l)),u&&c.setTime(c.getTime()-u),c},instanceOf:Date,represent:function(t){return t.toISOString()}});var _e=new se("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(t){return"<<"===t||null===t}}),ke="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var Ee=new se("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,n,i=0,a=t.length,r=ke;for(n=0;n<a;n++)if(!((e=r.indexOf(t.charAt(n)))>64)){if(e<0)return!1;i+=6}return i%8==0},construct:function(t){var e,n,i=t.replace(/[\r\n=]/g,""),a=i.length,r=ke,o=0,s=[];for(e=0;e<a;e++)e%4==0&&e&&(s.push(o>>16&255),s.push(o>>8&255),s.push(255&o)),o=o<<6|r.indexOf(i.charAt(e));return 0===(n=a%4*6)?(s.push(o>>16&255),s.push(o>>8&255),s.push(255&o)):18===n?(s.push(o>>10&255),s.push(o>>2&255)):12===n&&s.push(o>>4&255),new Uint8Array(s)},predicate:function(t){return"[object Uint8Array]"===Object.prototype.toString.call(t)},represent:function(t){var e,n,i="",a=0,r=t.length,o=ke;for(e=0;e<r;e++)e%3==0&&e&&(i+=o[a>>18&63],i+=o[a>>12&63],i+=o[a>>6&63],i+=o[63&a]),a=(a<<8)+t[e];return 0===(n=r%3)?(i+=o[a>>18&63],i+=o[a>>12&63],i+=o[a>>6&63],i+=o[63&a]):2===n?(i+=o[a>>10&63],i+=o[a>>4&63],i+=o[a<<2&63],i+=o[64]):1===n&&(i+=o[a>>2&63],i+=o[a<<4&63],i+=o[64],i+=o[64]),i}}),Ce=Object.prototype.hasOwnProperty,Se=Object.prototype.toString;var Te=new se("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(t){if(null===t)return!0;var e,n,i,a,r,o=[],s=t;for(e=0,n=s.length;e<n;e+=1){if(i=s[e],r=!1,"[object Object]"!==Se.call(i))return!1;for(a in i)if(Ce.call(i,a)){if(r)return!1;r=!0}if(!r)return!1;if(-1!==o.indexOf(a))return!1;o.push(a)}return!0},construct:function(t){return null!==t?t:[]}}),Ae=Object.prototype.toString;var De=new se("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(t){if(null===t)return!0;var e,n,i,a,r,o=t;for(r=new Array(o.length),e=0,n=o.length;e<n;e+=1){if(i=o[e],"[object Object]"!==Ae.call(i))return!1;if(1!==(a=Object.keys(i)).length)return!1;r[e]=[a[0],i[a[0]]]}return!0},construct:function(t){if(null===t)return[];var e,n,i,a,r,o=t;for(r=new Array(o.length),e=0,n=o.length;e<n;e+=1)i=o[e],a=Object.keys(i),r[e]=[a[0],i[a[0]]];return r}}),Ie=Object.prototype.hasOwnProperty;var Le=new se("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(t){if(null===t)return!0;var e,n=t;for(e in n)if(Ie.call(n,e)&&null!==n[e])return!1;return!0},construct:function(t){return null!==t?t:{}}}),Oe=ve.extend({implicit:[Re,_e],explicit:[Ee,Te,De,Le]}),Me=Object.prototype.hasOwnProperty,Ne=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Be=/[\x85\u2028\u2029]/,Pe=/[,\[\]\{\}]/,Fe=/^(?:!|!!|![a-z\-]+!)$/i,je=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function $e(t){return Object.prototype.toString.call(t)}function ze(t){return 10===t||13===t}function He(t){return 9===t||32===t}function Ue(t){return 9===t||32===t||10===t||13===t}function Ve(t){return 44===t||91===t||93===t||123===t||125===t}function qe(t){var e;return 48<=t&&t<=57?t-48:97<=(e=32|t)&&e<=102?e-97+10:-1}function We(t){return 48===t?"\0":97===t?"\x07":98===t?"\b":116===t||9===t?"\t":110===t?"\n":118===t?"\v":102===t?"\f":114===t?"\r":101===t?"\x1b":32===t?" ":34===t?'"':47===t?"/":92===t?"\\":78===t?"\x85":95===t?"\xa0":76===t?"\u2028":80===t?"\u2029":""}function Ye(t){return t<=65535?String.fromCharCode(t):String.fromCharCode(55296+(t-65536>>10),56320+(t-65536&1023))}for(var Ge=new Array(256),Ze=new Array(256),Ke=0;Ke<256;Ke++)Ge[Ke]=We(Ke)?1:0,Ze[Ke]=We(Ke);function Xe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||Oe,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 Je(t,e){var n={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return n.snippet=ae(n),new ee(e,n)}function Qe(t,e){throw Je(t,e)}function tn(t,e){t.onWarning&&t.onWarning.call(null,Je(t,e))}var en={YAML:function(t,e,n){var i,a,r;null!==t.version&&Qe(t,"duplication of %YAML directive"),1!==n.length&&Qe(t,"YAML directive accepts exactly one argument"),null===(i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&Qe(t,"ill-formed argument of the YAML directive"),a=parseInt(i[1],10),r=parseInt(i[2],10),1!==a&&Qe(t,"unacceptable YAML version of the document"),t.version=n[0],t.checkLineBreaks=r<2,1!==r&&2!==r&&tn(t,"unsupported YAML version of the document")},TAG:function(t,e,n){var i,a;2!==n.length&&Qe(t,"TAG directive accepts exactly two arguments"),i=n[0],a=n[1],Fe.test(i)||Qe(t,"ill-formed tag handle (first argument) of the TAG directive"),Me.call(t.tagMap,i)&&Qe(t,'there is a previously declared suffix for "'+i+'" tag handle'),je.test(a)||Qe(t,"ill-formed tag prefix (second argument) of the TAG directive");try{a=decodeURIComponent(a)}catch(r){Qe(t,"tag prefix is malformed: "+a)}t.tagMap[i]=a}};function nn(t,e,n,i){var a,r,o,s;if(e<n){if(s=t.input.slice(e,n),i)for(a=0,r=s.length;a<r;a+=1)9===(o=s.charCodeAt(a))||32<=o&&o<=1114111||Qe(t,"expected valid JSON character");else Ne.test(s)&&Qe(t,"the stream contains non-printable characters");t.result+=s}}function an(t,e,n,i){var a,r,o,s;for(Jt.isObject(n)||Qe(t,"cannot merge mappings; the provided source object is unacceptable"),o=0,s=(a=Object.keys(n)).length;o<s;o+=1)r=a[o],Me.call(e,r)||(e[r]=n[r],i[r]=!0)}function rn(t,e,n,i,a,r,o,s,c){var l,u;if(Array.isArray(a))for(l=0,u=(a=Array.prototype.slice.call(a)).length;l<u;l+=1)Array.isArray(a[l])&&Qe(t,"nested arrays are not supported inside keys"),"object"==typeof a&&"[object Object]"===$e(a[l])&&(a[l]="[object Object]");if("object"==typeof a&&"[object Object]"===$e(a)&&(a="[object Object]"),a=String(a),null===e&&(e={}),"tag:yaml.org,2002:merge"===i)if(Array.isArray(r))for(l=0,u=r.length;l<u;l+=1)an(t,e,r[l],n);else an(t,e,r,n);else t.json||Me.call(n,a)||!Me.call(e,a)||(t.line=o||t.line,t.lineStart=s||t.lineStart,t.position=c||t.position,Qe(t,"duplicated mapping key")),"__proto__"===a?Object.defineProperty(e,a,{configurable:!0,enumerable:!0,writable:!0,value:r}):e[a]=r,delete n[a];return e}function on(t){var e;10===(e=t.input.charCodeAt(t.position))?t.position++:13===e?(t.position++,10===t.input.charCodeAt(t.position)&&t.position++):Qe(t,"a line break is expected"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function sn(t,e,n){for(var i=0,a=t.input.charCodeAt(t.position);0!==a;){for(;He(a);)9===a&&-1===t.firstTabInLine&&(t.firstTabInLine=t.position),a=t.input.charCodeAt(++t.position);if(e&&35===a)do{a=t.input.charCodeAt(++t.position)}while(10!==a&&13!==a&&0!==a);if(!ze(a))break;for(on(t),a=t.input.charCodeAt(t.position),i++,t.lineIndent=0;32===a;)t.lineIndent++,a=t.input.charCodeAt(++t.position)}return-1!==n&&0!==i&&t.lineIndent<n&&tn(t,"deficient indentation"),i}function cn(t){var e,n=t.position;return!(45!==(e=t.input.charCodeAt(n))&&46!==e||e!==t.input.charCodeAt(n+1)||e!==t.input.charCodeAt(n+2)||(n+=3,0!==(e=t.input.charCodeAt(n))&&!Ue(e)))}function ln(t,e){1===e?t.result+=" ":e>1&&(t.result+=Jt.repeat("\n",e-1))}function un(t,e){var n,i,a=t.tag,r=t.anchor,o=[],s=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=o),i=t.input.charCodeAt(t.position);0!==i&&(-1!==t.firstTabInLine&&(t.position=t.firstTabInLine,Qe(t,"tab characters must not be used in indentation")),45===i)&&Ue(t.input.charCodeAt(t.position+1));)if(s=!0,t.position++,sn(t,!0,-1)&&t.lineIndent<=e)o.push(null),i=t.input.charCodeAt(t.position);else if(n=t.line,fn(t,e,3,!1,!0),o.push(t.result),sn(t,!0,-1),i=t.input.charCodeAt(t.position),(t.line===n||t.lineIndent>e)&&0!==i)Qe(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break;return!!s&&(t.tag=a,t.anchor=r,t.kind="sequence",t.result=o,!0)}function dn(t){var e,n,i,a,r=!1,o=!1;if(33!==(a=t.input.charCodeAt(t.position)))return!1;if(null!==t.tag&&Qe(t,"duplication of a tag property"),60===(a=t.input.charCodeAt(++t.position))?(r=!0,a=t.input.charCodeAt(++t.position)):33===a?(o=!0,n="!!",a=t.input.charCodeAt(++t.position)):n="!",e=t.position,r){do{a=t.input.charCodeAt(++t.position)}while(0!==a&&62!==a);t.position<t.length?(i=t.input.slice(e,t.position),a=t.input.charCodeAt(++t.position)):Qe(t,"unexpected end of the stream within a verbatim tag")}else{for(;0!==a&&!Ue(a);)33===a&&(o?Qe(t,"tag suffix cannot contain exclamation marks"):(n=t.input.slice(e-1,t.position+1),Fe.test(n)||Qe(t,"named tag handle cannot contain such characters"),o=!0,e=t.position+1)),a=t.input.charCodeAt(++t.position);i=t.input.slice(e,t.position),Pe.test(i)&&Qe(t,"tag suffix cannot contain flow indicator characters")}i&&!je.test(i)&&Qe(t,"tag name cannot contain such characters: "+i);try{i=decodeURIComponent(i)}catch(s){Qe(t,"tag name is malformed: "+i)}return r?t.tag=i:Me.call(t.tagMap,n)?t.tag=t.tagMap[n]+i:"!"===n?t.tag="!"+i:"!!"===n?t.tag="tag:yaml.org,2002:"+i:Qe(t,'undeclared tag handle "'+n+'"'),!0}function hn(t){var e,n;if(38!==(n=t.input.charCodeAt(t.position)))return!1;for(null!==t.anchor&&Qe(t,"duplication of an anchor property"),n=t.input.charCodeAt(++t.position),e=t.position;0!==n&&!Ue(n)&&!Ve(n);)n=t.input.charCodeAt(++t.position);return t.position===e&&Qe(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(e,t.position),!0}function fn(t,e,n,i,a){var r,o,s,c,l,u,d,h,f,g=1,p=!1,b=!1;if(null!==t.listener&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,r=o=s=4===n||3===n,i&&sn(t,!0,-1)&&(p=!0,t.lineIndent>e?g=1:t.lineIndent===e?g=0:t.lineIndent<e&&(g=-1)),1===g)for(;dn(t)||hn(t);)sn(t,!0,-1)?(p=!0,s=r,t.lineIndent>e?g=1:t.lineIndent===e?g=0:t.lineIndent<e&&(g=-1)):s=!1;if(s&&(s=p||a),1!==g&&4!==n||(h=1===n||2===n?e:e+1,f=t.position-t.lineStart,1===g?s&&(un(t,f)||function(t,e,n){var i,a,r,o,s,c,l,u=t.tag,d=t.anchor,h={},f=Object.create(null),g=null,p=null,b=null,m=!1,y=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=h),l=t.input.charCodeAt(t.position);0!==l;){if(m||-1===t.firstTabInLine||(t.position=t.firstTabInLine,Qe(t,"tab characters must not be used in indentation")),i=t.input.charCodeAt(t.position+1),r=t.line,63!==l&&58!==l||!Ue(i)){if(o=t.line,s=t.lineStart,c=t.position,!fn(t,n,2,!1,!0))break;if(t.line===r){for(l=t.input.charCodeAt(t.position);He(l);)l=t.input.charCodeAt(++t.position);if(58===l)Ue(l=t.input.charCodeAt(++t.position))||Qe(t,"a whitespace character is expected after the key-value separator within a block mapping"),m&&(rn(t,h,f,g,p,null,o,s,c),g=p=b=null),y=!0,m=!1,a=!1,g=t.tag,p=t.result;else{if(!y)return t.tag=u,t.anchor=d,!0;Qe(t,"can not read an implicit mapping pair; a colon is missed")}}else{if(!y)return t.tag=u,t.anchor=d,!0;Qe(t,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===l?(m&&(rn(t,h,f,g,p,null,o,s,c),g=p=b=null),y=!0,m=!0,a=!0):m?(m=!1,a=!0):Qe(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,l=i;if((t.line===r||t.lineIndent>e)&&(m&&(o=t.line,s=t.lineStart,c=t.position),fn(t,e,4,!0,a)&&(m?p=t.result:b=t.result),m||(rn(t,h,f,g,p,b,o,s,c),g=p=b=null),sn(t,!0,-1),l=t.input.charCodeAt(t.position)),(t.line===r||t.lineIndent>e)&&0!==l)Qe(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return m&&rn(t,h,f,g,p,null,o,s,c),y&&(t.tag=u,t.anchor=d,t.kind="mapping",t.result=h),y}(t,f,h))||function(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g=!0,p=t.tag,b=t.anchor,m=Object.create(null);if(91===(f=t.input.charCodeAt(t.position)))o=93,l=!1,r=[];else{if(123!==f)return!1;o=125,l=!0,r={}}for(null!==t.anchor&&(t.anchorMap[t.anchor]=r),f=t.input.charCodeAt(++t.position);0!==f;){if(sn(t,!0,e),(f=t.input.charCodeAt(t.position))===o)return t.position++,t.tag=p,t.anchor=b,t.kind=l?"mapping":"sequence",t.result=r,!0;g?44===f&&Qe(t,"expected the node content, but found ','"):Qe(t,"missed comma between flow collection entries"),h=null,s=c=!1,63===f&&Ue(t.input.charCodeAt(t.position+1))&&(s=c=!0,t.position++,sn(t,!0,e)),n=t.line,i=t.lineStart,a=t.position,fn(t,e,1,!1,!0),d=t.tag,u=t.result,sn(t,!0,e),f=t.input.charCodeAt(t.position),!c&&t.line!==n||58!==f||(s=!0,f=t.input.charCodeAt(++t.position),sn(t,!0,e),fn(t,e,1,!1,!0),h=t.result),l?rn(t,r,m,d,u,h,n,i,a):s?r.push(rn(t,null,m,d,u,h,n,i,a)):r.push(u),sn(t,!0,e),44===(f=t.input.charCodeAt(t.position))?(g=!0,f=t.input.charCodeAt(++t.position)):g=!1}Qe(t,"unexpected end of the stream within a flow collection")}(t,h)?b=!0:(o&&function(t,e){var n,i,a,r,o,s=1,c=!1,l=!1,u=e,d=0,h=!1;if(124===(r=t.input.charCodeAt(t.position)))i=!1;else{if(62!==r)return!1;i=!0}for(t.kind="scalar",t.result="";0!==r;)if(43===(r=t.input.charCodeAt(++t.position))||45===r)1===s?s=43===r?3:2:Qe(t,"repeat of a chomping mode identifier");else{if(!((a=48<=(o=r)&&o<=57?o-48:-1)>=0))break;0===a?Qe(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?Qe(t,"repeat of an indentation width identifier"):(u=e+a-1,l=!0)}if(He(r)){do{r=t.input.charCodeAt(++t.position)}while(He(r));if(35===r)do{r=t.input.charCodeAt(++t.position)}while(!ze(r)&&0!==r)}for(;0!==r;){for(on(t),t.lineIndent=0,r=t.input.charCodeAt(t.position);(!l||t.lineIndent<u)&&32===r;)t.lineIndent++,r=t.input.charCodeAt(++t.position);if(!l&&t.lineIndent>u&&(u=t.lineIndent),ze(r))d++;else{if(t.lineIndent<u){3===s?t.result+=Jt.repeat("\n",c?1+d:d):1===s&&c&&(t.result+="\n");break}for(i?He(r)?(h=!0,t.result+=Jt.repeat("\n",c?1+d:d)):h?(h=!1,t.result+=Jt.repeat("\n",d+1)):0===d?c&&(t.result+=" "):t.result+=Jt.repeat("\n",d):t.result+=Jt.repeat("\n",c?1+d:d),c=!0,l=!0,d=0,n=t.position;!ze(r)&&0!==r;)r=t.input.charCodeAt(++t.position);nn(t,n,t.position,!1)}}return!0}(t,h)||function(t,e){var n,i,a;if(39!==(n=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,i=a=t.position;0!==(n=t.input.charCodeAt(t.position));)if(39===n){if(nn(t,i,t.position,!0),39!==(n=t.input.charCodeAt(++t.position)))return!0;i=t.position,t.position++,a=t.position}else ze(n)?(nn(t,i,a,!0),ln(t,sn(t,!1,e)),i=a=t.position):t.position===t.lineStart&&cn(t)?Qe(t,"unexpected end of the document within a single quoted scalar"):(t.position++,a=t.position);Qe(t,"unexpected end of the stream within a single quoted scalar")}(t,h)||function(t,e){var n,i,a,r,o,s,c;if(34!==(s=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,n=i=t.position;0!==(s=t.input.charCodeAt(t.position));){if(34===s)return nn(t,n,t.position,!0),t.position++,!0;if(92===s){if(nn(t,n,t.position,!0),ze(s=t.input.charCodeAt(++t.position)))sn(t,!1,e);else if(s<256&&Ge[s])t.result+=Ze[s],t.position++;else if((o=120===(c=s)?2:117===c?4:85===c?8:0)>0){for(a=o,r=0;a>0;a--)(o=qe(s=t.input.charCodeAt(++t.position)))>=0?r=(r<<4)+o:Qe(t,"expected hexadecimal character");t.result+=Ye(r),t.position++}else Qe(t,"unknown escape sequence");n=i=t.position}else ze(s)?(nn(t,n,i,!0),ln(t,sn(t,!1,e)),n=i=t.position):t.position===t.lineStart&&cn(t)?Qe(t,"unexpected end of the document within a double quoted scalar"):(t.position++,i=t.position)}Qe(t,"unexpected end of the stream within a double quoted scalar")}(t,h)?b=!0:!function(t){var e,n,i;if(42!==(i=t.input.charCodeAt(t.position)))return!1;for(i=t.input.charCodeAt(++t.position),e=t.position;0!==i&&!Ue(i)&&!Ve(i);)i=t.input.charCodeAt(++t.position);return t.position===e&&Qe(t,"name of an alias node must contain at least one character"),n=t.input.slice(e,t.position),Me.call(t.anchorMap,n)||Qe(t,'unidentified alias "'+n+'"'),t.result=t.anchorMap[n],sn(t,!0,-1),!0}(t)?function(t,e,n){var i,a,r,o,s,c,l,u,d=t.kind,h=t.result;if(Ue(u=t.input.charCodeAt(t.position))||Ve(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(Ue(i=t.input.charCodeAt(t.position+1))||n&&Ve(i)))return!1;for(t.kind="scalar",t.result="",a=r=t.position,o=!1;0!==u;){if(58===u){if(Ue(i=t.input.charCodeAt(t.position+1))||n&&Ve(i))break}else if(35===u){if(Ue(t.input.charCodeAt(t.position-1)))break}else{if(t.position===t.lineStart&&cn(t)||n&&Ve(u))break;if(ze(u)){if(s=t.line,c=t.lineStart,l=t.lineIndent,sn(t,!1,-1),t.lineIndent>=e){o=!0,u=t.input.charCodeAt(t.position);continue}t.position=r,t.line=s,t.lineStart=c,t.lineIndent=l;break}}o&&(nn(t,a,r,!1),ln(t,t.line-s),a=r=t.position,o=!1),He(u)||(r=t.position+1),u=t.input.charCodeAt(++t.position)}return nn(t,a,r,!1),!!t.result||(t.kind=d,t.result=h,!1)}(t,h,1===n)&&(b=!0,null===t.tag&&(t.tag="?")):(b=!0,null===t.tag&&null===t.anchor||Qe(t,"alias node should not have any properties")),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):0===g&&(b=s&&un(t,f))),null===t.tag)null!==t.anchor&&(t.anchorMap[t.anchor]=t.result);else if("?"===t.tag){for(null!==t.result&&"scalar"!==t.kind&&Qe(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),c=0,l=t.implicitTypes.length;c<l;c+=1)if((d=t.implicitTypes[c]).resolve(t.result)){t.result=d.construct(t.result),t.tag=d.tag,null!==t.anchor&&(t.anchorMap[t.anchor]=t.result);break}}else if("!"!==t.tag){if(Me.call(t.typeMap[t.kind||"fallback"],t.tag))d=t.typeMap[t.kind||"fallback"][t.tag];else for(d=null,c=0,l=(u=t.typeMap.multi[t.kind||"fallback"]).length;c<l;c+=1)if(t.tag.slice(0,u[c].tag.length)===u[c].tag){d=u[c];break}d||Qe(t,"unknown tag !<"+t.tag+">"),null!==t.result&&d.kind!==t.kind&&Qe(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+d.kind+'", not "'+t.kind+'"'),d.resolve(t.result,t.tag)?(t.result=d.construct(t.result,t.tag),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):Qe(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||b}function gn(t){var e,n,i,a,r=t.position,o=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);0!==(a=t.input.charCodeAt(t.position))&&(sn(t,!0,-1),a=t.input.charCodeAt(t.position),!(t.lineIndent>0||37!==a));){for(o=!0,a=t.input.charCodeAt(++t.position),e=t.position;0!==a&&!Ue(a);)a=t.input.charCodeAt(++t.position);for(i=[],(n=t.input.slice(e,t.position)).length<1&&Qe(t,"directive name must not be less than one character in length");0!==a;){for(;He(a);)a=t.input.charCodeAt(++t.position);if(35===a){do{a=t.input.charCodeAt(++t.position)}while(0!==a&&!ze(a));break}if(ze(a))break;for(e=t.position;0!==a&&!Ue(a);)a=t.input.charCodeAt(++t.position);i.push(t.input.slice(e,t.position))}0!==a&&on(t),Me.call(en,n)?en[n](t,n,i):tn(t,'unknown document directive "'+n+'"')}sn(t,!0,-1),0===t.lineIndent&&45===t.input.charCodeAt(t.position)&&45===t.input.charCodeAt(t.position+1)&&45===t.input.charCodeAt(t.position+2)?(t.position+=3,sn(t,!0,-1)):o&&Qe(t,"directives end mark is expected"),fn(t,t.lineIndent-1,4,!1,!0),sn(t,!0,-1),t.checkLineBreaks&&Be.test(t.input.slice(r,t.position))&&tn(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&cn(t)?46===t.input.charCodeAt(t.position)&&(t.position+=3,sn(t,!0,-1)):t.position<t.length-1&&Qe(t,"end of the stream or a document separator is expected")}function pn(t,e){e=e||{},0!==(t=String(t)).length&&(10!==t.charCodeAt(t.length-1)&&13!==t.charCodeAt(t.length-1)&&(t+="\n"),65279===t.charCodeAt(0)&&(t=t.slice(1)));var n=new Xe(t,e),i=t.indexOf("\0");for(-1!==i&&(n.position=i,Qe(n,"null byte is not allowed in input")),n.input+="\0";32===n.input.charCodeAt(n.position);)n.lineIndent+=1,n.position+=1;for(;n.position<n.length-1;)gn(n);return n.documents}var bn=ue,mn={loadAll:function(t,e,n){null!==e&&"object"==typeof e&&void 0===n&&(n=e,e=null);var i=pn(t,n);if("function"!=typeof e)return i;for(var a=0,r=i.length;a<r;a+=1)e(i[a])},load:function(t,e){var n=pn(t,e);if(0!==n.length){if(1===n.length)return n[0];throw new ee("expected a single document in the stream, but found more")}}}.load;const yn=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s;const vn=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,wn=/\s*%%.*\n/gm,xn={},Rn=function(t,e){t=t.replace(yn,"").replace(vn,"").replace(wn,"\n");for(const[n,{detector:i}]of Object.entries(xn)){if(i(t,e))return n}throw new Error(`No diagram type detected for text: ${t}`)},_n=(...t)=>{for(const{id:e,detector:n,loader:i}of t)kn(e,n,i)},kn=(t,e,n)=>{xn[t]?Dt.error(`Detector with key ${t} already exists`):xn[t]={detector:e,loader:n},Dt.debug(`Detector with key ${t} added${n?" with loader":""}`)},En=function(t,e,n){const{depth:i,clobber:a}=Object.assign({depth:2,clobber:!1},n);return Array.isArray(e)&&!Array.isArray(t)?(e.forEach((e=>En(t,e,n))),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach((e=>{t.includes(e)||t.push(e)})),t):void 0===t||i<=0?null!=t&&"object"==typeof t&&"object"==typeof e?Object.assign(t,e):e:(void 0!==e&&"object"==typeof t&&"object"==typeof e&&Object.keys(e).forEach((n=>{"object"!=typeof e[n]||void 0!==t[n]&&"object"!=typeof t[n]?(a||"object"!=typeof t[n]&&"object"!=typeof e[n])&&(t[n]=e[n]):(void 0===t[n]&&(t[n]=Array.isArray(e[n])?[]:{}),t[n]=En(t[n],e[n],{depth:i-1,clobber:a}))})),t)},Cn=En,Sn={curveBasis:s.$0Z,curveBasisClosed:s.Dts,curveBasisOpen:s.WQY,curveBumpX:s.qpX,curveBumpY:s.u93,curveBundle:s.tFB,curveCardinalClosed:s.OvA,curveCardinalOpen:s.dCK,curveCardinal:s.YY7,curveCatmullRomClosed:s.fGX,curveCatmullRomOpen:s.$m7,curveCatmullRom:s.zgE,curveLinear:s.c_6,curveLinearClosed:s.fxm,curveMonotoneX:s.FdL,curveMonotoneY:s.ak_,curveNatural:s.SxZ,curveStep:s.eA_,curveStepAfter:s.jsv,curveStepBefore:s.iJ},Tn=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,An=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,Dn=function(t,e=null){try{const n=new RegExp(`[%]{2}(?![{]${An.source})(?=[}][%]{2}).*\n`,"ig");let i;t=t.trim().replace(n,"").replace(/'/gm,'"'),Dt.debug(`Detecting diagram directive${null!==e?" type:"+e:""} based on the text:${t}`);const a=[];for(;null!==(i=Tn.exec(t));)if(i.index===Tn.lastIndex&&Tn.lastIndex++,i&&!e||e&&i[1]&&i[1].match(e)||e&&i[2]&&i[2].match(e)){const t=i[1]?i[1]:i[2],e=i[3]?i[3].trim():i[4]?JSON.parse(i[4].trim()):null;a.push({type:t,args:e})}return 0===a.length&&a.push({type:t,args:null}),1===a.length?a[0]:a}catch(n){return Dt.error(`ERROR: ${n.message} - Unable to parse directive\n ${null!==e?" type:"+e:""} based on the text:${t}`),{type:null,args:null}}};function In(t,e){if(!t)return e;const n=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return Sn[n]||e}function Ln(t,e){return t&&e?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)):0}function On(t){let e="",n="";for(const i of t)void 0!==i&&(i.startsWith("color:")||i.startsWith("text-align:")?n=n+i+";":e=e+i+";");return{style:e,labelStyle:n}}let Mn=0;const Nn=()=>(Mn++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Mn);const Bn=t=>function(t){let e="";const n="0123456789abcdef",i=n.length;for(let a=0;a<t;a++)e+=n.charAt(Math.floor(Math.random()*i));return e}(t.length),Pn=function(t,e){const n=e.text.replace(zt.lineBreakRegex," "),[,i]=Yn(e.fontSize),a=t.append("text");a.attr("x",e.x),a.attr("y",e.y),a.style("text-anchor",e.anchor),a.style("font-family",e.fontFamily),a.style("font-size",i),a.style("font-weight",e.fontWeight),a.attr("fill",e.fill),void 0!==e.class&&a.attr("class",e.class);const r=a.append("tspan");return r.attr("x",e.x+2*e.textMargin),r.attr("fill",e.fill),r.text(n),a},Fn=(0,x.Z)(((t,e,n)=>{if(!t)return t;if(n=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"<br/>"},n),zt.lineBreakRegex.test(t))return t;const i=t.split(" "),a=[];let r="";return i.forEach(((t,o)=>{const s=zn(`${t} `,n),c=zn(r,n);if(s>e){const{hyphenatedStrings:i,remainingWord:o}=jn(t,e,"-",n);a.push(r,...i),r=o}else c+s>=e?(a.push(r),r=t):r=[r,t].filter(Boolean).join(" ");o+1===i.length&&a.push(r)})),a.filter((t=>""!==t)).join(n.joinWith)}),((t,e,n)=>`${t}${e}${n.fontSize}${n.fontWeight}${n.fontFamily}${n.joinWith}`)),jn=(0,x.Z)(((t,e,n="-",i)=>{i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},i);const a=[...t],r=[];let o="";return a.forEach(((t,s)=>{const c=`${o}${t}`;if(zn(c,i)>=e){const t=s+1,e=a.length===t,i=`${c}${n}`;r.push(e?c:i),o=""}else o=c})),{hyphenatedStrings:r,remainingWord:o}}),((t,e,n="-",i)=>`${t}${e}${n}${i.fontSize}${i.fontWeight}${i.fontFamily}`));function $n(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:15},e),Hn(t,e).height}function zn(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e),Hn(t,e).width}const Hn=(0,x.Z)(((t,e)=>{e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e);const{fontSize:n,fontFamily:i,fontWeight:a}=e;if(!t)return{width:0,height:0};const[,r]=Yn(n),o=["sans-serif",i],c=t.split(zt.lineBreakRegex),l=[],u=(0,s.Ys)("body");if(!u.remove)return{width:0,height:0,lineHeight:0};const d=u.append("svg");for(const s of o){let t=0;const e={width:0,height:0,lineHeight:0};for(const n of c){const i={x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0};i.text=n;const o=Pn(d,i).style("font-size",r).style("font-weight",a).style("font-family",s),c=(o._groups||o)[0][0].getBBox();e.width=Math.round(Math.max(e.width,c.width)),t=Math.round(c.height),e.height+=t,e.lineHeight=Math.round(Math.max(e.lineHeight,t))}l.push(e)}d.remove();return l[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]}),((t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`));let Un;const Vn=t=>{if(Dt.debug("directiveSanitizer called with",t),"object"==typeof t&&(t.length?t.forEach((t=>Vn(t))):Object.keys(t).forEach((e=>{Dt.debug("Checking key",e),e.startsWith("__")&&(Dt.debug("sanitize deleting __ option",e),delete t[e]),e.includes("proto")&&(Dt.debug("sanitize deleting proto option",e),delete t[e]),e.includes("constr")&&(Dt.debug("sanitize deleting constr option",e),delete t[e]),e.includes("themeCSS")&&(Dt.debug("sanitizing themeCss option"),t[e]=qn(t[e])),e.includes("fontFamily")&&(Dt.debug("sanitizing fontFamily option"),t[e]=qn(t[e])),e.includes("altFontFamily")&&(Dt.debug("sanitizing altFontFamily option"),t[e]=qn(t[e])),Zt.includes(e)?"object"==typeof t[e]&&(Dt.debug("sanitize deleting object",e),Vn(t[e])):(Dt.debug("sanitize deleting option",e),delete t[e])}))),t.themeVariables){const e=Object.keys(t.themeVariables);for(const n of e){const e=t.themeVariables[n];e&&e.match&&!e.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[n]="")}}Dt.debug("After sanitization",t)},qn=t=>{let e=0,n=0;for(const i of t){if(e<n)return"{ /* ERROR: Unbalanced CSS */ }";"{"===i?e++:"}"===i&&n++}return e!==n?"{ /* ERROR: Unbalanced CSS */ }":t};function Wn(t){return"str"in t}const Yn=t=>{if("number"==typeof t)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]},Gn={assignWithDepth:Cn,wrapLabel:Fn,calculateTextHeight:$n,calculateTextWidth:zn,calculateTextDimensions:Hn,detectInit:function(t,e){const n=Dn(t,/(?:init\b)|(?:initialize\b)/);let i={};if(Array.isArray(n)){const t=n.map((t=>t.args));Vn(t),i=Cn(i,[...t])}else i=n.args;if(i){let n=Rn(t,e);["config"].forEach((t=>{void 0!==i[t]&&("flowchart-v2"===n&&(n="flowchart"),i[n]=i[t],delete i[t])}))}return i},detectDirective:Dn,isSubstringInArray:function(t,e){for(const[n,i]of e.entries())if(i.match(t))return n;return-1},interpolateToCurve:In,calcLabelPosition:function(t){return 1===t.length?t[0]:function(t){let e,n=0;t.forEach((t=>{n+=Ln(t,e),e=t}));let i,a=n/2;return e=void 0,t.forEach((t=>{if(e&&!i){const n=Ln(t,e);if(n<a)a-=n;else{const r=a/n;r<=0&&(i=e),r>=1&&(i={x:t.x,y:t.y}),r>0&&r<1&&(i={x:(1-r)*e.x+r*t.x,y:(1-r)*e.y+r*t.y})}}e=t})),i}(t)},calcCardinalityPosition:(t,e,n)=>{let i;Dt.info(`our points ${JSON.stringify(e)}`),e[0]!==n&&(e=e.reverse());let a,r=25;i=void 0,e.forEach((t=>{if(i&&!a){const e=Ln(t,i);if(e<r)r-=e;else{const n=r/e;n<=0&&(a=i),n>=1&&(a={x:t.x,y:t.y}),n>0&&n<1&&(a={x:(1-n)*i.x+n*t.x,y:(1-n)*i.y+n*t.y})}}i=t}));const o=t?10:5,s=Math.atan2(e[0].y-a.y,e[0].x-a.x),c={x:0,y:0};return c.x=Math.sin(s)*o+(e[0].x+a.x)/2,c.y=-Math.cos(s)*o+(e[0].y+a.y)/2,c},calcTerminalLabelPosition:function(t,e,n){let i,a=JSON.parse(JSON.stringify(n));Dt.info("our points",a),"start_left"!==e&&"start_right"!==e&&(a=a.reverse()),a.forEach((t=>{i=t}));let r,o=25+t;i=void 0,a.forEach((t=>{if(i&&!r){const e=Ln(t,i);if(e<o)o-=e;else{const n=o/e;n<=0&&(r=i),n>=1&&(r={x:t.x,y:t.y}),n>0&&n<1&&(r={x:(1-n)*i.x+n*t.x,y:(1-n)*i.y+n*t.y})}}i=t}));const s=10+.5*t,c=Math.atan2(a[0].y-r.y,a[0].x-r.x),l={x:0,y:0};return l.x=Math.sin(c)*s+(a[0].x+r.x)/2,l.y=-Math.cos(c)*s+(a[0].y+r.y)/2,"start_left"===e&&(l.x=Math.sin(c+Math.PI)*s+(a[0].x+r.x)/2,l.y=-Math.cos(c+Math.PI)*s+(a[0].y+r.y)/2),"end_right"===e&&(l.x=Math.sin(c-Math.PI)*s+(a[0].x+r.x)/2-5,l.y=-Math.cos(c-Math.PI)*s+(a[0].y+r.y)/2-5),"end_left"===e&&(l.x=Math.sin(c)*s+(a[0].x+r.x)/2-5,l.y=-Math.cos(c)*s+(a[0].y+r.y)/2-5),l},formatUrl:function(t,e){const n=t.trim();if(n)return"loose"!==e.securityLevel?(0,o.Nm)(n):n},getStylesFromArray:On,generateId:Nn,random:Bn,runFunc:(t,...e)=>{const n=t.split("."),i=n.length-1,a=n[i];let r=window;for(let o=0;o<i;o++)if(r=r[n[o]],!r)return;r[a](...e)},entityDecode:function(t){return Un=Un||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),Un.innerHTML=t,unescape(Un.textContent)},initIdGenerator:class{constructor(t,e){this.deterministic=t,this.seed=e,this.count=e?e.length:0}next(){return this.deterministic?this.count++:Date.now()}},directiveSanitizer:Vn,sanitizeCss:qn,insertTitle:(t,e,n,i)=>{if(!i)return;const a=t.node().getBBox();t.append("text").text(i).attr("x",a.x+a.width/2).attr("y",-n).attr("class",e)},parseFontSize:Yn},Zn="9.4.3",Kn=Object.freeze(Kt);let Xn,Jn=Cn({},Kn),Qn=[],ti=Cn({},Kn);const ei=(t,e)=>{let n=Cn({},t),i={};for(const a of e)ri(a),i=Cn(i,a);if(n=Cn(n,i),i.theme&&i.theme in Wt){const t=Cn({},Xn),e=Cn(t.themeVariables||{},i.themeVariables);n.theme&&n.theme in Wt&&(n.themeVariables=Wt[n.theme].getThemeVariables(e))}return ti=n,ui(ti),ti},ni=()=>Cn({},Jn),ii=t=>(ui(t),Cn(ti,t),ai()),ai=()=>Cn({},ti),ri=t=>{["secure",...Jn.secure??[]].forEach((e=>{void 0!==t[e]&&(Dt.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])})),Object.keys(t).forEach((e=>{0===e.indexOf("__")&&delete t[e]})),Object.keys(t).forEach((e=>{"string"==typeof t[e]&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],"object"==typeof t[e]&&ri(t[e])}))},oi=t=>{t.fontFamily&&(t.themeVariables&&t.themeVariables.fontFamily||(t.themeVariables={fontFamily:t.fontFamily})),Qn.push(t),ei(Jn,Qn)},si=(t=Jn)=>{Qn=[],ei(t,Qn)};var ci=(t=>(t.LAZY_LOAD_DEPRECATED="The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.",t))(ci||{});const li={},ui=t=>{var e;t&&((t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&(li[e="LAZY_LOAD_DEPRECATED"]||(Dt.warn(ci[e]),li[e]=!0)))},di=function(t,e,n,i){const a=function(t,e,n){let i=new Map;return n?(i.set("width","100%"),i.set("style",`max-width: ${e}px;`)):(i.set("height",t),i.set("width",e)),i}(e,n,i);!function(t,e){for(let n of e)t.attr(n[0],n[1])}(t,a)},hi=function(t,e,n,i){const a=e.node().getBBox(),r=a.width,o=a.height;Dt.info(`SVG bounds: ${r}x${o}`,a);let s=0,c=0;Dt.info(`Graph bounds: ${s}x${c}`,t),s=r+2*n,c=o+2*n,Dt.info(`Calculated bounds: ${s}x${c}`),di(e,c,s,i);const l=`${a.x-n} ${a.y-n} ${a.width+2*n} ${a.height+2*n}`;e.attr("viewBox",l)},fi=t=>`g.classGroup text {\n fill: ${t.nodeBorder};\n fill: ${t.classText};\n stroke: none;\n font-family: ${t.fontFamily};\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ${t.classText};\n}\n.edgeLabel .label rect {\n fill: ${t.mainBkg};\n}\n.label text {\n fill: ${t.classText};\n}\n.edgeLabel .label span {\n background: ${t.mainBkg};\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ${t.nodeBorder};\n stroke: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n}\n\ng.classGroup line {\n stroke: ${t.nodeBorder};\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${t.mainBkg};\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ${t.nodeBorder};\n font-size: 10px;\n}\n\n.relation {\n stroke: ${t.lineColor};\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n.dotted-line{\n stroke-dasharray: 1 2;\n}\n\n#compositionStart, .composition {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopStart, .lollipop {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopEnd, .lollipop {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n}\n\n.classTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n}\n`,gi=t=>`\n .entityBox {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n }\n\n .attributeBoxOdd {\n fill: ${t.attributeBackgroundColorOdd};\n stroke: ${t.nodeBorder};\n }\n\n .attributeBoxEven {\n fill: ${t.attributeBackgroundColorEven};\n stroke: ${t.nodeBorder};\n }\n\n .relationshipLabelBox {\n fill: ${t.tertiaryColor};\n opacity: 0.7;\n background-color: ${t.tertiaryColor};\n rect {\n opacity: 0.5;\n }\n }\n\n .relationshipLine {\n stroke: ${t.lineColor};\n }\n\n .entityTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n } \n`,pi=()=>"",bi=t=>`.label {\n font-family: ${t.fontFamily};\n color: ${t.nodeTextColor||t.textColor};\n }\n .cluster-label text {\n fill: ${t.titleColor};\n }\n .cluster-label span {\n color: ${t.titleColor};\n }\n\n .label text,span {\n fill: ${t.nodeTextColor||t.textColor};\n color: ${t.nodeTextColor||t.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${t.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${t.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${t.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${t.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${t.edgeLabelBackground};\n fill: ${t.edgeLabelBackground};\n }\n text-align: center;\n }\n\n .cluster rect {\n fill: ${t.clusterBkg};\n stroke: ${t.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${t.titleColor};\n }\n\n .cluster span {\n color: ${t.titleColor};\n }\n /* .cluster div {\n color: ${t.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${t.fontFamily};\n font-size: 12px;\n background: ${t.tertiaryColor};\n border: 1px solid ${t.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n`,mi=t=>`\n .mermaid-main-font {\n font-family: "trebuchet ms", verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n .exclude-range {\n fill: ${t.excludeBkgColor};\n }\n\n .section {\n stroke: none;\n opacity: 0.2;\n }\n\n .section0 {\n fill: ${t.sectionBkgColor};\n }\n\n .section2 {\n fill: ${t.sectionBkgColor2};\n }\n\n .section1,\n .section3 {\n fill: ${t.altSectionBkgColor};\n opacity: 0.2;\n }\n\n .sectionTitle0 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle1 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle2 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle3 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle {\n text-anchor: start;\n // font-size: ${t.ganttFontSize};\n // text-height: 14px;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n\n }\n\n\n /* Grid and axis */\n\n .grid .tick {\n stroke: ${t.gridColor};\n opacity: 0.8;\n shape-rendering: crispEdges;\n text {\n font-family: ${t.fontFamily};\n fill: ${t.textColor};\n }\n }\n\n .grid path {\n stroke-width: 0;\n }\n\n\n /* Today line */\n\n .today {\n fill: none;\n stroke: ${t.todayLineColor};\n stroke-width: 2px;\n }\n\n\n /* Task styling */\n\n /* Default task */\n\n .task {\n stroke-width: 2;\n }\n\n .taskText {\n text-anchor: middle;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n\n // .taskText:not([font-size]) {\n // font-size: ${t.ganttFontSize};\n // }\n\n .taskTextOutsideRight {\n fill: ${t.taskTextDarkColor};\n text-anchor: start;\n // font-size: ${t.ganttFontSize};\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n\n }\n\n .taskTextOutsideLeft {\n fill: ${t.taskTextDarkColor};\n text-anchor: end;\n // font-size: ${t.ganttFontSize};\n }\n\n /* Special case clickable */\n .task.clickable {\n cursor: pointer;\n }\n .taskText.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideLeft.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideRight.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n /* Specific task settings for the sections*/\n\n .taskText0,\n .taskText1,\n .taskText2,\n .taskText3 {\n fill: ${t.taskTextColor};\n }\n\n .task0,\n .task1,\n .task2,\n .task3 {\n fill: ${t.taskBkgColor};\n stroke: ${t.taskBorderColor};\n }\n\n .taskTextOutside0,\n .taskTextOutside2\n {\n fill: ${t.taskTextOutsideColor};\n }\n\n .taskTextOutside1,\n .taskTextOutside3 {\n fill: ${t.taskTextOutsideColor};\n }\n\n\n /* Active task */\n\n .active0,\n .active1,\n .active2,\n .active3 {\n fill: ${t.activeTaskBkgColor};\n stroke: ${t.activeTaskBorderColor};\n }\n\n .activeText0,\n .activeText1,\n .activeText2,\n .activeText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n\n /* Completed task */\n\n .done0,\n .done1,\n .done2,\n .done3 {\n stroke: ${t.doneTaskBorderColor};\n fill: ${t.doneTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneText0,\n .doneText1,\n .doneText2,\n .doneText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n\n /* Tasks on the critical line */\n\n .crit0,\n .crit1,\n .crit2,\n .crit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.critBkgColor};\n stroke-width: 2;\n }\n\n .activeCrit0,\n .activeCrit1,\n .activeCrit2,\n .activeCrit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.activeTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneCrit0,\n .doneCrit1,\n .doneCrit2,\n .doneCrit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.doneTaskBkgColor};\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges;\n }\n\n .milestone {\n transform: rotate(45deg) scale(0.8,0.8);\n }\n\n .milestoneText {\n font-style: italic;\n }\n .doneCritText0,\n .doneCritText1,\n .doneCritText2,\n .doneCritText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n .activeCritText0,\n .activeCritText1,\n .activeCritText2,\n .activeCritText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n .titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor} ;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n`,yi=()=>"",vi=t=>`\n .pieCircle{\n stroke: ${t.pieStrokeColor};\n stroke-width : ${t.pieStrokeWidth};\n opacity : ${t.pieOpacity};\n }\n .pieTitleText {\n text-anchor: middle;\n font-size: ${t.pieTitleTextSize};\n fill: ${t.pieTitleTextColor};\n font-family: ${t.fontFamily};\n }\n .slice {\n font-family: ${t.fontFamily};\n fill: ${t.pieSectionTextColor};\n font-size:${t.pieSectionTextSize};\n // fill: white;\n }\n .legend text {\n fill: ${t.pieLegendTextColor};\n font-family: ${t.fontFamily};\n font-size: ${t.pieLegendTextSize};\n }\n`,wi=t=>`\n\n marker {\n fill: ${t.relationColor};\n stroke: ${t.relationColor};\n }\n\n marker.cross {\n stroke: ${t.lineColor};\n }\n\n svg {\n font-family: ${t.fontFamily};\n font-size: ${t.fontSize};\n }\n\n .reqBox {\n fill: ${t.requirementBackground};\n fill-opacity: 100%;\n stroke: ${t.requirementBorderColor};\n stroke-width: ${t.requirementBorderSize};\n }\n \n .reqTitle, .reqLabel{\n fill: ${t.requirementTextColor};\n }\n .reqLabelBox {\n fill: ${t.relationLabelBackground};\n fill-opacity: 100%;\n }\n\n .req-title-line {\n stroke: ${t.requirementBorderColor};\n stroke-width: ${t.requirementBorderSize};\n }\n .relationshipLine {\n stroke: ${t.relationColor};\n stroke-width: 1;\n }\n .relationshipLabel {\n fill: ${t.relationLabelColor};\n }\n\n`,xi=t=>`.actor {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n }\n\n text.actor > tspan {\n fill: ${t.actorTextColor};\n stroke: none;\n }\n\n .actor-line {\n stroke: ${t.actorLineColor};\n }\n\n .messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: none;\n stroke: ${t.signalColor};\n }\n\n .messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: 2, 2;\n stroke: ${t.signalColor};\n }\n\n #arrowhead path {\n fill: ${t.signalColor};\n stroke: ${t.signalColor};\n }\n\n .sequenceNumber {\n fill: ${t.sequenceNumberColor};\n }\n\n #sequencenumber {\n fill: ${t.signalColor};\n }\n\n #crosshead path {\n fill: ${t.signalColor};\n stroke: ${t.signalColor};\n }\n\n .messageText {\n fill: ${t.signalTextColor};\n stroke: none;\n }\n\n .labelBox {\n stroke: ${t.labelBoxBorderColor};\n fill: ${t.labelBoxBkgColor};\n }\n\n .labelText, .labelText > tspan {\n fill: ${t.labelTextColor};\n stroke: none;\n }\n\n .loopText, .loopText > tspan {\n fill: ${t.loopTextColor};\n stroke: none;\n }\n\n .loopLine {\n stroke-width: 2px;\n stroke-dasharray: 2, 2;\n stroke: ${t.labelBoxBorderColor};\n fill: ${t.labelBoxBorderColor};\n }\n\n .note {\n //stroke: #decc93;\n stroke: ${t.noteBorderColor};\n fill: ${t.noteBkgColor};\n }\n\n .noteText, .noteText > tspan {\n fill: ${t.noteTextColor};\n stroke: none;\n }\n\n .activation0 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .activation1 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .activation2 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .actorPopupMenu {\n position: absolute;\n }\n\n .actorPopupMenuPanel {\n position: absolute;\n fill: ${t.actorBkg};\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));\n}\n .actor-man line {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n }\n .actor-man circle, line {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n stroke-width: 2px;\n }\n`,Ri=t=>`\ndefs #statediagram-barbEnd {\n fill: ${t.transitionColor};\n stroke: ${t.transitionColor};\n }\ng.stateGroup text {\n fill: ${t.nodeBorder};\n stroke: none;\n font-size: 10px;\n}\ng.stateGroup text {\n fill: ${t.textColor};\n stroke: none;\n font-size: 10px;\n\n}\ng.stateGroup .state-title {\n font-weight: bolder;\n fill: ${t.stateLabelColor};\n}\n\ng.stateGroup rect {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n}\n\ng.stateGroup line {\n stroke: ${t.lineColor};\n stroke-width: 1;\n}\n\n.transition {\n stroke: ${t.transitionColor};\n stroke-width: 1;\n fill: none;\n}\n\n.stateGroup .composit {\n fill: ${t.background};\n border-bottom: 1px\n}\n\n.stateGroup .alt-composit {\n fill: #e0e0e0;\n border-bottom: 1px\n}\n\n.state-note {\n stroke: ${t.noteBorderColor};\n fill: ${t.noteBkgColor};\n\n text {\n fill: ${t.noteTextColor};\n stroke: none;\n font-size: 10px;\n }\n}\n\n.stateLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${t.mainBkg};\n opacity: 0.5;\n}\n\n.edgeLabel .label rect {\n fill: ${t.labelBackgroundColor};\n opacity: 0.5;\n}\n.edgeLabel .label text {\n fill: ${t.transitionLabelColor||t.tertiaryTextColor};\n}\n.label div .edgeLabel {\n color: ${t.transitionLabelColor||t.tertiaryTextColor};\n}\n\n.stateLabel text {\n fill: ${t.stateLabelColor};\n font-size: 10px;\n font-weight: bold;\n}\n\n.node circle.state-start {\n fill: ${t.specialStateColor};\n stroke: ${t.specialStateColor};\n}\n\n.node .fork-join {\n fill: ${t.specialStateColor};\n stroke: ${t.specialStateColor};\n}\n\n.node circle.state-end {\n fill: ${t.innerEndBackground};\n stroke: ${t.background};\n stroke-width: 1.5\n}\n.end-state-inner {\n fill: ${t.compositeBackground||t.background};\n // stroke: ${t.background};\n stroke-width: 1.5\n}\n\n.node rect {\n fill: ${t.stateBkg||t.mainBkg};\n stroke: ${t.stateBorder||t.nodeBorder};\n stroke-width: 1px;\n}\n.node polygon {\n fill: ${t.mainBkg};\n stroke: ${t.stateBorder||t.nodeBorder};;\n stroke-width: 1px;\n}\n#statediagram-barbEnd {\n fill: ${t.lineColor};\n}\n\n.statediagram-cluster rect {\n fill: ${t.compositeTitleBackground};\n stroke: ${t.stateBorder||t.nodeBorder};\n stroke-width: 1px;\n}\n\n.cluster-label, .nodeLabel {\n color: ${t.stateLabelColor};\n}\n\n.statediagram-cluster rect.outer {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state .divider {\n stroke: ${t.stateBorder||t.nodeBorder};\n}\n\n.statediagram-state .title-state {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-cluster.statediagram-cluster .inner {\n fill: ${t.compositeBackground||t.background};\n}\n.statediagram-cluster.statediagram-cluster-alt .inner {\n fill: ${t.altBackground?t.altBackground:"#efefef"};\n}\n\n.statediagram-cluster .inner {\n rx:0;\n ry:0;\n}\n\n.statediagram-state rect.basic {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state rect.divider {\n stroke-dasharray: 10,10;\n fill: ${t.altBackground?t.altBackground:"#efefef"};\n}\n\n.note-edge {\n stroke-dasharray: 5;\n}\n\n.statediagram-note rect {\n fill: ${t.noteBkgColor};\n stroke: ${t.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n.statediagram-note rect {\n fill: ${t.noteBkgColor};\n stroke: ${t.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n\n.statediagram-note text {\n fill: ${t.noteTextColor};\n}\n\n.statediagram-note .nodeLabel {\n color: ${t.noteTextColor};\n}\n.statediagram .edgeLabel {\n color: red; // ${t.noteTextColor};\n}\n\n#dependencyStart, #dependencyEnd {\n fill: ${t.lineColor};\n stroke: ${t.lineColor};\n stroke-width: 1;\n}\n\n.statediagramTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n}\n`,_i=t=>`.label {\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n color: ${t.textColor};\n }\n .mouth {\n stroke: #666;\n }\n\n line {\n stroke: ${t.textColor}\n }\n\n .legend {\n fill: ${t.textColor};\n }\n\n .label text {\n fill: #333;\n }\n .label {\n color: ${t.textColor}\n }\n\n .face {\n ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"};\n stroke: #999;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${t.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${t.lineColor};\n stroke-width: 1.5px;\n }\n\n .flowchart-link {\n stroke: ${t.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${t.edgeLabelBackground};\n rect {\n opacity: 0.5;\n }\n text-align: center;\n }\n\n .cluster rect {\n }\n\n .cluster text {\n fill: ${t.titleColor};\n }\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n font-size: 12px;\n background: ${t.tertiaryColor};\n border: 1px solid ${t.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .task-type-0, .section-type-0 {\n ${t.fillType0?`fill: ${t.fillType0}`:""};\n }\n .task-type-1, .section-type-1 {\n ${t.fillType0?`fill: ${t.fillType1}`:""};\n }\n .task-type-2, .section-type-2 {\n ${t.fillType0?`fill: ${t.fillType2}`:""};\n }\n .task-type-3, .section-type-3 {\n ${t.fillType0?`fill: ${t.fillType3}`:""};\n }\n .task-type-4, .section-type-4 {\n ${t.fillType0?`fill: ${t.fillType4}`:""};\n }\n .task-type-5, .section-type-5 {\n ${t.fillType0?`fill: ${t.fillType5}`:""};\n }\n .task-type-6, .section-type-6 {\n ${t.fillType0?`fill: ${t.fillType6}`:""};\n }\n .task-type-7, .section-type-7 {\n ${t.fillType0?`fill: ${t.fillType7}`:""};\n }\n\n .actor-0 {\n ${t.actor0?`fill: ${t.actor0}`:""};\n }\n .actor-1 {\n ${t.actor1?`fill: ${t.actor1}`:""};\n }\n .actor-2 {\n ${t.actor2?`fill: ${t.actor2}`:""};\n }\n .actor-3 {\n ${t.actor3?`fill: ${t.actor3}`:""};\n }\n .actor-4 {\n ${t.actor4?`fill: ${t.actor4}`:""};\n }\n .actor-5 {\n ${t.actor5?`fill: ${t.actor5}`:""};\n }\n`,ki=t=>`.person {\n stroke: ${t.personBorder};\n fill: ${t.personBkg};\n }\n`,Ei={flowchart:bi,"flowchart-v2":bi,sequence:xi,gantt:mi,classDiagram:fi,"classDiagram-v2":fi,class:fi,stateDiagram:Ri,state:Ri,info:yi,pie:vi,er:gi,error:pi,journey:_i,requirement:wi,c4:ki},Ci=(t,e,n)=>{let i="";return t in Ei&&Ei[t]?i=Ei[t](n):Dt.warn(`No theme found for ${t}`),` & {\n font-family: ${n.fontFamily};\n font-size: ${n.fontSize};\n fill: ${n.textColor}\n }\n\n /* Classes common for multiple diagrams */\n\n & .error-icon {\n fill: ${n.errorBkgColor};\n }\n & .error-text {\n fill: ${n.errorTextColor};\n stroke: ${n.errorTextColor};\n }\n\n & .edge-thickness-normal {\n stroke-width: 2px;\n }\n & .edge-thickness-thick {\n stroke-width: 3.5px\n }\n & .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n & .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n & .marker {\n fill: ${n.lineColor};\n stroke: ${n.lineColor};\n }\n & .marker.cross {\n stroke: ${n.lineColor};\n }\n\n & svg {\n font-family: ${n.fontFamily};\n font-size: ${n.fontSize};\n }\n\n ${i}\n\n ${e}\n`};let Si="",Ti="",Ai="";const Di=t=>Nt(t,ai()),Ii=function(){Si="",Ai="",Ti=""},Li=function(t){Si=Di(t).replace(/^\s+/g,"")},Oi=function(){return Si||Ti},Mi=function(t){Ai=Di(t).replace(/\n\s+/g,"\n")},Ni=function(){return Ai},Bi=function(t){Ti=Di(t)},Pi=function(){return Ti},Fi={setAccTitle:Li,getAccTitle:Oi,setDiagramTitle:Bi,getDiagramTitle:Pi,getAccDescription:Ni,setAccDescription:Mi,clear:Ii},ji=Object.freeze(Object.defineProperty({__proto__:null,clear:Ii,default:Fi,getAccDescription:Ni,getAccTitle:Oi,getDiagramTitle:Pi,setAccDescription:Mi,setAccTitle:Li,setDiagramTitle:Bi},Symbol.toStringTag,{value:"Module"}));let $i={};const zi=function(t,e,n,i){Dt.debug("parseDirective is being called",e,n,i);try{if(void 0!==e)switch(e=e.trim(),n){case"open_directive":$i={};break;case"type_directive":if(!$i)throw new Error("currentDirective is undefined");$i.type=e.toLowerCase();break;case"arg_directive":if(!$i)throw new Error("currentDirective is undefined");$i.args=JSON.parse(e);break;case"close_directive":Hi(t,$i,i),$i=void 0}}catch(a){Dt.error(`Error while rendering sequenceDiagram directive: ${e} jison context: ${n}`),Dt.error(a.message)}},Hi=function(t,e,n){switch(Dt.info(`Directive type=${e.type} with args:`,e.args),e.type){case"init":case"initialize":["config"].forEach((t=>{void 0!==e.args[t]&&("flowchart-v2"===n&&(n="flowchart"),e.args[n]=e.args[t],delete e.args[t])})),Dt.info("sanitize in handleDirective",e.args),Vn(e.args),Dt.info("sanitize in handleDirective (done)",e.args),oi(e.args);break;case"wrap":case"nowrap":t&&t.setWrap&&t.setWrap("wrap"===e.type);break;case"themeCss":Dt.warn("themeCss encountered");break;default:Dt.warn(`Unhandled directive: source: '%%{${e.type}: ${JSON.stringify(e.args?e.args:{})}}%%`,e)}},Ui=Dt,Vi=It,qi=ai,Wi=t=>Nt(t,qi()),Yi=hi,Gi=(t,e,n,i)=>zi(t,e,n,i),Zi={},Ki=(t,e,n)=>{if(Zi[t])throw new Error(`Diagram ${t} already registered.`);var i,a;Zi[t]=e,n&&kn(t,n),i=t,a=e.styles,Ei[i]=a,e.injectUtils&&e.injectUtils(Ui,Vi,qi,Wi,Yi,ji,Gi)},Xi=t=>{if(t in Zi)return Zi[t];throw new Error(`Diagram ${t} not found.`)};var Ji=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,4],i=[1,7],a=[1,5],r=[1,9],o=[1,6],s=[2,6],c=[1,16],l=[6,8,14,20,22,24,25,27,29,32,37,40,50,55],u=[8,14,20,22,24,25,27,29,32,37,40],d=[8,13,14,20,22,24,25,27,29,32,37,40],h=[1,26],f=[6,8,14,50,55],g=[8,14,55],p=[1,53],b=[1,52],m=[8,14,30,33,35,38,55],y=[1,67],v=[1,68],w=[1,69],x=[8,14,33,35,42,55],R={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,GG:6,document:7,EOF:8,":":9,DIR:10,options:11,body:12,OPT:13,NL:14,line:15,statement:16,commitStatement:17,mergeStatement:18,cherryPickStatement:19,acc_title:20,acc_title_value:21,acc_descr:22,acc_descr_value:23,acc_descr_multiline_value:24,section:25,branchStatement:26,CHECKOUT:27,ref:28,BRANCH:29,ORDER:30,NUM:31,CHERRY_PICK:32,COMMIT_ID:33,STR: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,openDirective:46,typeDirective:47,closeDirective:48,argDirective:49,open_directive:50,type_directive:51,arg_directive:52,close_directive:53,ID:54,";":55,$accept:0,$end:1},terminals_:{2:"error",6:"GG",8:"EOF",9:":",10:"DIR",13:"OPT",14:"NL",20:"acc_title",21:"acc_title_value",22:"acc_descr",23:"acc_descr_value",24:"acc_descr_multiline_value",25:"section",27:"CHECKOUT",29:"BRANCH",30:"ORDER",31:"NUM",32:"CHERRY_PICK",33:"COMMIT_ID",34:"STR",35:"COMMIT_TAG",36:"EMPTYSTR",37:"MERGE",38:"COMMIT_TYPE",40:"COMMIT",42:"COMMIT_MSG",43:"NORMAL",44:"REVERSE",45:"HIGHLIGHT",50:"open_directive",51:"type_directive",52:"arg_directive",53:"close_directive",54:"ID",55:";"},productions_:[0,[3,2],[3,2],[3,3],[3,4],[3,5],[7,0],[7,2],[11,2],[11,1],[12,0],[12,2],[15,2],[15,1],[16,1],[16,1],[16,1],[16,2],[16,2],[16,1],[16,1],[16,1],[16,2],[26,2],[26,4],[19,3],[19,5],[19,5],[19,5],[19,5],[18,2],[18,4],[18,4],[18,4],[18,6],[18,6],[18,6],[18,6],[18,6],[18,6],[18,8],[18,8],[18,8],[18,8],[18,8],[18,8],[17,2],[17,3],[17,3],[17,5],[17,5],[17,3],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,3],[17,5],[17,5],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[41,0],[41,1],[39,1],[39,1],[39,1],[5,3],[5,5],[46,1],[47,1],[49,1],[48,1],[28,1],[28,1],[4,1],[4,1],[4,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 3:return r[s];case 4:return r[s-1];case 5:return i.setDirection(r[s-3]),r[s-1];case 7:i.setOptions(r[s-1]),this.$=r[s];break;case 8:r[s-1]+=r[s],this.$=r[s-1];break;case 10:this.$=[];break;case 11:r[s-1].push(r[s]),this.$=r[s-1];break;case 12:this.$=r[s-1];break;case 17:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 18:case 19:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 20:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 22:i.checkout(r[s]);break;case 23:i.branch(r[s]);break;case 24:i.branch(r[s-2],r[s]);break;case 25:i.cherryPick(r[s],"",void 0);break;case 26:i.cherryPick(r[s-2],"",r[s]);break;case 27:case 29:i.cherryPick(r[s-2],"","");break;case 28:i.cherryPick(r[s],"",r[s-2]);break;case 30:i.merge(r[s],"","","");break;case 31:i.merge(r[s-2],r[s],"","");break;case 32:i.merge(r[s-2],"",r[s],"");break;case 33:i.merge(r[s-2],"","",r[s]);break;case 34:i.merge(r[s-4],r[s],"",r[s-2]);break;case 35:i.merge(r[s-4],"",r[s],r[s-2]);break;case 36:i.merge(r[s-4],"",r[s-2],r[s]);break;case 37:i.merge(r[s-4],r[s-2],r[s],"");break;case 38:i.merge(r[s-4],r[s-2],"",r[s]);break;case 39:i.merge(r[s-4],r[s],r[s-2],"");break;case 40:i.merge(r[s-6],r[s-4],r[s-2],r[s]);break;case 41:i.merge(r[s-6],r[s],r[s-4],r[s-2]);break;case 42:i.merge(r[s-6],r[s-4],r[s],r[s-2]);break;case 43:i.merge(r[s-6],r[s-2],r[s-4],r[s]);break;case 44:i.merge(r[s-6],r[s],r[s-2],r[s-4]);break;case 45:i.merge(r[s-6],r[s-2],r[s],r[s-4]);break;case 46:i.commit(r[s]);break;case 47:i.commit("","",i.commitType.NORMAL,r[s]);break;case 48:i.commit("","",r[s],"");break;case 49:i.commit("","",r[s],r[s-2]);break;case 50:i.commit("","",r[s-2],r[s]);break;case 51:i.commit("",r[s],i.commitType.NORMAL,"");break;case 52:i.commit("",r[s-2],i.commitType.NORMAL,r[s]);break;case 53:i.commit("",r[s],i.commitType.NORMAL,r[s-2]);break;case 54:i.commit("",r[s-2],r[s],"");break;case 55:i.commit("",r[s],r[s-2],"");break;case 56:i.commit("",r[s-4],r[s-2],r[s]);break;case 57:i.commit("",r[s-4],r[s],r[s-2]);break;case 58:i.commit("",r[s-2],r[s-4],r[s]);break;case 59:i.commit("",r[s],r[s-4],r[s-2]);break;case 60:i.commit("",r[s],r[s-2],r[s-4]);break;case 61:i.commit("",r[s-2],r[s],r[s-4]);break;case 62:i.commit(r[s],"",i.commitType.NORMAL,"");break;case 63:i.commit(r[s],"",i.commitType.NORMAL,r[s-2]);break;case 64:i.commit(r[s-2],"",i.commitType.NORMAL,r[s]);break;case 65:i.commit(r[s-2],"",r[s],"");break;case 66:i.commit(r[s],"",r[s-2],"");break;case 67:i.commit(r[s],r[s-2],i.commitType.NORMAL,"");break;case 68:i.commit(r[s-2],r[s],i.commitType.NORMAL,"");break;case 69:i.commit(r[s-4],"",r[s-2],r[s]);break;case 70:i.commit(r[s-4],"",r[s],r[s-2]);break;case 71:i.commit(r[s-2],"",r[s-4],r[s]);break;case 72:i.commit(r[s],"",r[s-4],r[s-2]);break;case 73:i.commit(r[s],"",r[s-2],r[s-4]);break;case 74:i.commit(r[s-2],"",r[s],r[s-4]);break;case 75:i.commit(r[s-4],r[s],r[s-2],"");break;case 76:i.commit(r[s-4],r[s-2],r[s],"");break;case 77:i.commit(r[s-2],r[s],r[s-4],"");break;case 78:i.commit(r[s],r[s-2],r[s-4],"");break;case 79:i.commit(r[s],r[s-4],r[s-2],"");break;case 80:i.commit(r[s-2],r[s-4],r[s],"");break;case 81:i.commit(r[s-4],r[s],i.commitType.NORMAL,r[s-2]);break;case 82:i.commit(r[s-4],r[s-2],i.commitType.NORMAL,r[s]);break;case 83:i.commit(r[s-2],r[s],i.commitType.NORMAL,r[s-4]);break;case 84:i.commit(r[s],r[s-2],i.commitType.NORMAL,r[s-4]);break;case 85:i.commit(r[s],r[s-4],i.commitType.NORMAL,r[s-2]);break;case 86:i.commit(r[s-2],r[s-4],i.commitType.NORMAL,r[s]);break;case 87:i.commit(r[s-6],r[s-4],r[s-2],r[s]);break;case 88:i.commit(r[s-6],r[s-4],r[s],r[s-2]);break;case 89:i.commit(r[s-6],r[s-2],r[s-4],r[s]);break;case 90:i.commit(r[s-6],r[s],r[s-4],r[s-2]);break;case 91:i.commit(r[s-6],r[s-2],r[s],r[s-4]);break;case 92:i.commit(r[s-6],r[s],r[s-2],r[s-4]);break;case 93:i.commit(r[s-4],r[s-6],r[s-2],r[s]);break;case 94:i.commit(r[s-4],r[s-6],r[s],r[s-2]);break;case 95:i.commit(r[s-2],r[s-6],r[s-4],r[s]);break;case 96:i.commit(r[s],r[s-6],r[s-4],r[s-2]);break;case 97:i.commit(r[s-2],r[s-6],r[s],r[s-4]);break;case 98:i.commit(r[s],r[s-6],r[s-2],r[s-4]);break;case 99:i.commit(r[s],r[s-4],r[s-2],r[s-6]);break;case 100:i.commit(r[s-2],r[s-4],r[s],r[s-6]);break;case 101:i.commit(r[s],r[s-2],r[s-4],r[s-6]);break;case 102:i.commit(r[s-2],r[s],r[s-4],r[s-6]);break;case 103:i.commit(r[s-4],r[s-2],r[s],r[s-6]);break;case 104:i.commit(r[s-4],r[s],r[s-2],r[s-6]);break;case 105:i.commit(r[s-2],r[s-4],r[s-6],r[s]);break;case 106:i.commit(r[s],r[s-4],r[s-6],r[s-2]);break;case 107:i.commit(r[s-2],r[s],r[s-6],r[s-4]);break;case 108:i.commit(r[s],r[s-2],r[s-6],r[s-4]);break;case 109:i.commit(r[s-4],r[s-2],r[s-6],r[s]);break;case 110:i.commit(r[s-4],r[s],r[s-6],r[s-2]);break;case 111:this.$="";break;case 112:this.$=r[s];break;case 113:this.$=i.commitType.NORMAL;break;case 114:this.$=i.commitType.REVERSE;break;case 115:this.$=i.commitType.HIGHLIGHT;break;case 118:i.parseDirective("%%{","open_directive");break;case 119:i.parseDirective(r[s],"type_directive");break;case 120:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 121:i.parseDirective("}%%","close_directive","gitGraph")}},table:[{3:1,4:2,5:3,6:n,8:i,14:a,46:8,50:r,55:o},{1:[3]},{3:10,4:2,5:3,6:n,8:i,14:a,46:8,50:r,55:o},{3:11,4:2,5:3,6:n,8:i,14:a,46:8,50:r,55:o},{7:12,8:s,9:[1,13],10:[1,14],11:15,14:c},e(l,[2,124]),e(l,[2,125]),e(l,[2,126]),{47:17,51:[1,18]},{51:[2,118]},{1:[2,1]},{1:[2,2]},{8:[1,19]},{7:20,8:s,11:15,14:c},{9:[1,21]},e(u,[2,10],{12:22,13:[1,23]}),e(d,[2,9]),{9:[1,25],48:24,53:h},e([9,53],[2,119]),{1:[2,3]},{8:[1,27]},{7:28,8:s,11:15,14:c},{8:[2,7],14:[1,31],15:29,16:30,17:32,18:33,19:34,20:[1,35],22:[1,36],24:[1,37],25:[1,38],26:39,27:[1,40],29:[1,44],32:[1,43],37:[1,42],40:[1,41]},e(d,[2,8]),e(f,[2,116]),{49:45,52:[1,46]},e(f,[2,121]),{1:[2,4]},{8:[1,47]},e(u,[2,11]),{4:48,8:i,14:a,55:o},e(u,[2,13]),e(g,[2,14]),e(g,[2,15]),e(g,[2,16]),{21:[1,49]},{23:[1,50]},e(g,[2,19]),e(g,[2,20]),e(g,[2,21]),{28:51,34:p,54:b},e(g,[2,111],{41:54,33:[1,57],34:[1,59],35:[1,55],38:[1,56],42:[1,58]}),{28:60,34:p,54:b},{33:[1,61],35:[1,62]},{28:63,34:p,54:b},{48:64,53:h},{53:[2,120]},{1:[2,5]},e(u,[2,12]),e(g,[2,17]),e(g,[2,18]),e(g,[2,22]),e(m,[2,122]),e(m,[2,123]),e(g,[2,46]),{34:[1,65]},{39:66,43:y,44:v,45:w},{34:[1,70]},{34:[1,71]},e(g,[2,112]),e(g,[2,30],{33:[1,72],35:[1,74],38:[1,73]}),{34:[1,75]},{34:[1,76],36:[1,77]},e(g,[2,23],{30:[1,78]}),e(f,[2,117]),e(g,[2,47],{33:[1,80],38:[1,79],42:[1,81]}),e(g,[2,48],{33:[1,83],35:[1,82],42:[1,84]}),e(x,[2,113]),e(x,[2,114]),e(x,[2,115]),e(g,[2,51],{35:[1,85],38:[1,86],42:[1,87]}),e(g,[2,62],{33:[1,90],35:[1,88],38:[1,89]}),{34:[1,91]},{39:92,43:y,44:v,45:w},{34:[1,93]},e(g,[2,25],{35:[1,94]}),{33:[1,95]},{33:[1,96]},{31:[1,97]},{39:98,43:y,44:v,45:w},{34:[1,99]},{34:[1,100]},{34:[1,101]},{34:[1,102]},{34:[1,103]},{34:[1,104]},{39:105,43:y,44:v,45:w},{34:[1,106]},{34:[1,107]},{39:108,43:y,44:v,45:w},{34:[1,109]},e(g,[2,31],{35:[1,111],38:[1,110]}),e(g,[2,32],{33:[1,113],35:[1,112]}),e(g,[2,33],{33:[1,114],38:[1,115]}),{34:[1,116],36:[1,117]},{34:[1,118]},{34:[1,119]},e(g,[2,24]),e(g,[2,49],{33:[1,120],42:[1,121]}),e(g,[2,53],{38:[1,122],42:[1,123]}),e(g,[2,63],{33:[1,125],38:[1,124]}),e(g,[2,50],{33:[1,126],42:[1,127]}),e(g,[2,55],{35:[1,128],42:[1,129]}),e(g,[2,66],{33:[1,131],35:[1,130]}),e(g,[2,52],{38:[1,132],42:[1,133]}),e(g,[2,54],{35:[1,134],42:[1,135]}),e(g,[2,67],{35:[1,137],38:[1,136]}),e(g,[2,64],{33:[1,139],38:[1,138]}),e(g,[2,65],{33:[1,141],35:[1,140]}),e(g,[2,68],{35:[1,143],38:[1,142]}),{39:144,43:y,44:v,45:w},{34:[1,145]},{34:[1,146]},{34:[1,147]},{34:[1,148]},{39:149,43:y,44:v,45:w},e(g,[2,26]),e(g,[2,27]),e(g,[2,28]),e(g,[2,29]),{34:[1,150]},{34:[1,151]},{39:152,43:y,44:v,45:w},{34:[1,153]},{39:154,43:y,44:v,45:w},{34:[1,155]},{34:[1,156]},{34:[1,157]},{34:[1,158]},{34:[1,159]},{34:[1,160]},{34:[1,161]},{39:162,43:y,44:v,45:w},{34:[1,163]},{34:[1,164]},{34:[1,165]},{39:166,43:y,44:v,45:w},{34:[1,167]},{39:168,43:y,44:v,45:w},{34:[1,169]},{34:[1,170]},{34:[1,171]},{39:172,43:y,44:v,45:w},{34:[1,173]},e(g,[2,37],{35:[1,174]}),e(g,[2,38],{38:[1,175]}),e(g,[2,36],{33:[1,176]}),e(g,[2,39],{35:[1,177]}),e(g,[2,34],{38:[1,178]}),e(g,[2,35],{33:[1,179]}),e(g,[2,60],{42:[1,180]}),e(g,[2,73],{33:[1,181]}),e(g,[2,61],{42:[1,182]}),e(g,[2,84],{38:[1,183]}),e(g,[2,74],{33:[1,184]}),e(g,[2,83],{38:[1,185]}),e(g,[2,59],{42:[1,186]}),e(g,[2,72],{33:[1,187]}),e(g,[2,58],{42:[1,188]}),e(g,[2,78],{35:[1,189]}),e(g,[2,71],{33:[1,190]}),e(g,[2,77],{35:[1,191]}),e(g,[2,57],{42:[1,192]}),e(g,[2,85],{38:[1,193]}),e(g,[2,56],{42:[1,194]}),e(g,[2,79],{35:[1,195]}),e(g,[2,80],{35:[1,196]}),e(g,[2,86],{38:[1,197]}),e(g,[2,70],{33:[1,198]}),e(g,[2,81],{38:[1,199]}),e(g,[2,69],{33:[1,200]}),e(g,[2,75],{35:[1,201]}),e(g,[2,76],{35:[1,202]}),e(g,[2,82],{38:[1,203]}),{34:[1,204]},{39:205,43:y,44:v,45:w},{34:[1,206]},{34:[1,207]},{39:208,43:y,44:v,45:w},{34:[1,209]},{34:[1,210]},{34:[1,211]},{34:[1,212]},{39:213,43:y,44:v,45:w},{34:[1,214]},{39:215,43:y,44:v,45:w},{34:[1,216]},{34:[1,217]},{34:[1,218]},{34:[1,219]},{34:[1,220]},{34:[1,221]},{34:[1,222]},{39:223,43:y,44:v,45:w},{34:[1,224]},{34:[1,225]},{34:[1,226]},{39:227,43:y,44:v,45:w},{34:[1,228]},{39:229,43:y,44:v,45:w},{34:[1,230]},{34:[1,231]},{34:[1,232]},{39:233,43:y,44:v,45:w},e(g,[2,40]),e(g,[2,42]),e(g,[2,41]),e(g,[2,43]),e(g,[2,45]),e(g,[2,44]),e(g,[2,101]),e(g,[2,102]),e(g,[2,99]),e(g,[2,100]),e(g,[2,104]),e(g,[2,103]),e(g,[2,108]),e(g,[2,107]),e(g,[2,106]),e(g,[2,105]),e(g,[2,110]),e(g,[2,109]),e(g,[2,98]),e(g,[2,97]),e(g,[2,96]),e(g,[2,95]),e(g,[2,93]),e(g,[2,94]),e(g,[2,92]),e(g,[2,91]),e(g,[2,90]),e(g,[2,89]),e(g,[2,87]),e(g,[2,88])],defaultActions:{9:[2,118],10:[2,1],11:[2,2],19:[2,3],27:[2,4],46:[2,120],47:[2,5]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},_=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),50;case 1:return this.begin("type_directive"),51;case 2:return this.popState(),this.begin("arg_directive"),9;case 3:return this.popState(),this.popState(),53;case 4:return 52;case 5:return this.begin("acc_title"),20;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),22;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:case 34:case 38:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:return 14;case 13:case 14:break;case 15:return 6;case 16:return 40;case 17:return 33;case 18:return 38;case 19:return 42;case 20:return 43;case 21:return 44;case 22:return 45;case 23:return 35;case 24:return 29;case 25:return 30;case 26:return 37;case 27:return 32;case 28:return 27;case 29:case 30:return 10;case 31:return 9;case 32:return"CARET";case 33:this.begin("options");break;case 35:return 13;case 36:return 36;case 37:this.begin("string");break;case 39:return 34;case 40:return 31;case 41:return 54;case 42:return 8}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\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,/^(?:#[^\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,/^(?:checkout(?=\s|$))/i,/^(?:LR\b)/i,/^(?:BT\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:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},options:{rules:[34,35],inclusive:!1},string:{rules:[38,39],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,36,37,40,41,42,43],inclusive:!0}}},t);function k(){this.yy={}}return R.lexer=_,k.prototype=R,R.Parser=k,new k}();Ji.parser=Ji;const Qi=Ji,ta=t=>null!==t.match(/^\s*gitGraph/);let ea=ai().gitGraph.mainBranchName,na=ai().gitGraph.mainBranchOrder,ia={},aa=null,ra={};ra[ea]={name:ea,order:na};let oa={};oa[ea]=aa;let sa=ea,ca="LR",la=0;function ua(){return Bn({length:7})}let da={};const ha=function(t){if(t=zt.sanitizeText(t,ai()),void 0===oa[t]){let e=new Error('Trying to checkout branch which is not yet created. (Help try using "branch '+t+'")');throw e.hash={text:"checkout "+t,token:"checkout "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"branch '+t+'"']},e}{sa=t;const e=oa[sa];aa=ia[e]}};function fa(t,e,n){const i=t.indexOf(e);-1===i?t.push(n):t.splice(i,1,n)}function ga(t){const e=t.reduce(((t,e)=>t.seq>e.seq?t:e),t[0]);let n="";t.forEach((function(t){n+=t===e?"\t*":"\t|"}));const i=[n,e.id,e.seq];for(let a in oa)oa[a]===e.id&&i.push(a);if(Dt.debug(i.join(" ")),e.parents&&2==e.parents.length){const n=ia[e.parents[0]];fa(t,e,n),t.push(ia[e.parents[1]])}else{if(0==e.parents.length)return;{const n=ia[e.parents];fa(t,e,n)}}ga(t=function(t,e){const n=Object.create(null);return t.reduce(((t,i)=>{const a=e(i);return n[a]||(n[a]=!0,t.push(i)),t}),[])}(t,(t=>t.id)))}const pa=function(){const t=Object.keys(ia).map((function(t){return ia[t]}));return t.forEach((function(t){Dt.debug(t.id)})),t.sort(((t,e)=>t.seq-e.seq)),t},ba={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},ma={parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().gitGraph,setDirection:function(t){ca=t},setOptions:function(t){Dt.debug("options str",t),t=(t=t&&t.trim())||"{}";try{da=JSON.parse(t)}catch(e){Dt.error("error while parsing gitGraph options",e.message)}},getOptions:function(){return da},commit:function(t,e,n,i){Dt.debug("Entering commit:",t,e,n,i),e=zt.sanitizeText(e,ai()),t=zt.sanitizeText(t,ai()),i=zt.sanitizeText(i,ai());const a={id:e||la+"-"+ua(),message:t,seq:la++,type:n||ba.NORMAL,tag:i||"",parents:null==aa?[]:[aa.id],branch:sa};aa=a,ia[a.id]=a,oa[sa]=a.id,Dt.debug("in pushCommit "+a.id)},branch:function(t,e){if(t=zt.sanitizeText(t,ai()),void 0!==oa[t]){let e=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 '+t+'")');throw e.hash={text:"branch "+t,token:"branch "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+t+'"']},e}oa[t]=null!=aa?aa.id:null,ra[t]={name:t,order:e?parseInt(e,10):null},ha(t),Dt.debug("in createBranch")},merge:function(t,e,n,i){t=zt.sanitizeText(t,ai()),e=zt.sanitizeText(e,ai());const a=ia[oa[sa]],r=ia[oa[t]];if(sa===t){let e=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},e}if(void 0===a||!a){let e=new Error('Incorrect usage of "merge". Current branch ('+sa+")has no commits");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["commit"]},e}if(void 0===oa[t]){let e=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") does not exist");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch "+t]},e}if(void 0===r||!r){let e=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") has no commits");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"commit"']},e}if(a===r){let e=new Error('Incorrect usage of "merge". Both branches have same head');throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},e}if(e&&void 0!==ia[e]){let a=new Error('Incorrect usage of "merge". Commit with id:'+e+" already exists, use different custom Id");throw a.hash={text:"merge "+t+e+n+i,token:"merge "+t+e+n+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+t+" "+e+"_UNIQUE "+n+" "+i]},a}const o={id:e||la+"-"+ua(),message:"merged branch "+t+" into "+sa,seq:la++,parents:[null==aa?null:aa.id,oa[t]],branch:sa,type:ba.MERGE,customType:n,customId:!!e,tag:i||""};aa=o,ia[o.id]=o,oa[sa]=o.id,Dt.debug(oa),Dt.debug("in mergeBranch")},cherryPick:function(t,e,n){if(Dt.debug("Entering cherryPick:",t,e,n),t=zt.sanitizeText(t,ai()),e=zt.sanitizeText(e,ai()),n=zt.sanitizeText(n,ai()),!t||void 0===ia[t]){let n=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw n.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}let i=ia[t],a=i.branch;if(i.type===ba.MERGE){let n=new Error('Incorrect usage of "cherryPick". Source commit should not be a merge commit');throw n.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}if(!e||void 0===ia[e]){if(a===sa){let n=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw n.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}const r=ia[oa[sa]];if(void 0===r||!r){let n=new Error('Incorrect usage of "cherry-pick". Current branch ('+sa+")has no commits");throw n.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}const o={id:la+"-"+ua(),message:"cherry-picked "+i+" into "+sa,seq:la++,parents:[null==aa?null:aa.id,i.id],branch:sa,type:ba.CHERRY_PICK,tag:n??"cherry-pick:"+i.id};aa=o,ia[o.id]=o,oa[sa]=o.id,Dt.debug(oa),Dt.debug("in cherryPick")}},checkout:ha,prettyPrint:function(){Dt.debug(ia);ga([pa()[0]])},clear:function(){ia={},aa=null;let t=ai().gitGraph.mainBranchName,e=ai().gitGraph.mainBranchOrder;oa={},oa[t]=null,ra={},ra[t]={name:t,order:e},sa=t,la=0,Ii()},getBranchesAsObjArray:function(){const t=Object.values(ra).map(((t,e)=>null!==t.order?t:{...t,order:parseFloat(`0.${e}`,10)})).sort(((t,e)=>t.order-e.order)).map((({name:t})=>({name:t})));return t},getBranches:function(){return oa},getCommits:function(){return ia},getCommitsArray:pa,getCurrentBranch:function(){return sa},getDirection:function(){return ca},getHead:function(){return aa},setAccTitle:Li,getAccTitle:Oi,getAccDescription:Ni,setAccDescription:Mi,setDiagramTitle:Bi,getDiagramTitle:Pi,commitType:ba};let ya={};const va=0,wa=1,xa=2,Ra=3,_a=4;let ka={},Ea={},Ca=[],Sa=0;const Ta=(t,e,n)=>{const i=qi().gitGraph,a=t.append("g").attr("class","commit-bullets"),r=t.append("g").attr("class","commit-labels");let o=0;Object.keys(e).sort(((t,n)=>e[t].seq-e[n].seq)).forEach((t=>{const s=e[t],c=ka[s.branch].pos,l=o+10;if(n){let t,e=void 0!==s.customType&&""!==s.customType?s.customType:s.type;switch(e){case va:t="commit-normal";break;case wa:t="commit-reverse";break;case xa:t="commit-highlight";break;case Ra:t="commit-merge";break;case _a:t="commit-cherry-pick";break;default:t="commit-normal"}if(e===xa){const e=a.append("rect");e.attr("x",l-10),e.attr("y",c-10),e.attr("height",20),e.attr("width",20),e.attr("class",`commit ${s.id} commit-highlight${ka[s.branch].index%8} ${t}-outer`),a.append("rect").attr("x",l-6).attr("y",c-6).attr("height",12).attr("width",12).attr("class",`commit ${s.id} commit${ka[s.branch].index%8} ${t}-inner`)}else if(e===_a)a.append("circle").attr("cx",l).attr("cy",c).attr("r",10).attr("class",`commit ${s.id} ${t}`),a.append("circle").attr("cx",l-3).attr("cy",c+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${s.id} ${t}`),a.append("circle").attr("cx",l+3).attr("cy",c+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${s.id} ${t}`),a.append("line").attr("x1",l+3).attr("y1",c+1).attr("x2",l).attr("y2",c-5).attr("stroke","#fff").attr("class",`commit ${s.id} ${t}`),a.append("line").attr("x1",l-3).attr("y1",c+1).attr("x2",l).attr("y2",c-5).attr("stroke","#fff").attr("class",`commit ${s.id} ${t}`);else{const n=a.append("circle");if(n.attr("cx",l),n.attr("cy",c),n.attr("r",s.type===Ra?9:10),n.attr("class",`commit ${s.id} commit${ka[s.branch].index%8}`),e===Ra){const e=a.append("circle");e.attr("cx",l),e.attr("cy",c),e.attr("r",6),e.attr("class",`commit ${t} ${s.id} commit${ka[s.branch].index%8}`)}if(e===wa){a.append("path").attr("d",`M ${l-5},${c-5}L${l+5},${c+5}M${l-5},${c+5}L${l+5},${c-5}`).attr("class",`commit ${t} ${s.id} commit${ka[s.branch].index%8}`)}}}if(Ea[s.id]={x:o+10,y:c},n){const t=4,e=2;if(s.type!==_a&&(s.customId&&s.type===Ra||s.type!==Ra)&&i.showCommitLabel){const t=r.append("g"),n=t.insert("rect").attr("class","commit-label-bkg"),a=t.append("text").attr("x",o).attr("y",c+25).attr("class","commit-label").text(s.id);let l=a.node().getBBox();if(n.attr("x",o+10-l.width/2-e).attr("y",c+13.5).attr("width",l.width+2*e).attr("height",l.height+2*e),a.attr("x",o+10-l.width/2),i.rotateCommitLabel){let e=-7.5-(l.width+10)/25*9.5,n=10+l.width/25*8.5;t.attr("transform","translate("+e+", "+n+") rotate("+"-45, "+o+", "+c+")")}}if(s.tag){const n=r.insert("polygon"),i=r.append("circle"),a=r.append("text").attr("y",c-16).attr("class","tag-label").text(s.tag);let l=a.node().getBBox();a.attr("x",o+10-l.width/2);const u=l.height/2,d=c-19.2;n.attr("class","tag-label-bkg").attr("points",`\n ${o-l.width/2-t/2},${d+e}\n ${o-l.width/2-t/2},${d-e}\n ${o+10-l.width/2-t},${d-u-e}\n ${o+10+l.width/2+t},${d-u-e}\n ${o+10+l.width/2+t},${d+u+e}\n ${o+10-l.width/2-t},${d+u+e}`),i.attr("cx",o-l.width/2+t/2).attr("cy",d).attr("r",1.5).attr("class","tag-hole")}}o+=50,o>Sa&&(Sa=o)}))},Aa=(t,e,n=0)=>{const i=t+Math.abs(t-e)/2;if(n>5)return i;if(Ca.every((t=>Math.abs(t-i)>=10)))return Ca.push(i),i;const a=Math.abs(t-e);return Aa(t,e-a/5,n+1)},Da=(t,e,n,i)=>{const a=Ea[e.id],r=Ea[n.id],o=((t,e,n)=>Object.keys(n).filter((i=>n[i].branch===e.branch&&n[i].seq>t.seq&&n[i].seq<e.seq)).length>0)(e,n,i);let s,c="",l="",u=0,d=0,h=ka[n.branch].index;if(o){c="A 10 10, 0, 0, 0,",l="A 10 10, 0, 0, 1,",u=10,d=10,h=ka[n.branch].index;const t=a.y<r.y?Aa(a.y,r.y):Aa(r.y,a.y);s=a.y<r.y?`M ${a.x} ${a.y} L ${a.x} ${t-u} ${c} ${a.x+d} ${t} L ${r.x-u} ${t} ${l} ${r.x} ${t+d} L ${r.x} ${r.y}`:`M ${a.x} ${a.y} L ${a.x} ${t+u} ${l} ${a.x+d} ${t} L ${r.x-u} ${t} ${c} ${r.x} ${t-d} L ${r.x} ${r.y}`}else a.y<r.y&&(c="A 20 20, 0, 0, 0,",u=20,d=20,h=ka[n.branch].index,s=`M ${a.x} ${a.y} L ${a.x} ${r.y-u} ${c} ${a.x+d} ${r.y} L ${r.x} ${r.y}`),a.y>r.y&&(c="A 20 20, 0, 0, 0,",u=20,d=20,h=ka[e.branch].index,s=`M ${a.x} ${a.y} L ${r.x-u} ${a.y} ${c} ${r.x} ${a.y-d} L ${r.x} ${r.y}`),a.y===r.y&&(h=ka[e.branch].index,s=`M ${a.x} ${a.y} L ${a.x} ${r.y-u} ${c} ${a.x+d} ${r.y} L ${r.x} ${r.y}`);t.append("path").attr("d",s).attr("class","arrow arrow"+h%8)},Ia=(t,e)=>{const n=qi().gitGraph,i=t.append("g");e.forEach(((t,e)=>{const a=e%8,r=ka[t.name].pos,o=i.append("line");o.attr("x1",0),o.attr("y1",r),o.attr("x2",Sa),o.attr("y2",r),o.attr("class","branch branch"+a),Ca.push(r);const s=(t=>{const e=document.createElementNS("http://www.w3.org/2000/svg","text");let n=[];n="string"==typeof t?t.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(t)?t:[];for(const i of n){const t=document.createElementNS("http://www.w3.org/2000/svg","tspan");t.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),t.setAttribute("dy","1em"),t.setAttribute("x","0"),t.setAttribute("class","row"),t.textContent=i.trim(),e.appendChild(t)}return e})(t.name),c=i.insert("rect"),l=i.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+a);l.node().appendChild(s);let u=s.getBBox();c.attr("class","branchLabelBkg label"+a).attr("rx",4).attr("ry",4).attr("x",-u.width-4-(!0===n.rotateCommitLabel?30:0)).attr("y",-u.height/2+8).attr("width",u.width+18).attr("height",u.height+4),l.attr("transform","translate("+(-u.width-14-(!0===n.rotateCommitLabel?30:0))+", "+(r-u.height/2-1)+")"),c.attr("transform","translate(-19, "+(r-u.height/2)+")")}))},La={draw:function(t,e,n,i){ka={},Ea={},ya={},Sa=0,Ca=[];const a=qi(),r=a.gitGraph;Dt.debug("in gitgraph renderer",t+"\n","id:",e,n),ya=i.db.getCommits();const o=i.db.getBranchesAsObjArray();let c=0;o.forEach(((t,e)=>{ka[t.name]={pos:c,index:e},c+=50+(r.rotateCommitLabel?40:0)}));const l=(0,s.Ys)(`[id="${e}"]`);Ta(l,ya,!1),r.showBranches&&Ia(l,o),((t,e)=>{const n=t.append("g").attr("class","commit-arrows");Object.keys(e).forEach((t=>{const i=e[t];i.parents&&i.parents.length>0&&i.parents.forEach((t=>{Da(n,e[t],i,e)}))}))})(l,ya),Ta(l,ya,!0),Gn.insertTitle(l,"gitTitleText",r.titleTopMargin,i.db.getDiagramTitle()),Yi(void 0,l,r.diagramPadding,r.useMaxWidth??a.useMaxWidth)}},Oa=t=>`\n .commit-id,\n .commit-msg,\n .branch-label {\n fill: lightgrey;\n color: lightgrey;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n ${[0,1,2,3,4,5,6,7].map((e=>`\n .branch-label${e} { fill: ${t["gitBranchLabel"+e]}; }\n .commit${e} { stroke: ${t["git"+e]}; fill: ${t["git"+e]}; }\n .commit-highlight${e} { stroke: ${t["gitInv"+e]}; fill: ${t["gitInv"+e]}; }\n .label${e} { fill: ${t["git"+e]}; }\n .arrow${e} { stroke: ${t["git"+e]}; }\n `)).join("\n")}\n\n .branch {\n stroke-width: 1;\n stroke: ${t.lineColor};\n stroke-dasharray: 2;\n }\n .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};}\n .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; }\n .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};}\n .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; }\n .tag-hole { fill: ${t.textColor}; }\n\n .commit-merge {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n }\n .commit-reverse {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n stroke-width: 3;\n }\n .commit-highlight-outer {\n }\n .commit-highlight-inner {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n }\n\n .arrow { stroke-width: 8; stroke-linecap: round; fill: none}\n .gitTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n }\n`;var Ma=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,6],i=[1,7],a=[1,8],r=[1,9],o=[1,16],s=[1,11],l=[1,12],u=[1,13],d=[1,14],h=[1,15],f=[1,27],g=[1,33],p=[1,34],b=[1,35],m=[1,36],y=[1,37],v=[1,72],w=[1,73],x=[1,74],R=[1,75],_=[1,76],k=[1,77],E=[1,78],C=[1,38],S=[1,39],T=[1,40],A=[1,41],D=[1,42],I=[1,43],L=[1,44],O=[1,45],M=[1,46],N=[1,47],B=[1,48],P=[1,49],F=[1,50],j=[1,51],$=[1,52],z=[1,53],H=[1,54],U=[1,55],V=[1,56],q=[1,57],W=[1,59],Y=[1,60],G=[1,61],Z=[1,62],K=[1,63],X=[1,64],J=[1,65],Q=[1,66],tt=[1,67],et=[1,68],nt=[1,69],it=[24,52],at=[24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],rt=[15,24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],ot=[1,94],st=[1,95],ct=[1,96],lt=[1,97],ut=[15,24,52],dt=[7,8,9,10,18,22,25,26,27,28],ht=[15,24,43,52],ft=[15,24,43,52,86,87,89,90],gt=[15,43],pt=[44,46,47,48,49,50,51,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],bt={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,directive:6,direction_tb:7,direction_bt:8,direction_rl:9,direction_lr:10,graphConfig:11,openDirective:12,typeDirective:13,closeDirective:14,NEWLINE:15,":":16,argDirective:17,open_directive:18,type_directive:19,arg_directive:20,close_directive:21,C4_CONTEXT:22,statements:23,EOF:24,C4_CONTAINER:25,C4_COMPONENT:26,C4_DYNAMIC:27,C4_DEPLOYMENT:28,otherStatements:29,diagramStatements:30,otherStatement:31,title:32,accDescription:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,boundaryStatement:39,boundaryStartStatement:40,boundaryStopStatement:41,boundaryStart:42,LBRACE:43,ENTERPRISE_BOUNDARY:44,attributes:45,SYSTEM_BOUNDARY:46,BOUNDARY:47,CONTAINER_BOUNDARY:48,NODE:49,NODE_L:50,NODE_R:51,RBRACE:52,diagramStatement:53,PERSON:54,PERSON_EXT:55,SYSTEM:56,SYSTEM_DB:57,SYSTEM_QUEUE:58,SYSTEM_EXT:59,SYSTEM_EXT_DB:60,SYSTEM_EXT_QUEUE:61,CONTAINER:62,CONTAINER_DB:63,CONTAINER_QUEUE:64,CONTAINER_EXT:65,CONTAINER_EXT_DB:66,CONTAINER_EXT_QUEUE:67,COMPONENT:68,COMPONENT_DB:69,COMPONENT_QUEUE:70,COMPONENT_EXT:71,COMPONENT_EXT_DB:72,COMPONENT_EXT_QUEUE:73,REL:74,BIREL:75,REL_U:76,REL_D:77,REL_L:78,REL_R:79,REL_B:80,REL_INDEX:81,UPDATE_EL_STYLE:82,UPDATE_REL_STYLE:83,UPDATE_LAYOUT_CONFIG:84,attribute:85,STR:86,STR_KEY:87,STR_VALUE:88,ATTRIBUTE:89,ATTRIBUTE_EMPTY:90,$accept:0,$end:1},terminals_:{2:"error",7:"direction_tb",8:"direction_bt",9:"direction_rl",10:"direction_lr",15:"NEWLINE",16:":",18:"open_directive",19:"type_directive",20:"arg_directive",21:"close_directive",22:"C4_CONTEXT",24:"EOF",25:"C4_CONTAINER",26:"C4_COMPONENT",27:"C4_DYNAMIC",28:"C4_DEPLOYMENT",32:"title",33:"accDescription",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",43:"LBRACE",44:"ENTERPRISE_BOUNDARY",46:"SYSTEM_BOUNDARY",47:"BOUNDARY",48:"CONTAINER_BOUNDARY",49:"NODE",50:"NODE_L",51:"NODE_R",52:"RBRACE",54:"PERSON",55:"PERSON_EXT",56:"SYSTEM",57:"SYSTEM_DB",58:"SYSTEM_QUEUE",59:"SYSTEM_EXT",60:"SYSTEM_EXT_DB",61:"SYSTEM_EXT_QUEUE",62:"CONTAINER",63:"CONTAINER_DB",64:"CONTAINER_QUEUE",65:"CONTAINER_EXT",66:"CONTAINER_EXT_DB",67:"CONTAINER_EXT_QUEUE",68:"COMPONENT",69:"COMPONENT_DB",70:"COMPONENT_QUEUE",71:"COMPONENT_EXT",72:"COMPONENT_EXT_DB",73:"COMPONENT_EXT_QUEUE",74:"REL",75:"BIREL",76:"REL_U",77:"REL_D",78:"REL_L",79:"REL_R",80:"REL_B",81:"REL_INDEX",82:"UPDATE_EL_STYLE",83:"UPDATE_REL_STYLE",84:"UPDATE_LAYOUT_CONFIG",86:"STR",87:"STR_KEY",88:"STR_VALUE",89:"ATTRIBUTE",90:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[3,2],[5,1],[5,1],[5,1],[5,1],[4,1],[6,4],[6,6],[12,1],[13,1],[17,1],[14,1],[11,4],[11,4],[11,4],[11,4],[11,4],[23,1],[23,1],[23,2],[29,1],[29,2],[29,3],[31,1],[31,1],[31,2],[31,2],[31,1],[39,3],[40,3],[40,3],[40,4],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[41,1],[30,1],[30,2],[30,3],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,1],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[45,1],[45,2],[85,1],[85,2],[85,1],[85,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 4:i.setDirection("TB");break;case 5:i.setDirection("BT");break;case 6:i.setDirection("RL");break;case 7:i.setDirection("LR");break;case 11:i.parseDirective("%%{","open_directive");break;case 12:break;case 13:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 14:i.parseDirective("}%%","close_directive","c4Context");break;case 15:case 16:case 17:case 18:case 19:i.setC4Type(r[s-3]);break;case 26:i.setTitle(r[s].substring(6)),this.$=r[s].substring(6);break;case 27:i.setAccDescription(r[s].substring(15)),this.$=r[s].substring(15);break;case 28:this.$=r[s].trim(),i.setTitle(this.$);break;case 29:case 30:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 35:case 36:r[s].splice(2,0,"ENTERPRISE"),i.addPersonOrSystemBoundary(...r[s]),this.$=r[s];break;case 37:i.addPersonOrSystemBoundary(...r[s]),this.$=r[s];break;case 38:r[s].splice(2,0,"CONTAINER"),i.addContainerBoundary(...r[s]),this.$=r[s];break;case 39:i.addDeploymentNode("node",...r[s]),this.$=r[s];break;case 40:i.addDeploymentNode("nodeL",...r[s]),this.$=r[s];break;case 41:i.addDeploymentNode("nodeR",...r[s]),this.$=r[s];break;case 42:i.popBoundaryParseStack();break;case 46:i.addPersonOrSystem("person",...r[s]),this.$=r[s];break;case 47:i.addPersonOrSystem("external_person",...r[s]),this.$=r[s];break;case 48:i.addPersonOrSystem("system",...r[s]),this.$=r[s];break;case 49:i.addPersonOrSystem("system_db",...r[s]),this.$=r[s];break;case 50:i.addPersonOrSystem("system_queue",...r[s]),this.$=r[s];break;case 51:i.addPersonOrSystem("external_system",...r[s]),this.$=r[s];break;case 52:i.addPersonOrSystem("external_system_db",...r[s]),this.$=r[s];break;case 53:i.addPersonOrSystem("external_system_queue",...r[s]),this.$=r[s];break;case 54:i.addContainer("container",...r[s]),this.$=r[s];break;case 55:i.addContainer("container_db",...r[s]),this.$=r[s];break;case 56:i.addContainer("container_queue",...r[s]),this.$=r[s];break;case 57:i.addContainer("external_container",...r[s]),this.$=r[s];break;case 58:i.addContainer("external_container_db",...r[s]),this.$=r[s];break;case 59:i.addContainer("external_container_queue",...r[s]),this.$=r[s];break;case 60:i.addComponent("component",...r[s]),this.$=r[s];break;case 61:i.addComponent("component_db",...r[s]),this.$=r[s];break;case 62:i.addComponent("component_queue",...r[s]),this.$=r[s];break;case 63:i.addComponent("external_component",...r[s]),this.$=r[s];break;case 64:i.addComponent("external_component_db",...r[s]),this.$=r[s];break;case 65:i.addComponent("external_component_queue",...r[s]),this.$=r[s];break;case 67:i.addRel("rel",...r[s]),this.$=r[s];break;case 68:i.addRel("birel",...r[s]),this.$=r[s];break;case 69:i.addRel("rel_u",...r[s]),this.$=r[s];break;case 70:i.addRel("rel_d",...r[s]),this.$=r[s];break;case 71:i.addRel("rel_l",...r[s]),this.$=r[s];break;case 72:i.addRel("rel_r",...r[s]),this.$=r[s];break;case 73:i.addRel("rel_b",...r[s]),this.$=r[s];break;case 74:r[s].splice(0,1),i.addRel("rel",...r[s]),this.$=r[s];break;case 75:i.updateElStyle("update_el_style",...r[s]),this.$=r[s];break;case 76:i.updateRelStyle("update_rel_style",...r[s]),this.$=r[s];break;case 77:i.updateLayoutConfig("update_layout_config",...r[s]),this.$=r[s];break;case 78:this.$=[r[s]];break;case 79:r[s].unshift(r[s-1]),this.$=r[s];break;case 80:case 82:this.$=r[s].trim();break;case 81:let t={};t[r[s-1].trim()]=r[s].trim(),this.$=t;break;case 83:this.$=""}},table:[{3:1,4:2,5:3,6:4,7:n,8:i,9:a,10:r,11:5,12:10,18:o,22:s,25:l,26:u,27:d,28:h},{1:[3]},{1:[2,1]},{1:[2,2]},{3:17,4:2,5:3,6:4,7:n,8:i,9:a,10:r,11:5,12:10,18:o,22:s,25:l,26:u,27:d,28:h},{1:[2,8]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{1:[2,7]},{13:18,19:[1,19]},{15:[1,20]},{15:[1,21]},{15:[1,22]},{15:[1,23]},{15:[1,24]},{19:[2,11]},{1:[2,3]},{14:25,16:[1,26],21:f},e([16,21],[2,12]),{23:28,29:29,30:30,31:31,32:g,33:p,34:b,36:m,38:y,39:58,40:70,42:71,44:v,46:w,47:x,48:R,49:_,50:k,51:E,53:32,54:C,55:S,56:T,57:A,58:D,59:I,60:L,61:O,62:M,63:N,64:B,65:P,66:F,67:j,68:$,69:z,70:H,71:U,72:V,73:q,74:W,75:Y,76:G,77:Z,78:K,79:X,80:J,81:Q,82:tt,83:et,84:nt},{23:79,29:29,30:30,31:31,32:g,33:p,34:b,36:m,38:y,39:58,40:70,42:71,44:v,46:w,47:x,48:R,49:_,50:k,51:E,53:32,54:C,55:S,56:T,57:A,58:D,59:I,60:L,61:O,62:M,63:N,64:B,65:P,66:F,67:j,68:$,69:z,70:H,71:U,72:V,73:q,74:W,75:Y,76:G,77:Z,78:K,79:X,80:J,81:Q,82:tt,83:et,84:nt},{23:80,29:29,30:30,31:31,32:g,33:p,34:b,36:m,38:y,39:58,40:70,42:71,44:v,46:w,47:x,48:R,49:_,50:k,51:E,53:32,54:C,55:S,56:T,57:A,58:D,59:I,60:L,61:O,62:M,63:N,64:B,65:P,66:F,67:j,68:$,69:z,70:H,71:U,72:V,73:q,74:W,75:Y,76:G,77:Z,78:K,79:X,80:J,81:Q,82:tt,83:et,84:nt},{23:81,29:29,30:30,31:31,32:g,33:p,34:b,36:m,38:y,39:58,40:70,42:71,44:v,46:w,47:x,48:R,49:_,50:k,51:E,53:32,54:C,55:S,56:T,57:A,58:D,59:I,60:L,61:O,62:M,63:N,64:B,65:P,66:F,67:j,68:$,69:z,70:H,71:U,72:V,73:q,74:W,75:Y,76:G,77:Z,78:K,79:X,80:J,81:Q,82:tt,83:et,84:nt},{23:82,29:29,30:30,31:31,32:g,33:p,34:b,36:m,38:y,39:58,40:70,42:71,44:v,46:w,47:x,48:R,49:_,50:k,51:E,53:32,54:C,55:S,56:T,57:A,58:D,59:I,60:L,61:O,62:M,63:N,64:B,65:P,66:F,67:j,68:$,69:z,70:H,71:U,72:V,73:q,74:W,75:Y,76:G,77:Z,78:K,79:X,80:J,81:Q,82:tt,83:et,84:nt},{15:[1,83]},{17:84,20:[1,85]},{15:[2,14]},{24:[1,86]},e(it,[2,20],{53:32,39:58,40:70,42:71,30:87,44:v,46:w,47:x,48:R,49:_,50:k,51:E,54:C,55:S,56:T,57:A,58:D,59:I,60:L,61:O,62:M,63:N,64:B,65:P,66:F,67:j,68:$,69:z,70:H,71:U,72:V,73:q,74:W,75:Y,76:G,77:Z,78:K,79:X,80:J,81:Q,82:tt,83:et,84:nt}),e(it,[2,21]),e(at,[2,23],{15:[1,88]}),e(it,[2,43],{15:[1,89]}),e(rt,[2,26]),e(rt,[2,27]),{35:[1,90]},{37:[1,91]},e(rt,[2,30]),{45:92,85:93,86:ot,87:st,89:ct,90:lt},{45:98,85:93,86:ot,87:st,89:ct,90:lt},{45:99,85:93,86:ot,87:st,89:ct,90:lt},{45:100,85:93,86:ot,87:st,89:ct,90:lt},{45:101,85:93,86:ot,87:st,89:ct,90:lt},{45:102,85:93,86:ot,87:st,89:ct,90:lt},{45:103,85:93,86:ot,87:st,89:ct,90:lt},{45:104,85:93,86:ot,87:st,89:ct,90:lt},{45:105,85:93,86:ot,87:st,89:ct,90:lt},{45:106,85:93,86:ot,87:st,89:ct,90:lt},{45:107,85:93,86:ot,87:st,89:ct,90:lt},{45:108,85:93,86:ot,87:st,89:ct,90:lt},{45:109,85:93,86:ot,87:st,89:ct,90:lt},{45:110,85:93,86:ot,87:st,89:ct,90:lt},{45:111,85:93,86:ot,87:st,89:ct,90:lt},{45:112,85:93,86:ot,87:st,89:ct,90:lt},{45:113,85:93,86:ot,87:st,89:ct,90:lt},{45:114,85:93,86:ot,87:st,89:ct,90:lt},{45:115,85:93,86:ot,87:st,89:ct,90:lt},{45:116,85:93,86:ot,87:st,89:ct,90:lt},e(ut,[2,66]),{45:117,85:93,86:ot,87:st,89:ct,90:lt},{45:118,85:93,86:ot,87:st,89:ct,90:lt},{45:119,85:93,86:ot,87:st,89:ct,90:lt},{45:120,85:93,86:ot,87:st,89:ct,90:lt},{45:121,85:93,86:ot,87:st,89:ct,90:lt},{45:122,85:93,86:ot,87:st,89:ct,90:lt},{45:123,85:93,86:ot,87:st,89:ct,90:lt},{45:124,85:93,86:ot,87:st,89:ct,90:lt},{45:125,85:93,86:ot,87:st,89:ct,90:lt},{45:126,85:93,86:ot,87:st,89:ct,90:lt},{45:127,85:93,86:ot,87:st,89:ct,90:lt},{30:128,39:58,40:70,42:71,44:v,46:w,47:x,48:R,49:_,50:k,51:E,53:32,54:C,55:S,56:T,57:A,58:D,59:I,60:L,61:O,62:M,63:N,64:B,65:P,66:F,67:j,68:$,69:z,70:H,71:U,72:V,73:q,74:W,75:Y,76:G,77:Z,78:K,79:X,80:J,81:Q,82:tt,83:et,84:nt},{15:[1,130],43:[1,129]},{45:131,85:93,86:ot,87:st,89:ct,90:lt},{45:132,85:93,86:ot,87:st,89:ct,90:lt},{45:133,85:93,86:ot,87:st,89:ct,90:lt},{45:134,85:93,86:ot,87:st,89:ct,90:lt},{45:135,85:93,86:ot,87:st,89:ct,90:lt},{45:136,85:93,86:ot,87:st,89:ct,90:lt},{45:137,85:93,86:ot,87:st,89:ct,90:lt},{24:[1,138]},{24:[1,139]},{24:[1,140]},{24:[1,141]},e(dt,[2,9]),{14:142,21:f},{21:[2,13]},{1:[2,15]},e(it,[2,22]),e(at,[2,24],{31:31,29:143,32:g,33:p,34:b,36:m,38:y}),e(it,[2,44],{29:29,30:30,31:31,53:32,39:58,40:70,42:71,23:144,32:g,33:p,34:b,36:m,38:y,44:v,46:w,47:x,48:R,49:_,50:k,51:E,54:C,55:S,56:T,57:A,58:D,59:I,60:L,61:O,62:M,63:N,64:B,65:P,66:F,67:j,68:$,69:z,70:H,71:U,72:V,73:q,74:W,75:Y,76:G,77:Z,78:K,79:X,80:J,81:Q,82:tt,83:et,84:nt}),e(rt,[2,28]),e(rt,[2,29]),e(ut,[2,46]),e(ht,[2,78],{85:93,45:145,86:ot,87:st,89:ct,90:lt}),e(ft,[2,80]),{88:[1,146]},e(ft,[2,82]),e(ft,[2,83]),e(ut,[2,47]),e(ut,[2,48]),e(ut,[2,49]),e(ut,[2,50]),e(ut,[2,51]),e(ut,[2,52]),e(ut,[2,53]),e(ut,[2,54]),e(ut,[2,55]),e(ut,[2,56]),e(ut,[2,57]),e(ut,[2,58]),e(ut,[2,59]),e(ut,[2,60]),e(ut,[2,61]),e(ut,[2,62]),e(ut,[2,63]),e(ut,[2,64]),e(ut,[2,65]),e(ut,[2,67]),e(ut,[2,68]),e(ut,[2,69]),e(ut,[2,70]),e(ut,[2,71]),e(ut,[2,72]),e(ut,[2,73]),e(ut,[2,74]),e(ut,[2,75]),e(ut,[2,76]),e(ut,[2,77]),{41:147,52:[1,148]},{15:[1,149]},{43:[1,150]},e(gt,[2,35]),e(gt,[2,36]),e(gt,[2,37]),e(gt,[2,38]),e(gt,[2,39]),e(gt,[2,40]),e(gt,[2,41]),{1:[2,16]},{1:[2,17]},{1:[2,18]},{1:[2,19]},{15:[1,151]},e(at,[2,25]),e(it,[2,45]),e(ht,[2,79]),e(ft,[2,81]),e(ut,[2,31]),e(ut,[2,42]),e(pt,[2,32]),e(pt,[2,33],{15:[1,152]}),e(dt,[2,10]),e(pt,[2,34])],defaultActions:{2:[2,1],3:[2,2],5:[2,8],6:[2,4],7:[2,5],8:[2,6],9:[2,7],16:[2,11],17:[2,3],27:[2,14],85:[2,13],86:[2,15],138:[2,16],139:[2,17],140:[2,18],141:[2,19]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},mt=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),18;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 10;case 5:return this.begin("type_directive"),19;case 6:return this.popState(),this.begin("arg_directive"),16;case 7:return this.popState(),this.popState(),21;case 8:return 20;case 9:return 32;case 10:return 33;case 11:return this.begin("acc_title"),34;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),36;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:case 78:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:case 21:case 75:break;case 19:c;break;case 20:return 15;case 22:return 22;case 23:return 25;case 24:return 26;case 25:return 27;case 26:return 28;case 27:return this.begin("person_ext"),55;case 28:return this.begin("person"),54;case 29:return this.begin("system_ext_queue"),61;case 30:return this.begin("system_ext_db"),60;case 31:return this.begin("system_ext"),59;case 32:return this.begin("system_queue"),58;case 33:return this.begin("system_db"),57;case 34:return this.begin("system"),56;case 35:return this.begin("boundary"),47;case 36:return this.begin("enterprise_boundary"),44;case 37:return this.begin("system_boundary"),46;case 38:return this.begin("container_ext_queue"),67;case 39:return this.begin("container_ext_db"),66;case 40:return this.begin("container_ext"),65;case 41:return this.begin("container_queue"),64;case 42:return this.begin("container_db"),63;case 43:return this.begin("container"),62;case 44:return this.begin("container_boundary"),48;case 45:return this.begin("component_ext_queue"),73;case 46:return this.begin("component_ext_db"),72;case 47:return this.begin("component_ext"),71;case 48:return this.begin("component_queue"),70;case 49:return this.begin("component_db"),69;case 50:return this.begin("component"),68;case 51:case 52:return this.begin("node"),49;case 53:return this.begin("node_l"),50;case 54:return this.begin("node_r"),51;case 55:return this.begin("rel"),74;case 56:return this.begin("birel"),75;case 57:case 58:return this.begin("rel_u"),76;case 59:case 60:return this.begin("rel_d"),77;case 61:case 62:return this.begin("rel_l"),78;case 63:case 64:return this.begin("rel_r"),79;case 65:return this.begin("rel_b"),80;case 66:return this.begin("rel_index"),81;case 67:return this.begin("update_el_style"),82;case 68:return this.begin("update_rel_style"),83;case 69:return this.begin("update_layout_config"),84;case 70:return"EOF_IN_STRUCT";case 71:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 72:this.begin("attribute");break;case 73:case 84:this.popState(),this.popState();break;case 74:case 76:return 90;case 77:this.begin("string");break;case 79:case 85:return"STR";case 80:this.begin("string_kv");break;case 81:return this.begin("string_kv_key"),"STR_KEY";case 82:this.popState(),this.begin("string_kv_value");break;case 83:return"STR_VALUE";case 86:return"LBRACE";case 87:return"RBRACE";case 88:return"SPACE";case 89:return"EOL";case 90:return 24}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\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:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},string_kv_value:{rules:[83,84],inclusive:!1},string_kv_key:{rules:[82],inclusive:!1},string_kv:{rules:[81],inclusive:!1},string:{rules:[78,79],inclusive:!1},attribute:{rules:[73,74,75,76,77,80,85],inclusive:!1},update_layout_config:{rules:[70,71,72,73],inclusive:!1},update_rel_style:{rules:[70,71,72,73],inclusive:!1},update_el_style:{rules:[70,71,72,73],inclusive:!1},rel_b:{rules:[70,71,72,73],inclusive:!1},rel_r:{rules:[70,71,72,73],inclusive:!1},rel_l:{rules:[70,71,72,73],inclusive:!1},rel_d:{rules:[70,71,72,73],inclusive:!1},rel_u:{rules:[70,71,72,73],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[70,71,72,73],inclusive:!1},node_r:{rules:[70,71,72,73],inclusive:!1},node_l:{rules:[70,71,72,73],inclusive:!1},node:{rules:[70,71,72,73],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[70,71,72,73],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[70,71,72,73],inclusive:!1},component_ext:{rules:[70,71,72,73],inclusive:!1},component_queue:{rules:[70,71,72,73],inclusive:!1},component_db:{rules:[70,71,72,73],inclusive:!1},component:{rules:[70,71,72,73],inclusive:!1},container_boundary:{rules:[70,71,72,73],inclusive:!1},container_ext_queue:{rules:[],inclusive:!1},container_ext_db:{rules:[70,71,72,73],inclusive:!1},container_ext:{rules:[70,71,72,73],inclusive:!1},container_queue:{rules:[70,71,72,73],inclusive:!1},container_db:{rules:[70,71,72,73],inclusive:!1},container:{rules:[70,71,72,73],inclusive:!1},birel:{rules:[70,71,72,73],inclusive:!1},system_boundary:{rules:[70,71,72,73],inclusive:!1},enterprise_boundary:{rules:[70,71,72,73],inclusive:!1},boundary:{rules:[70,71,72,73],inclusive:!1},system_ext_queue:{rules:[70,71,72,73],inclusive:!1},system_ext_db:{rules:[70,71,72,73],inclusive:!1},system_ext:{rules:[70,71,72,73],inclusive:!1},system_queue:{rules:[70,71,72,73],inclusive:!1},system_db:{rules:[70,71,72,73],inclusive:!1},system:{rules:[70,71,72,73],inclusive:!1},person_ext:{rules:[70,71,72,73],inclusive:!1},person:{rules:[70,71,72,73],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,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,65,66,67,68,69,86,87,88,89,90],inclusive:!0}}},t);function yt(){this.yy={}}return bt.lexer=mt,yt.prototype=bt,bt.Parser=yt,new yt}();Ma.parser=Ma;const Na=Ma,Ba=t=>null!==t.match(/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/);let Pa=[],Fa=[""],ja="global",$a="",za=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],Ha=[],Ua="",Va=!1,qa=4,Wa=2;var Ya;const Ga=function(t){return null==t?Pa:Pa.filter((e=>e.parentBoundary===t))},Za=function(){return Va},Ka={addPersonOrSystem:function(t,e,n,i,a,r,o){if(null===e||null===n)return;let s={};const c=Pa.find((t=>t.alias===e));if(c&&e===c.alias?s=c:(s.alias=e,Pa.push(s)),s.label=null==n?{text:""}:{text:n},null==i)s.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];s[t]={text:e}}else s.descr={text:i};if("object"==typeof a){let[t,e]=Object.entries(a)[0];s[t]=e}else s.sprite=a;if("object"==typeof r){let[t,e]=Object.entries(r)[0];s[t]=e}else s.tags=r;if("object"==typeof o){let[t,e]=Object.entries(o)[0];s[t]=e}else s.link=o;s.typeC4Shape={text:t},s.parentBoundary=ja,s.wrap=Za()},addPersonOrSystemBoundary:function(t,e,n,i,a){if(null===t||null===e)return;let r={};const o=za.find((e=>e.alias===t));if(o&&t===o.alias?r=o:(r.alias=t,za.push(r)),r.label=null==e?{text:""}:{text:e},null==n)r.type={text:"system"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];r[t]={text:e}}else r.type={text:n};if("object"==typeof i){let[t,e]=Object.entries(i)[0];r[t]=e}else r.tags=i;if("object"==typeof a){let[t,e]=Object.entries(a)[0];r[t]=e}else r.link=a;r.parentBoundary=ja,r.wrap=Za(),$a=ja,ja=t,Fa.push($a)},addContainer:function(t,e,n,i,a,r,o,s){if(null===e||null===n)return;let c={};const l=Pa.find((t=>t.alias===e));if(l&&e===l.alias?c=l:(c.alias=e,Pa.push(c)),c.label=null==n?{text:""}:{text:n},null==i)c.techn={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];c[t]={text:e}}else c.techn={text:i};if(null==a)c.descr={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];c[t]={text:e}}else c.descr={text:a};if("object"==typeof r){let[t,e]=Object.entries(r)[0];c[t]=e}else c.sprite=r;if("object"==typeof o){let[t,e]=Object.entries(o)[0];c[t]=e}else c.tags=o;if("object"==typeof s){let[t,e]=Object.entries(s)[0];c[t]=e}else c.link=s;c.wrap=Za(),c.typeC4Shape={text:t},c.parentBoundary=ja},addContainerBoundary:function(t,e,n,i,a){if(null===t||null===e)return;let r={};const o=za.find((e=>e.alias===t));if(o&&t===o.alias?r=o:(r.alias=t,za.push(r)),r.label=null==e?{text:""}:{text:e},null==n)r.type={text:"container"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];r[t]={text:e}}else r.type={text:n};if("object"==typeof i){let[t,e]=Object.entries(i)[0];r[t]=e}else r.tags=i;if("object"==typeof a){let[t,e]=Object.entries(a)[0];r[t]=e}else r.link=a;r.parentBoundary=ja,r.wrap=Za(),$a=ja,ja=t,Fa.push($a)},addComponent:function(t,e,n,i,a,r,o,s){if(null===e||null===n)return;let c={};const l=Pa.find((t=>t.alias===e));if(l&&e===l.alias?c=l:(c.alias=e,Pa.push(c)),c.label=null==n?{text:""}:{text:n},null==i)c.techn={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];c[t]={text:e}}else c.techn={text:i};if(null==a)c.descr={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];c[t]={text:e}}else c.descr={text:a};if("object"==typeof r){let[t,e]=Object.entries(r)[0];c[t]=e}else c.sprite=r;if("object"==typeof o){let[t,e]=Object.entries(o)[0];c[t]=e}else c.tags=o;if("object"==typeof s){let[t,e]=Object.entries(s)[0];c[t]=e}else c.link=s;c.wrap=Za(),c.typeC4Shape={text:t},c.parentBoundary=ja},addDeploymentNode:function(t,e,n,i,a,r,o,s){if(null===e||null===n)return;let c={};const l=za.find((t=>t.alias===e));if(l&&e===l.alias?c=l:(c.alias=e,za.push(c)),c.label=null==n?{text:""}:{text:n},null==i)c.type={text:"node"};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];c[t]={text:e}}else c.type={text:i};if(null==a)c.descr={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];c[t]={text:e}}else c.descr={text:a};if("object"==typeof o){let[t,e]=Object.entries(o)[0];c[t]=e}else c.tags=o;if("object"==typeof s){let[t,e]=Object.entries(s)[0];c[t]=e}else c.link=s;c.nodeType=t,c.parentBoundary=ja,c.wrap=Za(),$a=ja,ja=e,Fa.push($a)},popBoundaryParseStack:function(){ja=$a,Fa.pop(),$a=Fa.pop(),Fa.push($a)},addRel:function(t,e,n,i,a,r,o,s,c){if(null==t||null==e||null==n||null==i)return;let l={};const u=Ha.find((t=>t.from===e&&t.to===n));if(u?l=u:Ha.push(l),l.type=t,l.from=e,l.to=n,l.label={text:i},null==a)l.techn={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];l[t]={text:e}}else l.techn={text:a};if(null==r)l.descr={text:""};else if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]={text:e}}else l.descr={text:r};if("object"==typeof o){let[t,e]=Object.entries(o)[0];l[t]=e}else l.sprite=o;if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=e}else l.tags=s;if("object"==typeof c){let[t,e]=Object.entries(c)[0];l[t]=e}else l.link=c;l.wrap=Za()},updateElStyle:function(t,e,n,i,a,r,o,s,c,l,u){let d=Pa.find((t=>t.alias===e));if(void 0!==d||(d=za.find((t=>t.alias===e)),void 0!==d)){if(null!=n)if("object"==typeof n){let[t,e]=Object.entries(n)[0];d[t]=e}else d.bgColor=n;if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];d[t]=e}else d.fontColor=i;if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];d[t]=e}else d.borderColor=a;if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];d[t]=e}else d.shadowing=r;if(null!=o)if("object"==typeof o){let[t,e]=Object.entries(o)[0];d[t]=e}else d.shape=o;if(null!=s)if("object"==typeof s){let[t,e]=Object.entries(s)[0];d[t]=e}else d.sprite=s;if(null!=c)if("object"==typeof c){let[t,e]=Object.entries(c)[0];d[t]=e}else d.techn=c;if(null!=l)if("object"==typeof l){let[t,e]=Object.entries(l)[0];d[t]=e}else d.legendText=l;if(null!=u)if("object"==typeof u){let[t,e]=Object.entries(u)[0];d[t]=e}else d.legendSprite=u}},updateRelStyle:function(t,e,n,i,a,r,o){const s=Ha.find((t=>t.from===e&&t.to===n));if(void 0!==s){if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];s[t]=e}else s.textColor=i;if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];s[t]=e}else s.lineColor=a;if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];s[t]=parseInt(e)}else s.offsetX=parseInt(r);if(null!=o)if("object"==typeof o){let[t,e]=Object.entries(o)[0];s[t]=parseInt(e)}else s.offsetY=parseInt(o)}},updateLayoutConfig:function(t,e,n){let i=qa,a=Wa;if("object"==typeof e){const t=Object.values(e)[0];i=parseInt(t)}else i=parseInt(e);if("object"==typeof n){const t=Object.values(n)[0];a=parseInt(t)}else a=parseInt(n);i>=1&&(qa=i),a>=1&&(Wa=a)},autoWrap:Za,setWrap:function(t){Va=t},getC4ShapeArray:Ga,getC4Shape:function(t){return Pa.find((e=>e.alias===t))},getC4ShapeKeys:function(t){return Object.keys(Ga(t))},getBoundarys:function(t){return null==t?za:za.filter((e=>e.parentBoundary===t))},getCurrentBoundaryParse:function(){return ja},getParentBoundaryParse:function(){return $a},getRels:function(){return Ha},getTitle:function(){return Ua},getC4Type:function(){return Ya},getC4ShapeInRow:function(){return qa},getC4BoundaryInRow:function(){return Wa},setAccTitle:Li,getAccTitle:Oi,getAccDescription:Ni,setAccDescription:Mi,parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().c4,clear:function(){Pa=[],za=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],$a="",ja="global",Fa=[""],Ha=[],Fa=[""],Ua="",Va=!1,qa=4,Wa=2},LINETYPE:{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},ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},setTitle:function(t){let e=Nt(t,ai());Ua=e},setC4Type:function(t){let e=Nt(t,ai());Ya=e}},Xa=function(t,e){const n=t.append("rect");if(n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),n.attr("rx",e.rx),n.attr("ry",e.ry),"undefined"!==e.attrs&&null!==e.attrs)for(let i in e.attrs)n.attr(i,e.attrs[i]);return"undefined"!==e.class&&n.attr("class",e.class),n},Ja=function(t,e,n,i,a,r){const s=t.append("image");s.attr("width",e),s.attr("height",n),s.attr("x",i),s.attr("y",a);let c=r.startsWith("data:image/png;base64")?r:(0,o.Nm)(r);s.attr("xlink:href",c)},Qa=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},tr=(t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),er=function(){function t(t,e,n,a,r,o,s){i(e.append("text").attr("x",n+r/2).attr("y",a+o/2+5).style("text-anchor","middle").text(t),s)}function e(t,e,n,a,r,o,s,c){const{fontSize:l,fontFamily:u,fontWeight:d}=c,h=t.split(zt.lineBreakRegex);for(let f=0;f<h.length;f++){const t=f*l-l*(h.length-1)/2,o=e.append("text").attr("x",n+r/2).attr("y",a).style("text-anchor","middle").attr("dominant-baseline","middle").style("font-size",l).style("font-weight",d).style("font-family",u);o.append("tspan").attr("dy",t).text(h[f]).attr("alignment-baseline","mathematical"),i(o,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,o,0,c,l),i(d,c)}function i(t,e){for(const n in e)e.hasOwnProperty(n)&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}(),nr=function(t,e,n){const i=t.append("g");let a=e.bgColor?e.bgColor:"none",r=e.borderColor?e.borderColor:"#444444",o=e.fontColor?e.fontColor:"black",s={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(s={"stroke-width":1});let c={x:e.x,y:e.y,fill:a,stroke:r,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:s};Xa(i,c);let l=n.boundaryFont();l.fontWeight="bold",l.fontSize=l.fontSize+2,l.fontColor=o,er(n)(e.label.text,i,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},l),e.type&&""!==e.type.text&&(l=n.boundaryFont(),l.fontColor=o,er(n)(e.type.text,i,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},l)),e.descr&&""!==e.descr.text&&(l=n.boundaryFont(),l.fontSize=l.fontSize-2,l.fontColor=o,er(n)(e.descr.text,i,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},l))},ir=function(t,e,n){var i;let a=e.bgColor?e.bgColor:n[e.typeC4Shape.text+"_bg_color"],r=e.borderColor?e.borderColor:n[e.typeC4Shape.text+"_border_color"],o=e.fontColor?e.fontColor:"#FFFFFF",s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":s="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":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII="}const c=t.append("g");c.attr("class","person-man");const l=Qa();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":l.x=e.x,l.y=e.y,l.fill=a,l.width=e.width,l.height=e.height,l.stroke=r,l.rx=2.5,l.ry=2.5,l.attrs={"stroke-width":.5},Xa(c,l);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":c.append("path").attr("fill",a).attr("stroke-width","0.5").attr("stroke",r).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",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),c.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":c.append("path").attr("fill",a).attr("stroke-width","0.5").attr("stroke",r).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",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),c.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2))}let u=tr(n,e.typeC4Shape.text);switch(c.append("text").attr("fill",o).attr("font-family",u.fontFamily).attr("font-size",u.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":Ja(c,48,48,e.x+e.width/2-24,e.y+e.image.Y,s)}let d=n[e.typeC4Shape.text+"Font"]();return d.fontWeight="bold",d.fontSize=d.fontSize+2,d.fontColor=o,er(n)(e.label.text,c,e.x,e.y+e.label.Y,e.width,e.height,{fill:o},d),d=n[e.typeC4Shape.text+"Font"](),d.fontColor=o,e.techn&&""!==(null==(i=e.techn)?void 0:i.text)?er(n)(e.techn.text,c,e.x,e.y+e.techn.Y,e.width,e.height,{fill:o,"font-style":"italic"},d):e.type&&""!==e.type.text&&er(n)(e.type.text,c,e.x,e.y+e.type.Y,e.width,e.height,{fill:o,"font-style":"italic"},d),e.descr&&""!==e.descr.text&&(d=n.personFont(),d.fontColor=o,er(n)(e.descr.text,c,e.x,e.y+e.descr.Y,e.width,e.height,{fill:o},d)),e.height},ar=(t,e,n)=>{const i=t.append("g");let a=0;for(let r of e){let t=r.textColor?r.textColor:"#444444",e=r.lineColor?r.lineColor:"#444444",o=r.offsetX?parseInt(r.offsetX):0,s=r.offsetY?parseInt(r.offsetY):0,c="";if(0===a){let t=i.append("line");t.attr("x1",r.startPoint.x),t.attr("y1",r.startPoint.y),t.attr("x2",r.endPoint.x),t.attr("y2",r.endPoint.y),t.attr("stroke-width","1"),t.attr("stroke",e),t.style("fill","none"),"rel_b"!==r.type&&t.attr("marker-end","url("+c+"#arrowhead)"),"birel"!==r.type&&"rel_b"!==r.type||t.attr("marker-start","url("+c+"#arrowend)"),a=-1}else{let t=i.append("path");t.attr("fill","none").attr("stroke-width","1").attr("stroke",e).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",r.startPoint.x).replaceAll("starty",r.startPoint.y).replaceAll("controlx",r.startPoint.x+(r.endPoint.x-r.startPoint.x)/2-(r.endPoint.x-r.startPoint.x)/4).replaceAll("controly",r.startPoint.y+(r.endPoint.y-r.startPoint.y)/2).replaceAll("stopx",r.endPoint.x).replaceAll("stopy",r.endPoint.y)),"rel_b"!==r.type&&t.attr("marker-end","url("+c+"#arrowhead)"),"birel"!==r.type&&"rel_b"!==r.type||t.attr("marker-start","url("+c+"#arrowend)")}let l=n.messageFont();er(n)(r.label.text,i,Math.min(r.startPoint.x,r.endPoint.x)+Math.abs(r.endPoint.x-r.startPoint.x)/2+o,Math.min(r.startPoint.y,r.endPoint.y)+Math.abs(r.endPoint.y-r.startPoint.y)/2+s,r.label.width,r.label.height,{fill:t},l),r.techn&&""!==r.techn.text&&(l=n.messageFont(),er(n)("["+r.techn.text+"]",i,Math.min(r.startPoint.x,r.endPoint.x)+Math.abs(r.endPoint.x-r.startPoint.x)/2+o,Math.min(r.startPoint.y,r.endPoint.y)+Math.abs(r.endPoint.y-r.startPoint.y)/2+n.messageFontSize+5+s,Math.max(r.label.width,r.techn.width),r.techn.height,{fill:t,"font-style":"italic"},l))}},rr=function(t){t.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")},or=function(t){t.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")},sr=function(t){t.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")},cr=function(t){const e=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);e.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"),e.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")},lr=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")},ur=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")},dr=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")};o.Nm;let hr=0,fr=0,gr=4,pr=2;Ma.yy=Ka;let br={};class mr{constructor(t){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,yr(t.db.getConfig())}setData(t,e,n,i){this.nextData.startx=this.data.startx=t,this.nextData.stopx=this.data.stopx=e,this.nextData.starty=this.data.starty=n,this.nextData.stopy=this.data.stopy=i}updateVal(t,e,n,i){void 0===t[e]?t[e]=n:t[e]=i(n,t[e])}insert(t){this.nextData.cnt=this.nextData.cnt+1;let e=this.nextData.startx===this.nextData.stopx?this.nextData.stopx+t.margin:this.nextData.stopx+2*t.margin,n=e+t.width,i=this.nextData.starty+2*t.margin,a=i+t.height;(e>=this.data.widthLimit||n>=this.data.widthLimit||this.nextData.cnt>gr)&&(e=this.nextData.startx+t.margin+br.nextLinePaddingX,i=this.nextData.stopy+2*t.margin,this.nextData.stopx=n=e+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=a=i+t.height,this.nextData.cnt=1),t.x=e,t.y=i,this.updateVal(this.data,"startx",e,Math.min),this.updateVal(this.data,"starty",i,Math.min),this.updateVal(this.data,"stopx",n,Math.max),this.updateVal(this.data,"stopy",a,Math.max),this.updateVal(this.nextData,"startx",e,Math.min),this.updateVal(this.nextData,"starty",i,Math.min),this.updateVal(this.nextData,"stopx",n,Math.max),this.updateVal(this.nextData,"stopy",a,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},yr(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}}const yr=function(t){Cn(br,t),t.fontFamily&&(br.personFontFamily=br.systemFontFamily=br.messageFontFamily=t.fontFamily),t.fontSize&&(br.personFontSize=br.systemFontSize=br.messageFontSize=t.fontSize),t.fontWeight&&(br.personFontWeight=br.systemFontWeight=br.messageFontWeight=t.fontWeight)},vr=(t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),wr=t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight});function xr(t,e,n,i,a){if(!e[t].width)if(n)e[t].text=Fn(e[t].text,a,i),e[t].textLines=e[t].text.split(zt.lineBreakRegex).length,e[t].width=a,e[t].height=$n(e[t].text,i);else{let n=e[t].text.split(zt.lineBreakRegex);e[t].textLines=n.length;let a=0;e[t].height=0,e[t].width=0;for(const r of n)e[t].width=Math.max(zn(r,i),e[t].width),a=$n(r,i),e[t].height=e[t].height+a}}const Rr=function(t,e,n){e.x=n.data.startx,e.y=n.data.starty,e.width=n.data.stopx-n.data.startx,e.height=n.data.stopy-n.data.starty,e.label.y=br.c4ShapeMargin-35;let i=e.wrap&&br.wrap,a=wr(br);a.fontSize=a.fontSize+2,a.fontWeight="bold",xr("label",e,i,a,zn(e.label.text,a)),nr(t,e,br)},_r=function(t,e,n,i){let a=0;for(const r of i){a=0;const i=n[r];let o=vr(br,i.typeC4Shape.text);switch(o.fontSize=o.fontSize-2,i.typeC4Shape.width=zn("<<"+i.typeC4Shape.text+">>",o),i.typeC4Shape.height=o.fontSize+2,i.typeC4Shape.Y=br.c4ShapePadding,a=i.typeC4Shape.Y+i.typeC4Shape.height-4,i.image={width:0,height:0,Y:0},i.typeC4Shape.text){case"person":case"external_person":i.image.width=48,i.image.height=48,i.image.Y=a,a=i.image.Y+i.image.height}i.sprite&&(i.image.width=48,i.image.height=48,i.image.Y=a,a=i.image.Y+i.image.height);let s=i.wrap&&br.wrap,c=br.width-2*br.c4ShapePadding,l=vr(br,i.typeC4Shape.text);if(l.fontSize=l.fontSize+2,l.fontWeight="bold",xr("label",i,s,l,c),i.label.Y=a+8,a=i.label.Y+i.label.height,i.type&&""!==i.type.text){i.type.text="["+i.type.text+"]",xr("type",i,s,vr(br,i.typeC4Shape.text),c),i.type.Y=a+5,a=i.type.Y+i.type.height}else if(i.techn&&""!==i.techn.text){i.techn.text="["+i.techn.text+"]",xr("techn",i,s,vr(br,i.techn.text),c),i.techn.Y=a+5,a=i.techn.Y+i.techn.height}let u=a,d=i.label.width;if(i.descr&&""!==i.descr.text){xr("descr",i,s,vr(br,i.typeC4Shape.text),c),i.descr.Y=a+20,a=i.descr.Y+i.descr.height,d=Math.max(i.label.width,i.descr.width),u=a-5*i.descr.textLines}d+=br.c4ShapePadding,i.width=Math.max(i.width||br.width,d,br.width),i.height=Math.max(i.height||br.height,u,br.height),i.margin=i.margin||br.c4ShapeMargin,t.insert(i),ir(e,i,br)}t.bumpLastMargin(br.c4ShapeMargin)};class kr{constructor(t,e){this.x=t,this.y=e}}let Er=function(t,e){let n=t.x,i=t.y,a=e.x,r=e.y,o=n+t.width/2,s=i+t.height/2,c=Math.abs(n-a),l=Math.abs(i-r),u=l/c,d=t.height/t.width,h=null;return i==r&&n<a?h=new kr(n+t.width,s):i==r&&n>a?h=new kr(n,s):n==a&&i<r?h=new kr(o,i+t.height):n==a&&i>r&&(h=new kr(o,i)),n>a&&i<r?h=d>=u?new kr(n,s+u*t.width/2):new kr(o-c/l*t.height/2,i+t.height):n<a&&i<r?h=d>=u?new kr(n+t.width,s+u*t.width/2):new kr(o+c/l*t.height/2,i+t.height):n<a&&i>r?h=d>=u?new kr(n+t.width,s-u*t.width/2):new kr(o+t.height/2*c/l,i):n>a&&i>r&&(h=d>=u?new kr(n,s-t.width/2*u):new kr(o-t.height/2*c/l,i)),h},Cr=function(t,e){let n={x:0,y:0};n.x=e.x+e.width/2,n.y=e.y+e.height/2;let i=Er(t,n);return n.x=t.x+t.width/2,n.y=t.y+t.height/2,{startPoint:i,endPoint:Er(e,n)}};function Sr(t,e,n,i,a){let r=new mr(a);r.data.widthLimit=n.data.widthLimit/Math.min(pr,i.length);for(let[o,s]of i.entries()){let i=0;s.image={width:0,height:0,Y:0},s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height);let c=s.wrap&&br.wrap,l=wr(br);if(l.fontSize=l.fontSize+2,l.fontWeight="bold",xr("label",s,c,l,r.data.widthLimit),s.label.Y=i+8,i=s.label.Y+s.label.height,s.type&&""!==s.type.text){s.type.text="["+s.type.text+"]",xr("type",s,c,wr(br),r.data.widthLimit),s.type.Y=i+5,i=s.type.Y+s.type.height}if(s.descr&&""!==s.descr.text){let t=wr(br);t.fontSize=t.fontSize-2,xr("descr",s,c,t,r.data.widthLimit),s.descr.Y=i+20,i=s.descr.Y+s.descr.height}if(0==o||o%pr==0){let t=n.data.startx+br.diagramMarginX,e=n.data.stopy+br.diagramMarginY+i;r.setData(t,t,e,e)}else{let t=r.data.stopx!==r.data.startx?r.data.stopx+br.diagramMarginX:r.data.startx,e=r.data.starty;r.setData(t,t,e,e)}r.name=s.alias;let u=a.db.getC4ShapeArray(s.alias),d=a.db.getC4ShapeKeys(s.alias);d.length>0&&_r(r,t,u,d),e=s.alias;let h=a.db.getBoundarys(e);h.length>0&&Sr(t,e,r,h,a),"global"!==s.alias&&Rr(t,s,r),n.data.stopy=Math.max(r.data.stopy+br.c4ShapeMargin,n.data.stopy),n.data.stopx=Math.max(r.data.stopx+br.c4ShapeMargin,n.data.stopx),hr=Math.max(hr,n.data.stopx),fr=Math.max(fr,n.data.stopy)}}const Tr={drawPersonOrSystemArray:_r,drawBoundary:Rr,setConf:yr,draw:function(t,e,n,i){br=ai().c4;const a=ai().securityLevel;let r;"sandbox"===a&&(r=(0,s.Ys)("#i"+e));const o="sandbox"===a?(0,s.Ys)(r.nodes()[0].contentDocument.body):(0,s.Ys)("body");let c=i.db;i.db.setWrap(br.wrap),gr=c.getC4ShapeInRow(),pr=c.getC4BoundaryInRow(),Dt.debug(`C:${JSON.stringify(br,null,2)}`);const l="sandbox"===a?o.select(`[id="${e}"]`):(0,s.Ys)(`[id="${e}"]`);ur(l),lr(l),dr(l);let u=new mr(i);u.setData(br.diagramMarginX,br.diagramMarginX,br.diagramMarginY,br.diagramMarginY),u.data.widthLimit=screen.availWidth,hr=br.diagramMarginX,fr=br.diagramMarginY;const d=i.db.getTitle();Sr(l,"",u,i.db.getBoundarys(""),i),rr(l),or(l),cr(l),sr(l),function(t,e,n,i){let a=0;for(let o of e){a+=1;let t=o.wrap&&br.wrap,e={fontFamily:(r=br).messageFontFamily,fontSize:r.messageFontSize,fontWeight:r.messageFontWeight};"C4Dynamic"===i.db.getC4Type()&&(o.label.text=a+": "+o.label.text);let s=zn(o.label.text,e);xr("label",o,t,e,s),o.techn&&""!==o.techn.text&&(s=zn(o.techn.text,e),xr("techn",o,t,e,s)),o.descr&&""!==o.descr.text&&(s=zn(o.descr.text,e),xr("descr",o,t,e,s));let c=n(o.from),l=n(o.to),u=Cr(c,l);o.startPoint=u.startPoint,o.endPoint=u.endPoint}var r;ar(t,e,br)}(l,i.db.getRels(),i.db.getC4Shape,i),u.data.stopx=hr,u.data.stopy=fr;const h=u.data;let f=h.stopy-h.starty+2*br.diagramMarginY;const g=h.stopx-h.startx+2*br.diagramMarginX;d&&l.append("text").text(d).attr("x",(h.stopx-h.startx)/2-4*br.diagramMarginX).attr("y",h.starty+br.diagramMarginY),di(l,f,g,br.useMaxWidth);const p=d?60:0;l.attr("viewBox",h.startx-br.diagramMarginX+" -"+(br.diagramMarginY+p)+" "+g+" "+(f+p)),Dt.debug("models:",h)}};var Ar=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,3],i=[1,7],a=[1,8],r=[1,9],o=[1,10],s=[1,13],c=[1,12],l=[1,16,25],u=[1,20],d=[1,32],h=[1,33],f=[1,34],g=[1,36],p=[1,39],b=[1,37],m=[1,38],y=[1,44],v=[1,45],w=[1,40],x=[1,41],R=[1,42],_=[1,43],k=[1,48],E=[1,49],C=[1,50],S=[1,51],T=[16,25],A=[1,65],D=[1,66],I=[1,67],L=[1,68],O=[1,69],M=[1,70],N=[1,71],B=[1,80],P=[16,25,32,45,46,54,60,61,62,63,64,65,66,71,73],F=[16,25,30,32,45,46,50,54,60,61,62,63,64,65,66,71,73,88,89,90,91],j=[5,8,9,10,11,16,19,23,25],$=[54,88,89,90,91],z=[54,65,66,88,89,90,91],H=[54,60,61,62,63,64,88,89,90,91],U=[16,25,32],V=[1,107],q={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statments:5,direction:6,directive:7,direction_tb:8,direction_bt:9,direction_rl:10,direction_lr:11,graphConfig:12,openDirective:13,typeDirective:14,closeDirective:15,NEWLINE:16,":":17,argDirective:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,CLASS_DIAGRAM:23,statements:24,EOF:25,statement:26,className:27,alphaNumToken:28,classLiteralName:29,GENERICTYPE:30,relationStatement:31,LABEL:32,classStatement:33,methodStatement:34,annotationStatement:35,clickStatement:36,cssClassStatement:37,noteStatement:38,acc_title:39,acc_title_value:40,acc_descr:41,acc_descr_value:42,acc_descr_multiline_value:43,CLASS:44,STYLE_SEPARATOR:45,STRUCT_START:46,members:47,STRUCT_STOP:48,ANNOTATION_START:49,ANNOTATION_END:50,MEMBER:51,SEPARATOR:52,relation:53,STR:54,NOTE_FOR:55,noteText:56,NOTE:57,relationType:58,lineType: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,CSSCLASS:74,commentToken:75,textToken:76,graphCodeTokens:77,textNoTagsToken:78,TAGSTART:79,TAGEND:80,"==":81,"--":82,PCT:83,DEFAULT:84,SPACE:85,MINUS:86,keywords:87,UNICODE_TEXT:88,NUM:89,ALPHA:90,BQUOTE_STR:91,$accept:0,$end:1},terminals_:{2:"error",5:"statments",8:"direction_tb",9:"direction_bt",10:"direction_rl",11:"direction_lr",16:"NEWLINE",17:":",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",23:"CLASS_DIAGRAM",25:"EOF",30:"GENERICTYPE",32:"LABEL",39:"acc_title",40:"acc_title_value",41:"acc_descr",42:"acc_descr_value",43:"acc_descr_multiline_value",44:"CLASS",45:"STYLE_SEPARATOR",46:"STRUCT_START",48:"STRUCT_STOP",49:"ANNOTATION_START",50:"ANNOTATION_END",51:"MEMBER",52:"SEPARATOR",54:"STR",55:"NOTE_FOR",57:"NOTE",60:"AGGREGATION",61:"EXTENSION",62:"COMPOSITION",63:"DEPENDENCY",64:"LOLLIPOP",65:"LINE",66:"DOTTED_LINE",67:"CALLBACK",68:"LINK",69:"LINK_TARGET",70:"CLICK",71:"CALLBACK_NAME",72:"CALLBACK_ARGS",73:"HREF",74:"CSSCLASS",77:"graphCodeTokens",79:"TAGSTART",80:"TAGEND",81:"==",82:"--",83:"PCT",84:"DEFAULT",85:"SPACE",86:"MINUS",87:"keywords",88:"UNICODE_TEXT",89:"NUM",90:"ALPHA",91:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[3,1],[3,2],[6,1],[6,1],[6,1],[6,1],[4,1],[7,4],[7,6],[13,1],[14,1],[18,1],[15,1],[12,4],[24,1],[24,2],[24,3],[27,1],[27,1],[27,2],[27,2],[27,2],[26,1],[26,2],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,2],[26,2],[26,1],[33,2],[33,4],[33,5],[33,7],[35,4],[47,1],[47,2],[34,1],[34,2],[34,1],[34,1],[31,3],[31,4],[31,4],[31,5],[38,3],[38,2],[53,3],[53,2],[53,2],[53,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[36,3],[36,4],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[37,3],[75,1],[75,1],[76,1],[76,1],[76,1],[76,1],[76,1],[76,1],[76,1],[78,1],[78,1],[78,1],[78,1],[28,1],[28,1],[28,1],[29,1],[56,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 5:i.setDirection("TB");break;case 6:i.setDirection("BT");break;case 7:i.setDirection("RL");break;case 8:i.setDirection("LR");break;case 12:i.parseDirective("%%{","open_directive");break;case 13:i.parseDirective(r[s],"type_directive");break;case 14:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 15:i.parseDirective("}%%","close_directive","class");break;case 20:case 21:this.$=r[s];break;case 22:this.$=r[s-1]+r[s];break;case 23:case 24:this.$=r[s-1]+"~"+r[s];break;case 25:i.addRelation(r[s]);break;case 26:r[s-1].title=i.cleanupLabel(r[s]),i.addRelation(r[s-1]);break;case 35:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 36:case 37:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 38:i.addClass(r[s]);break;case 39:i.addClass(r[s-2]),i.setCssClass(r[s-2],r[s]);break;case 40:i.addClass(r[s-3]),i.addMembers(r[s-3],r[s-1]);break;case 41:i.addClass(r[s-5]),i.setCssClass(r[s-5],r[s-3]),i.addMembers(r[s-5],r[s-1]);break;case 42:i.addAnnotation(r[s],r[s-2]);break;case 43:this.$=[r[s]];break;case 44:r[s].push(r[s-1]),this.$=r[s];break;case 45:case 47:case 48:break;case 46:i.addMember(r[s-1],i.cleanupLabel(r[s]));break;case 49:this.$={id1:r[s-2],id2:r[s],relation:r[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 50:this.$={id1:r[s-3],id2:r[s],relation:r[s-1],relationTitle1:r[s-2],relationTitle2:"none"};break;case 51:this.$={id1:r[s-3],id2:r[s],relation:r[s-2],relationTitle1:"none",relationTitle2:r[s-1]};break;case 52:this.$={id1:r[s-4],id2:r[s],relation:r[s-2],relationTitle1:r[s-3],relationTitle2:r[s-1]};break;case 53:i.addNote(r[s],r[s-1]);break;case 54:i.addNote(r[s]);break;case 55:this.$={type1:r[s-2],type2:r[s],lineType:r[s-1]};break;case 56:this.$={type1:"none",type2:r[s],lineType:r[s-1]};break;case 57:this.$={type1:r[s-1],type2:"none",lineType:r[s]};break;case 58:this.$={type1:"none",type2:"none",lineType:r[s]};break;case 59:this.$=i.relationType.AGGREGATION;break;case 60:this.$=i.relationType.EXTENSION;break;case 61:this.$=i.relationType.COMPOSITION;break;case 62:this.$=i.relationType.DEPENDENCY;break;case 63:this.$=i.relationType.LOLLIPOP;break;case 64:this.$=i.lineType.LINE;break;case 65:this.$=i.lineType.DOTTED_LINE;break;case 66:case 72:this.$=r[s-2],i.setClickEvent(r[s-1],r[s]);break;case 67:case 73:this.$=r[s-3],i.setClickEvent(r[s-2],r[s-1]),i.setTooltip(r[s-2],r[s]);break;case 68:case 76:this.$=r[s-2],i.setLink(r[s-1],r[s]);break;case 69:case 77:this.$=r[s-3],i.setLink(r[s-2],r[s-1],r[s]);break;case 70:case 78:this.$=r[s-3],i.setLink(r[s-2],r[s-1]),i.setTooltip(r[s-2],r[s]);break;case 71:case 79:this.$=r[s-4],i.setLink(r[s-3],r[s-2],r[s]),i.setTooltip(r[s-3],r[s-1]);break;case 74:this.$=r[s-3],i.setClickEvent(r[s-2],r[s-1],r[s]);break;case 75:this.$=r[s-4],i.setClickEvent(r[s-3],r[s-2],r[s-1]),i.setTooltip(r[s-3],r[s]);break;case 80:i.setCssClass(r[s-1],r[s])}},table:[{3:1,4:2,5:n,6:4,7:5,8:i,9:a,10:r,11:o,12:6,13:11,19:s,23:c},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{3:14,4:2,5:n,6:4,7:5,8:i,9:a,10:r,11:o,12:6,13:11,19:s,23:c},{1:[2,9]},e(l,[2,5]),e(l,[2,6]),e(l,[2,7]),e(l,[2,8]),{14:15,20:[1,16]},{16:[1,17]},{20:[2,12]},{1:[2,4]},{15:18,17:[1,19],22:u},e([17,22],[2,13]),{6:31,7:30,8:i,9:a,10:r,11:o,13:11,19:s,24:21,26:22,27:35,28:46,29:47,31:23,33:24,34:25,35:26,36:27,37:28,38:29,39:d,41:h,43:f,44:g,49:p,51:b,52:m,55:y,57:v,67:w,68:x,70:R,74:_,88:k,89:E,90:C,91:S},{16:[1,52]},{18:53,21:[1,54]},{16:[2,15]},{25:[1,55]},{16:[1,56],25:[2,17]},e(T,[2,25],{32:[1,57]}),e(T,[2,27]),e(T,[2,28]),e(T,[2,29]),e(T,[2,30]),e(T,[2,31]),e(T,[2,32]),e(T,[2,33]),e(T,[2,34]),{40:[1,58]},{42:[1,59]},e(T,[2,37]),e(T,[2,45],{53:60,58:63,59:64,32:[1,62],54:[1,61],60:A,61:D,62:I,63:L,64:O,65:M,66:N}),{27:72,28:46,29:47,88:k,89:E,90:C,91:S},e(T,[2,47]),e(T,[2,48]),{28:73,88:k,89:E,90:C},{27:74,28:46,29:47,88:k,89:E,90:C,91:S},{27:75,28:46,29:47,88:k,89:E,90:C,91:S},{27:76,28:46,29:47,88:k,89:E,90:C,91:S},{54:[1,77]},{27:78,28:46,29:47,88:k,89:E,90:C,91:S},{54:B,56:79},e(P,[2,20],{28:46,29:47,27:81,30:[1,82],88:k,89:E,90:C,91:S}),e(P,[2,21],{30:[1,83]}),e(F,[2,94]),e(F,[2,95]),e(F,[2,96]),e([16,25,30,32,45,46,54,60,61,62,63,64,65,66,71,73],[2,97]),e(j,[2,10]),{15:84,22:u},{22:[2,14]},{1:[2,16]},{6:31,7:30,8:i,9:a,10:r,11:o,13:11,19:s,24:85,25:[2,18],26:22,27:35,28:46,29:47,31:23,33:24,34:25,35:26,36:27,37:28,38:29,39:d,41:h,43:f,44:g,49:p,51:b,52:m,55:y,57:v,67:w,68:x,70:R,74:_,88:k,89:E,90:C,91:S},e(T,[2,26]),e(T,[2,35]),e(T,[2,36]),{27:86,28:46,29:47,54:[1,87],88:k,89:E,90:C,91:S},{53:88,58:63,59:64,60:A,61:D,62:I,63:L,64:O,65:M,66:N},e(T,[2,46]),{59:89,65:M,66:N},e($,[2,58],{58:90,60:A,61:D,62:I,63:L,64:O}),e(z,[2,59]),e(z,[2,60]),e(z,[2,61]),e(z,[2,62]),e(z,[2,63]),e(H,[2,64]),e(H,[2,65]),e(T,[2,38],{45:[1,91],46:[1,92]}),{50:[1,93]},{54:[1,94]},{54:[1,95]},{71:[1,96],73:[1,97]},{28:98,88:k,89:E,90:C},{54:B,56:99},e(T,[2,54]),e(T,[2,98]),e(P,[2,22]),e(P,[2,23]),e(P,[2,24]),{16:[1,100]},{25:[2,19]},e(U,[2,49]),{27:101,28:46,29:47,88:k,89:E,90:C,91:S},{27:102,28:46,29:47,54:[1,103],88:k,89:E,90:C,91:S},e($,[2,57],{58:104,60:A,61:D,62:I,63:L,64:O}),e($,[2,56]),{28:105,88:k,89:E,90:C},{47:106,51:V},{27:108,28:46,29:47,88:k,89:E,90:C,91:S},e(T,[2,66],{54:[1,109]}),e(T,[2,68],{54:[1,111],69:[1,110]}),e(T,[2,72],{54:[1,112],72:[1,113]}),e(T,[2,76],{54:[1,115],69:[1,114]}),e(T,[2,80]),e(T,[2,53]),e(j,[2,11]),e(U,[2,51]),e(U,[2,50]),{27:116,28:46,29:47,88:k,89:E,90:C,91:S},e($,[2,55]),e(T,[2,39],{46:[1,117]}),{48:[1,118]},{47:119,48:[2,43],51:V},e(T,[2,42]),e(T,[2,67]),e(T,[2,69]),e(T,[2,70],{69:[1,120]}),e(T,[2,73]),e(T,[2,74],{54:[1,121]}),e(T,[2,77]),e(T,[2,78],{69:[1,122]}),e(U,[2,52]),{47:123,51:V},e(T,[2,40]),{48:[2,44]},e(T,[2,71]),e(T,[2,75]),e(T,[2,79]),{48:[1,124]},e(T,[2,41])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],6:[2,9],13:[2,12],14:[2,4],20:[2,15],54:[2,14],55:[2,16],85:[2,19],119:[2,44]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},W=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),19;case 1:return 8;case 2:return 9;case 3:return 10;case 4:return 11;case 5:return this.begin("type_directive"),20;case 6:return this.popState(),this.begin("arg_directive"),17;case 7:return this.popState(),this.popState(),22;case 8:return 21;case 9:case 10:case 19:case 27:break;case 11:return this.begin("acc_title"),39;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),41;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:case 39:case 42:case 45:case 48:case 51:case 54:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:return 16;case 20:case 21:return 23;case 22:return this.begin("struct"),46;case 23:return"EDGE_STATE";case 24:return"EOF_IN_STRUCT";case 25:return"OPEN_IN_STRUCT";case 26:return this.popState(),48;case 28:return"MEMBER";case 29:return 44;case 30:return 74;case 31:return 67;case 32:return 68;case 33:return 70;case 34:return 55;case 35:return 57;case 36:return 49;case 37:return 50;case 38:this.begin("generic");break;case 40:return"GENERICTYPE";case 41:this.begin("string");break;case 43:return"STR";case 44:this.begin("bqstring");break;case 46:return"BQUOTE_STR";case 47:this.begin("href");break;case 49:return 73;case 50:this.begin("callback_name");break;case 52:this.popState(),this.begin("callback_args");break;case 53:return 71;case 55:return 72;case 56:case 57:case 58:case 59:return 69;case 60:case 61:return 61;case 62:case 63:return 63;case 64:return 62;case 65:return 60;case 66:return 64;case 67:return 65;case 68:return 66;case 69:return 32;case 70:return 45;case 71:return 86;case 72:return"DOT";case 73:return"PLUS";case 74:return 83;case 75:case 76:return"EQUALS";case 77:return 90;case 78:return"PUNCTUATION";case 79:return 89;case 80:return 88;case 81:return 85;case 82:return 25}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\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)/,/^(?:[{])/,/^(?:\[\*\])/,/^(?:$)/,/^(?:[{])/,/^(?:[}])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:class\b)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:[~])/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[`])/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:_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)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},callback_args:{rules:[54,55],inclusive:!1},callback_name:{rules:[51,52,53],inclusive:!1},href:{rules:[48,49],inclusive:!1},struct:{rules:[23,24,25,26,27,28],inclusive:!1},generic:{rules:[39,40],inclusive:!1},bqstring:{rules:[45,46],inclusive:!1},string:{rules:[42,43],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,23,29,30,31,32,33,34,35,36,37,38,41,44,47,50,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82],inclusive:!0}}},t);function Y(){this.yy={}}return q.lexer=W,Y.prototype=q,q.Parser=Y,new Y}();Ar.parser=Ar;const Dr=Ar,Ir=(t,e)=>{var n;return"dagre-wrapper"!==(null==(n=null==e?void 0:e.class)?void 0:n.defaultRenderer)&&null!==t.match(/^\s*classDiagram/)},Lr=(t,e)=>{var n;return null!==t.match(/^\s*classDiagram/)&&"dagre-wrapper"===(null==(n=null==e?void 0:e.class)?void 0:n.defaultRenderer)||null!==t.match(/^\s*classDiagram-v2/)},Or="classid-";let Mr=[],Nr={},Br=[],Pr=0,Fr=[];const jr=t=>zt.sanitizeText(t,ai()),$r=function(t){let e="",n=t;if(t.indexOf("~")>0){let i=t.split("~");n=i[0],e=zt.sanitizeText(i[1],ai())}return{className:n,type:e}},zr=function(t){let e=$r(t);void 0===Nr[e.className]&&(Nr[e.className]={id:e.className,type:e.type,cssClasses:[],methods:[],members:[],annotations:[],domId:Or+e.className+"-"+Pr},Pr++)},Hr=function(t){const e=Object.keys(Nr);for(const n of e)if(Nr[n].id===t)return Nr[n].domId},Ur=function(t,e){const n=$r(t).className,i=Nr[n];if("string"==typeof e){const t=e.trim();t.startsWith("<<")&&t.endsWith(">>")?i.annotations.push(jr(t.substring(2,t.length-2))):t.indexOf(")")>0?i.methods.push(jr(t)):t&&i.members.push(jr(t))}},Vr=function(t,e){t.split(",").forEach((function(t){let n=t;t[0].match(/\d/)&&(n=Or+n),void 0!==Nr[n]&&Nr[n].cssClasses.push(e)}))},qr=function(t,e,n){const i=ai();let a=t,r=Hr(a);if("loose"===i.securityLevel&&void 0!==e&&void 0!==Nr[a]){let t=[];if("string"==typeof n){t=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let e=0;e<t.length;e++){let n=t[e].trim();'"'===n.charAt(0)&&'"'===n.charAt(n.length-1)&&(n=n.substr(1,n.length-2)),t[e]=n}}0===t.length&&t.push(r),Fr.push((function(){const n=document.querySelector(`[id="${r}"]`);null!==n&&n.addEventListener("click",(function(){Gn.runFunc(e,...t)}),!1)}))}},Wr=function(t){let e=(0,s.Ys)(".mermaidTooltip");null===(e._groups||e)[0][0]&&(e=(0,s.Ys)("body").append("div").attr("class","mermaidTooltip").style("opacity",0));(0,s.Ys)(t).select("svg").selectAll("g.node").on("mouseover",(function(){const t=(0,s.Ys)(this);if(null===t.attr("title"))return;const n=this.getBoundingClientRect();e.transition().duration(200).style("opacity",".9"),e.text(t.attr("title")).style("left",window.scrollX+n.left+(n.right-n.left)/2+"px").style("top",window.scrollY+n.top-14+document.body.scrollTop+"px"),e.html(e.html().replace(/<br\/>/g,"<br/>")),t.classed("hover",!0)})).on("mouseout",(function(){e.transition().duration(500).style("opacity",0);(0,s.Ys)(this).classed("hover",!1)}))};Fr.push(Wr);let Yr="TB";const Gr={parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},setAccTitle:Li,getAccTitle:Oi,getAccDescription:Ni,setAccDescription:Mi,getConfig:()=>ai().class,addClass:zr,bindFunctions:function(t){Fr.forEach((function(e){e(t)}))},clear:function(){Mr=[],Nr={},Br=[],Fr=[],Fr.push(Wr),Ii()},getClass:function(t){return Nr[t]},getClasses:function(){return Nr},getNotes:function(){return Br},addAnnotation:function(t,e){const n=$r(t).className;Nr[n].annotations.push(e)},addNote:function(t,e){const n={id:`note${Br.length}`,class:e,text:t};Br.push(n)},getRelations:function(){return Mr},addRelation:function(t){Dt.debug("Adding relation: "+JSON.stringify(t)),zr(t.id1),zr(t.id2),t.id1=$r(t.id1).className,t.id2=$r(t.id2).className,t.relationTitle1=zt.sanitizeText(t.relationTitle1.trim(),ai()),t.relationTitle2=zt.sanitizeText(t.relationTitle2.trim(),ai()),Mr.push(t)},getDirection:()=>Yr,setDirection:t=>{Yr=t},addMember:Ur,addMembers:function(t,e){Array.isArray(e)&&(e.reverse(),e.forEach((e=>Ur(t,e))))},cleanupLabel:function(t){return":"===t.substring(0,1)?zt.sanitizeText(t.substr(1).trim(),ai()):jr(t.trim())},lineType:{LINE:0,DOTTED_LINE:1},relationType:{AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3,LOLLIPOP:4},setClickEvent:function(t,e,n){t.split(",").forEach((function(t){qr(t,e,n),Nr[t].haveCallback=!0})),Vr(t,"clickable")},setCssClass:Vr,setLink:function(t,e,n){const i=ai();t.split(",").forEach((function(t){let a=t;t[0].match(/\d/)&&(a=Or+a),void 0!==Nr[a]&&(Nr[a].link=Gn.formatUrl(e,i),"sandbox"===i.securityLevel?Nr[a].linkTarget="_top":Nr[a].linkTarget="string"==typeof n?jr(n):"_blank")})),Vr(t,"clickable")},getTooltip:function(t){return Nr[t].tooltip},setTooltip:function(t,e){const n=ai();t.split(",").forEach((function(t){void 0!==e&&(Nr[t].tooltip=zt.sanitizeText(e,n))}))},lookUpDomId:Hr,setDiagramTitle:Bi,getDiagramTitle:Pi};let Zr=0;const Kr=function(t){let e=t.match(/^([#+~-])?(\w+)(~\w+~|\[])?\s+(\w+) *([$*])?$/),n=t.match(/^([#+|~-])?(\w+) *\( *(.*)\) *([$*])? *(\w*[[\]|~]*\s*\w*~?)$/);return e&&!n?Xr(e):n?Jr(n):Qr(t)},Xr=function(t){let e="",n="";try{let i=t[1]?t[1].trim():"",a=t[2]?t[2].trim():"",r=t[3]?$t(t[3].trim()):"",o=t[4]?t[4].trim():"",s=t[5]?t[5].trim():"";n=i+a+r+" "+o,e=eo(s)}catch(i){n=t}return{displayText:n,cssStyle:e}},Jr=function(t){let e="",n="";try{let i=t[1]?t[1].trim():"",a=t[2]?t[2].trim():"",r=t[3]?$t(t[3].trim()):"",o=t[4]?t[4].trim():"";n=i+a+"("+r+")"+(t[5]?" : "+$t(t[5]).trim():""),e=eo(o)}catch(i){n=t}return{displayText:n,cssStyle:e}},Qr=function(t){let e="",n="",i="",a=t.indexOf("("),r=t.indexOf(")");if(a>1&&r>a&&r<=t.length){let o="",s="",c=t.substring(0,1);c.match(/\w/)?s=t.substring(0,a).trim():(c.match(/[#+~-]/)&&(o=c),s=t.substring(1,a).trim());const l=t.substring(a+1,r);t.substring(r+1,1),n=eo(t.substring(r+1,r+2)),e=o+s+"("+$t(l.trim())+")",r<t.length&&(i=t.substring(r+2).trim(),""!==i&&(i=" : "+$t(i),e+=i))}else e=$t(t);return{displayText:e,cssStyle:n}},to=function(t,e,n,i){let a=Kr(e);const r=t.append("tspan").attr("x",i.padding).text(a.displayText);""!==a.cssStyle&&r.attr("style",a.cssStyle),n||r.attr("dy",i.textHeight)},eo=function(t){switch(t){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}},no=function(t,e,n,i){Dt.debug("Rendering class ",e,n);const a=e.id,r={id:a,label:e.id,width:0,height:0},o=t.append("g").attr("id",i.db.lookUpDomId(a)).attr("class","classGroup");let s;s=e.link?o.append("svg:a").attr("xlink:href",e.link).attr("target",e.linkTarget).append("text").attr("y",n.textHeight+n.padding).attr("x",0):o.append("text").attr("y",n.textHeight+n.padding).attr("x",0);let c=!0;e.annotations.forEach((function(t){const e=s.append("tspan").text("\xab"+t+"\xbb");c||e.attr("dy",n.textHeight),c=!1}));let l=e.id;void 0!==e.type&&""!==e.type&&(l+="<"+e.type+">");const u=s.append("tspan").text(l).attr("class","title");c||u.attr("dy",n.textHeight);const d=s.node().getBBox().height,h=o.append("line").attr("x1",0).attr("y1",n.padding+d+n.dividerMargin/2).attr("y2",n.padding+d+n.dividerMargin/2),f=o.append("text").attr("x",n.padding).attr("y",d+n.dividerMargin+n.textHeight).attr("fill","white").attr("class","classText");c=!0,e.members.forEach((function(t){to(f,t,c,n),c=!1}));const g=f.node().getBBox(),p=o.append("line").attr("x1",0).attr("y1",n.padding+d+n.dividerMargin+g.height).attr("y2",n.padding+d+n.dividerMargin+g.height),b=o.append("text").attr("x",n.padding).attr("y",d+2*n.dividerMargin+g.height+n.textHeight).attr("fill","white").attr("class","classText");c=!0,e.methods.forEach((function(t){to(b,t,c,n),c=!1}));const m=o.node().getBBox();var y=" ";e.cssClasses.length>0&&(y+=e.cssClasses.join(" "));const v=o.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",m.width+2*n.padding).attr("height",m.height+n.padding+.5*n.dividerMargin).attr("class",y).node().getBBox().width;return s.node().childNodes.forEach((function(t){t.setAttribute("x",(v-t.getBBox().width)/2)})),e.tooltip&&s.insert("title").text(e.tooltip),h.attr("x2",v),p.attr("x2",v),r.width=v,r.height=m.height+n.padding+.5*n.dividerMargin,r},io=function(t,e,n,i,a){const r=function(t){switch(t){case a.db.relationType.AGGREGATION:return"aggregation";case a.db.relationType.EXTENSION:return"extension";case a.db.relationType.COMPOSITION:return"composition";case a.db.relationType.DEPENDENCY:return"dependency";case a.db.relationType.LOLLIPOP:return"lollipop"}};e.points=e.points.filter((t=>!Number.isNaN(t.y)));const o=e.points,c=(0,s.jvg)().x((function(t){return t.x})).y((function(t){return t.y})).curve(s.$0Z),l=t.append("path").attr("d",c(o)).attr("id","edge"+Zr).attr("class","relation");let u,d,h="";i.arrowMarkerAbsolute&&(h=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,h=h.replace(/\(/g,"\\("),h=h.replace(/\)/g,"\\)")),1==n.relation.lineType&&l.attr("class","relation dashed-line"),10==n.relation.lineType&&l.attr("class","relation dotted-line"),"none"!==n.relation.type1&&l.attr("marker-start","url("+h+"#"+r(n.relation.type1)+"Start)"),"none"!==n.relation.type2&&l.attr("marker-end","url("+h+"#"+r(n.relation.type2)+"End)");const f=e.points.length;let g,p,b,m,y=Gn.calcLabelPosition(e.points);if(u=y.x,d=y.y,f%2!=0&&f>1){let t=Gn.calcCardinalityPosition("none"!==n.relation.type1,e.points,e.points[0]),i=Gn.calcCardinalityPosition("none"!==n.relation.type2,e.points,e.points[f-1]);Dt.debug("cardinality_1_point "+JSON.stringify(t)),Dt.debug("cardinality_2_point "+JSON.stringify(i)),g=t.x,p=t.y,b=i.x,m=i.y}if(void 0!==n.title){const e=t.append("g").attr("class","classLabel"),a=e.append("text").attr("class","label").attr("x",u).attr("y",d).attr("fill","red").attr("text-anchor","middle").text(n.title);window.label=a;const r=a.node().getBBox();e.insert("rect",":first-child").attr("class","box").attr("x",r.x-i.padding/2).attr("y",r.y-i.padding/2).attr("width",r.width+i.padding).attr("height",r.height+i.padding)}if(Dt.info("Rendering relation "+JSON.stringify(n)),void 0!==n.relationTitle1&&"none"!==n.relationTitle1){t.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",g).attr("y",p).attr("fill","black").attr("font-size","6").text(n.relationTitle1)}if(void 0!==n.relationTitle2&&"none"!==n.relationTitle2){t.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",b).attr("y",m).attr("fill","black").attr("font-size","6").text(n.relationTitle2)}Zr++},ao=function(t,e,n,i){Dt.debug("Rendering note ",e,n);const a=e.id,r={id:a,text:e.text,width:0,height:0},o=t.append("g").attr("id",a).attr("class","classGroup");let s=o.append("text").attr("y",n.textHeight+n.padding).attr("x",0);const c=JSON.parse(`"${e.text}"`).split("\n");c.forEach((function(t){Dt.debug(`Adding line: ${t}`),s.append("tspan").text(t).attr("class","title").attr("dy",n.textHeight)}));const l=o.node().getBBox(),u=o.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",l.width+2*n.padding).attr("height",l.height+c.length*n.textHeight+n.padding+.5*n.dividerMargin).node().getBBox().width;return s.node().childNodes.forEach((function(t){t.setAttribute("x",(u-t.getBBox().width)/2)})),r.width=u,r.height=l.height+c.length*n.textHeight+n.padding+.5*n.dividerMargin,r};let ro={};const oo=function(t){const e=Object.entries(ro).find((e=>e[1].label===t));if(e)return e[0]},so={draw:function(t,e,n,i){const a=ai().class;ro={},Dt.info("Rendering diagram "+t);const r=ai().securityLevel;let o;"sandbox"===r&&(o=(0,s.Ys)("#i"+e));const c="sandbox"===r?(0,s.Ys)(o.nodes()[0].contentDocument.body):(0,s.Ys)("body"),l=c.select(`[id='${e}']`);var u;(u=l).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"),u.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"),u.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"),u.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"),u.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"),u.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"),u.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"),u.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");const d=new lt.k({multigraph:!0});d.setGraph({isMultiGraph:!0}),d.setDefaultEdgeLabel((function(){return{}}));const h=i.db.getClasses(),f=Object.keys(h);for(const s of f){const t=h[s],e=no(l,t,a,i);ro[e.id]=e,d.setNode(e.id,e),Dt.info("Org height: "+e.height)}i.db.getRelations().forEach((function(t){Dt.info("tjoho"+oo(t.id1)+oo(t.id2)+JSON.stringify(t)),d.setEdge(oo(t.id1),oo(t.id2),{relation:t},t.title||"DEFAULT")}));i.db.getNotes().forEach((function(t){Dt.debug(`Adding note: ${JSON.stringify(t)}`);const e=ao(l,t,a,i);ro[e.id]=e,d.setNode(e.id,e),t.class&&t.class in h&&d.setEdge(t.id,oo(t.class),{relation:{id1:t.id,id2:t.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")})),(0,ct.bK)(d),d.nodes().forEach((function(t){void 0!==t&&void 0!==d.node(t)&&(Dt.debug("Node "+t+": "+JSON.stringify(d.node(t))),c.select("#"+(i.db.lookUpDomId(t)||t)).attr("transform","translate("+(d.node(t).x-d.node(t).width/2)+","+(d.node(t).y-d.node(t).height/2)+" )"))})),d.edges().forEach((function(t){void 0!==t&&void 0!==d.edge(t)&&(Dt.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(d.edge(t))),io(l,d.edge(t),d.edge(t).relation,a,i))}));const g=l.node().getBBox(),p=g.width+40,b=g.height+40;di(l,b,p,a.useMaxWidth);const m=`${g.x-20} ${g.y-20} ${p} ${b}`;Dt.debug(`viewBox ${m}`),l.attr("viewBox",m)}},co={extension:(t,e,n)=>{Dt.trace("Making markers for ",n),t.append("defs").append("marker").attr("id",e+"-extensionStart").attr("class","marker extension "+e).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"),t.append("defs").append("marker").attr("id",e+"-extensionEnd").attr("class","marker extension "+e).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")},composition:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-compositionStart").attr("class","marker composition "+e).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",e+"-compositionEnd").attr("class","marker composition "+e).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")},aggregation:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-aggregationStart").attr("class","marker aggregation "+e).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",e+"-aggregationEnd").attr("class","marker aggregation "+e).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")},dependency:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-dependencyStart").attr("class","marker dependency "+e).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"),t.append("defs").append("marker").attr("id",e+"-dependencyEnd").attr("class","marker dependency "+e).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")},lollipop:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","white").attr("cx",6).attr("cy",7).attr("r",6)},point:(t,e)=>{t.append("marker").attr("id",e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 12 20").attr("refX",10).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"),t.append("marker").attr("id",e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",0).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")},circle:(t,e)=>{t.append("marker").attr("id",e+"-circleEnd").attr("class","marker "+e).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"),t.append("marker").attr("id",e+"-circleStart").attr("class","marker "+e).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")},cross:(t,e)=>{t.append("marker").attr("id",e+"-crossEnd").attr("class","marker cross "+e).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"),t.append("marker").attr("id",e+"-crossStart").attr("class","marker cross "+e).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")},barb:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-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")}},lo=(t,e,n,i)=>{e.forEach((e=>{co[e](t,n,i)}))};const uo=(t,e,n,i)=>{let a=t||"";if("object"==typeof a&&(a=a[0]),jt(ai().flowchart.htmlLabels)){a=a.replace(/\\n|\n/g,"<br />"),Dt.info("vertexText"+a);let t=function(t){const e=(0,s.Ys)(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),n=e.append("xhtml:div"),i=t.label,a=t.isNode?"nodeLabel":"edgeLabel";var r,o;return n.html('<span class="'+a+'" '+(t.labelStyle?'style="'+t.labelStyle+'"':"")+">"+i+"</span>"),r=n,(o=t.labelStyle)&&r.attr("style",o),n.style("display","inline-block"),n.style("white-space","nowrap"),n.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}({isNode:i,label:Zh(a).replace(/fa[blrs]?:fa-[\w-]+/g,(t=>`<i class='${t.replace(":"," ")}'></i>`)),labelStyle:e.replace("fill:","color:")});return t}{const t=document.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",e.replace("color:","fill:"));let i=[];i="string"==typeof a?a.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(a)?a:[];for(const e of i){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"),n?i.setAttribute("class","title-row"):i.setAttribute("class","row"),i.textContent=e.trim(),t.appendChild(i)}return t}},ho=(t,e,n,i)=>{let a;a=n||"node default";const r=t.insert("g").attr("class",a).attr("id",e.domId||e.id),o=r.insert("g").attr("class","label").attr("style",e.labelStyle);let c;c=void 0===e.labelText?"":"string"==typeof e.labelText?e.labelText:e.labelText[0];const l=o.node().appendChild(uo(Nt(Zh(c),ai()),e.labelStyle,!1,i));let u=l.getBBox();if(jt(ai().flowchart.htmlLabels)){const t=l.children[0],e=(0,s.Ys)(l);u=t.getBoundingClientRect(),e.attr("width",u.width),e.attr("height",u.height)}const d=e.padding/2;return o.attr("transform","translate("+-u.width/2+", "+-u.height/2+")"),{shapeSvg:r,bbox:u,halfPadding:d,label:o}},fo=(t,e)=>{const n=e.node().getBBox();t.width=n.width,t.height=n.height};function go(t,e,n,i){return t.insert("polygon",":first-child").attr("points",i.map((function(t){return t.x+","+t.y})).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+n/2+")")}let po={},bo={},mo={};const yo=(t,e)=>(Dt.trace("In isDecendant",e," ",t," = ",bo[e].includes(t)),!!bo[e].includes(t)),vo=(t,e,n,i)=>{Dt.warn("Copying children of ",t,"root",i,"data",e.node(t),i);const a=e.children(t)||[];t!==i&&a.push(t),Dt.warn("Copying (nodes) clusterId",t,"nodes",a),a.forEach((a=>{if(e.children(a).length>0)vo(a,e,n,i);else{const r=e.node(a);Dt.info("cp ",a," to ",i," with parent ",t),n.setNode(a,r),i!==e.parent(a)&&(Dt.warn("Setting parent",a,e.parent(a)),n.setParent(a,e.parent(a))),t!==i&&a!==t?(Dt.debug("Setting parent",a,t),n.setParent(a,t)):(Dt.info("In copy ",t,"root",i,"data",e.node(t),i),Dt.debug("Not Setting parent for node=",a,"cluster!==rootId",t!==i,"node!==clusterId",a!==t));const o=e.edges(a);Dt.debug("Copying Edges",o),o.forEach((a=>{Dt.info("Edge",a);const r=e.edge(a.v,a.w,a.name);Dt.info("Edge data",r,i);try{((t,e)=>(Dt.info("Decendants of ",e," is ",bo[e]),Dt.info("Edge is ",t),t.v!==e&&t.w!==e&&(bo[e]?bo[e].includes(t.v)||yo(t.v,e)||yo(t.w,e)||bo[e].includes(t.w):(Dt.debug("Tilt, ",e,",not in decendants"),!1))))(a,i)?(Dt.info("Copying as ",a.v,a.w,r,a.name),n.setEdge(a.v,a.w,r,a.name),Dt.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):Dt.info("Skipping copy of edge ",a.v,"--\x3e",a.w," rootId: ",i," clusterId:",t)}catch(o){Dt.error(o)}}))}Dt.debug("Removing node",a),e.removeNode(a)}))},wo=(t,e)=>{const n=e.children(t);let i=[...n];for(const a of n)mo[a]=t,i=[...i,...wo(a,e)];return i},xo=(t,e)=>{Dt.trace("Searching",t);const n=e.children(t);if(Dt.trace("Searching children of id ",t,n),n.length<1)return Dt.trace("This is a valid node",t),t;for(const i of n){const n=xo(i,e);if(n)return Dt.trace("Found replacement for",t," => ",n),n}},Ro=t=>po[t]&&po[t].externalConnections&&po[t]?po[t].id:t,_o=(t,e)=>{if(Dt.warn("extractor - ",e,ut.c(t),t.children("D")),e>10)return void Dt.error("Bailing out");let n=t.nodes(),i=!1;for(const a of n){const e=t.children(a);i=i||e.length>0}if(i){Dt.debug("Nodes = ",n,e);for(const i of n)if(Dt.debug("Extracting node",i,po,po[i]&&!po[i].externalConnections,!t.parent(i),t.node(i),t.children("D")," Depth ",e),po[i])if(!po[i].externalConnections&&t.children(i)&&t.children(i).length>0){Dt.warn("Cluster without external connections, without a parent and with children",i,e);let n="TB"===t.graph().rankdir?"LR":"TB";po[i]&&po[i].clusterData&&po[i].clusterData.dir&&(n=po[i].clusterData.dir,Dt.warn("Fixing dir",po[i].clusterData.dir,n));const a=new lt.k({multigraph:!0,compound:!0}).setGraph({rankdir:n,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));Dt.warn("Old graph before copy",ut.c(t)),vo(i,t,a,i),t.setNode(i,{clusterNode:!0,id:i,clusterData:po[i].clusterData,labelText:po[i].labelText,graph:a}),Dt.warn("New graph after copy node: (",i,")",ut.c(a)),Dt.debug("Old graph after copy",ut.c(t))}else Dt.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!po[i].externalConnections," no parent: ",!t.parent(i)," children ",t.children(i)&&t.children(i).length>0,t.children("D"),e),Dt.debug(po);else Dt.debug("Not a cluster",i,e);n=t.nodes(),Dt.warn("New list of nodes",n);for(const i of n){const n=t.node(i);Dt.warn(" Now next level",i,n),n.clusterNode&&_o(n.graph,e+1)}}else Dt.debug("Done, no node has children",t.nodes())},ko=(t,e)=>{if(0===e.length)return[];let n=Object.assign(e);return e.forEach((e=>{const i=t.children(e),a=ko(t,i);n=[...n,...a]})),n};function Eo(t,e,n,i){var a=t.x,r=t.y,o=a-i.x,s=r-i.y,c=Math.sqrt(e*e*s*s+n*n*o*o),l=Math.abs(e*n*o/c);i.x<a&&(l=-l);var u=Math.abs(e*n*s/c);return i.y<r&&(u=-u),{x:a+l,y:r+u}}function Co(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p,b;if(a=e.y-t.y,o=t.x-e.x,c=e.x*t.y-t.x*e.y,h=a*n.x+o*n.y+c,f=a*i.x+o*i.y+c,!(0!==h&&0!==f&&So(h,f)||(r=i.y-n.y,s=n.x-i.x,l=i.x*n.y-n.x*i.y,u=r*t.x+s*t.y+l,d=r*e.x+s*e.y+l,0!==u&&0!==d&&So(u,d)||0==(g=a*s-r*o))))return p=Math.abs(g/2),{x:(b=o*l-s*c)<0?(b-p)/g:(b+p)/g,y:(b=r*c-a*l)<0?(b-p)/g:(b+p)/g}}function So(t,e){return t*e>0}const To=(t,e)=>{var n,i,a=t.x,r=t.y,o=e.x-a,s=e.y-r,c=t.width/2,l=t.height/2;return Math.abs(s)*c>Math.abs(o)*l?(s<0&&(l=-l),n=0===s?0:l*o/s,i=l):(o<0&&(c=-c),n=c,i=0===o?0:c*s/o),{x:a+n,y:r+i}},Ao={node:function(t,e){return t.intersect(e)},circle:function(t,e,n){return Eo(t,e,e,n)},ellipse:Eo,polygon:function(t,e,n){var i=t.x,a=t.y,r=[],o=Number.POSITIVE_INFINITY,s=Number.POSITIVE_INFINITY;"function"==typeof e.forEach?e.forEach((function(t){o=Math.min(o,t.x),s=Math.min(s,t.y)})):(o=Math.min(o,e.x),s=Math.min(s,e.y));for(var c=i-t.width/2-o,l=a-t.height/2-s,u=0;u<e.length;u++){var d=e[u],h=e[u<e.length-1?u+1:0],f=Co(t,n,{x:c+d.x,y:l+d.y},{x:c+h.x,y:l+h.y});f&&r.push(f)}return r.length?(r.length>1&&r.sort((function(t,e){var i=t.x-n.x,a=t.y-n.y,r=Math.sqrt(i*i+a*a),o=e.x-n.x,s=e.y-n.y,c=Math.sqrt(o*o+s*s);return r<c?-1:r===c?0:1})),r[0]):t},rect:To},Do=(t,e)=>{const{shapeSvg:n,bbox:i,halfPadding:a}=ho(t,e,"node "+e.classes,!0);Dt.info("Classes = ",e.classes);const r=n.insert("rect",":first-child");return r.attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),fo(e,r),e.intersect=function(t){return Ao.rect(e,t)},n},Io=(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding+(i.height+e.padding),r=[{x:a/2,y:0},{x:a,y:-a/2},{x:a/2,y:-a},{x:0,y:-a/2}];Dt.info("Question main (Circle)");const o=go(n,a,a,r);return o.attr("style",e.style),fo(e,o),e.intersect=function(t){return Dt.warn("Intersect called"),Ao.polygon(e,r,t)},n};function Lo(t,e,n,i){const a=[],r=t=>{a.push(t,0)},o=t=>{a.push(0,t)};e.includes("t")?(Dt.debug("add top border"),r(n)):o(n),e.includes("r")?(Dt.debug("add right border"),r(i)):o(i),e.includes("b")?(Dt.debug("add bottom border"),r(n)):o(n),e.includes("l")?(Dt.debug("add left border"),r(i)):o(i),t.attr("stroke-dasharray",a.join(" "))}const Oo=(t,e,n)=>{const i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);let a=70,r=10;"LR"===n&&(a=10,r=70);const o=i.append("rect").attr("x",-1*a/2).attr("y",-1*r/2).attr("width",a).attr("height",r).attr("class","fork-join");return fo(e,o),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(t){return Ao.rect(e,t)},i},Mo={rhombus:Io,question:Io,rect:(t,e)=>{const{shapeSvg:n,bbox:i,halfPadding:a}=ho(t,e,"node "+e.classes,!0);Dt.trace("Classes = ",e.classes);const r=n.insert("rect",":first-child"),o=i.width+e.padding,s=i.height+e.padding;if(r.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",o).attr("height",s),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(Lo(r,e.props.borders,o,s),t.delete("borders")),t.forEach((t=>{Dt.warn(`Unknown node property ${t}`)}))}return fo(e,r),e.intersect=function(t){return Ao.rect(e,t)},n},labelRect:(t,e)=>{const{shapeSvg:n}=ho(t,e,"label",!0);Dt.trace("Classes = ",e.classes);const i=n.insert("rect",":first-child");if(i.attr("width",0).attr("height",0),n.attr("class","label edgeLabel"),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(Lo(i,e.props.borders,0,0),t.delete("borders")),t.forEach((t=>{Dt.warn(`Unknown node property ${t}`)}))}return fo(e,i),e.intersect=function(t){return Ao.rect(e,t)},n},rectWithTitle:(t,e)=>{let n;n=e.classes?"node "+e.classes:"node default";const i=t.insert("g").attr("class",n).attr("id",e.domId||e.id),a=i.insert("rect",":first-child"),r=i.insert("line"),o=i.insert("g").attr("class","label"),c=e.labelText.flat?e.labelText.flat():e.labelText;let l="";l="object"==typeof c?c[0]:c,Dt.info("Label text abc79",l,c,"object"==typeof c);const u=o.node().appendChild(uo(l,e.labelStyle,!0,!0));let d={width:0,height:0};if(jt(ai().flowchart.htmlLabels)){const t=u.children[0],e=(0,s.Ys)(u);d=t.getBoundingClientRect(),e.attr("width",d.width),e.attr("height",d.height)}Dt.info("Text 2",c);const h=c.slice(1,c.length);let f=u.getBBox();const g=o.node().appendChild(uo(h.join?h.join("<br/>"):h,e.labelStyle,!0,!0));if(jt(ai().flowchart.htmlLabels)){const t=g.children[0],e=(0,s.Ys)(g);d=t.getBoundingClientRect(),e.attr("width",d.width),e.attr("height",d.height)}const p=e.padding/2;return(0,s.Ys)(g).attr("transform","translate( "+(d.width>f.width?0:(f.width-d.width)/2)+", "+(f.height+p+5)+")"),(0,s.Ys)(u).attr("transform","translate( "+(d.width<f.width?0:-(f.width-d.width)/2)+", 0)"),d=o.node().getBBox(),o.attr("transform","translate("+-d.width/2+", "+(-d.height/2-p+3)+")"),a.attr("class","outer title-state").attr("x",-d.width/2-p).attr("y",-d.height/2-p).attr("width",d.width+e.padding).attr("height",d.height+e.padding),r.attr("class","divider").attr("x1",-d.width/2-p).attr("x2",d.width/2+p).attr("y1",-d.height/2-p+f.height+p).attr("y2",-d.height/2-p+f.height+p),fo(e,a),e.intersect=function(t){return Ao.rect(e,t)},i},choice:(t,e)=>{const n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=[{x:0,y:14},{x:14,y:0},{x:0,y:-14},{x:-14,y:0}];return n.insert("polygon",":first-child").attr("points",i.map((function(t){return t.x+","+t.y})).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(t){return Ao.circle(e,14,t)},n},circle:(t,e)=>{const{shapeSvg:n,bbox:i,halfPadding:a}=ho(t,e,void 0,!0),r=n.insert("circle",":first-child");return r.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",i.width/2+a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),Dt.info("Circle main"),fo(e,r),e.intersect=function(t){return Dt.info("Circle intersect",e,i.width/2+a,t),Ao.circle(e,i.width/2+a,t)},n},doublecircle:(t,e)=>{const{shapeSvg:n,bbox:i,halfPadding:a}=ho(t,e,void 0,!0),r=n.insert("g",":first-child"),o=r.insert("circle"),s=r.insert("circle");return o.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",i.width/2+a+5).attr("width",i.width+e.padding+10).attr("height",i.height+e.padding+10),s.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",i.width/2+a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),Dt.info("DoubleCircle main"),fo(e,o),e.intersect=function(t){return Dt.info("DoubleCircle intersect",e,i.width/2+a+5,t),Ao.circle(e,i.width/2+a+5,t)},n},stadium:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.height+e.padding,r=i.width+a/4+e.padding,o=n.insert("rect",":first-child").attr("style",e.style).attr("rx",a/2).attr("ry",a/2).attr("x",-r/2).attr("y",-a/2).attr("width",r).attr("height",a);return fo(e,o),e.intersect=function(t){return Ao.rect(e,t)},n},hexagon:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.height+e.padding,r=a/4,o=i.width+2*r+e.padding,s=[{x:r,y:0},{x:o-r,y:0},{x:o,y:-a/2},{x:o-r,y:-a},{x:r,y:-a},{x:0,y:-a/2}],c=go(n,o,a,s);return c.attr("style",e.style),fo(e,c),e.intersect=function(t){return Ao.polygon(e,s,t)},n},rect_left_inv_arrow:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:-r/2,y:0},{x:a,y:0},{x:a,y:-r},{x:-r/2,y:-r},{x:0,y:-r/2}];return go(n,a,r,o).attr("style",e.style),e.width=a+r,e.height=r,e.intersect=function(t){return Ao.polygon(e,o,t)},n},lean_right:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:-2*r/6,y:0},{x:a-r/6,y:0},{x:a+2*r/6,y:-r},{x:r/6,y:-r}],s=go(n,a,r,o);return s.attr("style",e.style),fo(e,s),e.intersect=function(t){return Ao.polygon(e,o,t)},n},lean_left:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:2*r/6,y:0},{x:a+r/6,y:0},{x:a-2*r/6,y:-r},{x:-r/6,y:-r}],s=go(n,a,r,o);return s.attr("style",e.style),fo(e,s),e.intersect=function(t){return Ao.polygon(e,o,t)},n},trapezoid:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:-2*r/6,y:0},{x:a+2*r/6,y:0},{x:a-r/6,y:-r},{x:r/6,y:-r}],s=go(n,a,r,o);return s.attr("style",e.style),fo(e,s),e.intersect=function(t){return Ao.polygon(e,o,t)},n},inv_trapezoid:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:r/6,y:0},{x:a-r/6,y:0},{x:a+2*r/6,y:-r},{x:-2*r/6,y:-r}],s=go(n,a,r,o);return s.attr("style",e.style),fo(e,s),e.intersect=function(t){return Ao.polygon(e,o,t)},n},rect_right_inv_arrow:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:0,y:0},{x:a+r/2,y:0},{x:a,y:-r/2},{x:a+r/2,y:-r},{x:0,y:-r}],s=go(n,a,r,o);return s.attr("style",e.style),fo(e,s),e.intersect=function(t){return Ao.polygon(e,o,t)},n},cylinder:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding,r=a/2,o=r/(2.5+a/50),s=i.height+o+e.padding,c="M 0,"+o+" a "+r+","+o+" 0,0,0 "+a+" 0 a "+r+","+o+" 0,0,0 "+-a+" 0 l 0,"+s+" a "+r+","+o+" 0,0,0 "+a+" 0 l 0,"+-s,l=n.attr("label-offset-y",o).insert("path",":first-child").attr("style",e.style).attr("d",c).attr("transform","translate("+-a/2+","+-(s/2+o)+")");return fo(e,l),e.intersect=function(t){const n=Ao.rect(e,t),i=n.x-e.x;if(0!=r&&(Math.abs(i)<e.width/2||Math.abs(i)==e.width/2&&Math.abs(n.y-e.y)>e.height/2-o)){let a=o*o*(1-i*i/(r*r));0!=a&&(a=Math.sqrt(a)),a=o-a,t.y-e.y>0&&(a=-a),n.y+=a}return n},n},start:(t,e)=>{const n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=n.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),fo(e,i),e.intersect=function(t){return Ao.circle(e,7,t)},n},end:(t,e)=>{const n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=n.insert("circle",":first-child"),a=n.insert("circle",":first-child");return a.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),fo(e,a),e.intersect=function(t){return Ao.circle(e,7,t)},n},note:Do,subroutine:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:0,y:0},{x:a,y:0},{x:a,y:-r},{x:0,y:-r},{x:0,y:0},{x:-8,y:0},{x:a+8,y:0},{x:a+8,y:-r},{x:-8,y:-r},{x:-8,y:0}],s=go(n,a,r,o);return s.attr("style",e.style),fo(e,s),e.intersect=function(t){return Ao.polygon(e,o,t)},n},fork:Oo,join:Oo,class_box:(t,e)=>{const n=e.padding/2;let i;i=e.classes?"node "+e.classes:"node default";const a=t.insert("g").attr("class",i).attr("id",e.domId||e.id),r=a.insert("rect",":first-child"),o=a.insert("line"),c=a.insert("line");let l=0,u=4;const d=a.insert("g").attr("class","label");let h=0;const f=e.classData.annotations&&e.classData.annotations[0],g=e.classData.annotations[0]?"\xab"+e.classData.annotations[0]+"\xbb":"",p=d.node().appendChild(uo(g,e.labelStyle,!0,!0));let b=p.getBBox();if(jt(ai().flowchart.htmlLabels)){const t=p.children[0],e=(0,s.Ys)(p);b=t.getBoundingClientRect(),e.attr("width",b.width),e.attr("height",b.height)}e.classData.annotations[0]&&(u+=b.height+4,l+=b.width);let m=e.classData.id;void 0!==e.classData.type&&""!==e.classData.type&&(ai().flowchart.htmlLabels?m+="<"+e.classData.type+">":m+="<"+e.classData.type+">");const y=d.node().appendChild(uo(m,e.labelStyle,!0,!0));(0,s.Ys)(y).attr("class","classTitle");let v=y.getBBox();if(jt(ai().flowchart.htmlLabels)){const t=y.children[0],e=(0,s.Ys)(y);v=t.getBoundingClientRect(),e.attr("width",v.width),e.attr("height",v.height)}u+=v.height+4,v.width>l&&(l=v.width);const w=[];e.classData.members.forEach((t=>{const n=Kr(t);let i=n.displayText;ai().flowchart.htmlLabels&&(i=i.replace(/</g,"<").replace(/>/g,">"));const a=d.node().appendChild(uo(i,n.cssStyle?n.cssStyle:e.labelStyle,!0,!0));let r=a.getBBox();if(jt(ai().flowchart.htmlLabels)){const t=a.children[0],e=(0,s.Ys)(a);r=t.getBoundingClientRect(),e.attr("width",r.width),e.attr("height",r.height)}r.width>l&&(l=r.width),u+=r.height+4,w.push(a)})),u+=8;const x=[];if(e.classData.methods.forEach((t=>{const n=Kr(t);let i=n.displayText;ai().flowchart.htmlLabels&&(i=i.replace(/</g,"<").replace(/>/g,">"));const a=d.node().appendChild(uo(i,n.cssStyle?n.cssStyle:e.labelStyle,!0,!0));let r=a.getBBox();if(jt(ai().flowchart.htmlLabels)){const t=a.children[0],e=(0,s.Ys)(a);r=t.getBoundingClientRect(),e.attr("width",r.width),e.attr("height",r.height)}r.width>l&&(l=r.width),u+=r.height+4,x.push(a)})),u+=8,f){let t=(l-b.width)/2;(0,s.Ys)(p).attr("transform","translate( "+(-1*l/2+t)+", "+-1*u/2+")"),h=b.height+4}let R=(l-v.width)/2;return(0,s.Ys)(y).attr("transform","translate( "+(-1*l/2+R)+", "+(-1*u/2+h)+")"),h+=v.height+4,o.attr("class","divider").attr("x1",-l/2-n).attr("x2",l/2+n).attr("y1",-u/2-n+8+h).attr("y2",-u/2-n+8+h),h+=8,w.forEach((t=>{(0,s.Ys)(t).attr("transform","translate( "+-l/2+", "+(-1*u/2+h+4)+")"),h+=v.height+4})),h+=8,c.attr("class","divider").attr("x1",-l/2-n).attr("x2",l/2+n).attr("y1",-u/2-n+8+h).attr("y2",-u/2-n+8+h),h+=8,x.forEach((t=>{(0,s.Ys)(t).attr("transform","translate( "+-l/2+", "+(-1*u/2+h)+")"),h+=v.height+4})),r.attr("class","outer title-state").attr("x",-l/2-n).attr("y",-u/2-n).attr("width",l+e.padding).attr("height",u+e.padding),fo(e,r),e.intersect=function(t){return Ao.rect(e,t)},a}};let No={};const Bo=(t,e,n)=>{let i,a;if(e.link){let r;"sandbox"===ai().securityLevel?r="_top":e.linkTarget&&(r=e.linkTarget||"_blank"),i=t.insert("svg:a").attr("xlink:href",e.link).attr("target",r),a=Mo[e.shape](i,e,n)}else a=Mo[e.shape](t,e,n),i=a;return e.tooltip&&a.attr("title",e.tooltip),e.class&&a.attr("class","node default "+e.class),No[e.id]=i,e.haveCallback&&No[e.id].attr("class",No[e.id].attr("class")+" clickable"),i},Po=t=>{const e=No[t.id];Dt.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");const n=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+n-t.width/2)+", "+(t.y-t.height/2-8)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),n},Fo={rect:(t,e)=>{Dt.trace("Creating subgraph rect for ",e.id,e);const n=t.insert("g").attr("class","cluster"+(e.class?" "+e.class:"")).attr("id",e.id),i=n.insert("rect",":first-child"),a=n.insert("g").attr("class","cluster-label"),r=a.node().appendChild(uo(e.labelText,e.labelStyle,void 0,!0));let o=r.getBBox();if(jt(ai().flowchart.htmlLabels)){const t=r.children[0],e=(0,s.Ys)(r);o=t.getBoundingClientRect(),e.attr("width",o.width),e.attr("height",o.height)}const c=0*e.padding,l=c/2,u=e.width<=o.width+c?o.width+c:e.width;e.width<=o.width+c?e.diff=(o.width-e.width)/2-e.padding/2:e.diff=-e.padding/2,Dt.trace("Data ",e,JSON.stringify(e)),i.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-u/2).attr("y",e.y-e.height/2-l).attr("width",u).attr("height",e.height+c),a.attr("transform","translate("+(e.x-o.width/2)+", "+(e.y-e.height/2)+")");const d=i.node().getBBox();return e.width=d.width,e.height=d.height,e.intersect=function(t){return To(e,t)},n},roundedWithTitle:(t,e)=>{const n=t.insert("g").attr("class",e.classes).attr("id",e.id),i=n.insert("rect",":first-child"),a=n.insert("g").attr("class","cluster-label"),r=n.append("rect"),o=a.node().appendChild(uo(e.labelText,e.labelStyle,void 0,!0));let c=o.getBBox();if(jt(ai().flowchart.htmlLabels)){const t=o.children[0],e=(0,s.Ys)(o);c=t.getBoundingClientRect(),e.attr("width",c.width),e.attr("height",c.height)}c=o.getBBox();const l=0*e.padding,u=l/2,d=e.width<=c.width+e.padding?c.width+e.padding:e.width;e.width<=c.width+e.padding?e.diff=(c.width+0*e.padding-e.width)/2:e.diff=-e.padding/2,i.attr("class","outer").attr("x",e.x-d/2-u).attr("y",e.y-e.height/2-u).attr("width",d+l).attr("height",e.height+l),r.attr("class","inner").attr("x",e.x-d/2-u).attr("y",e.y-e.height/2-u+c.height-1).attr("width",d+l).attr("height",e.height+l-c.height-3),a.attr("transform","translate("+(e.x-c.width/2)+", "+(e.y-e.height/2-e.padding/3+(jt(ai().flowchart.htmlLabels)?5:3))+")");const h=i.node().getBBox();return e.height=h.height,e.intersect=function(t){return To(e,t)},n},noteGroup:(t,e)=>{const n=t.insert("g").attr("class","note-cluster").attr("id",e.id),i=n.insert("rect",":first-child"),a=0*e.padding,r=a/2;i.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-r).attr("y",e.y-e.height/2-r).attr("width",e.width+a).attr("height",e.height+a).attr("fill","none");const o=i.node().getBBox();return e.width=o.width,e.height=o.height,e.intersect=function(t){return To(e,t)},n},divider:(t,e)=>{const n=t.insert("g").attr("class",e.classes).attr("id",e.id),i=n.insert("rect",":first-child"),a=0*e.padding,r=a/2;i.attr("class","divider").attr("x",e.x-e.width/2-r).attr("y",e.y-e.height/2).attr("width",e.width+a).attr("height",e.height+a);const o=i.node().getBBox();return e.width=o.width,e.height=o.height,e.diff=-e.padding/2,e.intersect=function(t){return To(e,t)},n}};let jo={};let $o={},zo={};const Ho=(t,e)=>{const n=uo(e.label,e.labelStyle),i=t.insert("g").attr("class","edgeLabel"),a=i.insert("g").attr("class","label");a.node().appendChild(n);let r,o=n.getBBox();if(jt(ai().flowchart.htmlLabels)){const t=n.children[0],e=(0,s.Ys)(n);o=t.getBoundingClientRect(),e.attr("width",o.width),e.attr("height",o.height)}if(a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),$o[e.id]=i,e.width=o.width,e.height=o.height,e.startLabelLeft){const n=uo(e.startLabelLeft,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),a=i.insert("g").attr("class","inner");r=a.node().appendChild(n);const o=n.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),zo[e.id]||(zo[e.id]={}),zo[e.id].startLeft=i,Uo(r,e.startLabelLeft)}if(e.startLabelRight){const n=uo(e.startLabelRight,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),a=i.insert("g").attr("class","inner");r=i.node().appendChild(n),a.node().appendChild(n);const o=n.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),zo[e.id]||(zo[e.id]={}),zo[e.id].startRight=i,Uo(r,e.startLabelRight)}if(e.endLabelLeft){const n=uo(e.endLabelLeft,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),a=i.insert("g").attr("class","inner");r=a.node().appendChild(n);const o=n.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),i.node().appendChild(n),zo[e.id]||(zo[e.id]={}),zo[e.id].endLeft=i,Uo(r,e.endLabelLeft)}if(e.endLabelRight){const n=uo(e.endLabelRight,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),a=i.insert("g").attr("class","inner");r=a.node().appendChild(n);const o=n.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),i.node().appendChild(n),zo[e.id]||(zo[e.id]={}),zo[e.id].endRight=i,Uo(r,e.endLabelRight)}return n};function Uo(t,e){ai().flowchart.htmlLabels&&t&&(t.style.width=9*e.length+"px",t.style.height="12px")}const Vo=(t,e)=>{Dt.warn("abc88 cutPathAtIntersect",t,e);let n=[],i=t[0],a=!1;return t.forEach((t=>{if(Dt.info("abc88 checking point",t,e),((t,e)=>{const n=t.x,i=t.y,a=Math.abs(e.x-n),r=Math.abs(e.y-i),o=t.width/2,s=t.height/2;return a>=o||r>=s})(e,t)||a)Dt.warn("abc88 outside",t,i),i=t,a||n.push(t);else{const r=((t,e,n)=>{Dt.warn(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(e)}\n insidePoint : ${JSON.stringify(n)}\n node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);const i=t.x,a=t.y,r=Math.abs(i-n.x),o=t.width/2;let s=n.x<e.x?o-r:o+r;const c=t.height/2,l=Math.abs(e.y-n.y),u=Math.abs(e.x-n.x);if(Math.abs(a-e.y)*o>Math.abs(i-e.x)*c){let t=n.y<e.y?e.y-c-a:a-c-e.y;s=u*t/l;const i={x:n.x<e.x?n.x+s:n.x-u+s,y:n.y<e.y?n.y+l-t:n.y-l+t};return 0===s&&(i.x=e.x,i.y=e.y),0===u&&(i.x=e.x),0===l&&(i.y=e.y),Dt.warn(`abc89 topp/bott calc, Q ${l}, q ${t}, R ${u}, r ${s}`,i),i}{s=n.x<e.x?e.x-o-i:i-o-e.x;let t=l*s/u,a=n.x<e.x?n.x+u-s:n.x-u+s,r=n.y<e.y?n.y+t:n.y-t;return Dt.warn(`sides calc abc89, Q ${l}, q ${t}, R ${u}, r ${s}`,{_x:a,_y:r}),0===s&&(a=e.x,r=e.y),0===u&&(a=e.x),0===l&&(r=e.y),{x:a,y:r}}})(e,i,t);Dt.warn("abc88 inside",t,i,r),Dt.warn("abc88 intersection",r);let o=!1;n.forEach((t=>{o=o||t.x===r.x&&t.y===r.y})),n.some((t=>t.x===r.x&&t.y===r.y))?Dt.warn("abc88 no intersect",r,n):n.push(r),a=!0}})),Dt.warn("abc88 returning points",n),n},qo=(t,e,n,i)=>{Dt.info("Graph in recursive render: XXX",ut.c(e),i);const a=e.graph().rankdir;Dt.trace("Dir in recursive render - dir:",a);const r=t.insert("g").attr("class","root");e.nodes()?Dt.info("Recursive render XXX",e.nodes()):Dt.info("No nodes found for",e),e.edges().length>0&&Dt.trace("Recursive edges",e.edge(e.edges()[0]));const o=r.insert("g").attr("class","clusters"),c=r.insert("g").attr("class","edgePaths"),l=r.insert("g").attr("class","edgeLabels"),u=r.insert("g").attr("class","nodes");e.nodes().forEach((function(t){const r=e.node(t);if(void 0!==i){const n=JSON.parse(JSON.stringify(i.clusterData));Dt.info("Setting data for cluster XXX (",t,") ",n,i),e.setNode(i.id,n),e.parent(t)||(Dt.trace("Setting parent",t,i.id),e.setParent(t,i.id,n))}if(Dt.info("(Insert) Node XXX"+t+": "+JSON.stringify(e.node(t))),r&&r.clusterNode){Dt.info("Cluster identified",t,r.width,e.node(t));const i=qo(u,r.graph,n,e.node(t)),a=i.elem;fo(r,a),r.diff=i.diff||0,Dt.info("Node bounds (abc123)",t,r,r.width,r.x,r.y),((t,e)=>{No[e.id]=t})(a,r),Dt.warn("Recursive render complete ",a,r)}else e.children(t).length>0?(Dt.info("Cluster - the non recursive path XXX",t,r.id,r,e),Dt.info(xo(r.id,e)),po[r.id]={id:xo(r.id,e),node:r}):(Dt.info("Node - the non recursive path",t,r.id,r),Bo(u,e.node(t),a))})),e.edges().forEach((function(t){const n=e.edge(t.v,t.w,t.name);Dt.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),Dt.info("Edge "+t.v+" -> "+t.w+": ",t," ",JSON.stringify(e.edge(t))),Dt.info("Fix",po,"ids:",t.v,t.w,"Translateing: ",po[t.v],po[t.w]),Ho(l,n)})),e.edges().forEach((function(t){Dt.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t))})),Dt.info("#############################################"),Dt.info("### Layout ###"),Dt.info("#############################################"),Dt.info(e),(0,ct.bK)(e),Dt.info("Graph after layout:",ut.c(e));let d=0;return(t=>ko(t,t.children()))(e).forEach((function(t){const n=e.node(t);Dt.info("Position "+t+": "+JSON.stringify(e.node(t))),Dt.info("Position "+t+": ("+n.x,","+n.y,") width: ",n.width," height: ",n.height),n&&n.clusterNode?Po(n):e.children(t).length>0?(((t,e)=>{Dt.trace("Inserting cluster");const n=e.shape||"rect";jo[e.id]=Fo[n](t,e)})(o,n),po[n.id].node=n):Po(n)})),e.edges().forEach((function(t){const i=e.edge(t);Dt.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(i),i);const a=function(t,e,n,i,a,r){let o=n.points,c=!1;const l=r.node(e.v);var u=r.node(e.w);Dt.info("abc88 InsertEdge: ",n),u.intersect&&l.intersect&&(o=o.slice(1,n.points.length-1),o.unshift(l.intersect(o[0])),Dt.info("Last point",o[o.length-1],u,u.intersect(o[o.length-1])),o.push(u.intersect(o[o.length-1]))),n.toCluster&&(Dt.info("to cluster abc88",i[n.toCluster]),o=Vo(n.points,i[n.toCluster].node),c=!0),n.fromCluster&&(Dt.info("from cluster abc88",i[n.fromCluster]),o=Vo(o.reverse(),i[n.fromCluster].node).reverse(),c=!0);const d=o.filter((t=>!Number.isNaN(t.y)));let h;h=("graph"===a||"flowchart"===a)&&n.curve||s.$0Z;const f=(0,s.jvg)().x((function(t){return t.x})).y((function(t){return t.y})).curve(h);let g;switch(n.thickness){case"normal":g="edge-thickness-normal";break;case"thick":g="edge-thickness-thick";break;default:g=""}switch(n.pattern){case"solid":g+=" edge-pattern-solid";break;case"dotted":g+=" edge-pattern-dotted";break;case"dashed":g+=" edge-pattern-dashed"}const p=t.append("path").attr("d",f(d)).attr("id",n.id).attr("class"," "+g+(n.classes?" "+n.classes:"")).attr("style",n.style);let b="";switch((ai().flowchart.arrowMarkerAbsolute||ai().state.arrowMarkerAbsolute)&&(b=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,b=b.replace(/\(/g,"\\("),b=b.replace(/\)/g,"\\)")),Dt.info("arrowTypeStart",n.arrowTypeStart),Dt.info("arrowTypeEnd",n.arrowTypeEnd),n.arrowTypeStart){case"arrow_cross":p.attr("marker-start","url("+b+"#"+a+"-crossStart)");break;case"arrow_point":p.attr("marker-start","url("+b+"#"+a+"-pointStart)");break;case"arrow_barb":p.attr("marker-start","url("+b+"#"+a+"-barbStart)");break;case"arrow_circle":p.attr("marker-start","url("+b+"#"+a+"-circleStart)");break;case"aggregation":p.attr("marker-start","url("+b+"#"+a+"-aggregationStart)");break;case"extension":p.attr("marker-start","url("+b+"#"+a+"-extensionStart)");break;case"composition":p.attr("marker-start","url("+b+"#"+a+"-compositionStart)");break;case"dependency":p.attr("marker-start","url("+b+"#"+a+"-dependencyStart)");break;case"lollipop":p.attr("marker-start","url("+b+"#"+a+"-lollipopStart)")}switch(n.arrowTypeEnd){case"arrow_cross":p.attr("marker-end","url("+b+"#"+a+"-crossEnd)");break;case"arrow_point":p.attr("marker-end","url("+b+"#"+a+"-pointEnd)");break;case"arrow_barb":p.attr("marker-end","url("+b+"#"+a+"-barbEnd)");break;case"arrow_circle":p.attr("marker-end","url("+b+"#"+a+"-circleEnd)");break;case"aggregation":p.attr("marker-end","url("+b+"#"+a+"-aggregationEnd)");break;case"extension":p.attr("marker-end","url("+b+"#"+a+"-extensionEnd)");break;case"composition":p.attr("marker-end","url("+b+"#"+a+"-compositionEnd)");break;case"dependency":p.attr("marker-end","url("+b+"#"+a+"-dependencyEnd)");break;case"lollipop":p.attr("marker-end","url("+b+"#"+a+"-lollipopEnd)")}let m={};return c&&(m.updatedPath=o),m.originalPath=n.points,m}(c,t,i,po,n,e);((t,e)=>{Dt.info("Moving label abc78 ",t.id,t.label,$o[t.id]);let n=e.updatedPath?e.updatedPath:e.originalPath;if(t.label){const i=$o[t.id];let a=t.x,r=t.y;if(n){const i=Gn.calcLabelPosition(n);Dt.info("Moving label "+t.label+" from (",a,",",r,") to (",i.x,",",i.y,") abc78"),e.updatedPath&&(a=i.x,r=i.y)}i.attr("transform","translate("+a+", "+r+")")}if(t.startLabelLeft){const e=zo[t.id].startLeft;let i=t.x,a=t.y;if(n){const e=Gn.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",n);i=e.x,a=e.y}e.attr("transform","translate("+i+", "+a+")")}if(t.startLabelRight){const e=zo[t.id].startRight;let i=t.x,a=t.y;if(n){const e=Gn.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",n);i=e.x,a=e.y}e.attr("transform","translate("+i+", "+a+")")}if(t.endLabelLeft){const e=zo[t.id].endLeft;let i=t.x,a=t.y;if(n){const e=Gn.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",n);i=e.x,a=e.y}e.attr("transform","translate("+i+", "+a+")")}if(t.endLabelRight){const e=zo[t.id].endRight;let i=t.x,a=t.y;if(n){const e=Gn.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",n);i=e.x,a=e.y}e.attr("transform","translate("+i+", "+a+")")}})(i,a)})),e.nodes().forEach((function(t){const n=e.node(t);Dt.info(t,n.type,n.diff),"group"===n.type&&(d=n.diff)})),{elem:r,diff:d}},Wo=(t,e,n,i,a)=>{lo(t,n,i,a),No={},$o={},zo={},jo={},bo={},mo={},po={},Dt.warn("Graph at first:",ut.c(e)),((t,e)=>{!t||e>10?Dt.debug("Opting out, no graph "):(Dt.debug("Opting in, graph "),t.nodes().forEach((function(e){t.children(e).length>0&&(Dt.warn("Cluster identified",e," Replacement id in edges: ",xo(e,t)),bo[e]=wo(e,t),po[e]={id:xo(e,t),clusterData:t.node(e)})})),t.nodes().forEach((function(e){const n=t.children(e),i=t.edges();n.length>0?(Dt.debug("Cluster identified",e,bo),i.forEach((t=>{t.v!==e&&t.w!==e&&yo(t.v,e)^yo(t.w,e)&&(Dt.warn("Edge: ",t," leaves cluster ",e),Dt.warn("Decendants of XXX ",e,": ",bo[e]),po[e].externalConnections=!0)}))):Dt.debug("Not a cluster ",e,bo)})),t.edges().forEach((function(e){const n=t.edge(e);Dt.warn("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),Dt.warn("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(t.edge(e)));let i=e.v,a=e.w;if(Dt.warn("Fix XXX",po,"ids:",e.v,e.w,"Translating: ",po[e.v]," --- ",po[e.w]),po[e.v]&&po[e.w]&&po[e.v]===po[e.w]){Dt.warn("Fixing and trixing link to self - removing XXX",e.v,e.w,e.name),Dt.warn("Fixing and trixing - removing XXX",e.v,e.w,e.name),i=Ro(e.v),a=Ro(e.w),t.removeEdge(e.v,e.w,e.name);const r=e.w+"---"+e.v;t.setNode(r,{domId:r,id:r,labelStyle:"",labelText:n.label,padding:0,shape:"labelRect",style:""});const o=JSON.parse(JSON.stringify(n)),s=JSON.parse(JSON.stringify(n));o.label="",o.arrowTypeEnd="none",s.label="",o.fromCluster=e.v,s.toCluster=e.v,t.setEdge(i,r,o,e.name+"-cyclic-special"),t.setEdge(r,a,s,e.name+"-cyclic-special")}else(po[e.v]||po[e.w])&&(Dt.warn("Fixing and trixing - removing XXX",e.v,e.w,e.name),i=Ro(e.v),a=Ro(e.w),t.removeEdge(e.v,e.w,e.name),i!==e.v&&(n.fromCluster=e.v),a!==e.w&&(n.toCluster=e.w),Dt.warn("Fix Replacing with XXX",i,a,e.name),t.setEdge(i,a,n,e.name))})),Dt.warn("Adjusted Graph",ut.c(t)),_o(t,0),Dt.trace(po))})(e),Dt.warn("Graph after:",ut.c(e)),qo(t,e,i)},Yo=t=>zt.sanitizeText(t,ai());let Go={dividerMargin:10,padding:5,textHeight:10};function Zo(t){let e;switch(t){case 0:e="aggregation";break;case 1:e="extension";break;case 2:e="composition";break;case 3:e="dependency";break;case 4:e="lollipop";break;default:e="none"}return e}const Ko={setConf:function(t){Object.keys(t).forEach((function(e){Go[e]=t[e]}))},draw:function(t,e,n,i){Dt.info("Drawing class - ",e);const a=ai().flowchart,r=ai().securityLevel;Dt.info("config:",a);const o=a.nodeSpacing||50,c=a.rankSpacing||50,l=new lt.k({multigraph:!0,compound:!0}).setGraph({rankdir:i.db.getDirection(),nodesep:o,ranksep:c,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}})),u=i.db.getClasses(),d=i.db.getRelations(),h=i.db.getNotes();let f;Dt.info(d),function(t,e,n,i){const a=Object.keys(t);Dt.info("keys:",a),Dt.info(t),a.forEach((function(n){const a=t[n];let r="";a.cssClasses.length>0&&(r=r+" "+a.cssClasses.join(" "));const o={labelStyle:""};let s=void 0!==a.text?a.text:a.id,c="";a.type,c="class_box",e.setNode(a.id,{labelStyle:o.labelStyle,shape:c,labelText:Yo(s),classData:a,rx:0,ry:0,class:r,style:o.style,id:a.id,domId:a.domId,tooltip:i.db.getTooltip(a.id)||"",haveCallback:a.haveCallback,link:a.link,width:"group"===a.type?500:void 0,type:a.type,padding:ai().flowchart.padding}),Dt.info("setNode",{labelStyle:o.labelStyle,shape:c,labelText:s,rx:0,ry:0,class:r,style:o.style,id:a.id,width:"group"===a.type?500:void 0,type:a.type,padding:ai().flowchart.padding})}))}(u,l,0,i),function(t,e){const n=ai().flowchart;let i=0;t.forEach((function(a){i++;const r={classes:"relation"};r.pattern=1==a.relation.lineType?"dashed":"solid",r.id="id"+i,"arrow_open"===a.type?r.arrowhead="none":r.arrowhead="normal",Dt.info(r,a),r.startLabelRight="none"===a.relationTitle1?"":a.relationTitle1,r.endLabelLeft="none"===a.relationTitle2?"":a.relationTitle2,r.arrowTypeStart=Zo(a.relation.type1),r.arrowTypeEnd=Zo(a.relation.type2);let o="",c="";if(void 0!==a.style){const t=On(a.style);o=t.style,c=t.labelStyle}else o="fill:none";r.style=o,r.labelStyle=c,void 0!==a.interpolate?r.curve=In(a.interpolate,s.c_6):void 0!==t.defaultInterpolate?r.curve=In(t.defaultInterpolate,s.c_6):r.curve=In(n.curve,s.c_6),a.text=a.title,void 0===a.text?void 0!==a.style&&(r.arrowheadStyle="fill: #333"):(r.arrowheadStyle="fill: #333",r.labelpos="c",ai().flowchart.htmlLabels?(r.labelType="html",r.label='<span class="edgeLabel">'+a.text+"</span>"):(r.labelType="text",r.label=a.text.replace(zt.lineBreakRegex,"\n"),void 0===a.style&&(r.style=r.style||"stroke: #333; stroke-width: 1.5px;fill:none"),r.labelStyle=r.labelStyle.replace("color:","fill:"))),e.setEdge(a.id1,a.id2,r,i)}))}(d,l),function(t,e,n,i){Dt.info(t),t.forEach((function(t,a){const r=t,o="",c="";let l=r.text,u="note";if(e.setNode(r.id,{labelStyle:o,shape:u,labelText:Yo(l),noteData:r,rx:0,ry:0,class:"",style:c,id:r.id,domId:r.id,tooltip:"",type:"note",padding:ai().flowchart.padding}),Dt.info("setNode",{labelStyle:o,shape:u,labelText:l,rx:0,ry:0,style:c,id:r.id,type:"note",padding:ai().flowchart.padding}),!r.class||!(r.class in i))return;const d=n+a,h={classes:"relation",pattern:"dotted"};h.id=`edgeNote${d}`,h.arrowhead="none",Dt.info(`Note edge: ${JSON.stringify(h)}, ${JSON.stringify(r)}`),h.startLabelRight="",h.endLabelLeft="",h.arrowTypeStart="none",h.arrowTypeEnd="none",h.style="fill:none",h.labelStyle="",h.curve=In(Go.curve,s.c_6),e.setEdge(r.id,r.class,h,d)}))}(h,l,d.length+1,u),"sandbox"===r&&(f=(0,s.Ys)("#i"+e));const g="sandbox"===r?(0,s.Ys)(f.nodes()[0].contentDocument.body):(0,s.Ys)("body"),p=g.select(`[id="${e}"]`),b=g.select("#"+e+" g");if(Wo(b,l,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",e),Gn.insertTitle(p,"classTitleText",a.titleTopMargin,i.db.getDiagramTitle()),hi(l,p,a.diagramPadding,a.useMaxWidth),!a.htmlLabels){const t="sandbox"===r?f.nodes()[0].contentDocument:document,n=t.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const e of n){const n=e.getBBox(),i=t.createElementNS("http://www.w3.org/2000/svg","rect");i.setAttribute("rx",0),i.setAttribute("ry",0),i.setAttribute("width",n.width),i.setAttribute("height",n.height),e.insertBefore(i,e.firstChild)}}}};var Xo=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,2],i=[1,5],a=[6,9,11,23,25,27,29,30,31,51],r=[1,17],o=[1,18],s=[1,19],c=[1,20],l=[1,21],u=[1,22],d=[1,25],h=[1,30],f=[1,31],g=[1,32],p=[1,33],b=[6,9,11,15,20,23,25,27,29,30,31,44,45,46,47,51],m=[1,45],y=[30,31,48,49],v=[4,6,9,11,23,25,27,29,30,31,51],w=[44,45,46,47],x=[22,37],R=[1,65],_=[1,64],k=[22,37,39,41],E={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,entityName:17,relSpec:18,role:19,BLOCK_START:20,attributes:21,BLOCK_STOP:22,title:23,title_value:24,acc_title:25,acc_title_value:26,acc_descr:27,acc_descr_value:28,acc_descr_multiline_value:29,ALPHANUM:30,ENTITY_NAME:31,attribute:32,attributeType:33,attributeName:34,attributeKeyTypeList:35,attributeComment:36,ATTRIBUTE_WORD:37,attributeKeyType:38,COMMA:39,ATTRIBUTE_KEY:40,COMMENT:41,cardinality:42,relType:43,ZERO_OR_ONE:44,ZERO_OR_MORE:45,ONE_OR_MORE:46,ONLY_ONE:47,NON_IDENTIFYING:48,IDENTIFYING:49,WORD:50,open_directive:51,type_directive:52,arg_directive:53,close_directive:54,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",20:"BLOCK_START",22:"BLOCK_STOP",23:"title",24:"title_value",25:"acc_title",26:"acc_title_value",27:"acc_descr",28:"acc_descr_value",29:"acc_descr_multiline_value",30:"ALPHANUM",31:"ENTITY_NAME",37:"ATTRIBUTE_WORD",39:"COMMA",40:"ATTRIBUTE_KEY",41:"COMMENT",44:"ZERO_OR_ONE",45:"ZERO_OR_MORE",46:"ONE_OR_MORE",47:"ONLY_ONE",48:"NON_IDENTIFYING",49:"IDENTIFYING",50:"WORD",51:"open_directive",52:"type_directive",53:"arg_directive",54:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[10,2],[10,2],[10,2],[10,1],[17,1],[17,1],[21,1],[21,2],[32,2],[32,3],[32,3],[32,4],[33,1],[34,1],[35,1],[35,3],[38,1],[36,1],[18,3],[42,1],[42,1],[42,1],[42,1],[43,1],[43,1],[19,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 1:break;case 3:case 7:case 8:this.$=[];break;case 4:r[s-1].push(r[s]),this.$=r[s-1];break;case 5:case 6:case 20:case 43:case 28:case 29:case 32:this.$=r[s];break;case 12:i.addEntity(r[s-4]),i.addEntity(r[s-2]),i.addRelationship(r[s-4],r[s],r[s-2],r[s-3]);break;case 13:i.addEntity(r[s-3]),i.addAttributes(r[s-3],r[s-1]);break;case 14:i.addEntity(r[s-2]);break;case 15:i.addEntity(r[s]);break;case 16:case 17:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 18:case 19:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 21:case 41:case 42:case 33:this.$=r[s].replace(/"/g,"");break;case 22:case 30:this.$=[r[s]];break;case 23:r[s].push(r[s-1]),this.$=r[s];break;case 24:this.$={attributeType:r[s-1],attributeName:r[s]};break;case 25:this.$={attributeType:r[s-2],attributeName:r[s-1],attributeKeyTypeList:r[s]};break;case 26:this.$={attributeType:r[s-2],attributeName:r[s-1],attributeComment:r[s]};break;case 27:this.$={attributeType:r[s-3],attributeName:r[s-2],attributeKeyTypeList:r[s-1],attributeComment:r[s]};break;case 31:r[s-2].push(r[s]),this.$=r[s-2];break;case 34:this.$={cardA:r[s],relType:r[s-1],cardB:r[s-2]};break;case 35:this.$=i.Cardinality.ZERO_OR_ONE;break;case 36:this.$=i.Cardinality.ZERO_OR_MORE;break;case 37:this.$=i.Cardinality.ONE_OR_MORE;break;case 38:this.$=i.Cardinality.ONLY_ONE;break;case 39:this.$=i.Identification.NON_IDENTIFYING;break;case 40:this.$=i.Identification.IDENTIFYING;break;case 44:i.parseDirective("%%{","open_directive");break;case 45:i.parseDirective(r[s],"type_directive");break;case 46:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 47:i.parseDirective("}%%","close_directive","er")}},table:[{3:1,4:n,7:3,12:4,51:i},{1:[3]},e(a,[2,3],{5:6}),{3:7,4:n,7:3,12:4,51:i},{13:8,52:[1,9]},{52:[2,44]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,23:r,25:o,27:s,29:c,30:l,31:u,51:i},{1:[2,2]},{14:23,15:[1,24],54:d},e([15,54],[2,45]),e(a,[2,8],{1:[2,1]}),e(a,[2,4]),{7:15,10:26,12:4,17:16,23:r,25:o,27:s,29:c,30:l,31:u,51:i},e(a,[2,6]),e(a,[2,7]),e(a,[2,11]),e(a,[2,15],{18:27,42:29,20:[1,28],44:h,45:f,46:g,47:p}),{24:[1,34]},{26:[1,35]},{28:[1,36]},e(a,[2,19]),e(b,[2,20]),e(b,[2,21]),{11:[1,37]},{16:38,53:[1,39]},{11:[2,47]},e(a,[2,5]),{17:40,30:l,31:u},{21:41,22:[1,42],32:43,33:44,37:m},{43:46,48:[1,47],49:[1,48]},e(y,[2,35]),e(y,[2,36]),e(y,[2,37]),e(y,[2,38]),e(a,[2,16]),e(a,[2,17]),e(a,[2,18]),e(v,[2,9]),{14:49,54:d},{54:[2,46]},{15:[1,50]},{22:[1,51]},e(a,[2,14]),{21:52,22:[2,22],32:43,33:44,37:m},{34:53,37:[1,54]},{37:[2,28]},{42:55,44:h,45:f,46:g,47:p},e(w,[2,39]),e(w,[2,40]),{11:[1,56]},{19:57,30:[1,60],31:[1,59],50:[1,58]},e(a,[2,13]),{22:[2,23]},e(x,[2,24],{35:61,36:62,38:63,40:R,41:_}),e([22,37,40,41],[2,29]),e([30,31],[2,34]),e(v,[2,10]),e(a,[2,12]),e(a,[2,41]),e(a,[2,42]),e(a,[2,43]),e(x,[2,25],{36:66,39:[1,67],41:_}),e(x,[2,26]),e(k,[2,30]),e(x,[2,33]),e(k,[2,32]),e(x,[2,27]),{38:68,40:R},e(k,[2,31])],defaultActions:{5:[2,44],7:[2,2],25:[2,47],39:[2,46],45:[2,28],52:[2,23]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},C=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("acc_title"),25;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),27;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 this.begin("open_directive"),51;case 8:return this.begin("type_directive"),52;case 9:return this.popState(),this.begin("arg_directive"),15;case 10:return this.popState(),this.popState(),54;case 11:return 53;case 12:case 13:case 15:case 22:case 27:break;case 14:return 11;case 16:return 9;case 17:return 31;case 18:return 50;case 19:return 4;case 20:return this.begin("block"),20;case 21:return 39;case 23:return 40;case 24:case 25:return 37;case 26:return 41;case 28:return this.popState(),22;case 29:case 58:return e.yytext[0];case 30:case 34:case 35:case 48:return 44;case 31:case 32:case 33:case 41:case 43:case 50:return 46;case 36:case 37:case 38:case 39:case 40:case 42:case 49:return 45;case 44:case 45:case 46:case 47:return 47;case 51:case 54:case 55:case 56:return 48;case 52:case 53:return 49;case 57:return 30;case 59:return 6}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/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,/^(?: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,/^(?:\.\.)/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},open_directive:{rules:[8],inclusive:!1},type_directive:{rules:[9,10],inclusive:!1},arg_directive:{rules:[10,11],inclusive:!1},block:{rules:[21,22,23,24,25,26,27,28,29],inclusive:!1},INITIAL:{rules:[0,2,4,7,12,13,14,15,16,17,18,19,20,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],inclusive:!0}}},t);function S(){this.yy={}}return E.lexer=C,S.prototype=E,E.Parser=S,new S}();Xo.parser=Xo;const Jo=Xo,Qo=t=>null!==t.match(/^\s*erDiagram/);let ts={},es=[];const ns=function(t){return void 0===ts[t]&&(ts[t]={attributes:[]},Dt.info("Added new entity :",t)),ts[t]},is={Cardinality:{ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE"},Identification:{NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().er,addEntity:ns,addAttributes:function(t,e){let n,i=ns(t);for(n=e.length-1;n>=0;n--)i.attributes.push(e[n]),Dt.debug("Added attribute ",e[n].attributeName)},getEntities:()=>ts,addRelationship:function(t,e,n,i){let a={entityA:t,roleA:e,entityB:n,relSpec:i};es.push(a),Dt.debug("Added new relationship :",a)},getRelationships:()=>es,clear:function(){ts={},es=[],Ii()},setAccTitle:Li,getAccTitle:Oi,setAccDescription:Mi,getAccDescription:Ni,setDiagramTitle:Bi,getDiagramTitle:Pi},as={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"},rs=as,os=function(t,e){let n;t.append("defs").append("marker").attr("id",as.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",as.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"),n=t.append("defs").append("marker").attr("id",as.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),n.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18"),n=t.append("defs").append("marker").attr("id",as.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),n.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,0 L21,18"),t.append("defs").append("marker").attr("id",as.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",as.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"),n=t.append("defs").append("marker").attr("id",as.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),n.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),n=t.append("defs").append("marker").attr("id",as.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),n.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},ss=/[^\dA-Za-z](\W)*/g;let cs={},ls=new Map;const us=function(t,e,n){let i;return Object.keys(e).forEach((function(a){const r=function(t="",e=""){const n=t.replace(ss,"");return`${gs(e)}${gs(n)}${wt(t,fs)}`}(a,"entity");ls.set(a,r);const o=t.append("g").attr("id",r);i=void 0===i?r:i;const s="text-"+r,c=o.append("text").classed("er entityLabel",!0).attr("id",s).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",ai().fontFamily).style("font-size",cs.fontSize+"px").text(a),{width:l,height:u}=((t,e,n)=>{const i=cs.entityPadding/3,a=cs.entityPadding/3,r=.85*cs.fontSize,o=e.node().getBBox(),s=[];let c=!1,l=!1,u=0,d=0,h=0,f=0,g=o.height+2*i,p=1;n.forEach((t=>{void 0!==t.attributeKeyTypeList&&t.attributeKeyTypeList.length>0&&(c=!0),void 0!==t.attributeComment&&(l=!0)})),n.forEach((n=>{const a=`${e.node().id}-attr-${p}`;let o=0;const b=$t(n.attributeType),m=t.append("text").classed("er entityLabel",!0).attr("id",`${a}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",ai().fontFamily).style("font-size",r+"px").text(b),y=t.append("text").classed("er entityLabel",!0).attr("id",`${a}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",ai().fontFamily).style("font-size",r+"px").text(n.attributeName),v={};v.tn=m,v.nn=y;const w=m.node().getBBox(),x=y.node().getBBox();if(u=Math.max(u,w.width),d=Math.max(d,x.width),o=Math.max(w.height,x.height),c){const e=void 0!==n.attributeKeyTypeList?n.attributeKeyTypeList.join(","):"",i=t.append("text").classed("er entityLabel",!0).attr("id",`${a}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",ai().fontFamily).style("font-size",r+"px").text(e);v.kn=i;const s=i.node().getBBox();h=Math.max(h,s.width),o=Math.max(o,s.height)}if(l){const e=t.append("text").classed("er entityLabel",!0).attr("id",`${a}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",ai().fontFamily).style("font-size",r+"px").text(n.attributeComment||"");v.cn=e;const i=e.node().getBBox();f=Math.max(f,i.width),o=Math.max(o,i.height)}v.height=o,s.push(v),g+=o+2*i,p+=1}));let b=4;c&&(b+=2),l&&(b+=2);const m=u+d+h+f,y={width:Math.max(cs.minEntityWidth,Math.max(o.width+2*cs.entityPadding,m+a*b)),height:n.length>0?g:Math.max(cs.minEntityHeight,o.height+2*cs.entityPadding)};if(n.length>0){const n=Math.max(0,(y.width-m-a*b)/(b/2));e.attr("transform","translate("+y.width/2+","+(i+o.height/2)+")");let r=o.height+2*i,g="attributeBoxOdd";s.forEach((e=>{const o=r+i+e.height/2;e.tn.attr("transform","translate("+a+","+o+")");const s=t.insert("rect","#"+e.tn.node().id).classed(`er ${g}`,!0).attr("x",0).attr("y",r).attr("width",u+2*a+n).attr("height",e.height+2*i),p=parseFloat(s.attr("x"))+parseFloat(s.attr("width"));e.nn.attr("transform","translate("+(p+a)+","+o+")");const b=t.insert("rect","#"+e.nn.node().id).classed(`er ${g}`,!0).attr("x",p).attr("y",r).attr("width",d+2*a+n).attr("height",e.height+2*i);let m=parseFloat(b.attr("x"))+parseFloat(b.attr("width"));if(c){e.kn.attr("transform","translate("+(m+a)+","+o+")");const s=t.insert("rect","#"+e.kn.node().id).classed(`er ${g}`,!0).attr("x",m).attr("y",r).attr("width",h+2*a+n).attr("height",e.height+2*i);m=parseFloat(s.attr("x"))+parseFloat(s.attr("width"))}l&&(e.cn.attr("transform","translate("+(m+a)+","+o+")"),t.insert("rect","#"+e.cn.node().id).classed(`er ${g}`,"true").attr("x",m).attr("y",r).attr("width",f+2*a+n).attr("height",e.height+2*i)),r+=e.height+2*i,g="attributeBoxOdd"===g?"attributeBoxEven":"attributeBoxOdd"}))}else y.height=Math.max(cs.minEntityHeight,g),e.attr("transform","translate("+y.width/2+","+y.height/2+")");return y})(o,c,e[a].attributes),d=o.insert("rect","#"+s).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",l).attr("height",u).node().getBBox();n.setNode(r,{width:d.width,height:d.height,shape:"rect",id:r})})),i},ds=function(t){return(t.entityA+t.roleA+t.entityB).replace(/\s/g,"")};let hs=0;const fs="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";function gs(t=""){return t.length>0?`${t}-`:""}const ps={setConf:function(t){const e=Object.keys(t);for(const n of e)cs[n]=t[n]},draw:function(t,e,n,i){cs=ai().er,Dt.info("Drawing ER diagram");const a=ai().securityLevel;let r;"sandbox"===a&&(r=(0,s.Ys)("#i"+e));const o=("sandbox"===a?(0,s.Ys)(r.nodes()[0].contentDocument.body):(0,s.Ys)("body")).select(`[id='${e}']`);let c;os(o,cs),c=new lt.k({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:cs.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel((function(){return{}}));const l=us(o,i.db.getEntities(),c),u=function(t,e){return t.forEach((function(t){e.setEdge(ls.get(t.entityA),ls.get(t.entityB),{relationship:t},ds(t))})),t}(i.db.getRelationships(),c);var d,h;(0,ct.bK)(c),d=o,(h=c).nodes().forEach((function(t){void 0!==t&&void 0!==h.node(t)&&d.select("#"+t).attr("transform","translate("+(h.node(t).x-h.node(t).width/2)+","+(h.node(t).y-h.node(t).height/2)+" )")})),u.forEach((function(t){!function(t,e,n,i,a){hs++;const r=n.edge(ls.get(e.entityA),ls.get(e.entityB),ds(e)),o=(0,s.jvg)().x((function(t){return t.x})).y((function(t){return t.y})).curve(s.$0Z),c=t.insert("path","#"+i).classed("er relationshipLine",!0).attr("d",o(r.points)).style("stroke",cs.stroke).style("fill","none");e.relSpec.relType===a.db.Identification.NON_IDENTIFYING&&c.attr("stroke-dasharray","8,8");let l="";switch(cs.arrowMarkerAbsolute&&(l=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,l=l.replace(/\(/g,"\\("),l=l.replace(/\)/g,"\\)")),e.relSpec.cardA){case a.db.Cardinality.ZERO_OR_ONE:c.attr("marker-end","url("+l+"#"+rs.ZERO_OR_ONE_END+")");break;case a.db.Cardinality.ZERO_OR_MORE:c.attr("marker-end","url("+l+"#"+rs.ZERO_OR_MORE_END+")");break;case a.db.Cardinality.ONE_OR_MORE:c.attr("marker-end","url("+l+"#"+rs.ONE_OR_MORE_END+")");break;case a.db.Cardinality.ONLY_ONE:c.attr("marker-end","url("+l+"#"+rs.ONLY_ONE_END+")")}switch(e.relSpec.cardB){case a.db.Cardinality.ZERO_OR_ONE:c.attr("marker-start","url("+l+"#"+rs.ZERO_OR_ONE_START+")");break;case a.db.Cardinality.ZERO_OR_MORE:c.attr("marker-start","url("+l+"#"+rs.ZERO_OR_MORE_START+")");break;case a.db.Cardinality.ONE_OR_MORE:c.attr("marker-start","url("+l+"#"+rs.ONE_OR_MORE_START+")");break;case a.db.Cardinality.ONLY_ONE:c.attr("marker-start","url("+l+"#"+rs.ONLY_ONE_START+")")}const u=c.node().getTotalLength(),d=c.node().getPointAtLength(.5*u),h="rel"+hs,f=t.append("text").classed("er relationshipLabel",!0).attr("id",h).attr("x",d.x).attr("y",d.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",ai().fontFamily).style("font-size",cs.fontSize+"px").text(e.roleA).node().getBBox();t.insert("rect","#"+h).classed("er relationshipLabelBox",!0).attr("x",d.x-f.width/2).attr("y",d.y-f.height/2).attr("width",f.width).attr("height",f.height)}(o,t,c,l,i)}));const f=cs.diagramPadding;Gn.insertTitle(o,"entityTitleText",cs.titleTopMargin,i.db.getDiagramTitle());const g=o.node().getBBox(),p=g.width+2*f,b=g.height+2*f;di(o,b,p,cs.useMaxWidth),o.attr("viewBox",`${g.x-f} ${g.y-f} ${p} ${b}`)}};var bs=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,9],i=[1,7],a=[1,6],r=[1,8],o=[1,20,21,22,23,38,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],s=[2,10],c=[1,20],l=[1,21],u=[1,22],d=[1,23],h=[1,30],f=[1,32],g=[1,33],p=[1,34],b=[1,62],m=[1,48],y=[1,52],v=[1,36],w=[1,37],x=[1,38],R=[1,39],_=[1,40],k=[1,56],E=[1,63],C=[1,51],S=[1,53],T=[1,55],A=[1,59],D=[1,60],I=[1,41],L=[1,42],O=[1,43],M=[1,44],N=[1,61],B=[1,50],P=[1,54],F=[1,57],j=[1,58],$=[1,49],z=[1,66],H=[1,71],U=[1,20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],V=[1,75],q=[1,74],W=[1,76],Y=[20,21,23,81,82],G=[1,99],Z=[1,104],K=[1,107],X=[1,108],J=[1,101],Q=[1,106],tt=[1,109],et=[1,102],nt=[1,114],it=[1,113],at=[1,103],rt=[1,105],ot=[1,110],st=[1,111],ct=[1,112],lt=[1,115],ut=[20,21,22,23,81,82],dt=[20,21,22,23,53,81,82],ht=[20,21,22,23,40,52,53,55,57,59,61,63,65,66,67,69,71,73,74,76,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],ft=[20,21,23],gt=[20,21,23,52,66,67,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],pt=[1,12,20,21,22,23,24,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],bt=[52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],mt=[1,149],yt=[1,157],vt=[1,158],wt=[1,159],xt=[1,160],Rt=[1,144],_t=[1,145],kt=[1,141],Et=[1,152],Ct=[1,153],St=[1,154],Tt=[1,155],At=[1,156],Dt=[1,161],It=[1,162],Lt=[1,147],Ot=[1,150],Mt=[1,146],Nt=[1,143],Bt=[20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],Pt=[1,165],Ft=[20,21,22,23,26,52,66,67,91,105,106,109,111,112,122,123,124,125,126,127],jt=[20,21,22,23,24,26,38,40,41,42,52,56,58,60,62,64,66,67,68,70,72,73,75,77,81,82,86,87,88,89,90,91,92,95,105,106,109,111,112,113,114,122,123,124,125,126,127],$t=[12,21,22,24],zt=[22,106],Ht=[1,250],Ut=[1,245],Vt=[1,246],qt=[1,254],Wt=[1,251],Yt=[1,248],Gt=[1,247],Zt=[1,249],Kt=[1,252],Xt=[1,253],Jt=[1,255],Qt=[1,273],te=[20,21,23,106],ee=[20,21,22,23,66,67,86,102,105,106,109,110,111,112,113],ne={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,directive:5,openDirective:6,typeDirective:7,closeDirective:8,separator:9,":":10,argDirective:11,open_directive:12,type_directive:13,arg_directive:14,close_directive:15,graphConfig:16,document:17,line:18,statement:19,SEMI:20,NEWLINE:21,SPACE:22,EOF:23,GRAPH:24,NODIR:25,DIR:26,FirstStmtSeperator:27,ending:28,endToken:29,spaceList:30,spaceListNewline:31,verticeStatement:32,styleStatement:33,linkStyleStatement:34,classDefStatement:35,classStatement:36,clickStatement:37,subgraph:38,text:39,SQS:40,SQE:41,end:42,direction:43,acc_title:44,acc_title_value:45,acc_descr:46,acc_descr_value:47,acc_descr_multiline_value:48,link:49,node:50,vertex:51,AMP:52,STYLE_SEPARATOR:53,idString:54,DOUBLECIRCLESTART:55,DOUBLECIRCLEEND:56,PS:57,PE:58,"(-":59,"-)":60,STADIUMSTART:61,STADIUMEND:62,SUBROUTINESTART:63,SUBROUTINEEND:64,VERTEX_WITH_PROPS_START:65,ALPHA:66,COLON:67,PIPE:68,CYLINDERSTART:69,CYLINDEREND:70,DIAMOND_START:71,DIAMOND_STOP:72,TAGEND:73,TRAPSTART:74,TRAPEND:75,INVTRAPSTART:76,INVTRAPEND:77,linkStatement:78,arrowText:79,TESTSTR:80,START_LINK:81,LINK:82,textToken:83,STR:84,keywords:85,STYLE:86,LINKSTYLE:87,CLASSDEF:88,CLASS:89,CLICK:90,DOWN:91,UP:92,textNoTags:93,textNoTagsToken:94,DEFAULT:95,stylesOpt:96,alphaNum:97,CALLBACKNAME:98,CALLBACKARGS:99,HREF:100,LINK_TARGET:101,HEX:102,numList:103,INTERPOLATE:104,NUM:105,COMMA:106,style:107,styleComponent:108,MINUS:109,UNIT:110,BRKT:111,DOT:112,PCT:113,TAGSTART:114,alphaNumToken:115,idStringToken:116,alphaNumStatement:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,PUNCTUATION:122,UNICODE_TEXT:123,PLUS:124,EQUALS:125,MULT:126,UNDERSCORE:127,graphCodeTokens:128,ARROW_CROSS:129,ARROW_POINT:130,ARROW_CIRCLE:131,ARROW_OPEN:132,QUOTE:133,$accept:0,$end:1},terminals_:{2:"error",10:":",12:"open_directive",13:"type_directive",14:"arg_directive",15:"close_directive",20:"SEMI",21:"NEWLINE",22:"SPACE",23:"EOF",24:"GRAPH",25:"NODIR",26:"DIR",38:"subgraph",40:"SQS",41:"SQE",42:"end",44:"acc_title",45:"acc_title_value",46:"acc_descr",47:"acc_descr_value",48:"acc_descr_multiline_value",52:"AMP",53:"STYLE_SEPARATOR",55:"DOUBLECIRCLESTART",56:"DOUBLECIRCLEEND",57:"PS",58:"PE",59:"(-",60:"-)",61:"STADIUMSTART",62:"STADIUMEND",63:"SUBROUTINESTART",64:"SUBROUTINEEND",65:"VERTEX_WITH_PROPS_START",66:"ALPHA",67:"COLON",68:"PIPE",69:"CYLINDERSTART",70:"CYLINDEREND",71:"DIAMOND_START",72:"DIAMOND_STOP",73:"TAGEND",74:"TRAPSTART",75:"TRAPEND",76:"INVTRAPSTART",77:"INVTRAPEND",80:"TESTSTR",81:"START_LINK",82:"LINK",84:"STR",86:"STYLE",87:"LINKSTYLE",88:"CLASSDEF",89:"CLASS",90:"CLICK",91:"DOWN",92:"UP",95:"DEFAULT",98:"CALLBACKNAME",99:"CALLBACKARGS",100:"HREF",101:"LINK_TARGET",102:"HEX",104:"INTERPOLATE",105:"NUM",106:"COMMA",109:"MINUS",110:"UNIT",111:"BRKT",112:"DOT",113:"PCT",114:"TAGSTART",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr",122:"PUNCTUATION",123:"UNICODE_TEXT",124:"PLUS",125:"EQUALS",126:"MULT",127:"UNDERSCORE",129:"ARROW_CROSS",130:"ARROW_POINT",131:"ARROW_CIRCLE",132:"ARROW_OPEN",133:"QUOTE"},productions_:[0,[3,1],[3,2],[5,4],[5,6],[6,1],[7,1],[11,1],[8,1],[4,2],[17,0],[17,2],[18,1],[18,1],[18,1],[18,1],[18,1],[16,2],[16,2],[16,2],[16,3],[28,2],[28,1],[29,1],[29,1],[29,1],[27,1],[27,1],[27,2],[31,2],[31,2],[31,1],[31,1],[30,2],[30,1],[19,2],[19,2],[19,2],[19,2],[19,2],[19,2],[19,9],[19,6],[19,4],[19,1],[19,2],[19,2],[19,1],[9,1],[9,1],[9,1],[32,3],[32,4],[32,2],[32,1],[50,1],[50,5],[50,3],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,8],[51,4],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,4],[51,4],[51,1],[49,2],[49,3],[49,3],[49,1],[49,3],[78,1],[79,3],[39,1],[39,2],[39,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[93,1],[93,2],[35,5],[35,5],[36,5],[37,2],[37,4],[37,3],[37,5],[37,2],[37,4],[37,4],[37,6],[37,2],[37,4],[37,2],[37,4],[37,4],[37,6],[33,5],[33,5],[34,5],[34,5],[34,9],[34,9],[34,7],[34,7],[103,1],[103,3],[96,1],[96,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[94,1],[94,1],[94,1],[94,1],[54,1],[54,2],[97,1],[97,2],[117,1],[117,1],[117,1],[117,1],[43,1],[43,1],[43,1],[43,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 5:i.parseDirective("%%{","open_directive");break;case 6:i.parseDirective(r[s],"type_directive");break;case 7:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 8:i.parseDirective("}%%","close_directive","flowchart");break;case 10:case 36:case 37:case 38:case 39:case 40:this.$=[];break;case 11:(!Array.isArray(r[s])||r[s].length>0)&&r[s-1].push(r[s]),this.$=r[s-1];break;case 12:case 82:case 84:case 96:case 152:case 154:case 155:case 78:case 150:this.$=r[s];break;case 19:i.setDirection("TB"),this.$="TB";break;case 20:i.setDirection(r[s-1]),this.$=r[s-1];break;case 35:this.$=r[s-1].nodes;break;case 41:this.$=i.addSubGraph(r[s-6],r[s-1],r[s-4]);break;case 42:this.$=i.addSubGraph(r[s-3],r[s-1],r[s-3]);break;case 43:this.$=i.addSubGraph(void 0,r[s-1],void 0);break;case 45:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 46:case 47:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 51:i.addLink(r[s-2].stmt,r[s],r[s-1]),this.$={stmt:r[s],nodes:r[s].concat(r[s-2].nodes)};break;case 52:i.addLink(r[s-3].stmt,r[s-1],r[s-2]),this.$={stmt:r[s-1],nodes:r[s-1].concat(r[s-3].nodes)};break;case 53:this.$={stmt:r[s-1],nodes:r[s-1]};break;case 54:this.$={stmt:r[s],nodes:r[s]};break;case 55:case 123:case 125:this.$=[r[s]];break;case 56:this.$=r[s-4].concat(r[s]);break;case 57:this.$=[r[s-2]],i.setClass(r[s-2],r[s]);break;case 58:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"square");break;case 59:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"doublecircle");break;case 60:this.$=r[s-5],i.addVertex(r[s-5],r[s-2],"circle");break;case 61:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"ellipse");break;case 62:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"stadium");break;case 63:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"subroutine");break;case 64:this.$=r[s-7],i.addVertex(r[s-7],r[s-1],"rect",void 0,void 0,void 0,Object.fromEntries([[r[s-5],r[s-3]]]));break;case 65:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"cylinder");break;case 66:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"round");break;case 67:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"diamond");break;case 68:this.$=r[s-5],i.addVertex(r[s-5],r[s-2],"hexagon");break;case 69:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"odd");break;case 70:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"trapezoid");break;case 71:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"inv_trapezoid");break;case 72:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"lean_right");break;case 73:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"lean_left");break;case 74:this.$=r[s],i.addVertex(r[s]);break;case 75:r[s-1].text=r[s],this.$=r[s-1];break;case 76:case 77:r[s-2].text=r[s-1],this.$=r[s-2];break;case 79:var c=i.destructLink(r[s],r[s-2]);this.$={type:c.type,stroke:c.stroke,length:c.length,text:r[s-1]};break;case 80:c=i.destructLink(r[s]);this.$={type:c.type,stroke:c.stroke,length:c.length};break;case 81:this.$=r[s-1];break;case 83:case 97:case 153:case 151:this.$=r[s-1]+""+r[s];break;case 98:case 99:this.$=r[s-4],i.addClass(r[s-2],r[s]);break;case 100:this.$=r[s-4],i.setClass(r[s-2],r[s]);break;case 101:case 109:this.$=r[s-1],i.setClickEvent(r[s-1],r[s]);break;case 102:case 110:this.$=r[s-3],i.setClickEvent(r[s-3],r[s-2]),i.setTooltip(r[s-3],r[s]);break;case 103:this.$=r[s-2],i.setClickEvent(r[s-2],r[s-1],r[s]);break;case 104:this.$=r[s-4],i.setClickEvent(r[s-4],r[s-3],r[s-2]),i.setTooltip(r[s-4],r[s]);break;case 105:case 111:this.$=r[s-1],i.setLink(r[s-1],r[s]);break;case 106:case 112:this.$=r[s-3],i.setLink(r[s-3],r[s-2]),i.setTooltip(r[s-3],r[s]);break;case 107:case 113:this.$=r[s-3],i.setLink(r[s-3],r[s-2],r[s]);break;case 108:case 114:this.$=r[s-5],i.setLink(r[s-5],r[s-4],r[s]),i.setTooltip(r[s-5],r[s-2]);break;case 115:this.$=r[s-4],i.addVertex(r[s-2],void 0,void 0,r[s]);break;case 116:case 118:this.$=r[s-4],i.updateLink(r[s-2],r[s]);break;case 117:this.$=r[s-4],i.updateLink([r[s-2]],r[s]);break;case 119:this.$=r[s-8],i.updateLinkInterpolate([r[s-6]],r[s-2]),i.updateLink([r[s-6]],r[s]);break;case 120:this.$=r[s-8],i.updateLinkInterpolate(r[s-6],r[s-2]),i.updateLink(r[s-6],r[s]);break;case 121:this.$=r[s-6],i.updateLinkInterpolate([r[s-4]],r[s]);break;case 122:this.$=r[s-6],i.updateLinkInterpolate(r[s-4],r[s]);break;case 124:case 126:r[s-2].push(r[s]),this.$=r[s-2];break;case 128:this.$=r[s-1]+r[s];break;case 156:this.$="v";break;case 157:this.$="-";break;case 158:this.$={stmt:"dir",value:"TB"};break;case 159:this.$={stmt:"dir",value:"BT"};break;case 160:this.$={stmt:"dir",value:"RL"};break;case 161:this.$={stmt:"dir",value:"LR"}}},table:[{3:1,4:2,5:3,6:5,12:n,16:4,21:i,22:a,24:r},{1:[3]},{1:[2,1]},{3:10,4:2,5:3,6:5,12:n,16:4,21:i,22:a,24:r},e(o,s,{17:11}),{7:12,13:[1,13]},{16:14,21:i,22:a,24:r},{16:15,21:i,22:a,24:r},{25:[1,16],26:[1,17]},{13:[2,5]},{1:[2,2]},{1:[2,9],18:18,19:19,20:c,21:l,22:u,23:d,32:24,33:25,34:26,35:27,36:28,37:29,38:h,43:31,44:f,46:g,48:p,50:35,51:45,52:b,54:46,66:m,67:y,86:v,87:w,88:x,89:R,90:_,91:k,95:E,105:C,106:S,109:T,111:A,112:D,116:47,118:I,119:L,120:O,121:M,122:N,123:B,124:P,125:F,126:j,127:$},{8:64,10:[1,65],15:z},e([10,15],[2,6]),e(o,[2,17]),e(o,[2,18]),e(o,[2,19]),{20:[1,68],21:[1,69],22:H,27:67,30:70},e(U,[2,11]),e(U,[2,12]),e(U,[2,13]),e(U,[2,14]),e(U,[2,15]),e(U,[2,16]),{9:72,20:V,21:q,23:W,49:73,78:77,81:[1,78],82:[1,79]},{9:80,20:V,21:q,23:W},{9:81,20:V,21:q,23:W},{9:82,20:V,21:q,23:W},{9:83,20:V,21:q,23:W},{9:84,20:V,21:q,23:W},{9:86,20:V,21:q,22:[1,85],23:W},e(U,[2,44]),{45:[1,87]},{47:[1,88]},e(U,[2,47]),e(Y,[2,54],{30:89,22:H}),{22:[1,90]},{22:[1,91]},{22:[1,92]},{22:[1,93]},{26:G,52:Z,66:K,67:X,84:[1,97],91:J,97:96,98:[1,94],100:[1,95],105:Q,106:tt,109:et,111:nt,112:it,115:100,117:98,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(U,[2,158]),e(U,[2,159]),e(U,[2,160]),e(U,[2,161]),e(ut,[2,55],{53:[1,116]}),e(dt,[2,74],{116:129,40:[1,117],52:b,55:[1,118],57:[1,119],59:[1,120],61:[1,121],63:[1,122],65:[1,123],66:m,67:y,69:[1,124],71:[1,125],73:[1,126],74:[1,127],76:[1,128],91:k,95:E,105:C,106:S,109:T,111:A,112:D,122:N,123:B,124:P,125:F,126:j,127:$}),e(ht,[2,150]),e(ht,[2,175]),e(ht,[2,176]),e(ht,[2,177]),e(ht,[2,178]),e(ht,[2,179]),e(ht,[2,180]),e(ht,[2,181]),e(ht,[2,182]),e(ht,[2,183]),e(ht,[2,184]),e(ht,[2,185]),e(ht,[2,186]),e(ht,[2,187]),e(ht,[2,188]),e(ht,[2,189]),e(ht,[2,190]),{9:130,20:V,21:q,23:W},{11:131,14:[1,132]},e(ft,[2,8]),e(o,[2,20]),e(o,[2,26]),e(o,[2,27]),{21:[1,133]},e(gt,[2,34],{30:134,22:H}),e(U,[2,35]),{50:135,51:45,52:b,54:46,66:m,67:y,91:k,95:E,105:C,106:S,109:T,111:A,112:D,116:47,122:N,123:B,124:P,125:F,126:j,127:$},e(pt,[2,48]),e(pt,[2,49]),e(pt,[2,50]),e(bt,[2,78],{79:136,68:[1,138],80:[1,137]}),{22:mt,24:yt,26:vt,38:wt,39:139,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e([52,66,67,68,80,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,80]),e(U,[2,36]),e(U,[2,37]),e(U,[2,38]),e(U,[2,39]),e(U,[2,40]),{22:mt,24:yt,26:vt,38:wt,39:163,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(Bt,s,{17:164}),e(U,[2,45]),e(U,[2,46]),e(Y,[2,53],{52:Pt}),{26:G,52:Z,66:K,67:X,91:J,97:166,102:[1,167],105:Q,106:tt,109:et,111:nt,112:it,115:100,117:98,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{95:[1,168],103:169,105:[1,170]},{26:G,52:Z,66:K,67:X,91:J,95:[1,171],97:172,105:Q,106:tt,109:et,111:nt,112:it,115:100,117:98,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{26:G,52:Z,66:K,67:X,91:J,97:173,105:Q,106:tt,109:et,111:nt,112:it,115:100,117:98,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(ft,[2,101],{22:[1,174],99:[1,175]}),e(ft,[2,105],{22:[1,176]}),e(ft,[2,109],{115:100,117:178,22:[1,177],26:G,52:Z,66:K,67:X,91:J,105:Q,106:tt,109:et,111:nt,112:it,122:at,123:rt,124:ot,125:st,126:ct,127:lt}),e(ft,[2,111],{22:[1,179]}),e(Ft,[2,152]),e(Ft,[2,154]),e(Ft,[2,155]),e(Ft,[2,156]),e(Ft,[2,157]),e(jt,[2,162]),e(jt,[2,163]),e(jt,[2,164]),e(jt,[2,165]),e(jt,[2,166]),e(jt,[2,167]),e(jt,[2,168]),e(jt,[2,169]),e(jt,[2,170]),e(jt,[2,171]),e(jt,[2,172]),e(jt,[2,173]),e(jt,[2,174]),{52:b,54:180,66:m,67:y,91:k,95:E,105:C,106:S,109:T,111:A,112:D,116:47,122:N,123:B,124:P,125:F,126:j,127:$},{22:mt,24:yt,26:vt,38:wt,39:181,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:182,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:184,42:xt,52:Z,57:[1,183],66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:185,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:186,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:187,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{66:[1,188]},{22:mt,24:yt,26:vt,38:wt,39:189,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:190,42:xt,52:Z,66:K,67:X,71:[1,191],73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:192,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:193,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:194,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(ht,[2,151]),e($t,[2,3]),{8:195,15:z},{15:[2,7]},e(o,[2,28]),e(gt,[2,33]),e(Y,[2,51],{30:196,22:H}),e(bt,[2,75],{22:[1,197]}),{22:[1,198]},{22:mt,24:yt,26:vt,38:wt,39:199,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,82:[1,200],83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(jt,[2,82]),e(jt,[2,84]),e(jt,[2,140]),e(jt,[2,141]),e(jt,[2,142]),e(jt,[2,143]),e(jt,[2,144]),e(jt,[2,145]),e(jt,[2,146]),e(jt,[2,147]),e(jt,[2,148]),e(jt,[2,149]),e(jt,[2,85]),e(jt,[2,86]),e(jt,[2,87]),e(jt,[2,88]),e(jt,[2,89]),e(jt,[2,90]),e(jt,[2,91]),e(jt,[2,92]),e(jt,[2,93]),e(jt,[2,94]),e(jt,[2,95]),{9:203,20:V,21:q,22:mt,23:W,24:yt,26:vt,38:wt,40:[1,202],42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{18:18,19:19,20:c,21:l,22:u,23:d,32:24,33:25,34:26,35:27,36:28,37:29,38:h,42:[1,204],43:31,44:f,46:g,48:p,50:35,51:45,52:b,54:46,66:m,67:y,86:v,87:w,88:x,89:R,90:_,91:k,95:E,105:C,106:S,109:T,111:A,112:D,116:47,118:I,119:L,120:O,121:M,122:N,123:B,124:P,125:F,126:j,127:$},{22:H,30:205},{22:[1,206],26:G,52:Z,66:K,67:X,91:J,105:Q,106:tt,109:et,111:nt,112:it,115:100,117:178,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:[1,207]},{22:[1,208]},{22:[1,209],106:[1,210]},e(zt,[2,123]),{22:[1,211]},{22:[1,212],26:G,52:Z,66:K,67:X,91:J,105:Q,106:tt,109:et,111:nt,112:it,115:100,117:178,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:[1,213],26:G,52:Z,66:K,67:X,91:J,105:Q,106:tt,109:et,111:nt,112:it,115:100,117:178,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{84:[1,214]},e(ft,[2,103],{22:[1,215]}),{84:[1,216],101:[1,217]},{84:[1,218]},e(Ft,[2,153]),{84:[1,219],101:[1,220]},e(ut,[2,57],{116:129,52:b,66:m,67:y,91:k,95:E,105:C,106:S,109:T,111:A,112:D,122:N,123:B,124:P,125:F,126:j,127:$}),{22:mt,24:yt,26:vt,38:wt,41:[1,221],42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,56:[1,222],66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:223,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,58:[1,224],66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,60:[1,225],66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,62:[1,226],66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,64:[1,227],66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{67:[1,228]},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,66:K,67:X,70:[1,229],73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,66:K,67:X,72:[1,230],73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:231,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,41:[1,232],42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,66:K,67:X,73:Rt,75:[1,233],77:[1,234],81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,66:K,67:X,73:Rt,75:[1,236],77:[1,235],81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{9:237,20:V,21:q,23:W},e(Y,[2,52],{52:Pt}),e(bt,[2,77]),e(bt,[2,76]),{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,66:K,67:X,68:[1,238],73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(bt,[2,79]),e(jt,[2,83]),{22:mt,24:yt,26:vt,38:wt,39:239,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(Bt,s,{17:240}),e(U,[2,43]),{51:241,52:b,54:46,66:m,67:y,91:k,95:E,105:C,106:S,109:T,111:A,112:D,116:47,122:N,123:B,124:P,125:F,126:j,127:$},{22:Ht,66:Ut,67:Vt,86:qt,96:242,102:Wt,105:Yt,107:243,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},{22:Ht,66:Ut,67:Vt,86:qt,96:256,102:Wt,105:Yt,107:243,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},{22:Ht,66:Ut,67:Vt,86:qt,96:257,102:Wt,104:[1,258],105:Yt,107:243,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},{22:Ht,66:Ut,67:Vt,86:qt,96:259,102:Wt,104:[1,260],105:Yt,107:243,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},{105:[1,261]},{22:Ht,66:Ut,67:Vt,86:qt,96:262,102:Wt,105:Yt,107:243,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},{22:Ht,66:Ut,67:Vt,86:qt,96:263,102:Wt,105:Yt,107:243,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},{26:G,52:Z,66:K,67:X,91:J,97:264,105:Q,106:tt,109:et,111:nt,112:it,115:100,117:98,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(ft,[2,102]),{84:[1,265]},e(ft,[2,106],{22:[1,266]}),e(ft,[2,107]),e(ft,[2,110]),e(ft,[2,112],{22:[1,267]}),e(ft,[2,113]),e(dt,[2,58]),e(dt,[2,59]),{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,58:[1,268],66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(dt,[2,66]),e(dt,[2,61]),e(dt,[2,62]),e(dt,[2,63]),{66:[1,269]},e(dt,[2,65]),e(dt,[2,67]),{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,66:K,67:X,72:[1,270],73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(dt,[2,69]),e(dt,[2,70]),e(dt,[2,72]),e(dt,[2,71]),e(dt,[2,73]),e($t,[2,4]),e([22,52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,81]),{22:mt,24:yt,26:vt,38:wt,41:[1,271],42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{18:18,19:19,20:c,21:l,22:u,23:d,32:24,33:25,34:26,35:27,36:28,37:29,38:h,42:[1,272],43:31,44:f,46:g,48:p,50:35,51:45,52:b,54:46,66:m,67:y,86:v,87:w,88:x,89:R,90:_,91:k,95:E,105:C,106:S,109:T,111:A,112:D,116:47,118:I,119:L,120:O,121:M,122:N,123:B,124:P,125:F,126:j,127:$},e(ut,[2,56]),e(ft,[2,115],{106:Qt}),e(te,[2,125],{108:274,22:Ht,66:Ut,67:Vt,86:qt,102:Wt,105:Yt,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt}),e(ee,[2,127]),e(ee,[2,129]),e(ee,[2,130]),e(ee,[2,131]),e(ee,[2,132]),e(ee,[2,133]),e(ee,[2,134]),e(ee,[2,135]),e(ee,[2,136]),e(ee,[2,137]),e(ee,[2,138]),e(ee,[2,139]),e(ft,[2,116],{106:Qt}),e(ft,[2,117],{106:Qt}),{22:[1,275]},e(ft,[2,118],{106:Qt}),{22:[1,276]},e(zt,[2,124]),e(ft,[2,98],{106:Qt}),e(ft,[2,99],{106:Qt}),e(ft,[2,100],{115:100,117:178,26:G,52:Z,66:K,67:X,91:J,105:Q,106:tt,109:et,111:nt,112:it,122:at,123:rt,124:ot,125:st,126:ct,127:lt}),e(ft,[2,104]),{101:[1,277]},{101:[1,278]},{58:[1,279]},{68:[1,280]},{72:[1,281]},{9:282,20:V,21:q,23:W},e(U,[2,42]),{22:Ht,66:Ut,67:Vt,86:qt,102:Wt,105:Yt,107:283,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},e(ee,[2,128]),{26:G,52:Z,66:K,67:X,91:J,97:284,105:Q,106:tt,109:et,111:nt,112:it,115:100,117:98,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{26:G,52:Z,66:K,67:X,91:J,97:285,105:Q,106:tt,109:et,111:nt,112:it,115:100,117:98,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(ft,[2,108]),e(ft,[2,114]),e(dt,[2,60]),{22:mt,24:yt,26:vt,38:wt,39:286,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(dt,[2,68]),e(Bt,s,{17:287}),e(te,[2,126],{108:274,22:Ht,66:Ut,67:Vt,86:qt,102:Wt,105:Yt,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt}),e(ft,[2,121],{115:100,117:178,22:[1,288],26:G,52:Z,66:K,67:X,91:J,105:Q,106:tt,109:et,111:nt,112:it,122:at,123:rt,124:ot,125:st,126:ct,127:lt}),e(ft,[2,122],{115:100,117:178,22:[1,289],26:G,52:Z,66:K,67:X,91:J,105:Q,106:tt,109:et,111:nt,112:it,122:at,123:rt,124:ot,125:st,126:ct,127:lt}),{22:mt,24:yt,26:vt,38:wt,41:[1,290],42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{18:18,19:19,20:c,21:l,22:u,23:d,32:24,33:25,34:26,35:27,36:28,37:29,38:h,42:[1,291],43:31,44:f,46:g,48:p,50:35,51:45,52:b,54:46,66:m,67:y,86:v,87:w,88:x,89:R,90:_,91:k,95:E,105:C,106:S,109:T,111:A,112:D,116:47,118:I,119:L,120:O,121:M,122:N,123:B,124:P,125:F,126:j,127:$},{22:Ht,66:Ut,67:Vt,86:qt,96:292,102:Wt,105:Yt,107:243,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},{22:Ht,66:Ut,67:Vt,86:qt,96:293,102:Wt,105:Yt,107:243,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},e(dt,[2,64]),e(U,[2,41]),e(ft,[2,119],{106:Qt}),e(ft,[2,120],{106:Qt})],defaultActions:{2:[2,1],9:[2,5],10:[2,2],132:[2,7]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},ie=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),12;case 1:return this.begin("type_directive"),13;case 2:return this.popState(),this.begin("arg_directive"),10;case 3:return this.popState(),this.popState(),15;case 4:return 14;case 5:case 6:break;case 7:return this.begin("acc_title"),44;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),46;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:case 15:case 24:case 27:case 30:case 33:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:this.begin("string");break;case 16:return"STR";case 17:return 86;case 18:return 95;case 19:return 87;case 20:return 104;case 21:return 88;case 22:return 89;case 23:this.begin("href");break;case 25:return 100;case 26:this.begin("callbackname");break;case 28:this.popState(),this.begin("callbackargs");break;case 29:return 98;case 31:return 99;case 32:this.begin("click");break;case 34:return 90;case 35:case 36:case 37:return t.lex.firstGraph()&&this.begin("dir"),24;case 38:return 38;case 39:return 42;case 40:case 41:case 42:case 43:return 101;case 44:return this.popState(),25;case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 54:return this.popState(),26;case 55:return 118;case 56:return 119;case 57:return 120;case 58:return 121;case 59:return 105;case 60:return 111;case 61:return 53;case 62:return 67;case 63:return 52;case 64:return 20;case 65:return 106;case 66:return 126;case 67:case 68:case 69:return 82;case 70:case 71:case 72:return 81;case 73:return 59;case 74:return 60;case 75:return 61;case 76:return 62;case 77:return 63;case 78:return 64;case 79:return 65;case 80:return 69;case 81:return 70;case 82:return 55;case 83:return 56;case 84:return 109;case 85:return 112;case 86:return 127;case 87:return 124;case 88:return 113;case 89:case 90:return 125;case 91:return 114;case 92:return 73;case 93:return 92;case 94:return"SEP";case 95:return 91;case 96:return 66;case 97:return 75;case 98:return 74;case 99:return 77;case 100:return 76;case 101:return 122;case 102:return 123;case 103:return 68;case 104:return 57;case 105:return 58;case 106:return 40;case 107:return 41;case 108:return 71;case 109:return 72;case 110:return 133;case 111:return 21;case 112:return 22;case 113:return 23}},rules:[/^(?:%%\{)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)[^\n]*)/,/^(?:[^\}]%%[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\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<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\[)/,/^(?:\]\))/,/^(?:\[\[)/,/^(?:\]\])/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\])/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:-)/,/^(?:\.)/,/^(?:[\_])/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\])/,/^(?:\[\/)/,/^(?:\/\])/,/^(?:\[\\)/,/^(?:[!"#$%&'*+,-.`?\\_/])/,/^(?:[\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:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[30,31],inclusive:!1},callbackname:{rules:[27,28,29],inclusive:!1},href:{rules:[24,25],inclusive:!1},click:{rules:[33,34],inclusive:!1},vertex:{rules:[],inclusive:!1},dir:{rules:[44,45,46,47,48,49,50,51,52,53,54],inclusive:!1},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},string:{rules:[15,16],inclusive:!1},INITIAL:{rules:[0,5,6,7,9,11,14,17,18,19,20,21,22,23,26,32,35,36,37,38,39,40,41,42,43,55,56,57,58,59,60,61,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,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113],inclusive:!0}}},t);function ae(){this.yy={}}return ne.lexer=ie,ae.prototype=ne,ne.Parser=ae,new ae}();bs.parser=bs;const ms=bs,ys=(t,e)=>{var n,i;return"dagre-wrapper"!==(null==(n=null==e?void 0:e.flowchart)?void 0:n.defaultRenderer)&&("elk"!==(null==(i=null==e?void 0:e.flowchart)?void 0:i.defaultRenderer)&&null!==t.match(/^\s*graph/))},vs=(t,e)=>{var n,i;return"dagre-d3"!==(null==(n=null==e?void 0:e.flowchart)?void 0:n.defaultRenderer)&&("elk"!==(null==(i=null==e?void 0:e.flowchart)?void 0:i.defaultRenderer)&&(null!==t.match(/^\s*graph/)||null!==t.match(/^\s*flowchart/)))};let ws,xs,Rs=0,_s=ai(),ks={},Es=[],Cs={},Ss=[],Ts={},As={},Ds=0,Is=!0,Ls=[];const Os=t=>zt.sanitizeText(t,_s),Ms=function(t,e,n){rf.parseDirective(this,t,e,n)},Ns=function(t){const e=Object.keys(ks);for(const n of e)if(ks[n].id===t)return ks[n].domId;return t},Bs=function(t,e,n,i,a,r,o={}){let s,c=t;void 0!==c&&0!==c.trim().length&&(void 0===ks[c]&&(ks[c]={id:c,domId:"flowchart-"+c+"-"+Rs,styles:[],classes:[]}),Rs++,void 0!==e?(_s=ai(),s=Os(e.trim()),'"'===s[0]&&'"'===s[s.length-1]&&(s=s.substring(1,s.length-1)),ks[c].text=s):void 0===ks[c].text&&(ks[c].text=t),void 0!==n&&(ks[c].type=n),null!=i&&i.forEach((function(t){ks[c].styles.push(t)})),null!=a&&a.forEach((function(t){ks[c].classes.push(t)})),void 0!==r&&(ks[c].dir=r),void 0===ks[c].props?ks[c].props=o:void 0!==o&&Object.assign(ks[c].props,o))},Ps=function(t,e,n,i){const a={start:t,end:e,type:void 0,text:""};void 0!==(i=n.text)&&(a.text=Os(i.trim()),'"'===a.text[0]&&'"'===a.text[a.text.length-1]&&(a.text=a.text.substring(1,a.text.length-1))),void 0!==n&&(a.type=n.type,a.stroke=n.stroke,a.length=n.length),Es.push(a)},Fs=function(t,e,n,i){let a,r;for(a=0;a<t.length;a++)for(r=0;r<e.length;r++)Ps(t[a],e[r],n,i)},js=function(t,e){t.forEach((function(t){"default"===t?Es.defaultInterpolate=e:Es[t].interpolate=e}))},$s=function(t,e){t.forEach((function(t){"default"===t?Es.defaultStyle=e:(-1===Gn.isSubstringInArray("fill",e)&&e.push("fill:none"),Es[t].style=e)}))},zs=function(t,e){void 0===Cs[t]&&(Cs[t]={id:t,styles:[],textStyles:[]}),null!=e&&e.forEach((function(e){if(e.match("color")){const n=e.replace("fill","bgFill").replace("color","fill");Cs[t].textStyles.push(n)}Cs[t].styles.push(e)}))},Hs=function(t){ws=t,ws.match(/.*</)&&(ws="RL"),ws.match(/.*\^/)&&(ws="BT"),ws.match(/.*>/)&&(ws="LR"),ws.match(/.*v/)&&(ws="TB"),"TD"===ws&&(ws="TB")},Us=function(t,e){t.split(",").forEach((function(t){let n=t;void 0!==ks[n]&&ks[n].classes.push(e),void 0!==Ts[n]&&Ts[n].classes.push(e)}))},Vs=function(t,e,n){t.split(",").forEach((function(t){void 0!==ks[t]&&(ks[t].link=Gn.formatUrl(e,_s),ks[t].linkTarget=n)})),Us(t,"clickable")},qs=function(t){return As[t]},Ws=function(t,e,n){t.split(",").forEach((function(t){!function(t,e,n){let i=Ns(t);if("loose"!==ai().securityLevel)return;if(void 0===e)return;let a=[];if("string"==typeof n){a=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t<a.length;t++){let e=a[t].trim();'"'===e.charAt(0)&&'"'===e.charAt(e.length-1)&&(e=e.substr(1,e.length-2)),a[t]=e}}0===a.length&&a.push(t),void 0!==ks[t]&&(ks[t].haveCallback=!0,Ls.push((function(){const t=document.querySelector(`[id="${i}"]`);null!==t&&t.addEventListener("click",(function(){Gn.runFunc(e,...a)}),!1)})))}(t,e,n)})),Us(t,"clickable")},Ys=function(t){Ls.forEach((function(e){e(t)}))},Gs=function(){return ws.trim()},Zs=function(){return ks},Ks=function(){return Es},Xs=function(){return Cs},Js=function(t){let e=(0,s.Ys)(".mermaidTooltip");null===(e._groups||e)[0][0]&&(e=(0,s.Ys)("body").append("div").attr("class","mermaidTooltip").style("opacity",0));(0,s.Ys)(t).select("svg").selectAll("g.node").on("mouseover",(function(){const t=(0,s.Ys)(this);if(null===t.attr("title"))return;const n=this.getBoundingClientRect();e.transition().duration(200).style("opacity",".9"),e.text(t.attr("title")).style("left",window.scrollX+n.left+(n.right-n.left)/2+"px").style("top",window.scrollY+n.top-14+document.body.scrollTop+"px"),e.html(e.html().replace(/<br\/>/g,"<br/>")),t.classed("hover",!0)})).on("mouseout",(function(){e.transition().duration(500).style("opacity",0);(0,s.Ys)(this).classed("hover",!1)}))};Ls.push(Js);const Qs=function(t="gen-1"){ks={},Cs={},Es=[],Ls=[Js],Ss=[],Ts={},Ds=0,As=[],Is=!0,xs=t,Ii()},tc=t=>{xs=t||"gen-2"},ec=function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},nc=function(t,e,n){let i=t.trim(),a=n;t===n&&n.match(/\s/)&&(i=void 0);let r=[];const{nodeList:o,dir:s}=function(t){const e={boolean:{},number:{},string:{}},n=[];let i;return{nodeList:t.filter((function(t){const a=typeof t;return t.stmt&&"dir"===t.stmt?(i=t.value,!1):""!==t.trim()&&(a in e?!e[a].hasOwnProperty(t)&&(e[a][t]=!0):!n.includes(t)&&n.push(t))})),dir:i}}(r.concat.apply(r,e));if(r=o,"gen-1"===xs)for(let l=0;l<r.length;l++)r[l]=Ns(r[l]);i=i||"subGraph"+Ds,a=a||"",a=Os(a),Ds+=1;const c={id:i,nodes:r,title:a.trim(),classes:[],dir:s};return Dt.info("Adding",c.id,c.nodes,c.dir),c.nodes=fc(c,Ss).nodes,Ss.push(c),Ts[i]=c,i},ic=function(t){for(const[e,n]of Ss.entries())if(n.id===t)return e;return-1};let ac=-1;const rc=[],oc=function(t,e){const n=Ss[e].nodes;if(ac+=1,ac>2e3)return;if(rc[ac]=e,Ss[e].id===t)return{result:!0,count:0};let i=0,a=1;for(;i<n.length;){const e=ic(n[i]);if(e>=0){const n=oc(t,e);if(n.result)return{result:!0,count:a+n.count};a+=n.count}i+=1}return{result:!1,count:a}},sc=function(t){return rc[t]},cc=function(){ac=-1,Ss.length>0&&oc("none",Ss.length-1)},lc=function(){return Ss},uc=()=>!!Is&&(Is=!1,!0),dc=(t,e)=>{const n=(t=>{const e=t.trim();let n=e.slice(0,-1),i="arrow_open";switch(e.slice(-1)){case"x":i="arrow_cross","x"===e[0]&&(i="double_"+i,n=n.slice(1));break;case">":i="arrow_point","<"===e[0]&&(i="double_"+i,n=n.slice(1));break;case"o":i="arrow_circle","o"===e[0]&&(i="double_"+i,n=n.slice(1))}let a="normal",r=n.length-1;"="===n[0]&&(a="thick");let o=((t,e)=>{const n=e.length;let i=0;for(let a=0;a<n;++a)e[a]===t&&++i;return i})(".",n);return o&&(a="dotted",r=o),{type:i,stroke:a,length:r}})(t);let i;if(e){if(i=(t=>{let e=t.trim(),n="arrow_open";switch(e[0]){case"<":n="arrow_point",e=e.slice(1);break;case"x":n="arrow_cross",e=e.slice(1);break;case"o":n="arrow_circle",e=e.slice(1)}let i="normal";return e.includes("=")&&(i="thick"),e.includes(".")&&(i="dotted"),{type:n,stroke:i}})(e),i.stroke!==n.stroke)return{type:"INVALID",stroke:"INVALID"};if("arrow_open"===i.type)i.type=n.type;else{if(i.type!==n.type)return{type:"INVALID",stroke:"INVALID"};i.type="double_"+i.type}return"double_arrow"===i.type&&(i.type="double_arrow_point"),i.length=n.length,i}return n},hc=(t,e)=>{let n=!1;return t.forEach((t=>{t.nodes.indexOf(e)>=0&&(n=!0)})),n},fc=(t,e)=>{const n=[];return t.nodes.forEach(((i,a)=>{hc(e,i)||n.push(t.nodes[a])})),{nodes:n}},gc={firstGraph:uc},pc={parseDirective:Ms,defaultConfig:()=>Kn.flowchart,setAccTitle:Li,getAccTitle:Oi,getAccDescription:Ni,setAccDescription:Mi,addVertex:Bs,lookUpDomId:Ns,addLink:Fs,updateLinkInterpolate:js,updateLink:$s,addClass:zs,setDirection:Hs,setClass:Us,setTooltip:function(t,e){t.split(",").forEach((function(t){void 0!==e&&(As["gen-1"===xs?Ns(t):t]=Os(e))}))},getTooltip:qs,setClickEvent:Ws,setLink:Vs,bindFunctions:Ys,getDirection:Gs,getVertices:Zs,getEdges:Ks,getClasses:Xs,clear:Qs,setGen:tc,defaultStyle:ec,addSubGraph:nc,getDepthFirstPos:sc,indexNodes:cc,getSubGraphs:lc,destructLink:dc,lex:gc,exists:hc,makeUniq:fc,setDiagramTitle:Bi,getDiagramTitle:Pi},bc=Object.freeze(Object.defineProperty({__proto__:null,addClass:zs,addLink:Fs,addSingleLink:Ps,addSubGraph:nc,addVertex:Bs,bindFunctions:Ys,clear:Qs,default:pc,defaultStyle:ec,destructLink:dc,firstGraph:uc,getClasses:Xs,getDepthFirstPos:sc,getDirection:Gs,getEdges:Ks,getSubGraphs:lc,getTooltip:qs,getVertices:Zs,indexNodes:cc,lex:gc,lookUpDomId:Ns,parseDirective:Ms,setClass:Us,setClickEvent:Ws,setDirection:Hs,setGen:tc,setLink:Vs,updateLink:$s,updateLinkInterpolate:js},Symbol.toStringTag,{value:"Module"}));const mc={},yc=function(t){const e=Object.keys(t);for(const n of e)mc[n]=t[n]},vc={},wc=function(t,e,n,i,a,r){const o=i.select(`[id="${n}"]`);Object.keys(t).forEach((function(n){const i=t[n];let s="default";i.classes.length>0&&(s=i.classes.join(" "));const c=On(i.styles);let l,u=void 0!==i.text?i.text:i.id;if(jt(ai().flowchart.htmlLabels)){const t={label:u.replace(/fa[blrs]?:fa-[\w-]+/g,(t=>`<i class='${t.replace(":"," ")}'></i>`))};l=(0,xt.a)(o,t).node(),l.parentNode.removeChild(l)}else{const t=a.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",c.labelStyle.replace("color:","fill:"));const e=u.split(zt.lineBreakRegex);for(const n of e){const e=a.createElementNS("http://www.w3.org/2000/svg","tspan");e.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),e.setAttribute("dy","1em"),e.setAttribute("x","1"),e.textContent=n,t.appendChild(e)}l=t}let d=0,h="";switch(i.type){case"round":d=5,h="rect";break;case"square":case"group":default:h="rect";break;case"diamond":h="question";break;case"hexagon":h="hexagon";break;case"odd":case"odd_right":h="rect_left_inv_arrow";break;case"lean_right":h="lean_right";break;case"lean_left":h="lean_left";break;case"trapezoid":h="trapezoid";break;case"inv_trapezoid":h="inv_trapezoid";break;case"circle":h="circle";break;case"ellipse":h="ellipse";break;case"stadium":h="stadium";break;case"subroutine":h="subroutine";break;case"cylinder":h="cylinder";break;case"doublecircle":h="doublecircle"}e.setNode(i.id,{labelStyle:c.labelStyle,shape:h,labelText:u,rx:d,ry:d,class:s,style:c.style,id:i.id,link:i.link,linkTarget:i.linkTarget,tooltip:r.db.getTooltip(i.id)||"",domId:r.db.lookUpDomId(i.id),haveCallback:i.haveCallback,width:"group"===i.type?500:void 0,dir:i.dir,type:i.type,props:i.props,padding:ai().flowchart.padding}),Dt.info("setNode",{labelStyle:c.labelStyle,shape:h,labelText:u,rx:d,ry:d,class:s,style:c.style,id:i.id,domId:r.db.lookUpDomId(i.id),width:"group"===i.type?500:void 0,type:i.type,dir:i.dir,props:i.props,padding:ai().flowchart.padding})}))},xc=function(t,e,n){Dt.info("abc78 edges = ",t);let i,a,r=0,o={};if(void 0!==t.defaultStyle){const e=On(t.defaultStyle);i=e.style,a=e.labelStyle}t.forEach((function(n){r++;var c="L-"+n.start+"-"+n.end;void 0===o[c]?(o[c]=0,Dt.info("abc78 new entry",c,o[c])):(o[c]++,Dt.info("abc78 new entry",c,o[c]));let l=c+"-"+o[c];Dt.info("abc78 new link id to be used is",c,l,o[c]);var u="LS-"+n.start,d="LE-"+n.end;const h={style:"",labelStyle:""};switch(h.minlen=n.length||1,"arrow_open"===n.type?h.arrowhead="none":h.arrowhead="normal",h.arrowTypeStart="arrow_open",h.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":h.arrowTypeStart="arrow_cross";case"arrow_cross":h.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":h.arrowTypeStart="arrow_point";case"arrow_point":h.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":h.arrowTypeStart="arrow_circle";case"arrow_circle":h.arrowTypeEnd="arrow_circle"}let f="",g="";switch(n.stroke){case"normal":f="fill:none;",void 0!==i&&(f=i),void 0!==a&&(g=a),h.thickness="normal",h.pattern="solid";break;case"dotted":h.thickness="normal",h.pattern="dotted",h.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":h.thickness="thick",h.pattern="solid",h.style="stroke-width: 3.5px;fill:none;"}if(void 0!==n.style){const t=On(n.style);f=t.style,g=t.labelStyle}h.style=h.style+=f,h.labelStyle=h.labelStyle+=g,void 0!==n.interpolate?h.curve=In(n.interpolate,s.c_6):void 0!==t.defaultInterpolate?h.curve=In(t.defaultInterpolate,s.c_6):h.curve=In(vc.curve,s.c_6),void 0===n.text?void 0!==n.style&&(h.arrowheadStyle="fill: #333"):(h.arrowheadStyle="fill: #333",h.labelpos="c"),h.labelType="text",h.label=n.text.replace(zt.lineBreakRegex,"\n"),void 0===n.style&&(h.style=h.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),h.labelStyle=h.labelStyle.replace("color:","fill:"),h.id=l,h.classes="flowchart-link "+u+" "+d,e.setEdge(n.start,n.end,h,r)}))},Rc={setConf:function(t){const e=Object.keys(t);for(const n of e)vc[n]=t[n]},addVertices:wc,addEdges:xc,getClasses:function(t,e){Dt.info("Extracting classes"),e.db.clear();try{return e.parse(t),e.db.getClasses()}catch(n){return}},draw:function(t,e,n,i){Dt.info("Drawing flowchart"),i.db.clear(),pc.setGen("gen-2"),i.parser.parse(t);let a=i.db.getDirection();void 0===a&&(a="TD");const{securityLevel:r,flowchart:o}=ai(),c=o.nodeSpacing||50,l=o.rankSpacing||50;let u;"sandbox"===r&&(u=(0,s.Ys)("#i"+e));const d="sandbox"===r?(0,s.Ys)(u.nodes()[0].contentDocument.body):(0,s.Ys)("body"),h="sandbox"===r?u.nodes()[0].contentDocument:document,f=new lt.k({multigraph:!0,compound:!0}).setGraph({rankdir:a,nodesep:c,ranksep:l,marginx:0,marginy:0}).setDefaultEdgeLabel((function(){return{}}));let g;const p=i.db.getSubGraphs();Dt.info("Subgraphs - ",p);for(let s=p.length-1;s>=0;s--)g=p[s],Dt.info("Subgraph - ",g),i.db.addVertex(g.id,g.title,"group",void 0,g.classes,g.dir);const b=i.db.getVertices(),m=i.db.getEdges();Dt.info("Edges",m);let y=0;for(y=p.length-1;y>=0;y--){g=p[y],(0,s.td_)("cluster").append("text");for(let t=0;t<g.nodes.length;t++)Dt.info("Setting up subgraphs",g.nodes[t],g.id),f.setParent(g.nodes[t],g.id)}wc(b,f,e,d,h,i),xc(m,f);const v=d.select(`[id="${e}"]`),w=d.select("#"+e+" g");if(Wo(w,f,["point","circle","cross"],"flowchart",e),Gn.insertTitle(v,"flowchartTitleText",o.titleTopMargin,i.db.getDiagramTitle()),hi(f,v,o.diagramPadding,o.useMaxWidth),i.db.indexNodes("subGraph"+y),!o.htmlLabels){const t=h.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const e of t){const t=e.getBBox(),n=h.createElementNS("http://www.w3.org/2000/svg","rect");n.setAttribute("rx",0),n.setAttribute("ry",0),n.setAttribute("width",t.width),n.setAttribute("height",t.height),e.insertBefore(n,e.firstChild)}}Object.keys(b).forEach((function(t){const n=b[t];if(n.link){const i=(0,s.Ys)("#"+e+' [id="'+t+'"]');if(i){const t=h.createElementNS("http://www.w3.org/2000/svg","a");t.setAttributeNS("http://www.w3.org/2000/svg","class",n.classes.join(" ")),t.setAttributeNS("http://www.w3.org/2000/svg","href",n.link),t.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),"sandbox"===r?t.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):n.linkTarget&&t.setAttributeNS("http://www.w3.org/2000/svg","target",n.linkTarget);const e=i.insert((function(){return t}),":first-child"),a=i.select(".label-container");a&&e.append((function(){return a.node()}));const o=i.select(".label");o&&e.append((function(){return o.node()}))}}}))}};var _c=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,3],i=[1,5],a=[7,9,11,12,13,14,15,16,17,18,19,20,21,23,25,26,28,35,40],r=[1,15],o=[1,16],s=[1,17],c=[1,18],l=[1,19],u=[1,20],d=[1,21],h=[1,22],f=[1,23],g=[1,24],p=[1,25],b=[1,26],m=[1,27],y=[1,29],v=[1,31],w=[1,34],x=[5,7,9,11,12,13,14,15,16,17,18,19,20,21,23,25,26,28,35,40],R={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,gantt:5,document:6,EOF:7,line:8,SPACE:9,statement:10,NL:11,dateFormat:12,inclusiveEndDates:13,topAxis:14,axisFormat:15,tickInterval:16,excludes:17,includes:18,todayMarker:19,title:20,acc_title:21,acc_title_value:22,acc_descr:23,acc_descr_value:24,acc_descr_multiline_value:25,section:26,clickStatement:27,taskTxt:28,taskData:29,openDirective:30,typeDirective:31,closeDirective:32,":":33,argDirective:34,click:35,callbackname:36,callbackargs:37,href:38,clickStatementDebug:39,open_directive:40,type_directive:41,arg_directive:42,close_directive:43,$accept:0,$end:1},terminals_:{2:"error",5:"gantt",7:"EOF",9:"SPACE",11:"NL",12:"dateFormat",13:"inclusiveEndDates",14:"topAxis",15:"axisFormat",16:"tickInterval",17:"excludes",18:"includes",19:"todayMarker",20:"title",21:"acc_title",22:"acc_title_value",23:"acc_descr",24:"acc_descr_value",25:"acc_descr_multiline_value",26:"section",28:"taskTxt",29:"taskData",33:":",35:"click",36:"callbackname",37:"callbackargs",38:"href",40:"open_directive",41:"type_directive",42:"arg_directive",43:"close_directive"},productions_:[0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[27,2],[27,3],[27,3],[27,4],[27,3],[27,4],[27,2],[39,2],[39,3],[39,3],[39,4],[39,3],[39,4],[39,2],[30,1],[31,1],[34,1],[32,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 2:return r[s-1];case 3:case 7:case 8:this.$=[];break;case 4:r[s-1].push(r[s]),this.$=r[s-1];break;case 5:case 6:this.$=r[s];break;case 9:i.setDateFormat(r[s].substr(11)),this.$=r[s].substr(11);break;case 10:i.enableInclusiveEndDates(),this.$=r[s].substr(18);break;case 11:i.TopAxis(),this.$=r[s].substr(8);break;case 12:i.setAxisFormat(r[s].substr(11)),this.$=r[s].substr(11);break;case 13:i.setTickInterval(r[s].substr(13)),this.$=r[s].substr(13);break;case 14:i.setExcludes(r[s].substr(9)),this.$=r[s].substr(9);break;case 15:i.setIncludes(r[s].substr(9)),this.$=r[s].substr(9);break;case 16:i.setTodayMarker(r[s].substr(12)),this.$=r[s].substr(12);break;case 17:i.setDiagramTitle(r[s].substr(6)),this.$=r[s].substr(6);break;case 18:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 19:case 20:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 21:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 23:i.addTask(r[s-1],r[s]),this.$="task";break;case 27:this.$=r[s-1],i.setClickEvent(r[s-1],r[s],null);break;case 28:this.$=r[s-2],i.setClickEvent(r[s-2],r[s-1],r[s]);break;case 29:this.$=r[s-2],i.setClickEvent(r[s-2],r[s-1],null),i.setLink(r[s-2],r[s]);break;case 30:this.$=r[s-3],i.setClickEvent(r[s-3],r[s-2],r[s-1]),i.setLink(r[s-3],r[s]);break;case 31:this.$=r[s-2],i.setClickEvent(r[s-2],r[s],null),i.setLink(r[s-2],r[s-1]);break;case 32:this.$=r[s-3],i.setClickEvent(r[s-3],r[s-1],r[s]),i.setLink(r[s-3],r[s-2]);break;case 33:this.$=r[s-1],i.setLink(r[s-1],r[s]);break;case 34:case 40:this.$=r[s-1]+" "+r[s];break;case 35:case 36:case 38:this.$=r[s-2]+" "+r[s-1]+" "+r[s];break;case 37:case 39:this.$=r[s-3]+" "+r[s-2]+" "+r[s-1]+" "+r[s];break;case 41:i.parseDirective("%%{","open_directive");break;case 42:i.parseDirective(r[s],"type_directive");break;case 43:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 44:i.parseDirective("}%%","close_directive","gantt")}},table:[{3:1,4:2,5:n,30:4,40:i},{1:[3]},{3:6,4:2,5:n,30:4,40:i},e(a,[2,3],{6:7}),{31:8,41:[1,9]},{41:[2,41]},{1:[2,1]},{4:30,7:[1,10],8:11,9:[1,12],10:13,11:[1,14],12:r,13:o,14:s,15:c,16:l,17:u,18:d,19:h,20:f,21:g,23:p,25:b,26:m,27:28,28:y,30:4,35:v,40:i},{32:32,33:[1,33],43:w},e([33,43],[2,42]),e(a,[2,8],{1:[2,2]}),e(a,[2,4]),{4:30,10:35,12:r,13:o,14:s,15:c,16:l,17:u,18:d,19:h,20:f,21:g,23:p,25:b,26:m,27:28,28:y,30:4,35:v,40:i},e(a,[2,6]),e(a,[2,7]),e(a,[2,9]),e(a,[2,10]),e(a,[2,11]),e(a,[2,12]),e(a,[2,13]),e(a,[2,14]),e(a,[2,15]),e(a,[2,16]),e(a,[2,17]),{22:[1,36]},{24:[1,37]},e(a,[2,20]),e(a,[2,21]),e(a,[2,22]),{29:[1,38]},e(a,[2,24]),{36:[1,39],38:[1,40]},{11:[1,41]},{34:42,42:[1,43]},{11:[2,44]},e(a,[2,5]),e(a,[2,18]),e(a,[2,19]),e(a,[2,23]),e(a,[2,27],{37:[1,44],38:[1,45]}),e(a,[2,33],{36:[1,46]}),e(x,[2,25]),{32:47,43:w},{43:[2,43]},e(a,[2,28],{38:[1,48]}),e(a,[2,29]),e(a,[2,31],{37:[1,49]}),{11:[1,50]},e(a,[2,30]),e(a,[2,32]),e(x,[2,26])],defaultActions:{5:[2,41],6:[2,1],34:[2,44],43:[2,43]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},_=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),40;case 1:return this.begin("type_directive"),41;case 2:return this.popState(),this.begin("arg_directive"),33;case 3:return this.popState(),this.popState(),43;case 4:return 42;case 5:return this.begin("acc_title"),21;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),23;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:case 20:case 23:case 26:case 29:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:case 13:case 14:case 16:case 17:case 18:break;case 15:return 11;case 19:this.begin("href");break;case 21:return 38;case 22:this.begin("callbackname");break;case 24:this.popState(),this.begin("callbackargs");break;case 25:return 36;case 27:return 37;case 28:this.begin("click");break;case 30:return 35;case 31:return 5;case 32:return 12;case 33:return 13;case 34:return 14;case 35:return 15;case 36:return 16;case 37:return 18;case 38:return 17;case 39:return 19;case 40:return"date";case 41:return 20;case 42:return"accDescription";case 43:return 26;case 44:return 28;case 45:return 29;case 46:return 33;case 47:return 7;case 48:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/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,/^(?:%[^\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,/^(?:\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:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[26,27],inclusive:!1},callbackname:{rules:[23,24,25],inclusive:!1},href:{rules:[20,21],inclusive:!1},click:{rules:[29,30],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,22,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],inclusive:!0}}},t);function k(){this.yy={}}return R.lexer=_,k.prototype=R,R.Parser=k,new k}();_c.parser=_c;const kc=_c,Ec=t=>null!==t.match(/^\s*gantt/);r().extend(_t()),r().extend(Et()),r().extend(St());let Cc,Sc="",Tc="",Ac="",Dc=[],Ic=[],Lc={},Oc=[],Mc=[],Nc="";const Bc=["active","done","crit","milestone"];let Pc=[],Fc=!1,jc=!1,$c=0;const zc=function(t,e,n,i){return!i.includes(t.format(e.trim()))&&(!!(t.isoWeekday()>=6&&n.includes("weekends"))||(!!n.includes(t.format("dddd").toLowerCase())||n.includes(t.format(e.trim()))))},Hc=function(t,e,n,i){if(!n.length||t.manualEndTime)return;let a,o;a=t.startTime instanceof Date?r()(t.startTime):r()(t.startTime,e,!0),a=a.add(1,"d"),o=t.endTime instanceof Date?r()(t.endTime):r()(t.endTime,e,!0);const[s,c]=Uc(a,o,e,n,i);t.endTime=s.toDate(),t.renderEndTime=c},Uc=function(t,e,n,i,a){let r=!1,o=null;for(;t<=e;)r||(o=e.toDate()),r=zc(t,n,i,a),r&&(e=e.add(1,"d")),t=t.add(1,"d");return[e,o]},Vc=function(t,e,n){n=n.trim();const i=/^after\s+([\d\w- ]+)/.exec(n.trim());if(null!==i){let t=null;if(i[1].split(" ").forEach((function(e){let n=Qc(e);void 0!==n&&(t?n.endTime>t.endTime&&(t=n):t=n)})),t)return t.endTime;{const t=new Date;return t.setHours(0,0,0,0),t}}let a=r()(n,e.trim(),!0);if(a.isValid())return a.toDate();{Dt.debug("Invalid date:"+n),Dt.debug("With date format:"+e.trim());const t=new Date(n);if(void 0===t||isNaN(t.getTime()))throw new Error("Invalid date:"+n);return t}},qc=function(t){const e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return null!==e?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},Wc=function(t,e,n,i=!1){n=n.trim();let a=r()(n,e.trim(),!0);if(a.isValid())return i&&(a=a.add(1,"d")),a.toDate();let o=r()(t);const[s,c]=qc(n);if(!Number.isNaN(s)){const t=o.add(s,c);t.isValid()&&(o=t)}return o.toDate()};let Yc=0;const Gc=function(t){return void 0===t?(Yc+=1,"task"+Yc):t};let Zc,Kc,Xc=[];const Jc={},Qc=function(t){const e=Jc[t];return Xc[e]},tl=function(){const t=function(t){const e=Xc[t];let n="";switch(Xc[t].raw.startTime.type){case"prevTaskEnd":{const t=Qc(e.prevTaskId);e.startTime=t.endTime;break}case"getStartDate":n=Vc(0,Sc,Xc[t].raw.startTime.startData),n&&(Xc[t].startTime=n)}return Xc[t].startTime&&(Xc[t].endTime=Wc(Xc[t].startTime,Sc,Xc[t].raw.endTime.data,Fc),Xc[t].endTime&&(Xc[t].processed=!0,Xc[t].manualEndTime=r()(Xc[t].raw.endTime.data,"YYYY-MM-DD",!0).isValid(),Hc(Xc[t],Sc,Ic,Dc))),Xc[t].processed};let e=!0;for(const[n,i]of Xc.entries())t(n),e=e&&i.processed;return e},el=function(t,e){t.split(",").forEach((function(t){let n=Qc(t);void 0!==n&&n.classes.push(e)}))},nl=function(t,e){Pc.push((function(){const n=document.querySelector(`[id="${t}"]`);null!==n&&n.addEventListener("click",(function(){e()}))}),(function(){const n=document.querySelector(`[id="${t}-text"]`);null!==n&&n.addEventListener("click",(function(){e()}))}))},il={parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().gantt,clear:function(){Oc=[],Mc=[],Nc="",Pc=[],Yc=0,Zc=void 0,Kc=void 0,Xc=[],Sc="",Tc="",Cc=void 0,Ac="",Dc=[],Ic=[],Fc=!1,jc=!1,$c=0,Lc={},Ii()},setDateFormat:function(t){Sc=t},getDateFormat:function(){return Sc},enableInclusiveEndDates:function(){Fc=!0},endDatesAreInclusive:function(){return Fc},enableTopAxis:function(){jc=!0},topAxisEnabled:function(){return jc},setAxisFormat:function(t){Tc=t},getAxisFormat:function(){return Tc},setTickInterval:function(t){Cc=t},getTickInterval:function(){return Cc},setTodayMarker:function(t){Ac=t},getTodayMarker:function(){return Ac},setAccTitle:Li,getAccTitle:Oi,setDiagramTitle:Bi,getDiagramTitle:Pi,setAccDescription:Mi,getAccDescription:Ni,addSection:function(t){Nc=t,Oc.push(t)},getSections:function(){return Oc},getTasks:function(){let t=tl();let e=0;for(;!t&&e<10;)t=tl(),e++;return Mc=Xc,Mc},addTask:function(t,e){const n={section:Nc,type:Nc,processed:!1,manualEndTime:!1,renderEndTime:null,raw:{data:e},task:t,classes:[]},i=function(t,e){let n;n=":"===e.substr(0,1)?e.substr(1,e.length):e;const i=n.split(","),a={};al(i,a,Bc);for(let r=0;r<i.length;r++)i[r]=i[r].trim();switch(i.length){case 1:a.id=Gc(),a.startTime={type:"prevTaskEnd",id:t},a.endTime={data:i[0]};break;case 2:a.id=Gc(),a.startTime={type:"getStartDate",startData:i[0]},a.endTime={data:i[1]};break;case 3:a.id=Gc(i[0]),a.startTime={type:"getStartDate",startData:i[1]},a.endTime={data:i[2]}}return a}(Kc,e);n.raw.startTime=i.startTime,n.raw.endTime=i.endTime,n.id=i.id,n.prevTaskId=Kc,n.active=i.active,n.done=i.done,n.crit=i.crit,n.milestone=i.milestone,n.order=$c,$c++;const a=Xc.push(n);Kc=n.id,Jc[n.id]=a-1},findTaskById:Qc,addTaskOrg:function(t,e){const n={section:Nc,type:Nc,description:t,task:t,classes:[]},i=function(t,e){let n;n=":"===e.substr(0,1)?e.substr(1,e.length):e;const i=n.split(","),a={};al(i,a,Bc);for(let r=0;r<i.length;r++)i[r]=i[r].trim();let o="";switch(i.length){case 1:a.id=Gc(),a.startTime=t.endTime,o=i[0];break;case 2:a.id=Gc(),a.startTime=Vc(0,Sc,i[0]),o=i[1];break;case 3:a.id=Gc(i[0]),a.startTime=Vc(0,Sc,i[1]),o=i[2]}return o&&(a.endTime=Wc(a.startTime,Sc,o,Fc),a.manualEndTime=r()(o,"YYYY-MM-DD",!0).isValid(),Hc(a,Sc,Ic,Dc)),a}(Zc,e);n.startTime=i.startTime,n.endTime=i.endTime,n.id=i.id,n.active=i.active,n.done=i.done,n.crit=i.crit,n.milestone=i.milestone,Zc=n,Mc.push(n)},setIncludes:function(t){Dc=t.toLowerCase().split(/[\s,]+/)},getIncludes:function(){return Dc},setExcludes:function(t){Ic=t.toLowerCase().split(/[\s,]+/)},getExcludes:function(){return Ic},setClickEvent:function(t,e,n){t.split(",").forEach((function(t){!function(t,e,n){if("loose"!==ai().securityLevel)return;if(void 0===e)return;let i=[];if("string"==typeof n){i=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t<i.length;t++){let e=i[t].trim();'"'===e.charAt(0)&&'"'===e.charAt(e.length-1)&&(e=e.substr(1,e.length-2)),i[t]=e}}0===i.length&&i.push(t),void 0!==Qc(t)&&nl(t,(()=>{Gn.runFunc(e,...i)}))}(t,e,n)})),el(t,"clickable")},setLink:function(t,e){let n=e;"loose"!==ai().securityLevel&&(n=(0,o.Nm)(e)),t.split(",").forEach((function(t){void 0!==Qc(t)&&(nl(t,(()=>{window.open(n,"_self")})),Lc[t]=n)})),el(t,"clickable")},getLinks:function(){return Lc},bindFunctions:function(t){Pc.forEach((function(e){e(t)}))},parseDuration:qc,isInvalidDate:zc};function al(t,e,n){let i=!0;for(;i;)i=!1,n.forEach((function(n){const a=new RegExp("^\\s*"+n+"\\s*$");t[0].match(a)&&(e[n]=!0,t.shift(1),i=!0)}))}let rl;const ol={setConf:function(){Dt.debug("Something is calling, setConf, remove the call")},draw:function(t,e,n,i){const a=ai().gantt,o=ai().securityLevel;let c;"sandbox"===o&&(c=(0,s.Ys)("#i"+e));const l="sandbox"===o?(0,s.Ys)(c.nodes()[0].contentDocument.body):(0,s.Ys)("body"),u="sandbox"===o?c.nodes()[0].contentDocument:document,d=u.getElementById(e);rl=d.parentElement.offsetWidth,void 0===rl&&(rl=1200),void 0!==a.useWidth&&(rl=a.useWidth);const h=i.db.getTasks(),f=h.length*(a.barHeight+a.barGap)+2*a.topPadding;d.setAttribute("viewBox","0 0 "+rl+" "+f);const g=l.select(`[id="${e}"]`),p=(0,s.Xf)().domain([(0,s.VV$)(h,(function(t){return t.startTime})),(0,s.Fp7)(h,(function(t){return t.endTime}))]).rangeRound([0,rl-a.leftPadding-a.rightPadding]);let b=[];for(const r of h)b.push(r.type);const m=b;function y(t,e){return function(t){let e=t.length;const n={};for(;e;)n[t[--e]]=(n[t[e]]||0)+1;return n}(e)[t]||0}b=function(t){const e={},n=[];for(let i=0,a=t.length;i<a;++i)Object.prototype.hasOwnProperty.call(e,t[i])||(e[t[i]]=!0,n.push(t[i]));return n}(b),h.sort((function(t,e){const n=t.startTime,i=e.startTime;let a=0;return n>i?a=1:n<i&&(a=-1),a})),function(t,n,o){const c=a.barHeight,l=c+a.barGap,d=a.topPadding,h=a.leftPadding;(0,s.BYU)().domain([0,b.length]).range(["#00B9FA","#F95002"]).interpolate(s.JHv);(function(t,e,n,o,s,c,l,u){const d=c.reduce(((t,{startTime:e})=>t?Math.min(t,e):e),0),h=c.reduce(((t,{endTime:e})=>t?Math.max(t,e):e),0),f=i.db.getDateFormat();if(!d||!h)return;const b=[];let m=null,y=r()(d);for(;y.valueOf()<=h;)i.db.isInvalidDate(y,f,l,u)?m?m.end=y:m={start:y,end:y}:m&&(b.push(m),m=null),y=y.add(1,"d");g.append("g").selectAll("rect").data(b).enter().append("rect").attr("id",(function(t){return"exclude-"+t.start.format("YYYY-MM-DD")})).attr("x",(function(t){return p(t.start)+n})).attr("y",a.gridLineStartPadding).attr("width",(function(t){const e=t.end.add(1,"day");return p(e)-p(t.start)})).attr("height",s-e-a.gridLineStartPadding).attr("transform-origin",(function(e,i){return(p(e.start)+n+.5*(p(e.end)-p(e.start))).toString()+"px "+(i*t+.5*s).toString()+"px"})).attr("class","exclude-range")})(l,d,h,0,o,t,i.db.getExcludes(),i.db.getIncludes()),function(t,e,n,r){let o=(0,s.LLu)(p).tickSize(-r+e+a.gridLineStartPadding).tickFormat((0,s.i$Z)(i.db.getAxisFormat()||a.axisFormat||"%Y-%m-%d"));const c=/^([1-9]\d*)(minute|hour|day|week|month)$/.exec(i.db.getTickInterval()||a.tickInterval);if(null!==c){const t=c[1];switch(c[2]){case"minute":o.ticks(s.Z_i.every(t));break;case"hour":o.ticks(s.WQD.every(t));break;case"day":o.ticks(s.rr1.every(t));break;case"week":o.ticks(s.NGh.every(t));break;case"month":o.ticks(s.F0B.every(t))}}if(g.append("g").attr("class","grid").attr("transform","translate("+t+", "+(r-50)+")").call(o).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),i.db.topAxisEnabled()||a.topAxis){let n=(0,s.F5q)(p).tickSize(-r+e+a.gridLineStartPadding).tickFormat((0,s.i$Z)(i.db.getAxisFormat()||a.axisFormat||"%Y-%m-%d"));if(null!==c){const t=c[1];switch(c[2]){case"minute":n.ticks(s.Z_i.every(t));break;case"hour":n.ticks(s.WQD.every(t));break;case"day":n.ticks(s.rr1.every(t));break;case"week":n.ticks(s.NGh.every(t));break;case"month":n.ticks(s.F0B.every(t))}}g.append("g").attr("class","grid").attr("transform","translate("+t+", "+e+")").call(n).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}(h,d,0,o),function(t,n,r,o,c,l,u){g.append("g").selectAll("rect").data(t).enter().append("rect").attr("x",0).attr("y",(function(t,e){return t.order*n+r-2})).attr("width",(function(){return u-a.rightPadding/2})).attr("height",n).attr("class",(function(t){for(const[e,n]of b.entries())if(t.type===n)return"section section"+e%a.numberSectionStyles;return"section section0"}));const d=g.append("g").selectAll("rect").data(t).enter(),h=i.db.getLinks();d.append("rect").attr("id",(function(t){return t.id})).attr("rx",3).attr("ry",3).attr("x",(function(t){return t.milestone?p(t.startTime)+o+.5*(p(t.endTime)-p(t.startTime))-.5*c:p(t.startTime)+o})).attr("y",(function(t,e){return t.order*n+r})).attr("width",(function(t){return t.milestone?c:p(t.renderEndTime||t.endTime)-p(t.startTime)})).attr("height",c).attr("transform-origin",(function(t,e){return e=t.order,(p(t.startTime)+o+.5*(p(t.endTime)-p(t.startTime))).toString()+"px "+(e*n+r+.5*c).toString()+"px"})).attr("class",(function(t){const e="task";let n="";t.classes.length>0&&(n=t.classes.join(" "));let i=0;for(const[o,s]of b.entries())t.type===s&&(i=o%a.numberSectionStyles);let r="";return t.active?t.crit?r+=" activeCrit":r=" active":t.done?r=t.crit?" doneCrit":" done":t.crit&&(r+=" crit"),0===r.length&&(r=" task"),t.milestone&&(r=" milestone "+r),r+=i,r+=" "+n,e+r})),d.append("text").attr("id",(function(t){return t.id+"-text"})).text((function(t){return t.task})).attr("font-size",a.fontSize).attr("x",(function(t){let e=p(t.startTime),n=p(t.renderEndTime||t.endTime);t.milestone&&(e+=.5*(p(t.endTime)-p(t.startTime))-.5*c),t.milestone&&(n=e+c);const i=this.getBBox().width;return i>n-e?n+i+1.5*a.leftPadding>u?e+o-5:n+o+5:(n-e)/2+e+o})).attr("y",(function(t,e){return t.order*n+a.barHeight/2+(a.fontSize/2-2)+r})).attr("text-height",c).attr("class",(function(t){const e=p(t.startTime);let n=p(t.endTime);t.milestone&&(n=e+c);const i=this.getBBox().width;let r="";t.classes.length>0&&(r=t.classes.join(" "));let o=0;for(const[c,l]of b.entries())t.type===l&&(o=c%a.numberSectionStyles);let s="";return t.active&&(s=t.crit?"activeCritText"+o:"activeText"+o),t.done?s=t.crit?s+" doneCritText"+o:s+" doneText"+o:t.crit&&(s=s+" critText"+o),t.milestone&&(s+=" milestoneText"),i>n-e?n+i+1.5*a.leftPadding>u?r+" taskTextOutsideLeft taskTextOutside"+o+" "+s:r+" taskTextOutsideRight taskTextOutside"+o+" "+s+" width-"+i:r+" taskText taskText"+o+" "+s+" width-"+i}));if("sandbox"===ai().securityLevel){let t;t=(0,s.Ys)("#i"+e);const n=t.nodes()[0].contentDocument;d.filter((function(t){return void 0!==h[t.id]})).each((function(t){var e=n.querySelector("#"+t.id),i=n.querySelector("#"+t.id+"-text");const a=e.parentNode;var r=n.createElement("a");r.setAttribute("xlink:href",h[t.id]),r.setAttribute("target","_top"),a.appendChild(r),r.appendChild(e),r.appendChild(i)}))}}(t,l,d,h,c,0,n),function(t,e){const n=[];let i=0;for(const[a,r]of b.entries())n[a]=[r,y(r,m)];g.append("g").selectAll("text").data(n).enter().append((function(t){const e=t[0].split(zt.lineBreakRegex),n=-(e.length-1)/2,i=u.createElementNS("http://www.w3.org/2000/svg","text");i.setAttribute("dy",n+"em");for(const[a,r]of e.entries()){const t=u.createElementNS("http://www.w3.org/2000/svg","tspan");t.setAttribute("alignment-baseline","central"),t.setAttribute("x","10"),a>0&&t.setAttribute("dy","1em"),t.textContent=r,i.appendChild(t)}return i})).attr("x",10).attr("y",(function(a,r){if(!(r>0))return a[1]*t/2+e;for(let o=0;o<r;o++)return i+=n[r-1][1],a[1]*t/2+i*t+e})).attr("font-size",a.sectionFontSize).attr("font-size",a.sectionFontSize).attr("class",(function(t){for(const[e,n]of b.entries())if(t[0]===n)return"sectionTitle sectionTitle"+e%a.numberSectionStyles;return"sectionTitle"}))}(l,d),function(t,e,n,r){const o=i.db.getTodayMarker();if("off"===o)return;const s=g.append("g").attr("class","today"),c=new Date,l=s.append("line");l.attr("x1",p(c)+t).attr("x2",p(c)+t).attr("y1",a.titleTopMargin).attr("y2",r-a.titleTopMargin).attr("class","today"),""!==o&&l.attr("style",o.replace(/,/g,";"))}(h,0,0,o)}(h,rl,f),di(g,f,rl,a.useMaxWidth),g.append("text").text(i.db.getDiagramTitle()).attr("x",rl/2).attr("y",a.titleTopMargin).attr("class","titleText")}};var sl=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[6,9,10],i={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,i,a,r,o){switch(r.length,a){case 1:return i;case 4:break;case 6:i.setInfo(!0)}},table:[{3:1,4:[1,2]},{1:[3]},e(n,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},e(n,[2,3]),e(n,[2,4]),e(n,[2,5]),e(n,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},a=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){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}}},t);function r(){this.yy={}}return i.lexer=a,r.prototype=i,i.Parser=r,new r}();sl.parser=sl;const cl=sl;var ll="",ul=!1;const dl={setMessage:t=>{Dt.debug("Setting message to: "+t),ll=t},getMessage:()=>ll,setInfo:t=>{ul=t},getInfo:()=>ul,clear:Ii},hl={draw:(t,e,n)=>{try{Dt.debug("Rendering info diagram\n"+t);const i=ai().securityLevel;let a;"sandbox"===i&&(a=(0,s.Ys)("#i"+e));const r=("sandbox"===i?(0,s.Ys)(a.nodes()[0].contentDocument.body):(0,s.Ys)("body")).select("#"+e);r.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size","32px").style("text-anchor","middle").text("v "+n),r.attr("height",100),r.attr("width",400)}catch(i){Dt.error("Error while rendering info diagram"),Dt.error(i.message)}}},fl=t=>null!==t.match(/^\s*info/);var gl=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,4],i=[1,5],a=[1,6],r=[1,7],o=[1,9],s=[1,11,13,15,17,19,20,26,27,28,29],c=[2,5],l=[1,6,11,13,15,17,19,20,26,27,28,29],u=[26,27,28],d=[2,8],h=[1,18],f=[1,19],g=[1,20],p=[1,21],b=[1,22],m=[1,23],y=[1,28],v=[6,26,27,28,29],w={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,PIE:6,document:7,showData:8,line:9,statement: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,openDirective:21,typeDirective:22,closeDirective:23,":":24,argDirective:25,NEWLINE:26,";":27,EOF:28,open_directive:29,type_directive:30,arg_directive:31,close_directive:32,$accept:0,$end:1},terminals_:{2:"error",6:"PIE",8:"showData",11:"txt",12:"value",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",24:":",26:"NEWLINE",27:";",28:"EOF",29:"open_directive",30:"type_directive",31:"arg_directive",32:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[21,1],[22,1],[25,1],[23,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 4:i.setShowData(!0);break;case 7:this.$=r[s-1];break;case 9:i.addSection(r[s-1],i.cleanupValue(r[s]));break;case 10:this.$=r[s].trim(),i.setDiagramTitle(this.$);break;case 11:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 12:case 13:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 14:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 21:i.parseDirective("%%{","open_directive");break;case 22:i.parseDirective(r[s],"type_directive");break;case 23:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 24:i.parseDirective("}%%","close_directive","pie")}},table:[{3:1,4:2,5:3,6:n,21:8,26:i,27:a,28:r,29:o},{1:[3]},{3:10,4:2,5:3,6:n,21:8,26:i,27:a,28:r,29:o},{3:11,4:2,5:3,6:n,21:8,26:i,27:a,28:r,29:o},e(s,c,{7:12,8:[1,13]}),e(l,[2,18]),e(l,[2,19]),e(l,[2,20]),{22:14,30:[1,15]},{30:[2,21]},{1:[2,1]},{1:[2,2]},e(u,d,{21:8,9:16,10:17,5:24,1:[2,3],11:h,13:f,15:g,17:p,19:b,20:m,29:o}),e(s,c,{7:25}),{23:26,24:[1,27],32:y},e([24,32],[2,22]),e(s,[2,6]),{4:29,26:i,27:a,28:r},{12:[1,30]},{14:[1,31]},{16:[1,32]},{18:[1,33]},e(u,[2,13]),e(u,[2,14]),e(u,[2,15]),e(u,d,{21:8,9:16,10:17,5:24,1:[2,4],11:h,13:f,15:g,17:p,19:b,20:m,29:o}),e(v,[2,16]),{25:34,31:[1,35]},e(v,[2,24]),e(s,[2,7]),e(u,[2,9]),e(u,[2,10]),e(u,[2,11]),e(u,[2,12]),{23:36,32:y},{32:[2,23]},e(v,[2,17])],defaultActions:{9:[2,21],10:[2,1],11:[2,2],35:[2,23]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},x=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),29;case 1:return this.begin("type_directive"),30;case 2:return this.popState(),this.begin("arg_directive"),24;case 3:return this.popState(),this.popState(),32;case 4:return 31;case 5:case 6:case 8:case 9:break;case 7:return 26;case 10:return this.begin("title"),13;case 11:return this.popState(),"title_value";case 12:return this.begin("acc_title"),15;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),17;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:case 20:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:this.begin("string");break;case 21:return"txt";case 22:return 6;case 23:return 8;case 24:return"value";case 25:return 28}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\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:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},title:{rules:[11],inclusive:!1},string:{rules:[20,21],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,12,14,16,19,22,23,24,25],inclusive:!0}}},t);function R(){this.yy={}}return w.lexer=x,R.prototype=w,w.Parser=R,new R}();gl.parser=gl;const pl=gl,bl=t=>null!==t.match(/^\s*pie/)||null!==t.match(/^\s*bar/);let ml={},yl=!1;const vl={parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().pie,addSection:function(t,e){t=zt.sanitizeText(t,ai()),void 0===ml[t]&&(ml[t]=e,Dt.debug("Added new section :",t))},getSections:()=>ml,cleanupValue:function(t){return":"===t.substring(0,1)?(t=t.substring(1).trim(),Number(t.trim())):Number(t.trim())},clear:function(){ml={},yl=!1,Ii()},setAccTitle:Li,getAccTitle:Oi,setDiagramTitle:Bi,getDiagramTitle:Pi,setShowData:function(t){yl=t},getShowData:function(){return yl},getAccDescription:Ni,setAccDescription:Mi};let wl,xl=ai();const Rl=450,_l={draw:(t,e,n,i)=>{try{xl=ai(),Dt.debug("Rendering info diagram\n"+t);const n=ai().securityLevel;let b;"sandbox"===n&&(b=(0,s.Ys)("#i"+e));const m="sandbox"===n?(0,s.Ys)(b.nodes()[0].contentDocument.body):(0,s.Ys)("body"),y="sandbox"===n?b.nodes()[0].contentDocument:document;i.db.clear(),i.parser.parse(t),Dt.debug("Parsed info diagram");const v=y.getElementById(e);wl=v.parentElement.offsetWidth,void 0===wl&&(wl=1200),void 0!==xl.useWidth&&(wl=xl.useWidth),void 0!==xl.pie.useWidth&&(wl=xl.pie.useWidth);const w=m.select("#"+e);di(w,Rl,wl,xl.pie.useMaxWidth),v.setAttribute("viewBox","0 0 "+wl+" "+Rl);var a=18,r=Math.min(wl,Rl)/2-40,o=w.append("g").attr("transform","translate("+wl/2+",225)"),c=i.db.getSections(),l=0;Object.keys(c).forEach((function(t){l+=c[t]}));const x=xl.themeVariables;var u=[x.pie1,x.pie2,x.pie3,x.pie4,x.pie5,x.pie6,x.pie7,x.pie8,x.pie9,x.pie10,x.pie11,x.pie12],d=(0,s.PKp)().range(u),h=Object.entries(c).map((function(t,e){return{order:e,name:t[0],value:t[1]}})),f=(0,s.ve8)().value((function(t){return t.value})).sort((function(t,e){return t.order-e.order}))(h),g=(0,s.Nb1)().innerRadius(0).outerRadius(r);o.selectAll("mySlices").data(f).enter().append("path").attr("d",g).attr("fill",(function(t){return d(t.data.name)})).attr("class","pieCircle"),o.selectAll("mySlices").data(f).enter().append("text").text((function(t){return(t.data.value/l*100).toFixed(0)+"%"})).attr("transform",(function(t){return"translate("+g.centroid(t)+")"})).style("text-anchor","middle").attr("class","slice"),o.append("text").text(i.db.getDiagramTitle()).attr("x",0).attr("y",-200).attr("class","pieTitleText");var p=o.selectAll(".legend").data(d.domain()).enter().append("g").attr("class","legend").attr("transform",(function(t,e){return"translate(216,"+(22*e-22*d.domain().length/2)+")"}));p.append("rect").attr("width",a).attr("height",a).style("fill",d).style("stroke",d),p.data(f).append("text").attr("x",22).attr("y",14).text((function(t){return i.db.getShowData()||xl.showData||xl.pie.showData?t.data.name+" ["+t.data.value+"]":t.data.name}))}catch(b){Dt.error("Error while rendering info diagram"),Dt.error(b)}}};var kl=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,3],i=[1,5],a=[1,6],r=[1,7],o=[1,8],s=[5,6,8,14,16,18,19,40,41,42,43,44,45,53,71,72],c=[1,22],l=[2,13],u=[1,26],d=[1,27],h=[1,28],f=[1,29],g=[1,30],p=[1,31],b=[1,24],m=[1,32],y=[1,33],v=[1,36],w=[71,72],x=[5,8,14,16,18,19,40,41,42,43,44,45,53,60,62,71,72],R=[1,56],_=[1,57],k=[1,58],E=[1,59],C=[1,60],S=[1,61],T=[1,62],A=[62,63],D=[1,74],I=[1,70],L=[1,71],O=[1,72],M=[1,73],N=[1,75],B=[1,79],P=[1,80],F=[1,77],j=[1,78],$=[5,8,14,16,18,19,40,41,42,43,44,45,53,71,72],z={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,openDirective:9,typeDirective:10,closeDirective:11,":":12,argDirective:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,requirementDef:23,elementDef:24,relationshipDef:25,requirementType:26,requirementName:27,STRUCT_START:28,requirementBody:29,ID:30,COLONSEP:31,id:32,TEXT:33,text:34,RISK:35,riskLevel:36,VERIFYMTHD:37,verifyType:38,STRUCT_STOP:39,REQUIREMENT:40,FUNCTIONAL_REQUIREMENT:41,INTERFACE_REQUIREMENT:42,PERFORMANCE_REQUIREMENT:43,PHYSICAL_REQUIREMENT:44,DESIGN_CONSTRAINT:45,LOW_RISK:46,MED_RISK:47,HIGH_RISK:48,VERIFY_ANALYSIS:49,VERIFY_DEMONSTRATION:50,VERIFY_INSPECTION:51,VERIFY_TEST:52,ELEMENT:53,elementName:54,elementBody:55,TYPE:56,type:57,DOCREF:58,ref:59,END_ARROW_L:60,relationship:61,LINE:62,END_ARROW_R:63,CONTAINS:64,COPIES:65,DERIVES:66,SATISFIES:67,VERIFIES:68,REFINES:69,TRACES:70,unqString:71,qString:72,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",12:":",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",28:"STRUCT_START",30:"ID",31:"COLONSEP",33:"TEXT",35:"RISK",37:"VERIFYMTHD",39:"STRUCT_STOP",40:"REQUIREMENT",41:"FUNCTIONAL_REQUIREMENT",42:"INTERFACE_REQUIREMENT",43:"PERFORMANCE_REQUIREMENT",44:"PHYSICAL_REQUIREMENT",45:"DESIGN_CONSTRAINT",46:"LOW_RISK",47:"MED_RISK",48:"HIGH_RISK",49:"VERIFY_ANALYSIS",50:"VERIFY_DEMONSTRATION",51:"VERIFY_INSPECTION",52:"VERIFY_TEST",53:"ELEMENT",56:"TYPE",58:"DOCREF",60:"END_ARROW_L",62:"LINE",63:"END_ARROW_R",64:"CONTAINS",65:"COPIES",66:"DERIVES",67:"SATISFIES",68:"VERIFIES",69:"REFINES",70:"TRACES",71:"unqString",72:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,3],[4,5],[4,2],[4,2],[4,1],[9,1],[10,1],[13,1],[11,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[23,5],[29,5],[29,5],[29,5],[29,5],[29,2],[29,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[36,1],[36,1],[36,1],[38,1],[38,1],[38,1],[38,1],[24,5],[55,5],[55,5],[55,2],[55,1],[25,5],[25,5],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[27,1],[27,1],[32,1],[32,1],[34,1],[34,1],[54,1],[54,1],[57,1],[57,1],[59,1],[59,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 6:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 7:case 8:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 9:i.parseDirective("%%{","open_directive");break;case 10:i.parseDirective(r[s],"type_directive");break;case 11:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 12:i.parseDirective("}%%","close_directive","pie");break;case 13:this.$=[];break;case 19:i.addRequirement(r[s-3],r[s-4]);break;case 20:i.setNewReqId(r[s-2]);break;case 21:i.setNewReqText(r[s-2]);break;case 22:i.setNewReqRisk(r[s-2]);break;case 23:i.setNewReqVerifyMethod(r[s-2]);break;case 26:this.$=i.RequirementType.REQUIREMENT;break;case 27:this.$=i.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 28:this.$=i.RequirementType.INTERFACE_REQUIREMENT;break;case 29:this.$=i.RequirementType.PERFORMANCE_REQUIREMENT;break;case 30:this.$=i.RequirementType.PHYSICAL_REQUIREMENT;break;case 31:this.$=i.RequirementType.DESIGN_CONSTRAINT;break;case 32:this.$=i.RiskLevel.LOW_RISK;break;case 33:this.$=i.RiskLevel.MED_RISK;break;case 34:this.$=i.RiskLevel.HIGH_RISK;break;case 35:this.$=i.VerifyType.VERIFY_ANALYSIS;break;case 36:this.$=i.VerifyType.VERIFY_DEMONSTRATION;break;case 37:this.$=i.VerifyType.VERIFY_INSPECTION;break;case 38:this.$=i.VerifyType.VERIFY_TEST;break;case 39:i.addElement(r[s-3]);break;case 40:i.setNewElementType(r[s-2]);break;case 41:i.setNewElementDocRef(r[s-2]);break;case 44:i.addRelationship(r[s-2],r[s],r[s-4]);break;case 45:i.addRelationship(r[s-2],r[s-4],r[s]);break;case 46:this.$=i.Relationships.CONTAINS;break;case 47:this.$=i.Relationships.COPIES;break;case 48:this.$=i.Relationships.DERIVES;break;case 49:this.$=i.Relationships.SATISFIES;break;case 50:this.$=i.Relationships.VERIFIES;break;case 51:this.$=i.Relationships.REFINES;break;case 52:this.$=i.Relationships.TRACES}},table:[{3:1,4:2,6:n,9:4,14:i,16:a,18:r,19:o},{1:[3]},{3:10,4:2,5:[1,9],6:n,9:4,14:i,16:a,18:r,19:o},{5:[1,11]},{10:12,20:[1,13]},{15:[1,14]},{17:[1,15]},e(s,[2,8]),{20:[2,9]},{3:16,4:2,6:n,9:4,14:i,16:a,18:r,19:o},{1:[2,2]},{4:21,5:c,7:17,8:l,9:4,14:i,16:a,18:r,19:o,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:h,43:f,44:g,45:p,53:b,71:m,72:y},{11:34,12:[1,35],22:v},e([12,22],[2,10]),e(s,[2,6]),e(s,[2,7]),{1:[2,1]},{8:[1,37]},{4:21,5:c,7:38,8:l,9:4,14:i,16:a,18:r,19:o,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:h,43:f,44:g,45:p,53:b,71:m,72:y},{4:21,5:c,7:39,8:l,9:4,14:i,16:a,18:r,19:o,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:h,43:f,44:g,45:p,53:b,71:m,72:y},{4:21,5:c,7:40,8:l,9:4,14:i,16:a,18:r,19:o,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:h,43:f,44:g,45:p,53:b,71:m,72:y},{4:21,5:c,7:41,8:l,9:4,14:i,16:a,18:r,19:o,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:h,43:f,44:g,45:p,53:b,71:m,72:y},{4:21,5:c,7:42,8:l,9:4,14:i,16:a,18:r,19:o,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:h,43:f,44:g,45:p,53:b,71:m,72:y},{27:43,71:[1,44],72:[1,45]},{54:46,71:[1,47],72:[1,48]},{60:[1,49],62:[1,50]},e(w,[2,26]),e(w,[2,27]),e(w,[2,28]),e(w,[2,29]),e(w,[2,30]),e(w,[2,31]),e(x,[2,55]),e(x,[2,56]),e(s,[2,4]),{13:51,21:[1,52]},e(s,[2,12]),{1:[2,3]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{8:[2,17]},{8:[2,18]},{28:[1,53]},{28:[2,53]},{28:[2,54]},{28:[1,54]},{28:[2,59]},{28:[2,60]},{61:55,64:R,65:_,66:k,67:E,68:C,69:S,70:T},{61:63,64:R,65:_,66:k,67:E,68:C,69:S,70:T},{11:64,22:v},{22:[2,11]},{5:[1,65]},{5:[1,66]},{62:[1,67]},e(A,[2,46]),e(A,[2,47]),e(A,[2,48]),e(A,[2,49]),e(A,[2,50]),e(A,[2,51]),e(A,[2,52]),{63:[1,68]},e(s,[2,5]),{5:D,29:69,30:I,33:L,35:O,37:M,39:N},{5:B,39:P,55:76,56:F,58:j},{32:81,71:m,72:y},{32:82,71:m,72:y},e($,[2,19]),{31:[1,83]},{31:[1,84]},{31:[1,85]},{31:[1,86]},{5:D,29:87,30:I,33:L,35:O,37:M,39:N},e($,[2,25]),e($,[2,39]),{31:[1,88]},{31:[1,89]},{5:B,39:P,55:90,56:F,58:j},e($,[2,43]),e($,[2,44]),e($,[2,45]),{32:91,71:m,72:y},{34:92,71:[1,93],72:[1,94]},{36:95,46:[1,96],47:[1,97],48:[1,98]},{38:99,49:[1,100],50:[1,101],51:[1,102],52:[1,103]},e($,[2,24]),{57:104,71:[1,105],72:[1,106]},{59:107,71:[1,108],72:[1,109]},e($,[2,42]),{5:[1,110]},{5:[1,111]},{5:[2,57]},{5:[2,58]},{5:[1,112]},{5:[2,32]},{5:[2,33]},{5:[2,34]},{5:[1,113]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[2,38]},{5:[1,114]},{5:[2,61]},{5:[2,62]},{5:[1,115]},{5:[2,63]},{5:[2,64]},{5:D,29:116,30:I,33:L,35:O,37:M,39:N},{5:D,29:117,30:I,33:L,35:O,37:M,39:N},{5:D,29:118,30:I,33:L,35:O,37:M,39:N},{5:D,29:119,30:I,33:L,35:O,37:M,39:N},{5:B,39:P,55:120,56:F,58:j},{5:B,39:P,55:121,56:F,58:j},e($,[2,20]),e($,[2,21]),e($,[2,22]),e($,[2,23]),e($,[2,40]),e($,[2,41])],defaultActions:{8:[2,9],10:[2,2],16:[2,1],37:[2,3],38:[2,14],39:[2,15],40:[2,16],41:[2,17],42:[2,18],44:[2,53],45:[2,54],47:[2,59],48:[2,60],52:[2,11],93:[2,57],94:[2,58],96:[2,32],97:[2,33],98:[2,34],100:[2,35],101:[2,36],102:[2,37],103:[2,38],105:[2,61],106:[2,62],108:[2,63],109:[2,64]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},H=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),19;case 1:return this.begin("type_directive"),20;case 2:return this.popState(),this.begin("arg_directive"),12;case 3:return this.popState(),this.popState(),22;case 4:return 21;case 5:return"title";case 6:return this.begin("acc_title"),14;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),16;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 53:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 5;case 14:case 15:case 16:break;case 17:return 8;case 18:return 6;case 19:return 28;case 20:return 39;case 21:return 31;case 22:return 30;case 23:return 33;case 24:return 35;case 25:return 37;case 26:return 40;case 27:return 41;case 28:return 42;case 29:return 43;case 30:return 44;case 31:return 45;case 32:return 46;case 33:return 47;case 34:return 48;case 35:return 49;case 36:return 50;case 37:return 51;case 38:return 52;case 39:return 53;case 40:return 64;case 41:return 65;case 42:return 66;case 43:return 67;case 44:return 68;case 45:return 69;case 46:return 70;case 47:return 56;case 48:return 58;case 49:return 60;case 50:return 63;case 51:return 62;case 52:this.begin("string");break;case 54:return"qString";case 55:return e.yytext=e.yytext.trim(),71}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\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,/^(?:(\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:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[53,54],inclusive:!1},INITIAL:{rules:[0,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,55],inclusive:!0}}},t);function U(){this.yy={}}return z.lexer=H,U.prototype=z,z.Parser=U,new U}();kl.parser=kl;const El=kl,Cl=t=>null!==t.match(/^\s*requirement(Diagram)?/);let Sl=[],Tl={},Al={},Dl={},Il={};const Ll={RequirementType:{REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},RiskLevel:{LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},VerifyType:{VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},Relationships:{CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().req,addRequirement:(t,e)=>(void 0===Al[t]&&(Al[t]={name:t,type:e,id:Tl.id,text:Tl.text,risk:Tl.risk,verifyMethod:Tl.verifyMethod}),Tl={},Al[t]),getRequirements:()=>Al,setNewReqId:t=>{void 0!==Tl&&(Tl.id=t)},setNewReqText:t=>{void 0!==Tl&&(Tl.text=t)},setNewReqRisk:t=>{void 0!==Tl&&(Tl.risk=t)},setNewReqVerifyMethod:t=>{void 0!==Tl&&(Tl.verifyMethod=t)},setAccTitle:Li,getAccTitle:Oi,setAccDescription:Mi,getAccDescription:Ni,addElement:t=>(void 0===Il[t]&&(Il[t]={name:t,type:Dl.type,docRef:Dl.docRef},Dt.info("Added new requirement: ",t)),Dl={},Il[t]),getElements:()=>Il,setNewElementType:t=>{void 0!==Dl&&(Dl.type=t)},setNewElementDocRef:t=>{void 0!==Dl&&(Dl.docRef=t)},addRelationship:(t,e,n)=>{Sl.push({type:t,src:e,dst:n})},getRelationships:()=>Sl,clear:()=>{Sl=[],Tl={},Al={},Dl={},Il={},Ii()}},Ol={CONTAINS:"contains",ARROW:"arrow"},Ml=Ol,Nl=(t,e)=>{let n=t.append("defs").append("marker").attr("id",Ol.CONTAINS+"_line_ending").attr("refX",0).attr("refY",e.line_height/2).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("g");n.append("circle").attr("cx",e.line_height/2).attr("cy",e.line_height/2).attr("r",e.line_height/2).attr("fill","none"),n.append("line").attr("x1",0).attr("x2",e.line_height).attr("y1",e.line_height/2).attr("y2",e.line_height/2).attr("stroke-width",1),n.append("line").attr("y1",0).attr("y2",e.line_height).attr("x1",e.line_height/2).attr("x2",e.line_height/2).attr("stroke-width",1),t.append("defs").append("marker").attr("id",Ol.ARROW+"_line_ending").attr("refX",e.line_height).attr("refY",.5*e.line_height).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("path").attr("d",`M0,0\n L${e.line_height},${e.line_height/2}\n M${e.line_height},${e.line_height/2}\n L0,${e.line_height}`).attr("stroke-width",1)};let Bl={},Pl=0;const Fl=(t,e)=>t.insert("rect","#"+e).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",Bl.rect_min_width+"px").attr("height",Bl.rect_min_height+"px"),jl=(t,e,n)=>{let i=Bl.rect_min_width/2,a=t.append("text").attr("class","req reqLabel reqTitle").attr("id",e).attr("x",i).attr("y",Bl.rect_padding).attr("dominant-baseline","hanging"),r=0;n.forEach((t=>{0==r?a.append("tspan").attr("text-anchor","middle").attr("x",Bl.rect_min_width/2).attr("dy",0).text(t):a.append("tspan").attr("text-anchor","middle").attr("x",Bl.rect_min_width/2).attr("dy",.75*Bl.line_height).text(t),r++}));let o=1.5*Bl.rect_padding+r*Bl.line_height*.75;return t.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",Bl.rect_min_width).attr("y1",o).attr("y2",o),{titleNode:a,y:o}},$l=(t,e,n,i)=>{let a=t.append("text").attr("class","req reqLabel").attr("id",e).attr("x",Bl.rect_padding).attr("y",i).attr("dominant-baseline","hanging"),r=0;let o=[];return n.forEach((t=>{let e=t.length;for(;e>30&&r<3;){let n=t.substring(0,30);e=(t=t.substring(30,t.length)).length,o[o.length]=n,r++}if(3==r){let t=o[o.length-1];o[o.length-1]=t.substring(0,t.length-4)+"..."}else o[o.length]=t;r=0})),o.forEach((t=>{a.append("tspan").attr("x",Bl.rect_padding).attr("dy",Bl.line_height).text(t)})),a},zl=function(t,e,n,i,a){const r=n.edge(Hl(e.src),Hl(e.dst)),o=(0,s.jvg)().x((function(t){return t.x})).y((function(t){return t.y})),c=t.insert("path","#"+i).attr("class","er relationshipLine").attr("d",o(r.points)).attr("fill","none");e.type==a.db.Relationships.CONTAINS?c.attr("marker-start","url("+zt.getUrl(Bl.arrowMarkerAbsolute)+"#"+e.type+"_line_ending)"):(c.attr("stroke-dasharray","10,7"),c.attr("marker-end","url("+zt.getUrl(Bl.arrowMarkerAbsolute)+"#"+Ml.ARROW+"_line_ending)")),((t,e,n,i)=>{const a=e.node().getTotalLength(),r=e.node().getPointAtLength(.5*a),o="rel"+Pl;Pl++;const s=t.append("text").attr("class","req relationshipLabel").attr("id",o).attr("x",r.x).attr("y",r.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(i).node().getBBox();t.insert("rect","#"+o).attr("class","req reqLabelBox").attr("x",r.x-s.width/2).attr("y",r.y-s.height/2).attr("width",s.width).attr("height",s.height).attr("fill","white").attr("fill-opacity","85%")})(t,c,0,`<<${e.type}>>`)},Hl=t=>t.replace(/\s/g,"").replace(/\./g,"_"),Ul={draw:(t,e,n,i)=>{Bl=ai().requirement,i.db.clear(),i.parser.parse(t);const a=Bl.securityLevel;let r;"sandbox"===a&&(r=(0,s.Ys)("#i"+e));const o=("sandbox"===a?(0,s.Ys)(r.nodes()[0].contentDocument.body):(0,s.Ys)("body")).select(`[id='${e}']`);Nl(o,Bl);const c=new lt.k({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:Bl.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel((function(){return{}}));let l=i.db.getRequirements(),u=i.db.getElements(),d=i.db.getRelationships();var h,f,g;h=l,f=c,g=o,Object.keys(h).forEach((t=>{let e=h[t];t=Hl(t),Dt.info("Added new requirement: ",t);const n=g.append("g").attr("id",t),i=Fl(n,"req-"+t);let a=jl(n,t+"_title",[`<<${e.type}>>`,`${e.name}`]);$l(n,t+"_body",[`Id: ${e.id}`,`Text: ${e.text}`,`Risk: ${e.risk}`,`Verification: ${e.verifyMethod}`],a.y);const r=i.node().getBBox();f.setNode(t,{width:r.width,height:r.height,shape:"rect",id:t})})),((t,e,n)=>{Object.keys(t).forEach((i=>{let a=t[i];const r=Hl(i),o=n.append("g").attr("id",r),s="element-"+r,c=Fl(o,s);let l=jl(o,s+"_title",["<<Element>>",`${i}`]);$l(o,s+"_body",[`Type: ${a.type||"Not Specified"}`,`Doc Ref: ${a.docRef||"None"}`],l.y);const u=c.node().getBBox();e.setNode(r,{width:u.width,height:u.height,shape:"rect",id:r})}))})(u,c,o),((t,e)=>{t.forEach((function(t){let n=Hl(t.src),i=Hl(t.dst);e.setEdge(n,i,{relationship:t})}))})(d,c),(0,ct.bK)(c),function(t,e){e.nodes().forEach((function(n){void 0!==n&&void 0!==e.node(n)&&(t.select("#"+n),t.select("#"+n).attr("transform","translate("+(e.node(n).x-e.node(n).width/2)+","+(e.node(n).y-e.node(n).height/2)+" )"))}))}(o,c),d.forEach((function(t){zl(o,t,c,e,i)}));const p=Bl.rect_padding,b=o.node().getBBox(),m=b.width+2*p,y=b.height+2*p;di(o,y,m,Bl.useMaxWidth),o.attr("viewBox",`${b.x-p} ${b.y-p} ${m} ${y}`)}};var Vl=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,2],i=[1,3],a=[1,5],r=[1,7],o=[2,5],s=[1,15],c=[1,17],l=[1,19],u=[1,21],d=[1,22],h=[1,23],f=[1,29],g=[1,30],p=[1,31],b=[1,32],m=[1,33],y=[1,34],v=[1,35],w=[1,36],x=[1,37],R=[1,38],_=[1,39],k=[1,40],E=[1,42],C=[1,43],S=[1,45],T=[1,46],A=[1,47],D=[1,48],I=[1,49],L=[1,50],O=[1,53],M=[1,4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,51,52,53,54,56,57,62,63,64,65,73,83],N=[4,5,21,54,56],B=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,54,56,57,62,63,64,65,73,83],P=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,53,54,56,57,62,63,64,65,73,83],F=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,52,54,56,57,62,63,64,65,73,83],j=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,51,54,56,57,62,63,64,65,73,83],$=[71,72,73],z=[1,125],H=[1,4,5,7,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,51,52,53,54,56,57,62,63,64,65,73,83],U={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,directive:6,SD:7,document:8,line:9,statement:10,box_section:11,box_line:12,participant_statement:13,openDirective:14,typeDirective:15,closeDirective:16,":":17,argDirective:18,box:19,restOfLine:20,end:21,signal:22,autonumber:23,NUM:24,off:25,activate:26,actor:27,deactivate:28,note_statement:29,links_statement:30,link_statement:31,properties_statement:32,details_statement:33,title:34,legacy_title:35,acc_title:36,acc_title_value:37,acc_descr:38,acc_descr_value:39,acc_descr_multiline_value:40,loop:41,rect:42,opt:43,alt:44,else_sections:45,par:46,par_sections:47,critical:48,option_sections:49,break:50,option:51,and:52,else:53,participant:54,AS:55,participant_actor:56,note:57,placement:58,text2:59,over:60,actor_pair:61,links:62,link:63,properties:64,details:65,spaceList:66,",":67,left_of:68,right_of:69,signaltype:70,"+":71,"-":72,ACTOR:73,SOLID_OPEN_ARROW:74,DOTTED_OPEN_ARROW:75,SOLID_ARROW:76,DOTTED_ARROW:77,SOLID_CROSS:78,DOTTED_CROSS:79,SOLID_POINT:80,DOTTED_POINT:81,TXT:82,open_directive:83,type_directive:84,arg_directive:85,close_directive:86,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",7:"SD",17:":",19:"box",20:"restOfLine",21:"end",23:"autonumber",24:"NUM",25:"off",26:"activate",28:"deactivate",34:"title",35:"legacy_title",36:"acc_title",37:"acc_title_value",38:"acc_descr",39:"acc_descr_value",40:"acc_descr_multiline_value",41:"loop",42:"rect",43:"opt",44:"alt",46:"par",48:"critical",50:"break",51:"option",52:"and",53:"else",54:"participant",55:"AS",56:"participant_actor",57:"note",60:"over",62:"links",63:"link",64:"properties",65:"details",67:",",68:"left_of",69:"right_of",71:"+",72:"-",73:"ACTOR",74:"SOLID_OPEN_ARROW",75:"DOTTED_OPEN_ARROW",76:"SOLID_ARROW",77:"DOTTED_ARROW",78:"SOLID_CROSS",79:"DOTTED_CROSS",80:"SOLID_POINT",81:"DOTTED_POINT",82:"TXT",83:"open_directive",84:"type_directive",85:"arg_directive",86:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[11,0],[11,2],[12,2],[12,1],[12,1],[6,4],[6,6],[10,1],[10,4],[10,2],[10,4],[10,3],[10,3],[10,2],[10,3],[10,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,2],[10,2],[10,1],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,1],[49,1],[49,4],[47,1],[47,4],[45,1],[45,4],[13,5],[13,3],[13,5],[13,3],[29,4],[29,4],[30,3],[31,3],[32,3],[33,3],[66,2],[66,1],[61,3],[61,1],[58,1],[58,1],[22,5],[22,5],[22,4],[27,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[59,1],[14,1],[15,1],[18,1],[16,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 4:return i.apply(r[s]),r[s];case 5:case 10:case 9:case 14:this.$=[];break;case 6:case 11:r[s-1].push(r[s]),this.$=r[s-1];break;case 7:case 8:case 12:case 13:case 63:this.$=r[s];break;case 18:r[s-1].unshift({type:"boxStart",boxData:i.parseBoxData(r[s-2])}),r[s-1].push({type:"boxEnd",boxText:r[s-2]}),this.$=r[s-1];break;case 20:this.$={type:"sequenceIndex",sequenceIndex:Number(r[s-2]),sequenceIndexStep:Number(r[s-1]),sequenceVisible:!0,signalType:i.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceIndex:Number(r[s-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:i.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:i.LINETYPE.AUTONUMBER};break;case 23:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:i.LINETYPE.AUTONUMBER};break;case 24:this.$={type:"activeStart",signalType:i.LINETYPE.ACTIVE_START,actor:r[s-1]};break;case 25:this.$={type:"activeEnd",signalType:i.LINETYPE.ACTIVE_END,actor:r[s-1]};break;case 31:i.setDiagramTitle(r[s].substring(6)),this.$=r[s].substring(6);break;case 32:i.setDiagramTitle(r[s].substring(7)),this.$=r[s].substring(7);break;case 33:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 34:case 35:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 36:r[s-1].unshift({type:"loopStart",loopText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.LOOP_START}),r[s-1].push({type:"loopEnd",loopText:r[s-2],signalType:i.LINETYPE.LOOP_END}),this.$=r[s-1];break;case 37:r[s-1].unshift({type:"rectStart",color:i.parseMessage(r[s-2]),signalType:i.LINETYPE.RECT_START}),r[s-1].push({type:"rectEnd",color:i.parseMessage(r[s-2]),signalType:i.LINETYPE.RECT_END}),this.$=r[s-1];break;case 38:r[s-1].unshift({type:"optStart",optText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.OPT_START}),r[s-1].push({type:"optEnd",optText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.OPT_END}),this.$=r[s-1];break;case 39:r[s-1].unshift({type:"altStart",altText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.ALT_START}),r[s-1].push({type:"altEnd",signalType:i.LINETYPE.ALT_END}),this.$=r[s-1];break;case 40:r[s-1].unshift({type:"parStart",parText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.PAR_START}),r[s-1].push({type:"parEnd",signalType:i.LINETYPE.PAR_END}),this.$=r[s-1];break;case 41:r[s-1].unshift({type:"criticalStart",criticalText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.CRITICAL_START}),r[s-1].push({type:"criticalEnd",signalType:i.LINETYPE.CRITICAL_END}),this.$=r[s-1];break;case 42:r[s-1].unshift({type:"breakStart",breakText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.BREAK_START}),r[s-1].push({type:"breakEnd",optText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.BREAK_END}),this.$=r[s-1];break;case 45:this.$=r[s-3].concat([{type:"option",optionText:i.parseMessage(r[s-1]),signalType:i.LINETYPE.CRITICAL_OPTION},r[s]]);break;case 47:this.$=r[s-3].concat([{type:"and",parText:i.parseMessage(r[s-1]),signalType:i.LINETYPE.PAR_AND},r[s]]);break;case 49:this.$=r[s-3].concat([{type:"else",altText:i.parseMessage(r[s-1]),signalType:i.LINETYPE.ALT_ELSE},r[s]]);break;case 50:r[s-3].type="addParticipant",r[s-3].description=i.parseMessage(r[s-1]),this.$=r[s-3];break;case 51:r[s-1].type="addParticipant",this.$=r[s-1];break;case 52:r[s-3].type="addActor",r[s-3].description=i.parseMessage(r[s-1]),this.$=r[s-3];break;case 53:r[s-1].type="addActor",this.$=r[s-1];break;case 54:this.$=[r[s-1],{type:"addNote",placement:r[s-2],actor:r[s-1].actor,text:r[s]}];break;case 55:r[s-2]=[].concat(r[s-1],r[s-1]).slice(0,2),r[s-2][0]=r[s-2][0].actor,r[s-2][1]=r[s-2][1].actor,this.$=[r[s-1],{type:"addNote",placement:i.PLACEMENT.OVER,actor:r[s-2].slice(0,2),text:r[s]}];break;case 56:this.$=[r[s-1],{type:"addLinks",actor:r[s-1].actor,text:r[s]}];break;case 57:this.$=[r[s-1],{type:"addALink",actor:r[s-1].actor,text:r[s]}];break;case 58:this.$=[r[s-1],{type:"addProperties",actor:r[s-1].actor,text:r[s]}];break;case 59:this.$=[r[s-1],{type:"addDetails",actor:r[s-1].actor,text:r[s]}];break;case 62:this.$=[r[s-2],r[s]];break;case 64:this.$=i.PLACEMENT.LEFTOF;break;case 65:this.$=i.PLACEMENT.RIGHTOF;break;case 66:this.$=[r[s-4],r[s-1],{type:"addMessage",from:r[s-4].actor,to:r[s-1].actor,signalType:r[s-3],msg:r[s]},{type:"activeStart",signalType:i.LINETYPE.ACTIVE_START,actor:r[s-1]}];break;case 67:this.$=[r[s-4],r[s-1],{type:"addMessage",from:r[s-4].actor,to:r[s-1].actor,signalType:r[s-3],msg:r[s]},{type:"activeEnd",signalType:i.LINETYPE.ACTIVE_END,actor:r[s-4]}];break;case 68:this.$=[r[s-3],r[s-1],{type:"addMessage",from:r[s-3].actor,to:r[s-1].actor,signalType:r[s-2],msg:r[s]}];break;case 69:this.$={type:"addParticipant",actor:r[s]};break;case 70:this.$=i.LINETYPE.SOLID_OPEN;break;case 71:this.$=i.LINETYPE.DOTTED_OPEN;break;case 72:this.$=i.LINETYPE.SOLID;break;case 73:this.$=i.LINETYPE.DOTTED;break;case 74:this.$=i.LINETYPE.SOLID_CROSS;break;case 75:this.$=i.LINETYPE.DOTTED_CROSS;break;case 76:this.$=i.LINETYPE.SOLID_POINT;break;case 77:this.$=i.LINETYPE.DOTTED_POINT;break;case 78:this.$=i.parseMessage(r[s].trim().substring(1));break;case 79:i.parseDirective("%%{","open_directive");break;case 80:i.parseDirective(r[s],"type_directive");break;case 81:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 82:i.parseDirective("}%%","close_directive","sequence")}},table:[{3:1,4:n,5:i,6:4,7:a,14:6,83:r},{1:[3]},{3:8,4:n,5:i,6:4,7:a,14:6,83:r},{3:9,4:n,5:i,6:4,7:a,14:6,83:r},{3:10,4:n,5:i,6:4,7:a,14:6,83:r},e([1,4,5,19,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,54,56,57,62,63,64,65,73,83],o,{8:11}),{15:12,84:[1,13]},{84:[2,79]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:s,5:c,6:41,9:14,10:16,13:18,14:6,19:l,22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},{16:51,17:[1,52],86:O},e([17,86],[2,80]),e(M,[2,6]),{6:41,10:54,13:18,14:6,19:l,22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},e(M,[2,8]),e(M,[2,9]),e(M,[2,17]),{20:[1,55]},{5:[1,56]},{5:[1,59],24:[1,57],25:[1,58]},{27:60,73:L},{27:61,73:L},{5:[1,62]},{5:[1,63]},{5:[1,64]},{5:[1,65]},{5:[1,66]},e(M,[2,31]),e(M,[2,32]),{37:[1,67]},{39:[1,68]},e(M,[2,35]),{20:[1,69]},{20:[1,70]},{20:[1,71]},{20:[1,72]},{20:[1,73]},{20:[1,74]},{20:[1,75]},e(M,[2,43]),{27:76,73:L},{27:77,73:L},{70:78,74:[1,79],75:[1,80],76:[1,81],77:[1,82],78:[1,83],79:[1,84],80:[1,85],81:[1,86]},{58:87,60:[1,88],68:[1,89],69:[1,90]},{27:91,73:L},{27:92,73:L},{27:93,73:L},{27:94,73:L},e([5,55,67,74,75,76,77,78,79,80,81,82],[2,69]),{5:[1,95]},{18:96,85:[1,97]},{5:[2,82]},e(M,[2,7]),e(N,[2,10],{11:98}),e(M,[2,19]),{5:[1,100],24:[1,99]},{5:[1,101]},e(M,[2,23]),{5:[1,102]},{5:[1,103]},e(M,[2,26]),e(M,[2,27]),e(M,[2,28]),e(M,[2,29]),e(M,[2,30]),e(M,[2,33]),e(M,[2,34]),e(B,o,{8:104}),e(B,o,{8:105}),e(B,o,{8:106}),e(P,o,{45:107,8:108}),e(F,o,{47:109,8:110}),e(j,o,{49:111,8:112}),e(B,o,{8:113}),{5:[1,115],55:[1,114]},{5:[1,117],55:[1,116]},{27:120,71:[1,118],72:[1,119],73:L},e($,[2,70]),e($,[2,71]),e($,[2,72]),e($,[2,73]),e($,[2,74]),e($,[2,75]),e($,[2,76]),e($,[2,77]),{27:121,73:L},{27:123,61:122,73:L},{73:[2,64]},{73:[2,65]},{59:124,82:z},{59:126,82:z},{59:127,82:z},{59:128,82:z},e(H,[2,15]),{16:129,86:O},{86:[2,81]},{4:[1,132],5:[1,134],12:131,13:133,21:[1,130],54:E,56:C},{5:[1,135]},e(M,[2,21]),e(M,[2,22]),e(M,[2,24]),e(M,[2,25]),{4:s,5:c,6:41,9:14,10:16,13:18,14:6,19:l,21:[1,136],22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},{4:s,5:c,6:41,9:14,10:16,13:18,14:6,19:l,21:[1,137],22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},{4:s,5:c,6:41,9:14,10:16,13:18,14:6,19:l,21:[1,138],22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},{21:[1,139]},{4:s,5:c,6:41,9:14,10:16,13:18,14:6,19:l,21:[2,48],22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,53:[1,140],54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},{21:[1,141]},{4:s,5:c,6:41,9:14,10:16,13:18,14:6,19:l,21:[2,46],22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,52:[1,142],54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},{21:[1,143]},{4:s,5:c,6:41,9:14,10:16,13:18,14:6,19:l,21:[2,44],22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,51:[1,144],54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},{4:s,5:c,6:41,9:14,10:16,13:18,14:6,19:l,21:[1,145],22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},{20:[1,146]},e(M,[2,51]),{20:[1,147]},e(M,[2,53]),{27:148,73:L},{27:149,73:L},{59:150,82:z},{59:151,82:z},{59:152,82:z},{67:[1,153],82:[2,63]},{5:[2,56]},{5:[2,78]},{5:[2,57]},{5:[2,58]},{5:[2,59]},{5:[1,154]},e(M,[2,18]),e(N,[2,11]),{13:155,54:E,56:C},e(N,[2,13]),e(N,[2,14]),e(M,[2,20]),e(M,[2,36]),e(M,[2,37]),e(M,[2,38]),e(M,[2,39]),{20:[1,156]},e(M,[2,40]),{20:[1,157]},e(M,[2,41]),{20:[1,158]},e(M,[2,42]),{5:[1,159]},{5:[1,160]},{59:161,82:z},{59:162,82:z},{5:[2,68]},{5:[2,54]},{5:[2,55]},{27:163,73:L},e(H,[2,16]),e(N,[2,12]),e(P,o,{8:108,45:164}),e(F,o,{8:110,47:165}),e(j,o,{8:112,49:166}),e(M,[2,50]),e(M,[2,52]),{5:[2,66]},{5:[2,67]},{82:[2,62]},{21:[2,49]},{21:[2,47]},{21:[2,45]}],defaultActions:{7:[2,79],8:[2,1],9:[2,2],10:[2,3],53:[2,82],89:[2,64],90:[2,65],97:[2,81],124:[2,56],125:[2,78],126:[2,57],127:[2,58],128:[2,59],150:[2,68],151:[2,54],152:[2,55],161:[2,66],162:[2,67],163:[2,62],164:[2,49],165:[2,47],166:[2,45]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},V=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),83;case 1:return this.begin("type_directive"),84;case 2:return this.popState(),this.begin("arg_directive"),17;case 3:return this.popState(),this.popState(),86;case 4:return 85;case 5:case 53:case 66:return 5;case 6:case 7:case 8:case 9:case 10:break;case 11:return 24;case 12:return this.begin("LINE"),19;case 13:return this.begin("ID"),54;case 14:return this.begin("ID"),56;case 15:return e.yytext=e.yytext.trim(),this.begin("ALIAS"),73;case 16:return this.popState(),this.popState(),this.begin("LINE"),55;case 17:return this.popState(),this.popState(),5;case 18:return this.begin("LINE"),41;case 19:return this.begin("LINE"),42;case 20:return this.begin("LINE"),43;case 21:return this.begin("LINE"),44;case 22:return this.begin("LINE"),53;case 23:return this.begin("LINE"),46;case 24:return this.begin("LINE"),52;case 25:return this.begin("LINE"),48;case 26:return this.begin("LINE"),51;case 27:return this.begin("LINE"),50;case 28:return this.popState(),20;case 29:return 21;case 30:return 68;case 31:return 69;case 32:return 62;case 33:return 63;case 34:return 64;case 35:return 65;case 36:return 60;case 37:return 57;case 38:return this.begin("ID"),26;case 39:return this.begin("ID"),28;case 40:return 34;case 41:return 35;case 42:return this.begin("acc_title"),36;case 43:return this.popState(),"acc_title_value";case 44:return this.begin("acc_descr"),38;case 45:return this.popState(),"acc_descr_value";case 46:this.begin("acc_descr_multiline");break;case 47:this.popState();break;case 48:return"acc_descr_multiline_value";case 49:return 7;case 50:return 23;case 51:return 25;case 52:return 67;case 54:return e.yytext=e.yytext.trim(),73;case 55:return 76;case 56:return 77;case 57:return 74;case 58:return 75;case 59:return 78;case 60:return 79;case 61:return 80;case 62:return 81;case 63:return 82;case 64:return 71;case 65:return 72;case 67:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:[\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,/^(?:[^\->:\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,/^(?: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:[47,48],inclusive:!1},acc_descr:{rules:[45],inclusive:!1},acc_title:{rules:[43],inclusive:!1},open_directive:{rules:[1,8],inclusive:!1},type_directive:{rules:[2,3,8],inclusive:!1},arg_directive:{rules:[3,4,8],inclusive:!1},ID:{rules:[7,8,15],inclusive:!1},ALIAS:{rules:[7,8,16,17],inclusive:!1},LINE:{rules:[7,8,28],inclusive:!1},INITIAL:{rules:[0,5,6,8,9,10,11,12,13,14,18,19,20,21,22,23,24,25,26,27,29,30,31,32,33,34,35,36,37,38,39,40,41,42,44,46,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],inclusive:!0}}},t);function q(){this.yy={}}return U.lexer=V,q.prototype=U,U.Parser=q,new q}();Vl.parser=Vl;const ql=Vl,Wl=t=>null!==t.match(/^\s*sequenceDiagram/);let Yl,Gl,Zl,Kl={},Xl=[],Jl=[],Ql=!1;const tu=function(t,e,n,i){let a=Zl;const r=Kl[t];if(r){if(Zl&&r.box&&Zl!==r.box)throw new Error("A same participant should only be defined in one Box: "+r.name+" can't be in '"+r.box.name+"' and in '"+Zl.name+"' at the same time.");if(a=r.box?r.box:Zl,r.box=a,r&&e===r.name&&null==n)return}null!=n&&null!=n.text||(n={text:e,wrap:null,type:i}),null!=i&&null!=n.text||(n={text:e,wrap:null,type:i}),Kl[t]={box:a,name:e,description:n.text,wrap:void 0===n.wrap&&iu()||!!n.wrap,prevActor:Yl,links:{},properties:{},actorCnt:null,rectData:null,type:i||"participant"},Yl&&Kl[Yl]&&(Kl[Yl].nextActor=t),Zl&&Zl.actorKeys.push(t),Yl=t},eu=function(t,e,n={text:void 0,wrap:void 0},i){if(i===au.ACTIVE_END){const e=(t=>{let e,n=0;for(e=0;e<Jl.length;e++)Jl[e].type===au.ACTIVE_START&&Jl[e].from.actor===t&&n++,Jl[e].type===au.ACTIVE_END&&Jl[e].from.actor===t&&n--;return n})(t.actor);if(e<1){let e=new Error("Trying to inactivate an inactive participant ("+t.actor+")");throw e.hash={text:"->>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},e}}return Jl.push({from:t,to:e,message:n.text,wrap:void 0===n.wrap&&iu()||!!n.wrap,type:i}),!0},nu=function(t){return Kl[t]},iu=()=>void 0!==Gl?Gl:ai().sequence.wrap,au={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},ru=function(t,e,n){n.text,void 0===n.wrap&&iu()||n.wrap;const i=[].concat(t,t);Jl.push({from:i[0],to:i[1],message:n.text,wrap:void 0===n.wrap&&iu()||!!n.wrap,type:au.NOTE,placement:e})},ou=function(t,e){const n=nu(t);try{let t=Nt(e.text,ai());t=t.replace(/&/g,"&"),t=t.replace(/=/g,"=");su(n,JSON.parse(t))}catch(i){Dt.error("error while parsing actor link text",i)}};function su(t,e){if(null==t.links)t.links=e;else for(let n in e)t.links[n]=e[n]}const cu=function(t,e){const n=nu(t);try{let t=Nt(e.text,ai());lu(n,JSON.parse(t))}catch(i){Dt.error("error while parsing actor properties text",i)}};function lu(t,e){if(null==t.properties)t.properties=e;else for(let n in e)t.properties[n]=e[n]}const uu=function(t,e){const n=nu(t),i=document.getElementById(e.text);try{const t=i.innerHTML,e=JSON.parse(t);e.properties&&lu(n,e.properties),e.links&&su(n,e.links)}catch(a){Dt.error("error while parsing actor details text",a)}},du=function(t){if(Array.isArray(t))t.forEach((function(t){du(t)}));else switch(t.type){case"sequenceIndex":Jl.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":tu(t.actor,t.actor,t.description,"participant");break;case"addActor":tu(t.actor,t.actor,t.description,"actor");break;case"activeStart":case"activeEnd":eu(t.actor,void 0,void 0,t.signalType);break;case"addNote":ru(t.actor,t.placement,t.text);break;case"addLinks":ou(t.actor,t.text);break;case"addALink":!function(t,e){const n=nu(t);try{const t={};let o=Nt(e.text,ai());var i=o.indexOf("@");o=o.replace(/&/g,"&"),o=o.replace(/=/g,"=");var a=o.slice(0,i-1).trim(),r=o.slice(i+1).trim();t[a]=r,su(n,t)}catch(o){Dt.error("error while parsing actor link text",o)}}(t.actor,t.text);break;case"addProperties":cu(t.actor,t.text);break;case"addDetails":uu(t.actor,t.text);break;case"addMessage":eu(t.from,t.to,t.msg,t.signalType);break;case"boxStart":e=t.boxData,Xl.push({name:e.text,wrap:void 0===e.wrap&&iu()||!!e.wrap,fill:e.color,actorKeys:[]}),Zl=Xl.slice(-1)[0];break;case"boxEnd":Zl=void 0;break;case"loopStart":eu(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":case"rectEnd":case"optEnd":case"altEnd":case"parEnd":case"criticalEnd":case"breakEnd":eu(void 0,void 0,void 0,t.signalType);break;case"rectStart":eu(void 0,void 0,t.color,t.signalType);break;case"optStart":eu(void 0,void 0,t.optText,t.signalType);break;case"altStart":case"else":eu(void 0,void 0,t.altText,t.signalType);break;case"setAccTitle":Li(t.text);break;case"parStart":case"and":eu(void 0,void 0,t.parText,t.signalType);break;case"criticalStart":eu(void 0,void 0,t.criticalText,t.signalType);break;case"option":eu(void 0,void 0,t.optionText,t.signalType);break;case"breakStart":eu(void 0,void 0,t.breakText,t.signalType)}var e},hu={addActor:tu,addMessage:function(t,e,n,i){Jl.push({from:t,to:e,message:n.text,wrap:void 0===n.wrap&&iu()||!!n.wrap,answer:i})},addSignal:eu,addLinks:ou,addDetails:uu,addProperties:cu,autoWrap:iu,setWrap:function(t){Gl=t},enableSequenceNumbers:function(){Ql=!0},disableSequenceNumbers:function(){Ql=!1},showSequenceNumbers:()=>Ql,getMessages:function(){return Jl},getActors:function(){return Kl},getActor:nu,getActorKeys:function(){return Object.keys(Kl)},getActorProperty:function(t,e){if(void 0!==t&&void 0!==t.properties)return t.properties[e]},getAccTitle:Oi,getBoxes:function(){return Xl},getDiagramTitle:Pi,setDiagramTitle:Bi,parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().sequence,clear:function(){Kl={},Xl=[],Jl=[],Ql=!1,Ii()},parseMessage:function(t){const e=t.trim(),n={text:e.replace(/^:?(?:no)?wrap:/,"").trim(),wrap:null!==e.match(/^:?wrap:/)||null===e.match(/^:?nowrap:/)&&void 0};return Dt.debug("parseMessage:",n),n},parseBoxData:function(t){const e=t.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);let n=null!=e&&e[1]?e[1].trim():"transparent",i=null!=e&&e[2]?e[2].trim():void 0;if(window&&window.CSS)window.CSS.supports("color",n)||(n="transparent",i=t.trim());else{const e=(new Option).style;e.color=n,e.color!==n&&(n="transparent",i=t.trim())}return{color:n,text:void 0!==i?Nt(i.replace(/^:?(?:no)?wrap:/,""),ai()):void 0,wrap:void 0!==i?null!==i.match(/^:?wrap:/)||null===i.match(/^:?nowrap:/)&&void 0:void 0}},LINETYPE:au,ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},addNote:ru,setAccTitle:Li,apply:du,setAccDescription:Mi,getAccDescription:Ni,hasAtLeastOneBox:function(){return Xl.length>0},hasAtLeastOneBoxWithTitle:function(){return Xl.some((t=>t.name))}};let fu=[];const gu=()=>{fu.forEach((t=>{t()})),fu=[]},pu=function(t,e){const n=t.append("rect");return n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),n.attr("rx",e.rx),n.attr("ry",e.ry),void 0!==e.class&&n.attr("class",e.class),n},bu=(t,e)=>{var n;n=()=>{const n=document.querySelectorAll(t);0!==n.length&&(n[0].addEventListener("mouseover",(function(){vu("actor"+e+"_popup")})),n[0].addEventListener("mouseout",(function(){wu("actor"+e+"_popup")})))},fu.push(n)},mu=function(t,e,n,i){const a=t.append("image");a.attr("x",e),a.attr("y",n);var r=(0,o.Nm)(i);a.attr("xlink:href",r)},yu=function(t,e,n,i){const a=t.append("use");a.attr("x",e),a.attr("y",n);var r=(0,o.Nm)(i);a.attr("xlink:href","#"+r)},vu=function(t){var e=document.getElementById(t);null!=e&&(e.style.display="block")},wu=function(t){var e=document.getElementById(t);null!=e&&(e.style.display="none")},xu=function(t,e){let n=0,i=0;const a=e.text.split(zt.lineBreakRegex),[r,o]=Yn(e.fontSize);let s=[],c=0,l=()=>e.y;if(void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0)switch(e.valign){case"top":case"start":l=()=>Math.round(e.y+e.textMargin);break;case"middle":case"center":l=()=>Math.round(e.y+(n+i+e.textMargin)/2);break;case"bottom":case"end":l=()=>Math.round(e.y+(n+i+2*e.textMargin)-e.textMargin)}if(void 0!==e.anchor&&void 0!==e.textMargin&&void 0!==e.width)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"}for(let[u,d]of a.entries()){void 0!==e.textMargin&&0===e.textMargin&&void 0!==r&&(c=u*r);const a=t.append("text");if(a.attr("x",e.x),a.attr("y",l()),void 0!==e.anchor&&a.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),void 0!==e.fontFamily&&a.style("font-family",e.fontFamily),void 0!==o&&a.style("font-size",o),void 0!==e.fontWeight&&a.style("font-weight",e.fontWeight),void 0!==e.fill&&a.attr("fill",e.fill),void 0!==e.class&&a.attr("class",e.class),void 0!==e.dy?a.attr("dy",e.dy):0!==c&&a.attr("dy",c),e.tspan){const t=a.append("tspan");t.attr("x",e.x),void 0!==e.fill&&t.attr("fill",e.fill),t.text(d)}else a.text(d);void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0&&(i+=(a._groups||a)[0][0].getBBox().height,n=i),s.push(a)}return s},Ru=function(t,e){const n=t.append("polygon");var i,a,r,o,s;return n.attr("points",(i=e.x,a=e.y,r=e.width,o=e.height,i+","+a+" "+(i+r)+","+a+" "+(i+r)+","+(a+o-(s=7))+" "+(i+r-1.2*s)+","+(a+o)+" "+i+","+(a+o))),n.attr("class","labelBox"),e.y=e.y+e.height/2,xu(t,e),n};let _u=-1;const ku=(t,e)=>{t.selectAll&&t.selectAll(".actor-line").attr("class","200").attr("y2",e-55)},Eu=function(t,e){pu(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"}).lower()},Cu=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}},Su=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},Tu=function(){function t(t,e,n,a,r,o,s){i(e.append("text").attr("x",n+r/2).attr("y",a+o/2+5).style("text-anchor","middle").text(t),s)}function e(t,e,n,a,r,o,s,c){const{actorFontSize:l,actorFontFamily:u,actorFontWeight:d}=c,[h,f]=Yn(l),g=t.split(zt.lineBreakRegex);for(let p=0;p<g.length;p++){const t=p*h-h*(g.length-1)/2,c=e.append("text").attr("x",n+r/2).attr("y",a).style("text-anchor","middle").style("font-size",f).style("font-weight",d).style("font-family",u);c.append("tspan").attr("x",n+r/2).attr("dy",t).text(g[p]),c.attr("y",a+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(c,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,o,s,c,l),i(d,c)}function i(t,e){for(const n in e)e.hasOwnProperty(n)&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}(),Au=function(){function t(t,e,n,a,r,o,s){i(e.append("text").attr("x",n).attr("y",a).style("text-anchor","start").text(t),s)}function e(t,e,n,a,r,o,s,c){const{actorFontSize:l,actorFontFamily:u,actorFontWeight:d}=c,h=t.split(zt.lineBreakRegex);for(let f=0;f<h.length;f++){const t=f*l-l*(h.length-1)/2,r=e.append("text").attr("x",n).attr("y",a).style("text-anchor","start").style("font-size",l).style("font-weight",d).style("font-family",u);r.append("tspan").attr("x",n).attr("dy",t).text(h[f]),r.attr("y",a+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(r,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,0,s,c,l),i(d,c)}function i(t,e){for(const n in e)e.hasOwnProperty(n)&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}(),Du={drawRect:pu,drawText:xu,drawLabel:Ru,drawActor:function(t,e,n,i){switch(e.type){case"actor":return function(t,e,n,i){const a=e.x+e.width/2,r=e.y+80;i||(_u++,t.append("line").attr("id","actor"+_u).attr("x1",a).attr("y1",r).attr("x2",a).attr("y2",2e3).attr("class","actor-line").attr("stroke-width","0.5px").attr("stroke","#999"));const o=t.append("g");o.attr("class","actor-man");const s=Su();s.x=e.x,s.y=e.y,s.fill="#eaeaea",s.width=e.width,s.height=e.height,s.class="actor",s.rx=3,s.ry=3,o.append("line").attr("id","actor-man-torso"+_u).attr("x1",a).attr("y1",e.y+25).attr("x2",a).attr("y2",e.y+45),o.append("line").attr("id","actor-man-arms"+_u).attr("x1",a-18).attr("y1",e.y+33).attr("x2",a+18).attr("y2",e.y+33),o.append("line").attr("x1",a-18).attr("y1",e.y+60).attr("x2",a).attr("y2",e.y+45),o.append("line").attr("x1",a).attr("y1",e.y+45).attr("x2",a+16).attr("y2",e.y+60);const c=o.append("circle");c.attr("cx",e.x+e.width/2),c.attr("cy",e.y+10),c.attr("r",15),c.attr("width",e.width),c.attr("height",e.height);const l=o.node().getBBox();return e.height=l.height,Tu(n)(e.description,o,s.x,s.y+35,s.width,s.height,{class:"actor"},n),e.height}(t,e,n,i);case"participant":return function(t,e,n,i){const a=e.x+e.width/2,r=e.y+5,o=t.append("g");var s=o;i||(_u++,s.append("line").attr("id","actor"+_u).attr("x1",a).attr("y1",r).attr("x2",a).attr("y2",2e3).attr("class","actor-line").attr("stroke-width","0.5px").attr("stroke","#999"),s=o.append("g"),e.actorCnt=_u,null!=e.links&&(s.attr("id","root-"+_u),bu("#root-"+_u,_u)));const c=Su();var l="actor";null!=e.properties&&e.properties.class?l=e.properties.class:c.fill="#eaeaea",c.x=e.x,c.y=e.y,c.width=e.width,c.height=e.height,c.class=l,c.rx=3,c.ry=3;const u=pu(s,c);if(e.rectData=c,null!=e.properties&&e.properties.icon){const t=e.properties.icon.trim();"@"===t.charAt(0)?yu(s,c.x+c.width-20,c.y+10,t.substr(1)):mu(s,c.x+c.width-20,c.y+10,t)}Tu(n)(e.description,s,c.x,c.y,c.width,c.height,{class:"actor"},n);let d=e.height;if(u.node){const t=u.node().getBBox();e.height=t.height,d=t.height}return d}(t,e,n,i)}},drawBox:function(t,e,n){const i=t.append("g");Eu(i,e),e.name&&Tu(n)(e.name,i,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},n),i.lower()},drawPopup:function(t,e,n,i,a){if(void 0===e.links||null===e.links||0===Object.keys(e.links).length)return{height:0,width:0};const r=e.links,s=e.actorCnt,c=e.rectData;var l="none";a&&(l="block !important");const u=t.append("g");u.attr("id","actor"+s+"_popup"),u.attr("class","actorPopupMenu"),u.attr("display",l),bu("#actor"+s+"_popup",s);var d="";void 0!==c.class&&(d=" "+c.class);let h=c.width>n?c.width:n;const f=u.append("rect");if(f.attr("class","actorPopupMenuPanel"+d),f.attr("x",c.x),f.attr("y",c.height),f.attr("fill",c.fill),f.attr("stroke",c.stroke),f.attr("width",h),f.attr("height",c.height),f.attr("rx",c.rx),f.attr("ry",c.ry),null!=r){var g=20;for(let t in r){var p=u.append("a"),b=(0,o.Nm)(r[t]);p.attr("xlink:href",b),p.attr("target","_blank"),Au(i)(t,p,c.x+10,c.height+g,h,20,{class:"actor"},i),g+=30}}return f.attr("height",g),{height:c.height+g,width:h}},drawImage:mu,drawEmbeddedImage:yu,anchorElement:function(t){return t.append("g")},drawActivation:function(t,e,n,i,a){const r=Su(),o=e.anchored;r.x=e.startx,r.y=e.starty,r.class="activation"+a%3,r.width=e.stopx-e.startx,r.height=n-e.starty,pu(o,r)},drawLoop:function(t,e,n,i){const{boxMargin:a,boxTextMargin:r,labelBoxHeight:o,labelBoxWidth:s,messageFontFamily:c,messageFontSize:l,messageFontWeight:u}=i,d=t.append("g"),h=function(t,e,n,i){return d.append("line").attr("x1",t).attr("y1",e).attr("x2",n).attr("y2",i).attr("class","loopLine")};h(e.startx,e.starty,e.stopx,e.starty),h(e.stopx,e.starty,e.stopx,e.stopy),h(e.startx,e.stopy,e.stopx,e.stopy),h(e.startx,e.starty,e.startx,e.stopy),void 0!==e.sections&&e.sections.forEach((function(t){h(e.startx,t.y,e.stopx,t.y).style("stroke-dasharray","3, 3")}));let f=Cu();f.text=n,f.x=e.startx,f.y=e.starty,f.fontFamily=c,f.fontSize=l,f.fontWeight=u,f.anchor="middle",f.valign="middle",f.tspan=!1,f.width=s||50,f.height=o||20,f.textMargin=r,f.class="labelText",Ru(d,f),f=Cu(),f.text=e.title,f.x=e.startx+s/2+(e.stopx-e.startx)/2,f.y=e.starty+a+r,f.anchor="middle",f.valign="middle",f.textMargin=r,f.class="loopText",f.fontFamily=c,f.fontSize=l,f.fontWeight=u,f.wrap=!0;let g=xu(d,f);return void 0!==e.sectionTitles&&e.sectionTitles.forEach((function(t,n){if(t.message){f.text=t.message,f.x=e.startx+(e.stopx-e.startx)/2,f.y=e.sections[n].y+a+r,f.class="loopText",f.anchor="middle",f.valign="middle",f.tspan=!1,f.fontFamily=c,f.fontSize=l,f.fontWeight=u,f.wrap=e.wrap,g=xu(d,f);let i=Math.round(g.map((t=>(t._groups||t)[0][0].getBBox().height)).reduce(((t,e)=>t+e)));e.sections[n].height+=i-(a+r)}})),e.height=Math.round(e.stopy-e.starty),d},drawBackgroundRect:Eu,insertArrowHead:function(t){t.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")},insertArrowFilledHead:function(t){t.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")},insertSequenceNumber: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)},insertArrowCrossHead:function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",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")},insertDatabaseIcon: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")},insertComputerIcon: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")},insertClockIcon: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")},getTextObj:Cu,getNoteRect:Su,popupMenu:function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = 'block'; }"},popdownMenu:function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = 'none'; }"},fixLifeLineHeights:ku,sanitizeUrl:o.Nm};let Iu={};const Lu={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:function(){return Math.max.apply(null,0===this.actors.length?[0]:this.actors.map((t=>t.height||0)))+(0===this.loops.length?0:this.loops.map((t=>t.height||0)).reduce(((t,e)=>t+e)))+(0===this.messages.length?0:this.messages.map((t=>t.height||0)).reduce(((t,e)=>t+e)))+(0===this.notes.length?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,Fu(ai())},updateVal:function(t,e,n,i){void 0===t[e]?t[e]=n:t[e]=i(n,t[e])},updateBounds:function(t,e,n,i){const a=this;let r=0;function o(o){return function(s){r++;const c=a.sequenceItems.length-r+1;a.updateVal(s,"starty",e-c*Iu.boxMargin,Math.min),a.updateVal(s,"stopy",i+c*Iu.boxMargin,Math.max),a.updateVal(Lu.data,"startx",t-c*Iu.boxMargin,Math.min),a.updateVal(Lu.data,"stopx",n+c*Iu.boxMargin,Math.max),"activation"!==o&&(a.updateVal(s,"startx",t-c*Iu.boxMargin,Math.min),a.updateVal(s,"stopx",n+c*Iu.boxMargin,Math.max),a.updateVal(Lu.data,"starty",e-c*Iu.boxMargin,Math.min),a.updateVal(Lu.data,"stopy",i+c*Iu.boxMargin,Math.max))}}this.sequenceItems.forEach(o()),this.activations.forEach(o("activation"))},insert:function(t,e,n,i){const a=Math.min(t,n),r=Math.max(t,n),o=Math.min(e,i),s=Math.max(e,i);this.updateVal(Lu.data,"startx",a,Math.min),this.updateVal(Lu.data,"starty",o,Math.min),this.updateVal(Lu.data,"stopx",r,Math.max),this.updateVal(Lu.data,"stopy",s,Math.max),this.updateBounds(a,o,r,s)},newActivation:function(t,e,n){const i=n[t.from.actor],a=ju(t.from.actor).length||0,r=i.x+i.width/2+(a-1)*Iu.activationWidth/2;this.activations.push({startx:r,starty:this.verticalPos+2,stopx:r+Iu.activationWidth,stopy:void 0,actor:t.from.actor,anchored:Du.anchorElement(e)})},endActivation:function(t){const e=this.activations.map((function(t){return t.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()},addSectionToLoop:function(t){const e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:Lu.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},Ou=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),Mu=t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),Nu=t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight});const Bu=function(t,e,n,i,a,r,o){if(!0===a.hideUnusedParticipants){const t=new Set;r.forEach((e=>{t.add(e.from),t.add(e.to)})),n=n.filter((e=>t.has(e)))}let s,c=0,l=0,u=0;for(const d of n){const n=e[d],a=n.box;s&&s!=a&&(o||Lu.models.addBox(s),l+=Iu.boxMargin+s.margin),a&&a!=s&&(o||(a.x=c+l,a.y=i),l+=a.margin),n.width=n.width||Iu.width,n.height=Math.max(n.height||Iu.height,Iu.height),n.margin=n.margin||Iu.actorMargin,n.x=c+l,n.y=Lu.getVerticalPos();const r=Du.drawActor(t,n,Iu,o);u=Math.max(u,r),Lu.insert(n.x,i,n.x+n.width,n.height),c+=n.width+l,n.box&&(n.box.width=c+a.margin-n.box.x),l=n.margin,s=n.box,Lu.models.addActor(n)}s&&!o&&Lu.models.addBox(s),Lu.bumpVerticalPos(u)},Pu=function(t,e,n,i){let a=0,r=0;for(const o of n){const n=e[o],s=Hu(n),c=Du.drawPopup(t,n,s,Iu,Iu.forceMenus,i);c.height>a&&(a=c.height),c.width+n.x>r&&(r=c.width+n.x)}return{maxHeight:a,maxWidth:r}},Fu=function(t){Cn(Iu,t),t.fontFamily&&(Iu.actorFontFamily=Iu.noteFontFamily=Iu.messageFontFamily=t.fontFamily),t.fontSize&&(Iu.actorFontSize=Iu.noteFontSize=Iu.messageFontSize=t.fontSize),t.fontWeight&&(Iu.actorFontWeight=Iu.noteFontWeight=Iu.messageFontWeight=t.fontWeight)},ju=function(t){return Lu.activations.filter((function(e){return e.actor===t}))},$u=function(t,e){const n=e[t],i=ju(t);return[i.reduce((function(t,e){return Math.min(t,e.startx)}),n.x+n.width/2),i.reduce((function(t,e){return Math.max(t,e.stopx)}),n.x+n.width/2)]};function zu(t,e,n,i,a){Lu.bumpVerticalPos(n);let r=i;if(e.id&&e.message&&t[e.id]){const n=t[e.id].width,a=Ou(Iu);e.message=Gn.wrapLabel(`[${e.message}]`,n-2*Iu.wrapPadding,a),e.width=n,e.wrap=!0;const o=Gn.calculateTextDimensions(e.message,a),s=Math.max(o.height,Iu.labelBoxHeight);r=i+s,Dt.debug(`${s} - ${e.message}`)}a(e),Lu.bumpVerticalPos(r)}const Hu=function(t){let e=0;const n=Nu(Iu);for(const i in t.links){const t=Gn.calculateTextDimensions(i,n).width+2*Iu.wrapPadding+2*Iu.boxMargin;e<t&&(e=t)}return e};const Uu=function(t,e,n,i){const a={},r=[];let o,s,c;return t.forEach((function(t){switch(t.id=Gn.random({length:10}),t.type){case i.db.LINETYPE.LOOP_START:case i.db.LINETYPE.ALT_START:case i.db.LINETYPE.OPT_START:case i.db.LINETYPE.PAR_START:case i.db.LINETYPE.CRITICAL_START:case i.db.LINETYPE.BREAK_START:r.push({id:t.id,msg:t.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case i.db.LINETYPE.ALT_ELSE:case i.db.LINETYPE.PAR_AND:case i.db.LINETYPE.CRITICAL_OPTION:t.message&&(o=r.pop(),a[o.id]=o,a[t.id]=o,r.push(o));break;case i.db.LINETYPE.LOOP_END:case i.db.LINETYPE.ALT_END:case i.db.LINETYPE.OPT_END:case i.db.LINETYPE.PAR_END:case i.db.LINETYPE.CRITICAL_END:case i.db.LINETYPE.BREAK_END:o=r.pop(),a[o.id]=o;break;case i.db.LINETYPE.ACTIVE_START:{const n=e[t.from?t.from.actor:t.to.actor],i=ju(t.from?t.from.actor:t.to.actor).length,a=n.x+n.width/2+(i-1)*Iu.activationWidth/2,r={startx:a,stopx:a+Iu.activationWidth,actor:t.from.actor,enabled:!0};Lu.activations.push(r)}break;case i.db.LINETYPE.ACTIVE_END:{const e=Lu.activations.map((t=>t.actor)).lastIndexOf(t.from.actor);delete Lu.activations.splice(e,1)[0]}}void 0!==t.placement?(s=function(t,e,n){const i=e[t.from].x,a=e[t.to].x,r=t.wrap&&t.message;let o=Gn.calculateTextDimensions(r?Gn.wrapLabel(t.message,Iu.width,Mu(Iu)):t.message,Mu(Iu));const s={width:r?Iu.width:Math.max(Iu.width,o.width+2*Iu.noteMargin),height:0,startx:e[t.from].x,stopx:0,starty:0,stopy:0,message:t.message};return t.placement===n.db.PLACEMENT.RIGHTOF?(s.width=r?Math.max(Iu.width,o.width):Math.max(e[t.from].width/2+e[t.to].width/2,o.width+2*Iu.noteMargin),s.startx=i+(e[t.from].width+Iu.actorMargin)/2):t.placement===n.db.PLACEMENT.LEFTOF?(s.width=r?Math.max(Iu.width,o.width+2*Iu.noteMargin):Math.max(e[t.from].width/2+e[t.to].width/2,o.width+2*Iu.noteMargin),s.startx=i-s.width+(e[t.from].width-Iu.actorMargin)/2):t.to===t.from?(o=Gn.calculateTextDimensions(r?Gn.wrapLabel(t.message,Math.max(Iu.width,e[t.from].width),Mu(Iu)):t.message,Mu(Iu)),s.width=r?Math.max(Iu.width,e[t.from].width):Math.max(e[t.from].width,Iu.width,o.width+2*Iu.noteMargin),s.startx=i+(e[t.from].width-s.width)/2):(s.width=Math.abs(i+e[t.from].width/2-(a+e[t.to].width/2))+Iu.actorMargin,s.startx=i<a?i+e[t.from].width/2-Iu.actorMargin/2:a+e[t.to].width/2-Iu.actorMargin/2),r&&(s.message=Gn.wrapLabel(t.message,s.width-2*Iu.wrapPadding,Mu(Iu))),Dt.debug(`NM:[${s.startx},${s.stopx},${s.starty},${s.stopy}:${s.width},${s.height}=${t.message}]`),s}(t,e,i),t.noteModel=s,r.forEach((t=>{o=t,o.from=Math.min(o.from,s.startx),o.to=Math.max(o.to,s.startx+s.width),o.width=Math.max(o.width,Math.abs(o.from-o.to))-Iu.labelBoxWidth}))):(c=function(t,e,n){let i=!1;if([n.db.LINETYPE.SOLID_OPEN,n.db.LINETYPE.DOTTED_OPEN,n.db.LINETYPE.SOLID,n.db.LINETYPE.DOTTED,n.db.LINETYPE.SOLID_CROSS,n.db.LINETYPE.DOTTED_CROSS,n.db.LINETYPE.SOLID_POINT,n.db.LINETYPE.DOTTED_POINT].includes(t.type)&&(i=!0),!i)return{};const a=$u(t.from,e),r=$u(t.to,e),o=a[0]<=r[0]?1:0,s=a[0]<r[0]?0:1,c=[...a,...r],l=Math.abs(r[s]-a[o]);t.wrap&&t.message&&(t.message=Gn.wrapLabel(t.message,Math.max(l+2*Iu.wrapPadding,Iu.width),Ou(Iu)));const u=Gn.calculateTextDimensions(t.message,Ou(Iu));return{width:Math.max(t.wrap?0:u.width+2*Iu.wrapPadding,l+2*Iu.wrapPadding,Iu.width),height:0,startx:a[o],stopx:r[s],starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,c),toBounds:Math.max.apply(null,c)}}(t,e,i),t.msgModel=c,c.startx&&c.stopx&&r.length>0&&r.forEach((n=>{if(o=n,c.startx===c.stopx){const n=e[t.from],i=e[t.to];o.from=Math.min(n.x-c.width/2,n.x-n.width/2,o.from),o.to=Math.max(i.x+c.width/2,i.x+n.width/2,o.to),o.width=Math.max(o.width,Math.abs(o.to-o.from))-Iu.labelBoxWidth}else o.from=Math.min(c.startx,o.from),o.to=Math.max(c.stopx,o.to),o.width=Math.max(o.width,c.width)-Iu.labelBoxWidth})))})),Lu.activations=[],Dt.debug("Loop type widths:",a),a},Vu={bounds:Lu,drawActors:Bu,drawActorsPopup:Pu,setConf:Fu,draw:function(t,e,n,i){const{securityLevel:a,sequence:r}=ai();let o;Iu=r,i.db.clear(),i.parser.parse(t),"sandbox"===a&&(o=(0,s.Ys)("#i"+e));const c="sandbox"===a?(0,s.Ys)(o.nodes()[0].contentDocument.body):(0,s.Ys)("body"),l="sandbox"===a?o.nodes()[0].contentDocument:document;Lu.init(),Dt.debug(i.db);const u="sandbox"===a?c.select(`[id="${e}"]`):(0,s.Ys)(`[id="${e}"]`),d=i.db.getActors(),h=i.db.getBoxes(),f=i.db.getActorKeys(),g=i.db.getMessages(),p=i.db.getDiagramTitle(),b=i.db.hasAtLeastOneBox(),m=i.db.hasAtLeastOneBoxWithTitle(),y=function(t,e,n){const i={};return e.forEach((function(e){if(t[e.to]&&t[e.from]){const a=t[e.to];if(e.placement===n.db.PLACEMENT.LEFTOF&&!a.prevActor)return;if(e.placement===n.db.PLACEMENT.RIGHTOF&&!a.nextActor)return;const r=void 0!==e.placement,o=!r,s=r?Mu(Iu):Ou(Iu),c=e.wrap?Gn.wrapLabel(e.message,Iu.width-2*Iu.wrapPadding,s):e.message,l=Gn.calculateTextDimensions(c,s).width+2*Iu.wrapPadding;o&&e.from===a.nextActor?i[e.to]=Math.max(i[e.to]||0,l):o&&e.from===a.prevActor?i[e.from]=Math.max(i[e.from]||0,l):o&&e.from===e.to?(i[e.from]=Math.max(i[e.from]||0,l/2),i[e.to]=Math.max(i[e.to]||0,l/2)):e.placement===n.db.PLACEMENT.RIGHTOF?i[e.from]=Math.max(i[e.from]||0,l):e.placement===n.db.PLACEMENT.LEFTOF?i[a.prevActor]=Math.max(i[a.prevActor]||0,l):e.placement===n.db.PLACEMENT.OVER&&(a.prevActor&&(i[a.prevActor]=Math.max(i[a.prevActor]||0,l/2)),a.nextActor&&(i[e.from]=Math.max(i[e.from]||0,l/2)))}})),Dt.debug("maxMessageWidthPerActor:",i),i}(d,g,i);Iu.height=function(t,e,n){let i=0;Object.keys(t).forEach((e=>{const n=t[e];n.wrap&&(n.description=Gn.wrapLabel(n.description,Iu.width-2*Iu.wrapPadding,Nu(Iu)));const a=Gn.calculateTextDimensions(n.description,Nu(Iu));n.width=n.wrap?Iu.width:Math.max(Iu.width,a.width+2*Iu.wrapPadding),n.height=n.wrap?Math.max(a.height,Iu.height):Iu.height,i=Math.max(i,n.height)}));for(const r in e){const n=t[r];if(!n)continue;const i=t[n.nextActor];if(!i){const t=e[r]+Iu.actorMargin-n.width/2;n.margin=Math.max(t,Iu.actorMargin);continue}const a=e[r]+Iu.actorMargin-n.width/2-i.width/2;n.margin=Math.max(a,Iu.actorMargin)}let a=0;return n.forEach((e=>{const n=Ou(Iu);let i=e.actorKeys.reduce(((e,n)=>e+(t[n].width+(t[n].margin||0))),0);i-=2*Iu.boxTextMargin,e.wrap&&(e.name=Gn.wrapLabel(e.name,i-2*Iu.wrapPadding,n));const r=Gn.calculateTextDimensions(e.name,n);a=Math.max(r.height,a);const o=Math.max(i,r.width+2*Iu.wrapPadding);if(e.margin=Iu.boxTextMargin,i<o){const t=(o-i)/2;e.margin+=t}})),n.forEach((t=>t.textMaxHeight=a)),Math.max(i,Iu.height)}(d,y,h),Du.insertComputerIcon(u),Du.insertDatabaseIcon(u),Du.insertClockIcon(u),b&&(Lu.bumpVerticalPos(Iu.boxMargin),m&&Lu.bumpVerticalPos(h[0].textMaxHeight)),Bu(u,d,f,0,Iu,g,!1);const v=Uu(g,d,y,i);Du.insertArrowHead(u),Du.insertArrowCrossHead(u),Du.insertArrowFilledHead(u),Du.insertSequenceNumber(u);let w=1,x=1;const R=[];g.forEach((function(t){let e,n,a;switch(t.type){case i.db.LINETYPE.NOTE:n=t.noteModel,function(t,e){Lu.bumpVerticalPos(Iu.boxMargin),e.height=Iu.boxMargin,e.starty=Lu.getVerticalPos();const n=Du.getNoteRect();n.x=e.startx,n.y=e.starty,n.width=e.width||Iu.width,n.class="note";const i=t.append("g"),a=Du.drawRect(i,n),r=Du.getTextObj();r.x=e.startx,r.y=e.starty,r.width=n.width,r.dy="1em",r.text=e.message,r.class="noteText",r.fontFamily=Iu.noteFontFamily,r.fontSize=Iu.noteFontSize,r.fontWeight=Iu.noteFontWeight,r.anchor=Iu.noteAlign,r.textMargin=Iu.noteMargin,r.valign="center";const o=xu(i,r),s=Math.round(o.map((t=>(t._groups||t)[0][0].getBBox().height)).reduce(((t,e)=>t+e)));a.attr("height",s+2*Iu.noteMargin),e.height+=s+2*Iu.noteMargin,Lu.bumpVerticalPos(s+2*Iu.noteMargin),e.stopy=e.starty+s+2*Iu.noteMargin,e.stopx=e.startx+n.width,Lu.insert(e.startx,e.starty,e.stopx,e.stopy),Lu.models.addNote(e)}(u,n);break;case i.db.LINETYPE.ACTIVE_START:Lu.newActivation(t,u,d);break;case i.db.LINETYPE.ACTIVE_END:!function(t,e){const n=Lu.endActivation(t);n.starty+18>e&&(n.starty=e-6,e+=12),Du.drawActivation(u,n,e,Iu,ju(t.from.actor).length),Lu.insert(n.startx,e-10,n.stopx,e)}(t,Lu.getVerticalPos());break;case i.db.LINETYPE.LOOP_START:zu(v,t,Iu.boxMargin,Iu.boxMargin+Iu.boxTextMargin,(t=>Lu.newLoop(t)));break;case i.db.LINETYPE.LOOP_END:e=Lu.endLoop(),Du.drawLoop(u,e,"loop",Iu),Lu.bumpVerticalPos(e.stopy-Lu.getVerticalPos()),Lu.models.addLoop(e);break;case i.db.LINETYPE.RECT_START:zu(v,t,Iu.boxMargin,Iu.boxMargin,(t=>Lu.newLoop(void 0,t.message)));break;case i.db.LINETYPE.RECT_END:e=Lu.endLoop(),Du.drawBackgroundRect(u,e),Lu.models.addLoop(e),Lu.bumpVerticalPos(e.stopy-Lu.getVerticalPos());break;case i.db.LINETYPE.OPT_START:zu(v,t,Iu.boxMargin,Iu.boxMargin+Iu.boxTextMargin,(t=>Lu.newLoop(t)));break;case i.db.LINETYPE.OPT_END:e=Lu.endLoop(),Du.drawLoop(u,e,"opt",Iu),Lu.bumpVerticalPos(e.stopy-Lu.getVerticalPos()),Lu.models.addLoop(e);break;case i.db.LINETYPE.ALT_START:zu(v,t,Iu.boxMargin,Iu.boxMargin+Iu.boxTextMargin,(t=>Lu.newLoop(t)));break;case i.db.LINETYPE.ALT_ELSE:zu(v,t,Iu.boxMargin+Iu.boxTextMargin,Iu.boxMargin,(t=>Lu.addSectionToLoop(t)));break;case i.db.LINETYPE.ALT_END:e=Lu.endLoop(),Du.drawLoop(u,e,"alt",Iu),Lu.bumpVerticalPos(e.stopy-Lu.getVerticalPos()),Lu.models.addLoop(e);break;case i.db.LINETYPE.PAR_START:zu(v,t,Iu.boxMargin,Iu.boxMargin+Iu.boxTextMargin,(t=>Lu.newLoop(t)));break;case i.db.LINETYPE.PAR_AND:zu(v,t,Iu.boxMargin+Iu.boxTextMargin,Iu.boxMargin,(t=>Lu.addSectionToLoop(t)));break;case i.db.LINETYPE.PAR_END:e=Lu.endLoop(),Du.drawLoop(u,e,"par",Iu),Lu.bumpVerticalPos(e.stopy-Lu.getVerticalPos()),Lu.models.addLoop(e);break;case i.db.LINETYPE.AUTONUMBER:w=t.message.start||w,x=t.message.step||x,t.message.visible?i.db.enableSequenceNumbers():i.db.disableSequenceNumbers();break;case i.db.LINETYPE.CRITICAL_START:zu(v,t,Iu.boxMargin,Iu.boxMargin+Iu.boxTextMargin,(t=>Lu.newLoop(t)));break;case i.db.LINETYPE.CRITICAL_OPTION:zu(v,t,Iu.boxMargin+Iu.boxTextMargin,Iu.boxMargin,(t=>Lu.addSectionToLoop(t)));break;case i.db.LINETYPE.CRITICAL_END:e=Lu.endLoop(),Du.drawLoop(u,e,"critical",Iu),Lu.bumpVerticalPos(e.stopy-Lu.getVerticalPos()),Lu.models.addLoop(e);break;case i.db.LINETYPE.BREAK_START:zu(v,t,Iu.boxMargin,Iu.boxMargin+Iu.boxTextMargin,(t=>Lu.newLoop(t)));break;case i.db.LINETYPE.BREAK_END:e=Lu.endLoop(),Du.drawLoop(u,e,"break",Iu),Lu.bumpVerticalPos(e.stopy-Lu.getVerticalPos()),Lu.models.addLoop(e);break;default:try{a=t.msgModel,a.starty=Lu.getVerticalPos(),a.sequenceIndex=w,a.sequenceVisible=i.db.showSequenceNumbers();const e=function(t,e){Lu.bumpVerticalPos(10);const{startx:n,stopx:i,message:a}=e,r=zt.splitBreaks(a).length,o=Gn.calculateTextDimensions(a,Ou(Iu)),s=o.height/r;let c;e.height+=s,Lu.bumpVerticalPos(s);let l=o.height-10;const u=o.width;if(n===i){c=Lu.getVerticalPos()+l,Iu.rightAngles||(l+=Iu.boxMargin,c=Lu.getVerticalPos()+l),l+=30;const t=Math.max(u/2,Iu.width/2);Lu.insert(n-t,Lu.getVerticalPos()-10+l,i+t,Lu.getVerticalPos()+30+l)}else l+=Iu.boxMargin,c=Lu.getVerticalPos()+l,Lu.insert(n,c-10,i,c);return Lu.bumpVerticalPos(l),e.height+=l,e.stopy=e.starty+e.height,Lu.insert(e.fromBounds,e.starty,e.toBounds,e.stopy),c}(0,a);R.push({messageModel:a,lineStartY:e}),Lu.models.addMessage(a)}catch(r){Dt.error("error while drawing message",r)}}[i.db.LINETYPE.SOLID_OPEN,i.db.LINETYPE.DOTTED_OPEN,i.db.LINETYPE.SOLID,i.db.LINETYPE.DOTTED,i.db.LINETYPE.SOLID_CROSS,i.db.LINETYPE.DOTTED_CROSS,i.db.LINETYPE.SOLID_POINT,i.db.LINETYPE.DOTTED_POINT].includes(t.type)&&(w+=x)})),R.forEach((t=>function(t,e,n,i){const{startx:a,stopx:r,starty:o,message:s,type:c,sequenceIndex:l,sequenceVisible:u}=e,d=Gn.calculateTextDimensions(s,Ou(Iu)),h=Du.getTextObj();h.x=a,h.y=o+10,h.width=r-a,h.class="messageText",h.dy="1em",h.text=s,h.fontFamily=Iu.messageFontFamily,h.fontSize=Iu.messageFontSize,h.fontWeight=Iu.messageFontWeight,h.anchor=Iu.messageAlign,h.valign="center",h.textMargin=Iu.wrapPadding,h.tspan=!1,xu(t,h);const f=d.width;let g;a===r?g=Iu.rightAngles?t.append("path").attr("d",`M ${a},${n} H ${a+Math.max(Iu.width/2,f/2)} V ${n+25} H ${a}`):t.append("path").attr("d","M "+a+","+n+" C "+(a+60)+","+(n-10)+" "+(a+60)+","+(n+30)+" "+a+","+(n+20)):(g=t.append("line"),g.attr("x1",a),g.attr("y1",n),g.attr("x2",r),g.attr("y2",n)),c===i.db.LINETYPE.DOTTED||c===i.db.LINETYPE.DOTTED_CROSS||c===i.db.LINETYPE.DOTTED_POINT||c===i.db.LINETYPE.DOTTED_OPEN?(g.style("stroke-dasharray","3, 3"),g.attr("class","messageLine1")):g.attr("class","messageLine0");let p="";Iu.arrowMarkerAbsolute&&(p=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,p=p.replace(/\(/g,"\\("),p=p.replace(/\)/g,"\\)")),g.attr("stroke-width",2),g.attr("stroke","none"),g.style("fill","none"),c!==i.db.LINETYPE.SOLID&&c!==i.db.LINETYPE.DOTTED||g.attr("marker-end","url("+p+"#arrowhead)"),c!==i.db.LINETYPE.SOLID_POINT&&c!==i.db.LINETYPE.DOTTED_POINT||g.attr("marker-end","url("+p+"#filled-head)"),c!==i.db.LINETYPE.SOLID_CROSS&&c!==i.db.LINETYPE.DOTTED_CROSS||g.attr("marker-end","url("+p+"#crosshead)"),(u||Iu.showSequenceNumbers)&&(g.attr("marker-start","url("+p+"#sequencenumber)"),t.append("text").attr("x",a).attr("y",n+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(l))}(u,t.messageModel,t.lineStartY,i))),Iu.mirrorActors&&(Lu.bumpVerticalPos(2*Iu.boxMargin),Bu(u,d,f,Lu.getVerticalPos(),Iu,g,!0),Lu.bumpVerticalPos(Iu.boxMargin),ku(u,Lu.getVerticalPos())),Lu.models.boxes.forEach((function(t){t.height=Lu.getVerticalPos()-t.y,Lu.insert(t.x,t.y,t.x+t.width,t.height),t.startx=t.x,t.starty=t.y,t.stopx=t.startx+t.width,t.stopy=t.starty+t.height,t.stroke="rgb(0,0,0, 0.5)",Du.drawBox(u,t,Iu)})),b&&Lu.bumpVerticalPos(Iu.boxMargin);const _=Pu(u,d,f,l),{bounds:k}=Lu.getBounds();Dt.debug("For line height fix Querying: #"+e+" .actor-line");(0,s.td_)("#"+e+" .actor-line").attr("y2",k.stopy);let E=k.stopy-k.starty;E<_.maxHeight&&(E=_.maxHeight);let C=E+2*Iu.diagramMarginY;Iu.mirrorActors&&(C=C-Iu.boxMargin+Iu.bottomMarginAdj);let S=k.stopx-k.startx;S<_.maxWidth&&(S=_.maxWidth);const T=S+2*Iu.diagramMarginX;p&&u.append("text").text(p).attr("x",(k.stopx-k.startx)/2-2*Iu.diagramMarginX).attr("y",-25),di(u,C,T,Iu.useMaxWidth);const A=p?40:0;u.attr("viewBox",k.startx-Iu.diagramMarginX+" -"+(Iu.diagramMarginY+A)+" "+T+" "+(C+A)),Dt.debug("models:",Lu.models)}};var qu=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,2],i=[1,3],a=[1,5],r=[1,7],o=[2,5],s=[1,15],c=[1,17],l=[1,21],u=[1,22],d=[1,23],h=[1,24],f=[1,37],g=[1,25],p=[1,26],b=[1,27],m=[1,28],y=[1,29],v=[1,32],w=[1,33],x=[1,34],R=[1,35],_=[1,36],k=[1,39],E=[1,40],C=[1,41],S=[1,42],T=[1,38],A=[1,45],D=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],I=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],L=[1,4,5,7,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],O=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],M={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,directive:6,SD:7,document:8,line:9,statement:10,classDefStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"--\x3e":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:29,notePosition:30,NOTE_TEXT:31,direction: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,openDirective:45,typeDirective:46,closeDirective:47,":":48,argDirective:49,direction_tb:50,direction_bt:51,direction_rl:52,direction_lr:53,eol:54,";":55,EDGE_STATE:56,STYLE_SEPARATOR:57,left_of:58,right_of:59,open_directive:60,type_directive:61,arg_directive:62,close_directive:63,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",7:"SD",14:"DESCR",15:"--\x3e",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"class",43:"CLASSENTITY_IDS",44:"STYLECLASS",48:":",50:"direction_tb",51:"direction_bt",52:"direction_rl",53:"direction_lr",55:";",56:"EDGE_STATE",57:"STYLE_SEPARATOR",58:"left_of",59:"right_of",60:"open_directive",61:"type_directive",62:"arg_directive",63:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[10,1],[10,1],[10,1],[10,2],[10,3],[10,4],[10,1],[10,2],[10,1],[10,4],[10,3],[10,6],[10,1],[10,1],[10,1],[10,1],[10,4],[10,4],[10,1],[10,1],[10,2],[10,2],[10,1],[11,3],[11,3],[12,3],[6,3],[6,5],[32,1],[32,1],[32,1],[32,1],[54,1],[54,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1],[45,1],[46,1],[49,1],[47,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 4:return i.setRootDoc(r[s]),r[s];case 5:this.$=[];break;case 6:"nl"!=r[s]&&(r[s-1].push(r[s]),this.$=r[s-1]);break;case 7:case 8:case 12:this.$=r[s];break;case 9:this.$="nl";break;case 13:const t=r[s-1];t.description=i.trimColon(r[s]),this.$=t;break;case 14:this.$={stmt:"relation",state1:r[s-2],state2:r[s]};break;case 15:const e=i.trimColon(r[s]);this.$={stmt:"relation",state1:r[s-3],state2:r[s-1],description:e};break;case 19:this.$={stmt:"state",id:r[s-3],type:"default",description:"",doc:r[s-1]};break;case 20:var c=r[s],l=r[s-2].trim();if(r[s].match(":")){var u=r[s].split(":");c=u[0],l=[l,u[1]]}this.$={stmt:"state",id:c,type:"default",description:l};break;case 21:this.$={stmt:"state",id:r[s-3],type:"default",description:r[s-5],doc:r[s-1]};break;case 22:this.$={stmt:"state",id:r[s],type:"fork"};break;case 23:this.$={stmt:"state",id:r[s],type:"join"};break;case 24:this.$={stmt:"state",id:r[s],type:"choice"};break;case 25:this.$={stmt:"state",id:i.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:r[s-1].trim(),note:{position:r[s-2].trim(),text:r[s].trim()}};break;case 30:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 31:case 32:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 33:case 34:this.$={stmt:"classDef",id:r[s-1].trim(),classes:r[s].trim()};break;case 35:this.$={stmt:"applyClass",id:r[s-1].trim(),styleClass:r[s].trim()};break;case 38:i.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 39:i.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 40:i.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 41:i.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 44:case 45:this.$={stmt:"state",id:r[s].trim(),type:"default",description:""};break;case 46:case 47:this.$={stmt:"state",id:r[s-2].trim(),classes:[r[s].trim()],type:"default",description:""};break;case 50:i.parseDirective("%%{","open_directive");break;case 51:i.parseDirective(r[s],"type_directive");break;case 52:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 53:i.parseDirective("}%%","close_directive","state")}},table:[{3:1,4:n,5:i,6:4,7:a,45:6,60:r},{1:[3]},{3:8,4:n,5:i,6:4,7:a,45:6,60:r},{3:9,4:n,5:i,6:4,7:a,45:6,60:r},{3:10,4:n,5:i,6:4,7:a,45:6,60:r},e([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],o,{8:11}),{46:12,61:[1,13]},{61:[2,50]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:s,5:c,6:30,9:14,10:16,11:18,12:19,13:20,16:l,17:u,19:d,22:h,24:f,25:g,26:p,27:b,28:m,29:y,32:31,33:v,35:w,37:x,38:R,42:_,45:6,50:k,51:E,52:C,53:S,56:T,60:r},{47:43,48:[1,44],63:A},e([48,63],[2,51]),e(D,[2,6]),{6:30,10:46,11:18,12:19,13:20,16:l,17:u,19:d,22:h,24:f,25:g,26:p,27:b,28:m,29:y,32:31,33:v,35:w,37:x,38:R,42:_,45:6,50:k,51:E,52:C,53:S,56:T,60:r},e(D,[2,8]),e(D,[2,9]),e(D,[2,10]),e(D,[2,11]),e(D,[2,12],{14:[1,47],15:[1,48]}),e(D,[2,16]),{18:[1,49]},e(D,[2,18],{20:[1,50]}),{23:[1,51]},e(D,[2,22]),e(D,[2,23]),e(D,[2,24]),e(D,[2,25]),{30:52,31:[1,53],58:[1,54],59:[1,55]},e(D,[2,28]),e(D,[2,29]),{34:[1,56]},{36:[1,57]},e(D,[2,32]),{39:[1,58],41:[1,59]},{43:[1,60]},e(I,[2,44],{57:[1,61]}),e(I,[2,45],{57:[1,62]}),e(D,[2,38]),e(D,[2,39]),e(D,[2,40]),e(D,[2,41]),e(L,[2,36]),{49:63,62:[1,64]},e(L,[2,53]),e(D,[2,7]),e(D,[2,13]),{13:65,24:f,56:T},e(D,[2,17]),e(O,o,{8:66}),{24:[1,67]},{24:[1,68]},{23:[1,69]},{24:[2,48]},{24:[2,49]},e(D,[2,30]),e(D,[2,31]),{40:[1,70]},{40:[1,71]},{44:[1,72]},{24:[1,73]},{24:[1,74]},{47:75,63:A},{63:[2,52]},e(D,[2,14],{14:[1,76]}),{4:s,5:c,6:30,9:14,10:16,11:18,12:19,13:20,16:l,17:u,19:d,21:[1,77],22:h,24:f,25:g,26:p,27:b,28:m,29:y,32:31,33:v,35:w,37:x,38:R,42:_,45:6,50:k,51:E,52:C,53:S,56:T,60:r},e(D,[2,20],{20:[1,78]}),{31:[1,79]},{24:[1,80]},e(D,[2,33]),e(D,[2,34]),e(D,[2,35]),e(I,[2,46]),e(I,[2,47]),e(L,[2,37]),e(D,[2,15]),e(D,[2,19]),e(O,o,{8:81}),e(D,[2,26]),e(D,[2,27]),{4:s,5:c,6:30,9:14,10:16,11:18,12:19,13:20,16:l,17:u,19:d,21:[1,82],22:h,24:f,25:g,26:p,27:b,28:m,29:y,32:31,33:v,35:w,37:x,38:R,42:_,45:6,50:k,51:E,52:C,53:S,56:T,60:r},e(D,[2,21])],defaultActions:{7:[2,50],8:[2,1],9:[2,2],10:[2,3],54:[2,48],55:[2,49],64:[2,52]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},N=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return 41;case 1:case 44:return 50;case 2:case 45:return 51;case 3:case 46:return 52;case 4:case 47:return 53;case 5:return this.begin("open_directive"),60;case 6:return this.begin("type_directive"),61;case 7:return this.popState(),this.begin("arg_directive"),48;case 8:return this.popState(),this.popState(),63;case 9:return 62;case 10:case 11:case 13:case 14:case 15:case 16:case 56:case 58:case 64:break;case 12:case 79:return 5;case 17:case 34:return this.pushState("SCALE"),17;case 18:case 35:return 18;case 19:case 25:case 36:case 51:case 54:this.popState();break;case 20:return this.begin("acc_title"),33;case 21:return this.popState(),"acc_title_value";case 22:return this.begin("acc_descr"),35;case 23:return this.popState(),"acc_descr_value";case 24:this.begin("acc_descr_multiline");break;case 26:return"acc_descr_multiline_value";case 27:return this.pushState("CLASSDEF"),38;case 28:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 29:return this.popState(),this.pushState("CLASSDEFID"),39;case 30:return this.popState(),40;case 31:return this.pushState("CLASS"),42;case 32:return this.popState(),this.pushState("CLASS_STYLE"),43;case 33:return this.popState(),44;case 37:this.pushState("STATE");break;case 38:case 41:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),25;case 39:case 42:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),26;case 40:case 43:return this.popState(),e.yytext=e.yytext.slice(0,-10).trim(),27;case 48:this.pushState("STATE_STRING");break;case 49:return this.pushState("STATE_ID"),"AS";case 50:case 66:return this.popState(),"ID";case 52:return"STATE_DESCR";case 53:return 19;case 55:return this.popState(),this.pushState("struct"),20;case 57:return this.popState(),21;case 59:return this.begin("NOTE"),29;case 60:return this.popState(),this.pushState("NOTE_ID"),58;case 61:return this.popState(),this.pushState("NOTE_ID"),59;case 62:this.popState(),this.pushState("FLOATING_NOTE");break;case 63:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 65:return"NOTE_TEXT";case 67:return this.popState(),this.pushState("NOTE_TEXT"),24;case 68:return this.popState(),e.yytext=e.yytext.substr(2).trim(),31;case 69:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),31;case 70:case 71:return 7;case 72:return 16;case 73:return 56;case 74:return 24;case 75:return e.yytext=e.yytext.trim(),14;case 76:return 15;case 77:return 28;case 78:return 57;case 80: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,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\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,/^(?:.*<<fork>>)/i,/^(?:.*<<join>>)/i,/^(?:.*<<choice>>)/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:[14,15],inclusive:!1},close_directive:{rules:[14,15],inclusive:!1},arg_directive:{rules:[8,9,14,15],inclusive:!1},type_directive:{rules:[7,8,14,15],inclusive:!1},open_directive:{rules:[6,14,15],inclusive:!1},struct:{rules:[14,15,27,31,37,44,45,46,47,56,57,58,59,73,74,75,76,77],inclusive:!1},FLOATING_NOTE_ID:{rules:[66],inclusive:!1},FLOATING_NOTE:{rules:[63,64,65],inclusive:!1},NOTE_TEXT:{rules:[68,69],inclusive:!1},NOTE_ID:{rules:[67],inclusive:!1},NOTE:{rules:[60,61,62],inclusive:!1},CLASS_STYLE:{rules:[33],inclusive:!1},CLASS:{rules:[32],inclusive:!1},CLASSDEFID:{rules:[30],inclusive:!1},CLASSDEF:{rules:[28,29],inclusive:!1},acc_descr_multiline:{rules:[25,26],inclusive:!1},acc_descr:{rules:[23],inclusive:!1},acc_title:{rules:[21],inclusive:!1},SCALE:{rules:[18,19,35,36],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[50],inclusive:!1},STATE_STRING:{rules:[51,52],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[14,15,38,39,40,41,42,43,48,49,53,54,55],inclusive:!1},ID:{rules:[14,15],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,10,11,12,13,15,16,17,20,22,24,27,31,34,37,55,59,70,71,72,73,74,75,76,78,79,80],inclusive:!0}}},t);function B(){this.yy={}}return M.lexer=N,B.prototype=M,M.Parser=B,new B}();qu.parser=qu;const Wu=qu,Yu=(t,e)=>{var n;return"dagre-wrapper"!==(null==(n=null==e?void 0:e.state)?void 0:n.defaultRenderer)&&null!==t.match(/^\s*stateDiagram/)},Gu=(t,e)=>{var n;return null!==t.match(/^\s*stateDiagram-v2/)||!(!t.match(/^\s*stateDiagram/)||"dagre-wrapper"!==(null==(n=null==e?void 0:e.state)?void 0:n.defaultRenderer))},Zu="state",Ku="relation",Xu="default",Ju="divider",Qu="[*]",td="start",ed="color",nd="fill";let id="LR",ad=[],rd={};let od={root:{relations:[],states:{},documents:{}}},sd=od.root,cd=0,ld=0;const ud=t=>JSON.parse(JSON.stringify(t)),dd=(t,e,n)=>{if(e.stmt===Ku)dd(t,e.state1,!0),dd(t,e.state2,!1);else if(e.stmt===Zu&&("[*]"===e.id?(e.id=n?t.id+"_start":t.id+"_end",e.start=n):e.id=e.id.trim()),e.doc){const t=[];let n,i=[];for(n=0;n<e.doc.length;n++)if(e.doc[n].type===Ju){const a=ud(e.doc[n]);a.doc=ud(i),t.push(a),i=[]}else i.push(e.doc[n]);if(t.length>0&&i.length>0){const n={stmt:Zu,id:Nn(),type:"divider",doc:ud(i)};t.push(ud(n)),e.doc=t}e.doc.forEach((t=>dd(e,t,!0)))}},hd=function(t,e="default",n=null,i=null,a=null,r=null,o=null,s=null){const c=null==t?void 0:t.trim();if(void 0===sd.states[c]?(Dt.info("Adding state ",c,i),sd.states[c]={id:c,descriptions:[],type:e,doc:n,note:a,classes:[],styles:[],textStyles:[]}):(sd.states[c].doc||(sd.states[c].doc=n),sd.states[c].type||(sd.states[c].type=e)),i&&(Dt.info("Setting state description",c,i),"string"==typeof i&&yd(c,i.trim()),"object"==typeof i&&i.forEach((t=>yd(c,t.trim())))),a&&(sd.states[c].note=a,sd.states[c].note.text=zt.sanitizeText(sd.states[c].note.text,ai())),r){Dt.info("Setting state classes",c,r);("string"==typeof r?[r]:r).forEach((t=>wd(c,t.trim())))}if(o){Dt.info("Setting state styles",c,o);("string"==typeof o?[o]:o).forEach((t=>xd(c,t.trim())))}if(s){Dt.info("Setting state styles",c,o);("string"==typeof s?[s]:s).forEach((t=>Rd(c,t.trim())))}},fd=function(t){od={root:{relations:[],states:{},documents:{}}},sd=od.root,cd=0,rd={},t||Ii()},gd=function(t){return sd.states[t]};function pd(t=""){let e=t;return t===Qu&&(cd++,e=`start${cd}`),e}function bd(t="",e="default"){return t===Qu?td:e}const md=function(t,e,n){if("object"==typeof t)!function(t,e,n){let i=pd(t.id.trim()),a=bd(t.id.trim(),t.type),r=pd(e.id.trim()),o=bd(e.id.trim(),e.type);hd(i,a,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),hd(r,o,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),sd.relations.push({id1:i,id2:r,relationTitle:zt.sanitizeText(n,ai())})}(t,e,n);else{const i=pd(t.trim()),a=bd(t),r=function(t=""){let e=t;return"[*]"===t&&(cd++,e=`end${cd}`),e}(e.trim()),o=function(t="",e="default"){return"[*]"===t?"end":e}(e);hd(i,a),hd(r,o),sd.relations.push({id1:i,id2:r,title:zt.sanitizeText(n,ai())})}},yd=function(t,e){const n=sd.states[t],i=e.startsWith(":")?e.replace(":","").trim():e;n.descriptions.push(zt.sanitizeText(i,ai()))},vd=function(t,e=""){void 0===rd[t]&&(rd[t]={id:t,styles:[],textStyles:[]});const n=rd[t];null!=e&&e.split(",").forEach((t=>{const e=t.replace(/([^;]*);/,"$1").trim();if(t.match(ed)){const t=e.replace(nd,"bgFill").replace(ed,nd);n.textStyles.push(t)}n.styles.push(e)}))},wd=function(t,e){t.split(",").forEach((function(t){let n=gd(t);if(void 0===n){const e=t.trim();hd(e),n=gd(e)}n.classes.push(e)}))},xd=function(t,e){const n=gd(t);void 0!==n&&n.textStyles.push(e)},Rd=function(t,e){const n=gd(t);void 0!==n&&n.textStyles.push(e)},_d={parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().state,addState:hd,clear:fd,getState:gd,getStates:function(){return sd.states},getRelations:function(){return sd.relations},getClasses:function(){return rd},getDirection:()=>id,addRelation:md,getDividerId:()=>(ld++,"divider-id-"+ld),setDirection:t=>{id=t},cleanupLabel:function(t){return":"===t.substring(0,1)?t.substr(2).trim():t.trim()},lineType:{LINE:0,DOTTED_LINE:1},relationType:{AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},logDocuments:function(){Dt.info("Documents = ",od)},getRootDoc:()=>ad,setRootDoc:t=>{Dt.info("Setting root doc",t),ad=t},getRootDocV2:()=>(dd({id:"root"},{id:"root",doc:ad},!0),{id:"root",doc:ad}),extract:t=>{let e;e=t.doc?t.doc:t,Dt.info(e),fd(!0),Dt.info("Extract",e),e.forEach((t=>{switch(t.stmt){case Zu:hd(t.id.trim(),t.type,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles);break;case Ku:md(t.state1,t.state2,t.description);break;case"classDef":vd(t.id.trim(),t.classes);break;case"applyClass":wd(t.id.trim(),t.styleClass)}}))},trimColon:t=>t&&":"===t[0]?t.substr(1).trim():t.trim(),getAccTitle:Oi,setAccTitle:Li,getAccDescription:Ni,setAccDescription:Mi,addStyleClass:vd,setCssClass:wd,addDescription:yd,setDiagramTitle:Bi,getDiagramTitle:Pi},kd={},Ed=(t,e)=>{kd[t]=e},Cd=(t,e)=>{const n=t.append("text").attr("x",2*ai().state.padding).attr("y",ai().state.textHeight+1.3*ai().state.padding).attr("font-size",ai().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),i=n.height,a=t.append("text").attr("x",ai().state.padding).attr("y",i+.4*ai().state.padding+ai().state.dividerMargin+ai().state.textHeight).attr("class","state-description");let r=!0,o=!0;e.descriptions.forEach((function(t){r||(!function(t,e,n){const i=t.append("tspan").attr("x",2*ai().state.padding).text(e);n||i.attr("dy",ai().state.textHeight)}(a,t,o),o=!1),r=!1}));const s=t.append("line").attr("x1",ai().state.padding).attr("y1",ai().state.padding+i+ai().state.dividerMargin/2).attr("y2",ai().state.padding+i+ai().state.dividerMargin/2).attr("class","descr-divider"),c=a.node().getBBox(),l=Math.max(c.width,n.width);return s.attr("x2",l+3*ai().state.padding),t.insert("rect",":first-child").attr("x",ai().state.padding).attr("y",ai().state.padding).attr("width",l+2*ai().state.padding).attr("height",c.height+i+2*ai().state.padding).attr("rx",ai().state.radius),t},Sd=(t,e,n)=>{const i=ai().state.padding,a=2*ai().state.padding,r=t.node().getBBox(),o=r.width,s=r.x,c=t.append("text").attr("x",0).attr("y",ai().state.titleShift).attr("font-size",ai().state.fontSize).attr("class","state-title").text(e.id),l=c.node().getBBox().width+a;let u,d=Math.max(l,o);d===o&&(d+=a);const h=t.node().getBBox();e.doc,u=s-i,l>o&&(u=(o-d)/2+i),Math.abs(s-h.x)<i&&l>o&&(u=s-(l-o)/2);const f=1-ai().state.textHeight;return t.insert("rect",":first-child").attr("x",u).attr("y",f).attr("class",n?"alt-composit":"composit").attr("width",d).attr("height",h.height+ai().state.textHeight+ai().state.titleShift+1).attr("rx","0"),c.attr("x",u+i),l<=o&&c.attr("x",s+(d-a)/2-l/2+i),t.insert("rect",":first-child").attr("x",u).attr("y",ai().state.titleShift-ai().state.textHeight-ai().state.padding).attr("width",d).attr("height",3*ai().state.textHeight).attr("rx",ai().state.radius),t.insert("rect",":first-child").attr("x",u).attr("y",ai().state.titleShift-ai().state.textHeight-ai().state.padding).attr("width",d).attr("height",h.height+3+2*ai().state.textHeight).attr("rx",ai().state.radius),t},Td=(t,e)=>{e.attr("class","state-note");const n=e.append("rect").attr("x",0).attr("y",ai().state.padding),i=e.append("g"),{textWidth:a,textHeight:r}=((t,e,n,i)=>{let a=0;const r=i.append("text");r.style("text-anchor","start"),r.attr("class","noteText");let o=t.replace(/\r\n/g,"<br/>");o=o.replace(/\n/g,"<br/>");const s=o.split(zt.lineBreakRegex);let c=1.25*ai().state.noteMargin;for(const l of s){const t=l.trim();if(t.length>0){const i=r.append("tspan");i.text(t),0===c&&(c+=i.node().getBBox().height),a+=c,i.attr("x",e+ai().state.noteMargin),i.attr("y",n+a+1.25*ai().state.noteMargin)}}return{textWidth:r.node().getBBox().width,textHeight:a}})(t,0,0,i);return n.attr("height",r+2*ai().state.noteMargin),n.attr("width",a+2*ai().state.noteMargin),n},Ad=function(t,e){const n=e.id,i={id:n,label:e.id,width:0,height:0},a=t.append("g").attr("id",n).attr("class","stateGroup");"start"===e.type&&(t=>{t.append("circle").attr("class","start-state").attr("r",ai().state.sizeUnit).attr("cx",ai().state.padding+ai().state.sizeUnit).attr("cy",ai().state.padding+ai().state.sizeUnit)})(a),"end"===e.type&&(t=>{t.append("circle").attr("class","end-state-outer").attr("r",ai().state.sizeUnit+ai().state.miniPadding).attr("cx",ai().state.padding+ai().state.sizeUnit+ai().state.miniPadding).attr("cy",ai().state.padding+ai().state.sizeUnit+ai().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",ai().state.sizeUnit).attr("cx",ai().state.padding+ai().state.sizeUnit+2).attr("cy",ai().state.padding+ai().state.sizeUnit+2)})(a),"fork"!==e.type&&"join"!==e.type||((t,e)=>{let n=ai().state.forkWidth,i=ai().state.forkHeight;if(e.parentId){let t=n;n=i,i=t}t.append("rect").style("stroke","black").style("fill","black").attr("width",n).attr("height",i).attr("x",ai().state.padding).attr("y",ai().state.padding)})(a,e),"note"===e.type&&Td(e.note.text,a),"divider"===e.type&&(t=>{t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",ai().state.textHeight).attr("class","divider").attr("x2",2*ai().state.textHeight).attr("y1",0).attr("y2",0)})(a),"default"===e.type&&0===e.descriptions.length&&((t,e)=>{const n=t.append("text").attr("x",2*ai().state.padding).attr("y",ai().state.textHeight+2*ai().state.padding).attr("font-size",ai().state.fontSize).attr("class","state-title").text(e.id),i=n.node().getBBox();t.insert("rect",":first-child").attr("x",ai().state.padding).attr("y",ai().state.padding).attr("width",i.width+2*ai().state.padding).attr("height",i.height+2*ai().state.padding).attr("rx",ai().state.radius)})(a,e),"default"===e.type&&e.descriptions.length>0&&Cd(a,e);const r=a.node().getBBox();return i.width=r.width+2*ai().state.padding,i.height=r.height+2*ai().state.padding,Ed(n,i),i};let Dd=0;let Id;const Ld={},Od=(t,e,n,i,a,r,o)=>{const c=new lt.k({compound:!0,multigraph:!0});let l,u=!0;for(l=0;l<t.length;l++)if("relation"===t[l].stmt){u=!1;break}n?c.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:u?1:Id.edgeLengthFactor,nodeSep:u?1:50,isMultiGraph:!0}):c.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:u?1:Id.edgeLengthFactor,nodeSep:u?1:50,ranker:"tight-tree",isMultiGraph:!0}),c.setDefaultEdgeLabel((function(){return{}})),o.db.extract(t);const d=o.db.getStates(),h=o.db.getRelations(),f=Object.keys(d);for(const s of f){const t=d[s];let l;if(n&&(t.parentId=n),t.doc){let n=e.append("g").attr("id",t.id).attr("class","stateGroup");l=Od(t.doc,n,t.id,!i,a,r,o);{n=Sd(n,t,i);let e=n.node().getBBox();l.width=e.width,l.height=e.height+Id.padding/2,Ld[t.id]={y:Id.compositTitleSize}}}else l=Ad(e,t);if(t.note){const n={descriptions:[],id:t.id+"-note",note:t.note,type:"note"},i=Ad(e,n);"left of"===t.note.position?(c.setNode(l.id+"-note",i),c.setNode(l.id,l)):(c.setNode(l.id,l),c.setNode(l.id+"-note",i)),c.setParent(l.id,l.id+"-group"),c.setParent(l.id+"-note",l.id+"-group")}else c.setNode(l.id,l)}Dt.debug("Count=",c.nodeCount(),c);let g=0;h.forEach((function(t){var e;g++,Dt.debug("Setting edge",t),c.setEdge(t.id1,t.id2,{relation:t,width:(e=t.title,e?e.length*Id.fontSizeFactor:1),height:Id.labelHeight*zt.getRows(t.title).length,labelpos:"c"},"id"+g)})),(0,ct.bK)(c),Dt.debug("Graph after layout",c.nodes());const p=e.node();c.nodes().forEach((function(t){if(void 0!==t&&void 0!==c.node(t)){Dt.warn("Node "+t+": "+JSON.stringify(c.node(t))),a.select("#"+p.id+" #"+t).attr("transform","translate("+(c.node(t).x-c.node(t).width/2)+","+(c.node(t).y+(Ld[t]?Ld[t].y:0)-c.node(t).height/2)+" )"),a.select("#"+p.id+" #"+t).attr("data-x-shift",c.node(t).x-c.node(t).width/2);r.querySelectorAll("#"+p.id+" #"+t+" .divider").forEach((t=>{const e=t.parentElement;let n=0,i=0;e&&(e.parentElement&&(n=e.parentElement.getBBox().width),i=parseInt(e.getAttribute("data-x-shift"),10),Number.isNaN(i)&&(i=0)),t.setAttribute("x1",0-i+8),t.setAttribute("x2",n-i-8)}))}else Dt.debug("No Node "+t+": "+JSON.stringify(c.node(t)))}));let b=p.getBBox();c.edges().forEach((function(t){void 0!==t&&void 0!==c.edge(t)&&(Dt.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(c.edge(t))),function(t,e,n){e.points=e.points.filter((t=>!Number.isNaN(t.y)));const i=e.points,a=(0,s.jvg)().x((function(t){return t.x})).y((function(t){return t.y})).curve(s.$0Z),r=t.append("path").attr("d",a(i)).attr("id","edge"+Dd).attr("class","transition");let o="";if(ai().state.arrowMarkerAbsolute&&(o=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,o=o.replace(/\(/g,"\\("),o=o.replace(/\)/g,"\\)")),r.attr("marker-end","url("+o+"#"+function(t){switch(t){case _d.relationType.AGGREGATION:return"aggregation";case _d.relationType.EXTENSION:return"extension";case _d.relationType.COMPOSITION:return"composition";case _d.relationType.DEPENDENCY:return"dependency"}}(_d.relationType.DEPENDENCY)+"End)"),void 0!==n.title){const i=t.append("g").attr("class","stateLabel"),{x:a,y:r}=Gn.calcLabelPosition(e.points),o=zt.getRows(n.title);let s=0;const c=[];let l=0,u=0;for(let t=0;t<=o.length;t++){const e=i.append("text").attr("text-anchor","middle").text(o[t]).attr("x",a).attr("y",r+s),n=e.node().getBBox();if(l=Math.max(l,n.width),u=Math.min(u,n.x),Dt.info(n.x,a,r+s),0===s){const t=e.node().getBBox();s=t.height,Dt.info("Title height",s,r)}c.push(e)}let d=s*o.length;if(o.length>1){const t=(o.length-1)*s*.5;c.forEach(((e,n)=>e.attr("y",r+n*s-t))),d=s*o.length}const h=i.node().getBBox();i.insert("rect",":first-child").attr("class","box").attr("x",a-l/2-ai().state.padding/2).attr("y",r-d/2-ai().state.padding/2-3.5).attr("width",l+ai().state.padding).attr("height",d+ai().state.padding),Dt.info(h)}Dd++}(e,c.edge(t),c.edge(t).relation))})),b=p.getBBox();const m={id:n||"root",label:n||"root",width:0,height:0};return m.width=b.width+2*Id.padding,m.height=b.height+2*Id.padding,Dt.debug("Doc rendered",m,c),m},Md={setConf:function(){},draw:function(t,e,n,i){Id=ai().state;const a=ai().securityLevel;let r;"sandbox"===a&&(r=(0,s.Ys)("#i"+e));const o="sandbox"===a?(0,s.Ys)(r.nodes()[0].contentDocument.body):(0,s.Ys)("body"),c="sandbox"===a?r.nodes()[0].contentDocument:document;Dt.debug("Rendering diagram "+t);const l=o.select(`[id='${e}']`);l.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");new lt.k({multigraph:!0,compound:!0,rankdir:"RL"}).setDefaultEdgeLabel((function(){return{}}));const u=i.db.getRootDoc();Od(u,l,void 0,!1,o,c,i);const d=Id.padding,h=l.node().getBBox(),f=h.width+2*d,g=h.height+2*d;di(l,g,1.75*f,Id.useMaxWidth),l.attr("viewBox",`${h.x-Id.padding} ${h.y-Id.padding} `+f+" "+g)}},Nd="rect",Bd="rectWithTitle",Pd="statediagram",Fd="transition",jd="parent",$d="note",zd="----parent",Hd="fill:none",Ud="fill: #333",Vd="text",qd="normal";let Wd={},Yd=0;function Gd(t="",e=0,n="",i="----"){return`state-${t}${null!==n&&n.length>0?`${i}${n}`:""}-${e}`}const Zd=(t,e,n,i,a,r)=>{const o=n.id,s=null==(c=i[o])?"":c.classes?c.classes.join(" "):"";var c;if("root"!==o){let e=Nd;!0===n.start&&(e="start"),!1===n.start&&(e="end"),n.type!==Xu&&(e=n.type),Wd[o]||(Wd[o]={id:o,shape:e,description:zt.sanitizeText(o,ai()),classes:`${s} statediagram-state`});const i=Wd[o];n.description&&(Array.isArray(i.description)?(i.shape=Bd,i.description.push(n.description)):i.description.length>0?(i.shape=Bd,i.description===o?i.description=[n.description]:i.description=[i.description,n.description]):(i.shape=Nd,i.description=n.description),i.description=zt.sanitizeTextOrArray(i.description,ai())),1===i.description.length&&i.shape===Bd&&(i.shape=Nd),!i.type&&n.doc&&(Dt.info("Setting cluster for ",o,Xd(n)),i.type="group",i.dir=Xd(n),i.shape=n.type===Ju?"divider":"roundedWithTitle",i.classes=i.classes+" statediagram-cluster "+(r?"statediagram-cluster-alt":""));const a={labelStyle:"",shape:i.shape,labelText:i.description,classes:i.classes,style:"",id:o,dir:i.dir,domId:Gd(o,Yd),type:i.type,padding:15};if(n.note){const e={labelStyle:"",shape:"note",labelText:n.note.text,classes:"statediagram-note",style:"",id:o+"----note-"+Yd,domId:Gd(o,Yd,$d),type:i.type,padding:15},r={labelStyle:"",shape:"noteGroup",labelText:n.note.text,classes:i.classes,style:"",id:o+zd,domId:Gd(o,Yd,jd),type:"group",padding:0};Yd++;const s=o+zd;t.setNode(s,r),t.setNode(e.id,e),t.setNode(o,a),t.setParent(o,s),t.setParent(e.id,s);let c=o,l=e.id;"left of"===n.note.position&&(c=e.id,l=o),t.setEdge(c,l,{arrowhead:"none",arrowType:"",style:Hd,labelStyle:"",classes:"transition note-edge",arrowheadStyle:Ud,labelpos:"c",labelType:Vd,thickness:qd})}else t.setNode(o,a)}e&&"root"!==e.id&&(Dt.trace("Setting node ",o," to be child of its parent ",e.id),t.setParent(o,e.id)),n.doc&&(Dt.trace("Adding nodes children "),Kd(t,n,n.doc,i,a,!r))},Kd=(t,e,n,i,a,r)=>{Dt.trace("items",n),n.forEach((n=>{switch(n.stmt){case Zu:case Xu:Zd(t,e,n,i,a,r);break;case Ku:{Zd(t,e,n.state1,i,a,r),Zd(t,e,n.state2,i,a,r);const o={id:"edge"+Yd,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:Hd,labelStyle:"",label:zt.sanitizeText(n.description,ai()),arrowheadStyle:Ud,labelpos:"c",labelType:Vd,thickness:qd,classes:Fd};t.setEdge(n.state1.id,n.state2.id,o,Yd),Yd++}}}))},Xd=(t,e="TB")=>{let n=e;if(t.doc)for(let i=0;i<t.doc.length;i++){const e=t.doc[i];"dir"===e.stmt&&(n=e.value)}return n},Jd={setConf:function(t){const e=Object.keys(t);for(const n of e)t[n]},getClasses:function(t,e){Dt.trace("Extracting classes"),e.db.clear();try{return e.parser.parse(t),e.db.extract(e.db.getRootDocV2()),e.db.getClasses()}catch(n){return n}},draw:function(t,e,n,i){Dt.info("Drawing state diagram (v2)",e),Wd={};let a=i.db.getDirection();void 0===a&&(a="LR");const{securityLevel:r,state:o}=ai(),c=o.nodeSpacing||50,l=o.rankSpacing||50;Dt.info(i.db.getRootDocV2()),i.db.extract(i.db.getRootDocV2()),Dt.info(i.db.getRootDocV2());const u=i.db.getStates(),d=new lt.k({multigraph:!0,compound:!0}).setGraph({rankdir:Xd(i.db.getRootDocV2()),nodesep:c,ranksep:l,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));let h;Zd(d,void 0,i.db.getRootDocV2(),u,i.db,!0),"sandbox"===r&&(h=(0,s.Ys)("#i"+e));const f="sandbox"===r?(0,s.Ys)(h.nodes()[0].contentDocument.body):(0,s.Ys)("body"),g=f.select(`[id="${e}"]`),p=f.select("#"+e+" g");Wo(p,d,["barb"],Pd,e);Gn.insertTitle(g,"statediagramTitleText",o.titleTopMargin,i.db.getDiagramTitle());const b=g.node().getBBox(),m=b.width+16,y=b.height+16;g.attr("class",Pd);const v=g.node().getBBox();di(g,y,m,o.useMaxWidth);const w=`${v.x-8} ${v.y-8} ${m} ${y}`;Dt.debug(`viewBox ${w}`),g.attr("viewBox",w);const x=document.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const s of x){const t=s.getBBox(),e=document.createElementNS("http://www.w3.org/2000/svg",Nd);e.setAttribute("rx",0),e.setAttribute("ry",0),e.setAttribute("width",t.width),e.setAttribute("height",t.height),s.insertBefore(e,s.firstChild)}}};var Qd=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,2],i=[1,5],a=[6,9,11,17,18,20,22,23,24,26],r=[1,15],o=[1,16],s=[1,17],c=[1,18],l=[1,19],u=[1,20],d=[1,24],h=[4,6,9,11,17,18,20,22,23,24,26],f={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,acc_title:18,acc_title_value:19,acc_descr:20,acc_descr_value:21,acc_descr_multiline_value:22,section:23,taskName:24,taskData:25,open_directive:26,type_directive:27,arg_directive:28,close_directive:29,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"acc_title",19:"acc_title_value",20:"acc_descr",21:"acc_descr_value",22:"acc_descr_multiline_value",23:"section",24:"taskName",25:"taskData",26:"open_directive",27:"type_directive",28:"arg_directive",29:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,2],[10,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 1:return r[s-1];case 3:case 7:case 8:this.$=[];break;case 4:r[s-1].push(r[s]),this.$=r[s-1];break;case 5:case 6:this.$=r[s];break;case 11:i.setDiagramTitle(r[s].substr(6)),this.$=r[s].substr(6);break;case 12:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 13:case 14:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 15:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 16:i.addTask(r[s-1],r[s]),this.$="task";break;case 18:i.parseDirective("%%{","open_directive");break;case 19:i.parseDirective(r[s],"type_directive");break;case 20:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 21:i.parseDirective("}%%","close_directive","journey")}},table:[{3:1,4:n,7:3,12:4,26:i},{1:[3]},e(a,[2,3],{5:6}),{3:7,4:n,7:3,12:4,26:i},{13:8,27:[1,9]},{27:[2,18]},{6:[1,10],7:21,8:11,9:[1,12],10:13,11:[1,14],12:4,17:r,18:o,20:s,22:c,23:l,24:u,26:i},{1:[2,2]},{14:22,15:[1,23],29:d},e([15,29],[2,19]),e(a,[2,8],{1:[2,1]}),e(a,[2,4]),{7:21,10:25,12:4,17:r,18:o,20:s,22:c,23:l,24:u,26:i},e(a,[2,6]),e(a,[2,7]),e(a,[2,11]),{19:[1,26]},{21:[1,27]},e(a,[2,14]),e(a,[2,15]),{25:[1,28]},e(a,[2,17]),{11:[1,29]},{16:30,28:[1,31]},{11:[2,21]},e(a,[2,5]),e(a,[2,12]),e(a,[2,13]),e(a,[2,16]),e(h,[2,9]),{14:32,29:d},{29:[2,20]},{11:[1,33]},e(h,[2,10])],defaultActions:{5:[2,18],7:[2,2],24:[2,21],31:[2,20]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},g=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),26;case 1:return this.begin("type_directive"),27;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),29;case 4:return 28;case 5:case 6:case 8:case 9:break;case 7:return 11;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 24;case 21:return 25;case 22:return 15;case 23:return 6;case 24:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\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:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23,24],inclusive:!0}}},t);function p(){this.yy={}}return f.lexer=g,p.prototype=f,f.Parser=p,new p}();Qd.parser=Qd;const th=Qd,eh=t=>null!==t.match(/^\s*journey/);let nh="";const ih=[],ah=[],rh=[],oh=function(){let t=!0;for(const[e,n]of rh.entries())rh[e].processed,t=t&&n.processed;return t},sh={parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().journey,clear:function(){ih.length=0,ah.length=0,nh="",rh.length=0,Ii()},setDiagramTitle:Bi,getDiagramTitle:Pi,setAccTitle:Li,getAccTitle:Oi,setAccDescription:Mi,getAccDescription:Ni,addSection:function(t){nh=t,ih.push(t)},getSections:function(){return ih},getTasks:function(){let t=oh();let e=0;for(;!t&&e<100;)t=oh(),e++;return ah.push(...rh),ah},addTask:function(t,e){const n=e.substr(1).split(":");let i=0,a=[];1===n.length?(i=Number(n[0]),a=[]):(i=Number(n[0]),a=n[1].split(","));const r=a.map((t=>t.trim())),o={section:nh,type:nh,people:r,task:t,score:i};rh.push(o)},addTaskOrg:function(t){const e={section:nh,type:nh,description:t,task:t,classes:[]};ah.push(e)},getActors:function(){return function(){const t=[];return ah.forEach((e=>{e.people&&t.push(...e.people)})),[...new Set(t)].sort()}()}},ch=function(t,e){const n=t.append("rect");return n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),n.attr("rx",e.rx),n.attr("ry",e.ry),void 0!==e.class&&n.attr("class",e.class),n},lh=function(t,e){const n=t.append("circle");return n.attr("cx",e.cx),n.attr("cy",e.cy),n.attr("class","actor-"+e.pos),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("r",e.r),void 0!==n.class&&n.attr("class",n.class),void 0!==e.title&&n.append("title").text(e.title),n},uh=function(t,e){const n=e.text.replace(/<br\s*\/?>/gi," "),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.attr("class","legend"),i.style("text-anchor",e.anchor),void 0!==e.class&&i.attr("class",e.class);const a=i.append("tspan");return a.attr("x",e.x+2*e.textMargin),a.text(n),i};let dh=-1;const hh=function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},fh=function(){function t(t,e,n,a,r,o,s,c){i(e.append("text").attr("x",n+r/2).attr("y",a+o/2+5).style("font-color",c).style("text-anchor","middle").text(t),s)}function e(t,e,n,a,r,o,s,c,l){const{taskFontSize:u,taskFontFamily:d}=c,h=t.split(/<br\s*\/?>/gi);for(let f=0;f<h.length;f++){const t=f*u-u*(h.length-1)/2,c=e.append("text").attr("x",n+r/2).attr("y",a).attr("fill",l).style("text-anchor","middle").style("font-size",u).style("font-family",d);c.append("tspan").attr("x",n+r/2).attr("dy",t).text(h[f]),c.attr("y",a+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(c,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,o,s,c,l),i(d,c)}function i(t,e){for(const n in e)n in e&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}(),gh=lh,ph=function(t,e,n){const i=t.append("g"),a=hh();a.x=e.x,a.y=e.y,a.fill=e.fill,a.width=n.width,a.height=n.height,a.class="journey-section section-type-"+e.num,a.rx=3,a.ry=3,ch(i,a),fh(n)(e.text,i,a.x,a.y,a.width,a.height,{class:"journey-section section-type-"+e.num},n,e.colour)},bh=uh,mh=function(t,e,n){const i=e.x+n.width/2,a=t.append("g");dh++;a.append("line").attr("id","task"+dh).attr("x1",i).attr("y1",e.y).attr("x2",i).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),function(t,e){const n=15,i=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",n).attr("stroke-width",2).attr("overflow","visible"),a=t.append("g");a.append("circle").attr("cx",e.cx-5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),a.append("circle").attr("cx",e.cx+5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),e.score>3?function(t){const i=(0,s.Nb1)().startAngle(Math.PI/2).endAngle(Math.PI/2*3).innerRadius(7.5).outerRadius(n/2.2);t.append("path").attr("class","mouth").attr("d",i).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}(a):e.score<3?function(t){const i=(0,s.Nb1)().startAngle(3*Math.PI/2).endAngle(Math.PI/2*5).innerRadius(7.5).outerRadius(n/2.2);t.append("path").attr("class","mouth").attr("d",i).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}(a):a.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")}(a,{cx:i,cy:300+30*(5-e.score),score:e.score});const r=hh();r.x=e.x,r.y=e.y,r.fill=e.fill,r.width=n.width,r.height=n.height,r.class="task task-type-"+e.num,r.rx=3,r.ry=3,ch(a,r);let o=e.x+14;e.people.forEach((t=>{const n=e.actors[t].color,i={cx:o,cy:e.y,r:7,fill:n,stroke:"#000",title:t,pos:e.actors[t].position};lh(a,i),o+=10})),fh(n)(e.task,a,r.x,r.y,r.width,r.height,{class:"task"},n,e.colour)},yh=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},vh={};const wh=ai().journey,xh=wh.leftMargin,Rh={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,n,i){void 0===t[e]?t[e]=n:t[e]=i(n,t[e])},updateBounds:function(t,e,n,i){const a=ai().journey,r=this;let o=0;var s;this.sequenceItems.forEach((function(c){o++;const l=r.sequenceItems.length-o+1;r.updateVal(c,"starty",e-l*a.boxMargin,Math.min),r.updateVal(c,"stopy",i+l*a.boxMargin,Math.max),r.updateVal(Rh.data,"startx",t-l*a.boxMargin,Math.min),r.updateVal(Rh.data,"stopx",n+l*a.boxMargin,Math.max),"activation"!==s&&(r.updateVal(c,"startx",t-l*a.boxMargin,Math.min),r.updateVal(c,"stopx",n+l*a.boxMargin,Math.max),r.updateVal(Rh.data,"starty",e-l*a.boxMargin,Math.min),r.updateVal(Rh.data,"stopy",i+l*a.boxMargin,Math.max))}))},insert:function(t,e,n,i){const a=Math.min(t,n),r=Math.max(t,n),o=Math.min(e,i),s=Math.max(e,i);this.updateVal(Rh.data,"startx",a,Math.min),this.updateVal(Rh.data,"starty",o,Math.min),this.updateVal(Rh.data,"stopx",r,Math.max),this.updateVal(Rh.data,"stopy",s,Math.max),this.updateBounds(a,o,r,s)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},_h=wh.sectionFills,kh=wh.sectionColours,Eh=function(t,e,n){const i=ai().journey;let a="";const r=n+(2*i.height+i.diagramMarginY);let o=0,s="#CCC",c="black",l=0;for(const[u,d]of e.entries()){if(a!==d.section){s=_h[o%_h.length],l=o%_h.length,c=kh[o%kh.length];const e={x:u*i.taskMargin+u*i.width+xh,y:50,text:d.section,fill:s,num:l,colour:c};ph(t,e,i),a=d.section,o++}const e=d.people.reduce(((t,e)=>(vh[e]&&(t[e]=vh[e]),t)),{});d.x=u*i.taskMargin+u*i.width+xh,d.y=r,d.width=i.diagramMarginX,d.height=i.diagramMarginY,d.colour=c,d.fill=s,d.num=l,d.actors=e,mh(t,d,i),Rh.insert(d.x,d.y,d.x+d.width+i.taskMargin,450)}},Ch={setConf:function(t){Object.keys(t).forEach((function(e){wh[e]=t[e]}))},draw:function(t,e,n,i){const a=ai().journey;i.db.clear(),i.parser.parse(t+"\n");const r=ai().securityLevel;let o;"sandbox"===r&&(o=(0,s.Ys)("#i"+e));const c="sandbox"===r?(0,s.Ys)(o.nodes()[0].contentDocument.body):(0,s.Ys)("body");Rh.init();const l=c.select("#"+e);yh(l);const u=i.db.getTasks(),d=i.db.getDiagramTitle(),h=i.db.getActors();for(const s in vh)delete vh[s];let f=0;h.forEach((t=>{vh[t]={color:a.actorColours[f%a.actorColours.length],position:f},f++})),function(t){const e=ai().journey;let n=60;Object.keys(vh).forEach((i=>{const a=vh[i].color,r={cx:20,cy:n,r:7,fill:a,stroke:"#000",pos:vh[i].position};gh(t,r);const o={x:40,y:n+7,fill:"#666",text:i,textMargin:5|e.boxTextMargin};bh(t,o),n+=20}))}(l),Rh.insert(0,0,xh,50*Object.keys(vh).length),Eh(l,u,0);const g=Rh.getBounds();d&&l.append("text").text(d).attr("x",xh).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);const p=g.stopy-g.starty+2*a.diagramMarginY,b=xh+g.stopx+2*a.diagramMarginX;di(l,p,b,a.useMaxWidth),l.append("line").attr("x1",xh).attr("y1",4*a.height).attr("x2",b-xh-4).attr("y2",4*a.height).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const m=d?70:0;l.attr("viewBox",`${g.startx} -25 ${b} ${p+m}`),l.attr("preserveAspectRatio","xMinYMin meet"),l.attr("height",p+m+25)}};let Sh={};const Th={setConf:function(t){Sh={...Sh,...t}},draw:(t,e,n)=>{try{Dt.debug("Renering svg for syntax error\n");const t=(0,s.Ys)("#"+e),i=t.append("g");i.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"),i.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"),i.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"),i.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"),i.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"),i.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"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in graph"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text("mermaid version "+n),t.attr("height",100),t.attr("width",500),t.attr("viewBox","768 0 912 512")}catch(a){Dt.error("Error while rendering info diagram"),Dt.error((i=a)instanceof Error?i.message:String(i))}var i}},Ah="flowchart-elk",Dh={id:Ah,detector:(t,e)=>{var n;return!!(t.match(/^\s*flowchart-elk/)||t.match(/^\s*flowchart|graph/)&&"elk"===(null==(n=null==e?void 0:e.flowchart)?void 0:n.defaultRenderer))},loader:async()=>{const{diagram:t}=await n.e(9487).then(n.bind(n,19487));return{id:Ah,diagram:t}}},Ih="timeline",Lh={id:Ih,detector:t=>null!==t.match(/^\s*timeline/),loader:async()=>{const{diagram:t}=await n.e(6316).then(n.bind(n,96316));return{id:Ih,diagram:t}}},Oh="mindmap",Mh={id:Oh,detector:t=>null!==t.match(/^\s*mindmap/),loader:async()=>{const{diagram:t}=await n.e(7724).then(n.bind(n,47724));return{id:Oh,diagram:t}}};let Nh=!1;const Bh=()=>{Nh||(Nh=!0,_n(Dh,Lh,Mh),Ki("error",{db:{clear:()=>{}},styles:pi,renderer:Th,parser:{parser:{yy:{}},parse:()=>{}},init:()=>{}},(t=>"error"===t.toLowerCase().trim())),Ki("---",{db:{clear:()=>{}},styles:pi,renderer:Th,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 unindented `---` blocks")}},init:()=>null},(t=>t.toLowerCase().trimStart().startsWith("---"))),Ki("c4",{parser:Na,db:Ka,renderer:Tr,styles:ki,init:t=>{Tr.setConf(t.c4)}},Ba),Ki("class",{parser:Dr,db:Gr,renderer:so,styles:fi,init:t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Gr.clear()}},Ir),Ki("classDiagram",{parser:Dr,db:Gr,renderer:Ko,styles:fi,init:t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Gr.clear()}},Lr),Ki("er",{parser:Jo,db:is,renderer:ps,styles:gi},Qo),Ki("gantt",{parser:kc,db:il,renderer:ol,styles:mi},Ec),Ki("info",{parser:cl,db:dl,renderer:hl,styles:yi},fl),Ki("pie",{parser:pl,db:vl,renderer:_l,styles:vi},bl),Ki("requirement",{parser:El,db:Ll,renderer:Ul,styles:wi},Cl),Ki("sequence",{parser:ql,db:hu,renderer:Vu,styles:xi,init:t=>{if(t.sequence||(t.sequence={}),t.sequence.arrowMarkerAbsolute=t.arrowMarkerAbsolute,"sequenceDiagram"in t)throw new Error("`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.");hu.setWrap(t.wrap),Vu.setConf(t.sequence)}},Wl),Ki("state",{parser:Wu,db:_d,renderer:Md,styles:Ri,init:t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,_d.clear()}},Yu),Ki("stateDiagram",{parser:Wu,db:_d,renderer:Jd,styles:Ri,init:t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,_d.clear()}},Gu),Ki("journey",{parser:th,db:sh,renderer:Ch,styles:_i,init:t=>{Ch.setConf(t.journey),sh.clear()}},eh),Ki("flowchart",{parser:ms,db:pc,renderer:Rc,styles:bi,init:t=>{t.flowchart||(t.flowchart={}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,yc(t.flowchart),pc.clear(),pc.setGen("gen-1")}},ys),Ki("flowchart-v2",{parser:ms,db:pc,renderer:Rc,styles:bi,init:t=>{t.flowchart||(t.flowchart={}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,ii({flowchart:{arrowMarkerAbsolute:t.arrowMarkerAbsolute}}),Rc.setConf(t.flowchart),pc.clear(),pc.setGen("gen-2")}},vs),Ki("gitGraph",{parser:Qi,db:ma,renderer:La,styles:Oa},ta))};class Ph{constructor(t,e){var n,i;this.txt=t,this.type="graph",this.detectTypeFailed=!1;const a=ai();this.txt=t;try{this.type=Rn(t,a)}catch(s){this.handleError(s,e),this.type="error",this.detectTypeFailed=!0}const r=Xi(this.type);Dt.debug("Type "+this.type),this.db=r.db,null==(i=(n=this.db).clear)||i.call(n),this.renderer=r.renderer,this.parser=r.parser;const o=this.parser.parse.bind(this.parser);this.parser.parse=t=>o(function(t,e){var n;const i=t.match(yn);if(i){const a=mn(i[1],{schema:bn});return(null==a?void 0:a.title)&&(null==(n=e.setDiagramTitle)||n.call(e,a.title)),t.slice(i[0].length)}return t}(t,this.db)),this.parser.parser.yy=this.db,r.init&&(r.init(a),Dt.info("Initialized diagram "+this.type,a)),this.txt+="\n",this.parse(this.txt,e)}parse(t,e){var n,i;if(this.detectTypeFailed)return!1;try{return t+="\n",null==(i=(n=this.db).clear)||i.call(n),this.parser.parse(t),!0}catch(a){this.handleError(a,e)}return!1}handleError(t,e){if(void 0===e)throw t;Wn(t)?e(t.str,t.hash):e(t)}getParser(){return this.parser}getType(){return this.type}}const Fh=(t,e)=>{const n=Rn(t,ai());try{Xi(n)}catch(i){const a=xn[n].loader;if(!a)throw new Error(`Diagram ${n} not found.`);return a().then((({diagram:i})=>(Ki(n,i,void 0),new Ph(t,e))))}return new Ph(t,e)},jh=Ph;const $h=["graph","flowchart","flowchart-v2","stateDiagram","stateDiagram-v2"],zh="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",Hh="sandbox",Uh="loose",Vh="http://www.w3.org/1999/xlink",qh="http://www.w3.org/1999/xhtml",Wh=["foreignobject"],Yh=["dominant-baseline"];const Gh=function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,(function(t){return t.substring(0,t.length-1)})),e=e.replace(/classDef.*:\S*#.*;/g,(function(t){return t.substring(0,t.length-1)})),e=e.replace(/#\w+;/g,(function(t){const e=t.substring(1,t.length-1);return/^\+?\d+$/.test(e)?"\ufb02\xb0\xb0"+e+"\xb6\xdf":"\ufb02\xb0"+e+"\xb6\xdf"})),e},Zh=function(t){let e=t;return e=e.replace(/\ufb02\xb0\xb0/g,"&#"),e=e.replace(/\ufb02\xb0/g,"&"),e=e.replace(/\xb6\xdf/g,";"),e},Kh=(t,e,n=[])=>`\n.${t} ${e} { ${n.join(" !important; ")} !important; }`,Xh=(t,e,n,i)=>{const a=((t,e,n={})=>{var i;let a="";if(void 0!==t.themeCSS&&(a+=`\n${t.themeCSS}`),void 0!==t.fontFamily&&(a+=`\n:root { --mermaid-font-family: ${t.fontFamily}}`),void 0!==t.altFontFamily&&(a+=`\n:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),!(0,Tt.Z)(n)&&$h.includes(e)){const e=["> *","span"],r=["rect","polygon","ellipse","circle","path"],o=t.htmlLabels||(null==(i=t.flowchart)?void 0:i.htmlLabels)?e:r;for(const t in n){const e=n[t];(0,Tt.Z)(e.styles)||o.forEach((t=>{a+=Kh(e.id,t,e.styles)})),(0,Tt.Z)(e.textStyles)||(a+=Kh(e.id,"tspan",e.textStyles))}}return a})(t,e,n);return M(it(`${i}{${Ci(e,a,t.themeVariables)}}`),N)},Jh=(t="",e,n)=>{let i=t;return n||e||(i=i.replace(/marker-end="url\(.*?#/g,'marker-end="url(#')),i=Zh(i),i=i.replace(/<br>/g,"<br/>"),i},Qh=(t="",e)=>`<iframe style="width:100%;height:${e?e.viewBox.baseVal.height+"px":"100%"};border:0;margin:0;" src="data:text/html;base64,${btoa('<body style="margin:0">'+t+"</body>")}" sandbox="allow-top-navigation-by-user-activation allow-popups">\n The "iframe" tag is not supported by your browser.\n</iframe>`,tf=(t,e,n,i,a)=>{const r=t.append("div");r.attr("id",n),i&&r.attr("style",i);const o=r.append("svg").attr("id",e).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg");return a&&o.attr("xmlns:xlink",a),o.append("g"),t};function ef(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const nf=(t,e,n,i)=>{var a,r,o;null==(a=t.getElementById(e))||a.remove(),null==(r=t.getElementById(n))||r.remove(),null==(o=t.getElementById(i))||o.remove()};function af(t,e,n,i){var a,r;r=t,(a=e).attr("role","graphics-document document"),(0,Tt.Z)(r)||a.attr("aria-roledescription",r),function(t,e,n,i){if(void 0!==t.insert&&(e||n)){if(n){const e="chart-desc-"+i;t.attr("aria-describedby",e),t.insert("desc",":first-child").attr("id",e).text(n)}if(e){const n="chart-title-"+i;t.attr("aria-labelledby",n),t.insert("title",":first-child").attr("id",n).text(e)}}}(e,n,i,e.attr("id"))}const rf=Object.freeze({render:function(t,e,n,i){var a,r,o,c;Bh(),si();const l=Gn.detectInit(e);l&&(Vn(l),oi(l));const d=ai();Dt.debug(d),e.length>((null==d?void 0:d.maxTextSize)??5e4)&&(e=zh),e=e.replace(/\r\n?/g,"\n");const h="#"+t,f="i"+t,g="#"+f,p="d"+t,b="#"+p;let m=(0,s.Ys)("body");const y=d.securityLevel===Hh,v=d.securityLevel===Uh,w=d.fontFamily;if(void 0!==i){if(i&&(i.innerHTML=""),y){const t=ef((0,s.Ys)(i),f);m=(0,s.Ys)(t.nodes()[0].contentDocument.body),m.node().style.margin=0}else m=(0,s.Ys)(i);tf(m,t,p,`font-family: ${w}`,Vh)}else{if(nf(document,t,p,f),y){const t=ef((0,s.Ys)("body"),f);m=(0,s.Ys)(t.nodes()[0].contentDocument.body),m.node().style.margin=0}else m=(0,s.Ys)("body");tf(m,t,p)}let x,R;e=Gh(e);try{if(x=Fh(e),"then"in x)throw new Error("Diagram is a promise. Use renderAsync.")}catch(O){x=new jh("error"),R=O}const _=m.select(b).node(),k=x.type,E=_.firstChild,C=E.firstChild,S=$h.includes(k)?x.renderer.getClasses(e,x):{},T=Xh(d,k,S,h),A=document.createElement("style");A.innerHTML=T,E.insertBefore(A,C);try{x.renderer.draw(e,t,Zn,x)}catch(M){throw Th.draw(e,t,Zn),M}af(k,m.select(`${b} svg`),null==(r=(a=x.db).getAccTitle)?void 0:r.call(a),null==(c=(o=x.db).getAccDescription)?void 0:c.call(o)),m.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",qh);let D=m.select(b).node().innerHTML;if(Dt.debug("config.arrowMarkerAbsolute",d.arrowMarkerAbsolute),D=Jh(D,y,jt(d.arrowMarkerAbsolute)),y){const t=m.select(b+" svg").node();D=Qh(D,t)}else v||(D=u().sanitize(D,{ADD_TAGS:Wh,ADD_ATTR:Yh}));if(void 0!==n)switch(k){case"flowchart":case"flowchart-v2":n(D,pc.bindFunctions);break;case"gantt":n(D,il.bindFunctions);break;case"class":case"classDiagram":n(D,Gr.bindFunctions);break;default:n(D)}else Dt.debug("CB = undefined!");gu();const I=y?g:b,L=(0,s.Ys)(I).node();if(L&&"remove"in L&&L.remove(),R)throw R;return D},renderAsync:async function(t,e,n,i){var a,r,o,c;Bh(),si();const l=Gn.detectInit(e);l&&(Vn(l),oi(l));const d=ai();Dt.debug(d),e.length>((null==d?void 0:d.maxTextSize)??5e4)&&(e=zh),e=e.replace(/\r\n?/g,"\n");const h="#"+t,f="i"+t,g="#"+f,p="d"+t,b="#"+p;let m=(0,s.Ys)("body");const y=d.securityLevel===Hh,v=d.securityLevel===Uh,w=d.fontFamily;if(void 0!==i){if(i&&(i.innerHTML=""),y){const t=ef((0,s.Ys)(i),f);m=(0,s.Ys)(t.nodes()[0].contentDocument.body),m.node().style.margin=0}else m=(0,s.Ys)(i);tf(m,t,p,`font-family: ${w}`,Vh)}else{if(nf(document,t,p,f),y){const t=ef((0,s.Ys)("body"),f);m=(0,s.Ys)(t.nodes()[0].contentDocument.body),m.node().style.margin=0}else m=(0,s.Ys)("body");tf(m,t,p)}let x,R;e=Gh(e);try{x=await Fh(e)}catch(O){x=new jh("error"),R=O}const _=m.select(b).node(),k=x.type,E=_.firstChild,C=E.firstChild,S=$h.includes(k)?x.renderer.getClasses(e,x):{},T=Xh(d,k,S,h),A=document.createElement("style");A.innerHTML=T,E.insertBefore(A,C);try{await x.renderer.draw(e,t,Zn,x)}catch(M){throw Th.draw(e,t,Zn),M}af(k,m.select(`${b} svg`),null==(r=(a=x.db).getAccTitle)?void 0:r.call(a),null==(c=(o=x.db).getAccDescription)?void 0:c.call(o)),m.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",qh);let D=m.select(b).node().innerHTML;if(Dt.debug("config.arrowMarkerAbsolute",d.arrowMarkerAbsolute),D=Jh(D,y,jt(d.arrowMarkerAbsolute)),y){const t=m.select(b+" svg").node();D=Qh(D,t)}else v||(D=u().sanitize(D,{ADD_TAGS:Wh,ADD_ATTR:Yh}));if(void 0!==n)switch(k){case"flowchart":case"flowchart-v2":n(D,pc.bindFunctions);break;case"gantt":n(D,il.bindFunctions);break;case"class":case"classDiagram":n(D,Gr.bindFunctions);break;default:n(D)}else Dt.debug("CB = undefined!");gu();const I=y?g:b,L=(0,s.Ys)(I).node();if(L&&"remove"in L&&L.remove(),R)throw R;return D},parse:function(t,e){return Bh(),new jh(t,e).parse(t,e)},parseAsync:async function(t,e){return Bh(),(await Fh(t,e)).parse(t,e)},parseDirective:zi,initialize:function(t={}){var e;(null==t?void 0:t.fontFamily)&&!(null==(e=t.themeVariables)?void 0:e.fontFamily)&&(t.themeVariables={fontFamily:t.fontFamily}),Xn=Cn({},t),(null==t?void 0:t.theme)&&t.theme in Wt?t.themeVariables=Wt[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=Wt.default.getThemeVariables(t.themeVariables));const n="object"==typeof t?(t=>(Jn=Cn({},Kn),Jn=Cn(Jn,t),t.theme&&Wt[t.theme]&&(Jn.themeVariables=Wt[t.theme].getThemeVariables(t.themeVariables)),ei(Jn,Qn),Jn))(t):ni();It(n.logLevel),Bh()},getConfig:ai,setConfig:ii,getSiteConfig:ni,updateSiteConfig:t=>(Jn=Cn(Jn,t),ei(Jn,Qn),Jn),reset:()=>{si()},globalReset:()=>{si(Kn)},defaultConfig:Kn});It(ai().logLevel),si(ai());const of=(t,e,n)=>{Dt.warn(t),Wn(t)?(n&&n(t.str,t.hash),e.push({...t,message:t.str,error:t})):(n&&n(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},sf=async function(t,e,n){const a=rf.getConfig();let r;if(t&&(hf.sequenceConfig=t),Dt.debug((n?"":"No ")+"Callback function found"),void 0===e)r=document.querySelectorAll(".mermaid");else if("string"==typeof e)r=document.querySelectorAll(e);else if(e instanceof HTMLElement)r=[e];else{if(!(e instanceof NodeList))throw new Error("Invalid argument nodes for mermaid.init");r=e}Dt.debug(`Found ${r.length} diagrams`),void 0!==(null==t?void 0:t.startOnLoad)&&(Dt.debug("Start On Load: "+(null==t?void 0:t.startOnLoad)),rf.updateSiteConfig({startOnLoad:null==t?void 0:t.startOnLoad}));const o=new Gn.initIdGenerator(a.deterministicIds,a.deterministicIDSeed);let s;const c=[];for(const u of Array.from(r)){if(Dt.info("Rendering diagram: "+u.id),u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");const t=`mermaid-${o.next()}`;s=u.innerHTML,s=i(Gn.entityDecode(s)).trim().replace(/<br\s*\/?>/gi,"<br/>");const e=Gn.detectInit(s);e&&Dt.debug("Detected early reinit: ",e);try{await rf.renderAsync(t,s,((e,i)=>{u.innerHTML=e,void 0!==n&&n(t),i&&i(u)}),u)}catch(l){of(l,c,hf.parseError)}}if(c.length>0)throw c[0]},cf=function(){if(hf.startOnLoad){const{startOnLoad:t}=rf.getConfig();t&&hf.init().catch((t=>Dt.error("Mermaid failed to initialize",t)))}};"undefined"!=typeof document&&window.addEventListener("load",cf,!1);const lf=[];let uf=!1;const df=async()=>{if(!uf){for(uf=!0;lf.length>0;){const e=lf.shift();if(e)try{await e()}catch(t){Dt.error("Error executing queue",t)}}uf=!1}},hf={startOnLoad:!0,diagrams:{},mermaidAPI:rf,parse:t=>rf.parse(t,hf.parseError),parseAsync:t=>new Promise(((e,n)=>{lf.push((()=>new Promise(((i,a)=>{rf.parseAsync(t,hf.parseError).then((t=>{i(t),e(t)}),(t=>{Dt.error("Error parsing",t),a(t),n(t)}))})))),df().catch(n)})),render:rf.render,renderAsync:(t,e,n,i)=>new Promise(((a,r)=>{lf.push((()=>new Promise(((o,s)=>{rf.renderAsync(t,e,n,i).then((t=>{o(t),a(t)}),(t=>{Dt.error("Error parsing",t),s(t),r(t)}))})))),df().catch(r)})),init:async function(t,e,n){try{await sf(t,e,n)}catch(i){Dt.warn("Syntax Error rendering"),Wn(i)&&Dt.warn(i.str),hf.parseError&&hf.parseError(i)}},initThrowsErrors:function(t,e,n){const a=rf.getConfig();let r;if(t&&(hf.sequenceConfig=t),Dt.debug((n?"":"No ")+"Callback function found"),void 0===e)r=document.querySelectorAll(".mermaid");else if("string"==typeof e)r=document.querySelectorAll(e);else if(e instanceof HTMLElement)r=[e];else{if(!(e instanceof NodeList))throw new Error("Invalid argument nodes for mermaid.init");r=e}Dt.debug(`Found ${r.length} diagrams`),void 0!==(null==t?void 0:t.startOnLoad)&&(Dt.debug("Start On Load: "+(null==t?void 0:t.startOnLoad)),rf.updateSiteConfig({startOnLoad:null==t?void 0:t.startOnLoad}));const o=new Gn.initIdGenerator(a.deterministicIds,a.deterministicIDSeed);let s;const c=[];for(const u of Array.from(r)){if(Dt.info("Rendering diagram: "+u.id),u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");const t=`mermaid-${o.next()}`;s=u.innerHTML,s=i(Gn.entityDecode(s)).trim().replace(/<br\s*\/?>/gi,"<br/>");const e=Gn.detectInit(s);e&&Dt.debug("Detected early reinit: ",e);try{rf.render(t,s,((e,i)=>{u.innerHTML=e,void 0!==n&&n(t),i&&i(u)}),u)}catch(l){of(l,c,hf.parseError)}}if(c.length>0)throw c[0]},initThrowsErrorsAsync:sf,registerExternalDiagrams:async(t,{lazyLoad:e=!0}={})=>{e?_n(...t):await(async(...t)=>{Dt.debug(`Loading ${t.length} external diagrams`);const e=(await Promise.allSettled(t.map((async({id:t,detector:e,loader:n})=>{const{diagram:i}=await n();Ki(t,i,e)})))).filter((t=>"rejected"===t.status));if(e.length>0){Dt.error(`Failed to load ${e.length} external diagrams`);for(const t of e)Dt.error(t);throw new Error(`Failed to load ${e.length} external diagrams`)}})(...t)},initialize:function(t){rf.initialize(t)},parseError:void 0,contentLoaded:cf,setParseErrorHandler:function(t){hf.parseError=t}}},33231:function(t,e,n){(t=n.nmd(t)).exports=function(){"use strict";function i(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];var i=Array.from("string"==typeof t?[t]:t);i[i.length-1]=i[i.length-1].replace(/\r?\n([\t ]*)$/,"");var a=i.reduce((function(t,e){var n=e.match(/\n([\t ]+|(?!\s).)/g);return n?t.concat(n.map((function(t){var e,n;return null!==(n=null===(e=t.match(/[\t ]/g))||void 0===e?void 0:e.length)&&void 0!==n?n:0}))):t}),[]);if(a.length){var r=new RegExp("\n[\t ]{"+Math.min.apply(Math,a)+"}","g");i=i.map((function(t){return t.replace(r,"\n")}))}i[0]=i[0].replace(/^\r?\n/,"");var o=i[0];return e.forEach((function(t,e){var n=o.match(/(?:^|\n)( *)$/),a=n?n[1]:"",r=t;"string"==typeof t&&t.includes("\n")&&(r=String(t).split("\n").map((function(t,e){return 0===e?t:""+a+t})).join("\n")),o+=r+i[e+1]})),o}var a=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof n.g<"u"?n.g:typeof self<"u"?self:{};function r(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var o,s={};o=function(){var t=1e3,e=6e4,n=36e5,i="millisecond",a="second",r="minute",o="hour",s="day",c="week",l="month",u="quarter",d="year",h="date",f="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,p=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,b={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var i=String(t);return!i||i.length>=e?t:""+Array(e+1-i.length).join(n)+t},y={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),i=Math.floor(n/60),a=n%60;return(e<=0?"+":"-")+m(i,2,"0")+":"+m(a,2,"0")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var i=12*(n.year()-e.year())+(n.month()-e.month()),a=e.clone().add(i,l),r=n-a<0,o=e.clone().add(i+(r?-1:1),l);return+(-(i+(n-a)/(r?a-o:o-a))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:l,y:d,w:c,d:s,D:h,h:o,m:r,s:a,ms:i,Q:u}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},v="en",w={};w[v]=b;var x=function(t){return t instanceof E},R=function t(e,n,i){var a;if(!e)return v;if("string"==typeof e){var r=e.toLowerCase();w[r]&&(a=r),n&&(w[r]=n,a=r);var o=e.split("-");if(!a&&o.length>1)return t(o[0])}else{var s=e.name;w[s]=e,a=s}return!i&&a&&(v=a),a||!i&&v},_=function(t,e){if(x(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new E(n)},k=y;k.l=R,k.i=x,k.w=function(t,e){return _(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var E=function(){function b(t){this.$L=R(t.locale,null,!0),this.parse(t)}var m=b.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(k.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var i=e.match(g);if(i){var a=i[2]-1||0,r=(i[7]||"0").substring(0,3);return n?new Date(Date.UTC(i[1],a,i[3]||1,i[4]||0,i[5]||0,i[6]||0,r)):new Date(i[1],a,i[3]||1,i[4]||0,i[5]||0,i[6]||0,r)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return k},m.isValid=function(){return this.$d.toString()!==f},m.isSame=function(t,e){var n=_(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return _(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<_(t)},m.$g=function(t,e,n){return k.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,i=!!k.u(e)||e,u=k.p(t),f=function(t,e){var a=k.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return i?a:a.endOf(s)},g=function(t,e){return k.w(n.toDate()[t].apply(n.toDate("s"),(i?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},p=this.$W,b=this.$M,m=this.$D,y="set"+(this.$u?"UTC":"");switch(u){case d:return i?f(1,0):f(31,11);case l:return i?f(1,b):f(0,b+1);case c:var v=this.$locale().weekStart||0,w=(p<v?p+7:p)-v;return f(i?m-w:m+(6-w),b);case s:case h:return g(y+"Hours",0);case o:return g(y+"Minutes",1);case r:return g(y+"Seconds",2);case a:return g(y+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,c=k.p(t),u="set"+(this.$u?"UTC":""),f=(n={},n[s]=u+"Date",n[h]=u+"Date",n[l]=u+"Month",n[d]=u+"FullYear",n[o]=u+"Hours",n[r]=u+"Minutes",n[a]=u+"Seconds",n[i]=u+"Milliseconds",n)[c],g=c===s?this.$D+(e-this.$W):e;if(c===l||c===d){var p=this.clone().set(h,1);p.$d[f](g),p.init(),this.$d=p.set(h,Math.min(this.$D,p.daysInMonth())).$d}else f&&this.$d[f](g);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[k.p(t)]()},m.add=function(i,u){var h,f=this;i=Number(i);var g=k.p(u),p=function(t){var e=_(f);return k.w(e.date(e.date()+Math.round(t*i)),f)};if(g===l)return this.set(l,this.$M+i);if(g===d)return this.set(d,this.$y+i);if(g===s)return p(1);if(g===c)return p(7);var b=(h={},h[r]=e,h[o]=n,h[a]=t,h)[g]||1,m=this.$d.getTime()+i*b;return k.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||f;var i=t||"YYYY-MM-DDTHH:mm:ssZ",a=k.z(this),r=this.$H,o=this.$m,s=this.$M,c=n.weekdays,l=n.months,u=function(t,n,a,r){return t&&(t[n]||t(e,i))||a[n].slice(0,r)},d=function(t){return k.s(r%12||12,t,"0")},h=n.meridiem||function(t,e,n){var i=t<12?"AM":"PM";return n?i.toLowerCase():i},g={YY:String(this.$y).slice(-2),YYYY:this.$y,M:s+1,MM:k.s(s+1,2,"0"),MMM:u(n.monthsShort,s,l,3),MMMM:u(l,s),D:this.$D,DD:k.s(this.$D,2,"0"),d:String(this.$W),dd:u(n.weekdaysMin,this.$W,c,2),ddd:u(n.weekdaysShort,this.$W,c,3),dddd:c[this.$W],H:String(r),HH:k.s(r,2,"0"),h:d(1),hh:d(2),a:h(r,o,!0),A:h(r,o,!1),m:String(o),mm:k.s(o,2,"0"),s:String(this.$s),ss:k.s(this.$s,2,"0"),SSS:k.s(this.$ms,3,"0"),Z:a};return i.replace(p,(function(t,e){return e||g[t]||a.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(i,h,f){var g,p=k.p(h),b=_(i),m=(b.utcOffset()-this.utcOffset())*e,y=this-b,v=k.m(this,b);return v=(g={},g[d]=v/12,g[l]=v,g[u]=v/3,g[c]=(y-m)/6048e5,g[s]=(y-m)/864e5,g[o]=y/n,g[r]=y/e,g[a]=y/t,g)[p]||y,f?v:k.a(v)},m.daysInMonth=function(){return this.endOf(l).$D},m.$locale=function(){return w[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),i=R(t,e,!0);return i&&(n.$L=i),n},m.clone=function(){return k.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},b}(),C=E.prototype;return _.prototype=C,[["$ms",i],["$s",a],["$m",r],["$H",o],["$W",s],["$M",l],["$y",d],["$D",h]].forEach((function(t){C[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),_.extend=function(t,e){return t.$i||(t(e,E,_),t.$i=!0),_},_.locale=R,_.isDayjs=x,_.unix=function(t){return _(1e3*t)},_.en=w[v],_.Ls=w,_.p={},_},{get exports(){return s},set exports(t){s=t}}.exports=o();const l=s,u={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},d={trace:(...t)=>{},debug:(...t)=>{},info:(...t)=>{},warn:(...t)=>{},error:(...t)=>{},fatal:(...t)=>{}},h=function(t="fatal"){let e=u.fatal;"string"==typeof t?(t=t.toLowerCase())in u&&(e=u[t]):"number"==typeof t&&(e=t),d.trace=()=>{},d.debug=()=>{},d.info=()=>{},d.warn=()=>{},d.error=()=>{},d.fatal=()=>{},e<=u.fatal&&(d.fatal=console.error?console.error.bind(console,f("FATAL"),"color: orange"):console.log.bind(console,"\x1b[35m",f("FATAL"))),e<=u.error&&(d.error=console.error?console.error.bind(console,f("ERROR"),"color: orange"):console.log.bind(console,"\x1b[31m",f("ERROR"))),e<=u.warn&&(d.warn=console.warn?console.warn.bind(console,f("WARN"),"color: orange"):console.log.bind(console,"\x1b[33m",f("WARN"))),e<=u.info&&(d.info=console.info?console.info.bind(console,f("INFO"),"color: lightblue"):console.log.bind(console,"\x1b[34m",f("INFO"))),e<=u.debug&&(d.debug=console.debug?console.debug.bind(console,f("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",f("DEBUG"))),e<=u.trace&&(d.trace=console.debug?console.debug.bind(console,f("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",f("TRACE")))},f=t=>`%c${l().format("ss.SSS")} : ${t} : `;var g={};Object.defineProperty(g,"__esModule",{value:!0});var p=g.sanitizeUrl=void 0,b=/^([^\w]*)(javascript|data|vbscript)/im,m=/&#(\w+)(^\w|;)?/g,y=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,v=/^([^:]+):/gm,w=[".","/"];function x(t){return w.indexOf(t[0])>-1}function R(t){return t.replace(m,(function(t,e){return String.fromCharCode(e)}))}function _(t){var e=R(t||"").replace(y,"").trim();if(!e)return"about:blank";if(x(e))return e;var n=e.match(v);if(!n)return e;var i=n[0];return b.test(i)?"about:blank":e}function k(t,e){return null==t||null==e?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function E(t,e){return null==t||null==e?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function C(t){let e,n,i;function a(t,i,a=0,r=t.length){if(a<r){if(0!==e(i,i))return r;do{const e=a+r>>>1;n(t[e],i)<0?a=e+1:r=e}while(a<r)}return a}function r(t,i,a=0,r=t.length){if(a<r){if(0!==e(i,i))return r;do{const e=a+r>>>1;n(t[e],i)<=0?a=e+1:r=e}while(a<r)}return a}function o(t,e,n=0,r=t.length){const o=a(t,e,n,r-1);return o>n&&i(t[o-1],e)>-i(t[o],e)?o-1:o}return 2!==t.length?(e=k,n=(e,n)=>k(t(e),n),i=(e,n)=>t(e)-n):(e=t===k||t===E?t:S,n=t,i=t),{left:a,center:o,right:r}}function S(){return 0}function T(t){return null===t?NaN:+t}p=g.sanitizeUrl=_;const A=C(k).right;C(T).center;const D=A;class I extends Map{constructor(t,e=N){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=t)for(const[n,i]of t)this.set(n,i)}get(t){return super.get(L(this,t))}has(t){return super.has(L(this,t))}set(t,e){return super.set(O(this,t),e)}delete(t){return super.delete(M(this,t))}}function L({_intern:t,_key:e},n){const i=e(n);return t.has(i)?t.get(i):n}function O({_intern:t,_key:e},n){const i=e(n);return t.has(i)?t.get(i):(t.set(i,n),n)}function M({_intern:t,_key:e},n){const i=e(n);return t.has(i)&&(n=t.get(i),t.delete(i)),n}function N(t){return null!==t&&"object"==typeof t?t.valueOf():t}var B=Math.sqrt(50),P=Math.sqrt(10),F=Math.sqrt(2);function j(t,e,n){var i,a,r,o,s=-1;if(n=+n,(t=+t)==(e=+e)&&n>0)return[t];if((i=e<t)&&(a=t,t=e,e=a),0===(o=$(t,e,n))||!isFinite(o))return[];if(o>0){let n=Math.round(t/o),i=Math.round(e/o);for(n*o<t&&++n,i*o>e&&--i,r=new Array(a=i-n+1);++s<a;)r[s]=(n+s)*o}else{o=-o;let n=Math.round(t*o),i=Math.round(e*o);for(n/o<t&&++n,i/o>e&&--i,r=new Array(a=i-n+1);++s<a;)r[s]=(n+s)/o}return i&&r.reverse(),r}function $(t,e,n){var i=(e-t)/Math.max(0,n),a=Math.floor(Math.log(i)/Math.LN10),r=i/Math.pow(10,a);return a>=0?(r>=B?10:r>=P?5:r>=F?2:1)*Math.pow(10,a):-Math.pow(10,-a)/(r>=B?10:r>=P?5:r>=F?2:1)}function z(t,e,n){var i=Math.abs(e-t)/Math.max(0,n),a=Math.pow(10,Math.floor(Math.log(i)/Math.LN10)),r=i/a;return r>=B?a*=10:r>=P?a*=5:r>=F&&(a*=2),e<t?-a:a}function H(t,e){let n;if(void 0===e)for(const i of t)null!=i&&(n<i||void 0===n&&i>=i)&&(n=i);else{let i=-1;for(let a of t)null!=(a=e(a,++i,t))&&(n<a||void 0===n&&a>=a)&&(n=a)}return n}function U(t,e){let n;if(void 0===e)for(const i of t)null!=i&&(n>i||void 0===n&&i>=i)&&(n=i);else{let i=-1;for(let a of t)null!=(a=e(a,++i,t))&&(n>a||void 0===n&&a>=a)&&(n=a)}return n}function V(t){return t}var q=1,W=2,Y=3,G=4,Z=1e-6;function K(t){return"translate("+t+",0)"}function X(t){return"translate(0,"+t+")"}function J(t){return e=>+t(e)}function Q(t,e){return e=Math.max(0,t.bandwidth()-2*e)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function tt(){return!this.__axis}function et(t,e){var n=[],i=null,a=null,r=6,o=6,s=3,c=typeof window<"u"&&window.devicePixelRatio>1?0:.5,l=t===q||t===G?-1:1,u=t===G||t===W?"x":"y",d=t===q||t===Y?K:X;function h(h){var f=i??(e.ticks?e.ticks.apply(e,n):e.domain()),g=a??(e.tickFormat?e.tickFormat.apply(e,n):V),p=Math.max(r,0)+s,b=e.range(),m=+b[0]+c,y=+b[b.length-1]+c,v=(e.bandwidth?Q:J)(e.copy(),c),w=h.selection?h.selection():h,x=w.selectAll(".domain").data([null]),R=w.selectAll(".tick").data(f,e).order(),_=R.exit(),k=R.enter().append("g").attr("class","tick"),E=R.select("line"),C=R.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),R=R.merge(k),E=E.merge(k.append("line").attr("stroke","currentColor").attr(u+"2",l*r)),C=C.merge(k.append("text").attr("fill","currentColor").attr(u,l*p).attr("dy",t===q?"0em":t===Y?"0.71em":"0.32em")),h!==w&&(x=x.transition(h),R=R.transition(h),E=E.transition(h),C=C.transition(h),_=_.transition(h).attr("opacity",Z).attr("transform",(function(t){return isFinite(t=v(t))?d(t+c):this.getAttribute("transform")})),k.attr("opacity",Z).attr("transform",(function(t){var e=this.parentNode.__axis;return d((e&&isFinite(e=e(t))?e:v(t))+c)}))),_.remove(),x.attr("d",t===G||t===W?o?"M"+l*o+","+m+"H"+c+"V"+y+"H"+l*o:"M"+c+","+m+"V"+y:o?"M"+m+","+l*o+"V"+c+"H"+y+"V"+l*o:"M"+m+","+c+"H"+y),R.attr("opacity",1).attr("transform",(function(t){return d(v(t)+c)})),E.attr(u+"2",l*r),C.attr(u,l*p).text(g),w.filter(tt).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===W?"start":t===G?"end":"middle"),w.each((function(){this.__axis=v}))}return h.scale=function(t){return arguments.length?(e=t,h):e},h.ticks=function(){return n=Array.from(arguments),h},h.tickArguments=function(t){return arguments.length?(n=null==t?[]:Array.from(t),h):n.slice()},h.tickValues=function(t){return arguments.length?(i=null==t?null:Array.from(t),h):i&&i.slice()},h.tickFormat=function(t){return arguments.length?(a=t,h):a},h.tickSize=function(t){return arguments.length?(r=o=+t,h):r},h.tickSizeInner=function(t){return arguments.length?(r=+t,h):r},h.tickSizeOuter=function(t){return arguments.length?(o=+t,h):o},h.tickPadding=function(t){return arguments.length?(s=+t,h):s},h.offset=function(t){return arguments.length?(c=+t,h):c},h}function nt(t){return et(q,t)}function it(t){return et(Y,t)}var at={value:()=>{}};function rt(){for(var t,e=0,n=arguments.length,i={};e<n;++e){if(!(t=arguments[e]+"")||t in i||/[\s.]/.test(t))throw new Error("illegal type: "+t);i[t]=[]}return new ot(i)}function ot(t){this._=t}function st(t,e){return t.trim().split(/^|\s+/).map((function(t){var n="",i=t.indexOf(".");if(i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function ct(t,e){for(var n,i=0,a=t.length;i<a;++i)if((n=t[i]).name===e)return n.value}function lt(t,e,n){for(var i=0,a=t.length;i<a;++i)if(t[i].name===e){t[i]=at,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=n&&t.push({name:e,value:n}),t}ot.prototype=rt.prototype={constructor:ot,on:function(t,e){var n,i=this._,a=st(t+"",i),r=-1,o=a.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++r<o;)if(n=(t=a[r]).type)i[n]=lt(i[n],t.name,e);else if(null==e)for(n in i)i[n]=lt(i[n],t.name,null);return this}for(;++r<o;)if((n=(t=a[r]).type)&&(n=ct(i[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new ot(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,i,a=new Array(n),r=0;r<n;++r)a[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(r=0,n=(i=this._[t]).length;r<n;++r)i[r].value.apply(e,a)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var i=this._[t],a=0,r=i.length;a<r;++a)i[a].value.apply(e,n)}};var ut="http://www.w3.org/1999/xhtml";const dt={svg:"http://www.w3.org/2000/svg",xhtml:ut,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function ht(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),dt.hasOwnProperty(e)?{space:dt[e],local:t}:t}function ft(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===ut&&e.documentElement.namespaceURI===ut?e.createElement(t):e.createElementNS(n,t)}}function gt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function pt(t){var e=ht(t);return(e.local?gt:ft)(e)}function bt(){}function mt(t){return null==t?bt:function(){return this.querySelector(t)}}function yt(t){"function"!=typeof t&&(t=mt(t));for(var e=this._groups,n=e.length,i=new Array(n),a=0;a<n;++a)for(var r,o,s=e[a],c=s.length,l=i[a]=new Array(c),u=0;u<c;++u)(r=s[u])&&(o=t.call(r,r.__data__,u,s))&&("__data__"in r&&(o.__data__=r.__data__),l[u]=o);return new sn(i,this._parents)}function vt(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}function wt(){return[]}function xt(t){return null==t?wt:function(){return this.querySelectorAll(t)}}function Rt(t){return function(){return vt(t.apply(this,arguments))}}function _t(t){t="function"==typeof t?Rt(t):xt(t);for(var e=this._groups,n=e.length,i=[],a=[],r=0;r<n;++r)for(var o,s=e[r],c=s.length,l=0;l<c;++l)(o=s[l])&&(i.push(t.call(o,o.__data__,l,s)),a.push(o));return new sn(i,a)}function kt(t){return function(){return this.matches(t)}}function Et(t){return function(e){return e.matches(t)}}var Ct=Array.prototype.find;function St(t){return function(){return Ct.call(this.children,t)}}function Tt(){return this.firstElementChild}function At(t){return this.select(null==t?Tt:St("function"==typeof t?t:Et(t)))}var Dt=Array.prototype.filter;function It(){return Array.from(this.children)}function Lt(t){return function(){return Dt.call(this.children,t)}}function Ot(t){return this.selectAll(null==t?It:Lt("function"==typeof t?t:Et(t)))}function Mt(t){"function"!=typeof t&&(t=kt(t));for(var e=this._groups,n=e.length,i=new Array(n),a=0;a<n;++a)for(var r,o=e[a],s=o.length,c=i[a]=[],l=0;l<s;++l)(r=o[l])&&t.call(r,r.__data__,l,o)&&c.push(r);return new sn(i,this._parents)}function Nt(t){return new Array(t.length)}function Bt(){return new sn(this._enter||this._groups.map(Nt),this._parents)}function Pt(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function Ft(t){return function(){return t}}function jt(t,e,n,i,a,r){for(var o,s=0,c=e.length,l=r.length;s<l;++s)(o=e[s])?(o.__data__=r[s],i[s]=o):n[s]=new Pt(t,r[s]);for(;s<c;++s)(o=e[s])&&(a[s]=o)}function $t(t,e,n,i,a,r,o){var s,c,l,u=new Map,d=e.length,h=r.length,f=new Array(d);for(s=0;s<d;++s)(c=e[s])&&(f[s]=l=o.call(c,c.__data__,s,e)+"",u.has(l)?a[s]=c:u.set(l,c));for(s=0;s<h;++s)l=o.call(t,r[s],s,r)+"",(c=u.get(l))?(i[s]=c,c.__data__=r[s],u.delete(l)):n[s]=new Pt(t,r[s]);for(s=0;s<d;++s)(c=e[s])&&u.get(f[s])===c&&(a[s]=c)}function zt(t){return t.__data__}function Ht(t,e){if(!arguments.length)return Array.from(this,zt);var n=e?$t:jt,i=this._parents,a=this._groups;"function"!=typeof t&&(t=Ft(t));for(var r=a.length,o=new Array(r),s=new Array(r),c=new Array(r),l=0;l<r;++l){var u=i[l],d=a[l],h=d.length,f=Ut(t.call(u,u&&u.__data__,l,i)),g=f.length,p=s[l]=new Array(g),b=o[l]=new Array(g);n(u,d,p,b,c[l]=new Array(h),f,e);for(var m,y,v=0,w=0;v<g;++v)if(m=p[v]){for(v>=w&&(w=v+1);!(y=b[w])&&++w<g;);m._next=y||null}}return(o=new sn(o,i))._enter=s,o._exit=c,o}function Ut(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function Vt(){return new sn(this._exit||this._groups.map(Nt),this._parents)}function qt(t,e,n){var i=this.enter(),a=this,r=this.exit();return"function"==typeof t?(i=t(i))&&(i=i.selection()):i=i.append(t+""),null!=e&&(a=e(a))&&(a=a.selection()),null==n?r.remove():n(r),i&&a?i.merge(a).order():a}function Wt(t){for(var e=t.selection?t.selection():t,n=this._groups,i=e._groups,a=n.length,r=i.length,o=Math.min(a,r),s=new Array(a),c=0;c<o;++c)for(var l,u=n[c],d=i[c],h=u.length,f=s[c]=new Array(h),g=0;g<h;++g)(l=u[g]||d[g])&&(f[g]=l);for(;c<a;++c)s[c]=n[c];return new sn(s,this._parents)}function Yt(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var i,a=t[e],r=a.length-1,o=a[r];--r>=0;)(i=a[r])&&(o&&4^i.compareDocumentPosition(o)&&o.parentNode.insertBefore(i,o),o=i);return this}function Gt(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=Zt);for(var n=this._groups,i=n.length,a=new Array(i),r=0;r<i;++r){for(var o,s=n[r],c=s.length,l=a[r]=new Array(c),u=0;u<c;++u)(o=s[u])&&(l[u]=o);l.sort(e)}return new sn(a,this._parents).order()}function Zt(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function Kt(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Xt(){return Array.from(this)}function Jt(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i=t[e],a=0,r=i.length;a<r;++a){var o=i[a];if(o)return o}return null}function Qt(){let t=0;for(const e of this)++t;return t}function te(){return!this.node()}function ee(t){for(var e=this._groups,n=0,i=e.length;n<i;++n)for(var a,r=e[n],o=0,s=r.length;o<s;++o)(a=r[o])&&t.call(a,a.__data__,o,r);return this}function ne(t){return function(){this.removeAttribute(t)}}function ie(t){return function(){this.removeAttributeNS(t.space,t.local)}}function ae(t,e){return function(){this.setAttribute(t,e)}}function re(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function oe(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function se(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function ce(t,e){var n=ht(t);if(arguments.length<2){var i=this.node();return n.local?i.getAttributeNS(n.space,n.local):i.getAttribute(n)}return this.each((null==e?n.local?ie:ne:"function"==typeof e?n.local?se:oe:n.local?re:ae)(n,e))}function le(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function ue(t){return function(){this.style.removeProperty(t)}}function de(t,e,n){return function(){this.style.setProperty(t,e,n)}}function he(t,e,n){return function(){var i=e.apply(this,arguments);null==i?this.style.removeProperty(t):this.style.setProperty(t,i,n)}}function fe(t,e,n){return arguments.length>1?this.each((null==e?ue:"function"==typeof e?he:de)(t,e,n??"")):ge(this.node(),t)}function ge(t,e){return t.style.getPropertyValue(e)||le(t).getComputedStyle(t,null).getPropertyValue(e)}function pe(t){return function(){delete this[t]}}function be(t,e){return function(){this[t]=e}}function me(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function ye(t,e){return arguments.length>1?this.each((null==e?pe:"function"==typeof e?me:be)(t,e)):this.node()[t]}function ve(t){return t.trim().split(/^|\s+/)}function we(t){return t.classList||new xe(t)}function xe(t){this._node=t,this._names=ve(t.getAttribute("class")||"")}function Re(t,e){for(var n=we(t),i=-1,a=e.length;++i<a;)n.add(e[i])}function _e(t,e){for(var n=we(t),i=-1,a=e.length;++i<a;)n.remove(e[i])}function ke(t){return function(){Re(this,t)}}function Ee(t){return function(){_e(this,t)}}function Ce(t,e){return function(){(e.apply(this,arguments)?Re:_e)(this,t)}}function Se(t,e){var n=ve(t+"");if(arguments.length<2){for(var i=we(this.node()),a=-1,r=n.length;++a<r;)if(!i.contains(n[a]))return!1;return!0}return this.each(("function"==typeof e?Ce:e?ke:Ee)(n,e))}function Te(){this.textContent=""}function Ae(t){return function(){this.textContent=t}}function De(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function Ie(t){return arguments.length?this.each(null==t?Te:("function"==typeof t?De:Ae)(t)):this.node().textContent}function Le(){this.innerHTML=""}function Oe(t){return function(){this.innerHTML=t}}function Me(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function Ne(t){return arguments.length?this.each(null==t?Le:("function"==typeof t?Me:Oe)(t)):this.node().innerHTML}function Be(){this.nextSibling&&this.parentNode.appendChild(this)}function Pe(){return this.each(Be)}function Fe(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function je(){return this.each(Fe)}function $e(t){var e="function"==typeof t?t:pt(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))}function ze(){return null}function He(t,e){var n="function"==typeof t?t:pt(t),i=null==e?ze:"function"==typeof e?e:mt(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),i.apply(this,arguments)||null)}))}function Ue(){var t=this.parentNode;t&&t.removeChild(this)}function Ve(){return this.each(Ue)}function qe(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function We(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Ye(t){return this.select(t?We:qe)}function Ge(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Ze(t){return function(e){t.call(this,e,this.__data__)}}function Ke(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function Xe(t){return function(){var e=this.__on;if(e){for(var n,i=0,a=-1,r=e.length;i<r;++i)n=e[i],t.type&&n.type!==t.type||n.name!==t.name?e[++a]=n:this.removeEventListener(n.type,n.listener,n.options);++a?e.length=a:delete this.__on}}}function Je(t,e,n){return function(){var i,a=this.__on,r=Ze(e);if(a)for(var o=0,s=a.length;o<s;++o)if((i=a[o]).type===t.type&&i.name===t.name)return this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=r,i.options=n),void(i.value=e);this.addEventListener(t.type,r,n),i={type:t.type,name:t.name,value:e,listener:r,options:n},a?a.push(i):this.__on=[i]}}function Qe(t,e,n){var i,a,r=Ke(t+""),o=r.length;if(!(arguments.length<2)){for(s=e?Je:Xe,i=0;i<o;++i)this.each(s(r[i],e,n));return this}var s=this.node().__on;if(s)for(var c,l=0,u=s.length;l<u;++l)for(i=0,c=s[l];i<o;++i)if((a=r[i]).type===c.type&&a.name===c.name)return c.value}function tn(t,e,n){var i=le(t),a=i.CustomEvent;"function"==typeof a?a=new a(e,n):(a=i.document.createEvent("Event"),n?(a.initEvent(e,n.bubbles,n.cancelable),a.detail=n.detail):a.initEvent(e,!1,!1)),t.dispatchEvent(a)}function en(t,e){return function(){return tn(this,t,e)}}function nn(t,e){return function(){return tn(this,t,e.apply(this,arguments))}}function an(t,e){return this.each(("function"==typeof e?nn:en)(t,e))}function*rn(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i,a=t[e],r=0,o=a.length;r<o;++r)(i=a[r])&&(yield i)}Pt.prototype={constructor:Pt,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},xe.prototype={add:function(t){this._names.indexOf(t)<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}};var on=[null];function sn(t,e){this._groups=t,this._parents=e}function cn(){return new sn([[document.documentElement]],on)}function ln(){return this}function un(t){return"string"==typeof t?new sn([[document.querySelector(t)]],[document.documentElement]):new sn([[t]],on)}function dn(t){return"string"==typeof t?new sn([document.querySelectorAll(t)],[document.documentElement]):new sn([vt(t)],on)}function hn(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function fn(t,e){var n=Object.create(t.prototype);for(var i in e)n[i]=e[i];return n}function gn(){}sn.prototype=cn.prototype={constructor:sn,select:yt,selectAll:_t,selectChild:At,selectChildren:Ot,filter:Mt,data:Ht,enter:Bt,exit:Vt,join:qt,merge:Wt,selection:ln,order:Yt,sort:Gt,call:Kt,nodes:Xt,node:Jt,size:Qt,empty:te,each:ee,attr:ce,style:fe,property:ye,classed:Se,text:Ie,html:Ne,raise:Pe,lower:je,append:$e,insert:He,remove:Ve,clone:Ye,datum:Ge,on:Qe,dispatch:an,[Symbol.iterator]:rn};var pn=.7,bn=1/pn,mn="\\s*([+-]?\\d+)\\s*",yn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",vn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",wn=/^#([0-9a-f]{3,8})$/,xn=new RegExp(`^rgb\\(${mn},${mn},${mn}\\)$`),Rn=new RegExp(`^rgb\\(${vn},${vn},${vn}\\)$`),_n=new RegExp(`^rgba\\(${mn},${mn},${mn},${yn}\\)$`),kn=new RegExp(`^rgba\\(${vn},${vn},${vn},${yn}\\)$`),En=new RegExp(`^hsl\\(${yn},${vn},${vn}\\)$`),Cn=new RegExp(`^hsla\\(${yn},${vn},${vn},${yn}\\)$`),Sn={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Tn(){return this.rgb().formatHex()}function An(){return this.rgb().formatHex8()}function Dn(){return qn(this).formatHsl()}function In(){return this.rgb().formatRgb()}function Ln(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=wn.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?On(e):3===n?new Pn(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?Mn(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?Mn(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=xn.exec(t))?new Pn(e[1],e[2],e[3],1):(e=Rn.exec(t))?new Pn(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=_n.exec(t))?Mn(e[1],e[2],e[3],e[4]):(e=kn.exec(t))?Mn(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=En.exec(t))?Vn(e[1],e[2]/100,e[3]/100,1):(e=Cn.exec(t))?Vn(e[1],e[2]/100,e[3]/100,e[4]):Sn.hasOwnProperty(t)?On(Sn[t]):"transparent"===t?new Pn(NaN,NaN,NaN,0):null}function On(t){return new Pn(t>>16&255,t>>8&255,255&t,1)}function Mn(t,e,n,i){return i<=0&&(t=e=n=NaN),new Pn(t,e,n,i)}function Nn(t){return t instanceof gn||(t=Ln(t)),t?new Pn((t=t.rgb()).r,t.g,t.b,t.opacity):new Pn}function Bn(t,e,n,i){return 1===arguments.length?Nn(t):new Pn(t,e,n,i??1)}function Pn(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}function Fn(){return`#${Un(this.r)}${Un(this.g)}${Un(this.b)}`}function jn(){return`#${Un(this.r)}${Un(this.g)}${Un(this.b)}${Un(255*(isNaN(this.opacity)?1:this.opacity))}`}function $n(){const t=zn(this.opacity);return`${1===t?"rgb(":"rgba("}${Hn(this.r)}, ${Hn(this.g)}, ${Hn(this.b)}${1===t?")":`, ${t})`}`}function zn(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Hn(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Un(t){return((t=Hn(t))<16?"0":"")+t.toString(16)}function Vn(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Yn(t,e,n,i)}function qn(t){if(t instanceof Yn)return new Yn(t.h,t.s,t.l,t.opacity);if(t instanceof gn||(t=Ln(t)),!t)return new Yn;if(t instanceof Yn)return t;var e=(t=t.rgb()).r/255,n=t.g/255,i=t.b/255,a=Math.min(e,n,i),r=Math.max(e,n,i),o=NaN,s=r-a,c=(r+a)/2;return s?(o=e===r?(n-i)/s+6*(n<i):n===r?(i-e)/s+2:(e-n)/s+4,s/=c<.5?r+a:2-r-a,o*=60):s=c>0&&c<1?0:o,new Yn(o,s,c,t.opacity)}function Wn(t,e,n,i){return 1===arguments.length?qn(t):new Yn(t,e,n,i??1)}function Yn(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}function Gn(t){return(t=(t||0)%360)<0?t+360:t}function Zn(t){return Math.max(0,Math.min(1,t||0))}function Kn(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}hn(gn,Ln,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Tn,formatHex:Tn,formatHex8:An,formatHsl:Dn,formatRgb:In,toString:In}),hn(Pn,Bn,fn(gn,{brighter(t){return t=null==t?bn:Math.pow(bn,t),new Pn(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?pn:Math.pow(pn,t),new Pn(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Pn(Hn(this.r),Hn(this.g),Hn(this.b),zn(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:Fn,formatHex:Fn,formatHex8:jn,formatRgb:$n,toString:$n})),hn(Yn,Wn,fn(gn,{brighter(t){return t=null==t?bn:Math.pow(bn,t),new Yn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?pn:Math.pow(pn,t),new Yn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*e,a=2*n-i;return new Pn(Kn(t>=240?t-240:t+120,a,i),Kn(t,a,i),Kn(t<120?t+240:t-120,a,i),this.opacity)},clamp(){return new Yn(Gn(this.h),Zn(this.s),Zn(this.l),zn(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=zn(this.opacity);return`${1===t?"hsl(":"hsla("}${Gn(this.h)}, ${100*Zn(this.s)}%, ${100*Zn(this.l)}%${1===t?")":`, ${t})`}`}}));const Xn=Math.PI/180,Jn=180/Math.PI,Qn=18,ti=.96422,ei=1,ni=.82521,ii=4/29,ai=6/29,ri=3*ai*ai,oi=ai*ai*ai;function si(t){if(t instanceof li)return new li(t.l,t.a,t.b,t.opacity);if(t instanceof bi)return mi(t);t instanceof Pn||(t=Nn(t));var e,n,i=fi(t.r),a=fi(t.g),r=fi(t.b),o=ui((.2225045*i+.7168786*a+.0606169*r)/ei);return i===a&&a===r?e=n=o:(e=ui((.4360747*i+.3850649*a+.1430804*r)/ti),n=ui((.0139322*i+.0971045*a+.7141733*r)/ni)),new li(116*o-16,500*(e-o),200*(o-n),t.opacity)}function ci(t,e,n,i){return 1===arguments.length?si(t):new li(t,e,n,i??1)}function li(t,e,n,i){this.l=+t,this.a=+e,this.b=+n,this.opacity=+i}function ui(t){return t>oi?Math.pow(t,1/3):t/ri+ii}function di(t){return t>ai?t*t*t:ri*(t-ii)}function hi(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function fi(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function gi(t){if(t instanceof bi)return new bi(t.h,t.c,t.l,t.opacity);if(t instanceof li||(t=si(t)),0===t.a&&0===t.b)return new bi(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*Jn;return new bi(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function pi(t,e,n,i){return 1===arguments.length?gi(t):new bi(t,e,n,i??1)}function bi(t,e,n,i){this.h=+t,this.c=+e,this.l=+n,this.opacity=+i}function mi(t){if(isNaN(t.h))return new li(t.l,0,0,t.opacity);var e=t.h*Xn;return new li(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}hn(li,ci,fn(gn,{brighter(t){return new li(this.l+Qn*(t??1),this.a,this.b,this.opacity)},darker(t){return new li(this.l-Qn*(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 new Pn(hi(3.1338561*(e=ti*di(e))-1.6168667*(t=ei*di(t))-.4906146*(n=ni*di(n))),hi(-.9787684*e+1.9161415*t+.033454*n),hi(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}})),hn(bi,pi,fn(gn,{brighter(t){return new bi(this.h,this.c,this.l+Qn*(t??1),this.opacity)},darker(t){return new bi(this.h,this.c,this.l-Qn*(t??1),this.opacity)},rgb(){return mi(this).rgb()}}));const yi=t=>()=>t;function vi(t,e){return function(n){return t+n*e}}function wi(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(i){return Math.pow(t+i*e,n)}}function xi(t,e){var n=e-t;return n?vi(t,n>180||n<-180?n-360*Math.round(n/360):n):yi(isNaN(t)?e:t)}function Ri(t){return 1==(t=+t)?_i:function(e,n){return n-e?wi(e,n,t):yi(isNaN(e)?n:e)}}function _i(t,e){var n=e-t;return n?vi(t,n):yi(isNaN(t)?e:t)}const ki=function t(e){var n=Ri(e);function i(t,e){var i=n((t=Bn(t)).r,(e=Bn(e)).r),a=n(t.g,e.g),r=n(t.b,e.b),o=_i(t.opacity,e.opacity);return function(e){return t.r=i(e),t.g=a(e),t.b=r(e),t.opacity=o(e),t+""}}return i.gamma=t,i}(1);function Ei(t,e){e||(e=[]);var n,i=t?Math.min(e.length,t.length):0,a=e.slice();return function(r){for(n=0;n<i;++n)a[n]=t[n]*(1-r)+e[n]*r;return a}}function Ci(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Si(t,e){var n,i=e?e.length:0,a=t?Math.min(i,t.length):0,r=new Array(a),o=new Array(i);for(n=0;n<a;++n)r[n]=Bi(t[n],e[n]);for(;n<i;++n)o[n]=e[n];return function(t){for(n=0;n<a;++n)o[n]=r[n](t);return o}}function Ti(t,e){var n=new Date;return t=+t,e=+e,function(i){return n.setTime(t*(1-i)+e*i),n}}function Ai(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function Di(t,e){var n,i={},a={};for(n in(null===t||"object"!=typeof t)&&(t={}),(null===e||"object"!=typeof e)&&(e={}),e)n in t?i[n]=Bi(t[n],e[n]):a[n]=e[n];return function(t){for(n in i)a[n]=i[n](t);return a}}var Ii=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Li=new RegExp(Ii.source,"g");function Oi(t){return function(){return t}}function Mi(t){return function(e){return t(e)+""}}function Ni(t,e){var n,i,a,r=Ii.lastIndex=Li.lastIndex=0,o=-1,s=[],c=[];for(t+="",e+="";(n=Ii.exec(t))&&(i=Li.exec(e));)(a=i.index)>r&&(a=e.slice(r,a),s[o]?s[o]+=a:s[++o]=a),(n=n[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:Ai(n,i)})),r=Li.lastIndex;return r<e.length&&(a=e.slice(r),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?Mi(c[0].x):Oi(e):(e=c.length,function(t){for(var n,i=0;i<e;++i)s[(n=c[i]).i]=n.x(t);return s.join("")})}function Bi(t,e){var n,i=typeof e;return null==e||"boolean"===i?yi(e):("number"===i?Ai:"string"===i?(n=Ln(e))?(e=n,ki):Ni:e instanceof Ln?ki:e instanceof Date?Ti:Ci(e)?Ei:Array.isArray(e)?Si:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?Di:Ai)(t,e)}function Pi(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var Fi,ji=180/Math.PI,$i={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function zi(t,e,n,i,a,r){var o,s,c;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(c=t*n+e*i)&&(n-=t*c,i-=e*c),(s=Math.sqrt(n*n+i*i))&&(n/=s,i/=s,c/=s),t*i<e*n&&(t=-t,e=-e,c=-c,o=-o),{translateX:a,translateY:r,rotate:Math.atan2(e,t)*ji,skewX:Math.atan(c)*ji,scaleX:o,scaleY:s}}function Hi(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?$i:zi(e.a,e.b,e.c,e.d,e.e,e.f)}function Ui(t){return null!=t&&(Fi||(Fi=document.createElementNS("http://www.w3.org/2000/svg","g")),Fi.setAttribute("transform",t),t=Fi.transform.baseVal.consolidate())?zi((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):$i}function Vi(t,e,n,i){function a(t){return t.length?t.pop()+" ":""}function r(t,i,a,r,o,s){if(t!==a||i!==r){var c=o.push("translate(",null,e,null,n);s.push({i:c-4,x:Ai(t,a)},{i:c-2,x:Ai(i,r)})}else(a||r)&&o.push("translate("+a+e+r+n)}function o(t,e,n,r){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),r.push({i:n.push(a(n)+"rotate(",null,i)-2,x:Ai(t,e)})):e&&n.push(a(n)+"rotate("+e+i)}function s(t,e,n,r){t!==e?r.push({i:n.push(a(n)+"skewX(",null,i)-2,x:Ai(t,e)}):e&&n.push(a(n)+"skewX("+e+i)}function c(t,e,n,i,r,o){if(t!==n||e!==i){var s=r.push(a(r)+"scale(",null,",",null,")");o.push({i:s-4,x:Ai(t,n)},{i:s-2,x:Ai(e,i)})}else(1!==n||1!==i)&&r.push(a(r)+"scale("+n+","+i+")")}return function(e,n){var i=[],a=[];return e=t(e),n=t(n),r(e.translateX,e.translateY,n.translateX,n.translateY,i,a),o(e.rotate,n.rotate,i,a),s(e.skewX,n.skewX,i,a),c(e.scaleX,e.scaleY,n.scaleX,n.scaleY,i,a),e=n=null,function(t){for(var e,n=-1,r=a.length;++n<r;)i[(e=a[n]).i]=e.x(t);return i.join("")}}}var qi=Vi(Hi,"px, ","px)","deg)"),Wi=Vi(Ui,", ",")",")");function Yi(t){return function(e,n){var i=t((e=pi(e)).h,(n=pi(n)).h),a=_i(e.c,n.c),r=_i(e.l,n.l),o=_i(e.opacity,n.opacity);return function(t){return e.h=i(t),e.c=a(t),e.l=r(t),e.opacity=o(t),e+""}}}const Gi=Yi(xi);var Zi,Ki,Xi=0,Ji=0,Qi=0,ta=1e3,ea=0,na=0,ia=0,aa="object"==typeof performance&&performance.now?performance:Date,ra="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function oa(){return na||(ra(sa),na=aa.now()+ia)}function sa(){na=0}function ca(){this._call=this._time=this._next=null}function la(t,e,n){var i=new ca;return i.restart(t,e,n),i}function ua(){oa(),++Xi;for(var t,e=Zi;e;)(t=na-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Xi}function da(){na=(ea=aa.now())+ia,Xi=Ji=0;try{ua()}finally{Xi=0,fa(),na=0}}function ha(){var t=aa.now(),e=t-ea;e>ta&&(ia-=e,ea=t)}function fa(){for(var t,e,n=Zi,i=1/0;n;)n._call?(i>n._time&&(i=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:Zi=e);Ki=t,ga(i)}function ga(t){Xi||(Ji&&(Ji=clearTimeout(Ji)),t-na>24?(t<1/0&&(Ji=setTimeout(da,t-aa.now()-ia)),Qi&&(Qi=clearInterval(Qi))):(Qi||(ea=aa.now(),Qi=setInterval(ha,ta)),Xi=1,ra(da)))}function pa(t,e,n){var i=new ca;return e=null==e?0:+e,i.restart((n=>{i.stop(),t(n+e)}),e,n),i}ca.prototype=la.prototype={constructor:ca,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?oa():+n)+(null==e?0:+e),!this._next&&Ki!==this&&(Ki?Ki._next=this:Zi=this,Ki=this),this._call=t,this._time=n,ga()},stop:function(){this._call&&(this._call=null,this._time=1/0,ga())}};var ba=rt("start","end","cancel","interrupt"),ma=[],ya=0,va=1,wa=2,xa=3,Ra=4,_a=5,ka=6;function Ea(t,e,n,i,a,r){var o=t.__transition;if(o){if(n in o)return}else t.__transition={};Aa(t,n,{name:e,index:i,group:a,on:ba,tween:ma,time:r.time,delay:r.delay,duration:r.duration,ease:r.ease,timer:null,state:ya})}function Ca(t,e){var n=Ta(t,e);if(n.state>ya)throw new Error("too late; already scheduled");return n}function Sa(t,e){var n=Ta(t,e);if(n.state>xa)throw new Error("too late; already running");return n}function Ta(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Aa(t,e,n){var i,a=t.__transition;function r(t){n.state=va,n.timer.restart(o,n.delay,n.time),n.delay<=t&&o(t-n.delay)}function o(r){var l,u,d,h;if(n.state!==va)return c();for(l in a)if((h=a[l]).name===n.name){if(h.state===xa)return pa(o);h.state===Ra?(h.state=ka,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete a[l]):+l<e&&(h.state=ka,h.timer.stop(),h.on.call("cancel",t,t.__data__,h.index,h.group),delete a[l])}if(pa((function(){n.state===xa&&(n.state=Ra,n.timer.restart(s,n.delay,n.time),s(r))})),n.state=wa,n.on.call("start",t,t.__data__,n.index,n.group),n.state===wa){for(n.state=xa,i=new Array(d=n.tween.length),l=0,u=-1;l<d;++l)(h=n.tween[l].value.call(t,t.__data__,n.index,n.group))&&(i[++u]=h);i.length=u+1}}function s(e){for(var a=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(c),n.state=_a,1),r=-1,o=i.length;++r<o;)i[r].call(t,a);n.state===_a&&(n.on.call("end",t,t.__data__,n.index,n.group),c())}function c(){for(var i in n.state=ka,n.timer.stop(),delete a[e],a)return;delete t.__transition}a[e]=n,n.timer=la(r,0,n.time)}function Da(t,e){var n,i,a,r=t.__transition,o=!0;if(r){for(a in e=null==e?null:e+"",r)(n=r[a]).name===e?(i=n.state>wa&&n.state<_a,n.state=ka,n.timer.stop(),n.on.call(i?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete r[a]):o=!1;o&&delete t.__transition}}function Ia(t){return this.each((function(){Da(this,t)}))}function La(t,e){var n,i;return function(){var a=Sa(this,t),r=a.tween;if(r!==n)for(var o=0,s=(i=n=r).length;o<s;++o)if(i[o].name===e){(i=i.slice()).splice(o,1);break}a.tween=i}}function Oa(t,e,n){var i,a;if("function"!=typeof n)throw new Error;return function(){var r=Sa(this,t),o=r.tween;if(o!==i){a=(i=o).slice();for(var s={name:e,value:n},c=0,l=a.length;c<l;++c)if(a[c].name===e){a[c]=s;break}c===l&&a.push(s)}r.tween=a}}function Ma(t,e){var n=this._id;if(t+="",arguments.length<2){for(var i,a=Ta(this.node(),n).tween,r=0,o=a.length;r<o;++r)if((i=a[r]).name===t)return i.value;return null}return this.each((null==e?La:Oa)(n,t,e))}function Na(t,e,n){var i=t._id;return t.each((function(){var t=Sa(this,i);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return Ta(t,i).value[e]}}function Ba(t,e){var n;return("number"==typeof e?Ai:e instanceof Ln?ki:(n=Ln(e))?(e=n,ki):Ni)(t,e)}function Pa(t){return function(){this.removeAttribute(t)}}function Fa(t){return function(){this.removeAttributeNS(t.space,t.local)}}function ja(t,e,n){var i,a,r=n+"";return function(){var o=this.getAttribute(t);return o===r?null:o===i?a:a=e(i=o,n)}}function $a(t,e,n){var i,a,r=n+"";return function(){var o=this.getAttributeNS(t.space,t.local);return o===r?null:o===i?a:a=e(i=o,n)}}function za(t,e,n){var i,a,r;return function(){var o,s,c=n(this);return null==c?void this.removeAttribute(t):(o=this.getAttribute(t))===(s=c+"")?null:o===i&&s===a?r:(a=s,r=e(i=o,c))}}function Ha(t,e,n){var i,a,r;return function(){var o,s,c=n(this);return null==c?void this.removeAttributeNS(t.space,t.local):(o=this.getAttributeNS(t.space,t.local))===(s=c+"")?null:o===i&&s===a?r:(a=s,r=e(i=o,c))}}function Ua(t,e){var n=ht(t),i="transform"===n?Wi:Ba;return this.attrTween(t,"function"==typeof e?(n.local?Ha:za)(n,i,Na(this,"attr."+t,e)):null==e?(n.local?Fa:Pa)(n):(n.local?$a:ja)(n,i,e))}function Va(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function qa(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function Wa(t,e){var n,i;function a(){var a=e.apply(this,arguments);return a!==i&&(n=(i=a)&&qa(t,a)),n}return a._value=e,a}function Ya(t,e){var n,i;function a(){var a=e.apply(this,arguments);return a!==i&&(n=(i=a)&&Va(t,a)),n}return a._value=e,a}function Ga(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var i=ht(t);return this.tween(n,(i.local?Wa:Ya)(i,e))}function Za(t,e){return function(){Ca(this,t).delay=+e.apply(this,arguments)}}function Ka(t,e){return e=+e,function(){Ca(this,t).delay=e}}function Xa(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Za:Ka)(e,t)):Ta(this.node(),e).delay}function Ja(t,e){return function(){Sa(this,t).duration=+e.apply(this,arguments)}}function Qa(t,e){return e=+e,function(){Sa(this,t).duration=e}}function tr(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Ja:Qa)(e,t)):Ta(this.node(),e).duration}function er(t,e){if("function"!=typeof e)throw new Error;return function(){Sa(this,t).ease=e}}function nr(t){var e=this._id;return arguments.length?this.each(er(e,t)):Ta(this.node(),e).ease}function ir(t,e){return function(){var n=e.apply(this,arguments);if("function"!=typeof n)throw new Error;Sa(this,t).ease=n}}function ar(t){if("function"!=typeof t)throw new Error;return this.each(ir(this._id,t))}function rr(t){"function"!=typeof t&&(t=kt(t));for(var e=this._groups,n=e.length,i=new Array(n),a=0;a<n;++a)for(var r,o=e[a],s=o.length,c=i[a]=[],l=0;l<s;++l)(r=o[l])&&t.call(r,r.__data__,l,o)&&c.push(r);return new Mr(i,this._parents,this._name,this._id)}function or(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,i=e.length,a=n.length,r=Math.min(i,a),o=new Array(i),s=0;s<r;++s)for(var c,l=e[s],u=n[s],d=l.length,h=o[s]=new Array(d),f=0;f<d;++f)(c=l[f]||u[f])&&(h[f]=c);for(;s<i;++s)o[s]=e[s];return new Mr(o,this._parents,this._name,this._id)}function sr(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))}function cr(t,e,n){var i,a,r=sr(e)?Ca:Sa;return function(){var o=r(this,t),s=o.on;s!==i&&(a=(i=s).copy()).on(e,n),o.on=a}}function lr(t,e){var n=this._id;return arguments.length<2?Ta(this.node(),n).on.on(t):this.each(cr(n,t,e))}function ur(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function dr(){return this.on("end.remove",ur(this._id))}function hr(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=mt(t));for(var i=this._groups,a=i.length,r=new Array(a),o=0;o<a;++o)for(var s,c,l=i[o],u=l.length,d=r[o]=new Array(u),h=0;h<u;++h)(s=l[h])&&(c=t.call(s,s.__data__,h,l))&&("__data__"in s&&(c.__data__=s.__data__),d[h]=c,Ea(d[h],e,n,h,d,Ta(s,n)));return new Mr(r,this._parents,e,n)}function fr(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=xt(t));for(var i=this._groups,a=i.length,r=[],o=[],s=0;s<a;++s)for(var c,l=i[s],u=l.length,d=0;d<u;++d)if(c=l[d]){for(var h,f=t.call(c,c.__data__,d,l),g=Ta(c,n),p=0,b=f.length;p<b;++p)(h=f[p])&&Ea(h,e,n,p,f,g);r.push(f),o.push(c)}return new Mr(r,o,e,n)}var gr=cn.prototype.constructor;function pr(){return new gr(this._groups,this._parents)}function br(t,e){var n,i,a;return function(){var r=ge(this,t),o=(this.style.removeProperty(t),ge(this,t));return r===o?null:r===n&&o===i?a:a=e(n=r,i=o)}}function mr(t){return function(){this.style.removeProperty(t)}}function yr(t,e,n){var i,a,r=n+"";return function(){var o=ge(this,t);return o===r?null:o===i?a:a=e(i=o,n)}}function vr(t,e,n){var i,a,r;return function(){var o=ge(this,t),s=n(this),c=s+"";return null==s&&(this.style.removeProperty(t),c=s=ge(this,t)),o===c?null:o===i&&c===a?r:(a=c,r=e(i=o,s))}}function wr(t,e){var n,i,a,r,o="style."+e,s="end."+o;return function(){var c=Sa(this,t),l=c.on,u=null==c.value[o]?r||(r=mr(e)):void 0;(l!==n||a!==u)&&(i=(n=l).copy()).on(s,a=u),c.on=i}}function xr(t,e,n){var i="transform"==(t+="")?qi:Ba;return null==e?this.styleTween(t,br(t,i)).on("end.style."+t,mr(t)):"function"==typeof e?this.styleTween(t,vr(t,i,Na(this,"style."+t,e))).each(wr(this._id,t)):this.styleTween(t,yr(t,i,e),n).on("end.style."+t,null)}function Rr(t,e,n){return function(i){this.style.setProperty(t,e.call(this,i),n)}}function _r(t,e,n){var i,a;function r(){var r=e.apply(this,arguments);return r!==a&&(i=(a=r)&&Rr(t,r,n)),i}return r._value=e,r}function kr(t,e,n){var i="style."+(t+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==e)return this.tween(i,null);if("function"!=typeof e)throw new Error;return this.tween(i,_r(t,e,n??""))}function Er(t){return function(){this.textContent=t}}function Cr(t){return function(){var e=t(this);this.textContent=e??""}}function Sr(t){return this.tween("text","function"==typeof t?Cr(Na(this,"text",t)):Er(null==t?"":t+""))}function Tr(t){return function(e){this.textContent=t.call(this,e)}}function Ar(t){var e,n;function i(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&Tr(i)),e}return i._value=t,i}function Dr(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,Ar(t))}function Ir(){for(var t=this._name,e=this._id,n=Nr(),i=this._groups,a=i.length,r=0;r<a;++r)for(var o,s=i[r],c=s.length,l=0;l<c;++l)if(o=s[l]){var u=Ta(o,e);Ea(o,t,n,l,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Mr(i,this._parents,t,n)}function Lr(){var t,e,n=this,i=n._id,a=n.size();return new Promise((function(r,o){var s={value:o},c={value:function(){0==--a&&r()}};n.each((function(){var n=Sa(this,i),a=n.on;a!==t&&((e=(t=a).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(c)),n.on=e})),0===a&&r()}))}var Or=0;function Mr(t,e,n,i){this._groups=t,this._parents=e,this._name=n,this._id=i}function Nr(){return++Or}var Br=cn.prototype;function Pr(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}Mr.prototype={constructor:Mr,select:hr,selectAll:fr,selectChild:Br.selectChild,selectChildren:Br.selectChildren,filter:rr,merge:or,selection:pr,transition:Ir,call:Br.call,nodes:Br.nodes,node:Br.node,size:Br.size,empty:Br.empty,each:Br.each,on:lr,attr:Ua,attrTween:Ga,style:xr,styleTween:kr,text:Sr,textTween:Dr,remove:dr,tween:Ma,delay:Xa,duration:tr,ease:nr,easeVarying:ar,end:Lr,[Symbol.iterator]:Br[Symbol.iterator]};var Fr={time:null,delay:0,duration:250,ease:Pr};function jr(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}function $r(t){var e,n;t instanceof Mr?(e=t._id,t=t._name):(e=Nr(),(n=Fr).time=oa(),t=null==t?null:t+"");for(var i=this._groups,a=i.length,r=0;r<a;++r)for(var o,s=i[r],c=s.length,l=0;l<c;++l)(o=s[l])&&Ea(o,t,e,l,s,n||jr(o,e));return new Mr(i,this._parents,t,e)}cn.prototype.interrupt=Ia,cn.prototype.transition=$r;const zr=Math.PI,Hr=2*zr,Ur=1e-6,Vr=Hr-Ur;function qr(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function Wr(){return new qr}function Yr(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function Gr(t,e){return fetch(t,e).then(Yr)}function Zr(t){return(e,n)=>Gr(e,n).then((e=>(new DOMParser).parseFromString(e,t)))}qr.prototype=Wr.prototype={constructor:qr,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,i){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+i)},bezierCurveTo:function(t,e,n,i,a,r){this._+="C"+ +t+","+ +e+","+ +n+","+ +i+","+(this._x1=+a)+","+(this._y1=+r)},arcTo:function(t,e,n,i,a){t=+t,e=+e,n=+n,i=+i,a=+a;var r=this._x1,o=this._y1,s=n-t,c=i-e,l=r-t,u=o-e,d=l*l+u*u;if(a<0)throw new Error("negative radius: "+a);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(d>Ur)if(Math.abs(u*s-c*l)>Ur&&a){var h=n-r,f=i-o,g=s*s+c*c,p=h*h+f*f,b=Math.sqrt(g),m=Math.sqrt(d),y=a*Math.tan((zr-Math.acos((g+d-p)/(2*b*m)))/2),v=y/m,w=y/b;Math.abs(v-1)>Ur&&(this._+="L"+(t+v*l)+","+(e+v*u)),this._+="A"+a+","+a+",0,0,"+ +(u*h>l*f)+","+(this._x1=t+w*s)+","+(this._y1=e+w*c)}else this._+="L"+(this._x1=t)+","+(this._y1=e)},arc:function(t,e,n,i,a,r){t=+t,e=+e,r=!!r;var o=(n=+n)*Math.cos(i),s=n*Math.sin(i),c=t+o,l=e+s,u=1^r,d=r?i-a:a-i;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+c+","+l:(Math.abs(this._x1-c)>Ur||Math.abs(this._y1-l)>Ur)&&(this._+="L"+c+","+l),n&&(d<0&&(d=d%Hr+Hr),d>Vr?this._+="A"+n+","+n+",0,1,"+u+","+(t-o)+","+(e-s)+"A"+n+","+n+",0,1,"+u+","+(this._x1=c)+","+(this._y1=l):d>Ur&&(this._+="A"+n+","+n+",0,"+ +(d>=zr)+","+u+","+(this._x1=t+n*Math.cos(a))+","+(this._y1=e+n*Math.sin(a))))},rect:function(t,e,n,i){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +i+"h"+-n+"Z"},toString:function(){return this._}};var Kr=Zr("image/svg+xml");function Xr(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Jr(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,i=t.slice(0,n);return[i.length>1?i[0]+i.slice(2):i,+t.slice(n+1)]}function Qr(t){return(t=Jr(Math.abs(t)))?t[1]:NaN}function to(t,e){return function(n,i){for(var a=n.length,r=[],o=0,s=t[0],c=0;a>0&&s>0&&(c+s+1>i&&(s=Math.max(1,i-c)),r.push(n.substring(a-=s,a+s)),!((c+=s+1)>i));)s=t[o=(o+1)%t.length];return r.reverse().join(e)}}function eo(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}var no,io=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ao(t){if(!(e=io.exec(t)))throw new Error("invalid format: "+t);var e;return new ro({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function ro(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function oo(t){t:for(var e,n=t.length,i=1,a=-1;i<n;++i)switch(t[i]){case".":a=e=i;break;case"0":0===a&&(a=i),e=i;break;default:if(!+t[i])break t;a>0&&(a=0)}return a>0?t.slice(0,a)+t.slice(e+1):t}function so(t,e){var n=Jr(t,e);if(!n)return t+"";var i=n[0],a=n[1],r=a-(no=3*Math.max(-8,Math.min(8,Math.floor(a/3))))+1,o=i.length;return r===o?i:r>o?i+new Array(r-o+1).join("0"):r>0?i.slice(0,r)+"."+i.slice(r):"0."+new Array(1-r).join("0")+Jr(t,Math.max(0,e+r-1))[0]}function co(t,e){var n=Jr(t,e);if(!n)return t+"";var i=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+i:i.length>a+1?i.slice(0,a+1)+"."+i.slice(a+1):i+new Array(a-i.length+2).join("0")}ao.prototype=ro.prototype,ro.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const lo={"%":(t,e)=>(100*t).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:Xr,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>co(100*t,e),r:co,s:so,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function uo(t){return t}var ho,fo,go,po=Array.prototype.map,bo=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function mo(t){var e=void 0===t.grouping||void 0===t.thousands?uo:to(po.call(t.grouping,Number),t.thousands+""),n=void 0===t.currency?"":t.currency[0]+"",i=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",r=void 0===t.numerals?uo:eo(po.call(t.numerals,String)),o=void 0===t.percent?"%":t.percent+"",s=void 0===t.minus?"\u2212":t.minus+"",c=void 0===t.nan?"NaN":t.nan+"";function l(t){var l=(t=ao(t)).fill,u=t.align,d=t.sign,h=t.symbol,f=t.zero,g=t.width,p=t.comma,b=t.precision,m=t.trim,y=t.type;"n"===y?(p=!0,y="g"):lo[y]||(void 0===b&&(b=12),m=!0,y="g"),(f||"0"===l&&"="===u)&&(f=!0,l="0",u="=");var v="$"===h?n:"#"===h&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",w="$"===h?i:/[%p]/.test(y)?o:"",x=lo[y],R=/[defgprs%]/.test(y);function _(t){var n,i,o,h=v,_=w;if("c"===y)_=x(t)+_,t="";else{var k=(t=+t)<0||1/t<0;if(t=isNaN(t)?c:x(Math.abs(t),b),m&&(t=oo(t)),k&&0==+t&&"+"!==d&&(k=!1),h=(k?"("===d?d:s:"-"===d||"("===d?"":d)+h,_=("s"===y?bo[8+no/3]:"")+_+(k&&"("===d?")":""),R)for(n=-1,i=t.length;++n<i;)if(48>(o=t.charCodeAt(n))||o>57){_=(46===o?a+t.slice(n+1):t.slice(n))+_,t=t.slice(0,n);break}}p&&!f&&(t=e(t,1/0));var E=h.length+t.length+_.length,C=E<g?new Array(g-E+1).join(l):"";switch(p&&f&&(t=e(C+t,C.length?g-_.length:1/0),C=""),u){case"<":t=h+t+_+C;break;case"=":t=h+C+t+_;break;case"^":t=C.slice(0,E=C.length>>1)+h+t+_+C.slice(E);break;default:t=C+h+t+_}return r(t)}return b=void 0===b?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b)),_.toString=function(){return t+""},_}function u(t,e){var n=l(((t=ao(t)).type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(Qr(e)/3))),a=Math.pow(10,-i),r=bo[8+i/3];return function(t){return n(a*t)+r}}return{format:l,formatPrefix:u}}function yo(t){return ho=mo(t),fo=ho.format,go=ho.formatPrefix,ho}function vo(t){return Math.max(0,-Qr(Math.abs(t)))}function wo(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Qr(e)/3)))-Qr(Math.abs(t)))}function xo(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Qr(e)-Qr(t))+1}function Ro(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}yo({thousands:",",grouping:[3],currency:["$",""]});const _o=Symbol("implicit");function ko(){var t=new I,e=[],n=[],i=_o;function a(a){let r=t.get(a);if(void 0===r){if(i!==_o)return i;t.set(a,r=e.push(a)-1)}return n[r%n.length]}return a.domain=function(n){if(!arguments.length)return e.slice();e=[],t=new I;for(const i of n)t.has(i)||t.set(i,e.push(i)-1);return a},a.range=function(t){return arguments.length?(n=Array.from(t),a):n.slice()},a.unknown=function(t){return arguments.length?(i=t,a):i},a.copy=function(){return ko(e,n).unknown(i)},Ro.apply(a,arguments),a}function Eo(t){return function(){return t}}function Co(t){return+t}var So=[0,1];function To(t){return t}function Ao(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:Eo(isNaN(e)?NaN:.5)}function Do(t,e){var n;return t>e&&(n=t,t=e,e=n),function(n){return Math.max(t,Math.min(e,n))}}function Io(t,e,n){var i=t[0],a=t[1],r=e[0],o=e[1];return a<i?(i=Ao(a,i),r=n(o,r)):(i=Ao(i,a),r=n(r,o)),function(t){return r(i(t))}}function Lo(t,e,n){var i=Math.min(t.length,e.length)-1,a=new Array(i),r=new Array(i),o=-1;for(t[i]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++o<i;)a[o]=Ao(t[o],t[o+1]),r[o]=n(e[o],e[o+1]);return function(e){var n=D(t,e,1,i)-1;return r[n](a[n](e))}}function Oo(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Mo(){var t,e,n,i,a,r,o=So,s=So,c=Bi,l=To;function u(){var t=Math.min(o.length,s.length);return l!==To&&(l=Do(o[0],o[t-1])),i=t>2?Lo:Io,a=r=null,d}function d(e){return null==e||isNaN(e=+e)?n:(a||(a=i(o.map(t),s,c)))(t(l(e)))}return d.invert=function(n){return l(e((r||(r=i(s,o.map(t),Ai)))(n)))},d.domain=function(t){return arguments.length?(o=Array.from(t,Co),u()):o.slice()},d.range=function(t){return arguments.length?(s=Array.from(t),u()):s.slice()},d.rangeRound=function(t){return s=Array.from(t),c=Pi,u()},d.clamp=function(t){return arguments.length?(l=!!t||To,u()):l!==To},d.interpolate=function(t){return arguments.length?(c=t,u()):c},d.unknown=function(t){return arguments.length?(n=t,d):n},function(n,i){return t=n,e=i,u()}}function No(){return Mo()(To,To)}function Bo(t,e,n,i){var a,r=z(t,e,n);switch((i=ao(i??",f")).type){case"s":var o=Math.max(Math.abs(t),Math.abs(e));return null==i.precision&&!isNaN(a=wo(r,o))&&(i.precision=a),go(i,o);case"":case"e":case"g":case"p":case"r":null==i.precision&&!isNaN(a=xo(r,Math.max(Math.abs(t),Math.abs(e))))&&(i.precision=a-("e"===i.type));break;case"f":case"%":null==i.precision&&!isNaN(a=vo(r))&&(i.precision=a-2*("%"===i.type))}return fo(i)}function Po(t){var e=t.domain;return t.ticks=function(t){var n=e();return j(n[0],n[n.length-1],t??10)},t.tickFormat=function(t,n){var i=e();return Bo(i[0],i[i.length-1],t??10,n)},t.nice=function(n){null==n&&(n=10);var i,a,r=e(),o=0,s=r.length-1,c=r[o],l=r[s],u=10;for(l<c&&(a=c,c=l,l=a,a=o,o=s,s=a);u-- >0;){if((a=$(c,l,n))===i)return r[o]=c,r[s]=l,e(r);if(a>0)c=Math.floor(c/a)*a,l=Math.ceil(l/a)*a;else{if(!(a<0))break;c=Math.ceil(c*a)/a,l=Math.floor(l*a)/a}i=a}return t},t}function Fo(){var t=No();return t.copy=function(){return Oo(t,Fo())},Ro.apply(t,arguments),Po(t)}function jo(t,e){var n,i=0,a=(t=t.slice()).length-1,r=t[i],o=t[a];return o<r&&(n=i,i=a,a=n,n=r,r=o,o=n),t[i]=e.floor(r),t[a]=e.ceil(o),t}var $o=new Date,zo=new Date;function Ho(t,e,n,i){function a(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return a.floor=function(e){return t(e=new Date(+e)),e},a.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},a.round=function(t){var e=a(t),n=a.ceil(t);return t-e<n-t?e:n},a.offset=function(t,n){return e(t=new Date(+t),null==n?1:Math.floor(n)),t},a.range=function(n,i,r){var o,s=[];if(n=a.ceil(n),r=null==r?1:Math.floor(r),!(n<i&&r>0))return s;do{s.push(o=new Date(+n)),e(n,r),t(n)}while(o<n&&n<i);return s},a.filter=function(n){return Ho((function(e){if(e>=e)for(;t(e),!n(e);)e.setTime(e-1)}),(function(t,i){if(t>=t)if(i<0)for(;++i<=0;)for(;e(t,-1),!n(t););else for(;--i>=0;)for(;e(t,1),!n(t););}))},n&&(a.count=function(e,i){return $o.setTime(+e),zo.setTime(+i),t($o),t(zo),Math.floor(n($o,zo))},a.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?a.filter(i?function(e){return i(e)%t==0}:function(e){return a.count(0,e)%t==0}):a:null}),a}var Uo=Ho((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));Uo.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Ho((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t})):Uo:null};const Vo=Uo;Uo.range;const qo=1e3,Wo=60*qo,Yo=60*Wo,Go=24*Yo,Zo=7*Go,Ko=30*Go,Xo=365*Go;var Jo=Ho((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+e*qo)}),(function(t,e){return(e-t)/qo}),(function(t){return t.getUTCSeconds()}));const Qo=Jo;Jo.range;var ts=Ho((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*qo)}),(function(t,e){t.setTime(+t+e*Wo)}),(function(t,e){return(e-t)/Wo}),(function(t){return t.getMinutes()}));const es=ts;ts.range;var ns=Ho((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*qo-t.getMinutes()*Wo)}),(function(t,e){t.setTime(+t+e*Yo)}),(function(t,e){return(e-t)/Yo}),(function(t){return t.getHours()}));const is=ns;ns.range;var as=Ho((t=>t.setHours(0,0,0,0)),((t,e)=>t.setDate(t.getDate()+e)),((t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Wo)/Go),(t=>t.getDate()-1));const rs=as;function os(t){return Ho((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Wo)/Zo}))}as.range;var ss=os(0),cs=os(1),ls=os(2),us=os(3),ds=os(4),hs=os(5),fs=os(6);ss.range,cs.range,ls.range,us.range,ds.range,hs.range,fs.range;var gs=Ho((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()}));const ps=gs;gs.range;var bs=Ho((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));bs.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Ho((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null};const ms=bs;bs.range;var ys=Ho((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+e*Wo)}),(function(t,e){return(e-t)/Wo}),(function(t){return t.getUTCMinutes()}));const vs=ys;ys.range;var ws=Ho((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+e*Yo)}),(function(t,e){return(e-t)/Yo}),(function(t){return t.getUTCHours()}));const xs=ws;ws.range;var Rs=Ho((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/Go}),(function(t){return t.getUTCDate()-1}));const _s=Rs;function ks(t){return Ho((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/Zo}))}Rs.range;var Es=ks(0),Cs=ks(1),Ss=ks(2),Ts=ks(3),As=ks(4),Ds=ks(5),Is=ks(6);Es.range,Cs.range,Ss.range,Ts.range,As.range,Ds.range,Is.range;var Ls=Ho((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()}));const Os=Ls;Ls.range;var Ms=Ho((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));Ms.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Ho((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null};const Ns=Ms;function Bs(t,e,n,i,a,r){const o=[[Qo,1,qo],[Qo,5,5*qo],[Qo,15,15*qo],[Qo,30,30*qo],[r,1,Wo],[r,5,5*Wo],[r,15,15*Wo],[r,30,30*Wo],[a,1,Yo],[a,3,3*Yo],[a,6,6*Yo],[a,12,12*Yo],[i,1,Go],[i,2,2*Go],[n,1,Zo],[e,1,Ko],[e,3,3*Ko],[t,1,Xo]];function s(t,e,n){const i=e<t;i&&([t,e]=[e,t]);const a=n&&"function"==typeof n.range?n:c(t,e,n),r=a?a.range(t,+e+1):[];return i?r.reverse():r}function c(e,n,i){const a=Math.abs(n-e)/i,r=C((([,,t])=>t)).right(o,a);if(r===o.length)return t.every(z(e/Xo,n/Xo,i));if(0===r)return Vo.every(Math.max(z(e,n,i),1));const[s,c]=o[a/o[r-1][2]<o[r][2]/a?r-1:r];return s.every(c)}return[s,c]}Ms.range,Bs(Ns,Os,Es,_s,xs,vs);const[Ps,Fs]=Bs(ms,ps,ss,rs,is,es);function js(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function $s(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function zs(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Hs(t){var e=t.dateTime,n=t.date,i=t.time,a=t.periods,r=t.days,o=t.shortDays,s=t.months,c=t.shortMonths,l=Xs(a),u=Js(a),d=Xs(r),h=Js(r),f=Xs(o),g=Js(o),p=Xs(s),b=Js(s),m=Xs(c),y=Js(c),v={a:O,A:M,b:N,B:B,c:null,d:vc,e:vc,f:kc,g:Nc,G:Pc,H:wc,I:xc,j:Rc,L:_c,m:Ec,M:Cc,p:P,q:F,Q:ol,s:sl,S:Sc,u:Tc,U:Ac,V:Ic,w:Lc,W:Oc,x:null,X:null,y:Mc,Y:Bc,Z:Fc,"%":rl},w={a:j,A:$,b:z,B:H,c:null,d:jc,e:jc,f:Vc,g:el,G:il,H:$c,I:zc,j:Hc,L:Uc,m:qc,M:Wc,p:U,q:V,Q:ol,s:sl,S:Yc,u:Gc,U:Zc,V:Xc,w:Jc,W:Qc,x:null,X:null,y:tl,Y:nl,Z:al,"%":rl},x={a:C,A:S,b:T,B:A,c:D,d:lc,e:lc,f:pc,g:rc,G:ac,H:dc,I:dc,j:uc,L:gc,m:cc,M:hc,p:E,q:sc,Q:mc,s:yc,S:fc,u:tc,U:ec,V:nc,w:Qs,W:ic,x:I,X:L,y:rc,Y:ac,Z:oc,"%":bc};function R(t,e){return function(n){var i,a,r,o=[],s=-1,c=0,l=t.length;for(n instanceof Date||(n=new Date(+n));++s<l;)37===t.charCodeAt(s)&&(o.push(t.slice(c,s)),null!=(a=qs[i=t.charAt(++s)])?i=t.charAt(++s):a="e"===i?" ":"0",(r=e[i])&&(i=r(n,a)),o.push(i),c=s+1);return o.push(t.slice(c,s)),o.join("")}}function _(t,e){return function(n){var i,a,r=zs(1900,void 0,1);if(k(r,t,n+="",0)!=n.length)return null;if("Q"in r)return new Date(r.Q);if("s"in r)return new Date(1e3*r.s+("L"in r?r.L:0));if(e&&!("Z"in r)&&(r.Z=0),"p"in r&&(r.H=r.H%12+12*r.p),void 0===r.m&&(r.m="q"in r?r.q:0),"V"in r){if(r.V<1||r.V>53)return null;"w"in r||(r.w=1),"Z"in r?(a=(i=$s(zs(r.y,0,1))).getUTCDay(),i=a>4||0===a?Cs.ceil(i):Cs(i),i=_s.offset(i,7*(r.V-1)),r.y=i.getUTCFullYear(),r.m=i.getUTCMonth(),r.d=i.getUTCDate()+(r.w+6)%7):(a=(i=js(zs(r.y,0,1))).getDay(),i=a>4||0===a?cs.ceil(i):cs(i),i=rs.offset(i,7*(r.V-1)),r.y=i.getFullYear(),r.m=i.getMonth(),r.d=i.getDate()+(r.w+6)%7)}else("W"in r||"U"in r)&&("w"in r||(r.w="u"in r?r.u%7:"W"in r?1:0),a="Z"in r?$s(zs(r.y,0,1)).getUTCDay():js(zs(r.y,0,1)).getDay(),r.m=0,r.d="W"in r?(r.w+6)%7+7*r.W-(a+5)%7:r.w+7*r.U-(a+6)%7);return"Z"in r?(r.H+=r.Z/100|0,r.M+=r.Z%100,$s(r)):js(r)}}function k(t,e,n,i){for(var a,r,o=0,s=e.length,c=n.length;o<s;){if(i>=c)return-1;if(37===(a=e.charCodeAt(o++))){if(a=e.charAt(o++),!(r=x[a in qs?e.charAt(o++):a])||(i=r(t,n,i))<0)return-1}else if(a!=n.charCodeAt(i++))return-1}return i}function E(t,e,n){var i=l.exec(e.slice(n));return i?(t.p=u.get(i[0].toLowerCase()),n+i[0].length):-1}function C(t,e,n){var i=f.exec(e.slice(n));return i?(t.w=g.get(i[0].toLowerCase()),n+i[0].length):-1}function S(t,e,n){var i=d.exec(e.slice(n));return i?(t.w=h.get(i[0].toLowerCase()),n+i[0].length):-1}function T(t,e,n){var i=m.exec(e.slice(n));return i?(t.m=y.get(i[0].toLowerCase()),n+i[0].length):-1}function A(t,e,n){var i=p.exec(e.slice(n));return i?(t.m=b.get(i[0].toLowerCase()),n+i[0].length):-1}function D(t,n,i){return k(t,e,n,i)}function I(t,e,i){return k(t,n,e,i)}function L(t,e,n){return k(t,i,e,n)}function O(t){return o[t.getDay()]}function M(t){return r[t.getDay()]}function N(t){return c[t.getMonth()]}function B(t){return s[t.getMonth()]}function P(t){return a[+(t.getHours()>=12)]}function F(t){return 1+~~(t.getMonth()/3)}function j(t){return o[t.getUTCDay()]}function $(t){return r[t.getUTCDay()]}function z(t){return c[t.getUTCMonth()]}function H(t){return s[t.getUTCMonth()]}function U(t){return a[+(t.getUTCHours()>=12)]}function V(t){return 1+~~(t.getUTCMonth()/3)}return v.x=R(n,v),v.X=R(i,v),v.c=R(e,v),w.x=R(n,w),w.X=R(i,w),w.c=R(e,w),{format:function(t){var e=R(t+="",v);return e.toString=function(){return t},e},parse:function(t){var e=_(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=R(t+="",w);return e.toString=function(){return t},e},utcParse:function(t){var e=_(t+="",!0);return e.toString=function(){return t},e}}}var Us,Vs,qs={"-":"",_:" ",0:"0"},Ws=/^\s*\d+/,Ys=/^%/,Gs=/[\\^$*+?|[\]().{}]/g;function Zs(t,e,n){var i=t<0?"-":"",a=(i?-t:t)+"",r=a.length;return i+(r<n?new Array(n-r+1).join(e)+a:a)}function Ks(t){return t.replace(Gs,"\\$&")}function Xs(t){return new RegExp("^(?:"+t.map(Ks).join("|")+")","i")}function Js(t){return new Map(t.map(((t,e)=>[t.toLowerCase(),e])))}function Qs(t,e,n){var i=Ws.exec(e.slice(n,n+1));return i?(t.w=+i[0],n+i[0].length):-1}function tc(t,e,n){var i=Ws.exec(e.slice(n,n+1));return i?(t.u=+i[0],n+i[0].length):-1}function ec(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.U=+i[0],n+i[0].length):-1}function nc(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.V=+i[0],n+i[0].length):-1}function ic(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.W=+i[0],n+i[0].length):-1}function ac(t,e,n){var i=Ws.exec(e.slice(n,n+4));return i?(t.y=+i[0],n+i[0].length):-1}function rc(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.y=+i[0]+(+i[0]>68?1900:2e3),n+i[0].length):-1}function oc(t,e,n){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return i?(t.Z=i[1]?0:-(i[2]+(i[3]||"00")),n+i[0].length):-1}function sc(t,e,n){var i=Ws.exec(e.slice(n,n+1));return i?(t.q=3*i[0]-3,n+i[0].length):-1}function cc(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.m=i[0]-1,n+i[0].length):-1}function lc(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.d=+i[0],n+i[0].length):-1}function uc(t,e,n){var i=Ws.exec(e.slice(n,n+3));return i?(t.m=0,t.d=+i[0],n+i[0].length):-1}function dc(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.H=+i[0],n+i[0].length):-1}function hc(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.M=+i[0],n+i[0].length):-1}function fc(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.S=+i[0],n+i[0].length):-1}function gc(t,e,n){var i=Ws.exec(e.slice(n,n+3));return i?(t.L=+i[0],n+i[0].length):-1}function pc(t,e,n){var i=Ws.exec(e.slice(n,n+6));return i?(t.L=Math.floor(i[0]/1e3),n+i[0].length):-1}function bc(t,e,n){var i=Ys.exec(e.slice(n,n+1));return i?n+i[0].length:-1}function mc(t,e,n){var i=Ws.exec(e.slice(n));return i?(t.Q=+i[0],n+i[0].length):-1}function yc(t,e,n){var i=Ws.exec(e.slice(n));return i?(t.s=+i[0],n+i[0].length):-1}function vc(t,e){return Zs(t.getDate(),e,2)}function wc(t,e){return Zs(t.getHours(),e,2)}function xc(t,e){return Zs(t.getHours()%12||12,e,2)}function Rc(t,e){return Zs(1+rs.count(ms(t),t),e,3)}function _c(t,e){return Zs(t.getMilliseconds(),e,3)}function kc(t,e){return _c(t,e)+"000"}function Ec(t,e){return Zs(t.getMonth()+1,e,2)}function Cc(t,e){return Zs(t.getMinutes(),e,2)}function Sc(t,e){return Zs(t.getSeconds(),e,2)}function Tc(t){var e=t.getDay();return 0===e?7:e}function Ac(t,e){return Zs(ss.count(ms(t)-1,t),e,2)}function Dc(t){var e=t.getDay();return e>=4||0===e?ds(t):ds.ceil(t)}function Ic(t,e){return t=Dc(t),Zs(ds.count(ms(t),t)+(4===ms(t).getDay()),e,2)}function Lc(t){return t.getDay()}function Oc(t,e){return Zs(cs.count(ms(t)-1,t),e,2)}function Mc(t,e){return Zs(t.getFullYear()%100,e,2)}function Nc(t,e){return Zs((t=Dc(t)).getFullYear()%100,e,2)}function Bc(t,e){return Zs(t.getFullYear()%1e4,e,4)}function Pc(t,e){var n=t.getDay();return Zs((t=n>=4||0===n?ds(t):ds.ceil(t)).getFullYear()%1e4,e,4)}function Fc(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Zs(e/60|0,"0",2)+Zs(e%60,"0",2)}function jc(t,e){return Zs(t.getUTCDate(),e,2)}function $c(t,e){return Zs(t.getUTCHours(),e,2)}function zc(t,e){return Zs(t.getUTCHours()%12||12,e,2)}function Hc(t,e){return Zs(1+_s.count(Ns(t),t),e,3)}function Uc(t,e){return Zs(t.getUTCMilliseconds(),e,3)}function Vc(t,e){return Uc(t,e)+"000"}function qc(t,e){return Zs(t.getUTCMonth()+1,e,2)}function Wc(t,e){return Zs(t.getUTCMinutes(),e,2)}function Yc(t,e){return Zs(t.getUTCSeconds(),e,2)}function Gc(t){var e=t.getUTCDay();return 0===e?7:e}function Zc(t,e){return Zs(Es.count(Ns(t)-1,t),e,2)}function Kc(t){var e=t.getUTCDay();return e>=4||0===e?As(t):As.ceil(t)}function Xc(t,e){return t=Kc(t),Zs(As.count(Ns(t),t)+(4===Ns(t).getUTCDay()),e,2)}function Jc(t){return t.getUTCDay()}function Qc(t,e){return Zs(Cs.count(Ns(t)-1,t),e,2)}function tl(t,e){return Zs(t.getUTCFullYear()%100,e,2)}function el(t,e){return Zs((t=Kc(t)).getUTCFullYear()%100,e,2)}function nl(t,e){return Zs(t.getUTCFullYear()%1e4,e,4)}function il(t,e){var n=t.getUTCDay();return Zs((t=n>=4||0===n?As(t):As.ceil(t)).getUTCFullYear()%1e4,e,4)}function al(){return"+0000"}function rl(){return"%"}function ol(t){return+t}function sl(t){return Math.floor(+t/1e3)}function cl(t){return Us=Hs(t),Vs=Us.format,Us.parse,Us.utcFormat,Us.utcParse,Us}function ll(t){return new Date(t)}function ul(t){return t instanceof Date?+t:+new Date(+t)}function dl(t,e,n,i,a,r,o,s,c,l){var u=No(),d=u.invert,h=u.domain,f=l(".%L"),g=l(":%S"),p=l("%I:%M"),b=l("%I %p"),m=l("%a %d"),y=l("%b %d"),v=l("%B"),w=l("%Y");function x(t){return(c(t)<t?f:s(t)<t?g:o(t)<t?p:r(t)<t?b:i(t)<t?a(t)<t?m:y:n(t)<t?v:w)(t)}return u.invert=function(t){return new Date(d(t))},u.domain=function(t){return arguments.length?h(Array.from(t,ul)):h().map(ll)},u.ticks=function(e){var n=h();return t(n[0],n[n.length-1],e??10)},u.tickFormat=function(t,e){return null==e?x:l(e)},u.nice=function(t){var n=h();return(!t||"function"!=typeof t.range)&&(t=e(n[0],n[n.length-1],t??10)),t?h(jo(n,t)):u},u.copy=function(){return Oo(u,dl(t,e,n,i,a,r,o,s,c,l))},u}function hl(){return Ro.apply(dl(Ps,Fs,ms,ps,ss,rs,is,es,Qo,Vs).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function fl(t){return function(){return t}}cl({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"]});const gl=Math.abs,pl=Math.atan2,bl=Math.cos,ml=Math.max,yl=Math.min,vl=Math.sin,wl=Math.sqrt,xl=1e-12,Rl=Math.PI,_l=Rl/2,kl=2*Rl;function El(t){return t>1?0:t<-1?Rl:Math.acos(t)}function Cl(t){return t>=1?_l:t<=-1?-_l:Math.asin(t)}function Sl(t){return t.innerRadius}function Tl(t){return t.outerRadius}function Al(t){return t.startAngle}function Dl(t){return t.endAngle}function Il(t){return t&&t.padAngle}function Ll(t,e,n,i,a,r,o,s){var c=n-t,l=i-e,u=o-a,d=s-r,h=d*c-u*l;if(!(h*h<xl))return[t+(h=(u*(e-r)-d*(t-a))/h)*c,e+h*l]}function Ol(t,e,n,i,a,r,o){var s=t-n,c=e-i,l=(o?r:-r)/wl(s*s+c*c),u=l*c,d=-l*s,h=t+u,f=e+d,g=n+u,p=i+d,b=(h+g)/2,m=(f+p)/2,y=g-h,v=p-f,w=y*y+v*v,x=a-r,R=h*p-g*f,_=(v<0?-1:1)*wl(ml(0,x*x*w-R*R)),k=(R*v-y*_)/w,E=(-R*y-v*_)/w,C=(R*v+y*_)/w,S=(-R*y+v*_)/w,T=k-b,A=E-m,D=C-b,I=S-m;return T*T+A*A>D*D+I*I&&(k=C,E=S),{cx:k,cy:E,x01:-u,y01:-d,x11:k*(a/x-1),y11:E*(a/x-1)}}function Ml(){var t=Sl,e=Tl,n=fl(0),i=null,a=Al,r=Dl,o=Il,s=null;function c(){var c,l,u=+t.apply(this,arguments),d=+e.apply(this,arguments),h=a.apply(this,arguments)-_l,f=r.apply(this,arguments)-_l,g=gl(f-h),p=f>h;if(s||(s=c=Wr()),d<u&&(l=d,d=u,u=l),d>xl)if(g>kl-xl)s.moveTo(d*bl(h),d*vl(h)),s.arc(0,0,d,h,f,!p),u>xl&&(s.moveTo(u*bl(f),u*vl(f)),s.arc(0,0,u,f,h,p));else{var b,m,y=h,v=f,w=h,x=f,R=g,_=g,k=o.apply(this,arguments)/2,E=k>xl&&(i?+i.apply(this,arguments):wl(u*u+d*d)),C=yl(gl(d-u)/2,+n.apply(this,arguments)),S=C,T=C;if(E>xl){var A=Cl(E/u*vl(k)),D=Cl(E/d*vl(k));(R-=2*A)>xl?(w+=A*=p?1:-1,x-=A):(R=0,w=x=(h+f)/2),(_-=2*D)>xl?(y+=D*=p?1:-1,v-=D):(_=0,y=v=(h+f)/2)}var I=d*bl(y),L=d*vl(y),O=u*bl(x),M=u*vl(x);if(C>xl){var N,B=d*bl(v),P=d*vl(v),F=u*bl(w),j=u*vl(w);if(g<Rl&&(N=Ll(I,L,F,j,B,P,O,M))){var $=I-N[0],z=L-N[1],H=B-N[0],U=P-N[1],V=1/vl(El(($*H+z*U)/(wl($*$+z*z)*wl(H*H+U*U)))/2),q=wl(N[0]*N[0]+N[1]*N[1]);S=yl(C,(u-q)/(V-1)),T=yl(C,(d-q)/(V+1))}}_>xl?T>xl?(b=Ol(F,j,I,L,d,T,p),m=Ol(B,P,O,M,d,T,p),s.moveTo(b.cx+b.x01,b.cy+b.y01),T<C?s.arc(b.cx,b.cy,T,pl(b.y01,b.x01),pl(m.y01,m.x01),!p):(s.arc(b.cx,b.cy,T,pl(b.y01,b.x01),pl(b.y11,b.x11),!p),s.arc(0,0,d,pl(b.cy+b.y11,b.cx+b.x11),pl(m.cy+m.y11,m.cx+m.x11),!p),s.arc(m.cx,m.cy,T,pl(m.y11,m.x11),pl(m.y01,m.x01),!p))):(s.moveTo(I,L),s.arc(0,0,d,y,v,!p)):s.moveTo(I,L),u>xl&&R>xl?S>xl?(b=Ol(O,M,B,P,u,-S,p),m=Ol(I,L,F,j,u,-S,p),s.lineTo(b.cx+b.x01,b.cy+b.y01),S<C?s.arc(b.cx,b.cy,S,pl(b.y01,b.x01),pl(m.y01,m.x01),!p):(s.arc(b.cx,b.cy,S,pl(b.y01,b.x01),pl(b.y11,b.x11),!p),s.arc(0,0,u,pl(b.cy+b.y11,b.cx+b.x11),pl(m.cy+m.y11,m.cx+m.x11),p),s.arc(m.cx,m.cy,S,pl(m.y11,m.x11),pl(m.y01,m.x01),!p))):s.arc(0,0,u,x,w,p):s.lineTo(O,M)}else s.moveTo(0,0);if(s.closePath(),c)return s=null,c+""||null}return c.centroid=function(){var n=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,i=(+a.apply(this,arguments)+ +r.apply(this,arguments))/2-Rl/2;return[bl(i)*n,vl(i)*n]},c.innerRadius=function(e){return arguments.length?(t="function"==typeof e?e:fl(+e),c):t},c.outerRadius=function(t){return arguments.length?(e="function"==typeof t?t:fl(+t),c):e},c.cornerRadius=function(t){return arguments.length?(n="function"==typeof t?t:fl(+t),c):n},c.padRadius=function(t){return arguments.length?(i=null==t?null:"function"==typeof t?t:fl(+t),c):i},c.startAngle=function(t){return arguments.length?(a="function"==typeof t?t:fl(+t),c):a},c.endAngle=function(t){return arguments.length?(r="function"==typeof t?t:fl(+t),c):r},c.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:fl(+t),c):o},c.context=function(t){return arguments.length?(s=t??null,c):s},c}function Nl(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function Bl(t){this._context=t}function Pl(t){return new Bl(t)}function Fl(t){return t[0]}function jl(t){return t[1]}function $l(t,e){var n=fl(!0),i=null,a=Pl,r=null;function o(o){var s,c,l,u=(o=Nl(o)).length,d=!1;for(null==i&&(r=a(l=Wr())),s=0;s<=u;++s)!(s<u&&n(c=o[s],s,o))===d&&((d=!d)?r.lineStart():r.lineEnd()),d&&r.point(+t(c,s,o),+e(c,s,o));if(l)return r=null,l+""||null}return t="function"==typeof t?t:void 0===t?Fl:fl(t),e="function"==typeof e?e:void 0===e?jl:fl(e),o.x=function(e){return arguments.length?(t="function"==typeof e?e:fl(+e),o):t},o.y=function(t){return arguments.length?(e="function"==typeof t?t:fl(+t),o):e},o.defined=function(t){return arguments.length?(n="function"==typeof t?t:fl(!!t),o):n},o.curve=function(t){return arguments.length?(a=t,null!=i&&(r=a(i)),o):a},o.context=function(t){return arguments.length?(null==t?i=r=null:r=a(i=t),o):i},o}function zl(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function Hl(t){return t}function Ul(){var t=Hl,e=zl,n=null,i=fl(0),a=fl(kl),r=fl(0);function o(o){var s,c,l,u,d,h=(o=Nl(o)).length,f=0,g=new Array(h),p=new Array(h),b=+i.apply(this,arguments),m=Math.min(kl,Math.max(-kl,a.apply(this,arguments)-b)),y=Math.min(Math.abs(m)/h,r.apply(this,arguments)),v=y*(m<0?-1:1);for(s=0;s<h;++s)(d=p[g[s]=s]=+t(o[s],s,o))>0&&(f+=d);for(null!=e?g.sort((function(t,n){return e(p[t],p[n])})):null!=n&&g.sort((function(t,e){return n(o[t],o[e])})),s=0,l=f?(m-h*v)/f:0;s<h;++s,b=u)c=g[s],u=b+((d=p[c])>0?d*l:0)+v,p[c]={data:o[c],index:s,value:d,startAngle:b,endAngle:u,padAngle:y};return p}return o.value=function(e){return arguments.length?(t="function"==typeof e?e:fl(+e),o):t},o.sortValues=function(t){return arguments.length?(e=t,n=null,o):e},o.sort=function(t){return arguments.length?(n=t,e=null,o):n},o.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:fl(+t),o):i},o.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:fl(+t),o):a},o.padAngle=function(t){return arguments.length?(r="function"==typeof t?t:fl(+t),o):r},o}Bl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&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)}}};class Vl{constructor(t,e){this._context=t,this._x=e}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(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._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,e,t,e):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+e)/2,t,this._y0,t,e)}this._x0=t,this._y0=e}}function ql(t){return new Vl(t,!0)}function Wl(t){return new Vl(t,!1)}function Yl(){}function Gl(t,e,n){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+n)/6)}function Zl(t){this._context=t}function Kl(t){return new Zl(t)}function Xl(t){this._context=t}function Jl(t){return new Xl(t)}function Ql(t){this._context=t}function tu(t){return new Ql(t)}function eu(t,e){this._basis=new Zl(t),this._beta=e}Zl.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:Gl(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&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:Gl(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},Xl.prototype={areaStart:Yl,areaEnd:Yl,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)}},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:Gl(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},Ql.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||0!==this._line&&3===this._point)&&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 n=(this._x0+4*this._x1+t)/6,i=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,i):this._context.moveTo(n,i);break;case 3:this._point=4;default:Gl(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},eu.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var i,a=t[0],r=e[0],o=t[n]-a,s=e[n]-r,c=-1;++c<=n;)i=c/n,this._basis.point(this._beta*t[c]+(1-this._beta)*(a+i*o),this._beta*e[c]+(1-this._beta)*(r+i*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};const nu=function t(e){function n(t){return 1===e?new Zl(t):new eu(t,e)}return n.beta=function(e){return t(+e)},n}(.85);function iu(t,e,n){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-n),t._x2,t._y2)}function au(t,e){this._context=t,this._k=(1-e)/6}au.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:iu(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&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:iu(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const ru=function t(e){function n(t){return new au(t,e)}return n.tension=function(e){return t(+e)},n}(0);function ou(t,e){this._context=t,this._k=(1-e)/6}ou.prototype={areaStart:Yl,areaEnd:Yl,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)}},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:iu(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const su=function t(e){function n(t){return new ou(t,e)}return n.tension=function(e){return t(+e)},n}(0);function cu(t,e){this._context=t,this._k=(1-e)/6}cu.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||0!==this._line&&3===this._point)&&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:iu(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const lu=function t(e){function n(t){return new cu(t,e)}return n.tension=function(e){return t(+e)},n}(0);function uu(t,e,n){var i=t._x1,a=t._y1,r=t._x2,o=t._y2;if(t._l01_a>xl){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);i=(i*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,a=(a*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>xl){var l=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);r=(r*l+t._x1*t._l23_2a-e*t._l12_2a)/u,o=(o*l+t._y1*t._l23_2a-n*t._l12_2a)/u}t._context.bezierCurveTo(i,a,r,o,t._x2,t._y2)}function du(t,e){this._context=t,this._alpha=e}du.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)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,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:uu(this,t,e)}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 hu=function t(e){function n(t){return e?new du(t,e):new au(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function fu(t,e){this._context=t,this._alpha=e}fu.prototype={areaStart:Yl,areaEnd:Yl,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)}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,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:uu(this,t,e)}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 gu=function t(e){function n(t){return e?new fu(t,e):new ou(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function pu(t,e){this._context=t,this._alpha=e}pu.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||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,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:uu(this,t,e)}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 bu=function t(e){function n(t){return e?new pu(t,e):new cu(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function mu(t){this._context=t}function yu(t){return new mu(t)}function vu(t){return t<0?-1:1}function wu(t,e,n){var i=t._x1-t._x0,a=e-t._x1,r=(t._y1-t._y0)/(i||a<0&&-0),o=(n-t._y1)/(a||i<0&&-0),s=(r*a+o*i)/(i+a);return(vu(r)+vu(o))*Math.min(Math.abs(r),Math.abs(o),.5*Math.abs(s))||0}function xu(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function Ru(t,e,n){var i=t._x0,a=t._y0,r=t._x1,o=t._y1,s=(r-i)/3;t._context.bezierCurveTo(i+s,a+s*e,r-s,o-s*n,r,o)}function _u(t){this._context=t}function ku(t){this._context=new Eu(t)}function Eu(t){this._context=t}function Cu(t){return new _u(t)}function Su(t){return new ku(t)}function Tu(t){this._context=t}function Au(t){var e,n,i=t.length-1,a=new Array(i),r=new Array(i),o=new Array(i);for(a[0]=0,r[0]=2,o[0]=t[0]+2*t[1],e=1;e<i-1;++e)a[e]=1,r[e]=4,o[e]=4*t[e]+2*t[e+1];for(a[i-1]=2,r[i-1]=7,o[i-1]=8*t[i-1]+t[i],e=1;e<i;++e)n=a[e]/r[e-1],r[e]-=n,o[e]-=n*o[e-1];for(a[i-1]=o[i-1]/r[i-1],e=i-2;e>=0;--e)a[e]=(o[e]-a[e+1])/r[e];for(r[i-1]=(t[i]+a[i-1])/2,e=0;e<i-1;++e)r[e]=2*t[e+1]-a[e+1];return[a,r]}function Du(t){return new Tu(t)}function Iu(t,e){this._context=t,this._t=e}function Lu(t){return new Iu(t,.5)}function Ou(t){return new Iu(t,0)}function Mu(t){return new Iu(t,1)}function Nu(t,e,n){this.k=t,this.x=e,this.y=n}function Bu(t){return(Bu="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function Pu(t,e){return Pu=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},Pu(t,e)}function Fu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch{return!1}}function ju(t,e,n){return(ju=Fu()?Reflect.construct:function(t,e,n){var i=[null];i.push.apply(i,e);var a=new(Function.bind.apply(t,i));return n&&Pu(a,n.prototype),a}).apply(null,arguments)}function $u(t){return zu(t)||Hu(t)||Uu(t)||qu()}function zu(t){if(Array.isArray(t))return Vu(t)}function Hu(t){if(typeof Symbol<"u"&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function Uu(t,e){if(t){if("string"==typeof t)return Vu(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if("Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Vu(t,e)}}function Vu(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}function qu(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}mu.prototype={areaStart:Yl,areaEnd:Yl,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))}},_u.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:Ru(this,this._t0,xu(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(e=+e,(t=+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,Ru(this,xu(this,n=wu(this,t,e)),n);break;default:Ru(this,this._t0,n=wu(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}},(ku.prototype=Object.create(_u.prototype)).point=function(t,e){_u.prototype.point.call(this,e,t)},Eu.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,n,i,a,r){this._context.bezierCurveTo(e,t,i,n,r,a)}},Tu.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,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),2===n)this._context.lineTo(t[1],e[1]);else for(var i=Au(t),a=Au(e),r=0,o=1;o<n;++r,++o)this._context.bezierCurveTo(i[0][r],a[0][r],i[1][r],a[1][r],t[o],e[o]);(this._line||0!==this._line&&1===n)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}},Iu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=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 n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}}this._x=t,this._y=e}},Nu.prototype={constructor:Nu,scale:function(t){return 1===t?this:new Nu(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new Nu(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+")"}},Nu.prototype;var Wu=Object.hasOwnProperty,Yu=Object.setPrototypeOf,Gu=Object.isFrozen,Zu=Object.getPrototypeOf,Ku=Object.getOwnPropertyDescriptor,Xu=Object.freeze,Ju=Object.seal,Qu=Object.create,td=typeof Reflect<"u"&&Reflect,ed=td.apply,nd=td.construct;ed||(ed=function(t,e,n){return t.apply(e,n)}),Xu||(Xu=function(t){return t}),Ju||(Ju=function(t){return t}),nd||(nd=function(t,e){return ju(t,$u(e))});var id=gd(Array.prototype.forEach),ad=gd(Array.prototype.pop),rd=gd(Array.prototype.push),od=gd(String.prototype.toLowerCase),sd=gd(String.prototype.toString),cd=gd(String.prototype.match),ld=gd(String.prototype.replace),ud=gd(String.prototype.indexOf),dd=gd(String.prototype.trim),hd=gd(RegExp.prototype.test),fd=pd(TypeError);function gd(t){return function(e){for(var n=arguments.length,i=new Array(n>1?n-1:0),a=1;a<n;a++)i[a-1]=arguments[a];return ed(t,e,i)}}function pd(t){return function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];return nd(t,n)}}function bd(t,e,n){n=n||od,Yu&&Yu(t,null);for(var i=e.length;i--;){var a=e[i];if("string"==typeof a){var r=n(a);r!==a&&(Gu(e)||(e[i]=r),a=r)}t[a]=!0}return t}function md(t){var e,n=Qu(null);for(e in t)!0===ed(Wu,t,[e])&&(n[e]=t[e]);return n}function yd(t,e){for(;null!==t;){var n=Ku(t,e);if(n){if(n.get)return gd(n.get);if("function"==typeof n.value)return gd(n.value)}t=Zu(t)}function i(t){return console.warn("fallback value for",t),null}return i}var vd=Xu(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),wd=Xu(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),xd=Xu(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Rd=Xu(["animate","color-profile","cursor","discard","fedropshadow","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),_d=Xu(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"]),kd=Xu(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Ed=Xu(["#text"]),Cd=Xu(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),Sd=Xu(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Td=Xu(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Ad=Xu(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Dd=Ju(/\{\{[\w\W]*|[\w\W]*\}\}/gm),Id=Ju(/<%[\w\W]*|[\w\W]*%>/gm),Ld=Ju(/\${[\w\W]*}/gm),Od=Ju(/^data-[\-\w.\u00B7-\uFFFF]/),Md=Ju(/^aria-[\-\w]+$/),Nd=Ju(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Bd=Ju(/^(?:\w+script|data):/i),Pd=Ju(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Fd=Ju(/^html$/i),jd=function(){return typeof window>"u"?null:window},$d=function(t,e){if("object"!==Bu(t)||"function"!=typeof t.createPolicy)return null;var n=null,i="data-tt-policy-suffix";e.currentScript&&e.currentScript.hasAttribute(i)&&(n=e.currentScript.getAttribute(i));var a="dompurify"+(n?"#"+n:"");try{return t.createPolicy(a,{createHTML:function(t){return t},createScriptURL:function(t){return t}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}};function zd(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:jd(),e=function(t){return zd(t)};if(e.version="2.4.3",e.removed=[],!t||!t.document||9!==t.document.nodeType)return e.isSupported=!1,e;var n=t.document,i=t.document,a=t.DocumentFragment,r=t.HTMLTemplateElement,o=t.Node,s=t.Element,c=t.NodeFilter,l=t.NamedNodeMap,u=void 0===l?t.NamedNodeMap||t.MozNamedAttrMap:l,d=t.HTMLFormElement,h=t.DOMParser,f=t.trustedTypes,g=s.prototype,p=yd(g,"cloneNode"),b=yd(g,"nextSibling"),m=yd(g,"childNodes"),y=yd(g,"parentNode");if("function"==typeof r){var v=i.createElement("template");v.content&&v.content.ownerDocument&&(i=v.content.ownerDocument)}var w=$d(f,n),x=w?w.createHTML(""):"",R=i,_=R.implementation,k=R.createNodeIterator,E=R.createDocumentFragment,C=R.getElementsByTagName,S=n.importNode,T={};try{T=md(i).documentMode?i.documentMode:{}}catch{}var A={};e.isSupported="function"==typeof y&&_&&typeof _.createHTMLDocument<"u"&&9!==T;var D,I,L=Dd,O=Id,M=Ld,N=Od,B=Md,P=Bd,F=Pd,j=Nd,$=null,z=bd({},[].concat($u(vd),$u(wd),$u(xd),$u(_d),$u(Ed))),H=null,U=bd({},[].concat($u(Cd),$u(Sd),$u(Td),$u(Ad))),V=Object.seal(Object.create(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}})),q=null,W=null,Y=!0,G=!0,Z=!1,K=!1,X=!1,J=!1,Q=!1,tt=!1,et=!1,nt=!1,it=!0,at=!1,rt="user-content-",ot=!0,st=!1,ct={},lt=null,ut=bd({},["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"]),dt=null,ht=bd({},["audio","video","img","source","image","track"]),ft=null,gt=bd({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),pt="http://www.w3.org/1998/Math/MathML",bt="http://www.w3.org/2000/svg",mt="http://www.w3.org/1999/xhtml",yt=mt,vt=!1,wt=null,xt=bd({},[pt,bt,mt],sd),Rt=["application/xhtml+xml","text/html"],_t="text/html",kt=null,Et=i.createElement("form"),Ct=function(t){return t instanceof RegExp||t instanceof Function},St=function(t){kt&&kt===t||((!t||"object"!==Bu(t))&&(t={}),t=md(t),D=D=-1===Rt.indexOf(t.PARSER_MEDIA_TYPE)?_t:t.PARSER_MEDIA_TYPE,I="application/xhtml+xml"===D?sd:od,$="ALLOWED_TAGS"in t?bd({},t.ALLOWED_TAGS,I):z,H="ALLOWED_ATTR"in t?bd({},t.ALLOWED_ATTR,I):U,wt="ALLOWED_NAMESPACES"in t?bd({},t.ALLOWED_NAMESPACES,sd):xt,ft="ADD_URI_SAFE_ATTR"in t?bd(md(gt),t.ADD_URI_SAFE_ATTR,I):gt,dt="ADD_DATA_URI_TAGS"in t?bd(md(ht),t.ADD_DATA_URI_TAGS,I):ht,lt="FORBID_CONTENTS"in t?bd({},t.FORBID_CONTENTS,I):ut,q="FORBID_TAGS"in t?bd({},t.FORBID_TAGS,I):{},W="FORBID_ATTR"in t?bd({},t.FORBID_ATTR,I):{},ct="USE_PROFILES"in t&&t.USE_PROFILES,Y=!1!==t.ALLOW_ARIA_ATTR,G=!1!==t.ALLOW_DATA_ATTR,Z=t.ALLOW_UNKNOWN_PROTOCOLS||!1,K=t.SAFE_FOR_TEMPLATES||!1,X=t.WHOLE_DOCUMENT||!1,tt=t.RETURN_DOM||!1,et=t.RETURN_DOM_FRAGMENT||!1,nt=t.RETURN_TRUSTED_TYPE||!1,Q=t.FORCE_BODY||!1,it=!1!==t.SANITIZE_DOM,at=t.SANITIZE_NAMED_PROPS||!1,ot=!1!==t.KEEP_CONTENT,st=t.IN_PLACE||!1,j=t.ALLOWED_URI_REGEXP||j,yt=t.NAMESPACE||mt,t.CUSTOM_ELEMENT_HANDLING&&Ct(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(V.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&Ct(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(V.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(V.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),K&&(G=!1),et&&(tt=!0),ct&&($=bd({},$u(Ed)),H=[],!0===ct.html&&(bd($,vd),bd(H,Cd)),!0===ct.svg&&(bd($,wd),bd(H,Sd),bd(H,Ad)),!0===ct.svgFilters&&(bd($,xd),bd(H,Sd),bd(H,Ad)),!0===ct.mathMl&&(bd($,_d),bd(H,Td),bd(H,Ad))),t.ADD_TAGS&&($===z&&($=md($)),bd($,t.ADD_TAGS,I)),t.ADD_ATTR&&(H===U&&(H=md(H)),bd(H,t.ADD_ATTR,I)),t.ADD_URI_SAFE_ATTR&&bd(ft,t.ADD_URI_SAFE_ATTR,I),t.FORBID_CONTENTS&&(lt===ut&&(lt=md(lt)),bd(lt,t.FORBID_CONTENTS,I)),ot&&($["#text"]=!0),X&&bd($,["html","head","body"]),$.table&&(bd($,["tbody"]),delete q.tbody),Xu&&Xu(t),kt=t)},Tt=bd({},["mi","mo","mn","ms","mtext"]),At=bd({},["foreignobject","desc","title","annotation-xml"]),Dt=bd({},["title","style","font","a","script"]),It=bd({},wd);bd(It,xd),bd(It,Rd);var Lt=bd({},_d);bd(Lt,kd);var Ot=function(t){var e=y(t);(!e||!e.tagName)&&(e={namespaceURI:yt,tagName:"template"});var n=od(t.tagName),i=od(e.tagName);return!!wt[t.namespaceURI]&&(t.namespaceURI===bt?e.namespaceURI===mt?"svg"===n:e.namespaceURI===pt?"svg"===n&&("annotation-xml"===i||Tt[i]):Boolean(It[n]):t.namespaceURI===pt?e.namespaceURI===mt?"math"===n:e.namespaceURI===bt?"math"===n&&At[i]:Boolean(Lt[n]):t.namespaceURI===mt?!(e.namespaceURI===bt&&!At[i]||e.namespaceURI===pt&&!Tt[i])&&!Lt[n]&&(Dt[n]||!It[n]):!("application/xhtml+xml"!==D||!wt[t.namespaceURI]))},Mt=function(t){rd(e.removed,{element:t});try{t.parentNode.removeChild(t)}catch{try{t.outerHTML=x}catch{t.remove()}}},Nt=function(t,n){try{rd(e.removed,{attribute:n.getAttributeNode(t),from:n})}catch{rd(e.removed,{attribute:null,from:n})}if(n.removeAttribute(t),"is"===t&&!H[t])if(tt||et)try{Mt(n)}catch{}else try{n.setAttribute(t,"")}catch{}},Bt=function(t){var e,n;if(Q)t="<remove></remove>"+t;else{var a=cd(t,/^[\r\n\t ]+/);n=a&&a[0]}"application/xhtml+xml"===D&&yt===mt&&(t='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+t+"</body></html>");var r=w?w.createHTML(t):t;if(yt===mt)try{e=(new h).parseFromString(r,D)}catch{}if(!e||!e.documentElement){e=_.createDocument(yt,"template",null);try{e.documentElement.innerHTML=vt?x:r}catch{}}var o=e.body||e.documentElement;return t&&n&&o.insertBefore(i.createTextNode(n),o.childNodes[0]||null),yt===mt?C.call(e,X?"html":"body")[0]:X?e.documentElement:o},Pt=function(t){return k.call(t.ownerDocument||t,t,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT,null,!1)},Ft=function(t){return t instanceof d&&("string"!=typeof t.nodeName||"string"!=typeof t.textContent||"function"!=typeof t.removeChild||!(t.attributes instanceof u)||"function"!=typeof t.removeAttribute||"function"!=typeof t.setAttribute||"string"!=typeof t.namespaceURI||"function"!=typeof t.insertBefore||"function"!=typeof t.hasChildNodes)},jt=function(t){return"object"===Bu(o)?t instanceof o:t&&"object"===Bu(t)&&"number"==typeof t.nodeType&&"string"==typeof t.nodeName},$t=function(t,n,i){A[t]&&id(A[t],(function(t){t.call(e,n,i,kt)}))},zt=function(t){var n;if($t("beforeSanitizeElements",t,null),Ft(t)||hd(/[\u0080-\uFFFF]/,t.nodeName))return Mt(t),!0;var i=I(t.nodeName);if($t("uponSanitizeElement",t,{tagName:i,allowedTags:$}),t.hasChildNodes()&&!jt(t.firstElementChild)&&(!jt(t.content)||!jt(t.content.firstElementChild))&&hd(/<[/\w]/g,t.innerHTML)&&hd(/<[/\w]/g,t.textContent)||"select"===i&&hd(/<template/i,t.innerHTML))return Mt(t),!0;if(!$[i]||q[i]){if(!q[i]&&Ut(i)&&(V.tagNameCheck instanceof RegExp&&hd(V.tagNameCheck,i)||V.tagNameCheck instanceof Function&&V.tagNameCheck(i)))return!1;if(ot&&!lt[i]){var a=y(t)||t.parentNode,r=m(t)||t.childNodes;if(r&&a)for(var o=r.length-1;o>=0;--o)a.insertBefore(p(r[o],!0),b(t))}return Mt(t),!0}return t instanceof s&&!Ot(t)||("noscript"===i||"noembed"===i)&&hd(/<\/no(script|embed)/i,t.innerHTML)?(Mt(t),!0):(K&&3===t.nodeType&&(n=t.textContent,n=ld(n,L," "),n=ld(n,O," "),n=ld(n,M," "),t.textContent!==n&&(rd(e.removed,{element:t.cloneNode()}),t.textContent=n)),$t("afterSanitizeElements",t,null),!1)},Ht=function(t,e,n){if(it&&("id"===e||"name"===e)&&(n in i||n in Et))return!1;if((!G||W[e]||!hd(N,e))&&(!Y||!hd(B,e)))if(!H[e]||W[e]){if(!(Ut(t)&&(V.tagNameCheck instanceof RegExp&&hd(V.tagNameCheck,t)||V.tagNameCheck instanceof Function&&V.tagNameCheck(t))&&(V.attributeNameCheck instanceof RegExp&&hd(V.attributeNameCheck,e)||V.attributeNameCheck instanceof Function&&V.attributeNameCheck(e))||"is"===e&&V.allowCustomizedBuiltInElements&&(V.tagNameCheck instanceof RegExp&&hd(V.tagNameCheck,n)||V.tagNameCheck instanceof Function&&V.tagNameCheck(n))))return!1}else if(!ft[e]&&!hd(j,ld(n,F,""))&&("src"!==e&&"xlink:href"!==e&&"href"!==e||"script"===t||0!==ud(n,"data:")||!dt[t])&&(!Z||hd(P,ld(n,F,"")))&&n)return!1;return!0},Ut=function(t){return t.indexOf("-")>0},Vt=function(t){var n,i,a,r;$t("beforeSanitizeAttributes",t,null);var o=t.attributes;if(o){var s={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:H};for(r=o.length;r--;){var c=n=o[r],l=c.name,u=c.namespaceURI;if(i="value"===l?n.value:dd(n.value),a=I(l),s.attrName=a,s.attrValue=i,s.keepAttr=!0,s.forceKeepAttr=void 0,$t("uponSanitizeAttribute",t,s),i=s.attrValue,!s.forceKeepAttr&&(Nt(l,t),s.keepAttr)){if(hd(/\/>/i,i)){Nt(l,t);continue}K&&(i=ld(i,L," "),i=ld(i,O," "),i=ld(i,M," "));var d=I(t.nodeName);if(Ht(d,a,i)){if(at&&("id"===a||"name"===a)&&(Nt(l,t),i=rt+i),w&&"object"===Bu(f)&&"function"==typeof f.getAttributeType&&!u)switch(f.getAttributeType(d,a)){case"TrustedHTML":i=w.createHTML(i);break;case"TrustedScriptURL":i=w.createScriptURL(i)}try{u?t.setAttributeNS(u,l,i):t.setAttribute(l,i),ad(e.removed)}catch{}}}}$t("afterSanitizeAttributes",t,null)}},qt=function t(e){var n,i=Pt(e);for($t("beforeSanitizeShadowDOM",e,null);n=i.nextNode();)$t("uponSanitizeShadowNode",n,null),!zt(n)&&(n.content instanceof a&&t(n.content),Vt(n));$t("afterSanitizeShadowDOM",e,null)};return e.sanitize=function(i){var r,s,c,l,u,d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if((vt=!i)&&(i="\x3c!--\x3e"),"string"!=typeof i&&!jt(i)){if("function"!=typeof i.toString)throw fd("toString is not a function");if("string"!=typeof(i=i.toString()))throw fd("dirty is not a string, aborting")}if(!e.isSupported){if("object"===Bu(t.toStaticHTML)||"function"==typeof t.toStaticHTML){if("string"==typeof i)return t.toStaticHTML(i);if(jt(i))return t.toStaticHTML(i.outerHTML)}return i}if(J||St(d),e.removed=[],"string"==typeof i&&(st=!1),st){if(i.nodeName){var h=I(i.nodeName);if(!$[h]||q[h])throw fd("root node is forbidden and cannot be sanitized in-place")}}else if(i instanceof o)1===(s=(r=Bt("\x3c!----\x3e")).ownerDocument.importNode(i,!0)).nodeType&&"BODY"===s.nodeName||"HTML"===s.nodeName?r=s:r.appendChild(s);else{if(!tt&&!K&&!X&&-1===i.indexOf("<"))return w&&nt?w.createHTML(i):i;if(!(r=Bt(i)))return tt?null:nt?x:""}r&&Q&&Mt(r.firstChild);for(var f=Pt(st?i:r);c=f.nextNode();)3===c.nodeType&&c===l||zt(c)||(c.content instanceof a&&qt(c.content),Vt(c),l=c);if(l=null,st)return i;if(tt){if(et)for(u=E.call(r.ownerDocument);r.firstChild;)u.appendChild(r.firstChild);else u=r;return H.shadowroot&&(u=S.call(n,u,!0)),u}var g=X?r.outerHTML:r.innerHTML;return X&&$["!doctype"]&&r.ownerDocument&&r.ownerDocument.doctype&&r.ownerDocument.doctype.name&&hd(Fd,r.ownerDocument.doctype.name)&&(g="<!DOCTYPE "+r.ownerDocument.doctype.name+">\n"+g),K&&(g=ld(g,L," "),g=ld(g,O," "),g=ld(g,M," ")),w&&nt?w.createHTML(g):g},e.setConfig=function(t){St(t),J=!0},e.clearConfig=function(){kt=null,J=!1},e.isValidAttribute=function(t,e,n){kt||St({});var i=I(t),a=I(e);return Ht(i,a,n)},e.addHook=function(t,e){"function"==typeof e&&(A[t]=A[t]||[],rd(A[t],e))},e.removeHook=function(t){if(A[t])return ad(A[t])},e.removeHooks=function(t){A[t]&&(A[t]=[])},e.removeAllHooks=function(){A={}},e}var Hd=zd();const Ud=t=>t?Kd(t).replace(/\\n/g,"#br#").split("#br#"):[""],Vd=t=>Hd.sanitize(t),qd=(t,e)=>{var n;if(!1!==(null==(n=e.flowchart)?void 0:n.htmlLabels)){const n=e.securityLevel;"antiscript"===n||"strict"===n?t=Vd(t):"loose"!==n&&(t=(t=(t=Kd(t)).replace(/</g,"<").replace(/>/g,">")).replace(/=/g,"="),t=Zd(t))}return t},Wd=(t,e)=>t&&(t=e.dompurifyConfig?Hd.sanitize(qd(t,e),e.dompurifyConfig).toString():Hd.sanitize(qd(t,e),{FORBID_TAGS:["style"]}).toString()),Yd=(t,e)=>"string"==typeof t?Wd(t,e):t.flat().map((t=>Wd(t,e))),Gd=/<br\s*\/?>/gi,Zd=t=>t.replace(/#br#/g,"<br/>"),Kd=t=>t.replace(Gd,"#br#"),Xd=t=>!(!1===t||["false","null","0"].includes(String(t).trim().toLowerCase())),Jd=function(t){let e=t;if(t.split("~").length-1>=2){let t=e;do{e=t,t=e.replace(/~([^\s,:;]+)~/,"<$1>")}while(t!=e);return Jd(t)}return e},Qd={getRows:Ud,sanitizeText:Wd,sanitizeTextOrArray:Yd,hasBreaks:t=>Gd.test(t),splitBreaks:t=>t.split(Gd),lineBreakRegex:Gd,removeScript:Vd,getUrl: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},evaluate:Xd},th={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,n)=>(n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t),hsl2rgb:({h:t,s:e,l:n},i)=>{if(!e)return 2.55*n;t/=360,e/=100;const a=(n/=100)<.5?n*(1+e):n+e-n*e,r=2*n-a;switch(i){case"r":return 255*th.hue2rgb(r,a,t+1/3);case"g":return 255*th.hue2rgb(r,a,t);case"b":return 255*th.hue2rgb(r,a,t-1/3)}},rgb2hsl:({r:t,g:e,b:n},i)=>{t/=255,e/=255,n/=255;const a=Math.max(t,e,n),r=Math.min(t,e,n),o=(a+r)/2;if("l"===i)return 100*o;if(a===r)return 0;const s=a-r;if("s"===i)return 100*(o>.5?s/(2-a-r):s/(a+r));switch(a){case t:return 60*((e-n)/s+(e<n?6:0));case e:return 60*((n-t)/s+2);case n:return 60*((t-e)/s+4);default:return-1}}},eh={channel:th,lang:{clamp:(t,e,n)=>e>n?Math.min(e,Math.max(n,t)):Math.min(n,Math.max(e,t)),round:t=>Math.round(1e10*t)/1e10},unit:{dec2hex:t=>{const e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}}},nh={};for(let t=0;t<=255;t++)nh[t]=eh.unit.dec2hex(t);const ih={ALL:0,RGB:1,HSL:2};class ah{constructor(){this.type=ih.ALL}get(){return this.type}set(t){if(this.type&&this.type!==t)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=t}reset(){this.type=ih.ALL}is(t){return this.type===t}}const rh=ah;class oh{constructor(t,e){this.color=e,this.changed=!1,this.data=t,this.type=new rh}set(t,e){return this.color=e,this.changed=!1,this.data=t,this.type.type=ih.ALL,this}_ensureHSL(){const t=this.data,{h:e,s:n,l:i}=t;void 0===e&&(t.h=eh.channel.rgb2hsl(t,"h")),void 0===n&&(t.s=eh.channel.rgb2hsl(t,"s")),void 0===i&&(t.l=eh.channel.rgb2hsl(t,"l"))}_ensureRGB(){const t=this.data,{r:e,g:n,b:i}=t;void 0===e&&(t.r=eh.channel.hsl2rgb(t,"r")),void 0===n&&(t.g=eh.channel.hsl2rgb(t,"g")),void 0===i&&(t.b=eh.channel.hsl2rgb(t,"b"))}get r(){const t=this.data,e=t.r;return this.type.is(ih.HSL)||void 0===e?(this._ensureHSL(),eh.channel.hsl2rgb(t,"r")):e}get g(){const t=this.data,e=t.g;return this.type.is(ih.HSL)||void 0===e?(this._ensureHSL(),eh.channel.hsl2rgb(t,"g")):e}get b(){const t=this.data,e=t.b;return this.type.is(ih.HSL)||void 0===e?(this._ensureHSL(),eh.channel.hsl2rgb(t,"b")):e}get h(){const t=this.data,e=t.h;return this.type.is(ih.RGB)||void 0===e?(this._ensureRGB(),eh.channel.rgb2hsl(t,"h")):e}get s(){const t=this.data,e=t.s;return this.type.is(ih.RGB)||void 0===e?(this._ensureRGB(),eh.channel.rgb2hsl(t,"s")):e}get l(){const t=this.data,e=t.l;return this.type.is(ih.RGB)||void 0===e?(this._ensureRGB(),eh.channel.rgb2hsl(t,"l")):e}get a(){return this.data.a}set r(t){this.type.set(ih.RGB),this.changed=!0,this.data.r=t}set g(t){this.type.set(ih.RGB),this.changed=!0,this.data.g=t}set b(t){this.type.set(ih.RGB),this.changed=!0,this.data.b=t}set h(t){this.type.set(ih.HSL),this.changed=!0,this.data.h=t}set s(t){this.type.set(ih.HSL),this.changed=!0,this.data.s=t}set l(t){this.type.set(ih.HSL),this.changed=!0,this.data.l=t}set a(t){this.changed=!0,this.data.a=t}}const sh=new oh({r:0,g:0,b:0,a:0},"transparent"),ch={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(35!==t.charCodeAt(0))return;const e=t.match(ch.re);if(!e)return;const n=e[1],i=parseInt(n,16),a=n.length,r=a%4==0,o=a>4,s=o?1:17,c=o?8:4,l=r?0:-1,u=o?255:15;return sh.set({r:(i>>c*(l+3)&u)*s,g:(i>>c*(l+2)&u)*s,b:(i>>c*(l+1)&u)*s,a:r?(i&u)*s/255:1},t)},stringify:t=>{const{r:e,g:n,b:i,a:a}=t;return a<1?`#${nh[Math.round(e)]}${nh[Math.round(n)]}${nh[Math.round(i)]}${nh[Math.round(255*a)]}`:`#${nh[Math.round(e)]}${nh[Math.round(n)]}${nh[Math.round(i)]}`}},lh=ch,uh={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(uh.hueRe);if(e){const[,t,n]=e;switch(n){case"grad":return eh.channel.clamp.h(.9*parseFloat(t));case"rad":return eh.channel.clamp.h(180*parseFloat(t)/Math.PI);case"turn":return eh.channel.clamp.h(360*parseFloat(t))}}return eh.channel.clamp.h(parseFloat(t))},parse:t=>{const e=t.charCodeAt(0);if(104!==e&&72!==e)return;const n=t.match(uh.re);if(!n)return;const[,i,a,r,o,s]=n;return sh.set({h:uh._hue2deg(i),s:eh.channel.clamp.s(parseFloat(a)),l:eh.channel.clamp.l(parseFloat(r)),a:o?eh.channel.clamp.a(s?parseFloat(o)/100:parseFloat(o)):1},t)},stringify:t=>{const{h:e,s:n,l:i,a:a}=t;return a<1?`hsla(${eh.lang.round(e)}, ${eh.lang.round(n)}%, ${eh.lang.round(i)}%, ${a})`:`hsl(${eh.lang.round(e)}, ${eh.lang.round(n)}%, ${eh.lang.round(i)}%)`}},dh=uh,hh={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=hh.colors[t];if(e)return lh.parse(e)},stringify:t=>{const e=lh.stringify(t);for(const n in hh.colors)if(hh.colors[n]===e)return n}},fh=hh,gh={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(114!==e&&82!==e)return;const n=t.match(gh.re);if(!n)return;const[,i,a,r,o,s,c,l,u]=n;return sh.set({r:eh.channel.clamp.r(a?2.55*parseFloat(i):parseFloat(i)),g:eh.channel.clamp.g(o?2.55*parseFloat(r):parseFloat(r)),b:eh.channel.clamp.b(c?2.55*parseFloat(s):parseFloat(s)),a:l?eh.channel.clamp.a(u?parseFloat(l)/100:parseFloat(l)):1},t)},stringify:t=>{const{r:e,g:n,b:i,a:a}=t;return a<1?`rgba(${eh.lang.round(e)}, ${eh.lang.round(n)}, ${eh.lang.round(i)}, ${eh.lang.round(a)})`:`rgb(${eh.lang.round(e)}, ${eh.lang.round(n)}, ${eh.lang.round(i)})`}},ph=gh,bh={format:{keyword:fh,hex:lh,rgb:ph,rgba:ph,hsl:dh,hsla:dh},parse:t=>{if("string"!=typeof t)return t;const e=lh.parse(t)||ph.parse(t)||dh.parse(t)||fh.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(ih.HSL)||void 0===t.data.r?dh.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?ph.stringify(t):lh.stringify(t)},mh=(t,e)=>{const n=bh.parse(t);for(const i in e)n[i]=eh.channel.clamp[i](e[i]);return bh.stringify(n)},yh=(t,e,n=0,i=1)=>{if("number"!=typeof t)return mh(t,{a:e});const a=sh.set({r:eh.channel.clamp.r(t),g:eh.channel.clamp.g(e),b:eh.channel.clamp.b(n),a:eh.channel.clamp.a(i)});return bh.stringify(a)},vh=t=>{const{r:e,g:n,b:i}=bh.parse(t),a=.2126*eh.channel.toLinear(e)+.7152*eh.channel.toLinear(n)+.0722*eh.channel.toLinear(i);return eh.lang.round(a)},wh=t=>vh(t)>=.5,xh=t=>!wh(t),Rh=(t,e,n)=>{const i=bh.parse(t),a=i[e],r=eh.channel.clamp[e](a+n);return a!==r&&(i[e]=r),bh.stringify(i)},_h=(t,e)=>Rh(t,"l",e),kh=(t,e)=>Rh(t,"l",-e),Eh=(t,e)=>{const n=bh.parse(t),i={};for(const a in e)e[a]&&(i[a]=n[a]+e[a]);return mh(t,i)},Ch=(t,e,n=50)=>{const{r:i,g:a,b:r,a:o}=bh.parse(t),{r:s,g:c,b:l,a:u}=bh.parse(e),d=n/100,h=2*d-1,f=o-u,g=((h*f==-1?h:(h+f)/(1+h*f))+1)/2,p=1-g;return yh(i*g+s*p,a*g+c*p,r*g+l*p,o*d+u*(1-d))},Sh=(t,e=100)=>{const n=bh.parse(t);return n.r=255-n.r,n.g=255-n.g,n.b=255-n.b,Ch(n,t,e)},Th=(t,e)=>Eh(t,e?{s:-40,l:10}:{s:-40,l:-10}),Ah="#ffffff",Dh="#f2f2f2";let Ih=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(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||Eh(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||Eh(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Th(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Th(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Th(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Th(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||Sh(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||Sh(this.tertiaryColor),this.lineColor=this.lineColor||Sh(this.background),this.textColor=this.textColor||this.primaryTextColor,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?kh(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||kh(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||Sh(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||_h(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||Eh(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Eh(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Eh(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Eh(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Eh(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Eh(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||Eh(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Eh(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Eh(this.primaryColor,{h:330}),this.darkMode)for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScale"+e]=kh(this["cScale"+e],75);else for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScale"+e]=kh(this["cScale"+e],25);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScaleInv"+e]=this["cScaleInv"+e]||Sh(this["cScale"+e]);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this.darkMode?this["cScalePeer"+e]=this["cScalePeer"+e]||_h(this["cScale"+e],10):this["cScalePeer"+e]=this["cScalePeer"+e]||kh(this["cScale"+e],10);this.scaleLabelColor=this.scaleLabelColor||this.labelTextColor;for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScaleLabel"+e]=this["cScaleLabel"+e]||this.scaleLabelColor;const t=this.darkMode?-4:-1;for(let e=0;e<5;e++)this["surface"+e]=this["surface"+e]||Eh(this.mainBkg,{h:180,s:-15,l:t*(5+3*e)}),this["surfacePeer"+e]=this["surfacePeer"+e]||Eh(this.mainBkg,{h:180,s:-15,l:t*(8+3*e)});this.classText=this.classText||this.textColor,this.fillType0=this.fillType0||this.primaryColor,this.fillType1=this.fillType1||this.secondaryColor,this.fillType2=this.fillType2||Eh(this.primaryColor,{h:64}),this.fillType3=this.fillType3||Eh(this.secondaryColor,{h:64}),this.fillType4=this.fillType4||Eh(this.primaryColor,{h:-64}),this.fillType5=this.fillType5||Eh(this.secondaryColor,{h:-64}),this.fillType6=this.fillType6||Eh(this.primaryColor,{h:128}),this.fillType7=this.fillType7||Eh(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||Eh(this.primaryColor,{l:-10}),this.pie5=this.pie5||Eh(this.secondaryColor,{l:-10}),this.pie6=this.pie6||Eh(this.tertiaryColor,{l:-10}),this.pie7=this.pie7||Eh(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||Eh(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||Eh(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||Eh(this.primaryColor,{h:60,l:-20}),this.pie11=this.pie11||Eh(this.primaryColor,{h:-60,l:-20}),this.pie12=this.pie12||Eh(this.primaryColor,{h:120,l:-10}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?kh(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||Eh(this.primaryColor,{h:-30}),this.git4=this.git4||Eh(this.primaryColor,{h:-60}),this.git5=this.git5||Eh(this.primaryColor,{h:-90}),this.git6=this.git6||Eh(this.primaryColor,{h:60}),this.git7=this.git7||Eh(this.primaryColor,{h:120}),this.darkMode?(this.git0=_h(this.git0,25),this.git1=_h(this.git1,25),this.git2=_h(this.git2,25),this.git3=_h(this.git3,25),this.git4=_h(this.git4,25),this.git5=_h(this.git5,25),this.git6=_h(this.git6,25),this.git7=_h(this.git7,25)):(this.git0=kh(this.git0,25),this.git1=kh(this.git1,25),this.git2=kh(this.git2,25),this.git3=kh(this.git3,25),this.git4=kh(this.git4,25),this.git5=kh(this.git5,25),this.git6=kh(this.git6,25),this.git7=kh(this.git7,25)),this.gitInv0=this.gitInv0||Sh(this.git0),this.gitInv1=this.gitInv1||Sh(this.git1),this.gitInv2=this.gitInv2||Sh(this.git2),this.gitInv3=this.gitInv3||Sh(this.git3),this.gitInv4=this.gitInv4||Sh(this.git4),this.gitInv5=this.gitInv5||Sh(this.git5),this.gitInv6=this.gitInv6||Sh(this.git6),this.gitInv7=this.gitInv7||Sh(this.git7),this.branchLabelColor=this.branchLabelColor||(this.darkMode?"black":this.labelTextColor),this.gitBranchLabel0=this.gitBranchLabel0||this.branchLabelColor,this.gitBranchLabel1=this.gitBranchLabel1||this.branchLabelColor,this.gitBranchLabel2=this.gitBranchLabel2||this.branchLabelColor,this.gitBranchLabel3=this.gitBranchLabel3||this.branchLabelColor,this.gitBranchLabel4=this.gitBranchLabel4||this.branchLabelColor,this.gitBranchLabel5=this.gitBranchLabel5||this.branchLabelColor,this.gitBranchLabel6=this.gitBranchLabel6||this.branchLabelColor,this.gitBranchLabel7=this.gitBranchLabel7||this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||Ah,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Dh}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}};const Lh=t=>{const e=new Ih;return e.calculate(t),e};let Oh=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=_h(this.primaryColor,16),this.tertiaryColor=Eh(this.primaryColor,{h:-160}),this.primaryBorderColor=Sh(this.background),this.secondaryBorderColor=Th(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Th(this.tertiaryColor,this.darkMode),this.primaryTextColor=Sh(this.primaryColor),this.secondaryTextColor=Sh(this.secondaryColor),this.tertiaryTextColor=Sh(this.tertiaryColor),this.lineColor=Sh(this.background),this.textColor=Sh(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=_h(Sh("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=yh(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=kh("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.taskBorderColor=yh(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=yh(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="calculated",this.personBkg="calculated",this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=_h(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=_h(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=_h(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=Eh(this.primaryColor,{h:64}),this.fillType3=Eh(this.secondaryColor,{h:64}),this.fillType4=Eh(this.primaryColor,{h:-64}),this.fillType5=Eh(this.secondaryColor,{h:-64}),this.fillType6=Eh(this.primaryColor,{h:128}),this.fillType7=Eh(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||Eh(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Eh(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Eh(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Eh(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Eh(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Eh(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Eh(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Eh(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Eh(this.primaryColor,{h:330});for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||Sh(this["cScale"+t]);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScalePeer"+t]=this["cScalePeer"+t]||_h(this["cScale"+t],10);for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||Eh(this.mainBkg,{h:30,s:-30,l:-(4*t-10)}),this["surfacePeer"+t]=this["surfacePeer"+t]||Eh(this.mainBkg,{h:30,s:-30,l:-(4*t-7)});this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["pie"+t]=this["cScale"+t];this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.classText=this.primaryTextColor,this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?kh(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=_h(this.secondaryColor,20),this.git1=_h(this.pie2||this.secondaryColor,20),this.git2=_h(this.pie3||this.tertiaryColor,20),this.git3=_h(this.pie4||Eh(this.primaryColor,{h:-30}),20),this.git4=_h(this.pie5||Eh(this.primaryColor,{h:-60}),20),this.git5=_h(this.pie6||Eh(this.primaryColor,{h:-90}),10),this.git6=_h(this.pie7||Eh(this.primaryColor,{h:60}),10),this.git7=_h(this.pie8||Eh(this.primaryColor,{h:120}),20),this.gitInv0=this.gitInv0||Sh(this.git0),this.gitInv1=this.gitInv1||Sh(this.git1),this.gitInv2=this.gitInv2||Sh(this.git2),this.gitInv3=this.gitInv3||Sh(this.git3),this.gitInv4=this.gitInv4||Sh(this.git4),this.gitInv5=this.gitInv5||Sh(this.git5),this.gitInv6=this.gitInv6||Sh(this.git6),this.gitInv7=this.gitInv7||Sh(this.git7),this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||_h(this.background,12),this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||_h(this.background,2)}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}};const Mh=t=>{const e=new Oh;return e.calculate(t),e};let Nh=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=Eh(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=Eh(this.primaryColor,{h:-160}),this.primaryBorderColor=Th(this.primaryColor,this.darkMode),this.secondaryBorderColor=Th(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Th(this.tertiaryColor,this.darkMode),this.primaryTextColor=Sh(this.primaryColor),this.secondaryTextColor=Sh(this.secondaryColor),this.tertiaryTextColor=Sh(this.tertiaryColor),this.lineColor=Sh(this.background),this.textColor=Sh(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=yh(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="calculated",this.personBkg="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Eh(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Eh(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Eh(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Eh(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Eh(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Eh(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Eh(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Eh(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Eh(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||kh(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||kh(this.tertiaryColor,40);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScale"+t]=kh(this["cScale"+t],10),this["cScalePeer"+t]=this["cScalePeer"+t]||kh(this["cScale"+t],25);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||Eh(this["cScale"+t],{h:180});for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||Eh(this.mainBkg,{h:30,l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||Eh(this.mainBkg,{h:30,l:-(7+5*t)});if(this.scaleLabelColor="calculated"!==this.scaleLabelColor&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor,"calculated"!==this.labelTextColor){this.cScaleLabel0=this.cScaleLabel0||Sh(this.labelTextColor),this.cScaleLabel3=this.cScaleLabel3||Sh(this.labelTextColor);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.labelTextColor}this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.textColor,this.edgeLabelBackground=this.labelBackground,this.actorBorder=_h(this.border1,23),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.signalColor=this.textColor,this.signalTextColor=this.textColor,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,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||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Eh(this.primaryColor,{h:64}),this.fillType3=Eh(this.secondaryColor,{h:64}),this.fillType4=Eh(this.primaryColor,{h:-64}),this.fillType5=Eh(this.secondaryColor,{h:-64}),this.fillType6=Eh(this.primaryColor,{h:128}),this.fillType7=Eh(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||Eh(this.tertiaryColor,{l:-40}),this.pie4=this.pie4||Eh(this.primaryColor,{l:-10}),this.pie5=this.pie5||Eh(this.secondaryColor,{l:-30}),this.pie6=this.pie6||Eh(this.tertiaryColor,{l:-20}),this.pie7=this.pie7||Eh(this.primaryColor,{h:60,l:-20}),this.pie8=this.pie8||Eh(this.primaryColor,{h:-60,l:-40}),this.pie9=this.pie9||Eh(this.primaryColor,{h:120,l:-40}),this.pie10=this.pie10||Eh(this.primaryColor,{h:60,l:-40}),this.pie11=this.pie11||Eh(this.primaryColor,{h:-90,l:-40}),this.pie12=this.pie12||Eh(this.primaryColor,{h:120,l:-30}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.labelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||Eh(this.primaryColor,{h:-30}),this.git4=this.git4||Eh(this.primaryColor,{h:-60}),this.git5=this.git5||Eh(this.primaryColor,{h:-90}),this.git6=this.git6||Eh(this.primaryColor,{h:60}),this.git7=this.git7||Eh(this.primaryColor,{h:120}),this.darkMode?(this.git0=_h(this.git0,25),this.git1=_h(this.git1,25),this.git2=_h(this.git2,25),this.git3=_h(this.git3,25),this.git4=_h(this.git4,25),this.git5=_h(this.git5,25),this.git6=_h(this.git6,25),this.git7=_h(this.git7,25)):(this.git0=kh(this.git0,25),this.git1=kh(this.git1,25),this.git2=kh(this.git2,25),this.git3=kh(this.git3,25),this.git4=kh(this.git4,25),this.git5=kh(this.git5,25),this.git6=kh(this.git6,25),this.git7=kh(this.git7,25)),this.gitInv0=this.gitInv0||kh(Sh(this.git0),25),this.gitInv1=this.gitInv1||Sh(this.git1),this.gitInv2=this.gitInv2||Sh(this.git2),this.gitInv3=this.gitInv3||Sh(this.git3),this.gitInv4=this.gitInv4||Sh(this.git4),this.gitInv5=this.gitInv5||Sh(this.git5),this.gitInv6=this.gitInv6||Sh(this.git6),this.gitInv7=this.gitInv7||Sh(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||Sh(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||Sh(this.labelTextColor),this.gitBranchLabel4=this.gitBranchLabel4||this.labelTextColor,this.gitBranchLabel5=this.gitBranchLabel5||this.labelTextColor,this.gitBranchLabel6=this.gitBranchLabel6||this.labelTextColor,this.gitBranchLabel7=this.gitBranchLabel7||this.labelTextColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||Ah,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Dh}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}};const Bh=t=>{const e=new Nh;return e.calculate(t),e};let Ph=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=_h("#cde498",10),this.primaryBorderColor=Th(this.primaryColor,this.darkMode),this.secondaryBorderColor=Th(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Th(this.tertiaryColor,this.darkMode),this.primaryTextColor=Sh(this.primaryColor),this.secondaryTextColor=Sh(this.secondaryColor),this.tertiaryTextColor=Sh(this.primaryColor),this.lineColor=Sh(this.background),this.textColor=Sh(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="calculated",this.personBkg="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Eh(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Eh(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Eh(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Eh(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Eh(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Eh(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Eh(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Eh(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Eh(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||kh(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||kh(this.tertiaryColor,40);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScale"+t]=kh(this["cScale"+t],10),this["cScalePeer"+t]=this["cScalePeer"+t]||kh(this["cScale"+t],25);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||Eh(this["cScale"+t],{h:180});this.scaleLabelColor="calculated"!==this.scaleLabelColor&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||Eh(this.mainBkg,{h:30,s:-30,l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||Eh(this.mainBkg,{h:30,s:-30,l:-(8+5*t)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.actorBorder=kh(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.taskBorderColor=this.border1,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=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||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Eh(this.primaryColor,{h:64}),this.fillType3=Eh(this.secondaryColor,{h:64}),this.fillType4=Eh(this.primaryColor,{h:-64}),this.fillType5=Eh(this.secondaryColor,{h:-64}),this.fillType6=Eh(this.primaryColor,{h:128}),this.fillType7=Eh(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||Eh(this.primaryColor,{l:-30}),this.pie5=this.pie5||Eh(this.secondaryColor,{l:-30}),this.pie6=this.pie6||Eh(this.tertiaryColor,{h:40,l:-40}),this.pie7=this.pie7||Eh(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||Eh(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||Eh(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||Eh(this.primaryColor,{h:60,l:-50}),this.pie11=this.pie11||Eh(this.primaryColor,{h:-60,l:-50}),this.pie12=this.pie12||Eh(this.primaryColor,{h:120,l:-50}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||Eh(this.primaryColor,{h:-30}),this.git4=this.git4||Eh(this.primaryColor,{h:-60}),this.git5=this.git5||Eh(this.primaryColor,{h:-90}),this.git6=this.git6||Eh(this.primaryColor,{h:60}),this.git7=this.git7||Eh(this.primaryColor,{h:120}),this.darkMode?(this.git0=_h(this.git0,25),this.git1=_h(this.git1,25),this.git2=_h(this.git2,25),this.git3=_h(this.git3,25),this.git4=_h(this.git4,25),this.git5=_h(this.git5,25),this.git6=_h(this.git6,25),this.git7=_h(this.git7,25)):(this.git0=kh(this.git0,25),this.git1=kh(this.git1,25),this.git2=kh(this.git2,25),this.git3=kh(this.git3,25),this.git4=kh(this.git4,25),this.git5=kh(this.git5,25),this.git6=kh(this.git6,25),this.git7=kh(this.git7,25)),this.gitInv0=this.gitInv0||Sh(this.git0),this.gitInv1=this.gitInv1||Sh(this.git1),this.gitInv2=this.gitInv2||Sh(this.git2),this.gitInv3=this.gitInv3||Sh(this.git3),this.gitInv4=this.gitInv4||Sh(this.git4),this.gitInv5=this.gitInv5||Sh(this.git5),this.gitInv6=this.gitInv6||Sh(this.git6),this.gitInv7=this.gitInv7||Sh(this.git7),this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||Ah,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Dh}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}};const Fh=t=>{const e=new Ph;return e.calculate(t),e};class jh{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=_h(this.contrast,55),this.background="#ffffff",this.tertiaryColor=Eh(this.primaryColor,{h:-160}),this.primaryBorderColor=Th(this.primaryColor,this.darkMode),this.secondaryBorderColor=Th(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Th(this.tertiaryColor,this.darkMode),this.primaryTextColor=Sh(this.primaryColor),this.secondaryTextColor=Sh(this.secondaryColor),this.tertiaryTextColor=Sh(this.tertiaryColor),this.lineColor=Sh(this.background),this.textColor=Sh(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="calculated",this.personBkg="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=_h(this.contrast,55),this.border2=this.contrast,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 t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||Sh(this["cScale"+t]);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this.darkMode?this["cScalePeer"+t]=this["cScalePeer"+t]||_h(this["cScale"+t],10):this["cScalePeer"+t]=this["cScalePeer"+t]||kh(this["cScale"+t],10);this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor),this.cScaleLabel0=this.cScaleLabel0||this.cScale1,this.cScaleLabel2=this.cScaleLabel2||this.cScale1;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||Eh(this.mainBkg,{l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||Eh(this.mainBkg,{l:-(8+5*t)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.text,this.actorBorder=_h(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.sectionBkgColor=_h(this.contrast,30),this.sectionBkgColor2=_h(this.contrast,30),this.taskBorderColor=kh(this.contrast,10),this.taskBkgColor=this.contrast,this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor=this.text,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=this.mainBkg,this.gridColor=_h(this.border1,30),this.doneTaskBkgColor=this.done,this.doneTaskBorderColor=this.lineColor,this.critBkgColor=this.critical,this.critBorderColor=kh(this.critBkgColor,10),this.todayLineColor=this.critBkgColor,this.transitionColor=this.transitionColor||"#000",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||"#f4f4f4",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.stateBorder=this.stateBorder||"#000",this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#222",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Eh(this.primaryColor,{h:64}),this.fillType3=Eh(this.secondaryColor,{h:64}),this.fillType4=Eh(this.primaryColor,{h:-64}),this.fillType5=Eh(this.secondaryColor,{h:-64}),this.fillType6=Eh(this.primaryColor,{h:128}),this.fillType7=Eh(this.secondaryColor,{h:128});for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["pie"+t]=this["cScale"+t];this.pie12=this.pie0,this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=kh(this.pie1,25)||this.primaryColor,this.git1=this.pie2||this.secondaryColor,this.git2=this.pie3||this.tertiaryColor,this.git3=this.pie4||Eh(this.primaryColor,{h:-30}),this.git4=this.pie5||Eh(this.primaryColor,{h:-60}),this.git5=this.pie6||Eh(this.primaryColor,{h:-90}),this.git6=this.pie7||Eh(this.primaryColor,{h:60}),this.git7=this.pie8||Eh(this.primaryColor,{h:120}),this.gitInv0=this.gitInv0||Sh(this.git0),this.gitInv1=this.gitInv1||Sh(this.git1),this.gitInv2=this.gitInv2||Sh(this.git2),this.gitInv3=this.gitInv3||Sh(this.git3),this.gitInv4=this.gitInv4||Sh(this.git4),this.gitInv5=this.gitInv5||Sh(this.git5),this.gitInv6=this.gitInv6||Sh(this.git6),this.gitInv7=this.gitInv7||Sh(this.git7),this.branchLabelColor=this.branchLabelColor||this.labelTextColor,this.gitBranchLabel0=this.branchLabelColor,this.gitBranchLabel1="white",this.gitBranchLabel2=this.branchLabelColor,this.gitBranchLabel3="white",this.gitBranchLabel4=this.branchLabelColor,this.gitBranchLabel5=this.branchLabelColor,this.gitBranchLabel6=this.branchLabelColor,this.gitBranchLabel7=this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||Ah,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Dh}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}}const $h={base:{getThemeVariables:Lh},dark:{getThemeVariables:Mh},default:{getThemeVariables:Bh},forest:{getThemeVariables:Fh},neutral:{getThemeVariables:t=>{const e=new jh;return e.calculate(t),e}}},zh={theme:"default",themeVariables:$h.default.getThemeVariables(),themeCSS:void 0,maxTextSize:5e4,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize"],deterministicIds:!1,deterministicIDSeed:void 0,flowchart:{titleTopMargin:25,diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},sequence:{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,useMaxWidth:!0,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,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:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",tickInterval:void 0,useMaxWidth:!0,topAxis:!1,useWidth:void 0},journey:{diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,useMaxWidth:!0,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"]},timeline:{diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,useMaxWidth:!0,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},class:{titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},state:{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,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},er:{titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12,useMaxWidth:!0},pie:{useWidth:void 0,useMaxWidth:!0},requirement:{useWidth:void 0,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},gitGraph:{titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0},c4:{useWidth:void 0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,useMaxWidth:!0,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,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}},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"},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},fontSize:16};zh.class&&(zh.class.arrowMarkerAbsolute=zh.arrowMarkerAbsolute),zh.gitGraph&&(zh.gitGraph.arrowMarkerAbsolute=zh.arrowMarkerAbsolute);const Hh=(t,e="")=>Object.keys(t).reduce(((n,i)=>Array.isArray(t[i])?n:"object"==typeof t[i]&&null!==t[i]?[...n,e+i,...Hh(t[i],"")]:[...n,e+i]),[]),Uh=Hh(zh,""),Vh=zh;function qh(t){return typeof t>"u"||null===t}function Wh(t){return"object"==typeof t&&null!==t}function Yh(t){return Array.isArray(t)?t:qh(t)?[]:[t]}function Gh(t,e){var n,i,a,r;if(e)for(n=0,i=(r=Object.keys(e)).length;n<i;n+=1)t[a=r[n]]=e[a];return t}function Zh(t,e){var n,i="";for(n=0;n<e;n+=1)i+=t;return i}function Kh(t){return 0===t&&Number.NEGATIVE_INFINITY===1/t}var Xh={isNothing:qh,isObject:Wh,toArray:Yh,repeat:Zh,isNegativeZero:Kh,extend:Gh};function Jh(t,e){var n="",i=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(n+='in "'+t.mark.name+'" '),n+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!e&&t.mark.snippet&&(n+="\n\n"+t.mark.snippet),i+" "+n):i}function Qh(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=Jh(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}Qh.prototype=Object.create(Error.prototype),Qh.prototype.constructor=Qh,Qh.prototype.toString=function(t){return this.name+": "+Jh(this,t)};var tf=Qh;function ef(t,e,n,i,a){var r="",o="",s=Math.floor(a/2)-1;return i-e>s&&(e=i-s+(r=" ... ").length),n-i>s&&(n=i+s-(o=" ...").length),{str:r+t.slice(e,n).replace(/\t/g,"\u2192")+o,pos:i-e+r.length}}function nf(t,e){return Xh.repeat(" ",e-t.length)+t}function af(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),"number"!=typeof e.indent&&(e.indent=1),"number"!=typeof e.linesBefore&&(e.linesBefore=3),"number"!=typeof e.linesAfter&&(e.linesAfter=2);for(var n,i=/\r?\n|\r|\0/g,a=[0],r=[],o=-1;n=i.exec(t.buffer);)r.push(n.index),a.push(n.index+n[0].length),t.position<=n.index&&o<0&&(o=a.length-2);o<0&&(o=a.length-1);var s,c,l="",u=Math.min(t.line+e.linesAfter,r.length).toString().length,d=e.maxLength-(e.indent+u+3);for(s=1;s<=e.linesBefore&&!(o-s<0);s++)c=ef(t.buffer,a[o-s],r[o-s],t.position-(a[o]-a[o-s]),d),l=Xh.repeat(" ",e.indent)+nf((t.line-s+1).toString(),u)+" | "+c.str+"\n"+l;for(c=ef(t.buffer,a[o],r[o],t.position,d),l+=Xh.repeat(" ",e.indent)+nf((t.line+1).toString(),u)+" | "+c.str+"\n",l+=Xh.repeat("-",e.indent+u+3+c.pos)+"^\n",s=1;s<=e.linesAfter&&!(o+s>=r.length);s++)c=ef(t.buffer,a[o+s],r[o+s],t.position-(a[o]-a[o+s]),d),l+=Xh.repeat(" ",e.indent)+nf((t.line+s+1).toString(),u)+" | "+c.str+"\n";return l.replace(/\n$/,"")}var rf=af,of=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],sf=["scalar","sequence","mapping"];function cf(t){var e={};return null!==t&&Object.keys(t).forEach((function(n){t[n].forEach((function(t){e[String(t)]=n}))})),e}function lf(t,e){if(e=e||{},Object.keys(e).forEach((function(e){if(-1===of.indexOf(e))throw new tf('Unknown option "'+e+'" 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(t){return t},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=cf(e.styleAliases||null),-1===sf.indexOf(this.kind))throw new tf('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}var uf=lf;function df(t,e){var n=[];return t[e].forEach((function(t){var e=n.length;n.forEach((function(n,i){n.tag===t.tag&&n.kind===t.kind&&n.multi===t.multi&&(e=i)})),n[e]=t})),n}function hf(){var t,e,n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function i(t){t.multi?(n.multi[t.kind].push(t),n.multi.fallback.push(t)):n[t.kind][t.tag]=n.fallback[t.tag]=t}for(t=0,e=arguments.length;t<e;t+=1)arguments[t].forEach(i);return n}function ff(t){return this.extend(t)}ff.prototype.extend=function(t){var e=[],n=[];if(t instanceof uf)n.push(t);else if(Array.isArray(t))n=n.concat(t);else{if(!t||!Array.isArray(t.implicit)&&!Array.isArray(t.explicit))throw new tf("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");t.implicit&&(e=e.concat(t.implicit)),t.explicit&&(n=n.concat(t.explicit))}e.forEach((function(t){if(!(t instanceof uf))throw new tf("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(t.loadKind&&"scalar"!==t.loadKind)throw new tf("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(t.multi)throw new tf("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")})),n.forEach((function(t){if(!(t instanceof uf))throw new tf("Specified list of YAML types (or a single Type object) contains a non-Type object.")}));var i=Object.create(ff.prototype);return i.implicit=(this.implicit||[]).concat(e),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=df(i,"implicit"),i.compiledExplicit=df(i,"explicit"),i.compiledTypeMap=hf(i.compiledImplicit,i.compiledExplicit),i};var gf=ff,pf=new uf("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return null!==t?t:""}}),bf=new uf("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return null!==t?t:[]}}),mf=new uf("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return null!==t?t:{}}}),yf=new gf({explicit:[pf,bf,mf]});function vf(t){if(null===t)return!0;var e=t.length;return 1===e&&"~"===t||4===e&&("null"===t||"Null"===t||"NULL"===t)}function wf(){return null}function xf(t){return null===t}var Rf=new uf("tag:yaml.org,2002:null",{kind:"scalar",resolve:vf,construct:wf,predicate:xf,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function _f(t){if(null===t)return!1;var e=t.length;return 4===e&&("true"===t||"True"===t||"TRUE"===t)||5===e&&("false"===t||"False"===t||"FALSE"===t)}function kf(t){return"true"===t||"True"===t||"TRUE"===t}function Ef(t){return"[object Boolean]"===Object.prototype.toString.call(t)}var Cf=new uf("tag:yaml.org,2002:bool",{kind:"scalar",resolve:_f,construct:kf,predicate:Ef,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"});function Sf(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function Tf(t){return 48<=t&&t<=55}function Af(t){return 48<=t&&t<=57}function Df(t){if(null===t)return!1;var e,n=t.length,i=0,a=!1;if(!n)return!1;if(("-"===(e=t[i])||"+"===e)&&(e=t[++i]),"0"===e){if(i+1===n)return!0;if("b"===(e=t[++i])){for(i++;i<n;i++)if("_"!==(e=t[i])){if("0"!==e&&"1"!==e)return!1;a=!0}return a&&"_"!==e}if("x"===e){for(i++;i<n;i++)if("_"!==(e=t[i])){if(!Sf(t.charCodeAt(i)))return!1;a=!0}return a&&"_"!==e}if("o"===e){for(i++;i<n;i++)if("_"!==(e=t[i])){if(!Tf(t.charCodeAt(i)))return!1;a=!0}return a&&"_"!==e}}if("_"===e)return!1;for(;i<n;i++)if("_"!==(e=t[i])){if(!Af(t.charCodeAt(i)))return!1;a=!0}return!(!a||"_"===e)}function If(t){var e,n=t,i=1;if(-1!==n.indexOf("_")&&(n=n.replace(/_/g,"")),("-"===(e=n[0])||"+"===e)&&("-"===e&&(i=-1),e=(n=n.slice(1))[0]),"0"===n)return 0;if("0"===e){if("b"===n[1])return i*parseInt(n.slice(2),2);if("x"===n[1])return i*parseInt(n.slice(2),16);if("o"===n[1])return i*parseInt(n.slice(2),8)}return i*parseInt(n,10)}function Lf(t){return"[object Number]"===Object.prototype.toString.call(t)&&t%1==0&&!Xh.isNegativeZero(t)}var Of=new uf("tag:yaml.org,2002:int",{kind:"scalar",resolve:Df,construct:If,predicate:Lf,represent:{binary:function(t){return t>=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"]}}),Mf=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Nf(t){return!(null===t||!Mf.test(t)||"_"===t[t.length-1])}function Bf(t){var e,n;return n="-"===(e=t.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),".inf"===e?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===e?NaN:n*parseFloat(e,10)}var Pf=/^[-+]?[0-9]+e/;function Ff(t,e){var n;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(Xh.isNegativeZero(t))return"-0.0";return n=t.toString(10),Pf.test(n)?n.replace("e",".e"):n}function jf(t){return"[object Number]"===Object.prototype.toString.call(t)&&(t%1!=0||Xh.isNegativeZero(t))}var $f=new uf("tag:yaml.org,2002:float",{kind:"scalar",resolve:Nf,construct:Bf,predicate:jf,represent:Ff,defaultStyle:"lowercase"}),zf=yf.extend({implicit:[Rf,Cf,Of,$f]}),Hf=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Uf=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 Vf(t){return null!==t&&(null!==Hf.exec(t)||null!==Uf.exec(t))}function qf(t){var e,n,i,a,r,o,s,c,l=0,u=null;if(null===(e=Hf.exec(t))&&(e=Uf.exec(t)),null===e)throw new Error("Date resolve error");if(n=+e[1],i=+e[2]-1,a=+e[3],!e[4])return new Date(Date.UTC(n,i,a));if(r=+e[4],o=+e[5],s=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=6e4*(60*+e[10]+ +(e[11]||0)),"-"===e[9]&&(u=-u)),c=new Date(Date.UTC(n,i,a,r,o,s,l)),u&&c.setTime(c.getTime()-u),c}function Wf(t){return t.toISOString()}var Yf=new uf("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Vf,construct:qf,instanceOf:Date,represent:Wf});function Gf(t){return"<<"===t||null===t}var Zf=new uf("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Gf}),Kf="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";function Xf(t){if(null===t)return!1;var e,n,i=0,a=t.length,r=Kf;for(n=0;n<a;n++)if(!((e=r.indexOf(t.charAt(n)))>64)){if(e<0)return!1;i+=6}return i%8==0}function Jf(t){var e,n,i=t.replace(/[\r\n=]/g,""),a=i.length,r=Kf,o=0,s=[];for(e=0;e<a;e++)e%4==0&&e&&(s.push(o>>16&255),s.push(o>>8&255),s.push(255&o)),o=o<<6|r.indexOf(i.charAt(e));return 0==(n=a%4*6)?(s.push(o>>16&255),s.push(o>>8&255),s.push(255&o)):18===n?(s.push(o>>10&255),s.push(o>>2&255)):12===n&&s.push(o>>4&255),new Uint8Array(s)}function Qf(t){var e,n,i="",a=0,r=t.length,o=Kf;for(e=0;e<r;e++)e%3==0&&e&&(i+=o[a>>18&63],i+=o[a>>12&63],i+=o[a>>6&63],i+=o[63&a]),a=(a<<8)+t[e];return 0==(n=r%3)?(i+=o[a>>18&63],i+=o[a>>12&63],i+=o[a>>6&63],i+=o[63&a]):2===n?(i+=o[a>>10&63],i+=o[a>>4&63],i+=o[a<<2&63],i+=o[64]):1===n&&(i+=o[a>>2&63],i+=o[a<<4&63],i+=o[64],i+=o[64]),i}function tg(t){return"[object Uint8Array]"===Object.prototype.toString.call(t)}var eg=new uf("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Xf,construct:Jf,predicate:tg,represent:Qf}),ng=Object.prototype.hasOwnProperty,ig=Object.prototype.toString;function ag(t){if(null===t)return!0;var e,n,i,a,r,o=[],s=t;for(e=0,n=s.length;e<n;e+=1){if(i=s[e],r=!1,"[object Object]"!==ig.call(i))return!1;for(a in i)if(ng.call(i,a)){if(r)return!1;r=!0}if(!r)return!1;if(-1!==o.indexOf(a))return!1;o.push(a)}return!0}function rg(t){return null!==t?t:[]}var og=new uf("tag:yaml.org,2002:omap",{kind:"sequence",resolve:ag,construct:rg}),sg=Object.prototype.toString;function cg(t){if(null===t)return!0;var e,n,i,a,r,o=t;for(r=new Array(o.length),e=0,n=o.length;e<n;e+=1){if(i=o[e],"[object Object]"!==sg.call(i)||1!==(a=Object.keys(i)).length)return!1;r[e]=[a[0],i[a[0]]]}return!0}function lg(t){if(null===t)return[];var e,n,i,a,r,o=t;for(r=new Array(o.length),e=0,n=o.length;e<n;e+=1)i=o[e],a=Object.keys(i),r[e]=[a[0],i[a[0]]];return r}var ug=new uf("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:cg,construct:lg}),dg=Object.prototype.hasOwnProperty;function hg(t){if(null===t)return!0;var e,n=t;for(e in n)if(dg.call(n,e)&&null!==n[e])return!1;return!0}function fg(t){return null!==t?t:{}}var gg=new uf("tag:yaml.org,2002:set",{kind:"mapping",resolve:hg,construct:fg}),pg=zf.extend({implicit:[Yf,Zf],explicit:[eg,og,ug,gg]}),bg=Object.prototype.hasOwnProperty,mg=1,yg=2,vg=3,wg=4,xg=1,Rg=2,_g=3,kg=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Eg=/[\x85\u2028\u2029]/,Cg=/[,\[\]\{\}]/,Sg=/^(?:!|!!|![a-z\-]+!)$/i,Tg=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Ag(t){return Object.prototype.toString.call(t)}function Dg(t){return 10===t||13===t}function Ig(t){return 9===t||32===t}function Lg(t){return 9===t||32===t||10===t||13===t}function Og(t){return 44===t||91===t||93===t||123===t||125===t}function Mg(t){var e;return 48<=t&&t<=57?t-48:97<=(e=32|t)&&e<=102?e-97+10:-1}function Ng(t){return 120===t?2:117===t?4:85===t?8:0}function Bg(t){return 48<=t&&t<=57?t-48:-1}function Pg(t){return 48===t?"\0":97===t?"\x07":98===t?"\b":116===t||9===t?"\t":110===t?"\n":118===t?"\v":102===t?"\f":114===t?"\r":101===t?"\x1b":32===t?" ":34===t?'"':47===t?"/":92===t?"\\":78===t?"\x85":95===t?"\xa0":76===t?"\u2028":80===t?"\u2029":""}function Fg(t){return t<=65535?String.fromCharCode(t):String.fromCharCode(55296+(t-65536>>10),56320+(t-65536&1023))}for(var jg=new Array(256),$g=new Array(256),zg=0;zg<256;zg++)jg[zg]=Pg(zg)?1:0,$g[zg]=Pg(zg);function Hg(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||pg,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 Ug(t,e){var n={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return n.snippet=rf(n),new tf(e,n)}function Vg(t,e){throw Ug(t,e)}function qg(t,e){t.onWarning&&t.onWarning.call(null,Ug(t,e))}var Wg={YAML:function(t,e,n){var i,a,r;null!==t.version&&Vg(t,"duplication of %YAML directive"),1!==n.length&&Vg(t,"YAML directive accepts exactly one argument"),null===(i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&Vg(t,"ill-formed argument of the YAML directive"),a=parseInt(i[1],10),r=parseInt(i[2],10),1!==a&&Vg(t,"unacceptable YAML version of the document"),t.version=n[0],t.checkLineBreaks=r<2,1!==r&&2!==r&&qg(t,"unsupported YAML version of the document")},TAG:function(t,e,n){var i,a;2!==n.length&&Vg(t,"TAG directive accepts exactly two arguments"),i=n[0],a=n[1],Sg.test(i)||Vg(t,"ill-formed tag handle (first argument) of the TAG directive"),bg.call(t.tagMap,i)&&Vg(t,'there is a previously declared suffix for "'+i+'" tag handle'),Tg.test(a)||Vg(t,"ill-formed tag prefix (second argument) of the TAG directive");try{a=decodeURIComponent(a)}catch{Vg(t,"tag prefix is malformed: "+a)}t.tagMap[i]=a}};function Yg(t,e,n,i){var a,r,o,s;if(e<n){if(s=t.input.slice(e,n),i)for(a=0,r=s.length;a<r;a+=1)9===(o=s.charCodeAt(a))||32<=o&&o<=1114111||Vg(t,"expected valid JSON character");else kg.test(s)&&Vg(t,"the stream contains non-printable characters");t.result+=s}}function Gg(t,e,n,i){var a,r,o,s;for(Xh.isObject(n)||Vg(t,"cannot merge mappings; the provided source object is unacceptable"),o=0,s=(a=Object.keys(n)).length;o<s;o+=1)r=a[o],bg.call(e,r)||(e[r]=n[r],i[r]=!0)}function Zg(t,e,n,i,a,r,o,s,c){var l,u;if(Array.isArray(a))for(l=0,u=(a=Array.prototype.slice.call(a)).length;l<u;l+=1)Array.isArray(a[l])&&Vg(t,"nested arrays are not supported inside keys"),"object"==typeof a&&"[object Object]"===Ag(a[l])&&(a[l]="[object Object]");if("object"==typeof a&&"[object Object]"===Ag(a)&&(a="[object Object]"),a=String(a),null===e&&(e={}),"tag:yaml.org,2002:merge"===i)if(Array.isArray(r))for(l=0,u=r.length;l<u;l+=1)Gg(t,e,r[l],n);else Gg(t,e,r,n);else!t.json&&!bg.call(n,a)&&bg.call(e,a)&&(t.line=o||t.line,t.lineStart=s||t.lineStart,t.position=c||t.position,Vg(t,"duplicated mapping key")),"__proto__"===a?Object.defineProperty(e,a,{configurable:!0,enumerable:!0,writable:!0,value:r}):e[a]=r,delete n[a];return e}function Kg(t){var e;10===(e=t.input.charCodeAt(t.position))?t.position++:13===e?(t.position++,10===t.input.charCodeAt(t.position)&&t.position++):Vg(t,"a line break is expected"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function Xg(t,e,n){for(var i=0,a=t.input.charCodeAt(t.position);0!==a;){for(;Ig(a);)9===a&&-1===t.firstTabInLine&&(t.firstTabInLine=t.position),a=t.input.charCodeAt(++t.position);if(e&&35===a)do{a=t.input.charCodeAt(++t.position)}while(10!==a&&13!==a&&0!==a);if(!Dg(a))break;for(Kg(t),a=t.input.charCodeAt(t.position),i++,t.lineIndent=0;32===a;)t.lineIndent++,a=t.input.charCodeAt(++t.position)}return-1!==n&&0!==i&&t.lineIndent<n&&qg(t,"deficient indentation"),i}function Jg(t){var e,n=t.position;return!(45!==(e=t.input.charCodeAt(n))&&46!==e||e!==t.input.charCodeAt(n+1)||e!==t.input.charCodeAt(n+2)||(n+=3,e=t.input.charCodeAt(n),0!==e&&!Lg(e)))}function Qg(t,e){1===e?t.result+=" ":e>1&&(t.result+=Xh.repeat("\n",e-1))}function tp(t,e,n){var i,a,r,o,s,c,l,u,d=t.kind,h=t.result;if(Lg(u=t.input.charCodeAt(t.position))||Og(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u||(63===u||45===u)&&(Lg(i=t.input.charCodeAt(t.position+1))||n&&Og(i)))return!1;for(t.kind="scalar",t.result="",a=r=t.position,o=!1;0!==u;){if(58===u){if(Lg(i=t.input.charCodeAt(t.position+1))||n&&Og(i))break}else if(35===u){if(Lg(t.input.charCodeAt(t.position-1)))break}else{if(t.position===t.lineStart&&Jg(t)||n&&Og(u))break;if(Dg(u)){if(s=t.line,c=t.lineStart,l=t.lineIndent,Xg(t,!1,-1),t.lineIndent>=e){o=!0,u=t.input.charCodeAt(t.position);continue}t.position=r,t.line=s,t.lineStart=c,t.lineIndent=l;break}}o&&(Yg(t,a,r,!1),Qg(t,t.line-s),a=r=t.position,o=!1),Ig(u)||(r=t.position+1),u=t.input.charCodeAt(++t.position)}return Yg(t,a,r,!1),!!t.result||(t.kind=d,t.result=h,!1)}function ep(t,e){var n,i,a;if(39!==(n=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,i=a=t.position;0!==(n=t.input.charCodeAt(t.position));)if(39===n){if(Yg(t,i,t.position,!0),39!==(n=t.input.charCodeAt(++t.position)))return!0;i=t.position,t.position++,a=t.position}else Dg(n)?(Yg(t,i,a,!0),Qg(t,Xg(t,!1,e)),i=a=t.position):t.position===t.lineStart&&Jg(t)?Vg(t,"unexpected end of the document within a single quoted scalar"):(t.position++,a=t.position);Vg(t,"unexpected end of the stream within a single quoted scalar")}function np(t,e){var n,i,a,r,o,s;if(34!==(s=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,n=i=t.position;0!==(s=t.input.charCodeAt(t.position));){if(34===s)return Yg(t,n,t.position,!0),t.position++,!0;if(92===s){if(Yg(t,n,t.position,!0),Dg(s=t.input.charCodeAt(++t.position)))Xg(t,!1,e);else if(s<256&&jg[s])t.result+=$g[s],t.position++;else if((o=Ng(s))>0){for(a=o,r=0;a>0;a--)(o=Mg(s=t.input.charCodeAt(++t.position)))>=0?r=(r<<4)+o:Vg(t,"expected hexadecimal character");t.result+=Fg(r),t.position++}else Vg(t,"unknown escape sequence");n=i=t.position}else Dg(s)?(Yg(t,n,i,!0),Qg(t,Xg(t,!1,e)),n=i=t.position):t.position===t.lineStart&&Jg(t)?Vg(t,"unexpected end of the document within a double quoted scalar"):(t.position++,i=t.position)}Vg(t,"unexpected end of the stream within a double quoted scalar")}function ip(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g=!0,p=t.tag,b=t.anchor,m=Object.create(null);if(91===(f=t.input.charCodeAt(t.position)))o=93,l=!1,r=[];else{if(123!==f)return!1;o=125,l=!0,r={}}for(null!==t.anchor&&(t.anchorMap[t.anchor]=r),f=t.input.charCodeAt(++t.position);0!==f;){if(Xg(t,!0,e),(f=t.input.charCodeAt(t.position))===o)return t.position++,t.tag=p,t.anchor=b,t.kind=l?"mapping":"sequence",t.result=r,!0;g?44===f&&Vg(t,"expected the node content, but found ','"):Vg(t,"missed comma between flow collection entries"),d=u=h=null,s=c=!1,63===f&&Lg(t.input.charCodeAt(t.position+1))&&(s=c=!0,t.position++,Xg(t,!0,e)),n=t.line,i=t.lineStart,a=t.position,up(t,e,mg,!1,!0),d=t.tag,u=t.result,Xg(t,!0,e),f=t.input.charCodeAt(t.position),(c||t.line===n)&&58===f&&(s=!0,f=t.input.charCodeAt(++t.position),Xg(t,!0,e),up(t,e,mg,!1,!0),h=t.result),l?Zg(t,r,m,d,u,h,n,i,a):s?r.push(Zg(t,null,m,d,u,h,n,i,a)):r.push(u),Xg(t,!0,e),44===(f=t.input.charCodeAt(t.position))?(g=!0,f=t.input.charCodeAt(++t.position)):g=!1}Vg(t,"unexpected end of the stream within a flow collection")}function ap(t,e){var n,i,a,r,o=xg,s=!1,c=!1,l=e,u=0,d=!1;if(124===(r=t.input.charCodeAt(t.position)))i=!1;else{if(62!==r)return!1;i=!0}for(t.kind="scalar",t.result="";0!==r;)if(43===(r=t.input.charCodeAt(++t.position))||45===r)xg===o?o=43===r?_g:Rg:Vg(t,"repeat of a chomping mode identifier");else{if(!((a=Bg(r))>=0))break;0===a?Vg(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?Vg(t,"repeat of an indentation width identifier"):(l=e+a-1,c=!0)}if(Ig(r)){do{r=t.input.charCodeAt(++t.position)}while(Ig(r));if(35===r)do{r=t.input.charCodeAt(++t.position)}while(!Dg(r)&&0!==r)}for(;0!==r;){for(Kg(t),t.lineIndent=0,r=t.input.charCodeAt(t.position);(!c||t.lineIndent<l)&&32===r;)t.lineIndent++,r=t.input.charCodeAt(++t.position);if(!c&&t.lineIndent>l&&(l=t.lineIndent),Dg(r))u++;else{if(t.lineIndent<l){o===_g?t.result+=Xh.repeat("\n",s?1+u:u):o===xg&&s&&(t.result+="\n");break}for(i?Ig(r)?(d=!0,t.result+=Xh.repeat("\n",s?1+u:u)):d?(d=!1,t.result+=Xh.repeat("\n",u+1)):0===u?s&&(t.result+=" "):t.result+=Xh.repeat("\n",u):t.result+=Xh.repeat("\n",s?1+u:u),s=!0,c=!0,u=0,n=t.position;!Dg(r)&&0!==r;)r=t.input.charCodeAt(++t.position);Yg(t,n,t.position,!1)}}return!0}function rp(t,e){var n,i,a=t.tag,r=t.anchor,o=[],s=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=o),i=t.input.charCodeAt(t.position);0!==i&&(-1!==t.firstTabInLine&&(t.position=t.firstTabInLine,Vg(t,"tab characters must not be used in indentation")),45===i&&Lg(t.input.charCodeAt(t.position+1)));)if(s=!0,t.position++,Xg(t,!0,-1)&&t.lineIndent<=e)o.push(null),i=t.input.charCodeAt(t.position);else if(n=t.line,up(t,e,vg,!1,!0),o.push(t.result),Xg(t,!0,-1),i=t.input.charCodeAt(t.position),(t.line===n||t.lineIndent>e)&&0!==i)Vg(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break;return!!s&&(t.tag=a,t.anchor=r,t.kind="sequence",t.result=o,!0)}function op(t,e,n){var i,a,r,o,s,c,l,u=t.tag,d=t.anchor,h={},f=Object.create(null),g=null,p=null,b=null,m=!1,y=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=h),l=t.input.charCodeAt(t.position);0!==l;){if(!m&&-1!==t.firstTabInLine&&(t.position=t.firstTabInLine,Vg(t,"tab characters must not be used in indentation")),i=t.input.charCodeAt(t.position+1),r=t.line,63!==l&&58!==l||!Lg(i)){if(o=t.line,s=t.lineStart,c=t.position,!up(t,n,yg,!1,!0))break;if(t.line===r){for(l=t.input.charCodeAt(t.position);Ig(l);)l=t.input.charCodeAt(++t.position);if(58===l)Lg(l=t.input.charCodeAt(++t.position))||Vg(t,"a whitespace character is expected after the key-value separator within a block mapping"),m&&(Zg(t,h,f,g,p,null,o,s,c),g=p=b=null),y=!0,m=!1,a=!1,g=t.tag,p=t.result;else{if(!y)return t.tag=u,t.anchor=d,!0;Vg(t,"can not read an implicit mapping pair; a colon is missed")}}else{if(!y)return t.tag=u,t.anchor=d,!0;Vg(t,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===l?(m&&(Zg(t,h,f,g,p,null,o,s,c),g=p=b=null),y=!0,m=!0,a=!0):m?(m=!1,a=!0):Vg(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,l=i;if((t.line===r||t.lineIndent>e)&&(m&&(o=t.line,s=t.lineStart,c=t.position),up(t,e,wg,!0,a)&&(m?p=t.result:b=t.result),m||(Zg(t,h,f,g,p,b,o,s,c),g=p=b=null),Xg(t,!0,-1),l=t.input.charCodeAt(t.position)),(t.line===r||t.lineIndent>e)&&0!==l)Vg(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return m&&Zg(t,h,f,g,p,null,o,s,c),y&&(t.tag=u,t.anchor=d,t.kind="mapping",t.result=h),y}function sp(t){var e,n,i,a,r=!1,o=!1;if(33!==(a=t.input.charCodeAt(t.position)))return!1;if(null!==t.tag&&Vg(t,"duplication of a tag property"),60===(a=t.input.charCodeAt(++t.position))?(r=!0,a=t.input.charCodeAt(++t.position)):33===a?(o=!0,n="!!",a=t.input.charCodeAt(++t.position)):n="!",e=t.position,r){do{a=t.input.charCodeAt(++t.position)}while(0!==a&&62!==a);t.position<t.length?(i=t.input.slice(e,t.position),a=t.input.charCodeAt(++t.position)):Vg(t,"unexpected end of the stream within a verbatim tag")}else{for(;0!==a&&!Lg(a);)33===a&&(o?Vg(t,"tag suffix cannot contain exclamation marks"):(n=t.input.slice(e-1,t.position+1),Sg.test(n)||Vg(t,"named tag handle cannot contain such characters"),o=!0,e=t.position+1)),a=t.input.charCodeAt(++t.position);i=t.input.slice(e,t.position),Cg.test(i)&&Vg(t,"tag suffix cannot contain flow indicator characters")}i&&!Tg.test(i)&&Vg(t,"tag name cannot contain such characters: "+i);try{i=decodeURIComponent(i)}catch{Vg(t,"tag name is malformed: "+i)}return r?t.tag=i:bg.call(t.tagMap,n)?t.tag=t.tagMap[n]+i:"!"===n?t.tag="!"+i:"!!"===n?t.tag="tag:yaml.org,2002:"+i:Vg(t,'undeclared tag handle "'+n+'"'),!0}function cp(t){var e,n;if(38!==(n=t.input.charCodeAt(t.position)))return!1;for(null!==t.anchor&&Vg(t,"duplication of an anchor property"),n=t.input.charCodeAt(++t.position),e=t.position;0!==n&&!Lg(n)&&!Og(n);)n=t.input.charCodeAt(++t.position);return t.position===e&&Vg(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(e,t.position),!0}function lp(t){var e,n,i;if(42!==(i=t.input.charCodeAt(t.position)))return!1;for(i=t.input.charCodeAt(++t.position),e=t.position;0!==i&&!Lg(i)&&!Og(i);)i=t.input.charCodeAt(++t.position);return t.position===e&&Vg(t,"name of an alias node must contain at least one character"),n=t.input.slice(e,t.position),bg.call(t.anchorMap,n)||Vg(t,'unidentified alias "'+n+'"'),t.result=t.anchorMap[n],Xg(t,!0,-1),!0}function up(t,e,n,i,a){var r,o,s,c,l,u,d,h,f,g=1,p=!1,b=!1;if(null!==t.listener&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,r=o=s=wg===n||vg===n,i&&Xg(t,!0,-1)&&(p=!0,t.lineIndent>e?g=1:t.lineIndent===e?g=0:t.lineIndent<e&&(g=-1)),1===g)for(;sp(t)||cp(t);)Xg(t,!0,-1)?(p=!0,s=r,t.lineIndent>e?g=1:t.lineIndent===e?g=0:t.lineIndent<e&&(g=-1)):s=!1;if(s&&(s=p||a),(1===g||wg===n)&&(h=mg===n||yg===n?e:e+1,f=t.position-t.lineStart,1===g?s&&(rp(t,f)||op(t,f,h))||ip(t,h)?b=!0:(o&&ap(t,h)||ep(t,h)||np(t,h)?b=!0:lp(t)?(b=!0,(null!==t.tag||null!==t.anchor)&&Vg(t,"alias node should not have any properties")):tp(t,h,mg===n)&&(b=!0,null===t.tag&&(t.tag="?")),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):0===g&&(b=s&&rp(t,f))),null===t.tag)null!==t.anchor&&(t.anchorMap[t.anchor]=t.result);else if("?"===t.tag){for(null!==t.result&&"scalar"!==t.kind&&Vg(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),c=0,l=t.implicitTypes.length;c<l;c+=1)if((d=t.implicitTypes[c]).resolve(t.result)){t.result=d.construct(t.result),t.tag=d.tag,null!==t.anchor&&(t.anchorMap[t.anchor]=t.result);break}}else if("!"!==t.tag){if(bg.call(t.typeMap[t.kind||"fallback"],t.tag))d=t.typeMap[t.kind||"fallback"][t.tag];else for(d=null,c=0,l=(u=t.typeMap.multi[t.kind||"fallback"]).length;c<l;c+=1)if(t.tag.slice(0,u[c].tag.length)===u[c].tag){d=u[c];break}d||Vg(t,"unknown tag !<"+t.tag+">"),null!==t.result&&d.kind!==t.kind&&Vg(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+d.kind+'", not "'+t.kind+'"'),d.resolve(t.result,t.tag)?(t.result=d.construct(t.result,t.tag),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):Vg(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||b}function dp(t){var e,n,i,a,r=t.position,o=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);0!==(a=t.input.charCodeAt(t.position))&&(Xg(t,!0,-1),a=t.input.charCodeAt(t.position),!(t.lineIndent>0||37!==a));){for(o=!0,a=t.input.charCodeAt(++t.position),e=t.position;0!==a&&!Lg(a);)a=t.input.charCodeAt(++t.position);for(i=[],(n=t.input.slice(e,t.position)).length<1&&Vg(t,"directive name must not be less than one character in length");0!==a;){for(;Ig(a);)a=t.input.charCodeAt(++t.position);if(35===a){do{a=t.input.charCodeAt(++t.position)}while(0!==a&&!Dg(a));break}if(Dg(a))break;for(e=t.position;0!==a&&!Lg(a);)a=t.input.charCodeAt(++t.position);i.push(t.input.slice(e,t.position))}0!==a&&Kg(t),bg.call(Wg,n)?Wg[n](t,n,i):qg(t,'unknown document directive "'+n+'"')}Xg(t,!0,-1),0===t.lineIndent&&45===t.input.charCodeAt(t.position)&&45===t.input.charCodeAt(t.position+1)&&45===t.input.charCodeAt(t.position+2)?(t.position+=3,Xg(t,!0,-1)):o&&Vg(t,"directives end mark is expected"),up(t,t.lineIndent-1,wg,!1,!0),Xg(t,!0,-1),t.checkLineBreaks&&Eg.test(t.input.slice(r,t.position))&&qg(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&Jg(t)?46===t.input.charCodeAt(t.position)&&(t.position+=3,Xg(t,!0,-1)):t.position<t.length-1&&Vg(t,"end of the stream or a document separator is expected")}function hp(t,e){e=e||{},0!==(t=String(t)).length&&(10!==t.charCodeAt(t.length-1)&&13!==t.charCodeAt(t.length-1)&&(t+="\n"),65279===t.charCodeAt(0)&&(t=t.slice(1)));var n=new Hg(t,e),i=t.indexOf("\0");for(-1!==i&&(n.position=i,Vg(n,"null byte is not allowed in input")),n.input+="\0";32===n.input.charCodeAt(n.position);)n.lineIndent+=1,n.position+=1;for(;n.position<n.length-1;)dp(n);return n.documents}function fp(t,e,n){null!==e&&"object"==typeof e&&typeof n>"u"&&(n=e,e=null);var i=hp(t,n);if("function"!=typeof e)return i;for(var a=0,r=i.length;a<r;a+=1)e(i[a])}function gp(t,e){var n=hp(t,e);if(0!==n.length){if(1===n.length)return n[0];throw new tf("expected a single document in the stream, but found more")}}var pp=yf,bp={loadAll:fp,load:gp}.load;const mp=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s;function yp(t,e){var n;const i=t.match(mp);if(i){const a=bp(i[1],{schema:pp});return null!=a&&a.title&&(null==(n=e.setDiagramTitle)||n.call(e,a.title)),t.slice(i[0].length)}return t}const vp=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,wp=/\s*%%.*\n/gm,xp={},Rp=function(t,e){t=t.replace(mp,"").replace(vp,"").replace(wp,"\n");for(const[n,{detector:i}]of Object.entries(xp))if(i(t,e))return n;throw new Error(`No diagram type detected for text: ${t}`)},_p=(...t)=>{for(const{id:e,detector:n,loader:i}of t)kp(e,n,i)},kp=(t,e,n)=>{xp[t]?d.error(`Detector with key ${t} already exists`):xp[t]={detector:e,loader:n},d.debug(`Detector with key ${t} added${n?" with loader":""}`)},Ep=t=>xp[t].loader,Cp=function(t,e,n){const{depth:i,clobber:a}=Object.assign({depth:2,clobber:!1},n);return Array.isArray(e)&&!Array.isArray(t)?(e.forEach((e=>Cp(t,e,n))),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach((e=>{t.includes(e)||t.push(e)})),t):void 0===t||i<=0?null!=t&&"object"==typeof t&&"object"==typeof e?Object.assign(t,e):e:(void 0!==e&&"object"==typeof t&&"object"==typeof e&&Object.keys(e).forEach((n=>{"object"!=typeof e[n]||void 0!==t[n]&&"object"!=typeof t[n]?(a||"object"!=typeof t[n]&&"object"!=typeof e[n])&&(t[n]=e[n]):(void 0===t[n]&&(t[n]=Array.isArray(e[n])?[]:{}),t[n]=Cp(t[n],e[n],{depth:i-1,clobber:a}))})),t)},Sp=Cp,Tp="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;var Ap="object"==typeof self&&self&&self.Object===Object&&self;const Dp=Tp||Ap||Function("return this")(),Ip=Dp.Symbol;var Lp=Object.prototype,Op=Lp.hasOwnProperty,Mp=Lp.toString,Np=Ip?Ip.toStringTag:void 0;function Bp(t){var e=Op.call(t,Np),n=t[Np];try{t[Np]=void 0;var i=!0}catch{}var a=Mp.call(t);return i&&(e?t[Np]=n:delete t[Np]),a}var Pp=Object.prototype.toString;function Fp(t){return Pp.call(t)}var jp="[object Null]",$p="[object Undefined]",zp=Ip?Ip.toStringTag:void 0;function Hp(t){return null==t?void 0===t?$p:jp:zp&&zp in Object(t)?Bp(t):Fp(t)}function Up(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}var Vp="[object AsyncFunction]",qp="[object Function]",Wp="[object GeneratorFunction]",Yp="[object Proxy]";function Gp(t){if(!Up(t))return!1;var e=Hp(t);return e==qp||e==Wp||e==Vp||e==Yp}const Zp=Dp["__core-js_shared__"];var Kp=function(){var t=/[^.]+$/.exec(Zp&&Zp.keys&&Zp.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function Xp(t){return!!Kp&&Kp in t}var Jp=Function.prototype.toString;function Qp(t){if(null!=t){try{return Jp.call(t)}catch{}try{return t+""}catch{}}return""}var tb=/[\\^$.*+?()[\]{}|]/g,eb=/^\[object .+?Constructor\]$/,nb=Function.prototype,ib=Object.prototype,ab=nb.toString,rb=ib.hasOwnProperty,ob=RegExp("^"+ab.call(rb).replace(tb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function sb(t){return!(!Up(t)||Xp(t))&&(Gp(t)?ob:eb).test(Qp(t))}function cb(t,e){return null==t?void 0:t[e]}function lb(t,e){var n=cb(t,e);return sb(n)?n:void 0}const ub=lb(Object,"create");function db(){this.__data__=ub?ub(null):{},this.size=0}function hb(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var fb="__lodash_hash_undefined__",gb=Object.prototype.hasOwnProperty;function pb(t){var e=this.__data__;if(ub){var n=e[t];return n===fb?void 0:n}return gb.call(e,t)?e[t]:void 0}var bb=Object.prototype.hasOwnProperty;function mb(t){var e=this.__data__;return ub?void 0!==e[t]:bb.call(e,t)}var yb="__lodash_hash_undefined__";function vb(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=ub&&void 0===e?yb:e,this}function wb(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}function xb(){this.__data__=[],this.size=0}function Rb(t,e){return t===e||t!=t&&e!=e}function _b(t,e){for(var n=t.length;n--;)if(Rb(t[n][0],e))return n;return-1}wb.prototype.clear=db,wb.prototype.delete=hb,wb.prototype.get=pb,wb.prototype.has=mb,wb.prototype.set=vb;var kb=Array.prototype.splice;function Eb(t){var e=this.__data__,n=_b(e,t);return!(n<0||(n==e.length-1?e.pop():kb.call(e,n,1),--this.size,0))}function Cb(t){var e=this.__data__,n=_b(e,t);return n<0?void 0:e[n][1]}function Sb(t){return _b(this.__data__,t)>-1}function Tb(t,e){var n=this.__data__,i=_b(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}function Ab(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}Ab.prototype.clear=xb,Ab.prototype.delete=Eb,Ab.prototype.get=Cb,Ab.prototype.has=Sb,Ab.prototype.set=Tb;const Db=lb(Dp,"Map");function Ib(){this.size=0,this.__data__={hash:new wb,map:new(Db||Ab),string:new wb}}function Lb(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}function Ob(t,e){var n=t.__data__;return Lb(e)?n["string"==typeof e?"string":"hash"]:n.map}function Mb(t){var e=Ob(this,t).delete(t);return this.size-=e?1:0,e}function Nb(t){return Ob(this,t).get(t)}function Bb(t){return Ob(this,t).has(t)}function Pb(t,e){var n=Ob(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}function Fb(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}Fb.prototype.clear=Ib,Fb.prototype.delete=Mb,Fb.prototype.get=Nb,Fb.prototype.has=Bb,Fb.prototype.set=Pb;var jb="Expected a function";function $b(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(jb);var n=function(){var i=arguments,a=e?e.apply(this,i):i[0],r=n.cache;if(r.has(a))return r.get(a);var o=t.apply(this,i);return n.cache=r.set(a,o)||r,o};return n.cache=new($b.Cache||Fb),n}$b.Cache=Fb;const zb={curveBasis:Kl,curveBasisClosed:Jl,curveBasisOpen:tu,curveBumpX:ql,curveBumpY:Wl,curveBundle:nu,curveCardinalClosed:su,curveCardinalOpen:lu,curveCardinal:ru,curveCatmullRomClosed:gu,curveCatmullRomOpen:bu,curveCatmullRom:hu,curveLinear:Pl,curveLinearClosed:yu,curveMonotoneX:Cu,curveMonotoneY:Su,curveNatural:Du,curveStep:Lu,curveStepAfter:Mu,curveStepBefore:Ou},Hb=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,Ub=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,Vb=function(t,e){const n=qb(t,/(?:init\b)|(?:initialize\b)/);let i={};if(Array.isArray(n)){const t=n.map((t=>t.args));gm(t),i=Sp(i,[...t])}else i=n.args;if(i){let n=Rp(t,e);["config"].forEach((t=>{void 0!==i[t]&&("flowchart-v2"===n&&(n="flowchart"),i[n]=i[t],delete i[t])}))}return i},qb=function(t,e=null){try{const n=new RegExp(`[%]{2}(?![{]${Ub.source})(?=[}][%]{2}).*\n`,"ig");let i;t=t.trim().replace(n,"").replace(/'/gm,'"'),d.debug(`Detecting diagram directive${null!==e?" type:"+e:""} based on the text:${t}`);const a=[];for(;null!==(i=Hb.exec(t));)if(i.index===Hb.lastIndex&&Hb.lastIndex++,i&&!e||e&&i[1]&&i[1].match(e)||e&&i[2]&&i[2].match(e)){const t=i[1]?i[1]:i[2],e=i[3]?i[3].trim():i[4]?JSON.parse(i[4].trim()):null;a.push({type:t,args:e})}return 0===a.length&&a.push({type:t,args:null}),1===a.length?a[0]:a}catch(n){return d.error(`ERROR: ${n.message} - Unable to parse directive\n ${null!==e?" type:"+e:""} based on the text:${t}`),{type:null,args:null}}},Wb=function(t,e){for(const[n,i]of e.entries())if(i.match(t))return n;return-1};function Yb(t,e){if(!t)return e;const n=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return zb[n]||e}function Gb(t,e){const n=t.trim();if(n)return"loose"!==e.securityLevel?p(n):n}const Zb=(t,...e)=>{const n=t.split("."),i=n.length-1,a=n[i];let r=window;for(let o=0;o<i;o++)if(r=r[n[o]],!r)return;r[a](...e)};function Kb(t,e){return t&&e?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)):0}function Xb(t){let e,n=0;t.forEach((t=>{n+=Kb(t,e),e=t}));let i,a=n/2;return e=void 0,t.forEach((t=>{if(e&&!i){const n=Kb(t,e);if(n<a)a-=n;else{const r=a/n;r<=0&&(i=e),r>=1&&(i={x:t.x,y:t.y}),r>0&&r<1&&(i={x:(1-r)*e.x+r*t.x,y:(1-r)*e.y+r*t.y})}}e=t})),i}function Jb(t){return 1===t.length?t[0]:Xb(t)}const Qb=(t,e,n)=>{let i;d.info(`our points ${JSON.stringify(e)}`),e[0]!==n&&(e=e.reverse());let a,r=25;i=void 0,e.forEach((t=>{if(i&&!a){const e=Kb(t,i);if(e<r)r-=e;else{const n=r/e;n<=0&&(a=i),n>=1&&(a={x:t.x,y:t.y}),n>0&&n<1&&(a={x:(1-n)*i.x+n*t.x,y:(1-n)*i.y+n*t.y})}}i=t}));const o=t?10:5,s=Math.atan2(e[0].y-a.y,e[0].x-a.x),c={x:0,y:0};return c.x=Math.sin(s)*o+(e[0].x+a.x)/2,c.y=-Math.cos(s)*o+(e[0].y+a.y)/2,c};function tm(t,e,n){let i,a=JSON.parse(JSON.stringify(n));d.info("our points",a),"start_left"!==e&&"start_right"!==e&&(a=a.reverse()),a.forEach((t=>{i=t}));let r,o=25+t;i=void 0,a.forEach((t=>{if(i&&!r){const e=Kb(t,i);if(e<o)o-=e;else{const n=o/e;n<=0&&(r=i),n>=1&&(r={x:t.x,y:t.y}),n>0&&n<1&&(r={x:(1-n)*i.x+n*t.x,y:(1-n)*i.y+n*t.y})}}i=t}));const s=10+.5*t,c=Math.atan2(a[0].y-r.y,a[0].x-r.x),l={x:0,y:0};return l.x=Math.sin(c)*s+(a[0].x+r.x)/2,l.y=-Math.cos(c)*s+(a[0].y+r.y)/2,"start_left"===e&&(l.x=Math.sin(c+Math.PI)*s+(a[0].x+r.x)/2,l.y=-Math.cos(c+Math.PI)*s+(a[0].y+r.y)/2),"end_right"===e&&(l.x=Math.sin(c-Math.PI)*s+(a[0].x+r.x)/2-5,l.y=-Math.cos(c-Math.PI)*s+(a[0].y+r.y)/2-5),"end_left"===e&&(l.x=Math.sin(c)*s+(a[0].x+r.x)/2-5,l.y=-Math.cos(c)*s+(a[0].y+r.y)/2-5),l}function em(t){let e="",n="";for(const i of t)void 0!==i&&(i.startsWith("color:")||i.startsWith("text-align:")?n=n+i+";":e=e+i+";");return{style:e,labelStyle:n}}let nm=0;const im=()=>(nm++,"id-"+Math.random().toString(36).substr(2,12)+"-"+nm);function am(t){let e="";const n="0123456789abcdef",i=n.length;for(let a=0;a<t;a++)e+=n.charAt(Math.floor(Math.random()*i));return e}const rm=t=>am(t.length),om=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}},sm=function(t,e){const n=e.text.replace(Qd.lineBreakRegex," "),[,i]=ym(e.fontSize),a=t.append("text");a.attr("x",e.x),a.attr("y",e.y),a.style("text-anchor",e.anchor),a.style("font-family",e.fontFamily),a.style("font-size",i),a.style("font-weight",e.fontWeight),a.attr("fill",e.fill),void 0!==e.class&&a.attr("class",e.class);const r=a.append("tspan");return r.attr("x",e.x+2*e.textMargin),r.attr("fill",e.fill),r.text(n),a},cm=$b(((t,e,n)=>{if(!t||(n=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"<br/>"},n),Qd.lineBreakRegex.test(t)))return t;const i=t.split(" "),a=[];let r="";return i.forEach(((t,o)=>{const s=dm(`${t} `,n),c=dm(r,n);if(s>e){const{hyphenatedStrings:i,remainingWord:o}=lm(t,e,"-",n);a.push(r,...i),r=o}else c+s>=e?(a.push(r),r=t):r=[r,t].filter(Boolean).join(" ");o+1===i.length&&a.push(r)})),a.filter((t=>""!==t)).join(n.joinWith)}),((t,e,n)=>`${t}${e}${n.fontSize}${n.fontWeight}${n.fontFamily}${n.joinWith}`)),lm=$b(((t,e,n="-",i)=>{i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},i);const a=[...t],r=[];let o="";return a.forEach(((t,s)=>{const c=`${o}${t}`;if(dm(c,i)>=e){const t=s+1,e=a.length===t,i=`${c}${n}`;r.push(e?c:i),o=""}else o=c})),{hyphenatedStrings:r,remainingWord:o}}),((t,e,n="-",i)=>`${t}${e}${n}${i.fontSize}${i.fontWeight}${i.fontFamily}`));function um(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:15},e),hm(t,e).height}function dm(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e),hm(t,e).width}const hm=$b(((t,e)=>{e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e);const{fontSize:n,fontFamily:i,fontWeight:a}=e;if(!t)return{width:0,height:0};const[,r]=ym(n),o=["sans-serif",i],s=t.split(Qd.lineBreakRegex),c=[],l=un("body");if(!l.remove)return{width:0,height:0,lineHeight:0};const u=l.append("svg");for(const d of o){let t=0;const e={width:0,height:0,lineHeight:0};for(const n of s){const i=om();i.text=n;const o=sm(u,i).style("font-size",r).style("font-weight",a).style("font-family",d),s=(o._groups||o)[0][0].getBBox();e.width=Math.round(Math.max(e.width,s.width)),t=Math.round(s.height),e.height+=t,e.lineHeight=Math.round(Math.max(e.lineHeight,t))}c.push(e)}return u.remove(),c[isNaN(c[1].height)||isNaN(c[1].width)||isNaN(c[1].lineHeight)||c[0].height>c[1].height&&c[0].width>c[1].width&&c[0].lineHeight>c[1].lineHeight?0:1]}),((t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`));let fm;const gm=t=>{if(d.debug("directiveSanitizer called with",t),"object"==typeof t&&(t.length?t.forEach((t=>gm(t))):Object.keys(t).forEach((e=>{d.debug("Checking key",e),e.startsWith("__")&&(d.debug("sanitize deleting __ option",e),delete t[e]),e.includes("proto")&&(d.debug("sanitize deleting proto option",e),delete t[e]),e.includes("constr")&&(d.debug("sanitize deleting constr option",e),delete t[e]),e.includes("themeCSS")&&(d.debug("sanitizing themeCss option"),t[e]=pm(t[e])),e.includes("fontFamily")&&(d.debug("sanitizing fontFamily option"),t[e]=pm(t[e])),e.includes("altFontFamily")&&(d.debug("sanitizing altFontFamily option"),t[e]=pm(t[e])),Uh.includes(e)?"object"==typeof t[e]&&(d.debug("sanitize deleting object",e),gm(t[e])):(d.debug("sanitize deleting option",e),delete t[e])}))),t.themeVariables){const e=Object.keys(t.themeVariables);for(const n of e){const e=t.themeVariables[n];e&&e.match&&!e.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[n]="")}}d.debug("After sanitization",t)},pm=t=>{let e=0,n=0;for(const i of t){if(e<n)return"{ /* ERROR: Unbalanced CSS */ }";"{"===i?e++:"}"===i&&n++}return e!==n?"{ /* ERROR: Unbalanced CSS */ }":t};function bm(t){return"str"in t}function mm(t){return t instanceof Error?t.message:String(t)}const ym=t=>{if("number"==typeof t)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]},vm={assignWithDepth:Sp,wrapLabel:cm,calculateTextHeight:um,calculateTextWidth:dm,calculateTextDimensions:hm,detectInit:Vb,detectDirective:qb,isSubstringInArray:Wb,interpolateToCurve:Yb,calcLabelPosition:Jb,calcCardinalityPosition:Qb,calcTerminalLabelPosition:tm,formatUrl:Gb,getStylesFromArray:em,generateId:im,random:rm,runFunc:Zb,entityDecode:function(t){return fm=fm||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),fm.innerHTML=t,unescape(fm.textContent)},initIdGenerator:class{constructor(t,e){this.deterministic=t,this.seed=e,this.count=e?e.length:0}next(){return this.deterministic?this.count++:Date.now()}},directiveSanitizer:gm,sanitizeCss:pm,insertTitle:(t,e,n,i)=>{if(!i)return;const a=t.node().getBBox();t.append("text").text(i).attr("x",a.x+a.width/2).attr("y",-n).attr("class",e)},parseFontSize:ym};var wm="comm",xm="rule",Rm="decl",_m="@import",km="@keyframes",Em=Math.abs,Cm=String.fromCharCode;function Sm(t){return t.trim()}function Tm(t,e,n){return t.replace(e,n)}function Am(t,e){return t.indexOf(e)}function Dm(t,e){return 0|t.charCodeAt(e)}function Im(t,e,n){return t.slice(e,n)}function Lm(t){return t.length}function Om(t){return t.length}function Mm(t,e){return e.push(t),t}var Nm=1,Bm=1,Pm=0,Fm=0,jm=0,$m="";function zm(t,e,n,i,a,r,o){return{value:t,root:e,parent:n,type:i,props:a,children:r,line:Nm,column:Bm,length:o,return:""}}function Hm(){return jm}function Um(){return jm=Fm>0?Dm($m,--Fm):0,Bm--,10===jm&&(Bm=1,Nm--),jm}function Vm(){return jm=Fm<Pm?Dm($m,Fm++):0,Bm++,10===jm&&(Bm=1,Nm++),jm}function qm(){return Dm($m,Fm)}function Wm(){return Fm}function Ym(t,e){return Im($m,t,e)}function Gm(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function Zm(t){return Nm=Bm=1,Pm=Lm($m=t),Fm=0,[]}function Km(t){return $m="",t}function Xm(t){return Sm(Ym(Fm-1,ty(91===t?t+2:40===t?t+1:t)))}function Jm(t){for(;(jm=qm())&&jm<33;)Vm();return Gm(t)>2||Gm(jm)>3?"":" "}function Qm(t,e){for(;--e&&Vm()&&!(jm<48||jm>102||jm>57&&jm<65||jm>70&&jm<97););return Ym(t,Wm()+(e<6&&32==qm()&&32==Vm()))}function ty(t){for(;Vm();)switch(jm){case t:return Fm;case 34:case 39:34!==t&&39!==t&&ty(jm);break;case 40:41===t&&ty(t);break;case 92:Vm()}return Fm}function ey(t,e){for(;Vm()&&t+jm!==57&&(t+jm!==84||47!==qm()););return"/*"+Ym(e,Fm-1)+"*"+Cm(47===t?t:Vm())}function ny(t){for(;!Gm(qm());)Vm();return Ym(t,Fm)}function iy(t){return Km(ay("",null,null,null,[""],t=Zm(t),0,[0],t))}function ay(t,e,n,i,a,r,o,s,c){for(var l=0,u=0,d=o,h=0,f=0,g=0,p=1,b=1,m=1,y=0,v="",w=a,x=r,R=i,_=v;b;)switch(g=y,y=Vm()){case 40:if(108!=g&&58==Dm(_,d-1)){-1!=Am(_+=Tm(Xm(y),"&","&\f"),"&\f")&&(m=-1);break}case 34:case 39:case 91:_+=Xm(y);break;case 9:case 10:case 13:case 32:_+=Jm(g);break;case 92:_+=Qm(Wm()-1,7);continue;case 47:switch(qm()){case 42:case 47:Mm(oy(ey(Vm(),Wm()),e,n),c);break;default:_+="/"}break;case 123*p:s[l++]=Lm(_)*m;case 125*p:case 59:case 0:switch(y){case 0:case 125:b=0;case 59+u:f>0&&Lm(_)-d&&Mm(f>32?sy(_+";",i,n,d-1):sy(Tm(_," ","")+";",i,n,d-2),c);break;case 59:_+=";";default:if(Mm(R=ry(_,e,n,l,u,a,s,v,w=[],x=[],d),r),123===y)if(0===u)ay(_,e,R,R,w,r,d,s,x);else switch(h){case 100:case 109:case 115:ay(t,R,R,i&&Mm(ry(t,R,R,0,0,a,s,v,a,w=[],d),x),a,x,d,s,i?w:x);break;default:ay(_,R,R,R,[""],x,0,s,x)}}l=u=f=0,p=m=1,v=_="",d=o;break;case 58:d=1+Lm(_),f=g;default:if(p<1)if(123==y)--p;else if(125==y&&0==p++&&125==Um())continue;switch(_+=Cm(y),y*p){case 38:m=u>0?1:(_+="\f",-1);break;case 44:s[l++]=(Lm(_)-1)*m,m=1;break;case 64:45===qm()&&(_+=Xm(Vm())),h=qm(),u=d=Lm(v=_+=ny(Wm())),y++;break;case 45:45===g&&2==Lm(_)&&(p=0)}}return r}function ry(t,e,n,i,a,r,o,s,c,l,u){for(var d=a-1,h=0===a?r:[""],f=Om(h),g=0,p=0,b=0;g<i;++g)for(var m=0,y=Im(t,d+1,d=Em(p=o[g])),v=t;m<f;++m)(v=Sm(p>0?h[m]+" "+y:Tm(y,/&\f/g,h[m])))&&(c[b++]=v);return zm(t,e,n,0===a?xm:s,c,l,u)}function oy(t,e,n){return zm(t,e,n,wm,Cm(Hm()),Im(t,2,-2),0)}function sy(t,e,n,i){return zm(t,e,n,Rm,Im(t,0,i),Im(t,i+1,-1),i)}function cy(t,e){for(var n="",i=Om(t),a=0;a<i;a++)n+=e(t[a],a,t,e)||"";return n}function ly(t,e,n,i){switch(t.type){case _m:case Rm:return t.return=t.return||t.value;case wm:return"";case km:return t.return=t.value+"{"+cy(t.children,i)+"}";case xm:t.value=t.props.join(",")}return Lm(n=cy(t.children,i))?t.return=t.value+"{"+n+"}":""}const uy="9.4.3",dy=Object.freeze(Vh);let hy,fy=Sp({},dy),gy=[],py=Sp({},dy);const by=(t,e)=>{let n=Sp({},t),i={};for(const a of e)_y(a),i=Sp(i,a);if(n=Sp(n,i),i.theme&&i.theme in $h){const t=Sp({},hy),e=Sp(t.themeVariables||{},i.themeVariables);n.theme&&n.theme in $h&&(n.themeVariables=$h[n.theme].getThemeVariables(e))}return py=n,Ay(py),py},my=t=>(fy=Sp({},dy),fy=Sp(fy,t),t.theme&&$h[t.theme]&&(fy.themeVariables=$h[t.theme].getThemeVariables(t.themeVariables)),by(fy,gy),fy),yy=t=>{hy=Sp({},t)},vy=t=>(fy=Sp(fy,t),by(fy,gy),fy),wy=()=>Sp({},fy),xy=t=>(Ay(t),Sp(py,t),Ry()),Ry=()=>Sp({},py),_y=t=>{["secure",...fy.secure??[]].forEach((e=>{void 0!==t[e]&&(d.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])})),Object.keys(t).forEach((e=>{0===e.indexOf("__")&&delete t[e]})),Object.keys(t).forEach((e=>{"string"==typeof t[e]&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],"object"==typeof t[e]&&_y(t[e])}))},ky=t=>{t.fontFamily&&(t.themeVariables&&t.themeVariables.fontFamily||(t.themeVariables={fontFamily:t.fontFamily})),gy.push(t),by(fy,gy)},Ey=(t=fy)=>{gy=[],by(t,gy)};var Cy=(t=>(t.LAZY_LOAD_DEPRECATED="The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.",t))(Cy||{});const Sy={},Ty=t=>{Sy[t]||(d.warn(Cy[t]),Sy[t]=!0)},Ay=t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&Ty("LAZY_LOAD_DEPRECATED")},Dy=function(t,e){for(let n of e)t.attr(n[0],n[1])},Iy=function(t,e,n){let i=new Map;return n?(i.set("width","100%"),i.set("style",`max-width: ${e}px;`)):(i.set("height",t),i.set("width",e)),i},Ly=function(t,e,n,i){const a=Iy(e,n,i);Dy(t,a)},Oy=function(t,e,n,i){const a=e.node().getBBox(),r=a.width,o=a.height;d.info(`SVG bounds: ${r}x${o}`,a);let s=0,c=0;d.info(`Graph bounds: ${s}x${c}`,t),s=r+2*n,c=o+2*n,d.info(`Calculated bounds: ${s}x${c}`),Ly(e,c,s,i);const l=`${a.x-n} ${a.y-n} ${a.width+2*n} ${a.height+2*n}`;e.attr("viewBox",l)},My=t=>`g.classGroup text {\n fill: ${t.nodeBorder};\n fill: ${t.classText};\n stroke: none;\n font-family: ${t.fontFamily};\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ${t.classText};\n}\n.edgeLabel .label rect {\n fill: ${t.mainBkg};\n}\n.label text {\n fill: ${t.classText};\n}\n.edgeLabel .label span {\n background: ${t.mainBkg};\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ${t.nodeBorder};\n stroke: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n}\n\ng.classGroup line {\n stroke: ${t.nodeBorder};\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${t.mainBkg};\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ${t.nodeBorder};\n font-size: 10px;\n}\n\n.relation {\n stroke: ${t.lineColor};\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n.dotted-line{\n stroke-dasharray: 1 2;\n}\n\n#compositionStart, .composition {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopStart, .lollipop {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopEnd, .lollipop {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n}\n\n.classTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n}\n`,Ny=t=>`\n .entityBox {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n }\n\n .attributeBoxOdd {\n fill: ${t.attributeBackgroundColorOdd};\n stroke: ${t.nodeBorder};\n }\n\n .attributeBoxEven {\n fill: ${t.attributeBackgroundColorEven};\n stroke: ${t.nodeBorder};\n }\n\n .relationshipLabelBox {\n fill: ${t.tertiaryColor};\n opacity: 0.7;\n background-color: ${t.tertiaryColor};\n rect {\n opacity: 0.5;\n }\n }\n\n .relationshipLine {\n stroke: ${t.lineColor};\n }\n\n .entityTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n } \n`,By=()=>"",Py=t=>`.label {\n font-family: ${t.fontFamily};\n color: ${t.nodeTextColor||t.textColor};\n }\n .cluster-label text {\n fill: ${t.titleColor};\n }\n .cluster-label span {\n color: ${t.titleColor};\n }\n\n .label text,span {\n fill: ${t.nodeTextColor||t.textColor};\n color: ${t.nodeTextColor||t.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${t.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${t.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${t.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${t.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${t.edgeLabelBackground};\n fill: ${t.edgeLabelBackground};\n }\n text-align: center;\n }\n\n .cluster rect {\n fill: ${t.clusterBkg};\n stroke: ${t.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${t.titleColor};\n }\n\n .cluster span {\n color: ${t.titleColor};\n }\n /* .cluster div {\n color: ${t.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${t.fontFamily};\n font-size: 12px;\n background: ${t.tertiaryColor};\n border: 1px solid ${t.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n`,Fy=t=>`\n .mermaid-main-font {\n font-family: "trebuchet ms", verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n .exclude-range {\n fill: ${t.excludeBkgColor};\n }\n\n .section {\n stroke: none;\n opacity: 0.2;\n }\n\n .section0 {\n fill: ${t.sectionBkgColor};\n }\n\n .section2 {\n fill: ${t.sectionBkgColor2};\n }\n\n .section1,\n .section3 {\n fill: ${t.altSectionBkgColor};\n opacity: 0.2;\n }\n\n .sectionTitle0 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle1 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle2 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle3 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle {\n text-anchor: start;\n // font-size: ${t.ganttFontSize};\n // text-height: 14px;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n\n }\n\n\n /* Grid and axis */\n\n .grid .tick {\n stroke: ${t.gridColor};\n opacity: 0.8;\n shape-rendering: crispEdges;\n text {\n font-family: ${t.fontFamily};\n fill: ${t.textColor};\n }\n }\n\n .grid path {\n stroke-width: 0;\n }\n\n\n /* Today line */\n\n .today {\n fill: none;\n stroke: ${t.todayLineColor};\n stroke-width: 2px;\n }\n\n\n /* Task styling */\n\n /* Default task */\n\n .task {\n stroke-width: 2;\n }\n\n .taskText {\n text-anchor: middle;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n\n // .taskText:not([font-size]) {\n // font-size: ${t.ganttFontSize};\n // }\n\n .taskTextOutsideRight {\n fill: ${t.taskTextDarkColor};\n text-anchor: start;\n // font-size: ${t.ganttFontSize};\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n\n }\n\n .taskTextOutsideLeft {\n fill: ${t.taskTextDarkColor};\n text-anchor: end;\n // font-size: ${t.ganttFontSize};\n }\n\n /* Special case clickable */\n .task.clickable {\n cursor: pointer;\n }\n .taskText.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideLeft.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideRight.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n /* Specific task settings for the sections*/\n\n .taskText0,\n .taskText1,\n .taskText2,\n .taskText3 {\n fill: ${t.taskTextColor};\n }\n\n .task0,\n .task1,\n .task2,\n .task3 {\n fill: ${t.taskBkgColor};\n stroke: ${t.taskBorderColor};\n }\n\n .taskTextOutside0,\n .taskTextOutside2\n {\n fill: ${t.taskTextOutsideColor};\n }\n\n .taskTextOutside1,\n .taskTextOutside3 {\n fill: ${t.taskTextOutsideColor};\n }\n\n\n /* Active task */\n\n .active0,\n .active1,\n .active2,\n .active3 {\n fill: ${t.activeTaskBkgColor};\n stroke: ${t.activeTaskBorderColor};\n }\n\n .activeText0,\n .activeText1,\n .activeText2,\n .activeText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n\n /* Completed task */\n\n .done0,\n .done1,\n .done2,\n .done3 {\n stroke: ${t.doneTaskBorderColor};\n fill: ${t.doneTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneText0,\n .doneText1,\n .doneText2,\n .doneText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n\n /* Tasks on the critical line */\n\n .crit0,\n .crit1,\n .crit2,\n .crit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.critBkgColor};\n stroke-width: 2;\n }\n\n .activeCrit0,\n .activeCrit1,\n .activeCrit2,\n .activeCrit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.activeTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneCrit0,\n .doneCrit1,\n .doneCrit2,\n .doneCrit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.doneTaskBkgColor};\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges;\n }\n\n .milestone {\n transform: rotate(45deg) scale(0.8,0.8);\n }\n\n .milestoneText {\n font-style: italic;\n }\n .doneCritText0,\n .doneCritText1,\n .doneCritText2,\n .doneCritText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n .activeCritText0,\n .activeCritText1,\n .activeCritText2,\n .activeCritText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n .titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor} ;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n`,jy=()=>"",$y=t=>`\n .pieCircle{\n stroke: ${t.pieStrokeColor};\n stroke-width : ${t.pieStrokeWidth};\n opacity : ${t.pieOpacity};\n }\n .pieTitleText {\n text-anchor: middle;\n font-size: ${t.pieTitleTextSize};\n fill: ${t.pieTitleTextColor};\n font-family: ${t.fontFamily};\n }\n .slice {\n font-family: ${t.fontFamily};\n fill: ${t.pieSectionTextColor};\n font-size:${t.pieSectionTextSize};\n // fill: white;\n }\n .legend text {\n fill: ${t.pieLegendTextColor};\n font-family: ${t.fontFamily};\n font-size: ${t.pieLegendTextSize};\n }\n`,zy=t=>`\n\n marker {\n fill: ${t.relationColor};\n stroke: ${t.relationColor};\n }\n\n marker.cross {\n stroke: ${t.lineColor};\n }\n\n svg {\n font-family: ${t.fontFamily};\n font-size: ${t.fontSize};\n }\n\n .reqBox {\n fill: ${t.requirementBackground};\n fill-opacity: 100%;\n stroke: ${t.requirementBorderColor};\n stroke-width: ${t.requirementBorderSize};\n }\n \n .reqTitle, .reqLabel{\n fill: ${t.requirementTextColor};\n }\n .reqLabelBox {\n fill: ${t.relationLabelBackground};\n fill-opacity: 100%;\n }\n\n .req-title-line {\n stroke: ${t.requirementBorderColor};\n stroke-width: ${t.requirementBorderSize};\n }\n .relationshipLine {\n stroke: ${t.relationColor};\n stroke-width: 1;\n }\n .relationshipLabel {\n fill: ${t.relationLabelColor};\n }\n\n`,Hy=t=>`.actor {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n }\n\n text.actor > tspan {\n fill: ${t.actorTextColor};\n stroke: none;\n }\n\n .actor-line {\n stroke: ${t.actorLineColor};\n }\n\n .messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: none;\n stroke: ${t.signalColor};\n }\n\n .messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: 2, 2;\n stroke: ${t.signalColor};\n }\n\n #arrowhead path {\n fill: ${t.signalColor};\n stroke: ${t.signalColor};\n }\n\n .sequenceNumber {\n fill: ${t.sequenceNumberColor};\n }\n\n #sequencenumber {\n fill: ${t.signalColor};\n }\n\n #crosshead path {\n fill: ${t.signalColor};\n stroke: ${t.signalColor};\n }\n\n .messageText {\n fill: ${t.signalTextColor};\n stroke: none;\n }\n\n .labelBox {\n stroke: ${t.labelBoxBorderColor};\n fill: ${t.labelBoxBkgColor};\n }\n\n .labelText, .labelText > tspan {\n fill: ${t.labelTextColor};\n stroke: none;\n }\n\n .loopText, .loopText > tspan {\n fill: ${t.loopTextColor};\n stroke: none;\n }\n\n .loopLine {\n stroke-width: 2px;\n stroke-dasharray: 2, 2;\n stroke: ${t.labelBoxBorderColor};\n fill: ${t.labelBoxBorderColor};\n }\n\n .note {\n //stroke: #decc93;\n stroke: ${t.noteBorderColor};\n fill: ${t.noteBkgColor};\n }\n\n .noteText, .noteText > tspan {\n fill: ${t.noteTextColor};\n stroke: none;\n }\n\n .activation0 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .activation1 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .activation2 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .actorPopupMenu {\n position: absolute;\n }\n\n .actorPopupMenuPanel {\n position: absolute;\n fill: ${t.actorBkg};\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));\n}\n .actor-man line {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n }\n .actor-man circle, line {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n stroke-width: 2px;\n }\n`,Uy=t=>`\ndefs #statediagram-barbEnd {\n fill: ${t.transitionColor};\n stroke: ${t.transitionColor};\n }\ng.stateGroup text {\n fill: ${t.nodeBorder};\n stroke: none;\n font-size: 10px;\n}\ng.stateGroup text {\n fill: ${t.textColor};\n stroke: none;\n font-size: 10px;\n\n}\ng.stateGroup .state-title {\n font-weight: bolder;\n fill: ${t.stateLabelColor};\n}\n\ng.stateGroup rect {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n}\n\ng.stateGroup line {\n stroke: ${t.lineColor};\n stroke-width: 1;\n}\n\n.transition {\n stroke: ${t.transitionColor};\n stroke-width: 1;\n fill: none;\n}\n\n.stateGroup .composit {\n fill: ${t.background};\n border-bottom: 1px\n}\n\n.stateGroup .alt-composit {\n fill: #e0e0e0;\n border-bottom: 1px\n}\n\n.state-note {\n stroke: ${t.noteBorderColor};\n fill: ${t.noteBkgColor};\n\n text {\n fill: ${t.noteTextColor};\n stroke: none;\n font-size: 10px;\n }\n}\n\n.stateLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${t.mainBkg};\n opacity: 0.5;\n}\n\n.edgeLabel .label rect {\n fill: ${t.labelBackgroundColor};\n opacity: 0.5;\n}\n.edgeLabel .label text {\n fill: ${t.transitionLabelColor||t.tertiaryTextColor};\n}\n.label div .edgeLabel {\n color: ${t.transitionLabelColor||t.tertiaryTextColor};\n}\n\n.stateLabel text {\n fill: ${t.stateLabelColor};\n font-size: 10px;\n font-weight: bold;\n}\n\n.node circle.state-start {\n fill: ${t.specialStateColor};\n stroke: ${t.specialStateColor};\n}\n\n.node .fork-join {\n fill: ${t.specialStateColor};\n stroke: ${t.specialStateColor};\n}\n\n.node circle.state-end {\n fill: ${t.innerEndBackground};\n stroke: ${t.background};\n stroke-width: 1.5\n}\n.end-state-inner {\n fill: ${t.compositeBackground||t.background};\n // stroke: ${t.background};\n stroke-width: 1.5\n}\n\n.node rect {\n fill: ${t.stateBkg||t.mainBkg};\n stroke: ${t.stateBorder||t.nodeBorder};\n stroke-width: 1px;\n}\n.node polygon {\n fill: ${t.mainBkg};\n stroke: ${t.stateBorder||t.nodeBorder};;\n stroke-width: 1px;\n}\n#statediagram-barbEnd {\n fill: ${t.lineColor};\n}\n\n.statediagram-cluster rect {\n fill: ${t.compositeTitleBackground};\n stroke: ${t.stateBorder||t.nodeBorder};\n stroke-width: 1px;\n}\n\n.cluster-label, .nodeLabel {\n color: ${t.stateLabelColor};\n}\n\n.statediagram-cluster rect.outer {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state .divider {\n stroke: ${t.stateBorder||t.nodeBorder};\n}\n\n.statediagram-state .title-state {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-cluster.statediagram-cluster .inner {\n fill: ${t.compositeBackground||t.background};\n}\n.statediagram-cluster.statediagram-cluster-alt .inner {\n fill: ${t.altBackground?t.altBackground:"#efefef"};\n}\n\n.statediagram-cluster .inner {\n rx:0;\n ry:0;\n}\n\n.statediagram-state rect.basic {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state rect.divider {\n stroke-dasharray: 10,10;\n fill: ${t.altBackground?t.altBackground:"#efefef"};\n}\n\n.note-edge {\n stroke-dasharray: 5;\n}\n\n.statediagram-note rect {\n fill: ${t.noteBkgColor};\n stroke: ${t.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n.statediagram-note rect {\n fill: ${t.noteBkgColor};\n stroke: ${t.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n\n.statediagram-note text {\n fill: ${t.noteTextColor};\n}\n\n.statediagram-note .nodeLabel {\n color: ${t.noteTextColor};\n}\n.statediagram .edgeLabel {\n color: red; // ${t.noteTextColor};\n}\n\n#dependencyStart, #dependencyEnd {\n fill: ${t.lineColor};\n stroke: ${t.lineColor};\n stroke-width: 1;\n}\n\n.statediagramTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n}\n`,Vy=t=>`.label {\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n color: ${t.textColor};\n }\n .mouth {\n stroke: #666;\n }\n\n line {\n stroke: ${t.textColor}\n }\n\n .legend {\n fill: ${t.textColor};\n }\n\n .label text {\n fill: #333;\n }\n .label {\n color: ${t.textColor}\n }\n\n .face {\n ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"};\n stroke: #999;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${t.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${t.lineColor};\n stroke-width: 1.5px;\n }\n\n .flowchart-link {\n stroke: ${t.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${t.edgeLabelBackground};\n rect {\n opacity: 0.5;\n }\n text-align: center;\n }\n\n .cluster rect {\n }\n\n .cluster text {\n fill: ${t.titleColor};\n }\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n font-size: 12px;\n background: ${t.tertiaryColor};\n border: 1px solid ${t.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .task-type-0, .section-type-0 {\n ${t.fillType0?`fill: ${t.fillType0}`:""};\n }\n .task-type-1, .section-type-1 {\n ${t.fillType0?`fill: ${t.fillType1}`:""};\n }\n .task-type-2, .section-type-2 {\n ${t.fillType0?`fill: ${t.fillType2}`:""};\n }\n .task-type-3, .section-type-3 {\n ${t.fillType0?`fill: ${t.fillType3}`:""};\n }\n .task-type-4, .section-type-4 {\n ${t.fillType0?`fill: ${t.fillType4}`:""};\n }\n .task-type-5, .section-type-5 {\n ${t.fillType0?`fill: ${t.fillType5}`:""};\n }\n .task-type-6, .section-type-6 {\n ${t.fillType0?`fill: ${t.fillType6}`:""};\n }\n .task-type-7, .section-type-7 {\n ${t.fillType0?`fill: ${t.fillType7}`:""};\n }\n\n .actor-0 {\n ${t.actor0?`fill: ${t.actor0}`:""};\n }\n .actor-1 {\n ${t.actor1?`fill: ${t.actor1}`:""};\n }\n .actor-2 {\n ${t.actor2?`fill: ${t.actor2}`:""};\n }\n .actor-3 {\n ${t.actor3?`fill: ${t.actor3}`:""};\n }\n .actor-4 {\n ${t.actor4?`fill: ${t.actor4}`:""};\n }\n .actor-5 {\n ${t.actor5?`fill: ${t.actor5}`:""};\n }\n`,qy=t=>`.person {\n stroke: ${t.personBorder};\n fill: ${t.personBkg};\n }\n`,Wy={flowchart:Py,"flowchart-v2":Py,sequence:Hy,gantt:Fy,classDiagram:My,"classDiagram-v2":My,class:My,stateDiagram:Uy,state:Uy,info:jy,pie:$y,er:Ny,error:By,journey:Vy,requirement:zy,c4:qy},Yy=(t,e)=>{Wy[t]=e},Gy=(t,e,n)=>{let i="";return t in Wy&&Wy[t]?i=Wy[t](n):d.warn(`No theme found for ${t}`),` & {\n font-family: ${n.fontFamily};\n font-size: ${n.fontSize};\n fill: ${n.textColor}\n }\n\n /* Classes common for multiple diagrams */\n\n & .error-icon {\n fill: ${n.errorBkgColor};\n }\n & .error-text {\n fill: ${n.errorTextColor};\n stroke: ${n.errorTextColor};\n }\n\n & .edge-thickness-normal {\n stroke-width: 2px;\n }\n & .edge-thickness-thick {\n stroke-width: 3.5px\n }\n & .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n & .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n & .marker {\n fill: ${n.lineColor};\n stroke: ${n.lineColor};\n }\n & .marker.cross {\n stroke: ${n.lineColor};\n }\n\n & svg {\n font-family: ${n.fontFamily};\n font-size: ${n.fontSize};\n }\n\n ${i}\n\n ${e}\n`};let Zy="",Ky="",Xy="";const Jy=t=>Wd(t,Ry()),Qy=function(){Zy="",Xy="",Ky=""},tv=function(t){Zy=Jy(t).replace(/^\s+/g,"")},ev=function(){return Zy||Ky},nv=function(t){Xy=Jy(t).replace(/\n\s+/g,"\n")},iv=function(){return Xy},av=function(t){Ky=Jy(t)},rv=function(){return Ky},ov=Object.freeze(Object.defineProperty({__proto__:null,clear:Qy,default:{setAccTitle:tv,getAccTitle:ev,setDiagramTitle:av,getDiagramTitle:rv,getAccDescription:iv,setAccDescription:nv,clear:Qy},getAccDescription:iv,getAccTitle:ev,getDiagramTitle:rv,setAccDescription:nv,setAccTitle:tv,setDiagramTitle:av},Symbol.toStringTag,{value:"Module"}));let sv={};const cv=function(t,e,n,i){d.debug("parseDirective is being called",e,n,i);try{if(void 0!==e)switch(e=e.trim(),n){case"open_directive":sv={};break;case"type_directive":if(!sv)throw new Error("currentDirective is undefined");sv.type=e.toLowerCase();break;case"arg_directive":if(!sv)throw new Error("currentDirective is undefined");sv.args=JSON.parse(e);break;case"close_directive":lv(t,sv,i),sv=void 0}}catch(a){d.error(`Error while rendering sequenceDiagram directive: ${e} jison context: ${n}`),d.error(a.message)}},lv=function(t,e,n){switch(d.info(`Directive type=${e.type} with args:`,e.args),e.type){case"init":case"initialize":["config"].forEach((t=>{void 0!==e.args[t]&&("flowchart-v2"===n&&(n="flowchart"),e.args[n]=e.args[t],delete e.args[t])})),d.info("sanitize in handleDirective",e.args),gm(e.args),d.info("sanitize in handleDirective (done)",e.args),ky(e.args);break;case"wrap":case"nowrap":t&&t.setWrap&&t.setWrap("wrap"===e.type);break;case"themeCss":d.warn("themeCss encountered");break;default:d.warn(`Unhandled directive: source: '%%{${e.type}: ${JSON.stringify(e.args?e.args:{})}}%%`,e)}},uv=d,dv=h,hv=Ry,fv=t=>Wd(t,hv()),gv=Oy,pv=()=>ov,bv=(t,e,n,i)=>cv(t,e,n,i),mv={},yv=(t,e,n)=>{if(mv[t])throw new Error(`Diagram ${t} already registered.`);mv[t]=e,n&&kp(t,n),Yy(t,e.styles),e.injectUtils&&e.injectUtils(uv,dv,hv,fv,gv,pv(),bv)},vv=t=>{if(t in mv)return mv[t];throw new Error(`Diagram ${t} not found.`)};var wv=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,4],n=[1,7],i=[1,5],a=[1,9],r=[1,6],o=[2,6],s=[1,16],c=[6,8,14,20,22,24,25,27,29,32,37,40,50,55],l=[8,14,20,22,24,25,27,29,32,37,40],u=[8,13,14,20,22,24,25,27,29,32,37,40],d=[1,26],h=[6,8,14,50,55],f=[8,14,55],g=[1,53],p=[1,52],b=[8,14,30,33,35,38,55],m=[1,67],y=[1,68],v=[1,69],w=[8,14,33,35,42,55],x={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,GG:6,document:7,EOF:8,":":9,DIR:10,options:11,body:12,OPT:13,NL:14,line:15,statement:16,commitStatement:17,mergeStatement:18,cherryPickStatement:19,acc_title:20,acc_title_value:21,acc_descr:22,acc_descr_value:23,acc_descr_multiline_value:24,section:25,branchStatement:26,CHECKOUT:27,ref:28,BRANCH:29,ORDER:30,NUM:31,CHERRY_PICK:32,COMMIT_ID:33,STR: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,openDirective:46,typeDirective:47,closeDirective:48,argDirective:49,open_directive:50,type_directive:51,arg_directive:52,close_directive:53,ID:54,";":55,$accept:0,$end:1},terminals_:{2:"error",6:"GG",8:"EOF",9:":",10:"DIR",13:"OPT",14:"NL",20:"acc_title",21:"acc_title_value",22:"acc_descr",23:"acc_descr_value",24:"acc_descr_multiline_value",25:"section",27:"CHECKOUT",29:"BRANCH",30:"ORDER",31:"NUM",32:"CHERRY_PICK",33:"COMMIT_ID",34:"STR",35:"COMMIT_TAG",36:"EMPTYSTR",37:"MERGE",38:"COMMIT_TYPE",40:"COMMIT",42:"COMMIT_MSG",43:"NORMAL",44:"REVERSE",45:"HIGHLIGHT",50:"open_directive",51:"type_directive",52:"arg_directive",53:"close_directive",54:"ID",55:";"},productions_:[0,[3,2],[3,2],[3,3],[3,4],[3,5],[7,0],[7,2],[11,2],[11,1],[12,0],[12,2],[15,2],[15,1],[16,1],[16,1],[16,1],[16,2],[16,2],[16,1],[16,1],[16,1],[16,2],[26,2],[26,4],[19,3],[19,5],[19,5],[19,5],[19,5],[18,2],[18,4],[18,4],[18,4],[18,6],[18,6],[18,6],[18,6],[18,6],[18,6],[18,8],[18,8],[18,8],[18,8],[18,8],[18,8],[17,2],[17,3],[17,3],[17,5],[17,5],[17,3],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,3],[17,5],[17,5],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[41,0],[41,1],[39,1],[39,1],[39,1],[5,3],[5,5],[46,1],[47,1],[49,1],[48,1],[28,1],[28,1],[4,1],[4,1],[4,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 3:return r[s];case 4:return r[s-1];case 5:return i.setDirection(r[s-3]),r[s-1];case 7:i.setOptions(r[s-1]),this.$=r[s];break;case 8:r[s-1]+=r[s],this.$=r[s-1];break;case 10:this.$=[];break;case 11:r[s-1].push(r[s]),this.$=r[s-1];break;case 12:this.$=r[s-1];break;case 17:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 18:case 19:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 20:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 22:i.checkout(r[s]);break;case 23:i.branch(r[s]);break;case 24:i.branch(r[s-2],r[s]);break;case 25:i.cherryPick(r[s],"",void 0);break;case 26:i.cherryPick(r[s-2],"",r[s]);break;case 27:case 29:i.cherryPick(r[s-2],"","");break;case 28:i.cherryPick(r[s],"",r[s-2]);break;case 30:i.merge(r[s],"","","");break;case 31:i.merge(r[s-2],r[s],"","");break;case 32:i.merge(r[s-2],"",r[s],"");break;case 33:i.merge(r[s-2],"","",r[s]);break;case 34:i.merge(r[s-4],r[s],"",r[s-2]);break;case 35:i.merge(r[s-4],"",r[s],r[s-2]);break;case 36:i.merge(r[s-4],"",r[s-2],r[s]);break;case 37:i.merge(r[s-4],r[s-2],r[s],"");break;case 38:i.merge(r[s-4],r[s-2],"",r[s]);break;case 39:i.merge(r[s-4],r[s],r[s-2],"");break;case 40:i.merge(r[s-6],r[s-4],r[s-2],r[s]);break;case 41:i.merge(r[s-6],r[s],r[s-4],r[s-2]);break;case 42:i.merge(r[s-6],r[s-4],r[s],r[s-2]);break;case 43:i.merge(r[s-6],r[s-2],r[s-4],r[s]);break;case 44:i.merge(r[s-6],r[s],r[s-2],r[s-4]);break;case 45:i.merge(r[s-6],r[s-2],r[s],r[s-4]);break;case 46:i.commit(r[s]);break;case 47:i.commit("","",i.commitType.NORMAL,r[s]);break;case 48:i.commit("","",r[s],"");break;case 49:i.commit("","",r[s],r[s-2]);break;case 50:i.commit("","",r[s-2],r[s]);break;case 51:i.commit("",r[s],i.commitType.NORMAL,"");break;case 52:i.commit("",r[s-2],i.commitType.NORMAL,r[s]);break;case 53:i.commit("",r[s],i.commitType.NORMAL,r[s-2]);break;case 54:i.commit("",r[s-2],r[s],"");break;case 55:i.commit("",r[s],r[s-2],"");break;case 56:i.commit("",r[s-4],r[s-2],r[s]);break;case 57:i.commit("",r[s-4],r[s],r[s-2]);break;case 58:i.commit("",r[s-2],r[s-4],r[s]);break;case 59:i.commit("",r[s],r[s-4],r[s-2]);break;case 60:i.commit("",r[s],r[s-2],r[s-4]);break;case 61:i.commit("",r[s-2],r[s],r[s-4]);break;case 62:i.commit(r[s],"",i.commitType.NORMAL,"");break;case 63:i.commit(r[s],"",i.commitType.NORMAL,r[s-2]);break;case 64:i.commit(r[s-2],"",i.commitType.NORMAL,r[s]);break;case 65:i.commit(r[s-2],"",r[s],"");break;case 66:i.commit(r[s],"",r[s-2],"");break;case 67:i.commit(r[s],r[s-2],i.commitType.NORMAL,"");break;case 68:i.commit(r[s-2],r[s],i.commitType.NORMAL,"");break;case 69:i.commit(r[s-4],"",r[s-2],r[s]);break;case 70:i.commit(r[s-4],"",r[s],r[s-2]);break;case 71:i.commit(r[s-2],"",r[s-4],r[s]);break;case 72:i.commit(r[s],"",r[s-4],r[s-2]);break;case 73:i.commit(r[s],"",r[s-2],r[s-4]);break;case 74:i.commit(r[s-2],"",r[s],r[s-4]);break;case 75:i.commit(r[s-4],r[s],r[s-2],"");break;case 76:i.commit(r[s-4],r[s-2],r[s],"");break;case 77:i.commit(r[s-2],r[s],r[s-4],"");break;case 78:i.commit(r[s],r[s-2],r[s-4],"");break;case 79:i.commit(r[s],r[s-4],r[s-2],"");break;case 80:i.commit(r[s-2],r[s-4],r[s],"");break;case 81:i.commit(r[s-4],r[s],i.commitType.NORMAL,r[s-2]);break;case 82:i.commit(r[s-4],r[s-2],i.commitType.NORMAL,r[s]);break;case 83:i.commit(r[s-2],r[s],i.commitType.NORMAL,r[s-4]);break;case 84:i.commit(r[s],r[s-2],i.commitType.NORMAL,r[s-4]);break;case 85:i.commit(r[s],r[s-4],i.commitType.NORMAL,r[s-2]);break;case 86:i.commit(r[s-2],r[s-4],i.commitType.NORMAL,r[s]);break;case 87:i.commit(r[s-6],r[s-4],r[s-2],r[s]);break;case 88:i.commit(r[s-6],r[s-4],r[s],r[s-2]);break;case 89:i.commit(r[s-6],r[s-2],r[s-4],r[s]);break;case 90:i.commit(r[s-6],r[s],r[s-4],r[s-2]);break;case 91:i.commit(r[s-6],r[s-2],r[s],r[s-4]);break;case 92:i.commit(r[s-6],r[s],r[s-2],r[s-4]);break;case 93:i.commit(r[s-4],r[s-6],r[s-2],r[s]);break;case 94:i.commit(r[s-4],r[s-6],r[s],r[s-2]);break;case 95:i.commit(r[s-2],r[s-6],r[s-4],r[s]);break;case 96:i.commit(r[s],r[s-6],r[s-4],r[s-2]);break;case 97:i.commit(r[s-2],r[s-6],r[s],r[s-4]);break;case 98:i.commit(r[s],r[s-6],r[s-2],r[s-4]);break;case 99:i.commit(r[s],r[s-4],r[s-2],r[s-6]);break;case 100:i.commit(r[s-2],r[s-4],r[s],r[s-6]);break;case 101:i.commit(r[s],r[s-2],r[s-4],r[s-6]);break;case 102:i.commit(r[s-2],r[s],r[s-4],r[s-6]);break;case 103:i.commit(r[s-4],r[s-2],r[s],r[s-6]);break;case 104:i.commit(r[s-4],r[s],r[s-2],r[s-6]);break;case 105:i.commit(r[s-2],r[s-4],r[s-6],r[s]);break;case 106:i.commit(r[s],r[s-4],r[s-6],r[s-2]);break;case 107:i.commit(r[s-2],r[s],r[s-6],r[s-4]);break;case 108:i.commit(r[s],r[s-2],r[s-6],r[s-4]);break;case 109:i.commit(r[s-4],r[s-2],r[s-6],r[s]);break;case 110:i.commit(r[s-4],r[s],r[s-6],r[s-2]);break;case 111:this.$="";break;case 112:this.$=r[s];break;case 113:this.$=i.commitType.NORMAL;break;case 114:this.$=i.commitType.REVERSE;break;case 115:this.$=i.commitType.HIGHLIGHT;break;case 118:i.parseDirective("%%{","open_directive");break;case 119:i.parseDirective(r[s],"type_directive");break;case 120:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 121:i.parseDirective("}%%","close_directive","gitGraph")}},table:[{3:1,4:2,5:3,6:e,8:n,14:i,46:8,50:a,55:r},{1:[3]},{3:10,4:2,5:3,6:e,8:n,14:i,46:8,50:a,55:r},{3:11,4:2,5:3,6:e,8:n,14:i,46:8,50:a,55:r},{7:12,8:o,9:[1,13],10:[1,14],11:15,14:s},t(c,[2,124]),t(c,[2,125]),t(c,[2,126]),{47:17,51:[1,18]},{51:[2,118]},{1:[2,1]},{1:[2,2]},{8:[1,19]},{7:20,8:o,11:15,14:s},{9:[1,21]},t(l,[2,10],{12:22,13:[1,23]}),t(u,[2,9]),{9:[1,25],48:24,53:d},t([9,53],[2,119]),{1:[2,3]},{8:[1,27]},{7:28,8:o,11:15,14:s},{8:[2,7],14:[1,31],15:29,16:30,17:32,18:33,19:34,20:[1,35],22:[1,36],24:[1,37],25:[1,38],26:39,27:[1,40],29:[1,44],32:[1,43],37:[1,42],40:[1,41]},t(u,[2,8]),t(h,[2,116]),{49:45,52:[1,46]},t(h,[2,121]),{1:[2,4]},{8:[1,47]},t(l,[2,11]),{4:48,8:n,14:i,55:r},t(l,[2,13]),t(f,[2,14]),t(f,[2,15]),t(f,[2,16]),{21:[1,49]},{23:[1,50]},t(f,[2,19]),t(f,[2,20]),t(f,[2,21]),{28:51,34:g,54:p},t(f,[2,111],{41:54,33:[1,57],34:[1,59],35:[1,55],38:[1,56],42:[1,58]}),{28:60,34:g,54:p},{33:[1,61],35:[1,62]},{28:63,34:g,54:p},{48:64,53:d},{53:[2,120]},{1:[2,5]},t(l,[2,12]),t(f,[2,17]),t(f,[2,18]),t(f,[2,22]),t(b,[2,122]),t(b,[2,123]),t(f,[2,46]),{34:[1,65]},{39:66,43:m,44:y,45:v},{34:[1,70]},{34:[1,71]},t(f,[2,112]),t(f,[2,30],{33:[1,72],35:[1,74],38:[1,73]}),{34:[1,75]},{34:[1,76],36:[1,77]},t(f,[2,23],{30:[1,78]}),t(h,[2,117]),t(f,[2,47],{33:[1,80],38:[1,79],42:[1,81]}),t(f,[2,48],{33:[1,83],35:[1,82],42:[1,84]}),t(w,[2,113]),t(w,[2,114]),t(w,[2,115]),t(f,[2,51],{35:[1,85],38:[1,86],42:[1,87]}),t(f,[2,62],{33:[1,90],35:[1,88],38:[1,89]}),{34:[1,91]},{39:92,43:m,44:y,45:v},{34:[1,93]},t(f,[2,25],{35:[1,94]}),{33:[1,95]},{33:[1,96]},{31:[1,97]},{39:98,43:m,44:y,45:v},{34:[1,99]},{34:[1,100]},{34:[1,101]},{34:[1,102]},{34:[1,103]},{34:[1,104]},{39:105,43:m,44:y,45:v},{34:[1,106]},{34:[1,107]},{39:108,43:m,44:y,45:v},{34:[1,109]},t(f,[2,31],{35:[1,111],38:[1,110]}),t(f,[2,32],{33:[1,113],35:[1,112]}),t(f,[2,33],{33:[1,114],38:[1,115]}),{34:[1,116],36:[1,117]},{34:[1,118]},{34:[1,119]},t(f,[2,24]),t(f,[2,49],{33:[1,120],42:[1,121]}),t(f,[2,53],{38:[1,122],42:[1,123]}),t(f,[2,63],{33:[1,125],38:[1,124]}),t(f,[2,50],{33:[1,126],42:[1,127]}),t(f,[2,55],{35:[1,128],42:[1,129]}),t(f,[2,66],{33:[1,131],35:[1,130]}),t(f,[2,52],{38:[1,132],42:[1,133]}),t(f,[2,54],{35:[1,134],42:[1,135]}),t(f,[2,67],{35:[1,137],38:[1,136]}),t(f,[2,64],{33:[1,139],38:[1,138]}),t(f,[2,65],{33:[1,141],35:[1,140]}),t(f,[2,68],{35:[1,143],38:[1,142]}),{39:144,43:m,44:y,45:v},{34:[1,145]},{34:[1,146]},{34:[1,147]},{34:[1,148]},{39:149,43:m,44:y,45:v},t(f,[2,26]),t(f,[2,27]),t(f,[2,28]),t(f,[2,29]),{34:[1,150]},{34:[1,151]},{39:152,43:m,44:y,45:v},{34:[1,153]},{39:154,43:m,44:y,45:v},{34:[1,155]},{34:[1,156]},{34:[1,157]},{34:[1,158]},{34:[1,159]},{34:[1,160]},{34:[1,161]},{39:162,43:m,44:y,45:v},{34:[1,163]},{34:[1,164]},{34:[1,165]},{39:166,43:m,44:y,45:v},{34:[1,167]},{39:168,43:m,44:y,45:v},{34:[1,169]},{34:[1,170]},{34:[1,171]},{39:172,43:m,44:y,45:v},{34:[1,173]},t(f,[2,37],{35:[1,174]}),t(f,[2,38],{38:[1,175]}),t(f,[2,36],{33:[1,176]}),t(f,[2,39],{35:[1,177]}),t(f,[2,34],{38:[1,178]}),t(f,[2,35],{33:[1,179]}),t(f,[2,60],{42:[1,180]}),t(f,[2,73],{33:[1,181]}),t(f,[2,61],{42:[1,182]}),t(f,[2,84],{38:[1,183]}),t(f,[2,74],{33:[1,184]}),t(f,[2,83],{38:[1,185]}),t(f,[2,59],{42:[1,186]}),t(f,[2,72],{33:[1,187]}),t(f,[2,58],{42:[1,188]}),t(f,[2,78],{35:[1,189]}),t(f,[2,71],{33:[1,190]}),t(f,[2,77],{35:[1,191]}),t(f,[2,57],{42:[1,192]}),t(f,[2,85],{38:[1,193]}),t(f,[2,56],{42:[1,194]}),t(f,[2,79],{35:[1,195]}),t(f,[2,80],{35:[1,196]}),t(f,[2,86],{38:[1,197]}),t(f,[2,70],{33:[1,198]}),t(f,[2,81],{38:[1,199]}),t(f,[2,69],{33:[1,200]}),t(f,[2,75],{35:[1,201]}),t(f,[2,76],{35:[1,202]}),t(f,[2,82],{38:[1,203]}),{34:[1,204]},{39:205,43:m,44:y,45:v},{34:[1,206]},{34:[1,207]},{39:208,43:m,44:y,45:v},{34:[1,209]},{34:[1,210]},{34:[1,211]},{34:[1,212]},{39:213,43:m,44:y,45:v},{34:[1,214]},{39:215,43:m,44:y,45:v},{34:[1,216]},{34:[1,217]},{34:[1,218]},{34:[1,219]},{34:[1,220]},{34:[1,221]},{34:[1,222]},{39:223,43:m,44:y,45:v},{34:[1,224]},{34:[1,225]},{34:[1,226]},{39:227,43:m,44:y,45:v},{34:[1,228]},{39:229,43:m,44:y,45:v},{34:[1,230]},{34:[1,231]},{34:[1,232]},{39:233,43:m,44:y,45:v},t(f,[2,40]),t(f,[2,42]),t(f,[2,41]),t(f,[2,43]),t(f,[2,45]),t(f,[2,44]),t(f,[2,101]),t(f,[2,102]),t(f,[2,99]),t(f,[2,100]),t(f,[2,104]),t(f,[2,103]),t(f,[2,108]),t(f,[2,107]),t(f,[2,106]),t(f,[2,105]),t(f,[2,110]),t(f,[2,109]),t(f,[2,98]),t(f,[2,97]),t(f,[2,96]),t(f,[2,95]),t(f,[2,93]),t(f,[2,94]),t(f,[2,92]),t(f,[2,91]),t(f,[2,90]),t(f,[2,89]),t(f,[2,87]),t(f,[2,88])],defaultActions:{9:[2,118],10:[2,1],11:[2,2],19:[2,3],27:[2,4],46:[2,120],47:[2,5]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},R={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),50;case 1:return this.begin("type_directive"),51;case 2:return this.popState(),this.begin("arg_directive"),9;case 3:return this.popState(),this.popState(),53;case 4:return 52;case 5:return this.begin("acc_title"),20;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),22;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:case 34:case 38:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:return 14;case 13:case 14:break;case 15:return 6;case 16:return 40;case 17:return 33;case 18:return 38;case 19:return 42;case 20:return 43;case 21:return 44;case 22:return 45;case 23:return 35;case 24:return 29;case 25:return 30;case 26:return 37;case 27:return 32;case 28:return 27;case 29:case 30:return 10;case 31:return 9;case 32:return"CARET";case 33:this.begin("options");break;case 35:return 13;case 36:return 36;case 37:this.begin("string");break;case 39:return 34;case 40:return 31;case 41:return 54;case 42:return 8}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\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,/^(?:#[^\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,/^(?:checkout(?=\s|$))/i,/^(?:LR\b)/i,/^(?:BT\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:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},options:{rules:[34,35],inclusive:!1},string:{rules:[38,39],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,36,37,40,41,42,43],inclusive:!0}}};function _(){this.yy={}}return x.lexer=R,_.prototype=x,x.Parser=_,new _}();wv.parser=wv;const xv=wv,Rv=t=>null!==t.match(/^\s*gitGraph/);let _v=Ry().gitGraph.mainBranchName,kv=Ry().gitGraph.mainBranchOrder,Ev={},Cv=null,Sv={};Sv[_v]={name:_v,order:kv};let Tv={};Tv[_v]=Cv;let Av=_v,Dv="LR",Iv=0;function Lv(){return rm({length:7})}function Ov(t,e){const n=Object.create(null);return t.reduce(((t,i)=>{const a=e(i);return n[a]||(n[a]=!0,t.push(i)),t}),[])}let Mv={};const Nv=function(t,e,n,i){d.debug("Entering commit:",t,e,n,i),e=Qd.sanitizeText(e,Ry()),t=Qd.sanitizeText(t,Ry()),i=Qd.sanitizeText(i,Ry());const a={id:e||Iv+"-"+Lv(),message:t,seq:Iv++,type:n||Vv.NORMAL,tag:i||"",parents:null==Cv?[]:[Cv.id],branch:Av};Cv=a,Ev[a.id]=a,Tv[Av]=a.id,d.debug("in pushCommit "+a.id)},Bv=function(t,e){if(t=Qd.sanitizeText(t,Ry()),void 0!==Tv[t]){let e=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 '+t+'")');throw e.hash={text:"branch "+t,token:"branch "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+t+'"']},e}Tv[t]=null!=Cv?Cv.id:null,Sv[t]={name:t,order:e?parseInt(e,10):null},jv(t),d.debug("in createBranch")},Pv=function(t,e,n,i){t=Qd.sanitizeText(t,Ry()),e=Qd.sanitizeText(e,Ry());const a=Ev[Tv[Av]],r=Ev[Tv[t]];if(Av===t){let e=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},e}if(void 0===a||!a){let e=new Error('Incorrect usage of "merge". Current branch ('+Av+")has no commits");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["commit"]},e}if(void 0===Tv[t]){let e=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") does not exist");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch "+t]},e}if(void 0===r||!r){let e=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") has no commits");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"commit"']},e}if(a===r){let e=new Error('Incorrect usage of "merge". Both branches have same head');throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},e}if(e&&void 0!==Ev[e]){let a=new Error('Incorrect usage of "merge". Commit with id:'+e+" already exists, use different custom Id");throw a.hash={text:"merge "+t+e+n+i,token:"merge "+t+e+n+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+t+" "+e+"_UNIQUE "+n+" "+i]},a}const o={id:e||Iv+"-"+Lv(),message:"merged branch "+t+" into "+Av,seq:Iv++,parents:[null==Cv?null:Cv.id,Tv[t]],branch:Av,type:Vv.MERGE,customType:n,customId:!!e,tag:i||""};Cv=o,Ev[o.id]=o,Tv[Av]=o.id,d.debug(Tv),d.debug("in mergeBranch")},Fv=function(t,e,n){if(d.debug("Entering cherryPick:",t,e,n),t=Qd.sanitizeText(t,Ry()),e=Qd.sanitizeText(e,Ry()),n=Qd.sanitizeText(n,Ry()),!t||void 0===Ev[t]){let n=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw n.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}let i=Ev[t],a=i.branch;if(i.type===Vv.MERGE){let n=new Error('Incorrect usage of "cherryPick". Source commit should not be a merge commit');throw n.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}if(!e||void 0===Ev[e]){if(a===Av){let n=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw n.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}const r=Ev[Tv[Av]];if(void 0===r||!r){let n=new Error('Incorrect usage of "cherry-pick". Current branch ('+Av+")has no commits");throw n.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}const o={id:Iv+"-"+Lv(),message:"cherry-picked "+i+" into "+Av,seq:Iv++,parents:[null==Cv?null:Cv.id,i.id],branch:Av,type:Vv.CHERRY_PICK,tag:n??"cherry-pick:"+i.id};Cv=o,Ev[o.id]=o,Tv[Av]=o.id,d.debug(Tv),d.debug("in cherryPick")}},jv=function(t){if(t=Qd.sanitizeText(t,Ry()),void 0===Tv[t]){let e=new Error('Trying to checkout branch which is not yet created. (Help try using "branch '+t+'")');throw e.hash={text:"checkout "+t,token:"checkout "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"branch '+t+'"']},e}{Av=t;const e=Tv[Av];Cv=Ev[e]}};function $v(t,e,n){const i=t.indexOf(e);-1===i?t.push(n):t.splice(i,1,n)}function zv(t){const e=t.reduce(((t,e)=>t.seq>e.seq?t:e),t[0]);let n="";t.forEach((function(t){n+=t===e?"\t*":"\t|"}));const i=[n,e.id,e.seq];for(let a in Tv)Tv[a]===e.id&&i.push(a);if(d.debug(i.join(" ")),e.parents&&2==e.parents.length){const n=Ev[e.parents[0]];$v(t,e,n),t.push(Ev[e.parents[1]])}else{if(0==e.parents.length)return;{const n=Ev[e.parents];$v(t,e,n)}}zv(t=Ov(t,(t=>t.id)))}const Hv=function(){d.debug(Ev),zv([Uv()[0]])},Uv=function(){const t=Object.keys(Ev).map((function(t){return Ev[t]}));return t.forEach((function(t){d.debug(t.id)})),t.sort(((t,e)=>t.seq-e.seq)),t},Vv={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},qv={parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().gitGraph,setDirection:function(t){Dv=t},setOptions:function(t){d.debug("options str",t),t=(t=t&&t.trim())||"{}";try{Mv=JSON.parse(t)}catch(e){d.error("error while parsing gitGraph options",e.message)}},getOptions:function(){return Mv},commit:Nv,branch:Bv,merge:Pv,cherryPick:Fv,checkout:jv,prettyPrint:Hv,clear:function(){Ev={},Cv=null;let t=Ry().gitGraph.mainBranchName,e=Ry().gitGraph.mainBranchOrder;Tv={},Tv[t]=null,Sv={},Sv[t]={name:t,order:e},Av=t,Iv=0,Qy()},getBranchesAsObjArray:function(){return Object.values(Sv).map(((t,e)=>null!==t.order?t:{...t,order:parseFloat(`0.${e}`,10)})).sort(((t,e)=>t.order-e.order)).map((({name:t})=>({name:t})))},getBranches:function(){return Tv},getCommits:function(){return Ev},getCommitsArray:Uv,getCurrentBranch:function(){return Av},getDirection:function(){return Dv},getHead:function(){return Cv},setAccTitle:tv,getAccTitle:ev,getAccDescription:iv,setAccDescription:nv,setDiagramTitle:av,getDiagramTitle:rv,commitType:Vv};let Wv={};const Yv={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},Gv=8;let Zv={},Kv={},Xv=[],Jv=0;const Qv=()=>{Zv={},Kv={},Wv={},Jv=0,Xv=[]},tw=t=>{const e=document.createElementNS("http://www.w3.org/2000/svg","text");let n=[];n="string"==typeof t?t.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(t)?t:[];for(const i of n){const t=document.createElementNS("http://www.w3.org/2000/svg","tspan");t.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),t.setAttribute("dy","1em"),t.setAttribute("x","0"),t.setAttribute("class","row"),t.textContent=i.trim(),e.appendChild(t)}return e},ew=(t,e,n)=>{const i=hv().gitGraph,a=t.append("g").attr("class","commit-bullets"),r=t.append("g").attr("class","commit-labels");let o=0;Object.keys(e).sort(((t,n)=>e[t].seq-e[n].seq)).forEach((t=>{const s=e[t],c=Zv[s.branch].pos,l=o+10;if(n){let t,e=void 0!==s.customType&&""!==s.customType?s.customType:s.type;switch(e){case Yv.NORMAL:t="commit-normal";break;case Yv.REVERSE:t="commit-reverse";break;case Yv.HIGHLIGHT:t="commit-highlight";break;case Yv.MERGE:t="commit-merge";break;case Yv.CHERRY_PICK:t="commit-cherry-pick";break;default:t="commit-normal"}if(e===Yv.HIGHLIGHT){const e=a.append("rect");e.attr("x",l-10),e.attr("y",c-10),e.attr("height",20),e.attr("width",20),e.attr("class",`commit ${s.id} commit-highlight${Zv[s.branch].index%Gv} ${t}-outer`),a.append("rect").attr("x",l-6).attr("y",c-6).attr("height",12).attr("width",12).attr("class",`commit ${s.id} commit${Zv[s.branch].index%Gv} ${t}-inner`)}else if(e===Yv.CHERRY_PICK)a.append("circle").attr("cx",l).attr("cy",c).attr("r",10).attr("class",`commit ${s.id} ${t}`),a.append("circle").attr("cx",l-3).attr("cy",c+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${s.id} ${t}`),a.append("circle").attr("cx",l+3).attr("cy",c+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${s.id} ${t}`),a.append("line").attr("x1",l+3).attr("y1",c+1).attr("x2",l).attr("y2",c-5).attr("stroke","#fff").attr("class",`commit ${s.id} ${t}`),a.append("line").attr("x1",l-3).attr("y1",c+1).attr("x2",l).attr("y2",c-5).attr("stroke","#fff").attr("class",`commit ${s.id} ${t}`);else{const n=a.append("circle");if(n.attr("cx",l),n.attr("cy",c),n.attr("r",s.type===Yv.MERGE?9:10),n.attr("class",`commit ${s.id} commit${Zv[s.branch].index%Gv}`),e===Yv.MERGE){const e=a.append("circle");e.attr("cx",l),e.attr("cy",c),e.attr("r",6),e.attr("class",`commit ${t} ${s.id} commit${Zv[s.branch].index%Gv}`)}e===Yv.REVERSE&&a.append("path").attr("d",`M ${l-5},${c-5}L${l+5},${c+5}M${l-5},${c+5}L${l+5},${c-5}`).attr("class",`commit ${t} ${s.id} commit${Zv[s.branch].index%Gv}`)}}if(Kv[s.id]={x:o+10,y:c},n){if(s.type!==Yv.CHERRY_PICK&&(s.customId&&s.type===Yv.MERGE||s.type!==Yv.MERGE)&&i.showCommitLabel){const t=r.append("g"),e=t.insert("rect").attr("class","commit-label-bkg"),n=t.append("text").attr("x",o).attr("y",c+25).attr("class","commit-label").text(s.id);let a=n.node().getBBox();if(e.attr("x",o+10-a.width/2-2).attr("y",c+13.5).attr("width",a.width+4).attr("height",a.height+4),n.attr("x",o+10-a.width/2),i.rotateCommitLabel){let e=-7.5-(a.width+10)/25*9.5,n=10+a.width/25*8.5;t.attr("transform","translate("+e+", "+n+") rotate(-45, "+o+", "+c+")")}}if(s.tag){const t=r.insert("polygon"),e=r.append("circle"),n=r.append("text").attr("y",c-16).attr("class","tag-label").text(s.tag);let i=n.node().getBBox();n.attr("x",o+10-i.width/2);const a=i.height/2,l=c-19.2;t.attr("class","tag-label-bkg").attr("points",`\n ${o-i.width/2-2},${l+2}\n ${o-i.width/2-2},${l-2}\n ${o+10-i.width/2-4},${l-a-2}\n ${o+10+i.width/2+4},${l-a-2}\n ${o+10+i.width/2+4},${l+a+2}\n ${o+10-i.width/2-4},${l+a+2}`),e.attr("cx",o-i.width/2+2).attr("cy",l).attr("r",1.5).attr("class","tag-hole")}}o+=50,o>Jv&&(Jv=o)}))},nw=(t,e,n)=>Object.keys(n).filter((i=>n[i].branch===e.branch&&n[i].seq>t.seq&&n[i].seq<e.seq)).length>0,iw=(t,e,n=0)=>{const i=t+Math.abs(t-e)/2;if(n>5)return i;if(Xv.every((t=>Math.abs(t-i)>=10)))return Xv.push(i),i;const a=Math.abs(t-e);return iw(t,e-a/5,n+1)},aw=(t,e,n,i)=>{const a=Kv[e.id],r=Kv[n.id],o=nw(e,n,i);let s,c="",l="",u=0,d=0,h=Zv[n.branch].index;if(o){c="A 10 10, 0, 0, 0,",l="A 10 10, 0, 0, 1,",u=10,d=10,h=Zv[n.branch].index;const t=a.y<r.y?iw(a.y,r.y):iw(r.y,a.y);s=a.y<r.y?`M ${a.x} ${a.y} L ${a.x} ${t-u} ${c} ${a.x+d} ${t} L ${r.x-u} ${t} ${l} ${r.x} ${t+d} L ${r.x} ${r.y}`:`M ${a.x} ${a.y} L ${a.x} ${t+u} ${l} ${a.x+d} ${t} L ${r.x-u} ${t} ${c} ${r.x} ${t-d} L ${r.x} ${r.y}`}else a.y<r.y&&(c="A 20 20, 0, 0, 0,",u=20,d=20,h=Zv[n.branch].index,s=`M ${a.x} ${a.y} L ${a.x} ${r.y-u} ${c} ${a.x+d} ${r.y} L ${r.x} ${r.y}`),a.y>r.y&&(c="A 20 20, 0, 0, 0,",u=20,d=20,h=Zv[e.branch].index,s=`M ${a.x} ${a.y} L ${r.x-u} ${a.y} ${c} ${r.x} ${a.y-d} L ${r.x} ${r.y}`),a.y===r.y&&(h=Zv[e.branch].index,s=`M ${a.x} ${a.y} L ${a.x} ${r.y-u} ${c} ${a.x+d} ${r.y} L ${r.x} ${r.y}`);t.append("path").attr("d",s).attr("class","arrow arrow"+h%Gv)},rw=(t,e)=>{const n=t.append("g").attr("class","commit-arrows");Object.keys(e).forEach((t=>{const i=e[t];i.parents&&i.parents.length>0&&i.parents.forEach((t=>{aw(n,e[t],i,e)}))}))},ow=(t,e)=>{const n=hv().gitGraph,i=t.append("g");e.forEach(((t,e)=>{const a=e%Gv,r=Zv[t.name].pos,o=i.append("line");o.attr("x1",0),o.attr("y1",r),o.attr("x2",Jv),o.attr("y2",r),o.attr("class","branch branch"+a),Xv.push(r);let s=t.name;const c=tw(s),l=i.insert("rect"),u=i.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+a);u.node().appendChild(c);let d=c.getBBox();l.attr("class","branchLabelBkg label"+a).attr("rx",4).attr("ry",4).attr("x",-d.width-4-(!0===n.rotateCommitLabel?30:0)).attr("y",-d.height/2+8).attr("width",d.width+18).attr("height",d.height+4),u.attr("transform","translate("+(-d.width-14-(!0===n.rotateCommitLabel?30:0))+", "+(r-d.height/2-1)+")"),l.attr("transform","translate(-19, "+(r-d.height/2)+")")}))},sw={draw:function(t,e,n,i){Qv();const a=hv(),r=a.gitGraph;d.debug("in gitgraph renderer",t+"\n","id:",e,n),Wv=i.db.getCommits();const o=i.db.getBranchesAsObjArray();let s=0;o.forEach(((t,e)=>{Zv[t.name]={pos:s,index:e},s+=50+(r.rotateCommitLabel?40:0)}));const c=un(`[id="${e}"]`);ew(c,Wv,!1),r.showBranches&&ow(c,o),rw(c,Wv),ew(c,Wv,!0),vm.insertTitle(c,"gitTitleText",r.titleTopMargin,i.db.getDiagramTitle()),gv(void 0,c,r.diagramPadding,r.useMaxWidth??a.useMaxWidth)}},cw=t=>`\n .commit-id,\n .commit-msg,\n .branch-label {\n fill: lightgrey;\n color: lightgrey;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n ${[0,1,2,3,4,5,6,7].map((e=>`\n .branch-label${e} { fill: ${t["gitBranchLabel"+e]}; }\n .commit${e} { stroke: ${t["git"+e]}; fill: ${t["git"+e]}; }\n .commit-highlight${e} { stroke: ${t["gitInv"+e]}; fill: ${t["gitInv"+e]}; }\n .label${e} { fill: ${t["git"+e]}; }\n .arrow${e} { stroke: ${t["git"+e]}; }\n `)).join("\n")}\n\n .branch {\n stroke-width: 1;\n stroke: ${t.lineColor};\n stroke-dasharray: 2;\n }\n .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};}\n .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; }\n .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};}\n .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; }\n .tag-hole { fill: ${t.textColor}; }\n\n .commit-merge {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n }\n .commit-reverse {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n stroke-width: 3;\n }\n .commit-highlight-outer {\n }\n .commit-highlight-inner {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n }\n\n .arrow { stroke-width: 8; stroke-linecap: round; fill: none}\n .gitTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n }\n`;var lw=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,6],n=[1,7],i=[1,8],a=[1,9],r=[1,16],o=[1,11],s=[1,12],l=[1,13],u=[1,14],d=[1,15],h=[1,27],f=[1,33],g=[1,34],p=[1,35],b=[1,36],m=[1,37],y=[1,72],v=[1,73],w=[1,74],x=[1,75],R=[1,76],_=[1,77],k=[1,78],E=[1,38],C=[1,39],S=[1,40],T=[1,41],A=[1,42],D=[1,43],I=[1,44],L=[1,45],O=[1,46],M=[1,47],N=[1,48],B=[1,49],P=[1,50],F=[1,51],j=[1,52],$=[1,53],z=[1,54],H=[1,55],U=[1,56],V=[1,57],q=[1,59],W=[1,60],Y=[1,61],G=[1,62],Z=[1,63],K=[1,64],X=[1,65],J=[1,66],Q=[1,67],tt=[1,68],et=[1,69],nt=[24,52],it=[24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],at=[15,24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],rt=[1,94],ot=[1,95],st=[1,96],ct=[1,97],lt=[15,24,52],ut=[7,8,9,10,18,22,25,26,27,28],dt=[15,24,43,52],ht=[15,24,43,52,86,87,89,90],ft=[15,43],gt=[44,46,47,48,49,50,51,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],pt={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,directive:6,direction_tb:7,direction_bt:8,direction_rl:9,direction_lr:10,graphConfig:11,openDirective:12,typeDirective:13,closeDirective:14,NEWLINE:15,":":16,argDirective:17,open_directive:18,type_directive:19,arg_directive:20,close_directive:21,C4_CONTEXT:22,statements:23,EOF:24,C4_CONTAINER:25,C4_COMPONENT:26,C4_DYNAMIC:27,C4_DEPLOYMENT:28,otherStatements:29,diagramStatements:30,otherStatement:31,title:32,accDescription:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,boundaryStatement:39,boundaryStartStatement:40,boundaryStopStatement:41,boundaryStart:42,LBRACE:43,ENTERPRISE_BOUNDARY:44,attributes:45,SYSTEM_BOUNDARY:46,BOUNDARY:47,CONTAINER_BOUNDARY:48,NODE:49,NODE_L:50,NODE_R:51,RBRACE:52,diagramStatement:53,PERSON:54,PERSON_EXT:55,SYSTEM:56,SYSTEM_DB:57,SYSTEM_QUEUE:58,SYSTEM_EXT:59,SYSTEM_EXT_DB:60,SYSTEM_EXT_QUEUE:61,CONTAINER:62,CONTAINER_DB:63,CONTAINER_QUEUE:64,CONTAINER_EXT:65,CONTAINER_EXT_DB:66,CONTAINER_EXT_QUEUE:67,COMPONENT:68,COMPONENT_DB:69,COMPONENT_QUEUE:70,COMPONENT_EXT:71,COMPONENT_EXT_DB:72,COMPONENT_EXT_QUEUE:73,REL:74,BIREL:75,REL_U:76,REL_D:77,REL_L:78,REL_R:79,REL_B:80,REL_INDEX:81,UPDATE_EL_STYLE:82,UPDATE_REL_STYLE:83,UPDATE_LAYOUT_CONFIG:84,attribute:85,STR:86,STR_KEY:87,STR_VALUE:88,ATTRIBUTE:89,ATTRIBUTE_EMPTY:90,$accept:0,$end:1},terminals_:{2:"error",7:"direction_tb",8:"direction_bt",9:"direction_rl",10:"direction_lr",15:"NEWLINE",16:":",18:"open_directive",19:"type_directive",20:"arg_directive",21:"close_directive",22:"C4_CONTEXT",24:"EOF",25:"C4_CONTAINER",26:"C4_COMPONENT",27:"C4_DYNAMIC",28:"C4_DEPLOYMENT",32:"title",33:"accDescription",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",43:"LBRACE",44:"ENTERPRISE_BOUNDARY",46:"SYSTEM_BOUNDARY",47:"BOUNDARY",48:"CONTAINER_BOUNDARY",49:"NODE",50:"NODE_L",51:"NODE_R",52:"RBRACE",54:"PERSON",55:"PERSON_EXT",56:"SYSTEM",57:"SYSTEM_DB",58:"SYSTEM_QUEUE",59:"SYSTEM_EXT",60:"SYSTEM_EXT_DB",61:"SYSTEM_EXT_QUEUE",62:"CONTAINER",63:"CONTAINER_DB",64:"CONTAINER_QUEUE",65:"CONTAINER_EXT",66:"CONTAINER_EXT_DB",67:"CONTAINER_EXT_QUEUE",68:"COMPONENT",69:"COMPONENT_DB",70:"COMPONENT_QUEUE",71:"COMPONENT_EXT",72:"COMPONENT_EXT_DB",73:"COMPONENT_EXT_QUEUE",74:"REL",75:"BIREL",76:"REL_U",77:"REL_D",78:"REL_L",79:"REL_R",80:"REL_B",81:"REL_INDEX",82:"UPDATE_EL_STYLE",83:"UPDATE_REL_STYLE",84:"UPDATE_LAYOUT_CONFIG",86:"STR",87:"STR_KEY",88:"STR_VALUE",89:"ATTRIBUTE",90:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[3,2],[5,1],[5,1],[5,1],[5,1],[4,1],[6,4],[6,6],[12,1],[13,1],[17,1],[14,1],[11,4],[11,4],[11,4],[11,4],[11,4],[23,1],[23,1],[23,2],[29,1],[29,2],[29,3],[31,1],[31,1],[31,2],[31,2],[31,1],[39,3],[40,3],[40,3],[40,4],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[41,1],[30,1],[30,2],[30,3],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,1],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[45,1],[45,2],[85,1],[85,2],[85,1],[85,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 4:i.setDirection("TB");break;case 5:i.setDirection("BT");break;case 6:i.setDirection("RL");break;case 7:i.setDirection("LR");break;case 11:i.parseDirective("%%{","open_directive");break;case 12:break;case 13:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 14:i.parseDirective("}%%","close_directive","c4Context");break;case 15:case 16:case 17:case 18:case 19:i.setC4Type(r[s-3]);break;case 26:i.setTitle(r[s].substring(6)),this.$=r[s].substring(6);break;case 27:i.setAccDescription(r[s].substring(15)),this.$=r[s].substring(15);break;case 28:this.$=r[s].trim(),i.setTitle(this.$);break;case 29:case 30:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 35:case 36:r[s].splice(2,0,"ENTERPRISE"),i.addPersonOrSystemBoundary(...r[s]),this.$=r[s];break;case 37:i.addPersonOrSystemBoundary(...r[s]),this.$=r[s];break;case 38:r[s].splice(2,0,"CONTAINER"),i.addContainerBoundary(...r[s]),this.$=r[s];break;case 39:i.addDeploymentNode("node",...r[s]),this.$=r[s];break;case 40:i.addDeploymentNode("nodeL",...r[s]),this.$=r[s];break;case 41:i.addDeploymentNode("nodeR",...r[s]),this.$=r[s];break;case 42:i.popBoundaryParseStack();break;case 46:i.addPersonOrSystem("person",...r[s]),this.$=r[s];break;case 47:i.addPersonOrSystem("external_person",...r[s]),this.$=r[s];break;case 48:i.addPersonOrSystem("system",...r[s]),this.$=r[s];break;case 49:i.addPersonOrSystem("system_db",...r[s]),this.$=r[s];break;case 50:i.addPersonOrSystem("system_queue",...r[s]),this.$=r[s];break;case 51:i.addPersonOrSystem("external_system",...r[s]),this.$=r[s];break;case 52:i.addPersonOrSystem("external_system_db",...r[s]),this.$=r[s];break;case 53:i.addPersonOrSystem("external_system_queue",...r[s]),this.$=r[s];break;case 54:i.addContainer("container",...r[s]),this.$=r[s];break;case 55:i.addContainer("container_db",...r[s]),this.$=r[s];break;case 56:i.addContainer("container_queue",...r[s]),this.$=r[s];break;case 57:i.addContainer("external_container",...r[s]),this.$=r[s];break;case 58:i.addContainer("external_container_db",...r[s]),this.$=r[s];break;case 59:i.addContainer("external_container_queue",...r[s]),this.$=r[s];break;case 60:i.addComponent("component",...r[s]),this.$=r[s];break;case 61:i.addComponent("component_db",...r[s]),this.$=r[s];break;case 62:i.addComponent("component_queue",...r[s]),this.$=r[s];break;case 63:i.addComponent("external_component",...r[s]),this.$=r[s];break;case 64:i.addComponent("external_component_db",...r[s]),this.$=r[s];break;case 65:i.addComponent("external_component_queue",...r[s]),this.$=r[s];break;case 67:i.addRel("rel",...r[s]),this.$=r[s];break;case 68:i.addRel("birel",...r[s]),this.$=r[s];break;case 69:i.addRel("rel_u",...r[s]),this.$=r[s];break;case 70:i.addRel("rel_d",...r[s]),this.$=r[s];break;case 71:i.addRel("rel_l",...r[s]),this.$=r[s];break;case 72:i.addRel("rel_r",...r[s]),this.$=r[s];break;case 73:i.addRel("rel_b",...r[s]),this.$=r[s];break;case 74:r[s].splice(0,1),i.addRel("rel",...r[s]),this.$=r[s];break;case 75:i.updateElStyle("update_el_style",...r[s]),this.$=r[s];break;case 76:i.updateRelStyle("update_rel_style",...r[s]),this.$=r[s];break;case 77:i.updateLayoutConfig("update_layout_config",...r[s]),this.$=r[s];break;case 78:this.$=[r[s]];break;case 79:r[s].unshift(r[s-1]),this.$=r[s];break;case 80:case 82:this.$=r[s].trim();break;case 81:let t={};t[r[s-1].trim()]=r[s].trim(),this.$=t;break;case 83:this.$=""}},table:[{3:1,4:2,5:3,6:4,7:e,8:n,9:i,10:a,11:5,12:10,18:r,22:o,25:s,26:l,27:u,28:d},{1:[3]},{1:[2,1]},{1:[2,2]},{3:17,4:2,5:3,6:4,7:e,8:n,9:i,10:a,11:5,12:10,18:r,22:o,25:s,26:l,27:u,28:d},{1:[2,8]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{1:[2,7]},{13:18,19:[1,19]},{15:[1,20]},{15:[1,21]},{15:[1,22]},{15:[1,23]},{15:[1,24]},{19:[2,11]},{1:[2,3]},{14:25,16:[1,26],21:h},t([16,21],[2,12]),{23:28,29:29,30:30,31:31,32:f,33:g,34:p,36:b,38:m,39:58,40:70,42:71,44:y,46:v,47:w,48:x,49:R,50:_,51:k,53:32,54:E,55:C,56:S,57:T,58:A,59:D,60:I,61:L,62:O,63:M,64:N,65:B,66:P,67:F,68:j,69:$,70:z,71:H,72:U,73:V,74:q,75:W,76:Y,77:G,78:Z,79:K,80:X,81:J,82:Q,83:tt,84:et},{23:79,29:29,30:30,31:31,32:f,33:g,34:p,36:b,38:m,39:58,40:70,42:71,44:y,46:v,47:w,48:x,49:R,50:_,51:k,53:32,54:E,55:C,56:S,57:T,58:A,59:D,60:I,61:L,62:O,63:M,64:N,65:B,66:P,67:F,68:j,69:$,70:z,71:H,72:U,73:V,74:q,75:W,76:Y,77:G,78:Z,79:K,80:X,81:J,82:Q,83:tt,84:et},{23:80,29:29,30:30,31:31,32:f,33:g,34:p,36:b,38:m,39:58,40:70,42:71,44:y,46:v,47:w,48:x,49:R,50:_,51:k,53:32,54:E,55:C,56:S,57:T,58:A,59:D,60:I,61:L,62:O,63:M,64:N,65:B,66:P,67:F,68:j,69:$,70:z,71:H,72:U,73:V,74:q,75:W,76:Y,77:G,78:Z,79:K,80:X,81:J,82:Q,83:tt,84:et},{23:81,29:29,30:30,31:31,32:f,33:g,34:p,36:b,38:m,39:58,40:70,42:71,44:y,46:v,47:w,48:x,49:R,50:_,51:k,53:32,54:E,55:C,56:S,57:T,58:A,59:D,60:I,61:L,62:O,63:M,64:N,65:B,66:P,67:F,68:j,69:$,70:z,71:H,72:U,73:V,74:q,75:W,76:Y,77:G,78:Z,79:K,80:X,81:J,82:Q,83:tt,84:et},{23:82,29:29,30:30,31:31,32:f,33:g,34:p,36:b,38:m,39:58,40:70,42:71,44:y,46:v,47:w,48:x,49:R,50:_,51:k,53:32,54:E,55:C,56:S,57:T,58:A,59:D,60:I,61:L,62:O,63:M,64:N,65:B,66:P,67:F,68:j,69:$,70:z,71:H,72:U,73:V,74:q,75:W,76:Y,77:G,78:Z,79:K,80:X,81:J,82:Q,83:tt,84:et},{15:[1,83]},{17:84,20:[1,85]},{15:[2,14]},{24:[1,86]},t(nt,[2,20],{53:32,39:58,40:70,42:71,30:87,44:y,46:v,47:w,48:x,49:R,50:_,51:k,54:E,55:C,56:S,57:T,58:A,59:D,60:I,61:L,62:O,63:M,64:N,65:B,66:P,67:F,68:j,69:$,70:z,71:H,72:U,73:V,74:q,75:W,76:Y,77:G,78:Z,79:K,80:X,81:J,82:Q,83:tt,84:et}),t(nt,[2,21]),t(it,[2,23],{15:[1,88]}),t(nt,[2,43],{15:[1,89]}),t(at,[2,26]),t(at,[2,27]),{35:[1,90]},{37:[1,91]},t(at,[2,30]),{45:92,85:93,86:rt,87:ot,89:st,90:ct},{45:98,85:93,86:rt,87:ot,89:st,90:ct},{45:99,85:93,86:rt,87:ot,89:st,90:ct},{45:100,85:93,86:rt,87:ot,89:st,90:ct},{45:101,85:93,86:rt,87:ot,89:st,90:ct},{45:102,85:93,86:rt,87:ot,89:st,90:ct},{45:103,85:93,86:rt,87:ot,89:st,90:ct},{45:104,85:93,86:rt,87:ot,89:st,90:ct},{45:105,85:93,86:rt,87:ot,89:st,90:ct},{45:106,85:93,86:rt,87:ot,89:st,90:ct},{45:107,85:93,86:rt,87:ot,89:st,90:ct},{45:108,85:93,86:rt,87:ot,89:st,90:ct},{45:109,85:93,86:rt,87:ot,89:st,90:ct},{45:110,85:93,86:rt,87:ot,89:st,90:ct},{45:111,85:93,86:rt,87:ot,89:st,90:ct},{45:112,85:93,86:rt,87:ot,89:st,90:ct},{45:113,85:93,86:rt,87:ot,89:st,90:ct},{45:114,85:93,86:rt,87:ot,89:st,90:ct},{45:115,85:93,86:rt,87:ot,89:st,90:ct},{45:116,85:93,86:rt,87:ot,89:st,90:ct},t(lt,[2,66]),{45:117,85:93,86:rt,87:ot,89:st,90:ct},{45:118,85:93,86:rt,87:ot,89:st,90:ct},{45:119,85:93,86:rt,87:ot,89:st,90:ct},{45:120,85:93,86:rt,87:ot,89:st,90:ct},{45:121,85:93,86:rt,87:ot,89:st,90:ct},{45:122,85:93,86:rt,87:ot,89:st,90:ct},{45:123,85:93,86:rt,87:ot,89:st,90:ct},{45:124,85:93,86:rt,87:ot,89:st,90:ct},{45:125,85:93,86:rt,87:ot,89:st,90:ct},{45:126,85:93,86:rt,87:ot,89:st,90:ct},{45:127,85:93,86:rt,87:ot,89:st,90:ct},{30:128,39:58,40:70,42:71,44:y,46:v,47:w,48:x,49:R,50:_,51:k,53:32,54:E,55:C,56:S,57:T,58:A,59:D,60:I,61:L,62:O,63:M,64:N,65:B,66:P,67:F,68:j,69:$,70:z,71:H,72:U,73:V,74:q,75:W,76:Y,77:G,78:Z,79:K,80:X,81:J,82:Q,83:tt,84:et},{15:[1,130],43:[1,129]},{45:131,85:93,86:rt,87:ot,89:st,90:ct},{45:132,85:93,86:rt,87:ot,89:st,90:ct},{45:133,85:93,86:rt,87:ot,89:st,90:ct},{45:134,85:93,86:rt,87:ot,89:st,90:ct},{45:135,85:93,86:rt,87:ot,89:st,90:ct},{45:136,85:93,86:rt,87:ot,89:st,90:ct},{45:137,85:93,86:rt,87:ot,89:st,90:ct},{24:[1,138]},{24:[1,139]},{24:[1,140]},{24:[1,141]},t(ut,[2,9]),{14:142,21:h},{21:[2,13]},{1:[2,15]},t(nt,[2,22]),t(it,[2,24],{31:31,29:143,32:f,33:g,34:p,36:b,38:m}),t(nt,[2,44],{29:29,30:30,31:31,53:32,39:58,40:70,42:71,23:144,32:f,33:g,34:p,36:b,38:m,44:y,46:v,47:w,48:x,49:R,50:_,51:k,54:E,55:C,56:S,57:T,58:A,59:D,60:I,61:L,62:O,63:M,64:N,65:B,66:P,67:F,68:j,69:$,70:z,71:H,72:U,73:V,74:q,75:W,76:Y,77:G,78:Z,79:K,80:X,81:J,82:Q,83:tt,84:et}),t(at,[2,28]),t(at,[2,29]),t(lt,[2,46]),t(dt,[2,78],{85:93,45:145,86:rt,87:ot,89:st,90:ct}),t(ht,[2,80]),{88:[1,146]},t(ht,[2,82]),t(ht,[2,83]),t(lt,[2,47]),t(lt,[2,48]),t(lt,[2,49]),t(lt,[2,50]),t(lt,[2,51]),t(lt,[2,52]),t(lt,[2,53]),t(lt,[2,54]),t(lt,[2,55]),t(lt,[2,56]),t(lt,[2,57]),t(lt,[2,58]),t(lt,[2,59]),t(lt,[2,60]),t(lt,[2,61]),t(lt,[2,62]),t(lt,[2,63]),t(lt,[2,64]),t(lt,[2,65]),t(lt,[2,67]),t(lt,[2,68]),t(lt,[2,69]),t(lt,[2,70]),t(lt,[2,71]),t(lt,[2,72]),t(lt,[2,73]),t(lt,[2,74]),t(lt,[2,75]),t(lt,[2,76]),t(lt,[2,77]),{41:147,52:[1,148]},{15:[1,149]},{43:[1,150]},t(ft,[2,35]),t(ft,[2,36]),t(ft,[2,37]),t(ft,[2,38]),t(ft,[2,39]),t(ft,[2,40]),t(ft,[2,41]),{1:[2,16]},{1:[2,17]},{1:[2,18]},{1:[2,19]},{15:[1,151]},t(it,[2,25]),t(nt,[2,45]),t(dt,[2,79]),t(ht,[2,81]),t(lt,[2,31]),t(lt,[2,42]),t(gt,[2,32]),t(gt,[2,33],{15:[1,152]}),t(ut,[2,10]),t(gt,[2,34])],defaultActions:{2:[2,1],3:[2,2],5:[2,8],6:[2,4],7:[2,5],8:[2,6],9:[2,7],16:[2,11],17:[2,3],27:[2,14],85:[2,13],86:[2,15],138:[2,16],139:[2,17],140:[2,18],141:[2,19]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},bt={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),18;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 10;case 5:return this.begin("type_directive"),19;case 6:return this.popState(),this.begin("arg_directive"),16;case 7:return this.popState(),this.popState(),21;case 8:return 20;case 9:return 32;case 10:return 33;case 11:return this.begin("acc_title"),34;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),36;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:case 78:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:case 21:case 75:break;case 19:c;break;case 20:return 15;case 22:return 22;case 23:return 25;case 24:return 26;case 25:return 27;case 26:return 28;case 27:return this.begin("person_ext"),55;case 28:return this.begin("person"),54;case 29:return this.begin("system_ext_queue"),61;case 30:return this.begin("system_ext_db"),60;case 31:return this.begin("system_ext"),59;case 32:return this.begin("system_queue"),58;case 33:return this.begin("system_db"),57;case 34:return this.begin("system"),56;case 35:return this.begin("boundary"),47;case 36:return this.begin("enterprise_boundary"),44;case 37:return this.begin("system_boundary"),46;case 38:return this.begin("container_ext_queue"),67;case 39:return this.begin("container_ext_db"),66;case 40:return this.begin("container_ext"),65;case 41:return this.begin("container_queue"),64;case 42:return this.begin("container_db"),63;case 43:return this.begin("container"),62;case 44:return this.begin("container_boundary"),48;case 45:return this.begin("component_ext_queue"),73;case 46:return this.begin("component_ext_db"),72;case 47:return this.begin("component_ext"),71;case 48:return this.begin("component_queue"),70;case 49:return this.begin("component_db"),69;case 50:return this.begin("component"),68;case 51:case 52:return this.begin("node"),49;case 53:return this.begin("node_l"),50;case 54:return this.begin("node_r"),51;case 55:return this.begin("rel"),74;case 56:return this.begin("birel"),75;case 57:case 58:return this.begin("rel_u"),76;case 59:case 60:return this.begin("rel_d"),77;case 61:case 62:return this.begin("rel_l"),78;case 63:case 64:return this.begin("rel_r"),79;case 65:return this.begin("rel_b"),80;case 66:return this.begin("rel_index"),81;case 67:return this.begin("update_el_style"),82;case 68:return this.begin("update_rel_style"),83;case 69:return this.begin("update_layout_config"),84;case 70:return"EOF_IN_STRUCT";case 71:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 72:this.begin("attribute");break;case 73:case 84:this.popState(),this.popState();break;case 74:case 76:return 90;case 77:this.begin("string");break;case 79:case 85:return"STR";case 80:this.begin("string_kv");break;case 81:return this.begin("string_kv_key"),"STR_KEY";case 82:this.popState(),this.begin("string_kv_value");break;case 83:return"STR_VALUE";case 86:return"LBRACE";case 87:return"RBRACE";case 88:return"SPACE";case 89:return"EOL";case 90:return 24}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\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:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},string_kv_value:{rules:[83,84],inclusive:!1},string_kv_key:{rules:[82],inclusive:!1},string_kv:{rules:[81],inclusive:!1},string:{rules:[78,79],inclusive:!1},attribute:{rules:[73,74,75,76,77,80,85],inclusive:!1},update_layout_config:{rules:[70,71,72,73],inclusive:!1},update_rel_style:{rules:[70,71,72,73],inclusive:!1},update_el_style:{rules:[70,71,72,73],inclusive:!1},rel_b:{rules:[70,71,72,73],inclusive:!1},rel_r:{rules:[70,71,72,73],inclusive:!1},rel_l:{rules:[70,71,72,73],inclusive:!1},rel_d:{rules:[70,71,72,73],inclusive:!1},rel_u:{rules:[70,71,72,73],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[70,71,72,73],inclusive:!1},node_r:{rules:[70,71,72,73],inclusive:!1},node_l:{rules:[70,71,72,73],inclusive:!1},node:{rules:[70,71,72,73],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[70,71,72,73],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[70,71,72,73],inclusive:!1},component_ext:{rules:[70,71,72,73],inclusive:!1},component_queue:{rules:[70,71,72,73],inclusive:!1},component_db:{rules:[70,71,72,73],inclusive:!1},component:{rules:[70,71,72,73],inclusive:!1},container_boundary:{rules:[70,71,72,73],inclusive:!1},container_ext_queue:{rules:[],inclusive:!1},container_ext_db:{rules:[70,71,72,73],inclusive:!1},container_ext:{rules:[70,71,72,73],inclusive:!1},container_queue:{rules:[70,71,72,73],inclusive:!1},container_db:{rules:[70,71,72,73],inclusive:!1},container:{rules:[70,71,72,73],inclusive:!1},birel:{rules:[70,71,72,73],inclusive:!1},system_boundary:{rules:[70,71,72,73],inclusive:!1},enterprise_boundary:{rules:[70,71,72,73],inclusive:!1},boundary:{rules:[70,71,72,73],inclusive:!1},system_ext_queue:{rules:[70,71,72,73],inclusive:!1},system_ext_db:{rules:[70,71,72,73],inclusive:!1},system_ext:{rules:[70,71,72,73],inclusive:!1},system_queue:{rules:[70,71,72,73],inclusive:!1},system_db:{rules:[70,71,72,73],inclusive:!1},system:{rules:[70,71,72,73],inclusive:!1},person_ext:{rules:[70,71,72,73],inclusive:!1},person:{rules:[70,71,72,73],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,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,65,66,67,68,69,86,87,88,89,90],inclusive:!0}}};function mt(){this.yy={}}return pt.lexer=bt,mt.prototype=pt,pt.Parser=mt,new mt}();lw.parser=lw;const uw=lw,dw=t=>null!==t.match(/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/);let hw=[],fw=[""],gw="global",pw="",bw=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],mw=[],yw="",vw=!1,ww=4,xw=2;var Rw;const _w=function(t,e,n,i,a,r,o,s,c){if(null==t||null==e||null==n||null==i)return;let l={};const u=mw.find((t=>t.from===e&&t.to===n));if(u?l=u:mw.push(l),l.type=t,l.from=e,l.to=n,l.label={text:i},null==a)l.techn={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];l[t]={text:e}}else l.techn={text:a};if(null==r)l.descr={text:""};else if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]={text:e}}else l.descr={text:r};if("object"==typeof o){let[t,e]=Object.entries(o)[0];l[t]=e}else l.sprite=o;if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=e}else l.tags=s;if("object"==typeof c){let[t,e]=Object.entries(c)[0];l[t]=e}else l.link=c;l.wrap=Lw()},kw=function(t,e,n,i,a,r,o){if(null===e||null===n)return;let s={};const c=hw.find((t=>t.alias===e));if(c&&e===c.alias?s=c:(s.alias=e,hw.push(s)),s.label=null==n?{text:""}:{text:n},null==i)s.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];s[t]={text:e}}else s.descr={text:i};if("object"==typeof a){let[t,e]=Object.entries(a)[0];s[t]=e}else s.sprite=a;if("object"==typeof r){let[t,e]=Object.entries(r)[0];s[t]=e}else s.tags=r;if("object"==typeof o){let[t,e]=Object.entries(o)[0];s[t]=e}else s.link=o;s.typeC4Shape={text:t},s.parentBoundary=gw,s.wrap=Lw()},Ew=function(t,e,n,i,a,r,o,s){if(null===e||null===n)return;let c={};const l=hw.find((t=>t.alias===e));if(l&&e===l.alias?c=l:(c.alias=e,hw.push(c)),c.label=null==n?{text:""}:{text:n},null==i)c.techn={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];c[t]={text:e}}else c.techn={text:i};if(null==a)c.descr={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];c[t]={text:e}}else c.descr={text:a};if("object"==typeof r){let[t,e]=Object.entries(r)[0];c[t]=e}else c.sprite=r;if("object"==typeof o){let[t,e]=Object.entries(o)[0];c[t]=e}else c.tags=o;if("object"==typeof s){let[t,e]=Object.entries(s)[0];c[t]=e}else c.link=s;c.wrap=Lw(),c.typeC4Shape={text:t},c.parentBoundary=gw},Cw=function(t,e,n,i,a,r,o,s){if(null===e||null===n)return;let c={};const l=hw.find((t=>t.alias===e));if(l&&e===l.alias?c=l:(c.alias=e,hw.push(c)),c.label=null==n?{text:""}:{text:n},null==i)c.techn={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];c[t]={text:e}}else c.techn={text:i};if(null==a)c.descr={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];c[t]={text:e}}else c.descr={text:a};if("object"==typeof r){let[t,e]=Object.entries(r)[0];c[t]=e}else c.sprite=r;if("object"==typeof o){let[t,e]=Object.entries(o)[0];c[t]=e}else c.tags=o;if("object"==typeof s){let[t,e]=Object.entries(s)[0];c[t]=e}else c.link=s;c.wrap=Lw(),c.typeC4Shape={text:t},c.parentBoundary=gw},Sw=function(t,e,n,i,a){if(null===t||null===e)return;let r={};const o=bw.find((e=>e.alias===t));if(o&&t===o.alias?r=o:(r.alias=t,bw.push(r)),r.label=null==e?{text:""}:{text:e},null==n)r.type={text:"system"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];r[t]={text:e}}else r.type={text:n};if("object"==typeof i){let[t,e]=Object.entries(i)[0];r[t]=e}else r.tags=i;if("object"==typeof a){let[t,e]=Object.entries(a)[0];r[t]=e}else r.link=a;r.parentBoundary=gw,r.wrap=Lw(),pw=gw,gw=t,fw.push(pw)},Tw=function(t,e,n,i,a){if(null===t||null===e)return;let r={};const o=bw.find((e=>e.alias===t));if(o&&t===o.alias?r=o:(r.alias=t,bw.push(r)),r.label=null==e?{text:""}:{text:e},null==n)r.type={text:"container"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];r[t]={text:e}}else r.type={text:n};if("object"==typeof i){let[t,e]=Object.entries(i)[0];r[t]=e}else r.tags=i;if("object"==typeof a){let[t,e]=Object.entries(a)[0];r[t]=e}else r.link=a;r.parentBoundary=gw,r.wrap=Lw(),pw=gw,gw=t,fw.push(pw)},Aw=function(t,e,n,i,a,r,o,s){if(null===e||null===n)return;let c={};const l=bw.find((t=>t.alias===e));if(l&&e===l.alias?c=l:(c.alias=e,bw.push(c)),c.label=null==n?{text:""}:{text:n},null==i)c.type={text:"node"};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];c[t]={text:e}}else c.type={text:i};if(null==a)c.descr={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];c[t]={text:e}}else c.descr={text:a};if("object"==typeof o){let[t,e]=Object.entries(o)[0];c[t]=e}else c.tags=o;if("object"==typeof s){let[t,e]=Object.entries(s)[0];c[t]=e}else c.link=s;c.nodeType=t,c.parentBoundary=gw,c.wrap=Lw(),pw=gw,gw=e,fw.push(pw)},Dw=function(t){return null==t?hw:hw.filter((e=>e.parentBoundary===t))},Iw=function(t){return Object.keys(Dw(t))},Lw=function(){return vw},Ow={addPersonOrSystem:kw,addPersonOrSystemBoundary:Sw,addContainer:Ew,addContainerBoundary:Tw,addComponent:Cw,addDeploymentNode:Aw,popBoundaryParseStack:function(){gw=pw,fw.pop(),pw=fw.pop(),fw.push(pw)},addRel:_w,updateElStyle:function(t,e,n,i,a,r,o,s,c,l,u){let d=hw.find((t=>t.alias===e));if(void 0!==d||(d=bw.find((t=>t.alias===e)),void 0!==d)){if(null!=n)if("object"==typeof n){let[t,e]=Object.entries(n)[0];d[t]=e}else d.bgColor=n;if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];d[t]=e}else d.fontColor=i;if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];d[t]=e}else d.borderColor=a;if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];d[t]=e}else d.shadowing=r;if(null!=o)if("object"==typeof o){let[t,e]=Object.entries(o)[0];d[t]=e}else d.shape=o;if(null!=s)if("object"==typeof s){let[t,e]=Object.entries(s)[0];d[t]=e}else d.sprite=s;if(null!=c)if("object"==typeof c){let[t,e]=Object.entries(c)[0];d[t]=e}else d.techn=c;if(null!=l)if("object"==typeof l){let[t,e]=Object.entries(l)[0];d[t]=e}else d.legendText=l;if(null!=u)if("object"==typeof u){let[t,e]=Object.entries(u)[0];d[t]=e}else d.legendSprite=u}},updateRelStyle:function(t,e,n,i,a,r,o){const s=mw.find((t=>t.from===e&&t.to===n));if(void 0!==s){if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];s[t]=e}else s.textColor=i;if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];s[t]=e}else s.lineColor=a;if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];s[t]=parseInt(e)}else s.offsetX=parseInt(r);if(null!=o)if("object"==typeof o){let[t,e]=Object.entries(o)[0];s[t]=parseInt(e)}else s.offsetY=parseInt(o)}},updateLayoutConfig:function(t,e,n){let i=ww,a=xw;if("object"==typeof e){const t=Object.values(e)[0];i=parseInt(t)}else i=parseInt(e);if("object"==typeof n){const t=Object.values(n)[0];a=parseInt(t)}else a=parseInt(n);i>=1&&(ww=i),a>=1&&(xw=a)},autoWrap:Lw,setWrap:function(t){vw=t},getC4ShapeArray:Dw,getC4Shape:function(t){return hw.find((e=>e.alias===t))},getC4ShapeKeys:Iw,getBoundarys:function(t){return null==t?bw:bw.filter((e=>e.parentBoundary===t))},getCurrentBoundaryParse:function(){return gw},getParentBoundaryParse:function(){return pw},getRels:function(){return mw},getTitle:function(){return yw},getC4Type:function(){return Rw},getC4ShapeInRow:function(){return ww},getC4BoundaryInRow:function(){return xw},setAccTitle:tv,getAccTitle:ev,getAccDescription:iv,setAccDescription:nv,parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().c4,clear:function(){hw=[],bw=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],pw="",gw="global",fw=[""],mw=[],fw=[""],yw="",vw=!1,ww=4,xw=2},LINETYPE:{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},ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},setTitle:function(t){yw=Wd(t,Ry())},setC4Type:function(t){Rw=Wd(t,Ry())}},Mw=function(t,e){const n=t.append("rect");if(n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),n.attr("rx",e.rx),n.attr("ry",e.ry),"undefined"!==e.attrs&&null!==e.attrs)for(let i in e.attrs)n.attr(i,e.attrs[i]);return"undefined"!==e.class&&n.attr("class",e.class),n},Nw=function(t,e,n,i,a,r){const o=t.append("image");o.attr("width",e),o.attr("height",n),o.attr("x",i),o.attr("y",a);let s=r.startsWith("data:image/png;base64")?r:p(r);o.attr("xlink:href",s)},Bw=(t,e,n)=>{const i=t.append("g");let a=0;for(let r of e){let t=r.textColor?r.textColor:"#444444",e=r.lineColor?r.lineColor:"#444444",o=r.offsetX?parseInt(r.offsetX):0,s=r.offsetY?parseInt(r.offsetY):0,c="";if(0===a){let t=i.append("line");t.attr("x1",r.startPoint.x),t.attr("y1",r.startPoint.y),t.attr("x2",r.endPoint.x),t.attr("y2",r.endPoint.y),t.attr("stroke-width","1"),t.attr("stroke",e),t.style("fill","none"),"rel_b"!==r.type&&t.attr("marker-end","url("+c+"#arrowhead)"),("birel"===r.type||"rel_b"===r.type)&&t.attr("marker-start","url("+c+"#arrowend)"),a=-1}else{let t=i.append("path");t.attr("fill","none").attr("stroke-width","1").attr("stroke",e).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",r.startPoint.x).replaceAll("starty",r.startPoint.y).replaceAll("controlx",r.startPoint.x+(r.endPoint.x-r.startPoint.x)/2-(r.endPoint.x-r.startPoint.x)/4).replaceAll("controly",r.startPoint.y+(r.endPoint.y-r.startPoint.y)/2).replaceAll("stopx",r.endPoint.x).replaceAll("stopy",r.endPoint.y)),"rel_b"!==r.type&&t.attr("marker-end","url("+c+"#arrowhead)"),("birel"===r.type||"rel_b"===r.type)&&t.attr("marker-start","url("+c+"#arrowend)")}let l=n.messageFont();Zw(n)(r.label.text,i,Math.min(r.startPoint.x,r.endPoint.x)+Math.abs(r.endPoint.x-r.startPoint.x)/2+o,Math.min(r.startPoint.y,r.endPoint.y)+Math.abs(r.endPoint.y-r.startPoint.y)/2+s,r.label.width,r.label.height,{fill:t},l),r.techn&&""!==r.techn.text&&(l=n.messageFont(),Zw(n)("["+r.techn.text+"]",i,Math.min(r.startPoint.x,r.endPoint.x)+Math.abs(r.endPoint.x-r.startPoint.x)/2+o,Math.min(r.startPoint.y,r.endPoint.y)+Math.abs(r.endPoint.y-r.startPoint.y)/2+n.messageFontSize+5+s,Math.max(r.label.width,r.techn.width),r.techn.height,{fill:t,"font-style":"italic"},l))}},Pw=function(t,e,n){const i=t.append("g");let a=e.bgColor?e.bgColor:"none",r=e.borderColor?e.borderColor:"#444444",o=e.fontColor?e.fontColor:"black",s={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(s={"stroke-width":1});let c={x:e.x,y:e.y,fill:a,stroke:r,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:s};Mw(i,c);let l=n.boundaryFont();l.fontWeight="bold",l.fontSize=l.fontSize+2,l.fontColor=o,Zw(n)(e.label.text,i,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},l),e.type&&""!==e.type.text&&(l=n.boundaryFont(),l.fontColor=o,Zw(n)(e.type.text,i,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},l)),e.descr&&""!==e.descr.text&&(l=n.boundaryFont(),l.fontSize=l.fontSize-2,l.fontColor=o,Zw(n)(e.descr.text,i,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},l))},Fw=function(t,e,n){var i;let a=e.bgColor?e.bgColor:n[e.typeC4Shape.text+"_bg_color"],r=e.borderColor?e.borderColor:n[e.typeC4Shape.text+"_border_color"],o=e.fontColor?e.fontColor:"#FFFFFF",s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":s="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":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII="}const c=t.append("g");c.attr("class","person-man");const l=Yw();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":l.x=e.x,l.y=e.y,l.fill=a,l.width=e.width,l.height=e.height,l.stroke=r,l.rx=2.5,l.ry=2.5,l.attrs={"stroke-width":.5},Mw(c,l);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":c.append("path").attr("fill",a).attr("stroke-width","0.5").attr("stroke",r).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",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),c.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":c.append("path").attr("fill",a).attr("stroke-width","0.5").attr("stroke",r).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",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),c.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2))}let u=Gw(n,e.typeC4Shape.text);switch(c.append("text").attr("fill",o).attr("font-family",u.fontFamily).attr("font-size",u.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":Nw(c,48,48,e.x+e.width/2-24,e.y+e.image.Y,s)}let d=n[e.typeC4Shape.text+"Font"]();return d.fontWeight="bold",d.fontSize=d.fontSize+2,d.fontColor=o,Zw(n)(e.label.text,c,e.x,e.y+e.label.Y,e.width,e.height,{fill:o},d),d=n[e.typeC4Shape.text+"Font"](),d.fontColor=o,e.techn&&""!==(null==(i=e.techn)?void 0:i.text)?Zw(n)(e.techn.text,c,e.x,e.y+e.techn.Y,e.width,e.height,{fill:o,"font-style":"italic"},d):e.type&&""!==e.type.text&&Zw(n)(e.type.text,c,e.x,e.y+e.type.Y,e.width,e.height,{fill:o,"font-style":"italic"},d),e.descr&&""!==e.descr.text&&(d=n.personFont(),d.fontColor=o,Zw(n)(e.descr.text,c,e.x,e.y+e.descr.Y,e.width,e.height,{fill:o},d)),e.height},jw=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")},$w=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")},zw=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")},Hw=function(t){t.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")},Uw=function(t){t.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")},Vw=function(t){t.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")},qw=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)},Ww=function(t){const e=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);e.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"),e.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")},Yw=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},Gw=(t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),Zw=function(){function t(t,e,n,a,r,o,s){i(e.append("text").attr("x",n+r/2).attr("y",a+o/2+5).style("text-anchor","middle").text(t),s)}function e(t,e,n,a,r,o,s,c){const{fontSize:l,fontFamily:u,fontWeight:d}=c,h=t.split(Qd.lineBreakRegex);for(let f=0;f<h.length;f++){const t=f*l-l*(h.length-1)/2,o=e.append("text").attr("x",n+r/2).attr("y",a).style("text-anchor","middle").attr("dominant-baseline","middle").style("font-size",l).style("font-weight",d).style("font-family",u);o.append("tspan").attr("dy",t).text(h[f]).attr("alignment-baseline","mathematical"),i(o,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,o,s,c,l),i(d,c)}function i(t,e){for(const n in e)e.hasOwnProperty(n)&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}(),Kw={drawRect:Mw,drawBoundary:Pw,drawC4Shape:Fw,drawRels:Bw,drawImage:Nw,insertArrowHead:Hw,insertArrowEnd:Uw,insertArrowFilledHead:Vw,insertDynamicNumber:qw,insertArrowCrossHead:Ww,insertDatabaseIcon:jw,insertComputerIcon:$w,insertClockIcon:zw,getNoteRect:Yw,sanitizeUrl:p};let Xw=0,Jw=0,Qw=4,tx=2;lw.yy=Ow;let ex={};class nx{constructor(t){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,ix(t.db.getConfig())}setData(t,e,n,i){this.nextData.startx=this.data.startx=t,this.nextData.stopx=this.data.stopx=e,this.nextData.starty=this.data.starty=n,this.nextData.stopy=this.data.stopy=i}updateVal(t,e,n,i){void 0===t[e]?t[e]=n:t[e]=i(n,t[e])}insert(t){this.nextData.cnt=this.nextData.cnt+1;let e=this.nextData.startx===this.nextData.stopx?this.nextData.stopx+t.margin:this.nextData.stopx+2*t.margin,n=e+t.width,i=this.nextData.starty+2*t.margin,a=i+t.height;(e>=this.data.widthLimit||n>=this.data.widthLimit||this.nextData.cnt>Qw)&&(e=this.nextData.startx+t.margin+ex.nextLinePaddingX,i=this.nextData.stopy+2*t.margin,this.nextData.stopx=n=e+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=a=i+t.height,this.nextData.cnt=1),t.x=e,t.y=i,this.updateVal(this.data,"startx",e,Math.min),this.updateVal(this.data,"starty",i,Math.min),this.updateVal(this.data,"stopx",n,Math.max),this.updateVal(this.data,"stopy",a,Math.max),this.updateVal(this.nextData,"startx",e,Math.min),this.updateVal(this.nextData,"starty",i,Math.min),this.updateVal(this.nextData,"stopx",n,Math.max),this.updateVal(this.nextData,"stopy",a,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},ix(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}}const ix=function(t){Sp(ex,t),t.fontFamily&&(ex.personFontFamily=ex.systemFontFamily=ex.messageFontFamily=t.fontFamily),t.fontSize&&(ex.personFontSize=ex.systemFontSize=ex.messageFontSize=t.fontSize),t.fontWeight&&(ex.personFontWeight=ex.systemFontWeight=ex.messageFontWeight=t.fontWeight)},ax=(t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),rx=t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}),ox=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight});function sx(t,e,n,i,a){if(!e[t].width)if(n)e[t].text=cm(e[t].text,a,i),e[t].textLines=e[t].text.split(Qd.lineBreakRegex).length,e[t].width=a,e[t].height=um(e[t].text,i);else{let n=e[t].text.split(Qd.lineBreakRegex);e[t].textLines=n.length;let a=0;e[t].height=0,e[t].width=0;for(const r of n)e[t].width=Math.max(dm(r,i),e[t].width),a=um(r,i),e[t].height=e[t].height+a}}const cx=function(t,e,n){e.x=n.data.startx,e.y=n.data.starty,e.width=n.data.stopx-n.data.startx,e.height=n.data.stopy-n.data.starty,e.label.y=ex.c4ShapeMargin-35;let i=e.wrap&&ex.wrap,a=rx(ex);a.fontSize=a.fontSize+2,a.fontWeight="bold",sx("label",e,i,a,dm(e.label.text,a)),Kw.drawBoundary(t,e,ex)},lx=function(t,e,n,i){let a=0;for(const r of i){a=0;const i=n[r];let o=ax(ex,i.typeC4Shape.text);switch(o.fontSize=o.fontSize-2,i.typeC4Shape.width=dm("<<"+i.typeC4Shape.text+">>",o),i.typeC4Shape.height=o.fontSize+2,i.typeC4Shape.Y=ex.c4ShapePadding,a=i.typeC4Shape.Y+i.typeC4Shape.height-4,i.image={width:0,height:0,Y:0},i.typeC4Shape.text){case"person":case"external_person":i.image.width=48,i.image.height=48,i.image.Y=a,a=i.image.Y+i.image.height}i.sprite&&(i.image.width=48,i.image.height=48,i.image.Y=a,a=i.image.Y+i.image.height);let s=i.wrap&&ex.wrap,c=ex.width-2*ex.c4ShapePadding,l=ax(ex,i.typeC4Shape.text);l.fontSize=l.fontSize+2,l.fontWeight="bold",sx("label",i,s,l,c),i.label.Y=a+8,a=i.label.Y+i.label.height,i.type&&""!==i.type.text?(i.type.text="["+i.type.text+"]",sx("type",i,s,ax(ex,i.typeC4Shape.text),c),i.type.Y=a+5,a=i.type.Y+i.type.height):i.techn&&""!==i.techn.text&&(i.techn.text="["+i.techn.text+"]",sx("techn",i,s,ax(ex,i.techn.text),c),i.techn.Y=a+5,a=i.techn.Y+i.techn.height);let u=a,d=i.label.width;i.descr&&""!==i.descr.text&&(sx("descr",i,s,ax(ex,i.typeC4Shape.text),c),i.descr.Y=a+20,a=i.descr.Y+i.descr.height,d=Math.max(i.label.width,i.descr.width),u=a-5*i.descr.textLines),d+=ex.c4ShapePadding,i.width=Math.max(i.width||ex.width,d,ex.width),i.height=Math.max(i.height||ex.height,u,ex.height),i.margin=i.margin||ex.c4ShapeMargin,t.insert(i),Kw.drawC4Shape(e,i,ex)}t.bumpLastMargin(ex.c4ShapeMargin)};let ux=class{constructor(t,e){this.x=t,this.y=e}},dx=function(t,e){let n=t.x,i=t.y,a=e.x,r=e.y,o=n+t.width/2,s=i+t.height/2,c=Math.abs(n-a),l=Math.abs(i-r),u=l/c,d=t.height/t.width,h=null;return i==r&&n<a?h=new ux(n+t.width,s):i==r&&n>a?h=new ux(n,s):n==a&&i<r?h=new ux(o,i+t.height):n==a&&i>r&&(h=new ux(o,i)),n>a&&i<r?h=d>=u?new ux(n,s+u*t.width/2):new ux(o-c/l*t.height/2,i+t.height):n<a&&i<r?h=d>=u?new ux(n+t.width,s+u*t.width/2):new ux(o+c/l*t.height/2,i+t.height):n<a&&i>r?h=d>=u?new ux(n+t.width,s-u*t.width/2):new ux(o+t.height/2*c/l,i):n>a&&i>r&&(h=d>=u?new ux(n,s-t.width/2*u):new ux(o-t.height/2*c/l,i)),h},hx=function(t,e){let n={x:0,y:0};n.x=e.x+e.width/2,n.y=e.y+e.height/2;let i=dx(t,n);return n.x=t.x+t.width/2,n.y=t.y+t.height/2,{startPoint:i,endPoint:dx(e,n)}};const fx=function(t,e,n,i){let a=0;for(let r of e){a+=1;let t=r.wrap&&ex.wrap,e=ox(ex);"C4Dynamic"===i.db.getC4Type()&&(r.label.text=a+": "+r.label.text);let o=dm(r.label.text,e);sx("label",r,t,e,o),r.techn&&""!==r.techn.text&&(o=dm(r.techn.text,e),sx("techn",r,t,e,o)),r.descr&&""!==r.descr.text&&(o=dm(r.descr.text,e),sx("descr",r,t,e,o));let s=n(r.from),c=n(r.to),l=hx(s,c);r.startPoint=l.startPoint,r.endPoint=l.endPoint}Kw.drawRels(t,e,ex)};function gx(t,e,n,i,a){let r=new nx(a);r.data.widthLimit=n.data.widthLimit/Math.min(tx,i.length);for(let[o,s]of i.entries()){let i=0;s.image={width:0,height:0,Y:0},s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height);let c=s.wrap&&ex.wrap,l=rx(ex);if(l.fontSize=l.fontSize+2,l.fontWeight="bold",sx("label",s,c,l,r.data.widthLimit),s.label.Y=i+8,i=s.label.Y+s.label.height,s.type&&""!==s.type.text&&(s.type.text="["+s.type.text+"]",sx("type",s,c,rx(ex),r.data.widthLimit),s.type.Y=i+5,i=s.type.Y+s.type.height),s.descr&&""!==s.descr.text){let t=rx(ex);t.fontSize=t.fontSize-2,sx("descr",s,c,t,r.data.widthLimit),s.descr.Y=i+20,i=s.descr.Y+s.descr.height}if(0==o||o%tx==0){let t=n.data.startx+ex.diagramMarginX,e=n.data.stopy+ex.diagramMarginY+i;r.setData(t,t,e,e)}else{let t=r.data.stopx!==r.data.startx?r.data.stopx+ex.diagramMarginX:r.data.startx,e=r.data.starty;r.setData(t,t,e,e)}r.name=s.alias;let u=a.db.getC4ShapeArray(s.alias),d=a.db.getC4ShapeKeys(s.alias);d.length>0&&lx(r,t,u,d),e=s.alias;let h=a.db.getBoundarys(e);h.length>0&&gx(t,e,r,h,a),"global"!==s.alias&&cx(t,s,r),n.data.stopy=Math.max(r.data.stopy+ex.c4ShapeMargin,n.data.stopy),n.data.stopx=Math.max(r.data.stopx+ex.c4ShapeMargin,n.data.stopx),Xw=Math.max(Xw,n.data.stopx),Jw=Math.max(Jw,n.data.stopy)}}const px={drawPersonOrSystemArray:lx,drawBoundary:cx,setConf:ix,draw:function(t,e,n,i){ex=Ry().c4;const a=Ry().securityLevel;let r;"sandbox"===a&&(r=un("#i"+e));const o=un("sandbox"===a?r.nodes()[0].contentDocument.body:"body");let s=i.db;i.db.setWrap(ex.wrap),Qw=s.getC4ShapeInRow(),tx=s.getC4BoundaryInRow(),d.debug(`C:${JSON.stringify(ex,null,2)}`);const c="sandbox"===a?o.select(`[id="${e}"]`):un(`[id="${e}"]`);Kw.insertComputerIcon(c),Kw.insertDatabaseIcon(c),Kw.insertClockIcon(c);let l=new nx(i);l.setData(ex.diagramMarginX,ex.diagramMarginX,ex.diagramMarginY,ex.diagramMarginY),l.data.widthLimit=screen.availWidth,Xw=ex.diagramMarginX,Jw=ex.diagramMarginY;const u=i.db.getTitle();gx(c,"",l,i.db.getBoundarys(""),i),Kw.insertArrowHead(c),Kw.insertArrowEnd(c),Kw.insertArrowCrossHead(c),Kw.insertArrowFilledHead(c),fx(c,i.db.getRels(),i.db.getC4Shape,i),l.data.stopx=Xw,l.data.stopy=Jw;const h=l.data;let f=h.stopy-h.starty+2*ex.diagramMarginY;const g=h.stopx-h.startx+2*ex.diagramMarginX;u&&c.append("text").text(u).attr("x",(h.stopx-h.startx)/2-4*ex.diagramMarginX).attr("y",h.starty+ex.diagramMarginY),Ly(c,f,g,ex.useMaxWidth);const p=u?60:0;c.attr("viewBox",h.startx-ex.diagramMarginX+" -"+(ex.diagramMarginY+p)+" "+g+" "+(f+p)),d.debug("models:",h)}};var bx=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,3],n=[1,7],i=[1,8],a=[1,9],r=[1,10],o=[1,13],s=[1,12],c=[1,16,25],l=[1,20],u=[1,32],d=[1,33],h=[1,34],f=[1,36],g=[1,39],p=[1,37],b=[1,38],m=[1,44],y=[1,45],v=[1,40],w=[1,41],x=[1,42],R=[1,43],_=[1,48],k=[1,49],E=[1,50],C=[1,51],S=[16,25],T=[1,65],A=[1,66],D=[1,67],I=[1,68],L=[1,69],O=[1,70],M=[1,71],N=[1,80],B=[16,25,32,45,46,54,60,61,62,63,64,65,66,71,73],P=[16,25,30,32,45,46,50,54,60,61,62,63,64,65,66,71,73,88,89,90,91],F=[5,8,9,10,11,16,19,23,25],j=[54,88,89,90,91],$=[54,65,66,88,89,90,91],z=[54,60,61,62,63,64,88,89,90,91],H=[16,25,32],U=[1,107],V={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statments:5,direction:6,directive:7,direction_tb:8,direction_bt:9,direction_rl:10,direction_lr:11,graphConfig:12,openDirective:13,typeDirective:14,closeDirective:15,NEWLINE:16,":":17,argDirective:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,CLASS_DIAGRAM:23,statements:24,EOF:25,statement:26,className:27,alphaNumToken:28,classLiteralName:29,GENERICTYPE:30,relationStatement:31,LABEL:32,classStatement:33,methodStatement:34,annotationStatement:35,clickStatement:36,cssClassStatement:37,noteStatement:38,acc_title:39,acc_title_value:40,acc_descr:41,acc_descr_value:42,acc_descr_multiline_value:43,CLASS:44,STYLE_SEPARATOR:45,STRUCT_START:46,members:47,STRUCT_STOP:48,ANNOTATION_START:49,ANNOTATION_END:50,MEMBER:51,SEPARATOR:52,relation:53,STR:54,NOTE_FOR:55,noteText:56,NOTE:57,relationType:58,lineType: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,CSSCLASS:74,commentToken:75,textToken:76,graphCodeTokens:77,textNoTagsToken:78,TAGSTART:79,TAGEND:80,"==":81,"--":82,PCT:83,DEFAULT:84,SPACE:85,MINUS:86,keywords:87,UNICODE_TEXT:88,NUM:89,ALPHA:90,BQUOTE_STR:91,$accept:0,$end:1},terminals_:{2:"error",5:"statments",8:"direction_tb",9:"direction_bt",10:"direction_rl",11:"direction_lr",16:"NEWLINE",17:":",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",23:"CLASS_DIAGRAM",25:"EOF",30:"GENERICTYPE",32:"LABEL",39:"acc_title",40:"acc_title_value",41:"acc_descr",42:"acc_descr_value",43:"acc_descr_multiline_value",44:"CLASS",45:"STYLE_SEPARATOR",46:"STRUCT_START",48:"STRUCT_STOP",49:"ANNOTATION_START",50:"ANNOTATION_END",51:"MEMBER",52:"SEPARATOR",54:"STR",55:"NOTE_FOR",57:"NOTE",60:"AGGREGATION",61:"EXTENSION",62:"COMPOSITION",63:"DEPENDENCY",64:"LOLLIPOP",65:"LINE",66:"DOTTED_LINE",67:"CALLBACK",68:"LINK",69:"LINK_TARGET",70:"CLICK",71:"CALLBACK_NAME",72:"CALLBACK_ARGS",73:"HREF",74:"CSSCLASS",77:"graphCodeTokens",79:"TAGSTART",80:"TAGEND",81:"==",82:"--",83:"PCT",84:"DEFAULT",85:"SPACE",86:"MINUS",87:"keywords",88:"UNICODE_TEXT",89:"NUM",90:"ALPHA",91:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[3,1],[3,2],[6,1],[6,1],[6,1],[6,1],[4,1],[7,4],[7,6],[13,1],[14,1],[18,1],[15,1],[12,4],[24,1],[24,2],[24,3],[27,1],[27,1],[27,2],[27,2],[27,2],[26,1],[26,2],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,2],[26,2],[26,1],[33,2],[33,4],[33,5],[33,7],[35,4],[47,1],[47,2],[34,1],[34,2],[34,1],[34,1],[31,3],[31,4],[31,4],[31,5],[38,3],[38,2],[53,3],[53,2],[53,2],[53,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[36,3],[36,4],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[37,3],[75,1],[75,1],[76,1],[76,1],[76,1],[76,1],[76,1],[76,1],[76,1],[78,1],[78,1],[78,1],[78,1],[28,1],[28,1],[28,1],[29,1],[56,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 5:i.setDirection("TB");break;case 6:i.setDirection("BT");break;case 7:i.setDirection("RL");break;case 8:i.setDirection("LR");break;case 12:i.parseDirective("%%{","open_directive");break;case 13:i.parseDirective(r[s],"type_directive");break;case 14:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 15:i.parseDirective("}%%","close_directive","class");break;case 20:case 21:this.$=r[s];break;case 22:this.$=r[s-1]+r[s];break;case 23:case 24:this.$=r[s-1]+"~"+r[s];break;case 25:i.addRelation(r[s]);break;case 26:r[s-1].title=i.cleanupLabel(r[s]),i.addRelation(r[s-1]);break;case 35:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 36:case 37:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 38:i.addClass(r[s]);break;case 39:i.addClass(r[s-2]),i.setCssClass(r[s-2],r[s]);break;case 40:i.addClass(r[s-3]),i.addMembers(r[s-3],r[s-1]);break;case 41:i.addClass(r[s-5]),i.setCssClass(r[s-5],r[s-3]),i.addMembers(r[s-5],r[s-1]);break;case 42:i.addAnnotation(r[s],r[s-2]);break;case 43:this.$=[r[s]];break;case 44:r[s].push(r[s-1]),this.$=r[s];break;case 45:case 47:case 48:break;case 46:i.addMember(r[s-1],i.cleanupLabel(r[s]));break;case 49:this.$={id1:r[s-2],id2:r[s],relation:r[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 50:this.$={id1:r[s-3],id2:r[s],relation:r[s-1],relationTitle1:r[s-2],relationTitle2:"none"};break;case 51:this.$={id1:r[s-3],id2:r[s],relation:r[s-2],relationTitle1:"none",relationTitle2:r[s-1]};break;case 52:this.$={id1:r[s-4],id2:r[s],relation:r[s-2],relationTitle1:r[s-3],relationTitle2:r[s-1]};break;case 53:i.addNote(r[s],r[s-1]);break;case 54:i.addNote(r[s]);break;case 55:this.$={type1:r[s-2],type2:r[s],lineType:r[s-1]};break;case 56:this.$={type1:"none",type2:r[s],lineType:r[s-1]};break;case 57:this.$={type1:r[s-1],type2:"none",lineType:r[s]};break;case 58:this.$={type1:"none",type2:"none",lineType:r[s]};break;case 59:this.$=i.relationType.AGGREGATION;break;case 60:this.$=i.relationType.EXTENSION;break;case 61:this.$=i.relationType.COMPOSITION;break;case 62:this.$=i.relationType.DEPENDENCY;break;case 63:this.$=i.relationType.LOLLIPOP;break;case 64:this.$=i.lineType.LINE;break;case 65:this.$=i.lineType.DOTTED_LINE;break;case 66:case 72:this.$=r[s-2],i.setClickEvent(r[s-1],r[s]);break;case 67:case 73:this.$=r[s-3],i.setClickEvent(r[s-2],r[s-1]),i.setTooltip(r[s-2],r[s]);break;case 68:case 76:this.$=r[s-2],i.setLink(r[s-1],r[s]);break;case 69:case 77:this.$=r[s-3],i.setLink(r[s-2],r[s-1],r[s]);break;case 70:case 78:this.$=r[s-3],i.setLink(r[s-2],r[s-1]),i.setTooltip(r[s-2],r[s]);break;case 71:case 79:this.$=r[s-4],i.setLink(r[s-3],r[s-2],r[s]),i.setTooltip(r[s-3],r[s-1]);break;case 74:this.$=r[s-3],i.setClickEvent(r[s-2],r[s-1],r[s]);break;case 75:this.$=r[s-4],i.setClickEvent(r[s-3],r[s-2],r[s-1]),i.setTooltip(r[s-3],r[s]);break;case 80:i.setCssClass(r[s-1],r[s])}},table:[{3:1,4:2,5:e,6:4,7:5,8:n,9:i,10:a,11:r,12:6,13:11,19:o,23:s},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{3:14,4:2,5:e,6:4,7:5,8:n,9:i,10:a,11:r,12:6,13:11,19:o,23:s},{1:[2,9]},t(c,[2,5]),t(c,[2,6]),t(c,[2,7]),t(c,[2,8]),{14:15,20:[1,16]},{16:[1,17]},{20:[2,12]},{1:[2,4]},{15:18,17:[1,19],22:l},t([17,22],[2,13]),{6:31,7:30,8:n,9:i,10:a,11:r,13:11,19:o,24:21,26:22,27:35,28:46,29:47,31:23,33:24,34:25,35:26,36:27,37:28,38:29,39:u,41:d,43:h,44:f,49:g,51:p,52:b,55:m,57:y,67:v,68:w,70:x,74:R,88:_,89:k,90:E,91:C},{16:[1,52]},{18:53,21:[1,54]},{16:[2,15]},{25:[1,55]},{16:[1,56],25:[2,17]},t(S,[2,25],{32:[1,57]}),t(S,[2,27]),t(S,[2,28]),t(S,[2,29]),t(S,[2,30]),t(S,[2,31]),t(S,[2,32]),t(S,[2,33]),t(S,[2,34]),{40:[1,58]},{42:[1,59]},t(S,[2,37]),t(S,[2,45],{53:60,58:63,59:64,32:[1,62],54:[1,61],60:T,61:A,62:D,63:I,64:L,65:O,66:M}),{27:72,28:46,29:47,88:_,89:k,90:E,91:C},t(S,[2,47]),t(S,[2,48]),{28:73,88:_,89:k,90:E},{27:74,28:46,29:47,88:_,89:k,90:E,91:C},{27:75,28:46,29:47,88:_,89:k,90:E,91:C},{27:76,28:46,29:47,88:_,89:k,90:E,91:C},{54:[1,77]},{27:78,28:46,29:47,88:_,89:k,90:E,91:C},{54:N,56:79},t(B,[2,20],{28:46,29:47,27:81,30:[1,82],88:_,89:k,90:E,91:C}),t(B,[2,21],{30:[1,83]}),t(P,[2,94]),t(P,[2,95]),t(P,[2,96]),t([16,25,30,32,45,46,54,60,61,62,63,64,65,66,71,73],[2,97]),t(F,[2,10]),{15:84,22:l},{22:[2,14]},{1:[2,16]},{6:31,7:30,8:n,9:i,10:a,11:r,13:11,19:o,24:85,25:[2,18],26:22,27:35,28:46,29:47,31:23,33:24,34:25,35:26,36:27,37:28,38:29,39:u,41:d,43:h,44:f,49:g,51:p,52:b,55:m,57:y,67:v,68:w,70:x,74:R,88:_,89:k,90:E,91:C},t(S,[2,26]),t(S,[2,35]),t(S,[2,36]),{27:86,28:46,29:47,54:[1,87],88:_,89:k,90:E,91:C},{53:88,58:63,59:64,60:T,61:A,62:D,63:I,64:L,65:O,66:M},t(S,[2,46]),{59:89,65:O,66:M},t(j,[2,58],{58:90,60:T,61:A,62:D,63:I,64:L}),t($,[2,59]),t($,[2,60]),t($,[2,61]),t($,[2,62]),t($,[2,63]),t(z,[2,64]),t(z,[2,65]),t(S,[2,38],{45:[1,91],46:[1,92]}),{50:[1,93]},{54:[1,94]},{54:[1,95]},{71:[1,96],73:[1,97]},{28:98,88:_,89:k,90:E},{54:N,56:99},t(S,[2,54]),t(S,[2,98]),t(B,[2,22]),t(B,[2,23]),t(B,[2,24]),{16:[1,100]},{25:[2,19]},t(H,[2,49]),{27:101,28:46,29:47,88:_,89:k,90:E,91:C},{27:102,28:46,29:47,54:[1,103],88:_,89:k,90:E,91:C},t(j,[2,57],{58:104,60:T,61:A,62:D,63:I,64:L}),t(j,[2,56]),{28:105,88:_,89:k,90:E},{47:106,51:U},{27:108,28:46,29:47,88:_,89:k,90:E,91:C},t(S,[2,66],{54:[1,109]}),t(S,[2,68],{54:[1,111],69:[1,110]}),t(S,[2,72],{54:[1,112],72:[1,113]}),t(S,[2,76],{54:[1,115],69:[1,114]}),t(S,[2,80]),t(S,[2,53]),t(F,[2,11]),t(H,[2,51]),t(H,[2,50]),{27:116,28:46,29:47,88:_,89:k,90:E,91:C},t(j,[2,55]),t(S,[2,39],{46:[1,117]}),{48:[1,118]},{47:119,48:[2,43],51:U},t(S,[2,42]),t(S,[2,67]),t(S,[2,69]),t(S,[2,70],{69:[1,120]}),t(S,[2,73]),t(S,[2,74],{54:[1,121]}),t(S,[2,77]),t(S,[2,78],{69:[1,122]}),t(H,[2,52]),{47:123,51:U},t(S,[2,40]),{48:[2,44]},t(S,[2,71]),t(S,[2,75]),t(S,[2,79]),{48:[1,124]},t(S,[2,41])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],6:[2,9],13:[2,12],14:[2,4],20:[2,15],54:[2,14],55:[2,16],85:[2,19],119:[2,44]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},q={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),19;case 1:return 8;case 2:return 9;case 3:return 10;case 4:return 11;case 5:return this.begin("type_directive"),20;case 6:return this.popState(),this.begin("arg_directive"),17;case 7:return this.popState(),this.popState(),22;case 8:return 21;case 9:case 10:case 19:case 27:break;case 11:return this.begin("acc_title"),39;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),41;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:case 39:case 42:case 45:case 48:case 51:case 54:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:return 16;case 20:case 21:return 23;case 22:return this.begin("struct"),46;case 23:return"EDGE_STATE";case 24:return"EOF_IN_STRUCT";case 25:return"OPEN_IN_STRUCT";case 26:return this.popState(),48;case 28:return"MEMBER";case 29:return 44;case 30:return 74;case 31:return 67;case 32:return 68;case 33:return 70;case 34:return 55;case 35:return 57;case 36:return 49;case 37:return 50;case 38:this.begin("generic");break;case 40:return"GENERICTYPE";case 41:this.begin("string");break;case 43:return"STR";case 44:this.begin("bqstring");break;case 46:return"BQUOTE_STR";case 47:this.begin("href");break;case 49:return 73;case 50:this.begin("callback_name");break;case 52:this.popState(),this.begin("callback_args");break;case 53:return 71;case 55:return 72;case 56:case 57:case 58:case 59:return 69;case 60:case 61:return 61;case 62:case 63:return 63;case 64:return 62;case 65:return 60;case 66:return 64;case 67:return 65;case 68:return 66;case 69:return 32;case 70:return 45;case 71:return 86;case 72:return"DOT";case 73:return"PLUS";case 74:return 83;case 75:case 76:return"EQUALS";case 77:return 90;case 78:return"PUNCTUATION";case 79:return 89;case 80:return 88;case 81:return 85;case 82:return 25}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\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)/,/^(?:[{])/,/^(?:\[\*\])/,/^(?:$)/,/^(?:[{])/,/^(?:[}])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:class\b)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:[~])/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[`])/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:_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)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},callback_args:{rules:[54,55],inclusive:!1},callback_name:{rules:[51,52,53],inclusive:!1},href:{rules:[48,49],inclusive:!1},struct:{rules:[23,24,25,26,27,28],inclusive:!1},generic:{rules:[39,40],inclusive:!1},bqstring:{rules:[45,46],inclusive:!1},string:{rules:[42,43],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,23,29,30,31,32,33,34,35,36,37,38,41,44,47,50,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82],inclusive:!0}}};function W(){this.yy={}}return V.lexer=q,W.prototype=V,V.Parser=W,new W}();bx.parser=bx;const mx=bx,yx=(t,e)=>{var n;return"dagre-wrapper"!==(null==(n=null==e?void 0:e.class)?void 0:n.defaultRenderer)&&null!==t.match(/^\s*classDiagram/)},vx=(t,e)=>{var n;return null!==t.match(/^\s*classDiagram/)&&"dagre-wrapper"===(null==(n=null==e?void 0:e.class)?void 0:n.defaultRenderer)||null!==t.match(/^\s*classDiagram-v2/)},wx="classid-";let xx=[],Rx={},_x=[],kx=0,Ex=[];const Cx=t=>Qd.sanitizeText(t,Ry()),Sx=function(t,e,n){dU.parseDirective(this,t,e,n)},Tx=function(t){let e="",n=t;if(t.indexOf("~")>0){let i=t.split("~");n=i[0],e=Qd.sanitizeText(i[1],Ry())}return{className:n,type:e}},Ax=function(t){let e=Tx(t);void 0===Rx[e.className]&&(Rx[e.className]={id:e.className,type:e.type,cssClasses:[],methods:[],members:[],annotations:[],domId:wx+e.className+"-"+kx},kx++)},Dx=function(t){const e=Object.keys(Rx);for(const n of e)if(Rx[n].id===t)return Rx[n].domId},Ix=function(){xx=[],Rx={},_x=[],Ex=[],Ex.push(Xx),Qy()},Lx=function(t){return Rx[t]},Ox=function(){return Rx},Mx=function(){return xx},Nx=function(){return _x},Bx=function(t){d.debug("Adding relation: "+JSON.stringify(t)),Ax(t.id1),Ax(t.id2),t.id1=Tx(t.id1).className,t.id2=Tx(t.id2).className,t.relationTitle1=Qd.sanitizeText(t.relationTitle1.trim(),Ry()),t.relationTitle2=Qd.sanitizeText(t.relationTitle2.trim(),Ry()),xx.push(t)},Px=function(t,e){const n=Tx(t).className;Rx[n].annotations.push(e)},Fx=function(t,e){const n=Tx(t).className,i=Rx[n];if("string"==typeof e){const t=e.trim();t.startsWith("<<")&&t.endsWith(">>")?i.annotations.push(Cx(t.substring(2,t.length-2))):t.indexOf(")")>0?i.methods.push(Cx(t)):t&&i.members.push(Cx(t))}},jx=function(t,e){Array.isArray(e)&&(e.reverse(),e.forEach((e=>Fx(t,e))))},$x=function(t,e){const n={id:`note${_x.length}`,class:e,text:t};_x.push(n)},zx=function(t){return":"===t.substring(0,1)?Qd.sanitizeText(t.substr(1).trim(),Ry()):Cx(t.trim())},Hx=function(t,e){t.split(",").forEach((function(t){let n=t;t[0].match(/\d/)&&(n=wx+n),void 0!==Rx[n]&&Rx[n].cssClasses.push(e)}))},Ux=function(t,e){const n=Ry();t.split(",").forEach((function(t){void 0!==e&&(Rx[t].tooltip=Qd.sanitizeText(e,n))}))},Vx=function(t){return Rx[t].tooltip},qx=function(t,e,n){const i=Ry();t.split(",").forEach((function(t){let a=t;t[0].match(/\d/)&&(a=wx+a),void 0!==Rx[a]&&(Rx[a].link=vm.formatUrl(e,i),"sandbox"===i.securityLevel?Rx[a].linkTarget="_top":Rx[a].linkTarget="string"==typeof n?Cx(n):"_blank")})),Hx(t,"clickable")},Wx=function(t,e,n){t.split(",").forEach((function(t){Yx(t,e,n),Rx[t].haveCallback=!0})),Hx(t,"clickable")},Yx=function(t,e,n){const i=Ry();let a=t,r=Dx(a);if("loose"===i.securityLevel&&void 0!==e&&void 0!==Rx[a]){let t=[];if("string"==typeof n){t=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let e=0;e<t.length;e++){let n=t[e].trim();'"'===n.charAt(0)&&'"'===n.charAt(n.length-1)&&(n=n.substr(1,n.length-2)),t[e]=n}}0===t.length&&t.push(r),Ex.push((function(){const n=document.querySelector(`[id="${r}"]`);null!==n&&n.addEventListener("click",(function(){vm.runFunc(e,...t)}),!1)}))}},Gx=function(t){Ex.forEach((function(e){e(t)}))},Zx={LINE:0,DOTTED_LINE:1},Kx={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3,LOLLIPOP:4},Xx=function(t){let e=un(".mermaidTooltip");null===(e._groups||e)[0][0]&&(e=un("body").append("div").attr("class","mermaidTooltip").style("opacity",0)),un(t).select("svg").selectAll("g.node").on("mouseover",(function(){const t=un(this);if(null===t.attr("title"))return;const n=this.getBoundingClientRect();e.transition().duration(200).style("opacity",".9"),e.text(t.attr("title")).style("left",window.scrollX+n.left+(n.right-n.left)/2+"px").style("top",window.scrollY+n.top-14+document.body.scrollTop+"px"),e.html(e.html().replace(/<br\/>/g,"<br/>")),t.classed("hover",!0)})).on("mouseout",(function(){e.transition().duration(500).style("opacity",0),un(this).classed("hover",!1)}))};Ex.push(Xx);let Jx="TB";const Qx={parseDirective:Sx,setAccTitle:tv,getAccTitle:ev,getAccDescription:iv,setAccDescription:nv,getConfig:()=>Ry().class,addClass:Ax,bindFunctions:Gx,clear:Ix,getClass:Lx,getClasses:Ox,getNotes:Nx,addAnnotation:Px,addNote:$x,getRelations:Mx,addRelation:Bx,getDirection:()=>Jx,setDirection:t=>{Jx=t},addMember:Fx,addMembers:jx,cleanupLabel:zx,lineType:Zx,relationType:Kx,setClickEvent:Wx,setCssClass:Hx,setLink:qx,getTooltip:Vx,setTooltip:Ux,lookUpDomId:Dx,setDiagramTitle:av,getDiagramTitle:rv};function tR(t){return null!=t&&"object"==typeof t}var eR="[object Symbol]";function nR(t){return"symbol"==typeof t||tR(t)&&Hp(t)==eR}function iR(t,e){for(var n=-1,i=null==t?0:t.length,a=Array(i);++n<i;)a[n]=e(t[n],n,t);return a}const aR=Array.isArray;var rR=1/0,oR=Ip?Ip.prototype:void 0,sR=oR?oR.toString:void 0;function cR(t){if("string"==typeof t)return t;if(aR(t))return iR(t,cR)+"";if(nR(t))return sR?sR.call(t):"";var e=t+"";return"0"==e&&1/t==-rR?"-0":e}var lR=/\s/;function uR(t){for(var e=t.length;e--&&lR.test(t.charAt(e)););return e}var dR=/^\s+/;function hR(t){return t&&t.slice(0,uR(t)+1).replace(dR,"")}var fR=NaN,gR=/^[-+]0x[0-9a-f]+$/i,pR=/^0b[01]+$/i,bR=/^0o[0-7]+$/i,mR=parseInt;function yR(t){if("number"==typeof t)return t;if(nR(t))return fR;if(Up(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Up(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=hR(t);var n=pR.test(t);return n||bR.test(t)?mR(t.slice(2),n?2:8):gR.test(t)?fR:+t}var vR=1/0,wR=17976931348623157e292;function xR(t){return t?(t=yR(t))===vR||t===-vR?(t<0?-1:1)*wR:t==t?t:0:0===t?t:0}function RR(t){var e=xR(t),n=e%1;return e==e?n?e-n:e:0}function _R(t){return t}const kR=lb(Dp,"WeakMap");var ER=Object.create;const CR=function(){function t(){}return function(e){if(!Up(e))return{};if(ER)return ER(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();function SR(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function TR(){}function AR(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n<i;)e[n]=t[n];return e}var DR=800,IR=16,LR=Date.now;function OR(t){var e=0,n=0;return function(){var i=LR(),a=IR-(i-n);if(n=i,a>0){if(++e>=DR)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function MR(t){return function(){return t}}const NR=function(){try{var t=lb(Object,"defineProperty");return t({},"",{}),t}catch{}}(),BR=OR(NR?function(t,e){return NR(t,"toString",{configurable:!0,enumerable:!1,value:MR(e),writable:!0})}:_R);function PR(t,e){for(var n=-1,i=null==t?0:t.length;++n<i&&!1!==e(t[n],n,t););return t}function FR(t,e,n,i){for(var a=t.length,r=n+(i?1:-1);i?r--:++r<a;)if(e(t[r],r,t))return r;return-1}function jR(t){return t!=t}function $R(t,e,n){for(var i=n-1,a=t.length;++i<a;)if(t[i]===e)return i;return-1}function zR(t,e,n){return e==e?$R(t,e,n):FR(t,jR,n)}function HR(t,e){return!(null==t||!t.length)&&zR(t,e,0)>-1}var UR=9007199254740991,VR=/^(?:0|[1-9]\d*)$/;function qR(t,e){var n=typeof t;return!!(e=e??UR)&&("number"==n||"symbol"!=n&&VR.test(t))&&t>-1&&t%1==0&&t<e}function WR(t,e,n){"__proto__"==e&&NR?NR(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}var YR=Object.prototype.hasOwnProperty;function GR(t,e,n){var i=t[e];(!YR.call(t,e)||!Rb(i,n)||void 0===n&&!(e in t))&&WR(t,e,n)}function ZR(t,e,n,i){var a=!n;n||(n={});for(var r=-1,o=e.length;++r<o;){var s=e[r],c=i?i(n[s],t[s],s,n,t):void 0;void 0===c&&(c=t[s]),a?WR(n,s,c):GR(n,s,c)}return n}var KR=Math.max;function XR(t,e,n){return e=KR(void 0===e?t.length-1:e,0),function(){for(var i=arguments,a=-1,r=KR(i.length-e,0),o=Array(r);++a<r;)o[a]=i[e+a];a=-1;for(var s=Array(e+1);++a<e;)s[a]=i[a];return s[e]=n(o),SR(t,this,s)}}function JR(t,e){return BR(XR(t,e,_R),t+"")}var QR=9007199254740991;function t_(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=QR}function e_(t){return null!=t&&t_(t.length)&&!Gp(t)}function n_(t,e,n){if(!Up(n))return!1;var i=typeof e;return!!("number"==i?e_(n)&&qR(e,n.length):"string"==i&&e in n)&&Rb(n[e],t)}function i_(t){return JR((function(e,n){var i=-1,a=n.length,r=a>1?n[a-1]:void 0,o=a>2?n[2]:void 0;for(r=t.length>3&&"function"==typeof r?(a--,r):void 0,o&&n_(n[0],n[1],o)&&(r=a<3?void 0:r,a=1),e=Object(e);++i<a;){var s=n[i];s&&t(e,s,i,r)}return e}))}var a_=Object.prototype;function r_(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||a_)}function o_(t,e){for(var n=-1,i=Array(t);++n<t;)i[n]=e(n);return i}var s_="[object Arguments]";function c_(t){return tR(t)&&Hp(t)==s_}var l_=Object.prototype,u_=l_.hasOwnProperty,d_=l_.propertyIsEnumerable,h_=c_(function(){return arguments}())?c_:function(t){return tR(t)&&u_.call(t,"callee")&&!d_.call(t,"callee")};const f_=h_;function g_(){return!1}var p_=e&&!e.nodeType&&e,b_=p_&&t&&!t.nodeType&&t,m_=b_&&b_.exports===p_?Dp.Buffer:void 0;const y_=(m_?m_.isBuffer:void 0)||g_;var v_="[object Arguments]",w_="[object Array]",x_="[object Boolean]",R_="[object Date]",__="[object Error]",k_="[object Function]",E_="[object Map]",C_="[object Number]",S_="[object Object]",T_="[object RegExp]",A_="[object Set]",D_="[object String]",I_="[object WeakMap]",L_="[object ArrayBuffer]",O_="[object DataView]",M_="[object Float64Array]",N_="[object Int8Array]",B_="[object Int16Array]",P_="[object Int32Array]",F_="[object Uint8Array]",j_="[object Uint8ClampedArray]",$_="[object Uint16Array]",z_="[object Uint32Array]",H_={};function U_(t){return tR(t)&&t_(t.length)&&!!H_[Hp(t)]}function V_(t){return function(e){return t(e)}}H_["[object Float32Array]"]=H_[M_]=H_[N_]=H_[B_]=H_[P_]=H_[F_]=H_[j_]=H_[$_]=H_[z_]=!0,H_[v_]=H_[w_]=H_[L_]=H_[x_]=H_[O_]=H_[R_]=H_[__]=H_[k_]=H_[E_]=H_[C_]=H_[S_]=H_[T_]=H_[A_]=H_[D_]=H_[I_]=!1;var q_=e&&!e.nodeType&&e,W_=q_&&t&&!t.nodeType&&t,Y_=W_&&W_.exports===q_&&Tp.process;const G_=function(){try{return W_&&W_.require&&W_.require("util").types||Y_&&Y_.binding&&Y_.binding("util")}catch{}}();var Z_=G_&&G_.isTypedArray;const K_=Z_?V_(Z_):U_;var X_=Object.prototype.hasOwnProperty;function J_(t,e){var n=aR(t),i=!n&&f_(t),a=!n&&!i&&y_(t),r=!n&&!i&&!a&&K_(t),o=n||i||a||r,s=o?o_(t.length,String):[],c=s.length;for(var l in t)(e||X_.call(t,l))&&(!o||!("length"==l||a&&("offset"==l||"parent"==l)||r&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||qR(l,c)))&&s.push(l);return s}function Q_(t,e){return function(n){return t(e(n))}}const tk=Q_(Object.keys,Object);var ek=Object.prototype.hasOwnProperty;function nk(t){if(!r_(t))return tk(t);var e=[];for(var n in Object(t))ek.call(t,n)&&"constructor"!=n&&e.push(n);return e}function ik(t){return e_(t)?J_(t):nk(t)}function ak(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}var rk=Object.prototype.hasOwnProperty;function ok(t){if(!Up(t))return ak(t);var e=r_(t),n=[];for(var i in t)"constructor"==i&&(e||!rk.call(t,i))||n.push(i);return n}function sk(t){return e_(t)?J_(t,!0):ok(t)}var ck=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,lk=/^\w*$/;function uk(t,e){if(aR(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!nR(t))||lk.test(t)||!ck.test(t)||null!=e&&t in Object(e)}var dk=500;function hk(t){var e=$b(t,(function(t){return n.size===dk&&n.clear(),t})),n=e.cache;return e}var fk=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,gk=/\\(\\)?/g;const pk=hk((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(fk,(function(t,n,i,a){e.push(i?a.replace(gk,"$1"):n||t)})),e}));function bk(t){return null==t?"":cR(t)}function mk(t,e){return aR(t)?t:uk(t,e)?[t]:pk(bk(t))}var yk=1/0;function vk(t){if("string"==typeof t||nR(t))return t;var e=t+"";return"0"==e&&1/t==-yk?"-0":e}function wk(t,e){for(var n=0,i=(e=mk(e,t)).length;null!=t&&n<i;)t=t[vk(e[n++])];return n&&n==i?t:void 0}function xk(t,e,n){var i=null==t?void 0:wk(t,e);return void 0===i?n:i}function Rk(t,e){for(var n=-1,i=e.length,a=t.length;++n<i;)t[a+n]=e[n];return t}var _k=Ip?Ip.isConcatSpreadable:void 0;function kk(t){return aR(t)||f_(t)||!!(_k&&t&&t[_k])}function Ek(t,e,n,i,a){var r=-1,o=t.length;for(n||(n=kk),a||(a=[]);++r<o;){var s=t[r];e>0&&n(s)?e>1?Ek(s,e-1,n,i,a):Rk(a,s):i||(a[a.length]=s)}return a}function Ck(t){return null!=t&&t.length?Ek(t,1):[]}function Sk(t){return BR(XR(t,void 0,Ck),t+"")}const Tk=Q_(Object.getPrototypeOf,Object);var Ak="[object Object]",Dk=Function.prototype,Ik=Object.prototype,Lk=Dk.toString,Ok=Ik.hasOwnProperty,Mk=Lk.call(Object);function Nk(t){if(!tR(t)||Hp(t)!=Ak)return!1;var e=Tk(t);if(null===e)return!0;var n=Ok.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&Lk.call(n)==Mk}function Bk(t,e,n,i){var a=-1,r=null==t?0:t.length;for(i&&r&&(n=t[++a]);++a<r;)n=e(n,t[a],a,t);return n}function Pk(){this.__data__=new Ab,this.size=0}function Fk(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}function jk(t){return this.__data__.get(t)}function $k(t){return this.__data__.has(t)}var zk=200;function Hk(t,e){var n=this.__data__;if(n instanceof Ab){var i=n.__data__;if(!Db||i.length<zk-1)return i.push([t,e]),this.size=++n.size,this;n=this.__data__=new Fb(i)}return n.set(t,e),this.size=n.size,this}function Uk(t){var e=this.__data__=new Ab(t);this.size=e.size}function Vk(t,e){return t&&ZR(e,ik(e),t)}function qk(t,e){return t&&ZR(e,sk(e),t)}Uk.prototype.clear=Pk,Uk.prototype.delete=Fk,Uk.prototype.get=jk,Uk.prototype.has=$k,Uk.prototype.set=Hk;var Wk=e&&!e.nodeType&&e,Yk=Wk&&t&&!t.nodeType&&t,Gk=Yk&&Yk.exports===Wk?Dp.Buffer:void 0,Zk=Gk?Gk.allocUnsafe:void 0;function Kk(t,e){if(e)return t.slice();var n=t.length,i=Zk?Zk(n):new t.constructor(n);return t.copy(i),i}function Xk(t,e){for(var n=-1,i=null==t?0:t.length,a=0,r=[];++n<i;){var o=t[n];e(o,n,t)&&(r[a++]=o)}return r}function Jk(){return[]}var Qk=Object.prototype.propertyIsEnumerable,tE=Object.getOwnPropertySymbols;const eE=tE?function(t){return null==t?[]:(t=Object(t),Xk(tE(t),(function(e){return Qk.call(t,e)})))}:Jk;function nE(t,e){return ZR(t,eE(t),e)}const iE=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)Rk(e,eE(t)),t=Tk(t);return e}:Jk;function aE(t,e){return ZR(t,iE(t),e)}function rE(t,e,n){var i=e(t);return aR(t)?i:Rk(i,n(t))}function oE(t){return rE(t,ik,eE)}function sE(t){return rE(t,sk,iE)}const cE=lb(Dp,"DataView"),lE=lb(Dp,"Promise"),uE=lb(Dp,"Set");var dE="[object Map]",hE="[object Object]",fE="[object Promise]",gE="[object Set]",pE="[object WeakMap]",bE="[object DataView]",mE=Qp(cE),yE=Qp(Db),vE=Qp(lE),wE=Qp(uE),xE=Qp(kR),RE=Hp;(cE&&RE(new cE(new ArrayBuffer(1)))!=bE||Db&&RE(new Db)!=dE||lE&&RE(lE.resolve())!=fE||uE&&RE(new uE)!=gE||kR&&RE(new kR)!=pE)&&(RE=function(t){var e=Hp(t),n=e==hE?t.constructor:void 0,i=n?Qp(n):"";if(i)switch(i){case mE:return bE;case yE:return dE;case vE:return fE;case wE:return gE;case xE:return pE}return e});const _E=RE;var kE=Object.prototype.hasOwnProperty;function EE(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&kE.call(t,"index")&&(n.index=t.index,n.input=t.input),n}const CE=Dp.Uint8Array;function SE(t){var e=new t.constructor(t.byteLength);return new CE(e).set(new CE(t)),e}function TE(t,e){var n=e?SE(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}var AE=/\w*$/;function DE(t){var e=new t.constructor(t.source,AE.exec(t));return e.lastIndex=t.lastIndex,e}var IE=Ip?Ip.prototype:void 0,LE=IE?IE.valueOf:void 0;function OE(t){return LE?Object(LE.call(t)):{}}function ME(t,e){var n=e?SE(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}var NE="[object Boolean]",BE="[object Date]",PE="[object Map]",FE="[object Number]",jE="[object RegExp]",$E="[object Set]",zE="[object String]",HE="[object Symbol]",UE="[object ArrayBuffer]",VE="[object DataView]",qE="[object Float32Array]",WE="[object Float64Array]",YE="[object Int8Array]",GE="[object Int16Array]",ZE="[object Int32Array]",KE="[object Uint8Array]",XE="[object Uint8ClampedArray]",JE="[object Uint16Array]",QE="[object Uint32Array]";function tC(t,e,n){var i=t.constructor;switch(e){case UE:return SE(t);case NE:case BE:return new i(+t);case VE:return TE(t,n);case qE:case WE:case YE:case GE:case ZE:case KE:case XE:case JE:case QE:return ME(t,n);case PE:return new i;case FE:case zE:return new i(t);case jE:return DE(t);case $E:return new i;case HE:return OE(t)}}function eC(t){return"function"!=typeof t.constructor||r_(t)?{}:CR(Tk(t))}var nC="[object Map]";function iC(t){return tR(t)&&_E(t)==nC}var aC=G_&&G_.isMap;const rC=aC?V_(aC):iC;var oC="[object Set]";function sC(t){return tR(t)&&_E(t)==oC}var cC=G_&&G_.isSet;const lC=cC?V_(cC):sC;var uC=1,dC=2,hC=4,fC="[object Arguments]",gC="[object Array]",pC="[object Boolean]",bC="[object Date]",mC="[object Error]",yC="[object Function]",vC="[object GeneratorFunction]",wC="[object Map]",xC="[object Number]",RC="[object Object]",_C="[object RegExp]",kC="[object Set]",EC="[object String]",CC="[object Symbol]",SC="[object WeakMap]",TC="[object ArrayBuffer]",AC="[object DataView]",DC="[object Float32Array]",IC="[object Float64Array]",LC="[object Int8Array]",OC="[object Int16Array]",MC="[object Int32Array]",NC="[object Uint8Array]",BC="[object Uint8ClampedArray]",PC="[object Uint16Array]",FC="[object Uint32Array]",jC={};function $C(t,e,n,i,a,r){var o,s=e&uC,c=e&dC,l=e&hC;if(n&&(o=a?n(t,i,a,r):n(t)),void 0!==o)return o;if(!Up(t))return t;var u=aR(t);if(u){if(o=EE(t),!s)return AR(t,o)}else{var d=_E(t),h=d==yC||d==vC;if(y_(t))return Kk(t,s);if(d==RC||d==fC||h&&!a){if(o=c||h?{}:eC(t),!s)return c?aE(t,qk(o,t)):nE(t,Vk(o,t))}else{if(!jC[d])return a?t:{};o=tC(t,d,s)}}r||(r=new Uk);var f=r.get(t);if(f)return f;r.set(t,o),lC(t)?t.forEach((function(i){o.add($C(i,e,n,i,t,r))})):rC(t)&&t.forEach((function(i,a){o.set(a,$C(i,e,n,a,t,r))}));var g=u?void 0:(l?c?sE:oE:c?sk:ik)(t);return PR(g||t,(function(i,a){g&&(i=t[a=i]),GR(o,a,$C(i,e,n,a,t,r))})),o}jC[fC]=jC[gC]=jC[TC]=jC[AC]=jC[pC]=jC[bC]=jC[DC]=jC[IC]=jC[LC]=jC[OC]=jC[MC]=jC[wC]=jC[xC]=jC[RC]=jC[_C]=jC[kC]=jC[EC]=jC[CC]=jC[NC]=jC[BC]=jC[PC]=jC[FC]=!0,jC[mC]=jC[yC]=jC[SC]=!1;var zC=4;function HC(t){return $C(t,zC)}var UC=1,VC=4;function qC(t){return $C(t,UC|VC)}var WC="__lodash_hash_undefined__";function YC(t){return this.__data__.set(t,WC),this}function GC(t){return this.__data__.has(t)}function ZC(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new Fb;++e<n;)this.add(t[e])}function KC(t,e){for(var n=-1,i=null==t?0:t.length;++n<i;)if(e(t[n],n,t))return!0;return!1}function XC(t,e){return t.has(e)}ZC.prototype.add=ZC.prototype.push=YC,ZC.prototype.has=GC;var JC=1,QC=2;function tS(t,e,n,i,a,r){var o=n&JC,s=t.length,c=e.length;if(s!=c&&!(o&&c>s))return!1;var l=r.get(t),u=r.get(e);if(l&&u)return l==e&&u==t;var d=-1,h=!0,f=n&QC?new ZC:void 0;for(r.set(t,e),r.set(e,t);++d<s;){var g=t[d],p=e[d];if(i)var b=o?i(p,g,d,e,t,r):i(g,p,d,t,e,r);if(void 0!==b){if(b)continue;h=!1;break}if(f){if(!KC(e,(function(t,e){if(!XC(f,e)&&(g===t||a(g,t,n,i,r)))return f.push(e)}))){h=!1;break}}else if(g!==p&&!a(g,p,n,i,r)){h=!1;break}}return r.delete(t),r.delete(e),h}function eS(t){var e=-1,n=Array(t.size);return t.forEach((function(t,i){n[++e]=[i,t]})),n}function nS(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}var iS=1,aS=2,rS="[object Boolean]",oS="[object Date]",sS="[object Error]",cS="[object Map]",lS="[object Number]",uS="[object RegExp]",dS="[object Set]",hS="[object String]",fS="[object Symbol]",gS="[object ArrayBuffer]",pS="[object DataView]",bS=Ip?Ip.prototype:void 0,mS=bS?bS.valueOf:void 0;function yS(t,e,n,i,a,r,o){switch(n){case pS:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case gS:return!(t.byteLength!=e.byteLength||!r(new CE(t),new CE(e)));case rS:case oS:case lS:return Rb(+t,+e);case sS:return t.name==e.name&&t.message==e.message;case uS:case hS:return t==e+"";case cS:var s=eS;case dS:var c=i&iS;if(s||(s=nS),t.size!=e.size&&!c)return!1;var l=o.get(t);if(l)return l==e;i|=aS,o.set(t,e);var u=tS(s(t),s(e),i,a,r,o);return o.delete(t),u;case fS:if(mS)return mS.call(t)==mS.call(e)}return!1}var vS=1,wS=Object.prototype.hasOwnProperty;function xS(t,e,n,i,a,r){var o=n&vS,s=oE(t),c=s.length;if(c!=oE(e).length&&!o)return!1;for(var l=c;l--;){var u=s[l];if(!(o?u in e:wS.call(e,u)))return!1}var d=r.get(t),h=r.get(e);if(d&&h)return d==e&&h==t;var f=!0;r.set(t,e),r.set(e,t);for(var g=o;++l<c;){var p=t[u=s[l]],b=e[u];if(i)var m=o?i(b,p,u,e,t,r):i(p,b,u,t,e,r);if(!(void 0===m?p===b||a(p,b,n,i,r):m)){f=!1;break}g||(g="constructor"==u)}if(f&&!g){var y=t.constructor,v=e.constructor;y!=v&&"constructor"in t&&"constructor"in e&&!("function"==typeof y&&y instanceof y&&"function"==typeof v&&v instanceof v)&&(f=!1)}return r.delete(t),r.delete(e),f}var RS=1,_S="[object Arguments]",kS="[object Array]",ES="[object Object]",CS=Object.prototype.hasOwnProperty;function SS(t,e,n,i,a,r){var o=aR(t),s=aR(e),c=o?kS:_E(t),l=s?kS:_E(e),u=(c=c==_S?ES:c)==ES,d=(l=l==_S?ES:l)==ES,h=c==l;if(h&&y_(t)){if(!y_(e))return!1;o=!0,u=!1}if(h&&!u)return r||(r=new Uk),o||K_(t)?tS(t,e,n,i,a,r):yS(t,e,c,n,i,a,r);if(!(n&RS)){var f=u&&CS.call(t,"__wrapped__"),g=d&&CS.call(e,"__wrapped__");if(f||g){var p=f?t.value():t,b=g?e.value():e;return r||(r=new Uk),a(p,b,n,i,r)}}return!!h&&(r||(r=new Uk),xS(t,e,n,i,a,r))}function TS(t,e,n,i,a){return t===e||(null==t||null==e||!tR(t)&&!tR(e)?t!=t&&e!=e:SS(t,e,n,i,TS,a))}var AS=1,DS=2;function IS(t,e,n,i){var a=n.length,r=a,o=!i;if(null==t)return!r;for(t=Object(t);a--;){var s=n[a];if(o&&s[2]?s[1]!==t[s[0]]:!(s[0]in t))return!1}for(;++a<r;){var c=(s=n[a])[0],l=t[c],u=s[1];if(o&&s[2]){if(void 0===l&&!(c in t))return!1}else{var d=new Uk;if(i)var h=i(l,u,c,t,e,d);if(!(void 0===h?TS(u,l,AS|DS,i,d):h))return!1}}return!0}function LS(t){return t==t&&!Up(t)}function OS(t){for(var e=ik(t),n=e.length;n--;){var i=e[n],a=t[i];e[n]=[i,a,LS(a)]}return e}function MS(t,e){return function(n){return null!=n&&n[t]===e&&(void 0!==e||t in Object(n))}}function NS(t){var e=OS(t);return 1==e.length&&e[0][2]?MS(e[0][0],e[0][1]):function(n){return n===t||IS(n,t,e)}}function BS(t,e){return null!=t&&e in Object(t)}function PS(t,e,n){for(var i=-1,a=(e=mk(e,t)).length,r=!1;++i<a;){var o=vk(e[i]);if(!(r=null!=t&&n(t,o)))break;t=t[o]}return r||++i!=a?r:!!(a=null==t?0:t.length)&&t_(a)&&qR(o,a)&&(aR(t)||f_(t))}function FS(t,e){return null!=t&&PS(t,e,BS)}var jS=1,$S=2;function zS(t,e){return uk(t)&&LS(e)?MS(vk(t),e):function(n){var i=xk(n,t);return void 0===i&&i===e?FS(n,t):TS(e,i,jS|$S)}}function HS(t){return function(e){return null==e?void 0:e[t]}}function US(t){return function(e){return wk(e,t)}}function VS(t){return uk(t)?HS(vk(t)):US(t)}function qS(t){return"function"==typeof t?t:null==t?_R:"object"==typeof t?aR(t)?zS(t[0],t[1]):NS(t):VS(t)}function WS(t){return function(e,n,i){for(var a=-1,r=Object(e),o=i(e),s=o.length;s--;){var c=o[t?s:++a];if(!1===n(r[c],c,r))break}return e}}const YS=WS();function GS(t,e){return t&&YS(t,e,ik)}function ZS(t,e){return function(n,i){if(null==n)return n;if(!e_(n))return t(n,i);for(var a=n.length,r=e?a:-1,o=Object(n);(e?r--:++r<a)&&!1!==i(o[r],r,o););return n}}const KS=ZS(GS),XS=function(){return Dp.Date.now()};var JS=Object.prototype,QS=JS.hasOwnProperty;const tT=JR((function(t,e){t=Object(t);var n=-1,i=e.length,a=i>2?e[2]:void 0;for(a&&n_(e[0],e[1],a)&&(i=1);++n<i;)for(var r=e[n],o=sk(r),s=-1,c=o.length;++s<c;){var l=o[s],u=t[l];(void 0===u||Rb(u,JS[l])&&!QS.call(t,l))&&(t[l]=r[l])}return t}));function eT(t,e,n){(void 0!==n&&!Rb(t[e],n)||void 0===n&&!(e in t))&&WR(t,e,n)}function nT(t){return tR(t)&&e_(t)}function iT(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}function aT(t){return ZR(t,sk(t))}function rT(t,e,n,i,a,r,o){var s=iT(t,n),c=iT(e,n),l=o.get(c);if(l)eT(t,n,l);else{var u=r?r(s,c,n+"",t,e,o):void 0,d=void 0===u;if(d){var h=aR(c),f=!h&&y_(c),g=!h&&!f&&K_(c);u=c,h||f||g?aR(s)?u=s:nT(s)?u=AR(s):f?(d=!1,u=Kk(c,!0)):g?(d=!1,u=ME(c,!0)):u=[]:Nk(c)||f_(c)?(u=s,f_(s)?u=aT(s):(!Up(s)||Gp(s))&&(u=eC(c))):d=!1}d&&(o.set(c,u),a(u,c,i,r,o),o.delete(c)),eT(t,n,u)}}function oT(t,e,n,i,a){t!==e&&YS(e,(function(r,o){if(a||(a=new Uk),Up(r))rT(t,e,o,n,oT,i,a);else{var s=i?i(iT(t,o),r,o+"",t,e,a):void 0;void 0===s&&(s=r),eT(t,o,s)}}),sk)}function sT(t,e,n){for(var i=-1,a=null==t?0:t.length;++i<a;)if(n(e,t[i]))return!0;return!1}function cT(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}function lT(t){return"function"==typeof t?t:_R}function uT(t,e){return(aR(t)?PR:KS)(t,lT(e))}function dT(t,e){var n=[];return KS(t,(function(t,i,a){e(t,i,a)&&n.push(t)})),n}function hT(t,e){return(aR(t)?Xk:dT)(t,qS(e))}function fT(t){return function(e,n,i){var a=Object(e);if(!e_(e)){var r=qS(n);e=ik(e),n=function(t){return r(a[t],t,a)}}var o=t(e,n,i);return o>-1?a[r?e[o]:o]:void 0}}var gT=Math.max;function pT(t,e,n){var i=null==t?0:t.length;if(!i)return-1;var a=null==n?0:RR(n);return a<0&&(a=gT(i+a,0)),FR(t,qS(e),a)}const bT=fT(pT);function mT(t,e){var n=-1,i=e_(t)?Array(t.length):[];return KS(t,(function(t,a,r){i[++n]=e(t,a,r)})),i}function yT(t,e){return(aR(t)?iR:mT)(t,qS(e))}function vT(t,e){return null==t?t:YS(t,lT(e),sk)}function wT(t,e){return t>e}var xT=Object.prototype.hasOwnProperty;function RT(t,e){return null!=t&&xT.call(t,e)}function _T(t,e){return null!=t&&PS(t,e,RT)}function kT(t,e){return iR(e,(function(e){return t[e]}))}function ET(t){return null==t?[]:kT(t,ik(t))}var CT="[object Map]",ST="[object Set]",TT=Object.prototype.hasOwnProperty;function AT(t){if(null==t)return!0;if(e_(t)&&(aR(t)||"string"==typeof t||"function"==typeof t.splice||y_(t)||K_(t)||f_(t)))return!t.length;var e=_E(t);if(e==CT||e==ST)return!t.size;if(r_(t))return!nk(t).length;for(var n in t)if(TT.call(t,n))return!1;return!0}function DT(t){return void 0===t}function IT(t,e){return t<e}function LT(t,e){var n={};return e=qS(e),GS(t,(function(t,i,a){WR(n,i,e(t,i,a))})),n}function OT(t,e,n){for(var i=-1,a=t.length;++i<a;){var r=t[i],o=e(r);if(null!=o&&(void 0===s?o==o&&!nR(o):n(o,s)))var s=o,c=r}return c}function MT(t){return t&&t.length?OT(t,_R,wT):void 0}const NT=i_((function(t,e,n){oT(t,e,n)}));function BT(t){return t&&t.length?OT(t,_R,IT):void 0}function PT(t,e){return t&&t.length?OT(t,qS(e),IT):void 0}function FT(t,e,n,i){if(!Up(t))return t;for(var a=-1,r=(e=mk(e,t)).length,o=r-1,s=t;null!=s&&++a<r;){var c=vk(e[a]),l=n;if("__proto__"===c||"constructor"===c||"prototype"===c)return t;if(a!=o){var u=s[c];void 0===(l=i?i(u,c,s):void 0)&&(l=Up(u)?u:qR(e[a+1])?[]:{})}GR(s,c,l),s=s[c]}return t}function jT(t,e,n){for(var i=-1,a=e.length,r={};++i<a;){var o=e[i],s=wk(t,o);n(s,o)&&FT(r,mk(o,t),s)}return r}function $T(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t}function zT(t,e){if(t!==e){var n=void 0!==t,i=null===t,a=t==t,r=nR(t),o=void 0!==e,s=null===e,c=e==e,l=nR(e);if(!s&&!l&&!r&&t>e||r&&o&&c&&!s&&!l||i&&o&&c||!n&&c||!a)return 1;if(!i&&!r&&!l&&t<e||l&&n&&a&&!i&&!r||s&&n&&a||!o&&a||!c)return-1}return 0}function HT(t,e,n){for(var i=-1,a=t.criteria,r=e.criteria,o=a.length,s=n.length;++i<o;){var c=zT(a[i],r[i]);if(c)return i>=s?c:c*("desc"==n[i]?-1:1)}return t.index-e.index}function UT(t,e,n){e=e.length?iR(e,(function(t){return aR(t)?function(e){return wk(e,1===t.length?t[0]:t)}:t})):[_R];var i=-1;return e=iR(e,V_(qS)),$T(mT(t,(function(t,n,a){return{criteria:iR(e,(function(e){return e(t)})),index:++i,value:t}})),(function(t,e){return HT(t,e,n)}))}function VT(t,e){return jT(t,e,(function(e,n){return FS(t,n)}))}const qT=Sk((function(t,e){return null==t?{}:VT(t,e)}));var WT=Math.ceil,YT=Math.max;function GT(t,e,n,i){for(var a=-1,r=YT(WT((e-t)/(n||1)),0),o=Array(r);r--;)o[i?r:++a]=t,t+=n;return o}function ZT(t){return function(e,n,i){return i&&"number"!=typeof i&&n_(e,n,i)&&(n=i=void 0),e=xR(e),void 0===n?(n=e,e=0):n=xR(n),GT(e,n,i=void 0===i?e<n?1:-1:xR(i),t)}}const KT=ZT();function XT(t,e,n,i,a){return a(t,(function(t,a,r){n=i?(i=!1,t):e(n,t,a,r)})),n}function JT(t,e,n){var i=aR(t)?Bk:XT,a=arguments.length<3;return i(t,qS(e),n,a,KS)}const QT=JR((function(t,e){if(null==t)return[];var n=e.length;return n>1&&n_(t,e[0],e[1])?e=[]:n>2&&n_(e[0],e[1],e[2])&&(e=[e[0]]),UT(t,Ek(e,1),[])}));var tA=1/0;const eA=uE&&1/nS(new uE([,-0]))[1]==tA?function(t){return new uE(t)}:TR;var nA=200;function iA(t,e,n){var i=-1,a=HR,r=t.length,o=!0,s=[],c=s;if(n)o=!1,a=sT;else if(r>=nA){var l=e?null:eA(t);if(l)return nS(l);o=!1,a=XC,c=new ZC}else c=e?[]:s;t:for(;++i<r;){var u=t[i],d=e?e(u):u;if(u=n||0!==u?u:0,o&&d==d){for(var h=c.length;h--;)if(c[h]===d)continue t;e&&c.push(d),s.push(u)}else a(c,d,n)||(c!==s&&c.push(d),s.push(u))}return s}const aA=JR((function(t){return iA(Ek(t,1,nT,!0))}));var rA=0;function oA(t){var e=++rA;return bk(t)+e}function sA(t,e,n){for(var i=-1,a=t.length,r=e.length,o={};++i<a;){var s=i<r?e[i]:void 0;n(o,t[i],s)}return o}function cA(t,e){return sA(t||[],e||[],GR)}var lA="\0",uA="\0",dA="\x01";class hA{constructor(t={}){this._isDirected=!_T(t,"directed")||t.directed,this._isMultigraph=!!_T(t,"multigraph")&&t.multigraph,this._isCompound=!!_T(t,"compound")&&t.compound,this._label=void 0,this._defaultNodeLabelFn=MR(void 0),this._defaultEdgeLabelFn=MR(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[uA]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(t){return this._label=t,this}graph(){return this._label}setDefaultNodeLabel(t){return Gp(t)||(t=MR(t)),this._defaultNodeLabelFn=t,this}nodeCount(){return this._nodeCount}nodes(){return ik(this._nodes)}sources(){var t=this;return hT(this.nodes(),(function(e){return AT(t._in[e])}))}sinks(){var t=this;return hT(this.nodes(),(function(e){return AT(t._out[e])}))}setNodes(t,e){var n=arguments,i=this;return uT(t,(function(t){n.length>1?i.setNode(t,e):i.setNode(t)})),this}setNode(t,e){return _T(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=e),this):(this._nodes[t]=arguments.length>1?e:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=uA,this._children[t]={},this._children[uA][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)}node(t){return this._nodes[t]}hasNode(t){return _T(this._nodes,t)}removeNode(t){var e=this;if(_T(this._nodes,t)){var n=function(t){e.removeEdge(e._edgeObjs[t])};delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],uT(this.children(t),(function(t){e.setParent(t)})),delete this._children[t]),uT(ik(this._in[t]),n),delete this._in[t],delete this._preds[t],uT(ik(this._out[t]),n),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this}setParent(t,e){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(DT(e))e=uA;else{for(var n=e+="";!DT(n);n=this.parent(n))if(n===t)throw new Error("Setting "+e+" as parent of "+t+" would create a cycle");this.setNode(e)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=e,this._children[e][t]=!0,this}_removeFromParentsChildList(t){delete this._children[this._parent[t]][t]}parent(t){if(this._isCompound){var e=this._parent[t];if(e!==uA)return e}}children(t){if(DT(t)&&(t=uA),this._isCompound){var e=this._children[t];if(e)return ik(e)}else{if(t===uA)return this.nodes();if(this.hasNode(t))return[]}}predecessors(t){var e=this._preds[t];if(e)return ik(e)}successors(t){var e=this._sucs[t];if(e)return ik(e)}neighbors(t){var e=this.predecessors(t);if(e)return aA(e,this.successors(t))}isLeaf(t){return 0===(this.isDirected()?this.successors(t):this.neighbors(t)).length}filterNodes(t){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var n=this;uT(this._nodes,(function(n,i){t(i)&&e.setNode(i,n)})),uT(this._edgeObjs,(function(t){e.hasNode(t.v)&&e.hasNode(t.w)&&e.setEdge(t,n.edge(t))}));var i={};function a(t){var r=n.parent(t);return void 0===r||e.hasNode(r)?(i[t]=r,r):r in i?i[r]:a(r)}return this._isCompound&&uT(e.nodes(),(function(t){e.setParent(t,a(t))})),e}setDefaultEdgeLabel(t){return Gp(t)||(t=MR(t)),this._defaultEdgeLabelFn=t,this}edgeCount(){return this._edgeCount}edges(){return ET(this._edgeObjs)}setPath(t,e){var n=this,i=arguments;return JT(t,(function(t,a){return i.length>1?n.setEdge(t,a,e):n.setEdge(t,a),a})),this}setEdge(){var t,e,n,i,a=!1,r=arguments[0];"object"==typeof r&&null!==r&&"v"in r?(t=r.v,e=r.w,n=r.name,2===arguments.length&&(i=arguments[1],a=!0)):(t=r,e=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),t=""+t,e=""+e,DT(n)||(n=""+n);var o=pA(this._isDirected,t,e,n);if(_T(this._edgeLabels,o))return a&&(this._edgeLabels[o]=i),this;if(!DT(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(e),this._edgeLabels[o]=a?i:this._defaultEdgeLabelFn(t,e,n);var s=bA(this._isDirected,t,e,n);return t=s.v,e=s.w,Object.freeze(s),this._edgeObjs[o]=s,fA(this._preds[e],t),fA(this._sucs[t],e),this._in[e][o]=s,this._out[t][o]=s,this._edgeCount++,this}edge(t,e,n){var i=1===arguments.length?mA(this._isDirected,arguments[0]):pA(this._isDirected,t,e,n);return this._edgeLabels[i]}hasEdge(t,e,n){var i=1===arguments.length?mA(this._isDirected,arguments[0]):pA(this._isDirected,t,e,n);return _T(this._edgeLabels,i)}removeEdge(t,e,n){var i=1===arguments.length?mA(this._isDirected,arguments[0]):pA(this._isDirected,t,e,n),a=this._edgeObjs[i];return a&&(t=a.v,e=a.w,delete this._edgeLabels[i],delete this._edgeObjs[i],gA(this._preds[e],t),gA(this._sucs[t],e),delete this._in[e][i],delete this._out[t][i],this._edgeCount--),this}inEdges(t,e){var n=this._in[t];if(n){var i=ET(n);return e?hT(i,(function(t){return t.v===e})):i}}outEdges(t,e){var n=this._out[t];if(n){var i=ET(n);return e?hT(i,(function(t){return t.w===e})):i}}nodeEdges(t,e){var n=this.inEdges(t,e);if(n)return n.concat(this.outEdges(t,e))}}function fA(t,e){t[e]?t[e]++:t[e]=1}function gA(t,e){--t[e]||delete t[e]}function pA(t,e,n,i){var a=""+e,r=""+n;if(!t&&a>r){var o=a;a=r,r=o}return a+dA+r+dA+(DT(i)?lA:i)}function bA(t,e,n,i){var a=""+e,r=""+n;if(!t&&a>r){var o=a;a=r,r=o}var s={v:a,w:r};return i&&(s.name=i),s}function mA(t,e){return pA(t,e.v,e.w,e.name)}hA.prototype._nodeCount=0,hA.prototype._edgeCount=0;class yA{constructor(){var t={};t._next=t._prev=t,this._sentinel=t}dequeue(){var t=this._sentinel,e=t._prev;if(e!==t)return vA(e),e}enqueue(t){var e=this._sentinel;t._prev&&t._next&&vA(t),t._next=e._next,e._next._prev=t,e._next=t,t._prev=e}toString(){for(var t=[],e=this._sentinel,n=e._prev;n!==e;)t.push(JSON.stringify(n,wA)),n=n._prev;return"["+t.join(", ")+"]"}}function vA(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function wA(t,e){if("_next"!==t&&"_prev"!==t)return e}var xA=MR(1);function RA(t,e){if(t.nodeCount()<=1)return[];var n=EA(t,e||xA);return Ck(yT(_A(n.graph,n.buckets,n.zeroIdx),(function(e){return t.outEdges(e.v,e.w)})))}function _A(t,e,n){for(var i,a=[],r=e[e.length-1],o=e[0];t.nodeCount();){for(;i=o.dequeue();)kA(t,e,n,i);for(;i=r.dequeue();)kA(t,e,n,i);if(t.nodeCount())for(var s=e.length-2;s>0;--s)if(i=e[s].dequeue()){a=a.concat(kA(t,e,n,i,!0));break}}return a}function kA(t,e,n,i,a){var r=a?[]:void 0;return uT(t.inEdges(i.v),(function(i){var o=t.edge(i),s=t.node(i.v);a&&r.push({v:i.v,w:i.w}),s.out-=o,CA(e,n,s)})),uT(t.outEdges(i.v),(function(i){var a=t.edge(i),r=i.w,o=t.node(r);o.in-=a,CA(e,n,o)})),t.removeNode(i.v),r}function EA(t,e){var n=new hA,i=0,a=0;uT(t.nodes(),(function(t){n.setNode(t,{v:t,in:0,out:0})})),uT(t.edges(),(function(t){var r=n.edge(t.v,t.w)||0,o=e(t),s=r+o;n.setEdge(t.v,t.w,s),a=Math.max(a,n.node(t.v).out+=o),i=Math.max(i,n.node(t.w).in+=o)}));var r=KT(a+i+3).map((function(){return new yA})),o=i+1;return uT(n.nodes(),(function(t){CA(r,o,n.node(t))})),{graph:n,buckets:r,zeroIdx:o}}function CA(t,e,n){n.out?n.in?t[n.out-n.in+e].enqueue(n):t[t.length-1].enqueue(n):t[0].enqueue(n)}function SA(t){function e(t){return function(e){return t.edge(e).weight}}uT("greedy"===t.graph().acyclicer?RA(t,e(t)):TA(t),(function(e){var n=t.edge(e);t.removeEdge(e),n.forwardName=e.name,n.reversed=!0,t.setEdge(e.w,e.v,n,oA("rev"))}))}function TA(t){var e=[],n={},i={};function a(r){_T(i,r)||(i[r]=!0,n[r]=!0,uT(t.outEdges(r),(function(t){_T(n,t.w)?e.push(t):a(t.w)})),delete n[r])}return uT(t.nodes(),a),e}function AA(t){uT(t.edges(),(function(e){var n=t.edge(e);if(n.reversed){t.removeEdge(e);var i=n.forwardName;delete n.reversed,delete n.forwardName,t.setEdge(e.w,e.v,n,i)}}))}function DA(t,e,n,i){var a;do{a=oA(i)}while(t.hasNode(a));return n.dummy=e,t.setNode(a,n),a}function IA(t){var e=(new hA).setGraph(t.graph());return uT(t.nodes(),(function(n){e.setNode(n,t.node(n))})),uT(t.edges(),(function(n){var i=e.edge(n.v,n.w)||{weight:0,minlen:1},a=t.edge(n);e.setEdge(n.v,n.w,{weight:i.weight+a.weight,minlen:Math.max(i.minlen,a.minlen)})})),e}function LA(t){var e=new hA({multigraph:t.isMultigraph()}).setGraph(t.graph());return uT(t.nodes(),(function(n){t.children(n).length||e.setNode(n,t.node(n))})),uT(t.edges(),(function(n){e.setEdge(n,t.edge(n))})),e}function OA(t,e){var n,i,a=t.x,r=t.y,o=e.x-a,s=e.y-r,c=t.width/2,l=t.height/2;if(!o&&!s)throw new Error("Not possible to find intersection inside of the rectangle");return Math.abs(s)*c>Math.abs(o)*l?(s<0&&(l=-l),n=l*o/s,i=l):(o<0&&(c=-c),n=c,i=c*s/o),{x:a+n,y:r+i}}function MA(t){var e=yT(KT(FA(t)+1),(function(){return[]}));return uT(t.nodes(),(function(n){var i=t.node(n),a=i.rank;DT(a)||(e[a][i.order]=n)})),e}function NA(t){var e=BT(yT(t.nodes(),(function(e){return t.node(e).rank})));uT(t.nodes(),(function(n){var i=t.node(n);_T(i,"rank")&&(i.rank-=e)}))}function BA(t){var e=BT(yT(t.nodes(),(function(e){return t.node(e).rank}))),n=[];uT(t.nodes(),(function(i){var a=t.node(i).rank-e;n[a]||(n[a]=[]),n[a].push(i)}));var i=0,a=t.graph().nodeRankFactor;uT(n,(function(e,n){DT(e)&&n%a!=0?--i:i&&uT(e,(function(e){t.node(e).rank+=i}))}))}function PA(t,e,n,i){var a={width:0,height:0};return arguments.length>=4&&(a.rank=n,a.order=i),DA(t,"border",a,e)}function FA(t){return MT(yT(t.nodes(),(function(e){var n=t.node(e).rank;if(!DT(n))return n})))}function jA(t,e){var n={lhs:[],rhs:[]};return uT(t,(function(t){e(t)?n.lhs.push(t):n.rhs.push(t)})),n}function $A(t,e){var n=XS();try{return e()}finally{console.log(t+" time: "+(XS()-n)+"ms")}}function zA(t,e){return e()}function HA(t){function e(n){var i=t.children(n),a=t.node(n);if(i.length&&uT(i,e),_T(a,"minRank")){a.borderLeft=[],a.borderRight=[];for(var r=a.minRank,o=a.maxRank+1;r<o;++r)UA(t,"borderLeft","_bl",n,a,r),UA(t,"borderRight","_br",n,a,r)}}uT(t.children(),e)}function UA(t,e,n,i,a,r){var o={width:0,height:0,rank:r,borderType:e},s=a[e][r-1],c=DA(t,"border",o,n);a[e][r]=c,t.setParent(c,i),s&&t.setEdge(s,c,{weight:1})}function VA(t){var e=t.graph().rankdir.toLowerCase();("lr"===e||"rl"===e)&&WA(t)}function qA(t){var e=t.graph().rankdir.toLowerCase();("bt"===e||"rl"===e)&&GA(t),("lr"===e||"rl"===e)&&(KA(t),WA(t))}function WA(t){uT(t.nodes(),(function(e){YA(t.node(e))})),uT(t.edges(),(function(e){YA(t.edge(e))}))}function YA(t){var e=t.width;t.width=t.height,t.height=e}function GA(t){uT(t.nodes(),(function(e){ZA(t.node(e))})),uT(t.edges(),(function(e){var n=t.edge(e);uT(n.points,ZA),_T(n,"y")&&ZA(n)}))}function ZA(t){t.y=-t.y}function KA(t){uT(t.nodes(),(function(e){XA(t.node(e))})),uT(t.edges(),(function(e){var n=t.edge(e);uT(n.points,XA),_T(n,"x")&&XA(n)}))}function XA(t){var e=t.x;t.x=t.y,t.y=e}function JA(t){t.graph().dummyChains=[],uT(t.edges(),(function(e){QA(t,e)}))}function QA(t,e){var n=e.v,i=t.node(n).rank,a=e.w,r=t.node(a).rank,o=e.name,s=t.edge(e),c=s.labelRank;if(r!==i+1){var l,u,d;for(t.removeEdge(e),d=0,++i;i<r;++d,++i)s.points=[],l=DA(t,"edge",u={width:0,height:0,edgeLabel:s,edgeObj:e,rank:i},"_d"),i===c&&(u.width=s.width,u.height=s.height,u.dummy="edge-label",u.labelpos=s.labelpos),t.setEdge(n,l,{weight:s.weight},o),0===d&&t.graph().dummyChains.push(l),n=l;t.setEdge(n,a,{weight:s.weight},o)}}function tD(t){uT(t.graph().dummyChains,(function(e){var n,i=t.node(e),a=i.edgeLabel;for(t.setEdge(i.edgeObj,a);i.dummy;)n=t.successors(e)[0],t.removeNode(e),a.points.push({x:i.x,y:i.y}),"edge-label"===i.dummy&&(a.x=i.x,a.y=i.y,a.width=i.width,a.height=i.height),e=n,i=t.node(e)}))}function eD(t){var e={};function n(i){var a=t.node(i);if(_T(e,i))return a.rank;e[i]=!0;var r=BT(yT(t.outEdges(i),(function(e){return n(e.w)-t.edge(e).minlen})));return(r===Number.POSITIVE_INFINITY||null==r)&&(r=0),a.rank=r}uT(t.sources(),n)}function nD(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}function iD(t){var e,n,i=new hA({directed:!1}),a=t.nodes()[0],r=t.nodeCount();for(i.setNode(a,{});aD(i,t)<r;)e=rD(i,t),n=i.hasNode(e.v)?nD(t,e):-nD(t,e),oD(i,t,n);return i}function aD(t,e){function n(i){uT(e.nodeEdges(i),(function(a){var r=a.v,o=i===r?a.w:r;!t.hasNode(o)&&!nD(e,a)&&(t.setNode(o,{}),t.setEdge(i,o,{}),n(o))}))}return uT(t.nodes(),n),t.nodeCount()}function rD(t,e){return PT(e.edges(),(function(n){if(t.hasNode(n.v)!==t.hasNode(n.w))return nD(e,n)}))}function oD(t,e,n){uT(t.nodes(),(function(t){e.node(t).rank+=n}))}function sD(){}function cD(t,e,n){aR(e)||(e=[e]);var i=(t.isDirected()?t.successors:t.neighbors).bind(t),a=[],r={};return uT(e,(function(e){if(!t.hasNode(e))throw new Error("Graph does not have node: "+e);lD(t,e,"post"===n,r,i,a)})),a}function lD(t,e,n,i,a,r){_T(i,e)||(i[e]=!0,n||r.push(e),uT(a(e),(function(e){lD(t,e,n,i,a,r)})),n&&r.push(e))}function uD(t,e){return cD(t,e,"post")}function dD(t,e){return cD(t,e,"pre")}function hD(t){eD(t=IA(t));var e,n=iD(t);for(bD(n),fD(n,t);e=yD(n);)wD(n,t,e,vD(n,t,e))}function fD(t,e){var n=uD(t,t.nodes());uT(n=n.slice(0,n.length-1),(function(n){gD(t,e,n)}))}function gD(t,e,n){var i=t.node(n).parent;t.edge(n,i).cutvalue=pD(t,e,n)}function pD(t,e,n){var i=t.node(n).parent,a=!0,r=e.edge(n,i),o=0;return r||(a=!1,r=e.edge(i,n)),o=r.weight,uT(e.nodeEdges(n),(function(r){var s=r.v===n,c=s?r.w:r.v;if(c!==i){var l=s===a,u=e.edge(r).weight;if(o+=l?u:-u,RD(t,n,c)){var d=t.edge(n,c).cutvalue;o+=l?-d:d}}})),o}function bD(t,e){arguments.length<2&&(e=t.nodes()[0]),mD(t,{},1,e)}function mD(t,e,n,i,a){var r=n,o=t.node(i);return e[i]=!0,uT(t.neighbors(i),(function(a){_T(e,a)||(n=mD(t,e,n,a,i))})),o.low=r,o.lim=n++,a?o.parent=a:delete o.parent,n}function yD(t){return bT(t.edges(),(function(e){return t.edge(e).cutvalue<0}))}function vD(t,e,n){var i=n.v,a=n.w;e.hasEdge(i,a)||(i=n.w,a=n.v);var r=t.node(i),o=t.node(a),s=r,c=!1;return r.lim>o.lim&&(s=o,c=!0),PT(hT(e.edges(),(function(e){return c===_D(t,t.node(e.v),s)&&c!==_D(t,t.node(e.w),s)})),(function(t){return nD(e,t)}))}function wD(t,e,n,i){var a=n.v,r=n.w;t.removeEdge(a,r),t.setEdge(i.v,i.w,{}),bD(t),fD(t,e),xD(t,e)}function xD(t,e){var n=bT(t.nodes(),(function(t){return!e.node(t).parent})),i=dD(t,n);uT(i=i.slice(1),(function(n){var i=t.node(n).parent,a=e.edge(n,i),r=!1;a||(a=e.edge(i,n),r=!0),e.node(n).rank=e.node(i).rank+(r?a.minlen:-a.minlen)}))}function RD(t,e,n){return t.hasEdge(e,n)}function _D(t,e,n){return n.low<=e.lim&&e.lim<=n.lim}function kD(t){switch(t.graph().ranker){case"network-simplex":default:SD(t);break;case"tight-tree":CD(t);break;case"longest-path":ED(t)}}sD.prototype=new Error,hD.initLowLimValues=bD,hD.initCutValues=fD,hD.calcCutValue=pD,hD.leaveEdge=yD,hD.enterEdge=vD,hD.exchangeEdges=wD;var ED=eD;function CD(t){eD(t),iD(t)}function SD(t){hD(t)}function TD(t){var e=DA(t,"root",{},"_root"),n=DD(t),i=MT(ET(n))-1,a=2*i+1;t.graph().nestingRoot=e,uT(t.edges(),(function(e){t.edge(e).minlen*=a}));var r=ID(t)+1;uT(t.children(),(function(o){AD(t,e,a,r,i,n,o)})),t.graph().nodeRankFactor=a}function AD(t,e,n,i,a,r,o){var s=t.children(o);if(s.length){var c=PA(t,"_bt"),l=PA(t,"_bb"),u=t.node(o);t.setParent(c,o),u.borderTop=c,t.setParent(l,o),u.borderBottom=l,uT(s,(function(s){AD(t,e,n,i,a,r,s);var u=t.node(s),d=u.borderTop?u.borderTop:s,h=u.borderBottom?u.borderBottom:s,f=u.borderTop?i:2*i,g=d!==h?1:a-r[o]+1;t.setEdge(c,d,{weight:f,minlen:g,nestingEdge:!0}),t.setEdge(h,l,{weight:f,minlen:g,nestingEdge:!0})})),t.parent(o)||t.setEdge(e,c,{weight:0,minlen:a+r[o]})}else o!==e&&t.setEdge(e,o,{weight:0,minlen:n})}function DD(t){var e={};function n(i,a){var r=t.children(i);r&&r.length&&uT(r,(function(t){n(t,a+1)})),e[i]=a}return uT(t.children(),(function(t){n(t,1)})),e}function ID(t){return JT(t.edges(),(function(e,n){return e+t.edge(n).weight}),0)}function LD(t){var e=t.graph();t.removeNode(e.nestingRoot),delete e.nestingRoot,uT(t.edges(),(function(e){t.edge(e).nestingEdge&&t.removeEdge(e)}))}function OD(t,e,n){var i,a={};uT(n,(function(n){for(var r,o,s=t.parent(n);s;){if((r=t.parent(s))?(o=a[r],a[r]=s):(o=i,i=s),o&&o!==s)return void e.setEdge(o,s);s=r}}))}function MD(t,e,n){var i=ND(t),a=new hA({compound:!0}).setGraph({root:i}).setDefaultNodeLabel((function(e){return t.node(e)}));return uT(t.nodes(),(function(r){var o=t.node(r),s=t.parent(r);(o.rank===e||o.minRank<=e&&e<=o.maxRank)&&(a.setNode(r),a.setParent(r,s||i),uT(t[n](r),(function(e){var n=e.v===r?e.w:e.v,i=a.edge(n,r),o=DT(i)?0:i.weight;a.setEdge(n,r,{weight:t.edge(e).weight+o})})),_T(o,"minRank")&&a.setNode(r,{borderLeft:o.borderLeft[e],borderRight:o.borderRight[e]}))})),a}function ND(t){for(var e;t.hasNode(e=oA("_root")););return e}function BD(t,e){for(var n=0,i=1;i<e.length;++i)n+=PD(t,e[i-1],e[i]);return n}function PD(t,e,n){for(var i=cA(n,yT(n,(function(t,e){return e}))),a=Ck(yT(e,(function(e){return QT(yT(t.outEdges(e),(function(e){return{pos:i[e.w],weight:t.edge(e).weight}})),"pos")}))),r=1;r<n.length;)r<<=1;var o=2*r-1;r-=1;var s=yT(new Array(o),(function(){return 0})),c=0;return uT(a.forEach((function(t){var e=t.pos+r;s[e]+=t.weight;for(var n=0;e>0;)e%2&&(n+=s[e+1]),s[e=e-1>>1]+=t.weight;c+=t.weight*n}))),c}function FD(t){var e={},n=hT(t.nodes(),(function(e){return!t.children(e).length})),i=MT(yT(n,(function(e){return t.node(e).rank}))),a=yT(KT(i+1),(function(){return[]}));function r(n){if(!_T(e,n)){e[n]=!0;var i=t.node(n);a[i.rank].push(n),uT(t.successors(n),r)}}return uT(QT(n,(function(e){return t.node(e).rank})),r),a}function jD(t,e){return yT(e,(function(e){var n=t.inEdges(e);if(n.length){var i=JT(n,(function(e,n){var i=t.edge(n),a=t.node(n.v);return{sum:e.sum+i.weight*a.order,weight:e.weight+i.weight}}),{sum:0,weight:0});return{v:e,barycenter:i.sum/i.weight,weight:i.weight}}return{v:e}}))}function $D(t,e){var n={};return uT(t,(function(t,e){var i=n[t.v]={indegree:0,in:[],out:[],vs:[t.v],i:e};DT(t.barycenter)||(i.barycenter=t.barycenter,i.weight=t.weight)})),uT(e.edges(),(function(t){var e=n[t.v],i=n[t.w];!DT(e)&&!DT(i)&&(i.indegree++,e.out.push(n[t.w]))})),zD(hT(n,(function(t){return!t.indegree})))}function zD(t){var e=[];function n(t){return function(e){e.merged||(DT(e.barycenter)||DT(t.barycenter)||e.barycenter>=t.barycenter)&&HD(t,e)}}function i(e){return function(n){n.in.push(e),0==--n.indegree&&t.push(n)}}for(;t.length;){var a=t.pop();e.push(a),uT(a.in.reverse(),n(a)),uT(a.out,i(a))}return yT(hT(e,(function(t){return!t.merged})),(function(t){return qT(t,["vs","i","barycenter","weight"])}))}function HD(t,e){var n=0,i=0;t.weight&&(n+=t.barycenter*t.weight,i+=t.weight),e.weight&&(n+=e.barycenter*e.weight,i+=e.weight),t.vs=e.vs.concat(t.vs),t.barycenter=n/i,t.weight=i,t.i=Math.min(e.i,t.i),e.merged=!0}function UD(t,e){var n=jA(t,(function(t){return _T(t,"barycenter")})),i=n.lhs,a=QT(n.rhs,(function(t){return-t.i})),r=[],o=0,s=0,c=0;i.sort(qD(!!e)),c=VD(r,a,c),uT(i,(function(t){c+=t.vs.length,r.push(t.vs),o+=t.barycenter*t.weight,s+=t.weight,c=VD(r,a,c)}));var l={vs:Ck(r)};return s&&(l.barycenter=o/s,l.weight=s),l}function VD(t,e,n){for(var i;e.length&&(i=cT(e)).i<=n;)e.pop(),t.push(i.vs),n++;return n}function qD(t){return function(e,n){return e.barycenter<n.barycenter?-1:e.barycenter>n.barycenter?1:t?n.i-e.i:e.i-n.i}}function WD(t,e,n,i){var a=t.children(e),r=t.node(e),o=r?r.borderLeft:void 0,s=r?r.borderRight:void 0,c={};o&&(a=hT(a,(function(t){return t!==o&&t!==s})));var l=jD(t,a);uT(l,(function(e){if(t.children(e.v).length){var a=WD(t,e.v,n,i);c[e.v]=a,_T(a,"barycenter")&&GD(e,a)}}));var u=$D(l,n);YD(u,c);var d=UD(u,i);if(o&&(d.vs=Ck([o,d.vs,s]),t.predecessors(o).length)){var h=t.node(t.predecessors(o)[0]),f=t.node(t.predecessors(s)[0]);_T(d,"barycenter")||(d.barycenter=0,d.weight=0),d.barycenter=(d.barycenter*d.weight+h.order+f.order)/(d.weight+2),d.weight+=2}return d}function YD(t,e){uT(t,(function(t){t.vs=Ck(t.vs.map((function(t){return e[t]?e[t].vs:t})))}))}function GD(t,e){DT(t.barycenter)?(t.barycenter=e.barycenter,t.weight=e.weight):(t.barycenter=(t.barycenter*t.weight+e.barycenter*e.weight)/(t.weight+e.weight),t.weight+=e.weight)}function ZD(t){var e=FA(t),n=KD(t,KT(1,e+1),"inEdges"),i=KD(t,KT(e-1,-1,-1),"outEdges"),a=FD(t);JD(t,a);for(var r,o=Number.POSITIVE_INFINITY,s=0,c=0;c<4;++s,++c){XD(s%2?n:i,s%4>=2);var l=BD(t,a=MA(t));l<o&&(c=0,r=qC(a),o=l)}JD(t,r)}function KD(t,e,n){return yT(e,(function(e){return MD(t,e,n)}))}function XD(t,e){var n=new hA;uT(t,(function(t){var i=t.graph().root,a=WD(t,i,n,e);uT(a.vs,(function(e,n){t.node(e).order=n})),OD(t,n,a.vs)}))}function JD(t,e){uT(e,(function(e){uT(e,(function(e,n){t.node(e).order=n}))}))}function QD(t){var e=eI(t);uT(t.graph().dummyChains,(function(n){for(var i=t.node(n),a=i.edgeObj,r=tI(t,e,a.v,a.w),o=r.path,s=r.lca,c=0,l=o[c],u=!0;n!==a.w;){if(i=t.node(n),u){for(;(l=o[c])!==s&&t.node(l).maxRank<i.rank;)c++;l===s&&(u=!1)}if(!u){for(;c<o.length-1&&t.node(l=o[c+1]).minRank<=i.rank;)c++;l=o[c]}t.setParent(n,l),n=t.successors(n)[0]}}))}function tI(t,e,n,i){var a,r,o=[],s=[],c=Math.min(e[n].low,e[i].low),l=Math.max(e[n].lim,e[i].lim);a=n;do{a=t.parent(a),o.push(a)}while(a&&(e[a].low>c||l>e[a].lim));for(r=a,a=i;(a=t.parent(a))!==r;)s.push(a);return{path:o.concat(s.reverse()),lca:r}}function eI(t){var e={},n=0;function i(a){var r=n;uT(t.children(a),i),e[a]={low:r,lim:n++}}return uT(t.children(),i),e}function nI(t,e){var n={};function i(e,i){var a=0,r=0,o=e.length,s=cT(i);return uT(i,(function(e,c){var l=aI(t,e),u=l?t.node(l).order:o;(l||e===s)&&(uT(i.slice(r,c+1),(function(e){uT(t.predecessors(e),(function(i){var r=t.node(i),o=r.order;(o<a||u<o)&&(!r.dummy||!t.node(e).dummy)&&rI(n,i,e)}))})),r=c+1,a=u)})),i}return JT(e,i),n}function iI(t,e){var n={};function i(e,i,a,r,o){var s;uT(KT(i,a),(function(i){s=e[i],t.node(s).dummy&&uT(t.predecessors(s),(function(e){var i=t.node(e);i.dummy&&(i.order<r||i.order>o)&&rI(n,e,s)}))}))}function a(e,n){var a,r=-1,o=0;return uT(n,(function(s,c){if("border"===t.node(s).dummy){var l=t.predecessors(s);l.length&&(a=t.node(l[0]).order,i(n,o,c,r,a),o=c,r=a)}i(n,o,n.length,a,e.length)})),n}return JT(e,a),n}function aI(t,e){if(t.node(e).dummy)return bT(t.predecessors(e),(function(e){return t.node(e).dummy}))}function rI(t,e,n){if(e>n){var i=e;e=n,n=i}var a=t[e];a||(t[e]=a={}),a[n]=!0}function oI(t,e,n){if(e>n){var i=e;e=n,n=i}return _T(t[e],n)}function sI(t,e,n,i){var a={},r={},o={};return uT(e,(function(t){uT(t,(function(t,e){a[t]=t,r[t]=t,o[t]=e}))})),uT(e,(function(t){var e=-1;uT(t,(function(t){var s=i(t);if(s.length)for(var c=((s=QT(s,(function(t){return o[t]}))).length-1)/2,l=Math.floor(c),u=Math.ceil(c);l<=u;++l){var d=s[l];r[t]===t&&e<o[d]&&!oI(n,t,d)&&(r[d]=t,r[t]=a[t]=a[d],e=o[d])}}))})),{root:a,align:r}}function cI(t,e,n,i,a){var r={},o=lI(t,e,n,a),s=a?"borderLeft":"borderRight";function c(t,e){for(var n=o.nodes(),i=n.pop(),a={};i;)a[i]?t(i):(a[i]=!0,n.push(i),n=n.concat(e(i))),i=n.pop()}function l(t){r[t]=o.inEdges(t).reduce((function(t,e){return Math.max(t,r[e.v]+o.edge(e))}),0)}function u(e){var n=o.outEdges(e).reduce((function(t,e){return Math.min(t,r[e.w]-o.edge(e))}),Number.POSITIVE_INFINITY),i=t.node(e);n!==Number.POSITIVE_INFINITY&&i.borderType!==s&&(r[e]=Math.max(r[e],n))}return c(l,o.predecessors.bind(o)),c(u,o.successors.bind(o)),uT(i,(function(t){r[t]=r[n[t]]})),r}function lI(t,e,n,i){var a=new hA,r=t.graph(),o=gI(r.nodesep,r.edgesep,i);return uT(e,(function(e){var i;uT(e,(function(e){var r=n[e];if(a.setNode(r),i){var s=n[i],c=a.edge(s,r);a.setEdge(s,r,Math.max(o(t,e,i),c||0))}i=e}))})),a}function uI(t,e){return PT(ET(e),(function(e){var n=Number.NEGATIVE_INFINITY,i=Number.POSITIVE_INFINITY;return vT(e,(function(e,a){var r=pI(t,a)/2;n=Math.max(e+r,n),i=Math.min(e-r,i)})),n-i}))}function dI(t,e){var n=ET(e),i=BT(n),a=MT(n);uT(["u","d"],(function(n){uT(["l","r"],(function(r){var o,s=n+r,c=t[s];if(c!==e){var l=ET(c);(o="l"===r?i-BT(l):a-MT(l))&&(t[s]=LT(c,(function(t){return t+o})))}}))}))}function hI(t,e){return LT(t.ul,(function(n,i){if(e)return t[e.toLowerCase()][i];var a=QT(yT(t,i));return(a[1]+a[2])/2}))}function fI(t){var e,n=MA(t),i=NT(nI(t,n),iI(t,n)),a={};uT(["u","d"],(function(r){e="u"===r?n:ET(n).reverse(),uT(["l","r"],(function(n){"r"===n&&(e=yT(e,(function(t){return ET(t).reverse()})));var o=("u"===r?t.predecessors:t.successors).bind(t),s=sI(t,e,i,o),c=cI(t,e,s.root,s.align,"r"===n);"r"===n&&(c=LT(c,(function(t){return-t}))),a[r+n]=c}))}));var r=uI(t,a);return dI(a,r),hI(a,t.graph().align)}function gI(t,e,n){return function(i,a,r){var o,s=i.node(a),c=i.node(r),l=0;if(l+=s.width/2,_T(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":o=-s.width/2;break;case"r":o=s.width/2}if(o&&(l+=n?o:-o),o=0,l+=(s.dummy?e:t)/2,l+=(c.dummy?e:t)/2,l+=c.width/2,_T(c,"labelpos"))switch(c.labelpos.toLowerCase()){case"l":o=c.width/2;break;case"r":o=-c.width/2}return o&&(l+=n?o:-o),o=0,l}}function pI(t,e){return t.node(e).width}function bI(t){mI(t=LA(t)),uT(fI(t),(function(e,n){t.node(n).x=e}))}function mI(t){var e=MA(t),n=t.graph().ranksep,i=0;uT(e,(function(e){var a=MT(yT(e,(function(e){return t.node(e).height})));uT(e,(function(e){t.node(e).y=i+a/2})),i+=a+n}))}function yI(t,e){var n=e&&e.debugTiming?$A:zA;n("layout",(function(){var e=n(" buildLayoutGraph",(function(){return AI(t)}));n(" runLayout",(function(){vI(e,n)})),n(" updateInputGraph",(function(){wI(t,e)}))}))}function vI(t,e){e(" makeSpaceForEdgeLabels",(function(){DI(t)})),e(" removeSelfEdges",(function(){jI(t)})),e(" acyclic",(function(){SA(t)})),e(" nestingGraph.run",(function(){TD(t)})),e(" rank",(function(){kD(LA(t))})),e(" injectEdgeLabelProxies",(function(){II(t)})),e(" removeEmptyRanks",(function(){BA(t)})),e(" nestingGraph.cleanup",(function(){LD(t)})),e(" normalizeRanks",(function(){NA(t)})),e(" assignRankMinMax",(function(){LI(t)})),e(" removeEdgeLabelProxies",(function(){OI(t)})),e(" normalize.run",(function(){JA(t)})),e(" parentDummyChains",(function(){QD(t)})),e(" addBorderSegments",(function(){HA(t)})),e(" order",(function(){ZD(t)})),e(" insertSelfEdges",(function(){$I(t)})),e(" adjustCoordinateSystem",(function(){VA(t)})),e(" position",(function(){bI(t)})),e(" positionSelfEdges",(function(){zI(t)})),e(" removeBorderNodes",(function(){FI(t)})),e(" normalize.undo",(function(){tD(t)})),e(" fixupEdgeLabelCoords",(function(){BI(t)})),e(" undoCoordinateSystem",(function(){qA(t)})),e(" translateGraph",(function(){MI(t)})),e(" assignNodeIntersects",(function(){NI(t)})),e(" reversePoints",(function(){PI(t)})),e(" acyclic.undo",(function(){AA(t)}))}function wI(t,e){uT(t.nodes(),(function(n){var i=t.node(n),a=e.node(n);i&&(i.x=a.x,i.y=a.y,e.children(n).length&&(i.width=a.width,i.height=a.height))})),uT(t.edges(),(function(n){var i=t.edge(n),a=e.edge(n);i.points=a.points,_T(a,"x")&&(i.x=a.x,i.y=a.y)})),t.graph().width=e.graph().width,t.graph().height=e.graph().height}var xI=["nodesep","edgesep","ranksep","marginx","marginy"],RI={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},_I=["acyclicer","ranker","rankdir","align"],kI=["width","height"],EI={width:0,height:0},CI=["minlen","weight","width","height","labeloffset"],SI={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},TI=["labelpos"];function AI(t){var e=new hA({multigraph:!0,compound:!0}),n=UI(t.graph());return e.setGraph(NT({},RI,HI(n,xI),qT(n,_I))),uT(t.nodes(),(function(n){var i=UI(t.node(n));e.setNode(n,tT(HI(i,kI),EI)),e.setParent(n,t.parent(n))})),uT(t.edges(),(function(n){var i=UI(t.edge(n));e.setEdge(n,NT({},SI,HI(i,CI),qT(i,TI)))})),e}function DI(t){var e=t.graph();e.ranksep/=2,uT(t.edges(),(function(n){var i=t.edge(n);i.minlen*=2,"c"!==i.labelpos.toLowerCase()&&("TB"===e.rankdir||"BT"===e.rankdir?i.width+=i.labeloffset:i.height+=i.labeloffset)}))}function II(t){uT(t.edges(),(function(e){var n=t.edge(e);if(n.width&&n.height){var i=t.node(e.v),a={rank:(t.node(e.w).rank-i.rank)/2+i.rank,e:e};DA(t,"edge-proxy",a,"_ep")}}))}function LI(t){var e=0;uT(t.nodes(),(function(n){var i=t.node(n);i.borderTop&&(i.minRank=t.node(i.borderTop).rank,i.maxRank=t.node(i.borderBottom).rank,e=MT(e,i.maxRank))})),t.graph().maxRank=e}function OI(t){uT(t.nodes(),(function(e){var n=t.node(e);"edge-proxy"===n.dummy&&(t.edge(n.e).labelRank=n.rank,t.removeNode(e))}))}function MI(t){var e=Number.POSITIVE_INFINITY,n=0,i=Number.POSITIVE_INFINITY,a=0,r=t.graph(),o=r.marginx||0,s=r.marginy||0;function c(t){var r=t.x,o=t.y,s=t.width,c=t.height;e=Math.min(e,r-s/2),n=Math.max(n,r+s/2),i=Math.min(i,o-c/2),a=Math.max(a,o+c/2)}uT(t.nodes(),(function(e){c(t.node(e))})),uT(t.edges(),(function(e){var n=t.edge(e);_T(n,"x")&&c(n)})),e-=o,i-=s,uT(t.nodes(),(function(n){var a=t.node(n);a.x-=e,a.y-=i})),uT(t.edges(),(function(n){var a=t.edge(n);uT(a.points,(function(t){t.x-=e,t.y-=i})),_T(a,"x")&&(a.x-=e),_T(a,"y")&&(a.y-=i)})),r.width=n-e+o,r.height=a-i+s}function NI(t){uT(t.edges(),(function(e){var n,i,a=t.edge(e),r=t.node(e.v),o=t.node(e.w);a.points?(n=a.points[0],i=a.points[a.points.length-1]):(a.points=[],n=o,i=r),a.points.unshift(OA(r,n)),a.points.push(OA(o,i))}))}function BI(t){uT(t.edges(),(function(e){var n=t.edge(e);if(_T(n,"x"))switch(("l"===n.labelpos||"r"===n.labelpos)&&(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}}))}function PI(t){uT(t.edges(),(function(e){var n=t.edge(e);n.reversed&&n.points.reverse()}))}function FI(t){uT(t.nodes(),(function(e){if(t.children(e).length){var n=t.node(e),i=t.node(n.borderTop),a=t.node(n.borderBottom),r=t.node(cT(n.borderLeft)),o=t.node(cT(n.borderRight));n.width=Math.abs(o.x-r.x),n.height=Math.abs(a.y-i.y),n.x=r.x+n.width/2,n.y=i.y+n.height/2}})),uT(t.nodes(),(function(e){"border"===t.node(e).dummy&&t.removeNode(e)}))}function jI(t){uT(t.edges(),(function(e){if(e.v===e.w){var n=t.node(e.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:e,label:t.edge(e)}),t.removeEdge(e)}}))}function $I(t){uT(MA(t),(function(e){var n=0;uT(e,(function(e,i){var a=t.node(e);a.order=i+n,uT(a.selfEdges,(function(e){DA(t,"selfedge",{width:e.label.width,height:e.label.height,rank:a.rank,order:i+ ++n,e:e.e,label:e.label},"_se")})),delete a.selfEdges}))}))}function zI(t){uT(t.nodes(),(function(e){var n=t.node(e);if("selfedge"===n.dummy){var i=t.node(n.e.v),a=i.x+i.width/2,r=i.y,o=n.x-a,s=i.height/2;t.setEdge(n.e,n.label),t.removeNode(e),n.label.points=[{x:a+2*o/3,y:r-s},{x:a+5*o/6,y:r-s},{x:a+o,y:r},{x:a+5*o/6,y:r+s},{x:a+2*o/3,y:r+s}],n.label.x=n.x,n.label.y=n.y}}))}function HI(t,e){return LT(qT(t,e),Number)}function UI(t){var e={};return uT(t,(function(t,n){e[n.toLowerCase()]=t})),e}let VI=0;const qI=function(t,e,n,i){d.debug("Rendering class ",e,n);const a=e.id,r={id:a,label:e.id,width:0,height:0},o=t.append("g").attr("id",i.db.lookUpDomId(a)).attr("class","classGroup");let s;s=e.link?o.append("svg:a").attr("xlink:href",e.link).attr("target",e.linkTarget).append("text").attr("y",n.textHeight+n.padding).attr("x",0):o.append("text").attr("y",n.textHeight+n.padding).attr("x",0);let c=!0;e.annotations.forEach((function(t){const e=s.append("tspan").text("\xab"+t+"\xbb");c||e.attr("dy",n.textHeight),c=!1}));let l=e.id;void 0!==e.type&&""!==e.type&&(l+="<"+e.type+">");const u=s.append("tspan").text(l).attr("class","title");c||u.attr("dy",n.textHeight);const h=s.node().getBBox().height,f=o.append("line").attr("x1",0).attr("y1",n.padding+h+n.dividerMargin/2).attr("y2",n.padding+h+n.dividerMargin/2),g=o.append("text").attr("x",n.padding).attr("y",h+n.dividerMargin+n.textHeight).attr("fill","white").attr("class","classText");c=!0,e.members.forEach((function(t){KI(g,t,c,n),c=!1}));const p=g.node().getBBox(),b=o.append("line").attr("x1",0).attr("y1",n.padding+h+n.dividerMargin+p.height).attr("y2",n.padding+h+n.dividerMargin+p.height),m=o.append("text").attr("x",n.padding).attr("y",h+2*n.dividerMargin+p.height+n.textHeight).attr("fill","white").attr("class","classText");c=!0,e.methods.forEach((function(t){KI(m,t,c,n),c=!1}));const y=o.node().getBBox();var v=" ";e.cssClasses.length>0&&(v+=e.cssClasses.join(" "));const w=o.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",y.width+2*n.padding).attr("height",y.height+n.padding+.5*n.dividerMargin).attr("class",v).node().getBBox().width;return s.node().childNodes.forEach((function(t){t.setAttribute("x",(w-t.getBBox().width)/2)})),e.tooltip&&s.insert("title").text(e.tooltip),f.attr("x2",w),b.attr("x2",w),r.width=w,r.height=y.height+n.padding+.5*n.dividerMargin,r},WI=function(t){const e=/^([#+~-])?(\w+)(~\w+~|\[])?\s+(\w+) *([$*])?$/,n=/^([#+|~-])?(\w+) *\( *(.*)\) *([$*])? *(\w*[[\]|~]*\s*\w*~?)$/;let i=t.match(e),a=t.match(n);return i&&!a?YI(i):a?GI(a):ZI(t)},YI=function(t){let e="",n="";try{let i=t[1]?t[1].trim():"",a=t[2]?t[2].trim():"",r=t[3]?Jd(t[3].trim()):"",o=t[4]?t[4].trim():"",s=t[5]?t[5].trim():"";n=i+a+r+" "+o,e=XI(s)}catch{n=t}return{displayText:n,cssStyle:e}},GI=function(t){let e="",n="";try{let i=t[1]?t[1].trim():"",a=t[2]?t[2].trim():"",r=t[3]?Jd(t[3].trim()):"",o=t[4]?t[4].trim():"";n=i+a+"("+r+")"+(t[5]?" : "+Jd(t[5]).trim():""),e=XI(o)}catch{n=t}return{displayText:n,cssStyle:e}},ZI=function(t){let e="",n="",i="",a=t.indexOf("("),r=t.indexOf(")");if(a>1&&r>a&&r<=t.length){let o="",s="",c=t.substring(0,1);c.match(/\w/)?s=t.substring(0,a).trim():(c.match(/[#+~-]/)&&(o=c),s=t.substring(1,a).trim());const l=t.substring(a+1,r);t.substring(r+1,1),n=XI(t.substring(r+1,r+2)),e=o+s+"("+Jd(l.trim())+")",r<t.length&&(i=t.substring(r+2).trim(),""!==i&&(i=" : "+Jd(i),e+=i))}else e=Jd(t);return{displayText:e,cssStyle:n}},KI=function(t,e,n,i){let a=WI(e);const r=t.append("tspan").attr("x",i.padding).text(a.displayText);""!==a.cssStyle&&r.attr("style",a.cssStyle),n||r.attr("dy",i.textHeight)},XI=function(t){switch(t){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}},JI={drawClass:qI,drawEdge:function(t,e,n,i,a){const r=function(t){switch(t){case a.db.relationType.AGGREGATION:return"aggregation";case a.db.relationType.EXTENSION:return"extension";case a.db.relationType.COMPOSITION:return"composition";case a.db.relationType.DEPENDENCY:return"dependency";case a.db.relationType.LOLLIPOP:return"lollipop"}};e.points=e.points.filter((t=>!Number.isNaN(t.y)));const o=e.points,s=$l().x((function(t){return t.x})).y((function(t){return t.y})).curve(Kl),c=t.append("path").attr("d",s(o)).attr("id","edge"+VI).attr("class","relation");let l,u,h="";i.arrowMarkerAbsolute&&(h=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,h=h.replace(/\(/g,"\\("),h=h.replace(/\)/g,"\\)")),1==n.relation.lineType&&c.attr("class","relation dashed-line"),10==n.relation.lineType&&c.attr("class","relation dotted-line"),"none"!==n.relation.type1&&c.attr("marker-start","url("+h+"#"+r(n.relation.type1)+"Start)"),"none"!==n.relation.type2&&c.attr("marker-end","url("+h+"#"+r(n.relation.type2)+"End)");const f=e.points.length;let g,p,b,m,y=vm.calcLabelPosition(e.points);if(l=y.x,u=y.y,f%2!=0&&f>1){let t=vm.calcCardinalityPosition("none"!==n.relation.type1,e.points,e.points[0]),i=vm.calcCardinalityPosition("none"!==n.relation.type2,e.points,e.points[f-1]);d.debug("cardinality_1_point "+JSON.stringify(t)),d.debug("cardinality_2_point "+JSON.stringify(i)),g=t.x,p=t.y,b=i.x,m=i.y}if(void 0!==n.title){const e=t.append("g").attr("class","classLabel"),a=e.append("text").attr("class","label").attr("x",l).attr("y",u).attr("fill","red").attr("text-anchor","middle").text(n.title);window.label=a;const r=a.node().getBBox();e.insert("rect",":first-child").attr("class","box").attr("x",r.x-i.padding/2).attr("y",r.y-i.padding/2).attr("width",r.width+i.padding).attr("height",r.height+i.padding)}d.info("Rendering relation "+JSON.stringify(n)),void 0!==n.relationTitle1&&"none"!==n.relationTitle1&&t.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",g).attr("y",p).attr("fill","black").attr("font-size","6").text(n.relationTitle1),void 0!==n.relationTitle2&&"none"!==n.relationTitle2&&t.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",b).attr("y",m).attr("fill","black").attr("font-size","6").text(n.relationTitle2),VI++},drawNote:function(t,e,n,i){d.debug("Rendering note ",e,n);const a=e.id,r={id:a,text:e.text,width:0,height:0},o=t.append("g").attr("id",a).attr("class","classGroup");let s=o.append("text").attr("y",n.textHeight+n.padding).attr("x",0);const c=JSON.parse(`"${e.text}"`).split("\n");c.forEach((function(t){d.debug(`Adding line: ${t}`),s.append("tspan").text(t).attr("class","title").attr("dy",n.textHeight)}));const l=o.node().getBBox(),u=o.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",l.width+2*n.padding).attr("height",l.height+c.length*n.textHeight+n.padding+.5*n.dividerMargin).node().getBBox().width;return s.node().childNodes.forEach((function(t){t.setAttribute("x",(u-t.getBBox().width)/2)})),r.width=u,r.height=l.height+c.length*n.textHeight+n.padding+.5*n.dividerMargin,r},parseMember:WI};let QI={};const tL=20,eL=function(t){const e=Object.entries(QI).find((e=>e[1].label===t));if(e)return e[0]},nL=function(t){t.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"),t.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"),t.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"),t.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"),t.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"),t.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"),t.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"),t.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")},iL={draw:function(t,e,n,i){const a=Ry().class;QI={},d.info("Rendering diagram "+t);const r=Ry().securityLevel;let o;"sandbox"===r&&(o=un("#i"+e));const s=un("sandbox"===r?o.nodes()[0].contentDocument.body:"body"),c=s.select(`[id='${e}']`);nL(c);const l=new hA({multigraph:!0});l.setGraph({isMultiGraph:!0}),l.setDefaultEdgeLabel((function(){return{}}));const u=i.db.getClasses(),h=Object.keys(u);for(const m of h){const t=u[m],e=JI.drawClass(c,t,a,i);QI[e.id]=e,l.setNode(e.id,e),d.info("Org height: "+e.height)}i.db.getRelations().forEach((function(t){d.info("tjoho"+eL(t.id1)+eL(t.id2)+JSON.stringify(t)),l.setEdge(eL(t.id1),eL(t.id2),{relation:t},t.title||"DEFAULT")})),i.db.getNotes().forEach((function(t){d.debug(`Adding note: ${JSON.stringify(t)}`);const e=JI.drawNote(c,t,a,i);QI[e.id]=e,l.setNode(e.id,e),t.class&&t.class in u&&l.setEdge(t.id,eL(t.class),{relation:{id1:t.id,id2:t.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")})),yI(l),l.nodes().forEach((function(t){void 0!==t&&void 0!==l.node(t)&&(d.debug("Node "+t+": "+JSON.stringify(l.node(t))),s.select("#"+(i.db.lookUpDomId(t)||t)).attr("transform","translate("+(l.node(t).x-l.node(t).width/2)+","+(l.node(t).y-l.node(t).height/2)+" )"))})),l.edges().forEach((function(t){void 0!==t&&void 0!==l.edge(t)&&(d.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(l.edge(t))),JI.drawEdge(c,l.edge(t),l.edge(t).relation,a,i))}));const f=c.node().getBBox(),g=f.width+2*tL,p=f.height+2*tL;Ly(c,p,g,a.useMaxWidth);const b=`${f.x-tL} ${f.y-tL} ${g} ${p}`;d.debug(`viewBox ${b}`),c.attr("viewBox",b)}};function aL(t){var e={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:rL(t),edges:oL(t)};return DT(t.graph())||(e.value=HC(t.graph())),e}function rL(t){return yT(t.nodes(),(function(e){var n=t.node(e),i=t.parent(e),a={v:e};return DT(n)||(a.value=n),DT(i)||(a.parent=i),a}))}function oL(t){return yT(t.edges(),(function(e){var n=t.edge(e),i={v:e.v,w:e.w};return DT(e.name)||(i.name=e.name),DT(n)||(i.value=n),i}))}const sL=(t,e,n,i)=>{e.forEach((e=>{cL[e](t,n,i)}))},cL={extension:(t,e,n)=>{d.trace("Making markers for ",n),t.append("defs").append("marker").attr("id",e+"-extensionStart").attr("class","marker extension "+e).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"),t.append("defs").append("marker").attr("id",e+"-extensionEnd").attr("class","marker extension "+e).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")},composition:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-compositionStart").attr("class","marker composition "+e).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",e+"-compositionEnd").attr("class","marker composition "+e).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")},aggregation:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-aggregationStart").attr("class","marker aggregation "+e).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",e+"-aggregationEnd").attr("class","marker aggregation "+e).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")},dependency:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-dependencyStart").attr("class","marker dependency "+e).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"),t.append("defs").append("marker").attr("id",e+"-dependencyEnd").attr("class","marker dependency "+e).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")},lollipop:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","white").attr("cx",6).attr("cy",7).attr("r",6)},point:(t,e)=>{t.append("marker").attr("id",e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 12 20").attr("refX",10).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"),t.append("marker").attr("id",e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",0).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")},circle:(t,e)=>{t.append("marker").attr("id",e+"-circleEnd").attr("class","marker "+e).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"),t.append("marker").attr("id",e+"-circleStart").attr("class","marker "+e).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")},cross:(t,e)=>{t.append("marker").attr("id",e+"-crossEnd").attr("class","marker cross "+e).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"),t.append("marker").attr("id",e+"-crossStart").attr("class","marker cross "+e).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")},barb:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-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")}},lL=sL;function uL(t,e){e&&t.attr("style",e)}function dL(t){const e=un(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),n=e.append("xhtml:div"),i=t.label,a=t.isNode?"nodeLabel":"edgeLabel";return n.html('<span class="'+a+'" '+(t.labelStyle?'style="'+t.labelStyle+'"':"")+">"+i+"</span>"),uL(n,t.labelStyle),n.style("display","inline-block"),n.style("white-space","nowrap"),n.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}const hL=(t,e,n,i)=>{let a=t||"";if("object"==typeof a&&(a=a[0]),Xd(Ry().flowchart.htmlLabels))return a=a.replace(/\\n|\n/g,"<br />"),d.info("vertexText"+a),dL({isNode:i,label:JH(a).replace(/fa[blrs]?:fa-[\w-]+/g,(t=>`<i class='${t.replace(":"," ")}'></i>`)),labelStyle:e.replace("fill:","color:")});{const t=document.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",e.replace("color:","fill:"));let i=[];i="string"==typeof a?a.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(a)?a:[];for(const e of i){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"),n?i.setAttribute("class","title-row"):i.setAttribute("class","row"),i.textContent=e.trim(),t.appendChild(i)}return t}},fL=(t,e,n,i)=>{let a;a=n||"node default";const r=t.insert("g").attr("class",a).attr("id",e.domId||e.id),o=r.insert("g").attr("class","label").attr("style",e.labelStyle);let s;s=void 0===e.labelText?"":"string"==typeof e.labelText?e.labelText:e.labelText[0];const c=o.node().appendChild(hL(Wd(JH(s),Ry()),e.labelStyle,!1,i));let l=c.getBBox();if(Xd(Ry().flowchart.htmlLabels)){const t=c.children[0],e=un(c);l=t.getBoundingClientRect(),e.attr("width",l.width),e.attr("height",l.height)}const u=e.padding/2;return o.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),{shapeSvg:r,bbox:l,halfPadding:u,label:o}},gL=(t,e)=>{const n=e.node().getBBox();t.width=n.width,t.height=n.height};function pL(t,e,n,i){return t.insert("polygon",":first-child").attr("points",i.map((function(t){return t.x+","+t.y})).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+n/2+")")}let bL={},mL={},yL={};const vL=()=>{mL={},yL={},bL={}},wL=(t,e)=>(d.trace("In isDecendant",e," ",t," = ",mL[e].includes(t)),!!mL[e].includes(t)),xL=(t,e)=>(d.info("Decendants of ",e," is ",mL[e]),d.info("Edge is ",t),t.v!==e&&t.w!==e&&(mL[e]?mL[e].includes(t.v)||wL(t.v,e)||wL(t.w,e)||mL[e].includes(t.w):(d.debug("Tilt, ",e,",not in decendants"),!1))),RL=(t,e,n,i)=>{d.warn("Copying children of ",t,"root",i,"data",e.node(t),i);const a=e.children(t)||[];t!==i&&a.push(t),d.warn("Copying (nodes) clusterId",t,"nodes",a),a.forEach((a=>{if(e.children(a).length>0)RL(a,e,n,i);else{const r=e.node(a);d.info("cp ",a," to ",i," with parent ",t),n.setNode(a,r),i!==e.parent(a)&&(d.warn("Setting parent",a,e.parent(a)),n.setParent(a,e.parent(a))),t!==i&&a!==t?(d.debug("Setting parent",a,t),n.setParent(a,t)):(d.info("In copy ",t,"root",i,"data",e.node(t),i),d.debug("Not Setting parent for node=",a,"cluster!==rootId",t!==i,"node!==clusterId",a!==t));const o=e.edges(a);d.debug("Copying Edges",o),o.forEach((a=>{d.info("Edge",a);const r=e.edge(a.v,a.w,a.name);d.info("Edge data",r,i);try{xL(a,i)?(d.info("Copying as ",a.v,a.w,r,a.name),n.setEdge(a.v,a.w,r,a.name),d.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):d.info("Skipping copy of edge ",a.v,"--\x3e",a.w," rootId: ",i," clusterId:",t)}catch(o){d.error(o)}}))}d.debug("Removing node",a),e.removeNode(a)}))},_L=(t,e)=>{const n=e.children(t);let i=[...n];for(const a of n)yL[a]=t,i=[...i,..._L(a,e)];return i},kL=(t,e)=>{d.trace("Searching",t);const n=e.children(t);if(d.trace("Searching children of id ",t,n),n.length<1)return d.trace("This is a valid node",t),t;for(const i of n){const n=kL(i,e);if(n)return d.trace("Found replacement for",t," => ",n),n}},EL=t=>bL[t]&&bL[t].externalConnections&&bL[t]?bL[t].id:t,CL=(t,e)=>{!t||e>10?d.debug("Opting out, no graph "):(d.debug("Opting in, graph "),t.nodes().forEach((function(e){t.children(e).length>0&&(d.warn("Cluster identified",e," Replacement id in edges: ",kL(e,t)),mL[e]=_L(e,t),bL[e]={id:kL(e,t),clusterData:t.node(e)})})),t.nodes().forEach((function(e){const n=t.children(e),i=t.edges();n.length>0?(d.debug("Cluster identified",e,mL),i.forEach((t=>{t.v!==e&&t.w!==e&&wL(t.v,e)^wL(t.w,e)&&(d.warn("Edge: ",t," leaves cluster ",e),d.warn("Decendants of XXX ",e,": ",mL[e]),bL[e].externalConnections=!0)}))):d.debug("Not a cluster ",e,mL)})),t.edges().forEach((function(e){const n=t.edge(e);d.warn("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),d.warn("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(t.edge(e)));let i=e.v,a=e.w;if(d.warn("Fix XXX",bL,"ids:",e.v,e.w,"Translating: ",bL[e.v]," --- ",bL[e.w]),bL[e.v]&&bL[e.w]&&bL[e.v]===bL[e.w]){d.warn("Fixing and trixing link to self - removing XXX",e.v,e.w,e.name),d.warn("Fixing and trixing - removing XXX",e.v,e.w,e.name),i=EL(e.v),a=EL(e.w),t.removeEdge(e.v,e.w,e.name);const r=e.w+"---"+e.v;t.setNode(r,{domId:r,id:r,labelStyle:"",labelText:n.label,padding:0,shape:"labelRect",style:""});const o=JSON.parse(JSON.stringify(n)),s=JSON.parse(JSON.stringify(n));o.label="",o.arrowTypeEnd="none",s.label="",o.fromCluster=e.v,s.toCluster=e.v,t.setEdge(i,r,o,e.name+"-cyclic-special"),t.setEdge(r,a,s,e.name+"-cyclic-special")}else(bL[e.v]||bL[e.w])&&(d.warn("Fixing and trixing - removing XXX",e.v,e.w,e.name),i=EL(e.v),a=EL(e.w),t.removeEdge(e.v,e.w,e.name),i!==e.v&&(n.fromCluster=e.v),a!==e.w&&(n.toCluster=e.w),d.warn("Fix Replacing with XXX",i,a,e.name),t.setEdge(i,a,n,e.name))})),d.warn("Adjusted Graph",aL(t)),SL(t,0),d.trace(bL))},SL=(t,e)=>{if(d.warn("extractor - ",e,aL(t),t.children("D")),e>10)return void d.error("Bailing out");let n=t.nodes(),i=!1;for(const a of n){const e=t.children(a);i=i||e.length>0}if(i){d.debug("Nodes = ",n,e);for(const i of n)if(d.debug("Extracting node",i,bL,bL[i]&&!bL[i].externalConnections,!t.parent(i),t.node(i),t.children("D")," Depth ",e),bL[i])if(!bL[i].externalConnections&&t.children(i)&&t.children(i).length>0){d.warn("Cluster without external connections, without a parent and with children",i,e);let n="TB"===t.graph().rankdir?"LR":"TB";bL[i]&&bL[i].clusterData&&bL[i].clusterData.dir&&(n=bL[i].clusterData.dir,d.warn("Fixing dir",bL[i].clusterData.dir,n));const a=new hA({multigraph:!0,compound:!0}).setGraph({rankdir:n,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));d.warn("Old graph before copy",aL(t)),RL(i,t,a,i),t.setNode(i,{clusterNode:!0,id:i,clusterData:bL[i].clusterData,labelText:bL[i].labelText,graph:a}),d.warn("New graph after copy node: (",i,")",aL(a)),d.debug("Old graph after copy",aL(t))}else d.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!bL[i].externalConnections," no parent: ",!t.parent(i)," children ",t.children(i)&&t.children(i).length>0,t.children("D"),e),d.debug(bL);else d.debug("Not a cluster",i,e);n=t.nodes(),d.warn("New list of nodes",n);for(const i of n){const n=t.node(i);d.warn(" Now next level",i,n),n.clusterNode&&SL(n.graph,e+1)}}else d.debug("Done, no node has children",t.nodes())},TL=(t,e)=>{if(0===e.length)return[];let n=Object.assign(e);return e.forEach((e=>{const i=t.children(e),a=TL(t,i);n=[...n,...a]})),n},AL=t=>TL(t,t.children());function DL(t,e){return t.intersect(e)}function IL(t,e,n,i){var a=t.x,r=t.y,o=a-i.x,s=r-i.y,c=Math.sqrt(e*e*s*s+n*n*o*o),l=Math.abs(e*n*o/c);i.x<a&&(l=-l);var u=Math.abs(e*n*s/c);return i.y<r&&(u=-u),{x:a+l,y:r+u}}function LL(t,e,n){return IL(t,e,e,n)}function OL(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p,b;if(a=e.y-t.y,o=t.x-e.x,c=e.x*t.y-t.x*e.y,h=a*n.x+o*n.y+c,f=a*i.x+o*i.y+c,!(0!==h&&0!==f&&ML(h,f)||(r=i.y-n.y,s=n.x-i.x,l=i.x*n.y-n.x*i.y,u=r*t.x+s*t.y+l,d=r*e.x+s*e.y+l,0!==u&&0!==d&&ML(u,d)||(g=a*s-r*o,0===g))))return p=Math.abs(g/2),{x:(b=o*l-s*c)<0?(b-p)/g:(b+p)/g,y:(b=r*c-a*l)<0?(b-p)/g:(b+p)/g}}function ML(t,e){return t*e>0}function NL(t,e,n){var i=t.x,a=t.y,r=[],o=Number.POSITIVE_INFINITY,s=Number.POSITIVE_INFINITY;"function"==typeof e.forEach?e.forEach((function(t){o=Math.min(o,t.x),s=Math.min(s,t.y)})):(o=Math.min(o,e.x),s=Math.min(s,e.y));for(var c=i-t.width/2-o,l=a-t.height/2-s,u=0;u<e.length;u++){var d=e[u],h=e[u<e.length-1?u+1:0],f=OL(t,n,{x:c+d.x,y:l+d.y},{x:c+h.x,y:l+h.y});f&&r.push(f)}return r.length?(r.length>1&&r.sort((function(t,e){var i=t.x-n.x,a=t.y-n.y,r=Math.sqrt(i*i+a*a),o=e.x-n.x,s=e.y-n.y,c=Math.sqrt(o*o+s*s);return r<c?-1:r===c?0:1})),r[0]):t}const BL=(t,e)=>{var n,i,a=t.x,r=t.y,o=e.x-a,s=e.y-r,c=t.width/2,l=t.height/2;return Math.abs(s)*c>Math.abs(o)*l?(s<0&&(l=-l),n=0===s?0:l*o/s,i=l):(o<0&&(c=-c),n=c,i=0===o?0:c*s/o),{x:a+n,y:r+i}},PL={node:DL,circle:LL,ellipse:IL,polygon:NL,rect:BL},FL=(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding+(i.height+e.padding),r=[{x:a/2,y:0},{x:a,y:-a/2},{x:a/2,y:-a},{x:0,y:-a/2}];d.info("Question main (Circle)");const o=pL(n,a,a,r);return o.attr("style",e.style),gL(e,o),e.intersect=function(t){return d.warn("Intersect called"),PL.polygon(e,r,t)},n};function jL(t,e,n,i){const a=[],r=t=>{a.push(t,0)},o=t=>{a.push(0,t)};e.includes("t")?(d.debug("add top border"),r(n)):o(n),e.includes("r")?(d.debug("add right border"),r(i)):o(i),e.includes("b")?(d.debug("add bottom border"),r(n)):o(n),e.includes("l")?(d.debug("add left border"),r(i)):o(i),t.attr("stroke-dasharray",a.join(" "))}const $L=(t,e,n)=>{const i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);let a=70,r=10;"LR"===n&&(a=10,r=70);const o=i.append("rect").attr("x",-1*a/2).attr("y",-1*r/2).attr("width",a).attr("height",r).attr("class","fork-join");return gL(e,o),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(t){return PL.rect(e,t)},i},zL={rhombus:FL,question:FL,rect:(t,e)=>{const{shapeSvg:n,bbox:i,halfPadding:a}=fL(t,e,"node "+e.classes,!0);d.trace("Classes = ",e.classes);const r=n.insert("rect",":first-child"),o=i.width+e.padding,s=i.height+e.padding;if(r.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",o).attr("height",s),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(jL(r,e.props.borders,o,s),t.delete("borders")),t.forEach((t=>{d.warn(`Unknown node property ${t}`)}))}return gL(e,r),e.intersect=function(t){return PL.rect(e,t)},n},labelRect:(t,e)=>{const{shapeSvg:n}=fL(t,e,"label",!0);d.trace("Classes = ",e.classes);const i=n.insert("rect",":first-child"),a=0,r=0;if(i.attr("width",a).attr("height",r),n.attr("class","label edgeLabel"),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(jL(i,e.props.borders,a,r),t.delete("borders")),t.forEach((t=>{d.warn(`Unknown node property ${t}`)}))}return gL(e,i),e.intersect=function(t){return PL.rect(e,t)},n},rectWithTitle:(t,e)=>{let n;n=e.classes?"node "+e.classes:"node default";const i=t.insert("g").attr("class",n).attr("id",e.domId||e.id),a=i.insert("rect",":first-child"),r=i.insert("line"),o=i.insert("g").attr("class","label"),s=e.labelText.flat?e.labelText.flat():e.labelText;let c="";c="object"==typeof s?s[0]:s,d.info("Label text abc79",c,s,"object"==typeof s);const l=o.node().appendChild(hL(c,e.labelStyle,!0,!0));let u={width:0,height:0};if(Xd(Ry().flowchart.htmlLabels)){const t=l.children[0],e=un(l);u=t.getBoundingClientRect(),e.attr("width",u.width),e.attr("height",u.height)}d.info("Text 2",s);const h=s.slice(1,s.length);let f=l.getBBox();const g=o.node().appendChild(hL(h.join?h.join("<br/>"):h,e.labelStyle,!0,!0));if(Xd(Ry().flowchart.htmlLabels)){const t=g.children[0],e=un(g);u=t.getBoundingClientRect(),e.attr("width",u.width),e.attr("height",u.height)}const p=e.padding/2;return un(g).attr("transform","translate( "+(u.width>f.width?0:(f.width-u.width)/2)+", "+(f.height+p+5)+")"),un(l).attr("transform","translate( "+(u.width<f.width?0:-(f.width-u.width)/2)+", 0)"),u=o.node().getBBox(),o.attr("transform","translate("+-u.width/2+", "+(-u.height/2-p+3)+")"),a.attr("class","outer title-state").attr("x",-u.width/2-p).attr("y",-u.height/2-p).attr("width",u.width+e.padding).attr("height",u.height+e.padding),r.attr("class","divider").attr("x1",-u.width/2-p).attr("x2",u.width/2+p).attr("y1",-u.height/2-p+f.height+p).attr("y2",-u.height/2-p+f.height+p),gL(e,a),e.intersect=function(t){return PL.rect(e,t)},i},choice:(t,e)=>{const n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=28,a=[{x:0,y:i/2},{x:i/2,y:0},{x:0,y:-i/2},{x:-i/2,y:0}];return n.insert("polygon",":first-child").attr("points",a.map((function(t){return t.x+","+t.y})).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(t){return PL.circle(e,14,t)},n},circle:(t,e)=>{const{shapeSvg:n,bbox:i,halfPadding:a}=fL(t,e,void 0,!0),r=n.insert("circle",":first-child");return r.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",i.width/2+a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),d.info("Circle main"),gL(e,r),e.intersect=function(t){return d.info("Circle intersect",e,i.width/2+a,t),PL.circle(e,i.width/2+a,t)},n},doublecircle:(t,e)=>{const{shapeSvg:n,bbox:i,halfPadding:a}=fL(t,e,void 0,!0),r=5,o=n.insert("g",":first-child"),s=o.insert("circle"),c=o.insert("circle");return s.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",i.width/2+a+r).attr("width",i.width+e.padding+2*r).attr("height",i.height+e.padding+2*r),c.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",i.width/2+a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),d.info("DoubleCircle main"),gL(e,s),e.intersect=function(t){return d.info("DoubleCircle intersect",e,i.width/2+a+r,t),PL.circle(e,i.width/2+a+r,t)},n},stadium:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.height+e.padding,r=i.width+a/4+e.padding,o=n.insert("rect",":first-child").attr("style",e.style).attr("rx",a/2).attr("ry",a/2).attr("x",-r/2).attr("y",-a/2).attr("width",r).attr("height",a);return gL(e,o),e.intersect=function(t){return PL.rect(e,t)},n},hexagon:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=4,r=i.height+e.padding,o=r/a,s=i.width+2*o+e.padding,c=[{x:o,y:0},{x:s-o,y:0},{x:s,y:-r/2},{x:s-o,y:-r},{x:o,y:-r},{x:0,y:-r/2}],l=pL(n,s,r,c);return l.attr("style",e.style),gL(e,l),e.intersect=function(t){return PL.polygon(e,c,t)},n},rect_left_inv_arrow:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:-r/2,y:0},{x:a,y:0},{x:a,y:-r},{x:-r/2,y:-r},{x:0,y:-r/2}];return pL(n,a,r,o).attr("style",e.style),e.width=a+r,e.height=r,e.intersect=function(t){return PL.polygon(e,o,t)},n},lean_right:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:-2*r/6,y:0},{x:a-r/6,y:0},{x:a+2*r/6,y:-r},{x:r/6,y:-r}],s=pL(n,a,r,o);return s.attr("style",e.style),gL(e,s),e.intersect=function(t){return PL.polygon(e,o,t)},n},lean_left:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:2*r/6,y:0},{x:a+r/6,y:0},{x:a-2*r/6,y:-r},{x:-r/6,y:-r}],s=pL(n,a,r,o);return s.attr("style",e.style),gL(e,s),e.intersect=function(t){return PL.polygon(e,o,t)},n},trapezoid:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:-2*r/6,y:0},{x:a+2*r/6,y:0},{x:a-r/6,y:-r},{x:r/6,y:-r}],s=pL(n,a,r,o);return s.attr("style",e.style),gL(e,s),e.intersect=function(t){return PL.polygon(e,o,t)},n},inv_trapezoid:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:r/6,y:0},{x:a-r/6,y:0},{x:a+2*r/6,y:-r},{x:-2*r/6,y:-r}],s=pL(n,a,r,o);return s.attr("style",e.style),gL(e,s),e.intersect=function(t){return PL.polygon(e,o,t)},n},rect_right_inv_arrow:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:0,y:0},{x:a+r/2,y:0},{x:a,y:-r/2},{x:a+r/2,y:-r},{x:0,y:-r}],s=pL(n,a,r,o);return s.attr("style",e.style),gL(e,s),e.intersect=function(t){return PL.polygon(e,o,t)},n},cylinder:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding,r=a/2,o=r/(2.5+a/50),s=i.height+o+e.padding,c="M 0,"+o+" a "+r+","+o+" 0,0,0 "+a+" 0 a "+r+","+o+" 0,0,0 "+-a+" 0 l 0,"+s+" a "+r+","+o+" 0,0,0 "+a+" 0 l 0,"+-s,l=n.attr("label-offset-y",o).insert("path",":first-child").attr("style",e.style).attr("d",c).attr("transform","translate("+-a/2+","+-(s/2+o)+")");return gL(e,l),e.intersect=function(t){const n=PL.rect(e,t),i=n.x-e.x;if(0!=r&&(Math.abs(i)<e.width/2||Math.abs(i)==e.width/2&&Math.abs(n.y-e.y)>e.height/2-o)){let a=o*o*(1-i*i/(r*r));0!=a&&(a=Math.sqrt(a)),a=o-a,t.y-e.y>0&&(a=-a),n.y+=a}return n},n},start:(t,e)=>{const n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=n.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),gL(e,i),e.intersect=function(t){return PL.circle(e,7,t)},n},end:(t,e)=>{const n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=n.insert("circle",":first-child"),a=n.insert("circle",":first-child");return a.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),gL(e,a),e.intersect=function(t){return PL.circle(e,7,t)},n},note:(t,e)=>{const{shapeSvg:n,bbox:i,halfPadding:a}=fL(t,e,"node "+e.classes,!0);d.info("Classes = ",e.classes);const r=n.insert("rect",":first-child");return r.attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),gL(e,r),e.intersect=function(t){return PL.rect(e,t)},n},subroutine:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:0,y:0},{x:a,y:0},{x:a,y:-r},{x:0,y:-r},{x:0,y:0},{x:-8,y:0},{x:a+8,y:0},{x:a+8,y:-r},{x:-8,y:-r},{x:-8,y:0}],s=pL(n,a,r,o);return s.attr("style",e.style),gL(e,s),e.intersect=function(t){return PL.polygon(e,o,t)},n},fork:$L,join:$L,class_box:(t,e)=>{const n=e.padding/2,i=4,a=8;let r;r=e.classes?"node "+e.classes:"node default";const o=t.insert("g").attr("class",r).attr("id",e.domId||e.id),s=o.insert("rect",":first-child"),c=o.insert("line"),l=o.insert("line");let u=0,d=i;const h=o.insert("g").attr("class","label");let f=0;const g=e.classData.annotations&&e.classData.annotations[0],p=e.classData.annotations[0]?"\xab"+e.classData.annotations[0]+"\xbb":"",b=h.node().appendChild(hL(p,e.labelStyle,!0,!0));let m=b.getBBox();if(Xd(Ry().flowchart.htmlLabels)){const t=b.children[0],e=un(b);m=t.getBoundingClientRect(),e.attr("width",m.width),e.attr("height",m.height)}e.classData.annotations[0]&&(d+=m.height+i,u+=m.width);let y=e.classData.id;void 0!==e.classData.type&&""!==e.classData.type&&(Ry().flowchart.htmlLabels?y+="<"+e.classData.type+">":y+="<"+e.classData.type+">");const v=h.node().appendChild(hL(y,e.labelStyle,!0,!0));un(v).attr("class","classTitle");let w=v.getBBox();if(Xd(Ry().flowchart.htmlLabels)){const t=v.children[0],e=un(v);w=t.getBoundingClientRect(),e.attr("width",w.width),e.attr("height",w.height)}d+=w.height+i,w.width>u&&(u=w.width);const x=[];e.classData.members.forEach((t=>{const n=WI(t);let a=n.displayText;Ry().flowchart.htmlLabels&&(a=a.replace(/</g,"<").replace(/>/g,">"));const r=h.node().appendChild(hL(a,n.cssStyle?n.cssStyle:e.labelStyle,!0,!0));let o=r.getBBox();if(Xd(Ry().flowchart.htmlLabels)){const t=r.children[0],e=un(r);o=t.getBoundingClientRect(),e.attr("width",o.width),e.attr("height",o.height)}o.width>u&&(u=o.width),d+=o.height+i,x.push(r)})),d+=a;const R=[];if(e.classData.methods.forEach((t=>{const n=WI(t);let a=n.displayText;Ry().flowchart.htmlLabels&&(a=a.replace(/</g,"<").replace(/>/g,">"));const r=h.node().appendChild(hL(a,n.cssStyle?n.cssStyle:e.labelStyle,!0,!0));let o=r.getBBox();if(Xd(Ry().flowchart.htmlLabels)){const t=r.children[0],e=un(r);o=t.getBoundingClientRect(),e.attr("width",o.width),e.attr("height",o.height)}o.width>u&&(u=o.width),d+=o.height+i,R.push(r)})),d+=a,g){let t=(u-m.width)/2;un(b).attr("transform","translate( "+(-1*u/2+t)+", "+-1*d/2+")"),f=m.height+i}let _=(u-w.width)/2;return un(v).attr("transform","translate( "+(-1*u/2+_)+", "+(-1*d/2+f)+")"),f+=w.height+i,c.attr("class","divider").attr("x1",-u/2-n).attr("x2",u/2+n).attr("y1",-d/2-n+a+f).attr("y2",-d/2-n+a+f),f+=a,x.forEach((t=>{un(t).attr("transform","translate( "+-u/2+", "+(-1*d/2+f+a/2)+")"),f+=w.height+i})),f+=a,l.attr("class","divider").attr("x1",-u/2-n).attr("x2",u/2+n).attr("y1",-d/2-n+a+f).attr("y2",-d/2-n+a+f),f+=a,R.forEach((t=>{un(t).attr("transform","translate( "+-u/2+", "+(-1*d/2+f)+")"),f+=w.height+i})),s.attr("class","outer title-state").attr("x",-u/2-n).attr("y",-d/2-n).attr("width",u+e.padding).attr("height",d+e.padding),gL(e,s),e.intersect=function(t){return PL.rect(e,t)},o}};let HL={};const UL=(t,e,n)=>{let i,a;if(e.link){let r;"sandbox"===Ry().securityLevel?r="_top":e.linkTarget&&(r=e.linkTarget||"_blank"),i=t.insert("svg:a").attr("xlink:href",e.link).attr("target",r),a=zL[e.shape](i,e,n)}else a=zL[e.shape](t,e,n),i=a;return e.tooltip&&a.attr("title",e.tooltip),e.class&&a.attr("class","node default "+e.class),HL[e.id]=i,e.haveCallback&&HL[e.id].attr("class",HL[e.id].attr("class")+" clickable"),i},VL=(t,e)=>{HL[e.id]=t},qL=()=>{HL={}},WL=t=>{const e=HL[t.id];d.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");const n=8,i=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+i-t.width/2)+", "+(t.y-t.height/2-n)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),i},YL={rect:(t,e)=>{d.trace("Creating subgraph rect for ",e.id,e);const n=t.insert("g").attr("class","cluster"+(e.class?" "+e.class:"")).attr("id",e.id),i=n.insert("rect",":first-child"),a=n.insert("g").attr("class","cluster-label"),r=a.node().appendChild(hL(e.labelText,e.labelStyle,void 0,!0));let o=r.getBBox();if(Xd(Ry().flowchart.htmlLabels)){const t=r.children[0],e=un(r);o=t.getBoundingClientRect(),e.attr("width",o.width),e.attr("height",o.height)}const s=0*e.padding,c=s/2,l=e.width<=o.width+s?o.width+s:e.width;e.width<=o.width+s?e.diff=(o.width-e.width)/2-e.padding/2:e.diff=-e.padding/2,d.trace("Data ",e,JSON.stringify(e)),i.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-l/2).attr("y",e.y-e.height/2-c).attr("width",l).attr("height",e.height+s),a.attr("transform","translate("+(e.x-o.width/2)+", "+(e.y-e.height/2)+")");const u=i.node().getBBox();return e.width=u.width,e.height=u.height,e.intersect=function(t){return BL(e,t)},n},roundedWithTitle:(t,e)=>{const n=t.insert("g").attr("class",e.classes).attr("id",e.id),i=n.insert("rect",":first-child"),a=n.insert("g").attr("class","cluster-label"),r=n.append("rect"),o=a.node().appendChild(hL(e.labelText,e.labelStyle,void 0,!0));let s=o.getBBox();if(Xd(Ry().flowchart.htmlLabels)){const t=o.children[0],e=un(o);s=t.getBoundingClientRect(),e.attr("width",s.width),e.attr("height",s.height)}s=o.getBBox();const c=0*e.padding,l=c/2,u=e.width<=s.width+e.padding?s.width+e.padding:e.width;e.width<=s.width+e.padding?e.diff=(s.width+0*e.padding-e.width)/2:e.diff=-e.padding/2,i.attr("class","outer").attr("x",e.x-u/2-l).attr("y",e.y-e.height/2-l).attr("width",u+c).attr("height",e.height+c),r.attr("class","inner").attr("x",e.x-u/2-l).attr("y",e.y-e.height/2-l+s.height-1).attr("width",u+c).attr("height",e.height+c-s.height-3),a.attr("transform","translate("+(e.x-s.width/2)+", "+(e.y-e.height/2-e.padding/3+(Xd(Ry().flowchart.htmlLabels)?5:3))+")");const d=i.node().getBBox();return e.height=d.height,e.intersect=function(t){return BL(e,t)},n},noteGroup:(t,e)=>{const n=t.insert("g").attr("class","note-cluster").attr("id",e.id),i=n.insert("rect",":first-child"),a=0*e.padding,r=a/2;i.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-r).attr("y",e.y-e.height/2-r).attr("width",e.width+a).attr("height",e.height+a).attr("fill","none");const o=i.node().getBBox();return e.width=o.width,e.height=o.height,e.intersect=function(t){return BL(e,t)},n},divider:(t,e)=>{const n=t.insert("g").attr("class",e.classes).attr("id",e.id),i=n.insert("rect",":first-child"),a=0*e.padding,r=a/2;i.attr("class","divider").attr("x",e.x-e.width/2-r).attr("y",e.y-e.height/2).attr("width",e.width+a).attr("height",e.height+a);const o=i.node().getBBox();return e.width=o.width,e.height=o.height,e.diff=-e.padding/2,e.intersect=function(t){return BL(e,t)},n}};let GL={};const ZL=(t,e)=>{d.trace("Inserting cluster");const n=e.shape||"rect";GL[e.id]=YL[n](t,e)},KL=()=>{GL={}};let XL={},JL={};const QL=()=>{XL={},JL={}},tO=(t,e)=>{const n=hL(e.label,e.labelStyle),i=t.insert("g").attr("class","edgeLabel"),a=i.insert("g").attr("class","label");a.node().appendChild(n);let r,o=n.getBBox();if(Xd(Ry().flowchart.htmlLabels)){const t=n.children[0],e=un(n);o=t.getBoundingClientRect(),e.attr("width",o.width),e.attr("height",o.height)}if(a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),XL[e.id]=i,e.width=o.width,e.height=o.height,e.startLabelLeft){const n=hL(e.startLabelLeft,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),a=i.insert("g").attr("class","inner");r=a.node().appendChild(n);const o=n.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),JL[e.id]||(JL[e.id]={}),JL[e.id].startLeft=i,eO(r,e.startLabelLeft)}if(e.startLabelRight){const n=hL(e.startLabelRight,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),a=i.insert("g").attr("class","inner");r=i.node().appendChild(n),a.node().appendChild(n);const o=n.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),JL[e.id]||(JL[e.id]={}),JL[e.id].startRight=i,eO(r,e.startLabelRight)}if(e.endLabelLeft){const n=hL(e.endLabelLeft,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),a=i.insert("g").attr("class","inner");r=a.node().appendChild(n);const o=n.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),i.node().appendChild(n),JL[e.id]||(JL[e.id]={}),JL[e.id].endLeft=i,eO(r,e.endLabelLeft)}if(e.endLabelRight){const n=hL(e.endLabelRight,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),a=i.insert("g").attr("class","inner");r=a.node().appendChild(n);const o=n.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),i.node().appendChild(n),JL[e.id]||(JL[e.id]={}),JL[e.id].endRight=i,eO(r,e.endLabelRight)}return n};function eO(t,e){Ry().flowchart.htmlLabels&&t&&(t.style.width=9*e.length+"px",t.style.height="12px")}const nO=(t,e)=>{d.info("Moving label abc78 ",t.id,t.label,XL[t.id]);let n=e.updatedPath?e.updatedPath:e.originalPath;if(t.label){const i=XL[t.id];let a=t.x,r=t.y;if(n){const i=vm.calcLabelPosition(n);d.info("Moving label "+t.label+" from (",a,",",r,") to (",i.x,",",i.y,") abc78"),e.updatedPath&&(a=i.x,r=i.y)}i.attr("transform","translate("+a+", "+r+")")}if(t.startLabelLeft){const e=JL[t.id].startLeft;let i=t.x,a=t.y;if(n){const e=vm.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",n);i=e.x,a=e.y}e.attr("transform","translate("+i+", "+a+")")}if(t.startLabelRight){const e=JL[t.id].startRight;let i=t.x,a=t.y;if(n){const e=vm.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",n);i=e.x,a=e.y}e.attr("transform","translate("+i+", "+a+")")}if(t.endLabelLeft){const e=JL[t.id].endLeft;let i=t.x,a=t.y;if(n){const e=vm.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",n);i=e.x,a=e.y}e.attr("transform","translate("+i+", "+a+")")}if(t.endLabelRight){const e=JL[t.id].endRight;let i=t.x,a=t.y;if(n){const e=vm.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",n);i=e.x,a=e.y}e.attr("transform","translate("+i+", "+a+")")}},iO=(t,e)=>{const n=t.x,i=t.y,a=Math.abs(e.x-n),r=Math.abs(e.y-i),o=t.width/2,s=t.height/2;return a>=o||r>=s},aO=(t,e,n)=>{d.warn(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(e)}\n insidePoint : ${JSON.stringify(n)}\n node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);const i=t.x,a=t.y,r=Math.abs(i-n.x),o=t.width/2;let s=n.x<e.x?o-r:o+r;const c=t.height/2,l=Math.abs(e.y-n.y),u=Math.abs(e.x-n.x);if(Math.abs(a-e.y)*o>Math.abs(i-e.x)*c){let t=n.y<e.y?e.y-c-a:a-c-e.y;s=u*t/l;const i={x:n.x<e.x?n.x+s:n.x-u+s,y:n.y<e.y?n.y+l-t:n.y-l+t};return 0===s&&(i.x=e.x,i.y=e.y),0===u&&(i.x=e.x),0===l&&(i.y=e.y),d.warn(`abc89 topp/bott calc, Q ${l}, q ${t}, R ${u}, r ${s}`,i),i}{s=n.x<e.x?e.x-o-i:i-o-e.x;let t=l*s/u,a=n.x<e.x?n.x+u-s:n.x-u+s,r=n.y<e.y?n.y+t:n.y-t;return d.warn(`sides calc abc89, Q ${l}, q ${t}, R ${u}, r ${s}`,{_x:a,_y:r}),0===s&&(a=e.x,r=e.y),0===u&&(a=e.x),0===l&&(r=e.y),{x:a,y:r}}},rO=(t,e)=>{d.warn("abc88 cutPathAtIntersect",t,e);let n=[],i=t[0],a=!1;return t.forEach((t=>{if(d.info("abc88 checking point",t,e),iO(e,t)||a)d.warn("abc88 outside",t,i),i=t,a||n.push(t);else{const r=aO(e,i,t);d.warn("abc88 inside",t,i,r),d.warn("abc88 intersection",r);let o=!1;n.forEach((t=>{o=o||t.x===r.x&&t.y===r.y})),n.some((t=>t.x===r.x&&t.y===r.y))?d.warn("abc88 no intersect",r,n):n.push(r),a=!0}})),d.warn("abc88 returning points",n),n},oO=function(t,e,n,i,a,r){let o=n.points,s=!1;const c=r.node(e.v);var l=r.node(e.w);d.info("abc88 InsertEdge: ",n),l.intersect&&c.intersect&&(o=o.slice(1,n.points.length-1),o.unshift(c.intersect(o[0])),d.info("Last point",o[o.length-1],l,l.intersect(o[o.length-1])),o.push(l.intersect(o[o.length-1]))),n.toCluster&&(d.info("to cluster abc88",i[n.toCluster]),o=rO(n.points,i[n.toCluster].node),s=!0),n.fromCluster&&(d.info("from cluster abc88",i[n.fromCluster]),o=rO(o.reverse(),i[n.fromCluster].node).reverse(),s=!0);const u=o.filter((t=>!Number.isNaN(t.y)));let h;h=("graph"===a||"flowchart"===a)&&n.curve||Kl;const f=$l().x((function(t){return t.x})).y((function(t){return t.y})).curve(h);let g;switch(n.thickness){case"normal":g="edge-thickness-normal";break;case"thick":g="edge-thickness-thick";break;default:g=""}switch(n.pattern){case"solid":g+=" edge-pattern-solid";break;case"dotted":g+=" edge-pattern-dotted";break;case"dashed":g+=" edge-pattern-dashed"}const p=t.append("path").attr("d",f(u)).attr("id",n.id).attr("class"," "+g+(n.classes?" "+n.classes:"")).attr("style",n.style);let b="";switch((Ry().flowchart.arrowMarkerAbsolute||Ry().state.arrowMarkerAbsolute)&&(b=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,b=b.replace(/\(/g,"\\("),b=b.replace(/\)/g,"\\)")),d.info("arrowTypeStart",n.arrowTypeStart),d.info("arrowTypeEnd",n.arrowTypeEnd),n.arrowTypeStart){case"arrow_cross":p.attr("marker-start","url("+b+"#"+a+"-crossStart)");break;case"arrow_point":p.attr("marker-start","url("+b+"#"+a+"-pointStart)");break;case"arrow_barb":p.attr("marker-start","url("+b+"#"+a+"-barbStart)");break;case"arrow_circle":p.attr("marker-start","url("+b+"#"+a+"-circleStart)");break;case"aggregation":p.attr("marker-start","url("+b+"#"+a+"-aggregationStart)");break;case"extension":p.attr("marker-start","url("+b+"#"+a+"-extensionStart)");break;case"composition":p.attr("marker-start","url("+b+"#"+a+"-compositionStart)");break;case"dependency":p.attr("marker-start","url("+b+"#"+a+"-dependencyStart)");break;case"lollipop":p.attr("marker-start","url("+b+"#"+a+"-lollipopStart)")}switch(n.arrowTypeEnd){case"arrow_cross":p.attr("marker-end","url("+b+"#"+a+"-crossEnd)");break;case"arrow_point":p.attr("marker-end","url("+b+"#"+a+"-pointEnd)");break;case"arrow_barb":p.attr("marker-end","url("+b+"#"+a+"-barbEnd)");break;case"arrow_circle":p.attr("marker-end","url("+b+"#"+a+"-circleEnd)");break;case"aggregation":p.attr("marker-end","url("+b+"#"+a+"-aggregationEnd)");break;case"extension":p.attr("marker-end","url("+b+"#"+a+"-extensionEnd)");break;case"composition":p.attr("marker-end","url("+b+"#"+a+"-compositionEnd)");break;case"dependency":p.attr("marker-end","url("+b+"#"+a+"-dependencyEnd)");break;case"lollipop":p.attr("marker-end","url("+b+"#"+a+"-lollipopEnd)")}let m={};return s&&(m.updatedPath=o),m.originalPath=n.points,m},sO=(t,e,n,i)=>{d.info("Graph in recursive render: XXX",aL(e),i);const a=e.graph().rankdir;d.trace("Dir in recursive render - dir:",a);const r=t.insert("g").attr("class","root");e.nodes()?d.info("Recursive render XXX",e.nodes()):d.info("No nodes found for",e),e.edges().length>0&&d.trace("Recursive edges",e.edge(e.edges()[0]));const o=r.insert("g").attr("class","clusters"),s=r.insert("g").attr("class","edgePaths"),c=r.insert("g").attr("class","edgeLabels"),l=r.insert("g").attr("class","nodes");e.nodes().forEach((function(t){const r=e.node(t);if(void 0!==i){const n=JSON.parse(JSON.stringify(i.clusterData));d.info("Setting data for cluster XXX (",t,") ",n,i),e.setNode(i.id,n),e.parent(t)||(d.trace("Setting parent",t,i.id),e.setParent(t,i.id,n))}if(d.info("(Insert) Node XXX"+t+": "+JSON.stringify(e.node(t))),r&&r.clusterNode){d.info("Cluster identified",t,r.width,e.node(t));const i=sO(l,r.graph,n,e.node(t)),a=i.elem;gL(r,a),r.diff=i.diff||0,d.info("Node bounds (abc123)",t,r,r.width,r.x,r.y),VL(a,r),d.warn("Recursive render complete ",a,r)}else e.children(t).length>0?(d.info("Cluster - the non recursive path XXX",t,r.id,r,e),d.info(kL(r.id,e)),bL[r.id]={id:kL(r.id,e),node:r}):(d.info("Node - the non recursive path",t,r.id,r),UL(l,e.node(t),a))})),e.edges().forEach((function(t){const n=e.edge(t.v,t.w,t.name);d.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),d.info("Edge "+t.v+" -> "+t.w+": ",t," ",JSON.stringify(e.edge(t))),d.info("Fix",bL,"ids:",t.v,t.w,"Translateing: ",bL[t.v],bL[t.w]),tO(c,n)})),e.edges().forEach((function(t){d.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t))})),d.info("#############################################"),d.info("### Layout ###"),d.info("#############################################"),d.info(e),yI(e),d.info("Graph after layout:",aL(e));let u=0;return AL(e).forEach((function(t){const n=e.node(t);d.info("Position "+t+": "+JSON.stringify(e.node(t))),d.info("Position "+t+": ("+n.x,","+n.y,") width: ",n.width," height: ",n.height),n&&n.clusterNode?WL(n):e.children(t).length>0?(ZL(o,n),bL[n.id].node=n):WL(n)})),e.edges().forEach((function(t){const i=e.edge(t);d.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(i),i);const a=oO(s,t,i,bL,n,e);nO(i,a)})),e.nodes().forEach((function(t){const n=e.node(t);d.info(t,n.type,n.diff),"group"===n.type&&(u=n.diff)})),{elem:r,diff:u}},cO=(t,e,n,i,a)=>{lL(t,n,i,a),qL(),QL(),KL(),vL(),d.warn("Graph at first:",aL(e)),CL(e),d.warn("Graph after:",aL(e)),sO(t,e,i)},lO=t=>Qd.sanitizeText(t,Ry());let uO={dividerMargin:10,padding:5,textHeight:10};const dO=function(t,e,n,i){const a=Object.keys(t);d.info("keys:",a),d.info(t),a.forEach((function(n){const a=t[n];let r="";a.cssClasses.length>0&&(r=r+" "+a.cssClasses.join(" "));const o={labelStyle:""};let s=void 0!==a.text?a.text:a.id,c=0,l="";a.type,l="class_box",e.setNode(a.id,{labelStyle:o.labelStyle,shape:l,labelText:lO(s),classData:a,rx:c,ry:c,class:r,style:o.style,id:a.id,domId:a.domId,tooltip:i.db.getTooltip(a.id)||"",haveCallback:a.haveCallback,link:a.link,width:"group"===a.type?500:void 0,type:a.type,padding:Ry().flowchart.padding}),d.info("setNode",{labelStyle:o.labelStyle,shape:l,labelText:s,rx:c,ry:c,class:r,style:o.style,id:a.id,width:"group"===a.type?500:void 0,type:a.type,padding:Ry().flowchart.padding})}))},hO=function(t,e,n,i){d.info(t),t.forEach((function(t,a){const r=t;let o="";const s={labelStyle:"",style:""};let c=r.text,l=0,u="note";if(e.setNode(r.id,{labelStyle:s.labelStyle,shape:u,labelText:lO(c),noteData:r,rx:l,ry:l,class:o,style:s.style,id:r.id,domId:r.id,tooltip:"",type:"note",padding:Ry().flowchart.padding}),d.info("setNode",{labelStyle:s.labelStyle,shape:u,labelText:c,rx:l,ry:l,style:s.style,id:r.id,type:"note",padding:Ry().flowchart.padding}),!r.class||!(r.class in i))return;const h=n+a,f={classes:"relation",pattern:"dotted"};f.id=`edgeNote${h}`,f.arrowhead="none",d.info(`Note edge: ${JSON.stringify(f)}, ${JSON.stringify(r)}`),f.startLabelRight="",f.endLabelLeft="",f.arrowTypeStart="none",f.arrowTypeEnd="none";let g="fill:none",p="";f.style=g,f.labelStyle=p,f.curve=Yb(uO.curve,Pl),e.setEdge(r.id,r.class,f,h)}))},fO=function(t,e){const n=Ry().flowchart;let i=0;t.forEach((function(a){i++;const r={classes:"relation"};r.pattern=1==a.relation.lineType?"dashed":"solid",r.id="id"+i,"arrow_open"===a.type?r.arrowhead="none":r.arrowhead="normal",d.info(r,a),r.startLabelRight="none"===a.relationTitle1?"":a.relationTitle1,r.endLabelLeft="none"===a.relationTitle2?"":a.relationTitle2,r.arrowTypeStart=gO(a.relation.type1),r.arrowTypeEnd=gO(a.relation.type2);let o="",s="";if(void 0!==a.style){const t=em(a.style);o=t.style,s=t.labelStyle}else o="fill:none";r.style=o,r.labelStyle=s,void 0!==a.interpolate?r.curve=Yb(a.interpolate,Pl):void 0!==t.defaultInterpolate?r.curve=Yb(t.defaultInterpolate,Pl):r.curve=Yb(n.curve,Pl),a.text=a.title,void 0===a.text?void 0!==a.style&&(r.arrowheadStyle="fill: #333"):(r.arrowheadStyle="fill: #333",r.labelpos="c",Ry().flowchart.htmlLabels?(r.labelType="html",r.label='<span class="edgeLabel">'+a.text+"</span>"):(r.labelType="text",r.label=a.text.replace(Qd.lineBreakRegex,"\n"),void 0===a.style&&(r.style=r.style||"stroke: #333; stroke-width: 1.5px;fill:none"),r.labelStyle=r.labelStyle.replace("color:","fill:"))),e.setEdge(a.id1,a.id2,r,i)}))};function gO(t){let e;switch(t){case 0:e="aggregation";break;case 1:e="extension";break;case 2:e="composition";break;case 3:e="dependency";break;case 4:e="lollipop";break;default:e="none"}return e}const pO={setConf:function(t){Object.keys(t).forEach((function(e){uO[e]=t[e]}))},draw:function(t,e,n,i){d.info("Drawing class - ",e);const a=Ry().flowchart,r=Ry().securityLevel;d.info("config:",a);const o=a.nodeSpacing||50,s=a.rankSpacing||50,c=new hA({multigraph:!0,compound:!0}).setGraph({rankdir:i.db.getDirection(),nodesep:o,ranksep:s,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}})),l=i.db.getClasses(),u=i.db.getRelations(),h=i.db.getNotes();let f;d.info(u),dO(l,c,e,i),fO(u,c),hO(h,c,u.length+1,l),"sandbox"===r&&(f=un("#i"+e));const g=un("sandbox"===r?f.nodes()[0].contentDocument.body:"body"),p=g.select(`[id="${e}"]`),b=g.select("#"+e+" g");if(cO(b,c,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",e),vm.insertTitle(p,"classTitleText",a.titleTopMargin,i.db.getDiagramTitle()),Oy(c,p,a.diagramPadding,a.useMaxWidth),!a.htmlLabels){const t="sandbox"===r?f.nodes()[0].contentDocument:document,n=t.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const e of n){const n=e.getBBox(),i=t.createElementNS("http://www.w3.org/2000/svg","rect");i.setAttribute("rx",0),i.setAttribute("ry",0),i.setAttribute("width",n.width),i.setAttribute("height",n.height),e.insertBefore(i,e.firstChild)}}}};var bO=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,2],n=[1,5],i=[6,9,11,23,25,27,29,30,31,51],a=[1,17],r=[1,18],o=[1,19],s=[1,20],c=[1,21],l=[1,22],u=[1,25],d=[1,30],h=[1,31],f=[1,32],g=[1,33],p=[6,9,11,15,20,23,25,27,29,30,31,44,45,46,47,51],b=[1,45],m=[30,31,48,49],y=[4,6,9,11,23,25,27,29,30,31,51],v=[44,45,46,47],w=[22,37],x=[1,65],R=[1,64],_=[22,37,39,41],k={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,entityName:17,relSpec:18,role:19,BLOCK_START:20,attributes:21,BLOCK_STOP:22,title:23,title_value:24,acc_title:25,acc_title_value:26,acc_descr:27,acc_descr_value:28,acc_descr_multiline_value:29,ALPHANUM:30,ENTITY_NAME:31,attribute:32,attributeType:33,attributeName:34,attributeKeyTypeList:35,attributeComment:36,ATTRIBUTE_WORD:37,attributeKeyType:38,COMMA:39,ATTRIBUTE_KEY:40,COMMENT:41,cardinality:42,relType:43,ZERO_OR_ONE:44,ZERO_OR_MORE:45,ONE_OR_MORE:46,ONLY_ONE:47,NON_IDENTIFYING:48,IDENTIFYING:49,WORD:50,open_directive:51,type_directive:52,arg_directive:53,close_directive:54,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",20:"BLOCK_START",22:"BLOCK_STOP",23:"title",24:"title_value",25:"acc_title",26:"acc_title_value",27:"acc_descr",28:"acc_descr_value",29:"acc_descr_multiline_value",30:"ALPHANUM",31:"ENTITY_NAME",37:"ATTRIBUTE_WORD",39:"COMMA",40:"ATTRIBUTE_KEY",41:"COMMENT",44:"ZERO_OR_ONE",45:"ZERO_OR_MORE",46:"ONE_OR_MORE",47:"ONLY_ONE",48:"NON_IDENTIFYING",49:"IDENTIFYING",50:"WORD",51:"open_directive",52:"type_directive",53:"arg_directive",54:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[10,2],[10,2],[10,2],[10,1],[17,1],[17,1],[21,1],[21,2],[32,2],[32,3],[32,3],[32,4],[33,1],[34,1],[35,1],[35,3],[38,1],[36,1],[18,3],[42,1],[42,1],[42,1],[42,1],[43,1],[43,1],[19,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 1:break;case 3:case 7:case 8:this.$=[];break;case 4:r[s-1].push(r[s]),this.$=r[s-1];break;case 5:case 6:case 20:case 43:case 28:case 29:case 32:this.$=r[s];break;case 12:i.addEntity(r[s-4]),i.addEntity(r[s-2]),i.addRelationship(r[s-4],r[s],r[s-2],r[s-3]);break;case 13:i.addEntity(r[s-3]),i.addAttributes(r[s-3],r[s-1]);break;case 14:i.addEntity(r[s-2]);break;case 15:i.addEntity(r[s]);break;case 16:case 17:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 18:case 19:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 21:case 41:case 42:case 33:this.$=r[s].replace(/"/g,"");break;case 22:case 30:this.$=[r[s]];break;case 23:r[s].push(r[s-1]),this.$=r[s];break;case 24:this.$={attributeType:r[s-1],attributeName:r[s]};break;case 25:this.$={attributeType:r[s-2],attributeName:r[s-1],attributeKeyTypeList:r[s]};break;case 26:this.$={attributeType:r[s-2],attributeName:r[s-1],attributeComment:r[s]};break;case 27:this.$={attributeType:r[s-3],attributeName:r[s-2],attributeKeyTypeList:r[s-1],attributeComment:r[s]};break;case 31:r[s-2].push(r[s]),this.$=r[s-2];break;case 34:this.$={cardA:r[s],relType:r[s-1],cardB:r[s-2]};break;case 35:this.$=i.Cardinality.ZERO_OR_ONE;break;case 36:this.$=i.Cardinality.ZERO_OR_MORE;break;case 37:this.$=i.Cardinality.ONE_OR_MORE;break;case 38:this.$=i.Cardinality.ONLY_ONE;break;case 39:this.$=i.Identification.NON_IDENTIFYING;break;case 40:this.$=i.Identification.IDENTIFYING;break;case 44:i.parseDirective("%%{","open_directive");break;case 45:i.parseDirective(r[s],"type_directive");break;case 46:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 47:i.parseDirective("}%%","close_directive","er")}},table:[{3:1,4:e,7:3,12:4,51:n},{1:[3]},t(i,[2,3],{5:6}),{3:7,4:e,7:3,12:4,51:n},{13:8,52:[1,9]},{52:[2,44]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,23:a,25:r,27:o,29:s,30:c,31:l,51:n},{1:[2,2]},{14:23,15:[1,24],54:u},t([15,54],[2,45]),t(i,[2,8],{1:[2,1]}),t(i,[2,4]),{7:15,10:26,12:4,17:16,23:a,25:r,27:o,29:s,30:c,31:l,51:n},t(i,[2,6]),t(i,[2,7]),t(i,[2,11]),t(i,[2,15],{18:27,42:29,20:[1,28],44:d,45:h,46:f,47:g}),{24:[1,34]},{26:[1,35]},{28:[1,36]},t(i,[2,19]),t(p,[2,20]),t(p,[2,21]),{11:[1,37]},{16:38,53:[1,39]},{11:[2,47]},t(i,[2,5]),{17:40,30:c,31:l},{21:41,22:[1,42],32:43,33:44,37:b},{43:46,48:[1,47],49:[1,48]},t(m,[2,35]),t(m,[2,36]),t(m,[2,37]),t(m,[2,38]),t(i,[2,16]),t(i,[2,17]),t(i,[2,18]),t(y,[2,9]),{14:49,54:u},{54:[2,46]},{15:[1,50]},{22:[1,51]},t(i,[2,14]),{21:52,22:[2,22],32:43,33:44,37:b},{34:53,37:[1,54]},{37:[2,28]},{42:55,44:d,45:h,46:f,47:g},t(v,[2,39]),t(v,[2,40]),{11:[1,56]},{19:57,30:[1,60],31:[1,59],50:[1,58]},t(i,[2,13]),{22:[2,23]},t(w,[2,24],{35:61,36:62,38:63,40:x,41:R}),t([22,37,40,41],[2,29]),t([30,31],[2,34]),t(y,[2,10]),t(i,[2,12]),t(i,[2,41]),t(i,[2,42]),t(i,[2,43]),t(w,[2,25],{36:66,39:[1,67],41:R}),t(w,[2,26]),t(_,[2,30]),t(w,[2,33]),t(_,[2,32]),t(w,[2,27]),{38:68,40:x},t(_,[2,31])],defaultActions:{5:[2,44],7:[2,2],25:[2,47],39:[2,46],45:[2,28],52:[2,23]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},E={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("acc_title"),25;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),27;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 this.begin("open_directive"),51;case 8:return this.begin("type_directive"),52;case 9:return this.popState(),this.begin("arg_directive"),15;case 10:return this.popState(),this.popState(),54;case 11:return 53;case 12:case 13:case 15:case 22:case 27:break;case 14:return 11;case 16:return 9;case 17:return 31;case 18:return 50;case 19:return 4;case 20:return this.begin("block"),20;case 21:return 39;case 23:return 40;case 24:case 25:return 37;case 26:return 41;case 28:return this.popState(),22;case 29:case 58:return e.yytext[0];case 30:case 34:case 35:case 48:return 44;case 31:case 32:case 33:case 41:case 43:case 50:return 46;case 36:case 37:case 38:case 39:case 40:case 42:case 49:return 45;case 44:case 45:case 46:case 47:return 47;case 51:case 54:case 55:case 56:return 48;case 52:case 53:return 49;case 57:return 30;case 59:return 6}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/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,/^(?: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,/^(?:\.\.)/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},open_directive:{rules:[8],inclusive:!1},type_directive:{rules:[9,10],inclusive:!1},arg_directive:{rules:[10,11],inclusive:!1},block:{rules:[21,22,23,24,25,26,27,28,29],inclusive:!1},INITIAL:{rules:[0,2,4,7,12,13,14,15,16,17,18,19,20,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],inclusive:!0}}};function C(){this.yy={}}return k.lexer=E,C.prototype=k,k.Parser=C,new C}();bO.parser=bO;const mO=bO,yO=t=>null!==t.match(/^\s*erDiagram/);let vO={},wO=[];const xO=function(t){return void 0===vO[t]&&(vO[t]={attributes:[]},d.info("Added new entity :",t)),vO[t]},RO={Cardinality:{ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE"},Identification:{NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().er,addEntity:xO,addAttributes:function(t,e){let n,i=xO(t);for(n=e.length-1;n>=0;n--)i.attributes.push(e[n]),d.debug("Added attribute ",e[n].attributeName)},getEntities:()=>vO,addRelationship:function(t,e,n,i){let a={entityA:t,roleA:e,entityB:n,relSpec:i};wO.push(a),d.debug("Added new relationship :",a)},getRelationships:()=>wO,clear:function(){vO={},wO=[],Qy()},setAccTitle:tv,getAccTitle:ev,setAccDescription:nv,getAccDescription:iv,setDiagramTitle:av,getDiagramTitle:rv},_O={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"},kO={ERMarkers:_O,insertMarkers:function(t,e){let n;t.append("defs").append("marker").attr("id",_O.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",_O.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"),n=t.append("defs").append("marker").attr("id",_O.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),n.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18"),n=t.append("defs").append("marker").attr("id",_O.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),n.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,0 L21,18"),t.append("defs").append("marker").attr("id",_O.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",_O.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"),n=t.append("defs").append("marker").attr("id",_O.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),n.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),n=t.append("defs").append("marker").attr("id",_O.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),n.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")}},EO=/^(?:[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 CO(t){return"string"==typeof t&&EO.test(t)}const SO=[];for(let t=0;t<256;++t)SO.push((t+256).toString(16).slice(1));function TO(t,e=0){return(SO[t[e+0]]+SO[t[e+1]]+SO[t[e+2]]+SO[t[e+3]]+"-"+SO[t[e+4]]+SO[t[e+5]]+"-"+SO[t[e+6]]+SO[t[e+7]]+"-"+SO[t[e+8]]+SO[t[e+9]]+"-"+SO[t[e+10]]+SO[t[e+11]]+SO[t[e+12]]+SO[t[e+13]]+SO[t[e+14]]+SO[t[e+15]]).toLowerCase()}function AO(t){if(!CO(t))throw TypeError("Invalid UUID");let e;const n=new Uint8Array(16);return n[0]=(e=parseInt(t.slice(0,8),16))>>>24,n[1]=e>>>16&255,n[2]=e>>>8&255,n[3]=255&e,n[4]=(e=parseInt(t.slice(9,13),16))>>>8,n[5]=255&e,n[6]=(e=parseInt(t.slice(14,18),16))>>>8,n[7]=255&e,n[8]=(e=parseInt(t.slice(19,23),16))>>>8,n[9]=255&e,n[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,n[11]=e/4294967296&255,n[12]=e>>>24&255,n[13]=e>>>16&255,n[14]=e>>>8&255,n[15]=255&e,n}function DO(t){t=unescape(encodeURIComponent(t));const e=[];for(let n=0;n<t.length;++n)e.push(t.charCodeAt(n));return e}const IO="6ba7b810-9dad-11d1-80b4-00c04fd430c8",LO="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function OO(t,e,n){function i(t,i,a,r){var o;if("string"==typeof t&&(t=DO(t)),"string"==typeof i&&(i=AO(i)),16!==(null===(o=i)||void 0===o?void 0:o.length))throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let s=new Uint8Array(16+t.length);if(s.set(i),s.set(t,i.length),s=n(s),s[6]=15&s[6]|e,s[8]=63&s[8]|128,a){r=r||0;for(let t=0;t<16;++t)a[r+t]=s[t];return a}return TO(s)}try{i.name=t}catch{}return i.DNS=IO,i.URL=LO,i}function MO(t,e,n,i){switch(t){case 0:return e&n^~e&i;case 1:case 3:return e^n^i;case 2:return e&n^e&i^n&i}}function NO(t,e){return t<<e|t>>>32-e}function BO(t){const e=[1518500249,1859775393,2400959708,3395469782],n=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof t){const e=unescape(encodeURIComponent(t));t=[];for(let n=0;n<e.length;++n)t.push(e.charCodeAt(n))}else Array.isArray(t)||(t=Array.prototype.slice.call(t));t.push(128);const i=t.length/4+2,a=Math.ceil(i/16),r=new Array(a);for(let o=0;o<a;++o){const e=new Uint32Array(16);for(let n=0;n<16;++n)e[n]=t[64*o+4*n]<<24|t[64*o+4*n+1]<<16|t[64*o+4*n+2]<<8|t[64*o+4*n+3];r[o]=e}r[a-1][14]=8*(t.length-1)/Math.pow(2,32),r[a-1][14]=Math.floor(r[a-1][14]),r[a-1][15]=8*(t.length-1)&4294967295;for(let o=0;o<a;++o){const t=new Uint32Array(80);for(let e=0;e<16;++e)t[e]=r[o][e];for(let e=16;e<80;++e)t[e]=NO(t[e-3]^t[e-8]^t[e-14]^t[e-16],1);let i=n[0],a=n[1],s=n[2],c=n[3],l=n[4];for(let n=0;n<80;++n){const r=Math.floor(n/20),o=NO(i,5)+MO(r,a,s,c)+l+e[r]+t[n]>>>0;l=c,c=s,s=NO(a,30)>>>0,a=i,i=o}n[0]=n[0]+i>>>0,n[1]=n[1]+a>>>0,n[2]=n[2]+s>>>0,n[3]=n[3]+c>>>0,n[4]=n[4]+l>>>0}return[n[0]>>24&255,n[0]>>16&255,n[0]>>8&255,255&n[0],n[1]>>24&255,n[1]>>16&255,n[1]>>8&255,255&n[1],n[2]>>24&255,n[2]>>16&255,n[2]>>8&255,255&n[2],n[3]>>24&255,n[3]>>16&255,n[3]>>8&255,255&n[3],n[4]>>24&255,n[4]>>16&255,n[4]>>8&255,255&n[4]]}const PO=OO("v5",80,BO),FO=/[^\dA-Za-z](\W)*/g;let jO={},$O=new Map;const zO=(t,e,n)=>{const i=jO.entityPadding/3,a=jO.entityPadding/3,r=.85*jO.fontSize,o=e.node().getBBox(),s=[];let c=!1,l=!1,u=0,d=0,h=0,f=0,g=o.height+2*i,p=1;n.forEach((t=>{void 0!==t.attributeKeyTypeList&&t.attributeKeyTypeList.length>0&&(c=!0),void 0!==t.attributeComment&&(l=!0)})),n.forEach((n=>{const a=`${e.node().id}-attr-${p}`;let o=0;const b=Jd(n.attributeType),m=t.append("text").classed("er entityLabel",!0).attr("id",`${a}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Ry().fontFamily).style("font-size",r+"px").text(b),y=t.append("text").classed("er entityLabel",!0).attr("id",`${a}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Ry().fontFamily).style("font-size",r+"px").text(n.attributeName),v={};v.tn=m,v.nn=y;const w=m.node().getBBox(),x=y.node().getBBox();if(u=Math.max(u,w.width),d=Math.max(d,x.width),o=Math.max(w.height,x.height),c){const e=void 0!==n.attributeKeyTypeList?n.attributeKeyTypeList.join(","):"",i=t.append("text").classed("er entityLabel",!0).attr("id",`${a}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Ry().fontFamily).style("font-size",r+"px").text(e);v.kn=i;const s=i.node().getBBox();h=Math.max(h,s.width),o=Math.max(o,s.height)}if(l){const e=t.append("text").classed("er entityLabel",!0).attr("id",`${a}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Ry().fontFamily).style("font-size",r+"px").text(n.attributeComment||"");v.cn=e;const i=e.node().getBBox();f=Math.max(f,i.width),o=Math.max(o,i.height)}v.height=o,s.push(v),g+=o+2*i,p+=1}));let b=4;c&&(b+=2),l&&(b+=2);const m=u+d+h+f,y={width:Math.max(jO.minEntityWidth,Math.max(o.width+2*jO.entityPadding,m+a*b)),height:n.length>0?g:Math.max(jO.minEntityHeight,o.height+2*jO.entityPadding)};if(n.length>0){const n=Math.max(0,(y.width-m-a*b)/(b/2));e.attr("transform","translate("+y.width/2+","+(i+o.height/2)+")");let r=o.height+2*i,g="attributeBoxOdd";s.forEach((e=>{const o=r+i+e.height/2;e.tn.attr("transform","translate("+a+","+o+")");const s=t.insert("rect","#"+e.tn.node().id).classed(`er ${g}`,!0).attr("x",0).attr("y",r).attr("width",u+2*a+n).attr("height",e.height+2*i),p=parseFloat(s.attr("x"))+parseFloat(s.attr("width"));e.nn.attr("transform","translate("+(p+a)+","+o+")");const b=t.insert("rect","#"+e.nn.node().id).classed(`er ${g}`,!0).attr("x",p).attr("y",r).attr("width",d+2*a+n).attr("height",e.height+2*i);let m=parseFloat(b.attr("x"))+parseFloat(b.attr("width"));if(c){e.kn.attr("transform","translate("+(m+a)+","+o+")");const s=t.insert("rect","#"+e.kn.node().id).classed(`er ${g}`,!0).attr("x",m).attr("y",r).attr("width",h+2*a+n).attr("height",e.height+2*i);m=parseFloat(s.attr("x"))+parseFloat(s.attr("width"))}l&&(e.cn.attr("transform","translate("+(m+a)+","+o+")"),t.insert("rect","#"+e.cn.node().id).classed(`er ${g}`,"true").attr("x",m).attr("y",r).attr("width",f+2*a+n).attr("height",e.height+2*i)),r+=e.height+2*i,g="attributeBoxOdd"===g?"attributeBoxEven":"attributeBoxOdd"}))}else y.height=Math.max(jO.minEntityHeight,g),e.attr("transform","translate("+y.width/2+","+y.height/2+")");return y},HO=function(t,e,n){let i;return Object.keys(e).forEach((function(a){const r=ZO(a,"entity");$O.set(a,r);const o=t.append("g").attr("id",r);i=void 0===i?r:i;const s="text-"+r,c=o.append("text").classed("er entityLabel",!0).attr("id",s).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",Ry().fontFamily).style("font-size",jO.fontSize+"px").text(a),{width:l,height:u}=zO(o,c,e[a].attributes),d=o.insert("rect","#"+s).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",l).attr("height",u).node().getBBox();n.setNode(r,{width:d.width,height:d.height,shape:"rect",id:r})})),i},UO=function(t,e){e.nodes().forEach((function(n){void 0!==n&&void 0!==e.node(n)&&t.select("#"+n).attr("transform","translate("+(e.node(n).x-e.node(n).width/2)+","+(e.node(n).y-e.node(n).height/2)+" )")}))},VO=function(t){return(t.entityA+t.roleA+t.entityB).replace(/\s/g,"")},qO=function(t,e){return t.forEach((function(t){e.setEdge($O.get(t.entityA),$O.get(t.entityB),{relationship:t},VO(t))})),t};let WO=0;const YO=function(t,e,n,i,a){WO++;const r=n.edge($O.get(e.entityA),$O.get(e.entityB),VO(e)),o=$l().x((function(t){return t.x})).y((function(t){return t.y})).curve(Kl),s=t.insert("path","#"+i).classed("er relationshipLine",!0).attr("d",o(r.points)).style("stroke",jO.stroke).style("fill","none");e.relSpec.relType===a.db.Identification.NON_IDENTIFYING&&s.attr("stroke-dasharray","8,8");let c="";switch(jO.arrowMarkerAbsolute&&(c=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,c=c.replace(/\(/g,"\\("),c=c.replace(/\)/g,"\\)")),e.relSpec.cardA){case a.db.Cardinality.ZERO_OR_ONE:s.attr("marker-end","url("+c+"#"+kO.ERMarkers.ZERO_OR_ONE_END+")");break;case a.db.Cardinality.ZERO_OR_MORE:s.attr("marker-end","url("+c+"#"+kO.ERMarkers.ZERO_OR_MORE_END+")");break;case a.db.Cardinality.ONE_OR_MORE:s.attr("marker-end","url("+c+"#"+kO.ERMarkers.ONE_OR_MORE_END+")");break;case a.db.Cardinality.ONLY_ONE:s.attr("marker-end","url("+c+"#"+kO.ERMarkers.ONLY_ONE_END+")")}switch(e.relSpec.cardB){case a.db.Cardinality.ZERO_OR_ONE:s.attr("marker-start","url("+c+"#"+kO.ERMarkers.ZERO_OR_ONE_START+")");break;case a.db.Cardinality.ZERO_OR_MORE:s.attr("marker-start","url("+c+"#"+kO.ERMarkers.ZERO_OR_MORE_START+")");break;case a.db.Cardinality.ONE_OR_MORE:s.attr("marker-start","url("+c+"#"+kO.ERMarkers.ONE_OR_MORE_START+")");break;case a.db.Cardinality.ONLY_ONE:s.attr("marker-start","url("+c+"#"+kO.ERMarkers.ONLY_ONE_START+")")}const l=s.node().getTotalLength(),u=s.node().getPointAtLength(.5*l),d="rel"+WO,h=t.append("text").classed("er relationshipLabel",!0).attr("id",d).attr("x",u.x).attr("y",u.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",Ry().fontFamily).style("font-size",jO.fontSize+"px").text(e.roleA).node().getBBox();t.insert("rect","#"+d).classed("er relationshipLabelBox",!0).attr("x",u.x-h.width/2).attr("y",u.y-h.height/2).attr("width",h.width).attr("height",h.height)},GO="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";function ZO(t="",e=""){const n=t.replace(FO,"");return`${KO(e)}${KO(n)}${PO(t,GO)}`}function KO(t=""){return t.length>0?`${t}-`:""}const XO={setConf:function(t){const e=Object.keys(t);for(const n of e)jO[n]=t[n]},draw:function(t,e,n,i){jO=Ry().er,d.info("Drawing ER diagram");const a=Ry().securityLevel;let r;"sandbox"===a&&(r=un("#i"+e));const o=un("sandbox"===a?r.nodes()[0].contentDocument.body:"body").select(`[id='${e}']`);let s;kO.insertMarkers(o,jO),s=new hA({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:jO.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel((function(){return{}}));const c=HO(o,i.db.getEntities(),s),l=qO(i.db.getRelationships(),s);yI(s),UO(o,s),l.forEach((function(t){YO(o,t,s,c,i)}));const u=jO.diagramPadding;vm.insertTitle(o,"entityTitleText",jO.titleTopMargin,i.db.getDiagramTitle());const h=o.node().getBBox(),f=h.width+2*u,g=h.height+2*u;Ly(o,g,f,jO.useMaxWidth),o.attr("viewBox",`${h.x-u} ${h.y-u} ${f} ${g}`)}};var JO=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,9],n=[1,7],i=[1,6],a=[1,8],r=[1,20,21,22,23,38,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],o=[2,10],s=[1,20],c=[1,21],l=[1,22],u=[1,23],d=[1,30],h=[1,32],f=[1,33],g=[1,34],p=[1,62],b=[1,48],m=[1,52],y=[1,36],v=[1,37],w=[1,38],x=[1,39],R=[1,40],_=[1,56],k=[1,63],E=[1,51],C=[1,53],S=[1,55],T=[1,59],A=[1,60],D=[1,41],I=[1,42],L=[1,43],O=[1,44],M=[1,61],N=[1,50],B=[1,54],P=[1,57],F=[1,58],j=[1,49],$=[1,66],z=[1,71],H=[1,20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],U=[1,75],V=[1,74],q=[1,76],W=[20,21,23,81,82],Y=[1,99],G=[1,104],Z=[1,107],K=[1,108],X=[1,101],J=[1,106],Q=[1,109],tt=[1,102],et=[1,114],nt=[1,113],it=[1,103],at=[1,105],rt=[1,110],ot=[1,111],st=[1,112],ct=[1,115],lt=[20,21,22,23,81,82],ut=[20,21,22,23,53,81,82],dt=[20,21,22,23,40,52,53,55,57,59,61,63,65,66,67,69,71,73,74,76,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],ht=[20,21,23],ft=[20,21,23,52,66,67,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],gt=[1,12,20,21,22,23,24,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],pt=[52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],bt=[1,149],mt=[1,157],yt=[1,158],vt=[1,159],wt=[1,160],xt=[1,144],Rt=[1,145],_t=[1,141],kt=[1,152],Et=[1,153],Ct=[1,154],St=[1,155],Tt=[1,156],At=[1,161],Dt=[1,162],It=[1,147],Lt=[1,150],Ot=[1,146],Mt=[1,143],Nt=[20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],Bt=[1,165],Pt=[20,21,22,23,26,52,66,67,91,105,106,109,111,112,122,123,124,125,126,127],Ft=[20,21,22,23,24,26,38,40,41,42,52,56,58,60,62,64,66,67,68,70,72,73,75,77,81,82,86,87,88,89,90,91,92,95,105,106,109,111,112,113,114,122,123,124,125,126,127],jt=[12,21,22,24],$t=[22,106],zt=[1,250],Ht=[1,245],Ut=[1,246],Vt=[1,254],qt=[1,251],Wt=[1,248],Yt=[1,247],Gt=[1,249],Zt=[1,252],Kt=[1,253],Xt=[1,255],Jt=[1,273],Qt=[20,21,23,106],te=[20,21,22,23,66,67,86,102,105,106,109,110,111,112,113],ee={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,directive:5,openDirective:6,typeDirective:7,closeDirective:8,separator:9,":":10,argDirective:11,open_directive:12,type_directive:13,arg_directive:14,close_directive:15,graphConfig:16,document:17,line:18,statement:19,SEMI:20,NEWLINE:21,SPACE:22,EOF:23,GRAPH:24,NODIR:25,DIR:26,FirstStmtSeperator:27,ending:28,endToken:29,spaceList:30,spaceListNewline:31,verticeStatement:32,styleStatement:33,linkStyleStatement:34,classDefStatement:35,classStatement:36,clickStatement:37,subgraph:38,text:39,SQS:40,SQE:41,end:42,direction:43,acc_title:44,acc_title_value:45,acc_descr:46,acc_descr_value:47,acc_descr_multiline_value:48,link:49,node:50,vertex:51,AMP:52,STYLE_SEPARATOR:53,idString:54,DOUBLECIRCLESTART:55,DOUBLECIRCLEEND:56,PS:57,PE:58,"(-":59,"-)":60,STADIUMSTART:61,STADIUMEND:62,SUBROUTINESTART:63,SUBROUTINEEND:64,VERTEX_WITH_PROPS_START:65,ALPHA:66,COLON:67,PIPE:68,CYLINDERSTART:69,CYLINDEREND:70,DIAMOND_START:71,DIAMOND_STOP:72,TAGEND:73,TRAPSTART:74,TRAPEND:75,INVTRAPSTART:76,INVTRAPEND:77,linkStatement:78,arrowText:79,TESTSTR:80,START_LINK:81,LINK:82,textToken:83,STR:84,keywords:85,STYLE:86,LINKSTYLE:87,CLASSDEF:88,CLASS:89,CLICK:90,DOWN:91,UP:92,textNoTags:93,textNoTagsToken:94,DEFAULT:95,stylesOpt:96,alphaNum:97,CALLBACKNAME:98,CALLBACKARGS:99,HREF:100,LINK_TARGET:101,HEX:102,numList:103,INTERPOLATE:104,NUM:105,COMMA:106,style:107,styleComponent:108,MINUS:109,UNIT:110,BRKT:111,DOT:112,PCT:113,TAGSTART:114,alphaNumToken:115,idStringToken:116,alphaNumStatement:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,PUNCTUATION:122,UNICODE_TEXT:123,PLUS:124,EQUALS:125,MULT:126,UNDERSCORE:127,graphCodeTokens:128,ARROW_CROSS:129,ARROW_POINT:130,ARROW_CIRCLE:131,ARROW_OPEN:132,QUOTE:133,$accept:0,$end:1},terminals_:{2:"error",10:":",12:"open_directive",13:"type_directive",14:"arg_directive",15:"close_directive",20:"SEMI",21:"NEWLINE",22:"SPACE",23:"EOF",24:"GRAPH",25:"NODIR",26:"DIR",38:"subgraph",40:"SQS",41:"SQE",42:"end",44:"acc_title",45:"acc_title_value",46:"acc_descr",47:"acc_descr_value",48:"acc_descr_multiline_value",52:"AMP",53:"STYLE_SEPARATOR",55:"DOUBLECIRCLESTART",56:"DOUBLECIRCLEEND",57:"PS",58:"PE",59:"(-",60:"-)",61:"STADIUMSTART",62:"STADIUMEND",63:"SUBROUTINESTART",64:"SUBROUTINEEND",65:"VERTEX_WITH_PROPS_START",66:"ALPHA",67:"COLON",68:"PIPE",69:"CYLINDERSTART",70:"CYLINDEREND",71:"DIAMOND_START",72:"DIAMOND_STOP",73:"TAGEND",74:"TRAPSTART",75:"TRAPEND",76:"INVTRAPSTART",77:"INVTRAPEND",80:"TESTSTR",81:"START_LINK",82:"LINK",84:"STR",86:"STYLE",87:"LINKSTYLE",88:"CLASSDEF",89:"CLASS",90:"CLICK",91:"DOWN",92:"UP",95:"DEFAULT",98:"CALLBACKNAME",99:"CALLBACKARGS",100:"HREF",101:"LINK_TARGET",102:"HEX",104:"INTERPOLATE",105:"NUM",106:"COMMA",109:"MINUS",110:"UNIT",111:"BRKT",112:"DOT",113:"PCT",114:"TAGSTART",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr",122:"PUNCTUATION",123:"UNICODE_TEXT",124:"PLUS",125:"EQUALS",126:"MULT",127:"UNDERSCORE",129:"ARROW_CROSS",130:"ARROW_POINT",131:"ARROW_CIRCLE",132:"ARROW_OPEN",133:"QUOTE"},productions_:[0,[3,1],[3,2],[5,4],[5,6],[6,1],[7,1],[11,1],[8,1],[4,2],[17,0],[17,2],[18,1],[18,1],[18,1],[18,1],[18,1],[16,2],[16,2],[16,2],[16,3],[28,2],[28,1],[29,1],[29,1],[29,1],[27,1],[27,1],[27,2],[31,2],[31,2],[31,1],[31,1],[30,2],[30,1],[19,2],[19,2],[19,2],[19,2],[19,2],[19,2],[19,9],[19,6],[19,4],[19,1],[19,2],[19,2],[19,1],[9,1],[9,1],[9,1],[32,3],[32,4],[32,2],[32,1],[50,1],[50,5],[50,3],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,8],[51,4],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,4],[51,4],[51,1],[49,2],[49,3],[49,3],[49,1],[49,3],[78,1],[79,3],[39,1],[39,2],[39,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[93,1],[93,2],[35,5],[35,5],[36,5],[37,2],[37,4],[37,3],[37,5],[37,2],[37,4],[37,4],[37,6],[37,2],[37,4],[37,2],[37,4],[37,4],[37,6],[33,5],[33,5],[34,5],[34,5],[34,9],[34,9],[34,7],[34,7],[103,1],[103,3],[96,1],[96,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[94,1],[94,1],[94,1],[94,1],[54,1],[54,2],[97,1],[97,2],[117,1],[117,1],[117,1],[117,1],[43,1],[43,1],[43,1],[43,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 5:i.parseDirective("%%{","open_directive");break;case 6:i.parseDirective(r[s],"type_directive");break;case 7:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 8:i.parseDirective("}%%","close_directive","flowchart");break;case 10:case 36:case 37:case 38:case 39:case 40:this.$=[];break;case 11:(!Array.isArray(r[s])||r[s].length>0)&&r[s-1].push(r[s]),this.$=r[s-1];break;case 12:case 82:case 84:case 96:case 152:case 154:case 155:case 78:case 150:this.$=r[s];break;case 19:i.setDirection("TB"),this.$="TB";break;case 20:i.setDirection(r[s-1]),this.$=r[s-1];break;case 35:this.$=r[s-1].nodes;break;case 41:this.$=i.addSubGraph(r[s-6],r[s-1],r[s-4]);break;case 42:this.$=i.addSubGraph(r[s-3],r[s-1],r[s-3]);break;case 43:this.$=i.addSubGraph(void 0,r[s-1],void 0);break;case 45:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 46:case 47:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 51:i.addLink(r[s-2].stmt,r[s],r[s-1]),this.$={stmt:r[s],nodes:r[s].concat(r[s-2].nodes)};break;case 52:i.addLink(r[s-3].stmt,r[s-1],r[s-2]),this.$={stmt:r[s-1],nodes:r[s-1].concat(r[s-3].nodes)};break;case 53:this.$={stmt:r[s-1],nodes:r[s-1]};break;case 54:this.$={stmt:r[s],nodes:r[s]};break;case 55:case 123:case 125:this.$=[r[s]];break;case 56:this.$=r[s-4].concat(r[s]);break;case 57:this.$=[r[s-2]],i.setClass(r[s-2],r[s]);break;case 58:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"square");break;case 59:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"doublecircle");break;case 60:this.$=r[s-5],i.addVertex(r[s-5],r[s-2],"circle");break;case 61:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"ellipse");break;case 62:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"stadium");break;case 63:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"subroutine");break;case 64:this.$=r[s-7],i.addVertex(r[s-7],r[s-1],"rect",void 0,void 0,void 0,Object.fromEntries([[r[s-5],r[s-3]]]));break;case 65:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"cylinder");break;case 66:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"round");break;case 67:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"diamond");break;case 68:this.$=r[s-5],i.addVertex(r[s-5],r[s-2],"hexagon");break;case 69:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"odd");break;case 70:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"trapezoid");break;case 71:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"inv_trapezoid");break;case 72:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"lean_right");break;case 73:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"lean_left");break;case 74:this.$=r[s],i.addVertex(r[s]);break;case 75:r[s-1].text=r[s],this.$=r[s-1];break;case 76:case 77:r[s-2].text=r[s-1],this.$=r[s-2];break;case 79:var c=i.destructLink(r[s],r[s-2]);this.$={type:c.type,stroke:c.stroke,length:c.length,text:r[s-1]};break;case 80:c=i.destructLink(r[s]),this.$={type:c.type,stroke:c.stroke,length:c.length};break;case 81:this.$=r[s-1];break;case 83:case 97:case 153:case 151:this.$=r[s-1]+""+r[s];break;case 98:case 99:this.$=r[s-4],i.addClass(r[s-2],r[s]);break;case 100:this.$=r[s-4],i.setClass(r[s-2],r[s]);break;case 101:case 109:this.$=r[s-1],i.setClickEvent(r[s-1],r[s]);break;case 102:case 110:this.$=r[s-3],i.setClickEvent(r[s-3],r[s-2]),i.setTooltip(r[s-3],r[s]);break;case 103:this.$=r[s-2],i.setClickEvent(r[s-2],r[s-1],r[s]);break;case 104:this.$=r[s-4],i.setClickEvent(r[s-4],r[s-3],r[s-2]),i.setTooltip(r[s-4],r[s]);break;case 105:case 111:this.$=r[s-1],i.setLink(r[s-1],r[s]);break;case 106:case 112:this.$=r[s-3],i.setLink(r[s-3],r[s-2]),i.setTooltip(r[s-3],r[s]);break;case 107:case 113:this.$=r[s-3],i.setLink(r[s-3],r[s-2],r[s]);break;case 108:case 114:this.$=r[s-5],i.setLink(r[s-5],r[s-4],r[s]),i.setTooltip(r[s-5],r[s-2]);break;case 115:this.$=r[s-4],i.addVertex(r[s-2],void 0,void 0,r[s]);break;case 116:case 118:this.$=r[s-4],i.updateLink(r[s-2],r[s]);break;case 117:this.$=r[s-4],i.updateLink([r[s-2]],r[s]);break;case 119:this.$=r[s-8],i.updateLinkInterpolate([r[s-6]],r[s-2]),i.updateLink([r[s-6]],r[s]);break;case 120:this.$=r[s-8],i.updateLinkInterpolate(r[s-6],r[s-2]),i.updateLink(r[s-6],r[s]);break;case 121:this.$=r[s-6],i.updateLinkInterpolate([r[s-4]],r[s]);break;case 122:this.$=r[s-6],i.updateLinkInterpolate(r[s-4],r[s]);break;case 124:case 126:r[s-2].push(r[s]),this.$=r[s-2];break;case 128:this.$=r[s-1]+r[s];break;case 156:this.$="v";break;case 157:this.$="-";break;case 158:this.$={stmt:"dir",value:"TB"};break;case 159:this.$={stmt:"dir",value:"BT"};break;case 160:this.$={stmt:"dir",value:"RL"};break;case 161:this.$={stmt:"dir",value:"LR"}}},table:[{3:1,4:2,5:3,6:5,12:e,16:4,21:n,22:i,24:a},{1:[3]},{1:[2,1]},{3:10,4:2,5:3,6:5,12:e,16:4,21:n,22:i,24:a},t(r,o,{17:11}),{7:12,13:[1,13]},{16:14,21:n,22:i,24:a},{16:15,21:n,22:i,24:a},{25:[1,16],26:[1,17]},{13:[2,5]},{1:[2,2]},{1:[2,9],18:18,19:19,20:s,21:c,22:l,23:u,32:24,33:25,34:26,35:27,36:28,37:29,38:d,43:31,44:h,46:f,48:g,50:35,51:45,52:p,54:46,66:b,67:m,86:y,87:v,88:w,89:x,90:R,91:_,95:k,105:E,106:C,109:S,111:T,112:A,116:47,118:D,119:I,120:L,121:O,122:M,123:N,124:B,125:P,126:F,127:j},{8:64,10:[1,65],15:$},t([10,15],[2,6]),t(r,[2,17]),t(r,[2,18]),t(r,[2,19]),{20:[1,68],21:[1,69],22:z,27:67,30:70},t(H,[2,11]),t(H,[2,12]),t(H,[2,13]),t(H,[2,14]),t(H,[2,15]),t(H,[2,16]),{9:72,20:U,21:V,23:q,49:73,78:77,81:[1,78],82:[1,79]},{9:80,20:U,21:V,23:q},{9:81,20:U,21:V,23:q},{9:82,20:U,21:V,23:q},{9:83,20:U,21:V,23:q},{9:84,20:U,21:V,23:q},{9:86,20:U,21:V,22:[1,85],23:q},t(H,[2,44]),{45:[1,87]},{47:[1,88]},t(H,[2,47]),t(W,[2,54],{30:89,22:z}),{22:[1,90]},{22:[1,91]},{22:[1,92]},{22:[1,93]},{26:Y,52:G,66:Z,67:K,84:[1,97],91:X,97:96,98:[1,94],100:[1,95],105:J,106:Q,109:tt,111:et,112:nt,115:100,117:98,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(H,[2,158]),t(H,[2,159]),t(H,[2,160]),t(H,[2,161]),t(lt,[2,55],{53:[1,116]}),t(ut,[2,74],{116:129,40:[1,117],52:p,55:[1,118],57:[1,119],59:[1,120],61:[1,121],63:[1,122],65:[1,123],66:b,67:m,69:[1,124],71:[1,125],73:[1,126],74:[1,127],76:[1,128],91:_,95:k,105:E,106:C,109:S,111:T,112:A,122:M,123:N,124:B,125:P,126:F,127:j}),t(dt,[2,150]),t(dt,[2,175]),t(dt,[2,176]),t(dt,[2,177]),t(dt,[2,178]),t(dt,[2,179]),t(dt,[2,180]),t(dt,[2,181]),t(dt,[2,182]),t(dt,[2,183]),t(dt,[2,184]),t(dt,[2,185]),t(dt,[2,186]),t(dt,[2,187]),t(dt,[2,188]),t(dt,[2,189]),t(dt,[2,190]),{9:130,20:U,21:V,23:q},{11:131,14:[1,132]},t(ht,[2,8]),t(r,[2,20]),t(r,[2,26]),t(r,[2,27]),{21:[1,133]},t(ft,[2,34],{30:134,22:z}),t(H,[2,35]),{50:135,51:45,52:p,54:46,66:b,67:m,91:_,95:k,105:E,106:C,109:S,111:T,112:A,116:47,122:M,123:N,124:B,125:P,126:F,127:j},t(gt,[2,48]),t(gt,[2,49]),t(gt,[2,50]),t(pt,[2,78],{79:136,68:[1,138],80:[1,137]}),{22:bt,24:mt,26:yt,38:vt,39:139,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t([52,66,67,68,80,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,80]),t(H,[2,36]),t(H,[2,37]),t(H,[2,38]),t(H,[2,39]),t(H,[2,40]),{22:bt,24:mt,26:yt,38:vt,39:163,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(Nt,o,{17:164}),t(H,[2,45]),t(H,[2,46]),t(W,[2,53],{52:Bt}),{26:Y,52:G,66:Z,67:K,91:X,97:166,102:[1,167],105:J,106:Q,109:tt,111:et,112:nt,115:100,117:98,122:it,123:at,124:rt,125:ot,126:st,127:ct},{95:[1,168],103:169,105:[1,170]},{26:Y,52:G,66:Z,67:K,91:X,95:[1,171],97:172,105:J,106:Q,109:tt,111:et,112:nt,115:100,117:98,122:it,123:at,124:rt,125:ot,126:st,127:ct},{26:Y,52:G,66:Z,67:K,91:X,97:173,105:J,106:Q,109:tt,111:et,112:nt,115:100,117:98,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(ht,[2,101],{22:[1,174],99:[1,175]}),t(ht,[2,105],{22:[1,176]}),t(ht,[2,109],{115:100,117:178,22:[1,177],26:Y,52:G,66:Z,67:K,91:X,105:J,106:Q,109:tt,111:et,112:nt,122:it,123:at,124:rt,125:ot,126:st,127:ct}),t(ht,[2,111],{22:[1,179]}),t(Pt,[2,152]),t(Pt,[2,154]),t(Pt,[2,155]),t(Pt,[2,156]),t(Pt,[2,157]),t(Ft,[2,162]),t(Ft,[2,163]),t(Ft,[2,164]),t(Ft,[2,165]),t(Ft,[2,166]),t(Ft,[2,167]),t(Ft,[2,168]),t(Ft,[2,169]),t(Ft,[2,170]),t(Ft,[2,171]),t(Ft,[2,172]),t(Ft,[2,173]),t(Ft,[2,174]),{52:p,54:180,66:b,67:m,91:_,95:k,105:E,106:C,109:S,111:T,112:A,116:47,122:M,123:N,124:B,125:P,126:F,127:j},{22:bt,24:mt,26:yt,38:vt,39:181,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:182,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:184,42:wt,52:G,57:[1,183],66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:185,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:186,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:187,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{66:[1,188]},{22:bt,24:mt,26:yt,38:vt,39:189,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:190,42:wt,52:G,66:Z,67:K,71:[1,191],73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:192,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:193,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:194,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(dt,[2,151]),t(jt,[2,3]),{8:195,15:$},{15:[2,7]},t(r,[2,28]),t(ft,[2,33]),t(W,[2,51],{30:196,22:z}),t(pt,[2,75],{22:[1,197]}),{22:[1,198]},{22:bt,24:mt,26:yt,38:vt,39:199,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,82:[1,200],83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(Ft,[2,82]),t(Ft,[2,84]),t(Ft,[2,140]),t(Ft,[2,141]),t(Ft,[2,142]),t(Ft,[2,143]),t(Ft,[2,144]),t(Ft,[2,145]),t(Ft,[2,146]),t(Ft,[2,147]),t(Ft,[2,148]),t(Ft,[2,149]),t(Ft,[2,85]),t(Ft,[2,86]),t(Ft,[2,87]),t(Ft,[2,88]),t(Ft,[2,89]),t(Ft,[2,90]),t(Ft,[2,91]),t(Ft,[2,92]),t(Ft,[2,93]),t(Ft,[2,94]),t(Ft,[2,95]),{9:203,20:U,21:V,22:bt,23:q,24:mt,26:yt,38:vt,40:[1,202],42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{18:18,19:19,20:s,21:c,22:l,23:u,32:24,33:25,34:26,35:27,36:28,37:29,38:d,42:[1,204],43:31,44:h,46:f,48:g,50:35,51:45,52:p,54:46,66:b,67:m,86:y,87:v,88:w,89:x,90:R,91:_,95:k,105:E,106:C,109:S,111:T,112:A,116:47,118:D,119:I,120:L,121:O,122:M,123:N,124:B,125:P,126:F,127:j},{22:z,30:205},{22:[1,206],26:Y,52:G,66:Z,67:K,91:X,105:J,106:Q,109:tt,111:et,112:nt,115:100,117:178,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:[1,207]},{22:[1,208]},{22:[1,209],106:[1,210]},t($t,[2,123]),{22:[1,211]},{22:[1,212],26:Y,52:G,66:Z,67:K,91:X,105:J,106:Q,109:tt,111:et,112:nt,115:100,117:178,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:[1,213],26:Y,52:G,66:Z,67:K,91:X,105:J,106:Q,109:tt,111:et,112:nt,115:100,117:178,122:it,123:at,124:rt,125:ot,126:st,127:ct},{84:[1,214]},t(ht,[2,103],{22:[1,215]}),{84:[1,216],101:[1,217]},{84:[1,218]},t(Pt,[2,153]),{84:[1,219],101:[1,220]},t(lt,[2,57],{116:129,52:p,66:b,67:m,91:_,95:k,105:E,106:C,109:S,111:T,112:A,122:M,123:N,124:B,125:P,126:F,127:j}),{22:bt,24:mt,26:yt,38:vt,41:[1,221],42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,56:[1,222],66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:223,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,58:[1,224],66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,60:[1,225],66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,62:[1,226],66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,64:[1,227],66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{67:[1,228]},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,66:Z,67:K,70:[1,229],73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,66:Z,67:K,72:[1,230],73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:231,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,41:[1,232],42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,66:Z,67:K,73:xt,75:[1,233],77:[1,234],81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,66:Z,67:K,73:xt,75:[1,236],77:[1,235],81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{9:237,20:U,21:V,23:q},t(W,[2,52],{52:Bt}),t(pt,[2,77]),t(pt,[2,76]),{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,66:Z,67:K,68:[1,238],73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(pt,[2,79]),t(Ft,[2,83]),{22:bt,24:mt,26:yt,38:vt,39:239,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(Nt,o,{17:240}),t(H,[2,43]),{51:241,52:p,54:46,66:b,67:m,91:_,95:k,105:E,106:C,109:S,111:T,112:A,116:47,122:M,123:N,124:B,125:P,126:F,127:j},{22:zt,66:Ht,67:Ut,86:Vt,96:242,102:qt,105:Wt,107:243,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},{22:zt,66:Ht,67:Ut,86:Vt,96:256,102:qt,105:Wt,107:243,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},{22:zt,66:Ht,67:Ut,86:Vt,96:257,102:qt,104:[1,258],105:Wt,107:243,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},{22:zt,66:Ht,67:Ut,86:Vt,96:259,102:qt,104:[1,260],105:Wt,107:243,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},{105:[1,261]},{22:zt,66:Ht,67:Ut,86:Vt,96:262,102:qt,105:Wt,107:243,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},{22:zt,66:Ht,67:Ut,86:Vt,96:263,102:qt,105:Wt,107:243,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},{26:Y,52:G,66:Z,67:K,91:X,97:264,105:J,106:Q,109:tt,111:et,112:nt,115:100,117:98,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(ht,[2,102]),{84:[1,265]},t(ht,[2,106],{22:[1,266]}),t(ht,[2,107]),t(ht,[2,110]),t(ht,[2,112],{22:[1,267]}),t(ht,[2,113]),t(ut,[2,58]),t(ut,[2,59]),{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,58:[1,268],66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(ut,[2,66]),t(ut,[2,61]),t(ut,[2,62]),t(ut,[2,63]),{66:[1,269]},t(ut,[2,65]),t(ut,[2,67]),{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,66:Z,67:K,72:[1,270],73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(ut,[2,69]),t(ut,[2,70]),t(ut,[2,72]),t(ut,[2,71]),t(ut,[2,73]),t(jt,[2,4]),t([22,52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,81]),{22:bt,24:mt,26:yt,38:vt,41:[1,271],42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{18:18,19:19,20:s,21:c,22:l,23:u,32:24,33:25,34:26,35:27,36:28,37:29,38:d,42:[1,272],43:31,44:h,46:f,48:g,50:35,51:45,52:p,54:46,66:b,67:m,86:y,87:v,88:w,89:x,90:R,91:_,95:k,105:E,106:C,109:S,111:T,112:A,116:47,118:D,119:I,120:L,121:O,122:M,123:N,124:B,125:P,126:F,127:j},t(lt,[2,56]),t(ht,[2,115],{106:Jt}),t(Qt,[2,125],{108:274,22:zt,66:Ht,67:Ut,86:Vt,102:qt,105:Wt,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt}),t(te,[2,127]),t(te,[2,129]),t(te,[2,130]),t(te,[2,131]),t(te,[2,132]),t(te,[2,133]),t(te,[2,134]),t(te,[2,135]),t(te,[2,136]),t(te,[2,137]),t(te,[2,138]),t(te,[2,139]),t(ht,[2,116],{106:Jt}),t(ht,[2,117],{106:Jt}),{22:[1,275]},t(ht,[2,118],{106:Jt}),{22:[1,276]},t($t,[2,124]),t(ht,[2,98],{106:Jt}),t(ht,[2,99],{106:Jt}),t(ht,[2,100],{115:100,117:178,26:Y,52:G,66:Z,67:K,91:X,105:J,106:Q,109:tt,111:et,112:nt,122:it,123:at,124:rt,125:ot,126:st,127:ct}),t(ht,[2,104]),{101:[1,277]},{101:[1,278]},{58:[1,279]},{68:[1,280]},{72:[1,281]},{9:282,20:U,21:V,23:q},t(H,[2,42]),{22:zt,66:Ht,67:Ut,86:Vt,102:qt,105:Wt,107:283,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},t(te,[2,128]),{26:Y,52:G,66:Z,67:K,91:X,97:284,105:J,106:Q,109:tt,111:et,112:nt,115:100,117:98,122:it,123:at,124:rt,125:ot,126:st,127:ct},{26:Y,52:G,66:Z,67:K,91:X,97:285,105:J,106:Q,109:tt,111:et,112:nt,115:100,117:98,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(ht,[2,108]),t(ht,[2,114]),t(ut,[2,60]),{22:bt,24:mt,26:yt,38:vt,39:286,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(ut,[2,68]),t(Nt,o,{17:287}),t(Qt,[2,126],{108:274,22:zt,66:Ht,67:Ut,86:Vt,102:qt,105:Wt,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt}),t(ht,[2,121],{115:100,117:178,22:[1,288],26:Y,52:G,66:Z,67:K,91:X,105:J,106:Q,109:tt,111:et,112:nt,122:it,123:at,124:rt,125:ot,126:st,127:ct}),t(ht,[2,122],{115:100,117:178,22:[1,289],26:Y,52:G,66:Z,67:K,91:X,105:J,106:Q,109:tt,111:et,112:nt,122:it,123:at,124:rt,125:ot,126:st,127:ct}),{22:bt,24:mt,26:yt,38:vt,41:[1,290],42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{18:18,19:19,20:s,21:c,22:l,23:u,32:24,33:25,34:26,35:27,36:28,37:29,38:d,42:[1,291],43:31,44:h,46:f,48:g,50:35,51:45,52:p,54:46,66:b,67:m,86:y,87:v,88:w,89:x,90:R,91:_,95:k,105:E,106:C,109:S,111:T,112:A,116:47,118:D,119:I,120:L,121:O,122:M,123:N,124:B,125:P,126:F,127:j},{22:zt,66:Ht,67:Ut,86:Vt,96:292,102:qt,105:Wt,107:243,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},{22:zt,66:Ht,67:Ut,86:Vt,96:293,102:qt,105:Wt,107:243,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},t(ut,[2,64]),t(H,[2,41]),t(ht,[2,119],{106:Jt}),t(ht,[2,120],{106:Jt})],defaultActions:{2:[2,1],9:[2,5],10:[2,2],132:[2,7]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},ne={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),12;case 1:return this.begin("type_directive"),13;case 2:return this.popState(),this.begin("arg_directive"),10;case 3:return this.popState(),this.popState(),15;case 4:return 14;case 5:case 6:break;case 7:return this.begin("acc_title"),44;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),46;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:case 15:case 24:case 27:case 30:case 33:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:this.begin("string");break;case 16:return"STR";case 17:return 86;case 18:return 95;case 19:return 87;case 20:return 104;case 21:return 88;case 22:return 89;case 23:this.begin("href");break;case 25:return 100;case 26:this.begin("callbackname");break;case 28:this.popState(),this.begin("callbackargs");break;case 29:return 98;case 31:return 99;case 32:this.begin("click");break;case 34:return 90;case 35:case 36:case 37:return t.lex.firstGraph()&&this.begin("dir"),24;case 38:return 38;case 39:return 42;case 40:case 41:case 42:case 43:return 101;case 44:return this.popState(),25;case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 54:return this.popState(),26;case 55:return 118;case 56:return 119;case 57:return 120;case 58:return 121;case 59:return 105;case 60:return 111;case 61:return 53;case 62:return 67;case 63:return 52;case 64:return 20;case 65:return 106;case 66:return 126;case 67:case 68:case 69:return 82;case 70:case 71:case 72:return 81;case 73:return 59;case 74:return 60;case 75:return 61;case 76:return 62;case 77:return 63;case 78:return 64;case 79:return 65;case 80:return 69;case 81:return 70;case 82:return 55;case 83:return 56;case 84:return 109;case 85:return 112;case 86:return 127;case 87:return 124;case 88:return 113;case 89:case 90:return 125;case 91:return 114;case 92:return 73;case 93:return 92;case 94:return"SEP";case 95:return 91;case 96:return 66;case 97:return 75;case 98:return 74;case 99:return 77;case 100:return 76;case 101:return 122;case 102:return 123;case 103:return 68;case 104:return 57;case 105:return 58;case 106:return 40;case 107:return 41;case 108:return 71;case 109:return 72;case 110:return 133;case 111:return 21;case 112:return 22;case 113:return 23}},rules:[/^(?:%%\{)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)[^\n]*)/,/^(?:[^\}]%%[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\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<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\[)/,/^(?:\]\))/,/^(?:\[\[)/,/^(?:\]\])/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\])/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:-)/,/^(?:\.)/,/^(?:[\_])/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\])/,/^(?:\[\/)/,/^(?:\/\])/,/^(?:\[\\)/,/^(?:[!"#$%&'*+,-.`?\\_/])/,/^(?:[\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:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[30,31],inclusive:!1},callbackname:{rules:[27,28,29],inclusive:!1},href:{rules:[24,25],inclusive:!1},click:{rules:[33,34],inclusive:!1},vertex:{rules:[],inclusive:!1},dir:{rules:[44,45,46,47,48,49,50,51,52,53,54],inclusive:!1},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},string:{rules:[15,16],inclusive:!1},INITIAL:{rules:[0,5,6,7,9,11,14,17,18,19,20,21,22,23,26,32,35,36,37,38,39,40,41,42,43,55,56,57,58,59,60,61,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,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113],inclusive:!0}}};function ie(){this.yy={}}return ee.lexer=ne,ie.prototype=ee,ee.Parser=ie,new ie}();JO.parser=JO;const QO=JO,tM=(t,e)=>{var n,i;return"dagre-wrapper"!==(null==(n=null==e?void 0:e.flowchart)?void 0:n.defaultRenderer)&&"elk"!==(null==(i=null==e?void 0:e.flowchart)?void 0:i.defaultRenderer)&&null!==t.match(/^\s*graph/)},eM=(t,e)=>{var n,i;return"dagre-d3"!==(null==(n=null==e?void 0:e.flowchart)?void 0:n.defaultRenderer)&&"elk"!==(null==(i=null==e?void 0:e.flowchart)?void 0:i.defaultRenderer)&&(null!==t.match(/^\s*graph/)||null!==t.match(/^\s*flowchart/))},nM="flowchart-";let iM,aM,rM=0,oM=Ry(),sM={},cM=[],lM={},uM=[],dM={},hM={},fM=0,gM=!0,pM=[];const bM=t=>Qd.sanitizeText(t,oM),mM=function(t,e,n){dU.parseDirective(this,t,e,n)},yM=function(t){const e=Object.keys(sM);for(const n of e)if(sM[n].id===t)return sM[n].domId;return t},vM=function(t,e,n,i,a,r,o={}){let s,c=t;void 0!==c&&0!==c.trim().length&&(void 0===sM[c]&&(sM[c]={id:c,domId:nM+c+"-"+rM,styles:[],classes:[]}),rM++,void 0!==e?(oM=Ry(),s=bM(e.trim()),'"'===s[0]&&'"'===s[s.length-1]&&(s=s.substring(1,s.length-1)),sM[c].text=s):void 0===sM[c].text&&(sM[c].text=t),void 0!==n&&(sM[c].type=n),null!=i&&i.forEach((function(t){sM[c].styles.push(t)})),null!=a&&a.forEach((function(t){sM[c].classes.push(t)})),void 0!==r&&(sM[c].dir=r),void 0===sM[c].props?sM[c].props=o:void 0!==o&&Object.assign(sM[c].props,o))},wM=function(t,e,n,i){const a={start:t,end:e,type:void 0,text:""};void 0!==(i=n.text)&&(a.text=bM(i.trim()),'"'===a.text[0]&&'"'===a.text[a.text.length-1]&&(a.text=a.text.substring(1,a.text.length-1))),void 0!==n&&(a.type=n.type,a.stroke=n.stroke,a.length=n.length),cM.push(a)},xM=function(t,e,n,i){let a,r;for(a=0;a<t.length;a++)for(r=0;r<e.length;r++)wM(t[a],e[r],n,i)},RM=function(t,e){t.forEach((function(t){"default"===t?cM.defaultInterpolate=e:cM[t].interpolate=e}))},_M=function(t,e){t.forEach((function(t){"default"===t?cM.defaultStyle=e:(-1===vm.isSubstringInArray("fill",e)&&e.push("fill:none"),cM[t].style=e)}))},kM=function(t,e){void 0===lM[t]&&(lM[t]={id:t,styles:[],textStyles:[]}),null!=e&&e.forEach((function(e){if(e.match("color")){const n=e.replace("fill","bgFill").replace("color","fill");lM[t].textStyles.push(n)}lM[t].styles.push(e)}))},EM=function(t){iM=t,iM.match(/.*</)&&(iM="RL"),iM.match(/.*\^/)&&(iM="BT"),iM.match(/.*>/)&&(iM="LR"),iM.match(/.*v/)&&(iM="TB"),"TD"===iM&&(iM="TB")},CM=function(t,e){t.split(",").forEach((function(t){let n=t;void 0!==sM[n]&&sM[n].classes.push(e),void 0!==dM[n]&&dM[n].classes.push(e)}))},SM=function(t,e){t.split(",").forEach((function(t){void 0!==e&&(hM["gen-1"===aM?yM(t):t]=bM(e))}))},TM=function(t,e,n){let i=yM(t);if("loose"!==Ry().securityLevel||void 0===e)return;let a=[];if("string"==typeof n){a=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t<a.length;t++){let e=a[t].trim();'"'===e.charAt(0)&&'"'===e.charAt(e.length-1)&&(e=e.substr(1,e.length-2)),a[t]=e}}0===a.length&&a.push(t),void 0!==sM[t]&&(sM[t].haveCallback=!0,pM.push((function(){const t=document.querySelector(`[id="${i}"]`);null!==t&&t.addEventListener("click",(function(){vm.runFunc(e,...a)}),!1)})))},AM=function(t,e,n){t.split(",").forEach((function(t){void 0!==sM[t]&&(sM[t].link=vm.formatUrl(e,oM),sM[t].linkTarget=n)})),CM(t,"clickable")},DM=function(t){return hM[t]},IM=function(t,e,n){t.split(",").forEach((function(t){TM(t,e,n)})),CM(t,"clickable")},LM=function(t){pM.forEach((function(e){e(t)}))},OM=function(){return iM.trim()},MM=function(){return sM},NM=function(){return cM},BM=function(){return lM},PM=function(t){let e=un(".mermaidTooltip");null===(e._groups||e)[0][0]&&(e=un("body").append("div").attr("class","mermaidTooltip").style("opacity",0)),un(t).select("svg").selectAll("g.node").on("mouseover",(function(){const t=un(this);if(null===t.attr("title"))return;const n=this.getBoundingClientRect();e.transition().duration(200).style("opacity",".9"),e.text(t.attr("title")).style("left",window.scrollX+n.left+(n.right-n.left)/2+"px").style("top",window.scrollY+n.top-14+document.body.scrollTop+"px"),e.html(e.html().replace(/<br\/>/g,"<br/>")),t.classed("hover",!0)})).on("mouseout",(function(){e.transition().duration(500).style("opacity",0),un(this).classed("hover",!1)}))};pM.push(PM);const FM=function(t="gen-1"){sM={},lM={},cM=[],pM=[PM],uM=[],dM={},fM=0,hM=[],gM=!0,aM=t,Qy()},jM=t=>{aM=t||"gen-2"},$M=function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},zM=function(t,e,n){let i=t.trim(),a=n;function r(t){const e={boolean:{},number:{},string:{}},n=[];let i;return{nodeList:t.filter((function(t){const a=typeof t;return t.stmt&&"dir"===t.stmt?(i=t.value,!1):""!==t.trim()&&(a in e?!e[a].hasOwnProperty(t)&&(e[a][t]=!0):!n.includes(t)&&n.push(t))})),dir:i}}t===n&&n.match(/\s/)&&(i=void 0);let o=[];const{nodeList:s,dir:c}=r(o.concat.apply(o,e));if(o=s,"gen-1"===aM)for(let u=0;u<o.length;u++)o[u]=yM(o[u]);i=i||"subGraph"+fM,a=a||"",a=bM(a),fM+=1;const l={id:i,nodes:o,title:a.trim(),classes:[],dir:c};return d.info("Adding",l.id,l.nodes,l.dir),l.nodes=eN(l,uM).nodes,uM.push(l),dM[i]=l,i},HM=function(t){for(const[e,n]of uM.entries())if(n.id===t)return e;return-1};let UM=-1;const VM=[],qM=function(t,e){const n=uM[e].nodes;if(UM+=1,UM>2e3)return;if(VM[UM]=e,uM[e].id===t)return{result:!0,count:0};let i=0,a=1;for(;i<n.length;){const e=HM(n[i]);if(e>=0){const n=qM(t,e);if(n.result)return{result:!0,count:a+n.count};a+=n.count}i+=1}return{result:!1,count:a}},WM=function(t){return VM[t]},YM=function(){UM=-1,uM.length>0&&qM("none",uM.length-1)},GM=function(){return uM},ZM=()=>!!gM&&(gM=!1,!0),KM=t=>{let e=t.trim(),n="arrow_open";switch(e[0]){case"<":n="arrow_point",e=e.slice(1);break;case"x":n="arrow_cross",e=e.slice(1);break;case"o":n="arrow_circle",e=e.slice(1)}let i="normal";return e.includes("=")&&(i="thick"),e.includes(".")&&(i="dotted"),{type:n,stroke:i}},XM=(t,e)=>{const n=e.length;let i=0;for(let a=0;a<n;++a)e[a]===t&&++i;return i},JM=t=>{const e=t.trim();let n=e.slice(0,-1),i="arrow_open";switch(e.slice(-1)){case"x":i="arrow_cross","x"===e[0]&&(i="double_"+i,n=n.slice(1));break;case">":i="arrow_point","<"===e[0]&&(i="double_"+i,n=n.slice(1));break;case"o":i="arrow_circle","o"===e[0]&&(i="double_"+i,n=n.slice(1))}let a="normal",r=n.length-1;"="===n[0]&&(a="thick");let o=XM(".",n);return o&&(a="dotted",r=o),{type:i,stroke:a,length:r}},QM=(t,e)=>{const n=JM(t);let i;if(e){if(i=KM(e),i.stroke!==n.stroke)return{type:"INVALID",stroke:"INVALID"};if("arrow_open"===i.type)i.type=n.type;else{if(i.type!==n.type)return{type:"INVALID",stroke:"INVALID"};i.type="double_"+i.type}return"double_arrow"===i.type&&(i.type="double_arrow_point"),i.length=n.length,i}return n},tN=(t,e)=>{let n=!1;return t.forEach((t=>{t.nodes.indexOf(e)>=0&&(n=!0)})),n},eN=(t,e)=>{const n=[];return t.nodes.forEach(((i,a)=>{tN(e,i)||n.push(t.nodes[a])})),{nodes:n}},nN={firstGraph:ZM},iN={parseDirective:mM,defaultConfig:()=>dy.flowchart,setAccTitle:tv,getAccTitle:ev,getAccDescription:iv,setAccDescription:nv,addVertex:vM,lookUpDomId:yM,addLink:xM,updateLinkInterpolate:RM,updateLink:_M,addClass:kM,setDirection:EM,setClass:CM,setTooltip:SM,getTooltip:DM,setClickEvent:IM,setLink:AM,bindFunctions:LM,getDirection:OM,getVertices:MM,getEdges:NM,getClasses:BM,clear:FM,setGen:jM,defaultStyle:$M,addSubGraph:zM,getDepthFirstPos:WM,indexNodes:YM,getSubGraphs:GM,destructLink:QM,lex:nN,exists:tN,makeUniq:eN,setDiagramTitle:av,getDiagramTitle:rv},aN=Object.freeze(Object.defineProperty({__proto__:null,addClass:kM,addLink:xM,addSingleLink:wM,addSubGraph:zM,addVertex:vM,bindFunctions:LM,clear:FM,default:iN,defaultStyle:$M,destructLink:QM,firstGraph:ZM,getClasses:BM,getDepthFirstPos:WM,getDirection:OM,getEdges:NM,getSubGraphs:GM,getTooltip:DM,getVertices:MM,indexNodes:YM,lex:nN,lookUpDomId:yM,parseDirective:mM,setClass:CM,setClickEvent:IM,setDirection:EM,setGen:jM,setLink:AM,updateLink:_M,updateLinkInterpolate:RM},Symbol.toStringTag,{value:"Module"}));function rN(t,e){return!!t.children(e).length}function oN(t){return cN(t.v)+":"+cN(t.w)+":"+cN(t.name)}var sN=/:/g;function cN(t){return t?String(t).replace(sN,"\\:"):""}function lN(t,e){e&&t.attr("style",e)}function uN(t,e,n){e&&t.attr("class",e).attr("class",n+" "+t.attr("class"))}function dN(t,e){var n=e.graph();if(Nk(n)){var i=n.transition;if(Gp(i))return i(t)}return t}var hN={normal:gN,vee:pN,undirected:bN};function fN(t){hN=t}function gN(t,e,n,i){var a=t.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").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").style("stroke-width",1).style("stroke-dasharray","1,0");lN(a,n[i+"Style"]),n[i+"Class"]&&a.attr("class",n[i+"Class"])}function pN(t,e,n,i){var a=t.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").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");lN(a,n[i+"Style"]),n[i+"Class"]&&a.attr("class",n[i+"Class"])}function bN(t,e,n,i){var a=t.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").append("path").attr("d","M 0 5 L 10 5").style("stroke-width",1).style("stroke-dasharray","1,0");lN(a,n[i+"Style"]),n[i+"Class"]&&a.attr("class",n[i+"Class"])}function mN(t,e){var n=t.append("foreignObject").attr("width","100000"),i=n.append("xhtml:div");i.attr("xmlns","http://www.w3.org/1999/xhtml");var a=e.label;switch(typeof a){case"function":i.insert(a);break;case"object":i.insert((function(){return a}));break;default:i.html(a)}lN(i,e.labelStyle),i.style("display","inline-block"),i.style("white-space","nowrap");var r=i.node().getBoundingClientRect();return n.attr("width",r.width).attr("height",r.height),n}function yN(t,e){var n=t;return n.node().appendChild(e.label),lN(n,e.labelStyle),n}function vN(t,e){for(var n=t.append("text"),i=wN(e.label).split("\n"),a=0;a<i.length;a++)n.append("tspan").attr("xml:space","preserve").attr("dy","1em").attr("x","1").text(i[a]);return lN(n,e.labelStyle),n}function wN(t){for(var e,n="",i=!1,a=0;a<t.length;++a)e=t[a],i?(n+="n"===e?"\n":e,i=!1):"\\"===e?i=!0:n+=e;return n}function xN(t,e,n){var i=e.label,a=t.append("g");"svg"===e.labelType?yN(a,e):"string"!=typeof i||"html"===e.labelType?mN(a,e):vN(a,e);var r,o=a.node().getBBox();switch(n){case"top":r=-e.height/2;break;case"bottom":r=e.height/2-o.height;break;default:r=-o.height/2}return a.attr("transform","translate("+-o.width/2+","+r+")"),a}var RN=function(t,e){var n=e.nodes().filter((function(t){return rN(e,t)})),i=t.selectAll("g.cluster").data(n,(function(t){return t}));dN(i.exit(),e).style("opacity",0).remove();var a=i.enter().append("g").attr("class","cluster").attr("id",(function(t){return e.node(t).id})).style("opacity",0).each((function(t){var n=e.node(t),i=un(this);un(this).append("rect"),xN(i.append("g").attr("class","label"),n,n.clusterLabelPos)}));return(i=dN(i=i.merge(a),e).style("opacity",1)).selectAll("rect").each((function(t){var n=e.node(t);lN(un(this),n.style)})),i};function _N(t){RN=t}let kN=function(t,e){var n=t.selectAll("g.edgeLabel").data(e.edges(),(function(t){return oN(t)})).classed("update",!0);return n.exit().remove(),n.enter().append("g").classed("edgeLabel",!0).style("opacity",0),(n=t.selectAll("g.edgeLabel")).each((function(t){var n=un(this);n.select(".label").remove();var i=e.edge(t),a=xN(n,e.edge(t),0).classed("label",!0),r=a.node().getBBox();i.labelId&&a.attr("id",i.labelId),_T(i,"width")||(i.width=r.width),_T(i,"height")||(i.height=r.height)})),dN(n.exit?n.exit():n.selectAll(null),e).style("opacity",0).remove(),n};function EN(t){kN=t}function CN(t,e){return t.intersect(e)}var SN=function(t,e,n){var i=t.selectAll("g.edgePath").data(e.edges(),(function(t){return oN(t)})).classed("update",!0),a=ON(i,e);MN(i,e);var r=void 0!==i.merge?i.merge(a):i;return dN(r,e).style("opacity",1),r.each((function(t){var n=un(this),i=e.edge(t);i.elem=this,i.id&&n.attr("id",i.id),uN(n,i.class,(n.classed("update")?"update ":"")+"edgePath")})),r.selectAll("path.path").each((function(t){var n=e.edge(t);n.arrowheadId=oA("arrowhead");var i=un(this).attr("marker-end",(function(){return"url("+AN(location.href,n.arrowheadId)+")"})).style("fill","none");dN(i,e).attr("d",(function(t){return DN(e,t)})),lN(i,n.style)})),r.selectAll("defs *").remove(),r.selectAll("defs").each((function(t){var i=e.edge(t);(0,n[i.arrowhead])(un(this),i.arrowheadId,i,"arrowhead")})),r};function TN(t){SN=t}function AN(t,e){return t.split("#")[0]+"#"+e}function DN(t,e){var n=t.edge(e),i=t.node(e.v),a=t.node(e.w),r=n.points.slice(1,n.points.length-1);return r.unshift(CN(i,r[0])),r.push(CN(a,r[r.length-1])),IN(n,r)}function IN(t,e){var n=($l||Kr.line)().x((function(t){return t.x})).y((function(t){return t.y}));return(n.curve||n.interpolate)(t.curve),n(e)}function LN(t){var e=t.getBBox(),n=t.ownerSVGElement.getScreenCTM().inverse().multiply(t.getScreenCTM()).translate(e.width/2,e.height/2);return{x:n.e,y:n.f}}function ON(t,e){var n=t.enter().append("g").attr("class","edgePath").style("opacity",0);return n.append("path").attr("class","path").attr("d",(function(t){var n=e.edge(t),i=e.node(t.v).elem;return IN(n,KT(n.points.length).map((function(){return LN(i)})))})),n.append("defs"),n}function MN(t,e){dN(t.exit(),e).style("opacity",0).remove()}var NN=function(t,e,n){var i=e.nodes().filter((function(t){return!rN(e,t)})),a=t.selectAll("g.node").data(i,(function(t){return t})).classed("update",!0);return a.exit().remove(),a.enter().append("g").attr("class","node").style("opacity",0),(a=t.selectAll("g.node")).each((function(t){var i=e.node(t),a=un(this);uN(a,i.class,(a.classed("update")?"update ":"")+"node"),a.select("g.label").remove();var r=a.append("g").attr("class","label"),o=xN(r,i),s=n[i.shape],c=qT(o.node().getBBox(),"width","height");i.elem=this,i.id&&a.attr("id",i.id),i.labelId&&r.attr("id",i.labelId),_T(i,"width")&&(c.width=i.width),_T(i,"height")&&(c.height=i.height),c.width+=i.paddingLeft+i.paddingRight,c.height+=i.paddingTop+i.paddingBottom,r.attr("transform","translate("+(i.paddingLeft-i.paddingRight)/2+","+(i.paddingTop-i.paddingBottom)/2+")");var l=un(this);l.select(".label-container").remove();var u=s(l,c,i).classed("label-container",!0);lN(u,i.style);var d=u.node().getBBox();i.width=d.width,i.height=d.height})),dN(a.exit?a.exit():a.selectAll(null),e).style("opacity",0).remove(),a};function BN(t){NN=t}function PN(t,e){var n=t.filter((function(){return!un(this).classed("update")}));function i(t){var n=e.node(t);return"translate("+n.x+","+n.y+")"}n.attr("transform",i),dN(t,e).style("opacity",1).attr("transform",i),dN(n.selectAll("rect"),e).attr("width",(function(t){return e.node(t).width})).attr("height",(function(t){return e.node(t).height})).attr("x",(function(t){return-e.node(t).width/2})).attr("y",(function(t){return-e.node(t).height/2}))}function FN(t,e){function n(t){var n=e.edge(t);return _T(n,"x")?"translate("+n.x+","+n.y+")":""}t.filter((function(){return!un(this).classed("update")})).attr("transform",n),dN(t,e).style("opacity",1).attr("transform",n)}function jN(t,e){function n(t){var n=e.node(t);return"translate("+n.x+","+n.y+")"}t.filter((function(){return!un(this).classed("update")})).attr("transform",n),dN(t,e).style("opacity",1).attr("transform",n)}function $N(t,e,n,i){var a=t.x,r=t.y,o=a-i.x,s=r-i.y,c=Math.sqrt(e*e*s*s+n*n*o*o),l=Math.abs(e*n*o/c);i.x<a&&(l=-l);var u=Math.abs(e*n*s/c);return i.y<r&&(u=-u),{x:a+l,y:r+u}}function zN(t,e,n){return $N(t,e,e,n)}function HN(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p,b;if(a=e.y-t.y,o=t.x-e.x,c=e.x*t.y-t.x*e.y,h=a*n.x+o*n.y+c,f=a*i.x+o*i.y+c,!(0!==h&&0!==f&&UN(h,f)||(r=i.y-n.y,s=n.x-i.x,l=i.x*n.y-n.x*i.y,u=r*t.x+s*t.y+l,d=r*e.x+s*e.y+l,0!==u&&0!==d&&UN(u,d)||(g=a*s-r*o,0===g))))return p=Math.abs(g/2),{x:(b=o*l-s*c)<0?(b-p)/g:(b+p)/g,y:(b=r*c-a*l)<0?(b-p)/g:(b+p)/g}}function UN(t,e){return t*e>0}function VN(t,e,n){var i=t.x,a=t.y,r=[],o=Number.POSITIVE_INFINITY,s=Number.POSITIVE_INFINITY;e.forEach((function(t){o=Math.min(o,t.x),s=Math.min(s,t.y)}));for(var c=i-t.width/2-o,l=a-t.height/2-s,u=0;u<e.length;u++){var d=e[u],h=e[u<e.length-1?u+1:0],f=HN(t,n,{x:c+d.x,y:l+d.y},{x:c+h.x,y:l+h.y});f&&r.push(f)}return r.length?(r.length>1&&r.sort((function(t,e){var i=t.x-n.x,a=t.y-n.y,r=Math.sqrt(i*i+a*a),o=e.x-n.x,s=e.y-n.y,c=Math.sqrt(o*o+s*s);return r<c?-1:r===c?0:1})),r[0]):(console.log("NO INTERSECTION FOUND, RETURN NODE CENTER",t),t)}function qN(t,e){var n,i,a=t.x,r=t.y,o=e.x-a,s=e.y-r,c=t.width/2,l=t.height/2;return Math.abs(s)*c>Math.abs(o)*l?(s<0&&(l=-l),n=0===s?0:l*o/s,i=l):(o<0&&(c=-c),n=c,i=0===o?0:c*s/o),{x:a+n,y:r+i}}var WN={rect:GN,ellipse:ZN,circle:KN,diamond:XN};function YN(t){WN=t}function GN(t,e,n){var i=t.insert("rect",":first-child").attr("rx",n.rx).attr("ry",n.ry).attr("x",-e.width/2).attr("y",-e.height/2).attr("width",e.width).attr("height",e.height);return n.intersect=function(t){return qN(n,t)},i}function ZN(t,e,n){var i=e.width/2,a=e.height/2,r=t.insert("ellipse",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("rx",i).attr("ry",a);return n.intersect=function(t){return $N(n,i,a,t)},r}function KN(t,e,n){var i=Math.max(e.width,e.height)/2,a=t.insert("circle",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("r",i);return n.intersect=function(t){return zN(n,i,t)},a}function XN(t,e,n){var i=e.width*Math.SQRT2/2,a=e.height*Math.SQRT2/2,r=[{x:0,y:-a},{x:-i,y:0},{x:0,y:a},{x:i,y:0}],o=t.insert("polygon",":first-child").attr("points",r.map((function(t){return t.x+","+t.y})).join(" "));return n.intersect=function(t){return VN(n,r,t)},o}function JN(){var t=function(t,e){eB(e);var n=iB(t,"output"),i=iB(n,"clusters"),a=iB(n,"edgePaths"),r=kN(iB(n,"edgeLabels"),e),o=NN(iB(n,"nodes"),e,WN);yI(e),jN(o,e),FN(r,e),SN(a,e,hN),PN(RN(i,e),e),nB(e)};return t.createNodes=function(e){return arguments.length?(BN(e),t):NN},t.createClusters=function(e){return arguments.length?(_N(e),t):RN},t.createEdgeLabels=function(e){return arguments.length?(EN(e),t):kN},t.createEdgePaths=function(e){return arguments.length?(TN(e),t):SN},t.shapes=function(e){return arguments.length?(YN(e),t):WN},t.arrows=function(e){return arguments.length?(fN(e),t):hN},t}var QN={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},tB={arrowhead:"normal",curve:Pl};function eB(t){t.nodes().forEach((function(e){var n=t.node(e);!_T(n,"label")&&!t.children(e).length&&(n.label=e),_T(n,"paddingX")&&tT(n,{paddingLeft:n.paddingX,paddingRight:n.paddingX}),_T(n,"paddingY")&&tT(n,{paddingTop:n.paddingY,paddingBottom:n.paddingY}),_T(n,"padding")&&tT(n,{paddingLeft:n.padding,paddingRight:n.padding,paddingTop:n.padding,paddingBottom:n.padding}),tT(n,QN),uT(["paddingLeft","paddingRight","paddingTop","paddingBottom"],(function(t){n[t]=Number(n[t])})),_T(n,"width")&&(n._prevWidth=n.width),_T(n,"height")&&(n._prevHeight=n.height)})),t.edges().forEach((function(e){var n=t.edge(e);_T(n,"label")||(n.label=""),tT(n,tB)}))}function nB(t){uT(t.nodes(),(function(e){var n=t.node(e);_T(n,"_prevWidth")?n.width=n._prevWidth:delete n.width,_T(n,"_prevHeight")?n.height=n._prevHeight:delete n.height,delete n._prevWidth,delete n._prevHeight}))}function iB(t,e){var n=t.select("g."+e);return n.empty()&&(n=t.append("g").attr("class",e)),n}function aB(t,e,n){const i=.9*(e.width+e.height),a=[{x:i/2,y:0},{x:i,y:-i/2},{x:i/2,y:-i},{x:0,y:-i/2}],r=mB(t,i,i,a);return n.intersect=function(t){return VN(n,a,t)},r}function rB(t,e,n){const i=e.height,a=i/4,r=e.width+2*a,o=[{x:a,y:0},{x:r-a,y:0},{x:r,y:-i/2},{x:r-a,y:-i},{x:a,y:-i},{x:0,y:-i/2}],s=mB(t,r,i,o);return n.intersect=function(t){return VN(n,o,t)},s}function oB(t,e,n){const i=e.width,a=e.height,r=[{x:-a/2,y:0},{x:i,y:0},{x:i,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}],o=mB(t,i,a,r);return n.intersect=function(t){return VN(n,r,t)},o}function sB(t,e,n){const i=e.width,a=e.height,r=[{x:-2*a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:a/6,y:-a}],o=mB(t,i,a,r);return n.intersect=function(t){return VN(n,r,t)},o}function cB(t,e,n){const i=e.width,a=e.height,r=[{x:2*a/6,y:0},{x:i+a/6,y:0},{x:i-2*a/6,y:-a},{x:-a/6,y:-a}],o=mB(t,i,a,r);return n.intersect=function(t){return VN(n,r,t)},o}function lB(t,e,n){const i=e.width,a=e.height,r=[{x:-2*a/6,y:0},{x:i+2*a/6,y:0},{x:i-a/6,y:-a},{x:a/6,y:-a}],o=mB(t,i,a,r);return n.intersect=function(t){return VN(n,r,t)},o}function uB(t,e,n){const i=e.width,a=e.height,r=[{x:a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:-2*a/6,y:-a}],o=mB(t,i,a,r);return n.intersect=function(t){return VN(n,r,t)},o}function dB(t,e,n){const i=e.width,a=e.height,r=[{x:0,y:0},{x:i+a/2,y:0},{x:i,y:-a/2},{x:i+a/2,y:-a},{x:0,y:-a}],o=mB(t,i,a,r);return n.intersect=function(t){return VN(n,r,t)},o}function hB(t,e,n){const i=e.height,a=e.width+i/4,r=t.insert("rect",":first-child").attr("rx",i/2).attr("ry",i/2).attr("x",-a/2).attr("y",-i/2).attr("width",a).attr("height",i);return n.intersect=function(t){return qN(n,t)},r}function fB(t,e,n){const i=e.width,a=e.height,r=[{x:0,y:0},{x:i,y:0},{x:i,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],o=mB(t,i,a,r);return n.intersect=function(t){return VN(n,r,t)},o}function gB(t,e,n){const i=e.width,a=i/2,r=a/(2.5+i/50),o=e.height+r,s="M 0,"+r+" a "+a+","+r+" 0,0,0 "+i+" 0 a "+a+","+r+" 0,0,0 "+-i+" 0 l 0,"+o+" a "+a+","+r+" 0,0,0 "+i+" 0 l 0,"+-o,c=t.attr("label-offset-y",r).insert("path",":first-child").attr("d",s).attr("transform","translate("+-i/2+","+-(o/2+r)+")");return n.intersect=function(t){const e=qN(n,t),i=e.x-n.x;if(0!=a&&(Math.abs(i)<n.width/2||Math.abs(i)==n.width/2&&Math.abs(e.y-n.y)>n.height/2-r)){let o=r*r*(1-i*i/(a*a));0!=o&&(o=Math.sqrt(o)),o=r-o,t.y-n.y>0&&(o=-o),e.y+=o}return e},c}function pB(t){t.shapes().question=aB,t.shapes().hexagon=rB,t.shapes().stadium=hB,t.shapes().subroutine=fB,t.shapes().cylinder=gB,t.shapes().rect_left_inv_arrow=oB,t.shapes().lean_right=sB,t.shapes().lean_left=cB,t.shapes().trapezoid=lB,t.shapes().inv_trapezoid=uB,t.shapes().rect_right_inv_arrow=dB}function bB(t){t({question:aB}),t({hexagon:rB}),t({stadium:hB}),t({subroutine:fB}),t({cylinder:gB}),t({rect_left_inv_arrow:oB}),t({lean_right:sB}),t({lean_left:cB}),t({trapezoid:lB}),t({inv_trapezoid:uB}),t({rect_right_inv_arrow:dB})}function mB(t,e,n,i){return t.insert("polygon",":first-child").attr("points",i.map((function(t){return t.x+","+t.y})).join(" ")).attr("transform","translate("+-e/2+","+n/2+")")}const yB={addToRender:pB,addToRenderV2:bB},vB={},wB=function(t,e,n,i,a,r){const o=i?i.select(`[id="${n}"]`):un(`[id="${n}"]`),s=a||document;Object.keys(t).forEach((function(n){const i=t[n];let a="default";i.classes.length>0&&(a=i.classes.join(" "));const c=em(i.styles);let l,u=void 0!==i.text?i.text:i.id;if(Xd(Ry().flowchart.htmlLabels)){const t={label:u.replace(/fa[blrs]?:fa-[\w-]+/g,(t=>`<i class='${t.replace(":"," ")}'></i>`))};l=mN(o,t).node(),l.parentNode.removeChild(l)}else{const t=s.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",c.labelStyle.replace("color:","fill:"));const e=u.split(Qd.lineBreakRegex);for(const n of e){const e=s.createElementNS("http://www.w3.org/2000/svg","tspan");e.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),e.setAttribute("dy","1em"),e.setAttribute("x","1"),e.textContent=n,t.appendChild(e)}l=t}let h=0,f="";switch(i.type){case"round":h=5,f="rect";break;case"square":case"group":default:f="rect";break;case"diamond":f="question";break;case"hexagon":f="hexagon";break;case"odd":case"odd_right":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"circle":f="circle";break;case"ellipse":f="ellipse";break;case"stadium":f="stadium";break;case"subroutine":f="subroutine";break;case"cylinder":f="cylinder"}d.warn("Adding node",i.id,i.domId),e.setNode(r.db.lookUpDomId(i.id),{labelType:"svg",labelStyle:c.labelStyle,shape:f,label:l,rx:h,ry:h,class:a,style:c.style,id:r.db.lookUpDomId(i.id)})}))},xB=function(t,e,n){let i,a,r=0;if(void 0!==t.defaultStyle){const e=em(t.defaultStyle);i=e.style,a=e.labelStyle}t.forEach((function(o){r++;var s="L-"+o.start+"-"+o.end,c="LS-"+o.start,l="LE-"+o.end;const u={};"arrow_open"===o.type?u.arrowhead="none":u.arrowhead="normal";let d="",h="";if(void 0!==o.style){const t=em(o.style);d=t.style,h=t.labelStyle}else switch(o.stroke){case"normal":d="fill:none",void 0!==i&&(d=i),void 0!==a&&(h=a);break;case"dotted":d="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":d=" stroke-width: 3.5px;fill:none"}u.style=d,u.labelStyle=h,void 0!==o.interpolate?u.curve=Yb(o.interpolate,Pl):void 0!==t.defaultInterpolate?u.curve=Yb(t.defaultInterpolate,Pl):u.curve=Yb(vB.curve,Pl),void 0===o.text?void 0!==o.style&&(u.arrowheadStyle="fill: #333"):(u.arrowheadStyle="fill: #333",u.labelpos="c",Xd(Ry().flowchart.htmlLabels)?(u.labelType="html",u.label=`<span id="L-${s}" class="edgeLabel L-${c}' L-${l}" style="${u.labelStyle}">${o.text.replace(/fa[blrs]?:fa-[\w-]+/g,(t=>`<i class='${t.replace(":"," ")}'></i>`))}</span>`):(u.labelType="text",u.label=o.text.replace(Qd.lineBreakRegex,"\n"),void 0===o.style&&(u.style=u.style||"stroke: #333; stroke-width: 1.5px;fill:none"),u.labelStyle=u.labelStyle.replace("color:","fill:"))),u.id=s,u.class=c+" "+l,u.minlen=o.length||1,e.setEdge(n.db.lookUpDomId(o.start),n.db.lookUpDomId(o.end),u,r)}))},RB={setConf:function(t){const e=Object.keys(t);for(const n of e)vB[n]=t[n]},addVertices:wB,addEdges:xB,getClasses:function(t,e){d.info("Extracting classes"),e.db.clear();try{return e.parse(t),e.db.getClasses()}catch(n){return d.error(n),{}}},draw:function(t,e,n,i){d.info("Drawing flowchart"),i.db.clear();const{securityLevel:a,flowchart:r}=Ry();let o;"sandbox"===a&&(o=un("#i"+e));const s=un("sandbox"===a?o.nodes()[0].contentDocument.body:"body"),c="sandbox"===a?o.nodes()[0].contentDocument:document;try{i.parser.parse(t)}catch{d.debug("Parsing failed")}let l=i.db.getDirection();void 0===l&&(l="TD");const u=r.nodeSpacing||50,h=r.rankSpacing||50,f=new hA({multigraph:!0,compound:!0}).setGraph({rankdir:l,nodesep:u,ranksep:h,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));let g;const p=i.db.getSubGraphs();for(let d=p.length-1;d>=0;d--)g=p[d],i.db.addVertex(g.id,g.title,"group",void 0,g.classes);const b=i.db.getVertices();d.warn("Get vertices",b);const m=i.db.getEdges();let y=0;for(y=p.length-1;y>=0;y--){g=p[y],dn("cluster").append("text");for(let t=0;t<g.nodes.length;t++)d.warn("Setting subgraph",g.nodes[t],i.db.lookUpDomId(g.nodes[t]),i.db.lookUpDomId(g.id)),f.setParent(i.db.lookUpDomId(g.nodes[t]),i.db.lookUpDomId(g.id))}wB(b,f,e,s,c,i),xB(m,f,i);const v=new JN;yB.addToRender(v),v.arrows().none=function(t,e,n,i){lN(t.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").append("path").attr("d","M 0 0 L 0 0 L 0 0 z"),n[i+"Style"])},v.arrows().normal=function(t,e){t.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").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowheadPath").style("stroke-width",1).style("stroke-dasharray","1,0")};const w=s.select(`[id="${e}"]`),x=s.select("#"+e+" g");for(v(x,f),x.selectAll("g.node").attr("title",(function(){return i.db.getTooltip(this.id)})),i.db.indexNodes("subGraph"+y),y=0;y<p.length;y++)if(g=p[y],"undefined"!==g.title){const t=c.querySelectorAll("#"+e+' [id="'+i.db.lookUpDomId(g.id)+'"] rect'),n=c.querySelectorAll("#"+e+' [id="'+i.db.lookUpDomId(g.id)+'"]'),a=t[0].x.baseVal.value,r=t[0].y.baseVal.value,o=t[0].width.baseVal.value,s=un(n[0]).select(".label");s.attr("transform",`translate(${a+o/2}, ${r+14})`),s.attr("id",e+"Text");for(let e=0;e<g.classes.length;e++)n[0].classList.add(g.classes[e])}if(!r.htmlLabels){const t=c.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const e of t){const t=e.getBBox(),n=c.createElementNS("http://www.w3.org/2000/svg","rect");n.setAttribute("rx",0),n.setAttribute("ry",0),n.setAttribute("width",t.width),n.setAttribute("height",t.height),e.insertBefore(n,e.firstChild)}}Oy(f,w,r.diagramPadding,r.useMaxWidth),Object.keys(b).forEach((function(t){const n=b[t];if(n.link){const r=s.select("#"+e+' [id="'+i.db.lookUpDomId(t)+'"]');if(r){const t=c.createElementNS("http://www.w3.org/2000/svg","a");t.setAttributeNS("http://www.w3.org/2000/svg","class",n.classes.join(" ")),t.setAttributeNS("http://www.w3.org/2000/svg","href",n.link),t.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),"sandbox"===a?t.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):n.linkTarget&&t.setAttributeNS("http://www.w3.org/2000/svg","target",n.linkTarget);const e=r.insert((function(){return t}),":first-child"),i=r.select(".label-container");i&&e.append((function(){return i.node()}));const o=r.select(".label");o&&e.append((function(){return o.node()}))}}}))}},_B={},kB=function(t,e,n,i,a,r){const o=i.select(`[id="${n}"]`);Object.keys(t).forEach((function(n){const i=t[n];let s="default";i.classes.length>0&&(s=i.classes.join(" "));const c=em(i.styles);let l,u=void 0!==i.text?i.text:i.id;if(Xd(Ry().flowchart.htmlLabels)){const t={label:u.replace(/fa[blrs]?:fa-[\w-]+/g,(t=>`<i class='${t.replace(":"," ")}'></i>`))};l=mN(o,t).node(),l.parentNode.removeChild(l)}else{const t=a.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",c.labelStyle.replace("color:","fill:"));const e=u.split(Qd.lineBreakRegex);for(const n of e){const e=a.createElementNS("http://www.w3.org/2000/svg","tspan");e.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),e.setAttribute("dy","1em"),e.setAttribute("x","1"),e.textContent=n,t.appendChild(e)}l=t}let h=0,f="";switch(i.type){case"round":h=5,f="rect";break;case"square":case"group":default:f="rect";break;case"diamond":f="question";break;case"hexagon":f="hexagon";break;case"odd":case"odd_right":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"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"doublecircle":f="doublecircle"}e.setNode(i.id,{labelStyle:c.labelStyle,shape:f,labelText:u,rx:h,ry:h,class:s,style:c.style,id:i.id,link:i.link,linkTarget:i.linkTarget,tooltip:r.db.getTooltip(i.id)||"",domId:r.db.lookUpDomId(i.id),haveCallback:i.haveCallback,width:"group"===i.type?500:void 0,dir:i.dir,type:i.type,props:i.props,padding:Ry().flowchart.padding}),d.info("setNode",{labelStyle:c.labelStyle,shape:f,labelText:u,rx:h,ry:h,class:s,style:c.style,id:i.id,domId:r.db.lookUpDomId(i.id),width:"group"===i.type?500:void 0,type:i.type,dir:i.dir,props:i.props,padding:Ry().flowchart.padding})}))},EB=function(t,e,n){d.info("abc78 edges = ",t);let i,a,r=0,o={};if(void 0!==t.defaultStyle){const e=em(t.defaultStyle);i=e.style,a=e.labelStyle}t.forEach((function(n){r++;var s="L-"+n.start+"-"+n.end;void 0===o[s]?(o[s]=0,d.info("abc78 new entry",s,o[s])):(o[s]++,d.info("abc78 new entry",s,o[s]));let c=s+"-"+o[s];d.info("abc78 new link id to be used is",s,c,o[s]);var l="LS-"+n.start,u="LE-"+n.end;const h={style:"",labelStyle:""};switch(h.minlen=n.length||1,"arrow_open"===n.type?h.arrowhead="none":h.arrowhead="normal",h.arrowTypeStart="arrow_open",h.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":h.arrowTypeStart="arrow_cross";case"arrow_cross":h.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":h.arrowTypeStart="arrow_point";case"arrow_point":h.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":h.arrowTypeStart="arrow_circle";case"arrow_circle":h.arrowTypeEnd="arrow_circle"}let f="",g="";switch(n.stroke){case"normal":f="fill:none;",void 0!==i&&(f=i),void 0!==a&&(g=a),h.thickness="normal",h.pattern="solid";break;case"dotted":h.thickness="normal",h.pattern="dotted",h.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":h.thickness="thick",h.pattern="solid",h.style="stroke-width: 3.5px;fill:none;"}if(void 0!==n.style){const t=em(n.style);f=t.style,g=t.labelStyle}h.style=h.style+=f,h.labelStyle=h.labelStyle+=g,void 0!==n.interpolate?h.curve=Yb(n.interpolate,Pl):void 0!==t.defaultInterpolate?h.curve=Yb(t.defaultInterpolate,Pl):h.curve=Yb(_B.curve,Pl),void 0===n.text?void 0!==n.style&&(h.arrowheadStyle="fill: #333"):(h.arrowheadStyle="fill: #333",h.labelpos="c"),h.labelType="text",h.label=n.text.replace(Qd.lineBreakRegex,"\n"),void 0===n.style&&(h.style=h.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),h.labelStyle=h.labelStyle.replace("color:","fill:"),h.id=c,h.classes="flowchart-link "+l+" "+u,e.setEdge(n.start,n.end,h,r)}))},CB={setConf:function(t){const e=Object.keys(t);for(const n of e)_B[n]=t[n]},addVertices:kB,addEdges:EB,getClasses:function(t,e){d.info("Extracting classes"),e.db.clear();try{return e.parse(t),e.db.getClasses()}catch{return}},draw:function(t,e,n,i){d.info("Drawing flowchart"),i.db.clear(),iN.setGen("gen-2"),i.parser.parse(t);let a=i.db.getDirection();void 0===a&&(a="TD");const{securityLevel:r,flowchart:o}=Ry(),s=o.nodeSpacing||50,c=o.rankSpacing||50;let l;"sandbox"===r&&(l=un("#i"+e));const u=un("sandbox"===r?l.nodes()[0].contentDocument.body:"body"),h="sandbox"===r?l.nodes()[0].contentDocument:document,f=new hA({multigraph:!0,compound:!0}).setGraph({rankdir:a,nodesep:s,ranksep:c,marginx:0,marginy:0}).setDefaultEdgeLabel((function(){return{}}));let g;const p=i.db.getSubGraphs();d.info("Subgraphs - ",p);for(let x=p.length-1;x>=0;x--)g=p[x],d.info("Subgraph - ",g),i.db.addVertex(g.id,g.title,"group",void 0,g.classes,g.dir);const b=i.db.getVertices(),m=i.db.getEdges();d.info("Edges",m);let y=0;for(y=p.length-1;y>=0;y--){g=p[y],dn("cluster").append("text");for(let t=0;t<g.nodes.length;t++)d.info("Setting up subgraphs",g.nodes[t],g.id),f.setParent(g.nodes[t],g.id)}kB(b,f,e,u,h,i),EB(m,f);const v=u.select(`[id="${e}"]`),w=u.select("#"+e+" g");if(cO(w,f,["point","circle","cross"],"flowchart",e),vm.insertTitle(v,"flowchartTitleText",o.titleTopMargin,i.db.getDiagramTitle()),Oy(f,v,o.diagramPadding,o.useMaxWidth),i.db.indexNodes("subGraph"+y),!o.htmlLabels){const t=h.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const e of t){const t=e.getBBox(),n=h.createElementNS("http://www.w3.org/2000/svg","rect");n.setAttribute("rx",0),n.setAttribute("ry",0),n.setAttribute("width",t.width),n.setAttribute("height",t.height),e.insertBefore(n,e.firstChild)}}Object.keys(b).forEach((function(t){const n=b[t];if(n.link){const i=un("#"+e+' [id="'+t+'"]');if(i){const t=h.createElementNS("http://www.w3.org/2000/svg","a");t.setAttributeNS("http://www.w3.org/2000/svg","class",n.classes.join(" ")),t.setAttributeNS("http://www.w3.org/2000/svg","href",n.link),t.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),"sandbox"===r?t.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):n.linkTarget&&t.setAttributeNS("http://www.w3.org/2000/svg","target",n.linkTarget);const e=i.insert((function(){return t}),":first-child"),a=i.select(".label-container");a&&e.append((function(){return a.node()}));const o=i.select(".label");o&&e.append((function(){return o.node()}))}}}))}};var SB=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,3],n=[1,5],i=[7,9,11,12,13,14,15,16,17,18,19,20,21,23,25,26,28,35,40],a=[1,15],r=[1,16],o=[1,17],s=[1,18],c=[1,19],l=[1,20],u=[1,21],d=[1,22],h=[1,23],f=[1,24],g=[1,25],p=[1,26],b=[1,27],m=[1,29],y=[1,31],v=[1,34],w=[5,7,9,11,12,13,14,15,16,17,18,19,20,21,23,25,26,28,35,40],x={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,gantt:5,document:6,EOF:7,line:8,SPACE:9,statement:10,NL:11,dateFormat:12,inclusiveEndDates:13,topAxis:14,axisFormat:15,tickInterval:16,excludes:17,includes:18,todayMarker:19,title:20,acc_title:21,acc_title_value:22,acc_descr:23,acc_descr_value:24,acc_descr_multiline_value:25,section:26,clickStatement:27,taskTxt:28,taskData:29,openDirective:30,typeDirective:31,closeDirective:32,":":33,argDirective:34,click:35,callbackname:36,callbackargs:37,href:38,clickStatementDebug:39,open_directive:40,type_directive:41,arg_directive:42,close_directive:43,$accept:0,$end:1},terminals_:{2:"error",5:"gantt",7:"EOF",9:"SPACE",11:"NL",12:"dateFormat",13:"inclusiveEndDates",14:"topAxis",15:"axisFormat",16:"tickInterval",17:"excludes",18:"includes",19:"todayMarker",20:"title",21:"acc_title",22:"acc_title_value",23:"acc_descr",24:"acc_descr_value",25:"acc_descr_multiline_value",26:"section",28:"taskTxt",29:"taskData",33:":",35:"click",36:"callbackname",37:"callbackargs",38:"href",40:"open_directive",41:"type_directive",42:"arg_directive",43:"close_directive"},productions_:[0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[27,2],[27,3],[27,3],[27,4],[27,3],[27,4],[27,2],[39,2],[39,3],[39,3],[39,4],[39,3],[39,4],[39,2],[30,1],[31,1],[34,1],[32,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 2:return r[s-1];case 3:case 7:case 8:this.$=[];break;case 4:r[s-1].push(r[s]),this.$=r[s-1];break;case 5:case 6:this.$=r[s];break;case 9:i.setDateFormat(r[s].substr(11)),this.$=r[s].substr(11);break;case 10:i.enableInclusiveEndDates(),this.$=r[s].substr(18);break;case 11:i.TopAxis(),this.$=r[s].substr(8);break;case 12:i.setAxisFormat(r[s].substr(11)),this.$=r[s].substr(11);break;case 13:i.setTickInterval(r[s].substr(13)),this.$=r[s].substr(13);break;case 14:i.setExcludes(r[s].substr(9)),this.$=r[s].substr(9);break;case 15:i.setIncludes(r[s].substr(9)),this.$=r[s].substr(9);break;case 16:i.setTodayMarker(r[s].substr(12)),this.$=r[s].substr(12);break;case 17:i.setDiagramTitle(r[s].substr(6)),this.$=r[s].substr(6);break;case 18:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 19:case 20:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 21:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 23:i.addTask(r[s-1],r[s]),this.$="task";break;case 27:this.$=r[s-1],i.setClickEvent(r[s-1],r[s],null);break;case 28:this.$=r[s-2],i.setClickEvent(r[s-2],r[s-1],r[s]);break;case 29:this.$=r[s-2],i.setClickEvent(r[s-2],r[s-1],null),i.setLink(r[s-2],r[s]);break;case 30:this.$=r[s-3],i.setClickEvent(r[s-3],r[s-2],r[s-1]),i.setLink(r[s-3],r[s]);break;case 31:this.$=r[s-2],i.setClickEvent(r[s-2],r[s],null),i.setLink(r[s-2],r[s-1]);break;case 32:this.$=r[s-3],i.setClickEvent(r[s-3],r[s-1],r[s]),i.setLink(r[s-3],r[s-2]);break;case 33:this.$=r[s-1],i.setLink(r[s-1],r[s]);break;case 34:case 40:this.$=r[s-1]+" "+r[s];break;case 35:case 36:case 38:this.$=r[s-2]+" "+r[s-1]+" "+r[s];break;case 37:case 39:this.$=r[s-3]+" "+r[s-2]+" "+r[s-1]+" "+r[s];break;case 41:i.parseDirective("%%{","open_directive");break;case 42:i.parseDirective(r[s],"type_directive");break;case 43:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 44:i.parseDirective("}%%","close_directive","gantt")}},table:[{3:1,4:2,5:e,30:4,40:n},{1:[3]},{3:6,4:2,5:e,30:4,40:n},t(i,[2,3],{6:7}),{31:8,41:[1,9]},{41:[2,41]},{1:[2,1]},{4:30,7:[1,10],8:11,9:[1,12],10:13,11:[1,14],12:a,13:r,14:o,15:s,16:c,17:l,18:u,19:d,20:h,21:f,23:g,25:p,26:b,27:28,28:m,30:4,35:y,40:n},{32:32,33:[1,33],43:v},t([33,43],[2,42]),t(i,[2,8],{1:[2,2]}),t(i,[2,4]),{4:30,10:35,12:a,13:r,14:o,15:s,16:c,17:l,18:u,19:d,20:h,21:f,23:g,25:p,26:b,27:28,28:m,30:4,35:y,40:n},t(i,[2,6]),t(i,[2,7]),t(i,[2,9]),t(i,[2,10]),t(i,[2,11]),t(i,[2,12]),t(i,[2,13]),t(i,[2,14]),t(i,[2,15]),t(i,[2,16]),t(i,[2,17]),{22:[1,36]},{24:[1,37]},t(i,[2,20]),t(i,[2,21]),t(i,[2,22]),{29:[1,38]},t(i,[2,24]),{36:[1,39],38:[1,40]},{11:[1,41]},{34:42,42:[1,43]},{11:[2,44]},t(i,[2,5]),t(i,[2,18]),t(i,[2,19]),t(i,[2,23]),t(i,[2,27],{37:[1,44],38:[1,45]}),t(i,[2,33],{36:[1,46]}),t(w,[2,25]),{32:47,43:v},{43:[2,43]},t(i,[2,28],{38:[1,48]}),t(i,[2,29]),t(i,[2,31],{37:[1,49]}),{11:[1,50]},t(i,[2,30]),t(i,[2,32]),t(w,[2,26])],defaultActions:{5:[2,41],6:[2,1],34:[2,44],43:[2,43]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},R={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),40;case 1:return this.begin("type_directive"),41;case 2:return this.popState(),this.begin("arg_directive"),33;case 3:return this.popState(),this.popState(),43;case 4:return 42;case 5:return this.begin("acc_title"),21;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),23;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:case 20:case 23:case 26:case 29:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:case 13:case 14:case 16:case 17:case 18:break;case 15:return 11;case 19:this.begin("href");break;case 21:return 38;case 22:this.begin("callbackname");break;case 24:this.popState(),this.begin("callbackargs");break;case 25:return 36;case 27:return 37;case 28:this.begin("click");break;case 30:return 35;case 31:return 5;case 32:return 12;case 33:return 13;case 34:return 14;case 35:return 15;case 36:return 16;case 37:return 18;case 38:return 17;case 39:return 19;case 40:return"date";case 41:return 20;case 42:return"accDescription";case 43:return 26;case 44:return 28;case 45:return 29;case 46:return 33;case 47:return 7;case 48:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/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,/^(?:%[^\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,/^(?:\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:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[26,27],inclusive:!1},callbackname:{rules:[23,24,25],inclusive:!1},href:{rules:[20,21],inclusive:!1},click:{rules:[29,30],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,22,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],inclusive:!0}}};function _(){this.yy={}}return x.lexer=R,_.prototype=x,x.Parser=_,new _}();SB.parser=SB;const TB=SB,AB=t=>null!==t.match(/^\s*gantt/);var DB={};!function(t,e){!function(e,n){t.exports=n()}(0,(function(){var t="day";return function(e,n,i){var a=function(e){return e.add(4-e.isoWeekday(),t)},r=n.prototype;r.isoWeekYear=function(){return a(this).year()},r.isoWeek=function(e){if(!this.$utils().u(e))return this.add(7*(e-this.isoWeek()),t);var n,r,o,s=a(this),c=(n=this.isoWeekYear(),o=4-(r=(this.$u?i.utc:i)().year(n).startOf("year")).isoWeekday(),r.isoWeekday()>4&&(o+=7),r.add(o,t));return s.diff(c,"week")+1},r.isoWeekday=function(t){return this.$utils().u(t)?this.day()||7:this.day(this.day()%7?t:t-7)};var o=r.startOf;r.startOf=function(t,e){var n=this.$utils(),i=!!n.u(e)||e;return"isoweek"===n.p(t)?i?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):o.bind(this)(t,e)}}}))}({get exports(){return DB},set exports(t){DB=t}});const IB=DB;var LB={};!function(t,e){!function(e,n){t.exports=n()}(0,(function(){var t={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"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,r={},o=function(t){return(t=+t)+(t>68?1900:2e3)},s=function(t){return function(e){this[t]=+e}},c=[/[+-]\d\d:?(\d\d)?|Z/,function(t){(this.zone||(this.zone={})).offset=function(t){if(!t||"Z"===t)return 0;var e=t.match(/([+-]|\d\d)/g),n=60*e[1]+(+e[2]||0);return 0===n?0:"+"===e[0]?-n:n}(t)}],l=function(t){var e=r[t];return e&&(e.indexOf?e:e.s.concat(e.f))},u=function(t,e){var n,i=r.meridiem;if(i){for(var a=1;a<=24;a+=1)if(t.indexOf(i(a,0,e))>-1){n=a>12;break}}else n=t===(e?"pm":"PM");return n},d={A:[a,function(t){this.afternoon=u(t,!1)}],a:[a,function(t){this.afternoon=u(t,!0)}],S:[/\d/,function(t){this.milliseconds=100*+t}],SS:[n,function(t){this.milliseconds=10*+t}],SSS:[/\d{3}/,function(t){this.milliseconds=+t}],s:[i,s("seconds")],ss:[i,s("seconds")],m:[i,s("minutes")],mm:[i,s("minutes")],H:[i,s("hours")],h:[i,s("hours")],HH:[i,s("hours")],hh:[i,s("hours")],D:[i,s("day")],DD:[n,s("day")],Do:[a,function(t){var e=r.ordinal,n=t.match(/\d+/);if(this.day=n[0],e)for(var i=1;i<=31;i+=1)e(i).replace(/\[|\]/g,"")===t&&(this.day=i)}],M:[i,s("month")],MM:[n,s("month")],MMM:[a,function(t){var e=l("months"),n=(l("monthsShort")||e.map((function(t){return t.slice(0,3)}))).indexOf(t)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[a,function(t){var e=l("months").indexOf(t)+1;if(e<1)throw new Error;this.month=e%12||e}],Y:[/[+-]?\d+/,s("year")],YY:[n,function(t){this.year=o(t)}],YYYY:[/\d{4}/,s("year")],Z:c,ZZ:c};function h(n){var i,a;i=n,a=r&&r.formats;for(var o=(n=i.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(e,n,i){var r=i&&i.toUpperCase();return n||a[i]||t[i]||a[r].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}))).match(e),s=o.length,c=0;c<s;c+=1){var l=o[c],u=d[l],h=u&&u[0],f=u&&u[1];o[c]=f?{regex:h,parser:f}:l.replace(/^\[|\]$/g,"")}return function(t){for(var e={},n=0,i=0;n<s;n+=1){var a=o[n];if("string"==typeof a)i+=a.length;else{var r=a.regex,c=a.parser,l=t.slice(i),u=r.exec(l)[0];c.call(e,u),t=t.replace(u,"")}}return function(t){var e=t.afternoon;if(void 0!==e){var n=t.hours;e?n<12&&(t.hours+=12):12===n&&(t.hours=0),delete t.afternoon}}(e),e}}return function(t,e,n){n.p.customParseFormat=!0,t&&t.parseTwoDigitYear&&(o=t.parseTwoDigitYear);var i=e.prototype,a=i.parse;i.parse=function(t){var e=t.date,i=t.utc,o=t.args;this.$u=i;var s=o[1];if("string"==typeof s){var c=!0===o[2],l=!0===o[3],u=c||l,d=o[2];l&&(d=o[2]),r=this.$locale(),!c&&d&&(r=n.Ls[d]),this.$d=function(t,e,n){try{if(["x","X"].indexOf(e)>-1)return new Date(("X"===e?1e3:1)*t);var i=h(e)(t),a=i.year,r=i.month,o=i.day,s=i.hours,c=i.minutes,l=i.seconds,u=i.milliseconds,d=i.zone,f=new Date,g=o||(a||r?1:f.getDate()),p=a||f.getFullYear(),b=0;a&&!r||(b=r>0?r-1:f.getMonth());var m=s||0,y=c||0,v=l||0,w=u||0;return d?new Date(Date.UTC(p,b,g,m,y,v,w+60*d.offset*1e3)):n?new Date(Date.UTC(p,b,g,m,y,v,w)):new Date(p,b,g,m,y,v,w)}catch{return new Date("")}}(e,s,i),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&e!=this.format(s)&&(this.$d=new Date("")),r={}}else if(s instanceof Array)for(var f=s.length,g=1;g<=f;g+=1){o[1]=s[g-1];var p=n.apply(this,o);if(p.isValid()){this.$d=p.$d,this.$L=p.$L,this.init();break}g===f&&(this.$d=new Date(""))}else a.call(this,t)}}}))}({get exports(){return LB},set exports(t){LB=t}});const OB=LB;var MB={};!function(t,e){!function(e,n){t.exports=n()}(0,(function(){return function(t,e){var n=e.prototype,i=n.format;n.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return i.bind(this)(t);var a=this.$utils(),r=(t||"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(t){switch(t){case"Q":return Math.ceil((e.$M+1)/3);case"Do":return n.ordinal(e.$D);case"gggg":return e.weekYear();case"GGGG":return e.isoWeekYear();case"wo":return n.ordinal(e.week(),"W");case"w":case"ww":return a.s(e.week(),"w"===t?1:2,"0");case"W":case"WW":return a.s(e.isoWeek(),"W"===t?1:2,"0");case"k":case"kk":return a.s(String(0===e.$H?24:e.$H),"k"===t?1:2,"0");case"X":return Math.floor(e.$d.getTime()/1e3);case"x":return e.$d.getTime();case"z":return"["+e.offsetName()+"]";case"zzz":return"["+e.offsetName("long")+"]";default:return t}}));return i.bind(this)(r)}}}))}({get exports(){return MB},set exports(t){MB=t}});const NB=MB;l.extend(IB),l.extend(OB),l.extend(NB);let BB,PB="",FB="",jB="",$B=[],zB=[],HB={},UB=[],VB=[],qB="";const WB=["active","done","crit","milestone"];let YB=[],GB=!1,ZB=!1,KB=0;const XB=function(){UB=[],VB=[],qB="",YB=[],rP=0,lP=void 0,uP=void 0,dP=[],PB="",FB="",BB=void 0,jB="",$B=[],zB=[],GB=!1,ZB=!1,KB=0,HB={},Qy()},JB=function(){let t=gP();const e=10;let n=0;for(;!t&&n<e;)t=gP(),n++;return VB=dP,VB},QB=function(t,e,n,i){return!i.includes(t.format(e.trim()))&&(!!(t.isoWeekday()>=6&&n.includes("weekends")||n.includes(t.format("dddd").toLowerCase()))||n.includes(t.format(e.trim())))},tP=function(t,e,n,i){if(!n.length||t.manualEndTime)return;let a,r;a=t.startTime instanceof Date?l(t.startTime):l(t.startTime,e,!0),a=a.add(1,"d"),r=t.endTime instanceof Date?l(t.endTime):l(t.endTime,e,!0);const[o,s]=eP(a,r,e,n,i);t.endTime=o.toDate(),t.renderEndTime=s},eP=function(t,e,n,i,a){let r=!1,o=null;for(;t<=e;)r||(o=e.toDate()),r=QB(t,n,i,a),r&&(e=e.add(1,"d")),t=t.add(1,"d");return[e,o]},nP=function(t,e,n){n=n.trim();const i=/^after\s+([\d\w- ]+)/.exec(n.trim());if(null!==i){let t=null;if(i[1].split(" ").forEach((function(e){let n=fP(e);void 0!==n&&(t?n.endTime>t.endTime&&(t=n):t=n)})),t)return t.endTime;{const t=new Date;return t.setHours(0,0,0,0),t}}let a=l(n,e.trim(),!0);if(a.isValid())return a.toDate();{d.debug("Invalid date:"+n),d.debug("With date format:"+e.trim());const t=new Date(n);if(void 0===t||isNaN(t.getTime()))throw new Error("Invalid date:"+n);return t}},iP=function(t){const e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return null!==e?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},aP=function(t,e,n,i=!1){n=n.trim();let a=l(n,e.trim(),!0);if(a.isValid())return i&&(a=a.add(1,"d")),a.toDate();let r=l(t);const[o,s]=iP(n);if(!Number.isNaN(o)){const t=r.add(o,s);t.isValid()&&(r=t)}return r.toDate()};let rP=0;const oP=function(t){return void 0===t?(rP+=1,"task"+rP):t},sP=function(t,e){let n;n=":"===e.substr(0,1)?e.substr(1,e.length):e;const i=n.split(","),a={};wP(i,a,WB);for(let o=0;o<i.length;o++)i[o]=i[o].trim();let r="";switch(i.length){case 1:a.id=oP(),a.startTime=t.endTime,r=i[0];break;case 2:a.id=oP(),a.startTime=nP(void 0,PB,i[0]),r=i[1];break;case 3:a.id=oP(i[0]),a.startTime=nP(void 0,PB,i[1]),r=i[2]}return r&&(a.endTime=aP(a.startTime,PB,r,GB),a.manualEndTime=l(r,"YYYY-MM-DD",!0).isValid(),tP(a,PB,zB,$B)),a},cP=function(t,e){let n;n=":"===e.substr(0,1)?e.substr(1,e.length):e;const i=n.split(","),a={};wP(i,a,WB);for(let r=0;r<i.length;r++)i[r]=i[r].trim();switch(i.length){case 1:a.id=oP(),a.startTime={type:"prevTaskEnd",id:t},a.endTime={data:i[0]};break;case 2:a.id=oP(),a.startTime={type:"getStartDate",startData:i[0]},a.endTime={data:i[1]};break;case 3:a.id=oP(i[0]),a.startTime={type:"getStartDate",startData:i[1]},a.endTime={data:i[2]}}return a};let lP,uP,dP=[];const hP={},fP=function(t){const e=hP[t];return dP[e]},gP=function(){const t=function(t){const e=dP[t];let n="";switch(dP[t].raw.startTime.type){case"prevTaskEnd":{const t=fP(e.prevTaskId);e.startTime=t.endTime;break}case"getStartDate":n=nP(void 0,PB,dP[t].raw.startTime.startData),n&&(dP[t].startTime=n)}return dP[t].startTime&&(dP[t].endTime=aP(dP[t].startTime,PB,dP[t].raw.endTime.data,GB),dP[t].endTime&&(dP[t].processed=!0,dP[t].manualEndTime=l(dP[t].raw.endTime.data,"YYYY-MM-DD",!0).isValid(),tP(dP[t],PB,zB,$B))),dP[t].processed};let e=!0;for(const[n,i]of dP.entries())t(n),e=e&&i.processed;return e},pP=function(t,e){let n=e;"loose"!==Ry().securityLevel&&(n=p(e)),t.split(",").forEach((function(t){void 0!==fP(t)&&(yP(t,(()=>{window.open(n,"_self")})),HB[t]=n)})),bP(t,"clickable")},bP=function(t,e){t.split(",").forEach((function(t){let n=fP(t);void 0!==n&&n.classes.push(e)}))},mP=function(t,e,n){if("loose"!==Ry().securityLevel||void 0===e)return;let i=[];if("string"==typeof n){i=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t<i.length;t++){let e=i[t].trim();'"'===e.charAt(0)&&'"'===e.charAt(e.length-1)&&(e=e.substr(1,e.length-2)),i[t]=e}}0===i.length&&i.push(t),void 0!==fP(t)&&yP(t,(()=>{vm.runFunc(e,...i)}))},yP=function(t,e){YB.push((function(){const n=document.querySelector(`[id="${t}"]`);null!==n&&n.addEventListener("click",(function(){e()}))}),(function(){const n=document.querySelector(`[id="${t}-text"]`);null!==n&&n.addEventListener("click",(function(){e()}))}))},vP={parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().gantt,clear:XB,setDateFormat:function(t){PB=t},getDateFormat:function(){return PB},enableInclusiveEndDates:function(){GB=!0},endDatesAreInclusive:function(){return GB},enableTopAxis:function(){ZB=!0},topAxisEnabled:function(){return ZB},setAxisFormat:function(t){FB=t},getAxisFormat:function(){return FB},setTickInterval:function(t){BB=t},getTickInterval:function(){return BB},setTodayMarker:function(t){jB=t},getTodayMarker:function(){return jB},setAccTitle:tv,getAccTitle:ev,setDiagramTitle:av,getDiagramTitle:rv,setAccDescription:nv,getAccDescription:iv,addSection:function(t){qB=t,UB.push(t)},getSections:function(){return UB},getTasks:JB,addTask:function(t,e){const n={section:qB,type:qB,processed:!1,manualEndTime:!1,renderEndTime:null,raw:{data:e},task:t,classes:[]},i=cP(uP,e);n.raw.startTime=i.startTime,n.raw.endTime=i.endTime,n.id=i.id,n.prevTaskId=uP,n.active=i.active,n.done=i.done,n.crit=i.crit,n.milestone=i.milestone,n.order=KB,KB++;const a=dP.push(n);uP=n.id,hP[n.id]=a-1},findTaskById:fP,addTaskOrg:function(t,e){const n={section:qB,type:qB,description:t,task:t,classes:[]},i=sP(lP,e);n.startTime=i.startTime,n.endTime=i.endTime,n.id=i.id,n.active=i.active,n.done=i.done,n.crit=i.crit,n.milestone=i.milestone,lP=n,VB.push(n)},setIncludes:function(t){$B=t.toLowerCase().split(/[\s,]+/)},getIncludes:function(){return $B},setExcludes:function(t){zB=t.toLowerCase().split(/[\s,]+/)},getExcludes:function(){return zB},setClickEvent:function(t,e,n){t.split(",").forEach((function(t){mP(t,e,n)})),bP(t,"clickable")},setLink:pP,getLinks:function(){return HB},bindFunctions:function(t){YB.forEach((function(e){e(t)}))},parseDuration:iP,isInvalidDate:QB};function wP(t,e,n){let i=!0;for(;i;)i=!1,n.forEach((function(n){const a=new RegExp("^\\s*"+n+"\\s*$");t[0].match(a)&&(e[n]=!0,t.shift(1),i=!0)}))}let xP;const RP={setConf:function(){d.debug("Something is calling, setConf, remove the call")},draw:function(t,e,n,i){const a=Ry().gantt,r=Ry().securityLevel;let o;"sandbox"===r&&(o=un("#i"+e));const s=un("sandbox"===r?o.nodes()[0].contentDocument.body:"body"),c="sandbox"===r?o.nodes()[0].contentDocument:document,u=c.getElementById(e);xP=u.parentElement.offsetWidth,void 0===xP&&(xP=1200),void 0!==a.useWidth&&(xP=a.useWidth);const d=i.db.getTasks(),h=d.length*(a.barHeight+a.barGap)+2*a.topPadding;u.setAttribute("viewBox","0 0 "+xP+" "+h);const f=s.select(`[id="${e}"]`),g=hl().domain([U(d,(function(t){return t.startTime})),H(d,(function(t){return t.endTime}))]).rangeRound([0,xP-a.leftPadding-a.rightPadding]);let p=[];for(const l of d)p.push(l.type);const b=p;function m(t,e){const n=t.startTime,i=e.startTime;let a=0;return n>i?a=1:n<i&&(a=-1),a}function y(t,e,n){const r=a.barHeight,o=r+a.barGap,s=a.topPadding,c=a.leftPadding,l=Fo().domain([0,p.length]).range(["#00B9FA","#F95002"]).interpolate(Gi);w(o,s,c,e,n,t,i.db.getExcludes(),i.db.getIncludes()),x(c,s,e,n),v(t,o,s,c,r,l,e),R(o,s),_(c,s,e,n)}function v(t,n,r,o,s,c,l){f.append("g").selectAll("rect").data(t).enter().append("rect").attr("x",0).attr("y",(function(t,e){return t.order*n+r-2})).attr("width",(function(){return l-a.rightPadding/2})).attr("height",n).attr("class",(function(t){for(const[e,n]of p.entries())if(t.type===n)return"section section"+e%a.numberSectionStyles;return"section section0"}));const u=f.append("g").selectAll("rect").data(t).enter(),d=i.db.getLinks();if(u.append("rect").attr("id",(function(t){return t.id})).attr("rx",3).attr("ry",3).attr("x",(function(t){return t.milestone?g(t.startTime)+o+.5*(g(t.endTime)-g(t.startTime))-.5*s:g(t.startTime)+o})).attr("y",(function(t,e){return t.order*n+r})).attr("width",(function(t){return t.milestone?s:g(t.renderEndTime||t.endTime)-g(t.startTime)})).attr("height",s).attr("transform-origin",(function(t,e){return e=t.order,(g(t.startTime)+o+.5*(g(t.endTime)-g(t.startTime))).toString()+"px "+(e*n+r+.5*s).toString()+"px"})).attr("class",(function(t){const e="task";let n="";t.classes.length>0&&(n=t.classes.join(" "));let i=0;for(const[o,s]of p.entries())t.type===s&&(i=o%a.numberSectionStyles);let r="";return t.active?t.crit?r+=" activeCrit":r=" active":t.done?r=t.crit?" doneCrit":" done":t.crit&&(r+=" crit"),0===r.length&&(r=" task"),t.milestone&&(r=" milestone "+r),r+=i,r+=" "+n,e+r})),u.append("text").attr("id",(function(t){return t.id+"-text"})).text((function(t){return t.task})).attr("font-size",a.fontSize).attr("x",(function(t){let e=g(t.startTime),n=g(t.renderEndTime||t.endTime);t.milestone&&(e+=.5*(g(t.endTime)-g(t.startTime))-.5*s),t.milestone&&(n=e+s);const i=this.getBBox().width;return i>n-e?n+i+1.5*a.leftPadding>l?e+o-5:n+o+5:(n-e)/2+e+o})).attr("y",(function(t,e){return t.order*n+a.barHeight/2+(a.fontSize/2-2)+r})).attr("text-height",s).attr("class",(function(t){const e=g(t.startTime);let n=g(t.endTime);t.milestone&&(n=e+s);const i=this.getBBox().width;let r="";t.classes.length>0&&(r=t.classes.join(" "));let o=0;for(const[s,l]of p.entries())t.type===l&&(o=s%a.numberSectionStyles);let c="";return t.active&&(c=t.crit?"activeCritText"+o:"activeText"+o),t.done?c=t.crit?c+" doneCritText"+o:c+" doneText"+o:t.crit&&(c=c+" critText"+o),t.milestone&&(c+=" milestoneText"),i>n-e?n+i+1.5*a.leftPadding>l?r+" taskTextOutsideLeft taskTextOutside"+o+" "+c:r+" taskTextOutsideRight taskTextOutside"+o+" "+c+" width-"+i:r+" taskText taskText"+o+" "+c+" width-"+i})),"sandbox"===Ry().securityLevel){let t;t=un("#i"+e);const n=t.nodes()[0].contentDocument;u.filter((function(t){return void 0!==d[t.id]})).each((function(t){var e=n.querySelector("#"+t.id),i=n.querySelector("#"+t.id+"-text");const a=e.parentNode;var r=n.createElement("a");r.setAttribute("xlink:href",d[t.id]),r.setAttribute("target","_top"),a.appendChild(r),r.appendChild(e),r.appendChild(i)}))}}function w(t,e,n,r,o,s,c,u){const d=s.reduce(((t,{startTime:e})=>t?Math.min(t,e):e),0),h=s.reduce(((t,{endTime:e})=>t?Math.max(t,e):e),0),p=i.db.getDateFormat();if(!d||!h)return;const b=[];let m=null,y=l(d);for(;y.valueOf()<=h;)i.db.isInvalidDate(y,p,c,u)?m?m.end=y:m={start:y,end:y}:m&&(b.push(m),m=null),y=y.add(1,"d");f.append("g").selectAll("rect").data(b).enter().append("rect").attr("id",(function(t){return"exclude-"+t.start.format("YYYY-MM-DD")})).attr("x",(function(t){return g(t.start)+n})).attr("y",a.gridLineStartPadding).attr("width",(function(t){const e=t.end.add(1,"day");return g(e)-g(t.start)})).attr("height",o-e-a.gridLineStartPadding).attr("transform-origin",(function(e,i){return(g(e.start)+n+.5*(g(e.end)-g(e.start))).toString()+"px "+(i*t+.5*o).toString()+"px"})).attr("class","exclude-range")}function x(t,e,n,r){let o=it(g).tickSize(-r+e+a.gridLineStartPadding).tickFormat(Vs(i.db.getAxisFormat()||a.axisFormat||"%Y-%m-%d"));const s=/^([1-9]\d*)(minute|hour|day|week|month)$/.exec(i.db.getTickInterval()||a.tickInterval);if(null!==s){const t=s[1];switch(s[2]){case"minute":o.ticks(es.every(t));break;case"hour":o.ticks(is.every(t));break;case"day":o.ticks(rs.every(t));break;case"week":o.ticks(ss.every(t));break;case"month":o.ticks(ps.every(t))}}if(f.append("g").attr("class","grid").attr("transform","translate("+t+", "+(r-50)+")").call(o).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),i.db.topAxisEnabled()||a.topAxis){let n=nt(g).tickSize(-r+e+a.gridLineStartPadding).tickFormat(Vs(i.db.getAxisFormat()||a.axisFormat||"%Y-%m-%d"));if(null!==s){const t=s[1];switch(s[2]){case"minute":n.ticks(es.every(t));break;case"hour":n.ticks(is.every(t));break;case"day":n.ticks(rs.every(t));break;case"week":n.ticks(ss.every(t));break;case"month":n.ticks(ps.every(t))}}f.append("g").attr("class","grid").attr("transform","translate("+t+", "+e+")").call(n).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}function R(t,e){const n=[];let i=0;for(const[a,r]of p.entries())n[a]=[r,C(r,b)];f.append("g").selectAll("text").data(n).enter().append((function(t){const e=t[0].split(Qd.lineBreakRegex),n=-(e.length-1)/2,i=c.createElementNS("http://www.w3.org/2000/svg","text");i.setAttribute("dy",n+"em");for(const[a,r]of e.entries()){const t=c.createElementNS("http://www.w3.org/2000/svg","tspan");t.setAttribute("alignment-baseline","central"),t.setAttribute("x","10"),a>0&&t.setAttribute("dy","1em"),t.textContent=r,i.appendChild(t)}return i})).attr("x",10).attr("y",(function(a,r){if(!(r>0))return a[1]*t/2+e;for(let o=0;o<r;o++)return i+=n[r-1][1],a[1]*t/2+i*t+e})).attr("font-size",a.sectionFontSize).attr("font-size",a.sectionFontSize).attr("class",(function(t){for(const[e,n]of p.entries())if(t[0]===n)return"sectionTitle sectionTitle"+e%a.numberSectionStyles;return"sectionTitle"}))}function _(t,e,n,r){const o=i.db.getTodayMarker();if("off"===o)return;const s=f.append("g").attr("class","today"),c=new Date,l=s.append("line");l.attr("x1",g(c)+t).attr("x2",g(c)+t).attr("y1",a.titleTopMargin).attr("y2",r-a.titleTopMargin).attr("class","today"),""!==o&&l.attr("style",o.replace(/,/g,";"))}function k(t){const e={},n=[];for(let i=0,a=t.length;i<a;++i)Object.prototype.hasOwnProperty.call(e,t[i])||(e[t[i]]=!0,n.push(t[i]));return n}function E(t){let e=t.length;const n={};for(;e;)n[t[--e]]=(n[t[e]]||0)+1;return n}function C(t,e){return E(e)[t]||0}p=k(p),d.sort(m),y(d,xP,h),Ly(f,h,xP,a.useMaxWidth),f.append("text").text(i.db.getDiagramTitle()).attr("x",xP/2).attr("y",a.titleTopMargin).attr("class","titleText")}};var _P=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[6,9,10],n={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,i,a,r,o){switch(r.length,a){case 1:return i;case 4:break;case 6:i.setInfo(!0)}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},t(e,[2,3]),t(e,[2,4]),t(e,[2,5]),t(e,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},i={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){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}}};function a(){this.yy={}}return n.lexer=i,a.prototype=n,n.Parser=a,new a}();_P.parser=_P;const kP=_P;var EP="",CP=!1;const SP={setMessage:t=>{d.debug("Setting message to: "+t),EP=t},getMessage:()=>EP,setInfo:t=>{CP=t},getInfo:()=>CP,clear:Qy},TP={draw:(t,e,n)=>{try{d.debug("Rendering info diagram\n"+t);const i=Ry().securityLevel;let a;"sandbox"===i&&(a=un("#i"+e));const r=un("sandbox"===i?a.nodes()[0].contentDocument.body:"body").select("#"+e);r.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size","32px").style("text-anchor","middle").text("v "+n),r.attr("height",100),r.attr("width",400)}catch(o){d.error("Error while rendering info diagram"),d.error(o.message)}}},AP=t=>null!==t.match(/^\s*info/);var DP=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,4],n=[1,5],i=[1,6],a=[1,7],r=[1,9],o=[1,11,13,15,17,19,20,26,27,28,29],s=[2,5],c=[1,6,11,13,15,17,19,20,26,27,28,29],l=[26,27,28],u=[2,8],d=[1,18],h=[1,19],f=[1,20],g=[1,21],p=[1,22],b=[1,23],m=[1,28],y=[6,26,27,28,29],v={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,PIE:6,document:7,showData:8,line:9,statement: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,openDirective:21,typeDirective:22,closeDirective:23,":":24,argDirective:25,NEWLINE:26,";":27,EOF:28,open_directive:29,type_directive:30,arg_directive:31,close_directive:32,$accept:0,$end:1},terminals_:{2:"error",6:"PIE",8:"showData",11:"txt",12:"value",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",24:":",26:"NEWLINE",27:";",28:"EOF",29:"open_directive",30:"type_directive",31:"arg_directive",32:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[21,1],[22,1],[25,1],[23,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 4:i.setShowData(!0);break;case 7:this.$=r[s-1];break;case 9:i.addSection(r[s-1],i.cleanupValue(r[s]));break;case 10:this.$=r[s].trim(),i.setDiagramTitle(this.$);break;case 11:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 12:case 13:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 14:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 21:i.parseDirective("%%{","open_directive");break;case 22:i.parseDirective(r[s],"type_directive");break;case 23:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 24:i.parseDirective("}%%","close_directive","pie")}},table:[{3:1,4:2,5:3,6:e,21:8,26:n,27:i,28:a,29:r},{1:[3]},{3:10,4:2,5:3,6:e,21:8,26:n,27:i,28:a,29:r},{3:11,4:2,5:3,6:e,21:8,26:n,27:i,28:a,29:r},t(o,s,{7:12,8:[1,13]}),t(c,[2,18]),t(c,[2,19]),t(c,[2,20]),{22:14,30:[1,15]},{30:[2,21]},{1:[2,1]},{1:[2,2]},t(l,u,{21:8,9:16,10:17,5:24,1:[2,3],11:d,13:h,15:f,17:g,19:p,20:b,29:r}),t(o,s,{7:25}),{23:26,24:[1,27],32:m},t([24,32],[2,22]),t(o,[2,6]),{4:29,26:n,27:i,28:a},{12:[1,30]},{14:[1,31]},{16:[1,32]},{18:[1,33]},t(l,[2,13]),t(l,[2,14]),t(l,[2,15]),t(l,u,{21:8,9:16,10:17,5:24,1:[2,4],11:d,13:h,15:f,17:g,19:p,20:b,29:r}),t(y,[2,16]),{25:34,31:[1,35]},t(y,[2,24]),t(o,[2,7]),t(l,[2,9]),t(l,[2,10]),t(l,[2,11]),t(l,[2,12]),{23:36,32:m},{32:[2,23]},t(y,[2,17])],defaultActions:{9:[2,21],10:[2,1],11:[2,2],35:[2,23]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},w={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),29;case 1:return this.begin("type_directive"),30;case 2:return this.popState(),this.begin("arg_directive"),24;case 3:return this.popState(),this.popState(),32;case 4:return 31;case 5:case 6:case 8:case 9:break;case 7:return 26;case 10:return this.begin("title"),13;case 11:return this.popState(),"title_value";case 12:return this.begin("acc_title"),15;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),17;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:case 20:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:this.begin("string");break;case 21:return"txt";case 22:return 6;case 23:return 8;case 24:return"value";case 25:return 28}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\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:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},title:{rules:[11],inclusive:!1},string:{rules:[20,21],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,12,14,16,19,22,23,24,25],inclusive:!0}}};function x(){this.yy={}}return v.lexer=w,x.prototype=v,v.Parser=x,new x}();DP.parser=DP;const IP=DP,LP=t=>null!==t.match(/^\s*pie/)||null!==t.match(/^\s*bar/);let OP={},MP=!1;const NP={parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().pie,addSection:function(t,e){t=Qd.sanitizeText(t,Ry()),void 0===OP[t]&&(OP[t]=e,d.debug("Added new section :",t))},getSections:()=>OP,cleanupValue:function(t){return":"===t.substring(0,1)&&(t=t.substring(1).trim()),Number(t.trim())},clear:function(){OP={},MP=!1,Qy()},setAccTitle:tv,getAccTitle:ev,setDiagramTitle:av,getDiagramTitle:rv,setShowData:function(t){MP=t},getShowData:function(){return MP},getAccDescription:iv,setAccDescription:nv};let BP,PP=Ry();const FP=450,jP={draw:(t,e,n,i)=>{try{PP=Ry(),d.debug("Rendering info diagram\n"+t);const n=Ry().securityLevel;let y;"sandbox"===n&&(y=un("#i"+e));const v=un("sandbox"===n?y.nodes()[0].contentDocument.body:"body"),w="sandbox"===n?y.nodes()[0].contentDocument:document;i.db.clear(),i.parser.parse(t),d.debug("Parsed info diagram");const x=w.getElementById(e);BP=x.parentElement.offsetWidth,void 0===BP&&(BP=1200),void 0!==PP.useWidth&&(BP=PP.useWidth),void 0!==PP.pie.useWidth&&(BP=PP.pie.useWidth);const R=v.select("#"+e);Ly(R,FP,BP,PP.pie.useMaxWidth),x.setAttribute("viewBox","0 0 "+BP+" "+FP);var a=40,r=18,o=4,s=Math.min(BP,FP)/2-a,c=R.append("g").attr("transform","translate("+BP/2+","+FP/2+")"),l=i.db.getSections(),u=0;Object.keys(l).forEach((function(t){u+=l[t]}));const _=PP.themeVariables;var h=[_.pie1,_.pie2,_.pie3,_.pie4,_.pie5,_.pie6,_.pie7,_.pie8,_.pie9,_.pie10,_.pie11,_.pie12],f=ko().range(h),g=Object.entries(l).map((function(t,e){return{order:e,name:t[0],value:t[1]}})),p=Ul().value((function(t){return t.value})).sort((function(t,e){return t.order-e.order}))(g),b=Ml().innerRadius(0).outerRadius(s);c.selectAll("mySlices").data(p).enter().append("path").attr("d",b).attr("fill",(function(t){return f(t.data.name)})).attr("class","pieCircle"),c.selectAll("mySlices").data(p).enter().append("text").text((function(t){return(t.data.value/u*100).toFixed(0)+"%"})).attr("transform",(function(t){return"translate("+b.centroid(t)+")"})).style("text-anchor","middle").attr("class","slice"),c.append("text").text(i.db.getDiagramTitle()).attr("x",0).attr("y",-(FP-50)/2).attr("class","pieTitleText");var m=c.selectAll(".legend").data(f.domain()).enter().append("g").attr("class","legend").attr("transform",(function(t,e){const n=r+o,i=n*f.domain().length/2;return"translate("+12*r+","+(e*n-i)+")"}));m.append("rect").attr("width",r).attr("height",r).style("fill",f).style("stroke",f),m.data(p).append("text").attr("x",r+o).attr("y",r-o).text((function(t){return i.db.getShowData()||PP.showData||PP.pie.showData?t.data.name+" ["+t.data.value+"]":t.data.name}))}catch(y){d.error("Error while rendering info diagram"),d.error(y)}}};var $P=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,3],n=[1,5],i=[1,6],a=[1,7],r=[1,8],o=[5,6,8,14,16,18,19,40,41,42,43,44,45,53,71,72],s=[1,22],c=[2,13],l=[1,26],u=[1,27],d=[1,28],h=[1,29],f=[1,30],g=[1,31],p=[1,24],b=[1,32],m=[1,33],y=[1,36],v=[71,72],w=[5,8,14,16,18,19,40,41,42,43,44,45,53,60,62,71,72],x=[1,56],R=[1,57],_=[1,58],k=[1,59],E=[1,60],C=[1,61],S=[1,62],T=[62,63],A=[1,74],D=[1,70],I=[1,71],L=[1,72],O=[1,73],M=[1,75],N=[1,79],B=[1,80],P=[1,77],F=[1,78],j=[5,8,14,16,18,19,40,41,42,43,44,45,53,71,72],$={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,openDirective:9,typeDirective:10,closeDirective:11,":":12,argDirective:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,requirementDef:23,elementDef:24,relationshipDef:25,requirementType:26,requirementName:27,STRUCT_START:28,requirementBody:29,ID:30,COLONSEP:31,id:32,TEXT:33,text:34,RISK:35,riskLevel:36,VERIFYMTHD:37,verifyType:38,STRUCT_STOP:39,REQUIREMENT:40,FUNCTIONAL_REQUIREMENT:41,INTERFACE_REQUIREMENT:42,PERFORMANCE_REQUIREMENT:43,PHYSICAL_REQUIREMENT:44,DESIGN_CONSTRAINT:45,LOW_RISK:46,MED_RISK:47,HIGH_RISK:48,VERIFY_ANALYSIS:49,VERIFY_DEMONSTRATION:50,VERIFY_INSPECTION:51,VERIFY_TEST:52,ELEMENT:53,elementName:54,elementBody:55,TYPE:56,type:57,DOCREF:58,ref:59,END_ARROW_L:60,relationship:61,LINE:62,END_ARROW_R:63,CONTAINS:64,COPIES:65,DERIVES:66,SATISFIES:67,VERIFIES:68,REFINES:69,TRACES:70,unqString:71,qString:72,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",12:":",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",28:"STRUCT_START",30:"ID",31:"COLONSEP",33:"TEXT",35:"RISK",37:"VERIFYMTHD",39:"STRUCT_STOP",40:"REQUIREMENT",41:"FUNCTIONAL_REQUIREMENT",42:"INTERFACE_REQUIREMENT",43:"PERFORMANCE_REQUIREMENT",44:"PHYSICAL_REQUIREMENT",45:"DESIGN_CONSTRAINT",46:"LOW_RISK",47:"MED_RISK",48:"HIGH_RISK",49:"VERIFY_ANALYSIS",50:"VERIFY_DEMONSTRATION",51:"VERIFY_INSPECTION",52:"VERIFY_TEST",53:"ELEMENT",56:"TYPE",58:"DOCREF",60:"END_ARROW_L",62:"LINE",63:"END_ARROW_R",64:"CONTAINS",65:"COPIES",66:"DERIVES",67:"SATISFIES",68:"VERIFIES",69:"REFINES",70:"TRACES",71:"unqString",72:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,3],[4,5],[4,2],[4,2],[4,1],[9,1],[10,1],[13,1],[11,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[23,5],[29,5],[29,5],[29,5],[29,5],[29,2],[29,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[36,1],[36,1],[36,1],[38,1],[38,1],[38,1],[38,1],[24,5],[55,5],[55,5],[55,2],[55,1],[25,5],[25,5],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[27,1],[27,1],[32,1],[32,1],[34,1],[34,1],[54,1],[54,1],[57,1],[57,1],[59,1],[59,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 6:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 7:case 8:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 9:i.parseDirective("%%{","open_directive");break;case 10:i.parseDirective(r[s],"type_directive");break;case 11:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 12:i.parseDirective("}%%","close_directive","pie");break;case 13:this.$=[];break;case 19:i.addRequirement(r[s-3],r[s-4]);break;case 20:i.setNewReqId(r[s-2]);break;case 21:i.setNewReqText(r[s-2]);break;case 22:i.setNewReqRisk(r[s-2]);break;case 23:i.setNewReqVerifyMethod(r[s-2]);break;case 26:this.$=i.RequirementType.REQUIREMENT;break;case 27:this.$=i.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 28:this.$=i.RequirementType.INTERFACE_REQUIREMENT;break;case 29:this.$=i.RequirementType.PERFORMANCE_REQUIREMENT;break;case 30:this.$=i.RequirementType.PHYSICAL_REQUIREMENT;break;case 31:this.$=i.RequirementType.DESIGN_CONSTRAINT;break;case 32:this.$=i.RiskLevel.LOW_RISK;break;case 33:this.$=i.RiskLevel.MED_RISK;break;case 34:this.$=i.RiskLevel.HIGH_RISK;break;case 35:this.$=i.VerifyType.VERIFY_ANALYSIS;break;case 36:this.$=i.VerifyType.VERIFY_DEMONSTRATION;break;case 37:this.$=i.VerifyType.VERIFY_INSPECTION;break;case 38:this.$=i.VerifyType.VERIFY_TEST;break;case 39:i.addElement(r[s-3]);break;case 40:i.setNewElementType(r[s-2]);break;case 41:i.setNewElementDocRef(r[s-2]);break;case 44:i.addRelationship(r[s-2],r[s],r[s-4]);break;case 45:i.addRelationship(r[s-2],r[s-4],r[s]);break;case 46:this.$=i.Relationships.CONTAINS;break;case 47:this.$=i.Relationships.COPIES;break;case 48:this.$=i.Relationships.DERIVES;break;case 49:this.$=i.Relationships.SATISFIES;break;case 50:this.$=i.Relationships.VERIFIES;break;case 51:this.$=i.Relationships.REFINES;break;case 52:this.$=i.Relationships.TRACES}},table:[{3:1,4:2,6:e,9:4,14:n,16:i,18:a,19:r},{1:[3]},{3:10,4:2,5:[1,9],6:e,9:4,14:n,16:i,18:a,19:r},{5:[1,11]},{10:12,20:[1,13]},{15:[1,14]},{17:[1,15]},t(o,[2,8]),{20:[2,9]},{3:16,4:2,6:e,9:4,14:n,16:i,18:a,19:r},{1:[2,2]},{4:21,5:s,7:17,8:c,9:4,14:n,16:i,18:a,19:r,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:d,43:h,44:f,45:g,53:p,71:b,72:m},{11:34,12:[1,35],22:y},t([12,22],[2,10]),t(o,[2,6]),t(o,[2,7]),{1:[2,1]},{8:[1,37]},{4:21,5:s,7:38,8:c,9:4,14:n,16:i,18:a,19:r,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:d,43:h,44:f,45:g,53:p,71:b,72:m},{4:21,5:s,7:39,8:c,9:4,14:n,16:i,18:a,19:r,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:d,43:h,44:f,45:g,53:p,71:b,72:m},{4:21,5:s,7:40,8:c,9:4,14:n,16:i,18:a,19:r,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:d,43:h,44:f,45:g,53:p,71:b,72:m},{4:21,5:s,7:41,8:c,9:4,14:n,16:i,18:a,19:r,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:d,43:h,44:f,45:g,53:p,71:b,72:m},{4:21,5:s,7:42,8:c,9:4,14:n,16:i,18:a,19:r,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:d,43:h,44:f,45:g,53:p,71:b,72:m},{27:43,71:[1,44],72:[1,45]},{54:46,71:[1,47],72:[1,48]},{60:[1,49],62:[1,50]},t(v,[2,26]),t(v,[2,27]),t(v,[2,28]),t(v,[2,29]),t(v,[2,30]),t(v,[2,31]),t(w,[2,55]),t(w,[2,56]),t(o,[2,4]),{13:51,21:[1,52]},t(o,[2,12]),{1:[2,3]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{8:[2,17]},{8:[2,18]},{28:[1,53]},{28:[2,53]},{28:[2,54]},{28:[1,54]},{28:[2,59]},{28:[2,60]},{61:55,64:x,65:R,66:_,67:k,68:E,69:C,70:S},{61:63,64:x,65:R,66:_,67:k,68:E,69:C,70:S},{11:64,22:y},{22:[2,11]},{5:[1,65]},{5:[1,66]},{62:[1,67]},t(T,[2,46]),t(T,[2,47]),t(T,[2,48]),t(T,[2,49]),t(T,[2,50]),t(T,[2,51]),t(T,[2,52]),{63:[1,68]},t(o,[2,5]),{5:A,29:69,30:D,33:I,35:L,37:O,39:M},{5:N,39:B,55:76,56:P,58:F},{32:81,71:b,72:m},{32:82,71:b,72:m},t(j,[2,19]),{31:[1,83]},{31:[1,84]},{31:[1,85]},{31:[1,86]},{5:A,29:87,30:D,33:I,35:L,37:O,39:M},t(j,[2,25]),t(j,[2,39]),{31:[1,88]},{31:[1,89]},{5:N,39:B,55:90,56:P,58:F},t(j,[2,43]),t(j,[2,44]),t(j,[2,45]),{32:91,71:b,72:m},{34:92,71:[1,93],72:[1,94]},{36:95,46:[1,96],47:[1,97],48:[1,98]},{38:99,49:[1,100],50:[1,101],51:[1,102],52:[1,103]},t(j,[2,24]),{57:104,71:[1,105],72:[1,106]},{59:107,71:[1,108],72:[1,109]},t(j,[2,42]),{5:[1,110]},{5:[1,111]},{5:[2,57]},{5:[2,58]},{5:[1,112]},{5:[2,32]},{5:[2,33]},{5:[2,34]},{5:[1,113]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[2,38]},{5:[1,114]},{5:[2,61]},{5:[2,62]},{5:[1,115]},{5:[2,63]},{5:[2,64]},{5:A,29:116,30:D,33:I,35:L,37:O,39:M},{5:A,29:117,30:D,33:I,35:L,37:O,39:M},{5:A,29:118,30:D,33:I,35:L,37:O,39:M},{5:A,29:119,30:D,33:I,35:L,37:O,39:M},{5:N,39:B,55:120,56:P,58:F},{5:N,39:B,55:121,56:P,58:F},t(j,[2,20]),t(j,[2,21]),t(j,[2,22]),t(j,[2,23]),t(j,[2,40]),t(j,[2,41])],defaultActions:{8:[2,9],10:[2,2],16:[2,1],37:[2,3],38:[2,14],39:[2,15],40:[2,16],41:[2,17],42:[2,18],44:[2,53],45:[2,54],47:[2,59],48:[2,60],52:[2,11],93:[2,57],94:[2,58],96:[2,32],97:[2,33],98:[2,34],100:[2,35],101:[2,36],102:[2,37],103:[2,38],105:[2,61],106:[2,62],108:[2,63],109:[2,64]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},z={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),19;case 1:return this.begin("type_directive"),20;case 2:return this.popState(),this.begin("arg_directive"),12;case 3:return this.popState(),this.popState(),22;case 4:return 21;case 5:return"title";case 6:return this.begin("acc_title"),14;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),16;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 53:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 5;case 14:case 15:case 16:break;case 17:return 8;case 18:return 6;case 19:return 28;case 20:return 39;case 21:return 31;case 22:return 30;case 23:return 33;case 24:return 35;case 25:return 37;case 26:return 40;case 27:return 41;case 28:return 42;case 29:return 43;case 30:return 44;case 31:return 45;case 32:return 46;case 33:return 47;case 34:return 48;case 35:return 49;case 36:return 50;case 37:return 51;case 38:return 52;case 39:return 53;case 40:return 64;case 41:return 65;case 42:return 66;case 43:return 67;case 44:return 68;case 45:return 69;case 46:return 70;case 47:return 56;case 48:return 58;case 49:return 60;case 50:return 63;case 51:return 62;case 52:this.begin("string");break;case 54:return"qString";case 55:return e.yytext=e.yytext.trim(),71}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\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,/^(?:(\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:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[53,54],inclusive:!1},INITIAL:{rules:[0,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,55],inclusive:!0}}};function H(){this.yy={}}return $.lexer=z,H.prototype=$,$.Parser=H,new H}();$P.parser=$P;const zP=$P,HP=t=>null!==t.match(/^\s*requirement(Diagram)?/);let UP=[],VP={},qP={},WP={},YP={};const GP={RequirementType:{REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},RiskLevel:{LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},VerifyType:{VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},Relationships:{CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().req,addRequirement:(t,e)=>(void 0===qP[t]&&(qP[t]={name:t,type:e,id:VP.id,text:VP.text,risk:VP.risk,verifyMethod:VP.verifyMethod}),VP={},qP[t]),getRequirements:()=>qP,setNewReqId:t=>{void 0!==VP&&(VP.id=t)},setNewReqText:t=>{void 0!==VP&&(VP.text=t)},setNewReqRisk:t=>{void 0!==VP&&(VP.risk=t)},setNewReqVerifyMethod:t=>{void 0!==VP&&(VP.verifyMethod=t)},setAccTitle:tv,getAccTitle:ev,setAccDescription:nv,getAccDescription:iv,addElement:t=>(void 0===YP[t]&&(YP[t]={name:t,type:WP.type,docRef:WP.docRef},d.info("Added new requirement: ",t)),WP={},YP[t]),getElements:()=>YP,setNewElementType:t=>{void 0!==WP&&(WP.type=t)},setNewElementDocRef:t=>{void 0!==WP&&(WP.docRef=t)},addRelationship:(t,e,n)=>{UP.push({type:t,src:e,dst:n})},getRelationships:()=>UP,clear:()=>{UP=[],VP={},qP={},WP={},YP={},Qy()}},ZP={CONTAINS:"contains",ARROW:"arrow"},KP={ReqMarkers:ZP,insertLineEndings:(t,e)=>{let n=t.append("defs").append("marker").attr("id",ZP.CONTAINS+"_line_ending").attr("refX",0).attr("refY",e.line_height/2).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("g");n.append("circle").attr("cx",e.line_height/2).attr("cy",e.line_height/2).attr("r",e.line_height/2).attr("fill","none"),n.append("line").attr("x1",0).attr("x2",e.line_height).attr("y1",e.line_height/2).attr("y2",e.line_height/2).attr("stroke-width",1),n.append("line").attr("y1",0).attr("y2",e.line_height).attr("x1",e.line_height/2).attr("x2",e.line_height/2).attr("stroke-width",1),t.append("defs").append("marker").attr("id",ZP.ARROW+"_line_ending").attr("refX",e.line_height).attr("refY",.5*e.line_height).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("path").attr("d",`M0,0\n L${e.line_height},${e.line_height/2}\n M${e.line_height},${e.line_height/2}\n L0,${e.line_height}`).attr("stroke-width",1)}};let XP={},JP=0;const QP=(t,e)=>t.insert("rect","#"+e).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",XP.rect_min_width+"px").attr("height",XP.rect_min_height+"px"),tF=(t,e,n)=>{let i=XP.rect_min_width/2,a=t.append("text").attr("class","req reqLabel reqTitle").attr("id",e).attr("x",i).attr("y",XP.rect_padding).attr("dominant-baseline","hanging"),r=0;n.forEach((t=>{0==r?a.append("tspan").attr("text-anchor","middle").attr("x",XP.rect_min_width/2).attr("dy",0).text(t):a.append("tspan").attr("text-anchor","middle").attr("x",XP.rect_min_width/2).attr("dy",.75*XP.line_height).text(t),r++}));let o=1.5*XP.rect_padding+r*XP.line_height*.75;return t.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",XP.rect_min_width).attr("y1",o).attr("y2",o),{titleNode:a,y:o}},eF=(t,e,n,i)=>{let a=t.append("text").attr("class","req reqLabel").attr("id",e).attr("x",XP.rect_padding).attr("y",i).attr("dominant-baseline","hanging"),r=0;const o=30;let s=[];return n.forEach((t=>{let e=t.length;for(;e>o&&r<3;){let n=t.substring(0,o);e=(t=t.substring(o,t.length)).length,s[s.length]=n,r++}if(3==r){let t=s[s.length-1];s[s.length-1]=t.substring(0,t.length-4)+"..."}else s[s.length]=t;r=0})),s.forEach((t=>{a.append("tspan").attr("x",XP.rect_padding).attr("dy",XP.line_height).text(t)})),a},nF=(t,e,n,i)=>{const a=e.node().getTotalLength(),r=e.node().getPointAtLength(.5*a),o="rel"+JP;JP++;const s=t.append("text").attr("class","req relationshipLabel").attr("id",o).attr("x",r.x).attr("y",r.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(i).node().getBBox();t.insert("rect","#"+o).attr("class","req reqLabelBox").attr("x",r.x-s.width/2).attr("y",r.y-s.height/2).attr("width",s.width).attr("height",s.height).attr("fill","white").attr("fill-opacity","85%")},iF=function(t,e,n,i,a){const r=n.edge(cF(e.src),cF(e.dst)),o=$l().x((function(t){return t.x})).y((function(t){return t.y})),s=t.insert("path","#"+i).attr("class","er relationshipLine").attr("d",o(r.points)).attr("fill","none");e.type==a.db.Relationships.CONTAINS?s.attr("marker-start","url("+Qd.getUrl(XP.arrowMarkerAbsolute)+"#"+e.type+"_line_ending)"):(s.attr("stroke-dasharray","10,7"),s.attr("marker-end","url("+Qd.getUrl(XP.arrowMarkerAbsolute)+"#"+KP.ReqMarkers.ARROW+"_line_ending)")),nF(t,s,XP,`<<${e.type}>>`)},aF=(t,e,n)=>{Object.keys(t).forEach((i=>{let a=t[i];i=cF(i),d.info("Added new requirement: ",i);const r=n.append("g").attr("id",i),o=QP(r,"req-"+i);let s=tF(r,i+"_title",[`<<${a.type}>>`,`${a.name}`]);eF(r,i+"_body",[`Id: ${a.id}`,`Text: ${a.text}`,`Risk: ${a.risk}`,`Verification: ${a.verifyMethod}`],s.y);const c=o.node().getBBox();e.setNode(i,{width:c.width,height:c.height,shape:"rect",id:i})}))},rF=(t,e,n)=>{Object.keys(t).forEach((i=>{let a=t[i];const r=cF(i),o=n.append("g").attr("id",r),s="element-"+r,c=QP(o,s);let l=tF(o,s+"_title",["<<Element>>",`${i}`]);eF(o,s+"_body",[`Type: ${a.type||"Not Specified"}`,`Doc Ref: ${a.docRef||"None"}`],l.y);const u=c.node().getBBox();e.setNode(r,{width:u.width,height:u.height,shape:"rect",id:r})}))},oF=(t,e)=>(t.forEach((function(t){let n=cF(t.src),i=cF(t.dst);e.setEdge(n,i,{relationship:t})})),t),sF=function(t,e){e.nodes().forEach((function(n){void 0!==n&&void 0!==e.node(n)&&(t.select("#"+n),t.select("#"+n).attr("transform","translate("+(e.node(n).x-e.node(n).width/2)+","+(e.node(n).y-e.node(n).height/2)+" )"))}))},cF=t=>t.replace(/\s/g,"").replace(/\./g,"_"),lF={draw:(t,e,n,i)=>{XP=Ry().requirement,i.db.clear(),i.parser.parse(t);const a=XP.securityLevel;let r;"sandbox"===a&&(r=un("#i"+e));const o=un("sandbox"===a?r.nodes()[0].contentDocument.body:"body").select(`[id='${e}']`);KP.insertLineEndings(o,XP);const s=new hA({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:XP.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel((function(){return{}}));let c=i.db.getRequirements(),l=i.db.getElements(),u=i.db.getRelationships();aF(c,s,o),rF(l,s,o),oF(u,s),yI(s),sF(o,s),u.forEach((function(t){iF(o,t,s,e,i)}));const d=XP.rect_padding,h=o.node().getBBox(),f=h.width+2*d,g=h.height+2*d;Ly(o,g,f,XP.useMaxWidth),o.attr("viewBox",`${h.x-d} ${h.y-d} ${f} ${g}`)}};var uF=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,2],n=[1,3],i=[1,5],a=[1,7],r=[2,5],o=[1,15],s=[1,17],c=[1,19],l=[1,21],u=[1,22],d=[1,23],h=[1,29],f=[1,30],g=[1,31],p=[1,32],b=[1,33],m=[1,34],y=[1,35],v=[1,36],w=[1,37],x=[1,38],R=[1,39],_=[1,40],k=[1,42],E=[1,43],C=[1,45],S=[1,46],T=[1,47],A=[1,48],D=[1,49],I=[1,50],L=[1,53],O=[1,4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,51,52,53,54,56,57,62,63,64,65,73,83],M=[4,5,21,54,56],N=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,54,56,57,62,63,64,65,73,83],B=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,53,54,56,57,62,63,64,65,73,83],P=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,52,54,56,57,62,63,64,65,73,83],F=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,51,54,56,57,62,63,64,65,73,83],j=[71,72,73],$=[1,125],z=[1,4,5,7,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,51,52,53,54,56,57,62,63,64,65,73,83],H={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,directive:6,SD:7,document:8,line:9,statement:10,box_section:11,box_line:12,participant_statement:13,openDirective:14,typeDirective:15,closeDirective:16,":":17,argDirective:18,box:19,restOfLine:20,end:21,signal:22,autonumber:23,NUM:24,off:25,activate:26,actor:27,deactivate:28,note_statement:29,links_statement:30,link_statement:31,properties_statement:32,details_statement:33,title:34,legacy_title:35,acc_title:36,acc_title_value:37,acc_descr:38,acc_descr_value:39,acc_descr_multiline_value:40,loop:41,rect:42,opt:43,alt:44,else_sections:45,par:46,par_sections:47,critical:48,option_sections:49,break:50,option:51,and:52,else:53,participant:54,AS:55,participant_actor:56,note:57,placement:58,text2:59,over:60,actor_pair:61,links:62,link:63,properties:64,details:65,spaceList:66,",":67,left_of:68,right_of:69,signaltype:70,"+":71,"-":72,ACTOR:73,SOLID_OPEN_ARROW:74,DOTTED_OPEN_ARROW:75,SOLID_ARROW:76,DOTTED_ARROW:77,SOLID_CROSS:78,DOTTED_CROSS:79,SOLID_POINT:80,DOTTED_POINT:81,TXT:82,open_directive:83,type_directive:84,arg_directive:85,close_directive:86,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",7:"SD",17:":",19:"box",20:"restOfLine",21:"end",23:"autonumber",24:"NUM",25:"off",26:"activate",28:"deactivate",34:"title",35:"legacy_title",36:"acc_title",37:"acc_title_value",38:"acc_descr",39:"acc_descr_value",40:"acc_descr_multiline_value",41:"loop",42:"rect",43:"opt",44:"alt",46:"par",48:"critical",50:"break",51:"option",52:"and",53:"else",54:"participant",55:"AS",56:"participant_actor",57:"note",60:"over",62:"links",63:"link",64:"properties",65:"details",67:",",68:"left_of",69:"right_of",71:"+",72:"-",73:"ACTOR",74:"SOLID_OPEN_ARROW",75:"DOTTED_OPEN_ARROW",76:"SOLID_ARROW",77:"DOTTED_ARROW",78:"SOLID_CROSS",79:"DOTTED_CROSS",80:"SOLID_POINT",81:"DOTTED_POINT",82:"TXT",83:"open_directive",84:"type_directive",85:"arg_directive",86:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[11,0],[11,2],[12,2],[12,1],[12,1],[6,4],[6,6],[10,1],[10,4],[10,2],[10,4],[10,3],[10,3],[10,2],[10,3],[10,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,2],[10,2],[10,1],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,1],[49,1],[49,4],[47,1],[47,4],[45,1],[45,4],[13,5],[13,3],[13,5],[13,3],[29,4],[29,4],[30,3],[31,3],[32,3],[33,3],[66,2],[66,1],[61,3],[61,1],[58,1],[58,1],[22,5],[22,5],[22,4],[27,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[59,1],[14,1],[15,1],[18,1],[16,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 4:return i.apply(r[s]),r[s];case 5:case 10:case 9:case 14:this.$=[];break;case 6:case 11:r[s-1].push(r[s]),this.$=r[s-1];break;case 7:case 8:case 12:case 13:case 63:this.$=r[s];break;case 18:r[s-1].unshift({type:"boxStart",boxData:i.parseBoxData(r[s-2])}),r[s-1].push({type:"boxEnd",boxText:r[s-2]}),this.$=r[s-1];break;case 20:this.$={type:"sequenceIndex",sequenceIndex:Number(r[s-2]),sequenceIndexStep:Number(r[s-1]),sequenceVisible:!0,signalType:i.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceIndex:Number(r[s-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:i.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:i.LINETYPE.AUTONUMBER};break;case 23:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:i.LINETYPE.AUTONUMBER};break;case 24:this.$={type:"activeStart",signalType:i.LINETYPE.ACTIVE_START,actor:r[s-1]};break;case 25:this.$={type:"activeEnd",signalType:i.LINETYPE.ACTIVE_END,actor:r[s-1]};break;case 31:i.setDiagramTitle(r[s].substring(6)),this.$=r[s].substring(6);break;case 32:i.setDiagramTitle(r[s].substring(7)),this.$=r[s].substring(7);break;case 33:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 34:case 35:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 36:r[s-1].unshift({type:"loopStart",loopText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.LOOP_START}),r[s-1].push({type:"loopEnd",loopText:r[s-2],signalType:i.LINETYPE.LOOP_END}),this.$=r[s-1];break;case 37:r[s-1].unshift({type:"rectStart",color:i.parseMessage(r[s-2]),signalType:i.LINETYPE.RECT_START}),r[s-1].push({type:"rectEnd",color:i.parseMessage(r[s-2]),signalType:i.LINETYPE.RECT_END}),this.$=r[s-1];break;case 38:r[s-1].unshift({type:"optStart",optText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.OPT_START}),r[s-1].push({type:"optEnd",optText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.OPT_END}),this.$=r[s-1];break;case 39:r[s-1].unshift({type:"altStart",altText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.ALT_START}),r[s-1].push({type:"altEnd",signalType:i.LINETYPE.ALT_END}),this.$=r[s-1];break;case 40:r[s-1].unshift({type:"parStart",parText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.PAR_START}),r[s-1].push({type:"parEnd",signalType:i.LINETYPE.PAR_END}),this.$=r[s-1];break;case 41:r[s-1].unshift({type:"criticalStart",criticalText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.CRITICAL_START}),r[s-1].push({type:"criticalEnd",signalType:i.LINETYPE.CRITICAL_END}),this.$=r[s-1];break;case 42:r[s-1].unshift({type:"breakStart",breakText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.BREAK_START}),r[s-1].push({type:"breakEnd",optText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.BREAK_END}),this.$=r[s-1];break;case 45:this.$=r[s-3].concat([{type:"option",optionText:i.parseMessage(r[s-1]),signalType:i.LINETYPE.CRITICAL_OPTION},r[s]]);break;case 47:this.$=r[s-3].concat([{type:"and",parText:i.parseMessage(r[s-1]),signalType:i.LINETYPE.PAR_AND},r[s]]);break;case 49:this.$=r[s-3].concat([{type:"else",altText:i.parseMessage(r[s-1]),signalType:i.LINETYPE.ALT_ELSE},r[s]]);break;case 50:r[s-3].type="addParticipant",r[s-3].description=i.parseMessage(r[s-1]),this.$=r[s-3];break;case 51:r[s-1].type="addParticipant",this.$=r[s-1];break;case 52:r[s-3].type="addActor",r[s-3].description=i.parseMessage(r[s-1]),this.$=r[s-3];break;case 53:r[s-1].type="addActor",this.$=r[s-1];break;case 54:this.$=[r[s-1],{type:"addNote",placement:r[s-2],actor:r[s-1].actor,text:r[s]}];break;case 55:r[s-2]=[].concat(r[s-1],r[s-1]).slice(0,2),r[s-2][0]=r[s-2][0].actor,r[s-2][1]=r[s-2][1].actor,this.$=[r[s-1],{type:"addNote",placement:i.PLACEMENT.OVER,actor:r[s-2].slice(0,2),text:r[s]}];break;case 56:this.$=[r[s-1],{type:"addLinks",actor:r[s-1].actor,text:r[s]}];break;case 57:this.$=[r[s-1],{type:"addALink",actor:r[s-1].actor,text:r[s]}];break;case 58:this.$=[r[s-1],{type:"addProperties",actor:r[s-1].actor,text:r[s]}];break;case 59:this.$=[r[s-1],{type:"addDetails",actor:r[s-1].actor,text:r[s]}];break;case 62:this.$=[r[s-2],r[s]];break;case 64:this.$=i.PLACEMENT.LEFTOF;break;case 65:this.$=i.PLACEMENT.RIGHTOF;break;case 66:this.$=[r[s-4],r[s-1],{type:"addMessage",from:r[s-4].actor,to:r[s-1].actor,signalType:r[s-3],msg:r[s]},{type:"activeStart",signalType:i.LINETYPE.ACTIVE_START,actor:r[s-1]}];break;case 67:this.$=[r[s-4],r[s-1],{type:"addMessage",from:r[s-4].actor,to:r[s-1].actor,signalType:r[s-3],msg:r[s]},{type:"activeEnd",signalType:i.LINETYPE.ACTIVE_END,actor:r[s-4]}];break;case 68:this.$=[r[s-3],r[s-1],{type:"addMessage",from:r[s-3].actor,to:r[s-1].actor,signalType:r[s-2],msg:r[s]}];break;case 69:this.$={type:"addParticipant",actor:r[s]};break;case 70:this.$=i.LINETYPE.SOLID_OPEN;break;case 71:this.$=i.LINETYPE.DOTTED_OPEN;break;case 72:this.$=i.LINETYPE.SOLID;break;case 73:this.$=i.LINETYPE.DOTTED;break;case 74:this.$=i.LINETYPE.SOLID_CROSS;break;case 75:this.$=i.LINETYPE.DOTTED_CROSS;break;case 76:this.$=i.LINETYPE.SOLID_POINT;break;case 77:this.$=i.LINETYPE.DOTTED_POINT;break;case 78:this.$=i.parseMessage(r[s].trim().substring(1));break;case 79:i.parseDirective("%%{","open_directive");break;case 80:i.parseDirective(r[s],"type_directive");break;case 81:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 82:i.parseDirective("}%%","close_directive","sequence")}},table:[{3:1,4:e,5:n,6:4,7:i,14:6,83:a},{1:[3]},{3:8,4:e,5:n,6:4,7:i,14:6,83:a},{3:9,4:e,5:n,6:4,7:i,14:6,83:a},{3:10,4:e,5:n,6:4,7:i,14:6,83:a},t([1,4,5,19,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,54,56,57,62,63,64,65,73,83],r,{8:11}),{15:12,84:[1,13]},{84:[2,79]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:o,5:s,6:41,9:14,10:16,13:18,14:6,19:c,22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},{16:51,17:[1,52],86:L},t([17,86],[2,80]),t(O,[2,6]),{6:41,10:54,13:18,14:6,19:c,22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},t(O,[2,8]),t(O,[2,9]),t(O,[2,17]),{20:[1,55]},{5:[1,56]},{5:[1,59],24:[1,57],25:[1,58]},{27:60,73:I},{27:61,73:I},{5:[1,62]},{5:[1,63]},{5:[1,64]},{5:[1,65]},{5:[1,66]},t(O,[2,31]),t(O,[2,32]),{37:[1,67]},{39:[1,68]},t(O,[2,35]),{20:[1,69]},{20:[1,70]},{20:[1,71]},{20:[1,72]},{20:[1,73]},{20:[1,74]},{20:[1,75]},t(O,[2,43]),{27:76,73:I},{27:77,73:I},{70:78,74:[1,79],75:[1,80],76:[1,81],77:[1,82],78:[1,83],79:[1,84],80:[1,85],81:[1,86]},{58:87,60:[1,88],68:[1,89],69:[1,90]},{27:91,73:I},{27:92,73:I},{27:93,73:I},{27:94,73:I},t([5,55,67,74,75,76,77,78,79,80,81,82],[2,69]),{5:[1,95]},{18:96,85:[1,97]},{5:[2,82]},t(O,[2,7]),t(M,[2,10],{11:98}),t(O,[2,19]),{5:[1,100],24:[1,99]},{5:[1,101]},t(O,[2,23]),{5:[1,102]},{5:[1,103]},t(O,[2,26]),t(O,[2,27]),t(O,[2,28]),t(O,[2,29]),t(O,[2,30]),t(O,[2,33]),t(O,[2,34]),t(N,r,{8:104}),t(N,r,{8:105}),t(N,r,{8:106}),t(B,r,{45:107,8:108}),t(P,r,{47:109,8:110}),t(F,r,{49:111,8:112}),t(N,r,{8:113}),{5:[1,115],55:[1,114]},{5:[1,117],55:[1,116]},{27:120,71:[1,118],72:[1,119],73:I},t(j,[2,70]),t(j,[2,71]),t(j,[2,72]),t(j,[2,73]),t(j,[2,74]),t(j,[2,75]),t(j,[2,76]),t(j,[2,77]),{27:121,73:I},{27:123,61:122,73:I},{73:[2,64]},{73:[2,65]},{59:124,82:$},{59:126,82:$},{59:127,82:$},{59:128,82:$},t(z,[2,15]),{16:129,86:L},{86:[2,81]},{4:[1,132],5:[1,134],12:131,13:133,21:[1,130],54:k,56:E},{5:[1,135]},t(O,[2,21]),t(O,[2,22]),t(O,[2,24]),t(O,[2,25]),{4:o,5:s,6:41,9:14,10:16,13:18,14:6,19:c,21:[1,136],22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},{4:o,5:s,6:41,9:14,10:16,13:18,14:6,19:c,21:[1,137],22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},{4:o,5:s,6:41,9:14,10:16,13:18,14:6,19:c,21:[1,138],22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},{21:[1,139]},{4:o,5:s,6:41,9:14,10:16,13:18,14:6,19:c,21:[2,48],22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,53:[1,140],54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},{21:[1,141]},{4:o,5:s,6:41,9:14,10:16,13:18,14:6,19:c,21:[2,46],22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,52:[1,142],54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},{21:[1,143]},{4:o,5:s,6:41,9:14,10:16,13:18,14:6,19:c,21:[2,44],22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,51:[1,144],54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},{4:o,5:s,6:41,9:14,10:16,13:18,14:6,19:c,21:[1,145],22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},{20:[1,146]},t(O,[2,51]),{20:[1,147]},t(O,[2,53]),{27:148,73:I},{27:149,73:I},{59:150,82:$},{59:151,82:$},{59:152,82:$},{67:[1,153],82:[2,63]},{5:[2,56]},{5:[2,78]},{5:[2,57]},{5:[2,58]},{5:[2,59]},{5:[1,154]},t(O,[2,18]),t(M,[2,11]),{13:155,54:k,56:E},t(M,[2,13]),t(M,[2,14]),t(O,[2,20]),t(O,[2,36]),t(O,[2,37]),t(O,[2,38]),t(O,[2,39]),{20:[1,156]},t(O,[2,40]),{20:[1,157]},t(O,[2,41]),{20:[1,158]},t(O,[2,42]),{5:[1,159]},{5:[1,160]},{59:161,82:$},{59:162,82:$},{5:[2,68]},{5:[2,54]},{5:[2,55]},{27:163,73:I},t(z,[2,16]),t(M,[2,12]),t(B,r,{8:108,45:164}),t(P,r,{8:110,47:165}),t(F,r,{8:112,49:166}),t(O,[2,50]),t(O,[2,52]),{5:[2,66]},{5:[2,67]},{82:[2,62]},{21:[2,49]},{21:[2,47]},{21:[2,45]}],defaultActions:{7:[2,79],8:[2,1],9:[2,2],10:[2,3],53:[2,82],89:[2,64],90:[2,65],97:[2,81],124:[2,56],125:[2,78],126:[2,57],127:[2,58],128:[2,59],150:[2,68],151:[2,54],152:[2,55],161:[2,66],162:[2,67],163:[2,62],164:[2,49],165:[2,47],166:[2,45]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},U={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),83;case 1:return this.begin("type_directive"),84;case 2:return this.popState(),this.begin("arg_directive"),17;case 3:return this.popState(),this.popState(),86;case 4:return 85;case 5:case 53:case 66:return 5;case 6:case 7:case 8:case 9:case 10:break;case 11:return 24;case 12:return this.begin("LINE"),19;case 13:return this.begin("ID"),54;case 14:return this.begin("ID"),56;case 15:return e.yytext=e.yytext.trim(),this.begin("ALIAS"),73;case 16:return this.popState(),this.popState(),this.begin("LINE"),55;case 17:return this.popState(),this.popState(),5;case 18:return this.begin("LINE"),41;case 19:return this.begin("LINE"),42;case 20:return this.begin("LINE"),43;case 21:return this.begin("LINE"),44;case 22:return this.begin("LINE"),53;case 23:return this.begin("LINE"),46;case 24:return this.begin("LINE"),52;case 25:return this.begin("LINE"),48;case 26:return this.begin("LINE"),51;case 27:return this.begin("LINE"),50;case 28:return this.popState(),20;case 29:return 21;case 30:return 68;case 31:return 69;case 32:return 62;case 33:return 63;case 34:return 64;case 35:return 65;case 36:return 60;case 37:return 57;case 38:return this.begin("ID"),26;case 39:return this.begin("ID"),28;case 40:return 34;case 41:return 35;case 42:return this.begin("acc_title"),36;case 43:return this.popState(),"acc_title_value";case 44:return this.begin("acc_descr"),38;case 45:return this.popState(),"acc_descr_value";case 46:this.begin("acc_descr_multiline");break;case 47:this.popState();break;case 48:return"acc_descr_multiline_value";case 49:return 7;case 50:return 23;case 51:return 25;case 52:return 67;case 54:return e.yytext=e.yytext.trim(),73;case 55:return 76;case 56:return 77;case 57:return 74;case 58:return 75;case 59:return 78;case 60:return 79;case 61:return 80;case 62:return 81;case 63:return 82;case 64:return 71;case 65:return 72;case 67:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:[\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,/^(?:[^\->:\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,/^(?: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:[47,48],inclusive:!1},acc_descr:{rules:[45],inclusive:!1},acc_title:{rules:[43],inclusive:!1},open_directive:{rules:[1,8],inclusive:!1},type_directive:{rules:[2,3,8],inclusive:!1},arg_directive:{rules:[3,4,8],inclusive:!1},ID:{rules:[7,8,15],inclusive:!1},ALIAS:{rules:[7,8,16,17],inclusive:!1},LINE:{rules:[7,8,28],inclusive:!1},INITIAL:{rules:[0,5,6,8,9,10,11,12,13,14,18,19,20,21,22,23,24,25,26,27,29,30,31,32,33,34,35,36,37,38,39,40,41,42,44,46,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],inclusive:!0}}};function V(){this.yy={}}return H.lexer=U,V.prototype=H,H.Parser=V,new V}();uF.parser=uF;const dF=uF,hF=t=>null!==t.match(/^\s*sequenceDiagram/);let fF,gF,pF,bF={},mF=[],yF=[],vF=!1;const wF=function(t){mF.push({name:t.text,wrap:void 0===t.wrap&&CF()||!!t.wrap,fill:t.color,actorKeys:[]}),pF=mF.slice(-1)[0]},xF=function(t,e,n,i){let a=pF;const r=bF[t];if(r){if(pF&&r.box&&pF!==r.box)throw new Error("A same participant should only be defined in one Box: "+r.name+" can't be in '"+r.box.name+"' and in '"+pF.name+"' at the same time.");if(a=r.box?r.box:pF,r.box=a,r&&e===r.name&&null==n)return}(null==n||null==n.text)&&(n={text:e,wrap:null,type:i}),(null==i||null==n.text)&&(n={text:e,wrap:null,type:i}),bF[t]={box:a,name:e,description:n.text,wrap:void 0===n.wrap&&CF()||!!n.wrap,prevActor:fF,links:{},properties:{},actorCnt:null,rectData:null,type:i||"participant"},fF&&bF[fF]&&(bF[fF].nextActor=t),pF&&pF.actorKeys.push(t),fF=t},RF=t=>{let e,n=0;for(e=0;e<yF.length;e++)yF[e].type===SF.ACTIVE_START&&yF[e].from.actor===t&&n++,yF[e].type===SF.ACTIVE_END&&yF[e].from.actor===t&&n--;return n},_F=function(t,e,n,i){yF.push({from:t,to:e,message:n.text,wrap:void 0===n.wrap&&CF()||!!n.wrap,answer:i})},kF=function(t,e,n={text:void 0,wrap:void 0},i){if(i===SF.ACTIVE_END&&RF(t.actor)<1){let e=new Error("Trying to inactivate an inactive participant ("+t.actor+")");throw e.hash={text:"->>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},e}return yF.push({from:t,to:e,message:n.text,wrap:void 0===n.wrap&&CF()||!!n.wrap,type:i}),!0},EF=function(t){return bF[t]},CF=()=>void 0!==gF?gF:Ry().sequence.wrap,SF={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},TF=function(t,e,n){n.text,void 0===n.wrap&&CF()||n.wrap;const i=[].concat(t,t);yF.push({from:i[0],to:i[1],message:n.text,wrap:void 0===n.wrap&&CF()||!!n.wrap,type:SF.NOTE,placement:e})},AF=function(t,e){const n=EF(t);try{let t=Wd(e.text,Ry());t=t.replace(/&/g,"&"),t=t.replace(/=/g,"="),IF(n,JSON.parse(t))}catch(o){d.error("error while parsing actor link text",o)}},DF=function(t,e){const n=EF(t);try{const t={};let o=Wd(e.text,Ry());var i=o.indexOf("@");o=o.replace(/&/g,"&"),o=o.replace(/=/g,"=");var a=o.slice(0,i-1).trim(),r=o.slice(i+1).trim();t[a]=r,IF(n,t)}catch(o){d.error("error while parsing actor link text",o)}};function IF(t,e){if(null==t.links)t.links=e;else for(let n in e)t.links[n]=e[n]}const LF=function(t,e){const n=EF(t);try{let t=Wd(e.text,Ry());OF(n,JSON.parse(t))}catch(o){d.error("error while parsing actor properties text",o)}};function OF(t,e){if(null==t.properties)t.properties=e;else for(let n in e)t.properties[n]=e[n]}function MF(){pF=void 0}const NF=function(t,e){const n=EF(t),i=document.getElementById(e.text);try{const t=i.innerHTML,e=JSON.parse(t);e.properties&&OF(n,e.properties),e.links&&IF(n,e.links)}catch(a){d.error("error while parsing actor details text",a)}},BF=function(t){if(Array.isArray(t))t.forEach((function(t){BF(t)}));else switch(t.type){case"sequenceIndex":yF.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":xF(t.actor,t.actor,t.description,"participant");break;case"addActor":xF(t.actor,t.actor,t.description,"actor");break;case"activeStart":case"activeEnd":kF(t.actor,void 0,void 0,t.signalType);break;case"addNote":TF(t.actor,t.placement,t.text);break;case"addLinks":AF(t.actor,t.text);break;case"addALink":DF(t.actor,t.text);break;case"addProperties":LF(t.actor,t.text);break;case"addDetails":NF(t.actor,t.text);break;case"addMessage":kF(t.from,t.to,t.msg,t.signalType);break;case"boxStart":wF(t.boxData);break;case"boxEnd":MF();break;case"loopStart":kF(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":case"rectEnd":case"optEnd":case"altEnd":case"parEnd":case"criticalEnd":case"breakEnd":kF(void 0,void 0,void 0,t.signalType);break;case"rectStart":kF(void 0,void 0,t.color,t.signalType);break;case"optStart":kF(void 0,void 0,t.optText,t.signalType);break;case"altStart":case"else":kF(void 0,void 0,t.altText,t.signalType);break;case"setAccTitle":tv(t.text);break;case"parStart":case"and":kF(void 0,void 0,t.parText,t.signalType);break;case"criticalStart":kF(void 0,void 0,t.criticalText,t.signalType);break;case"option":kF(void 0,void 0,t.optionText,t.signalType);break;case"breakStart":kF(void 0,void 0,t.breakText,t.signalType)}},PF={addActor:xF,addMessage:_F,addSignal:kF,addLinks:AF,addDetails:NF,addProperties:LF,autoWrap:CF,setWrap:function(t){gF=t},enableSequenceNumbers:function(){vF=!0},disableSequenceNumbers:function(){vF=!1},showSequenceNumbers:()=>vF,getMessages:function(){return yF},getActors:function(){return bF},getActor:EF,getActorKeys:function(){return Object.keys(bF)},getActorProperty:function(t,e){if(void 0!==t&&void 0!==t.properties)return t.properties[e]},getAccTitle:ev,getBoxes:function(){return mF},getDiagramTitle:rv,setDiagramTitle:av,parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().sequence,clear:function(){bF={},mF=[],yF=[],vF=!1,Qy()},parseMessage:function(t){const e=t.trim(),n={text:e.replace(/^:?(?:no)?wrap:/,"").trim(),wrap:null!==e.match(/^:?wrap:/)||null===e.match(/^:?nowrap:/)&&void 0};return d.debug("parseMessage:",n),n},parseBoxData:function(t){const e=t.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);let n=null!=e&&e[1]?e[1].trim():"transparent",i=null!=e&&e[2]?e[2].trim():void 0;if(window&&window.CSS)window.CSS.supports("color",n)||(n="transparent",i=t.trim());else{const e=(new Option).style;e.color=n,e.color!==n&&(n="transparent",i=t.trim())}return{color:n,text:void 0!==i?Wd(i.replace(/^:?(?:no)?wrap:/,""),Ry()):void 0,wrap:void 0!==i?null!==i.match(/^:?wrap:/)||null===i.match(/^:?nowrap:/)&&void 0:void 0}},LINETYPE:SF,ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},addNote:TF,setAccTitle:tv,apply:BF,setAccDescription:nv,getAccDescription:iv,hasAtLeastOneBox:function(){return mF.length>0},hasAtLeastOneBoxWithTitle:function(){return mF.some((t=>t.name))}};let FF=[];const jF=t=>{FF.push(t)},$F=()=>{FF.forEach((t=>{t()})),FF=[]},zF=function(t,e){const n=t.append("rect");return n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),n.attr("rx",e.rx),n.attr("ry",e.ry),void 0!==e.class&&n.attr("class",e.class),n},HF=(t,e)=>{jF((()=>{const n=document.querySelectorAll(t);0!==n.length&&(n[0].addEventListener("mouseover",(function(){GF("actor"+e+"_popup")})),n[0].addEventListener("mouseout",(function(){ZF("actor"+e+"_popup")})))}))},UF=function(t,e,n,i,a){if(void 0===e.links||null===e.links||0===Object.keys(e.links).length)return{height:0,width:0};const r=e.links,o=e.actorCnt,s=e.rectData;var c="none";a&&(c="block !important");const l=t.append("g");l.attr("id","actor"+o+"_popup"),l.attr("class","actorPopupMenu"),l.attr("display",c),HF("#actor"+o+"_popup",o);var u="";void 0!==s.class&&(u=" "+s.class);let d=s.width>n?s.width:n;const h=l.append("rect");if(h.attr("class","actorPopupMenuPanel"+u),h.attr("x",s.x),h.attr("y",s.height),h.attr("fill",s.fill),h.attr("stroke",s.stroke),h.attr("width",d),h.attr("height",s.height),h.attr("rx",s.rx),h.attr("ry",s.ry),null!=r){var f=20;for(let t in r){var g=l.append("a"),b=p(r[t]);g.attr("xlink:href",b),g.attr("target","_blank"),yj(i)(t,g,s.x+10,s.height+f,d,20,{class:"actor"},i),f+=30}}return h.attr("height",f),{height:s.height+f,width:d}},VF=function(t,e,n,i){const a=t.append("image");a.attr("x",e),a.attr("y",n);var r=p(i);a.attr("xlink:href",r)},qF=function(t,e,n,i){const a=t.append("use");a.attr("x",e),a.attr("y",n);var r=p(i);a.attr("xlink:href","#"+r)},WF=function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = 'block'; }"},YF=function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = 'none'; }"},GF=function(t){var e=document.getElementById(t);null!=e&&(e.style.display="block")},ZF=function(t){var e=document.getElementById(t);null!=e&&(e.style.display="none")},KF=function(t,e){let n=0,i=0;const a=e.text.split(Qd.lineBreakRegex),[r,o]=ym(e.fontSize);let s=[],c=0,l=()=>e.y;if(void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0)switch(e.valign){case"top":case"start":l=()=>Math.round(e.y+e.textMargin);break;case"middle":case"center":l=()=>Math.round(e.y+(n+i+e.textMargin)/2);break;case"bottom":case"end":l=()=>Math.round(e.y+(n+i+2*e.textMargin)-e.textMargin)}if(void 0!==e.anchor&&void 0!==e.textMargin&&void 0!==e.width)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"}for(let[u,d]of a.entries()){void 0!==e.textMargin&&0===e.textMargin&&void 0!==r&&(c=u*r);const a=t.append("text");if(a.attr("x",e.x),a.attr("y",l()),void 0!==e.anchor&&a.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),void 0!==e.fontFamily&&a.style("font-family",e.fontFamily),void 0!==o&&a.style("font-size",o),void 0!==e.fontWeight&&a.style("font-weight",e.fontWeight),void 0!==e.fill&&a.attr("fill",e.fill),void 0!==e.class&&a.attr("class",e.class),void 0!==e.dy?a.attr("dy",e.dy):0!==c&&a.attr("dy",c),e.tspan){const t=a.append("tspan");t.attr("x",e.x),void 0!==e.fill&&t.attr("fill",e.fill),t.text(d)}else a.text(d);void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0&&(i+=(a._groups||a)[0][0].getBBox().height,n=i),s.push(a)}return s},XF=function(t,e){function n(t,e,n,i,a){return t+","+e+" "+(t+n)+","+e+" "+(t+n)+","+(e+i-a)+" "+(t+n-1.2*a)+","+(e+i)+" "+t+","+(e+i)}const i=t.append("polygon");return i.attr("points",n(e.x,e.y,e.width,e.height,7)),i.attr("class","labelBox"),e.y=e.y+e.height/2,KF(t,e),i};let JF=-1;const QF=(t,e)=>{t.selectAll&&t.selectAll(".actor-line").attr("class","200").attr("y2",e-55)},tj=function(t,e,n,i){const a=e.x+e.width/2,r=e.y+5,o=t.append("g");var s=o;i||(JF++,s.append("line").attr("id","actor"+JF).attr("x1",a).attr("y1",r).attr("x2",a).attr("y2",2e3).attr("class","actor-line").attr("stroke-width","0.5px").attr("stroke","#999"),s=o.append("g"),e.actorCnt=JF,null!=e.links&&(s.attr("id","root-"+JF),HF("#root-"+JF,JF)));const c=bj();var l="actor";null!=e.properties&&e.properties.class?l=e.properties.class:c.fill="#eaeaea",c.x=e.x,c.y=e.y,c.width=e.width,c.height=e.height,c.class=l,c.rx=3,c.ry=3;const u=zF(s,c);if(e.rectData=c,null!=e.properties&&e.properties.icon){const t=e.properties.icon.trim();"@"===t.charAt(0)?qF(s,c.x+c.width-20,c.y+10,t.substr(1)):VF(s,c.x+c.width-20,c.y+10,t)}mj(n)(e.description,s,c.x,c.y,c.width,c.height,{class:"actor"},n);let d=e.height;if(u.node){const t=u.node().getBBox();e.height=t.height,d=t.height}return d},ej=function(t,e,n,i){const a=e.x+e.width/2,r=e.y+80;i||(JF++,t.append("line").attr("id","actor"+JF).attr("x1",a).attr("y1",r).attr("x2",a).attr("y2",2e3).attr("class","actor-line").attr("stroke-width","0.5px").attr("stroke","#999"));const o=t.append("g");o.attr("class","actor-man");const s=bj();s.x=e.x,s.y=e.y,s.fill="#eaeaea",s.width=e.width,s.height=e.height,s.class="actor",s.rx=3,s.ry=3,o.append("line").attr("id","actor-man-torso"+JF).attr("x1",a).attr("y1",e.y+25).attr("x2",a).attr("y2",e.y+45),o.append("line").attr("id","actor-man-arms"+JF).attr("x1",a-18).attr("y1",e.y+33).attr("x2",a+18).attr("y2",e.y+33),o.append("line").attr("x1",a-18).attr("y1",e.y+60).attr("x2",a).attr("y2",e.y+45),o.append("line").attr("x1",a).attr("y1",e.y+45).attr("x2",a+16).attr("y2",e.y+60);const c=o.append("circle");c.attr("cx",e.x+e.width/2),c.attr("cy",e.y+10),c.attr("r",15),c.attr("width",e.width),c.attr("height",e.height);const l=o.node().getBBox();return e.height=l.height,mj(n)(e.description,o,s.x,s.y+35,s.width,s.height,{class:"actor"},n),e.height},nj=function(t,e,n,i){switch(e.type){case"actor":return ej(t,e,n,i);case"participant":return tj(t,e,n,i)}},ij=function(t,e,n){const i=t.append("g");sj(i,e),e.name&&mj(n)(e.name,i,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},n),i.lower()},aj=function(t){return t.append("g")},rj=function(t,e,n,i,a){const r=bj(),o=e.anchored;r.x=e.startx,r.y=e.starty,r.class="activation"+a%3,r.width=e.stopx-e.startx,r.height=n-e.starty,zF(o,r)},oj=function(t,e,n,i){const{boxMargin:a,boxTextMargin:r,labelBoxHeight:o,labelBoxWidth:s,messageFontFamily:c,messageFontSize:l,messageFontWeight:u}=i,d=t.append("g"),h=function(t,e,n,i){return d.append("line").attr("x1",t).attr("y1",e).attr("x2",n).attr("y2",i).attr("class","loopLine")};h(e.startx,e.starty,e.stopx,e.starty),h(e.stopx,e.starty,e.stopx,e.stopy),h(e.startx,e.stopy,e.stopx,e.stopy),h(e.startx,e.starty,e.startx,e.stopy),void 0!==e.sections&&e.sections.forEach((function(t){h(e.startx,t.y,e.stopx,t.y).style("stroke-dasharray","3, 3")}));let f=pj();f.text=n,f.x=e.startx,f.y=e.starty,f.fontFamily=c,f.fontSize=l,f.fontWeight=u,f.anchor="middle",f.valign="middle",f.tspan=!1,f.width=s||50,f.height=o||20,f.textMargin=r,f.class="labelText",XF(d,f),f=pj(),f.text=e.title,f.x=e.startx+s/2+(e.stopx-e.startx)/2,f.y=e.starty+a+r,f.anchor="middle",f.valign="middle",f.textMargin=r,f.class="loopText",f.fontFamily=c,f.fontSize=l,f.fontWeight=u,f.wrap=!0;let g=KF(d,f);return void 0!==e.sectionTitles&&e.sectionTitles.forEach((function(t,n){if(t.message){f.text=t.message,f.x=e.startx+(e.stopx-e.startx)/2,f.y=e.sections[n].y+a+r,f.class="loopText",f.anchor="middle",f.valign="middle",f.tspan=!1,f.fontFamily=c,f.fontSize=l,f.fontWeight=u,f.wrap=e.wrap,g=KF(d,f);let i=Math.round(g.map((t=>(t._groups||t)[0][0].getBBox().height)).reduce(((t,e)=>t+e)));e.sections[n].height+=i-(a+r)}})),e.height=Math.round(e.stopy-e.starty),d},sj=function(t,e){zF(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"}).lower()},cj=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")},lj=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")},uj=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")},dj=function(t){t.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")},hj=function(t){t.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")},fj=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)},gj=function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",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")},pj=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}},bj=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},mj=function(){function t(t,e,n,a,r,o,s){i(e.append("text").attr("x",n+r/2).attr("y",a+o/2+5).style("text-anchor","middle").text(t),s)}function e(t,e,n,a,r,o,s,c){const{actorFontSize:l,actorFontFamily:u,actorFontWeight:d}=c,[h,f]=ym(l),g=t.split(Qd.lineBreakRegex);for(let p=0;p<g.length;p++){const t=p*h-h*(g.length-1)/2,c=e.append("text").attr("x",n+r/2).attr("y",a).style("text-anchor","middle").style("font-size",f).style("font-weight",d).style("font-family",u);c.append("tspan").attr("x",n+r/2).attr("dy",t).text(g[p]),c.attr("y",a+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(c,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,o,s,c,l),i(d,c)}function i(t,e){for(const n in e)e.hasOwnProperty(n)&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}(),yj=function(){function t(t,e,n,a,r,o,s){i(e.append("text").attr("x",n).attr("y",a).style("text-anchor","start").text(t),s)}function e(t,e,n,a,r,o,s,c){const{actorFontSize:l,actorFontFamily:u,actorFontWeight:d}=c,h=t.split(Qd.lineBreakRegex);for(let f=0;f<h.length;f++){const t=f*l-l*(h.length-1)/2,r=e.append("text").attr("x",n).attr("y",a).style("text-anchor","start").style("font-size",l).style("font-weight",d).style("font-family",u);r.append("tspan").attr("x",n).attr("dy",t).text(h[f]),r.attr("y",a+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(r,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,o,s,c,l),i(d,c)}function i(t,e){for(const n in e)e.hasOwnProperty(n)&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}(),vj={drawRect:zF,drawText:KF,drawLabel:XF,drawActor:nj,drawBox:ij,drawPopup:UF,drawImage:VF,drawEmbeddedImage:qF,anchorElement:aj,drawActivation:rj,drawLoop:oj,drawBackgroundRect:sj,insertArrowHead:dj,insertArrowFilledHead:hj,insertSequenceNumber:fj,insertArrowCrossHead:gj,insertDatabaseIcon:cj,insertComputerIcon:lj,insertClockIcon:uj,getTextObj:pj,getNoteRect:bj,popupMenu:WF,popdownMenu:YF,fixLifeLineHeights:QF,sanitizeUrl:p};let wj={};const xj={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:function(){return Math.max.apply(null,0===this.actors.length?[0]:this.actors.map((t=>t.height||0)))+(0===this.loops.length?0:this.loops.map((t=>t.height||0)).reduce(((t,e)=>t+e)))+(0===this.messages.length?0:this.messages.map((t=>t.height||0)).reduce(((t,e)=>t+e)))+(0===this.notes.length?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,Dj(Ry())},updateVal:function(t,e,n,i){void 0===t[e]?t[e]=n:t[e]=i(n,t[e])},updateBounds:function(t,e,n,i){const a=this;let r=0;function o(o){return function(s){r++;const c=a.sequenceItems.length-r+1;a.updateVal(s,"starty",e-c*wj.boxMargin,Math.min),a.updateVal(s,"stopy",i+c*wj.boxMargin,Math.max),a.updateVal(xj.data,"startx",t-c*wj.boxMargin,Math.min),a.updateVal(xj.data,"stopx",n+c*wj.boxMargin,Math.max),"activation"!==o&&(a.updateVal(s,"startx",t-c*wj.boxMargin,Math.min),a.updateVal(s,"stopx",n+c*wj.boxMargin,Math.max),a.updateVal(xj.data,"starty",e-c*wj.boxMargin,Math.min),a.updateVal(xj.data,"stopy",i+c*wj.boxMargin,Math.max))}}this.sequenceItems.forEach(o()),this.activations.forEach(o("activation"))},insert:function(t,e,n,i){const a=Math.min(t,n),r=Math.max(t,n),o=Math.min(e,i),s=Math.max(e,i);this.updateVal(xj.data,"startx",a,Math.min),this.updateVal(xj.data,"starty",o,Math.min),this.updateVal(xj.data,"stopx",r,Math.max),this.updateVal(xj.data,"stopy",s,Math.max),this.updateBounds(a,o,r,s)},newActivation:function(t,e,n){const i=n[t.from.actor],a=Ij(t.from.actor).length||0,r=i.x+i.width/2+(a-1)*wj.activationWidth/2;this.activations.push({startx:r,starty:this.verticalPos+2,stopx:r+wj.activationWidth,stopy:void 0,actor:t.from.actor,anchored:vj.anchorElement(e)})},endActivation:function(t){const e=this.activations.map((function(t){return t.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()},addSectionToLoop:function(t){const e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:xj.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},Rj=function(t,e){xj.bumpVerticalPos(wj.boxMargin),e.height=wj.boxMargin,e.starty=xj.getVerticalPos();const n=vj.getNoteRect();n.x=e.startx,n.y=e.starty,n.width=e.width||wj.width,n.class="note";const i=t.append("g"),a=vj.drawRect(i,n),r=vj.getTextObj();r.x=e.startx,r.y=e.starty,r.width=n.width,r.dy="1em",r.text=e.message,r.class="noteText",r.fontFamily=wj.noteFontFamily,r.fontSize=wj.noteFontSize,r.fontWeight=wj.noteFontWeight,r.anchor=wj.noteAlign,r.textMargin=wj.noteMargin,r.valign="center";const o=KF(i,r),s=Math.round(o.map((t=>(t._groups||t)[0][0].getBBox().height)).reduce(((t,e)=>t+e)));a.attr("height",s+2*wj.noteMargin),e.height+=s+2*wj.noteMargin,xj.bumpVerticalPos(s+2*wj.noteMargin),e.stopy=e.starty+s+2*wj.noteMargin,e.stopx=e.startx+n.width,xj.insert(e.startx,e.starty,e.stopx,e.stopy),xj.models.addNote(e)},_j=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),kj=t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),Ej=t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight});function Cj(t,e){xj.bumpVerticalPos(10);const{startx:n,stopx:i,message:a}=e,r=Qd.splitBreaks(a).length,o=vm.calculateTextDimensions(a,_j(wj)),s=o.height/r;e.height+=s,xj.bumpVerticalPos(s);let c,l=o.height-10;const u=o.width;if(n===i){c=xj.getVerticalPos()+l,wj.rightAngles||(l+=wj.boxMargin,c=xj.getVerticalPos()+l),l+=30;const t=Math.max(u/2,wj.width/2);xj.insert(n-t,xj.getVerticalPos()-10+l,i+t,xj.getVerticalPos()+30+l)}else l+=wj.boxMargin,c=xj.getVerticalPos()+l,xj.insert(n,c-10,i,c);return xj.bumpVerticalPos(l),e.height+=l,e.stopy=e.starty+e.height,xj.insert(e.fromBounds,e.starty,e.toBounds,e.stopy),c}const Sj=function(t,e,n,i){const{startx:a,stopx:r,starty:o,message:s,type:c,sequenceIndex:l,sequenceVisible:u}=e,d=vm.calculateTextDimensions(s,_j(wj)),h=vj.getTextObj();h.x=a,h.y=o+10,h.width=r-a,h.class="messageText",h.dy="1em",h.text=s,h.fontFamily=wj.messageFontFamily,h.fontSize=wj.messageFontSize,h.fontWeight=wj.messageFontWeight,h.anchor=wj.messageAlign,h.valign="center",h.textMargin=wj.wrapPadding,h.tspan=!1,KF(t,h);const f=d.width;let g;a===r?g=wj.rightAngles?t.append("path").attr("d",`M ${a},${n} H ${a+Math.max(wj.width/2,f/2)} V ${n+25} H ${a}`):t.append("path").attr("d","M "+a+","+n+" C "+(a+60)+","+(n-10)+" "+(a+60)+","+(n+30)+" "+a+","+(n+20)):(g=t.append("line"),g.attr("x1",a),g.attr("y1",n),g.attr("x2",r),g.attr("y2",n)),c===i.db.LINETYPE.DOTTED||c===i.db.LINETYPE.DOTTED_CROSS||c===i.db.LINETYPE.DOTTED_POINT||c===i.db.LINETYPE.DOTTED_OPEN?(g.style("stroke-dasharray","3, 3"),g.attr("class","messageLine1")):g.attr("class","messageLine0");let p="";wj.arrowMarkerAbsolute&&(p=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,p=p.replace(/\(/g,"\\("),p=p.replace(/\)/g,"\\)")),g.attr("stroke-width",2),g.attr("stroke","none"),g.style("fill","none"),(c===i.db.LINETYPE.SOLID||c===i.db.LINETYPE.DOTTED)&&g.attr("marker-end","url("+p+"#arrowhead)"),(c===i.db.LINETYPE.SOLID_POINT||c===i.db.LINETYPE.DOTTED_POINT)&&g.attr("marker-end","url("+p+"#filled-head)"),(c===i.db.LINETYPE.SOLID_CROSS||c===i.db.LINETYPE.DOTTED_CROSS)&&g.attr("marker-end","url("+p+"#crosshead)"),(u||wj.showSequenceNumbers)&&(g.attr("marker-start","url("+p+"#sequencenumber)"),t.append("text").attr("x",a).attr("y",n+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(l))},Tj=function(t,e,n,i,a,r,o){if(!0===a.hideUnusedParticipants){const t=new Set;r.forEach((e=>{t.add(e.from),t.add(e.to)})),n=n.filter((e=>t.has(e)))}let s,c=0,l=0,u=0;for(const d of n){const n=e[d],a=n.box;s&&s!=a&&(o||xj.models.addBox(s),l+=wj.boxMargin+s.margin),a&&a!=s&&(o||(a.x=c+l,a.y=i),l+=a.margin),n.width=n.width||wj.width,n.height=Math.max(n.height||wj.height,wj.height),n.margin=n.margin||wj.actorMargin,n.x=c+l,n.y=xj.getVerticalPos();const r=vj.drawActor(t,n,wj,o);u=Math.max(u,r),xj.insert(n.x,i,n.x+n.width,n.height),c+=n.width+l,n.box&&(n.box.width=c+a.margin-n.box.x),l=n.margin,s=n.box,xj.models.addActor(n)}s&&!o&&xj.models.addBox(s),xj.bumpVerticalPos(u)},Aj=function(t,e,n,i){let a=0,r=0;for(const o of n){const n=e[o],s=Bj(n),c=vj.drawPopup(t,n,s,wj,wj.forceMenus,i);c.height>a&&(a=c.height),c.width+n.x>r&&(r=c.width+n.x)}return{maxHeight:a,maxWidth:r}},Dj=function(t){Sp(wj,t),t.fontFamily&&(wj.actorFontFamily=wj.noteFontFamily=wj.messageFontFamily=t.fontFamily),t.fontSize&&(wj.actorFontSize=wj.noteFontSize=wj.messageFontSize=t.fontSize),t.fontWeight&&(wj.actorFontWeight=wj.noteFontWeight=wj.messageFontWeight=t.fontWeight)},Ij=function(t){return xj.activations.filter((function(e){return e.actor===t}))},Lj=function(t,e){const n=e[t],i=Ij(t);return[i.reduce((function(t,e){return Math.min(t,e.startx)}),n.x+n.width/2),i.reduce((function(t,e){return Math.max(t,e.stopx)}),n.x+n.width/2)]};function Oj(t,e,n,i,a){xj.bumpVerticalPos(n);let r=i;if(e.id&&e.message&&t[e.id]){const n=t[e.id].width,a=_j(wj);e.message=vm.wrapLabel(`[${e.message}]`,n-2*wj.wrapPadding,a),e.width=n,e.wrap=!0;const o=vm.calculateTextDimensions(e.message,a),s=Math.max(o.height,wj.labelBoxHeight);r=i+s,d.debug(`${s} - ${e.message}`)}a(e),xj.bumpVerticalPos(r)}const Mj=function(t,e,n,i){const{securityLevel:a,sequence:r}=Ry();let o;wj=r,i.db.clear(),i.parser.parse(t),"sandbox"===a&&(o=un("#i"+e));const s=un("sandbox"===a?o.nodes()[0].contentDocument.body:"body"),c="sandbox"===a?o.nodes()[0].contentDocument:document;xj.init(),d.debug(i.db);const l="sandbox"===a?s.select(`[id="${e}"]`):un(`[id="${e}"]`),u=i.db.getActors(),h=i.db.getBoxes(),f=i.db.getActorKeys(),g=i.db.getMessages(),p=i.db.getDiagramTitle(),b=i.db.hasAtLeastOneBox(),m=i.db.hasAtLeastOneBoxWithTitle(),y=Nj(u,g,i);wj.height=Pj(u,y,h),vj.insertComputerIcon(l),vj.insertDatabaseIcon(l),vj.insertClockIcon(l),b&&(xj.bumpVerticalPos(wj.boxMargin),m&&xj.bumpVerticalPos(h[0].textMaxHeight)),Tj(l,u,f,0,wj,g,!1);const v=$j(g,u,y,i);function w(t,e){const n=xj.endActivation(t);n.starty+18>e&&(n.starty=e-6,e+=12),vj.drawActivation(l,n,e,wj,Ij(t.from.actor).length),xj.insert(n.startx,e-10,n.stopx,e)}vj.insertArrowHead(l),vj.insertArrowCrossHead(l),vj.insertArrowFilledHead(l),vj.insertSequenceNumber(l);let x=1,R=1;const _=[];g.forEach((function(t){let e,n,a;switch(t.type){case i.db.LINETYPE.NOTE:n=t.noteModel,Rj(l,n);break;case i.db.LINETYPE.ACTIVE_START:xj.newActivation(t,l,u);break;case i.db.LINETYPE.ACTIVE_END:w(t,xj.getVerticalPos());break;case i.db.LINETYPE.LOOP_START:Oj(v,t,wj.boxMargin,wj.boxMargin+wj.boxTextMargin,(t=>xj.newLoop(t)));break;case i.db.LINETYPE.LOOP_END:e=xj.endLoop(),vj.drawLoop(l,e,"loop",wj),xj.bumpVerticalPos(e.stopy-xj.getVerticalPos()),xj.models.addLoop(e);break;case i.db.LINETYPE.RECT_START:Oj(v,t,wj.boxMargin,wj.boxMargin,(t=>xj.newLoop(void 0,t.message)));break;case i.db.LINETYPE.RECT_END:e=xj.endLoop(),vj.drawBackgroundRect(l,e),xj.models.addLoop(e),xj.bumpVerticalPos(e.stopy-xj.getVerticalPos());break;case i.db.LINETYPE.OPT_START:Oj(v,t,wj.boxMargin,wj.boxMargin+wj.boxTextMargin,(t=>xj.newLoop(t)));break;case i.db.LINETYPE.OPT_END:e=xj.endLoop(),vj.drawLoop(l,e,"opt",wj),xj.bumpVerticalPos(e.stopy-xj.getVerticalPos()),xj.models.addLoop(e);break;case i.db.LINETYPE.ALT_START:Oj(v,t,wj.boxMargin,wj.boxMargin+wj.boxTextMargin,(t=>xj.newLoop(t)));break;case i.db.LINETYPE.ALT_ELSE:Oj(v,t,wj.boxMargin+wj.boxTextMargin,wj.boxMargin,(t=>xj.addSectionToLoop(t)));break;case i.db.LINETYPE.ALT_END:e=xj.endLoop(),vj.drawLoop(l,e,"alt",wj),xj.bumpVerticalPos(e.stopy-xj.getVerticalPos()),xj.models.addLoop(e);break;case i.db.LINETYPE.PAR_START:Oj(v,t,wj.boxMargin,wj.boxMargin+wj.boxTextMargin,(t=>xj.newLoop(t)));break;case i.db.LINETYPE.PAR_AND:Oj(v,t,wj.boxMargin+wj.boxTextMargin,wj.boxMargin,(t=>xj.addSectionToLoop(t)));break;case i.db.LINETYPE.PAR_END:e=xj.endLoop(),vj.drawLoop(l,e,"par",wj),xj.bumpVerticalPos(e.stopy-xj.getVerticalPos()),xj.models.addLoop(e);break;case i.db.LINETYPE.AUTONUMBER:x=t.message.start||x,R=t.message.step||R,t.message.visible?i.db.enableSequenceNumbers():i.db.disableSequenceNumbers();break;case i.db.LINETYPE.CRITICAL_START:Oj(v,t,wj.boxMargin,wj.boxMargin+wj.boxTextMargin,(t=>xj.newLoop(t)));break;case i.db.LINETYPE.CRITICAL_OPTION:Oj(v,t,wj.boxMargin+wj.boxTextMargin,wj.boxMargin,(t=>xj.addSectionToLoop(t)));break;case i.db.LINETYPE.CRITICAL_END:e=xj.endLoop(),vj.drawLoop(l,e,"critical",wj),xj.bumpVerticalPos(e.stopy-xj.getVerticalPos()),xj.models.addLoop(e);break;case i.db.LINETYPE.BREAK_START:Oj(v,t,wj.boxMargin,wj.boxMargin+wj.boxTextMargin,(t=>xj.newLoop(t)));break;case i.db.LINETYPE.BREAK_END:e=xj.endLoop(),vj.drawLoop(l,e,"break",wj),xj.bumpVerticalPos(e.stopy-xj.getVerticalPos()),xj.models.addLoop(e);break;default:try{a=t.msgModel,a.starty=xj.getVerticalPos(),a.sequenceIndex=x,a.sequenceVisible=i.db.showSequenceNumbers();const e=Cj(l,a);_.push({messageModel:a,lineStartY:e}),xj.models.addMessage(a)}catch(r){d.error("error while drawing message",r)}}[i.db.LINETYPE.SOLID_OPEN,i.db.LINETYPE.DOTTED_OPEN,i.db.LINETYPE.SOLID,i.db.LINETYPE.DOTTED,i.db.LINETYPE.SOLID_CROSS,i.db.LINETYPE.DOTTED_CROSS,i.db.LINETYPE.SOLID_POINT,i.db.LINETYPE.DOTTED_POINT].includes(t.type)&&(x+=R)})),_.forEach((t=>Sj(l,t.messageModel,t.lineStartY,i))),wj.mirrorActors&&(xj.bumpVerticalPos(2*wj.boxMargin),Tj(l,u,f,xj.getVerticalPos(),wj,g,!0),xj.bumpVerticalPos(wj.boxMargin),QF(l,xj.getVerticalPos())),xj.models.boxes.forEach((function(t){t.height=xj.getVerticalPos()-t.y,xj.insert(t.x,t.y,t.x+t.width,t.height),t.startx=t.x,t.starty=t.y,t.stopx=t.startx+t.width,t.stopy=t.starty+t.height,t.stroke="rgb(0,0,0, 0.5)",vj.drawBox(l,t,wj)})),b&&xj.bumpVerticalPos(wj.boxMargin);const k=Aj(l,u,f,c),{bounds:E}=xj.getBounds();d.debug("For line height fix Querying: #"+e+" .actor-line"),dn("#"+e+" .actor-line").attr("y2",E.stopy);let C=E.stopy-E.starty;C<k.maxHeight&&(C=k.maxHeight);let S=C+2*wj.diagramMarginY;wj.mirrorActors&&(S=S-wj.boxMargin+wj.bottomMarginAdj);let T=E.stopx-E.startx;T<k.maxWidth&&(T=k.maxWidth);const A=T+2*wj.diagramMarginX;p&&l.append("text").text(p).attr("x",(E.stopx-E.startx)/2-2*wj.diagramMarginX).attr("y",-25),Ly(l,S,A,wj.useMaxWidth);const D=p?40:0;l.attr("viewBox",E.startx-wj.diagramMarginX+" -"+(wj.diagramMarginY+D)+" "+A+" "+(S+D)),d.debug("models:",xj.models)};function Nj(t,e,n){const i={};return e.forEach((function(e){if(t[e.to]&&t[e.from]){const a=t[e.to];if(e.placement===n.db.PLACEMENT.LEFTOF&&!a.prevActor||e.placement===n.db.PLACEMENT.RIGHTOF&&!a.nextActor)return;const r=void 0!==e.placement,o=!r,s=r?kj(wj):_j(wj),c=e.wrap?vm.wrapLabel(e.message,wj.width-2*wj.wrapPadding,s):e.message,l=vm.calculateTextDimensions(c,s).width+2*wj.wrapPadding;o&&e.from===a.nextActor?i[e.to]=Math.max(i[e.to]||0,l):o&&e.from===a.prevActor?i[e.from]=Math.max(i[e.from]||0,l):o&&e.from===e.to?(i[e.from]=Math.max(i[e.from]||0,l/2),i[e.to]=Math.max(i[e.to]||0,l/2)):e.placement===n.db.PLACEMENT.RIGHTOF?i[e.from]=Math.max(i[e.from]||0,l):e.placement===n.db.PLACEMENT.LEFTOF?i[a.prevActor]=Math.max(i[a.prevActor]||0,l):e.placement===n.db.PLACEMENT.OVER&&(a.prevActor&&(i[a.prevActor]=Math.max(i[a.prevActor]||0,l/2)),a.nextActor&&(i[e.from]=Math.max(i[e.from]||0,l/2)))}})),d.debug("maxMessageWidthPerActor:",i),i}const Bj=function(t){let e=0;const n=Ej(wj);for(const i in t.links){const t=vm.calculateTextDimensions(i,n).width+2*wj.wrapPadding+2*wj.boxMargin;e<t&&(e=t)}return e};function Pj(t,e,n){let i=0;Object.keys(t).forEach((e=>{const n=t[e];n.wrap&&(n.description=vm.wrapLabel(n.description,wj.width-2*wj.wrapPadding,Ej(wj)));const a=vm.calculateTextDimensions(n.description,Ej(wj));n.width=n.wrap?wj.width:Math.max(wj.width,a.width+2*wj.wrapPadding),n.height=n.wrap?Math.max(a.height,wj.height):wj.height,i=Math.max(i,n.height)}));for(const r in e){const n=t[r];if(!n)continue;const i=t[n.nextActor];if(!i){const t=e[r]+wj.actorMargin-n.width/2;n.margin=Math.max(t,wj.actorMargin);continue}const a=e[r]+wj.actorMargin-n.width/2-i.width/2;n.margin=Math.max(a,wj.actorMargin)}let a=0;return n.forEach((e=>{const n=_j(wj);let i=e.actorKeys.reduce(((e,n)=>e+(t[n].width+(t[n].margin||0))),0);i-=2*wj.boxTextMargin,e.wrap&&(e.name=vm.wrapLabel(e.name,i-2*wj.wrapPadding,n));const r=vm.calculateTextDimensions(e.name,n);a=Math.max(r.height,a);const o=Math.max(i,r.width+2*wj.wrapPadding);if(e.margin=wj.boxTextMargin,i<o){const t=(o-i)/2;e.margin+=t}})),n.forEach((t=>t.textMaxHeight=a)),Math.max(i,wj.height)}const Fj=function(t,e,n){const i=e[t.from].x,a=e[t.to].x,r=t.wrap&&t.message;let o=vm.calculateTextDimensions(r?vm.wrapLabel(t.message,wj.width,kj(wj)):t.message,kj(wj));const s={width:r?wj.width:Math.max(wj.width,o.width+2*wj.noteMargin),height:0,startx:e[t.from].x,stopx:0,starty:0,stopy:0,message:t.message};return t.placement===n.db.PLACEMENT.RIGHTOF?(s.width=r?Math.max(wj.width,o.width):Math.max(e[t.from].width/2+e[t.to].width/2,o.width+2*wj.noteMargin),s.startx=i+(e[t.from].width+wj.actorMargin)/2):t.placement===n.db.PLACEMENT.LEFTOF?(s.width=Math.max(r?wj.width:e[t.from].width/2+e[t.to].width/2,o.width+2*wj.noteMargin),s.startx=i-s.width+(e[t.from].width-wj.actorMargin)/2):t.to===t.from?(o=vm.calculateTextDimensions(r?vm.wrapLabel(t.message,Math.max(wj.width,e[t.from].width),kj(wj)):t.message,kj(wj)),s.width=r?Math.max(wj.width,e[t.from].width):Math.max(e[t.from].width,wj.width,o.width+2*wj.noteMargin),s.startx=i+(e[t.from].width-s.width)/2):(s.width=Math.abs(i+e[t.from].width/2-(a+e[t.to].width/2))+wj.actorMargin,s.startx=i<a?i+e[t.from].width/2-wj.actorMargin/2:a+e[t.to].width/2-wj.actorMargin/2),r&&(s.message=vm.wrapLabel(t.message,s.width-2*wj.wrapPadding,kj(wj))),d.debug(`NM:[${s.startx},${s.stopx},${s.starty},${s.stopy}:${s.width},${s.height}=${t.message}]`),s},jj=function(t,e,n){let i=!1;if([n.db.LINETYPE.SOLID_OPEN,n.db.LINETYPE.DOTTED_OPEN,n.db.LINETYPE.SOLID,n.db.LINETYPE.DOTTED,n.db.LINETYPE.SOLID_CROSS,n.db.LINETYPE.DOTTED_CROSS,n.db.LINETYPE.SOLID_POINT,n.db.LINETYPE.DOTTED_POINT].includes(t.type)&&(i=!0),!i)return{};const a=Lj(t.from,e),r=Lj(t.to,e),o=a[0]<=r[0]?1:0,s=a[0]<r[0]?0:1,c=[...a,...r],l=Math.abs(r[s]-a[o]);t.wrap&&t.message&&(t.message=vm.wrapLabel(t.message,Math.max(l+2*wj.wrapPadding,wj.width),_j(wj)));const u=vm.calculateTextDimensions(t.message,_j(wj));return{width:Math.max(t.wrap?0:u.width+2*wj.wrapPadding,l+2*wj.wrapPadding,wj.width),height:0,startx:a[o],stopx:r[s],starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,c),toBounds:Math.max.apply(null,c)}},$j=function(t,e,n,i){const a={},r=[];let o,s,c;return t.forEach((function(t){switch(t.id=vm.random({length:10}),t.type){case i.db.LINETYPE.LOOP_START:case i.db.LINETYPE.ALT_START:case i.db.LINETYPE.OPT_START:case i.db.LINETYPE.PAR_START:case i.db.LINETYPE.CRITICAL_START:case i.db.LINETYPE.BREAK_START:r.push({id:t.id,msg:t.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case i.db.LINETYPE.ALT_ELSE:case i.db.LINETYPE.PAR_AND:case i.db.LINETYPE.CRITICAL_OPTION:t.message&&(o=r.pop(),a[o.id]=o,a[t.id]=o,r.push(o));break;case i.db.LINETYPE.LOOP_END:case i.db.LINETYPE.ALT_END:case i.db.LINETYPE.OPT_END:case i.db.LINETYPE.PAR_END:case i.db.LINETYPE.CRITICAL_END:case i.db.LINETYPE.BREAK_END:o=r.pop(),a[o.id]=o;break;case i.db.LINETYPE.ACTIVE_START:{const n=e[t.from?t.from.actor:t.to.actor],i=Ij(t.from?t.from.actor:t.to.actor).length,a=n.x+n.width/2+(i-1)*wj.activationWidth/2,r={startx:a,stopx:a+wj.activationWidth,actor:t.from.actor,enabled:!0};xj.activations.push(r)}break;case i.db.LINETYPE.ACTIVE_END:{const e=xj.activations.map((t=>t.actor)).lastIndexOf(t.from.actor);delete xj.activations.splice(e,1)[0]}}void 0!==t.placement?(s=Fj(t,e,i),t.noteModel=s,r.forEach((t=>{o=t,o.from=Math.min(o.from,s.startx),o.to=Math.max(o.to,s.startx+s.width),o.width=Math.max(o.width,Math.abs(o.from-o.to))-wj.labelBoxWidth}))):(c=jj(t,e,i),t.msgModel=c,c.startx&&c.stopx&&r.length>0&&r.forEach((n=>{if(o=n,c.startx===c.stopx){const n=e[t.from],i=e[t.to];o.from=Math.min(n.x-c.width/2,n.x-n.width/2,o.from),o.to=Math.max(i.x+c.width/2,i.x+n.width/2,o.to),o.width=Math.max(o.width,Math.abs(o.to-o.from))-wj.labelBoxWidth}else o.from=Math.min(c.startx,o.from),o.to=Math.max(c.stopx,o.to),o.width=Math.max(o.width,c.width)-wj.labelBoxWidth})))})),xj.activations=[],d.debug("Loop type widths:",a),a},zj={bounds:xj,drawActors:Tj,drawActorsPopup:Aj,setConf:Dj,draw:Mj};var Hj=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,2],n=[1,3],i=[1,5],a=[1,7],r=[2,5],o=[1,15],s=[1,17],c=[1,21],l=[1,22],u=[1,23],d=[1,24],h=[1,37],f=[1,25],g=[1,26],p=[1,27],b=[1,28],m=[1,29],y=[1,32],v=[1,33],w=[1,34],x=[1,35],R=[1,36],_=[1,39],k=[1,40],E=[1,41],C=[1,42],S=[1,38],T=[1,45],A=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],D=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],I=[1,4,5,7,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],L=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],O={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,directive:6,SD:7,document:8,line:9,statement:10,classDefStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"--\x3e":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:29,notePosition:30,NOTE_TEXT:31,direction: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,openDirective:45,typeDirective:46,closeDirective:47,":":48,argDirective:49,direction_tb:50,direction_bt:51,direction_rl:52,direction_lr:53,eol:54,";":55,EDGE_STATE:56,STYLE_SEPARATOR:57,left_of:58,right_of:59,open_directive:60,type_directive:61,arg_directive:62,close_directive:63,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",7:"SD",14:"DESCR",15:"--\x3e",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"class",43:"CLASSENTITY_IDS",44:"STYLECLASS",48:":",50:"direction_tb",51:"direction_bt",52:"direction_rl",53:"direction_lr",55:";",56:"EDGE_STATE",57:"STYLE_SEPARATOR",58:"left_of",59:"right_of",60:"open_directive",61:"type_directive",62:"arg_directive",63:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[10,1],[10,1],[10,1],[10,2],[10,3],[10,4],[10,1],[10,2],[10,1],[10,4],[10,3],[10,6],[10,1],[10,1],[10,1],[10,1],[10,4],[10,4],[10,1],[10,1],[10,2],[10,2],[10,1],[11,3],[11,3],[12,3],[6,3],[6,5],[32,1],[32,1],[32,1],[32,1],[54,1],[54,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1],[45,1],[46,1],[49,1],[47,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 4:return i.setRootDoc(r[s]),r[s];case 5:this.$=[];break;case 6:"nl"!=r[s]&&(r[s-1].push(r[s]),this.$=r[s-1]);break;case 7:case 8:case 12:this.$=r[s];break;case 9:this.$="nl";break;case 13:const t=r[s-1];t.description=i.trimColon(r[s]),this.$=t;break;case 14:this.$={stmt:"relation",state1:r[s-2],state2:r[s]};break;case 15:const e=i.trimColon(r[s]);this.$={stmt:"relation",state1:r[s-3],state2:r[s-1],description:e};break;case 19:this.$={stmt:"state",id:r[s-3],type:"default",description:"",doc:r[s-1]};break;case 20:var c=r[s],l=r[s-2].trim();if(r[s].match(":")){var u=r[s].split(":");c=u[0],l=[l,u[1]]}this.$={stmt:"state",id:c,type:"default",description:l};break;case 21:this.$={stmt:"state",id:r[s-3],type:"default",description:r[s-5],doc:r[s-1]};break;case 22:this.$={stmt:"state",id:r[s],type:"fork"};break;case 23:this.$={stmt:"state",id:r[s],type:"join"};break;case 24:this.$={stmt:"state",id:r[s],type:"choice"};break;case 25:this.$={stmt:"state",id:i.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:r[s-1].trim(),note:{position:r[s-2].trim(),text:r[s].trim()}};break;case 30:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 31:case 32:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 33:case 34:this.$={stmt:"classDef",id:r[s-1].trim(),classes:r[s].trim()};break;case 35:this.$={stmt:"applyClass",id:r[s-1].trim(),styleClass:r[s].trim()};break;case 38:i.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 39:i.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 40:i.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 41:i.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 44:case 45:this.$={stmt:"state",id:r[s].trim(),type:"default",description:""};break;case 46:case 47:this.$={stmt:"state",id:r[s-2].trim(),classes:[r[s].trim()],type:"default",description:""};break;case 50:i.parseDirective("%%{","open_directive");break;case 51:i.parseDirective(r[s],"type_directive");break;case 52:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 53:i.parseDirective("}%%","close_directive","state")}},table:[{3:1,4:e,5:n,6:4,7:i,45:6,60:a},{1:[3]},{3:8,4:e,5:n,6:4,7:i,45:6,60:a},{3:9,4:e,5:n,6:4,7:i,45:6,60:a},{3:10,4:e,5:n,6:4,7:i,45:6,60:a},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],r,{8:11}),{46:12,61:[1,13]},{61:[2,50]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:o,5:s,6:30,9:14,10:16,11:18,12:19,13:20,16:c,17:l,19:u,22:d,24:h,25:f,26:g,27:p,28:b,29:m,32:31,33:y,35:v,37:w,38:x,42:R,45:6,50:_,51:k,52:E,53:C,56:S,60:a},{47:43,48:[1,44],63:T},t([48,63],[2,51]),t(A,[2,6]),{6:30,10:46,11:18,12:19,13:20,16:c,17:l,19:u,22:d,24:h,25:f,26:g,27:p,28:b,29:m,32:31,33:y,35:v,37:w,38:x,42:R,45:6,50:_,51:k,52:E,53:C,56:S,60:a},t(A,[2,8]),t(A,[2,9]),t(A,[2,10]),t(A,[2,11]),t(A,[2,12],{14:[1,47],15:[1,48]}),t(A,[2,16]),{18:[1,49]},t(A,[2,18],{20:[1,50]}),{23:[1,51]},t(A,[2,22]),t(A,[2,23]),t(A,[2,24]),t(A,[2,25]),{30:52,31:[1,53],58:[1,54],59:[1,55]},t(A,[2,28]),t(A,[2,29]),{34:[1,56]},{36:[1,57]},t(A,[2,32]),{39:[1,58],41:[1,59]},{43:[1,60]},t(D,[2,44],{57:[1,61]}),t(D,[2,45],{57:[1,62]}),t(A,[2,38]),t(A,[2,39]),t(A,[2,40]),t(A,[2,41]),t(I,[2,36]),{49:63,62:[1,64]},t(I,[2,53]),t(A,[2,7]),t(A,[2,13]),{13:65,24:h,56:S},t(A,[2,17]),t(L,r,{8:66}),{24:[1,67]},{24:[1,68]},{23:[1,69]},{24:[2,48]},{24:[2,49]},t(A,[2,30]),t(A,[2,31]),{40:[1,70]},{40:[1,71]},{44:[1,72]},{24:[1,73]},{24:[1,74]},{47:75,63:T},{63:[2,52]},t(A,[2,14],{14:[1,76]}),{4:o,5:s,6:30,9:14,10:16,11:18,12:19,13:20,16:c,17:l,19:u,21:[1,77],22:d,24:h,25:f,26:g,27:p,28:b,29:m,32:31,33:y,35:v,37:w,38:x,42:R,45:6,50:_,51:k,52:E,53:C,56:S,60:a},t(A,[2,20],{20:[1,78]}),{31:[1,79]},{24:[1,80]},t(A,[2,33]),t(A,[2,34]),t(A,[2,35]),t(D,[2,46]),t(D,[2,47]),t(I,[2,37]),t(A,[2,15]),t(A,[2,19]),t(L,r,{8:81}),t(A,[2,26]),t(A,[2,27]),{4:o,5:s,6:30,9:14,10:16,11:18,12:19,13:20,16:c,17:l,19:u,21:[1,82],22:d,24:h,25:f,26:g,27:p,28:b,29:m,32:31,33:y,35:v,37:w,38:x,42:R,45:6,50:_,51:k,52:E,53:C,56:S,60:a},t(A,[2,21])],defaultActions:{7:[2,50],8:[2,1],9:[2,2],10:[2,3],54:[2,48],55:[2,49],64:[2,52]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},M={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return 41;case 1:case 44:return 50;case 2:case 45:return 51;case 3:case 46:return 52;case 4:case 47:return 53;case 5:return this.begin("open_directive"),60;case 6:return this.begin("type_directive"),61;case 7:return this.popState(),this.begin("arg_directive"),48;case 8:return this.popState(),this.popState(),63;case 9:return 62;case 10:case 11:case 13:case 14:case 15:case 16:case 56:case 58:case 64:break;case 12:case 79:return 5;case 17:case 34:return this.pushState("SCALE"),17;case 18:case 35:return 18;case 19:case 25:case 36:case 51:case 54:this.popState();break;case 20:return this.begin("acc_title"),33;case 21:return this.popState(),"acc_title_value";case 22:return this.begin("acc_descr"),35;case 23:return this.popState(),"acc_descr_value";case 24:this.begin("acc_descr_multiline");break;case 26:return"acc_descr_multiline_value";case 27:return this.pushState("CLASSDEF"),38;case 28:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 29:return this.popState(),this.pushState("CLASSDEFID"),39;case 30:return this.popState(),40;case 31:return this.pushState("CLASS"),42;case 32:return this.popState(),this.pushState("CLASS_STYLE"),43;case 33:return this.popState(),44;case 37:this.pushState("STATE");break;case 38:case 41:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),25;case 39:case 42:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),26;case 40:case 43:return this.popState(),e.yytext=e.yytext.slice(0,-10).trim(),27;case 48:this.pushState("STATE_STRING");break;case 49:return this.pushState("STATE_ID"),"AS";case 50:case 66:return this.popState(),"ID";case 52:return"STATE_DESCR";case 53:return 19;case 55:return this.popState(),this.pushState("struct"),20;case 57:return this.popState(),21;case 59:return this.begin("NOTE"),29;case 60:return this.popState(),this.pushState("NOTE_ID"),58;case 61:return this.popState(),this.pushState("NOTE_ID"),59;case 62:this.popState(),this.pushState("FLOATING_NOTE");break;case 63:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 65:return"NOTE_TEXT";case 67:return this.popState(),this.pushState("NOTE_TEXT"),24;case 68:return this.popState(),e.yytext=e.yytext.substr(2).trim(),31;case 69:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),31;case 70:case 71:return 7;case 72:return 16;case 73:return 56;case 74:return 24;case 75:return e.yytext=e.yytext.trim(),14;case 76:return 15;case 77:return 28;case 78:return 57;case 80: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,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\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,/^(?:.*<<fork>>)/i,/^(?:.*<<join>>)/i,/^(?:.*<<choice>>)/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:[14,15],inclusive:!1},close_directive:{rules:[14,15],inclusive:!1},arg_directive:{rules:[8,9,14,15],inclusive:!1},type_directive:{rules:[7,8,14,15],inclusive:!1},open_directive:{rules:[6,14,15],inclusive:!1},struct:{rules:[14,15,27,31,37,44,45,46,47,56,57,58,59,73,74,75,76,77],inclusive:!1},FLOATING_NOTE_ID:{rules:[66],inclusive:!1},FLOATING_NOTE:{rules:[63,64,65],inclusive:!1},NOTE_TEXT:{rules:[68,69],inclusive:!1},NOTE_ID:{rules:[67],inclusive:!1},NOTE:{rules:[60,61,62],inclusive:!1},CLASS_STYLE:{rules:[33],inclusive:!1},CLASS:{rules:[32],inclusive:!1},CLASSDEFID:{rules:[30],inclusive:!1},CLASSDEF:{rules:[28,29],inclusive:!1},acc_descr_multiline:{rules:[25,26],inclusive:!1},acc_descr:{rules:[23],inclusive:!1},acc_title:{rules:[21],inclusive:!1},SCALE:{rules:[18,19,35,36],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[50],inclusive:!1},STATE_STRING:{rules:[51,52],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[14,15,38,39,40,41,42,43,48,49,53,54,55],inclusive:!1},ID:{rules:[14,15],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,10,11,12,13,15,16,17,20,22,24,27,31,34,37,55,59,70,71,72,73,74,75,76,78,79,80],inclusive:!0}}};function N(){this.yy={}}return O.lexer=M,N.prototype=O,O.Parser=N,new N}();Hj.parser=Hj;const Uj=Hj,Vj=(t,e)=>{var n;return"dagre-wrapper"!==(null==(n=null==e?void 0:e.state)?void 0:n.defaultRenderer)&&null!==t.match(/^\s*stateDiagram/)},qj=(t,e)=>{var n;return!!(null!==t.match(/^\s*stateDiagram-v2/)||t.match(/^\s*stateDiagram/)&&"dagre-wrapper"===(null==(n=null==e?void 0:e.state)?void 0:n.defaultRenderer))},Wj="LR",Yj="TB",Gj="state",Zj="relation",Kj="classDef",Xj="applyClass",Jj="default",Qj="divider",t$="[*]",e$="start",n$=t$,i$="end",a$="color",r$="fill",o$="bgFill",s$=",";function c$(){return{}}let l$=Wj,u$=[],d$=c$();const h$=()=>({relations:[],states:{},documents:{}});let f$={root:h$()},g$=f$.root,p$=0,b$=0;const m$=t=>JSON.parse(JSON.stringify(t)),y$=(t,e,n)=>{if(e.stmt===Zj)y$(t,e.state1,!0),y$(t,e.state2,!1);else if(e.stmt===Gj&&("[*]"===e.id?(e.id=n?t.id+"_start":t.id+"_end",e.start=n):e.id=e.id.trim()),e.doc){const t=[];let n,i=[];for(n=0;n<e.doc.length;n++)if(e.doc[n].type===Qj){const a=m$(e.doc[n]);a.doc=m$(i),t.push(a),i=[]}else i.push(e.doc[n]);if(t.length>0&&i.length>0){const n={stmt:Gj,id:im(),type:"divider",doc:m$(i)};t.push(m$(n)),e.doc=t}e.doc.forEach((t=>y$(e,t,!0)))}},v$=t=>{let e;e=t.doc?t.doc:t,d.info(e),x$(!0),d.info("Extract",e),e.forEach((t=>{switch(t.stmt){case Gj:w$(t.id.trim(),t.type,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles);break;case Zj:T$(t.state1,t.state2,t.description);break;case Kj:D$(t.id.trim(),t.classes);break;case Xj:I$(t.id.trim(),t.styleClass)}}))},w$=function(t,e=Jj,n=null,i=null,a=null,r=null,o=null,s=null){const c=null==t?void 0:t.trim();void 0===g$.states[c]?(d.info("Adding state ",c,i),g$.states[c]={id:c,descriptions:[],type:e,doc:n,note:a,classes:[],styles:[],textStyles:[]}):(g$.states[c].doc||(g$.states[c].doc=n),g$.states[c].type||(g$.states[c].type=e)),i&&(d.info("Setting state description",c,i),"string"==typeof i&&A$(c,i.trim()),"object"==typeof i&&i.forEach((t=>A$(c,t.trim())))),a&&(g$.states[c].note=a,g$.states[c].note.text=Qd.sanitizeText(g$.states[c].note.text,Ry())),r&&(d.info("Setting state classes",c,r),("string"==typeof r?[r]:r).forEach((t=>I$(c,t.trim())))),o&&(d.info("Setting state styles",c,o),("string"==typeof o?[o]:o).forEach((t=>L$(c,t.trim())))),s&&(d.info("Setting state styles",c,o),("string"==typeof s?[s]:s).forEach((t=>O$(c,t.trim()))))},x$=function(t){f$={root:h$()},g$=f$.root,p$=0,d$=c$(),t||Qy()},R$=function(t){return g$.states[t]};function _$(t=""){let e=t;return t===t$&&(p$++,e=`${e$}${p$}`),e}function k$(t="",e=Jj){return t===t$?e$:e}function E$(t=""){let e=t;return t===n$&&(p$++,e=`${i$}${p$}`),e}function C$(t="",e=Jj){return t===n$?i$:e}function S$(t,e,n){let i=_$(t.id.trim()),a=k$(t.id.trim(),t.type),r=_$(e.id.trim()),o=k$(e.id.trim(),e.type);w$(i,a,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),w$(r,o,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),g$.relations.push({id1:i,id2:r,relationTitle:Qd.sanitizeText(n,Ry())})}const T$=function(t,e,n){if("object"==typeof t)S$(t,e,n);else{const i=_$(t.trim()),a=k$(t),r=E$(e.trim()),o=C$(e);w$(i,a),w$(r,o),g$.relations.push({id1:i,id2:r,title:Qd.sanitizeText(n,Ry())})}},A$=function(t,e){const n=g$.states[t],i=e.startsWith(":")?e.replace(":","").trim():e;n.descriptions.push(Qd.sanitizeText(i,Ry()))},D$=function(t,e=""){void 0===d$[t]&&(d$[t]={id:t,styles:[],textStyles:[]});const n=d$[t];null!=e&&e.split(s$).forEach((t=>{const e=t.replace(/([^;]*);/,"$1").trim();if(t.match(a$)){const t=e.replace(r$,o$).replace(a$,r$);n.textStyles.push(t)}n.styles.push(e)}))},I$=function(t,e){t.split(",").forEach((function(t){let n=R$(t);if(void 0===n){const e=t.trim();w$(e),n=R$(e)}n.classes.push(e)}))},L$=function(t,e){const n=R$(t);void 0!==n&&n.textStyles.push(e)},O$=function(t,e){const n=R$(t);void 0!==n&&n.textStyles.push(e)},M$={parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().state,addState:w$,clear:x$,getState:R$,getStates:function(){return g$.states},getRelations:function(){return g$.relations},getClasses:function(){return d$},getDirection:()=>l$,addRelation:T$,getDividerId:()=>(b$++,"divider-id-"+b$),setDirection:t=>{l$=t},cleanupLabel:function(t){return":"===t.substring(0,1)?t.substr(2).trim():t.trim()},lineType:{LINE:0,DOTTED_LINE:1},relationType:{AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},logDocuments:function(){d.info("Documents = ",f$)},getRootDoc:()=>u$,setRootDoc:t=>{d.info("Setting root doc",t),u$=t},getRootDocV2:()=>(y$({id:"root"},{id:"root",doc:u$},!0),{id:"root",doc:u$}),extract:v$,trimColon:t=>t&&":"===t[0]?t.substr(1).trim():t.trim(),getAccTitle:ev,setAccTitle:tv,getAccDescription:iv,setAccDescription:nv,addStyleClass:D$,setCssClass:I$,addDescription:A$,setDiagramTitle:av,getDiagramTitle:rv},N$={},B$=()=>Object.keys(N$),P$={get:t=>N$[t],set:(t,e)=>{N$[t]=e},keys:B$,size:()=>B$().length},F$=t=>t.append("circle").attr("class","start-state").attr("r",Ry().state.sizeUnit).attr("cx",Ry().state.padding+Ry().state.sizeUnit).attr("cy",Ry().state.padding+Ry().state.sizeUnit),j$=t=>t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",Ry().state.textHeight).attr("class","divider").attr("x2",2*Ry().state.textHeight).attr("y1",0).attr("y2",0),$$=(t,e)=>{const n=t.append("text").attr("x",2*Ry().state.padding).attr("y",Ry().state.textHeight+2*Ry().state.padding).attr("font-size",Ry().state.fontSize).attr("class","state-title").text(e.id),i=n.node().getBBox();return t.insert("rect",":first-child").attr("x",Ry().state.padding).attr("y",Ry().state.padding).attr("width",i.width+2*Ry().state.padding).attr("height",i.height+2*Ry().state.padding).attr("rx",Ry().state.radius),n},z$=(t,e)=>{const n=function(t,e,n){const i=t.append("tspan").attr("x",2*Ry().state.padding).text(e);n||i.attr("dy",Ry().state.textHeight)},i=t.append("text").attr("x",2*Ry().state.padding).attr("y",Ry().state.textHeight+1.3*Ry().state.padding).attr("font-size",Ry().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),a=i.height,r=t.append("text").attr("x",Ry().state.padding).attr("y",a+.4*Ry().state.padding+Ry().state.dividerMargin+Ry().state.textHeight).attr("class","state-description");let o=!0,s=!0;e.descriptions.forEach((function(t){o||(n(r,t,s),s=!1),o=!1}));const c=t.append("line").attr("x1",Ry().state.padding).attr("y1",Ry().state.padding+a+Ry().state.dividerMargin/2).attr("y2",Ry().state.padding+a+Ry().state.dividerMargin/2).attr("class","descr-divider"),l=r.node().getBBox(),u=Math.max(l.width,i.width);return c.attr("x2",u+3*Ry().state.padding),t.insert("rect",":first-child").attr("x",Ry().state.padding).attr("y",Ry().state.padding).attr("width",u+2*Ry().state.padding).attr("height",l.height+a+2*Ry().state.padding).attr("rx",Ry().state.radius),t},H$=(t,e,n)=>{const i=Ry().state.padding,a=2*Ry().state.padding,r=t.node().getBBox(),o=r.width,s=r.x,c=t.append("text").attr("x",0).attr("y",Ry().state.titleShift).attr("font-size",Ry().state.fontSize).attr("class","state-title").text(e.id),l=c.node().getBBox().width+a;let u,d=Math.max(l,o);d===o&&(d+=a);const h=t.node().getBBox();e.doc,u=s-i,l>o&&(u=(o-d)/2+i),Math.abs(s-h.x)<i&&l>o&&(u=s-(l-o)/2);const f=1-Ry().state.textHeight;return t.insert("rect",":first-child").attr("x",u).attr("y",f).attr("class",n?"alt-composit":"composit").attr("width",d).attr("height",h.height+Ry().state.textHeight+Ry().state.titleShift+1).attr("rx","0"),c.attr("x",u+i),l<=o&&c.attr("x",s+(d-a)/2-l/2+i),t.insert("rect",":first-child").attr("x",u).attr("y",Ry().state.titleShift-Ry().state.textHeight-Ry().state.padding).attr("width",d).attr("height",3*Ry().state.textHeight).attr("rx",Ry().state.radius),t.insert("rect",":first-child").attr("x",u).attr("y",Ry().state.titleShift-Ry().state.textHeight-Ry().state.padding).attr("width",d).attr("height",h.height+3+2*Ry().state.textHeight).attr("rx",Ry().state.radius),t},U$=t=>(t.append("circle").attr("class","end-state-outer").attr("r",Ry().state.sizeUnit+Ry().state.miniPadding).attr("cx",Ry().state.padding+Ry().state.sizeUnit+Ry().state.miniPadding).attr("cy",Ry().state.padding+Ry().state.sizeUnit+Ry().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",Ry().state.sizeUnit).attr("cx",Ry().state.padding+Ry().state.sizeUnit+2).attr("cy",Ry().state.padding+Ry().state.sizeUnit+2)),V$=(t,e)=>{let n=Ry().state.forkWidth,i=Ry().state.forkHeight;if(e.parentId){let t=n;n=i,i=t}return t.append("rect").style("stroke","black").style("fill","black").attr("width",n).attr("height",i).attr("x",Ry().state.padding).attr("y",Ry().state.padding)},q$=(t,e,n,i)=>{let a=0;const r=i.append("text");r.style("text-anchor","start"),r.attr("class","noteText");let o=t.replace(/\r\n/g,"<br/>");o=o.replace(/\n/g,"<br/>");const s=o.split(Qd.lineBreakRegex);let c=1.25*Ry().state.noteMargin;for(const l of s){const t=l.trim();if(t.length>0){const i=r.append("tspan");i.text(t),0===c&&(c+=i.node().getBBox().height),a+=c,i.attr("x",e+Ry().state.noteMargin),i.attr("y",n+a+1.25*Ry().state.noteMargin)}}return{textWidth:r.node().getBBox().width,textHeight:a}},W$=(t,e)=>{e.attr("class","state-note");const n=e.append("rect").attr("x",0).attr("y",Ry().state.padding),i=e.append("g"),{textWidth:a,textHeight:r}=q$(t,0,0,i);return n.attr("height",r+2*Ry().state.noteMargin),n.attr("width",a+2*Ry().state.noteMargin),n},Y$=function(t,e){const n=e.id,i={id:n,label:e.id,width:0,height:0},a=t.append("g").attr("id",n).attr("class","stateGroup");"start"===e.type&&F$(a),"end"===e.type&&U$(a),("fork"===e.type||"join"===e.type)&&V$(a,e),"note"===e.type&&W$(e.note.text,a),"divider"===e.type&&j$(a),"default"===e.type&&0===e.descriptions.length&&$$(a,e),"default"===e.type&&e.descriptions.length>0&&z$(a,e);const r=a.node().getBBox();return i.width=r.width+2*Ry().state.padding,i.height=r.height+2*Ry().state.padding,P$.set(n,i),i};let G$=0;const Z$=function(t,e,n){const i=function(t){switch(t){case M$.relationType.AGGREGATION:return"aggregation";case M$.relationType.EXTENSION:return"extension";case M$.relationType.COMPOSITION:return"composition";case M$.relationType.DEPENDENCY:return"dependency"}};e.points=e.points.filter((t=>!Number.isNaN(t.y)));const a=e.points,r=$l().x((function(t){return t.x})).y((function(t){return t.y})).curve(Kl),o=t.append("path").attr("d",r(a)).attr("id","edge"+G$).attr("class","transition");let s="";if(Ry().state.arrowMarkerAbsolute&&(s=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,s=s.replace(/\(/g,"\\("),s=s.replace(/\)/g,"\\)")),o.attr("marker-end","url("+s+"#"+i(M$.relationType.DEPENDENCY)+"End)"),void 0!==n.title){const i=t.append("g").attr("class","stateLabel"),{x:a,y:r}=vm.calcLabelPosition(e.points),o=Qd.getRows(n.title);let s=0;const c=[];let l=0,u=0;for(let t=0;t<=o.length;t++){const e=i.append("text").attr("text-anchor","middle").text(o[t]).attr("x",a).attr("y",r+s),n=e.node().getBBox();l=Math.max(l,n.width),u=Math.min(u,n.x),d.info(n.x,a,r+s),0===s&&(s=e.node().getBBox().height,d.info("Title height",s,r)),c.push(e)}let h=s*o.length;if(o.length>1){const t=(o.length-1)*s*.5;c.forEach(((e,n)=>e.attr("y",r+n*s-t))),h=s*o.length}const f=i.node().getBBox();i.insert("rect",":first-child").attr("class","box").attr("x",a-l/2-Ry().state.padding/2).attr("y",r-h/2-Ry().state.padding/2-3.5).attr("width",l+Ry().state.padding).attr("height",h+Ry().state.padding),d.info(f)}G$++};let K$;const X$={},J$=function(t){t.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")},Q$=function(t,e,n,i){K$=Ry().state;const a=Ry().securityLevel;let r;"sandbox"===a&&(r=un("#i"+e));const o=un("sandbox"===a?r.nodes()[0].contentDocument.body:"body"),s="sandbox"===a?r.nodes()[0].contentDocument:document;d.debug("Rendering diagram "+t);const c=o.select(`[id='${e}']`);J$(c),new hA({multigraph:!0,compound:!0,rankdir:"RL"}).setDefaultEdgeLabel((function(){return{}}));const l=i.db.getRootDoc();ez(l,c,void 0,!1,o,s,i);const u=K$.padding,h=c.node().getBBox(),f=h.width+2*u,g=h.height+2*u;Ly(c,g,1.75*f,K$.useMaxWidth),c.attr("viewBox",`${h.x-K$.padding} ${h.y-K$.padding} `+f+" "+g)},tz=t=>t?t.length*K$.fontSizeFactor:1,ez=(t,e,n,i,a,r,o)=>{const s=new hA({compound:!0,multigraph:!0});let c,l=!0;for(c=0;c<t.length;c++)if("relation"===t[c].stmt){l=!1;break}n?s.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:l?1:K$.edgeLengthFactor,nodeSep:l?1:50,isMultiGraph:!0}):s.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:l?1:K$.edgeLengthFactor,nodeSep:l?1:50,ranker:"tight-tree",isMultiGraph:!0}),s.setDefaultEdgeLabel((function(){return{}})),o.db.extract(t);const u=o.db.getStates(),h=o.db.getRelations(),f=Object.keys(u);for(const d of f){const t=u[d];let c;if(n&&(t.parentId=n),t.doc){let n=e.append("g").attr("id",t.id).attr("class","stateGroup");c=ez(t.doc,n,t.id,!i,a,r,o);{n=H$(n,t,i);let e=n.node().getBBox();c.width=e.width,c.height=e.height+K$.padding/2,X$[t.id]={y:K$.compositTitleSize}}}else c=Y$(e,t);if(t.note){const n={descriptions:[],id:t.id+"-note",note:t.note,type:"note"},i=Y$(e,n);"left of"===t.note.position?(s.setNode(c.id+"-note",i),s.setNode(c.id,c)):(s.setNode(c.id,c),s.setNode(c.id+"-note",i)),s.setParent(c.id,c.id+"-group"),s.setParent(c.id+"-note",c.id+"-group")}else s.setNode(c.id,c)}d.debug("Count=",s.nodeCount(),s);let g=0;h.forEach((function(t){g++,d.debug("Setting edge",t),s.setEdge(t.id1,t.id2,{relation:t,width:tz(t.title),height:K$.labelHeight*Qd.getRows(t.title).length,labelpos:"c"},"id"+g)})),yI(s),d.debug("Graph after layout",s.nodes());const p=e.node();s.nodes().forEach((function(t){void 0!==t&&void 0!==s.node(t)?(d.warn("Node "+t+": "+JSON.stringify(s.node(t))),a.select("#"+p.id+" #"+t).attr("transform","translate("+(s.node(t).x-s.node(t).width/2)+","+(s.node(t).y+(X$[t]?X$[t].y:0)-s.node(t).height/2)+" )"),a.select("#"+p.id+" #"+t).attr("data-x-shift",s.node(t).x-s.node(t).width/2),r.querySelectorAll("#"+p.id+" #"+t+" .divider").forEach((t=>{const e=t.parentElement;let n=0,i=0;e&&(e.parentElement&&(n=e.parentElement.getBBox().width),i=parseInt(e.getAttribute("data-x-shift"),10),Number.isNaN(i)&&(i=0)),t.setAttribute("x1",0-i+8),t.setAttribute("x2",n-i-8)}))):d.debug("No Node "+t+": "+JSON.stringify(s.node(t)))}));let b=p.getBBox();s.edges().forEach((function(t){void 0!==t&&void 0!==s.edge(t)&&(d.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(s.edge(t))),Z$(e,s.edge(t),s.edge(t).relation))})),b=p.getBBox();const m={id:n||"root",label:n||"root",width:0,height:0};return m.width=b.width+2*K$.padding,m.height=b.height+2*K$.padding,d.debug("Doc rendered",m,s),m},nz={setConf:function(){},draw:Q$},iz="rect",az="rectWithTitle",rz="start",oz="end",sz="divider",cz="roundedWithTitle",lz="note",uz="noteGroup",dz="statediagram",hz=`${dz}-state`,fz="transition",gz=`${fz} note-edge`,pz=`${dz}-note`,bz=`${dz}-cluster`,mz=`${dz}-cluster-alt`,yz="parent",vz="note",wz="state",xz="----",Rz=`${xz}${vz}`,_z=`${xz}${yz}`,kz="fill:none",Ez="fill: #333",Cz="c",Sz="text",Tz="normal";let Az={},Dz=0;function Iz(t){return null==t?"":t.classes?t.classes.join(" "):""}function Lz(t="",e=0,n="",i=xz){const a=null!==n&&n.length>0?`${i}${n}`:"";return`${wz}-${t}${a}-${e}`}const Oz=(t,e,n,i,a,r)=>{const o=n.id,s=Iz(i[o]);if("root"!==o){let e=iz;!0===n.start&&(e=rz),!1===n.start&&(e=oz),n.type!==Jj&&(e=n.type),Az[o]||(Az[o]={id:o,shape:e,description:Qd.sanitizeText(o,Ry()),classes:`${s} ${hz}`});const i=Az[o];n.description&&(Array.isArray(i.description)?(i.shape=az,i.description.push(n.description)):i.description.length>0?(i.shape=az,i.description===o?i.description=[n.description]:i.description=[i.description,n.description]):(i.shape=iz,i.description=n.description),i.description=Qd.sanitizeTextOrArray(i.description,Ry())),1===i.description.length&&i.shape===az&&(i.shape=iz),!i.type&&n.doc&&(d.info("Setting cluster for ",o,Nz(n)),i.type="group",i.dir=Nz(n),i.shape=n.type===Qj?sz:cz,i.classes=i.classes+" "+bz+" "+(r?mz:""));const a={labelStyle:"",shape:i.shape,labelText:i.description,classes:i.classes,style:"",id:o,dir:i.dir,domId:Lz(o,Dz),type:i.type,padding:15};if(n.note){const e={labelStyle:"",shape:lz,labelText:n.note.text,classes:pz,style:"",id:o+Rz+"-"+Dz,domId:Lz(o,Dz,vz),type:i.type,padding:15},r={labelStyle:"",shape:uz,labelText:n.note.text,classes:i.classes,style:"",id:o+_z,domId:Lz(o,Dz,yz),type:"group",padding:0};Dz++;const s=o+_z;t.setNode(s,r),t.setNode(e.id,e),t.setNode(o,a),t.setParent(o,s),t.setParent(e.id,s);let c=o,l=e.id;"left of"===n.note.position&&(c=e.id,l=o),t.setEdge(c,l,{arrowhead:"none",arrowType:"",style:kz,labelStyle:"",classes:gz,arrowheadStyle:Ez,labelpos:Cz,labelType:Sz,thickness:Tz})}else t.setNode(o,a)}e&&"root"!==e.id&&(d.trace("Setting node ",o," to be child of its parent ",e.id),t.setParent(o,e.id)),n.doc&&(d.trace("Adding nodes children "),Mz(t,n,n.doc,i,a,!r))},Mz=(t,e,n,i,a,r)=>{d.trace("items",n),n.forEach((n=>{switch(n.stmt){case Gj:case Jj:Oz(t,e,n,i,a,r);break;case Zj:{Oz(t,e,n.state1,i,a,r),Oz(t,e,n.state2,i,a,r);const o={id:"edge"+Dz,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:kz,labelStyle:"",label:Qd.sanitizeText(n.description,Ry()),arrowheadStyle:Ez,labelpos:Cz,labelType:Sz,thickness:Tz,classes:fz};t.setEdge(n.state1.id,n.state2.id,o,Dz),Dz++}}}))},Nz=(t,e=Yj)=>{let n=e;if(t.doc)for(let i=0;i<t.doc.length;i++){const e=t.doc[i];"dir"===e.stmt&&(n=e.value)}return n},Bz={setConf:function(t){const e=Object.keys(t);for(const n of e)t[n]},getClasses:function(t,e){d.trace("Extracting classes"),e.db.clear();try{return e.parser.parse(t),e.db.extract(e.db.getRootDocV2()),e.db.getClasses()}catch(n){return n}},draw:function(t,e,n,i){d.info("Drawing state diagram (v2)",e),Az={};let a=i.db.getDirection();void 0===a&&(a=Wj);const{securityLevel:r,state:o}=Ry(),s=o.nodeSpacing||50,c=o.rankSpacing||50;d.info(i.db.getRootDocV2()),i.db.extract(i.db.getRootDocV2()),d.info(i.db.getRootDocV2());const l=i.db.getStates(),u=new hA({multigraph:!0,compound:!0}).setGraph({rankdir:Nz(i.db.getRootDocV2()),nodesep:s,ranksep:c,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));let h;Oz(u,void 0,i.db.getRootDocV2(),l,i.db,!0),"sandbox"===r&&(h=un("#i"+e));const f=un("sandbox"===r?h.nodes()[0].contentDocument.body:"body"),g=f.select(`[id="${e}"]`),p=f.select("#"+e+" g");cO(p,u,["barb"],dz,e);const b=8;vm.insertTitle(g,"statediagramTitleText",o.titleTopMargin,i.db.getDiagramTitle());const m=g.node().getBBox(),y=m.width+2*b,v=m.height+2*b;g.attr("class",dz);const w=g.node().getBBox();Ly(g,v,y,o.useMaxWidth);const x=`${w.x-b} ${w.y-b} ${y} ${v}`;d.debug(`viewBox ${x}`),g.attr("viewBox",x);const R=document.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const d of R){const t=d.getBBox(),e=document.createElementNS("http://www.w3.org/2000/svg",iz);e.setAttribute("rx",0),e.setAttribute("ry",0),e.setAttribute("width",t.width),e.setAttribute("height",t.height),d.insertBefore(e,d.firstChild)}}};var Pz=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,2],n=[1,5],i=[6,9,11,17,18,20,22,23,24,26],a=[1,15],r=[1,16],o=[1,17],s=[1,18],c=[1,19],l=[1,20],u=[1,24],d=[4,6,9,11,17,18,20,22,23,24,26],h={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,acc_title:18,acc_title_value:19,acc_descr:20,acc_descr_value:21,acc_descr_multiline_value:22,section:23,taskName:24,taskData:25,open_directive:26,type_directive:27,arg_directive:28,close_directive:29,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"acc_title",19:"acc_title_value",20:"acc_descr",21:"acc_descr_value",22:"acc_descr_multiline_value",23:"section",24:"taskName",25:"taskData",26:"open_directive",27:"type_directive",28:"arg_directive",29:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,2],[10,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 1:return r[s-1];case 3:case 7:case 8:this.$=[];break;case 4:r[s-1].push(r[s]),this.$=r[s-1];break;case 5:case 6:this.$=r[s];break;case 11:i.setDiagramTitle(r[s].substr(6)),this.$=r[s].substr(6);break;case 12:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 13:case 14:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 15:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 16:i.addTask(r[s-1],r[s]),this.$="task";break;case 18:i.parseDirective("%%{","open_directive");break;case 19:i.parseDirective(r[s],"type_directive");break;case 20:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 21:i.parseDirective("}%%","close_directive","journey")}},table:[{3:1,4:e,7:3,12:4,26:n},{1:[3]},t(i,[2,3],{5:6}),{3:7,4:e,7:3,12:4,26:n},{13:8,27:[1,9]},{27:[2,18]},{6:[1,10],7:21,8:11,9:[1,12],10:13,11:[1,14],12:4,17:a,18:r,20:o,22:s,23:c,24:l,26:n},{1:[2,2]},{14:22,15:[1,23],29:u},t([15,29],[2,19]),t(i,[2,8],{1:[2,1]}),t(i,[2,4]),{7:21,10:25,12:4,17:a,18:r,20:o,22:s,23:c,24:l,26:n},t(i,[2,6]),t(i,[2,7]),t(i,[2,11]),{19:[1,26]},{21:[1,27]},t(i,[2,14]),t(i,[2,15]),{25:[1,28]},t(i,[2,17]),{11:[1,29]},{16:30,28:[1,31]},{11:[2,21]},t(i,[2,5]),t(i,[2,12]),t(i,[2,13]),t(i,[2,16]),t(d,[2,9]),{14:32,29:u},{29:[2,20]},{11:[1,33]},t(d,[2,10])],defaultActions:{5:[2,18],7:[2,2],24:[2,21],31:[2,20]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},f={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),26;case 1:return this.begin("type_directive"),27;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),29;case 4:return 28;case 5:case 6:case 8:case 9:break;case 7:return 11;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 24;case 21:return 25;case 22:return 15;case 23:return 6;case 24:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\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:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23,24],inclusive:!0}}};function g(){this.yy={}}return h.lexer=f,g.prototype=h,h.Parser=g,new g}();Pz.parser=Pz;const Fz=Pz,jz=t=>null!==t.match(/^\s*journey/);let $z="";const zz=[],Hz=[],Uz=[],Vz=function(){let t=Wz();const e=100;let n=0;for(;!t&&n<e;)t=Wz(),n++;return Hz.push(...Uz),Hz},qz=function(){const t=[];return Hz.forEach((e=>{e.people&&t.push(...e.people)})),[...new Set(t)].sort()},Wz=function(){const t=function(t){return Uz[t].processed};let e=!0;for(const[n,i]of Uz.entries())t(n),e=e&&i.processed;return e},Yz={parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().journey,clear:function(){zz.length=0,Hz.length=0,$z="",Uz.length=0,Qy()},setDiagramTitle:av,getDiagramTitle:rv,setAccTitle:tv,getAccTitle:ev,setAccDescription:nv,getAccDescription:iv,addSection:function(t){$z=t,zz.push(t)},getSections:function(){return zz},getTasks:Vz,addTask:function(t,e){const n=e.substr(1).split(":");let i=0,a=[];1===n.length?(i=Number(n[0]),a=[]):(i=Number(n[0]),a=n[1].split(","));const r=a.map((t=>t.trim())),o={section:$z,type:$z,people:r,task:t,score:i};Uz.push(o)},addTaskOrg:function(t){const e={section:$z,type:$z,description:t,task:t,classes:[]};Hz.push(e)},getActors:function(){return qz()}},Gz=function(t,e){const n=t.append("rect");return n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),n.attr("rx",e.rx),n.attr("ry",e.ry),void 0!==e.class&&n.attr("class",e.class),n},Zz=function(t,e){const n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");function a(t){const n=Ml().startAngle(Math.PI/2).endAngle(Math.PI/2*3).innerRadius(7.5).outerRadius(6.8181818181818175);t.append("path").attr("class","mouth").attr("d",n).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}function r(t){const n=Ml().startAngle(3*Math.PI/2).endAngle(Math.PI/2*5).innerRadius(7.5).outerRadius(6.8181818181818175);t.append("path").attr("class","mouth").attr("d",n).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}function o(t){t.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 i.append("circle").attr("cx",e.cx-5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),e.score>3?a(i):e.score<3?r(i):o(i),n},Kz=function(t,e){const n=t.append("circle");return n.attr("cx",e.cx),n.attr("cy",e.cy),n.attr("class","actor-"+e.pos),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("r",e.r),void 0!==n.class&&n.attr("class",n.class),void 0!==e.title&&n.append("title").text(e.title),n},Xz=function(t,e){const n=e.text.replace(/<br\s*\/?>/gi," "),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.attr("class","legend"),i.style("text-anchor",e.anchor),void 0!==e.class&&i.attr("class",e.class);const a=i.append("tspan");return a.attr("x",e.x+2*e.textMargin),a.text(n),i},Jz=function(t,e){function n(t,e,n,i,a){return t+","+e+" "+(t+n)+","+e+" "+(t+n)+","+(e+i-a)+" "+(t+n-1.2*a)+","+(e+i)+" "+t+","+(e+i)}const i=t.append("polygon");i.attr("points",n(e.x,e.y,50,20,7)),i.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,Xz(t,e)},Qz=function(t,e,n){const i=t.append("g"),a=aH();a.x=e.x,a.y=e.y,a.fill=e.fill,a.width=n.width,a.height=n.height,a.class="journey-section section-type-"+e.num,a.rx=3,a.ry=3,Gz(i,a),rH(n)(e.text,i,a.x,a.y,a.width,a.height,{class:"journey-section section-type-"+e.num},n,e.colour)};let tH=-1;const eH=function(t,e,n){const i=e.x+n.width/2,a=t.append("g");tH++;const r=450;a.append("line").attr("id","task"+tH).attr("x1",i).attr("y1",e.y).attr("x2",i).attr("y2",r).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Zz(a,{cx:i,cy:300+30*(5-e.score),score:e.score});const o=aH();o.x=e.x,o.y=e.y,o.fill=e.fill,o.width=n.width,o.height=n.height,o.class="task task-type-"+e.num,o.rx=3,o.ry=3,Gz(a,o);let s=e.x+14;e.people.forEach((t=>{const n=e.actors[t].color,i={cx:s,cy:e.y,r:7,fill:n,stroke:"#000",title:t,pos:e.actors[t].position};Kz(a,i),s+=10})),rH(n)(e.task,a,o.x,o.y,o.width,o.height,{class:"task"},n,e.colour)},nH=function(t,e){Gz(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:"rect"}).lower()},iH=function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},aH=function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},rH=function(){function t(t,e,n,a,r,o,s,c){i(e.append("text").attr("x",n+r/2).attr("y",a+o/2+5).style("font-color",c).style("text-anchor","middle").text(t),s)}function e(t,e,n,a,r,o,s,c,l){const{taskFontSize:u,taskFontFamily:d}=c,h=t.split(/<br\s*\/?>/gi);for(let f=0;f<h.length;f++){const t=f*u-u*(h.length-1)/2,c=e.append("text").attr("x",n+r/2).attr("y",a).attr("fill",l).style("text-anchor","middle").style("font-size",u).style("font-family",d);c.append("tspan").attr("x",n+r/2).attr("dy",t).text(h[f]),c.attr("y",a+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(c,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,o,s,c,l),i(d,c)}function i(t,e){for(const n in e)n in e&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}(),oH={drawRect:Gz,drawCircle:Kz,drawSection:Qz,drawText:Xz,drawLabel:Jz,drawTask:eH,drawBackgroundRect:nH,getTextObj:iH,getNoteRect:aH,initGraphics:function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")}},sH=function(t){Object.keys(t).forEach((function(e){uH[e]=t[e]}))},cH={};function lH(t){const e=Ry().journey;let n=60;Object.keys(cH).forEach((i=>{const a=cH[i].color,r={cx:20,cy:n,r:7,fill:a,stroke:"#000",pos:cH[i].position};oH.drawCircle(t,r);const o={x:40,y:n+7,fill:"#666",text:i,textMargin:5|e.boxTextMargin};oH.drawText(t,o),n+=20}))}const uH=Ry().journey,dH=uH.leftMargin,hH=function(t,e,n,i){const a=Ry().journey;i.db.clear(),i.parser.parse(t+"\n");const r=Ry().securityLevel;let o;"sandbox"===r&&(o=un("#i"+e));const s=un("sandbox"===r?o.nodes()[0].contentDocument.body:"body");fH.init();const c=s.select("#"+e);oH.initGraphics(c);const l=i.db.getTasks(),u=i.db.getDiagramTitle(),d=i.db.getActors();for(const m in cH)delete cH[m];let h=0;d.forEach((t=>{cH[t]={color:a.actorColours[h%a.actorColours.length],position:h},h++})),lH(c),fH.insert(0,0,dH,50*Object.keys(cH).length),bH(c,l,0);const f=fH.getBounds();u&&c.append("text").text(u).attr("x",dH).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);const g=f.stopy-f.starty+2*a.diagramMarginY,p=dH+f.stopx+2*a.diagramMarginX;Ly(c,g,p,a.useMaxWidth),c.append("line").attr("x1",dH).attr("y1",4*a.height).attr("x2",p-dH-4).attr("y2",4*a.height).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const b=u?70:0;c.attr("viewBox",`${f.startx} -25 ${p} ${g+b}`),c.attr("preserveAspectRatio","xMinYMin meet"),c.attr("height",g+b+25)},fH={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,n,i){void 0===t[e]?t[e]=n:t[e]=i(n,t[e])},updateBounds:function(t,e,n,i){const a=Ry().journey,r=this;let o=0;function s(s){return function(c){o++;const l=r.sequenceItems.length-o+1;r.updateVal(c,"starty",e-l*a.boxMargin,Math.min),r.updateVal(c,"stopy",i+l*a.boxMargin,Math.max),r.updateVal(fH.data,"startx",t-l*a.boxMargin,Math.min),r.updateVal(fH.data,"stopx",n+l*a.boxMargin,Math.max),"activation"!==s&&(r.updateVal(c,"startx",t-l*a.boxMargin,Math.min),r.updateVal(c,"stopx",n+l*a.boxMargin,Math.max),r.updateVal(fH.data,"starty",e-l*a.boxMargin,Math.min),r.updateVal(fH.data,"stopy",i+l*a.boxMargin,Math.max))}}this.sequenceItems.forEach(s())},insert:function(t,e,n,i){const a=Math.min(t,n),r=Math.max(t,n),o=Math.min(e,i),s=Math.max(e,i);this.updateVal(fH.data,"startx",a,Math.min),this.updateVal(fH.data,"starty",o,Math.min),this.updateVal(fH.data,"stopx",r,Math.max),this.updateVal(fH.data,"stopy",s,Math.max),this.updateBounds(a,o,r,s)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},gH=uH.sectionFills,pH=uH.sectionColours,bH=function(t,e,n){const i=Ry().journey;let a="";const r=n+(2*i.height+i.diagramMarginY);let o=0,s="#CCC",c="black",l=0;for(const[u,d]of e.entries()){if(a!==d.section){s=gH[o%gH.length],l=o%gH.length,c=pH[o%pH.length];const e={x:u*i.taskMargin+u*i.width+dH,y:50,text:d.section,fill:s,num:l,colour:c};oH.drawSection(t,e,i),a=d.section,o++}const e=d.people.reduce(((t,e)=>(cH[e]&&(t[e]=cH[e]),t)),{});d.x=u*i.taskMargin+u*i.width+dH,d.y=r,d.width=i.diagramMarginX,d.height=i.diagramMarginY,d.colour=c,d.fill=s,d.num=l,d.actors=e,oH.drawTask(t,d,i),fH.insert(d.x,d.y,d.x+d.width+i.taskMargin,450)}},mH={setConf:sH,draw:hH};let yH={};const vH={setConf:function(t){yH={...yH,...t}},draw:(t,e,n)=>{try{d.debug("Renering svg for syntax error\n");const t=un("#"+e),i=t.append("g");i.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"),i.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"),i.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"),i.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"),i.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"),i.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"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in graph"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text("mermaid version "+n),t.attr("height",100),t.attr("width",500),t.attr("viewBox","768 0 912 512")}catch(o){d.error("Error while rendering info diagram"),d.error(mm(o))}}},wH="flowchart-elk",xH={id:wH,detector:(t,e)=>{var n;return!!(t.match(/^\s*flowchart-elk/)||t.match(/^\s*flowchart|graph/)&&"elk"===(null==(n=null==e?void 0:e.flowchart)?void 0:n.defaultRenderer))},loader:async()=>{const{diagram:t}=await Promise.resolve().then((()=>ZU));return{id:wH,diagram:t}}},RH="timeline",_H={id:RH,detector:t=>null!==t.match(/^\s*timeline/),loader:async()=>{const{diagram:t}=await Promise.resolve().then((()=>BV));return{id:RH,diagram:t}}},kH="mindmap",EH={id:kH,detector:t=>null!==t.match(/^\s*mindmap/),loader:async()=>{const{diagram:t}=await Promise.resolve().then((()=>Mq));return{id:kH,diagram:t}}};let CH=!1;const SH=()=>{CH||(CH=!0,_p(xH,_H,EH),yv("error",{db:{clear:()=>{}},styles:By,renderer:vH,parser:{parser:{yy:{}},parse:()=>{}},init:()=>{}},(t=>"error"===t.toLowerCase().trim())),yv("---",{db:{clear:()=>{}},styles:By,renderer:vH,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 unindented `---` blocks")}},init:()=>null},(t=>t.toLowerCase().trimStart().startsWith("---"))),yv("c4",{parser:uw,db:Ow,renderer:px,styles:qy,init:t=>{px.setConf(t.c4)}},dw),yv("class",{parser:mx,db:Qx,renderer:iL,styles:My,init:t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Qx.clear()}},yx),yv("classDiagram",{parser:mx,db:Qx,renderer:pO,styles:My,init:t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Qx.clear()}},vx),yv("er",{parser:mO,db:RO,renderer:XO,styles:Ny},yO),yv("gantt",{parser:TB,db:vP,renderer:RP,styles:Fy},AB),yv("info",{parser:kP,db:SP,renderer:TP,styles:jy},AP),yv("pie",{parser:IP,db:NP,renderer:jP,styles:$y},LP),yv("requirement",{parser:zP,db:GP,renderer:lF,styles:zy},HP),yv("sequence",{parser:dF,db:PF,renderer:zj,styles:Hy,init:t=>{if(t.sequence||(t.sequence={}),t.sequence.arrowMarkerAbsolute=t.arrowMarkerAbsolute,"sequenceDiagram"in t)throw new Error("`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.");PF.setWrap(t.wrap),zj.setConf(t.sequence)}},hF),yv("state",{parser:Uj,db:M$,renderer:nz,styles:Uy,init:t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,M$.clear()}},Vj),yv("stateDiagram",{parser:Uj,db:M$,renderer:Bz,styles:Uy,init:t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,M$.clear()}},qj),yv("journey",{parser:Fz,db:Yz,renderer:mH,styles:Vy,init:t=>{mH.setConf(t.journey),Yz.clear()}},jz),yv("flowchart",{parser:QO,db:iN,renderer:CB,styles:Py,init:t=>{t.flowchart||(t.flowchart={}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,RB.setConf(t.flowchart),iN.clear(),iN.setGen("gen-1")}},tM),yv("flowchart-v2",{parser:QO,db:iN,renderer:CB,styles:Py,init:t=>{t.flowchart||(t.flowchart={}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,xy({flowchart:{arrowMarkerAbsolute:t.arrowMarkerAbsolute}}),CB.setConf(t.flowchart),iN.clear(),iN.setGen("gen-2")}},eM),yv("gitGraph",{parser:xv,db:qv,renderer:sw,styles:cw},Rv))};class TH{constructor(t,e){var n,i;this.txt=t,this.type="graph",this.detectTypeFailed=!1;const a=Ry();this.txt=t;try{this.type=Rp(t,a)}catch(s){this.handleError(s,e),this.type="error",this.detectTypeFailed=!0}const r=vv(this.type);d.debug("Type "+this.type),this.db=r.db,null==(i=(n=this.db).clear)||i.call(n),this.renderer=r.renderer,this.parser=r.parser;const o=this.parser.parse.bind(this.parser);this.parser.parse=t=>o(yp(t,this.db)),this.parser.parser.yy=this.db,r.init&&(r.init(a),d.info("Initialized diagram "+this.type,a)),this.txt+="\n",this.parse(this.txt,e)}parse(t,e){var n,i;if(this.detectTypeFailed)return!1;try{return t+="\n",null==(i=(n=this.db).clear)||i.call(n),this.parser.parse(t),!0}catch(a){this.handleError(a,e)}return!1}handleError(t,e){if(void 0===e)throw t;bm(t)?e(t.str,t.hash):e(t)}getParser(){return this.parser}getType(){return this.type}}const AH=(t,e)=>{const n=Rp(t,Ry());try{vv(n)}catch{const i=Ep(n);if(!i)throw new Error(`Diagram ${n} not found.`);return i().then((({diagram:i})=>(yv(n,i,void 0),new TH(t,e))))}return new TH(t,e)},DH=TH,IH="graphics-document document";function LH(t,e){t.attr("role",IH),AT(e)||t.attr("aria-roledescription",e)}function OH(t,e,n,i){if(void 0!==t.insert){if(!e&&!n)return;if(n){const e="chart-desc-"+i;t.attr("aria-describedby",e),t.insert("desc",":first-child").attr("id",e).text(n)}if(e){const n="chart-title-"+i;t.attr("aria-labelledby",n),t.insert("title",":first-child").attr("id",n).text(e)}}}const MH=["graph","flowchart","flowchart-v2","stateDiagram","stateDiagram-v2"],NH="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",BH="sandbox",PH="loose",FH="http://www.w3.org/2000/svg",jH="http://www.w3.org/1999/xlink",$H="http://www.w3.org/1999/xhtml",zH="100%",HH="100%",UH="border:0;margin:0;",VH="margin:0",qH="allow-top-navigation-by-user-activation allow-popups",WH='The "iframe" tag is not supported by your browser.',YH=["foreignobject"],GH=["dominant-baseline"];function ZH(t,e){return SH(),new DH(t,e).parse(t,e)}async function KH(t,e){return SH(),(await AH(t,e)).parse(t,e)}const XH=function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,(function(t){return t.substring(0,t.length-1)})),e=e.replace(/classDef.*:\S*#.*;/g,(function(t){return t.substring(0,t.length-1)})),e=e.replace(/#\w+;/g,(function(t){const e=t.substring(1,t.length-1);return/^\+?\d+$/.test(e)?"\ufb02\xb0\xb0"+e+"\xb6\xdf":"\ufb02\xb0"+e+"\xb6\xdf"})),e},JH=function(t){let e=t;return e=e.replace(/\ufb02\xb0\xb0/g,"&#"),e=e.replace(/\ufb02\xb0/g,"&"),e=e.replace(/\xb6\xdf/g,";"),e},QH=(t,e,n=[])=>`\n.${t} ${e} { ${n.join(" !important; ")} !important; }`,tU=(t,e,n={})=>{var i;let a="";if(void 0!==t.themeCSS&&(a+=`\n${t.themeCSS}`),void 0!==t.fontFamily&&(a+=`\n:root { --mermaid-font-family: ${t.fontFamily}}`),void 0!==t.altFontFamily&&(a+=`\n:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),!AT(n)&&MH.includes(e)){const e=t.htmlLabels||(null==(i=t.flowchart)?void 0:i.htmlLabels)?["> *","span"]:["rect","polygon","ellipse","circle","path"];for(const t in n){const i=n[t];AT(i.styles)||e.forEach((t=>{a+=QH(i.id,t,i.styles)})),AT(i.textStyles)||(a+=QH(i.id,"tspan",i.textStyles))}}return a},eU=(t,e,n,i)=>{const a=tU(t,e,n);return cy(iy(`${i}{${Gy(e,a,t.themeVariables)}}`),ly)},nU=(t="",e,n)=>{let i=t;return!n&&!e&&(i=i.replace(/marker-end="url\(.*?#/g,'marker-end="url(#')),i=JH(i),i=i.replace(/<br>/g,"<br/>"),i},iU=(t="",e)=>{const n=e?e.viewBox.baseVal.height+"px":HH,i=btoa('<body style="'+VH+'">'+t+"</body>");return`<iframe style="width:${zH};height:${n};${UH}" src="data:text/html;base64,${i}" sandbox="${qH}">\n ${WH}\n</iframe>`},aU=(t,e,n,i,a)=>{const r=t.append("div");r.attr("id",n),i&&r.attr("style",i);const o=r.append("svg").attr("id",e).attr("width","100%").attr("xmlns",FH);return a&&o.attr("xmlns:xlink",a),o.append("g"),t};function rU(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const oU=(t,e,n,i)=>{var a,r,o;null==(a=t.getElementById(e))||a.remove(),null==(r=t.getElementById(n))||r.remove(),null==(o=t.getElementById(i))||o.remove()},sU=function(t,e,n,i){var a,r,o,s;SH(),Ey();const c=vm.detectInit(e);c&&(gm(c),ky(c));const l=Ry();d.debug(l),e.length>((null==l?void 0:l.maxTextSize)??5e4)&&(e=NH),e=e.replace(/\r\n?/g,"\n");const u="#"+t,h="i"+t,f="#"+h,g="d"+t,p="#"+g;let b=un("body");const m=l.securityLevel===BH,y=l.securityLevel===PH,v=l.fontFamily;if(void 0!==i){if(i&&(i.innerHTML=""),m){const t=rU(un(i),h);b=un(t.nodes()[0].contentDocument.body),b.node().style.margin=0}else b=un(i);aU(b,t,g,`font-family: ${v}`,jH)}else{if(oU(document,t,g,h),m){const t=rU(un("body"),h);b=un(t.nodes()[0].contentDocument.body),b.node().style.margin=0}else b=un("body");aU(b,t,g)}let w,x;e=XH(e);try{if(w=AH(e),"then"in w)throw new Error("Diagram is a promise. Use renderAsync.")}catch(I){w=new DH("error"),x=I}const R=b.select(p).node(),_=w.type,k=R.firstChild,E=k.firstChild,C=MH.includes(_)?w.renderer.getClasses(e,w):{},S=eU(l,_,C,u),T=document.createElement("style");T.innerHTML=S,k.insertBefore(T,E);try{w.renderer.draw(e,t,uy,w)}catch(I){throw vH.draw(e,t,uy),I}uU(_,b.select(`${p} svg`),null==(r=(a=w.db).getAccTitle)?void 0:r.call(a),null==(s=(o=w.db).getAccDescription)?void 0:s.call(o)),b.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",$H);let A=b.select(p).node().innerHTML;if(d.debug("config.arrowMarkerAbsolute",l.arrowMarkerAbsolute),A=nU(A,m,Xd(l.arrowMarkerAbsolute)),m){const t=b.select(p+" svg").node();A=iU(A,t)}else y||(A=Hd.sanitize(A,{ADD_TAGS:YH,ADD_ATTR:GH}));if(void 0!==n)switch(_){case"flowchart":case"flowchart-v2":n(A,iN.bindFunctions);break;case"gantt":n(A,vP.bindFunctions);break;case"class":case"classDiagram":n(A,Qx.bindFunctions);break;default:n(A)}else d.debug("CB = undefined!");$F();const D=un(m?f:p).node();if(D&&"remove"in D&&D.remove(),x)throw x;return A},cU=async function(t,e,n,i){var a,r,o,s;SH(),Ey();const c=vm.detectInit(e);c&&(gm(c),ky(c));const l=Ry();d.debug(l),e.length>((null==l?void 0:l.maxTextSize)??5e4)&&(e=NH),e=e.replace(/\r\n?/g,"\n");const u="#"+t,h="i"+t,f="#"+h,g="d"+t,p="#"+g;let b=un("body");const m=l.securityLevel===BH,y=l.securityLevel===PH,v=l.fontFamily;if(void 0!==i){if(i&&(i.innerHTML=""),m){const t=rU(un(i),h);b=un(t.nodes()[0].contentDocument.body),b.node().style.margin=0}else b=un(i);aU(b,t,g,`font-family: ${v}`,jH)}else{if(oU(document,t,g,h),m){const t=rU(un("body"),h);b=un(t.nodes()[0].contentDocument.body),b.node().style.margin=0}else b=un("body");aU(b,t,g)}let w,x;e=XH(e);try{w=await AH(e)}catch(I){w=new DH("error"),x=I}const R=b.select(p).node(),_=w.type,k=R.firstChild,E=k.firstChild,C=MH.includes(_)?w.renderer.getClasses(e,w):{},S=eU(l,_,C,u),T=document.createElement("style");T.innerHTML=S,k.insertBefore(T,E);try{await w.renderer.draw(e,t,uy,w)}catch(I){throw vH.draw(e,t,uy),I}uU(_,b.select(`${p} svg`),null==(r=(a=w.db).getAccTitle)?void 0:r.call(a),null==(s=(o=w.db).getAccDescription)?void 0:s.call(o)),b.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",$H);let A=b.select(p).node().innerHTML;if(d.debug("config.arrowMarkerAbsolute",l.arrowMarkerAbsolute),A=nU(A,m,Xd(l.arrowMarkerAbsolute)),m){const t=b.select(p+" svg").node();A=iU(A,t)}else y||(A=Hd.sanitize(A,{ADD_TAGS:YH,ADD_ATTR:GH}));if(void 0!==n)switch(_){case"flowchart":case"flowchart-v2":n(A,iN.bindFunctions);break;case"gantt":n(A,vP.bindFunctions);break;case"class":case"classDiagram":n(A,Qx.bindFunctions);break;default:n(A)}else d.debug("CB = undefined!");$F();const D=un(m?f:p).node();if(D&&"remove"in D&&D.remove(),x)throw x;return A};function lU(t={}){var e;null!=t&&t.fontFamily&&!(null!=(e=t.themeVariables)&&e.fontFamily)&&(t.themeVariables={fontFamily:t.fontFamily}),yy(t),null!=t&&t.theme&&t.theme in $h?t.themeVariables=$h[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=$h.default.getThemeVariables(t.themeVariables));const n="object"==typeof t?my(t):wy();h(n.logLevel),SH()}function uU(t,e,n,i){LH(e,t),OH(e,n,i,e.attr("id"))}const dU=Object.freeze({render:sU,renderAsync:cU,parse:ZH,parseAsync:KH,parseDirective:cv,initialize:lU,getConfig:Ry,setConfig:xy,getSiteConfig:wy,updateSiteConfig:vy,reset:()=>{Ey()},globalReset:()=>{Ey(dy)},defaultConfig:dy});h(Ry().logLevel),Ey(Ry());const hU=async function(t,e,n){try{await bU(t,e,n)}catch(o){d.warn("Syntax Error rendering"),bm(o)&&d.warn(o.str),SU.parseError&&SU.parseError(o)}},fU=(t,e,n)=>{d.warn(t),bm(t)?(n&&n(t.str,t.hash),e.push({...t,message:t.str,error:t})):(n&&n(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},gU=function(t,e,n){const a=dU.getConfig();let r;if(t&&(SU.sequenceConfig=t),d.debug((n?"":"No ")+"Callback function found"),void 0===e)r=document.querySelectorAll(".mermaid");else if("string"==typeof e)r=document.querySelectorAll(e);else if(e instanceof HTMLElement)r=[e];else{if(!(e instanceof NodeList))throw new Error("Invalid argument nodes for mermaid.init");r=e}d.debug(`Found ${r.length} diagrams`),void 0!==(null==t?void 0:t.startOnLoad)&&(d.debug("Start On Load: "+(null==t?void 0:t.startOnLoad)),dU.updateSiteConfig({startOnLoad:null==t?void 0:t.startOnLoad}));const o=new vm.initIdGenerator(a.deterministicIds,a.deterministicIDSeed);let s;const c=[];for(const u of Array.from(r)){if(d.info("Rendering diagram: "+u.id),u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");const t=`mermaid-${o.next()}`;s=u.innerHTML,s=i(vm.entityDecode(s)).trim().replace(/<br\s*\/?>/gi,"<br/>");const e=vm.detectInit(s);e&&d.debug("Detected early reinit: ",e);try{dU.render(t,s,((e,i)=>{u.innerHTML=e,void 0!==n&&n(t),i&&i(u)}),u)}catch(l){fU(l,c,SU.parseError)}}if(c.length>0)throw c[0]},pU=async(...t)=>{d.debug(`Loading ${t.length} external diagrams`);const e=(await Promise.allSettled(t.map((async({id:t,detector:e,loader:n})=>{const{diagram:i}=await n();yv(t,i,e)})))).filter((t=>"rejected"===t.status));if(e.length>0){d.error(`Failed to load ${e.length} external diagrams`);for(const t of e)d.error(t);throw new Error(`Failed to load ${e.length} external diagrams`)}},bU=async function(t,e,n){const a=dU.getConfig();let r;if(t&&(SU.sequenceConfig=t),d.debug((n?"":"No ")+"Callback function found"),void 0===e)r=document.querySelectorAll(".mermaid");else if("string"==typeof e)r=document.querySelectorAll(e);else if(e instanceof HTMLElement)r=[e];else{if(!(e instanceof NodeList))throw new Error("Invalid argument nodes for mermaid.init");r=e}d.debug(`Found ${r.length} diagrams`),void 0!==(null==t?void 0:t.startOnLoad)&&(d.debug("Start On Load: "+(null==t?void 0:t.startOnLoad)),dU.updateSiteConfig({startOnLoad:null==t?void 0:t.startOnLoad}));const o=new vm.initIdGenerator(a.deterministicIds,a.deterministicIDSeed);let s;const c=[];for(const u of Array.from(r)){if(d.info("Rendering diagram: "+u.id),u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");const t=`mermaid-${o.next()}`;s=u.innerHTML,s=i(vm.entityDecode(s)).trim().replace(/<br\s*\/?>/gi,"<br/>");const e=vm.detectInit(s);e&&d.debug("Detected early reinit: ",e);try{await dU.renderAsync(t,s,((e,i)=>{u.innerHTML=e,void 0!==n&&n(t),i&&i(u)}),u)}catch(l){fU(l,c,SU.parseError)}}if(c.length>0)throw c[0]},mU=function(t){dU.initialize(t)},yU=async(t,{lazyLoad:e=!0}={})=>{e?_p(...t):await pU(...t)},vU=function(){if(SU.startOnLoad){const{startOnLoad:t}=dU.getConfig();t&&SU.init().catch((t=>d.error("Mermaid failed to initialize",t)))}};typeof document<"u"&&window.addEventListener("load",vU,!1);const wU=function(t){SU.parseError=t},xU=t=>dU.parse(t,SU.parseError),RU=[];let _U=!1;const kU=async()=>{if(!_U){for(_U=!0;RU.length>0;){const e=RU.shift();if(e)try{await e()}catch(t){d.error("Error executing queue",t)}}_U=!1}},EU=t=>new Promise(((e,n)=>{const i=()=>new Promise(((i,a)=>{dU.parseAsync(t,SU.parseError).then((t=>{i(t),e(t)}),(t=>{d.error("Error parsing",t),a(t),n(t)}))}));RU.push(i),kU().catch(n)})),CU=(t,e,n,i)=>new Promise(((a,r)=>{const o=()=>new Promise(((o,s)=>{dU.renderAsync(t,e,n,i).then((t=>{o(t),a(t)}),(t=>{d.error("Error parsing",t),s(t),r(t)}))}));RU.push(o),kU().catch(r)})),SU={startOnLoad:!0,diagrams:{},mermaidAPI:dU,parse:xU,parseAsync:EU,render:dU.render,renderAsync:CU,init:hU,initThrowsErrors:gU,initThrowsErrorsAsync:bU,registerExternalDiagrams:yU,initialize:mU,parseError:void 0,contentLoaded:vU,setParseErrorHandler:wU},TU=(t,e,n)=>{const{parentById:i}=n,a=new Set;let r=t;for(;r;){if(a.add(r),r===e)return r;r=i[r]}for(r=e;r;){if(a.has(r))return r;r=i[r]}return"root"};function AU(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var DU={};!function(t,e){var n;n=function(){return function(){function t(e,n,i){function a(o,s){if(!n[o]){if(!e[o]){var c="function"==typeof AU&&AU;if(!s&&c)return c(o,!0);if(r)return r(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[o]={exports:{}};e[o][0].call(u.exports,(function(t){return a(e[o][1][t]||t)}),u,u.exports,t,e,n,i)}return n[o].exports}for(var r="function"==typeof AU&&AU,o=0;o<i.length;o++)a(i[o]);return a}return t}()({1:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0});var i=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}();function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(){function t(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=n.defaultLayoutOptions,r=void 0===i?{}:i,s=n.algorithms,c=void 0===s?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:s,l=n.workerFactory,u=n.workerUrl;if(a(this,t),this.defaultLayoutOptions=r,this.initialized=!1,typeof u>"u"&&typeof l>"u")throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var d=l;typeof u<"u"&&typeof l>"u"&&(d=function(t){return new Worker(t)});var h=d(u);if("function"!=typeof h.postMessage)throw new TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new o(h),this.worker.postMessage({cmd:"register",algorithms:c}).then((function(t){return e.initialized=!0})).catch(console.err)}return i(t,[{key:"layout",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.layoutOptions,i=void 0===n?this.defaultLayoutOptions:n,a=e.logging,r=void 0!==a&&a,o=e.measureExecutionTime,s=void 0!==o&&o;return t?this.worker.postMessage({cmd:"layout",graph:t,layoutOptions:i,options:{logging:r,measureExecutionTime:s}}):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.terminate()}}]),t}();n.default=r;var o=function(){function t(e){var n=this;if(a(this,t),void 0===e)throw new Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=e,this.worker.onmessage=function(t){setTimeout((function(){n.receive(n,t)}),0)}}return i(t,[{key:"postMessage",value:function(t){var e=this.id||0;this.id=e+1,t.id=e;var n=this;return new Promise((function(i,a){n.resolvers[e]=function(t,e){t?(n.convertGwtStyleError(t),a(t)):i(e)},n.worker.postMessage(t)}))}},{key:"receive",value:function(t,e){var n=e.data,i=t.resolvers[n.id];i&&(delete t.resolvers[n.id],n.error?i(n.error):i(null,n.data))}},{key:"terminate",value:function(){this.worker.terminate&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(t){if(t){var e=t.__java$exception;e&&(e.cause&&e.cause.backingJsObject&&(t.cause=e.cause.backingJsObject,this.convertGwtStyleError(t.cause)),delete t.__java$exception)}}}]),t}()},{}],2:[function(t,e,n){(function(t){(function(){var i;function a(){}function r(){}function o(){}function s(){}function c(){}function l(){}function u(){}function d(){}function h(){}function f(){}function g(){}function p(){}function b(){}function m(){}function y(){}function v(){}function w(){}function x(){}function R(){}function _(){}function k(){}function E(){}function C(){}function S(){}function T(){}function A(){}function D(){}function I(){}function L(){}function O(){}function M(){}function N(){}function B(){}function P(){}function F(){}function j(){}function $(){}function z(){}function H(){}function U(){}function V(){}function q(){}function W(){}function Y(){}function G(){}function Z(){}function K(){}function X(){}function J(){}function Q(){}function tt(){}function et(){}function nt(){}function it(){}function at(){}function rt(){}function ot(){}function st(){}function ct(){}function lt(){}function ut(){}function dt(){}function ht(){}function ft(){}function gt(){}function pt(){}function bt(){}function mt(){}function yt(){}function vt(){}function wt(){}function xt(){}function Rt(){}function _t(){}function kt(){}function Et(){}function Ct(){}function St(){}function Tt(){}function At(){}function Dt(){}function It(){}function Lt(){}function Ot(){}function Mt(){}function Nt(){}function Bt(){}function Pt(){}function Ft(){}function jt(){}function $t(){}function zt(){}function Ht(){}function Ut(){}function Vt(){}function qt(){}function Wt(){}function Yt(){}function Gt(){}function Zt(){}function Kt(){}function Xt(){}function Jt(){}function Qt(){}function te(){}function ee(){}function ne(){}function ie(){}function ae(){}function re(){}function oe(){}function se(){}function ce(){}function le(){}function ue(){}function de(){}function he(){}function fe(){}function ge(){}function pe(){}function be(){}function me(){}function ye(){}function ve(){}function we(){}function xe(){}function Re(){}function _e(){}function ke(){}function Ee(){}function Ce(){}function Se(){}function Te(){}function Ae(){}function De(){}function Ie(){}function Le(){}function Oe(){}function Me(){}function Ne(){}function Be(){}function Pe(){}function Fe(){}function je(){}function $e(){}function ze(){}function He(){}function Ue(){}function Ve(){}function qe(){}function We(){}function Ye(){}function Ge(){}function Ze(){}function Ke(){}function Xe(){}function Je(){}function Qe(){}function tn(){}function en(){}function nn(){}function an(){}function rn(){}function on(){}function sn(){}function cn(){}function ln(){}function un(){}function dn(){}function hn(){}function fn(){}function gn(){}function pn(){}function bn(){}function mn(){}function yn(){}function vn(){}function wn(){}function xn(){}function Rn(){}function _n(){}function kn(){}function En(){}function Cn(){}function Sn(){}function Tn(){}function An(){}function Dn(){}function In(){}function Ln(){}function On(){}function Mn(){}function Nn(){}function Bn(){}function Pn(){}function Fn(){}function jn(){}function $n(){}function zn(){}function Hn(){}function Un(){}function Vn(){}function qn(){}function Wn(){}function Yn(){}function Gn(){}function Zn(){}function Kn(){}function Xn(){}function Jn(){}function Qn(){}function ti(){}function ei(){}function ni(){}function ii(){}function ai(){}function ri(){}function oi(){}function si(){}function ci(){}function li(){}function ui(){}function di(){}function hi(){}function fi(){}function gi(){}function pi(){}function bi(){}function mi(){}function yi(){}function vi(){}function wi(){}function xi(){}function Ri(){}function _i(){}function ki(){}function Ei(){}function Ci(){}function Si(){}function Ti(){}function Ai(){}function Di(){}function Ii(){}function Li(){}function Oi(){}function Mi(){}function Ni(){}function Bi(){}function Pi(){}function Fi(){}function ji(){}function $i(){}function zi(){}function Hi(){}function Ui(){}function Vi(){}function qi(){}function Wi(){}function Yi(){}function Gi(){}function Zi(){}function Ki(){}function Xi(){}function Ji(){}function Qi(){}function ta(){}function ea(){}function na(){}function ia(){}function aa(){}function ra(){}function oa(){}function sa(){}function ca(){}function la(){}function ua(){}function da(){}function ha(){}function fa(){}function ga(){}function pa(){}function ba(){}function ma(){}function ya(){}function va(){}function wa(){}function xa(){}function Ra(){}function _a(){}function ka(){}function Ea(){}function Ca(){}function Sa(){}function Ta(){}function Aa(){}function Da(){}function Ia(){}function La(){}function Oa(){}function Ma(){}function Na(){}function Ba(){}function Pa(){}function Fa(){}function ja(){}function $a(){}function za(){}function Ha(){}function Ua(){}function Va(){}function qa(){}function Wa(){}function Ya(){}function Ga(){}function Za(){}function Ka(){}function Xa(){}function Ja(){}function Qa(){}function tr(){}function er(){}function nr(){}function ir(){}function ar(){}function rr(){}function or(){}function sr(){}function cr(){}function lr(){}function ur(){}function dr(){}function hr(){}function fr(){}function gr(){}function pr(){}function br(){}function mr(){}function yr(){}function vr(){}function wr(){}function xr(){}function Rr(){}function _r(){}function kr(){}function Er(){}function Cr(){}function Sr(){}function Tr(){}function Ar(){}function Dr(){}function Ir(){}function Lr(){}function Or(){}function Mr(){}function Nr(){}function Br(){}function Pr(){}function Fr(){}function jr(){}function $r(){}function zr(){}function Hr(){}function Ur(){}function Vr(){}function qr(){}function Wr(){}function Yr(){}function Gr(){}function Zr(){}function Kr(){}function Xr(){}function Jr(){}function Qr(){}function to(){}function eo(){}function no(){}function io(){}function ao(){}function ro(){}function oo(){}function so(){}function co(){}function lo(){}function uo(){}function ho(){}function fo(){}function go(){}function po(){}function bo(){}function mo(){}function yo(){}function vo(){}function wo(){}function xo(){}function Ro(){}function _o(){}function ko(){}function Eo(){}function Co(){}function So(){}function To(){}function Ao(){}function Do(){}function Io(){}function Lo(){}function Oo(){}function Mo(){}function No(){}function Bo(){}function Po(){}function Fo(){}function jo(){}function $o(){}function zo(){}function Ho(){}function Uo(){}function Vo(){}function qo(){}function Wo(){}function Yo(){}function Go(){}function Zo(){}function Ko(){}function Xo(){}function Jo(){}function Qo(){}function ts(){}function es(){}function ns(){}function is(){}function as(){}function rs(){}function os(){}function ss(){}function cs(){}function ls(){}function us(){}function ds(){}function hs(){}function fs(){}function gs(){}function ps(){}function bs(){}function ms(){}function ys(){}function vs(){}function ws(){}function xs(){}function Rs(){}function _s(){}function ks(){}function Es(){}function Cs(){}function Ss(){}function Ts(){}function As(){}function Ds(){}function Is(){}function Ls(){}function Os(){}function Ms(){}function Ns(){}function Bs(){}function Ps(){}function Fs(){}function js(){}function $s(){}function zs(){}function Hs(){}function Us(){}function Vs(){}function qs(){}function Ws(){}function Ys(){}function Gs(){}function Zs(){}function Ks(){}function Xs(){}function Js(){}function Qs(){}function tc(){}function ec(){}function nc(){}function ic(){}function ac(){}function rc(){}function oc(){}function sc(){}function cc(){}function lc(){}function uc(){}function dc(){}function hc(){}function fc(){}function gc(){}function pc(){}function bc(){}function mc(){}function yc(){}function vc(){}function wc(){}function xc(){}function Rc(){}function _c(){}function kc(){}function Ec(){}function Cc(){}function Sc(){}function Tc(){}function Ac(){}function Dc(){}function Ic(){}function Lc(){}function Oc(){}function Mc(){}function Nc(){}function Bc(){}function Pc(){}function Fc(){}function jc(){}function $c(){}function zc(){}function Hc(){}function Uc(){}function Vc(){}function qc(){}function Wc(){}function Yc(){}function Gc(){}function Zc(){}function Kc(){}function Xc(){}function Jc(){}function Qc(){}function tl(){}function el(){}function nl(){}function il(){}function al(){}function rl(){}function ol(){}function sl(){}function cl(){}function ll(){}function ul(){}function dl(){}function hl(){}function fl(){}function gl(){}function pl(){}function bl(){}function ml(){}function yl(){}function vl(){}function wl(){}function xl(){}function Rl(){}function _l(){}function kl(){}function El(){}function Cl(){}function Sl(){}function Tl(){}function Al(){}function Dl(){}function Il(){}function Ll(){}function Ol(){}function Ml(){}function Nl(){}function Bl(){}function Pl(){}function Fl(){}function jl(){}function $l(){}function zl(){}function Hl(){}function Ul(){}function Vl(){}function ql(){}function Wl(){}function Yl(){}function Gl(){}function Zl(){}function Kl(){}function Xl(){}function Jl(){}function Ql(){}function tu(){}function eu(){}function nu(){}function iu(){}function au(){}function ru(){}function ou(){}function su(){}function cu(){}function lu(){}function uu(){}function du(){}function hu(){}function fu(){}function gu(){}function pu(){}function bu(){}function mu(){}function yu(){}function vu(){}function wu(){}function xu(){}function Ru(){}function _u(){}function ku(){}function Eu(){}function Cu(){}function Su(){}function Tu(){}function Au(){}function Du(){}function Iu(){}function Lu(){}function Ou(){}function Mu(){}function Nu(){}function Bu(){}function Pu(){}function Fu(){}function ju(){ew()}function $u(){Ult()}function zu(){Rmt()}function Hu(){Fxt()}function Uu(){xCt()}function Vu(){uPt()}function qu(){Pwt()}function Wu(){ixt()}function Yu(){xE()}function Gu(){mE()}function Zu(){zj()}function Ku(){RE()}function Xu(){Tat()}function Ju(){kE()}function Qu(){S7()}function td(){Cit()}function ed(){G5()}function nd(){PQ()}function id(){Vlt()}function ad(){FEt()}function rd(){Sit()}function od(){V2()}function sd(){uGt()}function cd(){Uwt()}function ld(){FQ()}function ud(){zYt()}function dd(){NQ()}function hd(){Tit()}function fd(){Kst()}function gd(){HQ()}function pd(){C8()}function bd(){EE()}function md(){PIt()}function yd(){qwt()}function vd(){jrt()}function wd(){kEt()}function xd(){hPt()}function Rd(){$yt()}function _d(){SIt()}function kd(){Bot()}function Ed(){$Q()}function Cd(){cjt()}function Sd(){IIt()}function Td(){YLt()}function Ad(){O8()}function Dd(){EEt()}function Id(){cGt()}function Ld(){Wlt()}function Od(){mpt()}function Md(){Hzt()}function Nd(){rj()}function Bd(){frt()}function Pd(){u$t()}function Fd(t){vG(t)}function jd(t){this.a=t}function $d(t){this.a=t}function zd(t){this.a=t}function Hd(t){this.a=t}function Ud(t){this.a=t}function Vd(t){this.a=t}function qd(t){this.a=t}function Wd(t){this.a=t}function Yd(t){this.a=t}function Gd(t){this.a=t}function Zd(t){this.a=t}function Kd(t){this.a=t}function Xd(t){this.a=t}function Jd(t){this.a=t}function Qd(t){this.a=t}function th(t){this.a=t}function eh(t){this.a=t}function nh(t){this.a=t}function ih(t){this.a=t}function ah(t){this.a=t}function rh(t){this.a=t}function oh(t){this.b=t}function sh(t){this.c=t}function ch(t){this.a=t}function lh(t){this.a=t}function uh(t){this.a=t}function dh(t){this.a=t}function hh(t){this.a=t}function fh(t){this.a=t}function gh(t){this.a=t}function ph(t){this.a=t}function bh(t){this.a=t}function mh(t){this.a=t}function yh(t){this.a=t}function vh(t){this.a=t}function wh(t){this.a=t}function xh(t){this.a=t}function Rh(t){this.a=t}function _h(t){this.a=t}function kh(t){this.a=t}function Eh(){this.a=[]}function Ch(t,e){t.a=e}function Sh(t,e){t.a=e}function Th(t,e){t.b=e}function Ah(t,e){t.b=e}function Dh(t,e){t.b=e}function Ih(t,e){t.j=e}function Lh(t,e){t.g=e}function Oh(t,e){t.i=e}function Mh(t,e){t.c=e}function Nh(t,e){t.d=e}function Bh(t,e){t.d=e}function Ph(t,e){t.c=e}function Fh(t,e){t.k=e}function jh(t,e){t.c=e}function $h(t,e){t.c=e}function zh(t,e){t.a=e}function Hh(t,e){t.a=e}function Uh(t,e){t.f=e}function Vh(t,e){t.a=e}function qh(t,e){t.b=e}function Wh(t,e){t.d=e}function Yh(t,e){t.i=e}function Gh(t,e){t.o=e}function Zh(t,e){t.r=e}function Kh(t,e){t.a=e}function Xh(t,e){t.b=e}function Jh(t,e){t.e=e}function Qh(t,e){t.f=e}function tf(t,e){t.g=e}function ef(t,e){t.e=e}function nf(t,e){t.f=e}function af(t,e){t.f=e}function rf(t,e){t.n=e}function of(t,e){t.a=e}function sf(t,e){t.a=e}function cf(t,e){t.c=e}function lf(t,e){t.c=e}function uf(t,e){t.d=e}function df(t,e){t.e=e}function hf(t,e){t.g=e}function ff(t,e){t.a=e}function gf(t,e){t.c=e}function pf(t,e){t.d=e}function bf(t,e){t.e=e}function mf(t,e){t.f=e}function yf(t,e){t.j=e}function vf(t,e){t.a=e}function wf(t,e){t.b=e}function xf(t,e){t.a=e}function Rf(t){t.b=t.a}function _f(t){t.c=t.d.d}function kf(t){this.d=t}function Ef(t){this.a=t}function Cf(t){this.a=t}function Sf(t){this.a=t}function Tf(t){this.a=t}function Af(t){this.a=t}function Df(t){this.a=t}function If(t){this.a=t}function Lf(t){this.a=t}function Of(t){this.a=t}function Mf(t){this.a=t}function Nf(t){this.a=t}function Bf(t){this.a=t}function Pf(t){this.a=t}function Ff(t){this.a=t}function jf(t){this.b=t}function $f(t){this.b=t}function zf(t){this.b=t}function Hf(t){this.a=t}function Uf(t){this.a=t}function Vf(t){this.a=t}function qf(t){this.c=t}function Wf(t){this.c=t}function Yf(t){this.c=t}function Gf(t){this.a=t}function Zf(t){this.a=t}function Kf(t){this.a=t}function Xf(t){this.a=t}function Jf(t){this.a=t}function Qf(t){this.a=t}function tg(t){this.a=t}function eg(t){this.a=t}function ng(t){this.a=t}function ig(t){this.a=t}function ag(t){this.a=t}function rg(t){this.a=t}function og(t){this.a=t}function sg(t){this.a=t}function cg(t){this.a=t}function lg(t){this.a=t}function ug(t){this.a=t}function dg(t){this.a=t}function hg(t){this.a=t}function fg(t){this.a=t}function gg(t){this.a=t}function pg(t){this.a=t}function bg(t){this.a=t}function mg(t){this.a=t}function yg(t){this.a=t}function vg(t){this.a=t}function wg(t){this.a=t}function xg(t){this.a=t}function Rg(t){this.a=t}function _g(t){this.a=t}function kg(t){this.a=t}function Eg(t){this.a=t}function Cg(t){this.a=t}function Sg(t){this.a=t}function Tg(t){this.a=t}function Ag(t){this.a=t}function Dg(t){this.a=t}function Ig(t){this.a=t}function Lg(t){this.a=t}function Og(t){this.a=t}function Mg(t){this.a=t}function Ng(t){this.a=t}function Bg(t){this.a=t}function Pg(t){this.a=t}function Fg(t){this.a=t}function jg(t){this.e=t}function $g(t){this.a=t}function zg(t){this.a=t}function Hg(t){this.a=t}function Ug(t){this.a=t}function Vg(t){this.a=t}function qg(t){this.a=t}function Wg(t){this.a=t}function Yg(t){this.a=t}function Gg(t){this.a=t}function Zg(t){this.a=t}function Kg(t){this.a=t}function Xg(t){this.a=t}function Jg(t){this.a=t}function Qg(t){this.a=t}function tp(t){this.a=t}function ep(t){this.a=t}function np(t){this.a=t}function ip(t){this.a=t}function ap(t){this.a=t}function rp(t){this.a=t}function op(t){this.a=t}function sp(t){this.a=t}function cp(t){this.a=t}function lp(t){this.a=t}function up(t){this.a=t}function dp(t){this.a=t}function hp(t){this.a=t}function fp(t){this.a=t}function gp(t){this.a=t}function pp(t){this.a=t}function bp(t){this.a=t}function mp(t){this.a=t}function yp(t){this.a=t}function vp(t){this.a=t}function wp(t){this.a=t}function xp(t){this.a=t}function Rp(t){this.a=t}function _p(t){this.a=t}function kp(t){this.a=t}function Ep(t){this.a=t}function Cp(t){this.a=t}function Sp(t){this.a=t}function Tp(t){this.a=t}function Ap(t){this.a=t}function Dp(t){this.a=t}function Ip(t){this.a=t}function Lp(t){this.a=t}function Op(t){this.a=t}function Mp(t){this.a=t}function Np(t){this.a=t}function Bp(t){this.a=t}function Pp(t){this.a=t}function Fp(t){this.a=t}function jp(t){this.c=t}function $p(t){this.b=t}function zp(t){this.a=t}function Hp(t){this.a=t}function Up(t){this.a=t}function Vp(t){this.a=t}function qp(t){this.a=t}function Wp(t){this.a=t}function Yp(t){this.a=t}function Gp(t){this.a=t}function Zp(t){this.a=t}function Kp(t){this.a=t}function Xp(t){this.a=t}function Jp(t){this.a=t}function Qp(t){this.a=t}function tb(t){this.a=t}function eb(t){this.a=t}function nb(t){this.a=t}function ib(t){this.a=t}function ab(t){this.a=t}function rb(t){this.a=t}function ob(t){this.a=t}function sb(t){this.a=t}function cb(t){this.a=t}function lb(t){this.a=t}function ub(t){this.a=t}function db(t){this.a=t}function hb(t){this.a=t}function fb(t){this.a=t}function gb(t){this.a=t}function pb(t){this.a=t}function bb(t){this.a=t}function mb(t){this.a=t}function yb(t){this.a=t}function vb(t){this.a=t}function wb(t){this.a=t}function xb(t){this.a=t}function Rb(t){this.a=t}function _b(t){this.a=t}function kb(t){this.a=t}function Eb(t){this.a=t}function Cb(t){this.a=t}function Sb(t){this.a=t}function Tb(t){this.a=t}function Ab(t){this.a=t}function Db(t){this.a=t}function Ib(t){this.a=t}function Lb(t){this.a=t}function Ob(t){this.a=t}function Mb(t){this.a=t}function Nb(t){this.a=t}function Bb(t){this.a=t}function Pb(t){this.a=t}function Fb(t){this.a=t}function jb(t){this.a=t}function $b(t){this.a=t}function zb(t){this.a=t}function Hb(t){this.a=t}function Ub(t){this.a=t}function Vb(t){this.a=t}function qb(t){this.a=t}function Wb(t){this.a=t}function Yb(t){this.a=t}function Gb(t){this.a=t}function Zb(t){this.a=t}function Kb(t){this.a=t}function Xb(t){this.a=t}function Jb(t){this.a=t}function Qb(t){this.a=t}function tm(t){this.a=t}function em(t){this.a=t}function nm(t){this.a=t}function im(t){this.a=t}function am(t){this.a=t}function rm(t){this.b=t}function om(t){this.f=t}function sm(t){this.a=t}function cm(t){this.a=t}function lm(t){this.a=t}function um(t){this.a=t}function dm(t){this.a=t}function hm(t){this.a=t}function fm(t){this.a=t}function gm(t){this.a=t}function pm(t){this.a=t}function bm(t){this.a=t}function mm(t){this.a=t}function ym(t){this.b=t}function vm(t){this.c=t}function wm(t){this.e=t}function xm(t){this.a=t}function Rm(t){this.a=t}function _m(t){this.a=t}function km(t){this.a=t}function Em(t){this.a=t}function Cm(t){this.d=t}function Sm(t){this.a=t}function Tm(t){this.a=t}function Am(t){this.e=t}function Dm(){this.a=0}function Im(){MI(this)}function Lm(){OI(this)}function Om(){DW(this)}function Mm(){hZ(this)}function Nm(){}function Bm(){this.c=DLe}function Pm(t,e){e.Wb(t)}function Fm(t,e){t.b+=e}function jm(t){t.b=new ox}function $m(t){return t.e}function zm(t){return t.a}function Hm(t){return t.a}function Um(t){return t.a}function Vm(t){return t.a}function qm(t){return t.a}function Wm(){return null}function Ym(){return null}function Gm(){a_(),gYt()}function Zm(t){t.b.tf(t.e)}function Km(t,e){t.b=e-t.b}function Xm(t,e){t.a=e-t.a}function Jm(t,e){e.ad(t.a)}function Qm(t,e){HTt(e,t)}function ty(t,e,n){t.Od(n,e)}function ey(t,e){t.e=e,e.b=t}function ny(t){sj(),this.a=t}function iy(t){sj(),this.a=t}function ay(t){sj(),this.a=t}function ry(t){WY(),this.a=t}function oy(t){EX(),eee.be(t)}function sy(){gM.call(this)}function cy(){gM.call(this)}function ly(){sy.call(this)}function uy(){sy.call(this)}function dy(){sy.call(this)}function hy(){sy.call(this)}function fy(){sy.call(this)}function gy(){sy.call(this)}function py(){sy.call(this)}function by(){sy.call(this)}function my(){sy.call(this)}function yy(){sy.call(this)}function vy(){sy.call(this)}function wy(){this.a=this}function xy(){this.Bb|=256}function Ry(){this.b=new ED}function _y(){_y=D,new Om}function ky(){ly.call(this)}function Ey(t,e){t.length=e}function Cy(t,e){Wz(t.a,e)}function Sy(t,e){qCt(t.c,e)}function Ty(t,e){RW(t.b,e)}function Ay(t,e){Tyt(t.a,e)}function Dy(t,e){Aht(t.a,e)}function Iy(t,e){hot(t.e,e)}function Ly(t){DDt(t.c,t.b)}function Oy(t,e){t.kc().Nb(e)}function My(t){this.a=pft(t)}function Ny(){this.a=new Om}function By(){this.a=new Om}function Py(){this.a=new Lm}function Fy(){this.a=new Lm}function jy(){this.a=new Lm}function $y(){this.a=new wt}function zy(){this.a=new v7}function Hy(){this.a=new he}function Uy(){this.a=new Wk}function Vy(){this.a=new M0}function qy(){this.a=new iQ}function Wy(){this.a=new AP}function Yy(){this.a=new Lm}function Gy(){this.a=new Lm}function Zy(){this.a=new Lm}function Ky(){this.a=new Lm}function Xy(){this.d=new Lm}function Jy(){this.a=new Ny}function Qy(){this.a=new Om}function tv(){this.b=new Om}function ev(){this.b=new Lm}function nv(){this.e=new Lm}function iv(){this.d=new Lm}function av(){this.a=new ad}function rv(){Lm.call(this)}function ov(){Py.call(this)}function sv(){LP.call(this)}function cv(){Gy.call(this)}function lv(){uv.call(this)}function uv(){Nm.call(this)}function dv(){Nm.call(this)}function hv(){dv.call(this)}function fv(){fX.call(this)}function gv(){fX.call(this)}function pv(){Wv.call(this)}function bv(){Wv.call(this)}function mv(){Wv.call(this)}function yv(){Yv.call(this)}function vv(){Zk.call(this)}function wv(){ic.call(this)}function xv(){ic.call(this)}function Rv(){Jv.call(this)}function _v(){Jv.call(this)}function kv(){Om.call(this)}function Ev(){Om.call(this)}function Cv(){Om.call(this)}function Sv(){Ny.call(this)}function Tv(){xit.call(this)}function Av(){xy.call(this)}function Dv(){TO.call(this)}function Iv(){TO.call(this)}function Lv(){Om.call(this)}function Ov(){Om.call(this)}function Mv(){Om.call(this)}function Nv(){wc.call(this)}function Bv(){wc.call(this)}function Pv(){Nv.call(this)}function Fv(){Bu.call(this)}function jv(t){get.call(this,t)}function $v(t){get.call(this,t)}function zv(t){Yd.call(this,t)}function Hv(t){_k.call(this,t)}function Uv(t){Hv.call(this,t)}function Vv(t){_k.call(this,t)}function qv(){this.a=new Zk}function Wv(){this.a=new Ny}function Yv(){this.a=new Om}function Gv(){this.a=new Lm}function Zv(){this.j=new Lm}function Kv(){this.a=new Go}function Xv(){this.a=new I_}function Jv(){this.a=new vc}function Qv(){Qv=D,Fte=new Ox}function tw(){tw=D,Pte=new Lx}function ew(){ew=D,Ate=new r}function nw(){nw=D,qte=new iM}function iw(t){Hv.call(this,t)}function aw(t){Hv.call(this,t)}function rw(t){f3.call(this,t)}function ow(t){f3.call(this,t)}function sw(t){YF.call(this,t)}function cw(t){vCt.call(this,t)}function lw(t){Ck.call(this,t)}function uw(t){Tk.call(this,t)}function dw(t){Tk.call(this,t)}function hw(t){Tk.call(this,t)}function fw(t){lq.call(this,t)}function gw(t){fw.call(this,t)}function pw(){kh.call(this,{})}function bw(t){CO(),this.a=t}function mw(t){t.b=null,t.c=0}function yw(t,e){t.e=e,SNt(t,e)}function vw(t,e){t.a=e,rTt(t)}function ww(t,e,n){t.a[e.g]=n}function xw(t,e,n){fRt(n,t,e)}function Rw(t,e){XP(e.i,t.n)}function _w(t,e){clt(t).td(e)}function kw(t,e){return t*t/e}function Ew(t,e){return t.g-e.g}function Cw(t){return new _h(t)}function Sw(t){return new HY(t)}function Tw(t){fw.call(this,t)}function Aw(t){fw.call(this,t)}function Dw(t){fw.call(this,t)}function Iw(t){lq.call(this,t)}function Lw(t){Frt(),this.a=t}function Ow(t){aj(),this.a=t}function Mw(t){FV(),this.f=t}function Nw(t){FV(),this.f=t}function Bw(t){fw.call(this,t)}function Pw(t){fw.call(this,t)}function Fw(t){fw.call(this,t)}function jw(t){fw.call(this,t)}function $w(t){fw.call(this,t)}function zw(t){return vG(t),t}function Hw(t){return vG(t),t}function Uw(t){return vG(t),t}function Vw(t){return vG(t),t}function qw(t){return vG(t),t}function Ww(t){return t.b==t.c}function Yw(t){return!!t&&t.b}function Gw(t){return!!t&&t.k}function Zw(t){return!!t&&t.j}function Kw(t){vG(t),this.a=t}function Xw(t){return Jct(t),t}function Jw(t){bW(t,t.length)}function Qw(t){fw.call(this,t)}function tx(t){fw.call(this,t)}function ex(t){fw.call(this,t)}function nx(t){fw.call(this,t)}function ix(t){fw.call(this,t)}function ax(t){fw.call(this,t)}function rx(t){XM.call(this,t,0)}function ox(){o1.call(this,12,3)}function sx(){sx=D,tee=new R}function cx(){cx=D,Kte=new a}function lx(){lx=D,iee=new b}function ux(){ux=D,lee=new y}function dx(){throw $m(new py)}function hx(){throw $m(new py)}function fx(){throw $m(new py)}function gx(){throw $m(new py)}function px(){throw $m(new py)}function bx(){throw $m(new py)}function mx(){this.a=kB(yY(jGt))}function yx(t){sj(),this.a=yY(t)}function vx(t,e){t.Td(e),e.Sd(t)}function wx(t,e){t.a.ec().Mc(e)}function xx(t,e,n){t.c.lf(e,n)}function Rx(t){Aw.call(this,t)}function _x(t){Pw.call(this,t)}function kx(){Af.call(this,"")}function Ex(){Af.call(this,"")}function Cx(){Af.call(this,"")}function Sx(){Af.call(this,"")}function Tx(t){Aw.call(this,t)}function Ax(t){$f.call(this,t)}function Dx(t){dM.call(this,t)}function Ix(t){Ax.call(this,t)}function Lx(){Jd.call(this,null)}function Ox(){Jd.call(this,null)}function Mx(){Mx=D,EX()}function Nx(){Nx=D,vne=y_t()}function Bx(t){return t.a?t.b:0}function Px(t){return t.a?t.b:0}function Fx(t,e){return t.a-e.a}function jx(t,e){return t.a-e.a}function $x(t,e){return t.a-e.a}function zx(t,e){return m9(t,e)}function Hx(t,e){return gQ(t,e)}function Ux(t,e){return e in t.a}function Vx(t,e){return t.f=e,t}function qx(t,e){return t.b=e,t}function Wx(t,e){return t.c=e,t}function Yx(t,e){return t.g=e,t}function Gx(t,e){return t.a=e,t}function Zx(t,e){return t.f=e,t}function Kx(t,e){return t.k=e,t}function Xx(t,e){return t.a=e,t}function Jx(t,e){return t.e=e,t}function Qx(t,e){return t.e=e,t}function tR(t,e){return t.f=e,t}function eR(t,e){t.b=!0,t.d=e}function nR(t,e){t.b=new hI(e)}function iR(t,e,n){e.td(t.a[n])}function aR(t,e,n){e.we(t.a[n])}function rR(t,e){return t.b-e.b}function oR(t,e){return t.g-e.g}function sR(t,e){return t.s-e.s}function cR(t,e){return t?0:e-1}function lR(t,e){return t?0:e-1}function uR(t,e){return t?e-1:0}function dR(t,e){return e.Yf(t)}function hR(t,e){return t.b=e,t}function fR(t,e){return t.a=e,t}function gR(t,e){return t.c=e,t}function pR(t,e){return t.d=e,t}function bR(t,e){return t.e=e,t}function mR(t,e){return t.f=e,t}function yR(t,e){return t.a=e,t}function vR(t,e){return t.b=e,t}function wR(t,e){return t.c=e,t}function xR(t,e){return t.c=e,t}function RR(t,e){return t.b=e,t}function _R(t,e){return t.d=e,t}function kR(t,e){return t.e=e,t}function ER(t,e){return t.f=e,t}function CR(t,e){return t.g=e,t}function SR(t,e){return t.a=e,t}function TR(t,e){return t.i=e,t}function AR(t,e){return t.j=e,t}function DR(t,e){return t.k=e,t}function IR(t,e){return t.j=e,t}function LR(t,e){FEt(),CQ(e,t)}function OR(t,e,n){HV(t.a,e,n)}function MR(t){jZ.call(this,t)}function NR(t){jZ.call(this,t)}function BR(t){JF.call(this,t)}function PR(t){Hft.call(this,t)}function FR(t){pet.call(this,t)}function jR(t){pK.call(this,t)}function $R(t){pK.call(this,t)}function zR(){TL.call(this,"")}function HR(){this.a=0,this.b=0}function UR(){this.b=0,this.a=0}function VR(t,e){t.b=0,Ont(t,e)}function qR(t,e){t.c=e,t.b=!0}function WR(t,e){return t.c._b(e)}function YR(t){return t.e&&t.e()}function GR(t){return t?t.d:null}function ZR(t,e){return pdt(t.b,e)}function KR(t){return t?t.g:null}function XR(t){return t?t.i:null}function JR(t){return xB(t),t.o}function QR(){QR=D,fDe=Wxt()}function t_(){t_=D,gDe=skt()}function e_(){e_=D,XIe=Gxt()}function n_(){n_=D,hOe=Yxt()}function i_(){i_=D,fOe=nTt()}function a_(){a_=D,lIe=ait()}function r_(){throw $m(new py)}function o_(){throw $m(new py)}function s_(){throw $m(new py)}function c_(){throw $m(new py)}function l_(){throw $m(new py)}function u_(){throw $m(new py)}function d_(t){this.a=new qk(t)}function h_(t){dWt(),NYt(this,t)}function f_(t){this.a=new Wq(t)}function g_(t,e){for(;t.ye(e););}function p_(t,e){for(;t.sd(e););}function b_(t,e){return t.a+=e,t}function m_(t,e){return t.a+=e,t}function y_(t,e){return t.a+=e,t}function v_(t,e){return t.a+=e,t}function w_(t){return xG(t),t.a}function x_(t){return t.b!=t.d.c}function R_(t){return t.l|t.m<<22}function __(t,e){return t.d[e.p]}function k_(t,e){return ENt(t,e)}function E_(t,e,n){t.splice(e,n)}function C_(t){t.c?OBt(t):MBt(t)}function S_(t){this.a=0,this.b=t}function T_(){this.a=new SMt(Jxe)}function A_(){this.b=new SMt(zwe)}function D_(){this.b=new SMt(q_e)}function I_(){this.b=new SMt(q_e)}function L_(){throw $m(new py)}function O_(){throw $m(new py)}function M_(){throw $m(new py)}function N_(){throw $m(new py)}function B_(){throw $m(new py)}function P_(){throw $m(new py)}function F_(){throw $m(new py)}function j_(){throw $m(new py)}function $_(){throw $m(new py)}function z_(){throw $m(new py)}function H_(){throw $m(new yy)}function U_(){throw $m(new yy)}function V_(t){this.a=new q_(t)}function q_(t){Uit(this,t,A_t())}function W_(t){return!t||pG(t)}function Y_(t){return-1!=qOe[t]}function G_(){0!=aee&&(aee=0),oee=-1}function Z_(){null==CGt&&(CGt=[])}function K_(t,e){tIt(GK(t.a),e)}function X_(t,e){tIt(GK(t.a),e)}function J_(t,e){$O.call(this,t,e)}function Q_(t,e){J_.call(this,t,e)}function tk(t,e){this.b=t,this.c=e}function ek(t,e){this.b=t,this.a=e}function nk(t,e){this.a=t,this.b=e}function ik(t,e){this.a=t,this.b=e}function ak(t,e){this.a=t,this.b=e}function rk(t,e){this.a=t,this.b=e}function ok(t,e){this.a=t,this.b=e}function sk(t,e){this.a=t,this.b=e}function ck(t,e){this.a=t,this.b=e}function lk(t,e){this.a=t,this.b=e}function uk(t,e){this.b=t,this.a=e}function dk(t,e){this.b=t,this.a=e}function hk(t,e){this.b=t,this.a=e}function fk(t,e){this.b=t,this.a=e}function gk(t,e){this.f=t,this.g=e}function pk(t,e){this.e=t,this.d=e}function bk(t,e){this.g=t,this.i=e}function mk(t,e){this.a=t,this.b=e}function yk(t,e){this.a=t,this.f=e}function vk(t,e){this.b=t,this.c=e}function wk(t,e){this.a=t,this.b=e}function xk(t,e){this.a=t,this.b=e}function Rk(t,e){this.a=t,this.b=e}function _k(t){aM(t.dc()),this.c=t}function kk(t){this.b=jz(yY(t),83)}function Ek(t){this.a=jz(yY(t),83)}function Ck(t){this.a=jz(yY(t),15)}function Sk(t){this.a=jz(yY(t),15)}function Tk(t){this.b=jz(yY(t),47)}function Ak(){this.q=new i.Date}function Dk(){Dk=D,$ee=new I}function Ik(){Ik=D,dne=new S}function Lk(t){return t.f.c+t.g.c}function Ok(t,e){return t.b.Hc(e)}function Mk(t,e){return t.b.Ic(e)}function Nk(t,e){return t.b.Qc(e)}function Bk(t,e){return t.b.Hc(e)}function Pk(t,e){return t.c.uc(e)}function Fk(t,e){return t.a._b(e)}function jk(t,e){return Odt(t.c,e)}function $k(t,e){return cW(t.b,e)}function zk(t,e){return t>e&&e<AZt}function Hk(t,e){return t.Gc(e),t}function Uk(t,e){return jat(t,e),t}function Vk(t){return qY(),t?cee:see}function qk(t){Qst.call(this,t,0)}function Wk(){Wq.call(this,null)}function Yk(){j5.call(this,null)}function Gk(t){this.c=t,Att(this)}function Zk(){EL(this),yK(this)}function Kk(t,e){xG(t),t.a.Nb(e)}function Xk(t,e){return t.Gc(e),t}function Jk(t,e){return t.a.f=e,t}function Qk(t,e){return t.a.d=e,t}function tE(t,e){return t.a.g=e,t}function eE(t,e){return t.a.j=e,t}function nE(t,e){return t.a.a=e,t}function iE(t,e){return t.a.d=e,t}function aE(t,e){return t.a.e=e,t}function rE(t,e){return t.a.g=e,t}function oE(t,e){return t.a.f=e,t}function sE(t){return t.b=!1,t}function cE(){cE=D,Ene=new CD}function lE(){lE=D,Cne=new SD}function uE(){uE=D,$ne=new W}function dE(){dE=D,bse=new Pe}function hE(){hE=D,ire=new SN}function fE(){fE=D,Qne=new lt}function gE(){gE=D,vse=new Fe}function pE(){pE=D,sie=new gt}function bE(){bE=D,Hoe=new ve}function mE(){mE=D,Fse=new HR}function yE(){yE=D,Uoe=new Ce}function vE(){vE=D,Goe=new MV}function wE(){wE=D,cse=new ke}function xE(){xE=D,jse=new fn}function RE(){RE=D,Jce=new Xn}function _E(){_E=D,hle=new Oa}function kE(){kE=D,Gle=new ar}function EE(){EE=D,Wxe=new j2}function CE(){CE=D,W_e=new IE}function SE(){SE=D,Z_e=new bB}function TE(){TE=D,Uke=new qG}function AE(){AE=D,Wme=new Zs}function DE(){Eit(),this.c=new ox}function IE(){gk.call(this,z1t,0)}function LE(t,e){Xbt(t.c.b,e.c,e)}function OE(t,e){Xbt(t.c.c,e.b,e)}function ME(t,e,n){mQ(t.d,e.f,n)}function NE(t,e,n,i){Xmt(t,i,e,n)}function BE(t,e,n,i){oMt(i,t,e,n)}function PE(t,e,n,i){sWt(i,t,e,n)}function FE(t,e){return t.a=e.g,t}function jE(t,e){return ext(t.a,e)}function $E(t){return t.b?t.b:t.a}function zE(t){return(t.c+t.a)/2}function HE(){HE=D,uDe=new nc}function UE(){UE=D,CDe=new dc}function VE(){VE=D,MIe=new Ev}function qE(){qE=D,UIe=new Cv}function WE(){WE=D,HIe=new Lv}function YE(){YE=D,KIe=new Mv}function GE(){GE=D,ILe=new UL}function ZE(){ZE=D,LLe=new VL}function KE(){KE=D,eOe=new Ml}function XE(){XE=D,iOe=new Nl}function JE(){JE=D,bIe=new Om}function QE(){QE=D,WLe=new Lm}function tC(){tC=D,RMe=new Fu}function eC(t){i.clearTimeout(t)}function nC(t){this.a=jz(yY(t),224)}function iC(t){return jz(t,42).cd()}function aC(t){return t.b<t.d.gc()}function rC(t,e){return CV(t.a,e)}function oC(t,e){return Gut(t,e)>0}function sC(t,e){return Gut(t,e)<0}function cC(t,e){return t.a.get(e)}function lC(t,e){return e.split(t)}function uC(t,e){return cW(t.e,e)}function dC(t){return vG(t),!1}function hC(t){h1.call(this,t,21)}function fC(t,e){PJ.call(this,t,e)}function gC(t,e){gk.call(this,t,e)}function pC(t,e){gk.call(this,t,e)}function bC(t){YY(),YF.call(this,t)}function mC(t,e){wV(t,t.length,e)}function yC(t,e){GW(t,t.length,e)}function vC(t,e,n){e.ud(t.a.Ge(n))}function wC(t,e,n){e.we(t.a.Fe(n))}function xC(t,e,n){e.td(t.a.Kb(n))}function RC(t,e,n){t.Mb(n)&&e.td(n)}function _C(t,e,n){t.splice(e,0,n)}function kC(t,e){return kM(t.e,e)}function EC(t,e){this.d=t,this.e=e}function CC(t,e){this.b=t,this.a=e}function SC(t,e){this.b=t,this.a=e}function TC(t,e){this.b=t,this.a=e}function AC(t,e){this.a=t,this.b=e}function DC(t,e){this.a=t,this.b=e}function IC(t,e){this.a=t,this.b=e}function LC(t,e){this.a=t,this.b=e}function OC(t,e){this.a=t,this.b=e}function MC(t,e){this.b=t,this.a=e}function NC(t,e){this.b=t,this.a=e}function BC(t,e){gk.call(this,t,e)}function PC(t,e){gk.call(this,t,e)}function FC(t,e){gk.call(this,t,e)}function jC(t,e){gk.call(this,t,e)}function $C(t,e){gk.call(this,t,e)}function zC(t,e){gk.call(this,t,e)}function HC(t,e){gk.call(this,t,e)}function UC(t,e){gk.call(this,t,e)}function VC(t,e){gk.call(this,t,e)}function qC(t,e){gk.call(this,t,e)}function WC(t,e){gk.call(this,t,e)}function YC(t,e){gk.call(this,t,e)}function GC(t,e){gk.call(this,t,e)}function ZC(t,e){gk.call(this,t,e)}function KC(t,e){gk.call(this,t,e)}function XC(t,e){gk.call(this,t,e)}function JC(t,e){gk.call(this,t,e)}function QC(t,e){gk.call(this,t,e)}function tS(t,e){this.a=t,this.b=e}function eS(t,e){this.a=t,this.b=e}function nS(t,e){this.a=t,this.b=e}function iS(t,e){this.a=t,this.b=e}function aS(t,e){this.a=t,this.b=e}function rS(t,e){this.a=t,this.b=e}function oS(t,e){this.a=t,this.b=e}function sS(t,e){this.a=t,this.b=e}function cS(t,e){this.a=t,this.b=e}function lS(t,e){this.b=t,this.a=e}function uS(t,e){this.b=t,this.a=e}function dS(t,e){this.b=t,this.a=e}function hS(t,e){this.b=t,this.a=e}function fS(t,e){this.c=t,this.d=e}function gS(t,e){this.e=t,this.d=e}function pS(t,e){this.a=t,this.b=e}function bS(t,e){this.b=e,this.c=t}function mS(t,e){gk.call(this,t,e)}function yS(t,e){gk.call(this,t,e)}function vS(t,e){gk.call(this,t,e)}function wS(t,e){gk.call(this,t,e)}function xS(t,e){gk.call(this,t,e)}function RS(t,e){gk.call(this,t,e)}function _S(t,e){gk.call(this,t,e)}function kS(t,e){gk.call(this,t,e)}function ES(t,e){gk.call(this,t,e)}function CS(t,e){gk.call(this,t,e)}function SS(t,e){gk.call(this,t,e)}function TS(t,e){gk.call(this,t,e)}function AS(t,e){gk.call(this,t,e)}function DS(t,e){gk.call(this,t,e)}function IS(t,e){gk.call(this,t,e)}function LS(t,e){gk.call(this,t,e)}function OS(t,e){gk.call(this,t,e)}function MS(t,e){gk.call(this,t,e)}function NS(t,e){gk.call(this,t,e)}function BS(t,e){gk.call(this,t,e)}function PS(t,e){gk.call(this,t,e)}function FS(t,e){gk.call(this,t,e)}function jS(t,e){gk.call(this,t,e)}function $S(t,e){gk.call(this,t,e)}function zS(t,e){gk.call(this,t,e)}function HS(t,e){gk.call(this,t,e)}function US(t,e){gk.call(this,t,e)}function VS(t,e){gk.call(this,t,e)}function qS(t,e){gk.call(this,t,e)}function WS(t,e){gk.call(this,t,e)}function YS(t,e){gk.call(this,t,e)}function GS(t,e){gk.call(this,t,e)}function ZS(t,e){gk.call(this,t,e)}function KS(t,e){gk.call(this,t,e)}function XS(t,e){this.b=t,this.a=e}function JS(t,e){this.a=t,this.b=e}function QS(t,e){this.a=t,this.b=e}function tT(t,e){this.a=t,this.b=e}function eT(t,e){this.a=t,this.b=e}function nT(t,e){gk.call(this,t,e)}function iT(t,e){gk.call(this,t,e)}function aT(t,e){this.b=t,this.d=e}function rT(t,e){gk.call(this,t,e)}function oT(t,e){gk.call(this,t,e)}function sT(t,e){this.a=t,this.b=e}function cT(t,e){this.a=t,this.b=e}function lT(t,e){gk.call(this,t,e)}function uT(t,e){gk.call(this,t,e)}function dT(t,e){gk.call(this,t,e)}function hT(t,e){gk.call(this,t,e)}function fT(t,e){gk.call(this,t,e)}function gT(t,e){gk.call(this,t,e)}function pT(t,e){gk.call(this,t,e)}function bT(t,e){gk.call(this,t,e)}function mT(t,e){gk.call(this,t,e)}function yT(t,e){gk.call(this,t,e)}function vT(t,e){gk.call(this,t,e)}function wT(t,e){gk.call(this,t,e)}function xT(t,e){gk.call(this,t,e)}function RT(t,e){gk.call(this,t,e)}function _T(t,e){gk.call(this,t,e)}function kT(t,e){gk.call(this,t,e)}function ET(t,e){return kM(t.c,e)}function CT(t,e){return kM(e.b,t)}function ST(t,e){return-t.b.Je(e)}function TT(t,e){return kM(t.g,e)}function AT(t,e){gk.call(this,t,e)}function DT(t,e){gk.call(this,t,e)}function IT(t,e){this.a=t,this.b=e}function LT(t,e){this.a=t,this.b=e}function OT(t,e){this.a=t,this.b=e}function MT(t,e){gk.call(this,t,e)}function NT(t,e){gk.call(this,t,e)}function BT(t,e){gk.call(this,t,e)}function PT(t,e){gk.call(this,t,e)}function FT(t,e){gk.call(this,t,e)}function jT(t,e){gk.call(this,t,e)}function $T(t,e){gk.call(this,t,e)}function zT(t,e){gk.call(this,t,e)}function HT(t,e){gk.call(this,t,e)}function UT(t,e){gk.call(this,t,e)}function VT(t,e){gk.call(this,t,e)}function qT(t,e){gk.call(this,t,e)}function WT(t,e){gk.call(this,t,e)}function YT(t,e){gk.call(this,t,e)}function GT(t,e){gk.call(this,t,e)}function ZT(t,e){gk.call(this,t,e)}function KT(t,e){this.a=t,this.b=e}function XT(t,e){this.a=t,this.b=e}function JT(t,e){this.a=t,this.b=e}function QT(t,e){this.a=t,this.b=e}function tA(t,e){this.a=t,this.b=e}function eA(t,e){this.a=t,this.b=e}function nA(t,e){this.a=t,this.b=e}function iA(t,e){gk.call(this,t,e)}function aA(t,e){this.a=t,this.b=e}function rA(t,e){this.a=t,this.b=e}function oA(t,e){this.a=t,this.b=e}function sA(t,e){this.a=t,this.b=e}function cA(t,e){this.a=t,this.b=e}function lA(t,e){this.a=t,this.b=e}function uA(t,e){this.b=t,this.a=e}function dA(t,e){this.b=t,this.a=e}function hA(t,e){this.b=t,this.a=e}function fA(t,e){this.b=t,this.a=e}function gA(t,e){this.a=t,this.b=e}function pA(t,e){this.a=t,this.b=e}function bA(t,e){XOt(t.a,jz(e,56))}function mA(t,e){b9(t.a,jz(e,11))}function yA(t,e){return cH(),e!=t}function vA(){return Nx(),new vne}function wA(){zQ(),this.b=new Ny}function xA(){gNt(),this.a=new Ny}function RA(){BQ(),BV.call(this)}function _A(t,e){gk.call(this,t,e)}function kA(t,e){this.a=t,this.b=e}function EA(t,e){this.a=t,this.b=e}function CA(t,e){this.a=t,this.b=e}function SA(t,e){this.a=t,this.b=e}function TA(t,e){this.a=t,this.b=e}function AA(t,e){this.a=t,this.b=e}function DA(t,e){this.d=t,this.b=e}function IA(t,e){this.d=t,this.e=e}function LA(t,e){this.f=t,this.c=e}function OA(t,e){this.b=t,this.c=e}function MA(t,e){this.i=t,this.g=e}function NA(t,e){this.e=t,this.a=e}function BA(t,e){this.a=t,this.b=e}function PA(t,e){t.i=null,rat(t,e)}function FA(t,e){t&&YG(sIe,t,e)}function jA(t,e){return ipt(t.a,e)}function $A(t){return rpt(t.c,t.b)}function zA(t){return t?t.dd():null}function HA(t){return t??null}function UA(t){return typeof t===IGt}function VA(t){return typeof t===LGt}function qA(t){return typeof t===OGt}function WA(t,e){return t.Hd().Xb(e)}function YA(t,e){return Zrt(t.Kc(),e)}function GA(t,e){return 0==Gut(t,e)}function ZA(t,e){return Gut(t,e)>=0}function KA(t,e){return 0!=Gut(t,e)}function XA(t){return""+(vG(t),t)}function JA(t,e){return t.substr(e)}function QA(t){return Vft(t),t.d.gc()}function tD(t){return VDt(t,t.c),t}function eD(t){return KH(null==t),t}function nD(t,e){return t.a+=""+e,t}function iD(t,e){return t.a+=""+e,t}function aD(t,e){return t.a+=""+e,t}function rD(t,e){return t.a+=""+e,t}function oD(t,e){return t.a+=""+e,t}function sD(t,e){return t.a+=""+e,t}function cD(t,e){n6(t,e,t.a,t.a.a)}function lD(t,e){n6(t,e,t.c.b,t.c)}function uD(t,e,n){PRt(e,BSt(t,n))}function dD(t,e,n){PRt(e,BSt(t,n))}function hD(t,e){Rtt(new AO(t),e)}function fD(t,e){t.q.setTime(w2(e))}function gD(t,e){Uq.call(this,t,e)}function pD(t,e){Uq.call(this,t,e)}function bD(t,e){Uq.call(this,t,e)}function mD(t){DW(this),_rt(this,t)}function yD(t){return u1(t,0),null}function vD(t){return t.a=0,t.b=0,t}function wD(t,e){return t.a=e.g+1,t}function xD(t,e){return 2==t.j[e.p]}function RD(t){return sY(jz(t,79))}function _D(){_D=D,Aae=dut(tmt())}function kD(){kD=D,Xce=dut(RMt())}function ED(){this.b=new qk(tet(12))}function CD(){this.b=0,this.a=!1}function SD(){this.b=0,this.a=!1}function TD(t){this.a=t,ju.call(this)}function AD(t){this.a=t,ju.call(this)}function DD(t,e){eP.call(this,t,e)}function ID(t,e){QP.call(this,t,e)}function LD(t,e){MA.call(this,t,e)}function OD(t,e){Dot.call(this,t,e)}function MD(t,e){GM.call(this,t,e)}function ND(t,e){JE(),YG(bIe,t,e)}function BD(t,e){return lN(t.a,0,e)}function PD(t,e){return t.a.a.a.cc(e)}function FD(t,e){return HA(t)===HA(e)}function jD(t,e){return Cht(t.a,e.a)}function $D(t,e){return xL(t.a,e.a)}function zD(t,e){return FW(t.a,e.a)}function HD(t,e){return t.indexOf(e)}function UD(t,e){return t==e?0:t?1:-1}function VD(t){return t<10?"0"+t:""+t}function qD(t){return yY(t),new TD(t)}function WD(t){return _L(t.l,t.m,t.h)}function YD(t){return CJ((vG(t),t))}function GD(t){return CJ((vG(t),t))}function ZD(t,e){return xL(t.g,e.g)}function KD(t){return typeof t===LGt}function XD(t){return t==Joe||t==ese}function JD(t){return t==Joe||t==Qoe}function QD(t){return x9(t.b.b,t,0)}function tI(t){this.a=vA(),this.b=t}function eI(t){this.a=vA(),this.b=t}function nI(t,e){return Wz(t.a,e),e}function iI(t,e){return Wz(t.c,e),t}function aI(t,e){return Xrt(t.a,e),t}function rI(t,e){return Hj(),e.a+=t}function oI(t,e){return Hj(),e.a+=t}function sI(t,e){return Hj(),e.c+=t}function cI(t,e){U8(t,0,t.length,e)}function lI(){tg.call(this,new b3)}function uI(){rV.call(this,0,0,0,0)}function dI(){VZ.call(this,0,0,0,0)}function hI(t){this.a=t.a,this.b=t.b}function fI(t){return t==FSe||t==jSe}function gI(t){return t==zSe||t==PSe}function pI(t){return t==uye||t==lye}function bI(t){return t!=ZTe&&t!=KTe}function mI(t){return t.Lg()&&t.Mg()}function yI(t){return mZ(jz(t,118))}function vI(t){return Xrt(new j2,t)}function wI(t,e){return new Dot(e,t)}function xI(t,e){return new Dot(e,t)}function RI(t,e,n){xnt(t,e),Rnt(t,n)}function _I(t,e,n){Ent(t,e),knt(t,n)}function kI(t,e,n){Cnt(t,e),Snt(t,n)}function EI(t,e,n){_nt(t,e),Ant(t,n)}function CI(t,e,n){Tnt(t,e),Dnt(t,n)}function SI(t,e){Nlt(t,e),Mnt(t,t.D)}function TI(t){LA.call(this,t,!0)}function AI(t,e,n){LB.call(this,t,e,n)}function DI(t){ABt(),cot.call(this,t)}function II(){gC.call(this,"Head",1)}function LI(){gC.call(this,"Tail",3)}function OI(t){t.c=O5(Dte,zGt,1,0,5,1)}function MI(t){t.a=O5(Dte,zGt,1,8,5,1)}function NI(t){Aet(t.xf(),new kg(t))}function BI(t){return null!=t?Qct(t):0}function PI(t,e){return Set(e,WJ(t))}function FI(t,e){return Set(e,WJ(t))}function jI(t,e){return t[t.length]=e}function $I(t,e){return t[t.length]=e}function zI(t){return Fz(t.b.Kc(),t.a)}function HI(t,e){return qit(EY(t.d),e)}function UI(t,e){return qit(EY(t.g),e)}function VI(t,e){return qit(EY(t.j),e)}function qI(t,e){eP.call(this,t.b,e)}function WI(t){rV.call(this,t,t,t,t)}function YI(t){return t.b&&Gzt(t),t.a}function GI(t){return t.b&&Gzt(t),t.c}function ZI(t,e){qne||(t.b=e)}function KI(t,e,n){return DY(t,e,n),n}function XI(t,e,n){DY(t.c[e.g],e.g,n)}function JI(t,e,n){jz(t.c,69).Xh(e,n)}function QI(t,e,n){kI(n,n.i+t,n.j+e)}function tL(t,e){l8(a3(t.a),t1(e))}function eL(t,e){l8($9(t.a),e1(e))}function nL(t){fGt(),Am.call(this,t)}function iL(t){return null==t?0:Qct(t)}function aL(){aL=D,swe=new zft(tTe)}function rL(){rL=D,new oL,new Lm}function oL(){new Om,new Om,new Om}function sL(){sL=D,_y(),nee=new Om}function cL(){cL=D,i.Math.log(2)}function lL(){lL=D,UE(),MLe=CDe}function uL(){throw $m(new Qw(_te))}function dL(){throw $m(new Qw(_te))}function hL(){throw $m(new Qw(kte))}function fL(){throw $m(new Qw(kte))}function gL(t){this.a=t,Gz.call(this,t)}function pL(t){this.a=t,kk.call(this,t)}function bL(t){this.a=t,kk.call(this,t)}function mL(t,e){yV(t.c,t.c.length,e)}function yL(t){return t.a<t.c.c.length}function vL(t){return t.a<t.c.a.length}function wL(t,e){return t.a?t.b:e.De()}function xL(t,e){return t<e?-1:t>e?1:0}function RL(t,e){return Gut(t,e)>0?t:e}function _L(t,e,n){return{l:t,m:e,h:n}}function kL(t,e){null!=t.a&&mA(e,t.a)}function EL(t){t.a=new L,t.c=new L}function CL(t){this.b=t,this.a=new Lm}function SL(t){this.b=new ee,this.a=t}function TL(t){IP.call(this),this.a=t}function AL(){gC.call(this,"Range",2)}function DL(){tRt(),this.a=new SMt(Voe)}function IL(t,e){yY(e),xZ(t).Jc(new f)}function LL(t,e){return jQ(),e.n.b+=t}function OL(t,e,n){return YG(t.g,n,e)}function ML(t,e,n){return YG(t.k,n,e)}function NL(t,e){return YG(t.a,e.a,e)}function BL(t,e,n){return Tpt(e,n,t.c)}function PL(t){return new OT(t.c,t.d)}function FL(t){return new OT(t.c,t.d)}function jL(t){return new OT(t.a,t.b)}function $L(t,e){return tqt(t.a,e,null)}function zL(t){kQ(t,null),_Q(t,null)}function HL(t){WQ(t,null),YQ(t,null)}function UL(){GM.call(this,null,null)}function VL(){ZM.call(this,null,null)}function qL(t){this.a=t,Om.call(this)}function WL(t){this.b=(kK(),new qf(t))}function YL(t){t.j=O5(jee,cZt,310,0,0,1)}function GL(t,e,n){t.c.Vc(e,jz(n,133))}function ZL(t,e,n){t.c.ji(e,jz(n,133))}function KL(t,e){cUt(t),t.Gc(jz(e,15))}function XL(t,e){return $Ut(t.c,t.b,e)}function JL(t,e){return new pM(t.Kc(),e)}function QL(t,e){return-1!=jst(t.Kc(),e)}function tO(t,e){return null!=t.a.Bc(e)}function eO(t){return t.Ob()?t.Pb():null}function nO(t){return $pt(t,0,t.length)}function iO(t,e){return null!=t&&Zmt(t,e)}function aO(t,e){t.q.setHours(e),dzt(t,e)}function rO(t,e){t.c&&(NH(e),vJ(e))}function oO(t,e,n){jz(t.Kb(n),164).Nb(e)}function sO(t,e,n){return zVt(t,e,n),n}function cO(t,e,n){t.a=1502^e,t.b=n^rXt}function lO(t,e,n){return t.a[e.g][n.g]}function uO(t,e){return t.a[e.c.p][e.p]}function dO(t,e){return t.e[e.c.p][e.p]}function hO(t,e){return t.c[e.c.p][e.p]}function fO(t,e){return t.j[e.p]=bOt(e)}function gO(t,e){return l7(t.f,e.tg())}function pO(t,e){return l7(t.b,e.tg())}function bO(t,e){return t.a<qF(e)?-1:1}function mO(t,e,n){return n?0!=e:e!=t-1}function yO(t,e,n){return t.a=e,t.b=n,t}function vO(t,e){return t.a*=e,t.b*=e,t}function wO(t,e,n){return DY(t.g,e,n),n}function xO(t,e,n,i){DY(t.a[e.g],n.g,i)}function RO(t,e){PN(e,t.a.a.a,t.a.a.b)}function _O(t){t.a=jz(vot(t.b.a,4),126)}function kO(t){t.a=jz(vot(t.b.a,4),126)}function EO(t){TX(t,n5t),zOt(t,TWt(t))}function CO(){CO=D,kne=new bw(null)}function SO(){(SO=D)(),Dne=new q}function TO(){this.Bb|=256,this.Bb|=512}function AO(t){this.i=t,this.f=this.i.j}function DO(t,e,n){yH.call(this,t,e,n)}function IO(t,e,n){DO.call(this,t,e,n)}function LO(t,e,n){DO.call(this,t,e,n)}function OO(t,e,n){IO.call(this,t,e,n)}function MO(t,e,n){yH.call(this,t,e,n)}function NO(t,e,n){yH.call(this,t,e,n)}function BO(t,e,n){_H.call(this,t,e,n)}function PO(t,e,n){_H.call(this,t,e,n)}function FO(t,e,n){BO.call(this,t,e,n)}function jO(t,e,n){MO.call(this,t,e,n)}function $O(t,e){this.a=t,kk.call(this,e)}function zO(t,e){this.a=t,rx.call(this,e)}function HO(t,e){this.a=t,rx.call(this,e)}function UO(t,e){this.a=t,rx.call(this,e)}function VO(t){this.a=t,sh.call(this,t.d)}function qO(t){this.c=t,this.a=this.c.a}function WO(t,e){this.a=e,rx.call(this,t)}function YO(t,e){this.a=e,f3.call(this,t)}function GO(t,e){this.a=t,f3.call(this,e)}function ZO(t,e){return hq(dq(t.c)).Xb(e)}function KO(t,e){return eft(t,new Cx,e).a}function XO(t,e){return yY(e),new JO(t,e)}function JO(t,e){this.a=e,Tk.call(this,t)}function QO(t){this.b=t,this.a=this.b.a.e}function tM(t){t.b.Qb(),--t.d.f.d,DV(t.d)}function eM(t){Jd.call(this,jz(yY(t),35))}function nM(t){Jd.call(this,jz(yY(t),35))}function iM(){gk.call(this,"INSTANCE",0)}function aM(t){if(!t)throw $m(new hy)}function rM(t){if(!t)throw $m(new fy)}function oM(t){if(!t)throw $m(new yy)}function sM(){sM=D,KE(),nOe=new Pd}function cM(){cM=D,mee=!1,yee=!0}function lM(t){Af.call(this,(vG(t),t))}function uM(t){Af.call(this,(vG(t),t))}function dM(t){$f.call(this,t),this.a=t}function hM(t){zf.call(this,t),this.a=t}function fM(t){Ax.call(this,t),this.a=t}function gM(){YL(this),wK(this),this._d()}function pM(t,e){this.a=e,Tk.call(this,t)}function bM(t,e){return new PSt(t.a,t.b,e)}function mM(t,e){return t.lastIndexOf(e)}function yM(t,e,n){return t.indexOf(e,n)}function vM(t){return null==t?VGt:$ft(t)}function wM(t){return null==t?null:t.name}function xM(t){return null!=t.a?t.a:null}function RM(t){return x_(t.a)?r1(t):null}function _M(t,e){return null!=DJ(t.a,e)}function kM(t,e){return!!e&&t.b[e.g]==e}function EM(t){return t.$H||(t.$H=++iie)}function CM(t){return t.l+t.m*TKt+t.h*AKt}function SM(t,e){return Wz(e.a,t.a),t.a}function TM(t,e){return Wz(e.b,t.a),t.a}function AM(t,e){return Wz(e.a,t.a),t.a}function DM(t){return EN(null!=t.a),t.a}function IM(t){tg.call(this,new z5(t))}function LM(t,e){Ebt.call(this,t,e,null)}function OM(t){this.a=t,jf.call(this,t)}function MM(){MM=D,Iae=new eP(gJt,0)}function NM(t,e){return++t.b,Wz(t.a,e)}function BM(t,e){return++t.b,y9(t.a,e)}function PM(t,e){return Cht(t.n.a,e.n.a)}function FM(t,e){return Cht(t.c.d,e.c.d)}function jM(t,e){return Cht(t.c.c,e.c.c)}function $M(t,e){return jz(c7(t.b,e),15)}function zM(t,e){return t.n.b=(vG(e),e)}function HM(t,e){return t.n.b=(vG(e),e)}function UM(t){return yL(t.a)||yL(t.b)}function VM(t,e,n){return p4(t,e,n,t.b)}function qM(t,e,n){return p4(t,e,n,t.c)}function WM(t,e,n){jz(M9(t,e),21).Fc(n)}function YM(t,e,n){Aht(t.a,n),Tyt(t.a,e)}function GM(t,e){GE(),this.a=t,this.b=e}function ZM(t,e){ZE(),this.b=t,this.c=e}function KM(t,e){FV(),this.f=e,this.d=t}function XM(t,e){h7(e,t),this.d=t,this.c=e}function JM(t){var e;e=t.a,t.a=t.b,t.b=e}function QM(t){return Hj(),!!t&&!t.dc()}function tN(t){return new c3(3,t)}function eN(t,e){return new dF(t,t.gc(),e)}function nN(t){return nw(),Ctt((MQ(),Wte),t)}function iN(t){this.d=t,AO.call(this,t)}function aN(t){this.c=t,AO.call(this,t)}function rN(t){this.c=t,iN.call(this,t)}function oN(){_E(),this.b=new yp(this)}function sN(t){return dit(t,DZt),new K7(t)}function cN(t){return EX(),parseInt(t)||-1}function lN(t,e,n){return t.substr(e,n-e)}function uN(t,e,n){return yM(t,Kkt(e),n)}function dN(t){return YW(t.c,t.c.length)}function hN(t){return null!=t.f?t.f:""+t.g}function fN(t){return null!=t.f?t.f:""+t.g}function gN(t){return EN(0!=t.b),t.a.a.c}function pN(t){return EN(0!=t.b),t.c.b.c}function bN(t){iO(t,150)&&jz(t,150).Gh()}function mN(t){return t.b=jz(mK(t.a),42)}function yN(t){cE(),this.b=t,this.a=!0}function vN(t){lE(),this.b=t,this.a=!0}function wN(t){t.d=new CN(t),t.e=new Om}function xN(t){if(!t)throw $m(new by)}function RN(t){if(!t)throw $m(new hy)}function _N(t){if(!t)throw $m(new fy)}function kN(t){if(!t)throw $m(new uy)}function EN(t){if(!t)throw $m(new yy)}function CN(t){Jz.call(this,t,null,null)}function SN(){gk.call(this,"POLYOMINO",0)}function TN(t,e,n,i){sq.call(this,t,e,n,i)}function AN(t,e){return FEt(),XAt(t,e.e,e)}function DN(t,e,n){return AE(),n.qg(t,e)}function IN(t,e){return!!t.q&&cW(t.q,e)}function LN(t,e){return t>0?e*e/t:e*e*100}function ON(t,e){return t>0?e/(t*t):100*e}function MN(t,e,n){return Wz(e,sgt(t,n))}function NN(t,e,n){O8(),t.Xe(e)&&n.td(t)}function BN(t,e,n){t.Zc(e).Rb(n)}function PN(t,e,n){return t.a+=e,t.b+=n,t}function FN(t,e,n){return t.a*=e,t.b*=n,t}function jN(t,e,n){return t.a-=e,t.b-=n,t}function $N(t,e){return t.a=e.a,t.b=e.b,t}function zN(t){return t.a=-t.a,t.b=-t.b,t}function HN(t){this.c=t,this.a=1,this.b=1}function UN(t){this.c=t,Cnt(t,0),Snt(t,0)}function VN(t){Zk.call(this),Qnt(this,t)}function qN(t){BYt(),jm(this),this.mf(t)}function WN(t,e){GE(),GM.call(this,t,e)}function YN(t,e){ZE(),ZM.call(this,t,e)}function GN(t,e){ZE(),ZM.call(this,t,e)}function ZN(t,e){ZE(),YN.call(this,t,e)}function KN(t,e,n){y8.call(this,t,e,n,2)}function XN(t,e){lL(),iV.call(this,t,e)}function JN(t,e){lL(),XN.call(this,t,e)}function QN(t,e){lL(),XN.call(this,t,e)}function tB(t,e){lL(),QN.call(this,t,e)}function eB(t,e){lL(),iV.call(this,t,e)}function nB(t,e){lL(),eB.call(this,t,e)}function iB(t,e){lL(),iV.call(this,t,e)}function aB(t,e){return t.c.Fc(jz(e,133))}function rB(t,e,n){return OHt(F9(t,e),n)}function oB(t,e,n){return e.Qk(t.e,t.c,n)}function sB(t,e,n){return e.Rk(t.e,t.c,n)}function cB(t,e){return tdt(t.e,jz(e,49))}function lB(t,e,n){cht($9(t.a),e,e1(n))}function uB(t,e,n){cht(a3(t.a),e,t1(n))}function dB(t,e){e.$modCount=t.$modCount}function hB(){hB=D,Yxe=new rm("root")}function fB(){fB=D,gIe=new Rv,new _v}function gB(){this.a=new pJ,this.b=new pJ}function pB(){xit.call(this),this.Bb|=$Kt}function bB(){gk.call(this,"GROW_TREE",0)}function mB(t){return null==t?null:fWt(t)}function yB(t){return null==t?null:LCt(t)}function vB(t){return null==t?null:$ft(t)}function wB(t){return null==t?null:$ft(t)}function xB(t){null==t.o&&pLt(t)}function RB(t){return KH(null==t||UA(t)),t}function _B(t){return KH(null==t||VA(t)),t}function kB(t){return KH(null==t||qA(t)),t}function EB(t){this.q=new i.Date(w2(t))}function CB(t,e){this.c=t,pk.call(this,t,e)}function SB(t,e){this.a=t,CB.call(this,t,e)}function TB(t,e){this.d=t,_f(this),this.b=e}function AB(t,e){j5.call(this,t),this.a=e}function DB(t,e){j5.call(this,t),this.a=e}function IB(t){Hgt.call(this,0,0),this.f=t}function LB(t,e,n){W7.call(this,t,e,n,null)}function OB(t,e,n){W7.call(this,t,e,n,null)}function MB(t,e,n){return t.ue(e,n)<=0?n:e}function NB(t,e,n){return t.ue(e,n)<=0?e:n}function BB(t,e){return jz(utt(t.b,e),149)}function PB(t,e){return jz(utt(t.c,e),229)}function FB(t){return jz(OU(t.a,t.b),287)}function jB(t){return new OT(t.c,t.d+t.a)}function $B(t){return jQ(),pI(jz(t,197))}function zB(){zB=D,Dae=Qht((ypt(),FAe))}function HB(t,e){e.a?jNt(t,e):_M(t.a,e.b)}function UB(t,e){qne||Wz(t.a,e)}function VB(t,e){return mE(),fot(e.d.i,t)}function qB(t,e){return Tat(),new aFt(e,t)}function WB(t,e){return TX(e,oJt),t.f=e,t}function YB(t,e,n){return n=_jt(t,e,3,n)}function GB(t,e,n){return n=_jt(t,e,6,n)}function ZB(t,e,n){return n=_jt(t,e,9,n)}function KB(t,e,n){++t.j,t.Ki(),I5(t,e,n)}function XB(t,e,n){++t.j,t.Hi(e,t.oi(e,n))}function JB(t,e,n){t.Zc(e).Rb(n)}function QB(t,e,n){return Jzt(t.c,t.b,e,n)}function tP(t,e){return(e&NGt)%t.d.length}function eP(t,e){rm.call(this,t),this.a=e}function nP(t,e){vm.call(this,t),this.a=e}function iP(t,e){vm.call(this,t),this.a=e}function aP(t,e){this.c=t,pet.call(this,e)}function rP(t,e){this.a=t,ym.call(this,e)}function oP(t,e){this.a=t,ym.call(this,e)}function sP(t){this.a=(dit(t,DZt),new K7(t))}function cP(t){this.a=(dit(t,DZt),new K7(t))}function lP(t){return!t.a&&(t.a=new g),t.a}function uP(t){return t>8?0:t+1}function dP(t,e){return cM(),t==e?0:t?1:-1}function hP(t,e,n){return mV(t,jz(e,22),n)}function fP(t,e,n){return t.apply(e,n)}function gP(t,e,n){return t.a+=$pt(e,0,n),t}function pP(t,e){var n;return n=t.e,t.e=e,n}function bP(t,e){t[nXt].call(t,e)}function mP(t,e){t[nXt].call(t,e)}function yP(t,e){t.a.Vc(t.b,e),++t.b,t.c=-1}function vP(t){DW(t.e),t.d.b=t.d,t.d.a=t.d}function wP(t){t.b?wP(t.b):t.f.c.zc(t.e,t.d)}function xP(t,e,n){fE(),Ch(t,e.Ce(t.a,n))}function RP(t,e){return GR(kpt(t.a,e,!0))}function _P(t,e){return GR(Ept(t.a,e,!0))}function kP(t,e){return zx(new Array(e),t)}function EP(t){return String.fromCharCode(t)}function CP(t){return null==t?null:t.message}function SP(){this.a=new Lm,this.b=new Lm}function TP(){this.a=new he,this.b=new Ry}function AP(){this.b=new HR,this.c=new Lm}function DP(){this.d=new HR,this.e=new HR}function IP(){this.n=new HR,this.o=new HR}function LP(){this.n=new dv,this.i=new dI}function OP(){this.a=new Ju,this.b=new sr}function MP(){this.a=new Lm,this.d=new Lm}function NP(){this.b=new Ny,this.a=new Ny}function BP(){this.b=new Om,this.a=new Om}function PP(){this.b=new A_,this.a=new bo}function FP(){LP.call(this),this.a=new HR}function jP(t){Aot.call(this,t,(X8(),One))}function $P(t,e,n,i){rV.call(this,t,e,n,i)}function zP(t,e,n){null!=n&&Lit(e,Dvt(t,n))}function HP(t,e,n){null!=n&&Oit(e,Dvt(t,n))}function UP(t,e,n){return n=_jt(t,e,11,n)}function VP(t,e){return t.a+=e.a,t.b+=e.b,t}function qP(t,e){return t.a-=e.a,t.b-=e.b,t}function WP(t,e){return t.n.a=(vG(e),e+10)}function YP(t,e){return t.n.a=(vG(e),e+10)}function GP(t,e){return e==t||ERt(SOt(e),t)}function ZP(t,e){return null==YG(t.a,e,"")}function KP(t,e){return mE(),!fot(e.d.i,t)}function XP(t,e){fI(t.f)?aLt(t,e):Tkt(t,e)}function JP(t,e){return e.Hh(t.a)}function QP(t,e){Aw.call(this,e8t+t+s5t+e)}function tF(t,e,n,i){tW.call(this,t,e,n,i)}function eF(t,e,n,i){tW.call(this,t,e,n,i)}function nF(t,e,n,i){eF.call(this,t,e,n,i)}function iF(t,e,n,i){eW.call(this,t,e,n,i)}function aF(t,e,n,i){eW.call(this,t,e,n,i)}function rF(t,e,n,i){eW.call(this,t,e,n,i)}function oF(t,e,n,i){aF.call(this,t,e,n,i)}function sF(t,e,n,i){aF.call(this,t,e,n,i)}function cF(t,e,n,i){rF.call(this,t,e,n,i)}function lF(t,e,n,i){sF.call(this,t,e,n,i)}function uF(t,e,n,i){Xq.call(this,t,e,n,i)}function dF(t,e,n){this.a=t,XM.call(this,e,n)}function hF(t,e,n){this.c=e,this.b=n,this.a=t}function fF(t,e,n){return t.d=jz(e.Kb(n),164)}function gF(t,e){return t.Aj().Nh().Kh(t,e)}function pF(t,e){return t.Aj().Nh().Ih(t,e)}function bF(t,e){return vG(t),HA(t)===HA(e)}function mF(t,e){return vG(t),HA(t)===HA(e)}function yF(t,e){return GR(kpt(t.a,e,!1))}function vF(t,e){return GR(Ept(t.a,e,!1))}function wF(t,e){return t.b.sd(new DC(t,e))}function xF(t,e){return t.b.sd(new IC(t,e))}function RF(t,e){return t.b.sd(new LC(t,e))}function _F(t,e,n){return t.lastIndexOf(e,n)}function kF(t,e,n){return Cht(t[e.b],t[n.b])}function EF(t,e){return lct(e,(zYt(),Npe),t)}function CF(t,e){return xL(e.a.d.p,t.a.d.p)}function SF(t,e){return xL(t.a.d.p,e.a.d.p)}function TF(t,e){return Cht(t.c-t.s,e.c-e.s)}function AF(t){return t.c?x9(t.c.a,t,0):-1}function DF(t){return t<100?null:new FR(t)}function IF(t){return t==qTe||t==YTe||t==WTe}function LF(t,e){return iO(e,15)&&ZBt(t.c,e)}function OF(t,e){qne||e&&(t.d=e)}function MF(t,e){return!!dlt(t,e)}function NF(t,e){this.c=t,HW.call(this,t,e)}function BF(t){this.c=t,bD.call(this,hZt,0)}function PF(t,e){Kz.call(this,t,t.length,e)}function FF(t,e,n){return jz(t.c,69).lk(e,n)}function jF(t,e,n){return jz(t.c,69).mk(e,n)}function $F(t,e,n){return oB(t,jz(e,332),n)}function zF(t,e,n){return sB(t,jz(e,332),n)}function HF(t,e,n){return T_t(t,jz(e,332),n)}function UF(t,e,n){return Zkt(t,jz(e,332),n)}function VF(t,e){return null==e?null:ddt(t.b,e)}function qF(t){return VA(t)?(vG(t),t):t.ke()}function WF(t){return!isNaN(t)&&!isFinite(t)}function YF(t){sj(),this.a=(kK(),new Ax(t))}function GF(t){cH(),this.d=t,this.a=new Im}function ZF(t,e,n){this.a=t,this.b=e,this.c=n}function KF(t,e,n){this.a=t,this.b=e,this.c=n}function XF(t,e,n){this.d=t,this.b=n,this.a=e}function JF(t){EL(this),yK(this),jat(this,t)}function QF(t){OI(this),Qz(this.c,0,t.Pc())}function tj(t){lG(t.a),U5(t.c,t.b),t.b=null}function ej(t){this.a=t,Dk(),uot(Date.now())}function nj(){nj=D,eie=new a,nie=new a}function ij(){ij=D,Rne=new O,_ne=new M}function aj(){aj=D,dIe=O5(Dte,zGt,1,0,5,1)}function rj(){rj=D,RLe=O5(Dte,zGt,1,0,5,1)}function oj(){oj=D,_Le=O5(Dte,zGt,1,0,5,1)}function sj(){sj=D,new ny((kK(),kK(),cne))}function cj(t){return X8(),Ctt((J8(),Pne),t)}function lj(t){return Hlt(),Ctt((t5(),Xne),t)}function uj(t){return lmt(),Ctt((S3(),pie),t)}function dj(t){return Ntt(),Ctt((T3(),vie),t)}function hj(t){return tPt(),Ctt((Mot(),Fie),t)}function fj(t){return Net(),Ctt((X7(),Wie),t)}function gj(t){return K8(),Ctt((J7(),Qie),t)}function pj(t){return H9(),Ctt((Q7(),rae),t)}function bj(t){return gGt(),Ctt((_D(),Aae),t)}function mj(t){return Not(),Ctt((t9(),Pae),t)}function yj(t){return zmt(),Ctt((e9(),Uae),t)}function vj(t){return Hmt(),Ctt((n9(),ere),t)}function wj(t){return hE(),Ctt((G2(),are),t)}function xj(t){return Btt(),Ctt((A3(),Pre),t)}function Rj(t){return z9(),Ctt((e5(),Ioe),t)}function _j(t){return vEt(),Ctt((qtt(),zoe),t)}function kj(t){return Dst(),Ctt((Q8(),nse),t)}function Ej(t){return $dt(),Ctt((n5(),gse),t)}function Cj(t,e){if(!t)throw $m(new Pw(e))}function Sj(t){return oCt(),Ctt((lnt(),Ase),t)}function Tj(t){rV.call(this,t.d,t.c,t.a,t.b)}function Aj(t){rV.call(this,t.d,t.c,t.a,t.b)}function Dj(t,e,n){this.b=t,this.c=e,this.a=n}function Ij(t,e,n){this.b=t,this.a=e,this.c=n}function Lj(t,e,n){this.a=t,this.b=e,this.c=n}function Oj(t,e,n){this.a=t,this.b=e,this.c=n}function Mj(t,e,n){this.a=t,this.b=e,this.c=n}function Nj(t,e,n){this.a=t,this.b=e,this.c=n}function Bj(t,e,n){this.b=t,this.a=e,this.c=n}function Pj(t,e,n){this.e=e,this.b=t,this.d=n}function Fj(t,e,n){return fE(),t.a.Od(e,n),e}function jj(t){var e;return(e=new xt).e=t,e}function $j(t){var e;return(e=new Xy).b=t,e}function zj(){zj=D,Vse=new Mn,qse=new Nn}function Hj(){Hj=D,fle=new ya,gle=new va}function Uj(t){return Tst(),Ctt((a9(),ole),t)}function Vj(t){return Ast(),Ctt((o9(),xle),t)}function qj(t){return wBt(),Ctt((Urt(),Yle),t)}function Wj(t){return ISt(),Ctt((hnt(),nue),t)}function Yj(t){return Y5(),Ctt((N3(),oue),t)}function Gj(t){return Ait(),Ctt((i5(),due),t)}function Zj(t){return L_t(),Ctt(($tt(),Tle),t)}function Kj(t){return Sat(),Ctt((o5(),Ple),t)}function Xj(t){return oit(),Ctt((a5(),bue),t)}function Jj(t){return Gyt(),Ctt((Ftt(),_ue),t)}function Qj(t){return Ptt(),Ctt((I3(),Sue),t)}function t$(t){return Xst(),Ctt((r5(),Lue),t)}function e$(t){return pCt(),Ctt((bnt(),$ue),t)}function n$(t){return g9(),Ctt((L3(),Vue),t)}function i$(t){return $Rt(),Ctt((gnt(),Jue),t)}function a$(t){return XEt(),Ctt((fnt(),ode),t)}function r$(t){return hBt(),Ctt((Gst(),yde),t)}function o$(t){return Pot(),Ctt((c5(),_de),t)}function s$(t){return U9(),Ctt((s5(),Tde),t)}function c$(t){return U2(),Ctt((B3(),Lde),t)}function l$(t){return _ft(),Ctt((ztt(),Uhe),t)}function u$(t){return _kt(),Ctt((pnt(),nye),t)}function d$(t){return kut(),Ctt((l5(),sye),t)}function h$(t){return hyt(),Ctt((s9(),fye),t)}function f$(t){return rit(),Ctt((h5(),Vye),t)}function g$(t){return cMt(),Ctt((Hrt(),Dye),t)}function p$(t){return yct(),Ctt((d5(),Nye),t)}function b$(t){return V9(),Ctt((M3(),jye),t)}function m$(t){return zrt(),Ctt((u5(),Zye),t)}function y$(t){return Oyt(),Ctt((jtt(),wye),t)}function v$(t){return A7(),Ctt((O3(),Qye),t)}function w$(t){return qlt(),Ctt((g5(),ave),t)}function x$(t){return grt(),Ctt((p5(),lve),t)}function R$(t){return Ist(),Ctt((f5(),gve),t)}function _$(t){return sit(),Ctt((b5(),Lve),t)}function k$(t){return G3(),Ctt((F3(),Hve),t)}function E$(t){return gJ(),Ctt((j3(),ewe),t)}function C$(t){return oQ(),Ctt(($3(),rwe),t)}function S$(t){return T7(),Ctt((P3(),Ewe),t)}function T$(t){return fJ(),Ctt((z3(),Mwe),t)}function A$(t){return Vwt(),Ctt((i9(),$we),t)}function D$(t){return NSt(),Ctt((mnt(),Kwe),t)}function I$(t){return sQ(),Ctt((V3(),Fxe),t)}function L$(t){return Cat(),Ctt((U3(),Xxe),t)}function O$(t){return j0(),Ctt((H3(),Hxe),t)}function M$(t){return Sft(),Ctt((m5(),nRe),t)}function N$(t){return M8(),Ctt((q3(),oRe),t)}function B$(t){return zlt(),Ctt((y5(),dRe),t)}function P$(t){return Avt(),Ctt((r9(),URe),t)}function F$(t){return $rt(),Ctt((w5(),GRe),t)}function j$(t){return Eft(),Ctt((v5(),t_e),t)}function $$(t){return KOt(),Ctt((Vtt(),j_e),t)}function z$(t){return Cft(),Ctt((x5(),V_e),t)}function H$(t){return CE(),Ctt((W2(),Y_e),t)}function U$(t){return SE(),Ctt((q2(),K_e),t)}function V$(t){return D7(),Ctt((Y3(),tke),t)}function q$(t){return ICt(),Ctt((Htt(),ske),t)}function W$(t){return TE(),Ctt((Y2(),Vke),t)}function Y$(t){return Lst(),Ctt((W3(),Gke),t)}function G$(t){return imt(),Ctt((Utt(),dEe),t)}function Z$(t){return CSt(),Ctt((Vrt(),xEe),t)}function K$(t){return fyt(),Ctt((dnt(),OEe),t)}function X$(t){return f_t(),Ctt((unt(),QEe),t)}function J$(t){return dGt(),Ctt((kD(),Xce),t)}function Q$(t){return Eat(),Ctt((D3(),Use),t)}function tz(t){return jdt(),Ctt((Wtt(),HSe),t)}function ez(t){return Bet(),Ctt((_5(),YSe),t)}function nz(t){return kft(),Ctt((u9(),QSe),t)}function iz(t){return Qkt(),Ctt((vnt(),sTe),t)}function az(t){return odt(),Ctt((R5(),vTe),t)}function rz(t){return Wwt(),Ctt((l9(),ETe),t)}function oz(t){return QIt(),Ctt((Oot(),BTe),t)}function sz(t){return amt(),Ctt((Ytt(),UTe),t)}function cz(t){return Z_t(),Ctt((zet(),XTe),t)}function lz(t){return dAt(),Ctt((ynt(),rAe),t)}function uz(t){return ypt(),Ctt((h9(),jAe),t)}function dz(t){return QFt(),Ctt((Zst(),KAe),t)}function hz(t){return wWt(),Ctt((Gtt(),TAe),t)}function fz(t){return jgt(),Ctt((d9(),nDe),t)}function gz(t){return $lt(),Ctt((c9(),lDe),t)}function pz(t){return lIt(),Ctt((qrt(),nIe),t)}function bz(t,e){return vG(t),t+(vG(e),e)}function mz(t,e){return Dk(),l8(GK(t.a),e)}function yz(t,e){return Dk(),l8(GK(t.a),e)}function vz(t,e){this.c=t,this.a=e,this.b=e-t}function wz(t,e,n){this.a=t,this.b=e,this.c=n}function xz(t,e,n){this.a=t,this.b=e,this.c=n}function Rz(t,e,n){this.a=t,this.b=e,this.c=n}function _z(t,e,n){this.a=t,this.b=e,this.c=n}function kz(t,e,n){this.a=t,this.b=e,this.c=n}function Ez(t,e,n){this.e=t,this.a=e,this.c=n}function Cz(t,e,n){lL(),mJ.call(this,t,e,n)}function Sz(t,e,n){lL(),nG.call(this,t,e,n)}function Tz(t,e,n){lL(),nG.call(this,t,e,n)}function Az(t,e,n){lL(),nG.call(this,t,e,n)}function Dz(t,e,n){lL(),Sz.call(this,t,e,n)}function Iz(t,e,n){lL(),Sz.call(this,t,e,n)}function Lz(t,e,n){lL(),Iz.call(this,t,e,n)}function Oz(t,e,n){lL(),Tz.call(this,t,e,n)}function Mz(t,e,n){lL(),Az.call(this,t,e,n)}function Nz(t,e){return yY(t),yY(e),new ck(t,e)}function Bz(t,e){return yY(t),yY(e),new PH(t,e)}function Pz(t,e){return yY(t),yY(e),new FH(t,e)}function Fz(t,e){return yY(t),yY(e),new uk(t,e)}function jz(t,e){return KH(null==t||Zmt(t,e)),t}function $z(t){var e;return ltt(e=new Lm,t),e}function zz(t){var e;return ltt(e=new Ny,t),e}function Hz(t){var e;return Hat(e=new Uy,t),e}function Uz(t){var e;return Hat(e=new Zk,t),e}function Vz(t){return!t.e&&(t.e=new Lm),t.e}function qz(t){return!t.c&&(t.c=new zc),t.c}function Wz(t,e){return t.c[t.c.length]=e,!0}function Yz(t,e){this.c=t,this.b=e,this.a=!1}function Gz(t){this.d=t,_f(this),this.b=nq(t.d)}function Zz(){this.a=";,;",this.b="",this.c=""}function Kz(t,e,n){Vq.call(this,e,n),this.a=t}function Xz(t,e,n){this.b=t,gD.call(this,e,n)}function Jz(t,e,n){this.c=t,EC.call(this,e,n)}function Qz(t,e,n){FTt(n,0,t,e,n.length,!1)}function tH(t,e,n,i,a){t.b=e,t.c=n,t.d=i,t.a=a}function eH(t,e){e&&(t.b=e,t.a=(xG(e),e.a))}function nH(t,e,n,i,a){t.d=e,t.c=n,t.a=i,t.b=a}function iH(t){var e,n;e=t.b,n=t.c,t.b=n,t.c=e}function aH(t){var e,n;n=t.d,e=t.a,t.d=e,t.a=n}function rH(t){return oot(OW(KD(t)?Cot(t):t))}function oH(t,e){return xL(oU(t.d),oU(e.d))}function sH(t,e){return e==(wWt(),SAe)?t.c:t.d}function cH(){cH=D,wWt(),Nve=SAe,Bve=sAe}function lH(){this.b=Hw(_B(ymt((uPt(),aoe))))}function uH(t){return fE(),O5(Dte,zGt,1,t,5,1)}function dH(t){return new OT(t.c+t.b,t.d+t.a)}function hH(t,e){return kE(),xL(t.d.p,e.d.p)}function fH(t){return EN(0!=t.b),Det(t,t.a.a)}function gH(t){return EN(0!=t.b),Det(t,t.c.b)}function pH(t,e){if(!t)throw $m(new Dw(e))}function bH(t,e){if(!t)throw $m(new Pw(e))}function mH(t,e,n){fS.call(this,t,e),this.b=n}function yH(t,e,n){IA.call(this,t,e),this.c=n}function vH(t,e,n){het.call(this,e,n),this.d=t}function wH(t){oj(),wc.call(this),this.th(t)}function xH(t,e,n){this.a=t,LD.call(this,e,n)}function RH(t,e,n){this.a=t,LD.call(this,e,n)}function _H(t,e,n){IA.call(this,t,e),this.c=n}function kH(){N6(),oG.call(this,(WE(),HIe))}function EH(t){return null!=t&&!Wft(t,DIe,IIe)}function CH(t,e){return(Ydt(t)<<4|Ydt(e))&ZZt}function SH(t,e){return JG(),Vyt(t,e),new HG(t,e)}function TH(t,e){var n;t.n&&(n=e,Wz(t.f,n))}function AH(t,e,n){net(t,e,new HY(n))}function DH(t,e){var n;return n=t.c,Pit(t,e),n}function IH(t,e){return t.g=e<0?-1:e,t}function LH(t,e){return Vet(t),t.a*=e,t.b*=e,t}function OH(t,e,n,i,a){t.c=e,t.d=n,t.b=i,t.a=a}function MH(t,e){return n6(t,e,t.c.b,t.c),!0}function NH(t){t.a.b=t.b,t.b.a=t.a,t.a=t.b=null}function BH(t){this.b=t,this.a=uq(this.b.a).Ed()}function PH(t,e){this.b=t,this.a=e,ju.call(this)}function FH(t,e){this.a=t,this.b=e,ju.call(this)}function jH(t,e){Vq.call(this,e,1040),this.a=t}function $H(t){return 0==t||isNaN(t)?t:t<0?-1:1}function zH(t){return _K(),CEt(t)==KJ(AEt(t))}function HH(t){return _K(),AEt(t)==KJ(CEt(t))}function UH(t,e){return KRt(t,new fS(e.a,e.b))}function VH(t){return!d6(t)&&t.c.i.c==t.d.i.c}function qH(t){var e;return e=t.n,t.a.b+e.d+e.a}function WH(t){var e;return e=t.n,t.e.b+e.d+e.a}function YH(t){var e;return e=t.n,t.e.a+e.b+e.c}function GH(t){return fGt(),new oV(0,t)}function ZH(t){return t.a?t.a:tK(t)}function KH(t){if(!t)throw $m(new Bw(null))}function XH(){XH=D,kK(),aOe=new Hf(C9t)}function JH(){JH=D,new cyt((Qv(),Fte),(tw(),Pte))}function QH(){QH=D,Tee=O5(Dee,cZt,19,256,0,1)}function tU(t,e,n,i){rgt.call(this,t,e,n,i,0,0)}function eU(t,e,n){return YG(t.b,jz(n.b,17),e)}function nU(t,e,n){return YG(t.b,jz(n.b,17),e)}function iU(t,e){return Wz(t,new OT(e.a,e.b))}function aU(t,e){return t.c<e.c?-1:t.c==e.c?0:1}function rU(t){return t.e.c.length+t.g.c.length}function oU(t){return t.e.c.length-t.g.c.length}function sU(t){return t.b.c.length-t.e.c.length}function cU(t){return jQ(),(wWt(),hAe).Hc(t.j)}function lU(t){oj(),wH.call(this,t),this.a=-1}function uU(t,e){OA.call(this,t,e),this.a=this}function dU(t,e){var n;return(n=mY(t,e)).i=2,n}function hU(t,e){return++t.j,t.Ti(e)}function fU(t,e,n){return t.a=-1,WM(t,e.g,n),t}function gU(t,e,n){Pqt(t.a,t.b,t.c,jz(e,202),n)}function pU(t,e){$it(t,null==e?null:(vG(e),e))}function bU(t,e){Bit(t,null==e?null:(vG(e),e))}function mU(t,e){Bit(t,null==e?null:(vG(e),e))}function yU(t,e,n){return new hF(fG(t).Ie(),n,e)}function vU(t,e,n,i,a,r){return GRt(t,e,n,i,a,0,r)}function wU(){wU=D,xee=O5(Ree,cZt,217,256,0,1)}function xU(){xU=D,Iee=O5(Bee,cZt,162,256,0,1)}function RU(){RU=D,Pee=O5(Fee,cZt,184,256,0,1)}function _U(){_U=D,kee=O5(Eee,cZt,172,128,0,1)}function kU(){tH(this,!1,!1,!1,!1)}function EU(t){WY(),this.a=(kK(),new Hf(yY(t)))}function CU(t){for(yY(t);t.Ob();)t.Pb(),t.Qb()}function SU(t){t.a.cd(),jz(t.a.dd(),14).gc(),hx()}function TU(t){this.c=t,this.b=this.c.d.vc().Kc()}function AU(t){this.c=t,this.a=new Gk(this.c.a)}function DU(t){this.a=new qk(t.gc()),jat(this,t)}function IU(t){tg.call(this,new b3),jat(this,t)}function LU(t,e){return t.a+=$pt(e,0,e.length),t}function OU(t,e){return u1(e,t.c.length),t.c[e]}function MU(t,e){return u1(e,t.a.length),t.a[e]}function NU(t,e){fE(),j5.call(this,t),this.a=e}function BU(t,e){return xbt(ift(xbt(t.a).a,e.a))}function PU(t,e){return vG(t),Ort(t,(vG(e),e))}function FU(t,e){return vG(e),Ort(e,(vG(t),t))}function jU(t,e){return DY(e,0,$U(e[0],xbt(1)))}function $U(t,e){return BU(jz(t,162),jz(e,162))}function zU(t){return t.c-jz(OU(t.a,t.b),287).b}function HU(t){return t.q?t.q:(kK(),kK(),lne)}function UU(t){return t.e.Hd().gc()*t.c.Hd().gc()}function VU(t,e,n){return xL(e.d[t.g],n.d[t.g])}function qU(t,e,n){return xL(t.d[e.p],t.d[n.p])}function WU(t,e,n){return xL(t.d[e.p],t.d[n.p])}function YU(t,e,n){return xL(t.d[e.p],t.d[n.p])}function GU(t,e,n){return xL(t.d[e.p],t.d[n.p])}function ZU(t,e,n){return i.Math.min(n/t,1/e)}function KU(t,e){return t?0:i.Math.max(0,e-1)}function XU(t,e){var n;for(n=0;n<e;++n)t[n]=-1}function JU(t){var e;return(e=o_t(t))?JU(e):t}function QU(t,e){return null==t.a&&fPt(t),t.a[e]}function tV(t){return t.c?t.c.f:t.e.b}function eV(t){return t.c?t.c.g:t.e.a}function nV(t){pet.call(this,t.gc()),pY(this,t)}function iV(t,e){lL(),wm.call(this,e),this.a=t}function aV(t,e,n){this.a=t,DO.call(this,e,n,2)}function rV(t,e,n,i){nH(this,t,e,n,i)}function oV(t,e){fGt(),Am.call(this,t),this.a=e}function sV(t){this.b=new Zk,this.a=t,this.c=-1}function cV(){this.d=new OT(0,0),this.e=new Ny}function lV(t){XM.call(this,0,0),this.a=t,this.b=0}function uV(t){this.a=t,this.c=new Om,ict(this)}function dV(t){if(t.e.c!=t.b)throw $m(new by)}function hV(t){if(t.c.e!=t.a)throw $m(new by)}function fV(t){return KD(t)?0|t:R_(t)}function gV(t,e){return fGt(),new VW(t,e)}function pV(t,e){return null==t?null==e:mF(t,e)}function bV(t,e){return null==t?null==e:ybt(t,e)}function mV(t,e,n){return sat(t.a,e),xW(t,e.g,n)}function yV(t,e,n){nut(0,e,t.length),U8(t,0,e,n)}function vV(t,e,n){IQ(e,t.c.length),_C(t.c,e,n)}function wV(t,e,n){var i;for(i=0;i<e;++i)t[i]=n}function xV(t,e){var n;return Ict(n=Qht(t),e),n}function RV(t,e){return!t&&(t=[]),t[t.length]=e,t}function _V(t,e){return void 0!==t.a.get(e)}function kV(t,e){return Wit(new tt,new rg(t),e)}function EV(t){return null==t?kne:new bw(vG(t))}function CV(t,e){return iO(e,22)&&kM(t,jz(e,22))}function SV(t,e){return iO(e,22)&&Iet(t,jz(e,22))}function TV(t){return zLt(t,26)*iXt+zLt(t,27)*aXt}function AV(t){return Array.isArray(t)&&t.im===A}function DV(t){t.b?DV(t.b):t.d.dc()&&t.f.c.Bc(t.e)}function IV(t,e){VP(t.c,e),t.b.c+=e.a,t.b.d+=e.b}function LV(t,e){IV(t,qP(new OT(e.a,e.b),t.c))}function OV(t,e){this.b=new Zk,this.a=t,this.c=e}function MV(){this.b=new Ae,this.c=new uX(this)}function NV(){this.d=new yt,this.e=new lX(this)}function BV(){BQ(),this.f=new Zk,this.e=new Zk}function PV(){jQ(),this.k=new Om,this.d=new Ny}function FV(){FV=D,dDe=new qI((cGt(),aSe),0)}function jV(){jV=D,Hte=new lV(O5(Dte,zGt,1,0,5,1))}function $V(t,e,n){GIt(n,t,1),Wz(e,new iS(n,t))}function zV(t,e,n){jxt(n,t,1),Wz(e,new dS(n,t))}function HV(t,e,n){return RW(t,new OC(e.a,n.a))}function UV(t,e,n){return-xL(t.f[e.p],t.f[n.p])}function VV(t,e,n){var i;t&&((i=t.i).c=e,i.b=n)}function qV(t,e,n){var i;t&&((i=t.i).d=e,i.a=n)}function WV(t,e,n){return t.a=-1,WM(t,e.g+1,n),t}function YV(t,e,n){return n=_jt(t,jz(e,49),7,n)}function GV(t,e,n){return n=_jt(t,jz(e,49),3,n)}function ZV(t,e,n){this.a=t,IO.call(this,e,n,22)}function KV(t,e,n){this.a=t,IO.call(this,e,n,14)}function XV(t,e,n,i){lL(),L0.call(this,t,e,n,i)}function JV(t,e,n,i){lL(),L0.call(this,t,e,n,i)}function QV(t,e){e.Bb&l7t&&!t.a.o&&(t.a.o=e)}function tq(t){return null!=t&&MW(t)&&t.im!==A}function eq(t){return!Array.isArray(t)&&t.im===A}function nq(t){return iO(t,15)?jz(t,15).Yc():t.Kc()}function iq(t){return t.Qc(O5(Dte,zGt,1,t.gc(),5,1))}function aq(t,e){return dbt(F9(t,e))?e.Qh():null}function rq(t){t?jvt(t,(Dk(),$ee)):Dk()}function oq(t){this.a=(jV(),Hte),this.d=jz(yY(t),47)}function sq(t,e,n,i){this.a=t,W7.call(this,t,e,n,i)}function cq(t){tC(),this.a=0,this.b=t-1,this.c=1}function lq(t){YL(this),this.g=t,wK(this),this._d()}function uq(t){return t.c?t.c:t.c=t.Id()}function dq(t){return t.d?t.d:t.d=t.Jd()}function hq(t){return t.c||(t.c=t.Dd())}function fq(t){return t.f||(t.f=t.Dc())}function gq(t){return t.i||(t.i=t.bc())}function pq(t){return fGt(),new bJ(10,t,0)}function bq(t){return KD(t)?""+t:UBt(t)}function mq(t){if(t.e.j!=t.d)throw $m(new by)}function yq(t,e){return oot(dCt(KD(t)?Cot(t):t,e))}function vq(t,e){return oot(xIt(KD(t)?Cot(t):t,e))}function wq(t,e){return oot(XCt(KD(t)?Cot(t):t,e))}function xq(t,e){return dP((vG(t),t),(vG(e),e))}function Rq(t,e){return Cht((vG(t),t),(vG(e),e))}function _q(t,e){return yY(e),t.a.Ad(e)&&!t.b.Ad(e)}function kq(t,e){return _L(t.l&e.l,t.m&e.m,t.h&e.h)}function Eq(t,e){return _L(t.l|e.l,t.m|e.m,t.h|e.h)}function Cq(t,e){return _L(t.l^e.l,t.m^e.m,t.h^e.h)}function Sq(t,e){return Idt(t,(vG(e),new ng(e)))}function Tq(t,e){return Idt(t,(vG(e),new ig(e)))}function Aq(t){return prt(),0!=jz(t,11).e.c.length}function Dq(t){return prt(),0!=jz(t,11).g.c.length}function Iq(t,e){return Tat(),Cht(e.a.o.a,t.a.o.a)}function Lq(t,e,n){return _Wt(t,jz(e,11),jz(n,11))}function Oq(t){return t.e?M7(t.e):null}function Mq(t){t.d||(t.d=t.b.Kc(),t.c=t.b.gc())}function Nq(t,e,n){t.a.Mb(n)&&(t.b=!0,e.td(n))}function Bq(t,e){if(t<0||t>=e)throw $m(new ky)}function Pq(t,e,n){return DY(e,0,$U(e[0],n[0])),e}function Fq(t,e,n){e.Ye(n,Hw(_B(NY(t.b,n)))*t.a)}function jq(t,e,n){return xBt(),Nrt(t,e)&&Nrt(t,n)}function $q(t){return dAt(),!t.Hc(eAe)&&!t.Hc(iAe)}function zq(t){return new OT(t.c+t.b/2,t.d+t.a/2)}function Hq(t,e){return e.kh()?tdt(t.b,jz(e,49)):e}function Uq(t,e){this.e=t,this.d=64&e?e|lZt:e}function Vq(t,e){this.c=0,this.d=t,this.b=64|e|lZt}function qq(t){this.b=new K7(11),this.a=(EK(),t)}function Wq(t){this.b=null,this.a=(EK(),t||hne)}function Yq(t){this.a=iyt(t.a),this.b=new QF(t.b)}function Gq(t){this.b=t,iN.call(this,t),_O(this)}function Zq(t){this.b=t,rN.call(this,t),kO(this)}function Kq(t,e,n){this.a=t,tF.call(this,e,n,5,6)}function Xq(t,e,n,i){this.b=t,DO.call(this,e,n,i)}function Jq(t,e,n,i,a){v8.call(this,t,e,n,i,a,-1)}function Qq(t,e,n,i,a){w8.call(this,t,e,n,i,a,-1)}function tW(t,e,n,i){DO.call(this,t,e,n),this.b=i}function eW(t,e,n,i){yH.call(this,t,e,n),this.b=i}function nW(t){LA.call(this,t,!1),this.a=!1}function iW(t,e){this.b=t,sh.call(this,t.b),this.a=e}function aW(t,e){WY(),wk.call(this,t,cdt(new Kw(e)))}function rW(t,e){return fGt(),new iG(t,e,0)}function oW(t,e){return fGt(),new iG(6,t,e)}function sW(t,e){return mF(t.substr(0,e.length),e)}function cW(t,e){return qA(e)?tX(t,e):!!AX(t.f,e)}function lW(t,e){for(vG(e);t.Ob();)e.td(t.Pb())}function uW(t,e,n){ABt(),this.e=t,this.d=e,this.a=n}function dW(t,e,n,i){var a;(a=t.i).i=e,a.a=n,a.b=i}function hW(t){var e;for(e=t;e.f;)e=e.f;return e}function fW(t){var e;return EN(null!=(e=Rct(t))),e}function gW(t){var e;return EN(null!=(e=yht(t))),e}function pW(t,e){var n;return h7(e,n=t.a.gc()),n-e}function bW(t,e){var n;for(n=0;n<e;++n)t[n]=!1}function mW(t,e,n,i){var a;for(a=e;a<n;++a)t[a]=i}function yW(t,e,n,i){nut(e,n,t.length),mW(t,e,n,i)}function vW(t,e,n){Bq(n,t.a.c.length),i6(t.a,n,e)}function wW(t,e,n){this.c=t,this.a=e,kK(),this.b=n}function xW(t,e,n){var i;return i=t.b[e],t.b[e]=n,i}function RW(t,e){return null==t.a.zc(e,t)}function _W(t){if(!t)throw $m(new yy);return t.d}function kW(t,e){if(null==t)throw $m(new $w(e))}function EW(t,e){return!!e&&jat(t,e)}function CW(t,e,n){return eut(t,e.g,n),sat(t.c,e),t}function SW(t){return kqt(t,(jdt(),FSe)),t.d=!0,t}function TW(t){return!t.j&&yf(t,jFt(t.g,t.b)),t.j}function AW(t){_N(-1!=t.b),s7(t.c,t.a=t.b),t.b=-1}function DW(t){t.f=new tI(t),t.g=new eI(t),oX(t)}function IW(t){return new NU(null,zW(t,t.length))}function LW(t){return new oq(new WO(t.a.length,t.a))}function OW(t){return _L(~t.l&EKt,~t.m&EKt,~t.h&CKt)}function MW(t){return typeof t===DGt||typeof t===MGt}function NW(t){return t==BKt?M9t:t==PKt?"-INF":""+t}function BW(t){return t==BKt?M9t:t==PKt?"-INF":""+t}function PW(t,e){return t>0?i.Math.log(t/e):-100}function FW(t,e){return Gut(t,e)<0?-1:Gut(t,e)>0?1:0}function jW(t,e,n){return EHt(t,jz(e,46),jz(n,167))}function $W(t,e){return jz(hq(uq(t.a)).Xb(e),42).cd()}function zW(t,e){return bet(e,t.length),new jH(t,e)}function HW(t,e){this.d=t,AO.call(this,t),this.e=e}function UW(t){this.d=(vG(t),t),this.a=0,this.c=hZt}function VW(t,e){Am.call(this,1),this.a=t,this.b=e}function qW(t,e){return t.c?qW(t.c,e):Wz(t.b,e),t}function WW(t,e,n){var i;return i=ftt(t,e),n3(t,e,n),i}function YW(t,e){return m9(t.slice(0,e),t)}function GW(t,e,n){var i;for(i=0;i<e;++i)DY(t,i,n)}function ZW(t,e,n,i,a){for(;e<n;)i[a++]=lZ(t,e++)}function KW(t,e){return Cht(t.c.c+t.c.b,e.c.c+e.c.b)}function XW(t,e){return null==kct(t.a,e,(cM(),mee))}function JW(t,e){n6(t.d,e,t.b.b,t.b),++t.a,t.c=null}function QW(t,e){KL(t,iO(e,153)?e:jz(e,1937).gl())}function tY(t,e){Kk(DZ(t.Oc(),new Xa),new Sp(e))}function eY(t,e,n,i,a){O_t(t,jz(c7(e.k,n),15),n,i,a)}function nY(t){t.s=NaN,t.c=NaN,JDt(t,t.e),JDt(t,t.j)}function iY(t){t.a=null,t.e=null,DW(t.b),t.d=0,++t.c}function aY(t){return i.Math.abs(t.d.e-t.e.e)-t.a}function rY(t,e,n){return jz(t.c._c(e,jz(n,133)),42)}function oY(){return nw(),Cst(Hx(Yte,1),IZt,538,0,[qte])}function sY(t){return _K(),KJ(CEt(t))==KJ(AEt(t))}function cY(t){DP.call(this),this.a=t,Wz(t.a,this)}function lY(t,e){this.d=Eht(t),this.c=e,this.a=.5*e}function uY(){b3.call(this),this.a=!0,this.b=!0}function dY(t){return(null==t.i&&H$t(t),t.i).length}function hY(t){return iO(t,99)&&0!=(jz(t,18).Bb&l7t)}function fY(t,e){++t.j,ckt(t,t.i,e),VAt(t,jz(e,332))}function gY(t,e){return e=t.nk(null,e),Ikt(t,null,e)}function pY(t,e){return t.hi()&&(e=JJ(t,e)),t.Wh(e)}function bY(t,e,n){var i;return Znt(n,i=mY(t,e)),i}function mY(t,e){var n;return(n=new bct).j=t,n.d=e,n}function yY(t){if(null==t)throw $m(new gy);return t}function vY(t){return t.j||(t.j=new dh(t))}function wY(t){return t.f||(t.f=new VO(t))}function xY(t){return t.k||(t.k=new Gd(t))}function RY(t){return t.k||(t.k=new Gd(t))}function _Y(t){return t.g||(t.g=new Yd(t))}function kY(t){return t.i||(t.i=new Xd(t))}function EY(t){return t.d||(t.d=new th(t))}function CY(t){return yY(t),iO(t,475)?jz(t,475):$ft(t)}function SY(t){return iO(t,607)?t:new dJ(t)}function TY(t,e){return h2(e,t.c.b.c.gc()),new sk(t,e)}function AY(t,e,n){return fGt(),new R0(t,e,n)}function DY(t,e,n){return kN(null==n||Zjt(t,n)),t[e]=n}function IY(t,e){var n;return h2(e,n=t.a.gc()),n-1-e}function LY(t,e){return t.a+=String.fromCharCode(e),t}function OY(t,e){return t.a+=String.fromCharCode(e),t}function MY(t,e){for(vG(e);t.c<t.d;)t.ze(e,t.c++)}function NY(t,e){return qA(e)?kJ(t,e):zA(AX(t.f,e))}function BY(t,e){return _K(),t==CEt(e)?AEt(e):CEt(e)}function PY(t,e){JY(t,new HY(null!=e.f?e.f:""+e.g))}function FY(t,e){JY(t,new HY(null!=e.f?e.f:""+e.g))}function jY(t){this.b=new Lm,this.a=new Lm,this.c=t}function $Y(t){this.c=new HR,this.a=new Lm,this.b=t}function zY(t){DP.call(this),this.a=new HR,this.c=t}function HY(t){if(null==t)throw $m(new gy);this.a=t}function UY(t){_y(),this.b=new Lm,this.a=t,mVt(this,t)}function VY(t){this.c=t,this.a=new Zk,this.b=new Zk}function qY(){qY=D,see=new Rh(!1),cee=new Rh(!0)}function WY(){WY=D,sj(),jte=new kX((kK(),kK(),cne))}function YY(){YY=D,sj(),Gte=new bC((kK(),kK(),une))}function GY(){GY=D,JIe=UAt(),pGt(),tLe&&Bxt()}function ZY(t,e){return Tat(),jz(oZ(t,e.d),15).Fc(e)}function KY(t,e,n,i){return 0==n||(n-i)/n<t.e||e>=t.g}function XY(t,e,n){return OPt(t,vat(t,e,n))}function JY(t,e){var n;ftt(t,n=t.a.length),n3(t,n,e)}function QY(t,e){console[t].call(console,e)}function tG(t,e){var n;++t.j,n=t.Vi(),t.Ii(t.oi(n,e))}function eG(t,e,n){jz(e.b,65),Aet(e.a,new xz(t,n,e))}function nG(t,e,n){wm.call(this,e),this.a=t,this.b=n}function iG(t,e,n){Am.call(this,t),this.a=e,this.b=n}function aG(t,e,n){this.a=t,vm.call(this,e),this.b=n}function rG(t,e,n){this.a=t,$2.call(this,8,e,null,n)}function oG(t){this.a=(vG(F8t),F8t),this.b=t,new Lv}function sG(t){this.c=t,this.b=this.c.a,this.a=this.c.e}function cG(t){this.c=t,this.b=t.a.d.a,dB(t.a.e,this)}function lG(t){_N(-1!=t.c),t.d.$c(t.c),t.b=t.c,t.c=-1}function uG(t){return i.Math.sqrt(t.a*t.a+t.b*t.b)}function dG(t,e){return Bq(e,t.a.c.length),OU(t.a,e)}function hG(t,e){return HA(t)===HA(e)||null!=t&&Odt(t,e)}function fG(t){return 0>=t?new Yk:Yit(t-1)}function gG(t){return!!_Me&&tX(_Me,t)}function pG(t){return t?t.dc():!t.Kc().Ob()}function bG(t){return!t.a&&t.c?t.c.b:t.a}function mG(t){return!t.a&&(t.a=new DO(DDe,t,4)),t.a}function yG(t){return!t.d&&(t.d=new DO(WIe,t,1)),t.d}function vG(t){if(null==t)throw $m(new gy);return t}function wG(t){t.c?t.c.He():(t.d=!0,ZMt(t))}function xG(t){t.c?xG(t.c):(Zht(t),t.d=!0)}function RG(t){RZ(t.a),t.b=O5(Dte,zGt,1,t.b.length,5,1)}function _G(t,e){return xL(e.j.c.length,t.j.c.length)}function kG(t,e){t.c<0||t.b.b<t.c?lD(t.b,e):t.a._e(e)}function EG(t,e){var n;(n=t.Yg(e))>=0?t.Bh(n):aAt(t,e)}function CG(t){return t.c.i.c==t.d.i.c}function SG(t){if(4!=t.p)throw $m(new fy);return t.e}function TG(t){if(3!=t.p)throw $m(new fy);return t.e}function AG(t){if(6!=t.p)throw $m(new fy);return t.f}function DG(t){if(6!=t.p)throw $m(new fy);return t.k}function IG(t){if(3!=t.p)throw $m(new fy);return t.j}function LG(t){if(4!=t.p)throw $m(new fy);return t.j}function OG(t){return!t.b&&(t.b=new Rm(new Ov)),t.b}function MG(t){return-2==t.c&&gf(t,oEt(t.g,t.b)),t.c}function NG(t,e){var n;return(n=mY("",t)).n=e,n.i=1,n}function BG(t,e){IV(jz(e.b,65),t),Aet(e.a,new Ag(t))}function PG(t,e){l8((!t.a&&(t.a=new oP(t,t)),t.a),e)}function FG(t,e){this.b=t,HW.call(this,t,e),_O(this)}function jG(t,e){this.b=t,NF.call(this,t,e),kO(this)}function $G(t,e,n,i){bk.call(this,t,e),this.d=n,this.a=i}function zG(t,e,n,i){bk.call(this,t,n),this.a=e,this.f=i}function HG(t,e){WL.call(this,Git(yY(t),yY(e))),this.a=e}function UG(){gEt.call(this,E9t,(n_(),hOe)),YUt(this)}function VG(){gEt.call(this,G8t,(e_(),XIe)),AHt(this)}function qG(){gk.call(this,"DELAUNAY_TRIANGULATION",0)}function WG(t){return String.fromCharCode.apply(null,t)}function YG(t,e,n){return qA(e)?mQ(t,e,n):xTt(t.f,e,n)}function GG(t){return kK(),t?t.ve():(EK(),EK(),gne)}function ZG(t,e,n){return Ost(),n.pg(t,jz(e.cd(),146))}function KG(t,e){return JH(),new cyt(new nM(t),new eM(e))}function XG(t){return dit(t,OZt),Qtt(ift(ift(5,t),t/10|0))}function JG(){JG=D,$te=new cw(Cst(Hx(zte,1),wZt,42,0,[]))}function QG(t){return!t.d&&(t.d=new $f(t.c.Cc())),t.d}function tZ(t){return!t.a&&(t.a=new Ix(t.c.vc())),t.a}function eZ(t){return!t.b&&(t.b=new Ax(t.c.ec())),t.b}function nZ(t,e){for(;e-- >0;)t=t<<1|(t<0?1:0);return t}function iZ(t,e){return HA(t)===HA(e)||null!=t&&Odt(t,e)}function aZ(t,e){return cM(),jz(e.b,19).a<t}function rZ(t,e){return cM(),jz(e.a,19).a<t}function oZ(t,e){return CV(t.a,e)?t.b[jz(e,22).g]:null}function sZ(t,e,n,i){t.a=lN(t.a,0,e)+""+i+JA(t.a,n)}function cZ(t,e){t.u.Hc((dAt(),eAe))&&CAt(t,e),U7(t,e)}function lZ(t,e){return d1(e,t.length),t.charCodeAt(e)}function uZ(){fw.call(this,"There is no more element.")}function dZ(t){this.d=t,this.a=this.d.b,this.b=this.d.c}function hZ(t){t.b=!1,t.c=!1,t.d=!1,t.a=!1}function fZ(t,e,n,i){return Brt(t,e,n,!1),Jdt(t,i),t}function gZ(t){return t.j.c=O5(Dte,zGt,1,0,5,1),t.a=-1,t}function pZ(t){return!t.c&&(t.c=new cF(NDe,t,5,8)),t.c}function bZ(t){return!t.b&&(t.b=new cF(NDe,t,4,7)),t.b}function mZ(t){return!t.n&&(t.n=new tW(HDe,t,1,7)),t.n}function yZ(t){return!t.c&&(t.c=new tW(VDe,t,9,9)),t.c}function vZ(t){return t.e==S9t&&bf(t,_bt(t.g,t.b)),t.e}function wZ(t){return t.f==S9t&&mf(t,bxt(t.g,t.b)),t.f}function xZ(t){var e;return!(e=t.b)&&(t.b=e=new Zd(t)),e}function RZ(t){var e;for(e=t.Kc();e.Ob();)e.Pb(),e.Qb()}function _Z(t){if(Vft(t.d),t.d.d!=t.c)throw $m(new by)}function kZ(t,e){this.b=t,this.c=e,this.a=new Gk(this.b)}function EZ(t,e,n){this.a=WZt,this.d=t,this.b=e,this.c=n}function CZ(t,e){this.d=(vG(t),t),this.a=16449,this.c=e}function SZ(t,e){Xht(t,Hw(Bnt(e,"x")),Hw(Bnt(e,"y")))}function TZ(t,e){Xht(t,Hw(Bnt(e,"x")),Hw(Bnt(e,"y")))}function AZ(t,e){return Zht(t),new NU(t,new G8(e,t.a))}function DZ(t,e){return Zht(t),new NU(t,new _7(e,t.a))}function IZ(t,e){return Zht(t),new AB(t,new x7(e,t.a))}function LZ(t,e){return Zht(t),new DB(t,new R7(e,t.a))}function OZ(t,e){return new pX(jz(yY(t),62),jz(yY(e),62))}function MZ(t,e){return wE(),Cht((vG(t),t),(vG(e),e))}function NZ(){return hE(),Cst(Hx(Ere,1),IZt,481,0,[ire])}function BZ(){return CE(),Cst(Hx(G_e,1),IZt,482,0,[W_e])}function PZ(){return SE(),Cst(Hx(X_e,1),IZt,551,0,[Z_e])}function FZ(){return TE(),Cst(Hx(qke,1),IZt,530,0,[Uke])}function jZ(t){this.a=new Lm,this.e=O5(TMe,cZt,48,t,0,2)}function $Z(t,e,n,i){this.a=t,this.e=e,this.d=n,this.c=i}function zZ(t,e,n,i){this.a=t,this.c=e,this.b=n,this.d=i}function HZ(t,e,n,i){this.c=t,this.b=e,this.a=n,this.d=i}function UZ(t,e,n,i){this.c=t,this.b=e,this.d=n,this.a=i}function VZ(t,e,n,i){this.c=t,this.d=e,this.b=n,this.a=i}function qZ(t,e,n,i){this.a=t,this.d=e,this.c=n,this.b=i}function WZ(t,e,n,i){gk.call(this,t,e),this.a=n,this.b=i}function YZ(t,e,n,i){this.a=t,this.c=e,this.d=n,this.b=i}function GZ(t,e,n){RHt(t.a,n),Qot(n),DIt(t.b,n),iUt(e,n)}function ZZ(t,e,n){var i;return i=IWt(t),e.Kh(n,i)}function KZ(t,e){var n,i;return(n=t/e)>(i=CJ(n))&&++i,i}function XZ(t){var e;return ant(e=new Bm,t),e}function JZ(t){var e;return NEt(e=new Bm,t),e}function QZ(t,e){return Prt(e,NY(t.f,e)),null}function tK(t){return Kit(t)||null}function eK(t){return!t.b&&(t.b=new tW(BDe,t,12,3)),t.b}function nK(t){return null!=t&&Ok(vIe,t.toLowerCase())}function iK(t,e){return Cht(eV(t)*tV(t),eV(e)*tV(e))}function aK(t,e){return Cht(eV(t)*tV(t),eV(e)*tV(e))}function rK(t,e){return Cht(t.d.c+t.d.b/2,e.d.c+e.d.b/2)}function oK(t,e){return Cht(t.g.c+t.g.b/2,e.g.c+e.g.b/2)}function sK(t,e,n){n.a?Snt(t,e.b-t.f/2):Cnt(t,e.a-t.g/2)}function cK(t,e,n,i){this.a=t,this.b=e,this.c=n,this.d=i}function lK(t,e,n,i){this.a=t,this.b=e,this.c=n,this.d=i}function uK(t,e,n,i){this.e=t,this.a=e,this.c=n,this.d=i}function dK(t,e,n,i){this.a=t,this.c=e,this.d=n,this.b=i}function hK(t,e,n,i){lL(),t7.call(this,e,n,i),this.a=t}function fK(t,e,n,i){lL(),t7.call(this,e,n,i),this.a=t}function gK(t,e){this.a=t,TB.call(this,t,jz(t.d,15).Zc(e))}function pK(t){this.f=t,this.c=this.f.e,t.f>0&&oRt(this)}function bK(t,e,n,i){this.b=t,this.c=i,bD.call(this,e,n)}function mK(t){return EN(t.b<t.d.gc()),t.d.Xb(t.c=t.b++)}function yK(t){t.a.a=t.c,t.c.b=t.a,t.a.b=t.c.a=null,t.b=0}function vK(t,e){return t.b=e.b,t.c=e.c,t.d=e.d,t.a=e.a,t}function wK(t){return t.n&&(t.e!==jZt&&t._d(),t.j=null),t}function xK(t){return KH(null==t||MW(t)&&t.im!==A),t}function RK(t){this.b=new Lm,pst(this.b,this.b),this.a=t}function _K(){_K=D,kre=new Lm,_re=new Om,Rre=new Lm}function kK(){kK=D,cne=new C,lne=new T,une=new E}function EK(){EK=D,hne=new P,fne=new P,gne=new F}function CK(){CK=D,lie=new pt,die=new NV,uie=new bt}function SK(){256==aie&&(eie=nie,nie=new a,aie=0),++aie}function TK(t){return t.f||(t.f=new pk(t,t.c))}function AK(t){return ZAt(t)&&zw(RB(JIt(t,(zYt(),fbe))))}function DK(t,e){return XAt(t,jz(yEt(e,(zYt(),Wbe)),19),e)}function IK(t,e){return _dt(t.j,e.s,e.c)+_dt(e.e,t.s,t.c)}function LK(t,e){t.e&&!t.e.a&&(Fm(t.e,e),LK(t.e,e))}function OK(t,e){t.d&&!t.d.a&&(Fm(t.d,e),OK(t.d,e))}function MK(t,e){return-Cht(eV(t)*tV(t),eV(e)*tV(e))}function NK(t){return jz(t.cd(),146).tg()+":"+$ft(t.dd())}function BK(t){var e;Hj(),(e=jz(t.g,10)).n.a=t.d.c+e.d.b}function PK(t,e,n){return _E(),Mft(jz(NY(t.e,e),522),n)}function FK(t,e){return tlt(t),tlt(e),Ew(jz(t,22),jz(e,22))}function jK(t,e,n){t.i=0,t.e=0,e!=n&&Wct(t,e,n)}function $K(t,e,n){t.i=0,t.e=0,e!=n&&Yct(t,e,n)}function zK(t,e,n){net(t,e,new _h(qF(n)))}function HK(t,e,n,i,a,r){w8.call(this,t,e,n,i,a,r?-2:-1)}function UK(t,e,n,i){IA.call(this,e,n),this.b=t,this.a=i}function VK(t,e){new Zk,this.a=new vv,this.b=t,this.c=e}function qK(t,e){return jz(yEt(t,(lGt(),ihe)),15).Fc(e),e}function WK(t,e){if(null==t)throw $m(new $w(e));return t}function YK(t){return!t.q&&(t.q=new tW(YIe,t,11,10)),t.q}function GK(t){return!t.s&&(t.s=new tW(PIe,t,21,17)),t.s}function ZK(t){return!t.a&&(t.a=new tW(UDe,t,10,11)),t.a}function KK(t){return iO(t,14)?new DU(jz(t,14)):zz(t.Kc())}function XK(t){return new zO(t,t.e.Hd().gc()*t.c.Hd().gc())}function JK(t){return new HO(t,t.e.Hd().gc()*t.c.Hd().gc())}function QK(t){return t&&t.hashCode?t.hashCode():EM(t)}function tX(t,e){return null==e?!!AX(t.f,null):_V(t.g,e)}function eX(t){return yY(t),evt(new oq(XO(t.a.Kc(),new u)))}function nX(t){return kK(),iO(t,54)?new Dx(t):new dM(t)}function iX(t,e,n){return!!t.f&&t.f.Ne(e,n)}function aX(t,e){return t.a=lN(t.a,0,e)+""+JA(t.a,e+1),t}function rX(t,e){var n;return(n=tO(t.a,e))&&(e.d=null),n}function oX(t){var e,n;e=0|(n=t).$modCount,n.$modCount=e+1}function sX(t){this.b=t,this.c=t,t.e=null,t.c=null,this.a=1}function cX(t){this.b=t,this.a=new f_(jz(yY(new te),62))}function lX(t){this.c=t,this.b=new f_(jz(yY(new mt),62))}function uX(t){this.c=t,this.b=new f_(jz(yY(new Te),62))}function dX(){this.a=new Gy,this.b=new cv,this.d=new Ne}function hX(){this.a=new vv,this.b=(dit(3,DZt),new K7(3))}function fX(){this.b=new Ny,this.d=new Zk,this.e=new ov}function gX(t){this.c=t.c,this.d=t.d,this.b=t.b,this.a=t.a}function pX(t,e){Uv.call(this,new Wq(t)),this.a=t,this.b=e}function bX(){nCt(this,new Md),this.wb=(GY(),JIe),e_()}function mX(t){Akt(t,"No crossing minimization",1),zCt(t)}function yX(t){Mx(),i.setTimeout((function(){throw t}),0)}function vX(t){return t.u||(E6(t),t.u=new rP(t,t)),t.u}function wX(t){return jz(vot(t,16),26)||t.zh()}function xX(t,e){return iO(e,146)&&mF(t.b,jz(e,146).tg())}function RX(t,e){return t.a?e.Wg().Kc():jz(e.Wg(),69).Zh()}function _X(t){return t.k==(oCt(),Sse)&&IN(t,(lGt(),Ude))}function kX(t){this.a=(kK(),iO(t,54)?new Dx(t):new dM(t))}function EX(){var t,e;EX=D,e=!Npt(),t=new p,eee=e?new _:t}function CX(t,e){var n;return n=JR(t.gm),null==e?n:n+": "+e}function SX(t,e){var n;return w3(n=t.b.Qc(e),t.b.gc()),n}function TX(t,e){if(null==t)throw $m(new $w(e));return t}function AX(t,e){return lut(t,e,pQ(t,null==e?0:t.b.se(e)))}function DX(t,e,n){return n>=0&&mF(t.substr(n,e.length),e)}function IX(t,e,n,i,a,r,o){return new d3(t.e,e,n,i,a,r,o)}function LX(t,e,n,i,a,r){this.a=t,wit.call(this,e,n,i,a,r)}function OX(t,e,n,i,a,r){this.a=t,wit.call(this,e,n,i,a,r)}function MX(t,e){this.g=t,this.d=Cst(Hx(Rse,1),r1t,10,0,[e])}function NX(t,e){this.e=t,this.a=Dte,this.b=DPt(e),this.c=e}function BX(t,e){LP.call(this),Met(this),this.a=t,this.c=e}function PX(t,e,n,i){DY(t.c[e.g],n.g,i),DY(t.c[n.g],e.g,i)}function FX(t,e,n,i){DY(t.c[e.g],e.g,n),DY(t.b[e.g],e.g,i)}function jX(){return A7(),Cst(Hx(tve,1),IZt,376,0,[Jye,Xye])}function $X(){return g9(),Cst(Hx(que,1),IZt,479,0,[Uue,Hue])}function zX(){return Ptt(),Cst(Hx(Tue,1),IZt,419,0,[Eue,Cue])}function HX(){return Y5(),Cst(Hx(sue,1),IZt,422,0,[aue,rue])}function UX(){return U2(),Cst(Hx(Phe,1),IZt,420,0,[Dde,Ide])}function VX(){return V9(),Cst(Hx($ye,1),IZt,421,0,[Pye,Fye])}function qX(){return G3(),Cst(Hx(Yve,1),IZt,523,0,[zve,$ve])}function WX(){return T7(),Cst(Hx(Iwe,1),IZt,520,0,[kwe,_we])}function YX(){return gJ(),Cst(Hx(nwe,1),IZt,516,0,[twe,Qve])}function GX(){return oQ(),Cst(Hx(Rwe,1),IZt,515,0,[iwe,awe])}function ZX(){return fJ(),Cst(Hx(Nwe,1),IZt,455,0,[Lwe,Owe])}function KX(){return j0(),Cst(Hx(Gxe,1),IZt,425,0,[zxe,$xe])}function XX(){return sQ(),Cst(Hx(jxe,1),IZt,480,0,[Bxe,Pxe])}function JX(){return Cat(),Cst(Hx(Jxe,1),IZt,495,0,[Zxe,Kxe])}function QX(){return M8(),Cst(Hx(sRe,1),IZt,426,0,[aRe,rRe])}function tJ(){return Lst(),Cst(Hx(Zke,1),IZt,429,0,[Yke,Wke])}function eJ(){return D7(),Cst(Hx(eke,1),IZt,430,0,[Q_e,J_e])}function nJ(){return lmt(),Cst(Hx(bie,1),IZt,428,0,[gie,fie])}function iJ(){return Ntt(),Cst(Hx(Sie,1),IZt,427,0,[mie,yie])}function aJ(){return Btt(),Cst(Hx(Soe,1),IZt,424,0,[Nre,Bre])}function rJ(){return Eat(),Cst(Hx(Wse,1),IZt,511,0,[Hse,zse])}function oJ(t,e,n,i){return n>=0?t.jh(e,n,i):t.Sg(null,n,i)}function sJ(t){return 0==t.b.b?t.a.$e():fH(t.b)}function cJ(t){if(5!=t.p)throw $m(new fy);return fV(t.f)}function lJ(t){if(5!=t.p)throw $m(new fy);return fV(t.k)}function uJ(t){return HA(t.a)===HA((frt(),CLe))&&BUt(t),t.a}function dJ(t){this.a=jz(yY(t),271),this.b=(kK(),new fM(t))}function hJ(t,e){Kh(this,new OT(t.a,t.b)),Xh(this,Uz(e))}function fJ(){fJ=D,Lwe=new oT(aJt,0),Owe=new oT(rJt,1)}function gJ(){gJ=D,twe=new iT(rJt,0),Qve=new iT(aJt,1)}function pJ(){aw.call(this,new qk(tet(12))),aM(!0),this.a=2}function bJ(t,e,n){fGt(),Am.call(this,t),this.b=e,this.a=n}function mJ(t,e,n){lL(),wm.call(this,e),this.a=t,this.b=n}function yJ(t){LP.call(this),Met(this),this.a=t,this.c=!0}function vJ(t){var e;e=t.c.d.b,t.b=e,t.a=t.c.d,e.a=t.c.d.b=t}function wJ(t){bit(t.a),NI(t.a),tgt(new Eg(t.a))}function xJ(t,e){sPt(t,!0),Aet(t.e.wf(),new Dj(t,!0,e))}function RJ(t,e){return i3(e),Knt(t,O5(TMe,lKt,25,e,15,1),e)}function _J(t,e){return _K(),t==KJ(CEt(e))||t==KJ(AEt(e))}function kJ(t,e){return null==e?zA(AX(t.f,null)):cC(t.g,e)}function EJ(t){return 0==t.b?null:(EN(0!=t.b),Det(t,t.a.a))}function CJ(t){return 0|Math.max(Math.min(t,NGt),-2147483648)}function SJ(t,e){return Jte[t.charCodeAt(0)]??t}function TJ(t,e){return WK(t,"set1"),WK(e,"set2"),new xk(t,e)}function AJ(t,e){return VP(zN(Qet(t.f,e)),t.f.d)}function DJ(t,e){var n;return KVt(t,e,n=new U),n.d}function IJ(t,e,n,i){var a;a=new FP,e.a[n.g]=a,mV(t.b,i,a)}function LJ(t,e,n){var i;(i=t.Yg(e))>=0?t.sh(i,n):_Ot(t,e,n)}function OJ(t,e,n){cQ(),t&&YG(cIe,t,e),t&&YG(sIe,t,n)}function MJ(t,e,n){this.i=new Lm,this.b=t,this.g=e,this.a=n}function NJ(t,e,n){this.c=new Lm,this.e=t,this.f=e,this.b=n}function BJ(t,e,n){this.a=new Lm,this.e=t,this.f=e,this.c=n}function PJ(t,e){YL(this),this.f=e,this.g=t,wK(this),this._d()}function FJ(t,e){var n;n=t.q.getHours(),t.q.setDate(e),dzt(t,n)}function jJ(t,e){var n;for(yY(e),n=t.a;n;n=n.c)e.Od(n.g,n.i)}function $J(t){var e;return Ict(e=new d_(tet(t.length)),t),e}function zJ(t){function e(){}return e.prototype=t||{},new e}function HJ(t,e){return!!fst(t,e)&&(eit(t),!0)}function UJ(t,e){if(null==e)throw $m(new gy);return obt(t,e)}function VJ(t){if(t.qe())return null;var e=t.n;return EGt[e]}function qJ(t){return t.Db>>16!=3?null:jz(t.Cb,33)}function WJ(t){return t.Db>>16!=9?null:jz(t.Cb,33)}function YJ(t){return t.Db>>16!=6?null:jz(t.Cb,79)}function GJ(t){return t.Db>>16!=7?null:jz(t.Cb,235)}function ZJ(t){return t.Db>>16!=7?null:jz(t.Cb,160)}function KJ(t){return t.Db>>16!=11?null:jz(t.Cb,33)}function XJ(t,e){var n;return(n=t.Yg(e))>=0?t.lh(n):HAt(t,e)}function JJ(t,e){var n;return sEt(n=new IU(e),t),new QF(n)}function QJ(t){var e;return e=t.d,e=t.si(t.f),l8(t,e),e.Ob()}function tQ(t,e){return t.b+=e.b,t.c+=e.c,t.d+=e.d,t.a+=e.a,t}function eQ(t,e){return i.Math.abs(t)<i.Math.abs(e)?t:e}function nQ(t){return!t.a&&(t.a=new tW(UDe,t,10,11)),t.a.i>0}function iQ(){this.a=new lI,this.e=new Ny,this.g=0,this.i=0}function aQ(t){this.a=t,this.b=O5(Pve,cZt,1944,t.e.length,0,2)}function rQ(t,e,n){var i;i=Oct(t,e,n),t.b=new yat(i.c.length)}function oQ(){oQ=D,iwe=new nT(bJt,0),awe=new nT("UP",1)}function sQ(){sQ=D,Bxe=new dT(q4t,0),Pxe=new dT("FAN",1)}function cQ(){cQ=D,cIe=new Om,sIe=new Om,FA(yne,new pc)}function lQ(t){if(0!=t.p)throw $m(new fy);return KA(t.f,0)}function uQ(t){if(0!=t.p)throw $m(new fy);return KA(t.k,0)}function dQ(t){return t.Db>>16!=3?null:jz(t.Cb,147)}function hQ(t){return t.Db>>16!=6?null:jz(t.Cb,235)}function fQ(t){return t.Db>>16!=17?null:jz(t.Cb,26)}function gQ(t,e){var n=t.a=t.a||[];return n[e]||(n[e]=t.le(e))}function pQ(t,e){return t.a.get(e)??new Array}function bQ(t,e){var n;n=t.q.getHours(),t.q.setMonth(e),dzt(t,n)}function mQ(t,e,n){return null==e?xTt(t.f,null,n):oft(t.g,e,n)}function yQ(t,e,n,i,a,r){return new L9(t.e,e,t.aj(),n,i,a,r)}function vQ(t,e,n){return t.a=lN(t.a,0,e)+""+n+JA(t.a,e),t}function wQ(t,e,n){return Wz(t.a,(JG(),Vyt(e,n),new bk(e,n))),t}function xQ(t){return oM(t.c),t.e=t.a=t.c,t.c=t.c.c,++t.d,t.a.f}function RQ(t){return oM(t.e),t.c=t.a=t.e,t.e=t.e.e,--t.d,t.a.f}function _Q(t,e){t.d&&y9(t.d.e,t),t.d=e,t.d&&Wz(t.d.e,t)}function kQ(t,e){t.c&&y9(t.c.g,t),t.c=e,t.c&&Wz(t.c.g,t)}function EQ(t,e){t.c&&y9(t.c.a,t),t.c=e,t.c&&Wz(t.c.a,t)}function CQ(t,e){t.i&&y9(t.i.j,t),t.i=e,t.i&&Wz(t.i.j,t)}function SQ(t,e,n){this.a=e,this.c=t,this.b=(yY(n),new QF(n))}function TQ(t,e,n){this.a=e,this.c=t,this.b=(yY(n),new QF(n))}function AQ(t,e){this.a=t,this.c=jL(this.a),this.b=new gX(e)}function DQ(t){return Zht(t),AZ(t,new bg(new Ny))}function IQ(t,e){if(t<0||t>e)throw $m(new Aw(xXt+t+RXt+e))}function LQ(t,e){return SV(t.a,e)?xW(t,jz(e,22).g,null):null}function OQ(t){return Eut(),cM(),0!=jz(t.a,81).d.e}function MQ(){MQ=D,Wte=dut((nw(),Cst(Hx(Yte,1),IZt,538,0,[qte])))}function NQ(){NQ=D,pve=WV(new j2,(vEt(),$oe),(dGt(),Hce))}function BQ(){BQ=D,bve=WV(new j2,(vEt(),$oe),(dGt(),Hce))}function PQ(){PQ=D,yve=WV(new j2,(vEt(),$oe),(dGt(),Hce))}function FQ(){FQ=D,Uve=fU(new j2,(vEt(),$oe),(dGt(),gce))}function jQ(){jQ=D,Gve=fU(new j2,(vEt(),$oe),(dGt(),gce))}function $Q(){$Q=D,Xve=fU(new j2,(vEt(),$oe),(dGt(),gce))}function zQ(){zQ=D,owe=fU(new j2,(vEt(),$oe),(dGt(),gce))}function HQ(){HQ=D,Uxe=WV(new j2,(Vwt(),jwe),(NSt(),Vwe))}function UQ(t,e,n,i){this.c=t,this.d=i,WQ(this,e),YQ(this,n)}function VQ(t){this.c=new Zk,this.b=t.b,this.d=t.c,this.a=t.a}function qQ(t){this.a=i.Math.cos(t),this.b=i.Math.sin(t)}function WQ(t,e){t.a&&y9(t.a.k,t),t.a=e,t.a&&Wz(t.a.k,t)}function YQ(t,e){t.b&&y9(t.b.f,t),t.b=e,t.b&&Wz(t.b.f,t)}function GQ(t,e){eG(t,t.b,t.c),jz(t.b.b,65),e&&jz(e.b,65).b}function ZQ(t,e){Vht(t,e),iO(t.Cb,88)&&DTt(E6(jz(t.Cb,88)),2)}function KQ(t,e){iO(t.Cb,88)&&DTt(E6(jz(t.Cb,88)),4),Oat(t,e)}function XQ(t,e){iO(t.Cb,179)&&(jz(t.Cb,179).tb=null),Oat(t,e)}function JQ(t,e){return XE(),ctt(e)?new uU(e,t):new OA(e,t)}function QQ(t,e){null!=e.c&&JY(t,new HY(e.c))}function t1(t){var e;return e_(),ant(e=new Bm,t),e}function e1(t){var e;return e_(),ant(e=new Bm,t),e}function n1(t,e){var n;return n=new $Y(t),e.c[e.c.length]=n,n}function i1(t,e){var n;return(n=jz(ddt(TK(t.a),e),14))?n.gc():0}function a1(t){return Zht(t),EK(),EK(),vet(t,fne)}function r1(t){for(var e;;)if(e=t.Pb(),!t.Ob())return e}function o1(t,e){Vv.call(this,new qk(tet(t))),dit(e,sZt),this.a=e}function s1(t,e,n){zdt(e,n,t.gc()),this.c=t,this.a=e,this.b=n-e}function c1(t,e,n){var i;zdt(e,n,t.c.length),i=n-e,E_(t.c,e,i)}function l1(t,e){cO(t,fV(t0(vq(e,24),cXt)),fV(t0(e,cXt)))}function u1(t,e){if(t<0||t>=e)throw $m(new Aw(xXt+t+RXt+e))}function d1(t,e){if(t<0||t>=e)throw $m(new Tx(xXt+t+RXt+e))}function h1(t,e){this.b=(vG(t),t),this.a=e&FKt?e:64|e|lZt}function f1(t){MI(this),Ey(this.a,wct(i.Math.max(8,t))<<1)}function g1(t){return Dct(Cst(Hx(EEe,1),cZt,8,0,[t.i.n,t.n,t.a]))}function p1(){return Hlt(),Cst(Hx(Jne,1),IZt,132,0,[Gne,Zne,Kne])}function b1(){return Net(),Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])}function m1(){return K8(),Cst(Hx(tae,1),IZt,461,0,[Xie,Kie,Jie])}function y1(){return H9(),Cst(Hx(oae,1),IZt,462,0,[aae,iae,nae])}function v1(){return $dt(),Cst(Hx(mse,1),IZt,423,0,[fse,hse,dse])}function w1(){return z9(),Cst(Hx(Noe,1),IZt,379,0,[Aoe,Toe,Doe])}function x1(){return kut(),Cst(Hx(cye,1),IZt,378,0,[aye,rye,oye])}function R1(){return Ait(),Cst(Hx(hue,1),IZt,314,0,[lue,cue,uue])}function _1(){return oit(),Cst(Hx(mue,1),IZt,337,0,[fue,pue,gue])}function k1(){return Xst(),Cst(Hx(Oue,1),IZt,450,0,[Due,Aue,Iue])}function E1(){return Sat(),Cst(Hx(Fle,1),IZt,361,0,[Ble,Nle,Mle])}function C1(){return U9(),Cst(Hx(Ade,1),IZt,303,0,[Cde,Sde,Ede])}function S1(){return Pot(),Cst(Hx(kde,1),IZt,292,0,[xde,Rde,wde])}function T1(){return rit(),Cst(Hx(qye,1),IZt,452,0,[Uye,zye,Hye])}function A1(){return yct(),Cst(Hx(Bye,1),IZt,339,0,[Oye,Lye,Mye])}function D1(){return zrt(),Cst(Hx(Kye,1),IZt,375,0,[Wye,Yye,Gye])}function I1(){return Ist(),Cst(Hx(kve,1),IZt,377,0,[hve,fve,dve])}function L1(){return qlt(),Cst(Hx(rve,1),IZt,336,0,[eve,nve,ive])}function O1(){return grt(),Cst(Hx(uve,1),IZt,338,0,[cve,ove,sve])}function M1(){return sit(),Cst(Hx(Ove,1),IZt,454,0,[Ave,Dve,Ive])}function N1(){return Sft(),Cst(Hx(iRe,1),IZt,442,0,[eRe,Qxe,tRe])}function B1(){return zlt(),Cst(Hx(FRe,1),IZt,380,0,[cRe,lRe,uRe])}function P1(){return Eft(),Cst(Hx(L_e,1),IZt,381,0,[JRe,QRe,XRe])}function F1(){return $rt(),Cst(Hx(ZRe,1),IZt,293,0,[WRe,YRe,qRe])}function j1(){return Cft(),Cst(Hx(q_e,1),IZt,437,0,[z_e,H_e,U_e])}function $1(){return odt(),Cst(Hx(wTe,1),IZt,334,0,[mTe,bTe,yTe])}function z1(){return Bet(),Cst(Hx(GSe,1),IZt,272,0,[VSe,qSe,WSe])}function H1(t,e){return wLt(t,e,iO(e,99)&&0!=(jz(e,18).Bb&$Kt))}function U1(t,e,n){var i;return(i=aHt(t,e,!1)).b<=e&&i.a<=n}function V1(t,e,n){var i;(i=new ro).b=e,i.a=n,++e.b,Wz(t.d,i)}function q1(t,e){var n;return RN(!!(n=(vG(t),t).g)),vG(e),n(e)}function W1(t,e){var n,i;return i=pW(t,e),n=t.a.Zc(i),new vk(t,n)}function Y1(t){return t.Db>>16!=6?null:jz(aIt(t),235)}function G1(t){if(2!=t.p)throw $m(new fy);return fV(t.f)&ZZt}function Z1(t){if(2!=t.p)throw $m(new fy);return fV(t.k)&ZZt}function K1(t){return t.a==(N6(),QLe)&&ff(t,eOt(t.g,t.b)),t.a}function X1(t){return t.d==(N6(),QLe)&&pf(t,OFt(t.g,t.b)),t.d}function J1(t){return EN(t.a<t.c.c.length),t.b=t.a++,t.c.c[t.b]}function Q1(t,e){t.b=t.b|e.b,t.c=t.c|e.c,t.d=t.d|e.d,t.a=t.a|e.a}function t0(t,e){return oot(kq(KD(t)?Cot(t):t,KD(e)?Cot(e):e))}function e0(t,e){return oot(Eq(KD(t)?Cot(t):t,KD(e)?Cot(e):e))}function n0(t,e){return oot(Cq(KD(t)?Cot(t):t,KD(e)?Cot(e):e))}function i0(t){return ift(yq(uot(zLt(t,32)),32),uot(zLt(t,32)))}function a0(t){return yY(t),iO(t,14)?new QF(jz(t,14)):$z(t.Kc())}function r0(t,e){return Mtt(),t.c==e.c?Cht(e.d,t.d):Cht(t.c,e.c)}function o0(t,e){return Mtt(),t.c==e.c?Cht(t.d,e.d):Cht(t.c,e.c)}function s0(t,e){return Mtt(),t.c==e.c?Cht(t.d,e.d):Cht(e.c,t.c)}function c0(t,e){return Mtt(),t.c==e.c?Cht(e.d,t.d):Cht(e.c,t.c)}function l0(t,e){var n;n=Hw(_B(t.a.We((cGt(),TSe)))),GWt(t,e,n)}function u0(t,e){var n;n=jz(NY(t.g,e),57),Aet(e.d,new oS(t,n))}function d0(t,e){var n,i;return(n=swt(t))<(i=swt(e))?-1:n>i?1:0}function h0(t,e){var n;return n=k9(e),jz(NY(t.c,n),19).a}function f0(t,e){var n;for(n=t+"";n.length<e;)n="0"+n;return n}function g0(t){return null==t.c||0==t.c.length?"n_"+t.g:"n_"+t.c}function p0(t){return null==t.c||0==t.c.length?"n_"+t.b:"n_"+t.c}function b0(t,e){return t&&t.equals?t.equals(e):HA(t)===HA(e)}function m0(t,e){return 0==e?!!t.o&&0!=t.o.f:mmt(t,e)}function y0(t,e,n){var i;t.n&&e&&n&&(i=new tc,Wz(t.e,i))}function v0(t,e,n){var i;i=t.d[e.p],t.d[e.p]=t.d[n.p],t.d[n.p]=i}function w0(t,e,n){this.d=t,this.j=e,this.e=n,this.o=-1,this.p=3}function x0(t,e,n){this.d=t,this.k=e,this.f=n,this.o=-1,this.p=5}function R0(t,e,n){Am.call(this,25),this.b=t,this.a=e,this.c=n}function _0(t){fGt(),Am.call(this,t),this.c=!1,this.a=!1}function k0(t,e,n,i,a,r){znt.call(this,t,e,n,i,a),r&&(this.o=-2)}function E0(t,e,n,i,a,r){Hnt.call(this,t,e,n,i,a),r&&(this.o=-2)}function C0(t,e,n,i,a,r){K6.call(this,t,e,n,i,a),r&&(this.o=-2)}function S0(t,e,n,i,a,r){qnt.call(this,t,e,n,i,a),r&&(this.o=-2)}function T0(t,e,n,i,a,r){X6.call(this,t,e,n,i,a),r&&(this.o=-2)}function A0(t,e,n,i,a,r){Unt.call(this,t,e,n,i,a),r&&(this.o=-2)}function D0(t,e,n,i,a,r){Vnt.call(this,t,e,n,i,a),r&&(this.o=-2)}function I0(t,e,n,i,a,r){J6.call(this,t,e,n,i,a),r&&(this.o=-2)}function L0(t,e,n,i){wm.call(this,n),this.b=t,this.c=e,this.d=i}function O0(t,e){this.a=new Lm,this.d=new Lm,this.f=t,this.c=e}function M0(){this.c=new DL,this.a=new dX,this.b=new tv,dE()}function N0(){Ost(),this.b=new Om,this.a=new Om,this.c=new Lm}function B0(t,e){this.g=t,this.d=(N6(),QLe),this.a=QLe,this.b=e}function P0(t,e){this.f=t,this.a=(N6(),JLe),this.c=JLe,this.b=e}function F0(t,e){!t.c&&(t.c=new Rrt(t,0)),kHt(t.c,(qUt(),DOe),e)}function j0(){j0=D,zxe=new hT("DFS",0),$xe=new hT("BFS",1)}function $0(t,e,n){var i;return!!(i=jz(t.Zb().xc(e),14))&&i.Hc(n)}function z0(t,e,n){var i;return!!(i=jz(t.Zb().xc(e),14))&&i.Mc(n)}function H0(t,e,n,i){return t.a+=""+lN(null==e?VGt:$ft(e),n,i),t}function U0(t,e,n,i,a,r){return Brt(t,e,n,r),Xdt(t,i),tht(t,a),t}function V0(t){return EN(t.b.b!=t.d.a),t.c=t.b=t.b.b,--t.a,t.c.c}function q0(t){for(;t.d>0&&0==t.a[--t.d];);0==t.a[t.d++]&&(t.e=0)}function W0(t){return t.a?0==t.e.length?t.a.a:t.a.a+""+t.e:t.c}function Y0(t){return!(!t.a||0==$9(t.a.a).i||t.b&&Pyt(t.b))}function G0(t){return!(!t.u||0==a3(t.u.a).i||t.n&&Byt(t.n))}function Z0(t){return yU(t.e.Hd().gc()*t.c.Hd().gc(),16,new Hd(t))}function K0(t,e){return FW(uot(t.q.getTime()),uot(e.q.getTime()))}function X0(t){return jz(Zbt(t,O5(yse,a1t,17,t.c.length,0,1)),474)}function J0(t){return jz(Zbt(t,O5(Rse,r1t,10,t.c.length,0,1)),193)}function Q0(t){return jQ(),!(d6(t)||!d6(t)&&t.c.i.c==t.d.i.c)}function t2(t,e,n){yY(t),Mwt(new SQ(new QF(t),e,n))}function e2(t,e,n){yY(t),Nwt(new TQ(new QF(t),e,n))}function n2(t,e){var n;return n=1-e,t.a[n]=fat(t.a[n],n),fat(t,e)}function i2(t,e){var n;t.e=new Kv,mL(n=fBt(e),t.c),TBt(t,n,0)}function a2(t,e,n,i){var a;(a=new vs).a=e,a.b=n,a.c=i,MH(t.a,a)}function r2(t,e,n,i){var a;(a=new vs).a=e,a.b=n,a.c=i,MH(t.b,a)}function o2(t){var e,n;return n=tjt(e=new uY,t),vqt(e),n}function s2(){var t,e;return t=new Bm,Wz(WLe,e=t),e}function c2(t){return t.j.c=O5(Dte,zGt,1,0,5,1),RZ(t.c),gZ(t.a),t}function l2(t){return _E(),iO(t.g,10)?jz(t.g,10):null}function u2(t){return!xZ(t).dc()&&(IL(t,new v),!0)}function d2(t){if(!("stack"in t))try{throw t}catch{}return t}function h2(t,e){if(t<0||t>=e)throw $m(new Aw(LTt(t,e)));return t}function f2(t,e,n){if(t<0||e<t||e>n)throw $m(new Aw(sSt(t,e,n)))}function g2(t,e){if(RW(t.a,e),e.d)throw $m(new fw(TXt));e.d=t}function p2(t,e){if(e.$modCount!=t.$modCount)throw $m(new by)}function b2(t,e){return!!iO(e,42)&&kvt(t.a,jz(e,42))}function m2(t,e){return!!iO(e,42)&&kvt(t.a,jz(e,42))}function y2(t,e){return!!iO(e,42)&&kvt(t.a,jz(e,42))}function v2(t,e){return t.a<=t.b&&(e.ud(t.a++),!0)}function w2(t){var e;return KD(t)?-0==(e=t)?0:e:ptt(t)}function x2(t){var e;return xG(t),e=new $,g_(t.a,new gg(e)),e}function R2(t){var e;return xG(t),e=new j,g_(t.a,new fg(e)),e}function _2(t,e){this.a=t,kf.call(this,t),IQ(e,t.gc()),this.b=e}function k2(t){this.e=t,this.b=this.e.a.entries(),this.a=new Array}function E2(t){return yU(t.e.Hd().gc()*t.c.Hd().gc(),273,new zd(t))}function C2(t){return new K7((dit(t,OZt),Qtt(ift(ift(5,t),t/10|0))))}function S2(t){return jz(Zbt(t,O5($se,o1t,11,t.c.length,0,1)),1943)}function T2(t,e,n){return n.f.c.length>0?jW(t.a,e,n):jW(t.b,e,n)}function A2(t,e,n){t.d&&y9(t.d.e,t),t.d=e,t.d&&vV(t.d.e,n,t)}function D2(t,e){mYt(e,t),aH(t.d),aH(jz(yEt(t,(zYt(),Abe)),207))}function I2(t,e){bYt(e,t),iH(t.d),iH(jz(yEt(t,(zYt(),Abe)),207))}function L2(t,e){var n,i;return i=null,(n=UJ(t,e))&&(i=n.fe()),i}function O2(t,e){var n,i;return i=null,(n=ftt(t,e))&&(i=n.ie()),i}function M2(t,e){var n,i;return i=null,(n=UJ(t,e))&&(i=n.ie()),i}function N2(t,e){var n,i;return i=null,(n=UJ(t,e))&&(i=vSt(n)),i}function B2(t,e,n){var i;return i=Zpt(n),fFt(t.g,i,e),fFt(t.i,e,n),e}function P2(t,e,n){var i;i=Lpt();try{return fP(t,e,n)}finally{y4(i)}}function F2(t){var e;e=t.Wg(),this.a=iO(e,69)?jz(e,69).Zh():e.Kc()}function j2(){Zv.call(this),this.j.c=O5(Dte,zGt,1,0,5,1),this.a=-1}function $2(t,e,n,i){this.d=t,this.n=e,this.g=n,this.o=i,this.p=-1}function z2(t,e,n,i){this.e=i,this.d=null,this.c=t,this.a=e,this.b=n}function H2(t,e,n){this.d=new Fp(this),this.e=t,this.i=e,this.f=n}function U2(){U2=D,Dde=new MS(eJt,0),Ide=new MS("TOP_LEFT",1)}function V2(){V2=D,Rve=KG(nht(1),nht(4)),xve=KG(nht(1),nht(2))}function q2(){q2=D,K_e=dut((SE(),Cst(Hx(X_e,1),IZt,551,0,[Z_e])))}function W2(){W2=D,Y_e=dut((CE(),Cst(Hx(G_e,1),IZt,482,0,[W_e])))}function Y2(){Y2=D,Vke=dut((TE(),Cst(Hx(qke,1),IZt,530,0,[Uke])))}function G2(){G2=D,are=dut((hE(),Cst(Hx(Ere,1),IZt,481,0,[ire])))}function Z2(){return Not(),Cst(Hx(Fae,1),IZt,406,0,[Bae,Oae,Mae,Nae])}function K2(){return X8(),Cst(Hx(Fne,1),IZt,297,0,[One,Mne,Nne,Bne])}function X2(){return Hmt(),Cst(Hx(nre,1),IZt,394,0,[Jae,Xae,Qae,tre])}function J2(){return zmt(),Cst(Hx(Vae,1),IZt,323,0,[$ae,jae,zae,Hae])}function Q2(){return Dst(),Cst(Hx(use,1),IZt,405,0,[Joe,ese,Qoe,tse])}function t4(){return Tst(),Cst(Hx(ple,1),IZt,360,0,[rle,ile,ale,nle])}function e4(t,e,n,i){return iO(n,54)?new TN(t,e,n,i):new sq(t,e,n,i)}function n4(){return Ast(),Cst(Hx(Rle,1),IZt,411,0,[mle,yle,vle,wle])}function i4(t){return t.j==(wWt(),EAe)&&kM(qDt(t),sAe)}function a4(t,e){var n;kQ(n=e.a,e.c.d),_Q(n,e.d.d),Jet(n.a,t.n)}function r4(t,e){return jz(DM(Sq(jz(c7(t.k,e),15).Oc(),Gle)),113)}function o4(t,e){return jz(DM(Tq(jz(c7(t.k,e),15).Oc(),Gle)),113)}function s4(t){return new h1(trt(jz(t.a.dd(),14).gc(),t.a.cd()),16)}function c4(t){return iO(t,14)?jz(t,14).dc():!t.Kc().Ob()}function l4(t){return _E(),iO(t.g,145)?jz(t.g,145):null}function u4(t){if(t.e.g!=t.b)throw $m(new by);return!!t.c&&t.d>0}function d4(t){return EN(t.b!=t.d.c),t.c=t.b,t.b=t.b.a,++t.a,t.c.c}function h4(t,e){vG(e),DY(t.a,t.c,e),t.c=t.c+1&t.a.length-1,fwt(t)}function f4(t,e){vG(e),t.b=t.b-1&t.a.length-1,DY(t.a,t.b,e),fwt(t)}function g4(t,e){var n;for(n=t.j.c.length;n<e;n++)Wz(t.j,t.rg())}function p4(t,e,n,i){var a;return a=i[e.g][n.g],Hw(_B(yEt(t.a,a)))}function b4(t,e,n,i,a){this.i=t,this.a=e,this.e=n,this.j=i,this.f=a}function m4(t,e,n,i,a){this.a=t,this.e=e,this.f=n,this.b=i,this.g=a}function y4(t){t&&Stt((sx(),tee)),--aee,t&&-1!=oee&&(eC(oee),oee=-1)}function v4(){return hyt(),Cst(Hx(gye,1),IZt,197,0,[dye,hye,uye,lye])}function w4(){return Vwt(),Cst(Hx(zwe,1),IZt,393,0,[Bwe,Pwe,Fwe,jwe])}function x4(){return Avt(),Cst(Hx(VRe,1),IZt,340,0,[HRe,$Re,zRe,jRe])}function R4(){return ypt(),Cst(Hx($Ae,1),IZt,374,0,[PAe,FAe,BAe,NAe])}function _4(){return Wwt(),Cst(Hx(CTe,1),IZt,285,0,[kTe,xTe,RTe,_Te])}function k4(){return kft(),Cst(Hx(tTe,1),IZt,218,0,[JSe,KSe,ZSe,XSe])}function E4(){return jgt(),Cst(Hx(iDe,1),IZt,311,0,[eDe,JAe,tDe,QAe])}function C4(){return $lt(),Cst(Hx(hDe,1),IZt,396,0,[oDe,sDe,rDe,cDe])}function S4(t){return cQ(),cW(cIe,t)?jz(NY(cIe,t),331).ug():null}function T4(t,e,n){return e<0?HAt(t,n):jz(n,66).Nj().Sj(t,t.yh(),e)}function A4(t,e,n){var i;return i=Zpt(n),fFt(t.d,i,e),YG(t.e,e,n),e}function D4(t,e,n){var i;return i=Zpt(n),fFt(t.j,i,e),YG(t.k,e,n),e}function I4(t){var e;return QR(),e=new ac,t&&zOt(e,t),e}function L4(t){var e;return e=t.ri(t.i),t.i>0&&rHt(t.g,0,e,0,t.i),e}function O4(t,e){var n;return JE(),!(n=jz(NY(bIe,t),55))||n.wj(e)}function M4(t){if(1!=t.p)throw $m(new fy);return fV(t.f)<<24>>24}function N4(t){if(1!=t.p)throw $m(new fy);return fV(t.k)<<24>>24}function B4(t){if(7!=t.p)throw $m(new fy);return fV(t.k)<<16>>16}function P4(t){if(7!=t.p)throw $m(new fy);return fV(t.f)<<16>>16}function F4(t){var e;for(e=0;t.Ob();)t.Pb(),e=ift(e,1);return Qtt(e)}function j4(t,e){var n;return n=new Sx,t.xd(n),n.a+="..",e.yd(n),n.a}function $4(t,e,n){var i;i=jz(NY(t.g,n),57),Wz(t.a.c,new nA(e,i))}function z4(t,e,n){return Rq(_B(zA(AX(t.f,e))),_B(zA(AX(t.f,n))))}function H4(t,e,n){return q$t(t,e,n,iO(e,99)&&0!=(jz(e,18).Bb&$Kt))}function U4(t,e,n){return bzt(t,e,n,iO(e,99)&&0!=(jz(e,18).Bb&$Kt))}function V4(t,e,n){return MLt(t,e,n,iO(e,99)&&0!=(jz(e,18).Bb&$Kt))}function q4(t,e){return t==(oCt(),Sse)&&e==Sse?4:t==Sse||e==Sse?8:32}function W4(t,e){return HA(e)===HA(t)?"(this Map)":null==e?VGt:$ft(e)}function Y4(t,e){return jz(null==e?zA(AX(t.f,null)):cC(t.g,e),281)}function G4(t,e,n){var i;return i=Zpt(n),YG(t.b,i,e),YG(t.c,e,n),e}function Z4(t,e){var n;for(n=e;n;)PN(t,n.i,n.j),n=KJ(n);return t}function K4(t,e){var n;return n=nX($z(new C9(t,e))),CU(new C9(t,e)),n}function X4(t,e){var n;return XE(),_Ct(n=jz(t,66).Mj(),e),n.Ok(e)}function J4(t,e,n,i,a){Wz(e,yTt(a,WLt(a,n,i))),qEt(t,a,e)}function Q4(t,e,n){t.i=0,t.e=0,e!=n&&(Yct(t,e,n),Wct(t,e,n))}function t3(t,e){var n;n=t.q.getHours(),t.q.setFullYear(e+cKt),dzt(t,n)}function e3(t,e,n){if(n){var i=n.ee();t.a[e]=i(n)}else delete t.a[e]}function n3(t,e,n){if(n){var i=n.ee();n=i(n)}else n=void 0;t.a[e]=n}function i3(t){if(t<0)throw $m(new jw("Negative array size: "+t))}function a3(t){return t.n||(E6(t),t.n=new ZV(t,WIe,t),vX(t)),t.n}function r3(t){return EN(t.a<t.c.a.length),t.b=t.a,Att(t),t.c.b[t.b]}function o3(t){t.b!=t.c&&(t.a=O5(Dte,zGt,1,8,5,1),t.b=0,t.c=0)}function s3(t){this.b=new Om,this.c=new Om,this.d=new Om,this.a=t}function c3(t,e){fGt(),Am.call(this,t),this.a=e,this.c=-1,this.b=-1}function l3(t,e,n,i){w0.call(this,1,n,i),this.c=t,this.b=e}function u3(t,e,n,i){x0.call(this,1,n,i),this.c=t,this.b=e}function d3(t,e,n,i,a,r,o){wit.call(this,e,i,a,r,o),this.c=t,this.a=n}function h3(t,e,n){this.e=t,this.a=Dte,this.b=DPt(e),this.c=e,this.d=n}function f3(t){this.e=t,this.c=this.e.a,this.b=this.e.g,this.d=this.e.i}function g3(t){this.c=t,this.a=jz(Txt(t),148),this.b=this.a.Aj().Nh()}function p3(t){this.d=t,this.b=this.d.a.entries(),this.a=this.b.next()}function b3(){Om.call(this),wN(this),this.d.b=this.d,this.d.a=this.d}function m3(t,e){DP.call(this),this.a=t,this.b=e,Wz(this.a.b,this)}function y3(t,e){return eD(null!=e?kJ(t,e):zA(AX(t.f,e)))}function v3(t,e){return eD(null!=e?kJ(t,e):zA(AX(t.f,e)))}function w3(t,e){var n;for(n=0;n<e;++n)DY(t,n,new Vf(jz(t[n],42)))}function x3(t,e){var n;for(n=t.d-1;n>=0&&t.a[n]===e[n];n--);return n<0}function R3(t,e){var n;return Vlt(),0!=(n=t.j.g-e.j.g)?n:0}function _3(t,e){return vG(e),null!=t.a?EV(e.Kb(t.a)):kne}function k3(t){var e;return t?new IU(t):(Hat(e=new lI,t),e)}function E3(t,e){return e.b.Kb(R9(t,e.c.Ee(),new yg(e)))}function C3(t){vkt(),cO(this,fV(t0(vq(t,24),cXt)),fV(t0(t,cXt)))}function S3(){S3=D,pie=dut((lmt(),Cst(Hx(bie,1),IZt,428,0,[gie,fie])))}function T3(){T3=D,vie=dut((Ntt(),Cst(Hx(Sie,1),IZt,427,0,[mie,yie])))}function A3(){A3=D,Pre=dut((Btt(),Cst(Hx(Soe,1),IZt,424,0,[Nre,Bre])))}function D3(){D3=D,Use=dut((Eat(),Cst(Hx(Wse,1),IZt,511,0,[Hse,zse])))}function I3(){I3=D,Sue=dut((Ptt(),Cst(Hx(Tue,1),IZt,419,0,[Eue,Cue])))}function L3(){L3=D,Vue=dut((g9(),Cst(Hx(que,1),IZt,479,0,[Uue,Hue])))}function O3(){O3=D,Qye=dut((A7(),Cst(Hx(tve,1),IZt,376,0,[Jye,Xye])))}function M3(){M3=D,jye=dut((V9(),Cst(Hx($ye,1),IZt,421,0,[Pye,Fye])))}function N3(){N3=D,oue=dut((Y5(),Cst(Hx(sue,1),IZt,422,0,[aue,rue])))}function B3(){B3=D,Lde=dut((U2(),Cst(Hx(Phe,1),IZt,420,0,[Dde,Ide])))}function P3(){P3=D,Ewe=dut((T7(),Cst(Hx(Iwe,1),IZt,520,0,[kwe,_we])))}function F3(){F3=D,Hve=dut((G3(),Cst(Hx(Yve,1),IZt,523,0,[zve,$ve])))}function j3(){j3=D,ewe=dut((gJ(),Cst(Hx(nwe,1),IZt,516,0,[twe,Qve])))}function $3(){$3=D,rwe=dut((oQ(),Cst(Hx(Rwe,1),IZt,515,0,[iwe,awe])))}function z3(){z3=D,Mwe=dut((fJ(),Cst(Hx(Nwe,1),IZt,455,0,[Lwe,Owe])))}function H3(){H3=D,Hxe=dut((j0(),Cst(Hx(Gxe,1),IZt,425,0,[zxe,$xe])))}function U3(){U3=D,Xxe=dut((Cat(),Cst(Hx(Jxe,1),IZt,495,0,[Zxe,Kxe])))}function V3(){V3=D,Fxe=dut((sQ(),Cst(Hx(jxe,1),IZt,480,0,[Bxe,Pxe])))}function q3(){q3=D,oRe=dut((M8(),Cst(Hx(sRe,1),IZt,426,0,[aRe,rRe])))}function W3(){W3=D,Gke=dut((Lst(),Cst(Hx(Zke,1),IZt,429,0,[Yke,Wke])))}function Y3(){Y3=D,tke=dut((D7(),Cst(Hx(eke,1),IZt,430,0,[Q_e,J_e])))}function G3(){G3=D,zve=new KS("UPPER",0),$ve=new KS("LOWER",1)}function Z3(t,e){var n;zK(n=new pw,"x",e.a),zK(n,"y",e.b),JY(t,n)}function K3(t,e){var n;zK(n=new pw,"x",e.a),zK(n,"y",e.b),JY(t,n)}function X3(t,e){var n,i;i=!1;do{i|=n=hct(t,e)}while(n);return i}function J3(t,e){var n,i;for(n=e,i=0;n>0;)i+=t.a[n],n-=n&-n;return i}function Q3(t,e){var n;for(n=e;n;)PN(t,-n.i,-n.j),n=KJ(n);return t}function t6(t,e){var n,i;for(vG(e),i=t.Kc();i.Ob();)n=i.Pb(),e.td(n)}function e6(t,e){var n;return new bk(n=e.cd(),t.e.pc(n,jz(e.dd(),14)))}function n6(t,e,n,i){var a;(a=new L).c=e,a.b=n,a.a=i,i.b=n.a=a,++t.b}function i6(t,e,n){var i;return u1(e,t.c.length),i=t.c[e],t.c[e]=n,i}function a6(t,e,n){return jz(null==e?xTt(t.f,null,n):oft(t.g,e,n),281)}function r6(t){return t.c&&t.d?p0(t.c)+"->"+p0(t.d):"e_"+EM(t)}function o6(t,e){return(Zht(t),w_(new NU(t,new G8(e,t.a)))).sd(Qne)}function s6(){return vEt(),Cst(Hx(Voe,1),IZt,356,0,[Boe,Poe,Foe,joe,$oe])}function c6(){return wWt(),Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])}function l6(t){return Mx(),function(){return P2(t,this,arguments)}}function u6(){return Date.now?Date.now():(new Date).getTime()}function d6(t){return!(!t.c||!t.d||!t.c.i||t.c.i!=t.d.i)}function h6(t){if(!t.c.Sb())throw $m(new yy);return t.a=!0,t.c.Ub()}function f6(t){t.i=0,yC(t.b,null),yC(t.c,null),t.a=null,t.e=null,++t.g}function g6(t){fC.call(this,null==t?VGt:$ft(t),iO(t,78)?jz(t,78):null)}function p6(t){eGt(),jm(this),this.a=new Zk,glt(this,t),MH(this.a,t)}function b6(){OI(this),this.b=new OT(BKt,BKt),this.a=new OT(PKt,PKt)}function m6(t,e){this.c=0,this.b=e,pD.call(this,t,17493),this.a=this.c}function y6(t){v6(),!qne&&(this.c=t,this.e=!0,this.a=new Lm)}function v6(){v6=D,qne=!0,Une=!1,Vne=!1,Yne=!1,Wne=!1}function w6(t,e){return!!iO(e,149)&&mF(t.c,jz(e,149).c)}function x6(t,e){var n;return n=0,t&&(n+=t.f.a/2),e&&(n+=e.f.a/2),n}function R6(t,e){return jz(utt(t.d,e),23)||jz(utt(t.e,e),23)}function _6(t){this.b=t,AO.call(this,t),this.a=jz(vot(this.b.a,4),126)}function k6(t){this.b=t,aN.call(this,t),this.a=jz(vot(this.b.a,4),126)}function E6(t){return t.t||(t.t=new fm(t),cht(new Ow(t),0,t.t)),t.t}function C6(){return jdt(),Cst(Hx(USe,1),IZt,103,0,[$Se,jSe,FSe,PSe,zSe])}function S6(){return amt(),Cst(Hx(VTe,1),IZt,249,0,[$Te,HTe,FTe,jTe,zTe])}function T6(){return imt(),Cst(Hx(hEe,1),IZt,175,0,[lEe,cEe,oEe,uEe,sEe])}function A6(){return ICt(),Cst(Hx(Hke,1),IZt,316,0,[nke,ike,oke,ake,rke])}function D6(){return Oyt(),Cst(Hx(xye,1),IZt,315,0,[vye,bye,mye,pye,yye])}function I6(){return Gyt(),Cst(Hx(kue,1),IZt,335,0,[vue,yue,xue,Rue,wue])}function L6(){return KOt(),Cst(Hx($_e,1),IZt,355,0,[N_e,M_e,P_e,B_e,F_e])}function O6(){return L_t(),Cst(Hx(Ole,1),IZt,363,0,[kle,Cle,Sle,Ele,_le])}function M6(){return _ft(),Cst(Hx(Zme,1),IZt,163,0,[Hhe,Fhe,jhe,$he,zhe])}function N6(){var t,e;N6=D,e_(),e=new xy,JLe=e,t=new Tv,QLe=t}function B6(t){var e;return t.c||iO(e=t.r,88)&&(t.c=jz(e,26)),t.c}function P6(t){return t.e=3,t.d=t.Yb(),2!=t.e&&(t.e=0,!0)}function F6(t){return _L(t&EKt,t>>22&EKt,t<0?CKt:0)}function j6(t){var e,n,i;for(n=0,i=(e=t).length;n<i;++n)wG(e[n])}function $6(t,e){var n,i;(n=jz(hdt(t.c,e),14))&&(i=n.gc(),n.$b(),t.d-=i)}function z6(t,e){var n;return!!(n=dlt(t,e.cd()))&&iZ(n.e,e.dd())}function H6(t,e){return 0==e||0==t.e?t:e>0?Rpt(t,e):TNt(t,-e)}function U6(t,e){return 0==e||0==t.e?t:e>0?TNt(t,e):Rpt(t,-e)}function V6(t){if(gIt(t))return t.c=t.a,t.a.Pb();throw $m(new yy)}function q6(t){var e,n;return e=t.c.i,n=t.d.i,e.k==(oCt(),kse)&&n.k==kse}function W6(t){var e;return Hot(e=new hX,t),lct(e,(zYt(),bbe),null),e}function Y6(t,e,n){var i;return(i=t.Yg(e))>=0?t._g(i,n,!0):aDt(t,e,n)}function G6(t,e,n,i){var a;for(a=0;a<Gie;a++)qV(t.a[e.g][a],n,i[e.g])}function Z6(t,e,n,i){var a;for(a=0;a<Zie;a++)VV(t.a[a][e.g],n,i[e.g])}function K6(t,e,n,i,a){w0.call(this,e,i,a),this.c=t,this.a=n}function X6(t,e,n,i,a){x0.call(this,e,i,a),this.c=t,this.a=n}function J6(t,e,n,i,a){e7.call(this,e,i,a),this.c=t,this.a=n}function Q6(t,e,n,i,a){e7.call(this,e,i,a),this.c=t,this.b=n}function t7(t,e,n){wm.call(this,n),this.b=t,this.c=e,this.d=($gt(),HLe)}function e7(t,e,n){this.d=t,this.k=e?1:0,this.f=n?1:0,this.o=-1,this.p=0}function n7(t,e,n){var i;_rt(i=new qL(t.a),t.a.a),xTt(i.f,e,n),t.a.a=i}function i7(t,e){t.qi(t.i+1),wO(t,t.i,t.oi(t.i,e)),t.bi(t.i++,e),t.ci()}function a7(t){var e,n;++t.j,e=t.g,n=t.i,t.g=null,t.i=0,t.di(n,e),t.ci()}function r7(t){var e;return yY(t),Ict(e=new K7(XG(t.length)),t),e}function o7(t){var e;return yY(t),XSt(e=t?new QF(t):$z(t.Kc())),cdt(e)}function s7(t,e){var n;return u1(e,t.c.length),n=t.c[e],E_(t.c,e,1),n}function c7(t,e){var n;return!(n=jz(t.c.xc(e),14))&&(n=t.ic(e)),t.pc(e,n)}function l7(t,e){var n,i;return vG(t),n=t,vG(e),n==(i=e)?0:n<i?-1:1}function u7(t){var e;return e=t.e+t.f,isNaN(e)&&WF(t.d)?t.d:e}function d7(t,e){return t.a?oD(t.a,t.b):t.a=new uM(t.d),aD(t.a,e),t}function h7(t,e){if(t<0||t>e)throw $m(new Aw(gTt(t,e,"index")));return t}function f7(t,e,n,i){var a;return mkt(a=O5(TMe,lKt,25,e,15,1),t,e,n,i),a}function g7(t,e){var n;n=t.q.getHours()+(e/60|0),t.q.setMinutes(e),dzt(t,n)}function p7(t,e){return i.Math.min(W5(e.a,t.d.d.c),W5(e.b,t.d.d.c))}function b7(t,e){return qA(e)?null==e?pIt(t.f,null):Uot(t.g,e):pIt(t.f,e)}function m7(t){this.c=t,this.a=new Wf(this.c.a),this.b=new Wf(this.c.b)}function y7(){this.e=new Lm,this.c=new Lm,this.d=new Lm,this.b=new Lm}function v7(){this.g=new jy,this.b=new jy,this.a=new Lm,this.k=new Lm}function w7(t,e,n){this.a=t,this.c=e,this.d=n,Wz(e.e,this),Wz(n.b,this)}function x7(t,e){gD.call(this,e.rd(),-6&e.qd()),vG(t),this.a=t,this.b=e}function R7(t,e){pD.call(this,e.rd(),-6&e.qd()),vG(t),this.a=t,this.b=e}function _7(t,e){bD.call(this,e.rd(),-6&e.qd()),vG(t),this.a=t,this.b=e}function k7(t,e,n){this.a=t,this.b=e,this.c=n,Wz(t.t,this),Wz(e.i,this)}function E7(){this.b=new Zk,this.a=new Zk,this.b=new Zk,this.a=new Zk}function C7(){C7=D,REe=new rm("org.eclipse.elk.labels.labelManager")}function S7(){S7=D,tle=new eP("separateLayerConnections",(Tst(),rle))}function T7(){T7=D,kwe=new rT("REGULAR",0),_we=new rT("CRITICAL",1)}function A7(){A7=D,Jye=new qS("STACKED",0),Xye=new qS("SEQUENCED",1)}function D7(){D7=D,Q_e=new RT("FIXED",0),J_e=new RT("CENTER_NODE",1)}function I7(t,e){var n;return n=MVt(t,e),t.b=new yat(n.c.length),vUt(t,n)}function L7(t,e,n){return++t.e,--t.f,jz(t.d[e].$c(n),133).dd()}function O7(t){var e;return t.a||iO(e=t.r,148)&&(t.a=jz(e,148)),t.a}function M7(t){return t.a?t.e?M7(t.e):null:t}function N7(t,e){return t.p<e.p?1:t.p>e.p?-1:0}function B7(t,e){return vG(e),t.c<t.d&&(t.ze(e,t.c++),!0)}function P7(t,e){return!!cW(t.a,e)&&(b7(t.a,e),!0)}function F7(t){var e;return e=t.cd(),Nz(jz(t.dd(),14).Nc(),new Wd(e))}function j7(t){var e;return e=jz(YW(t.b,t.b.length),9),new ZF(t.a,e,t.c)}function $7(t){return Zht(t),new AB(t,new Xz(t,t.a.e,4|t.a.d))}function z7(t){var e;for(xG(t),e=0;t.a.sd(new ut);)e=ift(e,1);return e}function H7(t,e,n){var i,a;for(i=0,a=0;a<e.length;a++)i+=t.$f(e[a],i,n)}function U7(t,e){var n;t.C&&((n=jz(oZ(t.b,e),124).n).d=t.C.d,n.a=t.C.a)}function V7(t,e,n){return h2(e,t.e.Hd().gc()),h2(n,t.c.Hd().gc()),t.a[e][n]}function q7(t,e){ABt(),this.e=t,this.d=1,this.a=Cst(Hx(TMe,1),lKt,25,15,[e])}function W7(t,e,n,i){this.f=t,this.e=e,this.d=n,this.b=i,this.c=i?i.d:null}function Y7(t){var e,n,i,a;a=t.d,e=t.a,n=t.b,i=t.c,t.d=n,t.a=i,t.b=a,t.c=e}function G7(t,e,n,i){y$t(t,e,n,bzt(t,e,i,iO(e,99)&&0!=(jz(e,18).Bb&$Kt)))}function Z7(t,e){Akt(e,"Label management",1),eD(yEt(t,(C7(),REe))),zCt(e)}function K7(t){OI(this),bH(t>=0,"Initial capacity must not be negative")}function X7(){X7=D,Wie=dut((Net(),Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])))}function J7(){J7=D,Qie=dut((K8(),Cst(Hx(tae,1),IZt,461,0,[Xie,Kie,Jie])))}function Q7(){Q7=D,rae=dut((H9(),Cst(Hx(oae,1),IZt,462,0,[aae,iae,nae])))}function t5(){t5=D,Xne=dut((Hlt(),Cst(Hx(Jne,1),IZt,132,0,[Gne,Zne,Kne])))}function e5(){e5=D,Ioe=dut((z9(),Cst(Hx(Noe,1),IZt,379,0,[Aoe,Toe,Doe])))}function n5(){n5=D,gse=dut(($dt(),Cst(Hx(mse,1),IZt,423,0,[fse,hse,dse])))}function i5(){i5=D,due=dut((Ait(),Cst(Hx(hue,1),IZt,314,0,[lue,cue,uue])))}function a5(){a5=D,bue=dut((oit(),Cst(Hx(mue,1),IZt,337,0,[fue,pue,gue])))}function r5(){r5=D,Lue=dut((Xst(),Cst(Hx(Oue,1),IZt,450,0,[Due,Aue,Iue])))}function o5(){o5=D,Ple=dut((Sat(),Cst(Hx(Fle,1),IZt,361,0,[Ble,Nle,Mle])))}function s5(){s5=D,Tde=dut((U9(),Cst(Hx(Ade,1),IZt,303,0,[Cde,Sde,Ede])))}function c5(){c5=D,_de=dut((Pot(),Cst(Hx(kde,1),IZt,292,0,[xde,Rde,wde])))}function l5(){l5=D,sye=dut((kut(),Cst(Hx(cye,1),IZt,378,0,[aye,rye,oye])))}function u5(){u5=D,Zye=dut((zrt(),Cst(Hx(Kye,1),IZt,375,0,[Wye,Yye,Gye])))}function d5(){d5=D,Nye=dut((yct(),Cst(Hx(Bye,1),IZt,339,0,[Oye,Lye,Mye])))}function h5(){h5=D,Vye=dut((rit(),Cst(Hx(qye,1),IZt,452,0,[Uye,zye,Hye])))}function f5(){f5=D,gve=dut((Ist(),Cst(Hx(kve,1),IZt,377,0,[hve,fve,dve])))}function g5(){g5=D,ave=dut((qlt(),Cst(Hx(rve,1),IZt,336,0,[eve,nve,ive])))}function p5(){p5=D,lve=dut((grt(),Cst(Hx(uve,1),IZt,338,0,[cve,ove,sve])))}function b5(){b5=D,Lve=dut((sit(),Cst(Hx(Ove,1),IZt,454,0,[Ave,Dve,Ive])))}function m5(){m5=D,nRe=dut((Sft(),Cst(Hx(iRe,1),IZt,442,0,[eRe,Qxe,tRe])))}function y5(){y5=D,dRe=dut((zlt(),Cst(Hx(FRe,1),IZt,380,0,[cRe,lRe,uRe])))}function v5(){v5=D,t_e=dut((Eft(),Cst(Hx(L_e,1),IZt,381,0,[JRe,QRe,XRe])))}function w5(){w5=D,GRe=dut(($rt(),Cst(Hx(ZRe,1),IZt,293,0,[WRe,YRe,qRe])))}function x5(){x5=D,V_e=dut((Cft(),Cst(Hx(q_e,1),IZt,437,0,[z_e,H_e,U_e])))}function R5(){R5=D,vTe=dut((odt(),Cst(Hx(wTe,1),IZt,334,0,[mTe,bTe,yTe])))}function _5(){_5=D,YSe=dut((Bet(),Cst(Hx(GSe,1),IZt,272,0,[VSe,qSe,WSe])))}function k5(){return Z_t(),Cst(Hx(JTe,1),IZt,98,0,[KTe,ZTe,GTe,qTe,YTe,WTe])}function E5(t,e){return!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),ipt(t.o,e)}function C5(t){return!t.g&&(t.g=new lc),!t.g.d&&(t.g.d=new um(t)),t.g.d}function S5(t){return!t.g&&(t.g=new lc),!t.g.a&&(t.g.a=new dm(t)),t.g.a}function T5(t){return!t.g&&(t.g=new lc),!t.g.b&&(t.g.b=new lm(t)),t.g.b}function A5(t){return!t.g&&(t.g=new lc),!t.g.c&&(t.g.c=new hm(t)),t.g.c}function D5(t,e,n){var i,a;for(a=new Dot(e,t),i=0;i<n;++i)ayt(a);return a}function I5(t,e,n){var i,a;if(null!=n)for(i=0;i<e;++i)a=n[i],t.fi(i,a)}function L5(t,e,n,i){var a;return D$t(a=O5(TMe,lKt,25,e+1,15,1),t,e,n,i),a}function O5(t,e,n,i,a,r){var o;return o=$vt(a,i),10!=a&&Cst(Hx(t,r),e,n,a,o),o}function M5(t,e,n,i){return n&&(i=n.gh(e,Dgt(n.Tg(),t.c.Lj()),null,i)),i}function N5(t,e,n,i){return n&&(i=n.ih(e,Dgt(n.Tg(),t.c.Lj()),null,i)),i}function B5(t,e,n){jz(t.b,65),jz(t.b,65),jz(t.b,65),Aet(t.a,new Lj(n,e,t))}function P5(t,e,n){if(t<0||e>n||e<t)throw $m(new Tx(yXt+t+wXt+e+lXt+n))}function F5(t){if(!t)throw $m(new Fw("Unable to add element to queue"))}function j5(t){t?(this.c=t,this.b=null):(this.c=null,this.b=new Lm)}function $5(t,e){EC.call(this,t,e),this.a=O5(Lne,wZt,436,2,0,1),this.b=!0}function z5(t){Qst.call(this,t,0),wN(this),this.d.b=this.d,this.d.a=this.d}function H5(t){var e;return 0==(e=t.b).b?null:jz(Nmt(e,0),188).b}function U5(t,e){var n;return(n=new U).c=!0,n.d=e.dd(),KVt(t,e.cd(),n)}function V5(t,e){var n;n=t.q.getHours()+(e/3600|0),t.q.setSeconds(e),dzt(t,n)}function q5(t,e,n){var i;(i=t.b[n.c.p][n.p]).b+=e.b,i.c+=e.c,i.a+=e.a,++i.a}function W5(t,e){var n,a;return n=t.a-e.a,a=t.b-e.b,i.Math.sqrt(n*n+a*a)}function Y5(){Y5=D,aue=new xS("QUADRATIC",0),rue=new xS("SCANLINE",1)}function G5(){G5=D,mve=WV(fU(new j2,(vEt(),Boe),(dGt(),wce)),$oe,Hce)}function Z5(){return f_t(),Cst(Hx(BSe,1),IZt,291,0,[JEe,XEe,KEe,GEe,YEe,ZEe])}function K5(){return fyt(),Cst(Hx(WEe,1),IZt,248,0,[SEe,DEe,IEe,LEe,TEe,AEe])}function X5(){return ISt(),Cst(Hx(iue,1),IZt,227,0,[Jle,tue,Xle,Qle,eue,Kle])}function J5(){return XEt(),Cst(Hx(sde,1),IZt,275,0,[ade,ede,rde,ide,nde,tde])}function Q5(){return $Rt(),Cst(Hx(Que,1),IZt,274,0,[Zue,Gue,Xue,Yue,Kue,Wue])}function t8(){return _kt(),Cst(Hx(iye,1),IZt,313,0,[tye,Jme,Kme,Xme,eye,Qme])}function e8(){return pCt(),Cst(Hx(zue,1),IZt,276,0,[Nue,Mue,Pue,Bue,jue,Fue])}function n8(){return NSt(),Cst(Hx(Nxe,1),IZt,327,0,[Zwe,qwe,Ywe,Wwe,Gwe,Vwe])}function i8(){return dAt(),Cst(Hx(oAe,1),IZt,273,0,[iAe,eAe,nAe,tAe,QTe,aAe])}function a8(){return Qkt(),Cst(Hx(pTe,1),IZt,312,0,[rTe,iTe,oTe,eTe,aTe,nTe])}function r8(){return oCt(),Cst(Hx(Dse,1),IZt,267,0,[Sse,Cse,kse,Tse,Ese,_se])}function o8(t){_N(!!t.c),p2(t.e,t),t.c.Qb(),t.c=null,t.b=gst(t),dB(t.e,t)}function s8(t){return p2(t.c.a.e,t),EN(t.b!=t.c.a.d),t.a=t.b,t.b=t.b.a,t.a}function c8(t){var e;return!t.a&&-1!=t.b&&(e=t.c.Tg(),t.a=eet(e,t.b)),t.a}function l8(t,e){return!(t.hi()&&t.Hc(e)||(t.Yh(e),0))}function u8(t,e){return TX(e,"Horizontal alignment cannot be null"),t.b=e,t}function d8(t,e,n){var i;return fGt(),i=JWt(t,e),n&&i&&gG(t)&&(i=null),i}function h8(t,e,n){var i;for(i=t.Kc();i.Ob();)JPt(jz(i.Pb(),37),e,n)}function f8(t,e){var n;for(n=e.Kc();n.Ob();)IFt(t,jz(n.Pb(),37),0,0)}function g8(t,e,n){var a;t.d[e.g]=n,(a=t.g.c)[e.g]=i.Math.max(a[e.g],n+1)}function p8(t,e){var n,i,a;return a=t.r,i=t.d,(n=aHt(t,e,!0)).b!=a||n.a!=i}function b8(t,e){return uC(t.e,e)||Xbt(t.e,e,new nmt(e)),jz(utt(t.e,e),113)}function m8(t,e,n,i){return vG(t),vG(e),vG(n),vG(i),new wW(t,e,new V)}function y8(t,e,n,i){this.rj(),this.a=e,this.b=t,this.c=new Xq(this,e,n,i)}function v8(t,e,n,i,a,r){$2.call(this,e,i,a,r),this.c=t,this.b=n}function w8(t,e,n,i,a,r){$2.call(this,e,i,a,r),this.c=t,this.a=n}function x8(t,e,n){var i,a;a=null,(i=UJ(t,n))&&(a=vSt(i)),Wbt(e,n,a)}function R8(t,e,n){var i,a;a=null,(i=UJ(t,n))&&(a=vSt(i)),Wbt(e,n,a)}function _8(t,e,n){var i;return(i=ILt(t.b,e))?OHt(F9(t,i),n):null}function k8(t,e){var n;return(n=t.Yg(e))>=0?t._g(n,!0,!0):aDt(t,e,!0)}function E8(t,e){return Cht(Hw(_B(yEt(t,(lGt(),Rhe)))),Hw(_B(yEt(e,Rhe))))}function C8(){C8=D,Vxe=sbt(sbt(FE(new j2,(Vwt(),Pwe)),(NSt(),Zwe)),qwe)}function S8(t,e,n){var i;return i=Oct(t,e,n),t.b=new yat(i.c.length),cBt(t,i)}function T8(t){if(t.b<=0)throw $m(new yy);return--t.b,t.a-=t.c.c,nht(t.a)}function A8(t){var e;if(!t.a)throw $m(new uZ);return e=t.a,t.a=KJ(t.a),e}function D8(t){for(;!t.a;)if(!RF(t.c,new pg(t)))return!1;return!0}function I8(t){return yY(t),iO(t,198)?jz(t,198):new rh(t)}function L8(t){O8(),jz(t.We((cGt(),lSe)),174).Fc((dAt(),nAe)),t.Ye(cSe,null)}function O8(){O8=D,Qke=new gs,eEe=new ps,tEe=mlt((cGt(),cSe),Qke,zCe,eEe)}function M8(){M8=D,aRe=new pT("LEAF_NUMBER",0),rRe=new pT("NODE_SIZE",1)}function N8(t,e,n){t.a=e,t.c=n,t.b.a.$b(),yK(t.d),t.e.a.c=O5(Dte,zGt,1,0,5,1)}function B8(t){t.a=O5(TMe,lKt,25,t.b+1,15,1),t.c=O5(TMe,lKt,25,t.b,15,1),t.d=0}function P8(t,e){t.a.ue(e.d,t.b)>0&&(Wz(t.c,new mH(e.c,e.d,t.d)),t.b=e.d)}function F8(t,e){if(null==t.g||e>=t.i)throw $m(new ID(e,t.i));return t.g[e]}function j8(t,e,n){if(Mlt(t,n),null!=n&&!t.wj(n))throw $m(new uy);return n}function $8(t){var e;if(t.Ek())for(e=t.i-1;e>=0;--e)Yet(t,e);return L4(t)}function z8(t){var e,n;if(!t.b)return null;for(n=t.b;e=n.a[0];)n=e;return n}function H8(t,e){var n;return i3(e),(n=m9(t.slice(0,e),t)).length=e,n}function U8(t,e,n,i){EK(),i=i||hne,pTt(t.slice(e,n),t,e,n,-e,i)}function V8(t,e,n,i,a){return e<0?aDt(t,n,i):jz(n,66).Nj().Pj(t,t.yh(),e,i,a)}function q8(t){return iO(t,172)?""+jz(t,172).a:null==t?null:$ft(t)}function W8(t){return iO(t,172)?""+jz(t,172).a:null==t?null:$ft(t)}function Y8(t,e){if(e.a)throw $m(new fw(TXt));RW(t.a,e),e.a=t,!t.j&&(t.j=e)}function G8(t,e){bD.call(this,e.rd(),-16449&e.qd()),vG(t),this.a=t,this.c=e}function Z8(t,e){var n,i;return i=e/t.c.Hd().gc()|0,n=e%t.c.Hd().gc(),V7(t,i,n)}function K8(){K8=D,Xie=new HC(aJt,0),Kie=new HC(eJt,1),Jie=new HC(rJt,2)}function X8(){X8=D,One=new gC("All",0),Mne=new II,Nne=new AL,Bne=new LI}function J8(){J8=D,Pne=dut((X8(),Cst(Hx(Fne,1),IZt,297,0,[One,Mne,Nne,Bne])))}function Q8(){Q8=D,nse=dut((Dst(),Cst(Hx(use,1),IZt,405,0,[Joe,ese,Qoe,tse])))}function t9(){t9=D,Pae=dut((Not(),Cst(Hx(Fae,1),IZt,406,0,[Bae,Oae,Mae,Nae])))}function e9(){e9=D,Uae=dut((zmt(),Cst(Hx(Vae,1),IZt,323,0,[$ae,jae,zae,Hae])))}function n9(){n9=D,ere=dut((Hmt(),Cst(Hx(nre,1),IZt,394,0,[Jae,Xae,Qae,tre])))}function i9(){i9=D,$we=dut((Vwt(),Cst(Hx(zwe,1),IZt,393,0,[Bwe,Pwe,Fwe,jwe])))}function a9(){a9=D,ole=dut((Tst(),Cst(Hx(ple,1),IZt,360,0,[rle,ile,ale,nle])))}function r9(){r9=D,URe=dut((Avt(),Cst(Hx(VRe,1),IZt,340,0,[HRe,$Re,zRe,jRe])))}function o9(){o9=D,xle=dut((Ast(),Cst(Hx(Rle,1),IZt,411,0,[mle,yle,vle,wle])))}function s9(){s9=D,fye=dut((hyt(),Cst(Hx(gye,1),IZt,197,0,[dye,hye,uye,lye])))}function c9(){c9=D,lDe=dut(($lt(),Cst(Hx(hDe,1),IZt,396,0,[oDe,sDe,rDe,cDe])))}function l9(){l9=D,ETe=dut((Wwt(),Cst(Hx(CTe,1),IZt,285,0,[kTe,xTe,RTe,_Te])))}function u9(){u9=D,QSe=dut((kft(),Cst(Hx(tTe,1),IZt,218,0,[JSe,KSe,ZSe,XSe])))}function d9(){d9=D,nDe=dut((jgt(),Cst(Hx(iDe,1),IZt,311,0,[eDe,JAe,tDe,QAe])))}function h9(){h9=D,jAe=dut((ypt(),Cst(Hx($Ae,1),IZt,374,0,[PAe,FAe,BAe,NAe])))}function f9(){f9=D,Hzt(),jOe=BKt,FOe=PKt,zOe=new Lf(BKt),$Oe=new Lf(PKt)}function g9(){g9=D,Uue=new TS(ZQt,0),Hue=new TS("IMPROVE_STRAIGHTNESS",1)}function p9(t,e){return cH(),Wz(t,new nA(e,nht(e.e.c.length+e.g.c.length)))}function b9(t,e){return cH(),Wz(t,new nA(e,nht(e.e.c.length+e.g.c.length)))}function m9(t,e){return 10!=btt(e)&&Cst(tlt(e),e.hm,e.__elementTypeId$,btt(e),t),t}function y9(t,e){var n;return-1!=(n=x9(t,e,0))&&(s7(t,n),!0)}function v9(t,e){var n;return(n=jz(b7(t.e,e),387))?(NH(n),n.e):null}function w9(t){var e;return KD(t)&&(e=0-t,!isNaN(e))?e:oot(rct(t))}function x9(t,e,n){for(;n<t.c.length;++n)if(iZ(e,t.c[n]))return n;return-1}function R9(t,e,n){var i;return xG(t),(i=new ct).a=e,t.a.Nb(new SC(i,n)),i.a}function _9(t){var e;return xG(t),e=O5(LMe,HKt,25,0,15,1),g_(t.a,new hg(e)),e}function k9(t){var e;return e=jz(OU(t.j,0),11),jz(yEt(e,(lGt(),fhe)),11)}function E9(t){var e;if(!Jit(t))throw $m(new yy);return t.e=1,e=t.d,t.d=null,e}function C9(t,e){var n;this.f=t,this.b=e,n=jz(NY(t.b,e),283),this.c=n?n.b:null}function S9(){Hj(),this.b=new Om,this.f=new Om,this.g=new Om,this.e=new Om}function T9(t,e){this.a=O5(Rse,r1t,10,t.a.c.length,0,1),Zbt(t.a,this.a),this.b=e}function A9(t){var e;for(e=t.p+1;e<t.c.a.c.length;++e)--jz(OU(t.c.a,e),10).p}function D9(t){var e;null!=(e=t.Ai())&&-1!=t.d&&jz(e,92).Ng(t),t.i&&t.i.Fi()}function I9(t){YL(this),this.g=t?CX(t,t.$d()):null,this.f=t,wK(this),this._d()}function L9(t,e,n,i,a,r,o){wit.call(this,e,i,a,r,o),this.c=t,this.b=n}function O9(t,e,n,i,a){return vG(t),vG(e),vG(n),vG(i),vG(a),new wW(t,e,i)}function M9(t,e){if(e<0)throw $m(new Aw(Q3t+e));return g4(t,e+1),OU(t.j,e)}function N9(t,e,n,i){if(!t)throw $m(new Pw(IPt(e,Cst(Hx(Dte,1),zGt,1,5,[n,i]))))}function B9(t,e){return iZ(e,OU(t.f,0))||iZ(e,OU(t.f,1))||iZ(e,OU(t.f,2))}function P9(t,e){IF(jz(jz(t.f,33).We((cGt(),rSe)),98))&&Zft(yZ(jz(t.f,33)),e)}function F9(t,e){var n,i;return!(i=(n=jz(e,675)).Oh())&&n.Rh(i=new NA(t,e)),i}function j9(t,e){var n,i;return!(i=(n=jz(e,677)).pk())&&n.tk(i=new B0(t,e)),i}function $9(t){return t.b||(t.b=new KV(t,WIe,t),!t.a&&(t.a=new oP(t,t))),t.b}function z9(){z9=D,Aoe=new WC("XY",0),Toe=new WC("X",1),Doe=new WC("Y",2)}function H9(){H9=D,aae=new UC("TOP",0),iae=new UC(eJt,1),nae=new UC(sJt,2)}function U9(){U9=D,Cde=new OS(ZQt,0),Sde=new OS("TOP",1),Ede=new OS(sJt,2)}function V9(){V9=D,Pye=new HS("INPUT_ORDER",0),Fye=new HS("PORT_DEGREE",1)}function q9(){q9=D,hee=_L(EKt,EKt,524287),fee=_L(0,0,SKt),gee=F6(1),F6(2),pee=F6(0)}function W9(t,e,n){t.a.c=O5(Dte,zGt,1,0,5,1),WUt(t,e,n),0==t.a.c.length||ujt(t,e)}function Y9(t){var e,n;return ZW(t,0,n=t.length,e=O5(SMe,YZt,25,n,15,1),0),e}function G9(t){var e;return t.dh()||(e=dY(t.Tg())-t.Ah(),t.ph().bk(e)),t.Pg()}function Z9(t){var e;return null==(e=ent(vot(t,32)))&&(ubt(t),e=ent(vot(t,32))),e}function K9(t,e){var n;return(n=Dgt(t.d,e))>=0?Jmt(t,n,!0,!0):aDt(t,e,!0)}function X9(t,e){var n,i;return _E(),n=l4(t),i=l4(e),!!n&&!!i&&!Pmt(n.k,i.k)}function J9(t,e){Cnt(t,null==e||WF((vG(e),e))||isNaN((vG(e),e))?0:(vG(e),e))}function Q9(t,e){Snt(t,null==e||WF((vG(e),e))||isNaN((vG(e),e))?0:(vG(e),e))}function ttt(t,e){Ent(t,null==e||WF((vG(e),e))||isNaN((vG(e),e))?0:(vG(e),e))}function ett(t,e){knt(t,null==e||WF((vG(e),e))||isNaN((vG(e),e))?0:(vG(e),e))}function ntt(t){(this.q?this.q:(kK(),kK(),lne)).Ac(t.q?t.q:(kK(),kK(),lne))}function itt(t,e){return iO(e,99)&&jz(e,18).Bb&$Kt?new OD(e,t):new Dot(e,t)}function att(t,e){return iO(e,99)&&jz(e,18).Bb&$Kt?new OD(e,t):new Dot(e,t)}function rtt(t,e){Yae=new ne,Kae=e,jz((Wae=t).b,65),B5(Wae,Yae,null),oUt(Wae)}function ott(t,e,n){var i;return i=t.g[e],wO(t,e,t.oi(e,n)),t.gi(e,n,i),t.ci(),i}function stt(t,e){var n;return(n=t.Xc(e))>=0&&(t.$c(n),!0)}function ctt(t){var e;return t.d!=t.r&&(e=Txt(t),t.e=!!e&&e.Cj()==R8t,t.d=e),t.e}function ltt(t,e){var n;for(yY(t),yY(e),n=!1;e.Ob();)n|=t.Fc(e.Pb());return n}function utt(t,e){var n;return(n=jz(NY(t.e,e),387))?(rO(t,n),n.e):null}function dtt(t){var e,n;return e=t/60|0,0==(n=t%60)?""+e:e+":"+n}function htt(t,e){return Zht(t),new NU(t,new BF(new _7(e,t.a)))}function ftt(t,e){var n=t.a[e],i=(Jst(),uee)[typeof n];return i?i(n):wut(typeof n)}function gtt(t){switch(t.g){case 0:return NGt;case 1:return-1;default:return 0}}function ptt(t){return Pxt(t,(q9(),pee))<0?-CM(rct(t)):t.l+t.m*TKt+t.h*AKt}function btt(t){return null==t.__elementTypeCategory$?10:t.__elementTypeCategory$}function mtt(t){var e;return null!=(e=0==t.b.c.length?null:OU(t.b,0))&&lat(t,0),e}function ytt(t,e){for(;e[0]<t.length&&HD(" \t\r\n",Kkt(lZ(t,e[0])))>=0;)++e[0]}function vtt(t,e){this.e=e,this.a=Got(t),this.a<54?this.f=w2(t):this.c=Qbt(t)}function wtt(t,e,n,i){fGt(),Am.call(this,26),this.c=t,this.a=e,this.d=n,this.b=i}function xtt(t,e,n){var i,a;for(i=10,a=0;a<n-1;a++)e<i&&(t.a+="0"),i*=10;t.a+=e}function Rtt(t,e){var n;for(n=0;t.e!=t.i.gc();)gU(e,wmt(t),nht(n)),n!=NGt&&++n}function _tt(t,e){var n;for(++t.d,++t.c[e],n=e+1;n<t.a.length;)++t.a[n],n+=n&-n}function ktt(t,e){var n,i,a;a=e.c.i,i=(n=jz(NY(t.f,a),57)).d.c-n.e.c,Kat(e.a,i,0)}function Ett(t){var e,n;return e=t+128,!(n=(wU(),xee)[e])&&(n=xee[e]=new Df(t)),n}function Ctt(t,e){var n;return vG(e),Ott(!!(n=t[":"+e]),Cst(Hx(Dte,1),zGt,1,5,[e])),n}function Stt(t){var e,n;if(t.b){n=null;do{e=t.b,t.b=null,n=cSt(e,n)}while(t.b);t.b=n}}function Ttt(t){var e,n;if(t.a){n=null;do{e=t.a,t.a=null,n=cSt(e,n)}while(t.a);t.a=n}}function Att(t){var e;for(++t.a,e=t.c.a.length;t.a<e;++t.a)if(t.c.b[t.a])return}function Dtt(t,e){var n,i;for(n=(i=e.c)+1;n<=e.f;n++)t.a[n]>t.a[i]&&(i=n);return i}function Itt(t,e){var n;return 0==(n=Tft(t.e.c,e.e.c))?Cht(t.e.d,e.e.d):n}function Ltt(t,e){return 0==e.e||0==t.e?nne:(IDt(),DMt(t,e))}function Ott(t,e){if(!t)throw $m(new Pw(KMt("Enum constant undefined: %s",e)))}function Mtt(){Mtt=D,rse=new Ee,ose=new _e,ise=new De,ase=new Ie,sse=new Le}function Ntt(){Ntt=D,mie=new jC("BY_SIZE",0),yie=new jC("BY_SIZE_AND_SHAPE",1)}function Btt(){Btt=D,Nre=new qC("EADES",0),Bre=new qC("FRUCHTERMAN_REINGOLD",1)}function Ptt(){Ptt=D,Eue=new ES("READING_DIRECTION",0),Cue=new ES("ROTATION",1)}function Ftt(){Ftt=D,_ue=dut((Gyt(),Cst(Hx(kue,1),IZt,335,0,[vue,yue,xue,Rue,wue])))}function jtt(){jtt=D,wye=dut((Oyt(),Cst(Hx(xye,1),IZt,315,0,[vye,bye,mye,pye,yye])))}function $tt(){$tt=D,Tle=dut((L_t(),Cst(Hx(Ole,1),IZt,363,0,[kle,Cle,Sle,Ele,_le])))}function ztt(){ztt=D,Uhe=dut((_ft(),Cst(Hx(Zme,1),IZt,163,0,[Hhe,Fhe,jhe,$he,zhe])))}function Htt(){Htt=D,ske=dut((ICt(),Cst(Hx(Hke,1),IZt,316,0,[nke,ike,oke,ake,rke])))}function Utt(){Utt=D,dEe=dut((imt(),Cst(Hx(hEe,1),IZt,175,0,[lEe,cEe,oEe,uEe,sEe])))}function Vtt(){Vtt=D,j_e=dut((KOt(),Cst(Hx($_e,1),IZt,355,0,[N_e,M_e,P_e,B_e,F_e])))}function qtt(){qtt=D,zoe=dut((vEt(),Cst(Hx(Voe,1),IZt,356,0,[Boe,Poe,Foe,joe,$oe])))}function Wtt(){Wtt=D,HSe=dut((jdt(),Cst(Hx(USe,1),IZt,103,0,[$Se,jSe,FSe,PSe,zSe])))}function Ytt(){Ytt=D,UTe=dut((amt(),Cst(Hx(VTe,1),IZt,249,0,[$Te,HTe,FTe,jTe,zTe])))}function Gtt(){Gtt=D,TAe=dut((wWt(),Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])))}function Ztt(t,e){var n;return(n=jz(NY(t.a,e),134))||(n=new Jt,YG(t.a,e,n)),n}function Ktt(t){var e;return!!(e=jz(yEt(t,(lGt(),Nde)),305))&&e.a==t}function Xtt(t){var e;return!!(e=jz(yEt(t,(lGt(),Nde)),305))&&e.i==t}function Jtt(t,e){return vG(e),Mq(t),!!t.d.Ob()&&(e.td(t.d.Pb()),!0)}function Qtt(t){return Gut(t,NGt)>0?NGt:Gut(t,FZt)<0?FZt:fV(t)}function tet(t){return t<3?(dit(t,TZt),t+1):t<AZt?CJ(t/.75+1):NGt}function eet(t,e){var n;return null==t.i&&H$t(t),n=t.i,e>=0&&e<n.length?n[e]:null}function net(t,e,n){var i;if(null==e)throw $m(new gy);return i=UJ(t,e),e3(t,e,n),i}function iet(t){return t.a>=-.01&&t.a<=uJt&&(t.a=0),t.b>=-.01&&t.b<=uJt&&(t.b=0),t}function aet(t,e){return e==(ij(),ij(),_ne)?t.toLocaleLowerCase():t.toLowerCase()}function ret(t){return(2&t.i?"interface ":1&t.i?"":"class ")+(xB(t),t.o)}function oet(t){var e;e=new Dv,l8((!t.q&&(t.q=new tW(YIe,t,11,10)),t.q),e)}function set(t,e){var n;return n=e>0?e-1:e,DR(IR(jnt(IH(new qv,n),t.n),t.j),t.k)}function cet(t,e,n,i){t.j=-1,HDt(t,RSt(t,e,n),(XE(),jz(e,66).Mj().Ok(i)))}function uet(t){this.g=t,this.f=new Lm,this.a=i.Math.min(this.g.c.c,this.g.d.c)}function det(t){this.b=new Lm,this.a=new Lm,this.c=new Lm,this.d=new Lm,this.e=t}function het(t,e){this.a=new Om,this.e=new Om,this.b=(kut(),oye),this.c=t,this.b=e}function fet(t,e,n){LP.call(this),Met(this),this.a=t,this.c=n,this.b=e.d,this.f=e.e}function get(t){this.d=t,this.c=t.c.vc().Kc(),this.b=null,this.a=null,this.e=(nw(),qte)}function pet(t){if(t<0)throw $m(new Pw("Illegal Capacity: "+t));this.g=this.ri(t)}function bet(t,e){if(0>t||t>e)throw $m(new Rx("fromIndex: 0, toIndex: "+t+lXt+e))}function met(t){var e;if(t.a==t.b.a)throw $m(new yy);return e=t.a,t.c=e,t.a=t.a.e,e}function yet(t){var e;_N(!!t.c),e=t.c.a,Det(t.d,t.c),t.b==t.c?t.b=e:--t.a,t.c=null}function vet(t,e){var n;return Zht(t),n=new bK(t,t.a.rd(),4|t.a.qd(),e),new NU(t,n)}function wet(t,e){var n,i;return(n=jz(ddt(t.d,e),14))?(i=e,t.e.pc(i,n)):null}function xet(t,e){var n;for(n=t.Kc();n.Ob();)lct(jz(n.Pb(),70),(lGt(),rhe),e)}function Ret(t){var e;return(e=Hw(_B(yEt(t,(zYt(),abe)))))<0&&lct(t,abe,e=0),e}function _et(t,e,n){var a;jxt(n,a=i.Math.max(0,t.b/2-.5),1),Wz(e,new eS(n,a))}function ket(t,e,n){return CJ($H(t.a.e[jz(e.a,10).p]-t.a.e[jz(n.a,10).p]))}function Eet(t,e,n,i,a,r){var o;kQ(o=W6(i),a),_Q(o,r),XAt(t.a,i,new Ij(o,e,n.f))}function Cet(t,e){var n;if(!(n=OMt(t.Tg(),e)))throw $m(new Pw(i7t+e+o7t));return n}function Set(t,e){var n;for(n=t;KJ(n);)if((n=KJ(n))==e)return!0;return!1}function Tet(t,e){var n,i,a;for(i=e.a.cd(),n=jz(e.a.dd(),14).gc(),a=0;a<n;a++)t.td(i)}function Aet(t,e){var n,i,a,r;for(vG(e),a=0,r=(i=t.c).length;a<r;++a)n=i[a],e.td(n)}function Det(t,e){var n;return n=e.c,e.a.b=e.b,e.b.a=e.a,e.a=e.b=null,e.c=null,--t.b,n}function Iet(t,e){return!(!e||t.b[e.g]!=e||(DY(t.b,e.g,null),--t.c,0))}function Let(t,e){return!!Jat(t,e,fV(aft(EZt,nZ(fV(aft(null==e?0:Qct(e),CZt)),15))))}function Oet(t,e){IF(jz(yEt(jz(t.e,10),(zYt(),tme)),98))&&(kK(),mL(jz(t.e,10).j,e))}function Met(t){t.b=(K8(),Kie),t.f=(H9(),iae),t.d=(dit(2,DZt),new K7(2)),t.e=new HR}function Net(){Net=D,Uie=new zC("BEGIN",0),Vie=new zC(eJt,1),qie=new zC("END",2)}function Bet(){Bet=D,VSe=new PT(eJt,0),qSe=new PT("HEAD",1),WSe=new PT("TAIL",2)}function Pet(){return lIt(),Cst(Hx(iIe,1),IZt,237,0,[eIe,JDe,QDe,XDe,tIe,ZDe,GDe,KDe])}function Fet(){return CSt(),Cst(Hx(kEe,1),IZt,277,0,[wEe,fEe,mEe,vEe,gEe,pEe,bEe,yEe])}function jet(){return wBt(),Cst(Hx(Zle,1),IZt,270,0,[$le,Ule,jle,Wle,Hle,zle,qle,Vle])}function $et(){return cMt(),Cst(Hx(Iye,1),IZt,260,0,[Tye,_ye,Cye,kye,Eye,Rye,Sye,Aye])}function zet(){zet=D,XTe=dut((Z_t(),Cst(Hx(JTe,1),IZt,98,0,[KTe,ZTe,GTe,qTe,YTe,WTe])))}function Het(){Het=D,Zie=(Net(),Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length,Gie=Zie}function Uet(t){this.b=(yY(t),new QF(t)),this.a=new Lm,this.d=new Lm,this.e=new HR}function Vet(t){var e;return(e=i.Math.sqrt(t.a*t.a+t.b*t.b))>0&&(t.a/=e,t.b/=e),t}function qet(t){var e;return t.w?t.w:((e=Y1(t))&&!e.kh()&&(t.w=e),e)}function Wet(t){var e;return null==t?null:Gkt(e=jz(t,190),e.length)}function Yet(t,e){if(null==t.g||e>=t.i)throw $m(new ID(e,t.i));return t.li(e,t.g[e])}function Get(t){var e,n;for(e=t.a.d.j,n=t.c.d.j;e!=n;)sat(t.b,e),e=kht(e);sat(t.b,e)}function Zet(t){var e;for(e=0;e<t.c.length;e++)(u1(e,t.c.length),jz(t.c[e],11)).p=e}function Ket(t,e,n){var i,a,r;for(a=e[n],i=0;i<a.length;i++)r=a[i],t.e[r.c.p][r.p]=i}function Xet(t,e){var n,i,a,r;for(a=0,r=(i=t.d).length;a<r;++a)n=i[a],uO(t.g,n).a=e}function Jet(t,e){var n;for(n=cmt(t,0);n.b!=n.d.c;)VP(jz(d4(n),8),e);return t}function Qet(t,e){return qP(jL(jz(NY(t.g,e),8)),PL(jz(NY(t.f,e),460).b))}function tnt(t){var e;return p2(t.e,t),EN(t.b),t.c=t.a,e=jz(t.a.Pb(),42),t.b=gst(t),e}function ent(t){var e;return KH(null==t||Array.isArray(t)&&!((e=btt(t))>=14&&e<=16)),t}function nnt(t,e,n){var i=function(){return t.apply(i,arguments)};return e.apply(i,n),i}function int(t,e,n){var i,a;i=e;do{a=Hw(t.p[i.p])+n,t.p[i.p]=a,i=t.a[i.p]}while(i!=e)}function ant(t,e){var n,i;i=t.a,n=Zdt(t,e,null),i!=e&&!t.e&&(n=rqt(t,e,n)),n&&n.Fi()}function rnt(t,e){return cL(),iit(PZt),i.Math.abs(t-e)<=PZt||t==e||isNaN(t)&&isNaN(e)}function ont(t,e){return cL(),iit(PZt),i.Math.abs(t-e)<=PZt||t==e||isNaN(t)&&isNaN(e)}function snt(t,e){return FEt(),xL(t.b.c.length-t.e.c.length,e.b.c.length-e.e.c.length)}function cnt(t,e){return XR(Xat(t,e,fV(aft(EZt,nZ(fV(aft(null==e?0:Qct(e),CZt)),15)))))}function lnt(){lnt=D,Ase=dut((oCt(),Cst(Hx(Dse,1),IZt,267,0,[Sse,Cse,kse,Tse,Ese,_se])))}function unt(){unt=D,QEe=dut((f_t(),Cst(Hx(BSe,1),IZt,291,0,[JEe,XEe,KEe,GEe,YEe,ZEe])))}function dnt(){dnt=D,OEe=dut((fyt(),Cst(Hx(WEe,1),IZt,248,0,[SEe,DEe,IEe,LEe,TEe,AEe])))}function hnt(){hnt=D,nue=dut((ISt(),Cst(Hx(iue,1),IZt,227,0,[Jle,tue,Xle,Qle,eue,Kle])))}function fnt(){fnt=D,ode=dut((XEt(),Cst(Hx(sde,1),IZt,275,0,[ade,ede,rde,ide,nde,tde])))}function gnt(){gnt=D,Jue=dut(($Rt(),Cst(Hx(Que,1),IZt,274,0,[Zue,Gue,Xue,Yue,Kue,Wue])))}function pnt(){pnt=D,nye=dut((_kt(),Cst(Hx(iye,1),IZt,313,0,[tye,Jme,Kme,Xme,eye,Qme])))}function bnt(){bnt=D,$ue=dut((pCt(),Cst(Hx(zue,1),IZt,276,0,[Nue,Mue,Pue,Bue,jue,Fue])))}function mnt(){mnt=D,Kwe=dut((NSt(),Cst(Hx(Nxe,1),IZt,327,0,[Zwe,qwe,Ywe,Wwe,Gwe,Vwe])))}function ynt(){ynt=D,rAe=dut((dAt(),Cst(Hx(oAe,1),IZt,273,0,[iAe,eAe,nAe,tAe,QTe,aAe])))}function vnt(){vnt=D,sTe=dut((Qkt(),Cst(Hx(pTe,1),IZt,312,0,[rTe,iTe,oTe,eTe,aTe,nTe])))}function wnt(){return QIt(),Cst(Hx(PTe,1),IZt,93,0,[TTe,STe,DTe,NTe,MTe,OTe,ITe,LTe,ATe])}function xnt(t,e){var n;n=t.a,t.a=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,0,n,t.a))}function Rnt(t,e){var n;n=t.b,t.b=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,1,n,t.b))}function _nt(t,e){var n;n=t.b,t.b=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,3,n,t.b))}function knt(t,e){var n;n=t.f,t.f=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,3,n,t.f))}function Ent(t,e){var n;n=t.g,t.g=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,4,n,t.g))}function Cnt(t,e){var n;n=t.i,t.i=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,5,n,t.i))}function Snt(t,e){var n;n=t.j,t.j=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,6,n,t.j))}function Tnt(t,e){var n;n=t.j,t.j=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,1,n,t.j))}function Ant(t,e){var n;n=t.c,t.c=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,4,n,t.c))}function Dnt(t,e){var n;n=t.k,t.k=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,2,n,t.k))}function Int(t,e){var n;n=t.d,t.d=e,4&t.Db&&!(1&t.Db)&&hot(t,new u3(t,2,n,t.d))}function Lnt(t,e){var n;n=t.s,t.s=e,4&t.Db&&!(1&t.Db)&&hot(t,new u3(t,4,n,t.s))}function Ont(t,e){var n;n=t.t,t.t=e,4&t.Db&&!(1&t.Db)&&hot(t,new u3(t,5,n,t.t))}function Mnt(t,e){var n;n=t.F,t.F=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,5,n,e))}function Nnt(t,e){var n;return(n=jz(NY((JE(),bIe),t),55))?n.xj(e):O5(Dte,zGt,1,e,5,1)}function Bnt(t,e){var n;return e in t.a&&(n=UJ(t,e).he())?n.a:null}function Pnt(t,e){var n,i;return QR(),i=new cc,e&&TMt(i,e),Mit(n=i,t),n}function Fnt(t,e,n){if(Mlt(t,n),!t.Bk()&&null!=n&&!t.wj(n))throw $m(new uy);return n}function jnt(t,e){return t.n=e,t.n?(t.f=new Lm,t.e=new Lm):(t.f=null,t.e=null),t}function $nt(t,e,n,i,a,r){var o;return Znt(n,o=mY(t,e)),o.i=a?8:0,o.f=i,o.e=a,o.g=r,o}function znt(t,e,n,i,a){this.d=e,this.k=i,this.f=a,this.o=-1,this.p=1,this.c=t,this.a=n}function Hnt(t,e,n,i,a){this.d=e,this.k=i,this.f=a,this.o=-1,this.p=2,this.c=t,this.a=n}function Unt(t,e,n,i,a){this.d=e,this.k=i,this.f=a,this.o=-1,this.p=6,this.c=t,this.a=n}function Vnt(t,e,n,i,a){this.d=e,this.k=i,this.f=a,this.o=-1,this.p=7,this.c=t,this.a=n}function qnt(t,e,n,i,a){this.d=e,this.j=i,this.e=a,this.o=-1,this.p=4,this.c=t,this.a=n}function Wnt(t,e){var n,i,a,r;for(a=0,r=(i=e).length;a<r;++a)n=i[a],Y8(t.a,n);return t}function Ynt(t){var e,n,i;for(n=0,i=(e=t).length;n<i;++n)yY(e[n]);return new AD(t)}function Gnt(t){var e=/function(?:\s+([\w$]+))?\s*\(/.exec(t);return e&&e[1]||VZt}function Znt(t,e){if(t){e.n=t;var n=VJ(e);if(!n)return void(EGt[t]=[e]);n.gm=e}}function Knt(t,e,n){var a;return a=t.length,FTt(t,0,e,0,i.Math.min(n,a),!0),e}function Xnt(t,e,n){var i,a;for(a=e.Kc();a.Ob();)i=jz(a.Pb(),79),RW(t,jz(n.Kb(i),33))}function Jnt(){Z_();for(var t=CGt,e=0;e<arguments.length;e++)t.push(arguments[e])}function Qnt(t,e){var n,i,a;for(i=0,a=(n=e).length;i<a;++i)n6(t,n[i],t.c.b,t.c)}function tit(t,e){t.b=i.Math.max(t.b,e.d),t.e+=e.r+(0==t.a.c.length?0:t.c),Wz(t.a,e)}function eit(t){_N(t.c>=0),ibt(t.d,t.c)<0&&(t.a=t.a-1&t.d.a.length-1,t.b=t.d.c),t.c=-1}function nit(t){return t.a<54?t.f<0?-1:t.f>0?1:0:(!t.c&&(t.c=vut(t.f)),t.c).e}function iit(t){if(!(t>=0))throw $m(new Pw("tolerance ("+t+") must be >= 0"));return t}function ait(){return iEe||wlt(iEe=new APt,Cst(Hx(Tie,1),zGt,130,0,[new Id])),iEe}function rit(){rit=D,Uye=new US(lJt,0),zye=new US("INPUT",1),Hye=new US("OUTPUT",2)}function oit(){oit=D,fue=new _S("ARD",0),pue=new _S("MSD",1),gue=new _S("MANUAL",2)}function sit(){sit=D,Ave=new ZS("BARYCENTER",0),Dve=new ZS(R1t,1),Ive=new ZS(_1t,2)}function cit(t,e){var n;if(n=t.gc(),e<0||e>n)throw $m(new QP(e,n));return new NF(t,e)}function lit(t,e){var n;return iO(e,42)?t.c.Mc(e):(n=ipt(t,e),Ypt(t,e),n)}function uit(t,e,n){return Tut(t,e),Oat(t,n),Lnt(t,0),Ont(t,1),Qdt(t,!0),Kdt(t,!0),t}function dit(t,e){if(t<0)throw $m(new Pw(e+" cannot be negative but was: "+t));return t}function hit(t,e){var n,i;for(n=0,i=t.gc();n<i;++n)if(iZ(e,t.Xb(n)))return n;return-1}function fit(t){var e;for(e=t.c.Cc().Kc();e.Ob();)jz(e.Pb(),14).$b();t.c.$b(),t.d=0}function git(t){var e,n,i,a;for(i=0,a=(n=t.a).length;i<a;++i)GW(e=n[i],e.length,null)}function pit(t){var e,n;if(0==t)return 32;for(n=0,e=1;!(e&t);e<<=1)++n;return n}function bit(t){var e;for(e=new Wf(ewt(t));e.a<e.c.c.length;)jz(J1(e),680).Gf()}function mit(t){bE(),this.g=new Om,this.f=new Om,this.b=new Om,this.c=new pJ,this.i=t}function yit(){this.f=new HR,this.d=new hv,this.c=new HR,this.a=new Lm,this.b=new Lm}function vit(t,e,n,i){this.rj(),this.a=e,this.b=t,this.c=null,this.c=new uF(this,e,n,i)}function wit(t,e,n,i,a){this.d=t,this.n=e,this.g=n,this.o=i,this.p=-1,a||(this.o=-2-i-1)}function xit(){TO.call(this),this.n=-1,this.g=null,this.i=null,this.j=null,this.Bb|=w7t}function Rit(){return QFt(),Cst(Hx(XAe,1),IZt,259,0,[UAe,qAe,HAe,WAe,YAe,ZAe,GAe,VAe,zAe])}function _it(){return tPt(),Cst(Hx(jie,1),IZt,250,0,[Pie,Lie,Oie,Iie,Nie,Bie,Mie,Die,Aie])}function kit(){kit=D,Aee=Cst(Hx(TMe,1),lKt,25,15,[0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15])}function Eit(){Eit=D,vve=fU(fU(fU(new j2,(vEt(),Boe),(dGt(),ace)),Poe,Ace),Foe,Tce)}function Cit(){Cit=D,wve=fU(fU(fU(new j2,(vEt(),Boe),(dGt(),ace)),Poe,Ace),Foe,Tce)}function Sit(){Sit=D,_ve=fU(fU(fU(new j2,(vEt(),Boe),(dGt(),ace)),Poe,Ace),Foe,Tce)}function Tit(){Tit=D,Cve=WV(fU(fU(new j2,(vEt(),Foe),(dGt(),Lce)),joe,Rce),$oe,Ice)}function Ait(){Ait=D,lue=new RS("LAYER_SWEEP",0),cue=new RS($1t,1),uue=new RS(ZQt,2)}function Dit(t,e){var n,i;return n=t.c,(i=e.e[t.p])>0?jz(OU(n.a,i-1),10):null}function Iit(t,e){var n;n=t.k,t.k=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,2,n,t.k))}function Lit(t,e){var n;n=t.f,t.f=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,8,n,t.f))}function Oit(t,e){var n;n=t.i,t.i=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,7,n,t.i))}function Mit(t,e){var n;n=t.a,t.a=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,8,n,t.a))}function Nit(t,e){var n;n=t.b,t.b=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,0,n,t.b))}function Bit(t,e){var n;n=t.b,t.b=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,0,n,t.b))}function Pit(t,e){var n;n=t.c,t.c=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,1,n,t.c))}function Fit(t,e){var n;n=t.c,t.c=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,1,n,t.c))}function jit(t,e){var n;n=t.c,t.c=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,4,n,t.c))}function $it(t,e){var n;n=t.d,t.d=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,1,n,t.d))}function zit(t,e){var n;n=t.D,t.D=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,2,n,t.D))}function Hit(t,e){t.r>0&&t.c<t.r&&(t.c+=e,t.i&&t.i.d>0&&0!=t.g&&Hit(t.i,e/t.r*t.i.d))}function Uit(t,e,n){var i;t.b=e,t.a=n,i=512==(512&t.a)?new Fv:new Bu,t.c=kBt(i,t.b,t.a)}function Vit(t,e){return INt(t.e,e)?(XE(),ctt(e)?new uU(e,t):new OA(e,t)):new BA(e,t)}function qit(t,e){return KR(Jat(t.a,e,fV(aft(EZt,nZ(fV(aft(null==e?0:Qct(e),CZt)),15)))))}function Wit(t,e,n){return O9(t,new lg(e),new ot,new ug(n),Cst(Hx(Jne,1),IZt,132,0,[]))}function Yit(t){return 0>t?new Yk:new DB(null,new m6(t+1,t))}function Git(t,e){var n;return kK(),n=new qk(1),qA(t)?mQ(n,t,e):xTt(n.f,t,e),new qf(n)}function Zit(t,e){var n,i;return(n=t.o+t.p)<(i=e.o+e.p)?-1:n==i?0:1}function Kit(t){var e;return iO(e=yEt(t,(lGt(),fhe)),160)?ygt(jz(e,160)):null}function Xit(t){var e;return(t=i.Math.max(t,2))>(e=wct(t))?(e<<=1)>0?e:AZt:e}function Jit(t){switch(rM(3!=t.e),t.e){case 2:return!1;case 0:return!0}return P6(t)}function Qit(t,e){var n;return!!iO(e,8)&&(n=jz(e,8),t.a==n.a&&t.b==n.b)}function tat(t,e,n){var i,a;return a=e>>5,i=31&e,t0(wq(t.n[n][a],fV(yq(i,1))),3)}function eat(t,e){var n,i;for(i=e.vc().Kc();i.Ob();)mRt(t,(n=jz(i.Pb(),42)).cd(),n.dd())}function nat(t,e){var n;n=new ne,jz(e.b,65),jz(e.b,65),jz(e.b,65),Aet(e.a,new Rz(t,n,e))}function iat(t,e){var n;n=t.b,t.b=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,21,n,t.b))}function aat(t,e){var n;n=t.d,t.d=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,11,n,t.d))}function rat(t,e){var n;n=t.j,t.j=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,13,n,t.j))}function oat(t,e,n){var i,a,r;for(r=t.a.length-1,a=t.b,i=0;i<n;a=a+1&r,++i)DY(e,i,t.a[a])}function sat(t,e){var n;return vG(e),n=e.g,!t.b[n]&&(DY(t.b,n,e),++t.c,!0)}function cat(t,e){var n;return!((n=null==e?-1:x9(t.b,e,0))<0||(lat(t,n),0))}function lat(t,e){var n;n=s7(t.b,t.b.c.length-1),e<t.b.c.length&&(i6(t.b,e,n),PTt(t,e))}function uat(t,e){0==(v6(),qne?null:e.c).length&&UB(e,new Y),mQ(t.a,qne?null:e.c,e)}function dat(t,e){Akt(e,"Hierarchical port constraint processing",1),hmt(t),KYt(t),zCt(e)}function hat(t,e){var n,i;for(i=e.Kc();i.Ob();)n=jz(i.Pb(),266),t.b=!0,RW(t.e,n),n.b=t}function fat(t,e){var n,i;return n=1-e,i=t.a[n],t.a[n]=i.a[e],i.a[e]=t,t.b=!0,i.b=!1,i}function gat(t,e){var n,i;return n=jz(yEt(t,(zYt(),sme)),8),i=jz(yEt(e,sme),8),Cht(n.b,i.b)}function pat(t){NV.call(this),this.b=Hw(_B(yEt(t,(zYt(),yme)))),this.a=jz(yEt(t,Xpe),218)}function bat(t,e,n){H2.call(this,t,e,n),this.a=new Om,this.b=new Om,this.d=new Wp(this)}function mat(t){this.e=t,this.d=new d_(tet(gq(this.e).gc())),this.c=this.e.a,this.b=this.e.c}function yat(t){this.b=t,this.a=O5(TMe,lKt,25,t+1,15,1),this.c=O5(TMe,lKt,25,t,15,1),this.d=0}function vat(t,e,n){var i;return xNt(t,e,i=new Lm,n,!0,!0),t.b=new yat(i.c.length),i}function wat(t,e){var n;return(n=jz(NY(t.c,e),458))||((n=new iv).c=e,YG(t.c,n.c,n)),n}function xat(t,e){var n=t.a,i=0;for(var a in n)n.hasOwnProperty(a)&&(e[i++]=a);return e}function Rat(t){return null==t.b?(ZE(),ZE(),LLe):t.Lk()?t.Kk():t.Jk()}function _at(t){var e,n;for(n=new AO(t);n.e!=n.i.gc();)Cnt(e=jz(wmt(n),33),0),Snt(e,0)}function kat(){kat=D,soe=new rm(AQt),coe=new rm(DQt),ooe=new rm(IQt),roe=new rm(LQt)}function Eat(){Eat=D,Hse=new XC("TO_INTERNAL_LTR",0),zse=new XC("TO_INPUT_DIRECTION",1)}function Cat(){Cat=D,Zxe=new fT("P1_NODE_PLACEMENT",0),Kxe=new fT("P2_EDGE_ROUTING",1)}function Sat(){Sat=D,Ble=new vS("START",0),Nle=new vS("MIDDLE",1),Mle=new vS("END",2)}function Tat(){Tat=D,Qce=new eP("edgelabelcenterednessanalysis.includelabel",(cM(),mee))}function Aat(t,e){Kk(AZ(new NU(null,new h1(new Cf(t.b),1)),new KT(t,e)),new JT(t,e))}function Dat(){this.c=new S_(0),this.b=new S_($4t),this.d=new S_(j4t),this.a=new S_(XJt)}function Iat(t){var e,n;for(n=t.c.a.ec().Kc();n.Ob();)Uh(e=jz(n.Pb(),214),new zEt(e.e))}function Lat(t){var e,n;for(n=t.c.a.ec().Kc();n.Ob();)Hh(e=jz(n.Pb(),214),new Yq(e.f))}function Oat(t,e){var n;n=t.zb,t.zb=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,1,n,t.zb))}function Mat(t,e){var n;n=t.xb,t.xb=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,3,n,t.xb))}function Nat(t,e){var n;n=t.yb,t.yb=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,2,n,t.yb))}function Bat(t,e){var n;(n=new Tv).n=e,l8((!t.s&&(t.s=new tW(PIe,t,21,17)),t.s),n)}function Pat(t,e){var n;(n=new pB).n=e,l8((!t.s&&(t.s=new tW(PIe,t,21,17)),t.s),n)}function Fat(t,e){var n,i;for(U8(n=t.Pc(),0,n.length,e),i=0;i<n.length;i++)t._c(i,n[i])}function jat(t,e){var n,i,a;for(vG(e),n=!1,a=e.Kc();a.Ob();)i=a.Pb(),n|=t.Fc(i);return n}function $at(t){var e,n,i;for(e=0,i=t.Kc();i.Ob();)e=~~(e+=null!=(n=i.Pb())?Qct(n):0);return e}function zat(t){var e;return 0==t?"UTC":(t<0?(t=-t,e="UTC+"):e="UTC-",e+dtt(t))}function Hat(t,e){var n;return iO(e,14)?(n=jz(e,14),t.Gc(n)):ltt(t,jz(yY(e),20).Kc())}function Uat(t,e,n){het.call(this,e,n),this.d=O5(Rse,r1t,10,t.a.c.length,0,1),Zbt(t.a,this.d)}function Vat(t){t.a=null,t.e=null,t.b.c=O5(Dte,zGt,1,0,5,1),t.f.c=O5(Dte,zGt,1,0,5,1),t.c=null}function qat(t,e){e?null==t.B&&(t.B=t.D,t.D=null):null!=t.B&&(t.D=t.B,t.B=null)}function Wat(t,e){return Hw(_B(DM(Idt(DZ(new NU(null,new h1(t.c.b,16)),new Op(t)),e))))}function Yat(t,e){return Hw(_B(DM(Idt(DZ(new NU(null,new h1(t.c.b,16)),new Lp(t)),e))))}function Gat(t,e){Akt(e,w1t,1),Kk(htt(new NU(null,new h1(t.b,16)),new Je),new Qe),zCt(e)}function Zat(t,e){var n,i;return n=jz(JIt(t,(qwt(),IRe)),19),i=jz(JIt(e,IRe),19),xL(n.a,i.a)}function Kat(t,e,n){var i,a;for(a=cmt(t,0);a.b!=a.d.c;)(i=jz(d4(a),8)).a+=e,i.b+=n;return t}function Xat(t,e,n){var i;for(i=t.b[n&t.f];i;i=i.b)if(n==i.a&&hG(e,i.g))return i;return null}function Jat(t,e,n){var i;for(i=t.c[n&t.f];i;i=i.d)if(n==i.f&&hG(e,i.i))return i;return null}function Qat(t,e,n){var i,a,r;for(i=0,a=0;a<n;a++)r=e[a],t[a]=r<<1|i,i=r>>>31;0!=i&&(t[n]=i)}function trt(t,e){var n,i;for(kK(),i=new Lm,n=0;n<t;++n)i.c[i.c.length]=e;return new Dx(i)}function ert(t){var e;return GA((e=R2(t)).a,0)?(cE(),cE(),Ene):(cE(),new yN(e.b))}function nrt(t){var e;return GA((e=R2(t)).a,0)?(cE(),cE(),Ene):(cE(),new yN(e.c))}function irt(t){var e;return GA((e=x2(t)).a,0)?(lE(),lE(),Cne):(lE(),new vN(e.b))}function art(t){return t.b.c.i.k==(oCt(),kse)?jz(yEt(t.b.c.i,(lGt(),fhe)),11):t.b.c}function rrt(t){return t.b.d.i.k==(oCt(),kse)?jz(yEt(t.b.d.i,(lGt(),fhe)),11):t.b.d}function ort(t,e,n,i,a,r,o,s,c,l,u,d,h){return hTt(t,e,n,i,a,r,o,s,c,l,u,d,h),Uht(t,!1),t}function srt(t,e,n,i,a,r,o){gk.call(this,t,e),this.d=n,this.e=i,this.c=a,this.b=r,this.a=r7(o)}function crt(t,e){typeof window===DGt&&typeof window.$gwt===DGt&&(window.$gwt[t]=e)}function lrt(t,e){return Dst(),t==Joe&&e==ese||t==ese&&e==Joe||t==tse&&e==Qoe||t==Qoe&&e==tse}function urt(t,e){return Dst(),t==Joe&&e==Qoe||t==Joe&&e==tse||t==ese&&e==tse||t==ese&&e==Qoe}function drt(t,e){return cL(),iit(uJt),i.Math.abs(0-e)<=uJt||0==e||isNaN(0)&&isNaN(e)?0:t/e}function hrt(){return hBt(),Cst(Hx(vde,1),IZt,256,0,[lde,dde,hde,fde,gde,pde,mde,cde,ude,bde])}function frt(){frt=D,kLe=new Sv,CLe=Cst(Hx(PIe,1),O8t,170,0,[]),ELe=Cst(Hx(YIe,1),M8t,59,0,[])}function grt(){grt=D,cve=new YS("NO",0),ove=new YS("GREEDY",1),sve=new YS("LOOK_BACK",2)}function prt(){prt=D,Nse=new ze,Ose=new $e,Mse=new He,Lse=new Ue,Bse=new Ve,Pse=new qe}function brt(t){var e,n;for(n=0,e=new Wf(t.b);e.a<e.c.c.length;)jz(J1(e),29).p=n,++n}function mrt(t,e){var n;return IAt(new OT((n=Fkt(t)).c,n.d),new OT(n.b,n.a),t.rf(),e,t.Hf())}function yrt(t,e){var n;return t.b?null:(n=set(t,t.g),MH(t.a,n),n.i=t,t.d=e,n)}function vrt(t,e,n){Akt(n,"DFS Treeifying phase",1),xpt(t,e),aNt(t,e),t.a=null,t.b=null,zCt(n)}function wrt(t,e,n){this.g=t,this.d=e,this.e=n,this.a=new Lm,qTt(this),kK(),mL(this.a,null)}function xrt(t){this.i=t.gc(),this.i>0&&(this.g=this.ri(this.i+(this.i/8|0)+1),t.Qc(this.g))}function Rrt(t,e){_H.call(this,qLe,t,e),this.b=this,this.a=rNt(t.Tg(),eet(this.e.Tg(),this.c))}function _rt(t,e){var n,i;for(vG(e),i=e.vc().Kc();i.Ob();)n=jz(i.Pb(),42),t.zc(n.cd(),n.dd())}function krt(t,e,n){var i;for(i=n.Kc();i.Ob();)if(!H4(t,e,i.Pb()))return!1;return!0}function Ert(t,e,n,i,a){var r;return n&&(r=Dgt(e.Tg(),t.c),a=n.gh(e,-1-(-1==r?i:r),null,a)),a}function Crt(t,e,n,i,a){var r;return n&&(r=Dgt(e.Tg(),t.c),a=n.ih(e,-1-(-1==r?i:r),null,a)),a}function Srt(t){var e;if(-2==t.b){if(0==t.e)e=-1;else for(e=0;0==t.a[e];e++);t.b=e}return t.b}function Trt(t){switch(t.g){case 2:return wWt(),SAe;case 4:return wWt(),sAe;default:return t}}function Art(t){switch(t.g){case 1:return wWt(),EAe;case 3:return wWt(),cAe;default:return t}}function Drt(t){var e,n,i;return t.j==(wWt(),cAe)&&(n=kM(e=qDt(t),sAe),(i=kM(e,SAe))||i&&n)}function Irt(t){var e;return new ZF(e=jz(t.e&&t.e(),9),jz(YW(e,e.length),9),e.length)}function Lrt(t,e){Akt(e,w1t,1),tgt(sE(new Eg((gE(),new $Z(t,!1,!1,new je))))),zCt(e)}function Ort(t,e){return cM(),qA(t)?l7(t,kB(e)):VA(t)?Rq(t,_B(e)):UA(t)?xq(t,RB(e)):t.wd(e)}function Mrt(t,e){e.q=t,t.d=i.Math.max(t.d,e.r),t.b+=e.d+(0==t.a.c.length?0:t.c),Wz(t.a,e)}function Nrt(t,e){var n,i,a,r;return a=t.c,n=t.c+t.b,r=t.d,i=t.d+t.a,e.a>a&&e.a<n&&e.b>r&&e.b<i}function Brt(t,e,n,i){iO(t.Cb,179)&&(jz(t.Cb,179).tb=null),Oat(t,n),e&&FAt(t,e),i&&t.xk(!0)}function Prt(t,e){var n;zK(n=jz(e,183),"x",t.i),zK(n,"y",t.j),zK(n,S7t,t.g),zK(n,C7t,t.f)}function Frt(){Frt=D,Sve=sbt(wD(fU(fU(new j2,(vEt(),Foe),(dGt(),Lce)),joe,Rce),$oe),Ice)}function jrt(){jrt=D,Mve=sbt(wD(fU(fU(new j2,(vEt(),Foe),(dGt(),Lce)),joe,Rce),$oe),Ice)}function $rt(){$rt=D,WRe=new yT(ZQt,0),YRe=new yT("POLAR_COORDINATE",1),qRe=new yT("ID",2)}function zrt(){zrt=D,Wye=new VS("EQUALLY",0),Yye=new VS(yJt,1),Gye=new VS("NORTH_SOUTH",2)}function Hrt(){Hrt=D,Dye=dut((cMt(),Cst(Hx(Iye,1),IZt,260,0,[Tye,_ye,Cye,kye,Eye,Rye,Sye,Aye])))}function Urt(){Urt=D,Yle=dut((wBt(),Cst(Hx(Zle,1),IZt,270,0,[$le,Ule,jle,Wle,Hle,zle,qle,Vle])))}function Vrt(){Vrt=D,xEe=dut((CSt(),Cst(Hx(kEe,1),IZt,277,0,[wEe,fEe,mEe,vEe,gEe,pEe,bEe,yEe])))}function qrt(){qrt=D,nIe=dut((lIt(),Cst(Hx(iIe,1),IZt,237,0,[eIe,JDe,QDe,XDe,tIe,ZDe,GDe,KDe])))}function Wrt(){Wrt=D,Gae=new eP("debugSVG",(cM(),!1)),Zae=new eP("overlapsExisted",!0)}function Yrt(t,e){return O9(new og(t),new sg(e),new cg(e),new et,Cst(Hx(Jne,1),IZt,132,0,[]))}function Grt(){var t;return zne||(zne=new By,ZI(t=new y6(""),(uE(),$ne)),uat(zne,t)),zne}function Zrt(t,e){for(yY(e);t.Ob();)if(!Zot(jz(t.Pb(),10)))return!1;return!0}function Krt(t,e){var n;return!!(n=WPt(ait(),t))&&(Kmt(e,(cGt(),mSe),n),!0)}function Xrt(t,e){var n;for(n=0;n<e.j.c.length;n++)jz(M9(t,n),21).Gc(jz(M9(e,n),14));return t}function Jrt(t,e){var n,i;for(i=new Wf(e.b);i.a<i.c.c.length;)n=jz(J1(i),29),t.a[n.p]=ZEt(n)}function Qrt(t,e){var n,i;for(vG(e),i=t.vc().Kc();i.Ob();)n=jz(i.Pb(),42),e.Od(n.cd(),n.dd())}function tot(t,e){iO(e,83)?(jz(t.c,76).Xj(),eat(t,jz(e,83))):jz(t.c,76).Wb(e)}function eot(t){return iO(t,152)?o7(jz(t,152)):iO(t,131)?jz(t,131).a:iO(t,54)?new lw(t):new Ck(t)}function not(t,e){return e<t.b.gc()?jz(t.b.Xb(e),10):e==t.b.gc()?t.a:jz(OU(t.e,e-t.b.gc()-1),10)}function iot(t,e){t.a=ift(t.a,1),t.c=i.Math.min(t.c,e),t.b=i.Math.max(t.b,e),t.d=ift(t.d,e)}function aot(t,e){Akt(e,"Edge and layer constraint edge reversal",1),jqt(LPt(t)),zCt(e)}function rot(t){var e;null==t.d?(++t.e,t.f=0,idt(null)):(++t.e,e=t.d,t.d=null,t.f=0,idt(e))}function oot(t){var e;return 0==(e=t.h)?t.l+t.m*TKt:e==CKt?t.l+t.m*TKt-AKt:t}function sot(t){return zB(),t.A.Hc((ypt(),NAe))&&!t.B.Hc((QFt(),qAe))?Qgt(t):null}function cot(t){if(vG(t),0==t.length)throw $m(new _x("Zero length BigInteger"));nFt(this,t)}function lot(t){if(!t)throw $m(new Fw("no calls to next() since the last call to remove()"))}function uot(t){return IKt<t&&t<AKt?t<0?i.Math.ceil(t):i.Math.floor(t):oot(pMt(t))}function dot(t,e){var n,i,a;for(n=t.c.Ee(),a=e.Kc();a.Ob();)i=a.Pb(),t.a.Od(n,i);return t.b.Kb(n)}function hot(t,e){var n,i,a;if(null!=(n=t.Jg())&&t.Mg())for(i=0,a=n.length;i<a;++i)n[i].ui(e)}function fot(t,e){var n,i;for(i=bG(n=t).e;i;){if((n=i)==e)return!0;i=bG(n).e}return!1}function got(t,e,n){var i,a;return(i=t.a.f[e.p])<(a=t.a.f[n.p])?-1:i==a?0:1}function pot(t,e,n){var i,a;return a=jz(VF(t.d,e),19),i=jz(VF(t.b,n),19),a&&i?V7(t,a.a,i.a):null}function bot(t,e){var n,i;for(i=new AO(t);i.e!=i.i.gc();)kI(n=jz(wmt(i),33),n.i+e.b,n.j+e.d)}function mot(t,e){var n,i;for(i=new Wf(e);i.a<i.c.c.length;)n=jz(J1(i),70),Wz(t.d,n),PEt(t,n)}function yot(t,e){var n,i;i=new Lm,n=e;do{i.c[i.c.length]=n,n=jz(NY(t.k,n),17)}while(n);return i}function vot(t,e){var n;return t.Db&e?-1==(n=Bvt(t,e))?t.Eb:ent(t.Eb)[n]:null}function wot(t,e){var n;return(n=new Bd).G=e,!t.rb&&(t.rb=new Kq(t,jIe,t)),l8(t.rb,n),n}function xot(t,e){var n;return(n=new xy).G=e,!t.rb&&(t.rb=new Kq(t,jIe,t)),l8(t.rb,n),n}function Rot(t,e){switch(e){case 1:return!!t.n&&0!=t.n.i;case 2:return null!=t.k}return m0(t,e)}function _ot(t){switch(t.a.g){case 1:return new xA;case 3:return new lwt;default:return new Cd}}function kot(t){var e;if(t.g>1||t.Ob())return++t.a,t.g=0,e=t.i,t.Ob(),e;throw $m(new yy)}function Eot(t){var e;return aL(),rC(swe,t)||((e=new so).a=t,hP(swe,t,e)),jz(oZ(swe,t),635)}function Cot(t){var e,n,i;return n=0,(i=t)<0&&(i+=AKt,n=CKt),e=CJ(i/TKt),_L(CJ(i-e*TKt),e,n)}function Sot(t){var e,n,i;for(i=0,n=new Gk(t.a);n.a<n.c.a.length;)e=r3(n),t.b.Hc(e)&&++i;return i}function Tot(t){var e,n,i;for(e=1,i=t.Kc();i.Ob();)e=~~(e=31*e+(null==(n=i.Pb())?0:Qct(n)));return e}function Aot(t,e){var n;this.c=t,pvt(t,n=new Lm,e,t.b,null,!1,null,!1),this.a=new _2(n,0)}function Dot(t,e){this.b=t,this.e=e,this.d=e.j,this.f=(XE(),jz(t,66).Oj()),this.k=rNt(e.e.Tg(),t)}function Iot(t,e,n){this.b=(vG(t),t),this.d=(vG(e),e),this.e=(vG(n),n),this.c=this.d+""+this.e}function Lot(){this.a=jz(ymt((uPt(),zre)),19).a,this.c=Hw(_B(ymt(ioe))),this.b=Hw(_B(ymt(Qre)))}function Oot(){Oot=D,BTe=dut((QIt(),Cst(Hx(PTe,1),IZt,93,0,[TTe,STe,DTe,NTe,MTe,OTe,ITe,LTe,ATe])))}function Mot(){Mot=D,Fie=dut((tPt(),Cst(Hx(jie,1),IZt,250,0,[Pie,Lie,Oie,Iie,Nie,Bie,Mie,Die,Aie])))}function Not(){Not=D,Bae=new VC("UP",0),Oae=new VC(bJt,1),Mae=new VC(aJt,2),Nae=new VC(rJt,3)}function Bot(){Bot=D,sQ(),yxe=new DD(W4t,vxe=Bxe),j0(),bxe=new DD(Y4t,mxe=zxe)}function Pot(){Pot=D,xde=new LS("ONE_SIDED",0),Rde=new LS("TWO_SIDED",1),wde=new LS("OFF",2)}function Fot(t){t.r=new Ny,t.w=new Ny,t.t=new Lm,t.i=new Lm,t.d=new Ny,t.a=new dI,t.c=new Om}function jot(t){this.n=new Lm,this.e=new Zk,this.j=new Zk,this.k=new Lm,this.f=new Lm,this.p=t}function $ot(t,e){t.c&&(XFt(t,e,!0),Kk(new NU(null,new h1(e,16)),new zp(t))),XFt(t,e,!1)}function zot(t,e,n){return t==(sit(),Ive)?new Sr:0!=zLt(e,1)?new NR(n.length):new MR(n.length)}function Hot(t,e){var n;return e&&((n=e.Ve()).dc()||(t.q?_rt(t.q,n):t.q=new mD(n))),t}function Uot(t,e){var n;return void 0===(n=t.a.get(e))?++t.d:(mP(t.a,e),--t.c,oX(t.b)),n}function Vot(t,e){var n;return 0==(n=e.p-t.p)?Cht(t.f.a*t.f.b,e.f.a*e.f.b):n}function qot(t,e){var n,i;return(n=t.f.c.length)<(i=e.f.c.length)?-1:n==i?0:1}function Wot(t){return 0!=t.b.c.length&&jz(OU(t.b,0),70).a?jz(OU(t.b,0),70).a:tK(t)}function Yot(t){var e;if(t){if((e=t).dc())throw $m(new yy);return e.Xb(e.gc()-1)}return r1(t.Kc())}function Got(t){var e;return Gut(t,0)<0&&(t=rH(t)),64-(0!=(e=fV(vq(t,32)))?JAt(e):JAt(fV(t))+32)}function Zot(t){var e;return e=jz(yEt(t,(lGt(),Gde)),61),t.k==(oCt(),kse)&&(e==(wWt(),SAe)||e==sAe)}function Kot(t,e,n){var i,a;(a=jz(yEt(t,(zYt(),bbe)),74))&&(Ylt(i=new vv,0,a),Jet(i,n),jat(e,i))}function Xot(t,e,n){var i,a,r,o;i=(o=bG(t)).d,a=o.c,r=t.n,e&&(r.a=r.a-i.b-a.a),n&&(r.b=r.b-i.d-a.b)}function Jot(t,e){var n,i;return(n=t.j)!=(i=e.j)?n.g-i.g:t.p==e.p?0:n==(wWt(),cAe)?t.p-e.p:e.p-t.p}function Qot(t){var e,n;for(CWt(t),n=new Wf(t.d);n.a<n.c.c.length;)(e=jz(J1(n),101)).i&&WCt(e)}function tst(t,e,n,i,a){DY(t.c[e.g],n.g,i),DY(t.c[n.g],e.g,i),DY(t.b[e.g],n.g,a),DY(t.b[n.g],e.g,a)}function est(t,e,n,i){jz(n.b,65),jz(n.b,65),jz(i.b,65),jz(i.b,65),jz(i.b,65),Aet(i.a,new xz(t,e,i))}function nst(t,e){t.d==(jdt(),FSe)||t.d==zSe?jz(e.a,57).c.Fc(jz(e.b,57)):jz(e.b,57).c.Fc(jz(e.a,57))}function ist(t,e,n,i){return 1==n?(!t.n&&(t.n=new tW(HDe,t,1,7)),Fmt(t.n,e,i)):eCt(t,e,n,i)}function ast(t,e){var n;return Oat(n=new Hc,e),l8((!t.A&&(t.A=new LO(SLe,t,7)),t.A),n),n}function rst(t,e,n){var i,a;return a=L2(e,D7t),bRt((i=new aA(t,n)).a,i.b,a),a}function ost(t){var e;return(!t.a||!(1&t.Bb)&&t.a.kh())&&iO(e=Txt(t),148)&&(t.a=jz(e,148)),t.a}function sst(t,e){var n,i;for(vG(e),i=e.Kc();i.Ob();)if(n=i.Pb(),!t.Hc(n))return!1;return!0}function cst(t,e){var n,i,a;return n=t.l+e.l,i=t.m+e.m+(n>>22),a=t.h+e.h+(i>>22),_L(n&EKt,i&EKt,a&CKt)}function lst(t,e){var n,i,a;return n=t.l-e.l,i=t.m-e.m+(n>>22),a=t.h-e.h+(i>>22),_L(n&EKt,i&EKt,a&CKt)}function ust(t){var e;return t<128?(!(e=(_U(),kee)[t])&&(e=kee[t]=new If(t)),e):new If(t)}function dst(t){var e;return iO(t,78)?t:((e=t&&t.__java$exception)||oy(e=new xut(t)),e)}function hst(t){if(iO(t,186))return jz(t,118);if(t)return null;throw $m(new $w(e5t))}function fst(t,e){if(null==e)return!1;for(;t.a!=t.b;)if(Odt(e,Fut(t)))return!0;return!1}function gst(t){return!!t.a.Ob()||t.a==t.d&&(t.a=new k2(t.e.f),t.a.Ob())}function pst(t,e){var n;return 0!=(n=e.Pc()).length&&(Qz(t.c,t.c.length,n),!0)}function bst(t,e,n){var i,a;for(a=e.vc().Kc();a.Ob();)i=jz(a.Pb(),42),t.yc(i.cd(),i.dd(),n);return t}function mst(t,e){var n;for(n=new Wf(t.b);n.a<n.c.c.length;)lct(jz(J1(n),70),(lGt(),rhe),e)}function yst(t,e,n){var i,a;for(a=new Wf(t.b);a.a<a.c.c.length;)kI(i=jz(J1(a),33),i.i+e,i.j+n)}function vst(t,e){if(!t)throw $m(new Pw(IPt("value already present: %s",Cst(Hx(Dte,1),zGt,1,5,[e]))))}function wst(t,e){return!(!t||!e||t==e)&&Fpt(t.d.c,e.d.c+e.d.b)&&Fpt(e.d.c,t.d.c+t.d.b)}function xst(){return v6(),qne?new y6(null):jDt(Grt(),"com.google.common.base.Strings")}function Rst(t,e){var n;return n=sN(e.a.gc()),Kk(vet(new NU(null,new h1(e,1)),t.i),new LT(t,n)),n}function _st(t){var e;return Oat(e=new Hc,"T"),l8((!t.d&&(t.d=new LO(SLe,t,11)),t.d),e),e}function kst(t){var e,n,i,a;for(e=1,n=0,a=t.gc();n<a;++n)e=31*e+(null==(i=t.ki(n))?0:Qct(i));return e}function Est(t,e,n,i){var a;return h2(e,t.e.Hd().gc()),h2(n,t.c.Hd().gc()),a=t.a[e][n],DY(t.a[e],n,i),a}function Cst(t,e,n,i,a){return a.gm=t,a.hm=e,a.im=A,a.__elementTypeId$=n,a.__elementTypeCategory$=i,a}function Sst(t,e,n,a,r){return xBt(),i.Math.min(VVt(t,e,n,a,r),VVt(n,a,t,e,zN(new OT(r.a,r.b))))}function Tst(){Tst=D,rle=new QC(ZQt,0),ile=new QC(S1t,1),ale=new QC(T1t,2),nle=new QC("BOTH",3)}function Ast(){Ast=D,mle=new mS(eJt,0),yle=new mS(aJt,1),vle=new mS(rJt,2),wle=new mS("TOP",3)}function Dst(){Dst=D,Joe=new GC("Q1",0),ese=new GC("Q4",1),Qoe=new GC("Q2",2),tse=new GC("Q3",3)}function Ist(){Ist=D,hve=new GS("OFF",0),fve=new GS("SINGLE_EDGE",1),dve=new GS("MULTI_EDGE",2)}function Lst(){Lst=D,Yke=new kT("MINIMUM_SPANNING_TREE",0),Wke=new kT("MAXIMUM_SPANNING_TREE",1)}function Ost(){Ost=D,Xke=new ls,Kke=new ss}function Mst(t){var e,n;for(e=new Zk,n=cmt(t.d,0);n.b!=n.d.c;)MH(e,jz(d4(n),188).c);return e}function Nst(t){var e,n;for(n=new Lm,e=t.Kc();e.Ob();)pst(n,fBt(jz(e.Pb(),33)));return n}function Bst(t){var e;tzt(t,!0),e=GZt,IN(t,(zYt(),lme))&&(e+=jz(yEt(t,lme),19).a),lct(t,lme,nht(e))}function Pst(t,e,n){var i;DW(t.a),Aet(n.i,new wb(t)),wbt(t,i=new CL(jz(NY(t.a,e.b),65)),e),n.f=i}function Fst(t,e){var n,i;return n=t.c,(i=e.e[t.p])<n.a.c.length-1?jz(OU(n.a,i+1),10):null}function jst(t,e){var n,i;for(WK(e,"predicate"),i=0;t.Ob();i++)if(n=t.Pb(),e.Lb(n))return i;return-1}function $st(t,e){var n,i;if(i=0,t<64&&t<=e)for(e=e<64?e:63,n=t;n<=e;n++)i=e0(i,yq(1,n));return i}function zst(t){var e,n,i;for(kK(),i=0,n=t.Kc();n.Ob();)i+=null!=(e=n.Pb())?Qct(e):0,i|=0;return i}function Hst(t){var e;return QR(),e=new oc,t&&l8((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a),e),e}function Ust(t){var e;return(e=new m).a=t,e.b=vct(t),e.c=O5(zee,cZt,2,2,6,1),e.c[0]=zat(t),e.c[1]=zat(t),e}function Vst(t,e){if(0===e)return!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),void t.o.c.$b();ySt(t,e)}function qst(t,e,n){switch(n.g){case 2:t.b=e;break;case 1:t.c=e;break;case 4:t.d=e;break;case 3:t.a=e}}function Wst(t){switch(t.g){case 1:return RTe;case 2:return xTe;case 3:return _Te;default:return kTe}}function Yst(t){switch(jz(yEt(t,(zYt(),vbe)),163).g){case 2:case 4:return!0;default:return!1}}function Gst(){Gst=D,yde=dut((hBt(),Cst(Hx(vde,1),IZt,256,0,[lde,dde,hde,fde,gde,pde,mde,cde,ude,bde])))}function Zst(){Zst=D,KAe=dut((QFt(),Cst(Hx(XAe,1),IZt,259,0,[UAe,qAe,HAe,WAe,YAe,ZAe,GAe,VAe,zAe])))}function Kst(){Kst=D,qxe=fU(sbt(sbt(FE(fU(new j2,(Vwt(),Pwe),(NSt(),Zwe)),Fwe),Wwe),Ywe),jwe,Gwe)}function Xst(){Xst=D,Due=new CS(ZQt,0),Aue=new CS("INCOMING_ONLY",1),Iue=new CS("OUTGOING_ONLY",2)}function Jst(){Jst=D,uee={boolean:Vk,number:Cw,string:Sw,object:_Tt,function:_Tt,undefined:Wm}}function Qst(t,e){bH(t>=0,"Negative initial capacity"),bH(e>=0,"Non-positive load factor"),DW(this)}function tct(t,e,n){return!(t>=128)&&KA(t<64?t0(yq(1,t),n):t0(yq(1,t-64),e),0)}function ect(t,e){return!(!t||!e||t==e)&&Tft(t.b.c,e.b.c+e.b.b)<0&&Tft(e.b.c,t.b.c+t.b.b)<0}function nct(t){var e,n,i;return n=t.n,i=t.o,e=t.d,new VZ(n.a-e.b,n.b-e.d,i.a+(e.b+e.c),i.b+(e.d+e.a))}function ict(t){var e,n,i,a;for(i=0,a=(n=t.a).length;i<a;++i)Ect(t,e=n[i],(wWt(),EAe)),Ect(t,e,cAe)}function act(t){var e,n;for(null==t.j&&(t.j=(EX(),TRt(eee.ce(t)))),e=0,n=t.j.length;e<n;++e);}function rct(t){var e,n;return _L(e=1+~t.l&EKt,n=~t.m+(0==e?1:0)&EKt,~t.h+(0==e&&0==n?1:0)&CKt)}function oct(t,e){return _$t(jz(jz(NY(t.g,e.a),46).a,65),jz(jz(NY(t.g,e.b),46).a,65))}function sct(t,e,n){var i;if(e>(i=t.gc()))throw $m(new QP(e,i));return t.hi()&&(n=JJ(t,n)),t.Vh(e,n)}function cct(t,e,n){return null==n?(!t.q&&(t.q=new Om),b7(t.q,e)):(!t.q&&(t.q=new Om),YG(t.q,e,n)),t}function lct(t,e,n){return null==n?(!t.q&&(t.q=new Om),b7(t.q,e)):(!t.q&&(t.q=new Om),YG(t.q,e,n)),t}function uct(t){var e,n;return Hot(n=new y7,t),lct(n,(kat(),soe),t),ezt(t,n,e=new Om),Eqt(t,n,e),n}function dct(t){var e,n,i;for(xBt(),n=O5(EEe,cZt,8,2,0,1),i=0,e=0;e<2;e++)i+=.5,n[e]=dvt(i,t);return n}function hct(t,e){var n,i,a;for(n=!1,i=t.a[e].length,a=0;a<i-1;a++)n|=Cpt(t,e,a,a+1);return n}function fct(t,e,n,i,a){var r,o;for(o=n;o<=a;o++)for(r=e;r<=i;r++)mvt(t,r,o)||jPt(t,r,o,!0,!1)}function gct(t,e){this.b=t,LD.call(this,(jz(Yet(GK((GY(),JIe).o),10),18),e.i),e.g),this.a=(frt(),CLe)}function pct(t,e){this.c=t,this.d=e,this.b=this.d/this.c.c.Hd().gc()|0,this.a=this.d%this.c.c.Hd().gc()}function bct(){this.o=null,this.k=null,this.j=null,this.d=null,this.b=null,this.n=null,this.a=null}function mct(t,e,n){this.q=new i.Date,this.q.setFullYear(t+cKt,e,n),this.q.setHours(0,0,0,0),dzt(this,0)}function yct(){yct=D,Oye=new zS(ZQt,0),Lye=new zS("NODES_AND_EDGES",1),Mye=new zS("PREFER_EDGES",2)}function vct(t){var e;return 0==t?"Etc/GMT":(t<0?(t=-t,e="Etc/GMT-"):e="Etc/GMT+",e+dtt(t))}function wct(t){var e;if(t<0)return FZt;if(0==t)return 0;for(e=AZt;!(e&t);e>>=1);return e}function xct(t){var e,n;return 32==(n=JAt(t.h))?32==(e=JAt(t.m))?JAt(t.l)+32:e+20-10:n-12}function Rct(t){var e;return null==(e=t.a[t.b])?null:(DY(t.a,t.b,null),t.b=t.b+1&t.a.length-1,e)}function _ct(t){var e,n;return e=t.t-t.k[t.o.p]*t.d+t.j[t.o.p]>t.f,n=t.u+t.e[t.o.p]*t.d>t.f*t.s*t.d,e||n}function kct(t,e,n){var i,a;return i=new $5(e,n),a=new U,t.b=YNt(t,t.b,i,a),a.b||++t.c,t.b.b=!1,a.d}function Ect(t,e,n){var i,a,r;for(r=0,a=Ldt(e,n).Kc();a.Ob();)i=jz(a.Pb(),11),YG(t.c,i,nht(r++))}function Cct(t){var e,n;for(n=new Wf(t.a.b);n.a<n.c.c.length;)(e=jz(J1(n),81)).g.c=-e.g.c-e.g.b;wMt(t)}function Sct(t){var e,n;for(n=new Wf(t.a.b);n.a<n.c.c.length;)(e=jz(J1(n),57)).d.c=-e.d.c-e.d.b;vMt(t)}function Tct(t){var e;return(!t.c||!(1&t.Bb)&&64&t.c.Db)&&iO(e=Txt(t),88)&&(t.c=jz(e,26)),t.c}function Act(t){var e,n,i;e=1+~t.l&EKt,n=~t.m+(0==e?1:0)&EKt,i=~t.h+(0==e&&0==n?1:0)&CKt,t.l=e,t.m=n,t.h=i}function Dct(t){var e,n,i,a,r;for(e=new HR,a=0,r=(i=t).length;a<r;++a)n=i[a],e.a+=n.a,e.b+=n.b;return e}function Ict(t,e){var n,i,a,r,o;for(kK(),o=!1,a=0,r=(i=e).length;a<r;++a)n=i[a],o|=t.Fc(n);return o}function Lct(t){var e,n;for(xBt(),n=-17976931348623157e292,e=0;e<t.length;e++)t[e]>n&&(n=t[e]);return n}function Oct(t,e,n){var i;return xNt(t,e,i=new Lm,(wWt(),sAe),!0,!1),xNt(t,n,i,SAe,!1,!1),i}function Mct(t,e,n){var i,a;return a=L2(e,"labels"),WIt((i=new gA(t,n)).a,i.b,a),a}function Nct(t,e,n,i){var a;return(a=yLt(t,e,n,i))||!(a=rht(t,n,i))||jUt(t,e,a)?a:null}function Bct(t,e,n,i){var a;return(a=vLt(t,e,n,i))||!(a=oht(t,n,i))||jUt(t,e,a)?a:null}function Pct(t,e){var n;for(n=0;n<t.a.a.length;n++)if(!jz(MU(t.a,n),169).Lb(e))return!1;return!0}function Fct(t,e,n){if(yY(e),n.Ob())for(sD(e,CY(n.Pb()));n.Ob();)sD(e,t.a),sD(e,CY(n.Pb()));return e}function jct(t){var e,n,i;for(kK(),i=1,n=t.Kc();n.Ob();)i=31*i+(null!=(e=n.Pb())?Qct(e):0),i|=0;return i}function $ct(t,e,n,i,a){var r;return r=xIt(t,e),n&&Act(r),a&&(t=Evt(t,e),dee=i?rct(t):_L(t.l,t.m,t.h)),r}function zct(t,e){var n;try{e.Vd()}catch(i){if(!iO(i=dst(i),78))throw $m(i);n=i,t.c[t.c.length]=n}}function Hct(t,e,n){var i,a;return iO(e,144)&&n?(i=jz(e,144),a=n,t.a[i.b][a.b]+t.a[a.b][i.b]):0}function Uct(t,e){switch(e){case 7:return!!t.e&&0!=t.e.i;case 8:return!!t.d&&0!=t.d.i}return ugt(t,e)}function Vct(t,e){switch(e.g){case 0:iO(t.b,631)||(t.b=new Lot);break;case 1:iO(t.b,632)||(t.b=new lH)}}function qct(t,e){for(;null!=t.g||t.c?null==t.g||0!=t.i&&jz(t.g[t.i-1],47).Ob():QJ(t);)bA(e,rOt(t))}function Wct(t,e,n){t.g=DSt(t,e,(wWt(),sAe),t.b),t.d=DSt(t,n,sAe,t.b),0!=t.g.c&&0!=t.d.c&&VEt(t)}function Yct(t,e,n){t.g=DSt(t,e,(wWt(),SAe),t.j),t.d=DSt(t,n,SAe,t.j),0!=t.g.c&&0!=t.d.c&&VEt(t)}function Gct(t,e,n){return!w_(AZ(new NU(null,new h1(t.c,16)),new ag(new XT(e,n)))).sd((fE(),Qne))}function Zct(t){var e;return xG(t),e=new ct,t.a.sd(e)?(CO(),new bw(vG(e.a))):(CO(),CO(),kne)}function Kct(t){var e;return!(t.b<=0)&&((e=HD("MLydhHmsSDkK",Kkt(lZ(t.c,0))))>1||e>=0&&t.b<3)}function Xct(t){var e,n;for(e=new vv,n=cmt(t,0);n.b!=n.d.c;)BN(e,0,new hI(jz(d4(n),8)));return e}function Jct(t){var e;for(e=new Wf(t.a.b);e.a<e.c.c.length;)jz(J1(e),81).f.$b();vw(t.b,t),$Mt(t)}function Qct(t){return qA(t)?myt(t):VA(t)?YD(t):UA(t)?(vG(t),t?1231:1237):eq(t)?t.Hb():AV(t)?EM(t):QK(t)}function tlt(t){return qA(t)?zee:VA(t)?Cee:UA(t)?wee:eq(t)||AV(t)?t.gm:t.gm||Array.isArray(t)&&Hx(Qte,1)||Qte}function elt(t){if(0===t.g)return new os;throw $m(new Pw(O3t+(null!=t.f?t.f:""+t.g)))}function nlt(t){if(0===t.g)return new as;throw $m(new Pw(O3t+(null!=t.f?t.f:""+t.g)))}function ilt(t,e,n){if(0===e)return!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),void tot(t.o,n);vTt(t,e,n)}function alt(t,e,n){this.g=t,this.e=new HR,this.f=new HR,this.d=new Zk,this.b=new Zk,this.a=e,this.c=n}function rlt(t,e,n,i){this.b=new Lm,this.n=new Lm,this.i=i,this.j=n,this.s=t,this.t=e,this.r=0,this.d=0}function olt(t){this.e=t,this.d=new p3(this.e.g),this.a=this.d,this.b=gst(this),this.$modCount=t.$modCount}function slt(t){for(;!t.d||!t.d.Ob();){if(!t.b||Ww(t.b))return null;t.d=jz(fW(t.b),47)}return t.d}function clt(t){return Wz(t.c,(Ost(),Xke)),ont(t.a,Hw(_B(ymt((Bgt(),Yme)))))?new Vs:new Cb(t)}function llt(t){switch(t.g){case 1:return j4t;default:case 2:return 0;case 3:return XJt;case 4:return $4t}}function ult(){var t;return fGt(),kMe||(t=tN(JWt("M",!0)),t=gV(JWt("M",!1),t),kMe=t)}function dlt(t,e){var n,i,a;for(a=t.b;a;){if(0==(n=t.a.ue(e,a.d)))return a;i=n<0?0:1,a=a.a[i]}return null}function hlt(t,e,n){var i,a;cM(),i=!!RD(n),(a=jz(e.xc(i),15))||(a=new Lm,e.zc(i,a)),a.Fc(n)}function flt(t,e){var n,i;return(n=jz(JIt(t,(YLt(),f_e)),19).a)==(i=jz(JIt(e,f_e),19).a)||n<i?-1:n>i?1:0}function glt(t,e){return!!hMt(t,e)&&(XAt(t.b,jz(yEt(e,(lGt(),qde)),21),e),MH(t.a,e),!0)}function plt(t){var e,n;(e=jz(yEt(t,(lGt(),xhe)),10))&&(y9((n=e.c).a,e),0==n.a.c.length&&y9(bG(e).b,n))}function blt(t){return qne?O5(Hne,gXt,572,0,0,1):jz(Zbt(t.a,O5(Hne,gXt,572,t.a.c.length,0,1)),842)}function mlt(t,e,n,i){return JG(),new cw(Cst(Hx(zte,1),wZt,42,0,[(Vyt(t,e),new bk(t,e)),(Vyt(n,i),new bk(n,i))]))}function ylt(t,e,n){var i;return uit(i=new Dv,e,n),l8((!t.q&&(t.q=new tW(YIe,t,11,10)),t.q),i),i}function vlt(t){var e,n,i,a;for(n=(a=lC(ADe,t)).length,i=O5(zee,cZt,2,n,6,1),e=0;e<n;++e)i[e]=a[e];return i}function wlt(t,e){var n,i,a,r,o;for(a=0,r=(i=e).length;a<r;++a)n=i[a],o=new VY(t),n.Qe(o),Ozt(o);DW(t.f)}function xlt(t,e){var n;return e===t||!!iO(e,224)&&(n=jz(e,224),Odt(t.Zb(),n.Zb()))}function Rlt(t,e){var n;2*e+1>=t.b.c.length||(Rlt(t,2*e+1),(n=2*e+2)<t.b.c.length&&Rlt(t,n),PTt(t,e))}function _lt(t,e,n){var i,a;this.g=t,this.c=e,this.a=this,this.d=this,a=Xit(n),i=O5(Zte,SZt,330,a,0,1),this.b=i}function klt(t,e,n){var i;for(i=n-1;i>=0&&t[i]===e[i];i--);return i<0?0:sC(t0(t[i],qKt),t0(e[i],qKt))?-1:1}function Elt(t,e){var n,i;for(i=cmt(t,0);i.b!=i.d.c;)(n=jz(d4(i),214)).e.length>0&&(e.td(n),n.i&&bht(n))}function Clt(t,e){var n,i;return i=jz(vot(t.a,4),126),n=O5(hIe,n8t,415,e,0,1),null!=i&&rHt(i,0,n,0,i.length),n}function Slt(t,e){var n;return n=new iPt(0!=(256&t.f),t.i,t.a,t.d,0!=(16&t.f),t.j,t.g,e),null!=t.e||(n.c=t),n}function Tlt(t,e){var n;for(n=t.Zb().Cc().Kc();n.Ob();)if(jz(n.Pb(),14).Hc(e))return!0;return!1}function Alt(t,e,n,i,a){var r,o;for(o=n;o<=a;o++)for(r=e;r<=i;r++)if(mvt(t,r,o))return!0;return!1}function Dlt(t,e,n){var i,a,r,o;for(vG(n),o=!1,r=t.Zc(e),a=n.Kc();a.Ob();)i=a.Pb(),r.Rb(i),o=!0;return o}function Ilt(t,e){var n;return t===e||!!iO(e,83)&&(n=jz(e,83),VCt(uq(t),n.vc()))}function Llt(t,e,n){var i,a;for(a=n.Kc();a.Ob();)if(i=jz(a.Pb(),42),t.re(e,i.dd()))return!0;return!1}function Olt(t,e,n){return t.d[e.p][n.p]||(nyt(t,e,n),t.d[e.p][n.p]=!0,t.d[n.p][e.p]=!0),t.a[e.p][n.p]}function Mlt(t,e){if(!t.ai()&&null==e)throw $m(new Pw("The 'no null' constraint is violated"));return e}function Nlt(t,e){null==t.D&&null!=t.B&&(t.D=t.B,t.B=null),zit(t,null==e?null:(vG(e),e)),t.C&&t.yk(null)}function Blt(t,e){return!(!t||t==e||!IN(e,(lGt(),nhe)))&&jz(yEt(e,(lGt(),nhe)),10)!=t}function Plt(t){switch(t.i){case 2:return!0;case 1:return!1;case-1:++t.c;default:return t.pl()}}function Flt(t){switch(t.i){case-2:return!0;case-1:return!1;case 1:--t.c;default:return t.ql()}}function jlt(t){PJ.call(this,"The given string does not match the expected format for individual spacings.",t)}function $lt(){$lt=D,oDe=new iA("ELK",0),sDe=new iA("JSON",1),rDe=new iA("DOT",2),cDe=new iA("SVG",3)}function zlt(){zlt=D,cRe=new bT(ZQt,0),lRe=new bT("RADIAL_COMPACTION",1),uRe=new bT("WEDGE_COMPACTION",2)}function Hlt(){Hlt=D,Gne=new pC("CONCURRENT",0),Zne=new pC("IDENTITY_FINISH",1),Kne=new pC("UNORDERED",2)}function Ult(){Ult=D,hE(),ore=new DD($Jt,sre=ire),rre=new rm(zJt),cre=new rm(HJt),lre=new rm(UJt)}function Vlt(){Vlt=D,ule=new Ri,dle=new _i,lle=new ki,cle=new Ei,vG(new Ci),sle=new B}function qlt(){qlt=D,eve=new WS("CONSERVATIVE",0),nve=new WS("CONSERVATIVE_SOFT",1),ive=new WS("SLOPPY",2)}function Wlt(){Wlt=D,fTe=new WI(15),hTe=new qI((cGt(),qCe),fTe),gTe=gSe,cTe=aCe,lTe=BCe,dTe=jCe,uTe=FCe}function Ylt(t,e,n){var i,a;for(i=new Zk,a=cmt(n,0);a.b!=a.d.c;)MH(i,new hI(jz(d4(a),8)));Dlt(t,e,i)}function Glt(t){var e,n,i;for(e=0,i=O5(EEe,cZt,8,t.b,0,1),n=cmt(t,0);n.b!=n.d.c;)i[e++]=jz(d4(n),8);return i}function Zlt(t){var e;return!t.a&&(t.a=new tW(qIe,t,9,5)),0!=(e=t.a).i?$E(jz(Yet(e,0),678)):null}function Klt(t,e){var n;return n=ift(t,e),sC(n0(t,e),0)|ZA(n0(t,n),0)?n:ift(hZt,n0(wq(n,63),1))}function Xlt(t,e){var n;n=null!=ymt((Bgt(),Yme))&&null!=e.wg()?Hw(_B(e.wg()))/Hw(_B(ymt(Yme))):1,YG(t.b,e,n)}function Jlt(t,e){var n,i;return(n=jz(t.d.Bc(e),14))?((i=t.e.hc()).Gc(n),t.e.d-=n.gc(),n.$b(),i):null}function Qlt(t,e){var n,i;if(0!=(i=t.c[e]))for(t.c[e]=0,t.d-=i,n=e+1;n<t.a.length;)t.a[n]-=i,n+=n&-n}function tut(t){var e;if((e=t.a.c.length)>0)return Bq(e-1,t.a.c.length),s7(t.a,e-1);throw $m(new my)}function eut(t,e,n){if(e<0)throw $m(new Aw(Q3t+e));e<t.j.c.length?i6(t.j,e,n):(g4(t,e),Wz(t.j,n))}function nut(t,e,n){if(t>e)throw $m(new Pw(yXt+t+vXt+e));if(t<0||e>n)throw $m(new Rx(yXt+t+wXt+e+lXt+n))}function iut(t){if(!(t.a&&8&t.a.i))throw $m(new Fw("Enumeration class expected for layout option "+t.f))}function aut(t){var e;++t.j,0==t.i?t.g=null:t.i<t.g.length&&(e=t.g,t.g=t.ri(t.i),rHt(e,0,t.g,0,t.i))}function rut(t,e){var n,i;for(n=t.a.length-1,t.c=t.c-1&n;e!=t.c;)i=e+1&n,DY(t.a,e,t.a[i]),e=i;DY(t.a,t.c,null)}function out(t,e){var n,i;for(n=t.a.length-1;e!=t.b;)i=e-1&n,DY(t.a,e,t.a[i]),e=i;DY(t.a,t.b,null),t.b=t.b+1&n}function sut(t,e,n){var i;return IQ(e,t.c.length),0!=(i=n.Pc()).length&&(Qz(t.c,e,i),!0)}function cut(t){var e,n;if(null==t)return null;for(e=0,n=t.length;e<n;e++)if(!EH(t[e]))return t[e];return null}function lut(t,e,n){var i,a,r,o;for(r=0,o=(a=n).length;r<o;++r)if(i=a[r],t.b.re(e,i.cd()))return i;return null}function uut(t){var e,n,i,a,r;for(r=1,i=0,a=(n=t).length;i<a;++i)r=31*r+(null!=(e=n[i])?Qct(e):0),r|=0;return r}function dut(t){var e,n,i,a,r;for(e={},a=0,r=(i=t).length;a<r;++a)e[":"+(null!=(n=i[a]).f?n.f:""+n.g)]=n;return e}function hut(t){var e;for(yY(t),Cj(!0,"numberToAdvance must be nonnegative"),e=0;e<0&&gIt(t);e++)V6(t);return e}function fut(t){var e,n,i;for(i=0,n=new oq(XO(t.a.Kc(),new u));gIt(n);)(e=jz(V6(n),17)).c.i==e.d.i||++i;return i}function gut(t,e){var n,i,a;for(n=t,a=0;;){if(n==e)return a;if(!(i=n.e))throw $m(new hy);n=bG(i),++a}}function put(t,e){var n,i,a;for(a=e-t.f,i=new Wf(t.d);i.a<i.c.c.length;)wpt(n=jz(J1(i),443),n.e,n.f+a);t.f=e}function but(t,e,n){return i.Math.abs(e-t)<F4t||i.Math.abs(n-t)<F4t||(e-t>F4t?t-n>F4t:n-t>F4t)}function mut(t,e){return!t||e&&!t.j||iO(t,124)&&0==jz(t,124).a.b?0:t.Re()}function yut(t,e){return!t||e&&!t.k||iO(t,124)&&0==jz(t,124).a.a?0:t.Se()}function vut(t){return ABt(),t<0?-1!=t?new Bmt(-1,-t):Xee:t<=10?Qee[CJ(t)]:new Bmt(1,t)}function wut(t){throw Jst(),$m(new gw("Unexpected typeof result '"+t+"'; please report this bug to the GWT team"))}function xut(t){cx(),YL(this),wK(this),this.e=t,SNt(this,t),this.g=null==t?VGt:$ft(t),this.a="",this.b=t,this.a=""}function Rut(){this.a=new es,this.f=new fb(this),this.b=new gb(this),this.i=new pb(this),this.e=new bb(this)}function _ut(){iw.call(this,new z5(tet(16))),dit(2,sZt),this.b=2,this.a=new $G(null,null,0,null),ey(this.a,this.a)}function kut(){kut=D,aye=new BS("DUMMY_NODE_OVER",0),rye=new BS("DUMMY_NODE_UNDER",1),oye=new BS("EQUAL",2)}function Eut(){Eut=D,qoe=$J(Cst(Hx(USe,1),IZt,103,0,[(jdt(),FSe),jSe])),Woe=$J(Cst(Hx(USe,1),IZt,103,0,[zSe,PSe]))}function Cut(t){return(wWt(),vAe).Hc(t.j)?Hw(_B(yEt(t,(lGt(),Ihe)))):Dct(Cst(Hx(EEe,1),cZt,8,0,[t.i.n,t.n,t.a])).b}function Sut(t){var e,n;for(e=t.b.a.a.ec().Kc();e.Ob();)n=new ZLt(jz(e.Pb(),561),t.e,t.f),Wz(t.g,n)}function Tut(t,e){var n,i;n=t.nk(e,null),i=null,e&&(e_(),ant(i=new Bm,t.r)),(n=zkt(t,i,n))&&n.Fi()}function Aut(t,e){var n,i;for(i=0!=zLt(t.d,1),n=!0;n;)n=!1,n=e.c.Tf(e.e,i),n|=NMt(t,e,i,!1),i=!i;Iat(t)}function Dut(t,e){var n,i,a;return i=!1,n=e.q.d,e.d<t.b&&(a=gMt(e.q,t.b),e.q.d>a&&(r_t(e.q,a),i=n!=e.q.d)),i}function Iut(t,e){var n,a,r,o,s;return o=e.i,s=e.j,a=o-(n=t.f).i,r=s-n.j,i.Math.sqrt(a*a+r*r)}function Lut(t,e){var n;return(n=Kpt(t))||(BHt(),l8((n=new Cm(KSt(e))).Vk(),t)),n}function Out(t,e){var n,i;return(n=jz(t.c.Bc(e),14))?((i=t.hc()).Gc(n),t.d-=n.gc(),n.$b(),t.mc(i)):t.jc()}function Mut(t,e){var n;for(n=0;n<e.length;n++)if(t==(d1(n,e.length),e.charCodeAt(n)))return!0;return!1}function Nut(t,e){var n;for(n=0;n<e.length;n++)if(t==(d1(n,e.length),e.charCodeAt(n)))return!0;return!1}function But(t){var e,n;if(null==t)return!1;for(e=0,n=t.length;e<n;e++)if(!EH(t[e]))return!1;return!0}function Put(t){var e;if(0!=t.c)return t.c;for(e=0;e<t.a.length;e++)t.c=33*t.c+(-1&t.a[e]);return t.c=t.c*t.e,t.c}function Fut(t){var e;return EN(t.a!=t.b),e=t.d.a[t.a],xN(t.b==t.d.c&&null!=e),t.c=t.a,t.a=t.a+1&t.d.a.length-1,e}function jut(t){var e;if(!(t.c.c<0?t.a>=t.c.b:t.a<=t.c.b))throw $m(new yy);return e=t.a,t.a+=t.c.c,++t.b,nht(e)}function $ut(t){var e;return e=new uet(t),e2(t.a,sse,new Kw(Cst(Hx(Koe,1),zGt,369,0,[e]))),e.d&&Wz(e.f,e.d),e.f}function zut(t){var e;return Hot(e=new TL(t.a),t),lct(e,(lGt(),fhe),t),e.o.a=t.g,e.o.b=t.f,e.n.a=t.i,e.n.b=t.j,e}function Hut(t,e,n,i){var a,r;for(r=t.Kc();r.Ob();)(a=jz(r.Pb(),70)).n.a=e.a+(i.a-a.o.a)/2,a.n.b=e.b,e.b+=a.o.b+n}function Uut(t,e,n){var i;for(i=e.a.a.ec().Kc();i.Ob();)if(iX(t,jz(i.Pb(),57),n))return!0;return!1}function Vut(t){var e,n;for(n=new Wf(t.r);n.a<n.c.c.length;)if(e=jz(J1(n),10),t.n[e.p]<=0)return e;return null}function qut(t){var e,n;for(n=new Ny,e=new Wf(t);e.a<e.c.c.length;)jat(n,gBt(jz(J1(e),33)));return n}function Wut(t){var e;return e=vI(Cve),jz(yEt(t,(lGt(),Xde)),21).Hc((hBt(),gde))&&fU(e,(vEt(),Foe),(dGt(),$ce)),e}function Yut(t,e,n){var i;i=new kDt(t,e),XAt(t.r,e.Hf(),i),n&&!$q(t.u)&&(i.c=new yJ(t.d),Aet(e.wf(),new Cg(i)))}function Gut(t,e){var n;return KD(t)&&KD(e)&&(n=t-e,!isNaN(n))?n:Pxt(KD(t)?Cot(t):t,KD(e)?Cot(e):e)}function Zut(t,e){return e<t.length&&(d1(e,t.length),63!=t.charCodeAt(e))&&(d1(e,t.length),35!=t.charCodeAt(e))}function Kut(t,e,n,i){var a,r;t.a=e,r=i?0:1,t.f=(a=new JCt(t.c,t.a,n,r),new oPt(n,t.a,a,t.e,t.b,t.c==(sit(),Dve)))}function Xut(t,e,n){var i,a;return a=t.a,t.a=e,4&t.Db&&!(1&t.Db)&&(i=new Jq(t,1,1,a,e),n?n.Ei(i):n=i),n}function Jut(t,e,n){var i,a;return a=t.b,t.b=e,4&t.Db&&!(1&t.Db)&&(i=new Jq(t,1,3,a,e),n?n.Ei(i):n=i),n}function Qut(t,e,n){var i,a;return a=t.f,t.f=e,4&t.Db&&!(1&t.Db)&&(i=new Jq(t,1,0,a,e),n?n.Ei(i):n=i),n}function tdt(t,e){var n,i,a,r;return(r=wTt((i=e,(a=t?Kpt(t):null)&&a.Xk(),i)))==e&&(n=Kpt(t))&&n.Xk(),r}function edt(t,e){var n,i,a;for(a=1,n=t,i=e>=0?e:-e;i>0;)i%2==0?(n*=n,i=i/2|0):(a*=n,i-=1);return e<0?1/a:a}function ndt(t,e){var n,i,a;for(a=1,n=t,i=e>=0?e:-e;i>0;)i%2==0?(n*=n,i=i/2|0):(a*=n,i-=1);return e<0?1/a:a}function idt(t){var e,n;if(null!=t)for(n=0;n<t.length;++n)(e=t[n])&&(jz(e.g,367),e.i)}function adt(t){var e,n,a;for(a=0,n=new Wf(t.a);n.a<n.c.c.length;)e=jz(J1(n),187),a=i.Math.max(a,e.g);return a}function rdt(t){var e,n,i;for(i=new Wf(t.b);i.a<i.c.c.length;)(e=(n=jz(J1(i),214)).c.Rf()?n.f:n.a)&&fUt(e,n.j)}function odt(){odt=D,mTe=new $T("INHERIT",0),bTe=new $T("INCLUDE_CHILDREN",1),yTe=new $T("SEPARATE_CHILDREN",2)}function sdt(t,e){switch(e){case 1:return!t.n&&(t.n=new tW(HDe,t,1,7)),void cUt(t.n);case 2:return void Iit(t,null)}Vst(t,e)}function cdt(t){switch(t.gc()){case 0:return jte;case 1:return new EU(yY(t.Xb(0)));default:return new kX(t)}}function ldt(t){switch(sj(),t.gc()){case 0:return YY(),Gte;case 1:return new yx(t.Kc().Pb());default:return new bC(t)}}function udt(t){switch(sj(),t.c){case 0:return YY(),Gte;case 1:return new yx(XTt(new Gk(t)));default:return new sw(t)}}function ddt(t,e){yY(t);try{return t.xc(e)}catch(n){if(iO(n=dst(n),205)||iO(n,173))return null;throw $m(n)}}function hdt(t,e){yY(t);try{return t.Bc(e)}catch(n){if(iO(n=dst(n),205)||iO(n,173))return null;throw $m(n)}}function fdt(t,e){yY(t);try{return t.Hc(e)}catch(n){if(iO(n=dst(n),205)||iO(n,173))return!1;throw $m(n)}}function gdt(t,e){yY(t);try{return t.Mc(e)}catch(n){if(iO(n=dst(n),205)||iO(n,173))return!1;throw $m(n)}}function pdt(t,e){yY(t);try{return t._b(e)}catch(n){if(iO(n=dst(n),205)||iO(n,173))return!1;throw $m(n)}}function bdt(t,e){t.a.c.length>0&&glt(jz(OU(t.a,t.a.c.length-1),570),e)||Wz(t.a,new p6(e))}function mdt(t){var e,n;Hj(),e=t.d.c-t.e.c,Aet((n=jz(t.g,145)).b,new wp(e)),Aet(n.c,new xp(e)),t6(n.i,new Rp(e))}function ydt(t){var e;return(e=new Cx).a+="VerticalSegment ",rD(e,t.e),e.a+=" ",oD(e,KO(new mx,new Wf(t.k))),e.a}function vdt(t){var e;return(e=jz(utt(t.c.c,""),229))||(e=new VQ(wR(vR(new ys,""),"Other")),Xbt(t.c.c,"",e)),e}function wdt(t){var e;return 64&t.Db?CLt(t):((e=new lM(CLt(t))).a+=" (name: ",iD(e,t.zb),e.a+=")",e.a)}function xdt(t,e,n){var i,a;return a=t.sb,t.sb=e,4&t.Db&&!(1&t.Db)&&(i=new Jq(t,1,4,a,e),n?n.Ei(i):n=i),n}function Rdt(t,e){var n,i;for(n=0,i=rft(t,e).Kc();i.Ob();)n+=null!=yEt(jz(i.Pb(),11),(lGt(),xhe))?1:0;return n}function _dt(t,e,n){var i,a,r;for(i=0,r=cmt(t,0);r.b!=r.d.c&&!((a=Hw(_B(d4(r))))>n);)a>=e&&++i;return i}function kdt(t,e,n){var i;return i=new L9(t.e,3,13,null,e.c||(pGt(),lLe),oyt(t,e),!1),n?n.Ei(i):n=i,n}function Edt(t,e,n){var i;return i=new L9(t.e,4,13,e.c||(pGt(),lLe),null,oyt(t,e),!1),n?n.Ei(i):n=i,n}function Cdt(t,e,n){var i,a;return a=t.r,t.r=e,4&t.Db&&!(1&t.Db)&&(i=new Jq(t,1,8,a,t.r),n?n.Ei(i):n=i),n}function Sdt(t,e){var n,i;return!(i=(n=jz(e,676)).vk())&&n.wk(i=iO(e,88)?new DA(t,jz(e,26)):new P0(t,jz(e,148))),i}function Tdt(t,e,n){var i;t.qi(t.i+1),i=t.oi(e,n),e!=t.i&&rHt(t.g,e,t.g,e+1,t.i-e),DY(t.g,e,i),++t.i,t.bi(e,n),t.ci()}function Adt(t,e){var n;return e.a&&(n=e.a.a.length,t.a?oD(t.a,t.b):t.a=new uM(t.d),H0(t.a,e.a,e.d.length,n)),t}function Ddt(t,e){var n,i,a;if(e.vi(t.a),null!=(a=jz(vot(t.a,8),1936)))for(n=0,i=a.length;n<i;++n)null.jm()}function Idt(t,e){var n;return n=new ct,t.a.sd(n)?(CO(),new bw(vG(R9(t,n.a,e)))):(xG(t),CO(),CO(),kne)}function Ldt(t,e){switch(e.g){case 2:case 1:return rft(t,e);case 3:case 4:return eot(rft(t,e))}return kK(),kK(),cne}function Odt(t,e){return qA(t)?mF(t,e):VA(t)?bF(t,e):UA(t)?(vG(t),HA(t)===HA(e)):eq(t)?t.Fb(e):AV(t)?FD(t,e):b0(t,e)}function Mdt(t){return t?1&t.i?t==AMe?wee:t==TMe?Dee:t==OMe?See:t==LMe?Cee:t==DMe?Bee:t==MMe?Fee:t==IMe?Ree:Eee:t:null}function Ndt(t,e,n,i,a){0==e||0==i||(1==e?a[i]=gyt(a,n,i,t[0]):1==i?a[e]=gyt(a,t,e,n[0]):KDt(t,n,a,e,i))}function Bdt(t,e){var n;0!=t.c.length&&(cI(n=jz(Zbt(t,O5(Rse,r1t,10,t.c.length,0,1)),193),new Dn),eDt(n,e))}function Pdt(t,e){var n;0!=t.c.length&&(cI(n=jz(Zbt(t,O5(Rse,r1t,10,t.c.length,0,1)),193),new In),eDt(n,e))}function Fdt(t,e,n,i){switch(e){case 1:return!t.n&&(t.n=new tW(HDe,t,1,7)),t.n;case 2:return t.k}return Rwt(t,e,n,i)}function jdt(){jdt=D,$Se=new BT(lJt,0),jSe=new BT(rJt,1),FSe=new BT(aJt,2),PSe=new BT(bJt,3),zSe=new BT("UP",4)}function $dt(){$dt=D,fse=new ZC(ZQt,0),hse=new ZC("INSIDE_PORT_SIDE_GROUPS",1),dse=new ZC("FORCE_MODEL_ORDER",2)}function zdt(t,e,n){if(t<0||e>n)throw $m(new Aw(yXt+t+wXt+e+", size: "+n));if(t>e)throw $m(new Pw(yXt+t+vXt+e))}function Hdt(t,e,n){if(e<0)aAt(t,n);else{if(!n.Ij())throw $m(new Pw(i7t+n.ne()+a7t));jz(n,66).Nj().Vj(t,t.yh(),e)}}function Udt(t,e,n,i,a,r,o,s){var c;for(c=n;r<o;)c>=i||e<n&&s.ue(t[e],t[c])<=0?DY(a,r++,t[e++]):DY(a,r++,t[c++])}function Vdt(t,e,n,i,a,r){this.e=new Lm,this.f=(rit(),Uye),Wz(this.e,t),this.d=e,this.a=n,this.b=i,this.f=a,this.c=r}function qdt(t,e){var n,i;for(i=new AO(t);i.e!=i.i.gc();)if(n=jz(wmt(i),26),HA(e)===HA(n))return!0;return!1}function Wdt(t){var e,n,i,a;for(gGt(),i=0,a=(n=tmt()).length;i<a;++i)if(-1!=x9((e=n[i]).a,t,0))return e;return Tae}function Ydt(t){return t>=65&&t<=70?t-65+10:t>=97&&t<=102?t-97+10:t>=48&&t<=57?t-48:0}function Gdt(t){var e;return 64&t.Db?CLt(t):((e=new lM(CLt(t))).a+=" (source: ",iD(e,t.d),e.a+=")",e.a)}function Zdt(t,e,n){var i,a;return a=t.a,t.a=e,4&t.Db&&!(1&t.Db)&&(i=new Jq(t,1,5,a,t.a),n?P_t(n,i):n=i),n}function Kdt(t,e){var n;n=0!=(256&t.Bb),e?t.Bb|=256:t.Bb&=-257,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,2,n,e))}function Xdt(t,e){var n;n=0!=(256&t.Bb),e?t.Bb|=256:t.Bb&=-257,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,8,n,e))}function Jdt(t,e){var n;n=0!=(256&t.Bb),e?t.Bb|=256:t.Bb&=-257,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,8,n,e))}function Qdt(t,e){var n;n=0!=(512&t.Bb),e?t.Bb|=512:t.Bb&=-513,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,3,n,e))}function tht(t,e){var n;n=0!=(512&t.Bb),e?t.Bb|=512:t.Bb&=-513,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,9,n,e))}function eht(t,e){var n;return-1==t.b&&t.a&&(n=t.a.Gj(),t.b=n?t.c.Xg(t.a.aj(),n):Dgt(t.c.Tg(),t.a)),t.c.Og(t.b,e)}function nht(t){var e,n;return t>-129&&t<128?(e=t+128,!(n=(QH(),Tee)[e])&&(n=Tee[e]=new Of(t)),n):new Of(t)}function iht(t){var e,n;return t>-129&&t<128?(e=t+128,!(n=(RU(),Pee)[e])&&(n=Pee[e]=new Nf(t)),n):new Nf(t)}function aht(t){var e;return t.k==(oCt(),kse)&&((e=jz(yEt(t,(lGt(),Gde)),61))==(wWt(),cAe)||e==EAe)}function rht(t,e,n){var i,a;return(a=ILt(t.b,e))&&(i=jz(OHt(F9(t,a),""),26))?yLt(t,i,e,n):null}function oht(t,e,n){var i,a;return(a=ILt(t.b,e))&&(i=jz(OHt(F9(t,a),""),26))?vLt(t,i,e,n):null}function sht(t,e){var n,i;for(i=new AO(t);i.e!=i.i.gc();)if(n=jz(wmt(i),138),HA(e)===HA(n))return!0;return!1}function cht(t,e,n){var i;if(e>(i=t.gc()))throw $m(new QP(e,i));if(t.hi()&&t.Hc(n))throw $m(new Pw(r5t));t.Xh(e,n)}function lht(t,e){var n;if(null==(n=cnt(t.i,e)))throw $m(new tx("Node did not exist in input."));return Prt(e,n),null}function uht(t,e){var n;if(iO(n=OMt(t,e),322))return jz(n,34);throw $m(new Pw(i7t+e+"' is not a valid attribute"))}function dht(t,e,n){var i,a;for(a=iO(e,99)&&jz(e,18).Bb&$Kt?new OD(e,t):new Dot(e,t),i=0;i<n;++i)ayt(a);return a}function hht(t){var e,n,i;for(i=0,n=t.length,e=0;e<n;e++)32==t[e]||13==t[e]||10==t[e]||9==t[e]||(t[i++]=t[e]);return i}function fht(t){var e,n,i;for(e=new Lm,i=new Wf(t.b);i.a<i.c.c.length;)n=jz(J1(i),594),pst(e,jz(n.jf(),14));return e}function ght(t){var e,n;for(n=jz(yEt(t,(HUt(),uxe)),15).Kc();n.Ob();)MH((e=jz(n.Pb(),188)).b.d,e),MH(e.c.b,e)}function pht(t){switch(jz(yEt(t,(lGt(),ehe)),303).g){case 1:lct(t,ehe,(U9(),Ede));break;case 2:lct(t,ehe,(U9(),Sde))}}function bht(t){var e;t.g&&(MNt((e=t.c.Rf()?t.f:t.a).a,t.o,!0),MNt(e.a,t.o,!1),lct(t.o,(zYt(),tme),(Z_t(),qTe)))}function mht(t){var e;if(!t.a)throw $m(new Fw("Cannot offset an unassigned cut."));e=t.c-t.b,t.b+=e,OK(t,e),LK(t,e)}function yht(t){var e;return null==(e=t.a[t.c-1&t.a.length-1])?null:(t.c=t.c-1&t.a.length-1,DY(t.a,t.c,null),e)}function vht(t){var e,n;for(n=t.p.a.ec().Kc();n.Ob();)if((e=jz(n.Pb(),213)).f&&t.b[e.c]<-1e-10)return e;return null}function wht(t,e){switch(t.b.g){case 0:case 1:return e;case 2:case 3:return new VZ(e.d,0,e.a,e.b);default:return null}}function xht(t){switch(t.g){case 2:return jSe;case 1:return FSe;case 4:return PSe;case 3:return zSe;default:return $Se}}function Rht(t){switch(t.g){case 1:return SAe;case 2:return cAe;case 3:return sAe;case 4:return EAe;default:return CAe}}function _ht(t){switch(t.g){case 1:return EAe;case 2:return SAe;case 3:return cAe;case 4:return sAe;default:return CAe}}function kht(t){switch(t.g){case 1:return sAe;case 2:return EAe;case 3:return SAe;case 4:return cAe;default:return CAe}}function Eht(t){switch(t){case 0:return new mv;case 1:return new pv;case 2:return new bv;default:throw $m(new hy)}}function Cht(t,e){return t<e?-1:t>e?1:t==e?0==t?Cht(1/t,1/e):0:isNaN(t)?isNaN(e)?0:1:-1}function Sht(t,e){Akt(e,"Sort end labels",1),Kk(AZ(htt(new NU(null,new h1(t.b,16)),new gn),new pn),new bn),zCt(e)}function Tht(t,e,n){var i,a;return t.ej()?(a=t.fj(),i=KAt(t,e,n),t.$i(t.Zi(7,nht(n),i,e,a)),i):KAt(t,e,n)}function Aht(t,e){var n,i,a;null==t.d?(++t.e,--t.f):(a=e.cd(),L7(t,i=((n=e.Sh())&NGt)%t.d.length,DLt(t,i,n,a)))}function Dht(t,e){var n;n=0!=(t.Bb&w7t),e?t.Bb|=w7t:t.Bb&=-1025,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,10,n,e))}function Iht(t,e){var n;n=0!=(t.Bb&FKt),e?t.Bb|=FKt:t.Bb&=-4097,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,12,n,e))}function Lht(t,e){var n;n=0!=(t.Bb&_8t),e?t.Bb|=_8t:t.Bb&=-8193,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,15,n,e))}function Oht(t,e){var n;n=0!=(t.Bb&k8t),e?t.Bb|=k8t:t.Bb&=-2049,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,11,n,e))}function Mht(t,e){var n;return 0!=(n=Cht(t.b.c,e.b.c))||0!=(n=Cht(t.a.a,e.a.a))?n:Cht(t.a.b,e.a.b)}function Nht(t,e){var n;if(null==(n=NY(t.k,e)))throw $m(new tx("Port did not exist in input."));return Prt(e,n),null}function Bht(t){var e,n;for(n=ULt(qet(t)).Kc();n.Ob();)if(Ojt(t,e=kB(n.Pb())))return y3((VE(),MIe),e);return null}function Pht(t,e){var n,i,a,r,o;for(o=rNt(t.e.Tg(),e),r=0,n=jz(t.g,119),a=0;a<t.i;++a)i=n[a],o.rl(i.ak())&&++r;return r}function Fht(t,e,n){var i,a;return i=jz(e.We(t.a),35),a=jz(n.We(t.a),35),null!=i&&null!=a?Ort(i,a):null!=i?-1:null!=a?1:0}function jht(t,e,n){var i;if(t.c)dEt(t.c,e,n);else for(i=new Wf(t.b);i.a<i.c.c.length;)jht(jz(J1(i),157),e,n)}function $ht(t,e){var n,i;for(i=new Wf(e);i.a<i.c.c.length;)n=jz(J1(i),46),y9(t.b.b,n.b),rX(jz(n.a,189),jz(n.b,81))}function zht(t){var e,n;for(n=OY(new Cx,91),e=!0;t.Ob();)e||(n.a+=jGt),e=!1,rD(n,t.Pb());return(n.a+="]",n).a}function Hht(t,e){var n;n=0!=(t.Bb&lZt),e?t.Bb|=lZt:t.Bb&=-16385,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,16,n,e))}function Uht(t,e){var n;n=0!=(t.Bb&l7t),e?t.Bb|=l7t:t.Bb&=-32769,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,18,n,e))}function Vht(t,e){var n;n=0!=(t.Bb&l7t),e?t.Bb|=l7t:t.Bb&=-32769,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,18,n,e))}function qht(t,e){var n;n=0!=(t.Bb&$Kt),e?t.Bb|=$Kt:t.Bb&=-65537,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,20,n,e))}function Wht(t){var e;return e=O5(SMe,YZt,25,2,15,1),t-=$Kt,e[0]=(t>>10)+zKt&ZZt,e[1]=56320+(1023&t)&ZZt,$pt(e,0,e.length)}function Yht(t){var e;return(e=jz(yEt(t,(zYt(),Vpe)),103))==(jdt(),$Se)?Hw(_B(yEt(t,xpe)))>=1?jSe:PSe:e}function Ght(t){switch(jz(yEt(t,(zYt(),Xpe)),218).g){case 1:return new ir;case 3:return new cr;default:return new nr}}function Zht(t){if(t.c)Zht(t.c);else if(t.d)throw $m(new Fw("Stream already terminated, can't be modified or used"))}function Kht(t){var e;return 64&t.Db?CLt(t):((e=new lM(CLt(t))).a+=" (identifier: ",iD(e,t.k),e.a+=")",e.a)}function Xht(t,e,n){var i;return QR(),xnt(i=new rc,e),Rnt(i,n),t&&l8((!t.a&&(t.a=new DO(LDe,t,5)),t.a),i),i}function Jht(t,e,n,i){var a,r;return vG(i),vG(n),null==(r=null==(a=t.xc(e))?n:Xk(jz(a,15),jz(n,14)))?t.Bc(e):t.zc(e,r),r}function Qht(t){var e,n,i,a;return sat(n=new ZF(e=jz(YR((a=(i=t.gm).f)==Vte?i:a),9),jz(kP(e,e.length),9),0),t),n}function tft(t,e,n){var i,a;for(a=t.a.ec().Kc();a.Ob();)if(i=jz(a.Pb(),10),sst(n,jz(OU(e,i.p),14)))return i;return null}function eft(t,e,n){try{Fct(t,e,n)}catch(i){throw iO(i=dst(i),597)?$m(new g6(i)):$m(i)}return e}function nft(t,e){var n;return KD(t)&&KD(e)&&IKt<(n=t-e)&&n<AKt?n:oot(lst(KD(t)?Cot(t):t,KD(e)?Cot(e):e))}function ift(t,e){var n;return KD(t)&&KD(e)&&IKt<(n=t+e)&&n<AKt?n:oot(cst(KD(t)?Cot(t):t,KD(e)?Cot(e):e))}function aft(t,e){var n;return KD(t)&&KD(e)&&IKt<(n=t*e)&&n<AKt?n:oot(uUt(KD(t)?Cot(t):t,KD(e)?Cot(e):e))}function rft(t,e){var n;return t.i||eAt(t),(n=jz(oZ(t.g,e),46))?new s1(t.j,jz(n.a,19).a,jz(n.b,19).a):(kK(),kK(),cne)}function oft(t,e,n){var i;return i=t.a.get(e),t.a.set(e,void 0===n?null:n),void 0===i?(++t.c,oX(t.b)):++t.d,i}function sft(t,e,n){t.n=vU(DMe,[cZt,jKt],[364,25],14,[n,CJ(i.Math.ceil(e/32))],2),t.o=e,t.p=n,t.j=e-1>>1,t.k=n-1>>1}function cft(){var t,e,n;vkt(),n=Ine+++Date.now(),t=CJ(i.Math.floor(n*oXt))&cXt,e=CJ(n-t*sXt),this.a=1502^t,this.b=e^rXt}function lft(t){var e,n;for(e=new Lm,n=new Wf(t.j);n.a<n.c.c.length;)Wz(e,jz(J1(n),11).b);return yY(e),new TD(e)}function uft(t){var e,n;for(e=new Lm,n=new Wf(t.j);n.a<n.c.c.length;)Wz(e,jz(J1(n),11).e);return yY(e),new TD(e)}function dft(t){var e,n;for(e=new Lm,n=new Wf(t.j);n.a<n.c.c.length;)Wz(e,jz(J1(n),11).g);return yY(e),new TD(e)}function hft(t){var e,n;for(n=tLt(qet(fQ(t))).Kc();n.Ob();)if(Ojt(t,e=kB(n.Pb())))return v3((qE(),UIe),e);return null}function fft(t){var e,n;for(e=0,n=t.length;e<n;e++)if(null==t[e])throw $m(new $w("at index "+e));return new Kw(t)}function gft(t,e){var n;if(iO(n=OMt(t.Tg(),e),99))return jz(n,18);throw $m(new Pw(i7t+e+"' is not a valid reference"))}function pft(t){var e;return(e=hCt(t))>34028234663852886e22?BKt:e<-34028234663852886e22?PKt:e}function bft(t){return t=((t=((t-=t>>1&1431655765)>>2&858993459)+(858993459&t))>>4)+t&252645135,t+=t>>8,63&(t+=t>>16)}function mft(t){var e,n,i;for(e=new cP(t.Hd().gc()),i=0,n=I8(t.Hd().Kc());n.Ob();)wQ(e,n.Pb(),nht(i++));return OCt(e.a)}function yft(t,e){var n,i,a;for(a=new Om,i=e.vc().Kc();i.Ob();)YG(a,(n=jz(i.Pb(),42)).cd(),dot(t,jz(n.dd(),15)));return a}function vft(t,e){0==t.n.c.length&&Wz(t.n,new NJ(t.s,t.t,t.i)),Wz(t.b,e),cvt(jz(OU(t.n,t.n.c.length-1),211),e),$$t(t,e)}function wft(t){return(t.c!=t.b.b||t.i!=t.g.b)&&(t.a.c=O5(Dte,zGt,1,0,5,1),pst(t.a,t.b),pst(t.a,t.g),t.c=t.b.b,t.i=t.g.b),t.a}function xft(t,e){var n,i;for(i=0,n=jz(e.Kb(t),20).Kc();n.Ob();)zw(RB(yEt(jz(n.Pb(),17),(lGt(),Che))))||++i;return i}function Rft(t,e){var n,a;a=Hw(_B(ept(l2(e),(zYt(),yme)))),jxt(e,n=i.Math.max(0,a/2-.5),1),Wz(t,new uS(e,n))}function _ft(){_ft=D,Hhe=new jS(ZQt,0),Fhe=new jS("FIRST",1),jhe=new jS(S1t,2),$he=new jS("LAST",3),zhe=new jS(T1t,4)}function kft(){kft=D,JSe=new FT(lJt,0),KSe=new FT("POLYLINE",1),ZSe=new FT("ORTHOGONAL",2),XSe=new FT("SPLINES",3)}function Eft(){Eft=D,JRe=new vT("ASPECT_RATIO_DRIVEN",0),QRe=new vT("MAX_SCALE_DRIVEN",1),XRe=new vT("AREA_DRIVEN",2)}function Cft(){Cft=D,z_e=new xT("P1_STRUCTURE",0),H_e=new xT("P2_PROCESSING_ORDER",1),U_e=new xT("P3_EXECUTION",2)}function Sft(){Sft=D,eRe=new gT("OVERLAP_REMOVAL",0),Qxe=new gT("COMPACTION",1),tRe=new gT("GRAPH_SIZE_CALCULATION",2)}function Tft(t,e){return cL(),iit(PZt),i.Math.abs(t-e)<=PZt||t==e||isNaN(t)&&isNaN(e)?0:t<e?-1:t>e?1:UD(isNaN(t),isNaN(e))}function Aft(t,e){var n,i;for(n=cmt(t,0);n.b!=n.d.c;){if((i=Uw(_B(d4(n))))==e)return;if(i>e){V0(n);break}}JW(n,e)}function Dft(t,e){var n,i,a,r,o;if(n=e.f,Xbt(t.c.d,n,e),null!=e.g)for(r=0,o=(a=e.g).length;r<o;++r)i=a[r],Xbt(t.c.e,i,e)}function Ift(t,e,n,i){var a,r,o;for(a=e+1;a<n;++a)for(r=a;r>e&&i.ue(t[r-1],t[r])>0;--r)o=t[r],DY(t,r,t[r-1]),DY(t,r-1,o)}function Lft(t,e,n,i){if(e<0)_Ot(t,n,i);else{if(!n.Ij())throw $m(new Pw(i7t+n.ne()+a7t));jz(n,66).Nj().Tj(t,t.yh(),e,i)}}function Oft(t,e){if(e==t.d)return t.e;if(e==t.e)return t.d;throw $m(new Pw("Node "+e+" not part of edge "+t))}function Mft(t,e){switch(e.g){case 2:return t.b;case 1:return t.c;case 4:return t.d;case 3:return t.a;default:return!1}}function Nft(t,e){switch(e.g){case 2:return t.b;case 1:return t.c;case 4:return t.d;case 3:return t.a;default:return!1}}function Bft(t,e,n,i){switch(e){case 3:return t.f;case 4:return t.g;case 5:return t.i;case 6:return t.j}return Fdt(t,e,n,i)}function Pft(t){return t.k==(oCt(),Sse)&&o6(new NU(null,new UW(new oq(XO(dft(t).a.Kc(),new u)))),new Ua)}function Fft(t){return null==t.e?t:(!t.c&&(t.c=new iPt(0!=(256&t.f),t.i,t.a,t.d,0!=(16&t.f),t.j,t.g,null)),t.c)}function jft(t,e){return t.h==SKt&&0==t.m&&0==t.l?(e&&(dee=_L(0,0,0)),WD((q9(),gee))):(e&&(dee=_L(t.l,t.m,t.h)),_L(0,0,0))}function $ft(t){return Array.isArray(t)&&t.im===A?JR(tlt(t))+"@"+(Qct(t)>>>0).toString(16):t.toString()}function zft(t){var e;this.a=new ZF(e=jz(t.e&&t.e(),9),jz(kP(e,e.length),9),0),this.b=O5(Dte,zGt,1,this.a.a.length,5,1)}function Hft(t){var e,n,i;for(this.a=new lI,i=new Wf(t);i.a<i.c.c.length;)n=jz(J1(i),14),hat(e=new cV,n),RW(this.a,e)}function Uft(t){var e,n;for(zB(),e=t.o.b,n=jz(jz(c7(t.r,(wWt(),EAe)),21),84).Kc();n.Ob();)jz(n.Pb(),111).e.b+=e}function Vft(t){var e;if(t.b){if(Vft(t.b),t.b.d!=t.c)throw $m(new by)}else t.d.dc()&&(e=jz(t.f.c.xc(t.e),14))&&(t.d=e)}function qft(t){var e;return null==t||(e=t.length)>0&&(d1(e-1,t.length),58==t.charCodeAt(e-1))&&!Wft(t,DIe,IIe)}function Wft(t,e,n){var i,a;for(i=0,a=t.length;i<a;i++)if(tct((d1(i,t.length),t.charCodeAt(i)),e,n))return!0;return!1}function Yft(t,e){var n,i;for(i=t.e.a.ec().Kc();i.Ob();)if(tCt(e,(n=jz(i.Pb(),266)).d)||TTt(e,n.d))return!0;return!1}function Gft(t,e){var n,i,a;for(a=(i=zPt(t,e))[i.length-1]/2,n=0;n<i.length;n++)if(i[n]>=a)return e.c+n;return e.c+e.b.gc()}function Zft(t,e){var n,i,a,r;for(fB(),a=e,U8(i=$8(t),0,i.length,a),n=0;n<i.length;n++)n!=(r=pxt(t,i[n],n))&&Tht(t,n,r)}function Kft(t,e){var n,i,a,r,o,s;for(i=0,n=0,o=0,s=(r=e).length;o<s;++o)(a=r[o])>0&&(i+=a,++n);return n>1&&(i+=t.d*(n-1)),i}function Xft(t){var e,n,i;for((i=new kx).a+="[",e=0,n=t.gc();e<n;)iD(i,vM(t.ki(e))),++e<n&&(i.a+=jGt);return i.a+="]",i.a}function Jft(t){var e,n,i;return i=Dkt(t),!W_(t.c)&&(net(i,"knownLayouters",n=new Eh),e=new nm(n),t6(t.c,e)),i}function Qft(t,e){var n,i;for(vG(e),n=!1,i=new Wf(t);i.a<i.c.c.length;)vgt(e,J1(i),!1)&&(AW(i),n=!0);return n}function tgt(t){var e,n;for(n=Hw(_B(t.a.We((cGt(),TSe)))),e=new Wf(t.a.xf());e.a<e.c.c.length;)GWt(t,jz(J1(e),680),n)}function egt(t,e){var n,i;for(i=new Wf(e);i.a<i.c.c.length;)n=jz(J1(i),46),Wz(t.b.b,jz(n.b,81)),g2(jz(n.a,189),jz(n.b,81))}function ngt(t,e,n){var i,a;for(i=(a=t.a.b).c.length;i<n;i++)vV(a,0,new $Y(t.a));EQ(e,jz(OU(a,a.c.length-n),29)),t.b[e.p]=n}function igt(t,e,n){var i;!(i=n)&&(i=IH(new qv,0)),Akt(i,HQt,2),yyt(t.b,e,yrt(i,1)),PUt(t,e,yrt(i,1)),HWt(e,yrt(i,1)),zCt(i)}function agt(t,e,n,i,a){jQ(),qMt(aE(iE(nE(rE(new $y,0),a.d.e-t),e),a.d)),qMt(aE(iE(nE(rE(new $y,0),n-a.a.e),a.a),i))}function rgt(t,e,n,i,a,r){this.a=t,this.c=e,this.b=n,this.f=i,this.d=a,this.e=r,this.c>0&&this.b>0&&ZU(this.c,this.b,this.a)}function ogt(t){Bgt(),this.c=r7(Cst(Hx(nEe,1),zGt,831,0,[Wme])),this.b=new Om,this.a=t,YG(this.b,Yme,1),Aet(Gme,new Eb(this))}function sgt(t,e){var n;return t.d?cW(t.b,e)?jz(NY(t.b,e),51):(n=e.Kf(),YG(t.b,e,n),n):e.Kf()}function cgt(t,e){var n;return HA(t)===HA(e)||!!iO(e,91)&&(n=jz(e,91),t.e==n.e&&t.d==n.d&&x3(t,n.a))}function lgt(t){switch(wWt(),t.g){case 4:return cAe;case 1:return sAe;case 3:return EAe;case 2:return SAe;default:return CAe}}function ugt(t,e){switch(e){case 3:return 0!=t.f;case 4:return 0!=t.g;case 5:return 0!=t.i;case 6:return 0!=t.j}return Rot(t,e)}function dgt(t){switch(t.g){case 0:return new qo;case 1:return new Wo;default:throw $m(new Pw(a3t+(null!=t.f?t.f:""+t.g)))}}function hgt(t){switch(t.g){case 0:return new Vo;case 1:return new Yo;default:throw $m(new Pw(k1t+(null!=t.f?t.f:""+t.g)))}}function fgt(t){switch(t.g){case 0:return new Yv;case 1:return new yv;default:throw $m(new Pw(O3t+(null!=t.f?t.f:""+t.g)))}}function ggt(t){switch(t.g){case 1:return new Fo;case 2:return new gB;default:throw $m(new Pw(a3t+(null!=t.f?t.f:""+t.g)))}}function pgt(t){var e,n;if(t.b)return t.b;for(n=qne?null:t.d;n;){if(e=qne?null:n.b)return e;n=qne?null:n.d}return uE(),$ne}function bgt(t){var e,n;return 0==t.e?0:(e=t.d<<5,n=t.a[t.d-1],t.e<0&&Srt(t)==t.d-1&&(--n,n|=0),e-=JAt(n))}function mgt(t){var e,n,i;return t<ene.length?ene[t]:(e=31&t,(i=O5(TMe,lKt,25,1+(n=t>>5),15,1))[n]=1<<e,new uW(1,n+1,i))}function ygt(t){var e,n,i;return(n=t.zg())?iO(e=t.Ug(),160)&&null!=(i=ygt(jz(e,160)))?i+"."+n:n:null}function vgt(t,e,n){var i,a;for(a=t.Kc();a.Ob();)if(i=a.Pb(),HA(e)===HA(i)||null!=e&&Odt(e,i))return n&&a.Qb(),!0;return!1}function wgt(t,e,n){var i,a;if(++t.j,n.dc())return!1;for(a=n.Kc();a.Ob();)i=a.Pb(),t.Hi(e,t.oi(e,i)),++e;return!0}function xgt(t,e,n,i){var a,r;if((r=n-e)<3)for(;r<3;)t*=10,++r;else{for(a=1;r>3;)a*=10,--r;t=(t+(a>>1))/a|0}return i.i=t,!0}function Rgt(t){return Eut(),cM(),!!(Nft(jz(t.a,81).j,jz(t.b,103))||0!=jz(t.a,81).d.e&&Nft(jz(t.a,81).j,jz(t.b,103)))}function _gt(t){O8(),jz(t.We((cGt(),zCe)),174).Hc((QFt(),GAe))&&(jz(t.We(lSe),174).Fc((dAt(),aAe)),jz(t.We(zCe),174).Mc(GAe))}function kgt(t,e){var n;if(e){for(n=0;n<t.i;++n)if(jz(t.g[n],366).Di(e))return!1;return l8(t,e)}return!1}function Egt(t){var e,n,i;for(e=new Eh,i=new zf(t.b.Kc());i.b.Ob();)n=GCt(jz(i.b.Pb(),686)),WW(e,e.a.length,n);return e.a}function Cgt(t){var e;return!t.c&&(t.c=new Ot),mL(t.d,new Nt),KFt(t),e=dBt(t),Kk(new NU(null,new h1(t.d,16)),new Sg(t)),e}function Sgt(t){var e;return 64&t.Db?wdt(t):((e=new lM(wdt(t))).a+=" (instanceClassName: ",iD(e,t.D),e.a+=")",e.a)}function Tgt(t,e){var n,i;e&&(n=Bnt(e,"x"),_nt(new Xb(t).a,(vG(n),n)),i=Bnt(e,"y"),Ant(new Jb(t).a,(vG(i),i)))}function Agt(t,e){var n,i;e&&(n=Bnt(e,"x"),Tnt(new Yb(t).a,(vG(n),n)),i=Bnt(e,"y"),Dnt(new Zb(t).a,(vG(i),i)))}function Dgt(t,e){var n,i,a;if(null==t.i&&H$t(t),n=t.i,-1!=(i=e.aj()))for(a=n.length;i<a;++i)if(n[i]==e)return i;return-1}function Igt(t){var e,n,i,a;for(n=jz(t.g,674),i=t.i-1;i>=0;--i)for(e=n[i],a=0;a<i;++a)if(m$t(t,e,n[a])){Lwt(t,i);break}}function Lgt(t){var e=t.e;function n(t){return t&&0!=t.length?"\t"+t.join("\n\t"):""}return e&&(e.stack||n(t[qZt]))}function Ogt(t){var e;switch(WY(),(e=t.Pc()).length){case 0:return jte;case 1:return new EU(yY(e[0]));default:return new kX(fft(e))}}function Mgt(t,e){switch(e.g){case 1:return Bz(t.j,(prt(),Ose));case 2:return Bz(t.j,(prt(),Nse));default:return kK(),kK(),cne}}function Ngt(t,e){switch(e){case 3:return void knt(t,0);case 4:return void Ent(t,0);case 5:return void Cnt(t,0);case 6:return void Snt(t,0)}sdt(t,e)}function Bgt(){Bgt=D,AE(),zYt(),Yme=Tme,Gme=r7(Cst(Hx(rEe,1),w4t,146,0,[mme,yme,wme,xme,kme,Eme,Cme,Sme,Dme,Lme,vme,Rme,Ame]))}function Pgt(t){var e,n;e=t.d==(ISt(),Xle),n=I_t(t),lct(t.a,(zYt(),vpe),e&&!n||!e&&n?(fyt(),IEe):(fyt(),DEe))}function Fgt(t,e){var n;return(n=jz(E3(t,m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15)).Qc(uH(n.gc()))}function jgt(){jgt=D,eDe=new ZT("SIMPLE",0),JAe=new ZT("GROUP_DEC",1),tDe=new ZT("GROUP_MIXED",2),QAe=new ZT("GROUP_INC",3)}function $gt(){$gt=D,HLe=new Lc,NLe=new Oc,BLe=new Mc,PLe=new Nc,FLe=new Bc,jLe=new Pc,$Le=new Fc,zLe=new jc,ULe=new $c}function zgt(t,e,n){Het(),sv.call(this),this.a=vU(Hie,[cZt,iJt],[595,212],0,[Zie,Gie],2),this.c=new dI,this.g=t,this.f=e,this.d=n}function Hgt(t,e){this.n=vU(DMe,[cZt,jKt],[364,25],14,[e,CJ(i.Math.ceil(t/32))],2),this.o=t,this.p=e,this.j=t-1>>1,this.k=e-1>>1}function Ugt(t,e){Akt(e,"End label post-processing",1),Kk(AZ(htt(new NU(null,new h1(t.b,16)),new on),new sn),new cn),zCt(e)}function Vgt(t,e,n){var i;return i=Hw(t.p[e.i.p])+Hw(t.d[e.i.p])+e.n.b+e.a.b,Hw(t.p[n.i.p])+Hw(t.d[n.i.p])+n.n.b+n.a.b-i}function qgt(t,e,n){var i,a;for(i=t0(n,qKt),a=0;0!=Gut(i,0)&&a<e;a++)i=ift(i,t0(t[a],qKt)),t[a]=fV(i),i=vq(i,32);return fV(i)}function Wgt(t){var e,n,i,a;for(a=0,n=0,i=t.length;n<i;n++)d1(n,t.length),(e=t.charCodeAt(n))<64&&(a=e0(a,yq(1,e)));return a}function Ygt(t){var e;return null==t?null:new DI((e=jzt(t,!0)).length>0&&(d1(0,e.length),43==e.charCodeAt(0))?e.substr(1):e)}function Ggt(t){var e;return null==t?null:new DI((e=jzt(t,!0)).length>0&&(d1(0,e.length),43==e.charCodeAt(0))?e.substr(1):e)}function Zgt(t,e){return t.i>0&&(e.length<t.i&&(e=Nnt(tlt(e).c,t.i)),rHt(t.g,0,e,0,t.i)),e.length>t.i&&DY(e,t.i,null),e}function Kgt(t,e,n){var i,a,r;return t.ej()?(i=t.i,r=t.fj(),Tdt(t,i,e),a=t.Zi(3,null,e,i,r),n?n.Ei(a):n=a):Tdt(t,t.i,e),n}function Xgt(t,e,n){var i,a;return i=new L9(t.e,4,10,iO(a=e.c,88)?jz(a,26):(pGt(),hLe),null,oyt(t,e),!1),n?n.Ei(i):n=i,n}function Jgt(t,e,n){var i,a;return i=new L9(t.e,3,10,null,iO(a=e.c,88)?jz(a,26):(pGt(),hLe),oyt(t,e),!1),n?n.Ei(i):n=i,n}function Qgt(t){var e;return zB(),e=new hI(jz(t.e.We((cGt(),jCe)),8)),t.B.Hc((QFt(),UAe))&&(e.a<=0&&(e.a=20),e.b<=0&&(e.b=20)),e}function tpt(t){return hyt(),(t.q?t.q:(kK(),kK(),lne))._b((zYt(),Nbe))?jz(yEt(t,Nbe),197):jz(yEt(bG(t),Bbe),197)}function ept(t,e){var n,i;return i=null,IN(t,(zYt(),_me))&&(n=jz(yEt(t,_me),94)).Xe(e)&&(i=n.We(e)),null==i&&(i=yEt(bG(t),e)),i}function npt(t,e){var n,i,a;return!!iO(e,42)&&(i=(n=jz(e,42)).cd(),hG(a=ddt(t.Rc(),i),n.dd())&&(null!=a||t.Rc()._b(i)))}function ipt(t,e){var n;return t.f>0&&(t.qj(),-1!=DLt(t,((n=null==e?0:Qct(e))&NGt)%t.d.length,n,e))}function apt(t,e){var n,i;return t.f>0&&(t.qj(),n=rDt(t,((i=null==e?0:Qct(e))&NGt)%t.d.length,i,e))?n.dd():null}function rpt(t,e){var n,i,a,r;for(r=rNt(t.e.Tg(),e),n=jz(t.g,119),a=0;a<t.i;++a)if(i=n[a],r.rl(i.ak()))return!1;return!0}function opt(t){if(null==t.b){for(;t.a.Ob();)if(t.b=t.a.Pb(),!jz(t.b,49).Zg())return!0;return t.b=null,!1}return!0}function spt(t,e){t.mj();try{t.d.Vc(t.e++,e),t.f=t.d.j,t.g=-1}catch(n){throw iO(n=dst(n),73)?$m(new by):$m(n)}}function cpt(t,e){var n,i;return sL(),i=null,e==(n=lP((lx(),lx(),iee)))&&(i=jz(kJ(nee,t),615)),i||(i=new UY(t),e==n&&mQ(nee,t,i)),i}function lpt(t,e){var n,a;t.a=ift(t.a,1),t.c=i.Math.min(t.c,e),t.b=i.Math.max(t.b,e),t.d+=e,n=e-t.f,a=t.e+n,t.f=a-t.e-n,t.e=a}function upt(t,e){var n;t.c=e,t.a=bgt(e),t.a<54&&(t.f=(n=e.d>1?e0(yq(e.a[1],32),t0(e.a[0],qKt)):t0(e.a[0],qKt),w2(aft(e.e,n))))}function dpt(t,e){var n;return KD(t)&&KD(e)&&IKt<(n=t%e)&&n<AKt?n:oot((DUt(KD(t)?Cot(t):t,KD(e)?Cot(e):e,!0),dee))}function hpt(t,e){var n;Nqt(e),(n=jz(yEt(t,(zYt(),Kpe)),276))&&lct(t,Kpe,Dwt(n)),JM(t.c),JM(t.f),Y7(t.d),Y7(jz(yEt(t,Abe),207))}function fpt(t){this.e=O5(TMe,lKt,25,t.length,15,1),this.c=O5(AMe,JXt,25,t.length,16,1),this.b=O5(AMe,JXt,25,t.length,16,1),this.f=0}function gpt(t){var e,n;for(t.j=O5(LMe,HKt,25,t.p.c.length,15,1),n=new Wf(t.p);n.a<n.c.c.length;)e=jz(J1(n),10),t.j[e.p]=e.o.b/t.i}function ppt(t){var e;0!=t.c&&(1==(e=jz(OU(t.a,t.b),287)).b?(++t.b,t.b<t.a.c.length&&Rf(jz(OU(t.a,t.b),287))):--e.b,--t.c)}function bpt(t){var e;e=t.a;do{(e=jz(V6(new oq(XO(dft(e).a.Kc(),new u))),17).d.i).k==(oCt(),Cse)&&Wz(t.e,e)}while(e.k==(oCt(),Cse))}function mpt(){mpt=D,IAe=new WI(15),DAe=new qI((cGt(),qCe),IAe),OAe=new qI(ISe,15),LAe=new qI(bSe,nht(0)),AAe=new qI(iCe,gQt)}function ypt(){ypt=D,PAe=new YT("PORTS",0),FAe=new YT("PORT_LABELS",1),BAe=new YT("NODE_LABELS",2),NAe=new YT("MINIMUM_SIZE",3)}function vpt(t,e){var n,i;for(i=e.length,n=0;n<i;n+=2)KNt(t,(d1(n,e.length),e.charCodeAt(n)),(d1(n+1,e.length),e.charCodeAt(n+1)))}function wpt(t,e,n){var i,a,r,o;for(r=e-t.e,o=n-t.f,a=new Wf(t.a);a.a<a.c.c.length;)_yt(i=jz(J1(a),187),i.s+r,i.t+o);t.e=e,t.f=n}function xpt(t,e){var n,i,a;for(a=e.b.b,t.a=new Zk,t.b=O5(TMe,lKt,25,a,15,1),n=0,i=cmt(e.b,0);i.b!=i.d.c;)jz(d4(i),86).g=n++}function Rpt(t,e){var n,i,a,r;return n=e>>5,e&=31,a=t.d+n+(0==e?0:1),Mkt(i=O5(TMe,lKt,25,a,15,1),t.a,n,e),q0(r=new uW(t.e,a,i)),r}function _pt(t,e,n){var i,a;i=jz(kJ(tMe,e),117),a=jz(kJ(eMe,e),117),n?(mQ(tMe,t,i),mQ(eMe,t,a)):(mQ(eMe,t,i),mQ(tMe,t,a))}function kpt(t,e,n){var i,a,r;for(a=null,r=t.b;r;){if(i=t.a.ue(e,r.d),n&&0==i)return r;i>=0?r=r.a[1]:(a=r,r=r.a[0])}return a}function Ept(t,e,n){var i,a,r;for(a=null,r=t.b;r;){if(i=t.a.ue(e,r.d),n&&0==i)return r;i<=0?r=r.a[0]:(a=r,r=r.a[1])}return a}function Cpt(t,e,n,i){var a,r,o;return a=!1,LVt(t.f,n,i)&&(Mbt(t.f,t.a[e][n],t.a[e][i]),o=(r=t.a[e])[i],r[i]=r[n],r[n]=o,a=!0),a}function Spt(t,e,n,i,a){var r,o,s;for(o=a;e.b!=e.c;)r=jz(fW(e),10),s=jz(rft(r,i).Xb(0),11),t.d[s.p]=o++,n.c[n.c.length]=s;return o}function Tpt(t,e,n){var a,r,o,s,c;return s=t.k,c=e.k,r=_B(ept(t,a=n[s.g][c.g])),o=_B(ept(e,a)),i.Math.max((vG(r),r),(vG(o),o))}function Apt(t,e,n){var i,a,r,o;for(i=n/t.c.length,a=0,o=new Wf(t);o.a<o.c.c.length;)put(r=jz(J1(o),200),r.f+i*a),rRt(r,e,i),++a}function Dpt(t,e,n){var i,a,r;for(a=jz(NY(t.b,n),177),i=0,r=new Wf(e.j);r.a<r.c.c.length;)a[jz(J1(r),113).d.p]&&++i;return i}function Ipt(t){var e,n;return null!=(e=jz(vot(t.a,4),126))?(rHt(e,0,n=O5(hIe,n8t,415,e.length,0,1),0,e.length),n):dIe}function Lpt(){var t;return 0!=aee&&(t=u6())-ree>2e3&&(ree=t,oee=i.setTimeout(G_,10)),0==aee++&&(Ttt((sx(),tee)),!0)}function Opt(t,e){var n;for(n=new oq(XO(dft(t).a.Kc(),new u));gIt(n);)if(jz(V6(n),17).d.i.c==e)return!1;return!0}function Mpt(t,e){var n;if(iO(e,245)){n=jz(e,245);try{return 0==t.vd(n)}catch(i){if(!iO(i=dst(i),205))throw $m(i)}}return!1}function Npt(){return Error.stackTraceLimit>0?(i.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in new Error}function Bpt(t,e){return cL(),cL(),iit(PZt),(i.Math.abs(t-e)<=PZt||t==e||isNaN(t)&&isNaN(e)?0:t<e?-1:t>e?1:UD(isNaN(t),isNaN(e)))>0}function Ppt(t,e){return cL(),cL(),iit(PZt),(i.Math.abs(t-e)<=PZt||t==e||isNaN(t)&&isNaN(e)?0:t<e?-1:t>e?1:UD(isNaN(t),isNaN(e)))<0}function Fpt(t,e){return cL(),cL(),iit(PZt),(i.Math.abs(t-e)<=PZt||t==e||isNaN(t)&&isNaN(e)?0:t<e?-1:t>e?1:UD(isNaN(t),isNaN(e)))<=0}function jpt(t,e){for(var n=0;!e[n]||""==e[n];)n++;for(var i=e[n++];n<e.length;n++)!e[n]||""==e[n]||(i+=t+e[n]);return i}function $pt(t,e,n){var a,r,o,s;for(P5(e,o=e+n,t.length),s="",r=e;r<o;)a=i.Math.min(r+1e4,o),s+=WG(t.slice(r,a)),r=a;return s}function zpt(t){var e,n,i,a;if(null==t)return null;for(a=new Lm,n=0,i=(e=vlt(t)).length;n<i;++n)Wz(a,jzt(e[n],!0));return a}function Hpt(t){var e,n,i,a;if(null==t)return null;for(a=new Lm,n=0,i=(e=vlt(t)).length;n<i;++n)Wz(a,jzt(e[n],!0));return a}function Upt(t){var e,n,i,a;if(null==t)return null;for(a=new Lm,n=0,i=(e=vlt(t)).length;n<i;++n)Wz(a,jzt(e[n],!0));return a}function Vpt(t,e){var n,i,a;if(t.c)Ent(t.c,e);else for(n=e-eV(t),a=new Wf(t.d);a.a<a.c.c.length;)Vpt(i=jz(J1(a),157),eV(i)+n)}function qpt(t,e){var n,i,a;if(t.c)knt(t.c,e);else for(n=e-tV(t),a=new Wf(t.a);a.a<a.c.c.length;)qpt(i=jz(J1(a),157),tV(i)+n)}function Wpt(t,e){var n,i,a;for(i=new K7(e.gc()),n=e.Kc();n.Ob();)(a=tjt(t,jz(n.Pb(),56)))&&(i.c[i.c.length]=a);return i}function Ypt(t,e){var n,i;return t.qj(),(n=rDt(t,((i=null==e?0:Qct(e))&NGt)%t.d.length,i,e))?(lit(t,n),n.dd()):null}function Gpt(t){var e,n;for(n=oSt(t),e=null;2==t.c;)ZYt(t),e||(fGt(),fGt(),tUt(e=new nL(2),n),n=e),n.$l(oSt(t));return n}function Zpt(t){if(!(H7t in t.a))throw $m(new tx("Every element must have an id."));return wAt(UJ(t,H7t))}function Kpt(t){var e,n,i;if(!(i=t.Zg()))for(e=0,n=t.eh();n;n=n.eh()){if(++e>UKt)return n.fh();if((i=n.Zg())||n==t)break}return i}function Xpt(t){return cQ(),iO(t,156)?jz(NY(sIe,yne),288).vg(t):cW(sIe,tlt(t))?jz(NY(sIe,tlt(t)),288).vg(t):null}function Jpt(t){if(ybt(r6t,t))return cM(),yee;if(ybt(o6t,t))return cM(),mee;throw $m(new Pw("Expecting true or false"))}function Qpt(t,e){if(e.c==t)return e.d;if(e.d==t)return e.c;throw $m(new Pw("Input edge is not connected to the input port."))}function tbt(t,e){return t.e>e.e?1:t.e<e.e?-1:t.d>e.d?t.e:t.d<e.d?-e.e:t.e*klt(t.a,e.a,t.d)}function ebt(t){return t>=48&&t<48+i.Math.min(10,10)?t-48:t>=97&&t<97?t-97+10:t>=65&&t<65?t-65+10:-1}function nbt(t,e){var n;return HA(e)===HA(t)||!(!iO(e,21)||(n=jz(e,21),n.gc()!=t.gc()))&&t.Ic(n)}function ibt(t,e){var n,i,a;return i=t.a.length-1,n=e-t.b&i,a=t.c-e&i,xN(n<(t.c-t.b&i)),n>=a?(rut(t,e),-1):(out(t,e),1)}function abt(t,e){var n,i;for(d1(e,t.length),n=t.charCodeAt(e),i=e+1;i<t.length&&(d1(i,t.length),t.charCodeAt(i)==n);)++i;return i-e}function rbt(t){switch(t.g){case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:return!0;default:return!1}}function obt(t,e){var n,i=t.a;e=String(e),i.hasOwnProperty(e)&&(n=i[e]);var a=(Jst(),uee)[typeof n];return a?a(n):wut(typeof n)}function sbt(t,e){if(t.a<0)throw $m(new Fw("Did not call before(...) or after(...) before calling add(...)."));return WM(t,t.a,e),t}function cbt(t,e,n,i){var a;0!=e.c.length&&(a=kOt(n,i),Kk(vet(new NU(null,new h1(oAt(e),1)),new _o),new qZ(t,n,a,i)))}function lbt(t,e,n){var i;t.Db&e?null==n?YDt(t,e):-1==(i=Bvt(t,e))?t.Eb=n:DY(ent(t.Eb),i,n):null!=n&&yNt(t,e,n)}function ubt(t){var e;return 32&t.Db||0!=(e=dY(jz(vot(t,16),26)||t.zh())-dY(t.zh()))&&lbt(t,32,O5(Dte,zGt,1,e,5,1)),t}function dbt(t){var e;return t.b||qR(t,!(e=JP(t.e,t.a))||!mF(o6t,apt((!e.b&&(e.b=new KN((pGt(),yLe),VLe,e)),e.b),"qualified"))),t.c}function hbt(t,e,n){var i,a;return((a=(i=jz(Yet($9(t.a),e),87)).c||(pGt(),lLe)).kh()?tdt(t.b,jz(a,49)):a)==n?d$t(i):ant(i,n),a}function fbt(t,e){(e||null==console.groupCollapsed?console.group??console.log:console.groupCollapsed).call(console,t)}function gbt(t,e,n,i){jz(n.b,65),jz(n.b,65),jz(i.b,65),jz(i.b,65).c.b,B5(i,e,t)}function pbt(t){var e,n;for(e=new Wf(t.g);e.a<e.c.c.length;)jz(J1(e),562);Vqt(n=new vNt(t.g,Hw(t.a),t.c)),t.g=n.b,t.d=n.a}function bbt(t,e,n){e.b=i.Math.max(e.b,-n.a),e.c=i.Math.max(e.c,n.a-t.a),e.d=i.Math.max(e.d,-n.b),e.a=i.Math.max(e.a,n.b-t.b)}function mbt(t,e){return t.e<e.e?-1:t.e>e.e?1:t.f<e.f?-1:t.f>e.f?1:Qct(t)-Qct(e)}function ybt(t,e){return vG(t),null!=e&&(!!mF(t,e)||t.length==e.length&&mF(t.toLowerCase(),e.toLowerCase()))}function vbt(t,e){var n,i,a,r;for(i=0,a=e.gc();i<a;++i)iO(n=e.il(i),99)&&jz(n,18).Bb&l7t&&null!=(r=e.jl(i))&&tjt(t,jz(r,56))}function wbt(t,e,n){var i,a,r;for(r=new Wf(n.a);r.a<r.c.c.length;)a=jz(J1(r),221),i=new CL(jz(NY(t.a,a.b),65)),Wz(e.a,i),wbt(t,i,a)}function xbt(t){var e,n;return Gut(t,-129)>0&&Gut(t,128)<0?(e=fV(t)+128,!(n=(xU(),Iee)[e])&&(n=Iee[e]=new Mf(t)),n):new Mf(t)}function Rbt(t,e){var n,i;return(n=e.Hh(t.a))&&null!=(i=kB(apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),t5t)))?i:e.ne()}function _bt(t,e){var n,i;return(n=e.Hh(t.a))&&null!=(i=kB(apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),t5t)))?i:e.ne()}function kbt(t,e){var n,i;for(zQ(),i=new oq(XO(lft(t).a.Kc(),new u));gIt(i);)if((n=jz(V6(i),17)).d.i==e||n.c.i==e)return n;return null}function Ebt(t,e,n){this.c=t,this.f=new Lm,this.e=new HR,this.j=new kU,this.n=new kU,this.b=e,this.g=new VZ(e.c,e.d,e.b,e.a),this.a=n}function Cbt(t){var e,n,i,a;for(this.a=new lI,this.d=new Ny,this.e=0,i=0,a=(n=t).length;i<a;++i)e=n[i],!this.f&&(this.f=e),g2(this,e)}function Sbt(t){ABt(),0==t.length?(this.e=0,this.d=1,this.a=Cst(Hx(TMe,1),lKt,25,15,[0])):(this.e=1,this.d=t.length,this.a=t,q0(this))}function Tbt(t,e,n){sv.call(this),this.a=O5(Hie,iJt,212,(Net(),Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length,0,1),this.b=t,this.d=e,this.c=n}function Abt(t){this.d=new Lm,this.e=new b3,this.c=O5(TMe,lKt,25,(wWt(),Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])).length,15,1),this.b=t}function Dbt(t){var e,n,i,a;for(lct(a=jz(yEt(t,(lGt(),fhe)),11),Ihe,t.i.n.b),n=0,i=(e=X0(t.e)).length;n<i;++n)_Q(e[n],a)}function Ibt(t){var e,n,i,a;for(lct(e=jz(yEt(t,(lGt(),fhe)),11),Ihe,t.i.n.b),i=0,a=(n=X0(t.g)).length;i<a;++i)kQ(n[i],e)}function Lbt(t){var e,n;return!!IN(t.d.i,(zYt(),Wbe))&&(e=jz(yEt(t.c.i,Wbe),19),n=jz(yEt(t.d.i,Wbe),19),xL(e.a,n.a)>0)}function Obt(t){var e;HA(JIt(t,(cGt(),xCe)))===HA((odt(),mTe))&&(KJ(t)?(e=jz(JIt(KJ(t),xCe),334),Kmt(t,xCe,e)):Kmt(t,xCe,yTe))}function Mbt(t,e,n){var i,a;uEt(t.e,e,n,(wWt(),SAe)),uEt(t.i,e,n,sAe),t.a&&(a=jz(yEt(e,(lGt(),fhe)),11),i=jz(yEt(n,fhe),11),v0(t.g,a,i))}function Nbt(t,e,n){var i,a,r;i=e.c.p,r=e.p,t.b[i][r]=new MX(t,e),n&&(t.a[i][r]=new jp(e),(a=jz(yEt(e,(lGt(),nhe)),10))&&XAt(t.d,a,e))}function Bbt(t,e){var n,i,a;if(Wz(kre,t),e.Fc(t),n=jz(NY(_re,t),21))for(a=n.Kc();a.Ob();)i=jz(a.Pb(),33),-1!=x9(kre,i,0)||Bbt(i,e)}function Pbt(t,e,n){var i;(Une?(pgt(t),1):Vne||Yne?(uE(),1):Wne&&(uE(),0))&&((i=new ej(e)).b=n,rCt(t,i))}function Fbt(t,e){var n;n=!t.A.Hc((ypt(),FAe))||t.q==(Z_t(),WTe),t.u.Hc((dAt(),eAe))?n?OWt(t,e):rWt(t,e):t.u.Hc(iAe)&&(n?Dqt(t,e):XWt(t,e))}function jbt(t,e){var n,i;++t.j,null!=e&&sDt(e,n=iO(i=t.a.Cb,97)?jz(i,97).Jg():null)?lbt(t.a,4,n):lbt(t.a,4,jz(e,126))}function $bt(t,e,n){return new VZ(i.Math.min(t.a,e.a)-n/2,i.Math.min(t.b,e.b)-n/2,i.Math.abs(t.a-e.a)+n,i.Math.abs(t.b-e.b)+n)}function zbt(t,e){var n,i;return 0!=(n=xL(t.a.c.p,e.a.c.p))?n:0!=(i=xL(t.a.d.i.p,e.a.d.i.p))?i:xL(e.a.d.p,t.a.d.p)}function Hbt(t,e,n){var i,a,r,o;return(r=e.j)!=(o=n.j)?r.g-o.g:(i=t.f[e.p],a=t.f[n.p],0==i&&0==a?0:0==i?-1:0==a?1:Cht(i,a))}function Ubt(t,e,n){var i;if(!n[e.d])for(n[e.d]=!0,i=new Wf(wft(e));i.a<i.c.c.length;)Ubt(t,Oft(jz(J1(i),213),e),n)}function Vbt(t,e,n){var i;switch(i=n[t.g][e],t.g){case 1:case 3:return new OT(0,i);case 2:case 4:return new OT(i,0);default:return null}}function qbt(t,e,n){var i;i=jz(sJ(e.f),209);try{i.Ze(t,n),kG(e.f,i)}catch(a){throw iO(a=dst(a),102),$m(a)}}function Wbt(t,e,n){var i,a,r,o;return i=null,(r=bVt(ait(),e))&&(a=null,null!=(o=JUt(r,n))&&(a=t.Ye(r,o)),i=a),i}function Ybt(t,e,n,i){var a;return a=new L9(t.e,1,13,e.c||(pGt(),lLe),n.c||(pGt(),lLe),oyt(t,e),!1),i?i.Ei(a):i=a,i}function Gbt(t,e,n,i){var a;if(e>=(a=t.length))return a;for(e=e>0?e:0;e<a&&!tct((d1(e,t.length),t.charCodeAt(e)),n,i);e++);return e}function Zbt(t,e){var n,i;for(i=t.c.length,e.length<i&&(e=zx(new Array(i),e)),n=0;n<i;++n)DY(e,n,t.c[n]);return e.length>i&&DY(e,i,null),e}function Kbt(t,e){var n,i;for(i=t.a.length,e.length<i&&(e=zx(new Array(i),e)),n=0;n<i;++n)DY(e,n,t.a[n]);return e.length>i&&DY(e,i,null),e}function Xbt(t,e,n){var i,a,r;return(a=jz(NY(t.e,e),387))?(r=pP(a,n),rO(t,a),r):(i=new Jz(t,e,n),YG(t.e,e,i),vJ(i),null)}function Jbt(t){var e;if(null==t)return null;if(null==(e=LLt(jzt(t,!0))))throw $m(new ex("Invalid hexBinary value: '"+t+"'"));return e}function Qbt(t){return ABt(),Gut(t,0)<0?0!=Gut(t,-1)?new m_t(-1,w9(t)):Xee:Gut(t,10)<=0?Qee[fV(t)]:new m_t(1,t)}function tmt(){return gGt(),Cst(Hx(Lae,1),IZt,159,0,[Cae,Eae,Sae,mae,bae,yae,xae,wae,vae,kae,_ae,Rae,gae,fae,pae,dae,uae,hae,cae,sae,lae,Tae])}function emt(t){var e;this.d=new Lm,this.j=new HR,this.g=new HR,e=t.g.b,this.f=jz(yEt(bG(e),(zYt(),Vpe)),103),this.e=Hw(_B(pmt(e,kme)))}function nmt(t){this.b=new Lm,this.e=new Lm,this.d=t,this.a=!w_(AZ(new NU(null,new UW(new m7(t.b))),new ag(new Va))).sd((fE(),Qne))}function imt(){imt=D,lEe=new AT("PARENTS",0),cEe=new AT("NODES",1),oEe=new AT("EDGES",2),uEe=new AT("PORTS",3),sEe=new AT("LABELS",4)}function amt(){amt=D,$Te=new UT("DISTRIBUTED",0),HTe=new UT("JUSTIFIED",1),FTe=new UT("BEGIN",2),jTe=new UT(eJt,3),zTe=new UT("END",4)}function rmt(t){switch(t.yi(null)){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4}return-1}function omt(t){switch(t.g){case 1:return jdt(),zSe;case 4:return jdt(),FSe;case 2:return jdt(),jSe;case 3:return jdt(),PSe}return jdt(),$Se}function smt(t,e,n){var i;switch((i=n.q.getFullYear()-cKt+cKt)<0&&(i=-i),e){case 1:t.a+=i;break;case 2:xtt(t,i%100,2);break;default:xtt(t,i,e)}}function cmt(t,e){var n,i;if(IQ(e,t.b),e>=t.b>>1)for(i=t.c,n=t.b;n>e;--n)i=i.b;else for(i=t.a.a,n=0;n<e;++n)i=i.a;return new XF(t,e,i)}function lmt(){lmt=D,gie=new FC("NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST",0),fie=new FC("CORNER_CASES_THAN_SINGLE_SIDE_LAST",1)}function umt(t){var e,n,i;for(mL(n=oTt(t),jse),(i=t.d).c=O5(Dte,zGt,1,0,5,1),e=new Wf(n);e.a<e.c.c.length;)pst(i,jz(J1(e),456).b)}function dmt(t){var e,n;for(!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),e=(n=t.o).c.Kc();e.e!=e.i.gc();)jz(e.nj(),42).dd();return A5(n)}function hmt(t){var e;IF(jz(yEt(t,(zYt(),tme)),98))&&(uDt((u1(0,(e=t.b).c.length),jz(e.c[0],29))),uDt(jz(OU(e,e.c.length-1),29)))}function fmt(t,e){var n,a,r,o;for(n=0,r=new Wf(e.a);r.a<r.c.c.length;)o=(a=jz(J1(r),10)).o.a+a.d.c+a.d.b+t.j,n=i.Math.max(n,o);return n}function gmt(t){var e,n,i,a;for(a=0,n=0,i=t.length;n<i;n++)d1(n,t.length),(e=t.charCodeAt(n))>=64&&e<128&&(a=e0(a,yq(1,e-64)));return a}function pmt(t,e){var n,i;return i=null,IN(t,(cGt(),CSe))&&(n=jz(yEt(t,CSe),94)).Xe(e)&&(i=n.We(e)),null==i&&bG(t)&&(i=yEt(bG(t),e)),i}function bmt(t,e){var n,i,a;(i=(a=e.d.i).k)!=(oCt(),Sse)&&i!=_se&&gIt(n=new oq(XO(dft(a).a.Kc(),new u)))&&YG(t.k,e,jz(V6(n),17))}function mmt(t,e){var n,i,a;return i=eet(t.Tg(),e),(n=e-t.Ah())<0?(a=t.Yg(i))>=0?t.lh(a):HAt(t,i):n<0?HAt(t,i):jz(i,66).Nj().Sj(t,t.yh(),n)}function ymt(t){var e;if(iO(t.a,4)){if(null==(e=Xpt(t.a)))throw $m(new Fw(s6t+t.b+"'. "+i6t+(xB(uIe),uIe.k)+a6t));return e}return t.a}function vmt(t){var e;if(null==t)return null;if(null==(e=qWt(jzt(t,!0))))throw $m(new ex("Invalid base64Binary value: '"+t+"'"));return e}function wmt(t){var e;try{return e=t.i.Xb(t.e),t.mj(),t.g=t.e++,e}catch(n){throw iO(n=dst(n),73)?(t.mj(),$m(new yy)):$m(n)}}function xmt(t){var e;try{return e=t.c.ki(t.e),t.mj(),t.g=t.e++,e}catch(n){throw iO(n=dst(n),73)?(t.mj(),$m(new yy)):$m(n)}}function Rmt(){Rmt=D,cGt(),xre=RSe,pre=yCe,ure=iCe,bre=qCe,Fxt(),vre=_ie,yre=xie,wre=Eie,mre=wie,Ult(),hre=ore,dre=rre,fre=cre,gre=lre}function _mt(t){switch(wE(),this.c=new Lm,this.d=t,t.g){case 0:case 2:this.a=GG(cse),this.b=BKt;break;case 3:case 1:this.a=cse,this.b=PKt}}function kmt(t,e,n){var i;if(t.c)Cnt(t.c,t.c.i+e),Snt(t.c,t.c.j+n);else for(i=new Wf(t.b);i.a<i.c.c.length;)kmt(jz(J1(i),157),e,n)}function Emt(t,e){var n,i;if(t.j.length!=e.j.length)return!1;for(n=0,i=t.j.length;n<i;n++)if(!mF(t.j[n],e.j[n]))return!1;return!0}function Cmt(t,e,n){var i;e.a.length>0&&(Wz(t.b,new Yz(e.a,n)),0<(i=e.a.length)?e.a=e.a.substr(0,0):0>i&&(e.a+=nO(O5(SMe,YZt,25,-i,15,1))))}function Smt(t,e){var n,i,a;for(n=t.o,a=jz(jz(c7(t.r,e),21),84).Kc();a.Ob();)(i=jz(a.Pb(),111)).e.a=gwt(i,n.a),i.e.b=n.b*Hw(_B(i.b.We(Iae)))}function Tmt(t,e){var n,i,a,r;return a=t.k,n=Hw(_B(yEt(t,(lGt(),Rhe)))),r=e.k,i=Hw(_B(yEt(e,Rhe))),r!=(oCt(),kse)?-1:a!=kse?1:n==i?0:n<i?-1:1}function Amt(t,e){var n,i;return n=jz(jz(NY(t.g,e.a),46).a,65),i=jz(jz(NY(t.g,e.b),46).a,65),W5(e.a,e.b)-W5(e.a,PL(n.b))-W5(e.b,PL(i.b))}function Dmt(t,e){var n;return n=jz(yEt(t,(zYt(),bbe)),74),QL(e,bse)?n?yK(n):(n=new vv,lct(t,bbe,n)):n&&lct(t,bbe,null),n}function Imt(t){var e;return(e=new Cx).a+="n",t.k!=(oCt(),Sse)&&oD(oD((e.a+="(",e),fN(t.k).toLowerCase()),")"),oD((e.a+="_",e),pwt(t)),e.a}function Lmt(t,e){Akt(e,"Self-Loop post-processing",1),Kk(AZ(AZ(htt(new NU(null,new h1(t.b,16)),new Ni),new Bi),new Pi),new Fi),zCt(e)}function Omt(t,e,n,i){var a;return n>=0?t.hh(e,n,i):(t.eh()&&(i=(a=t.Vg())>=0?t.Qg(i):t.eh().ih(t,-1-a,null,i)),t.Sg(e,n,i))}function Mmt(t,e){switch(e){case 7:return!t.e&&(t.e=new cF(BDe,t,7,4)),void cUt(t.e);case 8:return!t.d&&(t.d=new cF(BDe,t,8,5)),void cUt(t.d)}Ngt(t,e)}function Nmt(t,e){var n;n=t.Zc(e);try{return n.Pb()}catch(i){throw iO(i=dst(i),109)?$m(new Aw("Can't get element "+e)):$m(i)}}function Bmt(t,e){this.e=t,e<WKt?(this.d=1,this.a=Cst(Hx(TMe,1),lKt,25,15,[0|e])):(this.d=2,this.a=Cst(Hx(TMe,1),lKt,25,15,[e%WKt|0,e/WKt|0]))}function Pmt(t,e){var n,i,a,r;for(kK(),n=t,r=e,iO(t,21)&&!iO(e,21)&&(n=e,r=t),a=n.Kc();a.Ob();)if(i=a.Pb(),r.Hc(i))return!1;return!0}function Fmt(t,e,n){var i,a,r,o;return-1!=(i=t.Xc(e))&&(t.ej()?(r=t.fj(),o=Lwt(t,i),a=t.Zi(4,o,null,i,r),n?n.Ei(a):n=a):Lwt(t,i)),n}function jmt(t,e,n){var i,a,r,o;return-1!=(i=t.Xc(e))&&(t.ej()?(r=t.fj(),o=hU(t,i),a=t.Zi(4,o,null,i,r),n?n.Ei(a):n=a):hU(t,i)),n}function $mt(t,e){var n;switch(n=jz(oZ(t.b,e),124).n,e.g){case 1:t.t>=0&&(n.d=t.t);break;case 3:t.t>=0&&(n.a=t.t)}t.C&&(n.b=t.C.b,n.c=t.C.c)}function zmt(){zmt=D,$ae=new PC(yJt,0),jae=new PC(vJt,1),zae=new PC(wJt,2),Hae=new PC(xJt,3),$ae.a=!1,jae.a=!0,zae.a=!1,Hae.a=!0}function Hmt(){Hmt=D,Jae=new BC(yJt,0),Xae=new BC(vJt,1),Qae=new BC(wJt,2),tre=new BC(xJt,3),Jae.a=!1,Xae.a=!0,Qae.a=!1,tre.a=!0}function Umt(t){var e;e=t.a;do{(e=jz(V6(new oq(XO(uft(e).a.Kc(),new u))),17).c.i).k==(oCt(),Cse)&&t.b.Fc(e)}while(e.k==(oCt(),Cse));t.b=eot(t.b)}function Vmt(t){var e,n,i;for(i=t.c.a,t.p=(yY(i),new QF(i)),n=new Wf(i);n.a<n.c.c.length;)(e=jz(J1(n),10)).p=lTt(e).a;kK(),mL(t.p,new Dr)}function qmt(t){var e,n,i;if(n=0,0==(i=fBt(t)).c.length)return 1;for(e=new Wf(i);e.a<e.c.c.length;)n+=qmt(jz(J1(e),33));return n}function Wmt(t,e){var n,i,a;for(a=0,i=jz(jz(c7(t.r,e),21),84).Kc();i.Ob();)a+=(n=jz(i.Pb(),111)).d.b+n.b.rf().a+n.d.c,i.Ob()&&(a+=t.w);return a}function Ymt(t,e){var n,i,a;for(a=0,i=jz(jz(c7(t.r,e),21),84).Kc();i.Ob();)a+=(n=jz(i.Pb(),111)).d.d+n.b.rf().b+n.d.a,i.Ob()&&(a+=t.w);return a}function Gmt(t,e,n,i){if(e.a<i.a)return!0;if(e.a==i.a){if(e.b<i.b)return!0;if(e.b==i.b&&t.b>n.b)return!0}return!1}function Zmt(t,e){return qA(t)?!!AGt[e]:t.hm?!!t.hm[e]:VA(t)?!!TGt[e]:!!UA(t)&&!!SGt[e]}function Kmt(t,e,n){return null==n?(!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),Ypt(t.o,e)):(!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),mRt(t.o,e,n)),t}function Xmt(t,e,n,i){var a;(a=Wdt(e.Xe((cGt(),MCe))?jz(e.We(MCe),21):t.j))!=(gGt(),Tae)&&(n&&!rbt(a)||qCt(OLt(t,a,i),e))}function Jmt(t,e,n,i){var a,r,o;return r=eet(t.Tg(),e),(a=e-t.Ah())<0?(o=t.Yg(r))>=0?t._g(o,n,!0):aDt(t,r,n):jz(r,66).Nj().Pj(t,t.yh(),a,n,i)}function Qmt(t,e,n,i){var a,r;n.mh(e)&&(XE(),ctt(e)?vbt(t,jz(n.ah(e),153)):(a=(r=e)?jz(i,49).xh(r):null)&&Pm(n.ah(e),a))}function tyt(t){switch(t.g){case 1:return Not(),Bae;case 3:return Not(),Oae;case 2:return Not(),Nae;case 4:return Not(),Mae;default:return null}}function eyt(t){switch(typeof t){case OGt:return myt(t);case LGt:return CJ(t);case IGt:return cM(),t?1231:1237;default:return null==t?0:EM(t)}}function nyt(t,e,n){if(t.e)switch(t.b){case 1:jK(t.c,e,n);break;case 0:$K(t.c,e,n)}else Q4(t.c,e,n);t.a[e.p][n.p]=t.c.i,t.a[n.p][e.p]=t.c.e}function iyt(t){var e,n;if(null==t)return null;for(n=O5(Rse,cZt,193,t.length,0,2),e=0;e<n.length;e++)n[e]=jz(H8(t[e],t[e].length),193);return n}function ayt(t){var e;if(Plt(t))return mq(t),t.Lk()&&(e=jAt(t.e,t.b,t.c,t.a,t.j),t.j=e),t.g=t.a,++t.a,++t.c,t.i=0,t.j;throw $m(new yy)}function ryt(t,e){var n,i,a,r;return(r=t.o)<(n=t.p)?r*=r:n*=n,i=r+n,(r=e.o)<(n=e.p)?r*=r:n*=n,i<(a=r+n)?-1:i==a?0:1}function oyt(t,e){var n,i;if((i=Ywt(t,e))>=0)return i;if(t.Fk())for(n=0;n<t.i;++n)if(HA(t.Gk(jz(t.g[n],56)))===HA(e))return n;return-1}function syt(t,e,n){var i,a;if(e>=(a=t.gc()))throw $m(new QP(e,a));if(t.hi()&&(i=t.Xc(n))>=0&&i!=e)throw $m(new Pw(r5t));return t.mi(e,n)}function cyt(t,e){if(this.a=jz(yY(t),245),this.b=jz(yY(e),245),t.vd(e)>0||t==(tw(),Pte)||e==(Qv(),Fte))throw $m(new Pw("Invalid range: "+j4(t,e)))}function lyt(t){var e,n;for(this.b=new Lm,this.c=t,this.a=!1,n=new Wf(t.a);n.a<n.c.c.length;)e=jz(J1(n),10),this.a=this.a|e.k==(oCt(),Sse)}function uyt(t,e){var n,i,a;for(n=AM(new zy,t),a=new Wf(e);a.a<a.c.c.length;)i=jz(J1(a),121),qMt(aE(iE(rE(nE(new $y,0),0),n),i));return n}function dyt(t,e,n){var i,a,r;for(a=new oq(XO((e?uft(t):dft(t)).a.Kc(),new u));gIt(a);)i=jz(V6(a),17),(r=e?i.c.i:i.d.i).k==(oCt(),Ese)&&EQ(r,n)}function hyt(){hyt=D,dye=new PS(ZQt,0),hye=new PS("PORT_POSITION",1),uye=new PS("NODE_SIZE_WHERE_SPACE_PERMITS",2),lye=new PS("NODE_SIZE",3)}function fyt(){fyt=D,SEe=new MT("AUTOMATIC",0),DEe=new MT(aJt,1),IEe=new MT(rJt,2),LEe=new MT("TOP",3),TEe=new MT(sJt,4),AEe=new MT(eJt,5)}function gyt(t,e,n,i){var a,r;for(IDt(),a=0,r=0;r<n;r++)a=ift(aft(t0(e[r],qKt),t0(i,qKt)),t0(fV(a),qKt)),t[r]=fV(a),a=wq(a,32);return fV(a)}function pyt(t,e,n){var a,r;for(r=0,a=0;a<Gie;a++)r=i.Math.max(r,mut(t.a[e.g][a],n));return e==(Net(),Vie)&&t.b&&(r=i.Math.max(r,t.b.b)),r}function byt(t,e){var n,i;if(RN(e>0),(e&-e)==e)return CJ(e*zLt(t,31)*4.656612873077393e-10);do{i=(n=zLt(t,31))%e}while(n-i+(e-1)<0);return CJ(i)}function myt(t){var e,n,i;return nj(),null!=(i=nie[n=":"+t])?CJ((vG(i),i)):(e=null==(i=eie[n])?XMt(t):CJ((vG(i),i)),SK(),nie[n]=e,e)}function yyt(t,e,n){Akt(n,"Compound graph preprocessor",1),t.a=new pJ,Oqt(t,e,null),UHt(t,e),tMt(t),lct(e,(lGt(),$de),t.a),t.a=null,DW(t.b),zCt(n)}function vyt(t,e,n){switch(n.g){case 1:t.a=e.a/2,t.b=0;break;case 2:t.a=e.a,t.b=e.b/2;break;case 3:t.a=e.a/2,t.b=e.b;break;case 4:t.a=0,t.b=e.b/2}}function wyt(t){var e,n,i;for(i=jz(c7(t.a,(L_t(),Cle)),15).Kc();i.Ob();)eY(t,n=jz(i.Pb(),101),(e=zwt(n))[0],(Sat(),Mle),0),eY(t,n,e[1],Ble,1)}function xyt(t){var e,n,i;for(i=jz(c7(t.a,(L_t(),Sle)),15).Kc();i.Ob();)eY(t,n=jz(i.Pb(),101),(e=zwt(n))[0],(Sat(),Mle),0),eY(t,n,e[1],Ble,1)}function Ryt(t){switch(t.g){case 0:return null;case 1:return new Dat;case 2:return new Kv;default:throw $m(new Pw(a3t+(null!=t.f?t.f:""+t.g)))}}function _yt(t,e,n){var i,a;for(yst(t,e-t.s,n-t.t),a=new Wf(t.n);a.a<a.c.c.length;)ef(i=jz(J1(a),211),i.e+e-t.s),nf(i,i.f+n-t.t);t.s=e,t.t=n}function kyt(t){var e,n,i,a;for(n=0,i=new Wf(t.a);i.a<i.c.c.length;)jz(J1(i),121).d=n++;return a=null,(e=fCt(t)).c.length>1&&(a=uyt(t,e)),a}function Eyt(t){var e;return t.f&&t.f.kh()&&(e=jz(t.f,49),t.f=jz(tdt(t,e),82),t.f!=e&&4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,9,8,e,t.f))),t.f}function Cyt(t){var e;return t.i&&t.i.kh()&&(e=jz(t.i,49),t.i=jz(tdt(t,e),82),t.i!=e&&4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,9,7,e,t.i))),t.i}function Syt(t){var e;return t.b&&64&t.b.Db&&(e=t.b,t.b=jz(tdt(t,e),18),t.b!=e&&4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,9,21,e,t.b))),t.b}function Tyt(t,e){var n,i,a;null==t.d?(++t.e,++t.f):(i=e.Sh(),uMt(t,t.f+1),a=(i&NGt)%t.d.length,!(n=t.d[a])&&(n=t.d[a]=t.uj()),n.Fc(e),++t.f)}function Ayt(t,e,n){var i;return!e.Kj()&&(-2!=e.Zj()?null==(i=e.zj())?null==n:Odt(i,n):e.Hj()==t.e.Tg()&&null==n)}function Dyt(){var t;dit(16,TZt),t=Xit(16),this.b=O5(Ute,SZt,317,t,0,1),this.c=O5(Ute,SZt,317,t,0,1),this.a=null,this.e=null,this.i=0,this.f=t-1,this.g=0}function Iyt(t){IP.call(this),this.k=(oCt(),Sse),this.j=(dit(6,DZt),new K7(6)),this.b=(dit(2,DZt),new K7(2)),this.d=new lv,this.f=new hv,this.a=t}function Lyt(t){var e,n;t.c.length<=1||(gSt(t,jz((e=RBt(t,(wWt(),EAe))).a,19).a,jz(e.b,19).a),gSt(t,jz((n=RBt(t,SAe)).a,19).a,jz(n.b,19).a))}function Oyt(){Oyt=D,vye=new FS("SIMPLE",0),bye=new FS($1t,1),mye=new FS("LINEAR_SEGMENTS",2),pye=new FS("BRANDES_KOEPF",3),yye=new FS(x4t,4)}function Myt(t,e,n){IF(jz(yEt(e,(zYt(),tme)),98))||(W9(t,e,NCt(e,n)),W9(t,e,NCt(e,(wWt(),EAe))),W9(t,e,NCt(e,cAe)),kK(),mL(e.j,new Pp(t)))}function Nyt(t,e,n,i){var a;for(a=jz(c7(i?t.a:t.b,e),21).Kc();a.Ob();)if(FBt(t,n,jz(a.Pb(),33)))return!0;return!1}function Byt(t){var e,n;for(n=new AO(t);n.e!=n.i.gc();)if((e=jz(wmt(n),87)).e||0!=(!e.d&&(e.d=new DO(WIe,e,1)),e.d).i)return!0;return!1}function Pyt(t){var e,n;for(n=new AO(t);n.e!=n.i.gc();)if((e=jz(wmt(n),87)).e||0!=(!e.d&&(e.d=new DO(WIe,e,1)),e.d).i)return!0;return!1}function Fyt(t){var e,n;for(e=0,n=new Wf(t.c.a);n.a<n.c.c.length;)e+=F4(new oq(XO(dft(jz(J1(n),10)).a.Kc(),new u)));return e/t.c.a.c.length}function jyt(t){var e,n;for(t.c||VUt(t),n=new vv,J1(e=new Wf(t.a));e.a<e.c.c.length;)MH(n,jz(J1(e),407).a);return EN(0!=n.b),Det(n,n.c.b),n}function $yt(){$yt=D,hPt(),zke=Nke,jke=new WI(8),new qI((cGt(),qCe),jke),new qI(ISe,8),$ke=Oke,Pke=_ke,Fke=kke,Bke=new qI(uCe,(cM(),!1))}function zyt(t,e,n,i){switch(e){case 7:return!t.e&&(t.e=new cF(BDe,t,7,4)),t.e;case 8:return!t.d&&(t.d=new cF(BDe,t,8,5)),t.d}return Bft(t,e,n,i)}function Hyt(t){var e;return t.a&&t.a.kh()&&(e=jz(t.a,49),t.a=jz(tdt(t,e),138),t.a!=e&&4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,9,5,e,t.a))),t.a}function Uyt(t){return t<48||t>102?-1:t<=57?t-48:t<65?-1:t<=70?t-65+10:t<97?-1:t-97+10}function Vyt(t,e){if(null==t)throw $m(new $w("null key in entry: null="+e));if(null==e)throw $m(new $w("null value in entry: "+t+"=null"))}function qyt(t,e){for(var n,i;t.Ob();)if(!(e.Ob()&&(n=t.Pb(),i=e.Pb(),HA(n)===HA(i)||null!=n&&Odt(n,i))))return!1;return!e.Ob()}function Wyt(t,e){var n;return n=Cst(Hx(LMe,1),HKt,25,15,[mut(t.a[0],e),mut(t.a[1],e),mut(t.a[2],e)]),t.d&&(n[0]=i.Math.max(n[0],n[2]),n[2]=n[0]),n}function Yyt(t,e){var n;return n=Cst(Hx(LMe,1),HKt,25,15,[yut(t.a[0],e),yut(t.a[1],e),yut(t.a[2],e)]),t.d&&(n[0]=i.Math.max(n[0],n[2]),n[2]=n[0]),n}function Gyt(){Gyt=D,vue=new kS("GREEDY",0),yue=new kS(z1t,1),xue=new kS($1t,2),Rue=new kS("MODEL_ORDER",3),wue=new kS("GREEDY_MODEL_ORDER",4)}function Zyt(t,e){var n,i,a;for(t.b[e.g]=1,i=cmt(e.d,0);i.b!=i.d.c;)a=(n=jz(d4(i),188)).c,1==t.b[a.g]?MH(t.a,n):2==t.b[a.g]?t.b[a.g]=1:Zyt(t,a)}function Kyt(t,e){var n,i,a;for(a=new K7(e.gc()),i=e.Kc();i.Ob();)(n=jz(i.Pb(),286)).c==n.f?lSt(t,n,n.c):iSt(t,n)||(a.c[a.c.length]=n);return a}function Xyt(t,e,n){var i,a,r,o;for(o=t.r+e,t.r+=e,t.d+=n,i=n/t.n.c.length,a=0,r=new Wf(t.n);r.a<r.c.c.length;)fLt(jz(J1(r),211),o,i,a),++a}function Jyt(t){var e,n;for(mw(t.b.a),t.a=O5(cie,zGt,57,t.c.c.a.b.c.length,0,1),e=0,n=new Wf(t.c.c.a.b);n.a<n.c.c.length;)jz(J1(n),57).f=e++}function Qyt(t){var e,n;for(mw(t.b.a),t.a=O5(Yoe,zGt,81,t.c.a.a.b.c.length,0,1),e=0,n=new Wf(t.c.a.a.b);n.a<n.c.c.length;)jz(J1(n),81).i=e++}function tvt(t,e,n){Akt(n,"Shrinking tree compaction",1),zw(RB(yEt(e,(Wrt(),Gae))))?(nat(t,e.f),rtt(e.f,e.c)):rtt(e.f,e.c),zCt(n)}function evt(t){var e;if(e=hut(t),!gIt(t))throw $m(new Aw("position (0) must be less than the number of elements that remained ("+e+")"));return V6(t)}function nvt(t,e,n){try{return mvt(t,e+t.j,n+t.k)}catch(i){throw iO(i=dst(i),73)?$m(new Aw(i.g+SJt+e+jGt+n+").")):$m(i)}}function ivt(t,e,n){try{return yvt(t,e+t.j,n+t.k)}catch(i){throw iO(i=dst(i),73)?$m(new Aw(i.g+SJt+e+jGt+n+").")):$m(i)}}function avt(t,e,n){try{return vvt(t,e+t.j,n+t.k)}catch(i){throw iO(i=dst(i),73)?$m(new Aw(i.g+SJt+e+jGt+n+").")):$m(i)}}function rvt(t){switch(t.g){case 1:return wWt(),SAe;case 4:return wWt(),cAe;case 3:return wWt(),sAe;case 2:return wWt(),EAe;default:return wWt(),CAe}}function ovt(t,e,n){e.k==(oCt(),Sse)&&n.k==Cse&&(t.d=Rdt(e,(wWt(),EAe)),t.b=Rdt(e,cAe)),n.k==Sse&&e.k==Cse&&(t.d=Rdt(n,(wWt(),cAe)),t.b=Rdt(n,EAe))}function svt(t,e){var n,i;for(i=rft(t,e).Kc();i.Ob();)if(null!=yEt(n=jz(i.Pb(),11),(lGt(),xhe))||UM(new m7(n.b)))return!0;return!1}function cvt(t,e){return Cnt(e,t.e+t.d+(0==t.c.c.length?0:t.b)),Snt(e,t.f),t.a=i.Math.max(t.a,e.f),t.d+=e.g+(0==t.c.c.length?0:t.b),Wz(t.c,e),!0}function lvt(t,e,n){var i,a,r,o;for(o=0,i=n/t.a.c.length,r=new Wf(t.a);r.a<r.c.c.length;)_yt(a=jz(J1(r),187),a.s,a.t+o*i),Xyt(a,t.d-a.r+e,i),++o}function uvt(t){var e,n,i;for(n=new Wf(t.b);n.a<n.c.c.length;)for(e=0,i=new Wf(jz(J1(n),29).a);i.a<i.c.c.length;)jz(J1(i),10).p=e++}function dvt(t,e){var n,i,a,r,o,s;for(a=e.length-1,o=0,s=0,i=0;i<=a;i++)r=e[i],n=bCt(a,i)*edt(1-t,a-i)*edt(t,i),o+=r.a*n,s+=r.b*n;return new OT(o,s)}function hvt(t,e){var n,i,a,r,o;for(n=e.gc(),t.qi(t.i+n),r=e.Kc(),o=t.i,t.i+=n,i=o;i<t.i;++i)a=r.Pb(),wO(t,i,t.oi(i,a)),t.bi(i,a),t.ci();return 0!=n}function fvt(t,e,n){var i,a,r;return t.ej()?(i=t.Vi(),r=t.fj(),++t.j,t.Hi(i,t.oi(i,e)),a=t.Zi(3,null,e,i,r),n?n.Ei(a):n=a):XB(t,t.Vi(),e),n}function gvt(t,e,n){var i,a,r;return(64&(r=iO(a=(i=jz(Yet(a3(t.a),e),87)).c,88)?jz(a,26):(pGt(),hLe)).Db?tdt(t.b,r):r)==n?d$t(i):ant(i,n),r}function pvt(t,e,n,i,a,r,o,s){var c,l;i&&((c=i.a[0])&&pvt(t,e,n,c,a,r,o,s),Twt(t,n,i.d,a,r,o,s)&&e.Fc(i),(l=i.a[1])&&pvt(t,e,n,l,a,r,o,s))}function bvt(t,e){var n;return t.a||(n=O5(LMe,HKt,25,0,15,1),g_(t.b.a,new dg(n)),n.sort(nnt(k.prototype.te,k,[])),t.a=new PF(n,t.d)),B7(t.a,e)}function mvt(t,e,n){try{return GA(tat(t,e,n),1)}catch(i){throw iO(i=dst(i),320)?$m(new Aw(kJt+t.o+"*"+t.p+EJt+e+jGt+n+CJt)):$m(i)}}function yvt(t,e,n){try{return GA(tat(t,e,n),0)}catch(i){throw iO(i=dst(i),320)?$m(new Aw(kJt+t.o+"*"+t.p+EJt+e+jGt+n+CJt)):$m(i)}}function vvt(t,e,n){try{return GA(tat(t,e,n),2)}catch(i){throw iO(i=dst(i),320)?$m(new Aw(kJt+t.o+"*"+t.p+EJt+e+jGt+n+CJt)):$m(i)}}function wvt(t,e){if(-1==t.g)throw $m(new fy);t.mj();try{t.d._c(t.g,e),t.f=t.d.j}catch(n){throw iO(n=dst(n),73)?$m(new by):$m(n)}}function xvt(t,e,n){Akt(n,"Linear segments node placement",1),t.b=jz(yEt(e,(lGt(),Ahe)),304),GYt(t,e),mHt(t,e),ZHt(t,e),lYt(t),t.a=null,t.b=null,zCt(n)}function Rvt(t,e){var n,i,a,r;for(r=t.gc(),e.length<r&&(e=zx(new Array(r),e)),a=e,i=t.Kc(),n=0;n<r;++n)DY(a,n,i.Pb());return e.length>r&&DY(e,r,null),e}function _vt(t,e){var n,i;if(i=t.gc(),null==e){for(n=0;n<i;n++)if(null==t.Xb(n))return n}else for(n=0;n<i;n++)if(Odt(e,t.Xb(n)))return n;return-1}function kvt(t,e){var n,i,a;return n=e.cd(),a=e.dd(),i=t.xc(n),!(!(HA(a)===HA(i)||null!=a&&Odt(a,i))||null==i&&!t._b(n))}function Evt(t,e){var n,i,a;return e<=22?(n=t.l&(1<<e)-1,i=a=0):e<=44?(n=t.l,i=t.m&(1<<e-22)-1,a=0):(n=t.l,i=t.m,a=t.h&(1<<e-44)-1),_L(n,i,a)}function Cvt(t,e){switch(e.g){case 1:return t.f.n.d+t.t;case 3:return t.f.n.a+t.t;case 2:return t.f.n.c+t.s;case 4:return t.f.n.b+t.s;default:return 0}}function Svt(t,e){var n,i;switch(i=e.c,n=e.a,t.b.g){case 0:n.d=t.e-i.a-i.d;break;case 1:n.d+=t.e;break;case 2:n.c=t.e-i.a-i.d;break;case 3:n.c=t.e+i.d}}function Tvt(t,e,n,i){var a,r;this.a=e,this.c=i,Ah(this,new OT(-(a=t.a).c,-a.d)),VP(this.b,n),r=i/2,e.a?jN(this.b,0,r):jN(this.b,r,0),Wz(t.c,this)}function Avt(){Avt=D,HRe=new mT(ZQt,0),$Re=new mT(H1t,1),zRe=new mT("EDGE_LENGTH_BY_POSITION",2),jRe=new mT("CROSSING_MINIMIZATION_BY_POSITION",3)}function Dvt(t,e){var n,i;if(n=jz(cnt(t.g,e),33))return n;if(i=jz(cnt(t.j,e),118))return i;throw $m(new tx("Referenced shape does not exist: "+e))}function Ivt(t,e){if(t.c==e)return t.d;if(t.d==e)return t.c;throw $m(new Pw("Node 'one' must be either source or target of edge 'edge'."))}function Lvt(t,e){if(t.c.i==e)return t.d.i;if(t.d.i==e)return t.c.i;throw $m(new Pw("Node "+e+" is neither source nor target of edge "+t))}function Ovt(t,e){var n;switch(e.g){case 2:case 4:n=t.a,t.c.d.n.b<n.d.n.b&&(n=t.c),dW(t,e,(Ast(),wle),n);break;case 1:case 3:dW(t,e,(Ast(),mle),null)}}function Mvt(t,e,n,i,a,r){var o,s,c,l,u;for(o=nRt(e,n,r),s=n==(wWt(),cAe)||n==SAe?-1:1,l=t[n.g],u=0;u<l.length;u++)(c=l[u])>0&&(c+=a),l[u]=o,o+=s*(c+i)}function Nvt(t){var e,n,i;for(i=t.f,t.n=O5(LMe,HKt,25,i,15,1),t.d=O5(LMe,HKt,25,i,15,1),e=0;e<i;e++)n=jz(OU(t.c.b,e),29),t.n[e]=fmt(t,n),t.d[e]=GOt(t,n)}function Bvt(t,e){var n,i,a;for(a=0,i=2;i<e;i<<=1)t.Db&i&&++a;if(0==a){for(n=e<<=1;n<=128;n<<=1)if(t.Db&n)return 0;return-1}return a}function Pvt(t,e){var n,i,a,r,o;for(o=rNt(t.e.Tg(),e),r=null,n=jz(t.g,119),a=0;a<t.i;++a)i=n[a],o.rl(i.ak())&&(!r&&(r=new bc),l8(r,i));r&&rYt(t,r)}function Fvt(t){var e,n;if(!t)return null;if(t.dc())return"";for(n=new kx,e=t.Kc();e.Ob();)iD(n,kB(e.Pb())),n.a+=" ";return BD(n,n.a.length-1)}function jvt(t,e,n){var i,a,r,o;for(act(t),null==t.k&&(t.k=O5(Xte,cZt,78,0,0,1)),a=0,r=(i=t.k).length;a<r;++a)jvt(i[a]);(o=t.f)&&jvt(o)}function $vt(t,e){var n,i=new Array(e);switch(t){case 14:case 15:n=0;break;case 16:n=!1;break;default:return i}for(var a=0;a<e;++a)i[a]=n;return i}function zvt(t){var e;for(e=new Wf(t.a.b);e.a<e.c.c.length;)jz(J1(e),57).c.$b();Aet(fI(t.d)?t.a.c:t.a.d,new _g(t)),t.c.Me(t),FNt(t)}function Hvt(t){var e,n,i;for(n=new Wf(t.e.c);n.a<n.c.c.length;){for(i=new Wf((e=jz(J1(n),282)).b);i.a<i.c.c.length;)Fzt(jz(J1(i),447));$Tt(e)}}function Uvt(t){var e,n,a,r,o;for(a=0,o=0,r=0,n=new Wf(t.a);n.a<n.c.c.length;)e=jz(J1(n),187),o=i.Math.max(o,e.r),a+=e.d+(r>0?t.c:0),++r;t.b=a,t.d=o}function Vvt(t,e){var n,a,r,o,s;for(a=0,r=0,n=0,s=new Wf(e);s.a<s.c.c.length;)o=jz(J1(s),200),a=i.Math.max(a,o.e),r+=o.b+(n>0?t.g:0),++n;t.c=r,t.d=a}function qvt(t,e){var n;return n=Cst(Hx(LMe,1),HKt,25,15,[pyt(t,(Net(),Uie),e),pyt(t,Vie,e),pyt(t,qie,e)]),t.f&&(n[0]=i.Math.max(n[0],n[2]),n[2]=n[0]),n}function Wvt(t,e,n){try{jPt(t,e+t.j,n+t.k,!1,!0)}catch(i){throw iO(i=dst(i),73)?$m(new Aw(i.g+SJt+e+jGt+n+").")):$m(i)}}function Yvt(t,e,n){try{jPt(t,e+t.j,n+t.k,!0,!1)}catch(i){throw iO(i=dst(i),73)?$m(new Aw(i.g+SJt+e+jGt+n+").")):$m(i)}}function Gvt(t){var e;IN(t,(zYt(),Dbe))&&((e=jz(yEt(t,Dbe),21)).Hc((QIt(),TTe))?(e.Mc(TTe),e.Fc(DTe)):e.Hc(DTe)&&(e.Mc(DTe),e.Fc(TTe)))}function Zvt(t){var e;IN(t,(zYt(),Dbe))&&((e=jz(yEt(t,Dbe),21)).Hc((QIt(),NTe))?(e.Mc(NTe),e.Fc(OTe)):e.Hc(OTe)&&(e.Mc(OTe),e.Fc(NTe)))}function Kvt(t,e,n){Akt(n,"Self-Loop ordering",1),Kk(DZ(AZ(AZ(htt(new NU(null,new h1(e.b,16)),new Ai),new Di),new Ii),new Li),new dp(t)),zCt(n)}function Xvt(t,e,n,i){var a,r;for(a=e;a<t.c.length;a++){if(u1(a,t.c.length),r=jz(t.c[a],11),!n.Mb(r))return a;i.c[i.c.length]=r}return t.c.length}function Jvt(t,e,n,i){var a,r,o;return null==t.a&&gCt(t,e),o=e.b.j.c.length,r=n.d.p,(a=i.d.p-1)<0&&(a=o-1),r<=a?t.a[a]-t.a[r]:t.a[o-1]-t.a[r]+t.a[a]}function Qvt(t){var e,n;if(!t.b)for(t.b=C2(jz(t.f,33).Ag().i),n=new AO(jz(t.f,33).Ag());n.e!=n.i.gc();)e=jz(wmt(n),137),Wz(t.b,new Nw(e));return t.b}function twt(t){var e,n;if(!t.e)for(t.e=C2(yZ(jz(t.f,33)).i),n=new AO(yZ(jz(t.f,33)));n.e!=n.i.gc();)e=jz(wmt(n),118),Wz(t.e,new om(e));return t.e}function ewt(t){var e,n;if(!t.a)for(t.a=C2(ZK(jz(t.f,33)).i),n=new AO(ZK(jz(t.f,33)));n.e!=n.i.gc();)e=jz(wmt(n),33),Wz(t.a,new KM(t,e));return t.a}function nwt(t){var e;if(!t.C&&(null!=t.D||null!=t.B))if(e=hqt(t))t.yk(e);else try{t.yk(null)}catch(n){if(!iO(n=dst(n),60))throw $m(n)}return t.C}function iwt(t){switch(t.q.g){case 5:wRt(t,(wWt(),cAe)),wRt(t,EAe);break;case 4:aVt(t,(wWt(),cAe)),aVt(t,EAe);break;default:jSt(t,(wWt(),cAe)),jSt(t,EAe)}}function awt(t){switch(t.q.g){case 5:xRt(t,(wWt(),sAe)),xRt(t,SAe);break;case 4:rVt(t,(wWt(),sAe)),rVt(t,SAe);break;default:$St(t,(wWt(),sAe)),$St(t,SAe)}}function rwt(t,e){var n,a,r;for(r=new HR,a=t.Kc();a.Ob();)JPt(n=jz(a.Pb(),37),r.a,0),r.a+=n.f.a+e,r.b=i.Math.max(r.b,n.f.b);return r.b>0&&(r.b+=e),r}function owt(t,e){var n,a,r;for(r=new HR,a=t.Kc();a.Ob();)JPt(n=jz(a.Pb(),37),0,r.b),r.b+=n.f.b+e,r.a=i.Math.max(r.a,n.f.a);return r.a>0&&(r.a+=e),r}function swt(t){var e,n,a;for(a=NGt,n=new Wf(t.a);n.a<n.c.c.length;)IN(e=jz(J1(n),10),(lGt(),hhe))&&(a=i.Math.min(a,jz(yEt(e,hhe),19).a));return a}function cwt(t,e){var n,i;if(0==e.length)return 0;for(n=XY(t.a,e[0],(wWt(),SAe)),n+=XY(t.a,e[e.length-1],sAe),i=0;i<e.length;i++)n+=HEt(t,i,e);return n}function lwt(){pNt(),this.c=new Lm,this.i=new Lm,this.e=new lI,this.f=new lI,this.g=new lI,this.j=new Lm,this.a=new Lm,this.b=new Om,this.k=new Om}function uwt(t,e){var n;return t.Db>>16==6?t.Cb.ih(t,5,zDe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||t.zh(),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function dwt(t){EX();var e=t.e;if(e&&e.stack){var n=e.stack,i=e+"\n";return n.substring(0,i.length)==i&&(n=n.substring(i.length)),n.split("\n")}return[]}function hwt(t){var e;return kit(),(e=Aee)[t>>>28]|e[t>>24&15]<<4|e[t>>20&15]<<8|e[t>>16&15]<<12|e[t>>12&15]<<16|e[t>>8&15]<<20|e[t>>4&15]<<24|e[15&t]<<28}function fwt(t){var e,n,a;t.b==t.c&&(a=t.a.length,n=wct(i.Math.max(8,a))<<1,0!=t.b?(oat(t,e=kP(t.a,n),a),t.a=e,t.b=0):Ey(t.a,n),t.c=a)}function gwt(t,e){var n;return(n=t.b).Xe((cGt(),aSe))?n.Hf()==(wWt(),SAe)?-n.rf().a-Hw(_B(n.We(aSe))):e+Hw(_B(n.We(aSe))):n.Hf()==(wWt(),SAe)?-n.rf().a:e}function pwt(t){return 0!=t.b.c.length&&jz(OU(t.b,0),70).a?jz(OU(t.b,0),70).a:tK(t)??""+(t.c?x9(t.c.a,t,0):-1)}function bwt(t){return 0!=t.f.c.length&&jz(OU(t.f,0),70).a?jz(OU(t.f,0),70).a:tK(t)??""+(t.i?x9(t.i.j,t,0):-1)}function mwt(t,e){var n,i;if(e<0||e>=t.gc())return null;for(n=e;n<t.gc();++n)if(i=jz(t.Xb(n),128),n==t.gc()-1||!i.o)return new nA(nht(n),i);return null}function ywt(t,e,n){var i,a,r,o;for(r=t.c,i=n?t:e,a=(n?e:t).p+1;a<i.p;++a)if((o=jz(OU(r.a,a),10)).k!=(oCt(),_se)&&!Lxt(o))return!1;return!0}function vwt(t){var e,n,a,r,o;for(o=0,r=PKt,a=0,n=new Wf(t.a);n.a<n.c.c.length;)o+=(e=jz(J1(n),187)).r+(a>0?t.c:0),r=i.Math.max(r,e.d),++a;t.e=o,t.b=r}function wwt(t){var e,n;if(!t.b)for(t.b=C2(jz(t.f,118).Ag().i),n=new AO(jz(t.f,118).Ag());n.e!=n.i.gc();)e=jz(wmt(n),137),Wz(t.b,new Nw(e));return t.b}function xwt(t,e){var n,i,a;if(e.dc())return fB(),fB(),gIe;for(n=new aP(t,e.gc()),a=new AO(t);a.e!=a.i.gc();)i=wmt(a),e.Hc(i)&&l8(n,i);return n}function Rwt(t,e,n,i){return 0==e?i?(!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),t.o):(!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),A5(t.o)):Jmt(t,e,n,i)}function _wt(t){var e,n;if(t.rb)for(e=0,n=t.rb.i;e<n;++e)bN(Yet(t.rb,e));if(t.vb)for(e=0,n=t.vb.i;e<n;++e)bN(Yet(t.vb,e));aq((TSt(),KLe),t),t.Bb|=1}function kwt(t,e,n,i,a,r,o,s,c,l,u,d,h,f){return hTt(t,e,i,null,a,r,o,s,c,l,h,!0,f),Vht(t,u),iO(t.Cb,88)&&DTt(E6(jz(t.Cb,88)),2),n&&iat(t,n),qht(t,d),t}function Ewt(t){var e;if(null==t)return null;e=0;try{e=djt(t,FZt,NGt)&ZZt}catch(n){if(!iO(n=dst(n),127))throw $m(n);e=Y9(t)[0]}return ust(e)}function Cwt(t){var e;if(null==t)return null;e=0;try{e=djt(t,FZt,NGt)&ZZt}catch(n){if(!iO(n=dst(n),127))throw $m(n);e=Y9(t)[0]}return ust(e)}function Swt(t,e){var n,i,a;return!((a=t.h-e.h)<0||(n=t.l-e.l,i=t.m-e.m+(n>>22),a+=i>>22,a<0)||(t.l=n&EKt,t.m=i&EKt,t.h=a&CKt,0))}function Twt(t,e,n,i,a,r,o){var s,c;return!(e.Ae()&&(c=t.a.ue(n,i),c<0||!a&&0==c)||e.Be()&&(s=t.a.ue(n,r),s>0||!o&&0==s))}function Awt(t,e){if(Vlt(),0!=t.j.g-e.j.g)return 0;switch(t.j.g){case 2:return xft(e,dle)-xft(t,dle);case 4:return xft(t,ule)-xft(e,ule)}return 0}function Dwt(t){switch(t.g){case 0:return Mue;case 1:return Nue;case 2:return Bue;case 3:return Pue;case 4:return Fue;case 5:return jue;default:return null}}function Iwt(t,e,n){var i,a;return Tut(a=new Iv,e),Oat(a,n),l8((!t.c&&(t.c=new tW(GIe,t,12,10)),t.c),a),Lnt(i=a,0),Ont(i,1),Qdt(i,!0),Kdt(i,!0),i}function Lwt(t,e){var n,i;if(e>=t.i)throw $m(new ID(e,t.i));return++t.j,n=t.g[e],(i=t.i-e-1)>0&&rHt(t.g,e+1,t.g,e,i),DY(t.g,--t.i,null),t.fi(e,n),t.ci(),n}function Owt(t,e){var n;return t.Db>>16==17?t.Cb.ih(t,21,$Ie,e):(n=Syt(jz(eet(jz(vot(t,16),26)||t.zh(),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function Mwt(t){var e,n,i;for(kK(),mL(t.c,t.a),i=new Wf(t.c);i.a<i.c.c.length;)for(n=J1(i),e=new Wf(t.b);e.a<e.c.c.length;)jz(J1(e),679).Ke(n)}function Nwt(t){var e,n,i;for(kK(),mL(t.c,t.a),i=new Wf(t.c);i.a<i.c.c.length;)for(n=J1(i),e=new Wf(t.b);e.a<e.c.c.length;)jz(J1(e),369).Ke(n)}function Bwt(t){var e,n,i,a,r;for(a=NGt,r=null,i=new Wf(t.d);i.a<i.c.c.length;)(n=jz(J1(i),213)).d.j^n.e.j&&(e=n.e.e-n.d.e-n.a)<a&&(a=e,r=n);return r}function Pwt(){Pwt=D,foe=new DD(OQt,(cM(),!1)),loe=new DD(MQt,100),z9(),uoe=new DD(NQt,doe=Aoe),hoe=new DD(BQt,dQt),goe=new DD(PQt,nht(NGt))}function Fwt(t,e,n){var i,a,r,o,s,c;for(c=0,a=0,r=(i=t.a[e]).length;a<r;++a)for(s=Ldt(i[a],n).Kc();s.Ob();)o=jz(s.Pb(),11),YG(t.f,o,nht(c++))}function jwt(t,e,n){var i,a;if(n)for(a=((i=new cq(n.a.length)).b-i.a)*i.c<0?(tC(),RMe):new qO(i);a.Ob();)XAt(t,e,wAt(ftt(n,jz(a.Pb(),19).a)))}function $wt(t,e,n){var i,a;if(n)for(a=((i=new cq(n.a.length)).b-i.a)*i.c<0?(tC(),RMe):new qO(i);a.Ob();)XAt(t,e,wAt(ftt(n,jz(a.Pb(),19).a)))}function zwt(t){var e;return FEt(),U8(e=jz(Rvt(gq(t.k),O5(MAe,KQt,61,2,0,1)),122),0,e.length,null),e[0]==(wWt(),cAe)&&e[1]==SAe&&(DY(e,0,SAe),DY(e,1,cAe)),e}function Hwt(t,e,n){var i,a,r;return r=cBt(t,a=WMt(t,e,n)),B8(t.b),v0(t,e,n),kK(),mL(a,new Yp(t)),i=cBt(t,a),B8(t.b),v0(t,n,e),new nA(nht(r),nht(i))}function Uwt(){Uwt=D,Vve=fU(new j2,(vEt(),$oe),(dGt(),gce)),qve=new eP("linearSegments.inputPrio",nht(0)),Wve=new eP("linearSegments.outputPrio",nht(0))}function Vwt(){Vwt=D,Bwe=new lT("P1_TREEIFICATION",0),Pwe=new lT("P2_NODE_ORDERING",1),Fwe=new lT("P3_NODE_PLACEMENT",2),jwe=new lT("P4_EDGE_ROUTING",3)}function qwt(){qwt=D,cGt(),ORe=gSe,BRe=ISe,CRe=BCe,SRe=jCe,TRe=zCe,ERe=MCe,ARe=VCe,LRe=lSe,PIt(),_Re=hRe,kRe=fRe,DRe=pRe,IRe=mRe,MRe=yRe,NRe=vRe,PRe=xRe}function Wwt(){Wwt=D,kTe=new zT("UNKNOWN",0),xTe=new zT("ABOVE",1),RTe=new zT("BELOW",2),_Te=new zT("INLINE",3),new eP("org.eclipse.elk.labelSide",kTe)}function Ywt(t,e){var n;if(t.ni()&&null!=e){for(n=0;n<t.i;++n)if(Odt(e,t.g[n]))return n}else for(n=0;n<t.i;++n)if(HA(t.g[n])===HA(e))return n;return-1}function Gwt(t,e,n){var i,a;return e.c==(rit(),Hye)&&n.c==zye?-1:e.c==zye&&n.c==Hye?1:(i=gut(e.a,t.a),a=gut(n.a,t.a),e.c==Hye?a-i:i-a)}function Zwt(t,e,n){if(n&&(e<0||e>n.a.c.length))throw $m(new Pw("index must be >= 0 and <= layer node count"));t.c&&y9(t.c.a,t),t.c=n,n&&vV(n.a,e,t)}function Kwt(t,e){var n,i,a;for(i=new oq(XO(lft(t).a.Kc(),new u));gIt(i);)return n=jz(V6(i),17),new $d(yY((a=jz(e.Kb(n),10)).n.b+a.o.b/2));return ew(),ew(),Ate}function Xwt(t,e){this.c=new Om,this.a=t,this.b=e,this.d=jz(yEt(t,(lGt(),Ahe)),304),HA(yEt(t,(zYt(),Ibe)))===HA((g9(),Hue))?this.e=new gv:this.e=new fv}function Jwt(t,e){var n,a,r;for(r=0,a=new Wf(t);a.a<a.c.c.length;)n=jz(J1(a),33),r+=i.Math.pow(n.g*n.f-e,2);return i.Math.sqrt(r/(t.c.length-1))}function Qwt(t,e){var n,i;return i=null,t.Xe((cGt(),CSe))&&(n=jz(t.We(CSe),94)).Xe(e)&&(i=n.We(e)),null==i&&t.yf()&&(i=t.yf().We(e)),null==i&&(i=ymt(e)),i}function txt(t,e){var n,i;n=t.Zc(e);try{return i=n.Pb(),n.Qb(),i}catch(a){throw iO(a=dst(a),109)?$m(new Aw("Can't remove element "+e)):$m(a)}}function ext(t,e){var n,i,a;if(0==(n=Nzt(t,e,a=new mct((i=new Ak).q.getFullYear()-cKt,i.q.getMonth(),i.q.getDate())))||n<e.length)throw $m(new Pw(e));return a}function nxt(t,e){var n,i,a;for(vG(e),RN(e!=t),a=t.b.c.length,i=e.Kc();i.Ob();)n=i.Pb(),Wz(t.b,vG(n));return a!=t.b.c.length&&(Rlt(t,0),!0)}function ixt(){ixt=D,cGt(),voe=CCe,new qI(fCe,(cM(),!0)),Roe=BCe,_oe=jCe,koe=zCe,xoe=MCe,Eoe=VCe,Coe=lSe,Pwt(),yoe=foe,boe=uoe,moe=hoe,woe=goe,poe=loe}function axt(t,e){if(e==t.c)return t.d;if(e==t.d)return t.c;throw $m(new Pw("'port' must be either the source port or target port of the edge."))}function rxt(t,e,n){var i,a;switch(a=t.o,i=t.d,e.g){case 1:return-i.d-n;case 3:return a.b+i.a+n;case 2:return a.a+i.c+n;case 4:return-i.b-n;default:return 0}}function oxt(t,e,n,i){var a,r,o;for(EQ(e,jz(i.Xb(0),29)),o=i.bd(1,i.gc()),r=jz(n.Kb(e),20).Kc();r.Ob();)oxt(t,(a=jz(r.Pb(),17)).c.i==e?a.d.i:a.c.i,n,o)}function sxt(t){var e;return e=new Om,IN(t,(lGt(),Mhe))?jz(yEt(t,Mhe),83):(Kk(AZ(new NU(null,new h1(t.j,16)),new ea),new gp(e)),lct(t,Mhe,e),e)}function cxt(t,e){var n;return t.Db>>16==6?t.Cb.ih(t,6,BDe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(SYt(),yDe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function lxt(t,e){var n;return t.Db>>16==7?t.Cb.ih(t,1,ODe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(SYt(),wDe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function uxt(t,e){var n;return t.Db>>16==9?t.Cb.ih(t,9,UDe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(SYt(),RDe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function dxt(t,e){var n;return t.Db>>16==5?t.Cb.ih(t,9,VIe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(pGt(),oLe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function hxt(t,e){var n;return t.Db>>16==3?t.Cb.ih(t,0,FDe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(pGt(),QIe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function fxt(t,e){var n;return t.Db>>16==7?t.Cb.ih(t,6,zDe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(pGt(),pLe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function gxt(){this.a=new fc,this.g=new Dyt,this.j=new Dyt,this.b=new Om,this.d=new Dyt,this.i=new Dyt,this.k=new Om,this.c=new Om,this.e=new Om,this.f=new Om}function pxt(t,e,n){var i,a,r;for(n<0&&(n=0),r=t.i,a=n;a<r;a++)if(i=Yet(t,a),null==e){if(null==i)return a}else if(HA(e)===HA(i)||Odt(e,i))return a;return-1}function bxt(t,e){var n,i;return(n=e.Hh(t.a))?(i=kB(apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),x9t)),mF(R9t,i)?aq(t,qet(e.Hj())):i):null}function mxt(t,e){var n,i;if(e){if(e==t)return!0;for(n=0,i=jz(e,49).eh();i&&i!=e;i=i.eh()){if(++n>UKt)return mxt(t,i);if(i==t)return!0}}return!1}function yxt(t){switch(MM(),t.q.g){case 5:mAt(t,(wWt(),cAe)),mAt(t,EAe);break;case 4:VLt(t,(wWt(),cAe)),VLt(t,EAe);break;default:mWt(t,(wWt(),cAe)),mWt(t,EAe)}}function vxt(t){switch(MM(),t.q.g){case 5:EDt(t,(wWt(),sAe)),EDt(t,SAe);break;case 4:Smt(t,(wWt(),sAe)),Smt(t,SAe);break;default:yWt(t,(wWt(),sAe)),yWt(t,SAe)}}function wxt(t){var e,n;(e=jz(yEt(t,(uPt(),Jre)),19))?(n=e.a,lct(t,(kat(),coe),0==n?new cft:new C3(n))):lct(t,(kat(),coe),new C3(1))}function xxt(t,e){var n;switch(n=t.i,e.g){case 1:return-(t.n.b+t.o.b);case 2:return t.n.a-n.o.a;case 3:return t.n.b-n.o.b;case 4:return-(t.n.a+t.o.a)}return 0}function Rxt(t,e){switch(t.g){case 0:return e==(_ft(),jhe)?ile:ale;case 1:return e==(_ft(),jhe)?ile:nle;case 2:return e==(_ft(),jhe)?nle:ale;default:return nle}}function _xt(t,e){var n,a,r;for(y9(t.a,e),t.e-=e.r+(0==t.a.c.length?0:t.c),r=Q4t,a=new Wf(t.a);a.a<a.c.c.length;)n=jz(J1(a),187),r=i.Math.max(r,n.d);t.b=r}function kxt(t,e){var n;return t.Db>>16==3?t.Cb.ih(t,12,UDe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(SYt(),mDe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function Ext(t,e){var n;return t.Db>>16==11?t.Cb.ih(t,10,UDe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(SYt(),xDe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function Cxt(t,e){var n;return t.Db>>16==10?t.Cb.ih(t,11,$Ie,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(pGt(),fLe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function Sxt(t,e){var n;return t.Db>>16==10?t.Cb.ih(t,12,YIe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(pGt(),bLe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function Txt(t){var e;return!(1&t.Bb)&&t.r&&t.r.kh()&&(e=jz(t.r,49),t.r=jz(tdt(t,e),138),t.r!=e&&4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,9,8,e,t.r))),t.r}function Axt(t,e,n){var a;return a=Cst(Hx(LMe,1),HKt,25,15,[nEt(t,(Net(),Uie),e,n),nEt(t,Vie,e,n),nEt(t,qie,e,n)]),t.f&&(a[0]=i.Math.max(a[0],a[2]),a[2]=a[0]),a}function Dxt(t,e){var n,i,a;if(0!=(a=Kyt(t,e)).c.length)for(mL(a,new ei),n=a.c.length,i=0;i<n;i++)lSt(t,(u1(i,a.c.length),jz(a.c[i],286)),_Bt(t,a,i))}function Ixt(t){var e,n,i;for(i=jz(c7(t.a,(L_t(),_le)),15).Kc();i.Ob();)for(e=gq((n=jz(i.Pb(),101)).k).Kc();e.Ob();)eY(t,n,jz(e.Pb(),61),(Sat(),Nle),1)}function Lxt(t){var e,n;if(t.k==(oCt(),Cse))for(n=new oq(XO(lft(t).a.Kc(),new u));gIt(n);)if(!d6(e=jz(V6(n),17))&&t.c==DRt(e,t).c)return!0;return!1}function Oxt(t){var e,n;if(t.k==(oCt(),Cse))for(n=new oq(XO(lft(t).a.Kc(),new u));gIt(n);)if(!d6(e=jz(V6(n),17))&&e.c.i.c==e.d.i.c)return!0;return!1}function Mxt(t,e){var n,i;for(Akt(e,"Dull edge routing",1),i=cmt(t.b,0);i.b!=i.d.c;)for(n=cmt(jz(d4(i),86).d,0);n.b!=n.d.c;)yK(jz(d4(n),188).a)}function Nxt(t,e){var n,i,a;if(e)for(a=((n=new cq(e.a.length)).b-n.a)*n.c<0?(tC(),RMe):new qO(n);a.Ob();)(i=O2(e,jz(a.Pb(),19).a))&&ALt(t,i)}function Bxt(){var t;for(QE(),QYt((GY(),JIe)),FYt(JIe),_wt(JIe),pGt(),DLe=lLe,t=new Wf(WLe);t.a<t.c.c.length;)rqt(jz(J1(t),241),lLe,null);return!0}function Pxt(t,e){var n,i,a,r,o,s;return(o=t.h>>19)!=(s=e.h>>19)?s-o:(i=t.h)!=(r=e.h)?i-r:(n=t.m)!=(a=e.m)?n-a:t.l-e.l}function Fxt(){Fxt=D,tPt(),Eie=new DD(qXt,Cie=Nie),Ntt(),_ie=new DD(WXt,kie=yie),lmt(),xie=new DD(YXt,Rie=gie),wie=new DD(GXt,(cM(),!0))}function jxt(t,e,n){var i,a;i=e*n,iO(t.g,145)?(a=l4(t)).f.d?a.f.a||(t.d.a+=i+uJt):(t.d.d-=i+uJt,t.d.a+=i+uJt):iO(t.g,10)&&(t.d.d-=i,t.d.a+=2*i)}function $xt(t,e,n){var a,r,o,s,c;for(r=t[n.g],c=new Wf(e.d);c.a<c.c.c.length;)(o=(s=jz(J1(c),101)).i)&&o.i==n&&(r[a=s.d[n.g]]=i.Math.max(r[a],o.j.b))}function zxt(t,e){var n,a,r,o,s;for(a=0,r=0,n=0,s=new Wf(e.d);s.a<s.c.c.length;)Uvt(o=jz(J1(s),443)),a=i.Math.max(a,o.b),r+=o.d+(n>0?t.g:0),++n;e.b=a,e.e=r}function Hxt(t){var e,n,i;if(i=t.b,zk(t.i,i.length)){for(n=2*i.length,t.b=O5(Ute,SZt,317,n,0,1),t.c=O5(Ute,SZt,317,n,0,1),t.f=n-1,t.i=0,e=t.a;e;e=e.c)KTt(t,e,e);++t.g}}function Uxt(t,e,n,i){var a,r,o,s;for(a=0;a<e.o;a++)for(r=a-e.j+n,o=0;o<e.p;o++)s=o-e.k+i,mvt(e,a,o)?avt(t,r,s)||Wvt(t,r,s):vvt(e,a,o)&&(nvt(t,r,s)||Yvt(t,r,s))}function Vxt(t,e,n){var i;(i=e.c.i).k==(oCt(),Cse)?(lct(t,(lGt(),che),jz(yEt(i,che),11)),lct(t,lhe,jz(yEt(i,lhe),11))):(lct(t,(lGt(),che),e.c),lct(t,lhe,n.d))}function qxt(t,e,n){var a,r,o,s,c,l;return xBt(),s=e/2,o=n/2,c=1,l=1,(a=i.Math.abs(t.a))>s&&(c=s/a),(r=i.Math.abs(t.b))>o&&(l=o/r),vO(t,i.Math.min(c,l)),t}function Wxt(){var t,e;Hzt();try{if(e=jz(WRt((WE(),HIe),v7t),2014))return e}catch(n){if(!iO(n=dst(n),102))throw $m(n);t=n,rq((rL(),t))}return new sc}function Yxt(){var t,e;f9();try{if(e=jz(WRt((WE(),HIe),E9t),2024))return e}catch(n){if(!iO(n=dst(n),102))throw $m(n);t=n,rq((rL(),t))}return new Bl}function Gxt(){var t,e;Hzt();try{if(e=jz(WRt((WE(),HIe),G8t),1941))return e}catch(n){if(!iO(n=dst(n),102))throw $m(n);t=n,rq((rL(),t))}return new Uc}function Zxt(t,e,n){var i,a;return a=t.e,t.e=e,4&t.Db&&!(1&t.Db)&&(i=new Jq(t,1,4,a,e),n?n.Ei(i):n=i),a!=e&&(n=rqt(t,e?wOt(t,e):t.a,n)),n}function Kxt(){Ak.call(this),this.e=-1,this.a=!1,this.p=FZt,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=FZt}function Xxt(t,e){var n,i,a;if(i=t.b.d.d,t.a||(i+=t.b.d.a),a=e.b.d.d,e.a||(a+=e.b.d.a),0==(n=Cht(i,a))){if(!t.a&&e.a)return-1;if(!e.a&&t.a)return 1}return n}function Jxt(t,e){var n,i,a;if(i=t.b.b.d,t.a||(i+=t.b.b.a),a=e.b.b.d,e.a||(a+=e.b.b.a),0==(n=Cht(i,a))){if(!t.a&&e.a)return-1;if(!e.a&&t.a)return 1}return n}function Qxt(t,e){var n,i,a;if(i=t.b.g.d,t.a||(i+=t.b.g.a),a=e.b.g.d,e.a||(a+=e.b.g.a),0==(n=Cht(i,a))){if(!t.a&&e.a)return-1;if(!e.a&&t.a)return 1}return n}function tRt(){tRt=D,Loe=WV(fU(fU(fU(new j2,(vEt(),joe),(dGt(),vce)),joe,_ce),$oe,Dce),$oe,sce),Moe=fU(fU(new j2,joe,Xse),joe,cce),Ooe=WV(new j2,$oe,uce)}function eRt(t){var e,n,i,a,r;for(e=jz(yEt(t,(lGt(),Ude)),83),r=t.n,i=e.Cc().Kc();i.Ob();)(a=(n=jz(i.Pb(),306)).i).c+=r.a,a.d+=r.b,n.c?OBt(n):MBt(n);lct(t,Ude,null)}function nRt(t,e,n){var i,a;switch(i=(a=t.b).d,e.g){case 1:return-i.d-n;case 2:return a.o.a+i.c+n;case 3:return a.o.b+i.a+n;case 4:return-i.b-n;default:return-1}}function iRt(t){var e,n,i,a,r;if(i=0,a=JJt,t.b)for(e=0;e<360;e++)n=.017453292519943295*e,qFt(t,t.d,0,0,J4t,n),(r=t.b.ig(t.d))<a&&(i=n,a=r);qFt(t,t.d,0,0,J4t,i)}function aRt(t,e){var n,i,a,r;for(r=new Om,e.e=null,e.f=null,i=new Wf(e.i);i.a<i.c.c.length;)n=jz(J1(i),65),a=jz(NY(t.g,n.a),46),n.a=zq(n.b),YG(r,n.a,a);t.g=r}function rRt(t,e,n){var i,a,r,o,s;for(a=(e-t.e)/t.d.c.length,r=0,s=new Wf(t.d);s.a<s.c.c.length;)o=jz(J1(s),443),i=t.b-o.b+n,wpt(o,o.e+r*a,o.f),lvt(o,a,i),++r}function oRt(t){var e;if(t.f.qj(),-1!=t.b){if(++t.b,e=t.f.d[t.a],t.b<e.i)return;++t.a}for(;t.a<t.f.d.length;++t.a)if((e=t.f.d[t.a])&&0!=e.i)return void(t.b=0);t.b=-1}function sRt(t,e){var n,i,a;for(n=ITt(t,0==(a=e.c.length)?"":(u1(0,e.c.length),kB(e.c[0]))),i=1;i<a&&n;++i)n=jz(n,49).oh((u1(i,e.c.length),kB(e.c[i])));return n}function cRt(t,e){var n,i;for(i=new Wf(e);i.a<i.c.c.length;)n=jz(J1(i),10),t.c[n.c.p][n.p].a=TV(t.i),t.c[n.c.p][n.p].d=Hw(t.c[n.c.p][n.p].a),t.c[n.c.p][n.p].b=1}function lRt(t,e){var n,a,r;for(r=0,a=new Wf(t);a.a<a.c.c.length;)n=jz(J1(a),157),r+=i.Math.pow(eV(n)*tV(n)-e,2);return i.Math.sqrt(r/(t.c.length-1))}function uRt(t,e,n,i){var a,r,o;return o=OPt(t,r=HPt(t,e,n,i)),uEt(t,e,n,i),B8(t.b),kK(),mL(r,new Gp(t)),a=OPt(t,r),uEt(t,n,e,i),B8(t.b),new nA(nht(o),nht(a))}function dRt(t,e,n){var i;for(Akt(n,"Interactive node placement",1),t.a=jz(yEt(e,(lGt(),Ahe)),304),i=new Wf(e.b);i.a<i.c.c.length;)QNt(t,jz(J1(i),29));zCt(n)}function hRt(t,e){Akt(e,"General Compactor",1),e.n&&t&&y0(e,o2(t),($lt(),oDe)),ggt(jz(JIt(t,(qwt(),kRe)),380)).hg(t),e.n&&t&&y0(e,o2(t),($lt(),oDe))}function fRt(t,e,n){var i,a;for(CI(t,t.j+e,t.k+n),a=new AO((!t.a&&(t.a=new DO(LDe,t,5)),t.a));a.e!=a.i.gc();)RI(i=jz(wmt(a),469),i.a+e,i.b+n);EI(t,t.b+e,t.c+n)}function gRt(t,e,n,i){switch(n){case 7:return!t.e&&(t.e=new cF(BDe,t,7,4)),Kgt(t.e,e,i);case 8:return!t.d&&(t.d=new cF(BDe,t,8,5)),Kgt(t.d,e,i)}return jkt(t,e,n,i)}function pRt(t,e,n,i){switch(n){case 7:return!t.e&&(t.e=new cF(BDe,t,7,4)),Fmt(t.e,e,i);case 8:return!t.d&&(t.d=new cF(BDe,t,8,5)),Fmt(t.d,e,i)}return ist(t,e,n,i)}function bRt(t,e,n){var i,a,r;if(n)for(r=((i=new cq(n.a.length)).b-i.a)*i.c<0?(tC(),RMe):new qO(i);r.Ob();)(a=O2(n,jz(r.Pb(),19).a))&&hAt(t,a,e)}function mRt(t,e,n){var i,a,r;return t.qj(),r=null==e?0:Qct(e),t.f>0&&(a=rDt(t,(r&NGt)%t.d.length,r,e))?a.ed(n):(i=t.tj(r,e,n),t.c.Fc(i),null)}function yRt(t,e){var n,i,a,r;switch(Sdt(t,e)._k()){case 3:case 2:for(a=0,r=(n=Kzt(e)).i;a<r;++a)if(5==MG(j9(t,i=jz(Yet(n,a),34))))return i}return null}function vRt(t){var e,n,i,a,r;if(zk(t.f,t.b.length))for(i=O5(Zte,SZt,330,2*t.b.length,0,1),t.b=i,a=i.length-1,n=t.a;n!=t;n=n.Rd())e=(r=jz(n,330)).d&a,r.a=i[e],i[e]=r}function wRt(t,e){var n,a,r,o;for(o=0,r=jz(jz(c7(t.r,e),21),84).Kc();r.Ob();)a=jz(r.Pb(),111),o=i.Math.max(o,a.e.a+a.b.rf().a);(n=jz(oZ(t.b,e),124)).n.b=0,n.a.a=o}function xRt(t,e){var n,a,r,o;for(n=0,o=jz(jz(c7(t.r,e),21),84).Kc();o.Ob();)r=jz(o.Pb(),111),n=i.Math.max(n,r.e.b+r.b.rf().b);(a=jz(oZ(t.b,e),124)).n.d=0,a.a.b=n}function RRt(t){var e,n;return n=jz(yEt(t,(lGt(),Xde)),21),e=vI(bwe),n.Hc((hBt(),pde))&&Xrt(e,vwe),n.Hc(mde)&&Xrt(e,xwe),n.Hc(cde)&&Xrt(e,mwe),n.Hc(ude)&&Xrt(e,ywe),e}function _Rt(t,e){var n;Akt(e,"Delaunay triangulation",1),n=new Lm,Aet(t.i,new yb(n)),zw(RB(yEt(t,(Wrt(),Gae)))),t.e?jat(t.e,IYt(n)):t.e=IYt(n),zCt(e)}function kRt(t){if(t<0)throw $m(new Pw("The input must be positive"));return t<_Ee.length?w2(_Ee[t]):i.Math.sqrt(J4t*t)*(ndt(t,t)/edt(2.718281828459045,t))}function ERt(t,e){var n;if(t.ni()&&null!=e){for(n=0;n<t.i;++n)if(Odt(e,t.g[n]))return!0}else for(n=0;n<t.i;++n)if(HA(t.g[n])===HA(e))return!0;return!1}function CRt(t,e){if(null==e){for(;t.a.Ob();)if(null==jz(t.a.Pb(),42).dd())return!0}else for(;t.a.Ob();)if(Odt(e,jz(t.a.Pb(),42).dd()))return!0;return!1}function SRt(t,e){var n;return e===t||!!iO(e,664)&&(n=jz(e,1947),nbt(t.g||(t.g=new Kd(t)),n.g||(n.g=new Kd(n))))}function TRt(t){var e,n,a;for(e="Sz",n="ez",a=i.Math.min(t.length,5)-1;a>=0;a--)if(mF(t[a].d,e)||mF(t[a].d,n)){t.length>=a+1&&t.splice(0,a+1);break}return t}function ARt(t,e){var n;return KD(t)&&KD(e)&&IKt<(n=t/e)&&n<AKt?n<0?i.Math.ceil(n):i.Math.floor(n):oot(DUt(KD(t)?Cot(t):t,KD(e)?Cot(e):e,!1))}function DRt(t,e){if(e==t.c.i)return t.d.i;if(e==t.d.i)return t.c.i;throw $m(new Pw("'node' must either be the source node or target node of the edge."))}function IRt(t){var e,n,i,a;if(a=jz(yEt(t,(lGt(),Fde)),37)){for(i=new HR,e=bG(t.c.i);e!=a;)e=bG(n=e.e),PN(VP(VP(i,n.n),e.c),e.d.b,e.d.d);return i}return Fse}function LRt(t){var e;Kk(htt(new NU(null,new h1((e=jz(yEt(t,(lGt(),The)),403)).d,16)),new ji),new hp(t)),Kk(AZ(new NU(null,new h1(e.d,16)),new $i),new fp(t))}function ORt(t,e){var n,i;for(n=new oq(XO((e?dft(t):uft(t)).a.Kc(),new u));gIt(n);)if((i=DRt(jz(V6(n),17),t)).k==(oCt(),Cse)&&i.c!=t.c)return i;return null}function MRt(t){var e,n,a;for(n=new Wf(t.p);n.a<n.c.c.length;)(e=jz(J1(n),10)).k==(oCt(),Sse)&&(a=e.o.b,t.i=i.Math.min(t.i,a),t.g=i.Math.max(t.g,a))}function NRt(t,e,n){var i,a,r;for(r=new Wf(e);r.a<r.c.c.length;)i=jz(J1(r),10),t.c[i.c.p][i.p].e=!1;for(a=new Wf(e);a.a<a.c.c.length;)Mqt(t,i=jz(J1(a),10),n)}function BRt(t,e,n){var a,r;(a=_dt(e.j,n.s,n.c)+_dt(n.e,e.s,e.c))==(r=_dt(n.j,e.s,e.c)+_dt(e.e,n.s,n.c))?a>0&&(t.b+=2,t.a+=a):(t.b+=1,t.a+=i.Math.min(a,r))}function PRt(t,e){var n;if(n=!1,qA(e)&&(n=!0,JY(t,new HY(kB(e)))),n||iO(e,236)&&(n=!0,JY(t,new _h(qF(jz(e,236))))),!n)throw $m(new Iw(z7t))}function FRt(t,e,n,i){var a,r,o;return a=new L9(t.e,1,10,iO(o=e.c,88)?jz(o,26):(pGt(),hLe),iO(r=n.c,88)?jz(r,26):(pGt(),hLe),oyt(t,e),!1),i?i.Ei(a):i=a,i}function jRt(t){var e,n;switch(jz(yEt(bG(t),(zYt(),pbe)),420).g){case 0:return e=t.n,n=t.o,new OT(e.a+n.a/2,e.b+n.b/2);case 1:return new hI(t.n);default:return null}}function $Rt(){$Rt=D,Zue=new AS(ZQt,0),Gue=new AS("LEFTUP",1),Xue=new AS("RIGHTUP",2),Yue=new AS("LEFTDOWN",3),Kue=new AS("RIGHTDOWN",4),Wue=new AS("BALANCED",5)}function zRt(t,e,n){var i,a,r;if(0==(i=Cht(t.a[e.p],t.a[n.p]))){if(a=jz(yEt(e,(lGt(),ihe)),15),r=jz(yEt(n,ihe),15),a.Hc(n))return-1;if(r.Hc(e))return 1}return i}function HRt(t){switch(t.g){case 1:return new $o;case 2:return new zo;case 3:return new jo;case 0:return null;default:throw $m(new Pw(a3t+(null!=t.f?t.f:""+t.g)))}}function URt(t,e,n){switch(e){case 1:return!t.n&&(t.n=new tW(HDe,t,1,7)),cUt(t.n),!t.n&&(t.n=new tW(HDe,t,1,7)),void pY(t.n,jz(n,14));case 2:return void Iit(t,kB(n))}ilt(t,e,n)}function VRt(t,e,n){switch(e){case 3:return void knt(t,Hw(_B(n)));case 4:return void Ent(t,Hw(_B(n)));case 5:return void Cnt(t,Hw(_B(n)));case 6:return void Snt(t,Hw(_B(n)))}URt(t,e,n)}function qRt(t,e,n){var i,a;(i=zkt(a=new Iv,e,null))&&i.Fi(),Oat(a,n),l8((!t.c&&(t.c=new tW(GIe,t,12,10)),t.c),a),Lnt(a,0),Ont(a,1),Qdt(a,!0),Kdt(a,!0)}function WRt(t,e){var n,i;return iO(n=cC(t.g,e),235)?((i=jz(n,235)).Qh(),i.Nh()):iO(n,498)?i=jz(n,1938).b:null}function YRt(t,e,n,i){var a,r;return yY(e),yY(n),N9(!!(r=jz(VF(t.d,e),19)),"Row %s not in %s",e,t.e),N9(!!(a=jz(VF(t.b,n),19)),"Column %s not in %s",n,t.c),Est(t,r.a,a.a,i)}function GRt(t,e,n,i,a,r,o){var s,c,l,u,d;if(d=$vt(s=(l=r==o-1)?i:0,u=a[r]),10!=i&&Cst(Hx(t,o-r),e[r],n[r],s,d),!l)for(++r,c=0;c<u;++c)d[c]=GRt(t,e,n,i,a,r,o);return d}function ZRt(t){if(-1==t.g)throw $m(new fy);t.mj();try{t.i.$c(t.g),t.f=t.i.j,t.g<t.e&&--t.e,t.g=-1}catch(e){throw iO(e=dst(e),73)?$m(new by):$m(e)}}function KRt(t,e){return t.b.a=i.Math.min(t.b.a,e.c),t.b.b=i.Math.min(t.b.b,e.d),t.a.a=i.Math.max(t.a.a,e.c),t.a.b=i.Math.max(t.a.b,e.d),t.c[t.c.length]=e,!0}function XRt(t){var e,n,i;for(i=-1,n=0,e=new Wf(t);e.a<e.c.c.length;){if(jz(J1(e),243).c==(rit(),zye)){i=0==n?0:n-1;break}n==t.c.length-1&&(i=n),n+=1}return i}function JRt(t){var e,n,a,r;for(r=0,e=0,a=new Wf(t.c);a.a<a.c.c.length;)Cnt(n=jz(J1(a),33),t.e+r),Snt(n,t.f),r+=n.g+t.b,e=i.Math.max(e,n.f+t.b);t.d=r-t.b,t.a=e-t.b}function QRt(t){var e,n,i;for(n=new Wf(t.a.b);n.a<n.c.c.length;)i=(e=jz(J1(n),57)).d.c,e.d.c=e.d.d,e.d.d=i,i=e.d.b,e.d.b=e.d.a,e.d.a=i,i=e.b.a,e.b.a=e.b.b,e.b.b=i;vMt(t)}function t_t(t){var e,n,i;for(n=new Wf(t.a.b);n.a<n.c.c.length;)i=(e=jz(J1(n),81)).g.c,e.g.c=e.g.d,e.g.d=i,i=e.g.b,e.g.b=e.g.a,e.g.a=i,i=e.e.a,e.e.a=e.e.b,e.e.b=i;wMt(t)}function e_t(t){var e,n,i,a,r;for(r=gq(t.k),wWt(),i=0,a=(n=Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])).length;i<a;++i)if((e=n[i])!=CAe&&!r.Hc(e))return e;return null}function n_t(t,e){var n,i;return(i=jz(xM(Zct(AZ(new NU(null,new h1(e.j,16)),new fr))),11))&&(n=jz(OU(i.e,0),17))?jz(yEt(n,(lGt(),hhe)),19).a:gtt(t.b)}function i_t(t,e){var n,i,a;for(a=new Wf(e.a);a.a<a.c.c.length;)for(i=jz(J1(a),10),Jw(t.d),n=new oq(XO(dft(i).a.Kc(),new u));gIt(n);)WDt(t,i,jz(V6(n),17).d.i)}function a_t(t,e){var n,i;for(y9(t.b,e),i=new Wf(t.n);i.a<i.c.c.length;)if(-1!=x9((n=jz(J1(i),211)).c,e,0)){y9(n.c,e),JRt(n),0==n.c.c.length&&y9(t.n,n);break}uHt(t)}function r_t(t,e){var n,a,r,o,s;for(s=t.f,r=0,o=0,a=new Wf(t.a);a.a<a.c.c.length;)_yt(n=jz(J1(a),187),t.e,s),p8(n,e),o=i.Math.max(o,n.r),r=s+=n.d+t.c;t.d=o,t.b=r}function o_t(t){var e,n;return c4(n=fOt(t))?null:(yY(n),e=jz(evt(new oq(XO(n.a.Kc(),new u))),79),Ckt(jz(Yet((!e.b&&(e.b=new cF(NDe,e,4,7)),e.b),0),82)))}function s_t(t){return t.o||(t.Lj()?t.o=new aG(t,t,null):t.rk()?t.o=new nP(t,null):1==MG(j9((TSt(),KLe),t))?t.o=new g3(t):t.o=new iP(t,null)),t.o}function c_t(t,e,n,i){var a,r,o,s,c;n.mh(e)&&(a=(o=e)?jz(i,49).xh(o):null)&&(c=n.ah(e),(s=e.t)>1||-1==s?(r=jz(c,15),a.Wb(Wpt(t,r))):a.Wb(tjt(t,jz(c,56))))}function l_t(t,e,n,i){Z_();var a=CGt;function r(){for(var t=0;t<a.length;t++)a[t]()}if(t)try{jMe(r)()}catch(o){t(e,o)}else jMe(r)()}function u_t(t){var e,n,i,a,r;for(i=new olt(new Ef(t.b).a);i.b;)e=jz((n=tnt(i)).cd(),10),r=jz(jz(n.dd(),46).a,10),a=jz(jz(n.dd(),46).b,8),VP(vD(e.n),VP(jL(r.n),a))}function d_t(t){switch(jz(yEt(t.b,(zYt(),tbe)),375).g){case 1:Kk(DZ(htt(new NU(null,new h1(t.d,16)),new ja),new $a),new za);break;case 2:mPt(t);break;case 0:STt(t)}}function h_t(t,e,n){Akt(n,"Straight Line Edge Routing",1),n.n&&e&&y0(n,o2(e),($lt(),oDe)),yHt(t,jz(JIt(e,(hB(),Yxe)),33)),n.n&&e&&y0(n,o2(e),($lt(),oDe))}function f_t(){f_t=D,JEe=new NT("V_TOP",0),XEe=new NT("V_CENTER",1),KEe=new NT("V_BOTTOM",2),GEe=new NT("H_LEFT",3),YEe=new NT("H_CENTER",4),ZEe=new NT("H_RIGHT",5)}function g_t(t){var e;return 64&t.Db?Sgt(t):((e=new lM(Sgt(t))).a+=" (abstract: ",y_(e,0!=(256&t.Bb)),e.a+=", interface: ",y_(e,0!=(512&t.Bb)),e.a+=")",e.a)}function p_t(t,e,n,i){var a,r,o;return mI(t.e)&&(o=IX(t,1,a=e.ak(),e.dd(),r=n.dd(),a.$j()?bzt(t,a,r,iO(a,99)&&0!=(jz(a,18).Bb&$Kt)):-1,!0),i?i.Ei(o):i=o),i}function b_t(t){var e;null==t.c&&(e=HA(t.b)===HA(Kte)?null:t.b,t.d=null==e?VGt:tq(e)?wM(xK(e)):qA(e)?HZt:JR(tlt(e)),t.a=t.a+": "+(tq(e)?CP(xK(e)):e+""),t.c="("+t.d+") "+t.a)}function m_t(t,e){this.e=t,GA(t0(e,-4294967296),0)?(this.d=1,this.a=Cst(Hx(TMe,1),lKt,25,15,[fV(e)])):(this.d=2,this.a=Cst(Hx(TMe,1),lKt,25,15,[fV(e),fV(vq(e,32))]))}function y_t(){function t(){try{return(new Map).entries().next().done}catch{return!1}}return typeof Map===MGt&&Map.prototype.entries&&t()?Map:hWt()}function v_t(t,e){var n,i,a;for(a=new _2(t.e,0),n=0;a.b<a.d.gc();){if((i=Hw((EN(a.b<a.d.gc()),_B(a.d.Xb(a.c=a.b++))))-e)>N4t)return n;i>-1e-6&&++n}return n}function w_t(t,e){var n;e!=t.b?(n=null,t.b&&(n=oJ(t.b,t,-4,n)),e&&(n=Omt(e,t,-4,n)),(n=Jut(t,e,n))&&n.Fi()):4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,3,e,e))}function x_t(t,e){var n;e!=t.f?(n=null,t.f&&(n=oJ(t.f,t,-1,n)),e&&(n=Omt(e,t,-1,n)),(n=Qut(t,e,n))&&n.Fi()):4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,0,e,e))}function R_t(t){var e,n,i;if(null==t)return null;if((n=jz(t,15)).dc())return"";for(i=new kx,e=n.Kc();e.Ob();)iD(i,(qUt(),kB(e.Pb()))),i.a+=" ";return BD(i,i.a.length-1)}function __t(t){var e,n,i;if(null==t)return null;if((n=jz(t,15)).dc())return"";for(i=new kx,e=n.Kc();e.Ob();)iD(i,(qUt(),kB(e.Pb()))),i.a+=" ";return BD(i,i.a.length-1)}function k_t(t,e,n){var i,a;return i=t.c[e.c.p][e.p],a=t.c[n.c.p][n.p],null!=i.a&&null!=a.a?Rq(i.a,a.a):null!=i.a?-1:null!=a.a?1:0}function E_t(t,e){var n,i,a;if(e)for(a=((n=new cq(e.a.length)).b-n.a)*n.c<0?(tC(),RMe):new qO(n);a.Ob();)i=O2(e,jz(a.Pb(),19).a),TZ(new jb(t).a,i)}function C_t(t,e){var n,i,a;if(e)for(a=((n=new cq(e.a.length)).b-n.a)*n.c<0?(tC(),RMe):new qO(n);a.Ob();)i=O2(e,jz(a.Pb(),19).a),SZ(new Db(t).a,i)}function S_t(t){if(null!=t&&t.length>0&&33==lZ(t,t.length-1))try{return null==KSt(lN(t,0,t.length-1)).e}catch(e){if(!iO(e=dst(e),32))throw $m(e)}return!1}function T_t(t,e,n){var i,a,r;return i=e.ak(),r=e.dd(),a=i.$j()?IX(t,3,i,null,r,bzt(t,i,r,iO(i,99)&&0!=(jz(i,18).Bb&$Kt)),!0):IX(t,1,i,i.zj(),r,-1,!0),n?n.Ei(a):n=a,n}function A_t(){var t,e,n;for(e=0,t=0;t<1;t++){if(0==(n=ZDt((d1(t,1),"X".charCodeAt(t)))))throw $m(new ax("Unknown Option: "+"X".substr(t)));e|=n}return e}function D_t(t,e,n){var i,a;switch(i=Yht(bG(e)),CQ(a=new SCt,e),n.g){case 1:HTt(a,_ht(lgt(i)));break;case 2:HTt(a,lgt(i))}return lct(a,(zYt(),Qbe),_B(yEt(t,Qbe))),a}function I_t(t){var e,n;return e=jz(V6(new oq(XO(uft(t.a).a.Kc(),new u))),17),n=jz(V6(new oq(XO(dft(t.a).a.Kc(),new u))),17),zw(RB(yEt(e,(lGt(),Che))))||zw(RB(yEt(n,Che)))}function L_t(){L_t=D,kle=new yS("ONE_SIDE",0),Cle=new yS("TWO_SIDES_CORNER",1),Sle=new yS("TWO_SIDES_OPPOSING",2),Ele=new yS("THREE_SIDES",3),_le=new yS("FOUR_SIDES",4)}function O_t(t,e,n,i,a){var r,o;r=jz(E3(AZ(e.Oc(),new Qa),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15),o=jz(pot(t.b,n,i),15),0==a?o.Wc(0,r):o.Gc(r)}function M_t(t,e){var n,i,a;for(i=new Wf(e.a);i.a<i.c.c.length;)for(n=new oq(XO(uft(jz(J1(i),10)).a.Kc(),new u));gIt(n);)a=jz(V6(n),17).c.i.p,t.n[a]=t.n[a]-1}function N_t(t,e){var n,i,a,r;for(a=new Wf(e.d);a.a<a.c.c.length;)for(i=jz(J1(a),101),r=jz(NY(t.c,i),112).o,n=new Gk(i.b);n.a<n.c.a.length;)g8(i,jz(r3(n),61),r)}function B_t(t){var e;for(e=new Wf(t.e.b);e.a<e.c.c.length;)lqt(t,jz(J1(e),29));Kk(AZ(htt(htt(new NU(null,new h1(t.e.b,16)),new Yr),new Qr),new to),new cb(t))}function P_t(t,e){return!!e&&!t.Di(e)&&(t.i?t.i.Ei(e):iO(e,143)?(t.i=jz(e,143),!0):(t.i=new mc,t.i.Ei(e)))}function F_t(t){if(t=jzt(t,!0),mF(r6t,t)||mF("1",t))return cM(),yee;if(mF(o6t,t)||mF("0",t))return cM(),mee;throw $m(new ex("Invalid boolean value: '"+t+"'"))}function j_t(t,e,n){var i,a,r;for(a=t.vc().Kc();a.Ob();)if(r=(i=jz(a.Pb(),42)).cd(),HA(e)===HA(r)||null!=e&&Odt(e,r))return n&&(i=new EC(i.cd(),i.dd()),a.Qb()),i;return null}function $_t(t){var e,n,i;zB(),t.B.Hc((QFt(),HAe))&&(i=t.f.i,e=new gX(t.a.c),(n=new dv).b=e.c-i.c,n.d=e.d-i.d,n.c=i.c+i.b-(e.c+e.b),n.a=i.d+i.a-(e.d+e.a),t.e.Ff(n))}function z_t(t,e,n,a){var r,o,s;for(s=i.Math.min(n,Y$t(jz(t.b,65),e,n,a)),o=new Wf(t.a);o.a<o.c.c.length;)(r=jz(J1(o),221))!=e&&(s=i.Math.min(s,z_t(r,e,s,a)));return s}function H_t(t){var e,n,i;for(i=O5(Rse,cZt,193,t.b.c.length,0,2),n=new _2(t.b,0);n.b<n.d.gc();)EN(n.b<n.d.gc()),e=jz(n.d.Xb(n.c=n.b++),29),i[n.b-1]=J0(e.a);return i}function U_t(t,e,n,i,a){var r,o,s,c;for(o=Jx(Xx($j(tyt(n)),i),rxt(t,n,a)),c=NCt(t,n).Kc();c.Ob();)e[(s=jz(c.Pb(),11)).p]&&(r=e[s.p].i,Wz(o.d,new OV(r,wht(o,r))));Cgt(o)}function V_t(t,e){this.f=new Om,this.b=new Om,this.j=new Om,this.a=t,this.c=e,this.c>0&&Fwt(this,this.c-1,(wWt(),sAe)),this.c<this.a.length-1&&Fwt(this,this.c+1,(wWt(),SAe))}function q_t(t){t.length>0&&t[0].length>0&&(this.c=zw(RB(yEt(bG(t[0][0]),(lGt(),ahe))))),this.a=O5(Eve,cZt,2018,t.length,0,2),this.b=O5(Tve,cZt,2019,t.length,0,2),this.d=new _ut}function W_t(t){return 0!=t.c.length&&((u1(0,t.c.length),jz(t.c[0],17)).c.i.k==(oCt(),Cse)||o6(DZ(new NU(null,new h1(t,16)),new Fr),new jr))}function Y_t(t,e,n){return Akt(n,"Tree layout",1),c2(t.b),CW(t.b,(Vwt(),Bwe),Bwe),CW(t.b,Pwe,Pwe),CW(t.b,Fwe,Fwe),CW(t.b,jwe,jwe),t.a=IUt(t.b,e),dNt(t,e,yrt(n,1)),zCt(n),e}function G_t(t,e){var n,a,r,o,s,c;for(s=fBt(e),r=e.f,c=e.g,o=i.Math.sqrt(r*r+c*c),a=0,n=new Wf(s);n.a<n.c.c.length;)a+=G_t(t,jz(J1(n),33));return i.Math.max(a,o)}function Z_t(){Z_t=D,KTe=new VT(lJt,0),ZTe=new VT("FREE",1),GTe=new VT("FIXED_SIDE",2),qTe=new VT("FIXED_ORDER",3),YTe=new VT("FIXED_RATIO",4),WTe=new VT("FIXED_POS",5)}function K_t(t,e){var n,i,a;if(n=e.Hh(t.a))for(a=kB(apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),_9t)),i=1;i<(TSt(),XLe).length;++i)if(mF(XLe[i],a))return i;return 0}function X_t(t){var e,n,i,a;if(null==t)return VGt;for(a=new Iot(jGt,"[","]"),n=0,i=(e=t).length;n<i;++n)d7(a,""+e[n]);return a.a?0==a.e.length?a.a.a:a.a.a+""+a.e:a.c}function J_t(t){var e,n,i,a;if(null==t)return VGt;for(a=new Iot(jGt,"[","]"),n=0,i=(e=t).length;n<i;++n)d7(a,""+e[n]);return a.a?0==a.e.length?a.a.a:a.a.a+""+a.e:a.c}function Q_t(t){var e,n,i;for(i=new Iot(jGt,"{","}"),n=t.vc().Kc();n.Ob();)d7(i,W4(t,(e=jz(n.Pb(),42)).cd())+"="+W4(t,e.dd()));return i.a?0==i.e.length?i.a.a:i.a.a+""+i.e:i.c}function tkt(t){for(var e,n,i,a;!Ww(t.o);)n=jz(fW(t.o),46),i=jz(n.a,121),a=Oft(e=jz(n.b,213),i),e.e==i?(NM(a.g,e),i.e=a.e+e.a):(NM(a.b,e),i.e=a.e-e.a),Wz(t.e.a,i)}function ekt(t,e){var n,i,a;for(n=null,a=jz(e.Kb(t),20).Kc();a.Ob();)if(i=jz(a.Pb(),17),n){if((i.c.i==t?i.d.i:i.c.i)!=n)return!1}else n=i.c.i==t?i.d.i:i.c.i;return!0}function nkt(t,e){var n,i,a;for(i=new Wf(ZOt(t,!1,e));i.a<i.c.c.length;)0==(n=jz(J1(i),129)).d?(WQ(n,null),YQ(n,null)):(a=n.a,WQ(n,n.b),YQ(n,a))}function ikt(t){var e,n;return Xrt(e=new j2,Cwe),(n=jz(yEt(t,(lGt(),Xde)),21)).Hc((hBt(),mde))&&Xrt(e,Dwe),n.Hc(cde)&&Xrt(e,Swe),n.Hc(pde)&&Xrt(e,Awe),n.Hc(ude)&&Xrt(e,Twe),e}function akt(t){var e,n,i,a;for(EUt(t),n=new oq(XO(lft(t).a.Kc(),new u));gIt(n);)a=(i=(e=jz(V6(n),17)).c.i==t)?e.d:e.c,i?_Q(e,null):kQ(e,null),lct(e,(lGt(),mhe),a),oIt(t,a.i)}function rkt(t,e,n,i){var a,r;switch(a=n[(r=e.i).g][t.d[r.g]],r.g){case 1:a-=i+e.j.b,e.g.b=a;break;case 3:a+=i,e.g.b=a;break;case 4:a-=i+e.j.a,e.g.a=a;break;case 2:a+=i,e.g.a=a}}function okt(t){var e,n;for(n=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));n.e!=n.i.gc();)if(!gIt(new oq(XO(fOt(e=jz(wmt(n),33)).a.Kc(),new u))))return e;return null}function skt(){var t;return qDe?jz(ILt((WE(),HIe),v7t),2016):(t=jz(iO(kJ((WE(),HIe),v7t),555)?kJ(HIe,v7t):new cIt,555),qDe=!0,FVt(t),xGt(t),_wt(t),mQ(HIe,v7t,t),t)}function ckt(t,e,n){var i,a;if(0==t.j)return n;if(a=jz(Fnt(t,e,n),72),!(i=n.ak()).Ij()||!t.a.rl(i))throw $m(new fw("Invalid entry feature '"+i.Hj().zb+"."+i.ne()+"'"));return a}function lkt(t,e){var n,i,a,r,o,s,c;for(s=0,c=(o=t.a).length;s<c;++s)for(a=0,r=(i=o[s]).length;a<r;++a)if(n=i[a],HA(e)===HA(n)||null!=e&&Odt(e,n))return!0;return!1}function ukt(t){var e,n,i;return Gut(t,0)>=0?(n=ARt(t,DKt),i=dpt(t,DKt)):(n=ARt(e=wq(t,1),5e8),i=ift(yq(i=dpt(e,5e8),1),t0(t,1))),e0(yq(i,32),t0(n,qKt))}function dkt(t,e,n){var i;switch(EN(0!=e.b),i=jz(Det(e,e.a.a),8),n.g){case 0:i.b=0;break;case 2:i.b=t.f;break;case 3:i.a=0;break;default:i.a=t.g}return JW(cmt(e,0),i),e}function hkt(t,e,n,i){var a,r,o,s,c;switch(c=t.b,s=Vbt(o=(r=e.d).j,c.d[o.g],n),a=VP(jL(r.n),r.a),r.j.g){case 1:case 3:s.a+=a.a;break;case 2:case 4:s.b+=a.b}n6(i,s,i.c.b,i.c)}function fkt(t,e,n){var i,a,r,o;for(o=x9(t.e,e,0),(r=new nv).b=n,i=new _2(t.e,o);i.b<i.d.gc();)EN(i.b<i.d.gc()),(a=jz(i.d.Xb(i.c=i.b++),10)).p=n,Wz(r.e,a),lG(i);return r}function gkt(t,e,n,i){var a,r,o,s,c;for(a=null,r=0,s=new Wf(e);s.a<s.c.c.length;)c=(o=jz(J1(s),33)).i+o.g,t<o.j+o.f+i&&(a?n.i-c<n.i-r&&(a=o):a=o,r=a.i+a.g);return a?r+i:0}function pkt(t,e,n,i){var a,r,o,s,c;for(r=null,a=0,s=new Wf(e);s.a<s.c.c.length;)c=(o=jz(J1(s),33)).j+o.f,t<o.i+o.g+i&&(r?n.j-c<n.j-a&&(r=o):r=o,a=r.j+r.f);return r?a+i:0}function bkt(t){var e,n,i;for(e=!1,i=t.b.c.length,n=0;n<i;n++)Kct(jz(OU(t.b,n),434))?!e&&n+1<i&&Kct(jz(OU(t.b,n+1),434))&&(e=!0,jz(OU(t.b,n),434).a=!0):e=!1}function mkt(t,e,n,i,a){var r,o;for(r=0,o=0;o<a;o++)r=ift(r,nft(t0(e[o],qKt),t0(i[o],qKt))),t[o]=fV(r),r=vq(r,32);for(;o<n;o++)r=ift(r,t0(e[o],qKt)),t[o]=fV(r),r=vq(r,32)}function ykt(t,e){var n,i;for(IDt(),ABt(),i=Jee,n=t;e>1;e>>=1)1&e&&(i=Ltt(i,n)),n=1==n.d?Ltt(n,n):new Sbt(Tjt(n.a,n.d,O5(TMe,lKt,25,n.d<<1,15,1)));return i=Ltt(i,n)}function vkt(){var t,e,n,i;for(vkt=D,Tne=O5(LMe,HKt,25,25,15,1),Ane=O5(LMe,HKt,25,33,15,1),i=152587890625e-16,e=32;e>=0;e--)Ane[e]=i,i*=.5;for(n=1,t=24;t>=0;t--)Tne[t]=n,n*=.5}function wkt(t){var e,n;if(zw(RB(JIt(t,(zYt(),hbe)))))for(n=new oq(XO(gOt(t).a.Kc(),new u));gIt(n);)if(ZAt(e=jz(V6(n),79))&&zw(RB(JIt(e,fbe))))return!0;return!1}function xkt(t,e){var n,i,a;RW(t.f,e)&&(e.b=t,i=e.c,-1!=x9(t.j,i,0)||Wz(t.j,i),a=e.d,-1!=x9(t.j,a,0)||Wz(t.j,a),0!=(n=e.a.b).c.length&&(!t.i&&(t.i=new emt(t)),mot(t.i,n)))}function Rkt(t){var e,n,i,a;return(n=(e=t.c.d).j)==(a=(i=t.d.d).j)?e.p<i.p?0:1:kht(n)==a?0:Rht(n)==a?1:kM(t.b.b,kht(n))?0:1}function _kt(){_kt=D,tye=new NS(x4t,0),Jme=new NS("LONGEST_PATH",1),Kme=new NS("COFFMAN_GRAHAM",2),Xme=new NS($1t,3),eye=new NS("STRETCH_WIDTH",4),Qme=new NS("MIN_WIDTH",5)}function kkt(t){var e;this.d=new Om,this.c=t.c,this.e=t.d,this.b=t.b,this.f=new sV(t.e),this.a=t.a,t.f?this.g=t.f:this.g=new ZF(e=jz(YR(iIe),9),jz(kP(e,e.length),9),0)}function Ekt(t,e){var n,i,a,r;!(a=M2(i=t,"layoutOptions"))&&(a=M2(i,k7t)),a&&(n=null,(r=a)&&(n=new Rk(r,xat(r,O5(zee,cZt,2,0,6,1)))),n&&t6(n,new hA(r,e)))}function Ckt(t){if(iO(t,239))return jz(t,33);if(iO(t,186))return WJ(jz(t,118));throw $m(t?new Qw("Only support nodes and ports."):new $w(e5t))}function Skt(t,e,n,i){return(e>=0&&mF(t.substr(e,3),"GMT")||e>=0&&mF(t.substr(e,3),"UTC"))&&(n[0]=e+3),vjt(t,n,i)}function Tkt(t,e){var n,i,a,r,o;for(r=t.g.a,o=t.g.b,i=new Wf(t.d);i.a<i.c.c.length;)(a=(n=jz(J1(i),70)).n).a=r,t.i==(wWt(),cAe)?a.b=o+t.j.b-n.o.b:a.b=o,VP(a,e),r+=n.o.a+t.e}function Akt(t,e,n){if(t.b)throw $m(new Fw("The task is already done."));return null==t.p&&(t.p=e,t.r=n,t.k&&(t.o=(Dk(),aft(uot(Date.now()),GZt))),!0)}function Dkt(t){var e;return e=new pw,null!=t.tg()&&AH(e,H7t,t.tg()),null!=t.ne()&&AH(e,t5t,t.ne()),null!=t.sg()&&AH(e,"description",t.sg()),e}function Ikt(t,e,n){var i,a,r;return r=t.q,t.q=e,4&t.Db&&!(1&t.Db)&&(a=new Jq(t,1,9,r,e),n?n.Ei(a):n=a),e?(i=e.c)!=t.r&&(n=t.nk(i,n)):t.r&&(n=t.nk(null,n)),n}function Lkt(t,e,n){var i,a;for(n=Omt(e,t.e,-1-t.c,n),a=new _m(new olt(new Ef(OG(t.a).a).a));a.a.b;)n=rqt(i=jz(tnt(a.a).cd(),87),wOt(i,t.a),n);return n}function Okt(t,e,n){var i,a;for(n=oJ(e,t.e,-1-t.c,n),a=new _m(new olt(new Ef(OG(t.a).a).a));a.a.b;)n=rqt(i=jz(tnt(a.a).cd(),87),wOt(i,t.a),n);return n}function Mkt(t,e,n,i){var a,r,o;if(0==i)rHt(e,0,t,n,t.length-n);else for(o=32-i,t[t.length-1]=0,r=t.length-1;r>n;r--)t[r]|=e[r-n-1]>>>o,t[r-1]=e[r-n-1]<<i;for(a=0;a<n;a++)t[a]=0}function Nkt(t){var e,n,a,r,o;for(e=0,n=0,o=t.Kc();o.Ob();)a=jz(o.Pb(),111),e=i.Math.max(e,a.d.b),n=i.Math.max(n,a.d.c);for(r=t.Kc();r.Ob();)(a=jz(r.Pb(),111)).d.b=e,a.d.c=n}function Bkt(t){var e,n,a,r,o;for(n=0,e=0,o=t.Kc();o.Ob();)a=jz(o.Pb(),111),n=i.Math.max(n,a.d.d),e=i.Math.max(e,a.d.a);for(r=t.Kc();r.Ob();)(a=jz(r.Pb(),111)).d.d=n,a.d.a=e}function Pkt(t,e){var n,i,a,r;for(r=new Lm,a=0,i=e.Kc();i.Ob();){for(n=nht(jz(i.Pb(),19).a+a);n.a<t.f&&!QU(t,n.a);)n=nht(n.a+1),++a;if(n.a>=t.f)break;r.c[r.c.length]=n}return r}function Fkt(t){var e,n,i,a;for(e=null,a=new Wf(t.wf());a.a<a.c.c.length;)n=new VZ((i=jz(J1(a),181)).qf().a,i.qf().b,i.rf().a,i.rf().b),e?SSt(e,n):e=n;return!e&&(e=new dI),e}function jkt(t,e,n,i){return 1==n?(!t.n&&(t.n=new tW(HDe,t,1,7)),Kgt(t.n,e,i)):jz(eet(jz(vot(t,16),26)||t.zh(),n),66).Nj().Qj(t,ubt(t),n-dY(t.zh()),e,i)}function $kt(t,e,n){var i,a,r,o,s;for(i=n.gc(),t.qi(t.i+i),(s=t.i-e)>0&&rHt(t.g,e,t.g,e+i,s),o=n.Kc(),t.i+=i,a=0;a<i;++a)r=o.Pb(),wO(t,e,t.oi(e,r)),t.bi(e,r),t.ci(),++e;return 0!=i}function zkt(t,e,n){var i;return e!=t.q?(t.q&&(n=oJ(t.q,t,-10,n)),e&&(n=Omt(e,t,-10,n)),n=Ikt(t,e,n)):4&t.Db&&!(1&t.Db)&&(i=new Jq(t,1,9,e,e),n?n.Ei(i):n=i),n}function Hkt(t,e,n,i){return Cj(0==(n&lZt),"flatMap does not support SUBSIZED characteristic"),Cj(0==(4&n),"flatMap does not support SORTED characteristic"),yY(t),yY(e),new z2(t,n,i,e)}function Ukt(t,e){kW(e,"Cannot suppress a null exception."),bH(e!=t,"Exception can not suppress itself."),!t.i&&(null==t.k?t.k=Cst(Hx(Xte,1),cZt,78,0,[e]):t.k[t.k.length]=e)}function Vkt(t,e,n,i){var a,r,o,s,c,l;for(o=n.length,r=0,a=-1,l=aet(t.substr(e),(ij(),Rne)),s=0;s<o;++s)(c=n[s].length)>r&&sW(l,aet(n[s],Rne))&&(a=s,r=c);return a>=0&&(i[0]=e+r),a}function qkt(t,e){var n;if(0!=(n=ZD(t.b.Hf(),e.b.Hf())))return n;switch(t.b.Hf().g){case 1:case 2:return xL(t.b.sf(),e.b.sf());case 3:case 4:return xL(e.b.sf(),t.b.sf())}return 0}function Wkt(t){var e,n,i;for(i=t.e.c.length,t.a=vU(TMe,[cZt,lKt],[48,25],15,[i,i],2),n=new Wf(t.c);n.a<n.c.c.length;)e=jz(J1(n),282),t.a[e.c.b][e.d.b]+=jz(yEt(e,(uPt(),Xre)),19).a}function Ykt(t,e,n){Akt(n,"Grow Tree",1),t.b=e.f,zw(RB(yEt(e,(Wrt(),Gae))))?(t.c=new ne,GQ(t,null)):t.c=new ne,t.a=!1,jMt(t,e.f),lct(e,Zae,(cM(),!!t.a)),zCt(n)}function Gkt(t,e){var n,i,a,r,o;if(null==t)return null;for(o=O5(SMe,YZt,25,2*e,15,1),i=0,a=0;i<e;++i)n=t[i]>>4&15,r=15&t[i],o[a++]=TDe[n],o[a++]=TDe[r];return $pt(o,0,o.length)}function Zkt(t,e,n){var i,a,r;return i=e.ak(),r=e.dd(),a=i.$j()?IX(t,4,i,r,null,bzt(t,i,r,iO(i,99)&&0!=(jz(i,18).Bb&$Kt)),!0):IX(t,i.Kj()?2:1,i,r,i.zj(),-1,!0),n?n.Ei(a):n=a,n}function Kkt(t){var e,n;return t>=$Kt?(e=zKt+(t-$Kt>>10&1023)&ZZt,n=56320+(t-$Kt&1023)&ZZt,String.fromCharCode(e)+""+String.fromCharCode(n)):String.fromCharCode(t&ZZt)}function Xkt(t,e){var n,i,a,r;return zB(),(a=jz(jz(c7(t.r,e),21),84)).gc()>=2&&(i=jz(a.Kc().Pb(),111),n=t.u.Hc((dAt(),tAe)),r=t.u.Hc(aAe),!i.a&&!n&&(2==a.gc()||r))}function Jkt(t,e,n,i,a){var r,o,s;for(r=eBt(t,e,n,i,a),s=!1;!r;)RLt(t,a,!0),s=!0,r=eBt(t,e,n,i,a);s&&RLt(t,a,!1),0!=(o=Nst(a)).c.length&&(t.d&&t.d.lg(o),Jkt(t,a,n,i,o))}function Qkt(){Qkt=D,rTe=new jT(ZQt,0),iTe=new jT("DIRECTED",1),oTe=new jT("UNDIRECTED",2),eTe=new jT("ASSOCIATION",3),aTe=new jT("GENERALIZATION",4),nTe=new jT("DEPENDENCY",5)}function tEt(t,e){var n;if(!WJ(t))throw $m(new Fw(j6t));switch(n=WJ(t),e.g){case 1:return-(t.j+t.f);case 2:return t.i-n.g;case 3:return t.j-n.f;case 4:return-(t.i+t.g)}return 0}function eEt(t,e){var n,i;for(vG(e),i=t.b.c.length,Wz(t.b,e);i>0;){if(n=i,i=(i-1)/2|0,t.a.ue(OU(t.b,i),e)<=0)return i6(t.b,n,e),!0;i6(t.b,n,OU(t.b,i))}return i6(t.b,i,e),!0}function nEt(t,e,n,a){var r,o;if(r=0,n)r=yut(t.a[n.g][e.g],a);else for(o=0;o<Zie;o++)r=i.Math.max(r,yut(t.a[o][e.g],a));return e==(Net(),Vie)&&t.b&&(r=i.Math.max(r,t.b.a)),r}function iEt(t,e){var n,i,a,r,o;return i=t.i,a=e.i,!(!i||!a||i.i!=a.i||i.i==(wWt(),sAe)||i.i==(wWt(),SAe))&&(n=(r=i.g.a)+i.j.a,r<=(o=a.g.a)+a.j.a&&n>=o)}function aEt(t,e,n,i){var a;if(a=!1,qA(i)&&(a=!0,AH(e,n,kB(i))),a||UA(i)&&(a=!0,aEt(t,e,n,i)),a||iO(i,236)&&(a=!0,zK(e,n,jz(i,236))),!a)throw $m(new Iw(z7t))}function rEt(t,e){var n,i,a;if((n=e.Hh(t.a))&&null!=(a=apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),j8t)))for(i=1;i<(TSt(),GLe).length;++i)if(mF(GLe[i],a))return i;return 0}function oEt(t,e){var n,i,a;if((n=e.Hh(t.a))&&null!=(a=apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),j8t)))for(i=1;i<(TSt(),ZLe).length;++i)if(mF(ZLe[i],a))return i;return 0}function sEt(t,e){var n,i,a,r;if(vG(e),(r=t.a.gc())<e.gc())for(n=t.a.ec().Kc();n.Ob();)i=n.Pb(),e.Hc(i)&&n.Qb();else for(a=e.Kc();a.Ob();)i=a.Pb(),t.a.Bc(i);return r!=t.a.gc()}function cEt(t){var e,n;switch(n=jL(Dct(Cst(Hx(EEe,1),cZt,8,0,[t.i.n,t.n,t.a]))),e=t.i.d,t.j.g){case 1:n.b-=e.d;break;case 2:n.a+=e.c;break;case 3:n.b+=e.a;break;case 4:n.a-=e.b}return n}function lEt(t){var e;for(Tat(),e=jz(V6(new oq(XO(uft(t).a.Kc(),new u))),17).c.i;e.k==(oCt(),Cse);)lct(e,(lGt(),ohe),(cM(),!0)),e=jz(V6(new oq(XO(uft(e).a.Kc(),new u))),17).c.i}function uEt(t,e,n,i){var a,r,o;for(o=Ldt(e,i).Kc();o.Ob();)a=jz(o.Pb(),11),t.d[a.p]=t.d[a.p]+t.c[n.p];for(r=Ldt(n,i).Kc();r.Ob();)a=jz(r.Pb(),11),t.d[a.p]=t.d[a.p]-t.c[e.p]}function dEt(t,e,n){var i,a;for(a=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));a.e!=a.i.gc();)kI(i=jz(wmt(a),33),i.i+e,i.j+n);t6((!t.b&&(t.b=new tW(BDe,t,12,3)),t.b),new QT(e,n))}function hEt(t,e,n,i){var a,r;for(a=null==(r=e).d||t.a.ue(n.d,r.d)>0?1:0;r.a[a]!=n;)r=r.a[a],a=t.a.ue(n.d,r.d)>0?1:0;r.a[a]=i,i.b=n.b,i.a[0]=n.a[0],i.a[1]=n.a[1],n.a[0]=null,n.a[1]=null}function fEt(t){var e;return dAt(),!(Sot(TJ(xV(eAe,Cst(Hx(oAe,1),IZt,273,0,[iAe])),t))>1||(e=xV(tAe,Cst(Hx(oAe,1),IZt,273,0,[QTe,aAe])),Sot(TJ(e,t))>1))}function gEt(t,e){iO(kJ((WE(),HIe),t),498)?mQ(HIe,t,new TA(this,e)):mQ(HIe,t,this),nCt(this,e),e==(e_(),XIe)?(this.wb=jz(this,1939),jz(e,1941)):this.wb=(GY(),JIe)}function pEt(t){var e,n;if(null==t)return null;for(e=null,n=0;n<SDe.length;++n)try{return jE(SDe[n],t)}catch(i){if(!iO(i=dst(i),32))throw $m(i);e=i}throw $m(new I9(e))}function bEt(){bEt=D,pne=Cst(Hx(zee,1),cZt,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),bne=Cst(Hx(zee,1),cZt,2,6,["Jan","Feb","Mar","Apr",tKt,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])}function mEt(t){var e,n,i;(e=mF(typeof e,pXt)?null:new dt)&&(uE(),QY(n=(i=900)>=GZt?"error":i>=900?"warn":i>=800?"info":"log",t.a),t.b&&MMt(e,n,t.b,"Exception: ",!0))}function yEt(t,e){var n;return!t.q&&(t.q=new Om),NY(t.q,e)??(iO(n=e.wg(),4)&&(null==n?(!t.q&&(t.q=new Om),b7(t.q,e)):(!t.q&&(t.q=new Om),YG(t.q,e,n))),n)}function vEt(){vEt=D,Boe=new YC("P1_CYCLE_BREAKING",0),Poe=new YC("P2_LAYERING",1),Foe=new YC("P3_NODE_ORDERING",2),joe=new YC("P4_NODE_PLACEMENT",3),$oe=new YC("P5_EDGE_ROUTING",4)}function wEt(t,e){var n,i,a,r;for(i=(1==e?Woe:qoe).a.ec().Kc();i.Ob();)for(n=jz(i.Pb(),103),r=jz(c7(t.f.c,n),21).Kc();r.Ob();)a=jz(r.Pb(),46),y9(t.b.b,a.b),y9(t.b.a,jz(a.b,81).d)}function xEt(t,e){var n;if(Mtt(),t.c==e.c){if(t.b==e.b||lrt(t.b,e.b)){if(n=XD(t.b)?1:-1,t.a&&!e.a)return n;if(!t.a&&e.a)return-n}return xL(t.b.g,e.b.g)}return Cht(t.c,e.c)}function REt(t,e){var n;Akt(e,"Hierarchical port position processing",1),(n=t.b).c.length>0&&njt((u1(0,n.c.length),jz(n.c[0],29)),t),n.c.length>1&&njt(jz(OU(n,n.c.length-1),29),t),zCt(e)}function _Et(t,e){var n,i;if(OEt(t,e))return!0;for(i=new Wf(e);i.a<i.c.c.length;)if(FBt(t,n=jz(J1(i),33),o_t(n))||Iut(t,n)-t.g<=t.a)return!0;return!1}function kEt(){kEt=D,hPt(),vke=Nke,bke=Ike,pke=Ake,fke=Eke,gke=Ske,hke=new WI(8),dke=new qI((cGt(),qCe),hke),mke=new qI(ISe,8),yke=Oke,cke=wke,lke=Rke,uke=new qI(uCe,(cM(),!1))}function EEt(){EEt=D,UEe=new WI(15),HEe=new qI((cGt(),qCe),UEe),qEe=new qI(ISe,15),VEe=new qI(pSe,nht(0)),PEe=wCe,jEe=BCe,zEe=zCe,MEe=new qI(iCe,u6t),FEe=CCe,$Ee=jCe,NEe=rCe,BEe=cCe}function CEt(t){if(1!=(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b).i||1!=(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c).i)throw $m(new Pw(i5t));return Ckt(jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82))}function SEt(t){if(1!=(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b).i||1!=(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c).i)throw $m(new Pw(i5t));return hst(jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82))}function TEt(t){if(1!=(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b).i||1!=(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c).i)throw $m(new Pw(i5t));return hst(jz(Yet((!t.c&&(t.c=new cF(NDe,t,5,8)),t.c),0),82))}function AEt(t){if(1!=(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b).i||1!=(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c).i)throw $m(new Pw(i5t));return Ckt(jz(Yet((!t.c&&(t.c=new cF(NDe,t,5,8)),t.c),0),82))}function DEt(t,e,n){var i,a,r;if(++t.j,e>=(a=t.Vi())||e<0)throw $m(new Aw(o5t+e+s5t+a));if(n>=a||n<0)throw $m(new Aw(c5t+n+s5t+a));return e!=n?(r=t.Ti(n),t.Hi(e,r),i=r):i=t.Oi(n),i}function IEt(t){var e,n,i;if(i=t,t)for(e=0,n=t.Ug();n;n=n.Ug()){if(++e>UKt)return IEt(n);if(i=n,n==t)throw $m(new Fw("There is a cycle in the containment hierarchy of "+t))}return i}function LEt(t){var e,n,i;for(i=new Iot(jGt,"[","]"),n=t.Kc();n.Ob();)d7(i,HA(e=n.Pb())===HA(t)?"(this Collection)":null==e?VGt:$ft(e));return i.a?0==i.e.length?i.a.a:i.a.a+""+i.e:i.c}function OEt(t,e){var n,i;if(i=!1,e.gc()<2)return!1;for(n=0;n<e.gc();n++)n<e.gc()-1?i|=FBt(t,jz(e.Xb(n),33),jz(e.Xb(n+1),33)):i|=FBt(t,jz(e.Xb(n),33),jz(e.Xb(0),33));return i}function MEt(t,e){var n;e!=t.a?(n=null,t.a&&(n=jz(t.a,49).ih(t,4,zDe,n)),e&&(n=jz(e,49).gh(t,4,zDe,n)),(n=Xut(t,e,n))&&n.Fi()):4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,1,e,e))}function NEt(t,e){var n;e!=t.e?(t.e&&P7(OG(t.e),t),e&&(!e.b&&(e.b=new Rm(new Ov)),ZP(e.b,t)),(n=Zxt(t,e,null))&&n.Fi()):4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,4,e,e))}function BEt(t){var e,n,i;for(n=t.length,i=0;i<n&&(d1(i,t.length),t.charCodeAt(i)<=32);)++i;for(e=n;e>i&&(d1(e-1,t.length),t.charCodeAt(e-1)<=32);)--e;return i>0||e<n?t.substr(i,e-i):t}function PEt(t,e){var n;n=e.o,fI(t.f)?(t.j.a=i.Math.max(t.j.a,n.a),t.j.b+=n.b,t.d.c.length>1&&(t.j.b+=t.e)):(t.j.a+=n.a,t.j.b=i.Math.max(t.j.b,n.b),t.d.c.length>1&&(t.j.a+=t.e))}function FEt(){FEt=D,Dle=Cst(Hx(MAe,1),KQt,61,0,[(wWt(),cAe),sAe,EAe]),Ale=Cst(Hx(MAe,1),KQt,61,0,[sAe,EAe,SAe]),Ile=Cst(Hx(MAe,1),KQt,61,0,[EAe,SAe,cAe]),Lle=Cst(Hx(MAe,1),KQt,61,0,[SAe,cAe,sAe])}function jEt(t,e,n,i){var a,r,o,s,c;if(r=t.c.d,o=t.d.d,r.j!=o.j)for(c=t.b,a=r.j,s=null;a!=o.j;)s=0==e?kht(a):Rht(a),MH(i,VP(Vbt(a,c.d[a.g],n),Vbt(s,c.d[s.g],n))),a=s}function $Et(t,e,n,i){var a,r,o,s,c;return s=jz((o=Hwt(t.a,e,n)).a,19).a,r=jz(o.b,19).a,i&&(c=jz(yEt(e,(lGt(),xhe)),10),a=jz(yEt(n,xhe),10),c&&a&&(Q4(t.b,c,a),s+=t.b.i,r+=t.b.e)),s>r}function zEt(t){var e,n,i,a,r,o,s,c;for(this.a=iyt(t),this.b=new Lm,i=0,a=(n=t).length;i<a;++i)for(e=n[i],r=new Lm,Wz(this.b,r),s=0,c=(o=e).length;s<c;++s)Wz(r,new QF(o[s].j))}function HEt(t,e,n){var i,a,r;return r=0,i=n[e],e<n.length-1&&(a=n[e+1],t.b[e]?(r=hGt(t.d,i,a),r+=XY(t.a,i,(wWt(),sAe)),r+=XY(t.a,a,SAe)):r=S8(t.a,i,a)),t.c[e]&&(r+=I7(t.a,i)),r}function UEt(t,e,n,i,a){var r,o,s,c;for(c=null,s=new Wf(i);s.a<s.c.c.length;)if((o=jz(J1(s),441))!=n&&-1!=x9(o.e,a,0)){c=o;break}kQ(r=W6(a),n.b),_Q(r,c.b),XAt(t.a,a,new Ij(r,e,n.f))}function VEt(t){for(;0!=t.g.c&&0!=t.d.c;)FB(t.g).c>FB(t.d).c?(t.i+=t.g.c,ppt(t.d)):FB(t.d).c>FB(t.g).c?(t.e+=t.d.c,ppt(t.g)):(t.i+=zU(t.g),t.e+=zU(t.d),ppt(t.g),ppt(t.d))}function qEt(t,e,n){var i,a,r,o;for(r=e.q,o=e.r,new UQ((T7(),_we),e,r,1),new UQ(_we,r,o,1),a=new Wf(n);a.a<a.c.c.length;)(i=jz(J1(a),112))!=r&&i!=e&&i!=o&&(pHt(t.a,i,e),pHt(t.a,i,o))}function WEt(t,e,n,a){t.a.d=i.Math.min(e,n),t.a.a=i.Math.max(e,a)-t.a.d,e<n?(t.b=.5*(e+n),t.g=P4t*t.b+.9*e,t.f=P4t*t.b+.9*n):(t.b=.5*(e+a),t.g=P4t*t.b+.9*a,t.f=P4t*t.b+.9*e)}function YEt(){function t(){return(new Date).getTime()}EGt={},!Array.isArray&&(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),!Date.now&&(Date.now=t)}function GEt(t,e){var n,i;i=jz(yEt(e,(zYt(),tme)),98),lct(e,(lGt(),yhe),i),(n=e.e)&&(Kk(new NU(null,new h1(n.a,16)),new Ng(t)),Kk(htt(new NU(null,new h1(n.b,16)),new ye),new Bg(t)))}function ZEt(t){var e,n,a,r;if(gI(jz(yEt(t.b,(zYt(),Vpe)),103)))return 0;for(e=0,a=new Wf(t.a);a.a<a.c.c.length;)(n=jz(J1(a),10)).k==(oCt(),Sse)&&(r=n.o.a,e=i.Math.max(e,r));return e}function KEt(t){switch(jz(yEt(t,(zYt(),vbe)),163).g){case 1:lct(t,vbe,(_ft(),$he));break;case 2:lct(t,vbe,(_ft(),zhe));break;case 3:lct(t,vbe,(_ft(),Fhe));break;case 4:lct(t,vbe,(_ft(),jhe))}}function XEt(){XEt=D,ade=new DS(ZQt,0),ede=new DS(aJt,1),rde=new DS(rJt,2),ide=new DS("LEFT_RIGHT_CONSTRAINT_LOCKING",3),nde=new DS("LEFT_RIGHT_CONNECTION_LOCKING",4),tde=new DS(H1t,5)}function JEt(t,e,n){var a,r,o,s,c,l,u;c=n.a/2,o=n.b/2,l=1,u=1,(a=i.Math.abs(e.a-t.a))>c&&(l=c/a),(r=i.Math.abs(e.b-t.b))>o&&(u=o/r),s=i.Math.min(l,u),t.a+=s*(e.a-t.a),t.b+=s*(e.b-t.b)}function QEt(t,e,n,i,a){var r,o;for(o=!1,r=jz(OU(n.b,0),33);lzt(t,e,r,i,a)&&(o=!0,a_t(n,r),0!=n.b.c.length);)r=jz(OU(n.b,0),33);return 0==n.b.c.length&&_xt(n.j,n),o&&Uvt(e.q),o}function tCt(t,e){var n,i,a,r;if(xBt(),e.b<2)return!1;for(i=n=jz(d4(r=cmt(e,0)),8);r.b!=r.d.c;){if(aMt(t,i,a=jz(d4(r),8)))return!0;i=a}return!!aMt(t,i,n)}function eCt(t,e,n,i){return 0==n?(!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),jF(t.o,e,i)):jz(eet(jz(vot(t,16),26)||t.zh(),n),66).Nj().Rj(t,ubt(t),n-dY(t.zh()),e,i)}function nCt(t,e){var n;e!=t.sb?(n=null,t.sb&&(n=jz(t.sb,49).ih(t,1,jDe,n)),e&&(n=jz(e,49).gh(t,1,jDe,n)),(n=xdt(t,e,n))&&n.Fi()):4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,4,e,e))}function iCt(t,e){var n,i;if(!e)throw $m(new tx("All edge sections need an end point."));n=Bnt(e,"x"),_nt(new Bb(t).a,(vG(n),n)),i=Bnt(e,"y"),Ant(new Pb(t).a,(vG(i),i))}function aCt(t,e){var n,i;if(!e)throw $m(new tx("All edge sections need a start point."));n=Bnt(e,"x"),Tnt(new Ob(t).a,(vG(n),n)),i=Bnt(e,"y"),Dnt(new Mb(t).a,(vG(i),i))}function rCt(t,e){var n,i,a,r,o;for(i=0,r=blt(t).length;i<r;++i)mEt(e);for(o=!qne&&t.e?qne?null:t.d:null;o;){for(n=0,a=blt(o).length;n<a;++n)mEt(e);o=!qne&&o.e?qne?null:o.d:null}}function oCt(){oCt=D,Sse=new KC("NORMAL",0),Cse=new KC("LONG_EDGE",1),kse=new KC("EXTERNAL_PORT",2),Tse=new KC("NORTH_SOUTH_PORT",3),Ese=new KC("LABEL",4),_se=new KC("BREAKING_POINT",5)}function sCt(t){var e,n,i,a;if(e=!1,IN(t,(lGt(),Ude)))for(n=jz(yEt(t,Ude),83),a=new Wf(t.j);a.a<a.c.c.length;)XLt(i=jz(J1(a),11))&&(e||(nAt(bG(t)),e=!0),umt(jz(n.xc(i),306)))}function cCt(t,e,n){var i;Akt(n,"Self-Loop routing",1),i=Ght(e),eD(yEt(e,(C7(),REe))),Kk(DZ(AZ(AZ(htt(new NU(null,new h1(e.b,16)),new qi),new Wi),new Yi),new Gi),new tS(t,i)),zCt(n)}function lCt(t){var e,n,i;return i=Dkt(t),null!=t.e&&AH(i,Q7t,t.e),!!t.k&&AH(i,"type",fN(t.k)),!W_(t.j)&&(n=new Eh,net(i,O7t,n),e=new im(n),t6(t.j,e)),i}function uCt(t){var e,n,i,a;for(a=OY((dit(t.gc(),"size"),new Sx),123),i=!0,n=uq(t).Kc();n.Ob();)e=jz(n.Pb(),42),i||(a.a+=jGt),i=!1,rD(OY(rD(a,e.cd()),61),e.dd());return(a.a+="}",a).a}function dCt(t,e){var n,i,a;return(e&=63)<22?(n=t.l<<e,i=t.m<<e|t.l>>22-e,a=t.h<<e|t.m>>22-e):e<44?(n=0,i=t.l<<e-22,a=t.m<<e-22|t.l>>44-e):(n=0,i=0,a=t.l<<e-44),_L(n&EKt,i&EKt,a&CKt)}function hCt(t){if(null==vee&&(vee=new RegExp("^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$")),!vee.test(t))throw $m(new _x(NKt+t+'"'));return parseFloat(t)}function fCt(t){var e,n,i,a;for(e=new Lm,bW(n=O5(AMe,JXt,25,t.a.c.length,16,1),n.length),a=new Wf(t.a);a.a<a.c.c.length;)n[(i=jz(J1(a),121)).d]||(e.c[e.c.length]=i,Ubt(t,i,n));return e}function gCt(t,e){var n,i,a,r;for(r=e.b.j,t.a=O5(TMe,lKt,25,r.c.length,15,1),a=0,i=0;i<r.c.length;i++)u1(i,r.c.length),0==(n=jz(r.c[i],11)).e.c.length&&0==n.g.c.length?a+=1:a+=3,t.a[i]=a}function pCt(){pCt=D,Nue=new SS("ALWAYS_UP",0),Mue=new SS("ALWAYS_DOWN",1),Pue=new SS("DIRECTION_UP",2),Bue=new SS("DIRECTION_DOWN",3),jue=new SS("SMART_UP",4),Fue=new SS("SMART_DOWN",5)}function bCt(t,e){if(t<0||e<0)throw $m(new Pw("k and n must be positive"));if(e>t)throw $m(new Pw("k must be smaller than n"));return 0==e||e==t?1:0==t?0:kRt(t)/(kRt(e)*kRt(t-e))}function mCt(t,e){var n,i,a,r;for(n=new TI(t);null!=n.g||n.c?null==n.g||0!=n.i&&jz(n.g[n.i-1],47).Ob():QJ(n);)if(iO(r=jz(rOt(n),56),160))for(i=jz(r,160),a=0;a<e.length;a++)e[a].og(i)}function yCt(t){var e;return 64&t.Db?Kht(t):((e=new lM(Kht(t))).a+=" (height: ",b_(e,t.f),e.a+=", width: ",b_(e,t.g),e.a+=", x: ",b_(e,t.i),e.a+=", y: ",b_(e,t.j),e.a+=")",e.a)}function vCt(t){var e,n,i,a,r,o;for(e=new b3,a=0,r=(i=t).length;a<r;++a)if(null!=Xbt(e,o=yY((n=i[a]).cd()),yY(n.dd())))throw $m(new Pw("duplicate key: "+o));this.b=(kK(),new qf(e))}function wCt(t){var e,n,i,a,r;if(null==t)return VGt;for(r=new Iot(jGt,"[","]"),i=0,a=(n=t).length;i<a;++i)e=n[i],d7(r,String.fromCharCode(e));return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function xCt(){xCt=D,Btt(),Sre=new DD(sQt,Tre=Bre),nht(1),Cre=new DD(cQt,nht(300)),nht(0),Ire=new DD(lQt,nht(0)),Lre=new DD(uQt,dQt),Are=new DD(hQt,5),Ore=Bre,Dre=Nre}function RCt(t,e){var n,i,a,r;for(i=(1==e?Woe:qoe).a.ec().Kc();i.Ob();)for(n=jz(i.Pb(),103),r=jz(c7(t.f.c,n),21).Kc();r.Ob();)a=jz(r.Pb(),46),Wz(t.b.b,jz(a.b,81)),Wz(t.b.a,jz(a.b,81).d)}function _Ct(t,e){var n;if(null!=e&&!t.c.Yj().wj(e))throw n=iO(e,56)?jz(e,56).Tg().zb:JR(tlt(e)),$m(new Bw(i7t+t.c.ne()+"'s type '"+t.c.Yj().ne()+"' does not permit a value of type '"+n+"'"))}function kCt(t,e,n){var i,a;for(a=new _2(t.b,0);a.b<a.d.gc();)EN(a.b<a.d.gc()),HA(yEt(i=jz(a.d.Xb(a.c=a.b++),70),(lGt(),bhe)))===HA(e)&&(ASt(i.n,bG(t.c.i),n),lG(a),Wz(e.b,i))}function ECt(t,e){if(e.a)switch(jz(yEt(e.b,(lGt(),yhe)),98).g){case 0:case 1:d_t(e);case 2:Kk(new NU(null,new h1(e.d,16)),new Oi),sIt(t.a,e)}else Kk(new NU(null,new h1(e.d,16)),new Oi)}function CCt(t){var e,n;return n=i.Math.sqrt((null==t.k&&(t.k=Yat(t,new _r)),Hw(t.k)/(t.b*(null==t.g&&(t.g=Wat(t,new Rr)),Hw(t.g))))),e=fV(uot(i.Math.round(n))),e=i.Math.min(e,t.f)}function SCt(){prt(),IP.call(this),this.j=(wWt(),CAe),this.a=new HR,new lv,this.f=(dit(2,DZt),new K7(2)),this.e=(dit(4,DZt),new K7(4)),this.g=(dit(4,DZt),new K7(4)),this.b=new cS(this.e,this.g)}function TCt(t,e){var n,i;return!(zw(RB(yEt(e,(lGt(),Che))))||(i=e.c.i,t==(_ft(),Fhe)&&i.k==(oCt(),Ese))||(n=jz(yEt(i,(zYt(),vbe)),163),n==jhe))}function ACt(t,e){var n,i;return!(zw(RB(yEt(e,(lGt(),Che))))||(i=e.d.i,t==(_ft(),$he)&&i.k==(oCt(),Ese))||(n=jz(yEt(i,(zYt(),vbe)),163),n==zhe))}function DCt(t,e){var n,i,a,r,o,s,c;for(o=t.d,c=t.o,s=new VZ(-o.b,-o.d,o.b+c.a+o.c,o.d+c.b+o.a),a=0,r=(i=e).length;a<r;++a)(n=i[a])&&SSt(s,n.i);o.b=-s.c,o.d=-s.d,o.c=s.b-o.b-c.a,o.a=s.a-o.d-c.b}function ICt(){ICt=D,nke=new _T("CENTER_DISTANCE",0),ike=new _T("CIRCLE_UNDERLAP",1),oke=new _T("RECTANGLE_UNDERLAP",2),ake=new _T("INVERTED_OVERLAP",3),rke=new _T("MINIMUM_ROOT_DISTANCE",4)}function LCt(t){var e,n,i,a;if(PBt(),null==t)return null;for(i=t.length,e=O5(SMe,YZt,25,2*i,15,1),n=0;n<i;n++)(a=t[n])<0&&(a+=256),e[2*n]=GOe[a>>4],e[2*n+1]=GOe[15&a];return $pt(e,0,e.length)}function OCt(t){var e;switch(JG(),t.c.length){case 0:return $te;case 1:return SH((e=jz(XTt(new Wf(t)),42)).cd(),e.dd());default:return new cw(jz(Zbt(t,O5(zte,wZt,42,t.c.length,0,1)),165))}}function MCt(t){var e,n,i,a,r;for(e=new Im,n=new Im,f4(e,t),f4(n,t);n.b!=n.c;)for(r=new Wf(jz(fW(n),37).a);r.a<r.c.c.length;)(a=jz(J1(r),10)).e&&(f4(e,i=a.e),f4(n,i));return e}function NCt(t,e){switch(e.g){case 1:return Bz(t.j,(prt(),Mse));case 2:return Bz(t.j,(prt(),Lse));case 3:return Bz(t.j,(prt(),Bse));case 4:return Bz(t.j,(prt(),Pse));default:return kK(),kK(),cne}}function BCt(t,e){var n,i,a;n=sH(e,t.e),i=jz(NY(t.g.f,n),19).a,a=t.a.c.length-1,0!=t.a.c.length&&jz(OU(t.a,a),287).c==i?(++jz(OU(t.a,a),287).a,++jz(OU(t.a,a),287).b):Wz(t.a,new HN(i))}function PCt(t,e,n){var i,a;return 0!=(i=EPt(t,e,n))?i:IN(e,(lGt(),hhe))&&IN(n,hhe)?((a=xL(jz(yEt(e,hhe),19).a,jz(yEt(n,hhe),19).a))<0?oFt(t,e,n):a>0&&oFt(t,n,e),a):TDt(t,e,n)}function FCt(t,e,n){var i,a,r,o;if(0!=e.b){for(i=new Zk,o=cmt(e,0);o.b!=o.d.c;)jat(i,Mst(r=jz(d4(o),86))),(a=r.e).a=jz(yEt(r,(HUt(),gxe)),19).a,a.b=jz(yEt(r,pxe),19).a;FCt(t,i,yrt(n,i.b/t.a|0))}}function jCt(t,e){var n,i,a,r,o;if(t.e<=e||U1(t,t.g,e))return t.g;for(r=t.r,i=t.g,o=t.r,a=(r-i)/2+i;i+1<r;)(n=aHt(t,a,!1)).b<=a&&n.a<=e?(o=a,r=a):i=a,a=(r-i)/2+i;return o}function $Ct(t,e,n){Akt(n,"Recursive Graph Layout",lBt(t,e,!0)),mCt(e,Cst(Hx(Jke,1),zGt,527,0,[new Ad])),E5(e,(cGt(),mSe))||mCt(e,Cst(Hx(Jke,1),zGt,527,0,[new ms])),dYt(t,e,null,n),zCt(n)}function zCt(t){var e;if(null==t.p)throw $m(new Fw("The task has not begun yet."));t.b||(t.k&&(Dk(),e=aft(uot(Date.now()),GZt),t.q=1e-9*w2(nft(e,t.o))),t.c<t.r&&Hit(t,t.r-t.c),t.b=!0)}function HCt(t){var e,n,i;for(MH(i=new vv,new OT(t.j,t.k)),n=new AO((!t.a&&(t.a=new DO(LDe,t,5)),t.a));n.e!=n.i.gc();)MH(i,new OT((e=jz(wmt(n),469)).a,e.b));return MH(i,new OT(t.b,t.c)),i}function UCt(t,e,n,i,a){var r,o,s,c;if(a)for(c=((r=new cq(a.a.length)).b-r.a)*r.c<0?(tC(),RMe):new qO(r);c.Ob();)s=O2(a,jz(c.Pb(),19).a),Njt((o=new cK(t,e,n,i)).a,o.b,o.c,o.d,s)}function VCt(t,e){var n;if(HA(t)===HA(e))return!0;if(iO(e,21)){n=jz(e,21);try{return t.gc()==n.gc()&&t.Ic(n)}catch(i){if(iO(i=dst(i),173)||iO(i,205))return!1;throw $m(i)}}return!1}function qCt(t,e){var n;Wz(t.d,e),n=e.rf(),t.c?(t.e.a=i.Math.max(t.e.a,n.a),t.e.b+=n.b,t.d.c.length>1&&(t.e.b+=t.a)):(t.e.a+=n.a,t.e.b=i.Math.max(t.e.b,n.b),t.d.c.length>1&&(t.e.a+=t.a))}function WCt(t){var e,n,i,a;switch(e=(a=t.i).b,i=a.j,n=a.g,a.a.g){case 0:n.a=(t.g.b.o.a-i.a)/2;break;case 1:n.a=e.d.n.a+e.d.a.a;break;case 2:n.a=e.d.n.a+e.d.a.a-i.a;break;case 3:n.b=e.d.n.b+e.d.a.b}}function YCt(t,e,n,i,a){if(i<e||a<n)throw $m(new Pw("The highx must be bigger then lowx and the highy must be bigger then lowy"));return t.a<e?t.a=e:t.a>i&&(t.a=i),t.b<n?t.b=n:t.b>a&&(t.b=a),t}function GCt(t){if(iO(t,149))return kMt(jz(t,149));if(iO(t,229))return Jft(jz(t,229));if(iO(t,23))return lCt(jz(t,23));throw $m(new Pw(V7t+LEt(new Kw(Cst(Hx(Dte,1),zGt,1,5,[t])))))}function ZCt(t,e,n,i,a){var r,o,s;for(r=!0,o=0;o<i;o++)r&=0==n[o];if(0==a)rHt(n,i,t,0,e),o=e;else{for(s=32-a,r&=n[o]<<s==0,o=0;o<e-1;o++)t[o]=n[o+i]>>>a|n[o+i+1]<<s;t[o]=n[o+i]>>>a,++o}return r}function KCt(t,e,n,i){var a,r;if(e.k==(oCt(),Cse))for(r=new oq(XO(uft(e).a.Kc(),new u));gIt(r);)if((a=jz(V6(r),17)).c.i.k==Cse&&t.c.a[a.c.i.c.p]==i&&t.c.a[e.c.p]==n)return!0;return!1}function XCt(t,e){var n,i,a,r;return e&=63,n=t.h&CKt,e<22?(r=n>>>e,a=t.m>>e|n<<22-e,i=t.l>>e|t.m<<22-e):e<44?(r=0,a=n>>>e-22,i=t.m>>e-22|t.h<<44-e):(r=0,a=0,i=n>>>e-44),_L(i&EKt,a&EKt,r&CKt)}function JCt(t,e,n,i){var a;this.b=i,this.e=t==(sit(),Dve),a=e[n],this.d=vU(AMe,[cZt,JXt],[177,25],16,[a.length,a.length],2),this.a=vU(TMe,[cZt,lKt],[48,25],15,[a.length,a.length],2),this.c=new V_t(e,n)}function QCt(t){var e,n,i;for(t.k=new o1((wWt(),Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])).length,t.j.c.length),i=new Wf(t.j);i.a<i.c.c.length;)e=(n=jz(J1(i),113)).d.j,XAt(t.k,e,n);t.e=nMt(gq(t.k))}function tSt(t,e){var n,i,a;RW(t.d,e),n=new Ro,YG(t.c,e,n),n.f=Cut(e.c),n.a=Cut(e.d),n.d=(pNt(),(a=e.c.i.k)==(oCt(),Sse)||a==_se),n.e=(i=e.d.i.k)==Sse||i==_se,n.b=e.c.j==(wWt(),SAe),n.c=e.d.j==sAe}function eSt(t){var e,n,i,a,r;for(r=NGt,a=NGt,i=new Wf(wft(t));i.a<i.c.c.length;)e=(n=jz(J1(i),213)).e.e-n.d.e,n.e==t&&e<a?a=e:e<r&&(r=e);return a==NGt&&(a=-1),r==NGt&&(r=-1),new nA(nht(a),nht(r))}function nSt(t,e){var n,a,r;return r=JJt,Hmt(),a=Jae,r=i.Math.abs(t.b),(n=i.Math.abs(e.f-t.b))<r&&(r=n,a=Qae),(n=i.Math.abs(t.a))<r&&(r=n,a=tre),(n=i.Math.abs(e.g-t.a))<r&&(r=n,a=Xae),a}function iSt(t,e){var n,i,a;for(n=e.a.o.a,a=new kf(new s1(bG(e.a).b,e.c,e.f+1));a.b<a.d.gc();)if(EN(a.b<a.d.gc()),(i=jz(a.d.Xb(a.c=a.b++),29)).c.a>=n)return lSt(t,e,i.p),!0;return!1}function aSt(t){var e;return 64&t.Db?yCt(t):(e=new uM(J6t),!t.a||oD(oD((e.a+=' "',e),t.a),'"'),oD(v_(oD(v_(oD(v_(oD(v_((e.a+=" (",e),t.i),","),t.j)," | "),t.g),","),t.f),")"),e.a)}function rSt(t,e,n){var i,a,r,o,s;for(s=rNt(t.e.Tg(),e),a=jz(t.g,119),i=0,o=0;o<t.i;++o)if(r=a[o],s.rl(r.ak())){if(i==n)return uBt(t,o),XE(),jz(e,66).Oj()?r:r.dd();++i}throw $m(new Aw(e8t+n+s5t+i))}function oSt(t){var e,n,i;if(2==(e=t.c)||7==e||1==e)return fGt(),fGt(),oMe;for(i=AYt(t),n=null;2!=(e=t.c)&&7!=e&&1!=e;)n||(fGt(),fGt(),tUt(n=new nL(1),i),i=n),tUt(n,AYt(t));return i}function sSt(t,e,n){return t<0||t>n?gTt(t,n,"start index"):e<0||e>n?gTt(e,n,"end index"):IPt("end index (%s) must not be less than start index (%s)",Cst(Hx(Dte,1),zGt,1,5,[nht(e),nht(t)]))}function cSt(t,e){var n,i,a,r;for(i=0,a=t.length;i<a;i++){r=t[i];try{r[1]?r[0].jm()&&(e=RV(e,r)):r[0].jm()}catch(o){if(!iO(o=dst(o),78))throw $m(o);n=o,Mx(),yX(iO(n,477)?jz(n,477).ae():n)}}return e}function lSt(t,e,n){var a,r;for(n!=e.c+e.b.gc()&&fHt(e.a,not(e,n-e.c)),r=e.a.c.p,t.a[r]=i.Math.max(t.a[r],e.a.o.a),a=jz(yEt(e.a,(lGt(),Ehe)),15).Kc();a.Ob();)lct(jz(a.Pb(),70),Qce,(cM(),!0))}function uSt(t,e){var n,a,r;r=HMt(e),lct(e,(lGt(),uhe),r),r&&(a=NGt,AX(t.f,r)&&(a=jz(zA(AX(t.f,r)),19).a),zw(RB(yEt(n=jz(OU(e.g,0),17),Che)))||YG(t,r,nht(i.Math.min(jz(yEt(n,hhe),19).a,a))))}function dSt(t,e,n){var i,a,r,o;for(e.p=-1,o=Mgt(e,(rit(),Hye)).Kc();o.Ob();)for(a=new Wf(jz(o.Pb(),11).g);a.a<a.c.c.length;)e!=(r=(i=jz(J1(a),17)).d.i)&&(r.p<0?n.Fc(i):r.p>0&&dSt(t,r,n));e.p=0}function hSt(t){var e;this.c=new Zk,this.f=t.e,this.e=t.d,this.i=t.g,this.d=t.c,this.b=t.b,this.k=t.j,this.a=t.a,t.i?this.j=t.i:this.j=new ZF(e=jz(YR(hEe),9),jz(kP(e,e.length),9),0),this.g=t.f}function fSt(t){var e,n,i,a;for(e=OY(oD(new uM("Predicates."),"and"),40),n=!0,a=new kf(t);a.b<a.d.gc();)EN(a.b<a.d.gc()),i=a.d.Xb(a.c=a.b++),n||(e.a+=","),e.a+=""+i,n=!1;return(e.a+=")",e).a}function gSt(t,e,n){var i,a,r;if(!(n<=e+2))for(a=(n-e)/2|0,i=0;i<a;++i)u1(e+i,t.c.length),r=jz(t.c[e+i],11),i6(t,e+i,(u1(n-i-1,t.c.length),jz(t.c[n-i-1],11))),u1(n-i-1,t.c.length),t.c[n-i-1]=r}function pSt(t,e,n){var i,a,r,o,s,c,l;s=(r=t.d.p).e,c=r.r,t.g=new GF(c),i=(o=t.d.o.c.p)>0?s[o-1]:O5(Rse,r1t,10,0,0,1),a=s[o],l=o<s.length-1?s[o+1]:O5(Rse,r1t,10,0,0,1),e==n-1?rQ(t.g,a,l):rQ(t.g,i,a)}function bSt(t){var e;this.j=new Lm,this.f=new Ny,this.b=new ZF(e=jz(YR(MAe),9),jz(kP(e,e.length),9),0),this.d=O5(TMe,lKt,25,(wWt(),Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])).length,15,1),this.g=t}function mSt(t,e){var n,i,a;if(0!=e.c.length){for(n=_Et(t,e),a=!1;!n;)RLt(t,e,!0),a=!0,n=_Et(t,e);a&&RLt(t,e,!1),i=Nst(e),t.b&&t.b.lg(i),t.a=Iut(t,(u1(0,e.c.length),jz(e.c[0],33))),mSt(t,i)}}function ySt(t,e){var n,i,a;if(i=eet(t.Tg(),e),(n=e-t.Ah())<0){if(!i)throw $m(new Pw(s7t+e+c7t));if(!i.Ij())throw $m(new Pw(i7t+i.ne()+a7t));(a=t.Yg(i))>=0?t.Bh(a):aAt(t,i)}else Hdt(t,n,i)}function vSt(t){var e,n;if(n=null,e=!1,iO(t,204)&&(e=!0,n=jz(t,204).a),e||iO(t,258)&&(e=!0,n=""+jz(t,258).a),e||iO(t,483)&&(e=!0,n=""+jz(t,483).a),!e)throw $m(new Iw(z7t));return n}function wSt(t,e){var n,i;if(t.f){for(;e.Ob();)if(iO(i=(n=jz(e.Pb(),72)).ak(),99)&&jz(i,18).Bb&l7t&&(!t.e||i.Gj()!=IDe||0!=i.aj())&&null!=n.dd())return e.Ub(),!0;return!1}return e.Ob()}function xSt(t,e){var n,i;if(t.f){for(;e.Sb();)if(iO(i=(n=jz(e.Ub(),72)).ak(),99)&&jz(i,18).Bb&l7t&&(!t.e||i.Gj()!=IDe||0!=i.aj())&&null!=n.dd())return e.Pb(),!0;return!1}return e.Sb()}function RSt(t,e,n){var i,a,r,o,s,c;for(c=rNt(t.e.Tg(),e),i=0,s=t.i,a=jz(t.g,119),o=0;o<t.i;++o)if(r=a[o],c.rl(r.ak())){if(n==i)return o;++i,s=o+1}if(n==i)return s;throw $m(new Aw(e8t+n+s5t+i))}function _St(t,e){var n,a,r;if(0==t.f.c.length)return null;for(r=new dI,n=new Wf(t.f);n.a<n.c.c.length;)a=jz(J1(n),70).o,r.b=i.Math.max(r.b,a.a),r.a+=a.b;return r.a+=(t.f.c.length-1)*e,r}function kSt(t,e,n){var i,a,r;for(a=new oq(XO(lft(n).a.Kc(),new u));gIt(a);)!d6(i=jz(V6(a),17))&&(d6(i)||i.c.i.c!=i.d.i.c)&&(r=VOt(t,i,n,new rv)).c.length>1&&(e.c[e.c.length]=r)}function ESt(t){var e,n,i;for(jat(n=new Zk,t.o),i=new ov;0!=n.b;)YWt(t,e=jz(0==n.b?null:(EN(0!=n.b),Det(n,n.a.a)),508),!0)&&Wz(i.a,e);for(;0!=i.a.c.length;)YWt(t,e=jz(tut(i),508),!1)}function CSt(){CSt=D,wEe=new DT(lJt,0),fEe=new DT("BOOLEAN",1),mEe=new DT("INT",2),vEe=new DT("STRING",3),gEe=new DT("DOUBLE",4),pEe=new DT("ENUM",5),bEe=new DT("ENUMSET",6),yEe=new DT("OBJECT",7)}function SSt(t,e){var n,a,r,o,s;a=i.Math.min(t.c,e.c),o=i.Math.min(t.d,e.d),(r=i.Math.max(t.c+t.b,e.c+e.b))<a&&(n=a,a=r,r=n),(s=i.Math.max(t.d+t.a,e.d+e.a))<o&&(n=o,o=s,s=n),OH(t,a,o,r-a,s-o)}function TSt(){TSt=D,ZLe=Cst(Hx(zee,1),cZt,2,6,[f9t,g9t,p9t,b9t,m9t,y9t,Q7t]),GLe=Cst(Hx(zee,1),cZt,2,6,[f9t,"empty",g9t,P8t,"elementOnly"]),XLe=Cst(Hx(zee,1),cZt,2,6,[f9t,"preserve","replace",v9t]),KLe=new kH}function ASt(t,e,n){var i,a,r;if(e!=n){i=e;do{VP(t,i.c),(a=i.e)&&(PN(t,(r=i.d).b,r.d),VP(t,a.n),i=bG(a))}while(a);i=n;do{qP(t,i.c),(a=i.e)&&(jN(t,(r=i.d).b,r.d),qP(t,a.n),i=bG(a))}while(a)}}function DSt(t,e,n,i){var a,r,o,s,c;if(i.f.c+i.g.c==0)for(s=0,c=(o=t.a[t.c]).length;s<c;++s)YG(i,r=o[s],new wrt(t,r,n));return(a=jz(zA(AX(i.f,e)),663)).b=0,a.c=a.f,0==a.c||Rf(jz(OU(a.a,a.b),287)),a}function ISt(){ISt=D,Jle=new wS("MEDIAN_LAYER",0),tue=new wS("TAIL_LAYER",1),Xle=new wS("HEAD_LAYER",2),Qle=new wS("SPACE_EFFICIENT_LAYER",3),eue=new wS("WIDEST_LAYER",4),Kle=new wS("CENTER_LAYER",5)}function LSt(t){switch(t.g){case 0:case 1:case 2:return wWt(),cAe;case 3:case 4:case 5:return wWt(),EAe;case 6:case 7:case 8:return wWt(),SAe;case 9:case 10:case 11:return wWt(),sAe;default:return wWt(),CAe}}function OSt(t,e){var n;return 0!=t.c.length&&(n=tpt((u1(0,t.c.length),jz(t.c[0],17)).c.i),jQ(),n==(hyt(),uye)||n==lye||o6(DZ(new NU(null,new h1(t,16)),new $r),new eb(e)))}function MSt(t,e,n){var i,a,r;if(!t.b[e.g]){for(t.b[e.g]=!0,!(i=n)&&(i=new E7),MH(i.b,e),r=t.a[e.g].Kc();r.Ob();)(a=jz(r.Pb(),188)).b!=e&&MSt(t,a.b,i),a.c!=e&&MSt(t,a.c,i),MH(i.a,a);return i}return null}function NSt(){NSt=D,Zwe=new uT("ROOT_PROC",0),qwe=new uT("FAN_PROC",1),Ywe=new uT("NEIGHBORS_PROC",2),Wwe=new uT("LEVEL_HEIGHT",3),Gwe=new uT("NODE_POSITION_PROC",4),Vwe=new uT("DETREEIFYING_PROC",5)}function BSt(t,e){if(iO(e,239))return UI(t,jz(e,33));if(iO(e,186))return VI(t,jz(e,118));if(iO(e,439))return HI(t,jz(e,202));throw $m(new Pw(V7t+LEt(new Kw(Cst(Hx(Dte,1),zGt,1,5,[e])))))}function PSt(t,e,n){var i,a;if(this.f=t,h7(n,a=(i=jz(NY(t.b,e),283))?i.a:0),n>=(a/2|0))for(this.e=i?i.c:null,this.d=a;n++<a;)RQ(this);else for(this.c=i?i.b:null;n-- >0;)xQ(this);this.b=e,this.a=null}function FSt(t,e){var n,i;e.a?VMt(t,e):((n=jz(vF(t.b,e.b),57))&&n==t.a[e.b.f]&&n.a&&n.a!=e.b.a&&n.c.Fc(e.b),(i=jz(yF(t.b,e.b),57))&&t.a[i.f]==e.b&&i.a&&i.a!=e.b.a&&e.b.c.Fc(i),_M(t.b,e.b))}function jSt(t,e){var n,i;if(n=jz(oZ(t.b,e),124),jz(jz(c7(t.r,e),21),84).dc())return n.n.b=0,void(n.n.c=0);n.n.b=t.C.b,n.n.c=t.C.c,t.A.Hc((ypt(),FAe))&&vPt(t,e),i=Wmt(t,e),CBt(t,e)==(amt(),$Te)&&(i+=2*t.w),n.a.a=i}function $St(t,e){var n,i;if(n=jz(oZ(t.b,e),124),jz(jz(c7(t.r,e),21),84).dc())return n.n.d=0,void(n.n.a=0);n.n.d=t.C.d,n.n.a=t.C.a,t.A.Hc((ypt(),FAe))&&wPt(t,e),i=Ymt(t,e),CBt(t,e)==(amt(),$Te)&&(i+=2*t.w),n.a.b=i}function zSt(t,e){var n,i,a,r;for(r=new Lm,i=new Wf(e);i.a<i.c.c.length;)Wz(r,new NC(n=jz(J1(i),65),!0)),Wz(r,new NC(n,!1));mw((a=new cX(t)).a.a),t2(r,t.b,new Kw(Cst(Hx(oie,1),zGt,679,0,[a])))}function HSt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g;return s=t.a,d=t.b,c=e.a,h=e.b,l=n.a,f=n.b,new OT(((r=s*h-d*c)*(l-(u=i.a))-(o=l*(g=i.b)-f*u)*(s-c))/(a=(s-c)*(f-g)-(d-h)*(l-u)),(r*(f-g)-o*(d-h))/a)}function USt(t,e){var n,i,a;if(!t.d[e.p]){for(t.d[e.p]=!0,t.a[e.p]=!0,i=new oq(XO(dft(e).a.Kc(),new u));gIt(i);)!d6(n=jz(V6(i),17))&&(a=n.d.i,t.a[a.p]?Wz(t.b,n):USt(t,a));t.a[e.p]=!1}}function VSt(t,e,n){var i;switch(i=0,jz(yEt(e,(zYt(),vbe)),163).g){case 2:i=2*-n+t.a,++t.a;break;case 1:i=-n;break;case 3:i=n;break;case 4:i=2*n+t.b,++t.b}return IN(e,(lGt(),hhe))&&(i+=jz(yEt(e,hhe),19).a),i}function qSt(t,e,n){var i,a,r;for(n.zc(e,t),Wz(t.n,e),r=t.p.eg(e),e.j==t.p.fg()?Aft(t.e,r):Aft(t.j,r),nY(t),a=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[new $g(e),new Hg(e)])));gIt(a);)i=jz(V6(a),11),n._b(i)||qSt(t,i,n)}function WSt(t){var e,n;return jz(JIt(t,(cGt(),BCe)),21).Hc((ypt(),NAe))?(n=jz(JIt(t,zCe),21),e=new hI(jz(JIt(t,jCe),8)),n.Hc((QFt(),UAe))&&(e.a<=0&&(e.a=20),e.b<=0&&(e.b=20)),e):new HR}function YSt(t){var e,n,i;if(!t.b){for(i=new Tc,n=new aN(Bzt(t));n.e!=n.i.gc();)(e=jz(xmt(n),18)).Bb&l7t&&l8(i,e);aut(i),t.b=new LD((jz(Yet(GK((GY(),JIe).o),8),18),i.i),i.g),E6(t).b&=-9}return t.b}function GSt(t,e){var n,i,a,r,o,s;o=jz(Rvt(gq(e.k),O5(MAe,KQt,61,2,0,1)),122),Jvt(t,s=e.g,n=o4(e,o[0]),i=r4(e,o[1]))<=Jvt(t,s,a=o4(e,o[1]),r=r4(e,o[0]))?(e.a=n,e.c=i):(e.a=a,e.c=r)}function ZSt(t,e,n){var i,a,r;for(Akt(n,"Processor set neighbors",1),t.a=0==e.b.b?1:e.b.b,a=null,i=cmt(e.b,0);!a&&i.b!=i.d.c;)zw(RB(yEt(r=jz(d4(i),86),(HUt(),fxe))))&&(a=r);a&&LBt(t,new db(a),n),zCt(n)}function KSt(t){var e,n,i,a;return BHt(),e=-1==(i=HD(t,Kkt(35)))?t:t.substr(0,i),n=-1==i?null:t.substr(i+1),(a=Y4(wIe,e))?null!=n&&(a=Slt(a,(vG(n),n))):(a=YYt(e),a6(wIe,e,a),null!=n&&(a=Slt(a,n))),a}function XSt(t){var e,n,i,a,r,o,s;if(kK(),iO(t,54))for(r=0,a=t.gc()-1;r<a;++r,--a)e=t.Xb(r),t._c(r,t.Xb(a)),t._c(a,e);else for(n=t.Yc(),o=t.Zc(t.gc());n.Tb()<o.Vb();)i=n.Pb(),s=o.Ub(),n.Wb(s),o.Wb(i)}function JSt(t,e){var n,i,a;Akt(e,"End label pre-processing",1),n=Hw(_B(yEt(t,(zYt(),wme)))),i=Hw(_B(yEt(t,kme))),a=gI(jz(yEt(t,Vpe),103)),Kk(htt(new NU(null,new h1(t.b,16)),new un),new Mj(n,i,a)),zCt(e)}function QSt(t,e){var n,i,a,r,o,s;for(s=0,f4(r=new Im,e);r.b!=r.c;)for(s+=cwt((o=jz(fW(r),214)).d,o.e),a=new Wf(o.b);a.a<a.c.c.length;)i=jz(J1(a),37),(n=jz(OU(t.b,i.p),214)).s||(s+=QSt(t,n));return s}function tTt(t,e,n){var a,r;Fot(this),e==(fJ(),Lwe)?RW(this.r,t.c):RW(this.w,t.c),RW(n==Lwe?this.r:this.w,t.d),tSt(this,t),WEt(this,a=Cut(t.c),r=Cut(t.d),r),this.o=(pNt(),i.Math.abs(a-r)<.2)}function eTt(t,e,n){var i,a,r,o,s;if(null!=(o=jz(vot(t.a,8),1936)))for(a=0,r=o.length;a<r;++a)null.jm();i=n,1&t.a.Db||(s=new rG(t,n,e),i.ui(s)),iO(i,672)?jz(i,672).wi(t.a):i.ti()==t.a&&i.vi(null)}function nTt(){var t;return KOe?jz(ILt((WE(),HIe),E9t),1945):(cWt(),t=jz(iO(kJ((WE(),HIe),E9t),586)?kJ(HIe,E9t):new UG,586),KOe=!0,pYt(t),bGt(t),YG((YE(),KIe),t,new Fl),_wt(t),mQ(HIe,E9t,t),t)}function iTt(t,e,n,i){var a;return(a=Vkt(t,n,Cst(Hx(zee,1),cZt,2,6,[hKt,fKt,gKt,pKt,bKt,mKt,yKt]),e))<0&&(a=Vkt(t,n,Cst(Hx(zee,1),cZt,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),e)),!(a<0||(i.d=a,0))}function aTt(t,e,n,i){var a;return(a=Vkt(t,n,Cst(Hx(zee,1),cZt,2,6,[hKt,fKt,gKt,pKt,bKt,mKt,yKt]),e))<0&&(a=Vkt(t,n,Cst(Hx(zee,1),cZt,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),e)),!(a<0||(i.d=a,0))}function rTt(t){var e,n,i;for(FLt(t),i=new Lm,n=new Wf(t.a.a.b);n.a<n.c.c.length;)Wz(i,new lS(e=jz(J1(n),81),!0)),Wz(i,new lS(e,!1));Qyt(t.c),e2(i,t.b,new Kw(Cst(Hx(Koe,1),zGt,369,0,[t.c]))),mIt(t)}function oTt(t){var e,n,i,a;for(n=new Om,a=new Wf(t.d);a.a<a.c.c.length;)i=jz(J1(a),181),e=jz(i.We((lGt(),Vde)),17),AX(n.f,e)||YG(n,e,new RK(e)),Wz(jz(zA(AX(n.f,e)),456).b,i);return new QF(new Tf(n))}function sTt(t,e){var n,i,a,r,o;for(i=new f1(t.j.c.length),n=null,r=new Wf(t.j);r.a<r.c.c.length;)(a=jz(J1(r),11)).j!=n&&(i.b==i.c||jLt(i,n,e),o3(i),n=a.j),(o=yIt(a))&&h4(i,o);i.b==i.c||jLt(i,n,e)}function cTt(t,e){var n,i;for(i=new _2(t.b,0);i.b<i.d.gc();)EN(i.b<i.d.gc()),n=jz(i.d.Xb(i.c=i.b++),70),jz(yEt(n,(zYt(),Zpe)),272)==(Bet(),qSe)&&(lG(i),Wz(e.b,n),IN(n,(lGt(),Vde))||lct(n,Vde,t))}function lTt(t){var e,n,a;for(e=F4(new oq(XO(dft(t).a.Kc(),new u))),n=new oq(XO(uft(t).a.Kc(),new u));gIt(n);)a=F4(new oq(XO(dft(jz(V6(n),17).c.i).a.Kc(),new u))),e=i.Math.max(e,a);return nht(e)}function uTt(t,e,n){var i,a,r,o;for(Akt(n,"Processor arrange node",1),a=null,r=new Zk,i=cmt(e.b,0);!a&&i.b!=i.d.c;)zw(RB(yEt(o=jz(d4(i),86),(HUt(),fxe))))&&(a=o);n6(r,a,r.c.b,r.c),Kqt(t,r,yrt(n,1)),zCt(n)}function dTt(t,e,n){var i,a,r;i=jz(JIt(t,(cGt(),cCe)),21),a=0,r=0,e.a>n.a&&(i.Hc((f_t(),YEe))?a=(e.a-n.a)/2:i.Hc(ZEe)&&(a=e.a-n.a)),e.b>n.b&&(i.Hc((f_t(),XEe))?r=(e.b-n.b)/2:i.Hc(KEe)&&(r=e.b-n.b)),dEt(t,a,r)}function hTt(t,e,n,i,a,r,o,s,c,l,u,d,h){iO(t.Cb,88)&&DTt(E6(jz(t.Cb,88)),4),Oat(t,n),t.f=o,Iht(t,s),Oht(t,c),Dht(t,l),Lht(t,u),Qdt(t,d),Hht(t,h),Kdt(t,!0),Lnt(t,a),t.ok(r),Tut(t,e),null!=i&&(t.i=null,rat(t,i))}function fTt(t){var e,n;if(t.f){for(;t.n>0;){if(iO(n=(e=jz(t.k.Xb(t.n-1),72)).ak(),99)&&jz(n,18).Bb&l7t&&(!t.e||n.Gj()!=IDe||0!=n.aj())&&null!=e.dd())return!0;--t.n}return!1}return t.n>0}function gTt(t,e,n){if(t<0)return IPt($Gt,Cst(Hx(Dte,1),zGt,1,5,[n,nht(t)]));if(e<0)throw $m(new Pw(HGt+e));return IPt("%s (%s) must not be greater than size (%s)",Cst(Hx(Dte,1),zGt,1,5,[n,nht(t),nht(e)]))}function pTt(t,e,n,i,a,r){var o,s,c;if(i-n<7)Ift(e,n,i,r);else if(pTt(e,t,s=n+a,c=s+((o=i+a)-s>>1),-a,r),pTt(e,t,c,o,-a,r),r.ue(t[c-1],t[c])<=0)for(;n<i;)DY(e,n++,t[s++]);else Udt(t,s,c,o,e,n,i,r)}function bTt(t,e){var n,i,a;for(a=new Lm,i=new Wf(t.c.a.b);i.a<i.c.c.length;)n=jz(J1(i),57),e.Lb(n)&&(Wz(a,new TC(n,!0)),Wz(a,new TC(n,!1)));Jyt(t.e),t2(a,t.d,new Kw(Cst(Hx(oie,1),zGt,679,0,[t.e])))}function mTt(t,e){var n,i,a,r,o,s,c;for(c=e.d,a=e.b.j,s=new Wf(c);s.a<s.c.c.length;)for(o=jz(J1(s),101),r=O5(AMe,JXt,25,a.c.length,16,1),YG(t.b,o,r),n=o.a.d.p-1,i=o.c.d.p;n!=i;)r[n=(n+1)%a.c.length]=!0}function yTt(t,e){for(t.r=new jot(t.p),Zh(t.r,t),jat(t.r.j,t.j),yK(t.j),MH(t.j,e),MH(t.r.e,e),nY(t),nY(t.r);0!=t.f.c.length;)HL(jz(OU(t.f,0),129));for(;0!=t.k.c.length;)HL(jz(OU(t.k,0),129));return t.r}function vTt(t,e,n){var i,a,r;if(a=eet(t.Tg(),e),(i=e-t.Ah())<0){if(!a)throw $m(new Pw(s7t+e+c7t));if(!a.Ij())throw $m(new Pw(i7t+a.ne()+a7t));(r=t.Yg(a))>=0?t.sh(r,n):_Ot(t,a,n)}else Lft(t,i,a,n)}function wTt(t){var e,n,i,a;if(n=jz(t,49).qh())try{if(i=null,(e=ILt((WE(),HIe),kjt(Fft(n))))&&(a=e.rh())&&(i=a.Wk(qw(n.e))),i&&i!=t)return wTt(i)}catch(r){if(!iO(r=dst(r),60))throw $m(r)}return t}function xTt(t,e,n){var i,a,r;if(r=null==e?0:t.b.se(e),0==(i=t.a.get(r)??new Array).length)t.a.set(r,i);else if(a=lut(t,e,i))return a.ed(n);return DY(i,i.length,new EC(e,n)),++t.c,oX(t.b),null}function RTt(t,e){var n;return c2(t.a),CW(t.a,(Cat(),Zxe),Zxe),CW(t.a,Kxe,Kxe),fU(n=new j2,Kxe,(Sft(),eRe)),HA(JIt(e,(qwt(),kRe)))!==HA((zlt(),cRe))&&fU(n,Kxe,Qxe),fU(n,Kxe,tRe),aI(t.a,n),IUt(t.a,e)}function _Tt(t){if(!t)return ux(),lee;var e=t.valueOf?t.valueOf():t;if(e!==t){var n=uee[typeof e];return n?n(e):wut(typeof e)}return t instanceof Array||t instanceof i.Array?new xh(t):new kh(t)}function kTt(t,e,n){var a,r,o;switch(o=t.o,(r=(a=jz(oZ(t.p,n),244)).i).b=EAt(a),r.a=kAt(a),r.b=i.Math.max(r.b,o.a),r.b>o.a&&!e&&(r.b=o.a),r.c=-(r.b-o.a)/2,n.g){case 1:r.d=-r.a;break;case 3:r.d=o.b}F$t(a),U$t(a)}function ETt(t,e,n){var a,r,o;switch(o=t.o,(r=(a=jz(oZ(t.p,n),244)).i).b=EAt(a),r.a=kAt(a),r.a=i.Math.max(r.a,o.b),r.a>o.b&&!e&&(r.a=o.b),r.d=-(r.a-o.b)/2,n.g){case 4:r.c=-r.b;break;case 2:r.c=o.a}F$t(a),U$t(a)}function CTt(t,e){var n,i,a,r,o;if(!e.dc()){if(a=jz(e.Xb(0),128),1==e.gc())return void wNt(t,a,a,1,0,e);for(n=1;n<e.gc();)(a.j||!a.o)&&(r=mwt(e,n))&&(i=jz(r.a,19).a,wNt(t,a,o=jz(r.b,128),n,i,e),n=i+1,a=o)}}function STt(t){var e,n,i,a;for(mL(a=new QF(t.d),new qa),wBt(),e=Cst(Hx(Zle,1),IZt,270,0,[$le,Ule,jle,Wle,Hle,zle,qle,Vle]),n=0,i=new Wf(a);i.a<i.c.c.length;)SDt(jz(J1(i),101),e[n%e.length]),++n}function TTt(t,e){var n,i,a,r;if(xBt(),e.b<2)return!1;for(i=n=jz(d4(r=cmt(e,0)),8);r.b!=r.d.c;){if(a=jz(d4(r),8),!Nrt(t,i)||!Nrt(t,a))return!1;i=a}return!(!Nrt(t,i)||!Nrt(t,n))}function ATt(t,e){var n,i,a,r,o;return n=Bnt(o=t,"x"),J9(new zb(e).a,n),i=Bnt(o,"y"),Q9(new Hb(e).a,i),a=Bnt(o,S7t),ttt(new Ub(e).a,a),r=Bnt(o,C7t),ett(new Vb(e).a,r),r}function DTt(t,e){gPt(t,e),1&t.b&&(t.a.a=null),2&t.b&&(t.a.f=null),4&t.b&&(t.a.g=null,t.a.i=null),16&t.b&&(t.a.d=null,t.a.e=null),8&t.b&&(t.a.b=null),32&t.b&&(t.a.j=null,t.a.c=null)}function ITt(t,e){var n,i;if(i=0,e.length>0)try{i=djt(e,FZt,NGt)}catch(a){throw iO(a=dst(a),127)?$m(new I9(a)):$m(a)}return!t.a&&(t.a=new km(t)),i<(n=t.a).i&&i>=0?jz(Yet(n,i),56):null}function LTt(t,e){if(t<0)return IPt($Gt,Cst(Hx(Dte,1),zGt,1,5,["index",nht(t)]));if(e<0)throw $m(new Pw(HGt+e));return IPt("%s (%s) must be less than size (%s)",Cst(Hx(Dte,1),zGt,1,5,["index",nht(t),nht(e)]))}function OTt(t){var e,n,i,a,r;if(null==t)return VGt;for(r=new Iot(jGt,"[","]"),i=0,a=(n=t).length;i<a;++i)e=n[i],r.a?oD(r.a,r.b):r.a=new uM(r.d),aD(r.a,""+e);return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function MTt(t){var e,n,i,a,r;if(null==t)return VGt;for(r=new Iot(jGt,"[","]"),i=0,a=(n=t).length;i<a;++i)e=n[i],r.a?oD(r.a,r.b):r.a=new uM(r.d),aD(r.a,""+e);return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function NTt(t){var e,n,i,a,r;if(null==t)return VGt;for(r=new Iot(jGt,"[","]"),i=0,a=(n=t).length;i<a;++i)e=n[i],r.a?oD(r.a,r.b):r.a=new uM(r.d),aD(r.a,""+e);return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function BTt(t){var e,n,i,a,r;if(null==t)return VGt;for(r=new Iot(jGt,"[","]"),i=0,a=(n=t).length;i<a;++i)e=n[i],r.a?oD(r.a,r.b):r.a=new uM(r.d),aD(r.a,""+e);return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function PTt(t,e){var n,i,a,r,o,s;for(n=t.b.c.length,a=OU(t.b,e);2*e+1<n&&(s=r=2*e+1,(o=r+1)<n&&t.a.ue(OU(t.b,o),OU(t.b,r))<0&&(s=o),i=s,!(t.a.ue(a,OU(t.b,i))<0));)i6(t.b,e,OU(t.b,i)),e=i;i6(t.b,e,a)}function FTt(t,e,n,a,r,o){var s,c,l,u,d;for(HA(t)===HA(n)&&(t=t.slice(e,e+r),e=0),l=n,c=e,u=e+r;c<u;)r=(s=i.Math.min(c+1e4,u))-c,(d=t.slice(c,s)).splice(0,0,a,o?r:0),Array.prototype.splice.apply(l,d),c=s,a+=r}function jTt(t,e,n){var i,a;return i=n.d,a=n.e,t.g[i.d]<=t.i[e.d]&&t.i[e.d]<=t.i[i.d]&&t.g[a.d]<=t.i[e.d]&&t.i[e.d]<=t.i[a.d]?!(t.i[i.d]<t.i[a.d]):t.i[i.d]<t.i[a.d]}function $Tt(t){var e,n,i,a,r,o,s;if((i=t.a.c.length)>0)for(o=t.c.d,a=vO(qP(new OT((s=t.d.d).a,s.b),o),1/(i+1)),r=new OT(o.a,o.b),n=new Wf(t.a);n.a<n.c.c.length;)(e=jz(J1(n),559)).d.a=r.a,e.d.b=r.b,VP(r,a)}function zTt(t,e,n){var a,r,o,s,c,l;for(l=BKt,o=new Wf(UOt(t.b));o.a<o.c.c.length;)for(r=jz(J1(o),168),c=new Wf(UOt(e.b));c.a<c.c.c.length;)s=jz(J1(c),168),a=Sst(r.a,r.b,s.a,s.b,n),l=i.Math.min(l,a);return l}function HTt(t,e){if(!e)throw $m(new gy);if(t.j=e,!t.d)switch(t.j.g){case 1:t.a.a=t.o.a/2,t.a.b=0;break;case 2:t.a.a=t.o.a,t.a.b=t.o.b/2;break;case 3:t.a.a=t.o.a/2,t.a.b=t.o.b;break;case 4:t.a.a=0,t.a.b=t.o.b/2}}function UTt(t,e){var n,a;return iO(e.g,10)&&jz(e.g,10).k==(oCt(),kse)?BKt:l4(e)?i.Math.max(0,t.b/2-.5):(n=l2(e))?(a=Hw(_B(ept(n,(zYt(),Tme)))),i.Math.max(0,a/2-.5)):BKt}function VTt(t,e){var n,a;return iO(e.g,10)&&jz(e.g,10).k==(oCt(),kse)?BKt:l4(e)?i.Math.max(0,t.b/2-.5):(n=l2(e))?(a=Hw(_B(ept(n,(zYt(),Tme)))),i.Math.max(0,a/2-.5)):BKt}function qTt(t){var e,n,i,a;for(a=Ldt(t.d,t.e).Kc();a.Ob();)for(i=jz(a.Pb(),11),n=new Wf(t.e==(wWt(),SAe)?i.e:i.g);n.a<n.c.c.length;)!d6(e=jz(J1(n),17))&&e.c.i.c!=e.d.i.c&&(BCt(t,e),++t.f,++t.c)}function WTt(t,e){var n,i;if(e.dc())return kK(),kK(),cne;for(Wz(i=new Lm,nht(FZt)),n=1;n<t.f;++n)null==t.a&&fPt(t),t.a[n]&&Wz(i,nht(n));return 1==i.c.length?(kK(),kK(),cne):(Wz(i,nht(NGt)),gzt(e,i))}function YTt(t,e){var n,i,a,r,o,s;n=axt(e,s=e.c.i.k!=(oCt(),Sse)?e.d:e.c).i,a=jz(NY(t.k,s),121),i=t.i[n.p].a,AF(s.i)<(n.c?x9(n.c.a,n,0):-1)?(r=a,o=i):(r=i,o=a),qMt(aE(iE(rE(nE(new $y,0),4),r),o))}function GTt(t,e,n){var i,a,r;if(n)for(a=((i=new cq(n.a.length)).b-i.a)*i.c<0?(tC(),RMe):new qO(i);a.Ob();)(r=Dvt(t,wAt(ftt(n,jz(a.Pb(),19).a))))&&(!e.b&&(e.b=new cF(NDe,e,4,7)),l8(e.b,r))}function ZTt(t,e,n){var i,a,r;if(n)for(a=((i=new cq(n.a.length)).b-i.a)*i.c<0?(tC(),RMe):new qO(i);a.Ob();)(r=Dvt(t,wAt(ftt(n,jz(a.Pb(),19).a))))&&(!e.c&&(e.c=new cF(NDe,e,5,8)),l8(e.c,r))}function KTt(t,e,n){var i,a;i=e.a&t.f,e.b=t.b[i],t.b[i]=e,a=e.f&t.f,e.d=t.c[a],t.c[a]=e,n?(e.e=n.e,e.e?e.e.c=e:t.a=e,e.c=n.c,e.c?e.c.e=e:t.e=e):(e.e=t.e,e.c=null,t.e?t.e.c=e:t.a=e,t.e=e),++t.i,++t.g}function XTt(t){var e,n,i;if(e=t.Pb(),!t.Ob())return e;for(i=rD(oD(new Cx,"expected one element but was: <"),e),n=0;n<4&&t.Ob();n++)rD((i.a+=jGt,i),t.Pb());throw t.Ob()&&(i.a+=", ..."),i.a+=">",$m(new Pw(i.a))}function JTt(t,e){var n;e.d?e.d.b=e.b:t.a=e.b,e.b?e.b.d=e.d:t.e=e.d,e.e||e.c?(--(n=jz(NY(t.b,e.a),283)).a,e.e?e.e.c=e.c:n.b=e.c,e.c?e.c.e=e.e:n.c=e.e):((n=jz(b7(t.b,e.a),283)).a=0,++t.c),--t.d}function QTt(t){var e,n;return n=-t.a,e=Cst(Hx(SMe,1),YZt,25,15,[43,48,48,48,48]),n<0&&(e[0]=45,n=-n),e[1]=e[1]+((n/60|0)/10|0)&ZZt,e[2]=e[2]+(n/60|0)%10&ZZt,e[3]=e[3]+(n%60/10|0)&ZZt,e[4]=e[4]+n%10&ZZt,$pt(e,0,e.length)}function tAt(t,e,n){var i,a;for(i=e.d,a=n.d;i.a-a.a==0&&i.b-a.b==0;)i.a+=zLt(t,26)*iXt+zLt(t,27)*aXt-.5,i.b+=zLt(t,26)*iXt+zLt(t,27)*aXt-.5,a.a+=zLt(t,26)*iXt+zLt(t,27)*aXt-.5,a.b+=zLt(t,26)*iXt+zLt(t,27)*aXt-.5}function eAt(t){var e,n,i,a;for(t.g=new zft(jz(yY(MAe),290)),i=0,wWt(),n=cAe,e=0;e<t.j.c.length;e++)(a=jz(OU(t.j,e),11)).j!=n&&(i!=e&&mV(t.g,n,new nA(nht(i),nht(e))),n=a.j,i=e);mV(t.g,n,new nA(nht(i),nht(e)))}function nAt(t){var e,n,i,a,r;for(n=0,e=new Wf(t.b);e.a<e.c.c.length;)for(a=new Wf(jz(J1(e),29).a);a.a<a.c.c.length;)for((i=jz(J1(a),10)).p=n++,r=new Wf(i.j);r.a<r.c.c.length;)jz(J1(r),11).p=n++}function iAt(t,e,n,i,a){var r,o,s,c;if(e)for(o=e.Kc();o.Ob();)for(c=aPt(jz(o.Pb(),10),(rit(),Hye),n).Kc();c.Ob();)s=jz(c.Pb(),11),(r=jz(zA(AX(a.f,s)),112))||(r=new jot(t.d),i.c[i.c.length]=r,qSt(r,s,a))}function aAt(t,e){var n,i,a;if(!(a=jUt((TSt(),KLe),t.Tg(),e)))throw $m(new Pw(i7t+e.ne()+a7t));XE(),jz(a,66).Oj()||(a=X1(j9(KLe,a))),i=jz((n=t.Yg(a))>=0?t._g(n,!0,!0):aDt(t,a,!0),153),jz(i,215).ol(e)}function rAt(t){var e,n;return t>-0x800000000000&&t<0x800000000000?0==t?0:((e=t<0)&&(t=-t),n=CJ(i.Math.floor(i.Math.log(t)/.6931471805599453)),(!e||t!=i.Math.pow(2,n))&&++n,n):Got(uot(t))}function oAt(t){var e,n,i,a,r,o,s;for(r=new lI,n=new Wf(t);n.a<n.c.c.length;)o=(e=jz(J1(n),129)).a,s=e.b,!r.a._b(o)&&!r.a._b(s)&&(a=o,i=s,o.e.b+o.j.b>2&&s.e.b+s.j.b<=2&&(a=s,i=o),r.a.zc(a,r),a.q=i);return r}function sAt(t,e){var n,i,a;return Hot(i=new Iyt(t),e),lct(i,(lGt(),Yde),e),lct(i,(zYt(),tme),(Z_t(),WTe)),lct(i,vpe,(fyt(),AEe)),Fh(i,(oCt(),kse)),CQ(n=new SCt,i),HTt(n,(wWt(),SAe)),CQ(a=new SCt,i),HTt(a,sAe),i}function cAt(t){switch(t.g){case 0:return new Lw((sit(),Ave));case 1:return new hd;case 2:return new vd;default:throw $m(new Pw("No implementation is available for the crossing minimizer "+(null!=t.f?t.f:""+t.g)))}}function lAt(t,e){var n,i,a,r;for(t.c[e.p]=!0,Wz(t.a,e),r=new Wf(e.j);r.a<r.c.c.length;)for(n=new m7((a=jz(J1(r),11)).b);yL(n.a)||yL(n.b);)i=Qpt(a,jz(yL(n.a)?J1(n.a):J1(n.b),17)).i,t.c[i.p]||lAt(t,i)}function uAt(t){var e,n,a,r,o,s,c;for(s=0,n=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));n.e!=n.i.gc();)c=(e=jz(wmt(n),33)).g,r=e.f,a=i.Math.sqrt(c*c+r*r),s=i.Math.max(a,s),o=uAt(e),s=i.Math.max(o,s);return s}function dAt(){dAt=D,iAe=new qT("OUTSIDE",0),eAe=new qT("INSIDE",1),nAe=new qT("NEXT_TO_PORT_IF_POSSIBLE",2),tAe=new qT("ALWAYS_SAME_SIDE",3),QTe=new qT("ALWAYS_OTHER_SAME_SIDE",4),aAe=new qT("SPACE_EFFICIENT",5)}function hAt(t,e,n){var i,a,r,o;return Iit(i=B2(t,(QR(),a=new wv,n&&QOt(a,n),a),e),N2(e,H7t)),Ekt(e,i),sLt(e,i),ATt(e,i),r=L2(e,"ports"),COt((o=new pA(t,i)).a,o.b,r),Mct(t,e,i),rst(t,e,i),i}function fAt(t){var e,n;return n=-t.a,e=Cst(Hx(SMe,1),YZt,25,15,[43,48,48,58,48,48]),n<0&&(e[0]=45,n=-n),e[1]=e[1]+((n/60|0)/10|0)&ZZt,e[2]=e[2]+(n/60|0)%10&ZZt,e[4]=e[4]+(n%60/10|0)&ZZt,e[5]=e[5]+n%10&ZZt,$pt(e,0,e.length)}function gAt(t){var e;return e=Cst(Hx(SMe,1),YZt,25,15,[71,77,84,45,48,48,58,48,48]),t<=0&&(e[3]=43,t=-t),e[4]=e[4]+((t/60|0)/10|0)&ZZt,e[5]=e[5]+(t/60|0)%10&ZZt,e[7]=e[7]+(t%60/10|0)&ZZt,e[8]=e[8]+t%10&ZZt,$pt(e,0,e.length)}function pAt(t){var e,n,i,a,r;if(null==t)return VGt;for(r=new Iot(jGt,"[","]"),i=0,a=(n=t).length;i<a;++i)e=n[i],r.a?oD(r.a,r.b):r.a=new uM(r.d),aD(r.a,""+bq(e));return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function bAt(t,e){var n,a,r;for(r=NGt,a=new Wf(wft(e));a.a<a.c.c.length;)(n=jz(J1(a),213)).f&&!t.c[n.c]&&(t.c[n.c]=!0,r=i.Math.min(r,bAt(t,Oft(n,e))));return t.i[e.d]=t.j,t.g[e.d]=i.Math.min(r,t.j++),t.g[e.d]}function mAt(t,e){var n,i,a;for(a=jz(jz(c7(t.r,e),21),84).Kc();a.Ob();)(i=jz(a.Pb(),111)).e.b=(n=i.b).Xe((cGt(),aSe))?n.Hf()==(wWt(),cAe)?-n.rf().b-Hw(_B(n.We(aSe))):Hw(_B(n.We(aSe))):n.Hf()==(wWt(),cAe)?-n.rf().b:0}function yAt(t){var e,n,i,a,r,o,s;for(n=GI(t.e),r=vO(jN(jL(YI(t.e)),t.d*t.a,t.c*t.b),-.5),e=n.a-r.a,a=n.b-r.b,s=0;s<t.c;s++){for(i=e,o=0;o<t.d;o++)Yft(t.e,new VZ(i,a,t.a,t.b))&&jPt(t,o,s,!1,!0),i+=t.a;a+=t.b}}function vAt(t){var e,n,i;if(zw(RB(JIt(t,(cGt(),kCe))))){for(i=new Lm,n=new oq(XO(gOt(t).a.Kc(),new u));gIt(n);)ZAt(e=jz(V6(n),79))&&zw(RB(JIt(e,ECe)))&&(i.c[i.c.length]=e);return i}return kK(),kK(),cne}function wAt(t){var e;if(e=!1,iO(t,204))return e=!0,jz(t,204).a;if(!e&&iO(t,258)&&jz(t,258).a%1==0)return e=!0,nht(GD(jz(t,258).a));throw $m(new tx("Id must be a string or an integer: '"+t+"'."))}function xAt(t,e){var n,i,a,r,o,s;for(r=null,a=new nW((!t.a&&(t.a=new km(t)),t.a));hDt(a);)if(Kzt(o=(n=jz(rOt(a),56)).Tg()),null!=(i=(s=o.o)&&n.mh(s)?pF(ost(s),n.ah(s)):null)&&mF(i,e)){r=n;break}return r}function RAt(t,e,n){var i,a,r,o,s;if(dit(n,"occurrences"),0==n)return(s=jz(ddt(TK(t.a),e),14))?s.gc():0;if(!(o=jz(ddt(TK(t.a),e),14)))return 0;if(n>=(r=o.gc()))o.$b();else for(a=o.Kc(),i=0;i<n;i++)a.Pb(),a.Qb();return r}function _At(t,e,n){var i,a,r;return dit(n,"oldCount"),dit(0,"newCount"),((i=jz(ddt(TK(t.a),e),14))?i.gc():0)==n&&(dit(0,"count"),(r=-((a=jz(ddt(TK(t.a),e),14))?a.gc():0))>0?hx():r<0&&RAt(t,e,-r),!0)}function kAt(t){var e,n,i,a,r,o;if(o=0,0==t.b){for(e=0,a=0,r=(i=Wyt(t,!0)).length;a<r;++a)(n=i[a])>0&&(o+=n,++e);e>1&&(o+=t.c*(e-1))}else o=Bx(ert(IZ(AZ(IW(t.a),new kt),new Et)));return o>0?o+t.n.d+t.n.a:0}function EAt(t){var e,n,i,a,r,o;if(o=0,0==t.b)o=Bx(ert(IZ(AZ(IW(t.a),new Rt),new _t)));else{for(e=0,a=0,r=(i=Yyt(t,!0)).length;a<r;++a)(n=i[a])>0&&(o+=n,++e);e>1&&(o+=t.c*(e-1))}return o>0?o+t.n.b+t.n.c:0}function CAt(t,e){var n,a,r,o;for(n=(o=jz(oZ(t.b,e),124)).a,r=jz(jz(c7(t.r,e),21),84).Kc();r.Ob();)(a=jz(r.Pb(),111)).c&&(n.a=i.Math.max(n.a,YH(a.c)));if(n.a>0)switch(e.g){case 2:o.n.c=t.s;break;case 4:o.n.b=t.s}}function SAt(t,e){var n,i,a;return 0==(n=jz(yEt(e,(uPt(),Xre)),19).a-jz(yEt(t,Xre),19).a)?(i=qP(jL(jz(yEt(t,(kat(),roe)),8)),jz(yEt(t,ooe),8)),a=qP(jL(jz(yEt(e,roe),8)),jz(yEt(e,ooe),8)),Cht(i.a*i.b,a.a*a.b)):n}function TAt(t,e){var n,i,a;return 0==(n=jz(yEt(e,(SIt(),Dxe)),19).a-jz(yEt(t,Dxe),19).a)?(i=qP(jL(jz(yEt(t,(HUt(),Xwe)),8)),jz(yEt(t,Jwe),8)),a=qP(jL(jz(yEt(e,Xwe),8)),jz(yEt(e,Jwe),8)),Cht(i.a*i.b,a.a*a.b)):n}function AAt(t){var e,n;return(n=new Cx).a+="e_",null!=(e=Wot(t))&&(n.a+=""+e),t.c&&t.d&&(oD((n.a+=" ",n),bwt(t.c)),oD(rD((n.a+="[",n),t.c.i),"]"),oD((n.a+=e1t,n),bwt(t.d)),oD(rD((n.a+="[",n),t.d.i),"]")),n.a}function DAt(t){switch(t.g){case 0:return new gd;case 1:return new pd;case 2:return new fd;case 3:return new bd;default:throw $m(new Pw("No implementation is available for the layout phase "+(null!=t.f?t.f:""+t.g)))}}function IAt(t,e,n,a,r){var o;switch(o=0,r.g){case 1:o=i.Math.max(0,e.b+t.b-(n.b+a));break;case 3:o=i.Math.max(0,-t.b-a);break;case 2:o=i.Math.max(0,-t.a-a);break;case 4:o=i.Math.max(0,e.a+t.a-(n.a+a))}return o}function LAt(t,e,n){var i,a,r;if(n)for(r=((i=new cq(n.a.length)).b-i.a)*i.c<0?(tC(),RMe):new qO(i);r.Ob();)a=O2(n,jz(r.Pb(),19).a),L7t in a.a||O7t in a.a?cFt(t,a,e):RYt(t,a,e),EO(jz(NY(t.b,Zpt(a)),79))}function OAt(t){var e,n;switch(t.b){case-1:return!0;case 0:return(n=t.t)>1||-1==n||(e=Txt(t))&&(XE(),e.Cj()==R8t)?(t.b=-1,!0):(t.b=1,!1);default:return!1}}function MAt(t,e){var n,i,a,r,o;for(!e.s&&(e.s=new tW(PIe,e,21,17)),r=null,a=0,o=(i=e.s).i;a<o;++a)switch(n=jz(Yet(i,a),170),MG(j9(t,n))){case 2:case 3:!r&&(r=new Lm),r.c[r.c.length]=n}return r||(kK(),kK(),cne)}function NAt(t,e){var n,i,a,r;if(ZYt(t),0!=t.c||123!=t.a)throw $m(new ax(wGt((rL(),C5t))));if(r=112==e,i=t.d,(n=uN(t.i,125,i))<0)throw $m(new ax(wGt((rL(),S5t))));return a=lN(t.i,i,n),t.d=n+1,d8(a,r,512==(512&t.e))}function BAt(t){var e;if((e=jz(yEt(t,(zYt(),zpe)),314))==(Ait(),lue))throw $m(new ix("The hierarchy aware processor "+e+" in child node "+t+" is only allowed if the root node specifies the same hierarchical processor."))}function PAt(t,e){var n,i,a,r;for(Hj(),n=null,a=e.Kc();a.Ob();)!(i=jz(a.Pb(),128)).o&&(Wz((r=new Czt(FL(i.a),dH(i.a),null,jz(i.d.a.ec().Kc().Pb(),17))).c,i.a),t.c[t.c.length]=r,n&&Wz(n.d,r),n=r)}function FAt(t,e){var n,i,a;if(e)if(4&e.i)for(i="[]",n=e.c;;n=n.c){if(!(4&n.i)){zit(t,a=Vw((xB(n),n.o+i))),Mnt(t,a);break}i+="[]"}else zit(t,a=Vw((xB(e),e.o))),Mnt(t,a);else zit(t,null),Mnt(t,null);t.yk(e)}function jAt(t,e,n,i,a){var r,o,s,c;return HA(c=cB(t,jz(a,56)))!==HA(a)?(s=jz(t.g[n],72),wO(t,n,ckt(t,n,r=X4(e,c))),mI(t.e)&&(P_t(o=IX(t,9,r.ak(),a,c,i,!1),new L9(t.e,9,t.c,s,r,i,!1)),D9(o)),c):a}function $At(t,e,n){var i,a,r,o,s,c;for(i=jz(c7(t.c,e),15),a=jz(c7(t.c,n),15),r=i.Zc(i.gc()),o=a.Zc(a.gc());r.Sb()&&o.Sb();)if((s=jz(r.Ub(),19))!=(c=jz(o.Ub(),19)))return xL(s.a,c.a);return r.Ob()||o.Ob()?r.Ob()?1:-1:0}function zAt(t,e){var n,i;try{return q1(t.a,e)}catch(a){if(iO(a=dst(a),32)){try{if(i=djt(e,FZt,NGt),n=YR(t.a),i>=0&&i<n.length)return n[i]}catch(r){if(!iO(r=dst(r),127))throw $m(r)}return null}throw $m(a)}}function HAt(t,e){var n,i,a;if(a=jUt((TSt(),KLe),t.Tg(),e))return XE(),jz(a,66).Oj()||(a=X1(j9(KLe,a))),i=jz((n=t.Yg(a))>=0?t._g(n,!0,!0):aDt(t,a,!0),153),jz(i,215).ll(e);throw $m(new Pw(i7t+e.ne()+o7t))}function UAt(){var t;return QE(),YLe?jz(ILt((WE(),HIe),G8t),1939):(ND(zte,new Tl),QVt(),t=jz(iO(kJ((WE(),HIe),G8t),547)?kJ(HIe,G8t):new VG,547),YLe=!0,sGt(t),_Gt(t),YG((YE(),KIe),t,new Vc),mQ(HIe,G8t,t),t)}function VAt(t,e){var n,i,a,r;t.j=-1,mI(t.e)?(n=t.i,r=0!=t.i,i7(t,e),i=new L9(t.e,3,t.c,null,e,n,r),a=e.Qk(t.e,t.c,null),(a=T_t(t,e,a))?(a.Ei(i),a.Fi()):hot(t.e,i)):(i7(t,e),(a=e.Qk(t.e,t.c,null))&&a.Fi())}function qAt(t,e){var n,i,a;if(a=0,(i=e[0])>=t.length)return-1;for(d1(i,t.length),n=t.charCodeAt(i);n>=48&&n<=57&&(a=10*a+(n-48),!(++i>=t.length));)d1(i,t.length),n=t.charCodeAt(i);return i>e[0]?e[0]=i:a=-1,a}function WAt(t){var e,n,a,r,o;return n=r=jz(t.a,19).a,a=o=jz(t.b,19).a,e=i.Math.max(i.Math.abs(r),i.Math.abs(o)),r<=0&&r==o?(n=0,a=o-1):r==-e&&o!=e?(n=o,a=r,o>=0&&++n):(n=-o,a=r),new nA(nht(n),nht(a))}function YAt(t,e,n,i){var a,r,o,s,c,l;for(a=0;a<e.o;a++)for(r=a-e.j+n,o=0;o<e.p;o++)if(c=r,l=s=o-e.k+i,c+=t.j,l+=t.k,c>=0&&l>=0&&c<t.o&&l<t.p&&(!yvt(e,a,o)&&nvt(t,r,s)||mvt(e,a,o)&&!ivt(t,r,s)))return!0;return!1}function GAt(t,e,n){var i,a,r,o;r=t.c,o=t.d,a=(Dct(Cst(Hx(EEe,1),cZt,8,0,[r.i.n,r.n,r.a])).b+Dct(Cst(Hx(EEe,1),cZt,8,0,[o.i.n,o.n,o.a])).b)/2,i=null,i=r.j==(wWt(),sAe)?new OT(e+r.i.c.c.a+n,a):new OT(e-n,a),BN(t.a,0,i)}function ZAt(t){var e,n,i;for(e=null,n=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c)])));gIt(n);)if(i=Ckt(jz(V6(n),82)),e){if(e!=i)return!1}else e=i;return!0}function KAt(t,e,n){var i;if(++t.j,e>=t.i)throw $m(new Aw(o5t+e+s5t+t.i));if(n>=t.i)throw $m(new Aw(c5t+n+s5t+t.i));return i=t.g[n],e!=n&&(e<n?rHt(t.g,e,t.g,e+1,n-e):rHt(t.g,n+1,t.g,n,e-n),DY(t.g,e,i),t.ei(e,i,n),t.ci()),i}function XAt(t,e,n){var i;if(i=jz(t.c.xc(e),14))return!!i.Fc(n)&&(++t.d,!0);if((i=t.ic(e)).Fc(n))return++t.d,t.c.zc(e,i),!0;throw $m(new g6("New Collection violated the Collection spec"))}function JAt(t){var e,n,i;return t<0?0:0==t?32:(n=16-(e=(i=-(t>>16))>>16&16),n+=e=(i=(t>>=e)-256)>>16&8,n+=e=(i=(t<<=e)-FKt)>>16&4,(n+=e=(i=(t<<=e)-lZt)>>16&2)+2-(e=(i=(t<<=e)>>14)&~(i>>1)))}function QAt(t){var e,n,i,a;for(_K(),kre=new Lm,_re=new Om,Rre=new Lm,!t.a&&(t.a=new tW(UDe,t,10,11)),MWt(e=t.a),a=new AO(e);a.e!=a.i.gc();)i=jz(wmt(a),33),-1==x9(kre,i,0)&&(n=new Lm,Wz(Rre,n),Bbt(i,n));return Rre}function tDt(t,e,n){var i,a,r,o;t.a=n.b.d,iO(e,352)?(t6(r=HCt(a=aBt(jz(e,79),!1,!1)),i=new Lg(t)),G$t(r,a),null!=e.We((cGt(),TCe))&&t6(jz(e.We(TCe),74),i)):((o=jz(e,470)).Hg(o.Dg()+t.a.a),o.Ig(o.Eg()+t.a.b))}function eDt(t,e){var n,a,r,o,s,c,l,u;for(u=Hw(_B(yEt(e,(zYt(),Lme)))),l=t[0].n.a+t[0].o.a+t[0].d.c+u,c=1;c<t.length;c++)a=t[c].n,r=t[c].o,n=t[c].d,(o=a.a-n.b-l)<0&&(a.a-=o),(s=e.f).a=i.Math.max(s.a,a.a+r.a),l=a.a+r.a+n.c+u}function nDt(t,e){var n,i,a,r,o,s;return i=jz(jz(NY(t.g,e.a),46).a,65),a=jz(jz(NY(t.g,e.b),46).a,65),(n=QHt(r=i.b,o=a.b))>=0?n:(s=uG(qP(new OT(o.c+o.b/2,o.d+o.a/2),new OT(r.c+r.b/2,r.d+r.a/2))),-(Kjt(r,o)-1)*s)}function iDt(t,e,n){var i;Kk(new NU(null,(!n.a&&(n.a=new tW(PDe,n,6,6)),new h1(n.a,16))),new tA(t,e)),Kk(new NU(null,(!n.n&&(n.n=new tW(HDe,n,1,7)),new h1(n.n,16))),new eA(t,e)),(i=jz(JIt(n,(cGt(),TCe)),74))&&Kat(i,t,e)}function aDt(t,e,n){var i,a,r;if(r=jUt((TSt(),KLe),t.Tg(),e))return XE(),jz(r,66).Oj()||(r=X1(j9(KLe,r))),a=jz((i=t.Yg(r))>=0?t._g(i,!0,!0):aDt(t,r,!0),153),jz(a,215).hl(e,n);throw $m(new Pw(i7t+e.ne()+o7t))}function rDt(t,e,n,i){var a,r,o,s,c;if(a=t.d[e])if(r=a.g,c=a.i,null!=i){for(s=0;s<c;++s)if((o=jz(r[s],133)).Sh()==n&&Odt(i,o.cd()))return o}else for(s=0;s<c;++s)if(HA((o=jz(r[s],133)).cd())===HA(i))return o;return null}function oDt(t,e){var n;if(e<0)throw $m(new Tw("Negative exponent"));if(0==e)return Jee;if(1==e||cgt(t,Jee)||cgt(t,nne))return t;if(!uIt(t,0)){for(n=1;!uIt(t,n);)++n;return Ltt(mgt(n*e),oDt(U6(t,n),e))}return ykt(t,e)}function sDt(t,e){var n,i,a;if(HA(t)===HA(e))return!0;if(null==t||null==e||t.length!=e.length)return!1;for(n=0;n<t.length;++n)if(i=t[n],a=e[n],!(HA(i)===HA(a)||null!=i&&Odt(i,a)))return!1;return!0}function cDt(t){var e,n,i;for(vE(),this.b=Goe,this.c=(jdt(),$Se),this.f=(yE(),Uoe),this.a=t,Qx(this,new Se),wMt(this),i=new Wf(t.b);i.a<i.c.c.length;)(n=jz(J1(i),81)).d||(e=new Cbt(Cst(Hx(Yoe,1),zGt,81,0,[n])),Wz(t.a,e))}function lDt(t,e,n){var i,a,r,o,s,c;if(!t||0==t.c.length)return null;for(r=new BX(e,!n),a=new Wf(t);a.a<a.c.c.length;)i=jz(J1(a),70),qCt(r,(gE(),new jg(i)));return(o=r.i).a=(c=r.n,r.e.b+c.d+c.a),o.b=(s=r.n,r.e.a+s.b+s.c),r}function uDt(t){var e,n,i,a,r,o,s;for(cI(s=J0(t.a),new Sn),n=null,r=0,o=(a=s).length;r<o&&(i=a[r]).k==(oCt(),kse);++r)((e=jz(yEt(i,(lGt(),Gde)),61))==(wWt(),SAe)||e==sAe)&&(n&&jz(yEt(n,ihe),15).Fc(i),n=i)}function dDt(t,e,n){var i,a,r,o,s,c;u1(e,t.c.length),s=jz(t.c[e],329),s7(t,e),s.b/2>=n&&(i=e,r=(c=(s.c+s.a)/2)-n,s.c<=c-n&&vV(t,i++,new vz(s.c,r)),(o=c+n)<=s.a&&(a=new vz(o,s.a),IQ(i,t.c.length),_C(t.c,i,a)))}function hDt(t){var e;if(t.c||null!=t.g){if(null==t.g)return!0;if(0==t.i)return!1;e=jz(t.g[t.i-1],47)}else t.d=t.si(t.f),l8(t,t.d),e=t.d;return e==t.b&&null.km>=null.jm()?(rOt(t),hDt(t)):e.Ob()}function fDt(t,e,n){var i,a,r,o;if(!(o=n)&&(o=IH(new qv,0)),Akt(o,HQt,1),IVt(t.c,e),1==(r=BVt(t.a,e)).gc())GHt(jz(r.Xb(0),37),o);else for(a=1/r.gc(),i=r.Kc();i.Ob();)GHt(jz(i.Pb(),37),yrt(o,a));xx(t.a,r,e),jBt(e),zCt(o)}function gDt(t){if(this.a=t,t.c.i.k==(oCt(),kse))this.c=t.c,this.d=jz(yEt(t.c.i,(lGt(),Gde)),61);else{if(t.d.i.k!=kse)throw $m(new Pw("Edge "+t+" is not an external edge."));this.c=t.d,this.d=jz(yEt(t.d.i,(lGt(),Gde)),61)}}function pDt(t,e){var n,i;i=t.b,t.b=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,3,i,t.b)),e?e!=t&&(Oat(t,e.zb),Int(t,e.d),jit(t,null==(n=e.c??e.zb)||mF(n,e.zb)?null:n)):(Oat(t,null),Int(t,0),jit(t,null))}function bDt(t){var e,n;if(t.f){for(;t.n<t.o;){if(iO(n=(e=jz(t.j?t.j.pi(t.n):t.k.Xb(t.n),72)).ak(),99)&&jz(n,18).Bb&l7t&&(!t.e||n.Gj()!=IDe||0!=n.aj())&&null!=e.dd())return!0;++t.n}return!1}return t.n<t.o}function mDt(t,e){var n;this.e=(WY(),yY(t),WY(),Ogt(t)),this.c=(yY(e),Ogt(e)),aM(this.e.Hd().dc()==this.c.Hd().dc()),this.d=mft(this.e),this.b=mft(this.c),n=vU(Dte,[cZt,zGt],[5,1],5,[this.e.Hd().gc(),this.c.Hd().gc()],2),this.a=n,git(this)}function yDt(t){return!Jte&&(Jte=ZWt()),'"'+t.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 SJ(t)}))+'"'}function vDt(t){var e,n;for(CK(),this.b=lie,this.c=die,this.g=(pE(),sie),this.d=(jdt(),$Se),this.a=t,vMt(this),n=new Wf(t.b);n.a<n.c.c.length;)!(e=jz(J1(n),57)).a&&SM(Wnt(new qy,Cst(Hx(cie,1),zGt,57,0,[e])),t),e.e=new gX(e.d)}function wDt(t){var e,n,i,a,r;for(a=t.e.c.length,i=O5(Bte,QJt,15,a,0,1),r=new Wf(t.e);r.a<r.c.c.length;)i[jz(J1(r),144).b]=new Zk;for(n=new Wf(t.c);n.a<n.c.c.length;)i[(e=jz(J1(n),282)).c.b].Fc(e),i[e.d.b].Fc(e);return i}function xDt(t){var e,n,i,a,r,o;for(o=sN(t.c.length),a=new Wf(t);a.a<a.c.c.length;){for(i=jz(J1(a),10),r=new Ny,n=new oq(XO(dft(i).a.Kc(),new u));gIt(n);)(e=jz(V6(n),17)).c.i==e.d.i||RW(r,e.d.i);o.c[o.c.length]=r}return o}function RDt(t,e){var n,i,a,r,o;if(e>=(o=null==(n=jz(vot(t.a,4),126))?0:n.length))throw $m(new QP(e,o));return a=n[e],1==o?i=null:(rHt(n,0,i=O5(hIe,n8t,415,o-1,0,1),0,e),(r=o-e-1)>0&&rHt(n,e+1,i,e,r)),jbt(t,i),eTt(t,e,a),a}function _Dt(){_Dt=D,lOe=jz(Yet(GK((i_(),fOe).qb),6),34),oOe=jz(Yet(GK(fOe.qb),3),34),sOe=jz(Yet(GK(fOe.qb),4),34),cOe=jz(Yet(GK(fOe.qb),5),18),s_t(lOe),s_t(oOe),s_t(sOe),s_t(cOe),uOe=new Kw(Cst(Hx(PIe,1),O8t,170,0,[lOe,oOe]))}function kDt(t,e){var n;this.d=new uv,this.b=e,this.e=new hI(e.qf()),n=t.u.Hc((dAt(),nAe)),t.u.Hc(eAe)?t.D?this.a=n&&!e.If():this.a=!0:t.u.Hc(iAe)?this.a=!!n&&!(e.zf().Kc().Ob()||e.Bf().Kc().Ob()):this.a=!1}function EDt(t,e){var n,i,a,r;for(n=t.o.a,r=jz(jz(c7(t.r,e),21),84).Kc();r.Ob();)(a=jz(r.Pb(),111)).e.a=(i=a.b).Xe((cGt(),aSe))?i.Hf()==(wWt(),SAe)?-i.rf().a-Hw(_B(i.We(aSe))):n+Hw(_B(i.We(aSe))):i.Hf()==(wWt(),SAe)?-i.rf().a:n}function CDt(t,e){var n,i,a;n=jz(yEt(t,(zYt(),Vpe)),103),a=jz(JIt(e,rme),61),(i=jz(yEt(t,tme),98))!=(Z_t(),ZTe)&&i!=KTe?a==(wWt(),CAe)&&(a=A$t(e,n))==CAe&&(a=lgt(n)):a=WHt(e)>0?lgt(n):_ht(lgt(n)),Kmt(e,rme,a)}function SDt(t,e){var n,i,a,r,o;for(o=t.j,e.a!=e.b&&mL(o,new Wa),a=o.c.length/2|0,i=0;i<a;i++)u1(i,o.c.length),(r=jz(o.c[i],113)).c&&HTt(r.d,e.a);for(n=a;n<o.c.length;n++)u1(n,o.c.length),(r=jz(o.c[n],113)).c&&HTt(r.d,e.b)}function TDt(t,e,n){var i,a,r;return i=t.c[e.c.p][e.p],a=t.c[n.c.p][n.p],null!=i.a&&null!=a.a?((r=Rq(i.a,a.a))<0?oFt(t,e,n):r>0&&oFt(t,n,e),r):null!=i.a?(oFt(t,e,n),-1):null!=a.a?(oFt(t,n,e),1):0}function ADt(t,e){var n,i,a,r;t.ej()?(n=t.Vi(),r=t.fj(),++t.j,t.Hi(n,t.oi(n,e)),i=t.Zi(3,null,e,n,r),t.bj()&&(a=t.cj(e,null))?(a.Ei(i),a.Fi()):t.$i(i)):(tG(t,e),t.bj()&&(a=t.cj(e,null))&&a.Fi())}function DDt(t,e){var n,i,a,r,o;for(o=rNt(t.e.Tg(),e),a=new bc,n=jz(t.g,119),r=t.i;--r>=0;)i=n[r],o.rl(i.ak())&&l8(a,i);!rYt(t,a)&&mI(t.e)&&Iy(t,e.$j()?IX(t,6,e,(kK(),cne),null,-1,!1):IX(t,e.Kj()?2:1,e,null,null,-1,!1))}function IDt(){var t,e;for(IDt=D,rne=O5(sne,cZt,91,32,0,1),one=O5(sne,cZt,91,32,0,1),t=1,e=0;e<=18;e++)rne[e]=Qbt(t),one[e]=Qbt(yq(t,e)),t=aft(t,5);for(;e<one.length;e++)rne[e]=Ltt(rne[e-1],rne[1]),one[e]=Ltt(one[e-1],(ABt(),tne))}function LDt(t,e){var n,i,a,r,o;return t.a==(XEt(),ade)||(r=e.a.c,n=e.a.c+e.a.b,!(e.j&&(i=e.A,o=i.c.c.a-i.o.a/2,a=r-(i.n.a+i.o.a),a>o)||e.q&&(i=e.C,o=i.c.c.a-i.o.a/2,a=i.n.a-n,a>o)))}function ODt(t,e){Akt(e,"Partition preprocessing",1),Kk(jz(E3(AZ(htt(AZ(new NU(null,new h1(t.a,16)),new yi),new vi),new wi),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15).Oc(),new xi),zCt(e)}function MDt(t){var e,n,i,a,r,o;for(zQ(),n=new b3,i=new Wf(t.e.b);i.a<i.c.c.length;)for(r=new Wf(jz(J1(i),29).a);r.a<r.c.c.length;)a=jz(J1(r),10),(e=jz(utt(n,o=t.g[a.p]),15))||Xbt(n,o,e=new Lm),e.Fc(a);return n}function NDt(t,e){var n,i,a,r,o;for(a=e.b.b,t.a=O5(Bte,QJt,15,a,0,1),t.b=O5(AMe,JXt,25,a,16,1),o=cmt(e.b,0);o.b!=o.d.c;)r=jz(d4(o),86),t.a[r.g]=new Zk;for(i=cmt(e.a,0);i.b!=i.d.c;)n=jz(d4(i),188),t.a[n.b.g].Fc(n),t.a[n.c.g].Fc(n)}function BDt(t){var e;return 64&t.Db?CLt(t):((e=new lM(CLt(t))).a+=" (startX: ",b_(e,t.j),e.a+=", startY: ",b_(e,t.k),e.a+=", endX: ",b_(e,t.b),e.a+=", endY: ",b_(e,t.c),e.a+=", identifier: ",iD(e,t.d),e.a+=")",e.a)}function PDt(t){var e;return 64&t.Db?wdt(t):((e=new lM(wdt(t))).a+=" (ordered: ",y_(e,0!=(256&t.Bb)),e.a+=", unique: ",y_(e,0!=(512&t.Bb)),e.a+=", lowerBound: ",m_(e,t.s),e.a+=", upperBound: ",m_(e,t.t),e.a+=")",e.a)}function FDt(t,e,n,i,a,r,o,s){var c;return iO(t.Cb,88)&&DTt(E6(jz(t.Cb,88)),4),Oat(t,n),t.f=i,Iht(t,a),Oht(t,r),Dht(t,o),Lht(t,!1),Qdt(t,!0),Hht(t,s),Kdt(t,!0),Lnt(t,0),t.b=0,Ont(t,1),(c=zkt(t,e,null))&&c.Fi(),Uht(t,!1),t}function jDt(t,e){var n,a;return jz(kJ(t.a,e),512)||(n=new y6(e),v6(),OF(n,jDt(t,lN(a=qne?null:n.c,0,i.Math.max(0,mM(a,Kkt(46)))))),0==(qne?null:n.c).length&&UB(n,new Y),mQ(t.a,qne?null:n.c,n),n)}function $Dt(t,e){var n;t.b=e,t.g=new Lm,n=XDt(t.b),t.e=n,t.f=n,t.c=zw(RB(yEt(t.b,(Fxt(),wie)))),t.a=_B(yEt(t.b,(cGt(),iCe))),null==t.a&&(t.a=1),Hw(t.a)>1?t.e*=Hw(t.a):t.f/=Hw(t.a),Sut(t),pbt(t),_Pt(t),lct(t.b,(Rmt(),gre),t.g)}function zDt(t,e,n){var i,a,r,o,s;for(i=0,s=n,e||(i=n*(t.c.length-1),s*=-1),r=new Wf(t);r.a<r.c.c.length;){for(lct(a=jz(J1(r),10),(zYt(),vpe),(fyt(),AEe)),a.o.a=i,o=NCt(a,(wWt(),sAe)).Kc();o.Ob();)jz(o.Pb(),11).n.a=i;i+=s}}function HDt(t,e,n){var i,a,r;t.ej()?(r=t.fj(),Tdt(t,e,n),i=t.Zi(3,null,n,e,r),t.bj()?(a=t.cj(n,null),t.ij()&&(a=t.jj(n,a)),a?(a.Ei(i),a.Fi()):t.$i(i)):t.$i(i)):(Tdt(t,e,n),t.bj()&&(a=t.cj(n,null))&&a.Fi())}function UDt(t,e,n){var i,a,r,o,s,c;return(s=t.Gk(n))!=n?(o=t.g[e],c=s,wO(t,e,t.oi(e,c)),r=o,t.gi(e,c,r),t.rk()&&(i=n,a=t.dj(i,null),!jz(s,49).eh()&&(a=t.cj(c,a)),a&&a.Fi()),mI(t.e)&&Iy(t,t.Zi(9,n,s,e,!1)),s):n}function VDt(t,e){var n,i,a;for(n=new Wf(t.a.a);n.a<n.c.c.length;)jz(J1(n),189).g=!0;for(a=new Wf(t.a.b);a.a<a.c.c.length;)(i=jz(J1(a),81)).k=zw(RB(t.e.Kb(new nA(i,e)))),i.d.g=i.d.g&zw(RB(t.e.Kb(new nA(i,e))));return t}function qDt(t){var e,n,i,a,r;if(n=new ZF(e=jz(YR(MAe),9),jz(kP(e,e.length),9),0),r=jz(yEt(t,(lGt(),xhe)),10))for(a=new Wf(r.j);a.a<a.c.c.length;)HA(yEt(i=jz(J1(a),11),fhe))===HA(t)&&UM(new m7(i.b))&&sat(n,i.j);return n}function WDt(t,e,n){var i,a,r,o;if(!t.d[n.p]){for(i=new oq(XO(dft(n).a.Kc(),new u));gIt(i);){for(r=new oq(XO(uft(o=jz(V6(i),17).d.i).a.Kc(),new u));gIt(r);)(a=jz(V6(r),17)).c.i==e&&(t.a[a.p]=!0);WDt(t,e,o)}t.d[n.p]=!0}}function YDt(t,e){var n,i,a,r,o,s,c;if(1==(i=bft(254&t.Db)))t.Eb=null;else if(r=ent(t.Eb),2==i)a=Bvt(t,e),t.Eb=r[0==a?1:0];else{for(o=O5(Dte,zGt,1,i-1,5,1),n=2,s=0,c=0;n<=128;n<<=1)n==e?++s:t.Db&n&&(o[c++]=r[s++]);t.Eb=o}t.Db&=~e}function GDt(t,e){var n,i,a,r,o;for(!e.s&&(e.s=new tW(PIe,e,21,17)),r=null,a=0,o=(i=e.s).i;a<o;++a)switch(n=jz(Yet(i,a),170),MG(j9(t,n))){case 4:case 5:case 6:!r&&(r=new Lm),r.c[r.c.length]=n}return r||(kK(),kK(),cne)}function ZDt(t){var e;switch(e=0,t){case 105:e=2;break;case 109:e=8;break;case 115:e=4;break;case 120:e=16;break;case 117:e=32;break;case 119:e=64;break;case 70:e=256;break;case 72:e=128;break;case 88:e=512;break;case 44:e=w7t}return e}function KDt(t,e,n,i,a){var r,o,s,c;if(HA(t)!==HA(e)||i!=a)for(s=0;s<i;s++){for(o=0,r=t[s],c=0;c<a;c++)o=ift(ift(aft(t0(r,qKt),t0(e[c],qKt)),t0(n[s+c],qKt)),t0(fV(o),qKt)),n[s+c]=fV(o),o=wq(o,32);n[s+a]=fV(o)}else Tjt(t,i,n)}function XDt(t){var e,n,a,r,o,s,c,l,u,d,h;for(d=0,u=0,c=(r=t.a).a.gc(),a=r.a.ec().Kc();a.Ob();)(n=jz(a.Pb(),561)).b&&Gzt(n),d+=(h=(e=n.a).a)+(s=e.b),u+=h*s;return l=i.Math.sqrt(400*c*u-4*u+d*d)+d,0==(o=2*(100*c-1))?l:l/o}function JDt(t,e){0!=e.b&&(isNaN(t.s)?t.s=Hw((EN(0!=e.b),_B(e.a.a.c))):t.s=i.Math.min(t.s,Hw((EN(0!=e.b),_B(e.a.a.c)))),isNaN(t.c)?t.c=Hw((EN(0!=e.b),_B(e.c.b.c))):t.c=i.Math.max(t.c,Hw((EN(0!=e.b),_B(e.c.b.c)))))}function QDt(t){var e,n,i;for(e=null,n=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c)])));gIt(n);)if(i=Ckt(jz(V6(n),82)),e){if(e!=KJ(i))return!0}else e=KJ(i);return!1}function tIt(t,e){var n,i,a,r;t.ej()?(n=t.i,r=t.fj(),i7(t,e),i=t.Zi(3,null,e,n,r),t.bj()?(a=t.cj(e,null),t.ij()&&(a=t.jj(e,a)),a?(a.Ei(i),a.Fi()):t.$i(i)):t.$i(i)):(i7(t,e),t.bj()&&(a=t.cj(e,null))&&a.Fi())}function eIt(t,e,n){var i,a,r;t.ej()?(r=t.fj(),++t.j,t.Hi(e,t.oi(e,n)),i=t.Zi(3,null,n,e,r),t.bj()&&(a=t.cj(n,null))?(a.Ei(i),a.Fi()):t.$i(i)):(++t.j,t.Hi(e,t.oi(e,n)),t.bj()&&(a=t.cj(n,null))&&a.Fi())}function nIt(t){var e,n,i,a;for(a=t.length,e=null,i=0;i<a;i++)d1(i,t.length),HD(".*+?{[()|\\^$",Kkt(n=t.charCodeAt(i)))>=0?(e||(e=new Ex,i>0&&iD(e,t.substr(0,i))),e.a+="\\",LY(e,n&ZZt)):e&&LY(e,n&ZZt);return e?e.a:t}function iIt(t){var e;if(!t.a)throw $m(new Fw("IDataType class expected for layout option "+t.f));if(null==(e=S4(t.a)))throw $m(new Fw("Couldn't create new instance of property '"+t.f+"'. "+i6t+(xB(uIe),uIe.k)+a6t));return jz(e,414)}function aIt(t){var e,n,i,a,r;return(r=t.eh())&&r.kh()&&(a=tdt(t,r))!=r?(n=t.Vg(),i=(e=t.Vg())>=0?t.Qg(null):t.eh().ih(t,-1-e,null,null),t.Rg(jz(a,49),n),i&&i.Fi(),t.Lg()&&t.Mg()&&n>-1&&hot(t,new Jq(t,9,n,r,a)),a):r}function rIt(t){var e,n,i,a,r,o,s;for(r=0,a=t.f.e,n=0;n<a.c.length;++n)for(u1(n,a.c.length),o=jz(a.c[n],144),i=n+1;i<a.c.length;++i)u1(i,a.c.length),s=jz(a.c[i],144),e=W5(o.d,s.d)-t.a[o.b][s.b],r+=t.i[o.b][s.b]*e*e;return r}function oIt(t,e){var n;if(!IN(e,(zYt(),vbe))&&(n=Rxt(jz(yEt(e,tle),360),jz(yEt(t,vbe),163)),lct(e,tle,n),!gIt(new oq(XO(lft(e).a.Kc(),new u)))))switch(n.g){case 1:lct(e,vbe,(_ft(),Fhe));break;case 2:lct(e,vbe,(_ft(),$he))}}function sIt(t,e){var n;yPt(t),t.a=(n=new ox,Kk(new NU(null,new h1(e.d,16)),new Tp(n)),n),kNt(t,jz(yEt(e.b,(zYt(),ebe)),376)),wyt(t),AIt(t),Ixt(t),xyt(t),xUt(t,e),Kk(htt(new NU(null,Z0(kY(t.b).a)),new Ga),new Za),e.a=!1,t.a=null}function cIt(){gEt.call(this,v7t,(QR(),fDe)),this.p=null,this.a=null,this.f=null,this.n=null,this.g=null,this.c=null,this.i=null,this.j=null,this.d=null,this.b=null,this.e=null,this.k=null,this.o=null,this.s=null,this.q=!1,this.r=!1}function lIt(){lIt=D,eIe=new _A(U1t,0),JDe=new _A("INSIDE_SELF_LOOPS",1),QDe=new _A("MULTI_EDGES",2),XDe=new _A("EDGE_LABELS",3),tIe=new _A("PORTS",4),ZDe=new _A("COMPOUND",5),GDe=new _A("CLUSTERS",6),KDe=new _A("DISCONNECTED",7)}function uIt(t,e){var n,i,a;if(0==e)return 0!=(1&t.a[0]);if(e<0)throw $m(new Tw("Negative bit address"));if((a=e>>5)>=t.d)return t.e<0;if(n=t.a[a],e=1<<(31&e),t.e<0){if(a<(i=Srt(t)))return!1;n=i==a?-n:~n}return 0!=(n&e)}function dIt(t,e,n,i){var a;jz(n.b,65),jz(n.b,65),jz(i.b,65),jz(i.b,65),LH(a=qP(jL(jz(n.b,65).c),jz(i.b,65).c),zTt(jz(n.b,65),jz(i.b,65),a)),jz(i.b,65),jz(i.b,65),jz(i.b,65).c.a,a.a,jz(i.b,65).c.b,a.b,jz(i.b,65),Aet(i.a,new Rz(t,e,i))}function hIt(t,e){var n,i,a,r,o,s,c;if(r=e.e)for(n=aIt(r),i=jz(t.g,674),o=0;o<t.i;++o)if(Hyt(c=i[o])==n&&(!c.d&&(c.d=new DO(WIe,c,1)),a=c.d,(s=jz(n.ah(pFt(r,r.Cb,r.Db>>16)),15).Xc(r))<a.i))return hIt(t,jz(Yet(a,s),87));return e}function fIt(t,e,n){var i,a=EGt,r=a[t],o=r instanceof Array?r[0]:null;r&&!o?kGt=r:(!(i=e&&e.prototype)&&(i=EGt[e]),(kGt=zJ(i)).hm=n,!e&&(kGt.im=A),a[t]=kGt);for(var s=3;s<arguments.length;++s)arguments[s].prototype=kGt;o&&(kGt.gm=o)}function gIt(t){for(var e;!jz(yY(t.a),47).Ob();){if(t.d=slt(t),!t.d)return!1;if(t.a=jz(t.d.Pb(),47),iO(t.a,39)){if(e=jz(t.a,39),t.a=e.a,!t.b&&(t.b=new Im),f4(t.b,t.d),e.b)for(;!Ww(e.b);)f4(t.b,jz(gW(e.b),47));t.d=e.d}}return!0}function pIt(t,e){var n,i,a,r;for(a=null==e?0:t.b.se(e),n=t.a.get(a)??new Array,r=0;r<n.length;r++)if(i=n[r],t.b.re(e,i.cd()))return 1==n.length?(n.length=0,bP(t.a,a)):n.splice(r,1),--t.c,oX(t.b),i.dd();return null}function bIt(t,e){var n,i,a,r;for(a=1,e.j=!0,r=null,i=new Wf(wft(e));i.a<i.c.c.length;)n=jz(J1(i),213),t.c[n.c]||(t.c[n.c]=!0,r=Oft(n,e),n.f?a+=bIt(t,r):!r.j&&n.a==n.e.e-n.d.e&&(n.f=!0,RW(t.p,n),a+=bIt(t,r)));return a}function mIt(t){var e,n,a;for(n=new Wf(t.a.a.b);n.a<n.c.c.length;)e=jz(J1(n),81),vG(0),(a=0)>0&&(!(fI(t.a.c)&&e.n.d)&&!(gI(t.a.c)&&e.n.b)&&(e.g.d+=i.Math.max(0,a/2-.5)),(!fI(t.a.c)||!e.n.a)&&(!gI(t.a.c)||!e.n.c)&&(e.g.a-=a-1))}function yIt(t){var e,n,a,r,o;if(o=Pjt(t,r=new Lm),e=jz(yEt(t,(lGt(),xhe)),10))for(a=new Wf(e.j);a.a<a.c.c.length;)HA(yEt(n=jz(J1(a),11),fhe))===HA(t)&&(o=i.Math.max(o,Pjt(n,r)));return 0==r.c.length||lct(t,dhe,o),-1!=o?r:null}function vIt(t,e,n){var i,a,r,o,s,c;a=(i=(r=jz(OU(e.e,0),17).c).i).k,s=(o=(c=jz(OU(n.g,0),17).d).i).k,a==(oCt(),Cse)?lct(t,(lGt(),che),jz(yEt(i,che),11)):lct(t,(lGt(),che),r),lct(t,(lGt(),lhe),s==Cse?jz(yEt(o,lhe),11):c)}function wIt(t,e){var n,i,a,r;for(n=(r=fV(aft(EZt,nZ(fV(aft(null==e?0:Qct(e),CZt)),15))))&t.b.length-1,a=null,i=t.b[n];i;a=i,i=i.a)if(i.d==r&&hG(i.i,e))return a?a.a=i.a:t.b[n]=i.a,vx(i.c,i.f),ey(i.b,i.e),--t.f,++t.e,!0;return!1}function xIt(t,e){var n,i,a,r,o;return e&=63,(i=0!=((n=t.h)&SKt))&&(n|=-1048576),e<22?(o=n>>e,r=t.m>>e|n<<22-e,a=t.l>>e|t.m<<22-e):e<44?(o=i?CKt:0,r=n>>e-22,a=t.m>>e-22|n<<44-e):(o=i?CKt:0,r=i?EKt:0,a=n>>e-44),_L(a&EKt,r&EKt,o&CKt)}function RIt(t){var e,n,a,r,o,s;for(this.c=new Lm,this.d=t,a=BKt,r=BKt,e=PKt,n=PKt,s=cmt(t,0);s.b!=s.d.c;)o=jz(d4(s),8),a=i.Math.min(a,o.a),r=i.Math.min(r,o.b),e=i.Math.max(e,o.a),n=i.Math.max(n,o.b);this.a=new VZ(a,r,e-a,n-r)}function _It(t,e){var n,i,a,r;for(i=new Wf(t.b);i.a<i.c.c.length;)for(r=new Wf(jz(J1(i),29).a);r.a<r.c.c.length;)for((a=jz(J1(r),10)).k==(oCt(),Ese)&&l$t(a,e),n=new oq(XO(dft(a).a.Kc(),new u));gIt(n);)mst(jz(V6(n),17),e)}function kIt(t){var e,n,i;this.c=t,i=jz(yEt(t,(zYt(),Vpe)),103),e=Hw(_B(yEt(t,xpe))),n=Hw(_B(yEt(t,Bme))),i==(jdt(),FSe)||i==jSe||i==$Se?this.b=e*n:this.b=1/(e*n),this.j=Hw(_B(yEt(t,Ame))),this.e=Hw(_B(yEt(t,Tme))),this.f=t.b.c.length}function EIt(t){var e,n;for(t.e=O5(TMe,lKt,25,t.p.c.length,15,1),t.k=O5(TMe,lKt,25,t.p.c.length,15,1),n=new Wf(t.p);n.a<n.c.c.length;)e=jz(J1(n),10),t.e[e.p]=F4(new oq(XO(uft(e).a.Kc(),new u))),t.k[e.p]=F4(new oq(XO(dft(e).a.Kc(),new u)))}function CIt(t){var e,n,i,a,r;for(i=0,t.q=new Lm,e=new Ny,r=new Wf(t.p);r.a<r.c.c.length;){for((a=jz(J1(r),10)).p=i,n=new oq(XO(dft(a).a.Kc(),new u));gIt(n);)RW(e,jz(V6(n),17).d.i);e.a.Bc(a),Wz(t.q,new DU(e)),e.a.$b(),++i}}function SIt(){SIt=D,Txe=new WI(20),Sxe=new qI((cGt(),qCe),Txe),Oxe=new qI(ISe,20),wxe=new qI(iCe,gQt),Dxe=new qI(pSe,nht(1)),Lxe=new qI(vSe,(cM(),!0)),xxe=uCe,_xe=BCe,kxe=jCe,Exe=zCe,Rxe=MCe,Cxe=VCe,Axe=lSe,Bot(),Mxe=yxe,Ixe=bxe}function TIt(t,e){var n,i,a,r,o,s,c,l,u;if(t.a.f>0&&iO(e,42)&&(t.a.qj(),r=null==(c=(l=jz(e,42)).cd())?0:Qct(c),o=tP(t.a,r),n=t.a.d[o]))for(i=jz(n.g,367),u=n.i,s=0;s<u;++s)if((a=i[s]).Sh()==r&&a.Fb(l))return TIt(t,l),!0;return!1}function AIt(t){var e,n,i,a;for(a=jz(c7(t.a,(L_t(),Ele)),15).Kc();a.Ob();)eY(t,i=jz(a.Pb(),101),(n=(e=gq(i.k)).Hc((wWt(),cAe))?e.Hc(sAe)?e.Hc(EAe)?e.Hc(SAe)?null:Dle:Lle:Ile:Ale)[0],(Sat(),Mle),0),eY(t,i,n[1],Nle,1),eY(t,i,n[2],Ble,1)}function DIt(t,e){var n,i;XNt(t,e,n=yFt(e)),nkt(t.a,jz(yEt(bG(e.b),(lGt(),khe)),230)),hjt(t),N_t(t,e),i=O5(TMe,lKt,25,e.b.j.c.length,15,1),cqt(t,e,(wWt(),cAe),i,n),cqt(t,e,sAe,i,n),cqt(t,e,EAe,i,n),cqt(t,e,SAe,i,n),t.a=null,t.c=null,t.b=null}function IIt(){IIt=D,Eft(),o_e=new DD(R3t,s_e=QRe),a_e=new DD(_3t,(cM(),!0)),nht(-1),e_e=new DD(k3t,nht(-1)),nht(-1),n_e=new DD(E3t,nht(-1)),r_e=new DD(C3t,!1),c_e=new DD(S3t,!0),i_e=new DD(T3t,!1),l_e=new DD(A3t,-1)}function LIt(t,e,n){switch(e){case 7:return!t.e&&(t.e=new cF(BDe,t,7,4)),cUt(t.e),!t.e&&(t.e=new cF(BDe,t,7,4)),void pY(t.e,jz(n,14));case 8:return!t.d&&(t.d=new cF(BDe,t,8,5)),cUt(t.d),!t.d&&(t.d=new cF(BDe,t,8,5)),void pY(t.d,jz(n,14))}VRt(t,e,n)}function OIt(t,e){var n,i,a,r,o;if(HA(e)===HA(t))return!0;if(!iO(e,15)||(o=jz(e,15),t.gc()!=o.gc()))return!1;for(r=o.Kc(),i=t.Kc();i.Ob();)if(n=i.Pb(),a=r.Pb(),!(HA(n)===HA(a)||null!=n&&Odt(n,a)))return!1;return!0}function MIt(t,e){var n,i,a,r;for((r=jz(E3(htt(htt(new NU(null,new h1(e.b,16)),new Pn),new Fn),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15)).Jc(new jn),n=0,a=r.Kc();a.Ob();)-1==(i=jz(a.Pb(),11)).p&&jIt(t,i,n++)}function NIt(t){switch(t.g){case 0:return new Ed;case 1:return new ld;case 2:return new cd;case 3:return new wA;case 4:return new PV;default:throw $m(new Pw("No implementation is available for the node placer "+(null!=t.f?t.f:""+t.g)))}}function BIt(t){switch(t.g){case 0:return new BV;case 1:return new dd;case 2:return new ed;case 3:return new nd;case 4:return new RA;default:throw $m(new Pw("No implementation is available for the cycle breaker "+(null!=t.f?t.f:""+t.g)))}}function PIt(){PIt=D,mRe=new DD(o3t,nht(0)),yRe=new DD(s3t,0),zlt(),fRe=new DD(c3t,gRe=cRe),nht(0),hRe=new DD(l3t,nht(1)),$rt(),vRe=new DD(u3t,wRe=WRe),M8(),xRe=new DD(d3t,RRe=rRe),Avt(),pRe=new DD(h3t,bRe=HRe)}function FIt(t,e,n){var i;i=null,e&&(i=e.d),KRt(t,new fS(e.n.a-i.b+n.a,e.n.b-i.d+n.b)),KRt(t,new fS(e.n.a-i.b+n.a,e.n.b+e.o.b+i.a+n.b)),KRt(t,new fS(e.n.a+e.o.a+i.c+n.a,e.n.b-i.d+n.b)),KRt(t,new fS(e.n.a+e.o.a+i.c+n.a,e.n.b+e.o.b+i.a+n.b))}function jIt(t,e,n){var i,a,r;for(e.p=n,r=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[new $g(e),new Hg(e)])));gIt(r);)-1==(i=jz(V6(r),11)).p&&jIt(t,i,n);if(e.i.k==(oCt(),Cse))for(a=new Wf(e.i.j);a.a<a.c.c.length;)(i=jz(J1(a),11))!=e&&-1==i.p&&jIt(t,i,n)}function $It(t){var e,n,a,r,o;if(r=jz(E3(DQ(a1(t)),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15),a=JJt,r.gc()>=2)for(e=_B((n=r.Kc()).Pb());n.Ob();)o=e,e=_B(n.Pb()),a=i.Math.min(a,(vG(e),e-(vG(o),o)));return a}function zIt(t,e){var n,i,a,r,o;n6(i=new Zk,e,i.c.b,i.c);do{for(EN(0!=i.b),n=jz(Det(i,i.a.a),86),t.b[n.g]=1,r=cmt(n.d,0);r.b!=r.d.c;)o=(a=jz(d4(r),188)).c,1==t.b[o.g]?MH(t.a,a):2==t.b[o.g]?t.b[o.g]=1:n6(i,o,i.c.b,i.c)}while(0!=i.b)}function HIt(t,e){var n,i,a;if(HA(e)===HA(yY(t)))return!0;if(!iO(e,15)||(i=jz(e,15),(a=t.gc())!=i.gc()))return!1;if(iO(i,54)){for(n=0;n<a;n++)if(!hG(t.Xb(n),i.Xb(n)))return!1;return!0}return qyt(t.Kc(),i.Kc())}function UIt(t,e){var n;if(0!=t.c.length){if(2==t.c.length)l$t((u1(0,t.c.length),jz(t.c[0],10)),(Wwt(),xTe)),l$t((u1(1,t.c.length),jz(t.c[1],10)),RTe);else for(n=new Wf(t);n.a<n.c.c.length;)l$t(jz(J1(n),10),e);t.c=O5(Dte,zGt,1,0,5,1)}}function VIt(t){var e,n;if(2!=t.c.length)throw $m(new Fw("Order only allowed for two paths."));u1(0,t.c.length),e=jz(t.c[0],17),u1(1,t.c.length),n=jz(t.c[1],17),e.d.i!=n.c.i&&(t.c=O5(Dte,zGt,1,0,5,1),t.c[t.c.length]=n,t.c[t.c.length]=e)}function qIt(t,e){var n,i,a,r,o;for(i=new b3,r=k3(new Kw(t.g)).a.ec().Kc();r.Ob();){if(!(a=jz(r.Pb(),10))){TH(e,"There are no classes in a balanced layout.");break}(n=jz(utt(i,o=t.j[a.p]),15))||Xbt(i,o,n=new Lm),n.Fc(a)}return i}function WIt(t,e,n){var i,a,r,o;if(n)for(a=((i=new cq(n.a.length)).b-i.a)*i.c<0?(tC(),RMe):new qO(i);a.Ob();)(r=O2(n,jz(a.Pb(),19).a))&&(o=Pnt(N2(r,A7t),e),YG(t.f,o,r),H7t in r.a&&Iit(o,N2(r,H7t)),Ekt(r,o),ATt(r,o))}function YIt(t,e){var n,i,a;for(Akt(e,"Port side processing",1),a=new Wf(t.a);a.a<a.c.c.length;)azt(jz(J1(a),10));for(n=new Wf(t.b);n.a<n.c.c.length;)for(i=new Wf(jz(J1(n),29).a);i.a<i.c.c.length;)azt(jz(J1(i),10));zCt(e)}function GIt(t,e,n){var i,a,r,o,s;if(!(a=t.f)&&(a=jz(t.a.a.ec().Kc().Pb(),57)),jxt(a,e,n),1!=t.a.a.gc())for(i=e*n,o=t.a.a.ec().Kc();o.Ob();)(r=jz(o.Pb(),57))!=a&&((s=l4(r)).f.d?(r.d.d+=i+uJt,r.d.a-=i+uJt):s.f.a&&(r.d.a-=i+uJt))}function ZIt(t,e,n,a,r){var o,s,c,l,u,d,h,f,g;return s=n-t,c=a-e,l=(o=i.Math.atan2(s,c))+XJt,u=o-XJt,d=r*i.Math.sin(l)+t,f=r*i.Math.cos(l)+e,h=r*i.Math.sin(u)+t,g=r*i.Math.cos(u)+e,r7(Cst(Hx(EEe,1),cZt,8,0,[new OT(d,f),new OT(h,g)]))}function KIt(t,e,n,a){var r,o,s,c,l,u,d,h;r=n,o=d=e;do{o=t.a[o.p],h=t.g[o.p],c=Hw(t.p[h.p])+Hw(t.d[o.p])-o.d.d,(l=Dit(o,a))&&(u=t.g[l.p],s=Hw(t.p[u.p])+Hw(t.d[l.p])+l.o.b+l.d.a,r=i.Math.min(r,c-(s+BL(t.k,o,l))))}while(d!=o);return r}function XIt(t,e,n,a){var r,o,s,c,l,u,d,h;r=n,o=d=e;do{o=t.a[o.p],h=t.g[o.p],s=Hw(t.p[h.p])+Hw(t.d[o.p])+o.o.b+o.d.a,(l=Fst(o,a))&&(u=t.g[l.p],c=Hw(t.p[u.p])+Hw(t.d[l.p])-l.d.d,r=i.Math.min(r,c-(s+BL(t.k,o,l))))}while(d!=o);return r}function JIt(t,e){var n;return!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),apt(t.o,e)??(iO(n=e.wg(),4)&&(null==n?(!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),Ypt(t.o,e)):(!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),mRt(t.o,e,n))),n)}function QIt(){QIt=D,TTe=new HT("H_LEFT",0),STe=new HT("H_CENTER",1),DTe=new HT("H_RIGHT",2),NTe=new HT("V_TOP",3),MTe=new HT("V_CENTER",4),OTe=new HT("V_BOTTOM",5),ITe=new HT("INSIDE",6),LTe=new HT("OUTSIDE",7),ATe=new HT("H_PRIORITY",8)}function tLt(t){var e,n,i,a,r,o,s;if((e=t.Hh(G8t))&&null!=(s=kB(apt((!e.b&&(e.b=new KN((pGt(),yLe),VLe,e)),e.b),"settingDelegates")))){for(n=new Lm,r=0,o=(a=wFt(s,"\\w+")).length;r<o;++r)i=a[r],n.c[n.c.length]=i;return n}return kK(),kK(),cne}function eLt(t,e){var n,i,a,r,o,s,c;if(!e.f)throw $m(new Pw("The input edge is not a tree edge."));for(r=null,a=NGt,i=new Wf(t.d);i.a<i.c.c.length;)s=(n=jz(J1(i),213)).d,c=n.e,jTt(t,s,e)&&!jTt(t,c,e)&&(o=c.e-s.e-n.a)<a&&(a=o,r=n);return r}function nLt(t){var e,n,i,a,r,o;if(!(t.f.e.c.length<=1)){e=0,a=rIt(t),n=BKt;do{for(e>0&&(a=n),o=new Wf(t.f.e);o.a<o.c.c.length;)!zw(RB(yEt(r=jz(J1(o),144),(ixt(),yoe))))&&(i=Jjt(t,r),VP(vD(r.d),i));n=rIt(t)}while(!KY(t,e++,a,n))}}function iLt(t,e){var n,i,a;for(Akt(e,"Layer constraint preprocessing",1),n=new Lm,a=new _2(t.a,0);a.b<a.d.gc();)EN(a.b<a.d.gc()),Yst(i=jz(a.d.Xb(a.c=a.b++),10))&&(akt(i),n.c[n.c.length]=i,lG(a));0==n.c.length||lct(t,(lGt(),Jde),n),zCt(e)}function aLt(t,e){var n,i,a,r,o;for(r=t.g.a,o=t.g.b,i=new Wf(t.d);i.a<i.c.c.length;)a=(n=jz(J1(i),70)).n,t.a==(Ast(),yle)||t.i==(wWt(),sAe)?a.a=r:t.a==vle||t.i==(wWt(),SAe)?a.a=r+t.j.a-n.o.a:a.a=r+(t.j.a-n.o.a)/2,a.b=o,VP(a,e),o+=n.o.b+t.e}function rLt(t,e,n){var i,a,r,o;for(Akt(n,"Processor set coordinates",1),t.a=0==e.b.b?1:e.b.b,r=null,i=cmt(e.b,0);!r&&i.b!=i.d.c;)zw(RB(yEt(o=jz(d4(i),86),(HUt(),fxe))))&&(r=o,(a=o.e).a=jz(yEt(o,gxe),19).a,a.b=0);FCt(t,Mst(r),yrt(n,1)),zCt(n)}function oLt(t,e,n){var i,a,r;for(Akt(n,"Processor determine the height for each level",1),t.a=0==e.b.b?1:e.b.b,a=null,i=cmt(e.b,0);!a&&i.b!=i.d.c;)zw(RB(yEt(r=jz(d4(i),86),(HUt(),fxe))))&&(a=r);a&&JNt(t,r7(Cst(Hx(Uwe,1),tQt,86,0,[a])),n),zCt(n)}function sLt(t,e){var n,i,a,r,o;(r=M2(t,"individualSpacings"))&&(!E5(e,(cGt(),CSe))&&(n=new Js,Kmt(e,CSe,n)),a=jz(JIt(e,CSe),373),i=null,(o=r)&&(i=new Rk(o,xat(o,O5(zee,cZt,2,0,6,1)))),i&&t6(i,new fA(o,a)))}function cLt(t,e){var n,i,a,r,o,s;return r=null,(X7t in(o=t).a||J7t in o.a||N7t in o.a)&&(s=Hst(e),i=M2(o,X7t),Agt(new $b(s).a,i),a=M2(o,J7t),Tgt(new Kb(s).a,a),n=L2(o,N7t),C_t(new Qb(s).a,n),r=n),r}function lLt(t,e){var n,i,a;if(e===t)return!0;if(iO(e,543)){if(a=jz(e,835),t.a.d!=a.a.d||xZ(t).gc()!=xZ(a).gc())return!1;for(i=xZ(a).Kc();i.Ob();)if(i1(t,(n=jz(i.Pb(),416)).a.cd())!=jz(n.a.dd(),14).gc())return!1;return!0}return!1}function uLt(t){var e,n,i,a;return e=i=jz(t.a,19).a,n=a=jz(t.b,19).a,0==i&&0==a?n-=1:-1==i&&a<=0?(e=0,n-=2):i<=0&&a>0?(e-=1,n-=1):i>=0&&a<0?(e+=1,n+=1):i>0&&a>=0?(e-=1,n+=1):(e+=1,n-=1),new nA(nht(e),nht(n))}function dLt(t,e){return t.c<e.c?-1:t.c>e.c?1:t.b<e.b?-1:t.b>e.b?1:t.a!=e.a?Qct(t.a)-Qct(e.a):t.d==(G3(),zve)&&e.d==$ve?-1:t.d==$ve&&e.d==zve?1:0}function hLt(t,e){var n,i,a,r,o;return o=(r=e.a).c.i==e.b?r.d:r.c,i=r.c.i==e.b?r.c:r.d,(a=Vgt(t.a,o,i))>0&&a<JJt?(n=KIt(t.a,i.i,a,t.c),int(t.a,i.i,-n),n>0):a<0&&-a<JJt&&(n=XIt(t.a,i.i,-a,t.c),int(t.a,i.i,n),n>0)}function fLt(t,e,n,i){var a,r,o,s,c,l;for(a=(e-t.d)/t.c.c.length,r=0,t.a+=n,t.d=e,l=new Wf(t.c);l.a<l.c.c.length;)s=(c=jz(J1(l),33)).g,o=c.f,Cnt(c,c.i+r*a),Snt(c,c.j+i*n),Ent(c,c.g+a),knt(c,t.a),++r,dTt(c,new OT(c.g,c.f),new OT(s,o))}function gLt(t){var e,n,i,a,r,o,s;if(null==t)return null;for(s=t.length,o=O5(IMe,m7t,25,a=(s+1)/2|0,15,1),s%2!=0&&(o[--a]=JBt((d1(s-1,t.length),t.charCodeAt(s-1)))),n=0,i=0;n<a;++n)e=JBt(lZ(t,i++)),r=JBt(lZ(t,i++)),o[n]=(e<<4|r)<<24>>24;return o}function pLt(t){if(t.pe()){var e=t.c;return e.qe()?t.o="["+e.n:e.pe()?t.o="["+e.ne():t.o="[L"+e.ne()+";",t.b=e.me()+"[]",void(t.k=e.oe()+"[]")}var n=t.j,i=t.d;i=i.split("/"),t.o=jpt(".",[n,jpt("$",i)]),t.b=jpt(".",[n,jpt(".",i)]),t.k=i[i.length-1]}function bLt(t,e){var n,i,a,r,o;for(o=null,r=new Wf(t.e.a);r.a<r.c.c.length;)if((a=jz(J1(r),121)).b.a.c.length==a.g.a.c.length){for(i=a.e,o=eSt(a),n=a.e-jz(o.a,19).a+1;n<a.e+jz(o.b,19).a;n++)e[n]<e[i]&&(i=n);e[i]<e[a.e]&&(--e[a.e],++e[i],a.e=i)}}function mLt(t){var e,n,a,r,o,s,c;for(a=BKt,n=PKt,e=new Wf(t.e.b);e.a<e.c.c.length;)for(o=new Wf(jz(J1(e),29).a);o.a<o.c.c.length;)r=jz(J1(o),10),s=(c=Hw(t.p[r.p]))+Hw(t.b[t.g[r.p].p]),a=i.Math.min(a,c),n=i.Math.max(n,s);return n-a}function yLt(t,e,n,i){var a,r,o,s,c;for(s=0,c=(a=xFt(t,e)).gc();s<c;++s)if(mF(i,vZ(j9(t,r=jz(a.Xb(s),170)))))if(o=wZ(j9(t,r)),null==n){if(null==o)return r}else if(mF(n,o))return r;return null}function vLt(t,e,n,i){var a,r,o,s,c;for(s=0,c=(a=RFt(t,e)).gc();s<c;++s)if(mF(i,vZ(j9(t,r=jz(a.Xb(s),170)))))if(o=wZ(j9(t,r)),null==n){if(null==o)return r}else if(mF(n,o))return r;return null}function wLt(t,e,n){var i,a,r,o,s,c;if(o=new bc,s=rNt(t.e.Tg(),e),i=jz(t.g,119),XE(),jz(e,66).Oj())for(r=0;r<t.i;++r)a=i[r],s.rl(a.ak())&&l8(o,a);else for(r=0;r<t.i;++r)a=i[r],s.rl(a.ak())&&(c=a.dd(),l8(o,n?jAt(t,e,r,o.i,c):c));return L4(o)}function xLt(t,e){var n,i,a,r;for(n=new zft(iue),ISt(),a=0,r=(i=Cst(Hx(iue,1),IZt,227,0,[Jle,tue,Xle,Qle,eue,Kle])).length;a<r;++a)hP(n,i[a],new Lm);return Kk(DZ(AZ(htt(new NU(null,new h1(t.b,16)),new Qn),new ti),new cp(e)),new lp(n)),n}function RLt(t,e,n){var a,r,o,s,c,l,u,d;for(o=e.Kc();o.Ob();)l=(r=jz(o.Pb(),33)).i+r.g/2,d=r.j+r.f/2,c=l-((s=t.f).i+s.g/2),u=d-(s.j+s.f/2),a=i.Math.sqrt(c*c+u*u),c*=t.e/a,u*=t.e/a,n?(l-=c,d-=u):(l+=c,d+=u),Cnt(r,l-r.g/2),Snt(r,d-r.f/2)}function _Lt(t){var e,n,i;if(!t.c&&null!=t.b){for(e=t.b.length-4;e>=0;e-=2)for(n=0;n<=e;n+=2)(t.b[n]>t.b[n+2]||t.b[n]===t.b[n+2]&&t.b[n+1]>t.b[n+3])&&(i=t.b[n+2],t.b[n+2]=t.b[n],t.b[n]=i,i=t.b[n+3],t.b[n+3]=t.b[n+1],t.b[n+1]=i);t.c=!0}}function kLt(t,e){var n,i,a,r,o,s,c;for(r=(1==e?Woe:qoe).a.ec().Kc();r.Ob();)for(a=jz(r.Pb(),103),s=jz(c7(t.f.c,a),21).Kc();s.Ob();)switch(o=jz(s.Pb(),46),i=jz(o.b,81),c=jz(o.a,189),n=c.c,a.g){case 2:case 1:i.g.d+=n;break;case 4:case 3:i.g.c+=n}}function ELt(t,e){var n,i,a,r,o,s,c,l,u;for(l=-1,u=0,s=0,c=(o=t).length;s<c;++s){for(r=o[s],n=new vH(-1==l?t[0]:t[l],e,(kut(),oye)),i=0;i<r.length;i++)for(a=i+1;a<r.length;a++)IN(r[i],(lGt(),hhe))&&IN(r[a],hhe)&&uYt(n,r[i],r[a])>0&&++u;++l}return u}function CLt(t){var e;return(e=new uM(JR(t.gm))).a+="@",oD(e,(Qct(t)>>>0).toString(16)),t.kh()?(e.a+=" (eProxyURI: ",rD(e,t.qh()),t.$g()&&(e.a+=" eClass: ",rD(e,t.$g())),e.a+=")"):t.$g()&&(e.a+=" (eClass: ",rD(e,t.$g()),e.a+=")"),e.a}function SLt(t){var e,n,i;if(t.e)throw $m(new Fw((xB(hie),DXt+hie.k+IXt)));for(t.d==(jdt(),$Se)&&_qt(t,FSe),n=new Wf(t.a.a);n.a<n.c.c.length;)(e=jz(J1(n),307)).g=e.i;for(i=new Wf(t.a.b);i.a<i.c.c.length;)jz(J1(i),57).i=PKt;return t.b.Le(t),t}function TLt(t,e){var n,i,a,r,o;if(e<2*t.b)throw $m(new Pw("The knot vector must have at least two time the dimension elements."));for(t.f=1,a=0;a<t.b;a++)Wz(t.e,0);for(n=o=e+1-2*t.b,r=1;r<o;r++)Wz(t.e,r/n);if(t.d)for(i=0;i<t.b;i++)Wz(t.e,1)}function ALt(t,e){var n,i,a,r,o;if(r=e,!(o=jz(qit(EY(t.i),r),33)))throw $m(new tx("Unable to find elk node for json object '"+N2(r,H7t)+"' Panic!"));i=L2(r,"edges"),LAt((n=new rA(t,o)).a,n.b,i),a=L2(r,D7t),Nxt(new Lb(t).a,a)}function DLt(t,e,n,i){var a,r,o,s,c;if(null!=i){if(a=t.d[e])for(r=a.g,c=a.i,s=0;s<c;++s)if((o=jz(r[s],133)).Sh()==n&&Odt(i,o.cd()))return s}else if(a=t.d[e])for(r=a.g,c=a.i,s=0;s<c;++s)if(HA((o=jz(r[s],133)).cd())===HA(i))return s;return-1}function ILt(t,e){var n,i;return iO(n=null==e?zA(AX(t.f,null)):cC(t.g,e),235)?((i=jz(n,235)).Qh(),i):iO(n,498)?((i=jz(n,1938).a)&&(null==i.yb||(null==e?xTt(t.f,null,i):oft(t.g,e,i))),i):null}function LLt(t){var e,n,i,a,r,o,s;if(PBt(),null==t||(a=t.length)%2!=0)return null;for(e=Y9(t),n=O5(IMe,m7t,25,r=a/2|0,15,1),i=0;i<r;i++){if(-1==(o=YOe[e[2*i]])||-1==(s=YOe[e[2*i+1]]))return null;n[i]=(o<<4|s)<<24>>24}return n}function OLt(t,e,n){var i,a,r;if(!(a=jz(oZ(t.i,e),306)))if(a=new fet(t.d,e,n),mV(t.i,e,a),rbt(e))xO(t.a,e.c,e.b,a);else switch(r=LSt(e),i=jz(oZ(t.p,r),244),r.g){case 1:case 3:a.j=!0,ww(i,e.b,a);break;case 4:case 2:a.k=!0,ww(i,e.c,a)}return a}function MLt(t,e,n,i){var a,r,o,s,c,l;if(s=new bc,c=rNt(t.e.Tg(),e),a=jz(t.g,119),XE(),jz(e,66).Oj())for(o=0;o<t.i;++o)r=a[o],c.rl(r.ak())&&l8(s,r);else for(o=0;o<t.i;++o)r=a[o],c.rl(r.ak())&&(l=r.dd(),l8(s,i?jAt(t,e,o,s.i,l):l));return Zgt(s,n)}function NLt(t,e){var n,a,r,o,s,c;if((a=t.b[e.p])>=0)return a;for(r=1,o=new Wf(e.j);o.a<o.c.c.length;)for(n=new Wf(jz(J1(o),11).g);n.a<n.c.c.length;)e!=(c=jz(J1(n),17).d.i)&&(s=NLt(t,c),r=i.Math.max(r,s+1));return ngt(t,e,r),r}function BLt(t,e,n){var i,a,r;for(i=1;i<t.c.length;i++){for(u1(i,t.c.length),r=jz(t.c[i],10),a=i;a>0&&e.ue((u1(a-1,t.c.length),jz(t.c[a-1],10)),r)>0;)i6(t,a,(u1(a-1,t.c.length),jz(t.c[a-1],10))),--a;u1(a,t.c.length),t.c[a]=r}n.a=new Om,n.b=new Om}function PLt(t,e,n){var i,a,r,o,s,c,l;for(l=new ZF(i=jz(e.e&&e.e(),9),jz(kP(i,i.length),9),0),o=0,s=(r=wFt(n,"[\\[\\]\\s,]+")).length;o<s;++o)if(0!=BEt(a=r[o]).length){if(null==(c=zAt(t,a)))return null;sat(l,jz(c,22))}return l}function FLt(t){var e,n,a;for(n=new Wf(t.a.a.b);n.a<n.c.c.length;)e=jz(J1(n),81),vG(0),(a=0)>0&&(!(fI(t.a.c)&&e.n.d)&&!(gI(t.a.c)&&e.n.b)&&(e.g.d-=i.Math.max(0,a/2-.5)),(!fI(t.a.c)||!e.n.a)&&(!gI(t.a.c)||!e.n.c)&&(e.g.a+=i.Math.max(0,a-1)))}function jLt(t,e,n){var i;if(2==(t.c-t.b&t.a.length-1))e==(wWt(),cAe)||e==sAe?(xet(jz(Rct(t),15),(Wwt(),xTe)),xet(jz(Rct(t),15),RTe)):(xet(jz(Rct(t),15),(Wwt(),RTe)),xet(jz(Rct(t),15),xTe));else for(i=new dZ(t);i.a!=i.b;)xet(jz(Fut(i),15),n)}function $Lt(t,e){var n,i,a,r,o,s;for(o=new _2(i=$z(new sm(t)),i.c.length),s=new _2(a=$z(new sm(e)),a.c.length),r=null;o.b>0&&s.b>0&&(EN(o.b>0),n=jz(o.a.Xb(o.c=--o.b),33),EN(s.b>0),n==jz(s.a.Xb(s.c=--s.b),33));)r=n;return r}function zLt(t,e){var n,a,r,o;return r=t.a*rXt+1502*t.b,o=t.b*rXt+11,r+=n=i.Math.floor(o*oXt),o-=n*sXt,r%=sXt,t.a=r,t.b=o,e<=24?i.Math.floor(t.a*Tne[e]):((a=t.a*(1<<e-24)+i.Math.floor(t.b*Ane[e]))>=2147483648&&(a-=WKt),a)}function HLt(t,e,n){var i,a,r,o;h0(t,e)>h0(t,n)?(i=rft(n,(wWt(),sAe)),t.d=i.dc()?0:rU(jz(i.Xb(0),11)),o=rft(e,SAe),t.b=o.dc()?0:rU(jz(o.Xb(0),11))):(a=rft(n,(wWt(),SAe)),t.d=a.dc()?0:rU(jz(a.Xb(0),11)),r=rft(e,sAe),t.b=r.dc()?0:rU(jz(r.Xb(0),11)))}function ULt(t){var e,n,i,a,r,o,s;if(t&&(e=t.Hh(G8t))&&null!=(o=kB(apt((!e.b&&(e.b=new KN((pGt(),yLe),VLe,e)),e.b),"conversionDelegates")))){for(s=new Lm,a=0,r=(i=wFt(o,"\\w+")).length;a<r;++a)n=i[a],s.c[s.c.length]=n;return s}return kK(),kK(),cne}function VLt(t,e){var n,i,a,r;for(n=t.o.a,r=jz(jz(c7(t.r,e),21),84).Kc();r.Ob();)(a=jz(r.Pb(),111)).e.a=n*Hw(_B(a.b.We(Iae))),a.e.b=(i=a.b).Xe((cGt(),aSe))?i.Hf()==(wWt(),cAe)?-i.rf().b-Hw(_B(i.We(aSe))):Hw(_B(i.We(aSe))):i.Hf()==(wWt(),cAe)?-i.rf().b:0}function qLt(t){var e,n,i,a,r,o,s,c;e=!0,a=null,r=null;t:for(c=new Wf(t.a);c.a<c.c.c.length;)for(s=jz(J1(c),10),i=new oq(XO(uft(s).a.Kc(),new u));gIt(i);){if(n=jz(V6(i),17),a&&a!=s){e=!1;break t}if(a=s,o=n.c.i,r&&r!=o){e=!1;break t}r=o}return e}function WLt(t,e,n){var i,a,r,o,s,c;for(r=-1,s=-1,o=0;o<e.c.length&&(u1(o,e.c.length),!((a=jz(e.c[o],329)).c>t.c));o++)a.a>=t.s&&(r<0&&(r=o),s=o);return c=(t.s+t.c)/2,r>=0&&(c=zE((u1(i=KPt(t,e,r,s),e.c.length),jz(e.c[i],329))),dDt(e,i,n)),c}function YLt(){YLt=D,u_e=new qI((cGt(),iCe),1.3),g_e=wCe,S_e=new WI(15),C_e=new qI(qCe,S_e),D_e=new qI(ISe,15),d_e=cCe,w_e=BCe,x_e=jCe,R_e=zCe,v_e=MCe,__e=VCe,T_e=lSe,IIt(),E_e=o_e,y_e=a_e,k_e=r_e,A_e=c_e,p_e=i_e,b_e=CCe,m_e=SCe,f_e=n_e,h_e=e_e,I_e=l_e}function GLt(t,e,n){var i,a,r,o,s;for($it(a=new Rc,(vG(e),e)),!a.b&&(a.b=new KN((pGt(),yLe),VLe,a)),s=a.b,o=1;o<n.length;o+=2)mRt(s,n[o-1],n[o]);for(!t.Ab&&(t.Ab=new tW(NIe,t,0,3)),i=t.Ab,r=0;r<0;++r)i=mG(jz(Yet(i,i.i-1),590));l8(i,a)}function ZLt(t,e,n){var i,a,r;for(IB.call(this,new Lm),this.a=e,this.b=n,this.e=t,t.b&&Gzt(t),i=t.a,this.d=KZ(i.a,this.a),this.c=KZ(i.b,this.b),sft(this,this.d,this.c),yAt(this),r=this.e.e.a.ec().Kc();r.Ob();)(a=jz(r.Pb(),266)).c.c.length>0&&MUt(this,a)}function KLt(t,e,n,i,a,r){var o,s,c;if(!a[e.b]){for(a[e.b]=!0,!(o=i)&&(o=new y7),Wz(o.e,e),c=r[e.b].Kc();c.Ob();)(s=jz(c.Pb(),282)).d!=n&&s.c!=n&&(s.c!=e&&KLt(t,s.c,e,o,a,r),s.d!=e&&KLt(t,s.d,e,o,a,r),Wz(o.c,s),pst(o.d,s.b));return o}return null}function XLt(t){var e,n,i;for(e=0,n=new Wf(t.e);n.a<n.c.c.length;)o6(new NU(null,new h1(jz(J1(n),17).b,16)),new mn)&&++e;for(i=new Wf(t.g);i.a<i.c.c.length;)o6(new NU(null,new h1(jz(J1(i),17).b,16)),new yn)&&++e;return e>=2}function JLt(t,e){var n,i,a,r;for(Akt(e,"Self-Loop pre-processing",1),i=new Wf(t.a);i.a<i.c.c.length;)Pft(n=jz(J1(i),10))&&(r=new Abt(n),lct(n,(lGt(),The),r),wjt(r),Kk(DZ(htt(new NU(null,new h1((a=r).d,16)),new Hi),new Ui),new Vi),nNt(a));zCt(e)}function QLt(t,e,n,i,a){var r,o,s,c,l;for(r=t.c.d.j,o=jz(Nmt(n,0),8),l=1;l<n.b;l++)c=jz(Nmt(n,l),8),n6(i,o,i.c.b,i.c),s=vO(VP(new hI(o),c),.5),VP(s,vO(new qQ(llt(r)),a)),n6(i,s,i.c.b,i.c),o=c,r=0==e?kht(r):Rht(r);MH(i,(EN(0!=n.b),jz(n.c.b.c,8)))}function tOt(t){var e,n;return QIt(),!(Sot(TJ(xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[LTe])),t))>1||(e=xV(TTe,Cst(Hx(PTe,1),IZt,93,0,[STe,DTe])),Sot(TJ(e,t))>1)||(n=xV(NTe,Cst(Hx(PTe,1),IZt,93,0,[MTe,OTe])),Sot(TJ(n,t))>1))}function eOt(t,e){var n,i,a;return(n=e.Hh(t.a))&&null!=(a=kB(apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),"affiliation")))?-1==(i=mM(a,Kkt(35)))?oht(t,aq(t,qet(e.Hj())),a):0==i?oht(t,null,a.substr(1)):oht(t,a.substr(0,i),a.substr(i+1)):null}function nOt(t){var e,n;try{return null==t?VGt:$ft(t)}catch(i){if(iO(i=dst(i),102))return e=i,n=JR(tlt(t))+"@"+(Dk(),(eyt(t)>>>0).toString(16)),Pbt(xst(),(uE(),"Exception during lenientFormat for "+n),e),"<"+n+" threw "+JR(e.gm)+">";throw $m(i)}}function iOt(t){switch(t.g){case 0:return new rd;case 1:return new td;case 2:return new DE;case 3:return new Ar;case 4:return new NP;case 5:return new od;default:throw $m(new Pw("No implementation is available for the layerer "+(null!=t.f?t.f:""+t.g)))}}function aOt(t,e,n){var i,a,r;for(r=new Wf(t.t);r.a<r.c.c.length;)(i=jz(J1(r),268)).b.s<0&&i.c>0&&(i.b.n-=i.c,i.b.n<=0&&i.b.u>0&&MH(e,i.b));for(a=new Wf(t.i);a.a<a.c.c.length;)(i=jz(J1(a),268)).a.s<0&&i.c>0&&(i.a.u-=i.c,i.a.u<=0&&i.a.n>0&&MH(n,i.a))}function rOt(t){var e,n,i;if(null==t.g&&(t.d=t.si(t.f),l8(t,t.d),t.c))return t.f;if(i=(e=jz(t.g[t.i-1],47)).Pb(),t.e=e,(n=t.si(i)).Ob())t.d=n,l8(t,n);else for(t.d=null;!e.Ob()&&(DY(t.g,--t.i,null),0!=t.i);)e=jz(t.g[t.i-1],47);return i}function oOt(t,e){var n,i,a,r,o,s;if(a=(i=e).ak(),INt(t.e,a)){if(a.hi()&&H4(t,a,i.dd()))return!1}else for(s=rNt(t.e.Tg(),a),n=jz(t.g,119),r=0;r<t.i;++r)if(o=n[r],s.rl(o.ak()))return!Odt(o,i)&&(jz(syt(t,r,e),72),!0);return l8(t,e)}function sOt(t,e,n,a){var r,o,s;for(Fh(r=new Iyt(t),(oCt(),Ese)),lct(r,(lGt(),fhe),e),lct(r,Ehe,a),lct(r,(zYt(),tme),(Z_t(),WTe)),lct(r,che,e.c),lct(r,lhe,e.d),VNt(e,r),s=i.Math.floor(n/2),o=new Wf(r.j);o.a<o.c.c.length;)jz(J1(o),11).n.b=s;return r}function cOt(t,e){var n,i,a,r,o,s,c,l,u;for(c=sN(t.c-t.b&t.a.length-1),l=null,u=null,r=new dZ(t);r.a!=r.b;)a=jz(Fut(r),10),n=(s=jz(yEt(a,(lGt(),che)),11))?s.i:null,i=(o=jz(yEt(a,lhe),11))?o.i:null,(l!=n||u!=i)&&(UIt(c,e),l=n,u=i),c.c[c.c.length]=a;UIt(c,e)}function lOt(t){var e,n,a,r,o,s;for(e=0,n=new Wf(t.a);n.a<n.c.c.length;)for(r=new oq(XO(dft(jz(J1(n),10)).a.Kc(),new u));gIt(r);)t==(a=jz(V6(r),17)).d.i.c&&a.c.j==(wWt(),SAe)&&(o=g1(a.c).b,s=g1(a.d).b,e=i.Math.max(e,i.Math.abs(s-o)));return e}function uOt(t,e,n){var i,a;Akt(n,"Remove overlaps",1),n.n&&e&&y0(n,o2(e),($lt(),oDe)),i=jz(JIt(e,(hB(),Yxe)),33),t.f=i,t.a=Ryt(jz(JIt(e,(qwt(),NRe)),293)),tf(t,(vG(a=_B(JIt(e,(cGt(),ISe)))),a)),Wqt(t,e,fBt(i),n),n.n&&e&&y0(n,o2(e),($lt(),oDe))}function dOt(t,e,n){switch(n.g){case 1:return new OT(e.a,i.Math.min(t.d.b,e.b));case 2:return new OT(i.Math.max(t.c.a,e.a),e.b);case 3:return new OT(e.a,i.Math.max(t.c.b,e.b));case 4:return new OT(i.Math.min(e.a,t.d.a),e.b)}return new OT(e.a,e.b)}function hOt(t,e,n,i){var a,r,o,s,c,l,u,d,h;for(d=i?(wWt(),SAe):(wWt(),sAe),a=!1,l=0,u=(c=e[n]).length;l<u;++l)!IF(jz(yEt(s=c[l],(zYt(),tme)),98))&&(o=s.e,(h=!rft(s,d).dc()&&!!o)&&(r=H_t(o),t.b=new V_t(r,i?0:r.length-1)),a|=ajt(t,s,d,h));return a}function fOt(t){var e,n,i;for(Wz(e=sN(1+(!t.c&&(t.c=new tW(VDe,t,9,9)),t.c).i),(!t.d&&(t.d=new cF(BDe,t,8,5)),t.d)),i=new AO((!t.c&&(t.c=new tW(VDe,t,9,9)),t.c));i.e!=i.i.gc();)Wz(e,(!(n=jz(wmt(i),118)).d&&(n.d=new cF(BDe,n,8,5)),n.d));return yY(e),new TD(e)}function gOt(t){var e,n,i;for(Wz(e=sN(1+(!t.c&&(t.c=new tW(VDe,t,9,9)),t.c).i),(!t.e&&(t.e=new cF(BDe,t,7,4)),t.e)),i=new AO((!t.c&&(t.c=new tW(VDe,t,9,9)),t.c));i.e!=i.i.gc();)Wz(e,(!(n=jz(wmt(i),118)).e&&(n.e=new cF(BDe,n,7,4)),n.e));return yY(e),new TD(e)}function pOt(t){var e,n,i,a;if(null==t)return null;if(i=jzt(t,!0),a=M9t.length,mF(i.substr(i.length-a,a),M9t))if(4==(n=i.length)){if(d1(0,i.length),43==(e=i.charCodeAt(0)))return jOe;if(45==e)return FOe}else if(3==n)return jOe;return hCt(i)}function bOt(t){var e,n,i,a;for(e=0,n=0,a=new Wf(t.j);a.a<a.c.c.length;)if(e=fV(ift(e,z7(AZ(new NU(null,new h1((i=jz(J1(a),11)).e,16)),new Xr)))),n=fV(ift(n,z7(AZ(new NU(null,new h1(i.g,16)),new Jr)))),e>1||n>1)return 2;return e+n==1?2:0}function mOt(t,e,n){var i,a,r,o;for(Akt(n,"ELK Force",1),zw(RB(JIt(e,(uPt(),Wre))))||wJ(new Rg((HE(),new Mw(e)))),wxt(o=uct(e)),Vct(t,jz(yEt(o,Hre),424)),a=(r=z$t(t.a,o)).Kc();a.Ob();)i=jz(a.Pb(),231),CFt(t.b,i,yrt(n,1/r.gc()));EWt(o=UWt(r)),zCt(n)}function yOt(t,e){var n,i,a;if(Akt(e,"Breaking Point Processor",1),Aqt(t),zw(RB(yEt(t,(zYt(),Hme))))){for(i=new Wf(t.b);i.a<i.c.c.length;)for(n=0,a=new Wf(jz(J1(i),29).a);a.a<a.c.c.length;)jz(J1(a),10).p=n++;sHt(t),zNt(t,!0),zNt(t,!1)}zCt(e)}function vOt(t,e,n){var i,a,r,o,s;for(o=t.c,r=(n.q?n.q:(kK(),kK(),lne)).vc().Kc();r.Ob();)a=jz(r.Pb(),42),!w_(AZ(new NU(null,new h1(o,16)),new ag(new IT(e,a)))).sd((fE(),Qne))&&(iO(s=a.dd(),4)&&null!=(i=Xpt(s))&&(s=i),e.Ye(jz(a.cd(),146),s))}function wOt(t,e){var n,i,a,r;if(e){for(r=!(a=iO(t.Cb,88)||iO(t.Cb,99))&&iO(t.Cb,322),n=new AO((!e.a&&(e.a=new aV(e,WIe,e)),e.a));n.e!=n.i.gc();)if(i=d$t(jz(wmt(n),87)),a?iO(i,88):r?iO(i,148):i)return i;return a?(pGt(),hLe):(pGt(),lLe)}return null}function xOt(t,e){var n,i,a,r,o;for(Akt(e,"Constraints Postprocessor",1),r=0,a=new Wf(t.b);a.a<a.c.c.length;){for(o=0,i=new Wf(jz(J1(a),29).a);i.a<i.c.c.length;)(n=jz(J1(i),10)).k==(oCt(),Sse)&&(lct(n,(zYt(),wbe),nht(r)),lct(n,jpe,nht(o)),++o);++r}zCt(e)}function ROt(t,e,n,i){var a,r,o,s,c,l;for(qP(s=new OT(n,i),jz(yEt(e,(HUt(),Jwe)),8)),l=cmt(e.b,0);l.b!=l.d.c;)VP((c=jz(d4(l),86)).e,s),MH(t.b,c);for(o=cmt(e.a,0);o.b!=o.d.c;){for(a=cmt((r=jz(d4(o),188)).a,0);a.b!=a.d.c;)VP(jz(d4(a),8),s);MH(t.a,r)}}function _Ot(t,e,n){var i,a,r;if(!(r=jUt((TSt(),KLe),t.Tg(),e)))throw $m(new Pw(i7t+e.ne()+a7t));if(XE(),!jz(r,66).Oj()&&!(r=X1(j9(KLe,r))))throw $m(new Pw(i7t+e.ne()+a7t));a=jz((i=t.Yg(r))>=0?t._g(i,!0,!0):aDt(t,r,!0),153),jz(a,215).ml(e,n)}function kOt(t,e){var n,i,a,r,o;for(n=new Lm,a=htt(new NU(null,new h1(t,16)),new ko),r=htt(new NU(null,new h1(t,16)),new Eo),o=_9($7(IZ(EMt(Cst(Hx(tie,1),zGt,833,0,[a,r])),new Co))),i=1;i<o.length;i++)o[i]-o[i-1]>=2*e&&Wz(n,new vz(o[i-1]+e,o[i]-e));return n}function EOt(t,e,n){Akt(n,"Eades radial",1),n.n&&e&&y0(n,o2(e),($lt(),oDe)),t.d=jz(JIt(e,(hB(),Yxe)),33),t.c=Hw(_B(JIt(e,(qwt(),MRe)))),t.e=Ryt(jz(JIt(e,NRe),293)),t.a=dgt(jz(JIt(e,PRe),426)),t.b=HRt(jz(JIt(e,DRe),340)),iRt(t),n.n&&e&&y0(n,o2(e),($lt(),oDe))}function COt(t,e,n){var i,a,r,o,s;if(n)for(r=((i=new cq(n.a.length)).b-i.a)*i.c<0?(tC(),RMe):new qO(i);r.Ob();)(a=O2(n,jz(r.Pb(),19).a))&&(Iit(o=D4(t,(QR(),s=new xv,e&&$Ot(s,e),s),a),N2(a,H7t)),Ekt(a,o),ATt(a,o),Mct(t,a,o))}function SOt(t){var e,n,i,a;if(!t.j){if(a=new Ac,null==(e=kLe).a.zc(t,e)){for(i=new AO(vX(t));i.e!=i.i.gc();)pY(a,SOt(n=jz(wmt(i),26))),l8(a,n);e.a.Bc(t)}aut(a),t.j=new LD((jz(Yet(GK((GY(),JIe).o),11),18),a.i),a.g),E6(t).b&=-33}return t.j}function TOt(t){var e,n,i,a;if(null==t)return null;if(i=jzt(t,!0),a=M9t.length,mF(i.substr(i.length-a,a),M9t))if(4==(n=i.length)){if(d1(0,i.length),43==(e=i.charCodeAt(0)))return zOe;if(45==e)return $Oe}else if(3==n)return zOe;return new My(i)}function AOt(t){var e,n,i;return(n=t.l)&n-1||(i=t.m)&i-1||(e=t.h)&e-1||0==e&&0==i&&0==n?-1:0==e&&0==i&&0!=n?pit(n):0==e&&0!=i&&0==n?pit(i)+22:0!=e&&0==i&&0==n?pit(e)+44:-1}function DOt(t,e){var n,i,a,r;for(Akt(e,"Edge joining",1),n=zw(RB(yEt(t,(zYt(),Mme)))),i=new Wf(t.b);i.a<i.c.c.length;)for(r=new _2(jz(J1(i),29).a,0);r.b<r.d.gc();)EN(r.b<r.d.gc()),(a=jz(r.d.Xb(r.c=r.b++),10)).k==(oCt(),Cse)&&(iVt(a,n),lG(r));zCt(e)}function IOt(t,e,n){var i;if(c2(t.b),CW(t.b,(Cft(),z_e),(TE(),Uke)),CW(t.b,H_e,e.g),CW(t.b,U_e,e.a),t.a=IUt(t.b,e),Akt(n,"Compaction by shrinking a tree",t.a.c.length),e.i.c.length>1)for(i=new Wf(t.a);i.a<i.c.c.length;)jz(J1(i),51).pf(e,yrt(n,1));zCt(n)}function LOt(t,e){var n,i,a,r,o;for(a=e.a&t.f,r=null,i=t.b[a];;i=i.b){if(i==e){r?r.b=e.b:t.b[a]=e.b;break}r=i}for(o=e.f&t.f,r=null,n=t.c[o];;n=n.d){if(n==e){r?r.d=e.d:t.c[o]=e.d;break}r=n}e.e?e.e.c=e.c:t.a=e.c,e.c?e.c.e=e.e:t.e=e.e,--t.i,++t.g}function OOt(t){var e,n,a,r,o,s,c,l,u,d;for(n=t.o,e=t.p,s=NGt,r=FZt,c=NGt,o=FZt,u=0;u<n;++u)for(d=0;d<e;++d)mvt(t,u,d)&&(s=i.Math.min(s,u),r=i.Math.max(r,u),c=i.Math.min(c,d),o=i.Math.max(o,d));return l=r-s+1,a=o-c+1,new YZ(nht(s),nht(c),nht(l),nht(a))}function MOt(t,e){var n,i,a,r;for(EN((r=new _2(t,0)).b<r.d.gc()),n=jz(r.d.Xb(r.c=r.b++),140);r.b<r.d.gc();)EN(r.b<r.d.gc()),a=new mH((i=jz(r.d.Xb(r.c=r.b++),140)).c,n.d,e),EN(r.b>0),r.a.Xb(r.c=--r.b),yP(r,a),EN(r.b<r.d.gc()),r.d.Xb(r.c=r.b++),a.a=!1,n=i}function NOt(t){var e,n,i,a,r;for(i=jz(yEt(t,(lGt(),Bde)),11),r=new Wf(t.j);r.a<r.c.c.length;){for(n=new Wf((a=jz(J1(r),11)).g);n.a<n.c.c.length;)return _Q(jz(J1(n),17),i),a;for(e=new Wf(a.e);e.a<e.c.c.length;)return kQ(jz(J1(e),17),i),a}return null}function BOt(t,e,n){var a,r;Gut(a=uot(n.q.getTime()),0)<0?(r=GZt-fV(dpt(w9(a),GZt)))==GZt&&(r=0):r=fV(dpt(a,GZt)),1==e?OY(t,48+(r=i.Math.min((r+50)/100|0,9))&ZZt):2==e?xtt(t,r=i.Math.min((r+5)/10|0,99),2):(xtt(t,r,3),e>3&&xtt(t,0,e-3))}function POt(t){var e,n,i,a;return HA(yEt(t,(zYt(),sbe)))===HA((odt(),bTe))?!t.e&&HA(yEt(t,Npe))!==HA((Pot(),wde)):(i=jz(yEt(t,Bpe),292),a=zw(RB(yEt(t,$pe)))||HA(yEt(t,zpe))===HA((Ait(),cue)),e=jz(yEt(t,Mpe),19).a,n=t.a.c.length,!a&&i!=(Pot(),wde)&&(0==e||e>n))}function FOt(t){var e,n;for(n=0;n<t.c.length&&!(sU((u1(n,t.c.length),jz(t.c[n],113)))>0);n++);if(n>0&&n<t.c.length-1)return n;for(e=0;e<t.c.length&&!(sU((u1(e,t.c.length),jz(t.c[e],113)))>0);e++);return e>0&&n<t.c.length-1?e:t.c.length/2|0}function jOt(t,e){var n,i;if(e!=t.Cb||t.Db>>16!=6&&e){if(mxt(t,e))throw $m(new Pw(f7t+BDt(t)));i=null,t.Cb&&(i=(n=t.Db>>16)>=0?cxt(t,i):t.Cb.ih(t,-1-n,null,i)),e&&(i=Omt(e,t,6,i)),(i=GB(t,e,i))&&i.Fi()}else 4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,6,e,e))}function $Ot(t,e){var n,i;if(e!=t.Cb||t.Db>>16!=9&&e){if(mxt(t,e))throw $m(new Pw(f7t+qPt(t)));i=null,t.Cb&&(i=(n=t.Db>>16)>=0?uxt(t,i):t.Cb.ih(t,-1-n,null,i)),e&&(i=Omt(e,t,9,i)),(i=ZB(t,e,i))&&i.Fi()}else 4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,9,e,e))}function zOt(t,e){var n,i;if(e!=t.Cb||t.Db>>16!=3&&e){if(mxt(t,e))throw $m(new Pw(f7t+dHt(t)));i=null,t.Cb&&(i=(n=t.Db>>16)>=0?kxt(t,i):t.Cb.ih(t,-1-n,null,i)),e&&(i=Omt(e,t,12,i)),(i=YB(t,e,i))&&i.Fi()}else 4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,3,e,e))}function HOt(t){var e,n,i,a,r;if(i=Txt(t),null==(r=t.j)&&i)return t.$j()?null:i.zj();if(iO(i,148)){if((n=i.Aj())&&(a=n.Nh())!=t.i){if((e=jz(i,148)).Ej())try{t.g=a.Kh(e,r)}catch(o){if(!iO(o=dst(o),78))throw $m(o);t.g=null}t.i=a}return t.g}return null}function UOt(t){var e;return Wz(e=new Lm,new OC(new OT(t.c,t.d),new OT(t.c+t.b,t.d))),Wz(e,new OC(new OT(t.c,t.d),new OT(t.c,t.d+t.a))),Wz(e,new OC(new OT(t.c+t.b,t.d+t.a),new OT(t.c+t.b,t.d))),Wz(e,new OC(new OT(t.c+t.b,t.d+t.a),new OT(t.c,t.d+t.a))),e}function VOt(t,e,n,i){var a,r,o;if(o=DRt(e,n),i.c[i.c.length]=e,-1==t.j[o.p]||2==t.j[o.p]||t.a[e.p])return i;for(t.j[o.p]=-1,r=new oq(XO(lft(o).a.Kc(),new u));gIt(r);)if(!d6(a=jz(V6(r),17))&&(d6(a)||a.c.i.c!=a.d.i.c)&&a!=e)return VOt(t,a,o,i);return i}function qOt(t,e,n){var i,a;for(a=e.a.ec().Kc();a.Ob();)i=jz(a.Pb(),79),!jz(NY(t.b,i),266)&&(KJ(CEt(i))==KJ(AEt(i))?tBt(t,i,n):CEt(i)==KJ(AEt(i))?null==NY(t.c,i)&&null!=NY(t.b,AEt(i))&&iqt(t,i,n,!1):null==NY(t.d,i)&&null!=NY(t.b,CEt(i))&&iqt(t,i,n,!0))}function WOt(t,e){var n,i,a,r,o,s,c;for(a=t.Kc();a.Ob();)for(i=jz(a.Pb(),10),CQ(s=new SCt,i),HTt(s,(wWt(),sAe)),lct(s,(lGt(),whe),(cM(),!0)),o=e.Kc();o.Ob();)r=jz(o.Pb(),10),CQ(c=new SCt,r),HTt(c,SAe),lct(c,whe,!0),lct(n=new hX,whe,!0),kQ(n,s),_Q(n,c)}function YOt(t,e,n,i){var a,r,o,s;a=Dpt(t,e,n),r=Dpt(t,n,e),o=jz(NY(t.c,e),112),s=jz(NY(t.c,n),112),a<r?new UQ((T7(),kwe),o,s,r-a):r<a?new UQ((T7(),kwe),s,o,a-r):(0!=a||e.i&&n.i&&i[e.i.c][n.i.c])&&(new UQ((T7(),kwe),o,s,0),new UQ(kwe,s,o,0))}function GOt(t,e){var n,i,a,r,o,s;for(a=0,o=new Wf(e.a);o.a<o.c.c.length;)for(a+=(r=jz(J1(o),10)).o.b+r.d.a+r.d.d+t.e,i=new oq(XO(uft(r).a.Kc(),new u));gIt(i);)(n=jz(V6(i),17)).c.i.k==(oCt(),Tse)&&(a+=(s=jz(yEt(n.c.i,(lGt(),fhe)),10)).o.b+s.d.a+s.d.d);return a}function ZOt(t,e,n){var i,a,r,o,s,c,l;for(r=new Lm,Azt(t,l=new Zk,o=new Zk,e),Rqt(t,l,o,e,n),c=new Wf(t);c.a<c.c.c.length;)for(a=new Wf((s=jz(J1(c),112)).k);a.a<a.c.c.length;)i=jz(J1(a),129),(!e||i.c==(T7(),_we))&&s.g>i.b.g&&(r.c[r.c.length]=i);return r}function KOt(){KOt=D,N_e=new wT("CANDIDATE_POSITION_LAST_PLACED_RIGHT",0),M_e=new wT("CANDIDATE_POSITION_LAST_PLACED_BELOW",1),P_e=new wT("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT",2),B_e=new wT("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW",3),F_e=new wT("WHOLE_DRAWING",4)}function XOt(t,e){if(iO(e,239))return lht(t,jz(e,33));if(iO(e,186))return Nht(t,jz(e,118));if(iO(e,354))return QZ(t,jz(e,137));if(iO(e,352))return X$t(t,jz(e,79));if(e)return null;throw $m(new Pw(V7t+LEt(new Kw(Cst(Hx(Dte,1),zGt,1,5,[e])))))}function JOt(t){var e,n,i,a,r,o,s;for(r=new Zk,a=new Wf(t.d.a);a.a<a.c.c.length;)0==(i=jz(J1(a),121)).b.a.c.length&&n6(r,i,r.c.b,r.c);if(r.b>1)for(e=AM((n=new zy,++t.b,n),t.d),s=cmt(r,0);s.b!=s.d.c;)o=jz(d4(s),121),qMt(aE(iE(rE(nE(new $y,1),0),e),o))}function QOt(t,e){var n,i;if(e!=t.Cb||t.Db>>16!=11&&e){if(mxt(t,e))throw $m(new Pw(f7t+VPt(t)));i=null,t.Cb&&(i=(n=t.Db>>16)>=0?Ext(t,i):t.Cb.ih(t,-1-n,null,i)),e&&(i=Omt(e,t,10,i)),(i=UP(t,e,i))&&i.Fi()}else 4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,11,e,e))}function tMt(t){var e,n,i,a;for(i=new olt(new Ef(t.b).a);i.b;)a=jz((n=tnt(i)).cd(),11),lct(e=jz(n.dd(),10),(lGt(),fhe),a),lct(a,xhe,e),lct(a,the,(cM(),!0)),HTt(a,jz(yEt(e,Gde),61)),yEt(e,Gde),lct(a.i,(zYt(),tme),(Z_t(),GTe)),jz(yEt(bG(a.i),Xde),21).Fc((hBt(),gde))}function eMt(t,e,n){var i,a,r;if(i=0,a=0,t.c)for(r=new Wf(t.d.i.j);r.a<r.c.c.length;)i+=jz(J1(r),11).e.c.length;else i=1;if(t.d)for(r=new Wf(t.c.i.j);r.a<r.c.c.length;)a+=jz(J1(r),11).g.c.length;else a=1;return(n+e)/2+.4*CJ($H(a-i))*(n-e)}function nMt(t){var e,n;if(L_t(),t.Hc((wWt(),CAe)))throw $m(new Pw("Port sides must not contain UNDEFINED"));switch(t.gc()){case 1:return kle;case 2:return e=t.Hc(sAe)&&t.Hc(SAe),n=t.Hc(cAe)&&t.Hc(EAe),e||n?Sle:Cle;case 3:return Ele;case 4:return _le;default:return null}}function iMt(t,e,n){var i,a,r,o;for(Akt(n,"Breaking Point Removing",1),t.a=jz(yEt(e,(zYt(),Xpe)),218),a=new Wf(e.b);a.a<a.c.c.length;)for(o=new Wf(a0(jz(J1(a),29).a));o.a<o.c.c.length;)Ktt(r=jz(J1(o),10))&&!(i=jz(yEt(r,(lGt(),Nde)),305)).d&&VWt(t,i);zCt(n)}function aMt(t,e,n){return xBt(),(!Nrt(t,e)||!Nrt(t,n))&&(yqt(new OT(t.c,t.d),new OT(t.c+t.b,t.d),e,n)||yqt(new OT(t.c+t.b,t.d),new OT(t.c+t.b,t.d+t.a),e,n)||yqt(new OT(t.c+t.b,t.d+t.a),new OT(t.c,t.d+t.a),e,n)||yqt(new OT(t.c,t.d+t.a),new OT(t.c,t.d),e,n))}function rMt(t,e){var n,i,a,r;if(!t.dc())for(n=0,i=t.gc();n<i;++n)if(null==(r=kB(t.Xb(n)))?null==e:mF(r.substr(0,3),"!##")?null!=e&&(a=e.length,!mF(r.substr(r.length-a,a),e)||r.length!=e.length+3)&&!mF(E9t,e):mF(r,C9t)&&!mF(E9t,e)||mF(r,e))return!0;return!1}function oMt(t,e,n,i){var a,r,o,s,c,l;for(o=t.j.c.length,c=O5(eae,iJt,306,o,0,1),s=0;s<o;s++)(r=jz(OU(t.j,s),11)).p=s,c[s]=lDt(yIt(r),n,i);for(GMt(t,c,n,e,i),l=new Om,a=0;a<c.length;a++)c[a]&&YG(l,jz(OU(t.j,a),11),c[a]);l.f.c+l.g.c!=0&&(lct(t,(lGt(),Ude),l),DCt(t,c))}function sMt(t,e,n){var i,a;for(i=new Wf(t.a.b);i.a<i.c.c.length;)if((a=l2(jz(J1(i),57)))&&a.k==(oCt(),kse))switch(jz(yEt(a,(lGt(),Gde)),61).g){case 4:a.n.a=e.a;break;case 2:a.n.a=n.a-(a.o.a+a.d.c);break;case 1:a.n.b=e.b;break;case 3:a.n.b=n.b-(a.o.b+a.d.a)}}function cMt(){cMt=D,Tye=new $S(ZQt,0),_ye=new $S("NIKOLOV",1),Cye=new $S("NIKOLOV_PIXEL",2),kye=new $S("NIKOLOV_IMPROVED",3),Eye=new $S("NIKOLOV_IMPROVED_PIXEL",4),Rye=new $S("DUMMYNODE_PERCENTAGE",5),Sye=new $S("NODECOUNT_PERCENTAGE",6),Aye=new $S("NO_BOUNDARY",7)}function lMt(t,e,n){var i,a,r;return!(a=jz(JIt(e,(EEt(),VEe)),19))&&(a=nht(0)),!(r=jz(JIt(n,VEe),19))&&(r=nht(0)),a.a>r.a?-1:a.a<r.a?1:!t.a||0==(i=Cht(e.j,n.j))&&0==(i=Cht(e.i,n.i))?Cht(e.g*e.f,n.g*n.f):i}function uMt(t,e){var n,i,a,r,o,s,c,l,u,d;if(++t.e,e>(c=null==t.d?0:t.d.length)){for(u=t.d,t.d=O5(rIe,a8t,63,2*c+4,0,1),r=0;r<c;++r)if(l=u[r])for(i=l.g,d=l.i,s=0;s<d;++s)o=tP(t,(a=jz(i[s],133)).Sh()),!(n=t.d[o])&&(n=t.d[o]=t.uj()),n.Fc(a);return!0}return!1}function dMt(t,e,n){var i,a,r,o,s,c;if(r=(a=n).ak(),INt(t.e,r)){if(r.hi())for(i=jz(t.g,119),o=0;o<t.i;++o)if(Odt(s=i[o],a)&&o!=e)throw $m(new Pw(r5t))}else for(c=rNt(t.e.Tg(),r),i=jz(t.g,119),o=0;o<t.i;++o)if(s=i[o],c.rl(s.ak()))throw $m(new Pw(T9t));cht(t,e,n)}function hMt(t,e){var n,i,a,r,o,s;for(n=jz(yEt(e,(lGt(),qde)),21),o=jz(c7((BYt(),lse),n),21),s=jz(c7(pse,n),21),r=o.Kc();r.Ob();)if(i=jz(r.Pb(),21),!jz(c7(t.b,i),15).dc())return!1;for(a=s.Kc();a.Ob();)if(i=jz(a.Pb(),21),!jz(c7(t.b,i),15).dc())return!1;return!0}function fMt(t,e){var n,i,a;for(Akt(e,"Partition postprocessing",1),n=new Wf(t.b);n.a<n.c.c.length;)for(i=new Wf(jz(J1(n),29).a);i.a<i.c.c.length;)for(a=new Wf(jz(J1(i),10).j);a.a<a.c.c.length;)zw(RB(yEt(jz(J1(a),11),(lGt(),whe))))&&AW(a);zCt(e)}function gMt(t,e){var n,i,a,r,o,s,c;if(1==t.a.c.length)return jCt(jz(OU(t.a,0),187),e);for(a=adt(t),o=0,s=t.d,i=a,c=t.d,r=(s-i)/2+i;i+1<s;){for(o=0,n=new Wf(t.a);n.a<n.c.c.length;)o+=aHt(jz(J1(n),187),r,!1).a;o<e?(c=r,s=r):i=r,r=(s-i)/2+i}return c}function pMt(t){var e,n,i,a;return isNaN(t)?(q9(),pee):t<-0x8000000000000000?(q9(),fee):t>=0x8000000000000000?(q9(),hee):(i=!1,t<0&&(i=!0,t=-t),n=0,t>=AKt&&(t-=(n=CJ(t/AKt))*AKt),e=0,t>=TKt&&(t-=(e=CJ(t/TKt))*TKt),a=_L(CJ(t),e,n),i&&Act(a),a)}function bMt(t,e){var n,i,a,r;for(n=!e||!t.u.Hc((dAt(),eAe)),r=0,a=new Wf(t.e.Cf());a.a<a.c.c.length;){if((i=jz(J1(a),838)).Hf()==(wWt(),CAe))throw $m(new Pw("Label and node size calculator can only be used with ports that have port sides assigned."));i.vf(r++),Yut(t,i,n)}}function mMt(t,e){var n,i,a,r;return(i=e.Hh(t.a))&&(!i.b&&(i.b=new KN((pGt(),yLe),VLe,i)),null!=(n=kB(apt(i.b,X8t)))&&iO(r=-1==(a=n.lastIndexOf("#"))?rB(t,e.Aj(),n):0==a?_8(t,null,n.substr(1)):_8(t,n.substr(0,a),n.substr(a+1)),148))?jz(r,148):null}function yMt(t,e){var n,i,a,r;return(n=e.Hh(t.a))&&(!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),null!=(a=kB(apt(n.b,w9t)))&&iO(r=-1==(i=a.lastIndexOf("#"))?rB(t,e.Aj(),a):0==i?_8(t,null,a.substr(1)):_8(t,a.substr(0,i),a.substr(i+1)),148))?jz(r,148):null}function vMt(t){var e,n,i,a,r;for(n=new Wf(t.a.a);n.a<n.c.c.length;){for((e=jz(J1(n),307)).j=null,r=e.a.a.ec().Kc();r.Ob();)vD((i=jz(r.Pb(),57)).b),(!e.j||i.d.c<e.j.d.c)&&(e.j=i);for(a=e.a.a.ec().Kc();a.Ob();)(i=jz(a.Pb(),57)).b.a=i.d.c-e.j.d.c,i.b.b=i.d.d-e.j.d.d}return t}function wMt(t){var e,n,i,a,r;for(n=new Wf(t.a.a);n.a<n.c.c.length;){for((e=jz(J1(n),189)).f=null,r=e.a.a.ec().Kc();r.Ob();)vD((i=jz(r.Pb(),81)).e),(!e.f||i.g.c<e.f.g.c)&&(e.f=i);for(a=e.a.a.ec().Kc();a.Ob();)(i=jz(a.Pb(),81)).e.a=i.g.c-e.f.g.c,i.e.b=i.g.d-e.f.g.d}return t}function xMt(t){var e,n,a;return n=jz(t.a,19).a,a=jz(t.b,19).a,n<(e=i.Math.max(i.Math.abs(n),i.Math.abs(a)))&&a==-e?new nA(nht(n+1),nht(a)):n==e&&a<e?new nA(nht(n),nht(a+1)):n>=-e&&a==e?new nA(nht(n-1),nht(a)):new nA(nht(n),nht(a-1))}function RMt(){return dGt(),Cst(Hx(ele,1),IZt,77,0,[ice,tce,ace,wce,jce,kce,qce,Ace,Pce,pce,Oce,Tce,Fce,dce,Yce,Gse,Lce,zce,xce,$ce,Zce,Nce,Zse,Bce,Kce,Uce,Gce,Rce,cce,_ce,vce,Wce,Jse,oce,Cce,Xse,Sce,mce,hce,Dce,gce,ece,Qse,yce,fce,Ice,Vce,Kse,Mce,bce,Ece,lce,sce,Hce,rce,uce,nce])}function _Mt(t,e,n){t.d=0,t.b=0,e.k==(oCt(),Tse)&&n.k==Tse&&jz(yEt(e,(lGt(),fhe)),10)==jz(yEt(n,fhe),10)&&(k9(e).j==(wWt(),cAe)?HLt(t,e,n):HLt(t,n,e)),e.k==Tse&&n.k==Cse?k9(e).j==(wWt(),cAe)?t.d=1:t.b=1:n.k==Tse&&e.k==Cse&&(k9(n).j==(wWt(),cAe)?t.b=1:t.d=1),ovt(t,e,n)}function kMt(t){var e,n,i,a,r;return r=Dkt(t),null!=t.a&&AH(r,"category",t.a),!W_(new Cf(t.d))&&(net(r,"knownOptions",i=new Eh),e=new tm(i),t6(new Cf(t.d),e)),!W_(t.g)&&(net(r,"supportedFeatures",a=new Eh),n=new em(a),t6(t.g,n)),r}function EMt(t){var e,n,i,a,r,o,s,c;for(e=336,n=0,a=new sP(t.length),s=0,c=(o=t).length;s<c;++s)Zht(r=o[s]),xG(r),i=r.a,Wz(a.a,yY(i)),e&=i.qd(),n=Klt(n,i.rd());return jz(jz(qW(new NU(null,Hkt(new h1((WY(),Ogt(a.a)),16),new x,e,n)),new wh(t)),670),833)}function CMt(t,e){var n;t.d&&(e.c!=t.e.c||urt(t.e.b,e.b))&&(Wz(t.f,t.d),t.a=t.d.c+t.d.b,t.d=null,t.e=null),JD(e.b)?t.c=e:t.b=e,(e.b==(Dst(),Joe)&&!e.a||e.b==Qoe&&e.a||e.b==tse&&e.a||e.b==ese&&!e.a)&&t.c&&t.b&&(n=new VZ(t.a,t.c.d,e.c-t.a,t.b.d-t.c.d),t.d=n,t.e=e)}function SMt(t){var e;if(Zv.call(this),this.i=new fs,this.g=t,this.f=jz(t.e&&t.e(),9).length,0==this.f)throw $m(new Pw("There must be at least one phase in the phase enumeration."));this.c=new ZF(e=jz(YR(this.g),9),jz(kP(e,e.length),9),0),this.a=new j2,this.b=new Om}function TMt(t,e){var n,i;if(e!=t.Cb||t.Db>>16!=7&&e){if(mxt(t,e))throw $m(new Pw(f7t+aSt(t)));i=null,t.Cb&&(i=(n=t.Db>>16)>=0?lxt(t,i):t.Cb.ih(t,-1-n,null,i)),e&&(i=jz(e,49).gh(t,1,ODe,i)),(i=YV(t,e,i))&&i.Fi()}else 4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,7,e,e))}function AMt(t,e){var n,i;if(e!=t.Cb||t.Db>>16!=3&&e){if(mxt(t,e))throw $m(new Pw(f7t+Gdt(t)));i=null,t.Cb&&(i=(n=t.Db>>16)>=0?hxt(t,i):t.Cb.ih(t,-1-n,null,i)),e&&(i=jz(e,49).gh(t,0,FDe,i)),(i=GV(t,e,i))&&i.Fi()}else 4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,3,e,e))}function DMt(t,e){var n,i,a,r,o,s,c,l,u;return IDt(),e.d>t.d&&(s=t,t=e,e=s),e.d<63?WNt(t,e):(l=U6(t,o=(-2&t.d)<<4),u=U6(e,o),i=ozt(t,H6(l,o)),a=ozt(e,H6(u,o)),c=DMt(l,u),n=DMt(i,a),r=H6(r=IHt(IHt(r=DMt(ozt(l,i),ozt(a,u)),c),n),o),IHt(IHt(c=H6(c,o<<1),r),n))}function IMt(t,e,n){var i,a,r,o,s;for(o=Ldt(t,n),s=O5(Rse,r1t,10,e.length,0,1),i=0,r=o.Kc();r.Ob();)zw(RB(yEt(a=jz(r.Pb(),11),(lGt(),the))))&&(s[i++]=jz(yEt(a,xhe),10));if(i<e.length)throw $m(new Fw("Expected "+e.length+" hierarchical ports, but found only "+i+"."));return s}function LMt(t,e){var n,i,a,r,o,s;if(!t.tb){for(!t.rb&&(t.rb=new Kq(t,jIe,t)),s=new qk((r=t.rb).i),a=new AO(r);a.e!=a.i.gc();)i=jz(wmt(a),138),(n=jz(null==(o=i.ne())?xTt(s.f,null,i):oft(s.g,o,i),138))&&(null==o?xTt(s.f,null,n):oft(s.g,o,n));t.tb=s}return jz(kJ(t.tb,e),138)}function OMt(t,e){var n,i,a,r,o;if((null==t.i&&H$t(t),t.i).length,!t.p){for(o=new qk(1+(3*t.g.i/2|0)),a=new aN(t.g);a.e!=a.i.gc();)i=jz(xmt(a),170),(n=jz(null==(r=i.ne())?xTt(o.f,null,i):oft(o.g,r,i),170))&&(null==r?xTt(o.f,null,n):oft(o.g,r,n));t.p=o}return jz(kJ(t.p,e),170)}function MMt(t,e,n,i,a){var r,o,s,c;for(fbt(i+CX(n,n.$d()),a),QY(e,Lgt(n)),(r=n.f)&&MMt(t,e,r,"Caused by: ",!1),null==n.k&&(n.k=O5(Xte,cZt,78,0,0,1)),s=0,c=(o=n.k).length;s<c;++s)MMt(t,e,o[s],"Suppressed: ",!1);null!=console.groupEnd&&console.groupEnd.call(console)}function NMt(t,e,n,i){var a,r,o,s;for(o=(s=e.e).length,r=e.q._f(s,n?0:o-1,n),r|=pPt(t,s[n?0:o-1],n,i),a=n?1:o-2;n?a<o:a>=0;a+=n?1:-1)r|=e.c.Sf(s,a,n,i&&!zw(RB(yEt(e.j,(lGt(),Kde))))&&!zw(RB(yEt(e.j,(lGt(),She))))),r|=e.q._f(s,a,n),r|=pPt(t,s[a],n,i);return RW(t.c,e),r}function BMt(t,e,n){var i,a,r,o,s,c,l,u;for(l=0,u=(c=S2(t.j)).length;l<u;++l){if(s=c[l],n==(rit(),zye)||n==Uye)for(r=0,o=(a=X0(s.g)).length;r<o;++r)ACt(e,i=a[r])&&tzt(i,!0);if(n==Hye||n==Uye)for(r=0,o=(a=X0(s.e)).length;r<o;++r)TCt(e,i=a[r])&&tzt(i,!0)}}function PMt(t){var e,n;switch(e=null,n=null,e_t(t).g){case 1:wWt(),e=sAe,n=SAe;break;case 2:wWt(),e=EAe,n=cAe;break;case 3:wWt(),e=SAe,n=sAe;break;case 4:wWt(),e=cAe,n=EAe}zh(t,jz(DM(Tq(jz(c7(t.k,e),15).Oc(),Gle)),113)),$h(t,jz(DM(Sq(jz(c7(t.k,n),15).Oc(),Gle)),113))}function FMt(t){var e,n,i,a,r,o;if((a=jz(OU(t.j,0),11)).e.c.length+a.g.c.length==0)t.n.a=0;else{for(o=0,i=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[new $g(a),new Hg(a)])));gIt(i);)o+=(n=jz(V6(i),11)).i.n.a+n.n.a+n.a.a;r=(e=jz(yEt(t,(zYt(),Jbe)),8))?e.a:0,t.n.a=o/(a.e.c.length+a.g.c.length)-r}}function jMt(t,e){var n,i,a;for(i=new Wf(e.a);i.a<i.c.c.length;)n=jz(J1(i),221),IV(jz(n.b,65),qP(jL(jz(e.b,65).c),jz(e.b,65).a)),(a=Kjt(jz(e.b,65).b,jz(n.b,65).b))>1&&(t.a=!0),LV(jz(n.b,65),VP(jL(jz(e.b,65).c),vO(qP(jL(jz(n.b,65).a),jz(e.b,65).a),a))),GQ(t,e),jMt(t,n)}function $Mt(t){var e,n,i,a,r,o;for(a=new Wf(t.a.a);a.a<a.c.c.length;)(n=jz(J1(a),189)).e=0,n.d.a.$b();for(i=new Wf(t.a.a);i.a<i.c.c.length;)for(e=(n=jz(J1(i),189)).a.a.ec().Kc();e.Ob();)for(o=jz(e.Pb(),81).f.Kc();o.Ob();)(r=jz(o.Pb(),81)).d!=n&&(RW(n.d,r),++r.d.e)}function zMt(t){var e,n,i,a,r,o,s,c;for(n=0,e=c=t.j.c.length,a=2*c,s=new Wf(t.j);s.a<s.c.c.length;)switch(o=jz(J1(s),11),o.j.g){case 2:case 4:o.p=-1;break;case 1:case 3:i=o.e.c.length,r=o.g.c.length,o.p=i>0&&r>0?e++:i>0?n++:r>0?a++:n++}kK(),mL(t.j,new fi)}function HMt(t){var e,n;n=null,e=jz(OU(t.g,0),17);do{if(IN(n=e.d.i,(lGt(),lhe)))return jz(yEt(n,lhe),11).i;if(n.k!=(oCt(),Sse)&&gIt(new oq(XO(dft(n).a.Kc(),new u))))e=jz(V6(new oq(XO(dft(n).a.Kc(),new u))),17);else if(n.k!=Sse)return null}while(n&&n.k!=(oCt(),Sse));return n}function UMt(t,e){var n,i,a,r,o,s,c,l,u;for(s=e.j,o=e.g,c=jz(OU(s,s.c.length-1),113),u1(0,s.c.length),l=Jvt(t,o,c,u=jz(s.c[0],113)),r=1;r<s.c.length;r++)u1(r-1,s.c.length),n=jz(s.c[r-1],113),u1(r,s.c.length),(i=Jvt(t,o,n,a=jz(s.c[r],113)))>l&&(c=n,u=a,l=i);e.a=u,e.c=c}function VMt(t,e){var n;if(!XW(t.b,e.b))throw $m(new Fw("Invalid hitboxes for scanline constraint calculation."));(wst(e.b,jz(_P(t.b,e.b),57))||wst(e.b,jz(RP(t.b,e.b),57)))&&(Dk(),e.b),t.a[e.b.f]=jz(vF(t.b,e.b),57),(n=jz(yF(t.b,e.b),57))&&(t.a[n.f]=e.b)}function qMt(t){if(!t.a.d||!t.a.e)throw $m(new Fw((xB($ie),$ie.k+" must have a source and target "+(xB(zie),zie.k+" specified."))));if(t.a.d==t.a.e)throw $m(new Fw("Network simplex does not support self-loops: "+t.a+" "+t.a.d+" "+t.a.e));return NM(t.a.d.g,t.a),NM(t.a.e.b,t.a),t.a}function WMt(t,e,n){var i,a,r,o,s,c,l;for(l=new f_(new Kp(t)),s=0,c=(o=Cst(Hx($se,1),o1t,11,0,[e,n])).length;s<c;++s)for(r=o[s],kct(l.a,r,(cM(),mee)),a=new m7(r.b);yL(a.a)||yL(a.b);)(i=jz(yL(a.a)?J1(a.a):J1(a.b),17)).c==i.d||XW(l,r==i.c?i.d:i.c);return yY(l),new QF(l)}function YMt(t,e,n){var i,a,r,o,s,c;if(i=0,0!=e.b&&0!=n.b){r=cmt(e,0),o=cmt(n,0),s=Hw(_B(d4(r))),c=Hw(_B(d4(o))),a=!0;do{if(s>c-t.b&&s<c+t.b)return-1;s>c-t.a&&s<c+t.a&&++i,s<=c&&r.b!=r.d.c?s=Hw(_B(d4(r))):c<=s&&o.b!=o.d.c?c=Hw(_B(d4(o))):a=!1}while(a)}return i}function GMt(t,e,n,i,a){var r,o,s,c;for(c=new ZF(r=jz(YR(MAe),9),jz(kP(r,r.length),9),0),s=new Wf(t.j);s.a<s.c.c.length;)e[(o=jz(J1(s),11)).p]&&($Wt(o,e[o.p],i),sat(c,o.j));a?(U_t(t,e,(wWt(),sAe),2*n,i),U_t(t,e,SAe,2*n,i)):(U_t(t,e,(wWt(),cAe),2*n,i),U_t(t,e,EAe,2*n,i))}function ZMt(t){var e,n,i,a,r;if(r=new Lm,Aet(t.b,new vg(r)),t.b.c=O5(Dte,zGt,1,0,5,1),0!=r.c.length){for(u1(0,r.c.length),e=jz(r.c[0],78),n=1,i=r.c.length;n<i;++n)u1(n,r.c.length),(a=jz(r.c[n],78))!=e&&Ukt(e,a);if(iO(e,60))throw $m(jz(e,60));if(iO(e,289))throw $m(jz(e,289))}}function KMt(t,e){var n,i,a,r;for(t=null==t?VGt:(vG(t),t),n=new Sx,r=0,i=0;i<e.length&&-1!=(a=t.indexOf("%s",r));)oD(n,t.substr(r,a-r)),rD(n,e[i++]),r=a+2;if(oD(n,t.substr(r)),i<e.length){for(n.a+=" [",rD(n,e[i++]);i<e.length;)n.a+=jGt,rD(n,e[i++]);n.a+="]"}return n.a}function XMt(t){var e,n,i,a;for(e=0,a=(i=t.length)-4,n=0;n<a;)d1(n+3,t.length),e=t.charCodeAt(n+3)+(d1(n+2,t.length),31*(t.charCodeAt(n+2)+(d1(n+1,t.length),31*(t.charCodeAt(n+1)+(d1(n,t.length),31*(t.charCodeAt(n)+31*e)))))),e|=0,n+=4;for(;n<i;)e=31*e+lZ(t,n++);return e|=0}function JMt(t){var e;for(e=new oq(XO(dft(t).a.Kc(),new u));gIt(e);)if(jz(V6(e),17).d.i.k!=(oCt(),Ese))throw $m(new nx(C1t+pwt(t)+"' has its layer constraint set to LAST, but has at least one outgoing edge that does not go to a LAST_SEPARATE node. That must not happen."))}function QMt(t,e,n,a){var r,o,s,c,l,d,h;for(c=0,l=new Wf(t.a);l.a<l.c.c.length;){for(s=0,o=new oq(XO(uft(jz(J1(l),10)).a.Kc(),new u));gIt(o);)d=g1((r=jz(V6(o),17)).c).b,h=g1(r.d).b,s=i.Math.max(s,i.Math.abs(h-d));c=i.Math.max(c,s)}return a*i.Math.min(1,e/n)*c}function tNt(t){var e;return e=new Ex,256&t&&(e.a+="F"),128&t&&(e.a+="H"),512&t&&(e.a+="X"),2&t&&(e.a+="i"),8&t&&(e.a+="m"),4&t&&(e.a+="s"),32&t&&(e.a+="u"),64&t&&(e.a+="w"),16&t&&(e.a+="x"),t&w7t&&(e.a+=","),Vw(e.a)}function eNt(t,e){var n,i,a;for(Akt(e,"Resize child graph to fit parent.",1),i=new Wf(t.b);i.a<i.c.c.length;)n=jz(J1(i),29),pst(t.a,n.a),n.a.c=O5(Dte,zGt,1,0,5,1);for(a=new Wf(t.a);a.a<a.c.c.length;)EQ(jz(J1(a),10),null);t.b.c=O5(Dte,zGt,1,0,5,1),$Nt(t),t.e&&Ejt(t.e,t),zCt(e)}function nNt(t){var e,n,i,a,r,o,s;if(a=(i=t.b).e,r=IF(jz(yEt(i,(zYt(),tme)),98)),n=!!a&&jz(yEt(a,(lGt(),Xde)),21).Hc((hBt(),dde)),!r&&!n)for(s=new Bf(new Tf(t.e).a.vc().Kc());s.a.Ob();)e=jz(s.a.Pb(),42),(o=jz(e.dd(),113)).a&&(CQ(o.d,null),o.c=!0,t.a=!0)}function iNt(t){var e,n,i,a,r,o,s,c,l,u,d,h;for(d=-1,h=0,l=0,u=(c=t).length;l<u;++l){for(o=0,s=(r=c[l]).length;o<s;++o)for(a=r[o],e=new pS(-1==d?t[0]:t[d],sxt(a)),n=0;n<a.j.c.length;n++)for(i=n+1;i<a.j.c.length;i++)Lq(e,jz(OU(a.j,n),11),jz(OU(a.j,i),11))>0&&++h;++d}return h}function aNt(t,e){var n,i,a,r,o;for(o=jz(yEt(e,(SIt(),Ixe)),425),r=cmt(e.b,0);r.b!=r.d.c;)if(a=jz(d4(r),86),0==t.b[a.g]){switch(o.g){case 0:Zyt(t,a);break;case 1:zIt(t,a)}t.b[a.g]=2}for(i=cmt(t.a,0);i.b!=i.d.c;)vgt((n=jz(d4(i),188)).b.d,n,!0),vgt(n.c.b,n,!0);lct(e,(HUt(),uxe),t.a)}function rNt(t,e){var n,i,a,r;return XE(),e?e==(qUt(),NOe)||(e==mOe||e==pOe||e==bOe)&&t!=gOe?new aWt(t,e):((n=(i=jz(e,677)).pk())||(vZ(j9((TSt(),KLe),e)),n=i.pk()),!n.i&&(n.i=new Om),!(a=jz(zA(AX((r=n.i).f,t)),1942))&&YG(r,t,a=new aWt(t,e)),a):iOe}function oNt(t,e){var n,i,a,r,o,s,c,l;for(s=jz(yEt(t,(lGt(),fhe)),11),c=Dct(Cst(Hx(EEe,1),cZt,8,0,[s.i.n,s.n,s.a])).a,l=t.i.n.b,a=0,r=(i=X0(t.e)).length;a<r;++a)_Q(n=i[a],s),lD(n.a,new OT(c,l)),e&&((o=jz(yEt(n,(zYt(),bbe)),74))||(o=new vv,lct(n,bbe,o)),MH(o,new OT(c,l)))}function sNt(t,e){var n,i,a,r,o,s,c,l;for(i=jz(yEt(t,(lGt(),fhe)),11),c=Dct(Cst(Hx(EEe,1),cZt,8,0,[i.i.n,i.n,i.a])).a,l=t.i.n.b,o=0,s=(r=X0(t.g)).length;o<s;++o)kQ(a=r[o],i),cD(a.a,new OT(c,l)),e&&((n=jz(yEt(a,(zYt(),bbe)),74))||(n=new vv,lct(a,bbe,n)),MH(n,new OT(c,l)))}function cNt(t,e){var n,i,a,r,o;for(t.b=new Lm,t.d=jz(yEt(e,(lGt(),khe)),230),t.e=i0(t.d),r=new Zk,a=r7(Cst(Hx(wse,1),XQt,37,0,[e])),o=0;o<a.c.length;)u1(o,a.c.length),(i=jz(a.c[o],37)).p=o++,pst(a,(n=new SVt(i,t.a,t.b)).b),Wz(t.b,n),n.s&&JW(cmt(r,0),n);return t.c=new Ny,r}function lNt(t,e){var n,i,a,r,o,s;for(o=jz(jz(c7(t.r,e),21),84).Kc();o.Ob();)(n=(r=jz(o.Pb(),111)).c?YH(r.c):0)>0?r.a?n>(s=r.b.rf().a)&&(a=(n-s)/2,r.d.b=a,r.d.c=a):r.d.c=t.s+n:$q(t.u)&&((i=Fkt(r.b)).c<0&&(r.d.b=-i.c),i.c+i.b>r.b.rf().a&&(r.d.c=i.c+i.b-r.b.rf().a))}function uNt(t,e){var n,i;for(Akt(e,"Semi-Interactive Crossing Minimization Processor",1),n=!1,i=new Wf(t.b);i.a<i.c.c.length;)n|=null!=Idt(vet(AZ(AZ(new NU(null,new h1(jz(J1(i),29).a,16)),new Ki),new Xi),new Ji),new Qi).a;n&&lct(t,(lGt(),ahe),(cM(),!0)),zCt(e)}function dNt(t,e,n){var i,a,r;if(!(a=n)&&(a=new qv),Akt(a,"Layout",t.a.c.length),zw(RB(yEt(e,(SIt(),xxe)))))for(Dk(),i=0;i<t.a.c.length;i++)i++,JR(tlt(jz(OU(t.a,i),51)));for(r=new Wf(t.a);r.a<r.c.c.length;)jz(J1(r),51).pf(e,yrt(a,1));zCt(a)}function hNt(t){var e,n;if(e=jz(t.a,19).a,n=jz(t.b,19).a,e>=0){if(e==n)return new nA(nht(-e-1),nht(-e-1));if(e==-n)return new nA(nht(-e),nht(n+1))}return i.Math.abs(e)>i.Math.abs(n)?new nA(nht(-e),nht(e<0?n:n+1)):new nA(nht(e+1),nht(n))}function fNt(t){var e,n;n=jz(yEt(t,(zYt(),vbe)),163),e=jz(yEt(t,(lGt(),ehe)),303),n==(_ft(),jhe)?(lct(t,vbe,Hhe),lct(t,ehe,(U9(),Sde))):n==zhe?(lct(t,vbe,Hhe),lct(t,ehe,(U9(),Ede))):e==(U9(),Sde)?(lct(t,vbe,jhe),lct(t,ehe,Cde)):e==Ede&&(lct(t,vbe,zhe),lct(t,ehe,Cde))}function gNt(){gNt=D,wwe=new co,bwe=fU(new j2,(vEt(),Foe),(dGt(),xce)),vwe=WV(fU(new j2,Foe,Nce),$oe,Mce),xwe=sbt(sbt(FE(WV(fU(new j2,Boe,qce),$oe,Vce),joe),Uce),Wce),mwe=WV(fU(fU(fU(new j2,Poe,kce),joe,Cce),joe,Sce),$oe,Ece),ywe=WV(fU(fU(new j2,joe,Sce),joe,oce),$oe,rce)}function pNt(){pNt=D,Cwe=fU(WV(new j2,(vEt(),$oe),(dGt(),lce)),Foe,xce),Dwe=sbt(sbt(FE(WV(fU(new j2,Boe,qce),$oe,Vce),joe),Uce),Wce),Swe=WV(fU(fU(fU(new j2,Poe,kce),joe,Cce),joe,Sce),$oe,Ece),Awe=fU(fU(new j2,Foe,Nce),$oe,Mce),Twe=WV(fU(fU(new j2,joe,Sce),joe,oce),$oe,rce)}function bNt(t,e,n,i,a){var r,o;(!d6(e)&&e.c.i.c==e.d.i.c||!Qit(Dct(Cst(Hx(EEe,1),cZt,8,0,[a.i.n,a.n,a.a])),n))&&!d6(e)&&(e.c==a?BN(e.a,0,new hI(n)):MH(e.a,new hI(n)),i&&!Fk(t.a,n)&&((o=jz(yEt(e,(zYt(),bbe)),74))||(o=new vv,lct(e,bbe,o)),n6(o,r=new hI(n),o.c.b,o.c),RW(t.a,r)))}function mNt(t){var e;for(e=new oq(XO(uft(t).a.Kc(),new u));gIt(e);)if(jz(V6(e),17).c.i.k!=(oCt(),Ese))throw $m(new nx(C1t+pwt(t)+"' 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 yNt(t,e,n){var i,a,r,o,s,c;if(0==(a=bft(254&t.Db)))t.Eb=n;else{if(1==a)o=O5(Dte,zGt,1,2,5,1),0==Bvt(t,e)?(o[0]=n,o[1]=t.Eb):(o[0]=t.Eb,o[1]=n);else for(o=O5(Dte,zGt,1,a+1,5,1),r=ent(t.Eb),i=2,s=0,c=0;i<=128;i<<=1)i==e?o[c++]=n:t.Db&i&&(o[c++]=r[s++]);t.Eb=o}t.Db|=e}function vNt(t,e,n){var a,r,o,s;for(this.b=new Lm,r=0,a=0,s=new Wf(t);s.a<s.c.c.length;)o=jz(J1(s),167),n&&Pzt(o),Wz(this.b,o),r+=o.o,a+=o.p;this.b.c.length>0&&(r+=(o=jz(OU(this.b,0),167)).o,a+=o.p),r*=2,a*=2,e>1?r=CJ(i.Math.ceil(r*e)):a=CJ(i.Math.ceil(a/e)),this.a=new Hgt(r,a)}function wNt(t,e,n,a,r,o){var s,c,l,u,d,h,f,g,p,b;for(u=a,e.j&&e.o?(p=(f=jz(NY(t.f,e.A),57)).d.c+f.d.b,--u):p=e.a.c+e.a.b,d=r,n.q&&n.o?(l=(f=jz(NY(t.f,n.C),57)).d.c,++d):l=n.a.c,g=p+(c=(l-p)/i.Math.max(2,d-u)),h=u;h<d;++h)b=(s=jz(o.Xb(h),128)).a.b,s.a.c=g-b/2,g+=c}function xNt(t,e,n,i,a,r){var o,s,c,l,u,d;for(l=n.c.length,r&&(t.c=O5(TMe,lKt,25,e.length,15,1)),o=a?0:e.length-1;a?o<e.length:o>=0;o+=a?1:-1){for(s=e[o],c=i==(wWt(),sAe)?a?rft(s,i):eot(rft(s,i)):a?eot(rft(s,i)):rft(s,i),r&&(t.c[s.p]=c.gc()),d=c.Kc();d.Ob();)u=jz(d.Pb(),11),t.d[u.p]=l++;pst(n,c)}}function RNt(t,e,n){var i,a,r,o,s,c,l,u;for(r=Hw(_B(t.b.Kc().Pb())),l=Hw(_B(Yot(e.b))),i=vO(jL(t.a),l-n),a=vO(jL(e.a),n-r),vO(u=VP(i,a),1/(l-r)),this.a=u,this.b=new Lm,s=!0,(o=t.b.Kc()).Pb();o.Ob();)c=Hw(_B(o.Pb())),s&&c-n>N4t&&(this.b.Fc(n),s=!1),this.b.Fc(c);s&&this.b.Fc(n)}function _Nt(t){var e,n,i,a;if(lFt(t,t.n),t.d.c.length>0){for(Jw(t.c);bIt(t,jz(J1(new Wf(t.e.a)),121))<t.e.a.c.length;){for(a=(e=Bwt(t)).e.e-e.d.e-e.a,e.e.j&&(a=-a),i=new Wf(t.e.a);i.a<i.c.c.length;)(n=jz(J1(i),121)).j&&(n.e+=a);Jw(t.c)}Jw(t.c),bAt(t,jz(J1(new Wf(t.e.a)),121)),pVt(t)}}function kNt(t,e){var n,i,a,r,o;for(a=jz(c7(t.a,(L_t(),kle)),15).Kc();a.Ob();)switch(i=jz(a.Pb(),101),n=jz(OU(i.j,0),113).d.j,r=new QF(i.j),mL(r,new Ja),e.g){case 1:O_t(t,r,n,(Sat(),Nle),1);break;case 0:O_t(t,new s1(r,0,o=FOt(r)),n,(Sat(),Nle),0),O_t(t,new s1(r,o,r.c.length),n,Nle,1)}}function ENt(t,e){var n,i;if(Ost(),n=R6(ait(),e.tg())){if(i=n.j,iO(t,239))return nQ(jz(t,33))?kM(i,(imt(),cEe))||kM(i,lEe):kM(i,(imt(),cEe));if(iO(t,352))return kM(i,(imt(),oEe));if(iO(t,186))return kM(i,(imt(),uEe));if(iO(t,354))return kM(i,(imt(),sEe))}return!0}function CNt(t,e,n){var i,a,r,o,s,c;if(r=(a=n).ak(),INt(t.e,r)){if(r.hi())for(i=jz(t.g,119),o=0;o<t.i;++o)if(Odt(s=i[o],a)&&o!=e)throw $m(new Pw(r5t))}else for(c=rNt(t.e.Tg(),r),i=jz(t.g,119),o=0;o<t.i;++o)if(s=i[o],c.rl(s.ak())&&o!=e)throw $m(new Pw(T9t));return jz(syt(t,e,n),72)}function SNt(t,e){if(e instanceof Object)try{if(e.__java$exception=t,-1!=navigator.userAgent.toLowerCase().indexOf("msie")&&$doc.documentMode<9)return;var n=t;Object.defineProperties(e,{cause:{get:function(){var t=n.Zd();return t&&t.Xd()}},suppressed:{get:function(){return n.Yd()}}})}catch{}}function TNt(t,e){var n,i,a,r,o;if(i=e>>5,e&=31,i>=t.d)return t.e<0?(ABt(),Xee):(ABt(),nne);if(r=t.d-i,ZCt(a=O5(TMe,lKt,25,r+1,15,1),r,t.a,i,e),t.e<0){for(n=0;n<i&&0==t.a[n];n++);if(n<i||e>0&&t.a[n]<<32-e){for(n=0;n<r&&-1==a[n];n++)a[n]=0;n==r&&++r,++a[n]}}return q0(o=new uW(t.e,r,a)),o}function ANt(t){var e,n,i,a;return n=new Dg(a=WJ(t)),i=new Ig(a),pst(e=new Lm,(!t.d&&(t.d=new cF(BDe,t,8,5)),t.d)),pst(e,(!t.e&&(t.e=new cF(BDe,t,7,4)),t.e)),jz(E3(DZ(AZ(new NU(null,new h1(e,16)),n),i),O9(new K,new X,new at,new rt,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Kne),Zne]))),21)}function DNt(t,e,n,i){var a,r,o,s,c;if(XE(),s=jz(e,66).Oj(),INt(t.e,e)){if(e.hi()&&q$t(t,e,i,iO(e,99)&&0!=(jz(e,18).Bb&$Kt)))throw $m(new Pw(r5t))}else for(c=rNt(t.e.Tg(),e),a=jz(t.g,119),o=0;o<t.i;++o)if(r=a[o],c.rl(r.ak()))throw $m(new Pw(T9t));cht(t,RSt(t,e,n),s?jz(i,72):X4(e,i))}function INt(t,e){var n,i,a;return XE(),!!e.$j()||-2==e.Zj()&&(e==(_Dt(),lOe)||e==oOe||e==sOe||e==cOe||!(Dgt(a=t.Tg(),e)>=0)&&(!(n=jUt((TSt(),KLe),a,e))||((i=n.Zj())>1||-1==i)&&3!=MG(j9(KLe,n))))}function LNt(t,e,n,i){var a,r,o,s,c;return s=Ckt(jz(Yet((!e.b&&(e.b=new cF(NDe,e,4,7)),e.b),0),82)),c=Ckt(jz(Yet((!e.c&&(e.c=new cF(NDe,e,5,8)),e.c),0),82)),KJ(s)==KJ(c)||Set(c,s)?null:(o=qJ(e))==n?i:(r=jz(NY(t.a,o),10))&&(a=r.e)?a:null}function ONt(t,e){var n;switch(Akt(e,"Label side selection ("+(n=jz(yEt(t,(zYt(),Kpe)),276))+")",1),n.g){case 0:_It(t,(Wwt(),xTe));break;case 1:_It(t,(Wwt(),RTe));break;case 2:czt(t,(Wwt(),xTe));break;case 3:czt(t,(Wwt(),RTe));break;case 4:oBt(t,(Wwt(),xTe));break;case 5:oBt(t,(Wwt(),RTe))}zCt(e)}function MNt(t,e,n){var i,a,r,o,s;if((r=t[uR(n,t.length)])[0].k==(oCt(),kse))for(a=lR(n,r.length),s=e.j,i=0;i<s.c.length;i++)u1(i,s.c.length),o=jz(s.c[i],11),(n?o.j==(wWt(),sAe):o.j==(wWt(),SAe))&&zw(RB(yEt(o,(lGt(),the))))&&(i6(s,i,jz(yEt(r[a],(lGt(),fhe)),11)),a+=n?1:-1)}function NNt(t,e){var n,i,a,r,o;o=new Lm,n=e;do{(r=jz(NY(t.b,n),128)).B=n.c,r.D=n.d,o.c[o.c.length]=r,n=jz(NY(t.k,n),17)}while(n);return u1(0,o.c.length),(i=jz(o.c[0],128)).j=!0,i.A=jz(i.d.a.ec().Kc().Pb(),17).c.i,(a=jz(OU(o,o.c.length-1),128)).q=!0,a.C=jz(a.d.a.ec().Kc().Pb(),17).d.i,o}function BNt(t){if(null==t.g)switch(t.p){case 0:t.g=lQ(t)?(cM(),yee):(cM(),mee);break;case 1:t.g=Ett(M4(t));break;case 2:t.g=ust(G1(t));break;case 3:t.g=TG(t);break;case 4:t.g=new Lf(SG(t));break;case 6:t.g=xbt(AG(t));break;case 5:t.g=nht(cJ(t));break;case 7:t.g=iht(P4(t))}return t.g}function PNt(t){if(null==t.n)switch(t.p){case 0:t.n=uQ(t)?(cM(),yee):(cM(),mee);break;case 1:t.n=Ett(N4(t));break;case 2:t.n=ust(Z1(t));break;case 3:t.n=IG(t);break;case 4:t.n=new Lf(LG(t));break;case 6:t.n=xbt(DG(t));break;case 5:t.n=nht(lJ(t));break;case 7:t.n=iht(B4(t))}return t.n}function FNt(t){var e,n,i,a,r,o;for(a=new Wf(t.a.a);a.a<a.c.c.length;)(n=jz(J1(a),307)).g=0,n.i=0,n.e.a.$b();for(i=new Wf(t.a.a);i.a<i.c.c.length;)for(e=(n=jz(J1(i),307)).a.a.ec().Kc();e.Ob();)for(o=jz(e.Pb(),57).c.Kc();o.Ob();)(r=jz(o.Pb(),57)).a!=n&&(RW(n.e,r),++r.a.g,++r.a.i)}function jNt(t,e){var n,i,a;if(!XW(t.a,e.b))throw $m(new Fw("Invalid hitboxes for scanline overlap calculation."));for(a=!1,i=new Ff(new jP(new OM(new Pf(t.a.a).a).b));aC(i.a.a);)if(n=jz(mN(i.a).cd(),65),ect(e.b,n))OR(t.b.a,e.b,n),a=!0;else if(a)break}function $Nt(t){var e,n,a,r,o;r=jz(yEt(t,(zYt(),Fbe)),21),o=jz(yEt(t,zbe),21),e=new hI(n=new OT(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a)),r.Hc((ypt(),NAe))&&(a=jz(yEt(t,$be),8),o.Hc((QFt(),UAe))&&(a.a<=0&&(a.a=20),a.b<=0&&(a.b=20)),e.a=i.Math.max(n.a,a.a),e.b=i.Math.max(n.b,a.b)),Wzt(t,n,e)}function zNt(t,e){var n,i,a,r,o,s,c,l;a=e?new mr:new yr,r=!1;do{for(r=!1,o=(e?eot(t.b):t.b).Kc();o.Ob();)for(l=a0(jz(o.Pb(),29).a),e||new lw(l),c=new Wf(l);c.a<c.c.c.length;)s=jz(J1(c),10),a.Mb(s)&&(i=s,n=jz(yEt(s,(lGt(),Nde)),305),r=ePt(i,e?n.b:n.k,e,!1))}while(r)}function HNt(t,e,n){var i,a,r,o;for(Akt(n,"Longest path layering",1),t.a=e,o=t.a.a,t.b=O5(TMe,lKt,25,o.c.length,15,1),i=0,r=new Wf(o);r.a<r.c.c.length;)jz(J1(r),10).p=i,t.b[i]=-1,++i;for(a=new Wf(o);a.a<a.c.c.length;)NLt(t,jz(J1(a),10));o.c=O5(Dte,zGt,1,0,5,1),t.a=null,t.b=null,zCt(n)}function UNt(t,e){var n,i,a;e.a?(XW(t.b,e.b),t.a[e.b.i]=jz(vF(t.b,e.b),81),(n=jz(yF(t.b,e.b),81))&&(t.a[n.i]=e.b)):((i=jz(vF(t.b,e.b),81))&&i==t.a[e.b.i]&&i.d&&i.d!=e.b.d&&i.f.Fc(e.b),(a=jz(yF(t.b,e.b),81))&&t.a[a.i]==e.b&&a.d&&a.d!=e.b.d&&e.b.f.Fc(a),_M(t.b,e.b))}function VNt(t,e){var n,a,r,o,s,c;return o=t.d,(c=Hw(_B(yEt(t,(zYt(),abe)))))<0&&lct(t,abe,c=0),e.o.b=c,s=i.Math.floor(c/2),HTt(a=new SCt,(wWt(),SAe)),CQ(a,e),a.n.b=s,HTt(r=new SCt,sAe),CQ(r,e),r.n.b=s,_Q(t,a),Hot(n=new hX,t),lct(n,bbe,null),kQ(n,r),_Q(n,o),x$t(e,t,n),cTt(t,n),n}function qNt(t){var e,n;return n=jz(yEt(t,(lGt(),Xde)),21),e=new j2,n.Hc((hBt(),hde))&&(Xrt(e,dwe),Xrt(e,fwe)),(n.Hc(gde)||zw(RB(yEt(t,(zYt(),rbe)))))&&(Xrt(e,fwe),n.Hc(pde)&&Xrt(e,gwe)),n.Hc(dde)&&Xrt(e,uwe),n.Hc(mde)&&Xrt(e,pwe),n.Hc(fde)&&Xrt(e,hwe),n.Hc(cde)&&Xrt(e,cwe),n.Hc(ude)&&Xrt(e,lwe),e}function WNt(t,e){var n,i,a,r,o,s,c,l,u;return r=(n=t.d)+(i=e.d),o=t.e!=e.e?-1:1,2==r?(u=fV(c=aft(t0(t.a[0],qKt),t0(e.a[0],qKt))),0==(l=fV(wq(c,32)))?new q7(o,u):new uW(o,2,Cst(Hx(TMe,1),lKt,25,15,[u,l]))):(Ndt(t.a,n,e.a,i,a=O5(TMe,lKt,25,r,15,1)),q0(s=new uW(o,r,a)),s)}function YNt(t,e,n,i){var a,r;return e?0==(a=t.a.ue(n.d,e.d))?(i.d=pP(e,n.e),i.b=!0,e):(r=a<0?0:1,e.a[r]=YNt(t,e.a[r],n,i),Yw(e.a[r])&&(Yw(e.a[1-r])?(e.b=!0,e.a[0].b=!1,e.a[1].b=!1):Yw(e.a[r].a[r])?e=fat(e,1-r):Yw(e.a[r].a[1-r])&&(e=n2(e,1-r))),e):n}function GNt(t,e,n){var a,r,o,s;r=t.i,a=t.n,Z6(t,(Net(),Uie),r.c+a.b,n),Z6(t,qie,r.c+r.b-a.c-n[2],n),s=r.b-a.b-a.c,n[0]>0&&(n[0]+=t.d,s-=n[0]),n[2]>0&&(n[2]+=t.d,s-=n[2]),o=i.Math.max(0,s),n[1]=i.Math.max(n[1],s),Z6(t,Vie,r.c+a.b+n[0]-(n[1]-s)/2,n),e==Vie&&(t.c.b=o,t.c.c=r.c+a.b+(o-s)/2)}function ZNt(){this.c=O5(LMe,HKt,25,(wWt(),Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])).length,15,1),this.b=O5(LMe,HKt,25,Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe]).length,15,1),this.a=O5(LMe,HKt,25,Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe]).length,15,1),mC(this.c,BKt),mC(this.b,PKt),mC(this.a,PKt)}function KNt(t,e,n){var i,a,r,o;if(e<=n?(a=e,r=n):(a=n,r=e),i=0,null==t.b)t.b=O5(TMe,lKt,25,2,15,1),t.b[0]=a,t.b[1]=r,t.c=!0;else{if(i=t.b.length,t.b[i-1]+1==a)return void(t.b[i-1]=r);o=O5(TMe,lKt,25,i+2,15,1),rHt(t.b,0,o,0,i),t.b=o,t.b[i-1]>=a&&(t.c=!1,t.a=!1),t.b[i++]=a,t.b[i]=r,t.c||_Lt(t)}}function XNt(t,e,n){var i,a,r,o,s,c,l;for(l=e.d,t.a=new K7(l.c.length),t.c=new Om,s=new Wf(l);s.a<s.c.c.length;)o=jz(J1(s),101),r=new jot(null),Wz(t.a,r),YG(t.c,o,r);for(t.b=new Om,mTt(t,e),i=0;i<l.c.length-1;i++)for(c=jz(OU(e.d,i),101),a=i+1;a<l.c.length;a++)YOt(t,c,jz(OU(e.d,a),101),n)}function JNt(t,e,n){var i,a,r,o,s,c;if(!c4(e)){for(Akt(c=yrt(n,(iO(e,14)?jz(e,14).gc():F4(e.Kc()))/t.a|0),V4t,1),s=new Do,o=0,r=e.Kc();r.Ob();)i=jz(r.Pb(),86),s=Ynt(Cst(Hx(Mte,1),zGt,20,0,[s,new db(i)])),o<i.f.b&&(o=i.f.b);for(a=e.Kc();a.Ob();)lct(i=jz(a.Pb(),86),(HUt(),rxe),o);zCt(c),JNt(t,s,n)}}function QNt(t,e){var n,a,r,o,s,c,l;for(n=PKt,oCt(),c=Sse,r=new Wf(e.a);r.a<r.c.c.length;)(o=(a=jz(J1(r),10)).k)!=Sse&&(null==(s=_B(yEt(a,(lGt(),phe))))?(n=i.Math.max(n,0),a.n.b=n+qM(t.a,o,c)):a.n.b=(vG(s),s)),l=qM(t.a,o,c),a.n.b<n+l+a.d.d&&(a.n.b=n+l+a.d.d),n=a.n.b+a.o.b+a.d.a,c=o}function tBt(t,e,n){var i,a,r;for(Hot(r=new RIt(WYt(HCt(aBt(e,!1,!1)),Hw(_B(JIt(e,(Rmt(),pre))))+t.a)),e),YG(t.b,e,r),n.c[n.c.length]=r,!e.n&&(e.n=new tW(HDe,e,1,7)),a=new AO(e.n);a.e!=a.i.gc();)i=XPt(t,jz(wmt(a),137),!0,0,0),n.c[n.c.length]=i;return r}function eBt(t,e,n,i,a){var r,o,s;if(t.d&&t.d.lg(a),Nyt(t,n,jz(a.Xb(0),33),!1)||Nyt(t,i,jz(a.Xb(a.gc()-1),33),!0)||OEt(t,a))return!0;for(s=a.Kc();s.Ob();)for(o=jz(s.Pb(),33),r=e.Kc();r.Ob();)if(FBt(t,o,jz(r.Pb(),33)))return!0;return!1}function nBt(t,e,n){var i,a,r,o,s,c,l,u,d;d=e.c.length;t:for(r=jz((l=t.Yg(n))>=0?t._g(l,!1,!0):aDt(t,n,!1),58).Kc();r.Ob();){for(a=jz(r.Pb(),56),u=0;u<d;++u)if(u1(u,e.c.length),c=(o=jz(e.c[u],72)).dd(),s=o.ak(),i=a.bh(s,!1),null==c?null!=i:!Odt(c,i))continue t;return a}return null}function iBt(t,e,n,i){var a,r,o,s;for(a=jz(NCt(e,(wWt(),SAe)).Kc().Pb(),11),r=jz(NCt(e,sAe).Kc().Pb(),11),s=new Wf(t.j);s.a<s.c.c.length;){for(o=jz(J1(s),11);0!=o.e.c.length;)_Q(jz(OU(o.e,0),17),a);for(;0!=o.g.c.length;)kQ(jz(OU(o.g,0),17),r)}n||lct(e,(lGt(),che),null),i||lct(e,(lGt(),lhe),null)}function aBt(t,e,n){var i,a;if(0==(!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i)return Hst(t);if(i=jz(Yet((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a),0),202),e&&(cUt((!i.a&&(i.a=new DO(LDe,i,5)),i.a)),Tnt(i,0),Dnt(i,0),_nt(i,0),Ant(i,0)),n)for(!t.a&&(t.a=new tW(PDe,t,6,6)),a=t.a;a.i>1;)uBt(a,a.i-1);return i}function rBt(t,e){var n,i,a,r,o,s,c;for(Akt(e,"Comment post-processing",1),r=new Wf(t.b);r.a<r.c.c.length;){for(a=jz(J1(r),29),i=new Lm,s=new Wf(a.a);s.a<s.c.c.length;)o=jz(J1(s),10),c=jz(yEt(o,(lGt(),Bhe)),15),n=jz(yEt(o,Mde),15),(c||n)&&(Yqt(o,c,n),c&&pst(i,c),n&&pst(i,n));pst(a.a,i)}zCt(e)}function oBt(t,e){var n,i,a,r,o,s;for(n=new Im,a=new Wf(t.b);a.a<a.c.c.length;){for(s=!0,i=0,o=new Wf(jz(J1(a),29).a);o.a<o.c.c.length;)switch(r=jz(J1(o),10),r.k.g){case 4:++i;case 1:h4(n,r);break;case 0:sTt(r,e);default:n.b==n.c||bjt(n,i,s,!1,e),s=!1,i=0}n.b==n.c||bjt(n,i,s,!0,e)}}function sBt(t,e){var n,i,a,r,o,s;for(a=new Lm,n=0;n<=t.i;n++)(i=new $Y(e)).p=t.i-n,a.c[a.c.length]=i;for(s=new Wf(t.o);s.a<s.c.c.length;)EQ(o=jz(J1(s),10),jz(OU(a,t.i-t.f[o.p]),29));for(r=new Wf(a);r.a<r.c.c.length;)0==jz(J1(r),29).a.c.length&&AW(r);e.b.c=O5(Dte,zGt,1,0,5,1),pst(e.b,a)}function cBt(t,e){var n,i,a,r,o,s;for(n=0,s=new Wf(e);s.a<s.c.c.length;){for(o=jz(J1(s),11),Qlt(t.b,t.d[o.p]),a=new m7(o.b);yL(a.a)||yL(a.b);)(r=__(t,o==(i=jz(yL(a.a)?J1(a.a):J1(a.b),17)).c?i.d:i.c))>t.d[o.p]&&(n+=J3(t.b,r),f4(t.a,nht(r)));for(;!Ww(t.a);)_tt(t.b,jz(fW(t.a),19).a)}return n}function lBt(t,e,n){var i,a,r,o;for(r=(!e.a&&(e.a=new tW(UDe,e,10,11)),e.a).i,a=new AO((!e.a&&(e.a=new tW(UDe,e,10,11)),e.a));a.e!=a.i.gc();)0==(!(i=jz(wmt(a),33)).a&&(i.a=new tW(UDe,i,10,11)),i.a).i||(r+=lBt(t,i,!1));if(n)for(o=KJ(e);o;)r+=(!o.a&&(o.a=new tW(UDe,o,10,11)),o.a).i,o=KJ(o);return r}function uBt(t,e){var n,i,a,r;return t.ej()?(i=null,a=t.fj(),t.ij()&&(i=t.kj(t.pi(e),null)),n=t.Zi(4,r=Lwt(t,e),null,e,a),t.bj()&&null!=r&&(i=t.dj(r,i)),i?(i.Ei(n),i.Fi()):t.$i(n),r):(r=Lwt(t,e),t.bj()&&null!=r&&(i=t.dj(r,null))&&i.Fi(),r)}function dBt(t){var e,n,a,r,o,s,c,l,u,d;for(u=t.a,e=new Ny,l=0,a=new Wf(t.d);a.a<a.c.c.length;){for(d=0,Fat((n=jz(J1(a),222)).b,new It),s=cmt(n.b,0);s.b!=s.d.c;)o=jz(d4(s),222),e.a._b(o)&&(r=n.c,d<(c=o.c).d+c.a+u&&d+r.a+u>c.d&&(d=c.d+c.a+u));n.c.d=d,e.a.zc(n,e),l=i.Math.max(l,n.c.d+n.c.a)}return l}function hBt(){hBt=D,lde=new IS("COMMENTS",0),dde=new IS("EXTERNAL_PORTS",1),hde=new IS("HYPEREDGES",2),fde=new IS("HYPERNODES",3),gde=new IS("NON_FREE_PORTS",4),pde=new IS("NORTH_SOUTH_PORTS",5),mde=new IS(U1t,6),cde=new IS("CENTER_LABELS",7),ude=new IS("END_LABELS",8),bde=new IS("PARTITIONS",9)}function fBt(t){var e,n,i,a,r;for(a=new Lm,e=new DU((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a)),i=new oq(XO(gOt(t).a.Kc(),new u));gIt(i);)iO(Yet((!(n=jz(V6(i),79)).b&&(n.b=new cF(NDe,n,4,7)),n.b),0),186)||(r=Ckt(jz(Yet((!n.c&&(n.c=new cF(NDe,n,5,8)),n.c),0),82)),e.a._b(r)||(a.c[a.c.length]=r));return a}function gBt(t){var e,n,i,a,r;for(a=new Ny,e=new DU((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a)),i=new oq(XO(gOt(t).a.Kc(),new u));gIt(i);)iO(Yet((!(n=jz(V6(i),79)).b&&(n.b=new cF(NDe,n,4,7)),n.b),0),186)||(r=Ckt(jz(Yet((!n.c&&(n.c=new cF(NDe,n,5,8)),n.c),0),82)),e.a._b(r)||a.a.zc(r,a));return a}function pBt(t,e,n,i,a){return i<0?((i=Vkt(t,a,Cst(Hx(zee,1),cZt,2,6,[KZt,XZt,JZt,QZt,tKt,eKt,nKt,iKt,aKt,rKt,oKt,sKt]),e))<0&&(i=Vkt(t,a,Cst(Hx(zee,1),cZt,2,6,["Jan","Feb","Mar","Apr",tKt,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e)),!(i<0||(n.k=i,0))):i>0&&(n.k=i-1,!0)}function bBt(t,e,n,i,a){return i<0?((i=Vkt(t,a,Cst(Hx(zee,1),cZt,2,6,[KZt,XZt,JZt,QZt,tKt,eKt,nKt,iKt,aKt,rKt,oKt,sKt]),e))<0&&(i=Vkt(t,a,Cst(Hx(zee,1),cZt,2,6,["Jan","Feb","Mar","Apr",tKt,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e)),!(i<0||(n.k=i,0))):i>0&&(n.k=i-1,!0)}function mBt(t,e,n,i,a,r){var o,s,c;if(s=32,i<0){if(e[0]>=t.length||43!=(s=lZ(t,e[0]))&&45!=s||(++e[0],(i=qAt(t,e))<0))return!1;45==s&&(i=-i)}return 32==s&&e[0]-n==2&&2==a.b&&(o=(c=(new Ak).q.getFullYear()-cKt+cKt-80)%100,r.a=i==o,i+=100*(c/100|0)+(i<o?100:0)),r.p=i,!0}function yBt(t,e){var n,a,r;KJ(t)&&(r=jz(yEt(e,(zYt(),Fbe)),174),HA(JIt(t,tme))===HA((Z_t(),KTe))&&Kmt(t,tme,ZTe),HE(),a=Hqt(new Mw(KJ(t)),new KM(KJ(t)?new Mw(KJ(t)):null,t),!1,!0),sat(r,(ypt(),NAe)),(n=jz(yEt(e,$be),8)).a=i.Math.max(a.a,n.a),n.b=i.Math.max(a.b,n.b))}function vBt(t,e,n){var i,a,r,o,s,c;for(o=jz(yEt(t,(lGt(),Jde)),15).Kc();o.Ob();){switch(r=jz(o.Pb(),10),jz(yEt(r,(zYt(),vbe)),163).g){case 2:EQ(r,e);break;case 4:EQ(r,n)}for(a=new oq(XO(lft(r).a.Kc(),new u));gIt(a);)(!(i=jz(V6(a),17)).c||!i.d)&&(s=!i.d,c=jz(yEt(i,mhe),11),s?_Q(i,c):kQ(i,c))}}function wBt(){wBt=D,$le=new WZ(yJt,0,(wWt(),cAe),cAe),Ule=new WZ(wJt,1,EAe,EAe),jle=new WZ(vJt,2,sAe,sAe),Wle=new WZ(xJt,3,SAe,SAe),Hle=new WZ("NORTH_WEST_CORNER",4,SAe,cAe),zle=new WZ("NORTH_EAST_CORNER",5,cAe,sAe),qle=new WZ("SOUTH_WEST_CORNER",6,EAe,SAe),Vle=new WZ("SOUTH_EAST_CORNER",7,sAe,EAe)}function xBt(){xBt=D,_Ee=Cst(Hx(DMe,1),jKt,25,14,[1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368e3,{l:3506176,m:794077,h:1},{l:884736,m:916411,h:20},{l:3342336,m:3912489,h:363},{l:589824,m:3034138,h:6914},{l:3407872,m:1962506,h:138294}]),i.Math.pow(2,-65)}function RBt(t,e){var n,i,a,r,o;if(0==t.c.length)return new nA(nht(0),nht(0));for(n=(u1(0,t.c.length),jz(t.c[0],11)).j,o=0,r=e.g,i=e.g+1;o<t.c.length-1&&n.g<r;)n=(u1(++o,t.c.length),jz(t.c[o],11)).j;for(a=o;a<t.c.length-1&&n.g<i;)++a,n=(u1(o,t.c.length),jz(t.c[o],11)).j;return new nA(nht(o),nht(a))}function _Bt(t,e,n){var a,r,o,s,c,l,u,d,h,f;for(o=e.c.length,u1(n,e.c.length),c=(s=jz(e.c[n],286)).a.o.a,h=s.c,f=0,u=s.c;u<=s.f;u++){if(c<=t.a[u])return u;for(d=t.a[u],l=null,r=n+1;r<o;r++)u1(r,e.c.length),(a=jz(e.c[r],286)).c<=u&&a.f>=u&&(l=a);l&&(d=i.Math.max(d,l.a.o.a)),d>f&&(h=u,f=d)}return h}function kBt(t,e,n){var i,a,r;if(t.e=n,t.d=0,t.b=0,t.f=1,t.i=e,16==(16&t.e)&&(t.i=bFt(t.i)),t.j=t.i.length,ZYt(t),r=Gpt(t),t.d!=t.j)throw $m(new ax(wGt((rL(),f5t))));if(t.g){for(i=0;i<t.g.a.c.length;i++)if(a=jz(dG(t.g,i),584),t.f<=a.a)throw $m(new ax(wGt((rL(),g5t))));t.g.a.c=O5(Dte,zGt,1,0,5,1)}return r}function EBt(t,e){var n,i;if(null==e){for(!t.a&&(t.a=new tW(qIe,t,9,5)),i=new AO(t.a);i.e!=i.i.gc();)if(null==((n=jz(wmt(i),678)).c??n.zb))return n}else for(!t.a&&(t.a=new tW(qIe,t,9,5)),i=new AO(t.a);i.e!=i.i.gc();)if(mF(e,(n=jz(wmt(i),678)).c??n.zb))return n;return null}function CBt(t,e){var n;switch(n=null,e.g){case 1:t.e.Xe((cGt(),tSe))&&(n=jz(t.e.We(tSe),249));break;case 3:t.e.Xe((cGt(),eSe))&&(n=jz(t.e.We(eSe),249));break;case 2:t.e.Xe((cGt(),QCe))&&(n=jz(t.e.We(QCe),249));break;case 4:t.e.Xe((cGt(),nSe))&&(n=jz(t.e.We(nSe),249))}return!n&&(n=jz(t.e.We((cGt(),XCe)),249)),n}function SBt(t,e,n){var i,a,r,o,s,c;for(e.p=1,a=e.c,c=Mgt(e,(rit(),Hye)).Kc();c.Ob();)for(i=new Wf(jz(c.Pb(),11).g);i.a<i.c.c.length;)e!=(s=jz(J1(i),17).d.i)&&s.c.p<=a.p&&((r=a.p+1)==n.b.c.length?((o=new $Y(n)).p=r,Wz(n.b,o),EQ(s,o)):EQ(s,o=jz(OU(n.b,r),29)),SBt(t,s,n))}function TBt(t,e,n){var a,r,o,s,c,l;for(r=n,o=0,c=new Wf(e);c.a<c.c.c.length;)Kmt(s=jz(J1(c),33),(qwt(),IRe),nht(r++)),l=fBt(s),a=i.Math.atan2(s.j+s.f/2,s.i+s.g/2),(a+=a<0?J4t:0)<.7853981633974483||a>b3t?mL(l,t.b):a<=b3t&&a>m3t?mL(l,t.d):a<=m3t&&a>y3t?mL(l,t.c):a<=y3t&&mL(l,t.a),o=TBt(t,l,o);return r}function ABt(){var t;for(ABt=D,Jee=new q7(1,1),tne=new q7(1,10),nne=new q7(0,0),Xee=new q7(-1,1),Qee=Cst(Hx(sne,1),cZt,91,0,[nne,Jee,new q7(1,2),new q7(1,3),new q7(1,4),new q7(1,5),new q7(1,6),new q7(1,7),new q7(1,8),new q7(1,9),tne]),ene=O5(sne,cZt,91,32,0,1),t=0;t<ene.length;t++)ene[t]=Qbt(yq(1,t))}function DBt(t,e,n,i,a,r){var o,s,c,l;for(s=!w_(AZ(t.Oc(),new ag(new Jn))).sd((fE(),Qne)),o=t,r==(jdt(),zSe)&&(o=iO(o,152)?o7(jz(o,152)):iO(o,131)?jz(o,131).a:iO(o,54)?new lw(o):new Ck(o)),l=o.Kc();l.Ob();)(c=jz(l.Pb(),70)).n.a=e.a,c.n.b=s?e.b+(i.b-c.o.b)/2:a?e.b:e.b+i.b-c.o.b,e.a+=c.o.a+n}function IBt(t,e,n,i){var a,r,o,s,c;for(a=(i.c+i.a)/2,yK(e.j),MH(e.j,a),yK(n.e),MH(n.e,a),c=new UR,o=new Wf(t.f);o.a<o.c.c.length;)BRt(c,e,s=jz(J1(o),129).a),BRt(c,n,s);for(r=new Wf(t.k);r.a<r.c.c.length;)BRt(c,e,s=jz(J1(r),129).b),BRt(c,n,s);return c.b+=2,c.a+=IK(e,t.q),c.a+=IK(t.q,n),c}function LBt(t,e,n){var i,a,r,o,s;if(!c4(e)){for(Akt(s=yrt(n,(iO(e,14)?jz(e,14).gc():F4(e.Kc()))/t.a|0),V4t,1),o=new Lo,r=null,a=e.Kc();a.Ob();)i=jz(a.Pb(),86),o=Ynt(Cst(Hx(Mte,1),zGt,20,0,[o,new db(i)])),r&&(lct(r,(HUt(),dxe),i),lct(i,ixe,r),H5(i)==H5(r)&&(lct(r,hxe,i),lct(i,axe,r))),r=i;zCt(s),LBt(t,o,n)}}function OBt(t){var e,n,i,a,r,o,s;for(n=t.i,e=t.n,s=n.d,t.f==(H9(),iae)?s+=(n.a-t.e.b)/2:t.f==nae&&(s+=n.a-t.e.b),a=new Wf(t.d);a.a<a.c.c.length;){switch(o=(i=jz(J1(a),181)).rf(),(r=new HR).b=s,s+=o.b+t.a,t.b.g){case 0:r.a=n.c+e.b;break;case 1:r.a=n.c+e.b+(n.b-o.a)/2;break;case 2:r.a=n.c+n.b-e.c-o.a}i.tf(r)}}function MBt(t){var e,n,i,a,r,o,s;for(n=t.i,e=t.n,s=n.c,t.b==(K8(),Kie)?s+=(n.b-t.e.a)/2:t.b==Jie&&(s+=n.b-t.e.a),a=new Wf(t.d);a.a<a.c.c.length;){switch(o=(i=jz(J1(a),181)).rf(),(r=new HR).a=s,s+=o.a+t.a,t.f.g){case 0:r.b=n.d+e.d;break;case 1:r.b=n.d+e.d+(n.a-o.b)/2;break;case 2:r.b=n.d+n.a-e.a-o.b}i.tf(r)}}function NBt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;l=n.a.c,o=n.a.c+n.a.b,h=(r=jz(NY(n.c,e),459)).f,f=r.a,s=new OT(l,h),u=new OT(o,f),a=l,n.p||(a+=t.c),c=new OT(a+=n.F+n.v*t.b,h),d=new OT(a,f),Qnt(e.a,Cst(Hx(EEe,1),cZt,8,0,[s,c])),n.d.a.gc()>1&&(i=new OT(a,n.b),MH(e.a,i)),Qnt(e.a,Cst(Hx(EEe,1),cZt,8,0,[d,u]))}function BBt(t){LE(t,new kkt(bR(hR(pR(gR(new bs,F6t),"ELK Randomizer"),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new Xs))),r2(t,F6t,ZJt,IAe),r2(t,F6t,mQt,15),r2(t,F6t,vQt,nht(0)),r2(t,F6t,GJt,gQt)}function PBt(){var t,e,n,i,a,r;for(PBt=D,YOe=O5(IMe,m7t,25,255,15,1),GOe=O5(SMe,YZt,25,16,15,1),e=0;e<255;e++)YOe[e]=-1;for(n=57;n>=48;n--)YOe[n]=n-48<<24>>24;for(i=70;i>=65;i--)YOe[i]=i-65+10<<24>>24;for(a=102;a>=97;a--)YOe[a]=a-97+10<<24>>24;for(r=0;r<10;r++)GOe[r]=48+r&ZZt;for(t=10;t<=15;t++)GOe[t]=65+t-10&ZZt}function FBt(t,e,n){var i,a,r,o,s,c,l,u;return s=e.i-t.g/2,c=n.i-t.g/2,l=e.j-t.g/2,u=n.j-t.g/2,r=e.g+t.g/2,o=n.g+t.g/2,i=e.f+t.g/2,a=n.f+t.g/2,s<c+o&&c<s&&l<u+a&&u<l||c<s+r&&s<c&&u<l+i&&l<u||s<c+o&&c<s&&l<u&&u<l+i||c<s+r&&s<c&&l<u+a&&u<l}function jBt(t){var e,n,a,r,o;r=jz(yEt(t,(zYt(),Fbe)),21),o=jz(yEt(t,zbe),21),e=new hI(n=new OT(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a)),r.Hc((ypt(),NAe))&&(a=jz(yEt(t,$be),8),o.Hc((QFt(),UAe))&&(a.a<=0&&(a.a=20),a.b<=0&&(a.b=20)),e.a=i.Math.max(n.a,a.a),e.b=i.Math.max(n.b,a.b)),zw(RB(yEt(t,jbe)))||qzt(t,n,e)}function $Bt(t,e){var n,i,a,r;for(r=rft(e,(wWt(),EAe)).Kc();r.Ob();)i=jz(r.Pb(),11),(n=jz(yEt(i,(lGt(),xhe)),10))&&qMt(aE(iE(rE(nE(new $y,0),.1),t.i[e.p].d),t.i[n.p].a));for(a=rft(e,cAe).Kc();a.Ob();)i=jz(a.Pb(),11),(n=jz(yEt(i,(lGt(),xhe)),10))&&qMt(aE(iE(rE(nE(new $y,0),.1),t.i[n.p].d),t.i[e.p].a))}function zBt(t){var e,n,i,a,r;if(!t.c){if(r=new _c,null==(e=kLe).a.zc(t,e)){for(i=new AO(a3(t));i.e!=i.i.gc();)iO(a=d$t(n=jz(wmt(i),87)),88)&&pY(r,zBt(jz(a,26))),l8(r,n);e.a.Bc(t),e.a.gc()}Igt(r),aut(r),t.c=new LD((jz(Yet(GK((GY(),JIe).o),15),18),r.i),r.g),E6(t).b&=-33}return t.c}function HBt(t){var e;if(10!=t.c)throw $m(new ax(wGt((rL(),p5t))));switch(e=t.a){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 ax(wGt((rL(),q5t))))}return e}function UBt(t){var e,n,i,a;if(0==t.l&&0==t.m&&0==t.h)return"0";if(t.h==SKt&&0==t.m&&0==t.l)return"-9223372036854775808";if(t.h>>19)return"-"+UBt(rct(t));for(n=t,i="";0!=n.l||0!=n.m||0!=n.h;){if(n=DUt(n,F6(DKt),!0),e=""+R_(dee),0!=n.l||0!=n.m||0!=n.h)for(a=9-e.length;a>0;a--)e="0"+e;i=e+i}return i}function VBt(){if(!Object.create||!Object.getOwnPropertyNames)return!1;var t="__proto__",e=Object.create(null);return void 0===e[t]&&!(0!=Object.getOwnPropertyNames(e).length||(e[t]=42,42!==e[t])||0==Object.getOwnPropertyNames(e).length)}function qBt(t){var e,n,i,a,r,o,s;for(e=!1,n=0,a=new Wf(t.d.b);a.a<a.c.c.length;)for((i=jz(J1(a),29)).p=n++,o=new Wf(i.a);o.a<o.c.c.length;)r=jz(J1(o),10),!e&&!c4(lft(r))&&(e=!0);s=xV((jdt(),$Se),Cst(Hx(USe,1),IZt,103,0,[FSe,jSe])),e||(sat(s,zSe),sat(s,PSe)),t.a=new det(s),DW(t.f),DW(t.b),DW(t.e),DW(t.g)}function WBt(t,e,n){var i,a,r,o,s,c,l,u,d;for(i=n.c,a=n.d,s=g1(e.c),c=g1(e.d),i==e.c?(s=dOt(t,s,a),c=cEt(e.d)):(s=cEt(e.c),c=dOt(t,c,a)),n6(l=new BR(e.a),s,l.a,l.a.a),n6(l,c,l.c.b,l.c),o=e.c==i,d=new Ky,r=0;r<l.b-1;++r)u=new nA(jz(Nmt(l,r),8),jz(Nmt(l,r+1),8)),o&&0==r||!o&&r==l.b-2?d.b=u:Wz(d.a,u);return d}function YBt(t,e){var n,i,a,r;if(0!=(r=t.j.g-e.j.g))return r;if(n=jz(yEt(t,(zYt(),eme)),19),i=jz(yEt(e,eme),19),n&&i&&0!=(a=n.a-i.a))return a;switch(t.j.g){case 1:return Cht(t.n.a,e.n.a);case 2:return Cht(t.n.b,e.n.b);case 3:return Cht(e.n.a,t.n.a);case 4:return Cht(e.n.b,t.n.b);default:throw $m(new Fw(i1t))}}function GBt(t,e,n,a){var r,o,s,c;if(F4((zj(),new oq(XO(lft(e).a.Kc(),new u))))>=t.a||!ekt(e,n))return-1;if(c4(jz(a.Kb(e),20)))return 1;for(r=0,s=jz(a.Kb(e),20).Kc();s.Ob();)if(-1==(c=GBt(t,(o=jz(s.Pb(),17)).c.i==e?o.d.i:o.c.i,n,a))||(r=i.Math.max(r,c))>t.c-1)return-1;return r+1}function ZBt(t,e){var n,i,a,r,o,s;if(HA(e)===HA(t))return!0;if(!iO(e,15)||(i=jz(e,15),s=t.gc(),i.gc()!=s))return!1;if(o=i.Kc(),t.ni()){for(n=0;n<s;++n)if(a=t.ki(n),r=o.Pb(),null==a?null!=r:!Odt(a,r))return!1}else for(n=0;n<s;++n)if(a=t.ki(n),r=o.Pb(),HA(a)!==HA(r))return!1;return!0}function KBt(t,e){var n,i,a,r,o,s;if(t.f>0)if(t.qj(),null!=e){for(r=0;r<t.d.length;++r)if(n=t.d[r])for(i=jz(n.g,367),s=n.i,o=0;o<s;++o)if(Odt(e,(a=i[o]).dd()))return!0}else for(r=0;r<t.d.length;++r)if(n=t.d[r])for(i=jz(n.g,367),s=n.i,o=0;o<s;++o)if(a=i[o],HA(e)===HA(a.dd()))return!0;return!1}function XBt(t,e,n){var i,a,r,o;Akt(n,"Orthogonally routing hierarchical port edges",1),t.a=0,OVt(e,i=qHt(e)),ZUt(t,e,i),uWt(e),a=jz(yEt(e,(zYt(),tme)),98),Sqt((u1(0,(r=e.b).c.length),jz(r.c[0],29)),a,e),Sqt(jz(OU(r,r.c.length-1),29),a,e),_zt((u1(0,(o=e.b).c.length),jz(o.c[0],29))),_zt(jz(OU(o,o.c.length-1),29)),zCt(n)}function JBt(t){switch(t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return t-48<<24>>24;case 97:case 98:case 99:case 100:case 101:case 102:return t-97+10<<24>>24;case 65:case 66:case 67:case 68:case 69:case 70:return t-65+10<<24>>24;default:throw $m(new _x("Invalid hexadecimal"))}}function QBt(t,e,n){var i,a,r,o;for(Akt(n,"Processor order nodes",2),t.a=Hw(_B(yEt(e,(SIt(),Oxe)))),a=new Zk,o=cmt(e.b,0);o.b!=o.d.c;)zw(RB(yEt(r=jz(d4(o),86),(HUt(),fxe))))&&n6(a,r,a.c.b,a.c);EN(0!=a.b),PHt(t,i=jz(a.a.a.c,86)),!n.b&&Hit(n,1),$Pt(t,i,0-Hw(_B(yEt(i,(HUt(),rxe))))/2,0),!n.b&&Hit(n,1),zCt(n)}function tPt(){tPt=D,Pie=new $C("SPIRAL",0),Lie=new $C("LINE_BY_LINE",1),Oie=new $C("MANHATTAN",2),Iie=new $C("JITTER",3),Nie=new $C("QUADRANTS_LINE_BY_LINE",4),Bie=new $C("QUADRANTS_MANHATTAN",5),Mie=new $C("QUADRANTS_JITTER",6),Die=new $C("COMBINE_LINE_BY_LINE_MANHATTAN",7),Aie=new $C("COMBINE_JITTER_MANHATTAN",8)}function ePt(t,e,n,i){var a,r,o,s,c,l;for(c=ORt(t,n),l=ORt(e,n),a=!1;c&&l&&(i||ywt(c,l,n));)o=ORt(c,n),s=ORt(l,n),A9(e),A9(t),r=c.c,iVt(c,!1),iVt(l,!1),n?(Zwt(e,l.p,r),e.p=l.p,Zwt(t,c.p+1,r),t.p=c.p):(Zwt(t,c.p,r),t.p=c.p,Zwt(e,l.p+1,r),e.p=l.p),EQ(c,null),EQ(l,null),c=o,l=s,a=!0;return a}function nPt(t,e,n,i){var a,r,o,s,c;for(a=!1,r=!1,s=new Wf(i.j);s.a<s.c.c.length;)HA(yEt(o=jz(J1(s),11),(lGt(),fhe)))===HA(n)&&(0==o.g.c.length?0==o.e.c.length||(a=!0):r=!0);return c=0,a&&a^r?c=n.j==(wWt(),cAe)?-t.e[i.c.p][i.p]:e-t.e[i.c.p][i.p]:r&&a^r?c=t.e[i.c.p][i.p]+1:a&&r&&(c=n.j==(wWt(),cAe)?0:e/2),c}function iPt(t,e,n,i,a,r,o,s){var c,l,u;for(c=0,null!=e&&(c^=myt(e.toLowerCase())),null!=n&&(c^=myt(n)),null!=i&&(c^=myt(i)),null!=o&&(c^=myt(o)),null!=s&&(c^=myt(s)),l=0,u=r.length;l<u;l++)c^=myt(r[l]);t?c|=256:c&=-257,a?c|=16:c&=-17,this.f=c,this.i=null==e?null:(vG(e),e),this.a=n,this.d=i,this.j=r,this.g=o,this.e=s}function aPt(t,e,n){var i,a;switch(a=null,e.g){case 1:prt(),a=Ose;break;case 2:prt(),a=Nse}switch(i=null,n.g){case 1:prt(),i=Mse;break;case 2:prt(),i=Lse;break;case 3:prt(),i=Bse;break;case 4:prt(),i=Pse}return a&&i?Bz(t.j,new jd(new Kw(Cst(Hx(Lte,1),zGt,169,0,[jz(yY(a),169),jz(yY(i),169)])))):(kK(),kK(),cne)}function rPt(t){var e,n,i;switch(e=jz(yEt(t,(zYt(),$be)),8),lct(t,$be,new OT(e.b,e.a)),jz(yEt(t,vpe),248).g){case 1:lct(t,vpe,(fyt(),LEe));break;case 2:lct(t,vpe,(fyt(),TEe));break;case 3:lct(t,vpe,(fyt(),DEe));break;case 4:lct(t,vpe,(fyt(),IEe))}(t.q?t.q:(kK(),kK(),lne))._b(sme)&&(i=(n=jz(yEt(t,sme),8)).a,n.a=n.b,n.b=i)}function oPt(t,e,n,i,a,r){if(this.b=n,this.d=a,t>=e.length)throw $m(new Aw("Greedy SwitchDecider: Free layer not in graph."));this.c=e[t],this.e=new GF(i),vat(this.e,this.c,(wWt(),SAe)),this.i=new GF(i),vat(this.i,this.c,sAe),this.f=new uV(this.c),this.a=!r&&a.i&&!a.s&&this.c[0].k==(oCt(),kse),this.a&&pSt(this,t,e.length)}function sPt(t,e){var n,i,a,r,o,s;r=!t.B.Hc((QFt(),zAe)),o=t.B.Hc(VAe),t.a=new zgt(o,r,t.c),t.n&&vK(t.a.n,t.n),ww(t.g,(Net(),Vie),t.a),e||((i=new Tbt(1,r,t.c)).n.a=t.k,mV(t.p,(wWt(),cAe),i),(a=new Tbt(1,r,t.c)).n.d=t.k,mV(t.p,EAe,a),(s=new Tbt(0,r,t.c)).n.c=t.k,mV(t.p,SAe,s),(n=new Tbt(0,r,t.c)).n.b=t.k,mV(t.p,sAe,n))}function cPt(t){var e,n,i;switch((e=jz(yEt(t.d,(zYt(),Xpe)),218)).g){case 2:n=kYt(t);break;case 3:i=new Lm,Kk(AZ(DZ(htt(htt(new NU(null,new h1(t.d.b,16)),new Da),new Ia),new La),new ma),new Cp(i)),n=i;break;default:throw $m(new Fw("Compaction not supported for "+e+" edges."))}pUt(t,n),t6(new Cf(t.g),new kp(t))}function lPt(t,e){var n;return n=new Jt,e&&Hot(n,jz(NY(t.a,ODe),94)),iO(e,470)&&Hot(n,jz(NY(t.a,MDe),94)),iO(e,354)?(Hot(n,jz(NY(t.a,HDe),94)),n):(iO(e,82)&&Hot(n,jz(NY(t.a,NDe),94)),iO(e,239)?(Hot(n,jz(NY(t.a,UDe),94)),n):iO(e,186)?(Hot(n,jz(NY(t.a,VDe),94)),n):(iO(e,352)&&Hot(n,jz(NY(t.a,BDe),94)),n))}function uPt(){uPt=D,Xre=new qI((cGt(),pSe),nht(1)),ioe=new qI(ISe,80),noe=new qI(kSe,5),Fre=new qI(iCe,gQt),Jre=new qI(bSe,nht(1)),eoe=new qI(vSe,(cM(),!0)),Gre=new WI(50),Yre=new qI(qCe,Gre),$re=CCe,Zre=rSe,jre=new qI(fCe,!1),Wre=VCe,qre=zCe,Vre=BCe,Ure=MCe,Kre=lSe,xCt(),Hre=Sre,aoe=Lre,zre=Cre,Qre=Are,toe=Ire}function dPt(t){var e,n,i,a,r,o,s;for(s=new b6,o=new Wf(t.a);o.a<o.c.c.length;)if((r=jz(J1(o),10)).k!=(oCt(),kse))for(FIt(s,r,new HR),a=new oq(XO(dft(r).a.Kc(),new u));gIt(a);)if((i=jz(V6(a),17)).c.i.k!=kse&&i.d.i.k!=kse)for(n=cmt(i.a,0);n.b!=n.d.c;)KRt(s,new fS((e=jz(d4(n),8)).a,e.b));return s}function hPt(){hPt=D,Nke=new rm(P3t),TE(),Oke=new DD(H3t,Mke=Uke),Lst(),Ike=new DD(F3t,Lke=Yke),ICt(),Ake=new DD(j3t,Dke=ike),Eke=new DD($3t,null),D7(),Ske=new DD(z3t,Tke=J_e),CE(),wke=new DD(U3t,xke=W_e),Rke=new DD(V3t,(cM(),!1)),_ke=new DD(q3t,nht(64)),kke=new DD(W3t,!0),Cke=Q_e}function fPt(t){var e,n,i,a,r;if(null==t.a)if(t.a=O5(AMe,JXt,25,t.c.b.c.length,16,1),t.a[0]=!1,IN(t.c,(zYt(),Vme)))for(n=jz(yEt(t.c,Vme),15).Kc();n.Ob();)(e=jz(n.Pb(),19).a)>0&&e<t.a.length&&(t.a[e]=!1);else for((r=new Wf(t.c.b)).a<r.c.c.length&&J1(r),i=1;r.a<r.c.c.length;)a=jz(J1(r),29),t.a[i++]=qLt(a)}function gPt(t,e){var n,i;switch(i=t.b,e){case 1:t.b|=1,t.b|=4,t.b|=8;break;case 2:t.b|=2,t.b|=4,t.b|=8;break;case 4:t.b|=1,t.b|=2,t.b|=4,t.b|=8;break;case 3:t.b|=16,t.b|=8;break;case 0:t.b|=32,t.b|=16,t.b|=8,t.b|=1,t.b|=2,t.b|=4}if(t.b!=i&&t.c)for(n=new AO(t.c);n.e!=n.i.gc();)DTt(E6(jz(wmt(n),473)),e)}function pPt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f;for(a=!1,s=0,c=(o=e).length;s<c;++s)r=o[s],zw((cM(),!!r.e))&&!jz(OU(t.b,r.e.p),214).s&&(a|=(l=r.e,(d=(u=jz(OU(t.b,l.p),214)).e)[h=lR(n,d.length)][0].k==(oCt(),kse)?d[h]=IMt(r,d[h],n?(wWt(),SAe):(wWt(),sAe)):u.c.Tf(d,n),f=NMt(t,u,n,i),MNt(u.e,u.o,n),f));return a}function bPt(t,e){var n,i,a,r,o;for(r=(!e.a&&(e.a=new tW(UDe,e,10,11)),e.a).i,a=new AO((!e.a&&(e.a=new tW(UDe,e,10,11)),e.a));a.e!=a.i.gc();)HA(JIt(i=jz(wmt(a),33),(cGt(),xCe)))!==HA((odt(),yTe))&&((o=jz(JIt(e,mSe),149))==(n=jz(JIt(i,mSe),149))||o&&w6(o,n))&&0!=(!i.a&&(i.a=new tW(UDe,i,10,11)),i.a).i&&(r+=bPt(t,i));return r}function mPt(t){var e,n,i,a,r,o,s;for(i=0,s=0,o=new Wf(t.d);o.a<o.c.c.length;)r=jz(J1(o),101),a=jz(E3(AZ(new NU(null,new h1(r.j,16)),new Ya),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15),n=null,i<=s?(wWt(),n=cAe,i+=a.gc()):s<i&&(wWt(),n=EAe,s+=a.gc()),e=n,Kk(DZ(a.Oc(),new Ha),new Ap(e))}function yPt(t){var e,n,i,a,r,o,s,c;for(t.b=new mDt(new Kw((wWt(),Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe]))),new Kw((Sat(),Cst(Hx(Fle,1),IZt,361,0,[Ble,Nle,Mle])))),s=0,c=(o=Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])).length;s<c;++s)for(r=o[s],i=0,a=(n=Cst(Hx(Fle,1),IZt,361,0,[Ble,Nle,Mle])).length;i<a;++i)e=n[i],YRt(t.b,r,e,new Lm)}function vPt(t,e){var n,i,a,r,o,s,c,l,u,d;if(o=jz(jz(c7(t.r,e),21),84),s=t.u.Hc((dAt(),iAe)),n=t.u.Hc(tAe),i=t.u.Hc(QTe),l=t.u.Hc(aAe),d=t.B.Hc((QFt(),ZAe)),u=!n&&!i&&(l||2==o.gc()),lNt(t,e),a=null,c=null,s){for(c=a=jz((r=o.Kc()).Pb(),111);r.Ob();)c=jz(r.Pb(),111);a.d.b=0,c.d.c=0,u&&!a.a&&(a.d.c=0)}d&&(Nkt(o),s&&(a.d.b=0,c.d.c=0))}function wPt(t,e){var n,i,a,r,o,s,c,l,u,d;if(o=jz(jz(c7(t.r,e),21),84),s=t.u.Hc((dAt(),iAe)),n=t.u.Hc(tAe),i=t.u.Hc(QTe),c=t.u.Hc(aAe),d=t.B.Hc((QFt(),ZAe)),l=!n&&!i&&(c||2==o.gc()),Gjt(t,e),u=null,a=null,s){for(a=u=jz((r=o.Kc()).Pb(),111);r.Ob();)a=jz(r.Pb(),111);u.d.d=0,a.d.a=0,l&&!u.a&&(u.d.a=0)}d&&(Bkt(o),s&&(u.d.d=0,a.d.a=0))}function xPt(t,e,n){var i,a,r,o,s;if(i=e.k,e.p>=0)return!1;if(e.p=n.b,Wz(n.e,e),i==(oCt(),Cse)||i==Tse)for(a=new Wf(e.j);a.a<a.c.c.length;)for(s=new Ug(new Wf(new Hg(jz(J1(a),11)).a.g));yL(s.a);)if(o=(r=jz(J1(s.a),17).d.i).k,e.c!=r.c&&(o==Cse||o==Tse)&&xPt(t,r,n))return!0;return!0}function RPt(t){var e;return 64&t.Db?PDt(t):((e=new lM(PDt(t))).a+=" (changeable: ",y_(e,0!=(t.Bb&w7t)),e.a+=", volatile: ",y_(e,0!=(t.Bb&k8t)),e.a+=", transient: ",y_(e,0!=(t.Bb&FKt)),e.a+=", defaultValueLiteral: ",iD(e,t.j),e.a+=", unsettable: ",y_(e,0!=(t.Bb&_8t)),e.a+=", derived: ",y_(e,0!=(t.Bb&lZt)),e.a+=")",e.a)}function _Pt(t){var e,n,i,a,r,o,s,c,l,u;for(n=OOt(t.d),r=(a=jz(yEt(t.b,(Rmt(),bre)),116)).b+a.c,o=a.d+a.a,c=n.d.a*t.e+r,s=n.b.a*t.f+o,Dh(t.b,new OT(c,s)),u=new Wf(t.g);u.a<u.c.c.length;)e=VP(FN(new OT((l=jz(J1(u),562)).g-n.a.a,l.i-n.c.a),l.a,l.b),vO(jN(jL(YI(l.e)),l.d*l.a,l.c*l.b),-.5)),i=GI(l.e),eR(l.e,qP(e,i))}function kPt(t,e,n,i){var a,r,o,s,c;for(c=O5(LMe,cZt,104,(wWt(),Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])).length,0,2),o=0,s=(r=Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])).length;o<s;++o)c[(a=r[o]).g]=O5(LMe,HKt,25,t.c[a.g],15,1);return $xt(c,t,cAe),$xt(c,t,EAe),Mvt(c,t,cAe,e,n,i),Mvt(c,t,sAe,e,n,i),Mvt(c,t,EAe,e,n,i),Mvt(c,t,SAe,e,n,i),c}function EPt(t,e,n){if(cW(t.a,e)){if(Fk(jz(NY(t.a,e),53),n))return 1}else YG(t.a,e,new Ny);if(cW(t.a,n)){if(Fk(jz(NY(t.a,n),53),e))return-1}else YG(t.a,n,new Ny);if(cW(t.b,e)){if(Fk(jz(NY(t.b,e),53),n))return-1}else YG(t.b,e,new Ny);if(cW(t.b,n)){if(Fk(jz(NY(t.b,n),53),e))return 1}else YG(t.b,n,new Ny);return 0}function CPt(t,e,n,i){var a,r,o,s,c,l;if(null==n)for(a=jz(t.g,119),s=0;s<t.i;++s)if((o=a[s]).ak()==e)return Fmt(t,o,i);return XE(),r=jz(e,66).Oj()?jz(n,72):X4(e,n),mI(t.e)?(l=!rpt(t,e),i=Kgt(t,r,i),c=e.$j()?IX(t,3,e,null,n,bzt(t,e,n,iO(e,99)&&0!=(jz(e,18).Bb&$Kt)),l):IX(t,1,e,e.zj(),n,-1,l),i?i.Ei(c):i=c):i=Kgt(t,r,i),i}function SPt(t){var e,n,a,r,o,s;t.q==(Z_t(),YTe)||t.q==WTe||(r=t.f.n.d+qH(jz(oZ(t.b,(wWt(),cAe)),124))+t.c,e=t.f.n.a+qH(jz(oZ(t.b,EAe),124))+t.c,a=jz(oZ(t.b,sAe),124),s=jz(oZ(t.b,SAe),124),o=i.Math.max(0,a.n.d-r),o=i.Math.max(o,s.n.d-r),n=i.Math.max(0,a.n.a-e),n=i.Math.max(n,s.n.a-e),a.n.d=o,s.n.d=o,a.n.a=n,s.n.a=n)}function TPt(t,e){var n,i,a,r,o,s,c;for(Akt(e,"Restoring reversed edges",1),o=new Wf(t.b);o.a<o.c.c.length;)for(s=new Wf(jz(J1(o),29).a);s.a<s.c.c.length;)for(c=new Wf(jz(J1(s),10).j);c.a<c.c.c.length;)for(a=0,r=(i=X0(jz(J1(c),11).g)).length;a<r;++a)zw(RB(yEt(n=i[a],(lGt(),Che))))&&tzt(n,!1);zCt(e)}function APt(){this.b=new b3,this.d=new b3,this.e=new b3,this.c=new b3,this.a=new Om,this.f=new Om,OJ(EEe,new ws,new xs),OJ(CEe,new Ls,new Os),OJ(xse,new Ms,new Ns),OJ(Ise,new Ps,new Fs),OJ(aDe,new js,new $s),OJ(mne,new Rs,new _s),OJ(Sne,new ks,new Es),OJ(wne,new Cs,new Ss),OJ(xne,new Ts,new As),OJ(jne,new Ds,new Is)}function DPt(t){var e,n,i,a,r,o;return r=0,(e=Txt(t)).Bj()&&(r|=4),t.Bb&_8t&&(r|=2),iO(t,99)?(a=Syt(n=jz(t,18)),n.Bb&l7t&&(r|=32),a&&(dY(fQ(a)),r|=8,((o=a.t)>1||-1==o)&&(r|=16),a.Bb&l7t&&(r|=64)),n.Bb&$Kt&&(r|=k8t),r|=w7t):iO(e,457)?r|=512:(i=e.Bj())&&1&i.i&&(r|=256),512&t.Bb&&(r|=128),r}function IPt(t,e){var n,i,a,r,o;for(t=null==t?VGt:(vG(t),t),a=0;a<e.length;a++)e[a]=nOt(e[a]);for(n=new Sx,o=0,i=0;i<e.length&&-1!=(r=t.indexOf("%s",o));)n.a+=""+lN(null==t?VGt:(vG(t),t),o,r),rD(n,e[i++]),o=r+2;if(H0(n,t,o,t.length),i<e.length){for(n.a+=" [",rD(n,e[i++]);i<e.length;)n.a+=jGt,rD(n,e[i++]);n.a+="]"}return n.a}function LPt(t){var e,n,i,a,r;for(r=new K7(t.a.c.length),a=new Wf(t.a);a.a<a.c.c.length;){switch(i=jz(J1(a),10),e=null,(n=jz(yEt(i,(zYt(),vbe)),163)).g){case 1:case 2:Xst(),e=Iue;break;case 3:case 4:Xst(),e=Aue}e?(lct(i,(lGt(),Hde),(Xst(),Iue)),e==Aue?BMt(i,n,(rit(),zye)):e==Iue&&BMt(i,n,(rit(),Hye))):r.c[r.c.length]=i}return r}function OPt(t,e){var n,i,a,r,o,s,c;for(n=0,c=new Wf(e);c.a<c.c.c.length;){for(s=jz(J1(c),11),Qlt(t.b,t.d[s.p]),o=0,a=new m7(s.b);yL(a.a)||yL(a.b);)CG(i=jz(yL(a.a)?J1(a.a):J1(a.b),17))?(r=__(t,s==i.c?i.d:i.c))>t.d[s.p]&&(n+=J3(t.b,r),f4(t.a,nht(r))):++o;for(n+=t.b.d*o;!Ww(t.a);)_tt(t.b,jz(fW(t.a),19).a)}return n}function MPt(t,e){var n;return t.f==aOe?(n=MG(j9((TSt(),KLe),e)),t.e?4==n&&e!=(_Dt(),lOe)&&e!=(_Dt(),oOe)&&e!=(_Dt(),sOe)&&e!=(_Dt(),cOe):2==n):!(!t.d||!(t.d.Hc(e)||t.d.Hc(X1(j9((TSt(),KLe),e)))||t.d.Hc(jUt((TSt(),KLe),t.b,e))))||!(!t.f||!rMt((TSt(),t.f),wZ(j9(KLe,e))))&&(n=MG(j9(KLe,e)),t.e?4==n:2==n)}function NPt(t,e,n,a){var r,o,s,c,l,u,d,h;return l=(s=jz(JIt(n,(cGt(),gSe)),8)).a,d=s.b+t,(r=i.Math.atan2(d,l))<0&&(r+=J4t),(r+=e)>J4t&&(r-=J4t),u=(c=jz(JIt(a,gSe),8)).a,h=c.b+t,(o=i.Math.atan2(h,u))<0&&(o+=J4t),(o+=e)>J4t&&(o-=J4t),cL(),iit(1e-10),i.Math.abs(r-o)<=1e-10||r==o||isNaN(r)&&isNaN(o)?0:r<o?-1:r>o?1:UD(isNaN(r),isNaN(o))}function BPt(t){var e,n,i,a,r,o,s;for(s=new Om,i=new Wf(t.a.b);i.a<i.c.c.length;)YG(s,e=jz(J1(i),57),new Lm);for(a=new Wf(t.a.b);a.a<a.c.c.length;)for((e=jz(J1(a),57)).i=PKt,o=e.c.Kc();o.Ob();)r=jz(o.Pb(),57),jz(zA(AX(s.f,r)),15).Fc(e);for(n=new Wf(t.a.b);n.a<n.c.c.length;)(e=jz(J1(n),57)).c.$b(),e.c=jz(zA(AX(s.f,e)),15);FNt(t)}function PPt(t){var e,n,i,a,r,o,s;for(s=new Om,i=new Wf(t.a.b);i.a<i.c.c.length;)YG(s,e=jz(J1(i),81),new Lm);for(a=new Wf(t.a.b);a.a<a.c.c.length;)for((e=jz(J1(a),81)).o=PKt,o=e.f.Kc();o.Ob();)r=jz(o.Pb(),81),jz(zA(AX(s.f,r)),15).Fc(e);for(n=new Wf(t.a.b);n.a<n.c.c.length;)(e=jz(J1(n),81)).f.$b(),e.f=jz(zA(AX(s.f,e)),15);$Mt(t)}function FPt(t,e,n,i){var a,r;for(Uxt(t,e,n,i),Lh(e,t.j-e.j+n),Oh(e,t.k-e.k+i),r=new Wf(e.f);r.a<r.c.c.length;)switch(a=jz(J1(r),324),a.a.g){case 0:fct(t,e.g+a.b.a,0,e.g+a.c.a,e.i-1);break;case 1:fct(t,e.g+e.o,e.i+a.b.a,t.o-1,e.i+a.c.a);break;case 2:fct(t,e.g+a.b.a,e.i+e.p,e.g+a.c.a,t.p-1);break;default:fct(t,0,e.i+a.b.a,e.g-1,e.i+a.c.a)}}function jPt(t,e,n,i,a){var r,o;try{if(e>=t.o)throw $m(new ky);o=e>>5,r=yq(1,fV(yq(31&e,1))),t.n[n][o]=a?e0(t.n[n][o],r):t0(t.n[n][o],rH(r)),r=yq(r,1),t.n[n][o]=i?e0(t.n[n][o],r):t0(t.n[n][o],rH(r))}catch(s){throw iO(s=dst(s),320)?$m(new Aw(kJt+t.o+"*"+t.p+EJt+e+jGt+n+CJt)):$m(s)}}function $Pt(t,e,n,a){var r,o;e&&(r=Hw(_B(yEt(e,(HUt(),lxe))))+a,o=n+Hw(_B(yEt(e,rxe)))/2,lct(e,gxe,nht(fV(uot(i.Math.round(r))))),lct(e,pxe,nht(fV(uot(i.Math.round(o))))),0==e.d.b||$Pt(t,jz(eO(new hb(cmt(new db(e).a.d,0))),86),n+Hw(_B(yEt(e,rxe)))+t.a,a+Hw(_B(yEt(e,oxe)))),null!=yEt(e,hxe)&&$Pt(t,jz(yEt(e,hxe),86),n,a))}function zPt(t,e){var n,a,r,o,s,c,l,u,d,h,f;for(r=2*Hw(_B(yEt(l=bG(e.a),(zYt(),Rme)))),d=Hw(_B(yEt(l,Ame))),u=i.Math.max(r,d),o=O5(LMe,HKt,25,e.f-e.c+1,15,1),a=-u,n=0,c=e.b.Kc();c.Ob();)s=jz(c.Pb(),10),a+=t.a[s.c.p]+u,o[n++]=a;for(a+=t.a[e.a.c.p]+u,o[n++]=a,f=new Wf(e.e);f.a<f.c.c.length;)h=jz(J1(f),10),a+=t.a[h.c.p]+u,o[n++]=a;return o}function HPt(t,e,n,i){var a,r,o,s,c,l,u,d;for(d=new f_(new Zp(t)),s=0,c=(o=Cst(Hx(Rse,1),r1t,10,0,[e,n])).length;s<c;++s)for(u=Ldt(o[s],i).Kc();u.Ob();)for(r=new m7((l=jz(u.Pb(),11)).b);yL(r.a)||yL(r.b);)d6(a=jz(yL(r.a)?J1(r.a):J1(r.b),17))||(kct(d.a,l,(cM(),mee)),CG(a)&&XW(d,l==a.c?a.d:a.c));return yY(d),new QF(d)}function UPt(t,e){var n,i,a,r;if(0!=(r=jz(JIt(t,(cGt(),hSe)),61).g-jz(JIt(e,hSe),61).g))return r;if(n=jz(JIt(t,sSe),19),i=jz(JIt(e,sSe),19),n&&i&&0!=(a=n.a-i.a))return a;switch(jz(JIt(t,hSe),61).g){case 1:return Cht(t.i,e.i);case 2:return Cht(t.j,e.j);case 3:return Cht(e.i,t.i);case 4:return Cht(e.j,t.j);default:throw $m(new Fw(i1t))}}function VPt(t){var e,n,i;return 64&t.Db?yCt(t):(e=new uM(Q6t),(n=t.k)?oD(oD((e.a+=' "',e),n),'"'):(!t.n&&(t.n=new tW(HDe,t,1,7)),t.n.i>0&&(!(i=(!t.n&&(t.n=new tW(HDe,t,1,7)),jz(Yet(t.n,0),137)).a)||oD(oD((e.a+=' "',e),i),'"'))),oD(v_(oD(v_(oD(v_(oD(v_((e.a+=" (",e),t.i),","),t.j)," | "),t.g),","),t.f),")"),e.a)}function qPt(t){var e,n,i;return 64&t.Db?yCt(t):(e=new uM(t7t),(n=t.k)?oD(oD((e.a+=' "',e),n),'"'):(!t.n&&(t.n=new tW(HDe,t,1,7)),t.n.i>0&&(!(i=(!t.n&&(t.n=new tW(HDe,t,1,7)),jz(Yet(t.n,0),137)).a)||oD(oD((e.a+=' "',e),i),'"'))),oD(v_(oD(v_(oD(v_(oD(v_((e.a+=" (",e),t.i),","),t.j)," | "),t.g),","),t.f),")"),e.a)}function WPt(t,e){var n,i,a,r,o,s;if(null==e||0==e.length)return null;if(!(a=jz(kJ(t.a,e),149))){for(i=new Bf(new Tf(t.b).a.vc().Kc());i.a.Ob();)if(r=jz(i.a.Pb(),42),o=(n=jz(r.dd(),149)).c,s=e.length,mF(o.substr(o.length-s,s),e)&&(e.length==o.length||46==lZ(o,o.length-e.length-1))){if(a)return null;a=n}a&&mQ(t.a,e,a)}return a}function YPt(t,e){var n,i,a;return n=new Mt,(i=jz(E3(DZ(new NU(null,new h1(t.f,16)),n),O9(new K,new X,new at,new rt,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Kne),Zne]))),21).gc())<(a=jz(E3(DZ(new NU(null,new h1(e.f,16)),n),O9(new K,new X,new at,new rt,Cst(Hx(Jne,1),IZt,132,0,[Kne,Zne]))),21).gc())?-1:i==a?0:1}function GPt(t){var e,n,i;IN(t,(zYt(),Dbe))&&!(i=jz(yEt(t,Dbe),21)).dc()&&(n=new ZF(e=jz(YR(PTe),9),jz(kP(e,e.length),9),0),i.Hc((QIt(),ITe))?sat(n,ITe):sat(n,LTe),i.Hc(ATe)||sat(n,ATe),i.Hc(TTe)?sat(n,NTe):i.Hc(STe)?sat(n,MTe):i.Hc(DTe)&&sat(n,OTe),i.Hc(NTe)?sat(n,TTe):i.Hc(MTe)?sat(n,STe):i.Hc(OTe)&&sat(n,DTe),lct(t,Dbe,n))}function ZPt(t){var e,n,i,a,r,o,s;for(a=jz(yEt(t,(lGt(),nhe)),10),u1(0,(i=t.j).c.length),n=jz(i.c[0],11),o=new Wf(a.j);o.a<o.c.c.length;)if(HA(r=jz(J1(o),11))===HA(yEt(n,fhe))){r.j==(wWt(),cAe)&&t.p>a.p?(HTt(r,EAe),r.d&&(s=r.o.b,e=r.a.b,r.a.b=s-e)):r.j==EAe&&a.p>t.p&&(HTt(r,cAe),r.d&&(s=r.o.b,e=r.a.b,r.a.b=-(s-e)));break}return a}function KPt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g;if(r=n,n<i)for(f=new jot(t.p),g=new jot(t.p),jat(f.e,t.e),f.q=t.q,f.r=g,nY(f),jat(g.j,t.j),g.r=f,nY(g),d=jz((h=new nA(f,g)).a,112),u=jz(h.b,112),u1(r,e.c.length),o=IBt(t,d,u,a=jz(e.c[r],329)),l=n+1;l<=i;l++)u1(l,e.c.length),Gmt(s=jz(e.c[l],329),c=IBt(t,d,u,s),a,o)&&(a=s,o=c);return r}function XPt(t,e,n,i,a){var r,o,s,c,l,u,d;if(!(iO(e,239)||iO(e,354)||iO(e,186)))throw $m(new Pw("Method only works for ElkNode-, ElkLabel and ElkPort-objects."));return o=t.a/2,c=e.i+i-o,u=e.j+a-o,l=c+e.g+t.a,d=u+e.f+t.a,MH(r=new vv,new OT(c,u)),MH(r,new OT(c,d)),MH(r,new OT(l,d)),MH(r,new OT(l,u)),Hot(s=new RIt(r),e),n&&YG(t.b,e,s),s}function JPt(t,e,n){var i,a,r,o,s,c,l,u;for(r=new OT(e,n),l=new Wf(t.a);l.a<l.c.c.length;)for(VP((c=jz(J1(l),10)).n,r),u=new Wf(c.j);u.a<u.c.c.length;)for(a=new Wf(jz(J1(u),11).g);a.a<a.c.c.length;)for(Jet((i=jz(J1(a),17)).a,r),(o=jz(yEt(i,(zYt(),bbe)),74))&&Jet(o,r),s=new Wf(i.b);s.a<s.c.c.length;)VP(jz(J1(s),70).n,r)}function QPt(t,e,n){var i,a,r,o,s,c,l,u;for(r=new OT(e,n),l=new Wf(t.a);l.a<l.c.c.length;)for(VP((c=jz(J1(l),10)).n,r),u=new Wf(c.j);u.a<u.c.c.length;)for(a=new Wf(jz(J1(u),11).g);a.a<a.c.c.length;)for(Jet((i=jz(J1(a),17)).a,r),(o=jz(yEt(i,(zYt(),bbe)),74))&&Jet(o,r),s=new Wf(i.b);s.a<s.c.c.length;)VP(jz(J1(s),70).n,r)}function tFt(t){if(0==(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b).i)throw $m(new ix("Edges must have a source."));if(0==(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c).i)throw $m(new ix("Edges must have a target."));if(!t.b&&(t.b=new cF(NDe,t,4,7)),!(t.b.i<=1&&(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c.i<=1)))throw $m(new ix("Hyperedges are not supported."))}function eFt(t,e){var n,i,a,r,o,s,c,l,u,d;for(d=0,f4(r=new Im,e);r.b!=r.c;)for(c=jz(fW(r),214),l=0,u=jz(yEt(e.j,(zYt(),Ipe)),339),o=Hw(_B(yEt(e.j,Spe))),s=Hw(_B(yEt(e.j,Tpe))),u!=(yct(),Oye)&&(l+=o*ELt(c.e,u),l+=s*iNt(c.e)),d+=cwt(c.d,c.e)+l,a=new Wf(c.b);a.a<a.c.c.length;)i=jz(J1(a),37),(n=jz(OU(t.b,i.p),214)).s||(d+=QSt(t,n));return d}function nFt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b;for(c=f=e.length,d1(0,e.length),45==e.charCodeAt(0)?(d=-1,h=1,--f):(d=1,h=0),a=f/(r=(oHt(),ane)[10])|0,0!=(b=f%r)&&++a,s=O5(TMe,lKt,25,a,15,1),n=ine[8],o=0,g=h+(0==b?r:b),p=h;p<c;g=(p=g)+r)i=djt(e.substr(p,g-p),FZt,NGt),IDt(),l=gyt(s,s,o,n),l+=qgt(s,o,i),s[o++]=l;u=o,t.e=d,t.d=u,t.a=s,q0(t)}function iFt(t,e,n,i,a,r,o){if(t.c=i.qf().a,t.d=i.qf().b,a&&(t.c+=a.qf().a,t.d+=a.qf().b),t.b=e.rf().a,t.a=e.rf().b,a)switch(a.Hf().g){case 0:case 2:t.c+=a.rf().a+o+r.a+o;break;case 4:t.c-=o+r.a+o+e.rf().a;break;case 1:t.c+=a.rf().a+o,t.d-=o+r.b+o+e.rf().b;break;case 3:t.c+=a.rf().a+o,t.d+=a.rf().b+o+r.b+o}else n?t.c-=o+e.rf().a:t.c+=i.rf().a+o}function aFt(t,e){var n,i;for(this.b=new Lm,this.e=new Lm,this.a=t,this.d=e,Umt(this),bpt(this),this.b.dc()?this.c=t.c.p:this.c=jz(this.b.Xb(0),10).c.p,0==this.e.c.length?this.f=t.c.p:this.f=jz(OU(this.e,this.e.c.length-1),10).c.p,i=jz(yEt(t,(lGt(),Ehe)),15).Kc();i.Ob();)if(IN(n=jz(i.Pb(),70),(zYt(),Ype))){this.d=jz(yEt(n,Ype),227);break}}function rFt(t,e,n){var i,a,r,o,s,c,l,u;for(i=jz(NY(t.a,e),53),r=jz(NY(t.a,n),53),a=jz(NY(t.e,e),53),o=jz(NY(t.e,n),53),i.a.zc(n,i),o.a.zc(e,o),u=r.a.ec().Kc();u.Ob();)l=jz(u.Pb(),10),i.a.zc(l,i),RW(jz(NY(t.e,l),53),e),jat(jz(NY(t.e,l),53),a);for(c=a.a.ec().Kc();c.Ob();)s=jz(c.Pb(),10),o.a.zc(s,o),RW(jz(NY(t.a,s),53),n),jat(jz(NY(t.a,s),53),r)}function oFt(t,e,n){var i,a,r,o,s,c,l,u;for(i=jz(NY(t.a,e),53),r=jz(NY(t.a,n),53),a=jz(NY(t.b,e),53),o=jz(NY(t.b,n),53),i.a.zc(n,i),o.a.zc(e,o),u=r.a.ec().Kc();u.Ob();)l=jz(u.Pb(),10),i.a.zc(l,i),RW(jz(NY(t.b,l),53),e),jat(jz(NY(t.b,l),53),a);for(c=a.a.ec().Kc();c.Ob();)s=jz(c.Pb(),10),o.a.zc(s,o),RW(jz(NY(t.a,s),53),n),jat(jz(NY(t.a,s),53),r)}function sFt(t,e){var n,i,a;switch(Akt(e,"Breaking Point Insertion",1),i=new kIt(t),jz(yEt(t,(zYt(),jme)),337).g){case 2:a=new kr;case 0:a=new gr;break;default:a=new Er}if(n=a.Vf(t,i),zw(RB(yEt(t,zme)))&&(n=NUt(t,n)),!a.Wf()&&IN(t,qme))switch(jz(yEt(t,qme),338).g){case 2:n=WTt(i,n);break;case 1:n=Pkt(i,n)}n.dc()||tYt(t,n),zCt(e)}function cFt(t,e,n){var i,a,r,o,s,c,l;if(l=e,Iit(c=G4(t,I4(n),l),N2(l,H7t)),o=L2(l,L7t),GTt((i=new oA(t,c)).a,i.b,o),s=L2(l,O7t),ZTt((a=new sA(t,c)).a,a.b,s),0==(!c.b&&(c.b=new cF(NDe,c,4,7)),c.b).i||0==(!c.c&&(c.c=new cF(NDe,c,5,8)),c.c).i)throw r=N2(l,H7t),$m(new tx(W7t+r+Y7t));return Ekt(l,c),cYt(t,l,c),Mct(t,l,c)}function lFt(t,e){var n,a,r,o,s,c,l;for(r=O5(TMe,lKt,25,t.e.a.c.length,15,1),s=new Wf(t.e.a);s.a<s.c.c.length;)r[(o=jz(J1(s),121)).d]+=o.b.a.c.length;for(c=Uz(e);0!=c.b;)for(a=I8(new Wf((o=jz(0==c.b?null:(EN(0!=c.b),Det(c,c.a.a)),121)).g.a));a.Ob();)(l=(n=jz(a.Pb(),213)).e).e=i.Math.max(l.e,o.e+n.a),--r[l.d],0==r[l.d]&&n6(c,l,c.c.b,c.c)}function uFt(t){var e,n,a,r,o,s,c,l,u,d,h;for(n=FZt,r=NGt,c=new Wf(t.e.a);c.a<c.c.c.length;)o=jz(J1(c),121),r=i.Math.min(r,o.e),n=i.Math.max(n,o.e);for(e=O5(TMe,lKt,25,n-r+1,15,1),s=new Wf(t.e.a);s.a<s.c.c.length;)(o=jz(J1(s),121)).e-=r,++e[o.e];if(a=0,null!=t.k)for(d=0,h=(u=t.k).length;d<h&&(l=u[d],e[a++]+=l,e.length!=a);++d);return e}function dFt(t){switch(t.d){case 9:case 8:return!0;case 3:case 5:case 4:case 6:return!1;case 7:return jz(PNt(t),19).a==t.o;case 1:case 2:if(-2==t.o)return!1;switch(t.p){case 0:case 1:case 2:case 6:case 5:case 7:return GA(t.k,t.f);case 3:case 4:return t.j==t.e;default:return null==t.n?null==t.g:Odt(t.n,t.g)}default:return!1}}function hFt(t){LE(t,new kkt(bR(hR(pR(gR(new bs,P6t),"ELK Fixed"),"Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points."),new Ks))),r2(t,P6t,ZJt,fTe),r2(t,P6t,p4t,ymt(gTe)),r2(t,P6t,p6t,ymt(cTe)),r2(t,P6t,CQt,ymt(lTe)),r2(t,P6t,$Qt,ymt(dTe)),r2(t,P6t,K2t,ymt(uTe))}function fFt(t,e,n){var i,a,r,o;if(i=fV(aft(EZt,nZ(fV(aft(null==e?0:Qct(e),CZt)),15))),o=fV(aft(EZt,nZ(fV(aft(null==n?0:Qct(n),CZt)),15))),(r=Xat(t,e,i))&&o==r.f&&hG(n,r.i))return n;if(Jat(t,n,o))throw $m(new Pw("value already present: "+n));return a=new zG(e,i,n,o),r?(LOt(t,r),KTt(t,a,r),r.e=null,r.c=null,r.i):(KTt(t,a,null),Hxt(t),null)}function gFt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;l=n.a.c,o=n.a.c+n.a.b,h=(r=jz(NY(n.c,e),459)).f,f=r.a,s=r.b?new OT(o,h):new OT(l,h),u=r.c?new OT(l,f):new OT(o,f),a=l,n.p||(a+=t.c),c=new OT(a+=n.F+n.v*t.b,h),d=new OT(a,f),Qnt(e.a,Cst(Hx(EEe,1),cZt,8,0,[s,c])),n.d.a.gc()>1&&(i=new OT(a,n.b),MH(e.a,i)),Qnt(e.a,Cst(Hx(EEe,1),cZt,8,0,[d,u]))}function pFt(t,e,n){var i,a,r,o,s,c;if(e){if(n<=-1){if(iO(i=eet(e.Tg(),-1-n),99))return jz(i,18);for(s=0,c=(o=jz(e.ah(i),153)).gc();s<c;++s)if(HA(o.jl(s))===HA(t)&&iO(a=o.il(s),99)&&(r=jz(a,18)).Bb&l7t)return r;throw $m(new Fw("The containment feature could not be located"))}return Syt(jz(eet(t.Tg(),n),18))}return null}function bFt(t){var e,n,i,a,r;for(i=t.length,e=new Ex,r=0;r<i;)if(9!=(n=lZ(t,r++))&&10!=n&&12!=n&&13!=n&&32!=n){if(35==n){for(;r<i&&13!=(n=lZ(t,r++))&&10!=n;);continue}92==n&&r<i?35==(d1(r,t.length),a=t.charCodeAt(r))||9==a||10==a||12==a||13==a||32==a?(LY(e,a&ZZt),++r):(e.a+="\\",LY(e,a&ZZt),++r):LY(e,n&ZZt)}return e.a}function mFt(t,e){var n,i,a;for(i=new Wf(e);i.a<i.c.c.length;)if(n=jz(J1(i),33),XAt(t.a,n,n),XAt(t.b,n,n),0!=(a=fBt(n)).c.length)for(t.d&&t.d.lg(a),XAt(t.a,n,(u1(0,a.c.length),jz(a.c[0],33))),XAt(t.b,n,jz(OU(a,a.c.length-1),33));0!=Nst(a).c.length;)a=Nst(a),t.d&&t.d.lg(a),XAt(t.a,n,(u1(0,a.c.length),jz(a.c[0],33))),XAt(t.b,n,jz(OU(a,a.c.length-1),33))}function yFt(t){var e,n,i,a,r,o,s,c,l,u;for(n=0,s=new Wf(t.d);s.a<s.c.c.length;)(o=jz(J1(s),101)).i&&(o.i.c=n++);for(e=vU(AMe,[cZt,JXt],[177,25],16,[n,n],2),u=t.d,a=0;a<u.c.length;a++)if(u1(a,u.c.length),(c=jz(u.c[a],101)).i)for(r=a+1;r<u.c.length;r++)u1(r,u.c.length),(l=jz(u.c[r],101)).i&&(i=iEt(c,l),e[c.i.c][l.i.c]=i,e[l.i.c][c.i.c]=i);return e}function vFt(t,e,n,i){var a,r,o;return o=new yk(e,n),t.a?i?(++(a=jz(NY(t.b,e),283)).a,o.d=i.d,o.e=i.e,o.b=i,o.c=i,i.e?i.e.c=o:jz(NY(t.b,e),283).b=o,i.d?i.d.b=o:t.a=o,i.d=o,i.e=o):(t.e.b=o,o.d=t.e,t.e=o,(a=jz(NY(t.b,e),283))?(++a.a,(r=a.c).c=o,o.e=r,a.c=o):(YG(t.b,e,a=new sX(o)),++t.c)):(t.a=t.e=o,YG(t.b,e,new sX(o)),++t.c),++t.d,o}function wFt(t,e){var n,i,a,r,o,s,c,l;for(n=new RegExp(e,"g"),c=O5(zee,cZt,2,0,6,1),i=0,l=t,r=null;;){if(null==(s=n.exec(l))||""==l){c[i]=l;break}o=s.index,c[i]=l.substr(0,o),l=lN(l,o+s[0].length,l.length),n.lastIndex=0,r==l&&(c[i]=l.substr(0,1),l=l.substr(1)),r=l,++i}if(t.length>0){for(a=c.length;a>0&&""==c[a-1];)--a;a<c.length&&(c.length=a)}return c}function xFt(t,e){var n,i,a,r,o,s,c,l;for(s=null,a=!1,r=0,c=a3((l=vX(e)).a).i;r<c;++r)(n=xFt(t,jz(eVt(l,r,iO(o=jz(Yet(a3(l.a),r),87).c,88)?jz(o,26):(pGt(),hLe)),26))).dc()||(s?(a||(a=!0,s=new nV(s)),s.Gc(n)):s=n);return(i=MAt(t,e)).dc()?s||(kK(),kK(),cne):s?(a||(s=new nV(s)),s.Gc(i),s):i}function RFt(t,e){var n,i,a,r,o,s,c,l;for(s=null,i=!1,r=0,c=a3((l=vX(e)).a).i;r<c;++r)(n=RFt(t,jz(eVt(l,r,iO(o=jz(Yet(a3(l.a),r),87).c,88)?jz(o,26):(pGt(),hLe)),26))).dc()||(s?(i||(i=!0,s=new nV(s)),s.Gc(n)):s=n);return(a=GDt(t,e)).dc()?s||(kK(),kK(),cne):s?(i||(s=new nV(s)),s.Gc(a),s):a}function _Ft(t,e,n){var i,a,r,o,s,c;if(iO(e,72))return Fmt(t,e,n);for(s=null,r=null,i=jz(t.g,119),o=0;o<t.i;++o)if(Odt(e,(a=i[o]).dd())&&iO(r=a.ak(),99)&&jz(r,18).Bb&l7t){s=a;break}return s&&(mI(t.e)&&(c=r.$j()?IX(t,4,r,e,null,bzt(t,r,e,iO(r,99)&&0!=(jz(r,18).Bb&$Kt)),!0):IX(t,r.Kj()?2:1,r,e,r.zj(),-1,!0),n?n.Ei(c):n=c),n=_Ft(t,s,n)),n}function kFt(t){var e,n,a,r;a=t.o,zB(),t.A.dc()||Odt(t.A,Dae)?r=a.a:(r=EAt(t.f),t.A.Hc((ypt(),BAe))&&!t.B.Hc((QFt(),WAe))&&(r=i.Math.max(r,EAt(jz(oZ(t.p,(wWt(),cAe)),244))),r=i.Math.max(r,EAt(jz(oZ(t.p,EAe),244)))),(e=sot(t))&&(r=i.Math.max(r,e.a))),zw(RB(t.e.yf().We((cGt(),FCe))))?a.a=i.Math.max(a.a,r):a.a=r,(n=t.f.i).c=0,n.b=r,F$t(t.f)}function EFt(t,e){var n,i,a,r,o,s,c,l,u;if((n=e.Hh(t.a))&&null!=(c=kB(apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),"memberTypes")))){for(l=new Lm,o=0,s=(r=wFt(c,"\\w")).length;o<s;++o)iO(u=-1==(i=(a=r[o]).lastIndexOf("#"))?rB(t,e.Aj(),a):0==i?_8(t,null,a.substr(1)):_8(t,a.substr(0,i),a.substr(i+1)),148)&&Wz(l,jz(u,148));return l}return kK(),kK(),cne}function CFt(t,e,n){var i,a,r,o,s,c,l,u;for(Akt(n,rQt,1),t.bf(e),r=0;t.df(r);){for(u=new Wf(e.e);u.a<u.c.c.length;)for(c=jz(J1(u),144),s=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[e.e,e.d,e.b])));gIt(s);)(o=jz(V6(s),357))!=c&&(a=t.af(o,c))&&VP(c.a,a);for(l=new Wf(e.e);l.a<l.c.c.length;)YCt(i=(c=jz(J1(l),144)).a,-t.d,-t.d,t.d,t.d),VP(c.d,i),vD(i);t.cf(),++r}zCt(n)}function SFt(t,e,n){var i,a,r,o;if(o=rNt(t.e.Tg(),e),i=jz(t.g,119),XE(),jz(e,66).Oj()){for(r=0;r<t.i;++r)if(a=i[r],o.rl(a.ak())&&Odt(a,n))return uBt(t,r),!0}else if(null!=n){for(r=0;r<t.i;++r)if(a=i[r],o.rl(a.ak())&&Odt(n,a.dd()))return uBt(t,r),!0}else for(r=0;r<t.i;++r)if(a=i[r],o.rl(a.ak())&&null==a.dd())return uBt(t,r),!0;return!1}function TFt(t,e){var n,i,a,r,o;for(null==t.c||t.c.length<e.c.length?t.c=O5(AMe,JXt,25,e.c.length,16,1):Jw(t.c),t.a=new Lm,i=0,o=new Wf(e);o.a<o.c.c.length;)(a=jz(J1(o),10)).p=i++;for(n=new Zk,r=new Wf(e);r.a<r.c.c.length;)a=jz(J1(r),10),t.c[a.p]||(lAt(t,a),0==n.b||(EN(0!=n.b),jz(n.a.a.c,15)).gc()<t.a.c.length?cD(n,t.a):lD(n,t.a),t.a=new Lm);return n}function AFt(t,e,n,i){var a,r,o,s,c,l,u;for(Cnt(o=jz(Yet(e,0),33),0),Snt(o,0),(c=new Lm).c[c.c.length]=o,s=o,r=new tU(t.a,o.g,o.f,(KOt(),F_e)),l=1;l<e.i;l++)Cnt(u=jz(Yet(e,l),33),(a=rUt(t,Qzt(t,N_e,u,s,r,c,n),Qzt(t,M_e,u,s,r,c,n),Qzt(t,P_e,u,s,r,c,n),Qzt(t,B_e,u,s,r,c,n),u,s,i)).d),Snt(u,a.e),af(a,F_e),r=a,s=u,c.c[c.c.length]=u;return r}function DFt(t){LE(t,new kkt(bR(hR(pR(gR(new bs,Z3t),"ELK SPOrE Overlap Removal"),'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'),new is))),r2(t,Z3t,P3t,ymt(zke)),r2(t,Z3t,ZJt,jke),r2(t,Z3t,mQt,8),r2(t,Z3t,H3t,ymt($ke)),r2(t,Z3t,q3t,ymt(Pke)),r2(t,Z3t,W3t,ymt(Fke)),r2(t,Z3t,W2t,(cM(),!1))}function IFt(t,e,n,i){var a,r,o,s,c,l,u,d;for(o=PN(e.c,n,i),u=new Wf(e.a);u.a<u.c.c.length;){for(VP((l=jz(J1(u),10)).n,o),d=new Wf(l.j);d.a<d.c.c.length;)for(r=new Wf(jz(J1(d),11).g);r.a<r.c.c.length;)for(Jet((a=jz(J1(r),17)).a,o),(s=jz(yEt(a,(zYt(),bbe)),74))&&Jet(s,o),c=new Wf(a.b);c.a<c.c.c.length;)VP(jz(J1(c),70).n,o);Wz(t.a,l),l.a=t}}function LFt(t,e){var n,i,a,r;if(Akt(e,"Node and Port Label Placement and Node Sizing",1),NI((gE(),new $Z(t,!0,!0,new Zn))),jz(yEt(t,(lGt(),Xde)),21).Hc((hBt(),dde)))for(i=(a=jz(yEt(t,(zYt(),ime)),21)).Hc((dAt(),nAe)),r=zw(RB(yEt(t,ame))),n=new Wf(t.b);n.a<n.c.c.length;)Kk(AZ(new NU(null,new h1(jz(J1(n),29).a,16)),new Kn),new Bj(a,i,r));zCt(e)}function OFt(t,e){var n,i,a,r,o,s;if((n=e.Hh(t.a))&&null!=(s=kB(apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),Q7t))))switch(a=mM(s,Kkt(35)),i=e.Hj(),-1==a?(o=aq(t,qet(i)),r=s):0==a?(o=null,r=s.substr(1)):(o=s.substr(0,a),r=s.substr(a+1)),MG(j9(t,e))){case 2:case 3:return Nct(t,i,o,r);case 0:case 4:case 5:case 6:return Bct(t,i,o,r)}return null}function MFt(t,e,n){var i,a,r,o,s;if(XE(),o=jz(e,66).Oj(),INt(t.e,e)){if(e.hi()&&q$t(t,e,n,iO(e,99)&&0!=(jz(e,18).Bb&$Kt)))return!1}else for(s=rNt(t.e.Tg(),e),i=jz(t.g,119),r=0;r<t.i;++r)if(a=i[r],s.rl(a.ak()))return!(o?Odt(a,n):null==n?null==a.dd():Odt(n,a.dd()))&&(jz(syt(t,r,o?jz(n,72):X4(e,n)),72),!0);return l8(t,o?jz(n,72):X4(e,n))}function NFt(t){var e,n,i,a,r;if(t.d)throw $m(new Fw((xB(Zoe),DXt+Zoe.k+IXt)));for(t.c==(jdt(),$Se)&&kqt(t,FSe),e=new Wf(t.a.a);e.a<e.c.c.length;)jz(J1(e),189).e=0;for(a=new Wf(t.a.b);a.a<a.c.c.length;)for((i=jz(J1(a),81)).o=PKt,n=i.f.Kc();n.Ob();)++jz(n.Pb(),81).d.e;for(Uqt(t),r=new Wf(t.a.b);r.a<r.c.c.length;)jz(J1(r),81).k=!0;return t}function BFt(t,e){var n,i,a,r,o,s,c,l;for(s=new bSt(t),n6(n=new Zk,e,n.c.b,n.c);0!=n.b;){for((i=jz(0==n.b?null:(EN(0!=n.b),Det(n,n.a.a)),113)).d.p=1,o=new Wf(i.e);o.a<o.c.c.length;)xkt(s,a=jz(J1(o),409)),0==(l=a.d).d.p&&n6(n,l,n.c.b,n.c);for(r=new Wf(i.b);r.a<r.c.c.length;)xkt(s,a=jz(J1(r),409)),0==(c=a.c).d.p&&n6(n,c,n.c.b,n.c)}return s}function PFt(t){var e,n,i,a,r;if(1!=(i=Hw(_B(JIt(t,(cGt(),ySe))))))for(_I(t,i*t.g,i*t.f),n=qD(Pz((!t.c&&(t.c=new tW(VDe,t,9,9)),t.c),new Hs)),r=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[(!t.n&&(t.n=new tW(HDe,t,1,7)),t.n),(!t.c&&(t.c=new tW(VDe,t,9,9)),t.c),n])));gIt(r);)(a=jz(V6(r),470)).Gg(i*a.Dg(),i*a.Eg()),a.Fg(i*a.Cg(),i*a.Bg()),(e=jz(a.We(iSe),8))&&(e.a*=i,e.b*=i)}function FFt(t,e,n,i,a){var r,o,s,c,l,u;for(r=new Wf(t.b);r.a<r.c.c.length;)for(l=0,u=(c=J0(jz(J1(r),29).a)).length;l<u;++l)switch(s=c[l],jz(yEt(s,(zYt(),vbe)),163).g){case 1:mNt(s),EQ(s,e),dyt(s,!0,i);break;case 3:JMt(s),EQ(s,n),dyt(s,!1,a)}for(o=new _2(t.b,0);o.b<o.d.gc();)0==(EN(o.b<o.d.gc()),jz(o.d.Xb(o.c=o.b++),29)).a.c.length&&lG(o)}function jFt(t,e){var n,i,a,r,o,s,c;if((n=e.Hh(t.a))&&null!=(c=kB(apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),k9t)))){for(i=new Lm,o=0,s=(r=wFt(c,"\\w")).length;o<s;++o)mF(a=r[o],"##other")?Wz(i,"!##"+aq(t,qet(e.Hj()))):mF(a,"##local")?i.c[i.c.length]=null:mF(a,R9t)?Wz(i,aq(t,qet(e.Hj()))):i.c[i.c.length]=a;return i}return kK(),kK(),cne}function $Ft(t,e){var n,i,a;return n=new Wt,(i=1==(i=jz(E3(DZ(new NU(null,new h1(t.f,16)),n),O9(new K,new X,new at,new rt,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Kne),Zne]))),21).gc())?1:0)<(a=1==(a=jz(E3(DZ(new NU(null,new h1(e.f,16)),n),O9(new K,new X,new at,new rt,Cst(Hx(Jne,1),IZt,132,0,[Kne,Zne]))),21).gc())?1:0)?-1:i==a?0:1}function zFt(t){var e,n,i,a,r,o,s,c,l,u,d,h;for(a=zw(RB(yEt(s=t.i,(zYt(),hbe)))),u=0,i=0,l=new Wf(t.g);l.a<l.c.c.length;)r=(o=d6(c=jz(J1(l),17)))&&a&&zw(RB(yEt(c,fbe))),h=c.d.i,o&&r?++i:o&&!r?++u:bG(h).e==s?++i:++u;for(n=new Wf(t.e);n.a<n.c.c.length;)r=(o=d6(e=jz(J1(n),17)))&&a&&zw(RB(yEt(e,fbe))),d=e.c.i,o&&r?++u:o&&!r?++i:bG(d).e==s?++u:++i;return u-i}function HFt(t,e,n,i){this.e=t,this.k=jz(yEt(t,(lGt(),Ahe)),304),this.g=O5(Rse,r1t,10,e,0,1),this.b=O5(Cee,cZt,333,e,7,1),this.a=O5(Rse,r1t,10,e,0,1),this.d=O5(Cee,cZt,333,e,7,1),this.j=O5(Rse,r1t,10,e,0,1),this.i=O5(Cee,cZt,333,e,7,1),this.p=O5(Cee,cZt,333,e,7,1),this.n=O5(wee,cZt,476,e,8,1),yC(this.n,(cM(),!1)),this.f=O5(wee,cZt,476,e,8,1),yC(this.f,!0),this.o=n,this.c=i}function UFt(t,e){var n,i,a;if(!e.dc())if(jz(e.Xb(0),286).d==(ISt(),Qle))Dxt(t,e);else for(i=e.Kc();i.Ob();){switch((n=jz(i.Pb(),286)).d.g){case 5:lSt(t,n,Gft(t,n));break;case 0:lSt(t,n,(a=(n.f-n.c+1-1)/2|0,n.c+a));break;case 4:lSt(t,n,Dtt(t,n));break;case 2:Pgt(n),lSt(t,n,I_t(n)?n.c:n.f);break;case 1:Pgt(n),lSt(t,n,I_t(n)?n.f:n.c)}lEt(n.a)}}function VFt(t,e){var n,i,a,r,o;if(!e.e){for(e.e=!0,i=e.d.a.ec().Kc();i.Ob();)n=jz(i.Pb(),17),e.o&&e.d.a.gc()<=1?(o=new OT((r=e.a.c)+(e.a.c+e.a.b-r)/2,e.b),MH(jz(e.d.a.ec().Kc().Pb(),17).a,o)):(a=jz(NY(e.c,n),459)).b||a.c?gFt(t,n,e):t.d==(qlt(),ive)&&(a.d||a.e)&&LDt(t,e)&&e.d.a.gc()<=1?gqt(n,e):NBt(t,n,e);e.k&&t6(e.d,new kn)}}function qFt(t,e,n,a,r,o){var s,c,l,u,d,h,f,g,p,b,m,y,v;for(c=(a+r)/2+o,b=n*i.Math.cos(c),m=n*i.Math.sin(c),y=b-e.g/2,v=m-e.f/2,Cnt(e,y),Snt(e,v),h=t.a.jg(e),(p=2*i.Math.acos(n/n+t.c))<r-a?(f=p/h,s=(a+r-p)/2):(f=(r-a)/h,s=a),g=fBt(e),t.e&&(t.e.kg(t.d),t.e.lg(g)),u=new Wf(g);u.a<u.c.c.length;)l=jz(J1(u),33),d=t.a.jg(l),qFt(t,l,n+t.c,s,s+f*d,o),s+=f*d}function WFt(t,e,n){var i;switch(i=n.q.getMonth(),e){case 5:oD(t,Cst(Hx(zee,1),cZt,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[i]);break;case 4:oD(t,Cst(Hx(zee,1),cZt,2,6,[KZt,XZt,JZt,QZt,tKt,eKt,nKt,iKt,aKt,rKt,oKt,sKt])[i]);break;case 3:oD(t,Cst(Hx(zee,1),cZt,2,6,["Jan","Feb","Mar","Apr",tKt,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[i]);break;default:xtt(t,i+1,e)}}function YFt(t,e){var n,i,a,r;if(Akt(e,"Network simplex",1),t.e.a.c.length<1)zCt(e);else{for(a=new Wf(t.e.a);a.a<a.c.c.length;)jz(J1(a),121).e=0;for((r=t.e.a.c.length>=40)&&R$t(t),$Ht(t),_Nt(t),n=vht(t),i=0;n&&i<t.f;)ejt(t,n,eLt(t,n)),n=vht(t),++i;r&&tkt(t),t.a?bLt(t,uFt(t)):uFt(t),t.b=null,t.d=null,t.p=null,t.c=null,t.g=null,t.i=null,t.n=null,t.o=null,zCt(e)}}function GFt(t,e,n,i){var a,r,o,s,c,l,u,d;for(qP(s=new OT(n,i),jz(yEt(e,(kat(),ooe)),8)),d=new Wf(e.e);d.a<d.c.c.length;)VP((u=jz(J1(d),144)).d,s),Wz(t.e,u);for(o=new Wf(e.c);o.a<o.c.c.length;){for(a=new Wf((r=jz(J1(o),282)).a);a.a<a.c.c.length;)VP(jz(J1(a),559).d,s);Wz(t.c,r)}for(l=new Wf(e.d);l.a<l.c.c.length;)VP((c=jz(J1(l),447)).d,s),Wz(t.d,c)}function ZFt(t,e){var n,i,a,r,o,s,c,l;for(c=new Wf(e.j);c.a<c.c.c.length;)for(a=new m7((s=jz(J1(c),11)).b);yL(a.a)||yL(a.b);)e!=(r=(n=(i=jz(yL(a.a)?J1(a.a):J1(a.b),17)).c==s?i.d:i.c).i)&&((l=jz(yEt(i,(zYt(),lme)),19).a)<0&&(l=0),o=r.p,0==t.b[o]&&(i.d==n?(t.a[o]-=l+1,t.a[o]<=0&&t.c[o]>0&&MH(t.f,r)):(t.c[o]-=l+1,t.c[o]<=0&&t.a[o]>0&&MH(t.e,r))))}function KFt(t){var e,n,i,a,r,o,s;for(r=new f_(jz(yY(new Bt),62)),s=PKt,n=new Wf(t.d);n.a<n.c.c.length;){for(s=(e=jz(J1(n),222)).c.c;0!=r.a.c&&(o=jz(_W(z8(r.a)),222)).c.c+o.c.b<s;)DJ(r.a,o);for(a=new Ff(new jP(new OM(new Pf(r.a).a).b));aC(a.a.a);)MH((i=jz(mN(a.a).cd(),222)).b,e),MH(e.b,i);kct(r.a,e,(cM(),mee))}}function XFt(t,e,n){var i,a,r,o,s,c,l,u,d;for(r=new K7(e.c.length),l=new Wf(e);l.a<l.c.c.length;)o=jz(J1(l),10),Wz(r,t.b[o.c.p][o.p]);for(yUt(t,r,n),d=null;d=eqt(r);)izt(t,jz(d.a,233),jz(d.b,233),r);for(e.c=O5(Dte,zGt,1,0,5,1),a=new Wf(r);a.a<a.c.c.length;)for(c=0,u=(s=(i=jz(J1(a),233)).d).length;c<u;++c)o=s[c],e.c[e.c.length]=o,t.a[o.c.p][o.p].a=uO(i.g,i.d[0]).a}function JFt(t,e){var n,i,a,r;if(0<(iO(t,14)?jz(t,14).gc():F4(t.Kc()))){if(1<(a=e)){for(--a,r=new yo,i=t.Kc();i.Ob();)n=jz(i.Pb(),86),r=Ynt(Cst(Hx(Mte,1),zGt,20,0,[r,new db(n)]));return JFt(r,a)}if(a<0){for(r=new vo,i=t.Kc();i.Ob();)n=jz(i.Pb(),86),r=Ynt(Cst(Hx(Mte,1),zGt,20,0,[r,new db(n)]));if(0<(iO(r,14)?jz(r,14).gc():F4(r.Kc())))return JFt(r,a)}}return jz(eO(t.Kc()),86)}function QFt(){QFt=D,UAe=new GT("DEFAULT_MINIMUM_SIZE",0),qAe=new GT("MINIMUM_SIZE_ACCOUNTS_FOR_PADDING",1),HAe=new GT("COMPUTE_PADDING",2),WAe=new GT("OUTSIDE_NODE_LABELS_OVERHANG",3),YAe=new GT("PORTS_OVERHANG",4),ZAe=new GT("UNIFORM_PORT_SPACING",5),GAe=new GT("SPACE_EFFICIENT_PORT_LABELS",6),VAe=new GT("FORCE_TABULAR_NODE_LABELS",7),zAe=new GT("ASYMMETRICAL",8)}function tjt(t,e){var n,i,a,r,o,s,c,l;if(e){if(n=(r=e.Tg())?qet(r).Nh().Jh(r):null){for(Xbt(t,e,n),c=0,l=(null==(a=e.Tg()).i&&H$t(a),a.i).length;c<l;++c)null==a.i&&H$t(a),i=a.i,(s=c>=0&&c<i.length?i[c]:null).Ij()&&!s.Jj()&&(iO(s,322)?Qmt(t,jz(s,34),e,n):(o=jz(s,18)).Bb&l7t&&c_t(t,o,e,n));e.kh()&&jz(n,49).vh(jz(e,49).qh())}return n}return null}function ejt(t,e,n){var i,a,r;if(!e.f)throw $m(new Pw("Given leave edge is no tree edge."));if(n.f)throw $m(new Pw("Given enter edge is a tree edge already."));for(e.f=!1,tO(t.p,e),n.f=!0,RW(t.p,n),i=n.e.e-n.d.e-n.a,jTt(t,n.e,e)||(i=-i),r=new Wf(t.e.a);r.a<r.c.c.length;)jTt(t,a=jz(J1(r),121),e)||(a.e+=i);t.j=1,Jw(t.c),bAt(t,jz(J1(new Wf(t.e.a)),121)),pVt(t)}function njt(t,e){var n,i,a,r,o,s;if((s=jz(yEt(e,(zYt(),tme)),98))==(Z_t(),YTe)||s==WTe)for(a=new OT(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a).b,o=new Wf(t.a);o.a<o.c.c.length;)(r=jz(J1(o),10)).k==(oCt(),kse)&&((n=jz(yEt(r,(lGt(),Gde)),61))==(wWt(),sAe)||n==SAe)&&(i=Hw(_B(yEt(r,Rhe))),s==YTe&&(i*=a),r.n.b=i-jz(yEt(r,Jbe),8).b,Xot(r,!1,!0))}function ijt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f;if(Ket(t,e,n),r=e[n],f=i?(wWt(),SAe):(wWt(),sAe),mO(e.length,n,i)){for(H7(t,a=e[i?n-1:n+1],i?(rit(),Hye):(rit(),zye)),u=0,h=(c=r).length;u<h;++u)Myt(t,o=c[u],f);for(H7(t,r,i?(rit(),zye):(rit(),Hye)),l=0,d=(s=a).length;l<d;++l)(o=s[l]).e||Myt(t,o,_ht(f))}else for(l=0,d=(s=r).length;l<d;++l)Myt(t,o=s[l],f);return!1}function ajt(t,e,n,i){var a,r,o,s,c;s=rft(e,n),(n==(wWt(),EAe)||n==SAe)&&(s=iO(s,152)?o7(jz(s,152)):iO(s,131)?jz(s,131).a:iO(s,54)?new lw(s):new Ck(s)),o=!1;do{for(a=!1,r=0;r<s.gc()-1;r++)$Et(t,jz(s.Xb(r),11),jz(s.Xb(r+1),11),i)&&(o=!0,v0(t.a,jz(s.Xb(r),11),jz(s.Xb(r+1),11)),c=jz(s.Xb(r+1),11),s._c(r+1,jz(s.Xb(r),11)),s._c(r,c),a=!0)}while(a);return o}function rjt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g;if(!mI(t.e))return jz(KAt(t,e,n),72);if(e!=n&&(o=(f=(a=jz(t.g,119))[n]).ak(),INt(t.e,o))){for(g=rNt(t.e.Tg(),o),c=-1,s=-1,i=0,l=0,d=e>n?e:n;l<=d;++l)l==n?s=i++:(r=a[l],u=g.rl(r.ak()),l==e&&(c=l!=d||u?i:i-1),u&&++i);return h=jz(Tht(t,e,n),72),s!=c&&Iy(t,new w8(t.e,7,o,nht(s),f.dd(),c)),h}return jz(Tht(t,e,n),72)}function ojt(t,e){var n,i,a,r,o,s;for(Akt(e,"Port order processing",1),s=jz(yEt(t,(zYt(),ome)),421),n=new Wf(t.b);n.a<n.c.c.length;)for(a=new Wf(jz(J1(n),29).a);a.a<a.c.c.length;)i=jz(J1(a),10),r=jz(yEt(i,tme),98),o=i.j,r==(Z_t(),qTe)||r==YTe||r==WTe?(kK(),mL(o,sle)):r!=ZTe&&r!=KTe&&(kK(),mL(o,lle),Lyt(o),s==(V9(),Fye)&&mL(o,cle)),i.i=!0,eAt(i);zCt(e)}function sjt(t){var e,n,a,r,o,s,c,l;for(l=new Om,e=new Fy,s=t.Kc();s.Ob();)r=jz(s.Pb(),10),c=AM(oE(new zy,r),e),xTt(l.f,r,c);for(o=t.Kc();o.Ob();)for(a=new oq(XO(dft(r=jz(o.Pb(),10)).a.Kc(),new u));gIt(a);)!d6(n=jz(V6(a),17))&&qMt(aE(iE(nE(rE(new $y,i.Math.max(1,jz(yEt(n,(zYt(),ume)),19).a)),1),jz(NY(l,n.c.i),121)),jz(NY(l,n.d.i),121)));return e}function cjt(){cjt=D,dwe=fU(new j2,(vEt(),joe),(dGt(),mce)),fwe=fU(new j2,Foe,xce),gwe=WV(fU(new j2,Foe,Nce),$oe,Mce),uwe=WV(fU(fU(new j2,Foe,dce),joe,hce),$oe,fce),pwe=sbt(sbt(FE(WV(fU(new j2,Boe,qce),$oe,Vce),joe),Uce),Wce),hwe=WV(new j2,$oe,yce),cwe=WV(fU(fU(fU(new j2,Poe,kce),joe,Cce),joe,Sce),$oe,Ece),lwe=WV(fU(fU(new j2,joe,Sce),joe,oce),$oe,rce)}function ljt(t,e,n,i,a,r){var o,s,c,l,u,d;for(o=dCt(e,c=xct(e)-xct(t)),s=_L(0,0,0);c>=0&&(!Swt(t,o)||(c<22?s.l|=1<<c:c<44?s.m|=1<<c-22:s.h|=1<<c-44,0!=t.l||0!=t.m||0!=t.h));)l=o.m,u=o.h,d=o.l,o.h=u>>>1,o.m=l>>>1|(1&u)<<21,o.l=d>>>1|(1&l)<<21,--c;return n&&Act(s),r&&(i?(dee=rct(t),a&&(dee=lst(dee,(q9(),gee)))):dee=_L(t.l,t.m,t.h)),s}function ujt(t,e){var n,i,a,r,o,s,c,l,u,d;for(l=t.e[e.c.p][e.p]+1,c=e.c.a.c.length+1,s=new Wf(t.a);s.a<s.c.c.length;){for(o=jz(J1(s),11),d=0,r=0,a=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[new $g(o),new Hg(o)])));gIt(a);)(i=jz(V6(a),11)).i.c==e.c&&(d+=dO(t,i.i)+1,++r);n=d/r,(u=o.j)==(wWt(),sAe)?t.f[o.p]=n<l?t.c-n:t.b+(c-n):u==SAe&&(t.f[o.p]=n<l?t.b+n:t.c-(c-n))}}function djt(t,e,n){var i,a,r,o;if(null==t)throw $m(new _x(VGt));for(i=(r=t.length)>0&&(d1(0,t.length),45==t.charCodeAt(0)||(d1(0,t.length),43==t.charCodeAt(0)))?1:0;i<r;i++)if(-1==ebt((d1(i,t.length),t.charCodeAt(i))))throw $m(new _x(NKt+t+'"'));if(a=(o=parseInt(t,10))<e,isNaN(o))throw $m(new _x(NKt+t+'"'));if(a||o>n)throw $m(new _x(NKt+t+'"'));return o}function hjt(t){var e,n,a,r,o,s;for(o=new Zk,r=new Wf(t.a);r.a<r.c.c.length;)Wh(a=jz(J1(r),112),a.f.c.length),Yh(a,a.k.c.length),0==a.i&&(a.o=0,n6(o,a,o.c.b,o.c));for(;0!=o.b;)for(n=(a=jz(0==o.b?null:(EN(0!=o.b),Det(o,o.a.a)),112)).o+1,e=new Wf(a.f);e.a<e.c.c.length;)Gh(s=jz(J1(e),129).a,i.Math.max(s.o,n)),Yh(s,s.i-1),0==s.i&&n6(o,s,o.c.b,o.c)}function fjt(t){var e,n,i,a,r,o,s,c;for(o=new Wf(t);o.a<o.c.c.length;){for(r=jz(J1(o),79),s=(i=Ckt(jz(Yet((!r.b&&(r.b=new cF(NDe,r,4,7)),r.b),0),82))).i,c=i.j,CI(a=jz(Yet((!r.a&&(r.a=new tW(PDe,r,6,6)),r.a),0),202),a.j+s,a.k+c),EI(a,a.b+s,a.c+c),n=new AO((!a.a&&(a.a=new DO(LDe,a,5)),a.a));n.e!=n.i.gc();)RI(e=jz(wmt(n),469),e.a+s,e.b+c);Kat(jz(JIt(r,(cGt(),TCe)),74),s,c)}}function gjt(t){switch(t){case 100:return yGt(cte,!0);case 68:return yGt(cte,!1);case 119:return yGt(lte,!0);case 87:return yGt(lte,!1);case 115:return yGt(ute,!0);case 83:return yGt(ute,!1);case 99:return yGt(dte,!0);case 67:return yGt(dte,!1);case 105:return yGt(hte,!0);case 73:return yGt(hte,!1);default:throw $m(new fw(ste+t.toString(16)))}}function pjt(t){var e,n,a,r,o;switch(r=jz(OU(t.a,0),10),e=new Iyt(t),Wz(t.a,e),e.o.a=i.Math.max(1,r.o.a),e.o.b=i.Math.max(1,r.o.b),e.n.a=r.n.a,e.n.b=r.n.b,jz(yEt(r,(lGt(),Gde)),61).g){case 4:e.n.a+=2;break;case 1:e.n.b+=2;break;case 2:e.n.a-=2;break;case 3:e.n.b-=2}return CQ(a=new SCt,e),kQ(n=new hX,o=jz(OU(r.j,0),11)),_Q(n,a),VP(vD(a.n),o.n),VP(vD(a.a),o.a),e}function bjt(t,e,n,i,a){n&&(!i||(t.c-t.b&t.a.length-1)>1)&&1==e&&jz(t.a[t.b],10).k==(oCt(),Ese)?l$t(jz(t.a[t.b],10),(Wwt(),xTe)):i&&(!n||(t.c-t.b&t.a.length-1)>1)&&1==e&&jz(t.a[t.c-1&t.a.length-1],10).k==(oCt(),Ese)?l$t(jz(t.a[t.c-1&t.a.length-1],10),(Wwt(),RTe)):2==(t.c-t.b&t.a.length-1)?(l$t(jz(Rct(t),10),(Wwt(),xTe)),l$t(jz(Rct(t),10),RTe)):cOt(t,a),o3(t)}function mjt(t,e,n){var a,r,o,s,c;for(o=0,r=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));r.e!=r.i.gc();)s="",0==(!(a=jz(wmt(r),33)).n&&(a.n=new tW(HDe,a,1,7)),a.n).i||(s=jz(Yet((!a.n&&(a.n=new tW(HDe,a,1,7)),a.n),0),137).a),Hot(c=new alt(o++,e,s),a),lct(c,(HUt(),sxe),a),c.e.b=a.j+a.f/2,c.f.a=i.Math.max(a.g,1),c.e.a=a.i+a.g/2,c.f.b=i.Math.max(a.f,1),MH(e.b,c),xTt(n.f,a,c)}function yjt(t){var e,n,i,a,r;i=jz(yEt(t,(lGt(),fhe)),33),r=jz(JIt(i,(zYt(),Fbe)),174).Hc((ypt(),FAe)),t.e||(a=jz(yEt(t,Xde),21),e=new OT(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a),a.Hc((hBt(),dde))?(Kmt(i,tme,(Z_t(),WTe)),PWt(i,e.a,e.b,!1,!0)):zw(RB(JIt(i,jbe)))||PWt(i,e.a,e.b,!0,!0)),Kmt(i,Fbe,r?Qht(FAe):new ZF(n=jz(YR($Ae),9),jz(kP(n,n.length),9),0))}function vjt(t,e,n){var i,a,r,o;if(e[0]>=t.length)return n.o=0,!0;switch(lZ(t,e[0])){case 43:a=1;break;case 45:a=-1;break;default:return n.o=0,!0}if(++e[0],r=e[0],0==(o=qAt(t,e))&&e[0]==r)return!1;if(e[0]<t.length&&58==lZ(t,e[0])){if(i=60*o,++e[0],r=e[0],0==(o=qAt(t,e))&&e[0]==r)return!1;i+=o}else(i=o)<24&&e[0]-r<=2?i*=60:i=i%100+60*(i/100|0);return i*=a,n.o=-i,!0}function wjt(t){var e,n,i,a,r,o,s;for(a=new Lm,i=new oq(XO(dft(t.b).a.Kc(),new u));gIt(i);)d6(n=jz(V6(i),17))&&Wz(a,new w7(n,b8(t,n.c),b8(t,n.d)));for(s=new Bf(new Tf(t.e).a.vc().Kc());s.a.Ob();)e=jz(s.a.Pb(),42),(r=jz(e.dd(),113)).d.p=0;for(o=new Bf(new Tf(t.e).a.vc().Kc());o.a.Ob();)e=jz(o.a.Pb(),42),0==(r=jz(e.dd(),113)).d.p&&Wz(t.d,BFt(t,r))}function xjt(t){var e,n,i,a,r;for(r=WJ(t),a=new AO((!t.e&&(t.e=new cF(BDe,t,7,4)),t.e));a.e!=a.i.gc();)if(i=jz(wmt(a),79),!Set(Ckt(jz(Yet((!i.c&&(i.c=new cF(NDe,i,5,8)),i.c),0),82)),r))return!0;for(n=new AO((!t.d&&(t.d=new cF(BDe,t,8,5)),t.d));n.e!=n.i.gc();)if(e=jz(wmt(n),79),!Set(Ckt(jz(Yet((!e.b&&(e.b=new cF(NDe,e,4,7)),e.b),0),82)),r))return!0;return!1}function Rjt(t){var e,n,a,r,o,s,c,l;for(l=new vv,c=null,n=jz(d4(e=cmt(t,0)),8),r=jz(d4(e),8);e.b!=e.d.c;)c=n,n=r,r=jz(d4(e),8),o=iet(qP(new OT(c.a,c.b),n)),s=iet(qP(new OT(r.a,r.b),n)),a=10,a=i.Math.min(a,i.Math.abs(o.a+o.b)/2),a=i.Math.min(a,i.Math.abs(s.a+s.b)/2),o.a=$H(o.a)*a,o.b=$H(o.b)*a,s.a=$H(s.a)*a,s.b=$H(s.b)*a,MH(l,VP(o,n)),MH(l,VP(s,n));return l}function _jt(t,e,n,i){var a,r,o,s,c;return o=t.eh(),a=null,(c=t.Zg())?!e||pFt(t,e,n).Bb&$Kt?c=null:(i=Fmt(c.Vk(),t,i),t.uh(null),a=e.fh()):(o&&(c=o.fh()),e&&(a=e.fh())),c!=a&&c&&c.Zk(t),s=t.Vg(),t.Rg(e,n),c!=a&&a&&a.Yk(t),t.Lg()&&t.Mg()&&(o&&s>=0&&s!=n&&(r=new Jq(t,1,s,o,null),i?i.Ei(r):i=r),n>=0&&(r=new Jq(t,1,n,s==n?o:null,e),i?i.Ei(r):i=r)),i}function kjt(t){var e,n,i;if(null==t.b){if(i=new kx,null!=t.i&&(iD(i,t.i),i.a+=":"),256&t.f){for(256&t.f&&null!=t.a&&(nK(t.i)||(i.a+="//"),iD(i,t.a)),null!=t.d&&(i.a+="/",iD(i,t.d)),16&t.f&&(i.a+="/"),e=0,n=t.j.length;e<n;e++)0!=e&&(i.a+="/"),iD(i,t.j[e]);null!=t.g&&(i.a+="?",iD(i,t.g))}else iD(i,t.a);null!=t.e&&(i.a+="#",iD(i,t.e)),t.b=i.a}return t.b}function Ejt(t,e){var n,i,a,r,o,s;for(a=new Wf(e.a);a.a<a.c.c.length;)iO(r=yEt(i=jz(J1(a),10),(lGt(),fhe)),11)&&(s=v$t(e,i,(o=jz(r,11)).o.a,o.o.b),o.n.a=s.a,o.n.b=s.b,HTt(o,jz(yEt(i,Gde),61)));n=new OT(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a),jz(yEt(e,(lGt(),Xde)),21).Hc((hBt(),dde))?(lct(t,(zYt(),tme),(Z_t(),WTe)),jz(yEt(bG(t),Xde),21).Fc(gde),hVt(t,n,!1)):hVt(t,n,!0)}function Cjt(t,e,n){var i,a,r,o,s;Akt(n,"Minimize Crossings "+t.a,1),i=0==e.b.c.length||!w_(AZ(new NU(null,new h1(e.b,16)),new ag(new Ir))).sd((fE(),Qne)),s=1==e.b.c.length&&1==jz(OU(e.b,0),29).a.c.length,r=HA(yEt(e,(zYt(),sbe)))===HA((odt(),bTe)),i||s&&!r||(Elt(a=cNt(t,e),(o=jz(Nmt(a,0),214)).c.Rf()?o.c.Lf()?new Vp(t):new qp(t):new Up(t)),rdt(t)),zCt(n)}function Sjt(t,e,n,i){var a,r,o,s;if(s=fV(aft(EZt,nZ(fV(aft(null==e?0:Qct(e),CZt)),15))),a=fV(aft(EZt,nZ(fV(aft(null==n?0:Qct(n),CZt)),15))),o=Jat(t,e,s),r=Xat(t,n,a),o&&a==o.a&&hG(n,o.g))return n;if(r&&!i)throw $m(new Pw("key already present: "+n));return o&&LOt(t,o),r&&LOt(t,r),KTt(t,new zG(n,a,e,s),r),r&&(r.e=null,r.c=null),o&&(o.e=null,o.c=null),Hxt(t),o?o.g:null}function Tjt(t,e,n){var i,a,r,o,s;for(r=0;r<e;r++){for(i=0,s=r+1;s<e;s++)i=ift(ift(aft(t0(t[r],qKt),t0(t[s],qKt)),t0(n[r+s],qKt)),t0(fV(i),qKt)),n[r+s]=fV(i),i=wq(i,32);n[r+e]=fV(i)}for(Qat(n,n,e<<1),i=0,a=0,o=0;a<e;++a,o++)i=ift(ift(aft(t0(t[a],qKt),t0(t[a],qKt)),t0(n[o],qKt)),t0(fV(i),qKt)),n[o]=fV(i),i=ift(i=wq(i,32),t0(n[++o],qKt)),n[o]=fV(i),i=wq(i,32);return n}function Ajt(t,e,n){var a,r,o,s,c,l,u,d;if(!c4(e)){for(l=Hw(_B(ept(n.c,(zYt(),Lme)))),!(u=jz(ept(n.c,Ime),142))&&(u=new uv),a=n.a,r=null,c=e.Kc();c.Ob();)s=jz(c.Pb(),11),d=0,r?(d=l,d+=r.o.b):d=u.d,o=AM(oE(new zy,s),t.f),YG(t.k,s,o),qMt(aE(iE(nE(rE(new $y,0),CJ(i.Math.ceil(d))),a),o)),r=s,a=o;qMt(aE(iE(nE(rE(new $y,0),CJ(i.Math.ceil(u.a+r.o.b))),a),n.d))}}function Djt(t,e,n,i,a,r,o,s){var c,l,u;return u=!1,l=r-n.s,c=n.t-e.f+aHt(n,l,!1).a,!(i.g+s>l)&&(c+s+aHt(i,l,!1).a<=e.b&&(p8(n,r-n.s),n.c=!0,p8(i,r-n.s),_yt(i,n.s,n.t+n.d+s),i.k=!0,Mrt(n.q,i),u=!0,a&&(tit(e,i),i.j=e,t.c.length>o&&(_xt((u1(o,t.c.length),jz(t.c[o],200)),i),0==(u1(o,t.c.length),jz(t.c[o],200)).a.c.length&&s7(t,o)))),u)}function Ijt(t,e){var n,i,a,r,o;if(Akt(e,"Partition midprocessing",1),a=new pJ,Kk(AZ(new NU(null,new h1(t.a,16)),new pi),new up(a)),0!=a.d){for(o=jz(E3(a1(new NU(null,(a.i||(a.i=new $O(a,a.c))).Nc())),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15),n=jz((i=o.Kc()).Pb(),19);i.Ob();)r=jz(i.Pb(),19),WOt(jz(c7(a,n),21),jz(c7(a,r),21)),n=r;zCt(e)}}function Ljt(t,e,n){var i,a,r,o,s;if(0==e.p){for(e.p=1,(a=n)||(a=new nA(new Lm,new ZF(i=jz(YR(MAe),9),jz(kP(i,i.length),9),0))),jz(a.a,15).Fc(e),e.k==(oCt(),kse)&&jz(a.b,21).Fc(jz(yEt(e,(lGt(),Gde)),61)),o=new Wf(e.j);o.a<o.c.c.length;)for(r=jz(J1(o),11),s=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[new $g(r),new Hg(r)])));gIt(s);)Ljt(t,jz(V6(s),11).i,a);return a}return null}function Ojt(t,e){var n,i,a,r,o;if(t.Ab)if(t.Ab){if((o=t.Ab.i)>0)if(a=jz(t.Ab.g,1934),null==e){for(r=0;r<o;++r)if(null==(n=a[r]).d)return n}else for(r=0;r<o;++r)if(mF(e,(n=a[r]).d))return n}else if(null==e){for(i=new AO(t.Ab);i.e!=i.i.gc();)if(null==(n=jz(wmt(i),590)).d)return n}else for(i=new AO(t.Ab);i.e!=i.i.gc();)if(mF(e,(n=jz(wmt(i),590)).d))return n;return null}function Mjt(t,e){var n,i,a,r,o,s,c;if(null==(c=RB(yEt(e,(SIt(),Lxe))))||(vG(c),c)){for(NDt(t,e),a=new Lm,s=cmt(e.b,0);s.b!=s.d.c;)(n=MSt(t,jz(d4(s),86),null))&&(Hot(n,e),a.c[a.c.length]=n);if(t.a=null,t.b=null,a.c.length>1)for(i=new Wf(a);i.a<i.c.c.length;)for(r=0,o=cmt((n=jz(J1(i),135)).b,0);o.b!=o.d.c;)jz(d4(o),86).g=r++;return a}return r7(Cst(Hx(Hwe,1),tQt,135,0,[e]))}function Njt(t,e,n,i,a){var r,o,s,c,l,u,d,h,f,g,p,b,m;aat(f=A4(t,Hst(e),a),N2(a,H7t)),p=M2(g=a,q7t),aCt(new Ib(f).a,p),b=M2(g,"endPoint"),iCt(new Nb(f).a,b),m=L2(g,N7t),E_t(new Fb(f).a,m),d=N2(a,P7t),zP((r=new cA(t,f)).a,r.b,d),h=N2(a,B7t),HP((o=new lA(t,f)).a,o.b,h),l=L2(a,j7t),jwt((s=new uA(n,f)).b,s.a,l),u=L2(a,F7t),$wt((c=new dA(i,f)).b,c.a,u)}function Bjt(t,e,n){var i,a,r,o,s;switch(s=null,e.g){case 1:for(a=new Wf(t.j);a.a<a.c.c.length;)if(zw(RB(yEt(i=jz(J1(a),11),(lGt(),Qde)))))return i;lct(s=new SCt,(lGt(),Qde),(cM(),!0));break;case 2:for(o=new Wf(t.j);o.a<o.c.c.length;)if(zw(RB(yEt(r=jz(J1(o),11),(lGt(),vhe)))))return r;lct(s=new SCt,(lGt(),vhe),(cM(),!0))}return s&&(CQ(s,t),HTt(s,n),vyt(s.n,t.o,n)),s}function Pjt(t,e){var n,a,r,o,s,c;for(c=-1,s=new Zk,a=new m7(t.b);yL(a.a)||yL(a.b);){for(n=jz(yL(a.a)?J1(a.a):J1(a.b),17),c=i.Math.max(c,Hw(_B(yEt(n,(zYt(),abe))))),n.c==t?Kk(AZ(new NU(null,new h1(n.b,16)),new dn),new Jg(s)):Kk(AZ(new NU(null,new h1(n.b,16)),new hn),new Qg(s)),o=cmt(s,0);o.b!=o.d.c;)IN(r=jz(d4(o),70),(lGt(),Vde))||lct(r,Vde,n);pst(e,s),yK(s)}return c}function Fjt(t,e,n,i,a){var r,o,s,c;Fh(r=new Iyt(t),(oCt(),Tse)),lct(r,(zYt(),tme),(Z_t(),WTe)),lct(r,(lGt(),fhe),e.c.i),lct(o=new SCt,fhe,e.c),HTt(o,a),CQ(o,r),lct(e.c,xhe,r),Fh(s=new Iyt(t),Tse),lct(s,tme,WTe),lct(s,fhe,e.d.i),lct(c=new SCt,fhe,e.d),HTt(c,a),CQ(c,s),lct(e.d,xhe,s),kQ(e,o),_Q(e,c),IQ(0,n.c.length),_C(n.c,0,r),i.c[i.c.length]=s,lct(r,jde,nht(1)),lct(s,jde,nht(1))}function jjt(t,e,n,a,r){var o,s,c,l,u;c=r?a.b:a.a,!Fk(t.a,a)&&(u=c>n.s&&c<n.c,l=!1,0!=n.e.b&&0!=n.j.b&&(l|=i.Math.abs(c-Hw(_B(gN(n.e))))<dQt&&i.Math.abs(c-Hw(_B(gN(n.j))))<dQt,l|=i.Math.abs(c-Hw(_B(pN(n.e))))<dQt&&i.Math.abs(c-Hw(_B(pN(n.j))))<dQt),(u||l)&&((s=jz(yEt(e,(zYt(),bbe)),74))||(s=new vv,lct(e,bbe,s)),n6(s,o=new hI(a),s.c.b,s.c),RW(t.a,o)))}function $jt(t,e,n,i){var a,r,o,s,c,l,u;if(YAt(t,e,n,i))return!0;for(o=new Wf(e.f);o.a<o.c.c.length;){switch(r=jz(J1(o),324),s=!1,l=(c=t.j-e.j+n)+e.o,a=(u=t.k-e.k+i)+e.p,r.a.g){case 0:s=Alt(t,c+r.b.a,0,c+r.c.a,u-1);break;case 1:s=Alt(t,l,u+r.b.a,t.o-1,u+r.c.a);break;case 2:s=Alt(t,c+r.b.a,a,c+r.c.a,t.p-1);break;default:s=Alt(t,0,u+r.b.a,c-1,u+r.c.a)}if(s)return!0}return!1}function zjt(t,e){var n,i,a,r,o,s,c,l;for(r=new Wf(e.b);r.a<r.c.c.length;)for(c=new Wf(jz(J1(r),29).a);c.a<c.c.c.length;){for(s=jz(J1(c),10),l=new Lm,o=0,i=new oq(XO(uft(s).a.Kc(),new u));gIt(i);)!d6(n=jz(V6(i),17))&&(d6(n)||n.c.i.c!=n.d.i.c)&&((a=jz(yEt(n,(zYt(),dme)),19).a)>o&&(o=a,l.c=O5(Dte,zGt,1,0,5,1)),a==o&&Wz(l,new nA(n.c.i,n)));kK(),mL(l,t.c),vV(t.b,s.p,l)}}function Hjt(t,e){var n,i,a,r,o,s,c,l;for(r=new Wf(e.b);r.a<r.c.c.length;)for(c=new Wf(jz(J1(r),29).a);c.a<c.c.c.length;){for(s=jz(J1(c),10),l=new Lm,o=0,i=new oq(XO(dft(s).a.Kc(),new u));gIt(i);)!d6(n=jz(V6(i),17))&&(d6(n)||n.c.i.c!=n.d.i.c)&&((a=jz(yEt(n,(zYt(),dme)),19).a)>o&&(o=a,l.c=O5(Dte,zGt,1,0,5,1)),a==o&&Wz(l,new nA(n.d.i,n)));kK(),mL(l,t.c),vV(t.f,s.p,l)}}function Ujt(t){LE(t,new kkt(bR(hR(pR(gR(new bs,d6t),"ELK Box"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges."),new Bs))),r2(t,d6t,ZJt,UEe),r2(t,d6t,mQt,15),r2(t,d6t,bQt,nht(0)),r2(t,d6t,D3t,ymt(PEe)),r2(t,d6t,CQt,ymt(jEe)),r2(t,d6t,EQt,ymt(zEe)),r2(t,d6t,GJt,u6t),r2(t,d6t,xQt,ymt(FEe)),r2(t,d6t,$Qt,ymt($Ee)),r2(t,d6t,h6t,ymt(NEe)),r2(t,d6t,o4t,ymt(BEe))}function Vjt(t,e){var n,i,a,r,o,s,c,l,u;if(o=(a=t.i).o.a,r=a.o.b,o<=0&&r<=0)return wWt(),CAe;switch(l=t.n.a,u=t.n.b,s=t.o.a,n=t.o.b,e.g){case 2:case 1:if(l<0)return wWt(),SAe;if(l+s>o)return wWt(),sAe;break;case 4:case 3:if(u<0)return wWt(),cAe;if(u+n>r)return wWt(),EAe}return(c=(l+s/2)/o)+(i=(u+n/2)/r)<=1&&c-i<=0?(wWt(),SAe):c+i>=1&&c-i>=0?(wWt(),sAe):i<.5?(wWt(),cAe):(wWt(),EAe)}function qjt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f;for(n=!1,c=Hw(_B(yEt(e,(zYt(),Tme)))),h=PZt*c,a=new Wf(e.b);a.a<a.c.c.length;)for(i=jz(J1(a),29),r=jz(J1(s=new Wf(i.a)),10),l=hW(t.a[r.p]);s.a<s.c.c.length;)o=jz(J1(s),10),l!=(u=hW(t.a[o.p]))&&(d=BL(t.b,r,o),r.n.b+r.o.b+r.d.a+l.a+d>o.n.b-o.d.d+u.a+h&&(f=l.g+u.g,u.a=(u.g*u.a+l.g*l.a)/f,u.g=f,l.f=u,n=!0)),r=o,l=u;return n}function Wjt(t,e,n,i,a,r,o){var s,c,l,u,d;for(d=new dI,c=e.Kc();c.Ob();)for(u=new Wf(jz(c.Pb(),839).wf());u.a<u.c.c.length;)HA((l=jz(J1(u),181)).We((cGt(),gCe)))===HA((Bet(),WSe))&&(iFt(d,l,!1,i,a,r,o),SSt(t,d));for(s=n.Kc();s.Ob();)for(u=new Wf(jz(s.Pb(),839).wf());u.a<u.c.c.length;)HA((l=jz(J1(u),181)).We((cGt(),gCe)))===HA((Bet(),qSe))&&(iFt(d,l,!0,i,a,r,o),SSt(t,d))}function Yjt(t,e,n){var i,a,r,o,s,c,l;for(o=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));o.e!=o.i.gc();)for(a=new oq(XO(gOt(r=jz(wmt(o),33)).a.Kc(),new u));gIt(a);)!QDt(i=jz(V6(a),79))&&!QDt(i)&&!ZAt(i)&&(c=jz(zA(AX(n.f,r)),86),l=jz(NY(n,Ckt(jz(Yet((!i.c&&(i.c=new cF(NDe,i,5,8)),i.c),0),82))),86),c&&l&&(lct(s=new VK(c,l),(HUt(),sxe),i),Hot(s,i),MH(c.d,s),MH(l.b,s),MH(e.a,s)))}function Gjt(t,e){var n,a,r,o,s,c,l;for(c=jz(jz(c7(t.r,e),21),84).Kc();c.Ob();)(a=(s=jz(c.Pb(),111)).c?WH(s.c):0)>0?s.a?a>(l=s.b.rf().b)&&(t.v||1==s.c.d.c.length?(o=(a-l)/2,s.d.d=o,s.d.a=o):(n=(jz(OU(s.c.d,0),181).rf().b-l)/2,s.d.d=i.Math.max(0,n),s.d.a=a-n-l)):s.d.a=t.t+a:$q(t.u)&&((r=Fkt(s.b)).d<0&&(s.d.d=-r.d),r.d+r.a>s.b.rf().b&&(s.d.a=r.d+r.a-s.b.rf().b))}function Zjt(t,e){var n;switch(btt(t)){case 6:return qA(e);case 7:return VA(e);case 8:return UA(e);case 3:return Array.isArray(e)&&!((n=btt(e))>=14&&n<=16);case 11:return null!=e&&typeof e===MGt;case 12:return null!=e&&(typeof e===DGt||typeof e==MGt);case 0:return Zmt(e,t.__elementTypeId$);case 2:return MW(e)&&e.im!==A;case 1:return MW(e)&&e.im!==A||Zmt(e,t.__elementTypeId$);default:return!0}}function Kjt(t,e){var n,a,r,o;return a=i.Math.min(i.Math.abs(t.c-(e.c+e.b)),i.Math.abs(t.c+t.b-e.c)),o=i.Math.min(i.Math.abs(t.d-(e.d+e.a)),i.Math.abs(t.d+t.a-e.d)),(n=i.Math.abs(t.c+t.b/2-(e.c+e.b/2)))>t.b/2+e.b/2||(r=i.Math.abs(t.d+t.a/2-(e.d+e.a/2)))>t.a/2+e.a/2?1:0==n&&0==r?0:0==n?o/r+1:0==r?a/n+1:i.Math.min(a/n,o/r)+1}function Xjt(t,e){var n,a,r,o,s,c;return(r=nit(t))==(c=nit(e))?t.e==e.e&&t.a<54&&e.a<54?t.f<e.f?-1:t.f>e.f?1:0:(a=t.e-e.e,(n=(t.d>0?t.d:i.Math.floor((t.a-1)*VKt)+1)-(e.d>0?e.d:i.Math.floor((e.a-1)*VKt)+1))>a+1?r:n<a-1?-r:(!t.c&&(t.c=vut(t.f)),o=t.c,!e.c&&(e.c=vut(e.f)),s=e.c,a<0?o=Ltt(o,wzt(-a)):a>0&&(s=Ltt(s,wzt(a))),tbt(o,s))):r<c?-1:1}function Jjt(t,e){var n,i,a,r,o,s,c;for(r=0,s=0,c=0,a=new Wf(t.f.e);a.a<a.c.c.length;)e!=(i=jz(J1(a),144))&&(r+=o=t.i[e.b][i.b],(n=W5(e.d,i.d))>0&&t.d!=(z9(),Doe)&&(s+=o*(i.d.a+t.a[e.b][i.b]*(e.d.a-i.d.a)/n)),n>0&&t.d!=(z9(),Toe)&&(c+=o*(i.d.b+t.a[e.b][i.b]*(e.d.b-i.d.b)/n)));switch(t.d.g){case 1:return new OT(s/r,e.d.b);case 2:return new OT(e.d.a,c/r);default:return new OT(s/r,c/r)}}function Qjt(t,e){var n,i,a,r;if(Vlt(),r=jz(yEt(t.i,(zYt(),tme)),98),0!=t.j.g-e.j.g||r!=(Z_t(),qTe)&&r!=YTe&&r!=WTe)return 0;if(r==(Z_t(),qTe)&&(n=jz(yEt(t,eme),19),i=jz(yEt(e,eme),19),n&&i&&0!=(a=n.a-i.a)))return a;switch(t.j.g){case 1:return Cht(t.n.a,e.n.a);case 2:return Cht(t.n.b,e.n.b);case 3:return Cht(e.n.a,t.n.a);case 4:return Cht(e.n.b,t.n.b);default:throw $m(new Fw(i1t))}}function t$t(t){var e,n,i,a,r;for(Wz(r=new K7((!t.a&&(t.a=new DO(LDe,t,5)),t.a).i+2),new OT(t.j,t.k)),Kk(new NU(null,(!t.a&&(t.a=new DO(LDe,t,5)),new h1(t.a,16))),new Sb(r)),Wz(r,new OT(t.b,t.c)),e=1;e<r.c.length-1;)u1(e-1,r.c.length),n=jz(r.c[e-1],8),u1(e,r.c.length),i=jz(r.c[e],8),u1(e+1,r.c.length),a=jz(r.c[e+1],8),n.a==i.a&&i.a==a.a||n.b==i.b&&i.b==a.b?s7(r,e):++e;return r}function e$t(t,e){var n,i,a,r,o,s,c;for(n=TM(eE(Qk(tE(new Wy,e),new gX(e.e)),gle),t.a),0==e.j.c.length||Y8(jz(OU(e.j,0),57).a,n),c=new Mm,YG(t.e,n,c),o=new Ny,s=new Ny,r=new Wf(e.k);r.a<r.c.c.length;)RW(o,(a=jz(J1(r),17)).c),RW(s,a.d);(i=o.a.gc()-s.a.gc())<0?(qst(c,!0,(jdt(),FSe)),qst(c,!1,jSe)):i>0&&(qst(c,!1,(jdt(),FSe)),qst(c,!0,jSe)),Aet(e.g,new sS(t,n)),YG(t.g,e,n)}function n$t(){var t;for(n$t=D,Lee=Cst(Hx(TMe,1),lKt,25,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]),Oee=O5(TMe,lKt,25,37,15,1),Mee=Cst(Hx(TMe,1),lKt,25,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]),Nee=O5(DMe,jKt,25,37,14,1),t=2;t<=36;t++)Oee[t]=CJ(i.Math.pow(t,Lee[t])),Nee[t]=ARt(hZt,Oee[t])}function i$t(t){var e;if(1!=(!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i)throw $m(new Pw($6t+(!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i));return e=new vv,hst(jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82))&&jat(e,VYt(t,hst(jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82)),!1)),hst(jz(Yet((!t.c&&(t.c=new cF(NDe,t,5,8)),t.c),0),82))&&jat(e,VYt(t,hst(jz(Yet((!t.c&&(t.c=new cF(NDe,t,5,8)),t.c),0),82)),!0)),e}function a$t(t,e){var n,i,a;for(a=!1,i=new oq(XO((e.d?t.a.c==(gJ(),twe)?uft(e.b):dft(e.b):t.a.c==(gJ(),Qve)?uft(e.b):dft(e.b)).a.Kc(),new u));gIt(i);)if(n=jz(V6(i),17),(zw(t.a.f[t.a.g[e.b.p].p])||d6(n)||n.c.i.c!=n.d.i.c)&&!zw(t.a.n[t.a.g[e.b.p].p])&&!zw(t.a.n[t.a.g[e.b.p].p])&&(a=!0,Fk(t.b,t.a.g[Lvt(n,e.b).p])))return e.c=!0,e.a=n,e;return e.c=a,e.a=null,e}function r$t(t,e,n,i,a){var r,o,s,c,l,u,d;for(kK(),mL(t,new Gs),s=new _2(t,0),d=new Lm,r=0;s.b<s.d.gc();)EN(s.b<s.d.gc()),o=jz(s.d.Xb(s.c=s.b++),157),0!=d.c.length&&eV(o)*tV(o)>2*r?(u=new Uet(d),l=eV(o)/tV(o),c=vYt(u,e,new dv,n,i,a,l),VP(vD(u.e),c),d.c=O5(Dte,zGt,1,0,5,1),r=0,d.c[d.c.length]=u,d.c[d.c.length]=o,r=eV(u)*tV(u)+eV(o)*tV(o)):(d.c[d.c.length]=o,r+=eV(o)*tV(o));return d}function o$t(t,e,n){var i,a,r,o,s,c,l;if(0==(i=n.gc()))return!1;if(t.ej())if(c=t.fj(),wgt(t,e,n),o=1==i?t.Zi(3,null,n.Kc().Pb(),e,c):t.Zi(5,null,n,e,c),t.bj()){for(s=i<100?null:new FR(i),r=e+i,a=e;a<r;++a)l=t.Oi(a),s=t.cj(l,s);s?(s.Ei(o),s.Fi()):t.$i(o)}else t.$i(o);else if(wgt(t,e,n),t.bj()){for(s=i<100?null:new FR(i),r=e+i,a=e;a<r;++a)s=t.cj(t.Oi(a),s);s&&s.Fi()}return!0}function s$t(t,e,n){var i,a,r,o;return t.ej()?(a=null,r=t.fj(),i=t.Zi(1,o=t.Ui(e,t.oi(e,n)),n,e,r),t.bj()&&!(t.ni()&&o?Odt(o,n):HA(o)===HA(n))&&(o&&(a=t.dj(o,a)),a=t.cj(n,a)),a?(a.Ei(i),a.Fi()):t.$i(i),o):(o=t.Ui(e,t.oi(e,n)),t.bj()&&!(t.ni()&&o?Odt(o,n):HA(o)===HA(n))&&(a=null,o&&(a=t.dj(o,null)),(a=t.cj(n,a))&&a.Fi()),o)}function c$t(t,e){var n,a,r,o,s,c,l,u;if(t.e=e,t.f=jz(yEt(e,(kat(),coe)),230),Wkt(e),t.d=i.Math.max(16*e.e.c.length+e.c.c.length,256),!zw(RB(yEt(e,(uPt(),$re)))))for(u=t.e.e.c.length,c=new Wf(e.e);c.a<c.c.c.length;)(l=jz(J1(c),144).d).a=TV(t.f)*u,l.b=TV(t.f)*u;for(n=e.b,o=new Wf(e.c);o.a<o.c.c.length;)if(r=jz(J1(o),282),(a=jz(yEt(r,toe),19).a)>0){for(s=0;s<a;s++)Wz(n,new cY(r));$Tt(r)}}function l$t(t,e){var n,a,r,o,s;if(t.k==(oCt(),Ese)&&(n=w_(AZ(jz(yEt(t,(lGt(),Ehe)),15).Oc(),new ag(new ai))).sd((fE(),Qne))?e:(Wwt(),_Te),lct(t,rhe,n),n!=(Wwt(),RTe)))for(a=jz(yEt(t,fhe),17),s=Hw(_B(yEt(a,(zYt(),abe)))),o=0,n==xTe?o=t.o.b-i.Math.ceil(s/2):n==_Te&&(t.o.b-=Hw(_B(yEt(bG(t),wme))),o=(t.o.b-i.Math.ceil(s))/2),r=new Wf(t.j);r.a<r.c.c.length;)jz(J1(r),11).n.b=o}function u$t(){u$t=D,KE(),xMe=new Pu,Cst(Hx(TLe,2),cZt,368,0,[Cst(Hx(TLe,1),xte,592,0,[new V_(V9t)])]),Cst(Hx(TLe,2),cZt,368,0,[Cst(Hx(TLe,1),xte,592,0,[new V_(q9t)])]),Cst(Hx(TLe,2),cZt,368,0,[Cst(Hx(TLe,1),xte,592,0,[new V_(W9t)]),Cst(Hx(TLe,1),xte,592,0,[new V_(q9t)])]),new DI("-1"),Cst(Hx(TLe,2),cZt,368,0,[Cst(Hx(TLe,1),xte,592,0,[new V_("\\c+")])]),new DI("0"),new DI("0"),new DI("1"),new DI("0"),new DI(nte)}function d$t(t){var e,n;return t.c&&t.c.kh()&&(n=jz(t.c,49),t.c=jz(tdt(t,n),138),t.c!=n&&(4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,9,2,n,t.c)),iO(t.Cb,399)?t.Db>>16==-15&&t.Cb.nh()&&D9(new v8(t.Cb,9,13,n,t.c,oyt($9(jz(t.Cb,59)),t))):iO(t.Cb,88)&&t.Db>>16==-23&&t.Cb.nh()&&(iO(e=t.c,88)||(pGt(),e=hLe),iO(n,88)||(pGt(),n=hLe),D9(new v8(t.Cb,9,10,n,e,oyt(a3(jz(t.Cb,26)),t)))))),t.c}function h$t(t,e){var n,i,a,r,o,s,c,l,u;for(Akt(e,"Hypernodes processing",1),i=new Wf(t.b);i.a<i.c.c.length;)for(o=new Wf(jz(J1(i),29).a);o.a<o.c.c.length;)if(zw(RB(yEt(r=jz(J1(o),10),(zYt(),dbe))))&&r.j.c.length<=2){for(u=0,l=0,n=0,a=0,c=new Wf(r.j);c.a<c.c.c.length;)switch(s=jz(J1(c),11),s.j.g){case 1:++u;break;case 2:++l;break;case 3:++n;break;case 4:++a}0==u&&0==n&&xYt(t,r,a<=l)}zCt(e)}function f$t(t,e){var n,i,a,r,o,s,c,l,u;for(Akt(e,"Layer constraint edge reversal",1),o=new Wf(t.b);o.a<o.c.c.length;){for(r=jz(J1(o),29),u=-1,n=new Lm,l=J0(r.a),a=0;a<l.length;a++)i=jz(yEt(l[a],(lGt(),ehe)),303),-1==u?i!=(U9(),Sde)&&(u=a):i==(U9(),Sde)&&(EQ(l[a],null),Zwt(l[a],u++,r)),i==(U9(),Ede)&&Wz(n,l[a]);for(c=new Wf(n);c.a<c.c.c.length;)EQ(s=jz(J1(c),10),null),EQ(s,r)}zCt(e)}function g$t(t,e,n){var i,a,r,o,s,c,l,u;for(Akt(n,"Hyperedge merging",1),MIt(t,e),s=new _2(e.b,0);s.b<s.d.gc();)if(EN(s.b<s.d.gc()),0!=(l=jz(s.d.Xb(s.c=s.b++),29).a).c.length)for(i=null,a=null,r=null,o=null,c=0;c<l.c.length;c++)u1(c,l.c.length),(a=(i=jz(l.c[c],10)).k)==(oCt(),Cse)&&o==Cse&&(u=lHt(i,r)).a&&(iBt(i,r,u.b,u.c),u1(c,l.c.length),E_(l.c,c,1),--c,i=r,a=o),r=i,o=a;zCt(n)}function p$t(t,e){var n,i,a;i=0!=zLt(t.d,1),!zw(RB(yEt(e.j,(lGt(),Kde))))&&!zw(RB(yEt(e.j,She)))||HA(yEt(e.j,(zYt(),Ipe)))===HA((yct(),Oye))?e.c.Tf(e.e,i):i=zw(RB(yEt(e.j,Kde))),NMt(t,e,i,!0),zw(RB(yEt(e.j,She)))&&lct(e.j,She,(cM(),!1)),zw(RB(yEt(e.j,Kde)))&&(lct(e.j,Kde,(cM(),!1)),lct(e.j,She,!0)),n=eFt(t,e);do{if(Iat(t),0==n)return 0;a=n,NMt(t,e,i=!i,!1),n=eFt(t,e)}while(a>n);return a}function b$t(t,e){var n,i,a;i=0!=zLt(t.d,1),!zw(RB(yEt(e.j,(lGt(),Kde))))&&!zw(RB(yEt(e.j,She)))||HA(yEt(e.j,(zYt(),Ipe)))===HA((yct(),Oye))?e.c.Tf(e.e,i):i=zw(RB(yEt(e.j,Kde))),NMt(t,e,i,!0),zw(RB(yEt(e.j,She)))&&lct(e.j,She,(cM(),!1)),zw(RB(yEt(e.j,Kde)))&&(lct(e.j,Kde,(cM(),!1)),lct(e.j,She,!0)),n=QSt(t,e);do{if(Iat(t),0==n)return 0;a=n,NMt(t,e,i=!i,!1),n=QSt(t,e)}while(a>n);return a}function m$t(t,e,n){var i,a,r,o,s,c,l;if(e==n)return!0;if(e=hIt(t,e),n=hIt(t,n),i=Hyt(e)){if((c=Hyt(n))!=i)return!!c&&(o=i.Dj())==c.Dj()&&null!=o;if(!e.d&&(e.d=new DO(WIe,e,1)),a=(r=e.d).i,!n.d&&(n.d=new DO(WIe,n,1)),a==(l=n.d).i)for(s=0;s<a;++s)if(!m$t(t,jz(Yet(r,s),87),jz(Yet(l,s),87)))return!1;return!0}return e.e==n.e}function y$t(t,e,n,i){var a,r,o,s,c,l,u,d;if(INt(t.e,e)){for(d=rNt(t.e.Tg(),e),r=jz(t.g,119),u=null,c=-1,s=-1,a=0,l=0;l<t.i;++l)o=r[l],d.rl(o.ak())&&(a==n&&(c=l),a==i&&(s=l,u=o.dd()),++a);if(-1==c)throw $m(new Aw(o5t+n+s5t+a));if(-1==s)throw $m(new Aw(c5t+i+s5t+a));return Tht(t,c,s),mI(t.e)&&Iy(t,IX(t,7,e,nht(i),u,n,!0)),u}throw $m(new Pw("The feature must be many-valued to support move"))}function v$t(t,e,n,i){var a,r,o,s,c;switch((c=new hI(e.n)).a+=e.o.a/2,c.b+=e.o.b/2,s=Hw(_B(yEt(e,(zYt(),Qbe)))),r=t.f,o=t.d,a=t.c,jz(yEt(e,(lGt(),Gde)),61).g){case 1:c.a+=o.b+a.a-n/2,c.b=-i-s,e.n.b=-(o.d+s+a.b);break;case 2:c.a=r.a+o.b+o.c+s,c.b+=o.d+a.b-i/2,e.n.a=r.a+o.c+s-a.a;break;case 3:c.a+=o.b+a.a-n/2,c.b=r.b+o.d+o.a+s,e.n.b=r.b+o.a+s-a.b;break;case 4:c.a=-n-s,c.b+=o.d+a.b-i/2,e.n.a=-(o.b+s+a.a)}return c}function w$t(t){var e,n,i,a,r,o;return Hot(i=new yit,t),HA(yEt(i,(zYt(),Vpe)))===HA((jdt(),$Se))&&lct(i,Vpe,Yht(i)),null==yEt(i,(C7(),REe))&&(o=jz(IEt(t),160),lct(i,REe,eD(o.We(REe)))),lct(i,(lGt(),fhe),t),lct(i,Xde,new ZF(e=jz(YR(vde),9),jz(kP(e,e.length),9),0)),a=Cqt((KJ(t)&&(HE(),new Mw(KJ(t))),HE(),new KM(KJ(t)?new Mw(KJ(t)):null,t)),jSe),r=jz(yEt(i,Ube),116),tQ(n=i.d,r),tQ(n,a),i}function x$t(t,e,n){var i,a;i=e.c.i,a=n.d.i,i.k==(oCt(),Cse)?(lct(t,(lGt(),che),jz(yEt(i,che),11)),lct(t,lhe,jz(yEt(i,lhe),11)),lct(t,she,RB(yEt(i,she)))):i.k==Ese?(lct(t,(lGt(),che),jz(yEt(i,che),11)),lct(t,lhe,jz(yEt(i,lhe),11)),lct(t,she,(cM(),!0))):a.k==Ese?(lct(t,(lGt(),che),jz(yEt(a,che),11)),lct(t,lhe,jz(yEt(a,lhe),11)),lct(t,she,(cM(),!0))):(lct(t,(lGt(),che),e.c),lct(t,lhe,n.d))}function R$t(t){var e,n,i,a,r,o,s;for(t.o=new Im,i=new Zk,o=new Wf(t.e.a);o.a<o.c.c.length;)1==wft(r=jz(J1(o),121)).c.length&&n6(i,r,i.c.b,i.c);for(;0!=i.b;)0!=wft(r=jz(0==i.b?null:(EN(0!=i.b),Det(i,i.a.a)),121)).c.length&&(e=jz(OU(wft(r),0),213),n=r.g.a.c.length>0,s=Oft(e,r),BM(n?s.b:s.g,e),1==wft(s).c.length&&n6(i,s,i.c.b,i.c),a=new nA(r,e),f4(t.o,a),y9(t.e.a,r))}function _$t(t,e){var n,a,r,o;return a=i.Math.abs(zq(t.b).a-zq(e.b).a),o=i.Math.abs(zq(t.b).b-zq(e.b).b),n=1,r=1,a>t.b.b/2+e.b.b/2&&(n=1-i.Math.min(i.Math.abs(t.b.c-(e.b.c+e.b.b)),i.Math.abs(t.b.c+t.b.b-e.b.c))/a),o>t.b.a/2+e.b.a/2&&(r=1-i.Math.min(i.Math.abs(t.b.d-(e.b.d+e.b.a)),i.Math.abs(t.b.d+t.b.a-e.b.d))/o),(1-i.Math.min(n,r))*i.Math.sqrt(a*a+o*o)}function k$t(t){var e,n,i;for(Qqt(t,t.e,t.f,(fJ(),Lwe),!0,t.c,t.i),Qqt(t,t.e,t.f,Lwe,!1,t.c,t.i),Qqt(t,t.e,t.f,Owe,!0,t.c,t.i),Qqt(t,t.e,t.f,Owe,!1,t.c,t.i),T$t(t,t.c,t.e,t.f,t.i),n=new _2(t.i,0);n.b<n.d.gc();)for(EN(n.b<n.d.gc()),e=jz(n.d.Xb(n.c=n.b++),128),i=new _2(t.i,n.b);i.b<i.d.gc();)EN(i.b<i.d.gc()),OUt(e,jz(i.d.Xb(i.c=i.b++),128));TYt(t.i,jz(yEt(t.d,(lGt(),khe)),230)),UVt(t.i)}function E$t(t,e){var n,i;if(null!=e)if(i=nwt(t)){if(!(1&i.i))return JE(),!(n=jz(NY(bIe,i),55))||n.wj(e);if(i==AMe)return UA(e);if(i==TMe)return iO(e,19);if(i==OMe)return iO(e,155);if(i==IMe)return iO(e,217);if(i==SMe)return iO(e,172);if(i==LMe)return VA(e);if(i==MMe)return iO(e,184);if(i==DMe)return iO(e,162)}else if(iO(e,56))return t.uk(jz(e,56));return!1}function C$t(){var t,e,n,i,a,r,o,s,c;for(C$t=D,qOe=O5(IMe,m7t,25,255,15,1),WOe=O5(SMe,YZt,25,64,15,1),e=0;e<255;e++)qOe[e]=-1;for(n=90;n>=65;n--)qOe[n]=n-65<<24>>24;for(i=122;i>=97;i--)qOe[i]=i-97+26<<24>>24;for(a=57;a>=48;a--)qOe[a]=a-48+52<<24>>24;for(qOe[43]=62,qOe[47]=63,r=0;r<=25;r++)WOe[r]=65+r&ZZt;for(o=26,c=0;o<=51;++o,c++)WOe[o]=97+c&ZZt;for(t=52,s=0;t<=61;++t,s++)WOe[t]=48+s&ZZt;WOe[62]=43,WOe[63]=47}function S$t(t,e){var n,a,r,o,s,c,l,u,d,h,f;if(t.dc())return new HR;for(l=0,d=0,a=t.Kc();a.Ob();)r=jz(a.Pb(),37).f,l=i.Math.max(l,r.a),d+=r.a*r.b;for(l=i.Math.max(l,i.Math.sqrt(d)*Hw(_B(yEt(jz(t.Kc().Pb(),37),(zYt(),xpe))))),h=0,f=0,c=0,n=e,s=t.Kc();s.Ob();)h+(u=(o=jz(s.Pb(),37)).f).a>l&&(h=0,f+=c+e,c=0),JPt(o,h,f),n=i.Math.max(n,h+u.a),c=i.Math.max(c,u.b),h+=u.a+e;return new OT(n+e,f+c+e)}function T$t(t,e,n,i,a){var r,o,s,c,l,u,d;for(o=new Wf(e);o.a<o.c.c.length;){if(c=(r=jz(J1(o),17)).c,n.a._b(c))fJ(),l=Lwe;else{if(!i.a._b(c))throw $m(new Pw("Source port must be in one of the port sets."));fJ(),l=Owe}if(u=r.d,n.a._b(u))fJ(),d=Lwe;else{if(!i.a._b(u))throw $m(new Pw("Target port must be in one of the port sets."));fJ(),d=Owe}s=new tTt(r,l,d),YG(t.b,r,s),a.c[a.c.length]=s}}function A$t(t,e){var n,i,a,r,o,s,c;if(!WJ(t))throw $m(new Fw(j6t));if(r=(i=WJ(t)).g,a=i.f,r<=0&&a<=0)return wWt(),CAe;switch(s=t.i,c=t.j,e.g){case 2:case 1:if(s<0)return wWt(),SAe;if(s+t.g>r)return wWt(),sAe;break;case 4:case 3:if(c<0)return wWt(),cAe;if(c+t.f>a)return wWt(),EAe}return(o=(s+t.g/2)/r)+(n=(c+t.f/2)/a)<=1&&o-n<=0?(wWt(),SAe):o+n>=1&&o-n>=0?(wWt(),sAe):n<.5?(wWt(),cAe):(wWt(),EAe)}function D$t(t,e,n,i,a){var r,o;if(r=ift(t0(e[0],qKt),t0(i[0],qKt)),t[0]=fV(r),r=vq(r,32),n>=a){for(o=1;o<a;o++)r=ift(r,ift(t0(e[o],qKt),t0(i[o],qKt))),t[o]=fV(r),r=vq(r,32);for(;o<n;o++)r=ift(r,t0(e[o],qKt)),t[o]=fV(r),r=vq(r,32)}else{for(o=1;o<n;o++)r=ift(r,ift(t0(e[o],qKt),t0(i[o],qKt))),t[o]=fV(r),r=vq(r,32);for(;o<a;o++)r=ift(r,t0(i[o],qKt)),t[o]=fV(r),r=vq(r,32)}0!=Gut(r,0)&&(t[o]=fV(r))}function I$t(t){var e,n,i,a,r,o;if(fGt(),4!=t.e&&5!=t.e)throw $m(new Pw("Token#complementRanges(): must be RANGE: "+t.e));for(_Lt(r=t),HHt(r),i=r.b.length+2,0==r.b[0]&&(i-=2),(n=r.b[r.b.length-1])==ote&&(i-=2),(a=new _0(4)).b=O5(TMe,lKt,25,i,15,1),o=0,r.b[0]>0&&(a.b[o++]=0,a.b[o++]=r.b[0]-1),e=1;e<r.b.length-2;e+=2)a.b[o++]=r.b[e]+1,a.b[o++]=r.b[e+1]-1;return n!=ote&&(a.b[o++]=n+1,a.b[o]=ote),a.a=!0,a}function L$t(t,e,n){var i,a,r,o,s,c,l,u;if(0==(i=n.gc()))return!1;if(t.ej())if(l=t.fj(),$kt(t,e,n),o=1==i?t.Zi(3,null,n.Kc().Pb(),e,l):t.Zi(5,null,n,e,l),t.bj()){for(s=i<100?null:new FR(i),r=e+i,a=e;a<r;++a)u=t.g[a],s=t.cj(u,s),s=t.jj(u,s);s?(s.Ei(o),s.Fi()):t.$i(o)}else t.$i(o);else if($kt(t,e,n),t.bj()){for(s=i<100?null:new FR(i),r=e+i,a=e;a<r;++a)c=t.g[a],s=t.cj(c,s);s&&s.Fi()}return!0}function O$t(t,e,n,i){var a,r,o,s,c;for(o=new Wf(t.k);o.a<o.c.c.length;)a=jz(J1(o),129),(!i||a.c==(T7(),_we))&&(c=a.b).g<0&&a.d>0&&(Wh(c,c.d-a.d),a.c==(T7(),_we)&&Vh(c,c.a-a.d),c.d<=0&&c.i>0&&n6(e,c,e.c.b,e.c));for(r=new Wf(t.f);r.a<r.c.c.length;)a=jz(J1(r),129),(!i||a.c==(T7(),_we))&&(s=a.a).g<0&&a.d>0&&(Yh(s,s.i-a.d),a.c==(T7(),_we)&&qh(s,s.b-a.d),s.i<=0&&s.d>0&&n6(n,s,n.c.b,n.c))}function M$t(t,e,n){var i,a,r,o,s,c,l,u;for(Akt(n,"Processor compute fanout",1),DW(t.b),DW(t.a),s=null,r=cmt(e.b,0);!s&&r.b!=r.d.c;)zw(RB(yEt(l=jz(d4(r),86),(HUt(),fxe))))&&(s=l);for(n6(c=new Zk,s,c.c.b,c.c),xWt(t,c),u=cmt(e.b,0);u.b!=u.d.c;)o=kB(yEt(l=jz(d4(u),86),(HUt(),nxe))),a=null!=kJ(t.b,o)?jz(kJ(t.b,o),19).a:0,lct(l,exe,nht(a)),i=1+(null!=kJ(t.a,o)?jz(kJ(t.a,o),19).a:0),lct(l,Qwe,nht(i));zCt(n)}function N$t(t,e,n,i,a){var r,o,s,c,l,u,d,h,f;for(d=v_t(t,n),s=0;s<e;s++){for(yP(a,n),h=new Lm,EN(i.b<i.d.gc()),f=jz(i.d.Xb(i.c=i.b++),407),l=d+s;l<t.b;l++)o=f,EN(i.b<i.d.gc()),Wz(h,new RNt(o,f=jz(i.d.Xb(i.c=i.b++),407),n));for(u=d+s;u<t.b;u++)EN(i.b>0),i.a.Xb(i.c=--i.b),u>d+s&&lG(i);for(r=new Wf(h);r.a<r.c.c.length;)yP(i,jz(J1(r),407));if(s<e-1)for(c=d+s;c<t.b;c++)EN(i.b>0),i.a.Xb(i.c=--i.b)}}function B$t(){var t,e,n,i,a,r;if(fGt(),EMe)return EMe;for(cHt(t=new _0(4),JWt(bte,!0)),YVt(t,JWt("M",!0)),YVt(t,JWt("C",!0)),r=new _0(4),i=0;i<11;i++)KNt(r,i,i);return cHt(e=new _0(4),JWt("M",!0)),KNt(e,4448,4607),KNt(e,65438,65439),tUt(a=new nL(2),t),tUt(a,oMe),(n=new nL(2)).$l(gV(r,JWt("L",!0))),n.$l(e),n=new VW(a,n=new c3(3,n)),EMe=n}function P$t(t){var e,n;if(!Krt(e=kB(JIt(t,(cGt(),tCe))),t)&&!E5(t,mSe)&&(0!=(!t.a&&(t.a=new tW(UDe,t,10,11)),t.a).i||zw(RB(JIt(t,kCe))))){if(null!=e&&0!=BEt(e).length)throw pqt(t,n=oD(oD(new uM("Layout algorithm '"),e),"' not found for ")),$m(new nx(n.a));if(!Krt(f1t,t))throw pqt(t,n=oD(oD(new uM("Unable to load default layout algorithm "),f1t)," for unconfigured node ")),$m(new nx(n.a))}}function F$t(t){var e,n,a,r,o,s,c,l,u,d,h,f,g;if(n=t.i,e=t.n,0==t.b)for(g=n.c+e.b,f=n.b-e.b-e.c,l=0,d=(s=t.a).length;l<d;++l)VV(r=s[l],g,f);else a=Yyt(t,!1),VV(t.a[0],n.c+e.b,a[0]),VV(t.a[2],n.c+n.b-e.c-a[2],a[2]),h=n.b-e.b-e.c,a[0]>0&&(h-=a[0]+t.c,a[0]+=t.c),a[2]>0&&(h-=a[2]+t.c),a[1]=i.Math.max(a[1],h),VV(t.a[1],n.c+e.b+a[0]-(a[1]-h)/2,a[1]);for(c=0,u=(o=t.a).length;c<u;++c)iO(r=o[c],326)&&jz(r,326).Te()}function j$t(t){var e,n,i,a,r,o,s,c,l,u,d;for((d=new oo).d=0,o=new Wf(t.b);o.a<o.c.c.length;)r=jz(J1(o),29),d.d+=r.a.c.length;for(i=0,a=0,d.a=O5(TMe,lKt,25,t.b.c.length,15,1),l=0,u=0,d.e=O5(TMe,lKt,25,d.d,15,1),n=new Wf(t.b);n.a<n.c.c.length;)for((e=jz(J1(n),29)).p=i++,d.a[e.p]=a++,u=0,c=new Wf(e.a);c.a<c.c.c.length;)(s=jz(J1(c),10)).p=l++,d.e[s.p]=u++;return d.c=new lb(d),d.b=sN(d.d),zjt(d,t),d.f=sN(d.d),Hjt(d,t),d}function $$t(t,e){var n,a,r;for(r=jz(OU(t.n,t.n.c.length-1),211).d,t.p=i.Math.min(t.p,e.g),t.r=i.Math.max(t.r,r),t.g=i.Math.max(t.g,e.g+(1==t.b.c.length?0:t.i)),t.o=i.Math.min(t.o,e.f),t.e+=e.f+(1==t.b.c.length?0:t.i),t.f=i.Math.max(t.f,e.f),a=t.n.c.length>0?(t.n.c.length-1)*t.i:0,n=new Wf(t.n);n.a<n.c.c.length;)a+=jz(J1(n),211).a;t.d=a,t.a=t.e/t.b.c.length-t.i*((t.b.c.length-1)/t.b.c.length),vwt(t.j)}function z$t(t,e){var n,i,a,r,o,s,c,l,u;if(null==(l=RB(yEt(e,(uPt(),eoe))))||(vG(l),l)){for(u=O5(AMe,JXt,25,e.e.c.length,16,1),o=wDt(e),a=new Zk,c=new Wf(e.e);c.a<c.c.c.length;)(n=KLt(t,jz(J1(c),144),null,null,u,o))&&(Hot(n,e),n6(a,n,a.c.b,a.c));if(a.b>1)for(i=cmt(a,0);i.b!=i.d.c;)for(r=0,s=new Wf((n=jz(d4(i),231)).e);s.a<s.c.c.length;)jz(J1(s),144).b=r++;return a}return r7(Cst(Hx(Mre,1),tQt,231,0,[e]))}function H$t(t){var e,n,i,a,r;if(!t.g){if(r=new kc,null==(e=kLe).a.zc(t,e)){for(n=new AO(vX(t));n.e!=n.i.gc();)pY(r,H$t(jz(wmt(n),26)));e.a.Bc(t),e.a.gc()}for(i=r.i,!t.s&&(t.s=new tW(PIe,t,21,17)),a=new AO(t.s);a.e!=a.i.gc();++i)rf(jz(wmt(a),449),i);pY(r,(!t.s&&(t.s=new tW(PIe,t,21,17)),t.s)),aut(r),t.g=new gct(t,r),t.i=jz(r.g,247),null==t.i&&(t.i=CLe),t.p=null,E6(t).b&=-5}return t.g}function U$t(t){var e,n,a,r,o,s,c,l,u,d,h,f,g;if(a=t.i,n=t.n,0==t.b)e=Wyt(t,!1),qV(t.a[0],a.d+n.d,e[0]),qV(t.a[2],a.d+a.a-n.a-e[2],e[2]),h=a.a-n.d-n.a,e[0]>0&&(e[0]+=t.c,h-=e[0]),e[2]>0&&(h-=e[2]+t.c),e[1]=i.Math.max(e[1],h),qV(t.a[1],a.d+n.d+e[0]-(e[1]-h)/2,e[1]);else for(g=a.d+n.d,f=a.a-n.d-n.a,l=0,d=(s=t.a).length;l<d;++l)qV(r=s[l],g,f);for(c=0,u=(o=t.a).length;c<u;++c)iO(r=o[c],326)&&jz(r,326).Ue()}function V$t(t){var e,n,i,a,r,o,s,c,l;for(l=O5(TMe,lKt,25,t.b.c.length+1,15,1),c=new Ny,i=0,r=new Wf(t.b);r.a<r.c.c.length;){for(a=jz(J1(r),29),l[i++]=c.a.gc(),s=new Wf(a.a);s.a<s.c.c.length;)for(n=new oq(XO(dft(jz(J1(s),10)).a.Kc(),new u));gIt(n);)e=jz(V6(n),17),c.a.zc(e,c);for(o=new Wf(a.a);o.a<o.c.c.length;)for(n=new oq(XO(uft(jz(J1(o),10)).a.Kc(),new u));gIt(n);)e=jz(V6(n),17),c.a.Bc(e)}return l}function q$t(t,e,n,i){var a,r,o,s,c;if(c=rNt(t.e.Tg(),e),a=jz(t.g,119),XE(),jz(e,66).Oj()){for(o=0;o<t.i;++o)if(r=a[o],c.rl(r.ak())&&Odt(r,n))return!0}else if(null!=n){for(s=0;s<t.i;++s)if(r=a[s],c.rl(r.ak())&&Odt(n,r.dd()))return!0;if(i)for(o=0;o<t.i;++o)if(r=a[o],c.rl(r.ak())&&HA(n)===HA(cB(t,jz(r.dd(),56))))return!0}else for(o=0;o<t.i;++o)if(r=a[o],c.rl(r.ak())&&null==r.dd())return!1;return!1}function W$t(t,e,n,i){var a,r,o,s,c,l;if(l=rNt(t.e.Tg(),e),o=jz(t.g,119),INt(t.e,e)){if(e.hi()&&(r=bzt(t,e,i,iO(e,99)&&0!=(jz(e,18).Bb&$Kt)))>=0&&r!=n)throw $m(new Pw(r5t));for(a=0,c=0;c<t.i;++c)if(s=o[c],l.rl(s.ak())){if(a==n)return jz(syt(t,c,(XE(),jz(e,66).Oj()?jz(i,72):X4(e,i))),72);++a}throw $m(new Aw(e8t+n+s5t+a))}for(c=0;c<t.i;++c)if(s=o[c],l.rl(s.ak()))return XE(),jz(e,66).Oj()?s:s.dd();return null}function Y$t(t,e,n,a){var r,o,s,c;for(c=n,s=new Wf(e.a);s.a<s.c.c.length;){if(o=jz(J1(s),221),r=jz(o.b,65),Tft(t.b.c,r.b.c+r.b.b)<=0&&Tft(r.b.c,t.b.c+t.b.b)<=0&&Tft(t.b.d,r.b.d+r.b.a)<=0&&Tft(r.b.d,t.b.d+t.b.a)<=0){if(0==Tft(r.b.c,t.b.c+t.b.b)&&a.a<0||0==Tft(r.b.c+r.b.b,t.b.c)&&a.a>0||0==Tft(r.b.d,t.b.d+t.b.a)&&a.b<0||0==Tft(r.b.d+r.b.a,t.b.d)&&a.b>0){c=0;break}}else c=i.Math.min(c,zTt(t,r,a));c=i.Math.min(c,Y$t(t,o,c,a))}return c}function G$t(t,e){var n,i,a,r,o,s;if(t.b<2)throw $m(new Pw("The vector chain must contain at least a source and a target point."));for(EN(0!=t.b),CI(e,(i=jz(t.a.a.c,8)).a,i.b),s=new iN((!e.a&&(e.a=new DO(LDe,e,5)),e.a)),r=cmt(t,1);r.a<t.b-1;)o=jz(d4(r),8),s.e!=s.i.gc()?n=jz(wmt(s),469):(QR(),spt(s,n=new rc)),RI(n,o.a,o.b);for(;s.e!=s.i.gc();)wmt(s),ZRt(s);EN(0!=t.b),EI(e,(a=jz(t.c.b.c,8)).a,a.b)}function Z$t(t,e){var n,i,a,r,o,s,c,l;for(n=0,i=new Wf((u1(0,t.c.length),jz(t.c[0],101)).g.b.j);i.a<i.c.c.length;)jz(J1(i),11).p=n++;for(e==(wWt(),cAe)?mL(t,new tr):mL(t,new er),o=0,l=t.c.length-1;o<l;)u1(o,t.c.length),r=jz(t.c[o],101),u1(l,t.c.length),c=jz(t.c[l],101),a=e==cAe?r.c:r.a,s=e==cAe?c.a:c.c,dW(r,e,(Ast(),vle),a),dW(c,e,yle,s),++o,--l;o==l&&dW((u1(o,t.c.length),jz(t.c[o],101)),e,(Ast(),mle),null)}function K$t(t,e,n){var i,a,r,o,s,c,l,u,d,h;return u=t.a.i+t.a.g/2,d=t.a.i+t.a.g/2,o=new OT(e.i+e.g/2,e.j+e.f/2),(c=jz(JIt(e,(cGt(),gSe)),8)).a=c.a+u,c.b=c.b+d,a=(o.b-c.b)/(o.a-c.a),i=o.b-a*o.a,s=new OT(n.i+n.g/2,n.j+n.f/2),(l=jz(JIt(n,gSe),8)).a=l.a+u,l.b=l.b+d,r=(s.b-l.b)/(s.a-l.a),h=(i-(s.b-r*s.a))/(r-a),!(c.a<h&&o.a<h||h<c.a&&h<o.a||l.a<h&&s.a<h||h<l.a&&h<s.a)}function X$t(t,e){var n,i,a,r,o,s;if(!(o=jz(NY(t.c,e),183)))throw $m(new tx("Edge did not exist in input."));return i=Zpt(o),!W_((!e.a&&(e.a=new tW(PDe,e,6,6)),e.a))&&(n=new _z(t,i,s=new Eh),hD((!e.a&&(e.a=new tW(PDe,e,6,6)),e.a),n),net(o,M7t,s)),E5(e,(cGt(),TCe))&&!(!(a=jz(JIt(e,TCe),74))||pG(a))&&(t6(a,new Gb(r=new Eh)),net(o,"junctionPoints",r)),AH(o,"container",qJ(e).k),null}function J$t(t,e,n){var i,a,r,o,s,c;this.a=t,this.b=e,this.c=n,this.e=r7(Cst(Hx(rie,1),zGt,168,0,[new OC(t,e),new OC(e,n),new OC(n,t)])),this.f=r7(Cst(Hx(EEe,1),cZt,8,0,[t,e,n])),this.d=(i=qP(jL(this.b),this.a),a=qP(jL(this.c),this.a),r=qP(jL(this.c),this.b),o=i.a*(this.a.a+this.b.a)+i.b*(this.a.b+this.b.b),s=a.a*(this.a.a+this.c.a)+a.b*(this.a.b+this.c.b),c=2*(i.a*r.b-i.b*r.a),new OT((a.b*o-i.b*s)/c,(i.a*s-a.a*o)/c))}function Q$t(t,e,n,i){var a,r,o,s,c,l,u,d,h;if(d=new HY(t.p),net(e,t5t,d),n&&!(t.f?nX(t.f):null).a.dc())for(net(e,"logs",l=new Eh),s=0,h=new zf((t.f?nX(t.f):null).b.Kc());h.b.Ob();)u=new HY(kB(h.b.Pb())),ftt(l,s),n3(l,s,u),++s;if(i&&net(e,"executionTime",new _h(t.q)),!nX(t.a).a.dc())for(o=new Eh,net(e,D7t,o),s=0,r=new zf(nX(t.a).b.Kc());r.b.Ob();)a=jz(r.b.Pb(),1949),c=new pw,ftt(o,s),n3(o,s,c),Q$t(a,c,n,i),++s}function tzt(t,e){var n,i,a,r,o,s;for(r=t.c,o=t.d,kQ(t,null),_Q(t,null),e&&zw(RB(yEt(o,(lGt(),Qde))))?kQ(t,Bjt(o.i,(rit(),Hye),(wWt(),sAe))):kQ(t,o),e&&zw(RB(yEt(r,(lGt(),vhe))))?_Q(t,Bjt(r.i,(rit(),zye),(wWt(),SAe))):_Q(t,r),i=new Wf(t.b);i.a<i.c.c.length;)n=jz(J1(i),70),(a=jz(yEt(n,(zYt(),Zpe)),272))==(Bet(),WSe)?lct(n,Zpe,qSe):a==qSe&&lct(n,Zpe,WSe);s=zw(RB(yEt(t,(lGt(),Che)))),lct(t,Che,(cM(),!s)),t.a=Xct(t.a)}function ezt(t,e,n){var a,r,o,s,c;for(a=0,o=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));o.e!=o.i.gc();)s="",0==(!(r=jz(wmt(o),33)).n&&(r.n=new tW(HDe,r,1,7)),r.n).i||(s=jz(Yet((!r.n&&(r.n=new tW(HDe,r,1,7)),r.n),0),137).a),Hot(c=new zY(s),r),lct(c,(kat(),soe),r),c.b=a++,c.d.a=r.i+r.g/2,c.d.b=r.j+r.f/2,c.e.a=i.Math.max(r.g,1),c.e.b=i.Math.max(r.f,1),Wz(e.e,c),xTt(n.f,r,c),jz(JIt(r,(uPt(),Zre)),98),Z_t()}function nzt(t,e){var n,a,r,o,s,c,l,u,d,h,f;n=AM(new zy,t.f),c=t.i[e.c.i.p],h=t.i[e.d.i.p],s=e.c,d=e.d,o=s.a.b,u=d.a.b,c.b||(o+=s.n.b),h.b||(u+=d.n.b),l=CJ(i.Math.max(0,o-u)),r=CJ(i.Math.max(0,u-o)),f=i.Math.max(1,jz(yEt(e,(zYt(),dme)),19).a)*q4(e.c.i.k,e.d.i.k),a=new JS(qMt(aE(iE(nE(rE(new $y,f),r),n),jz(NY(t.k,e.c),121))),qMt(aE(iE(nE(rE(new $y,f),l),n),jz(NY(t.k,e.d),121)))),t.c[e.p]=a}function izt(t,e,n,i){var a,r,o,s,c,l;for(o=new oVt(t,e,n),c=new _2(i,0),a=!1;c.b<c.d.gc();)EN(c.b<c.d.gc()),(s=jz(c.d.Xb(c.c=c.b++),233))==e||s==n?lG(c):!a&&Hw(uO(s.g,s.d[0]).a)>Hw(uO(o.g,o.d[0]).a)?(EN(c.b>0),c.a.Xb(c.c=--c.b),yP(c,o),a=!0):s.e&&s.e.gc()>0&&(r=(!s.e&&(s.e=new Lm),s.e).Mc(e),l=(!s.e&&(s.e=new Lm),s.e).Mc(n),(r||l)&&((!s.e&&(s.e=new Lm),s.e).Fc(o),++o.c));a||(i.c[i.c.length]=o)}function azt(t){var e,n,i;if(bI(jz(yEt(t,(zYt(),tme)),98)))for(n=new Wf(t.j);n.a<n.c.c.length;)(e=jz(J1(n),11)).j==(wWt(),CAe)&&((i=jz(yEt(e,(lGt(),xhe)),10))?HTt(e,jz(yEt(i,Gde),61)):e.e.c.length-e.g.c.length<0?HTt(e,sAe):HTt(e,SAe));else{for(n=new Wf(t.j);n.a<n.c.c.length;)e=jz(J1(n),11),(i=jz(yEt(e,(lGt(),xhe)),10))?HTt(e,jz(yEt(i,Gde),61)):e.e.c.length-e.g.c.length<0?HTt(e,(wWt(),sAe)):HTt(e,(wWt(),SAe));lct(t,tme,(Z_t(),GTe))}}function rzt(t){var e,n;switch(t){case 91:case 93:case 45:case 94:case 44:case 92:n="\\"+String.fromCharCode(t&ZZt);break;case 12:n="\\f";break;case 10:n="\\n";break;case 13:n="\\r";break;case 9:n="\\t";break;case 27:n="\\e";break;default:n=t<32?"\\x"+lN(e="0"+(t>>>0).toString(16),e.length-2,e.length):t>=$Kt?"\\v"+lN(e="0"+(t>>>0).toString(16),e.length-6,e.length):""+String.fromCharCode(t&ZZt)}return n}function ozt(t,e){var n,i,a,r,o,s,c,l,u,d;if(o=t.e,0==(c=e.e))return t;if(0==o)return 0==e.e?e:new uW(-e.e,e.d,e.a);if((r=t.d)+(s=e.d)==2)return n=t0(t.a[0],qKt),i=t0(e.a[0],qKt),o<0&&(n=w9(n)),c<0&&(i=w9(i)),Qbt(nft(n,i));if(-1==(a=r!=s?r>s?1:-1:klt(t.a,e.a,r)))d=-c,u=o==c?f7(e.a,s,t.a,r):L5(e.a,s,t.a,r);else if(d=o,o==c){if(0==a)return ABt(),nne;u=f7(t.a,r,e.a,s)}else u=L5(t.a,r,e.a,s);return q0(l=new uW(d,u.length,u)),l}function szt(t){var e,n,i,a,r,o;for(this.e=new Lm,this.a=new Lm,n=t.b-1;n<3;n++)BN(t,0,jz(Nmt(t,0),8));if(t.b<4)throw $m(new Pw("At (least dimension + 1) control points are necessary!"));for(this.b=3,this.d=!0,this.c=!1,TLt(this,t.b+this.b-1),o=new Lm,r=new Wf(this.e),e=0;e<this.b-1;e++)Wz(o,_B(J1(r)));for(a=cmt(t,0);a.b!=a.d.c;)i=jz(d4(a),8),Wz(o,_B(J1(r))),Wz(this.a,new hJ(i,o)),u1(0,o.c.length),o.c.splice(0,1)}function czt(t,e){var n,i,a,r,o,s,c;for(a=new Wf(t.b);a.a<a.c.c.length;)for(o=new Wf(jz(J1(a),29).a);o.a<o.c.c.length;)for((r=jz(J1(o),10)).k==(oCt(),Ese)&&(s=jz(V6(new oq(XO(uft(r).a.Kc(),new u))),17),c=jz(V6(new oq(XO(dft(r).a.Kc(),new u))),17),l$t(r,zw(RB(yEt(s,(lGt(),Che))))&&zw(RB(yEt(c,Che)))?Wst(e):e)),i=new oq(XO(dft(r).a.Kc(),new u));gIt(i);)mst(n=jz(V6(i),17),zw(RB(yEt(n,(lGt(),Che))))?Wst(e):e)}function lzt(t,e,n,i,a){var r,o;if(n.f>=e.o&&n.f<=e.f||.5*e.a<=n.f&&1.5*e.a>=n.f){if((r=jz(OU(e.n,e.n.c.length-1),211)).e+r.d+n.g+a<=i&&(jz(OU(e.n,e.n.c.length-1),211).f-t.f+n.f<=t.b||1==t.a.c.length))return vft(e,n),!0;if(e.s+n.g<=i&&(e.t+e.d+n.f+a<=t.b||1==t.a.c.length))return Wz(e.b,n),o=jz(OU(e.n,e.n.c.length-1),211),Wz(e.n,new NJ(e.s,o.f+o.a+e.i,e.i)),cvt(jz(OU(e.n,e.n.c.length-1),211),n),$$t(e,n),!0}return!1}function uzt(t,e,n){var i,a,r,o;return t.ej()?(a=null,r=t.fj(),i=t.Zi(1,o=ott(t,e,n),n,e,r),t.bj()&&!(t.ni()&&null!=o?Odt(o,n):HA(o)===HA(n))?(null!=o&&(a=t.dj(o,a)),a=t.cj(n,a),t.ij()&&(a=t.lj(o,n,a)),a?(a.Ei(i),a.Fi()):t.$i(i)):(t.ij()&&(a=t.lj(o,n,a)),a?(a.Ei(i),a.Fi()):t.$i(i)),o):(o=ott(t,e,n),t.bj()&&!(t.ni()&&null!=o?Odt(o,n):HA(o)===HA(n))&&(a=null,null!=o&&(a=t.dj(o,null)),(a=t.cj(n,a))&&a.Fi()),o)}function dzt(t,e){var n,a,r,o,s,c,l;e%=24,t.q.getHours()!=e&&((n=new i.Date(t.q.getTime())).setDate(n.getDate()+1),(s=t.q.getTimezoneOffset()-n.getTimezoneOffset())>0&&(c=s/60|0,l=s%60,a=t.q.getDate(),t.q.getHours()+c>=24&&++a,r=new i.Date(t.q.getFullYear(),t.q.getMonth(),a,e+c,t.q.getMinutes()+l,t.q.getSeconds(),t.q.getMilliseconds()),t.q.setTime(r.getTime()))),o=t.q.getTime(),t.q.setTime(o+36e5),t.q.getHours()!=e&&t.q.setTime(o)}function hzt(t,e){var n,i,a,r;if(Akt(e,"Path-Like Graph Wrapping",1),0!=t.b.c.length)if(null==(a=new kIt(t)).i&&(a.i=Yat(a,new xr)),n=Hw(a.i)*a.f/(null==a.i&&(a.i=Yat(a,new xr)),Hw(a.i)),a.b>n)zCt(e);else{switch(jz(yEt(t,(zYt(),jme)),337).g){case 2:r=new kr;break;case 0:r=new gr;break;default:r=new Er}if(i=r.Vf(t,a),!r.Wf())switch(jz(yEt(t,qme),338).g){case 2:i=WTt(a,i);break;case 1:i=Pkt(a,i)}nUt(t,a,i),zCt(e)}else zCt(e)}function fzt(t,e){var n,i,a,r;if(l1(t.d,t.e),t.c.a.$b(),0!=Hw(_B(yEt(e.j,(zYt(),Spe))))||0!=Hw(_B(yEt(e.j,Spe))))for(n=JJt,HA(yEt(e.j,Ipe))!==HA((yct(),Oye))&&lct(e.j,(lGt(),Kde),(cM(),!0)),r=jz(yEt(e.j,Ome),19).a,a=0;a<r&&!((i=p$t(t,e))<n&&(n=i,Lat(t),0==n));a++);else for(n=NGt,HA(yEt(e.j,Ipe))!==HA((yct(),Oye))&&lct(e.j,(lGt(),Kde),(cM(),!0)),r=jz(yEt(e.j,Ome),19).a,a=0;a<r&&!((i=b$t(t,e))<n&&(n=i,Lat(t),0==n));a++);}function gzt(t,e){var n,i,a,r,o,s;for(a=new Lm,r=0,n=0,o=0;r<e.c.length-1&&n<t.gc();){for(i=jz(t.Xb(n),19).a+o;(u1(r+1,e.c.length),jz(e.c[r+1],19)).a<i;)++r;for(s=0,i-(u1(r,e.c.length),jz(e.c[r],19)).a>(u1(r+1,e.c.length),jz(e.c[r+1],19)).a-i&&++s,Wz(a,(u1(r+s,e.c.length),jz(e.c[r+s],19))),o+=(u1(r+s,e.c.length),jz(e.c[r+s],19)).a-i,++n;n<t.gc()&&jz(t.Xb(n),19).a+o<=(u1(r+s,e.c.length),jz(e.c[r+s],19)).a;)++n;r+=1+s}return a}function pzt(t){var e,n,i,a,r;if(!t.d){if(r=new Sc,null==(e=kLe).a.zc(t,e)){for(n=new AO(vX(t));n.e!=n.i.gc();)pY(r,pzt(jz(wmt(n),26)));e.a.Bc(t),e.a.gc()}for(a=r.i,!t.q&&(t.q=new tW(YIe,t,11,10)),i=new AO(t.q);i.e!=i.i.gc();++a)jz(wmt(i),399);pY(r,(!t.q&&(t.q=new tW(YIe,t,11,10)),t.q)),aut(r),t.d=new LD((jz(Yet(GK((GY(),JIe).o),9),18),r.i),r.g),t.e=jz(r.g,673),null==t.e&&(t.e=ELe),E6(t).b&=-17}return t.d}function bzt(t,e,n,i){var a,r,o,s,c,l;if(l=rNt(t.e.Tg(),e),c=0,a=jz(t.g,119),XE(),jz(e,66).Oj()){for(o=0;o<t.i;++o)if(r=a[o],l.rl(r.ak())){if(Odt(r,n))return c;++c}}else if(null!=n){for(s=0;s<t.i;++s)if(r=a[s],l.rl(r.ak())){if(Odt(n,r.dd()))return c;++c}if(i)for(c=0,o=0;o<t.i;++o)if(r=a[o],l.rl(r.ak())){if(HA(n)===HA(cB(t,jz(r.dd(),56))))return c;++c}}else for(o=0;o<t.i;++o)if(r=a[o],l.rl(r.ak())){if(null==r.dd())return c;++c}return-1}function mzt(t,e,n,i,a){var r,o,s,c,l,u,d,h,f;for(kK(),mL(t,new Ws),o=Uz(t),f=new Lm,h=new Lm,s=null,c=0;0!=o.b;)r=jz(0==o.b?null:(EN(0!=o.b),Det(o,o.a.a)),157),!s||eV(s)*tV(s)/2<eV(r)*tV(r)?(s=r,f.c[f.c.length]=r):(c+=eV(r)*tV(r),h.c[h.c.length]=r,h.c.length>1&&(c>eV(s)*tV(s)/2||0==o.b)&&(d=new Uet(h),u=eV(s)/tV(s),l=vYt(d,e,new dv,n,i,a,u),VP(vD(d.e),l),s=d,f.c[f.c.length]=d,c=0,h.c=O5(Dte,zGt,1,0,5,1)));return pst(f,h),f}function yzt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p;if(n.mh(e)&&(u=(f=e)?jz(i,49).xh(f):null))if(p=n.bh(e,t.a),(g=e.t)>1||-1==g)if(d=jz(p,69),h=jz(u,69),d.dc())h.$b();else for(o=!!Syt(e),r=0,s=t.a?d.Kc():d.Zh();s.Ob();)l=jz(s.Pb(),56),(a=jz(utt(t,l),56))?(o?-1==(c=h.Xc(a))?h.Xh(r,a):r!=c&&h.ji(r,a):h.Xh(r,a),++r):t.b&&!o&&(h.Xh(r,l),++r);else null==p?u.Wb(null):null==(a=utt(t,p))?t.b&&!Syt(e)&&u.Wb(p):u.Wb(a)}function vzt(t,e){var n,a,r,o,s,c,l,d;for(n=new On,r=new oq(XO(uft(e).a.Kc(),new u));gIt(r);)if(!d6(a=jz(V6(r),17))&&ekt(c=a.c.i,qse)){if(-1==(d=GBt(t,c,qse,Vse)))continue;n.b=i.Math.max(n.b,d),!n.a&&(n.a=new Lm),Wz(n.a,c)}for(s=new oq(XO(dft(e).a.Kc(),new u));gIt(s);)if(!d6(o=jz(V6(s),17))&&ekt(l=o.d.i,Vse)){if(-1==(d=GBt(t,l,Vse,qse)))continue;n.d=i.Math.max(n.d,d),!n.c&&(n.c=new Lm),Wz(n.c,l)}return n}function wzt(t){var e,n,i,a;if(IDt(),e=CJ(t),t<one.length)return one[e];if(t<=50)return oDt((ABt(),tne),e);if(t<=GZt)return H6(oDt(rne[1],e),e);if(t>1e6)throw $m(new Tw("power of ten too big"));if(t<=NGt)return H6(oDt(rne[1],e),e);for(a=i=oDt(rne[1],NGt),n=uot(t-NGt),e=CJ(t%NGt);Gut(n,NGt)>0;)a=Ltt(a,i),n=nft(n,NGt);for(a=H6(a=Ltt(a,oDt(rne[1],e)),NGt),n=uot(t-NGt);Gut(n,NGt)>0;)a=H6(a,NGt),n=nft(n,NGt);return a=H6(a,e)}function xzt(t,e){var n,i,a,r,o,s,c,l;for(Akt(e,"Hierarchical port dummy size processing",1),s=new Lm,l=new Lm,n=2*Hw(_B(yEt(t,(zYt(),vme)))),a=new Wf(t.b);a.a<a.c.c.length;){for(i=jz(J1(a),29),s.c=O5(Dte,zGt,1,0,5,1),l.c=O5(Dte,zGt,1,0,5,1),o=new Wf(i.a);o.a<o.c.c.length;)(r=jz(J1(o),10)).k==(oCt(),kse)&&((c=jz(yEt(r,(lGt(),Gde)),61))==(wWt(),cAe)?s.c[s.c.length]=r:c==EAe&&(l.c[l.c.length]=r));zDt(s,!0,n),zDt(l,!1,n)}zCt(e)}function Rzt(t,e){var n,i,a,r,o;Akt(e,"Layer constraint postprocessing",1),0!=(o=t.b).c.length&&(u1(0,o.c.length),FFt(t,jz(o.c[0],29),jz(OU(o,o.c.length-1),29),n=new $Y(t),a=new $Y(t)),0==n.a.c.length||(IQ(0,o.c.length),_C(o.c,0,n)),0==a.a.c.length||(o.c[o.c.length]=a)),IN(t,(lGt(),Jde))&&(vBt(t,i=new $Y(t),r=new $Y(t)),0==i.a.c.length||(IQ(0,o.c.length),_C(o.c,0,i)),0==r.a.c.length||(o.c[o.c.length]=r)),zCt(e)}function _zt(t){var e,n,i,a,r,o,s,c;for(o=new Wf(t.a);o.a<o.c.c.length;)if((r=jz(J1(o),10)).k==(oCt(),kse)&&((a=jz(yEt(r,(lGt(),Gde)),61))==(wWt(),sAe)||a==SAe))for(i=new oq(XO(lft(r).a.Kc(),new u));gIt(i);)0!=(e=(n=jz(V6(i),17)).a).b&&((s=n.c).i==r&&(EN(0!=e.b),jz(e.a.a.c,8).b=Dct(Cst(Hx(EEe,1),cZt,8,0,[s.i.n,s.n,s.a])).b),(c=n.d).i==r&&(EN(0!=e.b),jz(e.c.b.c,8).b=Dct(Cst(Hx(EEe,1),cZt,8,0,[c.i.n,c.n,c.a])).b))}function kzt(t,e){var n,i,a,r,o,s,c;for(Akt(e,"Sort By Input Model "+yEt(t,(zYt(),Ipe)),1),a=0,i=new Wf(t.b);i.a<i.c.c.length;){for(n=jz(J1(i),29),c=0==a?0:a-1,s=jz(OU(t.b,c),29),o=new Wf(n.a);o.a<o.c.c.length;)HA(yEt(r=jz(J1(o),10),tme))!==HA((Z_t(),qTe))&&HA(yEt(r,tme))!==HA(WTe)&&(kK(),mL(r.j,new T9(s,sxt(r))),TH(e,"Node "+r+" ports: "+r.j));kK(),mL(n.a,new Uat(s,jz(yEt(t,Ipe),339),jz(yEt(t,Ape),378))),TH(e,"Layer "+a+": "+n),++a}zCt(e)}function Ezt(t,e){var n,i,a;if(a=w$t(e),Kk(new NU(null,(!e.c&&(e.c=new tW(VDe,e,9,9)),new h1(e.c,16))),new Vg(a)),oqt(e,i=jz(yEt(a,(lGt(),Xde)),21)),i.Hc((hBt(),dde)))for(n=new AO((!e.c&&(e.c=new tW(VDe,e,9,9)),e.c));n.e!=n.i.gc();)Zqt(t,e,a,jz(wmt(n),118));return 0!=jz(JIt(e,(zYt(),Fbe)),174).gc()&&yBt(e,a),zw(RB(yEt(a,qbe)))&&i.Fc(bde),IN(a,gme)&&_w(new ogt(Hw(_B(yEt(a,gme)))),a),HA(JIt(e,sbe))===HA((odt(),bTe))?aGt(t,e,a):eYt(t,e,a),a}function Czt(t,e,n,a){var r,o,s;if(this.j=new Lm,this.k=new Lm,this.b=new Lm,this.c=new Lm,this.e=new dI,this.i=new vv,this.f=new Mm,this.d=new Lm,this.g=new Lm,Wz(this.b,t),Wz(this.b,e),this.e.c=i.Math.min(t.a,e.a),this.e.d=i.Math.min(t.b,e.b),this.e.b=i.Math.abs(t.a-e.a),this.e.a=i.Math.abs(t.b-e.b),r=jz(yEt(a,(zYt(),bbe)),74))for(s=cmt(r,0);s.b!=s.d.c;)rnt((o=jz(d4(s),8)).a,t.a)&&MH(this.i,o);n&&Wz(this.j,n),Wz(this.k,a)}function Szt(t,e,n){var i,a,r,o,s,c,l,u,d,h;for(u=new qq(new Og(n)),bW(s=O5(AMe,JXt,25,t.f.e.c.length,16,1),s.length),n[e.b]=0,l=new Wf(t.f.e);l.a<l.c.c.length;)(c=jz(J1(l),144)).b!=e.b&&(n[c.b]=NGt),F5(eEt(u,c));for(;0!=u.b.c.length;)for(s[(d=jz(mtt(u),144)).b]=!0,r=bM(new mk(t.b,d),0);r.c;)!s[(h=Ivt(a=jz(xQ(r),282),d)).b]&&(o=IN(a,(ixt(),poe))?Hw(_B(yEt(a,poe))):t.c,(i=n[d.b]+o)<n[h.b]&&(n[h.b]=i,cat(u,h),F5(eEt(u,h))))}function Tzt(t,e,n){var i,a,r,o,s,c,l,u,d;for(a=!0,o=new Wf(t.b);o.a<o.c.c.length;){for(r=jz(J1(o),29),l=PKt,u=null,c=new Wf(r.a);c.a<c.c.c.length;){if(s=jz(J1(c),10),d=Hw(e.p[s.p])+Hw(e.d[s.p])-s.d.d,i=Hw(e.p[s.p])+Hw(e.d[s.p])+s.o.b+s.d.a,!(d>l&&i>l)){a=!1,n.n&&TH(n,"bk node placement breaks on "+s+" which should have been after "+u);break}u=s,l=Hw(e.p[s.p])+Hw(e.d[s.p])+s.o.b+s.d.a}if(!a)break}return n.n&&TH(n,e+" is feasible: "+a),a}function Azt(t,e,n,i){var a,r,o,s,c,l,u;for(s=-1,u=new Wf(t);u.a<u.c.c.length;)(l=jz(J1(u),112)).g=s--,o=a=fV(x2(LZ(AZ(new NU(null,new h1(l.f,16)),new lo),new uo)).d),c=r=fV(x2(LZ(AZ(new NU(null,new h1(l.k,16)),new ho),new fo)).d),i||(o=fV(x2(LZ(new NU(null,new h1(l.f,16)),new go)).d),c=fV(x2(LZ(new NU(null,new h1(l.k,16)),new po)).d)),l.d=o,l.a=a,l.i=c,l.b=r,0==c?n6(n,l,n.c.b,n.c):0==o&&n6(e,l,e.c.b,e.c)}function Dzt(t,e,n,i){var a,r,o,s,c,l,u;if(n.d.i!=e.i){for(Fh(a=new Iyt(t),(oCt(),Cse)),lct(a,(lGt(),fhe),n),lct(a,(zYt(),tme),(Z_t(),WTe)),i.c[i.c.length]=a,CQ(o=new SCt,a),HTt(o,(wWt(),SAe)),CQ(s=new SCt,a),HTt(s,sAe),u=n.d,_Q(n,o),Hot(r=new hX,n),lct(r,bbe,null),kQ(r,s),_Q(r,u),l=new _2(n.b,0);l.b<l.d.gc();)EN(l.b<l.d.gc()),HA(yEt(c=jz(l.d.Xb(l.c=l.b++),70),Zpe))===HA((Bet(),qSe))&&(lct(c,Vde,n),lG(l),Wz(r.b,c));vIt(a,o,s)}}function Izt(t,e,n,i){var a,r,o,s,c,l;if(n.c.i!=e.i)for(Fh(a=new Iyt(t),(oCt(),Cse)),lct(a,(lGt(),fhe),n),lct(a,(zYt(),tme),(Z_t(),WTe)),i.c[i.c.length]=a,CQ(o=new SCt,a),HTt(o,(wWt(),SAe)),CQ(s=new SCt,a),HTt(s,sAe),_Q(n,o),Hot(r=new hX,n),lct(r,bbe,null),kQ(r,s),_Q(r,e),vIt(a,o,s),l=new _2(n.b,0);l.b<l.d.gc();)EN(l.b<l.d.gc()),c=jz(l.d.Xb(l.c=l.b++),70),jz(yEt(c,Zpe),272)==(Bet(),qSe)&&(IN(c,Vde)||lct(c,Vde,n),lG(l),Wz(r.b,c))}function Lzt(t,e,n,a,r){var o,s,c,l,u,d,h,f,g,p,b,m,y,v;for(h=new Lm,m=k3(a),b=e*t.a,g=0,o=new Ny,s=new Ny,c=new Lm,y=0,v=0,f=0,p=0,u=0,d=0;0!=m.a.gc();)(l=tft(m,r,s))&&(m.a.Bc(l),c.c[c.c.length]=l,o.a.zc(l,o),g=t.f[l.p],y+=t.e[l.p]-g*t.b,v+=t.c[l.p]*t.b,d+=g*t.b,p+=t.e[l.p]),(!l||0==m.a.gc()||y>=b&&t.e[l.p]>g*t.b||v>=n*b)&&(h.c[h.c.length]=c,c=new Lm,jat(s,o),o.a.$b(),u-=d,f=i.Math.max(f,u*t.b+p),u+=v,y=v,v=0,d=0,p=0);return new nA(f,h)}function Ozt(t){var e,n,i,a,r,o,s,c,l,u,d,h;for(n=new Bf(new Tf(t.c.b).a.vc().Kc());n.a.Ob();)s=jz(n.a.Pb(),42),null==(a=(e=jz(s.dd(),149)).a)&&(a=""),!(i=PB(t.c,a))&&0==a.length&&(i=vdt(t)),i&&!vgt(i.c,e,!1)&&MH(i.c,e);for(o=cmt(t.a,0);o.b!=o.d.c;)r=jz(d4(o),478),l=R6(t.c,r.a),h=R6(t.c,r.b),l&&h&&MH(l.c,new nA(h,r.c));for(yK(t.a),d=cmt(t.b,0);d.b!=d.d.c;)u=jz(d4(d),478),e=BB(t.c,u.a),c=R6(t.c,u.b),e&&c&&ME(e,c,u.c);yK(t.b)}function Mzt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;r=new kh(t),f6((o=new gxt).g),f6(o.j),DW(o.b),f6(o.d),f6(o.i),DW(o.k),DW(o.c),DW(o.e),f=hAt(o,r,null),ALt(o,r),a=f,e&&(s=eHt(l=new kh(e)),mCt(a,Cst(Hx(Jke,1),zGt,527,0,[s]))),h=!1,d=!1,n&&(l=new kh(n),d5t in l.a&&(h=UJ(l,d5t).ge().a),h5t in l.a&&(d=UJ(l,h5t).ge().a)),u=DR(jnt(new qv,h),d),$Ct(new us,a,u),d5t in r.a&&net(r,d5t,null),(h||d)&&(Q$t(u,c=new pw,h,d),net(r,d5t,c)),i=new qb(o),qct(new TI(a),i)}function Nzt(t,e,n){var i,a,r,o,s,c,l,u,d;for(o=new Kxt,l=Cst(Hx(TMe,1),lKt,25,15,[0]),a=-1,r=0,i=0,c=0;c<t.b.c.length;++c){if(!((u=jz(OU(t.b,c),434)).b>0)){if(a=-1,32==lZ(u.c,0)){if(d=l[0],ytt(e,l),l[0]>d)continue}else if(DX(e,u.c,l[0])){l[0]+=u.c.length;continue}return 0}if(a<0&&u.a&&(a=c,r=l[0],i=0),a>=0){if(s=u.b,c==a&&0==(s-=i++))return 0;if(!LWt(e,l,u,s,o)){c=a-1,l[0]=r;continue}}else if(a=-1,!LWt(e,l,u,0,o))return 0}return gWt(o,n)?l[0]:0}function Bzt(t){var e,n,i,a,r,o;if(!t.f){if(o=new Ec,r=new Ec,null==(e=kLe).a.zc(t,e)){for(a=new AO(vX(t));a.e!=a.i.gc();)pY(o,Bzt(jz(wmt(a),26)));e.a.Bc(t),e.a.gc()}for(!t.s&&(t.s=new tW(PIe,t,21,17)),i=new AO(t.s);i.e!=i.i.gc();)iO(n=jz(wmt(i),170),99)&&l8(r,jz(n,18));aut(r),t.r=new RH(t,(jz(Yet(GK((GY(),JIe).o),6),18),r.i),r.g),pY(o,t.r),aut(o),t.f=new LD((jz(Yet(GK(JIe.o),5),18),o.i),o.g),E6(t).b&=-3}return t.f}function Pzt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g;for(o=t.o,i=O5(TMe,lKt,25,o,15,1),a=O5(TMe,lKt,25,o,15,1),n=t.p,e=O5(TMe,lKt,25,n,15,1),r=O5(TMe,lKt,25,n,15,1),l=0;l<o;l++){for(d=0;d<n&&!mvt(t,l,d);)++d;i[l]=d}for(u=0;u<o;u++){for(d=n-1;d>=0&&!mvt(t,u,d);)--d;a[u]=d}for(f=0;f<n;f++){for(s=0;s<o&&!mvt(t,s,f);)++s;e[f]=s}for(g=0;g<n;g++){for(s=o-1;s>=0&&!mvt(t,s,g);)--s;r[g]=s}for(c=0;c<o;c++)for(h=0;h<n;h++)c<r[h]&&c>e[h]&&h<a[c]&&h>i[c]&&jPt(t,c,h,!1,!0)}function Fzt(t){var e,n,i,a,r,o,s,c;n=zw(RB(yEt(t,(uPt(),jre)))),r=t.a.c.d,s=t.a.d.d,n?(o=vO(qP(new OT(s.a,s.b),r),.5),c=vO(jL(t.e),.5),e=qP(VP(new OT(r.a,r.b),o),c),$N(t.d,e)):(a=Hw(_B(yEt(t.a,noe))),i=t.d,r.a>=s.a?r.b>=s.b?(i.a=s.a+(r.a-s.a)/2+a,i.b=s.b+(r.b-s.b)/2-a-t.e.b):(i.a=s.a+(r.a-s.a)/2+a,i.b=r.b+(s.b-r.b)/2+a):r.b>=s.b?(i.a=r.a+(s.a-r.a)/2+a,i.b=s.b+(r.b-s.b)/2+a):(i.a=r.a+(s.a-r.a)/2+a,i.b=r.b+(s.b-r.b)/2-a-t.e.b))}function jzt(t,e){var n,i,a,r,o,s,c;if(null==t)return null;if(0==(r=t.length))return"";for(c=O5(SMe,YZt,25,r,15,1),P5(0,r,t.length),P5(0,r,c.length),ZW(t,0,r,c,0),n=null,s=e,a=0,o=0;a<r;a++)i=c[a],RGt(),i<=32&&2&ZOe[i]?s?(!n&&(n=new lM(t)),aX(n,a-o++)):(s=e,32!=i&&(!n&&(n=new lM(t)),sZ(n,a-o,a-o+1,String.fromCharCode(32)))):s=!1;return s?n?(r=n.a.length)>0?lN(n.a,0,r-1):"":t.substr(0,r-1):n?n.a:t}function $zt(t){LE(t,new kkt(bR(hR(pR(gR(new bs,qJt),"ELK DisCo"),"Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."),new re))),r2(t,qJt,WJt,ymt(xre)),r2(t,qJt,YJt,ymt(pre)),r2(t,qJt,GJt,ymt(ure)),r2(t,qJt,ZJt,ymt(bre)),r2(t,qJt,WXt,ymt(vre)),r2(t,qJt,YXt,ymt(yre)),r2(t,qJt,qXt,ymt(wre)),r2(t,qJt,GXt,ymt(mre)),r2(t,qJt,$Jt,ymt(hre)),r2(t,qJt,zJt,ymt(dre)),r2(t,qJt,HJt,ymt(fre)),r2(t,qJt,UJt,ymt(gre))}function zzt(t,e,n,i){var a,r,o,s,c,l,u;if(Fh(r=new Iyt(t),(oCt(),Tse)),lct(r,(zYt(),tme),(Z_t(),WTe)),a=0,e){for(lct(o=new SCt,(lGt(),fhe),e),lct(r,fhe,e.i),HTt(o,(wWt(),SAe)),CQ(o,r),l=0,u=(c=X0(e.e)).length;l<u;++l)_Q(c[l],o);lct(e,xhe,r),++a}if(n){for(s=new SCt,lct(r,(lGt(),fhe),n.i),lct(s,fhe,n),HTt(s,(wWt(),sAe)),CQ(s,r),l=0,u=(c=X0(n.g)).length;l<u;++l)kQ(c[l],s);lct(n,xhe,r),++a}return lct(r,(lGt(),jde),nht(a)),i.c[i.c.length]=r,r}function Hzt(){Hzt=D,TDe=Cst(Hx(SMe,1),YZt,25,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]),ADe=new RegExp("[ \t\n\r\f]+");try{SDe=Cst(Hx(OLe,1),zGt,2015,0,[new bm((sL(),cpt("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",lP((lx(),lx(),iee))))),new bm(cpt("yyyy-MM-dd'T'HH:mm:ss'.'SSS",lP(iee))),new bm(cpt("yyyy-MM-dd'T'HH:mm:ss",lP(iee))),new bm(cpt("yyyy-MM-dd'T'HH:mm",lP(iee))),new bm(cpt("yyyy-MM-dd",lP(iee)))])}catch(t){if(!iO(t=dst(t),78))throw $m(t)}}function Uzt(t){var e,n,a,r;if(a=HYt((!t.c&&(t.c=vut(t.f)),t.c),0),0==t.e||0==t.a&&-1!=t.f&&t.e<0)return a;if(e=nit(t)<0?1:0,n=t.e,a.length,i.Math.abs(CJ(t.e)),r=new Sx,1==e&&(r.a+="-"),t.e>0)if((n-=a.length-e)>=0){for(r.a+="0.";n>Uee.length;n-=Uee.length)LU(r,Uee);gP(r,Uee,CJ(n)),oD(r,a.substr(e))}else oD(r,lN(a,e,CJ(n=e-n))),r.a+=".",oD(r,JA(a,CJ(n)));else{for(oD(r,a.substr(e));n<-Uee.length;n+=Uee.length)LU(r,Uee);gP(r,Uee,CJ(-n))}return r.a}function Vzt(t,e,n,a){var r,o,s,c,l,u,d,h,f;return u=(l=qP(new OT(n.a,n.b),t)).a*e.b-l.b*e.a,d=e.a*a.b-e.b*a.a,h=(l.a*a.b-l.b*a.a)/d,f=u/d,0==d?0==u?(o=W5(t,r=VP(new OT(n.a,n.b),vO(new OT(a.a,a.b),.5))),s=W5(VP(new OT(t.a,t.b),e),r),c=.5*i.Math.sqrt(a.a*a.a+a.b*a.b),o<s&&o<=c?new OT(t.a,t.b):s<=c?VP(new OT(t.a,t.b),e):null):null:h>=0&&h<=1&&f>=0&&f<=1?VP(new OT(t.a,t.b),vO(new OT(e.a,e.b),h)):null}function qzt(t,e,n){var i,a,r,o,s;if(i=jz(yEt(t,(zYt(),Lpe)),21),n.a>e.a&&(i.Hc((f_t(),YEe))?t.c.a+=(n.a-e.a)/2:i.Hc(ZEe)&&(t.c.a+=n.a-e.a)),n.b>e.b&&(i.Hc((f_t(),XEe))?t.c.b+=(n.b-e.b)/2:i.Hc(KEe)&&(t.c.b+=n.b-e.b)),jz(yEt(t,(lGt(),Xde)),21).Hc((hBt(),dde))&&(n.a>e.a||n.b>e.b))for(s=new Wf(t.a);s.a<s.c.c.length;)(o=jz(J1(s),10)).k==(oCt(),kse)&&((a=jz(yEt(o,Gde),61))==(wWt(),sAe)?o.n.a+=n.a-e.a:a==EAe&&(o.n.b+=n.b-e.b));r=t.d,t.f.a=n.a-r.b-r.c,t.f.b=n.b-r.d-r.a}function Wzt(t,e,n){var i,a,r,o,s;if(i=jz(yEt(t,(zYt(),Lpe)),21),n.a>e.a&&(i.Hc((f_t(),YEe))?t.c.a+=(n.a-e.a)/2:i.Hc(ZEe)&&(t.c.a+=n.a-e.a)),n.b>e.b&&(i.Hc((f_t(),XEe))?t.c.b+=(n.b-e.b)/2:i.Hc(KEe)&&(t.c.b+=n.b-e.b)),jz(yEt(t,(lGt(),Xde)),21).Hc((hBt(),dde))&&(n.a>e.a||n.b>e.b))for(o=new Wf(t.a);o.a<o.c.c.length;)(r=jz(J1(o),10)).k==(oCt(),kse)&&((a=jz(yEt(r,Gde),61))==(wWt(),sAe)?r.n.a+=n.a-e.a:a==EAe&&(r.n.b+=n.b-e.b));s=t.d,t.f.a=n.a-s.b-s.c,t.f.b=n.b-s.d-s.a}function Yzt(t){var e,n,a,r,o,s,c,l,u,d;for(l=new Sf(new Cf(MDt(t)).a.vc().Kc());l.a.Ob();){for(a=jz(l.a.Pb(),42),u=0,d=0,u=(c=jz(a.cd(),10)).d.d,d=c.o.b+c.d.a,t.d[c.p]=0,e=c;(r=t.a[e.p])!=c;)n=kbt(e,r),s=0,s=t.c==(gJ(),Qve)?n.d.n.b+n.d.a.b-n.c.n.b-n.c.a.b:n.c.n.b+n.c.a.b-n.d.n.b-n.d.a.b,o=Hw(t.d[e.p])+s,t.d[r.p]=o,u=i.Math.max(u,r.d.d-o),d=i.Math.max(d,o+r.o.b+r.d.a),e=r;e=c;do{t.d[e.p]=Hw(t.d[e.p])+u,e=t.a[e.p]}while(e!=c);t.b[c.p]=u+d}}function Gzt(t){var e,n,a,r,o,s,c,l,u,d,h;for(t.b=!1,d=BKt,c=PKt,h=BKt,l=PKt,n=t.e.a.ec().Kc();n.Ob();)for(a=(e=jz(n.Pb(),266)).a,d=i.Math.min(d,a.c),c=i.Math.max(c,a.c+a.b),h=i.Math.min(h,a.d),l=i.Math.max(l,a.d+a.a),o=new Wf(e.c);o.a<o.c.c.length;)(r=jz(J1(o),395)).a.a?(s=(u=a.d+r.b.b)+r.c,h=i.Math.min(h,u),l=i.Math.max(l,s)):(s=(u=a.c+r.b.a)+r.c,d=i.Math.min(d,u),c=i.Math.max(c,s));t.a=new OT(c-d,l-h),t.c=new OT(d+t.d.a,h+t.d.b)}function Zzt(t,e,n){var i,a,r,o,s,c,l,u;for(u=new Lm,r=0,tit(l=new O0(0,n),new rlt(0,0,l,n)),a=0,c=new AO(t);c.e!=c.i.gc();)s=jz(wmt(c),33),i=jz(OU(l.a,l.a.c.length-1),187),a+s.g+(0==jz(OU(l.a,0),187).b.c.length?0:n)>e&&(a=0,r+=l.b+n,u.c[u.c.length]=l,tit(l=new O0(r,n),i=new rlt(0,l.f,l,n)),a=0),0==i.b.c.length||s.f>=i.o&&s.f<=i.f||.5*i.a<=s.f&&1.5*i.a>=s.f?vft(i,s):(tit(l,o=new rlt(i.s+i.r+n,l.f,l,n)),vft(o,s)),a=s.i+s.g;return u.c[u.c.length]=l,u}function Kzt(t){var e,n,i,a,r,o;if(!t.a){if(t.o=null,o=new gm(t),e=new Cc,null==(n=kLe).a.zc(t,n)){for(r=new AO(vX(t));r.e!=r.i.gc();)pY(o,Kzt(jz(wmt(r),26)));n.a.Bc(t),n.a.gc()}for(!t.s&&(t.s=new tW(PIe,t,21,17)),a=new AO(t.s);a.e!=a.i.gc();)iO(i=jz(wmt(a),170),322)&&l8(e,jz(i,34));aut(e),t.k=new xH(t,(jz(Yet(GK((GY(),JIe).o),7),18),e.i),e.g),pY(o,t.k),aut(o),t.a=new LD((jz(Yet(GK(JIe.o),4),18),o.i),o.g),E6(t).b&=-2}return t.a}function Xzt(t,e,n,i,a,r,o){var s,c,l,u,d,h;return d=!1,c=gMt(n.q,e.f+e.b-n.q.f),!((h=a-(n.q.e+c-o))<i.g||(l=r==t.c.length-1&&h>=(u1(r,t.c.length),jz(t.c[r],200)).e,s=aHt(i,h,!1),u=s.a,u>e.b&&!l))&&((l||u<=e.b)&&(l&&u>e.b?(n.d=u,p8(n,jCt(n,u))):(r_t(n.q,c),n.c=!0),p8(i,a-(n.s+n.r)),_yt(i,n.q.e+n.q.d,e.f),tit(e,i),t.c.length>r&&(_xt((u1(r,t.c.length),jz(t.c[r],200)),i),0==(u1(r,t.c.length),jz(t.c[r],200)).a.c.length&&s7(t,r)),d=!0),d)}function Jzt(t,e,n,i){var a,r,o,s,c,l,u;if(u=rNt(t.e.Tg(),e),a=0,r=jz(t.g,119),c=null,XE(),jz(e,66).Oj()){for(s=0;s<t.i;++s)if(o=r[s],u.rl(o.ak())){if(Odt(o,n)){c=o;break}++a}}else if(null!=n){for(s=0;s<t.i;++s)if(o=r[s],u.rl(o.ak())){if(Odt(n,o.dd())){c=o;break}++a}}else for(s=0;s<t.i;++s)if(o=r[s],u.rl(o.ak())){if(null==o.dd()){c=o;break}++a}return c&&(mI(t.e)&&(l=e.$j()?new d3(t.e,4,e,n,null,a,!0):IX(t,e.Kj()?2:1,e,n,e.zj(),-1,!0),i?i.Ei(l):i=l),i=_Ft(t,c,i)),i}function Qzt(t,e,n,a,r,o,s){var c,l,u,d,h,f,g,p;switch(g=0,p=0,l=r.c,c=r.b,d=n.f,f=n.g,e.g){case 0:g=a.i+a.g+s,p=t.c?pkt(g,o,a,s):a.j,h=i.Math.max(l,g+f),u=i.Math.max(c,p+d);break;case 1:p=a.j+a.f+s,g=t.c?gkt(p,o,a,s):a.i,h=i.Math.max(l,g+f),u=i.Math.max(c,p+d);break;case 2:g=l+s,p=0,h=l+s+f,u=i.Math.max(c,d);break;case 3:g=0,p=c+s,h=i.Math.max(l,f),u=c+s+d;break;default:throw $m(new Pw("IllegalPlacementOption."))}return new rgt(t.a,h,u,e,g,p)}function tHt(t){var e,n,a,r,o,s,c,l,u,d,h,f;if(c=t.d,h=jz(yEt(t,(lGt(),Bhe)),15),e=jz(yEt(t,Mde),15),h||e){if(o=Hw(_B(ept(t,(zYt(),pme)))),s=Hw(_B(ept(t,bme))),f=0,h){for(u=0,r=h.Kc();r.Ob();)a=jz(r.Pb(),10),u=i.Math.max(u,a.o.b),f+=a.o.a;f+=o*(h.gc()-1),c.d+=u+s}if(n=0,e){for(u=0,r=e.Kc();r.Ob();)a=jz(r.Pb(),10),u=i.Math.max(u,a.o.b),n+=a.o.a;n+=o*(e.gc()-1),c.a+=u+s}(l=i.Math.max(f,n))>t.o.a&&(d=(l-t.o.a)/2,c.b=i.Math.max(c.b,d),c.c=i.Math.max(c.c,d))}}function eHt(t){var e,n,i,a,r,o;for(iI(a=new N0,(Ost(),Kke)),i=new kf(new Kw(new Rk(t,xat(t,O5(zee,cZt,2,0,6,1))).b));i.b<i.d.gc();)EN(i.b<i.d.gc()),n=kB(i.d.Xb(i.c=i.b++)),(r=bVt(lIe,n))&&null!=(o=JUt(r,(e=UJ(t,n)).je()?e.je().a:e.ge()?""+e.ge().a:e.he()?""+e.he().a:e.Ib()))&&((kM(r.j,(imt(),cEe))||kM(r.j,lEe))&&cct(Ztt(a,UDe),r,o),kM(r.j,oEe)&&cct(Ztt(a,BDe),r,o),kM(r.j,uEe)&&cct(Ztt(a,VDe),r,o),kM(r.j,sEe)&&cct(Ztt(a,HDe),r,o));return a}function nHt(t,e,n,i){var a,r,o,s,c,l;if(c=rNt(t.e.Tg(),e),r=jz(t.g,119),INt(t.e,e)){for(a=0,s=0;s<t.i;++s)if(o=r[s],c.rl(o.ak())){if(a==n)return XE(),jz(e,66).Oj()?o:(null!=(l=o.dd())&&i&&iO(e,99)&&jz(e,18).Bb&$Kt&&(l=jAt(t,e,s,a,l)),l);++a}throw $m(new Aw(e8t+n+s5t+a))}for(a=0,s=0;s<t.i;++s){if(o=r[s],c.rl(o.ak()))return XE(),jz(e,66).Oj()?o:(null!=(l=o.dd())&&i&&iO(e,99)&&jz(e,18).Bb&$Kt&&(l=jAt(t,e,s,a,l)),l);++a}return e.zj()}function iHt(t,e,n){var i,a,r,o,s,c,l,u;if(a=jz(t.g,119),INt(t.e,e))return XE(),jz(e,66).Oj()?new uU(e,t):new OA(e,t);for(l=rNt(t.e.Tg(),e),i=0,s=0;s<t.i;++s){if(o=(r=a[s]).ak(),l.rl(o)){if(XE(),jz(e,66).Oj())return r;if(o==(_Dt(),lOe)||o==oOe){for(c=new uM($ft(r.dd()));++s<t.i;)((o=(r=a[s]).ak())==lOe||o==oOe)&&oD(c,$ft(r.dd()));return gF(jz(e.Yj(),148),c.a)}return null!=(u=r.dd())&&n&&iO(e,99)&&jz(e,18).Bb&$Kt&&(u=jAt(t,e,s,i,u)),u}++i}return e.zj()}function aHt(t,e,n){var a,r,o,s,c,l,u,d,h,f;for(o=0,s=t.t,r=0,a=0,l=0,f=0,h=0,n&&(t.n.c=O5(Dte,zGt,1,0,5,1),Wz(t.n,new NJ(t.s,t.t,t.i))),c=0,d=new Wf(t.b);d.a<d.c.c.length;)o+(u=jz(J1(d),33)).g+(c>0?t.i:0)>e&&l>0&&(o=0,s+=l+t.i,r=i.Math.max(r,f),a+=l+t.i,l=0,f=0,n&&(++h,Wz(t.n,new NJ(t.s,s,t.i))),c=0),f+=u.g+(c>0?t.i:0),l=i.Math.max(l,u.f),n&&cvt(jz(OU(t.n,h),211),u),o+=u.g+(c>0?t.i:0),++c;return r=i.Math.max(r,f),a+=l,n&&(t.r=r,t.d=a,vwt(t.j)),new VZ(t.s,t.t,r,a)}function rHt(t,e,n,i,a){var r,o,s,c,l,u,d,h,f;if(Dk(),kW(t,"src"),kW(n,"dest"),h=tlt(t),c=tlt(n),pH(0!=(4&h.i),"srcType is not an array"),pH(0!=(4&c.i),"destType is not an array"),d=h.c,o=c.c,pH(1&d.i?d==o:0==(1&o.i),"Array types don't match"),f=t.length,l=n.length,e<0||i<0||a<0||e+a>f||i+a>l)throw $m(new ly);if(1&d.i||h==c)a>0&&FTt(t,e,n,i,a,!0);else if(u=ent(t),r=ent(n),HA(t)===HA(n)&&e<i)for(e+=a,s=i+a;s-- >i;)DY(r,s,u[--e]);else for(s=i+a;i<s;)DY(r,i++,u[e++])}function oHt(){oHt=D,ine=Cst(Hx(TMe,1),lKt,25,15,[FZt,1162261467,AZt,1220703125,362797056,1977326743,AZt,387420489,DKt,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,128e7,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729e6,887503681,AZt,1291467969,1544804416,1838265625,60466176]),ane=Cst(Hx(TMe,1),lKt,25,15,[-1,-1,31,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])}function sHt(t){var e,n,i,a,r,o,s;for(i=new Wf(t.b);i.a<i.c.c.length;)for(r=new Wf(a0(jz(J1(i),29).a));r.a<r.c.c.length;)if(Xtt(a=jz(J1(r),10))&&!(n=jz(yEt(a,(lGt(),Nde)),305)).g&&n.d)for(e=n,s=n.d;s;)ePt(s.i,s.k,!1,!0),A9(e.a),A9(s.i),A9(s.k),A9(s.b),_Q(s.c,e.c.d),_Q(e.c,null),EQ(e.a,null),EQ(s.i,null),EQ(s.k,null),EQ(s.b,null),(o=new b4(e.i,s.a,e.e,s.j,s.f)).k=e.k,o.n=e.n,o.b=e.b,o.c=s.c,o.g=e.g,o.d=s.d,lct(e.i,Nde,o),lct(s.a,Nde,o),s=s.d,e=o}function cHt(t,e){var n,i,a,r,o;if(o=jz(e,136),_Lt(t),_Lt(o),null!=o.b){if(t.c=!0,null==t.b)return t.b=O5(TMe,lKt,25,o.b.length,15,1),void rHt(o.b,0,t.b,0,o.b.length);for(r=O5(TMe,lKt,25,t.b.length+o.b.length,15,1),n=0,i=0,a=0;n<t.b.length||i<o.b.length;)n>=t.b.length?(r[a++]=o.b[i++],r[a++]=o.b[i++]):i>=o.b.length?(r[a++]=t.b[n++],r[a++]=t.b[n++]):o.b[i]<t.b[n]||o.b[i]===t.b[n]&&o.b[i+1]<t.b[n+1]?(r[a++]=o.b[i++],r[a++]=o.b[i++]):(r[a++]=t.b[n++],r[a++]=t.b[n++]);t.b=r}}function lHt(t,e){var n,i,a,r,o,s,c,l,u,d;return n=zw(RB(yEt(t,(lGt(),she)))),s=zw(RB(yEt(e,she))),i=jz(yEt(t,che),11),c=jz(yEt(e,che),11),a=jz(yEt(t,lhe),11),l=jz(yEt(e,lhe),11),u=!!i&&i==c,d=!!a&&a==l,n||s?(r=(!zw(RB(yEt(t,she)))||zw(RB(yEt(t,ohe))))&&(!zw(RB(yEt(e,she)))||zw(RB(yEt(e,ohe)))),o=!(zw(RB(yEt(t,she)))&&zw(RB(yEt(t,ohe)))||zw(RB(yEt(e,she)))&&zw(RB(yEt(e,ohe)))),new Nj(u&&r||d&&o,u,d)):new Nj(jz(J1(new Wf(t.j)),11).p==jz(J1(new Wf(e.j)),11).p,u,d)}function uHt(t){var e,n,a,r,o,s,c,l;for(a=0,n=0,l=new Zk,e=0,c=new Wf(t.n);c.a<c.c.c.length;)0==(s=jz(J1(c),211)).c.c.length?n6(l,s,l.c.b,l.c):(a=i.Math.max(a,s.d),n+=s.a+(e>0?t.i:0)),++e;for(Qft(t.n,l),t.d=n,t.r=a,t.g=0,t.f=0,t.e=0,t.o=BKt,t.p=BKt,o=new Wf(t.b);o.a<o.c.c.length;)r=jz(J1(o),33),t.p=i.Math.min(t.p,r.g),t.g=i.Math.max(t.g,r.g),t.f=i.Math.max(t.f,r.f),t.o=i.Math.min(t.o,r.f),t.e+=r.f+t.i;t.a=t.e/t.b.c.length-t.i*((t.b.c.length-1)/t.b.c.length),vwt(t.j)}function dHt(t){var e,n,i,a;return 64&t.Db?Kht(t):(e=new uM(G6t),(i=t.k)?oD(oD((e.a+=' "',e),i),'"'):(!t.n&&(t.n=new tW(HDe,t,1,7)),t.n.i>0&&(!(a=(!t.n&&(t.n=new tW(HDe,t,1,7)),jz(Yet(t.n,0),137)).a)||oD(oD((e.a+=' "',e),a),'"'))),!t.b&&(t.b=new cF(NDe,t,4,7)),n=!(t.b.i<=1&&(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c.i<=1)),e.a+=n?" [":" ",oD(e,KO(new mx,new AO(t.b))),n&&(e.a+="]"),e.a+=e1t,n&&(e.a+="["),oD(e,KO(new mx,new AO(t.c))),n&&(e.a+="]"),e.a)}function hHt(t,e){var n,i,a,r,o,s,c;if(t.a){if(c=null,null!=(s=t.a.ne())?e.a+=""+s:null!=(o=t.a.Dj())&&(-1!=(r=HD(o,Kkt(91)))?(c=o.substr(r),e.a+=""+lN(null==o?VGt:(vG(o),o),0,r)):e.a+=""+o),t.d&&0!=t.d.i){for(a=!0,e.a+="<",i=new AO(t.d);i.e!=i.i.gc();)n=jz(wmt(i),87),a?a=!1:e.a+=jGt,hHt(n,e);e.a+=">"}null!=c&&(e.a+=""+c)}else t.e?null!=(s=t.e.zb)&&(e.a+=""+s):(e.a+="?",t.b?(e.a+=" super ",hHt(t.b,e)):t.f&&(e.a+=" extends ",hHt(t.f,e)))}function fHt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E;for(w=t.c,x=e.c,n=x9(w.a,t,0),i=x9(x.a,e,0),y=jz(Mgt(t,(rit(),zye)).Kc().Pb(),11),k=jz(Mgt(t,Hye).Kc().Pb(),11),v=jz(Mgt(e,zye).Kc().Pb(),11),E=jz(Mgt(e,Hye).Kc().Pb(),11),b=X0(y.e),R=X0(k.g),m=X0(v.e),_=X0(E.g),Zwt(t,i,x),l=0,f=(r=m).length;l<f;++l)_Q(r[l],y);for(u=0,g=(o=_).length;u<g;++u)kQ(o[u],k);for(Zwt(e,n,w),d=0,p=(s=b).length;d<p;++d)_Q(s[d],v);for(c=0,h=(a=R).length;c<h;++c)kQ(a[c],E)}function gHt(t,e,n,i){var a,r,o,s,c,l;if(r=Yht(i),!zw(RB(yEt(i,(zYt(),Sbe))))&&!zw(RB(yEt(t,dbe)))||bI(jz(yEt(t,tme),98)))switch(s=new SCt,CQ(s,t),e?(l=s.n,l.a=e.a-t.n.a,l.b=e.b-t.n.b,YCt(l,0,0,t.o.a,t.o.b),HTt(s,Vjt(s,r))):(a=lgt(r),HTt(s,n==(rit(),Hye)?a:_ht(a))),o=jz(yEt(i,(lGt(),Xde)),21),c=s.j,r.g){case 2:case 1:(c==(wWt(),cAe)||c==EAe)&&o.Fc((hBt(),pde));break;case 4:case 3:(c==(wWt(),sAe)||c==SAe)&&o.Fc((hBt(),pde))}else a=lgt(r),s=Bjt(t,n,n==(rit(),Hye)?a:_ht(a));return s}function pHt(t,e,n){var a,r,o,s,c,l,u;return i.Math.abs(e.s-e.c)<dQt||i.Math.abs(n.s-n.c)<dQt?0:(a=YMt(t,e.j,n.e),r=YMt(t,n.j,e.e),o=0,-1==a||-1==r?(-1==a&&(new UQ((T7(),_we),n,e,1),++o),-1==r&&(new UQ((T7(),_we),e,n,1),++o)):(s=_dt(e.j,n.s,n.c),s+=_dt(n.e,e.s,e.c),c=_dt(n.j,e.s,e.c),(l=a+16*s)<(u=r+16*(c+=_dt(e.e,n.s,n.c)))?new UQ((T7(),kwe),e,n,u-l):l>u?new UQ((T7(),kwe),n,e,l-u):l>0&&u>0&&(new UQ((T7(),kwe),e,n,0),new UQ(kwe,n,e,0))),o)}function bHt(t,e){var n,a,r,o,s;for(s=new olt(new Ef(t.f.b).a);s.b;){if(r=jz((o=tnt(s)).cd(),594),1==e){if(r.gf()!=(jdt(),zSe)&&r.gf()!=PSe)continue}else if(r.gf()!=(jdt(),FSe)&&r.gf()!=jSe)continue;switch(a=jz(jz(o.dd(),46).b,81),n=jz(jz(o.dd(),46).a,189).c,r.gf().g){case 2:a.g.c=t.e.a,a.g.b=i.Math.max(1,a.g.b+n);break;case 1:a.g.c=a.g.c+n,a.g.b=i.Math.max(1,a.g.b-n);break;case 4:a.g.d=t.e.b,a.g.a=i.Math.max(1,a.g.a+n);break;case 3:a.g.d=a.g.d+n,a.g.a=i.Math.max(1,a.g.a-n)}}}function mHt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b;for(c=O5(TMe,lKt,25,e.b.c.length,15,1),u=O5(Dse,IZt,267,e.b.c.length,0,1),l=O5(Rse,r1t,10,e.b.c.length,0,1),f=0,g=(h=t.a).length;f<g;++f){for(b=0,s=new Wf((d=h[f]).e);s.a<s.c.c.length;)++c[a=QD((r=jz(J1(s),10)).c)],p=Hw(_B(yEt(e,(zYt(),yme)))),c[a]>0&&l[a]&&(p=BL(t.b,l[a],r)),b=i.Math.max(b,r.c.c.b+p);for(o=new Wf(d.e);o.a<o.c.c.length;)(r=jz(J1(o),10)).n.b=b+r.d.d,(n=r.c).c.b=b+r.d.d+r.o.b+r.d.a,u[x9(n.b.b,n,0)]=r.k,l[x9(n.b.b,n,0)]=r}}function yHt(t,e){var n,i,a,r,o,s,c,l,d,h,f;for(i=new oq(XO(gOt(e).a.Kc(),new u));gIt(i);)iO(Yet((!(n=jz(V6(i),79)).b&&(n.b=new cF(NDe,n,4,7)),n.b),0),186)||(c=Ckt(jz(Yet((!n.c&&(n.c=new cF(NDe,n,5,8)),n.c),0),82)),QDt(n)||(o=e.i+e.g/2,s=e.j+e.f/2,d=c.i+c.g/2,h=c.j+c.f/2,(f=new HR).a=d-o,f.b=h-s,qxt(r=new OT(f.a,f.b),e.g,e.f),f.a-=r.a,f.b-=r.b,o=d-f.a,s=h-f.b,qxt(l=new OT(f.a,f.b),c.g,c.f),f.a-=l.a,f.b-=l.b,d=o+f.a,h=s+f.b,Tnt(a=aBt(n,!0,!0),o),Dnt(a,s),_nt(a,d),Ant(a,h),yHt(t,c)))}function vHt(t){LE(t,new kkt(bR(hR(pR(gR(new bs,B3t),"ELK SPOrE Compaction"),"ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree."),new ns))),r2(t,B3t,P3t,ymt(vke)),r2(t,B3t,F3t,ymt(bke)),r2(t,B3t,j3t,ymt(pke)),r2(t,B3t,$3t,ymt(fke)),r2(t,B3t,z3t,ymt(gke)),r2(t,B3t,ZJt,hke),r2(t,B3t,mQt,8),r2(t,B3t,H3t,ymt(yke)),r2(t,B3t,U3t,ymt(cke)),r2(t,B3t,V3t,ymt(lke)),r2(t,B3t,W2t,(cM(),!1))}function wHt(t,e){var n,a,r,o,s,c,l,u,d,h;for(Akt(e,"Simple node placement",1),h=jz(yEt(t,(lGt(),Ahe)),304),c=0,o=new Wf(t.b);o.a<o.c.c.length;){for((s=(a=jz(J1(o),29)).c).b=0,n=null,u=new Wf(a.a);u.a<u.c.c.length;)l=jz(J1(u),10),n&&(s.b+=Tpt(l,n,h.c)),s.b+=l.d.d+l.o.b+l.d.a,n=l;c=i.Math.max(c,s.b)}for(r=new Wf(t.b);r.a<r.c.c.length;)for(d=(c-(s=(a=jz(J1(r),29)).c).b)/2,n=null,u=new Wf(a.a);u.a<u.c.c.length;)l=jz(J1(u),10),n&&(d+=Tpt(l,n,h.c)),d+=l.d.d,l.n.b=d,d+=l.o.b+l.d.a,n=l;zCt(e)}function xHt(t,e,n,i){var a,r,o,s,c,l,u,d;if(0==i.gc())return!1;if(XE(),o=(c=jz(e,66).Oj())?i:new pet(i.gc()),INt(t.e,e)){if(e.hi())for(u=i.Kc();u.Ob();)q$t(t,e,l=u.Pb(),iO(e,99)&&0!=(jz(e,18).Bb&$Kt))||(r=X4(e,l),o.Fc(r));else if(!c)for(u=i.Kc();u.Ob();)r=X4(e,l=u.Pb()),o.Fc(r)}else{for(d=rNt(t.e.Tg(),e),a=jz(t.g,119),s=0;s<t.i;++s)if(r=a[s],d.rl(r.ak()))throw $m(new Pw(T9t));if(i.gc()>1)throw $m(new Pw(T9t));c||(r=X4(e,i.Kc().Pb()),o.Fc(r))}return sct(t,RSt(t,e,n),o)}function RHt(t,e){var n,i,a,r;for(Zet(e.b.j),Kk(DZ(new NU(null,new h1(e.d,16)),new rr),new or),r=new Wf(e.d);r.a<r.c.c.length;){switch((a=jz(J1(r),101)).e.g){case 0:n=jz(OU(a.j,0),113).d.j,zh(a,jz(DM(Tq(jz(c7(a.k,n),15).Oc(),Gle)),113)),$h(a,jz(DM(Sq(jz(c7(a.k,n),15).Oc(),Gle)),113));break;case 1:i=zwt(a),zh(a,jz(DM(Tq(jz(c7(a.k,i[0]),15).Oc(),Gle)),113)),$h(a,jz(DM(Sq(jz(c7(a.k,i[1]),15).Oc(),Gle)),113));break;case 2:GSt(t,a);break;case 3:PMt(a);break;case 4:UMt(t,a)}Get(a)}t.a=null}function _Ht(t,e,n){var i,a,r,o,s,c,l,u;return i=t.a.o==(oQ(),awe)?BKt:PKt,!(s=a$t(t,new aT(e,n))).a&&s.c?(MH(t.d,s),i):s.a?(a=s.a.c,c=s.a.d,n?(l=t.a.c==(gJ(),twe)?c:a,r=t.a.c==twe?a:c,o=t.a.g[r.i.p],u=Hw(t.a.p[o.p])+Hw(t.a.d[r.i.p])+r.n.b+r.a.b-Hw(t.a.d[l.i.p])-l.n.b-l.a.b):(l=t.a.c==(gJ(),Qve)?c:a,r=t.a.c==Qve?a:c,u=Hw(t.a.p[t.a.g[r.i.p].p])+Hw(t.a.d[r.i.p])+r.n.b+r.a.b-Hw(t.a.d[l.i.p])-l.n.b-l.a.b),t.a.n[t.a.g[a.i.p].p]=(cM(),!0),t.a.n[t.a.g[c.i.p].p]=!0,u):i}function kHt(t,e,n){var i,a,r,o,s,c,l;if(INt(t.e,e))XE(),DDt((s=jz(e,66).Oj()?new uU(e,t):new OA(e,t)).c,s.b),XL(s,jz(n,14));else{for(l=rNt(t.e.Tg(),e),i=jz(t.g,119),r=0;r<t.i;++r)if(a=i[r].ak(),l.rl(a)){if(a==(_Dt(),lOe)||a==oOe){for(o=r,(c=Ayt(t,e,n))?uBt(t,r):++r;r<t.i;)(a=i[r].ak())==lOe||a==oOe?uBt(t,r):++r;c||jz(syt(t,o,X4(e,n)),72)}else Ayt(t,e,n)?uBt(t,r):jz(syt(t,r,(XE(),jz(e,66).Oj()?jz(n,72):X4(e,n))),72);return}Ayt(t,e,n)||l8(t,(XE(),jz(e,66).Oj()?jz(n,72):X4(e,n)))}}function EHt(t,e,n){var i,a,r,o,s,c,l,u;return Odt(n,t.b)||(t.b=n,r=new Xt,o=jz(E3(DZ(new NU(null,new h1(n.f,16)),r),O9(new K,new X,new at,new rt,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Kne),Zne]))),21),t.e=!0,t.f=!0,t.c=!0,t.d=!0,a=o.Hc((zmt(),$ae)),i=o.Hc(zae),a&&!i&&(t.f=!1),!a&&i&&(t.d=!1),a=o.Hc(jae),i=o.Hc(Hae),a&&!i&&(t.c=!1),!a&&i&&(t.e=!1)),u=jz(t.a.Ce(e,n),46),c=jz(u.a,19).a,l=jz(u.b,19).a,s=!1,c<0?t.c||(s=!0):t.e||(s=!0),l<0?t.d||(s=!0):t.f||(s=!0),s?EHt(t,u,n):u}function CHt(t){var e,n,a,r;r=t.o,zB(),t.A.dc()||Odt(t.A,Dae)?e=r.b:(e=kAt(t.f),t.A.Hc((ypt(),BAe))&&!t.B.Hc((QFt(),WAe))&&(e=i.Math.max(e,kAt(jz(oZ(t.p,(wWt(),sAe)),244))),e=i.Math.max(e,kAt(jz(oZ(t.p,SAe),244)))),(n=sot(t))&&(e=i.Math.max(e,n.b)),t.A.Hc(PAe)&&(t.q==(Z_t(),YTe)||t.q==WTe)&&(e=i.Math.max(e,qH(jz(oZ(t.b,(wWt(),sAe)),124))),e=i.Math.max(e,qH(jz(oZ(t.b,SAe),124))))),zw(RB(t.e.yf().We((cGt(),FCe))))?r.b=i.Math.max(r.b,e):r.b=e,(a=t.f.i).d=0,a.a=e,U$t(t.f)}function SHt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f;for(u=0;u<e.length;u++){for(o=t.Kc();o.Ob();)jz(o.Pb(),225).Of(u,e);for(d=0;d<e[u].length;d++){for(s=t.Kc();s.Ob();)jz(s.Pb(),225).Pf(u,d,e);for(f=e[u][d].j,h=0;h<f.c.length;h++){for(c=t.Kc();c.Ob();)jz(c.Pb(),225).Qf(u,d,h,e);for(u1(h,f.c.length),n=0,a=new m7(jz(f.c[h],11).b);yL(a.a)||yL(a.b);)for(i=jz(yL(a.a)?J1(a.a):J1(a.b),17),l=t.Kc();l.Ob();)jz(l.Pb(),225).Nf(u,d,h,n++,i,e)}}}for(r=t.Kc();r.Ob();)jz(r.Pb(),225).Mf()}function THt(t,e){var n,i,a,r,o;for(t.b=Hw(_B(yEt(e,(zYt(),vme)))),t.c=Hw(_B(yEt(e,Rme))),t.d=jz(yEt(e,nbe),336),t.a=jz(yEt(e,Epe),275),uvt(e),a=(r=jz(E3(AZ(AZ(htt(htt(new NU(null,new h1(e.b,16)),new wn),new xn),new Rn),new _n),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15)).Kc();a.Ob();)n=jz(a.Pb(),17),jz(yEt(n,(lGt(),Lhe)),15).Jc(new tp(t)),lct(n,Lhe,null);for(i=r.Kc();i.Ob();)n=jz(i.Pb(),17),o=jz(yEt(n,(lGt(),Ohe)),17),jYt(t,jz(yEt(n,Dhe),15),o),lct(n,Dhe,null)}function AHt(t){t.b=null,t.a=null,t.o=null,t.q=null,t.v=null,t.w=null,t.B=null,t.p=null,t.Q=null,t.R=null,t.S=null,t.T=null,t.U=null,t.V=null,t.W=null,t.bb=null,t.eb=null,t.ab=null,t.H=null,t.db=null,t.c=null,t.d=null,t.f=null,t.n=null,t.r=null,t.s=null,t.u=null,t.G=null,t.J=null,t.e=null,t.j=null,t.i=null,t.g=null,t.k=null,t.t=null,t.F=null,t.I=null,t.L=null,t.M=null,t.O=null,t.P=null,t.$=null,t.N=null,t.Z=null,t.cb=null,t.K=null,t.D=null,t.A=null,t.C=null,t._=null,t.fb=null,t.X=null,t.Y=null,t.gb=!1,t.hb=!1}function DHt(t){var e,n,i,a,r,o,s,c,l;return!(t.k!=(oCt(),Sse)||t.j.c.length<=1||(r=jz(yEt(t,(zYt(),tme)),98),r==(Z_t(),WTe))||(hyt(),i=(t.q?t.q:(kK(),kK(),lne))._b(Nbe)?jz(yEt(t,Nbe),197):jz(yEt(bG(t),Bbe),197),a=i,a==dye)||a!=uye&&a!=lye&&(o=Hw(_B(ept(t,Lme))),e=jz(yEt(t,Ime),142),!e&&(e=new $P(o,o,o,o)),l=rft(t,(wWt(),SAe)),c=e.d+e.a+(l.gc()-1)*o,c>t.o.b||(n=rft(t,sAe),s=e.d+e.a+(n.gc()-1)*o,s>t.o.b)))}function IHt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g;if(o=t.e,c=e.e,0==o)return e;if(0==c)return t;if((r=t.d)+(s=e.d)==2)return n=t0(t.a[0],qKt),i=t0(e.a[0],qKt),o==c?(g=fV(u=ift(n,i)),0==(f=fV(wq(u,32)))?new q7(o,g):new uW(o,2,Cst(Hx(TMe,1),lKt,25,15,[g,f]))):Qbt(o<0?nft(i,n):nft(n,i));if(o==c)h=o,d=r>=s?L5(t.a,r,e.a,s):L5(e.a,s,t.a,r);else{if(0==(a=r!=s?r>s?1:-1:klt(t.a,e.a,r)))return ABt(),nne;1==a?(h=o,d=f7(t.a,r,e.a,s)):(h=c,d=f7(e.a,s,t.a,r))}return q0(l=new uW(h,d.length,d)),l}function LHt(t,e,n,a,r,o,s){var c,l,u,d,h,f,g;return h=zw(RB(yEt(e,(zYt(),Tbe)))),f=null,o==(rit(),zye)&&a.c.i==n?f=a.c:o==Hye&&a.d.i==n&&(f=a.d),(u=s)&&h&&!f?(Wz(u.e,a),g=i.Math.max(Hw(_B(yEt(u.d,abe))),Hw(_B(yEt(a,abe)))),lct(u.d,abe,g)):(wWt(),d=CAe,f?d=f.j:bI(jz(yEt(n,tme),98))&&(d=o==zye?SAe:sAe),l=MHt(t,e,n,o,d,a),c=W6((bG(n),a)),o==zye?(kQ(c,jz(OU(l.j,0),11)),_Q(c,r)):(kQ(c,r),_Q(c,jz(OU(l.j,0),11))),u=new Vdt(a,c,l,jz(yEt(l,(lGt(),fhe)),11),o,!f)),XAt(t.a,a,new Ij(u.d,e,o)),u}function OHt(t,e){var n,i,a,r,o,s,c,l,u,d;if(u=null,t.d&&(u=jz(kJ(t.d,e),138)),!u){if(d=(r=t.a.Mh()).i,!t.d||Lk(t.d)!=d){for(c=new Om,t.d&&_rt(c,t.d),s=l=c.f.c+c.g.c;s<d;++s)i=jz(Yet(r,s),138),(n=jz(null==(a=Sdt(t.e,i).ne())?xTt(c.f,null,i):oft(c.g,a,i),138))&&n!=i&&(null==a?xTt(c.f,null,n):oft(c.g,a,n));if(c.f.c+c.g.c!=d)for(o=0;o<l;++o)i=jz(Yet(r,o),138),(n=jz(null==(a=Sdt(t.e,i).ne())?xTt(c.f,null,i):oft(c.g,a,i),138))&&n!=i&&(null==a?xTt(c.f,null,n):oft(c.g,a,n));t.d=c}u=jz(kJ(t.d,e),138)}return u}function MHt(t,e,n,i,a,r){var o,s,c,l,u,d;return o=null,l=i==(rit(),zye)?r.c:r.d,c=Yht(e),l.i==n?(o=jz(NY(t.b,l),10))||(lct(o=hYt(l,jz(yEt(n,(zYt(),tme)),98),a,zFt(l),null,l.n,l.o,c,e),(lGt(),fhe),l),YG(t.b,l,o)):(s=D_t(o=hYt((u=new Jt,d=Hw(_B(yEt(e,(zYt(),yme))))/2,cct(u,Qbe,d),u),jz(yEt(n,tme),98),a,i==zye?-1:1,null,new HR,new OT(0,0),c,e),n,i),lct(o,(lGt(),fhe),s),YG(t.b,s,o)),jz(yEt(e,(lGt(),Xde)),21).Fc((hBt(),dde)),bI(jz(yEt(e,(zYt(),tme)),98))?lct(e,tme,(Z_t(),GTe)):lct(e,tme,(Z_t(),ZTe)),o}function NHt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p;Akt(e,"Orthogonal edge routing",1),l=Hw(_B(yEt(t,(zYt(),Ame)))),n=Hw(_B(yEt(t,vme))),i=Hw(_B(yEt(t,Rme))),h=new lY(0,n),p=0,o=new _2(t.b,0),s=null,u=null,c=null,d=null;do{d=(u=o.b<o.d.gc()?(EN(o.b<o.d.gc()),jz(o.d.Xb(o.c=o.b++),29)):null)?u.a:null,s&&(_Ut(s,p),p+=s.c.a),g=DVt(h,t,c,d,s?p+i:p),a=!s||YA(c,(gNt(),wwe)),r=!u||YA(d,(gNt(),wwe)),g>0?(f=(g-1)*n,s&&(f+=i),u&&(f+=i),f<l&&!a&&!r&&(f=l),p+=f):!a&&!r&&(p+=l),s=u,c=d}while(u);t.f.a=p,zCt(e)}function BHt(){var t;BHt=D,wIe=new kv,yIe=O5(zee,cZt,2,0,6,1),_Ie=e0($st(33,58),$st(1,26)),kIe=e0($st(97,122),$st(65,90)),EIe=$st(48,57),xIe=e0(_Ie,0),RIe=e0(kIe,EIe),CIe=e0(e0(0,$st(1,6)),$st(33,38)),SIe=e0(e0(EIe,$st(65,70)),$st(97,102)),LIe=e0(xIe,gmt("-_.!~*'()")),OIe=e0(RIe,Wgt("-_.!~*'()")),gmt(o8t),Wgt(o8t),e0(LIe,gmt(";:@&=+$,")),e0(OIe,Wgt(";:@&=+$,")),TIe=gmt(":/?#"),AIe=Wgt(":/?#"),DIe=gmt("/?#"),IIe=Wgt("/?#"),(t=new Ny).a.zc("jar",t),t.a.zc("zip",t),t.a.zc("archive",t),kK(),vIe=new Ax(t)}function PHt(t,e){var n,i,a,r,o;if(lct(e,(HUt(),oxe),0),a=jz(yEt(e,axe),86),0==e.d.b)a?(o=Hw(_B(yEt(a,lxe)))+t.a+x6(a,e),lct(e,lxe,o)):lct(e,lxe,0);else{for(n=new hb(cmt(new db(e).a.d,0));x_(n.a);)PHt(t,jz(d4(n.a),188).c);i=jz(eO(new hb(cmt(new db(e).a.d,0))),86),r=(Hw(_B(yEt(jz(RM(new hb(cmt(new db(e).a.d,0))),86),lxe)))+Hw(_B(yEt(i,lxe))))/2,a?(o=Hw(_B(yEt(a,lxe)))+t.a+x6(a,e),lct(e,lxe,o),lct(e,oxe,Hw(_B(yEt(e,lxe)))-r),TVt(t,e)):lct(e,lxe,r)}}function FHt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f;s=0,f=0,c=RJ(t.f,t.f.length),r=t.d,o=t.i,i=t.a,a=t.b;do{for(h=0,l=new Wf(t.p);l.a<l.c.c.length;)d=AVt(t,jz(J1(l),10)),n=!0,(t.q==(cMt(),_ye)||t.q==Cye)&&(n=zw(RB(d.b))),jz(d.a,19).a<0&&n?(++h,c=RJ(t.f,t.f.length),t.d=t.d+jz(d.a,19).a,f+=r-t.d,r=t.d+jz(d.a,19).a,o=t.i,i=a0(t.a),a=a0(t.b)):(t.f=RJ(c,c.length),t.d=r,t.a=(yY(i),i?new QF(i):$z(new Wf(i))),t.b=(yY(a),a?new QF(a):$z(new Wf(a))),t.i=o);++s,u=0!=h&&zw(RB(e.Kb(new nA(nht(f),nht(s)))))}while(u)}function jHt(t,e,n,a){var r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;return o=t.f,h=e.f,s=o==(KOt(),M_e)||o==B_e,c=o==N_e||o==P_e,f=h==N_e||h==P_e,l=o==N_e||o==M_e,g=h==N_e||h==M_e,!s||h!=M_e&&h!=B_e?c&&f?t.f==P_e?t:e:l&&g?(o==N_e?(d=t,u=e):(d=e,u=t),p=n.j+n.f,b=d.e+a.f,m=i.Math.max(p,b)-i.Math.min(n.j,d.e),r=(d.d+a.g-n.i)*m,y=n.i+n.g,v=u.d+a.g,r<=(i.Math.max(y,v)-i.Math.min(n.i,u.d))*(u.e+a.f-n.j)?t.f==N_e?t:e:t.f==M_e?t:e):t:t.f==B_e?t:e}function $Ht(t){var e,n,i,a,r,o,s,c,l,u;for(l=t.e.a.c.length,r=new Wf(t.e.a);r.a<r.c.c.length;)jz(J1(r),121).j=!1;for(t.i=O5(TMe,lKt,25,l,15,1),t.g=O5(TMe,lKt,25,l,15,1),t.n=new Lm,a=0,u=new Lm,s=new Wf(t.e.a);s.a<s.c.c.length;)(o=jz(J1(s),121)).d=a++,0==o.b.a.c.length&&Wz(t.n,o),pst(u,o.g);for(e=0,i=new Wf(u);i.a<i.c.c.length;)(n=jz(J1(i),213)).c=e++,n.f=!1;c=u.c.length,null==t.b||t.b.length<c?(t.b=O5(LMe,HKt,25,c,15,1),t.c=O5(AMe,JXt,25,c,16,1)):Jw(t.c),t.d=u,t.p=new IM(tet(t.d.c.length)),t.j=1}function zHt(t,e){var n,i,a,r,o,s,c,l,u;if(!(e.e.c.length<=1)){for(t.f=e,t.d=jz(yEt(t.f,(ixt(),boe)),379),t.g=jz(yEt(t.f,woe),19).a,t.e=Hw(_B(yEt(t.f,moe))),t.c=Hw(_B(yEt(t.f,poe))),iY(t.b),a=new Wf(t.f.c);a.a<a.c.c.length;)i=jz(J1(a),282),vFt(t.b,i.c,i,null),vFt(t.b,i.d,i,null);for(s=t.f.e.c.length,t.a=vU(LMe,[cZt,HKt],[104,25],15,[s,s],2),l=new Wf(t.f.e);l.a<l.c.c.length;)Szt(t,c=jz(J1(l),144),t.a[c.b]);for(t.i=vU(LMe,[cZt,HKt],[104,25],15,[s,s],2),r=0;r<s;++r)for(o=0;o<s;++o)u=1/((n=t.a[r][o])*n),t.i[r][o]=u}}function HHt(t){var e,n,i,a;if(!(null==t.b||t.b.length<=2||t.a)){for(e=0,a=0;a<t.b.length;){for(e!=a?(t.b[e]=t.b[a++],t.b[e+1]=t.b[a++]):a+=2,n=t.b[e+1];a<t.b.length&&!(n+1<t.b[a]);)if(n+1==t.b[a])t.b[e+1]=t.b[a+1],n=t.b[e+1],a+=2;else if(n>=t.b[a+1])a+=2;else{if(!(n<t.b[a+1]))throw $m(new fw("Token#compactRanges(): Internel Error: ["+t.b[e]+","+t.b[e+1]+"] ["+t.b[a]+","+t.b[a+1]+"]"));t.b[e+1]=t.b[a+1],n=t.b[e+1],a+=2}e+=2}e!=t.b.length&&(i=O5(TMe,lKt,25,e,15,1),rHt(t.b,0,i,0,e),t.b=i),t.a=!0}}function UHt(t,e){var n,i,a,r,o,s,c;for(o=gq(t.a).Kc();o.Ob();){if((r=jz(o.Pb(),17)).b.c.length>0)for(i=new QF(jz(c7(t.a,r),21)),kK(),mL(i,new Pg(e)),a=new _2(r.b,0);a.b<a.d.gc();){switch(EN(a.b<a.d.gc()),n=jz(a.d.Xb(a.c=a.b++),70),s=-1,jz(yEt(n,(zYt(),Zpe)),272).g){case 1:s=i.c.length-1;break;case 0:s=XRt(i);break;case 2:s=0}-1!=s&&(u1(s,i.c.length),Wz((c=jz(i.c[s],243)).b.b,n),jz(yEt(bG(c.b.c.i),(lGt(),Xde)),21).Fc((hBt(),ude)),jz(yEt(bG(c.b.c.i),Xde),21).Fc(cde),lG(a),lct(n,bhe,r))}kQ(r,null),_Q(r,null)}}function VHt(t,e){var n,i,a,r;return n=new Ft,1==(a=2==(a=(i=jz(E3(DZ(new NU(null,new h1(t.f,16)),n),O9(new K,new X,new at,new rt,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Kne),Zne]))),21)).gc())?1:0)&&GA(dpt(jz(E3(AZ(i.Lc(),new jt),Yrt(xbt(0),new nt)),162).a,2),0)&&(a=0),1==(r=2==(r=(i=jz(E3(DZ(new NU(null,new h1(e.f,16)),n),O9(new K,new X,new at,new rt,Cst(Hx(Jne,1),IZt,132,0,[Kne,Zne]))),21)).gc())?1:0)&&GA(dpt(jz(E3(AZ(i.Lc(),new $t),Yrt(xbt(0),new nt)),162).a,2),0)&&(r=0),a<r?-1:a==r?0:1}function qHt(t){var e,n,i,a,r,o,s,c,l,u,d;if(c=new Lm,!IN(t,(lGt(),Wde)))return c;for(i=jz(yEt(t,Wde),15).Kc();i.Ob();)gUt(e=jz(i.Pb(),10),t),c.c[c.c.length]=e;for(a=new Wf(t.b);a.a<a.c.c.length;)for(o=new Wf(jz(J1(a),29).a);o.a<o.c.c.length;)(r=jz(J1(o),10)).k==(oCt(),kse)&&(s=jz(yEt(r,Yde),10))&&(CQ(l=new SCt,r),HTt(l,jz(yEt(r,Gde),61)),u=jz(OU(s.j,0),11),kQ(d=new hX,l),_Q(d,u));for(n=new Wf(c);n.a<n.c.c.length;)EQ(e=jz(J1(n),10),jz(OU(t.b,t.b.c.length-1),29));return c}function WHt(t){var e,n,i,a,r,o,s,c,l,u,d,h;for(r=zw(RB(JIt(e=WJ(t),(zYt(),hbe)))),u=0,a=0,l=new AO((!t.e&&(t.e=new cF(BDe,t,7,4)),t.e));l.e!=l.i.gc();)o=(s=ZAt(c=jz(wmt(l),79)))&&r&&zw(RB(JIt(c,fbe))),h=Ckt(jz(Yet((!c.c&&(c.c=new cF(NDe,c,5,8)),c.c),0),82)),s&&o?++a:s&&!o?++u:KJ(h)==e||h==e?++a:++u;for(i=new AO((!t.d&&(t.d=new cF(BDe,t,8,5)),t.d));i.e!=i.i.gc();)o=(s=ZAt(n=jz(wmt(i),79)))&&r&&zw(RB(JIt(n,fbe))),d=Ckt(jz(Yet((!n.b&&(n.b=new cF(NDe,n,4,7)),n.b),0),82)),s&&o?++u:s&&!o?++a:KJ(d)==e||d==e?++u:++a;return u-a}function YHt(t,e){var n,i,a,r,o,s,c,l,u;if(Akt(e,"Edge splitting",1),t.b.c.length<=2)zCt(e);else{for(EN((r=new _2(t.b,0)).b<r.d.gc()),o=jz(r.d.Xb(r.c=r.b++),29);r.b<r.d.gc();)for(a=o,EN(r.b<r.d.gc()),o=jz(r.d.Xb(r.c=r.b++),29),s=new Wf(a.a);s.a<s.c.c.length;)for(c=new Wf(jz(J1(s),10).j);c.a<c.c.c.length;)for(i=new Wf(jz(J1(c),11).g);i.a<i.c.c.length;)(l=(n=jz(J1(i),17)).d.i.c)!=a&&l!=o&&VNt(n,(Fh(u=new Iyt(t),(oCt(),Cse)),lct(u,(lGt(),fhe),n),lct(u,(zYt(),tme),(Z_t(),WTe)),EQ(u,o),u));zCt(e)}}function GHt(t,e){var n,i,a,r,o,s,c,l,u;if((o=null!=e.p&&!e.b)||Akt(e,rQt,1),r=1/(n=jz(yEt(t,(lGt(),_he)),15)).gc(),e.n)for(TH(e,"ELK Layered uses the following "+n.gc()+" modules:"),u=0,l=n.Kc();l.Ob();)TH(e," Slot "+(u<10?"0":"")+u+++": "+JR(tlt(jz(l.Pb(),51))));for(c=n.Kc();c.Ob();)jz(c.Pb(),51).pf(t,yrt(e,r));for(a=new Wf(t.b);a.a<a.c.c.length;)i=jz(J1(a),29),pst(t.a,i.a),i.a.c=O5(Dte,zGt,1,0,5,1);for(s=new Wf(t.a);s.a<s.c.c.length;)EQ(jz(J1(s),10),null);t.b.c=O5(Dte,zGt,1,0,5,1),o||zCt(e)}function ZHt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;a=Hw(_B(yEt(e,(zYt(),Mbe)))),h=4,r=3,R=20/(x=jz(yEt(e,Ome),19).a),f=!1,l=0,s=NGt;do{for(o=1!=l,d=0!=l,_=0,y=0,w=(b=t.a).length;y<w;++y)(g=b[y]).f=null,$qt(t,g,o,d,a),_+=i.Math.abs(g.a);do{c=qjt(t,e)}while(c);for(m=0,v=(p=t.a).length;m<v;++m)if(0!=(n=hW(g=p[m]).a))for(u=new Wf(g.e);u.a<u.c.c.length;)jz(J1(u),10).n.b+=n;0==l||1==l?--h<=0&&(_<s||-h>x)?(l=2,s=NGt):0==l?(l=1,s=_):(l=0,s=_):(f=_>=s||s-_<R,s=_,f&&--r)}while(!(f&&r<=0))}function KHt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g;for(g=new Om,r=t.a.ec().Kc();r.Ob();)YG(g,i=jz(r.Pb(),168),n.Je(i));for(yY(t),mL(o=t?new QF(t):$z(t.a.ec().Kc()),new xg(g)),s=k3(o),c=new CL(e),xTt((f=new Om).f,e,c);0!=s.a.gc();){for(l=null,u=null,d=null,a=s.a.ec().Kc();a.Ob();)if(i=jz(a.Pb(),168),Hw(_B(zA(AX(g.f,i))))<=BKt){if(cW(f,i.a)&&!cW(f,i.b)){u=i.b,d=i.a,l=i;break}if(cW(f,i.b)&&!cW(f,i.a)){u=i.a,d=i.b,l=i;break}}if(!l)break;h=new CL(u),Wz(jz(zA(AX(f.f,d)),221).a,h),xTt(f.f,u,h),s.a.Bc(l)}return c}function XHt(t,e,n){var i,a,r,o,s,c,l,u;for(Akt(n,"Depth-first cycle removal",1),c=(l=e.a).c.length,t.c=new Lm,t.d=O5(AMe,JXt,25,c,16,1),t.a=O5(AMe,JXt,25,c,16,1),t.b=new Lm,r=0,s=new Wf(l);s.a<s.c.c.length;)(o=jz(J1(s),10)).p=r,c4(uft(o))&&Wz(t.c,o),++r;for(u=new Wf(t.c);u.a<u.c.c.length;)USt(t,jz(J1(u),10));for(a=0;a<c;a++)t.d[a]||(u1(a,l.c.length),USt(t,jz(l.c[a],10)));for(i=new Wf(t.b);i.a<i.c.c.length;)tzt(jz(J1(i),17),!0),lct(e,(lGt(),zde),(cM(),!0));t.c=null,t.d=null,t.a=null,t.b=null,zCt(n)}function JHt(t,e){var n,i,a,r,o,s,c;for(t.a.c=O5(Dte,zGt,1,0,5,1),i=cmt(e.b,0);i.b!=i.d.c;)0==(n=jz(d4(i),86)).b.b&&(lct(n,(HUt(),fxe),(cM(),!0)),Wz(t.a,n));switch(t.a.c.length){case 0:lct(a=new alt(0,e,"DUMMY_ROOT"),(HUt(),fxe),(cM(),!0)),lct(a,txe,!0),MH(e.b,a);break;case 1:break;default:for(r=new alt(0,e,"SUPER_ROOT"),s=new Wf(t.a);s.a<s.c.c.length;)lct(c=new VK(r,o=jz(J1(s),86)),(HUt(),txe),(cM(),!0)),MH(r.a.a,c),MH(r.d,c),MH(o.b,c),lct(o,fxe,!1);lct(r,(HUt(),fxe),(cM(),!0)),lct(r,txe,!0),MH(e.b,r)}}function QHt(t,e){var n,a,r,o,s,c;return xBt(),o=e.c-(t.c+t.b),r=t.c-(e.c+e.b),s=t.d-(e.d+e.a),n=e.d-(t.d+t.a),a=i.Math.max(r,o),c=i.Math.max(s,n),cL(),iit(D4t),(i.Math.abs(a)<=D4t||0==a||isNaN(a)&&isNaN(0)?0:a<0?-1:a>0?1:UD(isNaN(a),isNaN(0)))>=0^(iit(D4t),(i.Math.abs(c)<=D4t||0==c||isNaN(c)&&isNaN(0)?0:c<0?-1:c>0?1:UD(isNaN(c),isNaN(0)))>=0)?i.Math.max(c,a):(iit(D4t),(i.Math.abs(a)<=D4t||0==a||isNaN(a)&&isNaN(0)?0:a<0?-1:a>0?1:UD(isNaN(a),isNaN(0)))>0?i.Math.sqrt(c*c+a*a):-i.Math.sqrt(c*c+a*a))}function tUt(t,e){var n,i,a,r,o;if(e){if(!t.a&&(t.a=new Py),2==t.e)return void Cy(t.a,e);if(1==e.e){for(a=0;a<e.em();a++)tUt(t,e.am(a));return}if(0==(o=t.a.a.c.length))return void Cy(t.a,e);if(0!=(r=jz(dG(t.a,o-1),117)).e&&10!=r.e||0!=e.e&&10!=e.e)return void Cy(t.a,e);0==e.e||e.bm().length,0==r.e?(n=new Ex,(i=r._l())>=$Kt?iD(n,Wht(i)):LY(n,i&ZZt),r=new bJ(10,null,0),vW(t.a,r,o-1)):(r.bm().length,iD(n=new Ex,r.bm())),0==e.e?(i=e._l())>=$Kt?iD(n,Wht(i)):LY(n,i&ZZt):iD(n,e.bm()),jz(r,521).b=n.a}}function eUt(t){var e,n,i,a,r;return null!=t.g?t.g:t.a<32?(t.g=NWt(uot(t.f),CJ(t.e)),t.g):(a=HYt((!t.c&&(t.c=vut(t.f)),t.c),0),0==t.e?a:(e=(!t.c&&(t.c=vut(t.f)),t.c).e<0?2:1,n=a.length,i=-t.e+n-e,(r=new Cx).a+=""+a,t.e>0&&i>=-6?i>=0?vQ(r,n-CJ(t.e),String.fromCharCode(46)):(r.a=lN(r.a,0,e-1)+"0."+JA(r.a,e-1),vQ(r,e+1,$pt(Uee,0,-CJ(i)-1))):(n-e>=1&&(vQ(r,e,String.fromCharCode(46)),++n),vQ(r,n,String.fromCharCode(69)),i>0&&vQ(r,++n,String.fromCharCode(43)),vQ(r,++n,""+bq(uot(i)))),t.g=r.a,t.g))}function nUt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;if(!n.dc()){for(o=0,u=0,h=jz((i=n.Kc()).Pb(),19).a;o<e.f;){if(o==h&&(u=0,h=i.Ob()?jz(i.Pb(),19).a:e.f+1),o!=u)for(f=jz(OU(t.b,o),29),d=jz(OU(t.b,u),29),l=new Wf(a0(f.a));l.a<l.c.c.length;)if(Zwt(c=jz(J1(l),10),d.a.c.length,d),0==u)for(r=new Wf(a0(uft(c)));r.a<r.c.c.length;)tzt(a=jz(J1(r),17),!0),lct(t,(lGt(),zde),(cM(),!0)),nVt(t,a,1);++u,++o}for(s=new _2(t.b,0);s.b<s.d.gc();)EN(s.b<s.d.gc()),0==jz(s.d.Xb(s.c=s.b++),29).a.c.length&&lG(s)}}function iUt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;for(u=(o=e.b).o,c=o.d,i=Hw(_B(pmt(o,(zYt(),yme)))),a=Hw(_B(pmt(o,wme))),l=Hw(_B(pmt(o,Dme))),nH(s=new lv,c.d,c.c,c.a,c.b),h=kPt(e,i,a,l),m=new Wf(e.d);m.a<m.c.c.length;){for(g=(b=jz(J1(m),101)).f.a.ec().Kc();g.Ob();)r=(f=jz(g.Pb(),409)).a,d=Rkt(f),y=new vv,hkt(f,f.c,h,y),jEt(f,d,h,y),hkt(f,f.d,h,y),n=y,n=t.Uf(f,d,n),yK(r.a),jat(r.a,n),Kk(new NU(null,new h1(n,16)),new hS(u,s));(p=b.i)&&(rkt(b,p,h,a),bbt(u,s,v=new hI(p.g)),VP(v,p.j),bbt(u,s,v))}nH(c,s.d,s.c,s.a,s.b)}function aUt(t,e,n){var i,a,r;if((a=jz(yEt(e,(zYt(),Epe)),275))!=(XEt(),ade)){switch(1===(Akt(n,"Horizontal Compaction",1),t.a=e,Yx(i=new vDt(((r=new S9).d=e,r.c=jz(yEt(r.d,Xpe),218),qBt(r),EVt(r),cPt(r),r.a)),t.b),jz(yEt(e,kpe),422).g)?Wx(i,new pat(t.a)):Wx(i,(CK(),uie)),a.g){case 1:SLt(i);break;case 2:SLt(_qt(i,(jdt(),jSe)));break;case 3:SLt(Vx(_qt(SLt(i),(jdt(),jSe)),new ba));break;case 4:SLt(Vx(_qt(SLt(i),(jdt(),jSe)),new vp(r)));break;case 5:SLt(qx(i,hle))}_qt(i,(jdt(),FSe)),i.e=!0,Lqt(r),zCt(n)}}function rUt(t,e,n,i,a,r,o,s){var c,l,u,d;switch(c=r7(Cst(Hx(O_e,1),zGt,220,0,[e,n,i,a])),d=null,t.b.g){case 1:d=r7(Cst(Hx(KRe,1),zGt,526,0,[new Qo,new Xo,new Jo]));break;case 0:d=r7(Cst(Hx(KRe,1),zGt,526,0,[new Jo,new Xo,new Qo]));break;case 2:d=r7(Cst(Hx(KRe,1),zGt,526,0,[new Xo,new Qo,new Jo]))}for(u=new Wf(d);u.a<u.c.c.length;)l=jz(J1(u),526),c.c.length>1&&(c=l.mg(c,t.a,s));return 1==c.c.length?jz(OU(c,c.c.length-1),220):2==c.c.length?jHt((u1(0,c.c.length),jz(c.c[0],220)),(u1(1,c.c.length),jz(c.c[1],220)),o,r):null}function oUt(t){var e,n,a,r,o,s;for(Aet(t.a,new Qt),n=new Wf(t.a);n.a<n.c.c.length;)e=jz(J1(n),221),a=qP(jL(jz(t.b,65).c),jz(e.b,65).c),Kae?(s=jz(t.b,65).b,o=jz(e.b,65).b,i.Math.abs(a.a)>=i.Math.abs(a.b)?(a.b=0,o.d+o.a>s.d&&o.d<s.d+s.a&&LH(a,i.Math.max(s.c-(o.c+o.b),o.c-(s.c+s.b)))):(a.a=0,o.c+o.b>s.c&&o.c<s.c+s.b&&LH(a,i.Math.max(s.d-(o.d+o.a),o.d-(s.d+s.a))))):LH(a,_$t(jz(t.b,65),jz(e.b,65))),r=i.Math.sqrt(a.a*a.a+a.b*a.b),LH(a,r=z_t(Wae,e,r,a)),IV(jz(e.b,65),a),Aet(e.a,new Ag(a)),jz(Wae.b,65),B5(Wae,Yae,e)}function sUt(t){var e,n,a,r,o,s,c,l,d,h,f,g;for(t.f=new Fy,c=0,a=0,r=new Wf(t.e.b);r.a<r.c.c.length;)for(s=new Wf(jz(J1(r),29).a);s.a<s.c.c.length;){for((o=jz(J1(s),10)).p=c++,n=new oq(XO(dft(o).a.Kc(),new u));gIt(n);)jz(V6(n),17).p=a++;for(e=DHt(o),h=new Wf(o.j);h.a<h.c.c.length;)d=jz(J1(h),11),e&&(g=d.a.b)!=i.Math.floor(g)&&(l=g-w2(uot(i.Math.round(g))),d.a.b-=l),(f=d.n.b+d.a.b)!=i.Math.floor(f)&&(l=f-w2(uot(i.Math.round(f))),d.n.b-=l)}t.g=c,t.b=a,t.i=O5(Jve,zGt,401,c,0,1),t.c=O5(Kve,zGt,649,a,0,1),t.d.a.$b()}function cUt(t){var e,n,i,a,r,o,s,c,l;if(t.ej())if(c=t.fj(),t.i>0){if(e=new MA(t.i,t.g),r=(n=t.i)<100?null:new FR(n),t.ij())for(i=0;i<t.i;++i)o=t.g[i],r=t.kj(o,r);if(a7(t),a=1==n?t.Zi(4,Yet(e,0),null,0,c):t.Zi(6,e,null,-1,c),t.bj()){for(i=new aN(e);i.e!=i.i.gc();)r=t.dj(xmt(i),r);r?(r.Ei(a),r.Fi()):t.$i(a)}else r?(r.Ei(a),r.Fi()):t.$i(a)}else a7(t),t.$i(t.Zi(6,(kK(),cne),null,-1,c));else if(t.bj())if(t.i>0){for(s=t.g,l=t.i,a7(t),r=l<100?null:new FR(l),i=0;i<l;++i)o=s[i],r=t.dj(o,r);r&&r.Fi()}else a7(t);else a7(t)}function lUt(t,e,n){var a,r,o,s,c,l,u,d,h;for(Fot(this),n==(fJ(),Lwe)?RW(this.r,t):RW(this.w,t),d=BKt,u=PKt,s=e.a.ec().Kc();s.Ob();)r=jz(s.Pb(),46),c=jz(r.a,455),(l=(a=jz(r.b,17)).c)==t&&(l=a.d),RW(c==Lwe?this.r:this.w,l),h=(wWt(),vAe).Hc(l.j)?Hw(_B(yEt(l,(lGt(),Ihe)))):Dct(Cst(Hx(EEe,1),cZt,8,0,[l.i.n,l.n,l.a])).b,d=i.Math.min(d,h),u=i.Math.max(u,h);for(WEt(this,(wWt(),vAe).Hc(t.j)?Hw(_B(yEt(t,(lGt(),Ihe)))):Dct(Cst(Hx(EEe,1),cZt,8,0,[t.i.n,t.n,t.a])).b,d,u),o=e.a.ec().Kc();o.Ob();)r=jz(o.Pb(),46),tSt(this,jz(r.b,17));this.o=!1}function uUt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;return n=8191&t.l,i=t.l>>13|(15&t.m)<<9,a=t.m>>4&8191,r=t.m>>17|(255&t.h)<<5,o=(1048320&t.h)>>8,b=i*(s=8191&e.l),m=a*s,y=r*s,v=o*s,0!=(c=e.l>>13|(15&e.m)<<9)&&(b+=n*c,m+=i*c,y+=a*c,v+=r*c),0!=(l=e.m>>4&8191)&&(m+=n*l,y+=i*l,v+=a*l),0!=(u=e.m>>17|(255&e.h)<<5)&&(y+=n*u,v+=i*u),0!=(d=(1048320&e.h)>>8)&&(v+=n*d),f=((p=n*s)>>22)+(b>>9)+((262143&m)<<4)+((31&y)<<17),g=(m>>18)+(y>>5)+((4095&v)<<8),g+=(f+=(h=(p&EKt)+((511&b)<<13))>>22)>>22,_L(h&=EKt,f&=EKt,g&=CKt)}function dUt(t){var e,n,a,r,o,s,c;if(0!=(c=jz(OU(t.j,0),11)).g.c.length&&0!=c.e.c.length)throw $m(new Fw("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));if(0!=c.g.c.length){for(o=BKt,n=new Wf(c.g);n.a<n.c.c.length;)e=jz(J1(n),17),a=jz(yEt(s=e.d.i,(zYt(),Cbe)),142),o=i.Math.min(o,s.n.a-a.b);return new $d(yY(o))}if(0!=c.e.c.length){for(r=PKt,n=new Wf(c.e);n.a<n.c.c.length;)e=jz(J1(n),17),a=jz(yEt(s=e.c.i,(zYt(),Cbe)),142),r=i.Math.max(r,s.n.a+s.o.a+a.c);return new $d(yY(r))}return ew(),ew(),Ate}function hUt(t,e){var n,i,a,r,o,s;if(t.Fk()){if(t.i>4){if(!t.wj(e))return!1;if(t.rk()){if(s=(n=(i=jz(e,49)).Ug())==t.e&&(t.Dk()?i.Og(i.Vg(),t.zk())==t.Ak():-1-i.Vg()==t.aj()),t.Ek()&&!s&&!n&&i.Zg())for(a=0;a<t.i;++a)if(HA(t.Gk(jz(t.g[a],56)))===HA(e))return!0;return s}if(t.Dk()&&!t.Ck()){if(HA(r=jz(e,56).ah(Syt(jz(t.ak(),18))))===HA(t.e))return!0;if(null==r||!jz(r,56).kh())return!1}}if(o=ERt(t,e),t.Ek()&&!o)for(a=0;a<t.i;++a)if(HA(i=t.Gk(jz(t.g[a],56)))===HA(e))return!0;return o}return ERt(t,e)}function fUt(t,e){var n,i,a,r,o,s,c,l,u,d,h;for(u=new Lm,h=new Ny,o=e.b,a=0;a<o.c.length;a++){for(l=(u1(a,o.c.length),jz(o.c[a],29)).a,u.c=O5(Dte,zGt,1,0,5,1),r=0;r<l.c.length;r++)(s=t.a[a][r]).p=r,s.k==(oCt(),Tse)&&(u.c[u.c.length]=s),i6(jz(OU(e.b,a),29).a,r,s),s.j.c=O5(Dte,zGt,1,0,5,1),pst(s.j,jz(jz(OU(t.b,a),15).Xb(r),14)),IF(jz(yEt(s,(zYt(),tme)),98))||lct(s,tme,(Z_t(),qTe));for(i=new Wf(u);i.a<i.c.c.length;)d=ZPt(n=jz(J1(i),10)),h.a.zc(d,h),h.a.zc(n,h)}for(c=h.a.ec().Kc();c.Ob();)s=jz(c.Pb(),10),kK(),mL(s.j,(Vlt(),sle)),s.i=!0,eAt(s)}function gUt(t,e){var n,i,a,r,o,s,c,l,u,d;if(u=jz(yEt(t,(lGt(),Gde)),61),i=jz(OU(t.j,0),11),u==(wWt(),cAe)?HTt(i,EAe):u==EAe&&HTt(i,cAe),jz(yEt(e,(zYt(),Fbe)),174).Hc((ypt(),FAe))){if(c=Hw(_B(yEt(t,Cme))),l=Hw(_B(yEt(t,Sme))),o=Hw(_B(yEt(t,kme))),(s=jz(yEt(e,ime),21)).Hc((dAt(),eAe)))for(n=l,d=t.o.a/2-i.n.a,r=new Wf(i.f);r.a<r.c.c.length;)(a=jz(J1(r),70)).n.b=n,a.n.a=d-a.o.a/2,n+=a.o.b+o;else if(s.Hc(iAe))for(r=new Wf(i.f);r.a<r.c.c.length;)(a=jz(J1(r),70)).n.a=c+t.o.a-i.n.a;l0(new Eg((gE(),new $Z(e,!1,!1,new je))),new Pj(null,t,!1))}}function pUt(t,e){var n,a,r,o,s,c,l;if(0!=e.c.length){for(kK(),yV(e.c,e.c.length,null),a=jz(J1(r=new Wf(e)),145);r.a<r.c.c.length;)n=jz(J1(r),145),!rnt(a.e.c,n.e.c)||Ppt(jB(a.e).b,n.e.d)||Ppt(jB(n.e).b,a.e.d)?(e$t(t,a),a=n):(pst(a.k,n.k),pst(a.b,n.b),pst(a.c,n.c),jat(a.i,n.i),pst(a.d,n.d),pst(a.j,n.j),o=i.Math.min(a.e.c,n.e.c),s=i.Math.min(a.e.d,n.e.d),c=i.Math.max(a.e.c+a.e.b,n.e.c+n.e.b)-o,l=i.Math.max(a.e.d+a.e.a,n.e.d+n.e.a)-s,OH(a.e,o,s,c,l),Q1(a.f,n.f),!a.a&&(a.a=n.a),pst(a.g,n.g),Wz(a.g,n));e$t(t,a)}}function bUt(t,e,n,i){var a,r,o,s,c,l;if((s=t.j)==(wWt(),CAe)&&e!=(Z_t(),ZTe)&&e!=(Z_t(),KTe)&&(HTt(t,s=Vjt(t,n)),!(t.q?t.q:(kK(),kK(),lne))._b((zYt(),Qbe))&&s!=CAe&&(0!=t.n.a||0!=t.n.b)&&lct(t,Qbe,xxt(t,s))),e==(Z_t(),YTe)){switch(l=0,s.g){case 1:case 3:(r=t.i.o.a)>0&&(l=t.n.a/r);break;case 2:case 4:(a=t.i.o.b)>0&&(l=t.n.b/a)}lct(t,(lGt(),Rhe),l)}if(c=t.o,o=t.a,i)o.a=i.a,o.b=i.b,t.d=!0;else if(e!=ZTe&&e!=KTe&&s!=CAe)switch(s.g){case 1:o.a=c.a/2;break;case 2:o.a=c.a,o.b=c.b/2;break;case 3:o.a=c.a/2,o.b=c.b;break;case 4:o.b=c.b/2}else o.a=c.a/2,o.b=c.b/2}function mUt(t){var e,n,i,a,r,o,s,c,l,u;if(t.ej())if(u=t.Vi(),c=t.fj(),u>0)if(e=new xrt(t.Gi()),r=(n=u)<100?null:new FR(n),KB(t,n,e.g),a=1==n?t.Zi(4,Yet(e,0),null,0,c):t.Zi(6,e,null,-1,c),t.bj()){for(i=new AO(e);i.e!=i.i.gc();)r=t.dj(wmt(i),r);r?(r.Ei(a),r.Fi()):t.$i(a)}else r?(r.Ei(a),r.Fi()):t.$i(a);else KB(t,t.Vi(),t.Wi()),t.$i(t.Zi(6,(kK(),cne),null,-1,c));else if(t.bj())if((u=t.Vi())>0){for(s=t.Wi(),l=u,KB(t,u,s),r=l<100?null:new FR(l),i=0;i<l;++i)o=s[i],r=t.dj(o,r);r&&r.Fi()}else KB(t,t.Vi(),t.Wi());else KB(t,t.Vi(),t.Wi())}function yUt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;for(s=new Wf(e);s.a<s.c.c.length;)(r=jz(J1(s),233)).e=null,r.c=0;for(c=null,o=new Wf(e);o.a<o.c.c.length;)if(d=(r=jz(J1(o),233)).d[0],!n||d.k==(oCt(),Sse)){for(f=jz(yEt(d,(lGt(),ihe)),15).Kc();f.Ob();)h=jz(f.Pb(),10),(!n||h.k==(oCt(),Sse))&&((!r.e&&(r.e=new Lm),r.e).Fc(t.b[h.c.p][h.p]),++t.b[h.c.p][h.p].c);if(!n&&d.k==(oCt(),Sse)){if(c)for(u=jz(c7(t.d,c),21).Kc();u.Ob();)for(l=jz(u.Pb(),10),a=jz(c7(t.d,d),21).Kc();a.Ob();)i=jz(a.Pb(),10),Vz(t.b[l.c.p][l.p]).Fc(t.b[i.c.p][i.p]),++t.b[i.c.p][i.p].c;c=d}}}function vUt(t,e){var n,i,a,r,o,s,c;for(n=0,c=new Lm,r=new Wf(e);r.a<r.c.c.length;){switch(a=jz(J1(r),11),Qlt(t.b,t.d[a.p]),c.c=O5(Dte,zGt,1,0,5,1),a.i.k.g){case 0:Aet(jz(yEt(a,(lGt(),xhe)),10).j,new Xp(c));break;case 1:kL(Zct(AZ(new NU(null,new h1(a.i.j,16)),new Jp(a))),new Qp(c));break;case 3:Wz(c,new nA(jz(yEt(a,(lGt(),fhe)),11),nht(a.e.c.length+a.g.c.length)))}for(s=new Wf(c);s.a<s.c.c.length;)o=jz(J1(s),46),(i=__(t,jz(o.a,11)))>t.d[a.p]&&(n+=J3(t.b,i)*jz(o.b,19).a,f4(t.a,nht(i)));for(;!Ww(t.a);)_tt(t.b,jz(fW(t.a),19).a)}return n}function wUt(t,e,n,a){var r,o,s,c,l,u,d,h,f,g;for((d=new hI(jz(JIt(t,(EEt(),$Ee)),8))).a=i.Math.max(d.a-n.b-n.c,0),d.b=i.Math.max(d.b-n.d-n.a,0),(null==(r=_B(JIt(t,MEe)))||(vG(r),r<=0))&&(r=1.3),s=new Lm,h=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));h.e!=h.i.gc();)o=new UN(jz(wmt(h),33)),s.c[s.c.length]=o;switch(jz(JIt(t,NEe),311).g){case 3:g=r$t(s,e,d.a,d.b,(l=a,vG(r),l));break;case 1:g=mzt(s,e,d.a,d.b,(u=a,vG(r),u));break;default:g=kUt(s,e,d.a,d.b,(c=a,vG(r),c))}PWt(t,(f=vYt(new Uet(g),e,n,d.a,d.b,a,(vG(r),r))).a,f.b,!1,!0)}function xUt(t,e){var n,i,a,r;r=new QF((n=e.b).j),a=0,(i=n.j).c=O5(Dte,zGt,1,0,5,1),tY(jz(pot(t.b,(wWt(),cAe),(Sat(),Ble)),15),n),a=Xvt(r,a,new Na,i),tY(jz(pot(t.b,cAe,Nle),15),n),a=Xvt(r,a,new Ma,i),tY(jz(pot(t.b,cAe,Mle),15),n),tY(jz(pot(t.b,sAe,Ble),15),n),tY(jz(pot(t.b,sAe,Nle),15),n),a=Xvt(r,a,new Ba,i),tY(jz(pot(t.b,sAe,Mle),15),n),tY(jz(pot(t.b,EAe,Ble),15),n),a=Xvt(r,a,new Pa,i),tY(jz(pot(t.b,EAe,Nle),15),n),a=Xvt(r,a,new Fa,i),tY(jz(pot(t.b,EAe,Mle),15),n),tY(jz(pot(t.b,SAe,Ble),15),n),a=Xvt(r,a,new Ka,i),tY(jz(pot(t.b,SAe,Nle),15),n),tY(jz(pot(t.b,SAe,Mle),15),n)}function RUt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b;for(Akt(e,"Layer size calculation",1),d=BKt,u=PKt,r=!1,c=new Wf(t.b);c.a<c.c.c.length;)if((l=(s=jz(J1(c),29)).c).a=0,l.b=0,0!=s.a.c.length){for(r=!0,f=new Wf(s.a);f.a<f.c.c.length;)p=(h=jz(J1(f),10)).o,g=h.d,l.a=i.Math.max(l.a,p.a+g.b+g.c);b=(a=jz(OU(s.a,0),10)).n.b-a.d.d,a.k==(oCt(),kse)&&(b-=jz(yEt(t,(zYt(),Ime)),142).d),n=(o=jz(OU(s.a,s.a.c.length-1),10)).n.b+o.o.b+o.d.a,o.k==kse&&(n+=jz(yEt(t,(zYt(),Ime)),142).a),l.b=n-b,d=i.Math.min(d,b),u=i.Math.max(u,n)}r||(d=0,u=0),t.f.b=u-d,t.c.b-=d,zCt(e)}function _Ut(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m;for(r=0,o=0,l=new Wf(t.a);l.a<l.c.c.length;)s=jz(J1(l),10),r=i.Math.max(r,s.d.b),o=i.Math.max(o,s.d.c);for(c=new Wf(t.a);c.a<c.c.c.length;){switch(s=jz(J1(c),10),jz(yEt(s,(zYt(),vpe)),248).g){case 1:g=0;break;case 2:g=1;break;case 5:g=.5;break;default:for(n=0,d=0,f=new Wf(s.j);f.a<f.c.c.length;)0==(h=jz(J1(f),11)).e.c.length||++n,0==h.g.c.length||++d;g=n+d==0?.5:d/(n+d)}b=t.c,u=s.o.a,m=(b.a-u)*g,g>.5?m-=2*o*(g-.5):g<.5&&(m+=2*r*(.5-g)),m<(a=s.d.b)&&(m=a),p=s.d.c,m>b.a-p-u&&(m=b.a-p-u),s.n.a=e+m}}function kUt(t,e,n,i,a){var r,o,s,c,l,u,d,h,f;for(s=O5(LMe,HKt,25,t.c.length,15,1),nxt(h=new qq(new Ys),t),l=0,f=new Lm;0!=h.b.c.length;)if(o=jz(0==h.b.c.length?null:OU(h.b,0),157),l>1&&eV(o)*tV(o)/2>s[0]){for(r=0;r<f.c.length-1&&eV(o)*tV(o)/2>s[r];)++r;d=new Uet(new s1(f,0,r+1)),u=eV(o)/tV(o),c=vYt(d,e,new dv,n,i,a,u),VP(vD(d.e),c),F5(eEt(h,d)),nxt(h,new s1(f,r+1,f.c.length)),f.c=O5(Dte,zGt,1,0,5,1),l=0,wV(s,s.length,0)}else null!=(0==h.b.c.length?null:OU(h.b,0))&&lat(h,0),l>0&&(s[l]=s[l-1]),s[l]+=eV(o)*tV(o),++l,f.c[f.c.length]=o;return f}function EUt(t){var e,n,i;if((n=jz(yEt(t,(zYt(),vbe)),163))==(_ft(),jhe)){for(e=new oq(XO(uft(t).a.Kc(),new u));gIt(e);)if(!q6(jz(V6(e),17)))throw $m(new nx(C1t+pwt(t)+"' 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(n==zhe)for(i=new oq(XO(dft(t).a.Kc(),new u));gIt(i);)if(!q6(jz(V6(i),17)))throw $m(new nx(C1t+pwt(t)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."))}function CUt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f;for(Akt(e,"Label dummy removal",1),i=Hw(_B(yEt(t,(zYt(),wme)))),a=Hw(_B(yEt(t,kme))),c=jz(yEt(t,Vpe),103),s=new Wf(t.b);s.a<s.c.c.length;)for(u=new _2(jz(J1(s),29).a,0);u.b<u.d.gc();)EN(u.b<u.d.gc()),(l=jz(u.d.Xb(u.c=u.b++),10)).k==(oCt(),Ese)&&(d=jz(yEt(l,(lGt(),fhe)),17),f=Hw(_B(yEt(d,abe))),o=HA(yEt(l,rhe))===HA((Wwt(),RTe)),n=new hI(l.n),o&&(n.b+=f+i),r=new OT(l.o.a,l.o.b-f-i),h=jz(yEt(l,Ehe),15),c==(jdt(),zSe)||c==PSe?DBt(h,n,a,r,o,c):Hut(h,n,a,r),pst(d.b,h),iVt(l,HA(yEt(t,Xpe))===HA((kft(),KSe))),lG(u));zCt(e)}function SUt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w;for(s=new Lm,a=new Wf(e.a);a.a<a.c.c.length;)for(o=new Wf(jz(J1(a),10).j);o.a<o.c.c.length;){for(l=null,v=0,w=(y=X0((r=jz(J1(o),11)).g)).length;v<w;++v)fot((m=y[v]).d.i,n)||((b=LHt(t,e,n,m,m.c,(rit(),Hye),l))!=l&&(s.c[s.c.length]=b),b.c&&(l=b));for(c=null,g=0,p=(f=X0(r.e)).length;g<p;++g)fot((h=f[g]).c.i,n)||((b=LHt(t,e,n,h,h.d,(rit(),zye),c))!=c&&(s.c[s.c.length]=b),b.c&&(c=b))}for(d=new Wf(s);d.a<d.c.c.length;)u=jz(J1(d),441),-1!=x9(e.a,u.a,0)||Wz(e.a,u.a),u.c&&(i.c[i.c.length]=u)}function TUt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g;for(Akt(n,"Interactive cycle breaking",1),u=new Lm,h=new Wf(e.a);h.a<h.c.c.length;)for((d=jz(J1(h),10)).p=1,f=jRt(d).a,l=Mgt(d,(rit(),Hye)).Kc();l.Ob();)for(r=new Wf(jz(l.Pb(),11).g);r.a<r.c.c.length;)(g=(i=jz(J1(r),17)).d.i)!=d&&jRt(g).a<f&&(u.c[u.c.length]=i);for(o=new Wf(u);o.a<o.c.c.length;)tzt(i=jz(J1(o),17),!0);for(u.c=O5(Dte,zGt,1,0,5,1),c=new Wf(e.a);c.a<c.c.c.length;)(s=jz(J1(c),10)).p>0&&dSt(t,s,u);for(a=new Wf(u);a.a<a.c.c.length;)tzt(i=jz(J1(a),17),!0);u.c=O5(Dte,zGt,1,0,5,1),zCt(n)}function AUt(t,e){var n,i,a,r,o,s,c,l,u;return l="",0==e.length?t.de(WZt,VZt,-1,-1):(mF((u=BEt(e)).substr(0,3),"at ")&&(u=u.substr(3)),-1==(o=(u=u.replace(/\[.*?\]/g,"")).indexOf("("))?-1==(o=u.indexOf("@"))?(l=u,u=""):(l=BEt(u.substr(o+1)),u=BEt(u.substr(0,o))):(n=u.indexOf(")",o),l=u.substr(o+1,n-(o+1)),u=BEt(u.substr(0,o))),-1!=(o=HD(u,Kkt(46)))&&(u=u.substr(o+1)),(0==u.length||mF(u,"Anonymous function"))&&(u=VZt),s=mM(l,Kkt(58)),a=_F(l,Kkt(58),s-1),c=-1,i=-1,r=WZt,-1!=s&&-1!=a&&(r=l.substr(0,a),c=cN(l.substr(a+1,s-(a+1))),i=cN(l.substr(s+1))),t.de(r,u,c,i))}function DUt(t,e,n){var i,a,r,o,s,c;if(0==e.l&&0==e.m&&0==e.h)throw $m(new Tw("divide by zero"));if(0==t.l&&0==t.m&&0==t.h)return n&&(dee=_L(0,0,0)),_L(0,0,0);if(e.h==SKt&&0==e.m&&0==e.l)return jft(t,n);if(c=!1,e.h>>19&&(e=rct(e),c=!c),o=AOt(e),r=!1,a=!1,i=!1,t.h==SKt&&0==t.m&&0==t.l){if(a=!0,r=!0,-1!=o)return s=xIt(t,o),c&&Act(s),n&&(dee=_L(0,0,0)),s;t=WD((q9(),hee)),i=!0,c=!c}else t.h>>19&&(r=!0,t=rct(t),i=!0,c=!c);return-1!=o?$ct(t,o,c,r,n):Pxt(t,e)<0?(n&&(dee=r?rct(t):_L(t.l,t.m,t.h)),_L(0,0,0)):ljt(i?t:_L(t.l,t.m,t.h),e,c,r,a,n)}function IUt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g;if(t.e&&t.c.c<t.f)throw $m(new Fw("Expected "+t.f+" phases to be configured; only found "+t.c.c));for(u=jz(YR(t.g),9),f=sN(t.f),s=0,l=(r=u).length;s<l;++s)(d=jz(M9(t,(i=r[s]).g),246))?Wz(f,jz(sgt(t,d),123)):f.c[f.c.length]=null;for(g=new j2,Kk(AZ(DZ(AZ(new NU(null,new h1(f,16)),new ds),new xb(e)),new hs),new Rb(g)),Xrt(g,t.a),n=new Lm,o=0,c=(a=u).length;o<c;++o)pst(n,Rst(t,KK(jz(M9(g,(i=a[o]).g),20)))),(h=jz(OU(f,i.g),123))&&(n.c[n.c.length]=h);return pst(n,Rst(t,KK(jz(M9(g,u[u.length-1].g+1),20)))),n}function LUt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g;for(Akt(n,"Model order cycle breaking",1),t.a=0,t.b=0,h=new Lm,u=e.a.c.length,l=new Wf(e.a);l.a<l.c.c.length;)IN(c=jz(J1(l),10),(lGt(),hhe))&&(u=i.Math.max(u,jz(yEt(c,hhe),19).a+1));for(g=new Wf(e.a);g.a<g.c.c.length;)for(s=VSt(t,f=jz(J1(g),10),u),d=Mgt(f,(rit(),Hye)).Kc();d.Ob();)for(o=new Wf(jz(d.Pb(),11).g);o.a<o.c.c.length;)VSt(t,(a=jz(J1(o),17)).d.i,u)<s&&(h.c[h.c.length]=a);for(r=new Wf(h);r.a<r.c.c.length;)tzt(a=jz(J1(r),17),!0),lct(e,(lGt(),zde),(cM(),!0));h.c=O5(Dte,zGt,1,0,5,1),zCt(n)}function OUt(t,e){var n,i,a,r,o,s,c;if(!(t.g>e.f||e.g>t.f)){for(n=0,i=0,o=t.w.a.ec().Kc();o.Ob();)a=jz(o.Pb(),11),but(Dct(Cst(Hx(EEe,1),cZt,8,0,[a.i.n,a.n,a.a])).b,e.g,e.f)&&++n;for(s=t.r.a.ec().Kc();s.Ob();)a=jz(s.Pb(),11),but(Dct(Cst(Hx(EEe,1),cZt,8,0,[a.i.n,a.n,a.a])).b,e.g,e.f)&&--n;for(c=e.w.a.ec().Kc();c.Ob();)a=jz(c.Pb(),11),but(Dct(Cst(Hx(EEe,1),cZt,8,0,[a.i.n,a.n,a.a])).b,t.g,t.f)&&++i;for(r=e.r.a.ec().Kc();r.Ob();)a=jz(r.Pb(),11),but(Dct(Cst(Hx(EEe,1),cZt,8,0,[a.i.n,a.n,a.a])).b,t.g,t.f)&&--i;n<i?new k7(t,e,i-n):i<n?new k7(e,t,n-i):(new k7(e,t,0),new k7(t,e,0))}}function MUt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;for(l=e.c,a=GI(t.e),d=vO(jN(jL(YI(t.e)),t.d*t.a,t.c*t.b),-.5),n=a.a-d.a,i=a.b-d.b,n=(o=e.a).c-n,i=o.d-i,c=new Wf(l);c.a<c.c.c.length;){switch(f=n+(h=(s=jz(J1(c),395)).b).a,b=i+h.b,g=CJ(f/t.a),m=CJ(b/t.b),(r=s.a).g){case 0:zmt(),u=$ae;break;case 1:zmt(),u=jae;break;case 2:zmt(),u=zae;break;default:zmt(),u=Hae}r.a?(y=CJ((b+s.c)/t.b),Wz(t.f,new Oj(u,nht(m),nht(y))),r==(Hmt(),tre)?fct(t,0,m,g,y):fct(t,g,m,t.d-1,y)):(p=CJ((f+s.c)/t.a),Wz(t.f,new Oj(u,nht(g),nht(p))),r==(Hmt(),Jae)?fct(t,g,0,p,m):fct(t,g,m,p,t.c-1))}}function NUt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w;for(h=new Lm,r=new Lm,p=null,s=e.Kc();s.Ob();)o=new $p(jz(s.Pb(),19).a),r.c[r.c.length]=o,p&&(o.d=p,p.e=o),p=o;for(v=V$t(t),u=0;u<r.c.length;++u){for(f=null,b=M7((u1(0,r.c.length),jz(r.c[0],652))),n=null,a=BKt,d=1;d<t.b.c.length;++d)m=b?i.Math.abs(b.b-d):i.Math.abs(d-f.b)+1,(g=f?i.Math.abs(d-f.b):m+1)<m?(l=f,c=g):(l=b,c=m),w=Hw(_B(yEt(t,(zYt(),$me)))),(y=v[d]+i.Math.pow(c,w))<a&&(a=y,(n=l).c=d),b&&d==b.b&&(f=b,b=Oq(b));n&&(Wz(h,nht(n.c)),n.a=!0,mht(n))}return kK(),yV(h.c,h.c.length,null),h}function BUt(t){var e,n,i,a,r,o,s,c,l,u;for(e=new kc,n=new kc,l=mF(P8t,(a=Ojt(t.b,F8t))?kB(apt((!a.b&&(a.b=new KN((pGt(),yLe),VLe,a)),a.b),j8t)):null),c=0;c<t.i;++c)iO(s=jz(t.g[c],170),99)?(o=jz(s,18)).Bb&l7t?(!(o.Bb&lZt)||!l&&null==((r=Ojt(o,F8t))?kB(apt((!r.b&&(r.b=new KN((pGt(),yLe),VLe,r)),r.b),Q7t)):null))&&l8(e,o):(u=Syt(o))&&u.Bb&l7t||(!(o.Bb&lZt)||!l&&null==((i=Ojt(o,F8t))?kB(apt((!i.b&&(i.b=new KN((pGt(),yLe),VLe,i)),i.b),Q7t)):null))&&l8(n,o):(XE(),jz(s,66).Oj()&&(s.Jj()||(l8(e,s),l8(n,s))));aut(e),aut(n),t.a=jz(e.g,247),jz(n.g,247)}function PUt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;for(c=MCt(e),jz(yEt(e,(zYt(),zpe)),314)!=(Ait(),lue)&&t6(c,new me),t6(c,new Mg(jz(yEt(e,Npe),292))),f=0,l=new Lm,a=new dZ(c);a.a!=a.b;)i=jz(Fut(a),37),IVt(t.c,i),f+=(d=jz(yEt(i,(lGt(),_he)),15)).gc(),Wz(l,new nA(i,d.Kc()));for(Akt(n,"Recursive hierarchical layout",f),h=jz(jz(OU(l,l.c.length-1),46).b,47);h.Ob();)for(s=new Wf(l);s.a<s.c.c.length;)for(o=jz(J1(s),46),d=jz(o.b,47),r=jz(o.a,37);d.Ob();){if(iO(u=jz(d.Pb(),51),507)){if(r.e)break;u.pf(r,yrt(n,1));break}u.pf(r,yrt(n,1))}zCt(n)}function FUt(t,e){var n,i,a,r,o,s,c,l;if(d1(s=e.length-1,e.length),93==(o=e.charCodeAt(s))){if((r=HD(e,Kkt(91)))>=0)return a=gft(t,e.substr(1,r-1)),KWt(t,e.substr(r+1,s-(r+1)),a)}else{if(n=-1,null==_ee&&(_ee=new RegExp("\\d")),_ee.test(String.fromCharCode(o))&&(n=_F(e,Kkt(46),s-1))>=0){i=jz(Y6(t,Cet(t,e.substr(1,n-1)),!1),58),c=0;try{c=djt(e.substr(n+1),FZt,NGt)}catch(u){throw iO(u=dst(u),127)?$m(new I9(u)):$m(u)}if(c<i.gc())return iO(l=i.Xb(c),72)&&(l=jz(l,72).dd()),jz(l,56)}if(n<0)return jz(Y6(t,Cet(t,e.substr(1)),!1),56)}return null}function jUt(t,e,n){var i,a,r,o,s,c,l;if(Dgt(e,n)>=0)return n;switch(MG(j9(t,n))){case 2:if(mF("",Sdt(t,n.Hj()).ne())){if(c=yLt(t,e,s=wZ(j9(t,n)),vZ(j9(t,n))))return c;for(o=0,l=(a=xFt(t,e)).gc();o<l;++o)if(rMt(TW(j9(t,c=jz(a.Xb(o),170))),s))return c}return null;case 4:if(mF("",Sdt(t,n.Hj()).ne())){for(i=n;i;i=K1(j9(t,i)))if(c=vLt(t,e,wZ(j9(t,i)),vZ(j9(t,i))))return c;if(s=wZ(j9(t,n)),mF(E9t,s))return yRt(t,e);for(o=0,l=(r=RFt(t,e)).gc();o<l;++o)if(rMt(TW(j9(t,c=jz(r.Xb(o),170))),s))return c}return null;default:return null}}function $Ut(t,e,n){var i,a,r,o,s,c,l,u;if(0==n.gc())return!1;if(XE(),r=(s=jz(e,66).Oj())?n:new pet(n.gc()),INt(t.e,e)){if(e.hi())for(l=n.Kc();l.Ob();)q$t(t,e,c=l.Pb(),iO(e,99)&&0!=(jz(e,18).Bb&$Kt))||(a=X4(e,c),r.Hc(a)||r.Fc(a));else if(!s)for(l=n.Kc();l.Ob();)a=X4(e,c=l.Pb()),r.Fc(a)}else{if(n.gc()>1)throw $m(new Pw(T9t));for(u=rNt(t.e.Tg(),e),i=jz(t.g,119),o=0;o<t.i;++o)if(a=i[o],u.rl(a.ak())){if(n.Hc(s?a:a.dd()))return!1;for(l=n.Kc();l.Ob();)c=l.Pb(),jz(syt(t,o,s?jz(c,72):X4(e,c)),72);return!0}s||(a=X4(e,n.Kc().Pb()),r.Fc(a))}return pY(t,r)}function zUt(t,e){var n,a,r,o,s,c,l;for(l=new Zk,c=new Bf(new Tf(t.c).a.vc().Kc());c.a.Ob();)r=jz(c.a.Pb(),42),0==(o=jz(r.dd(),458)).b&&n6(l,o,l.c.b,l.c);for(;0!=l.b;)for(null==(o=jz(0==l.b?null:(EN(0!=l.b),Det(l,l.a.a)),458)).a&&(o.a=0),a=new Wf(o.d);a.a<a.c.c.length;)null==(n=jz(J1(a),654)).b.a?n.b.a=Hw(o.a)+n.a:e.o==(oQ(),iwe)?n.b.a=i.Math.min(Hw(n.b.a),Hw(o.a)+n.a):n.b.a=i.Math.max(Hw(n.b.a),Hw(o.a)+n.a),--n.b.b,0==n.b.b&&MH(l,n.b);for(s=new Bf(new Tf(t.c).a.vc().Kc());s.a.Ob();)r=jz(s.a.Pb(),42),o=jz(r.dd(),458),e.i[o.c.p]=o.a}function HUt(){HUt=D,sxe=new rm(AQt),new eP("DEPTH",nht(0)),exe=new eP("FAN",nht(0)),Qwe=new eP(q4t,nht(0)),fxe=new eP("ROOT",(cM(),!1)),ixe=new eP("LEFTNEIGHBOR",null),dxe=new eP("RIGHTNEIGHBOR",null),axe=new eP("LEFTSIBLING",null),hxe=new eP("RIGHTSIBLING",null),txe=new eP("DUMMY",!1),new eP("LEVEL",nht(0)),uxe=new eP("REMOVABLE_EDGES",new Zk),gxe=new eP("XCOOR",nht(0)),pxe=new eP("YCOOR",nht(0)),rxe=new eP("LEVELHEIGHT",0),nxe=new eP("ID",""),cxe=new eP("POSITION",nht(0)),lxe=new eP("PRELIM",0),oxe=new eP("MODIFIER",0),Jwe=new rm(IQt),Xwe=new rm(LQt)}function UUt(t,e,n,a){var r,o,s,c,l,u,d,h,f,g;for(d=n+e.c.c.a,g=new Wf(e.j);g.a<g.c.c.length;){if(f=jz(J1(g),11),r=Dct(Cst(Hx(EEe,1),cZt,8,0,[f.i.n,f.n,f.a])),e.k==(oCt(),Tse)&&(c=jz(yEt(f,(lGt(),fhe)),11),r.a=Dct(Cst(Hx(EEe,1),cZt,8,0,[c.i.n,c.n,c.a])).a,e.n.a=r.a),s=new OT(0,r.b),f.j==(wWt(),sAe))s.a=d;else{if(f.j!=SAe)continue;s.a=n}if(!(i.Math.abs(r.a-s.a)<=a)||Oxt(e))for(o=f.g.c.length+f.e.c.length>1,u=new m7(f.b);yL(u.a)||yL(u.b);)h=(l=jz(yL(u.a)?J1(u.a):J1(u.b),17)).c==f?l.d:l.c,i.Math.abs(Dct(Cst(Hx(EEe,1),cZt,8,0,[h.i.n,h.n,h.a])).b-s.b)>1&&bNt(t,l,s,o,f)}}function VUt(t){var e,n,a,r,o,s;if(r=new _2(t.e,0),a=new _2(t.a,0),t.d)for(n=0;n<t.b;n++)EN(r.b<r.d.gc()),r.d.Xb(r.c=r.b++);else for(n=0;n<t.b-1;n++)EN(r.b<r.d.gc()),r.d.Xb(r.c=r.b++),lG(r);for(e=Hw((EN(r.b<r.d.gc()),_B(r.d.Xb(r.c=r.b++))));t.f-e>N4t;){for(o=e,s=0;i.Math.abs(e-o)<N4t;)++s,e=Hw((EN(r.b<r.d.gc()),_B(r.d.Xb(r.c=r.b++)))),EN(a.b<a.d.gc()),a.d.Xb(a.c=a.b++);s<t.b&&(EN(r.b>0),r.a.Xb(r.c=--r.b),N$t(t,t.b-s,o,a,r),EN(r.b<r.d.gc()),r.d.Xb(r.c=r.b++)),EN(a.b>0),a.a.Xb(a.c=--a.b)}if(!t.d)for(n=0;n<t.b-1;n++)EN(r.b<r.d.gc()),r.d.Xb(r.c=r.b++),lG(r);t.d=!0,t.c=!0}function qUt(){qUt=D,gOe=(i_(),fOe).b,mOe=jz(Yet(GK(fOe.b),0),34),pOe=jz(Yet(GK(fOe.b),1),34),bOe=jz(Yet(GK(fOe.b),2),34),SOe=fOe.bb,jz(Yet(GK(fOe.bb),0),34),jz(Yet(GK(fOe.bb),1),34),AOe=fOe.fb,DOe=jz(Yet(GK(fOe.fb),0),34),jz(Yet(GK(fOe.fb),1),34),jz(Yet(GK(fOe.fb),2),18),LOe=fOe.qb,NOe=jz(Yet(GK(fOe.qb),0),34),jz(Yet(GK(fOe.qb),1),18),jz(Yet(GK(fOe.qb),2),18),OOe=jz(Yet(GK(fOe.qb),3),34),MOe=jz(Yet(GK(fOe.qb),4),34),POe=jz(Yet(GK(fOe.qb),6),34),BOe=jz(Yet(GK(fOe.qb),5),18),yOe=fOe.j,vOe=fOe.k,wOe=fOe.q,xOe=fOe.w,ROe=fOe.B,_Oe=fOe.A,kOe=fOe.C,EOe=fOe.D,COe=fOe._,TOe=fOe.cb,IOe=fOe.hb}function WUt(t,e,n){var a,r,o,s,c,l,u,d,h;t.c=0,t.b=0,a=2*e.c.a.c.length+1;t:for(u=n.Kc();u.Ob();){if(h=0,s=(l=jz(u.Pb(),11)).j==(wWt(),cAe)||l.j==EAe){if(!(d=jz(yEt(l,(lGt(),xhe)),10)))continue;h+=nPt(t,a,l,d)}else{for(c=new Wf(l.g);c.a<c.c.c.length;){if((r=jz(J1(c),17).d).i.c==e.c){Wz(t.a,l);continue t}h+=t.g[r.p]}for(o=new Wf(l.e);o.a<o.c.c.length;){if((r=jz(J1(o),17).c).i.c==e.c){Wz(t.a,l);continue t}h-=t.g[r.p]}}l.e.c.length+l.g.c.length>0?(t.f[l.p]=h/(l.e.c.length+l.g.c.length),t.c=i.Math.min(t.c,t.f[l.p]),t.b=i.Math.max(t.b,t.f[l.p])):s&&(t.f[l.p]=h)}}function YUt(t){t.b=null,t.bb=null,t.fb=null,t.qb=null,t.a=null,t.c=null,t.d=null,t.e=null,t.f=null,t.n=null,t.M=null,t.L=null,t.Q=null,t.R=null,t.K=null,t.db=null,t.eb=null,t.g=null,t.i=null,t.j=null,t.k=null,t.gb=null,t.o=null,t.p=null,t.q=null,t.r=null,t.$=null,t.ib=null,t.S=null,t.T=null,t.t=null,t.s=null,t.u=null,t.v=null,t.w=null,t.B=null,t.A=null,t.C=null,t.D=null,t.F=null,t.G=null,t.H=null,t.I=null,t.J=null,t.P=null,t.Z=null,t.U=null,t.V=null,t.W=null,t.X=null,t.Y=null,t._=null,t.ab=null,t.cb=null,t.hb=null,t.nb=null,t.lb=null,t.mb=null,t.ob=null,t.pb=null,t.jb=null,t.kb=null,t.N=!1,t.O=!1}function GUt(t,e,n){var i,a;for(Akt(n,"Graph transformation ("+t.a+")",1),a=a0(e.a),i=new Wf(e.b);i.a<i.c.c.length;)pst(a,jz(J1(i),29).a);if(jz(yEt(e,(zYt(),qpe)),419)==(Ptt(),Eue))switch(jz(yEt(e,Vpe),103).g){case 2:I2(e,a);break;case 3:hpt(e,a);break;case 4:t.a==(Eat(),Hse)?(hpt(e,a),D2(e,a)):(D2(e,a),hpt(e,a))}else if(t.a==(Eat(),Hse))switch(jz(yEt(e,Vpe),103).g){case 2:I2(e,a),D2(e,a);break;case 3:hpt(e,a),I2(e,a);break;case 4:I2(e,a),hpt(e,a)}else switch(jz(yEt(e,Vpe),103).g){case 2:I2(e,a),D2(e,a);break;case 3:I2(e,a),hpt(e,a);break;case 4:hpt(e,a),I2(e,a)}zCt(n)}function ZUt(t,e,n){var i,a,r,o,s,c,l,d,h,f,g;for(c=new lI,l=new lI,f=new lI,g=new lI,s=Hw(_B(yEt(e,(zYt(),Tme)))),a=Hw(_B(yEt(e,yme))),o=new Wf(n);o.a<o.c.c.length;)if(r=jz(J1(o),10),(d=jz(yEt(r,(lGt(),Gde)),61))==(wWt(),cAe))for(l.a.zc(r,l),i=new oq(XO(uft(r).a.Kc(),new u));gIt(i);)RW(c,jz(V6(i),17).c.i);else if(d==EAe)for(g.a.zc(r,g),i=new oq(XO(uft(r).a.Kc(),new u));gIt(i);)RW(f,jz(V6(i),17).c.i);0!=c.a.gc()&&(h=DVt(new lY(2,a),e,c,l,-s-e.c.b))>0&&(t.a=s+(h-1)*a,e.c.b+=t.a,e.f.b+=t.a),0!=f.a.gc()&&(h=DVt(new lY(1,a),e,f,g,e.f.b+s-e.c.b))>0&&(e.f.b+=s+(h-1)*a)}function KUt(t,e){var n,i,a,r;r=t.F,null==e?(t.F=null,Nlt(t,null)):(t.F=(vG(e),e),-1!=(i=HD(e,Kkt(60)))?(a=e.substr(0,i),-1==HD(e,Kkt(46))&&!mF(a,IGt)&&!mF(a,E8t)&&!mF(a,C8t)&&!mF(a,S8t)&&!mF(a,T8t)&&!mF(a,A8t)&&!mF(a,D8t)&&!mF(a,I8t)&&(a=L8t),-1!=(n=mM(e,Kkt(62)))&&(a+=""+e.substr(n+1)),Nlt(t,a)):(a=e,-1==HD(e,Kkt(46))&&(-1!=(i=HD(e,Kkt(91)))&&(a=e.substr(0,i)),mF(a,IGt)||mF(a,E8t)||mF(a,C8t)||mF(a,S8t)||mF(a,T8t)||mF(a,A8t)||mF(a,D8t)||mF(a,I8t)?a=e:(a=L8t,-1!=i&&(a+=""+e.substr(i)))),Nlt(t,a),a==e&&(t.F=t.D))),4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,5,r,e))}function XUt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;if(!((p=e.b.c.length)<3)){for(f=O5(TMe,lKt,25,p,15,1),d=0,u=new Wf(e.b);u.a<u.c.c.length;)l=jz(J1(u),29),f[d++]=l.a.c.length;for(h=new _2(e.b,2),i=1;i<p-1;i++)for(EN(h.b<h.d.gc()),g=new Wf((n=jz(h.d.Xb(h.c=h.b++),29)).a),r=0,s=0,c=0;c<f[i+1];c++)if(v=jz(J1(g),10),c==f[i+1]-1||KCt(t,v,i+1,i)){for(o=f[i]-1,KCt(t,v,i+1,i)&&(o=t.c.e[jz(jz(jz(OU(t.c.b,v.p),15).Xb(0),46).a,10).p]);s<=c;){if(!KCt(t,y=jz(OU(n.a,s),10),i+1,i))for(m=jz(OU(t.c.b,y.p),15).Kc();m.Ob();)b=jz(m.Pb(),46),((a=t.c.e[jz(b.a,10).p])<r||a>o)&&RW(t.b,jz(b.b,17));++s}r=o}}}function JUt(t,e){var n;if(null==e||mF(e,VGt)||0==e.length&&t.k!=(CSt(),bEe))return null;switch(t.k.g){case 1:return ybt(e,r6t)?(cM(),yee):ybt(e,o6t)?(cM(),mee):null;case 2:try{return nht(djt(e,FZt,NGt))}catch(i){if(iO(i=dst(i),127))return null;throw $m(i)}case 4:try{return hCt(e)}catch(i){if(iO(i=dst(i),127))return null;throw $m(i)}case 3:return e;case 5:return iut(t),zAt(t,e);case 6:return iut(t),PLt(t,t.a,e);case 7:try{return(n=iIt(t)).Jf(e),n}catch(i){if(iO(i=dst(i),32))return null;throw $m(i)}default:throw $m(new Fw("Invalid type set for this layout option."))}}function QUt(t){var e,n,i,a,r,o,s;for(Mtt(),s=new Yy,n=new Wf(t);n.a<n.c.c.length;)e=jz(J1(n),140),(!s.b||e.c>=s.b.c)&&(s.b=e),(!s.c||e.c<=s.c.c)&&(s.d=s.c,s.c=e),(!s.e||e.d>=s.e.d)&&(s.e=e),(!s.f||e.d<=s.f.d)&&(s.f=e);return i=new _mt((Dst(),Joe)),e2(t,ose,new Kw(Cst(Hx(Koe,1),zGt,369,0,[i]))),o=new _mt(ese),e2(t,rse,new Kw(Cst(Hx(Koe,1),zGt,369,0,[o]))),a=new _mt(Qoe),e2(t,ase,new Kw(Cst(Hx(Koe,1),zGt,369,0,[a]))),r=new _mt(tse),e2(t,ise,new Kw(Cst(Hx(Koe,1),zGt,369,0,[r]))),MOt(i.c,Joe),MOt(a.c,Qoe),MOt(r.c,tse),MOt(o.c,ese),s.a.c=O5(Dte,zGt,1,0,5,1),pst(s.a,i.c),pst(s.a,eot(a.c)),pst(s.a,r.c),pst(s.a,eot(o.c)),s}function tVt(t){var e;switch(t.d){case 1:if(t.hj())return-2!=t.o;break;case 2:if(t.hj())return-2==t.o;break;case 3:case 5:case 4:case 6:case 7:return t.o>-2;default:return!1}switch(e=t.gj(),t.p){case 0:return null!=e&&zw(RB(e))!=KA(t.k,0);case 1:return null!=e&&jz(e,217).a!=fV(t.k)<<24>>24;case 2:return null!=e&&jz(e,172).a!=(fV(t.k)&ZZt);case 6:return null!=e&&KA(jz(e,162).a,t.k);case 5:return null!=e&&jz(e,19).a!=fV(t.k);case 7:return null!=e&&jz(e,184).a!=fV(t.k)<<16>>16;case 3:return null!=e&&Hw(_B(e))!=t.j;case 4:return null!=e&&jz(e,155).a!=t.j;default:return null==e?null!=t.n:!Odt(e,t.n)}}function eVt(t,e,n){var i,a,r,o;return t.Fk()&&t.Ek()&&HA(o=Hq(t,jz(n,56)))!==HA(n)?(t.Oi(e),t.Ui(e,j8(t,e,o)),t.rk()&&(a=jz(n,49),r=t.Dk()?t.Bk()?a.ih(t.b,Syt(jz(eet(wX(t.b),t.aj()),18)).n,jz(eet(wX(t.b),t.aj()).Yj(),26).Bj(),null):a.ih(t.b,Dgt(a.Tg(),Syt(jz(eet(wX(t.b),t.aj()),18))),null,null):a.ih(t.b,-1-t.aj(),null,null),!jz(o,49).eh()&&(i=jz(o,49),r=t.Dk()?t.Bk()?i.gh(t.b,Syt(jz(eet(wX(t.b),t.aj()),18)).n,jz(eet(wX(t.b),t.aj()).Yj(),26).Bj(),r):i.gh(t.b,Dgt(i.Tg(),Syt(jz(eet(wX(t.b),t.aj()),18))),null,r):i.gh(t.b,-1-t.aj(),null,r)),r&&r.Fi()),mI(t.b)&&t.$i(t.Zi(9,n,o,e,!1)),o):n}function nVt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;for(d=Hw(_B(yEt(t,(zYt(),xme)))),a=Hw(_B(yEt(t,Nme))),lct(f=new Js,xme,d+a),y=(u=e).d,b=u.c.i,v=u.d.i,m=QD(b.c),w=QD(v.c),r=new Lm,h=m;h<=w;h++)Fh(c=new Iyt(t),(oCt(),Cse)),lct(c,(lGt(),fhe),u),lct(c,tme,(Z_t(),WTe)),lct(c,_me,f),g=jz(OU(t.b,h),29),h==m?Zwt(c,g.a.c.length-n,g):EQ(c,g),(x=Hw(_B(yEt(u,abe))))<0&&lct(u,abe,x=0),c.o.b=x,p=i.Math.floor(x/2),HTt(s=new SCt,(wWt(),SAe)),CQ(s,c),s.n.b=p,HTt(l=new SCt,sAe),CQ(l,c),l.n.b=p,_Q(u,s),Hot(o=new hX,u),lct(o,bbe,null),kQ(o,l),_Q(o,y),Vxt(c,u,o),r.c[r.c.length]=o,u=o;return r}function iVt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b;for(s=jz(NCt(t,(wWt(),SAe)).Kc().Pb(),11).e,d=jz(NCt(t,sAe).Kc().Pb(),11).g,o=s.c.length,b=g1(jz(OU(t.j,0),11));o-- >0;){for(u1(0,s.c.length),f=jz(s.c[0],17),u1(0,d.c.length),a=x9((i=jz(d.c[0],17)).d.e,i,0),A2(f,i.d,a),kQ(i,null),_Q(i,null),h=f.a,e&&MH(h,new hI(b)),n=cmt(i.a,0);n.b!=n.d.c;)MH(h,new hI(jz(d4(n),8)));for(p=f.b,u=new Wf(i.b);u.a<u.c.c.length;)l=jz(J1(u),70),p.c[p.c.length]=l;if(g=jz(yEt(f,(zYt(),bbe)),74),r=jz(yEt(i,bbe),74))for(g||(g=new vv,lct(f,bbe,g)),c=cmt(r,0);c.b!=c.d.c;)MH(g,new hI(jz(d4(c),8)))}}function aVt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g;if(n=jz(oZ(t.b,e),124),(l=jz(jz(c7(t.r,e),21),84)).dc())return n.n.b=0,void(n.n.c=0);for(u=t.u.Hc((dAt(),eAe)),s=0,c=l.Kc(),d=null,h=0,f=0;c.Ob();)r=Hw(_B((a=jz(c.Pb(),111)).b.We((MM(),Iae)))),o=a.b.rf().a,t.A.Hc((ypt(),FAe))&&vPt(t,e),d?(g=f+d.d.c+t.w+a.d.b,s=i.Math.max(s,(cL(),iit(uJt),i.Math.abs(h-r)<=uJt||h==r||isNaN(h)&&isNaN(r)?0:g/(r-h)))):t.C&&t.C.b>0&&(s=i.Math.max(s,drt(t.C.b+a.d.b,r))),d=a,h=r,f=o;t.C&&t.C.c>0&&(g=f+t.C.c,u&&(g+=d.d.c),s=i.Math.max(s,(cL(),iit(uJt),i.Math.abs(h-1)<=uJt||1==h||isNaN(h)&&isNaN(1)?0:g/(1-h)))),n.n.b=0,n.a.a=s}function rVt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g;if(n=jz(oZ(t.b,e),124),(l=jz(jz(c7(t.r,e),21),84)).dc())return n.n.d=0,void(n.n.a=0);for(u=t.u.Hc((dAt(),eAe)),s=0,t.A.Hc((ypt(),FAe))&&wPt(t,e),c=l.Kc(),d=null,f=0,h=0;c.Ob();)o=Hw(_B((a=jz(c.Pb(),111)).b.We((MM(),Iae)))),r=a.b.rf().b,d?(g=h+d.d.a+t.w+a.d.d,s=i.Math.max(s,(cL(),iit(uJt),i.Math.abs(f-o)<=uJt||f==o||isNaN(f)&&isNaN(o)?0:g/(o-f)))):t.C&&t.C.d>0&&(s=i.Math.max(s,drt(t.C.d+a.d.d,o))),d=a,f=o,h=r;t.C&&t.C.a>0&&(g=h+t.C.a,u&&(g+=d.d.a),s=i.Math.max(s,(cL(),iit(uJt),i.Math.abs(f-1)<=uJt||1==f||isNaN(f)&&isNaN(1)?0:g/(1-f)))),n.n.d=0,n.a.b=s}function oVt(t,e,n){var i,a,r,o,s,c;for(this.g=t,s=e.d.length,c=n.d.length,this.d=O5(Rse,r1t,10,s+c,0,1),o=0;o<s;o++)this.d[o]=e.d[o];for(r=0;r<c;r++)this.d[s+r]=n.d[r];if(e.e){if(this.e=Uz(e.e),this.e.Mc(n),n.e)for(a=n.e.Kc();a.Ob();)(i=jz(a.Pb(),233))!=e&&(this.e.Hc(i)?--i.c:this.e.Fc(i))}else n.e&&(this.e=Uz(n.e),this.e.Mc(e));this.f=e.f+n.f,this.a=e.a+n.a,this.a>0?Xet(this,this.f/this.a):null!=uO(e.g,e.d[0]).a&&null!=uO(n.g,n.d[0]).a?Xet(this,(Hw(uO(e.g,e.d[0]).a)+Hw(uO(n.g,n.d[0]).a))/2):null!=uO(e.g,e.d[0]).a?Xet(this,uO(e.g,e.d[0]).a):null!=uO(n.g,n.d[0]).a&&Xet(this,uO(n.g,n.d[0]).a)}function sVt(t,e){var n,i,a,r,o,s,c,l,u;for(t.a=new jY(Irt(USe)),i=new Wf(e.a);i.a<i.c.c.length;){for(n=jz(J1(i),841),o=new Cbt(Cst(Hx(Yoe,1),zGt,81,0,[])),Wz(t.a.a,o),c=new Wf(n.d);c.a<c.c.c.length;)jVt(l=new LM(t,s=jz(J1(c),110)),jz(yEt(n.c,(lGt(),qde)),21)),cW(t.g,n)||(YG(t.g,n,new OT(s.c,s.d)),YG(t.f,n,l)),Wz(t.a.b,l),g2(o,l);for(r=new Wf(n.b);r.a<r.c.c.length;)l=new LM(t,(a=jz(J1(r),594)).kf()),YG(t.b,a,new nA(o,l)),jVt(l,jz(yEt(n.c,(lGt(),qde)),21)),a.hf()&&(jVt(u=new Ebt(t,a.hf(),1),jz(yEt(n.c,qde),21)),g2(new Cbt(Cst(Hx(Yoe,1),zGt,81,0,[])),u),XAt(t.c,a.gf(),new nA(o,u)))}return t.a}function cVt(t){var e;this.a=t,e=(oCt(),Cst(Hx(Dse,1),IZt,267,0,[Sse,Cse,kse,Tse,Ese,_se])).length,this.b=vU(rEe,[cZt,w4t],[593,146],0,[e,e],2),this.c=vU(rEe,[cZt,w4t],[593,146],0,[e,e],2),FX(this,Sse,(zYt(),Tme),Ame),tst(this,Sse,Cse,xme,Rme),PX(this,Sse,Tse,xme),PX(this,Sse,kse,xme),tst(this,Sse,Ese,Tme,Ame),FX(this,Cse,yme,vme),PX(this,Cse,Tse,yme),PX(this,Cse,kse,yme),tst(this,Cse,Ese,xme,Rme),XI(this,Tse,yme),PX(this,Tse,kse,yme),PX(this,Tse,Ese,Eme),XI(this,kse,Lme),tst(this,kse,Ese,Sme,Cme),FX(this,Ese,yme,yme),FX(this,_se,yme,vme),tst(this,_se,Sse,xme,Rme),tst(this,_se,Ese,xme,Rme),tst(this,_se,Cse,xme,Rme)}function lVt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b;if(iO(o=n.ak(),99)&&jz(o,18).Bb&$Kt&&(h=jz(n.dd(),49),(p=tdt(t.e,h))!=h)){if(wO(t,e,ckt(t,e,u=X4(o,p))),d=null,mI(t.e)&&(i=jUt((TSt(),KLe),t.e.Tg(),o))!=eet(t.e.Tg(),t.c)){for(b=rNt(t.e.Tg(),o),s=0,r=jz(t.g,119),c=0;c<e;++c)a=r[c],b.rl(a.ak())&&++s;(d=new d3(t.e,9,i,h,p,s,!1)).Ei(new L9(t.e,9,t.c,n,u,e,!1))}return(f=Syt(g=jz(o,18)))?(d=h.ih(t.e,Dgt(h.Tg(),f),null,d),d=jz(p,49).gh(t.e,Dgt(p.Tg(),f),null,d)):g.Bb&l7t&&(l=-1-Dgt(t.e.Tg(),g),d=h.ih(t.e,l,null,null),!jz(p,49).eh()&&(d=jz(p,49).gh(t.e,l,null,d))),d&&d.Fi(),u}return n}function uVt(t){var e,n,a,r,o,s,c,l;for(o=new Wf(t.a.b);o.a<o.c.c.length;)(r=jz(J1(o),81)).b.c=r.g.c,r.b.d=r.g.d;for(l=new OT(BKt,BKt),e=new OT(PKt,PKt),a=new Wf(t.a.b);a.a<a.c.c.length;)n=jz(J1(a),81),l.a=i.Math.min(l.a,n.g.c),l.b=i.Math.min(l.b,n.g.d),e.a=i.Math.max(e.a,n.g.c+n.g.b),e.b=i.Math.max(e.b,n.g.d+n.g.a);for(c=RY(t.c).a.nc();c.Ob();)s=jz(c.Pb(),46),n=jz(s.b,81),l.a=i.Math.min(l.a,n.g.c),l.b=i.Math.min(l.b,n.g.d),e.a=i.Math.max(e.a,n.g.c+n.g.b),e.b=i.Math.max(e.b,n.g.d+n.g.a);t.d=zN(new OT(l.a,l.b)),t.e=qP(new OT(e.a,e.b),l),t.a.a.c=O5(Dte,zGt,1,0,5,1),t.a.b.c=O5(Dte,zGt,1,0,5,1)}function dVt(t){var e,n,i;for(wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new Id])),n=new xh(t),i=0;i<n.a.length;++i)mF(e=ftt(n,i).je().a,"layered")?wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new sd])):mF(e,"force")?wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new Uu])):mF(e,"stress")?wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new qu])):mF(e,"mrtree")?wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new kd])):mF(e,"radial")?wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new md])):mF(e,"disco")?wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new Hu,new $u])):mF(e,"sporeOverlap")||mF(e,"sporeCompaction")?wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new xd])):mF(e,"rectpacking")&&wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new Sd]))}function hVt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m;if(h=new hI(t.o),m=e.a/h.a,s=e.b/h.b,p=e.a-h.a,r=e.b-h.b,n)for(a=HA(yEt(t,(zYt(),tme)))===HA((Z_t(),WTe)),g=new Wf(t.j);g.a<g.c.c.length;)switch(f=jz(J1(g),11),f.j.g){case 1:a||(f.n.a*=m);break;case 2:f.n.a+=p,a||(f.n.b*=s);break;case 3:a||(f.n.a*=m),f.n.b+=r;break;case 4:a||(f.n.b*=s)}for(l=new Wf(t.b);l.a<l.c.c.length;)u=(c=jz(J1(l),70)).n.a+c.o.a/2,d=c.n.b+c.o.b/2,(b=u/h.a)+(o=d/h.b)>=1&&(b-o>0&&d>=0?(c.n.a+=p,c.n.b+=r*o):b-o<0&&u>=0&&(c.n.a+=p*b,c.n.b+=r));t.o.a=e.a,t.o.b=e.b,lct(t,(zYt(),Fbe),(ypt(),new ZF(i=jz(YR($Ae),9),jz(kP(i,i.length),9),0)))}function fVt(t,e,n,i,a,r){if(null!=e&&Wft(e,TIe,AIe))throw $m(new Pw("invalid scheme: "+e));if(!(t||null!=n&&-1==HD(n,Kkt(35))&&n.length>0&&(d1(0,n.length),47!=n.charCodeAt(0))))throw $m(new Pw("invalid opaquePart: "+n));if(t&&(null==e||!Ok(vIe,e.toLowerCase()))&&null!=n&&Wft(n,DIe,IIe))throw $m(new Pw(s8t+n));if(t&&null!=e&&Ok(vIe,e.toLowerCase())&&!S_t(n))throw $m(new Pw(s8t+n));if(!qft(i))throw $m(new Pw("invalid device: "+i));if(!But(a))throw $m(new Pw(null==a?"invalid segments: null":"invalid segment: "+cut(a)));if(null!=r&&-1!=HD(r,Kkt(35)))throw $m(new Pw("invalid query: "+r))}function gVt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;for(Akt(e,"Calculate Graph Size",1),e.n&&t&&y0(e,o2(t),($lt(),oDe)),c=JJt,l=JJt,o=Q4t,s=Q4t,h=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));h.e!=h.i.gc();)p=(u=jz(wmt(h),33)).i,b=u.j,y=u.g,a=u.f,r=jz(JIt(u,(cGt(),DCe)),142),c=i.Math.min(c,p-r.b),l=i.Math.min(l,b-r.d),o=i.Math.max(o,p+y+r.c),s=i.Math.max(s,b+a+r.a);for(f=new OT(c-(g=jz(JIt(t,(cGt(),qCe)),116)).b,l-g.d),d=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));d.e!=d.i.gc();)Cnt(u=jz(wmt(d),33),u.i-f.a),Snt(u,u.j-f.b);m=o-c+(g.b+g.c),n=s-l+(g.d+g.a),Ent(t,m),knt(t,n),e.n&&t&&y0(e,o2(t),($lt(),oDe))}function pVt(t){var e,n,i,a,r,o,s,c,l,u;for(i=new Lm,o=new Wf(t.e.a);o.a<o.c.c.length;){for(u=0,(a=jz(J1(o),121)).k.c=O5(Dte,zGt,1,0,5,1),n=new Wf(wft(a));n.a<n.c.c.length;)(e=jz(J1(n),213)).f&&(Wz(a.k,e),++u);1==u&&(i.c[i.c.length]=a)}for(r=new Wf(i);r.a<r.c.c.length;)for(a=jz(J1(r),121);1==a.k.c.length;){for(l=jz(J1(new Wf(a.k)),213),t.b[l.c]=l.g,s=l.d,c=l.e,n=new Wf(wft(a));n.a<n.c.c.length;)Odt(e=jz(J1(n),213),l)||(e.f?s==e.d||c==e.e?t.b[l.c]-=t.b[e.c]-e.g:t.b[l.c]+=t.b[e.c]-e.g:a==s?e.d==a?t.b[l.c]+=e.g:t.b[l.c]-=e.g:e.d==a?t.b[l.c]-=e.g:t.b[l.c]+=e.g);y9(s.k,l),y9(c.k,l),a=s==a?l.e:l.d}}function bVt(t,e){var n,i,a,r,o,s,c,l,u,d,h;if(null==e||0==e.length)return null;if(!(r=jz(kJ(t.f,e),23))){for(a=new Bf(new Tf(t.d).a.vc().Kc());a.a.Ob();)if(o=jz(a.a.Pb(),42),s=(n=jz(o.dd(),23)).f,h=e.length,mF(s.substr(s.length-h,h),e)&&(e.length==s.length||46==lZ(s,s.length-e.length-1))){if(r)return null;r=n}if(!r)for(i=new Bf(new Tf(t.d).a.vc().Kc());i.a.Ob();)if(o=jz(i.a.Pb(),42),null!=(d=(n=jz(o.dd(),23)).g))for(l=0,u=(c=d).length;l<u;++l)if(s=c[l],h=e.length,mF(s.substr(s.length-h,h),e)&&(e.length==s.length||46==lZ(s,s.length-e.length-1))){if(r)return null;r=n}r&&mQ(t.f,e,r)}return r}function mVt(t,e){var n,i,a,r,o;for(n=new Sx,o=!1,r=0;r<e.length;r++)if(d1(r,e.length),32!=(i=e.charCodeAt(r)))o?39==i?r+1<e.length&&(d1(r+1,e.length),39==e.charCodeAt(r+1))?(n.a+=String.fromCharCode(i),++r):o=!1:n.a+=String.fromCharCode(i):HD("GyMLdkHmsSEcDahKzZv",Kkt(i))>0?(Cmt(t,n,0),n.a+=String.fromCharCode(i),Cmt(t,n,a=abt(e,r)),r+=a-1):39==i?r+1<e.length&&(d1(r+1,e.length),39==e.charCodeAt(r+1))?(n.a+="'",++r):o=!0:n.a+=String.fromCharCode(i);else for(Cmt(t,n,0),n.a+=" ",Cmt(t,n,0);r+1<e.length&&(d1(r+1,e.length),32==e.charCodeAt(r+1));)++r;Cmt(t,n,0),bkt(t)}function yVt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m;if(Akt(n,"Network simplex layering",1),t.b=e,m=4*jz(yEt(e,(zYt(),Ome)),19).a,(b=t.b.a).c.length<1)zCt(n);else{for(p=null,r=cmt(o=TFt(t,b),0);r.b!=r.d.c;){for(a=jz(d4(r),15),c=m*CJ(i.Math.sqrt(a.gc())),YFt(Gx(Kx(Zx(jj(s=sjt(a)),c),p),!0),yrt(n,1)),h=t.b.b,g=new Wf(s.a);g.a<g.c.c.length;){for(f=jz(J1(g),121);h.c.length<=f.e;)vV(h,h.c.length,new $Y(t.b));EQ(jz(f.f,10),jz(OU(h,f.e),29))}if(o.b>1)for(p=O5(TMe,lKt,25,t.b.b.c.length,15,1),d=0,u=new Wf(t.b.b);u.a<u.c.c.length;)l=jz(J1(u),29),p[d++]=l.a.c.length}b.c=O5(Dte,zGt,1,0,5,1),t.a=null,t.b=null,t.c=null,zCt(n)}}function vVt(t){var e,n,a,r,o,s,c;for(e=0,o=new Wf(t.b.a);o.a<o.c.c.length;)(a=jz(J1(o),189)).b=0,a.c=0;for(RCt(t,0),egt(t,t.g),wMt(t.c),Xw(t.c),jdt(),n=FSe,NFt(tD(kqt(NFt(tD(kqt(NFt(kqt(t.c,n)),xht(n)))),n))),kqt(t.c,FSe),$ht(t,t.g),wEt(t,0),bHt(t,0),kLt(t,1),RCt(t,1),egt(t,t.d),wMt(t.c),s=new Wf(t.b.a);s.a<s.c.c.length;)a=jz(J1(s),189),e+=i.Math.abs(a.c);for(c=new Wf(t.b.a);c.a<c.c.c.length;)(a=jz(J1(c),189)).b=0,a.c=0;for(n=zSe,NFt(tD(kqt(NFt(tD(kqt(NFt(Xw(kqt(t.c,n))),xht(n)))),n))),kqt(t.c,FSe),$ht(t,t.d),wEt(t,1),bHt(t,1),kLt(t,0),Xw(t.c),r=new Wf(t.b.a);r.a<r.c.c.length;)a=jz(J1(r),189),e+=i.Math.abs(a.c);return e}function wVt(t,e){var n,i,a,r,o,s,c,l,u;if(null!=(l=e).b&&null!=t.b){for(_Lt(t),HHt(t),_Lt(l),HHt(l),n=O5(TMe,lKt,25,t.b.length+l.b.length,15,1),u=0,i=0,o=0;i<t.b.length&&o<l.b.length;)if(a=t.b[i],r=t.b[i+1],s=l.b[o],c=l.b[o+1],r<s)i+=2;else if(r>=s&&a<=c)s<=a&&r<=c?(n[u++]=a,n[u++]=r,i+=2):s<=a?(n[u++]=a,n[u++]=c,t.b[i]=c+1,o+=2):r<=c?(n[u++]=s,n[u++]=r,i+=2):(n[u++]=s,n[u++]=c,t.b[i]=c+1);else{if(!(c<a))throw $m(new fw("Token#intersectRanges(): Internal Error: ["+t.b[i]+","+t.b[i+1]+"] & ["+l.b[o]+","+l.b[o+1]+"]"));o+=2}for(;i<t.b.length;)n[u++]=t.b[i++],n[u++]=t.b[i++];t.b=O5(TMe,lKt,25,u,15,1),rHt(n,0,t.b,0,u)}}function xVt(t){var e,n,a,r,o,s,c;for(e=new Lm,t.g=new Lm,t.d=new Lm,s=new olt(new Ef(t.f.b).a);s.b;)Wz(e,jz(jz((o=tnt(s)).dd(),46).b,81)),fI(jz(o.cd(),594).gf())?Wz(t.d,jz(o.dd(),46)):Wz(t.g,jz(o.dd(),46));for(egt(t,t.d),egt(t,t.g),t.c=new cDt(t.b),tR(t.c,(bE(),Hoe)),$ht(t,t.d),$ht(t,t.g),pst(e,t.c.a.b),t.e=new OT(BKt,BKt),t.a=new OT(PKt,PKt),a=new Wf(e);a.a<a.c.c.length;)n=jz(J1(a),81),t.e.a=i.Math.min(t.e.a,n.g.c),t.e.b=i.Math.min(t.e.b,n.g.d),t.a.a=i.Math.max(t.a.a,n.g.c+n.g.b),t.a.b=i.Math.max(t.a.b,n.g.d+n.g.a);Qx(t.c,new xe),c=0;do{r=vVt(t),++c}while((c<2||r>PZt)&&c<10);Qx(t.c,new Re),vVt(t),SW(t.c),uVt(t.f)}function RVt(t,e,n){var i,a,r,o,s,c,l,u,d,h;if(zw(RB(yEt(n,(zYt(),hbe)))))for(a=new Wf(n.j);a.a<a.c.c.length;)for(s=0,c=(o=X0(jz(J1(a),11).g)).length;s<c;++s)(r=o[s]).d.i==n&&zw(RB(yEt(r,fbe)))&&(u=r.c,(l=jz(NY(t.b,u),10))||(lct(l=hYt(u,(Z_t(),ZTe),u.j,-1,null,null,u.o,jz(yEt(e,Vpe),103),e),(lGt(),fhe),u),YG(t.b,u,l),Wz(e.a,l)),h=r.d,(d=jz(NY(t.b,h),10))||(lct(d=hYt(h,(Z_t(),ZTe),h.j,1,null,null,h.o,jz(yEt(e,Vpe),103),e),(lGt(),fhe),h),YG(t.b,h,d),Wz(e.a,d)),kQ(i=W6(r),jz(OU(l.j,0),11)),_Q(i,jz(OU(d.j,0),11)),XAt(t.a,r,new Ij(i,e,(rit(),Hye))),jz(yEt(e,(lGt(),Xde)),21).Fc((hBt(),dde)))}function _Vt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g;for(Akt(n,"Label dummy switching",1),i=jz(yEt(e,(zYt(),Ype)),227),brt(e),a=xLt(e,i),t.a=O5(LMe,HKt,25,e.b.c.length,15,1),ISt(),u=0,f=(s=Cst(Hx(iue,1),IZt,227,0,[Jle,tue,Xle,Qle,eue,Kle])).length;u<f;++u)if(((r=s[u])==eue||r==Kle||r==Qle)&&!jz(kM(a.a,r)?a.b[r.g]:null,15).dc()){Jrt(t,e);break}for(d=0,g=(c=Cst(Hx(iue,1),IZt,227,0,[Jle,tue,Xle,Qle,eue,Kle])).length;d<g;++d)(r=c[d])==eue||r==Kle||r==Qle||UFt(t,jz(kM(a.a,r)?a.b[r.g]:null,15));for(l=0,h=(o=Cst(Hx(iue,1),IZt,227,0,[Jle,tue,Xle,Qle,eue,Kle])).length;l<h;++l)((r=o[l])==eue||r==Kle||r==Qle)&&UFt(t,jz(kM(a.a,r)?a.b[r.g]:null,15));t.a=null,zCt(n)}function kVt(t,e){var n,i,a,r,o,s,c,l,u,d,h;switch(t.k.g){case 1:if(i=jz(yEt(t,(lGt(),fhe)),17),(n=jz(yEt(i,ghe),74))?zw(RB(yEt(i,Che)))&&(n=Xct(n)):n=new vv,l=jz(yEt(t,che),11)){if(e<=(u=Dct(Cst(Hx(EEe,1),cZt,8,0,[l.i.n,l.n,l.a]))).a)return u.b;n6(n,u,n.a,n.a.a)}if(d=jz(yEt(t,lhe),11)){if((h=Dct(Cst(Hx(EEe,1),cZt,8,0,[d.i.n,d.n,d.a]))).a<=e)return h.b;n6(n,h,n.c.b,n.c)}if(n.b>=2){for(o=jz(d4(c=cmt(n,0)),8),s=jz(d4(c),8);s.a<e&&c.b!=c.d.c;)o=s,s=jz(d4(c),8);return o.b+(e-o.a)/(s.a-o.a)*(s.b-o.b)}break;case 3:switch(a=(r=jz(yEt(jz(OU(t.j,0),11),(lGt(),fhe)),11)).i,r.j.g){case 1:return a.n.b;case 3:return a.n.b+a.o.b}}return jRt(t).b}function EVt(t){var e,n,i,a,r,o,s,c,l,d;for(r=new Wf(t.d.b);r.a<r.c.c.length;)for(s=new Wf(jz(J1(r),29).a);s.a<s.c.c.length;)!zw(RB(yEt(o=jz(J1(s),10),(zYt(),Rpe))))||c4(lft(o))?(a=new VZ(o.n.a-o.d.b,o.n.b-o.d.d,o.o.a+o.d.b+o.d.c,o.o.b+o.d.d+o.d.a),e=TM(eE(Qk(tE(new Wy,o),a),fle),t.a),SM(Jk(Wnt(new qy,Cst(Hx(cie,1),zGt,57,0,[e])),e),t.a),c=new Mm,YG(t.e,e,c),(n=F4(new oq(XO(uft(o).a.Kc(),new u)))-F4(new oq(XO(dft(o).a.Kc(),new u))))<0?qst(c,!0,(jdt(),FSe)):n>0&&qst(c,!0,(jdt(),jSe)),o.k==(oCt(),kse)&&hZ(c),YG(t.f,o,e)):((l=(i=jz(eX(lft(o)),17)).c.i)==o&&(l=i.d.i),d=new nA(l,qP(jL(o.n),l.n)),YG(t.b,o,d))}function CVt(t,e,n){var a,r,o,s,c,l,u,d;switch(Akt(n,"Node promotion heuristic",1),t.g=e,vWt(t),t.q=jz(yEt(e,(zYt(),kbe)),260),d=jz(yEt(t.g,_be),19).a,o=new ui,t.q.g){case 2:case 1:default:FHt(t,o);break;case 3:for(t.q=(cMt(),Aye),FHt(t,o),l=0,c=new Wf(t.a);c.a<c.c.c.length;)s=jz(J1(c),19),l=i.Math.max(l,s.a);l>t.j&&(t.q=_ye,FHt(t,o));break;case 4:for(t.q=(cMt(),Aye),FHt(t,o),u=0,r=new Wf(t.b);r.a<r.c.c.length;)a=_B(J1(r)),u=i.Math.max(u,(vG(a),a));u>t.k&&(t.q=Cye,FHt(t,o));break;case 6:FHt(t,new op(CJ(i.Math.ceil(t.f.length*d/100))));break;case 5:FHt(t,new sp(CJ(i.Math.ceil(t.d*d/100))))}sBt(t,e),zCt(n)}function SVt(t,e,n){var i,a,r,o;this.j=t,this.e=H_t(t),this.o=this.j.e,this.i=!!this.o,this.p=this.i?jz(OU(n,bG(this.o).p),214):null,a=jz(yEt(t,(lGt(),Xde)),21),this.g=a.Hc((hBt(),dde)),this.b=new Lm,this.d=new fpt(this.e),o=jz(yEt(this.j,khe),230),this.q=zot(e,o,this.e),this.k=new aQ(this),r=r7(Cst(Hx(ble,1),zGt,225,0,[this,this.d,this.k,this.q])),e!=(sit(),Ave)||zw(RB(yEt(t,(zYt(),Ope))))?e==Ave&&zw(RB(yEt(t,(zYt(),Ope))))?(i=new q_t(this.e),r.c[r.c.length]=i,this.c=new bat(i,o,jz(this.q,402))):this.c=new bS(e,this):(i=new q_t(this.e),r.c[r.c.length]=i,this.c=new H2(i,o,jz(this.q,402))),Wz(r,this.c),SHt(r,this.e),this.s=fYt(this.k)}function TVt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;for(h=(l=jz(eO(new hb(cmt(new db(e).a.d,0))),86))?jz(yEt(l,(HUt(),ixe)),86):null,a=1;l&&h;){for(o=0,y=0,n=l,i=h,r=0;r<a;r++)n=H5(n),i=H5(i),y+=Hw(_B(yEt(n,(HUt(),oxe)))),o+=Hw(_B(yEt(i,oxe)));if(m=Hw(_B(yEt(h,(HUt(),lxe)))),b=Hw(_B(yEt(l,lxe))),u=x6(l,h),0<(d=m+o+t.a+u-b-y)){for(s=e,c=0;s&&s!=i;)++c,s=jz(yEt(s,axe),86);if(!s)return;for(p=d/c,s=e;s!=i;)g=Hw(_B(yEt(s,lxe)))+d,lct(s,lxe,g),f=Hw(_B(yEt(s,oxe)))+d,lct(s,oxe,f),d-=p,s=jz(yEt(s,axe),86)}++a,h=(l=0==l.d.b?JFt(new db(e),a):jz(eO(new hb(cmt(new db(l).a.d,0))),86))?jz(yEt(l,ixe),86):null}}function AVt(t,e){var n,i,a,r,o,s,c,l,d;for(s=!0,a=0,c=t.f[e.p],l=e.o.b+t.n,n=t.c[e.p][2],i6(t.a,c,nht(jz(OU(t.a,c),19).a-1+n)),i6(t.b,c,Hw(_B(OU(t.b,c)))-l+n*t.e),++c>=t.i?(++t.i,Wz(t.a,nht(1)),Wz(t.b,l)):(i=t.c[e.p][1],i6(t.a,c,nht(jz(OU(t.a,c),19).a+1-i)),i6(t.b,c,Hw(_B(OU(t.b,c)))+l-i*t.e)),(t.q==(cMt(),_ye)&&(jz(OU(t.a,c),19).a>t.j||jz(OU(t.a,c-1),19).a>t.j)||t.q==Cye&&(Hw(_B(OU(t.b,c)))>t.k||Hw(_B(OU(t.b,c-1)))>t.k))&&(s=!1),r=new oq(XO(uft(e).a.Kc(),new u));gIt(r);)o=jz(V6(r),17).c.i,t.f[o.p]==c&&(a+=jz((d=AVt(t,o)).a,19).a,s=s&&zw(RB(d.b)));return t.f[e.p]=c,new nA(nht(a+=t.c[e.p][0]),(cM(),!!s))}function DVt(t,e,n,a,r){var o,s,c,l,u,d,h,f,g,p,b,m,y;for(h=new Om,s=new Lm,iAt(t,n,t.d.fg(),s,h),iAt(t,a,t.d.gg(),s,h),t.b=.2*(b=$It(htt(new NU(null,new h1(s,16)),new So)),m=$It(htt(new NU(null,new h1(s,16)),new To)),i.Math.min(b,m)),o=0,c=0;c<s.c.length-1;c++)for(u1(c,s.c.length),l=jz(s.c[c],112),p=c+1;p<s.c.length;p++)o+=pHt(t,l,(u1(p,s.c.length),jz(s.c[p],112)));for(f=jz(yEt(e,(lGt(),khe)),230),o>=2&&(y=ZOt(s,!0,f),!t.e&&(t.e=new ub(t)),cbt(t.e,y,s,t.b)),nkt(s,f),aqt(s),g=-1,d=new Wf(s);d.a<d.c.c.length;)u=jz(J1(d),112),!(i.Math.abs(u.s-u.c)<dQt)&&(g=i.Math.max(g,u.o),t.d.dg(u,r,t.c));return t.d.a.a.$b(),g+1}function IVt(t,e){var n,i;Hw(_B(yEt(e,(zYt(),yme))))<2&&lct(e,yme,2),jz(yEt(e,Vpe),103)==(jdt(),$Se)&&lct(e,Vpe,Yht(e)),0==(n=jz(yEt(e,hme),19)).a?lct(e,(lGt(),khe),new cft):lct(e,(lGt(),khe),new C3(n.a)),null==RB(yEt(e,Obe))&&lct(e,Obe,(cM(),HA(yEt(e,Xpe))===HA((kft(),ZSe)))),Kk(new NU(null,new h1(e.a,16)),new Ng(t)),Kk(htt(new NU(null,new h1(e.b,16)),new ye),new Bg(t)),i=new cVt(e),lct(e,(lGt(),Ahe),i),c2(t.a),CW(t.a,(vEt(),Boe),jz(yEt(e,Hpe),246)),CW(t.a,Poe,jz(yEt(e,Ebe),246)),CW(t.a,Foe,jz(yEt(e,zpe),246)),CW(t.a,joe,jz(yEt(e,Pbe),246)),CW(t.a,$oe,Eot(jz(yEt(e,Xpe),218))),aI(t.a,LYt(e)),lct(e,_he,IUt(t.a,e))}function LVt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R;return h=t.c[e],f=t.c[n],!((g=jz(yEt(h,(lGt(),ihe)),15))&&0!=g.gc()&&g.Hc(f)||(p=h.k!=(oCt(),Cse)&&f.k!=Cse,b=jz(yEt(h,nhe),10),m=jz(yEt(f,nhe),10),y=b!=m,v=!!b&&b!=h||!!m&&m!=f,w=svt(h,(wWt(),cAe)),x=svt(f,EAe),v|=svt(h,EAe)||svt(f,cAe),R=v&&y||w||x,p&&R)||h.k==(oCt(),Tse)&&f.k==Sse||f.k==(oCt(),Tse)&&h.k==Sse)&&(u=t.c[e],r=t.c[n],a=uRt(t.e,u,r,(wWt(),SAe)),c=uRt(t.i,u,r,sAe),_Mt(t.f,u,r),l=Olt(t.b,u,r)+jz(a.a,19).a+jz(c.a,19).a+t.f.d,s=Olt(t.b,r,u)+jz(a.b,19).a+jz(c.b,19).a+t.f.b,t.a&&(d=jz(yEt(u,fhe),11),o=jz(yEt(r,fhe),11),l+=jz((i=Hwt(t.g,d,o)).a,19).a,s+=jz(i.b,19).a),l>s)}function OVt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b;for(n=jz(yEt(t,(zYt(),tme)),98),s=t.f,o=t.d,c=s.a+o.b+o.c,l=0-o.d-t.c.b,d=s.b+o.d+o.a-t.c.b,u=new Lm,h=new Lm,r=new Wf(e);r.a<r.c.c.length;){switch(a=jz(J1(r),10),n.g){case 1:case 2:case 3:FMt(a);break;case 4:g=(f=jz(yEt(a,Jbe),8))?f.a:0,a.n.a=c*Hw(_B(yEt(a,(lGt(),Rhe))))-g,Xot(a,!0,!1);break;case 5:b=(p=jz(yEt(a,Jbe),8))?p.a:0,a.n.a=Hw(_B(yEt(a,(lGt(),Rhe))))-b,Xot(a,!0,!1),s.a=i.Math.max(s.a,a.n.a+a.o.a/2)}switch(jz(yEt(a,(lGt(),Gde)),61).g){case 1:a.n.b=l,u.c[u.c.length]=a;break;case 3:a.n.b=d,h.c[h.c.length]=a}}switch(n.g){case 1:case 2:Bdt(u,t),Bdt(h,t);break;case 3:Pdt(u,t),Pdt(h,t)}}function MVt(t,e){var n,i,a,r,o,s,c,l,u,d;for(u=new Lm,d=new Im,r=null,a=0,i=0;i<e.length;++i)switch(n=e[i],Blt(r,n)&&(a=Spt(t,d,u,Bve,a)),IN(n,(lGt(),nhe))&&(r=jz(yEt(n,nhe),10)),n.k.g){case 0:for(c=zI(Bz(rft(n,(wWt(),cAe)),new Nr));Jit(c);)o=jz(E9(c),11),t.d[o.p]=a++,u.c[u.c.length]=o;for(a=Spt(t,d,u,Bve,a),l=zI(Bz(rft(n,EAe),new Nr));Jit(l);)o=jz(E9(l),11),t.d[o.p]=a++,u.c[u.c.length]=o;break;case 3:rft(n,Nve).dc()||(o=jz(rft(n,Nve).Xb(0),11),t.d[o.p]=a++,u.c[u.c.length]=o),rft(n,Bve).dc()||f4(d,n);break;case 1:for(s=rft(n,(wWt(),SAe)).Kc();s.Ob();)o=jz(s.Pb(),11),t.d[o.p]=a++,u.c[u.c.length]=o;rft(n,sAe).Jc(new XS(d,n))}return Spt(t,d,u,Bve,a),u}function NVt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;for(u=BKt,d=BKt,c=PKt,l=PKt,f=new Wf(e.i);f.a<f.c.c.length;)h=jz(J1(f),65),kI(r=jz(jz(NY(t.g,h.a),46).b,33),h.b.c,h.b.d),u=i.Math.min(u,r.i),d=i.Math.min(d,r.j),c=i.Math.max(c,r.i+r.g),l=i.Math.max(l,r.j+r.f);for(g=jz(JIt(t.c,(kEt(),dke)),116),PWt(t.c,c-u+(g.b+g.c),l-d+(g.d+g.a),!0,!0),dEt(t.c,-u+g.b,-d+g.d),a=new AO(eK(t.c));a.e!=a.i.gc();)s=aBt(n=jz(wmt(a),79),!0,!0),p=CEt(n),m=AEt(n),b=new OT(p.i+p.g/2,p.j+p.f/2),o=new OT(m.i+m.g/2,m.j+m.f/2),qxt(y=qP(new OT(o.a,o.b),b),p.g,p.f),VP(b,y),qxt(v=qP(new OT(b.a,b.b),o),m.g,m.f),VP(o,v),CI(s,b.a,b.b),EI(s,o.a,o.b)}function BVt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f;if(t.c=t.d,h=null==(f=RB(yEt(e,(zYt(),fme))))||(vG(f),f),r=jz(yEt(e,(lGt(),Xde)),21).Hc((hBt(),dde)),n=!((a=jz(yEt(e,tme),98))==(Z_t(),qTe)||a==YTe||a==WTe),!h||!n&&r)d=new Kw(Cst(Hx(wse,1),XQt,37,0,[e]));else{for(u=new Wf(e.a);u.a<u.c.c.length;)jz(J1(u),10).p=0;for(d=new Lm,l=new Wf(e.a);l.a<l.c.c.length;)if(i=Ljt(t,jz(J1(l),10),null)){for(Hot(c=new yit,e),lct(c,qde,jz(i.b,21)),vK(c.d,e.d),lct(c,$be,null),s=jz(i.a,15).Kc();s.Ob();)o=jz(s.Pb(),10),Wz(c.a,o),o.a=c;d.Fc(c)}r&&(HA(yEt(e,Cpe))===HA(($dt(),dse))?t.c=t.b:t.c=t.a)}return HA(yEt(e,Cpe))!==HA(($dt(),fse))&&(kK(),d.ad(new Me)),d}function PVt(t){LE(t,new kkt(mR(fR(bR(hR(pR(gR(new bs,Z4t),"ELK Mr. Tree"),"Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."),new No),K4t),Qht((lIt(),KDe))))),r2(t,Z4t,ZJt,Txe),r2(t,Z4t,mQt,20),r2(t,Z4t,GJt,gQt),r2(t,Z4t,bQt,nht(1)),r2(t,Z4t,wQt,(cM(),!0)),r2(t,Z4t,W2t,ymt(xxe)),r2(t,Z4t,CQt,ymt(_xe)),r2(t,Z4t,$Qt,ymt(kxe)),r2(t,Z4t,EQt,ymt(Exe)),r2(t,Z4t,SQt,ymt(Rxe)),r2(t,Z4t,kQt,ymt(Cxe)),r2(t,Z4t,TQt,ymt(Axe)),r2(t,Z4t,W4t,ymt(Mxe)),r2(t,Z4t,Y4t,ymt(Ixe))}function FVt(t){t.q||(t.q=!0,t.p=wot(t,0),t.a=wot(t,1),Pat(t.a,0),t.f=wot(t,2),Pat(t.f,1),Bat(t.f,2),t.n=wot(t,3),Bat(t.n,3),Bat(t.n,4),Bat(t.n,5),Bat(t.n,6),t.g=wot(t,4),Pat(t.g,7),Bat(t.g,8),t.c=wot(t,5),Pat(t.c,7),Pat(t.c,8),t.i=wot(t,6),Pat(t.i,9),Pat(t.i,10),Pat(t.i,11),Pat(t.i,12),Bat(t.i,13),t.j=wot(t,7),Pat(t.j,9),t.d=wot(t,8),Pat(t.d,3),Pat(t.d,4),Pat(t.d,5),Pat(t.d,6),Bat(t.d,7),Bat(t.d,8),Bat(t.d,9),Bat(t.d,10),t.b=wot(t,9),Bat(t.b,0),Bat(t.b,1),t.e=wot(t,10),Bat(t.e,1),Bat(t.e,2),Bat(t.e,3),Bat(t.e,4),Pat(t.e,5),Pat(t.e,6),Pat(t.e,7),Pat(t.e,8),Pat(t.e,9),Pat(t.e,10),Bat(t.e,11),t.k=wot(t,11),Bat(t.k,0),Bat(t.k,1),t.o=xot(t,12),t.s=xot(t,13))}function jVt(t,e){e.dc()&&tH(t.j,!0,!0,!0,!0),Odt(e,(wWt(),gAe))&&tH(t.j,!0,!0,!0,!1),Odt(e,lAe)&&tH(t.j,!1,!0,!0,!0),Odt(e,RAe)&&tH(t.j,!0,!0,!1,!0),Odt(e,kAe)&&tH(t.j,!0,!1,!0,!0),Odt(e,pAe)&&tH(t.j,!1,!0,!0,!1),Odt(e,uAe)&&tH(t.j,!1,!0,!1,!0),Odt(e,_Ae)&&tH(t.j,!0,!1,!1,!0),Odt(e,xAe)&&tH(t.j,!0,!1,!0,!1),Odt(e,vAe)&&tH(t.j,!0,!0,!0,!0),Odt(e,hAe)&&tH(t.j,!0,!0,!0,!0),Odt(e,vAe)&&tH(t.j,!0,!0,!0,!0),Odt(e,dAe)&&tH(t.j,!0,!0,!0,!0),Odt(e,wAe)&&tH(t.j,!0,!0,!0,!0),Odt(e,yAe)&&tH(t.j,!0,!0,!0,!0),Odt(e,mAe)&&tH(t.j,!0,!0,!0,!0)}function $Vt(t,e,n,i,a){var r,o,s,c,l,u,d,h,f,g,p,b;for(r=new Lm,l=new Wf(i);l.a<l.c.c.length;)if(o=null,(s=jz(J1(l),441)).f==(rit(),Hye))for(g=new Wf(s.e);g.a<g.c.c.length;)bG(b=(f=jz(J1(g),17)).d.i)==e?Eet(t,e,s,f,s.b,f.d):!n||fot(b,n)?UEt(t,e,s,i,f):((h=LHt(t,e,n,f,s.b,Hye,o))!=o&&(r.c[r.c.length]=h),h.c&&(o=h));else for(d=new Wf(s.e);d.a<d.c.c.length;)if(bG(p=(u=jz(J1(d),17)).c.i)==e)Eet(t,e,s,u,u.c,s.b);else{if(!n||fot(p,n))continue;(h=LHt(t,e,n,u,s.b,zye,o))!=o&&(r.c[r.c.length]=h),h.c&&(o=h)}for(c=new Wf(r);c.a<c.c.c.length;)s=jz(J1(c),441),-1!=x9(e.a,s.a,0)||Wz(e.a,s.a),s.c&&(a.c[a.c.length]=s)}function zVt(t,e,n){var i,a,r,o,s,c,l,u;for(c=new Lm,s=new Wf(e.a);s.a<s.c.c.length;)for(u=rft(jz(J1(s),10),(wWt(),sAe)).Kc();u.Ob();)for(a=new Wf(jz(u.Pb(),11).g);a.a<a.c.c.length;)(d6(i=jz(J1(a),17))||i.c.i.c!=i.d.i.c)&&!d6(i)&&i.d.i.c==n&&(c.c[c.c.length]=i);for(o=eot(n.a).Kc();o.Ob();)for(u=rft(jz(o.Pb(),10),(wWt(),SAe)).Kc();u.Ob();)for(a=new Wf(jz(u.Pb(),11).e);a.a<a.c.c.length;)if((d6(i=jz(J1(a),17))||i.c.i.c!=i.d.i.c)&&!d6(i)&&i.c.i.c==e){for(EN((l=new _2(c,c.c.length)).b>0),r=jz(l.a.Xb(l.c=--l.b),17);r!=i&&l.b>0;)t.a[r.p]=!0,t.a[i.p]=!0,EN(l.b>0),r=jz(l.a.Xb(l.c=--l.b),17);l.b>0&&lG(l)}}function HVt(t,e,n){var i,a,r,o,s,c,l,u,d;if(t.a!=e.Aj())throw $m(new Pw(g7t+e.ne()+p7t));if(i=Sdt((TSt(),KLe),e).$k())return i.Aj().Nh().Ih(i,n);if(o=Sdt(KLe,e).al()){if(null==n)return null;if((s=jz(n,15)).dc())return"";for(d=new kx,r=s.Kc();r.Ob();)a=r.Pb(),iD(d,o.Aj().Nh().Ih(o,a)),d.a+=" ";return BD(d,d.a.length-1)}if(!(u=Sdt(KLe,e).bl()).dc()){for(l=u.Kc();l.Ob();)if((c=jz(l.Pb(),148)).wj(n))try{if(null!=(d=c.Aj().Nh().Ih(c,n)))return d}catch(h){if(!iO(h=dst(h),102))throw $m(h)}throw $m(new Pw("Invalid value: '"+n+"' for datatype :"+e.ne()))}return jz(e,834).Fj(),null==n?null:iO(n,172)?""+jz(n,172).a:tlt(n)==bee?$L(SDe[0],jz(n,199)):$ft(n)}function UVt(t){var e,n,a,r,o,s,c,l,u;for(l=new Zk,s=new Zk,r=new Wf(t);r.a<r.c.c.length;)(n=jz(J1(r),128)).v=0,n.n=n.i.c.length,n.u=n.t.c.length,0==n.n&&n6(l,n,l.c.b,l.c),0==n.u&&0==n.r.a.gc()&&n6(s,n,s.c.b,s.c);for(o=-1;0!=l.b;)for(e=new Wf((n=jz(txt(l,0),128)).t);e.a<e.c.c.length;)(u=jz(J1(e),268).b).v=i.Math.max(u.v,n.v+1),o=i.Math.max(o,u.v),--u.n,0==u.n&&n6(l,u,l.c.b,l.c);if(o>-1){for(a=cmt(s,0);a.b!=a.d.c;)(n=jz(d4(a),128)).v=o;for(;0!=s.b;)for(e=new Wf((n=jz(txt(s,0),128)).i);e.a<e.c.c.length;)0==(c=jz(J1(e),268).a).r.a.gc()&&(c.v=i.Math.min(c.v,n.v-1),--c.u,0==c.u&&n6(s,c,s.c.b,s.c))}}function VVt(t,e,n,a,r){var o,s,c,l;return l=BKt,s=!1,o=!!(c=Vzt(t,qP(new OT(e.a,e.b),t),VP(new OT(n.a,n.b),r),qP(new OT(a.a,a.b),n)))&&!(i.Math.abs(c.a-t.a)<=c6t&&i.Math.abs(c.b-t.b)<=c6t||i.Math.abs(c.a-e.a)<=c6t&&i.Math.abs(c.b-e.b)<=c6t),(c=Vzt(t,qP(new OT(e.a,e.b),t),n,r))&&((i.Math.abs(c.a-t.a)<=c6t&&i.Math.abs(c.b-t.b)<=c6t)==(i.Math.abs(c.a-e.a)<=c6t&&i.Math.abs(c.b-e.b)<=c6t)||o?l=i.Math.min(l,uG(qP(c,n))):s=!0),(c=Vzt(t,qP(new OT(e.a,e.b),t),a,r))&&(s||(i.Math.abs(c.a-t.a)<=c6t&&i.Math.abs(c.b-t.b)<=c6t)==(i.Math.abs(c.a-e.a)<=c6t&&i.Math.abs(c.b-e.b)<=c6t)||o)&&(l=i.Math.min(l,uG(qP(c,a)))),l}function qVt(t){LE(t,new kkt(fR(bR(hR(pR(gR(new bs,FQt),jQt),"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 pe),pQt))),r2(t,FQt,xQt,ymt(voe)),r2(t,FQt,_Qt,(cM(),!0)),r2(t,FQt,CQt,ymt(Roe)),r2(t,FQt,$Qt,ymt(_oe)),r2(t,FQt,EQt,ymt(koe)),r2(t,FQt,SQt,ymt(xoe)),r2(t,FQt,kQt,ymt(Eoe)),r2(t,FQt,TQt,ymt(Coe)),r2(t,FQt,OQt,ymt(yoe)),r2(t,FQt,NQt,ymt(boe)),r2(t,FQt,BQt,ymt(moe)),r2(t,FQt,PQt,ymt(woe)),r2(t,FQt,MQt,ymt(poe))}function WVt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b;for(Akt(e,"Interactive crossing minimization",1),o=0,r=new Wf(t.b);r.a<r.c.c.length;)(i=jz(J1(r),29)).p=o++;for(p=new NR((h=H_t(t)).length),SHt(new Kw(Cst(Hx(ble,1),zGt,225,0,[p])),h),g=0,o=0,a=new Wf(t.b);a.a<a.c.c.length;){for(n=0,d=0,u=new Wf((i=jz(J1(a),29)).a);u.a<u.c.c.length;)for((c=jz(J1(u),10)).n.a>0&&(n+=c.n.a+c.o.a/2,++d),f=new Wf(c.j);f.a<f.c.c.length;)jz(J1(f),11).p=g++;for(d>0&&(n/=d),b=O5(LMe,HKt,25,i.a.c.length,15,1),s=0,l=new Wf(i.a);l.a<l.c.c.length;)(c=jz(J1(l),10)).p=s++,b[c.p]=kVt(c,n),c.k==(oCt(),Cse)&&lct(c,(lGt(),phe),b[c.p]);kK(),mL(i.a,new Hp(b)),ijt(p,h,o,!0),++o}zCt(e)}function YVt(t,e){var n,i,a,r,o,s,c,l,u;if(5!=e.e){if(null!=(l=e).b&&null!=t.b){for(_Lt(t),HHt(t),_Lt(l),HHt(l),n=O5(TMe,lKt,25,t.b.length+l.b.length,15,1),u=0,i=0,o=0;i<t.b.length&&o<l.b.length;)if(a=t.b[i],r=t.b[i+1],s=l.b[o],c=l.b[o+1],r<s)n[u++]=t.b[i++],n[u++]=t.b[i++];else if(r>=s&&a<=c)s<=a&&r<=c?i+=2:s<=a?(t.b[i]=c+1,o+=2):r<=c?(n[u++]=a,n[u++]=s-1,i+=2):(n[u++]=a,n[u++]=s-1,t.b[i]=c+1,o+=2);else{if(!(c<a))throw $m(new fw("Token#subtractRanges(): Internal Error: ["+t.b[i]+","+t.b[i+1]+"] - ["+l.b[o]+","+l.b[o+1]+"]"));o+=2}for(;i<t.b.length;)n[u++]=t.b[i++],n[u++]=t.b[i++];t.b=O5(TMe,lKt,25,u,15,1),rHt(n,0,t.b,0,u)}}else wVt(t,e)}function GVt(t){var e,n,i,a,r,o,s;if(!t.A.dc()){if(t.A.Hc((ypt(),PAe))&&(jz(oZ(t.b,(wWt(),cAe)),124).k=!0,jz(oZ(t.b,EAe),124).k=!0,e=t.q!=(Z_t(),YTe)&&t.q!=WTe,Ih(jz(oZ(t.b,sAe),124),e),Ih(jz(oZ(t.b,SAe),124),e),Ih(t.g,e),t.A.Hc(FAe)&&(jz(oZ(t.b,cAe),124).j=!0,jz(oZ(t.b,EAe),124).j=!0,jz(oZ(t.b,sAe),124).k=!0,jz(oZ(t.b,SAe),124).k=!0,t.g.k=!0)),t.A.Hc(BAe))for(t.a.j=!0,t.a.k=!0,t.g.j=!0,t.g.k=!0,s=t.B.Hc((QFt(),WAe)),r=0,o=(a=tmt()).length;r<o;++r)i=a[r],(n=jz(oZ(t.i,i),306))&&(rbt(i)?(n.j=!0,n.k=!0):(n.j=!s,n.k=!s));t.A.Hc(NAe)&&t.B.Hc((QFt(),qAe))&&(t.g.j=!0,t.g.j=!0,t.a.j||(t.a.j=!0,t.a.k=!0,t.a.e=!0))}}function ZVt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g,p;for(n=new Wf(t.e.b);n.a<n.c.c.length;)for(a=new Wf(jz(J1(n),29).a);a.a<a.c.c.length;)if(i=jz(J1(a),10),c=(d=t.i[i.p]).a.e,s=d.d.e,i.n.b=c,p=s-c-i.o.b,e=DHt(i),hyt(),u=(i.q?i.q:(kK(),kK(),lne))._b((zYt(),Nbe))?jz(yEt(i,Nbe),197):jz(yEt(bG(i),Bbe),197),e&&(u==uye||u==lye)&&(i.o.b+=p),e&&(u==hye||u==uye||u==lye)){for(f=new Wf(i.j);f.a<f.c.c.length;)h=jz(J1(f),11),(wWt(),hAe).Hc(h.j)&&(l=jz(NY(t.k,h),121),h.n.b=l.e-c);for(o=new Wf(i.b);o.a<o.c.c.length;)r=jz(J1(o),70),(g=jz(yEt(i,Dbe),21)).Hc((QIt(),OTe))?r.n.b+=p:g.Hc(MTe)&&(r.n.b+=p/2);(u==uye||u==lye)&&rft(i,(wWt(),EAe)).Jc(new ab(p))}}function KVt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;if(!t.b)return!1;for(o=null,h=null,a=1,(c=new $5(null,null)).a[1]=t.b,d=c;d.a[a];)l=a,s=h,h=d,d=d.a[a],a=(i=t.a.ue(e,d.d))<0?0:1,0==i&&(!n.c||iZ(d.e,n.d))&&(o=d),(!d||!d.b)&&!Yw(d.a[a])&&(Yw(d.a[1-a])?h=h.a[l]=fat(d,a):Yw(d.a[1-a])||(f=h.a[1-l])&&(Yw(f.a[1-l])||Yw(f.a[l])?(r=s.a[1]==h?1:0,Yw(f.a[l])?s.a[r]=n2(h,l):Yw(f.a[1-l])&&(s.a[r]=fat(h,l)),d.b=s.a[r].b=!0,s.a[r].a[0].b=!1,s.a[r].a[1].b=!1):(h.b=!1,f.b=!0,d.b=!0)));return o&&(n.b=!0,n.d=o.e,d!=o&&(hEt(t,c,o,u=new $5(d.d,d.e)),h==o&&(h=u)),h.a[h.a[1]==d?1:0]=d.a[d.a[0]?0:1],--t.c),t.b=c.a[1],t.b&&(t.b.b=!1),n.b}function XVt(t){var e,n,a,r,o,s,c,l,u,d,h,f;for(r=new Wf(t.a.a.b);r.a<r.c.c.length;)for(l=(a=jz(J1(r),57)).c.Kc();l.Ob();)c=jz(l.Pb(),57),a.a!=c.a&&(h=fI(t.a.d)?t.a.g.Oe(a,c):t.a.g.Pe(a,c),o=a.b.a+a.d.b+h-c.b.a,o=i.Math.ceil(o),o=i.Math.max(0,o),X9(a,c)?(s=AM(new zy,t.d),e=(u=CJ(i.Math.ceil(c.b.a-a.b.a)))-(c.b.a-a.b.a),n=a,(d=l4(a).a)||(d=l4(c).a,e=-e,n=c),d&&(n.b.a-=e,d.n.a-=e),qMt(aE(iE(rE(nE(new $y,i.Math.max(0,u)),1),s),t.c[a.a.d])),qMt(aE(iE(rE(nE(new $y,i.Math.max(0,-u)),1),s),t.c[c.a.d]))):(f=1,(iO(a.g,145)&&iO(c.g,10)||iO(c.g,145)&&iO(a.g,10))&&(f=2),qMt(aE(iE(rE(nE(new $y,CJ(o)),f),t.c[a.a.d]),t.c[c.a.d]))))}function JVt(t,e,n){var a,r,o,s,c,l,u,d,h,f;if(n)for(a=-1,d=new _2(e,0);d.b<d.d.gc();){if(EN(d.b<d.d.gc()),c=jz(d.d.Xb(d.c=d.b++),10),null==(h=t.c[c.c.p][c.p].a)){for(s=a+1,o=new _2(e,d.b);o.b<o.d.gc();)if(null!=(f=hO(t,(EN(o.b<o.d.gc()),jz(o.d.Xb(o.c=o.b++),10))).a)){vG(f),s=f;break}h=(a+s)/2,t.c[c.c.p][c.p].a=h,t.c[c.c.p][c.p].d=(vG(h),h),t.c[c.c.p][c.p].b=1}vG(h),a=h}else{for(r=0,u=new Wf(e);u.a<u.c.c.length;)c=jz(J1(u),10),null!=t.c[c.c.p][c.p].a&&(r=i.Math.max(r,Hw(t.c[c.c.p][c.p].a)));for(r+=2,l=new Wf(e);l.a<l.c.c.length;)c=jz(J1(l),10),null==t.c[c.c.p][c.p].a&&(h=zLt(t.i,24)*oXt*r-1,t.c[c.c.p][c.p].a=h,t.c[c.c.p][c.p].d=h,t.c[c.c.p][c.p].b=1)}}function QVt(){ND(FIe,new el),ND(NIe,new hl),ND($Ie,new _l),ND(jIe,new Al),ND(zIe,new Dl),ND(VIe,new Il),ND(qIe,new Ll),ND(jDe,new Ol),ND(FDe,new qc),ND($De,new Wc),ND(DDe,new Yc),ND(YIe,new Gc),ND(zDe,new Zc),ND(GIe,new Kc),ND(ZIe,new Xc),ND(PIe,new Jc),ND(BIe,new Qc),ND(VLe,new tl),ND(WIe,new nl),ND(SLe,new il),ND(wee,new al),ND(Hx(IMe,1),new rl),ND(Ree,new ol),ND(Eee,new sl),ND(bee,new cl),ND(BMe,new ll),ND(Cee,new ul),ND(aIe,new dl),ND(mIe,new fl),ND(rOe,new gl),ND(ALe,new pl),ND(See,new bl),ND(Dee,new ml),ND(Ite,new yl),ND(Bee,new vl),ND(Ote,new wl),ND(tOe,new xl),ND(PMe,new Rl),ND(Fee,new kl),ND(zee,new El),ND(oIe,new Cl),ND(FMe,new Sl)}function tqt(t,e,n){var i,a,r,o,s,c,l,u,d;for(!n&&(n=Ust(e.q.getTimezoneOffset())),a=6e4*(e.q.getTimezoneOffset()-n.a),c=s=new EB(ift(uot(e.q.getTime()),a)),s.q.getTimezoneOffset()!=e.q.getTimezoneOffset()&&(a>0?a-=864e5:a+=864e5,c=new EB(ift(uot(e.q.getTime()),a))),u=new Sx,l=t.a.length,r=0;r<l;)if((i=lZ(t.a,r))>=97&&i<=122||i>=65&&i<=90){for(o=r+1;o<l&&lZ(t.a,o)==i;++o);rGt(u,i,o-r,s,c,n),r=o}else if(39==i){if(++r<l&&39==lZ(t.a,r)){u.a+="'",++r;continue}for(d=!1;!d;){for(o=r;o<l&&39!=lZ(t.a,o);)++o;if(o>=l)throw $m(new Pw("Missing trailing '"));o+1<l&&39==lZ(t.a,o+1)?++o:d=!0,oD(u,lN(t.a,r,o)),r=o+1}}else u.a+=String.fromCharCode(i),++r;return u.a}function eqt(t){var e,n,i,a,r,o,s,c;for(e=null,i=new Wf(t);i.a<i.c.c.length;)Hw(uO((n=jz(J1(i),233)).g,n.d[0]).a),n.b=null,n.e&&n.e.gc()>0&&0==n.c&&(!e&&(e=new Lm),e.c[e.c.length]=n);if(e)for(;0!=e.c.length;){if((n=jz(s7(e,0),233)).b&&n.b.c.length>0)for(!n.b&&(n.b=new Lm),r=new Wf(n.b);r.a<r.c.c.length;)if(Uw(uO((a=jz(J1(r),233)).g,a.d[0]).a)==Uw(uO(n.g,n.d[0]).a)){if(x9(t,a,0)>x9(t,n,0))return new nA(a,n)}else if(Hw(uO(a.g,a.d[0]).a)>Hw(uO(n.g,n.d[0]).a))return new nA(a,n);for(s=(!n.e&&(n.e=new Lm),n.e).Kc();s.Ob();)!(o=jz(s.Pb(),233)).b&&(o.b=new Lm),IQ(0,(c=o.b).c.length),_C(c.c,0,n),o.c==c.c.length&&(e.c[e.c.length]=o)}return null}function nqt(t,e){var n,i,a,r,o,s;if(null==t)return VGt;if(null!=e.a.zc(t,e))return"[...]";for(n=new Iot(jGt,"[","]"),r=0,o=(a=t).length;r<o;++r)null!=(i=a[r])&&4&tlt(i).i?!Array.isArray(i)||(s=btt(i))>=14&&s<=16?iO(i,177)?d7(n,BTt(jz(i,177))):iO(i,190)?d7(n,X_t(jz(i,190))):iO(i,195)?d7(n,wCt(jz(i,195))):iO(i,2012)?d7(n,J_t(jz(i,2012))):iO(i,48)?d7(n,NTt(jz(i,48))):iO(i,364)?d7(n,pAt(jz(i,364))):iO(i,832)?d7(n,MTt(jz(i,832))):iO(i,104)&&d7(n,OTt(jz(i,104))):e.a._b(i)?(n.a?oD(n.a,n.b):n.a=new uM(n.d),aD(n.a,"[...]")):d7(n,nqt(ent(i),new DU(e))):d7(n,null==i?VGt:$ft(i));return n.a?0==n.e.length?n.a.a:n.a.a+""+n.e:n.c}function iqt(t,e,n,a){var r,o,s,c,l,u,d,h,f,g,p,b;for(g=HCt(aBt(e,!1,!1)),a&&(g=Xct(g)),b=Hw(_B(JIt(e,(Rmt(),pre)))),EN(0!=g.b),f=jz(g.a.a.c,8),u=jz(Nmt(g,1),8),g.b>2?(pst(l=new Lm,new s1(g,1,g.b)),Hot(p=new RIt(WYt(l,b+t.a)),e),n.c[n.c.length]=p):p=jz(NY(t.b,a?CEt(e):AEt(e)),266),s=CEt(e),a&&(s=AEt(e)),o=nSt(f,s),c=b+t.a,o.a?(c+=i.Math.abs(f.b-u.b),h=new OT(u.a,(u.b+f.b)/2)):(c+=i.Math.abs(f.a-u.a),h=new OT((u.a+f.a)/2,u.b)),YG(a?t.d:t.c,e,new Tvt(p,o,h,c)),YG(t.b,e,p),!e.n&&(e.n=new tW(HDe,e,1,7)),d=new AO(e.n);d.e!=d.i.gc();)r=XPt(t,jz(wmt(d),137),!0,0,0),n.c[n.c.length]=r}function aqt(t){var e,n,a,r,o,s,c,l,u;for(l=new Lm,s=new Lm,o=new Wf(t);o.a<o.c.c.length;)Wh(a=jz(J1(o),112),a.f.c.length),Yh(a,a.k.c.length),0==a.d&&(l.c[l.c.length]=a),0==a.i&&0==a.e.b&&(s.c[s.c.length]=a);for(n=-1;0!=l.c.length;)for(e=new Wf((a=jz(s7(l,0),112)).k);e.a<e.c.c.length;)Gh(u=jz(J1(e),129).b,i.Math.max(u.o,a.o+1)),n=i.Math.max(n,u.o),Wh(u,u.d-1),0==u.d&&(l.c[l.c.length]=u);if(n>-1){for(r=new Wf(s);r.a<r.c.c.length;)(a=jz(J1(r),112)).o=n;for(;0!=s.c.length;)for(e=new Wf((a=jz(s7(s,0),112)).f);e.a<e.c.c.length;)!((c=jz(J1(e),129).a).e.b>0)&&(Gh(c,i.Math.min(c.o,a.o-1)),Yh(c,c.i-1),0==c.i&&(s.c[s.c.length]=c))}}function rqt(t,e,n){var i,a,r,o,s;if(s=t.c,!e&&(e=DLe),t.c=e,4&t.Db&&!(1&t.Db)&&(o=new Jq(t,1,2,s,t.c),n?n.Ei(o):n=o),s!=e)if(iO(t.Cb,284))t.Db>>16==-10?n=jz(t.Cb,284).nk(e,n):t.Db>>16==-15&&(!e&&(pGt(),e=lLe),!s&&(pGt(),s=lLe),t.Cb.nh()&&(o=new L9(t.Cb,1,13,s,e,oyt($9(jz(t.Cb,59)),t),!1),n?n.Ei(o):n=o));else if(iO(t.Cb,88))t.Db>>16==-23&&(iO(e,88)||(pGt(),e=hLe),iO(s,88)||(pGt(),s=hLe),t.Cb.nh()&&(o=new L9(t.Cb,1,10,s,e,oyt(a3(jz(t.Cb,26)),t),!1),n?n.Ei(o):n=o));else if(iO(t.Cb,444))for(!(r=jz(t.Cb,836)).b&&(r.b=new Rm(new Ov)),a=new _m(new olt(new Ef(r.b.a).a));a.a.b;)n=rqt(i=jz(tnt(a.a).cd(),87),wOt(i,r),n);return n}function oqt(t,e){var n,i,a,r,o,s,c,l,u,d,h;for(o=zw(RB(JIt(t,(zYt(),hbe)))),h=jz(JIt(t,ime),21),c=!1,l=!1,d=new AO((!t.c&&(t.c=new tW(VDe,t,9,9)),t.c));!(d.e==d.i.gc()||c&&l);){for(r=jz(wmt(d),118),s=0,a=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[(!r.d&&(r.d=new cF(BDe,r,8,5)),r.d),(!r.e&&(r.e=new cF(BDe,r,7,4)),r.e)])));gIt(a)&&(i=jz(V6(a),79),u=o&&ZAt(i)&&zw(RB(JIt(i,fbe))),n=hUt((!i.b&&(i.b=new cF(NDe,i,4,7)),i.b),r)?t==KJ(Ckt(jz(Yet((!i.c&&(i.c=new cF(NDe,i,5,8)),i.c),0),82))):t==KJ(Ckt(jz(Yet((!i.b&&(i.b=new cF(NDe,i,4,7)),i.b),0),82))),!((u||n)&&(++s,s>1))););(s>0||h.Hc((dAt(),eAe))&&(!r.n&&(r.n=new tW(HDe,r,1,7)),r.n).i>0)&&(c=!0),s>1&&(l=!0)}c&&e.Fc((hBt(),dde)),l&&e.Fc((hBt(),hde))}function sqt(t){var e,n,a,r,o,s,c,l,u,d,h,f;if((f=jz(JIt(t,(cGt(),BCe)),21)).dc())return null;if(c=0,s=0,f.Hc((ypt(),PAe))){for(d=jz(JIt(t,rSe),98),a=2,n=2,r=2,o=2,e=KJ(t)?jz(JIt(KJ(t),dCe),103):jz(JIt(t,dCe),103),u=new AO((!t.c&&(t.c=new tW(VDe,t,9,9)),t.c));u.e!=u.i.gc();)if(l=jz(wmt(u),118),(h=jz(JIt(l,hSe),61))==(wWt(),CAe)&&(h=A$t(l,e),Kmt(l,hSe,h)),d==(Z_t(),WTe))switch(h.g){case 1:a=i.Math.max(a,l.i+l.g);break;case 2:n=i.Math.max(n,l.j+l.f);break;case 3:r=i.Math.max(r,l.i+l.g);break;case 4:o=i.Math.max(o,l.j+l.f)}else switch(h.g){case 1:a+=l.g+2;break;case 2:n+=l.f+2;break;case 3:r+=l.g+2;break;case 4:o+=l.f+2}c=i.Math.max(a,r),s=i.Math.max(n,o)}return PWt(t,c,s,!0,!0)}function cqt(t,e,n,a,r){var o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;for(v=jz(E3(vet(AZ(new NU(null,new h1(e.d,16)),new Dp(n)),new Ip(n)),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15),h=NGt,d=FZt,l=new Wf(e.b.j);l.a<l.c.c.length;)(c=jz(J1(l),11)).j==n&&(h=i.Math.min(h,c.p),d=i.Math.max(d,c.p));if(h==NGt)for(s=0;s<v.gc();s++)g8(jz(v.Xb(s),101),n,s);else for(XU(w=O5(TMe,lKt,25,r.length,15,1),w.length),y=v.Kc();y.Ob();){for(m=jz(y.Pb(),101),o=jz(NY(t.b,m),177),u=0,b=h;b<=d;b++)o[b]&&(u=i.Math.max(u,a[b]));if(m.i){for(g=m.i.c,x=new Ny,f=0;f<r.length;f++)r[g][f]&&RW(x,nht(w[f]));for(;Fk(x,nht(u));)++u}for(g8(m,n,u),p=h;p<=d;p++)o[p]&&(a[p]=u+1);m.i&&(w[m.i.c]=u)}}function lqt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p;for(r=null,a=new Wf(e.a);a.a<a.c.c.length;)DHt(n=jz(J1(a),10))?(u=new HZ(n,!0,c=AM(oE(new zy,n),t.f),l=AM(oE(new zy,n),t.f)),d=n.o.b,hyt(),f=1e4,(h=(n.q?n.q:(kK(),kK(),lne))._b((zYt(),Nbe))?jz(yEt(n,Nbe),197):jz(yEt(bG(n),Bbe),197))==lye&&(f=1),g=qMt(aE(iE(nE(rE(new $y,f),CJ(i.Math.ceil(d))),c),l)),h==uye&&RW(t.d,g),Ajt(t,eot(rft(n,(wWt(),SAe))),u),Ajt(t,rft(n,sAe),u),o=u):(p=AM(oE(new zy,n),t.f),Kk(AZ(new NU(null,new h1(n.j,16)),new zr),new QS(t,p)),o=new HZ(n,!1,p,p)),t.i[n.p]=o,r&&(s=r.c.d.a+BL(t.n,r.c,n)+n.d.d,r.b||(s+=r.c.o.b),qMt(aE(iE(rE(nE(new $y,CJ(i.Math.ceil(s))),0),r.d),o.a))),r=o}function uqt(t,e){var n,a,r,o,s,c,l,d,h,f,g,p,b;for(Akt(e,"Label dummy insertions",1),f=new Lm,s=Hw(_B(yEt(t,(zYt(),wme)))),d=Hw(_B(yEt(t,kme))),h=jz(yEt(t,Vpe),103),g=new Wf(t.a);g.a<g.c.c.length;)for(o=new oq(XO(dft(jz(J1(g),10)).a.Kc(),new u));gIt(o);)if((r=jz(V6(o),17)).c.i!=r.d.i&&QL(r.b,Jce)){for(n=sOt(t,r,b=Ret(r),p=sN(r.b.c.length)),f.c[f.c.length]=n,a=n.o,c=new _2(r.b,0);c.b<c.d.gc();)EN(c.b<c.d.gc()),HA(yEt(l=jz(c.d.Xb(c.c=c.b++),70),Zpe))===HA((Bet(),VSe))&&(h==(jdt(),zSe)||h==PSe?(a.a+=l.o.a+d,a.b=i.Math.max(a.b,l.o.b)):(a.a=i.Math.max(a.a,l.o.a),a.b+=l.o.b+d),p.c[p.c.length]=l,lG(c));h==(jdt(),zSe)||h==PSe?(a.a-=d,a.b+=s+b):a.b+=s-d+b}pst(t.a,f),zCt(e)}function dqt(t,e,n,a){var r,o,s,c,l,u,d,h,f,g;for(h=WBt(t,e,o=new gDt(e)),g=i.Math.max(Hw(_B(yEt(e,(zYt(),abe)))),1),d=new Wf(h.a);d.a<d.c.c.length;)u=jz(J1(d),46),l=$bt(jz(u.a,8),jz(u.b,8),g),UH(n,new OT(l.c,l.d)),UH(n,PN(new OT(l.c,l.d),l.b,0)),UH(n,PN(new OT(l.c,l.d),0,l.a)),UH(n,PN(new OT(l.c,l.d),l.b,l.a));switch(f=o.d,c=$bt(jz(h.b.a,8),jz(h.b.b,8),g),f==(wWt(),SAe)||f==sAe?(a.c[f.g]=i.Math.min(a.c[f.g],c.d),a.b[f.g]=i.Math.max(a.b[f.g],c.d+c.a)):(a.c[f.g]=i.Math.min(a.c[f.g],c.c),a.b[f.g]=i.Math.max(a.b[f.g],c.c+c.b)),r=PKt,s=o.c.i.d,f.g){case 4:r=s.c;break;case 2:r=s.b;break;case 1:r=s.a;break;case 3:r=s.d}return a.a[f.g]=i.Math.max(a.a[f.g],r),o}function hqt(t){var e,n,i,a;if(-1!=(e=HD(n=null!=t.D?t.D:t.B,Kkt(91)))){i=n.substr(0,e),a=new kx;do{a.a+="["}while(-1!=(e=uN(n,91,++e)));mF(i,IGt)?a.a+="Z":mF(i,E8t)?a.a+="B":mF(i,C8t)?a.a+="C":mF(i,S8t)?a.a+="D":mF(i,T8t)?a.a+="F":mF(i,A8t)?a.a+="I":mF(i,D8t)?a.a+="J":mF(i,I8t)?a.a+="S":(a.a+="L",a.a+=""+i,a.a+=";");try{return null}catch(r){if(!iO(r=dst(r),60))throw $m(r)}}else if(-1==HD(n,Kkt(46))){if(mF(n,IGt))return AMe;if(mF(n,E8t))return IMe;if(mF(n,C8t))return SMe;if(mF(n,S8t))return LMe;if(mF(n,T8t))return OMe;if(mF(n,A8t))return TMe;if(mF(n,D8t))return DMe;if(mF(n,I8t))return MMe}return null}function fqt(t,e,n){var i,a,r,o,s,c,l,u;for(Hot(l=new Iyt(n),e),lct(l,(lGt(),fhe),e),l.o.a=e.g,l.o.b=e.f,l.n.a=e.i,l.n.b=e.j,Wz(n.a,l),YG(t.a,e,l),(0!=(!e.a&&(e.a=new tW(UDe,e,10,11)),e.a).i||zw(RB(JIt(e,(zYt(),hbe)))))&&lct(l,Pde,(cM(),!0)),c=jz(yEt(n,Xde),21),(u=jz(yEt(l,(zYt(),tme)),98))==(Z_t(),KTe)?lct(l,tme,ZTe):u!=ZTe&&c.Fc((hBt(),gde)),i=jz(yEt(n,Vpe),103),s=new AO((!e.c&&(e.c=new tW(VDe,e,9,9)),e.c));s.e!=s.i.gc();)zw(RB(JIt(o=jz(wmt(s),118),Hbe)))||Jqt(t,o,l,c,i,u);for(r=new AO((!e.n&&(e.n=new tW(HDe,e,1,7)),e.n));r.e!=r.i.gc();)!zw(RB(JIt(a=jz(wmt(r),137),Hbe)))&&a.a&&Wz(l.b,zut(a));return zw(RB(yEt(l,Rpe)))&&c.Fc((hBt(),lde)),zw(RB(yEt(l,dbe)))&&(c.Fc((hBt(),fde)),c.Fc(hde),lct(l,tme,ZTe)),l}function gqt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k;s=jz(NY(e.c,t),459),b=e.a.c,c=e.a.c+e.a.b,o=(_=s.f)<(k=s.a),f=new OT(b,_),m=new OT(c,k),g=new OT(a=(b+c)/2,_),y=new OT(a,k),r=eMt(t,_,k),w=g1(e.B),x=new OT(a,r),R=g1(e.D),n=dct(Cst(Hx(EEe,1),cZt,8,0,[w,x,R])),d=!1,(p=e.B.i)&&p.c&&s.d&&((l=o&&p.p<p.c.a.c.length-1||!o&&p.p>0)?l&&(u=p.p,o?++u:--u,d=!(aMt(i=nct(jz(OU(p.c.a,u),10)),w,n[0])||jq(i,w,n[0]))):d=!0),h=!1,(v=e.D.i)&&v.c&&s.e&&(o&&v.p>0||!o&&v.p<v.c.a.c.length-1?(u=v.p,o?--u:++u,h=!(aMt(i=nct(jz(OU(v.c.a,u),10)),n[0],R)||jq(i,n[0],R))):h=!0),d&&h&&MH(t.a,x),d||Qnt(t.a,Cst(Hx(EEe,1),cZt,8,0,[f,g])),h||Qnt(t.a,Cst(Hx(EEe,1),cZt,8,0,[y,m]))}function pqt(t,e){var n,i,a,r,o,s,c;if(iO(t.Ug(),160)?(pqt(jz(t.Ug(),160),e),e.a+=" > "):e.a+="Root ",mF((n=t.Tg().zb).substr(0,3),"Elk")?oD(e,n.substr(3)):e.a+=""+n,a=t.zg())oD((e.a+=" ",e),a);else if(iO(t,354)&&(c=jz(t,137).a))oD((e.a+=" ",e),c);else{for(r=new AO(t.Ag());r.e!=r.i.gc();)if(c=jz(wmt(r),137).a)return void oD((e.a+=" ",e),c);if(iO(t,352)&&(!(i=jz(t,79)).b&&(i.b=new cF(NDe,i,4,7)),0!=i.b.i&&(!i.c&&(i.c=new cF(NDe,i,5,8)),0!=i.c.i))){for(e.a+=" (",o=new iN((!i.b&&(i.b=new cF(NDe,i,4,7)),i.b));o.e!=o.i.gc();)o.e>0&&(e.a+=jGt),pqt(jz(wmt(o),160),e);for(e.a+=e1t,s=new iN((!i.c&&(i.c=new cF(NDe,i,5,8)),i.c));s.e!=s.i.gc();)s.e>0&&(e.a+=jGt),pqt(jz(wmt(s),160),e);e.a+=")"}}}function bqt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;if(r=jz(yEt(t,(lGt(),fhe)),79)){for(i=t.a,VP(a=new hI(n),IRt(t)),fot(t.d.i,t.c.i)?(h=t.c,qP(d=Dct(Cst(Hx(EEe,1),cZt,8,0,[h.n,h.a])),n)):d=g1(t.c),n6(i,d,i.a,i.a.a),f=g1(t.d),null!=yEt(t,Nhe)&&VP(f,jz(yEt(t,Nhe),8)),n6(i,f,i.c.b,i.c),Jet(i,a),Lit(o=aBt(r,!0,!0),jz(Yet((!r.b&&(r.b=new cF(NDe,r,4,7)),r.b),0),82)),Oit(o,jz(Yet((!r.c&&(r.c=new cF(NDe,r,5,8)),r.c),0),82)),G$t(i,o),u=new Wf(t.b);u.a<u.c.c.length;)l=jz(J1(u),70),Ent(s=jz(yEt(l,fhe),137),l.o.a),knt(s,l.o.b),kI(s,l.n.a+a.a,l.n.b+a.b),Kmt(s,(Tat(),Qce),RB(yEt(l,Qce)));(c=jz(yEt(t,(zYt(),bbe)),74))?(Jet(c,a),Kmt(r,bbe,c)):Kmt(r,bbe,null),e==(kft(),XSe)?Kmt(r,Xpe,XSe):Kmt(r,Xpe,null)}}function mqt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;for(f=e.c.length,h=0,d=new Wf(t.b);d.a<d.c.c.length;)if(0!=(m=(u=jz(J1(d),29)).a).c.length){for(l=0,y=null,a=jz(J1(b=new Wf(m)),10),r=null;a;){if((r=jz(OU(e,a.p),257)).c>=0){for(c=null,s=new _2(u.a,l+1);s.b<s.d.gc()&&(EN(s.b<s.d.gc()),o=jz(s.d.Xb(s.c=s.b++),10),!((c=jz(OU(e,o.p),257)).d==r.d&&c.c<r.c));)c=null;c&&(y&&(i6(i,a.p,nht(jz(OU(i,a.p),19).a-1)),jz(OU(n,y.p),15).Mc(r)),r=fkt(r,a,f++),e.c[e.c.length]=r,Wz(n,new Lm),y?(jz(OU(n,y.p),15).Fc(r),Wz(i,nht(1))):Wz(i,nht(0)))}g=null,b.a<b.c.c.length&&(g=jz(J1(b),10),p=jz(OU(e,g.p),257),jz(OU(n,a.p),15).Fc(p),i6(i,g.p,nht(jz(OU(i,g.p),19).a+1))),r.d=h,r.c=l++,y=a,a=g}++h}}function yqt(t,e,n,a){var r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;return c=t,u=qP(new OT(e.a,e.b),t),l=n,d=qP(new OT(a.a,a.b),n),h=c.a,b=c.b,g=l.a,y=l.b,f=u.a,m=u.b,r=(p=d.a)*m-f*(v=d.b),cL(),iit(D4t),!(i.Math.abs(0-r)<=D4t||0==r||isNaN(0)&&isNaN(r))&&(o=1/r*((h-g)*m-(b-y)*f),s=1/r*-(-(h-g)*v+(b-y)*p),iit(D4t),(i.Math.abs(0-o)<=D4t||0==o||isNaN(0)&&isNaN(o)?0:0<o?-1:0>o?1:UD(isNaN(0),isNaN(o)))<0&&(iit(D4t),(i.Math.abs(o-1)<=D4t||1==o||isNaN(o)&&isNaN(1)?0:o<1?-1:o>1?1:UD(isNaN(o),isNaN(1)))<0)&&(iit(D4t),(i.Math.abs(0-s)<=D4t||0==s||isNaN(0)&&isNaN(s)?0:0<s?-1:0>s?1:UD(isNaN(0),isNaN(s)))<0)&&(iit(D4t),(i.Math.abs(s-1)<=D4t||1==s||isNaN(s)&&isNaN(1)?0:s<1?-1:s>1?1:UD(isNaN(s),isNaN(1)))<0))}function vqt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R;for(d=new cG(new eg(t));d.b!=d.c.a.d;)for(s=jz((u=s8(d)).d,56),e=jz(u.e,56),p=0,w=(null==(o=s.Tg()).i&&H$t(o),o.i).length;p<w;++p)if(null==o.i&&H$t(o),r=o.i,(l=p>=0&&p<r.length?r[p]:null).Ij()&&!l.Jj())if(iO(l,99))!((c=jz(l,18)).Bb&l7t)&&!((R=Syt(c))&&R.Bb&l7t)&&yzt(t,c,s,e);else if(XE(),jz(l,66).Oj()&&(n=jz((x=l)?jz(e,49).xh(x):null,153)))for(f=jz(s.ah(l),153),i=n.gc(),b=0,g=f.gc();b<g;++b)if(iO(h=f.il(b),99)){if(null==(a=utt(t,v=f.jl(b)))&&null!=v){if(y=jz(h,18),!t.b||y.Bb&l7t||Syt(y))continue;a=v}if(!n.dl(h,a))for(m=0;m<i;++m)if(n.il(m)==h&&HA(n.jl(m))===HA(a)){n.ii(n.gc()-1,m),--i;break}}else n.dl(f.il(b),f.jl(b))}function wqt(t,e,n,a,r,o,s){var c,l,u,d,h,f,g,p,b,m,y,v;if(m=Zzt(e,n,t.g),r.n&&r.n&&o&&y0(r,o2(o),($lt(),oDe)),t.b)for(b=0;b<m.c.length;b++)u1(b,m.c.length),d=jz(m.c[b],200),0!=b&&(u1(b-1,m.c.length),put(d,(f=jz(m.c[b-1],200)).f+f.b+t.g)),yYt(b,m,n,t.g),zxt(t,d),r.n&&o&&y0(r,o2(o),($lt(),oDe));else for(p=new Wf(m);p.a<p.c.c.length;)for(u=new Wf((g=jz(J1(p),200)).a);u.a<u.c.c.length;)Mrt(y=new BJ((l=jz(J1(u),187)).s,l.t,t.g),l),Wz(g.d,y);return Vvt(t,m),r.n&&r.n&&o&&y0(r,o2(o),($lt(),oDe)),v=i.Math.max(t.d,a.a-(s.b+s.c)),c=(h=i.Math.max(t.c,a.b-(s.d+s.a)))-t.c,t.e&&t.f&&(v/h<t.a?v=h*t.a:c+=v/t.a-h),t.e&&Apt(m,v,c),r.n&&r.n&&o&&y0(r,o2(o),($lt(),oDe)),new tU(t.a,v,t.c+c,(KOt(),F_e))}function xqt(t){var e,n,a,r,o,s,c,l,u,d;for(t.j=O5(TMe,lKt,25,t.g,15,1),t.o=new Lm,Kk(htt(new NU(null,new h1(t.e.b,16)),new Gr),new rb(t)),t.a=O5(AMe,JXt,25,t.b,16,1),Idt(new NU(null,new h1(t.e.b,16)),new sb(t)),d=new Lm,Kk(AZ(htt(new NU(null,new h1(t.e.b,16)),new Kr),new ob(t)),new tT(t,d)),c=new Wf(d);c.a<c.c.c.length;)if(!((s=jz(J1(c),508)).c.length<=1)){if(2==s.c.length){VIt(s),DHt((u1(0,s.c.length),jz(s.c[0],17)).d.i)||Wz(t.o,s);continue}if(!W_t(s)&&!OSt(s,new Zr))for(l=new Wf(s),a=null;l.a<l.c.c.length;)e=jz(J1(l),17),n=t.c[e.p],u=!a||l.a>=l.c.c.length?q4((oCt(),Sse),Cse):q4((oCt(),Cse),Cse),u*=2,r=n.a.g,n.a.g=i.Math.max(r,r+(u-r)),o=n.b.g,n.b.g=i.Math.max(o,o+(u-o)),a=e}}function Rqt(t,e,n,i,a){var r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;for(v=Hz(t),c=new Lm,l=(r=t.c.length)-1,u=r+1;0!=v.a.c;){for(;0!=n.b;)EN(0!=n.b),m=jz(Det(n,n.a.a),112),DJ(v.a,m),m.g=l--,O$t(m,e,n,i);for(;0!=e.b;)EN(0!=e.b),y=jz(Det(e,e.a.a),112),DJ(v.a,y),y.g=u++,O$t(y,e,n,i);for(s=FZt,p=new Ff(new jP(new OM(new Pf(v.a).a).b));aC(p.a.a);){if(g=jz(mN(p.a).cd(),112),!i&&g.b>0&&g.a<=0){c.c=O5(Dte,zGt,1,0,5,1),c.c[c.c.length]=g;break}(f=g.i-g.d)>=s&&(f>s&&(c.c=O5(Dte,zGt,1,0,5,1),s=f),c.c[c.c.length]=g)}0!=c.c.length&&(o=jz(OU(c,byt(a,c.c.length)),112),DJ(v.a,o),o.g=u++,O$t(o,e,n,i),c.c=O5(Dte,zGt,1,0,5,1))}for(b=t.c.length+1,h=new Wf(t);h.a<h.c.c.length;)(d=jz(J1(h),112)).g<r&&(d.g=d.g+b)}function _qt(t,e){var n;if(t.e)throw $m(new Fw((xB(hie),DXt+hie.k+IXt)));if(!kC(t.a,e))throw $m(new fw(LXt+e+OXt));if(e==t.d)return t;switch(n=t.d,t.d=e,n.g){case 0:switch(e.g){case 2:zvt(t);break;case 1:Sct(t),zvt(t);break;case 4:QRt(t),zvt(t);break;case 3:QRt(t),Sct(t),zvt(t)}break;case 2:switch(e.g){case 1:Sct(t),BPt(t);break;case 4:QRt(t),zvt(t);break;case 3:QRt(t),Sct(t),zvt(t)}break;case 1:switch(e.g){case 2:Sct(t),BPt(t);break;case 4:Sct(t),QRt(t),zvt(t);break;case 3:Sct(t),QRt(t),Sct(t),zvt(t)}break;case 4:switch(e.g){case 2:QRt(t),zvt(t);break;case 1:QRt(t),Sct(t),zvt(t);break;case 3:Sct(t),BPt(t)}break;case 3:switch(e.g){case 2:Sct(t),QRt(t),zvt(t);break;case 1:Sct(t),QRt(t),Sct(t),zvt(t);break;case 4:Sct(t),BPt(t)}}return t}function kqt(t,e){var n;if(t.d)throw $m(new Fw((xB(Zoe),DXt+Zoe.k+IXt)));if(!ET(t.a,e))throw $m(new fw(LXt+e+OXt));if(e==t.c)return t;switch(n=t.c,t.c=e,n.g){case 0:switch(e.g){case 2:Jct(t);break;case 1:Cct(t),Jct(t);break;case 4:t_t(t),Jct(t);break;case 3:t_t(t),Cct(t),Jct(t)}break;case 2:switch(e.g){case 1:Cct(t),PPt(t);break;case 4:t_t(t),Jct(t);break;case 3:t_t(t),Cct(t),Jct(t)}break;case 1:switch(e.g){case 2:Cct(t),PPt(t);break;case 4:Cct(t),t_t(t),Jct(t);break;case 3:Cct(t),t_t(t),Cct(t),Jct(t)}break;case 4:switch(e.g){case 2:t_t(t),Jct(t);break;case 1:t_t(t),Cct(t),Jct(t);break;case 3:Cct(t),PPt(t)}break;case 3:switch(e.g){case 2:Cct(t),t_t(t),Jct(t);break;case 1:Cct(t),t_t(t),Cct(t),Jct(t);break;case 4:Cct(t),PPt(t)}}return t}function Eqt(t,e,n){var a,r,o,s,c,l,d,h;for(l=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));l.e!=l.i.gc();)for(r=new oq(XO(gOt(c=jz(wmt(l),33)).a.Kc(),new u));gIt(r);){if(!(a=jz(V6(r),79)).b&&(a.b=new cF(NDe,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new cF(NDe,a,5,8)),a.c.i<=1)))throw $m(new ix("Graph must not contain hyperedges."));if(!QDt(a)&&c!=Ckt(jz(Yet((!a.c&&(a.c=new cF(NDe,a,5,8)),a.c),0),82)))for(Hot(d=new SP,a),lct(d,(kat(),soe),a),Mh(d,jz(zA(AX(n.f,c)),144)),Nh(d,jz(NY(n,Ckt(jz(Yet((!a.c&&(a.c=new cF(NDe,a,5,8)),a.c),0),82))),144)),Wz(e.c,d),s=new AO((!a.n&&(a.n=new tW(HDe,a,1,7)),a.n));s.e!=s.i.gc();)Hot(h=new m3(d,(o=jz(wmt(s),137)).a),o),lct(h,soe,o),h.e.a=i.Math.max(o.g,1),h.e.b=i.Math.max(o.f,1),Fzt(h),Wz(e.d,h)}}function Cqt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;for(xJ(h=new eWt(t),!(e==(jdt(),zSe)||e==PSe)),d=h.a,f=new dv,Net(),s=0,l=(r=Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length;s<l;++s)n=r[s],(u=lO(d,Uie,n))&&(f.d=i.Math.max(f.d,u.Re()));for(o=0,c=(a=Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length;o<c;++o)n=a[o],(u=lO(d,qie,n))&&(f.a=i.Math.max(f.a,u.Re()));for(m=0,v=(p=Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length;m<v;++m)(u=lO(d,p[m],Uie))&&(f.b=i.Math.max(f.b,u.Se()));for(b=0,y=(g=Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length;b<y;++b)(u=lO(d,g[b],qie))&&(f.c=i.Math.max(f.c,u.Se()));return f.d>0&&(f.d+=d.n.d,f.d+=d.d),f.a>0&&(f.a+=d.n.a,f.a+=d.d),f.b>0&&(f.b+=d.n.b,f.b+=d.d),f.c>0&&(f.c+=d.n.c,f.c+=d.d),f}function Sqt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p;for(f=n.d,h=n.c,s=(o=new OT(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a)).b,u=new Wf(t.a);u.a<u.c.c.length;)if((c=jz(J1(u),10)).k==(oCt(),kse)){switch(a=jz(yEt(c,(lGt(),Gde)),61),r=jz(yEt(c,Zde),8),d=c.n,a.g){case 2:d.a=n.f.a+f.c-h.a;break;case 4:d.a=-h.a-f.b}switch(p=0,a.g){case 2:case 4:e==(Z_t(),YTe)?(g=Hw(_B(yEt(c,Rhe))),d.b=o.b*g-jz(yEt(c,(zYt(),Jbe)),8).b,p=d.b+r.b,Xot(c,!1,!0)):e==WTe&&(d.b=Hw(_B(yEt(c,Rhe)))-jz(yEt(c,(zYt(),Jbe)),8).b,p=d.b+r.b,Xot(c,!1,!0))}s=i.Math.max(s,p)}for(n.f.b+=s-o.b,l=new Wf(t.a);l.a<l.c.c.length;)if((c=jz(J1(l),10)).k==(oCt(),kse))switch(a=jz(yEt(c,(lGt(),Gde)),61),d=c.n,a.g){case 1:d.b=-h.b-f.d;break;case 3:d.b=n.f.b+f.a-h.b}}function Tqt(t){var e,n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R;for(a=jz(yEt(t,(HUt(),sxe)),33),c=NGt,l=NGt,o=FZt,s=FZt,x=cmt(t.b,0);x.b!=x.d.c;)g=(v=jz(d4(x),86)).e,p=v.f,c=i.Math.min(c,g.a-p.a/2),l=i.Math.min(l,g.b-p.b/2),o=i.Math.max(o,g.a+p.a/2),s=i.Math.max(s,g.b+p.b/2);for(h=new OT((f=jz(JIt(a,(SIt(),Sxe)),116)).b-c,f.d-l),w=cmt(t.b,0);w.b!=w.d.c;)iO(d=yEt(v=jz(d4(w),86),sxe),239)&&kI(r=jz(d,33),(u=VP(v.e,h)).a-r.g/2,u.b-r.f/2);for(y=cmt(t.a,0);y.b!=y.d.c;)m=jz(d4(y),188),(n=jz(yEt(m,sxe),79))&&(n6(e=m.a,b=new hI(m.b.e),e.a,e.a.a),n6(e,R=new hI(m.c.e),e.c.b,e.c),JEt(b,jz(Nmt(e,1),8),m.b.f),JEt(R,jz(Nmt(e,e.b-2),8),m.c.f),G$t(e,aBt(n,!0,!0)));PWt(a,o-c+(f.b+f.c),s-l+(f.d+f.a),!1,!1)}function Aqt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m;for(yP(c=new _2(l=t.b,0),new $Y(t)),b=!1,r=1;c.b<c.d.gc();){for(EN(c.b<c.d.gc()),s=jz(c.d.Xb(c.c=c.b++),29),u1(r,l.c.length),f=jz(l.c[r],29),p=(g=a0(s.a)).c.length,h=new Wf(g);h.a<h.c.c.length;)EQ(u=jz(J1(h),10),f);if(b){for(d=W1(new lw(g),0);d.c.Sb();)for(a=new Wf(a0(uft(u=jz(h6(d),10))));a.a<a.c.c.length;)tzt(i=jz(J1(a),17),!0),lct(t,(lGt(),zde),(cM(),!0)),n=nVt(t,i,p),e=jz(yEt(u,Nde),305),m=jz(OU(n,n.c.length-1),17),e.k=m.c.i,e.n=m,e.b=i.d.i,e.c=i;b=!1}else 0!=g.c.length&&(u1(0,g.c.length),jz(g.c[0],10).k==(oCt(),_se)&&(b=!0,r=-1));++r}for(o=new _2(t.b,0);o.b<o.d.gc();)EN(o.b<o.d.gc()),0==jz(o.d.Xb(o.c=o.b++),29).a.c.length&&lG(o)}function Dqt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;if((d=jz(jz(c7(t.r,e),21),84)).gc()<=2||e==(wWt(),sAe)||e==(wWt(),SAe))XWt(t,e);else{for(b=t.u.Hc((dAt(),aAe)),n=e==(wWt(),cAe)?(Not(),Bae):(Not(),Oae),y=e==cAe?(H9(),nae):(H9(),aae),a=Xx($j(n),t.s),m=e==cAe?BKt:PKt,u=d.Kc();u.Ob();)(c=jz(u.Pb(),111)).c&&!(c.c.d.c.length<=0)&&(p=c.b.rf(),g=c.e,(f=(h=c.c).i).b=(o=h.n,h.e.a+o.b+o.c),f.a=(s=h.n,h.e.b+s.d+s.a),b?(f.c=g.a-(r=h.n,h.e.a+r.b+r.c)-t.s,b=!1):f.c=g.a+p.a+t.s,TX(y,oJt),h.f=y,u8(h,(K8(),Jie)),Wz(a.d,new OV(f,wht(a,f))),m=e==cAe?i.Math.min(m,g.b):i.Math.max(m,g.b+c.b.rf().b));for(m+=e==cAe?-t.t:t.t,Cgt((a.e=m,a)),l=d.Kc();l.Ob();)(c=jz(l.Pb(),111)).c&&!(c.c.d.c.length<=0)&&((f=c.c.i).c-=c.e.a,f.d-=c.e.b)}}function Iqt(t,e,n){var a;if(Akt(n,"StretchWidth layering",1),0!=e.a.c.length){for(t.c=e,t.t=0,t.u=0,t.i=BKt,t.g=PKt,t.d=Hw(_B(yEt(e,(zYt(),yme)))),Vmt(t),CIt(t),EIt(t),MRt(t),gpt(t),t.i=i.Math.max(1,t.i),t.g=i.Math.max(1,t.g),t.d=t.d/t.i,t.f=t.g/t.i,t.s=Fyt(t),a=new $Y(t.c),Wz(t.c.b,a),t.r=a0(t.p),t.n=RJ(t.k,t.k.length);0!=t.r.c.length;)t.o=Vut(t),!t.o||_ct(t)&&0!=t.b.a.gc()?(M_t(t,a),a=new $Y(t.c),Wz(t.c.b,a),jat(t.a,t.b),t.b.a.$b(),t.t=t.u,t.u=0):_ct(t)?(t.c.b.c=O5(Dte,zGt,1,0,5,1),a=new $Y(t.c),Wz(t.c.b,a),t.t=0,t.u=0,t.b.a.$b(),t.a.a.$b(),++t.f,t.r=a0(t.p),t.n=RJ(t.k,t.k.length)):(EQ(t.o,a),y9(t.r,t.o),RW(t.b,t.o),t.t=t.t-t.k[t.o.p]*t.d+t.j[t.o.p],t.u+=t.e[t.o.p]*t.d);e.a.c=O5(Dte,zGt,1,0,5,1),XSt(e.b),zCt(n)}else zCt(n)}function Lqt(t){var e,n,a,r;for(Kk(AZ(new NU(null,new h1(t.a.b,16)),new wa),new xa),u_t(t),Kk(AZ(new NU(null,new h1(t.a.b,16)),new Ra),new _a),t.c==(kft(),XSe)&&(Kk(AZ(htt(new NU(null,new h1(new Cf(t.f),1)),new ka),new Ea),new _p(t)),Kk(AZ(DZ(htt(htt(new NU(null,new h1(t.d.b,16)),new Ca),new Sa),new Ta),new Aa),new Ep(t))),r=new OT(BKt,BKt),e=new OT(PKt,PKt),a=new Wf(t.a.b);a.a<a.c.c.length;)n=jz(J1(a),57),r.a=i.Math.min(r.a,n.d.c),r.b=i.Math.min(r.b,n.d.d),e.a=i.Math.max(e.a,n.d.c+n.d.b),e.b=i.Math.max(e.b,n.d.d+n.d.a);VP(vD(t.d.c),zN(new OT(r.a,r.b))),VP(vD(t.d.f),qP(new OT(e.a,e.b),r)),sMt(t,r,e),DW(t.f),DW(t.b),DW(t.g),DW(t.e),t.a.a.c=O5(Dte,zGt,1,0,5,1),t.a.b.c=O5(Dte,zGt,1,0,5,1),t.a=null,t.d=null}function Oqt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;for(i=new Lm,g=new Wf(e.a);g.a<g.c.c.length;)if((h=(f=jz(J1(g),10)).e)&&(pst(i,Oqt(t,h,f)),RVt(t,h,f),jz(yEt(h,(lGt(),Xde)),21).Hc((hBt(),dde))))for(m=jz(yEt(f,(zYt(),tme)),98),d=jz(yEt(f,ime),174).Hc((dAt(),eAe)),b=new Wf(f.j);b.a<b.c.c.length;)for(p=jz(J1(b),11),(a=jz(NY(t.b,p),10))||(lct(a=hYt(p,m,p.j,-(p.e.c.length-p.g.c.length),null,new HR,p.o,jz(yEt(h,Vpe),103),h),fhe,p),YG(t.b,p,a),Wz(h.a,a)),r=jz(OU(a.j,0),11),l=new Wf(p.f);l.a<l.c.c.length;)c=jz(J1(l),70),(o=new zR).o.a=c.o.a,o.o.b=c.o.b,Wz(r.f,o),d||(y=p.j,u=0,$q(jz(yEt(f,ime),21))&&(u=IAt(c.n,c.o,p.o,0,y)),m==(Z_t(),ZTe)||(wWt(),hAe).Hc(y)?o.o.a=u:o.o.b=u);return $Vt(t,e,n,i,s=new Lm),n&&SUt(t,e,n,s),s}function Mqt(t,e,n){var i,a,r,o,s,c,l,u;if(!t.c[e.c.p][e.p].e){for(t.c[e.c.p][e.p].e=!0,t.c[e.c.p][e.p].b=0,t.c[e.c.p][e.p].d=0,t.c[e.c.p][e.p].a=null,u=new Wf(e.j);u.a<u.c.c.length;)for(l=jz(J1(u),11),c=(n?new $g(l):new Hg(l)).Kc();c.Ob();)(o=(s=jz(c.Pb(),11)).i).c==e.c?o!=e&&(Mqt(t,o,n),t.c[e.c.p][e.p].b+=t.c[o.c.p][o.p].b,t.c[e.c.p][e.p].d+=t.c[o.c.p][o.p].d):(t.c[e.c.p][e.p].d+=t.g[s.p],++t.c[e.c.p][e.p].b);if(r=jz(yEt(e,(lGt(),Ode)),15))for(a=r.Kc();a.Ob();)i=jz(a.Pb(),10),e.c==i.c&&(Mqt(t,i,n),t.c[e.c.p][e.p].b+=t.c[i.c.p][i.p].b,t.c[e.c.p][e.p].d+=t.c[i.c.p][i.p].d);t.c[e.c.p][e.p].b>0&&(t.c[e.c.p][e.p].d+=zLt(t.i,24)*oXt*.07000000029802322-.03500000014901161,t.c[e.c.p][e.p].a=t.c[e.c.p][e.p].d/t.c[e.c.p][e.p].b)}}function Nqt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g;for(h=new Wf(t);h.a<h.c.c.length;){for(JM((d=jz(J1(h),10)).n),JM(d.o),Y7(d.f),GPt(d),rPt(d),g=new Wf(d.j);g.a<g.c.c.length;){for(JM((f=jz(J1(g),11)).n),JM(f.a),JM(f.o),HTt(f,rvt(f.j)),(a=jz(yEt(f,(zYt(),eme)),19))&&lct(f,eme,nht(-a.a)),i=new Wf(f.g);i.a<i.c.c.length;){for(e=cmt((n=jz(J1(i),17)).a,0);e.b!=e.d.c;)JM(jz(d4(e),8));if(o=jz(yEt(n,bbe),74))for(r=cmt(o,0);r.b!=r.d.c;)JM(jz(d4(r),8));for(l=new Wf(n.b);l.a<l.c.c.length;)JM((s=jz(J1(l),70)).n),JM(s.o)}for(u=new Wf(f.f);u.a<u.c.c.length;)JM((s=jz(J1(u),70)).n),JM(s.o)}for(d.k==(oCt(),kse)&&(lct(d,(lGt(),Gde),rvt(jz(yEt(d,Gde),61))),fNt(d)),c=new Wf(d.b);c.a<c.c.c.length;)GPt(s=jz(J1(c),70)),JM(s.o),JM(s.n)}}function Bqt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w;for(t.e=e,s=QAt(e),v=new Lm,i=new Wf(s);i.a<i.c.c.length;){for(n=jz(J1(i),15),w=new Lm,v.c[v.c.length]=w,c=new Ny,h=n.Kc();h.Ob();){for(r=XPt(t,d=jz(h.Pb(),33),!0,0,0),w.c[w.c.length]=r,f=d.i,g=d.j,!d.n&&(d.n=new tW(HDe,d,1,7)),u=new AO(d.n);u.e!=u.i.gc();)a=XPt(t,jz(wmt(u),137),!1,f,g),w.c[w.c.length]=a;for(!d.c&&(d.c=new tW(VDe,d,9,9)),b=new AO(d.c);b.e!=b.i.gc();)for(o=XPt(t,p=jz(wmt(b),118),!1,f,g),w.c[w.c.length]=o,m=p.i+f,y=p.j+g,!p.n&&(p.n=new tW(HDe,p,1,7)),l=new AO(p.n);l.e!=l.i.gc();)a=XPt(t,jz(wmt(l),137),!1,m,y),w.c[w.c.length]=a;jat(c,KK(Ynt(Cst(Hx(Mte,1),zGt,20,0,[gOt(d),fOt(d)]))))}qOt(t,c,w)}return t.f=new PR(v),Hot(t.f,e),t.f}function Pqt(t,e,n,i,a){var r,o,s,c,l,u,d,h,f,g,p,b;null==(g=NY(t.e,i))&&(l=jz(g=new pw,183),c=new HY(e+"_s"+a),net(l,H7t,c)),JY(n,f=jz(g,183)),zK(b=new pw,"x",i.j),zK(b,"y",i.k),net(f,q7t,b),zK(d=new pw,"x",i.b),zK(d,"y",i.c),net(f,"endPoint",d),!W_((!i.a&&(i.a=new DO(LDe,i,5)),i.a))&&(r=new Wb(u=new Eh),t6((!i.a&&(i.a=new DO(LDe,i,5)),i.a),r),net(f,N7t,u)),!!Eyt(i)&&aEt(t.a,f,P7t,BSt(t,Eyt(i))),!!Cyt(i)&&aEt(t.a,f,B7t,BSt(t,Cyt(i))),!(0==(!i.e&&(i.e=new cF(PDe,i,10,9)),i.e).i)&&(o=new kA(t,h=new Eh),t6((!i.e&&(i.e=new cF(PDe,i,10,9)),i.e),o),net(f,j7t,h)),0!=(!i.g&&(i.g=new cF(PDe,i,9,10)),i.g).i&&(s=new EA(t,p=new Eh),t6((!i.g&&(i.g=new cF(PDe,i,9,10)),i.g),s),net(f,F7t,p))}function Fqt(t){var e,n,a,r,o,s,c;for(zB(),a=t.f.n,s=xY(t.r).a.nc();s.Ob();){if(r=0,(o=jz(s.Pb(),111)).b.Xe((cGt(),aSe))&&(r=Hw(_B(o.b.We(aSe))))<0)switch(o.b.Hf().g){case 1:a.d=i.Math.max(a.d,-r);break;case 3:a.a=i.Math.max(a.a,-r);break;case 2:a.c=i.Math.max(a.c,-r);break;case 4:a.b=i.Math.max(a.b,-r)}if($q(t.u))switch(e=mrt(o.b,r),c=!jz(t.e.We(zCe),174).Hc((QFt(),zAe)),n=!1,o.b.Hf().g){case 1:n=e>a.d,a.d=i.Math.max(a.d,e),c&&n&&(a.d=i.Math.max(a.d,a.a),a.a=a.d+r);break;case 3:n=e>a.a,a.a=i.Math.max(a.a,e),c&&n&&(a.a=i.Math.max(a.a,a.d),a.d=a.a+r);break;case 2:n=e>a.c,a.c=i.Math.max(a.c,e),c&&n&&(a.c=i.Math.max(a.b,a.c),a.b=a.c+r);break;case 4:n=e>a.b,a.b=i.Math.max(a.b,e),c&&n&&(a.b=i.Math.max(a.b,a.c),a.c=a.b+r)}}}function jqt(t){var e,n,i,a,r,o,s,c,l,u,d;for(l=new Wf(t);l.a<l.c.c.length;){switch(c=jz(J1(l),10),r=null,(o=jz(yEt(c,(zYt(),vbe)),163)).g){case 1:case 2:Xst(),r=Iue;break;case 3:case 4:Xst(),r=Aue}if(r)lct(c,(lGt(),Hde),(Xst(),Iue)),r==Aue?BMt(c,o,(rit(),zye)):r==Iue&&BMt(c,o,(rit(),Hye));else if(bI(jz(yEt(c,tme),98))&&0!=c.j.c.length){for(e=!0,d=new Wf(c.j);d.a<d.c.c.length;){if(!((u=jz(J1(d),11)).j==(wWt(),sAe)&&u.e.c.length-u.g.c.length>0||u.j==SAe&&u.e.c.length-u.g.c.length<0)){e=!1;break}for(a=new Wf(u.g);a.a<a.c.c.length;)if(n=jz(J1(a),17),(s=jz(yEt(n.d.i,vbe),163))==(_ft(),$he)||s==zhe){e=!1;break}for(i=new Wf(u.e);i.a<i.c.c.length;)if(n=jz(J1(i),17),(s=jz(yEt(n.c.i,vbe),163))==(_ft(),Fhe)||s==jhe){e=!1;break}}e&&BMt(c,o,(rit(),Uye))}}}function $qt(t,e,n,a,r){var o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;for(_=0,g=0,h=new Wf(e.e);h.a<h.c.c.length;){for(d=jz(J1(h),10),f=0,c=0,l=n?jz(yEt(d,qve),19).a:FZt,y=a?jz(yEt(d,Wve),19).a:FZt,u=i.Math.max(l,y),w=new Wf(d.j);w.a<w.c.c.length;){if(v=jz(J1(w),11),x=d.n.b+v.n.b+v.a.b,a)for(s=new Wf(v.g);s.a<s.c.c.length;)p=(b=(o=jz(J1(s),17)).d).i,e!=t.a[p.p]&&(m=i.Math.max(jz(yEt(p,qve),19).a,jz(yEt(p,Wve),19).a),(R=jz(yEt(o,(zYt(),dme)),19).a)>=u&&R>=m&&(f+=p.n.b+b.n.b+b.a.b-x,++c));if(n)for(s=new Wf(v.e);s.a<s.c.c.length;)p=(b=(o=jz(J1(s),17)).c).i,e!=t.a[p.p]&&(m=i.Math.max(jz(yEt(p,qve),19).a,jz(yEt(p,Wve),19).a),(R=jz(yEt(o,(zYt(),dme)),19).a)>=u&&R>=m&&(f+=p.n.b+b.n.b+b.a.b-x,++c))}c>0&&(_+=f/c,++g)}g>0?(e.a=r*_/g,e.g=g):(e.a=0,e.g=0)}function zqt(t,e){var n,i,a,r,o,s,c,l,u,d;for(i=new Wf(t.a.b);i.a<i.c.c.length;)for(s=new Wf(jz(J1(i),29).a);s.a<s.c.c.length;)o=jz(J1(s),10),e.j[o.p]=o,e.i[o.p]=e.o==(oQ(),awe)?PKt:BKt;for(DW(t.c),r=t.a.b,e.c==(gJ(),Qve)&&(r=iO(r,152)?o7(jz(r,152)):iO(r,131)?jz(r,131).a:iO(r,54)?new lw(r):new Ck(r)),N8(t.e,e,t.b),yC(e.p,null),a=r.Kc();a.Ob();)for(c=jz(a.Pb(),29).a,e.o==(oQ(),awe)&&(c=iO(c,152)?o7(jz(c,152)):iO(c,131)?jz(c,131).a:iO(c,54)?new lw(c):new Ck(c)),d=c.Kc();d.Ob();)u=jz(d.Pb(),10),e.g[u.p]==u&&sYt(t,u,e);for(zUt(t,e),n=r.Kc();n.Ob();)for(d=new Wf(jz(n.Pb(),29).a);d.a<d.c.c.length;)u=jz(J1(d),10),e.p[u.p]=e.p[e.g[u.p].p],u==e.g[u.p]&&(l=Hw(e.i[e.j[u.p].p]),(e.o==(oQ(),awe)&&l>PKt||e.o==iwe&&l<BKt)&&(e.p[u.p]=Hw(e.p[u.p])+l));t.e.cg()}function Hqt(t,e,n,i){var a,r,o,s,c;return bMt(s=new eWt(e),i),a=!0,t&&t.Xe((cGt(),dCe))&&(a=(r=jz(t.We((cGt(),dCe)),103))==(jdt(),$Se)||r==FSe||r==jSe),sPt(s,!1),Aet(s.e.wf(),new Dj(s,!1,a)),IJ(s,s.f,(Net(),Uie),(wWt(),cAe)),IJ(s,s.f,qie,EAe),IJ(s,s.g,Uie,SAe),IJ(s,s.g,qie,sAe),$mt(s,cAe),$mt(s,EAe),cZ(s,sAe),cZ(s,SAe),zB(),(o=s.A.Hc((ypt(),NAe))&&s.B.Hc((QFt(),qAe))?Qgt(s):null)&&nR(s.a,o),Fqt(s),iwt(s),awt(s),GVt(s),kFt(s),yxt(s),Fbt(s,cAe),Fbt(s,EAe),SPt(s),CHt(s),n&&(Uft(s),vxt(s),Fbt(s,sAe),Fbt(s,SAe),c=s.B.Hc((QFt(),WAe)),kTt(s,c,cAe),kTt(s,c,EAe),ETt(s,c,sAe),ETt(s,c,SAe),Kk(new NU(null,new h1(new Tf(s.i),0)),new Tt),Kk(AZ(new NU(null,xY(s.r).a.oc()),new At),new Dt),$_t(s),s.e.uf(s.o),Kk(new NU(null,xY(s.r).a.oc()),new Lt)),s.o}function Uqt(t){var e,n,a,r,o,s,c,l,u,d,h,f,g,p,b;for(u=BKt,a=new Wf(t.a.b);a.a<a.c.c.length;)e=jz(J1(a),81),u=i.Math.min(u,e.d.f.g.c+e.e.a);for(g=new Zk,s=new Wf(t.a.a);s.a<s.c.c.length;)(o=jz(J1(s),189)).i=u,0==o.e&&n6(g,o,g.c.b,g.c);for(;0!=g.b;){for(r=(o=jz(0==g.b?null:(EN(0!=g.b),Det(g,g.a.a)),189)).f.g.c,f=o.a.a.ec().Kc();f.Ob();)d=jz(f.Pb(),81),b=o.i+d.e.a,d.d.g||d.g.c<b?d.o=b:d.o=d.g.c;for(r-=o.f.o,o.b+=r,t.c==(jdt(),jSe)||t.c==PSe?o.c+=r:o.c-=r,h=o.a.a.ec().Kc();h.Ob();)for(l=(d=jz(h.Pb(),81)).f.Kc();l.Ob();)c=jz(l.Pb(),81),p=fI(t.c)?t.f.ef(d,c):t.f.ff(d,c),c.d.i=i.Math.max(c.d.i,d.o+d.g.b+p-c.e.a),c.k||(c.d.i=i.Math.max(c.d.i,c.g.c-c.e.a)),--c.d.e,0==c.d.e&&MH(g,c.d)}for(n=new Wf(t.a.b);n.a<n.c.c.length;)(e=jz(J1(n),81)).g.c=e.o}function Vqt(t){var e,n,i,a,r,o,s,c;switch(0===(s=t.b,e=t.a,jz(yEt(t,(Fxt(),_ie)),427).g)?mL(s,new Jf(new Ut)):mL(s,new Jf(new Vt)),1===jz(yEt(t,xie),428).g?(mL(s,new Ht),mL(s,new qt),mL(s,new Pt)):(mL(s,new Ht),mL(s,new zt)),jz(yEt(t,Eie),250).g){case 0:c=new Kt;break;case 1:c=new Gt;break;case 2:c=new Zt;break;case 3:c=new Yt;break;case 5:c=new Tg(new Zt);break;case 4:c=new Tg(new Gt);break;case 7:c=new MC(new Tg(new Gt),new Tg(new Zt));break;case 8:c=new MC(new Tg(new Yt),new Tg(new Zt));break;default:c=new Tg(new Yt)}for(o=new Wf(s);o.a<o.c.c.length;){for(r=jz(J1(o),167),a=0,n=new nA(nht(i=0),nht(a));$jt(e,r,i,a);)n=jz(c.Ce(n,r),46),i=jz(n.a,19).a,a=jz(n.b,19).a;FPt(e,r,i,a)}}function qqt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;for(h=(r=t.f.b).a,u=r.b,g=t.e.g,f=t.e.f,_I(t.e,r.a,r.b),R=h/g,_=u/f,l=new AO(mZ(t.e));l.e!=l.i.gc();)Cnt(c=jz(wmt(l),137),c.i*R),Snt(c,c.j*_);for(y=new AO(yZ(t.e));y.e!=y.i.gc();)w=(m=jz(wmt(y),118)).i,x=m.j,w>0&&Cnt(m,w*R),x>0&&Snt(m,x*_);for(Qrt(t.b,new de),e=new Lm,s=new olt(new Ef(t.c).a);s.b;)i=jz((o=tnt(s)).cd(),79),n=jz(o.dd(),395).a,a=aBt(i,!1,!1),G$t(d=dkt(CEt(i),HCt(a),n),a),(v=SEt(i))&&-1==x9(e,v,0)&&(e.c[e.c.length]=v,sK(v,(EN(0!=d.b),jz(d.a.a.c,8)),n));for(b=new olt(new Ef(t.d).a);b.b;)i=jz((p=tnt(b)).cd(),79),n=jz(p.dd(),395).a,a=aBt(i,!1,!1),d=dkt(AEt(i),Xct(HCt(a)),n),G$t(d=Xct(d),a),(v=TEt(i))&&-1==x9(e,v,0)&&(e.c[e.c.length]=v,sK(v,(EN(0!=d.b),jz(d.c.b.c,8)),n))}function Wqt(t,e,n,a){var r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;if(0!=n.c.length){for(g=new Lm,f=new Wf(n);f.a<f.c.c.length;)Wz(g,new OT((h=jz(J1(f),33)).i,h.j));for(a.n&&e&&y0(a,o2(e),($lt(),oDe));OEt(t,n);)RLt(t,n,!1);for(a.n&&e&&y0(a,o2(e),($lt(),oDe)),s=0,c=0,r=null,0!=n.c.length&&(u1(0,n.c.length),s=(r=jz(n.c[0],33)).i-(u1(0,g.c.length),jz(g.c[0],8)).a,c=r.j-(u1(0,g.c.length),jz(g.c[0],8)).b),o=i.Math.sqrt(s*s+c*c),d=qut(n);0!=d.a.gc();){for(u=d.a.ec().Kc();u.Ob();)l=jz(u.Pb(),33),b=(p=t.f).i+p.g/2,m=p.j+p.f/2,y=l.i+l.g/2,w=l.j+l.f/2-m,R=(v=y-b)/(x=i.Math.sqrt(v*v+w*w)),_=w/x,Cnt(l,l.i+R*o),Snt(l,l.j+_*o);a.n&&e&&y0(a,o2(e),($lt(),oDe)),d=qut(new QF(d))}t.a&&t.a.lg(new QF(d)),a.n&&e&&y0(a,o2(e),($lt(),oDe)),Wqt(t,e,new QF(d),a)}}function Yqt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;if(b=t.n,m=t.o,f=t.d,h=Hw(_B(ept(t,(zYt(),pme)))),e){for(d=h*(e.gc()-1),g=0,l=e.Kc();l.Ob();)d+=(s=jz(l.Pb(),10)).o.a,g=i.Math.max(g,s.o.b);for(y=b.a-(d-m.a)/2,o=b.b-f.d+g,r=a=m.a/(e.gc()+1),c=e.Kc();c.Ob();)(s=jz(c.Pb(),10)).n.a=y,s.n.b=o-s.o.b,y+=s.o.a+h,(u=NOt(s)).n.a=s.o.a/2-u.a.a,u.n.b=s.o.b,(p=jz(yEt(s,(lGt(),Bde)),11)).e.c.length+p.g.c.length==1&&(p.n.a=r-p.a.a,p.n.b=0,CQ(p,t)),r+=a}if(n){for(d=h*(n.gc()-1),g=0,l=n.Kc();l.Ob();)d+=(s=jz(l.Pb(),10)).o.a,g=i.Math.max(g,s.o.b);for(y=b.a-(d-m.a)/2,o=b.b+m.b+f.a-g,r=a=m.a/(n.gc()+1),c=n.Kc();c.Ob();)(s=jz(c.Pb(),10)).n.a=y,s.n.b=o,y+=s.o.a+h,(u=NOt(s)).n.a=s.o.a/2-u.a.a,u.n.b=0,(p=jz(yEt(s,(lGt(),Bde)),11)).e.c.length+p.g.c.length==1&&(p.n.a=r-p.a.a,p.n.b=m.b,CQ(p,t)),r+=a}}function Gqt(t,e){var n,a,r,o,s,c;if(jz(yEt(e,(lGt(),Xde)),21).Hc((hBt(),dde))){for(c=new Wf(e.a);c.a<c.c.c.length;)(o=jz(J1(c),10)).k==(oCt(),Sse)&&(r=jz(yEt(o,(zYt(),Cbe)),142),t.c=i.Math.min(t.c,o.n.a-r.b),t.a=i.Math.max(t.a,o.n.a+o.o.a+r.c),t.d=i.Math.min(t.d,o.n.b-r.d),t.b=i.Math.max(t.b,o.n.b+o.o.b+r.a));for(s=new Wf(e.a);s.a<s.c.c.length;)if((o=jz(J1(s),10)).k!=(oCt(),Sse))switch(o.k.g){case 2:if((a=jz(yEt(o,(zYt(),vbe)),163))==(_ft(),jhe)){o.n.a=t.c-10,Kwt(o,new Vn).Jb(new np(o));break}if(a==zhe){o.n.a=t.a+10,Kwt(o,new qn).Jb(new ip(o));break}if((n=jz(yEt(o,ehe),303))==(U9(),Sde)){dUt(o).Jb(new ap(o)),o.n.b=t.d-10;break}if(n==Ede){dUt(o).Jb(new rp(o)),o.n.b=t.b+10;break}break;default:throw $m(new Pw("The node type "+o.k+" is not supported by the "+Yse))}}}function Zqt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p;for(c=new OT(i.i+i.g/2,i.j+i.f/2),h=WHt(i),f=jz(JIt(e,(zYt(),tme)),98),p=jz(JIt(i,rme),61),jA(dmt(i),Qbe)||(g=0==i.i&&0==i.j?0:tEt(i,p),Kmt(i,Qbe,g)),lct(a=hYt(i,f,p,h,new OT(e.g,e.f),c,new OT(i.g,i.f),jz(yEt(n,Vpe),103),n),(lGt(),fhe),i),jh(r=jz(OU(a.j,0),11),xjt(i)),lct(a,ime,(dAt(),Qht(iAe))),u=jz(JIt(e,ime),174).Hc(eAe),s=new AO((!i.n&&(i.n=new tW(HDe,i,1,7)),i.n));s.e!=s.i.gc();)if(!zw(RB(JIt(o=jz(wmt(s),137),Hbe)))&&o.a&&(d=zut(o),Wz(r.f,d),!u))switch(l=0,$q(jz(JIt(e,ime),21))&&(l=IAt(new OT(o.i,o.j),new OT(o.g,o.f),new OT(i.g,i.f),0,p)),p.g){case 2:case 4:d.o.a=l;break;case 1:case 3:d.o.b=l}lct(a,Cme,_B(JIt(KJ(e),Cme))),lct(a,Sme,_B(JIt(KJ(e),Sme))),lct(a,kme,_B(JIt(KJ(e),kme))),Wz(n.a,a),YG(t.a,i,a)}function Kqt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;for(Akt(n,"Processor arrange level",1),u=0,kK(),Fat(e,new am((HUt(),exe))),r=e.b,s=cmt(e,e.b),l=!0;l&&s.b.b!=s.d.a;)b=jz(V0(s),86),0==jz(yEt(b,exe),19).a?--r:l=!1;if(o=new JF(new s1(e,0,r)),c=new JF(new s1(e,r,e.b)),0==o.b)for(f=cmt(c,0);f.b!=f.d.c;)lct(jz(d4(f),86),cxe,nht(u++));else for(d=o.b,v=cmt(o,0);v.b!=v.d.c;){for(lct(y=jz(d4(v),86),cxe,nht(u++)),Kqt(t,i=Mst(y),yrt(n,1/d|0)),Fat(i,GG(new am(cxe))),h=new Zk,m=cmt(i,0);m.b!=m.d.c;)for(b=jz(d4(m),86),p=cmt(y.d,0);p.b!=p.d.c;)(g=jz(d4(p),188)).c==b&&n6(h,g,h.c.b,h.c);for(yK(y.d),jat(y.d,h),s=cmt(c,c.b),a=y.d.b,l=!0;0<a&&l&&s.b.b!=s.d.a;)b=jz(V0(s),86),0==jz(yEt(b,exe),19).a?(lct(b,cxe,nht(u++)),--a,yet(s)):l=!1}zCt(n)}function Xqt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b;for(Akt(e,"Inverted port preprocessing",1),s=new _2(t.b,0),n=null,b=new Lm;s.b<s.d.gc();){for(p=n,EN(s.b<s.d.gc()),n=jz(s.d.Xb(s.c=s.b++),29),u=new Wf(b);u.a<u.c.c.length;)EQ(c=jz(J1(u),10),p);for(b.c=O5(Dte,zGt,1,0,5,1),d=new Wf(n.a);d.a<d.c.c.length;)if((c=jz(J1(d),10)).k==(oCt(),Sse)&&bI(jz(yEt(c,(zYt(),tme)),98))){for(g=aPt(c,(rit(),zye),(wWt(),sAe)).Kc();g.Ob();)for(h=jz(g.Pb(),11),a=0,r=(i=jz(Zbt(o=h.e,O5(yse,a1t,17,o.c.length,0,1)),474)).length;a<r;++a)Izt(t,h,i[a],b);for(f=aPt(c,Hye,SAe).Kc();f.Ob();)for(h=jz(f.Pb(),11),a=0,r=(i=jz(Zbt(o=h.g,O5(yse,a1t,17,o.c.length,0,1)),474)).length;a<r;++a)Dzt(t,h,i[a],b)}}for(l=new Wf(b);l.a<l.c.c.length;)EQ(c=jz(J1(l),10),n);zCt(e)}function Jqt(t,e,n,i,a,r){var o,s,c,l,u,d;for(Hot(l=new SCt,e),HTt(l,jz(JIt(e,(zYt(),rme)),61)),lct(l,(lGt(),fhe),e),CQ(l,n),(d=l.o).a=e.g,d.b=e.f,(u=l.n).a=e.i,u.b=e.j,YG(t.a,e,l),(o=o6(DZ(htt(new NU(null,(!e.e&&(e.e=new cF(BDe,e,7,4)),new h1(e.e,16))),new Ge),new We),new Wg(e)))||(o=o6(DZ(htt(new NU(null,(!e.d&&(e.d=new cF(BDe,e,8,5)),new h1(e.d,16))),new Ze),new Ye),new Yg(e))),o||(o=o6(new NU(null,(!e.e&&(e.e=new cF(BDe,e,7,4)),new h1(e.e,16))),new Ke)),lct(l,the,(cM(),!!o)),bUt(l,r,a,jz(JIt(e,Jbe),8)),c=new AO((!e.n&&(e.n=new tW(HDe,e,1,7)),e.n));c.e!=c.i.gc();)!zw(RB(JIt(s=jz(wmt(c),137),Hbe)))&&s.a&&Wz(l.f,zut(s));switch(a.g){case 2:case 1:(l.j==(wWt(),cAe)||l.j==EAe)&&i.Fc((hBt(),pde));break;case 4:case 3:(l.j==(wWt(),sAe)||l.j==SAe)&&i.Fc((hBt(),pde))}return l}function Qqt(t,e,n,a,r,o,s){var c,l,u,d,h,f,g,p,b,m,y,v;for(h=null,a==(fJ(),Lwe)?h=e:a==Owe&&(h=n),p=h.a.ec().Kc();p.Ob();){for(g=jz(p.Pb(),11),b=Dct(Cst(Hx(EEe,1),cZt,8,0,[g.i.n,g.n,g.a])).b,v=new Ny,c=new Ny,u=new m7(g.b);yL(u.a)||yL(u.b);)if(zw(RB(yEt(l=jz(yL(u.a)?J1(u.a):J1(u.b),17),(lGt(),Che))))==r&&-1!=x9(o,l,0)){if(m=l.d==g?l.c:l.d,y=Dct(Cst(Hx(EEe,1),cZt,8,0,[m.i.n,m.n,m.a])).b,i.Math.abs(y-b)<.2)continue;y<b?e.a._b(m)?RW(v,new nA(Lwe,l)):RW(v,new nA(Owe,l)):e.a._b(m)?RW(c,new nA(Lwe,l)):RW(c,new nA(Owe,l))}if(v.a.gc()>1)for(t6(v,new sT(t,f=new lUt(g,v,a))),s.c[s.c.length]=f,d=v.a.ec().Kc();d.Ob();)y9(o,jz(d.Pb(),46).b);if(c.a.gc()>1)for(t6(c,new cT(t,f=new lUt(g,c,a))),s.c[s.c.length]=f,d=c.a.ec().Kc();d.Ob();)y9(o,jz(d.Pb(),46).b)}}function tWt(t){LE(t,new kkt(fR(bR(hR(pR(gR(new bs,f3t),"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 Uo),f3t))),r2(t,f3t,p4t,ymt(ORe)),r2(t,f3t,mQt,ymt(BRe)),r2(t,f3t,CQt,ymt(CRe)),r2(t,f3t,$Qt,ymt(SRe)),r2(t,f3t,EQt,ymt(TRe)),r2(t,f3t,SQt,ymt(ERe)),r2(t,f3t,kQt,ymt(ARe)),r2(t,f3t,TQt,ymt(LRe)),r2(t,f3t,l3t,ymt(_Re)),r2(t,f3t,c3t,ymt(kRe)),r2(t,f3t,h3t,ymt(DRe)),r2(t,f3t,o3t,ymt(IRe)),r2(t,f3t,s3t,ymt(MRe)),r2(t,f3t,u3t,ymt(NRe)),r2(t,f3t,d3t,ymt(PRe))}function eWt(t){var e;if(this.r=OZ(new Ct,new St),this.b=new zft(jz(yY(MAe),290)),this.p=new zft(jz(yY(MAe),290)),this.i=new zft(jz(yY(Lae),290)),this.e=t,this.o=new hI(t.rf()),this.D=t.Df()||zw(RB(t.We((cGt(),kCe)))),this.A=jz(t.We((cGt(),BCe)),21),this.B=jz(t.We(zCe),21),this.q=jz(t.We(rSe),98),this.u=jz(t.We(lSe),21),!fEt(this.u))throw $m(new nx("Invalid port label placement: "+this.u));if(this.v=zw(RB(t.We(dSe))),this.j=jz(t.We(MCe),21),!tOt(this.j))throw $m(new nx("Invalid node label placement: "+this.j));this.n=jz(Qwt(t,LCe),116),this.k=Hw(_B(Qwt(t,TSe))),this.d=Hw(_B(Qwt(t,SSe))),this.w=Hw(_B(Qwt(t,NSe))),this.s=Hw(_B(Qwt(t,ASe))),this.t=Hw(_B(Qwt(t,DSe))),this.C=jz(Qwt(t,OSe),142),this.c=2*this.d,e=!this.B.Hc((QFt(),zAe)),this.f=new Tbt(0,e,0),this.g=new Tbt(1,e,0),ww(this.f,(Net(),Vie),this.g)}function nWt(t,e,n,a,r){var o,s,c,l,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C;for(w=0,b=0,p=0,g=1,v=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));v.e!=v.i.gc();)g+=F4(new oq(XO(gOt(m=jz(wmt(v),33)).a.Kc(),new u))),k=m.g,b=i.Math.max(b,k),f=m.f,p=i.Math.max(p,f),w+=k*f;for(s=w+2*a*a*g*(!t.a&&(t.a=new tW(UDe,t,10,11)),t.a).i,o=i.Math.sqrt(s),l=i.Math.max(o*n,b),c=i.Math.max(o/n,p),y=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));y.e!=y.i.gc();)m=jz(wmt(y),33),E=r.b+(zLt(e,26)*iXt+zLt(e,27)*aXt)*(l-m.g),C=r.b+(zLt(e,26)*iXt+zLt(e,27)*aXt)*(c-m.f),Cnt(m,E),Snt(m,C);for(_=l+(r.b+r.c),R=c+(r.d+r.a),x=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));x.e!=x.i.gc();)for(h=new oq(XO(gOt(jz(wmt(x),33)).a.Kc(),new u));gIt(h);)QDt(d=jz(V6(h),79))||$Yt(d,e,_,R);PWt(t,_+=r.b+r.c,R+=r.d+r.a,!1,!0)}function iWt(t){var e,n,i,a,r,o,s,c,l,u,d;if(null==t)throw $m(new _x(VGt));if(l=t,c=!1,(r=t.length)>0&&(d1(0,t.length),(45==(e=t.charCodeAt(0))||43==e)&&(t=t.substr(1),--r,c=45==e)),0==r)throw $m(new _x(NKt+l+'"'));for(;t.length>0&&(d1(0,t.length),48==t.charCodeAt(0));)t=t.substr(1),--r;if(r>(n$t(),Mee)[10])throw $m(new _x(NKt+l+'"'));for(a=0;a<r;a++)if(-1==ebt((d1(a,t.length),t.charCodeAt(a))))throw $m(new _x(NKt+l+'"'));for(d=0,o=Lee[10],u=Oee[10],s=w9(Nee[10]),n=!0,(i=r%o)>0&&(d=-parseInt(t.substr(0,i),10),t=t.substr(i),r-=i,n=!1);r>=o;){if(i=parseInt(t.substr(0,o),10),t=t.substr(o),r-=o,n)n=!1;else{if(Gut(d,s)<0)throw $m(new _x(NKt+l+'"'));d=aft(d,u)}d=nft(d,i)}if(Gut(d,0)>0)throw $m(new _x(NKt+l+'"'));if(!c&&Gut(d=w9(d),0)<0)throw $m(new _x(NKt+l+'"'));return d}function aWt(t,e){var n,i,a,r,o,s,c;if(XH(),this.a=new qL(this),this.b=t,this.c=e,this.f=TW(j9((TSt(),KLe),e)),this.f.dc())if((s=yRt(KLe,t))==e)for(this.e=!0,this.d=new Lm,this.f=new hc,this.f.Fc(E9t),jz(OHt(F9(KLe,qet(t)),""),26)==t&&this.f.Fc(aq(KLe,qet(t))),a=RFt(KLe,t).Kc();a.Ob();)switch(i=jz(a.Pb(),170),MG(j9(KLe,i))){case 4:this.d.Fc(i);break;case 5:this.f.Gc(TW(j9(KLe,i)))}else if(XE(),jz(e,66).Oj())for(this.e=!0,this.f=null,this.d=new Lm,o=0,c=(null==t.i&&H$t(t),t.i).length;o<c;++o)for(null==t.i&&H$t(t),n=t.i,i=o>=0&&o<n.length?n[o]:null,r=X1(j9(KLe,i));r;r=X1(j9(KLe,r)))r==e&&this.d.Fc(i);else 1==MG(j9(KLe,e))&&s?(this.f=null,this.d=(_Dt(),uOe)):(this.f=null,this.e=!0,this.d=(kK(),new Hf(e)));else this.e=5==MG(j9(KLe,e)),this.f.Fb(aOe)&&(this.f=aOe)}function rWt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p;for(n=0,a=Cvt(t,e),f=t.s,g=t.t,u=jz(jz(c7(t.r,e),21),84).Kc();u.Ob();)if((l=jz(u.Pb(),111)).c&&!(l.c.d.c.length<=0)){switch(p=l.b.rf(),c=l.b.Xe((cGt(),aSe))?Hw(_B(l.b.We(aSe))):0,(h=(d=l.c).i).b=(s=d.n,d.e.a+s.b+s.c),h.a=(o=d.n,d.e.b+o.d+o.a),e.g){case 1:h.c=l.a?(p.a-h.b)/2:p.a+f,h.d=p.b+c+a,u8(d,(K8(),Kie)),WB(d,(H9(),aae));break;case 3:h.c=l.a?(p.a-h.b)/2:p.a+f,h.d=-c-a-h.a,u8(d,(K8(),Kie)),WB(d,(H9(),nae));break;case 2:h.c=-c-a-h.b,l.a?(r=t.v?h.a:jz(OU(d.d,0),181).rf().b,h.d=(p.b-r)/2):h.d=p.b+g,u8(d,(K8(),Jie)),WB(d,(H9(),iae));break;case 4:h.c=p.a+c+a,l.a?(r=t.v?h.a:jz(OU(d.d,0),181).rf().b,h.d=(p.b-r)/2):h.d=p.b+g,u8(d,(K8(),Xie)),WB(d,(H9(),iae))}(e==(wWt(),cAe)||e==EAe)&&(n=i.Math.max(n,h.a))}n>0&&(jz(oZ(t.b,e),124).a.b=n)}function oWt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b;for(Akt(e,"Comment pre-processing",1),n=0,c=new Wf(t.a);c.a<c.c.c.length;)if(zw(RB(yEt(s=jz(J1(c),10),(zYt(),Rpe))))){for(++n,a=0,i=null,l=null,g=new Wf(s.j);g.a<g.c.c.length;)a+=(h=jz(J1(g),11)).e.c.length+h.g.c.length,1==h.e.c.length&&(l=(i=jz(OU(h.e,0),17)).c),1==h.g.c.length&&(l=(i=jz(OU(h.g,0),17)).d);if(1!=a||l.e.c.length+l.g.c.length!=1||zw(RB(yEt(l.i,Rpe)))){for(b=new Lm,f=new Wf(s.j);f.a<f.c.c.length;){for(d=new Wf((h=jz(J1(f),11)).g);d.a<d.c.c.length;)0==(u=jz(J1(d),17)).d.g.c.length||(b.c[b.c.length]=u);for(o=new Wf(h.e);o.a<o.c.c.length;)0==(r=jz(J1(o),17)).c.e.c.length||(b.c[b.c.length]=r)}for(p=new Wf(b);p.a<p.c.c.length;)tzt(jz(J1(p),17),!0)}else QWt(s,i,l,l.i),AW(c)}e.n&&TH(e,"Found "+n+" comment boxes"),zCt(e)}function sWt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p;if(h=Hw(_B(yEt(t,(zYt(),Cme)))),f=Hw(_B(yEt(t,Sme))),d=Hw(_B(yEt(t,kme))),s=t.o,o=(r=jz(OU(t.j,0),11)).n,p=_St(r,d)){if(e.Hc((dAt(),eAe)))switch(jz(yEt(t,(lGt(),Gde)),61).g){case 1:p.c=(s.a-p.b)/2-o.a,p.d=f;break;case 3:p.c=(s.a-p.b)/2-o.a,p.d=-f-p.a;break;case 2:n&&0==r.e.c.length&&0==r.g.c.length?(u=i?p.a:jz(OU(r.f,0),70).o.b,p.d=(s.b-u)/2-o.b):p.d=s.b+f-o.b,p.c=-h-p.b;break;case 4:n&&0==r.e.c.length&&0==r.g.c.length?(u=i?p.a:jz(OU(r.f,0),70).o.b,p.d=(s.b-u)/2-o.b):p.d=s.b+f-o.b,p.c=h}else if(e.Hc(iAe))switch(jz(yEt(t,(lGt(),Gde)),61).g){case 1:case 3:p.c=o.a+h;break;case 2:case 4:n&&!r.c?(u=i?p.a:jz(OU(r.f,0),70).o.b,p.d=(s.b-u)/2-o.b):p.d=o.b+f}for(a=p.d,l=new Wf(r.f);l.a<l.c.c.length;)(g=(c=jz(J1(l),70)).n).a=p.c,g.b=a,a+=c.o.b+d}}function cWt(){ND(dOe,new Zl),ND(HOe,new ou),ND(UOe,new mu),ND(VOe,new Tu),ND(zee,new Lu),ND(Hx(IMe,1),new Ou),ND(wee,new Mu),ND(Ree,new Nu),ND(zee,new jl),ND(zee,new $l),ND(zee,new zl),ND(Cee,new Hl),ND(zee,new Ul),ND(Bte,new Vl),ND(Bte,new ql),ND(zee,new Wl),ND(See,new Yl),ND(zee,new Gl),ND(zee,new Kl),ND(zee,new Xl),ND(zee,new Jl),ND(zee,new Ql),ND(Hx(IMe,1),new tu),ND(zee,new eu),ND(zee,new nu),ND(Bte,new iu),ND(Bte,new au),ND(zee,new ru),ND(Dee,new su),ND(zee,new cu),ND(Bee,new lu),ND(zee,new uu),ND(zee,new du),ND(zee,new hu),ND(zee,new fu),ND(Bte,new gu),ND(Bte,new pu),ND(zee,new bu),ND(zee,new yu),ND(zee,new vu),ND(zee,new wu),ND(zee,new xu),ND(zee,new Ru),ND(Fee,new _u),ND(zee,new ku),ND(zee,new Eu),ND(zee,new Cu),ND(Fee,new Su),ND(Bee,new Au),ND(zee,new Du),ND(Dee,new Iu)}function lWt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;if((d=e.length)>0&&(d1(0,e.length),64!=(s=e.charCodeAt(0)))){if(37==s&&(c=!1,0!=(u=e.lastIndexOf("%"))&&(u==d-1||(d1(u+1,e.length),c=46==e.charCodeAt(u+1))))){if(y=mF("%",o=e.substr(1,u-1))?null:IWt(o),i=0,c)try{i=djt(e.substr(u+2),FZt,NGt)}catch(v){throw iO(v=dst(v),127)?$m(new I9(v)):$m(v)}for(p=Rat(t.Wg());p.Ob();)if(iO(f=kot(p),510)&&(m=(a=jz(f,590)).d,(null==y?null==m:mF(y,m))&&0==i--))return a;return null}if(h=-1==(l=e.lastIndexOf("."))?e:e.substr(0,l),n=0,-1!=l)try{n=djt(e.substr(l+1),FZt,NGt)}catch(v){if(!iO(v=dst(v),127))throw $m(v);h=e}for(h=mF("%",h)?null:IWt(h),g=Rat(t.Wg());g.Ob();)if(iO(f=kot(g),191)&&(b=(r=jz(f,191)).ne(),(null==h?null==b:mF(h,b))&&0==n--))return r;return null}return FUt(t,e)}function uWt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k;for(v=new Lm,d=new Wf(t.b);d.a<d.c.c.length;)for(g=new Wf(jz(J1(d),29).a);g.a<g.c.c.length;)if((h=jz(J1(g),10)).k==(oCt(),kse)&&IN(h,(lGt(),Yde))){for(p=null,m=null,b=null,R=new Wf(h.j);R.a<R.c.c.length;)switch(x=jz(J1(R),11),x.j.g){case 4:p=x;break;case 2:m=x;break;default:b=x}for(l=new BR((y=jz(OU(b.g,0),17)).a),VP(c=new hI(b.n),h.n),JW(cmt(l,0),c),w=Xct(y.a),VP(u=new hI(b.n),h.n),n6(w,u,w.c.b,w.c),_=jz(yEt(h,Yde),10),k=jz(OU(_.j,0),11),r=0,s=(i=jz(Zbt(p.e,O5(yse,a1t,17,0,0,1)),474)).length;r<s;++r)_Q(e=i[r],k),Ylt(e.a,e.a.b,l);for(a=0,o=(n=X0(m.g)).length;a<o;++a)kQ(e=n[a],k),Ylt(e.a,0,w);kQ(y,null),_Q(y,null),v.c[v.c.length]=h}for(f=new Wf(v);f.a<f.c.c.length;)EQ(h=jz(J1(f),10),null)}function dWt(){var t,e,n;for(dWt=D,new vtt(1,0),new vtt(10,0),new vtt(0,0),Hee=O5(Kee,cZt,240,11,0,1),Uee=O5(SMe,YZt,25,100,15,1),Vee=Cst(Hx(LMe,1),HKt,25,15,[1,5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125,6103515625,30517578125,152587890625,762939453125,3814697265625,19073486328125,95367431640625,476837158203125,0x878678326eac9]),qee=O5(TMe,lKt,25,Vee.length,15,1),Wee=Cst(Hx(LMe,1),HKt,25,15,[1,10,100,GZt,1e4,UKt,1e6,1e7,1e8,DKt,1e10,1e11,1e12,1e13,1e14,1e15,1e16]),Yee=O5(TMe,lKt,25,Wee.length,15,1),Gee=O5(Kee,cZt,240,11,0,1),t=0;t<Gee.length;t++)Hee[t]=new vtt(t,0),Gee[t]=new vtt(0,t),Uee[t]=48;for(;t<Uee.length;t++)Uee[t]=48;for(n=0;n<qee.length;n++)qee[n]=rAt(Vee[n]);for(e=0;e<Yee.length;e++)Yee[e]=rAt(Wee[e]);IDt()}function hWt(){function t(){this.obj=this.createObject()}return t.prototype.createObject=function(t){return Object.create(null)},t.prototype.get=function(t){return this.obj[t]},t.prototype.set=function(t,e){this.obj[t]=e},t.prototype[nXt]=function(t){delete this.obj[t]},t.prototype.keys=function(){return Object.getOwnPropertyNames(this.obj)},t.prototype.entries=function(){var t=this.keys(),e=this,n=0;return{next:function(){if(n>=t.length)return{done:!0};var i=t[n++];return{value:[i,e.get(i)],done:!1}}}},VBt()||(t.prototype.createObject=function(){return{}},t.prototype.get=function(t){return this.obj[":"+t]},t.prototype.set=function(t,e){this.obj[":"+t]=e},t.prototype[nXt]=function(t){delete this.obj[":"+t]},t.prototype.keys=function(){var t=[];for(var e in this.obj)58==e.charCodeAt(0)&&t.push(e.substring(1));return t}),t}function fWt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g,p;if(C$t(),null==t)return null;if(0==(d=8*t.length))return"";for(h=d/24|0,r=null,r=O5(SMe,YZt,25,4*(0!=(s=d%24)?h+1:h),15,1),l=0,u=0,e=0,n=0,i=0,o=0,a=0,c=0;c<h;c++)e=t[a++],u=(15&(n=t[a++]))<<24>>24,l=(3&e)<<24>>24,f=-128&e?(e>>2^192)<<24>>24:e>>2<<24>>24,g=-128&n?(n>>4^240)<<24>>24:n>>4<<24>>24,p=-128&(i=t[a++])?(i>>6^252)<<24>>24:i>>6<<24>>24,r[o++]=WOe[f],r[o++]=WOe[g|l<<4],r[o++]=WOe[u<<2|p],r[o++]=WOe[63&i];return 8==s?(l=(3&(e=t[a]))<<24>>24,f=-128&e?(e>>2^192)<<24>>24:e>>2<<24>>24,r[o++]=WOe[f],r[o++]=WOe[l<<4],r[o++]=61,r[o++]=61):16==s&&(e=t[a],u=(15&(n=t[a+1]))<<24>>24,l=(3&e)<<24>>24,f=-128&e?(e>>2^192)<<24>>24:e>>2<<24>>24,g=-128&n?(n>>4^240)<<24>>24:n>>4<<24>>24,r[o++]=WOe[f],r[o++]=WOe[g|l<<4],r[o++]=WOe[u<<2],r[o++]=61),$pt(r,0,r.length)}function gWt(t,e){var n,a,r,o,s,c;if(0==t.e&&t.p>0&&(t.p=-(t.p-1)),t.p>FZt&&t3(e,t.p-cKt),s=e.q.getDate(),FJ(e,1),t.k>=0&&bQ(e,t.k),t.c>=0?FJ(e,t.c):t.k>=0?(a=35-new mct(e.q.getFullYear()-cKt,e.q.getMonth(),35).q.getDate(),FJ(e,i.Math.min(a,s))):FJ(e,s),t.f<0&&(t.f=e.q.getHours()),t.b>0&&t.f<12&&(t.f+=12),aO(e,24==t.f&&t.g?0:t.f),t.j>=0&&g7(e,t.j),t.n>=0&&V5(e,t.n),t.i>=0&&fD(e,ift(aft(ARt(uot(e.q.getTime()),GZt),GZt),t.i)),t.a&&(t3(r=new Ak,r.q.getFullYear()-cKt-80),sC(uot(e.q.getTime()),uot(r.q.getTime()))&&t3(e,r.q.getFullYear()-cKt+100)),t.d>=0)if(-1==t.c)(n=(7+t.d-e.q.getDay())%7)>3&&(n-=7),c=e.q.getMonth(),FJ(e,e.q.getDate()+n),e.q.getMonth()!=c&&FJ(e,e.q.getDate()+(n>0?-7:7));else if(e.q.getDay()!=t.d)return!1;return t.o>FZt&&(o=e.q.getTimezoneOffset(),fD(e,ift(uot(e.q.getTime()),60*(t.o-o)*GZt))),!0}function pWt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m;if(iO(a=yEt(e,(lGt(),fhe)),239)){for(f=jz(a,33),g=e.e,d=new hI(e.c),r=e.d,d.a+=r.b,d.b+=r.d,kM(jz(JIt(f,(zYt(),zbe)),174),(QFt(),HAe))&&(Sh(h=jz(JIt(f,Ube),116),r.a),Bh(h,r.d),Th(h,r.b),Ph(h,r.c)),n=new Lm,l=new Wf(e.a);l.a<l.c.c.length;)for(iO(yEt(s=jz(J1(l),10),fhe),239)?SWt(s,d):iO(yEt(s,fhe),186)&&!g&&kI(i=jz(yEt(s,fhe),118),(b=v$t(e,s,i.g,i.f)).a,b.b),p=new Wf(s.j);p.a<p.c.c.length;)Kk(AZ(new NU(null,new h1(jz(J1(p),11).g,16)),new Gg(s)),new Zg(n));if(g)for(p=new Wf(g.j);p.a<p.c.c.length;)Kk(AZ(new NU(null,new h1(jz(J1(p),11).g,16)),new Kg(g)),new Xg(n));for(m=jz(JIt(f,Xpe),218),o=new Wf(n);o.a<o.c.c.length;)bqt(jz(J1(o),17),m,d);for(yjt(e),c=new Wf(e.a);c.a<c.c.c.length;)(u=(s=jz(J1(c),10)).e)&&pWt(t,u)}}function bWt(t){LE(t,new kkt(mR(fR(bR(hR(pR(gR(new bs,pQt),"ELK Force"),"Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported."),new ge),pQt),xV((lIt(),QDe),Cst(Hx(iIe,1),IZt,237,0,[XDe]))))),r2(t,pQt,bQt,nht(1)),r2(t,pQt,mQt,80),r2(t,pQt,yQt,5),r2(t,pQt,GJt,gQt),r2(t,pQt,vQt,nht(1)),r2(t,pQt,wQt,(cM(),!0)),r2(t,pQt,ZJt,Gre),r2(t,pQt,xQt,ymt($re)),r2(t,pQt,RQt,ymt(Zre)),r2(t,pQt,_Qt,!1),r2(t,pQt,kQt,ymt(Wre)),r2(t,pQt,EQt,ymt(qre)),r2(t,pQt,CQt,ymt(Vre)),r2(t,pQt,SQt,ymt(Ure)),r2(t,pQt,TQt,ymt(Kre)),r2(t,pQt,sQt,ymt(Hre)),r2(t,pQt,uQt,ymt(aoe)),r2(t,pQt,cQt,ymt(zre)),r2(t,pQt,hQt,ymt(Qre)),r2(t,pQt,lQt,ymt(toe))}function mWt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g;if(!jz(jz(c7(t.r,e),21),84).dc()){if(l=(s=jz(oZ(t.b,e),124)).i,c=s.n,d=CBt(t,e),a=l.b-c.b-c.c,r=s.a.a,o=l.c+c.b,g=t.w,(d==(amt(),$Te)||d==HTe)&&1==jz(jz(c7(t.r,e),21),84).gc()&&(r=d==$Te?r-2*t.w:r,d=jTe),a<r&&!t.B.Hc((QFt(),YAe)))d==$Te?o+=g+=(a-r)/(jz(jz(c7(t.r,e),21),84).gc()+1):g+=(a-r)/(jz(jz(c7(t.r,e),21),84).gc()-1);else switch(a<r&&(r=d==$Te?r-2*t.w:r,d=jTe),d.g){case 3:o+=(a-r)/2;break;case 4:o+=a-r;break;case 0:n=(a-r)/(jz(jz(c7(t.r,e),21),84).gc()+1),o+=g+=i.Math.max(0,n);break;case 1:n=(a-r)/(jz(jz(c7(t.r,e),21),84).gc()-1),g+=i.Math.max(0,n)}for(f=jz(jz(c7(t.r,e),21),84).Kc();f.Ob();)(h=jz(f.Pb(),111)).e.a=o+h.d.b,h.e.b=(u=h.b).Xe((cGt(),aSe))?u.Hf()==(wWt(),cAe)?-u.rf().b-Hw(_B(u.We(aSe))):Hw(_B(u.We(aSe))):u.Hf()==(wWt(),cAe)?-u.rf().b:0,o+=h.d.b+h.b.rf().a+h.d.c+g}}function yWt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p;if(!jz(jz(c7(t.r,e),21),84).dc()){if(l=(s=jz(oZ(t.b,e),124)).i,c=s.n,h=CBt(t,e),a=l.a-c.d-c.a,r=s.a.b,o=l.d+c.d,p=t.w,u=t.o.a,(h==(amt(),$Te)||h==HTe)&&1==jz(jz(c7(t.r,e),21),84).gc()&&(r=h==$Te?r-2*t.w:r,h=jTe),a<r&&!t.B.Hc((QFt(),YAe)))h==$Te?o+=p+=(a-r)/(jz(jz(c7(t.r,e),21),84).gc()+1):p+=(a-r)/(jz(jz(c7(t.r,e),21),84).gc()-1);else switch(a<r&&(r=h==$Te?r-2*t.w:r,h=jTe),h.g){case 3:o+=(a-r)/2;break;case 4:o+=a-r;break;case 0:n=(a-r)/(jz(jz(c7(t.r,e),21),84).gc()+1),o+=p+=i.Math.max(0,n);break;case 1:n=(a-r)/(jz(jz(c7(t.r,e),21),84).gc()-1),p+=i.Math.max(0,n)}for(g=jz(jz(c7(t.r,e),21),84).Kc();g.Ob();)(f=jz(g.Pb(),111)).e.a=(d=f.b).Xe((cGt(),aSe))?d.Hf()==(wWt(),SAe)?-d.rf().a-Hw(_B(d.We(aSe))):u+Hw(_B(d.We(aSe))):d.Hf()==(wWt(),SAe)?-d.rf().a:u,f.e.b=o+f.d.d,o+=f.d.d+f.b.rf().b+f.d.a+p}}function vWt(t){var e,n,a,r,o,s,c,l,d,h,f,g,p,b,m;for(t.n=Hw(_B(yEt(t.g,(zYt(),Tme)))),t.e=Hw(_B(yEt(t.g,Rme))),t.i=t.g.b.c.length,c=t.i-1,g=0,t.j=0,t.k=0,t.a=r7(O5(Dee,cZt,19,t.i,0,1)),t.b=r7(O5(Cee,cZt,333,t.i,7,1)),s=new Wf(t.g.b);s.a<s.c.c.length;){for((r=jz(J1(s),29)).p=c,f=new Wf(r.a);f.a<f.c.c.length;)(h=jz(J1(f),10)).p=g,++g;--c}for(t.f=O5(TMe,lKt,25,g,15,1),t.c=vU(TMe,[cZt,lKt],[48,25],15,[g,3],2),t.o=new Lm,t.p=new Lm,e=0,t.d=0,o=new Wf(t.g.b);o.a<o.c.c.length;){for(c=(r=jz(J1(o),29)).p,a=0,m=0,l=r.a.c.length,d=0,f=new Wf(r.a);f.a<f.c.c.length;)g=(h=jz(J1(f),10)).p,t.f[g]=h.c.p,d+=h.o.b+t.n,n=F4(new oq(XO(uft(h).a.Kc(),new u))),b=F4(new oq(XO(dft(h).a.Kc(),new u))),t.c[g][0]=b-n,t.c[g][1]=n,t.c[g][2]=b,a+=n,m+=b,n>0&&Wz(t.p,h),Wz(t.o,h);p=l+(e-=a),d+=e*t.e,i6(t.a,c,nht(p)),i6(t.b,c,d),t.j=i.Math.max(t.j,p),t.k=i.Math.max(t.k,d),t.d+=e,e+=m}}function wWt(){var t;wWt=D,CAe=new WT(lJt,0),cAe=new WT(yJt,1),sAe=new WT(vJt,2),EAe=new WT(wJt,3),SAe=new WT(xJt,4),kK(),fAe=new Ax(new ZF(t=jz(YR(MAe),9),jz(kP(t,t.length),9),0)),gAe=udt(xV(cAe,Cst(Hx(MAe,1),KQt,61,0,[]))),lAe=udt(xV(sAe,Cst(Hx(MAe,1),KQt,61,0,[]))),RAe=udt(xV(EAe,Cst(Hx(MAe,1),KQt,61,0,[]))),kAe=udt(xV(SAe,Cst(Hx(MAe,1),KQt,61,0,[]))),vAe=udt(xV(cAe,Cst(Hx(MAe,1),KQt,61,0,[EAe]))),hAe=udt(xV(sAe,Cst(Hx(MAe,1),KQt,61,0,[SAe]))),xAe=udt(xV(cAe,Cst(Hx(MAe,1),KQt,61,0,[SAe]))),pAe=udt(xV(cAe,Cst(Hx(MAe,1),KQt,61,0,[sAe]))),_Ae=udt(xV(EAe,Cst(Hx(MAe,1),KQt,61,0,[SAe]))),uAe=udt(xV(sAe,Cst(Hx(MAe,1),KQt,61,0,[EAe]))),yAe=udt(xV(cAe,Cst(Hx(MAe,1),KQt,61,0,[sAe,SAe]))),dAe=udt(xV(sAe,Cst(Hx(MAe,1),KQt,61,0,[EAe,SAe]))),wAe=udt(xV(cAe,Cst(Hx(MAe,1),KQt,61,0,[EAe,SAe]))),bAe=udt(xV(cAe,Cst(Hx(MAe,1),KQt,61,0,[sAe,EAe]))),mAe=udt(xV(cAe,Cst(Hx(MAe,1),KQt,61,0,[sAe,EAe,SAe])))}function xWt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;if(0!=e.b){for(h=new Zk,o=null,f=null,n=CJ(i.Math.floor(i.Math.log(e.b)*i.Math.LOG10E)+1),s=0,y=cmt(e,0);y.b!=y.d.c;)for(b=jz(d4(y),86),HA(f)!==HA(yEt(b,(HUt(),nxe)))&&(f=kB(yEt(b,nxe)),s=0),o=null!=f?f+f0(s++,n):f0(s++,n),lct(b,nxe,o),p=new hb(cmt(new db(b).a.d,0));x_(p.a);)n6(h,g=jz(d4(p.a),188).c,h.c.b,h.c),lct(g,nxe,o);for(d=new Om,r=0;r<o.length-n;r++)for(m=cmt(e,0);m.b!=m.d.c;)mQ(d,c=lN(kB(yEt(b=jz(d4(m),86),(HUt(),nxe))),0,r+1),nht(null!=(null==c?zA(AX(d.f,null)):cC(d.g,c))?jz(null==c?zA(AX(d.f,null)):cC(d.g,c),19).a+1:1));for(u=new olt(new Ef(d).a);u.b;)l=tnt(u),a=nht(null!=NY(t.a,l.cd())?jz(NY(t.a,l.cd()),19).a:0),mQ(t.a,kB(l.cd()),nht(jz(l.dd(),19).a+a.a)),(!(a=jz(NY(t.b,l.cd()),19))||a.a<jz(l.dd(),19).a)&&mQ(t.b,kB(l.cd()),jz(l.dd(),19));xWt(t,h)}}function RWt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;for(Akt(n,"Interactive node layering",1),a=new Lm,g=new Wf(e.a);g.a<g.c.c.length;){for(l=(u=(h=jz(J1(g),10)).n.a)+h.o.a,l=i.Math.max(u+1,l),y=new _2(a,0),r=null;y.b<y.d.gc();){if(EN(y.b<y.d.gc()),(b=jz(y.d.Xb(y.c=y.b++),569)).c>=l){EN(y.b>0),y.a.Xb(y.c=--y.b);break}b.a>u&&(r?(pst(r.b,b.b),r.a=i.Math.max(r.a,b.a),lG(y)):(Wz(b.b,h),b.c=i.Math.min(b.c,u),b.a=i.Math.max(b.a,l),r=b))}r||((r=new ev).c=u,r.a=l,yP(y,r),Wz(r.b,h))}for(c=e.b,d=0,m=new Wf(a);m.a<m.c.c.length;)for(b=jz(J1(m),569),(o=new $Y(e)).p=d++,c.c[c.c.length]=o,p=new Wf(b.b);p.a<p.c.c.length;)EQ(h=jz(J1(p),10),o),h.p=0;for(f=new Wf(e.a);f.a<f.c.c.length;)0==(h=jz(J1(f),10)).p&&SBt(t,h,e);for(s=new _2(c,0);s.b<s.d.gc();)0==(EN(s.b<s.d.gc()),jz(s.d.Xb(s.c=s.b++),29)).a.c.length&&lG(s);e.a.c=O5(Dte,zGt,1,0,5,1),zCt(n)}function _Wt(t,e,n){var i,a,r,o,s,c,l,u,d,h;if(0!=e.e.c.length&&0!=n.e.c.length){if((i=jz(OU(e.e,0),17).c.i)==(o=jz(OU(n.e,0),17).c.i))return xL(jz(yEt(jz(OU(e.e,0),17),(lGt(),hhe)),19).a,jz(yEt(jz(OU(n.e,0),17),hhe),19).a);for(d=0,h=(u=t.a).length;d<h;++d){if((l=u[d])==i)return 1;if(l==o)return-1}}return 0!=e.g.c.length&&0!=n.g.c.length?(r=jz(yEt(e,(lGt(),uhe)),10),c=jz(yEt(n,uhe),10),a=0,s=0,IN(jz(OU(e.g,0),17),hhe)&&(a=jz(yEt(jz(OU(e.g,0),17),hhe),19).a),IN(jz(OU(n.g,0),17),hhe)&&(s=jz(yEt(jz(OU(e.g,0),17),hhe),19).a),r&&r==c?zw(RB(yEt(jz(OU(e.g,0),17),Che)))&&!zw(RB(yEt(jz(OU(n.g,0),17),Che)))?1:!zw(RB(yEt(jz(OU(e.g,0),17),Che)))&&zw(RB(yEt(jz(OU(n.g,0),17),Che)))||a<s?-1:a>s?1:0:(t.b&&(t.b._b(r)&&(a=jz(t.b.xc(r),19).a),t.b._b(c)&&(s=jz(t.b.xc(c),19).a)),a<s?-1:a>s?1:0)):0!=e.e.c.length&&0!=n.g.c.length?1:-1}function kWt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;for(Akt(e,A1t,1),g=new Lm,w=new Lm,l=new Wf(t.b);l.a<l.c.c.length;)for(b=-1,h=0,f=(d=J0((c=jz(J1(l),29)).a)).length;h<f;++h)if(++b,(u=d[h]).k==(oCt(),Sse)&&bI(jz(yEt(u,(zYt(),tme)),98))){for(IF(jz(yEt(u,(zYt(),tme)),98))||zMt(u),lct(u,(lGt(),nhe),u),g.c=O5(Dte,zGt,1,0,5,1),w.c=O5(Dte,zGt,1,0,5,1),n=new Lm,Hat(y=new Zk,NCt(u,(wWt(),cAe))),DYt(t,y,g,w,n),s=b,x=u,r=new Wf(g);r.a<r.c.c.length;)Zwt(i=jz(J1(r),10),s,c),++b,lct(i,nhe,u),o=jz(OU(i.j,0),11),p=jz(yEt(o,fhe),11),zw(RB(yEt(p,wpe)))||jz(yEt(i,ihe),15).Fc(x);for(yK(y),m=NCt(u,EAe).Kc();m.Ob();)n6(y,jz(m.Pb(),11),y.a,y.a.a);for(DYt(t,y,w,null,n),v=u,a=new Wf(w);a.a<a.c.c.length;)Zwt(i=jz(J1(a),10),++b,c),lct(i,nhe,u),o=jz(OU(i.j,0),11),p=jz(yEt(o,fhe),11),zw(RB(yEt(p,wpe)))||jz(yEt(v,ihe),15).Fc(i);0==n.c.length||lct(u,Ode,n)}zCt(e)}function EWt(t){var e,n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S;for(u=jz(yEt(t,(kat(),soe)),33),p=NGt,b=NGt,f=FZt,g=FZt,y=new Wf(t.e);y.a<y.c.c.length;)_=(m=jz(J1(y),144)).d,k=m.e,p=i.Math.min(p,_.a-k.a/2),b=i.Math.min(b,_.b-k.b/2),f=i.Math.max(f,_.a+k.a/2),g=i.Math.max(g,_.b+k.b/2);for(x=new OT((R=jz(JIt(u,(uPt(),Yre)),116)).b-p,R.d-b),c=new Wf(t.e);c.a<c.c.c.length;)iO(w=yEt(s=jz(J1(c),144),soe),239)&&kI(d=jz(w,33),(v=VP(s.d,x)).a-d.g/2,v.b-d.f/2);for(a=new Wf(t.c);a.a<a.c.c.length;)n=jz(J1(a),282),l=aBt(jz(yEt(n,soe),79),!0,!0),qxt(C=qP(jL(n.d.d),n.c.d),n.c.e.a,n.c.e.b),CI(l,(E=VP(C,n.c.d)).a,E.b),qxt(S=qP(jL(n.c.d),n.d.d),n.d.e.a,n.d.e.b),EI(l,(e=VP(S,n.d.d)).a,e.b);for(o=new Wf(t.d);o.a<o.c.c.length;)r=jz(J1(o),447),kI(jz(yEt(r,soe),137),(h=VP(r.d,x)).a,h.b);PWt(u,f-p+(R.b+R.c),g-b+(R.d+R.a),!1,!0)}function CWt(t){var e,n,i,a,r,o,s,c,l,u,d;for(n=null,s=null,(a=jz(yEt(t.b,(zYt(),ebe)),376))==(A7(),Xye)&&(n=new Lm,s=new Lm),o=new Wf(t.d);o.a<o.c.c.length;)if((r=jz(J1(o),101)).i)switch(r.e.g){case 0:e=jz(r3(new Gk(r.b)),61),a==Xye&&e==(wWt(),cAe)?n.c[n.c.length]=r:a==Xye&&e==(wWt(),EAe)?s.c[s.c.length]=r:Ovt(r,e);break;case 1:c=r.a.d.j,l=r.c.d.j,c==(wWt(),cAe)?dW(r,cAe,(Ast(),yle),r.a):l==cAe?dW(r,cAe,(Ast(),vle),r.c):c==EAe?dW(r,EAe,(Ast(),vle),r.a):l==EAe&&dW(r,EAe,(Ast(),yle),r.c);break;case 2:case 3:kM(i=r.b,(wWt(),cAe))?kM(i,EAe)?kM(i,SAe)?kM(i,sAe)||dW(r,cAe,(Ast(),vle),r.c):dW(r,cAe,(Ast(),yle),r.a):dW(r,cAe,(Ast(),mle),null):dW(r,EAe,(Ast(),mle),null);break;case 4:u=r.a.d.j,d=r.a.d.j,u==(wWt(),cAe)||d==cAe?dW(r,EAe,(Ast(),mle),null):dW(r,cAe,(Ast(),mle),null)}n&&(0==n.c.length||Z$t(n,(wWt(),cAe)),0==s.c.length||Z$t(s,(wWt(),EAe)))}function SWt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g;for(i=jz(yEt(t,(lGt(),fhe)),33),f=jz(yEt(t,(zYt(),jpe)),19).a,r=jz(yEt(t,wbe),19).a,Kmt(i,jpe,nht(f)),Kmt(i,wbe,nht(r)),Cnt(i,t.n.a+e.a),Snt(i,t.n.b+e.b),(0!=jz(JIt(i,Fbe),174).gc()||t.e||HA(yEt(bG(t),Pbe))===HA((Oyt(),yye))&&pI((hyt(),(t.q?t.q:(kK(),kK(),lne))._b(Nbe)?jz(yEt(t,Nbe),197):jz(yEt(bG(t),Bbe),197))))&&(Ent(i,t.o.a),knt(i,t.o.b)),d=new Wf(t.j);d.a<d.c.c.length;)iO(g=yEt(l=jz(J1(d),11),fhe),186)&&(kI(a=jz(g,118),l.n.a,l.n.b),Kmt(a,rme,l.j));for(h=0!=jz(yEt(t,Dbe),174).gc(),c=new Wf(t.b);c.a<c.c.c.length;)o=jz(J1(c),70),(h||0!=jz(yEt(o,Dbe),174).gc())&&(_I(n=jz(yEt(o,fhe),137),o.o.a,o.o.b),kI(n,o.n.a,o.n.b));if(!$q(jz(yEt(t,ime),21)))for(u=new Wf(t.j);u.a<u.c.c.length;)for(s=new Wf((l=jz(J1(u),11)).f);s.a<s.c.c.length;)o=jz(J1(s),70),Ent(n=jz(yEt(o,fhe),137),o.o.a),knt(n,o.o.b),kI(n,o.n.a,o.n.b)}function TWt(t){var e,n,i,a,r;switch(TX(t,n5t),(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b).i+(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c).i){case 0:throw $m(new Pw("The edge must have at least one source or target."));case 1:return 0==(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b).i?KJ(Ckt(jz(Yet((!t.c&&(t.c=new cF(NDe,t,5,8)),t.c),0),82))):KJ(Ckt(jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82)))}if(1==(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b).i&&1==(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c).i){if(a=Ckt(jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82)),r=Ckt(jz(Yet((!t.c&&(t.c=new cF(NDe,t,5,8)),t.c),0),82)),KJ(a)==KJ(r))return KJ(a);if(a==KJ(r))return a;if(r==KJ(a))return r}for(e=Ckt(jz(V6(i=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c)])))),82));gIt(i);)if((n=Ckt(jz(V6(i),82)))!=e&&!Set(n,e))if(KJ(n)==KJ(e))e=KJ(n);else if(!(e=$Lt(e,n)))return null;return e}function AWt(t,e,n){var a,r,o,s,c,l,d,h,f,g,p,b,m,y,v,w,x,R;for(Akt(n,"Polyline edge routing",1),y=Hw(_B(yEt(e,(zYt(),Qpe)))),p=Hw(_B(yEt(e,Ame))),r=Hw(_B(yEt(e,vme))),a=i.Math.min(1,r/p),x=0,l=0,0!=e.b.c.length&&(x=.4*a*(R=lOt(jz(OU(e.b,0),29)))),c=new _2(e.b,0);c.b<c.d.gc();){for(EN(c.b<c.d.gc()),(o=YA(s=jz(c.d.Xb(c.c=c.b++),29),wwe))&&x>0&&(x-=p),_Ut(s,x),h=0,g=new Wf(s.a);g.a<g.c.c.length;){for(d=0,m=new oq(XO(dft(f=jz(J1(g),10)).a.Kc(),new u));gIt(m);)v=g1((b=jz(V6(m),17)).c).b,w=g1(b.d).b,s==b.d.i.c&&!d6(b)&&(GAt(b,x,.4*a*i.Math.abs(v-w)),b.c.j==(wWt(),SAe)&&(v=0,w=0)),d=i.Math.max(d,i.Math.abs(w-v));switch(f.k.g){case 0:case 4:case 1:case 3:case 5:UUt(t,f,x,y)}h=i.Math.max(h,d)}c.b<c.d.gc()&&(R=lOt((EN(c.b<c.d.gc()),jz(c.d.Xb(c.c=c.b++),29))),h=i.Math.max(h,R),EN(c.b>0),c.a.Xb(c.c=--c.b)),l=.4*a*h,!o&&c.b<c.d.gc()&&(l+=p),x+=s.c.a+l}t.a.a.$b(),e.f.a=x,zCt(n)}function DWt(t){var e,n,i,a,r,o,s,c,l,d,h,f,g,p,b,m,y;for(l=new Om,s=new pJ,i=new Wf(t.a.a.b);i.a<i.c.c.length;)if(c=l2(e=jz(J1(i),57)))xTt(l.f,c,e);else if(y=l4(e))for(a=new Wf(y.k);a.a<a.c.c.length;)XAt(s,jz(J1(a),17),e);for(n=new Wf(t.a.a.b);n.a<n.c.c.length;)if(c=l2(e=jz(J1(n),57)))for(o=new oq(XO(dft(c).a.Kc(),new u));gIt(o);)if(!d6(r=jz(V6(o),17))&&(g=r.c,m=r.d,!(wWt(),vAe).Hc(r.c.j)||!vAe.Hc(r.d.j))){if(p=jz(NY(l,r.d.i),57),qMt(aE(iE(rE(nE(new $y,0),100),t.c[e.a.d]),t.c[p.a.d])),g.j==SAe&&Dq((prt(),g)))for(h=jz(c7(s,r),21).Kc();h.Ob();)if((d=jz(h.Pb(),57)).d.c<e.d.c){if((f=t.c[d.a.d])==(b=t.c[e.a.d]))continue;qMt(aE(iE(rE(nE(new $y,1),100),f),b))}if(m.j==sAe&&Aq((prt(),m)))for(h=jz(c7(s,r),21).Kc();h.Ob();)if((d=jz(h.Pb(),57)).d.c>e.d.c){if((f=t.c[e.a.d])==(b=t.c[d.a.d]))continue;qMt(aE(iE(rE(nE(new $y,1),100),f),b))}}}function IWt(t){var e,n,i,a,r,o,s,c;if(BHt(),null==t)return null;if((a=HD(t,Kkt(37)))<0)return t;for(c=new uM(t.substr(0,a)),e=O5(IMe,m7t,25,4,15,1),s=0,i=0,o=t.length;a<o;a++)if(d1(a,t.length),37==t.charCodeAt(a)&&t.length>a+2&&tct((d1(a+1,t.length),t.charCodeAt(a+1)),CIe,SIe)&&tct((d1(a+2,t.length),t.charCodeAt(a+2)),CIe,SIe))if(n=CH((d1(a+1,t.length),t.charCodeAt(a+1)),(d1(a+2,t.length),t.charCodeAt(a+2))),a+=2,i>0?128==(192&n)?e[s++]=n<<24>>24:i=0:n>=128&&(192==(224&n)?(e[s++]=n<<24>>24,i=2):224==(240&n)?(e[s++]=n<<24>>24,i=3):240==(248&n)&&(e[s++]=n<<24>>24,i=4)),i>0){if(s==i){switch(s){case 2:OY(c,((31&e[0])<<6|63&e[1])&ZZt);break;case 3:OY(c,((15&e[0])<<12|(63&e[1])<<6|63&e[2])&ZZt)}s=0,i=0}}else{for(r=0;r<s;++r)OY(c,e[r]&ZZt);s=0,c.a+=String.fromCharCode(n)}else{for(r=0;r<s;++r)OY(c,e[r]&ZZt);s=0,OY(c,(d1(a,t.length),t.charCodeAt(a)))}return c.a}function LWt(t,e,n,i,a){var r,o,s;if(ytt(t,e),o=e[0],r=lZ(n.c,0),s=-1,Kct(n))if(i>0){if(o+i>t.length)return!1;s=qAt(t.substr(0,o+i),e)}else s=qAt(t,e);switch(r){case 71:return s=Vkt(t,o,Cst(Hx(zee,1),cZt,2,6,[uKt,dKt]),e),a.e=s,!0;case 77:return pBt(t,e,a,s,o);case 76:return bBt(t,e,a,s,o);case 69:return iTt(t,e,o,a);case 99:return aTt(t,e,o,a);case 97:return s=Vkt(t,o,Cst(Hx(zee,1),cZt,2,6,["AM","PM"]),e),a.b=s,!0;case 121:return mBt(t,e,o,s,n,a);case 100:return!(s<=0||(a.c=s,0));case 83:return!(s<0)&&xgt(s,o,e[0],a);case 104:12==s&&(s=0);case 75:case 72:return!(s<0||(a.f=s,a.g=!1,0));case 107:return!(s<0||(a.f=s,a.g=!0,0));case 109:return!(s<0||(a.j=s,0));case 115:return!(s<0||(a.n=s,0));case 90:if(o<t.length&&(d1(o,t.length),90==t.charCodeAt(o)))return++e[0],a.o=0,!0;case 122:case 118:return Skt(t,o,e,a);default:return!1}}function OWt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;if(f=jz(jz(c7(t.r,e),21),84),e!=(wWt(),sAe)&&e!=SAe){for(o=e==cAe?(Not(),Oae):(Not(),Bae),x=e==cAe?(H9(),aae):(H9(),nae),r=(a=(n=jz(oZ(t.b,e),124)).i).c+Lct(Cst(Hx(LMe,1),HKt,25,15,[n.n.b,t.C.b,t.k])),y=a.c+a.b-Lct(Cst(Hx(LMe,1),HKt,25,15,[n.n.c,t.C.c,t.k])),s=Xx($j(o),t.t),v=e==cAe?PKt:BKt,h=f.Kc();h.Ob();)(u=jz(h.Pb(),111)).c&&!(u.c.d.c.length<=0)&&(m=u.b.rf(),b=u.e,(p=(g=u.c).i).b=(l=g.n,g.e.a+l.b+l.c),p.a=(c=g.n,g.e.b+c.d+c.a),TX(x,oJt),g.f=x,u8(g,(K8(),Jie)),p.c=b.a-(p.b-m.a)/2,R=i.Math.min(r,b.a),_=i.Math.max(y,b.a+m.a),p.c<R?p.c=R:p.c+p.b>_&&(p.c=_-p.b),Wz(s.d,new OV(p,wht(s,p))),v=e==cAe?i.Math.max(v,b.b+u.b.rf().b):i.Math.min(v,b.b));for(v+=e==cAe?t.t:-t.t,(w=Cgt((s.e=v,s)))>0&&(jz(oZ(t.b,e),124).a.b=w),d=f.Kc();d.Ob();)(u=jz(d.Pb(),111)).c&&!(u.c.d.c.length<=0)&&((p=u.c.i).c-=u.e.a,p.d-=u.e.b)}else rWt(t,e)}function MWt(t){var e,n,i,a,r,o,s,c,l,d;for(e=new Om,o=new AO(t);o.e!=o.i.gc();){for(r=jz(wmt(o),33),n=new Ny,YG(_re,r,n),d=new oe,i=jz(E3(new NU(null,new UW(new oq(XO(fOt(r).a.Kc(),new u)))),kV(d,m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)])))),83),Xnt(n,jz(i.xc((cM(),!0)),14),new se),a=jz(E3(AZ(jz(i.xc(!1),15).Lc(),new ce),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[Zne]))),15).Kc();a.Ob();)(l=SEt(jz(a.Pb(),79)))&&((s=jz(zA(AX(e.f,l)),21))||(s=ANt(l),xTt(e.f,l,s)),jat(n,s));for(i=jz(E3(new NU(null,new UW(new oq(XO(gOt(r).a.Kc(),new u)))),kV(d,m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[Zne])))),83),Xnt(n,jz(i.xc(!0),14),new le),c=jz(E3(AZ(jz(i.xc(!1),15).Lc(),new ue),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[Zne]))),15).Kc();c.Ob();)(l=TEt(jz(c.Pb(),79)))&&((s=jz(zA(AX(e.f,l)),21))||(s=ANt(l),xTt(e.f,l,s)),jat(n,s))}}function NWt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p;if(oHt(),(c=Gut(t,0)<0)&&(t=w9(t)),0==Gut(t,0))switch(e){case 0:return"0";case 1:return YKt;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(f=new Cx).a+=e<0?"0E+":"0E",f.a+=e==FZt?"2147483648":""+-e,f.a}d=O5(SMe,YZt,25,1+(u=18),15,1),n=u,p=t;do{l=p,p=ARt(p,10),d[--n]=fV(ift(48,nft(l,aft(p,10))))&ZZt}while(0!=Gut(p,0));if(a=nft(nft(nft(u,n),e),1),0==e)return c&&(d[--n]=45),$pt(d,n,u-n);if(e>0&&Gut(a,-6)>=0){if(Gut(a,0)>=0){for(r=n+fV(a),s=u-1;s>=r;s--)d[s+1]=d[s];return d[++r]=46,c&&(d[--n]=45),$pt(d,n,u-n+1)}for(o=2;sC(o,ift(w9(a),1));o++)d[--n]=48;return d[--n]=46,d[--n]=48,c&&(d[--n]=45),$pt(d,n,u-n)}return g=n+1,i=u,h=new Sx,c&&(h.a+="-"),i-g>=1?(OY(h,d[n]),h.a+=".",h.a+=$pt(d,n+1,u-n-1)):h.a+=$pt(d,n,u-n),h.a+="E",Gut(a,0)>0&&(h.a+="+"),h.a+=""+bq(a),h.a}function BWt(t,e,n){var i,a,r,o,s,c,l,u,d,h;if(t.e.a.$b(),t.f.a.$b(),t.c.c=O5(Dte,zGt,1,0,5,1),t.i.c=O5(Dte,zGt,1,0,5,1),t.g.a.$b(),e)for(o=new Wf(e.a);o.a<o.c.c.length;)for(u=NCt(r=jz(J1(o),10),(wWt(),sAe)).Kc();u.Ob();)for(l=jz(u.Pb(),11),RW(t.e,l),a=new Wf(l.g);a.a<a.c.c.length;)!d6(i=jz(J1(a),17))&&(Wz(t.c,i),bmt(t,i),((s=i.c.i.k)==(oCt(),Sse)||s==Tse||s==kse||s==_se)&&Wz(t.j,i),(d=(h=i.d).i.c)==n?RW(t.f,h):d==e?RW(t.e,h):y9(t.c,i));if(n)for(o=new Wf(n.a);o.a<o.c.c.length;){for(c=new Wf((r=jz(J1(o),10)).j);c.a<c.c.c.length;)for(a=new Wf(jz(J1(c),11).g);a.a<a.c.c.length;)d6(i=jz(J1(a),17))&&RW(t.g,i);for(u=NCt(r,(wWt(),SAe)).Kc();u.Ob();)for(l=jz(u.Pb(),11),RW(t.f,l),a=new Wf(l.g);a.a<a.c.c.length;)!d6(i=jz(J1(a),17))&&(Wz(t.c,i),bmt(t,i),((s=i.c.i.k)==(oCt(),Sse)||s==Tse||s==kse||s==_se)&&Wz(t.j,i),(d=(h=i.d).i.c)==n?RW(t.f,h):d==e?RW(t.e,h):y9(t.c,i))}}function PWt(t,e,n,a,r){var o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;if(m=new OT(t.g,t.f),(b=WSt(t)).a=i.Math.max(b.a,e),b.b=i.Math.max(b.b,n),_=b.a/m.a,d=b.b/m.b,x=b.a-m.a,l=b.b-m.b,a)for(s=KJ(t)?jz(JIt(KJ(t),(cGt(),dCe)),103):jz(JIt(t,(cGt(),dCe)),103),c=HA(JIt(t,(cGt(),rSe)))===HA((Z_t(),WTe)),v=new AO((!t.c&&(t.c=new tW(VDe,t,9,9)),t.c));v.e!=v.i.gc();)switch(y=jz(wmt(v),118),w=jz(JIt(y,hSe),61),w==(wWt(),CAe)&&(w=A$t(y,s),Kmt(y,hSe,w)),w.g){case 1:c||Cnt(y,y.i*_);break;case 2:Cnt(y,y.i+x),c||Snt(y,y.j*d);break;case 3:c||Cnt(y,y.i*_),Snt(y,y.j+l);break;case 4:c||Snt(y,y.j*d)}if(_I(t,b.a,b.b),r)for(f=new AO((!t.n&&(t.n=new tW(HDe,t,1,7)),t.n));f.e!=f.i.gc();)g=(h=jz(wmt(f),137)).i+h.g/2,p=h.j+h.f/2,(R=g/m.a)+(u=p/m.b)>=1&&(R-u>0&&p>=0?(Cnt(h,h.i+x),Snt(h,h.j+l*u)):R-u<0&&g>=0&&(Cnt(h,h.i+x*R),Snt(h,h.j+l)));return Kmt(t,(cGt(),BCe),(ypt(),new ZF(o=jz(YR($Ae),9),jz(kP(o,o.length),9),0))),new OT(_,d)}function FWt(t){var e,n,a,r,o,s,c,l,u,d,h;if(d=KJ(Ckt(jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82)))==KJ(Ckt(jz(Yet((!t.c&&(t.c=new cF(NDe,t,5,8)),t.c),0),82))),s=new HR,(e=jz(JIt(t,(Wlt(),cTe)),74))&&e.b>=2){if(0==(!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i)QR(),n=new oc,l8((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a),n);else if((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i>1)for(h=new iN((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a));h.e!=h.i.gc();)ZRt(h);G$t(e,jz(Yet((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a),0),202))}if(d)for(a=new AO((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a));a.e!=a.i.gc();)for(l=new AO((!(n=jz(wmt(a),202)).a&&(n.a=new DO(LDe,n,5)),n.a));l.e!=l.i.gc();)c=jz(wmt(l),469),s.a=i.Math.max(s.a,c.a),s.b=i.Math.max(s.b,c.b);for(o=new AO((!t.n&&(t.n=new tW(HDe,t,1,7)),t.n));o.e!=o.i.gc();)r=jz(wmt(o),137),(u=jz(JIt(r,gTe),8))&&kI(r,u.a,u.b),d&&(s.a=i.Math.max(s.a,r.i+r.g),s.b=i.Math.max(s.b,r.j+r.f));return s}function jWt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;for(y=e.c.length,r=new HFt(t.a,n,null,null),_=O5(LMe,HKt,25,y,15,1),g=O5(LMe,HKt,25,y,15,1),f=O5(LMe,HKt,25,y,15,1),p=0,c=0;c<y;c++)g[c]=NGt,f[c]=FZt;for(l=0;l<y;l++)for(u1(l,e.c.length),a=jz(e.c[l],180),_[l]=mLt(a),_[p]>_[l]&&(p=l),d=new Wf(t.a.b);d.a<d.c.c.length;)for(m=new Wf(jz(J1(d),29).a);m.a<m.c.c.length;)b=jz(J1(m),10),x=Hw(a.p[b.p])+Hw(a.d[b.p]),g[l]=i.Math.min(g[l],x),f[l]=i.Math.max(f[l],x+b.o.b);for(R=O5(LMe,HKt,25,y,15,1),u=0;u<y;u++)(u1(u,e.c.length),jz(e.c[u],180)).o==(oQ(),iwe)?R[u]=g[p]-g[u]:R[u]=f[p]-f[u];for(o=O5(LMe,HKt,25,y,15,1),h=new Wf(t.a.b);h.a<h.c.c.length;)for(w=new Wf(jz(J1(h),29).a);w.a<w.c.c.length;){for(v=jz(J1(w),10),s=0;s<y;s++)o[s]=Hw((u1(s,e.c.length),jz(e.c[s],180)).p[v.p])+Hw((u1(s,e.c.length),jz(e.c[s],180)).d[v.p])+R[s];o.sort(nnt(k.prototype.te,k,[])),r.p[v.p]=(o[1]+o[2])/2,r.d[v.p]=0}return r}function $Wt(t,e,n){var i,a,r,o,s;switch(i=e.i,r=t.i.o,a=t.i.d,s=t.n,o=Dct(Cst(Hx(EEe,1),cZt,8,0,[s,t.a])),t.j.g){case 1:WB(e,(H9(),nae)),i.d=-a.d-n-i.a,jz(jz(OU(e.d,0),181).We((lGt(),rhe)),285)==(Wwt(),xTe)?(u8(e,(K8(),Jie)),i.c=o.a-Hw(_B(yEt(t,dhe)))-n-i.b):(u8(e,(K8(),Xie)),i.c=o.a+Hw(_B(yEt(t,dhe)))+n);break;case 2:u8(e,(K8(),Xie)),i.c=r.a+a.c+n,jz(jz(OU(e.d,0),181).We((lGt(),rhe)),285)==(Wwt(),xTe)?(WB(e,(H9(),nae)),i.d=o.b-Hw(_B(yEt(t,dhe)))-n-i.a):(WB(e,(H9(),aae)),i.d=o.b+Hw(_B(yEt(t,dhe)))+n);break;case 3:WB(e,(H9(),aae)),i.d=r.b+a.a+n,jz(jz(OU(e.d,0),181).We((lGt(),rhe)),285)==(Wwt(),xTe)?(u8(e,(K8(),Jie)),i.c=o.a-Hw(_B(yEt(t,dhe)))-n-i.b):(u8(e,(K8(),Xie)),i.c=o.a+Hw(_B(yEt(t,dhe)))+n);break;case 4:u8(e,(K8(),Jie)),i.c=-a.b-n-i.b,jz(jz(OU(e.d,0),181).We((lGt(),rhe)),285)==(Wwt(),xTe)?(WB(e,(H9(),nae)),i.d=o.b-Hw(_B(yEt(t,dhe)))-n-i.a):(WB(e,(H9(),aae)),i.d=o.b+Hw(_B(yEt(t,dhe)))+n)}}function zWt(t,e,n,a,r,o,s){var c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A,D;for(g=0,C=0,l=new Wf(t);l.a<l.c.c.length;)sqt(c=jz(J1(l),33)),g=i.Math.max(g,c.g),C+=c.g*c.f;for(E=Jwt(t,C/t.c.length),C+=t.c.length*E,g=i.Math.max(g,i.Math.sqrt(C*s))+n.b,A=n.b,D=n.d,f=0,d=n.b+n.c,MH(k=new Zk,nht(0)),R=new Zk,u=new _2(t,0);u.b<u.d.gc();)EN(u.b<u.d.gc()),T=(c=jz(u.d.Xb(u.c=u.b++),33)).g,h=c.f,A+T>g&&(o&&(lD(R,f),lD(k,nht(u.b-1))),A=n.b,D+=f+e,f=0,d=i.Math.max(d,n.b+n.c+T)),Cnt(c,A),Snt(c,D),d=i.Math.max(d,A+T+n.c),f=i.Math.max(f,h),A+=T+e;if(d=i.Math.max(d,a),(S=D+f+n.a)<r&&(f+=r-S,S=r),o)for(A=n.b,u=new _2(t,0),lD(k,nht(t.c.length)),m=jz(d4(_=cmt(k,0)),19).a,lD(R,f),x=cmt(R,0),w=0;u.b<u.d.gc();)u.b==m&&(A=n.b,w=Hw(_B(d4(x))),m=jz(d4(_),19).a),EN(u.b<u.d.gc()),y=(c=jz(u.d.Xb(u.c=u.b++),33)).f,knt(c,w),p=w,u.b==m&&(b=d-A-n.c,v=c.g,Ent(c,b),dTt(c,new OT(b,p),new OT(v,y))),A+=c.g+e;return new OT(d,S)}function HWt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C;for(Akt(e,"Compound graph postprocessor",1),n=zw(RB(yEt(t,(zYt(),Mme)))),c=jz(yEt(t,(lGt(),$de)),224),d=new Ny,y=c.ec().Kc();y.Ob();){for(m=jz(y.Pb(),17),s=new QF(c.cc(m)),kK(),mL(s,new Pg(t)),R=art((u1(0,s.c.length),jz(s.c[0],243))),k=rrt(jz(OU(s,s.c.length-1),243)),w=R.i,v=fot(k.i,w)?w.e:bG(w),h=Dmt(m,s),yK(m.a),f=null,o=new Wf(s);o.a<o.c.c.length;)r=jz(J1(o),243),ASt(b=new HR,r.a,v),g=r.b,Ylt(a=new vv,0,g.a),Jet(a,b),x=new hI(g1(g.c)),_=new hI(g1(g.d)),VP(x,b),VP(_,b),f&&(0==a.b?p=_:(EN(0!=a.b),p=jz(a.a.a.c,8)),E=i.Math.abs(f.a-p.a)>dQt,C=i.Math.abs(f.b-p.b)>dQt,(!n&&E&&C||n&&(E||C))&&MH(m.a,x)),jat(m.a,a),0==a.b?f=x:(EN(0!=a.b),f=jz(a.c.b.c,8)),Kot(g,h,b),rrt(r)==k&&(bG(k.i)!=r.a&&ASt(b=new HR,bG(k.i),v),lct(m,Nhe,b)),kCt(g,m,v),d.a.zc(g,d);kQ(m,R),_Q(m,k)}for(u=d.a.ec().Kc();u.Ob();)kQ(l=jz(u.Pb(),17),null),_Q(l,null);zCt(e)}function UWt(t){var e,n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;if(1==t.gc())return jz(t.Xb(0),231);if(t.gc()<=0)return new y7;for(r=t.Kc();r.Ob();){for(n=jz(r.Pb(),231),p=0,d=NGt,h=NGt,l=FZt,u=FZt,g=new Wf(n.e);g.a<g.c.c.length;)f=jz(J1(g),144),p+=jz(yEt(f,(uPt(),Xre)),19).a,d=i.Math.min(d,f.d.a-f.e.a/2),h=i.Math.min(h,f.d.b-f.e.b/2),l=i.Math.max(l,f.d.a+f.e.a/2),u=i.Math.max(u,f.d.b+f.e.b/2);lct(n,(uPt(),Xre),nht(p)),lct(n,(kat(),ooe),new OT(d,h)),lct(n,roe,new OT(l,u))}for(kK(),t.ad(new fe),Hot(b=new y7,jz(t.Xb(0),94)),c=0,v=0,o=t.Kc();o.Ob();)n=jz(o.Pb(),231),m=qP(jL(jz(yEt(n,(kat(),roe)),8)),jz(yEt(n,ooe),8)),c=i.Math.max(c,m.a),v+=m.a*m.b;for(c=i.Math.max(c,i.Math.sqrt(v)*Hw(_B(yEt(b,(uPt(),Fre))))),w=0,x=0,s=0,e=y=Hw(_B(yEt(b,ioe))),a=t.Kc();a.Ob();)n=jz(a.Pb(),231),w+(m=qP(jL(jz(yEt(n,(kat(),roe)),8)),jz(yEt(n,ooe),8))).a>c&&(w=0,x+=s+y,s=0),GFt(b,n,w,x),e=i.Math.max(e,w+m.a),s=i.Math.max(s,m.b),w+=m.a+y;return b}function VWt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g;switch(u=new vv,t.a.g){case 3:h=jz(yEt(e.e,(lGt(),Lhe)),15),f=jz(yEt(e.j,Lhe),15),g=jz(yEt(e.f,Lhe),15),n=jz(yEt(e.e,Dhe),15),i=jz(yEt(e.j,Dhe),15),a=jz(yEt(e.f,Dhe),15),pst(o=new Lm,h),f.Jc(new wr),pst(o,iO(f,152)?o7(jz(f,152)):iO(f,131)?jz(f,131).a:iO(f,54)?new lw(f):new Ck(f)),pst(o,g),pst(r=new Lm,n),pst(r,iO(i,152)?o7(jz(i,152)):iO(i,131)?jz(i,131).a:iO(i,54)?new lw(i):new Ck(i)),pst(r,a),lct(e.f,Lhe,o),lct(e.f,Dhe,r),lct(e.f,Ohe,e.f),lct(e.e,Lhe,null),lct(e.e,Dhe,null),lct(e.j,Lhe,null),lct(e.j,Dhe,null);break;case 1:jat(u,e.e.a),MH(u,e.i.n),jat(u,eot(e.j.a)),MH(u,e.a.n),jat(u,e.f.a);break;default:jat(u,e.e.a),jat(u,eot(e.j.a)),jat(u,e.f.a)}yK(e.f.a),jat(e.f.a,u),kQ(e.f,e.e.c),s=jz(yEt(e.e,(zYt(),bbe)),74),l=jz(yEt(e.j,bbe),74),c=jz(yEt(e.f,bbe),74),(s||l||c)&&(EW(d=new vv,c),EW(d,l),EW(d,s),lct(e.f,bbe,d)),kQ(e.j,null),_Q(e.j,null),kQ(e.e,null),_Q(e.e,null),EQ(e.a,null),EQ(e.i,null),e.g&&VWt(t,e.g)}function qWt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g,p,b;if(C$t(),null==t||(g=hht(r=Y9(t)))%4!=0)return null;if(0==(p=g/4|0))return O5(IMe,m7t,25,0,15,1);for(d=null,e=0,n=0,i=0,a=0,o=0,s=0,c=0,l=0,f=0,h=0,u=0,d=O5(IMe,m7t,25,3*p,15,1);f<p-1;f++){if(!(Y_(o=r[u++])&&Y_(s=r[u++])&&Y_(c=r[u++])&&Y_(l=r[u++])))return null;e=qOe[o],n=qOe[s],i=qOe[c],a=qOe[l],d[h++]=(e<<2|n>>4)<<24>>24,d[h++]=((15&n)<<4|i>>2&15)<<24>>24,d[h++]=(i<<6|a)<<24>>24}return Y_(o=r[u++])&&Y_(s=r[u++])?(e=qOe[o],n=qOe[s],c=r[u++],l=r[u++],-1==qOe[c]||-1==qOe[l]?61==c&&61==l?15&n?null:(rHt(d,0,b=O5(IMe,m7t,25,3*f+1,15,1),0,3*f),b[h]=(e<<2|n>>4)<<24>>24,b):61!=c&&61==l?3&(i=qOe[c])?null:(rHt(d,0,b=O5(IMe,m7t,25,3*f+2,15,1),0,3*f),b[h++]=(e<<2|n>>4)<<24>>24,b[h]=((15&n)<<4|i>>2&15)<<24>>24,b):null:(i=qOe[c],a=qOe[l],d[h++]=(e<<2|n>>4)<<24>>24,d[h++]=((15&n)<<4|i>>2&15)<<24>>24,d[h++]=(i<<6|a)<<24>>24,d)):null}function WWt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;for(Akt(e,A1t,1),h=jz(yEt(t,(zYt(),Xpe)),218),i=new Wf(t.b);i.a<i.c.c.length;)for(o=0,s=(r=J0(jz(J1(i),29).a)).length;o<s;++o)if((a=r[o]).k==(oCt(),Tse)){if(h==(kft(),XSe))for(l=new Wf(a.j);l.a<l.c.c.length;)0==(c=jz(J1(l),11)).e.c.length||Dbt(c),0==c.g.c.length||Ibt(c);else if(iO(yEt(a,(lGt(),fhe)),17))g=jz(yEt(a,fhe),17),p=jz(NCt(a,(wWt(),SAe)).Kc().Pb(),11),b=jz(NCt(a,sAe).Kc().Pb(),11),m=jz(yEt(p,fhe),11),kQ(g,y=jz(yEt(b,fhe),11)),_Q(g,m),(v=new hI(b.i.n)).a=Dct(Cst(Hx(EEe,1),cZt,8,0,[y.i.n,y.n,y.a])).a,MH(g.a,v),(v=new hI(p.i.n)).a=Dct(Cst(Hx(EEe,1),cZt,8,0,[m.i.n,m.n,m.a])).a,MH(g.a,v);else{if(a.j.c.length>=2){for(f=!0,n=jz(J1(u=new Wf(a.j)),11),d=null;u.a<u.c.c.length;)if(d=n,n=jz(J1(u),11),!Odt(yEt(d,fhe),yEt(n,fhe))){f=!1;break}}else f=!1;for(l=new Wf(a.j);l.a<l.c.c.length;)0==(c=jz(J1(l),11)).e.c.length||oNt(c,f),0==c.g.c.length||sNt(c,f)}EQ(a,null)}zCt(e)}function YWt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E;return w=t.c[(u1(0,e.c.length),jz(e.c[0],17)).p],k=t.c[(u1(1,e.c.length),jz(e.c[1],17)).p],!(w.a.e.e-w.a.a-(w.b.e.e-w.b.a)==0&&k.a.e.e-k.a.a-(k.b.e.e-k.b.a)==0||(y=w.b.e.f,!iO(y,10))||(m=jz(y,10),R=t.i[m.p],_=m.c?x9(m.c.a,m,0):-1,o=BKt,_>0&&(r=jz(OU(m.c.a,_-1),10),s=t.i[r.p],E=i.Math.ceil(BL(t.n,r,m)),o=R.a.e-m.d.d-(s.a.e+r.o.b+r.d.a)-E),u=BKt,_<m.c.a.c.length-1&&(l=jz(OU(m.c.a,_+1),10),d=t.i[l.p],E=i.Math.ceil(BL(t.n,l,m)),u=d.a.e-l.d.d-(R.a.e+m.o.b+m.d.a)-E),!(n&&(cL(),iit(D4t),i.Math.abs(o-u)<=D4t||o==u||isNaN(o)&&isNaN(u)))&&(a=aY(w.a),c=-aY(w.b),h=-aY(k.a),v=aY(k.b),b=w.a.e.e-w.a.a-(w.b.e.e-w.b.a)>0&&k.a.e.e-k.a.a-(k.b.e.e-k.b.a)<0,p=w.a.e.e-w.a.a-(w.b.e.e-w.b.a)<0&&k.a.e.e-k.a.a-(k.b.e.e-k.b.a)>0,g=w.a.e.e+w.b.a<k.b.e.e+k.a.a,f=w.a.e.e+w.b.a>k.b.e.e+k.a.a,x=0,!b&&!p&&(f?o+h>0?x=h:u-a>0&&(x=a):g&&(o+c>0?x=c:u-v>0&&(x=v))),R.a.e+=x,R.b&&(R.d.e+=x),1)))}function GWt(t,e,n){var a,r,o,s,c,l,u,d,h,f;if(a=new VZ(e.qf().a,e.qf().b,e.rf().a,e.rf().b),r=new dI,t.c)for(s=new Wf(e.wf());s.a<s.c.c.length;)o=jz(J1(s),181),r.c=o.qf().a+e.qf().a,r.d=o.qf().b+e.qf().b,r.b=o.rf().a,r.a=o.rf().b,SSt(a,r);for(u=new Wf(e.Cf());u.a<u.c.c.length;){if(d=(l=jz(J1(u),838)).qf().a+e.qf().a,h=l.qf().b+e.qf().b,t.e&&(r.c=d,r.d=h,r.b=l.rf().a,r.a=l.rf().b,SSt(a,r)),t.d)for(s=new Wf(l.wf());s.a<s.c.c.length;)o=jz(J1(s),181),r.c=o.qf().a+d,r.d=o.qf().b+h,r.b=o.rf().a,r.a=o.rf().b,SSt(a,r);if(t.b){if(f=new OT(-n,-n),jz(e.We((cGt(),lSe)),174).Hc((dAt(),iAe)))for(s=new Wf(l.wf());s.a<s.c.c.length;)o=jz(J1(s),181),f.a+=o.rf().a+n,f.b+=o.rf().b+n;f.a=i.Math.max(f.a,0),f.b=i.Math.max(f.b,0),Wjt(a,l.Bf(),l.zf(),e,l,f,n)}}t.b&&Wjt(a,e.Bf(),e.zf(),e,null,null,n),(c=new Aj(e.Af())).d=i.Math.max(0,e.qf().b-a.d),c.a=i.Math.max(0,a.d+a.a-(e.qf().b+e.rf().b)),c.b=i.Math.max(0,e.qf().a-a.c),c.c=i.Math.max(0,a.c+a.b-(e.qf().a+e.rf().a)),e.Ef(c)}function ZWt(){var t=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000B","\\f","\\r","\\u000E","\\u000F","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001A","\\u001B","\\u001C","\\u001D","\\u001E","\\u001F"];return t[34]='\\"',t[92]="\\\\",t[173]="\\u00ad",t[1536]="\\u0600",t[1537]="\\u0601",t[1538]="\\u0602",t[1539]="\\u0603",t[1757]="\\u06dd",t[1807]="\\u070f",t[6068]="\\u17b4",t[6069]="\\u17b5",t[8203]="\\u200b",t[8204]="\\u200c",t[8205]="\\u200d",t[8206]="\\u200e",t[8207]="\\u200f",t[8232]="\\u2028",t[8233]="\\u2029",t[8234]="\\u202a",t[8235]="\\u202b",t[8236]="\\u202c",t[8237]="\\u202d",t[8238]="\\u202e",t[8288]="\\u2060",t[8289]="\\u2061",t[8290]="\\u2062",t[8291]="\\u2063",t[8292]="\\u2064",t[8298]="\\u206a",t[8299]="\\u206b",t[8300]="\\u206c",t[8301]="\\u206d",t[8302]="\\u206e",t[8303]="\\u206f",t[65279]="\\ufeff",t[65529]="\\ufff9",t[65530]="\\ufffa",t[65531]="\\ufffb",t}function KWt(t,e,n){var i,a,r,o,s,c,l,u,d,h;for(c=new Lm,d=e.length,o=Tct(n),l=0;l<d;++l){switch(u=yM(e,Kkt(61),l),r=(a=ost(i=uht(o,e.substr(l,u-l)))).Aj().Nh(),lZ(e,++u)){case 39:s=uN(e,39,++u),Wz(c,new CA(i,ZZ(e.substr(u,s-u),r,a))),l=s+1;break;case 34:s=uN(e,34,++u),Wz(c,new CA(i,ZZ(e.substr(u,s-u),r,a))),l=s+1;break;case 91:Wz(c,new CA(i,h=new Lm));t:for(;;){switch(lZ(e,++u)){case 39:s=uN(e,39,++u),Wz(h,ZZ(e.substr(u,s-u),r,a)),u=s+1;break;case 34:s=uN(e,34,++u),Wz(h,ZZ(e.substr(u,s-u),r,a)),u=s+1;break;case 110:if(++u,e.indexOf("ull",u)!=u)throw $m(new fw(r7t));h.c[h.c.length]=null,u+=3}if(!(u<d))break;switch(d1(u,e.length),e.charCodeAt(u)){case 44:break;case 93:break t;default:throw $m(new fw("Expecting , or ]"))}}l=u+1;break;case 110:if(++u,e.indexOf("ull",u)!=u)throw $m(new fw(r7t));Wz(c,new CA(i,null)),l=u+3}if(!(l<d))break;if(d1(l,e.length),44!=e.charCodeAt(l))throw $m(new fw("Expecting ,"))}return nBt(t,c,n)}function XWt(t,e){var n,i,a,r,o,s,c,l,u,d,h;for(l=jz(jz(c7(t.r,e),21),84),o=Xkt(t,e),n=t.u.Hc((dAt(),QTe)),c=l.Kc();c.Ob();)if((s=jz(c.Pb(),111)).c&&!(s.c.d.c.length<=0)){switch(h=s.b.rf(),(d=(u=s.c).i).b=(r=u.n,u.e.a+r.b+r.c),d.a=(a=u.n,u.e.b+a.d+a.a),e.g){case 1:s.a?(d.c=(h.a-d.b)/2,u8(u,(K8(),Kie))):o||n?(d.c=-d.b-t.s,u8(u,(K8(),Jie))):(d.c=h.a+t.s,u8(u,(K8(),Xie))),d.d=-d.a-t.t,WB(u,(H9(),nae));break;case 3:s.a?(d.c=(h.a-d.b)/2,u8(u,(K8(),Kie))):o||n?(d.c=-d.b-t.s,u8(u,(K8(),Jie))):(d.c=h.a+t.s,u8(u,(K8(),Xie))),d.d=h.b+t.t,WB(u,(H9(),aae));break;case 2:s.a?(i=t.v?d.a:jz(OU(u.d,0),181).rf().b,d.d=(h.b-i)/2,WB(u,(H9(),iae))):o||n?(d.d=-d.a-t.t,WB(u,(H9(),nae))):(d.d=h.b+t.t,WB(u,(H9(),aae))),d.c=h.a+t.s,u8(u,(K8(),Xie));break;case 4:s.a?(i=t.v?d.a:jz(OU(u.d,0),181).rf().b,d.d=(h.b-i)/2,WB(u,(H9(),iae))):o||n?(d.d=-d.a-t.t,WB(u,(H9(),nae))):(d.d=h.b+t.t,WB(u,(H9(),aae))),d.c=-d.b-t.s,u8(u,(K8(),Jie))}o=!1}}function JWt(t,e){var n,i,a,r,o,s,c,l,u,d,h;if(fGt(),0==Lk(tMe)){for(d=O5(CMe,cZt,117,nMe.length,0,1),o=0;o<d.length;o++)d[o]=new _0(4);for(i=new Ex,r=0;r<QOe.length;r++){if(u=new _0(4),r<84?(d1(s=2*r,mte.length),h=mte.charCodeAt(s),d1(s+1,mte.length),KNt(u,h,mte.charCodeAt(s+1))):KNt(u,iMe[s=2*(r-84)],iMe[s+1]),mF(c=QOe[r],"Specials")&&KNt(u,65520,65533),mF(c,pte)&&(KNt(u,983040,1048573),KNt(u,1048576,1114109)),mQ(tMe,c,u),mQ(eMe,c,I$t(u)),0<(l=i.a.length)?i.a=i.a.substr(0,0):0>l&&(i.a+=nO(O5(SMe,YZt,25,-l,15,1))),i.a+="Is",HD(c,Kkt(32))>=0)for(a=0;a<c.length;a++)d1(a,c.length),32!=c.charCodeAt(a)&&LY(i,(d1(a,c.length),c.charCodeAt(a)));else i.a+=""+c;_pt(i.a,c,!0)}_pt(bte,"Cn",!1),_pt(yte,"Cn",!0),KNt(n=new _0(4),0,ote),mQ(tMe,"ALL",n),mQ(eMe,"ALL",I$t(n)),!_Me&&(_Me=new Om),mQ(_Me,bte,bte),!_Me&&(_Me=new Om),mQ(_Me,yte,yte),!_Me&&(_Me=new Om),mQ(_Me,"ALL","ALL")}return jz(kJ(e?tMe:eMe,t),136)}function QWt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;if(h=!1,d=!1,bI(jz(yEt(i,(zYt(),tme)),98))){o=!1,s=!1;t:for(g=new Wf(i.j);g.a<g.c.c.length;)for(f=jz(J1(g),11),b=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[new $g(f),new Hg(f)])));gIt(b);)if(p=jz(V6(b),11),!zw(RB(yEt(p.i,Rpe)))){if(f.j==(wWt(),cAe)){o=!0;break t}if(f.j==EAe){s=!0;break t}}h=s&&!o,d=o&&!s}if(h||d||0==i.b.c.length)y=!d;else{for(u=0,l=new Wf(i.b);l.a<l.c.c.length;)u+=(c=jz(J1(l),70)).n.b+c.o.b/2;y=(u/=i.b.c.length)>=i.o.b/2}y?(m=jz(yEt(i,(lGt(),Bhe)),15))?h?r=m:(a=jz(yEt(i,Mde),15))?r=m.gc()<=a.gc()?m:a:(r=new Lm,lct(i,Mde,r)):(r=new Lm,lct(i,Bhe,r)):(a=jz(yEt(i,(lGt(),Mde)),15))?d?r=a:(m=jz(yEt(i,Bhe),15))?r=a.gc()<=m.gc()?a:m:(r=new Lm,lct(i,Bhe,r)):(r=new Lm,lct(i,Mde,r)),r.Fc(t),lct(t,(lGt(),Bde),n),e.d==n?(_Q(e,null),n.e.c.length+n.g.c.length==0&&CQ(n,null),plt(n)):(kQ(e,null),n.e.c.length+n.g.c.length==0&&CQ(n,null)),yK(e.a)}function tYt(t,e){var n,i,a,r,o,s,c,l,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A;for(y=new _2(t.b,0),p=0,l=jz((d=e.Kc()).Pb(),19).a,x=0,n=new Ny,_=new lI;y.b<y.d.gc();){for(EN(y.b<y.d.gc()),w=new Wf(jz(y.d.Xb(y.c=y.b++),29).a);w.a<w.c.c.length;){for(g=new oq(XO(dft(v=jz(J1(w),10)).a.Kc(),new u));gIt(g);)h=jz(V6(g),17),_.a.zc(h,_);for(f=new oq(XO(uft(v).a.Kc(),new u));gIt(f);)h=jz(V6(f),17),_.a.Bc(h)}if(p+1==l){for(yP(y,a=new $Y(t)),yP(y,r=new $Y(t)),E=_.a.ec().Kc();E.Ob();)k=jz(E.Pb(),17),n.a._b(k)||(++x,n.a.zc(k,n)),lct(o=new Iyt(t),(zYt(),tme),(Z_t(),GTe)),EQ(o,a),Fh(o,(oCt(),_se)),CQ(b=new SCt,o),HTt(b,(wWt(),SAe)),CQ(C=new SCt,o),HTt(C,sAe),lct(i=new Iyt(t),tme,GTe),EQ(i,r),Fh(i,_se),CQ(m=new SCt,i),HTt(m,SAe),CQ(S=new SCt,i),HTt(S,sAe),kQ(R=new hX,k.c),_Q(R,b),kQ(A=new hX,C),_Q(A,m),kQ(k,S),s=new b4(o,i,R,A,k),lct(o,(lGt(),Nde),s),lct(i,Nde,s),(T=R.c.i).k==_se&&((c=jz(yEt(T,Nde),305)).d=s,s.g=c);if(!d.Ob())break;l=jz(d.Pb(),19).a}++p}return nht(x)}function eYt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p;for(d=0,a=new AO((!e.a&&(e.a=new tW(UDe,e,10,11)),e.a));a.e!=a.i.gc();)zw(RB(JIt(i=jz(wmt(a),33),(zYt(),Hbe))))||((HA(JIt(e,Ipe))!==HA((yct(),Oye))||HA(JIt(e,Hpe))===HA((Gyt(),Rue))||HA(JIt(e,Hpe))===HA((Gyt(),wue))||zw(RB(JIt(e,Ope)))||HA(JIt(e,Cpe))!==HA(($dt(),fse)))&&!zw(RB(JIt(i,Dpe)))&&(Kmt(i,(lGt(),hhe),nht(d)),++d),fqt(t,i,n));for(d=0,l=new AO((!e.b&&(e.b=new tW(BDe,e,12,3)),e.b));l.e!=l.i.gc();)s=jz(wmt(l),79),(HA(JIt(e,(zYt(),Ipe)))!==HA((yct(),Oye))||HA(JIt(e,Hpe))===HA((Gyt(),Rue))||HA(JIt(e,Hpe))===HA((Gyt(),wue))||zw(RB(JIt(e,Ope)))||HA(JIt(e,Cpe))!==HA(($dt(),fse)))&&(Kmt(s,(lGt(),hhe),nht(d)),++d),g=CEt(s),p=AEt(s),u=zw(RB(JIt(g,hbe))),f=!zw(RB(JIt(s,Hbe))),h=u&&ZAt(s)&&zw(RB(JIt(s,fbe))),r=KJ(g)==e&&KJ(g)==KJ(p),o=(KJ(g)==e&&p==e)^(KJ(p)==e&&g==e),f&&!h&&(o||r)&&oGt(t,s,e,n);if(KJ(e))for(c=new AO(eK(KJ(e)));c.e!=c.i.gc();)(g=CEt(s=jz(wmt(c),79)))==e&&ZAt(s)&&(h=zw(RB(JIt(g,(zYt(),hbe))))&&zw(RB(JIt(s,fbe))))&&oGt(t,s,e,n)}function nYt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A,D,I;for(Akt(n,"MinWidth layering",1),g=e.b,k=e.a,I=jz(yEt(e,(zYt(),xbe)),19).a,c=jz(yEt(e,Rbe),19).a,t.b=Hw(_B(yEt(e,yme))),t.d=BKt,x=new Wf(k);x.a<x.c.c.length;)(v=jz(J1(x),10)).k==(oCt(),Sse)&&(S=v.o.b,t.d=i.Math.min(t.d,S));for(t.d=i.Math.max(1,t.d),E=k.c.length,t.c=O5(TMe,lKt,25,E,15,1),t.f=O5(TMe,lKt,25,E,15,1),t.e=O5(LMe,HKt,25,E,15,1),u=0,t.a=0,R=new Wf(k);R.a<R.c.c.length;)(v=jz(J1(R),10)).p=u++,t.c[v.p]=fut(uft(v)),t.f[v.p]=fut(dft(v)),t.e[v.p]=v.o.b/t.d,t.a+=t.e[v.p];for(t.b/=t.d,t.a/=E,_=xDt(k),mL(k,GG(new Bp(t))),b=BKt,p=NGt,s=null,D=I,A=I,o=c,r=c,I<0&&(D=jz(Rve.a.zd(),19).a,A=jz(Rve.b.zd(),19).a),c<0&&(o=jz(xve.a.zd(),19).a,r=jz(xve.b.zd(),19).a),T=D;T<=A;T++)for(a=o;a<=r;a++)y=Hw(_B((C=Lzt(t,T,a,k,_)).a)),m=(f=jz(C.b,15)).gc(),(y<b||y==b&&m<p)&&(b=y,p=m,s=f);for(h=s.Kc();h.Ob();){for(d=jz(h.Pb(),15),l=new $Y(e),w=d.Kc();w.Ob();)EQ(v=jz(w.Pb(),10),l);g.c[g.c.length]=l}XSt(g),k.c=O5(Dte,zGt,1,0,5,1),zCt(n)}function iYt(t,e){var n,a,r,o,s,c,l,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E;for(t.b=e,t.a=jz(yEt(e,(zYt(),cbe)),19).a,t.c=jz(yEt(e,ube),19).a,0==t.c&&(t.c=NGt),b=new _2(e.b,0);b.b<b.d.gc();){for(EN(b.b<b.d.gc()),p=jz(b.d.Xb(b.c=b.b++),29),c=new Lm,h=-1,w=-1,v=new Wf(p.a);v.a<v.c.c.length;)y=jz(J1(v),10),F4((zj(),new oq(XO(lft(y).a.Kc(),new u))))>=t.a&&(a=vzt(t,y),h=i.Math.max(h,a.b),w=i.Math.max(w,a.d),Wz(c,new nA(y,a)));for(_=new Lm,d=0;d<h;++d)vV(_,0,(EN(b.b>0),b.a.Xb(b.c=--b.b),yP(b,k=new $Y(t.b)),EN(b.b<b.d.gc()),b.d.Xb(b.c=b.b++),k));for(s=new Wf(c);s.a<s.c.c.length;)if(r=jz(J1(s),46),g=jz(r.b,571).a)for(f=new Wf(g);f.a<f.c.c.length;)oxt(t,jz(J1(f),10),Vse,_);for(n=new Lm,l=0;l<w;++l)Wz(n,(yP(b,E=new $Y(t.b)),E));for(o=new Wf(c);o.a<o.c.c.length;)if(r=jz(J1(o),46),R=jz(r.b,571).c)for(x=new Wf(R);x.a<x.c.c.length;)oxt(t,jz(J1(x),10),qse,n)}for(m=new _2(e.b,0);m.b<m.d.gc();)EN(m.b<m.d.gc()),0==jz(m.d.Xb(m.c=m.b++),29).a.c.length&&lG(m)}function aYt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T;if(Akt(n,"Spline edge routing",1),0==e.b.c.length)return e.f.a=0,void zCt(n);y=Hw(_B(yEt(e,(zYt(),Ame)))),c=Hw(_B(yEt(e,Rme))),s=Hw(_B(yEt(e,vme))),k=jz(yEt(e,nbe),336)==(qlt(),ive),_=Hw(_B(yEt(e,ibe))),t.d=e,t.j.c=O5(Dte,zGt,1,0,5,1),t.a.c=O5(Dte,zGt,1,0,5,1),DW(t.k),d=YA((l=jz(OU(e.b,0),29)).a,(gNt(),wwe)),h=YA((p=jz(OU(e.b,e.b.c.length-1),29)).a,wwe),b=new Wf(e.b),m=null,T=0;do{for(BWt(t,m,v=b.a<b.c.c.length?jz(J1(b),29):null),k$t(t),S=0,w=T,f=!m||d&&m==l,g=!v||h&&v==p,(E=Px(irt(LZ(AZ(new NU(null,new h1(t.i,16)),new xo),new wo))))>0?(u=0,m&&(u+=c),u+=(E-1)*s,v&&(u+=c),k&&v&&(u=i.Math.max(u,QMt(v,s,y,_))),u<y&&!f&&!g&&(S=(y-u)/2,u=y),w+=u):!f&&!g&&(w+=y),v&&_Ut(v,w),R=new Wf(t.i);R.a<R.c.c.length;)(x=jz(J1(R),128)).a.c=T,x.a.b=w-T,x.F=S,x.p=!m;pst(t.a,t.i),T=w,v&&(T+=v.c.a),m=v,f=g}while(v);for(r=new Wf(t.j);r.a<r.c.c.length;)o=yot(t,a=jz(J1(r),17)),lct(a,(lGt(),Dhe),o),C=NNt(t,a),lct(a,Lhe,C);e.f.a=T,t.d=null,zCt(n)}function rYt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;if(p=0!=t.i,y=!1,b=null,mI(t.e)){if((u=e.gc())>0){for(h=u<100?null:new FR(u),g=(l=new xrt(e)).g,b=O5(TMe,lKt,25,u,15,1),i=0,v=new pet(u),a=0;a<t.i;++a){f=s=t.g[a];t:for(m=0;m<2;++m){for(c=u;--c>=0;)if(null!=f?Odt(f,g[c]):HA(f)===HA(g[c])){b.length<=i&&rHt(b,0,b=O5(TMe,lKt,25,2*b.length,15,1),0,i),b[i++]=a,l8(v,g[c]);break t}if(HA(f)===HA(s))break}}if(l=v,g=v.g,u=i,i>b.length&&rHt(b,0,b=O5(TMe,lKt,25,i,15,1),0,i),i>0){for(y=!0,r=0;r<i;++r)h=UF(t,jz(f=g[r],72),h);for(o=i;--o>=0;)Lwt(t,b[o]);if(i!=u){for(a=u;--a>=i;)Lwt(l,a);rHt(b,0,b=O5(TMe,lKt,25,i,15,1),0,i)}e=l}}}else for(e=xwt(t,e),a=t.i;--a>=0;)e.Hc(t.g[a])&&(Lwt(t,a),y=!0);if(y){if(null!=b){for(d=1==(n=e.gc())?yQ(t,4,e.Kc().Pb(),null,b[0],p):yQ(t,6,e,b,b[0],p),h=n<100?null:new FR(n),a=e.Kc();a.Ob();)h=zF(t,jz(f=a.Pb(),72),h);h?(h.Ei(d),h.Fi()):hot(t.e,d)}else{for(h=DF(e.gc()),a=e.Kc();a.Ob();)h=zF(t,jz(f=a.Pb(),72),h);h&&h.Fi()}return!0}return!1}function oYt(t,e){var n,i,a,r,o,s,c,l,d,h,f,g,p,b,m,y,v;for((n=new lyt(e)).a||pjt(e),l=dPt(e),c=new pJ,b=new ZNt,p=new Wf(e.a);p.a<p.c.c.length;)for(a=new oq(XO(dft(jz(J1(p),10)).a.Kc(),new u));gIt(a);)((i=jz(V6(a),17)).c.i.k==(oCt(),kse)||i.d.i.k==kse)&&XAt(c,omt((d=dqt(t,i,l,b)).d),d.a);for(o=new Lm,v=jz(yEt(n.c,(lGt(),qde)),21).Kc();v.Ob();){switch(y=jz(v.Pb(),61),g=b.c[y.g],f=b.b[y.g],s=b.a[y.g],r=null,m=null,y.g){case 4:r=new VZ(t.d.a,g,l.b.a-t.d.a,f-g),m=new VZ(t.d.a,g,s,f-g),UH(l,new OT(r.c+r.b,r.d)),UH(l,new OT(r.c+r.b,r.d+r.a));break;case 2:r=new VZ(l.a.a,g,t.c.a-l.a.a,f-g),m=new VZ(t.c.a-s,g,s,f-g),UH(l,new OT(r.c,r.d)),UH(l,new OT(r.c,r.d+r.a));break;case 1:r=new VZ(g,t.d.b,f-g,l.b.b-t.d.b),m=new VZ(g,t.d.b,f-g,s),UH(l,new OT(r.c,r.d+r.a)),UH(l,new OT(r.c+r.b,r.d+r.a));break;case 3:r=new VZ(g,l.a.b,f-g,t.c.b-l.a.b),m=new VZ(g,t.c.b-s,f-g,s),UH(l,new OT(r.c,r.d)),UH(l,new OT(r.c+r.b,r.d))}r&&((h=new Jy).d=y,h.b=r,h.c=m,h.a=KK(jz(c7(c,omt(y)),21)),o.c[o.c.length]=h)}return pst(n.b,o),n.d=$ut(QUt(l)),n}function sYt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p;if(null==n.p[e.p]){c=!0,n.p[e.p]=0,s=e,p=n.o==(oQ(),iwe)?PKt:BKt;do{r=t.b.e[s.p],o=s.c.a.c.length,n.o==iwe&&r>0||n.o==awe&&r<o-1?(l=null,u=null,l=n.o==awe?jz(OU(s.c.a,r+1),10):jz(OU(s.c.a,r-1),10),sYt(t,u=n.g[l.p],n),p=t.e.bg(p,e,s),n.j[e.p]==e&&(n.j[e.p]=n.j[u.p]),n.j[e.p]==n.j[u.p]?(g=BL(t.d,s,l),n.o==awe?(a=Hw(n.p[e.p]),h=Hw(n.p[u.p])+Hw(n.d[l.p])-l.d.d-g-s.d.a-s.o.b-Hw(n.d[s.p]),c?(c=!1,n.p[e.p]=i.Math.min(h,p)):n.p[e.p]=i.Math.min(a,i.Math.min(h,p))):(a=Hw(n.p[e.p]),h=Hw(n.p[u.p])+Hw(n.d[l.p])+l.o.b+l.d.a+g+s.d.d-Hw(n.d[s.p]),c?(c=!1,n.p[e.p]=i.Math.max(h,p)):n.p[e.p]=i.Math.max(a,i.Math.max(h,p)))):(g=Hw(_B(yEt(t.a,(zYt(),Tme)))),f=wat(t,n.j[e.p]),d=wat(t,n.j[u.p]),n.o==awe?V1(f,d,Hw(n.p[e.p])+Hw(n.d[s.p])+s.o.b+s.d.a+g-(Hw(n.p[u.p])+Hw(n.d[l.p])-l.d.d)):V1(f,d,Hw(n.p[e.p])+Hw(n.d[s.p])-s.d.d-Hw(n.p[u.p])-Hw(n.d[l.p])-l.o.b-l.d.a-g))):p=t.e.bg(p,e,s),s=n.a[s.p]}while(s!=e);Ty(t.e,e)}}function cYt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;for(d=e,u=new pJ,h=new pJ,r=L2(d,M7t),UCt((i=new lK(t,n,u,h)).a,i.b,i.c,i.d,r),p=(u.i||(u.i=new $O(u,u.c))).Kc();p.Ob();)for(g=jz(p.Pb(),202),s=jz(c7(u,g),21).Kc();s.Ob();){if(o=s.Pb(),!(f=jz(cnt(t.d,o),202)))throw a=N2(d,H7t),$m(new tx(G7t+o+Z7t+a+Y7t));!g.e&&(g.e=new cF(PDe,g,10,9)),l8(g.e,f)}for(m=(h.i||(h.i=new $O(h,h.c))).Kc();m.Ob();)for(b=jz(m.Pb(),202),l=jz(c7(h,b),21).Kc();l.Ob();){if(c=l.Pb(),!(f=jz(cnt(t.d,c),202)))throw a=N2(d,H7t),$m(new tx(G7t+c+Z7t+a+Y7t));!b.g&&(b.g=new cF(PDe,b,9,10)),l8(b.g,f)}!n.b&&(n.b=new cF(NDe,n,4,7)),0!=n.b.i&&(!n.c&&(n.c=new cF(NDe,n,5,8)),0!=n.c.i)&&(!n.b&&(n.b=new cF(NDe,n,4,7)),n.b.i<=1&&(!n.c&&(n.c=new cF(NDe,n,5,8)),n.c.i<=1))&&1==(!n.a&&(n.a=new tW(PDe,n,6,6)),n.a).i&&!Eyt(y=jz(Yet((!n.a&&(n.a=new tW(PDe,n,6,6)),n.a),0),202))&&!Cyt(y)&&(Lit(y,jz(Yet((!n.b&&(n.b=new cF(NDe,n,4,7)),n.b),0),82)),Oit(y,jz(Yet((!n.c&&(n.c=new cF(NDe,n,5,8)),n.c),0),82)))}function lYt(t){var e,n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C;for(w=0,x=(v=t.a).length;w<x;++w){for(y=v[w],l=NGt,u=NGt,g=new Wf(y.e);g.a<g.c.c.length;)(o=(h=jz(J1(g),10)).c?x9(h.c.a,h,0):-1)>0?(d=jz(OU(h.c.a,o-1),10),k=BL(t.b,h,d),b=h.n.b-h.d.d-(d.n.b+d.o.b+d.d.a+k)):b=h.n.b-h.d.d,l=i.Math.min(b,l),o<h.c.a.c.length-1?(d=jz(OU(h.c.a,o+1),10),k=BL(t.b,h,d),m=d.n.b-d.d.d-(h.n.b+h.o.b+h.d.a+k)):m=2*h.n.b,u=i.Math.min(m,u);for(c=NGt,r=!1,C=new Wf((a=jz(OU(y.e,0),10)).j);C.a<C.c.c.length;)for(E=jz(J1(C),11),p=a.n.b+E.n.b+E.a.b,n=new Wf(E.e);n.a<n.c.c.length;)e=(R=jz(J1(n),17).c).i.n.b+R.n.b+R.a.b-p,i.Math.abs(e)<i.Math.abs(c)&&i.Math.abs(e)<(e<0?l:u)&&(c=e,r=!0);for(_=new Wf((s=jz(OU(y.e,y.e.c.length-1),10)).j);_.a<_.c.c.length;)for(R=jz(J1(_),11),p=s.n.b+R.n.b+R.a.b,n=new Wf(R.g);n.a<n.c.c.length;)e=(E=jz(J1(n),17).d).i.n.b+E.n.b+E.a.b-p,i.Math.abs(e)<i.Math.abs(c)&&i.Math.abs(e)<(e<0?l:u)&&(c=e,r=!0);if(r&&0!=c)for(f=new Wf(y.e);f.a<f.c.c.length;)(h=jz(J1(f),10)).n.b+=c}}function uYt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b;if(cW(t.a,e)){if(Fk(jz(NY(t.a,e),53),n))return 1}else YG(t.a,e,new Ny);if(cW(t.a,n)){if(Fk(jz(NY(t.a,n),53),e))return-1}else YG(t.a,n,new Ny);if(cW(t.e,e)){if(Fk(jz(NY(t.e,e),53),n))return-1}else YG(t.e,e,new Ny);if(cW(t.e,n)){if(Fk(jz(NY(t.a,n),53),e))return 1}else YG(t.e,n,new Ny);if(t.c==(yct(),Mye)||!IN(e,(lGt(),hhe))||!IN(n,(lGt(),hhe))){if(c=jz(xM(_3(Zct(AZ(new NU(null,new h1(e.j,16)),new lr)),new ur)),11),u=jz(xM(_3(Zct(AZ(new NU(null,new h1(n.j,16)),new dr)),new hr)),11),c&&u){if(s=c.i,l=u.i,s&&s==l){for(h=new Wf(s.j);h.a<h.c.c.length;){if((d=jz(J1(h),11))==c)return rFt(t,n,e),-1;if(d==u)return rFt(t,e,n),1}return xL(n_t(t,e),n_t(t,n))}for(p=0,b=(g=t.d).length;p<b;++p){if((f=g[p])==s)return rFt(t,n,e),-1;if(f==l)return rFt(t,e,n),1}}if(!IN(e,(lGt(),hhe))||!IN(n,hhe))return(a=n_t(t,e))>(o=n_t(t,n))?rFt(t,e,n):rFt(t,n,e),a<o?-1:a>o?1:0}return(i=jz(yEt(e,(lGt(),hhe)),19).a)>(r=jz(yEt(n,hhe),19).a)?rFt(t,e,n):rFt(t,n,e),i<r?-1:i>r?1:0}function dYt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p;if(zw(RB(JIt(e,(cGt(),UCe)))))return kK(),kK(),cne;if(c=0!=(!e.a&&(e.a=new tW(UDe,e,10,11)),e.a).i,l=!(u=vAt(e)).dc(),c||l){if(!(a=jz(JIt(e,mSe),149)))throw $m(new nx("Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout."));if(p=TT(a,(lIt(),JDe)),Obt(e),!c&&l&&!p)return kK(),kK(),cne;if(s=new Lm,HA(JIt(e,xCe))===HA((odt(),bTe))&&(TT(a,ZDe)||TT(a,GDe)))for(h=bPt(t,e),jat(f=new Zk,(!e.a&&(e.a=new tW(UDe,e,10,11)),e.a));0!=f.b;)Obt(d=jz(0==f.b?null:(EN(0!=f.b),Det(f,f.a.a)),33)),HA(JIt(d,xCe))===HA(yTe)||E5(d,tCe)&&!w6(a,JIt(d,mSe))?(pst(s,dYt(t,d,n,i)),Kmt(d,xCe,yTe),PFt(d)):jat(f,(!d.a&&(d.a=new tW(UDe,d,10,11)),d.a));else for(h=(!e.a&&(e.a=new tW(UDe,e,10,11)),e.a).i,o=new AO((!e.a&&(e.a=new tW(UDe,e,10,11)),e.a));o.e!=o.i.gc();)pst(s,dYt(t,r=jz(wmt(o),33),n,i)),PFt(r);for(g=new Wf(s);g.a<g.c.c.length;)Kmt(jz(J1(g),79),UCe,(cM(),!0));return qbt(e,a,yrt(i,h)),fjt(s),l&&p?u:(kK(),kK(),cne)}return kK(),kK(),cne}function hYt(t,e,n,i,a,r,o,s,c){var l,u,d,h,f,g,p;switch(f=n,Fh(u=new Iyt(c),(oCt(),kse)),lct(u,(lGt(),Zde),o),lct(u,(zYt(),tme),(Z_t(),WTe)),p=Hw(_B(t.We(Qbe))),lct(u,Qbe,p),CQ(d=new SCt,u),e!=ZTe&&e!=KTe||(f=i>=0?lgt(s):_ht(lgt(s)),t.Ye(rme,f)),l=new HR,h=!1,t.Xe(Jbe)?($N(l,jz(t.We(Jbe),8)),h=!0):yO(l,o.a/2,o.b/2),f.g){case 4:lct(u,vbe,(_ft(),jhe)),lct(u,Hde,(Xst(),Iue)),u.o.b=o.b,p<0&&(u.o.a=-p),HTt(d,(wWt(),sAe)),h||(l.a=o.a),l.a-=o.a;break;case 2:lct(u,vbe,(_ft(),zhe)),lct(u,Hde,(Xst(),Aue)),u.o.b=o.b,p<0&&(u.o.a=-p),HTt(d,(wWt(),SAe)),h||(l.a=0);break;case 1:lct(u,ehe,(U9(),Sde)),u.o.a=o.a,p<0&&(u.o.b=-p),HTt(d,(wWt(),EAe)),h||(l.b=o.b),l.b-=o.b;break;case 3:lct(u,ehe,(U9(),Ede)),u.o.a=o.a,p<0&&(u.o.b=-p),HTt(d,(wWt(),cAe)),h||(l.b=0)}if($N(d.n,l),lct(u,Jbe,l),e==qTe||e==YTe||e==WTe){if(g=0,e==qTe&&t.Xe(eme))switch(f.g){case 1:case 2:g=jz(t.We(eme),19).a;break;case 3:case 4:g=-jz(t.We(eme),19).a}else switch(f.g){case 4:case 2:g=r.b,e==YTe&&(g/=a.b);break;case 1:case 3:g=r.a,e==YTe&&(g/=a.a)}lct(u,Rhe,g)}return lct(u,Gde,f),u}function fYt(t){var e,n,i,a,r,o,s,c,l,d,h,f,g,p,b,m,y,v,w,x,R,_;if((n=Hw(_B(yEt(t.a.j,(zYt(),Ppe)))))<-1||!t.a.i||IF(jz(yEt(t.a.o,tme),98))||rft(t.a.o,(wWt(),sAe)).gc()<2&&rft(t.a.o,SAe).gc()<2)return!0;if(t.a.c.Rf())return!1;for(w=0,v=0,y=new Lm,c=0,l=(s=t.a.e).length;c<l;++c){for(f=0,p=(h=s[c]).length;f<p;++f)if((d=h[f]).k!=(oCt(),Tse)){for(i=t.b[d.c.p][d.p],d.k==kse?(i.b=1,jz(yEt(d,(lGt(),fhe)),11).j==(wWt(),sAe)&&(v+=i.a)):(_=rft(d,(wWt(),SAe))).dc()||!QL(_,new Mr)?i.c=1:((a=rft(d,sAe)).dc()||!QL(a,new Or))&&(w+=i.a),o=new oq(XO(dft(d).a.Kc(),new u));gIt(o);)r=jz(V6(o),17),w+=i.c,v+=i.b,q5(t,i,r.d.i);for(R=new oq(new WO((b=Ynt(Cst(Hx(Mte,1),zGt,20,0,[rft(d,(wWt(),cAe)),rft(d,EAe)]))).a.length,b.a));gIt(R);)x=jz(V6(R),11),(m=jz(yEt(x,(lGt(),xhe)),10))&&(w+=i.c,v+=i.b,q5(t,i,m))}else y.c[y.c.length]=d;for(g=new Wf(y);g.a<g.c.c.length;)for(d=jz(J1(g),10),i=t.b[d.c.p][d.p],o=new oq(XO(dft(d).a.Kc(),new u));gIt(o);)r=jz(V6(o),17),w+=i.c,v+=i.b,q5(t,i,r.d.i);y.c=O5(Dte,zGt,1,0,5,1)}return(0==(e=w+v)?BKt:(w-v)/e)>=n}function gYt(){function t(t){var e=this;this.dispatch=function(e){var n=e.data;switch(n.cmd){case"algorithms":var i=Egt((kK(),new $f(new Tf(lIe.b))));t.postMessage({id:n.id,data:i});break;case"categories":var a=Egt((kK(),new $f(new Tf(lIe.c))));t.postMessage({id:n.id,data:a});break;case"options":var r=Egt((kK(),new $f(new Tf(lIe.d))));t.postMessage({id:n.id,data:r});break;case"register":dVt(n.algorithms),t.postMessage({id:n.id});break;case"layout":Mzt(n.graph,n.layoutOptions||{},n.options||{}),t.postMessage({id:n.id,data:n.graph})}},this.saveDispatch=function(n){try{e.dispatch(n)}catch(i){t.postMessage({id:n.data.id,error:i})}}}function i(e){var n=this;this.dispatcher=new t({postMessage:function(t){n.onmessage({data:t})}}),this.postMessage=function(t){setTimeout((function(){n.dispatcher.saveDispatch({data:t})}),0)}}if(a_(),typeof document===pXt&&typeof self!==pXt){var a=new t(self);self.onmessage=a.saveDispatch}else typeof e!==pXt&&e.exports&&(Object.defineProperty(n,"__esModule",{value:!0}),e.exports={default:i,Worker:i})}function pYt(t){t.N||(t.N=!0,t.b=wot(t,0),Bat(t.b,0),Bat(t.b,1),Bat(t.b,2),t.bb=wot(t,1),Bat(t.bb,0),Bat(t.bb,1),t.fb=wot(t,2),Bat(t.fb,3),Bat(t.fb,4),Pat(t.fb,5),t.qb=wot(t,3),Bat(t.qb,0),Pat(t.qb,1),Pat(t.qb,2),Bat(t.qb,3),Bat(t.qb,4),Pat(t.qb,5),Bat(t.qb,6),t.a=xot(t,4),t.c=xot(t,5),t.d=xot(t,6),t.e=xot(t,7),t.f=xot(t,8),t.g=xot(t,9),t.i=xot(t,10),t.j=xot(t,11),t.k=xot(t,12),t.n=xot(t,13),t.o=xot(t,14),t.p=xot(t,15),t.q=xot(t,16),t.s=xot(t,17),t.r=xot(t,18),t.t=xot(t,19),t.u=xot(t,20),t.v=xot(t,21),t.w=xot(t,22),t.B=xot(t,23),t.A=xot(t,24),t.C=xot(t,25),t.D=xot(t,26),t.F=xot(t,27),t.G=xot(t,28),t.H=xot(t,29),t.J=xot(t,30),t.I=xot(t,31),t.K=xot(t,32),t.M=xot(t,33),t.L=xot(t,34),t.P=xot(t,35),t.Q=xot(t,36),t.R=xot(t,37),t.S=xot(t,38),t.T=xot(t,39),t.U=xot(t,40),t.V=xot(t,41),t.X=xot(t,42),t.W=xot(t,43),t.Y=xot(t,44),t.Z=xot(t,45),t.$=xot(t,46),t._=xot(t,47),t.ab=xot(t,48),t.cb=xot(t,49),t.db=xot(t,50),t.eb=xot(t,51),t.gb=xot(t,52),t.hb=xot(t,53),t.ib=xot(t,54),t.jb=xot(t,55),t.kb=xot(t,56),t.lb=xot(t,57),t.mb=xot(t,58),t.nb=xot(t,59),t.ob=xot(t,60),t.pb=xot(t,61))}function bYt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;if(v=0,0==e.f.a)for(m=new Wf(t);m.a<m.c.c.length;)p=jz(J1(m),10),v=i.Math.max(v,p.n.a+p.o.a+p.d.c);else v=e.f.a-e.c.a;for(v-=e.c.a,b=new Wf(t);b.a<b.c.c.length;){switch(Xm((p=jz(J1(b),10)).n,v-p.o.a),iH(p.f),Gvt(p),(p.q?p.q:(kK(),kK(),lne))._b((zYt(),sme))&&Xm(jz(yEt(p,sme),8),v-p.o.a),jz(yEt(p,vpe),248).g){case 1:lct(p,vpe,(fyt(),IEe));break;case 2:lct(p,vpe,(fyt(),DEe))}for(y=p.o,x=new Wf(p.j);x.a<x.c.c.length;){for(Xm((w=jz(J1(x),11)).n,y.a-w.o.a),Xm(w.a,w.o.a),HTt(w,Trt(w.j)),(s=jz(yEt(w,eme),19))&&lct(w,eme,nht(-s.a)),o=new Wf(w.g);o.a<o.c.c.length;){for(a=cmt((r=jz(J1(o),17)).a,0);a.b!=a.d.c;)(n=jz(d4(a),8)).a=v-n.a;if(u=jz(yEt(r,bbe),74))for(l=cmt(u,0);l.b!=l.d.c;)(c=jz(d4(l),8)).a=v-c.a;for(f=new Wf(r.b);f.a<f.c.c.length;)Xm((d=jz(J1(f),70)).n,v-d.o.a)}for(g=new Wf(w.f);g.a<g.c.c.length;)Xm((d=jz(J1(g),70)).n,w.o.a-d.o.a)}for(p.k==(oCt(),kse)&&(lct(p,(lGt(),Gde),Trt(jz(yEt(p,Gde),61))),KEt(p)),h=new Wf(p.b);h.a<h.c.c.length;)Gvt(d=jz(J1(h),70)),Xm(d.n,y.a-d.o.a)}}function mYt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;if(v=0,0==e.f.b)for(m=new Wf(t);m.a<m.c.c.length;)p=jz(J1(m),10),v=i.Math.max(v,p.n.b+p.o.b+p.d.a);else v=e.f.b-e.c.b;for(v-=e.c.b,b=new Wf(t);b.a<b.c.c.length;){switch(Km((p=jz(J1(b),10)).n,v-p.o.b),aH(p.f),Zvt(p),(p.q?p.q:(kK(),kK(),lne))._b((zYt(),sme))&&Km(jz(yEt(p,sme),8),v-p.o.b),jz(yEt(p,vpe),248).g){case 3:lct(p,vpe,(fyt(),TEe));break;case 4:lct(p,vpe,(fyt(),LEe))}for(y=p.o,x=new Wf(p.j);x.a<x.c.c.length;){for(Km((w=jz(J1(x),11)).n,y.b-w.o.b),Km(w.a,w.o.b),HTt(w,Art(w.j)),(s=jz(yEt(w,eme),19))&&lct(w,eme,nht(-s.a)),o=new Wf(w.g);o.a<o.c.c.length;){for(a=cmt((r=jz(J1(o),17)).a,0);a.b!=a.d.c;)(n=jz(d4(a),8)).b=v-n.b;if(u=jz(yEt(r,bbe),74))for(l=cmt(u,0);l.b!=l.d.c;)(c=jz(d4(l),8)).b=v-c.b;for(f=new Wf(r.b);f.a<f.c.c.length;)Km((d=jz(J1(f),70)).n,v-d.o.b)}for(g=new Wf(w.f);g.a<g.c.c.length;)Km((d=jz(J1(g),70)).n,w.o.b-d.o.b)}for(p.k==(oCt(),kse)&&(lct(p,(lGt(),Gde),Art(jz(yEt(p,Gde),61))),pht(p)),h=new Wf(p.b);h.a<h.c.c.length;)Zvt(d=jz(J1(h),70)),Km(d.n,y.b-d.o.b)}}function yYt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f;for(d=!1,l=t+1,u1(t,e.c.length),o=(u=jz(e.c[t],200)).a,s=null,r=0;r<u.a.c.length;r++)if(u1(r,o.c.length),!(a=jz(o.c[r],187)).c){if(0==a.b.c.length){Dk(),_xt(u,a),--r,d=!0;continue}if(a.k||(s&&Uvt(s),_yt(a,(s=new BJ(s?s.e+s.d+i:0,u.f,i)).e+s.d,u.f),Wz(u.d,s),Mrt(s,a),a.k=!0),c=null,f=null,r<u.a.c.length-1?f=jz(OU(u.a,r+1),187):l<e.c.length&&0!=(u1(l,e.c.length),jz(e.c[l],200)).a.c.length&&(f=jz(OU((u1(l,e.c.length),jz(e.c[l],200)).a,0),187)),h=!1,(c=f)&&(h=!Odt(c.j,u)),c){if(0==c.b.c.length){_xt(u,c);break}if(p8(a,n-a.s),Uvt(a.q),d|=QEt(u,a,c,n,i),0==c.b.c.length)for(_xt((u1(l,e.c.length),jz(e.c[l],200)),c),c=null;e.c.length>l&&0==(u1(l,e.c.length),jz(e.c[l],200)).a.c.length;)y9(e,(u1(l,e.c.length),e.c[l]));if(!c){--r;continue}if(Djt(e,u,a,c,h,n,l,i)){d=!0;continue}if(h){if(Xzt(e,u,a,c,n,l,i)){d=!0;continue}if(Dut(u,a)){a.c=!0,d=!0;continue}}else if(Dut(u,a)){a.c=!0,d=!0;continue}if(d)continue}if(Dut(u,a)){a.c=!0,d=!0,c&&(c.k=!1);continue}Uvt(a.q)}return d}function vYt(t,e,n,a,r,o,s){var c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A,D,I;for(b=0,S=0,u=new Wf(t.b);u.a<u.c.c.length;)(l=jz(J1(u),157)).c&&sqt(l.c),b=i.Math.max(b,eV(l)),S+=eV(l)*tV(l);for(m=S/t.b.c.length,C=lRt(t.b,m),S+=t.b.c.length*C,b=i.Math.max(b,i.Math.sqrt(S*s))+n.b,D=n.b,I=n.d,g=0,h=n.b+n.c,MH(E=new Zk,nht(0)),_=new Zk,d=new _2(t.b,0),p=null,c=new Lm;d.b<d.d.gc();)EN(d.b<d.d.gc()),A=eV(l=jz(d.d.Xb(d.c=d.b++),157)),f=tV(l),D+A>b&&(o&&(lD(_,g),lD(E,nht(d.b-1)),Wz(t.d,p),c.c=O5(Dte,zGt,1,0,5,1)),D=n.b,I+=g+e,g=0,h=i.Math.max(h,n.b+n.c+A)),c.c[c.c.length]=l,kmt(l,D,I),h=i.Math.max(h,D+A+n.c),g=i.Math.max(g,f),D+=A+e,p=l;if(pst(t.a,c),Wz(t.d,jz(OU(c,c.c.length-1),157)),h=i.Math.max(h,a),(T=I+g+n.a)<r&&(g+=r-T,T=r),o)for(D=n.b,d=new _2(t.b,0),lD(E,nht(t.b.c.length)),v=jz(d4(k=cmt(E,0)),19).a,lD(_,g),R=cmt(_,0),x=0;d.b<d.d.gc();)d.b==v&&(D=n.b,x=Hw(_B(d4(R))),v=jz(d4(k),19).a),EN(d.b<d.d.gc()),qpt(l=jz(d.d.Xb(d.c=d.b++),157),x),d.b==v&&(y=h-D-n.c,w=eV(l),Vpt(l,y),jht(l,(y-w)/2,0)),D+=eV(l)+e;return new OT(h,T)}function wYt(t){var e,n,i,a;switch(a=null,t.c){case 6:return t.Vl();case 13:return t.Wl();case 23:return t.Nl();case 22:return t.Sl();case 18:return t.Pl();case 8:ZYt(t),fGt(),a=rMe;break;case 9:return t.vl(!0);case 19:return t.wl();case 10:switch(t.a){case 100:case 68:case 119:case 87:case 115:case 83:return a=t.ul(t.a),ZYt(t),a;case 101:case 102:case 110:case 114:case 116:case 117:case 118:case 120:(e=t.tl())<$Kt?(fGt(),fGt(),a=new oV(0,e)):a=pq(Wht(e));break;case 99:return t.Fl();case 67:return t.Al();case 105:return t.Il();case 73:return t.Bl();case 103:return t.Gl();case 88:return t.Cl();case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return t.xl();case 80:case 112:if(!(a=NAt(t,t.a)))throw $m(new ax(wGt((rL(),A5t))));break;default:a=GH(t.a)}ZYt(t);break;case 0:if(93==t.a||123==t.a||125==t.a)throw $m(new ax(wGt((rL(),T5t))));a=GH(t.a),n=t.a,ZYt(t),(64512&n)==zKt&&0==t.c&&56320==(64512&t.a)&&((i=O5(SMe,YZt,25,2,15,1))[0]=n&ZZt,i[1]=t.a&ZZt,a=oW(pq($pt(i,0,i.length)),0),ZYt(t));break;default:throw $m(new ax(wGt((rL(),T5t))))}return a}function xYt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b;if(a=new Lm,r=NGt,o=NGt,s=NGt,n)for(r=t.f.a,p=new Wf(e.j);p.a<p.c.c.length;)for(l=new Wf(jz(J1(p),11).g);l.a<l.c.c.length;)0!=(c=jz(J1(l),17)).a.b&&((d=jz(gN(c.a),8)).a<r&&(o=r-d.a,s=NGt,a.c=O5(Dte,zGt,1,0,5,1),r=d.a),d.a<=r&&(a.c[a.c.length]=c,c.a.b>1&&(s=i.Math.min(s,i.Math.abs(jz(Nmt(c.a,1),8).b-d.b)))));else for(p=new Wf(e.j);p.a<p.c.c.length;)for(l=new Wf(jz(J1(p),11).e);l.a<l.c.c.length;)0!=(c=jz(J1(l),17)).a.b&&((f=jz(pN(c.a),8)).a>r&&(o=f.a-r,s=NGt,a.c=O5(Dte,zGt,1,0,5,1),r=f.a),f.a>=r&&(a.c[a.c.length]=c,c.a.b>1&&(s=i.Math.min(s,i.Math.abs(jz(Nmt(c.a,c.a.b-2),8).b-f.b)))));if(0!=a.c.length&&o>e.o.a/2&&s>e.o.b/2){for(CQ(g=new SCt,e),HTt(g,(wWt(),cAe)),g.n.a=e.o.a/2,CQ(b=new SCt,e),HTt(b,EAe),b.n.a=e.o.a/2,b.n.b=e.o.b,l=new Wf(a);l.a<l.c.c.length;)c=jz(J1(l),17),n?(u=jz(fH(c.a),8),(0==c.a.b?g1(c.d):jz(gN(c.a),8)).b>=u.b?kQ(c,b):kQ(c,g)):(u=jz(gH(c.a),8),(0==c.a.b?g1(c.c):jz(pN(c.a),8)).b>=u.b?_Q(c,b):_Q(c,g)),(h=jz(yEt(c,(zYt(),bbe)),74))&&vgt(h,u,!0);e.n.a=r-e.o.a/2}}function RYt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;if(l=e,Iit(c=G4(t,I4(n),l),N2(l,H7t)),u=jz(cnt(t.g,wAt(UJ(l,_7t))),33),i=null,(o=UJ(l,"sourcePort"))&&(i=wAt(o)),d=jz(cnt(t.j,i),118),!u)throw $m(new tx("An edge must have a source node (edge id: '"+Zpt(l)+Y7t));if(d&&!hG(WJ(d),u))throw $m(new tx("The source port of an edge must be a port of the edge's source node (edge id: '"+N2(l,H7t)+Y7t));if(!c.b&&(c.b=new cF(NDe,c,4,7)),l8(c.b,d||u),h=jz(cnt(t.g,wAt(UJ(l,K7t))),33),a=null,(s=UJ(l,"targetPort"))&&(a=wAt(s)),f=jz(cnt(t.j,a),118),!h)throw $m(new tx("An edge must have a target node (edge id: '"+Zpt(l)+Y7t));if(f&&!hG(WJ(f),h))throw $m(new tx("The target port of an edge must be a port of the edge's target node (edge id: '"+N2(l,H7t)+Y7t));if(!c.c&&(c.c=new cF(NDe,c,5,8)),l8(c.c,f||h),0==(!c.b&&(c.b=new cF(NDe,c,4,7)),c.b).i||0==(!c.c&&(c.c=new cF(NDe,c,5,8)),c.c).i)throw r=N2(l,H7t),$m(new tx(W7t+r+Y7t));return Ekt(l,c),cLt(l,c),Mct(t,l,c)}function _Yt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C;return d=S$t($M(t,(wWt(),fAe)),e),g=rwt($M(t,gAe),e),w=rwt($M(t,RAe),e),k=owt($M(t,kAe),e),h=owt($M(t,lAe),e),y=rwt($M(t,xAe),e),p=rwt($M(t,pAe),e),R=rwt($M(t,_Ae),e),x=rwt($M(t,uAe),e),E=owt($M(t,hAe),e),m=rwt($M(t,vAe),e),v=rwt($M(t,yAe),e),_=rwt($M(t,dAe),e),C=owt($M(t,wAe),e),f=owt($M(t,bAe),e),b=rwt($M(t,mAe),e),n=Lct(Cst(Hx(LMe,1),HKt,25,15,[y.a,k.a,R.a,C.a])),i=Lct(Cst(Hx(LMe,1),HKt,25,15,[g.a,d.a,w.a,b.a])),a=m.a,r=Lct(Cst(Hx(LMe,1),HKt,25,15,[p.a,h.a,x.a,f.a])),l=Lct(Cst(Hx(LMe,1),HKt,25,15,[y.b,g.b,p.b,v.b])),c=Lct(Cst(Hx(LMe,1),HKt,25,15,[k.b,d.b,h.b,b.b])),u=E.b,s=Lct(Cst(Hx(LMe,1),HKt,25,15,[R.b,w.b,x.b,_.b])),h8($M(t,fAe),n+a,l+u),h8($M(t,mAe),n+a,l+u),h8($M(t,gAe),n+a,0),h8($M(t,RAe),n+a,l+u+c),h8($M(t,kAe),0,l+u),h8($M(t,lAe),n+a+i,l+u),h8($M(t,pAe),n+a+i,0),h8($M(t,_Ae),0,l+u+c),h8($M(t,uAe),n+a+i,l+u+c),h8($M(t,hAe),0,l),h8($M(t,vAe),n,0),h8($M(t,dAe),0,l+u+c),h8($M(t,bAe),n+a+i,0),(o=new HR).a=Lct(Cst(Hx(LMe,1),HKt,25,15,[n+i+a+r,E.a,v.a,_.a])),o.b=Lct(Cst(Hx(LMe,1),HKt,25,15,[l+c+u+s,m.b,C.b,f.b])),o}function kYt(t){var e,n,i,a,r,o,s,c,l,d,h,f,g,p,b;for(p=new Lm,h=new Wf(t.d.b);h.a<h.c.c.length;)for(g=new Wf(jz(J1(h),29).a);g.a<g.c.c.length;){for(f=jz(J1(g),10),a=jz(NY(t.f,f),57),c=new oq(XO(dft(f).a.Kc(),new u));gIt(c);)if(l=!0,d=null,(i=cmt((o=jz(V6(c),17)).a,0)).b!=i.d.c){for(e=jz(d4(i),8),n=null,o.c.j==(wWt(),cAe)&&((b=new Czt(e,new OT(e.a,a.d.d),a,o)).f.a=!0,b.a=o.c,p.c[p.c.length]=b),o.c.j==EAe&&((b=new Czt(e,new OT(e.a,a.d.d+a.d.a),a,o)).f.d=!0,b.a=o.c,p.c[p.c.length]=b);i.b!=i.d.c;)n=jz(d4(i),8),rnt(e.b,n.b)||(d=new Czt(e,n,null,o),p.c[p.c.length]=d,l&&(l=!1,n.b<a.d.d?d.f.a=!0:n.b>a.d.d+a.d.a?d.f.d=!0:(d.f.d=!0,d.f.a=!0))),i.b!=i.d.c&&(e=n);d&&(r=jz(NY(t.f,o.d.i),57),e.b<r.d.d?d.f.a=!0:e.b>r.d.d+r.d.a?d.f.d=!0:(d.f.d=!0,d.f.a=!0))}for(s=new oq(XO(uft(f).a.Kc(),new u));gIt(s);)0!=(o=jz(V6(s),17)).a.b&&(e=jz(pN(o.a),8),o.d.j==(wWt(),cAe)&&((b=new Czt(e,new OT(e.a,a.d.d),a,o)).f.a=!0,b.a=o.d,p.c[p.c.length]=b),o.d.j==EAe&&((b=new Czt(e,new OT(e.a,a.d.d+a.d.a),a,o)).f.d=!0,b.a=o.d,p.c[p.c.length]=b))}return p}function EYt(t,e,n){var i,a,r,o,s,c,l;if(Akt(n,"Network simplex node placement",1),t.e=e,t.n=jz(yEt(e,(lGt(),Ahe)),304),sUt(t),B_t(t),Kk(htt(new NU(null,new h1(t.e.b,16)),new Hr),new ib(t)),Kk(AZ(htt(AZ(htt(new NU(null,new h1(t.e.b,16)),new eo),new no),new io),new ao),new nb(t)),zw(RB(yEt(t.e,(zYt(),Obe))))&&(Akt(r=yrt(n,1),"Straight Edges Pre-Processing",1),xqt(t),zCt(r)),kyt(t.f),a=jz(yEt(e,Ome),19).a*t.f.a.c.length,YFt(Gx(Zx(jj(t.f),a),!1),yrt(n,1)),0!=t.d.a.gc()){for(Akt(r=yrt(n,1),"Flexible Where Space Processing",1),o=jz(DM(Tq(DZ(new NU(null,new h1(t.f.a,16)),new Ur),new Br)),19).a,s=jz(DM(Sq(DZ(new NU(null,new h1(t.f.a,16)),new Vr),new Pr)),19).a-o,c=AM(new zy,t.f),l=AM(new zy,t.f),qMt(aE(iE(nE(rE(new $y,2e4),s),c),l)),Kk(AZ(AZ(IW(t.i),new qr),new Wr),new UZ(o,c,s,l)),i=t.d.a.ec().Kc();i.Ob();)jz(i.Pb(),213).g=1;YFt(Gx(Zx(jj(t.f),a),!1),yrt(r,1)),zCt(r)}zw(RB(yEt(e,Obe)))&&(Akt(r=yrt(n,1),"Straight Edges Post-Processing",1),ESt(t),zCt(r)),ZVt(t),t.e=null,t.f=null,t.i=null,t.c=null,DW(t.k),t.j=null,t.a=null,t.o=null,t.d.a.$b(),zCt(n)}function CYt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;for(s=new Wf(t.a.b);s.a<s.c.c.length;)for(v=new Wf(jz(J1(s),29).a);v.a<v.c.c.length;)y=jz(J1(v),10),e.g[y.p]=y,e.a[y.p]=y,e.d[y.p]=0;for(c=t.a.b,e.c==(gJ(),Qve)&&(c=iO(c,152)?o7(jz(c,152)):iO(c,131)?jz(c,131).a:iO(c,54)?new lw(c):new Ck(c)),o=c.Kc();o.Ob();)for(f=-1,h=jz(o.Pb(),29).a,e.o==(oQ(),awe)&&(f=NGt,h=iO(h,152)?o7(jz(h,152)):iO(h,131)?jz(h,131).a:iO(h,54)?new lw(h):new Ck(h)),x=h.Kc();x.Ob();)if(w=jz(x.Pb(),10),d=null,(d=e.c==Qve?jz(OU(t.b.f,w.p),15):jz(OU(t.b.b,w.p),15)).gc()>0)if(a=d.gc(),l=CJ(i.Math.floor((a+1)/2))-1,r=CJ(i.Math.ceil((a+1)/2))-1,e.o==awe)for(u=r;u>=l;u--)e.a[w.p]==w&&(p=jz(d.Xb(u),46),g=jz(p.a,10),!Fk(n,p.b)&&f>t.b.e[g.p]&&(e.a[g.p]=w,e.g[w.p]=e.g[g.p],e.a[w.p]=e.g[w.p],e.f[e.g[w.p].p]=(cM(),!!(zw(e.f[e.g[w.p].p])&w.k==(oCt(),Cse))),f=t.b.e[g.p]));else for(u=l;u<=r;u++)e.a[w.p]==w&&(m=jz(d.Xb(u),46),b=jz(m.a,10),!Fk(n,m.b)&&f<t.b.e[b.p]&&(e.a[b.p]=w,e.g[w.p]=e.g[b.p],e.a[w.p]=e.g[w.p],e.f[e.g[w.p].p]=(cM(),!!(zw(e.f[e.g[w.p].p])&w.k==(oCt(),Cse))),f=t.b.e[b.p]))}function SYt(){SYt=D,t_(),EDe=gDe.a,jz(Yet(GK(gDe.a),0),18),vDe=gDe.f,jz(Yet(GK(gDe.f),0),18),jz(Yet(GK(gDe.f),1),34),kDe=gDe.n,jz(Yet(GK(gDe.n),0),34),jz(Yet(GK(gDe.n),1),34),jz(Yet(GK(gDe.n),2),34),jz(Yet(GK(gDe.n),3),34),wDe=gDe.g,jz(Yet(GK(gDe.g),0),18),jz(Yet(GK(gDe.g),1),34),bDe=gDe.c,jz(Yet(GK(gDe.c),0),18),jz(Yet(GK(gDe.c),1),18),xDe=gDe.i,jz(Yet(GK(gDe.i),0),18),jz(Yet(GK(gDe.i),1),18),jz(Yet(GK(gDe.i),2),18),jz(Yet(GK(gDe.i),3),18),jz(Yet(GK(gDe.i),4),34),RDe=gDe.j,jz(Yet(GK(gDe.j),0),18),mDe=gDe.d,jz(Yet(GK(gDe.d),0),18),jz(Yet(GK(gDe.d),1),18),jz(Yet(GK(gDe.d),2),18),jz(Yet(GK(gDe.d),3),18),jz(Yet(GK(gDe.d),4),34),jz(Yet(GK(gDe.d),5),34),jz(Yet(GK(gDe.d),6),34),jz(Yet(GK(gDe.d),7),34),pDe=gDe.b,jz(Yet(GK(gDe.b),0),34),jz(Yet(GK(gDe.b),1),34),yDe=gDe.e,jz(Yet(GK(gDe.e),0),34),jz(Yet(GK(gDe.e),1),34),jz(Yet(GK(gDe.e),2),34),jz(Yet(GK(gDe.e),3),34),jz(Yet(GK(gDe.e),4),18),jz(Yet(GK(gDe.e),5),18),jz(Yet(GK(gDe.e),6),18),jz(Yet(GK(gDe.e),7),18),jz(Yet(GK(gDe.e),8),18),jz(Yet(GK(gDe.e),9),18),jz(Yet(GK(gDe.e),10),34),_De=gDe.k,jz(Yet(GK(gDe.k),0),34),jz(Yet(GK(gDe.k),1),34)}function TYt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S;for(E=new Zk,R=new Zk,b=-1,c=new Wf(t);c.a<c.c.c.length;){for((o=jz(J1(c),128)).s=b--,u=0,v=0,r=new Wf(o.t);r.a<r.c.c.length;)v+=(i=jz(J1(r),268)).c;for(a=new Wf(o.i);a.a<a.c.c.length;)u+=(i=jz(J1(a),268)).c;o.n=u,o.u=v,0==v?n6(R,o,R.c.b,R.c):0==u&&n6(E,o,E.c.b,E.c)}for(S=k3(t),p=(d=t.c.length)+1,m=d-1,f=new Lm;0!=S.a.gc();){for(;0!=R.b;)EN(0!=R.b),x=jz(Det(R,R.a.a),128),S.a.Bc(x),x.s=m--,aOt(x,E,R);for(;0!=E.b;)EN(0!=E.b),_=jz(Det(E,E.a.a),128),S.a.Bc(_),_.s=p++,aOt(_,E,R);for(g=FZt,l=S.a.ec().Kc();l.Ob();)(y=(o=jz(l.Pb(),128)).u-o.n)>=g&&(y>g&&(f.c=O5(Dte,zGt,1,0,5,1),g=y),f.c[f.c.length]=o);0!=f.c.length&&(h=jz(OU(f,byt(e,f.c.length)),128),S.a.Bc(h),h.s=p++,aOt(h,E,R),f.c=O5(Dte,zGt,1,0,5,1))}for(w=t.c.length+1,s=new Wf(t);s.a<s.c.c.length;)(o=jz(J1(s),128)).s<d&&(o.s+=w);for(k=new Wf(t);k.a<k.c.c.length;)for(n=new _2((_=jz(J1(k),128)).t,0);n.b<n.d.gc();)EN(n.b<n.d.gc()),C=(i=jz(n.d.Xb(n.c=n.b++),268)).b,_.s>C.s&&(lG(n),y9(C.i,i),i.c>0&&(i.a=C,Wz(C.t,i),i.b=_,Wz(_.i,i)))}function AYt(t){var e,n,i,a,r;switch(e=t.c){case 11:return t.Ml();case 12:return t.Ol();case 14:return t.Ql();case 15:return t.Tl();case 16:return t.Rl();case 17:return t.Ul();case 21:return ZYt(t),fGt(),fGt(),oMe;case 10:switch(t.a){case 65:return t.yl();case 90:return t.Dl();case 122:return t.Kl();case 98:return t.El();case 66:return t.zl();case 60:return t.Jl();case 62:return t.Hl()}}switch(r=wYt(t),e=t.c){case 3:return t.Zl(r);case 4:return t.Xl(r);case 5:return t.Yl(r);case 0:if(123==t.a&&t.d<t.j){if(a=t.d,i=0,n=-1,!((e=lZ(t.i,a++))>=48&&e<=57))throw $m(new ax(wGt((rL(),W5t))));for(i=e-48;a<t.j&&(e=lZ(t.i,a++))>=48&&e<=57;)if((i=10*i+e-48)<0)throw $m(new ax(wGt((rL(),K5t))));if(n=i,44==e){if(a>=t.j)throw $m(new ax(wGt((rL(),G5t))));if((e=lZ(t.i,a++))>=48&&e<=57){for(n=e-48;a<t.j&&(e=lZ(t.i,a++))>=48&&e<=57;)if((n=10*n+e-48)<0)throw $m(new ax(wGt((rL(),K5t))));if(i>n)throw $m(new ax(wGt((rL(),Z5t))))}else n=-1}if(125!=e)throw $m(new ax(wGt((rL(),Y5t))));t.sl(a)?(fGt(),fGt(),r=new c3(9,r),t.d=a+1):(fGt(),fGt(),r=new c3(3,r),t.d=a),r.dm(i),r.cm(n),ZYt(t)}}return r}function DYt(t,e,n,i,a){var r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E;for(g=new K7(e.b),y=new K7(e.b),h=new K7(e.b),R=new K7(e.b),p=new K7(e.b),x=cmt(e,0);x.b!=x.d.c;)for(s=new Wf((v=jz(d4(x),11)).g);s.a<s.c.c.length;)if((r=jz(J1(s),17)).c.i==r.d.i){if(v.j==r.d.j){R.c[R.c.length]=r;continue}if(v.j==(wWt(),cAe)&&r.d.j==EAe){p.c[p.c.length]=r;continue}}for(c=new Wf(p);c.a<c.c.c.length;)Fjt(t,r=jz(J1(c),17),n,i,(wWt(),sAe));for(o=new Wf(R);o.a<o.c.c.length;)r=jz(J1(o),17),Fh(_=new Iyt(t),(oCt(),Tse)),lct(_,(zYt(),tme),(Z_t(),WTe)),lct(_,(lGt(),fhe),r),lct(k=new SCt,fhe,r.d),HTt(k,(wWt(),SAe)),CQ(k,_),lct(E=new SCt,fhe,r.c),HTt(E,sAe),CQ(E,_),lct(r.c,xhe,_),lct(r.d,xhe,_),kQ(r,null),_Q(r,null),n.c[n.c.length]=_,lct(_,jde,nht(2));for(w=cmt(e,0);w.b!=w.d.c;)l=(v=jz(d4(w),11)).e.c.length>0,b=v.g.c.length>0,l&&b?h.c[h.c.length]=v:l?g.c[g.c.length]=v:b&&(y.c[y.c.length]=v);for(f=new Wf(g);f.a<f.c.c.length;)Wz(a,zzt(t,jz(J1(f),11),null,n));for(m=new Wf(y);m.a<m.c.c.length;)Wz(a,zzt(t,null,jz(J1(m),11),n));for(d=new Wf(h);d.a<d.c.c.length;)Wz(a,zzt(t,u=jz(J1(d),11),u,n))}function IYt(t){var e,n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;for(p=new OT(BKt,BKt),e=new OT(PKt,PKt),x=new Wf(t);x.a<x.c.c.length;)w=jz(J1(x),8),p.a=i.Math.min(p.a,w.a),p.b=i.Math.min(p.b,w.b),e.a=i.Math.max(e.a,w.a),e.b=i.Math.max(e.b,w.b);for(l=new OT(e.a-p.a,e.b-p.b),u=new J$t(new OT(p.a-50,p.b-l.a-50),new OT(p.a-50,e.b+l.a+50),new OT(e.a+l.b/2+50,p.b+l.b/2)),v=new Ny,r=new Lm,n=new Lm,v.a.zc(u,v),_=new Wf(t);_.a<_.c.c.length;){for(R=jz(J1(_),8),r.c=O5(Dte,zGt,1,0,5,1),y=v.a.ec().Kc();y.Ob();)W5((b=jz(y.Pb(),308)).d,b.a),Tft(W5(b.d,R),W5(b.d,b.a))<0&&(r.c[r.c.length]=b);for(n.c=O5(Dte,zGt,1,0,5,1),m=new Wf(r);m.a<m.c.c.length;)for(f=new Wf((b=jz(J1(m),308)).e);f.a<f.c.c.length;){for(d=jz(J1(f),168),o=!0,c=new Wf(r);c.a<c.c.c.length;)(s=jz(J1(c),308))!=b&&(iZ(d,OU(s.e,0))||iZ(d,OU(s.e,1))||iZ(d,OU(s.e,2)))&&(o=!1);o&&(n.c[n.c.length]=d)}for(sEt(v,r),t6(v,new ht),h=new Wf(n);h.a<h.c.c.length;)RW(v,new J$t(R,(d=jz(J1(h),168)).a,d.b))}for(t6(v,new wg(g=new Ny)),a=g.a.ec().Kc();a.Ob();)(B9(u,(d=jz(a.Pb(),168)).a)||B9(u,d.b))&&a.Qb();return t6(g,new ft),g}function LYt(t){var e,n,i;switch(n=jz(yEt(t,(lGt(),Xde)),21),e=vI(Loe),jz(yEt(t,(zYt(),sbe)),334)==(odt(),bTe)&&Xrt(e,Ooe),zw(RB(yEt(t,rbe)))?fU(e,(vEt(),Boe),(dGt(),zce)):fU(e,(vEt(),Foe),(dGt(),zce)),null!=yEt(t,(C7(),REe))&&Xrt(e,Moe),(zw(RB(yEt(t,gbe)))||zw(RB(yEt(t,obe))))&&WV(e,(vEt(),$oe),(dGt(),ece)),jz(yEt(t,Vpe),103).g){case 2:case 3:case 4:WV(fU(e,(vEt(),Boe),(dGt(),ice)),$oe,nce)}switch(n.Hc((hBt(),lde))&&WV(fU(fU(e,(vEt(),Boe),(dGt(),tce)),joe,Jse),$oe,Qse),HA(yEt(t,kbe))!==HA((cMt(),Tye))&&fU(e,(vEt(),Foe),(dGt(),Oce)),n.Hc(bde)&&(fU(e,(vEt(),Boe),(dGt(),jce)),fU(e,Poe,Pce),fU(e,Foe,Fce)),HA(yEt(t,Epe))!==HA((XEt(),ade))&&HA(yEt(t,Xpe))!==HA((kft(),KSe))&&WV(e,(vEt(),$oe),(dGt(),bce)),zw(RB(yEt(t,lbe)))&&fU(e,(vEt(),Foe),(dGt(),pce)),zw(RB(yEt(t,$pe)))&&fU(e,(vEt(),Foe),(dGt(),Yce)),POt(t)&&(i=(HA(yEt(t,sbe))===HA(bTe)?jz(yEt(t,Npe),292):jz(yEt(t,Bpe),292))==(Pot(),xde)?(dGt(),Bce):(dGt(),Kce),fU(e,(vEt(),joe),i)),jz(yEt(t,Ume),377).g){case 1:fU(e,(vEt(),joe),(dGt(),Gce));break;case 2:WV(fU(fU(e,(vEt(),Foe),(dGt(),Gse)),joe,Zse),$oe,Kse)}return HA(yEt(t,Ipe))!==HA((yct(),Oye))&&fU(e,(vEt(),Foe),(dGt(),Zce)),e}function OYt(t){LE(t,new kkt(bR(hR(pR(gR(new bs,I3t),"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 ts))),r2(t,I3t,GJt,1.3),r2(t,I3t,D3t,ymt(g_e)),r2(t,I3t,ZJt,S_e),r2(t,I3t,mQt,15),r2(t,I3t,o4t,ymt(d_e)),r2(t,I3t,CQt,ymt(w_e)),r2(t,I3t,$Qt,ymt(x_e)),r2(t,I3t,EQt,ymt(R_e)),r2(t,I3t,SQt,ymt(v_e)),r2(t,I3t,kQt,ymt(__e)),r2(t,I3t,TQt,ymt(T_e)),r2(t,I3t,R3t,ymt(E_e)),r2(t,I3t,_3t,ymt(y_e)),r2(t,I3t,C3t,ymt(k_e)),r2(t,I3t,S3t,ymt(A_e)),r2(t,I3t,T3t,ymt(p_e)),r2(t,I3t,xQt,ymt(b_e)),r2(t,I3t,y4t,ymt(m_e)),r2(t,I3t,E3t,ymt(f_e)),r2(t,I3t,k3t,ymt(h_e)),r2(t,I3t,A3t,ymt(I_e))}function MYt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p;if(null==n)return null;if(t.a!=e.Aj())throw $m(new Pw(g7t+e.ne()+p7t));if(iO(e,457)){if(!(p=EBt(jz(e,671),n)))throw $m(new Pw(b7t+n+"' is not a valid enumerator of '"+e.ne()+"'"));return p}switch(Sdt((TSt(),KLe),e).cl()){case 2:n=jzt(n,!1);break;case 3:n=jzt(n,!0)}if(i=Sdt(KLe,e).$k())return i.Aj().Nh().Kh(i,n);if(d=Sdt(KLe,e).al()){for(p=new Lm,l=0,u=(c=vlt(n)).length;l<u;++l)s=c[l],Wz(p,d.Aj().Nh().Kh(d,s));return p}if(!(g=Sdt(KLe,e).bl()).dc()){for(f=g.Kc();f.Ob();){h=jz(f.Pb(),148);try{if(null!=(p=h.Aj().Nh().Kh(h,n)))return p}catch(b){if(!iO(b=dst(b),60))throw $m(b)}}throw $m(new Pw(b7t+n+"' does not match any member types of the union datatype '"+e.ne()+"'"))}if(jz(e,834).Fj(),!(a=Mdt(e.Bj())))return null;if(a==Eee){r=0;try{r=djt(n,FZt,NGt)&ZZt}catch(b){if(!iO(b=dst(b),127))throw $m(b);r=Y9(n)[0]}return ust(r)}if(a==bee){for(o=0;o<SDe.length;++o)try{return jE(SDe[o],n)}catch(b){if(!iO(b=dst(b),32))throw $m(b)}throw $m(new Pw(b7t+n+"' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof"))}throw $m(new Pw(b7t+n+"' is invalid. "))}function NYt(t,e){var n,i,a,r,o,s,c,l;if(n=0,o=0,r=e.length,s=null,l=new Sx,o<r&&(d1(o,e.length),43==e.charCodeAt(o))&&(++n,++o<r&&(d1(o,e.length),43==e.charCodeAt(o)||(d1(o,e.length),45==e.charCodeAt(o)))))throw $m(new _x(NKt+e+'"'));for(;o<r&&(d1(o,e.length),46!=e.charCodeAt(o))&&(d1(o,e.length),101!=e.charCodeAt(o))&&(d1(o,e.length),69!=e.charCodeAt(o));)++o;if(l.a+=""+lN(null==e?VGt:(vG(e),e),n,o),o<r&&(d1(o,e.length),46==e.charCodeAt(o))){for(n=++o;o<r&&(d1(o,e.length),101!=e.charCodeAt(o))&&(d1(o,e.length),69!=e.charCodeAt(o));)++o;t.e=o-n,l.a+=""+lN(null==e?VGt:(vG(e),e),n,o)}else t.e=0;if(o<r&&(d1(o,e.length),101==e.charCodeAt(o)||(d1(o,e.length),69==e.charCodeAt(o)))&&(n=++o,o<r&&(d1(o,e.length),43==e.charCodeAt(o))&&++o<r&&(d1(o,e.length),45!=e.charCodeAt(o))&&++n,s=e.substr(n,r-n),t.e=t.e-djt(s,FZt,NGt),t.e!=CJ(t.e)))throw $m(new _x("Scale out of range."));if((c=l.a).length<16){if(t.f=(null==Zee&&(Zee=new RegExp("^[+-]?\\d*$","i")),Zee.test(c)?parseInt(c,10):NaN),isNaN(t.f))throw $m(new _x(NKt+e+'"'));t.a=rAt(t.f)}else upt(t,new DI(c));for(t.d=l.a.length,a=0;a<l.a.length&&(45==(i=lZ(l.a,a))||48==i);++a)--t.d;0==t.d&&(t.d=1)}function BYt(){BYt=D,XAt(lse=new pJ,(wWt(),fAe),mAe),XAt(lse,kAe,mAe),XAt(lse,kAe,wAe),XAt(lse,lAe,bAe),XAt(lse,lAe,mAe),XAt(lse,gAe,mAe),XAt(lse,gAe,yAe),XAt(lse,RAe,dAe),XAt(lse,RAe,mAe),XAt(lse,vAe,hAe),XAt(lse,vAe,mAe),XAt(lse,vAe,yAe),XAt(lse,vAe,dAe),XAt(lse,hAe,vAe),XAt(lse,hAe,wAe),XAt(lse,hAe,bAe),XAt(lse,hAe,mAe),XAt(lse,xAe,xAe),XAt(lse,xAe,yAe),XAt(lse,xAe,wAe),XAt(lse,pAe,pAe),XAt(lse,pAe,yAe),XAt(lse,pAe,bAe),XAt(lse,_Ae,_Ae),XAt(lse,_Ae,dAe),XAt(lse,_Ae,wAe),XAt(lse,uAe,uAe),XAt(lse,uAe,dAe),XAt(lse,uAe,bAe),XAt(lse,yAe,gAe),XAt(lse,yAe,vAe),XAt(lse,yAe,xAe),XAt(lse,yAe,pAe),XAt(lse,yAe,mAe),XAt(lse,yAe,yAe),XAt(lse,yAe,wAe),XAt(lse,yAe,bAe),XAt(lse,dAe,RAe),XAt(lse,dAe,vAe),XAt(lse,dAe,_Ae),XAt(lse,dAe,uAe),XAt(lse,dAe,dAe),XAt(lse,dAe,wAe),XAt(lse,dAe,bAe),XAt(lse,dAe,mAe),XAt(lse,wAe,kAe),XAt(lse,wAe,hAe),XAt(lse,wAe,xAe),XAt(lse,wAe,_Ae),XAt(lse,wAe,yAe),XAt(lse,wAe,dAe),XAt(lse,wAe,wAe),XAt(lse,wAe,mAe),XAt(lse,bAe,lAe),XAt(lse,bAe,hAe),XAt(lse,bAe,pAe),XAt(lse,bAe,uAe),XAt(lse,bAe,yAe),XAt(lse,bAe,dAe),XAt(lse,bAe,bAe),XAt(lse,bAe,mAe),XAt(lse,mAe,fAe),XAt(lse,mAe,kAe),XAt(lse,mAe,lAe),XAt(lse,mAe,gAe),XAt(lse,mAe,RAe),XAt(lse,mAe,vAe),XAt(lse,mAe,hAe),XAt(lse,mAe,yAe),XAt(lse,mAe,dAe),XAt(lse,mAe,wAe),XAt(lse,mAe,bAe),XAt(lse,mAe,mAe)}function PYt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k;for(t.d=new OT(BKt,BKt),t.c=new OT(PKt,PKt),h=e.Kc();h.Ob();)for(v=new Wf(jz(h.Pb(),37).a);v.a<v.c.c.length;)y=jz(J1(v),10),t.d.a=i.Math.min(t.d.a,y.n.a-y.d.b),t.d.b=i.Math.min(t.d.b,y.n.b-y.d.d),t.c.a=i.Math.max(t.c.a,y.n.a+y.o.a+y.d.c),t.c.b=i.Math.max(t.c.b,y.n.b+y.o.b+y.d.a);for(c=new Zy,d=e.Kc();d.Ob();)a=oYt(t,jz(d.Pb(),37)),Wz(c.a,a),a.a=a.a|!jz(yEt(a.c,(lGt(),qde)),21).dc();for(t.b=(Eut(),(k=new we).f=new mit(n),k.b=sVt(k.f,c),k),xVt((g=t.b,new qv,g)),t.e=new HR,t.a=t.b.f.e,s=new Wf(c.a);s.a<s.c.c.length;)for(r=jz(J1(s),841),w=AJ(t.b,r),QPt(r.c,w.a,w.b),b=new Wf(r.c.a);b.a<b.c.c.length;)(p=jz(J1(b),10)).k==(oCt(),kse)&&(m=dOt(t,p.n,jz(yEt(p,(lGt(),Gde)),61)),VP(vD(p.n),m));for(o=new Wf(c.a);o.a<o.c.c.length;)for(u=new Wf(fht(r=jz(J1(o),841)));u.a<u.c.c.length;)for(BN(_=new BR((l=jz(J1(u),17)).a),0,g1(l.c)),MH(_,g1(l.d)),f=null,R=cmt(_,0);R.b!=R.d.c;)x=jz(d4(R),8),f?(ont(f.a,x.a)?(t.e.a=i.Math.min(t.e.a,f.a),t.a.a=i.Math.max(t.a.a,f.a)):ont(f.b,x.b)&&(t.e.b=i.Math.min(t.e.b,f.b),t.a.b=i.Math.max(t.a.b,f.b)),f=x):f=x;zN(t.e),VP(t.a,t.e)}function FYt(t){GLt(t.b,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"ConsistentTransient"])),GLt(t.a,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"WellFormedSourceURI"])),GLt(t.o,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures"])),GLt(t.p,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"WellFormedInstanceTypeName UniqueTypeParameterNames"])),GLt(t.v,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"UniqueEnumeratorNames UniqueEnumeratorLiterals"])),GLt(t.R,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"WellFormedName"])),GLt(t.T,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"])),GLt(t.U,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"])),GLt(t.W,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer"])),GLt(t.bb,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"ValidDefaultValueLiteral"])),GLt(t.eb,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"ValidLowerBound ValidUpperBound ConsistentBounds ValidType"])),GLt(t.H,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"ConsistentType ConsistentBounds ConsistentArguments"]))}function jYt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;if(!e.dc()){if(a=new vv,d=(o=n||jz(e.Xb(0),17)).c,pNt(),(l=d.i.k)!=(oCt(),Sse)&&l!=Tse&&l!=kse&&l!=_se)throw $m(new Pw("The target node of the edge must be a normal node or a northSouthPort."));for(lD(a,Dct(Cst(Hx(EEe,1),cZt,8,0,[d.i.n,d.n,d.a]))),(wWt(),vAe).Hc(d.j)&&(f=Hw(_B(yEt(d,(lGt(),Ihe)))),n6(a,new OT(Dct(Cst(Hx(EEe,1),cZt,8,0,[d.i.n,d.n,d.a])).a,f),a.c.b,a.c)),c=null,i=!1,s=e.Kc();s.Ob();)0!=(r=jz(s.Pb(),17).a).b&&(i?(n6(a,vO(VP(c,(EN(0!=r.b),jz(r.a.a.c,8))),.5),a.c.b,a.c),i=!1):i=!0,c=jL((EN(0!=r.b),jz(r.c.b.c,8))),jat(a,r),yK(r));h=o.d,vAe.Hc(h.j)&&(f=Hw(_B(yEt(h,(lGt(),Ihe)))),n6(a,new OT(Dct(Cst(Hx(EEe,1),cZt,8,0,[h.i.n,h.n,h.a])).a,f),a.c.b,a.c)),lD(a,Dct(Cst(Hx(EEe,1),cZt,8,0,[h.i.n,h.n,h.a]))),t.d==(qlt(),eve)&&(EN(0!=a.b),g=jz(a.a.a.c,8),p=jz(Nmt(a,1),8),(b=new qQ(llt(d.j))).a*=5,b.b*=5,m=qP(new OT(p.a,p.b),g),VP(y=new OT(eQ(b.a,m.a),eQ(b.b,m.b)),g),JW(cmt(a,1),y),EN(0!=a.b),v=jz(a.c.b.c,8),w=jz(Nmt(a,a.b-2),8),(b=new qQ(llt(h.j))).a*=5,b.b*=5,m=qP(new OT(w.a,w.b),v),VP(x=new OT(eQ(b.a,m.a),eQ(b.b,m.b)),v),BN(a,a.b-1,x)),u=new szt(a),jat(o.a,jyt(u))}}function $Yt(t,e,n,a){var r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A,D,I,L,O,M,N;if(w=(y=jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82)).Dg(),x=y.Eg(),v=y.Cg()/2,g=y.Bg()/2,iO(y,186)&&(w+=WJ(m=jz(y,118)).i,w+=WJ(m).i),w+=v,x+=g,T=(C=jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82)).Dg(),A=C.Eg(),S=C.Cg()/2,R=C.Bg()/2,iO(C,186)&&(T+=WJ(E=jz(C,118)).i,T+=WJ(E).i),T+=S,A+=R,0==(!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i)QR(),c=new oc,l8((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a),c);else if((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i>1)for(f=new iN((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a));f.e!=f.i.gc();)ZRt(f);for(p=T,T>w+v?p=w+v:T<w-v&&(p=w-v),b=A,A>x+g?b=x+g:A<x-g&&(b=x-g),p>w-v&&p<w+v&&b>x-g&&b<x+g&&(p=w+v),Tnt(s=jz(Yet((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a),0),202),p),Dnt(s,b),_=w,w>T+S?_=T+S:w<T-S&&(_=T-S),k=x,x>A+R?k=A+R:x<A-R&&(k=A-R),_>T-S&&_<T+S&&k>A-R&&k<A+R&&(k=A+R),_nt(s,_),Ant(s,k),cUt((!s.a&&(s.a=new DO(LDe,s,5)),s.a)),o=byt(e,5),y==C&&++o,I=_-p,M=k-b,u=.20000000298023224*i.Math.sqrt(I*I+M*M),L=I/(o+1),N=M/(o+1),D=p,O=b,l=0;l<o;l++)O+=N,(d=(D+=L)+zLt(e,24)*oXt*u-u/2)<0?d=1:d>n&&(d=n-1),(h=O+zLt(e,24)*oXt*u-u/2)<0?h=1:h>a&&(h=a-1),QR(),xnt(r=new rc,d),Rnt(r,h),l8((!s.a&&(s.a=new DO(LDe,s,5)),s.a),r)}function zYt(){zYt=D,cGt(),pme=wSe,bme=xSe,mme=RSe,yme=_Se,wme=kSe,xme=ESe,kme=SSe,Cme=ASe,Sme=DSe,Eme=TSe,Tme=ISe,Dme=LSe,Lme=NSe,_me=CSe,uGt(),gme=Pge,vme=Fge,Rme=jge,Ame=$ge,cme=new qI(pSe,nht(0)),lme=Mge,ume=Nge,dme=Bge,Ume=upe,Nme=Uge,Bme=Wge,jme=tpe,Pme=Zge,Fme=Xge,qme=ppe,Vme=hpe,zme=ope,$me=ape,Hme=cpe,Nbe=Ege,Bbe=Cge,nbe=Bfe,ibe=jfe,Vbe=new WI(12),Ube=new qI(qCe,Vbe),kft(),Xpe=new qI(bCe,Jpe=ZSe),Qbe=new qI(aSe,0),hme=new qI(bSe,nht(1)),xpe=new qI(iCe,gQt),Hbe=UCe,tme=rSe,rme=hSe,Upe=uCe,vpe=eCe,sbe=xCe,fme=new qI(vSe,(cM(),!0)),hbe=kCe,fbe=ECe,Fbe=BCe,zbe=zCe,jbe=FCe,jdt(),Vpe=new qI(dCe,Wpe=$Se),Dbe=MCe,Abe=LCe,ime=lSe,nme=cSe,ame=dSe,amt(),new qI(XCe,Ybe=HTe),Zbe=tSe,Kbe=eSe,Xbe=nSe,Gbe=QCe,Mme=Hge,Ebe=uge,kbe=cge,Ome=zge,vbe=tge,Hpe=Rfe,zpe=wfe,Ope=rfe,Mpe=ofe,Bpe=dfe,Npe=sfe,$pe=yfe,Sbe=hge,Tbe=fge,pbe=Yfe,Pbe=Dge,Lbe=mge,rbe=Hfe,Mbe=_ge,tbe=Lfe,ebe=Mfe,Lpe=cCe,Ibe=gge,Epe=Ghe,kpe=Whe,_pe=qhe,lbe=qfe,cbe=Vfe,ube=Wfe,$be=jCe,bbe=TCe,abe=yCe,Zpe=gCe,Gpe=fCe,Ppe=gfe,eme=sSe,Rpe=sCe,dbe=_Ce,Jbe=iSe,qbe=YCe,Wbe=ZCe,xbe=ige,Rbe=rge,sme=gSe,wpe=Vhe,_be=sge,Kpe=Tfe,Ype=Cfe,Cbe=DCe,mbe=Xfe,Obe=wge,Ime=OSe,qpe=kfe,ome=Lge,Qpe=Dfe,ybe=Qfe,Fpe=bfe,gbe=SCe,wbe=nge,jpe=mfe,Ipe=ife,Ape=tfe,Spe=Jhe,Tpe=Qhe,Dpe=nfe,Cpe=Khe,obe=Ufe}function HYt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T;if(oHt(),k=t.e,g=t.d,a=t.a,0==k)switch(e){case 0:return"0";case 1:return YKt;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(R=new Cx).a+=e<0?"0E+":"0E",R.a+=-e,R.a}if(w=O5(SMe,YZt,25,1+(v=10*g+1+7),15,1),n=v,1==g)if((s=a[0])<0){T=t0(s,qKt);do{p=T,T=ARt(T,10),w[--n]=48+fV(nft(p,aft(T,10)))&ZZt}while(0!=Gut(T,0))}else{T=s;do{p=T,T=T/10|0,w[--n]=p-10*T+48&ZZt}while(0!=T)}else{rHt(a,0,C=O5(TMe,lKt,25,g,15,1),0,S=g);t:for(;;){for(_=0,l=S-1;l>=0;l--)m=ukt(ift(yq(_,32),t0(C[l],qKt))),C[l]=fV(m),_=fV(vq(m,32));y=fV(_),b=n;do{w[--n]=48+y%10&ZZt}while(0!=(y=y/10|0)&&0!=n);for(i=9-b+n,c=0;c<i&&n>0;c++)w[--n]=48;for(d=S-1;0==C[d];d--)if(0==d)break t;S=d+1}for(;48==w[n];)++n}if(f=k<0,o=v-n-e-1,0==e)return f&&(w[--n]=45),$pt(w,n,v-n);if(e>0&&o>=-6){if(o>=0){for(u=n+o,h=v-1;h>=u;h--)w[h+1]=w[h];return w[++u]=46,f&&(w[--n]=45),$pt(w,n,v-n+1)}for(d=2;d<1-o;d++)w[--n]=48;return w[--n]=46,w[--n]=48,f&&(w[--n]=45),$pt(w,n,v-n)}return E=n+1,r=v,x=new Sx,f&&(x.a+="-"),r-E>=1?(OY(x,w[n]),x.a+=".",x.a+=$pt(w,n+1,v-n-1)):x.a+=$pt(w,n,v-n),x.a+="E",o>0&&(x.a+="+"),x.a+=""+o,x.a}function UYt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;switch(t.c=e,t.g=new Om,HE(),tgt(new Eg(new Mw(t.c))),y=kB(JIt(t.c,(kEt(),fke))),s=jz(JIt(t.c,pke),316),w=jz(JIt(t.c,bke),429),r=jz(JIt(t.c,cke),482),v=jz(JIt(t.c,gke),430),t.j=Hw(_B(JIt(t.c,mke))),o=t.a,s.g){case 0:o=t.a;break;case 1:o=t.b;break;case 2:o=t.i;break;case 3:o=t.e;break;case 4:o=t.f;break;default:throw $m(new Pw(O3t+(null!=s.f?s.f:""+s.g)))}if(t.d=new MJ(o,w,r),lct(t.d,(Wrt(),Gae),RB(JIt(t.c,uke))),t.d.c=zw(RB(JIt(t.c,lke))),0==ZK(t.c).i)return t.d;for(u=new AO(ZK(t.c));u.e!=u.i.gc();){for(h=(l=jz(wmt(u),33)).g/2,d=l.f/2,x=new OT(l.i+h,l.j+d);cW(t.g,x);)PN(x,(i.Math.random()-.5)*dQt,(i.Math.random()-.5)*dQt);g=jz(JIt(l,(cGt(),DCe)),142),p=new AQ(x,new VZ(x.a-h-t.j/2-g.b,x.b-d-t.j/2-g.d,l.g+t.j+(g.b+g.c),l.f+t.j+(g.d+g.a))),Wz(t.d.i,p),YG(t.g,x,new nA(p,l))}switch(v.g){case 0:if(null==y)t.d.d=jz(OU(t.d.i,0),65);else for(m=new Wf(t.d.i);m.a<m.c.c.length;)p=jz(J1(m),65),null!=(f=jz(jz(NY(t.g,p.a),46).b,33).zg())&&mF(f,y)&&(t.d.d=p);break;case 1:for((n=new OT(t.c.g,t.c.f)).a*=.5,n.b*=.5,PN(n,t.c.i,t.c.j),a=BKt,b=new Wf(t.d.i);b.a<b.c.c.length;)(c=W5((p=jz(J1(b),65)).a,n))<a&&(a=c,t.d.d=p);break;default:throw $m(new Pw(O3t+(null!=v.f?v.f:""+v.g)))}return t.d}function VYt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;for(R=jz(Yet((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a),0),202),d=new vv,x=new Om,_=t$t(R),xTt(x.f,R,_),f=new Om,a=new Zk,p=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[(!e.d&&(e.d=new cF(BDe,e,8,5)),e.d),(!e.e&&(e.e=new cF(BDe,e,7,4)),e.e)])));gIt(p);){if(g=jz(V6(p),79),1!=(!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i)throw $m(new Pw($6t+(!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i));g!=t&&(n6(a,m=jz(Yet((!g.a&&(g.a=new tW(PDe,g,6,6)),g.a),0),202),a.c.b,a.c),(b=jz(zA(AX(x.f,m)),12))||(b=t$t(m),xTt(x.f,m,b)),h=n?qP(new hI(jz(OU(_,_.c.length-1),8)),jz(OU(b,b.c.length-1),8)):qP(new hI((u1(0,_.c.length),jz(_.c[0],8))),(u1(0,b.c.length),jz(b.c[0],8))),xTt(f.f,m,h))}if(0!=a.b)for(y=jz(OU(_,n?_.c.length-1:0),8),u=1;u<_.c.length;u++){for(v=jz(OU(_,n?_.c.length-1-u:u),8),r=cmt(a,0);r.b!=r.d.c;)m=jz(d4(r),202),(b=jz(zA(AX(x.f,m)),12)).c.length<=u?yet(r):(w=VP(new hI(jz(OU(b,n?b.c.length-1-u:u),8)),jz(zA(AX(f.f,m)),8)),(v.a!=w.a||v.b!=w.b)&&(o=v.a-y.a,c=v.b-y.b,(s=w.a-y.a)*c==(l=w.b-y.b)*o&&(0==o||isNaN(o)?o:o<0?-1:1)==(0==s||isNaN(s)?s:s<0?-1:1)&&(0==c||isNaN(c)?c:c<0?-1:1)==(0==l||isNaN(l)?l:l<0?-1:1)?(i.Math.abs(o)<i.Math.abs(s)||i.Math.abs(c)<i.Math.abs(l))&&n6(d,v,d.c.b,d.c):u>1&&n6(d,y,d.c.b,d.c),yet(r)));y=v}return d}function qYt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A,D,I;for(Akt(n,"Greedy cycle removal",1),I=(v=e.a).c.length,t.a=O5(TMe,lKt,25,I,15,1),t.c=O5(TMe,lKt,25,I,15,1),t.b=O5(TMe,lKt,25,I,15,1),l=0,m=new Wf(v);m.a<m.c.c.length;){for((p=jz(J1(m),10)).p=l,k=new Wf(p.j);k.a<k.c.c.length;){for(s=new Wf((x=jz(J1(k),11)).e);s.a<s.c.c.length;)(i=jz(J1(s),17)).c.i!=p&&(C=jz(yEt(i,(zYt(),lme)),19).a,t.a[l]+=C>0?C+1:1);for(o=new Wf(x.g);o.a<o.c.c.length;)(i=jz(J1(o),17)).d.i!=p&&(C=jz(yEt(i,(zYt(),lme)),19).a,t.c[l]+=C>0?C+1:1)}0==t.c[l]?MH(t.e,p):0==t.a[l]&&MH(t.f,p),++l}for(g=-1,f=1,d=new Lm,t.d=jz(yEt(e,(lGt(),khe)),230);I>0;){for(;0!=t.e.b;)T=jz(fH(t.e),10),t.b[T.p]=g--,ZFt(t,T),--I;for(;0!=t.f.b;)A=jz(fH(t.f),10),t.b[A.p]=f++,ZFt(t,A),--I;if(I>0){for(h=FZt,y=new Wf(v);y.a<y.c.c.length;)p=jz(J1(y),10),0==t.b[p.p]&&(w=t.c[p.p]-t.a[p.p])>=h&&(w>h&&(d.c=O5(Dte,zGt,1,0,5,1),h=w),d.c[d.c.length]=p);u=t.Zf(d),t.b[u.p]=f++,ZFt(t,u),--I}}for(S=v.c.length+1,l=0;l<v.c.length;l++)t.b[l]<0&&(t.b[l]+=S);for(b=new Wf(v);b.a<b.c.c.length;)for(_=0,E=(R=S2((p=jz(J1(b),10)).j)).length;_<E;++_)for(r=0,c=(a=X0((x=R[_]).g)).length;r<c;++r)D=(i=a[r]).d.i.p,t.b[p.p]>t.b[D]&&(tzt(i,!0),lct(e,zde,(cM(),!0)));t.a=null,t.c=null,t.b=null,yK(t.f),yK(t.e),zCt(n)}function WYt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m;for(i=new Lm,s=new Lm,b=e/2,f=t.gc(),a=jz(t.Xb(0),8),m=jz(t.Xb(1),8),Wz(i,(u1(0,(g=ZIt(a.a,a.b,m.a,m.b,b)).c.length),jz(g.c[0],8))),Wz(s,(u1(1,g.c.length),jz(g.c[1],8))),l=2;l<f;l++)p=a,a=m,m=jz(t.Xb(l),8),Wz(i,(u1(1,(g=ZIt(a.a,a.b,p.a,p.b,b)).c.length),jz(g.c[1],8))),Wz(s,(u1(0,g.c.length),jz(g.c[0],8))),Wz(i,(u1(0,(g=ZIt(a.a,a.b,m.a,m.b,b)).c.length),jz(g.c[0],8))),Wz(s,(u1(1,g.c.length),jz(g.c[1],8)));for(Wz(i,(u1(1,(g=ZIt(m.a,m.b,a.a,a.b,b)).c.length),jz(g.c[1],8))),Wz(s,(u1(0,g.c.length),jz(g.c[0],8))),n=new vv,o=new Lm,MH(n,(u1(0,i.c.length),jz(i.c[0],8))),u=1;u<i.c.length-2;u+=2)u1(u,i.c.length),r=jz(i.c[u],8),h=HSt((u1(u-1,i.c.length),jz(i.c[u-1],8)),r,(u1(u+1,i.c.length),jz(i.c[u+1],8)),(u1(u+2,i.c.length),jz(i.c[u+2],8))),isFinite(h.a)&&isFinite(h.b)?n6(n,h,n.c.b,n.c):n6(n,r,n.c.b,n.c);for(MH(n,jz(OU(i,i.c.length-1),8)),Wz(o,(u1(0,s.c.length),jz(s.c[0],8))),d=1;d<s.c.length-2;d+=2)u1(d,s.c.length),r=jz(s.c[d],8),h=HSt((u1(d-1,s.c.length),jz(s.c[d-1],8)),r,(u1(d+1,s.c.length),jz(s.c[d+1],8)),(u1(d+2,s.c.length),jz(s.c[d+2],8))),isFinite(h.a)&&isFinite(h.b)?o.c[o.c.length]=h:o.c[o.c.length]=r;for(Wz(o,jz(OU(s,s.c.length-1),8)),c=o.c.length-1;c>=0;c--)MH(n,(u1(c,o.c.length),jz(o.c[c],8)));return n}function YYt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f;if(o=!0,d=null,i=null,a=null,e=!1,f=yIe,l=null,r=null,(c=Gbt(t,s=0,TIe,AIe))<t.length&&(d1(c,t.length),58==t.charCodeAt(c))&&(d=t.substr(s,c-s),s=c+1),n=null!=d&&Ok(vIe,d.toLowerCase())){if(-1==(c=t.lastIndexOf("!/")))throw $m(new Pw("no archive separator"));o=!0,i=lN(t,s,++c),s=c}else s>=0&&mF(t.substr(s,2),"//")?(c=Gbt(t,s+=2,DIe,IIe),i=t.substr(s,c-s),s=c):null!=d&&(s==t.length||(d1(s,t.length),47!=t.charCodeAt(s)))&&(o=!1,-1==(c=yM(t,Kkt(35),s))&&(c=t.length),i=t.substr(s,c-s),s=c);if(!n&&s<t.length&&(d1(s,t.length),47==t.charCodeAt(s))&&(c=Gbt(t,s+1,DIe,IIe),(u=t.substr(s+1,c-(s+1))).length>0&&58==lZ(u,u.length-1)&&(a=u,s=c)),s<t.length&&(d1(s,t.length),47==t.charCodeAt(s))&&(++s,e=!0),s<t.length&&(d1(s,t.length),63!=t.charCodeAt(s))&&(d1(s,t.length),35!=t.charCodeAt(s))){for(h=new Lm;s<t.length&&(d1(s,t.length),63!=t.charCodeAt(s))&&(d1(s,t.length),35!=t.charCodeAt(s));)c=Gbt(t,s,DIe,IIe),Wz(h,t.substr(s,c-s)),(s=c)<t.length&&(d1(s,t.length),47==t.charCodeAt(s))&&(Zut(t,++s)||(h.c[h.c.length]=""));Zbt(h,f=O5(zee,cZt,2,h.c.length,6,1))}return s<t.length&&(d1(s,t.length),63==t.charCodeAt(s))&&(-1==(c=uN(t,35,++s))&&(c=t.length),l=t.substr(s,c-s),s=c),s<t.length&&(r=JA(t,++s)),fVt(o,d,i,a,f,l),new iPt(o,d,i,a,e,f,l,r)}function GYt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A,D,I,L;for(D=new Lm,g=new Wf(e.b);g.a<g.c.c.length;)for(x=new Wf(jz(J1(g),29).a);x.a<x.c.c.length;){for((w=jz(J1(x),10)).p=-1,h=FZt,k=FZt,C=new Wf(w.j);C.a<C.c.c.length;){for(r=new Wf((E=jz(J1(C),11)).e);r.a<r.c.c.length;)n=jz(J1(r),17),S=jz(yEt(n,(zYt(),dme)),19).a,h=i.Math.max(h,S);for(a=new Wf(E.g);a.a<a.c.c.length;)n=jz(J1(a),17),S=jz(yEt(n,(zYt(),dme)),19).a,k=i.Math.max(k,S)}lct(w,qve,nht(h)),lct(w,Wve,nht(k))}for(m=0,f=new Wf(e.b);f.a<f.c.c.length;)for(x=new Wf(jz(J1(f),29).a);x.a<x.c.c.length;)(w=jz(J1(x),10)).p<0&&((A=new nv).b=m++,xPt(t,w,A),D.c[D.c.length]=A);for(_=sN(D.c.length),d=sN(D.c.length),s=0;s<D.c.length;s++)Wz(_,new Lm),Wz(d,nht(0));for(mqt(e,D,_,d),I=jz(Zbt(D,O5(Zve,A4t,257,D.c.length,0,1)),840),R=jz(Zbt(_,O5(Bte,QJt,15,_.c.length,0,1)),192),u=O5(TMe,lKt,25,d.c.length,15,1),c=0;c<u.length;c++)u[c]=(u1(c,d.c.length),jz(d.c[c],19)).a;for(y=0,v=new Lm,l=0;l<I.length;l++)0==u[l]&&Wz(v,I[l]);for(b=O5(TMe,lKt,25,I.length,15,1);0!=v.c.length;)for(b[(A=jz(s7(v,0),257)).b]=y++;!R[A.b].dc();)--u[(L=jz(R[A.b].$c(0),257)).b],0==u[L.b]&&(v.c[v.c.length]=L);for(t.a=O5(Zve,A4t,257,I.length,0,1),o=0;o<I.length;o++)for(p=I[o],T=b[o],t.a[T]=p,p.b=T,x=new Wf(p.e);x.a<x.c.c.length;)(w=jz(J1(x),10)).p=T;return t.a}function ZYt(t){var e,n,i;if(t.d>=t.j)return t.a=-1,void(t.c=1);if(e=lZ(t.i,t.d++),t.a=e,1!=t.b){switch(e){case 124:i=2;break;case 42:i=3;break;case 43:i=4;break;case 63:i=5;break;case 41:i=7;break;case 46:i=8;break;case 91:i=9;break;case 94:i=11;break;case 36:i=12;break;case 40:if(i=6,t.d>=t.j||63!=lZ(t.i,t.d))break;if(++t.d>=t.j)throw $m(new ax(wGt((rL(),b5t))));switch(e=lZ(t.i,t.d++)){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(t.d>=t.j)throw $m(new ax(wGt((rL(),b5t))));if(61==(e=lZ(t.i,t.d++)))i=16;else{if(33!=e)throw $m(new ax(wGt((rL(),m5t))));i=17}break;case 35:for(;t.d<t.j&&41!=(e=lZ(t.i,t.d++)););if(41!=e)throw $m(new ax(wGt((rL(),y5t))));i=21;break;default:if(45==e||97<=e&&e<=122||65<=e&&e<=90){--t.d,i=22;break}if(40==e){i=23;break}throw $m(new ax(wGt((rL(),b5t))))}break;case 92:if(i=10,t.d>=t.j)throw $m(new ax(wGt((rL(),p5t))));t.a=lZ(t.i,t.d++);break;default:i=0}t.c=i}else{switch(e){case 92:if(i=10,t.d>=t.j)throw $m(new ax(wGt((rL(),p5t))));t.a=lZ(t.i,t.d++);break;case 45:512==(512&t.e)&&t.d<t.j&&91==lZ(t.i,t.d)?(++t.d,i=24):i=0;break;case 91:if(512!=(512&t.e)&&t.d<t.j&&58==lZ(t.i,t.d)){++t.d,i=20;break}default:(64512&e)==zKt&&t.d<t.j&&56320==(64512&(n=lZ(t.i,t.d)))&&(t.a=$Kt+(e-zKt<<10)+n-56320,++t.d),i=0}t.c=i}}function KYt(t){var e,n,i,a,r,o,s,c,l,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S;if((R=jz(yEt(t,(zYt(),tme)),98))!=(Z_t(),ZTe)&&R!=KTe){for(l=new K7((dit((f=(g=t.b).c.length)+2,OZt),Qtt(ift(ift(5,f+2),(f+2)/10|0)))),p=new K7((dit(f+2,OZt),Qtt(ift(ift(5,f+2),(f+2)/10|0)))),Wz(l,new Om),Wz(l,new Om),Wz(p,new Lm),Wz(p,new Lm),x=new Lm,e=0;e<f;e++)for(u1(e,g.c.length),n=jz(g.c[e],29),u1(e,l.c.length),_=jz(l.c[e],83),b=new Om,l.c[l.c.length]=b,u1(e,p.c.length),E=jz(p.c[e],15),y=new Lm,p.c[p.c.length]=y,a=new Wf(n.a);a.a<a.c.c.length;)if(aht(i=jz(J1(a),10)))x.c[x.c.length]=i;else{for(c=new oq(XO(uft(i).a.Kc(),new u));gIt(c);)aht(C=(o=jz(V6(c),17)).c.i)&&((k=jz(_.xc(yEt(C,(lGt(),fhe))),10))||(k=sAt(t,C),_.zc(yEt(C,fhe),k),E.Fc(k)),kQ(o,jz(OU(k.j,1),11)));for(s=new oq(XO(dft(i).a.Kc(),new u));gIt(s);)aht(S=(o=jz(V6(s),17)).d.i)&&((m=jz(NY(b,yEt(S,(lGt(),fhe))),10))||(m=sAt(t,S),YG(b,yEt(S,fhe),m),y.c[y.c.length]=m),_Q(o,jz(OU(m.j,0),11)))}for(d=0;d<p.c.length;d++)if(u1(d,p.c.length),!(v=jz(p.c[d],15)).dc())for(h=null,0==d?(h=new $Y(t),IQ(0,g.c.length),_C(g.c,0,h)):d==l.c.length-1?(h=new $Y(t),g.c[g.c.length]=h):(u1(d-1,g.c.length),h=jz(g.c[d-1],29)),r=v.Kc();r.Ob();)EQ(jz(r.Pb(),10),h);for(w=new Wf(x);w.a<w.c.c.length;)EQ(jz(J1(w),10),null);lct(t,(lGt(),Wde),x)}}function XYt(t,e,n){var i,a,r,o,s,c,l,d,h,f,g,p,b,m,y,v,w,x,R;if(Akt(n,"Coffman-Graham Layering",1),0!=e.a.c.length){for(R=jz(yEt(e,(zYt(),mbe)),19).a,c=0,o=0,f=new Wf(e.a);f.a<f.c.c.length;)for((h=jz(J1(f),10)).p=c++,r=new oq(XO(dft(h).a.Kc(),new u));gIt(r);)(a=jz(V6(r),17)).p=o++;for(t.d=O5(AMe,JXt,25,c,16,1),t.a=O5(AMe,JXt,25,o,16,1),t.b=O5(TMe,lKt,25,c,15,1),t.e=O5(TMe,lKt,25,c,15,1),t.f=O5(TMe,lKt,25,c,15,1),fit(t.c),i_t(t,e),p=new qq(new Mp(t)),x=new Wf(e.a);x.a<x.c.c.length;){for(r=new oq(XO(uft(v=jz(J1(x),10)).a.Kc(),new u));gIt(r);)a=jz(V6(r),17),t.a[a.p]||++t.b[v.p];0==t.b[v.p]&&F5(eEt(p,v))}for(s=0;0!=p.b.c.length;)for(v=jz(mtt(p),10),t.f[v.p]=s++,r=new oq(XO(dft(v).a.Kc(),new u));gIt(r);)a=jz(V6(r),17),!t.a[a.p]&&(m=a.d.i,--t.b[m.p],XAt(t.c,m,nht(t.f[v.p])),0==t.b[m.p]&&F5(eEt(p,m)));for(g=new qq(new Np(t)),w=new Wf(e.a);w.a<w.c.c.length;){for(r=new oq(XO(dft(v=jz(J1(w),10)).a.Kc(),new u));gIt(r);)a=jz(V6(r),17),t.a[a.p]||++t.e[v.p];0==t.e[v.p]&&F5(eEt(g,v))}for(i=n1(e,d=new Lm);0!=g.b.c.length;)for(y=jz(mtt(g),10),(i.a.c.length>=R||!Opt(y,i))&&(i=n1(e,d)),EQ(y,i),r=new oq(XO(uft(y).a.Kc(),new u));gIt(r);)a=jz(V6(r),17),!t.a[a.p]&&(b=a.c.i,--t.e[b.p],0==t.e[b.p]&&F5(eEt(g,b)));for(l=d.c.length-1;l>=0;--l)Wz(e.b,(u1(l,d.c.length),jz(d.c[l],29)));e.a.c=O5(Dte,zGt,1,0,5,1),zCt(n)}else zCt(n)}function JYt(t){var e,n,i,a,r,o,s,c;for(t.b=1,ZYt(t),e=null,0==t.c&&94==t.a?(ZYt(t),fGt(),fGt(),KNt(e=new _0(4),0,ote),o=new _0(4)):(fGt(),fGt(),o=new _0(4)),a=!0;1!=(c=t.c);){if(0==c&&93==t.a&&!a){e&&(YVt(e,o),o=e);break}if(n=t.a,i=!1,10==c)switch(n){case 100:case 68:case 119:case 87:case 115:case 83:cHt(o,gjt(n)),i=!0;break;case 105:case 73:case 99:case 67:cHt(o,gjt(n)),(n=-1)<0&&(i=!0);break;case 112:case 80:if(!(s=NAt(t,n)))throw $m(new ax(wGt((rL(),A5t))));cHt(o,s),i=!0;break;default:n=HBt(t)}else if(24==c&&!a){if(e&&(YVt(e,o),o=e),YVt(o,JYt(t)),0!=t.c||93!=t.a)throw $m(new ax(wGt((rL(),O5t))));break}if(ZYt(t),!i){if(0==c){if(91==n)throw $m(new ax(wGt((rL(),M5t))));if(93==n)throw $m(new ax(wGt((rL(),N5t))));if(45==n&&!a&&93!=t.a)throw $m(new ax(wGt((rL(),B5t))))}if(0!=t.c||45!=t.a||45==n&&a)KNt(o,n,n);else{if(ZYt(t),1==(c=t.c))throw $m(new ax(wGt((rL(),I5t))));if(0==c&&93==t.a)KNt(o,n,n),KNt(o,45,45);else{if(0==c&&93==t.a||24==c)throw $m(new ax(wGt((rL(),B5t))));if(r=t.a,0==c){if(91==r)throw $m(new ax(wGt((rL(),M5t))));if(93==r)throw $m(new ax(wGt((rL(),N5t))));if(45==r)throw $m(new ax(wGt((rL(),B5t))))}else 10==c&&(r=HBt(t));if(ZYt(t),n>r)throw $m(new ax(wGt((rL(),j5t))));KNt(o,n,r)}}}a=!1}if(1==t.c)throw $m(new ax(wGt((rL(),I5t))));return _Lt(o),HHt(o),t.b=0,ZYt(t),o}function QYt(t){GLt(t.c,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#decimal"])),GLt(t.d,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#integer"])),GLt(t.e,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#boolean"])),GLt(t.f,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"EBoolean",t5t,"EBoolean:Object"])),GLt(t.i,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#byte"])),GLt(t.g,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#hexBinary"])),GLt(t.j,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"EByte",t5t,"EByte:Object"])),GLt(t.n,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"EChar",t5t,"EChar:Object"])),GLt(t.t,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#double"])),GLt(t.u,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"EDouble",t5t,"EDouble:Object"])),GLt(t.F,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#float"])),GLt(t.G,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"EFloat",t5t,"EFloat:Object"])),GLt(t.I,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#int"])),GLt(t.J,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"EInt",t5t,"EInt:Object"])),GLt(t.N,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#long"])),GLt(t.O,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"ELong",t5t,"ELong:Object"])),GLt(t.Z,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#short"])),GLt(t.$,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"EShort",t5t,"EShort:Object"])),GLt(t._,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#string"]))}function tGt(t){var e,n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T;if(1==t.c.length)return u1(0,t.c.length),jz(t.c[0],135);if(t.c.length<=0)return new E7;for(l=new Wf(t);l.a<l.c.c.length;){for(s=jz(J1(l),135),v=0,p=NGt,b=NGt,f=FZt,g=FZt,y=cmt(s.b,0);y.b!=y.d.c;)m=jz(d4(y),86),v+=jz(yEt(m,(SIt(),Dxe)),19).a,p=i.Math.min(p,m.e.a),b=i.Math.min(b,m.e.b),f=i.Math.max(f,m.e.a+m.f.a),g=i.Math.max(g,m.e.b+m.f.b);lct(s,(SIt(),Dxe),nht(v)),lct(s,(HUt(),Jwe),new OT(p,b)),lct(s,Xwe,new OT(f,g))}for(kK(),mL(t,new mo),Hot(x=new E7,(u1(0,t.c.length),jz(t.c[0],94))),h=0,C=0,u=new Wf(t);u.a<u.c.c.length;)s=jz(J1(u),135),R=qP(jL(jz(yEt(s,(HUt(),Xwe)),8)),jz(yEt(s,Jwe),8)),h=i.Math.max(h,R.a),C+=R.a*R.b;for(h=i.Math.max(h,i.Math.sqrt(C)*Hw(_B(yEt(x,(SIt(),wxe))))),S=0,T=0,d=0,e=_=Hw(_B(yEt(x,Oxe))),c=new Wf(t);c.a<c.c.c.length;)s=jz(J1(c),135),S+(R=qP(jL(jz(yEt(s,(HUt(),Xwe)),8)),jz(yEt(s,Jwe),8))).a>h&&(S=0,T+=d+_,d=0),ROt(x,s,S,T),e=i.Math.max(e,S+R.a),d=i.Math.max(d,R.b),S+=R.a+_;for(w=new Om,n=new Om,E=new Wf(t);E.a<E.c.c.length;)for(a=zw(RB(yEt(k=jz(J1(E),135),(cGt(),uCe)))),o=(k.q?k.q:lne).vc().Kc();o.Ob();)cW(w,(r=jz(o.Pb(),42)).cd())?HA(jz(r.cd(),146).wg())!==HA(r.dd())&&(a&&cW(n,r.cd())?(Dk(),jz(r.cd(),146).tg()):(YG(w,jz(r.cd(),146),r.dd()),lct(x,jz(r.cd(),146),r.dd()),a&&YG(n,jz(r.cd(),146),r.dd()))):(YG(w,jz(r.cd(),146),r.dd()),lct(x,jz(r.cd(),146),r.dd()));return x}function eGt(){eGt=D,BYt(),XAt(pse=new pJ,(wWt(),gAe),fAe),XAt(pse,kAe,fAe),XAt(pse,pAe,fAe),XAt(pse,xAe,fAe),XAt(pse,wAe,fAe),XAt(pse,yAe,fAe),XAt(pse,xAe,gAe),XAt(pse,fAe,lAe),XAt(pse,gAe,lAe),XAt(pse,kAe,lAe),XAt(pse,pAe,lAe),XAt(pse,vAe,lAe),XAt(pse,xAe,lAe),XAt(pse,wAe,lAe),XAt(pse,yAe,lAe),XAt(pse,hAe,lAe),XAt(pse,fAe,RAe),XAt(pse,gAe,RAe),XAt(pse,lAe,RAe),XAt(pse,kAe,RAe),XAt(pse,pAe,RAe),XAt(pse,vAe,RAe),XAt(pse,xAe,RAe),XAt(pse,hAe,RAe),XAt(pse,_Ae,RAe),XAt(pse,wAe,RAe),XAt(pse,bAe,RAe),XAt(pse,yAe,RAe),XAt(pse,gAe,kAe),XAt(pse,pAe,kAe),XAt(pse,xAe,kAe),XAt(pse,yAe,kAe),XAt(pse,gAe,pAe),XAt(pse,kAe,pAe),XAt(pse,xAe,pAe),XAt(pse,pAe,pAe),XAt(pse,wAe,pAe),XAt(pse,fAe,uAe),XAt(pse,gAe,uAe),XAt(pse,lAe,uAe),XAt(pse,RAe,uAe),XAt(pse,kAe,uAe),XAt(pse,pAe,uAe),XAt(pse,vAe,uAe),XAt(pse,xAe,uAe),XAt(pse,_Ae,uAe),XAt(pse,hAe,uAe),XAt(pse,yAe,uAe),XAt(pse,wAe,uAe),XAt(pse,mAe,uAe),XAt(pse,fAe,_Ae),XAt(pse,gAe,_Ae),XAt(pse,lAe,_Ae),XAt(pse,kAe,_Ae),XAt(pse,pAe,_Ae),XAt(pse,vAe,_Ae),XAt(pse,xAe,_Ae),XAt(pse,hAe,_Ae),XAt(pse,yAe,_Ae),XAt(pse,bAe,_Ae),XAt(pse,mAe,_Ae),XAt(pse,gAe,hAe),XAt(pse,kAe,hAe),XAt(pse,pAe,hAe),XAt(pse,xAe,hAe),XAt(pse,_Ae,hAe),XAt(pse,yAe,hAe),XAt(pse,wAe,hAe),XAt(pse,fAe,dAe),XAt(pse,gAe,dAe),XAt(pse,lAe,dAe),XAt(pse,kAe,dAe),XAt(pse,pAe,dAe),XAt(pse,vAe,dAe),XAt(pse,xAe,dAe),XAt(pse,hAe,dAe),XAt(pse,yAe,dAe),XAt(pse,gAe,wAe),XAt(pse,lAe,wAe),XAt(pse,RAe,wAe),XAt(pse,pAe,wAe),XAt(pse,fAe,bAe),XAt(pse,gAe,bAe),XAt(pse,RAe,bAe),XAt(pse,kAe,bAe),XAt(pse,pAe,bAe),XAt(pse,vAe,bAe),XAt(pse,xAe,bAe),XAt(pse,xAe,mAe),XAt(pse,pAe,mAe),XAt(pse,hAe,fAe),XAt(pse,hAe,kAe),XAt(pse,hAe,lAe),XAt(pse,vAe,fAe),XAt(pse,vAe,gAe),XAt(pse,vAe,RAe)}function nGt(t,e){switch(t.e){case 0:case 2:case 4:case 6:case 42:case 44:case 46:case 48:case 8:case 10:case 12:case 14:case 16:case 18:case 20:case 22:case 24:case 26:case 28:case 30:case 32:case 34:case 36:case 38:return new UK(t.b,t.a,e,t.c);case 1:return new IO(t.a,e,Dgt(e.Tg(),t.c));case 43:return new OO(t.a,e,Dgt(e.Tg(),t.c));case 3:return new DO(t.a,e,Dgt(e.Tg(),t.c));case 45:return new LO(t.a,e,Dgt(e.Tg(),t.c));case 41:return new y8(jz(Txt(t.c),26),t.a,e,Dgt(e.Tg(),t.c));case 50:return new vit(jz(Txt(t.c),26),t.a,e,Dgt(e.Tg(),t.c));case 5:return new eF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 47:return new nF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 7:return new tW(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 49:return new tF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 9:return new FO(t.a,e,Dgt(e.Tg(),t.c));case 11:return new PO(t.a,e,Dgt(e.Tg(),t.c));case 13:return new BO(t.a,e,Dgt(e.Tg(),t.c));case 15:return new _H(t.a,e,Dgt(e.Tg(),t.c));case 17:return new jO(t.a,e,Dgt(e.Tg(),t.c));case 19:return new NO(t.a,e,Dgt(e.Tg(),t.c));case 21:return new MO(t.a,e,Dgt(e.Tg(),t.c));case 23:return new yH(t.a,e,Dgt(e.Tg(),t.c));case 25:return new lF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 27:return new cF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 29:return new oF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 31:return new iF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 33:return new sF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 35:return new rF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 37:return new aF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 39:return new eW(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 40:return new Rrt(e,Dgt(e.Tg(),t.c));default:throw $m(new fw("Unknown feature style: "+t.e))}}function iGt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;switch(Akt(n,"Brandes & Koepf node placement",1),t.a=e,t.c=j$t(e),i=jz(yEt(e,(zYt(),Lbe)),274),f=zw(RB(yEt(e,Obe))),t.d=i==($Rt(),Zue)&&!f||i==Wue,XUt(t,e),w=null,x=null,b=null,m=null,dit(4,DZt),p=new K7(4),jz(yEt(e,Lbe),274).g){case 3:b=new HFt(e,t.c.d,(oQ(),iwe),(gJ(),Qve)),p.c[p.c.length]=b;break;case 1:m=new HFt(e,t.c.d,(oQ(),awe),(gJ(),Qve)),p.c[p.c.length]=m;break;case 4:w=new HFt(e,t.c.d,(oQ(),iwe),(gJ(),twe)),p.c[p.c.length]=w;break;case 2:x=new HFt(e,t.c.d,(oQ(),awe),(gJ(),twe)),p.c[p.c.length]=x;break;default:b=new HFt(e,t.c.d,(oQ(),iwe),(gJ(),Qve)),m=new HFt(e,t.c.d,awe,Qve),w=new HFt(e,t.c.d,iwe,twe),x=new HFt(e,t.c.d,awe,twe),p.c[p.c.length]=w,p.c[p.c.length]=x,p.c[p.c.length]=b,p.c[p.c.length]=m}for(a=new eT(e,t.c),s=new Wf(p);s.a<s.c.c.length;)CYt(a,r=jz(J1(s),180),t.b),Yzt(r);for(h=new Xwt(e,t.c),c=new Wf(p);c.a<c.c.c.length;)zqt(h,r=jz(J1(c),180));if(n.n)for(l=new Wf(p);l.a<l.c.c.length;)TH(n,(r=jz(J1(l),180))+" size is "+mLt(r));if(d=null,t.d&&Tzt(e,u=jWt(t,p,t.c.d),n)&&(d=u),!d)for(l=new Wf(p);l.a<l.c.c.length;)Tzt(e,r=jz(J1(l),180),n)&&(!d||mLt(d)>mLt(r))&&(d=r);for(!d&&(u1(0,p.c.length),d=jz(p.c[0],180)),g=new Wf(e.b);g.a<g.c.c.length;)for(v=new Wf(jz(J1(g),29).a);v.a<v.c.c.length;)(y=jz(J1(v),10)).n.b=Hw(d.p[y.p])+Hw(d.d[y.p]);for(n.n&&(TH(n,"Chosen node placement: "+d),TH(n,"Blocks: "+MDt(d)),TH(n,"Classes: "+qIt(d,n)),TH(n,"Marked edges: "+t.b)),o=new Wf(p);o.a<o.c.c.length;)(r=jz(J1(o),180)).g=null,r.b=null,r.a=null,r.d=null,r.j=null,r.i=null,r.p=null;Vat(t.c),t.b.a.$b(),zCt(n)}function aGt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k;for(o=new Zk,y=jz(yEt(n,(zYt(),Vpe)),103),g=0,jat(o,(!e.a&&(e.a=new tW(UDe,e,10,11)),e.a));0!=o.b;)l=jz(0==o.b?null:(EN(0!=o.b),Det(o,o.a.a)),33),(HA(JIt(e,Ipe))!==HA((yct(),Oye))||HA(JIt(e,Hpe))===HA((Gyt(),Rue))||HA(JIt(e,Hpe))===HA((Gyt(),wue))||zw(RB(JIt(e,Ope)))||HA(JIt(e,Cpe))!==HA(($dt(),fse)))&&!zw(RB(JIt(l,Dpe)))&&Kmt(l,(lGt(),hhe),nht(g++)),!zw(RB(JIt(l,Hbe)))&&(d=0!=(!l.a&&(l.a=new tW(UDe,l,10,11)),l.a).i,f=wkt(l),h=HA(JIt(l,sbe))===HA((odt(),bTe)),b=null,(k=!E5(l,(cGt(),tCe))||mF(kB(JIt(l,tCe)),f1t))&&h&&(d||f)&&(lct(b=w$t(l),Vpe,y),IN(b,gme)&&_w(new ogt(Hw(_B(yEt(b,gme)))),b),0!=jz(JIt(l,Fbe),174).gc()&&(u=b,Kk(new NU(null,(!l.c&&(l.c=new tW(VDe,l,9,9)),new h1(l.c,16))),new qg(u)),yBt(l,b))),v=n,(w=jz(NY(t.a,KJ(l)),10))&&(v=w.e),p=fqt(t,l,v),b&&(p.e=b,b.e=p,jat(o,(!l.a&&(l.a=new tW(UDe,l,10,11)),l.a))));for(g=0,n6(o,e,o.c.b,o.c);0!=o.b;){for(c=new AO((!(r=jz(0==o.b?null:(EN(0!=o.b),Det(o,o.a.a)),33)).b&&(r.b=new tW(BDe,r,12,3)),r.b));c.e!=c.i.gc();)tFt(s=jz(wmt(c),79)),(HA(JIt(e,Ipe))!==HA((yct(),Oye))||HA(JIt(e,Hpe))===HA((Gyt(),Rue))||HA(JIt(e,Hpe))===HA((Gyt(),wue))||zw(RB(JIt(e,Ope)))||HA(JIt(e,Cpe))!==HA(($dt(),fse)))&&Kmt(s,(lGt(),hhe),nht(g++)),R=Ckt(jz(Yet((!s.b&&(s.b=new cF(NDe,s,4,7)),s.b),0),82)),_=Ckt(jz(Yet((!s.c&&(s.c=new cF(NDe,s,5,8)),s.c),0),82)),!(zw(RB(JIt(s,Hbe)))||zw(RB(JIt(R,Hbe)))||zw(RB(JIt(_,Hbe))))&&(m=r,ZAt(s)&&zw(RB(JIt(R,hbe)))&&zw(RB(JIt(s,fbe)))||Set(_,R)?m=R:Set(R,_)&&(m=_),v=n,(w=jz(NY(t.a,m),10))&&(v=w.e),lct(oGt(t,s,m,v),(lGt(),Fde),LNt(t,s,e,n)));if(h=HA(JIt(r,sbe))===HA((odt(),bTe)))for(a=new AO((!r.a&&(r.a=new tW(UDe,r,10,11)),r.a));a.e!=a.i.gc();)k=!E5(i=jz(wmt(a),33),(cGt(),tCe))||mF(kB(JIt(i,tCe)),f1t),x=HA(JIt(i,sbe))===HA(bTe),k&&x&&n6(o,i,o.c.b,o.c)}}function rGt(t,e,n,i,a,r){var o,s,c,l,u,d,h;switch(e){case 71:o=i.q.getFullYear()-cKt>=-1900?1:0,oD(t,n>=4?Cst(Hx(zee,1),cZt,2,6,[uKt,dKt])[o]:Cst(Hx(zee,1),cZt,2,6,["BC","AD"])[o]);break;case 121:smt(t,n,i);break;case 77:WFt(t,n,i);break;case 107:xtt(t,0==(s=a.q.getHours())?24:s,n);break;case 83:BOt(t,n,a);break;case 69:c=i.q.getDay(),oD(t,5==n?Cst(Hx(zee,1),cZt,2,6,["S","M","T","W","T","F","S"])[c]:4==n?Cst(Hx(zee,1),cZt,2,6,[hKt,fKt,gKt,pKt,bKt,mKt,yKt])[c]:Cst(Hx(zee,1),cZt,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[c]);break;case 97:a.q.getHours()>=12&&a.q.getHours()<24?oD(t,Cst(Hx(zee,1),cZt,2,6,["AM","PM"])[1]):oD(t,Cst(Hx(zee,1),cZt,2,6,["AM","PM"])[0]);break;case 104:xtt(t,0==(l=a.q.getHours()%12)?12:l,n);break;case 75:xtt(t,a.q.getHours()%12,n);break;case 72:xtt(t,a.q.getHours(),n);break;case 99:u=i.q.getDay(),5==n?oD(t,Cst(Hx(zee,1),cZt,2,6,["S","M","T","W","T","F","S"])[u]):4==n?oD(t,Cst(Hx(zee,1),cZt,2,6,[hKt,fKt,gKt,pKt,bKt,mKt,yKt])[u]):3==n?oD(t,Cst(Hx(zee,1),cZt,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[u]):xtt(t,u,1);break;case 76:d=i.q.getMonth(),5==n?oD(t,Cst(Hx(zee,1),cZt,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[d]):4==n?oD(t,Cst(Hx(zee,1),cZt,2,6,[KZt,XZt,JZt,QZt,tKt,eKt,nKt,iKt,aKt,rKt,oKt,sKt])[d]):3==n?oD(t,Cst(Hx(zee,1),cZt,2,6,["Jan","Feb","Mar","Apr",tKt,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[d]):xtt(t,d+1,n);break;case 81:h=i.q.getMonth()/3|0,oD(t,n<4?Cst(Hx(zee,1),cZt,2,6,["Q1","Q2","Q3","Q4"])[h]:Cst(Hx(zee,1),cZt,2,6,["1st quarter","2nd quarter","3rd quarter","4th quarter"])[h]);break;case 100:xtt(t,i.q.getDate(),n);break;case 109:xtt(t,a.q.getMinutes(),n);break;case 115:xtt(t,a.q.getSeconds(),n);break;case 122:oD(t,n<4?r.c[0]:r.c[1]);break;case 118:oD(t,r.b);break;case 90:oD(t,n<3?QTt(r):3==n?fAt(r):gAt(r.a));break;default:return!1}return!0}function oGt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T;if(tFt(e),c=jz(Yet((!e.b&&(e.b=new cF(NDe,e,4,7)),e.b),0),82),u=jz(Yet((!e.c&&(e.c=new cF(NDe,e,5,8)),e.c),0),82),s=Ckt(c),l=Ckt(u),o=0==(!e.a&&(e.a=new tW(PDe,e,6,6)),e.a).i?null:jz(Yet((!e.a&&(e.a=new tW(PDe,e,6,6)),e.a),0),202),R=jz(NY(t.a,s),10),C=jz(NY(t.a,l),10),_=null,S=null,iO(c,186)&&(iO(x=jz(NY(t.a,c),299),11)?_=jz(x,11):iO(x,10)&&(R=jz(x,10),_=jz(OU(R.j,0),11))),iO(u,186)&&(iO(E=jz(NY(t.a,u),299),11)?S=jz(E,11):iO(E,10)&&(C=jz(E,10),S=jz(OU(C.j,0),11))),!R||!C)throw $m(new ix("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(Hot(p=new hX,e),lct(p,(lGt(),fhe),e),lct(p,(zYt(),bbe),null),f=jz(yEt(i,Xde),21),R==C&&f.Fc((hBt(),mde)),_||(rit(),w=Hye,k=null,o&&bI(jz(yEt(R,tme),98))&&(Z4(k=new OT(o.j,o.k),qJ(e)),Q3(k,n),Set(l,s)&&(w=zye,VP(k,R.n))),_=gHt(R,k,w,i)),S||(rit(),w=zye,T=null,o&&bI(jz(yEt(C,tme),98))&&(Z4(T=new OT(o.b,o.c),qJ(e)),Q3(T,n)),S=gHt(C,T,w,bG(C))),kQ(p,_),_Q(p,S),(_.e.c.length>1||_.g.c.length>1||S.e.c.length>1||S.g.c.length>1)&&f.Fc((hBt(),hde)),h=new AO((!e.n&&(e.n=new tW(HDe,e,1,7)),e.n));h.e!=h.i.gc();)if(!zw(RB(JIt(d=jz(wmt(h),137),Hbe)))&&d.a)switch(b=zut(d),Wz(p.b,b),jz(yEt(b,Zpe),272).g){case 1:case 2:f.Fc((hBt(),ude));break;case 0:f.Fc((hBt(),cde)),lct(b,Zpe,(Bet(),VSe))}if(r=jz(yEt(i,zpe),314),m=jz(yEt(i,Pbe),315),a=r==(Ait(),cue)||m==(Oyt(),bye),o&&0!=(!o.a&&(o.a=new DO(LDe,o,5)),o.a).i&&a){for(y=HCt(o),g=new vv,v=cmt(y,0);v.b!=v.d.c;)MH(g,new hI(jz(d4(v),8)));lct(p,ghe,g)}return p}function sGt(t){t.gb||(t.gb=!0,t.b=wot(t,0),Bat(t.b,18),Pat(t.b,19),t.a=wot(t,1),Bat(t.a,1),Pat(t.a,2),Pat(t.a,3),Pat(t.a,4),Pat(t.a,5),t.o=wot(t,2),Bat(t.o,8),Bat(t.o,9),Pat(t.o,10),Pat(t.o,11),Pat(t.o,12),Pat(t.o,13),Pat(t.o,14),Pat(t.o,15),Pat(t.o,16),Pat(t.o,17),Pat(t.o,18),Pat(t.o,19),Pat(t.o,20),Pat(t.o,21),Pat(t.o,22),Pat(t.o,23),oet(t.o),oet(t.o),oet(t.o),oet(t.o),oet(t.o),oet(t.o),oet(t.o),oet(t.o),oet(t.o),oet(t.o),t.p=wot(t,3),Bat(t.p,2),Bat(t.p,3),Bat(t.p,4),Bat(t.p,5),Pat(t.p,6),Pat(t.p,7),oet(t.p),oet(t.p),t.q=wot(t,4),Bat(t.q,8),t.v=wot(t,5),Pat(t.v,9),oet(t.v),oet(t.v),oet(t.v),t.w=wot(t,6),Bat(t.w,2),Bat(t.w,3),Bat(t.w,4),Pat(t.w,5),t.B=wot(t,7),Pat(t.B,1),oet(t.B),oet(t.B),oet(t.B),t.Q=wot(t,8),Pat(t.Q,0),oet(t.Q),t.R=wot(t,9),Bat(t.R,1),t.S=wot(t,10),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),t.T=wot(t,11),Pat(t.T,10),Pat(t.T,11),Pat(t.T,12),Pat(t.T,13),Pat(t.T,14),oet(t.T),oet(t.T),t.U=wot(t,12),Bat(t.U,2),Bat(t.U,3),Pat(t.U,4),Pat(t.U,5),Pat(t.U,6),Pat(t.U,7),oet(t.U),t.V=wot(t,13),Pat(t.V,10),t.W=wot(t,14),Bat(t.W,18),Bat(t.W,19),Bat(t.W,20),Pat(t.W,21),Pat(t.W,22),Pat(t.W,23),t.bb=wot(t,15),Bat(t.bb,10),Bat(t.bb,11),Bat(t.bb,12),Bat(t.bb,13),Bat(t.bb,14),Bat(t.bb,15),Bat(t.bb,16),Pat(t.bb,17),oet(t.bb),oet(t.bb),t.eb=wot(t,16),Bat(t.eb,2),Bat(t.eb,3),Bat(t.eb,4),Bat(t.eb,5),Bat(t.eb,6),Bat(t.eb,7),Pat(t.eb,8),Pat(t.eb,9),t.ab=wot(t,17),Bat(t.ab,0),Bat(t.ab,1),t.H=wot(t,18),Pat(t.H,0),Pat(t.H,1),Pat(t.H,2),Pat(t.H,3),Pat(t.H,4),Pat(t.H,5),oet(t.H),t.db=wot(t,19),Pat(t.db,2),t.c=xot(t,20),t.d=xot(t,21),t.e=xot(t,22),t.f=xot(t,23),t.i=xot(t,24),t.g=xot(t,25),t.j=xot(t,26),t.k=xot(t,27),t.n=xot(t,28),t.r=xot(t,29),t.s=xot(t,30),t.t=xot(t,31),t.u=xot(t,32),t.fb=xot(t,33),t.A=xot(t,34),t.C=xot(t,35),t.D=xot(t,36),t.F=xot(t,37),t.G=xot(t,38),t.I=xot(t,39),t.J=xot(t,40),t.L=xot(t,41),t.M=xot(t,42),t.N=xot(t,43),t.O=xot(t,44),t.P=xot(t,45),t.X=xot(t,46),t.Y=xot(t,47),t.Z=xot(t,48),t.$=xot(t,49),t._=xot(t,50),t.cb=xot(t,51),t.K=xot(t,52))}function cGt(){var t,e;cGt=D,tCe=new rm(f6t),mSe=new rm(g6t),fyt(),eCe=new DD(Y2t,nCe=SEe),iCe=new DD(GJt,null),aCe=new rm(p6t),f_t(),lCe=xV(JEe,Cst(Hx(BSe,1),IZt,291,0,[GEe])),cCe=new DD(o4t,lCe),uCe=new DD(W2t,(cM(),!1)),jdt(),dCe=new DD(X2t,hCe=$Se),kft(),bCe=new DD(v2t,mCe=JSe),wCe=new DD(D3t,!1),odt(),xCe=new DD(g2t,RCe=mTe),WCe=new WI(12),qCe=new DD(ZJt,WCe),CCe=new DD(xQt,!1),SCe=new DD(y4t,!1),VCe=new DD(kQt,!1),Z_t(),rSe=new DD(RQt,oSe=KTe),gSe=new rm(p4t),pSe=new rm(bQt),bSe=new rm(vQt),vSe=new rm(wQt),ACe=new vv,TCe=new DD(s4t,ACe),sCe=new DD(u4t,!1),_Ce=new DD(d4t,!1),ICe=new uv,DCe=new DD(b4t,ICe),UCe=new DD(V2t,!1),ySe=new DD(m6t,1),new DD(y6t,!0),nht(0),new DD(v6t,nht(100)),new DD(w6t,!1),nht(0),new DD(x6t,nht(4e3)),nht(0),new DD(R6t,nht(400)),new DD(_6t,!1),new DD(k6t,!1),new DD(E6t,!0),new DD(C6t,!1),jgt(),rCe=new DD(h6t,oCe=eDe),wSe=new DD(L2t,10),xSe=new DD(O2t,10),RSe=new DD(WJt,20),_Se=new DD(M2t,10),kSe=new DD(yQt,2),ESe=new DD(N2t,10),SSe=new DD(B2t,0),TSe=new DD(j2t,5),ASe=new DD(P2t,1),DSe=new DD(F2t,1),ISe=new DD(mQt,20),LSe=new DD($2t,10),NSe=new DD(z2t,10),CSe=new rm(H2t),MSe=new uI,OSe=new DD(m4t,MSe),ZCe=new rm(g4t),YCe=new DD(f4t,GCe=!1),OCe=new WI(5),LCe=new DD(J2t,OCe),QIt(),e=jz(YR(PTe),9),NCe=new ZF(e,jz(kP(e,e.length),9),0),MCe=new DD(SQt,NCe),amt(),XCe=new DD(e4t,JCe=$Te),tSe=new rm(n4t),eSe=new rm(i4t),nSe=new rm(a4t),QCe=new rm(r4t),t=jz(YR($Ae),9),PCe=new ZF(t,jz(kP(t,t.length),9),0),BCe=new DD(CQt,PCe),HCe=Qht((QFt(),UAe)),zCe=new DD(EQt,HCe),$Ce=new OT(0,0),jCe=new DD($Qt,$Ce),FCe=new DD(K2t,!1),Bet(),gCe=new DD(c4t,pCe=VSe),fCe=new DD(_Qt,!1),nht(1),new DD(T6t,null),iSe=new rm(h4t),sSe=new rm(l4t),wWt(),hSe=new DD(q2t,fSe=CAe),aSe=new rm(U2t),dAt(),uSe=Qht(iAe),lSe=new DD(TQt,uSe),cSe=new DD(Q2t,!1),dSe=new DD(t4t,!0),kCe=new DD(G2t,!1),ECe=new DD(Z2t,!1),yCe=new DD(YJt,1),Qkt(),new DD(A6t,vCe=rTe),KCe=!0}function lGt(){var t,e;lGt=D,fhe=new rm(AQt),Fde=new rm("coordinateOrigin"),_he=new rm("processors"),Pde=new eP("compoundNode",(cM(),!1)),the=new eP("insideConnections",!1),ghe=new rm("originalBendpoints"),phe=new rm("originalDummyNodePosition"),bhe=new rm("originalLabelEdge"),Ehe=new rm("representedLabels"),Ude=new rm("endLabels"),Vde=new rm("endLabel.origin"),rhe=new eP("labelSide",(Wwt(),kTe)),dhe=new eP("maxEdgeThickness",0),Che=new eP("reversed",!1),khe=new rm(DQt),che=new eP("longEdgeSource",null),lhe=new eP("longEdgeTarget",null),she=new eP("longEdgeHasLabelDummies",!1),ohe=new eP("longEdgeBeforeLabelDummy",!1),Hde=new eP("edgeConstraint",(Xst(),Due)),nhe=new rm("inLayerLayoutUnit"),ehe=new eP("inLayerConstraint",(U9(),Cde)),ihe=new eP("inLayerSuccessorConstraint",new Lm),ahe=new eP("inLayerSuccessorConstraintBetweenNonDummies",!1),xhe=new rm("portDummy"),jde=new eP("crossingHint",nht(0)),Xde=new eP("graphProperties",new ZF(e=jz(YR(vde),9),jz(kP(e,e.length),9),0)),Gde=new eP("externalPortSide",(wWt(),CAe)),Zde=new eP("externalPortSize",new HR),Wde=new rm("externalPortReplacedDummies"),Yde=new rm("externalPortReplacedDummy"),qde=new eP("externalPortConnections",new ZF(t=jz(YR(MAe),9),jz(kP(t,t.length),9),0)),Rhe=new eP(gJt,0),Ode=new rm("barycenterAssociates"),Bhe=new rm("TopSideComments"),Mde=new rm("BottomSideComments"),Bde=new rm("CommentConnectionPort"),Qde=new eP("inputCollect",!1),vhe=new eP("outputCollect",!1),zde=new eP("cyclic",!1),$de=new rm("crossHierarchyMap"),Nhe=new rm("targetOffset"),new eP("splineLabelSize",new HR),Ahe=new rm("spacings"),whe=new eP("partitionConstraint",!1),Nde=new rm("breakingPoint.info"),Ohe=new rm("splines.survivingEdge"),Lhe=new rm("splines.route.start"),Dhe=new rm("splines.edgeChain"),yhe=new rm("originalPortConstraints"),The=new rm("selfLoopHolder"),Ihe=new rm("splines.nsPortY"),hhe=new rm("modelOrder"),uhe=new rm("longEdgeTargetNode"),Kde=new eP(V1t,!1),She=new eP(V1t,!1),Jde=new rm("layerConstraints.hiddenNodes"),mhe=new rm("layerConstraints.opposidePort"),Mhe=new rm("targetNode.modelOrder")}function uGt(){uGt=D,Ptt(),kfe=new DD(q1t,Efe=Eue),Hfe=new DD(W1t,(cM(),!1)),U2(),Yfe=new DD(Y1t,Gfe=Dde),hge=new DD(G1t,!1),fge=new DD(Z1t,!0),Vhe=new DD(K1t,!1),V9(),Lge=new DD(X1t,Oge=Pye),nht(1),zge=new DD(J1t,nht(7)),Hge=new DD(Q1t,!1),Ufe=new DD(t0t,!1),Gyt(),Rfe=new DD(e0t,_fe=vue),_kt(),uge=new DD(n0t,dge=tye),_ft(),tge=new DD(i0t,ege=Hhe),nht(-1),Qfe=new DD(a0t,nht(-1)),nht(-1),nge=new DD(r0t,nht(-1)),nht(-1),ige=new DD(o0t,nht(4)),nht(-1),rge=new DD(s0t,nht(2)),cMt(),cge=new DD(c0t,lge=Tye),nht(0),sge=new DD(l0t,nht(0)),Xfe=new DD(u0t,nht(NGt)),Ait(),wfe=new DD(d0t,xfe=lue),rfe=new DD(h0t,!1),gfe=new DD(f0t,.1),yfe=new DD(g0t,!1),nht(-1),bfe=new DD(p0t,nht(-1)),nht(-1),mfe=new DD(b0t,nht(-1)),nht(0),ofe=new DD(m0t,nht(40)),Pot(),dfe=new DD(y0t,hfe=Rde),sfe=new DD(v0t,cfe=wde),Oyt(),Dge=new DD(w0t,Ige=pye),wge=new rm(x0t),g9(),gge=new DD(R0t,pge=Hue),$Rt(),mge=new DD(_0t,yge=Zue),_ge=new DD(k0t,.3),Ege=new rm(E0t),hyt(),Cge=new DD(C0t,Sge=dye),zrt(),Lfe=new DD(S0t,Ofe=Yye),A7(),Mfe=new DD(T0t,Nfe=Jye),qlt(),Bfe=new DD(A0t,Pfe=ive),jfe=new DD(D0t,.2),Dfe=new DD(I0t,2),Pge=new DD(L0t,null),jge=new DD(O0t,10),Fge=new DD(M0t,10),$ge=new DD(N0t,20),nht(0),Mge=new DD(B0t,nht(0)),nht(0),Nge=new DD(P0t,nht(0)),nht(0),Bge=new DD(F0t,nht(0)),qhe=new DD(j0t,!1),XEt(),Ghe=new DD($0t,Zhe=ade),Y5(),Whe=new DD(z0t,Yhe=rue),qfe=new DD(H0t,!1),nht(0),Vfe=new DD(U0t,nht(16)),nht(0),Wfe=new DD(V0t,nht(5)),Ist(),upe=new DD(q0t,dpe=hve),Uge=new DD(W0t,10),Wge=new DD(Y0t,1),oit(),tpe=new DD(G0t,epe=pue),Zge=new rm(Z0t),Jge=nht(1),nht(0),Xge=new DD(K0t,Jge),grt(),ppe=new DD(X0t,bpe=ove),hpe=new rm(J0t),ope=new DD(Q0t,!0),ape=new DD(t2t,2),cpe=new DD(e2t,!0),pCt(),Tfe=new DD(n2t,Afe=Fue),ISt(),Cfe=new DD(i2t,Sfe=Jle),yct(),ife=new DD(a2t,afe=Oye),nfe=new DD(r2t,!1),$dt(),Khe=new DD(o2t,Xhe=fse),kut(),tfe=new DD(s2t,efe=aye),Jhe=new DD(c2t,0),Qhe=new DD(l2t,0),Kfe=xue,Zfe=cue,age=Qme,oge=Qme,Jfe=Kme,odt(),pfe=bTe,vfe=lue,ffe=lue,lfe=lue,ufe=bTe,xge=yye,Rge=pye,bge=pye,vge=pye,kge=mye,Age=yye,Tge=yye,kft(),Ffe=XSe,$fe=XSe,zfe=ive,Ife=KSe,Vge=fve,qge=dve,Yge=fve,Gge=dve,npe=fve,ipe=dve,Kge=gue,Qge=pue,mpe=fve,ype=dve,fpe=fve,gpe=dve,spe=dve,rpe=dve,lpe=dve}function dGt(){dGt=D,ice=new JC("DIRECTION_PREPROCESSOR",0),tce=new JC("COMMENT_PREPROCESSOR",1),ace=new JC("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER",2),wce=new JC("INTERACTIVE_EXTERNAL_PORT_POSITIONER",3),jce=new JC("PARTITION_PREPROCESSOR",4),kce=new JC("LABEL_DUMMY_INSERTER",5),qce=new JC("SELF_LOOP_PREPROCESSOR",6),Ace=new JC("LAYER_CONSTRAINT_PREPROCESSOR",7),Pce=new JC("PARTITION_MIDPROCESSOR",8),pce=new JC("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),Oce=new JC("NODE_PROMOTION",10),Tce=new JC("LAYER_CONSTRAINT_POSTPROCESSOR",11),Fce=new JC("PARTITION_POSTPROCESSOR",12),dce=new JC("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR",13),Yce=new JC("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR",14),Gse=new JC("BREAKING_POINT_INSERTER",15),Lce=new JC("LONG_EDGE_SPLITTER",16),zce=new JC("PORT_SIDE_PROCESSOR",17),xce=new JC("INVERTED_PORT_PROCESSOR",18),$ce=new JC("PORT_LIST_SORTER",19),Zce=new JC("SORT_BY_INPUT_ORDER_OF_MODEL",20),Nce=new JC("NORTH_SOUTH_PORT_PREPROCESSOR",21),Zse=new JC("BREAKING_POINT_PROCESSOR",22),Bce=new JC(R1t,23),Kce=new JC(_1t,24),Uce=new JC("SELF_LOOP_PORT_RESTORER",25),Gce=new JC("SINGLE_EDGE_GRAPH_WRAPPER",26),Rce=new JC("IN_LAYER_CONSTRAINT_PROCESSOR",27),cce=new JC("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR",28),_ce=new JC("LABEL_AND_NODE_SIZE_PROCESSOR",29),vce=new JC("INNERMOST_NODE_MARGIN_CALCULATOR",30),Wce=new JC("SELF_LOOP_ROUTER",31),Jse=new JC("COMMENT_NODE_MARGIN_CALCULATOR",32),oce=new JC("END_LABEL_PREPROCESSOR",33),Cce=new JC("LABEL_DUMMY_SWITCHER",34),Xse=new JC("CENTER_LABEL_MANAGEMENT_PROCESSOR",35),Sce=new JC("LABEL_SIDE_SELECTOR",36),mce=new JC("HYPEREDGE_DUMMY_MERGER",37),hce=new JC("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR",38),Dce=new JC("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR",39),gce=new JC("HIERARCHICAL_PORT_POSITION_PROCESSOR",40),ece=new JC("CONSTRAINTS_POSTPROCESSOR",41),Qse=new JC("COMMENT_POSTPROCESSOR",42),yce=new JC("HYPERNODE_PROCESSOR",43),fce=new JC("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER",44),Ice=new JC("LONG_EDGE_JOINER",45),Vce=new JC("SELF_LOOP_POSTPROCESSOR",46),Kse=new JC("BREAKING_POINT_REMOVER",47),Mce=new JC("NORTH_SOUTH_PORT_POSTPROCESSOR",48),bce=new JC("HORIZONTAL_COMPACTOR",49),Ece=new JC("LABEL_DUMMY_REMOVER",50),lce=new JC("FINAL_SPLINE_BENDPOINTS_CALCULATOR",51),sce=new JC("END_LABEL_SORTER",52),Hce=new JC("REVERSED_EDGE_RESTORER",53),rce=new JC("END_LABEL_POSTPROCESSOR",54),uce=new JC("HIERARCHICAL_NODE_RESIZER",55),nce=new JC("DIRECTION_POSTPROCESSOR",56)}function hGt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A,D,I,L,O,M,N,B,P,F,j,$,z,H,U,V,q,W,Y,G,Z,K,X,J,Q,tt,et,nt,it,at,rt,ot,st;for(J=0,O=0,B=(D=e).length;O<B;++O)for(V=new Wf((T=D[O]).j);V.a<V.c.c.length;){for(W=0,c=new Wf((U=jz(J1(V),11)).g);c.a<c.c.c.length;)s=jz(J1(c),17),T.c!=s.d.i.c&&++W;W>0&&(t.a[U.p]=J++)}for(it=0,M=0,P=(I=n).length;M<P;++M){for(F=0,V=new Wf((T=I[M]).j);V.a<V.c.c.length&&(U=jz(J1(V),11)).j==(wWt(),cAe);)for(c=new Wf(U.e);c.a<c.c.c.length;)if(s=jz(J1(c),17),T.c!=s.c.i.c){++F;break}for($=0,Y=new _2(T.j,T.j.c.length);Y.b>0;){for(EN(Y.b>0),W=0,c=new Wf((U=jz(Y.a.Xb(Y.c=--Y.b),11)).e);c.a<c.c.c.length;)s=jz(J1(c),17),T.c!=s.c.i.c&&++W;W>0&&(U.j==(wWt(),cAe)?(t.a[U.p]=it,++it):(t.a[U.p]=it+F+$,++$))}it+=$}for(q=new Om,p=new lI,L=0,N=(A=e).length;L<N;++L)for(et=new Wf((T=A[L]).j);et.a<et.c.c.length;)for(c=new Wf((tt=jz(J1(et),11)).g);c.a<c.c.c.length;)if(rt=(s=jz(J1(c),17)).d,T.c!=rt.i.c)if(Q=jz(zA(AX(q.f,tt)),467),at=jz(zA(AX(q.f,rt)),467),Q||at)if(Q)if(at)if(Q==at)Wz(Q.a,s);else{for(Wz(Q.a,s),H=new Wf(at.d);H.a<H.c.c.length;)z=jz(J1(H),11),xTt(q.f,z,Q);pst(Q.a,at.a),pst(Q.d,at.d),p.a.Bc(at)}else Wz(Q.a,s),Wz(Q.d,rt),xTt(q.f,rt,Q);else Wz(at.a,s),Wz(at.d,tt),xTt(q.f,tt,at);else g=new MP,p.a.zc(g,p),Wz(g.a,s),Wz(g.d,tt),xTt(q.f,tt,g),Wz(g.d,rt),xTt(q.f,rt,g);for(b=jz(Rvt(p,O5(Fve,{3:1,4:1,5:1,1946:1},467,p.a.gc(),0,1)),1946),S=e[0].c,X=n[0].c,h=0,f=(d=b).length;h<f;++h)for((u=d[h]).e=J,u.f=it,V=new Wf(u.d);V.a<V.c.c.length;)U=jz(J1(V),11),G=t.a[U.p],U.i.c==S?(G<u.e&&(u.e=G),G>u.b&&(u.b=G)):U.i.c==X&&(G<u.f&&(u.f=G),G>u.c&&(u.c=G));for(U8(b,0,b.length,null),nt=O5(TMe,lKt,25,b.length,15,1),a=O5(TMe,lKt,25,it+1,15,1),y=0;y<b.length;y++)nt[y]=b[y].f,a[nt[y]]=1;for(o=0,v=0;v<a.length;v++)1==a[v]?a[v]=o:--o;for(Z=0,w=0;w<nt.length;w++)nt[w]+=a[nt[w]],Z=i.Math.max(Z,nt[w]+1);for(l=1;l<Z;)l*=2;for(st=2*l-1,l-=1,ot=O5(TMe,lKt,25,st,15,1),r=0,E=0;E<nt.length;E++)for(++ot[k=nt[E]+l];k>0;)k%2>0&&(r+=ot[k+1]),++ot[k=(k-1)/2|0];for(C=O5(jve,zGt,362,2*b.length,0,1),x=0;x<b.length;x++)C[2*x]=new zZ(b[x],b[x].e,b[x].b,(G3(),zve)),C[2*x+1]=new zZ(b[x],b[x].b,b[x].e,$ve);for(U8(C,0,C.length,null),j=0,R=0;R<C.length;R++)switch(C[R].d.g){case 0:++j;break;case 1:r+=--j}for(K=O5(jve,zGt,362,2*b.length,0,1),_=0;_<b.length;_++)K[2*_]=new zZ(b[_],b[_].f,b[_].c,(G3(),zve)),K[2*_+1]=new zZ(b[_],b[_].c,b[_].f,$ve);for(U8(K,0,K.length,null),j=0,m=0;m<K.length;m++)switch(K[m].d.g){case 0:++j;break;case 1:r+=--j}return r}function fGt(){fGt=D,oMe=new Am(7),sMe=new oV(8,94),new oV(8,64),cMe=new oV(8,36),gMe=new oV(8,65),pMe=new oV(8,122),bMe=new oV(8,90),vMe=new oV(8,98),hMe=new oV(8,66),mMe=new oV(8,60),wMe=new oV(8,62),rMe=new Am(11),KNt(aMe=new _0(4),48,57),KNt(yMe=new _0(4),48,57),KNt(yMe,65,90),KNt(yMe,95,95),KNt(yMe,97,122),KNt(fMe=new _0(4),9,9),KNt(fMe,10,10),KNt(fMe,12,12),KNt(fMe,13,13),KNt(fMe,32,32),lMe=I$t(aMe),dMe=I$t(yMe),uMe=I$t(fMe),tMe=new Om,eMe=new Om,nMe=Cst(Hx(zee,1),cZt,2,6,["Cn","Lu","Ll","Lt","Lm","Lo","Mn","Me","Mc","Nd","Nl","No","Zs","Zl","Zp","Cc","Cf",null,"Co","Cs","Pd","Ps","Pe","Pc","Po","Sm","Sc","Sk","So","Pi","Pf","L","M","N","Z","C","P","S"]),QOe=Cst(Hx(zee,1),cZt,2,6,["Basic Latin","Latin-1 Supplement","Latin Extended-A","Latin Extended-B","IPA Extensions","Spacing Modifier Letters","Combining Diacritical Marks","Greek","Cyrillic","Armenian","Hebrew","Arabic","Syriac","Thaana","Devanagari","Bengali","Gurmukhi","Gujarati","Oriya","Tamil","Telugu","Kannada","Malayalam","Sinhala","Thai","Lao","Tibetan","Myanmar","Georgian","Hangul Jamo","Ethiopic","Cherokee","Unified Canadian Aboriginal Syllabics","Ogham","Runic","Khmer","Mongolian","Latin Extended Additional","Greek Extended","General Punctuation","Superscripts and Subscripts","Currency Symbols","Combining Marks for Symbols","Letterlike Symbols","Number Forms","Arrows","Mathematical Operators","Miscellaneous Technical","Control Pictures","Optical Character Recognition","Enclosed Alphanumerics","Box Drawing","Block Elements","Geometric Shapes","Miscellaneous Symbols","Dingbats","Braille Patterns","CJK Radicals Supplement","Kangxi Radicals","Ideographic Description Characters","CJK Symbols and Punctuation","Hiragana","Katakana","Bopomofo","Hangul Compatibility Jamo","Kanbun","Bopomofo Extended","Enclosed CJK Letters and Months","CJK Compatibility","CJK Unified Ideographs Extension A","CJK Unified Ideographs","Yi Syllables","Yi Radicals","Hangul Syllables",pte,"CJK Compatibility Ideographs","Alphabetic Presentation Forms","Arabic Presentation Forms-A","Combining Half Marks","CJK Compatibility Forms","Small Form Variants","Arabic Presentation Forms-B","Specials","Halfwidth and Fullwidth Forms","Old Italic","Gothic","Deseret","Byzantine Musical Symbols","Musical Symbols","Mathematical Alphanumeric Symbols","CJK Unified Ideographs Extension B","CJK Compatibility Ideographs Supplement","Tags"]),iMe=Cst(Hx(TMe,1),lKt,25,15,[66304,66351,66352,66383,66560,66639,118784,119039,119040,119295,119808,120831,131072,173782,194560,195103,917504,917631])}function gGt(){gGt=D,Cae=new srt("OUT_T_L",0,(K8(),Xie),(H9(),nae),(Net(),Uie),Uie,Cst(Hx(Nte,1),zGt,21,0,[xV((QIt(),LTe),Cst(Hx(PTe,1),IZt,93,0,[NTe,TTe]))])),Eae=new srt("OUT_T_C",1,Kie,nae,Uie,Vie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[NTe,STe])),xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[NTe,STe,ATe]))])),Sae=new srt("OUT_T_R",2,Jie,nae,Uie,qie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[NTe,DTe]))])),mae=new srt("OUT_B_L",3,Xie,aae,qie,Uie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[OTe,TTe]))])),bae=new srt("OUT_B_C",4,Kie,aae,qie,Vie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[OTe,STe])),xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[OTe,STe,ATe]))])),yae=new srt("OUT_B_R",5,Jie,aae,qie,qie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[OTe,DTe]))])),xae=new srt("OUT_L_T",6,Jie,aae,Uie,Uie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[TTe,NTe,ATe]))])),wae=new srt("OUT_L_C",7,Jie,iae,Vie,Uie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[TTe,MTe])),xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[TTe,MTe,ATe]))])),vae=new srt("OUT_L_B",8,Jie,nae,qie,Uie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[TTe,OTe,ATe]))])),kae=new srt("OUT_R_T",9,Xie,aae,Uie,qie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[DTe,NTe,ATe]))])),_ae=new srt("OUT_R_C",10,Xie,iae,Vie,qie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[DTe,MTe])),xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[DTe,MTe,ATe]))])),Rae=new srt("OUT_R_B",11,Xie,nae,qie,qie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[DTe,OTe,ATe]))])),gae=new srt("IN_T_L",12,Xie,aae,Uie,Uie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[NTe,TTe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[NTe,TTe,ATe]))])),fae=new srt("IN_T_C",13,Kie,aae,Uie,Vie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[NTe,STe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[NTe,STe,ATe]))])),pae=new srt("IN_T_R",14,Jie,aae,Uie,qie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[NTe,DTe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[NTe,DTe,ATe]))])),dae=new srt("IN_C_L",15,Xie,iae,Vie,Uie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[MTe,TTe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[MTe,TTe,ATe]))])),uae=new srt("IN_C_C",16,Kie,iae,Vie,Vie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[MTe,STe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[MTe,STe,ATe]))])),hae=new srt("IN_C_R",17,Jie,iae,Vie,qie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[MTe,DTe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[MTe,DTe,ATe]))])),cae=new srt("IN_B_L",18,Xie,nae,qie,Uie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[OTe,TTe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[OTe,TTe,ATe]))])),sae=new srt("IN_B_C",19,Kie,nae,qie,Vie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[OTe,STe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[OTe,STe,ATe]))])),lae=new srt("IN_B_R",20,Jie,nae,qie,qie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[OTe,DTe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[OTe,DTe,ATe]))])),Tae=new srt(lJt,21,null,null,null,null,Cst(Hx(Nte,1),zGt,21,0,[]))}function pGt(){pGt=D,tLe=(GY(),JIe).b,jz(Yet(GK(JIe.b),0),34),jz(Yet(GK(JIe.b),1),18),QIe=JIe.a,jz(Yet(GK(JIe.a),0),34),jz(Yet(GK(JIe.a),1),18),jz(Yet(GK(JIe.a),2),18),jz(Yet(GK(JIe.a),3),18),jz(Yet(GK(JIe.a),4),18),eLe=JIe.o,jz(Yet(GK(JIe.o),0),34),jz(Yet(GK(JIe.o),1),34),iLe=jz(Yet(GK(JIe.o),2),18),jz(Yet(GK(JIe.o),3),18),jz(Yet(GK(JIe.o),4),18),jz(Yet(GK(JIe.o),5),18),jz(Yet(GK(JIe.o),6),18),jz(Yet(GK(JIe.o),7),18),jz(Yet(GK(JIe.o),8),18),jz(Yet(GK(JIe.o),9),18),jz(Yet(GK(JIe.o),10),18),jz(Yet(GK(JIe.o),11),18),jz(Yet(GK(JIe.o),12),18),jz(Yet(GK(JIe.o),13),18),jz(Yet(GK(JIe.o),14),18),jz(Yet(GK(JIe.o),15),18),jz(Yet(YK(JIe.o),0),59),jz(Yet(YK(JIe.o),1),59),jz(Yet(YK(JIe.o),2),59),jz(Yet(YK(JIe.o),3),59),jz(Yet(YK(JIe.o),4),59),jz(Yet(YK(JIe.o),5),59),jz(Yet(YK(JIe.o),6),59),jz(Yet(YK(JIe.o),7),59),jz(Yet(YK(JIe.o),8),59),jz(Yet(YK(JIe.o),9),59),nLe=JIe.p,jz(Yet(GK(JIe.p),0),34),jz(Yet(GK(JIe.p),1),34),jz(Yet(GK(JIe.p),2),34),jz(Yet(GK(JIe.p),3),34),jz(Yet(GK(JIe.p),4),18),jz(Yet(GK(JIe.p),5),18),jz(Yet(YK(JIe.p),0),59),jz(Yet(YK(JIe.p),1),59),aLe=JIe.q,jz(Yet(GK(JIe.q),0),34),rLe=JIe.v,jz(Yet(GK(JIe.v),0),18),jz(Yet(YK(JIe.v),0),59),jz(Yet(YK(JIe.v),1),59),jz(Yet(YK(JIe.v),2),59),oLe=JIe.w,jz(Yet(GK(JIe.w),0),34),jz(Yet(GK(JIe.w),1),34),jz(Yet(GK(JIe.w),2),34),jz(Yet(GK(JIe.w),3),18),sLe=JIe.B,jz(Yet(GK(JIe.B),0),18),jz(Yet(YK(JIe.B),0),59),jz(Yet(YK(JIe.B),1),59),jz(Yet(YK(JIe.B),2),59),uLe=JIe.Q,jz(Yet(GK(JIe.Q),0),18),jz(Yet(YK(JIe.Q),0),59),dLe=JIe.R,jz(Yet(GK(JIe.R),0),34),hLe=JIe.S,jz(Yet(YK(JIe.S),0),59),jz(Yet(YK(JIe.S),1),59),jz(Yet(YK(JIe.S),2),59),jz(Yet(YK(JIe.S),3),59),jz(Yet(YK(JIe.S),4),59),jz(Yet(YK(JIe.S),5),59),jz(Yet(YK(JIe.S),6),59),jz(Yet(YK(JIe.S),7),59),jz(Yet(YK(JIe.S),8),59),jz(Yet(YK(JIe.S),9),59),jz(Yet(YK(JIe.S),10),59),jz(Yet(YK(JIe.S),11),59),jz(Yet(YK(JIe.S),12),59),jz(Yet(YK(JIe.S),13),59),jz(Yet(YK(JIe.S),14),59),fLe=JIe.T,jz(Yet(GK(JIe.T),0),18),jz(Yet(GK(JIe.T),2),18),gLe=jz(Yet(GK(JIe.T),3),18),jz(Yet(GK(JIe.T),4),18),jz(Yet(YK(JIe.T),0),59),jz(Yet(YK(JIe.T),1),59),jz(Yet(GK(JIe.T),1),18),pLe=JIe.U,jz(Yet(GK(JIe.U),0),34),jz(Yet(GK(JIe.U),1),34),jz(Yet(GK(JIe.U),2),18),jz(Yet(GK(JIe.U),3),18),jz(Yet(GK(JIe.U),4),18),jz(Yet(GK(JIe.U),5),18),jz(Yet(YK(JIe.U),0),59),bLe=JIe.V,jz(Yet(GK(JIe.V),0),18),mLe=JIe.W,jz(Yet(GK(JIe.W),0),34),jz(Yet(GK(JIe.W),1),34),jz(Yet(GK(JIe.W),2),34),jz(Yet(GK(JIe.W),3),18),jz(Yet(GK(JIe.W),4),18),jz(Yet(GK(JIe.W),5),18),vLe=JIe.bb,jz(Yet(GK(JIe.bb),0),34),jz(Yet(GK(JIe.bb),1),34),jz(Yet(GK(JIe.bb),2),34),jz(Yet(GK(JIe.bb),3),34),jz(Yet(GK(JIe.bb),4),34),jz(Yet(GK(JIe.bb),5),34),jz(Yet(GK(JIe.bb),6),34),jz(Yet(GK(JIe.bb),7),18),jz(Yet(YK(JIe.bb),0),59),jz(Yet(YK(JIe.bb),1),59),wLe=JIe.eb,jz(Yet(GK(JIe.eb),0),34),jz(Yet(GK(JIe.eb),1),34),jz(Yet(GK(JIe.eb),2),34),jz(Yet(GK(JIe.eb),3),34),jz(Yet(GK(JIe.eb),4),34),jz(Yet(GK(JIe.eb),5),34),jz(Yet(GK(JIe.eb),6),18),jz(Yet(GK(JIe.eb),7),18),yLe=JIe.ab,jz(Yet(GK(JIe.ab),0),34),jz(Yet(GK(JIe.ab),1),34),cLe=JIe.H,jz(Yet(GK(JIe.H),0),18),jz(Yet(GK(JIe.H),1),18),jz(Yet(GK(JIe.H),2),18),jz(Yet(GK(JIe.H),3),18),jz(Yet(GK(JIe.H),4),18),jz(Yet(GK(JIe.H),5),18),jz(Yet(YK(JIe.H),0),59),xLe=JIe.db,jz(Yet(GK(JIe.db),0),18),lLe=JIe.M}function bGt(t){var e;t.O||(t.O=!0,Oat(t,"type"),Mat(t,"ecore.xml.type"),Nat(t,E9t),e=jz(ILt((WE(),HIe),E9t),1945),l8(vX(t.fb),t.b),U0(t.b,dOe,"AnyType",!1,!1,!0),ort(jz(Yet(GK(t.b),0),34),t.wb.D,P8t,null,0,-1,dOe,!1,!1,!0,!1,!1,!1),ort(jz(Yet(GK(t.b),1),34),t.wb.D,"any",null,0,-1,dOe,!0,!0,!0,!1,!1,!0),ort(jz(Yet(GK(t.b),2),34),t.wb.D,"anyAttribute",null,0,-1,dOe,!1,!1,!0,!1,!1,!1),U0(t.bb,HOe,D9t,!1,!1,!0),ort(jz(Yet(GK(t.bb),0),34),t.gb,"data",null,0,1,HOe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.bb),1),34),t.gb,K7t,null,1,1,HOe,!1,!1,!0,!1,!0,!1),U0(t.fb,UOe,I9t,!1,!1,!0),ort(jz(Yet(GK(t.fb),0),34),e.gb,"rawValue",null,0,1,UOe,!0,!0,!0,!1,!0,!0),ort(jz(Yet(GK(t.fb),1),34),e.a,R7t,null,0,1,UOe,!0,!0,!0,!1,!0,!0),kwt(jz(Yet(GK(t.fb),2),18),t.wb.q,null,"instanceType",1,1,UOe,!1,!1,!0,!1,!1,!1,!1),U0(t.qb,VOe,L9t,!1,!1,!0),ort(jz(Yet(GK(t.qb),0),34),t.wb.D,P8t,null,0,-1,null,!1,!1,!0,!1,!1,!1),kwt(jz(Yet(GK(t.qb),1),18),t.wb.ab,null,"xMLNSPrefixMap",0,-1,null,!0,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.qb),2),18),t.wb.ab,null,"xSISchemaLocation",0,-1,null,!0,!1,!0,!0,!1,!1,!1),ort(jz(Yet(GK(t.qb),3),34),t.gb,"cDATA",null,0,-2,null,!0,!0,!0,!1,!1,!0),ort(jz(Yet(GK(t.qb),4),34),t.gb,"comment",null,0,-2,null,!0,!0,!0,!1,!1,!0),kwt(jz(Yet(GK(t.qb),5),18),t.bb,null,ate,0,-2,null,!0,!0,!0,!0,!1,!1,!0),ort(jz(Yet(GK(t.qb),6),34),t.gb,A7t,null,0,-2,null,!0,!0,!0,!1,!1,!0),fZ(t.a,Dte,"AnySimpleType",!0),fZ(t.c,zee,"AnyURI",!0),fZ(t.d,Hx(IMe,1),"Base64Binary",!0),fZ(t.e,AMe,"Boolean",!0),fZ(t.f,wee,"BooleanObject",!0),fZ(t.g,IMe,"Byte",!0),fZ(t.i,Ree,"ByteObject",!0),fZ(t.j,zee,"Date",!0),fZ(t.k,zee,"DateTime",!0),fZ(t.n,Kee,"Decimal",!0),fZ(t.o,LMe,"Double",!0),fZ(t.p,Cee,"DoubleObject",!0),fZ(t.q,zee,"Duration",!0),fZ(t.s,Bte,"ENTITIES",!0),fZ(t.r,Bte,"ENTITIESBase",!0),fZ(t.t,zee,F9t,!0),fZ(t.u,OMe,"Float",!0),fZ(t.v,See,"FloatObject",!0),fZ(t.w,zee,"GDay",!0),fZ(t.B,zee,"GMonth",!0),fZ(t.A,zee,"GMonthDay",!0),fZ(t.C,zee,"GYear",!0),fZ(t.D,zee,"GYearMonth",!0),fZ(t.F,Hx(IMe,1),"HexBinary",!0),fZ(t.G,zee,"ID",!0),fZ(t.H,zee,"IDREF",!0),fZ(t.J,Bte,"IDREFS",!0),fZ(t.I,Bte,"IDREFSBase",!0),fZ(t.K,TMe,"Int",!0),fZ(t.M,sne,"Integer",!0),fZ(t.L,Dee,"IntObject",!0),fZ(t.P,zee,"Language",!0),fZ(t.Q,DMe,"Long",!0),fZ(t.R,Bee,"LongObject",!0),fZ(t.S,zee,"Name",!0),fZ(t.T,zee,j9t,!0),fZ(t.U,sne,"NegativeInteger",!0),fZ(t.V,zee,Z9t,!0),fZ(t.X,Bte,"NMTOKENS",!0),fZ(t.W,Bte,"NMTOKENSBase",!0),fZ(t.Y,sne,"NonNegativeInteger",!0),fZ(t.Z,sne,"NonPositiveInteger",!0),fZ(t.$,zee,"NormalizedString",!0),fZ(t._,zee,"NOTATION",!0),fZ(t.ab,zee,"PositiveInteger",!0),fZ(t.cb,zee,"QName",!0),fZ(t.db,MMe,"Short",!0),fZ(t.eb,Fee,"ShortObject",!0),fZ(t.gb,zee,HZt,!0),fZ(t.hb,zee,"Time",!0),fZ(t.ib,zee,"Token",!0),fZ(t.jb,MMe,"UnsignedByte",!0),fZ(t.kb,Fee,"UnsignedByteObject",!0),fZ(t.lb,DMe,"UnsignedInt",!0),fZ(t.mb,Bee,"UnsignedIntObject",!0),fZ(t.nb,sne,"UnsignedLong",!0),fZ(t.ob,TMe,"UnsignedShort",!0),fZ(t.pb,Dee,"UnsignedShortObject",!0),Lut(t,E9t),vGt(t))}function mGt(t){LE(t,new kkt(mR(fR(bR(hR(pR(gR(new bs,f1t),"ELK Layered"),"Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level."),new Tr),f1t),xV((lIt(),eIe),Cst(Hx(iIe,1),IZt,237,0,[JDe,QDe,XDe,tIe,ZDe,GDe]))))),r2(t,f1t,L2t,ymt(pme)),r2(t,f1t,O2t,ymt(bme)),r2(t,f1t,WJt,ymt(mme)),r2(t,f1t,M2t,ymt(yme)),r2(t,f1t,yQt,ymt(wme)),r2(t,f1t,N2t,ymt(xme)),r2(t,f1t,B2t,ymt(kme)),r2(t,f1t,P2t,ymt(Cme)),r2(t,f1t,F2t,ymt(Sme)),r2(t,f1t,j2t,ymt(Eme)),r2(t,f1t,mQt,ymt(Tme)),r2(t,f1t,$2t,ymt(Dme)),r2(t,f1t,z2t,ymt(Lme)),r2(t,f1t,H2t,ymt(_me)),r2(t,f1t,L0t,ymt(gme)),r2(t,f1t,M0t,ymt(vme)),r2(t,f1t,O0t,ymt(Rme)),r2(t,f1t,N0t,ymt(Ame)),r2(t,f1t,bQt,nht(0)),r2(t,f1t,B0t,ymt(lme)),r2(t,f1t,P0t,ymt(ume)),r2(t,f1t,F0t,ymt(dme)),r2(t,f1t,q0t,ymt(Ume)),r2(t,f1t,W0t,ymt(Nme)),r2(t,f1t,Y0t,ymt(Bme)),r2(t,f1t,G0t,ymt(jme)),r2(t,f1t,Z0t,ymt(Pme)),r2(t,f1t,K0t,ymt(Fme)),r2(t,f1t,X0t,ymt(qme)),r2(t,f1t,J0t,ymt(Vme)),r2(t,f1t,Q0t,ymt(zme)),r2(t,f1t,t2t,ymt($me)),r2(t,f1t,e2t,ymt(Hme)),r2(t,f1t,E0t,ymt(Nbe)),r2(t,f1t,C0t,ymt(Bbe)),r2(t,f1t,A0t,ymt(nbe)),r2(t,f1t,D0t,ymt(ibe)),r2(t,f1t,ZJt,Vbe),r2(t,f1t,v2t,Jpe),r2(t,f1t,U2t,0),r2(t,f1t,vQt,nht(1)),r2(t,f1t,GJt,gQt),r2(t,f1t,V2t,ymt(Hbe)),r2(t,f1t,RQt,ymt(tme)),r2(t,f1t,q2t,ymt(rme)),r2(t,f1t,W2t,ymt(Upe)),r2(t,f1t,Y2t,ymt(vpe)),r2(t,f1t,g2t,ymt(sbe)),r2(t,f1t,wQt,(cM(),!0)),r2(t,f1t,G2t,ymt(hbe)),r2(t,f1t,Z2t,ymt(fbe)),r2(t,f1t,CQt,ymt(Fbe)),r2(t,f1t,EQt,ymt(zbe)),r2(t,f1t,K2t,ymt(jbe)),r2(t,f1t,X2t,Wpe),r2(t,f1t,SQt,ymt(Dbe)),r2(t,f1t,J2t,ymt(Abe)),r2(t,f1t,TQt,ymt(ime)),r2(t,f1t,Q2t,ymt(nme)),r2(t,f1t,t4t,ymt(ame)),r2(t,f1t,e4t,Ybe),r2(t,f1t,n4t,ymt(Zbe)),r2(t,f1t,i4t,ymt(Kbe)),r2(t,f1t,a4t,ymt(Xbe)),r2(t,f1t,r4t,ymt(Gbe)),r2(t,f1t,Q1t,ymt(Mme)),r2(t,f1t,n0t,ymt(Ebe)),r2(t,f1t,c0t,ymt(kbe)),r2(t,f1t,J1t,ymt(Ome)),r2(t,f1t,i0t,ymt(vbe)),r2(t,f1t,e0t,ymt(Hpe)),r2(t,f1t,d0t,ymt(zpe)),r2(t,f1t,h0t,ymt(Ope)),r2(t,f1t,m0t,ymt(Mpe)),r2(t,f1t,y0t,ymt(Bpe)),r2(t,f1t,v0t,ymt(Npe)),r2(t,f1t,g0t,ymt($pe)),r2(t,f1t,G1t,ymt(Sbe)),r2(t,f1t,Z1t,ymt(Tbe)),r2(t,f1t,Y1t,ymt(pbe)),r2(t,f1t,w0t,ymt(Pbe)),r2(t,f1t,_0t,ymt(Lbe)),r2(t,f1t,W1t,ymt(rbe)),r2(t,f1t,k0t,ymt(Mbe)),r2(t,f1t,S0t,ymt(tbe)),r2(t,f1t,T0t,ymt(ebe)),r2(t,f1t,o4t,ymt(Lpe)),r2(t,f1t,R0t,ymt(Ibe)),r2(t,f1t,$0t,ymt(Epe)),r2(t,f1t,z0t,ymt(kpe)),r2(t,f1t,j0t,ymt(_pe)),r2(t,f1t,H0t,ymt(lbe)),r2(t,f1t,U0t,ymt(cbe)),r2(t,f1t,V0t,ymt(ube)),r2(t,f1t,$Qt,ymt($be)),r2(t,f1t,s4t,ymt(bbe)),r2(t,f1t,YJt,ymt(abe)),r2(t,f1t,c4t,ymt(Zpe)),r2(t,f1t,_Qt,ymt(Gpe)),r2(t,f1t,f0t,ymt(Ppe)),r2(t,f1t,l4t,ymt(eme)),r2(t,f1t,u4t,ymt(Rpe)),r2(t,f1t,d4t,ymt(dbe)),r2(t,f1t,h4t,ymt(Jbe)),r2(t,f1t,f4t,ymt(qbe)),r2(t,f1t,g4t,ymt(Wbe)),r2(t,f1t,o0t,ymt(xbe)),r2(t,f1t,s0t,ymt(Rbe)),r2(t,f1t,p4t,ymt(sme)),r2(t,f1t,K1t,ymt(wpe)),r2(t,f1t,l0t,ymt(_be)),r2(t,f1t,n2t,ymt(Kpe)),r2(t,f1t,i2t,ymt(Ype)),r2(t,f1t,b4t,ymt(Cbe)),r2(t,f1t,u0t,ymt(mbe)),r2(t,f1t,x0t,ymt(Obe)),r2(t,f1t,m4t,ymt(Ime)),r2(t,f1t,q1t,ymt(qpe)),r2(t,f1t,X1t,ymt(ome)),r2(t,f1t,I0t,ymt(Qpe)),r2(t,f1t,a0t,ymt(ybe)),r2(t,f1t,p0t,ymt(Fpe)),r2(t,f1t,y4t,ymt(gbe)),r2(t,f1t,r0t,ymt(wbe)),r2(t,f1t,b0t,ymt(jpe)),r2(t,f1t,a2t,ymt(Ipe)),r2(t,f1t,s2t,ymt(Ape)),r2(t,f1t,c2t,ymt(Spe)),r2(t,f1t,l2t,ymt(Tpe)),r2(t,f1t,r2t,ymt(Dpe)),r2(t,f1t,o2t,ymt(Cpe)),r2(t,f1t,t0t,ymt(obe))}function yGt(t,e){var n;return XOe||(XOe=new Om,JOe=new Om,fGt(),fGt(),vpt(n=new _0(4),"\t\n\r\r "),mQ(XOe,ute,n),mQ(JOe,ute,I$t(n)),vpt(n=new _0(4),fte),mQ(XOe,cte,n),mQ(JOe,cte,I$t(n)),vpt(n=new _0(4),fte),mQ(XOe,cte,n),mQ(JOe,cte,I$t(n)),vpt(n=new _0(4),gte),cHt(n,jz(kJ(XOe,cte),117)),mQ(XOe,lte,n),mQ(JOe,lte,I$t(n)),vpt(n=new _0(4),"-.0:AZ__az\xb7\xb7\xc0\xd6\xd8\xf6\xf8\u0131\u0134\u013e\u0141\u0148\u014a\u017e\u0180\u01c3\u01cd\u01f0\u01f4\u01f5\u01fa\u0217\u0250\u02a8\u02bb\u02c1\u02d0\u02d1\u0300\u0345\u0360\u0361\u0386\u038a\u038c\u038c\u038e\u03a1\u03a3\u03ce\u03d0\u03d6\u03da\u03da\u03dc\u03dc\u03de\u03de\u03e0\u03e0\u03e2\u03f3\u0401\u040c\u040e\u044f\u0451\u045c\u045e\u0481\u0483\u0486\u0490\u04c4\u04c7\u04c8\u04cb\u04cc\u04d0\u04eb\u04ee\u04f5\u04f8\u04f9\u0531\u0556\u0559\u0559\u0561\u0586\u0591\u05a1\u05a3\u05b9\u05bb\u05bd\u05bf\u05bf\u05c1\u05c2\u05c4\u05c4\u05d0\u05ea\u05f0\u05f2\u0621\u063a\u0640\u0652\u0660\u0669\u0670\u06b7\u06ba\u06be\u06c0\u06ce\u06d0\u06d3\u06d5\u06e8\u06ea\u06ed\u06f0\u06f9\u0901\u0903\u0905\u0939\u093c\u094d\u0951\u0954\u0958\u0963\u0966\u096f\u0981\u0983\u0985\u098c\u098f\u0990\u0993\u09a8\u09aa\u09b0\u09b2\u09b2\u09b6\u09b9\u09bc\u09bc\u09be\u09c4\u09c7\u09c8\u09cb\u09cd\u09d7\u09d7\u09dc\u09dd\u09df\u09e3\u09e6\u09f1\u0a02\u0a02\u0a05\u0a0a\u0a0f\u0a10\u0a13\u0a28\u0a2a\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3c\u0a3e\u0a42\u0a47\u0a48\u0a4b\u0a4d\u0a59\u0a5c\u0a5e\u0a5e\u0a66\u0a74\u0a81\u0a83\u0a85\u0a8b\u0a8d\u0a8d\u0a8f\u0a91\u0a93\u0aa8\u0aaa\u0ab0\u0ab2\u0ab3\u0ab5\u0ab9\u0abc\u0ac5\u0ac7\u0ac9\u0acb\u0acd\u0ae0\u0ae0\u0ae6\u0aef\u0b01\u0b03\u0b05\u0b0c\u0b0f\u0b10\u0b13\u0b28\u0b2a\u0b30\u0b32\u0b33\u0b36\u0b39\u0b3c\u0b43\u0b47\u0b48\u0b4b\u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f\u0b61\u0b66\u0b6f\u0b82\u0b83\u0b85\u0b8a\u0b8e\u0b90\u0b92\u0b95\u0b99\u0b9a\u0b9c\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8\u0baa\u0bae\u0bb5\u0bb7\u0bb9\u0bbe\u0bc2\u0bc6\u0bc8\u0bca\u0bcd\u0bd7\u0bd7\u0be7\u0bef\u0c01\u0c03\u0c05\u0c0c\u0c0e\u0c10\u0c12\u0c28\u0c2a\u0c33\u0c35\u0c39\u0c3e\u0c44\u0c46\u0c48\u0c4a\u0c4d\u0c55\u0c56\u0c60\u0c61\u0c66\u0c6f\u0c82\u0c83\u0c85\u0c8c\u0c8e\u0c90\u0c92\u0ca8\u0caa\u0cb3\u0cb5\u0cb9\u0cbe\u0cc4\u0cc6\u0cc8\u0cca\u0ccd\u0cd5\u0cd6\u0cde\u0cde\u0ce0\u0ce1\u0ce6\u0cef\u0d02\u0d03\u0d05\u0d0c\u0d0e\u0d10\u0d12\u0d28\u0d2a\u0d39\u0d3e\u0d43\u0d46\u0d48\u0d4a\u0d4d\u0d57\u0d57\u0d60\u0d61\u0d66\u0d6f\u0e01\u0e2e\u0e30\u0e3a\u0e40\u0e4e\u0e50\u0e59\u0e81\u0e82\u0e84\u0e84\u0e87\u0e88\u0e8a\u0e8a\u0e8d\u0e8d\u0e94\u0e97\u0e99\u0e9f\u0ea1\u0ea3\u0ea5\u0ea5\u0ea7\u0ea7\u0eaa\u0eab\u0ead\u0eae\u0eb0\u0eb9\u0ebb\u0ebd\u0ec0\u0ec4\u0ec6\u0ec6\u0ec8\u0ecd\u0ed0\u0ed9\u0f18\u0f19\u0f20\u0f29\u0f35\u0f35\u0f37\u0f37\u0f39\u0f39\u0f3e\u0f47\u0f49\u0f69\u0f71\u0f84\u0f86\u0f8b\u0f90\u0f95\u0f97\u0f97\u0f99\u0fad\u0fb1\u0fb7\u0fb9\u0fb9\u10a0\u10c5\u10d0\u10f6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110b\u110c\u110e\u1112\u113c\u113c\u113e\u113e\u1140\u1140\u114c\u114c\u114e\u114e\u1150\u1150\u1154\u1155\u1159\u1159\u115f\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116d\u116e\u1172\u1173\u1175\u1175\u119e\u119e\u11a8\u11a8\u11ab\u11ab\u11ae\u11af\u11b7\u11b8\u11ba\u11ba\u11bc\u11c2\u11eb\u11eb\u11f0\u11f0\u11f9\u11f9\u1e00\u1e9b\u1ea0\u1ef9\u1f00\u1f15\u1f18\u1f1d\u1f20\u1f45\u1f48\u1f4d\u1f50\u1f57\u1f59\u1f59\u1f5b\u1f5b\u1f5d\u1f5d\u1f5f\u1f7d\u1f80\u1fb4\u1fb6\u1fbc\u1fbe\u1fbe\u1fc2\u1fc4\u1fc6\u1fcc\u1fd0\u1fd3\u1fd6\u1fdb\u1fe0\u1fec\u1ff2\u1ff4\u1ff6\u1ffc\u20d0\u20dc\u20e1\u20e1\u2126\u2126\u212a\u212b\u212e\u212e\u2180\u2182\u3005\u3005\u3007\u3007\u3021\u302f\u3031\u3035\u3041\u3094\u3099\u309a\u309d\u309e\u30a1\u30fa\u30fc\u30fe\u3105\u312c\u4e00\u9fa5\uac00\ud7a3"),mQ(XOe,dte,n),mQ(JOe,dte,I$t(n)),vpt(n=new _0(4),gte),KNt(n,95,95),KNt(n,58,58),mQ(XOe,hte,n),mQ(JOe,hte,I$t(n))),jz(kJ(e?XOe:JOe,t),136)}function vGt(t){GLt(t.a,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"anySimpleType"])),GLt(t.b,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"anyType",j8t,P8t])),GLt(jz(Yet(GK(t.b),0),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,y9t,t5t,":mixed"])),GLt(jz(Yet(GK(t.b),1),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,y9t,k9t,C9t,t5t,":1",N9t,"lax"])),GLt(jz(Yet(GK(t.b),2),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,b9t,k9t,C9t,t5t,":2",N9t,"lax"])),GLt(t.c,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"anyURI",_9t,v9t])),GLt(t.d,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"base64Binary",_9t,v9t])),GLt(t.e,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,IGt,_9t,v9t])),GLt(t.f,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"boolean:Object",X8t,IGt])),GLt(t.g,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,E8t])),GLt(t.i,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"byte:Object",X8t,E8t])),GLt(t.j,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"date",_9t,v9t])),GLt(t.k,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"dateTime",_9t,v9t])),GLt(t.n,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"decimal",_9t,v9t])),GLt(t.o,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,S8t,_9t,v9t])),GLt(t.p,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"double:Object",X8t,S8t])),GLt(t.q,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"duration",_9t,v9t])),GLt(t.s,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"ENTITIES",X8t,B9t,P9t,"1"])),GLt(t.r,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,B9t,w9t,F9t])),GLt(t.t,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,F9t,X8t,j9t])),GLt(t.u,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,T8t,_9t,v9t])),GLt(t.v,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"float:Object",X8t,T8t])),GLt(t.w,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"gDay",_9t,v9t])),GLt(t.B,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"gMonth",_9t,v9t])),GLt(t.A,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"gMonthDay",_9t,v9t])),GLt(t.C,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"gYear",_9t,v9t])),GLt(t.D,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"gYearMonth",_9t,v9t])),GLt(t.F,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"hexBinary",_9t,v9t])),GLt(t.G,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"ID",X8t,j9t])),GLt(t.H,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"IDREF",X8t,j9t])),GLt(t.J,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"IDREFS",X8t,$9t,P9t,"1"])),GLt(t.I,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,$9t,w9t,"IDREF"])),GLt(t.K,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,A8t])),GLt(t.M,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,z9t])),GLt(t.L,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"int:Object",X8t,A8t])),GLt(t.P,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"language",X8t,H9t,U9t,V9t])),GLt(t.Q,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,D8t])),GLt(t.R,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"long:Object",X8t,D8t])),GLt(t.S,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"Name",X8t,H9t,U9t,q9t])),GLt(t.T,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,j9t,X8t,"Name",U9t,W9t])),GLt(t.U,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"negativeInteger",X8t,Y9t,G9t,"-1"])),GLt(t.V,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,Z9t,X8t,H9t,U9t,"\\c+"])),GLt(t.X,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"NMTOKENS",X8t,K9t,P9t,"1"])),GLt(t.W,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,K9t,w9t,Z9t])),GLt(t.Y,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,X9t,X8t,z9t,J9t,"0"])),GLt(t.Z,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,Y9t,X8t,z9t,G9t,"0"])),GLt(t.$,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,Q9t,X8t,OGt,_9t,"replace"])),GLt(t._,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"NOTATION",_9t,v9t])),GLt(t.ab,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"positiveInteger",X8t,X9t,J9t,"1"])),GLt(t.bb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"processingInstruction_._type",j8t,"empty"])),GLt(jz(Yet(GK(t.bb),0),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,p9t,t5t,"data"])),GLt(jz(Yet(GK(t.bb),1),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,p9t,t5t,K7t])),GLt(t.cb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"QName",_9t,v9t])),GLt(t.db,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,I8t])),GLt(t.eb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"short:Object",X8t,I8t])),GLt(t.fb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"simpleAnyType",j8t,g9t])),GLt(jz(Yet(GK(t.fb),0),34),F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,":3",j8t,g9t])),GLt(jz(Yet(GK(t.fb),1),34),F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,":4",j8t,g9t])),GLt(jz(Yet(GK(t.fb),2),18),F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,":5",j8t,g9t])),GLt(t.gb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,OGt,_9t,"preserve"])),GLt(t.hb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"time",_9t,v9t])),GLt(t.ib,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,H9t,X8t,Q9t,_9t,v9t])),GLt(t.jb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,tte,G9t,"255",J9t,"0"])),GLt(t.kb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"unsignedByte:Object",X8t,tte])),GLt(t.lb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,ete,G9t,"4294967295",J9t,"0"])),GLt(t.mb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"unsignedInt:Object",X8t,ete])),GLt(t.nb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"unsignedLong",X8t,X9t,G9t,nte,J9t,"0"])),GLt(t.ob,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,ite,G9t,"65535",J9t,"0"])),GLt(t.pb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"unsignedShort:Object",X8t,ite])),GLt(t.qb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"",j8t,P8t])),GLt(jz(Yet(GK(t.qb),0),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,y9t,t5t,":mixed"])),GLt(jz(Yet(GK(t.qb),1),18),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,p9t,t5t,"xmlns:prefix"])),GLt(jz(Yet(GK(t.qb),2),18),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,p9t,t5t,"xsi:schemaLocation"])),GLt(jz(Yet(GK(t.qb),3),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,m9t,t5t,"cDATA",x9t,R9t])),GLt(jz(Yet(GK(t.qb),4),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,m9t,t5t,"comment",x9t,R9t])),GLt(jz(Yet(GK(t.qb),5),18),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,m9t,t5t,ate,x9t,R9t])),GLt(jz(Yet(GK(t.qb),6),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,m9t,t5t,A7t,x9t,R9t]))}function wGt(t){return mF("_UI_EMFDiagnostic_marker",t)?"EMF Problem":mF("_UI_CircularContainment_diagnostic",t)?"An object may not circularly contain itself":mF(f5t,t)?"Wrong character.":mF(g5t,t)?"Invalid reference number.":mF(p5t,t)?"A character is required after \\.":mF(b5t,t)?"'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?":mF(m5t,t)?"'(?<' or '(?<!' is expected.":mF(y5t,t)?"A comment is not terminated.":mF(v5t,t)?"')' is expected.":mF(w5t,t)?"Unexpected end of the pattern in a modifier group.":mF(x5t,t)?"':' is expected.":mF(R5t,t)?"Unexpected end of the pattern in a conditional group.":mF(_5t,t)?"A back reference or an anchor or a lookahead or a look-behind is expected in a conditional pattern.":mF(k5t,t)?"There are more than three choices in a conditional group.":mF(E5t,t)?"A character in U+0040-U+005f must follow \\c.":mF(C5t,t)?"A '{' is required before a character category.":mF(S5t,t)?"A property name is not closed by '}'.":mF(T5t,t)?"Unexpected meta character.":mF(A5t,t)?"Unknown property.":mF(D5t,t)?"A POSIX character class must be closed by ':]'.":mF(I5t,t)?"Unexpected end of the pattern in a character class.":mF(L5t,t)?"Unknown name for a POSIX character class.":mF("parser.cc.4",t)?"'-' is invalid here.":mF(O5t,t)?"']' is expected.":mF(M5t,t)?"'[' is invalid in a character class. Write '\\['.":mF(N5t,t)?"']' is invalid in a character class. Write '\\]'.":mF(B5t,t)?"'-' is an invalid character range. Write '\\-'.":mF(P5t,t)?"'[' is expected.":mF(F5t,t)?"')' or '-[' or '+[' or '&[' is expected.":mF(j5t,t)?"The range end code point is less than the start code point.":mF($5t,t)?"Invalid Unicode hex notation.":mF(z5t,t)?"Overflow in a hex notation.":mF(H5t,t)?"'\\x{' must be closed by '}'.":mF(U5t,t)?"Invalid Unicode code point.":mF(V5t,t)?"An anchor must not be here.":mF(q5t,t)?"This expression is not supported in the current option setting.":mF(W5t,t)?"Invalid quantifier. A digit is expected.":mF(Y5t,t)?"Invalid quantifier. Invalid quantity or a '}' is missing.":mF(G5t,t)?"Invalid quantifier. A digit or '}' is expected.":mF(Z5t,t)?"Invalid quantifier. A min quantity must be <= a max quantity.":mF(K5t,t)?"Invalid quantifier. A quantity value overflow.":mF("_UI_PackageRegistry_extensionpoint",t)?"Ecore Package Registry for Generated Packages":mF("_UI_DynamicPackageRegistry_extensionpoint",t)?"Ecore Package Registry for Dynamic Packages":mF("_UI_FactoryRegistry_extensionpoint",t)?"Ecore Factory Override Registry":mF("_UI_URIExtensionParserRegistry_extensionpoint",t)?"URI Extension Parser Registry":mF("_UI_URIProtocolParserRegistry_extensionpoint",t)?"URI Protocol Parser Registry":mF("_UI_URIContentParserRegistry_extensionpoint",t)?"URI Content Parser Registry":mF("_UI_ContentHandlerRegistry_extensionpoint",t)?"Content Handler Registry":mF("_UI_URIMappingRegistry_extensionpoint",t)?"URI Converter Mapping Registry":mF("_UI_PackageRegistryImplementation_extensionpoint",t)?"Ecore Package Registry Implementation":mF("_UI_ValidationDelegateRegistry_extensionpoint",t)?"Validation Delegate Registry":mF("_UI_SettingDelegateRegistry_extensionpoint",t)?"Feature Setting Delegate Factory Registry":mF("_UI_InvocationDelegateRegistry_extensionpoint",t)?"Operation Invocation Delegate Factory Registry":mF("_UI_EClassInterfaceNotAbstract_diagnostic",t)?"A class that is an interface must also be abstract":mF("_UI_EClassNoCircularSuperTypes_diagnostic",t)?"A class may not be a super type of itself":mF("_UI_EClassNotWellFormedMapEntryNoInstanceClassName_diagnostic",t)?"A class that inherits from a map entry class must have instance class name 'java.util.Map$Entry'":mF("_UI_EReferenceOppositeOfOppositeInconsistent_diagnostic",t)?"The opposite of the opposite may not be a reference different from this one":mF("_UI_EReferenceOppositeNotFeatureOfType_diagnostic",t)?"The opposite must be a feature of the reference's type":mF("_UI_EReferenceTransientOppositeNotTransient_diagnostic",t)?"The opposite of a transient reference must be transient if it is proxy resolving":mF("_UI_EReferenceOppositeBothContainment_diagnostic",t)?"The opposite of a containment reference must not be a containment reference":mF("_UI_EReferenceConsistentUnique_diagnostic",t)?"A containment or bidirectional reference must be unique if its upper bound is different from 1":mF("_UI_ETypedElementNoType_diagnostic",t)?"The typed element must have a type":mF("_UI_EAttributeNoDataType_diagnostic",t)?"The generic attribute type must not refer to a class":mF("_UI_EReferenceNoClass_diagnostic",t)?"The generic reference type must not refer to a data type":mF("_UI_EGenericTypeNoTypeParameterAndClassifier_diagnostic",t)?"A generic type can't refer to both a type parameter and a classifier":mF("_UI_EGenericTypeNoClass_diagnostic",t)?"A generic super type must refer to a class":mF("_UI_EGenericTypeNoTypeParameterOrClassifier_diagnostic",t)?"A generic type in this context must refer to a classifier or a type parameter":mF("_UI_EGenericTypeBoundsOnlyForTypeArgument_diagnostic",t)?"A generic type may have bounds only when used as a type argument":mF("_UI_EGenericTypeNoUpperAndLowerBound_diagnostic",t)?"A generic type must not have both a lower and an upper bound":mF("_UI_EGenericTypeNoTypeParameterOrClassifierAndBound_diagnostic",t)?"A generic type with bounds must not also refer to a type parameter or classifier":mF("_UI_EGenericTypeNoArguments_diagnostic",t)?"A generic type may have arguments only if it refers to a classifier":mF("_UI_EGenericTypeOutOfScopeTypeParameter_diagnostic",t)?"A generic type may only refer to a type parameter that is in scope":t}function xGt(t){var e,n,i,a,r,o,s;t.r||(t.r=!0,Oat(t,"graph"),Mat(t,"graph"),Nat(t,v7t),ast(t.o,"T"),l8(vX(t.a),t.p),l8(vX(t.f),t.a),l8(vX(t.n),t.f),l8(vX(t.g),t.n),l8(vX(t.c),t.n),l8(vX(t.i),t.c),l8(vX(t.j),t.c),l8(vX(t.d),t.f),l8(vX(t.e),t.a),U0(t.p,qae,AJt,!0,!0,!1),s=_st(o=ylt(t.p,t.p,"setProperty")),e=XZ(t.o),n=new Bm,l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),w_t(n,i=JZ(s)),qRt(o,e,x7t),qRt(o,e=JZ(s),R7t),s=_st(o=ylt(t.p,null,"getProperty")),e=XZ(t.o),n=JZ(s),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),qRt(o,e,x7t),(r=zkt(o,e=JZ(s),null))&&r.Fi(),o=ylt(t.p,t.wb.e,"hasProperty"),e=XZ(t.o),n=new Bm,l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),qRt(o,e,x7t),Iwt(o=ylt(t.p,t.p,"copyProperties"),t.p,_7t),o=ylt(t.p,null,"getAllProperties"),e=XZ(t.wb.P),n=XZ(t.o),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),i=new Bm,l8((!n.d&&(n.d=new DO(WIe,n,1)),n.d),i),n=XZ(t.wb.M),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),(a=zkt(o,e,null))&&a.Fi(),U0(t.a,IDe,V6t,!0,!1,!0),kwt(jz(Yet(GK(t.a),0),18),t.k,null,k7t,0,-1,IDe,!1,!1,!0,!0,!1,!1,!1),U0(t.f,ODe,W6t,!0,!1,!0),kwt(jz(Yet(GK(t.f),0),18),t.g,jz(Yet(GK(t.g),0),18),"labels",0,-1,ODe,!1,!1,!0,!0,!1,!1,!1),ort(jz(Yet(GK(t.f),1),34),t.wb._,E7t,null,0,1,ODe,!1,!1,!0,!1,!0,!1),U0(t.n,MDe,"ElkShape",!0,!1,!0),ort(jz(Yet(GK(t.n),0),34),t.wb.t,C7t,YKt,1,1,MDe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.n),1),34),t.wb.t,S7t,YKt,1,1,MDe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.n),2),34),t.wb.t,"x",YKt,1,1,MDe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.n),3),34),t.wb.t,"y",YKt,1,1,MDe,!1,!1,!0,!1,!0,!1),Iwt(o=ylt(t.n,null,"setDimensions"),t.wb.t,S7t),Iwt(o,t.wb.t,C7t),Iwt(o=ylt(t.n,null,"setLocation"),t.wb.t,"x"),Iwt(o,t.wb.t,"y"),U0(t.g,HDe,J6t,!1,!1,!0),kwt(jz(Yet(GK(t.g),0),18),t.f,jz(Yet(GK(t.f),0),18),T7t,0,1,HDe,!1,!1,!0,!1,!1,!1,!1),ort(jz(Yet(GK(t.g),1),34),t.wb._,A7t,"",0,1,HDe,!1,!1,!0,!1,!0,!1),U0(t.c,NDe,Y6t,!0,!1,!0),kwt(jz(Yet(GK(t.c),0),18),t.d,jz(Yet(GK(t.d),1),18),"outgoingEdges",0,-1,NDe,!1,!1,!0,!1,!0,!1,!1),kwt(jz(Yet(GK(t.c),1),18),t.d,jz(Yet(GK(t.d),2),18),"incomingEdges",0,-1,NDe,!1,!1,!0,!1,!0,!1,!1),U0(t.i,UDe,Q6t,!1,!1,!0),kwt(jz(Yet(GK(t.i),0),18),t.j,jz(Yet(GK(t.j),0),18),"ports",0,-1,UDe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.i),1),18),t.i,jz(Yet(GK(t.i),2),18),D7t,0,-1,UDe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.i),2),18),t.i,jz(Yet(GK(t.i),1),18),T7t,0,1,UDe,!1,!1,!0,!1,!1,!1,!1),kwt(jz(Yet(GK(t.i),3),18),t.d,jz(Yet(GK(t.d),0),18),"containedEdges",0,-1,UDe,!1,!1,!0,!0,!1,!1,!1),ort(jz(Yet(GK(t.i),4),34),t.wb.e,I7t,null,0,1,UDe,!0,!0,!1,!1,!0,!0),U0(t.j,VDe,t7t,!1,!1,!0),kwt(jz(Yet(GK(t.j),0),18),t.i,jz(Yet(GK(t.i),0),18),T7t,0,1,VDe,!1,!1,!0,!1,!1,!1,!1),U0(t.d,BDe,G6t,!1,!1,!0),kwt(jz(Yet(GK(t.d),0),18),t.i,jz(Yet(GK(t.i),3),18),"containingNode",0,1,BDe,!1,!1,!0,!1,!1,!1,!1),kwt(jz(Yet(GK(t.d),1),18),t.c,jz(Yet(GK(t.c),0),18),L7t,0,-1,BDe,!1,!1,!0,!1,!0,!1,!1),kwt(jz(Yet(GK(t.d),2),18),t.c,jz(Yet(GK(t.c),1),18),O7t,0,-1,BDe,!1,!1,!0,!1,!0,!1,!1),kwt(jz(Yet(GK(t.d),3),18),t.e,jz(Yet(GK(t.e),5),18),M7t,0,-1,BDe,!1,!1,!0,!0,!1,!1,!1),ort(jz(Yet(GK(t.d),4),34),t.wb.e,"hyperedge",null,0,1,BDe,!0,!0,!1,!1,!0,!0),ort(jz(Yet(GK(t.d),5),34),t.wb.e,I7t,null,0,1,BDe,!0,!0,!1,!1,!0,!0),ort(jz(Yet(GK(t.d),6),34),t.wb.e,"selfloop",null,0,1,BDe,!0,!0,!1,!1,!0,!0),ort(jz(Yet(GK(t.d),7),34),t.wb.e,"connected",null,0,1,BDe,!0,!0,!1,!1,!0,!0),U0(t.b,LDe,q6t,!1,!1,!0),ort(jz(Yet(GK(t.b),0),34),t.wb.t,"x",YKt,1,1,LDe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.b),1),34),t.wb.t,"y",YKt,1,1,LDe,!1,!1,!0,!1,!0,!1),Iwt(o=ylt(t.b,null,"set"),t.wb.t,"x"),Iwt(o,t.wb.t,"y"),U0(t.e,PDe,Z6t,!1,!1,!0),ort(jz(Yet(GK(t.e),0),34),t.wb.t,"startX",null,0,1,PDe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.e),1),34),t.wb.t,"startY",null,0,1,PDe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.e),2),34),t.wb.t,"endX",null,0,1,PDe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.e),3),34),t.wb.t,"endY",null,0,1,PDe,!1,!1,!0,!1,!0,!1),kwt(jz(Yet(GK(t.e),4),18),t.b,null,N7t,0,-1,PDe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.e),5),18),t.d,jz(Yet(GK(t.d),3),18),T7t,0,1,PDe,!1,!1,!0,!1,!1,!1,!1),kwt(jz(Yet(GK(t.e),6),18),t.c,null,B7t,0,1,PDe,!1,!1,!0,!1,!0,!1,!1),kwt(jz(Yet(GK(t.e),7),18),t.c,null,P7t,0,1,PDe,!1,!1,!0,!1,!0,!1,!1),kwt(jz(Yet(GK(t.e),8),18),t.e,jz(Yet(GK(t.e),9),18),F7t,0,-1,PDe,!1,!1,!0,!1,!0,!1,!1),kwt(jz(Yet(GK(t.e),9),18),t.e,jz(Yet(GK(t.e),8),18),j7t,0,-1,PDe,!1,!1,!0,!1,!0,!1,!1),ort(jz(Yet(GK(t.e),10),34),t.wb._,E7t,null,0,1,PDe,!1,!1,!0,!1,!0,!1),Iwt(o=ylt(t.e,null,"setStartLocation"),t.wb.t,"x"),Iwt(o,t.wb.t,"y"),Iwt(o=ylt(t.e,null,"setEndLocation"),t.wb.t,"x"),Iwt(o,t.wb.t,"y"),U0(t.k,zte,"ElkPropertyToValueMapEntry",!1,!1,!1),e=XZ(t.o),n=new Bm,l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),FDt(jz(Yet(GK(t.k),0),34),e,"key",zte,!1,!1,!0,!1),ort(jz(Yet(GK(t.k),1),34),t.s,R7t,null,0,1,zte,!1,!1,!0,!1,!0,!1),fZ(t.o,rEe,"IProperty",!0),fZ(t.s,Dte,"PropertyValue",!0),Lut(t,v7t))}function RGt(){RGt=D,(ZOe=O5(IMe,m7t,25,$Kt,15,1))[9]=35,ZOe[10]=19,ZOe[13]=19,ZOe[32]=51,ZOe[33]=49,ZOe[34]=33,yW(ZOe,35,38,49),ZOe[38]=1,yW(ZOe,39,45,49),yW(ZOe,45,47,-71),ZOe[47]=49,yW(ZOe,48,58,-71),ZOe[58]=61,ZOe[59]=49,ZOe[60]=1,ZOe[61]=49,ZOe[62]=33,yW(ZOe,63,65,49),yW(ZOe,65,91,-3),yW(ZOe,91,93,33),ZOe[93]=1,ZOe[94]=33,ZOe[95]=-3,ZOe[96]=33,yW(ZOe,97,123,-3),yW(ZOe,123,183,33),ZOe[183]=-87,yW(ZOe,184,192,33),yW(ZOe,192,215,-19),ZOe[215]=33,yW(ZOe,216,247,-19),ZOe[247]=33,yW(ZOe,248,306,-19),yW(ZOe,306,308,33),yW(ZOe,308,319,-19),yW(ZOe,319,321,33),yW(ZOe,321,329,-19),ZOe[329]=33,yW(ZOe,330,383,-19),ZOe[383]=33,yW(ZOe,384,452,-19),yW(ZOe,452,461,33),yW(ZOe,461,497,-19),yW(ZOe,497,500,33),yW(ZOe,500,502,-19),yW(ZOe,502,506,33),yW(ZOe,506,536,-19),yW(ZOe,536,592,33),yW(ZOe,592,681,-19),yW(ZOe,681,699,33),yW(ZOe,699,706,-19),yW(ZOe,706,720,33),yW(ZOe,720,722,-87),yW(ZOe,722,768,33),yW(ZOe,768,838,-87),yW(ZOe,838,864,33),yW(ZOe,864,866,-87),yW(ZOe,866,902,33),ZOe[902]=-19,ZOe[903]=-87,yW(ZOe,904,907,-19),ZOe[907]=33,ZOe[908]=-19,ZOe[909]=33,yW(ZOe,910,930,-19),ZOe[930]=33,yW(ZOe,931,975,-19),ZOe[975]=33,yW(ZOe,976,983,-19),yW(ZOe,983,986,33),ZOe[986]=-19,ZOe[987]=33,ZOe[988]=-19,ZOe[989]=33,ZOe[990]=-19,ZOe[991]=33,ZOe[992]=-19,ZOe[993]=33,yW(ZOe,994,1012,-19),yW(ZOe,1012,1025,33),yW(ZOe,1025,1037,-19),ZOe[1037]=33,yW(ZOe,1038,1104,-19),ZOe[1104]=33,yW(ZOe,1105,1117,-19),ZOe[1117]=33,yW(ZOe,1118,1154,-19),ZOe[1154]=33,yW(ZOe,1155,1159,-87),yW(ZOe,1159,1168,33),yW(ZOe,1168,1221,-19),yW(ZOe,1221,1223,33),yW(ZOe,1223,1225,-19),yW(ZOe,1225,1227,33),yW(ZOe,1227,1229,-19),yW(ZOe,1229,1232,33),yW(ZOe,1232,1260,-19),yW(ZOe,1260,1262,33),yW(ZOe,1262,1270,-19),yW(ZOe,1270,1272,33),yW(ZOe,1272,1274,-19),yW(ZOe,1274,1329,33),yW(ZOe,1329,1367,-19),yW(ZOe,1367,1369,33),ZOe[1369]=-19,yW(ZOe,1370,1377,33),yW(ZOe,1377,1415,-19),yW(ZOe,1415,1425,33),yW(ZOe,1425,1442,-87),ZOe[1442]=33,yW(ZOe,1443,1466,-87),ZOe[1466]=33,yW(ZOe,1467,1470,-87),ZOe[1470]=33,ZOe[1471]=-87,ZOe[1472]=33,yW(ZOe,1473,1475,-87),ZOe[1475]=33,ZOe[1476]=-87,yW(ZOe,1477,1488,33),yW(ZOe,1488,1515,-19),yW(ZOe,1515,1520,33),yW(ZOe,1520,1523,-19),yW(ZOe,1523,1569,33),yW(ZOe,1569,1595,-19),yW(ZOe,1595,1600,33),ZOe[1600]=-87,yW(ZOe,1601,1611,-19),yW(ZOe,1611,1619,-87),yW(ZOe,1619,1632,33),yW(ZOe,1632,1642,-87),yW(ZOe,1642,1648,33),ZOe[1648]=-87,yW(ZOe,1649,1720,-19),yW(ZOe,1720,1722,33),yW(ZOe,1722,1727,-19),ZOe[1727]=33,yW(ZOe,1728,1743,-19),ZOe[1743]=33,yW(ZOe,1744,1748,-19),ZOe[1748]=33,ZOe[1749]=-19,yW(ZOe,1750,1765,-87),yW(ZOe,1765,1767,-19),yW(ZOe,1767,1769,-87),ZOe[1769]=33,yW(ZOe,1770,1774,-87),yW(ZOe,1774,1776,33),yW(ZOe,1776,1786,-87),yW(ZOe,1786,2305,33),yW(ZOe,2305,2308,-87),ZOe[2308]=33,yW(ZOe,2309,2362,-19),yW(ZOe,2362,2364,33),ZOe[2364]=-87,ZOe[2365]=-19,yW(ZOe,2366,2382,-87),yW(ZOe,2382,2385,33),yW(ZOe,2385,2389,-87),yW(ZOe,2389,2392,33),yW(ZOe,2392,2402,-19),yW(ZOe,2402,2404,-87),yW(ZOe,2404,2406,33),yW(ZOe,2406,2416,-87),yW(ZOe,2416,2433,33),yW(ZOe,2433,2436,-87),ZOe[2436]=33,yW(ZOe,2437,2445,-19),yW(ZOe,2445,2447,33),yW(ZOe,2447,2449,-19),yW(ZOe,2449,2451,33),yW(ZOe,2451,2473,-19),ZOe[2473]=33,yW(ZOe,2474,2481,-19),ZOe[2481]=33,ZOe[2482]=-19,yW(ZOe,2483,2486,33),yW(ZOe,2486,2490,-19),yW(ZOe,2490,2492,33),ZOe[2492]=-87,ZOe[2493]=33,yW(ZOe,2494,2501,-87),yW(ZOe,2501,2503,33),yW(ZOe,2503,2505,-87),yW(ZOe,2505,2507,33),yW(ZOe,2507,2510,-87),yW(ZOe,2510,2519,33),ZOe[2519]=-87,yW(ZOe,2520,2524,33),yW(ZOe,2524,2526,-19),ZOe[2526]=33,yW(ZOe,2527,2530,-19),yW(ZOe,2530,2532,-87),yW(ZOe,2532,2534,33),yW(ZOe,2534,2544,-87),yW(ZOe,2544,2546,-19),yW(ZOe,2546,2562,33),ZOe[2562]=-87,yW(ZOe,2563,2565,33),yW(ZOe,2565,2571,-19),yW(ZOe,2571,2575,33),yW(ZOe,2575,2577,-19),yW(ZOe,2577,2579,33),yW(ZOe,2579,2601,-19),ZOe[2601]=33,yW(ZOe,2602,2609,-19),ZOe[2609]=33,yW(ZOe,2610,2612,-19),ZOe[2612]=33,yW(ZOe,2613,2615,-19),ZOe[2615]=33,yW(ZOe,2616,2618,-19),yW(ZOe,2618,2620,33),ZOe[2620]=-87,ZOe[2621]=33,yW(ZOe,2622,2627,-87),yW(ZOe,2627,2631,33),yW(ZOe,2631,2633,-87),yW(ZOe,2633,2635,33),yW(ZOe,2635,2638,-87),yW(ZOe,2638,2649,33),yW(ZOe,2649,2653,-19),ZOe[2653]=33,ZOe[2654]=-19,yW(ZOe,2655,2662,33),yW(ZOe,2662,2674,-87),yW(ZOe,2674,2677,-19),yW(ZOe,2677,2689,33),yW(ZOe,2689,2692,-87),ZOe[2692]=33,yW(ZOe,2693,2700,-19),ZOe[2700]=33,ZOe[2701]=-19,ZOe[2702]=33,yW(ZOe,2703,2706,-19),ZOe[2706]=33,yW(ZOe,2707,2729,-19),ZOe[2729]=33,yW(ZOe,2730,2737,-19),ZOe[2737]=33,yW(ZOe,2738,2740,-19),ZOe[2740]=33,yW(ZOe,2741,2746,-19),yW(ZOe,2746,2748,33),ZOe[2748]=-87,ZOe[2749]=-19,yW(ZOe,2750,2758,-87),ZOe[2758]=33,yW(ZOe,2759,2762,-87),ZOe[2762]=33,yW(ZOe,2763,2766,-87),yW(ZOe,2766,2784,33),ZOe[2784]=-19,yW(ZOe,2785,2790,33),yW(ZOe,2790,2800,-87),yW(ZOe,2800,2817,33),yW(ZOe,2817,2820,-87),ZOe[2820]=33,yW(ZOe,2821,2829,-19),yW(ZOe,2829,2831,33),yW(ZOe,2831,2833,-19),yW(ZOe,2833,2835,33),yW(ZOe,2835,2857,-19),ZOe[2857]=33,yW(ZOe,2858,2865,-19),ZOe[2865]=33,yW(ZOe,2866,2868,-19),yW(ZOe,2868,2870,33),yW(ZOe,2870,2874,-19),yW(ZOe,2874,2876,33),ZOe[2876]=-87,ZOe[2877]=-19,yW(ZOe,2878,2884,-87),yW(ZOe,2884,2887,33),yW(ZOe,2887,2889,-87),yW(ZOe,2889,2891,33),yW(ZOe,2891,2894,-87),yW(ZOe,2894,2902,33),yW(ZOe,2902,2904,-87),yW(ZOe,2904,2908,33),yW(ZOe,2908,2910,-19),ZOe[2910]=33,yW(ZOe,2911,2914,-19),yW(ZOe,2914,2918,33),yW(ZOe,2918,2928,-87),yW(ZOe,2928,2946,33),yW(ZOe,2946,2948,-87),ZOe[2948]=33,yW(ZOe,2949,2955,-19),yW(ZOe,2955,2958,33),yW(ZOe,2958,2961,-19),ZOe[2961]=33,yW(ZOe,2962,2966,-19),yW(ZOe,2966,2969,33),yW(ZOe,2969,2971,-19),ZOe[2971]=33,ZOe[2972]=-19,ZOe[2973]=33,yW(ZOe,2974,2976,-19),yW(ZOe,2976,2979,33),yW(ZOe,2979,2981,-19),yW(ZOe,2981,2984,33),yW(ZOe,2984,2987,-19),yW(ZOe,2987,2990,33),yW(ZOe,2990,2998,-19),ZOe[2998]=33,yW(ZOe,2999,3002,-19),yW(ZOe,3002,3006,33),yW(ZOe,3006,3011,-87),yW(ZOe,3011,3014,33),yW(ZOe,3014,3017,-87),ZOe[3017]=33,yW(ZOe,3018,3022,-87),yW(ZOe,3022,3031,33),ZOe[3031]=-87,yW(ZOe,3032,3047,33),yW(ZOe,3047,3056,-87),yW(ZOe,3056,3073,33),yW(ZOe,3073,3076,-87),ZOe[3076]=33,yW(ZOe,3077,3085,-19),ZOe[3085]=33,yW(ZOe,3086,3089,-19),ZOe[3089]=33,yW(ZOe,3090,3113,-19),ZOe[3113]=33,yW(ZOe,3114,3124,-19),ZOe[3124]=33,yW(ZOe,3125,3130,-19),yW(ZOe,3130,3134,33),yW(ZOe,3134,3141,-87),ZOe[3141]=33,yW(ZOe,3142,3145,-87),ZOe[3145]=33,yW(ZOe,3146,3150,-87),yW(ZOe,3150,3157,33),yW(ZOe,3157,3159,-87),yW(ZOe,3159,3168,33),yW(ZOe,3168,3170,-19),yW(ZOe,3170,3174,33),yW(ZOe,3174,3184,-87),yW(ZOe,3184,3202,33),yW(ZOe,3202,3204,-87),ZOe[3204]=33,yW(ZOe,3205,3213,-19),ZOe[3213]=33,yW(ZOe,3214,3217,-19),ZOe[3217]=33,yW(ZOe,3218,3241,-19),ZOe[3241]=33,yW(ZOe,3242,3252,-19),ZOe[3252]=33,yW(ZOe,3253,3258,-19),yW(ZOe,3258,3262,33),yW(ZOe,3262,3269,-87),ZOe[3269]=33,yW(ZOe,3270,3273,-87),ZOe[3273]=33,yW(ZOe,3274,3278,-87),yW(ZOe,3278,3285,33),yW(ZOe,3285,3287,-87),yW(ZOe,3287,3294,33),ZOe[3294]=-19,ZOe[3295]=33,yW(ZOe,3296,3298,-19),yW(ZOe,3298,3302,33),yW(ZOe,3302,3312,-87),yW(ZOe,3312,3330,33),yW(ZOe,3330,3332,-87),ZOe[3332]=33,yW(ZOe,3333,3341,-19),ZOe[3341]=33,yW(ZOe,3342,3345,-19),ZOe[3345]=33,yW(ZOe,3346,3369,-19),ZOe[3369]=33,yW(ZOe,3370,3386,-19),yW(ZOe,3386,3390,33),yW(ZOe,3390,3396,-87),yW(ZOe,3396,3398,33),yW(ZOe,3398,3401,-87),ZOe[3401]=33,yW(ZOe,3402,3406,-87),yW(ZOe,3406,3415,33),ZOe[3415]=-87,yW(ZOe,3416,3424,33),yW(ZOe,3424,3426,-19),yW(ZOe,3426,3430,33),yW(ZOe,3430,3440,-87),yW(ZOe,3440,3585,33),yW(ZOe,3585,3631,-19),ZOe[3631]=33,ZOe[3632]=-19,ZOe[3633]=-87,yW(ZOe,3634,3636,-19),yW(ZOe,3636,3643,-87),yW(ZOe,3643,3648,33),yW(ZOe,3648,3654,-19),yW(ZOe,3654,3663,-87),ZOe[3663]=33,yW(ZOe,3664,3674,-87),yW(ZOe,3674,3713,33),yW(ZOe,3713,3715,-19),ZOe[3715]=33,ZOe[3716]=-19,yW(ZOe,3717,3719,33),yW(ZOe,3719,3721,-19),ZOe[3721]=33,ZOe[3722]=-19,yW(ZOe,3723,3725,33),ZOe[3725]=-19,yW(ZOe,3726,3732,33),yW(ZOe,3732,3736,-19),ZOe[3736]=33,yW(ZOe,3737,3744,-19),ZOe[3744]=33,yW(ZOe,3745,3748,-19),ZOe[3748]=33,ZOe[3749]=-19,ZOe[3750]=33,ZOe[3751]=-19,yW(ZOe,3752,3754,33),yW(ZOe,3754,3756,-19),ZOe[3756]=33,yW(ZOe,3757,3759,-19),ZOe[3759]=33,ZOe[3760]=-19,ZOe[3761]=-87,yW(ZOe,3762,3764,-19),yW(ZOe,3764,3770,-87),ZOe[3770]=33,yW(ZOe,3771,3773,-87),ZOe[3773]=-19,yW(ZOe,3774,3776,33),yW(ZOe,3776,3781,-19),ZOe[3781]=33,ZOe[3782]=-87,ZOe[3783]=33,yW(ZOe,3784,3790,-87),yW(ZOe,3790,3792,33),yW(ZOe,3792,3802,-87),yW(ZOe,3802,3864,33),yW(ZOe,3864,3866,-87),yW(ZOe,3866,3872,33),yW(ZOe,3872,3882,-87),yW(ZOe,3882,3893,33),ZOe[3893]=-87,ZOe[3894]=33,ZOe[3895]=-87,ZOe[3896]=33,ZOe[3897]=-87,yW(ZOe,3898,3902,33),yW(ZOe,3902,3904,-87),yW(ZOe,3904,3912,-19),ZOe[3912]=33,yW(ZOe,3913,3946,-19),yW(ZOe,3946,3953,33),yW(ZOe,3953,3973,-87),ZOe[3973]=33,yW(ZOe,3974,3980,-87),yW(ZOe,3980,3984,33),yW(ZOe,3984,3990,-87),ZOe[3990]=33,ZOe[3991]=-87,ZOe[3992]=33,yW(ZOe,3993,4014,-87),yW(ZOe,4014,4017,33),yW(ZOe,4017,4024,-87),ZOe[4024]=33,ZOe[4025]=-87,yW(ZOe,4026,4256,33),yW(ZOe,4256,4294,-19),yW(ZOe,4294,4304,33),yW(ZOe,4304,4343,-19),yW(ZOe,4343,4352,33),ZOe[4352]=-19,ZOe[4353]=33,yW(ZOe,4354,4356,-19),ZOe[4356]=33,yW(ZOe,4357,4360,-19),ZOe[4360]=33,ZOe[4361]=-19,ZOe[4362]=33,yW(ZOe,4363,4365,-19),ZOe[4365]=33,yW(ZOe,4366,4371,-19),yW(ZOe,4371,4412,33),ZOe[4412]=-19,ZOe[4413]=33,ZOe[4414]=-19,ZOe[4415]=33,ZOe[4416]=-19,yW(ZOe,4417,4428,33),ZOe[4428]=-19,ZOe[4429]=33,ZOe[4430]=-19,ZOe[4431]=33,ZOe[4432]=-19,yW(ZOe,4433,4436,33),yW(ZOe,4436,4438,-19),yW(ZOe,4438,4441,33),ZOe[4441]=-19,yW(ZOe,4442,4447,33),yW(ZOe,4447,4450,-19),ZOe[4450]=33,ZOe[4451]=-19,ZOe[4452]=33,ZOe[4453]=-19,ZOe[4454]=33,ZOe[4455]=-19,ZOe[4456]=33,ZOe[4457]=-19,yW(ZOe,4458,4461,33),yW(ZOe,4461,4463,-19),yW(ZOe,4463,4466,33),yW(ZOe,4466,4468,-19),ZOe[4468]=33,ZOe[4469]=-19,yW(ZOe,4470,4510,33),ZOe[4510]=-19,yW(ZOe,4511,4520,33),ZOe[4520]=-19,yW(ZOe,4521,4523,33),ZOe[4523]=-19,yW(ZOe,4524,4526,33),yW(ZOe,4526,4528,-19),yW(ZOe,4528,4535,33),yW(ZOe,4535,4537,-19),ZOe[4537]=33,ZOe[4538]=-19,ZOe[4539]=33,yW(ZOe,4540,4547,-19),yW(ZOe,4547,4587,33),ZOe[4587]=-19,yW(ZOe,4588,4592,33),ZOe[4592]=-19,yW(ZOe,4593,4601,33),ZOe[4601]=-19,yW(ZOe,4602,7680,33),yW(ZOe,7680,7836,-19),yW(ZOe,7836,7840,33),yW(ZOe,7840,7930,-19),yW(ZOe,7930,7936,33),yW(ZOe,7936,7958,-19),yW(ZOe,7958,7960,33),yW(ZOe,7960,7966,-19),yW(ZOe,7966,7968,33),yW(ZOe,7968,8006,-19),yW(ZOe,8006,8008,33),yW(ZOe,8008,8014,-19),yW(ZOe,8014,8016,33),yW(ZOe,8016,8024,-19),ZOe[8024]=33,ZOe[8025]=-19,ZOe[8026]=33,ZOe[8027]=-19,ZOe[8028]=33,ZOe[8029]=-19,ZOe[8030]=33,yW(ZOe,8031,8062,-19),yW(ZOe,8062,8064,33),yW(ZOe,8064,8117,-19),ZOe[8117]=33,yW(ZOe,8118,8125,-19),ZOe[8125]=33,ZOe[8126]=-19,yW(ZOe,8127,8130,33),yW(ZOe,8130,8133,-19),ZOe[8133]=33,yW(ZOe,8134,8141,-19),yW(ZOe,8141,8144,33),yW(ZOe,8144,8148,-19),yW(ZOe,8148,8150,33),yW(ZOe,8150,8156,-19),yW(ZOe,8156,8160,33),yW(ZOe,8160,8173,-19),yW(ZOe,8173,8178,33),yW(ZOe,8178,8181,-19),ZOe[8181]=33,yW(ZOe,8182,8189,-19),yW(ZOe,8189,8400,33),yW(ZOe,8400,8413,-87),yW(ZOe,8413,8417,33),ZOe[8417]=-87,yW(ZOe,8418,8486,33),ZOe[8486]=-19,yW(ZOe,8487,8490,33),yW(ZOe,8490,8492,-19),yW(ZOe,8492,8494,33),ZOe[8494]=-19,yW(ZOe,8495,8576,33),yW(ZOe,8576,8579,-19),yW(ZOe,8579,12293,33),ZOe[12293]=-87,ZOe[12294]=33,ZOe[12295]=-19,yW(ZOe,12296,12321,33),yW(ZOe,12321,12330,-19),yW(ZOe,12330,12336,-87),ZOe[12336]=33,yW(ZOe,12337,12342,-87),yW(ZOe,12342,12353,33),yW(ZOe,12353,12437,-19),yW(ZOe,12437,12441,33),yW(ZOe,12441,12443,-87),yW(ZOe,12443,12445,33),yW(ZOe,12445,12447,-87),yW(ZOe,12447,12449,33),yW(ZOe,12449,12539,-19),ZOe[12539]=33,yW(ZOe,12540,12543,-87),yW(ZOe,12543,12549,33),yW(ZOe,12549,12589,-19),yW(ZOe,12589,19968,33),yW(ZOe,19968,40870,-19),yW(ZOe,40870,44032,33),yW(ZOe,44032,55204,-19),yW(ZOe,55204,zKt,33),yW(ZOe,57344,65534,33)}function _Gt(t){var e,n,i,a,r,o,s;t.hb||(t.hb=!0,Oat(t,"ecore"),Mat(t,"ecore"),Nat(t,G8t),ast(t.fb,"E"),ast(t.L,"T"),ast(t.P,"K"),ast(t.P,"V"),ast(t.cb,"E"),l8(vX(t.b),t.bb),l8(vX(t.a),t.Q),l8(vX(t.o),t.p),l8(vX(t.p),t.R),l8(vX(t.q),t.p),l8(vX(t.v),t.q),l8(vX(t.w),t.R),l8(vX(t.B),t.Q),l8(vX(t.R),t.Q),l8(vX(t.T),t.eb),l8(vX(t.U),t.R),l8(vX(t.V),t.eb),l8(vX(t.W),t.bb),l8(vX(t.bb),t.eb),l8(vX(t.eb),t.R),l8(vX(t.db),t.R),U0(t.b,FIe,d8t,!1,!1,!0),ort(jz(Yet(GK(t.b),0),34),t.e,"iD",null,0,1,FIe,!1,!1,!0,!1,!0,!1),kwt(jz(Yet(GK(t.b),1),18),t.q,null,"eAttributeType",1,1,FIe,!0,!0,!1,!1,!0,!1,!0),U0(t.a,NIe,c8t,!1,!1,!0),ort(jz(Yet(GK(t.a),0),34),t._,_7t,null,0,1,NIe,!1,!1,!0,!1,!0,!1),kwt(jz(Yet(GK(t.a),1),18),t.ab,null,"details",0,-1,NIe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.a),2),18),t.Q,jz(Yet(GK(t.Q),0),18),"eModelElement",0,1,NIe,!0,!1,!0,!1,!1,!1,!1),kwt(jz(Yet(GK(t.a),3),18),t.S,null,"contents",0,-1,NIe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.a),4),18),t.S,null,"references",0,-1,NIe,!1,!1,!0,!1,!0,!1,!1),U0(t.o,$Ie,"EClass",!1,!1,!0),ort(jz(Yet(GK(t.o),0),34),t.e,"abstract",null,0,1,$Ie,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.o),1),34),t.e,"interface",null,0,1,$Ie,!1,!1,!0,!1,!0,!1),kwt(jz(Yet(GK(t.o),2),18),t.o,null,"eSuperTypes",0,-1,$Ie,!1,!1,!0,!1,!0,!0,!1),kwt(jz(Yet(GK(t.o),3),18),t.T,jz(Yet(GK(t.T),0),18),"eOperations",0,-1,$Ie,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.o),4),18),t.b,null,"eAllAttributes",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.o),5),18),t.W,null,"eAllReferences",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.o),6),18),t.W,null,"eReferences",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.o),7),18),t.b,null,"eAttributes",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.o),8),18),t.W,null,"eAllContainments",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.o),9),18),t.T,null,"eAllOperations",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.o),10),18),t.bb,null,"eAllStructuralFeatures",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.o),11),18),t.o,null,"eAllSuperTypes",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.o),12),18),t.b,null,"eIDAttribute",0,1,$Ie,!0,!0,!1,!1,!1,!1,!0),kwt(jz(Yet(GK(t.o),13),18),t.bb,jz(Yet(GK(t.bb),7),18),"eStructuralFeatures",0,-1,$Ie,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.o),14),18),t.H,null,"eGenericSuperTypes",0,-1,$Ie,!1,!1,!0,!0,!1,!0,!1),kwt(jz(Yet(GK(t.o),15),18),t.H,null,"eAllGenericSuperTypes",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),Iwt(s=uit(jz(Yet(YK(t.o),0),59),t.e,"isSuperTypeOf"),t.o,"someClass"),uit(jz(Yet(YK(t.o),1),59),t.I,"getFeatureCount"),Iwt(s=uit(jz(Yet(YK(t.o),2),59),t.bb,J8t),t.I,"featureID"),Iwt(s=uit(jz(Yet(YK(t.o),3),59),t.I,Q8t),t.bb,t9t),Iwt(s=uit(jz(Yet(YK(t.o),4),59),t.bb,J8t),t._,"featureName"),uit(jz(Yet(YK(t.o),5),59),t.I,"getOperationCount"),Iwt(s=uit(jz(Yet(YK(t.o),6),59),t.T,"getEOperation"),t.I,"operationID"),Iwt(s=uit(jz(Yet(YK(t.o),7),59),t.I,e9t),t.T,n9t),Iwt(s=uit(jz(Yet(YK(t.o),8),59),t.T,"getOverride"),t.T,n9t),Iwt(s=uit(jz(Yet(YK(t.o),9),59),t.H,"getFeatureType"),t.bb,t9t),U0(t.p,jIe,h8t,!0,!1,!0),ort(jz(Yet(GK(t.p),0),34),t._,"instanceClassName",null,0,1,jIe,!1,!0,!0,!0,!0,!1),e=XZ(t.L),n=s2(),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),FDt(jz(Yet(GK(t.p),1),34),e,"instanceClass",jIe,!0,!0,!1,!0),ort(jz(Yet(GK(t.p),2),34),t.M,i9t,null,0,1,jIe,!0,!0,!1,!1,!0,!0),ort(jz(Yet(GK(t.p),3),34),t._,"instanceTypeName",null,0,1,jIe,!1,!0,!0,!0,!0,!1),kwt(jz(Yet(GK(t.p),4),18),t.U,jz(Yet(GK(t.U),3),18),"ePackage",0,1,jIe,!0,!1,!1,!1,!0,!1,!1),kwt(jz(Yet(GK(t.p),5),18),t.db,null,a9t,0,-1,jIe,!1,!1,!0,!0,!0,!1,!1),Iwt(s=uit(jz(Yet(YK(t.p),0),59),t.e,r9t),t.M,DGt),uit(jz(Yet(YK(t.p),1),59),t.I,"getClassifierID"),U0(t.q,zIe,"EDataType",!1,!1,!0),ort(jz(Yet(GK(t.q),0),34),t.e,"serializable",r6t,0,1,zIe,!1,!1,!0,!1,!0,!1),U0(t.v,VIe,"EEnum",!1,!1,!0),kwt(jz(Yet(GK(t.v),0),18),t.w,jz(Yet(GK(t.w),3),18),"eLiterals",0,-1,VIe,!1,!1,!0,!0,!1,!1,!1),Iwt(s=uit(jz(Yet(YK(t.v),0),59),t.w,o9t),t._,t5t),Iwt(s=uit(jz(Yet(YK(t.v),1),59),t.w,o9t),t.I,R7t),Iwt(s=uit(jz(Yet(YK(t.v),2),59),t.w,"getEEnumLiteralByLiteral"),t._,"literal"),U0(t.w,qIe,f8t,!1,!1,!0),ort(jz(Yet(GK(t.w),0),34),t.I,R7t,null,0,1,qIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.w),1),34),t.A,"instance",null,0,1,qIe,!0,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.w),2),34),t._,"literal",null,0,1,qIe,!1,!1,!0,!1,!0,!1),kwt(jz(Yet(GK(t.w),3),18),t.v,jz(Yet(GK(t.v),0),18),"eEnum",0,1,qIe,!0,!1,!1,!1,!1,!1,!1),U0(t.B,jDe,"EFactory",!1,!1,!0),kwt(jz(Yet(GK(t.B),0),18),t.U,jz(Yet(GK(t.U),2),18),"ePackage",1,1,jDe,!0,!1,!0,!1,!1,!1,!1),Iwt(s=uit(jz(Yet(YK(t.B),0),59),t.S,"create"),t.o,"eClass"),Iwt(s=uit(jz(Yet(YK(t.B),1),59),t.M,"createFromString"),t.q,"eDataType"),Iwt(s,t._,"literalValue"),Iwt(s=uit(jz(Yet(YK(t.B),2),59),t._,"convertToString"),t.q,"eDataType"),Iwt(s,t.M,"instanceValue"),U0(t.Q,FDe,K6t,!0,!1,!0),kwt(jz(Yet(GK(t.Q),0),18),t.a,jz(Yet(GK(t.a),2),18),"eAnnotations",0,-1,FDe,!1,!1,!0,!0,!1,!1,!1),Iwt(s=uit(jz(Yet(YK(t.Q),0),59),t.a,"getEAnnotation"),t._,_7t),U0(t.R,$De,X6t,!0,!1,!0),ort(jz(Yet(GK(t.R),0),34),t._,t5t,null,0,1,$De,!1,!1,!0,!1,!0,!1),U0(t.S,DDe,"EObject",!1,!1,!0),uit(jz(Yet(YK(t.S),0),59),t.o,"eClass"),uit(jz(Yet(YK(t.S),1),59),t.e,"eIsProxy"),uit(jz(Yet(YK(t.S),2),59),t.X,"eResource"),uit(jz(Yet(YK(t.S),3),59),t.S,"eContainer"),uit(jz(Yet(YK(t.S),4),59),t.bb,"eContainingFeature"),uit(jz(Yet(YK(t.S),5),59),t.W,"eContainmentFeature"),s=uit(jz(Yet(YK(t.S),6),59),null,"eContents"),e=XZ(t.fb),n=XZ(t.S),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),(a=zkt(s,e,null))&&a.Fi(),s=uit(jz(Yet(YK(t.S),7),59),null,"eAllContents"),e=XZ(t.cb),n=XZ(t.S),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),(r=zkt(s,e,null))&&r.Fi(),s=uit(jz(Yet(YK(t.S),8),59),null,"eCrossReferences"),e=XZ(t.fb),n=XZ(t.S),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),(o=zkt(s,e,null))&&o.Fi(),Iwt(s=uit(jz(Yet(YK(t.S),9),59),t.M,"eGet"),t.bb,t9t),Iwt(s=uit(jz(Yet(YK(t.S),10),59),t.M,"eGet"),t.bb,t9t),Iwt(s,t.e,"resolve"),Iwt(s=uit(jz(Yet(YK(t.S),11),59),null,"eSet"),t.bb,t9t),Iwt(s,t.M,"newValue"),Iwt(s=uit(jz(Yet(YK(t.S),12),59),t.e,"eIsSet"),t.bb,t9t),Iwt(s=uit(jz(Yet(YK(t.S),13),59),null,"eUnset"),t.bb,t9t),Iwt(s=uit(jz(Yet(YK(t.S),14),59),t.M,"eInvoke"),t.T,n9t),e=XZ(t.fb),n=s2(),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),qRt(s,e,"arguments"),PG(s,t.K),U0(t.T,YIe,p8t,!1,!1,!0),kwt(jz(Yet(GK(t.T),0),18),t.o,jz(Yet(GK(t.o),3),18),s9t,0,1,YIe,!0,!1,!1,!1,!1,!1,!1),kwt(jz(Yet(GK(t.T),1),18),t.db,null,a9t,0,-1,YIe,!1,!1,!0,!0,!0,!1,!1),kwt(jz(Yet(GK(t.T),2),18),t.V,jz(Yet(GK(t.V),0),18),"eParameters",0,-1,YIe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.T),3),18),t.p,null,"eExceptions",0,-1,YIe,!1,!1,!0,!1,!0,!0,!1),kwt(jz(Yet(GK(t.T),4),18),t.H,null,"eGenericExceptions",0,-1,YIe,!1,!1,!0,!0,!1,!0,!1),uit(jz(Yet(YK(t.T),0),59),t.I,e9t),Iwt(s=uit(jz(Yet(YK(t.T),1),59),t.e,"isOverrideOf"),t.T,"someOperation"),U0(t.U,zDe,"EPackage",!1,!1,!0),ort(jz(Yet(GK(t.U),0),34),t._,"nsURI",null,0,1,zDe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.U),1),34),t._,"nsPrefix",null,0,1,zDe,!1,!1,!0,!1,!0,!1),kwt(jz(Yet(GK(t.U),2),18),t.B,jz(Yet(GK(t.B),0),18),"eFactoryInstance",1,1,zDe,!0,!1,!0,!1,!1,!1,!1),kwt(jz(Yet(GK(t.U),3),18),t.p,jz(Yet(GK(t.p),4),18),"eClassifiers",0,-1,zDe,!1,!1,!0,!0,!0,!1,!1),kwt(jz(Yet(GK(t.U),4),18),t.U,jz(Yet(GK(t.U),5),18),"eSubpackages",0,-1,zDe,!1,!1,!0,!0,!0,!1,!1),kwt(jz(Yet(GK(t.U),5),18),t.U,jz(Yet(GK(t.U),4),18),"eSuperPackage",0,1,zDe,!0,!1,!1,!1,!0,!1,!1),Iwt(s=uit(jz(Yet(YK(t.U),0),59),t.p,"getEClassifier"),t._,t5t),U0(t.V,GIe,b8t,!1,!1,!0),kwt(jz(Yet(GK(t.V),0),18),t.T,jz(Yet(GK(t.T),2),18),"eOperation",0,1,GIe,!0,!1,!1,!1,!1,!1,!1),U0(t.W,ZIe,m8t,!1,!1,!0),ort(jz(Yet(GK(t.W),0),34),t.e,"containment",null,0,1,ZIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.W),1),34),t.e,"container",null,0,1,ZIe,!0,!0,!1,!1,!0,!0),ort(jz(Yet(GK(t.W),2),34),t.e,"resolveProxies",r6t,0,1,ZIe,!1,!1,!0,!1,!0,!1),kwt(jz(Yet(GK(t.W),3),18),t.W,null,"eOpposite",0,1,ZIe,!1,!1,!0,!1,!0,!1,!1),kwt(jz(Yet(GK(t.W),4),18),t.o,null,"eReferenceType",1,1,ZIe,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.W),5),18),t.b,null,"eKeys",0,-1,ZIe,!1,!1,!0,!1,!0,!1,!1),U0(t.bb,PIe,u8t,!0,!1,!0),ort(jz(Yet(GK(t.bb),0),34),t.e,"changeable",r6t,0,1,PIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.bb),1),34),t.e,"volatile",null,0,1,PIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.bb),2),34),t.e,"transient",null,0,1,PIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.bb),3),34),t._,"defaultValueLiteral",null,0,1,PIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.bb),4),34),t.M,i9t,null,0,1,PIe,!0,!0,!1,!1,!0,!0),ort(jz(Yet(GK(t.bb),5),34),t.e,"unsettable",null,0,1,PIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.bb),6),34),t.e,"derived",null,0,1,PIe,!1,!1,!0,!1,!0,!1),kwt(jz(Yet(GK(t.bb),7),18),t.o,jz(Yet(GK(t.o),13),18),s9t,0,1,PIe,!0,!1,!1,!1,!1,!1,!1),uit(jz(Yet(YK(t.bb),0),59),t.I,Q8t),s=uit(jz(Yet(YK(t.bb),1),59),null,"getContainerClass"),e=XZ(t.L),n=s2(),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),(i=zkt(s,e,null))&&i.Fi(),U0(t.eb,BIe,l8t,!0,!1,!0),ort(jz(Yet(GK(t.eb),0),34),t.e,"ordered",r6t,0,1,BIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.eb),1),34),t.e,"unique",r6t,0,1,BIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.eb),2),34),t.I,"lowerBound",null,0,1,BIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.eb),3),34),t.I,"upperBound","1",0,1,BIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.eb),4),34),t.e,"many",null,0,1,BIe,!0,!0,!1,!1,!0,!0),ort(jz(Yet(GK(t.eb),5),34),t.e,"required",null,0,1,BIe,!0,!0,!1,!1,!0,!0),kwt(jz(Yet(GK(t.eb),6),18),t.p,null,"eType",0,1,BIe,!1,!0,!0,!1,!0,!0,!1),kwt(jz(Yet(GK(t.eb),7),18),t.H,null,"eGenericType",0,1,BIe,!1,!0,!0,!0,!1,!0,!1),U0(t.ab,zte,"EStringToStringMapEntry",!1,!1,!1),ort(jz(Yet(GK(t.ab),0),34),t._,"key",null,0,1,zte,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.ab),1),34),t._,R7t,null,0,1,zte,!1,!1,!0,!1,!0,!1),U0(t.H,WIe,g8t,!1,!1,!0),kwt(jz(Yet(GK(t.H),0),18),t.H,null,"eUpperBound",0,1,WIe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.H),1),18),t.H,null,"eTypeArguments",0,-1,WIe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.H),2),18),t.p,null,"eRawType",1,1,WIe,!0,!1,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.H),3),18),t.H,null,"eLowerBound",0,1,WIe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.H),4),18),t.db,null,"eTypeParameter",0,1,WIe,!1,!1,!0,!1,!1,!1,!1),kwt(jz(Yet(GK(t.H),5),18),t.p,null,"eClassifier",0,1,WIe,!1,!1,!0,!1,!0,!1,!1),Iwt(s=uit(jz(Yet(YK(t.H),0),59),t.e,r9t),t.M,DGt),U0(t.db,SLe,y8t,!1,!1,!0),kwt(jz(Yet(GK(t.db),0),18),t.H,null,"eBounds",0,-1,SLe,!1,!1,!0,!0,!1,!1,!1),fZ(t.c,Kee,"EBigDecimal",!0),fZ(t.d,sne,"EBigInteger",!0),fZ(t.e,AMe,"EBoolean",!0),fZ(t.f,wee,"EBooleanObject",!0),fZ(t.i,IMe,"EByte",!0),fZ(t.g,Hx(IMe,1),"EByteArray",!0),fZ(t.j,Ree,"EByteObject",!0),fZ(t.k,SMe,"EChar",!0),fZ(t.n,Eee,"ECharacterObject",!0),fZ(t.r,bee,"EDate",!0),fZ(t.s,BMe,"EDiagnosticChain",!1),fZ(t.t,LMe,"EDouble",!0),fZ(t.u,Cee,"EDoubleObject",!0),fZ(t.fb,aIe,"EEList",!1),fZ(t.A,mIe,"EEnumerator",!1),fZ(t.C,rOe,"EFeatureMap",!1),fZ(t.D,ALe,"EFeatureMapEntry",!1),fZ(t.F,OMe,"EFloat",!0),fZ(t.G,See,"EFloatObject",!0),fZ(t.I,TMe,"EInt",!0),fZ(t.J,Dee,"EIntegerObject",!0),fZ(t.L,Ite,"EJavaClass",!0),fZ(t.M,Dte,"EJavaObject",!0),fZ(t.N,DMe,"ELong",!0),fZ(t.O,Bee,"ELongObject",!0),fZ(t.P,Ote,"EMap",!1),fZ(t.X,tOe,"EResource",!1),fZ(t.Y,PMe,"EResourceSet",!1),fZ(t.Z,MMe,"EShort",!0),fZ(t.$,Fee,"EShortObject",!0),fZ(t._,zee,"EString",!0),fZ(t.cb,oIe,"ETreeIterator",!1),fZ(t.K,FMe,"EInvocationTargetException",!1),Lut(t,G8t))}typeof window<"u"?i=window:typeof t<"u"?i=t:typeof self<"u"&&(i=self);var kGt,EGt,CGt,SGt,TGt,AGt,DGt="object",IGt="boolean",LGt="number",OGt="string",MGt="function",NGt=2147483647,BGt="java.lang",PGt={3:1},FGt="com.google.common.base",jGt=", ",$Gt="%s (%s) must not be negative",zGt={3:1,4:1,5:1},HGt="negative size: ",UGt="Optional.of(",VGt="null",qGt={198:1,47:1},WGt="com.google.common.collect",YGt={198:1,47:1,125:1},GGt={224:1,3:1},ZGt={47:1},KGt="java.util",XGt={83:1},JGt={20:1,28:1,14:1},QGt=1965,tZt={20:1,28:1,14:1,21:1},eZt={83:1,171:1,161:1},nZt={20:1,28:1,14:1,21:1,84:1},iZt={20:1,28:1,14:1,271:1,21:1,84:1},aZt={47:1,125:1},rZt={345:1,42:1},oZt="AbstractMapEntry",sZt="expectedValuesPerKey",cZt={3:1,6:1,4:1,5:1},lZt=16384,uZt={164:1},dZt={38:1},hZt={l:4194303,m:4194303,h:524287},fZt={196:1},gZt={245:1,3:1,35:1},pZt="range unbounded on this side",bZt={20:1},mZt={20:1,14:1},yZt={3:1,20:1,28:1,14:1},vZt={152:1,3:1,20:1,28:1,14:1,15:1,54:1},wZt={3:1,4:1,5:1,165:1},xZt={3:1,83:1},RZt={20:1,14:1,21:1},_Zt={3:1,20:1,28:1,14:1,21:1},kZt={20:1,14:1,21:1,84:1},EZt=461845907,CZt=-862048943,SZt={3:1,6:1,4:1,5:1,165:1},TZt="expectedSize",AZt=1073741824,DZt="initialArraySize",IZt={3:1,6:1,4:1,9:1,5:1},LZt={20:1,28:1,52:1,14:1,15:1},OZt="arraySize",MZt={20:1,28:1,52:1,14:1,15:1,54:1},NZt={45:1},BZt={365:1},PZt=1e-4,FZt=-2147483648,jZt="__noinit__",$Zt={3:1,102:1,60:1,78:1},zZt="com.google.gwt.core.client.impl",HZt="String",UZt="com.google.gwt.core.client",VZt="anonymous",qZt="fnStack",WZt="Unknown",YZt={195:1,3:1,4:1},GZt=1e3,ZZt=65535,KZt="January",XZt="February",JZt="March",QZt="April",tKt="May",eKt="June",nKt="July",iKt="August",aKt="September",rKt="October",oKt="November",sKt="December",cKt=1900,lKt={48:1,3:1,4:1},uKt="Before Christ",dKt="Anno Domini",hKt="Sunday",fKt="Monday",gKt="Tuesday",pKt="Wednesday",bKt="Thursday",mKt="Friday",yKt="Saturday",vKt="com.google.gwt.i18n.shared",wKt="DateTimeFormat",xKt="com.google.gwt.i18n.client",RKt="DefaultDateTimeFormatInfo",_Kt={3:1,4:1,35:1,199:1},kKt="com.google.gwt.json.client",EKt=4194303,CKt=1048575,SKt=524288,TKt=4194304,AKt=17592186044416,DKt=1e9,IKt=-17592186044416,LKt="java.io",OKt={3:1,102:1,73:1,60:1,78:1},MKt={3:1,289:1,78:1},NKt='For input string: "',BKt=1/0,PKt=-1/0,FKt=4096,jKt={3:1,4:1,364:1},$Kt=65536,zKt=55296,HKt={104:1,3:1,4:1},UKt=1e5,VKt=.3010299956639812,qKt=4294967295,WKt=4294967296,YKt="0.0",GKt={42:1},ZKt={3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1},KKt={3:1,20:1,28:1,52:1,14:1,15:1,54:1},XKt={20:1,14:1,15:1},JKt={3:1,62:1},QKt={182:1},tXt={3:1,4:1,83:1},eXt={3:1,4:1,20:1,28:1,14:1,53:1,21:1},nXt="delete",iXt=1.4901161193847656e-8,aXt=11102230246251565e-32,rXt=15525485,oXt=5.960464477539063e-8,sXt=16777216,cXt=16777215,lXt=", length: ",uXt={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1},dXt={3:1,35:1,22:1,297:1},hXt="java.util.function",fXt="java.util.logging",gXt={3:1,4:1,5:1,842:1},pXt="undefined",bXt="java.util.stream",mXt={525:1,670:1},yXt="fromIndex: ",vXt=" > toIndex: ",wXt=", toIndex: ",xXt="Index: ",RXt=", Size: ",_Xt="org.eclipse.elk.alg.common",kXt={62:1},EXt="org.eclipse.elk.alg.common.compaction",CXt="Scanline/EventHandler",SXt="org.eclipse.elk.alg.common.compaction.oned",TXt="CNode belongs to another CGroup.",AXt="ISpacingsHandler/1",DXt="The ",IXt=" instance has been finished already.",LXt="The direction ",OXt=" is not supported by the CGraph instance.",MXt="OneDimensionalCompactor",NXt="OneDimensionalCompactor/lambda$0$Type",BXt="Quadruplet",PXt="ScanlineConstraintCalculator",FXt="ScanlineConstraintCalculator/ConstraintsScanlineHandler",jXt="ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type",$Xt="ScanlineConstraintCalculator/Timestamp",zXt="ScanlineConstraintCalculator/lambda$0$Type",HXt={169:1,45:1},UXt="org.eclipse.elk.alg.common.compaction.options",VXt="org.eclipse.elk.core.data",qXt="org.eclipse.elk.polyomino.traversalStrategy",WXt="org.eclipse.elk.polyomino.lowLevelSort",YXt="org.eclipse.elk.polyomino.highLevelSort",GXt="org.eclipse.elk.polyomino.fill",ZXt={130:1},KXt="polyomino",XXt="org.eclipse.elk.alg.common.networksimplex",JXt={177:1,3:1,4:1},QXt="org.eclipse.elk.alg.common.nodespacing",tJt="org.eclipse.elk.alg.common.nodespacing.cellsystem",eJt="CENTER",nJt={212:1,326:1},iJt={3:1,4:1,5:1,595:1},aJt="LEFT",rJt="RIGHT",oJt="Vertical alignment cannot be null",sJt="BOTTOM",cJt="org.eclipse.elk.alg.common.nodespacing.internal",lJt="UNDEFINED",uJt=.01,dJt="org.eclipse.elk.alg.common.nodespacing.internal.algorithm",hJt="LabelPlacer/lambda$0$Type",fJt="LabelPlacer/lambda$1$Type",gJt="portRatioOrPosition",pJt="org.eclipse.elk.alg.common.overlaps",bJt="DOWN",mJt="org.eclipse.elk.alg.common.polyomino",yJt="NORTH",vJt="EAST",wJt="SOUTH",xJt="WEST",RJt="org.eclipse.elk.alg.common.polyomino.structures",_Jt="Direction",kJt="Grid is only of size ",EJt=". Requested point (",CJt=") is out of bounds.",SJt=" Given center based coordinates were (",TJt="org.eclipse.elk.graph.properties",AJt="IPropertyHolder",DJt={3:1,94:1,134:1},IJt="org.eclipse.elk.alg.common.spore",LJt="org.eclipse.elk.alg.common.utils",OJt={209:1},MJt="org.eclipse.elk.core",NJt="Connected Components Compaction",BJt="org.eclipse.elk.alg.disco",PJt="org.eclipse.elk.alg.disco.graph",FJt="org.eclipse.elk.alg.disco.options",jJt="CompactionStrategy",$Jt="org.eclipse.elk.disco.componentCompaction.strategy",zJt="org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm",HJt="org.eclipse.elk.disco.debug.discoGraph",UJt="org.eclipse.elk.disco.debug.discoPolys",VJt="componentCompaction",qJt="org.eclipse.elk.disco",WJt="org.eclipse.elk.spacing.componentComponent",YJt="org.eclipse.elk.edge.thickness",GJt="org.eclipse.elk.aspectRatio",ZJt="org.eclipse.elk.padding",KJt="org.eclipse.elk.alg.disco.transform",XJt=1.5707963267948966,JJt=17976931348623157e292,QJt={3:1,4:1,5:1,192:1},tQt={3:1,6:1,4:1,5:1,106:1,120:1},eQt="org.eclipse.elk.alg.force",nQt="ComponentsProcessor",iQt="ComponentsProcessor/1",aQt="org.eclipse.elk.alg.force.graph",rQt="Component Layout",oQt="org.eclipse.elk.alg.force.model",sQt="org.eclipse.elk.force.model",cQt="org.eclipse.elk.force.iterations",lQt="org.eclipse.elk.force.repulsivePower",uQt="org.eclipse.elk.force.temperature",dQt=.001,hQt="org.eclipse.elk.force.repulsion",fQt="org.eclipse.elk.alg.force.options",gQt=1.600000023841858,pQt="org.eclipse.elk.force",bQt="org.eclipse.elk.priority",mQt="org.eclipse.elk.spacing.nodeNode",yQt="org.eclipse.elk.spacing.edgeLabel",vQt="org.eclipse.elk.randomSeed",wQt="org.eclipse.elk.separateConnectedComponents",xQt="org.eclipse.elk.interactive",RQt="org.eclipse.elk.portConstraints",_Qt="org.eclipse.elk.edgeLabels.inline",kQt="org.eclipse.elk.omitNodeMicroLayout",EQt="org.eclipse.elk.nodeSize.options",CQt="org.eclipse.elk.nodeSize.constraints",SQt="org.eclipse.elk.nodeLabels.placement",TQt="org.eclipse.elk.portLabels.placement",AQt="origin",DQt="random",IQt="boundingBox.upLeft",LQt="boundingBox.lowRight",OQt="org.eclipse.elk.stress.fixed",MQt="org.eclipse.elk.stress.desiredEdgeLength",NQt="org.eclipse.elk.stress.dimension",BQt="org.eclipse.elk.stress.epsilon",PQt="org.eclipse.elk.stress.iterationLimit",FQt="org.eclipse.elk.stress",jQt="ELK Stress",$Qt="org.eclipse.elk.nodeSize.minimum",zQt="org.eclipse.elk.alg.force.stress",HQt="Layered layout",UQt="org.eclipse.elk.alg.layered",VQt="org.eclipse.elk.alg.layered.compaction.components",qQt="org.eclipse.elk.alg.layered.compaction.oned",WQt="org.eclipse.elk.alg.layered.compaction.oned.algs",YQt="org.eclipse.elk.alg.layered.compaction.recthull",GQt="org.eclipse.elk.alg.layered.components",ZQt="NONE",KQt={3:1,6:1,4:1,9:1,5:1,122:1},XQt={3:1,6:1,4:1,5:1,141:1,106:1,120:1},JQt="org.eclipse.elk.alg.layered.compound",QQt={51:1},t1t="org.eclipse.elk.alg.layered.graph",e1t=" -> ",n1t="Not supported by LGraph",i1t="Port side is undefined",a1t={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},r1t={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},o1t={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},s1t="([{\"' \t\r\n",c1t=")]}\"' \t\r\n",l1t="The given string contains parts that cannot be parsed as numbers.",u1t="org.eclipse.elk.core.math",d1t={3:1,4:1,142:1,207:1,414:1},h1t={3:1,4:1,116:1,207:1,414:1},f1t="org.eclipse.elk.layered",g1t="org.eclipse.elk.alg.layered.graph.transform",p1t="ElkGraphImporter",b1t="ElkGraphImporter/lambda$0$Type",m1t="ElkGraphImporter/lambda$1$Type",y1t="ElkGraphImporter/lambda$2$Type",v1t="ElkGraphImporter/lambda$4$Type",w1t="Node margin calculation",x1t="org.eclipse.elk.alg.layered.intermediate",R1t="ONE_SIDED_GREEDY_SWITCH",_1t="TWO_SIDED_GREEDY_SWITCH",k1t="No implementation is available for the layout processor ",E1t="IntermediateProcessorStrategy",C1t="Node '",S1t="FIRST_SEPARATE",T1t="LAST_SEPARATE",A1t="Odd port side processing",D1t="org.eclipse.elk.alg.layered.intermediate.compaction",I1t="org.eclipse.elk.alg.layered.intermediate.greedyswitch",L1t="org.eclipse.elk.alg.layered.p3order.counting",O1t={225:1},M1t="org.eclipse.elk.alg.layered.intermediate.loops",N1t="org.eclipse.elk.alg.layered.intermediate.loops.ordering",B1t="org.eclipse.elk.alg.layered.intermediate.loops.routing",P1t="org.eclipse.elk.alg.layered.intermediate.preserveorder",F1t="org.eclipse.elk.alg.layered.intermediate.wrapping",j1t="org.eclipse.elk.alg.layered.options",$1t="INTERACTIVE",z1t="DEPTH_FIRST",H1t="EDGE_LENGTH",U1t="SELF_LOOPS",V1t="firstTryWithInitialOrder",q1t="org.eclipse.elk.layered.directionCongruency",W1t="org.eclipse.elk.layered.feedbackEdges",Y1t="org.eclipse.elk.layered.interactiveReferencePoint",G1t="org.eclipse.elk.layered.mergeEdges",Z1t="org.eclipse.elk.layered.mergeHierarchyEdges",K1t="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",X1t="org.eclipse.elk.layered.portSortingStrategy",J1t="org.eclipse.elk.layered.thoroughness",Q1t="org.eclipse.elk.layered.unnecessaryBendpoints",t0t="org.eclipse.elk.layered.generatePositionAndLayerIds",e0t="org.eclipse.elk.layered.cycleBreaking.strategy",n0t="org.eclipse.elk.layered.layering.strategy",i0t="org.eclipse.elk.layered.layering.layerConstraint",a0t="org.eclipse.elk.layered.layering.layerChoiceConstraint",r0t="org.eclipse.elk.layered.layering.layerId",o0t="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",s0t="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",c0t="org.eclipse.elk.layered.layering.nodePromotion.strategy",l0t="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",u0t="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",d0t="org.eclipse.elk.layered.crossingMinimization.strategy",h0t="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",f0t="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",g0t="org.eclipse.elk.layered.crossingMinimization.semiInteractive",p0t="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",b0t="org.eclipse.elk.layered.crossingMinimization.positionId",m0t="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",y0t="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",v0t="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",w0t="org.eclipse.elk.layered.nodePlacement.strategy",x0t="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",R0t="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",_0t="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",k0t="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",E0t="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility",C0t="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",S0t="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",T0t="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",A0t="org.eclipse.elk.layered.edgeRouting.splines.mode",D0t="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",I0t="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",L0t="org.eclipse.elk.layered.spacing.baseValue",O0t="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",M0t="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",N0t="org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers",B0t="org.eclipse.elk.layered.priority.direction",P0t="org.eclipse.elk.layered.priority.shortness",F0t="org.eclipse.elk.layered.priority.straightness",j0t="org.eclipse.elk.layered.compaction.connectedComponents",$0t="org.eclipse.elk.layered.compaction.postCompaction.strategy",z0t="org.eclipse.elk.layered.compaction.postCompaction.constraints",H0t="org.eclipse.elk.layered.highDegreeNodes.treatment",U0t="org.eclipse.elk.layered.highDegreeNodes.threshold",V0t="org.eclipse.elk.layered.highDegreeNodes.treeHeight",q0t="org.eclipse.elk.layered.wrapping.strategy",W0t="org.eclipse.elk.layered.wrapping.additionalEdgeSpacing",Y0t="org.eclipse.elk.layered.wrapping.correctionFactor",G0t="org.eclipse.elk.layered.wrapping.cutting.strategy",Z0t="org.eclipse.elk.layered.wrapping.cutting.cuts",K0t="org.eclipse.elk.layered.wrapping.cutting.msd.freedom",X0t="org.eclipse.elk.layered.wrapping.validify.strategy",J0t="org.eclipse.elk.layered.wrapping.validify.forbiddenIndices",Q0t="org.eclipse.elk.layered.wrapping.multiEdge.improveCuts",t2t="org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty",e2t="org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges",n2t="org.eclipse.elk.layered.edgeLabels.sideSelection",i2t="org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy",a2t="org.eclipse.elk.layered.considerModelOrder.strategy",r2t="org.eclipse.elk.layered.considerModelOrder.noModelOrder",o2t="org.eclipse.elk.layered.considerModelOrder.components",s2t="org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy",c2t="org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence",l2t="org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence",u2t="layering",d2t="layering.minWidth",h2t="layering.nodePromotion",f2t="crossingMinimization",g2t="org.eclipse.elk.hierarchyHandling",p2t="crossingMinimization.greedySwitch",b2t="nodePlacement",m2t="nodePlacement.bk",y2t="edgeRouting",v2t="org.eclipse.elk.edgeRouting",w2t="spacing",x2t="priority",R2t="compaction",_2t="compaction.postCompaction",k2t="Specifies whether and how post-process compaction is applied.",E2t="highDegreeNodes",C2t="wrapping",S2t="wrapping.cutting",T2t="wrapping.validify",A2t="wrapping.multiEdge",D2t="edgeLabels",I2t="considerModelOrder",L2t="org.eclipse.elk.spacing.commentComment",O2t="org.eclipse.elk.spacing.commentNode",M2t="org.eclipse.elk.spacing.edgeEdge",N2t="org.eclipse.elk.spacing.edgeNode",B2t="org.eclipse.elk.spacing.labelLabel",P2t="org.eclipse.elk.spacing.labelPortHorizontal",F2t="org.eclipse.elk.spacing.labelPortVertical",j2t="org.eclipse.elk.spacing.labelNode",$2t="org.eclipse.elk.spacing.nodeSelfLoop",z2t="org.eclipse.elk.spacing.portPort",H2t="org.eclipse.elk.spacing.individual",U2t="org.eclipse.elk.port.borderOffset",V2t="org.eclipse.elk.noLayout",q2t="org.eclipse.elk.port.side",W2t="org.eclipse.elk.debugMode",Y2t="org.eclipse.elk.alignment",G2t="org.eclipse.elk.insideSelfLoops.activate",Z2t="org.eclipse.elk.insideSelfLoops.yo",K2t="org.eclipse.elk.nodeSize.fixedGraphSize",X2t="org.eclipse.elk.direction",J2t="org.eclipse.elk.nodeLabels.padding",Q2t="org.eclipse.elk.portLabels.nextToPortIfPossible",t4t="org.eclipse.elk.portLabels.treatAsGroup",e4t="org.eclipse.elk.portAlignment.default",n4t="org.eclipse.elk.portAlignment.north",i4t="org.eclipse.elk.portAlignment.south",a4t="org.eclipse.elk.portAlignment.west",r4t="org.eclipse.elk.portAlignment.east",o4t="org.eclipse.elk.contentAlignment",s4t="org.eclipse.elk.junctionPoints",c4t="org.eclipse.elk.edgeLabels.placement",l4t="org.eclipse.elk.port.index",u4t="org.eclipse.elk.commentBox",d4t="org.eclipse.elk.hypernode",h4t="org.eclipse.elk.port.anchor",f4t="org.eclipse.elk.partitioning.activate",g4t="org.eclipse.elk.partitioning.partition",p4t="org.eclipse.elk.position",b4t="org.eclipse.elk.margins",m4t="org.eclipse.elk.spacing.portsSurrounding",y4t="org.eclipse.elk.interactiveLayout",v4t="org.eclipse.elk.core.util",w4t={3:1,4:1,5:1,593:1},x4t="NETWORK_SIMPLEX",R4t={123:1,51:1},_4t="org.eclipse.elk.alg.layered.p1cycles",k4t="org.eclipse.elk.alg.layered.p2layers",E4t={402:1,225:1},C4t={832:1,3:1,4:1},S4t="org.eclipse.elk.alg.layered.p3order",T4t="org.eclipse.elk.alg.layered.p4nodes",A4t={3:1,4:1,5:1,840:1},D4t=1e-5,I4t="org.eclipse.elk.alg.layered.p4nodes.bk",L4t="org.eclipse.elk.alg.layered.p5edges",O4t="org.eclipse.elk.alg.layered.p5edges.orthogonal",M4t="org.eclipse.elk.alg.layered.p5edges.orthogonal.direction",N4t=1e-6,B4t="org.eclipse.elk.alg.layered.p5edges.splines",P4t=.09999999999999998,F4t=1e-8,j4t=4.71238898038469,$4t=3.141592653589793,z4t="org.eclipse.elk.alg.mrtree",H4t="org.eclipse.elk.alg.mrtree.graph",U4t="org.eclipse.elk.alg.mrtree.intermediate",V4t="Set neighbors in level",q4t="DESCENDANTS",W4t="org.eclipse.elk.mrtree.weighting",Y4t="org.eclipse.elk.mrtree.searchOrder",G4t="org.eclipse.elk.alg.mrtree.options",Z4t="org.eclipse.elk.mrtree",K4t="org.eclipse.elk.tree",X4t="org.eclipse.elk.alg.radial",J4t=6.283185307179586,Q4t=5e-324,t3t="org.eclipse.elk.alg.radial.intermediate",e3t="org.eclipse.elk.alg.radial.intermediate.compaction",n3t={3:1,4:1,5:1,106:1},i3t="org.eclipse.elk.alg.radial.intermediate.optimization",a3t="No implementation is available for the layout option ",r3t="org.eclipse.elk.alg.radial.options",o3t="org.eclipse.elk.radial.orderId",s3t="org.eclipse.elk.radial.radius",c3t="org.eclipse.elk.radial.compactor",l3t="org.eclipse.elk.radial.compactionStepSize",u3t="org.eclipse.elk.radial.sorter",d3t="org.eclipse.elk.radial.wedgeCriteria",h3t="org.eclipse.elk.radial.optimizationCriteria",f3t="org.eclipse.elk.radial",g3t="org.eclipse.elk.alg.radial.p1position.wedge",p3t="org.eclipse.elk.alg.radial.sorting",b3t=5.497787143782138,m3t=3.9269908169872414,y3t=2.356194490192345,v3t="org.eclipse.elk.alg.rectpacking",w3t="org.eclipse.elk.alg.rectpacking.firstiteration",x3t="org.eclipse.elk.alg.rectpacking.options",R3t="org.eclipse.elk.rectpacking.optimizationGoal",_3t="org.eclipse.elk.rectpacking.lastPlaceShift",k3t="org.eclipse.elk.rectpacking.currentPosition",E3t="org.eclipse.elk.rectpacking.desiredPosition",C3t="org.eclipse.elk.rectpacking.onlyFirstIteration",S3t="org.eclipse.elk.rectpacking.rowCompaction",T3t="org.eclipse.elk.rectpacking.expandToAspectRatio",A3t="org.eclipse.elk.rectpacking.targetWidth",D3t="org.eclipse.elk.expandNodes",I3t="org.eclipse.elk.rectpacking",L3t="org.eclipse.elk.alg.rectpacking.util",O3t="No implementation available for ",M3t="org.eclipse.elk.alg.spore",N3t="org.eclipse.elk.alg.spore.options",B3t="org.eclipse.elk.sporeCompaction",P3t="org.eclipse.elk.underlyingLayoutAlgorithm",F3t="org.eclipse.elk.processingOrder.treeConstruction",j3t="org.eclipse.elk.processingOrder.spanningTreeCostFunction",$3t="org.eclipse.elk.processingOrder.preferredRoot",z3t="org.eclipse.elk.processingOrder.rootSelection",H3t="org.eclipse.elk.structure.structureExtractionStrategy",U3t="org.eclipse.elk.compaction.compactionStrategy",V3t="org.eclipse.elk.compaction.orthogonal",q3t="org.eclipse.elk.overlapRemoval.maxIterations",W3t="org.eclipse.elk.overlapRemoval.runScanline",Y3t="processingOrder",G3t="overlapRemoval",Z3t="org.eclipse.elk.sporeOverlap",K3t="org.eclipse.elk.alg.spore.p1structure",X3t="org.eclipse.elk.alg.spore.p2processingorder",J3t="org.eclipse.elk.alg.spore.p3execution",Q3t="Invalid index: ",t6t="org.eclipse.elk.core.alg",e6t={331:1},n6t={288:1},i6t="Make sure its type is registered with the ",a6t=" utility class.",r6t="true",o6t="false",s6t="Couldn't clone property '",c6t=.05,l6t="org.eclipse.elk.core.options",u6t=1.2999999523162842,d6t="org.eclipse.elk.box",h6t="org.eclipse.elk.box.packingMode",f6t="org.eclipse.elk.algorithm",g6t="org.eclipse.elk.resolvedAlgorithm",p6t="org.eclipse.elk.bendPoints",b6t="org.eclipse.elk.labelManager",m6t="org.eclipse.elk.scaleFactor",y6t="org.eclipse.elk.animate",v6t="org.eclipse.elk.animTimeFactor",w6t="org.eclipse.elk.layoutAncestors",x6t="org.eclipse.elk.maxAnimTime",R6t="org.eclipse.elk.minAnimTime",_6t="org.eclipse.elk.progressBar",k6t="org.eclipse.elk.validateGraph",E6t="org.eclipse.elk.validateOptions",C6t="org.eclipse.elk.zoomToFit",S6t="org.eclipse.elk.font.name",T6t="org.eclipse.elk.font.size",A6t="org.eclipse.elk.edge.type",D6t="partitioning",I6t="nodeLabels",L6t="portAlignment",O6t="nodeSize",M6t="port",N6t="portLabels",B6t="insideSelfLoops",P6t="org.eclipse.elk.fixed",F6t="org.eclipse.elk.random",j6t="port must have a parent node to calculate the port side",$6t="The edge needs to have exactly one edge section. Found: ",z6t="org.eclipse.elk.core.util.adapters",H6t="org.eclipse.emf.ecore",U6t="org.eclipse.elk.graph",V6t="EMapPropertyHolder",q6t="ElkBendPoint",W6t="ElkGraphElement",Y6t="ElkConnectableShape",G6t="ElkEdge",Z6t="ElkEdgeSection",K6t="EModelElement",X6t="ENamedElement",J6t="ElkLabel",Q6t="ElkNode",t7t="ElkPort",e7t={92:1,90:1},n7t="org.eclipse.emf.common.notify.impl",i7t="The feature '",a7t="' is not a valid changeable feature",r7t="Expecting null",o7t="' is not a valid feature",s7t="The feature ID",c7t=" is not a valid feature ID",l7t=32768,u7t={105:1,92:1,90:1,56:1,49:1,97:1},d7t="org.eclipse.emf.ecore.impl",h7t="org.eclipse.elk.graph.impl",f7t="Recursive containment not allowed for ",g7t="The datatype '",p7t="' is not a valid classifier",b7t="The value '",m7t={190:1,3:1,4:1},y7t="The class '",v7t="http://www.eclipse.org/elk/ElkGraph",w7t=1024,x7t="property",R7t="value",_7t="source",k7t="properties",E7t="identifier",C7t="height",S7t="width",T7t="parent",A7t="text",D7t="children",I7t="hierarchical",L7t="sources",O7t="targets",M7t="sections",N7t="bendPoints",B7t="outgoingShape",P7t="incomingShape",F7t="outgoingSections",j7t="incomingSections",$7t="org.eclipse.emf.common.util",z7t="Severe implementation error in the Json to ElkGraph importer.",H7t="id",U7t="org.eclipse.elk.graph.json",V7t="Unhandled parameter types: ",q7t="startPoint",W7t="An edge must have at least one source and one target (edge id: '",Y7t="').",G7t="Referenced edge section does not exist: ",Z7t=" (edge id: '",K7t="target",X7t="sourcePoint",J7t="targetPoint",Q7t="group",t5t="name",e5t="connectableShape cannot be null",n5t="edge cannot be null",i5t="Passed edge is not 'simple'.",a5t="org.eclipse.elk.graph.util",r5t="The 'no duplicates' constraint is violated",o5t="targetIndex=",s5t=", size=",c5t="sourceIndex=",l5t={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},u5t={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},d5t="logging",h5t="measureExecutionTime",f5t="parser.parse.1",g5t="parser.parse.2",p5t="parser.next.1",b5t="parser.next.2",m5t="parser.next.3",y5t="parser.next.4",v5t="parser.factor.1",w5t="parser.factor.2",x5t="parser.factor.3",R5t="parser.factor.4",_5t="parser.factor.5",k5t="parser.factor.6",E5t="parser.atom.1",C5t="parser.atom.2",S5t="parser.atom.3",T5t="parser.atom.4",A5t="parser.atom.5",D5t="parser.cc.1",I5t="parser.cc.2",L5t="parser.cc.3",O5t="parser.cc.5",M5t="parser.cc.6",N5t="parser.cc.7",B5t="parser.cc.8",P5t="parser.ope.1",F5t="parser.ope.2",j5t="parser.ope.3",$5t="parser.descape.1",z5t="parser.descape.2",H5t="parser.descape.3",U5t="parser.descape.4",V5t="parser.descape.5",q5t="parser.process.1",W5t="parser.quantifier.1",Y5t="parser.quantifier.2",G5t="parser.quantifier.3",Z5t="parser.quantifier.4",K5t="parser.quantifier.5",X5t="org.eclipse.emf.common.notify",J5t={415:1,672:1},Q5t={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},t8t={366:1,143:1},e8t="index=",n8t={3:1,4:1,5:1,126:1},i8t={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},a8t={3:1,6:1,4:1,5:1,192:1},r8t={3:1,4:1,5:1,165:1,367:1},o8t=";/?:@&=+$,",s8t="invalid authority: ",c8t="EAnnotation",l8t="ETypedElement",u8t="EStructuralFeature",d8t="EAttribute",h8t="EClassifier",f8t="EEnumLiteral",g8t="EGenericType",p8t="EOperation",b8t="EParameter",m8t="EReference",y8t="ETypeParameter",v8t="org.eclipse.emf.ecore.util",w8t={76:1},x8t={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},R8t="org.eclipse.emf.ecore.util.FeatureMap$Entry",_8t=8192,k8t=2048,E8t="byte",C8t="char",S8t="double",T8t="float",A8t="int",D8t="long",I8t="short",L8t="java.lang.Object",O8t={3:1,4:1,5:1,247:1},M8t={3:1,4:1,5:1,673:1},N8t={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},B8t={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},P8t="mixed",F8t="http:///org/eclipse/emf/ecore/util/ExtendedMetaData",j8t="kind",$8t={3:1,4:1,5:1,674:1},z8t={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},H8t={20:1,28:1,52:1,14:1,15:1,58:1,69:1},U8t={47:1,125:1,279:1},V8t={72:1,332:1},q8t="The value of type '",W8t="' must be of type '",Y8t=1316,G8t="http://www.eclipse.org/emf/2002/Ecore",Z8t=-32768,K8t="constraints",X8t="baseType",J8t="getEStructuralFeature",Q8t="getFeatureID",t9t="feature",e9t="getOperationID",n9t="operation",i9t="defaultValue",a9t="eTypeParameters",r9t="isInstance",o9t="getEEnumLiteral",s9t="eContainingClass",c9t={55:1},l9t={3:1,4:1,5:1,119:1},u9t="org.eclipse.emf.ecore.resource",d9t={92:1,90:1,591:1,1935:1},h9t="org.eclipse.emf.ecore.resource.impl",f9t="unspecified",g9t="simple",p9t="attribute",b9t="attributeWildcard",m9t="element",y9t="elementWildcard",v9t="collapse",w9t="itemType",x9t="namespace",R9t="##targetNamespace",_9t="whiteSpace",k9t="wildcards",E9t="http://www.eclipse.org/emf/2003/XMLType",C9t="##any",S9t="uninitialized",T9t="The multiplicity constraint is violated",A9t="org.eclipse.emf.ecore.xml.type",D9t="ProcessingInstruction",I9t="SimpleAnyType",L9t="XMLTypeDocumentRoot",O9t="org.eclipse.emf.ecore.xml.type.impl",M9t="INF",N9t="processing",B9t="ENTITIES_._base",P9t="minLength",F9t="ENTITY",j9t="NCName",$9t="IDREFS_._base",z9t="integer",H9t="token",U9t="pattern",V9t="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",q9t="\\i\\c*",W9t="[\\i-[:]][\\c-[:]]*",Y9t="nonPositiveInteger",G9t="maxInclusive",Z9t="NMTOKEN",K9t="NMTOKENS_._base",X9t="nonNegativeInteger",J9t="minInclusive",Q9t="normalizedString",tte="unsignedByte",ete="unsignedInt",nte="18446744073709551615",ite="unsignedShort",ate="processingInstruction",rte="org.eclipse.emf.ecore.xml.type.internal",ote=1114111,ste="Internal Error: shorthands: \\u",cte="xml:isDigit",lte="xml:isWord",ute="xml:isSpace",dte="xml:isNameChar",hte="xml:isInitialNameChar",fte="09\u0660\u0669\u06f0\u06f9\u0966\u096f\u09e6\u09ef\u0a66\u0a6f\u0ae6\u0aef\u0b66\u0b6f\u0be7\u0bef\u0c66\u0c6f\u0ce6\u0cef\u0d66\u0d6f\u0e50\u0e59\u0ed0\u0ed9\u0f20\u0f29",gte="AZaz\xc0\xd6\xd8\xf6\xf8\u0131\u0134\u013e\u0141\u0148\u014a\u017e\u0180\u01c3\u01cd\u01f0\u01f4\u01f5\u01fa\u0217\u0250\u02a8\u02bb\u02c1\u0386\u0386\u0388\u038a\u038c\u038c\u038e\u03a1\u03a3\u03ce\u03d0\u03d6\u03da\u03da\u03dc\u03dc\u03de\u03de\u03e0\u03e0\u03e2\u03f3\u0401\u040c\u040e\u044f\u0451\u045c\u045e\u0481\u0490\u04c4\u04c7\u04c8\u04cb\u04cc\u04d0\u04eb\u04ee\u04f5\u04f8\u04f9\u0531\u0556\u0559\u0559\u0561\u0586\u05d0\u05ea\u05f0\u05f2\u0621\u063a\u0641\u064a\u0671\u06b7\u06ba\u06be\u06c0\u06ce\u06d0\u06d3\u06d5\u06d5\u06e5\u06e6\u0905\u0939\u093d\u093d\u0958\u0961\u0985\u098c\u098f\u0990\u0993\u09a8\u09aa\u09b0\u09b2\u09b2\u09b6\u09b9\u09dc\u09dd\u09df\u09e1\u09f0\u09f1\u0a05\u0a0a\u0a0f\u0a10\u0a13\u0a28\u0a2a\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59\u0a5c\u0a5e\u0a5e\u0a72\u0a74\u0a85\u0a8b\u0a8d\u0a8d\u0a8f\u0a91\u0a93\u0aa8\u0aaa\u0ab0\u0ab2\u0ab3\u0ab5\u0ab9\u0abd\u0abd\u0ae0\u0ae0\u0b05\u0b0c\u0b0f\u0b10\u0b13\u0b28\u0b2a\u0b30\u0b32\u0b33\u0b36\u0b39\u0b3d\u0b3d\u0b5c\u0b5d\u0b5f\u0b61\u0b85\u0b8a\u0b8e\u0b90\u0b92\u0b95\u0b99\u0b9a\u0b9c\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8\u0baa\u0bae\u0bb5\u0bb7\u0bb9\u0c05\u0c0c\u0c0e\u0c10\u0c12\u0c28\u0c2a\u0c33\u0c35\u0c39\u0c60\u0c61\u0c85\u0c8c\u0c8e\u0c90\u0c92\u0ca8\u0caa\u0cb3\u0cb5\u0cb9\u0cde\u0cde\u0ce0\u0ce1\u0d05\u0d0c\u0d0e\u0d10\u0d12\u0d28\u0d2a\u0d39\u0d60\u0d61\u0e01\u0e2e\u0e30\u0e30\u0e32\u0e33\u0e40\u0e45\u0e81\u0e82\u0e84\u0e84\u0e87\u0e88\u0e8a\u0e8a\u0e8d\u0e8d\u0e94\u0e97\u0e99\u0e9f\u0ea1\u0ea3\u0ea5\u0ea5\u0ea7\u0ea7\u0eaa\u0eab\u0ead\u0eae\u0eb0\u0eb0\u0eb2\u0eb3\u0ebd\u0ebd\u0ec0\u0ec4\u0f40\u0f47\u0f49\u0f69\u10a0\u10c5\u10d0\u10f6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110b\u110c\u110e\u1112\u113c\u113c\u113e\u113e\u1140\u1140\u114c\u114c\u114e\u114e\u1150\u1150\u1154\u1155\u1159\u1159\u115f\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116d\u116e\u1172\u1173\u1175\u1175\u119e\u119e\u11a8\u11a8\u11ab\u11ab\u11ae\u11af\u11b7\u11b8\u11ba\u11ba\u11bc\u11c2\u11eb\u11eb\u11f0\u11f0\u11f9\u11f9\u1e00\u1e9b\u1ea0\u1ef9\u1f00\u1f15\u1f18\u1f1d\u1f20\u1f45\u1f48\u1f4d\u1f50\u1f57\u1f59\u1f59\u1f5b\u1f5b\u1f5d\u1f5d\u1f5f\u1f7d\u1f80\u1fb4\u1fb6\u1fbc\u1fbe\u1fbe\u1fc2\u1fc4\u1fc6\u1fcc\u1fd0\u1fd3\u1fd6\u1fdb\u1fe0\u1fec\u1ff2\u1ff4\u1ff6\u1ffc\u2126\u2126\u212a\u212b\u212e\u212e\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30a1\u30fa\u3105\u312c\u4e00\u9fa5\uac00\ud7a3",pte="Private Use",bte="ASSIGNED",mte="\0\x7f\x80\xff\u0100\u017f\u0180\u024f\u0250\u02af\u02b0\u02ff\u0300\u036f\u0370\u03ff\u0400\u04ff\u0530\u058f\u0590\u05ff\u0600\u06ff\u0700\u074f\u0780\u07bf\u0900\u097f\u0980\u09ff\u0a00\u0a7f\u0a80\u0aff\u0b00\u0b7f\u0b80\u0bff\u0c00\u0c7f\u0c80\u0cff\u0d00\u0d7f\u0d80\u0dff\u0e00\u0e7f\u0e80\u0eff\u0f00\u0fff\u1000\u109f\u10a0\u10ff\u1100\u11ff\u1200\u137f\u13a0\u13ff\u1400\u167f\u1680\u169f\u16a0\u16ff\u1780\u17ff\u1800\u18af\u1e00\u1eff\u1f00\u1fff\u2000\u206f\u2070\u209f\u20a0\u20cf\u20d0\u20ff\u2100\u214f\u2150\u218f\u2190\u21ff\u2200\u22ff\u2300\u23ff\u2400\u243f\u2440\u245f\u2460\u24ff\u2500\u257f\u2580\u259f\u25a0\u25ff\u2600\u26ff\u2700\u27bf\u2800\u28ff\u2e80\u2eff\u2f00\u2fdf\u2ff0\u2fff\u3000\u303f\u3040\u309f\u30a0\u30ff\u3100\u312f\u3130\u318f\u3190\u319f\u31a0\u31bf\u3200\u32ff\u3300\u33ff\u3400\u4db5\u4e00\u9fff\ua000\ua48f\ua490\ua4cf\uac00\ud7a3\ue000\uf8ff\uf900\ufaff\ufb00\ufb4f\ufb50\ufdff\ufe20\ufe2f\ufe30\ufe4f\ufe50\ufe6f\ufe70\ufefe\ufeff\ufeff\uff00\uffef",yte="UNASSIGNED",vte={3:1,117:1},wte="org.eclipse.emf.ecore.xml.type.util",xte={3:1,4:1,5:1,368:1},Rte="org.eclipse.xtext.xbase.lib",_te="Cannot add elements to a Range",kte="Cannot set elements in a Range",Ete="Cannot remove elements from a Range",Cte="locale",Ste="default",Tte="user.agent";i.goog=i.goog||{},i.goog.global=i.goog.global||i,YEt(),fIt(1,null,{},a),kGt.Fb=function(t){return FD(this,t)},kGt.Gb=function(){return this.gm},kGt.Hb=function(){return EM(this)},kGt.Ib=function(){return JR(tlt(this))+"@"+(Qct(this)>>>0).toString(16)},kGt.equals=function(t){return this.Fb(t)},kGt.hashCode=function(){return this.Hb()},kGt.toString=function(){return this.Ib()},fIt(290,1,{290:1,2026:1},bct),kGt.le=function(t){var e;return(e=new bct).i=4,e.c=t>1?gQ(this,t-1):this,e},kGt.me=function(){return xB(this),this.b},kGt.ne=function(){return JR(this)},kGt.oe=function(){return xB(this),this.k},kGt.pe=function(){return 0!=(4&this.i)},kGt.qe=function(){return 0!=(1&this.i)},kGt.Ib=function(){return ret(this)},kGt.i=0;var Ate,Dte=bY(BGt,"Object",1),Ite=bY(BGt,"Class",290);fIt(1998,1,PGt),bY(FGt,"Optional",1998),fIt(1170,1998,PGt,r),kGt.Fb=function(t){return t===this},kGt.Hb=function(){return 2040732332},kGt.Ib=function(){return"Optional.absent()"},kGt.Jb=function(t){return yY(t),ew(),Ate},bY(FGt,"Absent",1170),fIt(628,1,{},mx),bY(FGt,"Joiner",628);var Lte=dU(FGt,"Predicate");fIt(582,1,{169:1,582:1,3:1,45:1},jd),kGt.Mb=function(t){return Pct(this,t)},kGt.Lb=function(t){return Pct(this,t)},kGt.Fb=function(t){var e;return!!iO(t,582)&&(e=jz(t,582),OIt(this.a,e.a))},kGt.Hb=function(){return jct(this.a)+306654252},kGt.Ib=function(){return fSt(this.a)},bY(FGt,"Predicates/AndPredicate",582),fIt(408,1998,{408:1,3:1},$d),kGt.Fb=function(t){var e;return!!iO(t,408)&&(e=jz(t,408),Odt(this.a,e.a))},kGt.Hb=function(){return 1502476572+Qct(this.a)},kGt.Ib=function(){return UGt+this.a+")"},kGt.Jb=function(t){return new $d(WK(t.Kb(this.a),"the Function passed to Optional.transform() must not return null."))},bY(FGt,"Present",408),fIt(198,1,qGt),kGt.Nb=function(t){lW(this,t)},kGt.Qb=function(){dx()},bY(WGt,"UnmodifiableIterator",198),fIt(1978,198,YGt),kGt.Qb=function(){dx()},kGt.Rb=function(t){throw $m(new py)},kGt.Wb=function(t){throw $m(new py)},bY(WGt,"UnmodifiableListIterator",1978),fIt(386,1978,YGt),kGt.Ob=function(){return this.c<this.d},kGt.Sb=function(){return this.c>0},kGt.Pb=function(){if(this.c>=this.d)throw $m(new yy);return this.Xb(this.c++)},kGt.Tb=function(){return this.c},kGt.Ub=function(){if(this.c<=0)throw $m(new yy);return this.Xb(--this.c)},kGt.Vb=function(){return this.c-1},kGt.c=0,kGt.d=0,bY(WGt,"AbstractIndexedListIterator",386),fIt(699,198,qGt),kGt.Ob=function(){return Jit(this)},kGt.Pb=function(){return E9(this)},kGt.e=1,bY(WGt,"AbstractIterator",699),fIt(1986,1,{224:1}),kGt.Zb=function(){return this.f||(this.f=this.ac())},kGt.Fb=function(t){return xlt(this,t)},kGt.Hb=function(){return Qct(this.Zb())},kGt.dc=function(){return 0==this.gc()},kGt.ec=function(){return gq(this)},kGt.Ib=function(){return $ft(this.Zb())},bY(WGt,"AbstractMultimap",1986),fIt(726,1986,GGt),kGt.$b=function(){fit(this)},kGt._b=function(t){return WR(this,t)},kGt.ac=function(){return new pk(this,this.c)},kGt.ic=function(t){return this.hc()},kGt.bc=function(){return new $O(this,this.c)},kGt.jc=function(){return this.mc(this.hc())},kGt.kc=function(){return new $v(this)},kGt.lc=function(){return Hkt(this.c.vc().Nc(),new s,64,this.d)},kGt.cc=function(t){return c7(this,t)},kGt.fc=function(t){return Out(this,t)},kGt.gc=function(){return this.d},kGt.mc=function(t){return kK(),new $f(t)},kGt.nc=function(){return new jv(this)},kGt.oc=function(){return Hkt(this.c.Cc().Nc(),new o,64,this.d)},kGt.pc=function(t,e){return new W7(this,t,e,null)},kGt.d=0,bY(WGt,"AbstractMapBasedMultimap",726),fIt(1631,726,GGt),kGt.hc=function(){return new K7(this.a)},kGt.jc=function(){return kK(),kK(),cne},kGt.cc=function(t){return jz(c7(this,t),15)},kGt.fc=function(t){return jz(Out(this,t),15)},kGt.Zb=function(){return TK(this)},kGt.Fb=function(t){return xlt(this,t)},kGt.qc=function(t){return jz(c7(this,t),15)},kGt.rc=function(t){return jz(Out(this,t),15)},kGt.mc=function(t){return nX(jz(t,15))},kGt.pc=function(t,e){return e4(this,t,jz(e,15),null)},bY(WGt,"AbstractListMultimap",1631),fIt(732,1,ZGt),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return this.c.Ob()||this.e.Ob()},kGt.Pb=function(){var t;return this.e.Ob()||(t=jz(this.c.Pb(),42),this.b=t.cd(),this.a=jz(t.dd(),14),this.e=this.a.Kc()),this.sc(this.b,this.e.Pb())},kGt.Qb=function(){this.e.Qb(),this.a.dc()&&this.c.Qb(),--this.d.d},bY(WGt,"AbstractMapBasedMultimap/Itr",732),fIt(1099,732,ZGt,jv),kGt.sc=function(t,e){return e},bY(WGt,"AbstractMapBasedMultimap/1",1099),fIt(1100,1,{},o),kGt.Kb=function(t){return jz(t,14).Nc()},bY(WGt,"AbstractMapBasedMultimap/1methodref$spliterator$Type",1100),fIt(1101,732,ZGt,$v),kGt.sc=function(t,e){return new bk(t,e)},bY(WGt,"AbstractMapBasedMultimap/2",1101);var Ote=dU(KGt,"Map");fIt(1967,1,XGt),kGt.wc=function(t){Qrt(this,t)},kGt.yc=function(t,e,n){return Jht(this,t,e,n)},kGt.$b=function(){this.vc().$b()},kGt.tc=function(t){return kvt(this,t)},kGt._b=function(t){return!!j_t(this,t,!1)},kGt.uc=function(t){var e,n;for(e=this.vc().Kc();e.Ob();)if(n=jz(e.Pb(),42).dd(),HA(t)===HA(n)||null!=t&&Odt(t,n))return!0;return!1},kGt.Fb=function(t){var e,n,i;if(t===this)return!0;if(!iO(t,83)||(i=jz(t,83),this.gc()!=i.gc()))return!1;for(n=i.vc().Kc();n.Ob();)if(e=jz(n.Pb(),42),!this.tc(e))return!1;return!0},kGt.xc=function(t){return zA(j_t(this,t,!1))},kGt.Hb=function(){return zst(this.vc())},kGt.dc=function(){return 0==this.gc()},kGt.ec=function(){return new Cf(this)},kGt.zc=function(t,e){throw $m(new Qw("Put not supported on this map"))},kGt.Ac=function(t){_rt(this,t)},kGt.Bc=function(t){return zA(j_t(this,t,!0))},kGt.gc=function(){return this.vc().gc()},kGt.Ib=function(){return Q_t(this)},kGt.Cc=function(){return new Tf(this)},bY(KGt,"AbstractMap",1967),fIt(1987,1967,XGt),kGt.bc=function(){return new kk(this)},kGt.vc=function(){return fq(this)},kGt.ec=function(){return this.g||(this.g=this.bc())},kGt.Cc=function(){return this.i||(this.i=new Ek(this))},bY(WGt,"Maps/ViewCachingAbstractMap",1987),fIt(389,1987,XGt,pk),kGt.xc=function(t){return wet(this,t)},kGt.Bc=function(t){return Jlt(this,t)},kGt.$b=function(){this.d==this.e.c?this.e.$b():CU(new TU(this))},kGt._b=function(t){return pdt(this.d,t)},kGt.Ec=function(){return new Vd(this)},kGt.Dc=function(){return this.Ec()},kGt.Fb=function(t){return this===t||Odt(this.d,t)},kGt.Hb=function(){return Qct(this.d)},kGt.ec=function(){return this.e.ec()},kGt.gc=function(){return this.d.gc()},kGt.Ib=function(){return $ft(this.d)},bY(WGt,"AbstractMapBasedMultimap/AsMap",389);var Mte=dU(BGt,"Iterable");fIt(28,1,JGt),kGt.Jc=function(t){t6(this,t)},kGt.Lc=function(){return this.Oc()},kGt.Nc=function(){return new h1(this,0)},kGt.Oc=function(){return new NU(null,this.Nc())},kGt.Fc=function(t){throw $m(new Qw("Add not supported on this collection"))},kGt.Gc=function(t){return jat(this,t)},kGt.$b=function(){RZ(this)},kGt.Hc=function(t){return vgt(this,t,!1)},kGt.Ic=function(t){return sst(this,t)},kGt.dc=function(){return 0==this.gc()},kGt.Mc=function(t){return vgt(this,t,!0)},kGt.Pc=function(){return iq(this)},kGt.Qc=function(t){return Rvt(this,t)},kGt.Ib=function(){return LEt(this)},bY(KGt,"AbstractCollection",28);var Nte=dU(KGt,"Set");fIt(QGt,28,tZt),kGt.Nc=function(){return new h1(this,1)},kGt.Fb=function(t){return nbt(this,t)},kGt.Hb=function(){return zst(this)},bY(KGt,"AbstractSet",QGt),fIt(1970,QGt,tZt),bY(WGt,"Sets/ImprovedAbstractSet",1970),fIt(1971,1970,tZt),kGt.$b=function(){this.Rc().$b()},kGt.Hc=function(t){return npt(this,t)},kGt.dc=function(){return this.Rc().dc()},kGt.Mc=function(t){var e;return!!this.Hc(t)&&(e=jz(t,42),this.Rc().ec().Mc(e.cd()))},kGt.gc=function(){return this.Rc().gc()},bY(WGt,"Maps/EntrySet",1971),fIt(1097,1971,tZt,Vd),kGt.Hc=function(t){return fdt(this.a.d.vc(),t)},kGt.Kc=function(){return new TU(this.a)},kGt.Rc=function(){return this.a},kGt.Mc=function(t){var e;return!!fdt(this.a.d.vc(),t)&&(e=jz(t,42),$6(this.a.e,e.cd()),!0)},kGt.Nc=function(){return Nz(this.a.d.vc().Nc(),new qd(this.a))},bY(WGt,"AbstractMapBasedMultimap/AsMap/AsMapEntries",1097),fIt(1098,1,{},qd),kGt.Kb=function(t){return e6(this.a,jz(t,42))},bY(WGt,"AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type",1098),fIt(730,1,ZGt,TU),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){var t;return t=jz(this.b.Pb(),42),this.a=jz(t.dd(),14),e6(this.c,t)},kGt.Ob=function(){return this.b.Ob()},kGt.Qb=function(){lot(!!this.a),this.b.Qb(),this.c.e.d-=this.a.gc(),this.a.$b(),this.a=null},bY(WGt,"AbstractMapBasedMultimap/AsMap/AsMapIterator",730),fIt(532,1970,tZt,kk),kGt.$b=function(){this.b.$b()},kGt.Hc=function(t){return this.b._b(t)},kGt.Jc=function(t){yY(t),this.b.wc(new ph(t))},kGt.dc=function(){return this.b.dc()},kGt.Kc=function(){return new uw(this.b.vc().Kc())},kGt.Mc=function(t){return!!this.b._b(t)&&(this.b.Bc(t),!0)},kGt.gc=function(){return this.b.gc()},bY(WGt,"Maps/KeySet",532),fIt(318,532,tZt,$O),kGt.$b=function(){CU(new tk(this,this.b.vc().Kc()))},kGt.Ic=function(t){return this.b.ec().Ic(t)},kGt.Fb=function(t){return this===t||Odt(this.b.ec(),t)},kGt.Hb=function(){return Qct(this.b.ec())},kGt.Kc=function(){return new tk(this,this.b.vc().Kc())},kGt.Mc=function(t){var e,n;return n=0,(e=jz(this.b.Bc(t),14))&&(n=e.gc(),e.$b(),this.a.d-=n),n>0},kGt.Nc=function(){return this.b.ec().Nc()},bY(WGt,"AbstractMapBasedMultimap/KeySet",318),fIt(731,1,ZGt,tk),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return this.c.Ob()},kGt.Pb=function(){return this.a=jz(this.c.Pb(),42),this.a.cd()},kGt.Qb=function(){var t;lot(!!this.a),t=jz(this.a.dd(),14),this.c.Qb(),this.b.a.d-=t.gc(),t.$b(),this.a=null},bY(WGt,"AbstractMapBasedMultimap/KeySet/1",731),fIt(491,389,{83:1,161:1},CB),kGt.bc=function(){return this.Sc()},kGt.ec=function(){return this.Tc()},kGt.Sc=function(){return new J_(this.c,this.Uc())},kGt.Tc=function(){return this.b||(this.b=this.Sc())},kGt.Uc=function(){return jz(this.d,161)},bY(WGt,"AbstractMapBasedMultimap/SortedAsMap",491),fIt(542,491,eZt,SB),kGt.bc=function(){return new Q_(this.a,jz(jz(this.d,161),171))},kGt.Sc=function(){return new Q_(this.a,jz(jz(this.d,161),171))},kGt.ec=function(){return jz(this.b||(this.b=new Q_(this.a,jz(jz(this.d,161),171))),271)},kGt.Tc=function(){return jz(this.b||(this.b=new Q_(this.a,jz(jz(this.d,161),171))),271)},kGt.Uc=function(){return jz(jz(this.d,161),171)},bY(WGt,"AbstractMapBasedMultimap/NavigableAsMap",542),fIt(490,318,nZt,J_),kGt.Nc=function(){return this.b.ec().Nc()},bY(WGt,"AbstractMapBasedMultimap/SortedKeySet",490),fIt(388,490,iZt,Q_),bY(WGt,"AbstractMapBasedMultimap/NavigableKeySet",388),fIt(541,28,JGt,W7),kGt.Fc=function(t){var e,n;return Vft(this),n=this.d.dc(),(e=this.d.Fc(t))&&(++this.f.d,n&&wP(this)),e},kGt.Gc=function(t){var e,n,i;return!t.dc()&&(Vft(this),i=this.d.gc(),(e=this.d.Gc(t))&&(n=this.d.gc(),this.f.d+=n-i,0==i&&wP(this)),e)},kGt.$b=function(){var t;Vft(this),0!=(t=this.d.gc())&&(this.d.$b(),this.f.d-=t,DV(this))},kGt.Hc=function(t){return Vft(this),this.d.Hc(t)},kGt.Ic=function(t){return Vft(this),this.d.Ic(t)},kGt.Fb=function(t){return t===this||(Vft(this),Odt(this.d,t))},kGt.Hb=function(){return Vft(this),Qct(this.d)},kGt.Kc=function(){return Vft(this),new Gz(this)},kGt.Mc=function(t){var e;return Vft(this),(e=this.d.Mc(t))&&(--this.f.d,DV(this)),e},kGt.gc=function(){return QA(this)},kGt.Nc=function(){return Vft(this),this.d.Nc()},kGt.Ib=function(){return Vft(this),$ft(this.d)},bY(WGt,"AbstractMapBasedMultimap/WrappedCollection",541);var Bte=dU(KGt,"List");fIt(728,541,{20:1,28:1,14:1,15:1},sq),kGt.ad=function(t){Fat(this,t)},kGt.Nc=function(){return Vft(this),this.d.Nc()},kGt.Vc=function(t,e){var n;Vft(this),n=this.d.dc(),jz(this.d,15).Vc(t,e),++this.a.d,n&&wP(this)},kGt.Wc=function(t,e){var n,i,a;return!e.dc()&&(Vft(this),a=this.d.gc(),(n=jz(this.d,15).Wc(t,e))&&(i=this.d.gc(),this.a.d+=i-a,0==a&&wP(this)),n)},kGt.Xb=function(t){return Vft(this),jz(this.d,15).Xb(t)},kGt.Xc=function(t){return Vft(this),jz(this.d,15).Xc(t)},kGt.Yc=function(){return Vft(this),new gL(this)},kGt.Zc=function(t){return Vft(this),new gK(this,t)},kGt.$c=function(t){var e;return Vft(this),e=jz(this.d,15).$c(t),--this.a.d,DV(this),e},kGt._c=function(t,e){return Vft(this),jz(this.d,15)._c(t,e)},kGt.bd=function(t,e){return Vft(this),e4(this.a,this.e,jz(this.d,15).bd(t,e),this.b?this.b:this)},bY(WGt,"AbstractMapBasedMultimap/WrappedList",728),fIt(1096,728,{20:1,28:1,14:1,15:1,54:1},TN),bY(WGt,"AbstractMapBasedMultimap/RandomAccessWrappedList",1096),fIt(620,1,ZGt,Gz),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return _Z(this),this.b.Ob()},kGt.Pb=function(){return _Z(this),this.b.Pb()},kGt.Qb=function(){tM(this)},bY(WGt,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",620),fIt(729,620,aZt,gL,gK),kGt.Qb=function(){tM(this)},kGt.Rb=function(t){var e;e=0==QA(this.a),(_Z(this),jz(this.b,125)).Rb(t),++this.a.a.d,e&&wP(this.a)},kGt.Sb=function(){return(_Z(this),jz(this.b,125)).Sb()},kGt.Tb=function(){return(_Z(this),jz(this.b,125)).Tb()},kGt.Ub=function(){return(_Z(this),jz(this.b,125)).Ub()},kGt.Vb=function(){return(_Z(this),jz(this.b,125)).Vb()},kGt.Wb=function(t){(_Z(this),jz(this.b,125)).Wb(t)},bY(WGt,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",729),fIt(727,541,nZt,LB),kGt.Nc=function(){return Vft(this),this.d.Nc()},bY(WGt,"AbstractMapBasedMultimap/WrappedSortedSet",727),fIt(1095,727,iZt,AI),bY(WGt,"AbstractMapBasedMultimap/WrappedNavigableSet",1095),fIt(1094,541,tZt,OB),kGt.Nc=function(){return Vft(this),this.d.Nc()},bY(WGt,"AbstractMapBasedMultimap/WrappedSet",1094),fIt(1103,1,{},s),kGt.Kb=function(t){return F7(jz(t,42))},bY(WGt,"AbstractMapBasedMultimap/lambda$1$Type",1103),fIt(1102,1,{},Wd),kGt.Kb=function(t){return new bk(this.a,t)},bY(WGt,"AbstractMapBasedMultimap/lambda$2$Type",1102);var Pte,Fte,jte,$te,zte=dU(KGt,"Map/Entry");fIt(345,1,rZt),kGt.Fb=function(t){var e;return!!iO(t,42)&&(e=jz(t,42),hG(this.cd(),e.cd())&&hG(this.dd(),e.dd()))},kGt.Hb=function(){var t,e;return t=this.cd(),e=this.dd(),(null==t?0:Qct(t))^(null==e?0:Qct(e))},kGt.ed=function(t){throw $m(new py)},kGt.Ib=function(){return this.cd()+"="+this.dd()},bY(WGt,oZt,345),fIt(1988,28,JGt),kGt.$b=function(){this.fd().$b()},kGt.Hc=function(t){var e;return!!iO(t,42)&&(e=jz(t,42),$0(this.fd(),e.cd(),e.dd()))},kGt.Mc=function(t){var e;return!!iO(t,42)&&(e=jz(t,42),z0(this.fd(),e.cd(),e.dd()))},kGt.gc=function(){return this.fd().d},bY(WGt,"Multimaps/Entries",1988),fIt(733,1988,JGt,Yd),kGt.Kc=function(){return this.a.kc()},kGt.fd=function(){return this.a},kGt.Nc=function(){return this.a.lc()},bY(WGt,"AbstractMultimap/Entries",733),fIt(734,733,tZt,zv),kGt.Nc=function(){return this.a.lc()},kGt.Fb=function(t){return VCt(this,t)},kGt.Hb=function(){return $at(this)},bY(WGt,"AbstractMultimap/EntrySet",734),fIt(735,28,JGt,Gd),kGt.$b=function(){this.a.$b()},kGt.Hc=function(t){return Tlt(this.a,t)},kGt.Kc=function(){return this.a.nc()},kGt.gc=function(){return this.a.d},kGt.Nc=function(){return this.a.oc()},bY(WGt,"AbstractMultimap/Values",735),fIt(1989,28,{835:1,20:1,28:1,14:1}),kGt.Jc=function(t){yY(t),xZ(this).Jc(new gh(t))},kGt.Nc=function(){var t;return Hkt(t=xZ(this).Nc(),new w,64|1296&t.qd(),this.a.d)},kGt.Fc=function(t){return hx(),!0},kGt.Gc=function(t){return yY(this),yY(t),iO(t,543)?u2(jz(t,835)):!t.dc()&<t(this,t.Kc())},kGt.Hc=function(t){var e;return((e=jz(ddt(TK(this.a),t),14))?e.gc():0)>0},kGt.Fb=function(t){return lLt(this,t)},kGt.Hb=function(){return Qct(xZ(this))},kGt.dc=function(){return xZ(this).dc()},kGt.Mc=function(t){return RAt(this,t,1)>0},kGt.Ib=function(){return $ft(xZ(this))},bY(WGt,"AbstractMultiset",1989),fIt(1991,1970,tZt),kGt.$b=function(){fit(this.a.a)},kGt.Hc=function(t){var e;return!(!iO(t,492)||(e=jz(t,416),jz(e.a.dd(),14).gc()<=0||i1(this.a,e.a.cd())!=jz(e.a.dd(),14).gc()))},kGt.Mc=function(t){var e,n,i;return!(!iO(t,492)||(n=jz(t,416),e=n.a.cd(),i=jz(n.a.dd(),14).gc(),0==i))&&_At(this.a,e,i)},bY(WGt,"Multisets/EntrySet",1991),fIt(1109,1991,tZt,Zd),kGt.Kc=function(){return new hw(fq(TK(this.a.a)).Kc())},kGt.gc=function(){return TK(this.a.a).gc()},bY(WGt,"AbstractMultiset/EntrySet",1109),fIt(619,726,GGt),kGt.hc=function(){return this.gd()},kGt.jc=function(){return this.hd()},kGt.cc=function(t){return this.jd(t)},kGt.fc=function(t){return this.kd(t)},kGt.Zb=function(){return this.f||(this.f=this.ac())},kGt.hd=function(){return kK(),kK(),une},kGt.Fb=function(t){return xlt(this,t)},kGt.jd=function(t){return jz(c7(this,t),21)},kGt.kd=function(t){return jz(Out(this,t),21)},kGt.mc=function(t){return kK(),new Ax(jz(t,21))},kGt.pc=function(t,e){return new OB(this,t,jz(e,21))},bY(WGt,"AbstractSetMultimap",619),fIt(1657,619,GGt),kGt.hc=function(){return new f_(this.b)},kGt.gd=function(){return new f_(this.b)},kGt.jc=function(){return SY(new f_(this.b))},kGt.hd=function(){return SY(new f_(this.b))},kGt.cc=function(t){return jz(jz(c7(this,t),21),84)},kGt.jd=function(t){return jz(jz(c7(this,t),21),84)},kGt.fc=function(t){return jz(jz(Out(this,t),21),84)},kGt.kd=function(t){return jz(jz(Out(this,t),21),84)},kGt.mc=function(t){return iO(t,271)?SY(jz(t,271)):(kK(),new fM(jz(t,84)))},kGt.Zb=function(){return this.f||(this.f=iO(this.c,171)?new SB(this,jz(this.c,171)):iO(this.c,161)?new CB(this,jz(this.c,161)):new pk(this,this.c))},kGt.pc=function(t,e){return iO(e,271)?new AI(this,t,jz(e,271)):new LB(this,t,jz(e,84))},bY(WGt,"AbstractSortedSetMultimap",1657),fIt(1658,1657,GGt),kGt.Zb=function(){return jz(jz(this.f||(this.f=iO(this.c,171)?new SB(this,jz(this.c,171)):iO(this.c,161)?new CB(this,jz(this.c,161)):new pk(this,this.c)),161),171)},kGt.ec=function(){return jz(jz(this.i||(this.i=iO(this.c,171)?new Q_(this,jz(this.c,171)):iO(this.c,161)?new J_(this,jz(this.c,161)):new $O(this,this.c)),84),271)},kGt.bc=function(){return iO(this.c,171)?new Q_(this,jz(this.c,171)):iO(this.c,161)?new J_(this,jz(this.c,161)):new $O(this,this.c)},bY(WGt,"AbstractSortedKeySortedSetMultimap",1658),fIt(2010,1,{1947:1}),kGt.Fb=function(t){return SRt(this,t)},kGt.Hb=function(){return zst(this.g||(this.g=new Kd(this)))},kGt.Ib=function(){return Q_t(this.f||(this.f=new VO(this)))},bY(WGt,"AbstractTable",2010),fIt(665,QGt,tZt,Kd),kGt.$b=function(){fx()},kGt.Hc=function(t){var e,n;return!!iO(t,468)&&(e=jz(t,682),!!(n=jz(ddt(wY(this.a),WA(e.c.e,e.b)),83))&&fdt(n.vc(),new bk(WA(e.c.c,e.a),V7(e.c,e.b,e.a))))},kGt.Kc=function(){return XK(this.a)},kGt.Mc=function(t){var e,n;return!!iO(t,468)&&(e=jz(t,682),!!(n=jz(ddt(wY(this.a),WA(e.c.e,e.b)),83))&&gdt(n.vc(),new bk(WA(e.c.c,e.a),V7(e.c,e.b,e.a))))},kGt.gc=function(){return UU(this.a)},kGt.Nc=function(){return E2(this.a)},bY(WGt,"AbstractTable/CellSet",665),fIt(1928,28,JGt,Xd),kGt.$b=function(){fx()},kGt.Hc=function(t){return lkt(this.a,t)},kGt.Kc=function(){return JK(this.a)},kGt.gc=function(){return UU(this.a)},kGt.Nc=function(){return Z0(this.a)},bY(WGt,"AbstractTable/Values",1928),fIt(1632,1631,GGt),bY(WGt,"ArrayListMultimapGwtSerializationDependencies",1632),fIt(513,1632,GGt,ox,o1),kGt.hc=function(){return new K7(this.a)},kGt.a=0,bY(WGt,"ArrayListMultimap",513),fIt(664,2010,{664:1,1947:1,3:1},mDt),bY(WGt,"ArrayTable",664),fIt(1924,386,YGt,zO),kGt.Xb=function(t){return new pct(this.a,t)},bY(WGt,"ArrayTable/1",1924),fIt(1925,1,{},zd),kGt.ld=function(t){return new pct(this.a,t)},bY(WGt,"ArrayTable/1methodref$getCell$Type",1925),fIt(2011,1,{682:1}),kGt.Fb=function(t){var e;return t===this||!!iO(t,468)&&(e=jz(t,682),hG(WA(this.c.e,this.b),WA(e.c.e,e.b))&&hG(WA(this.c.c,this.a),WA(e.c.c,e.a))&&hG(V7(this.c,this.b,this.a),V7(e.c,e.b,e.a)))},kGt.Hb=function(){return uut(Cst(Hx(Dte,1),zGt,1,5,[WA(this.c.e,this.b),WA(this.c.c,this.a),V7(this.c,this.b,this.a)]))},kGt.Ib=function(){return"("+WA(this.c.e,this.b)+","+WA(this.c.c,this.a)+")="+V7(this.c,this.b,this.a)},bY(WGt,"Tables/AbstractCell",2011),fIt(468,2011,{468:1,682:1},pct),kGt.a=0,kGt.b=0,kGt.d=0,bY(WGt,"ArrayTable/2",468),fIt(1927,1,{},Hd),kGt.ld=function(t){return Z8(this.a,t)},bY(WGt,"ArrayTable/2methodref$getValue$Type",1927),fIt(1926,386,YGt,HO),kGt.Xb=function(t){return Z8(this.a,t)},bY(WGt,"ArrayTable/3",1926),fIt(1979,1967,XGt),kGt.$b=function(){CU(this.kc())},kGt.vc=function(){return new bh(this)},kGt.lc=function(){return new CZ(this.kc(),this.gc())},bY(WGt,"Maps/IteratorBasedAbstractMap",1979),fIt(828,1979,XGt),kGt.$b=function(){throw $m(new py)},kGt._b=function(t){return ZR(this.c,t)},kGt.kc=function(){return new UO(this,this.c.b.c.gc())},kGt.lc=function(){return yU(this.c.b.c.gc(),16,new Ud(this))},kGt.xc=function(t){var e;return(e=jz(VF(this.c,t),19))?this.nd(e.a):null},kGt.dc=function(){return this.c.b.c.dc()},kGt.ec=function(){return dq(this.c)},kGt.zc=function(t,e){var n;if(!(n=jz(VF(this.c,t),19)))throw $m(new Pw(this.md()+" "+t+" not in "+dq(this.c)));return this.od(n.a,e)},kGt.Bc=function(t){throw $m(new py)},kGt.gc=function(){return this.c.b.c.gc()},bY(WGt,"ArrayTable/ArrayMap",828),fIt(1923,1,{},Ud),kGt.ld=function(t){return TY(this.a,t)},bY(WGt,"ArrayTable/ArrayMap/0methodref$getEntry$Type",1923),fIt(1921,345,rZt,sk),kGt.cd=function(){return ZO(this.a,this.b)},kGt.dd=function(){return this.a.nd(this.b)},kGt.ed=function(t){return this.a.od(this.b,t)},kGt.b=0,bY(WGt,"ArrayTable/ArrayMap/1",1921),fIt(1922,386,YGt,UO),kGt.Xb=function(t){return TY(this.a,t)},bY(WGt,"ArrayTable/ArrayMap/2",1922),fIt(1920,828,XGt,iW),kGt.md=function(){return"Column"},kGt.nd=function(t){return V7(this.b,this.a,t)},kGt.od=function(t,e){return Est(this.b,this.a,t,e)},kGt.a=0,bY(WGt,"ArrayTable/Row",1920),fIt(829,828,XGt,VO),kGt.nd=function(t){return new iW(this.a,t)},kGt.zc=function(t,e){return jz(e,83),gx()},kGt.od=function(t,e){return jz(e,83),px()},kGt.md=function(){return"Row"},bY(WGt,"ArrayTable/RowMap",829),fIt(1120,1,uZt,ck),kGt.qd=function(){return-262&this.a.qd()},kGt.rd=function(){return this.a.rd()},kGt.Nb=function(t){this.a.Nb(new ik(t,this.b))},kGt.sd=function(t){return this.a.sd(new nk(t,this.b))},bY(WGt,"CollectSpliterators/1",1120),fIt(1121,1,dZt,nk),kGt.td=function(t){this.a.td(this.b.Kb(t))},bY(WGt,"CollectSpliterators/1/lambda$0$Type",1121),fIt(1122,1,dZt,ik),kGt.td=function(t){this.a.td(this.b.Kb(t))},bY(WGt,"CollectSpliterators/1/lambda$1$Type",1122),fIt(1123,1,uZt,z2),kGt.qd=function(){return this.a},kGt.rd=function(){return this.d&&(this.b=RL(this.b,this.d.rd())),RL(this.b,0)},kGt.Nb=function(t){this.d&&(this.d.Nb(t),this.d=null),this.c.Nb(new ek(this.e,t)),this.b=0},kGt.sd=function(t){for(;;){if(this.d&&this.d.sd(t))return KA(this.b,hZt)&&(this.b=nft(this.b,1)),!0;if(this.d=null,!this.c.sd(new ak(this,this.e)))return!1}},kGt.a=0,kGt.b=0,bY(WGt,"CollectSpliterators/1FlatMapSpliterator",1123),fIt(1124,1,dZt,ak),kGt.td=function(t){fF(this.a,this.b,t)},bY(WGt,"CollectSpliterators/1FlatMapSpliterator/lambda$0$Type",1124),fIt(1125,1,dZt,ek),kGt.td=function(t){oO(this.b,this.a,t)},bY(WGt,"CollectSpliterators/1FlatMapSpliterator/lambda$1$Type",1125),fIt(1117,1,uZt,hF),kGt.qd=function(){return 16464|this.b},kGt.rd=function(){return this.a.rd()},kGt.Nb=function(t){this.a.xe(new ok(t,this.c))},kGt.sd=function(t){return this.a.ye(new rk(t,this.c))},kGt.b=0,bY(WGt,"CollectSpliterators/1WithCharacteristics",1117),fIt(1118,1,fZt,rk),kGt.ud=function(t){this.a.td(this.b.ld(t))},bY(WGt,"CollectSpliterators/1WithCharacteristics/lambda$0$Type",1118),fIt(1119,1,fZt,ok),kGt.ud=function(t){this.a.td(this.b.ld(t))},bY(WGt,"CollectSpliterators/1WithCharacteristics/lambda$1$Type",1119),fIt(245,1,gZt),kGt.wd=function(t){return this.vd(jz(t,245))},kGt.vd=function(t){var e;return t==(Qv(),Fte)?1:t==(tw(),Pte)?-1:(JH(),0!=(e=Ort(this.a,t.a))?e:iO(this,519)==iO(t,519)?0:iO(this,519)?1:-1)},kGt.zd=function(){return this.a},kGt.Fb=function(t){return Mpt(this,t)},bY(WGt,"Cut",245),fIt(1761,245,gZt,Lx),kGt.vd=function(t){return t==this?0:1},kGt.xd=function(t){throw $m(new cy)},kGt.yd=function(t){t.a+="+\u221e)"},kGt.zd=function(){throw $m(new Fw(pZt))},kGt.Hb=function(){return Dk(),eyt(this)},kGt.Ad=function(t){return!1},kGt.Ib=function(){return"+\u221e"},bY(WGt,"Cut/AboveAll",1761),fIt(519,245,{245:1,519:1,3:1,35:1},eM),kGt.xd=function(t){rD((t.a+="(",t),this.a)},kGt.yd=function(t){OY(rD(t,this.a),93)},kGt.Hb=function(){return~Qct(this.a)},kGt.Ad=function(t){return JH(),Ort(this.a,t)<0},kGt.Ib=function(){return"/"+this.a+"\\"},bY(WGt,"Cut/AboveValue",519),fIt(1760,245,gZt,Ox),kGt.vd=function(t){return t==this?0:-1},kGt.xd=function(t){t.a+="(-\u221e"},kGt.yd=function(t){throw $m(new cy)},kGt.zd=function(){throw $m(new Fw(pZt))},kGt.Hb=function(){return Dk(),eyt(this)},kGt.Ad=function(t){return!0},kGt.Ib=function(){return"-\u221e"},bY(WGt,"Cut/BelowAll",1760),fIt(1762,245,gZt,nM),kGt.xd=function(t){rD((t.a+="[",t),this.a)},kGt.yd=function(t){OY(rD(t,this.a),41)},kGt.Hb=function(){return Qct(this.a)},kGt.Ad=function(t){return JH(),Ort(this.a,t)<=0},kGt.Ib=function(){return"\\"+this.a+"/"},bY(WGt,"Cut/BelowValue",1762),fIt(537,1,bZt),kGt.Jc=function(t){t6(this,t)},kGt.Ib=function(){return zht(jz(WK(this,"use Optional.orNull() instead of Optional.or(null)"),20).Kc())},bY(WGt,"FluentIterable",537),fIt(433,537,bZt,TD),kGt.Kc=function(){return new oq(XO(this.a.Kc(),new u))},bY(WGt,"FluentIterable/2",433),fIt(1046,537,bZt,AD),kGt.Kc=function(){return LW(this)},bY(WGt,"FluentIterable/3",1046),fIt(708,386,YGt,WO),kGt.Xb=function(t){return this.a[t].Kc()},bY(WGt,"FluentIterable/3/1",708),fIt(1972,1,{}),kGt.Ib=function(){return $ft(this.Bd().b)},bY(WGt,"ForwardingObject",1972),fIt(1973,1972,mZt),kGt.Bd=function(){return this.Cd()},kGt.Jc=function(t){t6(this,t)},kGt.Lc=function(){return this.Oc()},kGt.Nc=function(){return new h1(this,0)},kGt.Oc=function(){return new NU(null,this.Nc())},kGt.Fc=function(t){return this.Cd(),o_()},kGt.Gc=function(t){return this.Cd(),s_()},kGt.$b=function(){this.Cd(),c_()},kGt.Hc=function(t){return this.Cd().Hc(t)},kGt.Ic=function(t){return this.Cd().Ic(t)},kGt.dc=function(){return this.Cd().b.dc()},kGt.Kc=function(){return this.Cd().Kc()},kGt.Mc=function(t){return this.Cd(),l_()},kGt.gc=function(){return this.Cd().b.gc()},kGt.Pc=function(){return this.Cd().Pc()},kGt.Qc=function(t){return this.Cd().Qc(t)},bY(WGt,"ForwardingCollection",1973),fIt(1980,28,yZt),kGt.Kc=function(){return this.Ed()},kGt.Fc=function(t){throw $m(new py)},kGt.Gc=function(t){throw $m(new py)},kGt.$b=function(){throw $m(new py)},kGt.Hc=function(t){return null!=t&&vgt(this,t,!1)},kGt.Dd=function(){switch(this.gc()){case 0:return WY(),WY(),jte;case 1:return WY(),new EU(yY(this.Ed().Pb()));default:return new aW(this,this.Pc())}},kGt.Mc=function(t){throw $m(new py)},bY(WGt,"ImmutableCollection",1980),fIt(712,1980,yZt,ny),kGt.Kc=function(){return I8(this.a.Kc())},kGt.Hc=function(t){return null!=t&&this.a.Hc(t)},kGt.Ic=function(t){return this.a.Ic(t)},kGt.dc=function(){return this.a.dc()},kGt.Ed=function(){return I8(this.a.Kc())},kGt.gc=function(){return this.a.gc()},kGt.Pc=function(){return this.a.Pc()},kGt.Qc=function(t){return this.a.Qc(t)},kGt.Ib=function(){return $ft(this.a)},bY(WGt,"ForwardingImmutableCollection",712),fIt(152,1980,vZt),kGt.Kc=function(){return this.Ed()},kGt.Yc=function(){return this.Fd(0)},kGt.Zc=function(t){return this.Fd(t)},kGt.ad=function(t){Fat(this,t)},kGt.Nc=function(){return new h1(this,16)},kGt.bd=function(t,e){return this.Gd(t,e)},kGt.Vc=function(t,e){throw $m(new py)},kGt.Wc=function(t,e){throw $m(new py)},kGt.Fb=function(t){return HIt(this,t)},kGt.Hb=function(){return Tot(this)},kGt.Xc=function(t){return null==t?-1:_vt(this,t)},kGt.Ed=function(){return this.Fd(0)},kGt.Fd=function(t){return eN(this,t)},kGt.$c=function(t){throw $m(new py)},kGt._c=function(t,e){throw $m(new py)},kGt.Gd=function(t,e){return cdt(new s1(new Sk(this),t,e))},bY(WGt,"ImmutableList",152),fIt(2006,152,vZt),kGt.Kc=function(){return I8(this.Hd().Kc())},kGt.bd=function(t,e){return cdt(this.Hd().bd(t,e))},kGt.Hc=function(t){return null!=t&&this.Hd().Hc(t)},kGt.Ic=function(t){return this.Hd().Ic(t)},kGt.Fb=function(t){return Odt(this.Hd(),t)},kGt.Xb=function(t){return WA(this,t)},kGt.Hb=function(){return Qct(this.Hd())},kGt.Xc=function(t){return this.Hd().Xc(t)},kGt.dc=function(){return this.Hd().dc()},kGt.Ed=function(){return I8(this.Hd().Kc())},kGt.gc=function(){return this.Hd().gc()},kGt.Gd=function(t,e){return cdt(this.Hd().bd(t,e))},kGt.Pc=function(){return this.Hd().Qc(O5(Dte,zGt,1,this.Hd().gc(),5,1))},kGt.Qc=function(t){return this.Hd().Qc(t)},kGt.Ib=function(){return $ft(this.Hd())},bY(WGt,"ForwardingImmutableList",2006),fIt(714,1,xZt),kGt.vc=function(){return uq(this)},kGt.wc=function(t){Qrt(this,t)},kGt.ec=function(){return dq(this)},kGt.yc=function(t,e,n){return Jht(this,t,e,n)},kGt.Cc=function(){return this.Ld()},kGt.$b=function(){throw $m(new py)},kGt._b=function(t){return null!=this.xc(t)},kGt.uc=function(t){return this.Ld().Hc(t)},kGt.Jd=function(){return new iy(this)},kGt.Kd=function(){return new ay(this)},kGt.Fb=function(t){return Ilt(this,t)},kGt.Hb=function(){return uq(this).Hb()},kGt.dc=function(){return 0==this.gc()},kGt.zc=function(t,e){return bx()},kGt.Bc=function(t){throw $m(new py)},kGt.Ib=function(){return uCt(this)},kGt.Ld=function(){return this.e?this.e:this.e=this.Kd()},kGt.c=null,kGt.d=null,kGt.e=null,bY(WGt,"ImmutableMap",714),fIt(715,714,xZt),kGt._b=function(t){return ZR(this,t)},kGt.uc=function(t){return Pk(this.b,t)},kGt.Id=function(){return ldt(new Qd(this))},kGt.Jd=function(){return ldt(eZ(this.b))},kGt.Kd=function(){return sj(),new ny(QG(this.b))},kGt.Fb=function(t){return jk(this.b,t)},kGt.xc=function(t){return VF(this,t)},kGt.Hb=function(){return Qct(this.b.c)},kGt.dc=function(){return this.b.c.dc()},kGt.gc=function(){return this.b.c.gc()},kGt.Ib=function(){return $ft(this.b.c)},bY(WGt,"ForwardingImmutableMap",715),fIt(1974,1973,RZt),kGt.Bd=function(){return this.Md()},kGt.Cd=function(){return this.Md()},kGt.Nc=function(){return new h1(this,1)},kGt.Fb=function(t){return t===this||this.Md().Fb(t)},kGt.Hb=function(){return this.Md().Hb()},bY(WGt,"ForwardingSet",1974),fIt(1069,1974,RZt,Qd),kGt.Bd=function(){return tZ(this.a.b)},kGt.Cd=function(){return tZ(this.a.b)},kGt.Hc=function(t){if(iO(t,42)&&null==jz(t,42).cd())return!1;try{return Bk(tZ(this.a.b),t)}catch(e){if(iO(e=dst(e),205))return!1;throw $m(e)}},kGt.Md=function(){return tZ(this.a.b)},kGt.Qc=function(t){var e;return e=SX(tZ(this.a.b),t),tZ(this.a.b).b.gc()<e.length&&DY(e,tZ(this.a.b).b.gc(),null),e},bY(WGt,"ForwardingImmutableMap/1",1069),fIt(1981,1980,_Zt),kGt.Kc=function(){return this.Ed()},kGt.Nc=function(){return new h1(this,1)},kGt.Fb=function(t){return VCt(this,t)},kGt.Hb=function(){return $at(this)},bY(WGt,"ImmutableSet",1981),fIt(703,1981,_Zt),kGt.Kc=function(){return I8(new zf(this.a.b.Kc()))},kGt.Hc=function(t){return null!=t&&Ok(this.a,t)},kGt.Ic=function(t){return Mk(this.a,t)},kGt.Hb=function(){return Qct(this.a.b)},kGt.dc=function(){return this.a.b.dc()},kGt.Ed=function(){return I8(new zf(this.a.b.Kc()))},kGt.gc=function(){return this.a.b.gc()},kGt.Pc=function(){return this.a.b.Pc()},kGt.Qc=function(t){return Nk(this.a,t)},kGt.Ib=function(){return $ft(this.a.b)},bY(WGt,"ForwardingImmutableSet",703),fIt(1975,1974,kZt),kGt.Bd=function(){return this.b},kGt.Cd=function(){return this.b},kGt.Md=function(){return this.b},kGt.Nc=function(){return new hC(this)},bY(WGt,"ForwardingSortedSet",1975),fIt(533,1979,xZt,Dyt),kGt.Ac=function(t){_rt(this,t)},kGt.Cc=function(){return new pL(this.d||(this.d=new th(this)))},kGt.$b=function(){f6(this)},kGt._b=function(t){return!!Xat(this,t,fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15))))},kGt.uc=function(t){return Let(this,t)},kGt.kc=function(){return new YO(this,this)},kGt.wc=function(t){jJ(this,t)},kGt.xc=function(t){return cnt(this,t)},kGt.ec=function(){return new bL(this)},kGt.zc=function(t,e){return fFt(this,t,e)},kGt.Bc=function(t){var e;return(e=Xat(this,t,fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15)))))?(LOt(this,e),e.e=null,e.c=null,e.i):null},kGt.gc=function(){return this.i},kGt.pd=function(){return new pL(this.d||(this.d=new th(this)))},kGt.f=0,kGt.g=0,kGt.i=0,bY(WGt,"HashBiMap",533),fIt(534,1,ZGt),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return u4(this)},kGt.Pb=function(){var t;if(!u4(this))throw $m(new yy);return t=this.c,this.c=t.c,this.f=t,--this.d,this.Nd(t)},kGt.Qb=function(){if(this.e.g!=this.b)throw $m(new by);lot(!!this.f),LOt(this.e,this.f),this.b=this.e.g,this.f=null},kGt.b=0,kGt.d=0,kGt.f=null,bY(WGt,"HashBiMap/Itr",534),fIt(1011,534,ZGt,YO),kGt.Nd=function(t){return new dk(this,t)},bY(WGt,"HashBiMap/1",1011),fIt(1012,345,rZt,dk),kGt.cd=function(){return this.a.g},kGt.dd=function(){return this.a.i},kGt.ed=function(t){var e,n,i;return n=this.a.i,(i=fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15))))==this.a.f&&(HA(t)===HA(n)||null!=t&&Odt(t,n))?t:(vst(!Jat(this.b.a,t,i),t),LOt(this.b.a,this.a),e=new zG(this.a.g,this.a.a,t,i),KTt(this.b.a,e,this.a),this.a.e=null,this.a.c=null,this.b.b=this.b.a.g,this.b.f==this.a&&(this.b.f=e),this.a=e,n)},bY(WGt,"HashBiMap/1/MapEntry",1012),fIt(238,345,{345:1,238:1,3:1,42:1},bk),kGt.cd=function(){return this.g},kGt.dd=function(){return this.i},kGt.ed=function(t){throw $m(new py)},bY(WGt,"ImmutableEntry",238),fIt(317,238,{345:1,317:1,238:1,3:1,42:1},zG),kGt.a=0,kGt.f=0;var Hte,Ute=bY(WGt,"HashBiMap/BiEntry",317);fIt(610,1979,xZt,th),kGt.Ac=function(t){_rt(this,t)},kGt.Cc=function(){return new bL(this.a)},kGt.$b=function(){f6(this.a)},kGt._b=function(t){return Let(this.a,t)},kGt.kc=function(){return new GO(this,this.a)},kGt.wc=function(t){yY(t),jJ(this.a,new eh(t))},kGt.xc=function(t){return qit(this,t)},kGt.ec=function(){return new pL(this)},kGt.zc=function(t,e){return Sjt(this.a,t,e,!1)},kGt.Bc=function(t){var e;return(e=Jat(this.a,t,fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15)))))?(LOt(this.a,e),e.e=null,e.c=null,e.g):null},kGt.gc=function(){return this.a.i},kGt.pd=function(){return new bL(this.a)},bY(WGt,"HashBiMap/Inverse",610),fIt(1008,534,ZGt,GO),kGt.Nd=function(t){return new hk(this,t)},bY(WGt,"HashBiMap/Inverse/1",1008),fIt(1009,345,rZt,hk),kGt.cd=function(){return this.a.i},kGt.dd=function(){return this.a.g},kGt.ed=function(t){var e,n,i;return i=this.a.g,(e=fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15))))==this.a.a&&(HA(t)===HA(i)||null!=t&&Odt(t,i))?t:(vst(!Xat(this.b.a.a,t,e),t),LOt(this.b.a.a,this.a),n=new zG(t,e,this.a.i,this.a.f),this.a=n,KTt(this.b.a.a,n,null),this.b.b=this.b.a.a.g,i)},bY(WGt,"HashBiMap/Inverse/1/InverseEntry",1009),fIt(611,532,tZt,pL),kGt.Kc=function(){return new rw(this.a.a)},kGt.Mc=function(t){var e;return!!(e=Jat(this.a.a,t,fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15)))))&&(LOt(this.a.a,e),!0)},bY(WGt,"HashBiMap/Inverse/InverseKeySet",611),fIt(1007,534,ZGt,rw),kGt.Nd=function(t){return t.i},bY(WGt,"HashBiMap/Inverse/InverseKeySet/1",1007),fIt(1010,1,{},eh),kGt.Od=function(t,e){ty(this.a,t,e)},bY(WGt,"HashBiMap/Inverse/lambda$0$Type",1010),fIt(609,532,tZt,bL),kGt.Kc=function(){return new ow(this.a)},kGt.Mc=function(t){var e;return!!(e=Xat(this.a,t,fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15)))))&&(LOt(this.a,e),e.e=null,e.c=null,!0)},bY(WGt,"HashBiMap/KeySet",609),fIt(1006,534,ZGt,ow),kGt.Nd=function(t){return t.g},bY(WGt,"HashBiMap/KeySet/1",1006),fIt(1093,619,GGt),bY(WGt,"HashMultimapGwtSerializationDependencies",1093),fIt(265,1093,GGt,pJ),kGt.hc=function(){return new d_(tet(this.a))},kGt.gd=function(){return new d_(tet(this.a))},kGt.a=2,bY(WGt,"HashMultimap",265),fIt(1999,152,vZt),kGt.Hc=function(t){return this.Pd().Hc(t)},kGt.dc=function(){return this.Pd().dc()},kGt.gc=function(){return this.Pd().gc()},bY(WGt,"ImmutableAsList",1999),fIt(1931,715,xZt),kGt.Ld=function(){return sj(),new yx(this.a)},kGt.Cc=function(){return sj(),new yx(this.a)},kGt.pd=function(){return sj(),new yx(this.a)},bY(WGt,"ImmutableBiMap",1931),fIt(1977,1,{}),bY(WGt,"ImmutableCollection/Builder",1977),fIt(1022,703,_Zt,sw),bY(WGt,"ImmutableEnumSet",1022),fIt(969,386,YGt,dF),kGt.Xb=function(t){return this.a.Xb(t)},bY(WGt,"ImmutableList/1",969),fIt(968,1977,{},sP),bY(WGt,"ImmutableList/Builder",968),fIt(614,198,qGt,nh),kGt.Ob=function(){return this.a.Ob()},kGt.Pb=function(){return jz(this.a.Pb(),42).cd()},bY(WGt,"ImmutableMap/1",614),fIt(1041,1,{},c),kGt.Kb=function(t){return jz(t,42).cd()},bY(WGt,"ImmutableMap/2methodref$getKey$Type",1041),fIt(1040,1,{},cP),bY(WGt,"ImmutableMap/Builder",1040),fIt(2e3,1981,_Zt),kGt.Kc=function(){return new nh(uq(this.a).Ed())},kGt.Dd=function(){return new ry(this)},kGt.Jc=function(t){var e,n;for(yY(t),n=this.gc(),e=0;e<n;e++)t.td(jz(hq(uq(this.a)).Xb(e),42).cd())},kGt.Ed=function(){var t;return(t=this.c,t||(this.c=new ry(this))).Ed()},kGt.Nc=function(){return yU(this.gc(),1296,new ah(this))},bY(WGt,"IndexedImmutableSet",2e3),fIt(1180,2e3,_Zt,iy),kGt.Kc=function(){return new nh(uq(this.a).Ed())},kGt.Hc=function(t){return this.a._b(t)},kGt.Jc=function(t){yY(t),Qrt(this.a,new ih(t))},kGt.Ed=function(){return new nh(uq(this.a).Ed())},kGt.gc=function(){return this.a.gc()},kGt.Nc=function(){return Nz(uq(this.a).Nc(),new c)},bY(WGt,"ImmutableMapKeySet",1180),fIt(1181,1,{},ih),kGt.Od=function(t,e){sj(),this.a.td(t)},bY(WGt,"ImmutableMapKeySet/lambda$0$Type",1181),fIt(1178,1980,yZt,ay),kGt.Kc=function(){return new BH(this)},kGt.Hc=function(t){return null!=t&&CRt(new BH(this),t)},kGt.Ed=function(){return new BH(this)},kGt.gc=function(){return this.a.gc()},kGt.Nc=function(){return Nz(uq(this.a).Nc(),new l)},bY(WGt,"ImmutableMapValues",1178),fIt(1179,1,{},l),kGt.Kb=function(t){return jz(t,42).dd()},bY(WGt,"ImmutableMapValues/0methodref$getValue$Type",1179),fIt(626,198,qGt,BH),kGt.Ob=function(){return this.a.Ob()},kGt.Pb=function(){return jz(this.a.Pb(),42).dd()},bY(WGt,"ImmutableMapValues/1",626),fIt(1182,1,{},ah),kGt.ld=function(t){return $W(this.a,t)},bY(WGt,"IndexedImmutableSet/0methodref$get$Type",1182),fIt(752,1999,vZt,ry),kGt.Pd=function(){return this.a},kGt.Xb=function(t){return $W(this.a,t)},kGt.gc=function(){return this.a.a.gc()},bY(WGt,"IndexedImmutableSet/1",752),fIt(44,1,{},u),kGt.Kb=function(t){return jz(t,20).Kc()},kGt.Fb=function(t){return this===t},bY(WGt,"Iterables/10",44),fIt(1042,537,bZt,PH),kGt.Jc=function(t){yY(t),this.b.Jc(new fk(this.a,t))},kGt.Kc=function(){return zI(this)},bY(WGt,"Iterables/4",1042),fIt(1043,1,dZt,fk),kGt.td=function(t){RC(this.b,this.a,t)},bY(WGt,"Iterables/4/lambda$0$Type",1043),fIt(1044,537,bZt,FH),kGt.Jc=function(t){yY(t),t6(this.a,new lk(t,this.b))},kGt.Kc=function(){return XO(new AO(this.a),this.b)},bY(WGt,"Iterables/5",1044),fIt(1045,1,dZt,lk),kGt.td=function(t){this.a.td(yI(t))},bY(WGt,"Iterables/5/lambda$0$Type",1045),fIt(1071,198,qGt,rh),kGt.Ob=function(){return this.a.Ob()},kGt.Pb=function(){return this.a.Pb()},bY(WGt,"Iterators/1",1071),fIt(1072,699,qGt,uk),kGt.Yb=function(){for(var t;this.b.Ob();)if(t=this.b.Pb(),this.a.Lb(t))return t;return this.e=2,null},bY(WGt,"Iterators/5",1072),fIt(487,1,ZGt),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return this.b.Ob()},kGt.Pb=function(){return this.Qd(this.b.Pb())},kGt.Qb=function(){this.b.Qb()},bY(WGt,"TransformedIterator",487),fIt(1073,487,ZGt,JO),kGt.Qd=function(t){return this.a.Kb(t)},bY(WGt,"Iterators/6",1073),fIt(717,198,qGt,oh),kGt.Ob=function(){return!this.a},kGt.Pb=function(){if(this.a)throw $m(new yy);return this.a=!0,this.b},kGt.a=!1,bY(WGt,"Iterators/9",717),fIt(1070,386,YGt,lV),kGt.Xb=function(t){return this.a[this.b+t]},kGt.b=0,bY(WGt,"Iterators/ArrayItr",1070),fIt(39,1,{39:1,47:1},oq),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return gIt(this)},kGt.Pb=function(){return V6(this)},kGt.Qb=function(){lot(!!this.c),this.c.Qb(),this.c=null},bY(WGt,"Iterators/ConcatenatedIterator",39),fIt(22,1,{3:1,35:1,22:1}),kGt.wd=function(t){return Ew(this,jz(t,22))},kGt.Fb=function(t){return this===t},kGt.Hb=function(){return EM(this)},kGt.Ib=function(){return fN(this)},kGt.g=0;var Vte=bY(BGt,"Enum",22);fIt(538,22,{538:1,3:1,35:1,22:1,47:1},iM),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return!1},kGt.Pb=function(){throw $m(new yy)},kGt.Qb=function(){lot(!1)};var qte,Wte,Yte=$nt(WGt,"Iterators/EmptyModifiableIterator",538,Vte,oY,nN);fIt(1834,619,GGt),bY(WGt,"LinkedHashMultimapGwtSerializationDependencies",1834),fIt(1835,1834,GGt,_ut),kGt.hc=function(){return new IM(tet(this.b))},kGt.$b=function(){fit(this),ey(this.a,this.a)},kGt.gd=function(){return new IM(tet(this.b))},kGt.ic=function(t){return new _lt(this,t,this.b)},kGt.kc=function(){return new QO(this)},kGt.lc=function(){return new h1(jz(this.g||(this.g=new zv(this)),21),17)},kGt.ec=function(){return this.i||(this.i=new $O(this,this.c))},kGt.nc=function(){return new dw(new QO(this))},kGt.oc=function(){return Nz(new h1(jz(this.g||(this.g=new zv(this)),21),17),new d)},kGt.b=2,bY(WGt,"LinkedHashMultimap",1835),fIt(1838,1,{},d),kGt.Kb=function(t){return jz(t,42).dd()},bY(WGt,"LinkedHashMultimap/0methodref$getValue$Type",1838),fIt(824,1,ZGt,QO),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return met(this)},kGt.Ob=function(){return this.a!=this.b.a},kGt.Qb=function(){lot(!!this.c),z0(this.b,this.c.g,this.c.i),this.c=null},bY(WGt,"LinkedHashMultimap/1",824),fIt(330,238,{345:1,238:1,330:1,2020:1,3:1,42:1},$G),kGt.Rd=function(){return this.f},kGt.Sd=function(t){this.c=t},kGt.Td=function(t){this.f=t},kGt.d=0;var Gte,Zte=bY(WGt,"LinkedHashMultimap/ValueEntry",330);fIt(1836,1970,{2020:1,20:1,28:1,14:1,21:1},_lt),kGt.Fc=function(t){var e,n,i,a,r;for(e=(r=fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15))))&this.b.length-1,n=a=this.b[e];n;n=n.a)if(n.d==r&&hG(n.i,t))return!1;return i=new $G(this.c,t,r,a),vx(this.d,i),i.f=this,this.d=i,ey(this.g.a.b,i),ey(i,this.g.a),this.b[e]=i,++this.f,++this.e,vRt(this),!0},kGt.$b=function(){var t,e;for(yC(this.b,null),this.f=0,t=this.a;t!=this;t=t.Rd())ey((e=jz(t,330)).b,e.e);this.a=this,this.d=this,++this.e},kGt.Hc=function(t){var e,n;for(n=fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15))),e=this.b[n&this.b.length-1];e;e=e.a)if(e.d==n&&hG(e.i,t))return!0;return!1},kGt.Jc=function(t){var e;for(yY(t),e=this.a;e!=this;e=e.Rd())t.td(jz(e,330).i)},kGt.Rd=function(){return this.a},kGt.Kc=function(){return new sG(this)},kGt.Mc=function(t){return wIt(this,t)},kGt.Sd=function(t){this.d=t},kGt.Td=function(t){this.a=t},kGt.gc=function(){return this.f},kGt.e=0,kGt.f=0,bY(WGt,"LinkedHashMultimap/ValueSet",1836),fIt(1837,1,ZGt,sG),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return hV(this),this.b!=this.c},kGt.Pb=function(){var t,e;if(hV(this),this.b==this.c)throw $m(new yy);return e=(t=jz(this.b,330)).i,this.d=t,this.b=t.f,e},kGt.Qb=function(){hV(this),lot(!!this.d),wIt(this.c,this.d.i),this.a=this.c.e,this.d=null},kGt.a=0,bY(WGt,"LinkedHashMultimap/ValueSet/1",1837),fIt(766,1986,GGt,ED),kGt.Zb=function(){return this.f||(this.f=new nC(this))},kGt.Fb=function(t){return xlt(this,t)},kGt.cc=function(t){return new mk(this,t)},kGt.fc=function(t){return K4(this,t)},kGt.$b=function(){iY(this)},kGt._b=function(t){return $k(this,t)},kGt.ac=function(){return new nC(this)},kGt.bc=function(){return new mh(this)},kGt.qc=function(t){return new mk(this,t)},kGt.dc=function(){return!this.a},kGt.rc=function(t){return K4(this,t)},kGt.gc=function(){return this.d},kGt.c=0,kGt.d=0,bY(WGt,"LinkedListMultimap",766),fIt(52,28,LZt),kGt.ad=function(t){Fat(this,t)},kGt.Nc=function(){return new h1(this,16)},kGt.Vc=function(t,e){throw $m(new Qw("Add not supported on this list"))},kGt.Fc=function(t){return this.Vc(this.gc(),t),!0},kGt.Wc=function(t,e){var n,i,a;for(vG(e),n=!1,a=e.Kc();a.Ob();)i=a.Pb(),this.Vc(t++,i),n=!0;return n},kGt.$b=function(){this.Ud(0,this.gc())},kGt.Fb=function(t){return OIt(this,t)},kGt.Hb=function(){return jct(this)},kGt.Xc=function(t){return hit(this,t)},kGt.Kc=function(){return new kf(this)},kGt.Yc=function(){return this.Zc(0)},kGt.Zc=function(t){return new _2(this,t)},kGt.$c=function(t){throw $m(new Qw("Remove not supported on this list"))},kGt.Ud=function(t,e){var n,i;for(i=this.Zc(t),n=t;n<e;++n)i.Pb(),i.Qb()},kGt._c=function(t,e){throw $m(new Qw("Set not supported on this list"))},kGt.bd=function(t,e){return new s1(this,t,e)},kGt.j=0,bY(KGt,"AbstractList",52),fIt(1964,52,LZt),kGt.Vc=function(t,e){BN(this,t,e)},kGt.Wc=function(t,e){return Dlt(this,t,e)},kGt.Xb=function(t){return Nmt(this,t)},kGt.Kc=function(){return this.Zc(0)},kGt.$c=function(t){return txt(this,t)},kGt._c=function(t,e){var n,i;n=this.Zc(t);try{return i=n.Pb(),n.Wb(e),i}catch(a){throw iO(a=dst(a),109)?$m(new Aw("Can't set element "+t)):$m(a)}},bY(KGt,"AbstractSequentialList",1964),fIt(636,1964,LZt,mk),kGt.Zc=function(t){return bM(this,t)},kGt.gc=function(){var t;return(t=jz(NY(this.a.b,this.b),283))?t.a:0},bY(WGt,"LinkedListMultimap/1",636),fIt(1297,1970,tZt,mh),kGt.Hc=function(t){return $k(this.a,t)},kGt.Kc=function(){return new mat(this.a)},kGt.Mc=function(t){return!K4(this.a,t).a.dc()},kGt.gc=function(){return Lk(this.a.b)},bY(WGt,"LinkedListMultimap/1KeySetImpl",1297),fIt(1296,1,ZGt,mat),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return dV(this),!!this.c},kGt.Pb=function(){dV(this),oM(this.c),this.a=this.c,RW(this.d,this.a.a);do{this.c=this.c.b}while(this.c&&!RW(this.d,this.c.a));return this.a.a},kGt.Qb=function(){dV(this),lot(!!this.a),CU(new C9(this.e,this.a.a)),this.a=null,this.b=this.e.c},kGt.b=0,bY(WGt,"LinkedListMultimap/DistinctKeyIterator",1296),fIt(283,1,{283:1},sX),kGt.a=0,bY(WGt,"LinkedListMultimap/KeyList",283),fIt(1295,345,rZt,yk),kGt.cd=function(){return this.a},kGt.dd=function(){return this.f},kGt.ed=function(t){var e;return e=this.f,this.f=t,e},bY(WGt,"LinkedListMultimap/Node",1295),fIt(560,1,aZt,C9,PSt),kGt.Nb=function(t){lW(this,t)},kGt.Rb=function(t){this.e=vFt(this.f,this.b,t,this.c),++this.d,this.a=null},kGt.Ob=function(){return!!this.c},kGt.Sb=function(){return!!this.e},kGt.Pb=function(){return xQ(this)},kGt.Tb=function(){return this.d},kGt.Ub=function(){return RQ(this)},kGt.Vb=function(){return this.d-1},kGt.Qb=function(){lot(!!this.a),this.a!=this.c?(this.e=this.a.e,--this.d):this.c=this.a.c,JTt(this.f,this.a),this.a=null},kGt.Wb=function(t){rM(!!this.a),this.a.f=t},kGt.d=0,bY(WGt,"LinkedListMultimap/ValueForKeyIterator",560),fIt(1018,52,LZt),kGt.Vc=function(t,e){this.a.Vc(t,e)},kGt.Wc=function(t,e){return this.a.Wc(t,e)},kGt.Hc=function(t){return this.a.Hc(t)},kGt.Xb=function(t){return this.a.Xb(t)},kGt.$c=function(t){return this.a.$c(t)},kGt._c=function(t,e){return this.a._c(t,e)},kGt.gc=function(){return this.a.gc()},bY(WGt,"Lists/AbstractListWrapper",1018),fIt(1019,1018,MZt),bY(WGt,"Lists/RandomAccessListWrapper",1019),fIt(1021,1019,MZt,Sk),kGt.Zc=function(t){return this.a.Zc(t)},bY(WGt,"Lists/1",1021),fIt(131,52,{131:1,20:1,28:1,52:1,14:1,15:1},Ck),kGt.Vc=function(t,e){this.a.Vc(pW(this,t),e)},kGt.$b=function(){this.a.$b()},kGt.Xb=function(t){return this.a.Xb(IY(this,t))},kGt.Kc=function(){return W1(this,0)},kGt.Zc=function(t){return W1(this,t)},kGt.$c=function(t){return this.a.$c(IY(this,t))},kGt.Ud=function(t,e){(f2(t,e,this.a.gc()),eot(this.a.bd(pW(this,e),pW(this,t)))).$b()},kGt._c=function(t,e){return this.a._c(IY(this,t),e)},kGt.gc=function(){return this.a.gc()},kGt.bd=function(t,e){return f2(t,e,this.a.gc()),eot(this.a.bd(pW(this,e),pW(this,t)))},bY(WGt,"Lists/ReverseList",131),fIt(280,131,{131:1,20:1,28:1,52:1,14:1,15:1,54:1},lw),bY(WGt,"Lists/RandomAccessReverseList",280),fIt(1020,1,aZt,vk),kGt.Nb=function(t){lW(this,t)},kGt.Rb=function(t){this.c.Rb(t),this.c.Ub(),this.a=!1},kGt.Ob=function(){return this.c.Sb()},kGt.Sb=function(){return this.c.Ob()},kGt.Pb=function(){return h6(this)},kGt.Tb=function(){return pW(this.b,this.c.Tb())},kGt.Ub=function(){if(!this.c.Ob())throw $m(new yy);return this.a=!0,this.c.Pb()},kGt.Vb=function(){return pW(this.b,this.c.Tb())-1},kGt.Qb=function(){lot(this.a),this.c.Qb(),this.a=!1},kGt.Wb=function(t){rM(this.a),this.c.Wb(t)},kGt.a=!1,bY(WGt,"Lists/ReverseList/1",1020),fIt(432,487,ZGt,uw),kGt.Qd=function(t){return iC(t)},bY(WGt,"Maps/1",432),fIt(698,487,ZGt,dw),kGt.Qd=function(t){return jz(t,42).dd()},bY(WGt,"Maps/2",698),fIt(962,487,ZGt,pM),kGt.Qd=function(t){return new bk(t,PD(this.a,t))},bY(WGt,"Maps/3",962),fIt(959,1971,tZt,bh),kGt.Jc=function(t){Oy(this.a,t)},kGt.Kc=function(){return this.a.kc()},kGt.Rc=function(){return this.a},kGt.Nc=function(){return this.a.lc()},bY(WGt,"Maps/IteratorBasedAbstractMap/1",959),fIt(960,1,{},ph),kGt.Od=function(t,e){this.a.td(t)},bY(WGt,"Maps/KeySet/lambda$0$Type",960),fIt(958,28,JGt,Ek),kGt.$b=function(){this.a.$b()},kGt.Hc=function(t){return this.a.uc(t)},kGt.Jc=function(t){yY(t),this.a.wc(new lh(t))},kGt.dc=function(){return this.a.dc()},kGt.Kc=function(){return new dw(this.a.vc().Kc())},kGt.Mc=function(t){var e,n;try{return vgt(this,t,!0)}catch(i){if(iO(i=dst(i),41)){for(n=this.a.vc().Kc();n.Ob();)if(hG(t,(e=jz(n.Pb(),42)).dd()))return this.a.Bc(e.cd()),!0;return!1}throw $m(i)}},kGt.gc=function(){return this.a.gc()},bY(WGt,"Maps/Values",958),fIt(961,1,{},lh),kGt.Od=function(t,e){this.a.td(e)},bY(WGt,"Maps/Values/lambda$0$Type",961),fIt(736,1987,XGt,nC),kGt.xc=function(t){return this.a._b(t)?this.a.cc(t):null},kGt.Bc=function(t){return this.a._b(t)?this.a.fc(t):null},kGt.$b=function(){this.a.$b()},kGt._b=function(t){return this.a._b(t)},kGt.Ec=function(){return new ch(this)},kGt.Dc=function(){return this.Ec()},kGt.dc=function(){return this.a.dc()},kGt.ec=function(){return this.a.ec()},kGt.gc=function(){return this.a.ec().gc()},bY(WGt,"Multimaps/AsMap",736),fIt(1104,1971,tZt,ch),kGt.Kc=function(){return JL(this.a.a.ec(),new uh(this))},kGt.Rc=function(){return this.a},kGt.Mc=function(t){var e;return!!npt(this,t)&&(e=jz(t,42),wx(this.a,e.cd()),!0)},bY(WGt,"Multimaps/AsMap/EntrySet",1104),fIt(1108,1,{},uh),kGt.Kb=function(t){return PD(this,t)},kGt.Fb=function(t){return this===t},bY(WGt,"Multimaps/AsMap/EntrySet/1",1108),fIt(543,1989,{543:1,835:1,20:1,28:1,14:1},dh),kGt.$b=function(){fit(this.a)},kGt.Hc=function(t){return WR(this.a,t)},kGt.Jc=function(t){yY(t),t6(_Y(this.a),new fh(t))},kGt.Kc=function(){return new uw(_Y(this.a).a.kc())},kGt.gc=function(){return this.a.d},kGt.Nc=function(){return Nz(_Y(this.a).Nc(),new h)},bY(WGt,"Multimaps/Keys",543),fIt(1106,1,{},h),kGt.Kb=function(t){return jz(t,42).cd()},bY(WGt,"Multimaps/Keys/0methodref$getKey$Type",1106),fIt(1105,487,ZGt,hw),kGt.Qd=function(t){return new hh(jz(t,42))},bY(WGt,"Multimaps/Keys/1",1105),fIt(1990,1,{416:1}),kGt.Fb=function(t){var e;return!!iO(t,492)&&(e=jz(t,416),jz(this.a.dd(),14).gc()==jz(e.a.dd(),14).gc()&&hG(this.a.cd(),e.a.cd()))},kGt.Hb=function(){var t;return(null==(t=this.a.cd())?0:Qct(t))^jz(this.a.dd(),14).gc()},kGt.Ib=function(){var t,e;return e=vM(this.a.cd()),1==(t=jz(this.a.dd(),14).gc())?e:e+" x "+t},bY(WGt,"Multisets/AbstractEntry",1990),fIt(492,1990,{492:1,416:1},hh),bY(WGt,"Multimaps/Keys/1/1",492),fIt(1107,1,dZt,fh),kGt.td=function(t){this.a.td(jz(t,42).cd())},bY(WGt,"Multimaps/Keys/lambda$1$Type",1107),fIt(1110,1,dZt,f),kGt.td=function(t){SU(jz(t,416))},bY(WGt,"Multiset/lambda$0$Type",1110),fIt(737,1,dZt,gh),kGt.td=function(t){Tet(this.a,jz(t,416))},bY(WGt,"Multiset/lambda$1$Type",737),fIt(1111,1,{},v),bY(WGt,"Multisets/0methodref$add$Type",1111),fIt(738,1,{},w),kGt.Kb=function(t){return s4(jz(t,416))},bY(WGt,"Multisets/lambda$3$Type",738),fIt(2008,1,PGt),bY(WGt,"RangeGwtSerializationDependencies",2008),fIt(514,2008,{169:1,514:1,3:1,45:1},cyt),kGt.Lb=function(t){return _q(this,jz(t,35))},kGt.Mb=function(t){return _q(this,jz(t,35))},kGt.Fb=function(t){var e;return!!iO(t,514)&&(e=jz(t,514),Mpt(this.a,e.a)&&Mpt(this.b,e.b))},kGt.Hb=function(){return 31*this.a.Hb()+this.b.Hb()},kGt.Ib=function(){return j4(this.a,this.b)},bY(WGt,"Range",514),fIt(778,1999,vZt,aW),kGt.Zc=function(t){return eN(this.b,t)},kGt.Pd=function(){return this.a},kGt.Xb=function(t){return WA(this.b,t)},kGt.Fd=function(t){return eN(this.b,t)},bY(WGt,"RegularImmutableAsList",778),fIt(646,2006,vZt,kX),kGt.Hd=function(){return this.a},bY(WGt,"RegularImmutableList",646),fIt(616,715,xZt,cw),bY(WGt,"RegularImmutableMap",616),fIt(716,703,_Zt,bC),bY(WGt,"RegularImmutableSet",716),fIt(1976,QGt,tZt),kGt.Kc=function(){return new kZ(this.a,this.b)},kGt.Fc=function(t){throw $m(new py)},kGt.Gc=function(t){throw $m(new py)},kGt.$b=function(){throw $m(new py)},kGt.Mc=function(t){throw $m(new py)},bY(WGt,"Sets/SetView",1976),fIt(963,1976,tZt,xk),kGt.Kc=function(){return new kZ(this.a,this.b)},kGt.Hc=function(t){return CV(this.a,t)&&this.b.Hc(t)},kGt.Ic=function(t){return sst(this.a,t)&&this.b.Ic(t)},kGt.dc=function(){return Pmt(this.b,this.a)},kGt.Lc=function(){return AZ(new NU(null,new h1(this.a,1)),new vh(this.b))},kGt.gc=function(){return Sot(this)},kGt.Oc=function(){return AZ(new NU(null,new h1(this.a,1)),new yh(this.b))},bY(WGt,"Sets/2",963),fIt(700,699,qGt,kZ),kGt.Yb=function(){for(var t;vL(this.a);)if(t=r3(this.a),this.c.Hc(t))return t;return this.e=2,null},bY(WGt,"Sets/2/1",700),fIt(964,1,NZt,yh),kGt.Mb=function(t){return this.a.Hc(t)},bY(WGt,"Sets/2/4methodref$contains$Type",964),fIt(965,1,NZt,vh),kGt.Mb=function(t){return this.a.Hc(t)},bY(WGt,"Sets/2/5methodref$contains$Type",965),fIt(607,1975,{607:1,3:1,20:1,14:1,271:1,21:1,84:1},dJ),kGt.Bd=function(){return this.b},kGt.Cd=function(){return this.b},kGt.Md=function(){return this.b},kGt.Jc=function(t){this.a.Jc(t)},kGt.Lc=function(){return this.a.Lc()},kGt.Oc=function(){return this.a.Oc()},bY(WGt,"Sets/UnmodifiableNavigableSet",607),fIt(1932,1931,xZt,HG),kGt.Ld=function(){return sj(),new yx(this.a)},kGt.Cc=function(){return sj(),new yx(this.a)},kGt.pd=function(){return sj(),new yx(this.a)},bY(WGt,"SingletonImmutableBiMap",1932),fIt(647,2006,vZt,EU),kGt.Hd=function(){return this.a},bY(WGt,"SingletonImmutableList",647),fIt(350,1981,_Zt,yx),kGt.Kc=function(){return new oh(this.a)},kGt.Hc=function(t){return Odt(this.a,t)},kGt.Ed=function(){return new oh(this.a)},kGt.gc=function(){return 1},bY(WGt,"SingletonImmutableSet",350),fIt(1115,1,{},x),kGt.Kb=function(t){return jz(t,164)},bY(WGt,"Streams/lambda$0$Type",1115),fIt(1116,1,BZt,wh),kGt.Vd=function(){j6(this.a)},bY(WGt,"Streams/lambda$1$Type",1116),fIt(1659,1658,GGt,pX),kGt.Zb=function(){return jz(jz(this.f||(this.f=iO(this.c,171)?new SB(this,jz(this.c,171)):iO(this.c,161)?new CB(this,jz(this.c,161)):new pk(this,this.c)),161),171)},kGt.hc=function(){return new f_(this.b)},kGt.gd=function(){return new f_(this.b)},kGt.ec=function(){return jz(jz(this.i||(this.i=iO(this.c,171)?new Q_(this,jz(this.c,171)):iO(this.c,161)?new J_(this,jz(this.c,161)):new $O(this,this.c)),84),271)},kGt.ac=function(){return iO(this.c,171)?new SB(this,jz(this.c,171)):iO(this.c,161)?new CB(this,jz(this.c,161)):new pk(this,this.c)},kGt.ic=function(t){return null==t&&this.a.ue(t,t),new f_(this.b)},bY(WGt,"TreeMultimap",1659),fIt(78,1,{3:1,78:1}),kGt.Wd=function(t){return new Error(t)},kGt.Xd=function(){return this.e},kGt.Yd=function(){return Fgt(DZ(IW((null==this.k&&(this.k=O5(Xte,cZt,78,0,0,1)),this.k)),new N))},kGt.Zd=function(){return this.f},kGt.$d=function(){return this.g},kGt._d=function(){yw(this,d2(this.Wd(CX(this,this.g)))),oy(this)},kGt.Ib=function(){return CX(this,this.$d())},kGt.e=jZt,kGt.i=!1,kGt.n=!0;var Kte,Xte=bY(BGt,"Throwable",78);fIt(102,78,{3:1,102:1,78:1}),bY(BGt,"Exception",102),fIt(60,102,$Zt,sy,fw),bY(BGt,"RuntimeException",60),fIt(598,60,$Zt),bY(BGt,"JsException",598),fIt(863,598,$Zt),bY(zZt,"JavaScriptExceptionBase",863),fIt(477,863,{477:1,3:1,102:1,60:1,78:1},xut),kGt.$d=function(){return b_t(this),this.c},kGt.ae=function(){return HA(this.b)===HA(Kte)?null:this.b},bY(UZt,"JavaScriptException",477);var Jte,Qte=bY(UZt,"JavaScriptObject$",0);fIt(1948,1,{}),bY(UZt,"Scheduler",1948);var tee,eee,nee,iee,aee=0,ree=0,oee=-1;fIt(890,1948,{},R),bY(zZt,"SchedulerImpl",890),fIt(1960,1,{}),bY(zZt,"StackTraceCreator/Collector",1960),fIt(864,1960,{},_),kGt.be=function(t){var e={},n=[];t[qZt]=n;for(var i=arguments.callee.caller;i;){var a=(EX(),i.name||(i.name=Gnt(i.toString())));n.push(a);var r,o,s=":"+a,c=e[s];if(c)for(r=0,o=c.length;r<o;r++)if(c[r]===i)return;(c||(e[s]=[])).push(i),i=i.caller}},kGt.ce=function(t){var e,n,i,a;for(EX(),n=(i=t&&t[qZt]?t[qZt]:[]).length,a=O5(jee,cZt,310,n,0,1),e=0;e<n;e++)a[e]=new EZ(i[e],null,-1);return a},bY(zZt,"StackTraceCreator/CollectorLegacy",864),fIt(1961,1960,{}),kGt.be=function(t){},kGt.de=function(t,e,n,i){return new EZ(e,t+"@"+i,n<0?-1:n)},kGt.ce=function(t){var e,n,i,a,r,o;if(a=dwt(t),r=O5(jee,cZt,310,0,0,1),e=0,0==(i=a.length))return r;for(mF((o=AUt(this,a[0])).d,VZt)||(r[e++]=o),n=1;n<i;n++)r[e++]=AUt(this,a[n]);return r},bY(zZt,"StackTraceCreator/CollectorModern",1961),fIt(865,1961,{},p),kGt.de=function(t,e,n,i){return new EZ(e,t,-1)},bY(zZt,"StackTraceCreator/CollectorModernNoSourceMap",865),fIt(1050,1,{}),bY(vKt,wKt,1050),fIt(615,1050,{615:1},UY),bY(xKt,wKt,615),fIt(2001,1,{}),bY(vKt,RKt,2001),fIt(2002,2001,{}),bY(xKt,RKt,2002),fIt(1090,1,{},b),bY(xKt,"LocaleInfo",1090),fIt(1918,1,{},m),kGt.a=0,bY(xKt,"TimeZone",1918),fIt(1258,2002,{},g),bY("com.google.gwt.i18n.client.impl.cldr","DateTimeFormatInfoImpl",1258),fIt(434,1,{434:1},Yz),kGt.a=!1,kGt.b=0,bY(vKt,"DateTimeFormat/PatternPart",434),fIt(199,1,_Kt,Ak,mct,EB),kGt.wd=function(t){return K0(this,jz(t,199))},kGt.Fb=function(t){return iO(t,199)&&GA(uot(this.q.getTime()),uot(jz(t,199).q.getTime()))},kGt.Hb=function(){var t;return fV(n0(t=uot(this.q.getTime()),wq(t,32)))},kGt.Ib=function(){var t,e,n;return t=((n=-this.q.getTimezoneOffset())>=0?"+":"")+(n/60|0),e=VD(i.Math.abs(n)%60),(bEt(),pne)[this.q.getDay()]+" "+bne[this.q.getMonth()]+" "+VD(this.q.getDate())+" "+VD(this.q.getHours())+":"+VD(this.q.getMinutes())+":"+VD(this.q.getSeconds())+" GMT"+t+e+" "+this.q.getFullYear()};var see,cee,lee,uee,dee,hee,fee,gee,pee,bee=bY(KGt,"Date",199);fIt(1915,199,_Kt,Kxt),kGt.a=!1,kGt.b=0,kGt.c=0,kGt.d=0,kGt.e=0,kGt.f=0,kGt.g=!1,kGt.i=0,kGt.j=0,kGt.k=0,kGt.n=0,kGt.o=0,kGt.p=0,bY("com.google.gwt.i18n.shared.impl","DateRecord",1915),fIt(1966,1,{}),kGt.fe=function(){return null},kGt.ge=function(){return null},kGt.he=function(){return null},kGt.ie=function(){return null},kGt.je=function(){return null},bY(kKt,"JSONValue",1966),fIt(216,1966,{216:1},Eh,xh),kGt.Fb=function(t){return!!iO(t,216)&&b0(this.a,jz(t,216).a)},kGt.ee=function(){return zm},kGt.Hb=function(){return QK(this.a)},kGt.fe=function(){return this},kGt.Ib=function(){var t,e,n;for(n=new uM("["),e=0,t=this.a.length;e<t;e++)e>0&&(n.a+=","),rD(n,ftt(this,e));return n.a+="]",n.a},bY(kKt,"JSONArray",216),fIt(483,1966,{483:1},Rh),kGt.ee=function(){return Hm},kGt.ge=function(){return this},kGt.Ib=function(){return cM(),""+this.a},kGt.a=!1,bY(kKt,"JSONBoolean",483),fIt(985,60,$Zt,gw),bY(kKt,"JSONException",985),fIt(1023,1966,{},y),kGt.ee=function(){return Ym},kGt.Ib=function(){return VGt},bY(kKt,"JSONNull",1023),fIt(258,1966,{258:1},_h),kGt.Fb=function(t){return!!iO(t,258)&&this.a==jz(t,258).a},kGt.ee=function(){return Um},kGt.Hb=function(){return YD(this.a)},kGt.he=function(){return this},kGt.Ib=function(){return this.a+""},kGt.a=0,bY(kKt,"JSONNumber",258),fIt(183,1966,{183:1},pw,kh),kGt.Fb=function(t){return!!iO(t,183)&&b0(this.a,jz(t,183).a)},kGt.ee=function(){return Vm},kGt.Hb=function(){return QK(this.a)},kGt.ie=function(){return this},kGt.Ib=function(){var t,e,n,i,a,r;for(r=new uM("{"),t=!0,i=0,a=(n=xat(this,O5(zee,cZt,2,0,6,1))).length;i<a;++i)e=n[i],t?t=!1:r.a+=jGt,oD(r,yDt(e)),r.a+=":",rD(r,UJ(this,e));return r.a+="}",r.a},bY(kKt,"JSONObject",183),fIt(596,QGt,tZt,Rk),kGt.Hc=function(t){return qA(t)&&Ux(this.a,kB(t))},kGt.Kc=function(){return new kf(new Kw(this.b))},kGt.gc=function(){return this.b.length},bY(kKt,"JSONObject/1",596),fIt(204,1966,{204:1},HY),kGt.Fb=function(t){return!!iO(t,204)&&mF(this.a,jz(t,204).a)},kGt.ee=function(){return qm},kGt.Hb=function(){return myt(this.a)},kGt.je=function(){return this},kGt.Ib=function(){return yDt(this.a)},bY(kKt,"JSONString",204),fIt(1962,1,{525:1}),bY(LKt,"OutputStream",1962),fIt(1963,1962,{525:1}),bY(LKt,"FilterOutputStream",1963),fIt(866,1963,{525:1},I),bY(LKt,"PrintStream",866),fIt(418,1,{475:1}),kGt.Ib=function(){return this.a},bY(BGt,"AbstractStringBuilder",418),fIt(529,60,$Zt,Tw),bY(BGt,"ArithmeticException",529),fIt(73,60,OKt,ly,Aw),bY(BGt,"IndexOutOfBoundsException",73),fIt(320,73,{3:1,320:1,102:1,73:1,60:1,78:1},ky,Rx),bY(BGt,"ArrayIndexOutOfBoundsException",320),fIt(528,60,$Zt,uy,Dw),bY(BGt,"ArrayStoreException",528),fIt(289,78,MKt,Iw),bY(BGt,"Error",289),fIt(194,289,MKt,cy,g6),bY(BGt,"AssertionError",194),SGt={3:1,476:1,35:1};var mee,yee,vee,wee=bY(BGt,"Boolean",476);fIt(236,1,{3:1,236:1}),bY(BGt,"Number",236),fIt(217,236,{3:1,217:1,35:1,236:1},Df),kGt.wd=function(t){return Fx(this,jz(t,217))},kGt.ke=function(){return this.a},kGt.Fb=function(t){return iO(t,217)&&jz(t,217).a==this.a},kGt.Hb=function(){return this.a},kGt.Ib=function(){return""+this.a},kGt.a=0;var xee,Ree=bY(BGt,"Byte",217);fIt(172,1,{3:1,172:1,35:1},If),kGt.wd=function(t){return jx(this,jz(t,172))},kGt.Fb=function(t){return iO(t,172)&&jz(t,172).a==this.a},kGt.Hb=function(){return this.a},kGt.Ib=function(){return String.fromCharCode(this.a)},kGt.a=0;var _ee,kee,Eee=bY(BGt,"Character",172);fIt(205,60,{3:1,205:1,102:1,60:1,78:1},dy,Bw),bY(BGt,"ClassCastException",205),TGt={3:1,35:1,333:1,236:1};var Cee=bY(BGt,"Double",333);fIt(155,236,{3:1,35:1,155:1,236:1},Lf,My),kGt.wd=function(t){return jD(this,jz(t,155))},kGt.ke=function(){return this.a},kGt.Fb=function(t){return iO(t,155)&&bF(this.a,jz(t,155).a)},kGt.Hb=function(){return CJ(this.a)},kGt.Ib=function(){return""+this.a},kGt.a=0;var See=bY(BGt,"Float",155);fIt(32,60,{3:1,102:1,32:1,60:1,78:1},hy,Pw,jlt),bY(BGt,"IllegalArgumentException",32),fIt(71,60,$Zt,fy,Fw),bY(BGt,"IllegalStateException",71),fIt(19,236,{3:1,35:1,19:1,236:1},Of),kGt.wd=function(t){return $D(this,jz(t,19))},kGt.ke=function(){return this.a},kGt.Fb=function(t){return iO(t,19)&&jz(t,19).a==this.a},kGt.Hb=function(){return this.a},kGt.Ib=function(){return""+this.a},kGt.a=0;var Tee,Aee,Dee=bY(BGt,"Integer",19);fIt(162,236,{3:1,35:1,162:1,236:1},Mf),kGt.wd=function(t){return zD(this,jz(t,162))},kGt.ke=function(){return w2(this.a)},kGt.Fb=function(t){return iO(t,162)&&GA(jz(t,162).a,this.a)},kGt.Hb=function(){return fV(this.a)},kGt.Ib=function(){return""+bq(this.a)},kGt.a=0;var Iee,Lee,Oee,Mee,Nee,Bee=bY(BGt,"Long",162);fIt(2039,1,{}),fIt(1831,60,$Zt,jw),bY(BGt,"NegativeArraySizeException",1831),fIt(173,598,{3:1,102:1,173:1,60:1,78:1},gy,$w),kGt.Wd=function(t){return new TypeError(t)},bY(BGt,"NullPointerException",173),fIt(127,32,{3:1,102:1,32:1,127:1,60:1,78:1},_x),bY(BGt,"NumberFormatException",127),fIt(184,236,{3:1,35:1,236:1,184:1},Nf),kGt.wd=function(t){return $x(this,jz(t,184))},kGt.ke=function(){return this.a},kGt.Fb=function(t){return iO(t,184)&&jz(t,184).a==this.a},kGt.Hb=function(){return this.a},kGt.Ib=function(){return""+this.a},kGt.a=0;var Pee,Fee=bY(BGt,"Short",184);fIt(310,1,{3:1,310:1},EZ),kGt.Fb=function(t){var e;return!!iO(t,310)&&(e=jz(t,310),this.c==e.c&&this.d==e.d&&this.a==e.a&&this.b==e.b)},kGt.Hb=function(){return uut(Cst(Hx(Dte,1),zGt,1,5,[nht(this.c),this.a,this.d,this.b]))},kGt.Ib=function(){return this.a+"."+this.d+"("+(null!=this.b?this.b:"Unknown Source")+(this.c>=0?":"+this.c:"")+")"},kGt.c=0;var jee=bY(BGt,"StackTraceElement",310);AGt={3:1,475:1,35:1,2:1};var $ee,zee=bY(BGt,HZt,2);fIt(107,418,{475:1},kx,Ex,lM),bY(BGt,"StringBuffer",107),fIt(100,418,{475:1},Cx,Sx,uM),bY(BGt,"StringBuilder",100),fIt(687,73,OKt,Tx),bY(BGt,"StringIndexOutOfBoundsException",687),fIt(2043,1,{}),fIt(844,1,{},N),kGt.Kb=function(t){return jz(t,78).e},bY(BGt,"Throwable/lambda$0$Type",844),fIt(41,60,{3:1,102:1,60:1,78:1,41:1},py,Qw),bY(BGt,"UnsupportedOperationException",41),fIt(240,236,{3:1,35:1,236:1,240:1},vtt,h_),kGt.wd=function(t){return Xjt(this,jz(t,240))},kGt.ke=function(){return hCt(eUt(this))},kGt.Fb=function(t){var e;return this===t||!!iO(t,240)&&(e=jz(t,240),this.e==e.e&&0==Xjt(this,e))},kGt.Hb=function(){var t;return 0!=this.b?this.b:this.a<54?(t=uot(this.f),this.b=fV(t0(t,-1)),this.b=33*this.b+fV(t0(vq(t,32),-1)),this.b=17*this.b+CJ(this.e),this.b):(this.b=17*Put(this.c)+CJ(this.e),this.b)},kGt.Ib=function(){return eUt(this)},kGt.a=0,kGt.b=0,kGt.d=0,kGt.e=0,kGt.f=0;var Hee,Uee,Vee,qee,Wee,Yee,Gee,Zee,Kee=bY("java.math","BigDecimal",240);fIt(91,236,{3:1,35:1,236:1,91:1},Bmt,q7,uW,m_t,Sbt,DI),kGt.wd=function(t){return tbt(this,jz(t,91))},kGt.ke=function(){return hCt(HYt(this,0))},kGt.Fb=function(t){return cgt(this,t)},kGt.Hb=function(){return Put(this)},kGt.Ib=function(){return HYt(this,0)},kGt.b=-2,kGt.c=0,kGt.d=0,kGt.e=0;var Xee,Jee,Qee,tne,ene,nne,ine,ane,rne,one,sne=bY("java.math","BigInteger",91);fIt(488,1967,XGt),kGt.$b=function(){DW(this)},kGt._b=function(t){return cW(this,t)},kGt.uc=function(t){return Llt(this,t,this.g)||Llt(this,t,this.f)},kGt.vc=function(){return new Ef(this)},kGt.xc=function(t){return NY(this,t)},kGt.zc=function(t,e){return YG(this,t,e)},kGt.Bc=function(t){return b7(this,t)},kGt.gc=function(){return Lk(this)},bY(KGt,"AbstractHashMap",488),fIt(261,QGt,tZt,Ef),kGt.$b=function(){this.a.$b()},kGt.Hc=function(t){return m2(this,t)},kGt.Kc=function(){return new olt(this.a)},kGt.Mc=function(t){var e;return!!m2(this,t)&&(e=jz(t,42).cd(),this.a.Bc(e),!0)},kGt.gc=function(){return this.a.gc()},bY(KGt,"AbstractHashMap/EntrySet",261),fIt(262,1,ZGt,olt),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return tnt(this)},kGt.Ob=function(){return this.b},kGt.Qb=function(){o8(this)},kGt.b=!1,bY(KGt,"AbstractHashMap/EntrySetIterator",262),fIt(417,1,ZGt,kf),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return aC(this)},kGt.Pb=function(){return mK(this)},kGt.Qb=function(){lG(this)},kGt.b=0,kGt.c=-1,bY(KGt,"AbstractList/IteratorImpl",417),fIt(96,417,aZt,_2),kGt.Qb=function(){lG(this)},kGt.Rb=function(t){yP(this,t)},kGt.Sb=function(){return this.b>0},kGt.Tb=function(){return this.b},kGt.Ub=function(){return EN(this.b>0),this.a.Xb(this.c=--this.b)},kGt.Vb=function(){return this.b-1},kGt.Wb=function(t){_N(-1!=this.c),this.a._c(this.c,t)},bY(KGt,"AbstractList/ListIteratorImpl",96),fIt(219,52,LZt,s1),kGt.Vc=function(t,e){IQ(t,this.b),this.c.Vc(this.a+t,e),++this.b},kGt.Xb=function(t){return u1(t,this.b),this.c.Xb(this.a+t)},kGt.$c=function(t){var e;return u1(t,this.b),e=this.c.$c(this.a+t),--this.b,e},kGt._c=function(t,e){return u1(t,this.b),this.c._c(this.a+t,e)},kGt.gc=function(){return this.b},kGt.a=0,kGt.b=0,bY(KGt,"AbstractList/SubList",219),fIt(384,QGt,tZt,Cf),kGt.$b=function(){this.a.$b()},kGt.Hc=function(t){return this.a._b(t)},kGt.Kc=function(){return new Sf(this.a.vc().Kc())},kGt.Mc=function(t){return!!this.a._b(t)&&(this.a.Bc(t),!0)},kGt.gc=function(){return this.a.gc()},bY(KGt,"AbstractMap/1",384),fIt(691,1,ZGt,Sf),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return this.a.Ob()},kGt.Pb=function(){return jz(this.a.Pb(),42).cd()},kGt.Qb=function(){this.a.Qb()},bY(KGt,"AbstractMap/1/1",691),fIt(226,28,JGt,Tf),kGt.$b=function(){this.a.$b()},kGt.Hc=function(t){return this.a.uc(t)},kGt.Kc=function(){return new Bf(this.a.vc().Kc())},kGt.gc=function(){return this.a.gc()},bY(KGt,"AbstractMap/2",226),fIt(294,1,ZGt,Bf),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return this.a.Ob()},kGt.Pb=function(){return jz(this.a.Pb(),42).dd()},kGt.Qb=function(){this.a.Qb()},bY(KGt,"AbstractMap/2/1",294),fIt(484,1,{484:1,42:1}),kGt.Fb=function(t){var e;return!!iO(t,42)&&(e=jz(t,42),iZ(this.d,e.cd())&&iZ(this.e,e.dd()))},kGt.cd=function(){return this.d},kGt.dd=function(){return this.e},kGt.Hb=function(){return BI(this.d)^BI(this.e)},kGt.ed=function(t){return pP(this,t)},kGt.Ib=function(){return this.d+"="+this.e},bY(KGt,"AbstractMap/AbstractEntry",484),fIt(383,484,{484:1,383:1,42:1},EC),bY(KGt,"AbstractMap/SimpleEntry",383),fIt(1984,1,GKt),kGt.Fb=function(t){var e;return!!iO(t,42)&&(e=jz(t,42),iZ(this.cd(),e.cd())&&iZ(this.dd(),e.dd()))},kGt.Hb=function(){return BI(this.cd())^BI(this.dd())},kGt.Ib=function(){return this.cd()+"="+this.dd()},bY(KGt,oZt,1984),fIt(1992,1967,eZt),kGt.tc=function(t){return z6(this,t)},kGt._b=function(t){return MF(this,t)},kGt.vc=function(){return new jf(this)},kGt.xc=function(t){return zA(dlt(this,t))},kGt.ec=function(){return new Pf(this)},bY(KGt,"AbstractNavigableMap",1992),fIt(739,QGt,tZt,jf),kGt.Hc=function(t){return iO(t,42)&&z6(this.b,jz(t,42))},kGt.Kc=function(){return new jP(this.b)},kGt.Mc=function(t){var e;return!!iO(t,42)&&(e=jz(t,42),U5(this.b,e))},kGt.gc=function(){return this.b.c},bY(KGt,"AbstractNavigableMap/EntrySet",739),fIt(493,QGt,iZt,Pf),kGt.Nc=function(){return new hC(this)},kGt.$b=function(){mw(this.a)},kGt.Hc=function(t){return MF(this.a,t)},kGt.Kc=function(){return new Ff(new jP(new OM(this.a).b))},kGt.Mc=function(t){return!!MF(this.a,t)&&(DJ(this.a,t),!0)},kGt.gc=function(){return this.a.c},bY(KGt,"AbstractNavigableMap/NavigableKeySet",493),fIt(494,1,ZGt,Ff),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return aC(this.a.a)},kGt.Pb=function(){return mN(this.a).cd()},kGt.Qb=function(){tj(this.a)},bY(KGt,"AbstractNavigableMap/NavigableKeySet/1",494),fIt(2004,28,JGt),kGt.Fc=function(t){return F5(eEt(this,t)),!0},kGt.Gc=function(t){return vG(t),bH(t!=this,"Can't add a queue to itself"),jat(this,t)},kGt.$b=function(){for(;null!=mtt(this););},bY(KGt,"AbstractQueue",2004),fIt(302,28,{4:1,20:1,28:1,14:1},Im,f1),kGt.Fc=function(t){return h4(this,t),!0},kGt.$b=function(){o3(this)},kGt.Hc=function(t){return fst(new dZ(this),t)},kGt.dc=function(){return Ww(this)},kGt.Kc=function(){return new dZ(this)},kGt.Mc=function(t){return HJ(new dZ(this),t)},kGt.gc=function(){return this.c-this.b&this.a.length-1},kGt.Nc=function(){return new h1(this,272)},kGt.Qc=function(t){var e;return e=this.c-this.b&this.a.length-1,t.length<e&&(t=zx(new Array(e),t)),oat(this,t,e),t.length>e&&DY(t,e,null),t},kGt.b=0,kGt.c=0,bY(KGt,"ArrayDeque",302),fIt(446,1,ZGt,dZ),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return this.a!=this.b},kGt.Pb=function(){return Fut(this)},kGt.Qb=function(){eit(this)},kGt.a=0,kGt.b=0,kGt.c=-1,bY(KGt,"ArrayDeque/IteratorImpl",446),fIt(12,52,ZKt,Lm,K7,QF),kGt.Vc=function(t,e){vV(this,t,e)},kGt.Fc=function(t){return Wz(this,t)},kGt.Wc=function(t,e){return sut(this,t,e)},kGt.Gc=function(t){return pst(this,t)},kGt.$b=function(){this.c=O5(Dte,zGt,1,0,5,1)},kGt.Hc=function(t){return-1!=x9(this,t,0)},kGt.Jc=function(t){Aet(this,t)},kGt.Xb=function(t){return OU(this,t)},kGt.Xc=function(t){return x9(this,t,0)},kGt.dc=function(){return 0==this.c.length},kGt.Kc=function(){return new Wf(this)},kGt.$c=function(t){return s7(this,t)},kGt.Mc=function(t){return y9(this,t)},kGt.Ud=function(t,e){c1(this,t,e)},kGt._c=function(t,e){return i6(this,t,e)},kGt.gc=function(){return this.c.length},kGt.ad=function(t){mL(this,t)},kGt.Pc=function(){return dN(this)},kGt.Qc=function(t){return Zbt(this,t)};var cne,lne,une,dne,hne,fne,gne,pne,bne,mne=bY(KGt,"ArrayList",12);fIt(7,1,ZGt,Wf),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return yL(this)},kGt.Pb=function(){return J1(this)},kGt.Qb=function(){AW(this)},kGt.a=0,kGt.b=-1,bY(KGt,"ArrayList/1",7),fIt(2013,i.Function,{},k),kGt.te=function(t,e){return Cht(t,e)},fIt(154,52,KKt,Kw),kGt.Hc=function(t){return-1!=hit(this,t)},kGt.Jc=function(t){var e,n,i,a;for(vG(t),i=0,a=(n=this.a).length;i<a;++i)e=n[i],t.td(e)},kGt.Xb=function(t){return MU(this,t)},kGt._c=function(t,e){var n;return u1(t,this.a.length),n=this.a[t],DY(this.a,t,e),n},kGt.gc=function(){return this.a.length},kGt.ad=function(t){yV(this.a,this.a.length,t)},kGt.Pc=function(){return Kbt(this,O5(Dte,zGt,1,this.a.length,5,1))},kGt.Qc=function(t){return Kbt(this,t)},bY(KGt,"Arrays/ArrayList",154),fIt(940,52,KKt,C),kGt.Hc=function(t){return!1},kGt.Xb=function(t){return yD(t)},kGt.Kc=function(){return kK(),Ik(),dne},kGt.Yc=function(){return kK(),Ik(),dne},kGt.gc=function(){return 0},bY(KGt,"Collections/EmptyList",940),fIt(941,1,aZt,S),kGt.Nb=function(t){lW(this,t)},kGt.Rb=function(t){throw $m(new py)},kGt.Ob=function(){return!1},kGt.Sb=function(){return!1},kGt.Pb=function(){throw $m(new yy)},kGt.Tb=function(){return 0},kGt.Ub=function(){throw $m(new yy)},kGt.Vb=function(){return-1},kGt.Qb=function(){throw $m(new fy)},kGt.Wb=function(t){throw $m(new fy)},bY(KGt,"Collections/EmptyListIterator",941),fIt(943,1967,xZt,T),kGt._b=function(t){return!1},kGt.uc=function(t){return!1},kGt.vc=function(){return kK(),une},kGt.xc=function(t){return null},kGt.ec=function(){return kK(),une},kGt.gc=function(){return 0},kGt.Cc=function(){return kK(),cne},bY(KGt,"Collections/EmptyMap",943),fIt(942,QGt,_Zt,E),kGt.Hc=function(t){return!1},kGt.Kc=function(){return kK(),Ik(),dne},kGt.gc=function(){return 0},bY(KGt,"Collections/EmptySet",942),fIt(599,52,{3:1,20:1,28:1,52:1,14:1,15:1},Hf),kGt.Hc=function(t){return iZ(this.a,t)},kGt.Xb=function(t){return u1(t,1),this.a},kGt.gc=function(){return 1},bY(KGt,"Collections/SingletonList",599),fIt(372,1,mZt,$f),kGt.Jc=function(t){t6(this,t)},kGt.Lc=function(){return new NU(null,this.Nc())},kGt.Nc=function(){return new h1(this,0)},kGt.Oc=function(){return new NU(null,this.Nc())},kGt.Fc=function(t){return o_()},kGt.Gc=function(t){return s_()},kGt.$b=function(){c_()},kGt.Hc=function(t){return Ok(this,t)},kGt.Ic=function(t){return Mk(this,t)},kGt.dc=function(){return this.b.dc()},kGt.Kc=function(){return new zf(this.b.Kc())},kGt.Mc=function(t){return l_()},kGt.gc=function(){return this.b.gc()},kGt.Pc=function(){return this.b.Pc()},kGt.Qc=function(t){return Nk(this,t)},kGt.Ib=function(){return $ft(this.b)},bY(KGt,"Collections/UnmodifiableCollection",372),fIt(371,1,ZGt,zf),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return this.b.Ob()},kGt.Pb=function(){return this.b.Pb()},kGt.Qb=function(){u_()},bY(KGt,"Collections/UnmodifiableCollectionIterator",371),fIt(531,372,XKt,dM),kGt.Nc=function(){return new h1(this,16)},kGt.Vc=function(t,e){throw $m(new py)},kGt.Wc=function(t,e){throw $m(new py)},kGt.Fb=function(t){return Odt(this.a,t)},kGt.Xb=function(t){return this.a.Xb(t)},kGt.Hb=function(){return Qct(this.a)},kGt.Xc=function(t){return this.a.Xc(t)},kGt.dc=function(){return this.a.dc()},kGt.Yc=function(){return new hM(this.a.Zc(0))},kGt.Zc=function(t){return new hM(this.a.Zc(t))},kGt.$c=function(t){throw $m(new py)},kGt._c=function(t,e){throw $m(new py)},kGt.ad=function(t){throw $m(new py)},kGt.bd=function(t,e){return new dM(this.a.bd(t,e))},bY(KGt,"Collections/UnmodifiableList",531),fIt(690,371,aZt,hM),kGt.Qb=function(){u_()},kGt.Rb=function(t){throw $m(new py)},kGt.Sb=function(){return this.a.Sb()},kGt.Tb=function(){return this.a.Tb()},kGt.Ub=function(){return this.a.Ub()},kGt.Vb=function(){return this.a.Vb()},kGt.Wb=function(t){throw $m(new py)},bY(KGt,"Collections/UnmodifiableListIterator",690),fIt(600,1,XGt,qf),kGt.wc=function(t){Qrt(this,t)},kGt.yc=function(t,e,n){return Jht(this,t,e,n)},kGt.$b=function(){throw $m(new py)},kGt._b=function(t){return this.c._b(t)},kGt.uc=function(t){return Pk(this,t)},kGt.vc=function(){return tZ(this)},kGt.Fb=function(t){return jk(this,t)},kGt.xc=function(t){return this.c.xc(t)},kGt.Hb=function(){return Qct(this.c)},kGt.dc=function(){return this.c.dc()},kGt.ec=function(){return eZ(this)},kGt.zc=function(t,e){throw $m(new py)},kGt.Bc=function(t){throw $m(new py)},kGt.gc=function(){return this.c.gc()},kGt.Ib=function(){return $ft(this.c)},kGt.Cc=function(){return QG(this)},bY(KGt,"Collections/UnmodifiableMap",600),fIt(382,372,RZt,Ax),kGt.Nc=function(){return new h1(this,1)},kGt.Fb=function(t){return Odt(this.b,t)},kGt.Hb=function(){return Qct(this.b)},bY(KGt,"Collections/UnmodifiableSet",382),fIt(944,382,RZt,Ix),kGt.Hc=function(t){return Bk(this,t)},kGt.Ic=function(t){return this.b.Ic(t)},kGt.Kc=function(){return new Uf(this.b.Kc())},kGt.Pc=function(){var t;return w3(t=this.b.Pc(),t.length),t},kGt.Qc=function(t){return SX(this,t)},bY(KGt,"Collections/UnmodifiableMap/UnmodifiableEntrySet",944),fIt(945,1,ZGt,Uf),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return new Vf(jz(this.a.Pb(),42))},kGt.Ob=function(){return this.a.Ob()},kGt.Qb=function(){throw $m(new py)},bY(KGt,"Collections/UnmodifiableMap/UnmodifiableEntrySet/1",945),fIt(688,1,GKt,Vf),kGt.Fb=function(t){return this.a.Fb(t)},kGt.cd=function(){return this.a.cd()},kGt.dd=function(){return this.a.dd()},kGt.Hb=function(){return this.a.Hb()},kGt.ed=function(t){throw $m(new py)},kGt.Ib=function(){return $ft(this.a)},bY(KGt,"Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry",688),fIt(601,531,{20:1,14:1,15:1,54:1},Dx),bY(KGt,"Collections/UnmodifiableRandomAccessList",601),fIt(689,382,kZt,fM),kGt.Nc=function(){return new hC(this)},kGt.Fb=function(t){return Odt(this.a,t)},kGt.Hb=function(){return Qct(this.a)},bY(KGt,"Collections/UnmodifiableSortedSet",689),fIt(847,1,JKt,B),kGt.ue=function(t,e){var n;return 0!=(n=R3(jz(t,11),jz(e,11)))?n:Qjt(jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(KGt,"Comparator/lambda$0$Type",847),fIt(751,1,JKt,P),kGt.ue=function(t,e){return PU(jz(t,35),jz(e,35))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return EK(),gne},bY(KGt,"Comparators/NaturalOrderComparator",751),fIt(1177,1,JKt,F),kGt.ue=function(t,e){return FU(jz(t,35),jz(e,35))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return EK(),fne},bY(KGt,"Comparators/ReverseNaturalOrderComparator",1177),fIt(64,1,JKt,Jf),kGt.Fb=function(t){return this===t},kGt.ue=function(t,e){return this.a.ue(e,t)},kGt.ve=function(){return this.a},bY(KGt,"Comparators/ReversedComparator",64),fIt(166,60,$Zt,by),bY(KGt,"ConcurrentModificationException",166),fIt(1904,1,QKt,j),kGt.we=function(t){lpt(this,t)},kGt.Ib=function(){return"DoubleSummaryStatistics[count = "+bq(this.a)+", avg = "+(oC(this.a,0)?u7(this)/w2(this.a):0)+", min = "+this.c+", max = "+this.b+", sum = "+u7(this)+"]"},kGt.a=0,kGt.b=PKt,kGt.c=BKt,kGt.d=0,kGt.e=0,kGt.f=0,bY(KGt,"DoubleSummaryStatistics",1904),fIt(1805,60,$Zt,my),bY(KGt,"EmptyStackException",1805),fIt(451,1967,XGt,zft),kGt.zc=function(t,e){return hP(this,t,e)},kGt.$b=function(){RG(this)},kGt._b=function(t){return rC(this,t)},kGt.uc=function(t){var e,n;for(n=new Gk(this.a);n.a<n.c.a.length;)if(e=r3(n),iZ(t,this.b[e.g]))return!0;return!1},kGt.vc=function(){return new Qf(this)},kGt.xc=function(t){return oZ(this,t)},kGt.Bc=function(t){return LQ(this,t)},kGt.gc=function(){return this.a.c},bY(KGt,"EnumMap",451),fIt(1352,QGt,tZt,Qf),kGt.$b=function(){RG(this.a)},kGt.Hc=function(t){return b2(this,t)},kGt.Kc=function(){return new AU(this.a)},kGt.Mc=function(t){var e;return!!b2(this,t)&&(e=jz(t,42).cd(),LQ(this.a,e),!0)},kGt.gc=function(){return this.a.a.c},bY(KGt,"EnumMap/EntrySet",1352),fIt(1353,1,ZGt,AU),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return this.b=r3(this.a),new CC(this.c,this.b)},kGt.Ob=function(){return vL(this.a)},kGt.Qb=function(){_N(!!this.b),LQ(this.c,this.b),this.b=null},bY(KGt,"EnumMap/EntrySetIterator",1353),fIt(1354,1984,GKt,CC),kGt.cd=function(){return this.a},kGt.dd=function(){return this.b.b[this.a.g]},kGt.ed=function(t){return xW(this.b,this.a.g,t)},bY(KGt,"EnumMap/MapEntry",1354),fIt(174,QGt,{20:1,28:1,14:1,174:1,21:1});var yne=bY(KGt,"EnumSet",174);fIt(156,174,{20:1,28:1,14:1,174:1,156:1,21:1},ZF),kGt.Fc=function(t){return sat(this,jz(t,22))},kGt.Hc=function(t){return CV(this,t)},kGt.Kc=function(){return new Gk(this)},kGt.Mc=function(t){return SV(this,t)},kGt.gc=function(){return this.c},kGt.c=0,bY(KGt,"EnumSet/EnumSetImpl",156),fIt(343,1,ZGt,Gk),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return r3(this)},kGt.Ob=function(){return vL(this)},kGt.Qb=function(){_N(-1!=this.b),DY(this.c.b,this.b,null),--this.c.c,this.b=-1},kGt.a=-1,kGt.b=-1,bY(KGt,"EnumSet/EnumSetImpl/IteratorImpl",343),fIt(43,488,tXt,Om,qk,mD),kGt.re=function(t,e){return HA(t)===HA(e)||null!=t&&Odt(t,e)},kGt.se=function(t){return 0|Qct(t)},bY(KGt,"HashMap",43),fIt(53,QGt,eXt,Ny,d_,DU),kGt.Fc=function(t){return RW(this,t)},kGt.$b=function(){this.a.$b()},kGt.Hc=function(t){return Fk(this,t)},kGt.dc=function(){return 0==this.a.gc()},kGt.Kc=function(){return this.a.ec().Kc()},kGt.Mc=function(t){return tO(this,t)},kGt.gc=function(){return this.a.gc()};var vne,wne=bY(KGt,"HashSet",53);fIt(1781,1,fZt,$),kGt.ud=function(t){iot(this,t)},kGt.Ib=function(){return"IntSummaryStatistics[count = "+bq(this.a)+", avg = "+(oC(this.a,0)?w2(this.d)/w2(this.a):0)+", min = "+this.c+", max = "+this.b+", sum = "+bq(this.d)+"]"},kGt.a=0,kGt.b=FZt,kGt.c=NGt,kGt.d=0,bY(KGt,"IntSummaryStatistics",1781),fIt(1049,1,bZt,tI),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new k2(this)},kGt.c=0,bY(KGt,"InternalHashCodeMap",1049),fIt(711,1,ZGt,k2),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return this.d=this.a[this.c++],this.d},kGt.Ob=function(){var t;return this.c<this.a.length||!(t=this.b.next()).done&&(this.a=t.value[1],this.c=0,!0)},kGt.Qb=function(){pIt(this.e,this.d.cd()),0!=this.c&&--this.c},kGt.c=0,kGt.d=null,bY(KGt,"InternalHashCodeMap/1",711),fIt(1047,1,bZt,eI),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new p3(this)},kGt.c=0,kGt.d=0,bY(KGt,"InternalStringMap",1047),fIt(710,1,ZGt,p3),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return this.c=this.a,this.a=this.b.next(),new KF(this.d,this.c,this.d.d)},kGt.Ob=function(){return!this.a.done},kGt.Qb=function(){Uot(this.d,this.c.value[0])},bY(KGt,"InternalStringMap/1",710),fIt(1048,1984,GKt,KF),kGt.cd=function(){return this.b.value[0]},kGt.dd=function(){return this.a.d!=this.c?cC(this.a,this.b.value[0]):this.b.value[1]},kGt.ed=function(t){return oft(this.a,this.b.value[0],t)},kGt.c=0,bY(KGt,"InternalStringMap/2",1048),fIt(228,43,tXt,b3,z5),kGt.$b=function(){vP(this)},kGt._b=function(t){return uC(this,t)},kGt.uc=function(t){var e;for(e=this.d.a;e!=this.d;){if(iZ(e.e,t))return!0;e=e.a}return!1},kGt.vc=function(){return new eg(this)},kGt.xc=function(t){return utt(this,t)},kGt.zc=function(t,e){return Xbt(this,t,e)},kGt.Bc=function(t){return v9(this,t)},kGt.gc=function(){return Lk(this.e)},kGt.c=!1,bY(KGt,"LinkedHashMap",228),fIt(387,383,{484:1,383:1,387:1,42:1},CN,Jz),bY(KGt,"LinkedHashMap/ChainEntry",387),fIt(701,QGt,tZt,eg),kGt.$b=function(){vP(this.a)},kGt.Hc=function(t){return y2(this,t)},kGt.Kc=function(){return new cG(this)},kGt.Mc=function(t){var e;return!!y2(this,t)&&(e=jz(t,42).cd(),v9(this.a,e),!0)},kGt.gc=function(){return Lk(this.a.e)},bY(KGt,"LinkedHashMap/EntrySet",701),fIt(702,1,ZGt,cG),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return s8(this)},kGt.Ob=function(){return this.b!=this.c.a.d},kGt.Qb=function(){_N(!!this.a),p2(this.c.a.e,this),NH(this.a),b7(this.c.a.e,this.a.d),dB(this.c.a.e,this),this.a=null},bY(KGt,"LinkedHashMap/EntrySet/EntryIterator",702),fIt(178,53,eXt,lI,IM,IU);var xne=bY(KGt,"LinkedHashSet",178);fIt(68,1964,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1},Zk,JF),kGt.Fc=function(t){return MH(this,t)},kGt.$b=function(){yK(this)},kGt.Zc=function(t){return cmt(this,t)},kGt.gc=function(){return this.b},kGt.b=0;var Rne,_ne,kne,Ene,Cne,Sne=bY(KGt,"LinkedList",68);fIt(970,1,aZt,XF),kGt.Nb=function(t){lW(this,t)},kGt.Rb=function(t){JW(this,t)},kGt.Ob=function(){return x_(this)},kGt.Sb=function(){return this.b.b!=this.d.a},kGt.Pb=function(){return d4(this)},kGt.Tb=function(){return this.a},kGt.Ub=function(){return V0(this)},kGt.Vb=function(){return this.a-1},kGt.Qb=function(){yet(this)},kGt.Wb=function(t){_N(!!this.c),this.c.c=t},kGt.a=0,kGt.c=null,bY(KGt,"LinkedList/ListIteratorImpl",970),fIt(608,1,{},L),bY(KGt,"LinkedList/Node",608),fIt(1959,1,{}),bY(KGt,"Locale",1959),fIt(861,1959,{},O),kGt.Ib=function(){return""},bY(KGt,"Locale/1",861),fIt(862,1959,{},M),kGt.Ib=function(){return"unknown"},bY(KGt,"Locale/4",862),fIt(109,60,{3:1,102:1,60:1,78:1,109:1},yy,uZ),bY(KGt,"NoSuchElementException",109),fIt(404,1,{404:1},bw),kGt.Fb=function(t){var e;return t===this||!!iO(t,404)&&(e=jz(t,404),iZ(this.a,e.a))},kGt.Hb=function(){return BI(this.a)},kGt.Ib=function(){return null!=this.a?UGt+vM(this.a)+")":"Optional.empty()"},bY(KGt,"Optional",404),fIt(463,1,{463:1},CD,yN),kGt.Fb=function(t){var e;return t===this||!!iO(t,463)&&(e=jz(t,463),this.a==e.a&&0==Cht(this.b,e.b))},kGt.Hb=function(){return this.a?CJ(this.b):0},kGt.Ib=function(){return this.a?"OptionalDouble.of("+this.b+")":"OptionalDouble.empty()"},kGt.a=!1,kGt.b=0,bY(KGt,"OptionalDouble",463),fIt(517,1,{517:1},SD,vN),kGt.Fb=function(t){var e;return t===this||!!iO(t,517)&&(e=jz(t,517),this.a==e.a&&0==xL(this.b,e.b))},kGt.Hb=function(){return this.a?this.b:0},kGt.Ib=function(){return this.a?"OptionalInt.of("+this.b+")":"OptionalInt.empty()"},kGt.a=!1,kGt.b=0,bY(KGt,"OptionalInt",517),fIt(503,2004,JGt,qq),kGt.Gc=function(t){return nxt(this,t)},kGt.$b=function(){this.b.c=O5(Dte,zGt,1,0,5,1)},kGt.Hc=function(t){return-1!=(null==t?-1:x9(this.b,t,0))},kGt.Kc=function(){return new Yf(this)},kGt.Mc=function(t){return cat(this,t)},kGt.gc=function(){return this.b.c.length},kGt.Nc=function(){return new h1(this,256)},kGt.Pc=function(){return dN(this.b)},kGt.Qc=function(t){return Zbt(this.b,t)},bY(KGt,"PriorityQueue",503),fIt(1277,1,ZGt,Yf),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return this.a<this.c.b.c.length},kGt.Pb=function(){return EN(this.a<this.c.b.c.length),this.b=this.a++,OU(this.c.b,this.b)},kGt.Qb=function(){_N(-1!=this.b),lat(this.c,this.a=this.b),this.b=-1},kGt.a=0,kGt.b=-1,bY(KGt,"PriorityQueue/1",1277),fIt(230,1,{230:1},cft,C3),kGt.a=0,kGt.b=0;var Tne,Ane,Dne,Ine=0;bY(KGt,"Random",230),fIt(27,1,uZt,h1,UW,CZ),kGt.qd=function(){return this.a},kGt.rd=function(){return Mq(this),this.c},kGt.Nb=function(t){Mq(this),this.d.Nb(t)},kGt.sd=function(t){return Jtt(this,t)},kGt.a=0,kGt.c=0,bY(KGt,"Spliterators/IteratorSpliterator",27),fIt(485,27,uZt,hC),bY(KGt,"SortedSet/1",485),fIt(602,1,QKt,Gf),kGt.we=function(t){this.a.td(t)},bY(KGt,"Spliterator/OfDouble/0methodref$accept$Type",602),fIt(603,1,QKt,Zf),kGt.we=function(t){this.a.td(t)},bY(KGt,"Spliterator/OfDouble/1methodref$accept$Type",603),fIt(604,1,fZt,Kf),kGt.ud=function(t){this.a.td(nht(t))},bY(KGt,"Spliterator/OfInt/2methodref$accept$Type",604),fIt(605,1,fZt,Xf),kGt.ud=function(t){this.a.td(nht(t))},bY(KGt,"Spliterator/OfInt/3methodref$accept$Type",605),fIt(617,1,uZt),kGt.Nb=function(t){p_(this,t)},kGt.qd=function(){return this.d},kGt.rd=function(){return this.e},kGt.d=0,kGt.e=0,bY(KGt,"Spliterators/BaseSpliterator",617),fIt(721,617,uZt),kGt.xe=function(t){g_(this,t)},kGt.Nb=function(t){iO(t,182)?g_(this,jz(t,182)):g_(this,new Zf(t))},kGt.sd=function(t){return iO(t,182)?this.ye(jz(t,182)):this.ye(new Gf(t))},bY(KGt,"Spliterators/AbstractDoubleSpliterator",721),fIt(720,617,uZt),kGt.xe=function(t){g_(this,t)},kGt.Nb=function(t){iO(t,196)?g_(this,jz(t,196)):g_(this,new Xf(t))},kGt.sd=function(t){return iO(t,196)?this.ye(jz(t,196)):this.ye(new Kf(t))},bY(KGt,"Spliterators/AbstractIntSpliterator",720),fIt(540,617,uZt),bY(KGt,"Spliterators/AbstractSpliterator",540),fIt(692,1,uZt),kGt.Nb=function(t){p_(this,t)},kGt.qd=function(){return this.b},kGt.rd=function(){return this.d-this.c},kGt.b=0,kGt.c=0,kGt.d=0,bY(KGt,"Spliterators/BaseArraySpliterator",692),fIt(947,692,uZt,jH),kGt.ze=function(t,e){iR(this,jz(t,38),e)},kGt.Nb=function(t){MY(this,t)},kGt.sd=function(t){return B7(this,t)},bY(KGt,"Spliterators/ArraySpliterator",947),fIt(693,692,uZt,PF),kGt.ze=function(t,e){aR(this,jz(t,182),e)},kGt.xe=function(t){MY(this,t)},kGt.Nb=function(t){iO(t,182)?MY(this,jz(t,182)):MY(this,new Zf(t))},kGt.ye=function(t){return B7(this,t)},kGt.sd=function(t){return iO(t,182)?B7(this,jz(t,182)):B7(this,new Gf(t))},bY(KGt,"Spliterators/DoubleArraySpliterator",693),fIt(1968,1,uZt),kGt.Nb=function(t){p_(this,t)},kGt.qd=function(){return 16448},kGt.rd=function(){return 0},bY(KGt,"Spliterators/EmptySpliterator",1968),fIt(946,1968,uZt,q),kGt.xe=function(t){Fd(t)},kGt.Nb=function(t){iO(t,196)?Fd(jz(t,196)):Fd(new Xf(t))},kGt.ye=function(t){return dC(t)},kGt.sd=function(t){return iO(t,196)?dC(jz(t,196)):dC(new Kf(t))},bY(KGt,"Spliterators/EmptySpliterator/OfInt",946),fIt(580,52,uXt,Py),kGt.Vc=function(t,e){Bq(t,this.a.c.length+1),vV(this.a,t,e)},kGt.Fc=function(t){return Wz(this.a,t)},kGt.Wc=function(t,e){return Bq(t,this.a.c.length+1),sut(this.a,t,e)},kGt.Gc=function(t){return pst(this.a,t)},kGt.$b=function(){this.a.c=O5(Dte,zGt,1,0,5,1)},kGt.Hc=function(t){return-1!=x9(this.a,t,0)},kGt.Ic=function(t){return sst(this.a,t)},kGt.Jc=function(t){Aet(this.a,t)},kGt.Xb=function(t){return Bq(t,this.a.c.length),OU(this.a,t)},kGt.Xc=function(t){return x9(this.a,t,0)},kGt.dc=function(){return 0==this.a.c.length},kGt.Kc=function(){return new Wf(this.a)},kGt.$c=function(t){return Bq(t,this.a.c.length),s7(this.a,t)},kGt.Ud=function(t,e){c1(this.a,t,e)},kGt._c=function(t,e){return Bq(t,this.a.c.length),i6(this.a,t,e)},kGt.gc=function(){return this.a.c.length},kGt.ad=function(t){mL(this.a,t)},kGt.bd=function(t,e){return new s1(this.a,t,e)},kGt.Pc=function(){return dN(this.a)},kGt.Qc=function(t){return Zbt(this.a,t)},kGt.Ib=function(){return LEt(this.a)},bY(KGt,"Vector",580),fIt(809,580,uXt,ov),bY(KGt,"Stack",809),fIt(206,1,{206:1},Iot),kGt.Ib=function(){return W0(this)},bY(KGt,"StringJoiner",206),fIt(544,1992,{3:1,83:1,171:1,161:1},Wk,Wq),kGt.$b=function(){mw(this)},kGt.vc=function(){return new OM(this)},kGt.zc=function(t,e){return kct(this,t,e)},kGt.Bc=function(t){return DJ(this,t)},kGt.gc=function(){return this.c},kGt.c=0,bY(KGt,"TreeMap",544),fIt(390,1,ZGt,jP),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return mN(this)},kGt.Ob=function(){return aC(this.a)},kGt.Qb=function(){tj(this)},bY(KGt,"TreeMap/EntryIterator",390),fIt(435,739,tZt,OM),kGt.$b=function(){mw(this.a)},bY(KGt,"TreeMap/EntrySet",435),fIt(436,383,{484:1,383:1,42:1,436:1},$5),kGt.b=!1;var Lne=bY(KGt,"TreeMap/Node",436);fIt(621,1,{},U),kGt.Ib=function(){return"State: mv="+this.c+" value="+this.d+" done="+this.a+" found="+this.b},kGt.a=!1,kGt.b=!1,kGt.c=!1,bY(KGt,"TreeMap/State",621),fIt(297,22,dXt,gC),kGt.Ae=function(){return!1},kGt.Be=function(){return!1};var One,Mne,Nne,Bne,Pne,Fne=$nt(KGt,"TreeMap/SubMapType",297,Vte,K2,cj);fIt(1112,297,dXt,II),kGt.Be=function(){return!0},$nt(KGt,"TreeMap/SubMapType/1",1112,Fne,null,null),fIt(1113,297,dXt,AL),kGt.Ae=function(){return!0},kGt.Be=function(){return!0},$nt(KGt,"TreeMap/SubMapType/2",1113,Fne,null,null),fIt(1114,297,dXt,LI),kGt.Ae=function(){return!0},$nt(KGt,"TreeMap/SubMapType/3",1114,Fne,null,null),fIt(208,QGt,{3:1,20:1,28:1,14:1,271:1,21:1,84:1,208:1},Uy,f_),kGt.Nc=function(){return new hC(this)},kGt.Fc=function(t){return XW(this,t)},kGt.$b=function(){mw(this.a)},kGt.Hc=function(t){return MF(this.a,t)},kGt.Kc=function(){return new Ff(new jP(new OM(new Pf(this.a).a).b))},kGt.Mc=function(t){return _M(this,t)},kGt.gc=function(){return this.a.c};var jne=bY(KGt,"TreeSet",208);fIt(966,1,{},ng),kGt.Ce=function(t,e){return MB(this.a,t,e)},bY(hXt,"BinaryOperator/lambda$0$Type",966),fIt(967,1,{},ig),kGt.Ce=function(t,e){return NB(this.a,t,e)},bY(hXt,"BinaryOperator/lambda$1$Type",967),fIt(846,1,{},V),kGt.Kb=function(t){return t},bY(hXt,"Function/lambda$0$Type",846),fIt(431,1,NZt,ag),kGt.Mb=function(t){return!this.a.Mb(t)},bY(hXt,"Predicate/lambda$2$Type",431),fIt(572,1,{572:1});var $ne,zne,Hne=bY(fXt,"Handler",572);fIt(2007,1,PGt),kGt.ne=function(){return"DUMMY"},kGt.Ib=function(){return this.ne()},bY(fXt,"Level",2007),fIt(1621,2007,PGt,W),kGt.ne=function(){return"INFO"},bY(fXt,"Level/LevelInfo",1621),fIt(1640,1,{},By),bY(fXt,"LogManager",1640),fIt(1780,1,PGt,ej),kGt.b=null,bY(fXt,"LogRecord",1780),fIt(512,1,{512:1},y6),kGt.e=!1;var Une=!1,Vne=!1,qne=!1,Wne=!1,Yne=!1;bY(fXt,"Logger",512),fIt(819,572,{572:1},Y),bY(fXt,"SimpleConsoleLogHandler",819),fIt(132,22,{3:1,35:1,22:1,132:1},pC);var Gne,Zne,Kne,Xne,Jne=$nt(bXt,"Collector/Characteristics",132,Vte,p1,lj);fIt(744,1,{},wW),bY(bXt,"CollectorImpl",744),fIt(1060,1,{},G),kGt.Ce=function(t,e){return Adt(jz(t,206),jz(e,206))},bY(bXt,"Collectors/10methodref$merge$Type",1060),fIt(1061,1,{},Z),kGt.Kb=function(t){return W0(jz(t,206))},bY(bXt,"Collectors/11methodref$toString$Type",1061),fIt(1062,1,{},rg),kGt.Kb=function(t){return cM(),!!RD(t)},bY(bXt,"Collectors/12methodref$test$Type",1062),fIt(251,1,{},z),kGt.Od=function(t,e){jz(t,14).Fc(e)},bY(bXt,"Collectors/20methodref$add$Type",251),fIt(253,1,{},H),kGt.Ee=function(){return new Lm},bY(bXt,"Collectors/21methodref$ctor$Type",253),fIt(346,1,{},K),kGt.Ee=function(){return new Ny},bY(bXt,"Collectors/23methodref$ctor$Type",346),fIt(347,1,{},X),kGt.Od=function(t,e){RW(jz(t,53),e)},bY(bXt,"Collectors/24methodref$add$Type",347),fIt(1055,1,{},J),kGt.Ce=function(t,e){return Xk(jz(t,15),jz(e,14))},bY(bXt,"Collectors/4methodref$addAll$Type",1055),fIt(1059,1,{},Q),kGt.Od=function(t,e){d7(jz(t,206),jz(e,475))},bY(bXt,"Collectors/9methodref$add$Type",1059),fIt(1058,1,{},Zz),kGt.Ee=function(){return new Iot(this.a,this.b,this.c)},bY(bXt,"Collectors/lambda$15$Type",1058),fIt(1063,1,{},tt),kGt.Ee=function(){var t;return Xbt(t=new b3,(cM(),!1),new Lm),Xbt(t,!0,new Lm),t},bY(bXt,"Collectors/lambda$22$Type",1063),fIt(1064,1,{},og),kGt.Ee=function(){return Cst(Hx(Dte,1),zGt,1,5,[this.a])},bY(bXt,"Collectors/lambda$25$Type",1064),fIt(1065,1,{},sg),kGt.Od=function(t,e){jU(this.a,ent(t))},bY(bXt,"Collectors/lambda$26$Type",1065),fIt(1066,1,{},cg),kGt.Ce=function(t,e){return Pq(this.a,ent(t),ent(e))},bY(bXt,"Collectors/lambda$27$Type",1066),fIt(1067,1,{},et),kGt.Kb=function(t){return ent(t)[0]},bY(bXt,"Collectors/lambda$28$Type",1067),fIt(713,1,{},nt),kGt.Ce=function(t,e){return $U(t,e)},bY(bXt,"Collectors/lambda$4$Type",713),fIt(252,1,{},it),kGt.Ce=function(t,e){return Hk(jz(t,14),jz(e,14))},bY(bXt,"Collectors/lambda$42$Type",252),fIt(348,1,{},at),kGt.Ce=function(t,e){return Uk(jz(t,53),jz(e,53))},bY(bXt,"Collectors/lambda$50$Type",348),fIt(349,1,{},rt),kGt.Kb=function(t){return jz(t,53)},bY(bXt,"Collectors/lambda$51$Type",349),fIt(1054,1,{},lg),kGt.Od=function(t,e){hlt(this.a,jz(t,83),e)},bY(bXt,"Collectors/lambda$7$Type",1054),fIt(1056,1,{},ot),kGt.Ce=function(t,e){return bst(jz(t,83),jz(e,83),new J)},bY(bXt,"Collectors/lambda$8$Type",1056),fIt(1057,1,{},ug),kGt.Kb=function(t){return yft(this.a,jz(t,83))},bY(bXt,"Collectors/lambda$9$Type",1057),fIt(539,1,{}),kGt.He=function(){wG(this)},kGt.d=!1,bY(bXt,"TerminatableStream",539),fIt(812,539,mXt,AB),kGt.He=function(){wG(this)},bY(bXt,"DoubleStreamImpl",812),fIt(1784,721,uZt,Xz),kGt.ye=function(t){return bvt(this,jz(t,182))},kGt.a=null,bY(bXt,"DoubleStreamImpl/2",1784),fIt(1785,1,QKt,dg),kGt.we=function(t){$I(this.a,t)},bY(bXt,"DoubleStreamImpl/2/lambda$0$Type",1785),fIt(1782,1,QKt,hg),kGt.we=function(t){jI(this.a,t)},bY(bXt,"DoubleStreamImpl/lambda$0$Type",1782),fIt(1783,1,QKt,fg),kGt.we=function(t){lpt(this.a,t)},bY(bXt,"DoubleStreamImpl/lambda$2$Type",1783),fIt(1358,720,uZt,m6),kGt.ye=function(t){return v2(this,jz(t,196))},kGt.a=0,kGt.b=0,kGt.c=0,bY(bXt,"IntStream/5",1358),fIt(787,539,mXt,DB),kGt.He=function(){wG(this)},kGt.Ie=function(){return xG(this),this.a},bY(bXt,"IntStreamImpl",787),fIt(788,539,mXt,Yk),kGt.He=function(){wG(this)},kGt.Ie=function(){return xG(this),SO(),Dne},bY(bXt,"IntStreamImpl/Empty",788),fIt(1463,1,fZt,gg),kGt.ud=function(t){iot(this.a,t)},bY(bXt,"IntStreamImpl/lambda$4$Type",1463);var Qne,tie=dU(bXt,"Stream");fIt(30,539,{525:1,670:1,833:1},NU),kGt.He=function(){wG(this)},bY(bXt,"StreamImpl",30),fIt(845,1,{},st),kGt.ld=function(t){return uH(t)},bY(bXt,"StreamImpl/0methodref$lambda$2$Type",845),fIt(1084,540,uZt,BF),kGt.sd=function(t){for(;D8(this);){if(this.a.sd(t))return!0;wG(this.b),this.b=null,this.a=null}return!1},bY(bXt,"StreamImpl/1",1084),fIt(1085,1,dZt,pg),kGt.td=function(t){eH(this.a,jz(t,833))},bY(bXt,"StreamImpl/1/lambda$0$Type",1085),fIt(1086,1,NZt,bg),kGt.Mb=function(t){return RW(this.a,t)},bY(bXt,"StreamImpl/1methodref$add$Type",1086),fIt(1087,540,uZt,bK),kGt.sd=function(t){var e;return this.a||(e=new Lm,this.b.a.Nb(new mg(e)),kK(),mL(e,this.c),this.a=new h1(e,16)),Jtt(this.a,t)},kGt.a=null,bY(bXt,"StreamImpl/5",1087),fIt(1088,1,dZt,mg),kGt.td=function(t){Wz(this.a,t)},bY(bXt,"StreamImpl/5/2methodref$add$Type",1088),fIt(722,540,uZt,G8),kGt.sd=function(t){for(this.b=!1;!this.b&&this.c.sd(new AC(this,t)););return this.b},kGt.b=!1,bY(bXt,"StreamImpl/FilterSpliterator",722),fIt(1079,1,dZt,AC),kGt.td=function(t){Nq(this.a,this.b,t)},bY(bXt,"StreamImpl/FilterSpliterator/lambda$0$Type",1079),fIt(1075,721,uZt,x7),kGt.ye=function(t){return wF(this,jz(t,182))},bY(bXt,"StreamImpl/MapToDoubleSpliterator",1075),fIt(1078,1,dZt,DC),kGt.td=function(t){wC(this.a,this.b,t)},bY(bXt,"StreamImpl/MapToDoubleSpliterator/lambda$0$Type",1078),fIt(1074,720,uZt,R7),kGt.ye=function(t){return xF(this,jz(t,196))},bY(bXt,"StreamImpl/MapToIntSpliterator",1074),fIt(1077,1,dZt,IC),kGt.td=function(t){vC(this.a,this.b,t)},bY(bXt,"StreamImpl/MapToIntSpliterator/lambda$0$Type",1077),fIt(719,540,uZt,_7),kGt.sd=function(t){return RF(this,t)},bY(bXt,"StreamImpl/MapToObjSpliterator",719),fIt(1076,1,dZt,LC),kGt.td=function(t){xC(this.a,this.b,t)},bY(bXt,"StreamImpl/MapToObjSpliterator/lambda$0$Type",1076),fIt(618,1,dZt,ct),kGt.td=function(t){Ch(this,t)},bY(bXt,"StreamImpl/ValueConsumer",618),fIt(1080,1,dZt,lt),kGt.td=function(t){fE()},bY(bXt,"StreamImpl/lambda$0$Type",1080),fIt(1081,1,dZt,ut),kGt.td=function(t){fE()},bY(bXt,"StreamImpl/lambda$1$Type",1081),fIt(1082,1,{},yg),kGt.Ce=function(t,e){return Fj(this.a,t,e)},bY(bXt,"StreamImpl/lambda$4$Type",1082),fIt(1083,1,dZt,SC),kGt.td=function(t){xP(this.b,this.a,t)},bY(bXt,"StreamImpl/lambda$5$Type",1083),fIt(1089,1,dZt,vg),kGt.td=function(t){zct(this.a,jz(t,365))},bY(bXt,"TerminatableStream/lambda$0$Type",1089),fIt(2041,1,{}),fIt(1914,1,{},dt),bY("javaemul.internal","ConsoleLogger",1914),fIt(2038,1,{});var eie,nie,iie=0,aie=0;fIt(1768,1,dZt,ht),kGt.td=function(t){jz(t,308)},bY(_Xt,"BowyerWatsonTriangulation/lambda$0$Type",1768),fIt(1769,1,dZt,wg),kGt.td=function(t){jat(this.a,jz(t,308).e)},bY(_Xt,"BowyerWatsonTriangulation/lambda$1$Type",1769),fIt(1770,1,dZt,ft),kGt.td=function(t){jz(t,168)},bY(_Xt,"BowyerWatsonTriangulation/lambda$2$Type",1770),fIt(1765,1,kXt,xg),kGt.ue=function(t,e){return z4(this.a,jz(t,168),jz(e,168))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(_Xt,"NaiveMinST/lambda$0$Type",1765),fIt(499,1,{},Rg),bY(_Xt,"NodeMicroLayout",499),fIt(168,1,{168:1},OC),kGt.Fb=function(t){var e;return!!iO(t,168)&&(e=jz(t,168),iZ(this.a,e.a)&&iZ(this.b,e.b)||iZ(this.a,e.b)&&iZ(this.b,e.a))},kGt.Hb=function(){return BI(this.a)+BI(this.b)};var rie=bY(_Xt,"TEdge",168);fIt(308,1,{308:1},J$t),kGt.Fb=function(t){var e;return!!iO(t,308)&&B9(this,(e=jz(t,308)).a)&&B9(this,e.b)&&B9(this,e.c)},kGt.Hb=function(){return BI(this.a)+BI(this.b)+BI(this.c)},bY(_Xt,"TTriangle",308),fIt(221,1,{221:1},CL),bY(_Xt,"Tree",221),fIt(1254,1,{},SQ),bY(EXt,"Scanline",1254);var oie=dU(EXt,CXt);fIt(1692,1,{},det),bY(SXt,"CGraph",1692),fIt(307,1,{307:1},iQ),kGt.b=0,kGt.c=0,kGt.d=0,kGt.g=0,kGt.i=0,kGt.k=PKt,bY(SXt,"CGroup",307),fIt(815,1,{},qy),bY(SXt,"CGroup/CGroupBuilder",815),fIt(57,1,{57:1},AP),kGt.Ib=function(){return this.j?kB(this.j.Kb(this)):(xB(cie),cie.o+"@"+(EM(this)>>>0).toString(16))},kGt.f=0,kGt.i=PKt;var sie,cie=bY(SXt,"CNode",57);fIt(814,1,{},Wy),bY(SXt,"CNode/CNodeBuilder",814),fIt(1525,1,{},gt),kGt.Oe=function(t,e){return 0},kGt.Pe=function(t,e){return 0},bY(SXt,AXt,1525),fIt(1790,1,{},pt),kGt.Le=function(t){var e,n,a,r,o,s,c,l,u,d,h,f,g,p,b;for(u=BKt,a=new Wf(t.a.b);a.a<a.c.c.length;)e=jz(J1(a),57),u=i.Math.min(u,e.a.j.d.c+e.b.a);for(g=new Zk,s=new Wf(t.a.a);s.a<s.c.c.length;)(o=jz(J1(s),307)).k=u,0==o.g&&n6(g,o,g.c.b,g.c);for(;0!=g.b;){for(r=(o=jz(0==g.b?null:(EN(0!=g.b),Det(g,g.a.a)),307)).j.d.c,f=o.a.a.ec().Kc();f.Ob();)d=jz(f.Pb(),57),b=o.k+d.b.a,!Uut(t,o,t.d)||d.d.c<b?d.i=b:d.i=d.d.c;for(r-=o.j.i,o.b+=r,t.d==(jdt(),jSe)||t.d==PSe?o.c+=r:o.c-=r,h=o.a.a.ec().Kc();h.Ob();)for(l=(d=jz(h.Pb(),57)).c.Kc();l.Ob();)c=jz(l.Pb(),57),p=fI(t.d)?t.g.Oe(d,c):t.g.Pe(d,c),c.a.k=i.Math.max(c.a.k,d.i+d.d.b+p-c.b.a),iX(t,c,t.d)&&(c.a.k=i.Math.max(c.a.k,c.d.c-c.b.a)),--c.a.g,0==c.a.g&&MH(g,c.a)}for(n=new Wf(t.a.b);n.a<n.c.c.length;)(e=jz(J1(n),57)).d.c=e.i},bY(SXt,"LongestPathCompaction",1790),fIt(1690,1,{},vDt),kGt.e=!1;var lie,uie,die,hie=bY(SXt,MXt,1690);fIt(1691,1,dZt,_g),kGt.td=function(t){nst(this.a,jz(t,46))},bY(SXt,NXt,1691),fIt(1791,1,{},bt),kGt.Me=function(t){var e,n,i,a,r,o;for(e=new Wf(t.a.b);e.a<e.c.c.length;)jz(J1(e),57).c.$b();for(i=new Wf(t.a.b);i.a<i.c.c.length;)for(n=jz(J1(i),57),r=new Wf(t.a.b);r.a<r.c.c.length;)n!=(a=jz(J1(r),57))&&(n.a&&n.a==a.a||(o=fI(t.d)?t.g.Pe(n,a):t.g.Oe(n,a),(a.d.c>n.d.c||n.d.c==a.d.c&&n.d.b<a.d.b)&&Bpt(a.d.d+a.d.a+o,n.d.d)&&Ppt(a.d.d,n.d.d+n.d.a+o)&&n.c.Fc(a)))},bY(SXt,"QuadraticConstraintCalculation",1791),fIt(522,1,{522:1},Mm),kGt.a=!1,kGt.b=!1,kGt.c=!1,kGt.d=!1,bY(SXt,BXt,522),fIt(803,1,{},NV),kGt.Me=function(t){this.c=t,bTt(this,new vt)},bY(SXt,PXt,803),fIt(1718,1,{679:1},lX),kGt.Ke=function(t){FSt(this,jz(t,464))},bY(SXt,FXt,1718),fIt(1719,1,kXt,mt),kGt.ue=function(t,e){return rK(jz(t,57),jz(e,57))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(SXt,jXt,1719),fIt(464,1,{464:1},TC),kGt.a=!1,bY(SXt,$Xt,464),fIt(1720,1,kXt,yt),kGt.ue=function(t,e){return Xxt(jz(t,464),jz(e,464))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(SXt,zXt,1720),fIt(1721,1,HXt,vt),kGt.Lb=function(t){return jz(t,57),!0},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return jz(t,57),!0},bY(SXt,"ScanlineConstraintCalculator/lambda$1$Type",1721),fIt(428,22,{3:1,35:1,22:1,428:1},FC);var fie,gie,pie,bie=$nt(UXt,"HighLevelSortingCriterion",428,Vte,nJ,uj);fIt(427,22,{3:1,35:1,22:1,427:1},jC);var mie,yie,vie,wie,xie,Rie,_ie,kie,Eie,Cie,Sie=$nt(UXt,"LowLevelSortingCriterion",427,Vte,iJ,dj),Tie=dU(VXt,"ILayoutMetaDataProvider");fIt(853,1,ZXt,Hu),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,qXt),KXt),"Polyomino Traversal Strategy"),"Traversal strategy for trying different candidate positions for polyominoes."),Cie),(CSt(),pEe)),jie),Qht((imt(),lEe))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,WXt),KXt),"Polyomino Secondary Sorting Criterion"),"Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion."),kie),pEe),Sie),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,YXt),KXt),"Polyomino Primary Sorting Criterion"),"Possible primary sorting criteria for the processing order of polyominoes."),Rie),pEe),bie),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,GXt),KXt),"Fill Polyominoes"),"Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area."),(cM(),!0)),fEe),wee),Qht(lEe))))},bY(UXt,"PolyominoOptions",853),fIt(250,22,{3:1,35:1,22:1,250:1},$C);var Aie,Die,Iie,Lie,Oie,Mie,Nie,Bie,Pie,Fie,jie=$nt(UXt,"TraversalStrategy",250,Vte,_it,hj);fIt(213,1,{213:1},wt),kGt.Ib=function(){return"NEdge[id="+this.b+" w="+this.g+" d="+this.a+"]"},kGt.a=1,kGt.b=0,kGt.c=0,kGt.f=!1,kGt.g=0;var $ie=bY(XXt,"NEdge",213);fIt(176,1,{},$y),bY(XXt,"NEdge/NEdgeBuilder",176),fIt(653,1,{},Fy),bY(XXt,"NGraph",653),fIt(121,1,{121:1},v7),kGt.c=-1,kGt.d=0,kGt.e=0,kGt.i=-1,kGt.j=!1;var zie=bY(XXt,"NNode",121);fIt(795,1,XKt,jy),kGt.Jc=function(t){t6(this,t)},kGt.Lc=function(){return new NU(null,new h1(this,16))},kGt.ad=function(t){Fat(this,t)},kGt.Nc=function(){return new h1(this,16)},kGt.Oc=function(){return new NU(null,new h1(this,16))},kGt.Vc=function(t,e){++this.b,vV(this.a,t,e)},kGt.Fc=function(t){return NM(this,t)},kGt.Wc=function(t,e){return++this.b,sut(this.a,t,e)},kGt.Gc=function(t){return++this.b,pst(this.a,t)},kGt.$b=function(){++this.b,this.a.c=O5(Dte,zGt,1,0,5,1)},kGt.Hc=function(t){return-1!=x9(this.a,t,0)},kGt.Ic=function(t){return sst(this.a,t)},kGt.Xb=function(t){return OU(this.a,t)},kGt.Xc=function(t){return x9(this.a,t,0)},kGt.dc=function(){return 0==this.a.c.length},kGt.Kc=function(){return I8(new Wf(this.a))},kGt.Yc=function(){throw $m(new py)},kGt.Zc=function(t){throw $m(new py)},kGt.$c=function(t){return++this.b,s7(this.a,t)},kGt.Mc=function(t){return BM(this,t)},kGt._c=function(t,e){return++this.b,i6(this.a,t,e)},kGt.gc=function(){return this.a.c.length},kGt.bd=function(t,e){return new s1(this.a,t,e)},kGt.Pc=function(){return dN(this.a)},kGt.Qc=function(t){return Zbt(this.a,t)},kGt.b=0,bY(XXt,"NNode/ChangeAwareArrayList",795),fIt(269,1,{},zy),bY(XXt,"NNode/NNodeBuilder",269),fIt(1630,1,{},xt),kGt.a=!1,kGt.f=NGt,kGt.j=0,bY(XXt,"NetworkSimplex",1630),fIt(1294,1,dZt,kg),kGt.td=function(t){Hqt(this.a,jz(t,680),!0,!1)},bY(QXt,"NodeLabelAndSizeCalculator/lambda$0$Type",1294),fIt(558,1,{},Eg),kGt.b=!0,kGt.c=!0,kGt.d=!0,kGt.e=!0,bY(QXt,"NodeMarginCalculator",558),fIt(212,1,{212:1}),kGt.j=!1,kGt.k=!1;var Hie=bY(tJt,"Cell",212);fIt(124,212,{124:1,212:1},FP),kGt.Re=function(){return qH(this)},kGt.Se=function(){var t;return t=this.n,this.a.a+t.b+t.c},bY(tJt,"AtomicCell",124),fIt(232,22,{3:1,35:1,22:1,232:1},zC);var Uie,Vie,qie,Wie,Yie=$nt(tJt,"ContainerArea",232,Vte,b1,fj);fIt(326,212,nJt),bY(tJt,"ContainerCell",326),fIt(1473,326,nJt,zgt),kGt.Re=function(){var t;return t=0,this.e?this.b?t=this.b.b:this.a[1][1]&&(t=this.a[1][1].Re()):t=Kft(this,qvt(this,!0)),t>0?t+this.n.d+this.n.a:0},kGt.Se=function(){var t,e,n,a,r;if(r=0,this.e)this.b?r=this.b.a:this.a[1][1]&&(r=this.a[1][1].Se());else if(this.g)r=Kft(this,Axt(this,null,!0));else for(Net(),n=0,a=(e=Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length;n<a;++n)t=e[n],r=i.Math.max(r,Kft(this,Axt(this,t,!0)));return r>0?r+this.n.b+this.n.c:0},kGt.Te=function(){var t,e,n,i,a;if(this.g)for(t=Axt(this,null,!1),Net(),i=0,a=(n=Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length;i<a;++i)GNt(this,e=n[i],t);else for(Net(),i=0,a=(n=Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length;i<a;++i)GNt(this,e=n[i],t=Axt(this,e,!1))},kGt.Ue=function(){var t,e,n,a;e=this.i,t=this.n,a=qvt(this,!1),G6(this,(Net(),Uie),e.d+t.d,a),G6(this,qie,e.d+e.a-t.a-a[2],a),n=e.a-t.d-t.a,a[0]>0&&(a[0]+=this.d,n-=a[0]),a[2]>0&&(a[2]+=this.d,n-=a[2]),this.c.a=i.Math.max(0,n),this.c.d=e.d+t.d+(this.c.a-n)/2,a[1]=i.Math.max(a[1],n),G6(this,Vie,e.d+t.d+a[0]-(a[1]-n)/2,a)},kGt.b=null,kGt.d=0,kGt.e=!1,kGt.f=!1,kGt.g=!1;var Gie=0,Zie=0;bY(tJt,"GridContainerCell",1473),fIt(461,22,{3:1,35:1,22:1,461:1},HC);var Kie,Xie,Jie,Qie,tae=$nt(tJt,"HorizontalLabelAlignment",461,Vte,m1,gj);fIt(306,212,{212:1,306:1},yJ,fet,BX),kGt.Re=function(){return WH(this)},kGt.Se=function(){return YH(this)},kGt.a=0,kGt.c=!1;var eae=bY(tJt,"LabelCell",306);fIt(244,326,{212:1,326:1,244:1},Tbt),kGt.Re=function(){return kAt(this)},kGt.Se=function(){return EAt(this)},kGt.Te=function(){F$t(this)},kGt.Ue=function(){U$t(this)},kGt.b=0,kGt.c=0,kGt.d=!1,bY(tJt,"StripContainerCell",244),fIt(1626,1,NZt,Rt),kGt.Mb=function(t){return Gw(jz(t,212))},bY(tJt,"StripContainerCell/lambda$0$Type",1626),fIt(1627,1,{},_t),kGt.Fe=function(t){return jz(t,212).Se()},bY(tJt,"StripContainerCell/lambda$1$Type",1627),fIt(1628,1,NZt,kt),kGt.Mb=function(t){return Zw(jz(t,212))},bY(tJt,"StripContainerCell/lambda$2$Type",1628),fIt(1629,1,{},Et),kGt.Fe=function(t){return jz(t,212).Re()},bY(tJt,"StripContainerCell/lambda$3$Type",1629),fIt(462,22,{3:1,35:1,22:1,462:1},UC);var nae,iae,aae,rae,oae=$nt(tJt,"VerticalLabelAlignment",462,Vte,y1,pj);fIt(789,1,{},eWt),kGt.c=0,kGt.d=0,kGt.k=0,kGt.s=0,kGt.t=0,kGt.v=!1,kGt.w=0,kGt.D=!1,bY(cJt,"NodeContext",789),fIt(1471,1,kXt,Ct),kGt.ue=function(t,e){return ZD(jz(t,61),jz(e,61))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(cJt,"NodeContext/0methodref$comparePortSides$Type",1471),fIt(1472,1,kXt,St),kGt.ue=function(t,e){return qkt(jz(t,111),jz(e,111))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(cJt,"NodeContext/1methodref$comparePortContexts$Type",1472),fIt(159,22,{3:1,35:1,22:1,159:1},srt);var sae,cae,lae,uae,dae,hae,fae,gae,pae,bae,mae,yae,vae,wae,xae,Rae,_ae,kae,Eae,Cae,Sae,Tae,Aae,Dae,Iae,Lae=$nt(cJt,"NodeLabelLocation",159,Vte,tmt,bj);fIt(111,1,{111:1},kDt),kGt.a=!1,bY(cJt,"PortContext",111),fIt(1476,1,dZt,Tt),kGt.td=function(t){C_(jz(t,306))},bY(dJt,hJt,1476),fIt(1477,1,NZt,At),kGt.Mb=function(t){return!!jz(t,111).c},bY(dJt,fJt,1477),fIt(1478,1,dZt,Dt),kGt.td=function(t){C_(jz(t,111).c)},bY(dJt,"LabelPlacer/lambda$2$Type",1478),fIt(1475,1,dZt,Lt),kGt.td=function(t){zB(),Zm(jz(t,111))},bY(dJt,"NodeLabelAndSizeUtilities/lambda$0$Type",1475),fIt(790,1,dZt,Dj),kGt.td=function(t){NE(this.b,this.c,this.a,jz(t,181))},kGt.a=!1,kGt.c=!1,bY(dJt,"NodeLabelCellCreator/lambda$0$Type",790),fIt(1474,1,dZt,Cg),kGt.td=function(t){Sy(this.a,jz(t,181))},bY(dJt,"PortContextCreator/lambda$0$Type",1474),fIt(1829,1,{},Ot),bY(pJt,"GreedyRectangleStripOverlapRemover",1829),fIt(1830,1,kXt,It),kGt.ue=function(t,e){return FM(jz(t,222),jz(e,222))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(pJt,"GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type",1830),fIt(1786,1,{},Xy),kGt.a=5,kGt.e=0,bY(pJt,"RectangleStripOverlapRemover",1786),fIt(1787,1,kXt,Nt),kGt.ue=function(t,e){return jM(jz(t,222),jz(e,222))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(pJt,"RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type",1787),fIt(1789,1,kXt,Bt),kGt.ue=function(t,e){return KW(jz(t,222),jz(e,222))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(pJt,"RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type",1789),fIt(406,22,{3:1,35:1,22:1,406:1},VC);var Oae,Mae,Nae,Bae,Pae,Fae=$nt(pJt,"RectangleStripOverlapRemover/OverlapRemovalDirection",406,Vte,Z2,mj);fIt(222,1,{222:1},OV),bY(pJt,"RectangleStripOverlapRemover/RectangleNode",222),fIt(1788,1,dZt,Sg),kGt.td=function(t){Svt(this.a,jz(t,222))},bY(pJt,"RectangleStripOverlapRemover/lambda$1$Type",1788),fIt(1304,1,kXt,Pt),kGt.ue=function(t,e){return VHt(jz(t,167),jz(e,167))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(mJt,"PolyominoCompactor/CornerCasesGreaterThanRestComparator",1304),fIt(1307,1,{},Ft),kGt.Kb=function(t){return jz(t,324).a},bY(mJt,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type",1307),fIt(1308,1,NZt,jt),kGt.Mb=function(t){return jz(t,323).a},bY(mJt,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type",1308),fIt(1309,1,NZt,$t),kGt.Mb=function(t){return jz(t,323).a},bY(mJt,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type",1309),fIt(1302,1,kXt,zt),kGt.ue=function(t,e){return YPt(jz(t,167),jz(e,167))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(mJt,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator",1302),fIt(1305,1,{},Mt),kGt.Kb=function(t){return jz(t,324).a},bY(mJt,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type",1305),fIt(767,1,kXt,Ht),kGt.ue=function(t,e){return qot(jz(t,167),jz(e,167))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(mJt,"PolyominoCompactor/MinNumOfExtensionsComparator",767),fIt(1300,1,kXt,Ut),kGt.ue=function(t,e){return Zit(jz(t,321),jz(e,321))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(mJt,"PolyominoCompactor/MinPerimeterComparator",1300),fIt(1301,1,kXt,Vt),kGt.ue=function(t,e){return ryt(jz(t,321),jz(e,321))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(mJt,"PolyominoCompactor/MinPerimeterComparatorWithShape",1301),fIt(1303,1,kXt,qt),kGt.ue=function(t,e){return $Ft(jz(t,167),jz(e,167))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(mJt,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator",1303),fIt(1306,1,{},Wt),kGt.Kb=function(t){return jz(t,324).a},bY(mJt,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type",1306),fIt(777,1,{},MC),kGt.Ce=function(t,e){return T2(this,jz(t,46),jz(e,167))},bY(mJt,"SuccessorCombination",777),fIt(644,1,{},Yt),kGt.Ce=function(t,e){var n;return WAt((n=jz(t,46),jz(e,167),n))},bY(mJt,"SuccessorJitter",644),fIt(643,1,{},Gt),kGt.Ce=function(t,e){var n;return hNt((n=jz(t,46),jz(e,167),n))},bY(mJt,"SuccessorLineByLine",643),fIt(568,1,{},Zt),kGt.Ce=function(t,e){var n;return uLt((n=jz(t,46),jz(e,167),n))},bY(mJt,"SuccessorManhattan",568),fIt(1356,1,{},Kt),kGt.Ce=function(t,e){var n;return xMt((n=jz(t,46),jz(e,167),n))},bY(mJt,"SuccessorMaxNormWindingInMathPosSense",1356),fIt(400,1,{},Tg),kGt.Ce=function(t,e){return jW(this,t,e)},kGt.c=!1,kGt.d=!1,kGt.e=!1,kGt.f=!1,bY(mJt,"SuccessorQuadrantsGeneric",400),fIt(1357,1,{},Xt),kGt.Kb=function(t){return jz(t,324).a},bY(mJt,"SuccessorQuadrantsGeneric/lambda$0$Type",1357),fIt(323,22,{3:1,35:1,22:1,323:1},PC),kGt.a=!1;var jae,$ae,zae,Hae,Uae,Vae=$nt(RJt,_Jt,323,Vte,J2,yj);fIt(1298,1,{}),kGt.Ib=function(){var t,e,n,i,a,r;for(n=" ",t=nht(0),a=0;a<this.o;a++)n+=""+t.a,t=nht(uP(t.a));for(n+="\n",t=nht(0),r=0;r<this.p;r++){for(n+=""+t.a,t=nht(uP(t.a)),i=0;i<this.o;i++)0==Gut(e=tat(this,i,r),0)?n+="_":0==Gut(e,1)?n+="X":n+="0";n+="\n"}return lN(n,0,n.length-1)},kGt.o=0,kGt.p=0,bY(RJt,"TwoBitGrid",1298),fIt(321,1298,{321:1},Hgt),kGt.j=0,kGt.k=0,bY(RJt,"PlanarGrid",321),fIt(167,321,{321:1,167:1}),kGt.g=0,kGt.i=0,bY(RJt,"Polyomino",167);var qae=dU(TJt,AJt);fIt(134,1,DJt,Jt),kGt.Ye=function(t,e){return cct(this,t,e)},kGt.Ve=function(){return HU(this)},kGt.We=function(t){return yEt(this,t)},kGt.Xe=function(t){return IN(this,t)},bY(TJt,"MapPropertyHolder",134),fIt(1299,134,DJt,vNt),bY(RJt,"Polyominoes",1299);var Wae,Yae,Gae,Zae,Kae=!1;fIt(1766,1,dZt,Qt),kGt.td=function(t){oUt(jz(t,221))},bY(IJt,"DepthFirstCompaction/0methodref$compactTree$Type",1766),fIt(810,1,dZt,Ag),kGt.td=function(t){BG(this.a,jz(t,221))},bY(IJt,"DepthFirstCompaction/lambda$1$Type",810),fIt(1767,1,dZt,Lj),kGt.td=function(t){gbt(this.a,this.b,this.c,jz(t,221))},bY(IJt,"DepthFirstCompaction/lambda$2$Type",1767),fIt(65,1,{65:1},AQ),bY(IJt,"Node",65),fIt(1250,1,{},SL),bY(IJt,"ScanlineOverlapCheck",1250),fIt(1251,1,{679:1},cX),kGt.Ke=function(t){HB(this,jz(t,440))},bY(IJt,"ScanlineOverlapCheck/OverlapsScanlineHandler",1251),fIt(1252,1,kXt,te),kGt.ue=function(t,e){return Mht(jz(t,65),jz(e,65))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(IJt,"ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type",1252),fIt(440,1,{440:1},NC),kGt.a=!1,bY(IJt,"ScanlineOverlapCheck/Timestamp",440),fIt(1253,1,kXt,ee),kGt.ue=function(t,e){return Jxt(jz(t,440),jz(e,440))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(IJt,"ScanlineOverlapCheck/lambda$0$Type",1253),fIt(550,1,{},ne),bY(LJt,"SVGImage",550),fIt(324,1,{324:1},Oj),kGt.Ib=function(){return"("+this.a+jGt+this.b+jGt+this.c+")"},bY(LJt,"UniqueTriple",324),fIt(209,1,OJt),bY(MJt,"AbstractLayoutProvider",209),fIt(1132,209,OJt,ie),kGt.Ze=function(t,e){var n,i,a;0===(Akt(e,NJt,1),this.a=Hw(_B(JIt(t,(Rmt(),xre)))),E5(t,dre)&&(i=kB(JIt(t,dre)),(n=WPt(ait(),i))&&jz(sJ(n.f),209).Ze(t,yrt(e,1))),a=new s3(this.a),this.b=Bqt(a,t),jz(JIt(t,(Ult(),ore)),481).g)?($Dt(new ae,this.b),Kmt(t,gre,yEt(this.b,gre))):Dk(),qqt(a),Kmt(t,fre,this.b),zCt(e)},kGt.a=0,bY(BJt,"DisCoLayoutProvider",1132),fIt(1244,1,{},ae),kGt.c=!1,kGt.e=0,kGt.f=0,bY(BJt,"DisCoPolyominoCompactor",1244),fIt(561,1,{561:1},cV),kGt.b=!0,bY(PJt,"DCComponent",561),fIt(394,22,{3:1,35:1,22:1,394:1},BC),kGt.a=!1;var Xae,Jae,Qae,tre,ere,nre=$nt(PJt,"DCDirection",394,Vte,X2,vj);fIt(266,134,{3:1,266:1,94:1,134:1},RIt),bY(PJt,"DCElement",266),fIt(395,1,{395:1},Tvt),kGt.c=0,bY(PJt,"DCExtension",395),fIt(755,134,DJt,PR),bY(PJt,"DCGraph",755),fIt(481,22,{3:1,35:1,22:1,481:1},SN);var ire,are,rre,ore,sre,cre,lre,ure,dre,hre,fre,gre,pre,bre,mre,yre,vre,wre,xre,Rre,_re,kre,Ere=$nt(FJt,jJt,481,Vte,NZ,wj);fIt(854,1,ZXt,$u),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,$Jt),VJt),"Connected Components Compaction Strategy"),"Strategy for packing different connected components in order to save space and enhance readability of a graph."),sre),(CSt(),pEe)),Ere),Qht((imt(),lEe))))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,zJt),VJt),"Connected Components Layout Algorithm"),"A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."),vEe),zee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,HJt),"debug"),"DCGraph"),"Access to the DCGraph is intended for the debug view,"),yEe),Dte),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,UJt),"debug"),"List of Polyominoes"),"Access to the polyominoes is intended for the debug view,"),yEe),Dte),Qht(lEe)))),$zt((new zu,t))},bY(FJt,"DisCoMetaDataProvider",854),fIt(998,1,ZXt,zu),kGt.Qe=function(t){$zt(t)},bY(FJt,"DisCoOptions",998),fIt(999,1,{},re),kGt.$e=function(){return new ie},kGt._e=function(t){},bY(FJt,"DisCoOptions/DiscoFactory",999),fIt(562,167,{321:1,167:1,562:1},ZLt),kGt.a=0,kGt.b=0,kGt.c=0,kGt.d=0,bY("org.eclipse.elk.alg.disco.structures","DCPolyomino",562),fIt(1268,1,NZt,oe),kGt.Mb=function(t){return RD(t)},bY(KJt,"ElkGraphComponentsProcessor/lambda$0$Type",1268),fIt(1269,1,{},se),kGt.Kb=function(t){return _K(),CEt(jz(t,79))},bY(KJt,"ElkGraphComponentsProcessor/lambda$1$Type",1269),fIt(1270,1,NZt,ce),kGt.Mb=function(t){return zH(jz(t,79))},bY(KJt,"ElkGraphComponentsProcessor/lambda$2$Type",1270),fIt(1271,1,{},le),kGt.Kb=function(t){return _K(),AEt(jz(t,79))},bY(KJt,"ElkGraphComponentsProcessor/lambda$3$Type",1271),fIt(1272,1,NZt,ue),kGt.Mb=function(t){return HH(jz(t,79))},bY(KJt,"ElkGraphComponentsProcessor/lambda$4$Type",1272),fIt(1273,1,NZt,Dg),kGt.Mb=function(t){return _J(this.a,jz(t,79))},bY(KJt,"ElkGraphComponentsProcessor/lambda$5$Type",1273),fIt(1274,1,{},Ig),kGt.Kb=function(t){return BY(this.a,jz(t,79))},bY(KJt,"ElkGraphComponentsProcessor/lambda$6$Type",1274),fIt(1241,1,{},s3),kGt.a=0,bY(KJt,"ElkGraphTransformer",1241),fIt(1242,1,{},de),kGt.Od=function(t,e){tDt(this,jz(t,160),jz(e,266))},bY(KJt,"ElkGraphTransformer/OffsetApplier",1242),fIt(1243,1,dZt,Lg),kGt.td=function(t){RO(this,jz(t,8))},bY(KJt,"ElkGraphTransformer/OffsetApplier/OffSetToChainApplier",1243),fIt(753,1,{},he),bY(eQt,nQt,753),fIt(1232,1,kXt,fe),kGt.ue=function(t,e){return SAt(jz(t,231),jz(e,231))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(eQt,iQt,1232),fIt(740,209,OJt,Hy),kGt.Ze=function(t,e){mOt(this,t,e)},bY(eQt,"ForceLayoutProvider",740),fIt(357,134,{3:1,357:1,94:1,134:1}),bY(aQt,"FParticle",357),fIt(559,357,{3:1,559:1,357:1,94:1,134:1},cY),kGt.Ib=function(){var t;return this.a?(t=x9(this.a.a,this,0))>=0?"b"+t+"["+r6(this.a)+"]":"b["+r6(this.a)+"]":"b_"+EM(this)},bY(aQt,"FBendpoint",559),fIt(282,134,{3:1,282:1,94:1,134:1},SP),kGt.Ib=function(){return r6(this)},bY(aQt,"FEdge",282),fIt(231,134,{3:1,231:1,94:1,134:1},y7);var Cre,Sre,Tre,Are,Dre,Ire,Lre,Ore,Mre=bY(aQt,"FGraph",231);fIt(447,357,{3:1,447:1,357:1,94:1,134:1},m3),kGt.Ib=function(){return null==this.b||0==this.b.length?"l["+r6(this.a)+"]":"l_"+this.b},bY(aQt,"FLabel",447),fIt(144,357,{3:1,144:1,357:1,94:1,134:1},zY),kGt.Ib=function(){return p0(this)},kGt.b=0,bY(aQt,"FNode",144),fIt(2003,1,{}),kGt.bf=function(t){c$t(this,t)},kGt.cf=function(){Hvt(this)},kGt.d=0,bY(oQt,"AbstractForceModel",2003),fIt(631,2003,{631:1},Lot),kGt.af=function(t,e){var n,a,r,o;return tAt(this.f,t,e),r=qP(jL(e.d),t.d),o=i.Math.sqrt(r.a*r.a+r.b*r.b),a=i.Math.max(0,o-uG(t.e)/2-uG(e.e)/2),vO(r,((n=Hct(this.e,t,e))>0?-PW(a,this.c)*n:ON(a,this.b)*jz(yEt(t,(uPt(),Xre)),19).a)/o),r},kGt.bf=function(t){c$t(this,t),this.a=jz(yEt(t,(uPt(),zre)),19).a,this.c=Hw(_B(yEt(t,ioe))),this.b=Hw(_B(yEt(t,Qre)))},kGt.df=function(t){return t<this.a},kGt.a=0,kGt.b=0,kGt.c=0,bY(oQt,"EadesModel",631),fIt(632,2003,{632:1},lH),kGt.af=function(t,e){var n,a,r,o,s;return tAt(this.f,t,e),r=qP(jL(e.d),t.d),s=i.Math.sqrt(r.a*r.a+r.b*r.b),o=LN(a=i.Math.max(0,s-uG(t.e)/2-uG(e.e)/2),this.a)*jz(yEt(t,(uPt(),Xre)),19).a,(n=Hct(this.e,t,e))>0&&(o-=kw(a,this.a)*n),vO(r,o*this.b/s),r},kGt.bf=function(t){var e,n,a,r,o,s,c;for(c$t(this,t),this.b=Hw(_B(yEt(t,(uPt(),aoe)))),this.c=this.b/jz(yEt(t,zre),19).a,a=t.e.c.length,o=0,r=0,c=new Wf(t.e);c.a<c.c.c.length;)o+=(s=jz(J1(c),144)).e.a,r+=s.e.b;e=o*r,n=Hw(_B(yEt(t,ioe)))*uJt,this.a=i.Math.sqrt(e/(2*a))*n},kGt.cf=function(){Hvt(this),this.b-=this.c},kGt.df=function(t){return this.b>0},kGt.a=0,kGt.b=0,kGt.c=0,bY(oQt,"FruchtermanReingoldModel",632),fIt(849,1,ZXt,Uu),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,sQt),""),"Force Model"),"Determines the model for force calculation."),Tre),(CSt(),pEe)),Soe),Qht((imt(),lEe))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,cQt),""),"Iterations"),"The number of iterations on the force model."),nht(300)),mEe),Dee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,lQt),""),"Repulsive Power"),"Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"),nht(0)),mEe),Dee),Qht(oEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,uQt),""),"FR Temperature"),"The temperature is used as a scaling factor for particle displacements."),dQt),gEe),Cee),Qht(lEe)))),a2(t,uQt,sQt,Ore),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,hQt),""),"Eades Repulsion"),"Factor for repulsive forces in Eades' model."),5),gEe),Cee),Qht(lEe)))),a2(t,hQt,sQt,Dre),bWt((new Vu,t))},bY(fQt,"ForceMetaDataProvider",849),fIt(424,22,{3:1,35:1,22:1,424:1},qC);var Nre,Bre,Pre,Fre,jre,$re,zre,Hre,Ure,Vre,qre,Wre,Yre,Gre,Zre,Kre,Xre,Jre,Qre,toe,eoe,noe,ioe,aoe,roe,ooe,soe,coe,loe,uoe,doe,hoe,foe,goe,poe,boe,moe,yoe,voe,woe,xoe,Roe,_oe,koe,Eoe,Coe,Soe=$nt(fQt,"ForceModelStrategy",424,Vte,aJ,xj);fIt(988,1,ZXt,Vu),kGt.Qe=function(t){bWt(t)},bY(fQt,"ForceOptions",988),fIt(989,1,{},ge),kGt.$e=function(){return new Hy},kGt._e=function(t){},bY(fQt,"ForceOptions/ForceFactory",989),fIt(850,1,ZXt,qu),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,OQt),""),"Fixed Position"),"Prevent that the node is moved by the layout algorithm."),(cM(),!1)),(CSt(),fEe)),wee),Qht((imt(),cEe))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,MQt),""),"Desired Edge Length"),"Either specified for parent nodes or for individual edges, where the latter takes higher precedence."),100),gEe),Cee),xV(lEe,Cst(Hx(hEe,1),IZt,175,0,[oEe]))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,NQt),""),"Layout Dimension"),"Dimensions that are permitted to be altered during layout."),doe),pEe),Noe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,BQt),""),"Stress Epsilon"),"Termination criterion for the iterative process."),dQt),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,PQt),""),"Iteration Limit"),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),nht(NGt)),mEe),Dee),Qht(lEe)))),qVt((new Wu,t))},bY(fQt,"StressMetaDataProvider",850),fIt(992,1,ZXt,Wu),kGt.Qe=function(t){qVt(t)},bY(fQt,"StressOptions",992),fIt(993,1,{},pe),kGt.$e=function(){return new TP},kGt._e=function(t){},bY(fQt,"StressOptions/StressFactory",993),fIt(1128,209,OJt,TP),kGt.Ze=function(t,e){var n,i,a,r;for(Akt(e,jQt,1),zw(RB(JIt(t,(ixt(),voe))))?zw(RB(JIt(t,Eoe)))||wJ(new Rg((HE(),new Mw(t)))):mOt(new Hy,t,yrt(e,1)),i=uct(t),r=(n=z$t(this.a,i)).Kc();r.Ob();)!((a=jz(r.Pb(),231)).e.c.length<=1)&&(zHt(this.b,a),nLt(this.b),Aet(a.d,new be));EWt(i=UWt(n)),zCt(e)},bY(zQt,"StressLayoutProvider",1128),fIt(1129,1,dZt,be),kGt.td=function(t){Fzt(jz(t,447))},bY(zQt,"StressLayoutProvider/lambda$0$Type",1129),fIt(990,1,{},Ry),kGt.c=0,kGt.e=0,kGt.g=0,bY(zQt,"StressMajorization",990),fIt(379,22,{3:1,35:1,22:1,379:1},WC);var Toe,Aoe,Doe,Ioe,Loe,Ooe,Moe,Noe=$nt(zQt,"StressMajorization/Dimension",379,Vte,w1,Rj);fIt(991,1,kXt,Og),kGt.ue=function(t,e){return kF(this.a,jz(t,144),jz(e,144))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(zQt,"StressMajorization/lambda$0$Type",991),fIt(1229,1,{},M0),bY(UQt,"ElkLayered",1229),fIt(1230,1,dZt,me),kGt.td=function(t){BAt(jz(t,37))},bY(UQt,"ElkLayered/lambda$0$Type",1230),fIt(1231,1,dZt,Mg),kGt.td=function(t){EF(this.a,jz(t,37))},bY(UQt,"ElkLayered/lambda$1$Type",1231),fIt(1263,1,{},DL),bY(UQt,"GraphConfigurator",1263),fIt(759,1,dZt,Ng),kGt.td=function(t){GEt(this.a,jz(t,10))},bY(UQt,"GraphConfigurator/lambda$0$Type",759),fIt(760,1,{},ye),kGt.Kb=function(t){return tRt(),new NU(null,new h1(jz(t,29).a,16))},bY(UQt,"GraphConfigurator/lambda$1$Type",760),fIt(761,1,dZt,Bg),kGt.td=function(t){GEt(this.a,jz(t,10))},bY(UQt,"GraphConfigurator/lambda$2$Type",761),fIt(1127,209,OJt,Vy),kGt.Ze=function(t,e){var n;n=Ezt(new Qy,t),HA(JIt(t,(zYt(),sbe)))===HA((odt(),bTe))?igt(this.a,n,e):fDt(this.a,n,e),pWt(new Gu,n)},bY(UQt,"LayeredLayoutProvider",1127),fIt(356,22,{3:1,35:1,22:1,356:1},YC);var Boe,Poe,Foe,joe,$oe,zoe,Hoe,Uoe,Voe=$nt(UQt,"LayeredPhases",356,Vte,s6,_j);fIt(1651,1,{},mit),kGt.i=0,bY(VQt,"ComponentsToCGraphTransformer",1651),fIt(1652,1,{},ve),kGt.ef=function(t,e){return i.Math.min(null!=t.a?Hw(t.a):t.c.i,null!=e.a?Hw(e.a):e.c.i)},kGt.ff=function(t,e){return i.Math.min(null!=t.a?Hw(t.a):t.c.i,null!=e.a?Hw(e.a):e.c.i)},bY(VQt,"ComponentsToCGraphTransformer/1",1652),fIt(81,1,{81:1}),kGt.i=0,kGt.k=!0,kGt.o=PKt;var qoe,Woe,Yoe=bY(qQt,"CNode",81);fIt(460,81,{460:1,81:1},LM,Ebt),kGt.Ib=function(){return""},bY(VQt,"ComponentsToCGraphTransformer/CRectNode",460),fIt(1623,1,{},we),bY(VQt,"OneDimensionalComponentsCompaction",1623),fIt(1624,1,{},xe),kGt.Kb=function(t){return OQ(jz(t,46))},kGt.Fb=function(t){return this===t},bY(VQt,"OneDimensionalComponentsCompaction/lambda$0$Type",1624),fIt(1625,1,{},Re),kGt.Kb=function(t){return Rgt(jz(t,46))},kGt.Fb=function(t){return this===t},bY(VQt,"OneDimensionalComponentsCompaction/lambda$1$Type",1625),fIt(1654,1,{},jY),bY(qQt,"CGraph",1654),fIt(189,1,{189:1},Cbt),kGt.b=0,kGt.c=0,kGt.e=0,kGt.g=!0,kGt.i=PKt,bY(qQt,"CGroup",189),fIt(1653,1,{},Ce),kGt.ef=function(t,e){return i.Math.max(null!=t.a?Hw(t.a):t.c.i,null!=e.a?Hw(e.a):e.c.i)},kGt.ff=function(t,e){return i.Math.max(null!=t.a?Hw(t.a):t.c.i,null!=e.a?Hw(e.a):e.c.i)},bY(qQt,AXt,1653),fIt(1655,1,{},cDt),kGt.d=!1;var Goe,Zoe=bY(qQt,MXt,1655);fIt(1656,1,{},Se),kGt.Kb=function(t){return vE(),cM(),0!=jz(jz(t,46).a,81).d.e},kGt.Fb=function(t){return this===t},bY(qQt,NXt,1656),fIt(823,1,{},kU),kGt.a=!1,kGt.b=!1,kGt.c=!1,kGt.d=!1,bY(qQt,BXt,823),fIt(1825,1,{},MV),bY(WQt,PXt,1825);var Koe=dU(YQt,CXt);fIt(1826,1,{369:1},uX),kGt.Ke=function(t){UNt(this,jz(t,466))},bY(WQt,FXt,1826),fIt(1827,1,kXt,Te),kGt.ue=function(t,e){return oK(jz(t,81),jz(e,81))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(WQt,jXt,1827),fIt(466,1,{466:1},lS),kGt.a=!1,bY(WQt,$Xt,466),fIt(1828,1,kXt,Ae),kGt.ue=function(t,e){return Qxt(jz(t,466),jz(e,466))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(WQt,zXt,1828),fIt(140,1,{140:1},fS,mH),kGt.Fb=function(t){var e;return null!=t&&Xoe==tlt(t)&&(e=jz(t,140),iZ(this.c,e.c)&&iZ(this.d,e.d))},kGt.Hb=function(){return uut(Cst(Hx(Dte,1),zGt,1,5,[this.c,this.d]))},kGt.Ib=function(){return"("+this.c+jGt+this.d+(this.a?"cx":"")+this.b+")"},kGt.a=!0,kGt.c=0,kGt.d=0;var Xoe=bY(YQt,"Point",140);fIt(405,22,{3:1,35:1,22:1,405:1},GC);var Joe,Qoe,tse,ese,nse,ise,ase,rse,ose,sse,cse,lse,use=$nt(YQt,"Point/Quadrant",405,Vte,Q2,kj);fIt(1642,1,{},Yy),kGt.b=null,kGt.c=null,kGt.d=null,kGt.e=null,kGt.f=null,bY(YQt,"RectilinearConvexHull",1642),fIt(574,1,{369:1},_mt),kGt.Ke=function(t){P8(this,jz(t,140))},kGt.b=0,bY(YQt,"RectilinearConvexHull/MaximalElementsEventHandler",574),fIt(1644,1,kXt,ke),kGt.ue=function(t,e){return MZ(_B(t),_B(e))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(YQt,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",1644),fIt(1643,1,{369:1},uet),kGt.Ke=function(t){CMt(this,jz(t,140))},kGt.a=0,kGt.b=null,kGt.c=null,kGt.d=null,kGt.e=null,bY(YQt,"RectilinearConvexHull/RectangleEventHandler",1643),fIt(1645,1,kXt,Ee),kGt.ue=function(t,e){return r0(jz(t,140),jz(e,140))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(YQt,"RectilinearConvexHull/lambda$0$Type",1645),fIt(1646,1,kXt,_e),kGt.ue=function(t,e){return o0(jz(t,140),jz(e,140))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(YQt,"RectilinearConvexHull/lambda$1$Type",1646),fIt(1647,1,kXt,De),kGt.ue=function(t,e){return c0(jz(t,140),jz(e,140))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(YQt,"RectilinearConvexHull/lambda$2$Type",1647),fIt(1648,1,kXt,Ie),kGt.ue=function(t,e){return s0(jz(t,140),jz(e,140))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(YQt,"RectilinearConvexHull/lambda$3$Type",1648),fIt(1649,1,kXt,Le),kGt.ue=function(t,e){return xEt(jz(t,140),jz(e,140))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(YQt,"RectilinearConvexHull/lambda$4$Type",1649),fIt(1650,1,{},TQ),bY(YQt,"Scanline",1650),fIt(2005,1,{}),bY(GQt,"AbstractGraphPlacer",2005),fIt(325,1,{325:1},qN),kGt.mf=function(t){return!!this.nf(t)&&(XAt(this.b,jz(yEt(t,(lGt(),qde)),21),t),!0)},kGt.nf=function(t){var e,n,i;for(e=jz(yEt(t,(lGt(),qde)),21),i=jz(c7(lse,e),21).Kc();i.Ob();)if(n=jz(i.Pb(),21),!jz(c7(this.b,n),15).dc())return!1;return!0},bY(GQt,"ComponentGroup",325),fIt(765,2005,{},Gy),kGt.of=function(t){var e;for(e=new Wf(this.a);e.a<e.c.c.length;)if(jz(J1(e),325).mf(t))return;Wz(this.a,new qN(t))},kGt.lf=function(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g;if(this.a.c=O5(Dte,zGt,1,0,5,1),e.a.c=O5(Dte,zGt,1,0,5,1),t.dc())return e.f.a=0,void(e.f.b=0);for(Hot(e,o=jz(t.Xb(0),37)),a=t.Kc();a.Ob();)i=jz(a.Pb(),37),this.of(i);for(g=new HR,r=Hw(_B(yEt(o,(zYt(),mme)))),l=new Wf(this.a);l.a<l.c.c.length;)u=_Yt(s=jz(J1(l),325),r),h8(RY(s.b),g.a,g.b),g.a+=u.a,g.b+=u.b;if(e.f.a=g.a-r,e.f.b=g.b-r,zw(RB(yEt(o,_pe)))&&HA(yEt(o,Xpe))===HA((kft(),ZSe))){for(f=t.Kc();f.Ob();)JPt(d=jz(f.Pb(),37),d.c.a,d.c.b);for(PYt(n=new Oe,t,r),h=t.Kc();h.Ob();)VP(vD((d=jz(h.Pb(),37)).c),n.e);VP(vD(e.f),n.a)}for(c=new Wf(this.a);c.a<c.c.c.length;)f8(e,RY((s=jz(J1(c),325)).b))},bY(GQt,"ComponentGroupGraphPlacer",765),fIt(1293,765,{},cv),kGt.of=function(t){bdt(this,t)},kGt.lf=function(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;if(this.a.c=O5(Dte,zGt,1,0,5,1),e.a.c=O5(Dte,zGt,1,0,5,1),t.dc())return e.f.a=0,void(e.f.b=0);for(Hot(e,o=jz(t.Xb(0),37)),a=t.Kc();a.Ob();)bdt(this,jz(a.Pb(),37));for(y=new HR,m=new HR,p=new HR,g=new HR,r=Hw(_B(yEt(o,(zYt(),mme)))),l=new Wf(this.a);l.a<l.c.c.length;){if(s=jz(J1(l),325),fI(jz(yEt(e,(cGt(),dCe)),103))){for(p.a=y.a,b=new uw(_Y(vY(s.b).a).a.kc());b.b.Ob();)if(jz(iC(b.b.Pb()),21).Hc((wWt(),cAe))){p.a=m.a;break}}else if(gI(jz(yEt(e,dCe),103)))for(p.b=y.b,b=new uw(_Y(vY(s.b).a).a.kc());b.b.Ob();)if(jz(iC(b.b.Pb()),21).Hc((wWt(),SAe))){p.b=m.b;break}if(u=_Yt(jz(s,570),r),h8(RY(s.b),p.a,p.b),fI(jz(yEt(e,dCe),103))){for(m.a=p.a+u.a,g.a=i.Math.max(g.a,m.a),b=new uw(_Y(vY(s.b).a).a.kc());b.b.Ob();)if(jz(iC(b.b.Pb()),21).Hc((wWt(),EAe))){y.a=p.a+u.a;break}m.b=p.b+u.b,p.b=m.b,g.b=i.Math.max(g.b,p.b)}else if(gI(jz(yEt(e,dCe),103))){for(m.b=p.b+u.b,g.b=i.Math.max(g.b,m.b),b=new uw(_Y(vY(s.b).a).a.kc());b.b.Ob();)if(jz(iC(b.b.Pb()),21).Hc((wWt(),sAe))){y.b=p.b+u.b;break}m.a=p.a+u.a,p.a=m.a,g.a=i.Math.max(g.a,p.a)}}if(e.f.a=g.a-r,e.f.b=g.b-r,zw(RB(yEt(o,_pe)))&&HA(yEt(o,Xpe))===HA((kft(),ZSe))){for(f=t.Kc();f.Ob();)JPt(d=jz(f.Pb(),37),d.c.a,d.c.b);for(PYt(n=new Oe,t,r),h=t.Kc();h.Ob();)VP(vD((d=jz(h.Pb(),37)).c),n.e);VP(vD(e.f),n.a)}for(c=new Wf(this.a);c.a<c.c.c.length;)f8(e,RY((s=jz(J1(c),325)).b))},bY(GQt,"ComponentGroupModelOrderGraphPlacer",1293),fIt(423,22,{3:1,35:1,22:1,423:1},ZC);var dse,hse,fse,gse,pse,bse,mse=$nt(GQt,"ComponentOrderingStrategy",423,Vte,v1,Ej);fIt(650,1,{},Oe),bY(GQt,"ComponentsCompactor",650),fIt(1468,12,ZKt,b6),kGt.Fc=function(t){return KRt(this,jz(t,140))},bY(GQt,"ComponentsCompactor/Hullpoints",1468),fIt(1465,1,{841:1},lyt),kGt.a=!1,bY(GQt,"ComponentsCompactor/InternalComponent",1465),fIt(1464,1,bZt,Zy),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new Wf(this.a)},bY(GQt,"ComponentsCompactor/InternalConnectedComponents",1464),fIt(1467,1,{594:1},gDt),kGt.hf=function(){return null},kGt.jf=function(){return this.a},kGt.gf=function(){return omt(this.d)},kGt.kf=function(){return this.b},bY(GQt,"ComponentsCompactor/InternalExternalExtension",1467),fIt(1466,1,{594:1},Jy),kGt.jf=function(){return this.a},kGt.gf=function(){return omt(this.d)},kGt.hf=function(){return this.c},kGt.kf=function(){return this.b},bY(GQt,"ComponentsCompactor/InternalUnionExternalExtension",1466),fIt(1470,1,{},ZNt),bY(GQt,"ComponentsCompactor/OuterSegments",1470),fIt(1469,1,{},Ky),bY(GQt,"ComponentsCompactor/Segments",1469),fIt(1264,1,{},dX),bY(GQt,nQt,1264),fIt(1265,1,kXt,Me),kGt.ue=function(t,e){return d0(jz(t,37),jz(e,37))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(GQt,"ComponentsProcessor/lambda$0$Type",1265),fIt(570,325,{325:1,570:1},p6),kGt.mf=function(t){return glt(this,t)},kGt.nf=function(t){return hMt(this,t)},bY(GQt,"ModelOrderComponentGroup",570),fIt(1291,2005,{},Ne),kGt.lf=function(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R;if(1!=t.gc()){if(t.dc())return e.a.c=O5(Dte,zGt,1,0,5,1),e.f.a=0,void(e.f.b=0);if(HA(yEt(e,(zYt(),Cpe)))===HA(($dt(),fse))){for(l=t.Kc();l.Ob();){for(m=0,p=new Wf((s=jz(l.Pb(),37)).a);p.a<p.c.c.length;)g=jz(J1(p),10),m+=jz(yEt(g,cme),19).a;s.p=m}kK(),t.ad(new Be)}for(o=jz(t.Xb(0),37),e.a.c=O5(Dte,zGt,1,0,5,1),Hot(e,o),f=0,w=0,u=t.Kc();u.Ob();)y=(s=jz(u.Pb(),37)).f,f=i.Math.max(f,y.a),w+=y.a*y.b;for(f=i.Math.max(f,i.Math.sqrt(w)*Hw(_B(yEt(e,xpe)))),x=0,R=0,h=0,n=r=Hw(_B(yEt(e,mme))),c=t.Kc();c.Ob();)x+(y=(s=jz(c.Pb(),37)).f).a>f&&(x=0,R+=h+r,h=0),JPt(s,x+(b=s.c).a,R+b.b),vD(b),n=i.Math.max(n,x+y.a),h=i.Math.max(h,y.b),x+=y.a+r;if(e.f.a=n,e.f.b=R+h,zw(RB(yEt(o,_pe)))){for(PYt(a=new Oe,t,r),d=t.Kc();d.Ob();)VP(vD(jz(d.Pb(),37).c),a.e);VP(vD(e.f),a.a)}f8(e,t)}else(v=jz(t.Xb(0),37))!=e&&(e.a.c=O5(Dte,zGt,1,0,5,1),IFt(e,v,0,0),Hot(e,v),vK(e.d,v.d),e.f.a=v.f.a,e.f.b=v.f.b)},bY(GQt,"SimpleRowGraphPlacer",1291),fIt(1292,1,kXt,Be),kGt.ue=function(t,e){return Vot(jz(t,37),jz(e,37))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(GQt,"SimpleRowGraphPlacer/1",1292),fIt(1262,1,HXt,Pe),kGt.Lb=function(t){var e;return!!(e=jz(yEt(jz(t,243).b,(zYt(),bbe)),74))&&0!=e.b},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){var e;return!!(e=jz(yEt(jz(t,243).b,(zYt(),bbe)),74))&&0!=e.b},bY(JQt,"CompoundGraphPostprocessor/1",1262),fIt(1261,1,QQt,tv),kGt.pf=function(t,e){yyt(this,jz(t,37),e)},bY(JQt,"CompoundGraphPreprocessor",1261),fIt(441,1,{441:1},Vdt),kGt.c=!1,bY(JQt,"CompoundGraphPreprocessor/ExternalPort",441),fIt(243,1,{243:1},Ij),kGt.Ib=function(){return fN(this.c)+":"+AAt(this.b)},bY(JQt,"CrossHierarchyEdge",243),fIt(763,1,kXt,Pg),kGt.ue=function(t,e){return Gwt(this,jz(t,243),jz(e,243))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(JQt,"CrossHierarchyEdgeComparator",763),fIt(299,134,{3:1,299:1,94:1,134:1}),kGt.p=0,bY(t1t,"LGraphElement",299),fIt(17,299,{3:1,17:1,299:1,94:1,134:1},hX),kGt.Ib=function(){return AAt(this)};var yse=bY(t1t,"LEdge",17);fIt(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},yit),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new Wf(this.b)},kGt.Ib=function(){return 0==this.b.c.length?"G-unlayered"+LEt(this.a):0==this.a.c.length?"G-layered"+LEt(this.b):"G[layerless"+LEt(this.a)+", layers"+LEt(this.b)+"]"};var vse,wse=bY(t1t,"LGraph",37);fIt(657,1,{}),kGt.qf=function(){return this.e.n},kGt.We=function(t){return yEt(this.e,t)},kGt.rf=function(){return this.e.o},kGt.sf=function(){return this.e.p},kGt.Xe=function(t){return IN(this.e,t)},kGt.tf=function(t){this.e.n.a=t.a,this.e.n.b=t.b},kGt.uf=function(t){this.e.o.a=t.a,this.e.o.b=t.b},kGt.vf=function(t){this.e.p=t},bY(t1t,"LGraphAdapters/AbstractLShapeAdapter",657),fIt(577,1,{839:1},Fg),kGt.wf=function(){var t,e;if(!this.b)for(this.b=sN(this.a.b.c.length),e=new Wf(this.a.b);e.a<e.c.c.length;)t=jz(J1(e),70),Wz(this.b,new jg(t));return this.b},kGt.b=null,bY(t1t,"LGraphAdapters/LEdgeAdapter",577),fIt(656,1,{},$Z),kGt.xf=function(){var t,e,n,i,a;if(!this.b)for(this.b=new Lm,n=new Wf(this.a.b);n.a<n.c.c.length;)for(a=new Wf(jz(J1(n),29).a);a.a<a.c.c.length;)if(i=jz(J1(a),10),this.c.Mb(i)&&(Wz(this.b,new Pj(this,i,this.e)),this.d)){if(IN(i,(lGt(),Bhe)))for(e=jz(yEt(i,Bhe),15).Kc();e.Ob();)t=jz(e.Pb(),10),Wz(this.b,new Pj(this,t,!1));if(IN(i,Mde))for(e=jz(yEt(i,Mde),15).Kc();e.Ob();)t=jz(e.Pb(),10),Wz(this.b,new Pj(this,t,!1))}return this.b},kGt.qf=function(){throw $m(new Qw(n1t))},kGt.We=function(t){return yEt(this.a,t)},kGt.rf=function(){return this.a.f},kGt.sf=function(){return this.a.p},kGt.Xe=function(t){return IN(this.a,t)},kGt.tf=function(t){throw $m(new Qw(n1t))},kGt.uf=function(t){this.a.f.a=t.a,this.a.f.b=t.b},kGt.vf=function(t){this.a.p=t},kGt.b=null,kGt.d=!1,kGt.e=!1,bY(t1t,"LGraphAdapters/LGraphAdapter",656),fIt(576,657,{181:1},jg),bY(t1t,"LGraphAdapters/LLabelAdapter",576),fIt(575,657,{680:1},Pj),kGt.yf=function(){return this.b},kGt.zf=function(){return kK(),kK(),cne},kGt.wf=function(){var t,e;if(!this.a)for(this.a=sN(jz(this.e,10).b.c.length),e=new Wf(jz(this.e,10).b);e.a<e.c.c.length;)t=jz(J1(e),70),Wz(this.a,new jg(t));return this.a},kGt.Af=function(){var t;return new $P((t=jz(this.e,10).d).d,t.c,t.a,t.b)},kGt.Bf=function(){return kK(),kK(),cne},kGt.Cf=function(){var t,e;if(!this.c)for(this.c=sN(jz(this.e,10).j.c.length),e=new Wf(jz(this.e,10).j);e.a<e.c.c.length;)t=jz(J1(e),11),Wz(this.c,new gS(t,this.d));return this.c},kGt.Df=function(){return zw(RB(yEt(jz(this.e,10),(lGt(),Pde))))},kGt.Ef=function(t){jz(this.e,10).d.b=t.b,jz(this.e,10).d.d=t.d,jz(this.e,10).d.c=t.c,jz(this.e,10).d.a=t.a},kGt.Ff=function(t){jz(this.e,10).f.b=t.b,jz(this.e,10).f.d=t.d,jz(this.e,10).f.c=t.c,jz(this.e,10).f.a=t.a},kGt.Gf=function(){Oet(this,(gE(),vse))},kGt.a=null,kGt.b=null,kGt.c=null,kGt.d=!1,bY(t1t,"LGraphAdapters/LNodeAdapter",575),fIt(1722,657,{838:1},gS),kGt.zf=function(){var t,e,n,i;if(this.d&&jz(this.e,11).i.k==(oCt(),Tse))return kK(),kK(),cne;if(!this.a){for(this.a=new Lm,n=new Wf(jz(this.e,11).e);n.a<n.c.c.length;)t=jz(J1(n),17),Wz(this.a,new Fg(t));if(this.d&&(i=jz(yEt(jz(this.e,11),(lGt(),xhe)),10)))for(e=new oq(XO(uft(i).a.Kc(),new u));gIt(e);)t=jz(V6(e),17),Wz(this.a,new Fg(t))}return this.a},kGt.wf=function(){var t,e;if(!this.b)for(this.b=sN(jz(this.e,11).f.c.length),e=new Wf(jz(this.e,11).f);e.a<e.c.c.length;)t=jz(J1(e),70),Wz(this.b,new jg(t));return this.b},kGt.Bf=function(){var t,e,n,i;if(this.d&&jz(this.e,11).i.k==(oCt(),Tse))return kK(),kK(),cne;if(!this.c){for(this.c=new Lm,n=new Wf(jz(this.e,11).g);n.a<n.c.c.length;)t=jz(J1(n),17),Wz(this.c,new Fg(t));if(this.d&&(i=jz(yEt(jz(this.e,11),(lGt(),xhe)),10)))for(e=new oq(XO(dft(i).a.Kc(),new u));gIt(e);)t=jz(V6(e),17),Wz(this.c,new Fg(t))}return this.c},kGt.Hf=function(){return jz(this.e,11).j},kGt.If=function(){return zw(RB(yEt(jz(this.e,11),(lGt(),the))))},kGt.a=null,kGt.b=null,kGt.c=null,kGt.d=!1,bY(t1t,"LGraphAdapters/LPortAdapter",1722),fIt(1723,1,kXt,Fe),kGt.ue=function(t,e){return YBt(jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(t1t,"LGraphAdapters/PortComparator",1723),fIt(804,1,NZt,je),kGt.Mb=function(t){return jz(t,10),gE(),!0},bY(t1t,"LGraphAdapters/lambda$0$Type",804),fIt(392,299,{3:1,299:1,392:1,94:1,134:1}),bY(t1t,"LShape",392),fIt(70,392,{3:1,299:1,70:1,392:1,94:1,134:1},zR,TL),kGt.Ib=function(){var t;return null==(t=ZH(this))?"label":"l_"+t},bY(t1t,"LLabel",70),fIt(207,1,{3:1,4:1,207:1,414:1}),kGt.Fb=function(t){var e;return!!iO(t,207)&&(e=jz(t,207),this.d==e.d&&this.a==e.a&&this.b==e.b&&this.c==e.c)},kGt.Hb=function(){var t,e;return t=YD(this.b)<<16,t|=YD(this.a)&ZZt,e=YD(this.c)<<16,t^(e|=YD(this.d)&ZZt)},kGt.Jf=function(t){var e,n,i,a,r,o,s,c,l;for(a=0;a<t.length&&Nut((d1(a,t.length),t.charCodeAt(a)),s1t);)++a;for(e=t.length;e>0&&Nut((d1(e-1,t.length),t.charCodeAt(e-1)),c1t);)--e;if(a<e){c=wFt(t.substr(a,e-a),",|;");try{for(o=0,s=(r=c).length;o<s;++o){if(2!=(i=wFt(r[o],"=")).length)throw $m(new Pw("Expecting a list of key-value pairs."));n=BEt(i[0]),l=hCt(BEt(i[1])),mF(n,"top")?this.d=l:mF(n,"left")?this.b=l:mF(n,"bottom")?this.a=l:mF(n,"right")&&(this.c=l)}}catch(u){throw iO(u=dst(u),127)?$m(new Pw(l1t+u)):$m(u)}}},kGt.Ib=function(){return"[top="+this.d+",left="+this.b+",bottom="+this.a+",right="+this.c+"]"},kGt.a=0,kGt.b=0,kGt.c=0,kGt.d=0,bY(u1t,"Spacing",207),fIt(142,207,d1t,uv,uI,$P,Aj);var xse=bY(u1t,"ElkMargin",142);fIt(651,142,d1t,lv),bY(t1t,"LMargin",651),fIt(10,392,{3:1,299:1,10:1,392:1,94:1,134:1},Iyt),kGt.Ib=function(){return Imt(this)},kGt.i=!1;var Rse=bY(t1t,"LNode",10);fIt(267,22,{3:1,35:1,22:1,267:1},KC);var _se,kse,Ese,Cse,Sse,Tse,Ase,Dse=$nt(t1t,"LNode/NodeType",267,Vte,r8,Sj);fIt(116,207,h1t,dv,WI,Tj);var Ise=bY(u1t,"ElkPadding",116);fIt(764,116,h1t,hv),bY(t1t,"LPadding",764),fIt(11,392,{3:1,299:1,11:1,392:1,94:1,134:1},SCt),kGt.Ib=function(){var t,e,n;return oD(((t=new Cx).a+="p_",t),bwt(this)),this.i&&oD(rD((t.a+="[",t),this.i),"]"),1==this.e.c.length&&0==this.g.c.length&&jz(OU(this.e,0),17).c!=this&&(e=jz(OU(this.e,0),17).c,oD((t.a+=" << ",t),bwt(e)),oD(rD((t.a+="[",t),e.i),"]")),0==this.e.c.length&&1==this.g.c.length&&jz(OU(this.g,0),17).d!=this&&(n=jz(OU(this.g,0),17).d,oD((t.a+=" >> ",t),bwt(n)),oD(rD((t.a+="[",t),n.i),"]")),t.a},kGt.c=!0,kGt.d=!1;var Lse,Ose,Mse,Nse,Bse,Pse,Fse,jse,$se=bY(t1t,"LPort",11);fIt(397,1,bZt,$g),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new zg(new Wf(this.a.e))},bY(t1t,"LPort/1",397),fIt(1290,1,ZGt,zg),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return jz(J1(this.a),17).c},kGt.Ob=function(){return yL(this.a)},kGt.Qb=function(){AW(this.a)},bY(t1t,"LPort/1/1",1290),fIt(359,1,bZt,Hg),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new Ug(new Wf(this.a.g))},bY(t1t,"LPort/2",359),fIt(762,1,ZGt,Ug),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return jz(J1(this.a),17).d},kGt.Ob=function(){return yL(this.a)},kGt.Qb=function(){AW(this.a)},bY(t1t,"LPort/2/1",762),fIt(1283,1,bZt,cS),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new m7(this)},bY(t1t,"LPort/CombineIter",1283),fIt(201,1,ZGt,m7),kGt.Nb=function(t){lW(this,t)},kGt.Qb=function(){r_()},kGt.Ob=function(){return UM(this)},kGt.Pb=function(){return yL(this.a)?J1(this.a):J1(this.b)},bY(t1t,"LPort/CombineIter/1",201),fIt(1285,1,HXt,$e),kGt.Lb=function(t){return Aq(t)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return prt(),0!=jz(t,11).e.c.length},bY(t1t,"LPort/lambda$0$Type",1285),fIt(1284,1,HXt,ze),kGt.Lb=function(t){return Dq(t)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return prt(),0!=jz(t,11).g.c.length},bY(t1t,"LPort/lambda$1$Type",1284),fIt(1286,1,HXt,He),kGt.Lb=function(t){return prt(),jz(t,11).j==(wWt(),cAe)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return prt(),jz(t,11).j==(wWt(),cAe)},bY(t1t,"LPort/lambda$2$Type",1286),fIt(1287,1,HXt,Ue),kGt.Lb=function(t){return prt(),jz(t,11).j==(wWt(),sAe)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return prt(),jz(t,11).j==(wWt(),sAe)},bY(t1t,"LPort/lambda$3$Type",1287),fIt(1288,1,HXt,Ve),kGt.Lb=function(t){return prt(),jz(t,11).j==(wWt(),EAe)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return prt(),jz(t,11).j==(wWt(),EAe)},bY(t1t,"LPort/lambda$4$Type",1288),fIt(1289,1,HXt,qe),kGt.Lb=function(t){return prt(),jz(t,11).j==(wWt(),SAe)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return prt(),jz(t,11).j==(wWt(),SAe)},bY(t1t,"LPort/lambda$5$Type",1289),fIt(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},$Y),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new Wf(this.a)},kGt.Ib=function(){return"L_"+x9(this.b.b,this,0)+LEt(this.a)},bY(t1t,"Layer",29),fIt(1342,1,{},Qy),bY(g1t,p1t,1342),fIt(1346,1,{},We),kGt.Kb=function(t){return Ckt(jz(t,82))},bY(g1t,"ElkGraphImporter/0methodref$connectableShapeToNode$Type",1346),fIt(1349,1,{},Ye),kGt.Kb=function(t){return Ckt(jz(t,82))},bY(g1t,"ElkGraphImporter/1methodref$connectableShapeToNode$Type",1349),fIt(1343,1,dZt,Vg),kGt.td=function(t){CDt(this.a,jz(t,118))},bY(g1t,b1t,1343),fIt(1344,1,dZt,qg),kGt.td=function(t){CDt(this.a,jz(t,118))},bY(g1t,m1t,1344),fIt(1345,1,{},Ge),kGt.Kb=function(t){return new NU(null,new h1(pZ(jz(t,79)),16))},bY(g1t,y1t,1345),fIt(1347,1,NZt,Wg),kGt.Mb=function(t){return PI(this.a,jz(t,33))},bY(g1t,v1t,1347),fIt(1348,1,{},Ze),kGt.Kb=function(t){return new NU(null,new h1(bZ(jz(t,79)),16))},bY(g1t,"ElkGraphImporter/lambda$5$Type",1348),fIt(1350,1,NZt,Yg),kGt.Mb=function(t){return FI(this.a,jz(t,33))},bY(g1t,"ElkGraphImporter/lambda$7$Type",1350),fIt(1351,1,NZt,Ke),kGt.Mb=function(t){return AK(jz(t,79))},bY(g1t,"ElkGraphImporter/lambda$8$Type",1351),fIt(1278,1,{},Gu),bY(g1t,"ElkGraphLayoutTransferrer",1278),fIt(1279,1,NZt,Gg),kGt.Mb=function(t){return KP(this.a,jz(t,17))},bY(g1t,"ElkGraphLayoutTransferrer/lambda$0$Type",1279),fIt(1280,1,dZt,Zg),kGt.td=function(t){mE(),Wz(this.a,jz(t,17))},bY(g1t,"ElkGraphLayoutTransferrer/lambda$1$Type",1280),fIt(1281,1,NZt,Kg),kGt.Mb=function(t){return VB(this.a,jz(t,17))},bY(g1t,"ElkGraphLayoutTransferrer/lambda$2$Type",1281),fIt(1282,1,dZt,Xg),kGt.td=function(t){mE(),Wz(this.a,jz(t,17))},bY(g1t,"ElkGraphLayoutTransferrer/lambda$3$Type",1282),fIt(1485,1,QQt,Xe),kGt.pf=function(t,e){Gat(jz(t,37),e)},bY(x1t,"CommentNodeMarginCalculator",1485),fIt(1486,1,{},Je),kGt.Kb=function(t){return new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"CommentNodeMarginCalculator/lambda$0$Type",1486),fIt(1487,1,dZt,Qe),kGt.td=function(t){tHt(jz(t,10))},bY(x1t,"CommentNodeMarginCalculator/lambda$1$Type",1487),fIt(1488,1,QQt,tn),kGt.pf=function(t,e){rBt(jz(t,37),e)},bY(x1t,"CommentPostprocessor",1488),fIt(1489,1,QQt,en),kGt.pf=function(t,e){oWt(jz(t,37),e)},bY(x1t,"CommentPreprocessor",1489),fIt(1490,1,QQt,nn),kGt.pf=function(t,e){xOt(jz(t,37),e)},bY(x1t,"ConstraintsPostprocessor",1490),fIt(1491,1,QQt,an),kGt.pf=function(t,e){aot(jz(t,37),e)},bY(x1t,"EdgeAndLayerConstraintEdgeReverser",1491),fIt(1492,1,QQt,rn),kGt.pf=function(t,e){Ugt(jz(t,37),e)},bY(x1t,"EndLabelPostprocessor",1492),fIt(1493,1,{},on),kGt.Kb=function(t){return new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"EndLabelPostprocessor/lambda$0$Type",1493),fIt(1494,1,NZt,sn),kGt.Mb=function(t){return _X(jz(t,10))},bY(x1t,"EndLabelPostprocessor/lambda$1$Type",1494),fIt(1495,1,dZt,cn),kGt.td=function(t){eRt(jz(t,10))},bY(x1t,"EndLabelPostprocessor/lambda$2$Type",1495),fIt(1496,1,QQt,ln),kGt.pf=function(t,e){JSt(jz(t,37),e)},bY(x1t,"EndLabelPreprocessor",1496),fIt(1497,1,{},un),kGt.Kb=function(t){return new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"EndLabelPreprocessor/lambda$0$Type",1497),fIt(1498,1,dZt,Mj),kGt.td=function(t){BE(this.a,this.b,this.c,jz(t,10))},kGt.a=0,kGt.b=0,kGt.c=!1,bY(x1t,"EndLabelPreprocessor/lambda$1$Type",1498),fIt(1499,1,NZt,dn),kGt.Mb=function(t){return HA(yEt(jz(t,70),(zYt(),Zpe)))===HA((Bet(),WSe))},bY(x1t,"EndLabelPreprocessor/lambda$2$Type",1499),fIt(1500,1,dZt,Jg),kGt.td=function(t){MH(this.a,jz(t,70))},bY(x1t,"EndLabelPreprocessor/lambda$3$Type",1500),fIt(1501,1,NZt,hn),kGt.Mb=function(t){return HA(yEt(jz(t,70),(zYt(),Zpe)))===HA((Bet(),qSe))},bY(x1t,"EndLabelPreprocessor/lambda$4$Type",1501),fIt(1502,1,dZt,Qg),kGt.td=function(t){MH(this.a,jz(t,70))},bY(x1t,"EndLabelPreprocessor/lambda$5$Type",1502),fIt(1551,1,QQt,Yu),kGt.pf=function(t,e){Sht(jz(t,37),e)},bY(x1t,"EndLabelSorter",1551),fIt(1552,1,kXt,fn),kGt.ue=function(t,e){return zbt(jz(t,456),jz(e,456))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"EndLabelSorter/1",1552),fIt(456,1,{456:1},RK),bY(x1t,"EndLabelSorter/LabelGroup",456),fIt(1553,1,{},gn),kGt.Kb=function(t){return xE(),new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"EndLabelSorter/lambda$0$Type",1553),fIt(1554,1,NZt,pn),kGt.Mb=function(t){return xE(),jz(t,10).k==(oCt(),Sse)},bY(x1t,"EndLabelSorter/lambda$1$Type",1554),fIt(1555,1,dZt,bn),kGt.td=function(t){sCt(jz(t,10))},bY(x1t,"EndLabelSorter/lambda$2$Type",1555),fIt(1556,1,NZt,mn),kGt.Mb=function(t){return xE(),HA(yEt(jz(t,70),(zYt(),Zpe)))===HA((Bet(),qSe))},bY(x1t,"EndLabelSorter/lambda$3$Type",1556),fIt(1557,1,NZt,yn),kGt.Mb=function(t){return xE(),HA(yEt(jz(t,70),(zYt(),Zpe)))===HA((Bet(),WSe))},bY(x1t,"EndLabelSorter/lambda$4$Type",1557),fIt(1503,1,QQt,vn),kGt.pf=function(t,e){THt(this,jz(t,37))},kGt.b=0,kGt.c=0,bY(x1t,"FinalSplineBendpointsCalculator",1503),fIt(1504,1,{},wn),kGt.Kb=function(t){return new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"FinalSplineBendpointsCalculator/lambda$0$Type",1504),fIt(1505,1,{},xn),kGt.Kb=function(t){return new NU(null,new UW(new oq(XO(dft(jz(t,10)).a.Kc(),new u))))},bY(x1t,"FinalSplineBendpointsCalculator/lambda$1$Type",1505),fIt(1506,1,NZt,Rn),kGt.Mb=function(t){return!d6(jz(t,17))},bY(x1t,"FinalSplineBendpointsCalculator/lambda$2$Type",1506),fIt(1507,1,NZt,_n),kGt.Mb=function(t){return IN(jz(t,17),(lGt(),Lhe))},bY(x1t,"FinalSplineBendpointsCalculator/lambda$3$Type",1507),fIt(1508,1,dZt,tp),kGt.td=function(t){VFt(this.a,jz(t,128))},bY(x1t,"FinalSplineBendpointsCalculator/lambda$4$Type",1508),fIt(1509,1,dZt,kn),kGt.td=function(t){XSt(jz(t,17).a)},bY(x1t,"FinalSplineBendpointsCalculator/lambda$5$Type",1509),fIt(792,1,QQt,ep),kGt.pf=function(t,e){GUt(this,jz(t,37),e)},bY(x1t,"GraphTransformer",792),fIt(511,22,{3:1,35:1,22:1,511:1},XC);var zse,Hse,Use,Vse,qse,Wse=$nt(x1t,"GraphTransformer/Mode",511,Vte,rJ,Q$);fIt(1510,1,QQt,En),kGt.pf=function(t,e){eNt(jz(t,37),e)},bY(x1t,"HierarchicalNodeResizingProcessor",1510),fIt(1511,1,QQt,Cn),kGt.pf=function(t,e){dat(jz(t,37),e)},bY(x1t,"HierarchicalPortConstraintProcessor",1511),fIt(1512,1,kXt,Sn),kGt.ue=function(t,e){return Tmt(jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"HierarchicalPortConstraintProcessor/NodeComparator",1512),fIt(1513,1,QQt,Tn),kGt.pf=function(t,e){xzt(jz(t,37),e)},bY(x1t,"HierarchicalPortDummySizeProcessor",1513),fIt(1514,1,QQt,An),kGt.pf=function(t,e){XBt(this,jz(t,37),e)},kGt.a=0,bY(x1t,"HierarchicalPortOrthogonalEdgeRouter",1514),fIt(1515,1,kXt,Dn),kGt.ue=function(t,e){return PM(jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"HierarchicalPortOrthogonalEdgeRouter/1",1515),fIt(1516,1,kXt,In),kGt.ue=function(t,e){return E8(jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"HierarchicalPortOrthogonalEdgeRouter/2",1516),fIt(1517,1,QQt,Ln),kGt.pf=function(t,e){REt(jz(t,37),e)},bY(x1t,"HierarchicalPortPositionProcessor",1517),fIt(1518,1,QQt,Zu),kGt.pf=function(t,e){iYt(this,jz(t,37))},kGt.a=0,kGt.c=0,bY(x1t,"HighDegreeNodeLayeringProcessor",1518),fIt(571,1,{571:1},On),kGt.b=-1,kGt.d=-1,bY(x1t,"HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation",571),fIt(1519,1,{},Mn),kGt.Kb=function(t){return zj(),uft(jz(t,10))},kGt.Fb=function(t){return this===t},bY(x1t,"HighDegreeNodeLayeringProcessor/lambda$0$Type",1519),fIt(1520,1,{},Nn),kGt.Kb=function(t){return zj(),dft(jz(t,10))},kGt.Fb=function(t){return this===t},bY(x1t,"HighDegreeNodeLayeringProcessor/lambda$1$Type",1520),fIt(1526,1,QQt,Bn),kGt.pf=function(t,e){g$t(this,jz(t,37),e)},bY(x1t,"HyperedgeDummyMerger",1526),fIt(793,1,{},Nj),kGt.a=!1,kGt.b=!1,kGt.c=!1,bY(x1t,"HyperedgeDummyMerger/MergeState",793),fIt(1527,1,{},Pn),kGt.Kb=function(t){return new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"HyperedgeDummyMerger/lambda$0$Type",1527),fIt(1528,1,{},Fn),kGt.Kb=function(t){return new NU(null,new h1(jz(t,10).j,16))},bY(x1t,"HyperedgeDummyMerger/lambda$1$Type",1528),fIt(1529,1,dZt,jn),kGt.td=function(t){jz(t,11).p=-1},bY(x1t,"HyperedgeDummyMerger/lambda$2$Type",1529),fIt(1530,1,QQt,$n),kGt.pf=function(t,e){h$t(jz(t,37),e)},bY(x1t,"HypernodesProcessor",1530),fIt(1531,1,QQt,zn),kGt.pf=function(t,e){f$t(jz(t,37),e)},bY(x1t,"InLayerConstraintProcessor",1531),fIt(1532,1,QQt,Hn),kGt.pf=function(t,e){Lrt(jz(t,37),e)},bY(x1t,"InnermostNodeMarginCalculator",1532),fIt(1533,1,QQt,Un),kGt.pf=function(t,e){Gqt(this,jz(t,37))},kGt.a=PKt,kGt.b=PKt,kGt.c=BKt,kGt.d=BKt;var Yse=bY(x1t,"InteractiveExternalPortPositioner",1533);fIt(1534,1,{},Vn),kGt.Kb=function(t){return jz(t,17).d.i},kGt.Fb=function(t){return this===t},bY(x1t,"InteractiveExternalPortPositioner/lambda$0$Type",1534),fIt(1535,1,{},np),kGt.Kb=function(t){return zM(this.a,_B(t))},kGt.Fb=function(t){return this===t},bY(x1t,"InteractiveExternalPortPositioner/lambda$1$Type",1535),fIt(1536,1,{},qn),kGt.Kb=function(t){return jz(t,17).c.i},kGt.Fb=function(t){return this===t},bY(x1t,"InteractiveExternalPortPositioner/lambda$2$Type",1536),fIt(1537,1,{},ip),kGt.Kb=function(t){return HM(this.a,_B(t))},kGt.Fb=function(t){return this===t},bY(x1t,"InteractiveExternalPortPositioner/lambda$3$Type",1537),fIt(1538,1,{},ap),kGt.Kb=function(t){return WP(this.a,_B(t))},kGt.Fb=function(t){return this===t},bY(x1t,"InteractiveExternalPortPositioner/lambda$4$Type",1538),fIt(1539,1,{},rp),kGt.Kb=function(t){return YP(this.a,_B(t))},kGt.Fb=function(t){return this===t},bY(x1t,"InteractiveExternalPortPositioner/lambda$5$Type",1539),fIt(77,22,{3:1,35:1,22:1,77:1,234:1},JC),kGt.Kf=function(){switch(this.g){case 15:return new pr;case 22:return new br;case 47:return new vr;case 28:case 35:return new ni;case 32:return new Xe;case 42:return new tn;case 1:return new en;case 41:return new nn;case 56:return new ep((Eat(),Hse));case 0:return new ep((Eat(),zse));case 2:return new an;case 54:return new rn;case 33:return new ln;case 51:return new vn;case 55:return new En;case 13:return new Cn;case 38:return new Tn;case 44:return new An;case 40:return new Ln;case 9:return new Zu;case 49:return new oN;case 37:return new Bn;case 43:return new $n;case 27:return new zn;case 30:return new Hn;case 3:return new Un;case 18:return new Yn;case 29:return new Gn;case 5:return new Ku;case 50:return new Wn;case 34:return new Xu;case 36:return new ii;case 52:return new Yu;case 11:return new ri;case 7:return new Qu;case 39:return new oi;case 45:return new si;case 16:return new ci;case 10:return new li;case 48:return new di;case 21:return new hi;case 23:return new Lw((sit(),Dve));case 8:return new gi;case 12:return new bi;case 4:return new mi;case 19:return new id;case 17:return new Si;case 53:return new Ti;case 6:return new zi;case 25:return new av;case 46:return new Mi;case 31:return new OP;case 14:return new Zi;case 26:return new Cr;case 20:return new ta;case 24:return new Lw((sit(),Ive));default:throw $m(new Pw(k1t+(null!=this.f?this.f:""+this.g)))}};var Gse,Zse,Kse,Xse,Jse,Qse,tce,ece,nce,ice,ace,rce,oce,sce,cce,lce,uce,dce,hce,fce,gce,pce,bce,mce,yce,vce,wce,xce,Rce,_ce,kce,Ece,Cce,Sce,Tce,Ace,Dce,Ice,Lce,Oce,Mce,Nce,Bce,Pce,Fce,jce,$ce,zce,Hce,Uce,Vce,qce,Wce,Yce,Gce,Zce,Kce,Xce,Jce,Qce,tle,ele=$nt(x1t,E1t,77,Vte,RMt,J$);fIt(1540,1,QQt,Yn),kGt.pf=function(t,e){Xqt(jz(t,37),e)},bY(x1t,"InvertedPortProcessor",1540),fIt(1541,1,QQt,Gn),kGt.pf=function(t,e){LFt(jz(t,37),e)},bY(x1t,"LabelAndNodeSizeProcessor",1541),fIt(1542,1,NZt,Zn),kGt.Mb=function(t){return jz(t,10).k==(oCt(),Sse)},bY(x1t,"LabelAndNodeSizeProcessor/lambda$0$Type",1542),fIt(1543,1,NZt,Kn),kGt.Mb=function(t){return jz(t,10).k==(oCt(),kse)},bY(x1t,"LabelAndNodeSizeProcessor/lambda$1$Type",1543),fIt(1544,1,dZt,Bj),kGt.td=function(t){PE(this.b,this.a,this.c,jz(t,10))},kGt.a=!1,kGt.c=!1,bY(x1t,"LabelAndNodeSizeProcessor/lambda$2$Type",1544),fIt(1545,1,QQt,Ku),kGt.pf=function(t,e){uqt(jz(t,37),e)},bY(x1t,"LabelDummyInserter",1545),fIt(1546,1,HXt,Xn),kGt.Lb=function(t){return HA(yEt(jz(t,70),(zYt(),Zpe)))===HA((Bet(),VSe))},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return HA(yEt(jz(t,70),(zYt(),Zpe)))===HA((Bet(),VSe))},bY(x1t,"LabelDummyInserter/1",1546),fIt(1547,1,QQt,Wn),kGt.pf=function(t,e){CUt(jz(t,37),e)},bY(x1t,"LabelDummyRemover",1547),fIt(1548,1,NZt,Jn),kGt.Mb=function(t){return zw(RB(yEt(jz(t,70),(zYt(),Gpe))))},bY(x1t,"LabelDummyRemover/lambda$0$Type",1548),fIt(1359,1,QQt,Xu),kGt.pf=function(t,e){_Vt(this,jz(t,37),e)},kGt.a=null,bY(x1t,"LabelDummySwitcher",1359),fIt(286,1,{286:1},aFt),kGt.c=0,kGt.d=null,kGt.f=0,bY(x1t,"LabelDummySwitcher/LabelDummyInfo",286),fIt(1360,1,{},Qn),kGt.Kb=function(t){return Tat(),new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"LabelDummySwitcher/lambda$0$Type",1360),fIt(1361,1,NZt,ti),kGt.Mb=function(t){return Tat(),jz(t,10).k==(oCt(),Ese)},bY(x1t,"LabelDummySwitcher/lambda$1$Type",1361),fIt(1362,1,{},cp),kGt.Kb=function(t){return qB(this.a,jz(t,10))},bY(x1t,"LabelDummySwitcher/lambda$2$Type",1362),fIt(1363,1,dZt,lp),kGt.td=function(t){ZY(this.a,jz(t,286))},bY(x1t,"LabelDummySwitcher/lambda$3$Type",1363),fIt(1364,1,kXt,ei),kGt.ue=function(t,e){return Iq(jz(t,286),jz(e,286))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"LabelDummySwitcher/lambda$4$Type",1364),fIt(791,1,QQt,ni),kGt.pf=function(t,e){Z7(jz(t,37),e)},bY(x1t,"LabelManagementProcessor",791),fIt(1549,1,QQt,ii),kGt.pf=function(t,e){ONt(jz(t,37),e)},bY(x1t,"LabelSideSelector",1549),fIt(1550,1,NZt,ai),kGt.Mb=function(t){return zw(RB(yEt(jz(t,70),(zYt(),Gpe))))},bY(x1t,"LabelSideSelector/lambda$0$Type",1550),fIt(1558,1,QQt,ri),kGt.pf=function(t,e){Rzt(jz(t,37),e)},bY(x1t,"LayerConstraintPostprocessor",1558),fIt(1559,1,QQt,Qu),kGt.pf=function(t,e){iLt(jz(t,37),e)},bY(x1t,"LayerConstraintPreprocessor",1559),fIt(360,22,{3:1,35:1,22:1,360:1},QC);var nle,ile,ale,rle,ole,sle,cle,lle,ule,dle,hle,fle,gle,ple=$nt(x1t,"LayerConstraintPreprocessor/HiddenNodeConnections",360,Vte,t4,Uj);fIt(1560,1,QQt,oi),kGt.pf=function(t,e){RUt(jz(t,37),e)},bY(x1t,"LayerSizeAndGraphHeightCalculator",1560),fIt(1561,1,QQt,si),kGt.pf=function(t,e){DOt(jz(t,37),e)},bY(x1t,"LongEdgeJoiner",1561),fIt(1562,1,QQt,ci),kGt.pf=function(t,e){YHt(jz(t,37),e)},bY(x1t,"LongEdgeSplitter",1562),fIt(1563,1,QQt,li),kGt.pf=function(t,e){CVt(this,jz(t,37),e)},kGt.d=0,kGt.e=0,kGt.i=0,kGt.j=0,kGt.k=0,kGt.n=0,bY(x1t,"NodePromotion",1563),fIt(1564,1,{},ui),kGt.Kb=function(t){return jz(t,46),cM(),!0},kGt.Fb=function(t){return this===t},bY(x1t,"NodePromotion/lambda$0$Type",1564),fIt(1565,1,{},op),kGt.Kb=function(t){return aZ(this.a,jz(t,46))},kGt.Fb=function(t){return this===t},kGt.a=0,bY(x1t,"NodePromotion/lambda$1$Type",1565),fIt(1566,1,{},sp),kGt.Kb=function(t){return rZ(this.a,jz(t,46))},kGt.Fb=function(t){return this===t},kGt.a=0,bY(x1t,"NodePromotion/lambda$2$Type",1566),fIt(1567,1,QQt,di),kGt.pf=function(t,e){WWt(jz(t,37),e)},bY(x1t,"NorthSouthPortPostprocessor",1567),fIt(1568,1,QQt,hi),kGt.pf=function(t,e){kWt(jz(t,37),e)},bY(x1t,"NorthSouthPortPreprocessor",1568),fIt(1569,1,kXt,fi),kGt.ue=function(t,e){return Jot(jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"NorthSouthPortPreprocessor/lambda$0$Type",1569),fIt(1570,1,QQt,gi),kGt.pf=function(t,e){Ijt(jz(t,37),e)},bY(x1t,"PartitionMidprocessor",1570),fIt(1571,1,NZt,pi),kGt.Mb=function(t){return IN(jz(t,10),(zYt(),Wbe))},bY(x1t,"PartitionMidprocessor/lambda$0$Type",1571),fIt(1572,1,dZt,up),kGt.td=function(t){DK(this.a,jz(t,10))},bY(x1t,"PartitionMidprocessor/lambda$1$Type",1572),fIt(1573,1,QQt,bi),kGt.pf=function(t,e){fMt(jz(t,37),e)},bY(x1t,"PartitionPostprocessor",1573),fIt(1574,1,QQt,mi),kGt.pf=function(t,e){ODt(jz(t,37),e)},bY(x1t,"PartitionPreprocessor",1574),fIt(1575,1,NZt,yi),kGt.Mb=function(t){return IN(jz(t,10),(zYt(),Wbe))},bY(x1t,"PartitionPreprocessor/lambda$0$Type",1575),fIt(1576,1,{},vi),kGt.Kb=function(t){return new NU(null,new UW(new oq(XO(dft(jz(t,10)).a.Kc(),new u))))},bY(x1t,"PartitionPreprocessor/lambda$1$Type",1576),fIt(1577,1,NZt,wi),kGt.Mb=function(t){return Lbt(jz(t,17))},bY(x1t,"PartitionPreprocessor/lambda$2$Type",1577),fIt(1578,1,dZt,xi),kGt.td=function(t){Bst(jz(t,17))},bY(x1t,"PartitionPreprocessor/lambda$3$Type",1578),fIt(1579,1,QQt,id),kGt.pf=function(t,e){ojt(jz(t,37),e)},bY(x1t,"PortListSorter",1579),fIt(1580,1,{},Ri),kGt.Kb=function(t){return Vlt(),jz(t,11).e},bY(x1t,"PortListSorter/lambda$0$Type",1580),fIt(1581,1,{},_i),kGt.Kb=function(t){return Vlt(),jz(t,11).g},bY(x1t,"PortListSorter/lambda$1$Type",1581),fIt(1582,1,kXt,ki),kGt.ue=function(t,e){return R3(jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"PortListSorter/lambda$2$Type",1582),fIt(1583,1,kXt,Ei),kGt.ue=function(t,e){return Awt(jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"PortListSorter/lambda$3$Type",1583),fIt(1584,1,kXt,Ci),kGt.ue=function(t,e){return Qjt(jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"PortListSorter/lambda$4$Type",1584),fIt(1585,1,QQt,Si),kGt.pf=function(t,e){YIt(jz(t,37),e)},bY(x1t,"PortSideProcessor",1585),fIt(1586,1,QQt,Ti),kGt.pf=function(t,e){TPt(jz(t,37),e)},bY(x1t,"ReversedEdgeRestorer",1586),fIt(1591,1,QQt,av),kGt.pf=function(t,e){Kvt(this,jz(t,37),e)},bY(x1t,"SelfLoopPortRestorer",1591),fIt(1592,1,{},Ai),kGt.Kb=function(t){return new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"SelfLoopPortRestorer/lambda$0$Type",1592),fIt(1593,1,NZt,Di),kGt.Mb=function(t){return jz(t,10).k==(oCt(),Sse)},bY(x1t,"SelfLoopPortRestorer/lambda$1$Type",1593),fIt(1594,1,NZt,Ii),kGt.Mb=function(t){return IN(jz(t,10),(lGt(),The))},bY(x1t,"SelfLoopPortRestorer/lambda$2$Type",1594),fIt(1595,1,{},Li),kGt.Kb=function(t){return jz(yEt(jz(t,10),(lGt(),The)),403)},bY(x1t,"SelfLoopPortRestorer/lambda$3$Type",1595),fIt(1596,1,dZt,dp),kGt.td=function(t){ECt(this.a,jz(t,403))},bY(x1t,"SelfLoopPortRestorer/lambda$4$Type",1596),fIt(794,1,dZt,Oi),kGt.td=function(t){QCt(jz(t,101))},bY(x1t,"SelfLoopPortRestorer/lambda$5$Type",794),fIt(1597,1,QQt,Mi),kGt.pf=function(t,e){Lmt(jz(t,37),e)},bY(x1t,"SelfLoopPostProcessor",1597),fIt(1598,1,{},Ni),kGt.Kb=function(t){return new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"SelfLoopPostProcessor/lambda$0$Type",1598),fIt(1599,1,NZt,Bi),kGt.Mb=function(t){return jz(t,10).k==(oCt(),Sse)},bY(x1t,"SelfLoopPostProcessor/lambda$1$Type",1599),fIt(1600,1,NZt,Pi),kGt.Mb=function(t){return IN(jz(t,10),(lGt(),The))},bY(x1t,"SelfLoopPostProcessor/lambda$2$Type",1600),fIt(1601,1,dZt,Fi),kGt.td=function(t){LRt(jz(t,10))},bY(x1t,"SelfLoopPostProcessor/lambda$3$Type",1601),fIt(1602,1,{},ji),kGt.Kb=function(t){return new NU(null,new h1(jz(t,101).f,1))},bY(x1t,"SelfLoopPostProcessor/lambda$4$Type",1602),fIt(1603,1,dZt,hp),kGt.td=function(t){a4(this.a,jz(t,409))},bY(x1t,"SelfLoopPostProcessor/lambda$5$Type",1603),fIt(1604,1,NZt,$i),kGt.Mb=function(t){return!!jz(t,101).i},bY(x1t,"SelfLoopPostProcessor/lambda$6$Type",1604),fIt(1605,1,dZt,fp),kGt.td=function(t){Rw(this.a,jz(t,101))},bY(x1t,"SelfLoopPostProcessor/lambda$7$Type",1605),fIt(1587,1,QQt,zi),kGt.pf=function(t,e){JLt(jz(t,37),e)},bY(x1t,"SelfLoopPreProcessor",1587),fIt(1588,1,{},Hi),kGt.Kb=function(t){return new NU(null,new h1(jz(t,101).f,1))},bY(x1t,"SelfLoopPreProcessor/lambda$0$Type",1588),fIt(1589,1,{},Ui),kGt.Kb=function(t){return jz(t,409).a},bY(x1t,"SelfLoopPreProcessor/lambda$1$Type",1589),fIt(1590,1,dZt,Vi),kGt.td=function(t){zL(jz(t,17))},bY(x1t,"SelfLoopPreProcessor/lambda$2$Type",1590),fIt(1606,1,QQt,OP),kGt.pf=function(t,e){cCt(this,jz(t,37),e)},bY(x1t,"SelfLoopRouter",1606),fIt(1607,1,{},qi),kGt.Kb=function(t){return new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"SelfLoopRouter/lambda$0$Type",1607),fIt(1608,1,NZt,Wi),kGt.Mb=function(t){return jz(t,10).k==(oCt(),Sse)},bY(x1t,"SelfLoopRouter/lambda$1$Type",1608),fIt(1609,1,NZt,Yi),kGt.Mb=function(t){return IN(jz(t,10),(lGt(),The))},bY(x1t,"SelfLoopRouter/lambda$2$Type",1609),fIt(1610,1,{},Gi),kGt.Kb=function(t){return jz(yEt(jz(t,10),(lGt(),The)),403)},bY(x1t,"SelfLoopRouter/lambda$3$Type",1610),fIt(1611,1,dZt,tS),kGt.td=function(t){GZ(this.a,this.b,jz(t,403))},bY(x1t,"SelfLoopRouter/lambda$4$Type",1611),fIt(1612,1,QQt,Zi),kGt.pf=function(t,e){uNt(jz(t,37),e)},bY(x1t,"SemiInteractiveCrossMinProcessor",1612),fIt(1613,1,NZt,Ki),kGt.Mb=function(t){return jz(t,10).k==(oCt(),Sse)},bY(x1t,"SemiInteractiveCrossMinProcessor/lambda$0$Type",1613),fIt(1614,1,NZt,Xi),kGt.Mb=function(t){return HU(jz(t,10))._b((zYt(),sme))},bY(x1t,"SemiInteractiveCrossMinProcessor/lambda$1$Type",1614),fIt(1615,1,kXt,Ji),kGt.ue=function(t,e){return gat(jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"SemiInteractiveCrossMinProcessor/lambda$2$Type",1615),fIt(1616,1,{},Qi),kGt.Ce=function(t,e){return qK(jz(t,10),jz(e,10))},bY(x1t,"SemiInteractiveCrossMinProcessor/lambda$3$Type",1616),fIt(1618,1,QQt,ta),kGt.pf=function(t,e){kzt(jz(t,37),e)},bY(x1t,"SortByInputModelProcessor",1618),fIt(1619,1,NZt,ea),kGt.Mb=function(t){return 0!=jz(t,11).g.c.length},bY(x1t,"SortByInputModelProcessor/lambda$0$Type",1619),fIt(1620,1,dZt,gp),kGt.td=function(t){uSt(this.a,jz(t,11))},bY(x1t,"SortByInputModelProcessor/lambda$1$Type",1620),fIt(1693,803,{},pat),kGt.Me=function(t){var e,n,i,a;switch(this.c=t,this.a.g){case 2:e=new Lm,Kk(AZ(new NU(null,new h1(this.c.a.b,16)),new pa),new rS(this,e)),bTt(this,new aa),Aet(e,new ra),e.c=O5(Dte,zGt,1,0,5,1),Kk(AZ(new NU(null,new h1(this.c.a.b,16)),new oa),new bp(e)),bTt(this,new sa),Aet(e,new ca),e.c=O5(Dte,zGt,1,0,5,1),n=wL(nrt(IZ(new NU(null,new h1(this.c.a.b,16)),new mp(this))),new la),Kk(new NU(null,new h1(this.c.a.a,16)),new nS(n,e)),bTt(this,new da),Aet(e,new na),e.c=O5(Dte,zGt,1,0,5,1);break;case 3:i=new Lm,bTt(this,new ia),a=wL(nrt(IZ(new NU(null,new h1(this.c.a.b,16)),new pp(this))),new ua),Kk(AZ(new NU(null,new h1(this.c.a.b,16)),new ha),new aS(a,i)),bTt(this,new fa),Aet(i,new ga),i.c=O5(Dte,zGt,1,0,5,1);break;default:throw $m(new vy)}},kGt.b=0,bY(D1t,"EdgeAwareScanlineConstraintCalculation",1693),fIt(1694,1,HXt,ia),kGt.Lb=function(t){return iO(jz(t,57).g,145)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return iO(jz(t,57).g,145)},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$0$Type",1694),fIt(1695,1,{},pp),kGt.Fe=function(t){return UTt(this.a,jz(t,57))},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$1$Type",1695),fIt(1703,1,BZt,eS),kGt.Vd=function(){jxt(this.a,this.b,-1)},kGt.b=0,bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$10$Type",1703),fIt(1705,1,HXt,aa),kGt.Lb=function(t){return iO(jz(t,57).g,145)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return iO(jz(t,57).g,145)},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$11$Type",1705),fIt(1706,1,dZt,ra),kGt.td=function(t){jz(t,365).Vd()},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$12$Type",1706),fIt(1707,1,NZt,oa),kGt.Mb=function(t){return iO(jz(t,57).g,10)},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$13$Type",1707),fIt(1709,1,dZt,bp),kGt.td=function(t){Rft(this.a,jz(t,57))},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$14$Type",1709),fIt(1708,1,BZt,uS),kGt.Vd=function(){jxt(this.b,this.a,-1)},kGt.a=0,bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$15$Type",1708),fIt(1710,1,HXt,sa),kGt.Lb=function(t){return iO(jz(t,57).g,10)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return iO(jz(t,57).g,10)},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$16$Type",1710),fIt(1711,1,dZt,ca),kGt.td=function(t){jz(t,365).Vd()},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$17$Type",1711),fIt(1712,1,{},mp),kGt.Fe=function(t){return VTt(this.a,jz(t,57))},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$18$Type",1712),fIt(1713,1,{},la),kGt.De=function(){return 0},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$19$Type",1713),fIt(1696,1,{},ua),kGt.De=function(){return 0},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$2$Type",1696),fIt(1715,1,dZt,nS),kGt.td=function(t){$V(this.a,this.b,jz(t,307))},kGt.a=0,bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$20$Type",1715),fIt(1714,1,BZt,iS),kGt.Vd=function(){GIt(this.a,this.b,-1)},kGt.b=0,bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$21$Type",1714),fIt(1716,1,HXt,da),kGt.Lb=function(t){return jz(t,57),!0},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return jz(t,57),!0},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$22$Type",1716),fIt(1717,1,dZt,na),kGt.td=function(t){jz(t,365).Vd()},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$23$Type",1717),fIt(1697,1,NZt,ha),kGt.Mb=function(t){return iO(jz(t,57).g,10)},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$3$Type",1697),fIt(1699,1,dZt,aS),kGt.td=function(t){zV(this.a,this.b,jz(t,57))},kGt.a=0,bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$4$Type",1699),fIt(1698,1,BZt,dS),kGt.Vd=function(){jxt(this.b,this.a,-1)},kGt.a=0,bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$5$Type",1698),fIt(1700,1,HXt,fa),kGt.Lb=function(t){return jz(t,57),!0},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return jz(t,57),!0},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$6$Type",1700),fIt(1701,1,dZt,ga),kGt.td=function(t){jz(t,365).Vd()},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$7$Type",1701),fIt(1702,1,NZt,pa),kGt.Mb=function(t){return iO(jz(t,57).g,145)},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$8$Type",1702),fIt(1704,1,dZt,rS),kGt.td=function(t){_et(this.a,this.b,jz(t,57))},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$9$Type",1704),fIt(1521,1,QQt,oN),kGt.pf=function(t,e){aUt(this,jz(t,37),e)},bY(D1t,"HorizontalGraphCompactor",1521),fIt(1522,1,{},yp),kGt.Oe=function(t,e){var n,i;return X9(t,e)||(n=l2(t),i=l2(e),n&&n.k==(oCt(),kse)||i&&i.k==(oCt(),kse))?0:VM(jz(yEt(this.a.a,(lGt(),Ahe)),304),n?n.k:(oCt(),Cse),i?i.k:(oCt(),Cse))},kGt.Pe=function(t,e){var n,i;return X9(t,e)?1:(n=l2(t),i=l2(e),qM(jz(yEt(this.a.a,(lGt(),Ahe)),304),n?n.k:(oCt(),Cse),i?i.k:(oCt(),Cse)))},bY(D1t,"HorizontalGraphCompactor/1",1522),fIt(1523,1,{},ba),kGt.Ne=function(t,e){return _E(),0==t.a.i},bY(D1t,"HorizontalGraphCompactor/lambda$0$Type",1523),fIt(1524,1,{},vp),kGt.Ne=function(t,e){return PK(this.a,t,e)},bY(D1t,"HorizontalGraphCompactor/lambda$1$Type",1524),fIt(1664,1,{},S9),bY(D1t,"LGraphToCGraphTransformer",1664),fIt(1672,1,NZt,ma),kGt.Mb=function(t){return null!=t},bY(D1t,"LGraphToCGraphTransformer/0methodref$nonNull$Type",1672),fIt(1665,1,{},ya),kGt.Kb=function(t){return Hj(),$ft(yEt(jz(jz(t,57).g,10),(lGt(),fhe)))},bY(D1t,"LGraphToCGraphTransformer/lambda$0$Type",1665),fIt(1666,1,{},va),kGt.Kb=function(t){return Hj(),ydt(jz(jz(t,57).g,145))},bY(D1t,"LGraphToCGraphTransformer/lambda$1$Type",1666),fIt(1675,1,NZt,wa),kGt.Mb=function(t){return Hj(),iO(jz(t,57).g,10)},bY(D1t,"LGraphToCGraphTransformer/lambda$10$Type",1675),fIt(1676,1,dZt,xa),kGt.td=function(t){BK(jz(t,57))},bY(D1t,"LGraphToCGraphTransformer/lambda$11$Type",1676),fIt(1677,1,NZt,Ra),kGt.Mb=function(t){return Hj(),iO(jz(t,57).g,145)},bY(D1t,"LGraphToCGraphTransformer/lambda$12$Type",1677),fIt(1681,1,dZt,_a),kGt.td=function(t){mdt(jz(t,57))},bY(D1t,"LGraphToCGraphTransformer/lambda$13$Type",1681),fIt(1678,1,dZt,wp),kGt.td=function(t){rI(this.a,jz(t,8))},kGt.a=0,bY(D1t,"LGraphToCGraphTransformer/lambda$14$Type",1678),fIt(1679,1,dZt,xp),kGt.td=function(t){sI(this.a,jz(t,110))},kGt.a=0,bY(D1t,"LGraphToCGraphTransformer/lambda$15$Type",1679),fIt(1680,1,dZt,Rp),kGt.td=function(t){oI(this.a,jz(t,8))},kGt.a=0,bY(D1t,"LGraphToCGraphTransformer/lambda$16$Type",1680),fIt(1682,1,{},ka),kGt.Kb=function(t){return Hj(),new NU(null,new UW(new oq(XO(dft(jz(t,10)).a.Kc(),new u))))},bY(D1t,"LGraphToCGraphTransformer/lambda$17$Type",1682),fIt(1683,1,NZt,Ea),kGt.Mb=function(t){return Hj(),d6(jz(t,17))},bY(D1t,"LGraphToCGraphTransformer/lambda$18$Type",1683),fIt(1684,1,dZt,_p),kGt.td=function(t){ktt(this.a,jz(t,17))},bY(D1t,"LGraphToCGraphTransformer/lambda$19$Type",1684),fIt(1668,1,dZt,kp),kGt.td=function(t){u0(this.a,jz(t,145))},bY(D1t,"LGraphToCGraphTransformer/lambda$2$Type",1668),fIt(1685,1,{},Ca),kGt.Kb=function(t){return Hj(),new NU(null,new h1(jz(t,29).a,16))},bY(D1t,"LGraphToCGraphTransformer/lambda$20$Type",1685),fIt(1686,1,{},Sa),kGt.Kb=function(t){return Hj(),new NU(null,new UW(new oq(XO(dft(jz(t,10)).a.Kc(),new u))))},bY(D1t,"LGraphToCGraphTransformer/lambda$21$Type",1686),fIt(1687,1,{},Ta),kGt.Kb=function(t){return Hj(),jz(yEt(jz(t,17),(lGt(),Lhe)),15)},bY(D1t,"LGraphToCGraphTransformer/lambda$22$Type",1687),fIt(1688,1,NZt,Aa),kGt.Mb=function(t){return QM(jz(t,15))},bY(D1t,"LGraphToCGraphTransformer/lambda$23$Type",1688),fIt(1689,1,dZt,Ep),kGt.td=function(t){CTt(this.a,jz(t,15))},bY(D1t,"LGraphToCGraphTransformer/lambda$24$Type",1689),fIt(1667,1,dZt,oS),kGt.td=function(t){$4(this.a,this.b,jz(t,145))},bY(D1t,"LGraphToCGraphTransformer/lambda$3$Type",1667),fIt(1669,1,{},Da),kGt.Kb=function(t){return Hj(),new NU(null,new h1(jz(t,29).a,16))},bY(D1t,"LGraphToCGraphTransformer/lambda$4$Type",1669),fIt(1670,1,{},Ia),kGt.Kb=function(t){return Hj(),new NU(null,new UW(new oq(XO(dft(jz(t,10)).a.Kc(),new u))))},bY(D1t,"LGraphToCGraphTransformer/lambda$5$Type",1670),fIt(1671,1,{},La),kGt.Kb=function(t){return Hj(),jz(yEt(jz(t,17),(lGt(),Lhe)),15)},bY(D1t,"LGraphToCGraphTransformer/lambda$6$Type",1671),fIt(1673,1,dZt,Cp),kGt.td=function(t){PAt(this.a,jz(t,15))},bY(D1t,"LGraphToCGraphTransformer/lambda$8$Type",1673),fIt(1674,1,dZt,sS),kGt.td=function(t){OL(this.a,this.b,jz(t,145))},bY(D1t,"LGraphToCGraphTransformer/lambda$9$Type",1674),fIt(1663,1,{},Oa),kGt.Le=function(t){var e,n,i,a,r;for(this.a=t,this.d=new Fy,this.c=O5(zie,zGt,121,this.a.a.a.c.length,0,1),this.b=0,n=new Wf(this.a.a.a);n.a<n.c.c.length;)(e=jz(J1(n),307)).d=this.b,r=AM(oE(new zy,e),this.d),this.c[this.b]=r,++this.b;for(XVt(this),DWt(this),JOt(this),YFt(jj(this.d),new qv),a=new Wf(this.a.a.b);a.a<a.c.c.length;)(i=jz(J1(a),57)).d.c=this.c[i.a.d].e+i.b.a},kGt.b=0,bY(D1t,"NetworkSimplexCompaction",1663),fIt(145,1,{35:1,145:1},Czt),kGt.wd=function(t){return Itt(this,jz(t,145))},kGt.Ib=function(){return ydt(this)},bY(D1t,"VerticalSegment",145),fIt(827,1,{},V_t),kGt.c=0,kGt.e=0,kGt.i=0,bY(I1t,"BetweenLayerEdgeTwoNodeCrossingsCounter",827),fIt(663,1,{663:1},wrt),kGt.Ib=function(){return"AdjacencyList [node="+this.d+", adjacencies= "+this.a+"]"},kGt.b=0,kGt.c=0,kGt.f=0,bY(I1t,"BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList",663),fIt(287,1,{35:1,287:1},HN),kGt.wd=function(t){return aU(this,jz(t,287))},kGt.Ib=function(){return"Adjacency [position="+this.c+", cardinality="+this.a+", currentCardinality="+this.b+"]"},kGt.a=0,kGt.b=0,kGt.c=0,bY(I1t,"BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency",287),fIt(1929,1,{},JCt),kGt.b=0,kGt.e=!1,bY(I1t,"CrossingMatrixFiller",1929);var ble=dU(L1t,"IInitializable");fIt(1804,1,O1t,bS),kGt.Nf=function(t,e,n,i,a,r){},kGt.Pf=function(t,e,n){},kGt.Lf=function(){return this.c!=(sit(),Dve)},kGt.Mf=function(){this.e=O5(TMe,lKt,25,this.d,15,1)},kGt.Of=function(t,e){e[t][0].c.p=t},kGt.Qf=function(t,e,n,i){++this.d},kGt.Rf=function(){return!0},kGt.Sf=function(t,e,n,i){return Kut(this,t,e,n),X3(this,e)},kGt.Tf=function(t,e){var n;return Kut(this,t,n=cR(e,t.length),e),hct(this,n)},kGt.d=0,bY(I1t,"GreedySwitchHeuristic",1804),fIt(1930,1,{},uV),kGt.b=0,kGt.d=0,bY(I1t,"NorthSouthEdgeNeighbouringNodeCrossingsCounter",1930),fIt(1917,1,{},oPt),kGt.a=!1,bY(I1t,"SwitchDecider",1917),fIt(101,1,{101:1},bSt),kGt.a=null,kGt.c=null,kGt.i=null,bY(M1t,"SelfHyperLoop",101),fIt(1916,1,{},emt),kGt.c=0,kGt.e=0,bY(M1t,"SelfHyperLoopLabels",1916),fIt(411,22,{3:1,35:1,22:1,411:1},mS);var mle,yle,vle,wle,xle,Rle=$nt(M1t,"SelfHyperLoopLabels/Alignment",411,Vte,n4,Vj);fIt(409,1,{409:1},w7),bY(M1t,"SelfLoopEdge",409),fIt(403,1,{403:1},Abt),kGt.a=!1,bY(M1t,"SelfLoopHolder",403),fIt(1724,1,NZt,Ua),kGt.Mb=function(t){return d6(jz(t,17))},bY(M1t,"SelfLoopHolder/lambda$0$Type",1724),fIt(113,1,{113:1},nmt),kGt.a=!1,kGt.c=!1,bY(M1t,"SelfLoopPort",113),fIt(1792,1,NZt,Va),kGt.Mb=function(t){return d6(jz(t,17))},bY(M1t,"SelfLoopPort/lambda$0$Type",1792),fIt(363,22,{3:1,35:1,22:1,363:1},yS);var _le,kle,Ele,Cle,Sle,Tle,Ale,Dle,Ile,Lle,Ole=$nt(M1t,"SelfLoopType",363,Vte,O6,Zj);fIt(1732,1,{},ad),bY(N1t,"PortRestorer",1732),fIt(361,22,{3:1,35:1,22:1,361:1},vS);var Mle,Nle,Ble,Ple,Fle=$nt(N1t,"PortRestorer/PortSideArea",361,Vte,E1,Kj);fIt(1733,1,{},Ga),kGt.Kb=function(t){return FEt(),jz(t,15).Oc()},bY(N1t,"PortRestorer/lambda$0$Type",1733),fIt(1734,1,dZt,Za),kGt.td=function(t){FEt(),jz(t,113).c=!1},bY(N1t,"PortRestorer/lambda$1$Type",1734),fIt(1743,1,NZt,Ka),kGt.Mb=function(t){return FEt(),jz(t,11).j==(wWt(),SAe)},bY(N1t,"PortRestorer/lambda$10$Type",1743),fIt(1744,1,{},Xa),kGt.Kb=function(t){return FEt(),jz(t,113).d},bY(N1t,"PortRestorer/lambda$11$Type",1744),fIt(1745,1,dZt,Sp),kGt.td=function(t){LR(this.a,jz(t,11))},bY(N1t,"PortRestorer/lambda$12$Type",1745),fIt(1735,1,dZt,Tp),kGt.td=function(t){AN(this.a,jz(t,101))},bY(N1t,"PortRestorer/lambda$2$Type",1735),fIt(1736,1,kXt,Ja),kGt.ue=function(t,e){return snt(jz(t,113),jz(e,113))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(N1t,"PortRestorer/lambda$3$Type",1736),fIt(1737,1,NZt,Qa),kGt.Mb=function(t){return FEt(),jz(t,113).c},bY(N1t,"PortRestorer/lambda$4$Type",1737),fIt(1738,1,NZt,Na),kGt.Mb=function(t){return Drt(jz(t,11))},bY(N1t,"PortRestorer/lambda$5$Type",1738),fIt(1739,1,NZt,Ma),kGt.Mb=function(t){return FEt(),jz(t,11).j==(wWt(),cAe)},bY(N1t,"PortRestorer/lambda$6$Type",1739),fIt(1740,1,NZt,Ba),kGt.Mb=function(t){return FEt(),jz(t,11).j==(wWt(),sAe)},bY(N1t,"PortRestorer/lambda$7$Type",1740),fIt(1741,1,NZt,Pa),kGt.Mb=function(t){return i4(jz(t,11))},bY(N1t,"PortRestorer/lambda$8$Type",1741),fIt(1742,1,NZt,Fa),kGt.Mb=function(t){return FEt(),jz(t,11).j==(wWt(),EAe)},bY(N1t,"PortRestorer/lambda$9$Type",1742),fIt(270,22,{3:1,35:1,22:1,270:1},WZ);var jle,$le,zle,Hle,Ule,Vle,qle,Wle,Yle,Gle,Zle=$nt(N1t,"PortSideAssigner/Target",270,Vte,jet,qj);fIt(1725,1,{},ja),kGt.Kb=function(t){return AZ(new NU(null,new h1(jz(t,101).j,16)),new Ya)},bY(N1t,"PortSideAssigner/lambda$1$Type",1725),fIt(1726,1,{},$a),kGt.Kb=function(t){return jz(t,113).d},bY(N1t,"PortSideAssigner/lambda$2$Type",1726),fIt(1727,1,dZt,za),kGt.td=function(t){HTt(jz(t,11),(wWt(),cAe))},bY(N1t,"PortSideAssigner/lambda$3$Type",1727),fIt(1728,1,{},Ha),kGt.Kb=function(t){return jz(t,113).d},bY(N1t,"PortSideAssigner/lambda$4$Type",1728),fIt(1729,1,dZt,Ap),kGt.td=function(t){Qm(this.a,jz(t,11))},bY(N1t,"PortSideAssigner/lambda$5$Type",1729),fIt(1730,1,kXt,qa),kGt.ue=function(t,e){return _G(jz(t,101),jz(e,101))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(N1t,"PortSideAssigner/lambda$6$Type",1730),fIt(1731,1,kXt,Wa),kGt.ue=function(t,e){return oH(jz(t,113),jz(e,113))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(N1t,"PortSideAssigner/lambda$7$Type",1731),fIt(805,1,NZt,Ya),kGt.Mb=function(t){return jz(t,113).c},bY(N1t,"PortSideAssigner/lambda$8$Type",805),fIt(2009,1,{}),bY(B1t,"AbstractSelfLoopRouter",2009),fIt(1750,1,kXt,tr),kGt.ue=function(t,e){return SF(jz(t,101),jz(e,101))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(B1t,hJt,1750),fIt(1751,1,kXt,er),kGt.ue=function(t,e){return CF(jz(t,101),jz(e,101))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(B1t,fJt,1751),fIt(1793,2009,{},nr),kGt.Uf=function(t,e,n){return n},bY(B1t,"OrthogonalSelfLoopRouter",1793),fIt(1795,1,dZt,hS),kGt.td=function(t){bbt(this.b,this.a,jz(t,8))},bY(B1t,"OrthogonalSelfLoopRouter/lambda$0$Type",1795),fIt(1794,1793,{},ir),kGt.Uf=function(t,e,n){var i,a;return BN(n,0,VP(jL((i=t.c.d).n),i.a)),MH(n,VP(jL((a=t.d.d).n),a.a)),Rjt(n)},bY(B1t,"PolylineSelfLoopRouter",1794),fIt(1746,1,{},Ju),kGt.a=null,bY(B1t,"RoutingDirector",1746),fIt(1747,1,kXt,ar),kGt.ue=function(t,e){return hH(jz(t,113),jz(e,113))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(B1t,"RoutingDirector/lambda$0$Type",1747),fIt(1748,1,{},rr),kGt.Kb=function(t){return kE(),jz(t,101).j},bY(B1t,"RoutingDirector/lambda$1$Type",1748),fIt(1749,1,dZt,or),kGt.td=function(t){kE(),jz(t,15).ad(Gle)},bY(B1t,"RoutingDirector/lambda$2$Type",1749),fIt(1752,1,{},sr),bY(B1t,"RoutingSlotAssigner",1752),fIt(1753,1,NZt,Dp),kGt.Mb=function(t){return CT(this.a,jz(t,101))},bY(B1t,"RoutingSlotAssigner/lambda$0$Type",1753),fIt(1754,1,kXt,Ip),kGt.ue=function(t,e){return VU(this.a,jz(t,101),jz(e,101))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(B1t,"RoutingSlotAssigner/lambda$1$Type",1754),fIt(1796,1793,{},cr),kGt.Uf=function(t,e,n){var i,a,r,o;return i=Hw(_B(pmt(t.b.g.b,(zYt(),wme)))),QLt(t,e,n,o=new VN(Cst(Hx(EEe,1),cZt,8,0,[(r=t.c.d,VP(new hI(r.n),r.a))])),i),MH(o,VP(new hI((a=t.d.d).n),a.a)),jyt(new szt(o))},bY(B1t,"SplineSelfLoopRouter",1796),fIt(578,1,kXt,Uat,vH),kGt.ue=function(t,e){return uYt(this,jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(P1t,"ModelOrderNodeComparator",578),fIt(1755,1,NZt,lr),kGt.Mb=function(t){return 0!=jz(t,11).e.c.length},bY(P1t,"ModelOrderNodeComparator/lambda$0$Type",1755),fIt(1756,1,{},ur),kGt.Kb=function(t){return jz(OU(jz(t,11).e,0),17).c},bY(P1t,"ModelOrderNodeComparator/lambda$1$Type",1756),fIt(1757,1,NZt,dr),kGt.Mb=function(t){return 0!=jz(t,11).e.c.length},bY(P1t,"ModelOrderNodeComparator/lambda$2$Type",1757),fIt(1758,1,{},hr),kGt.Kb=function(t){return jz(OU(jz(t,11).e,0),17).c},bY(P1t,"ModelOrderNodeComparator/lambda$3$Type",1758),fIt(1759,1,NZt,fr),kGt.Mb=function(t){return 0!=jz(t,11).e.c.length},bY(P1t,"ModelOrderNodeComparator/lambda$4$Type",1759),fIt(806,1,kXt,T9,pS),kGt.ue=function(t,e){return Lq(this,t,e)},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(P1t,"ModelOrderPortComparator",806),fIt(801,1,{},gr),kGt.Vf=function(t,e){var n,a,r,o;for(r=CCt(e),n=new Lm,o=e.f/r,a=1;a<r;++a)Wz(n,nht(fV(uot(i.Math.round(a*o)))));return n},kGt.Wf=function(){return!1},bY(F1t,"ARDCutIndexHeuristic",801),fIt(1479,1,QQt,pr),kGt.pf=function(t,e){sFt(jz(t,37),e)},bY(F1t,"BreakingPointInserter",1479),fIt(305,1,{305:1},b4),kGt.Ib=function(){var t;return(t=new Cx).a+="BPInfo[",t.a+="\n\tstart=",rD(t,this.i),t.a+="\n\tend=",rD(t,this.a),t.a+="\n\tnodeStartEdge=",rD(t,this.e),t.a+="\n\tstartEndEdge=",rD(t,this.j),t.a+="\n\toriginalEdge=",rD(t,this.f),t.a+="\n\tstartInLayerDummy=",rD(t,this.k),t.a+="\n\tstartInLayerEdge=",rD(t,this.n),t.a+="\n\tendInLayerDummy=",rD(t,this.b),t.a+="\n\tendInLayerEdge=",rD(t,this.c),t.a},bY(F1t,"BreakingPointInserter/BPInfo",305),fIt(652,1,{652:1},$p),kGt.a=!1,kGt.b=0,kGt.c=0,bY(F1t,"BreakingPointInserter/Cut",652),fIt(1480,1,QQt,br),kGt.pf=function(t,e){yOt(jz(t,37),e)},bY(F1t,"BreakingPointProcessor",1480),fIt(1481,1,NZt,mr),kGt.Mb=function(t){return Ktt(jz(t,10))},bY(F1t,"BreakingPointProcessor/0methodref$isEnd$Type",1481),fIt(1482,1,NZt,yr),kGt.Mb=function(t){return Xtt(jz(t,10))},bY(F1t,"BreakingPointProcessor/1methodref$isStart$Type",1482),fIt(1483,1,QQt,vr),kGt.pf=function(t,e){iMt(this,jz(t,37),e)},bY(F1t,"BreakingPointRemover",1483),fIt(1484,1,dZt,wr),kGt.td=function(t){jz(t,128).k=!0},bY(F1t,"BreakingPointRemover/lambda$0$Type",1484),fIt(797,1,{},kIt),kGt.b=0,kGt.e=0,kGt.f=0,kGt.j=0,bY(F1t,"GraphStats",797),fIt(798,1,{},xr),kGt.Ce=function(t,e){return i.Math.max(Hw(_B(t)),Hw(_B(e)))},bY(F1t,"GraphStats/0methodref$max$Type",798),fIt(799,1,{},Rr),kGt.Ce=function(t,e){return i.Math.max(Hw(_B(t)),Hw(_B(e)))},bY(F1t,"GraphStats/2methodref$max$Type",799),fIt(1660,1,{},_r),kGt.Ce=function(t,e){return bz(_B(t),_B(e))},bY(F1t,"GraphStats/lambda$1$Type",1660),fIt(1661,1,{},Lp),kGt.Kb=function(t){return fmt(this.a,jz(t,29))},bY(F1t,"GraphStats/lambda$2$Type",1661),fIt(1662,1,{},Op),kGt.Kb=function(t){return GOt(this.a,jz(t,29))},bY(F1t,"GraphStats/lambda$6$Type",1662),fIt(800,1,{},kr),kGt.Vf=function(t,e){return jz(yEt(t,(zYt(),Pme)),15)||(kK(),kK(),cne)},kGt.Wf=function(){return!1},bY(F1t,"ICutIndexCalculator/ManualCutIndexCalculator",800),fIt(802,1,{},Er),kGt.Vf=function(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;for(null==e.n&&Nvt(e),x=e.n,null==e.d&&Nvt(e),l=e.d,(w=O5(LMe,HKt,25,x.length,15,1))[0]=x[0],y=x[0],u=1;u<x.length;u++)w[u]=w[u-1]+x[u],y+=x[u];for(r=CCt(e)-1,s=jz(yEt(t,(zYt(),Fme)),19).a,a=PKt,n=new Lm,f=i.Math.max(0,r-s);f<=i.Math.min(e.f-1,r+s);f++){if(b=y/(f+1),m=0,d=1,o=new Lm,v=PKt,h=0,c=0,p=l[0],0==f)v=y,null==e.g&&(e.g=Wat(e,new Rr)),c=Hw(e.g);else{for(;d<e.f;)w[d-1]-m>=b&&(Wz(o,nht(d)),v=i.Math.max(v,w[d-1]-h),c+=p,m+=w[d-1]-m,h=w[d-1],p=l[d]),p=i.Math.max(p,l[d]),++d;c+=p}(g=i.Math.min(1/v,1/e.b/c))>a&&(a=g,n=o)}return n},kGt.Wf=function(){return!1},bY(F1t,"MSDCutIndexHeuristic",802),fIt(1617,1,QQt,Cr),kGt.pf=function(t,e){hzt(jz(t,37),e)},bY(F1t,"SingleEdgeGraphWrapper",1617),fIt(227,22,{3:1,35:1,22:1,227:1},wS);var Kle,Xle,Jle,Qle,tue,eue,nue,iue=$nt(j1t,"CenterEdgeLabelPlacementStrategy",227,Vte,X5,Wj);fIt(422,22,{3:1,35:1,22:1,422:1},xS);var aue,rue,oue,sue=$nt(j1t,"ConstraintCalculationStrategy",422,Vte,HX,Yj);fIt(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},RS),kGt.Kf=function(){return cAt(this)},kGt.Xf=function(){return cAt(this)};var cue,lue,uue,due,hue=$nt(j1t,"CrossingMinimizationStrategy",314,Vte,R1,Gj);fIt(337,22,{3:1,35:1,22:1,337:1},_S);var fue,gue,pue,bue,mue=$nt(j1t,"CuttingStrategy",337,Vte,_1,Xj);fIt(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},kS),kGt.Kf=function(){return BIt(this)},kGt.Xf=function(){return BIt(this)};var yue,vue,wue,xue,Rue,_ue,kue=$nt(j1t,"CycleBreakingStrategy",335,Vte,I6,Jj);fIt(419,22,{3:1,35:1,22:1,419:1},ES);var Eue,Cue,Sue,Tue=$nt(j1t,"DirectionCongruency",419,Vte,zX,Qj);fIt(450,22,{3:1,35:1,22:1,450:1},CS);var Aue,Due,Iue,Lue,Oue=$nt(j1t,"EdgeConstraint",450,Vte,k1,t$);fIt(276,22,{3:1,35:1,22:1,276:1},SS);var Mue,Nue,Bue,Pue,Fue,jue,$ue,zue=$nt(j1t,"EdgeLabelSideSelection",276,Vte,e8,e$);fIt(479,22,{3:1,35:1,22:1,479:1},TS);var Hue,Uue,Vue,que=$nt(j1t,"EdgeStraighteningStrategy",479,Vte,$X,n$);fIt(274,22,{3:1,35:1,22:1,274:1},AS);var Wue,Yue,Gue,Zue,Kue,Xue,Jue,Que=$nt(j1t,"FixedAlignment",274,Vte,Q5,i$);fIt(275,22,{3:1,35:1,22:1,275:1},DS);var tde,ede,nde,ide,ade,rde,ode,sde=$nt(j1t,"GraphCompactionStrategy",275,Vte,J5,a$);fIt(256,22,{3:1,35:1,22:1,256:1},IS);var cde,lde,ude,dde,hde,fde,gde,pde,bde,mde,yde,vde=$nt(j1t,"GraphProperties",256,Vte,hrt,r$);fIt(292,22,{3:1,35:1,22:1,292:1},LS);var wde,xde,Rde,_de,kde=$nt(j1t,"GreedySwitchType",292,Vte,S1,o$);fIt(303,22,{3:1,35:1,22:1,303:1},OS);var Ede,Cde,Sde,Tde,Ade=$nt(j1t,"InLayerConstraint",303,Vte,C1,s$);fIt(420,22,{3:1,35:1,22:1,420:1},MS);var Dde,Ide,Lde,Ode,Mde,Nde,Bde,Pde,Fde,jde,$de,zde,Hde,Ude,Vde,qde,Wde,Yde,Gde,Zde,Kde,Xde,Jde,Qde,the,ehe,nhe,ihe,ahe,rhe,ohe,she,che,lhe,uhe,dhe,hhe,fhe,ghe,phe,bhe,mhe,yhe,vhe,whe,xhe,Rhe,_he,khe,Ehe,Che,She,The,Ahe,Dhe,Ihe,Lhe,Ohe,Mhe,Nhe,Bhe,Phe=$nt(j1t,"InteractiveReferencePoint",420,Vte,UX,c$);fIt(163,22,{3:1,35:1,22:1,163:1},jS);var Fhe,jhe,$he,zhe,Hhe,Uhe,Vhe,qhe,Whe,Yhe,Ghe,Zhe,Khe,Xhe,Jhe,Qhe,tfe,efe,nfe,ife,afe,rfe,ofe,sfe,cfe,lfe,ufe,dfe,hfe,ffe,gfe,pfe,bfe,mfe,yfe,vfe,wfe,xfe,Rfe,_fe,kfe,Efe,Cfe,Sfe,Tfe,Afe,Dfe,Ife,Lfe,Ofe,Mfe,Nfe,Bfe,Pfe,Ffe,jfe,$fe,zfe,Hfe,Ufe,Vfe,qfe,Wfe,Yfe,Gfe,Zfe,Kfe,Xfe,Jfe,Qfe,tge,ege,nge,ige,age,rge,oge,sge,cge,lge,uge,dge,hge,fge,gge,pge,bge,mge,yge,vge,wge,xge,Rge,_ge,kge,Ege,Cge,Sge,Tge,Age,Dge,Ige,Lge,Oge,Mge,Nge,Bge,Pge,Fge,jge,$ge,zge,Hge,Uge,Vge,qge,Wge,Yge,Gge,Zge,Kge,Xge,Jge,Qge,tpe,epe,npe,ipe,ape,rpe,ope,spe,cpe,lpe,upe,dpe,hpe,fpe,gpe,ppe,bpe,mpe,ype,vpe,wpe,xpe,Rpe,_pe,kpe,Epe,Cpe,Spe,Tpe,Ape,Dpe,Ipe,Lpe,Ope,Mpe,Npe,Bpe,Ppe,Fpe,jpe,$pe,zpe,Hpe,Upe,Vpe,qpe,Wpe,Ype,Gpe,Zpe,Kpe,Xpe,Jpe,Qpe,tbe,ebe,nbe,ibe,abe,rbe,obe,sbe,cbe,lbe,ube,dbe,hbe,fbe,gbe,pbe,bbe,mbe,ybe,vbe,wbe,xbe,Rbe,_be,kbe,Ebe,Cbe,Sbe,Tbe,Abe,Dbe,Ibe,Lbe,Obe,Mbe,Nbe,Bbe,Pbe,Fbe,jbe,$be,zbe,Hbe,Ube,Vbe,qbe,Wbe,Ybe,Gbe,Zbe,Kbe,Xbe,Jbe,Qbe,tme,eme,nme,ime,ame,rme,ome,sme,cme,lme,ume,dme,hme,fme,gme,pme,bme,mme,yme,vme,wme,xme,Rme,_me,kme,Eme,Cme,Sme,Tme,Ame,Dme,Ime,Lme,Ome,Mme,Nme,Bme,Pme,Fme,jme,$me,zme,Hme,Ume,Vme,qme,Wme,Yme,Gme,Zme=$nt(j1t,"LayerConstraint",163,Vte,M6,l$);fIt(848,1,ZXt,sd),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,q1t),""),"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."),Efe),(CSt(),pEe)),Tue),Qht((imt(),lEe))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,W1t),""),"Feedback Edges"),"Whether feedback edges should be highlighted by routing around the nodes."),(cM(),!1)),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Y1t),""),"Interactive Reference Point"),"Determines which point of a node is considered by interactive layout phases."),Gfe),pEe),Phe),Qht(lEe)))),a2(t,Y1t,e0t,Kfe),a2(t,Y1t,d0t,Zfe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,G1t),""),"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),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Z1t),""),"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),fEe),wee),Qht(lEe)))),Dft(t,new hSt(ER(TR(SR(AR(RR(xR(CR(_R(kR(new zs,K1t),""),"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),fEe),wee),Qht(uEe)),Cst(Hx(zee,1),cZt,2,6,["org.eclipse.elk.layered.northOrSouthPort"])))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,X1t),""),"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."),Oge),pEe),$ye),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,J1t),""),"Thoroughness"),"How much effort should be spent to produce a nice layout."),nht(7)),mEe),Dee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Q1t),""),"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),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,t0t),""),"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),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,e0t),"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)."),_fe),pEe),kue),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,n0t),u2t),"Node Layering Strategy"),"Strategy for node layering."),dge),pEe),iye),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,i0t),u2t),"Layer Constraint"),"Determines a constraint on the placement of the node regarding the layering."),ege),pEe),Zme),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,a0t),u2t),"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."),nht(-1)),mEe),Dee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,r0t),u2t),"Layer ID"),"Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),nht(-1)),mEe),Dee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,o0t),d2t),"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."),nht(4)),mEe),Dee),Qht(lEe)))),a2(t,o0t,n0t,age),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,s0t),d2t),"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."),nht(2)),mEe),Dee),Qht(lEe)))),a2(t,s0t,n0t,oge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,c0t),h2t),"Node Promotion Strategy"),"Reduces number of dummy nodes after layering phase (if possible)."),lge),pEe),Iye),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,l0t),h2t),"Max Node Promotion Iterations"),"Limits the number of iterations for node promotion."),nht(0)),mEe),Dee),Qht(lEe)))),a2(t,l0t,c0t,null),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,u0t),"layering.coffmanGraham"),"Layer Bound"),"The maximum number of nodes allowed per layer."),nht(NGt)),mEe),Dee),Qht(lEe)))),a2(t,u0t,n0t,Jfe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,d0t),f2t),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),xfe),pEe),hue),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,h0t),f2t),"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),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,f0t),f2t),"Hierarchical Sweepiness"),"How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."),.1),gEe),Cee),Qht(lEe)))),a2(t,f0t,g2t,pfe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,g0t),f2t),"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),fEe),wee),Qht(lEe)))),a2(t,g0t,d0t,vfe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,p0t),f2t),"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."),nht(-1)),mEe),Dee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,b0t),f2t),"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."),nht(-1)),mEe),Dee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,m0t),p2t),"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."),nht(40)),mEe),Dee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,y0t),p2t),"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."),hfe),pEe),kde),Qht(lEe)))),a2(t,y0t,d0t,ffe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,v0t),"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."),cfe),pEe),kde),Qht(lEe)))),a2(t,v0t,d0t,lfe),a2(t,v0t,g2t,ufe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,w0t),b2t),"Node Placement Strategy"),"Strategy for node placement."),Ige),pEe),xye),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,x0t),b2t),"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."),fEe),wee),Qht(lEe)))),a2(t,x0t,w0t,xge),a2(t,x0t,w0t,Rge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,R0t),m2t),"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."),pge),pEe),que),Qht(lEe)))),a2(t,R0t,w0t,bge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,_0t),m2t),"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."),yge),pEe),Que),Qht(lEe)))),a2(t,_0t,w0t,vge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,k0t),"nodePlacement.linearSegments"),"Linear Segments Deflection Dampening"),"Dampens the movement of nodes to keep the diagram from getting too large."),.3),gEe),Cee),Qht(lEe)))),a2(t,k0t,w0t,kge),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,E0t),"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."),pEe),gye),Qht(cEe)))),a2(t,E0t,w0t,Age),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,C0t),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),Sge),pEe),gye),Qht(lEe)))),a2(t,C0t,w0t,Tge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,S0t),y2t),"Self-Loop Distribution"),"Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."),Ofe),pEe),Kye),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,T0t),y2t),"Self-Loop Ordering"),"Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."),Nfe),pEe),tve),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,A0t),"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."),Pfe),pEe),rve),Qht(lEe)))),a2(t,A0t,v2t,Ffe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,D0t),"edgeRouting.splines.sloppy"),"Sloppy Spline Layer Spacing Factor"),"Spacing factor for routing area between layers when using sloppy spline routing."),.2),gEe),Cee),Qht(lEe)))),a2(t,D0t,v2t,$fe),a2(t,D0t,A0t,zfe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,I0t),"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),gEe),Cee),Qht(lEe)))),a2(t,I0t,v2t,Ife),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,L0t),w2t),"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."),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,O0t),w2t),"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),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,M0t),w2t),"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),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,N0t),w2t),"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),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,B0t),x2t),"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."),nht(0)),mEe),Dee),Qht(oEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,P0t),x2t),"Shortness Priority"),"Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."),nht(0)),mEe),Dee),Qht(oEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,F0t),x2t),"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."),nht(0)),mEe),Dee),Qht(oEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,j0t),R2t),NJt),"Tries to further compact components (disconnected sub-graphs)."),!1),fEe),wee),Qht(lEe)))),a2(t,j0t,wQt,!0),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,$0t),_2t),"Post Compaction Strategy"),k2t),Zhe),pEe),sde),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,z0t),_2t),"Post Compaction Constraint Calculation"),k2t),Yhe),pEe),sue),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,H0t),E2t),"High Degree Node Treatment"),"Makes room around high degree nodes to place leafs and trees."),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,U0t),E2t),"High Degree Node Threshold"),"Whether a node is considered to have a high degree."),nht(16)),mEe),Dee),Qht(lEe)))),a2(t,U0t,H0t,!0),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,V0t),E2t),"High Degree Node Maximum Tree Height"),"Maximum height of a subtree connected to a high degree node to be moved to separate layers."),nht(5)),mEe),Dee),Qht(lEe)))),a2(t,V0t,H0t,!0),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,q0t),C2t),"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'."),dpe),pEe),kve),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,W0t),C2t),"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),gEe),Cee),Qht(lEe)))),a2(t,W0t,q0t,Vge),a2(t,W0t,q0t,qge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Y0t),C2t),"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),gEe),Cee),Qht(lEe)))),a2(t,Y0t,q0t,Yge),a2(t,Y0t,q0t,Gge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,G0t),S2t),"Cutting Strategy"),"The strategy by which the layer indexes are determined at which the layering crumbles into chunks."),epe),pEe),mue),Qht(lEe)))),a2(t,G0t,q0t,npe),a2(t,G0t,q0t,ipe),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,Z0t),S2t),"Manually Specified Cuts"),"Allows the user to specify her own cuts for a certain graph."),yEe),Bte),Qht(lEe)))),a2(t,Z0t,G0t,Kge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,K0t),"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."),Jge),mEe),Dee),Qht(lEe)))),a2(t,K0t,G0t,Qge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,X0t),T2t),"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."),bpe),pEe),uve),Qht(lEe)))),a2(t,X0t,q0t,mpe),a2(t,X0t,q0t,ype),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,J0t),T2t),"Valid Indices for Wrapping"),null),yEe),Bte),Qht(lEe)))),a2(t,J0t,q0t,fpe),a2(t,J0t,q0t,gpe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Q0t),A2t),"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),fEe),wee),Qht(lEe)))),a2(t,Q0t,q0t,spe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,t2t),A2t),"Distance Penalty When Improving Cuts"),null),2),gEe),Cee),Qht(lEe)))),a2(t,t2t,q0t,rpe),a2(t,t2t,Q0t,!0),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,e2t),A2t),"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),fEe),wee),Qht(lEe)))),a2(t,e2t,q0t,lpe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,n2t),D2t),"Edge Label Side Selection"),"Method to decide on edge label sides."),Afe),pEe),zue),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,i2t),D2t),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),Sfe),pEe),iue),xV(lEe,Cst(Hx(hEe,1),IZt,175,0,[sEe]))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,a2t),I2t),"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."),afe),pEe),Bye),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,r2t),I2t),"No Model Order"),"Set on a node to not set a model order for this node even though it is a real node."),!1),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,o2t),I2t),"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."),Xhe),pEe),mse),Qht(lEe)))),a2(t,o2t,wQt,null),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,s2t),I2t),"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."),efe),pEe),cye),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,c2t),I2t),"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),gEe),Cee),Qht(lEe)))),a2(t,c2t,a2t,null),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,l2t),I2t),"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),gEe),Cee),Qht(lEe)))),a2(t,l2t,a2t,null),mGt((new ud,t))},bY(j1t,"LayeredMetaDataProvider",848),fIt(986,1,ZXt,ud),kGt.Qe=function(t){mGt(t)},bY(j1t,"LayeredOptions",986),fIt(987,1,{},Tr),kGt.$e=function(){return new Vy},kGt._e=function(t){},bY(j1t,"LayeredOptions/LayeredFactory",987),fIt(1372,1,{}),kGt.a=0,bY(v4t,"ElkSpacings/AbstractSpacingsBuilder",1372),fIt(779,1372,{},ogt),bY(j1t,"LayeredSpacings/LayeredSpacingsBuilder",779),fIt(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},NS),kGt.Kf=function(){return iOt(this)},kGt.Xf=function(){return iOt(this)};var Kme,Xme,Jme,Qme,tye,eye,nye,iye=$nt(j1t,"LayeringStrategy",313,Vte,t8,u$);fIt(378,22,{3:1,35:1,22:1,378:1},BS);var aye,rye,oye,sye,cye=$nt(j1t,"LongEdgeOrderingStrategy",378,Vte,x1,d$);fIt(197,22,{3:1,35:1,22:1,197:1},PS);var lye,uye,dye,hye,fye,gye=$nt(j1t,"NodeFlexibility",197,Vte,v4,h$);fIt(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},FS),kGt.Kf=function(){return NIt(this)},kGt.Xf=function(){return NIt(this)};var pye,bye,mye,yye,vye,wye,xye=$nt(j1t,"NodePlacementStrategy",315,Vte,D6,y$);fIt(260,22,{3:1,35:1,22:1,260:1},$S);var Rye,_ye,kye,Eye,Cye,Sye,Tye,Aye,Dye,Iye=$nt(j1t,"NodePromotionStrategy",260,Vte,$et,g$);fIt(339,22,{3:1,35:1,22:1,339:1},zS);var Lye,Oye,Mye,Nye,Bye=$nt(j1t,"OrderingStrategy",339,Vte,A1,p$);fIt(421,22,{3:1,35:1,22:1,421:1},HS);var Pye,Fye,jye,$ye=$nt(j1t,"PortSortingStrategy",421,Vte,VX,b$);fIt(452,22,{3:1,35:1,22:1,452:1},US);var zye,Hye,Uye,Vye,qye=$nt(j1t,"PortType",452,Vte,T1,f$);fIt(375,22,{3:1,35:1,22:1,375:1},VS);var Wye,Yye,Gye,Zye,Kye=$nt(j1t,"SelfLoopDistributionStrategy",375,Vte,D1,m$);fIt(376,22,{3:1,35:1,22:1,376:1},qS);var Xye,Jye,Qye,tve=$nt(j1t,"SelfLoopOrderingStrategy",376,Vte,jX,v$);fIt(304,1,{304:1},cVt),bY(j1t,"Spacings",304),fIt(336,22,{3:1,35:1,22:1,336:1},WS);var eve,nve,ive,ave,rve=$nt(j1t,"SplineRoutingMode",336,Vte,L1,w$);fIt(338,22,{3:1,35:1,22:1,338:1},YS);var ove,sve,cve,lve,uve=$nt(j1t,"ValidifyStrategy",338,Vte,O1,x$);fIt(377,22,{3:1,35:1,22:1,377:1},GS);var dve,hve,fve,gve,pve,bve,mve,yve,vve,wve,xve,Rve,_ve,kve=$nt(j1t,"WrappingStrategy",377,Vte,I1,R$);fIt(1383,1,R4t,dd),kGt.Yf=function(t){return jz(t,37),pve},kGt.pf=function(t,e){XHt(this,jz(t,37),e)},bY(_4t,"DepthFirstCycleBreaker",1383),fIt(782,1,R4t,BV),kGt.Yf=function(t){return jz(t,37),bve},kGt.pf=function(t,e){qYt(this,jz(t,37),e)},kGt.Zf=function(t){return jz(OU(t,byt(this.d,t.c.length)),10)},bY(_4t,"GreedyCycleBreaker",782),fIt(1386,782,R4t,RA),kGt.Zf=function(t){var e,n,i,a;for(a=null,e=NGt,i=new Wf(t);i.a<i.c.c.length;)IN(n=jz(J1(i),10),(lGt(),hhe))&&jz(yEt(n,hhe),19).a<e&&(e=jz(yEt(n,hhe),19).a,a=n);return a||jz(OU(t,byt(this.d,t.c.length)),10)},bY(_4t,"GreedyModelOrderCycleBreaker",1386),fIt(1384,1,R4t,ed),kGt.Yf=function(t){return jz(t,37),mve},kGt.pf=function(t,e){TUt(this,jz(t,37),e)},bY(_4t,"InteractiveCycleBreaker",1384),fIt(1385,1,R4t,nd),kGt.Yf=function(t){return jz(t,37),yve},kGt.pf=function(t,e){LUt(this,jz(t,37),e)},kGt.a=0,kGt.b=0,bY(_4t,"ModelOrderCycleBreaker",1385),fIt(1389,1,R4t,DE),kGt.Yf=function(t){return jz(t,37),vve},kGt.pf=function(t,e){XYt(this,jz(t,37),e)},bY(k4t,"CoffmanGrahamLayerer",1389),fIt(1390,1,kXt,Mp),kGt.ue=function(t,e){return $At(this.a,jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(k4t,"CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type",1390),fIt(1391,1,kXt,Np),kGt.ue=function(t,e){return UV(this.a,jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(k4t,"CoffmanGrahamLayerer/lambda$1$Type",1391),fIt(1392,1,R4t,Ar),kGt.Yf=function(t){return jz(t,37),fU(fU(fU(new j2,(vEt(),Boe),(dGt(),wce)),Poe,Ace),Foe,Tce)},kGt.pf=function(t,e){RWt(this,jz(t,37),e)},bY(k4t,"InteractiveLayerer",1392),fIt(569,1,{569:1},ev),kGt.a=0,kGt.c=0,bY(k4t,"InteractiveLayerer/LayerSpan",569),fIt(1388,1,R4t,td),kGt.Yf=function(t){return jz(t,37),wve},kGt.pf=function(t,e){HNt(this,jz(t,37),e)},bY(k4t,"LongestPathLayerer",1388),fIt(1395,1,R4t,od),kGt.Yf=function(t){return jz(t,37),fU(fU(fU(new j2,(vEt(),Boe),(dGt(),ace)),Poe,Ace),Foe,Tce)},kGt.pf=function(t,e){nYt(this,jz(t,37),e)},kGt.a=0,kGt.b=0,kGt.d=0,bY(k4t,"MinWidthLayerer",1395),fIt(1396,1,kXt,Bp),kGt.ue=function(t,e){return got(this,jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(k4t,"MinWidthLayerer/MinOutgoingEdgesComparator",1396),fIt(1387,1,R4t,rd),kGt.Yf=function(t){return jz(t,37),_ve},kGt.pf=function(t,e){yVt(this,jz(t,37),e)},bY(k4t,"NetworkSimplexLayerer",1387),fIt(1393,1,R4t,NP),kGt.Yf=function(t){return jz(t,37),fU(fU(fU(new j2,(vEt(),Boe),(dGt(),ace)),Poe,Ace),Foe,Tce)},kGt.pf=function(t,e){Iqt(this,jz(t,37),e)},kGt.d=0,kGt.f=0,kGt.g=0,kGt.i=0,kGt.s=0,kGt.t=0,kGt.u=0,bY(k4t,"StretchWidthLayerer",1393),fIt(1394,1,kXt,Dr),kGt.ue=function(t,e){return N7(jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(k4t,"StretchWidthLayerer/1",1394),fIt(402,1,E4t),kGt.Nf=function(t,e,n,i,a,r){},kGt._f=function(t,e,n){return ijt(this,t,e,n)},kGt.Mf=function(){this.g=O5(OMe,C4t,25,this.d,15,1),this.f=O5(OMe,C4t,25,this.d,15,1)},kGt.Of=function(t,e){this.e[t]=O5(TMe,lKt,25,e[t].length,15,1)},kGt.Pf=function(t,e,n){n[t][e].p=e,this.e[t][e]=e},kGt.Qf=function(t,e,n,i){jz(OU(i[t][e].j,n),11).p=this.d++},kGt.b=0,kGt.c=0,kGt.d=0,bY(S4t,"AbstractBarycenterPortDistributor",402),fIt(1633,1,kXt,Pp),kGt.ue=function(t,e){return Hbt(this.a,jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(S4t,"AbstractBarycenterPortDistributor/lambda$0$Type",1633),fIt(817,1,O1t,H2),kGt.Nf=function(t,e,n,i,a,r){},kGt.Pf=function(t,e,n){},kGt.Qf=function(t,e,n,i){},kGt.Lf=function(){return!1},kGt.Mf=function(){this.c=this.e.a,this.g=this.f.g},kGt.Of=function(t,e){e[t][0].c.p=t},kGt.Rf=function(){return!1},kGt.ag=function(t,e,n,i){n?cRt(this,t):(NRt(this,t,i),JVt(this,t,e)),t.c.length>1&&(zw(RB(yEt(bG((u1(0,t.c.length),jz(t.c[0],10))),(zYt(),Ope))))?BLt(t,this.d,jz(this,660)):(kK(),mL(t,this.d)),$ot(this.e,t))},kGt.Sf=function(t,e,n,i){var a,r,o,s,c,l,u;for(e!=KU(n,t.length)&&(r=t[e-(n?1:-1)],H7(this.f,r,n?(rit(),Hye):(rit(),zye))),a=t[e][0],u=!i||a.k==(oCt(),kse),l=r7(t[e]),this.ag(l,u,!1,n),o=0,c=new Wf(l);c.a<c.c.c.length;)s=jz(J1(c),10),t[e][o++]=s;return!1},kGt.Tf=function(t,e){var n,i,a,r,o;for(r=r7(t[o=KU(e,t.length)]),this.ag(r,!1,!0,e),n=0,a=new Wf(r);a.a<a.c.c.length;)i=jz(J1(a),10),t[o][n++]=i;return!1},bY(S4t,"BarycenterHeuristic",817),fIt(658,1,{658:1},jp),kGt.Ib=function(){return"BarycenterState [node="+this.c+", summedWeight="+this.d+", degree="+this.b+", barycenter="+this.a+", visited="+this.e+"]"},kGt.b=0,kGt.d=0,kGt.e=!1;var Eve=bY(S4t,"BarycenterHeuristic/BarycenterState",658);fIt(1802,1,kXt,Fp),kGt.ue=function(t,e){return k_t(this.a,jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(S4t,"BarycenterHeuristic/lambda$0$Type",1802),fIt(816,1,O1t,q_t),kGt.Mf=function(){},kGt.Nf=function(t,e,n,i,a,r){},kGt.Qf=function(t,e,n,i){},kGt.Of=function(t,e){this.a[t]=O5(Eve,{3:1,4:1,5:1,2018:1},658,e[t].length,0,1),this.b[t]=O5(Tve,{3:1,4:1,5:1,2019:1},233,e[t].length,0,1)},kGt.Pf=function(t,e,n){Nbt(this,n[t][e],!0)},kGt.c=!1,bY(S4t,"ForsterConstraintResolver",816),fIt(233,1,{233:1},MX,oVt),kGt.Ib=function(){var t,e;for((e=new Cx).a+="[",t=0;t<this.d.length;t++)oD(e,Imt(this.d[t])),null!=uO(this.g,this.d[0]).a&&oD(oD((e.a+="<",e),XA(uO(this.g,this.d[0]).a)),">"),t<this.d.length-1&&(e.a+=jGt);return(e.a+="]",e).a},kGt.a=0,kGt.c=0,kGt.f=0;var Cve,Sve,Tve=bY(S4t,"ForsterConstraintResolver/ConstraintGroup",233);fIt(1797,1,dZt,zp),kGt.td=function(t){Nbt(this.a,jz(t,10),!1)},bY(S4t,"ForsterConstraintResolver/lambda$0$Type",1797),fIt(214,1,{214:1,225:1},SVt),kGt.Nf=function(t,e,n,i,a,r){},kGt.Of=function(t,e){},kGt.Mf=function(){this.r=O5(TMe,lKt,25,this.n,15,1)},kGt.Pf=function(t,e,n){var i;(i=n[t][e].e)&&Wz(this.b,i)},kGt.Qf=function(t,e,n,i){++this.n},kGt.Ib=function(){return nqt(this.e,new Ny)},kGt.g=!1,kGt.i=!1,kGt.n=0,kGt.s=!1,bY(S4t,"GraphInfoHolder",214),fIt(1832,1,O1t,Sr),kGt.Nf=function(t,e,n,i,a,r){},kGt.Of=function(t,e){},kGt.Qf=function(t,e,n,i){},kGt._f=function(t,e,n){return n&&e>0?rQ(this.a,t[e-1],t[e]):!n&&e<t.length-1?rQ(this.a,t[e],t[e+1]):vat(this.a,t[e],n?(wWt(),SAe):(wWt(),sAe)),hOt(this,t,e,n)},kGt.Mf=function(){this.d=O5(TMe,lKt,25,this.c,15,1),this.a=new GF(this.d)},kGt.Pf=function(t,e,n){var i;i=n[t][e],this.c+=i.j.c.length},kGt.c=0,bY(S4t,"GreedyPortDistributor",1832),fIt(1401,1,R4t,hd),kGt.Yf=function(t){return Wut(jz(t,37))},kGt.pf=function(t,e){WVt(jz(t,37),e)},bY(S4t,"InteractiveCrossingMinimizer",1401),fIt(1402,1,kXt,Hp),kGt.ue=function(t,e){return zRt(this,jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(S4t,"InteractiveCrossingMinimizer/1",1402),fIt(507,1,{507:1,123:1,51:1},Lw),kGt.Yf=function(t){var e;return jz(t,37),fU(e=vI(Sve),(vEt(),Foe),(dGt(),$ce)),e},kGt.pf=function(t,e){Cjt(this,jz(t,37),e)},kGt.e=0,bY(S4t,"LayerSweepCrossingMinimizer",507),fIt(1398,1,dZt,Up),kGt.td=function(t){fzt(this.a,jz(t,214))},bY(S4t,"LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type",1398),fIt(1399,1,dZt,Vp),kGt.td=function(t){Aut(this.a,jz(t,214))},bY(S4t,"LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type",1399),fIt(1400,1,dZt,qp),kGt.td=function(t){b$t(this.a,jz(t,214))},bY(S4t,"LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type",1400),fIt(454,22,{3:1,35:1,22:1,454:1},ZS);var Ave,Dve,Ive,Lve,Ove=$nt(S4t,"LayerSweepCrossingMinimizer/CrossMinType",454,Vte,M1,_$);fIt(1397,1,NZt,Ir),kGt.Mb=function(t){return Frt(),0==jz(t,29).a.c.length},bY(S4t,"LayerSweepCrossingMinimizer/lambda$0$Type",1397),fIt(1799,1,O1t,aQ),kGt.Mf=function(){},kGt.Nf=function(t,e,n,i,a,r){},kGt.Qf=function(t,e,n,i){},kGt.Of=function(t,e){e[t][0].c.p=t,this.b[t]=O5(Pve,{3:1,4:1,5:1,1944:1},659,e[t].length,0,1)},kGt.Pf=function(t,e,n){n[t][e].p=e,DY(this.b[t],e,new Lr)},bY(S4t,"LayerSweepTypeDecider",1799),fIt(659,1,{659:1},Lr),kGt.Ib=function(){return"NodeInfo [connectedEdges="+this.a+", hierarchicalInfluence="+this.b+", randomInfluence="+this.c+"]"},kGt.a=0,kGt.b=0,kGt.c=0;var Mve,Nve,Bve,Pve=bY(S4t,"LayerSweepTypeDecider/NodeInfo",659);fIt(1800,1,HXt,Or),kGt.Lb=function(t){return UM(new m7(jz(t,11).b))},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return UM(new m7(jz(t,11).b))},bY(S4t,"LayerSweepTypeDecider/lambda$0$Type",1800),fIt(1801,1,HXt,Mr),kGt.Lb=function(t){return UM(new m7(jz(t,11).b))},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return UM(new m7(jz(t,11).b))},bY(S4t,"LayerSweepTypeDecider/lambda$1$Type",1801),fIt(1833,402,E4t,MR),kGt.$f=function(t,e,n){var i,a,r,o,s,c,l,u,d;switch(l=this.g,n.g){case 1:for(i=0,a=0,c=new Wf(t.j);c.a<c.c.c.length;)0!=(o=jz(J1(c),11)).e.c.length&&(++i,o.j==(wWt(),cAe)&&++a);for(r=e+a,d=e+i,s=Mgt(t,(rit(),zye)).Kc();s.Ob();)(o=jz(s.Pb(),11)).j==(wWt(),cAe)?(l[o.p]=r,--r):(l[o.p]=d,--d);return i;case 2:for(u=0,s=Mgt(t,(rit(),Hye)).Kc();s.Ob();)++u,l[(o=jz(s.Pb(),11)).p]=e+u;return u;default:throw $m(new hy)}},bY(S4t,"LayerTotalPortDistributor",1833),fIt(660,817,{660:1,225:1},bat),kGt.ag=function(t,e,n,i){n?cRt(this,t):(NRt(this,t,i),JVt(this,t,e)),t.c.length>1&&(zw(RB(yEt(bG((u1(0,t.c.length),jz(t.c[0],10))),(zYt(),Ope))))?BLt(t,this.d,this):(kK(),mL(t,this.d)),zw(RB(yEt(bG((u1(0,t.c.length),jz(t.c[0],10))),Ope)))||$ot(this.e,t))},bY(S4t,"ModelOrderBarycenterHeuristic",660),fIt(1803,1,kXt,Wp),kGt.ue=function(t,e){return PCt(this.a,jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(S4t,"ModelOrderBarycenterHeuristic/lambda$0$Type",1803),fIt(1403,1,R4t,vd),kGt.Yf=function(t){var e;return jz(t,37),fU(e=vI(Mve),(vEt(),Foe),(dGt(),$ce)),e},kGt.pf=function(t,e){mX((jz(t,37),e))},bY(S4t,"NoCrossingMinimizer",1403),fIt(796,402,E4t,NR),kGt.$f=function(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;switch(d=this.g,n.g){case 1:for(a=0,r=0,u=new Wf(t.j);u.a<u.c.c.length;)0!=(c=jz(J1(u),11)).e.c.length&&(++a,c.j==(wWt(),cAe)&&++r);for(o=e+r*(i=1/(a+1)),f=e+1-i,l=Mgt(t,(rit(),zye)).Kc();l.Ob();)(c=jz(l.Pb(),11)).j==(wWt(),cAe)?(d[c.p]=o,o-=i):(d[c.p]=f,f-=i);break;case 2:for(s=0,u=new Wf(t.j);u.a<u.c.c.length;)0==(c=jz(J1(u),11)).g.c.length||++s;for(h=e+(i=1/(s+1)),l=Mgt(t,(rit(),Hye)).Kc();l.Ob();)d[(c=jz(l.Pb(),11)).p]=h,h+=i;break;default:throw $m(new Pw("Port type is undefined"))}return 1},bY(S4t,"NodeRelativePortDistributor",796),fIt(807,1,{},Yq,zEt),bY(S4t,"SweepCopy",807),fIt(1798,1,O1t,fpt),kGt.Of=function(t,e){},kGt.Mf=function(){var t;t=O5(TMe,lKt,25,this.f,15,1),this.d=new tb(t),this.a=new GF(t)},kGt.Nf=function(t,e,n,i,a,r){var o;o=jz(OU(r[t][e].j,n),11),a.c==o&&a.c.i.c==a.d.i.c&&++this.e[t]},kGt.Pf=function(t,e,n){var i;i=n[t][e],this.c[t]=this.c[t]|i.k==(oCt(),Tse)},kGt.Qf=function(t,e,n,i){var a;(a=jz(OU(i[t][e].j,n),11)).p=this.f++,a.g.c.length+a.e.c.length>1&&(a.j==(wWt(),sAe)?this.b[t]=!0:a.j==SAe&&t>0&&(this.b[t-1]=!0))},kGt.f=0,bY(L1t,"AllCrossingsCounter",1798),fIt(587,1,{},yat),kGt.b=0,kGt.d=0,bY(L1t,"BinaryIndexedTree",587),fIt(524,1,{},GF),bY(L1t,"CrossingsCounter",524),fIt(1906,1,kXt,Yp),kGt.ue=function(t,e){return qU(this.a,jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(L1t,"CrossingsCounter/lambda$0$Type",1906),fIt(1907,1,kXt,Gp),kGt.ue=function(t,e){return WU(this.a,jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(L1t,"CrossingsCounter/lambda$1$Type",1907),fIt(1908,1,kXt,Zp),kGt.ue=function(t,e){return YU(this.a,jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(L1t,"CrossingsCounter/lambda$2$Type",1908),fIt(1909,1,kXt,Kp),kGt.ue=function(t,e){return GU(this.a,jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(L1t,"CrossingsCounter/lambda$3$Type",1909),fIt(1910,1,dZt,Xp),kGt.td=function(t){p9(this.a,jz(t,11))},bY(L1t,"CrossingsCounter/lambda$4$Type",1910),fIt(1911,1,NZt,Jp),kGt.Mb=function(t){return yA(this.a,jz(t,11))},bY(L1t,"CrossingsCounter/lambda$5$Type",1911),fIt(1912,1,dZt,Qp),kGt.td=function(t){mA(this,t)},bY(L1t,"CrossingsCounter/lambda$6$Type",1912),fIt(1913,1,dZt,XS),kGt.td=function(t){var e;cH(),f4(this.b,(e=this.a,jz(t,11),e))},bY(L1t,"CrossingsCounter/lambda$7$Type",1913),fIt(826,1,HXt,Nr),kGt.Lb=function(t){return cH(),IN(jz(t,11),(lGt(),xhe))},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return cH(),IN(jz(t,11),(lGt(),xhe))},bY(L1t,"CrossingsCounter/lambda$8$Type",826),fIt(1905,1,{},tb),bY(L1t,"HyperedgeCrossingsCounter",1905),fIt(467,1,{35:1,467:1},MP),kGt.wd=function(t){return mbt(this,jz(t,467))},kGt.b=0,kGt.c=0,kGt.e=0,kGt.f=0;var Fve=bY(L1t,"HyperedgeCrossingsCounter/Hyperedge",467);fIt(362,1,{35:1,362:1},zZ),kGt.wd=function(t){return dLt(this,jz(t,362))},kGt.b=0,kGt.c=0;var jve=bY(L1t,"HyperedgeCrossingsCounter/HyperedgeCorner",362);fIt(523,22,{3:1,35:1,22:1,523:1},KS);var $ve,zve,Hve,Uve,Vve,qve,Wve,Yve=$nt(L1t,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",523,Vte,qX,k$);fIt(1405,1,R4t,ld),kGt.Yf=function(t){return jz(yEt(jz(t,37),(lGt(),Xde)),21).Hc((hBt(),dde))?Uve:null},kGt.pf=function(t,e){dRt(this,jz(t,37),e)},bY(T4t,"InteractiveNodePlacer",1405),fIt(1406,1,R4t,cd),kGt.Yf=function(t){return jz(yEt(jz(t,37),(lGt(),Xde)),21).Hc((hBt(),dde))?Vve:null},kGt.pf=function(t,e){xvt(this,jz(t,37),e)},bY(T4t,"LinearSegmentsNodePlacer",1406),fIt(257,1,{35:1,257:1},nv),kGt.wd=function(t){return rR(this,jz(t,257))},kGt.Fb=function(t){var e;return!!iO(t,257)&&(e=jz(t,257),this.b==e.b)},kGt.Hb=function(){return this.b},kGt.Ib=function(){return"ls"+LEt(this.e)},kGt.a=0,kGt.b=0,kGt.c=-1,kGt.d=-1,kGt.g=0;var Gve,Zve=bY(T4t,"LinearSegmentsNodePlacer/LinearSegment",257);fIt(1408,1,R4t,PV),kGt.Yf=function(t){return jz(yEt(jz(t,37),(lGt(),Xde)),21).Hc((hBt(),dde))?Gve:null},kGt.pf=function(t,e){EYt(this,jz(t,37),e)},kGt.b=0,kGt.g=0,bY(T4t,"NetworkSimplexPlacer",1408),fIt(1427,1,kXt,Br),kGt.ue=function(t,e){return xL(jz(t,19).a,jz(e,19).a)},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(T4t,"NetworkSimplexPlacer/0methodref$compare$Type",1427),fIt(1429,1,kXt,Pr),kGt.ue=function(t,e){return xL(jz(t,19).a,jz(e,19).a)},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(T4t,"NetworkSimplexPlacer/1methodref$compare$Type",1429),fIt(649,1,{649:1},JS);var Kve=bY(T4t,"NetworkSimplexPlacer/EdgeRep",649);fIt(401,1,{401:1},HZ),kGt.b=!1;var Xve,Jve=bY(T4t,"NetworkSimplexPlacer/NodeRep",401);fIt(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},rv),bY(T4t,"NetworkSimplexPlacer/Path",508),fIt(1409,1,{},Fr),kGt.Kb=function(t){return jz(t,17).d.i.k},bY(T4t,"NetworkSimplexPlacer/Path/lambda$0$Type",1409),fIt(1410,1,NZt,jr),kGt.Mb=function(t){return jz(t,267)==(oCt(),Cse)},bY(T4t,"NetworkSimplexPlacer/Path/lambda$1$Type",1410),fIt(1411,1,{},$r),kGt.Kb=function(t){return jz(t,17).d.i},bY(T4t,"NetworkSimplexPlacer/Path/lambda$2$Type",1411),fIt(1412,1,NZt,eb),kGt.Mb=function(t){return $B(tpt(jz(t,10)))},bY(T4t,"NetworkSimplexPlacer/Path/lambda$3$Type",1412),fIt(1413,1,NZt,zr),kGt.Mb=function(t){return cU(jz(t,11))},bY(T4t,"NetworkSimplexPlacer/lambda$0$Type",1413),fIt(1414,1,dZt,QS),kGt.td=function(t){ML(this.a,this.b,jz(t,11))},bY(T4t,"NetworkSimplexPlacer/lambda$1$Type",1414),fIt(1423,1,dZt,nb),kGt.td=function(t){YTt(this.a,jz(t,17))},bY(T4t,"NetworkSimplexPlacer/lambda$10$Type",1423),fIt(1424,1,{},Hr),kGt.Kb=function(t){return jQ(),new NU(null,new h1(jz(t,29).a,16))},bY(T4t,"NetworkSimplexPlacer/lambda$11$Type",1424),fIt(1425,1,dZt,ib),kGt.td=function(t){$Bt(this.a,jz(t,10))},bY(T4t,"NetworkSimplexPlacer/lambda$12$Type",1425),fIt(1426,1,{},Ur),kGt.Kb=function(t){return jQ(),nht(jz(t,121).e)},bY(T4t,"NetworkSimplexPlacer/lambda$13$Type",1426),fIt(1428,1,{},Vr),kGt.Kb=function(t){return jQ(),nht(jz(t,121).e)},bY(T4t,"NetworkSimplexPlacer/lambda$15$Type",1428),fIt(1430,1,NZt,qr),kGt.Mb=function(t){return jQ(),jz(t,401).c.k==(oCt(),Sse)},bY(T4t,"NetworkSimplexPlacer/lambda$17$Type",1430),fIt(1431,1,NZt,Wr),kGt.Mb=function(t){return jQ(),jz(t,401).c.j.c.length>1},bY(T4t,"NetworkSimplexPlacer/lambda$18$Type",1431),fIt(1432,1,dZt,UZ),kGt.td=function(t){agt(this.c,this.b,this.d,this.a,jz(t,401))},kGt.c=0,kGt.d=0,bY(T4t,"NetworkSimplexPlacer/lambda$19$Type",1432),fIt(1415,1,{},Yr),kGt.Kb=function(t){return jQ(),new NU(null,new h1(jz(t,29).a,16))},bY(T4t,"NetworkSimplexPlacer/lambda$2$Type",1415),fIt(1433,1,dZt,ab),kGt.td=function(t){LL(this.a,jz(t,11))},kGt.a=0,bY(T4t,"NetworkSimplexPlacer/lambda$20$Type",1433),fIt(1434,1,{},Gr),kGt.Kb=function(t){return jQ(),new NU(null,new h1(jz(t,29).a,16))},bY(T4t,"NetworkSimplexPlacer/lambda$21$Type",1434),fIt(1435,1,dZt,rb),kGt.td=function(t){fO(this.a,jz(t,10))},bY(T4t,"NetworkSimplexPlacer/lambda$22$Type",1435),fIt(1436,1,NZt,Zr),kGt.Mb=function(t){return $B(t)},bY(T4t,"NetworkSimplexPlacer/lambda$23$Type",1436),fIt(1437,1,{},Kr),kGt.Kb=function(t){return jQ(),new NU(null,new h1(jz(t,29).a,16))},bY(T4t,"NetworkSimplexPlacer/lambda$24$Type",1437),fIt(1438,1,NZt,ob),kGt.Mb=function(t){return xD(this.a,jz(t,10))},bY(T4t,"NetworkSimplexPlacer/lambda$25$Type",1438),fIt(1439,1,dZt,tT),kGt.td=function(t){kSt(this.a,this.b,jz(t,10))},bY(T4t,"NetworkSimplexPlacer/lambda$26$Type",1439),fIt(1440,1,NZt,Xr),kGt.Mb=function(t){return jQ(),!d6(jz(t,17))},bY(T4t,"NetworkSimplexPlacer/lambda$27$Type",1440),fIt(1441,1,NZt,Jr),kGt.Mb=function(t){return jQ(),!d6(jz(t,17))},bY(T4t,"NetworkSimplexPlacer/lambda$28$Type",1441),fIt(1442,1,{},sb),kGt.Ce=function(t,e){return sO(this.a,jz(t,29),jz(e,29))},bY(T4t,"NetworkSimplexPlacer/lambda$29$Type",1442),fIt(1416,1,{},Qr),kGt.Kb=function(t){return jQ(),new NU(null,new UW(new oq(XO(dft(jz(t,10)).a.Kc(),new u))))},bY(T4t,"NetworkSimplexPlacer/lambda$3$Type",1416),fIt(1417,1,NZt,to),kGt.Mb=function(t){return jQ(),Q0(jz(t,17))},bY(T4t,"NetworkSimplexPlacer/lambda$4$Type",1417),fIt(1418,1,dZt,cb),kGt.td=function(t){nzt(this.a,jz(t,17))},bY(T4t,"NetworkSimplexPlacer/lambda$5$Type",1418),fIt(1419,1,{},eo),kGt.Kb=function(t){return jQ(),new NU(null,new h1(jz(t,29).a,16))},bY(T4t,"NetworkSimplexPlacer/lambda$6$Type",1419),fIt(1420,1,NZt,no),kGt.Mb=function(t){return jQ(),jz(t,10).k==(oCt(),Sse)},bY(T4t,"NetworkSimplexPlacer/lambda$7$Type",1420),fIt(1421,1,{},io),kGt.Kb=function(t){return jQ(),new NU(null,new UW(new oq(XO(lft(jz(t,10)).a.Kc(),new u))))},bY(T4t,"NetworkSimplexPlacer/lambda$8$Type",1421),fIt(1422,1,NZt,ao),kGt.Mb=function(t){return jQ(),VH(jz(t,17))},bY(T4t,"NetworkSimplexPlacer/lambda$9$Type",1422),fIt(1404,1,R4t,Ed),kGt.Yf=function(t){return jz(yEt(jz(t,37),(lGt(),Xde)),21).Hc((hBt(),dde))?Xve:null},kGt.pf=function(t,e){wHt(jz(t,37),e)},bY(T4t,"SimpleNodePlacer",1404),fIt(180,1,{180:1},HFt),kGt.Ib=function(){var t;return t="",this.c==(gJ(),twe)?t+=rJt:this.c==Qve&&(t+=aJt),this.o==(oQ(),iwe)?t+=bJt:this.o==awe?t+="UP":t+="BALANCED",t},bY(I4t,"BKAlignedLayout",180),fIt(516,22,{3:1,35:1,22:1,516:1},iT);var Qve,twe,ewe,nwe=$nt(I4t,"BKAlignedLayout/HDirection",516,Vte,YX,E$);fIt(515,22,{3:1,35:1,22:1,515:1},nT);var iwe,awe,rwe,owe,swe,cwe,lwe,uwe,dwe,hwe,fwe,gwe,pwe,bwe,mwe,ywe,vwe,wwe,xwe,Rwe=$nt(I4t,"BKAlignedLayout/VDirection",515,Vte,GX,C$);fIt(1634,1,{},eT),bY(I4t,"BKAligner",1634),fIt(1637,1,{},Xwt),bY(I4t,"BKCompactor",1637),fIt(654,1,{654:1},ro),kGt.a=0,bY(I4t,"BKCompactor/ClassEdge",654),fIt(458,1,{458:1},iv),kGt.a=null,kGt.b=0,bY(I4t,"BKCompactor/ClassNode",458),fIt(1407,1,R4t,wA),kGt.Yf=function(t){return jz(yEt(jz(t,37),(lGt(),Xde)),21).Hc((hBt(),dde))?owe:null},kGt.pf=function(t,e){iGt(this,jz(t,37),e)},kGt.d=!1,bY(I4t,"BKNodePlacer",1407),fIt(1635,1,{},oo),kGt.d=0,bY(I4t,"NeighborhoodInformation",1635),fIt(1636,1,kXt,lb),kGt.ue=function(t,e){return ket(this,jz(t,46),jz(e,46))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(I4t,"NeighborhoodInformation/NeighborComparator",1636),fIt(808,1,{}),bY(I4t,"ThresholdStrategy",808),fIt(1763,808,{},fv),kGt.bg=function(t,e,n){return this.a.o==(oQ(),awe)?BKt:PKt},kGt.cg=function(){},bY(I4t,"ThresholdStrategy/NullThresholdStrategy",1763),fIt(579,1,{579:1},aT),kGt.c=!1,kGt.d=!1,bY(I4t,"ThresholdStrategy/Postprocessable",579),fIt(1764,808,{},gv),kGt.bg=function(t,e,n){var i,a,r;return a=e==n,i=this.a.a[n.p]==e,a||i?(r=t,this.a.c,gJ(),a&&(r=_Ht(this,e,!0)),!isNaN(r)&&!isFinite(r)&&i&&(r=_Ht(this,n,!1)),r):t},kGt.cg=function(){for(var t,e,n;0!=this.d.b;)(e=a$t(this,n=jz(EJ(this.d),579))).a&&(t=e.a,(zw(this.a.f[this.a.g[n.b.p].p])||d6(t)||t.c.i.c!=t.d.i.c)&&(hLt(this,n)||nI(this.e,n)));for(;0!=this.e.a.c.length;)hLt(this,jz(tut(this.e),579))},bY(I4t,"ThresholdStrategy/SimpleThresholdStrategy",1764),fIt(635,1,{635:1,246:1,234:1},so),kGt.Kf=function(){return _ot(this)},kGt.Xf=function(){return _ot(this)},bY(L4t,"EdgeRouterFactory",635),fIt(1458,1,R4t,Cd),kGt.Yf=function(t){return qNt(jz(t,37))},kGt.pf=function(t,e){NHt(jz(t,37),e)},bY(L4t,"OrthogonalEdgeRouter",1458),fIt(1451,1,R4t,xA),kGt.Yf=function(t){return RRt(jz(t,37))},kGt.pf=function(t,e){AWt(this,jz(t,37),e)},bY(L4t,"PolylineEdgeRouter",1451),fIt(1452,1,HXt,co),kGt.Lb=function(t){return Zot(jz(t,10))},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return Zot(jz(t,10))},bY(L4t,"PolylineEdgeRouter/1",1452),fIt(1809,1,NZt,lo),kGt.Mb=function(t){return jz(t,129).c==(T7(),_we)},bY(O4t,"HyperEdgeCycleDetector/lambda$0$Type",1809),fIt(1810,1,{},uo),kGt.Ge=function(t){return jz(t,129).d},bY(O4t,"HyperEdgeCycleDetector/lambda$1$Type",1810),fIt(1811,1,NZt,ho),kGt.Mb=function(t){return jz(t,129).c==(T7(),_we)},bY(O4t,"HyperEdgeCycleDetector/lambda$2$Type",1811),fIt(1812,1,{},fo),kGt.Ge=function(t){return jz(t,129).d},bY(O4t,"HyperEdgeCycleDetector/lambda$3$Type",1812),fIt(1813,1,{},go),kGt.Ge=function(t){return jz(t,129).d},bY(O4t,"HyperEdgeCycleDetector/lambda$4$Type",1813),fIt(1814,1,{},po),kGt.Ge=function(t){return jz(t,129).d},bY(O4t,"HyperEdgeCycleDetector/lambda$5$Type",1814),fIt(112,1,{35:1,112:1},jot),kGt.wd=function(t){return oR(this,jz(t,112))},kGt.Fb=function(t){var e;return!!iO(t,112)&&(e=jz(t,112),this.g==e.g)},kGt.Hb=function(){return this.g},kGt.Ib=function(){var t,e,n,i;for(t=new uM("{"),i=new Wf(this.n);i.a<i.c.c.length;)null==(e=pwt((n=jz(J1(i),11)).i))&&(e="n"+AF(n.i)),t.a+=""+e,i.a<i.c.c.length&&(t.a+=",");return t.a+="}",t.a},kGt.a=0,kGt.b=0,kGt.c=NaN,kGt.d=0,kGt.g=0,kGt.i=0,kGt.o=0,kGt.s=NaN,bY(O4t,"HyperEdgeSegment",112),fIt(129,1,{129:1},UQ),kGt.Ib=function(){return this.a+"->"+this.b+" ("+hN(this.c)+")"},kGt.d=0,bY(O4t,"HyperEdgeSegmentDependency",129),fIt(520,22,{3:1,35:1,22:1,520:1},rT);var _we,kwe,Ewe,Cwe,Swe,Twe,Awe,Dwe,Iwe=$nt(O4t,"HyperEdgeSegmentDependency/DependencyType",520,Vte,WX,S$);fIt(1815,1,{},ub),bY(O4t,"HyperEdgeSegmentSplitter",1815),fIt(1816,1,{},UR),kGt.a=0,kGt.b=0,bY(O4t,"HyperEdgeSegmentSplitter/AreaRating",1816),fIt(329,1,{329:1},vz),kGt.a=0,kGt.b=0,kGt.c=0,bY(O4t,"HyperEdgeSegmentSplitter/FreeArea",329),fIt(1817,1,kXt,_o),kGt.ue=function(t,e){return TF(jz(t,112),jz(e,112))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(O4t,"HyperEdgeSegmentSplitter/lambda$0$Type",1817),fIt(1818,1,dZt,qZ),kGt.td=function(t){J4(this.a,this.d,this.c,this.b,jz(t,112))},kGt.b=0,bY(O4t,"HyperEdgeSegmentSplitter/lambda$1$Type",1818),fIt(1819,1,{},ko),kGt.Kb=function(t){return new NU(null,new h1(jz(t,112).e,16))},bY(O4t,"HyperEdgeSegmentSplitter/lambda$2$Type",1819),fIt(1820,1,{},Eo),kGt.Kb=function(t){return new NU(null,new h1(jz(t,112).j,16))},bY(O4t,"HyperEdgeSegmentSplitter/lambda$3$Type",1820),fIt(1821,1,{},Co),kGt.Fe=function(t){return Hw(_B(t))},bY(O4t,"HyperEdgeSegmentSplitter/lambda$4$Type",1821),fIt(655,1,{},lY),kGt.a=0,kGt.b=0,kGt.c=0,bY(O4t,"OrthogonalRoutingGenerator",655),fIt(1638,1,{},So),kGt.Kb=function(t){return new NU(null,new h1(jz(t,112).e,16))},bY(O4t,"OrthogonalRoutingGenerator/lambda$0$Type",1638),fIt(1639,1,{},To),kGt.Kb=function(t){return new NU(null,new h1(jz(t,112).j,16))},bY(O4t,"OrthogonalRoutingGenerator/lambda$1$Type",1639),fIt(661,1,{}),bY(M4t,"BaseRoutingDirectionStrategy",661),fIt(1807,661,{},pv),kGt.dg=function(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b;if(!t.r||t.q)for(d=e+t.o*n,u=new Wf(t.n);u.a<u.c.c.length;)for(l=jz(J1(u),11),h=Dct(Cst(Hx(EEe,1),cZt,8,0,[l.i.n,l.n,l.a])).a,c=new Wf(l.g);c.a<c.c.c.length;)d6(s=jz(J1(c),17))||(p=s.d,b=Dct(Cst(Hx(EEe,1),cZt,8,0,[p.i.n,p.n,p.a])).a,i.Math.abs(h-b)>dQt&&(r=t,a=new OT(h,o=d),MH(s.a,a),jjt(this,s,r,a,!1),(f=t.r)&&(a=new OT(g=Hw(_B(Nmt(f.e,0))),o),MH(s.a,a),jjt(this,s,r,a,!1),r=f,a=new OT(g,o=e+f.o*n),MH(s.a,a),jjt(this,s,r,a,!1)),a=new OT(b,o),MH(s.a,a),jjt(this,s,r,a,!1)))},kGt.eg=function(t){return t.i.n.a+t.n.a+t.a.a},kGt.fg=function(){return wWt(),EAe},kGt.gg=function(){return wWt(),cAe},bY(M4t,"NorthToSouthRoutingStrategy",1807),fIt(1808,661,{},bv),kGt.dg=function(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b;if(!t.r||t.q)for(d=e-t.o*n,u=new Wf(t.n);u.a<u.c.c.length;)for(l=jz(J1(u),11),h=Dct(Cst(Hx(EEe,1),cZt,8,0,[l.i.n,l.n,l.a])).a,c=new Wf(l.g);c.a<c.c.c.length;)d6(s=jz(J1(c),17))||(p=s.d,b=Dct(Cst(Hx(EEe,1),cZt,8,0,[p.i.n,p.n,p.a])).a,i.Math.abs(h-b)>dQt&&(r=t,a=new OT(h,o=d),MH(s.a,a),jjt(this,s,r,a,!1),(f=t.r)&&(a=new OT(g=Hw(_B(Nmt(f.e,0))),o),MH(s.a,a),jjt(this,s,r,a,!1),r=f,a=new OT(g,o=e-f.o*n),MH(s.a,a),jjt(this,s,r,a,!1)),a=new OT(b,o),MH(s.a,a),jjt(this,s,r,a,!1)))},kGt.eg=function(t){return t.i.n.a+t.n.a+t.a.a},kGt.fg=function(){return wWt(),cAe},kGt.gg=function(){return wWt(),EAe},bY(M4t,"SouthToNorthRoutingStrategy",1808),fIt(1806,661,{},mv),kGt.dg=function(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b;if(!t.r||t.q)for(d=e+t.o*n,u=new Wf(t.n);u.a<u.c.c.length;)for(l=jz(J1(u),11),h=Dct(Cst(Hx(EEe,1),cZt,8,0,[l.i.n,l.n,l.a])).b,c=new Wf(l.g);c.a<c.c.c.length;)d6(s=jz(J1(c),17))||(p=s.d,b=Dct(Cst(Hx(EEe,1),cZt,8,0,[p.i.n,p.n,p.a])).b,i.Math.abs(h-b)>dQt&&(r=t,a=new OT(o=d,h),MH(s.a,a),jjt(this,s,r,a,!0),(f=t.r)&&(a=new OT(o,g=Hw(_B(Nmt(f.e,0)))),MH(s.a,a),jjt(this,s,r,a,!0),r=f,a=new OT(o=e+f.o*n,g),MH(s.a,a),jjt(this,s,r,a,!0)),a=new OT(o,b),MH(s.a,a),jjt(this,s,r,a,!0)))},kGt.eg=function(t){return t.i.n.b+t.n.b+t.a.b},kGt.fg=function(){return wWt(),sAe},kGt.gg=function(){return wWt(),SAe},bY(M4t,"WestToEastRoutingStrategy",1806),fIt(813,1,{},szt),kGt.Ib=function(){return LEt(this.a)},kGt.b=0,kGt.c=!1,kGt.d=!1,kGt.f=0,bY(B4t,"NubSpline",813),fIt(407,1,{407:1},RNt,hJ),bY(B4t,"NubSpline/PolarCP",407),fIt(1453,1,R4t,lwt),kGt.Yf=function(t){return ikt(jz(t,37))},kGt.pf=function(t,e){aYt(this,jz(t,37),e)},bY(B4t,"SplineEdgeRouter",1453),fIt(268,1,{268:1},k7),kGt.Ib=function(){return this.a+" ->("+this.c+") "+this.b},kGt.c=0,bY(B4t,"SplineEdgeRouter/Dependency",268),fIt(455,22,{3:1,35:1,22:1,455:1},oT);var Lwe,Owe,Mwe,Nwe=$nt(B4t,"SplineEdgeRouter/SideToProcess",455,Vte,ZX,T$);fIt(1454,1,NZt,xo),kGt.Mb=function(t){return pNt(),!jz(t,128).o},bY(B4t,"SplineEdgeRouter/lambda$0$Type",1454),fIt(1455,1,{},wo),kGt.Ge=function(t){return pNt(),jz(t,128).v+1},bY(B4t,"SplineEdgeRouter/lambda$1$Type",1455),fIt(1456,1,dZt,sT),kGt.td=function(t){eU(this.a,this.b,jz(t,46))},bY(B4t,"SplineEdgeRouter/lambda$2$Type",1456),fIt(1457,1,dZt,cT),kGt.td=function(t){nU(this.a,this.b,jz(t,46))},bY(B4t,"SplineEdgeRouter/lambda$3$Type",1457),fIt(128,1,{35:1,128:1},tTt,lUt),kGt.wd=function(t){return sR(this,jz(t,128))},kGt.b=0,kGt.e=!1,kGt.f=0,kGt.g=0,kGt.j=!1,kGt.k=!1,kGt.n=0,kGt.o=!1,kGt.p=!1,kGt.q=!1,kGt.s=0,kGt.u=0,kGt.v=0,kGt.F=0,bY(B4t,"SplineSegment",128),fIt(459,1,{459:1},Ro),kGt.a=0,kGt.b=!1,kGt.c=!1,kGt.d=!1,kGt.e=!1,kGt.f=0,bY(B4t,"SplineSegment/EdgeInformation",459),fIt(1234,1,{},bo),bY(z4t,nQt,1234),fIt(1235,1,kXt,mo),kGt.ue=function(t,e){return TAt(jz(t,135),jz(e,135))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(z4t,iQt,1235),fIt(1233,1,{},A_),bY(z4t,"MrTree",1233),fIt(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},lT),kGt.Kf=function(){return DAt(this)},kGt.Xf=function(){return DAt(this)};var Bwe,Pwe,Fwe,jwe,$we,zwe=$nt(z4t,"TreeLayoutPhases",393,Vte,w4,A$);fIt(1130,209,OJt,PP),kGt.Ze=function(t,e){var n,i,a,r,o,s;for(zw(RB(JIt(t,(SIt(),Cxe))))||wJ(new Rg((HE(),new Mw(t)))),Hot(o=new E7,t),lct(o,(HUt(),sxe),t),mjt(t,o,s=new Om),Yjt(t,o,s),r=o,i=new Wf(a=Mjt(this.a,r));i.a<i.c.c.length;)n=jz(J1(i),135),Y_t(this.b,n,yrt(e,1/a.c.length));Tqt(r=tGt(a))},bY(z4t,"TreeLayoutProvider",1130),fIt(1847,1,bZt,yo),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return kK(),Ik(),dne},bY(z4t,"TreeUtil/1",1847),fIt(1848,1,bZt,vo),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return kK(),Ik(),dne},bY(z4t,"TreeUtil/2",1848),fIt(502,134,{3:1,502:1,94:1,134:1}),kGt.g=0,bY(H4t,"TGraphElement",502),fIt(188,502,{3:1,188:1,502:1,94:1,134:1},VK),kGt.Ib=function(){return this.b&&this.c?g0(this.b)+"->"+g0(this.c):"e_"+Qct(this)},bY(H4t,"TEdge",188),fIt(135,134,{3:1,135:1,94:1,134:1},E7),kGt.Ib=function(){var t,e,n,i,a;for(a=null,i=cmt(this.b,0);i.b!=i.d.c;)a+=(null==(n=jz(d4(i),86)).c||0==n.c.length?"n_"+n.g:"n_"+n.c)+"\n";for(e=cmt(this.a,0);e.b!=e.d.c;)a+=((t=jz(d4(e),188)).b&&t.c?g0(t.b)+"->"+g0(t.c):"e_"+Qct(t))+"\n";return a};var Hwe=bY(H4t,"TGraph",135);fIt(633,502,{3:1,502:1,633:1,94:1,134:1}),bY(H4t,"TShape",633),fIt(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},alt),kGt.Ib=function(){return g0(this)};var Uwe=bY(H4t,"TNode",86);fIt(255,1,bZt,db),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new hb(cmt(this.a.d,0))},bY(H4t,"TNode/2",255),fIt(358,1,ZGt,hb),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return jz(d4(this.a),188).c},kGt.Ob=function(){return x_(this.a)},kGt.Qb=function(){yet(this.a)},bY(H4t,"TNode/2/1",358),fIt(1840,1,QQt,BP),kGt.pf=function(t,e){M$t(this,jz(t,135),e)},bY(U4t,"FanProcessor",1840),fIt(327,22,{3:1,35:1,22:1,327:1,234:1},uT),kGt.Kf=function(){switch(this.g){case 0:return new Gv;case 1:return new BP;case 2:return new Io;case 3:return new Ao;case 4:return new Oo;case 5:return new Mo;default:throw $m(new Pw(k1t+(null!=this.f?this.f:""+this.g)))}};var Vwe,qwe,Wwe,Ywe,Gwe,Zwe,Kwe,Xwe,Jwe,Qwe,txe,exe,nxe,ixe,axe,rxe,oxe,sxe,cxe,lxe,uxe,dxe,hxe,fxe,gxe,pxe,bxe,mxe,yxe,vxe,wxe,xxe,Rxe,_xe,kxe,Exe,Cxe,Sxe,Txe,Axe,Dxe,Ixe,Lxe,Oxe,Mxe,Nxe=$nt(U4t,E1t,327,Vte,n8,D$);fIt(1843,1,QQt,Ao),kGt.pf=function(t,e){oLt(this,jz(t,135),e)},kGt.a=0,bY(U4t,"LevelHeightProcessor",1843),fIt(1844,1,bZt,Do),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return kK(),Ik(),dne},bY(U4t,"LevelHeightProcessor/1",1844),fIt(1841,1,QQt,Io),kGt.pf=function(t,e){ZSt(this,jz(t,135),e)},kGt.a=0,bY(U4t,"NeighborsProcessor",1841),fIt(1842,1,bZt,Lo),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return kK(),Ik(),dne},bY(U4t,"NeighborsProcessor/1",1842),fIt(1845,1,QQt,Oo),kGt.pf=function(t,e){rLt(this,jz(t,135),e)},kGt.a=0,bY(U4t,"NodePositionProcessor",1845),fIt(1839,1,QQt,Gv),kGt.pf=function(t,e){JHt(this,jz(t,135))},bY(U4t,"RootProcessor",1839),fIt(1846,1,QQt,Mo),kGt.pf=function(t,e){ght(jz(t,135))},bY(U4t,"Untreeifyer",1846),fIt(851,1,ZXt,kd),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,W4t),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),vxe),(CSt(),pEe)),jxe),Qht((imt(),lEe))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Y4t),""),"Search Order"),"Which search order to use when computing a spanning tree."),mxe),pEe),Gxe),Qht(lEe)))),PVt((new _d,t))},bY(G4t,"MrTreeMetaDataProvider",851),fIt(994,1,ZXt,_d),kGt.Qe=function(t){PVt(t)},bY(G4t,"MrTreeOptions",994),fIt(995,1,{},No),kGt.$e=function(){return new PP},kGt._e=function(t){},bY(G4t,"MrTreeOptions/MrtreeFactory",995),fIt(480,22,{3:1,35:1,22:1,480:1},dT);var Bxe,Pxe,Fxe,jxe=$nt(G4t,"OrderWeighting",480,Vte,XX,I$);fIt(425,22,{3:1,35:1,22:1,425:1},hT);var $xe,zxe,Hxe,Uxe,Vxe,qxe,Wxe,Yxe,Gxe=$nt(G4t,"TreeifyingOrder",425,Vte,KX,O$);fIt(1459,1,R4t,gd),kGt.Yf=function(t){return jz(t,135),Uxe},kGt.pf=function(t,e){vrt(this,jz(t,135),e)},bY("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1459),fIt(1460,1,R4t,pd),kGt.Yf=function(t){return jz(t,135),Vxe},kGt.pf=function(t,e){uTt(this,jz(t,135),e)},bY("org.eclipse.elk.alg.mrtree.p2order","NodeOrderer",1460),fIt(1461,1,R4t,fd),kGt.Yf=function(t){return jz(t,135),qxe},kGt.pf=function(t,e){QBt(this,jz(t,135),e)},kGt.a=0,bY("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1461),fIt(1462,1,R4t,bd),kGt.Yf=function(t){return jz(t,135),Wxe},kGt.pf=function(t,e){Mxt(jz(t,135),e)},bY("org.eclipse.elk.alg.mrtree.p4route","EdgeRouter",1462),fIt(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},fT),kGt.Kf=function(){return hgt(this)},kGt.Xf=function(){return hgt(this)};var Zxe,Kxe,Xxe,Jxe=$nt(X4t,"RadialLayoutPhases",495,Vte,JX,L$);fIt(1131,209,OJt,T_),kGt.Ze=function(t,e){var n,i,a;if(Akt(e,"Radial layout",RTt(this,t).c.length),zw(RB(JIt(t,(qwt(),ARe))))||wJ(new Rg((HE(),new Mw(t)))),a=okt(t),Kmt(t,(hB(),Yxe),a),!a)throw $m(new Pw("The given graph is not a tree!"));for(0==(n=Hw(_B(JIt(t,MRe))))&&(n=uAt(t)),Kmt(t,MRe,n),i=new Wf(RTt(this,t));i.a<i.c.c.length;)jz(J1(i),51).pf(t,yrt(e,1));zCt(e)},bY(X4t,"RadialLayoutProvider",1131),fIt(549,1,kXt,S_),kGt.ue=function(t,e){return NPt(this.a,this.b,jz(t,33),jz(e,33))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},kGt.a=0,kGt.b=0,bY(X4t,"RadialUtil/lambda$0$Type",549),fIt(1375,1,QQt,Po),kGt.pf=function(t,e){gVt(jz(t,33),e)},bY(t3t,"CalculateGraphSize",1375),fIt(442,22,{3:1,35:1,22:1,442:1,234:1},gT),kGt.Kf=function(){switch(this.g){case 0:return new Ho;case 1:return new Bo;case 2:return new Po;default:throw $m(new Pw(k1t+(null!=this.f?this.f:""+this.g)))}};var Qxe,tRe,eRe,nRe,iRe=$nt(t3t,E1t,442,Vte,N1,M$);fIt(645,1,{}),kGt.e=1,kGt.g=0,bY(e3t,"AbstractRadiusExtensionCompaction",645),fIt(1772,645,{},gB),kGt.hg=function(t){var e,n,i,a,r,o,s,c,l;for(this.c=jz(JIt(t,(hB(),Yxe)),33),Qh(this,this.c),this.d=Ryt(jz(JIt(t,(qwt(),NRe)),293)),(c=jz(JIt(t,_Re),19))&&Jh(this,c.a),tf(this,(vG(s=_B(JIt(t,(cGt(),ISe)))),s)),l=fBt(this.c),this.d&&this.d.lg(l),mFt(this,l),o=new Kw(Cst(Hx(UDe,1),n3t,33,0,[this.c])),n=0;n<2;n++)for(e=0;e<l.c.length;e++)a=new Kw(Cst(Hx(UDe,1),n3t,33,0,[(u1(e,l.c.length),jz(l.c[e],33))])),r=e<l.c.length-1?(u1(e+1,l.c.length),jz(l.c[e+1],33)):(u1(0,l.c.length),jz(l.c[0],33)),i=0==e?jz(OU(l,l.c.length-1),33):(u1(e-1,l.c.length),jz(l.c[e-1],33)),Jkt(this,(u1(e,l.c.length),jz(l.c[e],33),o),i,r,a)},bY(e3t,"AnnulusWedgeCompaction",1772),fIt(1374,1,QQt,Bo),kGt.pf=function(t,e){hRt(jz(t,33),e)},bY(e3t,"GeneralCompactor",1374),fIt(1771,645,{},Fo),kGt.hg=function(t){var e,n,i,a;n=jz(JIt(t,(hB(),Yxe)),33),this.f=n,this.b=Ryt(jz(JIt(t,(qwt(),NRe)),293)),(a=jz(JIt(t,_Re),19))&&Jh(this,a.a),tf(this,(vG(i=_B(JIt(t,(cGt(),ISe)))),i)),e=fBt(n),this.b&&this.b.lg(e),mSt(this,e)},kGt.a=0,bY(e3t,"RadialCompaction",1771),fIt(1779,1,{},jo),kGt.ig=function(t){var e,n,i,a,r,o;for(this.a=t,e=0,i=0,r=new Wf(o=fBt(t));r.a<r.c.c.length;)for(a=jz(J1(r),33),n=++i;n<o.c.length;n++)K$t(this,a,(u1(n,o.c.length),jz(o.c[n],33)))&&(e+=1);return e},bY(i3t,"CrossingMinimizationPosition",1779),fIt(1777,1,{},$o),kGt.ig=function(t){var e,n,a,r,o,s,c,l,d,h,f,g,p;for(a=0,n=new oq(XO(gOt(t).a.Kc(),new u));gIt(n);)e=jz(V6(n),79),d=(c=Ckt(jz(Yet((!e.c&&(e.c=new cF(NDe,e,5,8)),e.c),0),82))).i+c.g/2,h=c.j+c.f/2,r=t.i+t.g/2,o=t.j+t.f/2,(f=new HR).a=d-r,f.b=h-o,qxt(s=new OT(f.a,f.b),t.g,t.f),f.a-=s.a,f.b-=s.b,r=d-f.a,o=h-f.b,qxt(l=new OT(f.a,f.b),c.g,c.f),f.a-=l.a,f.b-=l.b,g=(d=r+f.a)-r,p=(h=o+f.b)-o,a+=i.Math.sqrt(g*g+p*p);return a},bY(i3t,"EdgeLengthOptimization",1777),fIt(1778,1,{},zo),kGt.ig=function(t){var e,n,a,r,o,s,c,l,d;for(a=0,n=new oq(XO(gOt(t).a.Kc(),new u));gIt(n);)e=jz(V6(n),79),s=(o=Ckt(jz(Yet((!e.c&&(e.c=new cF(NDe,e,5,8)),e.c),0),82))).i+o.g/2,c=o.j+o.f/2,r=jz(JIt(o,(cGt(),gSe)),8),l=s-(t.i+r.a+t.g/2),d=c-(t.j+r.b+t.f),a+=i.Math.sqrt(l*l+d*d);return a},bY(i3t,"EdgeLengthPositionOptimization",1778),fIt(1373,645,QQt,Ho),kGt.pf=function(t,e){uOt(this,jz(t,33),e)},bY("org.eclipse.elk.alg.radial.intermediate.overlaps","RadiusExtensionOverlapRemoval",1373),fIt(426,22,{3:1,35:1,22:1,426:1},pT);var aRe,rRe,oRe,sRe=$nt(r3t,"AnnulusWedgeCriteria",426,Vte,QX,N$);fIt(380,22,{3:1,35:1,22:1,380:1},bT);var cRe,lRe,uRe,dRe,hRe,fRe,gRe,pRe,bRe,mRe,yRe,vRe,wRe,xRe,RRe,_Re,kRe,ERe,CRe,SRe,TRe,ARe,DRe,IRe,LRe,ORe,MRe,NRe,BRe,PRe,FRe=$nt(r3t,jJt,380,Vte,B1,B$);fIt(852,1,ZXt,md),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,o3t),""),"Order ID"),"The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly."),nht(0)),(CSt(),mEe)),Dee),Qht((imt(),cEe))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,s3t),""),"Radius"),"The radius option can be used to set the initial radius for the radial layouter."),0),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,c3t),""),"Compaction"),"With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately."),gRe),pEe),FRe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,l3t),""),"Compaction Step Size"),"Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration."),nht(1)),mEe),Dee),Qht(lEe)))),a2(t,l3t,c3t,null),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,u3t),""),"Sorter"),"Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates."),wRe),pEe),ZRe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,d3t),""),"Annulus Wedge Criteria"),"Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals."),RRe),pEe),sRe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,h3t),""),"Translation Optimization"),"Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized."),bRe),pEe),VRe),Qht(lEe)))),tWt((new yd,t))},bY(r3t,"RadialMetaDataProvider",852),fIt(996,1,ZXt,yd),kGt.Qe=function(t){tWt(t)},bY(r3t,"RadialOptions",996),fIt(997,1,{},Uo),kGt.$e=function(){return new T_},kGt._e=function(t){},bY(r3t,"RadialOptions/RadialFactory",997),fIt(340,22,{3:1,35:1,22:1,340:1},mT);var jRe,$Re,zRe,HRe,URe,VRe=$nt(r3t,"RadialTranslationStrategy",340,Vte,x4,P$);fIt(293,22,{3:1,35:1,22:1,293:1},yT);var qRe,WRe,YRe,GRe,ZRe=$nt(r3t,"SortingStrategy",293,Vte,F1,F$);fIt(1449,1,R4t,Vo),kGt.Yf=function(t){return jz(t,33),null},kGt.pf=function(t,e){EOt(this,jz(t,33),e)},kGt.c=0,bY("org.eclipse.elk.alg.radial.p1position","EadesRadial",1449),fIt(1775,1,{},qo),kGt.jg=function(t){return qmt(t)},bY(g3t,"AnnulusWedgeByLeafs",1775),fIt(1776,1,{},Wo),kGt.jg=function(t){return G_t(this,t)},bY(g3t,"AnnulusWedgeByNodeSpace",1776),fIt(1450,1,R4t,Yo),kGt.Yf=function(t){return jz(t,33),null},kGt.pf=function(t,e){h_t(this,jz(t,33),e)},bY("org.eclipse.elk.alg.radial.p2routing","StraightLineEdgeRouter",1450),fIt(811,1,{},Kv),kGt.kg=function(t){},kGt.lg=function(t){Jm(this,t)},bY(p3t,"IDSorter",811),fIt(1774,1,kXt,Go),kGt.ue=function(t,e){return Zat(jz(t,33),jz(e,33))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(p3t,"IDSorter/lambda$0$Type",1774),fIt(1773,1,{},Dat),kGt.kg=function(t){i2(this,t)},kGt.lg=function(t){t.dc()||(this.e||i2(this,JU(jz(t.Xb(0),33))),Jm(this.e,t))},bY(p3t,"PolarCoordinateSorter",1773),fIt(1136,209,OJt,Zo),kGt.Ze=function(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k;if(Akt(e,"Rectangle Packing",1),e.n&&e.n&&t&&y0(e,o2(t),($lt(),oDe)),n=Hw(_B(JIt(t,(YLt(),u_e)))),g=jz(JIt(t,E_e),381),m=zw(RB(JIt(t,y_e))),w=zw(RB(JIt(t,k_e))),d=zw(RB(JIt(t,g_e))),x=jz(JIt(t,C_e),116),v=Hw(_B(JIt(t,D_e))),a=zw(RB(JIt(t,A_e))),h=zw(RB(JIt(t,p_e))),b=zw(RB(JIt(t,b_e))),k=Hw(_B(JIt(t,I_e))),!t.a&&(t.a=new tW(UDe,t,10,11)),_at(_=t.a),b){for(f=new Lm,c=new AO(_);c.e!=c.i.gc();)E5(o=jz(wmt(c),33),f_e)&&(f.c[f.c.length]=o);for(l=new Wf(f);l.a<l.c.c.length;)stt(_,o=jz(J1(l),33));for(kK(),mL(f,new Ko),u=new Wf(f);u.a<u.c.c.length;)o=jz(J1(u),33),R=jz(JIt(o,f_e),19).a,cht(_,R=i.Math.min(R,_.i),o);for(p=0,s=new AO(_);s.e!=s.i.gc();)Kmt(o=jz(wmt(s),33),h_e,nht(p)),++p}(y=WSt(t)).a-=x.b+x.c,y.b-=x.d+x.a,y.a,k<0||k<y.a?(r=AFt(new wz(n,g,m),_,v,x),e.n&&e.n&&t&&y0(e,o2(t),($lt(),oDe))):r=new tU(n,k,0,(KOt(),F_e)),y.a+=x.b+x.c,y.b+=x.d+x.a,w||(_at(_),r=wqt(new m4(n,d,h,a,v),_,i.Math.max(y.a,r.c),y,e,t,x)),bot(_,x),PWt(t,r.c+(x.b+x.c),r.b+(x.d+x.a),!1,!0),zw(RB(JIt(t,__e)))||wJ(new Rg((HE(),new Mw(t)))),e.n&&e.n&&t&&y0(e,o2(t),($lt(),oDe)),zCt(e)},bY(v3t,"RectPackingLayoutProvider",1136),fIt(1137,1,kXt,Ko),kGt.ue=function(t,e){return flt(jz(t,33),jz(e,33))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(v3t,"RectPackingLayoutProvider/lambda$0$Type",1137),fIt(1256,1,{},wz),kGt.a=0,kGt.c=!1,bY(w3t,"AreaApproximation",1256);var KRe=dU(w3t,"BestCandidateFilter");fIt(638,1,{526:1},Xo),kGt.mg=function(t,e,n){var a,r,o,s,c,l;for(l=new Lm,o=BKt,c=new Wf(t);c.a<c.c.c.length;)s=jz(J1(c),220),o=i.Math.min(o,(s.c+(n.b+n.c))*(s.b+(n.d+n.a)));for(r=new Wf(t);r.a<r.c.c.length;)((a=jz(J1(r),220)).c+(n.b+n.c))*(a.b+(n.d+n.a))==o&&(l.c[l.c.length]=a);return l},bY(w3t,"AreaFilter",638),fIt(639,1,{526:1},Jo),kGt.mg=function(t,e,n){var a,r,o,s,c,l;for(c=new Lm,l=BKt,s=new Wf(t);s.a<s.c.c.length;)o=jz(J1(s),220),l=i.Math.min(l,i.Math.abs((o.c+(n.b+n.c))/(o.b+(n.d+n.a))-e));for(r=new Wf(t);r.a<r.c.c.length;)a=jz(J1(r),220),i.Math.abs((a.c+(n.b+n.c))/(a.b+(n.d+n.a))-e)==l&&(c.c[c.c.length]=a);return c},bY(w3t,"AspectRatioFilter",639),fIt(637,1,{526:1},Qo),kGt.mg=function(t,e,n){var a,r,o,s,c,l;for(l=new Lm,o=PKt,c=new Wf(t);c.a<c.c.c.length;)s=jz(J1(c),220),o=i.Math.max(o,ZU(s.c+(n.b+n.c),s.b+(n.d+n.a),s.a));for(r=new Wf(t);r.a<r.c.c.length;)ZU((a=jz(J1(r),220)).c+(n.b+n.c),a.b+(n.d+n.a),a.a)==o&&(l.c[l.c.length]=a);return l},bY(w3t,"ScaleMeasureFilter",637),fIt(381,22,{3:1,35:1,22:1,381:1},vT);var XRe,JRe,QRe,t_e,e_e,n_e,i_e,a_e,r_e,o_e,s_e,c_e,l_e,u_e,d_e,h_e,f_e,g_e,p_e,b_e,m_e,y_e,v_e,w_e,x_e,R_e,__e,k_e,E_e,C_e,S_e,T_e,A_e,D_e,I_e,L_e=$nt(x3t,"OptimizationGoal",381,Vte,P1,j$);fIt(856,1,ZXt,Sd),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,R3t),""),"Optimization Goal"),"Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored."),s_e),(CSt(),pEe)),L_e),Qht((imt(),cEe))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,_3t),""),"Shift Last Placed."),"When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces."),(cM(),!0)),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,k3t),""),"Current position of a node in the order of nodes"),"The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node."),nht(-1)),mEe),Dee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,E3t),""),"Desired index of node"),"The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position."),nht(-1)),mEe),Dee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,C3t),""),"Only Area Approximation"),"If enabled only the width approximation step is executed and the nodes are placed accordingly. The nodes are layouted according to the packingStrategy. If set to true not expansion of nodes is taking place."),!1),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,S3t),""),"Compact Rows"),"Enables compaction. Compacts blocks if they do not use the full height of the row. This option allows to have a smaller drawing. If this option is disabled all nodes are placed next to each other in rows."),!0),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,T3t),""),"Fit Aspect Ratio"),"Expands nodes if expandNodes is true to fit the aspect ratio instead of only in their bounds. The option is only useful if the used packingStrategy is ASPECT_RATIO_DRIVEN, otherwise this may result in unreasonable ndoe expansion."),!1),fEe),wee),Qht(cEe)))),a2(t,T3t,D3t,null),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,A3t),""),"Target Width"),"Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding."),-1),gEe),Cee),Qht(cEe)))),OYt((new Td,t))},bY(x3t,"RectPackingMetaDataProvider",856),fIt(1004,1,ZXt,Td),kGt.Qe=function(t){OYt(t)},bY(x3t,"RectPackingOptions",1004),fIt(1005,1,{},ts),kGt.$e=function(){return new Zo},kGt._e=function(t){},bY(x3t,"RectPackingOptions/RectpackingFactory",1005),fIt(1257,1,{},m4),kGt.a=0,kGt.b=!1,kGt.c=0,kGt.d=0,kGt.e=!1,kGt.f=!1,kGt.g=0,bY("org.eclipse.elk.alg.rectpacking.seconditeration","RowFillingAndCompaction",1257),fIt(187,1,{187:1},rlt),kGt.a=0,kGt.c=!1,kGt.d=0,kGt.e=0,kGt.f=0,kGt.g=0,kGt.i=0,kGt.k=!1,kGt.o=BKt,kGt.p=BKt,kGt.r=0,kGt.s=0,kGt.t=0,bY(L3t,"Block",187),fIt(211,1,{211:1},NJ),kGt.a=0,kGt.b=0,kGt.d=0,kGt.e=0,kGt.f=0,bY(L3t,"BlockRow",211),fIt(443,1,{443:1},BJ),kGt.b=0,kGt.c=0,kGt.d=0,kGt.e=0,kGt.f=0,bY(L3t,"BlockStack",443),fIt(220,1,{220:1},tU,rgt),kGt.a=0,kGt.b=0,kGt.c=0,kGt.d=0,kGt.e=0;var O_e=bY(L3t,"DrawingData",220);fIt(355,22,{3:1,35:1,22:1,355:1},wT);var M_e,N_e,B_e,P_e,F_e,j_e,$_e=$nt(L3t,"DrawingDataDescriptor",355,Vte,L6,$$);fIt(200,1,{200:1},O0),kGt.b=0,kGt.c=0,kGt.e=0,kGt.f=0,bY(L3t,"RectRow",200),fIt(756,1,{},Rut),kGt.j=0,bY(M3t,p1t,756),fIt(1245,1,{},es),kGt.Je=function(t){return W5(t.a,t.b)},bY(M3t,b1t,1245),fIt(1246,1,{},fb),kGt.Je=function(t){return p7(this.a,t)},bY(M3t,m1t,1246),fIt(1247,1,{},gb),kGt.Je=function(t){return Amt(this.a,t)},bY(M3t,y1t,1247),fIt(1248,1,{},pb),kGt.Je=function(t){return oct(this.a,t)},bY(M3t,"ElkGraphImporter/lambda$3$Type",1248),fIt(1249,1,{},bb),kGt.Je=function(t){return nDt(this.a,t)},bY(M3t,v1t,1249),fIt(1133,209,OJt,D_),kGt.Ze=function(t,e){var n,i,a,r,o,s,c,l,u,d;for(E5(t,(kEt(),vke))&&(d=kB(JIt(t,($yt(),zke))),(r=WPt(ait(),d))&&jz(sJ(r.f),209).Ze(t,yrt(e,1))),Kmt(t,gke,(D7(),J_e)),Kmt(t,pke,(ICt(),ake)),Kmt(t,bke,(Lst(),Yke)),o=jz(JIt(t,($yt(),Pke)),19).a,Akt(e,"Overlap removal",1),zw(RB(JIt(t,Bke))),c=new mb(s=new Ny),n=UYt(i=new Rut,t),l=!0,a=0;a<o&&l;){if(zw(RB(JIt(t,Fke)))){if(s.a.$b(),zSt(new SL(c),n.i),0==s.a.gc())break;n.e=s}for(c2(this.b),CW(this.b,(Cft(),z_e),(TE(),Uke)),CW(this.b,H_e,n.g),CW(this.b,U_e,(SE(),Z_e)),this.a=IUt(this.b,n),u=new Wf(this.a);u.a<u.c.c.length;)jz(J1(u),51).pf(n,yrt(e,1));aRt(i,n),l=zw(RB(yEt(n,(Wrt(),Zae)))),++a}NVt(i,n),zCt(e)},bY(M3t,"OverlapRemovalLayoutProvider",1133),fIt(1134,1,{},mb),bY(M3t,"OverlapRemovalLayoutProvider/lambda$0$Type",1134),fIt(437,22,{3:1,35:1,22:1,437:1},xT);var z_e,H_e,U_e,V_e,q_e=$nt(M3t,"SPOrEPhases",437,Vte,j1,z$);fIt(1255,1,{},I_),bY(M3t,"ShrinkTree",1255),fIt(1135,209,OJt,Xv),kGt.Ze=function(t,e){var n,i,a,r;E5(t,(kEt(),vke))&&(r=kB(JIt(t,vke)),(a=WPt(ait(),r))&&jz(sJ(a.f),209).Ze(t,yrt(e,1))),n=UYt(i=new Rut,t),IOt(this.a,n,yrt(e,1)),NVt(i,n)},bY(M3t,"ShrinkTreeLayoutProvider",1135),fIt(300,134,{3:1,300:1,94:1,134:1},MJ),kGt.c=!1,bY("org.eclipse.elk.alg.spore.graph","Graph",300),fIt(482,22,{3:1,35:1,22:1,482:1,246:1,234:1},IE),kGt.Kf=function(){return elt(this)},kGt.Xf=function(){return elt(this)};var W_e,Y_e,G_e=$nt(N3t,jJt,482,Vte,BZ,H$);fIt(551,22,{3:1,35:1,22:1,551:1,246:1,234:1},bB),kGt.Kf=function(){return new rs},kGt.Xf=function(){return new rs};var Z_e,K_e,X_e=$nt(N3t,"OverlapRemovalStrategy",551,Vte,PZ,U$);fIt(430,22,{3:1,35:1,22:1,430:1},RT);var J_e,Q_e,tke,eke=$nt(N3t,"RootSelection",430,Vte,eJ,V$);fIt(316,22,{3:1,35:1,22:1,316:1},_T);var nke,ike,ake,rke,oke,ske,cke,lke,uke,dke,hke,fke,gke,pke,bke,mke,yke,vke,wke,xke,Rke,_ke,kke,Eke,Cke,Ske,Tke,Ake,Dke,Ike,Lke,Oke,Mke,Nke,Bke,Pke,Fke,jke,$ke,zke,Hke=$nt(N3t,"SpanningTreeCostFunction",316,Vte,A6,q$);fIt(1002,1,ZXt,wd),kGt.Qe=function(t){vHt(t)},bY(N3t,"SporeCompactionOptions",1002),fIt(1003,1,{},ns),kGt.$e=function(){return new Xv},kGt._e=function(t){},bY(N3t,"SporeCompactionOptions/SporeCompactionFactory",1003),fIt(855,1,ZXt,xd),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,P3t),""),"Underlying Layout Algorithm"),"A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction."),(CSt(),vEe)),zee),Qht((imt(),lEe))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,H3t),"structure"),"Structure Extraction Strategy"),"This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices."),Mke),pEe),qke),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,F3t),Y3t),"Tree Construction Strategy"),"Whether a minimum spanning tree or a maximum spanning tree should be constructed."),Lke),pEe),Zke),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,j3t),Y3t),"Cost Function for Spanning Tree"),"The cost function is used in the creation of the spanning tree."),Dke),pEe),Hke),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,$3t),Y3t),"Root node for spanning tree construction"),"The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen."),null),vEe),zee),Qht(lEe)))),a2(t,$3t,z3t,Cke),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,z3t),Y3t),"Root selection for spanning tree"),"This sets the method used to select a root node for the construction of a spanning tree"),Tke),pEe),eke),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,U3t),R2t),"Compaction Strategy"),"This option defines how the compaction is applied."),xke),pEe),G_e),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,V3t),R2t),"Orthogonal Compaction"),"Restricts the translation of nodes to orthogonal directions in the compaction phase."),(cM(),!1)),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,q3t),G3t),"Upper limit for iterations of overlap removal"),null),nht(64)),mEe),Dee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,W3t),G3t),"Whether to run a supplementary scanline overlap check."),null),!0),fEe),wee),Qht(lEe)))),DFt((new Rd,t)),vHt((new wd,t))},bY(N3t,"SporeMetaDataProvider",855),fIt(GZt,1,ZXt,Rd),kGt.Qe=function(t){DFt(t)},bY(N3t,"SporeOverlapRemovalOptions",GZt),fIt(1001,1,{},is),kGt.$e=function(){return new D_},kGt._e=function(t){},bY(N3t,"SporeOverlapRemovalOptions/SporeOverlapFactory",1001),fIt(530,22,{3:1,35:1,22:1,530:1,246:1,234:1},qG),kGt.Kf=function(){return nlt(this)},kGt.Xf=function(){return nlt(this)};var Uke,Vke,qke=$nt(N3t,"StructureExtractionStrategy",530,Vte,FZ,W$);fIt(429,22,{3:1,35:1,22:1,429:1,246:1,234:1},kT),kGt.Kf=function(){return fgt(this)},kGt.Xf=function(){return fgt(this)};var Wke,Yke,Gke,Zke=$nt(N3t,"TreeConstructionStrategy",429,Vte,tJ,Y$);fIt(1443,1,R4t,as),kGt.Yf=function(t){return jz(t,300),new j2},kGt.pf=function(t,e){_Rt(jz(t,300),e)},bY(K3t,"DelaunayTriangulationPhase",1443),fIt(1444,1,dZt,yb),kGt.td=function(t){Wz(this.a,jz(t,65).a)},bY(K3t,"DelaunayTriangulationPhase/lambda$0$Type",1444),fIt(783,1,R4t,Yv),kGt.Yf=function(t){return jz(t,300),new j2},kGt.pf=function(t,e){this.ng(jz(t,300),e)},kGt.ng=function(t,e){var n;Akt(e,"Minimum spanning tree construction",1),n=t.d?t.d.a:jz(OU(t.i,0),65).a,Pst(this,(zw(RB(yEt(t,(Wrt(),Gae)))),KHt(t.e,n,t.b)),t),zCt(e)},bY(X3t,"MinSTPhase",783),fIt(1446,783,R4t,yv),kGt.ng=function(t,e){var n,i;Akt(e,"Maximum spanning tree construction",1),n=new vb(t),i=t.d?t.d.c:jz(OU(t.i,0),65).c,Pst(this,(zw(RB(yEt(t,(Wrt(),Gae)))),KHt(t.e,i,n)),t),zCt(e)},bY(X3t,"MaxSTPhase",1446),fIt(1447,1,{},vb),kGt.Je=function(t){return ST(this.a,t)},bY(X3t,"MaxSTPhase/lambda$0$Type",1447),fIt(1445,1,dZt,wb),kGt.td=function(t){NL(this.a,jz(t,65))},bY(X3t,"MinSTPhase/lambda$0$Type",1445),fIt(785,1,R4t,rs),kGt.Yf=function(t){return jz(t,300),new j2},kGt.pf=function(t,e){Ykt(this,jz(t,300),e)},kGt.a=!1,bY(J3t,"GrowTreePhase",785),fIt(786,1,dZt,xz),kGt.td=function(t){est(this.a,this.b,this.c,jz(t,221))},bY(J3t,"GrowTreePhase/lambda$0$Type",786),fIt(1448,1,R4t,os),kGt.Yf=function(t){return jz(t,300),new j2},kGt.pf=function(t,e){tvt(this,jz(t,300),e)},bY(J3t,"ShrinkTreeCompactionPhase",1448),fIt(784,1,dZt,Rz),kGt.td=function(t){dIt(this.a,this.b,this.c,jz(t,221))},bY(J3t,"ShrinkTreeCompactionPhase/lambda$0$Type",784);var Kke,Xke,Jke=dU(v4t,"IGraphElementVisitor");fIt(860,1,{527:1},N0),kGt.og=function(t){var e;Hot(e=lPt(this,t),jz(NY(this.b,t),94)),vOt(this,t,e)},bY(MJt,"LayoutConfigurator",860);var Qke,tEe,eEe,nEe=dU(MJt,"LayoutConfigurator/IPropertyHolderOptionFilter");fIt(932,1,{1933:1},ss),kGt.pg=function(t,e){return Ost(),!t.Xe(e)},bY(MJt,"LayoutConfigurator/lambda$0$Type",932),fIt(933,1,{1933:1},cs),kGt.pg=function(t,e){return k_(t,e)},bY(MJt,"LayoutConfigurator/lambda$1$Type",933),fIt(931,1,{831:1},ls),kGt.qg=function(t,e){return Ost(),!t.Xe(e)},bY(MJt,"LayoutConfigurator/lambda$2$Type",931),fIt(934,1,NZt,IT),kGt.Mb=function(t){return ZG(this.a,this.b,jz(t,1933))},bY(MJt,"LayoutConfigurator/lambda$3$Type",934),fIt(858,1,{},us),bY(MJt,"RecursiveGraphLayoutEngine",858),fIt(296,60,$Zt,vy,nx),bY(MJt,"UnsupportedConfigurationException",296),fIt(453,60,$Zt,ix),bY(MJt,"UnsupportedGraphException",453),fIt(754,1,{}),bY(v4t,"AbstractRandomListAccessor",754),fIt(500,754,{},SMt),kGt.rg=function(){return null},kGt.d=!0,kGt.e=!0,kGt.f=0,bY(t6t,"AlgorithmAssembler",500),fIt(1236,1,NZt,ds),kGt.Mb=function(t){return!!jz(t,123)},bY(t6t,"AlgorithmAssembler/lambda$0$Type",1236),fIt(1237,1,{},xb),kGt.Kb=function(t){return dR(this.a,jz(t,123))},bY(t6t,"AlgorithmAssembler/lambda$1$Type",1237),fIt(1238,1,NZt,hs),kGt.Mb=function(t){return!!jz(t,80)},bY(t6t,"AlgorithmAssembler/lambda$2$Type",1238),fIt(1239,1,dZt,Rb),kGt.td=function(t){Xrt(this.a,jz(t,80))},bY(t6t,"AlgorithmAssembler/lambda$3$Type",1239),fIt(1240,1,dZt,LT),kGt.td=function(t){MN(this.a,this.b,jz(t,234))},bY(t6t,"AlgorithmAssembler/lambda$4$Type",1240),fIt(1355,1,kXt,fs),kGt.ue=function(t,e){return FK(jz(t,234),jz(e,234))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(t6t,"EnumBasedFactoryComparator",1355),fIt(80,754,{80:1},j2),kGt.rg=function(){return new Ny},kGt.a=0,bY(t6t,"LayoutProcessorConfiguration",80),fIt(1013,1,{527:1},Ad),kGt.og=function(t){Qrt(tEe,new _b(t))},bY(VXt,"DeprecatedLayoutOptionReplacer",1013),fIt(1014,1,dZt,gs),kGt.td=function(t){L8(jz(t,160))},bY(VXt,"DeprecatedLayoutOptionReplacer/lambda$0$Type",1014),fIt(1015,1,dZt,ps),kGt.td=function(t){_gt(jz(t,160))},bY(VXt,"DeprecatedLayoutOptionReplacer/lambda$1$Type",1015),fIt(1016,1,{},_b),kGt.Od=function(t,e){NN(this.a,jz(t,146),jz(e,38))},bY(VXt,"DeprecatedLayoutOptionReplacer/lambda$2$Type",1016),fIt(149,1,{686:1,149:1},kkt),kGt.Fb=function(t){return w6(this,t)},kGt.sg=function(){return this.b},kGt.tg=function(){return this.c},kGt.ne=function(){return this.e},kGt.Hb=function(){return myt(this.c)},kGt.Ib=function(){return"Layout Algorithm: "+this.c};var iEe,aEe=bY(VXt,"LayoutAlgorithmData",149);fIt(263,1,{},bs),bY(VXt,"LayoutAlgorithmData/Builder",263),fIt(1017,1,{527:1},ms),kGt.og=function(t){iO(t,239)&&!zw(RB(t.We((cGt(),UCe))))&&P$t(jz(t,33))},bY(VXt,"LayoutAlgorithmResolver",1017),fIt(229,1,{686:1,229:1},VQ),kGt.Fb=function(t){return!!iO(t,229)&&mF(this.b,jz(t,229).b)},kGt.sg=function(){return this.a},kGt.tg=function(){return this.b},kGt.ne=function(){return this.d},kGt.Hb=function(){return myt(this.b)},kGt.Ib=function(){return"Layout Type: "+this.b},bY(VXt,"LayoutCategoryData",229),fIt(344,1,{},ys),bY(VXt,"LayoutCategoryData/Builder",344),fIt(867,1,{},APt),bY(VXt,"LayoutMetaDataService",867),fIt(868,1,{},VY),bY(VXt,"LayoutMetaDataService/Registry",868),fIt(478,1,{478:1},vs),bY(VXt,"LayoutMetaDataService/Registry/Triple",478),fIt(869,1,e6t,ws),kGt.ug=function(){return new HR},bY(VXt,"LayoutMetaDataService/lambda$0$Type",869),fIt(870,1,n6t,xs),kGt.vg=function(t){return jL(jz(t,8))},bY(VXt,"LayoutMetaDataService/lambda$1$Type",870),fIt(879,1,e6t,Rs),kGt.ug=function(){return new Lm},bY(VXt,"LayoutMetaDataService/lambda$10$Type",879),fIt(880,1,n6t,_s),kGt.vg=function(t){return new QF(jz(t,12))},bY(VXt,"LayoutMetaDataService/lambda$11$Type",880),fIt(881,1,e6t,ks),kGt.ug=function(){return new Zk},bY(VXt,"LayoutMetaDataService/lambda$12$Type",881),fIt(882,1,n6t,Es),kGt.vg=function(t){return Uz(jz(t,68))},bY(VXt,"LayoutMetaDataService/lambda$13$Type",882),fIt(883,1,e6t,Cs),kGt.ug=function(){return new Ny},bY(VXt,"LayoutMetaDataService/lambda$14$Type",883),fIt(884,1,n6t,Ss),kGt.vg=function(t){return KK(jz(t,53))},bY(VXt,"LayoutMetaDataService/lambda$15$Type",884),fIt(885,1,e6t,Ts),kGt.ug=function(){return new lI},bY(VXt,"LayoutMetaDataService/lambda$16$Type",885),fIt(886,1,n6t,As),kGt.vg=function(t){return k3(jz(t,53))},bY(VXt,"LayoutMetaDataService/lambda$17$Type",886),fIt(887,1,e6t,Ds),kGt.ug=function(){return new Uy},bY(VXt,"LayoutMetaDataService/lambda$18$Type",887),fIt(888,1,n6t,Is),kGt.vg=function(t){return Hz(jz(t,208))},bY(VXt,"LayoutMetaDataService/lambda$19$Type",888),fIt(871,1,e6t,Ls),kGt.ug=function(){return new vv},bY(VXt,"LayoutMetaDataService/lambda$2$Type",871),fIt(872,1,n6t,Os),kGt.vg=function(t){return new BR(jz(t,74))},bY(VXt,"LayoutMetaDataService/lambda$3$Type",872),fIt(873,1,e6t,Ms),kGt.ug=function(){return new uv},bY(VXt,"LayoutMetaDataService/lambda$4$Type",873),fIt(874,1,n6t,Ns),kGt.vg=function(t){return new Aj(jz(t,142))},bY(VXt,"LayoutMetaDataService/lambda$5$Type",874),fIt(875,1,e6t,Ps),kGt.ug=function(){return new dv},bY(VXt,"LayoutMetaDataService/lambda$6$Type",875),fIt(876,1,n6t,Fs),kGt.vg=function(t){return new Tj(jz(t,116))},bY(VXt,"LayoutMetaDataService/lambda$7$Type",876),fIt(877,1,e6t,js),kGt.ug=function(){return new Js},bY(VXt,"LayoutMetaDataService/lambda$8$Type",877),fIt(878,1,n6t,$s),kGt.vg=function(t){return new ntt(jz(t,373))},bY(VXt,"LayoutMetaDataService/lambda$9$Type",878);var rEe=dU(TJt,"IProperty");fIt(23,1,{35:1,686:1,23:1,146:1},hSt),kGt.wd=function(t){return gO(this,jz(t,146))},kGt.Fb=function(t){return iO(t,23)?mF(this.f,jz(t,23).f):iO(t,146)&&mF(this.f,jz(t,146).tg())},kGt.wg=function(){var t;if(iO(this.b,4)){if(null==(t=Xpt(this.b)))throw $m(new Fw(s6t+this.f+"'. Make sure it's type is registered with the "+(xB(uIe),uIe.k)+a6t));return t}return this.b},kGt.sg=function(){return this.d},kGt.tg=function(){return this.f},kGt.ne=function(){return this.i},kGt.Hb=function(){return myt(this.f)},kGt.Ib=function(){return"Layout Option: "+this.f},bY(VXt,"LayoutOptionData",23),fIt(24,1,{},zs),bY(VXt,"LayoutOptionData/Builder",24),fIt(175,22,{3:1,35:1,22:1,175:1},AT);var oEe,sEe,cEe,lEe,uEe,dEe,hEe=$nt(VXt,"LayoutOptionData/Target",175,Vte,T6,G$);fIt(277,22,{3:1,35:1,22:1,277:1},DT);var fEe,gEe,pEe,bEe,mEe,yEe,vEe,wEe,xEe,REe,_Ee,kEe=$nt(VXt,"LayoutOptionData/Type",277,Vte,Fet,Z$);fIt(110,1,{110:1},dI,VZ,gX),kGt.Fb=function(t){var e;return!(null==t||!iO(t,110))&&(e=jz(t,110),iZ(this.c,e.c)&&iZ(this.d,e.d)&&iZ(this.b,e.b)&&iZ(this.a,e.a))},kGt.Hb=function(){return uut(Cst(Hx(Dte,1),zGt,1,5,[this.c,this.d,this.b,this.a]))},kGt.Ib=function(){return"Rect[x="+this.c+",y="+this.d+",w="+this.b+",h="+this.a+"]"},kGt.a=0,kGt.b=0,kGt.c=0,kGt.d=0,bY(u1t,"ElkRectangle",110),fIt(8,1,{3:1,4:1,8:1,414:1},HR,qQ,OT,hI),kGt.Fb=function(t){return Qit(this,t)},kGt.Hb=function(){return YD(this.a)+hwt(YD(this.b))},kGt.Jf=function(t){var e,n,i;for(n=0;n<t.length&&Mut((d1(n,t.length),t.charCodeAt(n)),s1t);)++n;for(e=t.length;e>0&&Mut((d1(e-1,t.length),t.charCodeAt(e-1)),c1t);)--e;if(n>=e)throw $m(new Pw("The given string does not contain any numbers."));if(2!=(i=wFt(t.substr(n,e-n),",|;|\r|\n")).length)throw $m(new Pw("Exactly two numbers are expected, "+i.length+" were found."));try{this.a=hCt(BEt(i[0])),this.b=hCt(BEt(i[1]))}catch(a){throw iO(a=dst(a),127)?$m(new Pw(l1t+a)):$m(a)}},kGt.Ib=function(){return"("+this.a+","+this.b+")"},kGt.a=0,kGt.b=0;var EEe=bY(u1t,"KVector",8);fIt(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},vv,BR,VN),kGt.Pc=function(){return Glt(this)},kGt.Jf=function(t){var e,n,i,a,r;n=wFt(t,",|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n"),yK(this);try{for(e=0,a=0,i=0,r=0;e<n.length;)null!=n[e]&&BEt(n[e]).length>0&&(a%2==0?i=hCt(n[e]):r=hCt(n[e]),a>0&&a%2!=0&&MH(this,new OT(i,r)),++a),++e}catch(o){throw iO(o=dst(o),127)?$m(new Pw("The given string does not match the expected format for vectors."+o)):$m(o)}},kGt.Ib=function(){var t,e,n;for(t=new uM("("),e=cmt(this,0);e.b!=e.d.c;)oD(t,(n=jz(d4(e),8)).a+","+n.b),e.b!=e.d.c&&(t.a+="; ");return(t.a+=")",t).a};var CEe=bY(u1t,"KVectorChain",74);fIt(248,22,{3:1,35:1,22:1,248:1},MT);var SEe,TEe,AEe,DEe,IEe,LEe,OEe,MEe,NEe,BEe,PEe,FEe,jEe,$Ee,zEe,HEe,UEe,VEe,qEe,WEe=$nt(l6t,"Alignment",248,Vte,K5,K$);fIt(979,1,ZXt,Dd),kGt.Qe=function(t){Ujt(t)},bY(l6t,"BoxLayouterOptions",979),fIt(980,1,{},Bs),kGt.$e=function(){return new qs},kGt._e=function(t){},bY(l6t,"BoxLayouterOptions/BoxFactory",980),fIt(291,22,{3:1,35:1,22:1,291:1},NT);var YEe,GEe,ZEe,KEe,XEe,JEe,QEe,tCe,eCe,nCe,iCe,aCe,rCe,oCe,sCe,cCe,lCe,uCe,dCe,hCe,fCe,gCe,pCe,bCe,mCe,yCe,vCe,wCe,xCe,RCe,_Ce,kCe,ECe,CCe,SCe,TCe,ACe,DCe,ICe,LCe,OCe,MCe,NCe,BCe,PCe,FCe,jCe,$Ce,zCe,HCe,UCe,VCe,qCe,WCe,YCe,GCe,ZCe,KCe,XCe,JCe,QCe,tSe,eSe,nSe,iSe,aSe,rSe,oSe,sSe,cSe,lSe,uSe,dSe,hSe,fSe,gSe,pSe,bSe,mSe,ySe,vSe,wSe,xSe,RSe,_Se,kSe,ESe,CSe,SSe,TSe,ASe,DSe,ISe,LSe,OSe,MSe,NSe,BSe=$nt(l6t,"ContentAlignment",291,Vte,Z5,X$);fIt(684,1,ZXt,Id),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,f6t),""),"Layout Algorithm"),"Select a specific layout algorithm."),(CSt(),vEe)),zee),Qht((imt(),lEe))))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,g6t),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),yEe),aEe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Y2t),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),nCe),pEe),WEe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,GJt),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,p6t),""),"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."),yEe),CEe),Qht(oEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,o4t),""),"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."),lCe),bEe),BSe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,W2t),""),"Debug Mode"),"Whether additional debug information shall be generated."),(cM(),!1)),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,X2t),""),_Jt),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),hCe),pEe),USe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,v2t),""),"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."),mCe),pEe),tTe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,D3t),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,g2t),""),"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`."),RCe),pEe),wTe),xV(lEe,Cst(Hx(hEe,1),IZt,175,0,[cEe]))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,ZJt),""),"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."),WCe),yEe),Ise),xV(lEe,Cst(Hx(hEe,1),IZt,175,0,[cEe]))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,xQt),""),"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),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,y4t),""),"interactive Layout"),"Whether the graph should be changeable interactively and by setting constraints"),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,kQt),""),"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),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,RQt),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),oSe),pEe),JTe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,p4t),""),"Position"),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),yEe),EEe),xV(cEe,Cst(Hx(hEe,1),IZt,175,0,[uEe,sEe]))))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,bQt),""),"Priority"),"Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."),mEe),Dee),xV(cEe,Cst(Hx(hEe,1),IZt,175,0,[oEe]))))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,vQt),""),"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)."),mEe),Dee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,wQt),""),"Separate Connected Components"),"Whether each connected component should be processed separately."),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,s4t),""),"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."),ACe),yEe),CEe),Qht(oEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,u4t),""),"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),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,d4t),""),"Hypernode"),"Whether the node should be handled as a hypernode."),!1),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,b6t),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),yEe),NMe),xV(lEe,Cst(Hx(hEe,1),IZt,175,0,[sEe]))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,b4t),""),"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."),ICe),yEe),xse),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,V2t),""),"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),fEe),wee),xV(cEe,Cst(Hx(hEe,1),IZt,175,0,[oEe,uEe,sEe]))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,m6t),""),"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),gEe),Cee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,y6t),""),"Animate"),"Whether the shift from the old layout to the new computed layout shall be animated."),!0),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,v6t),""),"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'."),nht(100)),mEe),Dee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,w6t),""),"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),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,x6t),""),"Maximal Animation Time"),"The maximal time for animations, in milliseconds."),nht(4e3)),mEe),Dee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,R6t),""),"Minimal Animation Time"),"The minimal time for animations, in milliseconds."),nht(400)),mEe),Dee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,_6t),""),"Progress Bar"),"Whether a progress bar shall be displayed during layout computations."),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,k6t),""),"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),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,E6t),""),"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),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,C6t),""),"Zoom to Fit"),"Whether the zoom level shall be set to view the whole diagram after layout."),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,h6t),"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."),oCe),pEe),iDe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,L2t),w2t),"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),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,O2t),w2t),"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),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,WJt),w2t),"Components Spacing"),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,M2t),w2t),"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),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,yQt),w2t),"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),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,N2t),w2t),"Edge Node Spacing"),"Spacing to be preserved between nodes and edges."),10),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,B2t),w2t),"Label Spacing"),"Determines the amount of space to be left between two labels of the same graph element."),0),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,j2t),w2t),"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),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,P2t),w2t),"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),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,F2t),w2t),"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),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,mQt),w2t),"Node Spacing"),"The minimal distance to be preserved between each two nodes."),20),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,$2t),w2t),"Node Self Loop Spacing"),"Spacing to be preserved between a node and its self loops."),10),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,z2t),w2t),"Port Spacing"),"Spacing between pairs of ports of the same node."),10),gEe),Cee),xV(lEe,Cst(Hx(hEe,1),IZt,175,0,[cEe]))))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,H2t),w2t),"Individual Spacing"),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),yEe),aDe),xV(cEe,Cst(Hx(hEe,1),IZt,175,0,[oEe,uEe,sEe]))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,m4t),w2t),"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."),MSe),yEe),xse),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,g4t),D6t),"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)."),mEe),Dee),xV(lEe,Cst(Hx(hEe,1),IZt,175,0,[cEe]))))),a2(t,g4t,f4t,KCe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,f4t),D6t),"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."),GCe),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,J2t),I6t),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),OCe),yEe),Ise),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,SQt),I6t),"Node Label Placement"),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),NCe),bEe),PTe),xV(cEe,Cst(Hx(hEe,1),IZt,175,0,[sEe]))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,e4t),L6t),"Port Alignment"),"Defines the default port distribution for a node. May be overridden for each side individually."),JCe),pEe),VTe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,n4t),L6t),"Port Alignment (North)"),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),pEe),VTe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,i4t),L6t),"Port Alignment (South)"),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),pEe),VTe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,a4t),L6t),"Port Alignment (West)"),"Defines how ports on the western side are placed, overriding the node's general port alignment."),pEe),VTe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,r4t),L6t),"Port Alignment (East)"),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),pEe),VTe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,CQt),O6t),"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."),PCe),bEe),$Ae),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,EQt),O6t),"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."),HCe),bEe),XAe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,$Qt),O6t),"Node Size Minimum"),"The minimal size to which a node can be reduced."),$Ce),yEe),EEe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,K2t),O6t),"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),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,c4t),D2t),"Edge Label Placement"),"Gives a hint on where to put edge labels."),pCe),pEe),GSe),Qht(sEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,_Qt),D2t),"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),fEe),wee),Qht(sEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,S6t),"font"),"Font Name"),"Font name used for a label."),vEe),zee),Qht(sEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,T6t),"font"),"Font Size"),"Font size used for a label."),mEe),Dee),Qht(sEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,h4t),M6t),"Port Anchor Offset"),"The offset to the port position where connections shall be attached."),yEe),EEe),Qht(uEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,l4t),M6t),"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."),mEe),Dee),Qht(uEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,q2t),M6t),"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."),fSe),pEe),MAe),Qht(uEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,U2t),M6t),"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."),gEe),Cee),Qht(uEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,TQt),N6t),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),uSe),bEe),oAe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Q2t),N6t),"Port Labels Next to Port"),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),!1),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,t4t),N6t),"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),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,G2t),B6t),"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),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Z2t),B6t),"Inside Self Loop"),"Whether a self loop should be routed inside a node instead of around that node."),!1),fEe),wee),Qht(oEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,YJt),"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),gEe),Cee),Qht(oEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,A6t),"edge"),"Edge Type"),"The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."),vCe),pEe),pTe),Qht(oEe)))),OE(t,new VQ(yR(wR(vR(new ys,f1t),"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.'))),OE(t,new VQ(yR(wR(vR(new ys,"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.'))),OE(t,new VQ(yR(wR(vR(new ys,pQt),"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."))),OE(t,new VQ(yR(wR(vR(new ys,"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."))),OE(t,new VQ(yR(wR(vR(new ys,K4t),"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."))),OE(t,new VQ(yR(wR(vR(new ys,"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."))),OE(t,new VQ(yR(wR(vR(new ys,f3t),"Radial"),"Radial layout algorithms usually position the nodes of the graph on concentric circles."))),hFt((new Ld,t)),Ujt((new Dd,t)),BBt((new Od,t))},bY(l6t,"CoreOptions",684),fIt(103,22,{3:1,35:1,22:1,103:1},BT);var PSe,FSe,jSe,$Se,zSe,HSe,USe=$nt(l6t,_Jt,103,Vte,C6,tz);fIt(272,22,{3:1,35:1,22:1,272:1},PT);var VSe,qSe,WSe,YSe,GSe=$nt(l6t,"EdgeLabelPlacement",272,Vte,z1,ez);fIt(218,22,{3:1,35:1,22:1,218:1},FT);var ZSe,KSe,XSe,JSe,QSe,tTe=$nt(l6t,"EdgeRouting",218,Vte,k4,nz);fIt(312,22,{3:1,35:1,22:1,312:1},jT);var eTe,nTe,iTe,aTe,rTe,oTe,sTe,cTe,lTe,uTe,dTe,hTe,fTe,gTe,pTe=$nt(l6t,"EdgeType",312,Vte,a8,iz);fIt(977,1,ZXt,Ld),kGt.Qe=function(t){hFt(t)},bY(l6t,"FixedLayouterOptions",977),fIt(978,1,{},Ks),kGt.$e=function(){return new Us},kGt._e=function(t){},bY(l6t,"FixedLayouterOptions/FixedFactory",978),fIt(334,22,{3:1,35:1,22:1,334:1},$T);var bTe,mTe,yTe,vTe,wTe=$nt(l6t,"HierarchyHandling",334,Vte,$1,az);fIt(285,22,{3:1,35:1,22:1,285:1},zT);var xTe,RTe,_Te,kTe,ETe,CTe=$nt(l6t,"LabelSide",285,Vte,_4,rz);fIt(93,22,{3:1,35:1,22:1,93:1},HT);var STe,TTe,ATe,DTe,ITe,LTe,OTe,MTe,NTe,BTe,PTe=$nt(l6t,"NodeLabelPlacement",93,Vte,wnt,oz);fIt(249,22,{3:1,35:1,22:1,249:1},UT);var FTe,jTe,$Te,zTe,HTe,UTe,VTe=$nt(l6t,"PortAlignment",249,Vte,S6,sz);fIt(98,22,{3:1,35:1,22:1,98:1},VT);var qTe,WTe,YTe,GTe,ZTe,KTe,XTe,JTe=$nt(l6t,"PortConstraints",98,Vte,k5,cz);fIt(273,22,{3:1,35:1,22:1,273:1},qT);var QTe,tAe,eAe,nAe,iAe,aAe,rAe,oAe=$nt(l6t,"PortLabelPlacement",273,Vte,i8,lz);fIt(61,22,{3:1,35:1,22:1,61:1},WT);var sAe,cAe,lAe,uAe,dAe,hAe,fAe,gAe,pAe,bAe,mAe,yAe,vAe,wAe,xAe,RAe,_Ae,kAe,EAe,CAe,SAe,TAe,AAe,DAe,IAe,LAe,OAe,MAe=$nt(l6t,"PortSide",61,Vte,c6,hz);fIt(981,1,ZXt,Od),kGt.Qe=function(t){BBt(t)},bY(l6t,"RandomLayouterOptions",981),fIt(982,1,{},Xs),kGt.$e=function(){return new ec},kGt._e=function(t){},bY(l6t,"RandomLayouterOptions/RandomFactory",982),fIt(374,22,{3:1,35:1,22:1,374:1},YT);var NAe,BAe,PAe,FAe,jAe,$Ae=$nt(l6t,"SizeConstraint",374,Vte,R4,uz);fIt(259,22,{3:1,35:1,22:1,259:1},GT);var zAe,HAe,UAe,VAe,qAe,WAe,YAe,GAe,ZAe,KAe,XAe=$nt(l6t,"SizeOptions",259,Vte,Rit,dz);fIt(370,1,{1949:1},qv),kGt.b=!1,kGt.c=0,kGt.d=-1,kGt.e=null,kGt.f=null,kGt.g=-1,kGt.j=!1,kGt.k=!1,kGt.n=!1,kGt.o=0,kGt.q=0,kGt.r=0,bY(v4t,"BasicProgressMonitor",370),fIt(972,209,OJt,qs),kGt.Ze=function(t,e){var n,i,a,r,o,s,c,l,u;0===(Akt(e,"Box layout",2),a=Uw(_B(JIt(t,(EEt(),qEe)))),r=jz(JIt(t,HEe),116),n=zw(RB(JIt(t,PEe))),i=zw(RB(JIt(t,FEe))),jz(JIt(t,NEe),311).g)?(s=new QF((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a)),kK(),mL(s,new kb(i)),o=s,c=WSt(t),(null==(l=_B(JIt(t,MEe)))||(vG(l),l<=0))&&(l=1.3),PWt(t,(u=zWt(o,a,r,c.a,c.b,n,(vG(l),l))).a,u.b,!1,!0)):wUt(t,a,r,n),zCt(e)},bY(v4t,"BoxLayoutProvider",972),fIt(973,1,kXt,kb),kGt.ue=function(t,e){return lMt(this,jz(t,33),jz(e,33))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},kGt.a=!1,bY(v4t,"BoxLayoutProvider/1",973),fIt(157,1,{157:1},Uet,UN),kGt.Ib=function(){return this.c?VPt(this.c):LEt(this.b)},bY(v4t,"BoxLayoutProvider/Group",157),fIt(311,22,{3:1,35:1,22:1,311:1},ZT);var JAe,QAe,tDe,eDe,nDe,iDe=$nt(v4t,"BoxLayoutProvider/PackingMode",311,Vte,E4,fz);fIt(974,1,kXt,Ws),kGt.ue=function(t,e){return MK(jz(t,157),jz(e,157))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(v4t,"BoxLayoutProvider/lambda$0$Type",974),fIt(975,1,kXt,Ys),kGt.ue=function(t,e){return iK(jz(t,157),jz(e,157))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(v4t,"BoxLayoutProvider/lambda$1$Type",975),fIt(976,1,kXt,Gs),kGt.ue=function(t,e){return aK(jz(t,157),jz(e,157))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(v4t,"BoxLayoutProvider/lambda$2$Type",976),fIt(1365,1,{831:1},Zs),kGt.qg=function(t,e){return AE(),!iO(e,160)||k_((Ost(),jz(t,160)),e)},bY(v4t,"ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type",1365),fIt(1366,1,dZt,Eb),kGt.td=function(t){Xlt(this.a,jz(t,146))},bY(v4t,"ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type",1366),fIt(1367,1,dZt,Vs),kGt.td=function(t){jz(t,94),AE()},bY(v4t,"ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type",1367),fIt(1371,1,dZt,Cb),kGt.td=function(t){Aat(this.a,jz(t,94))},bY(v4t,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1371),fIt(1369,1,NZt,KT),kGt.Mb=function(t){return Gct(this.a,this.b,jz(t,146))},bY(v4t,"ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type",1369),fIt(1368,1,NZt,XT),kGt.Mb=function(t){return DN(this.a,this.b,jz(t,831))},bY(v4t,"ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type",1368),fIt(1370,1,dZt,JT),kGt.td=function(t){Fq(this.a,this.b,jz(t,146))},bY(v4t,"ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type",1370),fIt(935,1,{},Hs),kGt.Kb=function(t){return yI(t)},kGt.Fb=function(t){return this===t},bY(v4t,"ElkUtil/lambda$0$Type",935),fIt(936,1,dZt,QT),kGt.td=function(t){iDt(this.a,this.b,jz(t,79))},kGt.a=0,kGt.b=0,bY(v4t,"ElkUtil/lambda$1$Type",936),fIt(937,1,dZt,tA),kGt.td=function(t){xw(this.a,this.b,jz(t,202))},kGt.a=0,kGt.b=0,bY(v4t,"ElkUtil/lambda$2$Type",937),fIt(938,1,dZt,eA),kGt.td=function(t){QI(this.a,this.b,jz(t,137))},kGt.a=0,kGt.b=0,bY(v4t,"ElkUtil/lambda$3$Type",938),fIt(939,1,dZt,Sb),kGt.td=function(t){iU(this.a,jz(t,469))},bY(v4t,"ElkUtil/lambda$4$Type",939),fIt(342,1,{35:1,342:1},Dm),kGt.wd=function(t){return bO(this,jz(t,236))},kGt.Fb=function(t){var e;return!!iO(t,342)&&(e=jz(t,342),this.a==e.a)},kGt.Hb=function(){return CJ(this.a)},kGt.Ib=function(){return this.a+" (exclusive)"},kGt.a=0,bY(v4t,"ExclusiveBounds/ExclusiveLowerBound",342),fIt(1138,209,OJt,Us),kGt.Ze=function(t,e){var n,a,r,o,s,c,l,d,h,f,g,p,b,m,y,v,w,x,R,_,k;for(Akt(e,"Fixed Layout",1),o=jz(JIt(t,(cGt(),bCe)),218),f=0,g=0,y=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));y.e!=y.i.gc();){for(b=jz(wmt(y),33),(k=jz(JIt(b,(Wlt(),gTe)),8))&&(kI(b,k.a,k.b),jz(JIt(b,lTe),174).Hc((ypt(),NAe))&&(p=jz(JIt(b,dTe),8)).a>0&&p.b>0&&PWt(b,p.a,p.b,!0,!0)),f=i.Math.max(f,b.i+b.g),g=i.Math.max(g,b.j+b.f),d=new AO((!b.n&&(b.n=new tW(HDe,b,1,7)),b.n));d.e!=d.i.gc();)c=jz(wmt(d),137),(k=jz(JIt(c,gTe),8))&&kI(c,k.a,k.b),f=i.Math.max(f,b.i+c.i+c.g),g=i.Math.max(g,b.j+c.j+c.f);for(x=new AO((!b.c&&(b.c=new tW(VDe,b,9,9)),b.c));x.e!=x.i.gc();)for(w=jz(wmt(x),118),(k=jz(JIt(w,gTe),8))&&kI(w,k.a,k.b),R=b.i+w.i,_=b.j+w.j,f=i.Math.max(f,R+w.g),g=i.Math.max(g,_+w.f),l=new AO((!w.n&&(w.n=new tW(HDe,w,1,7)),w.n));l.e!=l.i.gc();)c=jz(wmt(l),137),(k=jz(JIt(c,gTe),8))&&kI(c,k.a,k.b),f=i.Math.max(f,R+c.i+c.g),g=i.Math.max(g,_+c.j+c.f);for(r=new oq(XO(gOt(b).a.Kc(),new u));gIt(r);)h=FWt(n=jz(V6(r),79)),f=i.Math.max(f,h.a),g=i.Math.max(g,h.b);for(a=new oq(XO(fOt(b).a.Kc(),new u));gIt(a);)KJ(CEt(n=jz(V6(a),79)))!=t&&(h=FWt(n),f=i.Math.max(f,h.a),g=i.Math.max(g,h.b))}if(o==(kft(),ZSe))for(m=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));m.e!=m.i.gc();)for(a=new oq(XO(gOt(b=jz(wmt(m),33)).a.Kc(),new u));gIt(a);)0==(s=i$t(n=jz(V6(a),79))).b?Kmt(n,TCe,null):Kmt(n,TCe,s);zw(RB(JIt(t,(Wlt(),uTe))))||PWt(t,f+(v=jz(JIt(t,hTe),116)).b+v.c,g+v.d+v.a,!0,!0),zCt(e)},bY(v4t,"FixedLayoutProvider",1138),fIt(373,134,{3:1,414:1,373:1,94:1,134:1},Js,ntt),kGt.Jf=function(t){var e,n,i,a,r,o,s;if(t)try{for(o=wFt(t,";,;"),a=0,r=(i=o).length;a<r;++a){if(e=wFt(i[a],"\\:"),!(n=bVt(ait(),e[0])))throw $m(new Pw("Invalid option id: "+e[0]));if(null==(s=JUt(n,e[1])))throw $m(new Pw("Invalid option value: "+e[1]));null==s?(!this.q&&(this.q=new Om),b7(this.q,n)):(!this.q&&(this.q=new Om),YG(this.q,n,s))}}catch(c){throw iO(c=dst(c),102)?$m(new jlt(c)):$m(c)}},kGt.Ib=function(){return kB(E3(DZ((this.q?this.q:(kK(),kK(),lne)).vc().Oc(),new Qs),O9(new Zz,new Q,new G,new Z,Cst(Hx(Jne,1),IZt,132,0,[]))))};var aDe=bY(v4t,"IndividualSpacings",373);fIt(971,1,{},Qs),kGt.Kb=function(t){return NK(jz(t,42))},bY(v4t,"IndividualSpacings/lambda$0$Type",971),fIt(709,1,{},sV),kGt.c=0,bY(v4t,"InstancePool",709),fIt(1275,1,{},tc),bY(v4t,"LoggedGraph",1275),fIt(396,22,{3:1,35:1,22:1,396:1},iA);var rDe,oDe,sDe,cDe,lDe,uDe,dDe,hDe=$nt(v4t,"LoggedGraph/Type",396,Vte,C4,gz);fIt(46,1,{20:1,46:1},nA),kGt.Jc=function(t){t6(this,t)},kGt.Fb=function(t){var e,n,i;return!!iO(t,46)&&(n=jz(t,46),e=null==this.a?null==n.a:Odt(this.a,n.a),i=null==this.b?null==n.b:Odt(this.b,n.b),e&&i)},kGt.Hb=function(){var t,e,n;return t=-65536&(e=null==this.a?0:Qct(this.a)),e&ZZt^(-65536&(n=null==this.b?0:Qct(this.b)))>>16&ZZt|t^(n&ZZt)<<16},kGt.Kc=function(){return new Tb(this)},kGt.Ib=function(){return null==this.a&&null==this.b?"pair(null,null)":null==this.a?"pair(null,"+$ft(this.b)+")":null==this.b?"pair("+$ft(this.a)+",null)":"pair("+$ft(this.a)+","+$ft(this.b)+")"},bY(v4t,"Pair",46),fIt(983,1,ZGt,Tb),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return!this.c&&(!this.b&&null!=this.a.a||null!=this.a.b)},kGt.Pb=function(){if(!this.c&&!this.b&&null!=this.a.a)return this.b=!0,this.a.a;if(!this.c&&null!=this.a.b)return this.c=!0,this.a.b;throw $m(new yy)},kGt.Qb=function(){throw this.c&&null!=this.a.b?this.a.b=null:this.b&&null!=this.a.a&&(this.a.a=null),$m(new fy)},kGt.b=!1,kGt.c=!1,bY(v4t,"Pair/1",983),fIt(448,1,{448:1},YZ),kGt.Fb=function(t){return iZ(this.a,jz(t,448).a)&&iZ(this.c,jz(t,448).c)&&iZ(this.d,jz(t,448).d)&&iZ(this.b,jz(t,448).b)},kGt.Hb=function(){return uut(Cst(Hx(Dte,1),zGt,1,5,[this.a,this.c,this.d,this.b]))},kGt.Ib=function(){return"("+this.a+jGt+this.c+jGt+this.d+jGt+this.b+")"},bY(v4t,"Quadruple",448),fIt(1126,209,OJt,ec),kGt.Ze=function(t,e){var n;Akt(e,"Random Layout",1),0!=(!t.a&&(t.a=new tW(UDe,t,10,11)),t.a).i?(nWt(t,(n=jz(JIt(t,(mpt(),LAe)),19))&&0!=n.a?new C3(n.a):new cft,Uw(_B(JIt(t,AAe))),Uw(_B(JIt(t,OAe))),jz(JIt(t,DAe),116)),zCt(e)):zCt(e)},bY(v4t,"RandomLayoutProvider",1126),fIt(553,1,{}),kGt.qf=function(){return new OT(this.f.i,this.f.j)},kGt.We=function(t){return xX(t,(cGt(),aSe))?JIt(this.f,dDe):JIt(this.f,t)},kGt.rf=function(){return new OT(this.f.g,this.f.f)},kGt.sf=function(){return this.g},kGt.Xe=function(t){return E5(this.f,t)},kGt.tf=function(t){Cnt(this.f,t.a),Snt(this.f,t.b)},kGt.uf=function(t){Ent(this.f,t.a),knt(this.f,t.b)},kGt.vf=function(t){this.g=t},kGt.g=0,bY(z6t,"ElkGraphAdapters/AbstractElkGraphElementAdapter",553),fIt(554,1,{839:1},Ab),kGt.wf=function(){var t,e;if(!this.b)for(this.b=C2(mZ(this.a).i),e=new AO(mZ(this.a));e.e!=e.i.gc();)t=jz(wmt(e),137),Wz(this.b,new Nw(t));return this.b},kGt.b=null,bY(z6t,"ElkGraphAdapters/ElkEdgeAdapter",554),fIt(301,553,{},Mw),kGt.xf=function(){return ewt(this)},kGt.a=null,bY(z6t,"ElkGraphAdapters/ElkGraphAdapter",301),fIt(630,553,{181:1},Nw),bY(z6t,"ElkGraphAdapters/ElkLabelAdapter",630),fIt(629,553,{680:1},KM),kGt.wf=function(){return Qvt(this)},kGt.Af=function(){var t;return!(t=jz(JIt(this.f,(cGt(),DCe)),142))&&(t=new uv),t},kGt.Cf=function(){return twt(this)},kGt.Ef=function(t){var e;e=new Aj(t),Kmt(this.f,(cGt(),DCe),e)},kGt.Ff=function(t){Kmt(this.f,(cGt(),qCe),new Tj(t))},kGt.yf=function(){return this.d},kGt.zf=function(){var t,e;if(!this.a)for(this.a=new Lm,e=new oq(XO(fOt(jz(this.f,33)).a.Kc(),new u));gIt(e);)t=jz(V6(e),79),Wz(this.a,new Ab(t));return this.a},kGt.Bf=function(){var t,e;if(!this.c)for(this.c=new Lm,e=new oq(XO(gOt(jz(this.f,33)).a.Kc(),new u));gIt(e);)t=jz(V6(e),79),Wz(this.c,new Ab(t));return this.c},kGt.Df=function(){return 0!=ZK(jz(this.f,33)).i||zw(RB(jz(this.f,33).We((cGt(),kCe))))},kGt.Gf=function(){P9(this,(HE(),uDe))},kGt.a=null,kGt.b=null,kGt.c=null,kGt.d=null,kGt.e=null,bY(z6t,"ElkGraphAdapters/ElkNodeAdapter",629),fIt(1266,553,{838:1},om),kGt.wf=function(){return wwt(this)},kGt.zf=function(){var t,e;if(!this.a)for(this.a=sN(jz(this.f,118).xg().i),e=new AO(jz(this.f,118).xg());e.e!=e.i.gc();)t=jz(wmt(e),79),Wz(this.a,new Ab(t));return this.a},kGt.Bf=function(){var t,e;if(!this.c)for(this.c=sN(jz(this.f,118).yg().i),e=new AO(jz(this.f,118).yg());e.e!=e.i.gc();)t=jz(wmt(e),79),Wz(this.c,new Ab(t));return this.c},kGt.Hf=function(){return jz(jz(this.f,118).We((cGt(),hSe)),61)},kGt.If=function(){var t,e,n,i,a,r,o;for(i=WJ(jz(this.f,118)),n=new AO(jz(this.f,118).yg());n.e!=n.i.gc();)for(o=new AO((!(t=jz(wmt(n),79)).c&&(t.c=new cF(NDe,t,5,8)),t.c));o.e!=o.i.gc();){if(Set(Ckt(r=jz(wmt(o),82)),i))return!0;if(Ckt(r)==i&&zw(RB(JIt(t,(cGt(),ECe)))))return!0}for(e=new AO(jz(this.f,118).xg());e.e!=e.i.gc();)for(a=new AO((!(t=jz(wmt(e),79)).b&&(t.b=new cF(NDe,t,4,7)),t.b));a.e!=a.i.gc();)if(Set(Ckt(jz(wmt(a),82)),i))return!0;return!1},kGt.a=null,kGt.b=null,kGt.c=null,bY(z6t,"ElkGraphAdapters/ElkPortAdapter",1266),fIt(1267,1,kXt,nc),kGt.ue=function(t,e){return UPt(jz(t,118),jz(e,118))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(z6t,"ElkGraphAdapters/PortComparator",1267);var fDe,gDe,pDe,bDe,mDe,yDe,vDe,wDe,xDe,RDe,_De,kDe,EDe,CDe,SDe,TDe,ADe,DDe=dU(H6t,"EObject"),IDe=dU(U6t,V6t),LDe=dU(U6t,q6t),ODe=dU(U6t,W6t),MDe=dU(U6t,"ElkShape"),NDe=dU(U6t,Y6t),BDe=dU(U6t,G6t),PDe=dU(U6t,Z6t),FDe=dU(H6t,K6t),jDe=dU(H6t,"EFactory"),$De=dU(H6t,X6t),zDe=dU(H6t,"EPackage"),HDe=dU(U6t,J6t),UDe=dU(U6t,Q6t),VDe=dU(U6t,t7t);fIt(90,1,e7t),kGt.Jg=function(){return this.Kg(),null},kGt.Kg=function(){return null},kGt.Lg=function(){return this.Kg(),!1},kGt.Mg=function(){return!1},kGt.Ng=function(t){hot(this,t)},bY(n7t,"BasicNotifierImpl",90),fIt(97,90,u7t),kGt.nh=function(){return mI(this)},kGt.Og=function(t,e){return t},kGt.Pg=function(){throw $m(new py)},kGt.Qg=function(t){var e;return e=Syt(jz(eet(this.Tg(),this.Vg()),18)),this.eh().ih(this,e.n,e.f,t)},kGt.Rg=function(t,e){throw $m(new py)},kGt.Sg=function(t,e,n){return _jt(this,t,e,n)},kGt.Tg=function(){var t;return this.Pg()&&(t=this.Pg().ck())?t:this.zh()},kGt.Ug=function(){return aIt(this)},kGt.Vg=function(){throw $m(new py)},kGt.Wg=function(){var t,e;return!(e=this.ph().dk())&&this.Pg().ik((GE(),e=null==(t=uJ(H$t(this.Tg())))?ILe:new GM(this,t))),e},kGt.Xg=function(t,e){return t},kGt.Yg=function(t){return t.Gj()?t.aj():Dgt(this.Tg(),t)},kGt.Zg=function(){var t;return(t=this.Pg())?t.fk():null},kGt.$g=function(){return this.Pg()?this.Pg().ck():null},kGt._g=function(t,e,n){return Jmt(this,t,e,n)},kGt.ah=function(t){return k8(this,t)},kGt.bh=function(t,e){return Y6(this,t,e)},kGt.dh=function(){var t;return!!(t=this.Pg())&&t.gk()},kGt.eh=function(){throw $m(new py)},kGt.fh=function(){return Kpt(this)},kGt.gh=function(t,e,n,i){return Omt(this,t,e,i)},kGt.hh=function(t,e,n){return jz(eet(this.Tg(),e),66).Nj().Qj(this,this.yh(),e-this.Ah(),t,n)},kGt.ih=function(t,e,n,i){return oJ(this,t,e,i)},kGt.jh=function(t,e,n){return jz(eet(this.Tg(),e),66).Nj().Rj(this,this.yh(),e-this.Ah(),t,n)},kGt.kh=function(){return!!this.Pg()&&!!this.Pg().ek()},kGt.lh=function(t){return mmt(this,t)},kGt.mh=function(t){return XJ(this,t)},kGt.oh=function(t){return FUt(this,t)},kGt.ph=function(){throw $m(new py)},kGt.qh=function(){return this.Pg()?this.Pg().ek():null},kGt.rh=function(){return Kpt(this)},kGt.sh=function(t,e){vTt(this,t,e)},kGt.th=function(t){this.ph().hk(t)},kGt.uh=function(t){this.ph().kk(t)},kGt.vh=function(t){this.ph().jk(t)},kGt.wh=function(t,e){var n,i,a,r;return(r=this.Zg())&&t&&(e=Fmt(r.Vk(),this,e),r.Zk(this)),(i=this.eh())&&(pFt(this,this.eh(),this.Vg()).Bb&$Kt?(a=i.fh())&&(t?!r&&a.Zk(this):a.Yk(this)):(e=(n=this.Vg())>=0?this.Qg(e):this.eh().ih(this,-1-n,null,e),e=this.Sg(null,-1,e))),this.uh(t),e},kGt.xh=function(t){var e,n,i,a,r,o,s;if((r=Dgt(n=this.Tg(),t))>=(e=this.Ah()))return jz(t,66).Nj().Uj(this,this.yh(),r-e);if(r<=-1){if(!(o=jUt((TSt(),KLe),n,t)))throw $m(new Pw(i7t+t.ne()+o7t));if(XE(),jz(o,66).Oj()||(o=X1(j9(KLe,o))),a=jz((i=this.Yg(o))>=0?this._g(i,!0,!0):aDt(this,o,!0),153),(s=o.Zj())>1||-1==s)return jz(jz(a,215).hl(t,!1),76)}else if(t.$j())return jz((i=this.Yg(t))>=0?this._g(i,!1,!0):aDt(this,t,!1),76);return new SA(this,t)},kGt.yh=function(){return G9(this)},kGt.zh=function(){return(GY(),JIe).S},kGt.Ah=function(){return dY(this.zh())},kGt.Bh=function(t){ySt(this,t)},kGt.Ib=function(){return CLt(this)},bY(d7t,"BasicEObjectImpl",97),fIt(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1}),kGt.Ch=function(t){return Z9(this)[t]},kGt.Dh=function(t,e){DY(Z9(this),t,e)},kGt.Eh=function(t){DY(Z9(this),t,null)},kGt.Jg=function(){return jz(vot(this,4),126)},kGt.Kg=function(){throw $m(new py)},kGt.Lg=function(){return 0!=(4&this.Db)},kGt.Pg=function(){throw $m(new py)},kGt.Fh=function(t){lbt(this,2,t)},kGt.Rg=function(t,e){this.Db=e<<16|255&this.Db,this.Fh(t)},kGt.Tg=function(){return wX(this)},kGt.Vg=function(){return this.Db>>16},kGt.Wg=function(){var t;return GE(),null==(t=uJ(H$t(jz(vot(this,16),26)||this.zh())))?ILe:new GM(this,t)},kGt.Mg=function(){return 0==(1&this.Db)},kGt.Zg=function(){return jz(vot(this,128),1935)},kGt.$g=function(){return jz(vot(this,16),26)},kGt.dh=function(){return 0!=(32&this.Db)},kGt.eh=function(){return jz(vot(this,2),49)},kGt.kh=function(){return 0!=(64&this.Db)},kGt.ph=function(){throw $m(new py)},kGt.qh=function(){return jz(vot(this,64),281)},kGt.th=function(t){lbt(this,16,t)},kGt.uh=function(t){lbt(this,128,t)},kGt.vh=function(t){lbt(this,64,t)},kGt.yh=function(){return ubt(this)},kGt.Db=0,bY(d7t,"MinimalEObjectImpl",114),fIt(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),kGt.Fh=function(t){this.Cb=t},kGt.eh=function(){return this.Cb},bY(d7t,"MinimalEObjectImpl/Container",115),fIt(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),kGt._g=function(t,e,n){return Rwt(this,t,e,n)},kGt.jh=function(t,e,n){return eCt(this,t,e,n)},kGt.lh=function(t){return m0(this,t)},kGt.sh=function(t,e){ilt(this,t,e)},kGt.zh=function(){return SYt(),EDe},kGt.Bh=function(t){Vst(this,t)},kGt.Ve=function(){return dmt(this)},kGt.We=function(t){return JIt(this,t)},kGt.Xe=function(t){return E5(this,t)},kGt.Ye=function(t,e){return Kmt(this,t,e)},bY(h7t,"EMapPropertyHolderImpl",1985),fIt(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},rc),kGt._g=function(t,e,n){switch(t){case 0:return this.a;case 1:return this.b}return Jmt(this,t,e,n)},kGt.lh=function(t){switch(t){case 0:return 0!=this.a;case 1:return 0!=this.b}return mmt(this,t)},kGt.sh=function(t,e){switch(t){case 0:return void xnt(this,Hw(_B(e)));case 1:return void Rnt(this,Hw(_B(e)))}vTt(this,t,e)},kGt.zh=function(){return SYt(),pDe},kGt.Bh=function(t){switch(t){case 0:return void xnt(this,0);case 1:return void Rnt(this,0)}ySt(this,t)},kGt.Ib=function(){var t;return 64&this.Db?CLt(this):((t=new lM(CLt(this))).a+=" (x: ",b_(t,this.a),t.a+=", y: ",b_(t,this.b),t.a+=")",t.a)},kGt.a=0,kGt.b=0,bY(h7t,"ElkBendPointImpl",567),fIt(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),kGt._g=function(t,e,n){return Fdt(this,t,e,n)},kGt.hh=function(t,e,n){return jkt(this,t,e,n)},kGt.jh=function(t,e,n){return ist(this,t,e,n)},kGt.lh=function(t){return Rot(this,t)},kGt.sh=function(t,e){URt(this,t,e)},kGt.zh=function(){return SYt(),vDe},kGt.Bh=function(t){sdt(this,t)},kGt.zg=function(){return this.k},kGt.Ag=function(){return mZ(this)},kGt.Ib=function(){return Kht(this)},kGt.k=null,bY(h7t,"ElkGraphElementImpl",723),fIt(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),kGt._g=function(t,e,n){return Bft(this,t,e,n)},kGt.lh=function(t){return ugt(this,t)},kGt.sh=function(t,e){VRt(this,t,e)},kGt.zh=function(){return SYt(),kDe},kGt.Bh=function(t){Ngt(this,t)},kGt.Bg=function(){return this.f},kGt.Cg=function(){return this.g},kGt.Dg=function(){return this.i},kGt.Eg=function(){return this.j},kGt.Fg=function(t,e){_I(this,t,e)},kGt.Gg=function(t,e){kI(this,t,e)},kGt.Hg=function(t){Cnt(this,t)},kGt.Ig=function(t){Snt(this,t)},kGt.Ib=function(){return yCt(this)},kGt.f=0,kGt.g=0,kGt.i=0,kGt.j=0,bY(h7t,"ElkShapeImpl",724),fIt(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),kGt._g=function(t,e,n){return zyt(this,t,e,n)},kGt.hh=function(t,e,n){return gRt(this,t,e,n)},kGt.jh=function(t,e,n){return pRt(this,t,e,n)},kGt.lh=function(t){return Uct(this,t)},kGt.sh=function(t,e){LIt(this,t,e)},kGt.zh=function(){return SYt(),bDe},kGt.Bh=function(t){Mmt(this,t)},kGt.xg=function(){return!this.d&&(this.d=new cF(BDe,this,8,5)),this.d},kGt.yg=function(){return!this.e&&(this.e=new cF(BDe,this,7,4)),this.e},bY(h7t,"ElkConnectableShapeImpl",725),fIt(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ac),kGt.Qg=function(t){return kxt(this,t)},kGt._g=function(t,e,n){switch(t){case 3:return qJ(this);case 4:return!this.b&&(this.b=new cF(NDe,this,4,7)),this.b;case 5:return!this.c&&(this.c=new cF(NDe,this,5,8)),this.c;case 6:return!this.a&&(this.a=new tW(PDe,this,6,6)),this.a;case 7:return cM(),!this.b&&(this.b=new cF(NDe,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new cF(NDe,this,5,8)),this.c.i<=1));case 8:return cM(),!!QDt(this);case 9:return cM(),!!ZAt(this);case 10:return cM(),!this.b&&(this.b=new cF(NDe,this,4,7)),0!=this.b.i&&(!this.c&&(this.c=new cF(NDe,this,5,8)),0!=this.c.i)}return Fdt(this,t,e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 3:return this.Cb&&(n=(i=this.Db>>16)>=0?kxt(this,n):this.Cb.ih(this,-1-i,null,n)),YB(this,jz(t,33),n);case 4:return!this.b&&(this.b=new cF(NDe,this,4,7)),Kgt(this.b,t,n);case 5:return!this.c&&(this.c=new cF(NDe,this,5,8)),Kgt(this.c,t,n);case 6:return!this.a&&(this.a=new tW(PDe,this,6,6)),Kgt(this.a,t,n)}return jkt(this,t,e,n)},kGt.jh=function(t,e,n){switch(e){case 3:return YB(this,null,n);case 4:return!this.b&&(this.b=new cF(NDe,this,4,7)),Fmt(this.b,t,n);case 5:return!this.c&&(this.c=new cF(NDe,this,5,8)),Fmt(this.c,t,n);case 6:return!this.a&&(this.a=new tW(PDe,this,6,6)),Fmt(this.a,t,n)}return ist(this,t,e,n)},kGt.lh=function(t){switch(t){case 3:return!!qJ(this);case 4:return!!this.b&&0!=this.b.i;case 5:return!!this.c&&0!=this.c.i;case 6:return!!this.a&&0!=this.a.i;case 7:return!this.b&&(this.b=new cF(NDe,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new cF(NDe,this,5,8)),this.c.i<=1));case 8:return QDt(this);case 9:return ZAt(this);case 10:return!this.b&&(this.b=new cF(NDe,this,4,7)),0!=this.b.i&&(!this.c&&(this.c=new cF(NDe,this,5,8)),0!=this.c.i)}return Rot(this,t)},kGt.sh=function(t,e){switch(t){case 3:return void zOt(this,jz(e,33));case 4:return!this.b&&(this.b=new cF(NDe,this,4,7)),cUt(this.b),!this.b&&(this.b=new cF(NDe,this,4,7)),void pY(this.b,jz(e,14));case 5:return!this.c&&(this.c=new cF(NDe,this,5,8)),cUt(this.c),!this.c&&(this.c=new cF(NDe,this,5,8)),void pY(this.c,jz(e,14));case 6:return!this.a&&(this.a=new tW(PDe,this,6,6)),cUt(this.a),!this.a&&(this.a=new tW(PDe,this,6,6)),void pY(this.a,jz(e,14))}URt(this,t,e)},kGt.zh=function(){return SYt(),mDe},kGt.Bh=function(t){switch(t){case 3:return void zOt(this,null);case 4:return!this.b&&(this.b=new cF(NDe,this,4,7)),void cUt(this.b);case 5:return!this.c&&(this.c=new cF(NDe,this,5,8)),void cUt(this.c);case 6:return!this.a&&(this.a=new tW(PDe,this,6,6)),void cUt(this.a)}sdt(this,t)},kGt.Ib=function(){return dHt(this)},bY(h7t,"ElkEdgeImpl",352),fIt(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},oc),kGt.Qg=function(t){return cxt(this,t)},kGt._g=function(t,e,n){switch(t){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 DO(LDe,this,5)),this.a;case 6:return YJ(this);case 7:return e?Cyt(this):this.i;case 8:return e?Eyt(this):this.f;case 9:return!this.g&&(this.g=new cF(PDe,this,9,10)),this.g;case 10:return!this.e&&(this.e=new cF(PDe,this,10,9)),this.e;case 11:return this.d}return Rwt(this,t,e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 6:return this.Cb&&(n=(i=this.Db>>16)>=0?cxt(this,n):this.Cb.ih(this,-1-i,null,n)),GB(this,jz(t,79),n);case 9:return!this.g&&(this.g=new cF(PDe,this,9,10)),Kgt(this.g,t,n);case 10:return!this.e&&(this.e=new cF(PDe,this,10,9)),Kgt(this.e,t,n)}return jz(eet(jz(vot(this,16),26)||(SYt(),yDe),e),66).Nj().Qj(this,ubt(this),e-dY((SYt(),yDe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 5:return!this.a&&(this.a=new DO(LDe,this,5)),Fmt(this.a,t,n);case 6:return GB(this,null,n);case 9:return!this.g&&(this.g=new cF(PDe,this,9,10)),Fmt(this.g,t,n);case 10:return!this.e&&(this.e=new cF(PDe,this,10,9)),Fmt(this.e,t,n)}return eCt(this,t,e,n)},kGt.lh=function(t){switch(t){case 1:return 0!=this.j;case 2:return 0!=this.k;case 3:return 0!=this.b;case 4:return 0!=this.c;case 5:return!!this.a&&0!=this.a.i;case 6:return!!YJ(this);case 7:return!!this.i;case 8:return!!this.f;case 9:return!!this.g&&0!=this.g.i;case 10:return!!this.e&&0!=this.e.i;case 11:return null!=this.d}return m0(this,t)},kGt.sh=function(t,e){switch(t){case 1:return void Tnt(this,Hw(_B(e)));case 2:return void Dnt(this,Hw(_B(e)));case 3:return void _nt(this,Hw(_B(e)));case 4:return void Ant(this,Hw(_B(e)));case 5:return!this.a&&(this.a=new DO(LDe,this,5)),cUt(this.a),!this.a&&(this.a=new DO(LDe,this,5)),void pY(this.a,jz(e,14));case 6:return void jOt(this,jz(e,79));case 7:return void Oit(this,jz(e,82));case 8:return void Lit(this,jz(e,82));case 9:return!this.g&&(this.g=new cF(PDe,this,9,10)),cUt(this.g),!this.g&&(this.g=new cF(PDe,this,9,10)),void pY(this.g,jz(e,14));case 10:return!this.e&&(this.e=new cF(PDe,this,10,9)),cUt(this.e),!this.e&&(this.e=new cF(PDe,this,10,9)),void pY(this.e,jz(e,14));case 11:return void aat(this,kB(e))}ilt(this,t,e)},kGt.zh=function(){return SYt(),yDe},kGt.Bh=function(t){switch(t){case 1:return void Tnt(this,0);case 2:return void Dnt(this,0);case 3:return void _nt(this,0);case 4:return void Ant(this,0);case 5:return!this.a&&(this.a=new DO(LDe,this,5)),void cUt(this.a);case 6:return void jOt(this,null);case 7:return void Oit(this,null);case 8:return void Lit(this,null);case 9:return!this.g&&(this.g=new cF(PDe,this,9,10)),void cUt(this.g);case 10:return!this.e&&(this.e=new cF(PDe,this,10,9)),void cUt(this.e);case 11:return void aat(this,null)}Vst(this,t)},kGt.Ib=function(){return BDt(this)},kGt.b=0,kGt.c=0,kGt.d=null,kGt.j=0,kGt.k=0,bY(h7t,"ElkEdgeSectionImpl",439),fIt(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),kGt._g=function(t,e,n){return 0==t?(!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab):V8(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e,n)},kGt.hh=function(t,e,n){return 0==e?(!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n)):jz(eet(jz(vot(this,16),26)||this.zh(),e),66).Nj().Qj(this,ubt(this),e-dY(this.zh()),t,n)},kGt.jh=function(t,e,n){return 0==e?(!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n)):jz(eet(jz(vot(this,16),26)||this.zh(),e),66).Nj().Rj(this,ubt(this),e-dY(this.zh()),t,n)},kGt.lh=function(t){return 0==t?!!this.Ab&&0!=this.Ab.i:T4(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.oh=function(t){return lWt(this,t)},kGt.sh=function(t,e){if(0===t)return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));Lft(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e)},kGt.uh=function(t){lbt(this,128,t)},kGt.zh=function(){return pGt(),uLe},kGt.Bh=function(t){if(0===t)return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);Hdt(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.Gh=function(){this.Bb|=1},kGt.Hh=function(t){return Ojt(this,t)},kGt.Bb=0,bY(d7t,"EModelElementImpl",150),fIt(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},Md),kGt.Ih=function(t,e){return HVt(this,t,e)},kGt.Jh=function(t){var e,n,i,a;if(this.a!=qet(t)||256&t.Bb)throw $m(new Pw(y7t+t.zb+p7t));for(n=vX(t);0!=a3(n.a).i;){if(nwt(e=jz(eVt(n,0,iO(a=jz(Yet(a3(n.a),0),87).c,88)?jz(a,26):(pGt(),hLe)),26)))return jz(i=qet(e).Nh().Jh(e),49).th(t),i;n=vX(e)}return"java.util.Map$Entry"==(null!=t.D?t.D:t.B)?new lU(t):new wH(t)},kGt.Kh=function(t,e){return MYt(this,t,e)},kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.a}return V8(this,t-dY((pGt(),sLe)),eet(jz(vot(this,16),26)||sLe,t),e,n)},kGt.hh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 1:return this.a&&(n=jz(this.a,49).ih(this,4,zDe,n)),Xut(this,jz(t,235),n)}return jz(eet(jz(vot(this,16),26)||(pGt(),sLe),e),66).Nj().Qj(this,ubt(this),e-dY((pGt(),sLe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 1:return Xut(this,null,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),sLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),sLe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return!!this.a}return T4(this,t-dY((pGt(),sLe)),eet(jz(vot(this,16),26)||sLe,t))},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void MEt(this,jz(e,235))}Lft(this,t-dY((pGt(),sLe)),eet(jz(vot(this,16),26)||sLe,t),e)},kGt.zh=function(){return pGt(),sLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return void MEt(this,null)}Hdt(this,t-dY((pGt(),sLe)),eet(jz(vot(this,16),26)||sLe,t))},bY(d7t,"EFactoryImpl",704),fIt(w7t,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},sc),kGt.Ih=function(t,e){switch(t.yj()){case 12:return jz(e,146).tg();case 13:return $ft(e);default:throw $m(new Pw(g7t+t.ne()+p7t))}},kGt.Jh=function(t){var e;switch(-1==t.G&&(t.G=(e=qet(t))?oyt(e.Mh(),t):-1),t.G){case 4:return new cc;case 6:return new wv;case 7:return new xv;case 8:return new ac;case 9:return new rc;case 10:return new oc;case 11:return new uc;default:throw $m(new Pw(y7t+t.zb+p7t))}},kGt.Kh=function(t,e){switch(t.yj()){case 13:case 12:return null;default:throw $m(new Pw(g7t+t.ne()+p7t))}},bY(h7t,"ElkGraphFactoryImpl",w7t),fIt(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),kGt.Wg=function(){var t;return null==(t=uJ(H$t(jz(vot(this,16),26)||this.zh())))?(GE(),GE(),ILe):new WN(this,t)},kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.ne()}return V8(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb}return T4(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void this.Lh(kB(e))}Lft(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e)},kGt.zh=function(){return pGt(),dLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return void this.Lh(null)}Hdt(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.ne=function(){return this.zb},kGt.Lh=function(t){Oat(this,t)},kGt.Ib=function(){return wdt(this)},kGt.zb=null,bY(d7t,"ENamedElementImpl",438),fIt(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},bX),kGt.Qg=function(t){return fxt(this,t)},kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,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 Kq(this,jIe,this)),this.rb;case 6:return!this.vb&&(this.vb=new tF(zDe,this,6,7)),this.vb;case 7:return e?this.Db>>16==7?jz(this.Cb,235):null:GJ(this)}return V8(this,t-dY((pGt(),pLe)),eet(jz(vot(this,16),26)||pLe,t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 4:return this.sb&&(n=jz(this.sb,49).ih(this,1,jDe,n)),xdt(this,jz(t,471),n);case 5:return!this.rb&&(this.rb=new Kq(this,jIe,this)),Kgt(this.rb,t,n);case 6:return!this.vb&&(this.vb=new tF(zDe,this,6,7)),Kgt(this.vb,t,n);case 7:return this.Cb&&(n=(i=this.Db>>16)>=0?fxt(this,n):this.Cb.ih(this,-1-i,null,n)),_jt(this,t,7,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),pLe),e),66).Nj().Qj(this,ubt(this),e-dY((pGt(),pLe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 4:return xdt(this,null,n);case 5:return!this.rb&&(this.rb=new Kq(this,jIe,this)),Fmt(this.rb,t,n);case 6:return!this.vb&&(this.vb=new tF(zDe,this,6,7)),Fmt(this.vb,t,n);case 7:return _jt(this,null,7,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),pLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),pLe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.yb;case 3:return null!=this.xb;case 4:return!!this.sb;case 5:return!!this.rb&&0!=this.rb.i;case 6:return!!this.vb&&0!=this.vb.i;case 7:return!!GJ(this)}return T4(this,t-dY((pGt(),pLe)),eet(jz(vot(this,16),26)||pLe,t))},kGt.oh=function(t){return LMt(this,t)||lWt(this,t)},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void Oat(this,kB(e));case 2:return void Nat(this,kB(e));case 3:return void Mat(this,kB(e));case 4:return void nCt(this,jz(e,471));case 5:return!this.rb&&(this.rb=new Kq(this,jIe,this)),cUt(this.rb),!this.rb&&(this.rb=new Kq(this,jIe,this)),void pY(this.rb,jz(e,14));case 6:return!this.vb&&(this.vb=new tF(zDe,this,6,7)),cUt(this.vb),!this.vb&&(this.vb=new tF(zDe,this,6,7)),void pY(this.vb,jz(e,14))}Lft(this,t-dY((pGt(),pLe)),eet(jz(vot(this,16),26)||pLe,t),e)},kGt.vh=function(t){var e,n;if(t&&this.rb)for(n=new AO(this.rb);n.e!=n.i.gc();)iO(e=wmt(n),351)&&(jz(e,351).w=null);lbt(this,64,t)},kGt.zh=function(){return pGt(),pLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return void Oat(this,null);case 2:return void Nat(this,null);case 3:return void Mat(this,null);case 4:return void nCt(this,null);case 5:return!this.rb&&(this.rb=new Kq(this,jIe,this)),void cUt(this.rb);case 6:return!this.vb&&(this.vb=new tF(zDe,this,6,7)),void cUt(this.vb)}Hdt(this,t-dY((pGt(),pLe)),eet(jz(vot(this,16),26)||pLe,t))},kGt.Gh=function(){_wt(this)},kGt.Mh=function(){return!this.rb&&(this.rb=new Kq(this,jIe,this)),this.rb},kGt.Nh=function(){return this.sb},kGt.Oh=function(){return this.ub},kGt.Ph=function(){return this.xb},kGt.Qh=function(){return this.yb},kGt.Rh=function(t){this.ub=t},kGt.Ib=function(){var t;return 64&this.Db?wdt(this):((t=new lM(wdt(this))).a+=" (nsURI: ",iD(t,this.yb),t.a+=", nsPrefix: ",iD(t,this.xb),t.a+=")",t.a)},kGt.xb=null,kGt.yb=null,bY(d7t,"EPackageImpl",179),fIt(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},cIt),kGt.q=!1,kGt.r=!1;var qDe=!1;bY(h7t,"ElkGraphPackageImpl",555),fIt(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},cc),kGt.Qg=function(t){return lxt(this,t)},kGt._g=function(t,e,n){switch(t){case 7:return ZJ(this);case 8:return this.a}return Bft(this,t,e,n)},kGt.hh=function(t,e,n){var i;return 7===e?(this.Cb&&(n=(i=this.Db>>16)>=0?lxt(this,n):this.Cb.ih(this,-1-i,null,n)),YV(this,jz(t,160),n)):jkt(this,t,e,n)},kGt.jh=function(t,e,n){return 7==e?YV(this,null,n):ist(this,t,e,n)},kGt.lh=function(t){switch(t){case 7:return!!ZJ(this);case 8:return!mF("",this.a)}return ugt(this,t)},kGt.sh=function(t,e){switch(t){case 7:return void TMt(this,jz(e,160));case 8:return void Mit(this,kB(e))}VRt(this,t,e)},kGt.zh=function(){return SYt(),wDe},kGt.Bh=function(t){switch(t){case 7:return void TMt(this,null);case 8:return void Mit(this,"")}Ngt(this,t)},kGt.Ib=function(){return aSt(this)},kGt.a="",bY(h7t,"ElkLabelImpl",354),fIt(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},wv),kGt.Qg=function(t){return Ext(this,t)},kGt._g=function(t,e,n){switch(t){case 9:return!this.c&&(this.c=new tW(VDe,this,9,9)),this.c;case 10:return!this.a&&(this.a=new tW(UDe,this,10,11)),this.a;case 11:return KJ(this);case 12:return!this.b&&(this.b=new tW(BDe,this,12,3)),this.b;case 13:return cM(),!this.a&&(this.a=new tW(UDe,this,10,11)),this.a.i>0}return zyt(this,t,e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 9:return!this.c&&(this.c=new tW(VDe,this,9,9)),Kgt(this.c,t,n);case 10:return!this.a&&(this.a=new tW(UDe,this,10,11)),Kgt(this.a,t,n);case 11:return this.Cb&&(n=(i=this.Db>>16)>=0?Ext(this,n):this.Cb.ih(this,-1-i,null,n)),UP(this,jz(t,33),n);case 12:return!this.b&&(this.b=new tW(BDe,this,12,3)),Kgt(this.b,t,n)}return gRt(this,t,e,n)},kGt.jh=function(t,e,n){switch(e){case 9:return!this.c&&(this.c=new tW(VDe,this,9,9)),Fmt(this.c,t,n);case 10:return!this.a&&(this.a=new tW(UDe,this,10,11)),Fmt(this.a,t,n);case 11:return UP(this,null,n);case 12:return!this.b&&(this.b=new tW(BDe,this,12,3)),Fmt(this.b,t,n)}return pRt(this,t,e,n)},kGt.lh=function(t){switch(t){case 9:return!!this.c&&0!=this.c.i;case 10:return!!this.a&&0!=this.a.i;case 11:return!!KJ(this);case 12:return!!this.b&&0!=this.b.i;case 13:return!this.a&&(this.a=new tW(UDe,this,10,11)),this.a.i>0}return Uct(this,t)},kGt.sh=function(t,e){switch(t){case 9:return!this.c&&(this.c=new tW(VDe,this,9,9)),cUt(this.c),!this.c&&(this.c=new tW(VDe,this,9,9)),void pY(this.c,jz(e,14));case 10:return!this.a&&(this.a=new tW(UDe,this,10,11)),cUt(this.a),!this.a&&(this.a=new tW(UDe,this,10,11)),void pY(this.a,jz(e,14));case 11:return void QOt(this,jz(e,33));case 12:return!this.b&&(this.b=new tW(BDe,this,12,3)),cUt(this.b),!this.b&&(this.b=new tW(BDe,this,12,3)),void pY(this.b,jz(e,14))}LIt(this,t,e)},kGt.zh=function(){return SYt(),xDe},kGt.Bh=function(t){switch(t){case 9:return!this.c&&(this.c=new tW(VDe,this,9,9)),void cUt(this.c);case 10:return!this.a&&(this.a=new tW(UDe,this,10,11)),void cUt(this.a);case 11:return void QOt(this,null);case 12:return!this.b&&(this.b=new tW(BDe,this,12,3)),void cUt(this.b)}Mmt(this,t)},kGt.Ib=function(){return VPt(this)},bY(h7t,"ElkNodeImpl",239),fIt(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},xv),kGt.Qg=function(t){return uxt(this,t)},kGt._g=function(t,e,n){return 9==t?WJ(this):zyt(this,t,e,n)},kGt.hh=function(t,e,n){var i;return 9===e?(this.Cb&&(n=(i=this.Db>>16)>=0?uxt(this,n):this.Cb.ih(this,-1-i,null,n)),ZB(this,jz(t,33),n)):gRt(this,t,e,n)},kGt.jh=function(t,e,n){return 9==e?ZB(this,null,n):pRt(this,t,e,n)},kGt.lh=function(t){return 9==t?!!WJ(this):Uct(this,t)},kGt.sh=function(t,e){9!==t?LIt(this,t,e):$Ot(this,jz(e,33))},kGt.zh=function(){return SYt(),RDe},kGt.Bh=function(t){9!==t?Mmt(this,t):$Ot(this,null)},kGt.Ib=function(){return qPt(this)},bY(h7t,"ElkPortImpl",186);var WDe=dU($7t,"BasicEMap/Entry");fIt(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},uc),kGt.Fb=function(t){return this===t},kGt.cd=function(){return this.b},kGt.Hb=function(){return EM(this)},kGt.Uh=function(t){Nit(this,jz(t,146))},kGt._g=function(t,e,n){switch(t){case 0:return this.b;case 1:return this.c}return Jmt(this,t,e,n)},kGt.lh=function(t){switch(t){case 0:return!!this.b;case 1:return null!=this.c}return mmt(this,t)},kGt.sh=function(t,e){switch(t){case 0:return void Nit(this,jz(e,146));case 1:return void Fit(this,e)}vTt(this,t,e)},kGt.zh=function(){return SYt(),_De},kGt.Bh=function(t){switch(t){case 0:return void Nit(this,null);case 1:return void Fit(this,null)}ySt(this,t)},kGt.Sh=function(){var t;return-1==this.a&&(t=this.b,this.a=t?Qct(t):0),this.a},kGt.dd=function(){return this.c},kGt.Th=function(t){this.a=t},kGt.ed=function(t){var e;return e=this.c,Fit(this,t),e},kGt.Ib=function(){var t;return 64&this.Db?CLt(this):(oD(oD(oD(t=new Cx,this.b?this.b.tg():VGt),e1t),vM(this.c)),t.a)},kGt.a=-1,kGt.c=null;var YDe=bY(h7t,"ElkPropertyToValueMapEntryImpl",1092);fIt(984,1,{},fc),bY(U7t,"JsonAdapter",984),fIt(210,60,$Zt,tx),bY(U7t,"JsonImportException",210),fIt(857,1,{},gxt),bY(U7t,"JsonImporter",857),fIt(891,1,{},aA),bY(U7t,"JsonImporter/lambda$0$Type",891),fIt(892,1,{},rA),bY(U7t,"JsonImporter/lambda$1$Type",892),fIt(900,1,{},Db),bY(U7t,"JsonImporter/lambda$10$Type",900),fIt(902,1,{},oA),bY(U7t,"JsonImporter/lambda$11$Type",902),fIt(903,1,{},sA),bY(U7t,"JsonImporter/lambda$12$Type",903),fIt(909,1,{},lK),bY(U7t,"JsonImporter/lambda$13$Type",909),fIt(908,1,{},cK),bY(U7t,"JsonImporter/lambda$14$Type",908),fIt(904,1,{},cA),bY(U7t,"JsonImporter/lambda$15$Type",904),fIt(905,1,{},lA),bY(U7t,"JsonImporter/lambda$16$Type",905),fIt(906,1,{},uA),bY(U7t,"JsonImporter/lambda$17$Type",906),fIt(907,1,{},dA),bY(U7t,"JsonImporter/lambda$18$Type",907),fIt(912,1,{},Ib),bY(U7t,"JsonImporter/lambda$19$Type",912),fIt(893,1,{},Lb),bY(U7t,"JsonImporter/lambda$2$Type",893),fIt(910,1,{},Ob),bY(U7t,"JsonImporter/lambda$20$Type",910),fIt(911,1,{},Mb),bY(U7t,"JsonImporter/lambda$21$Type",911),fIt(915,1,{},Nb),bY(U7t,"JsonImporter/lambda$22$Type",915),fIt(913,1,{},Bb),bY(U7t,"JsonImporter/lambda$23$Type",913),fIt(914,1,{},Pb),bY(U7t,"JsonImporter/lambda$24$Type",914),fIt(917,1,{},Fb),bY(U7t,"JsonImporter/lambda$25$Type",917),fIt(916,1,{},jb),bY(U7t,"JsonImporter/lambda$26$Type",916),fIt(918,1,dZt,hA),kGt.td=function(t){x8(this.b,this.a,kB(t))},bY(U7t,"JsonImporter/lambda$27$Type",918),fIt(919,1,dZt,fA),kGt.td=function(t){R8(this.b,this.a,kB(t))},bY(U7t,"JsonImporter/lambda$28$Type",919),fIt(920,1,{},gA),bY(U7t,"JsonImporter/lambda$29$Type",920),fIt(896,1,{},$b),bY(U7t,"JsonImporter/lambda$3$Type",896),fIt(921,1,{},pA),bY(U7t,"JsonImporter/lambda$30$Type",921),fIt(922,1,{},zb),bY(U7t,"JsonImporter/lambda$31$Type",922),fIt(923,1,{},Hb),bY(U7t,"JsonImporter/lambda$32$Type",923),fIt(924,1,{},Ub),bY(U7t,"JsonImporter/lambda$33$Type",924),fIt(925,1,{},Vb),bY(U7t,"JsonImporter/lambda$34$Type",925),fIt(859,1,{},qb),bY(U7t,"JsonImporter/lambda$35$Type",859),fIt(929,1,{},_z),bY(U7t,"JsonImporter/lambda$36$Type",929),fIt(926,1,dZt,Wb),kGt.td=function(t){Z3(this.a,jz(t,469))},bY(U7t,"JsonImporter/lambda$37$Type",926),fIt(927,1,dZt,kA),kGt.td=function(t){uD(this.a,this.b,jz(t,202))},bY(U7t,"JsonImporter/lambda$38$Type",927),fIt(928,1,dZt,EA),kGt.td=function(t){dD(this.a,this.b,jz(t,202))},bY(U7t,"JsonImporter/lambda$39$Type",928),fIt(894,1,{},Yb),bY(U7t,"JsonImporter/lambda$4$Type",894),fIt(930,1,dZt,Gb),kGt.td=function(t){K3(this.a,jz(t,8))},bY(U7t,"JsonImporter/lambda$40$Type",930),fIt(895,1,{},Zb),bY(U7t,"JsonImporter/lambda$5$Type",895),fIt(899,1,{},Kb),bY(U7t,"JsonImporter/lambda$6$Type",899),fIt(897,1,{},Xb),bY(U7t,"JsonImporter/lambda$7$Type",897),fIt(898,1,{},Jb),bY(U7t,"JsonImporter/lambda$8$Type",898),fIt(901,1,{},Qb),bY(U7t,"JsonImporter/lambda$9$Type",901),fIt(948,1,dZt,tm),kGt.td=function(t){JY(this.a,new HY(kB(t)))},bY(U7t,"JsonMetaDataConverter/lambda$0$Type",948),fIt(949,1,dZt,em),kGt.td=function(t){PY(this.a,jz(t,237))},bY(U7t,"JsonMetaDataConverter/lambda$1$Type",949),fIt(950,1,dZt,nm),kGt.td=function(t){QQ(this.a,jz(t,149))},bY(U7t,"JsonMetaDataConverter/lambda$2$Type",950),fIt(951,1,dZt,im),kGt.td=function(t){FY(this.a,jz(t,175))},bY(U7t,"JsonMetaDataConverter/lambda$3$Type",951),fIt(237,22,{3:1,35:1,22:1,237:1},_A);var GDe,ZDe,KDe,XDe,JDe,QDe,tIe,eIe,nIe,iIe=$nt(TJt,"GraphFeature",237,Vte,Pet,pz);fIt(13,1,{35:1,146:1},rm,eP,DD,qI),kGt.wd=function(t){return pO(this,jz(t,146))},kGt.Fb=function(t){return xX(this,t)},kGt.wg=function(){return ymt(this)},kGt.tg=function(){return this.b},kGt.Hb=function(){return myt(this.b)},kGt.Ib=function(){return this.b},bY(TJt,"Property",13),fIt(818,1,kXt,am),kGt.ue=function(t,e){return Fht(this,jz(t,94),jz(e,94))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(TJt,"PropertyHolderComparator",818),fIt(695,1,ZGt,sm),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return A8(this)},kGt.Qb=function(){r_()},kGt.Ob=function(){return!!this.a},bY(a5t,"ElkGraphUtil/AncestorIterator",695);var aIe=dU($7t,"EList");fIt(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1}),kGt.Vc=function(t,e){cht(this,t,e)},kGt.Fc=function(t){return l8(this,t)},kGt.Wc=function(t,e){return sct(this,t,e)},kGt.Gc=function(t){return pY(this,t)},kGt.Zh=function(){return new aN(this)},kGt.$h=function(){return new rN(this)},kGt._h=function(t){return cit(this,t)},kGt.ai=function(){return!0},kGt.bi=function(t,e){},kGt.ci=function(){},kGt.di=function(t,e){I5(this,t,e)},kGt.ei=function(t,e,n){},kGt.fi=function(t,e){},kGt.gi=function(t,e,n){},kGt.Fb=function(t){return ZBt(this,t)},kGt.Hb=function(){return kst(this)},kGt.hi=function(){return!1},kGt.Kc=function(){return new AO(this)},kGt.Yc=function(){return new iN(this)},kGt.Zc=function(t){var e;if(e=this.gc(),t<0||t>e)throw $m(new QP(t,e));return new HW(this,t)},kGt.ji=function(t,e){this.ii(t,this.Xc(e))},kGt.Mc=function(t){return stt(this,t)},kGt.li=function(t,e){return e},kGt._c=function(t,e){return syt(this,t,e)},kGt.Ib=function(){return Xft(this)},kGt.ni=function(){return!0},kGt.oi=function(t,e){return Mlt(this,e)},bY($7t,"AbstractEList",67),fIt(63,67,l5t,bc,pet,xrt),kGt.Vh=function(t,e){return $kt(this,t,e)},kGt.Wh=function(t){return hvt(this,t)},kGt.Xh=function(t,e){Tdt(this,t,e)},kGt.Yh=function(t){i7(this,t)},kGt.pi=function(t){return F8(this,t)},kGt.$b=function(){a7(this)},kGt.Hc=function(t){return ERt(this,t)},kGt.Xb=function(t){return Yet(this,t)},kGt.qi=function(t){var e,n,i;++this.j,t>(n=null==this.g?0:this.g.length)&&(i=this.g,(e=n+(n/2|0)+4)<t&&(e=t),this.g=this.ri(e),null!=i&&rHt(i,0,this.g,0,this.i))},kGt.Xc=function(t){return Ywt(this,t)},kGt.dc=function(){return 0==this.i},kGt.ii=function(t,e){return KAt(this,t,e)},kGt.ri=function(t){return O5(Dte,zGt,1,t,5,1)},kGt.ki=function(t){return this.g[t]},kGt.$c=function(t){return Lwt(this,t)},kGt.mi=function(t,e){return ott(this,t,e)},kGt.gc=function(){return this.i},kGt.Pc=function(){return L4(this)},kGt.Qc=function(t){return Zgt(this,t)},kGt.i=0;var rIe=bY($7t,"BasicEList",63),oIe=dU($7t,"TreeIterator");fIt(694,63,u5t),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return null!=this.g||this.c?null==this.g||0!=this.i&&jz(this.g[this.i-1],47).Ob():QJ(this)},kGt.Pb=function(){return rOt(this)},kGt.Qb=function(){if(!this.e)throw $m(new Fw("There is no valid object to remove."));this.e.Qb()},kGt.c=!1,bY($7t,"AbstractTreeIterator",694),fIt(685,694,u5t,TI),kGt.si=function(t){var e;return iO(e=jz(t,56).Wg().Kc(),279)&&jz(e,279).Nk(new gc),e},bY(a5t,"ElkGraphUtil/PropertiesSkippingTreeIterator",685),fIt(952,1,{},gc),bY(a5t,"ElkGraphUtil/PropertiesSkippingTreeIterator/1",952);var sIe,cIe,lIe,uIe=bY(a5t,"ElkReflect",null);fIt(889,1,n6t,pc),kGt.vg=function(t){return cQ(),j7(jz(t,174))},bY(a5t,"ElkReflect/lambda$0$Type",889),dU($7t,"ResourceLocator"),fIt(1051,1,{}),bY($7t,"DelegatingResourceLocator",1051),fIt(1052,1051,{}),bY("org.eclipse.emf.common","EMFPlugin",1052);var dIe,hIe=dU(X5t,"Adapter"),fIe=dU(X5t,"Notification");fIt(1153,1,J5t),kGt.ti=function(){return this.d},kGt.ui=function(t){},kGt.vi=function(t){this.d=t},kGt.wi=function(t){this.d==t&&(this.d=null)},kGt.d=null,bY(n7t,"AdapterImpl",1153),fIt(1995,67,Q5t),kGt.Vh=function(t,e){return wgt(this,t,e)},kGt.Wh=function(t){var e,n,i;if(++this.j,t.dc())return!1;for(e=this.Vi(),i=t.Kc();i.Ob();)n=i.Pb(),this.Ii(this.oi(e,n)),++e;return!0},kGt.Xh=function(t,e){XB(this,t,e)},kGt.Yh=function(t){tG(this,t)},kGt.Gi=function(){return this.Ji()},kGt.$b=function(){KB(this,this.Vi(),this.Wi())},kGt.Hc=function(t){return this.Li(t)},kGt.Ic=function(t){return this.Mi(t)},kGt.Hi=function(t,e){this.Si().jm()},kGt.Ii=function(t){this.Si().jm()},kGt.Ji=function(){return this.Si()},kGt.Ki=function(){this.Si().jm()},kGt.Li=function(t){return this.Si().jm()},kGt.Mi=function(t){return this.Si().jm()},kGt.Ni=function(t){return this.Si().jm()},kGt.Oi=function(t){return this.Si().jm()},kGt.Pi=function(){return this.Si().jm()},kGt.Qi=function(t){return this.Si().jm()},kGt.Ri=function(){return this.Si().jm()},kGt.Ti=function(t){return this.Si().jm()},kGt.Ui=function(t,e){return this.Si().jm()},kGt.Vi=function(){return this.Si().jm()},kGt.Wi=function(){return this.Si().jm()},kGt.Xi=function(t){return this.Si().jm()},kGt.Yi=function(){return this.Si().jm()},kGt.Fb=function(t){return this.Ni(t)},kGt.Xb=function(t){return this.li(t,this.Oi(t))},kGt.Hb=function(){return this.Pi()},kGt.Xc=function(t){return this.Qi(t)},kGt.dc=function(){return this.Ri()},kGt.ii=function(t,e){return DEt(this,t,e)},kGt.ki=function(t){return this.Oi(t)},kGt.$c=function(t){return hU(this,t)},kGt.Mc=function(t){var e;return(e=this.Xc(t))>=0&&(this.$c(e),!0)},kGt.mi=function(t,e){return this.Ui(t,this.oi(t,e))},kGt.gc=function(){return this.Vi()},kGt.Pc=function(){return this.Wi()},kGt.Qc=function(t){return this.Xi(t)},kGt.Ib=function(){return this.Yi()},bY($7t,"DelegatingEList",1995),fIt(1996,1995,Q5t),kGt.Vh=function(t,e){return o$t(this,t,e)},kGt.Wh=function(t){return this.Vh(this.Vi(),t)},kGt.Xh=function(t,e){eIt(this,t,e)},kGt.Yh=function(t){ADt(this,t)},kGt.ai=function(){return!this.bj()},kGt.$b=function(){mUt(this)},kGt.Zi=function(t,e,n,i,a){return new LX(this,t,e,n,i,a)},kGt.$i=function(t){hot(this.Ai(),t)},kGt._i=function(){return null},kGt.aj=function(){return-1},kGt.Ai=function(){return null},kGt.bj=function(){return!1},kGt.cj=function(t,e){return e},kGt.dj=function(t,e){return e},kGt.ej=function(){return!1},kGt.fj=function(){return!this.Ri()},kGt.ii=function(t,e){var n,i;return this.ej()?(i=this.fj(),n=DEt(this,t,e),this.$i(this.Zi(7,nht(e),n,t,i)),n):DEt(this,t,e)},kGt.$c=function(t){var e,n,i,a;return this.ej()?(n=null,i=this.fj(),e=this.Zi(4,a=hU(this,t),null,t,i),this.bj()&&a?(n=this.dj(a,n))?(n.Ei(e),n.Fi()):this.$i(e):n?(n.Ei(e),n.Fi()):this.$i(e),a):(a=hU(this,t),this.bj()&&a&&(n=this.dj(a,null))&&n.Fi(),a)},kGt.mi=function(t,e){return s$t(this,t,e)},bY(n7t,"DelegatingNotifyingListImpl",1996),fIt(143,1,t8t),kGt.Ei=function(t){return P_t(this,t)},kGt.Fi=function(){D9(this)},kGt.xi=function(){return this.d},kGt._i=function(){return null},kGt.gj=function(){return null},kGt.yi=function(t){return-1},kGt.zi=function(){return BNt(this)},kGt.Ai=function(){return null},kGt.Bi=function(){return PNt(this)},kGt.Ci=function(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o},kGt.hj=function(){return!1},kGt.Di=function(t){var e,n,i,a,r,o,s,c;switch(this.d){case 1:case 2:switch(t.xi()){case 1:case 2:if(HA(t.Ai())===HA(this.Ai())&&this.yi(null)==t.yi(null))return this.g=t.zi(),1==t.xi()&&(this.d=1),!0}case 4:if(4===t.xi()&&HA(t.Ai())===HA(this.Ai())&&this.yi(null)==t.yi(null))return o=tVt(this),r=this.o<0?this.o<-2?-2-this.o-1:-1:this.o,i=t.Ci(),this.d=6,c=new pet(2),r<=i?(l8(c,this.n),l8(c,t.Bi()),this.g=Cst(Hx(TMe,1),lKt,25,15,[this.o=r,i+1])):(l8(c,t.Bi()),l8(c,this.n),this.g=Cst(Hx(TMe,1),lKt,25,15,[this.o=i,r])),this.n=c,o||(this.o=-2-this.o-1),!0;break;case 6:if(4===t.xi()&&HA(t.Ai())===HA(this.Ai())&&this.yi(null)==t.yi(null)){for(o=tVt(this),i=t.Ci(),s=jz(this.g,48),n=O5(TMe,lKt,25,s.length+1,15,1),e=0;e<s.length&&(a=s[e])<=i;)n[e++]=a,++i;for(jz(this.n,15).Vc(e,t.Bi()),n[e]=i;++e<n.length;)n[e]=s[e-1];return this.g=n,o||(this.o=-2-n[0]),!0}}return!1},kGt.Ib=function(){var t,e,n;switch((n=new lM(JR(this.gm)+"@"+(Qct(this)>>>0).toString(16))).a+=" (eventType: ",this.d){case 1:n.a+="SET";break;case 2:n.a+="UNSET";break;case 3:n.a+="ADD";break;case 5:n.a+="ADD_MANY";break;case 4:n.a+="REMOVE";break;case 6:n.a+="REMOVE_MANY";break;case 7:n.a+="MOVE";break;case 8:n.a+="REMOVING_ADAPTER";break;case 9:n.a+="RESOLVE";break;default:m_(n,this.d)}if(dFt(this)&&(n.a+=", touch: true"),n.a+=", position: ",m_(n,this.o<0?this.o<-2?-2-this.o-1:-1:this.o),n.a+=", notifier: ",nD(n,this.Ai()),n.a+=", feature: ",nD(n,this._i()),n.a+=", oldValue: ",nD(n,PNt(this)),n.a+=", newValue: ",6==this.d&&iO(this.g,48)){for(e=jz(this.g,48),n.a+="[",t=0;t<e.length;)n.a+=e[t],++t<e.length&&(n.a+=jGt);n.a+="]"}else nD(n,BNt(this));return n.a+=", isTouch: ",y_(n,dFt(this)),n.a+=", wasSet: ",y_(n,tVt(this)),n.a+=")",n.a},kGt.d=0,kGt.e=0,kGt.f=0,kGt.j=0,kGt.k=0,kGt.o=0,kGt.p=0,bY(n7t,"NotificationImpl",143),fIt(1167,143,t8t,LX),kGt._i=function(){return this.a._i()},kGt.yi=function(t){return this.a.aj()},kGt.Ai=function(){return this.a.Ai()},bY(n7t,"DelegatingNotifyingListImpl/1",1167),fIt(242,63,l5t,mc,FR),kGt.Fc=function(t){return kgt(this,jz(t,366))},kGt.Ei=function(t){return kgt(this,t)},kGt.Fi=function(){var t,e,n;for(t=0;t<this.i;++t)null!=(n=(e=jz(this.g[t],366)).Ai())&&-1!=e.xi()&&jz(n,92).Ng(e)},kGt.ri=function(t){return O5(fIe,zGt,366,t,0,1)},bY(n7t,"NotificationChainImpl",242),fIt(1378,90,e7t),kGt.Kg=function(){return this.e},kGt.Mg=function(){return 0!=(1&this.f)},kGt.f=1,bY(n7t,"NotifierImpl",1378),fIt(1993,63,l5t),kGt.Vh=function(t,e){return L$t(this,t,e)},kGt.Wh=function(t){return this.Vh(this.i,t)},kGt.Xh=function(t,e){HDt(this,t,e)},kGt.Yh=function(t){tIt(this,t)},kGt.ai=function(){return!this.bj()},kGt.$b=function(){cUt(this)},kGt.Zi=function(t,e,n,i,a){return new OX(this,t,e,n,i,a)},kGt.$i=function(t){hot(this.Ai(),t)},kGt._i=function(){return null},kGt.aj=function(){return-1},kGt.Ai=function(){return null},kGt.bj=function(){return!1},kGt.ij=function(){return!1},kGt.cj=function(t,e){return e},kGt.dj=function(t,e){return e},kGt.ej=function(){return!1},kGt.fj=function(){return 0!=this.i},kGt.ii=function(t,e){return Tht(this,t,e)},kGt.$c=function(t){return uBt(this,t)},kGt.mi=function(t,e){return uzt(this,t,e)},kGt.jj=function(t,e){return e},kGt.kj=function(t,e){return e},kGt.lj=function(t,e,n){return n},bY(n7t,"NotifyingListImpl",1993),fIt(1166,143,t8t,OX),kGt._i=function(){return this.a._i()},kGt.yi=function(t){return this.a.aj()},kGt.Ai=function(){return this.a.Ai()},bY(n7t,"NotifyingListImpl/1",1166),fIt(953,63,l5t,aP),kGt.Hc=function(t){return this.i>10?((!this.b||this.c.j!=this.a)&&(this.b=new DU(this),this.a=this.j),Fk(this.b,t)):ERt(this,t)},kGt.ni=function(){return!0},kGt.a=0,bY($7t,"AbstractEList/1",953),fIt(295,73,OKt,QP),bY($7t,"AbstractEList/BasicIndexOutOfBoundsException",295),fIt(40,1,ZGt,AO),kGt.Nb=function(t){lW(this,t)},kGt.mj=function(){if(this.i.j!=this.f)throw $m(new by)},kGt.nj=function(){return wmt(this)},kGt.Ob=function(){return this.e!=this.i.gc()},kGt.Pb=function(){return this.nj()},kGt.Qb=function(){ZRt(this)},kGt.e=0,kGt.f=0,kGt.g=-1,bY($7t,"AbstractEList/EIterator",40),fIt(278,40,aZt,iN,HW),kGt.Qb=function(){ZRt(this)},kGt.Rb=function(t){spt(this,t)},kGt.oj=function(){var t;try{return t=this.d.Xb(--this.e),this.mj(),this.g=this.e,t}catch(e){throw iO(e=dst(e),73)?(this.mj(),$m(new yy)):$m(e)}},kGt.pj=function(t){wvt(this,t)},kGt.Sb=function(){return 0!=this.e},kGt.Tb=function(){return this.e},kGt.Ub=function(){return this.oj()},kGt.Vb=function(){return this.e-1},kGt.Wb=function(t){this.pj(t)},bY($7t,"AbstractEList/EListIterator",278),fIt(341,40,ZGt,aN),kGt.nj=function(){return xmt(this)},kGt.Qb=function(){throw $m(new py)},bY($7t,"AbstractEList/NonResolvingEIterator",341),fIt(385,278,aZt,rN,NF),kGt.Rb=function(t){throw $m(new py)},kGt.nj=function(){var t;try{return t=this.c.ki(this.e),this.mj(),this.g=this.e++,t}catch(e){throw iO(e=dst(e),73)?(this.mj(),$m(new yy)):$m(e)}},kGt.oj=function(){var t;try{return t=this.c.ki(--this.e),this.mj(),this.g=this.e,t}catch(e){throw iO(e=dst(e),73)?(this.mj(),$m(new yy)):$m(e)}},kGt.Qb=function(){throw $m(new py)},kGt.Wb=function(t){throw $m(new py)},bY($7t,"AbstractEList/NonResolvingEListIterator",385),fIt(1982,67,i8t),kGt.Vh=function(t,e){var n,i,a,r,o,s,c,l,u;if(0!=(i=e.gc())){for(n=Clt(this,(l=null==(c=jz(vot(this.a,4),126))?0:c.length)+i),(u=l-t)>0&&rHt(c,t,n,t+i,u),s=e.Kc(),r=0;r<i;++r)KI(n,t+r,Mlt(this,o=s.Pb()));for(jbt(this,n),a=0;a<i;++a)o=n[t],this.bi(t,o),++t;return!0}return++this.j,!1},kGt.Wh=function(t){var e,n,i,a,r,o,s,c,l;if(0!=(i=t.gc())){for(e=Clt(this,l=(c=null==(n=jz(vot(this.a,4),126))?0:n.length)+i),s=t.Kc(),r=c;r<l;++r)KI(e,r,Mlt(this,o=s.Pb()));for(jbt(this,e),a=c;a<l;++a)o=e[a],this.bi(a,o);return!0}return++this.j,!1},kGt.Xh=function(t,e){var n,i,a,r;n=Clt(this,(a=null==(i=jz(vot(this.a,4),126))?0:i.length)+1),r=Mlt(this,e),t!=a&&rHt(i,t,n,t+1,a-t),DY(n,t,r),jbt(this,n),this.bi(t,e)},kGt.Yh=function(t){var e,n,i;KI(e=Clt(this,(i=null==(n=jz(vot(this.a,4),126))?0:n.length)+1),i,Mlt(this,t)),jbt(this,e),this.bi(i,t)},kGt.Zh=function(){return new k6(this)},kGt.$h=function(){return new Zq(this)},kGt._h=function(t){var e,n;if(n=null==(e=jz(vot(this.a,4),126))?0:e.length,t<0||t>n)throw $m(new QP(t,n));return new jG(this,t)},kGt.$b=function(){var t,e;++this.j,e=null==(t=jz(vot(this.a,4),126))?0:t.length,jbt(this,null),I5(this,e,t)},kGt.Hc=function(t){var e,n,i,a;if(null!=(e=jz(vot(this.a,4),126)))if(null!=t){for(i=0,a=(n=e).length;i<a;++i)if(Odt(t,n[i]))return!0}else for(i=0,a=(n=e).length;i<a;++i)if(HA(n[i])===HA(t))return!0;return!1},kGt.Xb=function(t){var e,n;if(t>=(n=null==(e=jz(vot(this.a,4),126))?0:e.length))throw $m(new QP(t,n));return e[t]},kGt.Xc=function(t){var e,n,i;if(null!=(e=jz(vot(this.a,4),126)))if(null!=t){for(n=0,i=e.length;n<i;++n)if(Odt(t,e[n]))return n}else for(n=0,i=e.length;n<i;++n)if(HA(e[n])===HA(t))return n;return-1},kGt.dc=function(){return null==jz(vot(this.a,4),126)},kGt.Kc=function(){return new _6(this)},kGt.Yc=function(){return new Gq(this)},kGt.Zc=function(t){var e,n;if(n=null==(e=jz(vot(this.a,4),126))?0:e.length,t<0||t>n)throw $m(new QP(t,n));return new FG(this,t)},kGt.ii=function(t,e){var n,i,a;if(t>=(a=null==(n=Ipt(this))?0:n.length))throw $m(new Aw(o5t+t+s5t+a));if(e>=a)throw $m(new Aw(c5t+e+s5t+a));return i=n[e],t!=e&&(t<e?rHt(n,t,n,t+1,e-t):rHt(n,e+1,n,e,t-e),DY(n,t,i),jbt(this,n)),i},kGt.ki=function(t){return jz(vot(this.a,4),126)[t]},kGt.$c=function(t){return RDt(this,t)},kGt.mi=function(t,e){var n,i;return i=(n=Ipt(this))[t],KI(n,t,Mlt(this,e)),jbt(this,n),i},kGt.gc=function(){var t;return null==(t=jz(vot(this.a,4),126))?0:t.length},kGt.Pc=function(){var t,e,n;return n=null==(t=jz(vot(this.a,4),126))?0:t.length,e=O5(hIe,n8t,415,n,0,1),n>0&&rHt(t,0,e,0,n),e},kGt.Qc=function(t){var e,n;return(n=null==(e=jz(vot(this.a,4),126))?0:e.length)>0&&(t.length<n&&(t=Nnt(tlt(t).c,n)),rHt(e,0,t,0,n)),t.length>n&&DY(t,n,null),t},bY($7t,"ArrayDelegatingEList",1982),fIt(1038,40,ZGt,_6),kGt.mj=function(){if(this.b.j!=this.f||HA(jz(vot(this.b.a,4),126))!==HA(this.a))throw $m(new by)},kGt.Qb=function(){ZRt(this),this.a=jz(vot(this.b.a,4),126)},bY($7t,"ArrayDelegatingEList/EIterator",1038),fIt(706,278,aZt,Gq,FG),kGt.mj=function(){if(this.b.j!=this.f||HA(jz(vot(this.b.a,4),126))!==HA(this.a))throw $m(new by)},kGt.pj=function(t){wvt(this,t),this.a=jz(vot(this.b.a,4),126)},kGt.Qb=function(){ZRt(this),this.a=jz(vot(this.b.a,4),126)},bY($7t,"ArrayDelegatingEList/EListIterator",706),fIt(1039,341,ZGt,k6),kGt.mj=function(){if(this.b.j!=this.f||HA(jz(vot(this.b.a,4),126))!==HA(this.a))throw $m(new by)},bY($7t,"ArrayDelegatingEList/NonResolvingEIterator",1039),fIt(707,385,aZt,Zq,jG),kGt.mj=function(){if(this.b.j!=this.f||HA(jz(vot(this.b.a,4),126))!==HA(this.a))throw $m(new by)},bY($7t,"ArrayDelegatingEList/NonResolvingEListIterator",707),fIt(606,295,OKt,ID),bY($7t,"BasicEList/BasicIndexOutOfBoundsException",606),fIt(696,63,l5t,MA),kGt.Vc=function(t,e){throw $m(new py)},kGt.Fc=function(t){throw $m(new py)},kGt.Wc=function(t,e){throw $m(new py)},kGt.Gc=function(t){throw $m(new py)},kGt.$b=function(){throw $m(new py)},kGt.qi=function(t){throw $m(new py)},kGt.Kc=function(){return this.Zh()},kGt.Yc=function(){return this.$h()},kGt.Zc=function(t){return this._h(t)},kGt.ii=function(t,e){throw $m(new py)},kGt.ji=function(t,e){throw $m(new py)},kGt.$c=function(t){throw $m(new py)},kGt.Mc=function(t){throw $m(new py)},kGt._c=function(t,e){throw $m(new py)},bY($7t,"BasicEList/UnmodifiableEList",696),fIt(705,1,{3:1,20:1,14:1,15:1,58:1,589:1}),kGt.Vc=function(t,e){GL(this,t,jz(e,42))},kGt.Fc=function(t){return aB(this,jz(t,42))},kGt.Jc=function(t){t6(this,t)},kGt.Xb=function(t){return jz(Yet(this.c,t),133)},kGt.ii=function(t,e){return jz(this.c.ii(t,e),42)},kGt.ji=function(t,e){ZL(this,t,jz(e,42))},kGt.Lc=function(){return new NU(null,new h1(this,16))},kGt.$c=function(t){return jz(this.c.$c(t),42)},kGt._c=function(t,e){return rY(this,t,jz(e,42))},kGt.ad=function(t){Fat(this,t)},kGt.Nc=function(){return new h1(this,16)},kGt.Oc=function(){return new NU(null,new h1(this,16))},kGt.Wc=function(t,e){return this.c.Wc(t,e)},kGt.Gc=function(t){return this.c.Gc(t)},kGt.$b=function(){this.c.$b()},kGt.Hc=function(t){return this.c.Hc(t)},kGt.Ic=function(t){return sst(this.c,t)},kGt.qj=function(){var t,e;if(null==this.d){for(this.d=O5(rIe,a8t,63,2*this.f+1,0,1),e=this.e,this.f=0,t=this.c.Kc();t.e!=t.i.gc();)Tyt(this,jz(t.nj(),133));this.e=e}},kGt.Fb=function(t){return LF(this,t)},kGt.Hb=function(){return kst(this.c)},kGt.Xc=function(t){return this.c.Xc(t)},kGt.rj=function(){this.c=new cm(this)},kGt.dc=function(){return 0==this.f},kGt.Kc=function(){return this.c.Kc()},kGt.Yc=function(){return this.c.Yc()},kGt.Zc=function(t){return this.c.Zc(t)},kGt.sj=function(){return A5(this)},kGt.tj=function(t,e,n){return new kz(t,e,n)},kGt.uj=function(){return new yc},kGt.Mc=function(t){return lit(this,t)},kGt.gc=function(){return this.f},kGt.bd=function(t,e){return new s1(this.c,t,e)},kGt.Pc=function(){return this.c.Pc()},kGt.Qc=function(t){return this.c.Qc(t)},kGt.Ib=function(){return Xft(this.c)},kGt.e=0,kGt.f=0,bY($7t,"BasicEMap",705),fIt(1033,63,l5t,cm),kGt.bi=function(t,e){Ay(this,jz(e,133))},kGt.ei=function(t,e,n){var i;++(i=this,jz(e,133),i).a.e},kGt.fi=function(t,e){Dy(this,jz(e,133))},kGt.gi=function(t,e,n){YM(this,jz(e,133),jz(n,133))},kGt.di=function(t,e){rot(this.a)},bY($7t,"BasicEMap/1",1033),fIt(1034,63,l5t,yc),kGt.ri=function(t){return O5(pIe,r8t,612,t,0,1)},bY($7t,"BasicEMap/2",1034),fIt(1035,QGt,tZt,lm),kGt.$b=function(){this.a.c.$b()},kGt.Hc=function(t){return ipt(this.a,t)},kGt.Kc=function(){return 0==this.a.f?(fB(),gIe.a):new jR(this.a)},kGt.Mc=function(t){var e;return e=this.a.f,Ypt(this.a,t),this.a.f!=e},kGt.gc=function(){return this.a.f},bY($7t,"BasicEMap/3",1035),fIt(1036,28,JGt,um),kGt.$b=function(){this.a.c.$b()},kGt.Hc=function(t){return KBt(this.a,t)},kGt.Kc=function(){return 0==this.a.f?(fB(),gIe.a):new $R(this.a)},kGt.gc=function(){return this.a.f},bY($7t,"BasicEMap/4",1036),fIt(1037,QGt,tZt,dm),kGt.$b=function(){this.a.c.$b()},kGt.Hc=function(t){var e,n,i,a,r,o,s,c,l;if(this.a.f>0&&iO(t,42)&&(this.a.qj(),a=null==(s=(c=jz(t,42)).cd())?0:Qct(s),r=tP(this.a,a),e=this.a.d[r]))for(n=jz(e.g,367),l=e.i,o=0;o<l;++o)if((i=n[o]).Sh()==a&&i.Fb(c))return!0;return!1},kGt.Kc=function(){return 0==this.a.f?(fB(),gIe.a):new pK(this.a)},kGt.Mc=function(t){return TIt(this,t)},kGt.gc=function(){return this.a.f},bY($7t,"BasicEMap/5",1037),fIt(613,1,ZGt,pK),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return-1!=this.b},kGt.Pb=function(){var t;if(this.f.e!=this.c)throw $m(new by);if(-1==this.b)throw $m(new yy);return this.d=this.a,this.e=this.b,oRt(this),t=jz(this.f.d[this.d].g[this.e],133),this.vj(t)},kGt.Qb=function(){if(this.f.e!=this.c)throw $m(new by);if(-1==this.e)throw $m(new fy);this.f.c.Mc(Yet(this.f.d[this.d],this.e)),this.c=this.f.e,this.e=-1,this.a==this.d&&-1!=this.b&&--this.b},kGt.vj=function(t){return t},kGt.a=0,kGt.b=-1,kGt.c=0,kGt.d=0,kGt.e=0,bY($7t,"BasicEMap/BasicEMapIterator",613),fIt(1031,613,ZGt,jR),kGt.vj=function(t){return t.cd()},bY($7t,"BasicEMap/BasicEMapKeyIterator",1031),fIt(1032,613,ZGt,$R),kGt.vj=function(t){return t.dd()},bY($7t,"BasicEMap/BasicEMapValueIterator",1032),fIt(1030,1,XGt,hm),kGt.wc=function(t){Qrt(this,t)},kGt.yc=function(t,e,n){return Jht(this,t,e,n)},kGt.$b=function(){this.a.c.$b()},kGt._b=function(t){return jA(this,t)},kGt.uc=function(t){return KBt(this.a,t)},kGt.vc=function(){return S5(this.a)},kGt.Fb=function(t){return LF(this.a,t)},kGt.xc=function(t){return apt(this.a,t)},kGt.Hb=function(){return kst(this.a.c)},kGt.dc=function(){return 0==this.a.f},kGt.ec=function(){return T5(this.a)},kGt.zc=function(t,e){return mRt(this.a,t,e)},kGt.Bc=function(t){return Ypt(this.a,t)},kGt.gc=function(){return this.a.f},kGt.Ib=function(){return Xft(this.a.c)},kGt.Cc=function(){return C5(this.a)},bY($7t,"BasicEMap/DelegatingMap",1030),fIt(612,1,{42:1,133:1,612:1},kz),kGt.Fb=function(t){var e;return!!iO(t,42)&&(e=jz(t,42),(null!=this.b?Odt(this.b,e.cd()):HA(this.b)===HA(e.cd()))&&(null!=this.c?Odt(this.c,e.dd()):HA(this.c)===HA(e.dd())))},kGt.Sh=function(){return this.a},kGt.cd=function(){return this.b},kGt.dd=function(){return this.c},kGt.Hb=function(){return this.a^(null==this.c?0:Qct(this.c))},kGt.Th=function(t){this.a=t},kGt.Uh=function(t){throw $m(new sy)},kGt.ed=function(t){var e;return e=this.c,this.c=t,e},kGt.Ib=function(){return this.b+"->"+this.c},kGt.a=0;var gIe,pIe=bY($7t,"BasicEMap/EntryImpl",612);fIt(536,1,{},lc),bY($7t,"BasicEMap/View",536),fIt(768,1,{}),kGt.Fb=function(t){return OIt((kK(),cne),t)},kGt.Hb=function(){return jct((kK(),cne))},kGt.Ib=function(){return LEt((kK(),cne))},bY($7t,"ECollections/BasicEmptyUnmodifiableEList",768),fIt(1312,1,aZt,vc),kGt.Nb=function(t){lW(this,t)},kGt.Rb=function(t){throw $m(new py)},kGt.Ob=function(){return!1},kGt.Sb=function(){return!1},kGt.Pb=function(){throw $m(new yy)},kGt.Tb=function(){return 0},kGt.Ub=function(){throw $m(new yy)},kGt.Vb=function(){return-1},kGt.Qb=function(){throw $m(new py)},kGt.Wb=function(t){throw $m(new py)},bY($7t,"ECollections/BasicEmptyUnmodifiableEList/1",1312),fIt(1310,768,{20:1,14:1,15:1,58:1},Rv),kGt.Vc=function(t,e){L_()},kGt.Fc=function(t){return O_()},kGt.Wc=function(t,e){return M_()},kGt.Gc=function(t){return N_()},kGt.$b=function(){B_()},kGt.Hc=function(t){return!1},kGt.Ic=function(t){return!1},kGt.Jc=function(t){t6(this,t)},kGt.Xb=function(t){return yD((kK(),t)),null},kGt.Xc=function(t){return-1},kGt.dc=function(){return!0},kGt.Kc=function(){return this.a},kGt.Yc=function(){return this.a},kGt.Zc=function(t){return this.a},kGt.ii=function(t,e){return P_()},kGt.ji=function(t,e){F_()},kGt.Lc=function(){return new NU(null,new h1(this,16))},kGt.$c=function(t){return j_()},kGt.Mc=function(t){return $_()},kGt._c=function(t,e){return z_()},kGt.gc=function(){return 0},kGt.ad=function(t){Fat(this,t)},kGt.Nc=function(){return new h1(this,16)},kGt.Oc=function(){return new NU(null,new h1(this,16))},kGt.bd=function(t,e){return kK(),new s1(cne,t,e)},kGt.Pc=function(){return iq((kK(),cne))},kGt.Qc=function(t){return kK(),Rvt(cne,t)},bY($7t,"ECollections/EmptyUnmodifiableEList",1310),fIt(1311,768,{20:1,14:1,15:1,58:1,589:1},_v),kGt.Vc=function(t,e){L_()},kGt.Fc=function(t){return O_()},kGt.Wc=function(t,e){return M_()},kGt.Gc=function(t){return N_()},kGt.$b=function(){B_()},kGt.Hc=function(t){return!1},kGt.Ic=function(t){return!1},kGt.Jc=function(t){t6(this,t)},kGt.Xb=function(t){return yD((kK(),t)),null},kGt.Xc=function(t){return-1},kGt.dc=function(){return!0},kGt.Kc=function(){return this.a},kGt.Yc=function(){return this.a},kGt.Zc=function(t){return this.a},kGt.ii=function(t,e){return P_()},kGt.ji=function(t,e){F_()},kGt.Lc=function(){return new NU(null,new h1(this,16))},kGt.$c=function(t){return j_()},kGt.Mc=function(t){return $_()},kGt._c=function(t,e){return z_()},kGt.gc=function(){return 0},kGt.ad=function(t){Fat(this,t)},kGt.Nc=function(){return new h1(this,16)},kGt.Oc=function(){return new NU(null,new h1(this,16))},kGt.bd=function(t,e){return kK(),new s1(cne,t,e)},kGt.Pc=function(){return iq((kK(),cne))},kGt.Qc=function(t){return kK(),Rvt(cne,t)},kGt.sj=function(){return kK(),kK(),lne},bY($7t,"ECollections/EmptyUnmodifiableEMap",1311);var bIe,mIe=dU($7t,"Enumerator");fIt(281,1,{281:1},iPt),kGt.Fb=function(t){var e;return this===t||!!iO(t,281)&&(e=jz(t,281),this.f==e.f&&bV(this.i,e.i)&&pV(this.a,256&this.f?256&e.f?e.a:null:256&e.f?null:e.a)&&pV(this.d,e.d)&&pV(this.g,e.g)&&pV(this.e,e.e)&&Emt(this,e))},kGt.Hb=function(){return this.f},kGt.Ib=function(){return kjt(this)},kGt.f=0;var yIe,vIe,wIe,xIe=0,RIe=0,_Ie=0,kIe=0,EIe=0,CIe=0,SIe=0,TIe=0,AIe=0,DIe=0,IIe=0,LIe=0,OIe=0;bY($7t,"URI",281),fIt(1091,43,tXt,kv),kGt.zc=function(t,e){return jz(mQ(this,kB(t),jz(e,281)),281)},bY($7t,"URI/URICache",1091),fIt(497,63,l5t,hc,nV),kGt.hi=function(){return!0},bY($7t,"UniqueEList",497),fIt(581,60,$Zt,I9),bY($7t,"WrappedException",581);var MIe,NIe=dU(H6t,c8t),BIe=dU(H6t,l8t),PIe=dU(H6t,u8t),FIe=dU(H6t,d8t),jIe=dU(H6t,h8t),$Ie=dU(H6t,"EClass"),zIe=dU(H6t,"EDataType");fIt(1183,43,tXt,Ev),kGt.xc=function(t){return qA(t)?kJ(this,t):zA(AX(this.f,t))},bY(H6t,"EDataType/Internal/ConversionDelegate/Factory/Registry/Impl",1183);var HIe,UIe,VIe=dU(H6t,"EEnum"),qIe=dU(H6t,f8t),WIe=dU(H6t,g8t),YIe=dU(H6t,p8t),GIe=dU(H6t,b8t),ZIe=dU(H6t,m8t);fIt(1029,1,{},dc),kGt.Ib=function(){return"NIL"},bY(H6t,"EStructuralFeature/Internal/DynamicValueHolder/1",1029),fIt(1028,43,tXt,Cv),kGt.xc=function(t){return qA(t)?kJ(this,t):zA(AX(this.f,t))},bY(H6t,"EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl",1028);var KIe,XIe,JIe,QIe,tLe,eLe,nLe,iLe,aLe,rLe,oLe,sLe,cLe,lLe,uLe,dLe,hLe,fLe,gLe,pLe,bLe,mLe,yLe,vLe,wLe,xLe,RLe,_Le,kLe,ELe,CLe,SLe=dU(H6t,y8t),TLe=dU(H6t,"EValidator/PatternMatcher"),ALe=dU(v8t,"FeatureMap/Entry");fIt(535,1,{72:1},CA),kGt.ak=function(){return this.a},kGt.dd=function(){return this.b},bY(d7t,"BasicEObjectImpl/1",535),fIt(1027,1,w8t,SA),kGt.Wj=function(t){return Y6(this.a,this.b,t)},kGt.fj=function(){return XJ(this.a,this.b)},kGt.Wb=function(t){LJ(this.a,this.b,t)},kGt.Xj=function(){EG(this.a,this.b)},bY(d7t,"BasicEObjectImpl/4",1027),fIt(1983,1,{108:1}),kGt.bk=function(t){this.e=0==t?RLe:O5(Dte,zGt,1,t,5,1)},kGt.Ch=function(t){return this.e[t]},kGt.Dh=function(t,e){this.e[t]=e},kGt.Eh=function(t){this.e[t]=null},kGt.ck=function(){return this.c},kGt.dk=function(){throw $m(new py)},kGt.ek=function(){throw $m(new py)},kGt.fk=function(){return this.d},kGt.gk=function(){return null!=this.e},kGt.hk=function(t){this.c=t},kGt.ik=function(t){throw $m(new py)},kGt.jk=function(t){throw $m(new py)},kGt.kk=function(t){this.d=t},bY(d7t,"BasicEObjectImpl/EPropertiesHolderBaseImpl",1983),fIt(185,1983,{108:1},Nd),kGt.dk=function(){return this.a},kGt.ek=function(){return this.b},kGt.ik=function(t){this.a=t},kGt.jk=function(t){this.b=t},bY(d7t,"BasicEObjectImpl/EPropertiesHolderImpl",185),fIt(506,97,u7t,wc),kGt.Kg=function(){return this.f},kGt.Pg=function(){return this.k},kGt.Rg=function(t,e){this.g=t,this.i=e},kGt.Tg=function(){return 2&this.j?this.ph().ck():this.zh()},kGt.Vg=function(){return this.i},kGt.Mg=function(){return 0!=(1&this.j)},kGt.eh=function(){return this.g},kGt.kh=function(){return 0!=(4&this.j)},kGt.ph=function(){return!this.k&&(this.k=new Nd),this.k},kGt.th=function(t){this.ph().hk(t),t?this.j|=2:this.j&=-3},kGt.vh=function(t){this.ph().jk(t),t?this.j|=4:this.j&=-5},kGt.zh=function(){return(GY(),JIe).S},kGt.i=0,kGt.j=1,bY(d7t,"EObjectImpl",506),fIt(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},wH),kGt.Ch=function(t){return this.e[t]},kGt.Dh=function(t,e){this.e[t]=e},kGt.Eh=function(t){this.e[t]=null},kGt.Tg=function(){return this.d},kGt.Yg=function(t){return Dgt(this.d,t)},kGt.$g=function(){return this.d},kGt.dh=function(){return null!=this.e},kGt.ph=function(){return!this.k&&(this.k=new xc),this.k},kGt.th=function(t){this.d=t},kGt.yh=function(){var t;return null==this.e&&(t=dY(this.d),this.e=0==t?_Le:O5(Dte,zGt,1,t,5,1)),this},kGt.Ah=function(){return 0},bY(d7t,"DynamicEObjectImpl",780),fIt(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},lU),kGt.Fb=function(t){return this===t},kGt.Hb=function(){return EM(this)},kGt.th=function(t){this.d=t,this.b=OMt(t,"key"),this.c=OMt(t,R7t)},kGt.Sh=function(){var t;return-1==this.a&&(t=K9(this,this.b),this.a=null==t?0:Qct(t)),this.a},kGt.cd=function(){return K9(this,this.b)},kGt.dd=function(){return K9(this,this.c)},kGt.Th=function(t){this.a=t},kGt.Uh=function(t){LJ(this,this.b,t)},kGt.ed=function(t){var e;return e=K9(this,this.c),LJ(this,this.c,t),e},kGt.a=0,bY(d7t,"DynamicEObjectImpl/BasicEMapEntry",1376),fIt(1377,1,{108:1},xc),kGt.bk=function(t){throw $m(new py)},kGt.Ch=function(t){throw $m(new py)},kGt.Dh=function(t,e){throw $m(new py)},kGt.Eh=function(t){throw $m(new py)},kGt.ck=function(){throw $m(new py)},kGt.dk=function(){return this.a},kGt.ek=function(){return this.b},kGt.fk=function(){return this.c},kGt.gk=function(){throw $m(new py)},kGt.hk=function(t){throw $m(new py)},kGt.ik=function(t){this.a=t},kGt.jk=function(t){this.b=t},kGt.kk=function(t){this.c=t},bY(d7t,"DynamicEObjectImpl/DynamicEPropertiesHolderImpl",1377),fIt(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},Rc),kGt.Qg=function(t){return hxt(this,t)},kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.d;case 2:return n?(!this.b&&(this.b=new KN((pGt(),yLe),VLe,this)),this.b):(!this.b&&(this.b=new KN((pGt(),yLe),VLe,this)),A5(this.b));case 3:return dQ(this);case 4:return!this.a&&(this.a=new DO(DDe,this,4)),this.a;case 5:return!this.c&&(this.c=new NO(DDe,this,5)),this.c}return V8(this,t-dY((pGt(),QIe)),eet(jz(vot(this,16),26)||QIe,t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 3:return this.Cb&&(n=(i=this.Db>>16)>=0?hxt(this,n):this.Cb.ih(this,-1-i,null,n)),GV(this,jz(t,147),n)}return jz(eet(jz(vot(this,16),26)||(pGt(),QIe),e),66).Nj().Qj(this,ubt(this),e-dY((pGt(),QIe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 2:return!this.b&&(this.b=new KN((pGt(),yLe),VLe,this)),jF(this.b,t,n);case 3:return GV(this,null,n);case 4:return!this.a&&(this.a=new DO(DDe,this,4)),Fmt(this.a,t,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),QIe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),QIe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.d;case 2:return!!this.b&&0!=this.b.f;case 3:return!!dQ(this);case 4:return!!this.a&&0!=this.a.i;case 5:return!!this.c&&0!=this.c.i}return T4(this,t-dY((pGt(),QIe)),eet(jz(vot(this,16),26)||QIe,t))},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void pU(this,kB(e));case 2:return!this.b&&(this.b=new KN((pGt(),yLe),VLe,this)),void tot(this.b,e);case 3:return void AMt(this,jz(e,147));case 4:return!this.a&&(this.a=new DO(DDe,this,4)),cUt(this.a),!this.a&&(this.a=new DO(DDe,this,4)),void pY(this.a,jz(e,14));case 5:return!this.c&&(this.c=new NO(DDe,this,5)),cUt(this.c),!this.c&&(this.c=new NO(DDe,this,5)),void pY(this.c,jz(e,14))}Lft(this,t-dY((pGt(),QIe)),eet(jz(vot(this,16),26)||QIe,t),e)},kGt.zh=function(){return pGt(),QIe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return void $it(this,null);case 2:return!this.b&&(this.b=new KN((pGt(),yLe),VLe,this)),void this.b.c.$b();case 3:return void AMt(this,null);case 4:return!this.a&&(this.a=new DO(DDe,this,4)),void cUt(this.a);case 5:return!this.c&&(this.c=new NO(DDe,this,5)),void cUt(this.c)}Hdt(this,t-dY((pGt(),QIe)),eet(jz(vot(this,16),26)||QIe,t))},kGt.Ib=function(){return Gdt(this)},kGt.d=null,bY(d7t,"EAnnotationImpl",510),fIt(151,705,x8t,y8),kGt.Xh=function(t,e){JI(this,t,jz(e,42))},kGt.lk=function(t,e){return FF(this,jz(t,42),e)},kGt.pi=function(t){return jz(jz(this.c,69).pi(t),133)},kGt.Zh=function(){return jz(this.c,69).Zh()},kGt.$h=function(){return jz(this.c,69).$h()},kGt._h=function(t){return jz(this.c,69)._h(t)},kGt.mk=function(t,e){return jF(this,t,e)},kGt.Wj=function(t){return jz(this.c,76).Wj(t)},kGt.rj=function(){},kGt.fj=function(){return jz(this.c,76).fj()},kGt.tj=function(t,e,n){var i;return(i=jz(qet(this.b).Nh().Jh(this.b),133)).Th(t),i.Uh(e),i.ed(n),i},kGt.uj=function(){return new Sm(this)},kGt.Wb=function(t){tot(this,t)},kGt.Xj=function(){jz(this.c,76).Xj()},bY(v8t,"EcoreEMap",151),fIt(158,151,x8t,KN),kGt.qj=function(){var t,e,n,i,a;if(null==this.d){for(a=O5(rIe,a8t,63,2*this.f+1,0,1),n=this.c.Kc();n.e!=n.i.gc();)!(t=a[i=((e=jz(n.nj(),133)).Sh()&NGt)%a.length])&&(t=a[i]=new Sm(this)),t.Fc(e);this.d=a}},bY(d7t,"EAnnotationImpl/1",158),fIt(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1}),kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return cM(),!!(256&this.Bb);case 3:return cM(),!!(512&this.Bb);case 4:return nht(this.s);case 5:return nht(this.t);case 6:return cM(),!!this.$j();case 7:return cM(),this.s>=1;case 8:return e?Txt(this):this.r;case 9:return this.q}return V8(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 9:return gY(this,n)}return jz(eet(jz(vot(this,16),26)||this.zh(),e),66).Nj().Rj(this,ubt(this),e-dY(this.zh()),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return this.$j();case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yG(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yG(this.q).i)}return T4(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.sh=function(t,e){var n;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void this.Lh(kB(e));case 2:return void Kdt(this,zw(RB(e)));case 3:return void Qdt(this,zw(RB(e)));case 4:return void Lnt(this,jz(e,19).a);case 5:return void this.ok(jz(e,19).a);case 8:return void Tut(this,jz(e,138));case 9:return void((n=zkt(this,jz(e,87),null))&&n.Fi())}Lft(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e)},kGt.zh=function(){return pGt(),wLe},kGt.Bh=function(t){var e;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return void this.Lh(null);case 2:return void Kdt(this,!0);case 3:return void Qdt(this,!0);case 4:return void Lnt(this,0);case 5:return void this.ok(1);case 8:return void Tut(this,null);case 9:return void((e=zkt(this,null,null))&&e.Fi())}Hdt(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.Gh=function(){Txt(this),this.Bb|=1},kGt.Yj=function(){return Txt(this)},kGt.Zj=function(){return this.t},kGt.$j=function(){var t;return(t=this.t)>1||-1==t},kGt.hi=function(){return 0!=(512&this.Bb)},kGt.nk=function(t,e){return Cdt(this,t,e)},kGt.ok=function(t){Ont(this,t)},kGt.Ib=function(){return PDt(this)},kGt.s=0,kGt.t=1,bY(d7t,"ETypedElementImpl",284),fIt(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1}),kGt.Qg=function(t){return Owt(this,t)},kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return cM(),!!(256&this.Bb);case 3:return cM(),!!(512&this.Bb);case 4:return nht(this.s);case 5:return nht(this.t);case 6:return cM(),!!this.$j();case 7:return cM(),this.s>=1;case 8:return e?Txt(this):this.r;case 9:return this.q;case 10:return cM(),!!(this.Bb&w7t);case 11:return cM(),!!(this.Bb&k8t);case 12:return cM(),!!(this.Bb&FKt);case 13:return this.j;case 14:return HOt(this);case 15:return cM(),!!(this.Bb&_8t);case 16:return cM(),!!(this.Bb&lZt);case 17:return fQ(this)}return V8(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 17:return this.Cb&&(n=(i=this.Db>>16)>=0?Owt(this,n):this.Cb.ih(this,-1-i,null,n)),_jt(this,t,17,n)}return jz(eet(jz(vot(this,16),26)||this.zh(),e),66).Nj().Qj(this,ubt(this),e-dY(this.zh()),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 9:return gY(this,n);case 17:return _jt(this,null,17,n)}return jz(eet(jz(vot(this,16),26)||this.zh(),e),66).Nj().Rj(this,ubt(this),e-dY(this.zh()),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return this.$j();case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yG(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yG(this.q).i);case 10:return 0==(this.Bb&w7t);case 11:return 0!=(this.Bb&k8t);case 12:return 0!=(this.Bb&FKt);case 13:return null!=this.j;case 14:return null!=HOt(this);case 15:return 0!=(this.Bb&_8t);case 16:return 0!=(this.Bb&lZt);case 17:return!!fQ(this)}return T4(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.sh=function(t,e){var n;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void KQ(this,kB(e));case 2:return void Kdt(this,zw(RB(e)));case 3:return void Qdt(this,zw(RB(e)));case 4:return void Lnt(this,jz(e,19).a);case 5:return void this.ok(jz(e,19).a);case 8:return void Tut(this,jz(e,138));case 9:return void((n=zkt(this,jz(e,87),null))&&n.Fi());case 10:return void Dht(this,zw(RB(e)));case 11:return void Oht(this,zw(RB(e)));case 12:return void Iht(this,zw(RB(e)));case 13:return void PA(this,kB(e));case 15:return void Lht(this,zw(RB(e)));case 16:return void Hht(this,zw(RB(e)))}Lft(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e)},kGt.zh=function(){return pGt(),vLe},kGt.Bh=function(t){var e;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return iO(this.Cb,88)&&DTt(E6(jz(this.Cb,88)),4),void Oat(this,null);case 2:return void Kdt(this,!0);case 3:return void Qdt(this,!0);case 4:return void Lnt(this,0);case 5:return void this.ok(1);case 8:return void Tut(this,null);case 9:return void((e=zkt(this,null,null))&&e.Fi());case 10:return void Dht(this,!0);case 11:return void Oht(this,!1);case 12:return void Iht(this,!1);case 13:return this.i=null,void rat(this,null);case 15:return void Lht(this,!1);case 16:return void Hht(this,!1)}Hdt(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.Gh=function(){vZ(j9((TSt(),KLe),this)),Txt(this),this.Bb|=1},kGt.Gj=function(){return this.f},kGt.zj=function(){return HOt(this)},kGt.Hj=function(){return fQ(this)},kGt.Lj=function(){return null},kGt.pk=function(){return this.k},kGt.aj=function(){return this.n},kGt.Mj=function(){return s_t(this)},kGt.Nj=function(){var t,e,n,i,a,r,o,s,c;return this.p||((null==(n=fQ(this)).i&&H$t(n),n.i).length,(i=this.Lj())&&dY(fQ(i)),t=(o=(a=Txt(this)).Bj())?1&o.i?o==AMe?wee:o==TMe?Dee:o==OMe?See:o==LMe?Cee:o==DMe?Bee:o==MMe?Fee:o==IMe?Ree:Eee:o:null,e=HOt(this),s=a.zj(),hft(this),this.Bb&lZt&&((r=yRt((TSt(),KLe),n))&&r!=this||(r=X1(j9(KLe,this))))?this.p=new AA(this,r):this.$j()?this.rk()?i?this.Bb&_8t?t?this.sk()?this.p=new uK(47,t,this,i):this.p=new uK(5,t,this,i):this.sk()?this.p=new h3(46,this,i):this.p=new h3(4,this,i):t?this.sk()?this.p=new uK(49,t,this,i):this.p=new uK(7,t,this,i):this.sk()?this.p=new h3(48,this,i):this.p=new h3(6,this,i):this.Bb&_8t?t?t==zte?this.p=new Ez(50,WDe,this):this.sk()?this.p=new Ez(43,t,this):this.p=new Ez(1,t,this):this.sk()?this.p=new NX(42,this):this.p=new NX(0,this):t?t==zte?this.p=new Ez(41,WDe,this):this.sk()?this.p=new Ez(45,t,this):this.p=new Ez(3,t,this):this.sk()?this.p=new NX(44,this):this.p=new NX(2,this):iO(a,148)?t==ALe?this.p=new NX(40,this):512&this.Bb?this.Bb&_8t?this.p=t?new Ez(9,t,this):new NX(8,this):this.p=t?new Ez(11,t,this):new NX(10,this):this.Bb&_8t?this.p=t?new Ez(13,t,this):new NX(12,this):this.p=t?new Ez(15,t,this):new NX(14,this):i?(c=i.t)>1||-1==c?this.sk()?this.Bb&_8t?this.p=t?new uK(25,t,this,i):new h3(24,this,i):this.p=t?new uK(27,t,this,i):new h3(26,this,i):this.Bb&_8t?this.p=t?new uK(29,t,this,i):new h3(28,this,i):this.p=t?new uK(31,t,this,i):new h3(30,this,i):this.sk()?this.Bb&_8t?this.p=t?new uK(33,t,this,i):new h3(32,this,i):this.p=t?new uK(35,t,this,i):new h3(34,this,i):this.Bb&_8t?this.p=t?new uK(37,t,this,i):new h3(36,this,i):this.p=t?new uK(39,t,this,i):new h3(38,this,i):this.sk()?this.Bb&_8t?this.p=t?new Ez(17,t,this):new NX(16,this):this.p=t?new Ez(19,t,this):new NX(18,this):this.Bb&_8t?this.p=t?new Ez(21,t,this):new NX(20,this):this.p=t?new Ez(23,t,this):new NX(22,this):this.qk()?this.sk()?this.p=new Cz(jz(a,26),this,i):this.p=new mJ(jz(a,26),this,i):iO(a,148)?t==ALe?this.p=new NX(40,this):this.Bb&_8t?this.p=t?new JV(e,s,this,($gt(),o==TMe?$Le:o==AMe?NLe:o==DMe?zLe:o==OMe?jLe:o==LMe?FLe:o==MMe?ULe:o==IMe?BLe:o==SMe?PLe:HLe)):new fK(jz(a,148),e,s,this):this.p=t?new XV(e,s,this,($gt(),o==TMe?$Le:o==AMe?NLe:o==DMe?zLe:o==OMe?jLe:o==LMe?FLe:o==MMe?ULe:o==IMe?BLe:o==SMe?PLe:HLe)):new hK(jz(a,148),e,s,this):this.rk()?i?this.Bb&_8t?this.sk()?this.p=new Lz(jz(a,26),this,i):this.p=new Iz(jz(a,26),this,i):this.sk()?this.p=new Dz(jz(a,26),this,i):this.p=new Sz(jz(a,26),this,i):this.Bb&_8t?this.sk()?this.p=new tB(jz(a,26),this):this.p=new QN(jz(a,26),this):this.sk()?this.p=new JN(jz(a,26),this):this.p=new XN(jz(a,26),this):this.sk()?i?this.Bb&_8t?this.p=new Oz(jz(a,26),this,i):this.p=new Tz(jz(a,26),this,i):this.Bb&_8t?this.p=new nB(jz(a,26),this):this.p=new eB(jz(a,26),this):i?this.Bb&_8t?this.p=new Mz(jz(a,26),this,i):this.p=new Az(jz(a,26),this,i):this.Bb&_8t?this.p=new iB(jz(a,26),this):this.p=new iV(jz(a,26),this)),this.p},kGt.Ij=function(){return 0!=(this.Bb&w7t)},kGt.qk=function(){return!1},kGt.rk=function(){return!1},kGt.Jj=function(){return 0!=(this.Bb&lZt)},kGt.Oj=function(){return ctt(this)},kGt.sk=function(){return!1},kGt.Kj=function(){return 0!=(this.Bb&_8t)},kGt.tk=function(t){this.k=t},kGt.Lh=function(t){KQ(this,t)},kGt.Ib=function(){return RPt(this)},kGt.e=!1,kGt.n=0,bY(d7t,"EStructuralFeatureImpl",449),fIt(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},Tv),kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return cM(),!!(256&this.Bb);case 3:return cM(),!!(512&this.Bb);case 4:return nht(this.s);case 5:return nht(this.t);case 6:return cM(),!!OAt(this);case 7:return cM(),this.s>=1;case 8:return e?Txt(this):this.r;case 9:return this.q;case 10:return cM(),!!(this.Bb&w7t);case 11:return cM(),!!(this.Bb&k8t);case 12:return cM(),!!(this.Bb&FKt);case 13:return this.j;case 14:return HOt(this);case 15:return cM(),!!(this.Bb&_8t);case 16:return cM(),!!(this.Bb&lZt);case 17:return fQ(this);case 18:return cM(),!!(this.Bb&l7t);case 19:return e?ost(this):O7(this)}return V8(this,t-dY((pGt(),tLe)),eet(jz(vot(this,16),26)||tLe,t),e,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return OAt(this);case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yG(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yG(this.q).i);case 10:return 0==(this.Bb&w7t);case 11:return 0!=(this.Bb&k8t);case 12:return 0!=(this.Bb&FKt);case 13:return null!=this.j;case 14:return null!=HOt(this);case 15:return 0!=(this.Bb&_8t);case 16:return 0!=(this.Bb&lZt);case 17:return!!fQ(this);case 18:return 0!=(this.Bb&l7t);case 19:return!!O7(this)}return T4(this,t-dY((pGt(),tLe)),eet(jz(vot(this,16),26)||tLe,t))},kGt.sh=function(t,e){var n;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void KQ(this,kB(e));case 2:return void Kdt(this,zw(RB(e)));case 3:return void Qdt(this,zw(RB(e)));case 4:return void Lnt(this,jz(e,19).a);case 5:return void VR(this,jz(e,19).a);case 8:return void Tut(this,jz(e,138));case 9:return void((n=zkt(this,jz(e,87),null))&&n.Fi());case 10:return void Dht(this,zw(RB(e)));case 11:return void Oht(this,zw(RB(e)));case 12:return void Iht(this,zw(RB(e)));case 13:return void PA(this,kB(e));case 15:return void Lht(this,zw(RB(e)));case 16:return void Hht(this,zw(RB(e)));case 18:return void Uht(this,zw(RB(e)))}Lft(this,t-dY((pGt(),tLe)),eet(jz(vot(this,16),26)||tLe,t),e)},kGt.zh=function(){return pGt(),tLe},kGt.Bh=function(t){var e;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return iO(this.Cb,88)&&DTt(E6(jz(this.Cb,88)),4),void Oat(this,null);case 2:return void Kdt(this,!0);case 3:return void Qdt(this,!0);case 4:return void Lnt(this,0);case 5:return this.b=0,void Ont(this,1);case 8:return void Tut(this,null);case 9:return void((e=zkt(this,null,null))&&e.Fi());case 10:return void Dht(this,!0);case 11:return void Oht(this,!1);case 12:return void Iht(this,!1);case 13:return this.i=null,void rat(this,null);case 15:return void Lht(this,!1);case 16:return void Hht(this,!1);case 18:return void Uht(this,!1)}Hdt(this,t-dY((pGt(),tLe)),eet(jz(vot(this,16),26)||tLe,t))},kGt.Gh=function(){ost(this),vZ(j9((TSt(),KLe),this)),Txt(this),this.Bb|=1},kGt.$j=function(){return OAt(this)},kGt.nk=function(t,e){return this.b=0,this.a=null,Cdt(this,t,e)},kGt.ok=function(t){VR(this,t)},kGt.Ib=function(){var t;return 64&this.Db?RPt(this):((t=new lM(RPt(this))).a+=" (iD: ",y_(t,0!=(this.Bb&l7t)),t.a+=")",t.a)},kGt.b=0,bY(d7t,"EAttributeImpl",322),fIt(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1}),kGt.uk=function(t){return t.Tg()==this},kGt.Qg=function(t){return uwt(this,t)},kGt.Rg=function(t,e){this.w=null,this.Db=e<<16|255&this.Db,this.Cb=t},kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return nwt(this);case 4:return this.zj();case 5:return this.F;case 6:return e?qet(this):hQ(this);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),this.A}return V8(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 6:return this.Cb&&(n=(i=this.Db>>16)>=0?uwt(this,n):this.Cb.ih(this,-1-i,null,n)),_jt(this,t,6,n)}return jz(eet(jz(vot(this,16),26)||this.zh(),e),66).Nj().Qj(this,ubt(this),e-dY(this.zh()),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 6:return _jt(this,null,6,n);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),Fmt(this.A,t,n)}return jz(eet(jz(vot(this,16),26)||this.zh(),e),66).Nj().Rj(this,ubt(this),e-dY(this.zh()),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!nwt(this);case 4:return null!=this.zj();case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!hQ(this);case 7:return!!this.A&&0!=this.A.i}return T4(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void XQ(this,kB(e));case 2:return void SI(this,kB(e));case 5:return void KUt(this,kB(e));case 7:return!this.A&&(this.A=new LO(SLe,this,7)),cUt(this.A),!this.A&&(this.A=new LO(SLe,this,7)),void pY(this.A,jz(e,14))}Lft(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e)},kGt.zh=function(){return pGt(),nLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return iO(this.Cb,179)&&(jz(this.Cb,179).tb=null),void Oat(this,null);case 2:return Nlt(this,null),void Mnt(this,this.D);case 5:return void KUt(this,null);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),void cUt(this.A)}Hdt(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.yj=function(){var t;return-1==this.G&&(this.G=(t=qet(this))?oyt(t.Mh(),this):-1),this.G},kGt.zj=function(){return null},kGt.Aj=function(){return qet(this)},kGt.vk=function(){return this.v},kGt.Bj=function(){return nwt(this)},kGt.Cj=function(){return null!=this.D?this.D:this.B},kGt.Dj=function(){return this.F},kGt.wj=function(t){return E$t(this,t)},kGt.wk=function(t){this.v=t},kGt.xk=function(t){qat(this,t)},kGt.yk=function(t){this.C=t},kGt.Lh=function(t){XQ(this,t)},kGt.Ib=function(){return Sgt(this)},kGt.C=null,kGt.D=null,kGt.G=-1,bY(d7t,"EClassifierImpl",351),fIt(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},Bd),kGt.uk=function(t){return GP(this,t.Tg())},kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return nwt(this);case 4:return null;case 5:return this.F;case 6:return e?qet(this):hQ(this);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),this.A;case 8:return cM(),!!(256&this.Bb);case 9:return cM(),!!(512&this.Bb);case 10:return vX(this);case 11:return!this.q&&(this.q=new tW(YIe,this,11,10)),this.q;case 12:return Kzt(this);case 13:return Bzt(this);case 14:return Bzt(this),this.r;case 15:return Kzt(this),this.k;case 16:return YSt(this);case 17:return pzt(this);case 18:return H$t(this);case 19:return SOt(this);case 20:return Kzt(this),this.o;case 21:return!this.s&&(this.s=new tW(PIe,this,21,17)),this.s;case 22:return a3(this);case 23:return zBt(this)}return V8(this,t-dY((pGt(),eLe)),eet(jz(vot(this,16),26)||eLe,t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 6:return this.Cb&&(n=(i=this.Db>>16)>=0?uwt(this,n):this.Cb.ih(this,-1-i,null,n)),_jt(this,t,6,n);case 11:return!this.q&&(this.q=new tW(YIe,this,11,10)),Kgt(this.q,t,n);case 21:return!this.s&&(this.s=new tW(PIe,this,21,17)),Kgt(this.s,t,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),eLe),e),66).Nj().Qj(this,ubt(this),e-dY((pGt(),eLe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 6:return _jt(this,null,6,n);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),Fmt(this.A,t,n);case 11:return!this.q&&(this.q=new tW(YIe,this,11,10)),Fmt(this.q,t,n);case 21:return!this.s&&(this.s=new tW(PIe,this,21,17)),Fmt(this.s,t,n);case 22:return Fmt(a3(this),t,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),eLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),eLe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!nwt(this);case 4:return!1;case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!hQ(this);case 7:return!!this.A&&0!=this.A.i;case 8:return 0!=(256&this.Bb);case 9:return 0!=(512&this.Bb);case 10:return!(!this.u||0==a3(this.u.a).i||this.n&&Byt(this.n));case 11:return!!this.q&&0!=this.q.i;case 12:return 0!=Kzt(this).i;case 13:return 0!=Bzt(this).i;case 14:return Bzt(this),0!=this.r.i;case 15:return Kzt(this),0!=this.k.i;case 16:return 0!=YSt(this).i;case 17:return 0!=pzt(this).i;case 18:return 0!=H$t(this).i;case 19:return 0!=SOt(this).i;case 20:return Kzt(this),!!this.o;case 21:return!!this.s&&0!=this.s.i;case 22:return!!this.n&&Byt(this.n);case 23:return 0!=zBt(this).i}return T4(this,t-dY((pGt(),eLe)),eet(jz(vot(this,16),26)||eLe,t))},kGt.oh=function(t){return(null==this.i||this.q&&0!=this.q.i?null:OMt(this,t))||lWt(this,t)},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void XQ(this,kB(e));case 2:return void SI(this,kB(e));case 5:return void KUt(this,kB(e));case 7:return!this.A&&(this.A=new LO(SLe,this,7)),cUt(this.A),!this.A&&(this.A=new LO(SLe,this,7)),void pY(this.A,jz(e,14));case 8:return void Xdt(this,zw(RB(e)));case 9:return void tht(this,zw(RB(e)));case 10:return mUt(vX(this)),void pY(vX(this),jz(e,14));case 11:return!this.q&&(this.q=new tW(YIe,this,11,10)),cUt(this.q),!this.q&&(this.q=new tW(YIe,this,11,10)),void pY(this.q,jz(e,14));case 21:return!this.s&&(this.s=new tW(PIe,this,21,17)),cUt(this.s),!this.s&&(this.s=new tW(PIe,this,21,17)),void pY(this.s,jz(e,14));case 22:return cUt(a3(this)),void pY(a3(this),jz(e,14))}Lft(this,t-dY((pGt(),eLe)),eet(jz(vot(this,16),26)||eLe,t),e)},kGt.zh=function(){return pGt(),eLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return iO(this.Cb,179)&&(jz(this.Cb,179).tb=null),void Oat(this,null);case 2:return Nlt(this,null),void Mnt(this,this.D);case 5:return void KUt(this,null);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),void cUt(this.A);case 8:return void Xdt(this,!1);case 9:return void tht(this,!1);case 10:return void(this.u&&mUt(this.u));case 11:return!this.q&&(this.q=new tW(YIe,this,11,10)),void cUt(this.q);case 21:return!this.s&&(this.s=new tW(PIe,this,21,17)),void cUt(this.s);case 22:return void(this.n&&cUt(this.n))}Hdt(this,t-dY((pGt(),eLe)),eet(jz(vot(this,16),26)||eLe,t))},kGt.Gh=function(){var t,e;if(Kzt(this),Bzt(this),YSt(this),pzt(this),H$t(this),SOt(this),zBt(this),a7(qz(E6(this))),this.s)for(t=0,e=this.s.i;t<e;++t)bN(Yet(this.s,t));if(this.q)for(t=0,e=this.q.i;t<e;++t)bN(Yet(this.q,t));Sdt((TSt(),KLe),this).ne(),this.Bb|=1},kGt.Ib=function(){return g_t(this)},kGt.k=null,kGt.r=null,bY(d7t,"EClassImpl",88),fIt(1994,1993,N8t),kGt.Vh=function(t,e){return L$t(this,t,e)},kGt.Wh=function(t){return L$t(this,this.i,t)},kGt.Xh=function(t,e){HDt(this,t,e)},kGt.Yh=function(t){tIt(this,t)},kGt.lk=function(t,e){return Kgt(this,t,e)},kGt.pi=function(t){return F8(this,t)},kGt.mk=function(t,e){return Fmt(this,t,e)},kGt.mi=function(t,e){return uzt(this,t,e)},kGt.Zh=function(){return new aN(this)},kGt.$h=function(){return new rN(this)},kGt._h=function(t){return cit(this,t)},bY(v8t,"NotifyingInternalEListImpl",1994),fIt(622,1994,B8t),kGt.Hc=function(t){return hUt(this,t)},kGt.Zi=function(t,e,n,i,a){return yQ(this,t,e,n,i,a)},kGt.$i=function(t){Iy(this,t)},kGt.Wj=function(t){return this},kGt.ak=function(){return eet(this.e.Tg(),this.aj())},kGt._i=function(){return this.ak()},kGt.aj=function(){return Dgt(this.e.Tg(),this.ak())},kGt.zk=function(){return jz(this.ak().Yj(),26).Bj()},kGt.Ak=function(){return Syt(jz(this.ak(),18)).n},kGt.Ai=function(){return this.e},kGt.Bk=function(){return!0},kGt.Ck=function(){return!1},kGt.Dk=function(){return!1},kGt.Ek=function(){return!1},kGt.Xc=function(t){return oyt(this,t)},kGt.cj=function(t,e){var n;return n=jz(t,49),this.Dk()?this.Bk()?n.gh(this.e,this.Ak(),this.zk(),e):n.gh(this.e,Dgt(n.Tg(),Syt(jz(this.ak(),18))),null,e):n.gh(this.e,-1-this.aj(),null,e)},kGt.dj=function(t,e){var n;return n=jz(t,49),this.Dk()?this.Bk()?n.ih(this.e,this.Ak(),this.zk(),e):n.ih(this.e,Dgt(n.Tg(),Syt(jz(this.ak(),18))),null,e):n.ih(this.e,-1-this.aj(),null,e)},kGt.rk=function(){return!1},kGt.Fk=function(){return!0},kGt.wj=function(t){return O4(this.d,t)},kGt.ej=function(){return mI(this.e)},kGt.fj=function(){return 0!=this.i},kGt.ri=function(t){return Nnt(this.d,t)},kGt.li=function(t,e){return this.Fk()&&this.Ek()?UDt(this,t,jz(e,56)):e},kGt.Gk=function(t){return t.kh()?tdt(this.e,jz(t,49)):t},kGt.Wb=function(t){KL(this,t)},kGt.Pc=function(){return $8(this)},kGt.Qc=function(t){var e;if(this.Ek())for(e=this.i-1;e>=0;--e)Yet(this,e);return Zgt(this,t)},kGt.Xj=function(){cUt(this)},kGt.oi=function(t,e){return Fnt(this,t,e)},bY(v8t,"EcoreEList",622),fIt(496,622,B8t,yH),kGt.ai=function(){return!1},kGt.aj=function(){return this.c},kGt.bj=function(){return!1},kGt.Fk=function(){return!0},kGt.hi=function(){return!0},kGt.li=function(t,e){return e},kGt.ni=function(){return!1},kGt.c=0,bY(v8t,"EObjectEList",496),fIt(85,496,B8t,DO),kGt.bj=function(){return!0},kGt.Dk=function(){return!1},kGt.rk=function(){return!0},bY(v8t,"EObjectContainmentEList",85),fIt(545,85,B8t,IO),kGt.ci=function(){this.b=!0},kGt.fj=function(){return this.b},kGt.Xj=function(){var t;cUt(this),mI(this.e)?(t=this.b,this.b=!1,hot(this.e,new Q6(this.e,2,this.c,t,!1))):this.b=!1},kGt.b=!1,bY(v8t,"EObjectContainmentEList/Unsettable",545),fIt(1140,545,B8t,ZV),kGt.ii=function(t,e){var n,i;return n=jz(Tht(this,t,e),87),mI(this.e)&&Iy(this,new w8(this.a,7,(pGt(),iLe),nht(e),iO(i=n.c,88)?jz(i,26):hLe,t)),n},kGt.jj=function(t,e){return Jgt(this,jz(t,87),e)},kGt.kj=function(t,e){return Xgt(this,jz(t,87),e)},kGt.lj=function(t,e,n){return FRt(this,jz(t,87),jz(e,87),n)},kGt.Zi=function(t,e,n,i,a){switch(t){case 3:return yQ(this,t,e,n,i,this.i>1);case 5:return yQ(this,t,e,n,i,this.i-jz(n,15).gc()>0);default:return new L9(this.e,t,this.c,e,n,i,!0)}},kGt.ij=function(){return!0},kGt.fj=function(){return Byt(this)},kGt.Xj=function(){cUt(this)},bY(d7t,"EClassImpl/1",1140),fIt(1154,1153,J5t),kGt.ui=function(t){var e,n,i,a,r,o,s;if(8!=(n=t.xi())){if(0==(i=rmt(t)))switch(n){case 1:case 9:null!=(s=t.Bi())&&(!(e=E6(jz(s,473))).c&&(e.c=new zc),stt(e.c,t.Ai())),null!=(o=t.zi())&&(1&(a=jz(o,473)).Bb||(!(e=E6(a)).c&&(e.c=new zc),l8(e.c,jz(t.Ai(),26))));break;case 3:null!=(o=t.zi())&&(1&(a=jz(o,473)).Bb||(!(e=E6(a)).c&&(e.c=new zc),l8(e.c,jz(t.Ai(),26))));break;case 5:if(null!=(o=t.zi()))for(r=jz(o,14).Kc();r.Ob();)1&(a=jz(r.Pb(),473)).Bb||(!(e=E6(a)).c&&(e.c=new zc),l8(e.c,jz(t.Ai(),26)));break;case 4:null!=(s=t.Bi())&&(1&(a=jz(s,473)).Bb||(!(e=E6(a)).c&&(e.c=new zc),stt(e.c,t.Ai())));break;case 6:if(null!=(s=t.Bi()))for(r=jz(s,14).Kc();r.Ob();)1&(a=jz(r.Pb(),473)).Bb||(!(e=E6(a)).c&&(e.c=new zc),stt(e.c,t.Ai()))}this.Hk(i)}},kGt.Hk=function(t){gPt(this,t)},kGt.b=63,bY(d7t,"ESuperAdapter",1154),fIt(1155,1154,J5t,fm),kGt.Hk=function(t){DTt(this,t)},bY(d7t,"EClassImpl/10",1155),fIt(1144,696,B8t),kGt.Vh=function(t,e){return $kt(this,t,e)},kGt.Wh=function(t){return hvt(this,t)},kGt.Xh=function(t,e){Tdt(this,t,e)},kGt.Yh=function(t){i7(this,t)},kGt.pi=function(t){return F8(this,t)},kGt.mi=function(t,e){return ott(this,t,e)},kGt.lk=function(t,e){throw $m(new py)},kGt.Zh=function(){return new aN(this)},kGt.$h=function(){return new rN(this)},kGt._h=function(t){return cit(this,t)},kGt.mk=function(t,e){throw $m(new py)},kGt.Wj=function(t){return this},kGt.fj=function(){return 0!=this.i},kGt.Wb=function(t){throw $m(new py)},kGt.Xj=function(){throw $m(new py)},bY(v8t,"EcoreEList/UnmodifiableEList",1144),fIt(319,1144,B8t,LD),kGt.ni=function(){return!1},bY(v8t,"EcoreEList/UnmodifiableEList/FastCompare",319),fIt(1147,319,B8t,gct),kGt.Xc=function(t){var e,n;if(iO(t,170)&&-1!=(e=jz(t,170).aj()))for(n=this.i;e<n;++e)if(HA(this.g[e])===HA(t))return e;return-1},bY(d7t,"EClassImpl/1EAllStructuralFeaturesList",1147),fIt(1141,497,l5t,_c),kGt.ri=function(t){return O5(WIe,$8t,87,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"EClassImpl/1EGenericSuperTypeEList",1141),fIt(623,497,l5t,kc),kGt.ri=function(t){return O5(PIe,O8t,170,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"EClassImpl/1EStructuralFeatureUniqueEList",623),fIt(741,497,l5t,Ec),kGt.ri=function(t){return O5(ZIe,O8t,18,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"EClassImpl/1ReferenceList",741),fIt(1142,497,l5t,gm),kGt.bi=function(t,e){QV(this,jz(e,34))},kGt.ri=function(t){return O5(FIe,O8t,34,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"EClassImpl/2",1142),fIt(1143,497,l5t,Cc),kGt.ri=function(t){return O5(FIe,O8t,34,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"EClassImpl/3",1143),fIt(1145,319,B8t,xH),kGt.Fc=function(t){return mz(this,jz(t,34))},kGt.Yh=function(t){K_(this,jz(t,34))},bY(d7t,"EClassImpl/4",1145),fIt(1146,319,B8t,RH),kGt.Fc=function(t){return yz(this,jz(t,18))},kGt.Yh=function(t){X_(this,jz(t,18))},bY(d7t,"EClassImpl/5",1146),fIt(1148,497,l5t,Sc),kGt.ri=function(t){return O5(YIe,M8t,59,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"EClassImpl/6",1148),fIt(1149,497,l5t,Tc),kGt.ri=function(t){return O5(ZIe,O8t,18,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"EClassImpl/7",1149),fIt(1997,1996,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,69:1}),kGt.Vh=function(t,e){return o$t(this,t,e)},kGt.Wh=function(t){return o$t(this,this.Vi(),t)},kGt.Xh=function(t,e){eIt(this,t,e)},kGt.Yh=function(t){ADt(this,t)},kGt.lk=function(t,e){return fvt(this,t,e)},kGt.mk=function(t,e){return jmt(this,t,e)},kGt.mi=function(t,e){return s$t(this,t,e)},kGt.pi=function(t){return this.Oi(t)},kGt.Zh=function(){return new aN(this)},kGt.Gi=function(){return this.Ji()},kGt.$h=function(){return new rN(this)},kGt._h=function(t){return cit(this,t)},bY(v8t,"DelegatingNotifyingInternalEListImpl",1997),fIt(742,1997,z8t),kGt.ai=function(){var t;return iO(t=eet(wX(this.b),this.aj()).Yj(),148)&&!iO(t,457)&&0==(1&t.Bj().i)},kGt.Hc=function(t){var e,n,i,a,r,o,s;if(this.Fk()){if((s=this.Vi())>4){if(!this.wj(t))return!1;if(this.rk()){if(o=(e=(n=jz(t,49)).Ug())==this.b&&(this.Dk()?n.Og(n.Vg(),jz(eet(wX(this.b),this.aj()).Yj(),26).Bj())==Syt(jz(eet(wX(this.b),this.aj()),18)).n:-1-n.Vg()==this.aj()),this.Ek()&&!o&&!e&&n.Zg())for(i=0;i<s;++i)if(HA(Hq(this,this.Oi(i)))===HA(t))return!0;return o}if(this.Dk()&&!this.Ck()){if(HA(a=jz(t,56).ah(Syt(jz(eet(wX(this.b),this.aj()),18))))===HA(this.b))return!0;if(null==a||!jz(a,56).kh())return!1}}if(r=this.Li(t),this.Ek()&&!r)for(i=0;i<s;++i)if(HA(n=Hq(this,this.Oi(i)))===HA(t))return!0;return r}return this.Li(t)},kGt.Zi=function(t,e,n,i,a){return new L9(this.b,t,this.aj(),e,n,i,a)},kGt.$i=function(t){hot(this.b,t)},kGt.Wj=function(t){return this},kGt._i=function(){return eet(wX(this.b),this.aj())},kGt.aj=function(){return Dgt(wX(this.b),eet(wX(this.b),this.aj()))},kGt.Ai=function(){return this.b},kGt.Bk=function(){return!!eet(wX(this.b),this.aj()).Yj().Bj()},kGt.bj=function(){var t;return!(!iO(t=eet(wX(this.b),this.aj()),99)||0==(jz(t,18).Bb&l7t)&&!Syt(jz(t,18)))},kGt.Ck=function(){var t,e,n;return!!iO(t=eet(wX(this.b),this.aj()),99)&&!!(e=Syt(jz(t,18)))&&((n=e.t)>1||-1==n)},kGt.Dk=function(){var t;return!!iO(t=eet(wX(this.b),this.aj()),99)&&!!Syt(jz(t,18))},kGt.Ek=function(){var t;return!!iO(t=eet(wX(this.b),this.aj()),99)&&0!=(jz(t,18).Bb&$Kt)},kGt.Xc=function(t){var e,n,i;if((n=this.Qi(t))>=0)return n;if(this.Fk())for(e=0,i=this.Vi();e<i;++e)if(HA(Hq(this,this.Oi(e)))===HA(t))return e;return-1},kGt.cj=function(t,e){var n;return n=jz(t,49),this.Dk()?this.Bk()?n.gh(this.b,Syt(jz(eet(wX(this.b),this.aj()),18)).n,jz(eet(wX(this.b),this.aj()).Yj(),26).Bj(),e):n.gh(this.b,Dgt(n.Tg(),Syt(jz(eet(wX(this.b),this.aj()),18))),null,e):n.gh(this.b,-1-this.aj(),null,e)},kGt.dj=function(t,e){var n;return n=jz(t,49),this.Dk()?this.Bk()?n.ih(this.b,Syt(jz(eet(wX(this.b),this.aj()),18)).n,jz(eet(wX(this.b),this.aj()).Yj(),26).Bj(),e):n.ih(this.b,Dgt(n.Tg(),Syt(jz(eet(wX(this.b),this.aj()),18))),null,e):n.ih(this.b,-1-this.aj(),null,e)},kGt.rk=function(){var t;return!!iO(t=eet(wX(this.b),this.aj()),99)&&0!=(jz(t,18).Bb&l7t)},kGt.Fk=function(){return iO(eet(wX(this.b),this.aj()).Yj(),88)},kGt.wj=function(t){return eet(wX(this.b),this.aj()).Yj().wj(t)},kGt.ej=function(){return mI(this.b)},kGt.fj=function(){return!this.Ri()},kGt.hi=function(){return eet(wX(this.b),this.aj()).hi()},kGt.li=function(t,e){return eVt(this,t,e)},kGt.Wb=function(t){mUt(this),pY(this,jz(t,15))},kGt.Pc=function(){var t;if(this.Ek())for(t=this.Vi()-1;t>=0;--t)eVt(this,t,this.Oi(t));return this.Wi()},kGt.Qc=function(t){var e;if(this.Ek())for(e=this.Vi()-1;e>=0;--e)eVt(this,e,this.Oi(e));return this.Xi(t)},kGt.Xj=function(){mUt(this)},kGt.oi=function(t,e){return j8(this,t,e)},bY(v8t,"DelegatingEcoreEList",742),fIt(1150,742,z8t,rP),kGt.Hi=function(t,e){uB(this,t,jz(e,26))},kGt.Ii=function(t){tL(this,jz(t,26))},kGt.Oi=function(t){var e;return iO(e=jz(Yet(a3(this.a),t),87).c,88)?jz(e,26):(pGt(),hLe)},kGt.Ti=function(t){var e;return iO(e=jz(uBt(a3(this.a),t),87).c,88)?jz(e,26):(pGt(),hLe)},kGt.Ui=function(t,e){return gvt(this,t,jz(e,26))},kGt.ai=function(){return!1},kGt.Zi=function(t,e,n,i,a){return null},kGt.Ji=function(){return new pm(this)},kGt.Ki=function(){cUt(a3(this.a))},kGt.Li=function(t){return qdt(this,t)},kGt.Mi=function(t){var e;for(e=t.Kc();e.Ob();)if(!qdt(this,e.Pb()))return!1;return!0},kGt.Ni=function(t){var e,n,i;if(iO(t,15)&&(i=jz(t,15)).gc()==a3(this.a).i){for(e=i.Kc(),n=new AO(this);e.Ob();)if(HA(e.Pb())!==HA(wmt(n)))return!1;return!0}return!1},kGt.Pi=function(){var t,e,n,i;for(e=1,t=new AO(a3(this.a));t.e!=t.i.gc();)e=31*e+((n=iO(i=jz(wmt(t),87).c,88)?jz(i,26):(pGt(),hLe))?EM(n):0);return e},kGt.Qi=function(t){var e,n,i,a;for(i=0,n=new AO(a3(this.a));n.e!=n.i.gc();){if(e=jz(wmt(n),87),HA(t)===HA(iO(a=e.c,88)?jz(a,26):(pGt(),hLe)))return i;++i}return-1},kGt.Ri=function(){return 0==a3(this.a).i},kGt.Si=function(){return null},kGt.Vi=function(){return a3(this.a).i},kGt.Wi=function(){var t,e,n,i,a,r;for(r=a3(this.a).i,a=O5(Dte,zGt,1,r,5,1),n=0,e=new AO(a3(this.a));e.e!=e.i.gc();)t=jz(wmt(e),87),a[n++]=iO(i=t.c,88)?jz(i,26):(pGt(),hLe);return a},kGt.Xi=function(t){var e,n,i,a;for(a=a3(this.a).i,t.length<a&&(t=Nnt(tlt(t).c,a)),t.length>a&&DY(t,a,null),n=0,e=new AO(a3(this.a));e.e!=e.i.gc();)DY(t,n++,iO(i=jz(wmt(e),87).c,88)?jz(i,26):(pGt(),hLe));return t},kGt.Yi=function(){var t,e,n,i,a;for((a=new kx).a+="[",t=a3(this.a),e=0,i=a3(this.a).i;e<i;)iD(a,vM(iO(n=jz(Yet(t,e),87).c,88)?jz(n,26):(pGt(),hLe))),++e<i&&(a.a+=jGt);return a.a+="]",a.a},kGt.$i=function(t){},kGt.aj=function(){return 10},kGt.Bk=function(){return!0},kGt.bj=function(){return!1},kGt.Ck=function(){return!1},kGt.Dk=function(){return!1},kGt.Ek=function(){return!0},kGt.rk=function(){return!1},kGt.Fk=function(){return!0},kGt.wj=function(t){return iO(t,88)},kGt.fj=function(){return G0(this.a)},kGt.hi=function(){return!0},kGt.ni=function(){return!0},bY(d7t,"EClassImpl/8",1150),fIt(1151,1964,LZt,pm),kGt.Zc=function(t){return cit(this.a,t)},kGt.gc=function(){return a3(this.a.a).i},bY(d7t,"EClassImpl/8/1",1151),fIt(1152,497,l5t,Ac),kGt.ri=function(t){return O5(jIe,zGt,138,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"EClassImpl/9",1152),fIt(1139,53,eXt,Sv),bY(d7t,"EClassImpl/MyHashSet",1139),fIt(566,351,{105:1,92:1,90:1,138:1,148:1,834:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1},xy),kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return nwt(this);case 4:return this.zj();case 5:return this.F;case 6:return e?qet(this):hQ(this);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),this.A;case 8:return cM(),!!(256&this.Bb)}return V8(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!nwt(this);case 4:return null!=this.zj();case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!hQ(this);case 7:return!!this.A&&0!=this.A.i;case 8:return 0==(256&this.Bb)}return T4(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void XQ(this,kB(e));case 2:return void SI(this,kB(e));case 5:return void KUt(this,kB(e));case 7:return!this.A&&(this.A=new LO(SLe,this,7)),cUt(this.A),!this.A&&(this.A=new LO(SLe,this,7)),void pY(this.A,jz(e,14));case 8:return void Jdt(this,zw(RB(e)))}Lft(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e)},kGt.zh=function(){return pGt(),aLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return iO(this.Cb,179)&&(jz(this.Cb,179).tb=null),void Oat(this,null);case 2:return Nlt(this,null),void Mnt(this,this.D);case 5:return void KUt(this,null);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),void cUt(this.A);case 8:return void Jdt(this,!0)}Hdt(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.Gh=function(){Sdt((TSt(),KLe),this).ne(),this.Bb|=1},kGt.Fj=function(){var t,e;if(!this.c&&!(t=ULt(qet(this))).dc())for(e=t.Kc();e.Ob();)Ojt(this,kB(e.Pb()))&&Bht(this);return this.b},kGt.zj=function(){var t;if(!this.e){t=null;try{t=nwt(this)}catch(e){if(!iO(e=dst(e),102))throw $m(e)}this.d=null,t&&1&t.i&&(this.d=t==AMe?(cM(),mee):t==TMe?nht(0):t==OMe?new Lf(0):t==LMe?0:t==DMe?xbt(0):t==MMe?iht(0):t==IMe?Ett(0):ust(0)),this.e=!0}return this.d},kGt.Ej=function(){return 0!=(256&this.Bb)},kGt.Ik=function(t){t&&(this.D="org.eclipse.emf.common.util.AbstractEnumerator")},kGt.xk=function(t){qat(this,t),this.Ik(t)},kGt.yk=function(t){this.C=t,this.e=!1},kGt.Ib=function(){var t;return 64&this.Db?Sgt(this):((t=new lM(Sgt(this))).a+=" (serializable: ",y_(t,0!=(256&this.Bb)),t.a+=")",t.a)},kGt.c=!1,kGt.d=null,kGt.e=!1,bY(d7t,"EDataTypeImpl",566),fIt(457,566,{105:1,92:1,90:1,138:1,148:1,834:1,671:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,457:1,150:1,114:1,115:1,676:1},Av),kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return nwt(this);case 4:return Zlt(this);case 5:return this.F;case 6:return e?qet(this):hQ(this);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),this.A;case 8:return cM(),!!(256&this.Bb);case 9:return!this.a&&(this.a=new tW(qIe,this,9,5)),this.a}return V8(this,t-dY((pGt(),rLe)),eet(jz(vot(this,16),26)||rLe,t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 6:return this.Cb&&(n=(i=this.Db>>16)>=0?uwt(this,n):this.Cb.ih(this,-1-i,null,n)),_jt(this,t,6,n);case 9:return!this.a&&(this.a=new tW(qIe,this,9,5)),Kgt(this.a,t,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),rLe),e),66).Nj().Qj(this,ubt(this),e-dY((pGt(),rLe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 6:return _jt(this,null,6,n);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),Fmt(this.A,t,n);case 9:return!this.a&&(this.a=new tW(qIe,this,9,5)),Fmt(this.a,t,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),rLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),rLe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!nwt(this);case 4:return!!Zlt(this);case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!hQ(this);case 7:return!!this.A&&0!=this.A.i;case 8:return 0==(256&this.Bb);case 9:return!!this.a&&0!=this.a.i}return T4(this,t-dY((pGt(),rLe)),eet(jz(vot(this,16),26)||rLe,t))},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void XQ(this,kB(e));case 2:return void SI(this,kB(e));case 5:return void KUt(this,kB(e));case 7:return!this.A&&(this.A=new LO(SLe,this,7)),cUt(this.A),!this.A&&(this.A=new LO(SLe,this,7)),void pY(this.A,jz(e,14));case 8:return void Jdt(this,zw(RB(e)));case 9:return!this.a&&(this.a=new tW(qIe,this,9,5)),cUt(this.a),!this.a&&(this.a=new tW(qIe,this,9,5)),void pY(this.a,jz(e,14))}Lft(this,t-dY((pGt(),rLe)),eet(jz(vot(this,16),26)||rLe,t),e)},kGt.zh=function(){return pGt(),rLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return iO(this.Cb,179)&&(jz(this.Cb,179).tb=null),void Oat(this,null);case 2:return Nlt(this,null),void Mnt(this,this.D);case 5:return void KUt(this,null);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),void cUt(this.A);case 8:return void Jdt(this,!0);case 9:return!this.a&&(this.a=new tW(qIe,this,9,5)),void cUt(this.a)}Hdt(this,t-dY((pGt(),rLe)),eet(jz(vot(this,16),26)||rLe,t))},kGt.Gh=function(){var t,e;if(this.a)for(t=0,e=this.a.i;t<e;++t)bN(Yet(this.a,t));Sdt((TSt(),KLe),this).ne(),this.Bb|=1},kGt.zj=function(){return Zlt(this)},kGt.wj=function(t){return null!=t},kGt.Ik=function(t){},bY(d7t,"EEnumImpl",457),fIt(573,438,{105:1,92:1,90:1,1940:1,678:1,147:1,191:1,56:1,108:1,49:1,97:1,573:1,150:1,114:1,115:1},wy),kGt.ne=function(){return this.zb},kGt.Qg=function(t){return dxt(this,t)},kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return nht(this.d);case 3:return this.b?this.b:this.a;case 4:return this.c??this.zb;case 5:return this.Db>>16==5?jz(this.Cb,671):null}return V8(this,t-dY((pGt(),oLe)),eet(jz(vot(this,16),26)||oLe,t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 5:return this.Cb&&(n=(i=this.Db>>16)>=0?dxt(this,n):this.Cb.ih(this,-1-i,null,n)),_jt(this,t,5,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),oLe),e),66).Nj().Qj(this,ubt(this),e-dY((pGt(),oLe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 5:return _jt(this,null,5,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),oLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),oLe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0!=this.d;case 3:return!!this.b;case 4:return null!=this.c;case 5:return!(this.Db>>16!=5||!jz(this.Cb,671))}return T4(this,t-dY((pGt(),oLe)),eet(jz(vot(this,16),26)||oLe,t))},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void Oat(this,kB(e));case 2:return void Int(this,jz(e,19).a);case 3:return void pDt(this,jz(e,1940));case 4:return void jit(this,kB(e))}Lft(this,t-dY((pGt(),oLe)),eet(jz(vot(this,16),26)||oLe,t),e)},kGt.zh=function(){return pGt(),oLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return void Oat(this,null);case 2:return void Int(this,0);case 3:return void pDt(this,null);case 4:return void jit(this,null)}Hdt(this,t-dY((pGt(),oLe)),eet(jz(vot(this,16),26)||oLe,t))},kGt.Ib=function(){return this.c??this.zb},kGt.b=null,kGt.c=null,kGt.d=0,bY(d7t,"EEnumLiteralImpl",573);var DLe,ILe,LLe,OLe=dU(d7t,"EFactoryImpl/InternalEDateTimeFormat");fIt(489,1,{2015:1},bm),bY(d7t,"EFactoryImpl/1ClientInternalEDateTimeFormat",489),fIt(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},Bm),kGt.Sg=function(t,e,n){var i;return n=_jt(this,t,e,n),this.e&&iO(t,170)&&(i=wOt(this,this.e))!=this.c&&(n=rqt(this,i,n)),n},kGt._g=function(t,e,n){switch(t){case 0:return this.f;case 1:return!this.d&&(this.d=new DO(WIe,this,1)),this.d;case 2:return e?d$t(this):this.c;case 3:return this.b;case 4:return this.e;case 5:return e?Hyt(this):this.a}return V8(this,t-dY((pGt(),cLe)),eet(jz(vot(this,16),26)||cLe,t),e,n)},kGt.jh=function(t,e,n){switch(e){case 0:return Qut(this,null,n);case 1:return!this.d&&(this.d=new DO(WIe,this,1)),Fmt(this.d,t,n);case 3:return Jut(this,null,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),cLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),cLe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.f;case 1:return!!this.d&&0!=this.d.i;case 2:return!!this.c;case 3:return!!this.b;case 4:return!!this.e;case 5:return!!this.a}return T4(this,t-dY((pGt(),cLe)),eet(jz(vot(this,16),26)||cLe,t))},kGt.sh=function(t,e){switch(t){case 0:return void x_t(this,jz(e,87));case 1:return!this.d&&(this.d=new DO(WIe,this,1)),cUt(this.d),!this.d&&(this.d=new DO(WIe,this,1)),void pY(this.d,jz(e,14));case 3:return void w_t(this,jz(e,87));case 4:return void NEt(this,jz(e,836));case 5:return void ant(this,jz(e,138))}Lft(this,t-dY((pGt(),cLe)),eet(jz(vot(this,16),26)||cLe,t),e)},kGt.zh=function(){return pGt(),cLe},kGt.Bh=function(t){switch(t){case 0:return void x_t(this,null);case 1:return!this.d&&(this.d=new DO(WIe,this,1)),void cUt(this.d);case 3:return void w_t(this,null);case 4:return void NEt(this,null);case 5:return void ant(this,null)}Hdt(this,t-dY((pGt(),cLe)),eet(jz(vot(this,16),26)||cLe,t))},kGt.Ib=function(){var t;return(t=new uM(CLt(this))).a+=" (expression: ",hHt(this,t),t.a+=")",t.a},bY(d7t,"EGenericTypeImpl",241),fIt(1969,1964,H8t),kGt.Xh=function(t,e){JB(this,t,e)},kGt.lk=function(t,e){return JB(this,this.gc(),t),e},kGt.pi=function(t){return Nmt(this.Gi(),t)},kGt.Zh=function(){return this.$h()},kGt.Gi=function(){return new Em(this)},kGt.$h=function(){return this._h(0)},kGt._h=function(t){return this.Gi().Zc(t)},kGt.mk=function(t,e){return vgt(this,t,!0),e},kGt.ii=function(t,e){var n;return n=txt(this,e),this.Zc(t).Rb(n),n},kGt.ji=function(t,e){vgt(this,e,!0),this.Zc(t).Rb(e)},bY(v8t,"AbstractSequentialInternalEList",1969),fIt(486,1969,H8t,GM),kGt.pi=function(t){return Nmt(this.Gi(),t)},kGt.Zh=function(){return null==this.b?(ZE(),ZE(),LLe):this.Jk()},kGt.Gi=function(){return new MD(this.a,this.b)},kGt.$h=function(){return null==this.b?(ZE(),ZE(),LLe):this.Jk()},kGt._h=function(t){var e,n;if(null==this.b){if(t<0||t>1)throw $m(new Aw(e8t+t+", size=0"));return ZE(),ZE(),LLe}for(n=this.Jk(),e=0;e<t;++e)kot(n);return n},kGt.dc=function(){var t,e,n,i,a,r;if(null!=this.b)for(n=0;n<this.b.length;++n)if(t=this.b[n],!this.Mk()||this.a.mh(t))if(r=this.a.bh(t,!1),XE(),jz(t,66).Oj()){for(i=0,a=(e=jz(r,153)).gc();i<a;++i)if(hY(e.il(i))&&null!=e.jl(i))return!1}else if(t.$j()){if(!jz(r,14).dc())return!1}else if(null!=r)return!1;return!0},kGt.Kc=function(){return Rat(this)},kGt.Zc=function(t){var e,n;if(null==this.b){if(0!=t)throw $m(new Aw(e8t+t+", size=0"));return ZE(),ZE(),LLe}for(n=this.Lk()?this.Kk():this.Jk(),e=0;e<t;++e)kot(n);return n},kGt.ii=function(t,e){throw $m(new py)},kGt.ji=function(t,e){throw $m(new py)},kGt.Jk=function(){return new ZM(this.a,this.b)},kGt.Kk=function(){return new YN(this.a,this.b)},kGt.Lk=function(){return!0},kGt.gc=function(){var t,e,n,i,a,r,o;if(a=0,null!=this.b)for(n=0;n<this.b.length;++n)if(t=this.b[n],!this.Mk()||this.a.mh(t))if(o=this.a.bh(t,!1),XE(),jz(t,66).Oj())for(i=0,r=(e=jz(o,153)).gc();i<r;++i)hY(e.il(i))&&null!=e.jl(i)&&++a;else t.$j()?a+=jz(o,14).gc():null!=o&&++a;return a},kGt.Mk=function(){return!0},bY(v8t,"EContentsEList",486),fIt(1156,486,H8t,WN),kGt.Jk=function(){return new GN(this.a,this.b)},kGt.Kk=function(){return new ZN(this.a,this.b)},kGt.Mk=function(){return!1},bY(d7t,"ENamedElementImpl/1",1156),fIt(279,1,U8t,ZM),kGt.Nb=function(t){lW(this,t)},kGt.Rb=function(t){throw $m(new py)},kGt.Nk=function(t){if(0!=this.g||this.e)throw $m(new Fw("Iterator already in use or already filtered"));this.e=t},kGt.Ob=function(){var t,e,n,i,a,r;switch(this.g){case 3:case 2:return!0;case 1:return!1;case-3:this.p?this.p.Pb():++this.n;default:if(this.k&&(this.p?wSt(this,this.p):bDt(this)))return a=this.p?this.p.Pb():this.j?this.j.pi(this.n++):this.k.Xb(this.n++),this.f?((t=jz(a,72)).ak(),n=t.dd(),this.i=n):(n=a,this.i=n),this.g=3,!0;for(;this.d<this.c.length;)if(e=this.c[this.d++],(!this.e||e.Gj()!=IDe||0!=e.aj())&&(!this.Mk()||this.b.mh(e)))if(r=this.b.bh(e,this.Lk()),this.f=(XE(),jz(e,66).Oj()),this.f||e.$j()){if(this.Lk()?(i=jz(r,15),this.k=i):(i=jz(r,69),this.k=this.j=i),iO(this.k,54)?(this.p=null,this.o=this.k.gc(),this.n=0):this.p=this.j?this.j.$h():this.k.Yc(),this.p?wSt(this,this.p):bDt(this))return a=this.p?this.p.Pb():this.j?this.j.pi(this.n++):this.k.Xb(this.n++),this.f?((t=jz(a,72)).ak(),n=t.dd(),this.i=n):(n=a,this.i=n),this.g=3,!0}else if(null!=r)return this.k=null,this.p=null,n=r,this.i=n,this.g=2,!0;return this.k=null,this.p=null,this.f=!1,this.g=1,!1}},kGt.Sb=function(){var t,e,n,i,a,r;switch(this.g){case-3:case-2:return!0;case-1:return!1;case 3:this.p?this.p.Ub():--this.n;default:if(this.k&&(this.p?xSt(this,this.p):fTt(this)))return a=this.p?this.p.Ub():this.j?this.j.pi(--this.n):this.k.Xb(--this.n),this.f?((t=jz(a,72)).ak(),n=t.dd(),this.i=n):(n=a,this.i=n),this.g=-3,!0;for(;this.d>0;)if(e=this.c[--this.d],(!this.e||e.Gj()!=IDe||0!=e.aj())&&(!this.Mk()||this.b.mh(e)))if(r=this.b.bh(e,this.Lk()),this.f=(XE(),jz(e,66).Oj()),this.f||e.$j()){if(this.Lk()?(i=jz(r,15),this.k=i):(i=jz(r,69),this.k=this.j=i),iO(this.k,54)?(this.o=this.k.gc(),this.n=this.o):this.p=this.j?this.j._h(this.k.gc()):this.k.Zc(this.k.gc()),this.p?xSt(this,this.p):fTt(this))return a=this.p?this.p.Ub():this.j?this.j.pi(--this.n):this.k.Xb(--this.n),this.f?((t=jz(a,72)).ak(),n=t.dd(),this.i=n):(n=a,this.i=n),this.g=-3,!0}else if(null!=r)return this.k=null,this.p=null,n=r,this.i=n,this.g=-2,!0;return this.k=null,this.p=null,this.g=-1,!1}},kGt.Pb=function(){return kot(this)},kGt.Tb=function(){return this.a},kGt.Ub=function(){var t;if(this.g<-1||this.Sb())return--this.a,this.g=0,t=this.i,this.Sb(),t;throw $m(new yy)},kGt.Vb=function(){return this.a-1},kGt.Qb=function(){throw $m(new py)},kGt.Lk=function(){return!1},kGt.Wb=function(t){throw $m(new py)},kGt.Mk=function(){return!0},kGt.a=0,kGt.d=0,kGt.f=!1,kGt.g=0,kGt.n=0,kGt.o=0,bY(v8t,"EContentsEList/FeatureIteratorImpl",279),fIt(697,279,U8t,YN),kGt.Lk=function(){return!0},bY(v8t,"EContentsEList/ResolvingFeatureIteratorImpl",697),fIt(1157,697,U8t,ZN),kGt.Mk=function(){return!1},bY(d7t,"ENamedElementImpl/1/1",1157),fIt(1158,279,U8t,GN),kGt.Mk=function(){return!1},bY(d7t,"ENamedElementImpl/1/2",1158),fIt(36,143,t8t,l3,u3,Jq,v8,L9,Q6,znt,k0,Hnt,E0,K6,C0,qnt,S0,X6,T0,Unt,A0,Qq,w8,HK,Vnt,D0,J6,I0),kGt._i=function(){return c8(this)},kGt.gj=function(){var t;return(t=c8(this))?t.zj():null},kGt.yi=function(t){return-1==this.b&&this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj())),this.c.Og(this.b,t)},kGt.Ai=function(){return this.c},kGt.hj=function(){var t;return!!(t=c8(this))&&t.Kj()},kGt.b=-1,bY(d7t,"ENotificationImpl",36),fIt(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},Dv),kGt.Qg=function(t){return Cxt(this,t)},kGt._g=function(t,e,n){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return cM(),!!(256&this.Bb);case 3:return cM(),!!(512&this.Bb);case 4:return nht(this.s);case 5:return nht(this.t);case 6:return cM(),(i=this.t)>1||-1==i;case 7:return cM(),this.s>=1;case 8:return e?Txt(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?jz(this.Cb,26):null;case 11:return!this.d&&(this.d=new LO(SLe,this,11)),this.d;case 12:return!this.c&&(this.c=new tW(GIe,this,12,10)),this.c;case 13:return!this.a&&(this.a=new oP(this,this)),this.a;case 14:return $9(this)}return V8(this,t-dY((pGt(),fLe)),eet(jz(vot(this,16),26)||fLe,t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 10:return this.Cb&&(n=(i=this.Db>>16)>=0?Cxt(this,n):this.Cb.ih(this,-1-i,null,n)),_jt(this,t,10,n);case 12:return!this.c&&(this.c=new tW(GIe,this,12,10)),Kgt(this.c,t,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),fLe),e),66).Nj().Qj(this,ubt(this),e-dY((pGt(),fLe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 9:return gY(this,n);case 10:return _jt(this,null,10,n);case 11:return!this.d&&(this.d=new LO(SLe,this,11)),Fmt(this.d,t,n);case 12:return!this.c&&(this.c=new tW(GIe,this,12,10)),Fmt(this.c,t,n);case 14:return Fmt($9(this),t,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),fLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),fLe)),t,n)},kGt.lh=function(t){var e;switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(e=this.t)>1||-1==e;case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yG(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yG(this.q).i);case 10:return!(this.Db>>16!=10||!jz(this.Cb,26));case 11:return!!this.d&&0!=this.d.i;case 12:return!!this.c&&0!=this.c.i;case 13:return!(!this.a||0==$9(this.a.a).i||this.b&&Pyt(this.b));case 14:return!!this.b&&Pyt(this.b)}return T4(this,t-dY((pGt(),fLe)),eet(jz(vot(this,16),26)||fLe,t))},kGt.sh=function(t,e){var n;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void Oat(this,kB(e));case 2:return void Kdt(this,zw(RB(e)));case 3:return void Qdt(this,zw(RB(e)));case 4:return void Lnt(this,jz(e,19).a);case 5:return void Ont(this,jz(e,19).a);case 8:return void Tut(this,jz(e,138));case 9:return void((n=zkt(this,jz(e,87),null))&&n.Fi());case 11:return!this.d&&(this.d=new LO(SLe,this,11)),cUt(this.d),!this.d&&(this.d=new LO(SLe,this,11)),void pY(this.d,jz(e,14));case 12:return!this.c&&(this.c=new tW(GIe,this,12,10)),cUt(this.c),!this.c&&(this.c=new tW(GIe,this,12,10)),void pY(this.c,jz(e,14));case 13:return!this.a&&(this.a=new oP(this,this)),mUt(this.a),!this.a&&(this.a=new oP(this,this)),void pY(this.a,jz(e,14));case 14:return cUt($9(this)),void pY($9(this),jz(e,14))}Lft(this,t-dY((pGt(),fLe)),eet(jz(vot(this,16),26)||fLe,t),e)},kGt.zh=function(){return pGt(),fLe},kGt.Bh=function(t){var e;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return void Oat(this,null);case 2:return void Kdt(this,!0);case 3:return void Qdt(this,!0);case 4:return void Lnt(this,0);case 5:return void Ont(this,1);case 8:return void Tut(this,null);case 9:return void((e=zkt(this,null,null))&&e.Fi());case 11:return!this.d&&(this.d=new LO(SLe,this,11)),void cUt(this.d);case 12:return!this.c&&(this.c=new tW(GIe,this,12,10)),void cUt(this.c);case 13:return void(this.a&&mUt(this.a));case 14:return void(this.b&&cUt(this.b))}Hdt(this,t-dY((pGt(),fLe)),eet(jz(vot(this,16),26)||fLe,t))},kGt.Gh=function(){var t,e;if(this.c)for(t=0,e=this.c.i;t<e;++t)bN(Yet(this.c,t));Txt(this),this.Bb|=1},bY(d7t,"EOperationImpl",399),fIt(505,742,z8t,oP),kGt.Hi=function(t,e){lB(this,t,jz(e,138))},kGt.Ii=function(t){eL(this,jz(t,138))},kGt.Oi=function(t){return jz(Yet($9(this.a),t),87).c||(pGt(),lLe)},kGt.Ti=function(t){return jz(uBt($9(this.a),t),87).c||(pGt(),lLe)},kGt.Ui=function(t,e){return hbt(this,t,jz(e,138))},kGt.ai=function(){return!1},kGt.Zi=function(t,e,n,i,a){return null},kGt.Ji=function(){return new mm(this)},kGt.Ki=function(){cUt($9(this.a))},kGt.Li=function(t){return sht(this,t)},kGt.Mi=function(t){var e;for(e=t.Kc();e.Ob();)if(!sht(this,e.Pb()))return!1;return!0},kGt.Ni=function(t){var e,n,i;if(iO(t,15)&&(i=jz(t,15)).gc()==$9(this.a).i){for(e=i.Kc(),n=new AO(this);e.Ob();)if(HA(e.Pb())!==HA(wmt(n)))return!1;return!0}return!1},kGt.Pi=function(){var t,e,n;for(e=1,t=new AO($9(this.a));t.e!=t.i.gc();)e=31*e+((n=jz(wmt(t),87).c||(pGt(),lLe))?Qct(n):0);return e},kGt.Qi=function(t){var e,n,i;for(i=0,n=new AO($9(this.a));n.e!=n.i.gc();){if(e=jz(wmt(n),87),HA(t)===HA(e.c||(pGt(),lLe)))return i;++i}return-1},kGt.Ri=function(){return 0==$9(this.a).i},kGt.Si=function(){return null},kGt.Vi=function(){return $9(this.a).i},kGt.Wi=function(){var t,e,n,i,a;for(a=$9(this.a).i,i=O5(Dte,zGt,1,a,5,1),n=0,e=new AO($9(this.a));e.e!=e.i.gc();)t=jz(wmt(e),87),i[n++]=t.c||(pGt(),lLe);return i},kGt.Xi=function(t){var e,n,i;for(i=$9(this.a).i,t.length<i&&(t=Nnt(tlt(t).c,i)),t.length>i&&DY(t,i,null),n=0,e=new AO($9(this.a));e.e!=e.i.gc();)DY(t,n++,jz(wmt(e),87).c||(pGt(),lLe));return t},kGt.Yi=function(){var t,e,n,i;for((i=new kx).a+="[",t=$9(this.a),e=0,n=$9(this.a).i;e<n;)iD(i,vM(jz(Yet(t,e),87).c||(pGt(),lLe))),++e<n&&(i.a+=jGt);return i.a+="]",i.a},kGt.$i=function(t){},kGt.aj=function(){return 13},kGt.Bk=function(){return!0},kGt.bj=function(){return!1},kGt.Ck=function(){return!1},kGt.Dk=function(){return!1},kGt.Ek=function(){return!0},kGt.rk=function(){return!1},kGt.Fk=function(){return!0},kGt.wj=function(t){return iO(t,138)},kGt.fj=function(){return Y0(this.a)},kGt.hi=function(){return!0},kGt.ni=function(){return!0},bY(d7t,"EOperationImpl/1",505),fIt(1340,1964,LZt,mm),kGt.Zc=function(t){return cit(this.a,t)},kGt.gc=function(){return $9(this.a.a).i},bY(d7t,"EOperationImpl/1/1",1340),fIt(1341,545,B8t,KV),kGt.ii=function(t,e){var n;return n=jz(Tht(this,t,e),87),mI(this.e)&&Iy(this,new w8(this.a,7,(pGt(),gLe),nht(e),n.c||lLe,t)),n},kGt.jj=function(t,e){return kdt(this,jz(t,87),e)},kGt.kj=function(t,e){return Edt(this,jz(t,87),e)},kGt.lj=function(t,e,n){return Ybt(this,jz(t,87),jz(e,87),n)},kGt.Zi=function(t,e,n,i,a){switch(t){case 3:return yQ(this,t,e,n,i,this.i>1);case 5:return yQ(this,t,e,n,i,this.i-jz(n,15).gc()>0);default:return new L9(this.e,t,this.c,e,n,i,!0)}},kGt.ij=function(){return!0},kGt.fj=function(){return Pyt(this)},kGt.Xj=function(){cUt(this)},bY(d7t,"EOperationImpl/2",1341),fIt(498,1,{1938:1,498:1},TA),bY(d7t,"EPackageImpl/1",498),fIt(16,85,B8t,tW),kGt.zk=function(){return this.d},kGt.Ak=function(){return this.b},kGt.Dk=function(){return!0},kGt.b=0,bY(v8t,"EObjectContainmentWithInverseEList",16),fIt(353,16,B8t,tF),kGt.Ek=function(){return!0},kGt.li=function(t,e){return UDt(this,t,jz(e,56))},bY(v8t,"EObjectContainmentWithInverseEList/Resolving",353),fIt(298,353,B8t,Kq),kGt.ci=function(){this.a.tb=null},bY(d7t,"EPackageImpl/2",298),fIt(1228,1,{},Dc),bY(d7t,"EPackageImpl/3",1228),fIt(718,43,tXt,Lv),kGt._b=function(t){return qA(t)?tX(this,t):!!AX(this.f,t)},bY(d7t,"EPackageRegistryImpl",718),fIt(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},Iv),kGt.Qg=function(t){return Sxt(this,t)},kGt._g=function(t,e,n){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return cM(),!!(256&this.Bb);case 3:return cM(),!!(512&this.Bb);case 4:return nht(this.s);case 5:return nht(this.t);case 6:return cM(),(i=this.t)>1||-1==i;case 7:return cM(),this.s>=1;case 8:return e?Txt(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?jz(this.Cb,59):null}return V8(this,t-dY((pGt(),bLe)),eet(jz(vot(this,16),26)||bLe,t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 10:return this.Cb&&(n=(i=this.Db>>16)>=0?Sxt(this,n):this.Cb.ih(this,-1-i,null,n)),_jt(this,t,10,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),bLe),e),66).Nj().Qj(this,ubt(this),e-dY((pGt(),bLe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 9:return gY(this,n);case 10:return _jt(this,null,10,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),bLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),bLe)),t,n)},kGt.lh=function(t){var e;switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(e=this.t)>1||-1==e;case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yG(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yG(this.q).i);case 10:return!(this.Db>>16!=10||!jz(this.Cb,59))}return T4(this,t-dY((pGt(),bLe)),eet(jz(vot(this,16),26)||bLe,t))},kGt.zh=function(){return pGt(),bLe},bY(d7t,"EParameterImpl",509),fIt(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},pB),kGt._g=function(t,e,n){var i,a;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return cM(),!!(256&this.Bb);case 3:return cM(),!!(512&this.Bb);case 4:return nht(this.s);case 5:return nht(this.t);case 6:return cM(),(a=this.t)>1||-1==a;case 7:return cM(),this.s>=1;case 8:return e?Txt(this):this.r;case 9:return this.q;case 10:return cM(),!!(this.Bb&w7t);case 11:return cM(),!!(this.Bb&k8t);case 12:return cM(),!!(this.Bb&FKt);case 13:return this.j;case 14:return HOt(this);case 15:return cM(),!!(this.Bb&_8t);case 16:return cM(),!!(this.Bb&lZt);case 17:return fQ(this);case 18:return cM(),!!(this.Bb&l7t);case 19:return cM(),!!((i=Syt(this))&&i.Bb&l7t);case 20:return cM(),!!(this.Bb&$Kt);case 21:return e?Syt(this):this.b;case 22:return e?Tct(this):B6(this);case 23:return!this.a&&(this.a=new NO(FIe,this,23)),this.a}return V8(this,t-dY((pGt(),mLe)),eet(jz(vot(this,16),26)||mLe,t),e,n)},kGt.lh=function(t){var e,n;switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(n=this.t)>1||-1==n;case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yG(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yG(this.q).i);case 10:return 0==(this.Bb&w7t);case 11:return 0!=(this.Bb&k8t);case 12:return 0!=(this.Bb&FKt);case 13:return null!=this.j;case 14:return null!=HOt(this);case 15:return 0!=(this.Bb&_8t);case 16:return 0!=(this.Bb&lZt);case 17:return!!fQ(this);case 18:return 0!=(this.Bb&l7t);case 19:return!!(e=Syt(this))&&0!=(e.Bb&l7t);case 20:return 0==(this.Bb&$Kt);case 21:return!!this.b;case 22:return!!B6(this);case 23:return!!this.a&&0!=this.a.i}return T4(this,t-dY((pGt(),mLe)),eet(jz(vot(this,16),26)||mLe,t))},kGt.sh=function(t,e){var n;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void KQ(this,kB(e));case 2:return void Kdt(this,zw(RB(e)));case 3:return void Qdt(this,zw(RB(e)));case 4:return void Lnt(this,jz(e,19).a);case 5:return void Ont(this,jz(e,19).a);case 8:return void Tut(this,jz(e,138));case 9:return void((n=zkt(this,jz(e,87),null))&&n.Fi());case 10:return void Dht(this,zw(RB(e)));case 11:return void Oht(this,zw(RB(e)));case 12:return void Iht(this,zw(RB(e)));case 13:return void PA(this,kB(e));case 15:return void Lht(this,zw(RB(e)));case 16:return void Hht(this,zw(RB(e)));case 18:return void ZQ(this,zw(RB(e)));case 20:return void qht(this,zw(RB(e)));case 21:return void iat(this,jz(e,18));case 23:return!this.a&&(this.a=new NO(FIe,this,23)),cUt(this.a),!this.a&&(this.a=new NO(FIe,this,23)),void pY(this.a,jz(e,14))}Lft(this,t-dY((pGt(),mLe)),eet(jz(vot(this,16),26)||mLe,t),e)},kGt.zh=function(){return pGt(),mLe},kGt.Bh=function(t){var e;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return iO(this.Cb,88)&&DTt(E6(jz(this.Cb,88)),4),void Oat(this,null);case 2:return void Kdt(this,!0);case 3:return void Qdt(this,!0);case 4:return void Lnt(this,0);case 5:return void Ont(this,1);case 8:return void Tut(this,null);case 9:return void((e=zkt(this,null,null))&&e.Fi());case 10:return void Dht(this,!0);case 11:return void Oht(this,!1);case 12:return void Iht(this,!1);case 13:return this.i=null,void rat(this,null);case 15:return void Lht(this,!1);case 16:return void Hht(this,!1);case 18:return Vht(this,!1),void(iO(this.Cb,88)&&DTt(E6(jz(this.Cb,88)),2));case 20:return void qht(this,!0);case 21:return void iat(this,null);case 23:return!this.a&&(this.a=new NO(FIe,this,23)),void cUt(this.a)}Hdt(this,t-dY((pGt(),mLe)),eet(jz(vot(this,16),26)||mLe,t))},kGt.Gh=function(){Tct(this),vZ(j9((TSt(),KLe),this)),Txt(this),this.Bb|=1},kGt.Lj=function(){return Syt(this)},kGt.qk=function(){var t;return!!(t=Syt(this))&&0!=(t.Bb&l7t)},kGt.rk=function(){return 0!=(this.Bb&l7t)},kGt.sk=function(){return 0!=(this.Bb&$Kt)},kGt.nk=function(t,e){return this.c=null,Cdt(this,t,e)},kGt.Ib=function(){var t;return 64&this.Db?RPt(this):((t=new lM(RPt(this))).a+=" (containment: ",y_(t,0!=(this.Bb&l7t)),t.a+=", resolveProxies: ",y_(t,0!=(this.Bb&$Kt)),t.a+=")",t.a)},bY(d7t,"EReferenceImpl",99),fIt(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},Ic),kGt.Fb=function(t){return this===t},kGt.cd=function(){return this.b},kGt.dd=function(){return this.c},kGt.Hb=function(){return EM(this)},kGt.Uh=function(t){bU(this,kB(t))},kGt.ed=function(t){return DH(this,kB(t))},kGt._g=function(t,e,n){switch(t){case 0:return this.b;case 1:return this.c}return V8(this,t-dY((pGt(),yLe)),eet(jz(vot(this,16),26)||yLe,t),e,n)},kGt.lh=function(t){switch(t){case 0:return null!=this.b;case 1:return null!=this.c}return T4(this,t-dY((pGt(),yLe)),eet(jz(vot(this,16),26)||yLe,t))},kGt.sh=function(t,e){switch(t){case 0:return void mU(this,kB(e));case 1:return void Pit(this,kB(e))}Lft(this,t-dY((pGt(),yLe)),eet(jz(vot(this,16),26)||yLe,t),e)},kGt.zh=function(){return pGt(),yLe},kGt.Bh=function(t){switch(t){case 0:return void Bit(this,null);case 1:return void Pit(this,null)}Hdt(this,t-dY((pGt(),yLe)),eet(jz(vot(this,16),26)||yLe,t))},kGt.Sh=function(){var t;return-1==this.a&&(t=this.b,this.a=null==t?0:myt(t)),this.a},kGt.Th=function(t){this.a=t},kGt.Ib=function(){var t;return 64&this.Db?CLt(this):((t=new lM(CLt(this))).a+=" (key: ",iD(t,this.b),t.a+=", value: ",iD(t,this.c),t.a+=")",t.a)},kGt.a=-1,kGt.b=null,kGt.c=null;var MLe,NLe,BLe,PLe,FLe,jLe,$Le,zLe,HLe,ULe,VLe=bY(d7t,"EStringToStringMapEntryImpl",548),qLe=dU(v8t,"FeatureMap/Entry/Internal");fIt(565,1,V8t),kGt.Ok=function(t){return this.Pk(jz(t,49))},kGt.Pk=function(t){return this.Ok(t)},kGt.Fb=function(t){var e,n;return this===t||!!iO(t,72)&&(e=jz(t,72)).ak()==this.c&&(null==(n=this.dd())?null==e.dd():Odt(n,e.dd()))},kGt.ak=function(){return this.c},kGt.Hb=function(){var t;return t=this.dd(),Qct(this.c)^(null==t?0:Qct(t))},kGt.Ib=function(){var t,e;return e=qet((t=this.c).Hj()).Ph(),t.ne(),(null!=e&&0!=e.length?e+":"+t.ne():t.ne())+"="+this.dd()},bY(d7t,"EStructuralFeatureImpl/BasicFeatureMapEntry",565),fIt(776,565,V8t,nP),kGt.Pk=function(t){return new nP(this.c,t)},kGt.dd=function(){return this.a},kGt.Qk=function(t,e,n){return Ert(this,t,this.a,e,n)},kGt.Rk=function(t,e,n){return Crt(this,t,this.a,e,n)},bY(d7t,"EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry",776),fIt(1314,1,{},AA),kGt.Pj=function(t,e,n,i,a){return jz(k8(t,this.b),215).nl(this.a).Wj(i)},kGt.Qj=function(t,e,n,i,a){return jz(k8(t,this.b),215).el(this.a,i,a)},kGt.Rj=function(t,e,n,i,a){return jz(k8(t,this.b),215).fl(this.a,i,a)},kGt.Sj=function(t,e,n){return jz(k8(t,this.b),215).nl(this.a).fj()},kGt.Tj=function(t,e,n,i){jz(k8(t,this.b),215).nl(this.a).Wb(i)},kGt.Uj=function(t,e,n){return jz(k8(t,this.b),215).nl(this.a)},kGt.Vj=function(t,e,n){jz(k8(t,this.b),215).nl(this.a).Xj()},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator",1314),fIt(89,1,{},Ez,uK,NX,h3),kGt.Pj=function(t,e,n,i,a){var r;if(null==(r=e.Ch(n))&&e.Dh(n,r=nGt(this,t)),!a)switch(this.e){case 50:case 41:return jz(r,589).sj();case 40:return jz(r,215).kl()}return r},kGt.Qj=function(t,e,n,i,a){var r;return null==(r=e.Ch(n))&&e.Dh(n,r=nGt(this,t)),jz(r,69).lk(i,a)},kGt.Rj=function(t,e,n,i,a){var r;return null!=(r=e.Ch(n))&&(a=jz(r,69).mk(i,a)),a},kGt.Sj=function(t,e,n){var i;return null!=(i=e.Ch(n))&&jz(i,76).fj()},kGt.Tj=function(t,e,n,i){var a;!(a=jz(e.Ch(n),76))&&e.Dh(n,a=nGt(this,t)),a.Wb(i)},kGt.Uj=function(t,e,n){var i;return null==(i=e.Ch(n))&&e.Dh(n,i=nGt(this,t)),iO(i,76)?jz(i,76):new xm(jz(e.Ch(n),15))},kGt.Vj=function(t,e,n){var i;!(i=jz(e.Ch(n),76))&&e.Dh(n,i=nGt(this,t)),i.Xj()},kGt.b=0,kGt.e=0,bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateMany",89),fIt(504,1,{}),kGt.Qj=function(t,e,n,i,a){throw $m(new py)},kGt.Rj=function(t,e,n,i,a){throw $m(new py)},kGt.Uj=function(t,e,n){return new dK(this,t,e,n)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingle",504),fIt(1331,1,w8t,dK),kGt.Wj=function(t){return this.a.Pj(this.c,this.d,this.b,t,!0)},kGt.fj=function(){return this.a.Sj(this.c,this.d,this.b)},kGt.Wb=function(t){this.a.Tj(this.c,this.d,this.b,t)},kGt.Xj=function(){this.a.Vj(this.c,this.d,this.b)},kGt.b=0,bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingle/1",1331),fIt(769,504,{},mJ),kGt.Pj=function(t,e,n,i,a){return pFt(t,t.eh(),t.Vg())==this.b?this.sk()&&i?aIt(t):t.eh():null},kGt.Qj=function(t,e,n,i,a){var r,o;return t.eh()&&(a=(r=t.Vg())>=0?t.Qg(a):t.eh().ih(t,-1-r,null,a)),o=Dgt(t.Tg(),this.e),t.Sg(i,o,a)},kGt.Rj=function(t,e,n,i,a){var r;return r=Dgt(t.Tg(),this.e),t.Sg(null,r,a)},kGt.Sj=function(t,e,n){var i;return i=Dgt(t.Tg(),this.e),!!t.eh()&&t.Vg()==i},kGt.Tj=function(t,e,n,i){var a,r,o,s,c;if(null!=i&&!E$t(this.a,i))throw $m(new Bw(q8t+(iO(i,56)?g_t(jz(i,56).Tg()):ret(tlt(i)))+W8t+this.a+"'"));if(a=t.eh(),o=Dgt(t.Tg(),this.e),HA(i)!==HA(a)||t.Vg()!=o&&null!=i){if(mxt(t,jz(i,56)))throw $m(new Pw(f7t+t.Ib()));c=null,a&&(c=(r=t.Vg())>=0?t.Qg(c):t.eh().ih(t,-1-r,null,c)),(s=jz(i,49))&&(c=s.gh(t,Dgt(s.Tg(),this.b),null,c)),(c=t.Sg(s,o,c))&&c.Fi()}else t.Lg()&&t.Mg()&&hot(t,new Jq(t,1,o,i,i))},kGt.Vj=function(t,e,n){var i,a,r;t.eh()?(r=(i=t.Vg())>=0?t.Qg(null):t.eh().ih(t,-1-i,null,null),a=Dgt(t.Tg(),this.e),(r=t.Sg(null,a,r))&&r.Fi()):t.Lg()&&t.Mg()&&hot(t,new Qq(t,1,this.e,null,null))},kGt.sk=function(){return!1},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainer",769),fIt(1315,769,{},Cz),kGt.sk=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving",1315),fIt(563,504,{}),kGt.Pj=function(t,e,n,i,a){var r;return null==(r=e.Ch(n))?this.b:HA(r)===HA(MLe)?null:r},kGt.Sj=function(t,e,n){var i;return null!=(i=e.Ch(n))&&(HA(i)===HA(MLe)||!Odt(i,this.b))},kGt.Tj=function(t,e,n,i){var a,r;t.Lg()&&t.Mg()?(a=null==(r=e.Ch(n))?this.b:HA(r)===HA(MLe)?null:r,null==i?null!=this.c?(e.Dh(n,null),i=this.b):null!=this.b?e.Dh(n,MLe):e.Dh(n,null):(this.Sk(i),e.Dh(n,i)),hot(t,this.d.Tk(t,1,this.e,a,i))):null==i?null!=this.c?e.Dh(n,null):null!=this.b?e.Dh(n,MLe):e.Dh(n,null):(this.Sk(i),e.Dh(n,i))},kGt.Vj=function(t,e,n){var i,a;t.Lg()&&t.Mg()?(i=null==(a=e.Ch(n))?this.b:HA(a)===HA(MLe)?null:a,e.Eh(n),hot(t,this.d.Tk(t,1,this.e,i,this.b))):e.Eh(n)},kGt.Sk=function(t){throw $m(new dy)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData",563),fIt(Y8t,1,{},Lc),kGt.Tk=function(t,e,n,i,a){return new Qq(t,e,n,i,a)},kGt.Uk=function(t,e,n,i,a,r){return new HK(t,e,n,i,a,r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator",Y8t),fIt(1332,Y8t,{},Oc),kGt.Tk=function(t,e,n,i,a){return new J6(t,e,n,zw(RB(i)),zw(RB(a)))},kGt.Uk=function(t,e,n,i,a,r){return new I0(t,e,n,zw(RB(i)),zw(RB(a)),r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1",1332),fIt(1333,Y8t,{},Mc),kGt.Tk=function(t,e,n,i,a){return new znt(t,e,n,jz(i,217).a,jz(a,217).a)},kGt.Uk=function(t,e,n,i,a,r){return new k0(t,e,n,jz(i,217).a,jz(a,217).a,r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2",1333),fIt(1334,Y8t,{},Nc),kGt.Tk=function(t,e,n,i,a){return new Hnt(t,e,n,jz(i,172).a,jz(a,172).a)},kGt.Uk=function(t,e,n,i,a,r){return new E0(t,e,n,jz(i,172).a,jz(a,172).a,r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3",1334),fIt(1335,Y8t,{},Bc),kGt.Tk=function(t,e,n,i,a){return new K6(t,e,n,Hw(_B(i)),Hw(_B(a)))},kGt.Uk=function(t,e,n,i,a,r){return new C0(t,e,n,Hw(_B(i)),Hw(_B(a)),r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4",1335),fIt(1336,Y8t,{},Pc),kGt.Tk=function(t,e,n,i,a){return new qnt(t,e,n,jz(i,155).a,jz(a,155).a)},kGt.Uk=function(t,e,n,i,a,r){return new S0(t,e,n,jz(i,155).a,jz(a,155).a,r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1336),fIt(1337,Y8t,{},Fc),kGt.Tk=function(t,e,n,i,a){return new X6(t,e,n,jz(i,19).a,jz(a,19).a)},kGt.Uk=function(t,e,n,i,a,r){return new T0(t,e,n,jz(i,19).a,jz(a,19).a,r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6",1337),fIt(1338,Y8t,{},jc),kGt.Tk=function(t,e,n,i,a){return new Unt(t,e,n,jz(i,162).a,jz(a,162).a)},kGt.Uk=function(t,e,n,i,a,r){return new A0(t,e,n,jz(i,162).a,jz(a,162).a,r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7",1338),fIt(1339,Y8t,{},$c),kGt.Tk=function(t,e,n,i,a){return new Vnt(t,e,n,jz(i,184).a,jz(a,184).a)},kGt.Uk=function(t,e,n,i,a,r){return new D0(t,e,n,jz(i,184).a,jz(a,184).a,r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8",1339),fIt(1317,563,{},hK),kGt.Sk=function(t){if(!this.a.wj(t))throw $m(new Bw(q8t+tlt(t)+W8t+this.a+"'"))},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic",1317),fIt(1318,563,{},XV),kGt.Sk=function(t){},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic",1318),fIt(770,563,{}),kGt.Sj=function(t,e,n){return null!=e.Ch(n)},kGt.Tj=function(t,e,n,i){var a,r;t.Lg()&&t.Mg()?(a=!0,null==(r=e.Ch(n))?(a=!1,r=this.b):HA(r)===HA(MLe)&&(r=null),null==i?null!=this.c?(e.Dh(n,null),i=this.b):e.Dh(n,MLe):(this.Sk(i),e.Dh(n,i)),hot(t,this.d.Uk(t,1,this.e,r,i,!a))):null==i?null!=this.c?e.Dh(n,null):e.Dh(n,MLe):(this.Sk(i),e.Dh(n,i))},kGt.Vj=function(t,e,n){var i,a;t.Lg()&&t.Mg()?(i=!0,null==(a=e.Ch(n))?(i=!1,a=this.b):HA(a)===HA(MLe)&&(a=null),e.Eh(n),hot(t,this.d.Uk(t,2,this.e,a,this.b,i))):e.Eh(n)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable",770),fIt(1319,770,{},fK),kGt.Sk=function(t){if(!this.a.wj(t))throw $m(new Bw(q8t+tlt(t)+W8t+this.a+"'"))},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic",1319),fIt(1320,770,{},JV),kGt.Sk=function(t){},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic",1320),fIt(398,504,{},iV),kGt.Pj=function(t,e,n,i,a){var r,o,s,c,l;if(l=e.Ch(n),this.Kj()&&HA(l)===HA(MLe))return null;if(this.sk()&&i&&null!=l){if((s=jz(l,49)).kh()&&s!=(c=tdt(t,s))){if(!E$t(this.a,c))throw $m(new Bw(q8t+tlt(c)+W8t+this.a+"'"));e.Dh(n,l=c),this.rk()&&(r=jz(c,49),o=s.ih(t,this.b?Dgt(s.Tg(),this.b):-1-Dgt(t.Tg(),this.e),null,null),!r.eh()&&(o=r.gh(t,this.b?Dgt(r.Tg(),this.b):-1-Dgt(t.Tg(),this.e),null,o)),o&&o.Fi()),t.Lg()&&t.Mg()&&hot(t,new Qq(t,9,this.e,s,c))}return l}return l},kGt.Qj=function(t,e,n,i,a){var r,o;return HA(o=e.Ch(n))===HA(MLe)&&(o=null),e.Dh(n,i),this.bj()?HA(o)!==HA(i)&&null!=o&&(a=(r=jz(o,49)).ih(t,Dgt(r.Tg(),this.b),null,a)):this.rk()&&null!=o&&(a=jz(o,49).ih(t,-1-Dgt(t.Tg(),this.e),null,a)),t.Lg()&&t.Mg()&&(!a&&(a=new FR(4)),a.Ei(new Qq(t,1,this.e,o,i))),a},kGt.Rj=function(t,e,n,i,a){var r;return HA(r=e.Ch(n))===HA(MLe)&&(r=null),e.Eh(n),t.Lg()&&t.Mg()&&(!a&&(a=new FR(4)),this.Kj()?a.Ei(new Qq(t,2,this.e,r,null)):a.Ei(new Qq(t,1,this.e,r,null))),a},kGt.Sj=function(t,e,n){return null!=e.Ch(n)},kGt.Tj=function(t,e,n,i){var a,r,o,s,c;if(null!=i&&!E$t(this.a,i))throw $m(new Bw(q8t+(iO(i,56)?g_t(jz(i,56).Tg()):ret(tlt(i)))+W8t+this.a+"'"));s=null!=(c=e.Ch(n)),this.Kj()&&HA(c)===HA(MLe)&&(c=null),o=null,this.bj()?HA(c)!==HA(i)&&(null!=c&&(o=(a=jz(c,49)).ih(t,Dgt(a.Tg(),this.b),null,o)),null!=i&&(o=(a=jz(i,49)).gh(t,Dgt(a.Tg(),this.b),null,o))):this.rk()&&HA(c)!==HA(i)&&(null!=c&&(o=jz(c,49).ih(t,-1-Dgt(t.Tg(),this.e),null,o)),null!=i&&(o=jz(i,49).gh(t,-1-Dgt(t.Tg(),this.e),null,o))),null==i&&this.Kj()?e.Dh(n,MLe):e.Dh(n,i),t.Lg()&&t.Mg()?(r=new HK(t,1,this.e,c,i,this.Kj()&&!s),o?(o.Ei(r),o.Fi()):hot(t,r)):o&&o.Fi()},kGt.Vj=function(t,e,n){var i,a,r,o,s;o=null!=(s=e.Ch(n)),this.Kj()&&HA(s)===HA(MLe)&&(s=null),r=null,null!=s&&(this.bj()?r=(i=jz(s,49)).ih(t,Dgt(i.Tg(),this.b),null,r):this.rk()&&(r=jz(s,49).ih(t,-1-Dgt(t.Tg(),this.e),null,r))),e.Eh(n),t.Lg()&&t.Mg()?(a=new HK(t,this.Kj()?2:1,this.e,s,null,o),r?(r.Ei(a),r.Fi()):hot(t,a)):r&&r.Fi()},kGt.bj=function(){return!1},kGt.rk=function(){return!1},kGt.sk=function(){return!1},kGt.Kj=function(){return!1},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObject",398),fIt(564,398,{},XN),kGt.rk=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment",564),fIt(1323,564,{},JN),kGt.sk=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving",1323),fIt(772,564,{},QN),kGt.Kj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable",772),fIt(1325,772,{},tB),kGt.sk=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving",1325),fIt(640,564,{},Sz),kGt.bj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse",640),fIt(1324,640,{},Dz),kGt.sk=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving",1324),fIt(773,640,{},Iz),kGt.Kj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable",773),fIt(1326,773,{},Lz),kGt.sk=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving",1326),fIt(641,398,{},eB),kGt.sk=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving",641),fIt(1327,641,{},nB),kGt.Kj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable",1327),fIt(774,641,{},Tz),kGt.bj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse",774),fIt(1328,774,{},Oz),kGt.Kj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable",1328),fIt(1321,398,{},iB),kGt.Kj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable",1321),fIt(771,398,{},Az),kGt.bj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse",771),fIt(1322,771,{},Mz),kGt.Kj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable",1322),fIt(775,565,V8t,aG),kGt.Pk=function(t){return new aG(this.a,this.c,t)},kGt.dd=function(){return this.b},kGt.Qk=function(t,e,n){return M5(this,t,this.b,n)},kGt.Rk=function(t,e,n){return N5(this,t,this.b,n)},bY(d7t,"EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry",775),fIt(1329,1,w8t,xm),kGt.Wj=function(t){return this.a},kGt.fj=function(){return iO(this.a,95)?jz(this.a,95).fj():!this.a.dc()},kGt.Wb=function(t){this.a.$b(),this.a.Gc(jz(t,15))},kGt.Xj=function(){iO(this.a,95)?jz(this.a,95).Xj():this.a.$b()},bY(d7t,"EStructuralFeatureImpl/SettingMany",1329),fIt(1330,565,V8t,g3),kGt.Ok=function(t){return new iP((qUt(),POe),this.b.Ih(this.a,t))},kGt.dd=function(){return null},kGt.Qk=function(t,e,n){return n},kGt.Rk=function(t,e,n){return n},bY(d7t,"EStructuralFeatureImpl/SimpleContentFeatureMapEntry",1330),fIt(642,565,V8t,iP),kGt.Ok=function(t){return new iP(this.c,t)},kGt.dd=function(){return this.a},kGt.Qk=function(t,e,n){return n},kGt.Rk=function(t,e,n){return n},bY(d7t,"EStructuralFeatureImpl/SimpleFeatureMapEntry",642),fIt(391,497,l5t,zc),kGt.ri=function(t){return O5($Ie,zGt,26,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"ESuperAdapter/1",391),fIt(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},Hc),kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return!this.a&&(this.a=new aV(this,WIe,this)),this.a}return V8(this,t-dY((pGt(),xLe)),eet(jz(vot(this,16),26)||xLe,t),e,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 2:return!this.a&&(this.a=new aV(this,WIe,this)),Fmt(this.a,t,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),xLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),xLe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return!!this.a&&0!=this.a.i}return T4(this,t-dY((pGt(),xLe)),eet(jz(vot(this,16),26)||xLe,t))},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void Oat(this,kB(e));case 2:return!this.a&&(this.a=new aV(this,WIe,this)),cUt(this.a),!this.a&&(this.a=new aV(this,WIe,this)),void pY(this.a,jz(e,14))}Lft(this,t-dY((pGt(),xLe)),eet(jz(vot(this,16),26)||xLe,t),e)},kGt.zh=function(){return pGt(),xLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return void Oat(this,null);case 2:return!this.a&&(this.a=new aV(this,WIe,this)),void cUt(this.a)}Hdt(this,t-dY((pGt(),xLe)),eet(jz(vot(this,16),26)||xLe,t))},bY(d7t,"ETypeParameterImpl",444),fIt(445,85,B8t,aV),kGt.cj=function(t,e){return Lkt(this,jz(t,87),e)},kGt.dj=function(t,e){return Okt(this,jz(t,87),e)},bY(d7t,"ETypeParameterImpl/1",445),fIt(634,43,tXt,Ov),kGt.ec=function(){return new Rm(this)},bY(d7t,"ETypeParameterImpl/2",634),fIt(556,QGt,tZt,Rm),kGt.Fc=function(t){return ZP(this,jz(t,87))},kGt.Gc=function(t){var e,n,i;for(i=!1,n=t.Kc();n.Ob();)e=jz(n.Pb(),87),null==YG(this.a,e,"")&&(i=!0);return i},kGt.$b=function(){DW(this.a)},kGt.Hc=function(t){return cW(this.a,t)},kGt.Kc=function(){return new _m(new olt(new Ef(this.a).a))},kGt.Mc=function(t){return P7(this,t)},kGt.gc=function(){return Lk(this.a)},bY(d7t,"ETypeParameterImpl/2/1",556),fIt(557,1,ZGt,_m),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return jz(tnt(this.a).cd(),87)},kGt.Ob=function(){return this.a.b},kGt.Qb=function(){o8(this.a)},bY(d7t,"ETypeParameterImpl/2/1/1",557),fIt(1276,43,tXt,Mv),kGt._b=function(t){return qA(t)?tX(this,t):!!AX(this.f,t)},kGt.xc=function(t){var e;return iO(e=qA(t)?kJ(this,t):zA(AX(this.f,t)),837)?(e=jz(e,837)._j(),YG(this,jz(t,235),e),e):e??(null==t?(KE(),eOe):null)},bY(d7t,"EValidatorRegistryImpl",1276),fIt(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},Uc),kGt.Ih=function(t,e){switch(t.yj()){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 null==e?null:$ft(e);case 25:return Wet(e);case 27:return q8(e);case 28:return W8(e);case 29:return null==e?null:$L(SDe[0],jz(e,199));case 41:return null==e?"":JR(jz(e,290));case 42:return $ft(e);case 50:return kB(e);default:throw $m(new Pw(g7t+t.ne()+p7t))}},kGt.Jh=function(t){var e;switch(-1==t.G&&(t.G=(e=qet(t))?oyt(e.Mh(),t):-1),t.G){case 0:return new Tv;case 1:return new Rc;case 2:return new Bd;case 4:return new xy;case 5:return new Av;case 6:return new wy;case 7:return new Md;case 10:return new wc;case 11:return new Dv;case 12:return new bX;case 13:return new Iv;case 14:return new pB;case 17:return new Ic;case 18:return new Bm;case 19:return new Hc;default:throw $m(new Pw(y7t+t.zb+p7t))}},kGt.Kh=function(t,e){switch(t.yj()){case 20:return null==e?null:new h_(e);case 21:return null==e?null:new DI(e);case 23:case 22:return null==e?null:Jpt(e);case 26:case 24:return null==e?null:Ett(djt(e,-128,127)<<24>>24);case 25:return gLt(e);case 27:return Ewt(e);case 28:return Cwt(e);case 29:return pEt(e);case 32:case 31:return null==e?null:hCt(e);case 38:case 37:return null==e?null:new My(e);case 40:case 39:return null==e?null:nht(djt(e,FZt,NGt));case 41:case 42:return null;case 44:case 43:return null==e?null:xbt(iWt(e));case 49:case 48:return null==e?null:iht(djt(e,Z8t,32767)<<16>>16);case 50:return e;default:throw $m(new Pw(g7t+t.ne()+p7t))}},bY(d7t,"EcoreFactoryImpl",1313),fIt(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},VG),kGt.gb=!1,kGt.hb=!1;var WLe,YLe=!1;bY(d7t,"EcorePackageImpl",547),fIt(1184,1,{837:1},Vc),kGt._j=function(){return sM(),nOe},bY(d7t,"EcorePackageImpl/1",1184),fIt(1193,1,c9t,qc),kGt.wj=function(t){return iO(t,147)},kGt.xj=function(t){return O5(FDe,zGt,147,t,0,1)},bY(d7t,"EcorePackageImpl/10",1193),fIt(1194,1,c9t,Wc),kGt.wj=function(t){return iO(t,191)},kGt.xj=function(t){return O5($De,zGt,191,t,0,1)},bY(d7t,"EcorePackageImpl/11",1194),fIt(1195,1,c9t,Yc),kGt.wj=function(t){return iO(t,56)},kGt.xj=function(t){return O5(DDe,zGt,56,t,0,1)},bY(d7t,"EcorePackageImpl/12",1195),fIt(1196,1,c9t,Gc),kGt.wj=function(t){return iO(t,399)},kGt.xj=function(t){return O5(YIe,M8t,59,t,0,1)},bY(d7t,"EcorePackageImpl/13",1196),fIt(1197,1,c9t,Zc),kGt.wj=function(t){return iO(t,235)},kGt.xj=function(t){return O5(zDe,zGt,235,t,0,1)},bY(d7t,"EcorePackageImpl/14",1197),fIt(1198,1,c9t,Kc),kGt.wj=function(t){return iO(t,509)},kGt.xj=function(t){return O5(GIe,zGt,2017,t,0,1)},bY(d7t,"EcorePackageImpl/15",1198),fIt(1199,1,c9t,Xc),kGt.wj=function(t){return iO(t,99)},kGt.xj=function(t){return O5(ZIe,O8t,18,t,0,1)},bY(d7t,"EcorePackageImpl/16",1199),fIt(1200,1,c9t,Jc),kGt.wj=function(t){return iO(t,170)},kGt.xj=function(t){return O5(PIe,O8t,170,t,0,1)},bY(d7t,"EcorePackageImpl/17",1200),fIt(1201,1,c9t,Qc),kGt.wj=function(t){return iO(t,472)},kGt.xj=function(t){return O5(BIe,zGt,472,t,0,1)},bY(d7t,"EcorePackageImpl/18",1201),fIt(1202,1,c9t,tl),kGt.wj=function(t){return iO(t,548)},kGt.xj=function(t){return O5(VLe,r8t,548,t,0,1)},bY(d7t,"EcorePackageImpl/19",1202),fIt(1185,1,c9t,el),kGt.wj=function(t){return iO(t,322)},kGt.xj=function(t){return O5(FIe,O8t,34,t,0,1)},bY(d7t,"EcorePackageImpl/2",1185),fIt(1203,1,c9t,nl),kGt.wj=function(t){return iO(t,241)},kGt.xj=function(t){return O5(WIe,$8t,87,t,0,1)},bY(d7t,"EcorePackageImpl/20",1203),fIt(1204,1,c9t,il),kGt.wj=function(t){return iO(t,444)},kGt.xj=function(t){return O5(SLe,zGt,836,t,0,1)},bY(d7t,"EcorePackageImpl/21",1204),fIt(1205,1,c9t,al),kGt.wj=function(t){return UA(t)},kGt.xj=function(t){return O5(wee,cZt,476,t,8,1)},bY(d7t,"EcorePackageImpl/22",1205),fIt(1206,1,c9t,rl),kGt.wj=function(t){return iO(t,190)},kGt.xj=function(t){return O5(IMe,cZt,190,t,0,2)},bY(d7t,"EcorePackageImpl/23",1206),fIt(1207,1,c9t,ol),kGt.wj=function(t){return iO(t,217)},kGt.xj=function(t){return O5(Ree,cZt,217,t,0,1)},bY(d7t,"EcorePackageImpl/24",1207),fIt(1208,1,c9t,sl),kGt.wj=function(t){return iO(t,172)},kGt.xj=function(t){return O5(Eee,cZt,172,t,0,1)},bY(d7t,"EcorePackageImpl/25",1208),fIt(1209,1,c9t,cl),kGt.wj=function(t){return iO(t,199)},kGt.xj=function(t){return O5(bee,cZt,199,t,0,1)},bY(d7t,"EcorePackageImpl/26",1209),fIt(1210,1,c9t,ll),kGt.wj=function(t){return!1},kGt.xj=function(t){return O5(BMe,zGt,2110,t,0,1)},bY(d7t,"EcorePackageImpl/27",1210),fIt(1211,1,c9t,ul),kGt.wj=function(t){return VA(t)},kGt.xj=function(t){return O5(Cee,cZt,333,t,7,1)},bY(d7t,"EcorePackageImpl/28",1211),fIt(1212,1,c9t,dl),kGt.wj=function(t){return iO(t,58)},kGt.xj=function(t){return O5(aIe,QJt,58,t,0,1)},bY(d7t,"EcorePackageImpl/29",1212),fIt(1186,1,c9t,hl),kGt.wj=function(t){return iO(t,510)},kGt.xj=function(t){return O5(NIe,{3:1,4:1,5:1,1934:1},590,t,0,1)},bY(d7t,"EcorePackageImpl/3",1186),fIt(1213,1,c9t,fl),kGt.wj=function(t){return iO(t,573)},kGt.xj=function(t){return O5(mIe,zGt,1940,t,0,1)},bY(d7t,"EcorePackageImpl/30",1213),fIt(1214,1,c9t,gl),kGt.wj=function(t){return iO(t,153)},kGt.xj=function(t){return O5(rOe,QJt,153,t,0,1)},bY(d7t,"EcorePackageImpl/31",1214),fIt(1215,1,c9t,pl),kGt.wj=function(t){return iO(t,72)},kGt.xj=function(t){return O5(ALe,l9t,72,t,0,1)},bY(d7t,"EcorePackageImpl/32",1215),fIt(1216,1,c9t,bl),kGt.wj=function(t){return iO(t,155)},kGt.xj=function(t){return O5(See,cZt,155,t,0,1)},bY(d7t,"EcorePackageImpl/33",1216),fIt(1217,1,c9t,ml),kGt.wj=function(t){return iO(t,19)},kGt.xj=function(t){return O5(Dee,cZt,19,t,0,1)},bY(d7t,"EcorePackageImpl/34",1217),fIt(1218,1,c9t,yl),kGt.wj=function(t){return iO(t,290)},kGt.xj=function(t){return O5(Ite,zGt,290,t,0,1)},bY(d7t,"EcorePackageImpl/35",1218),fIt(1219,1,c9t,vl),kGt.wj=function(t){return iO(t,162)},kGt.xj=function(t){return O5(Bee,cZt,162,t,0,1)},bY(d7t,"EcorePackageImpl/36",1219),fIt(1220,1,c9t,wl),kGt.wj=function(t){return iO(t,83)},kGt.xj=function(t){return O5(Ote,zGt,83,t,0,1)},bY(d7t,"EcorePackageImpl/37",1220),fIt(1221,1,c9t,xl),kGt.wj=function(t){return iO(t,591)},kGt.xj=function(t){return O5(tOe,zGt,591,t,0,1)},bY(d7t,"EcorePackageImpl/38",1221),fIt(1222,1,c9t,Rl),kGt.wj=function(t){return!1},kGt.xj=function(t){return O5(PMe,zGt,2111,t,0,1)},bY(d7t,"EcorePackageImpl/39",1222),fIt(1187,1,c9t,_l),kGt.wj=function(t){return iO(t,88)},kGt.xj=function(t){return O5($Ie,zGt,26,t,0,1)},bY(d7t,"EcorePackageImpl/4",1187),fIt(1223,1,c9t,kl),kGt.wj=function(t){return iO(t,184)},kGt.xj=function(t){return O5(Fee,cZt,184,t,0,1)},bY(d7t,"EcorePackageImpl/40",1223),fIt(1224,1,c9t,El),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(d7t,"EcorePackageImpl/41",1224),fIt(1225,1,c9t,Cl),kGt.wj=function(t){return iO(t,588)},kGt.xj=function(t){return O5(oIe,zGt,588,t,0,1)},bY(d7t,"EcorePackageImpl/42",1225),fIt(1226,1,c9t,Sl),kGt.wj=function(t){return!1},kGt.xj=function(t){return O5(FMe,cZt,2112,t,0,1)},bY(d7t,"EcorePackageImpl/43",1226),fIt(1227,1,c9t,Tl),kGt.wj=function(t){return iO(t,42)},kGt.xj=function(t){return O5(zte,wZt,42,t,0,1)},bY(d7t,"EcorePackageImpl/44",1227),fIt(1188,1,c9t,Al),kGt.wj=function(t){return iO(t,138)},kGt.xj=function(t){return O5(jIe,zGt,138,t,0,1)},bY(d7t,"EcorePackageImpl/5",1188),fIt(1189,1,c9t,Dl),kGt.wj=function(t){return iO(t,148)},kGt.xj=function(t){return O5(zIe,zGt,148,t,0,1)},bY(d7t,"EcorePackageImpl/6",1189),fIt(1190,1,c9t,Il),kGt.wj=function(t){return iO(t,457)},kGt.xj=function(t){return O5(VIe,zGt,671,t,0,1)},bY(d7t,"EcorePackageImpl/7",1190),fIt(1191,1,c9t,Ll),kGt.wj=function(t){return iO(t,573)},kGt.xj=function(t){return O5(qIe,zGt,678,t,0,1)},bY(d7t,"EcorePackageImpl/8",1191),fIt(1192,1,c9t,Ol),kGt.wj=function(t){return iO(t,471)},kGt.xj=function(t){return O5(jDe,zGt,471,t,0,1)},bY(d7t,"EcorePackageImpl/9",1192),fIt(1025,1982,i8t,Ow),kGt.bi=function(t,e){Ddt(this,jz(e,415))},kGt.fi=function(t,e){eTt(this,t,jz(e,415))},bY(d7t,"MinimalEObjectImpl/1ArrayDelegatingAdapterList",1025),fIt(1026,143,t8t,rG),kGt.Ai=function(){return this.a.a},bY(d7t,"MinimalEObjectImpl/1ArrayDelegatingAdapterList/1",1026),fIt(1053,1052,{},oL),bY("org.eclipse.emf.ecore.plugin","EcorePlugin",1053);var GLe,ZLe,KLe,XLe,JLe,QLe,tOe=dU(u9t,"Resource");fIt(781,1378,d9t),kGt.Yk=function(t){},kGt.Zk=function(t){},kGt.Vk=function(){return!this.a&&(this.a=new km(this)),this.a},kGt.Wk=function(t){var e,n,i,a,r;if((i=t.length)>0){if(d1(0,t.length),47==t.charCodeAt(0)){for(r=new K7(4),a=1,e=1;e<i;++e)d1(e,t.length),47==t.charCodeAt(e)&&(Wz(r,a==e?"":t.substr(a,e-a)),a=e+1);return Wz(r,t.substr(a)),sRt(this,r)}d1(i-1,t.length),63==t.charCodeAt(i-1)&&(n=_F(t,Kkt(63),i-2))>0&&(t=t.substr(0,n))}return xAt(this,t)},kGt.Xk=function(){return this.c},kGt.Ib=function(){return JR(this.gm)+"@"+(Qct(this)>>>0).toString(16)+" uri='"+this.d+"'"},kGt.b=!1,bY(h9t,"ResourceImpl",781),fIt(1379,781,d9t,Cm),bY(h9t,"BinaryResourceImpl",1379),fIt(1169,694,u5t),kGt.si=function(t){return iO(t,56)?RX(this,jz(t,56)):iO(t,591)?new AO(jz(t,591).Vk()):HA(t)===HA(this.f)?jz(t,14).Kc():(fB(),gIe.a)},kGt.Ob=function(){return hDt(this)},kGt.a=!1,bY(v8t,"EcoreUtil/ContentTreeIterator",1169),fIt(1380,1169,u5t,nW),kGt.si=function(t){return HA(t)===HA(this.f)?jz(t,15).Kc():new F2(jz(t,56))},bY(h9t,"ResourceImpl/5",1380),fIt(648,1994,N8t,km),kGt.Hc=function(t){return this.i<=4?ERt(this,t):iO(t,49)&&jz(t,49).Zg()==this.a},kGt.bi=function(t,e){t==this.i-1&&(this.a.b||(this.a.b=!0))},kGt.di=function(t,e){0==t?this.a.b||(this.a.b=!0):I5(this,t,e)},kGt.fi=function(t,e){},kGt.gi=function(t,e,n){},kGt.aj=function(){return 2},kGt.Ai=function(){return this.a},kGt.bj=function(){return!0},kGt.cj=function(t,e){return e=jz(t,49).wh(this.a,e)},kGt.dj=function(t,e){return jz(t,49).wh(null,e)},kGt.ej=function(){return!1},kGt.hi=function(){return!0},kGt.ri=function(t){return O5(DDe,zGt,56,t,0,1)},kGt.ni=function(){return!1},bY(h9t,"ResourceImpl/ContentsEList",648),fIt(957,1964,LZt,Em),kGt.Zc=function(t){return this.a._h(t)},kGt.gc=function(){return this.a.gc()},bY(v8t,"AbstractSequentialInternalEList/1",957),fIt(624,1,{},kH),bY(v8t,"BasicExtendedMetaData",624),fIt(1160,1,{},DA),kGt.$k=function(){return null},kGt._k=function(){return-2==this.a&&of(this,rEt(this.d,this.b)),this.a},kGt.al=function(){return null},kGt.bl=function(){return kK(),kK(),cne},kGt.ne=function(){return this.c==S9t&&cf(this,Rbt(this.d,this.b)),this.c},kGt.cl=function(){return 0},kGt.a=-2,kGt.c=S9t,bY(v8t,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1160),fIt(1161,1,{},P0),kGt.$k=function(){return this.a==(N6(),JLe)&&sf(this,mMt(this.f,this.b)),this.a},kGt._k=function(){return 0},kGt.al=function(){return this.c==(N6(),JLe)&&lf(this,yMt(this.f,this.b)),this.c},kGt.bl=function(){return!this.d&&uf(this,EFt(this.f,this.b)),this.d},kGt.ne=function(){return this.e==S9t&&df(this,Rbt(this.f,this.b)),this.e},kGt.cl=function(){return-2==this.g&&hf(this,K_t(this.f,this.b)),this.g},kGt.e=S9t,kGt.g=-2,bY(v8t,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1161),fIt(1159,1,{},NA),kGt.b=!1,kGt.c=!1,bY(v8t,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1159),fIt(1162,1,{},B0),kGt.c=-2,kGt.e=S9t,kGt.f=S9t,bY(v8t,"BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl",1162),fIt(585,622,B8t,_H),kGt.aj=function(){return this.c},kGt.Fk=function(){return!1},kGt.li=function(t,e){return e},kGt.c=0,bY(v8t,"EDataTypeEList",585);var eOe,nOe,iOe,aOe,rOe=dU(v8t,"FeatureMap");fIt(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},Rrt),kGt.Vc=function(t,e){dMt(this,t,jz(e,72))},kGt.Fc=function(t){return oOt(this,jz(t,72))},kGt.Yh=function(t){fY(this,jz(t,72))},kGt.cj=function(t,e){return $F(this,jz(t,72),e)},kGt.dj=function(t,e){return zF(this,jz(t,72),e)},kGt.ii=function(t,e){return rjt(this,t,e)},kGt.li=function(t,e){return lVt(this,t,jz(e,72))},kGt._c=function(t,e){return CNt(this,t,jz(e,72))},kGt.jj=function(t,e){return HF(this,jz(t,72),e)},kGt.kj=function(t,e){return UF(this,jz(t,72),e)},kGt.lj=function(t,e,n){return p_t(this,jz(t,72),jz(e,72),n)},kGt.oi=function(t,e){return ckt(this,t,jz(e,72))},kGt.dl=function(t,e){return MFt(this,t,e)},kGt.Wc=function(t,e){var n,i,a,r,o,s,c,l,u;for(l=new pet(e.gc()),a=e.Kc();a.Ob();)if(r=(i=jz(a.Pb(),72)).ak(),INt(this.e,r))(!r.hi()||!H4(this,r,i.dd())&&!ERt(l,i))&&l8(l,i);else{for(u=rNt(this.e.Tg(),r),n=jz(this.g,119),o=!0,s=0;s<this.i;++s)if(c=n[s],u.rl(c.ak())){jz(syt(this,s,i),72),o=!1;break}o&&l8(l,i)}return sct(this,t,l)},kGt.Gc=function(t){var e,n,i,a,r,o,s,c,l;for(c=new pet(t.gc()),i=t.Kc();i.Ob();)if(a=(n=jz(i.Pb(),72)).ak(),INt(this.e,a))(!a.hi()||!H4(this,a,n.dd())&&!ERt(c,n))&&l8(c,n);else{for(l=rNt(this.e.Tg(),a),e=jz(this.g,119),r=!0,o=0;o<this.i;++o)if(s=e[o],l.rl(s.ak())){jz(syt(this,o,n),72),r=!1;break}r&&l8(c,n)}return pY(this,c)},kGt.Wh=function(t){return this.j=-1,L$t(this,this.i,t)},kGt.el=function(t,e,n){return CPt(this,t,e,n)},kGt.mk=function(t,e){return _Ft(this,t,e)},kGt.fl=function(t,e,n){return Jzt(this,t,e,n)},kGt.gl=function(){return this},kGt.hl=function(t,e){return iHt(this,t,e)},kGt.il=function(t){return jz(Yet(this,t),72).ak()},kGt.jl=function(t){return jz(Yet(this,t),72).dd()},kGt.kl=function(){return this.b},kGt.bj=function(){return!0},kGt.ij=function(){return!0},kGt.ll=function(t){return!rpt(this,t)},kGt.ri=function(t){return O5(qLe,l9t,332,t,0,1)},kGt.Gk=function(t){return cB(this,t)},kGt.Wb=function(t){QW(this,t)},kGt.ml=function(t,e){kHt(this,t,e)},kGt.nl=function(t){return Vit(this,t)},kGt.ol=function(t){Pvt(this,t)},bY(v8t,"BasicFeatureMap",75),fIt(1851,1,aZt),kGt.Nb=function(t){lW(this,t)},kGt.Rb=function(t){if(-1==this.g)throw $m(new fy);mq(this);try{DNt(this.e,this.b,this.a,t),this.d=this.e.j,ayt(this)}catch(e){throw iO(e=dst(e),73)?$m(new by):$m(e)}},kGt.Ob=function(){return Plt(this)},kGt.Sb=function(){return Flt(this)},kGt.Pb=function(){return ayt(this)},kGt.Tb=function(){return this.a},kGt.Ub=function(){var t;if(Flt(this))return mq(this),this.g=--this.a,this.Lk()&&(t=jAt(this.e,this.b,this.c,this.a,this.j),this.j=t),this.i=0,this.j;throw $m(new yy)},kGt.Vb=function(){return this.a-1},kGt.Qb=function(){if(-1==this.g)throw $m(new fy);mq(this);try{rSt(this.e,this.b,this.g),this.d=this.e.j,this.g<this.a&&(--this.a,--this.c),--this.g}catch(t){throw iO(t=dst(t),73)?$m(new by):$m(t)}},kGt.Lk=function(){return!1},kGt.Wb=function(t){if(-1==this.g)throw $m(new fy);mq(this);try{W$t(this.e,this.b,this.g,t),this.d=this.e.j}catch(e){throw iO(e=dst(e),73)?$m(new by):$m(e)}},kGt.a=0,kGt.c=0,kGt.d=0,kGt.f=!1,kGt.g=0,kGt.i=0,bY(v8t,"FeatureMapUtil/BasicFeatureEIterator",1851),fIt(410,1851,aZt,Dot),kGt.pl=function(){var t,e,n;for(n=this.e.i,t=jz(this.e.g,119);this.c<n;){if(e=t[this.c],this.k.rl(e.ak()))return this.j=this.f?e:e.dd(),this.i=2,!0;++this.c}return this.i=1,this.g=-1,!1},kGt.ql=function(){var t,e;for(t=jz(this.e.g,119);--this.c>=0;)if(e=t[this.c],this.k.rl(e.ak()))return this.j=this.f?e:e.dd(),this.i=-2,!0;return this.i=-1,this.g=-1,!1},bY(v8t,"BasicFeatureMap/FeatureEIterator",410),fIt(662,410,aZt,OD),kGt.Lk=function(){return!0},bY(v8t,"BasicFeatureMap/ResolvingFeatureEIterator",662),fIt(955,486,H8t,UL),kGt.Gi=function(){return this},bY(v8t,"EContentsEList/1",955),fIt(956,486,H8t,MD),kGt.Lk=function(){return!1},bY(v8t,"EContentsEList/2",956),fIt(954,279,U8t,VL),kGt.Nk=function(t){},kGt.Ob=function(){return!1},kGt.Sb=function(){return!1},bY(v8t,"EContentsEList/FeatureIteratorImpl/1",954),fIt(825,585,B8t,BO),kGt.ci=function(){this.a=!0},kGt.fj=function(){return this.a},kGt.Xj=function(){var t;cUt(this),mI(this.e)?(t=this.a,this.a=!1,hot(this.e,new Q6(this.e,2,this.c,t,!1))):this.a=!1},kGt.a=!1,bY(v8t,"EDataTypeEList/Unsettable",825),fIt(1849,585,B8t,PO),kGt.hi=function(){return!0},bY(v8t,"EDataTypeUniqueEList",1849),fIt(1850,825,B8t,FO),kGt.hi=function(){return!0},bY(v8t,"EDataTypeUniqueEList/Unsettable",1850),fIt(139,85,B8t,LO),kGt.Ek=function(){return!0},kGt.li=function(t,e){return UDt(this,t,jz(e,56))},bY(v8t,"EObjectContainmentEList/Resolving",139),fIt(1163,545,B8t,OO),kGt.Ek=function(){return!0},kGt.li=function(t,e){return UDt(this,t,jz(e,56))},bY(v8t,"EObjectContainmentEList/Unsettable/Resolving",1163),fIt(748,16,B8t,eF),kGt.ci=function(){this.a=!0},kGt.fj=function(){return this.a},kGt.Xj=function(){var t;cUt(this),mI(this.e)?(t=this.a,this.a=!1,hot(this.e,new Q6(this.e,2,this.c,t,!1))):this.a=!1},kGt.a=!1,bY(v8t,"EObjectContainmentWithInverseEList/Unsettable",748),fIt(1173,748,B8t,nF),kGt.Ek=function(){return!0},kGt.li=function(t,e){return UDt(this,t,jz(e,56))},bY(v8t,"EObjectContainmentWithInverseEList/Unsettable/Resolving",1173),fIt(743,496,B8t,MO),kGt.ci=function(){this.a=!0},kGt.fj=function(){return this.a},kGt.Xj=function(){var t;cUt(this),mI(this.e)?(t=this.a,this.a=!1,hot(this.e,new Q6(this.e,2,this.c,t,!1))):this.a=!1},kGt.a=!1,bY(v8t,"EObjectEList/Unsettable",743),fIt(328,496,B8t,NO),kGt.Ek=function(){return!0},kGt.li=function(t,e){return UDt(this,t,jz(e,56))},bY(v8t,"EObjectResolvingEList",328),fIt(1641,743,B8t,jO),kGt.Ek=function(){return!0},kGt.li=function(t,e){return UDt(this,t,jz(e,56))},bY(v8t,"EObjectResolvingEList/Unsettable",1641),fIt(1381,1,{},Ml),bY(v8t,"EObjectValidator",1381),fIt(546,496,B8t,eW),kGt.zk=function(){return this.d},kGt.Ak=function(){return this.b},kGt.bj=function(){return!0},kGt.Dk=function(){return!0},kGt.b=0,bY(v8t,"EObjectWithInverseEList",546),fIt(1176,546,B8t,iF),kGt.Ck=function(){return!0},bY(v8t,"EObjectWithInverseEList/ManyInverse",1176),fIt(625,546,B8t,aF),kGt.ci=function(){this.a=!0},kGt.fj=function(){return this.a},kGt.Xj=function(){var t;cUt(this),mI(this.e)?(t=this.a,this.a=!1,hot(this.e,new Q6(this.e,2,this.c,t,!1))):this.a=!1},kGt.a=!1,bY(v8t,"EObjectWithInverseEList/Unsettable",625),fIt(1175,625,B8t,oF),kGt.Ck=function(){return!0},bY(v8t,"EObjectWithInverseEList/Unsettable/ManyInverse",1175),fIt(749,546,B8t,rF),kGt.Ek=function(){return!0},kGt.li=function(t,e){return UDt(this,t,jz(e,56))},bY(v8t,"EObjectWithInverseResolvingEList",749),fIt(31,749,B8t,cF),kGt.Ck=function(){return!0},bY(v8t,"EObjectWithInverseResolvingEList/ManyInverse",31),fIt(750,625,B8t,sF),kGt.Ek=function(){return!0},kGt.li=function(t,e){return UDt(this,t,jz(e,56))},bY(v8t,"EObjectWithInverseResolvingEList/Unsettable",750),fIt(1174,750,B8t,lF),kGt.Ck=function(){return!0},bY(v8t,"EObjectWithInverseResolvingEList/Unsettable/ManyInverse",1174),fIt(1164,622,B8t),kGt.ai=function(){return 0==(1792&this.b)},kGt.ci=function(){this.b|=1},kGt.Bk=function(){return 0!=(4&this.b)},kGt.bj=function(){return 0!=(40&this.b)},kGt.Ck=function(){return 0!=(16&this.b)},kGt.Dk=function(){return 0!=(8&this.b)},kGt.Ek=function(){return 0!=(this.b&k8t)},kGt.rk=function(){return 0!=(32&this.b)},kGt.Fk=function(){return 0!=(this.b&w7t)},kGt.wj=function(t){return this.d?O4(this.d,t):this.ak().Yj().wj(t)},kGt.fj=function(){return 2&this.b?0!=(1&this.b):0!=this.i},kGt.hi=function(){return 0!=(128&this.b)},kGt.Xj=function(){var t;cUt(this),2&this.b&&(mI(this.e)?(t=0!=(1&this.b),this.b&=-2,Iy(this,new Q6(this.e,2,Dgt(this.e.Tg(),this.ak()),t,!1))):this.b&=-2)},kGt.ni=function(){return 0==(1536&this.b)},kGt.b=0,bY(v8t,"EcoreEList/Generic",1164),fIt(1165,1164,B8t,UK),kGt.ak=function(){return this.a},bY(v8t,"EcoreEList/Dynamic",1165),fIt(747,63,l5t,Sm),kGt.ri=function(t){return Nnt(this.a.a,t)},bY(v8t,"EcoreEMap/1",747),fIt(746,85,B8t,Xq),kGt.bi=function(t,e){Tyt(this.b,jz(e,133))},kGt.di=function(t,e){rot(this.b)},kGt.ei=function(t,e,n){var i;++(i=this.b,jz(e,133),i).e},kGt.fi=function(t,e){Aht(this.b,jz(e,133))},kGt.gi=function(t,e,n){Aht(this.b,jz(n,133)),HA(n)===HA(e)&&jz(n,133).Th(iL(jz(e,133).cd())),Tyt(this.b,jz(e,133))},bY(v8t,"EcoreEMap/DelegateEObjectContainmentEList",746),fIt(1171,151,x8t,vit),bY(v8t,"EcoreEMap/Unsettable",1171),fIt(1172,746,B8t,uF),kGt.ci=function(){this.a=!0},kGt.fj=function(){return this.a},kGt.Xj=function(){var t;cUt(this),mI(this.e)?(t=this.a,this.a=!1,hot(this.e,new Q6(this.e,2,this.c,t,!1))):this.a=!1},kGt.a=!1,bY(v8t,"EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList",1172),fIt(1168,228,tXt,uY),kGt.a=!1,kGt.b=!1,bY(v8t,"EcoreUtil/Copier",1168),fIt(745,1,ZGt,F2),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return opt(this)},kGt.Pb=function(){var t;return opt(this),t=this.b,this.b=null,t},kGt.Qb=function(){this.a.Qb()},bY(v8t,"EcoreUtil/ProperContentIterator",745),fIt(1382,1381,{},Pd),bY(v8t,"EcoreValidator",1382),dU(v8t,"FeatureMapUtil/Validator"),fIt(1260,1,{1942:1},Nl),kGt.rl=function(t){return!0},bY(v8t,"FeatureMapUtil/1",1260),fIt(757,1,{1942:1},aWt),kGt.rl=function(t){var e;return this.c==t||(null==(e=RB(NY(this.a,t)))?MPt(this,t)?(n7(this.a,t,(cM(),yee)),!0):(n7(this.a,t,(cM(),mee)),!1):e==(cM(),yee))},kGt.e=!1,bY(v8t,"FeatureMapUtil/BasicValidator",757),fIt(758,43,tXt,qL),bY(v8t,"FeatureMapUtil/BasicValidator/Cache",758),fIt(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},OA),kGt.Vc=function(t,e){DNt(this.c,this.b,t,e)},kGt.Fc=function(t){return MFt(this.c,this.b,t)},kGt.Wc=function(t,e){return xHt(this.c,this.b,t,e)},kGt.Gc=function(t){return XL(this,t)},kGt.Xh=function(t,e){cet(this.c,this.b,t,e)},kGt.lk=function(t,e){return CPt(this.c,this.b,t,e)},kGt.pi=function(t){return nHt(this.c,this.b,t,!1)},kGt.Zh=function(){return wI(this.c,this.b)},kGt.$h=function(){return xI(this.c,this.b)},kGt._h=function(t){return D5(this.c,this.b,t)},kGt.mk=function(t,e){return QB(this,t,e)},kGt.$b=function(){Ly(this)},kGt.Hc=function(t){return H4(this.c,this.b,t)},kGt.Ic=function(t){return krt(this.c,this.b,t)},kGt.Xb=function(t){return nHt(this.c,this.b,t,!0)},kGt.Wj=function(t){return this},kGt.Xc=function(t){return U4(this.c,this.b,t)},kGt.dc=function(){return $A(this)},kGt.fj=function(){return!rpt(this.c,this.b)},kGt.Kc=function(){return itt(this.c,this.b)},kGt.Yc=function(){return att(this.c,this.b)},kGt.Zc=function(t){return dht(this.c,this.b,t)},kGt.ii=function(t,e){return y$t(this.c,this.b,t,e)},kGt.ji=function(t,e){G7(this.c,this.b,t,e)},kGt.$c=function(t){return rSt(this.c,this.b,t)},kGt.Mc=function(t){return SFt(this.c,this.b,t)},kGt._c=function(t,e){return W$t(this.c,this.b,t,e)},kGt.Wb=function(t){DDt(this.c,this.b),XL(this,jz(t,15))},kGt.gc=function(){return Pht(this.c,this.b)},kGt.Pc=function(){return H1(this.c,this.b)},kGt.Qc=function(t){return V4(this.c,this.b,t)},kGt.Ib=function(){var t,e;for((e=new kx).a+="[",t=wI(this.c,this.b);Plt(t);)iD(e,vM(ayt(t))),Plt(t)&&(e.a+=jGt);return e.a+="]",e.a},kGt.Xj=function(){DDt(this.c,this.b)},bY(v8t,"FeatureMapUtil/FeatureEList",501),fIt(627,36,t8t,d3),kGt.yi=function(t){return eht(this,t)},kGt.Di=function(t){var e,n,i,a;switch(this.d){case 1:case 2:if(HA(t.Ai())===HA(this.c)&&eht(this,null)==t.yi(null))return this.g=t.zi(),1==t.xi()&&(this.d=1),!0;break;case 3:if(3===t.xi()&&HA(t.Ai())===HA(this.c)&&eht(this,null)==t.yi(null))return this.d=5,l8(e=new pet(2),this.g),l8(e,t.zi()),this.g=e,!0;break;case 5:if(3===t.xi()&&HA(t.Ai())===HA(this.c)&&eht(this,null)==t.yi(null))return jz(this.g,14).Fc(t.zi()),!0;break;case 4:switch(t.xi()){case 3:if(HA(t.Ai())===HA(this.c)&&eht(this,null)==t.yi(null))return this.d=1,this.g=t.zi(),!0;break;case 4:if(HA(t.Ai())===HA(this.c)&&eht(this,null)==t.yi(null))return this.d=6,l8(a=new pet(2),this.n),l8(a,t.Bi()),this.n=a,i=Cst(Hx(TMe,1),lKt,25,15,[this.o,t.Ci()]),this.g=i,!0}break;case 6:if(4===t.xi()&&HA(t.Ai())===HA(this.c)&&eht(this,null)==t.yi(null))return jz(this.n,14).Fc(t.Bi()),rHt(i=jz(this.g,48),0,n=O5(TMe,lKt,25,i.length+1,15,1),0,i.length),n[i.length]=t.Ci(),this.g=n,!0}return!1},bY(v8t,"FeatureMapUtil/FeatureENotificationImpl",627),fIt(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},uU),kGt.dl=function(t,e){return MFt(this.c,t,e)},kGt.el=function(t,e,n){return CPt(this.c,t,e,n)},kGt.fl=function(t,e,n){return Jzt(this.c,t,e,n)},kGt.gl=function(){return this},kGt.hl=function(t,e){return iHt(this.c,t,e)},kGt.il=function(t){return jz(nHt(this.c,this.b,t,!1),72).ak()},kGt.jl=function(t){return jz(nHt(this.c,this.b,t,!1),72).dd()},kGt.kl=function(){return this.a},kGt.ll=function(t){return!rpt(this.c,t)},kGt.ml=function(t,e){kHt(this.c,t,e)},kGt.nl=function(t){return Vit(this.c,t)},kGt.ol=function(t){Pvt(this.c,t)},bY(v8t,"FeatureMapUtil/FeatureFeatureMap",552),fIt(1259,1,w8t,BA),kGt.Wj=function(t){return nHt(this.b,this.a,-1,t)},kGt.fj=function(){return!rpt(this.b,this.a)},kGt.Wb=function(t){kHt(this.b,this.a,t)},kGt.Xj=function(){DDt(this.b,this.a)},bY(v8t,"FeatureMapUtil/FeatureValue",1259);var oOe,sOe,cOe,lOe,uOe,dOe=dU(A9t,"AnyType");fIt(666,60,$Zt,ex),bY(A9t,"InvalidDatatypeValueException",666);var hOe,fOe,gOe,pOe,bOe,mOe,yOe,vOe,wOe,xOe,ROe,_Oe,kOe,EOe,COe,SOe,TOe,AOe,DOe,IOe,LOe,OOe,MOe,NOe,BOe,POe,FOe,jOe,$Oe,zOe,HOe=dU(A9t,D9t),UOe=dU(A9t,I9t),VOe=dU(A9t,L9t);fIt(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},Nv),kGt._g=function(t,e,n){switch(t){case 0:return n?(!this.c&&(this.c=new Rrt(this,0)),this.c):(!this.c&&(this.c=new Rrt(this,0)),this.c.b);case 1:return n?(!this.c&&(this.c=new Rrt(this,0)),jz(JQ(this.c,(qUt(),pOe)),153)):(!this.c&&(this.c=new Rrt(this,0)),jz(jz(JQ(this.c,(qUt(),pOe)),153),215)).kl();case 2:return n?(!this.b&&(this.b=new Rrt(this,2)),this.b):(!this.b&&(this.b=new Rrt(this,2)),this.b.b)}return V8(this,t-dY(this.zh()),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():this.zh(),t),e,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.c&&(this.c=new Rrt(this,0)),_Ft(this.c,t,n);case 1:return(!this.c&&(this.c=new Rrt(this,0)),jz(jz(JQ(this.c,(qUt(),pOe)),153),69)).mk(t,n);case 2:return!this.b&&(this.b=new Rrt(this,2)),_Ft(this.b,t,n)}return jz(eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():this.zh(),e),66).Nj().Rj(this,G9(this),e-dY(this.zh()),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.c&&0!=this.c.i;case 1:return!(!this.c&&(this.c=new Rrt(this,0)),jz(JQ(this.c,(qUt(),pOe)),153)).dc();case 2:return!!this.b&&0!=this.b.i}return T4(this,t-dY(this.zh()),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():this.zh(),t))},kGt.sh=function(t,e){switch(t){case 0:return!this.c&&(this.c=new Rrt(this,0)),void QW(this.c,e);case 1:return void(!this.c&&(this.c=new Rrt(this,0)),jz(jz(JQ(this.c,(qUt(),pOe)),153),215)).Wb(e);case 2:return!this.b&&(this.b=new Rrt(this,2)),void QW(this.b,e)}Lft(this,t-dY(this.zh()),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():this.zh(),t),e)},kGt.zh=function(){return qUt(),gOe},kGt.Bh=function(t){switch(t){case 0:return!this.c&&(this.c=new Rrt(this,0)),void cUt(this.c);case 1:return void(!this.c&&(this.c=new Rrt(this,0)),jz(JQ(this.c,(qUt(),pOe)),153)).$b();case 2:return!this.b&&(this.b=new Rrt(this,2)),void cUt(this.b)}Hdt(this,t-dY(this.zh()),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():this.zh(),t))},kGt.Ib=function(){var t;return 4&this.j?CLt(this):((t=new lM(CLt(this))).a+=" (mixed: ",nD(t,this.c),t.a+=", anyAttribute: ",nD(t,this.b),t.a+=")",t.a)},bY(O9t,"AnyTypeImpl",830),fIt(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},Pl),kGt._g=function(t,e,n){switch(t){case 0:return this.a;case 1:return this.b}return V8(this,t-dY((qUt(),SOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():SOe,t),e,n)},kGt.lh=function(t){switch(t){case 0:return null!=this.a;case 1:return null!=this.b}return T4(this,t-dY((qUt(),SOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():SOe,t))},kGt.sh=function(t,e){switch(t){case 0:return void vf(this,kB(e));case 1:return void wf(this,kB(e))}Lft(this,t-dY((qUt(),SOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():SOe,t),e)},kGt.zh=function(){return qUt(),SOe},kGt.Bh=function(t){switch(t){case 0:return void(this.a=null);case 1:return void(this.b=null)}Hdt(this,t-dY((qUt(),SOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():SOe,t))},kGt.Ib=function(){var t;return 4&this.j?CLt(this):((t=new lM(CLt(this))).a+=" (data: ",iD(t,this.a),t.a+=", target: ",iD(t,this.b),t.a+=")",t.a)},kGt.a=null,kGt.b=null,bY(O9t,"ProcessingInstructionImpl",667),fIt(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},Pv),kGt._g=function(t,e,n){switch(t){case 0:return n?(!this.c&&(this.c=new Rrt(this,0)),this.c):(!this.c&&(this.c=new Rrt(this,0)),this.c.b);case 1:return n?(!this.c&&(this.c=new Rrt(this,0)),jz(JQ(this.c,(qUt(),pOe)),153)):(!this.c&&(this.c=new Rrt(this,0)),jz(jz(JQ(this.c,(qUt(),pOe)),153),215)).kl();case 2:return n?(!this.b&&(this.b=new Rrt(this,2)),this.b):(!this.b&&(this.b=new Rrt(this,2)),this.b.b);case 3:return!this.c&&(this.c=new Rrt(this,0)),kB(iHt(this.c,(qUt(),DOe),!0));case 4:return gF(this.a,(!this.c&&(this.c=new Rrt(this,0)),kB(iHt(this.c,(qUt(),DOe),!0))));case 5:return this.a}return V8(this,t-dY((qUt(),AOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():AOe,t),e,n)},kGt.lh=function(t){switch(t){case 0:return!!this.c&&0!=this.c.i;case 1:return!(!this.c&&(this.c=new Rrt(this,0)),jz(JQ(this.c,(qUt(),pOe)),153)).dc();case 2:return!!this.b&&0!=this.b.i;case 3:return!this.c&&(this.c=new Rrt(this,0)),null!=kB(iHt(this.c,(qUt(),DOe),!0));case 4:return null!=gF(this.a,(!this.c&&(this.c=new Rrt(this,0)),kB(iHt(this.c,(qUt(),DOe),!0))));case 5:return!!this.a}return T4(this,t-dY((qUt(),AOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():AOe,t))},kGt.sh=function(t,e){switch(t){case 0:return!this.c&&(this.c=new Rrt(this,0)),void QW(this.c,e);case 1:return void(!this.c&&(this.c=new Rrt(this,0)),jz(jz(JQ(this.c,(qUt(),pOe)),153),215)).Wb(e);case 2:return!this.b&&(this.b=new Rrt(this,2)),void QW(this.b,e);case 3:return void F0(this,kB(e));case 4:return void F0(this,pF(this.a,e));case 5:return void xf(this,jz(e,148))}Lft(this,t-dY((qUt(),AOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():AOe,t),e)},kGt.zh=function(){return qUt(),AOe},kGt.Bh=function(t){switch(t){case 0:return!this.c&&(this.c=new Rrt(this,0)),void cUt(this.c);case 1:return void(!this.c&&(this.c=new Rrt(this,0)),jz(JQ(this.c,(qUt(),pOe)),153)).$b();case 2:return!this.b&&(this.b=new Rrt(this,2)),void cUt(this.b);case 3:return!this.c&&(this.c=new Rrt(this,0)),void kHt(this.c,(qUt(),DOe),null);case 4:return void F0(this,pF(this.a,null));case 5:return void(this.a=null)}Hdt(this,t-dY((qUt(),AOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():AOe,t))},bY(O9t,"SimpleAnyTypeImpl",668),fIt(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},Bv),kGt._g=function(t,e,n){switch(t){case 0:return n?(!this.a&&(this.a=new Rrt(this,0)),this.a):(!this.a&&(this.a=new Rrt(this,0)),this.a.b);case 1:return n?(!this.b&&(this.b=new y8((pGt(),yLe),VLe,this,1)),this.b):(!this.b&&(this.b=new y8((pGt(),yLe),VLe,this,1)),A5(this.b));case 2:return n?(!this.c&&(this.c=new y8((pGt(),yLe),VLe,this,2)),this.c):(!this.c&&(this.c=new y8((pGt(),yLe),VLe,this,2)),A5(this.c));case 3:return!this.a&&(this.a=new Rrt(this,0)),JQ(this.a,(qUt(),OOe));case 4:return!this.a&&(this.a=new Rrt(this,0)),JQ(this.a,(qUt(),MOe));case 5:return!this.a&&(this.a=new Rrt(this,0)),JQ(this.a,(qUt(),BOe));case 6:return!this.a&&(this.a=new Rrt(this,0)),JQ(this.a,(qUt(),POe))}return V8(this,t-dY((qUt(),LOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():LOe,t),e,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.a&&(this.a=new Rrt(this,0)),_Ft(this.a,t,n);case 1:return!this.b&&(this.b=new y8((pGt(),yLe),VLe,this,1)),jF(this.b,t,n);case 2:return!this.c&&(this.c=new y8((pGt(),yLe),VLe,this,2)),jF(this.c,t,n);case 5:return!this.a&&(this.a=new Rrt(this,0)),QB(JQ(this.a,(qUt(),BOe)),t,n)}return jz(eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():(qUt(),LOe),e),66).Nj().Rj(this,G9(this),e-dY((qUt(),LOe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.a&&0!=this.a.i;case 1:return!!this.b&&0!=this.b.f;case 2:return!!this.c&&0!=this.c.f;case 3:return!this.a&&(this.a=new Rrt(this,0)),!$A(JQ(this.a,(qUt(),OOe)));case 4:return!this.a&&(this.a=new Rrt(this,0)),!$A(JQ(this.a,(qUt(),MOe)));case 5:return!this.a&&(this.a=new Rrt(this,0)),!$A(JQ(this.a,(qUt(),BOe)));case 6:return!this.a&&(this.a=new Rrt(this,0)),!$A(JQ(this.a,(qUt(),POe)))}return T4(this,t-dY((qUt(),LOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():LOe,t))},kGt.sh=function(t,e){switch(t){case 0:return!this.a&&(this.a=new Rrt(this,0)),void QW(this.a,e);case 1:return!this.b&&(this.b=new y8((pGt(),yLe),VLe,this,1)),void tot(this.b,e);case 2:return!this.c&&(this.c=new y8((pGt(),yLe),VLe,this,2)),void tot(this.c,e);case 3:return!this.a&&(this.a=new Rrt(this,0)),Ly(JQ(this.a,(qUt(),OOe))),!this.a&&(this.a=new Rrt(this,0)),void XL(JQ(this.a,OOe),jz(e,14));case 4:return!this.a&&(this.a=new Rrt(this,0)),Ly(JQ(this.a,(qUt(),MOe))),!this.a&&(this.a=new Rrt(this,0)),void XL(JQ(this.a,MOe),jz(e,14));case 5:return!this.a&&(this.a=new Rrt(this,0)),Ly(JQ(this.a,(qUt(),BOe))),!this.a&&(this.a=new Rrt(this,0)),void XL(JQ(this.a,BOe),jz(e,14));case 6:return!this.a&&(this.a=new Rrt(this,0)),Ly(JQ(this.a,(qUt(),POe))),!this.a&&(this.a=new Rrt(this,0)),void XL(JQ(this.a,POe),jz(e,14))}Lft(this,t-dY((qUt(),LOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():LOe,t),e)},kGt.zh=function(){return qUt(),LOe},kGt.Bh=function(t){switch(t){case 0:return!this.a&&(this.a=new Rrt(this,0)),void cUt(this.a);case 1:return!this.b&&(this.b=new y8((pGt(),yLe),VLe,this,1)),void this.b.c.$b();case 2:return!this.c&&(this.c=new y8((pGt(),yLe),VLe,this,2)),void this.c.c.$b();case 3:return!this.a&&(this.a=new Rrt(this,0)),void Ly(JQ(this.a,(qUt(),OOe)));case 4:return!this.a&&(this.a=new Rrt(this,0)),void Ly(JQ(this.a,(qUt(),MOe)));case 5:return!this.a&&(this.a=new Rrt(this,0)),void Ly(JQ(this.a,(qUt(),BOe)));case 6:return!this.a&&(this.a=new Rrt(this,0)),void Ly(JQ(this.a,(qUt(),POe)))}Hdt(this,t-dY((qUt(),LOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():LOe,t))},kGt.Ib=function(){var t;return 4&this.j?CLt(this):((t=new lM(CLt(this))).a+=" (mixed: ",nD(t,this.a),t.a+=")",t.a)},bY(O9t,"XMLTypeDocumentRootImpl",669),fIt(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},Bl),kGt.Ih=function(t,e){switch(t.yj()){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 null==e?null:$ft(e);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return kB(e);case 6:return mB(jz(e,190));case 12:case 47:case 49:case 11:return HVt(this,t,e);case 13:return null==e?null:Uzt(jz(e,240));case 15:case 14:return null==e?null:NW(Hw(_B(e)));case 17:return R_t((qUt(),e));case 18:return R_t(e);case 21:case 20:return null==e?null:BW(jz(e,155).a);case 27:return yB(jz(e,190));case 30:return Fvt((qUt(),jz(e,15)));case 31:return Fvt(jz(e,15));case 40:return wB((qUt(),e));case 42:return __t((qUt(),e));case 43:return __t(e);case 59:case 48:return vB((qUt(),e));default:throw $m(new Pw(g7t+t.ne()+p7t))}},kGt.Jh=function(t){var e;switch(-1==t.G&&(t.G=(e=qet(t))?oyt(e.Mh(),t):-1),t.G){case 0:return new Nv;case 1:return new Pl;case 2:return new Pv;case 3:return new Bv;default:throw $m(new Pw(y7t+t.zb+p7t))}},kGt.Kh=function(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m;switch(t.yj()){case 5:case 52:case 4:return e;case 6:return vmt(e);case 8:case 7:return null==e?null:F_t(e);case 9:return null==e?null:Ett(djt((i=jzt(e,!0)).length>0&&(d1(0,i.length),43==i.charCodeAt(0))?i.substr(1):i,-128,127)<<24>>24);case 10:return null==e?null:Ett(djt((a=jzt(e,!0)).length>0&&(d1(0,a.length),43==a.charCodeAt(0))?a.substr(1):a,-128,127)<<24>>24);case 11:return kB(MYt(this,(qUt(),yOe),e));case 12:return kB(MYt(this,(qUt(),vOe),e));case 13:return null==e?null:new h_(jzt(e,!0));case 15:case 14:return pOt(e);case 16:return kB(MYt(this,(qUt(),wOe),e));case 17:return zpt((qUt(),e));case 18:return zpt(e);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return jzt(e,!0);case 21:case 20:return TOt(e);case 22:return kB(MYt(this,(qUt(),xOe),e));case 23:return kB(MYt(this,(qUt(),ROe),e));case 24:return kB(MYt(this,(qUt(),_Oe),e));case 25:return kB(MYt(this,(qUt(),kOe),e));case 26:return kB(MYt(this,(qUt(),EOe),e));case 27:return Jbt(e);case 30:return Hpt((qUt(),e));case 31:return Hpt(e);case 32:return null==e?null:nht(djt((u=jzt(e,!0)).length>0&&(d1(0,u.length),43==u.charCodeAt(0))?u.substr(1):u,FZt,NGt));case 33:return null==e?null:new DI((d=jzt(e,!0)).length>0&&(d1(0,d.length),43==d.charCodeAt(0))?d.substr(1):d);case 34:return null==e?null:nht(djt((h=jzt(e,!0)).length>0&&(d1(0,h.length),43==h.charCodeAt(0))?h.substr(1):h,FZt,NGt));case 36:return null==e?null:xbt(iWt((f=jzt(e,!0)).length>0&&(d1(0,f.length),43==f.charCodeAt(0))?f.substr(1):f));case 37:return null==e?null:xbt(iWt((g=jzt(e,!0)).length>0&&(d1(0,g.length),43==g.charCodeAt(0))?g.substr(1):g));case 40:return Ggt((qUt(),e));case 42:return Upt((qUt(),e));case 43:return Upt(e);case 44:return null==e?null:new DI((p=jzt(e,!0)).length>0&&(d1(0,p.length),43==p.charCodeAt(0))?p.substr(1):p);case 45:return null==e?null:new DI((b=jzt(e,!0)).length>0&&(d1(0,b.length),43==b.charCodeAt(0))?b.substr(1):b);case 46:return jzt(e,!1);case 47:return kB(MYt(this,(qUt(),COe),e));case 59:case 48:return Ygt((qUt(),e));case 49:return kB(MYt(this,(qUt(),TOe),e));case 50:return null==e?null:iht(djt((m=jzt(e,!0)).length>0&&(d1(0,m.length),43==m.charCodeAt(0))?m.substr(1):m,Z8t,32767)<<16>>16);case 51:return null==e?null:iht(djt((r=jzt(e,!0)).length>0&&(d1(0,r.length),43==r.charCodeAt(0))?r.substr(1):r,Z8t,32767)<<16>>16);case 53:return kB(MYt(this,(qUt(),IOe),e));case 55:return null==e?null:iht(djt((o=jzt(e,!0)).length>0&&(d1(0,o.length),43==o.charCodeAt(0))?o.substr(1):o,Z8t,32767)<<16>>16);case 56:return null==e?null:iht(djt((s=jzt(e,!0)).length>0&&(d1(0,s.length),43==s.charCodeAt(0))?s.substr(1):s,Z8t,32767)<<16>>16);case 57:return null==e?null:xbt(iWt((c=jzt(e,!0)).length>0&&(d1(0,c.length),43==c.charCodeAt(0))?c.substr(1):c));case 58:return null==e?null:xbt(iWt((l=jzt(e,!0)).length>0&&(d1(0,l.length),43==l.charCodeAt(0))?l.substr(1):l));case 60:return null==e?null:nht(djt((n=jzt(e,!0)).length>0&&(d1(0,n.length),43==n.charCodeAt(0))?n.substr(1):n,FZt,NGt));case 61:return null==e?null:nht(djt(jzt(e,!0),FZt,NGt));default:throw $m(new Pw(g7t+t.ne()+p7t))}},bY(O9t,"XMLTypeFactoryImpl",1919),fIt(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},UG),kGt.N=!1,kGt.O=!1;var qOe,WOe,YOe,GOe,ZOe,KOe=!1;bY(O9t,"XMLTypePackageImpl",586),fIt(1852,1,{837:1},Fl),kGt._j=function(){return u$t(),xMe},bY(O9t,"XMLTypePackageImpl/1",1852),fIt(1861,1,c9t,jl),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/10",1861),fIt(1862,1,c9t,$l),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/11",1862),fIt(1863,1,c9t,zl),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/12",1863),fIt(1864,1,c9t,Hl),kGt.wj=function(t){return VA(t)},kGt.xj=function(t){return O5(Cee,cZt,333,t,7,1)},bY(O9t,"XMLTypePackageImpl/13",1864),fIt(1865,1,c9t,Ul),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/14",1865),fIt(1866,1,c9t,Vl),kGt.wj=function(t){return iO(t,15)},kGt.xj=function(t){return O5(Bte,QJt,15,t,0,1)},bY(O9t,"XMLTypePackageImpl/15",1866),fIt(1867,1,c9t,ql),kGt.wj=function(t){return iO(t,15)},kGt.xj=function(t){return O5(Bte,QJt,15,t,0,1)},bY(O9t,"XMLTypePackageImpl/16",1867),fIt(1868,1,c9t,Wl),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/17",1868),fIt(1869,1,c9t,Yl),kGt.wj=function(t){return iO(t,155)},kGt.xj=function(t){return O5(See,cZt,155,t,0,1)},bY(O9t,"XMLTypePackageImpl/18",1869),fIt(1870,1,c9t,Gl),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/19",1870),fIt(1853,1,c9t,Zl),kGt.wj=function(t){return iO(t,843)},kGt.xj=function(t){return O5(dOe,zGt,843,t,0,1)},bY(O9t,"XMLTypePackageImpl/2",1853),fIt(1871,1,c9t,Kl),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/20",1871),fIt(1872,1,c9t,Xl),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/21",1872),fIt(1873,1,c9t,Jl),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/22",1873),fIt(1874,1,c9t,Ql),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/23",1874),fIt(1875,1,c9t,tu),kGt.wj=function(t){return iO(t,190)},kGt.xj=function(t){return O5(IMe,cZt,190,t,0,2)},bY(O9t,"XMLTypePackageImpl/24",1875),fIt(1876,1,c9t,eu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/25",1876),fIt(1877,1,c9t,nu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/26",1877),fIt(1878,1,c9t,iu),kGt.wj=function(t){return iO(t,15)},kGt.xj=function(t){return O5(Bte,QJt,15,t,0,1)},bY(O9t,"XMLTypePackageImpl/27",1878),fIt(1879,1,c9t,au),kGt.wj=function(t){return iO(t,15)},kGt.xj=function(t){return O5(Bte,QJt,15,t,0,1)},bY(O9t,"XMLTypePackageImpl/28",1879),fIt(1880,1,c9t,ru),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/29",1880),fIt(1854,1,c9t,ou),kGt.wj=function(t){return iO(t,667)},kGt.xj=function(t){return O5(HOe,zGt,2021,t,0,1)},bY(O9t,"XMLTypePackageImpl/3",1854),fIt(1881,1,c9t,su),kGt.wj=function(t){return iO(t,19)},kGt.xj=function(t){return O5(Dee,cZt,19,t,0,1)},bY(O9t,"XMLTypePackageImpl/30",1881),fIt(1882,1,c9t,cu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/31",1882),fIt(1883,1,c9t,lu),kGt.wj=function(t){return iO(t,162)},kGt.xj=function(t){return O5(Bee,cZt,162,t,0,1)},bY(O9t,"XMLTypePackageImpl/32",1883),fIt(1884,1,c9t,uu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/33",1884),fIt(1885,1,c9t,du),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/34",1885),fIt(1886,1,c9t,hu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/35",1886),fIt(1887,1,c9t,fu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/36",1887),fIt(1888,1,c9t,gu),kGt.wj=function(t){return iO(t,15)},kGt.xj=function(t){return O5(Bte,QJt,15,t,0,1)},bY(O9t,"XMLTypePackageImpl/37",1888),fIt(1889,1,c9t,pu),kGt.wj=function(t){return iO(t,15)},kGt.xj=function(t){return O5(Bte,QJt,15,t,0,1)},bY(O9t,"XMLTypePackageImpl/38",1889),fIt(1890,1,c9t,bu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/39",1890),fIt(1855,1,c9t,mu),kGt.wj=function(t){return iO(t,668)},kGt.xj=function(t){return O5(UOe,zGt,2022,t,0,1)},bY(O9t,"XMLTypePackageImpl/4",1855),fIt(1891,1,c9t,yu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/40",1891),fIt(1892,1,c9t,vu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/41",1892),fIt(1893,1,c9t,wu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/42",1893),fIt(1894,1,c9t,xu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/43",1894),fIt(1895,1,c9t,Ru),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/44",1895),fIt(1896,1,c9t,_u),kGt.wj=function(t){return iO(t,184)},kGt.xj=function(t){return O5(Fee,cZt,184,t,0,1)},bY(O9t,"XMLTypePackageImpl/45",1896),fIt(1897,1,c9t,ku),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/46",1897),fIt(1898,1,c9t,Eu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/47",1898),fIt(1899,1,c9t,Cu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/48",1899),fIt(cKt,1,c9t,Su),kGt.wj=function(t){return iO(t,184)},kGt.xj=function(t){return O5(Fee,cZt,184,t,0,1)},bY(O9t,"XMLTypePackageImpl/49",cKt),fIt(1856,1,c9t,Tu),kGt.wj=function(t){return iO(t,669)},kGt.xj=function(t){return O5(VOe,zGt,2023,t,0,1)},bY(O9t,"XMLTypePackageImpl/5",1856),fIt(1901,1,c9t,Au),kGt.wj=function(t){return iO(t,162)},kGt.xj=function(t){return O5(Bee,cZt,162,t,0,1)},bY(O9t,"XMLTypePackageImpl/50",1901),fIt(1902,1,c9t,Du),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/51",1902),fIt(1903,1,c9t,Iu),kGt.wj=function(t){return iO(t,19)},kGt.xj=function(t){return O5(Dee,cZt,19,t,0,1)},bY(O9t,"XMLTypePackageImpl/52",1903),fIt(1857,1,c9t,Lu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/6",1857),fIt(1858,1,c9t,Ou),kGt.wj=function(t){return iO(t,190)},kGt.xj=function(t){return O5(IMe,cZt,190,t,0,2)},bY(O9t,"XMLTypePackageImpl/7",1858),fIt(1859,1,c9t,Mu),kGt.wj=function(t){return UA(t)},kGt.xj=function(t){return O5(wee,cZt,476,t,8,1)},bY(O9t,"XMLTypePackageImpl/8",1859),fIt(1860,1,c9t,Nu),kGt.wj=function(t){return iO(t,217)},kGt.xj=function(t){return O5(Ree,cZt,217,t,0,1)},bY(O9t,"XMLTypePackageImpl/9",1860),fIt(50,60,$Zt,ax),bY(rte,"RegEx/ParseException",50),fIt(820,1,{},Bu),kGt.sl=function(t){return t<this.j&&63==lZ(this.i,t)},kGt.tl=function(){var t,e,n,i,a;if(10!=this.c)throw $m(new ax(wGt((rL(),p5t))));switch(t=this.a){case 101:t=27;break;case 102:t=12;break;case 110:t=10;break;case 114:t=13;break;case 116:t=9;break;case 120:if(ZYt(this),0!=this.c)throw $m(new ax(wGt((rL(),$5t))));if(123==this.a){for(a=0,n=0;;){if(ZYt(this),0!=this.c)throw $m(new ax(wGt((rL(),$5t))));if((a=Uyt(this.a))<0)break;if(n>16*n)throw $m(new ax(wGt((rL(),z5t))));n=16*n+a}if(125!=this.a)throw $m(new ax(wGt((rL(),H5t))));if(n>ote)throw $m(new ax(wGt((rL(),U5t))));t=n}else{if(a=0,0!=this.c||(a=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(n=a,ZYt(this),0!=this.c||(a=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));t=n=16*n+a}break;case 117:if(i=0,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(e=i,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(e=16*e+i,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(e=16*e+i,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));t=e=16*e+i;break;case 118:if(ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(e=i,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(e=16*e+i,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(e=16*e+i,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(e=16*e+i,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(e=16*e+i,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if((e=16*e+i)>ote)throw $m(new ax(wGt((rL(),"parser.descappe.4"))));t=e;break;case 65:case 90:case 122:throw $m(new ax(wGt((rL(),V5t))))}return t},kGt.ul=function(t){var e;switch(t){case 100:e=32==(32&this.e)?JWt("Nd",!0):(fGt(),aMe);break;case 68:e=32==(32&this.e)?JWt("Nd",!1):(fGt(),lMe);break;case 119:e=32==(32&this.e)?JWt("IsWord",!0):(fGt(),yMe);break;case 87:e=32==(32&this.e)?JWt("IsWord",!1):(fGt(),dMe);break;case 115:e=32==(32&this.e)?JWt("IsSpace",!0):(fGt(),fMe);break;case 83:e=32==(32&this.e)?JWt("IsSpace",!1):(fGt(),uMe);break;default:throw $m(new fw(ste+t.toString(16)))}return e},kGt.vl=function(t){var e,n,i,a,r,o,s,c,l,u,d;for(this.b=1,ZYt(this),e=null,0==this.c&&94==this.a?(ZYt(this),t?(fGt(),fGt(),l=new _0(5)):(fGt(),fGt(),KNt(e=new _0(4),0,ote),l=new _0(4))):(fGt(),fGt(),l=new _0(4)),a=!0;1!=(d=this.c)&&(0!=d||93!=this.a||a);){if(a=!1,n=this.a,i=!1,10==d)switch(n){case 100:case 68:case 119:case 87:case 115:case 83:cHt(l,this.ul(n)),i=!0;break;case 105:case 73:case 99:case 67:(n=this.Ll(l,n))<0&&(i=!0);break;case 112:case 80:if(!(u=NAt(this,n)))throw $m(new ax(wGt((rL(),A5t))));cHt(l,u),i=!0;break;default:n=this.tl()}else if(20==d){if((r=uN(this.i,58,this.d))<0)throw $m(new ax(wGt((rL(),D5t))));if(o=!0,94==lZ(this.i,this.d)&&(++this.d,o=!1),!(s=d8(lN(this.i,this.d,r),o,512==(512&this.e))))throw $m(new ax(wGt((rL(),L5t))));if(cHt(l,s),i=!0,r+1>=this.j||93!=lZ(this.i,r+1))throw $m(new ax(wGt((rL(),D5t))));this.d=r+2}if(ZYt(this),!i)if(0!=this.c||45!=this.a)KNt(l,n,n);else{if(ZYt(this),1==(d=this.c))throw $m(new ax(wGt((rL(),I5t))));0==d&&93==this.a?(KNt(l,n,n),KNt(l,45,45)):(c=this.a,10==d&&(c=this.tl()),ZYt(this),KNt(l,n,c))}(this.e&w7t)==w7t&&0==this.c&&44==this.a&&ZYt(this)}if(1==this.c)throw $m(new ax(wGt((rL(),I5t))));return e&&(YVt(e,l),l=e),_Lt(l),HHt(l),this.b=0,ZYt(this),l},kGt.wl=function(){var t,e,n,i;for(n=this.vl(!1);7!=(i=this.c);){if(t=this.a,(0!=i||45!=t&&38!=t)&&4!=i)throw $m(new ax(wGt((rL(),F5t))));if(ZYt(this),9!=this.c)throw $m(new ax(wGt((rL(),P5t))));if(e=this.vl(!1),4==i)cHt(n,e);else if(45==t)YVt(n,e);else{if(38!=t)throw $m(new fw("ASSERT"));wVt(n,e)}}return ZYt(this),n},kGt.xl=function(){var t,e;return t=this.a-48,fGt(),fGt(),e=new bJ(12,null,t),!this.g&&(this.g=new Py),Cy(this.g,new Tm(t)),ZYt(this),e},kGt.yl=function(){return ZYt(this),fGt(),gMe},kGt.zl=function(){return ZYt(this),fGt(),hMe},kGt.Al=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Bl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Cl=function(){return ZYt(this),ult()},kGt.Dl=function(){return ZYt(this),fGt(),bMe},kGt.El=function(){return ZYt(this),fGt(),vMe},kGt.Fl=function(){var t;if(this.d>=this.j||64!=(65504&(t=lZ(this.i,this.d++))))throw $m(new ax(wGt((rL(),E5t))));return ZYt(this),fGt(),fGt(),new oV(0,t-64)},kGt.Gl=function(){return ZYt(this),B$t()},kGt.Hl=function(){return ZYt(this),fGt(),wMe},kGt.Il=function(){var t;return fGt(),fGt(),t=new oV(0,105),ZYt(this),t},kGt.Jl=function(){return ZYt(this),fGt(),mMe},kGt.Kl=function(){return ZYt(this),fGt(),pMe},kGt.Ll=function(t,e){return this.tl()},kGt.Ml=function(){return ZYt(this),fGt(),sMe},kGt.Nl=function(){var t,e,n,i,a;if(this.d+1>=this.j)throw $m(new ax(wGt((rL(),R5t))));if(i=-1,e=null,49<=(t=lZ(this.i,this.d))&&t<=57){if(i=t-48,!this.g&&(this.g=new Py),Cy(this.g,new Tm(i)),++this.d,41!=lZ(this.i,this.d))throw $m(new ax(wGt((rL(),v5t))));++this.d}else switch(63==t&&--this.d,ZYt(this),e=AYt(this),e.e){case 20:case 21:case 22:case 23:break;case 8:if(7!=this.c)throw $m(new ax(wGt((rL(),v5t))));break;default:throw $m(new ax(wGt((rL(),_5t))))}if(ZYt(this),n=null,2==(a=Gpt(this)).e){if(2!=a.em())throw $m(new ax(wGt((rL(),k5t))));n=a.am(1),a=a.am(0)}if(7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),fGt(),fGt(),new wtt(i,e,a,n)},kGt.Ol=function(){return ZYt(this),fGt(),cMe},kGt.Pl=function(){var t;if(ZYt(this),t=rW(24,Gpt(this)),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),t},kGt.Ql=function(){var t;if(ZYt(this),t=rW(20,Gpt(this)),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),t},kGt.Rl=function(){var t;if(ZYt(this),t=rW(22,Gpt(this)),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),t},kGt.Sl=function(){var t,e,n,i,a;for(t=0,n=0,e=-1;this.d<this.j&&0!=(a=ZDt(e=lZ(this.i,this.d)));)t|=a,++this.d;if(this.d>=this.j)throw $m(new ax(wGt((rL(),w5t))));if(45==e){for(++this.d;this.d<this.j&&0!=(a=ZDt(e=lZ(this.i,this.d)));)n|=a,++this.d;if(this.d>=this.j)throw $m(new ax(wGt((rL(),w5t))))}if(58==e){if(++this.d,ZYt(this),i=AY(Gpt(this),t,n),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));ZYt(this)}else{if(41!=e)throw $m(new ax(wGt((rL(),x5t))));++this.d,ZYt(this),i=AY(Gpt(this),t,n)}return i},kGt.Tl=function(){var t;if(ZYt(this),t=rW(21,Gpt(this)),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),t},kGt.Ul=function(){var t;if(ZYt(this),t=rW(23,Gpt(this)),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),t},kGt.Vl=function(){var t,e;if(ZYt(this),t=this.f++,e=oW(Gpt(this),t),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),e},kGt.Wl=function(){var t;if(ZYt(this),t=oW(Gpt(this),0),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),t},kGt.Xl=function(t){return ZYt(this),5==this.c?(ZYt(this),gV(t,(fGt(),fGt(),new c3(9,t)))):gV(t,(fGt(),fGt(),new c3(3,t)))},kGt.Yl=function(t){var e;return ZYt(this),fGt(),fGt(),e=new nL(2),5==this.c?(ZYt(this),tUt(e,oMe),tUt(e,t)):(tUt(e,t),tUt(e,oMe)),e},kGt.Zl=function(t){return ZYt(this),5==this.c?(ZYt(this),fGt(),fGt(),new c3(9,t)):(fGt(),fGt(),new c3(3,t))},kGt.a=0,kGt.b=0,kGt.c=0,kGt.d=0,kGt.e=0,kGt.f=1,kGt.g=null,kGt.j=0,bY(rte,"RegEx/RegexParser",820),fIt(1824,820,{},Fv),kGt.sl=function(t){return!1},kGt.tl=function(){return HBt(this)},kGt.ul=function(t){return gjt(t)},kGt.vl=function(t){return JYt(this)},kGt.wl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.xl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.yl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.zl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Al=function(){return ZYt(this),gjt(67)},kGt.Bl=function(){return ZYt(this),gjt(73)},kGt.Cl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Dl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.El=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Fl=function(){return ZYt(this),gjt(99)},kGt.Gl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Hl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Il=function(){return ZYt(this),gjt(105)},kGt.Jl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Kl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Ll=function(t,e){return cHt(t,gjt(e)),-1},kGt.Ml=function(){return ZYt(this),fGt(),fGt(),new oV(0,94)},kGt.Nl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Ol=function(){return ZYt(this),fGt(),fGt(),new oV(0,36)},kGt.Pl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Ql=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Rl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Sl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Tl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Ul=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Vl=function(){var t;if(ZYt(this),t=oW(Gpt(this),0),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),t},kGt.Wl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Xl=function(t){return ZYt(this),gV(t,(fGt(),fGt(),new c3(3,t)))},kGt.Yl=function(t){var e;return ZYt(this),fGt(),fGt(),tUt(e=new nL(2),t),tUt(e,oMe),e},kGt.Zl=function(t){return ZYt(this),fGt(),fGt(),new c3(3,t)};var XOe=null,JOe=null;bY(rte,"RegEx/ParserForXMLSchema",1824),fIt(117,1,vte,Am),kGt.$l=function(t){throw $m(new fw("Not supported."))},kGt._l=function(){return-1},kGt.am=function(t){return null},kGt.bm=function(){return null},kGt.cm=function(t){},kGt.dm=function(t){},kGt.em=function(){return 0},kGt.Ib=function(){return this.fm(0)},kGt.fm=function(t){return 11==this.e?".":""},kGt.e=0;var QOe,tMe,eMe,nMe,iMe,aMe,rMe,oMe,sMe,cMe,lMe,uMe,dMe,hMe,fMe,gMe,pMe,bMe,mMe,yMe,vMe,wMe,xMe,RMe,_Me=null,kMe=null,EMe=null,CMe=bY(rte,"RegEx/Token",117);fIt(136,117,{3:1,136:1,117:1},_0),kGt.fm=function(t){var e,n,i;if(4==this.e)if(this==rMe)n=".";else if(this==aMe)n="\\d";else if(this==yMe)n="\\w";else if(this==fMe)n="\\s";else{for((i=new kx).a+="[",e=0;e<this.b.length;e+=2)t&w7t&&e>0&&(i.a+=","),this.b[e]===this.b[e+1]?iD(i,rzt(this.b[e])):(iD(i,rzt(this.b[e])),i.a+="-",iD(i,rzt(this.b[e+1])));i.a+="]",n=i.a}else if(this==lMe)n="\\D";else if(this==dMe)n="\\W";else if(this==uMe)n="\\S";else{for((i=new kx).a+="[^",e=0;e<this.b.length;e+=2)t&w7t&&e>0&&(i.a+=","),this.b[e]===this.b[e+1]?iD(i,rzt(this.b[e])):(iD(i,rzt(this.b[e])),i.a+="-",iD(i,rzt(this.b[e+1])));i.a+="]",n=i.a}return n},kGt.a=!1,kGt.c=!1,bY(rte,"RegEx/RangeToken",136),fIt(584,1,{584:1},Tm),kGt.a=0,bY(rte,"RegEx/RegexParser/ReferencePosition",584),fIt(583,1,{3:1,583:1},q_),kGt.Fb=function(t){var e;return!(null==t||!iO(t,583))&&(e=jz(t,583),mF(this.b,e.b)&&this.a==e.a)},kGt.Hb=function(){return myt(this.b+"/"+tNt(this.a))},kGt.Ib=function(){return this.c.fm(this.a)},kGt.a=0,bY(rte,"RegEx/RegularExpression",583),fIt(223,117,vte,oV),kGt._l=function(){return this.a},kGt.fm=function(t){var e,n;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:n="\\"+EP(this.a&ZZt);break;case 12:n="\\f";break;case 10:n="\\n";break;case 13:n="\\r";break;case 9:n="\\t";break;case 27:n="\\e";break;default:n=this.a>=$Kt?"\\v"+lN(e="0"+(this.a>>>0).toString(16),e.length-6,e.length):""+EP(this.a&ZZt)}break;case 8:n=this==sMe||this==cMe?""+EP(this.a&ZZt):"\\"+EP(this.a&ZZt);break;default:n=null}return n},kGt.a=0,bY(rte,"RegEx/Token/CharToken",223),fIt(309,117,vte,c3),kGt.am=function(t){return this.a},kGt.cm=function(t){this.b=t},kGt.dm=function(t){this.c=t},kGt.em=function(){return 1},kGt.fm=function(t){var e;if(3==this.e)if(this.c<0&&this.b<0)e=this.a.fm(t)+"*";else if(this.c==this.b)e=this.a.fm(t)+"{"+this.c+"}";else if(this.c>=0&&this.b>=0)e=this.a.fm(t)+"{"+this.c+","+this.b+"}";else{if(!(this.c>=0&&this.b<0))throw $m(new fw("Token#toString(): CLOSURE "+this.c+jGt+this.b));e=this.a.fm(t)+"{"+this.c+",}"}else if(this.c<0&&this.b<0)e=this.a.fm(t)+"*?";else if(this.c==this.b)e=this.a.fm(t)+"{"+this.c+"}?";else if(this.c>=0&&this.b>=0)e=this.a.fm(t)+"{"+this.c+","+this.b+"}?";else{if(!(this.c>=0&&this.b<0))throw $m(new fw("Token#toString(): NONGREEDYCLOSURE "+this.c+jGt+this.b));e=this.a.fm(t)+"{"+this.c+",}?"}return e},kGt.b=0,kGt.c=0,bY(rte,"RegEx/Token/ClosureToken",309),fIt(821,117,vte,VW),kGt.am=function(t){return 0==t?this.a:this.b},kGt.em=function(){return 2},kGt.fm=function(t){return 3==this.b.e&&this.b.am(0)==this.a?this.a.fm(t)+"+":9==this.b.e&&this.b.am(0)==this.a?this.a.fm(t)+"+?":this.a.fm(t)+""+this.b.fm(t)},bY(rte,"RegEx/Token/ConcatToken",821),fIt(1822,117,vte,wtt),kGt.am=function(t){if(0==t)return this.d;if(1==t)return this.b;throw $m(new fw("Internal Error: "+t))},kGt.em=function(){return this.b?2:1},kGt.fm=function(t){var e;return e=this.c>0?"(?("+this.c+")":8==this.a.e?"(?("+this.a+")":"(?"+this.a,this.b?e+=this.d+"|"+this.b+")":e+=this.d+")",e},kGt.c=0,bY(rte,"RegEx/Token/ConditionToken",1822),fIt(1823,117,vte,R0),kGt.am=function(t){return this.b},kGt.em=function(){return 1},kGt.fm=function(t){return"(?"+(0==this.a?"":tNt(this.a))+(0==this.c?"":tNt(this.c))+":"+this.b.fm(t)+")"},kGt.a=0,kGt.c=0,bY(rte,"RegEx/Token/ModifierToken",1823),fIt(822,117,vte,iG),kGt.am=function(t){return this.a},kGt.em=function(){return 1},kGt.fm=function(t){var e;switch(e=null,this.e){case 6:e=0==this.b?"(?:"+this.a.fm(t)+")":"("+this.a.fm(t)+")";break;case 20:e="(?="+this.a.fm(t)+")";break;case 21:e="(?!"+this.a.fm(t)+")";break;case 22:e="(?<="+this.a.fm(t)+")";break;case 23:e="(?<!"+this.a.fm(t)+")";break;case 24:e="(?>"+this.a.fm(t)+")"}return e},kGt.b=0,bY(rte,"RegEx/Token/ParenToken",822),fIt(521,117,{3:1,117:1,521:1},bJ),kGt.bm=function(){return this.b},kGt.fm=function(t){return 12==this.e?"\\"+this.a:nIt(this.b)},kGt.a=0,bY(rte,"RegEx/Token/StringToken",521),fIt(465,117,vte,nL),kGt.$l=function(t){tUt(this,t)},kGt.am=function(t){return jz(dG(this.a,t),117)},kGt.em=function(){return this.a?this.a.a.c.length:0},kGt.fm=function(t){var e,n,i,a,r;if(1==this.e){if(2==this.a.a.c.length)e=jz(dG(this.a,0),117),a=3==(n=jz(dG(this.a,1),117)).e&&n.am(0)==e?e.fm(t)+"+":9==n.e&&n.am(0)==e?e.fm(t)+"+?":e.fm(t)+""+n.fm(t);else{for(r=new kx,i=0;i<this.a.a.c.length;i++)iD(r,jz(dG(this.a,i),117).fm(t));a=r.a}return a}if(2==this.a.a.c.length&&7==jz(dG(this.a,1),117).e)a=jz(dG(this.a,0),117).fm(t)+"?";else if(2==this.a.a.c.length&&7==jz(dG(this.a,0),117).e)a=jz(dG(this.a,1),117).fm(t)+"??";else{for(iD(r=new kx,jz(dG(this.a,0),117).fm(t)),i=1;i<this.a.a.c.length;i++)r.a+="|",iD(r,jz(dG(this.a,i),117).fm(t));a=r.a}return a},bY(rte,"RegEx/Token/UnionToken",465),fIt(518,1,{592:1},V_),kGt.Ib=function(){return this.a.b},bY(wte,"XMLTypeUtil/PatternMatcherImpl",518),fIt(1622,1381,{},Pu),bY(wte,"XMLTypeValidator",1622),fIt(264,1,bZt,cq),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return(this.b-this.a)*this.c<0?RMe:new qO(this)},kGt.a=0,kGt.b=0,kGt.c=0,bY(Rte,"ExclusiveRange",264),fIt(1068,1,aZt,Fu),kGt.Rb=function(t){jz(t,19),uL()},kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return H_()},kGt.Ub=function(){return U_()},kGt.Wb=function(t){jz(t,19),hL()},kGt.Ob=function(){return!1},kGt.Sb=function(){return!1},kGt.Tb=function(){return-1},kGt.Vb=function(){return-1},kGt.Qb=function(){throw $m(new Qw(Ete))},bY(Rte,"ExclusiveRange/1",1068),fIt(254,1,aZt,qO),kGt.Rb=function(t){jz(t,19),dL()},kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return jut(this)},kGt.Ub=function(){return T8(this)},kGt.Wb=function(t){jz(t,19),fL()},kGt.Ob=function(){return this.c.c<0?this.a>=this.c.b:this.a<=this.c.b},kGt.Sb=function(){return this.b>0},kGt.Tb=function(){return this.b},kGt.Vb=function(){return this.b-1},kGt.Qb=function(){throw $m(new Qw(Ete))},kGt.a=0,kGt.b=0,bY(Rte,"ExclusiveRange/RangeIterator",254);var SMe=NG(C8t,"C"),TMe=NG(A8t,"I"),AMe=NG(IGt,"Z"),DMe=NG(D8t,"J"),IMe=NG(E8t,"B"),LMe=NG(S8t,"D"),OMe=NG(T8t,"F"),MMe=NG(I8t,"S"),NMe=dU("org.eclipse.elk.core.labels","ILabelManager"),BMe=dU($7t,"DiagnosticChain"),PMe=dU(u9t,"ResourceSet"),FMe=bY($7t,"InvocationTargetException",null),jMe=(Mx(),l6),$Me=$Me=l_t;Jnt(Gm),crt("permProps",[[[Cte,Ste],[Tte,"gecko1_8"]],[[Cte,Ste],[Tte,"ie10"]],[[Cte,Ste],[Tte,"ie8"]],[[Cte,Ste],[Tte,"ie9"]],[[Cte,Ste],[Tte,"safari"]]]),$Me(null,"elk",null)}).call(this)}).call(this,typeof a<"u"?a:typeof self<"u"?self:typeof window<"u"?window:{})},{}],3:[function(t,e,n){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var o=function(e){function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,n);var r=Object.assign({},e),o=!1;try{t.resolve("web-worker"),o=!0}catch{}if(e.workerUrl)if(o){var s=t("web-worker");r.workerFactory=function(t){return new s(t)}}else console.warn("Web worker requested but 'web-worker' package not installed. \nConsider installing the package or pass your own 'workerFactory' to ELK's constructor.\n... Falling back to non-web worker version.");if(!r.workerFactory){var c=t("./elk-worker.min.js").Worker;r.workerFactory=function(t){return new c(t)}}return a(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,r))}return r(n,e),n}(t("./elk-api.js").default);Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports=o,o.default=o},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(t,e,n){e.exports=Worker},{}]},{},[3])(3)},t.exports=n()}({get exports(){return DU},set exports(t){DU=t}});const IU=new(r(DU)),LU={},OU={};let MU={};const NU=function(t,e,n,i,a,r,o){const s=n.select(`[id="${e}"]`),c=s.insert("g").attr("class","nodes");return Object.keys(t).forEach((function(e){const n=t[e];let o="default";n.classes.length>0&&(o=n.classes.join(" "));const l=em(n.styles);let u,d=void 0!==n.text?n.text:n.id;const h={width:0,height:0};if(Xd(Ry().flowchart.htmlLabels)){const t={label:d.replace(/fa[blrs]?:fa-[\w-]+/g,(t=>`<i class='${t.replace(":"," ")}'></i>`))};u=mN(s,t).node();const e=u.getBBox();h.width=e.width,h.height=e.height,h.labelNode=u,u.parentNode.removeChild(u)}else{const t=i.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",l.labelStyle.replace("color:","fill:"));const e=d.split(Qd.lineBreakRegex);for(const a of e){const e=i.createElementNS("http://www.w3.org/2000/svg","tspan");e.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),e.setAttribute("dy","1em"),e.setAttribute("x","1"),e.textContent=a,t.appendChild(e)}u=t;const n=u.getBBox();h.width=n.width,h.height=n.height,h.labelNode=u}const f=[{id:n.id+"-west",layoutOptions:{"port.side":"WEST"}},{id:n.id+"-east",layoutOptions:{"port.side":"EAST"}},{id:n.id+"-south",layoutOptions:{"port.side":"SOUTH"}},{id:n.id+"-north",layoutOptions:{"port.side":"NORTH"}}];let g=0,p="",b={};switch(n.type){case"round":g=5,p="rect";break;case"square":case"group":default:p="rect";break;case"diamond":p="question",b={portConstraints:"FIXED_SIDE"};break;case"hexagon":p="hexagon";break;case"odd":case"odd_right":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"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"doublecircle":p="doublecircle"}const m={labelStyle:l.labelStyle,shape:p,labelText:d,rx:g,ry:g,class:o,style:l.style,id:n.id,link:n.link,linkTarget:n.linkTarget,tooltip:a.db.getTooltip(n.id)||"",domId:a.db.lookUpDomId(n.id),haveCallback:n.haveCallback,width:"group"===n.type?500:void 0,dir:n.dir,type:n.type,props:n.props,padding:Ry().flowchart.padding};let y,v;"group"!==m.type&&(v=UL(c,m,n.dir),y=v.node().getBBox());const w={id:n.id,ports:"diamond"===n.type?f:[],layoutOptions:b,labelText:d,labelData:h,domId:a.db.lookUpDomId(n.id),width:null==y?void 0:y.width,height:null==y?void 0:y.height,type:n.type,el:v,parent:r.parentById[n.id]};MU[m.id]=w})),o},BU=(t,e,n)=>{const i={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 i.TD=i.TB,d.info("abc88",n,e,t),i[n][e][t]},PU=(t,e,n)=>{if(d.info("getNextPort abc88",{node:t,edgeDirection:e,graphDirection:n}),!LU[t])switch(n){case"TB":case"TD":LU[t]={inPosition:"north",outPosition:"south"};break;case"BT":LU[t]={inPosition:"south",outPosition:"north"};break;case"RL":LU[t]={inPosition:"east",outPosition:"west"};break;case"LR":LU[t]={inPosition:"west",outPosition:"east"}}const i="in"===e?LU[t].inPosition:LU[t].outPosition;return"in"===e?LU[t].inPosition=BU(LU[t].inPosition,e,n):LU[t].outPosition=BU(LU[t].outPosition,e,n),i},FU=(t,e)=>{let n=t.start,i=t.end;const a=MU[n],r=MU[i];return a&&r?("diamond"===a.type&&(n=`${n}-${PU(n,"out",e)}`),"diamond"===r.type&&(i=`${i}-${PU(i,"in",e)}`),{source:n,target:i}):{source:n,target:i}},jU=function(t,e,n,i){d.info("abc78 edges = ",t);const a=i.insert("g").attr("class","edgeLabels");let r,o,s={},c=e.db.getDirection();if(void 0!==t.defaultStyle){const e=em(t.defaultStyle);r=e.style,o=e.labelStyle}return t.forEach((function(e){var i="L-"+e.start+"-"+e.end;void 0===s[i]?(s[i]=0,d.info("abc78 new entry",i,s[i])):(s[i]++,d.info("abc78 new entry",i,s[i]));let l=i+"-"+s[i];d.info("abc78 new link id to be used is",i,l,s[i]);var u="LS-"+e.start,h="LE-"+e.end;const f={style:"",labelStyle:""};switch(f.minlen=e.length||1,"arrow_open"===e.type?f.arrowhead="none":f.arrowhead="normal",f.arrowTypeStart="arrow_open",f.arrowTypeEnd="arrow_open",e.type){case"double_arrow_cross":f.arrowTypeStart="arrow_cross";case"arrow_cross":f.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":f.arrowTypeStart="arrow_point";case"arrow_point":f.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":f.arrowTypeStart="arrow_circle";case"arrow_circle":f.arrowTypeEnd="arrow_circle"}let g="",p="";switch(e.stroke){case"normal":g="fill:none;",void 0!==r&&(g=r),void 0!==o&&(p=o),f.thickness="normal",f.pattern="solid";break;case"dotted":f.thickness="normal",f.pattern="dotted",f.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":f.thickness="thick",f.pattern="solid",f.style="stroke-width: 3.5px;fill:none;"}if(void 0!==e.style){const t=em(e.style);g=t.style,p=t.labelStyle}f.style=f.style+=g,f.labelStyle=f.labelStyle+=p,void 0!==e.interpolate?f.curve=Yb(e.interpolate,Pl):void 0!==t.defaultInterpolate?f.curve=Yb(t.defaultInterpolate,Pl):f.curve=Yb(OU.curve,Pl),void 0===e.text?void 0!==e.style&&(f.arrowheadStyle="fill: #333"):(f.arrowheadStyle="fill: #333",f.labelpos="c"),f.labelType="text",f.label=e.text.replace(Qd.lineBreakRegex,"\n"),void 0===e.style&&(f.style=f.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),f.labelStyle=f.labelStyle.replace("color:","fill:"),f.id=l,f.classes="flowchart-link "+u+" "+h;const b=tO(a,f),{source:m,target:y}=FU(e,c);d.debug("abc78 source and target",m,y),n.edges.push({id:"e"+e.start+e.end,sources:[m],targets:[y],labelEl:b,labels:[{width:f.width,height:f.height,orgWidth:f.width,orgHeight:f.height,text:f.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:f})})),n},$U=function(t,e,n,i){let a="";switch(i&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replace(/\(/g,"\\("),a=a.replace(/\)/g,"\\)")),e.arrowTypeStart){case"arrow_cross":t.attr("marker-start","url("+a+"#"+n+"-crossStart)");break;case"arrow_point":t.attr("marker-start","url("+a+"#"+n+"-pointStart)");break;case"arrow_barb":t.attr("marker-start","url("+a+"#"+n+"-barbStart)");break;case"arrow_circle":t.attr("marker-start","url("+a+"#"+n+"-circleStart)");break;case"aggregation":t.attr("marker-start","url("+a+"#"+n+"-aggregationStart)");break;case"extension":t.attr("marker-start","url("+a+"#"+n+"-extensionStart)");break;case"composition":t.attr("marker-start","url("+a+"#"+n+"-compositionStart)");break;case"dependency":t.attr("marker-start","url("+a+"#"+n+"-dependencyStart)");break;case"lollipop":t.attr("marker-start","url("+a+"#"+n+"-lollipopStart)")}switch(e.arrowTypeEnd){case"arrow_cross":t.attr("marker-end","url("+a+"#"+n+"-crossEnd)");break;case"arrow_point":t.attr("marker-end","url("+a+"#"+n+"-pointEnd)");break;case"arrow_barb":t.attr("marker-end","url("+a+"#"+n+"-barbEnd)");break;case"arrow_circle":t.attr("marker-end","url("+a+"#"+n+"-circleEnd)");break;case"aggregation":t.attr("marker-end","url("+a+"#"+n+"-aggregationEnd)");break;case"extension":t.attr("marker-end","url("+a+"#"+n+"-extensionEnd)");break;case"composition":t.attr("marker-end","url("+a+"#"+n+"-compositionEnd)");break;case"dependency":t.attr("marker-end","url("+a+"#"+n+"-dependencyEnd)");break;case"lollipop":t.attr("marker-end","url("+a+"#"+n+"-lollipopEnd)")}},zU=function(t){const e={parentById:{},childrenById:{}},n=t.getSubGraphs();return d.info("Subgraphs - ",n),n.forEach((function(t){t.nodes.forEach((function(n){e.parentById[n]=t.id,void 0===e.childrenById[t.id]&&(e.childrenById[t.id]=[]),e.childrenById[t.id].push(n)}))})),n.forEach((function(t){t.id,void 0!==e.parentById[t.id]&&e.parentById[t.id]})),e},HU=function(t,e,n){const i=TU(t,e,n);if(void 0===i||"root"===i)return{x:0,y:0};const a=MU[i].offset;return{x:a.posX,y:a.posY}},UU=function(t,e,n,i,a){const r=HU(e.sources[0],e.targets[0],a),o=e.sections[0].startPoint,s=e.sections[0].endPoint,c=(e.sections[0].bendPoints?e.sections[0].bendPoints:[]).map((t=>[t.x+r.x,t.y+r.y])),l=[[o.x+r.x,o.y+r.y],...c,[s.x+r.x,s.y+r.y]],u=$l().curve(Pl),d=t.insert("path").attr("d",u(l)).attr("class","path").attr("fill","none"),h=t.insert("g").attr("class","edgeLabel"),f=un(h.node().appendChild(e.labelEl)),g=f.node().firstChild.getBoundingClientRect();f.attr("width",g.width),f.attr("height",g.height),h.attr("transform",`translate(${e.labels[0].x+r.x}, ${e.labels[0].y+r.y})`),$U(d,n,i.type,i.arrowMarkerAbsolute)},VU=(t,e)=>{t.forEach((t=>{t.children||(t.children=[]);const n=e.childrenById[t.id];n&&n.forEach((e=>{t.children.push(MU[e])})),VU(t.children,e)}))},qU=async function(t,e,n,i){var a;i.db.clear(),MU={},i.db.setGen("gen-2"),i.parser.parse(t);const r=un("body").append("div").attr("style","height:400px").attr("id","cy");let o={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(d.info("Drawing flowchart using v3 renderer",IU),i.db.getDirection()){case"BT":o.layoutOptions["elk.direction"]="UP";break;case"TB":o.layoutOptions["elk.direction"]="DOWN";break;case"LR":o.layoutOptions["elk.direction"]="RIGHT";break;case"RL":o.layoutOptions["elk.direction"]="LEFT"}const{securityLevel:s,flowchart:c}=Ry();let l;"sandbox"===s&&(l=un("#i"+e));const u=un("sandbox"===s?l.nodes()[0].contentDocument.body:"body"),h="sandbox"===s?l.nodes()[0].contentDocument:document,f=u.select(`[id="${e}"]`);lL(f,["point","circle","cross"],i.type,i.arrowMarkerAbsolute);const g=i.db.getVertices();let p;const b=i.db.getSubGraphs();d.info("Subgraphs - ",b);for(let d=b.length-1;d>=0;d--)p=b[d],i.db.addVertex(p.id,p.title,"group",void 0,p.classes,p.dir);const m=f.insert("g").attr("class","subgraphs"),y=zU(i.db);o=NU(g,e,u,h,i,y,o);const v=f.insert("g").attr("class","edges edgePath"),w=i.db.getEdges();o=jU(w,i,o,f),Object.keys(MU).forEach((t=>{const e=MU[t];e.parent||o.children.push(e),void 0!==y.childrenById[t]&&(e.labels=[{text:e.labelText,layoutOptions:{"nodeLabels.placement":"[H_CENTER, V_TOP, INSIDE]"},width:e.labelData.width,height:e.labelData.height}],delete e.x,delete e.y,delete e.width,delete e.height)})),VU(o.children,y),d.info("after layout",JSON.stringify(o,null,2));const x=await IU.layout(o);WU(0,0,x.children,f,m,i,0),d.info("after layout",x),null==(a=x.edges)||a.map((t=>{UU(v,t,t.edgeData,i,y)})),Oy({},f,c.diagramPadding,c.useMaxWidth),r.remove()},WU=(t,e,n,i,a,r,o)=>{n.forEach((function(n){if(n)if(MU[n.id].offset={posX:n.x+t,posY:n.y+e,x:t,y:e,depth:o,width:n.width,height:n.height},"group"===n.type){const i=a.insert("g").attr("class","subgraph");i.insert("rect").attr("class","subgraph subgraph-lvl-"+o%5+" node").attr("x",n.x+t).attr("y",n.y+e).attr("width",n.width).attr("height",n.height);const r=i.insert("g").attr("class","label");r.attr("transform",`translate(${n.labels[0].x+t+n.x}, ${n.labels[0].y+e+n.y})`),r.node().appendChild(n.labelData.labelNode),d.info("Id (UGH)= ",n.type,n.labels)}else d.info("Id (UGH)= ",n.id),n.el.attr("transform",`translate(${n.x+t+n.width/2}, ${n.y+e+n.height/2})`)})),n.forEach((function(n){n&&"group"===n.type&&WU(t+n.x,e+n.y,n.children,i,a,r,o+1)}))},YU={getClasses:function(t,e){d.info("Extracting classes"),e.db.clear("ver-2");try{return e.parse(t),e.db.getClasses()}catch{return{}}},draw:qU},GU=t=>{let e="";for(let n=0;n<5;n++)e+=`\n .subgraph-lvl-${n} {\n fill: ${t[`surface${n}`]};\n stroke: ${t[`surfacePeer${n}`]};\n }\n `;return e},ZU=Object.freeze(Object.defineProperty({__proto__:null,diagram:{db:aN,renderer:YU,parser:QO,styles:t=>`.label {\n font-family: ${t.fontFamily};\n color: ${t.nodeTextColor||t.textColor};\n }\n .cluster-label text {\n fill: ${t.titleColor};\n }\n .cluster-label span {\n color: ${t.titleColor};\n }\n\n .label text,span {\n fill: ${t.nodeTextColor||t.textColor};\n color: ${t.nodeTextColor||t.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${t.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${t.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${t.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${t.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${t.edgeLabelBackground};\n fill: ${t.edgeLabelBackground};\n }\n text-align: center;\n }\n\n .cluster rect {\n fill: ${t.clusterBkg};\n stroke: ${t.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${t.titleColor};\n }\n\n .cluster span {\n color: ${t.titleColor};\n }\n /* .cluster div {\n color: ${t.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${t.fontFamily};\n font-size: 12px;\n background: ${t.tertiaryColor};\n border: 1px solid ${t.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n .subgraph {\n stroke-width:2;\n rx:3;\n }\n // .subgraph-lvl-1 {\n // fill:#ccc;\n // // stroke:black;\n // }\n ${GU(t)}\n`}},Symbol.toStringTag,{value:"Module"}));var KU=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,2],n=[1,5],i=[6,9,11,17,18,20,22,23,26,27,28],a=[1,15],r=[1,16],o=[1,17],s=[1,18],c=[1,19],l=[1,23],u=[1,24],d=[1,27],h=[4,6,9,11,17,18,20,22,23,26,27,28],f={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,acc_title:18,acc_title_value:19,acc_descr:20,acc_descr_value:21,acc_descr_multiline_value:22,section:23,period_statement:24,event_statement:25,period:26,event:27,open_directive:28,type_directive:29,arg_directive:30,close_directive:31,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"acc_title",19:"acc_title_value",20:"acc_descr",21:"acc_descr_value",22:"acc_descr_multiline_value",23:"section",26:"period",27:"event",28:"open_directive",29:"type_directive",30:"arg_directive",31:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[24,1],[25,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 1:return r[s-1];case 3:case 7:case 8:this.$=[];break;case 4:r[s-1].push(r[s]),this.$=r[s-1];break;case 5:case 6:this.$=r[s];break;case 11:i.getCommonDb().setDiagramTitle(r[s].substr(6)),this.$=r[s].substr(6);break;case 12:this.$=r[s].trim(),i.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=r[s].trim(),i.getCommonDb().setAccDescription(this.$);break;case 15:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 19:i.addTask(r[s],0,""),this.$=r[s];break;case 20:i.addEvent(r[s].substr(2)),this.$=r[s];break;case 21:i.parseDirective("%%{","open_directive");break;case 22:i.parseDirective(r[s],"type_directive");break;case 23:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 24:i.parseDirective("}%%","close_directive","timeline")}},table:[{3:1,4:e,7:3,12:4,28:n},{1:[3]},t(i,[2,3],{5:6}),{3:7,4:e,7:3,12:4,28:n},{13:8,29:[1,9]},{29:[2,21]},{6:[1,10],7:22,8:11,9:[1,12],10:13,11:[1,14],12:4,17:a,18:r,20:o,22:s,23:c,24:20,25:21,26:l,27:u,28:n},{1:[2,2]},{14:25,15:[1,26],31:d},t([15,31],[2,22]),t(i,[2,8],{1:[2,1]}),t(i,[2,4]),{7:22,10:28,12:4,17:a,18:r,20:o,22:s,23:c,24:20,25:21,26:l,27:u,28:n},t(i,[2,6]),t(i,[2,7]),t(i,[2,11]),{19:[1,29]},{21:[1,30]},t(i,[2,14]),t(i,[2,15]),t(i,[2,16]),t(i,[2,17]),t(i,[2,18]),t(i,[2,19]),t(i,[2,20]),{11:[1,31]},{16:32,30:[1,33]},{11:[2,24]},t(i,[2,5]),t(i,[2,12]),t(i,[2,13]),t(h,[2,9]),{14:34,31:d},{31:[2,23]},{11:[1,35]},t(h,[2,10])],defaultActions:{5:[2,21],7:[2,2],27:[2,24],33:[2,23]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},g={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),28;case 1:return this.begin("type_directive"),29;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),31;case 4:return 30;case 5:case 6:case 8:case 9:break;case 7:return 11;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 27;case 21:return 26;case 22:return 6;case 23:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\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:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23],inclusive:!0}}};function p(){this.yy={}}return f.lexer=g,p.prototype=f,f.Parser=p,new p}();KU.parser=KU;const XU=KU;let JU="",QU=0;const tV=[],eV=[],nV=[],iV=()=>ov,aV=(t,e,n)=>{cv(globalThis,t,e,n)},rV=function(){tV.length=0,eV.length=0,JU="",nV.length=0,Qy()},oV=function(t){JU=t,tV.push(t)},sV=function(){return tV},cV=function(){let t=hV();const e=100;let n=0;for(;!t&&n<e;)t=hV(),n++;return eV.push(...nV),eV},lV=function(t,e,n){const i={id:QU++,section:JU,type:JU,task:t,score:e||0,events:n?[n]:[]};nV.push(i)},uV=function(t){nV.find((t=>t.id===QU-1)).events.push(t)},dV=function(t){const e={section:JU,type:JU,description:t,task:t,classes:[]};eV.push(e)},hV=function(){const t=function(t){return nV[t].processed};let e=!0;for(const[n,i]of nV.entries())t(n),e=e&&i.processed;return e},fV=Object.freeze(Object.defineProperty({__proto__:null,addEvent:uV,addSection:oV,addTask:lV,addTaskOrg:dV,clear:rV,default:{clear:rV,getCommonDb:iV,addSection:oV,getSections:sV,getTasks:cV,addTask:lV,addTaskOrg:dV,addEvent:uV,parseDirective:aV},getCommonDb:iV,getSections:sV,getTasks:cV,parseDirective:aV},Symbol.toStringTag,{value:"Module"})),gV=12,pV=function(t,e){const n=t.append("rect");return n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),n.attr("rx",e.rx),n.attr("ry",e.ry),void 0!==e.class&&n.attr("class",e.class),n},bV=function(t,e){const n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");function a(t){const n=Ml().startAngle(Math.PI/2).endAngle(Math.PI/2*3).innerRadius(7.5).outerRadius(6.8181818181818175);t.append("path").attr("class","mouth").attr("d",n).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}function r(t){const n=Ml().startAngle(3*Math.PI/2).endAngle(Math.PI/2*5).innerRadius(7.5).outerRadius(6.8181818181818175);t.append("path").attr("class","mouth").attr("d",n).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}function o(t){t.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 i.append("circle").attr("cx",e.cx-5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),e.score>3?a(i):e.score<3?r(i):o(i),n},mV=function(t,e){const n=t.append("circle");return n.attr("cx",e.cx),n.attr("cy",e.cy),n.attr("class","actor-"+e.pos),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("r",e.r),void 0!==n.class&&n.attr("class",n.class),void 0!==e.title&&n.append("title").text(e.title),n},yV=function(t,e){const n=e.text.replace(/<br\s*\/?>/gi," "),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.attr("class","legend"),i.style("text-anchor",e.anchor),void 0!==e.class&&i.attr("class",e.class);const a=i.append("tspan");return a.attr("x",e.x+2*e.textMargin),a.text(n),i},vV=function(t,e){function n(t,e,n,i,a){return t+","+e+" "+(t+n)+","+e+" "+(t+n)+","+(e+i-a)+" "+(t+n-1.2*a)+","+(e+i)+" "+t+","+(e+i)}const i=t.append("polygon");i.attr("points",n(e.x,e.y,50,20,7)),i.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,yV(t,e)},wV=function(t,e,n){const i=t.append("g"),a=EV();a.x=e.x,a.y=e.y,a.fill=e.fill,a.width=n.width,a.height=n.height,a.class="journey-section section-type-"+e.num,a.rx=3,a.ry=3,pV(i,a),CV(n)(e.text,i,a.x,a.y,a.width,a.height,{class:"journey-section section-type-"+e.num},n,e.colour)};let xV=-1;const RV=function(t,e,n){const i=e.x+n.width/2,a=t.append("g");xV++;const r=450;a.append("line").attr("id","task"+xV).attr("x1",i).attr("y1",e.y).attr("x2",i).attr("y2",r).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),bV(a,{cx:i,cy:300+30*(5-e.score),score:e.score});const o=EV();o.x=e.x,o.y=e.y,o.fill=e.fill,o.width=n.width,o.height=n.height,o.class="task task-type-"+e.num,o.rx=3,o.ry=3,pV(a,o),e.x,CV(n)(e.task,a,o.x,o.y,o.width,o.height,{class:"task"},n,e.colour)},_V=function(t,e){pV(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:"rect"}).lower()},kV=function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},EV=function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},CV=function(){function t(t,e,n,a,r,o,s,c){i(e.append("text").attr("x",n+r/2).attr("y",a+o/2+5).style("font-color",c).style("text-anchor","middle").text(t),s)}function e(t,e,n,a,r,o,s,c,l){const{taskFontSize:u,taskFontFamily:d}=c,h=t.split(/<br\s*\/?>/gi);for(let f=0;f<h.length;f++){const t=f*u-u*(h.length-1)/2,c=e.append("text").attr("x",n+r/2).attr("y",a).attr("fill",l).style("text-anchor","middle").style("font-size",u).style("font-family",d);c.append("tspan").attr("x",n+r/2).attr("dy",t).text(h[f]),c.attr("y",a+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(c,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,o,s,c,l),i(d,c)}function i(t,e){for(const n in e)n in e&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}();function SV(t,e){t.each((function(){var t,n=un(this),i=n.text().split(/(\s+|<br>)/).reverse(),a=[],r=1.1,o=n.attr("y"),s=parseFloat(n.attr("dy")),c=n.text(null).append("tspan").attr("x",0).attr("y",o).attr("dy",s+"em");for(let l=0;l<i.length;l++)t=i[i.length-1-l],a.push(t),c.text(a.join(" ").trim()),(c.node().getComputedTextLength()>e||"<br>"===t)&&(a.pop(),c.text(a.join(" ").trim()),a="<br>"===t?[""]:[t],c=n.append("tspan").attr("x",0).attr("y",o).attr("dy",r+"em").text(t))}))}const TV=function(t,e,n,i){const a=n%gV-1,r=t.append("g");e.section=a,r.attr("class",(e.class?e.class+" ":"")+"timeline-node section-"+a);const o=r.append("g"),s=r.append("g"),c=s.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(SV,e.width).node().getBBox(),l=i.fontSize&&i.fontSize.replace?i.fontSize.replace("px",""):i.fontSize;return e.height=c.height+1.1*l*.5+e.padding,e.height=Math.max(e.height,e.maxHeight),e.width=e.width+2*e.padding,s.attr("transform","translate("+e.width/2+", "+e.padding/2+")"),AV(o,e,a),e},AV=function(t,e,n){t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+e.type).attr("d",`M0 ${e.height-5} v${10-e.height} q0,-5 5,-5 h${e.width-10} q5,0 5,5 v${e.height-5} H0 Z`),t.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",e.height).attr("x2",e.width).attr("y2",e.height)},DV={drawRect:pV,drawCircle:mV,drawSection:wV,drawText:yV,drawLabel:vV,drawTask:RV,drawBackgroundRect:_V,getTextObj:kV,getNoteRect:EV,initGraphics:function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},drawNode:TV,getVirtualNodeHeight:function(t,e,n){const i=t.append("g"),a=i.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(SV,e.width).node().getBBox(),r=n.fontSize&&n.fontSize.replace?n.fontSize.replace("px",""):n.fontSize;return i.remove(),a.height+1.1*r*.5+e.padding}},IV=function(t,e,n,i){const a=Ry(),r=a.leftMargin?a.leftMargin:50;i.db.clear(),i.parser.parse(t+"\n"),d.debug("timeline",i.db);const o=a.securityLevel;let s;"sandbox"===o&&(s=un("#i"+e));const c=un("sandbox"===o?s.nodes()[0].contentDocument.body:"body").select("#"+e);c.append("g");const l=i.db.getTasks(),u=i.db.getCommonDb().getDiagramTitle();d.debug("task",l),DV.initGraphics(c);const h=i.db.getSections();d.debug("sections",h);let f=0,g=0,p=0,b=0,m=50+r,y=50;b=50;let v=0,w=!0;h.forEach((function(t){const e={number:v,descr:t,section:v,width:150,padding:20,maxHeight:f},n=DV.getVirtualNodeHeight(c,e,a);d.debug("sectionHeight before draw",n),f=Math.max(f,n+20)}));let x=0,R=0;d.debug("tasks.length",l.length);for(const[k,E]of l.entries()){const t={number:k,descr:E,section:E.section,width:150,padding:20,maxHeight:g},e=DV.getVirtualNodeHeight(c,t,a);d.debug("taskHeight before draw",e),g=Math.max(g,e+20),x=Math.max(x,E.events.length);let n=0;for(let i=0;i<E.events.length;i++){const t={descr:E.events[i],section:E.section,number:E.section,width:150,padding:20,maxHeight:50};n+=DV.getVirtualNodeHeight(c,t,a)}R=Math.max(R,n)}d.debug("maxSectionHeight before draw",f),d.debug("maxTaskHeight before draw",g),h&&h.length>0?h.forEach((t=>{const e={number:v,descr:t,section:v,width:150,padding:20,maxHeight:f};d.debug("sectionNode",e);const n=c.append("g"),i=DV.drawNode(n,e,v,a);d.debug("sectionNode output",i),n.attr("transform",`translate(${m}, ${b})`),y+=f+50;const r=l.filter((e=>e.section===t));r.length>0&&LV(c,r,v,m,y,g,a,x,R,f,!1),m+=200*Math.max(r.length,1),y=b,v++})):(w=!1,LV(c,l,v,m,y,g,a,x,R,f,!0));const _=c.node().getBBox();d.debug("bounds",_),u&&c.append("text").text(u).attr("x",_.width/2-r).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),p=w?f+g+150:g+100,c.append("g").attr("class","lineWrapper").append("line").attr("x1",r).attr("y1",p).attr("x2",_.width+3*r).attr("y2",p).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),Oy(void 0,c,a.timeline.padding?a.timeline.padding:50,!!a.timeline.useMaxWidth&&a.timeline.useMaxWidth)},LV=function(t,e,n,i,a,r,o,s,c,l,u){for(const h of e){const e={descr:h.task,section:n,number:n,width:150,padding:20,maxHeight:r};d.debug("taskNode",e);const s=t.append("g").attr("class","taskWrapper"),f=DV.drawNode(s,e,n,o).height;if(d.debug("taskHeight after draw",f),s.attr("transform",`translate(${i}, ${a})`),r=Math.max(r,f),h.events){const e=t.append("g").attr("class","lineWrapper");let s=r;a+=100,s+=OV(t,h.events,n,i,a,o),a-=100,e.append("line").attr("x1",i+95).attr("y1",a+r).attr("x2",i+95).attr("y2",a+r+(u?r:l)+c+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}i+=200,u&&!Ry().timeline.disableMulticolor&&n++}a-=10},OV=function(t,e,n,i,a,r){let o=0;const s=a;a+=100;for(const c of e){const e={descr:c,section:n,number:n,width:150,padding:20,maxHeight:50};d.debug("eventNode",e);const s=t.append("g").attr("class","eventWrapper"),l=DV.drawNode(s,e,n,r).height;o+=l,s.attr("transform",`translate(${i}, ${a})`),a=a+10+l}return a=s,o},MV={setConf:function(t){Object.keys(t).forEach((function(e){conf[e]=t[e]}))},draw:IV},NV=t=>{let e="";for(let n=0;n<t.THEME_COLOR_LIMIT;n++)t["lineColor"+n]=t["lineColor"+n]||t["cScaleInv"+n],xh(t["lineColor"+n])?t["lineColor"+n]=_h(t["lineColor"+n],20):t["lineColor"+n]=kh(t["lineColor"+n],20);for(let n=0;n<t.THEME_COLOR_LIMIT;n++){const i=""+(17-3*n);e+=`\n .section-${n-1} rect, .section-${n-1} path, .section-${n-1} circle, .section-${n-1} path {\n fill: ${t["cScale"+n]};\n }\n .section-${n-1} text {\n fill: ${t["cScaleLabel"+n]};\n }\n .node-icon-${n-1} {\n font-size: 40px;\n color: ${t["cScaleLabel"+n]};\n }\n .section-edge-${n-1}{\n stroke: ${t["cScale"+n]};\n }\n .edge-depth-${n-1}{\n stroke-width: ${i};\n }\n .section-${n-1} line {\n stroke: ${t["cScaleInv"+n]} ;\n stroke-width: 3;\n }\n\n .lineWrapper line{\n stroke: ${t["cScaleLabel"+n]} ;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n `}return e},BV=Object.freeze(Object.defineProperty({__proto__:null,diagram:{db:fV,renderer:MV,parser:XU,styles:t=>`\n .edge {\n stroke-width: 3;\n }\n ${NV(t)}\n .section-root rect, .section-root path, .section-root circle {\n fill: ${t.git0};\n }\n .section-root text {\n fill: ${t.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .eventWrapper {\n filter: brightness(120%);\n }\n`}},Symbol.toStringTag,{value:"Module"}));var PV=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,4],n=[1,13],i=[1,12],a=[1,15],r=[1,16],o=[1,20],s=[1,19],c=[6,7,8],l=[1,26],u=[1,24],d=[1,25],h=[6,7,11],f=[1,6,13,15,16,19,22],g=[1,33],p=[1,34],b=[1,6,7,11,13,15,16,19,22],m={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(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 6:case 7:return i;case 8:i.getLogger().trace("Stop NL ");break;case 9:i.getLogger().trace("Stop EOF ");break;case 11:i.getLogger().trace("Stop NL2 ");break;case 12:i.getLogger().trace("Stop EOF2 ");break;case 15:i.getLogger().info("Node: ",r[s].id),i.addNode(r[s-1].length,r[s].id,r[s].descr,r[s].type);break;case 16:i.getLogger().trace("Icon: ",r[s]),i.decorateNode({icon:r[s]});break;case 17:case 21:i.decorateNode({class:r[s]});break;case 18:i.getLogger().trace("SPACELIST");break;case 19:i.getLogger().trace("Node: ",r[s].id),i.addNode(0,r[s].id,r[s].descr,r[s].type);break;case 20:i.decorateNode({icon:r[s]});break;case 25:i.getLogger().trace("node found ..",r[s-2]),this.$={id:r[s-1],descr:r[s-1],type:i.getType(r[s-2],r[s])};break;case 26:this.$={id:r[s],descr:r[s],type:i.nodeType.DEFAULT};break;case 27:i.getLogger().trace("node found ..",r[s-3]),this.$={id:r[s-3],descr:r[s-1],type:i.getType(r[s-2],r[s])}}},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:n,7:[1,10],9:9,12:11,13:i,14:14,15:a,16:r,17:17,18:18,19:o,22:s},t(c,[2,3]),{1:[2,2]},t(c,[2,4]),t(c,[2,5]),{1:[2,6],6:n,12:21,13:i,14:14,15:a,16:r,17:17,18:18,19:o,22:s},{6:n,9:22,12:11,13:i,14:14,15:a,16:r,17:17,18:18,19:o,22:s},{6:l,7:u,10:23,11:d},t(h,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:o,22:s}),t(h,[2,18]),t(h,[2,19]),t(h,[2,20]),t(h,[2,21]),t(h,[2,23]),t(h,[2,24]),t(h,[2,26],{19:[1,30]}),{20:[1,31]},{6:l,7:u,10:32,11:d},{1:[2,7],6:n,12:21,13:i,14:14,15:a,16:r,17:17,18:18,19:o,22:s},t(f,[2,14],{7:g,11:p}),t(b,[2,8]),t(b,[2,9]),t(b,[2,10]),t(h,[2,15]),t(h,[2,16]),t(h,[2,17]),{20:[1,35]},{21:[1,36]},t(f,[2,13],{7:g,11:p}),t(b,[2,11]),t(b,[2,12]),{21:[1,37]},t(h,[2,25]),t(h,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},y={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,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];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(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 i=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 a=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===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},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()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.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 r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>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(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:t.getLogger().trace("Found comment",e.yytext);break;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:case 23:this.popState();break;case 5:t.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return t.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:t.getLogger().trace("end icon"),this.popState();break;case 10:return t.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return t.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return t.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return t.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:case 15:case 16:case 17:return this.begin("NODE"),19;case 18:return 13;case 19:return 22;case 20:return 11;case 21:t.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 22:return t.getLogger().trace("description:",e.yytext),"NODE_DESCR";case 24:return this.popState(),t.getLogger().trace("node end ))"),"NODE_DEND";case 25:return this.popState(),t.getLogger().trace("node end )"),"NODE_DEND";case 26:return this.popState(),t.getLogger().trace("node end ...",e.yytext),"NODE_DEND";case 27:case 30:case 31:return this.popState(),t.getLogger().trace("node end (("),"NODE_DEND";case 28:case 29:return this.popState(),t.getLogger().trace("node end (-"),"NODE_DEND";case 32:case 33:return t.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],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR:{rules:[22,23],inclusive:!1},NODE:{rules:[21,24,25,26,27,28,29,30,31,32,33],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};function v(){this.yy={}}return m.lexer=y,v.prototype=m,m.Parser=v,new v}();PV.parser=PV;const FV=PV,jV=t=>Wd(t,Ry());let $V=[],zV=0,HV={};const UV=()=>{$V=[],zV=0,HV={}},VV=function(t){for(let e=$V.length-1;e>=0;e--)if($V[e].level<t)return $V[e];return null},qV=()=>$V.length>0?$V[0]:null,WV=(t,e,n,i)=>{d.info("addNode",t,e,n,i);const a=Ry(),r={id:zV++,nodeId:jV(e),level:t,descr:jV(n),type:i,children:[],width:Ry().mindmap.maxNodeWidth};switch(r.type){case YV.ROUNDED_RECT:case YV.RECT:case YV.HEXAGON:r.padding=2*a.mindmap.padding;break;default:r.padding=a.mindmap.padding}const o=VV(t);if(o)o.children.push(r),$V.push(r);else{if(0!==$V.length){let t=new Error('There can be only one root. No parent could be found for ("'+r.descr+'")');throw t.hash={text:"branch "+name,token:"branch "+name,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+name+'"']},t}$V.push(r)}},YV={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},GV=(t,e)=>{switch(d.debug("In get type",t,e),t){case"[":return YV.RECT;case"(":return")"===e?YV.ROUNDED_RECT:YV.CLOUD;case"((":return YV.CIRCLE;case")":return YV.CLOUD;case"))":return YV.BANG;case"{{":return YV.HEXAGON;default:return YV.DEFAULT}},ZV=(t,e)=>{HV[t]=e},KV=t=>{const e=$V[$V.length-1];t&&t.icon&&(e.icon=jV(t.icon)),t&&t.class&&(e.class=jV(t.class))},XV=t=>{switch(t){case YV.DEFAULT:return"no-border";case YV.RECT:return"rect";case YV.ROUNDED_RECT:return"rounded-rect";case YV.CIRCLE:return"circle";case YV.CLOUD:return"cloud";case YV.BANG:return"bang";case YV.HEXAGON:return"hexgon";default:return"no-border"}};let JV;const QV=t=>{JV=t},tq=()=>d,eq=t=>$V[t],nq=t=>HV[t],iq=Object.freeze(Object.defineProperty({__proto__:null,addNode:WV,clear:UV,decorateNode:KV,getElementById:nq,getLogger:tq,getMindmap:qV,getNodeById:eq,getType:GV,nodeType:YV,get parseError(){return JV},sanitizeText:jV,setElementForId:ZV,setErrorHandler:QV,type2Str:XV},Symbol.toStringTag,{value:"Module"})),aq=12;function rq(t,e){t.each((function(){var t,n=un(this),i=n.text().split(/(\s+|<br>)/).reverse(),a=[],r=1.1,o=n.attr("y"),s=parseFloat(n.attr("dy")),c=n.text(null).append("tspan").attr("x",0).attr("y",o).attr("dy",s+"em");for(let l=0;l<i.length;l++)t=i[i.length-1-l],a.push(t),c.text(a.join(" ").trim()),(c.node().getComputedTextLength()>e||"<br>"===t)&&(a.pop(),c.text(a.join(" ").trim()),a="<br>"===t?[""]:[t],c=n.append("tspan").attr("x",0).attr("y",o).attr("dy",r+"em").text(t))}))}const oq=function(t,e,n){t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+XV(e.type)).attr("d",`M0 ${e.height-5} v${10-e.height} q0,-5 5,-5 h${e.width-10} q5,0 5,5 v${e.height-5} H0 Z`),t.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",e.height).attr("x2",e.width).attr("y2",e.height)},sq=function(t,e){t.append("rect").attr("id","node-"+e.id).attr("class","node-bkg node-"+XV(e.type)).attr("height",e.height).attr("width",e.width)},cq=function(t,e){const n=e.width,i=e.height,a=.15*n,r=.25*n,o=.35*n,s=.2*n;t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+XV(e.type)).attr("d",`M0 0 a${a},${a} 0 0,1 ${.25*n},${-1*n*.1}\n a${o},${o} 1 0,1 ${.4*n},${-1*n*.1}\n a${r},${r} 1 0,1 ${.35*n},${1*n*.2}\n\n a${a},${a} 1 0,1 ${.15*n},${1*i*.35}\n a${s},${s} 1 0,1 ${-1*n*.15},${1*i*.65}\n\n a${r},${a} 1 0,1 ${-1*n*.25},${.15*n}\n a${o},${o} 1 0,1 ${-1*n*.5},0\n a${a},${a} 1 0,1 ${-1*n*.25},${-1*n*.15}\n\n a${a},${a} 1 0,1 ${-1*n*.1},${-1*i*.35}\n a${s},${s} 1 0,1 ${.1*n},${-1*i*.65}\n\n H0 V0 Z`)},lq=function(t,e){const n=e.width,i=e.height,a=.15*n;t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+XV(e.type)).attr("d",`M0 0 a${a},${a} 1 0,0 ${.25*n},${-1*i*.1}\n a${a},${a} 1 0,0 ${.25*n},0\n a${a},${a} 1 0,0 ${.25*n},0\n a${a},${a} 1 0,0 ${.25*n},${1*i*.1}\n\n a${a},${a} 1 0,0 ${.15*n},${1*i*.33}\n a${.8*a},${.8*a} 1 0,0 0,${1*i*.34}\n a${a},${a} 1 0,0 ${-1*n*.15},${1*i*.33}\n\n a${a},${a} 1 0,0 ${-1*n*.25},${.15*i}\n a${a},${a} 1 0,0 ${-1*n*.25},0\n a${a},${a} 1 0,0 ${-1*n*.25},0\n a${a},${a} 1 0,0 ${-1*n*.25},${-1*i*.15}\n\n a${a},${a} 1 0,0 ${-1*n*.1},${-1*i*.33}\n a${.8*a},${.8*a} 1 0,0 0,${-1*i*.34}\n a${a},${a} 1 0,0 ${.1*n},${-1*i*.33}\n\n H0 V0 Z`)},uq=function(t,e){t.append("circle").attr("id","node-"+e.id).attr("class","node-bkg node-"+XV(e.type)).attr("r",e.width/2)};function dq(t,e,n,i,a){return t.insert("polygon",":first-child").attr("points",i.map((function(t){return t.x+","+t.y})).join(" ")).attr("transform","translate("+(a.width-e)/2+", "+n+")")}const hq=function(t,e){const n=e.height,i=n/4,a=e.width-e.padding+2*i;dq(t,a,n,[{x:i,y:0},{x:a-i,y:0},{x:a,y:-n/2},{x:a-i,y:-n},{x:i,y:-n},{x:0,y:-n/2}],e)},fq=function(t,e){t.append("rect").attr("id","node-"+e.id).attr("class","node-bkg node-"+XV(e.type)).attr("height",e.height).attr("rx",e.padding).attr("ry",e.padding).attr("width",e.width)},gq={drawNode:function(t,e,n,i){const a=n%(aq-1),r=t.append("g");e.section=a;let o="section-"+a;a<0&&(o+=" section-root"),r.attr("class",(e.class?e.class+" ":"")+"mindmap-node "+o);const s=r.append("g"),c=r.append("g"),l=c.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(rq,e.width).node().getBBox(),u=i.fontSize.replace?i.fontSize.replace("px",""):i.fontSize;if(e.height=l.height+1.1*u*.5+e.padding,e.width=l.width+2*e.padding,e.icon)if(e.type===YV.CIRCLE)e.height+=50,e.width+=50,r.append("foreignObject").attr("height","50px").attr("width",e.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+a+" "+e.icon),c.attr("transform","translate("+e.width/2+", "+(e.height/2-1.5*e.padding)+")");else{e.width+=50;const t=e.height;e.height=Math.max(t,60);const n=Math.abs(e.height-t);r.append("foreignObject").attr("width","60px").attr("height",e.height).attr("style","text-align: center;margin-top:"+n/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+a+" "+e.icon),c.attr("transform","translate("+(25+e.width/2)+", "+(n/2+e.padding/2)+")")}else c.attr("transform","translate("+e.width/2+", "+e.padding/2+")");switch(e.type){case YV.DEFAULT:oq(s,e,a);break;case YV.ROUNDED_RECT:fq(s,e);break;case YV.RECT:sq(s,e);break;case YV.CIRCLE:s.attr("transform","translate("+e.width/2+", "+ +e.height/2+")"),uq(s,e);break;case YV.CLOUD:cq(s,e);break;case YV.BANG:lq(s,e);break;case YV.HEXAGON:hq(s,e)}return ZV(e.id,r),e.height},positionNode:function(t){const e=nq(t.id),n=t.x||0,i=t.y||0;e.attr("transform","translate("+n+","+i+")")},drawEdge:function(t,e,n,i,a){const r=a%(aq-1),o=n.x+n.width/2,s=n.y+n.height/2,c=e.x+e.width/2,l=e.y+e.height/2,u=c>o?o+Math.abs(o-c)/2:o-Math.abs(o-c)/2,d=l>s?s+Math.abs(s-l)/2:s-Math.abs(s-l)/2,h=c>o?Math.abs(o-u)/2+o:-Math.abs(o-u)/2+o,f=l>s?Math.abs(s-d)/2+s:-Math.abs(s-d)/2+s;t.append("path").attr("d","TB"===n.direction||"BT"===n.direction?`M${o},${s} Q${o},${f} ${u},${d} T${c},${l}`:`M${o},${s} Q${h},${s} ${u},${d} T${c},${l}`).attr("class","edge section-edge-"+r+" edge-depth-"+i)}};var pq={};!function(t,e){!function(e,n){t.exports=n()}(0,(function(){function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function n(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function i(t,e,i){return e&&n(t.prototype,e),i&&n(t,i),Object.defineProperty(t,"prototype",{writable:!1}),t}function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){return s(t)||c(t,e)||l(t,e)||d()}function s(t){if(Array.isArray(t))return t}function c(t,e){var n=null==t?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var i,a,r=[],o=!0,s=!1;try{for(n=n.call(t);!(o=(i=n.next()).done)&&(r.push(i.value),!e||r.length!==e);o=!0);}catch(c){s=!0,a=c}finally{try{!o&&null!=n.return&&n.return()}finally{if(s)throw a}}return r}}function l(t,e){if(t){if("string"==typeof t)return u(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if("Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(t,e)}}function u(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}function d(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var h=typeof window>"u"?null:window,f=h?h.navigator:null;h&&h.document;var g=t(""),p=t({}),b=t((function(){})),m=typeof HTMLElement>"u"?"undefined":t(HTMLElement),y=function(t){return t&&t.instanceString&&w(t.instanceString)?t.instanceString():null},v=function(e){return null!=e&&t(e)==g},w=function(e){return null!=e&&t(e)===b},x=function(t){return!S(t)&&(Array.isArray?Array.isArray(t):null!=t&&t instanceof Array)},R=function(e){return null!=e&&t(e)===p&&!x(e)&&e.constructor===Object},_=function(e){return null!=e&&t(e)===p},k=function(e){return null!=e&&t(e)===t(1)&&!isNaN(e)},E=function(t){return k(t)&&Math.floor(t)===t},C=function(t){if("undefined"!==m)return null!=t&&t instanceof HTMLElement},S=function(t){return T(t)||A(t)},T=function(t){return"collection"===y(t)&&t._private.single},A=function(t){return"collection"===y(t)&&!t._private.single},D=function(t){return"core"===y(t)},I=function(t){return"stylesheet"===y(t)},L=function(t){return"event"===y(t)},O=function(t){return null==t||!(""!==t&&!t.match(/^\s+$/))},M=function(t){return!(typeof HTMLElement>"u")&&t instanceof HTMLElement},N=function(t){return R(t)&&k(t.x1)&&k(t.x2)&&k(t.y1)&&k(t.y2)},B=function(t){return _(t)&&w(t.then)},P=function(){return f&&f.userAgent.match(/msie|trident|edge/i)},F=function(t,e){e||(e=function(){if(1===arguments.length)return arguments[0];if(0===arguments.length)return"undefined";for(var t=[],e=0;e<arguments.length;e++)t.push(arguments[e]);return t.join("$")});var n=function n(){var i,a=this,r=arguments,o=e.apply(a,r),s=n.cache;return(i=s[o])||(i=s[o]=t.apply(a,r)),i};return n.cache={},n},j=F((function(t){return t.replace(/([A-Z])/g,(function(t){return"-"+t.toLowerCase()}))})),$=F((function(t){return t.replace(/(-\w)/g,(function(t){return t[1].toUpperCase()}))})),z=F((function(t,e){return t+e[0].toUpperCase()+e.substring(1)}),(function(t,e){return t+"$"+e})),H=function(t){return O(t)?t:t.charAt(0).toUpperCase()+t.substring(1)},U="(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))",V="rgb[a]?\\(("+U+"[%]?)\\s*,\\s*("+U+"[%]?)\\s*,\\s*("+U+"[%]?)(?:\\s*,\\s*("+U+"))?\\)",q="rgb[a]?\\((?:"+U+"[%]?)\\s*,\\s*(?:"+U+"[%]?)\\s*,\\s*(?:"+U+"[%]?)(?:\\s*,\\s*(?:"+U+"))?\\)",W="hsl[a]?\\(("+U+")\\s*,\\s*("+U+"[%])\\s*,\\s*("+U+"[%])(?:\\s*,\\s*("+U+"))?\\)",Y="hsl[a]?\\((?:"+U+")\\s*,\\s*(?:"+U+"[%])\\s*,\\s*(?:"+U+"[%])(?:\\s*,\\s*(?:"+U+"))?\\)",G="\\#[0-9a-fA-F]{3}",Z="\\#[0-9a-fA-F]{6}",K=function(t,e){return t<e?-1:t>e?1:0},X=function(t,e){return-1*K(t,e)},J=null!=Object.assign?Object.assign.bind(Object):function(t){for(var e=arguments,n=1;n<e.length;n++){var i=e[n];if(null!=i)for(var a=Object.keys(i),r=0;r<a.length;r++){var o=a[r];t[o]=i[o]}}return t},Q=function(t){if((4===t.length||7===t.length)&&"#"===t[0]){var e,n,i,a=16;return 4===t.length?(e=parseInt(t[1]+t[1],a),n=parseInt(t[2]+t[2],a),i=parseInt(t[3]+t[3],a)):(e=parseInt(t[1]+t[2],a),n=parseInt(t[3]+t[4],a),i=parseInt(t[5]+t[6],a)),[e,n,i]}},tt=function(t){var e,n,i,a,r,o,s,c;function l(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}var u=new RegExp("^"+W+"$").exec(t);if(u){if((n=parseInt(u[1]))<0?n=(360- -1*n%360)%360:n>360&&(n%=360),n/=360,(i=parseFloat(u[2]))<0||i>100||(i/=100,(a=parseFloat(u[3]))<0||a>100)||(a/=100,void 0!==(r=u[4])&&((r=parseFloat(r))<0||r>1)))return;if(0===i)o=s=c=Math.round(255*a);else{var d=a<.5?a*(1+i):a+i-a*i,h=2*a-d;o=Math.round(255*l(h,d,n+1/3)),s=Math.round(255*l(h,d,n)),c=Math.round(255*l(h,d,n-1/3))}e=[o,s,c,r]}return e},et=function(t){var e,n=new RegExp("^"+V+"$").exec(t);if(n){e=[];for(var i=[],a=1;a<=3;a++){var r=n[a];if("%"===r[r.length-1]&&(i[a]=!0),r=parseFloat(r),i[a]&&(r=r/100*255),r<0||r>255)return;e.push(Math.floor(r))}var o=i[1]||i[2]||i[3],s=i[1]&&i[2]&&i[3];if(o&&!s)return;var c=n[4];if(void 0!==c){if((c=parseFloat(c))<0||c>1)return;e.push(c)}}return e},nt=function(t){return at[t.toLowerCase()]},it=function(t){return(x(t)?t:null)||nt(t)||Q(t)||et(t)||tt(t)},at={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]},rt=function(t){for(var e=t.map,n=t.keys,i=n.length,a=0;a<i;a++){var r=n[a];if(R(r))throw Error("Tried to set map with object key");a<n.length-1?(null==e[r]&&(e[r]={}),e=e[r]):e[r]=t.value}},ot=function(t){for(var e=t.map,n=t.keys,i=n.length,a=0;a<i;a++){var r=n[a];if(R(r))throw Error("Tried to get map with object key");if(null==(e=e[r]))return e}return e};function st(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}var ct=st,lt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof a<"u"?a:typeof self<"u"?self:{};function ut(t,e){return t(e={exports:{}},e.exports),e.exports}var dt="object"==typeof lt&<&<.Object===Object&<,ht="object"==typeof self&&self&&self.Object===Object&&self,ft=dt||ht||Function("return this")(),gt=function(){return ft.Date.now()},pt=/\s/;function bt(t){for(var e=t.length;e--&&pt.test(t.charAt(e)););return e}var mt=bt,yt=/^\s+/;function vt(t){return t&&t.slice(0,mt(t)+1).replace(yt,"")}var wt=vt,xt=ft.Symbol,Rt=Object.prototype,_t=Rt.hasOwnProperty,kt=Rt.toString,Et=xt?xt.toStringTag:void 0;function Ct(t){var e=_t.call(t,Et),n=t[Et];try{t[Et]=void 0;var i=!0}catch{}var a=kt.call(t);return i&&(e?t[Et]=n:delete t[Et]),a}var St=Ct,Tt=Object.prototype.toString;function At(t){return Tt.call(t)}var Dt=At,It="[object Null]",Lt="[object Undefined]",Ot=xt?xt.toStringTag:void 0;function Mt(t){return null==t?void 0===t?Lt:It:Ot&&Ot in Object(t)?St(t):Dt(t)}var Nt=Mt;function Bt(t){return null!=t&&"object"==typeof t}var Pt=Bt,Ft="[object Symbol]";function jt(t){return"symbol"==typeof t||Pt(t)&&Nt(t)==Ft}var $t=jt,zt=NaN,Ht=/^[-+]0x[0-9a-f]+$/i,Ut=/^0b[01]+$/i,Vt=/^0o[0-7]+$/i,qt=parseInt;function Wt(t){if("number"==typeof t)return t;if($t(t))return zt;if(ct(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=ct(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=wt(t);var n=Ut.test(t);return n||Vt.test(t)?qt(t.slice(2),n?2:8):Ht.test(t)?zt:+t}var Yt=Wt,Gt="Expected a function",Zt=Math.max,Kt=Math.min;function Xt(t,e,n){var i,a,r,o,s,c,l=0,u=!1,d=!1,h=!0;if("function"!=typeof t)throw new TypeError(Gt);function f(e){var n=i,r=a;return i=a=void 0,l=e,o=t.apply(r,n)}function g(t){return l=t,s=setTimeout(m,e),u?f(t):o}function p(t){var n=e-(t-c);return d?Kt(n,r-(t-l)):n}function b(t){var n=t-c;return void 0===c||n>=e||n<0||d&&t-l>=r}function m(){var t=gt();if(b(t))return y(t);s=setTimeout(m,p(t))}function y(t){return s=void 0,h&&i?f(t):(i=a=void 0,o)}function v(){void 0!==s&&clearTimeout(s),l=0,i=c=a=s=void 0}function w(){return void 0===s?o:y(gt())}function x(){var t=gt(),n=b(t);if(i=arguments,a=this,c=t,n){if(void 0===s)return g(c);if(d)return clearTimeout(s),s=setTimeout(m,e),f(c)}return void 0===s&&(s=setTimeout(m,e)),o}return e=Yt(e)||0,ct(n)&&(u=!!n.leading,r=(d="maxWait"in n)?Zt(Yt(n.maxWait)||0,e):r,h="trailing"in n?!!n.trailing:h),x.cancel=v,x.flush=w,x}var Jt=Xt,Qt=h?h.performance:null,te=Qt&&Qt.now?function(){return Qt.now()}:function(){return Date.now()},ee=function(){if(h){if(h.requestAnimationFrame)return function(t){h.requestAnimationFrame(t)};if(h.mozRequestAnimationFrame)return function(t){h.mozRequestAnimationFrame(t)};if(h.webkitRequestAnimationFrame)return function(t){h.webkitRequestAnimationFrame(t)};if(h.msRequestAnimationFrame)return function(t){h.msRequestAnimationFrame(t)}}return function(t){t&&setTimeout((function(){t(te())}),1e3/60)}}(),ne=function(t){return ee(t)},ie=te,ae=9261,re=65599,oe=5381,se=function(t){for(var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ae;!(e=t.next()).done;)n=n*re+e.value|0;return n},ce=function(t){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:ae)*re+t|0},le=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:oe;return(e<<5)+e+t|0},ue=function(t,e){return 2097152*t+e},de=function(t){return 2097152*t[0]+t[1]},he=function(t,e){return[ce(t[0],e[0]),le(t[1],e[1])]},fe=function(t,e){var n={value:0,done:!1},i=0,a=t.length;return se({next:function(){return i<a?n.value=t[i++]:n.done=!0,n}},e)},ge=function(t,e){var n={value:0,done:!1},i=0,a=t.length;return se({next:function(){return i<a?n.value=t.charCodeAt(i++):n.done=!0,n}},e)},pe=function(){return be(arguments)},be=function(t){for(var e,n=0;n<t.length;n++){var i=t[n];e=0===n?ge(i):ge(i,e)}return e},me=!0,ye=null!=console.warn,ve=null!=console.trace,we=Number.MAX_SAFE_INTEGER||9007199254740991,xe=function(){return!0},Re=function(){return!1},_e=function(){return 0},ke=function(){},Ee=function(t){throw new Error(t)},Ce=function(t){if(void 0===t)return me;me=!!t},Se=function(t){Ce()&&(ye?console.warn(t):(console.log(t),ve&&console.trace()))},Te=function(t){return J({},t)},Ae=function(t){return null==t?t:x(t)?t.slice():R(t)?Te(t):t},De=function(t){return t.slice()},Ie=function(t,e){for(e=t="";t++<36;e+=51*t&52?(15^t?8^Math.random()*(20^t?16:4):4).toString(16):"-");return e},Le={},Oe=function(){return Le},Me=function(t){var e=Object.keys(t);return function(n){for(var i={},a=0;a<e.length;a++){var r=e[a],o=null==n?void 0:n[r];i[r]=void 0===o?t[r]:o}return i}},Ne=function(t,e,n){for(var i=t.length-1;i>=0&&(t[i]!==e||(t.splice(i,1),!n));i--);},Be=function(t){t.splice(0,t.length)},Pe=function(t,e){for(var n=0;n<e.length;n++){var i=e[n];t.push(i)}},Fe=function(t,e,n){return n&&(e=z(n,e)),t[e]},je=function(t,e,n,i){n&&(e=z(n,e)),t[e]=i},$e=function(){function t(){e(this,t),this._obj={}}return i(t,[{key:"set",value:function(t,e){return this._obj[t]=e,this}},{key:"delete",value:function(t){return this._obj[t]=void 0,this}},{key:"clear",value:function(){this._obj={}}},{key:"has",value:function(t){return void 0!==this._obj[t]}},{key:"get",value:function(t){return this._obj[t]}}]),t}(),ze=typeof Map<"u"?Map:$e,He="undefined",Ue=function(){function t(n){if(e(this,t),this._obj=Object.create(null),this.size=0,null!=n){var i;i=null!=n.instanceString&&n.instanceString()===this.instanceString()?n.toArray():n;for(var a=0;a<i.length;a++)this.add(i[a])}}return i(t,[{key:"instanceString",value:function(){return"set"}},{key:"add",value:function(t){var e=this._obj;1!==e[t]&&(e[t]=1,this.size++)}},{key:"delete",value:function(t){var e=this._obj;1===e[t]&&(e[t]=0,this.size--)}},{key:"clear",value:function(){this._obj=Object.create(null)}},{key:"has",value:function(t){return 1===this._obj[t]}},{key:"toArray",value:function(){var t=this;return Object.keys(this._obj).filter((function(e){return t.has(e)}))}},{key:"forEach",value:function(t,e){return this.toArray().forEach(t,e)}}]),t}(),Ve=(typeof Set>"u"?"undefined":t(Set))!==He?Set:Ue,qe=function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0!==t&&void 0!==e&&D(t)){var i=e.group;if(null==i&&(i=e.data&&null!=e.data.source&&null!=e.data.target?"edges":"nodes"),"nodes"===i||"edges"===i){this.length=1,this[0]=this;var a=this._private={cy:t,single:!0,data:e.data||{},position:e.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:i,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!e.selected,selectable:void 0===e.selectable||!!e.selectable,locked:!!e.locked,grabbed:!1,grabbable:void 0===e.grabbable||!!e.grabbable,pannable:void 0===e.pannable?"edges"===i:!!e.pannable,active:!1,classes:new Ve,animation:{current:[],queue:[]},rscratch:{},scratch:e.scratch||{},edges:[],children:[],parent:e.parent&&e.parent.isNode()?e.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(null==a.position.x&&(a.position.x=0),null==a.position.y&&(a.position.y=0),e.renderedPosition){var r=e.renderedPosition,o=t.pan(),s=t.zoom();a.position={x:(r.x-o.x)/s,y:(r.y-o.y)/s}}var c=[];x(e.classes)?c=e.classes:v(e.classes)&&(c=e.classes.split(/\s+/));for(var l=0,u=c.length;l<u;l++){var d=c[l];!d||""===d||a.classes.add(d)}this.createEmitter();var h=e.style||e.css;h&&(Se("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead."),this.style(h)),(void 0===n||n)&&this.restore()}else Ee("An element must be of type `nodes` or `edges`; you specified `"+i+"`")}else Ee("An element must have a core reference and parameters set")},We=function(t){return t={bfs:t.bfs||!t.dfs,dfs:t.dfs||!t.bfs},function(e,n,i){var a;R(e)&&!S(e)&&(e=(a=e).roots||a.root,n=a.visit,i=a.directed),i=2!==arguments.length||w(n)?i:n,n=w(n)?n:function(){};for(var r,o=this._private.cy,s=e=v(e)?this.filter(e):e,c=[],l=[],u={},d={},h={},f=0,g=this.byGroup(),p=g.nodes,b=g.edges,m=0;m<s.length;m++){var y=s[m],x=y.id();y.isNode()&&(c.unshift(y),t.bfs&&(h[x]=!0,l.push(y)),d[x]=0)}for(var _=function(){var e=t.bfs?c.shift():c.pop(),a=e.id();if(t.dfs){if(h[a])return"continue";h[a]=!0,l.push(e)}var o=d[a],s=u[a],g=null!=s?s.source():null,m=null!=s?s.target():null,y=null==s?void 0:e.same(g)?m[0]:g[0],v=void 0;if(!0===(v=n(e,s,y,f++,o)))return r=e,"break";if(!1===v)return"break";for(var w=e.connectedEdges().filter((function(t){return(!i||t.source().same(e))&&b.has(t)})),x=0;x<w.length;x++){var R=w[x],_=R.connectedNodes().filter((function(t){return!t.same(e)&&p.has(t)})),k=_.id();0!==_.length&&!h[k]&&(_=_[0],c.push(_),t.bfs&&(h[k]=!0,l.push(_)),u[k]=R,d[k]=d[a]+1)}};0!==c.length;){var k=_();if("continue"!==k&&"break"===k)break}for(var E=o.collection(),C=0;C<l.length;C++){var T=l[C],A=u[T.id()];null!=A&&E.push(A),E.push(T)}return{path:o.collection(E),found:o.collection(r)}}},Ye={breadthFirstSearch:We({bfs:!0}),depthFirstSearch:We({dfs:!0})};Ye.bfs=Ye.breadthFirstSearch,Ye.dfs=Ye.depthFirstSearch;var Ge=ut((function(t,e){(function(){var e,n,i,a,r,o,s,c,l,u,d,h,f,g,p,b;i=Math.floor,u=Math.min,n=function(t,e){return t<e?-1:t>e?1:0},l=function(t,e,a,r,o){var s;if(null==a&&(a=0),null==o&&(o=n),a<0)throw new Error("lo must be non-negative");for(null==r&&(r=t.length);a<r;)o(e,t[s=i((a+r)/2)])<0?r=s:a=s+1;return[].splice.apply(t,[a,a-a].concat(e)),e},o=function(t,e,i){return null==i&&(i=n),t.push(e),g(t,0,t.length-1,i)},r=function(t,e){var i,a;return null==e&&(e=n),i=t.pop(),t.length?(a=t[0],t[0]=i,p(t,0,e)):a=i,a},c=function(t,e,i){var a;return null==i&&(i=n),a=t[0],t[0]=e,p(t,0,i),a},s=function(t,e,i){var a;return null==i&&(i=n),t.length&&i(t[0],e)<0&&(e=(a=[t[0],e])[0],t[0]=a[1],p(t,0,i)),e},a=function(t,e){var a,r,o,s,c,l;for(null==e&&(e=n),c=[],r=0,o=(s=function(){l=[];for(var e=0,n=i(t.length/2);0<=n?e<n:e>n;0<=n?e++:e--)l.push(e);return l}.apply(this).reverse()).length;r<o;r++)a=s[r],c.push(p(t,a,e));return c},f=function(t,e,i){var a;if(null==i&&(i=n),-1!==(a=t.indexOf(e)))return g(t,0,a,i),p(t,a,i)},d=function(t,e,i){var r,o,c,l,u;if(null==i&&(i=n),!(o=t.slice(0,e)).length)return o;for(a(o,i),c=0,l=(u=t.slice(e)).length;c<l;c++)r=u[c],s(o,r,i);return o.sort(i).reverse()},h=function(t,e,i){var o,s,c,d,h,f,g,p,b;if(null==i&&(i=n),10*e<=t.length){if(!(c=t.slice(0,e).sort(i)).length)return c;for(s=c[c.length-1],d=0,f=(g=t.slice(e)).length;d<f;d++)i(o=g[d],s)<0&&(l(c,o,0,null,i),c.pop(),s=c[c.length-1]);return c}for(a(t,i),b=[],h=0,p=u(e,t.length);0<=p?h<p:h>p;0<=p?++h:--h)b.push(r(t,i));return b},g=function(t,e,i,a){var r,o,s;for(null==a&&(a=n),r=t[i];i>e&&a(r,o=t[s=i-1>>1])<0;)t[i]=o,i=s;return t[i]=r},p=function(t,e,i){var a,r,o,s,c;for(null==i&&(i=n),r=t.length,c=e,o=t[e],a=2*e+1;a<r;)(s=a+1)<r&&!(i(t[a],t[s])<0)&&(a=s),t[e]=t[a],a=2*(e=a)+1;return t[e]=o,g(t,c,e,i)},e=function(){function t(t){this.cmp=t??n,this.nodes=[]}return t.push=o,t.pop=r,t.replace=c,t.pushpop=s,t.heapify=a,t.updateItem=f,t.nlargest=d,t.nsmallest=h,t.prototype.push=function(t){return o(this.nodes,t,this.cmp)},t.prototype.pop=function(){return r(this.nodes,this.cmp)},t.prototype.peek=function(){return this.nodes[0]},t.prototype.contains=function(t){return-1!==this.nodes.indexOf(t)},t.prototype.replace=function(t){return c(this.nodes,t,this.cmp)},t.prototype.pushpop=function(t){return s(this.nodes,t,this.cmp)},t.prototype.heapify=function(){return a(this.nodes,this.cmp)},t.prototype.updateItem=function(t){return f(this.nodes,t,this.cmp)},t.prototype.clear=function(){return this.nodes=[]},t.prototype.empty=function(){return 0===this.nodes.length},t.prototype.size=function(){return this.nodes.length},t.prototype.clone=function(){var e;return(e=new t).nodes=this.nodes.slice(0),e},t.prototype.toArray=function(){return this.nodes.slice(0)},t.prototype.insert=t.prototype.push,t.prototype.top=t.prototype.peek,t.prototype.front=t.prototype.peek,t.prototype.has=t.prototype.contains,t.prototype.copy=t.prototype.clone,t}(),b=function(){return e},t.exports=b()}).call(lt)})),Ze=Ge,Ke=Me({root:null,weight:function(t){return 1},directed:!1}),Xe={dijkstra:function(t){if(!R(t)){var e=arguments;t={root:e[0],weight:e[1],directed:e[2]}}var n=Ke(t),i=n.root,a=n.weight,r=n.directed,o=this,s=a,c=v(i)?this.filter(i)[0]:i[0],l={},u={},d={},h=this.byGroup(),f=h.nodes,g=h.edges;g.unmergeBy((function(t){return t.isLoop()}));for(var p=function(t){return l[t.id()]},b=function(t,e){l[t.id()]=e,m.updateItem(t)},m=new Ze((function(t,e){return p(t)-p(e)})),y=0;y<f.length;y++){var w=f[y];l[w.id()]=w.same(c)?0:1/0,m.push(w)}for(var x=function(t,e){for(var n,i=(r?t.edgesTo(e):t.edgesWith(e)).intersect(g),a=1/0,o=0;o<i.length;o++){var c=i[o],l=s(c);(l<a||!n)&&(a=l,n=c)}return{edge:n,dist:a}};m.size()>0;){var _=m.pop(),k=p(_),E=_.id();if(d[E]=k,k!==1/0)for(var C=_.neighborhood().intersect(f),S=0;S<C.length;S++){var T=C[S],A=T.id(),D=x(_,T),I=k+D.dist;I<p(T)&&(b(T,I),u[A]={node:_,edge:D.edge})}}return{distanceTo:function(t){var e=v(t)?f.filter(t)[0]:t[0];return d[e.id()]},pathTo:function(t){var e=v(t)?f.filter(t)[0]:t[0],n=[],i=e,a=i.id();if(e.length>0)for(n.unshift(e);u[a];){var r=u[a];n.unshift(r.edge),n.unshift(r.node),a=(i=r.node).id()}return o.spawn(n)}}}},Je={kruskal:function(t){t=t||function(t){return 1};for(var e=this.byGroup(),n=e.nodes,i=e.edges,a=n.length,r=new Array(a),o=n,s=function(t){for(var e=0;e<r.length;e++)if(r[e].has(t))return e},c=0;c<a;c++)r[c]=this.spawn(n[c]);for(var l=i.sort((function(e,n){return t(e)-t(n)})),u=0;u<l.length;u++){var d=l[u],h=d.source()[0],f=d.target()[0],g=s(h),p=s(f),b=r[g],m=r[p];g!==p&&(o.merge(d),b.merge(m),r.splice(p,1))}return o}},Qe=Me({root:null,goal:null,weight:function(t){return 1},heuristic:function(t){return 0},directed:!1}),tn={aStar:function(t){var e=this.cy(),n=Qe(t),i=n.root,a=n.goal,r=n.heuristic,o=n.directed,s=n.weight;i=e.collection(i)[0],a=e.collection(a)[0];var c,l,u=i.id(),d=a.id(),h={},f={},g={},p=new Ze((function(t,e){return f[t.id()]-f[e.id()]})),b=new Ve,m={},y={},v=function(t,e){p.push(t),b.add(e)},w=function(){c=p.pop(),l=c.id(),b.delete(l)},x=function(t){return b.has(t)};v(i,u),h[u]=0,f[u]=r(i);for(var R=0;p.size()>0;){if(w(),R++,l===d){for(var _=[],k=a,E=d,C=y[E];_.unshift(k),null!=C&&_.unshift(C),null!=(k=m[E]);)C=y[E=k.id()];return{found:!0,distance:h[l],path:this.spawn(_),steps:R}}g[l]=!0;for(var S=c._private.edges,T=0;T<S.length;T++){var A=S[T];if(this.hasElementWithId(A.id())&&(!o||A.data("source")===l)){var D=A.source(),I=A.target(),L=D.id()!==l?D:I,O=L.id();if(this.hasElementWithId(O)&&!g[O]){var M=h[l]+s(A);if(!x(O)){h[O]=M,f[O]=M+r(L),v(L,O),m[O]=c,y[O]=A;continue}M<h[O]&&(h[O]=M,f[O]=M+r(L),m[O]=c,y[O]=A)}}}}return{found:!1,distance:void 0,path:void 0,steps:R}}},en=Me({weight:function(t){return 1},directed:!1}),nn={floydWarshall:function(t){for(var e=this.cy(),n=en(t),i=n.weight,a=n.directed,r=i,o=this.byGroup(),s=o.nodes,c=o.edges,l=s.length,u=l*l,d=function(t){return s.indexOf(t)},h=function(t){return s[t]},f=new Array(u),g=0;g<u;g++){var p=g%l,b=(g-p)/l;f[g]=b===p?0:1/0}for(var m=new Array(u),y=new Array(u),w=0;w<c.length;w++){var x=c[w],R=x.source()[0],_=x.target()[0];if(R!==_){var k=d(R),E=d(_),C=k*l+E,S=r(x);if(f[C]>S&&(f[C]=S,m[C]=E,y[C]=x),!a){var T=E*l+k;!a&&f[T]>S&&(f[T]=S,m[T]=k,y[T]=x)}}}for(var A=0;A<l;A++)for(var D=0;D<l;D++)for(var I=D*l+A,L=0;L<l;L++){var O=D*l+L,M=A*l+L;f[I]+f[M]<f[O]&&(f[O]=f[I]+f[M],m[O]=m[I])}var N=function(t){return(v(t)?e.filter(t):t)[0]},B=function(t){return d(N(t))};return{distance:function(t,e){var n=B(t),i=B(e);return f[n*l+i]},path:function(t,n){var i=B(t),a=B(n),r=h(i);if(i===a)return r.collection();if(null==m[i*l+a])return e.collection();var o,s=e.collection(),c=i;for(s.merge(r);i!==a;)c=i,i=m[i*l+a],o=y[c*l+i],s.merge(o),s.merge(h(i));return s}}}},an=Me({weight:function(t){return 1},directed:!1,root:null}),rn={bellmanFord:function(t){var e=this,n=an(t),i=n.weight,a=n.directed,r=n.root,o=i,s=this,c=this.cy(),l=this.byGroup(),u=l.edges,d=l.nodes,h=d.length,f=new ze,g=!1,p=[];r=c.collection(r)[0],u.unmergeBy((function(t){return t.isLoop()}));for(var b=u.length,m=function(t){var e=f.get(t.id());return e||(e={},f.set(t.id(),e)),e},y=function(t){return(v(t)?c.$(t):t)[0]},w=function(t){return m(y(t)).dist},x=function(t){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r,i=[],a=y(t);;){if(null==a)return e.spawn();var o=m(a),c=o.edge,l=o.pred;if(i.unshift(a[0]),a.same(n)&&i.length>0)break;null!=c&&i.unshift(c),a=l}return s.spawn(i)},R=0;R<h;R++){var _=d[R],k=m(_);_.same(r)?k.dist=0:k.dist=1/0,k.pred=null,k.edge=null}for(var E=!1,C=function(t,e,n,i,a,r){var o=i.dist+r;o<a.dist&&!n.same(i.edge)&&(a.dist=o,a.pred=t,a.edge=n,E=!0)},S=1;S<h;S++){E=!1;for(var T=0;T<b;T++){var A=u[T],D=A.source(),I=A.target(),L=o(A),O=m(D),M=m(I);C(D,I,A,O,M,L),a||C(I,D,A,M,O,L)}if(!E)break}if(E)for(var N=[],B=0;B<b;B++){var P=u[B],F=P.source(),j=P.target(),$=o(P),z=m(F).dist,H=m(j).dist;if(z+$<H||!a&&H+$<z){if(g||(Se("Graph contains a negative weight cycle for Bellman-Ford"),g=!0),!1===t.findNegativeWeightCycles)break;var U=[];z+$<H&&U.push(F),!a&&H+$<z&&U.push(j);for(var V=U.length,q=0;q<V;q++){var W=U[q],Y=[W];Y.push(m(W).edge);for(var G=m(W).pred;-1===Y.indexOf(G);)Y.push(G),Y.push(m(G).edge),G=m(G).pred;for(var Z=(Y=Y.slice(Y.indexOf(G)))[0].id(),K=0,X=2;X<Y.length;X+=2)Y[X].id()<Z&&(Z=Y[X].id(),K=X);(Y=Y.slice(K).concat(Y.slice(0,K))).push(Y[0]);var J=Y.map((function(t){return t.id()})).join(",");-1===N.indexOf(J)&&(p.push(s.spawn(Y)),N.push(J))}}}return{distanceTo:w,pathTo:x,hasNegativeWeightCycle:g,negativeWeightCycles:p}}},on=Math.sqrt(2),sn=function(t,e,n){0===n.length&&Ee("Karger-Stein must be run on a connected (sub)graph");for(var i=n[t],a=i[1],r=i[2],o=e[a],s=e[r],c=n,l=c.length-1;l>=0;l--){var u=c[l],d=u[1],h=u[2];(e[d]===o&&e[h]===s||e[d]===s&&e[h]===o)&&c.splice(l,1)}for(var f=0;f<c.length;f++){var g=c[f];g[1]===s?(c[f]=g.slice(),c[f][1]=o):g[2]===s&&(c[f]=g.slice(),c[f][2]=o)}for(var p=0;p<e.length;p++)e[p]===s&&(e[p]=o);return c},cn=function(t,e,n,i){for(;n>i;){var a=Math.floor(Math.random()*e.length);e=sn(a,t,e),n--}return e},ln={kargerStein:function(){var t=this,e=this.byGroup(),n=e.nodes,i=e.edges;i.unmergeBy((function(t){return t.isLoop()}));var a=n.length,r=i.length,o=Math.ceil(Math.pow(Math.log(a)/Math.LN2,2)),s=Math.floor(a/on);if(!(a<2)){for(var c=[],l=0;l<r;l++){var u=i[l];c.push([l,n.indexOf(u.source()),n.indexOf(u.target())])}for(var d=1/0,h=[],f=new Array(a),g=new Array(a),p=new Array(a),b=function(t,e){for(var n=0;n<a;n++)e[n]=t[n]},m=0;m<=o;m++){for(var y=0;y<a;y++)g[y]=y;var v=cn(g,c.slice(),a,s),w=v.slice();b(g,p);var x=cn(g,v,s,2),R=cn(p,w,s,2);x.length<=R.length&&x.length<d?(d=x.length,h=x,b(g,f)):R.length<=x.length&&R.length<d&&(d=R.length,h=R,b(p,f))}for(var _=this.spawn(h.map((function(t){return i[t[0]]}))),k=this.spawn(),E=this.spawn(),C=f[0],S=0;S<f.length;S++){var T=f[S],A=n[S];T===C?k.merge(A):E.merge(A)}var D=function(e){var n=t.spawn();return e.forEach((function(e){n.merge(e),e.connectedEdges().forEach((function(e){t.contains(e)&&!_.contains(e)&&n.merge(e)}))})),n},I=[D(k),D(E)];return{cut:_,components:I,partition1:k,partition2:E}}Ee("At least 2 nodes are required for Karger-Stein algorithm")}},un=function(t){return{x:t.x,y:t.y}},dn=function(t,e,n){return{x:t.x*e+n.x,y:t.y*e+n.y}},hn=function(t,e,n){return{x:(t.x-n.x)/e,y:(t.y-n.y)/e}},fn=function(t){return{x:t[0],y:t[1]}},gn=function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length,i=1/0,a=e;a<n;a++){var r=t[a];isFinite(r)&&(i=Math.min(r,i))}return i},pn=function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length,i=-1/0,a=e;a<n;a++){var r=t[a];isFinite(r)&&(i=Math.max(r,i))}return i},bn=function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length,i=0,a=0,r=e;r<n;r++){var o=t[r];isFinite(o)&&(i+=o,a++)}return i/a},mn=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length,i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];arguments.length>3&&void 0!==arguments[3]&&!arguments[3]?(n<t.length&&t.splice(n,t.length-n),e>0&&t.splice(0,e)):t=t.slice(e,n);for(var r=0,o=t.length-1;o>=0;o--){var s=t[o];a?isFinite(s)||(t[o]=-1/0,r++):t.splice(o,1)}i&&t.sort((function(t,e){return t-e}));var c=t.length,l=Math.floor(c/2);return c%2!=0?t[l+1+r]:(t[l-1+r]+t[l+r])/2},yn=function(t){return Math.PI*t/180},vn=function(t,e){return Math.atan2(e,t)-Math.PI/2},wn=Math.log2||function(t){return Math.log(t)/Math.log(2)},xn=function(t){return t>0?1:t<0?-1:0},Rn=function(t,e){return Math.sqrt(_n(t,e))},_n=function(t,e){var n=e.x-t.x,i=e.y-t.y;return n*n+i*i},kn=function(t){for(var e=t.length,n=0,i=0;i<e;i++)n+=t[i];for(var a=0;a<e;a++)t[a]=t[a]/n;return t},En=function(t,e,n,i){return(1-i)*(1-i)*t+2*(1-i)*i*e+i*i*n},Cn=function(t,e,n,i){return{x:En(t.x,e.x,n.x,i),y:En(t.y,e.y,n.y,i)}},Sn=function(t,e,n,i){var a={x:e.x-t.x,y:e.y-t.y},r=Rn(t,e),o={x:a.x/r,y:a.y/r};return n=n??0,i=i??n*r,{x:t.x+o.x*i,y:t.y+o.y*i}},Tn=function(t,e,n){return Math.max(t,Math.min(n,e))},An=function(t){if(null==t)return{x1:1/0,y1:1/0,x2:-1/0,y2:-1/0,w:0,h:0};if(null!=t.x1&&null!=t.y1){if(null!=t.x2&&null!=t.y2&&t.x2>=t.x1&&t.y2>=t.y1)return{x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,w:t.x2-t.x1,h:t.y2-t.y1};if(null!=t.w&&null!=t.h&&t.w>=0&&t.h>=0)return{x1:t.x1,y1:t.y1,x2:t.x1+t.w,y2:t.y1+t.h,w:t.w,h:t.h}}},Dn=function(t){return{x1:t.x1,x2:t.x2,w:t.w,y1:t.y1,y2:t.y2,h:t.h}},In=function(t){t.x1=1/0,t.y1=1/0,t.x2=-1/0,t.y2=-1/0,t.w=0,t.h=0},Ln=function(t,e){t.x1=Math.min(t.x1,e.x1),t.x2=Math.max(t.x2,e.x2),t.w=t.x2-t.x1,t.y1=Math.min(t.y1,e.y1),t.y2=Math.max(t.y2,e.y2),t.h=t.y2-t.y1},On=function(t,e,n){t.x1=Math.min(t.x1,e),t.x2=Math.max(t.x2,e),t.w=t.x2-t.x1,t.y1=Math.min(t.y1,n),t.y2=Math.max(t.y2,n),t.h=t.y2-t.y1},Mn=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t.x1-=e,t.x2+=e,t.y1-=e,t.y2+=e,t.w=t.x2-t.x1,t.h=t.y2-t.y1,t},Nn=function(t){var e,n,i,a,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0];if(1===r.length)e=n=i=a=r[0];else if(2===r.length)e=i=r[0],a=n=r[1];else if(4===r.length){var s=o(r,4);e=s[0],n=s[1],i=s[2],a=s[3]}return t.x1-=a,t.x2+=n,t.y1-=e,t.y2+=i,t.w=t.x2-t.x1,t.h=t.y2-t.y1,t},Bn=function(t,e){t.x1=e.x1,t.y1=e.y1,t.x2=e.x2,t.y2=e.y2,t.w=t.x2-t.x1,t.h=t.y2-t.y1},Pn=function(t,e){return!(t.x1>e.x2||e.x1>t.x2||t.x2<e.x1||e.x2<t.x1||t.y2<e.y1||e.y2<t.y1||t.y1>e.y2||e.y1>t.y2)},Fn=function(t,e,n){return t.x1<=e&&e<=t.x2&&t.y1<=n&&n<=t.y2},jn=function(t,e){return Fn(t,e.x,e.y)},$n=function(t,e){return Fn(t,e.x1,e.y1)&&Fn(t,e.x2,e.y2)},zn=function(t,e,n,i,a,r,o){var s,c=ui(a,r),l=a/2,u=r/2,d=i-u-o;if((s=ii(t,e,n,i,n-l+c-o,d,n+l-c+o,d,!1)).length>0)return s;var h=n+l+o;if((s=ii(t,e,n,i,h,i-u+c-o,h,i+u-c+o,!1)).length>0)return s;var f=i+u+o;if((s=ii(t,e,n,i,n-l+c-o,f,n+l-c+o,f,!1)).length>0)return s;var g,p=n-l-o;if((s=ii(t,e,n,i,p,i-u+c-o,p,i+u-c+o,!1)).length>0)return s;var b=n-l+c,m=i-u+c;if((g=ei(t,e,n,i,b,m,c+o)).length>0&&g[0]<=b&&g[1]<=m)return[g[0],g[1]];var y=n+l-c,v=i-u+c;if((g=ei(t,e,n,i,y,v,c+o)).length>0&&g[0]>=y&&g[1]<=v)return[g[0],g[1]];var w=n+l-c,x=i+u-c;if((g=ei(t,e,n,i,w,x,c+o)).length>0&&g[0]>=w&&g[1]>=x)return[g[0],g[1]];var R=n-l+c,_=i+u-c;return(g=ei(t,e,n,i,R,_,c+o)).length>0&&g[0]<=R&&g[1]>=_?[g[0],g[1]]:[]},Hn=function(t,e,n,i,a,r,o){var s=o,c=Math.min(n,a),l=Math.max(n,a),u=Math.min(i,r),d=Math.max(i,r);return c-s<=t&&t<=l+s&&u-s<=e&&e<=d+s},Un=function(t,e,n,i,a,r,o,s,c){var l={x1:Math.min(n,o,a)-c,x2:Math.max(n,o,a)+c,y1:Math.min(i,s,r)-c,y2:Math.max(i,s,r)+c};return!(t<l.x1||t>l.x2||e<l.y1||e>l.y2)},Vn=function(t,e,n,i){var a=e*e-4*t*(n-=i);if(a<0)return[];var r=Math.sqrt(a),o=2*t;return[(-e+r)/o,(-e-r)/o]},qn=function(t,e,n,i,a){var r,o,s,c,l,u,d,h;return 0===t&&(t=1e-5),s=-27*(i/=t)+(e/=t)*(9*(n/=t)-e*e*2),r=(o=(3*n-e*e)/9)*o*o+(s/=54)*s,a[1]=0,d=e/3,r>0?(l=(l=s+Math.sqrt(r))<0?-Math.pow(-l,1/3):Math.pow(l,1/3),u=(u=s-Math.sqrt(r))<0?-Math.pow(-u,1/3):Math.pow(u,1/3),a[0]=-d+l+u,d+=(l+u)/2,a[4]=a[2]=-d,d=Math.sqrt(3)*(-u+l)/2,a[3]=d,void(a[5]=-d)):(a[5]=a[3]=0,0===r?(h=s<0?-Math.pow(-s,1/3):Math.pow(s,1/3),a[0]=2*h-d,void(a[4]=a[2]=-(h+d))):(c=(o=-o)*o*o,c=Math.acos(s/Math.sqrt(c)),h=2*Math.sqrt(o),a[0]=-d+h*Math.cos(c/3),a[2]=-d+h*Math.cos((c+2*Math.PI)/3),void(a[4]=-d+h*Math.cos((c+4*Math.PI)/3))))},Wn=function(t,e,n,i,a,r,o,s){var c=[];qn(1*n*n-4*n*a+2*n*o+4*a*a-4*a*o+o*o+i*i-4*i*r+2*i*s+4*r*r-4*r*s+s*s,9*n*a-3*n*n-3*n*o-6*a*a+3*a*o+9*i*r-3*i*i-3*i*s-6*r*r+3*r*s,3*n*n-6*n*a+n*o-n*t+2*a*a+2*a*t-o*t+3*i*i-6*i*r+i*s-i*e+2*r*r+2*r*e-s*e,1*n*a-n*n+n*t-a*t+i*r-i*i+i*e-r*e,c);for(var l=1e-7,u=[],d=0;d<6;d+=2)Math.abs(c[d+1])<l&&c[d]>=0&&c[d]<=1&&u.push(c[d]);u.push(1),u.push(0);for(var h,f,g,p=-1,b=0;b<u.length;b++)h=Math.pow(1-u[b],2)*n+2*(1-u[b])*u[b]*a+u[b]*u[b]*o,f=Math.pow(1-u[b],2)*i+2*(1-u[b])*u[b]*r+u[b]*u[b]*s,g=Math.pow(h-t,2)+Math.pow(f-e,2),p>=0?g<p&&(p=g):p=g;return p},Yn=function(t,e,n,i,a,r){var o=[t-n,e-i],s=[a-n,r-i],c=s[0]*s[0]+s[1]*s[1],l=o[0]*o[0]+o[1]*o[1],u=o[0]*s[0]+o[1]*s[1],d=u*u/c;return u<0?l:d>c?(t-a)*(t-a)+(e-r)*(e-r):l-d},Gn=function(t,e,n){for(var i,a,r,o,s=0,c=0;c<n.length/2;c++)if(i=n[2*c],a=n[2*c+1],c+1<n.length/2?(r=n[2*(c+1)],o=n[2*(c+1)+1]):(r=n[2*(c+1-n.length/2)],o=n[2*(c+1-n.length/2)+1]),i!=t||r!=t){if(!(i>=t&&t>=r||i<=t&&t<=r))continue;(t-i)/(r-i)*(o-a)+a>e&&s++}return s%2!=0},Zn=function(t,e,n,i,a,r,o,s,c){var l,u,d=new Array(n.length);null!=s[0]?(l=Math.atan(s[1]/s[0]),s[0]<0?l+=Math.PI/2:l=-l-Math.PI/2):l=s;for(var h=Math.cos(-l),f=Math.sin(-l),g=0;g<d.length/2;g++)d[2*g]=r/2*(n[2*g]*h-n[2*g+1]*f),d[2*g+1]=o/2*(n[2*g+1]*h+n[2*g]*f),d[2*g]+=i,d[2*g+1]+=a;if(c>0){var p=Jn(d,-c);u=Xn(p)}else u=d;return Gn(t,e,u)},Kn=function(t,e,n,i,a,r,o){for(var s=new Array(n.length),c=r/2,l=o/2,u=di(r,o),d=u*u,h=0;h<n.length/4;h++){var f=void 0,g=void 0;f=0===h?n.length-2:4*h-2,g=4*h+2;var p=i+c*n[4*h],b=a+l*n[4*h+1],m=-n[f]*n[g]-n[f+1]*n[g+1],y=u/Math.tan(Math.acos(m)/2),v=p-y*n[f],w=b-y*n[f+1],x=p+y*n[g],R=b+y*n[g+1];s[4*h]=v,s[4*h+1]=w,s[4*h+2]=x,s[4*h+3]=R;var _=n[f+1],k=-n[f];_*n[g]+k*n[g+1]<0&&(_*=-1,k*=-1);var E=v+_*u,C=w+k*u;if(Math.pow(E-t,2)+Math.pow(C-e,2)<=d)return!0}return Gn(t,e,s)},Xn=function(t){for(var e,n,i,a,r,o,s,c,l=new Array(t.length/2),u=0;u<t.length/4;u++){e=t[4*u],n=t[4*u+1],i=t[4*u+2],a=t[4*u+3],u<t.length/4-1?(r=t[4*(u+1)],o=t[4*(u+1)+1],s=t[4*(u+1)+2],c=t[4*(u+1)+3]):(r=t[0],o=t[1],s=t[2],c=t[3]);var d=ii(e,n,i,a,r,o,s,c,!0);l[2*u]=d[0],l[2*u+1]=d[1]}return l},Jn=function(t,e){for(var n,i,a,r,o=new Array(2*t.length),s=0;s<t.length/2;s++){n=t[2*s],i=t[2*s+1],s<t.length/2-1?(a=t[2*(s+1)],r=t[2*(s+1)+1]):(a=t[0],r=t[1]);var c=r-i,l=-(a-n),u=Math.sqrt(c*c+l*l),d=c/u,h=l/u;o[4*s]=n+d*e,o[4*s+1]=i+h*e,o[4*s+2]=a+d*e,o[4*s+3]=r+h*e}return o},Qn=function(t,e,n,i,a,r){var o=n-t,s=i-e;o/=a,s/=r;var c=Math.sqrt(o*o+s*s),l=c-1;if(l<0)return[];var u=l/c;return[(n-t)*u+t,(i-e)*u+e]},ti=function(t,e,n,i,a,r,o){return t-=a,e-=r,(t/=n/2+o)*t+(e/=i/2+o)*e<=1},ei=function(t,e,n,i,a,r,o){var s=[n-t,i-e],c=[t-a,e-r],l=s[0]*s[0]+s[1]*s[1],u=2*(c[0]*s[0]+c[1]*s[1]),d=u*u-4*l*(c[0]*c[0]+c[1]*c[1]-o*o);if(d<0)return[];var h=(-u+Math.sqrt(d))/(2*l),f=(-u-Math.sqrt(d))/(2*l),g=Math.min(h,f),p=Math.max(h,f),b=[];if(g>=0&&g<=1&&b.push(g),p>=0&&p<=1&&b.push(p),0===b.length)return[];var m=b[0]*s[0]+t,y=b[0]*s[1]+e;return b.length>1?b[0]==b[1]?[m,y]:[m,y,b[1]*s[0]+t,b[1]*s[1]+e]:[m,y]},ni=function(t,e,n){return e<=t&&t<=n||n<=t&&t<=e?t:t<=e&&e<=n||n<=e&&e<=t?e:n},ii=function(t,e,n,i,a,r,o,s,c){var l=t-a,u=n-t,d=o-a,h=e-r,f=i-e,g=s-r,p=d*h-g*l,b=u*h-f*l,m=g*u-d*f;if(0!==m){var y=p/m,v=b/m,w=.001,x=0-w,R=1+w;return x<=y&&y<=R&&x<=v&&v<=R||c?[t+y*u,e+y*f]:[]}return 0===p||0===b?ni(t,n,o)===o?[o,s]:ni(t,n,a)===a?[a,r]:ni(a,o,n)===n?[n,i]:[]:[]},ai=function(t,e,n,i,a,r,o,s){var c,l,u=[],d=new Array(n.length),h=!0;if(null==r&&(h=!1),h){for(var f=0;f<d.length/2;f++)d[2*f]=n[2*f]*r+i,d[2*f+1]=n[2*f+1]*o+a;if(s>0){var g=Jn(d,-s);l=Xn(g)}else l=d}else l=n;for(var p,b,m,y,v=0;v<l.length/2;v++)p=l[2*v],b=l[2*v+1],v<l.length/2-1?(m=l[2*(v+1)],y=l[2*(v+1)+1]):(m=l[0],y=l[1]),0!==(c=ii(t,e,i,a,p,b,m,y)).length&&u.push(c[0],c[1]);return u},ri=function(t,e,n,i,a,r,o,s){for(var c,l=[],u=new Array(n.length),d=r/2,h=o/2,f=di(r,o),g=0;g<n.length/4;g++){var p=void 0,b=void 0;p=0===g?n.length-2:4*g-2,b=4*g+2;var m=i+d*n[4*g],y=a+h*n[4*g+1],v=-n[p]*n[b]-n[p+1]*n[b+1],w=f/Math.tan(Math.acos(v)/2),x=m-w*n[p],R=y-w*n[p+1],_=m+w*n[b],k=y+w*n[b+1];0===g?(u[n.length-2]=x,u[n.length-1]=R):(u[4*g-2]=x,u[4*g-1]=R),u[4*g]=_,u[4*g+1]=k;var E=n[p+1],C=-n[p];E*n[b]+C*n[b+1]<0&&(E*=-1,C*=-1),0!==(c=ei(t,e,i,a,x+E*f,R+C*f,f)).length&&l.push(c[0],c[1])}for(var S=0;S<u.length/4;S++)0!==(c=ii(t,e,i,a,u[4*S],u[4*S+1],u[4*S+2],u[4*S+3],!1)).length&&l.push(c[0],c[1]);if(l.length>2){for(var T=[l[0],l[1]],A=Math.pow(T[0]-t,2)+Math.pow(T[1]-e,2),D=1;D<l.length/2;D++){var I=Math.pow(l[2*D]-t,2)+Math.pow(l[2*D+1]-e,2);I<=A&&(T[0]=l[2*D],T[1]=l[2*D+1],A=I)}return T}return l},oi=function(t,e,n){var i=[t[0]-e[0],t[1]-e[1]],a=Math.sqrt(i[0]*i[0]+i[1]*i[1]),r=(a-n)/a;return r<0&&(r=1e-5),[e[0]+r*i[0],e[1]+r*i[1]]},si=function(t,e){var n=li(t,e);return n=ci(n)},ci=function(t){for(var e,n,i=t.length/2,a=1/0,r=1/0,o=-1/0,s=-1/0,c=0;c<i;c++)e=t[2*c],n=t[2*c+1],a=Math.min(a,e),o=Math.max(o,e),r=Math.min(r,n),s=Math.max(s,n);for(var l=2/(o-a),u=2/(s-r),d=0;d<i;d++)e=t[2*d]=t[2*d]*l,n=t[2*d+1]=t[2*d+1]*u,a=Math.min(a,e),o=Math.max(o,e),r=Math.min(r,n),s=Math.max(s,n);if(r<-1)for(var h=0;h<i;h++)n=t[2*h+1]=t[2*h+1]+(-1-r);return t},li=function(t,e){var n=1/t*2*Math.PI,i=t%2==0?Math.PI/2+n/2:Math.PI/2;i+=e;for(var a,r=new Array(2*t),o=0;o<t;o++)a=o*n+i,r[2*o]=Math.cos(a),r[2*o+1]=Math.sin(-a);return r},ui=function(t,e){return Math.min(t/4,e/4,8)},di=function(t,e){return Math.min(t/10,e/10,8)},hi=function(){return 8},fi=function(t,e,n){return[t-2*e+n,2*(e-t),t]},gi=function(t,e){return{heightOffset:Math.min(15,.05*e),widthOffset:Math.min(100,.25*t),ctrlPtOffsetPct:.05}},pi=Me({dampingFactor:.8,precision:1e-6,iterations:200,weight:function(t){return 1}}),bi={pageRank:function(t){for(var e=pi(t),n=e.dampingFactor,i=e.precision,a=e.iterations,r=e.weight,o=this._private.cy,s=this.byGroup(),c=s.nodes,l=s.edges,u=c.length,d=u*u,h=l.length,f=new Array(d),g=new Array(u),p=(1-n)/u,b=0;b<u;b++){for(var m=0;m<u;m++)f[b*u+m]=0;g[b]=0}for(var y=0;y<h;y++){var v=l[y],w=v.data("source"),x=v.data("target");if(w!==x){var R=c.indexOfId(w),_=c.indexOfId(x),k=r(v);f[_*u+R]+=k,g[R]+=k}}for(var E=1/u+p,C=0;C<u;C++)if(0===g[C])for(var S=0;S<u;S++)f[S*u+C]=E;else for(var T=0;T<u;T++){var A=T*u+C;f[A]=f[A]/g[C]+p}for(var D,I=new Array(u),L=new Array(u),O=0;O<u;O++)I[O]=1;for(var M=0;M<a;M++){for(var N=0;N<u;N++)L[N]=0;for(var B=0;B<u;B++)for(var P=0;P<u;P++){var F=B*u+P;L[B]+=f[F]*I[P]}kn(L),D=I,I=L,L=D;for(var j=0,$=0;$<u;$++){var z=D[$]-I[$];j+=z*z}if(j<i)break}return{rank:function(t){return t=o.collection(t)[0],I[c.indexOf(t)]}}}},mi=Me({root:null,weight:function(t){return 1},directed:!1,alpha:0}),yi={degreeCentralityNormalized:function(t){t=mi(t);var e=this.cy(),n=this.nodes(),i=n.length;if(t.directed){for(var a={},r={},o=0,s=0,c=0;c<i;c++){var l=n[c],u=l.id();t.root=l;var d=this.degreeCentrality(t);o<d.indegree&&(o=d.indegree),s<d.outdegree&&(s=d.outdegree),a[u]=d.indegree,r[u]=d.outdegree}return{indegree:function(t){return 0==o?0:(v(t)&&(t=e.filter(t)),a[t.id()]/o)},outdegree:function(t){return 0===s?0:(v(t)&&(t=e.filter(t)),r[t.id()]/s)}}}for(var h={},f=0,g=0;g<i;g++){var p=n[g];t.root=p;var b=this.degreeCentrality(t);f<b.degree&&(f=b.degree),h[p.id()]=b.degree}return{degree:function(t){return 0===f?0:(v(t)&&(t=e.filter(t)),h[t.id()]/f)}}},degreeCentrality:function(t){t=mi(t);var e=this.cy(),n=this,i=t,a=i.root,r=i.weight,o=i.directed,s=i.alpha;if(a=e.collection(a)[0],o){for(var c=a.connectedEdges(),l=c.filter((function(t){return t.target().same(a)&&n.has(t)})),u=c.filter((function(t){return t.source().same(a)&&n.has(t)})),d=l.length,h=u.length,f=0,g=0,p=0;p<l.length;p++)f+=r(l[p]);for(var b=0;b<u.length;b++)g+=r(u[b]);return{indegree:Math.pow(d,1-s)*Math.pow(f,s),outdegree:Math.pow(h,1-s)*Math.pow(g,s)}}for(var m=a.connectedEdges().intersection(n),y=m.length,v=0,w=0;w<m.length;w++)v+=r(m[w]);return{degree:Math.pow(y,1-s)*Math.pow(v,s)}}};yi.dc=yi.degreeCentrality,yi.dcn=yi.degreeCentralityNormalised=yi.degreeCentralityNormalized;var vi=Me({harmonic:!0,weight:function(){return 1},directed:!1,root:null}),wi={closenessCentralityNormalized:function(t){for(var e=vi(t),n=e.harmonic,i=e.weight,a=e.directed,r=this.cy(),o={},s=0,c=this.nodes(),l=this.floydWarshall({weight:i,directed:a}),u=0;u<c.length;u++){for(var d=0,h=c[u],f=0;f<c.length;f++)if(u!==f){var g=l.distance(h,c[f]);d+=n?1/g:g}n||(d=1/d),s<d&&(s=d),o[h.id()]=d}return{closeness:function(t){return 0==s?0:(t=v(t)?r.filter(t)[0].id():t.id(),o[t]/s)}}},closenessCentrality:function(t){var e=vi(t),n=e.root,i=e.weight,a=e.directed,r=e.harmonic;n=this.filter(n)[0];for(var o=this.dijkstra({root:n,weight:i,directed:a}),s=0,c=this.nodes(),l=0;l<c.length;l++){var u=c[l];if(!u.same(n)){var d=o.distanceTo(u);s+=r?1/d:d}}return r?s:1/s}};wi.cc=wi.closenessCentrality,wi.ccn=wi.closenessCentralityNormalised=wi.closenessCentralityNormalized;var xi=Me({weight:null,directed:!1}),Ri={betweennessCentrality:function(t){for(var e=xi(t),n=e.directed,i=e.weight,a=null!=i,r=this.cy(),o=this.nodes(),s={},c={},l=0,u={set:function(t,e){c[t]=e,e>l&&(l=e)},get:function(t){return c[t]}},d=0;d<o.length;d++){var h=o[d],f=h.id();s[f]=n?h.outgoers().nodes():h.openNeighborhood().nodes(),u.set(f,0)}for(var g=function(t){for(var e=o[t].id(),n=[],c={},l={},d={},h=new Ze((function(t,e){return d[t]-d[e]})),f=0;f<o.length;f++){var g=o[f].id();c[g]=[],l[g]=0,d[g]=1/0}for(l[e]=1,d[e]=0,h.push(e);!h.empty();){var p=h.pop();if(n.push(p),a)for(var b=0;b<s[p].length;b++){var m=s[p][b],y=r.getElementById(p),v=void 0;v=y.edgesTo(m).length>0?y.edgesTo(m)[0]:m.edgesTo(y)[0];var w=i(v);m=m.id(),d[m]>d[p]+w&&(d[m]=d[p]+w,h.nodes.indexOf(m)<0?h.push(m):h.updateItem(m),l[m]=0,c[m]=[]),d[m]==d[p]+w&&(l[m]=l[m]+l[p],c[m].push(p))}else for(var x=0;x<s[p].length;x++){var R=s[p][x].id();d[R]==1/0&&(h.push(R),d[R]=d[p]+1),d[R]==d[p]+1&&(l[R]=l[R]+l[p],c[R].push(p))}}for(var _={},k=0;k<o.length;k++)_[o[k].id()]=0;for(;n.length>0;){for(var E=n.pop(),C=0;C<c[E].length;C++){var S=c[E][C];_[S]=_[S]+l[S]/l[E]*(1+_[E])}E!=o[t].id()&&u.set(E,u.get(E)+_[E])}},p=0;p<o.length;p++)g(p);var b={betweenness:function(t){var e=r.collection(t).id();return u.get(e)},betweennessNormalized:function(t){if(0==l)return 0;var e=r.collection(t).id();return u.get(e)/l}};return b.betweennessNormalised=b.betweennessNormalized,b}};Ri.bc=Ri.betweennessCentrality;var _i=Me({expandFactor:2,inflateFactor:2,multFactor:1,maxIterations:20,attributes:[function(t){return 1}]}),ki=function(t){return _i(t)},Ei=function(t,e){for(var n=0,i=0;i<e.length;i++)n+=e[i](t);return n},Ci=function(t,e,n){for(var i=0;i<e;i++)t[i*e+i]=n},Si=function(t,e){for(var n,i=0;i<e;i++){n=0;for(var a=0;a<e;a++)n+=t[a*e+i];for(var r=0;r<e;r++)t[r*e+i]=t[r*e+i]/n}},Ti=function(t,e,n){for(var i=new Array(n*n),a=0;a<n;a++){for(var r=0;r<n;r++)i[a*n+r]=0;for(var o=0;o<n;o++)for(var s=0;s<n;s++)i[a*n+s]+=t[a*n+o]*e[o*n+s]}return i},Ai=function(t,e,n){for(var i=t.slice(0),a=1;a<n;a++)t=Ti(t,i,e);return t},Di=function(t,e,n){for(var i=new Array(e*e),a=0;a<e*e;a++)i[a]=Math.pow(t[a],n);return Si(i,e),i},Ii=function(t,e,n,i){for(var a=0;a<n;a++)if(Math.round(t[a]*Math.pow(10,i))/Math.pow(10,i)!=Math.round(e[a]*Math.pow(10,i))/Math.pow(10,i))return!1;return!0},Li=function(t,e,n,i){for(var a=[],r=0;r<e;r++){for(var o=[],s=0;s<e;s++)Math.round(1e3*t[r*e+s])/1e3>0&&o.push(n[s]);0!==o.length&&a.push(i.collection(o))}return a},Oi=function(t,e){for(var n=0;n<t.length;n++)if(!e[n]||t[n].id()!==e[n].id())return!1;return!0},Mi=function(t){for(var e=0;e<t.length;e++)for(var n=0;n<t.length;n++)e!=n&&Oi(t[e],t[n])&&t.splice(n,1);return t},Ni=function(t){for(var e=this.nodes(),n=this.edges(),i=this.cy(),a=ki(t),r={},o=0;o<e.length;o++)r[e[o].id()]=o;for(var s,c=e.length,l=c*c,u=new Array(l),d=0;d<l;d++)u[d]=0;for(var h=0;h<n.length;h++){var f=n[h],g=r[f.source().id()],p=r[f.target().id()],b=Ei(f,a.attributes);u[g*c+p]+=b,u[p*c+g]+=b}Ci(u,c,a.multFactor),Si(u,c);for(var m=!0,y=0;m&&y<a.maxIterations;)m=!1,s=Ai(u,c,a.expandFactor),u=Di(s,c,a.inflateFactor),Ii(u,s,l,4)||(m=!0),y++;var v=Li(u,c,e,i);return v=Mi(v)},Bi={markovClustering:Ni,mcl:Ni},Pi=function(t){return t},Fi=function(t,e){return Math.abs(e-t)},ji=function(t,e,n){return t+Fi(e,n)},$i=function(t,e,n){return t+Math.pow(n-e,2)},zi=function(t){return Math.sqrt(t)},Hi=function(t,e,n){return Math.max(t,Fi(e,n))},Ui=function(t,e,n,i,a){for(var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:Pi,o=i,s=0;s<t;s++)o=a(o,e(s),n(s));return r(o)},Vi={euclidean:function(t,e,n){return t>=2?Ui(t,e,n,0,$i,zi):Ui(t,e,n,0,ji)},squaredEuclidean:function(t,e,n){return Ui(t,e,n,0,$i)},manhattan:function(t,e,n){return Ui(t,e,n,0,ji)},max:function(t,e,n){return Ui(t,e,n,-1/0,Hi)}};function qi(t,e,n,i,a,r){var o;return o=w(t)?t:Vi[t]||Vi.euclidean,0===e&&w(t)?o(a,r):o(e,n,i,a,r)}Vi["squared-euclidean"]=Vi.squaredEuclidean,Vi.squaredeuclidean=Vi.squaredEuclidean;var Wi=Me({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),Yi=function(t){return Wi(t)},Gi=function(t,e,n,i,a){var r="kMedoids"!==a?function(t){return n[t]}:function(t){return i[t](n)},o=function(t){return i[t](e)},s=n,c=e;return qi(t,i.length,r,o,s,c)},Zi=function(t,e,n){for(var i=n.length,a=new Array(i),r=new Array(i),o=new Array(e),s=null,c=0;c<i;c++)a[c]=t.min(n[c]).value,r[c]=t.max(n[c]).value;for(var l=0;l<e;l++){s=[];for(var u=0;u<i;u++)s[u]=Math.random()*(r[u]-a[u])+a[u];o[l]=s}return o},Ki=function(t,e,n,i,a){for(var r=1/0,o=0,s=0;s<e.length;s++){var c=Gi(n,t,e[s],i,a);c<r&&(r=c,o=s)}return o},Xi=function(t,e,n){for(var i=[],a=null,r=0;r<e.length;r++)n[(a=e[r]).id()]===t&&i.push(a);return i},Ji=function(t,e,n){return Math.abs(e-t)<=n},Qi=function(t,e,n){for(var i=0;i<t.length;i++)for(var a=0;a<t[i].length;a++)if(Math.abs(t[i][a]-e[i][a])>n)return!1;return!0},ta=function(t,e,n){for(var i=0;i<n;i++)if(t===e[i])return!0;return!1},ea=function(t,e){var n=new Array(e);if(t.length<50)for(var i=0;i<e;i++){for(var a=t[Math.floor(Math.random()*t.length)];ta(a,n,i);)a=t[Math.floor(Math.random()*t.length)];n[i]=a}else for(var r=0;r<e;r++)n[r]=t[Math.floor(Math.random()*t.length)];return n},na=function(t,e,n){for(var i=0,a=0;a<e.length;a++)i+=Gi("manhattan",e[a],t,n,"kMedoids");return i},ia=function(t,e,n,i,a){for(var r,o,s=0;s<e.length;s++)for(var c=0;c<t.length;c++)i[s][c]=Math.pow(n[s][c],a.m);for(var l=0;l<t.length;l++)for(var u=0;u<a.attributes.length;u++){r=0,o=0;for(var d=0;d<e.length;d++)r+=i[d][l]*a.attributes[u](e[d]),o+=i[d][l];t[l][u]=r/o}},aa=function(t,e,n,i,a){for(var r=0;r<t.length;r++)e[r]=t[r].slice();for(var o,s,c,l=2/(a.m-1),u=0;u<n.length;u++)for(var d=0;d<i.length;d++){o=0;for(var h=0;h<n.length;h++)s=Gi(a.distance,i[d],n[u],a.attributes,"cmeans"),c=Gi(a.distance,i[d],n[h],a.attributes,"cmeans"),o+=Math.pow(s/c,l);t[d][u]=1/o}},ra=function(t,e,n,i){for(var a=new Array(n.k),r=0;r<a.length;r++)a[r]=[];for(var o,s,c=0;c<e.length;c++){o=-1/0,s=-1;for(var l=0;l<e[0].length;l++)e[c][l]>o&&(o=e[c][l],s=l);a[s].push(t[c])}for(var u=0;u<a.length;u++)a[u]=i.collection(a[u]);return a},oa=function(t){var e,n,i,a,r=this.cy(),o=this.nodes(),s=Yi(t);i=new Array(o.length);for(var c=0;c<o.length;c++)i[c]=new Array(s.k);n=new Array(o.length);for(var l=0;l<o.length;l++)n[l]=new Array(s.k);for(var u=0;u<o.length;u++){for(var d=0,h=0;h<s.k;h++)n[u][h]=Math.random(),d+=n[u][h];for(var f=0;f<s.k;f++)n[u][f]=n[u][f]/d}e=new Array(s.k);for(var g=0;g<s.k;g++)e[g]=new Array(s.attributes.length);a=new Array(o.length);for(var p=0;p<o.length;p++)a[p]=new Array(s.k);for(var b=!0,m=0;b&&m<s.maxIterations;)b=!1,ia(e,o,n,a,s),aa(n,i,e,o,s),Qi(n,i,s.sensitivityThreshold)||(b=!0),m++;return{clusters:ra(o,n,s,r),degreeOfMembership:n}},sa={kMeans:function(e){var n,i=this.cy(),a=this.nodes(),r=null,o=Yi(e),s=new Array(o.k),c={};o.testMode?"number"==typeof o.testCentroids?(o.testCentroids,n=Zi(a,o.k,o.attributes)):n="object"===t(o.testCentroids)?o.testCentroids:Zi(a,o.k,o.attributes):n=Zi(a,o.k,o.attributes);for(var l=!0,u=0;l&&u<o.maxIterations;){for(var d=0;d<a.length;d++)c[(r=a[d]).id()]=Ki(r,n,o.distance,o.attributes,"kMeans");l=!1;for(var h=0;h<o.k;h++){var f=Xi(h,a,c);if(0!==f.length){for(var g=o.attributes.length,p=n[h],b=new Array(g),m=new Array(g),y=0;y<g;y++){m[y]=0;for(var v=0;v<f.length;v++)r=f[v],m[y]+=o.attributes[y](r);b[y]=m[y]/f.length,Ji(b[y],p[y],o.sensitivityThreshold)||(l=!0)}n[h]=b,s[h]=i.collection(f)}}u++}return s},kMedoids:function(e){var n,i,a=this.cy(),r=this.nodes(),o=null,s=Yi(e),c=new Array(s.k),l={},u=new Array(s.k);s.testMode?"number"==typeof s.testCentroids||(n="object"===t(s.testCentroids)?s.testCentroids:ea(r,s.k)):n=ea(r,s.k);for(var d=!0,h=0;d&&h<s.maxIterations;){for(var f=0;f<r.length;f++)l[(o=r[f]).id()]=Ki(o,n,s.distance,s.attributes,"kMedoids");d=!1;for(var g=0;g<n.length;g++){var p=Xi(g,r,l);if(0!==p.length){u[g]=na(n[g],p,s.attributes);for(var b=0;b<p.length;b++)(i=na(p[b],p,s.attributes))<u[g]&&(u[g]=i,n[g]=p[b],d=!0);c[g]=a.collection(p)}}h++}return c},fuzzyCMeans:oa,fcm:oa},ca=Me({distance:"euclidean",linkage:"min",mode:"threshold",threshold:1/0,addDendrogram:!1,dendrogramDepth:0,attributes:[]}),la={single:"min",complete:"max"},ua=function(t){var e=ca(t),n=la[e.linkage];return null!=n&&(e.linkage=n),e},da=function(t,e,n,i,a){for(var r,o=0,s=1/0,c=a.attributes,l=function(t,e){return qi(a.distance,c.length,(function(e){return c[e](t)}),(function(t){return c[t](e)}),t,e)},u=0;u<t.length;u++){var d=t[u].key,h=n[d][i[d]];h<s&&(o=d,s=h)}if("threshold"===a.mode&&s>=a.threshold||"dendrogram"===a.mode&&1===t.length)return!1;var f,g=e[o],p=e[i[o]];f="dendrogram"===a.mode?{left:g,right:p,key:g.key}:{value:g.value.concat(p.value),key:g.key},t[g.index]=f,t.splice(p.index,1),e[g.key]=f;for(var b=0;b<t.length;b++){var m=t[b];g.key===m.key?r=1/0:"min"===a.linkage?(r=n[g.key][m.key],n[g.key][m.key]>n[p.key][m.key]&&(r=n[p.key][m.key])):"max"===a.linkage?(r=n[g.key][m.key],n[g.key][m.key]<n[p.key][m.key]&&(r=n[p.key][m.key])):r="mean"===a.linkage?(n[g.key][m.key]*g.size+n[p.key][m.key]*p.size)/(g.size+p.size):"dendrogram"===a.mode?l(m.value,g.value):l(m.value[0],g.value[0]),n[g.key][m.key]=n[m.key][g.key]=r}for(var y=0;y<t.length;y++){var v=t[y].key;if(i[v]===g.key||i[v]===p.key){for(var w=v,x=0;x<t.length;x++){var R=t[x].key;n[v][R]<n[v][w]&&(w=R)}i[v]=w}t[y].index=y}return g.key=p.key=g.index=p.index=null,!0},ha=function t(e,n,i){e&&(e.value?n.push(e.value):(e.left&&t(e.left,n),e.right&&t(e.right,n)))},fa=function t(e,n){if(!e)return"";if(e.left&&e.right){var i=t(e.left,n),a=t(e.right,n),r=n.add({group:"nodes",data:{id:i+","+a}});return n.add({group:"edges",data:{source:i,target:r.id()}}),n.add({group:"edges",data:{source:a,target:r.id()}}),r.id()}return e.value?e.value.id():void 0},ga=function t(e,n,i){if(!e)return[];var a=[],r=[],o=[];return 0===n?(e.left&&ha(e.left,a),e.right&&ha(e.right,r),o=a.concat(r),[i.collection(o)]):1===n?e.value?[i.collection(e.value)]:(e.left&&ha(e.left,a),e.right&&ha(e.right,r),[i.collection(a),i.collection(r)]):e.value?[i.collection(e.value)]:(e.left&&(a=t(e.left,n-1,i)),e.right&&(r=t(e.right,n-1,i)),a.concat(r))},pa=function(t){for(var e=this.cy(),n=this.nodes(),i=ua(t),a=i.attributes,r=function(t,e){return qi(i.distance,a.length,(function(e){return a[e](t)}),(function(t){return a[t](e)}),t,e)},o=[],s=[],c=[],l=[],u=0;u<n.length;u++){var d={value:"dendrogram"===i.mode?n[u]:[n[u]],key:u,index:u};o[u]=d,l[u]=d,s[u]=[],c[u]=0}for(var h=0;h<o.length;h++)for(var f=0;f<=h;f++){var g=void 0;g="dendrogram"===i.mode?h===f?1/0:r(o[h].value,o[f].value):h===f?1/0:r(o[h].value[0],o[f].value[0]),s[h][f]=g,s[f][h]=g,g<s[h][c[h]]&&(c[h]=f)}for(var p=da(o,l,s,c,i);p;)p=da(o,l,s,c,i);var b;return"dendrogram"===i.mode?(b=ga(o[0],i.dendrogramDepth,e),i.addDendrogram&&fa(o[0],e)):(b=new Array(o.length),o.forEach((function(t,n){t.key=t.index=null,b[n]=e.collection(t.value)}))),b},ba={hierarchicalClustering:pa,hca:pa},ma=Me({distance:"euclidean",preference:"median",damping:.8,maxIterations:1e3,minIterations:100,attributes:[]}),ya=function(t){var e=t.damping,n=t.preference;.5<=e&&e<1||Ee("Damping must range on [0.5, 1). Got: ".concat(e));var i=["median","mean","min","max"];return i.some((function(t){return t===n}))||k(n)||Ee("Preference must be one of [".concat(i.map((function(t){return"'".concat(t,"'")})).join(", "),"] or a number. Got: ").concat(n)),ma(t)},va=function(t,e,n,i){var a=function(t,e){return i[e](t)};return-qi(t,i.length,(function(t){return a(e,t)}),(function(t){return a(n,t)}),e,n)},wa=function(t,e){return"median"===e?mn(t):"mean"===e?bn(t):"min"===e?gn(t):"max"===e?pn(t):e},xa=function(t,e,n){for(var i=[],a=0;a<t;a++)e[a*t+a]+n[a*t+a]>0&&i.push(a);return i},Ra=function(t,e,n){for(var i=[],a=0;a<t;a++){for(var r=-1,o=-1/0,s=0;s<n.length;s++){var c=n[s];e[a*t+c]>o&&(r=c,o=e[a*t+c])}r>0&&i.push(r)}for(var l=0;l<n.length;l++)i[n[l]]=n[l];return i},_a=function(t,e,n){for(var i=Ra(t,e,n),a=0;a<n.length;a++){for(var r=[],o=0;o<i.length;o++)i[o]===n[a]&&r.push(o);for(var s=-1,c=-1/0,l=0;l<r.length;l++){for(var u=0,d=0;d<r.length;d++)u+=e[r[d]*t+r[l]];u>c&&(s=l,c=u)}n[a]=r[s]}return i=Ra(t,e,n)},ka=function(t){for(var e=this.cy(),n=this.nodes(),i=ya(t),a={},r=0;r<n.length;r++)a[n[r].id()]=r;var o,s,c,l,u,d,h;s=(o=n.length)*o,c=new Array(s);for(var f=0;f<s;f++)c[f]=-1/0;for(var g=0;g<o;g++)for(var p=0;p<o;p++)g!==p&&(c[g*o+p]=va(i.distance,n[g],n[p],i.attributes));l=wa(c,i.preference);for(var b=0;b<o;b++)c[b*o+b]=l;u=new Array(s);for(var m=0;m<s;m++)u[m]=0;d=new Array(s);for(var y=0;y<s;y++)d[y]=0;for(var v=new Array(o),w=new Array(o),x=new Array(o),R=0;R<o;R++)v[R]=0,w[R]=0,x[R]=0;for(var _=new Array(o*i.minIterations),k=0;k<_.length;k++)_[k]=0;for(h=0;h<i.maxIterations;h++){for(var E=0;E<o;E++){for(var C=-1/0,S=-1/0,T=-1,A=0,D=0;D<o;D++)v[D]=u[E*o+D],(A=d[E*o+D]+c[E*o+D])>=C?(S=C,C=A,T=D):A>S&&(S=A);for(var I=0;I<o;I++)u[E*o+I]=(1-i.damping)*(c[E*o+I]-C)+i.damping*v[I];u[E*o+T]=(1-i.damping)*(c[E*o+T]-S)+i.damping*v[T]}for(var L=0;L<o;L++){for(var O=0,M=0;M<o;M++)v[M]=d[M*o+L],w[M]=Math.max(0,u[M*o+L]),O+=w[M];O-=w[L],w[L]=u[L*o+L],O+=w[L];for(var N=0;N<o;N++)d[N*o+L]=(1-i.damping)*Math.min(0,O-w[N])+i.damping*v[N];d[L*o+L]=(1-i.damping)*(O-w[L])+i.damping*v[L]}for(var B=0,P=0;P<o;P++){var F=d[P*o+P]+u[P*o+P]>0?1:0;_[h%i.minIterations*o+P]=F,B+=F}if(B>0&&(h>=i.minIterations-1||h==i.maxIterations-1)){for(var j=0,$=0;$<o;$++){x[$]=0;for(var z=0;z<i.minIterations;z++)x[$]+=_[z*o+$];(0===x[$]||x[$]===i.minIterations)&&j++}if(j===o)break}}for(var H=xa(o,u,d),U=_a(o,c,H),V={},q=0;q<H.length;q++)V[H[q]]=[];for(var W=0;W<n.length;W++){var Y=U[a[n[W].id()]];null!=Y&&V[Y].push(n[W])}for(var G=new Array(H.length),Z=0;Z<H.length;Z++)G[Z]=e.collection(V[H[Z]]);return G},Ea={affinityPropagation:ka,ap:ka},Ca=Me({root:void 0,directed:!1}),Sa={hierholzer:function(t){if(!R(t)){var e=arguments;t={root:e[0],directed:e[1]}}var n,i,a,r=Ca(t),o=r.root,s=r.directed,c=this,l=!1;o&&(a=v(o)?this.filter(o)[0].id():o[0].id());var u={},d={};s?c.forEach((function(t){var e=t.id();if(t.isNode()){var a=t.indegree(!0),r=t.outdegree(!0),o=a-r,s=r-a;1==o?n?l=!0:n=e:1==s?i?l=!0:i=e:(s>1||o>1)&&(l=!0),u[e]=[],t.outgoers().forEach((function(t){t.isEdge()&&u[e].push(t.id())}))}else d[e]=[void 0,t.target().id()]})):c.forEach((function(t){var e=t.id();t.isNode()?(t.degree(!0)%2&&(n?i?l=!0:i=e:n=e),u[e]=[],t.connectedEdges().forEach((function(t){return u[e].push(t.id())}))):d[e]=[t.source().id(),t.target().id()]}));var h={found:!1,trail:void 0};if(l)return h;if(i&&n)if(s){if(a&&i!=a)return h;a=i}else{if(a&&i!=a&&n!=a)return h;a||(a=i)}else a||(a=c[0].id());var f=function(t){for(var e,n,i,a=t,r=[t];u[a].length;)e=u[a].shift(),n=d[e][0],a!=(i=d[e][1])?(u[i]=u[i].filter((function(t){return t!=e})),a=i):!s&&a!=n&&(u[n]=u[n].filter((function(t){return t!=e})),a=n),r.unshift(e),r.unshift(a);return r},g=[],p=[];for(p=f(a);1!=p.length;)0==u[p[0]].length?(g.unshift(c.getElementById(p.shift())),g.unshift(c.getElementById(p.shift()))):p=f(p.shift()).concat(p);for(var b in g.unshift(c.getElementById(p.shift())),u)if(u[b].length)return h;return h.found=!0,h.trail=this.spawn(g,!0),h}},Ta=function(){var t=this,e={},n=0,i=0,a=[],r=[],o={},s=function(n,i){for(var o=r.length-1,s=[],c=t.spawn();r[o].x!=n||r[o].y!=i;)s.push(r.pop().edge),o--;s.push(r.pop().edge),s.forEach((function(n){var i=n.connectedNodes().intersection(t);c.merge(n),i.forEach((function(n){var i=n.id(),a=n.connectedEdges().intersection(t);c.merge(n),e[i].cutVertex?c.merge(a.filter((function(t){return t.isLoop()}))):c.merge(a)}))})),a.push(c)},c=function c(l,u,d){l===d&&(i+=1),e[u]={id:n,low:n++,cutVertex:!1};var h,f,g,p,b=t.getElementById(u).connectedEdges().intersection(t);0===b.size()?a.push(t.spawn(t.getElementById(u))):b.forEach((function(t){h=t.source().id(),f=t.target().id(),(g=h===u?f:h)!==d&&(p=t.id(),o[p]||(o[p]=!0,r.push({x:u,y:g,edge:t})),g in e?e[u].low=Math.min(e[u].low,e[g].id):(c(l,g,u),e[u].low=Math.min(e[u].low,e[g].low),e[u].id<=e[g].low&&(e[u].cutVertex=!0,s(u,g))))}))};t.forEach((function(t){if(t.isNode()){var n=t.id();n in e||(i=0,c(n,n),e[n].cutVertex=i>1)}}));var l=Object.keys(e).filter((function(t){return e[t].cutVertex})).map((function(e){return t.getElementById(e)}));return{cut:t.spawn(l),components:a}},Aa=function(){var t=this,e={},n=0,i=[],a=[],r=t.spawn(t),o=function o(s){if(a.push(s),e[s]={index:n,low:n++,explored:!1},t.getElementById(s).connectedEdges().intersection(t).forEach((function(t){var n=t.target().id();n!==s&&(n in e||o(n),e[n].explored||(e[s].low=Math.min(e[s].low,e[n].low)))})),e[s].index===e[s].low){for(var c=t.spawn();;){var l=a.pop();if(c.merge(t.getElementById(l)),e[l].low=e[s].index,e[l].explored=!0,l===s)break}var u=c.edgesWith(c),d=c.merge(u);i.push(d),r=r.difference(d)}};return t.forEach((function(t){if(t.isNode()){var n=t.id();n in e||o(n)}})),{cut:r,components:i}},Da={};[Ye,Xe,Je,tn,nn,rn,ln,bi,yi,wi,Ri,Bi,sa,ba,Ea,Sa,{hopcroftTarjanBiconnected:Ta,htbc:Ta,htb:Ta,hopcroftTarjanBiconnectedComponents:Ta},{tarjanStronglyConnected:Aa,tsc:Aa,tscc:Aa,tarjanStronglyConnectedComponents:Aa}].forEach((function(t){J(Da,t)}));var Ia=0,La=1,Oa=2,Ma=function t(e){if(!(this instanceof t))return new t(e);this.id="Thenable/1.0.7",this.state=Ia,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},"function"==typeof e&&e.call(this,this.fulfill.bind(this),this.reject.bind(this))};Ma.prototype={fulfill:function(t){return Na(this,La,"fulfillValue",t)},reject:function(t){return Na(this,Oa,"rejectReason",t)},then:function(t,e){var n=this,i=new Ma;return n.onFulfilled.push(Fa(t,i,"fulfill")),n.onRejected.push(Fa(e,i,"reject")),Ba(n),i.proxy}};var Na=function(t,e,n,i){return t.state===Ia&&(t.state=e,t[n]=i,Ba(t)),t},Ba=function(t){t.state===La?Pa(t,"onFulfilled",t.fulfillValue):t.state===Oa&&Pa(t,"onRejected",t.rejectReason)},Pa=function(t,e,n){if(0!==t[e].length){var i=t[e];t[e]=[];var a=function(){for(var t=0;t<i.length;t++)i[t](n)};"function"==typeof setImmediate?setImmediate(a):setTimeout(a,0)}},Fa=function(t,e,n){return function(i){if("function"!=typeof t)e[n].call(e,i);else{var a;try{a=t(i)}catch(r){return void e.reject(r)}ja(e,a)}}},ja=function e(n,i){if(n!==i&&n.proxy!==i){var a;if("object"===t(i)&&null!==i||"function"==typeof i)try{a=i.then}catch(o){return void n.reject(o)}if("function"!=typeof a)n.fulfill(i);else{var r=!1;try{a.call(i,(function(t){r||(r=!0,t===i?n.reject(new TypeError("circular thenable chain")):e(n,t))}),(function(t){r||(r=!0,n.reject(t))}))}catch(o){r||n.reject(o)}}}else n.reject(new TypeError("cannot resolve promise with itself"))};Ma.all=function(t){return new Ma((function(e,n){for(var i=new Array(t.length),a=0,r=function(n,r){i[n]=r,++a===t.length&&e(i)},o=0;o<t.length;o++)!function(e){var i=t[e];null!=i&&null!=i.then?i.then((function(t){r(e,t)}),(function(t){n(t)})):r(e,i)}(o)}))},Ma.resolve=function(t){return new Ma((function(e,n){e(t)}))},Ma.reject=function(t){return new Ma((function(e,n){n(t)}))};var $a=typeof Promise<"u"?Promise:Ma,za=function(t,e,n){var i=D(t),a=!i,r=this._private=J({duration:1e3},e,n);if(r.target=t,r.style=r.style||r.css,r.started=!1,r.playing=!1,r.hooked=!1,r.applying=!1,r.progress=0,r.completes=[],r.frames=[],r.complete&&w(r.complete)&&r.completes.push(r.complete),a){var o=t.position();r.startPosition=r.startPosition||{x:o.x,y:o.y},r.startStyle=r.startStyle||t.cy().style().getAnimationStartStyle(t,r.style)}if(i){var s=t.pan();r.startPan={x:s.x,y:s.y},r.startZoom=t.zoom()}this.length=1,this[0]=this},Ha=za.prototype;J(Ha,{instanceString:function(){return"animation"},hook:function(){var t=this._private;if(!t.hooked){var e=t.target._private.animation;(t.queue?e.queue:e.current).push(this),S(t.target)&&t.target.cy().addToAnimationPool(t.target),t.hooked=!0}return this},play:function(){var t=this._private;return 1===t.progress&&(t.progress=0),t.playing=!0,t.started=!1,t.stopped=!1,this.hook(),this},playing:function(){return this._private.playing},apply:function(){var t=this._private;return t.applying=!0,t.started=!1,t.stopped=!1,this.hook(),this},applying:function(){return this._private.applying},pause:function(){var t=this._private;return t.playing=!1,t.started=!1,this},stop:function(){var t=this._private;return t.playing=!1,t.started=!1,t.stopped=!0,this},rewind:function(){return this.progress(0)},fastforward:function(){return this.progress(1)},time:function(t){var e=this._private;return void 0===t?e.progress*e.duration:this.progress(t/e.duration)},progress:function(t){var e=this._private,n=e.playing;return void 0===t?e.progress:(n&&this.pause(),e.progress=t,e.started=!1,n&&this.play(),this)},completed:function(){return 1===this._private.progress},reverse:function(){var t=this._private,e=t.playing;e&&this.pause(),t.progress=1-t.progress,t.started=!1;var n=function(e,n){var i=t[e];null!=i&&(t[e]=t[n],t[n]=i)};if(n("zoom","startZoom"),n("pan","startPan"),n("position","startPosition"),t.style)for(var i=0;i<t.style.length;i++){var a=t.style[i],r=a.name,o=t.startStyle[r];t.startStyle[r]=a,t.style[i]=o}return e&&this.play(),this},promise:function(t){var e,n=this._private;return e="frame"===t?n.frames:n.completes,new $a((function(t,n){e.push((function(){t()}))}))}}),Ha.complete=Ha.completed,Ha.run=Ha.play,Ha.running=Ha.playing;var Ua={animated:function(){return function(){var t=this,e=void 0!==t.length?t:[t];if(!(this._private.cy||this).styleEnabled())return!1;var n=e[0];return n?n._private.animation.current.length>0:void 0}},clearQueue:function(){return function(){var t=this,e=void 0!==t.length?t:[t];if(!(this._private.cy||this).styleEnabled())return this;for(var n=0;n<e.length;n++)e[n]._private.animation.queue=[];return this}},delay:function(){return function(t,e){return(this._private.cy||this).styleEnabled()?this.animate({delay:t,duration:t,complete:e}):this}},delayAnimation:function(){return function(t,e){return(this._private.cy||this).styleEnabled()?this.animation({delay:t,duration:t,complete:e}):this}},animation:function(){return function(t,e){var n=this,i=void 0!==n.length,a=i?n:[n],r=this._private.cy||this,o=!i,s=!o;if(!r.styleEnabled())return this;var c=r.style();if(t=J({},t,e),0===Object.keys(t).length)return new za(a[0],t);switch(void 0===t.duration&&(t.duration=400),t.duration){case"slow":t.duration=600;break;case"fast":t.duration=200}if(s&&(t.style=c.getPropsList(t.style||t.css),t.css=void 0),s&&null!=t.renderedPosition){var l=t.renderedPosition,u=r.pan(),d=r.zoom();t.position=hn(l,d,u)}if(o&&null!=t.panBy){var h=t.panBy,f=r.pan();t.pan={x:f.x+h.x,y:f.y+h.y}}var g=t.center||t.centre;if(o&&null!=g){var p=r.getCenterPan(g.eles,t.zoom);null!=p&&(t.pan=p)}if(o&&null!=t.fit){var b=t.fit,m=r.getFitViewport(b.eles||b.boundingBox,b.padding);null!=m&&(t.pan=m.pan,t.zoom=m.zoom)}if(o&&R(t.zoom)){var y=r.getZoomedViewport(t.zoom);null!=y?(y.zoomed&&(t.zoom=y.zoom),y.panned&&(t.pan=y.pan)):t.zoom=null}return new za(a[0],t)}},animate:function(){return function(t,e){var n=this,i=void 0!==n.length?n:[n];if(!(this._private.cy||this).styleEnabled())return this;e&&(t=J({},t,e));for(var a=0;a<i.length;a++){var r=i[a],o=r.animated()&&(void 0===t.queue||t.queue);r.animation(t,o?{queue:!0}:void 0).play()}return this}},stop:function(){return function(t,e){var n=this,i=void 0!==n.length?n:[n],a=this._private.cy||this;if(!a.styleEnabled())return this;for(var r=0;r<i.length;r++){for(var o=i[r]._private,s=o.animation.current,c=0;c<s.length;c++){var l=s[c]._private;e&&(l.duration=0)}t&&(o.animation.queue=[]),e||(o.animation.current=[])}return a.notify("draw"),this}}},Va=Array.isArray,qa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Wa=/^\w*$/;function Ya(t,e){if(Va(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!$t(t))||Wa.test(t)||!qa.test(t)||null!=e&&t in Object(e)}var Ga=Ya,Za="[object AsyncFunction]",Ka="[object Function]",Xa="[object GeneratorFunction]",Ja="[object Proxy]";function Qa(t){if(!ct(t))return!1;var e=Nt(t);return e==Ka||e==Xa||e==Za||e==Ja}var tr,er=Qa,nr=ft["__core-js_shared__"],ir=(tr=/[^.]+$/.exec(nr&&nr.keys&&nr.keys.IE_PROTO||""))?"Symbol(src)_1."+tr:"";function ar(t){return!!ir&&ir in t}var rr=ar,or=Function.prototype.toString;function sr(t){if(null!=t){try{return or.call(t)}catch{}try{return t+""}catch{}}return""}var cr=sr,lr=/[\\^$.*+?()[\]{}|]/g,ur=/^\[object .+?Constructor\]$/,dr=Function.prototype,hr=Object.prototype,fr=dr.toString,gr=hr.hasOwnProperty,pr=RegExp("^"+fr.call(gr).replace(lr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function br(t){return!(!ct(t)||rr(t))&&(er(t)?pr:ur).test(cr(t))}var mr=br;function yr(t,e){return null==t?void 0:t[e]}var vr=yr;function wr(t,e){var n=vr(t,e);return mr(n)?n:void 0}var xr=wr,Rr=xr(Object,"create");function _r(){this.__data__=Rr?Rr(null):{},this.size=0}var kr=_r;function Er(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Cr=Er,Sr="__lodash_hash_undefined__",Tr=Object.prototype.hasOwnProperty;function Ar(t){var e=this.__data__;if(Rr){var n=e[t];return n===Sr?void 0:n}return Tr.call(e,t)?e[t]:void 0}var Dr=Ar,Ir=Object.prototype.hasOwnProperty;function Lr(t){var e=this.__data__;return Rr?void 0!==e[t]:Ir.call(e,t)}var Or=Lr,Mr="__lodash_hash_undefined__";function Nr(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Rr&&void 0===e?Mr:e,this}var Br=Nr;function Pr(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}Pr.prototype.clear=kr,Pr.prototype.delete=Cr,Pr.prototype.get=Dr,Pr.prototype.has=Or,Pr.prototype.set=Br;var Fr=Pr;function jr(){this.__data__=[],this.size=0}var $r=jr;function zr(t,e){return t===e||t!=t&&e!=e}var Hr=zr;function Ur(t,e){for(var n=t.length;n--;)if(Hr(t[n][0],e))return n;return-1}var Vr=Ur,qr=Array.prototype.splice;function Wr(t){var e=this.__data__,n=Vr(e,t);return!(n<0||(n==e.length-1?e.pop():qr.call(e,n,1),--this.size,0))}var Yr=Wr;function Gr(t){var e=this.__data__,n=Vr(e,t);return n<0?void 0:e[n][1]}var Zr=Gr;function Kr(t){return Vr(this.__data__,t)>-1}var Xr=Kr;function Jr(t,e){var n=this.__data__,i=Vr(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}var Qr=Jr;function to(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}to.prototype.clear=$r,to.prototype.delete=Yr,to.prototype.get=Zr,to.prototype.has=Xr,to.prototype.set=Qr;var eo=to,no=xr(ft,"Map");function io(){this.size=0,this.__data__={hash:new Fr,map:new(no||eo),string:new Fr}}var ao=io;function ro(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}var oo=ro;function so(t,e){var n=t.__data__;return oo(e)?n["string"==typeof e?"string":"hash"]:n.map}var co=so;function lo(t){var e=co(this,t).delete(t);return this.size-=e?1:0,e}var uo=lo;function ho(t){return co(this,t).get(t)}var fo=ho;function go(t){return co(this,t).has(t)}var po=go;function bo(t,e){var n=co(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}var mo=bo;function yo(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}yo.prototype.clear=ao,yo.prototype.delete=uo,yo.prototype.get=fo,yo.prototype.has=po,yo.prototype.set=mo;var vo=yo,wo="Expected a function";function xo(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(wo);var n=function(){var i=arguments,a=e?e.apply(this,i):i[0],r=n.cache;if(r.has(a))return r.get(a);var o=t.apply(this,i);return n.cache=r.set(a,o)||r,o};return n.cache=new(xo.Cache||vo),n}xo.Cache=vo;var Ro=xo,_o=500;function ko(t){var e=Ro(t,(function(t){return n.size===_o&&n.clear(),t})),n=e.cache;return e}var Eo=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Co=/\\(\\)?/g,So=ko((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(Eo,(function(t,n,i,a){e.push(i?a.replace(Co,"$1"):n||t)})),e})),To=So;function Ao(t,e){for(var n=-1,i=null==t?0:t.length,a=Array(i);++n<i;)a[n]=e(t[n],n,t);return a}var Do=Ao,Io=1/0,Lo=xt?xt.prototype:void 0,Oo=Lo?Lo.toString:void 0;function Mo(t){if("string"==typeof t)return t;if(Va(t))return Do(t,Mo)+"";if($t(t))return Oo?Oo.call(t):"";var e=t+"";return"0"==e&&1/t==-Io?"-0":e}var No=Mo;function Bo(t){return null==t?"":No(t)}var Po=Bo;function Fo(t,e){return Va(t)?t:Ga(t,e)?[t]:To(Po(t))}var jo=Fo,$o=1/0;function zo(t){if("string"==typeof t||$t(t))return t;var e=t+"";return"0"==e&&1/t==-$o?"-0":e}var Ho=zo;function Uo(t,e){for(var n=0,i=(e=jo(e,t)).length;null!=t&&n<i;)t=t[Ho(e[n++])];return n&&n==i?t:void 0}var Vo=Uo;function qo(t,e,n){var i=null==t?void 0:Vo(t,e);return void 0===i?n:i}var Wo=qo,Yo=function(){try{var t=xr(Object,"defineProperty");return t({},"",{}),t}catch{}}(),Go=Yo;function Zo(t,e,n){"__proto__"==e&&Go?Go(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}var Ko=Zo,Xo=Object.prototype.hasOwnProperty;function Jo(t,e,n){var i=t[e];(!Xo.call(t,e)||!Hr(i,n)||void 0===n&&!(e in t))&&Ko(t,e,n)}var Qo=Jo,ts=9007199254740991,es=/^(?:0|[1-9]\d*)$/;function ns(t,e){var n=typeof t;return!!(e=e??ts)&&("number"==n||"symbol"!=n&&es.test(t))&&t>-1&&t%1==0&&t<e}var is=ns;function as(t,e,n,i){if(!ct(t))return t;for(var a=-1,r=(e=jo(e,t)).length,o=r-1,s=t;null!=s&&++a<r;){var c=Ho(e[a]),l=n;if("__proto__"===c||"constructor"===c||"prototype"===c)return t;if(a!=o){var u=s[c];void 0===(l=i?i(u,c,s):void 0)&&(l=ct(u)?u:is(e[a+1])?[]:{})}Qo(s,c,l),s=s[c]}return t}var rs=as;function os(t,e,n){return null==t?t:rs(t,e,n)}var ss=os;function cs(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n<i;)e[n]=t[n];return e}var ls=cs;function us(t){return Va(t)?Do(t,Ho):$t(t)?[t]:ls(To(Po(t)))}var ds=us,hs={eventAliasesOn:function(t){var e=t;e.addListener=e.listen=e.bind=e.on,e.unlisten=e.unbind=e.off=e.removeListener,e.trigger=e.emit,e.pon=e.promiseOn=function(t,e){var n=this,i=Array.prototype.slice.call(arguments,0);return new $a((function(t,e){var a=function(e){n.off.apply(n,o),t(e)},r=i.concat([a]),o=r.concat([]);n.on.apply(n,r)}))}}},fs={};[Ua,{data:function(t){return t=J({},{field:"data",bindingEvent:"data",allowBinding:!1,allowSetting:!1,allowGetting:!1,settingEvent:"data",settingTriggersEvent:!1,triggerFnName:"trigger",immutableKeys:{},updateStyle:!1,beforeGet:function(t){},beforeSet:function(t,e){},onSet:function(t){},canSet:function(t){return!0}},t),function(e,n){var i=t,a=this,o=void 0!==a.length,s=o?a:[a],c=o?a[0]:a;if(v(e)){var l,u=-1!==e.indexOf(".")&&ds(e);if(i.allowGetting&&void 0===n)return c&&(i.beforeGet(c),l=u&&void 0===c._private[i.field][e]?Wo(c._private[i.field],u):c._private[i.field][e]),l;if(i.allowSetting&&void 0!==n&&!i.immutableKeys[e]){var d=r({},e,n);i.beforeSet(a,d);for(var h=0,f=s.length;h<f;h++){var g=s[h];i.canSet(g)&&(u&&void 0===c._private[i.field][e]?ss(g._private[i.field],u,n):g._private[i.field][e]=n)}i.updateStyle&&a.updateStyle(),i.onSet(a),i.settingTriggersEvent&&a[i.triggerFnName](i.settingEvent)}}else if(i.allowSetting&&R(e)){var p,b,m=e,y=Object.keys(m);i.beforeSet(a,m);for(var x=0;x<y.length;x++)if(b=m[p=y[x]],!i.immutableKeys[p])for(var _=0;_<s.length;_++){var k=s[_];i.canSet(k)&&(k._private[i.field][p]=b)}i.updateStyle&&a.updateStyle(),i.onSet(a),i.settingTriggersEvent&&a[i.triggerFnName](i.settingEvent)}else if(i.allowBinding&&w(e)){var E=e;a.on(i.bindingEvent,E)}else if(i.allowGetting&&void 0===e){var C;return c&&(i.beforeGet(c),C=c._private[i.field]),C}return a}},removeData:function(t){return t=J({},{field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!1,immutableKeys:{}},t),function(e){var n=t,i=this,a=void 0!==i.length?i:[i];if(v(e)){for(var r=e.split(/\s+/),o=r.length,s=0;s<o;s++){var c=r[s];if(!O(c)&&!n.immutableKeys[c])for(var l=0,u=a.length;l<u;l++)a[l]._private[n.field][c]=void 0}n.triggerEvent&&i[n.triggerFnName](n.event)}else if(void 0===e){for(var d=0,h=a.length;d<h;d++)for(var f=a[d]._private[n.field],g=Object.keys(f),p=0;p<g.length;p++){var b=g[p];!n.immutableKeys[b]&&(f[b]=void 0)}n.triggerEvent&&i[n.triggerFnName](n.event)}return i}}},hs].forEach((function(t){J(fs,t)}));var gs={animate:fs.animate(),animation:fs.animation(),animated:fs.animated(),clearQueue:fs.clearQueue(),delay:fs.delay(),delayAnimation:fs.delayAnimation(),stop:fs.stop()},ps={classes:function(t){var e=this;if(void 0===t){var n=[];return e[0]._private.classes.forEach((function(t){return n.push(t)})),n}x(t)||(t=(t||"").match(/\S+/g)||[]);for(var i=[],a=new Ve(t),r=0;r<e.length;r++){for(var o=e[r],s=o._private,c=s.classes,l=!1,u=0;u<t.length;u++){var d=t[u];if(!c.has(d)){l=!0;break}}l||(l=c.size!==t.length),l&&(s.classes=a,i.push(o))}return i.length>0&&this.spawn(i).updateStyle().emit("class"),e},addClass:function(t){return this.toggleClass(t,!0)},hasClass:function(t){var e=this[0];return null!=e&&e._private.classes.has(t)},toggleClass:function(t,e){x(t)||(t=t.match(/\S+/g)||[]);for(var n=this,i=void 0===e,a=[],r=0,o=n.length;r<o;r++)for(var s=n[r],c=s._private.classes,l=!1,u=0;u<t.length;u++){var d=t[u],h=c.has(d),f=!1;e||i&&!h?(c.add(d),f=!0):(!e||i&&h)&&(c.delete(d),f=!0),!l&&f&&(a.push(s),l=!0)}return a.length>0&&this.spawn(a).updateStyle().emit("class"),n},removeClass:function(t){return this.toggleClass(t,!1)},flashClass:function(t,e){var n=this;if(null==e)e=250;else if(0===e)return n;return n.addClass(t),setTimeout((function(){n.removeClass(t)}),e),n}};ps.className=ps.classNames=ps.classes;var bs={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:"\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'",number:U,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};bs.variable="(?:[\\w-.]|(?:\\\\"+bs.metaChar+"))+",bs.className="(?:[\\w-]|(?:\\\\"+bs.metaChar+"))+",bs.value=bs.string+"|"+bs.number,bs.id=bs.variable,function(){var t,e,n;for(t=bs.comparatorOp.split("|"),n=0;n<t.length;n++)e=t[n],bs.comparatorOp+="|@"+e;for(t=bs.comparatorOp.split("|"),n=0;n<t.length;n++)!((e=t[n]).indexOf("!")>=0)&&"="!==e&&(bs.comparatorOp+="|\\!"+e)}();var ms=function(){return{checks:[]}},ys={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},vs=[{selector:":selected",matches:function(t){return t.selected()}},{selector:":unselected",matches:function(t){return!t.selected()}},{selector:":selectable",matches:function(t){return t.selectable()}},{selector:":unselectable",matches:function(t){return!t.selectable()}},{selector:":locked",matches:function(t){return t.locked()}},{selector:":unlocked",matches:function(t){return!t.locked()}},{selector:":visible",matches:function(t){return t.visible()}},{selector:":hidden",matches:function(t){return!t.visible()}},{selector:":transparent",matches:function(t){return t.transparent()}},{selector:":grabbed",matches:function(t){return t.grabbed()}},{selector:":free",matches:function(t){return!t.grabbed()}},{selector:":removed",matches:function(t){return t.removed()}},{selector:":inside",matches:function(t){return!t.removed()}},{selector:":grabbable",matches:function(t){return t.grabbable()}},{selector:":ungrabbable",matches:function(t){return!t.grabbable()}},{selector:":animated",matches:function(t){return t.animated()}},{selector:":unanimated",matches:function(t){return!t.animated()}},{selector:":parent",matches:function(t){return t.isParent()}},{selector:":childless",matches:function(t){return t.isChildless()}},{selector:":child",matches:function(t){return t.isChild()}},{selector:":orphan",matches:function(t){return t.isOrphan()}},{selector:":nonorphan",matches:function(t){return t.isChild()}},{selector:":compound",matches:function(t){return t.isNode()?t.isParent():t.source().isParent()||t.target().isParent()}},{selector:":loop",matches:function(t){return t.isLoop()}},{selector:":simple",matches:function(t){return t.isSimple()}},{selector:":active",matches:function(t){return t.active()}},{selector:":inactive",matches:function(t){return!t.active()}},{selector:":backgrounding",matches:function(t){return t.backgrounding()}},{selector:":nonbackgrounding",matches:function(t){return!t.backgrounding()}}].sort((function(t,e){return X(t.selector,e.selector)})),ws=function(){for(var t,e={},n=0;n<vs.length;n++)e[(t=vs[n]).selector]=t.matches;return e}(),xs=function(t,e){return ws[t](e)},Rs="("+vs.map((function(t){return t.selector})).join("|")+")",_s=function(t){return t.replace(new RegExp("\\\\("+bs.metaChar+")","g"),(function(t,e){return e}))},ks=function(t,e,n){t[t.length-1]=n},Es=[{name:"group",query:!0,regex:"("+bs.group+")",populate:function(t,e,n){var i=o(n,1)[0];e.checks.push({type:ys.GROUP,value:"*"===i?i:i+"s"})}},{name:"state",query:!0,regex:Rs,populate:function(t,e,n){var i=o(n,1)[0];e.checks.push({type:ys.STATE,value:i})}},{name:"id",query:!0,regex:"\\#("+bs.id+")",populate:function(t,e,n){var i=o(n,1)[0];e.checks.push({type:ys.ID,value:_s(i)})}},{name:"className",query:!0,regex:"\\.("+bs.className+")",populate:function(t,e,n){var i=o(n,1)[0];e.checks.push({type:ys.CLASS,value:_s(i)})}},{name:"dataExists",query:!0,regex:"\\[\\s*("+bs.variable+")\\s*\\]",populate:function(t,e,n){var i=o(n,1)[0];e.checks.push({type:ys.DATA_EXIST,field:_s(i)})}},{name:"dataCompare",query:!0,regex:"\\[\\s*("+bs.variable+")\\s*("+bs.comparatorOp+")\\s*("+bs.value+")\\s*\\]",populate:function(t,e,n){var i=o(n,3),a=i[0],r=i[1],s=i[2];s=null!=new RegExp("^"+bs.string+"$").exec(s)?s.substring(1,s.length-1):parseFloat(s),e.checks.push({type:ys.DATA_COMPARE,field:_s(a),operator:r,value:s})}},{name:"dataBool",query:!0,regex:"\\[\\s*("+bs.boolOp+")\\s*("+bs.variable+")\\s*\\]",populate:function(t,e,n){var i=o(n,2),a=i[0],r=i[1];e.checks.push({type:ys.DATA_BOOL,field:_s(r),operator:a})}},{name:"metaCompare",query:!0,regex:"\\[\\[\\s*("+bs.meta+")\\s*("+bs.comparatorOp+")\\s*("+bs.number+")\\s*\\]\\]",populate:function(t,e,n){var i=o(n,3),a=i[0],r=i[1],s=i[2];e.checks.push({type:ys.META_COMPARE,field:_s(a),operator:r,value:parseFloat(s)})}},{name:"nextQuery",separator:!0,regex:bs.separator,populate:function(t,e){var n=t.currentSubject,i=t.edgeCount,a=t.compoundCount,r=t[t.length-1];return null!=n&&(r.subject=n,t.currentSubject=null),r.edgeCount=i,r.compoundCount=a,t.edgeCount=0,t.compoundCount=0,t[t.length++]=ms()}},{name:"directedEdge",separator:!0,regex:bs.directedEdge,populate:function(t,e){if(null==t.currentSubject){var n=ms(),i=e,a=ms();return n.checks.push({type:ys.DIRECTED_EDGE,source:i,target:a}),ks(t,e,n),t.edgeCount++,a}var r=ms(),o=e,s=ms();return r.checks.push({type:ys.NODE_SOURCE,source:o,target:s}),ks(t,e,r),t.edgeCount++,s}},{name:"undirectedEdge",separator:!0,regex:bs.undirectedEdge,populate:function(t,e){if(null==t.currentSubject){var n=ms(),i=e,a=ms();return n.checks.push({type:ys.UNDIRECTED_EDGE,nodes:[i,a]}),ks(t,e,n),t.edgeCount++,a}var r=ms(),o=e,s=ms();return r.checks.push({type:ys.NODE_NEIGHBOR,node:o,neighbor:s}),ks(t,e,r),s}},{name:"child",separator:!0,regex:bs.child,populate:function(t,e){if(null==t.currentSubject){var n=ms(),i=ms(),a=t[t.length-1];return n.checks.push({type:ys.CHILD,parent:a,child:i}),ks(t,e,n),t.compoundCount++,i}if(t.currentSubject===e){var r=ms(),o=t[t.length-1],s=ms(),c=ms(),l=ms(),u=ms();return r.checks.push({type:ys.COMPOUND_SPLIT,left:o,right:s,subject:c}),c.checks=e.checks,e.checks=[{type:ys.TRUE}],u.checks.push({type:ys.TRUE}),s.checks.push({type:ys.PARENT,parent:u,child:l}),ks(t,o,r),t.currentSubject=c,t.compoundCount++,l}var d=ms(),h=ms(),f=[{type:ys.PARENT,parent:d,child:h}];return d.checks=e.checks,e.checks=f,t.compoundCount++,h}},{name:"descendant",separator:!0,regex:bs.descendant,populate:function(t,e){if(null==t.currentSubject){var n=ms(),i=ms(),a=t[t.length-1];return n.checks.push({type:ys.DESCENDANT,ancestor:a,descendant:i}),ks(t,e,n),t.compoundCount++,i}if(t.currentSubject===e){var r=ms(),o=t[t.length-1],s=ms(),c=ms(),l=ms(),u=ms();return r.checks.push({type:ys.COMPOUND_SPLIT,left:o,right:s,subject:c}),c.checks=e.checks,e.checks=[{type:ys.TRUE}],u.checks.push({type:ys.TRUE}),s.checks.push({type:ys.ANCESTOR,ancestor:u,descendant:l}),ks(t,o,r),t.currentSubject=c,t.compoundCount++,l}var d=ms(),h=ms(),f=[{type:ys.ANCESTOR,ancestor:d,descendant:h}];return d.checks=e.checks,e.checks=f,t.compoundCount++,h}},{name:"subject",modifier:!0,regex:bs.subject,populate:function(t,e){if(null!=t.currentSubject&&t.currentSubject!==e)return Se("Redefinition of subject in selector `"+t.toString()+"`"),!1;t.currentSubject=e;var n=t[t.length-1].checks[0],i=null==n?null:n.type;i===ys.DIRECTED_EDGE?n.type=ys.NODE_TARGET:i===ys.UNDIRECTED_EDGE&&(n.type=ys.NODE_NEIGHBOR,n.node=n.nodes[1],n.neighbor=n.nodes[0],n.nodes=null)}}];Es.forEach((function(t){return t.regexObj=new RegExp("^"+t.regex)}));var Cs=function(t){for(var e,n,i,a=0;a<Es.length;a++){var r=Es[a],o=r.name,s=t.match(r.regexObj);if(null!=s){n=s,e=r,i=o;var c=s[0];t=t.substring(c.length);break}}return{expr:e,match:n,name:i,remaining:t}},Ss=function(t){var e=t.match(/^\s+/);if(e){var n=e[0];t=t.substring(n.length)}return t},Ts={parse:function(t){var e=this,n=e.inputText=t,i=e[0]=ms();for(e.length=1,n=Ss(n);;){var a=Cs(n);if(null==a.expr)return Se("The selector `"+t+"`is invalid"),!1;var r=a.match.slice(1),o=a.expr.populate(e,i,r);if(!1===o)return!1;if(null!=o&&(i=o),(n=a.remaining).match(/^\s*$/))break}var s=e[e.length-1];null!=e.currentSubject&&(s.subject=e.currentSubject),s.edgeCount=e.edgeCount,s.compoundCount=e.compoundCount;for(var c=0;c<e.length;c++){var l=e[c];if(l.compoundCount>0&&l.edgeCount>0)return Se("The selector `"+t+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(l.edgeCount>1)return Se("The selector `"+t+"` is invalid because it uses multiple edge selectors"),!1;1===l.edgeCount&&Se("The selector `"+t+"` 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},toString:function(){if(null!=this.toStringCache)return this.toStringCache;for(var t=function(t){return t??""},e=function(e){return v(e)?'"'+e+'"':t(e)},n=function(t){return" "+t+" "},i=function(i,r){var o=i.type,s=i.value;switch(o){case ys.GROUP:var c=t(s);return c.substring(0,c.length-1);case ys.DATA_COMPARE:var l=i.field,u=i.operator;return"["+l+n(t(u))+e(s)+"]";case ys.DATA_BOOL:var d=i.operator,h=i.field;return"["+t(d)+h+"]";case ys.DATA_EXIST:return"["+i.field+"]";case ys.META_COMPARE:var f=i.operator;return"[["+i.field+n(t(f))+e(s)+"]]";case ys.STATE:return s;case ys.ID:return"#"+s;case ys.CLASS:return"."+s;case ys.PARENT:case ys.CHILD:return a(i.parent,r)+n(">")+a(i.child,r);case ys.ANCESTOR:case ys.DESCENDANT:return a(i.ancestor,r)+" "+a(i.descendant,r);case ys.COMPOUND_SPLIT:var g=a(i.left,r),p=a(i.subject,r),b=a(i.right,r);return g+(g.length>0?" ":"")+p+b;case ys.TRUE:return""}},a=function(t,e){return t.checks.reduce((function(n,a,r){return n+(e===t&&0===r?"$":"")+i(a,e)}),"")},r="",o=0;o<this.length;o++){var s=this[o];r+=a(s,s.subject),this.length>1&&o<this.length-1&&(r+=", ")}return this.toStringCache=r,r}},As=function(t,e,n){var i,a,r,o=v(t),s=k(t),c=v(n),l=!1,u=!1,d=!1;switch(e.indexOf("!")>=0&&(e=e.replace("!",""),u=!0),e.indexOf("@")>=0&&(e=e.replace("@",""),l=!0),(o||c||l)&&(a=o||s?""+t:"",r=""+n),l&&(t=a=a.toLowerCase(),n=r=r.toLowerCase()),e){case"*=":i=a.indexOf(r)>=0;break;case"$=":i=a.indexOf(r,a.length-r.length)>=0;break;case"^=":i=0===a.indexOf(r);break;case"=":i=t===n;break;case">":d=!0,i=t>n;break;case">=":d=!0,i=t>=n;break;case"<":d=!0,i=t<n;break;case"<=":d=!0,i=t<=n;break;default:i=!1}return u&&(null!=t||!d)&&(i=!i),i},Ds=function(t,e){switch(e){case"?":return!!t;case"!":return!t;case"^":return void 0===t}},Is=function(t){return void 0!==t},Ls=function(t,e){return t.data(e)},Os=function(t,e){return t[e]()},Ms=[],Ns=function(t,e){return t.checks.every((function(t){return Ms[t.type](t,e)}))};Ms[ys.GROUP]=function(t,e){var n=t.value;return"*"===n||n===e.group()},Ms[ys.STATE]=function(t,e){var n=t.value;return xs(n,e)},Ms[ys.ID]=function(t,e){var n=t.value;return e.id()===n},Ms[ys.CLASS]=function(t,e){var n=t.value;return e.hasClass(n)},Ms[ys.META_COMPARE]=function(t,e){var n=t.field,i=t.operator,a=t.value;return As(Os(e,n),i,a)},Ms[ys.DATA_COMPARE]=function(t,e){var n=t.field,i=t.operator,a=t.value;return As(Ls(e,n),i,a)},Ms[ys.DATA_BOOL]=function(t,e){var n=t.field,i=t.operator;return Ds(Ls(e,n),i)},Ms[ys.DATA_EXIST]=function(t,e){var n=t.field;return t.operator,Is(Ls(e,n))},Ms[ys.UNDIRECTED_EDGE]=function(t,e){var n=t.nodes[0],i=t.nodes[1],a=e.source(),r=e.target();return Ns(n,a)&&Ns(i,r)||Ns(i,a)&&Ns(n,r)},Ms[ys.NODE_NEIGHBOR]=function(t,e){return Ns(t.node,e)&&e.neighborhood().some((function(e){return e.isNode()&&Ns(t.neighbor,e)}))},Ms[ys.DIRECTED_EDGE]=function(t,e){return Ns(t.source,e.source())&&Ns(t.target,e.target())},Ms[ys.NODE_SOURCE]=function(t,e){return Ns(t.source,e)&&e.outgoers().some((function(e){return e.isNode()&&Ns(t.target,e)}))},Ms[ys.NODE_TARGET]=function(t,e){return Ns(t.target,e)&&e.incomers().some((function(e){return e.isNode()&&Ns(t.source,e)}))},Ms[ys.CHILD]=function(t,e){return Ns(t.child,e)&&Ns(t.parent,e.parent())},Ms[ys.PARENT]=function(t,e){return Ns(t.parent,e)&&e.children().some((function(e){return Ns(t.child,e)}))},Ms[ys.DESCENDANT]=function(t,e){return Ns(t.descendant,e)&&e.ancestors().some((function(e){return Ns(t.ancestor,e)}))},Ms[ys.ANCESTOR]=function(t,e){return Ns(t.ancestor,e)&&e.descendants().some((function(e){return Ns(t.descendant,e)}))},Ms[ys.COMPOUND_SPLIT]=function(t,e){return Ns(t.subject,e)&&Ns(t.left,e)&&Ns(t.right,e)},Ms[ys.TRUE]=function(){return!0},Ms[ys.COLLECTION]=function(t,e){return t.value.has(e)},Ms[ys.FILTER]=function(t,e){return(0,t.value)(e)};var Bs={matches:function(t){for(var e=this,n=0;n<e.length;n++){var i=e[n];if(Ns(i,t))return!0}return!1},filter:function(t){var e=this;if(1===e.length&&1===e[0].checks.length&&e[0].checks[0].type===ys.ID)return t.getElementById(e[0].checks[0].value).collection();var n=function(t){for(var n=0;n<e.length;n++){var i=e[n];if(Ns(i,t))return!0}return!1};return null==e.text()&&(n=function(){return!0}),t.filter(n)}},Ps=function(t){this.inputText=t,this.currentSubject=null,this.compoundCount=0,this.edgeCount=0,this.length=0,null==t||v(t)&&t.match(/^\s*$/)||(S(t)?this.addQuery({checks:[{type:ys.COLLECTION,value:t.collection()}]}):w(t)?this.addQuery({checks:[{type:ys.FILTER,value:t}]}):v(t)?this.parse(t)||(this.invalid=!0):Ee("A selector must be created from a string; found "))},Fs=Ps.prototype;[Ts,Bs].forEach((function(t){return J(Fs,t)})),Fs.text=function(){return this.inputText},Fs.size=function(){return this.length},Fs.eq=function(t){return this[t]},Fs.sameText=function(t){return!this.invalid&&!t.invalid&&this.text()===t.text()},Fs.addQuery=function(t){this[this.length++]=t},Fs.selector=Fs.toString;var js={allAre:function(t){var e=new Ps(t);return this.every((function(t){return e.matches(t)}))},is:function(t){var e=new Ps(t);return this.some((function(t){return e.matches(t)}))},some:function(t,e){for(var n=0;n<this.length;n++)if(e?t.apply(e,[this[n],n,this]):t(this[n],n,this))return!0;return!1},every:function(t,e){for(var n=0;n<this.length;n++)if(!(e?t.apply(e,[this[n],n,this]):t(this[n],n,this)))return!1;return!0},same:function(t){if(this===t)return!0;t=this.cy().collection(t);var e=this.length;return e===t.length&&(1===e?this[0]===t[0]:this.every((function(e){return t.hasElementWithId(e.id())})))},anySame:function(t){return t=this.cy().collection(t),this.some((function(e){return t.hasElementWithId(e.id())}))},allAreNeighbors:function(t){t=this.cy().collection(t);var e=this.neighborhood();return t.every((function(t){return e.hasElementWithId(t.id())}))},contains:function(t){t=this.cy().collection(t);var e=this;return t.every((function(t){return e.hasElementWithId(t.id())}))}};js.allAreNeighbours=js.allAreNeighbors,js.has=js.contains,js.equal=js.equals=js.same;var $s,zs,Hs=function(t,e){return function(n,i,a,r){var o,s=n,c=this;if(null==s?o="":S(s)&&1===s.length&&(o=s.id()),1===c.length&&o){var l=c[0]._private,u=l.traversalCache=l.traversalCache||{},d=u[e]=u[e]||[],h=ge(o);return d[h]||(d[h]=t.call(c,n,i,a,r))}return t.call(c,n,i,a,r)}},Us={parent:function(t){var e=[];if(1===this.length){var n=this[0]._private.parent;if(n)return n}for(var i=0;i<this.length;i++){var a=this[i]._private.parent;a&&e.push(a)}return this.spawn(e,!0).filter(t)},parents:function(t){for(var e=[],n=this.parent();n.nonempty();){for(var i=0;i<n.length;i++){var a=n[i];e.push(a)}n=n.parent()}return this.spawn(e,!0).filter(t)},commonAncestors:function(t){for(var e,n=0;n<this.length;n++){var i=this[n].parents();e=(e=e||i).intersect(i)}return e.filter(t)},orphans:function(t){return this.stdFilter((function(t){return t.isOrphan()})).filter(t)},nonorphans:function(t){return this.stdFilter((function(t){return t.isChild()})).filter(t)},children:Hs((function(t){for(var e=[],n=0;n<this.length;n++)for(var i=this[n]._private.children,a=0;a<i.length;a++)e.push(i[a]);return this.spawn(e,!0).filter(t)}),"children"),siblings:function(t){return this.parent().children().not(this).filter(t)},isParent:function(){var t=this[0];if(t)return t.isNode()&&0!==t._private.children.length},isChildless:function(){var t=this[0];if(t)return t.isNode()&&0===t._private.children.length},isChild:function(){var t=this[0];if(t)return t.isNode()&&null!=t._private.parent},isOrphan:function(){var t=this[0];if(t)return t.isNode()&&null==t._private.parent},descendants:function(t){var e=[];function n(t){for(var i=0;i<t.length;i++){var a=t[i];e.push(a),a.children().nonempty()&&n(a.children())}}return n(this.children()),this.spawn(e,!0).filter(t)}};function Vs(t,e,n,i){for(var a=[],r=new Ve,o=t.cy().hasCompoundNodes(),s=0;s<t.length;s++){var c=t[s];n?a.push(c):o&&i(a,r,c)}for(;a.length>0;){var l=a.shift();e(l),r.add(l.id()),o&&i(a,r,l)}return t}function qs(t,e,n){if(n.isParent())for(var i=n._private.children,a=0;a<i.length;a++){var r=i[a];e.has(r.id())||t.push(r)}}function Ws(t,e,n){if(n.isChild()){var i=n._private.parent;e.has(i.id())||t.push(i)}}function Ys(t,e,n){Ws(t,e,n),qs(t,e,n)}Us.forEachDown=function(t){return Vs(this,t,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],qs)},Us.forEachUp=function(t){return Vs(this,t,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],Ws)},Us.forEachUpAndDown=function(t){return Vs(this,t,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],Ys)},Us.ancestors=Us.parents,($s=zs={data:fs.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:fs.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:fs.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:fs.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:fs.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:fs.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var t=this[0];if(t)return t._private.data.id}}).attr=$s.data,$s.removeAttr=$s.removeData;var Gs=zs,Zs={};function Ks(t){return function(e){var n=this;if(void 0===e&&(e=!0),0===n.length);else if(n.isNode()&&!n.removed()){for(var i=0,a=n[0],r=a._private.edges,o=0;o<r.length;o++){var s=r[o];!e&&s.isLoop()||(i+=t(a,s))}return i}}}function Xs(t,e){return function(n){for(var i,a=this.nodes(),r=0;r<a.length;r++){var o=a[r][t](n);void 0!==o&&(void 0===i||e(o,i))&&(i=o)}return i}}J(Zs,{degree:Ks((function(t,e){return e.source().same(e.target())?2:1})),indegree:Ks((function(t,e){return e.target().same(t)?1:0})),outdegree:Ks((function(t,e){return e.source().same(t)?1:0}))}),J(Zs,{minDegree:Xs("degree",(function(t,e){return t<e})),maxDegree:Xs("degree",(function(t,e){return t>e})),minIndegree:Xs("indegree",(function(t,e){return t<e})),maxIndegree:Xs("indegree",(function(t,e){return t>e})),minOutdegree:Xs("outdegree",(function(t,e){return t<e})),maxOutdegree:Xs("outdegree",(function(t,e){return t>e}))}),J(Zs,{totalDegree:function(t){for(var e=0,n=this.nodes(),i=0;i<n.length;i++)e+=n[i].degree(t);return e}});var Js,Qs,tc=function(t,e,n){for(var i=0;i<t.length;i++){var a=t[i];if(!a.locked()){var r=a._private.position,o={x:null!=e.x?e.x-r.x:0,y:null!=e.y?e.y-r.y:0};a.isParent()&&!(0===o.x&&0===o.y)&&a.children().shift(o,n),a.dirtyBoundingBoxCache()}}},ec={field:"position",bindingEvent:"position",allowBinding:!0,allowSetting:!0,settingEvent:"position",settingTriggersEvent:!0,triggerFnName:"emitAndNotify",allowGetting:!0,validKeys:["x","y"],beforeGet:function(t){t.updateCompoundBounds()},beforeSet:function(t,e){tc(t,e,!1)},onSet:function(t){t.dirtyCompoundBoundsCache()},canSet:function(t){return!t.locked()}};(Js=Qs={position:fs.data(ec),silentPosition:fs.data(J({},ec,{allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!1,beforeSet:function(t,e){tc(t,e,!0)},onSet:function(t){t.dirtyCompoundBoundsCache()}})),positions:function(t,e){if(R(t))e?this.silentPosition(t):this.position(t);else if(w(t)){var n=t,i=this.cy();i.startBatch();for(var a=0;a<this.length;a++){var r=this[a],o=void 0;(o=n(r,a))&&(e?r.silentPosition(o):r.position(o))}i.endBatch()}return this},silentPositions:function(t){return this.positions(t,!0)},shift:function(t,e,n){var i;if(R(t)?(i={x:k(t.x)?t.x:0,y:k(t.y)?t.y:0},n=e):v(t)&&k(e)&&((i={x:0,y:0})[t]=e),null!=i){var a=this.cy();a.startBatch();for(var r=0;r<this.length;r++){var o=this[r];if(!(a.hasCompoundNodes()&&o.isChild()&&o.ancestors().anySame(this))){var s=o.position(),c={x:s.x+i.x,y:s.y+i.y};n?o.silentPosition(c):o.position(c)}}a.endBatch()}return this},silentShift:function(t,e){return R(t)?this.shift(t,!0):v(t)&&k(e)&&this.shift(t,e,!0),this},renderedPosition:function(t,e){var n=this[0],i=this.cy(),a=i.zoom(),r=i.pan(),o=R(t)?t:void 0,s=void 0!==o||void 0!==e&&v(t);if(n&&n.isNode()){if(!s){var c=n.position();return o=dn(c,a,r),void 0===t?o:o[t]}for(var l=0;l<this.length;l++){var u=this[l];void 0!==e?u.position(t,(e-r[t])/a):void 0!==o&&u.position(hn(o,a,r))}}else if(!s)return;return this},relativePosition:function(t,e){var n=this[0],i=this.cy(),a=R(t)?t:void 0,r=void 0!==a||void 0!==e&&v(t),o=i.hasCompoundNodes();if(n&&n.isNode()){if(!r){var s=n.position(),c=o?n.parent():null,l=c&&c.length>0,u=l;l&&(c=c[0]);var d=u?c.position():{x:0,y:0};return a={x:s.x-d.x,y:s.y-d.y},void 0===t?a:a[t]}for(var h=0;h<this.length;h++){var f=this[h],g=o?f.parent():null,p=g&&g.length>0,b=p;p&&(g=g[0]);var m=b?g.position():{x:0,y:0};void 0!==e?f.position(t,e+m[t]):void 0!==a&&f.position({x:a.x+m.x,y:a.y+m.y})}}else if(!r)return;return this}}).modelPosition=Js.point=Js.position,Js.modelPositions=Js.points=Js.positions,Js.renderedPoint=Js.renderedPosition,Js.relativePoint=Js.relativePosition;var nc,ic,ac=Qs;nc=ic={},ic.renderedBoundingBox=function(t){var e=this.boundingBox(t),n=this.cy(),i=n.zoom(),a=n.pan(),r=e.x1*i+a.x,o=e.x2*i+a.x,s=e.y1*i+a.y,c=e.y2*i+a.y;return{x1:r,x2:o,y1:s,y2:c,w:o-r,h:c-s}},ic.dirtyCompoundBoundsCache=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.cy();return e.styleEnabled()&&e.hasCompoundNodes()?(this.forEachUp((function(e){if(e.isParent()){var n=e._private;n.compoundBoundsClean=!1,n.bbCache=null,t||e.emitAndNotify("bounds")}})),this):this},ic.updateCompoundBounds=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;if(!t&&e.batching())return this;function n(t){if(t.isParent()){var e=t._private,n=t.children(),i="include"===t.pstyle("compound-sizing-wrt-labels").value,a={width:{val:t.pstyle("min-width").pfValue,left:t.pstyle("min-width-bias-left"),right:t.pstyle("min-width-bias-right")},height:{val:t.pstyle("min-height").pfValue,top:t.pstyle("min-height-bias-top"),bottom:t.pstyle("min-height-bias-bottom")}},r=n.boundingBox({includeLabels:i,includeOverlays:!1,useCache:!1}),o=e.position;(0===r.w||0===r.h)&&((r={w:t.pstyle("width").pfValue,h:t.pstyle("height").pfValue}).x1=o.x-r.w/2,r.x2=o.x+r.w/2,r.y1=o.y-r.h/2,r.y2=o.y+r.h/2);var s=a.width.left.value;"px"===a.width.left.units&&a.width.val>0&&(s=100*s/a.width.val);var c=a.width.right.value;"px"===a.width.right.units&&a.width.val>0&&(c=100*c/a.width.val);var l=a.height.top.value;"px"===a.height.top.units&&a.height.val>0&&(l=100*l/a.height.val);var u=a.height.bottom.value;"px"===a.height.bottom.units&&a.height.val>0&&(u=100*u/a.height.val);var d=m(a.width.val-r.w,s,c),h=d.biasDiff,f=d.biasComplementDiff,g=m(a.height.val-r.h,l,u),p=g.biasDiff,b=g.biasComplementDiff;e.autoPadding=y(r.w,r.h,t.pstyle("padding"),t.pstyle("padding-relative-to").value),e.autoWidth=Math.max(r.w,a.width.val),o.x=(-h+r.x1+r.x2+f)/2,e.autoHeight=Math.max(r.h,a.height.val),o.y=(-p+r.y1+r.y2+b)/2}function m(t,e,n){var i=0,a=0,r=e+n;return t>0&&r>0&&(i=e/r*t,a=n/r*t),{biasDiff:i,biasComplementDiff:a}}function y(t,e,n,i){if("%"!==n.units)return"px"===n.units?n.pfValue:0;switch(i){case"width":return t>0?n.pfValue*t:0;case"height":return e>0?n.pfValue*e:0;case"average":return t>0&&e>0?n.pfValue*(t+e)/2:0;case"min":return t>0&&e>0?t>e?n.pfValue*e:n.pfValue*t:0;case"max":return t>0&&e>0?t>e?n.pfValue*t:n.pfValue*e:0;default:return 0}}}for(var i=0;i<this.length;i++){var a=this[i],r=a._private;(!r.compoundBoundsClean||t)&&(n(a),e.batching()||(r.compoundBoundsClean=!0))}return this};var rc=function(t){return t===1/0||t===-1/0?0:t},oc=function(t,e,n,i,a){i-e==0||a-n==0||null==e||null==n||null==i||null==a||(t.x1=e<t.x1?e:t.x1,t.x2=i>t.x2?i:t.x2,t.y1=n<t.y1?n:t.y1,t.y2=a>t.y2?a:t.y2,t.w=t.x2-t.x1,t.h=t.y2-t.y1)},sc=function(t,e){return null==e?t:oc(t,e.x1,e.y1,e.x2,e.y2)},cc=function(t,e,n){return Fe(t,e,n)},lc=function(t,e,n){if(!e.cy().headless()){var i,a,r=e._private,o=r.rstyle,s=o.arrowWidth/2;if("none"!==e.pstyle(n+"-arrow-shape").value){"source"===n?(i=o.srcX,a=o.srcY):"target"===n?(i=o.tgtX,a=o.tgtY):(i=o.midX,a=o.midY);var c=r.arrowBounds=r.arrowBounds||{},l=c[n]=c[n]||{};l.x1=i-s,l.y1=a-s,l.x2=i+s,l.y2=a+s,l.w=l.x2-l.x1,l.h=l.y2-l.y1,Mn(l,1),oc(t,l.x1,l.y1,l.x2,l.y2)}}},uc=function(t,e,n){if(!e.cy().headless()){var i;i=n?n+"-":"";var a=e._private,r=a.rstyle;if(e.pstyle(i+"label").strValue){var o,s,c,l,u=e.pstyle("text-halign"),d=e.pstyle("text-valign"),h=cc(r,"labelWidth",n),f=cc(r,"labelHeight",n),g=cc(r,"labelX",n),p=cc(r,"labelY",n),b=e.pstyle(i+"text-margin-x").pfValue,m=e.pstyle(i+"text-margin-y").pfValue,y=e.isEdge(),v=e.pstyle(i+"text-rotation"),w=e.pstyle("text-outline-width").pfValue,x=e.pstyle("text-border-width").pfValue/2,R=e.pstyle("text-background-padding").pfValue,_=2,k=f,E=h,C=E/2,S=k/2;if(y)o=g-C,s=g+C,c=p-S,l=p+S;else{switch(u.value){case"left":o=g-E,s=g;break;case"center":o=g-C,s=g+C;break;case"right":o=g,s=g+E}switch(d.value){case"top":c=p-k,l=p;break;case"center":c=p-S,l=p+S;break;case"bottom":c=p,l=p+k}}o+=b-Math.max(w,x)-R-_,s+=b+Math.max(w,x)+R+_,c+=m-Math.max(w,x)-R-_,l+=m+Math.max(w,x)+R+_;var T=n||"main",A=a.labelBounds,D=A[T]=A[T]||{};D.x1=o,D.y1=c,D.x2=s,D.y2=l,D.w=s-o,D.h=l-c;var I=y&&"autorotate"===v.strValue,L=null!=v.pfValue&&0!==v.pfValue;if(I||L){var O=I?cc(a.rstyle,"labelAngle",n):v.pfValue,M=Math.cos(O),N=Math.sin(O),B=(o+s)/2,P=(c+l)/2;if(!y){switch(u.value){case"left":B=s;break;case"right":B=o}switch(d.value){case"top":P=l;break;case"bottom":P=c}}var F=function(t,e){return{x:(t-=B)*M-(e-=P)*N+B,y:t*N+e*M+P}},j=F(o,c),$=F(o,l),z=F(s,c),H=F(s,l);o=Math.min(j.x,$.x,z.x,H.x),s=Math.max(j.x,$.x,z.x,H.x),c=Math.min(j.y,$.y,z.y,H.y),l=Math.max(j.y,$.y,z.y,H.y)}var U=T+"Rot",V=A[U]=A[U]||{};V.x1=o,V.y1=c,V.x2=s,V.y2=l,V.w=s-o,V.h=l-c,oc(t,o,c,s,l),oc(a.labelBounds.all,o,c,s,l)}return t}},dc=function(t,e){var n,i,a,r,o,s,c=t._private.cy,l=c.styleEnabled(),u=c.headless(),d=An(),h=t._private,f=t.isNode(),g=t.isEdge(),p=h.rstyle,b=f&&l?t.pstyle("bounds-expansion").pfValue:[0],m=function(t){return"none"!==t.pstyle("display").value},y=!l||m(t)&&(!g||m(t.source())&&m(t.target()));if(y){var v=0;l&&e.includeOverlays&&0!==t.pstyle("overlay-opacity").value&&(v=t.pstyle("overlay-padding").value);var w=0;l&&e.includeUnderlays&&0!==t.pstyle("underlay-opacity").value&&(w=t.pstyle("underlay-padding").value);var x=Math.max(v,w),R=0;if(l&&(R=t.pstyle("width").pfValue/2),f&&e.includeNodes){var _=t.position();o=_.x,s=_.y;var k=t.outerWidth()/2,E=t.outerHeight()/2;oc(d,n=o-k,a=s-E,i=o+k,r=s+E)}else if(g&&e.includeEdges)if(l&&!u){var C=t.pstyle("curve-style").strValue;if(n=Math.min(p.srcX,p.midX,p.tgtX),i=Math.max(p.srcX,p.midX,p.tgtX),a=Math.min(p.srcY,p.midY,p.tgtY),r=Math.max(p.srcY,p.midY,p.tgtY),oc(d,n-=R,a-=R,i+=R,r+=R),"haystack"===C){var S=p.haystackPts;if(S&&2===S.length){if(n=S[0].x,a=S[0].y,n>(i=S[1].x)){var T=n;n=i,i=T}if(a>(r=S[1].y)){var A=a;a=r,r=A}oc(d,n-R,a-R,i+R,r+R)}}else if("bezier"===C||"unbundled-bezier"===C||"segments"===C||"taxi"===C){var D;switch(C){case"bezier":case"unbundled-bezier":D=p.bezierPts;break;case"segments":case"taxi":D=p.linePts}if(null!=D)for(var I=0;I<D.length;I++){var L=D[I];n=L.x-R,i=L.x+R,a=L.y-R,r=L.y+R,oc(d,n,a,i,r)}}}else{var O=t.source().position(),M=t.target().position();if((n=O.x)>(i=M.x)){var N=n;n=i,i=N}if((a=O.y)>(r=M.y)){var B=a;a=r,r=B}oc(d,n-=R,a-=R,i+=R,r+=R)}if(l&&e.includeEdges&&g&&(lc(d,t,"mid-source"),lc(d,t,"mid-target"),lc(d,t,"source"),lc(d,t,"target")),l&&"yes"===t.pstyle("ghost").value){var P=t.pstyle("ghost-offset-x").pfValue,F=t.pstyle("ghost-offset-y").pfValue;oc(d,d.x1+P,d.y1+F,d.x2+P,d.y2+F)}var j=h.bodyBounds=h.bodyBounds||{};Bn(j,d),Nn(j,b),Mn(j,1),l&&(n=d.x1,i=d.x2,a=d.y1,r=d.y2,oc(d,n-x,a-x,i+x,r+x));var $=h.overlayBounds=h.overlayBounds||{};Bn($,d),Nn($,b),Mn($,1);var z=h.labelBounds=h.labelBounds||{};null!=z.all?In(z.all):z.all=An(),l&&e.includeLabels&&(e.includeMainLabels&&uc(d,t,null),g&&(e.includeSourceLabels&&uc(d,t,"source"),e.includeTargetLabels&&uc(d,t,"target")))}return d.x1=rc(d.x1),d.y1=rc(d.y1),d.x2=rc(d.x2),d.y2=rc(d.y2),d.w=rc(d.x2-d.x1),d.h=rc(d.y2-d.y1),d.w>0&&d.h>0&&y&&(Nn(d,b),Mn(d,1)),d},hc=function(t){var e=0,n=function(t){return(t?1:0)<<e++},i=0;return i+=n(t.incudeNodes),i+=n(t.includeEdges),i+=n(t.includeLabels),i+=n(t.includeMainLabels),i+=n(t.includeSourceLabels),i+=n(t.includeTargetLabels),i+=n(t.includeOverlays)},fc=function(t){if(t.isEdge()){var e=t.source().position(),n=t.target().position(),i=function(t){return Math.round(t)};return fe([i(e.x),i(e.y),i(n.x),i(n.y)])}return 0},gc=function(t,e){var n,i=t._private,a=t.isEdge(),r=(null==e?bc:hc(e))===bc,o=fc(t),s=i.bbCachePosKey===o,c=e.useCache&&s,l=function(t){return null==t._private.bbCache||t._private.styleDirty};if(!c||l(t)||a&&l(t.source())||l(t.target())?(s||t.recalculateRenderedStyle(c),n=dc(t,pc),i.bbCache=n,i.bbCachePosKey=o):n=i.bbCache,!r){var u=t.isNode();n=An(),(e.includeNodes&&u||e.includeEdges&&!u)&&(e.includeOverlays?sc(n,i.overlayBounds):sc(n,i.bodyBounds)),e.includeLabels&&(e.includeMainLabels&&(!a||e.includeSourceLabels&&e.includeTargetLabels)?sc(n,i.labelBounds.all):(e.includeMainLabels&&sc(n,i.labelBounds.mainRot),e.includeSourceLabels&&sc(n,i.labelBounds.sourceRot),e.includeTargetLabels&&sc(n,i.labelBounds.targetRot))),n.w=n.x2-n.x1,n.h=n.y2-n.y1}return n},pc={includeNodes:!0,includeEdges:!0,includeLabels:!0,includeMainLabels:!0,includeSourceLabels:!0,includeTargetLabels:!0,includeOverlays:!0,includeUnderlays:!0,useCache:!0},bc=hc(pc),mc=Me(pc);ic.boundingBox=function(t){var e;if(1!==this.length||null==this[0]._private.bbCache||this[0]._private.styleDirty||void 0!==t&&void 0!==t.useCache&&!0!==t.useCache){e=An();var n=mc(t=t||pc),i=this;if(i.cy().styleEnabled())for(var a=0;a<i.length;a++){var r=i[a],o=r._private,s=fc(r),c=o.bbCachePosKey===s,l=n.useCache&&c&&!o.styleDirty;r.recalculateRenderedStyle(l)}this.updateCompoundBounds(!t.useCache);for(var u=0;u<i.length;u++){var d=i[u];sc(e,gc(d,n))}}else t=void 0===t?pc:mc(t),e=gc(this[0],t);return e.x1=rc(e.x1),e.y1=rc(e.y1),e.x2=rc(e.x2),e.y2=rc(e.y2),e.w=rc(e.x2-e.x1),e.h=rc(e.y2-e.y1),e},ic.dirtyBoundingBoxCache=function(){for(var t=0;t<this.length;t++){var e=this[t]._private;e.bbCache=null,e.bbCachePosKey=null,e.bodyBounds=null,e.overlayBounds=null,e.labelBounds.all=null,e.labelBounds.source=null,e.labelBounds.target=null,e.labelBounds.main=null,e.labelBounds.sourceRot=null,e.labelBounds.targetRot=null,e.labelBounds.mainRot=null,e.arrowBounds.source=null,e.arrowBounds.target=null,e.arrowBounds["mid-source"]=null,e.arrowBounds["mid-target"]=null}return this.emitAndNotify("bounds"),this},ic.boundingBoxAt=function(t){var e=this.nodes(),n=this.cy(),i=n.hasCompoundNodes(),a=n.collection();if(i&&(a=e.filter((function(t){return t.isParent()})),e=e.not(a)),R(t)){var r=t;t=function(){return r}}var o=function(e,n){return e._private.bbAtOldPos=t(e,n)},s=function(t){return t._private.bbAtOldPos};n.startBatch(),e.forEach(o).silentPositions(t),i&&(a.dirtyCompoundBoundsCache(),a.dirtyBoundingBoxCache(),a.updateCompoundBounds(!0));var c=Dn(this.boundingBox({useCache:!1}));return e.silentPositions(s),i&&(a.dirtyCompoundBoundsCache(),a.dirtyBoundingBoxCache(),a.updateCompoundBounds(!0)),n.endBatch(),c},nc.boundingbox=nc.bb=nc.boundingBox,nc.renderedBoundingbox=nc.renderedBoundingBox;var yc,vc,wc=ic;yc=vc={};var xc=function(t){t.uppercaseName=H(t.name),t.autoName="auto"+t.uppercaseName,t.labelName="label"+t.uppercaseName,t.outerName="outer"+t.uppercaseName,t.uppercaseOuterName=H(t.outerName),yc[t.name]=function(){var e=this[0],n=e._private,i=n.cy._private.styleEnabled;if(e){if(i){if(e.isParent())return e.updateCompoundBounds(),n[t.autoName]||0;var a=e.pstyle(t.name);return"label"===a.strValue?(e.recalculateRenderedStyle(),n.rstyle[t.labelName]||0):a.pfValue}return 1}},yc["outer"+t.uppercaseName]=function(){var e=this[0],n=e._private.cy._private.styleEnabled;if(e)return n?e[t.name]()+e.pstyle("border-width").pfValue+2*e.padding():1},yc["rendered"+t.uppercaseName]=function(){var e=this[0];if(e)return e[t.name]()*this.cy().zoom()},yc["rendered"+t.uppercaseOuterName]=function(){var e=this[0];if(e)return e[t.outerName]()*this.cy().zoom()}};xc({name:"width"}),xc({name:"height"}),vc.padding=function(){var t=this[0],e=t._private;return t.isParent()?(t.updateCompoundBounds(),void 0!==e.autoPadding?e.autoPadding:t.pstyle("padding").pfValue):t.pstyle("padding").pfValue},vc.paddedHeight=function(){var t=this[0];return t.height()+2*t.padding()},vc.paddedWidth=function(){var t=this[0];return t.width()+2*t.padding()};var Rc=vc,_c=function(t,e){if(t.isEdge())return e(t)},kc=function(t,e){if(t.isEdge()){var n=t.cy();return dn(e(t),n.zoom(),n.pan())}},Ec=function(t,e){if(t.isEdge()){var n=t.cy(),i=n.pan(),a=n.zoom();return e(t).map((function(t){return dn(t,a,i)}))}},Cc={controlPoints:{get:function(t){return t.renderer().getControlPoints(t)},mult:!0},segmentPoints:{get:function(t){return t.renderer().getSegmentPoints(t)},mult:!0},sourceEndpoint:{get:function(t){return t.renderer().getSourceEndpoint(t)}},targetEndpoint:{get:function(t){return t.renderer().getTargetEndpoint(t)}},midpoint:{get:function(t){return t.renderer().getEdgeMidpoint(t)}}},Sc=function(t){return"rendered"+t[0].toUpperCase()+t.substr(1)},Tc=Object.keys(Cc).reduce((function(t,e){var n=Cc[e],i=Sc(e);return t[e]=function(){return _c(this,n.get)},n.mult?t[i]=function(){return Ec(this,n.get)}:t[i]=function(){return kc(this,n.get)},t}),{}),Ac=J({},ac,wc,Rc,Tc),Dc=function(t,e){this.recycle(t,e)};function Ic(){return!1}function Lc(){return!0}Dc.prototype={instanceString:function(){return"event"},recycle:function(t,e){if(this.isImmediatePropagationStopped=this.isPropagationStopped=this.isDefaultPrevented=Ic,null!=t&&t.preventDefault?(this.type=t.type,this.isDefaultPrevented=t.defaultPrevented?Lc:Ic):null!=t&&t.type?e=t:this.type=t,null!=e&&(this.originalEvent=e.originalEvent,this.type=null!=e.type?e.type:this.type,this.cy=e.cy,this.target=e.target,this.position=e.position,this.renderedPosition=e.renderedPosition,this.namespace=e.namespace,this.layout=e.layout),null!=this.cy&&null!=this.position&&null==this.renderedPosition){var n=this.position,i=this.cy.zoom(),a=this.cy.pan();this.renderedPosition={x:n.x*i+a.x,y:n.y*i+a.y}}this.timeStamp=t&&t.timeStamp||Date.now()},preventDefault:function(){this.isDefaultPrevented=Lc;var t=this.originalEvent;t&&t.preventDefault&&t.preventDefault()},stopPropagation:function(){this.isPropagationStopped=Lc;var t=this.originalEvent;t&&t.stopPropagation&&t.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Lc,this.stopPropagation()},isDefaultPrevented:Ic,isPropagationStopped:Ic,isImmediatePropagationStopped:Ic};var Oc=/^([^.]+)(\.(?:[^.]+))?$/,Mc=".*",Nc={qualifierCompare:function(t,e){return t===e},eventMatches:function(){return!0},addEventFields:function(){},callbackContext:function(t){return t},beforeEmit:function(){},afterEmit:function(){},bubble:function(){return!1},parent:function(){return null},context:null},Bc=Object.keys(Nc),Pc={};function Fc(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Pc,e=arguments.length>1?arguments[1]:void 0,n=0;n<Bc.length;n++){var i=Bc[n];this[i]=t[i]||Nc[i]}this.context=e||this.context,this.listeners=[],this.emitting=0}var jc=Fc.prototype,$c=function(t,e,n,i,a,r,o){w(i)&&(a=i,i=null),o&&(r=null==r?o:J({},r,o));for(var s=x(n)?n:n.split(/\s+/),c=0;c<s.length;c++){var l=s[c];if(!O(l)){var u=l.match(Oc);if(u&&!1===e(t,l,u[1],u[2]?u[2]:null,i,a,r))break}}},zc=function(t,e){return t.addEventFields(t.context,e),new Dc(e.type,e)},Hc=function(t,e,n){if(L(n))e(t,n);else if(R(n))e(t,zc(t,n));else for(var i=x(n)?n:n.split(/\s+/),a=0;a<i.length;a++){var r=i[a];if(!O(r)){var o=r.match(Oc);if(o){var s=o[1],c=o[2]?o[2]:null;e(t,zc(t,{type:s,namespace:c,target:t.context}))}}}};jc.on=jc.addListener=function(t,e,n,i,a){return $c(this,(function(t,e,n,i,a,r,o){w(r)&&t.listeners.push({event:e,callback:r,type:n,namespace:i,qualifier:a,conf:o})}),t,e,n,i,a),this},jc.one=function(t,e,n,i){return this.on(t,e,n,i,{one:!0})},jc.removeListener=jc.off=function(t,e,n,i){var a=this;0!==this.emitting&&(this.listeners=De(this.listeners));for(var r=this.listeners,o=function(o){var s=r[o];$c(a,(function(e,n,i,a,c,l){if((s.type===i||"*"===t)&&(!a&&".*"!==s.namespace||s.namespace===a)&&(!c||e.qualifierCompare(s.qualifier,c))&&(!l||s.callback===l))return r.splice(o,1),!1}),t,e,n,i)},s=r.length-1;s>=0;s--)o(s);return this},jc.removeAllListeners=function(){return this.removeListener("*")},jc.emit=jc.trigger=function(t,e,n){var i=this.listeners,a=i.length;return this.emitting++,x(e)||(e=[e]),Hc(this,(function(t,r){null!=n&&(i=[{event:r.event,type:r.type,namespace:r.namespace,callback:n}],a=i.length);for(var o=function(n){var a=i[n];if(a.type===r.type&&(!a.namespace||a.namespace===r.namespace||a.namespace===Mc)&&t.eventMatches(t.context,a,r)){var o=[r];null!=e&&Pe(o,e),t.beforeEmit(t.context,a,r),a.conf&&a.conf.one&&(t.listeners=t.listeners.filter((function(t){return t!==a})));var s=t.callbackContext(t.context,a,r),c=a.callback.apply(s,o);t.afterEmit(t.context,a,r),!1===c&&(r.stopPropagation(),r.preventDefault())}},s=0;s<a;s++)o(s);t.bubble(t.context)&&!r.isPropagationStopped()&&t.parent(t.context).emit(r,e)}),t),this.emitting--,this};var Uc={qualifierCompare:function(t,e){return null==t||null==e?null==t&&null==e:t.sameText(e)},eventMatches:function(t,e,n){var i=e.qualifier;return null==i||t!==n.target&&T(n.target)&&i.matches(n.target)},addEventFields:function(t,e){e.cy=t.cy(),e.target=t},callbackContext:function(t,e,n){return null!=e.qualifier?n.target:t},beforeEmit:function(t,e){e.conf&&e.conf.once&&e.conf.onceCollection.removeListener(e.event,e.qualifier,e.callback)},bubble:function(){return!0},parent:function(t){return t.isChild()?t.parent():t.cy()}},Vc=function(t){return v(t)?new Ps(t):t},qc={createEmitter:function(){for(var t=0;t<this.length;t++){var e=this[t],n=e._private;n.emitter||(n.emitter=new Fc(Uc,e))}return this},emitter:function(){return this._private.emitter},on:function(t,e,n){for(var i=Vc(e),a=0;a<this.length;a++)this[a].emitter().on(t,i,n);return this},removeListener:function(t,e,n){for(var i=Vc(e),a=0;a<this.length;a++)this[a].emitter().removeListener(t,i,n);return this},removeAllListeners:function(){for(var t=0;t<this.length;t++)this[t].emitter().removeAllListeners();return this},one:function(t,e,n){for(var i=Vc(e),a=0;a<this.length;a++)this[a].emitter().one(t,i,n);return this},once:function(t,e,n){for(var i=Vc(e),a=0;a<this.length;a++)this[a].emitter().on(t,i,n,{once:!0,onceCollection:this})},emit:function(t,e){for(var n=0;n<this.length;n++)this[n].emitter().emit(t,e);return this},emitAndNotify:function(t,e){if(0!==this.length)return this.cy().notify(t,this),this.emit(t,e),this}};fs.eventAliasesOn(qc);var Wc={nodes:function(t){return this.filter((function(t){return t.isNode()})).filter(t)},edges:function(t){return this.filter((function(t){return t.isEdge()})).filter(t)},byGroup:function(){for(var t=this.spawn(),e=this.spawn(),n=0;n<this.length;n++){var i=this[n];i.isNode()?t.push(i):e.push(i)}return{nodes:t,edges:e}},filter:function(t,e){if(void 0===t)return this;if(v(t)||S(t))return new Ps(t).filter(this);if(w(t)){for(var n=this.spawn(),i=this,a=0;a<i.length;a++){var r=i[a];(e?t.apply(e,[r,a,i]):t(r,a,i))&&n.push(r)}return n}return this.spawn()},not:function(t){if(t){v(t)&&(t=this.filter(t));for(var e=this.spawn(),n=0;n<this.length;n++){var i=this[n];t.has(i)||e.push(i)}return e}return this},absoluteComplement:function(){return this.cy().mutableElements().not(this)},intersect:function(t){if(v(t)){var e=t;return this.filter(e)}for(var n=this.spawn(),i=this,a=t,r=this.length<t.length,o=r?i:a,s=r?a:i,c=0;c<o.length;c++){var l=o[c];s.has(l)&&n.push(l)}return n},xor:function(t){var e=this._private.cy;v(t)&&(t=e.$(t));var n=this.spawn(),i=this,a=t,r=function(t,e){for(var i=0;i<t.length;i++){var a=t[i],r=a._private.data.id;e.hasElementWithId(r)||n.push(a)}};return r(i,a),r(a,i),n},diff:function(t){var e=this._private.cy;v(t)&&(t=e.$(t));var n=this.spawn(),i=this.spawn(),a=this.spawn(),r=this,o=t,s=function(t,e,n){for(var i=0;i<t.length;i++){var r=t[i],o=r._private.data.id;e.hasElementWithId(o)?a.merge(r):n.push(r)}};return s(r,o,n),s(o,r,i),{left:n,right:i,both:a}},add:function(t){var e=this._private.cy;if(!t)return this;if(v(t)){var n=t;t=e.mutableElements().filter(n)}for(var i=this.spawnSelf(),a=0;a<t.length;a++){var r=t[a];!this.has(r)&&i.push(r)}return i},merge:function(t){var e=this._private,n=e.cy;if(!t)return this;if(t&&v(t)){var i=t;t=n.mutableElements().filter(i)}for(var a=e.map,r=0;r<t.length;r++){var o=t[r],s=o._private.data.id;if(!a.has(s)){var c=this.length++;this[c]=o,a.set(s,{ele:o,index:c})}}return this},unmergeAt:function(t){var e=this[t].id(),n=this._private.map;this[t]=void 0,n.delete(e);var i=t===this.length-1;if(this.length>1&&!i){var a=this.length-1,r=this[a],o=r._private.data.id;this[a]=void 0,this[t]=r,n.set(o,{ele:r,index:t})}return this.length--,this},unmergeOne:function(t){t=t[0];var e=this._private,n=t._private.data.id,i=e.map.get(n);if(!i)return this;var a=i.index;return this.unmergeAt(a),this},unmerge:function(t){var e=this._private.cy;if(!t)return this;if(t&&v(t)){var n=t;t=e.mutableElements().filter(n)}for(var i=0;i<t.length;i++)this.unmergeOne(t[i]);return this},unmergeBy:function(t){for(var e=this.length-1;e>=0;e--)t(this[e])&&this.unmergeAt(e);return this},map:function(t,e){for(var n=[],i=this,a=0;a<i.length;a++){var r=i[a],o=e?t.apply(e,[r,a,i]):t(r,a,i);n.push(o)}return n},reduce:function(t,e){for(var n=e,i=this,a=0;a<i.length;a++)n=t(n,i[a],a,i);return n},max:function(t,e){for(var n,i=-1/0,a=this,r=0;r<a.length;r++){var o=a[r],s=e?t.apply(e,[o,r,a]):t(o,r,a);s>i&&(i=s,n=o)}return{value:i,ele:n}},min:function(t,e){for(var n,i=1/0,a=this,r=0;r<a.length;r++){var o=a[r],s=e?t.apply(e,[o,r,a]):t(o,r,a);s<i&&(i=s,n=o)}return{value:i,ele:n}}},Yc=Wc;Yc.u=Yc["|"]=Yc["+"]=Yc.union=Yc.or=Yc.add,Yc["\\"]=Yc["!"]=Yc["-"]=Yc.difference=Yc.relativeComplement=Yc.subtract=Yc.not,Yc.n=Yc["&"]=Yc["."]=Yc.and=Yc.intersection=Yc.intersect,Yc["^"]=Yc["(+)"]=Yc["(-)"]=Yc.symmetricDifference=Yc.symdiff=Yc.xor,Yc.fnFilter=Yc.filterFn=Yc.stdFilter=Yc.filter,Yc.complement=Yc.abscomp=Yc.absoluteComplement;var Gc,Zc={isNode:function(){return"nodes"===this.group()},isEdge:function(){return"edges"===this.group()},isLoop:function(){return this.isEdge()&&this.source()[0]===this.target()[0]},isSimple:function(){return this.isEdge()&&this.source()[0]!==this.target()[0]},group:function(){var t=this[0];if(t)return t._private.group}},Kc=function(t,e){var n=t.cy().hasCompoundNodes();function i(t){var e=t.pstyle("z-compound-depth");return"auto"===e.value?n?t.zDepth():0:"bottom"===e.value?-1:"top"===e.value?we:0}var a=i(t)-i(e);if(0!==a)return a;function r(t){return"auto"===t.pstyle("z-index-compare").value&&t.isNode()?1:0}var o=r(t)-r(e);if(0!==o)return o;var s=t.pstyle("z-index").value-e.pstyle("z-index").value;return 0!==s?s:t.poolIndex()-e.poolIndex()},Xc={forEach:function(t,e){if(w(t))for(var n=this.length,i=0;i<n;i++){var a=this[i];if(!1===(e?t.apply(e,[a,i,this]):t(a,i,this)))break}return this},toArray:function(){for(var t=[],e=0;e<this.length;e++)t.push(this[e]);return t},slice:function(t,e){var n=[],i=this.length;null==e&&(e=i),null==t&&(t=0),t<0&&(t=i+t),e<0&&(e=i+e);for(var a=t;a>=0&&a<e&&a<i;a++)n.push(this[a]);return this.spawn(n)},size:function(){return this.length},eq:function(t){return this[t]||this.spawn()},first:function(){return this[0]||this.spawn()},last:function(){return this[this.length-1]||this.spawn()},empty:function(){return 0===this.length},nonempty:function(){return!this.empty()},sort:function(t){if(!w(t))return this;var e=this.toArray().sort(t);return this.spawn(e)},sortByZIndex:function(){return this.sort(Kc)},zDepth:function(){var t=this[0];if(t){var e=t._private;if("nodes"===e.group){var n=e.data.parent?t.parents().size():0;return t.isParent()?n:we-1}var i=e.source,a=e.target,r=i.zDepth(),o=a.zDepth();return Math.max(r,o,0)}}};Xc.each=Xc.forEach,Gc="undefined",(typeof Symbol>"u"?"undefined":t(Symbol))!=Gc&&t(Symbol.iterator)!=Gc&&(Xc[Symbol.iterator]=function(){var t=this,e={value:void 0,done:!1},n=0,i=this.length;return r({next:function(){return n<i?e.value=t[n++]:(e.value=void 0,e.done=!0),e}},Symbol.iterator,(function(){return this}))});var Jc=Me({nodeDimensionsIncludeLabels:!1}),Qc={layoutDimensions:function(t){var e;if(t=Jc(t),this.takesUpSpace())if(t.nodeDimensionsIncludeLabels){var n=this.boundingBox();e={w:n.w,h:n.h}}else e={w:this.outerWidth(),h:this.outerHeight()};else e={w:0,h:0};return(0===e.w||0===e.h)&&(e.w=e.h=1),e},layoutPositions:function(t,e,n){var i=this.nodes().filter((function(t){return!t.isParent()})),a=this.cy(),r=e.eles,o=function(t){return t.id()},s=F(n,o);t.emit({type:"layoutstart",layout:t}),t.animations=[];var c=function(t,e,n){var i={x:e.x1+e.w/2,y:e.y1+e.h/2},a={x:(n.x-i.x)*t,y:(n.y-i.y)*t};return{x:i.x+a.x,y:i.y+a.y}},l=e.spacingFactor&&1!==e.spacingFactor,u=function(){if(!l)return null;for(var t=An(),e=0;e<i.length;e++){var n=i[e],a=s(n,e);On(t,a.x,a.y)}return t}(),d=F((function(t,n){var i=s(t,n);if(l){var a=Math.abs(e.spacingFactor);i=c(a,u,i)}return null!=e.transform&&(i=e.transform(t,i)),i}),o);if(e.animate){for(var h=0;h<i.length;h++){var f=i[h],g=d(f,h);if(null==e.animateFilter||e.animateFilter(f,h)){var p=f.animation({position:g,duration:e.animationDuration,easing:e.animationEasing});t.animations.push(p)}else f.position(g)}if(e.fit){var b=a.animation({fit:{boundingBox:r.boundingBoxAt(d),padding:e.padding},duration:e.animationDuration,easing:e.animationEasing});t.animations.push(b)}else if(void 0!==e.zoom&&void 0!==e.pan){var m=a.animation({zoom:e.zoom,pan:e.pan,duration:e.animationDuration,easing:e.animationEasing});t.animations.push(m)}t.animations.forEach((function(t){return t.play()})),t.one("layoutready",e.ready),t.emit({type:"layoutready",layout:t}),$a.all(t.animations.map((function(t){return t.promise()}))).then((function(){t.one("layoutstop",e.stop),t.emit({type:"layoutstop",layout:t})}))}else i.positions(d),e.fit&&a.fit(e.eles,e.padding),null!=e.zoom&&a.zoom(e.zoom),e.pan&&a.pan(e.pan),t.one("layoutready",e.ready),t.emit({type:"layoutready",layout:t}),t.one("layoutstop",e.stop),t.emit({type:"layoutstop",layout:t});return this},layout:function(t){return this.cy().makeLayout(J({},t,{eles:this}))}};function tl(t,e,n){var i,a=n._private,r=a.styleCache=a.styleCache||[];return null!=(i=r[t])||(i=r[t]=e(n)),i}function el(t,e){return t=ge(t),function(n){return tl(t,e,n)}}function nl(t,e){t=ge(t);var n=function(t){return e.call(t)};return function(){var e=this[0];if(e)return tl(t,n,e)}}Qc.createLayout=Qc.makeLayout=Qc.layout;var il={recalculateRenderedStyle:function(t){var e=this.cy(),n=e.renderer(),i=e.styleEnabled();return n&&i&&n.recalculateRenderedStyle(this,t),this},dirtyStyleCache:function(){var t,e=this.cy(),n=function(t){return t._private.styleCache=null};return e.hasCompoundNodes()?((t=this.spawnSelf().merge(this.descendants()).merge(this.parents())).merge(t.connectedEdges()),t.forEach(n)):this.forEach((function(t){n(t),t.connectedEdges().forEach(n)})),this},updateStyle:function(t){var e=this._private.cy;if(!e.styleEnabled())return this;if(e.batching())return e._private.batchStyleEles.merge(this),this;var n=this;t=!(!t&&void 0!==t),e.hasCompoundNodes()&&(n=this.spawnSelf().merge(this.descendants()).merge(this.parents()));var i=n;return t?i.emitAndNotify("style"):i.emit("style"),n.forEach((function(t){return t._private.styleDirty=!0})),this},cleanStyle:function(){var t=this.cy();if(t.styleEnabled())for(var e=0;e<this.length;e++){var n=this[e];n._private.styleDirty&&(n._private.styleDirty=!1,t.style().apply(n))}},parsedStyle:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this[0],i=n.cy();if(i.styleEnabled()&&n)return this.cleanStyle(),n._private.style[t]??(e?i.style().getDefaultProperty(t):null)},numericStyle:function(t){var e=this[0];if(e.cy().styleEnabled()&&e){var n=e.pstyle(t);return void 0!==n.pfValue?n.pfValue:n.value}},numericStyleUnits:function(t){var e=this[0];if(e.cy().styleEnabled()&&e)return e.pstyle(t).units},renderedStyle:function(t){var e=this.cy();if(!e.styleEnabled())return this;var n=this[0];return n?e.style().getRenderedStyle(n,t):void 0},style:function(t,e){var n=this.cy();if(!n.styleEnabled())return this;var i=!1,a=n.style();if(R(t)){var r=t;a.applyBypass(this,r,i),this.emitAndNotify("style")}else if(v(t)){if(void 0===e){var o=this[0];return o?a.getStylePropertyValue(o,t):void 0}a.applyBypass(this,t,e,i),this.emitAndNotify("style")}else if(void 0===t){var s=this[0];return s?a.getRawStyle(s):void 0}return this},removeStyle:function(t){var e=this.cy();if(!e.styleEnabled())return this;var n=!1,i=e.style(),a=this;if(void 0===t)for(var r=0;r<a.length;r++){var o=a[r];i.removeAllBypasses(o,n)}else{t=t.split(/\s+/);for(var s=0;s<a.length;s++){var c=a[s];i.removeBypasses(c,t,n)}}return this.emitAndNotify("style"),this},show:function(){return this.css("display","element"),this},hide:function(){return this.css("display","none"),this},effectiveOpacity:function(){var t=this.cy();if(!t.styleEnabled())return 1;var e=t.hasCompoundNodes(),n=this[0];if(n){var i=n._private,a=n.pstyle("opacity").value;if(!e)return a;var r=i.data.parent?n.parents():null;if(r)for(var o=0;o<r.length;o++)a*=r[o].pstyle("opacity").value;return a}},transparent:function(){if(!this.cy().styleEnabled())return!1;var t=this[0],e=t.cy().hasCompoundNodes();return t?e?0===t.effectiveOpacity():0===t.pstyle("opacity").value:void 0},backgrounding:function(){return!!this.cy().styleEnabled()&&!!this[0]._private.backgrounding}};function al(t,e){var n=t._private.data.parent?t.parents():null;if(n)for(var i=0;i<n.length;i++)if(!e(n[i]))return!1;return!0}function rl(t){var e=t.ok,n=t.edgeOkViaNode||t.ok,i=t.parentOk||t.ok;return function(){var t=this.cy();if(!t.styleEnabled())return!0;var a=this[0],r=t.hasCompoundNodes();if(a){var o=a._private;if(!e(a))return!1;if(a.isNode())return!r||al(a,i);var s=o.source,c=o.target;return n(s)&&(!r||al(s,n))&&(s===c||n(c)&&(!r||al(c,n)))}}}var ol=el("eleTakesUpSpace",(function(t){return"element"===t.pstyle("display").value&&0!==t.width()&&(!t.isNode()||0!==t.height())}));il.takesUpSpace=nl("takesUpSpace",rl({ok:ol}));var sl=el("eleInteractive",(function(t){return"yes"===t.pstyle("events").value&&"visible"===t.pstyle("visibility").value&&ol(t)})),cl=el("parentInteractive",(function(t){return"visible"===t.pstyle("visibility").value&&ol(t)}));il.interactive=nl("interactive",rl({ok:sl,parentOk:cl,edgeOkViaNode:ol})),il.noninteractive=function(){var t=this[0];if(t)return!t.interactive()};var ll=el("eleVisible",(function(t){return"visible"===t.pstyle("visibility").value&&0!==t.pstyle("opacity").pfValue&&ol(t)})),ul=ol;il.visible=nl("visible",rl({ok:ll,edgeOkViaNode:ul})),il.hidden=function(){var t=this[0];if(t)return!t.visible()},il.isBundledBezier=nl("isBundledBezier",(function(){return!!this.cy().styleEnabled()&&!this.removed()&&"bezier"===this.pstyle("curve-style").value&&this.takesUpSpace()})),il.bypass=il.css=il.style,il.renderedCss=il.renderedStyle,il.removeBypass=il.removeCss=il.removeStyle,il.pstyle=il.parsedStyle;var dl={};function hl(t){return function(){var e=arguments,n=[];if(2===e.length){var i=e[0],a=e[1];this.on(t.event,i,a)}else if(1===e.length&&w(e[0])){var r=e[0];this.on(t.event,r)}else if(0===e.length||1===e.length&&x(e[0])){for(var o=1===e.length?e[0]:null,s=0;s<this.length;s++){var c=this[s],l=!t.ableField||c._private[t.ableField],u=c._private[t.field]!=t.value;if(t.overrideAble){var d=t.overrideAble(c);if(void 0!==d&&(l=d,!d))return this}l&&(c._private[t.field]=t.value,u&&n.push(c))}var h=this.spawn(n);h.updateStyle(),h.emit(t.event),o&&h.emit(o)}return this}}function fl(t){dl[t.field]=function(){var e=this[0];if(e){if(t.overrideField){var n=t.overrideField(e);if(void 0!==n)return n}return e._private[t.field]}},dl[t.on]=hl({event:t.on,field:t.field,ableField:t.ableField,overrideAble:t.overrideAble,value:!0}),dl[t.off]=hl({event:t.off,field:t.field,ableField:t.ableField,overrideAble:t.overrideAble,value:!1})}fl({field:"locked",overrideField:function(t){return!!t.cy().autolock()||void 0},on:"lock",off:"unlock"}),fl({field:"grabbable",overrideField:function(t){return!t.cy().autoungrabify()&&!t.pannable()&&void 0},on:"grabify",off:"ungrabify"}),fl({field:"selected",ableField:"selectable",overrideAble:function(t){return!t.cy().autounselectify()&&void 0},on:"select",off:"unselect"}),fl({field:"selectable",overrideField:function(t){return!t.cy().autounselectify()&&void 0},on:"selectify",off:"unselectify"}),dl.deselect=dl.unselect,dl.grabbed=function(){var t=this[0];if(t)return t._private.grabbed},fl({field:"active",on:"activate",off:"unactivate"}),fl({field:"pannable",on:"panify",off:"unpanify"}),dl.inactive=function(){var t=this[0];if(t)return!t._private.active};var gl={},pl=function(t){return function(e){for(var n=this,i=[],a=0;a<n.length;a++){var r=n[a];if(r.isNode()){for(var o=!1,s=r.connectedEdges(),c=0;c<s.length;c++){var l=s[c],u=l.source(),d=l.target();if(t.noIncomingEdges&&d===r&&u!==r||t.noOutgoingEdges&&u===r&&d!==r){o=!0;break}}o||i.push(r)}}return this.spawn(i,!0).filter(e)}},bl=function(t){return function(e){for(var n=this,i=[],a=0;a<n.length;a++){var r=n[a];if(r.isNode())for(var o=r.connectedEdges(),s=0;s<o.length;s++){var c=o[s],l=c.source(),u=c.target();t.outgoing&&l===r?(i.push(c),i.push(u)):t.incoming&&u===r&&(i.push(c),i.push(l))}}return this.spawn(i,!0).filter(e)}},ml=function(t){return function(e){for(var n=this,i=[],a={};;){var r=t.outgoing?n.outgoers():n.incomers();if(0===r.length)break;for(var o=!1,s=0;s<r.length;s++){var c=r[s],l=c.id();a[l]||(a[l]=!0,i.push(c),o=!0)}if(!o)break;n=r}return this.spawn(i,!0).filter(e)}};function yl(t){return function(e){for(var n=[],i=0;i<this.length;i++){var a=this[i]._private[t.attr];a&&n.push(a)}return this.spawn(n,!0).filter(e)}}function vl(t){return function(e){var n=[],i=this._private.cy,a=t||{};v(e)&&(e=i.$(e));for(var r=0;r<e.length;r++)for(var o=e[r]._private.edges,s=0;s<o.length;s++){var c=o[s],l=c._private.data,u=this.hasElementWithId(l.source)&&e.hasElementWithId(l.target),d=e.hasElementWithId(l.source)&&this.hasElementWithId(l.target);(u||d)&&((a.thisIsSrc||a.thisIsTgt)&&(a.thisIsSrc&&!u||a.thisIsTgt&&!d)||n.push(c))}return this.spawn(n,!0)}}function wl(t){return t=J({},{codirected:!1},t),function(e){for(var n=[],i=this.edges(),a=t,r=0;r<i.length;r++)for(var o=i[r]._private,s=o.source,c=s._private.data.id,l=o.data.target,u=s._private.edges,d=0;d<u.length;d++){var h=u[d],f=h._private.data,g=f.target,p=f.source,b=g===l&&p===c,m=c===g&&l===p;(a.codirected&&b||!a.codirected&&(b||m))&&n.push(h)}return this.spawn(n,!0).filter(e)}}gl.clearTraversalCache=function(){for(var t=0;t<this.length;t++)this[t]._private.traversalCache=null},J(gl,{roots:pl({noIncomingEdges:!0}),leaves:pl({noOutgoingEdges:!0}),outgoers:Hs(bl({outgoing:!0}),"outgoers"),successors:ml({outgoing:!0}),incomers:Hs(bl({incoming:!0}),"incomers"),predecessors:ml({incoming:!0})}),J(gl,{neighborhood:Hs((function(t){for(var e=[],n=this.nodes(),i=0;i<n.length;i++)for(var a=n[i],r=a.connectedEdges(),o=0;o<r.length;o++){var s=r[o],c=s.source(),l=s.target(),u=a===c?l:c;u.length>0&&e.push(u[0]),e.push(s[0])}return this.spawn(e,!0).filter(t)}),"neighborhood"),closedNeighborhood:function(t){return this.neighborhood().add(this).filter(t)},openNeighborhood:function(t){return this.neighborhood(t)}}),gl.neighbourhood=gl.neighborhood,gl.closedNeighbourhood=gl.closedNeighborhood,gl.openNeighbourhood=gl.openNeighborhood,J(gl,{source:Hs((function(t){var e,n=this[0];return n&&(e=n._private.source||n.cy().collection()),e&&t?e.filter(t):e}),"source"),target:Hs((function(t){var e,n=this[0];return n&&(e=n._private.target||n.cy().collection()),e&&t?e.filter(t):e}),"target"),sources:yl({attr:"source"}),targets:yl({attr:"target"})}),J(gl,{edgesWith:Hs(vl(),"edgesWith"),edgesTo:Hs(vl({thisIsSrc:!0}),"edgesTo")}),J(gl,{connectedEdges:Hs((function(t){for(var e=[],n=this,i=0;i<n.length;i++){var a=n[i];if(a.isNode())for(var r=a._private.edges,o=0;o<r.length;o++){var s=r[o];e.push(s)}}return this.spawn(e,!0).filter(t)}),"connectedEdges"),connectedNodes:Hs((function(t){for(var e=[],n=this,i=0;i<n.length;i++){var a=n[i];a.isEdge()&&(e.push(a.source()[0]),e.push(a.target()[0]))}return this.spawn(e,!0).filter(t)}),"connectedNodes"),parallelEdges:Hs(wl(),"parallelEdges"),codirectedEdges:Hs(wl({codirected:!0}),"codirectedEdges")}),J(gl,{components:function(t){var e=this,n=e.cy(),i=n.collection(),a=null==t?e.nodes():t.nodes(),r=[];null!=t&&a.empty()&&(a=t.sources());var o=function(t,e){i.merge(t),a.unmerge(t),e.merge(t)};if(a.empty())return e.spawn();var s=function(){var t=n.collection();r.push(t);var i=a[0];o(i,t),e.bfs({directed:!1,roots:i,visit:function(e){return o(e,t)}}),t.forEach((function(n){n.connectedEdges().forEach((function(n){e.has(n)&&t.has(n.source())&&t.has(n.target())&&t.merge(n)}))}))};do{s()}while(a.length>0);return r},component:function(){var t=this[0];return t.cy().mutableElements().components(t)[0]}}),gl.componentsOf=gl.components;var xl=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==t){var a=new ze,r=!1;if(e){if(e.length>0&&R(e[0])&&!T(e[0])){r=!0;for(var o=[],s=new Ve,c=0,l=e.length;c<l;c++){var u=e[c];null==u.data&&(u.data={});var d=u.data;if(null==d.id)d.id=Ie();else if(t.hasElementWithId(d.id)||s.has(d.id))continue;var h=new qe(t,u,!1);o.push(h),s.add(d.id)}e=o}}else e=[];this.length=0;for(var f=0,g=e.length;f<g;f++){var p=e[f][0];if(null!=p){var b=p._private.data.id;(!n||!a.has(b))&&(n&&a.set(b,{index:this.length,ele:p}),this[this.length]=p,this.length++)}}this._private={eles:this,cy:t,get map(){return null==this.lazyMap&&this.rebuildMap(),this.lazyMap},set map(t){this.lazyMap=t},rebuildMap:function(){for(var t=this.lazyMap=new ze,e=this.eles,n=0;n<e.length;n++){var i=e[n];t.set(i.id(),{index:n,ele:i})}}},n&&(this._private.map=a),r&&!i&&this.restore()}else Ee("A collection must have a reference to the core")},Rl=qe.prototype=xl.prototype=Object.create(Array.prototype);Rl.instanceString=function(){return"collection"},Rl.spawn=function(t,e){return new xl(this.cy(),t,e)},Rl.spawnSelf=function(){return this.spawn(this)},Rl.cy=function(){return this._private.cy},Rl.renderer=function(){return this._private.cy.renderer()},Rl.element=function(){return this[0]},Rl.collection=function(){return A(this)?this:new xl(this._private.cy,[this])},Rl.unique=function(){return new xl(this._private.cy,this,!0)},Rl.hasElementWithId=function(t){return t=""+t,this._private.map.has(t)},Rl.getElementById=function(t){t=""+t;var e=this._private.cy,n=this._private.map.get(t);return n?n.ele:new xl(e)},Rl.$id=Rl.getElementById,Rl.poolIndex=function(){var t=this._private.cy._private.elements,e=this[0]._private.data.id;return t._private.map.get(e).index},Rl.indexOf=function(t){var e=t[0]._private.data.id;return this._private.map.get(e).index},Rl.indexOfId=function(t){return t=""+t,this._private.map.get(t).index},Rl.json=function(t){var e=this.element(),n=this.cy();if(null==e&&t)return this;if(null!=e){var i=e._private;if(R(t)){if(n.startBatch(),t.data){e.data(t.data);var a=i.data;if(e.isEdge()){var r=!1,o={},s=t.data.source,c=t.data.target;null!=s&&s!=a.source&&(o.source=""+s,r=!0),null!=c&&c!=a.target&&(o.target=""+c,r=!0),r&&(e=e.move(o))}else{var l="parent"in t.data,u=t.data.parent;l&&(null!=u||null!=a.parent)&&u!=a.parent&&(void 0===u&&(u=null),null!=u&&(u=""+u),e=e.move({parent:u}))}}t.position&&e.position(t.position);var d=function(n,a,r){var o=t[n];null!=o&&o!==i[n]&&(o?e[a]():e[r]())};return d("removed","remove","restore"),d("selected","select","unselect"),d("selectable","selectify","unselectify"),d("locked","lock","unlock"),d("grabbable","grabify","ungrabify"),d("pannable","panify","unpanify"),null!=t.classes&&e.classes(t.classes),n.endBatch(),this}if(void 0===t){var h={data:Ae(i.data),position:Ae(i.position),group:i.group,removed:i.removed,selected:i.selected,selectable:i.selectable,locked:i.locked,grabbable:i.grabbable,pannable:i.pannable,classes:null};h.classes="";var f=0;return i.classes.forEach((function(t){return h.classes+=0==f++?t:" "+t})),h}}},Rl.jsons=function(){for(var t=[],e=0;e<this.length;e++){var n=this[e].json();t.push(n)}return t},Rl.clone=function(){for(var t=this.cy(),e=[],n=0;n<this.length;n++){var i=this[n].json(),a=new qe(t,i,!1);e.push(a)}return new xl(t,e)},Rl.copy=Rl.clone,Rl.restore=function(){for(var t,e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this,a=i.cy(),r=a._private,o=[],s=[],c=0,l=i.length;c<l;c++){var u=i[c];n&&!u.removed()||(u.isNode()?o.push(u):s.push(u))}t=o.concat(s);var d,h=function(){t.splice(d,1),d--};for(d=0;d<t.length;d++){var f=t[d],g=f._private,p=g.data;if(f.clearTraversalCache(),n||g.removed)if(void 0===p.id)p.id=Ie();else if(k(p.id))p.id=""+p.id;else{if(O(p.id)||!v(p.id)){Ee("Can not create element with invalid string ID `"+p.id+"`"),h();continue}if(a.hasElementWithId(p.id)){Ee("Can not create second element with ID `"+p.id+"`"),h();continue}}var b=p.id;if(f.isNode()){var m=g.position;null==m.x&&(m.x=0),null==m.y&&(m.y=0)}if(f.isEdge()){for(var y=f,w=["source","target"],x=w.length,R=!1,_=0;_<x;_++){var E=w[_],C=p[E];k(C)&&(C=p[E]=""+p[E]),null==C||""===C?(Ee("Can not create edge `"+b+"` with unspecified "+E),R=!0):a.hasElementWithId(C)||(Ee("Can not create edge `"+b+"` with nonexistant "+E+" `"+C+"`"),R=!0)}if(R){h();continue}var S=a.getElementById(p.source),T=a.getElementById(p.target);S.same(T)?S._private.edges.push(y):(S._private.edges.push(y),T._private.edges.push(y)),y._private.source=S,y._private.target=T}g.map=new ze,g.map.set(b,{ele:f,index:0}),g.removed=!1,n&&a.addToPool(f)}for(var A=0;A<o.length;A++){var D=o[A],I=D._private.data;k(I.parent)&&(I.parent=""+I.parent);var L=I.parent;if(null!=L||D._private.parent){var M=D._private.parent?a.collection().merge(D._private.parent):a.getElementById(L);if(M.empty())I.parent=void 0;else if(M[0].removed())Se("Node added with missing parent, reference to parent removed"),I.parent=void 0,D._private.parent=null;else{for(var N=!1,B=M;!B.empty();){if(D.same(B)){N=!0,I.parent=void 0;break}B=B.parent()}N||(M[0]._private.children.push(D),D._private.parent=M[0],r.hasCompoundNodes=!0)}}}if(t.length>0){for(var P=t.length===i.length?i:new xl(a,t),F=0;F<P.length;F++){var j=P[F];j.isNode()||(j.parallelEdges().clearTraversalCache(),j.source().clearTraversalCache(),j.target().clearTraversalCache())}(r.hasCompoundNodes?a.collection().merge(P).merge(P.connectedNodes()).merge(P.parent()):P).dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(e),e?P.emitAndNotify("add"):n&&P.emit("add")}return i},Rl.removed=function(){var t=this[0];return t&&t._private.removed},Rl.inside=function(){var t=this[0];return t&&!t._private.removed},Rl.remove=function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this,i=[],a={},r=n._private.cy;function o(t){for(var e=t._private.edges,n=0;n<e.length;n++)c(e[n])}function s(t){for(var e=t._private.children,n=0;n<e.length;n++)c(e[n])}function c(t){var n=a[t.id()];e&&t.removed()||n||(a[t.id()]=!0,t.isNode()?(i.push(t),o(t),s(t)):i.unshift(t))}for(var l=0,u=n.length;l<u;l++)c(n[l]);function d(t,e){var n=t._private.edges;Ne(n,e),t.clearTraversalCache()}function h(t){t.clearTraversalCache()}var f=[];function g(t,e){e=e[0];var n=(t=t[0])._private.children,i=t.id();Ne(n,e),e._private.parent=null,f.ids[i]||(f.ids[i]=!0,f.push(t))}f.ids={},n.dirtyCompoundBoundsCache(),e&&r.removeFromPool(i);for(var p=0;p<i.length;p++){var b=i[p];if(b.isEdge()){var m=b.source()[0],y=b.target()[0];d(m,b),d(y,b);for(var v=b.parallelEdges(),w=0;w<v.length;w++){var x=v[w];h(x),x.isBundledBezier()&&x.dirtyBoundingBoxCache()}}else{var R=b.parent();0!==R.length&&g(R,b)}e&&(b._private.removed=!0)}var _=r._private.elements;r._private.hasCompoundNodes=!1;for(var k=0;k<_.length;k++)if(_[k].isParent()){r._private.hasCompoundNodes=!0;break}var E=new xl(this.cy(),i);E.size()>0&&(t?E.emitAndNotify("remove"):e&&E.emit("remove"));for(var C=0;C<f.length;C++){var S=f[C];(!e||!S.removed())&&S.updateStyle()}return E},Rl.move=function(t){var e=this._private.cy,n=this,i=!1,a=!1,r=function(t){return null==t?t:""+t};if(void 0!==t.source||void 0!==t.target){var o=r(t.source),s=r(t.target),c=null!=o&&e.hasElementWithId(o),l=null!=s&&e.hasElementWithId(s);(c||l)&&(e.batch((function(){n.remove(i,a),n.emitAndNotify("moveout");for(var t=0;t<n.length;t++){var e=n[t],r=e._private.data;e.isEdge()&&(c&&(r.source=o),l&&(r.target=s))}n.restore(i,a)})),n.emitAndNotify("move"))}else if(void 0!==t.parent){var u=r(t.parent);if(null===u||e.hasElementWithId(u)){var d=null===u?void 0:u;e.batch((function(){var t=n.remove(i,a);t.emitAndNotify("moveout");for(var e=0;e<n.length;e++){var r=n[e],o=r._private.data;r.isNode()&&(o.parent=d)}t.restore(i,a)})),n.emitAndNotify("move")}}return this},[Da,gs,ps,js,Us,Gs,Zs,Ac,qc,Wc,Zc,Xc,Qc,il,dl,gl].forEach((function(t){J(Rl,t)}));var _l={add:function(t){var e,n=this;if(S(t)){var i=t;if(i._private.cy===n)e=i.restore();else{for(var a=[],r=0;r<i.length;r++){var o=i[r];a.push(o.json())}e=new xl(n,a)}}else if(x(t))e=new xl(n,t);else if(R(t)&&(x(t.nodes)||x(t.edges))){for(var s=t,c=[],l=["nodes","edges"],u=0,d=l.length;u<d;u++){var h=l[u],f=s[h];if(x(f))for(var g=0,p=f.length;g<p;g++){var b=J({group:h},f[g]);c.push(b)}}e=new xl(n,c)}else e=new qe(n,t).collection();return e},remove:function(t){if(!S(t)&&v(t)){var e=t;t=this.$(e)}return t.remove()}};function kl(t,e,n,i){var a=4,r=.001,o=1e-7,s=10,c=11,l=1/(c-1),u=typeof Float32Array<"u";if(4!==arguments.length)return!1;for(var d=0;d<4;++d)if("number"!=typeof arguments[d]||isNaN(arguments[d])||!isFinite(arguments[d]))return!1;t=Math.min(t,1),n=Math.min(n,1),t=Math.max(t,0),n=Math.max(n,0);var h=u?new Float32Array(c):new Array(c);function f(t,e){return 1-3*e+3*t}function g(t,e){return 3*e-6*t}function p(t){return 3*t}function b(t,e,n){return((f(e,n)*t+g(e,n))*t+p(e))*t}function m(t,e,n){return 3*f(e,n)*t*t+2*g(e,n)*t+p(e)}function y(e,i){for(var r=0;r<a;++r){var o=m(i,t,n);if(0===o)return i;i-=(b(i,t,n)-e)/o}return i}function v(){for(var e=0;e<c;++e)h[e]=b(e*l,t,n)}function w(e,i,a){var r,c,l=0;do{(r=b(c=i+(a-i)/2,t,n)-e)>0?a=c:i=c}while(Math.abs(r)>o&&++l<s);return c}function x(e){for(var i=0,a=1,o=c-1;a!==o&&h[a]<=e;++a)i+=l;--a;var s=i+(e-h[a])/(h[a+1]-h[a])*l,u=m(s,t,n);return u>=r?y(e,s):0===u?s:w(e,i,i+l)}var R=!1;function _(){R=!0,(t!==e||n!==i)&&v()}var k=function(a){return R||_(),t===e&&n===i?a:0===a?0:1===a?1:b(x(a),e,i)};k.getControlPoints=function(){return[{x:t,y:e},{x:n,y:i}]};var E="generateBezier("+[t,e,n,i]+")";return k.toString=function(){return E},k}var El=function(){function t(t){return-t.tension*t.x-t.friction*t.v}function e(e,n,i){var a={x:e.x+i.dx*n,v:e.v+i.dv*n,tension:e.tension,friction:e.friction};return{dx:a.v,dv:t(a)}}function n(n,i){var a={dx:n.v,dv:t(n)},r=e(n,.5*i,a),o=e(n,.5*i,r),s=e(n,i,o),c=1/6*(a.dx+2*(r.dx+o.dx)+s.dx),l=1/6*(a.dv+2*(r.dv+o.dv)+s.dv);return n.x=n.x+c*i,n.v=n.v+l*i,n}return function t(e,i,a){var r,o,s,c={x:-1,v:0,tension:null,friction:null},l=[0],u=0,d=1e-4,h=.016;for(e=parseFloat(e)||500,i=parseFloat(i)||20,a=a||null,c.tension=e,c.friction=i,o=(r=null!==a)?(u=t(e,i))/a*h:h;s=n(s||c,o),l.push(1+s.x),u+=16,Math.abs(s.x)>d&&Math.abs(s.v)>d;);return r?function(t){return l[t*(l.length-1)|0]}:u}}(),Cl=function(t,e,n,i){var a=kl(t,e,n,i);return function(t,e,n){return t+(e-t)*a(n)}},Sl={linear:function(t,e,n){return t+(e-t)*n},ease:Cl(.25,.1,.25,1),"ease-in":Cl(.42,0,1,1),"ease-out":Cl(0,0,.58,1),"ease-in-out":Cl(.42,0,.58,1),"ease-in-sine":Cl(.47,0,.745,.715),"ease-out-sine":Cl(.39,.575,.565,1),"ease-in-out-sine":Cl(.445,.05,.55,.95),"ease-in-quad":Cl(.55,.085,.68,.53),"ease-out-quad":Cl(.25,.46,.45,.94),"ease-in-out-quad":Cl(.455,.03,.515,.955),"ease-in-cubic":Cl(.55,.055,.675,.19),"ease-out-cubic":Cl(.215,.61,.355,1),"ease-in-out-cubic":Cl(.645,.045,.355,1),"ease-in-quart":Cl(.895,.03,.685,.22),"ease-out-quart":Cl(.165,.84,.44,1),"ease-in-out-quart":Cl(.77,0,.175,1),"ease-in-quint":Cl(.755,.05,.855,.06),"ease-out-quint":Cl(.23,1,.32,1),"ease-in-out-quint":Cl(.86,0,.07,1),"ease-in-expo":Cl(.95,.05,.795,.035),"ease-out-expo":Cl(.19,1,.22,1),"ease-in-out-expo":Cl(1,0,0,1),"ease-in-circ":Cl(.6,.04,.98,.335),"ease-out-circ":Cl(.075,.82,.165,1),"ease-in-out-circ":Cl(.785,.135,.15,.86),spring:function(t,e,n){if(0===n)return Sl.linear;var i=El(t,e,n);return function(t,e,n){return t+(e-t)*i(n)}},"cubic-bezier":Cl};function Tl(t,e,n,i,a){if(1===i||e===n)return n;var r=a(e,n,i);return null==t||((t.roundValue||t.color)&&(r=Math.round(r)),void 0!==t.min&&(r=Math.max(r,t.min)),void 0!==t.max&&(r=Math.min(r,t.max))),r}function Al(t,e){return null!=t.pfValue||null!=t.value?null==t.pfValue||null!=e&&"%"===e.type.units?t.value:t.pfValue:t}function Dl(t,e,n,i,a){var r=null!=a?a.type:null;n<0?n=0:n>1&&(n=1);var o=Al(t,a),s=Al(e,a);if(k(o)&&k(s))return Tl(r,o,s,n,i);if(x(o)&&x(s)){for(var c=[],l=0;l<s.length;l++){var u=o[l],d=s[l];if(null!=u&&null!=d){var h=Tl(r,u,d,n,i);c.push(h)}else c.push(d)}return c}}function Il(t,e,n,i){var a=!i,r=t._private,o=e._private,s=o.easing,c=o.startTime,l=(i?t:t.cy()).style();if(!o.easingImpl)if(null==s)o.easingImpl=Sl.linear;else{var u,d,h;u=v(s)?l.parse("transition-timing-function",s).value:s,v(u)?(d=u,h=[]):(d=u[1],h=u.slice(2).map((function(t){return+t}))),h.length>0?("spring"===d&&h.push(o.duration),o.easingImpl=Sl[d].apply(null,h)):o.easingImpl=Sl[d]}var f,g=o.easingImpl;if(f=0===o.duration?1:(n-c)/o.duration,o.applying&&(f=o.progress),f<0?f=0:f>1&&(f=1),null==o.delay){var p=o.startPosition,b=o.position;if(b&&a&&!t.locked()){var m={};Ll(p.x,b.x)&&(m.x=Dl(p.x,b.x,f,g)),Ll(p.y,b.y)&&(m.y=Dl(p.y,b.y,f,g)),t.position(m)}var y=o.startPan,w=o.pan,x=r.pan,R=null!=w&&i;R&&(Ll(y.x,w.x)&&(x.x=Dl(y.x,w.x,f,g)),Ll(y.y,w.y)&&(x.y=Dl(y.y,w.y,f,g)),t.emit("pan"));var _=o.startZoom,k=o.zoom,E=null!=k&&i;E&&(Ll(_,k)&&(r.zoom=Tn(r.minZoom,Dl(_,k,f,g),r.maxZoom)),t.emit("zoom")),(R||E)&&t.emit("viewport");var C=o.style;if(C&&C.length>0&&a){for(var S=0;S<C.length;S++){var T=C[S],A=T.name,D=T,I=o.startStyle[A],L=Dl(I,D,f,g,l.properties[I.name]);l.overrideBypass(t,A,L)}t.emit("style")}}return o.progress=f,f}function Ll(t,e){return!!(null!=t&&null!=e&&(k(t)&&k(e)||t&&e))}function Ol(t,e,n,i){var a=e._private;a.started=!0,a.startTime=n-a.progress*a.duration}function Ml(t,e){var n=e._private.aniEles,i=[];function a(e,n){var a=e._private,r=a.animation.current,o=a.animation.queue,s=!1;if(0===r.length){var c=o.shift();c&&r.push(c)}for(var l=function(t){for(var e=t.length-1;e>=0;e--)(0,t[e])();t.splice(0,t.length)},u=r.length-1;u>=0;u--){var d=r[u],h=d._private;h.stopped?(r.splice(u,1),h.hooked=!1,h.playing=!1,h.started=!1,l(h.frames)):!h.playing&&!h.applying||(h.playing&&h.applying&&(h.applying=!1),h.started||Ol(e,d,t),Il(e,d,t,n),h.applying&&(h.applying=!1),l(h.frames),null!=h.step&&h.step(t),d.completed()&&(r.splice(u,1),h.hooked=!1,h.playing=!1,h.started=!1,l(h.completes)),s=!0)}return!n&&0===r.length&&0===o.length&&i.push(e),s}for(var r=!1,o=0;o<n.length;o++){var s=a(n[o]);r=r||s}var c=a(e,!0);(r||c)&&(n.length>0?e.notify("draw",n):e.notify("draw")),n.unmerge(i),e.emit("step")}var Nl={animate:fs.animate(),animation:fs.animation(),animated:fs.animated(),clearQueue:fs.clearQueue(),delay:fs.delay(),delayAnimation:fs.delayAnimation(),stop:fs.stop(),addToAnimationPool:function(t){var e=this;e.styleEnabled()&&e._private.aniEles.merge(t)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var t=this;if(t._private.animationsRunning=!0,t.styleEnabled()){var e=t.renderer();e&&e.beforeRender?e.beforeRender((function(e,n){Ml(n,t)}),e.beforeRenderPriorities.animations):n()}function n(){t._private.animationsRunning&&ne((function(e){Ml(e,t),n()}))}}},Bl={qualifierCompare:function(t,e){return null==t||null==e?null==t&&null==e:t.sameText(e)},eventMatches:function(t,e,n){var i=e.qualifier;return null==i||t!==n.target&&T(n.target)&&i.matches(n.target)},addEventFields:function(t,e){e.cy=t,e.target=t},callbackContext:function(t,e,n){return null!=e.qualifier?n.target:t}},Pl=function(t){return v(t)?new Ps(t):t},Fl={createEmitter:function(){var t=this._private;return t.emitter||(t.emitter=new Fc(Bl,this)),this},emitter:function(){return this._private.emitter},on:function(t,e,n){return this.emitter().on(t,Pl(e),n),this},removeListener:function(t,e,n){return this.emitter().removeListener(t,Pl(e),n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(t,e,n){return this.emitter().one(t,Pl(e),n),this},once:function(t,e,n){return this.emitter().one(t,Pl(e),n),this},emit:function(t,e){return this.emitter().emit(t,e),this},emitAndNotify:function(t,e){return this.emit(t),this.notify(t,e),this}};fs.eventAliasesOn(Fl);var jl={png:function(t){return t=t||{},this._private.renderer.png(t)},jpg:function(t){var e=this._private.renderer;return(t=t||{}).bg=t.bg||"#fff",e.jpg(t)}};jl.jpeg=jl.jpg;var $l={layout:function(t){var e=this;if(null!=t)if(null!=t.name){var n,i=t.name,a=e.extension("layout",i);if(null!=a)return n=v(t.eles)?e.$(t.eles):null!=t.eles?t.eles:e.$(),new a(J({},t,{cy:e,eles:n}));Ee("No such layout `"+i+"` found. Did you forget to import it and `cytoscape.use()` it?")}else Ee("A `name` must be specified to make a layout");else Ee("Layout options must be specified to make a layout")}};$l.createLayout=$l.makeLayout=$l.layout;var zl={notify:function(t,e){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var i=n.batchNotifications[t]=n.batchNotifications[t]||this.collection();null!=e&&i.merge(e)}else if(n.notificationsEnabled){var a=this.renderer();this.destroyed()||!a||a.notify(t,e)}},notifications:function(t){var e=this._private;return void 0===t?e.notificationsEnabled:(e.notificationsEnabled=!!t,this)},noNotifications:function(t){this.notifications(!1),t(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var t=this._private;return null==t.batchCount&&(t.batchCount=0),0===t.batchCount&&(t.batchStyleEles=this.collection(),t.batchNotifications={}),t.batchCount++,this},endBatch:function(){var t=this._private;if(0===t.batchCount)return this;if(t.batchCount--,0===t.batchCount){t.batchStyleEles.updateStyle();var e=this.renderer();Object.keys(t.batchNotifications).forEach((function(n){var i=t.batchNotifications[n];i.empty()?e.notify(n):e.notify(n,i)}))}return this},batch:function(t){return this.startBatch(),t(),this.endBatch(),this},batchData:function(t){var e=this;return this.batch((function(){for(var n=Object.keys(t),i=0;i<n.length;i++){var a=n[i],r=t[a];e.getElementById(a).data(r)}}))}},Hl=Me({hideEdgesOnViewport:!1,textureOnViewport:!1,motionBlur:!1,motionBlurOpacity:.05,pixelRatio:void 0,desktopTapThreshold:4,touchTapThreshold:8,wheelSensitivity:1,debug:!1,showFps:!1}),Ul={renderTo:function(t,e,n,i){return this._private.renderer.renderTo(t,e,n,i),this},renderer:function(){return this._private.renderer},forceRender:function(){return this.notify("draw"),this},resize:function(){return this.invalidateSize(),this.emitAndNotify("resize"),this},initRenderer:function(t){var e=this,n=e.extension("renderer",t.name);if(null!=n){void 0!==t.wheelSensitivity&&Se("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.");var i=Hl(t);i.cy=e,e._private.renderer=new n(i),this.notify("init")}else Ee("Can not initialise: No such renderer `".concat(t.name,"` found. Did you forget to import it and `cytoscape.use()` it?"))},destroyRenderer:function(){var t=this;t.notify("destroy");var e=t.container();if(e)for(e._cyreg=null;e.childNodes.length>0;)e.removeChild(e.childNodes[0]);t._private.renderer=null,t.mutableElements().forEach((function(t){var e=t._private;e.rscratch={},e.rstyle={},e.animation.current=[],e.animation.queue=[]}))},onRender:function(t){return this.on("render",t)},offRender:function(t){return this.off("render",t)}};Ul.invalidateDimensions=Ul.resize;var Vl={collection:function(t,e){return v(t)?this.$(t):S(t)?t.collection():x(t)?(e||(e={}),new xl(this,t,e.unique,e.removed)):new xl(this)},nodes:function(t){var e=this.$((function(t){return t.isNode()}));return t?e.filter(t):e},edges:function(t){var e=this.$((function(t){return t.isEdge()}));return t?e.filter(t):e},$:function(t){var e=this._private.elements;return t?e.filter(t):e.spawnSelf()},mutableElements:function(){return this._private.elements}};Vl.elements=Vl.filter=Vl.$;var ql={},Wl="t",Yl="f";ql.apply=function(t){for(var e=this,n=e._private.cy.collection(),i=0;i<t.length;i++){var a=t[i],r=e.getContextMeta(a);if(!r.empty){var o=e.getContextStyle(r),s=e.applyContextStyle(r,o,a);a._private.appliedInitStyle?e.updateTransitions(a,s.diffProps):a._private.appliedInitStyle=!0,e.updateStyleHints(a)&&n.push(a)}}return n},ql.getPropertiesDiff=function(t,e){var n=this,i=n._private.propDiffs=n._private.propDiffs||{},a=t+"-"+e,r=i[a];if(r)return r;for(var o=[],s={},c=0;c<n.length;c++){var l=n[c],u=t[c]===Wl,d=e[c]===Wl,h=u!==d,f=l.mappedProperties.length>0;if(h||d&&f){var g=void 0;h&&f||h?g=l.properties:f&&(g=l.mappedProperties);for(var p=0;p<g.length;p++){for(var b=g[p],m=b.name,y=!1,v=c+1;v<n.length;v++){var w=n[v];if(e[v]===Wl&&(y=null!=w.properties[b.name]))break}!s[m]&&!y&&(s[m]=!0,o.push(m))}}}return i[a]=o,o},ql.getContextMeta=function(t){for(var e,n=this,i="",a=t._private.styleCxtKey||"",r=0;r<n.length;r++){var o=n[r];i+=o.selector&&o.selector.matches(t)?Wl:Yl}return e=n.getPropertiesDiff(a,i),t._private.styleCxtKey=i,{key:i,diffPropNames:e,empty:0===e.length}},ql.getContextStyle=function(t){var e=t.key,n=this,i=this._private.contextStyles=this._private.contextStyles||{};if(i[e])return i[e];for(var a={_private:{key:e}},r=0;r<n.length;r++){var o=n[r];if(e[r]===Wl)for(var s=0;s<o.properties.length;s++){var c=o.properties[s];a[c.name]=c}}return i[e]=a,a},ql.applyContextStyle=function(t,e,n){for(var i=this,a=t.diffPropNames,r={},o=i.types,s=0;s<a.length;s++){var c=a[s],l=e[c],u=n.pstyle(c);if(!l){if(!u)continue;l=u.bypass?{name:c,deleteBypassed:!0}:{name:c,delete:!0}}if(u!==l){if(l.mapped===o.fn&&null!=u&&null!=u.mapping&&u.mapping.value===l.value){var d=u.mapping;if((d.fnValue=l.value(n))===d.prevFnValue)continue}var h=r[c]={prev:u};i.applyParsedProperty(n,l),h.next=n.pstyle(c),h.next&&h.next.bypass&&(h.next=h.next.bypassed)}}return{diffProps:r}},ql.updateStyleHints=function(t){var e=t._private,n=this,i=n.propertyGroupNames,a=n.propertyGroupKeys,r=function(t,e,i){return n.getPropertiesHash(t,e,i)},o=e.styleKey;if(t.removed())return!1;var s="nodes"===e.group,c=t._private.style;i=Object.keys(c);for(var l=0;l<a.length;l++){var u=a[l];e.styleKeys[u]=[ae,oe]}for(var d=function(t,n){return e.styleKeys[n][0]=ce(t,e.styleKeys[n][0])},h=function(t,n){return e.styleKeys[n][1]=le(t,e.styleKeys[n][1])},f=function(t,e){d(t,e),h(t,e)},g=function(t,e){for(var n=0;n<t.length;n++){var i=t.charCodeAt(n);d(i,e),h(i,e)}},p=2e9,b=function(t){return-128<t&&t<128&&Math.floor(t)!==t?p-(1024*t|0):t},m=0;m<i.length;m++){var y=i[m],v=c[y];if(null!=v){var w=this.properties[y],x=w.type,R=w.groupKey,_=void 0;null!=w.hashOverride?_=w.hashOverride(t,v):null!=v.pfValue&&(_=v.pfValue);var k=null==w.enums?v.value:null,E=null!=_,C=E||null!=k,S=v.units;x.number&&C&&!x.multiple?(f(b(E?_:k),R),!E&&null!=S&&g(S,R)):g(v.strValue,R)}}for(var T=[ae,oe],A=0;A<a.length;A++){var D=a[A],I=e.styleKeys[D];T[0]=ce(I[0],T[0]),T[1]=le(I[1],T[1])}e.styleKey=ue(T[0],T[1]);var L=e.styleKeys;e.labelDimsKey=de(L.labelDimensions);var O=r(t,["label"],L.labelDimensions);if(e.labelKey=de(O),e.labelStyleKey=de(he(L.commonLabel,O)),!s){var M=r(t,["source-label"],L.labelDimensions);e.sourceLabelKey=de(M),e.sourceLabelStyleKey=de(he(L.commonLabel,M));var N=r(t,["target-label"],L.labelDimensions);e.targetLabelKey=de(N),e.targetLabelStyleKey=de(he(L.commonLabel,N))}if(s){var B=e.styleKeys,P=B.nodeBody,F=B.nodeBorder,j=B.backgroundImage,$=B.compound,z=B.pie,H=[P,F,j,$,z].filter((function(t){return null!=t})).reduce(he,[ae,oe]);e.nodeKey=de(H),e.hasPie=null!=z&&z[0]!==ae&&z[1]!==oe}return o!==e.styleKey},ql.clearStyleHints=function(t){var e=t._private;e.styleCxtKey="",e.styleKeys={},e.styleKey=null,e.labelKey=null,e.labelStyleKey=null,e.sourceLabelKey=null,e.sourceLabelStyleKey=null,e.targetLabelKey=null,e.targetLabelStyleKey=null,e.nodeKey=null,e.hasPie=null},ql.applyParsedProperty=function(t,e){var n,i=this,a=e,r=t._private.style,o=i.types,s=i.properties[a.name].type,c=a.bypass,l=r[a.name],u=l&&l.bypass,d=t._private,h="mapping",f=function(t){return null==t?null:null!=t.pfValue?t.pfValue:t.value},g=function(){var e=f(l),n=f(a);i.checkTriggers(t,a.name,e,n)};if(a&&"pie"===a.name.substr(0,3)&&Se("The pie style properties are deprecated. Create charts using background images instead."),"curve-style"===e.name&&t.isEdge()&&("bezier"!==e.value&&t.isLoop()||"haystack"===e.value&&(t.source().isParent()||t.target().isParent()))&&(a=e=this.parse(e.name,"bezier",c)),a.delete)return r[a.name]=void 0,g(),!0;if(a.deleteBypassed)return l?!!l.bypass&&(l.bypassed=void 0,g(),!0):(g(),!0);if(a.deleteBypass)return l?!!l.bypass&&(r[a.name]=l.bypassed,g(),!0):(g(),!0);var p=function(){Se("Do not assign mappings to elements without corresponding data (i.e. ele `"+t.id()+"` has no mapping for property `"+a.name+"` with data field `"+a.field+"`); try a `["+a.field+"]` selector to limit scope to elements with `"+a.field+"` defined")};switch(a.mapped){case o.mapData:for(var b=a.field.split("."),m=d.data,y=0;y<b.length&&m;y++)m=m[b[y]];if(null==m)return p(),!1;var v;if(!k(m))return Se("Do not use continuous mappers without specifying numeric data (i.e. `"+a.field+": "+m+"` for `"+t.id()+"` is non-numeric)"),!1;var w=a.fieldMax-a.fieldMin;if((v=0===w?0:(m-a.fieldMin)/w)<0?v=0:v>1&&(v=1),s.color){var x=a.valueMin[0],R=a.valueMax[0],_=a.valueMin[1],E=a.valueMax[1],C=a.valueMin[2],S=a.valueMax[2],T=null==a.valueMin[3]?1:a.valueMin[3],A=null==a.valueMax[3]?1:a.valueMax[3],D=[Math.round(x+(R-x)*v),Math.round(_+(E-_)*v),Math.round(C+(S-C)*v),Math.round(T+(A-T)*v)];n={bypass:a.bypass,name:a.name,value:D,strValue:"rgb("+D[0]+", "+D[1]+", "+D[2]+")"}}else{if(!s.number)return!1;var I=a.valueMin+(a.valueMax-a.valueMin)*v;n=this.parse(a.name,I,a.bypass,h)}if(!n)return p(),!1;n.mapping=a,a=n;break;case o.data:for(var L=a.field.split("."),O=d.data,M=0;M<L.length&&O;M++)O=O[L[M]];if(null!=O&&(n=this.parse(a.name,O,a.bypass,h)),!n)return p(),!1;n.mapping=a,a=n;break;case o.fn:var N=a.value,B=null!=a.fnValue?a.fnValue:N(t);if(a.prevFnValue=B,null==B)return Se("Custom function mappers may not return null (i.e. `"+a.name+"` for ele `"+t.id()+"` is null)"),!1;if(!(n=this.parse(a.name,B,a.bypass,h)))return Se("Custom function mappers may not return invalid values for the property type (i.e. `"+a.name+"` for ele `"+t.id()+"` is invalid)"),!1;n.mapping=Ae(a),a=n;break;case void 0:break;default:return!1}return c?(a.bypassed=u?l.bypassed:l,r[a.name]=a):u?l.bypassed=a:r[a.name]=a,g(),!0},ql.cleanElements=function(t,e){for(var n=0;n<t.length;n++){var i=t[n];if(this.clearStyleHints(i),i.dirtyCompoundBoundsCache(),i.dirtyBoundingBoxCache(),e)for(var a=i._private.style,r=Object.keys(a),o=0;o<r.length;o++){var s=r[o],c=a[s];null!=c&&(c.bypass?c.bypassed=null:a[s]=null)}else i._private.style={}}},ql.update=function(){this._private.cy.mutableElements().updateStyle()},ql.updateTransitions=function(t,e){var n=this,i=t._private,a=t.pstyle("transition-property").value,r=t.pstyle("transition-duration").pfValue,o=t.pstyle("transition-delay").pfValue;if(a.length>0&&r>0){for(var s={},c=!1,l=0;l<a.length;l++){var u=a[l],d=t.pstyle(u),h=e[u];if(h){var f=h.prev,g=null!=h.next?h.next:d,p=!1,b=void 0,m=1e-6;f&&(k(f.pfValue)&&k(g.pfValue)?(p=g.pfValue-f.pfValue,b=f.pfValue+m*p):k(f.value)&&k(g.value)?(p=g.value-f.value,b=f.value+m*p):x(f.value)&&x(g.value)&&(p=f.value[0]!==g.value[0]||f.value[1]!==g.value[1]||f.value[2]!==g.value[2],b=f.strValue),p&&(s[u]=g.strValue,this.applyBypass(t,u,b),c=!0))}}if(!c)return;i.transitioning=!0,new $a((function(e){o>0?t.delayAnimation(o).play().promise().then(e):e()})).then((function(){return t.animation({style:s,duration:r,easing:t.pstyle("transition-timing-function").value,queue:!1}).play().promise()})).then((function(){n.removeBypasses(t,a),t.emitAndNotify("style"),i.transitioning=!1}))}else i.transitioning&&(this.removeBypasses(t,a),t.emitAndNotify("style"),i.transitioning=!1)},ql.checkTrigger=function(t,e,n,i,a,r){var o=this.properties[e],s=a(o);null!=s&&s(n,i)&&r(o)},ql.checkZOrderTrigger=function(t,e,n,i){var a=this;this.checkTrigger(t,e,n,i,(function(t){return t.triggersZOrder}),(function(){a._private.cy.notify("zorder",t)}))},ql.checkBoundsTrigger=function(t,e,n,i){this.checkTrigger(t,e,n,i,(function(t){return t.triggersBounds}),(function(a){t.dirtyCompoundBoundsCache(),t.dirtyBoundingBoxCache(),a.triggersBoundsOfParallelBeziers&&("curve-style"===e&&("bezier"===n||"bezier"===i)||"display"===e&&("none"===n||"none"===i))&&t.parallelEdges().forEach((function(t){t.isBundledBezier()&&t.dirtyBoundingBoxCache()}))}))},ql.checkTriggers=function(t,e,n,i){t.dirtyStyleCache(),this.checkZOrderTrigger(t,e,n,i),this.checkBoundsTrigger(t,e,n,i)};var Gl={applyBypass:function(t,e,n,i){var a=this,r=[],o=!0;if("*"===e||"**"===e){if(void 0!==n)for(var s=0;s<a.properties.length;s++){var c=a.properties[s].name,l=this.parse(c,n,!0);l&&r.push(l)}}else if(v(e)){var u=this.parse(e,n,!0);u&&r.push(u)}else{if(!R(e))return!1;var d=e;i=n;for(var h=Object.keys(d),f=0;f<h.length;f++){var g=h[f],p=d[g];if(void 0===p&&(p=d[$(g)]),void 0!==p){var b=this.parse(g,p,!0);b&&r.push(b)}}}if(0===r.length)return!1;for(var m=!1,y=0;y<t.length;y++){for(var w=t[y],x={},_=void 0,k=0;k<r.length;k++){var E=r[k];if(i){var C=w.pstyle(E.name);_=x[E.name]={prev:C}}m=this.applyParsedProperty(w,Ae(E))||m,i&&(_.next=w.pstyle(E.name))}m&&this.updateStyleHints(w),i&&this.updateTransitions(w,x,o)}return m},overrideBypass:function(t,e,n){e=j(e);for(var i=0;i<t.length;i++){var a=t[i],r=a._private.style[e],o=this.properties[e].type,s=o.color,c=o.mutiple,l=r?null!=r.pfValue?r.pfValue:r.value:null;r&&r.bypass?(r.value=n,null!=r.pfValue&&(r.pfValue=n),r.strValue=s?"rgb("+n.join(",")+")":c?n.join(" "):""+n,this.updateStyleHints(a)):this.applyBypass(a,e,n),this.checkTriggers(a,e,l,n)}},removeAllBypasses:function(t,e){return this.removeBypasses(t,this.propertyNames,e)},removeBypasses:function(t,e,n){for(var i=!0,a=0;a<t.length;a++){for(var r=t[a],o={},s=0;s<e.length;s++){var c=e[s],l=this.properties[c],u=r.pstyle(l.name);if(u&&u.bypass){var d="",h=this.parse(c,d,!0),f=o[l.name]={prev:u};this.applyParsedProperty(r,h),f.next=r.pstyle(l.name)}}this.updateStyleHints(r),n&&this.updateTransitions(r,o,i)}}},Zl={getEmSizeInPixels:function(){var t=this.containerCss("font-size");return null!=t?parseFloat(t):1},containerCss:function(t){var e=this._private.cy.container();if(h&&e&&h.getComputedStyle)return h.getComputedStyle(e).getPropertyValue(t)}},Kl={getRenderedStyle:function(t,e){return e?this.getStylePropertyValue(t,e,!0):this.getRawStyle(t,!0)},getRawStyle:function(t,e){var n=this;if(t=t[0]){for(var i={},a=0;a<n.properties.length;a++){var r=n.properties[a],o=n.getStylePropertyValue(t,r.name,e);null!=o&&(i[r.name]=o,i[$(r.name)]=o)}return i}},getIndexedStyle:function(t,e,n,i){return t.pstyle(e)[n][i]??t.cy().style().getDefaultProperty(e)[n][0]},getStylePropertyValue:function(t,e,n){var i=this;if(t=t[0]){var a=i.properties[e];a.alias&&(a=a.pointsTo);var r=a.type,o=t.pstyle(a.name);if(o){var s=o.value,c=o.units,l=o.strValue;if(n&&r.number&&null!=s&&k(s)){var u=t.cy().zoom(),d=function(t){return t*u},h=function(t,e){return d(t)+e},f=x(s);return(f?c.every((function(t){return null!=t})):null!=c)?f?s.map((function(t,e){return h(t,c[e])})).join(" "):h(s,c):f?s.map((function(t){return v(t)?t:""+d(t)})).join(" "):""+d(s)}if(null!=l)return l}return null}},getAnimationStartStyle:function(t,e){for(var n={},i=0;i<e.length;i++){var a=e[i].name,r=t.pstyle(a);void 0!==r&&(r=R(r)?this.parse(a,r.strValue):this.parse(a,r)),r&&(n[a]=r)}return n},getPropsList:function(t){var e=[],n=t,i=this.properties;if(n)for(var a=Object.keys(n),r=0;r<a.length;r++){var o=a[r],s=n[o],c=i[o]||i[j(o)],l=this.parse(c.name,s);l&&e.push(l)}return e},getNonDefaultPropertiesHash:function(t,e,n){var i,a,r,o,s,c,l=n.slice();for(s=0;s<e.length;s++)if(i=e[s],null!=(a=t.pstyle(i,!1)))if(null!=a.pfValue)l[0]=ce(o,l[0]),l[1]=le(o,l[1]);else for(r=a.strValue,c=0;c<r.length;c++)o=r.charCodeAt(c),l[0]=ce(o,l[0]),l[1]=le(o,l[1]);return l}};Kl.getPropertiesHash=Kl.getNonDefaultPropertiesHash;var Xl={appendFromJson:function(t){for(var e=this,n=0;n<t.length;n++){var i=t[n],a=i.selector,r=i.style||i.css,o=Object.keys(r);e.selector(a);for(var s=0;s<o.length;s++){var c=o[s],l=r[c];e.css(c,l)}}return e},fromJson:function(t){var e=this;return e.resetToDefault(),e.appendFromJson(t),e},json:function(){for(var t=[],e=this.defaultLength;e<this.length;e++){for(var n=this[e],i=n.selector,a=n.properties,r={},o=0;o<a.length;o++){var s=a[o];r[s.name]=s.strValue}t.push({selector:i?i.toString():"core",style:r})}return t}},Jl={appendFromString:function(t){var e,n,i,a=this,r=this,o=""+t;function s(){o=o.length>e.length?o.substr(e.length):""}function c(){n=n.length>i.length?n.substr(i.length):""}for(o=o.replace(/[/][*](\s|.)+?[*][/]/g,"");!o.match(/^\s*$/);){var l=o.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!l){Se("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+o);break}e=l[0];var u=l[1];if("core"!==u&&new Ps(u).invalid)Se("Skipping parsing of block: Invalid selector found in string stylesheet: "+u),s();else{var d=l[2],h=!1;n=d;for(var f=[];!n.match(/^\s*$/);){var g=n.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!g){Se("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+d),h=!0;break}i=g[0];var p=g[1],b=g[2];a.properties[p]?r.parse(p,b)?(f.push({name:p,val:b}),c()):(Se("Skipping property: Invalid property definition in: "+i),c()):(Se("Skipping property: Invalid property name in: "+i),c())}if(h){s();break}r.selector(u);for(var m=0;m<f.length;m++){var y=f[m];r.css(y.name,y.val)}s()}}return r},fromString:function(t){var e=this;return e.resetToDefault(),e.appendFromString(t),e}},Ql={};(function(){var t=U,e=q,n=Y,i=G,a=Z,r=function(t){return"^"+t+"\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"},o=function(r){var o=t+"|\\w+|"+e+"|"+n+"|"+i+"|"+a;return"^"+r+"\\s*\\(([\\w\\.]+)\\s*\\,\\s*("+t+")\\s*\\,\\s*("+t+")\\s*,\\s*("+o+")\\s*\\,\\s*("+o+")\\)$"},s=["^url\\s*\\(\\s*['\"]?(.+?)['\"]?\\s*\\)$","^(none)$","^(.+)$"];Ql.types={time:{number:!0,min:0,units:"s|ms",implicitUnits:"ms"},percent:{number:!0,min:0,max:100,units:"%",implicitUnits:"%"},percentages:{number:!0,min:0,max:100,units:"%",implicitUnits:"%",multiple:!0},zeroOneNumber:{number:!0,min:0,max:1,unitless:!0},zeroOneNumbers:{number:!0,min:0,max:1,unitless:!0,multiple:!0},nOneOneNumber:{number:!0,min:-1,max:1,unitless:!0},nonNegativeInt:{number:!0,min:0,integer:!0,unitless:!0},position:{enums:["parent","origin"]},nodeSize:{number:!0,min:0,enums:["label"]},number:{number:!0,unitless:!0},numbers:{number:!0,unitless:!0,multiple:!0},positiveNumber:{number:!0,unitless:!0,min:0,strictMin:!0},size:{number:!0,min:0},bidirectionalSize:{number:!0},bidirectionalSizeMaybePercent:{number:!0,allowPercent:!0},bidirectionalSizes:{number:!0,multiple:!0},sizeMaybePercent:{number:!0,min:0,allowPercent:!0},axisDirection:{enums:["horizontal","leftward","rightward","vertical","upward","downward","auto"]},paddingRelativeTo:{enums:["width","height","average","min","max"]},bgWH:{number:!0,min:0,allowPercent:!0,enums:["auto"],multiple:!0},bgPos:{number:!0,allowPercent:!0,multiple:!0},bgRelativeTo:{enums:["inner","include-padding"],multiple:!0},bgRepeat:{enums:["repeat","repeat-x","repeat-y","no-repeat"],multiple:!0},bgFit:{enums:["none","contain","cover"],multiple:!0},bgCrossOrigin:{enums:["anonymous","use-credentials"],multiple:!0},bgClip:{enums:["none","node"],multiple:!0},bgContainment:{enums:["inside","over"],multiple:!0},color:{color:!0},colors:{color:!0,multiple:!0},fill:{enums:["solid","linear-gradient","radial-gradient"]},bool:{enums:["yes","no"]},bools:{enums:["yes","no"],multiple:!0},lineStyle:{enums:["solid","dotted","dashed"]},lineCap:{enums:["butt","round","square"]},borderStyle:{enums:["solid","dotted","dashed","double"]},curveStyle:{enums:["bezier","unbundled-bezier","haystack","segments","straight","straight-triangle","taxi"]},fontFamily:{regex:'^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'},fontStyle:{enums:["italic","normal","oblique"]},fontWeight:{enums:["normal","bold","bolder","lighter","100","200","300","400","500","600","800","900",100,200,300,400,500,600,700,800,900]},textDecoration:{enums:["none","underline","overline","line-through"]},textTransform:{enums:["none","uppercase","lowercase"]},textWrap:{enums:["none","wrap","ellipsis"]},textOverflowWrap:{enums:["whitespace","anywhere"]},textBackgroundShape:{enums:["rectangle","roundrectangle","round-rectangle"]},nodeShape:{enums:["rectangle","roundrectangle","round-rectangle","cutrectangle","cut-rectangle","bottomroundrectangle","bottom-round-rectangle","barrel","ellipse","triangle","round-triangle","square","pentagon","round-pentagon","hexagon","round-hexagon","concavehexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","tag","round-tag","star","diamond","round-diamond","vee","rhomboid","polygon"]},overlayShape:{enums:["roundrectangle","round-rectangle","ellipse"]},compoundIncludeLabels:{enums:["include","exclude"]},arrowShape:{enums:["tee","triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","square","circle","diamond","chevron","none"]},arrowFill:{enums:["filled","hollow"]},display:{enums:["element","none"]},visibility:{enums:["hidden","visible"]},zCompoundDepth:{enums:["bottom","orphan","auto","top"]},zIndexCompare:{enums:["auto","manual"]},valign:{enums:["top","center","bottom"]},halign:{enums:["left","center","right"]},justification:{enums:["left","center","right","auto"]},text:{string:!0},data:{mapping:!0,regex:r("data")},layoutData:{mapping:!0,regex:r("layoutData")},scratch:{mapping:!0,regex:r("scratch")},mapData:{mapping:!0,regex:o("mapData")},mapLayoutData:{mapping:!0,regex:o("mapLayoutData")},mapScratch:{mapping:!0,regex:o("mapScratch")},fn:{mapping:!0,fn:!0},url:{regexes:s,singleRegexMatchValue:!0},urls:{regexes:s,singleRegexMatchValue:!0,multiple:!0},propList:{propList:!0},angle:{number:!0,units:"deg|rad",implicitUnits:"rad"},textRotation:{number:!0,units:"deg|rad",implicitUnits:"rad",enums:["none","autorotate"]},polygonPointList:{number:!0,multiple:!0,evenMultiple:!0,min:-1,max:1,unitless:!0},edgeDistances:{enums:["intersection","node-position"]},edgeEndpoint:{number:!0,multiple:!0,units:"%|px|em|deg|rad",implicitUnits:"px",enums:["inside-to-node","outside-to-node","outside-to-node-or-label","outside-to-line","outside-to-line-or-label"],singleEnum:!0,validate:function(t,e){switch(t.length){case 2:return"deg"!==e[0]&&"rad"!==e[0]&&"deg"!==e[1]&&"rad"!==e[1];case 1:return v(t[0])||"deg"===e[0]||"rad"===e[0];default:return!1}}},easing:{regexes:["^(spring)\\s*\\(\\s*("+t+")\\s*,\\s*("+t+")\\s*\\)$","^(cubic-bezier)\\s*\\(\\s*("+t+")\\s*,\\s*("+t+")\\s*,\\s*("+t+")\\s*,\\s*("+t+")\\s*\\)$"],enums:["linear","ease","ease-in","ease-out","ease-in-out","ease-in-sine","ease-out-sine","ease-in-out-sine","ease-in-quad","ease-out-quad","ease-in-out-quad","ease-in-cubic","ease-out-cubic","ease-in-out-cubic","ease-in-quart","ease-out-quart","ease-in-out-quart","ease-in-quint","ease-out-quint","ease-in-out-quint","ease-in-expo","ease-out-expo","ease-in-out-expo","ease-in-circ","ease-out-circ","ease-in-out-circ"]},gradientDirection:{enums:["to-bottom","to-top","to-left","to-right","to-bottom-right","to-bottom-left","to-top-right","to-top-left","to-right-bottom","to-left-bottom","to-right-top","to-left-top"]},boundsExpansion:{number:!0,multiple:!0,min:0,validate:function(t){var e=t.length;return 1===e||2===e||4===e}}};var c={zeroNonZero:function(t,e){return(null==t||null==e)&&t!==e||0==t&&0!=e||0!=t&&0==e},any:function(t,e){return t!=e},emptyNonEmpty:function(t,e){var n=O(t),i=O(e);return n&&!i||!n&&i}},l=Ql.types,u=[{name:"label",type:l.text,triggersBounds:c.any,triggersZOrder:c.emptyNonEmpty},{name:"text-rotation",type:l.textRotation,triggersBounds:c.any},{name:"text-margin-x",type:l.bidirectionalSize,triggersBounds:c.any},{name:"text-margin-y",type:l.bidirectionalSize,triggersBounds:c.any}],d=[{name:"source-label",type:l.text,triggersBounds:c.any},{name:"source-text-rotation",type:l.textRotation,triggersBounds:c.any},{name:"source-text-margin-x",type:l.bidirectionalSize,triggersBounds:c.any},{name:"source-text-margin-y",type:l.bidirectionalSize,triggersBounds:c.any},{name:"source-text-offset",type:l.size,triggersBounds:c.any}],h=[{name:"target-label",type:l.text,triggersBounds:c.any},{name:"target-text-rotation",type:l.textRotation,triggersBounds:c.any},{name:"target-text-margin-x",type:l.bidirectionalSize,triggersBounds:c.any},{name:"target-text-margin-y",type:l.bidirectionalSize,triggersBounds:c.any},{name:"target-text-offset",type:l.size,triggersBounds:c.any}],f=[{name:"font-family",type:l.fontFamily,triggersBounds:c.any},{name:"font-style",type:l.fontStyle,triggersBounds:c.any},{name:"font-weight",type:l.fontWeight,triggersBounds:c.any},{name:"font-size",type:l.size,triggersBounds:c.any},{name:"text-transform",type:l.textTransform,triggersBounds:c.any},{name:"text-wrap",type:l.textWrap,triggersBounds:c.any},{name:"text-overflow-wrap",type:l.textOverflowWrap,triggersBounds:c.any},{name:"text-max-width",type:l.size,triggersBounds:c.any},{name:"text-outline-width",type:l.size,triggersBounds:c.any},{name:"line-height",type:l.positiveNumber,triggersBounds:c.any}],g=[{name:"text-valign",type:l.valign,triggersBounds:c.any},{name:"text-halign",type:l.halign,triggersBounds:c.any},{name:"color",type:l.color},{name:"text-outline-color",type:l.color},{name:"text-outline-opacity",type:l.zeroOneNumber},{name:"text-background-color",type:l.color},{name:"text-background-opacity",type:l.zeroOneNumber},{name:"text-background-padding",type:l.size,triggersBounds:c.any},{name:"text-border-opacity",type:l.zeroOneNumber},{name:"text-border-color",type:l.color},{name:"text-border-width",type:l.size,triggersBounds:c.any},{name:"text-border-style",type:l.borderStyle,triggersBounds:c.any},{name:"text-background-shape",type:l.textBackgroundShape,triggersBounds:c.any},{name:"text-justification",type:l.justification}],p=[{name:"events",type:l.bool},{name:"text-events",type:l.bool}],b=[{name:"display",type:l.display,triggersZOrder:c.any,triggersBounds:c.any,triggersBoundsOfParallelBeziers:!0},{name:"visibility",type:l.visibility,triggersZOrder:c.any},{name:"opacity",type:l.zeroOneNumber,triggersZOrder:c.zeroNonZero},{name:"text-opacity",type:l.zeroOneNumber},{name:"min-zoomed-font-size",type:l.size},{name:"z-compound-depth",type:l.zCompoundDepth,triggersZOrder:c.any},{name:"z-index-compare",type:l.zIndexCompare,triggersZOrder:c.any},{name:"z-index",type:l.nonNegativeInt,triggersZOrder:c.any}],m=[{name:"overlay-padding",type:l.size,triggersBounds:c.any},{name:"overlay-color",type:l.color},{name:"overlay-opacity",type:l.zeroOneNumber,triggersBounds:c.zeroNonZero},{name:"overlay-shape",type:l.overlayShape,triggersBounds:c.any}],y=[{name:"underlay-padding",type:l.size,triggersBounds:c.any},{name:"underlay-color",type:l.color},{name:"underlay-opacity",type:l.zeroOneNumber,triggersBounds:c.zeroNonZero},{name:"underlay-shape",type:l.overlayShape,triggersBounds:c.any}],w=[{name:"transition-property",type:l.propList},{name:"transition-duration",type:l.time},{name:"transition-delay",type:l.time},{name:"transition-timing-function",type:l.easing}],x=function(t,e){return"label"===e.value?-t.poolIndex():e.pfValue},R=[{name:"height",type:l.nodeSize,triggersBounds:c.any,hashOverride:x},{name:"width",type:l.nodeSize,triggersBounds:c.any,hashOverride:x},{name:"shape",type:l.nodeShape,triggersBounds:c.any},{name:"shape-polygon-points",type:l.polygonPointList,triggersBounds:c.any},{name:"background-color",type:l.color},{name:"background-fill",type:l.fill},{name:"background-opacity",type:l.zeroOneNumber},{name:"background-blacken",type:l.nOneOneNumber},{name:"background-gradient-stop-colors",type:l.colors},{name:"background-gradient-stop-positions",type:l.percentages},{name:"background-gradient-direction",type:l.gradientDirection},{name:"padding",type:l.sizeMaybePercent,triggersBounds:c.any},{name:"padding-relative-to",type:l.paddingRelativeTo,triggersBounds:c.any},{name:"bounds-expansion",type:l.boundsExpansion,triggersBounds:c.any}],_=[{name:"border-color",type:l.color},{name:"border-opacity",type:l.zeroOneNumber},{name:"border-width",type:l.size,triggersBounds:c.any},{name:"border-style",type:l.borderStyle}],k=[{name:"background-image",type:l.urls},{name:"background-image-crossorigin",type:l.bgCrossOrigin},{name:"background-image-opacity",type:l.zeroOneNumbers},{name:"background-image-containment",type:l.bgContainment},{name:"background-image-smoothing",type:l.bools},{name:"background-position-x",type:l.bgPos},{name:"background-position-y",type:l.bgPos},{name:"background-width-relative-to",type:l.bgRelativeTo},{name:"background-height-relative-to",type:l.bgRelativeTo},{name:"background-repeat",type:l.bgRepeat},{name:"background-fit",type:l.bgFit},{name:"background-clip",type:l.bgClip},{name:"background-width",type:l.bgWH},{name:"background-height",type:l.bgWH},{name:"background-offset-x",type:l.bgPos},{name:"background-offset-y",type:l.bgPos}],E=[{name:"position",type:l.position,triggersBounds:c.any},{name:"compound-sizing-wrt-labels",type:l.compoundIncludeLabels,triggersBounds:c.any},{name:"min-width",type:l.size,triggersBounds:c.any},{name:"min-width-bias-left",type:l.sizeMaybePercent,triggersBounds:c.any},{name:"min-width-bias-right",type:l.sizeMaybePercent,triggersBounds:c.any},{name:"min-height",type:l.size,triggersBounds:c.any},{name:"min-height-bias-top",type:l.sizeMaybePercent,triggersBounds:c.any},{name:"min-height-bias-bottom",type:l.sizeMaybePercent,triggersBounds:c.any}],C=[{name:"line-style",type:l.lineStyle},{name:"line-color",type:l.color},{name:"line-fill",type:l.fill},{name:"line-cap",type:l.lineCap},{name:"line-opacity",type:l.zeroOneNumber},{name:"line-dash-pattern",type:l.numbers},{name:"line-dash-offset",type:l.number},{name:"line-gradient-stop-colors",type:l.colors},{name:"line-gradient-stop-positions",type:l.percentages},{name:"curve-style",type:l.curveStyle,triggersBounds:c.any,triggersBoundsOfParallelBeziers:!0},{name:"haystack-radius",type:l.zeroOneNumber,triggersBounds:c.any},{name:"source-endpoint",type:l.edgeEndpoint,triggersBounds:c.any},{name:"target-endpoint",type:l.edgeEndpoint,triggersBounds:c.any},{name:"control-point-step-size",type:l.size,triggersBounds:c.any},{name:"control-point-distances",type:l.bidirectionalSizes,triggersBounds:c.any},{name:"control-point-weights",type:l.numbers,triggersBounds:c.any},{name:"segment-distances",type:l.bidirectionalSizes,triggersBounds:c.any},{name:"segment-weights",type:l.numbers,triggersBounds:c.any},{name:"taxi-turn",type:l.bidirectionalSizeMaybePercent,triggersBounds:c.any},{name:"taxi-turn-min-distance",type:l.size,triggersBounds:c.any},{name:"taxi-direction",type:l.axisDirection,triggersBounds:c.any},{name:"edge-distances",type:l.edgeDistances,triggersBounds:c.any},{name:"arrow-scale",type:l.positiveNumber,triggersBounds:c.any},{name:"loop-direction",type:l.angle,triggersBounds:c.any},{name:"loop-sweep",type:l.angle,triggersBounds:c.any},{name:"source-distance-from-node",type:l.size,triggersBounds:c.any},{name:"target-distance-from-node",type:l.size,triggersBounds:c.any}],S=[{name:"ghost",type:l.bool,triggersBounds:c.any},{name:"ghost-offset-x",type:l.bidirectionalSize,triggersBounds:c.any},{name:"ghost-offset-y",type:l.bidirectionalSize,triggersBounds:c.any},{name:"ghost-opacity",type:l.zeroOneNumber}],T=[{name:"selection-box-color",type:l.color},{name:"selection-box-opacity",type:l.zeroOneNumber},{name:"selection-box-border-color",type:l.color},{name:"selection-box-border-width",type:l.size},{name:"active-bg-color",type:l.color},{name:"active-bg-opacity",type:l.zeroOneNumber},{name:"active-bg-size",type:l.size},{name:"outside-texture-bg-color",type:l.color},{name:"outside-texture-bg-opacity",type:l.zeroOneNumber}],A=[];Ql.pieBackgroundN=16,A.push({name:"pie-size",type:l.sizeMaybePercent});for(var D=1;D<=Ql.pieBackgroundN;D++)A.push({name:"pie-"+D+"-background-color",type:l.color}),A.push({name:"pie-"+D+"-background-size",type:l.percent}),A.push({name:"pie-"+D+"-background-opacity",type:l.zeroOneNumber});var I=[],L=Ql.arrowPrefixes=["source","mid-source","target","mid-target"];[{name:"arrow-shape",type:l.arrowShape,triggersBounds:c.any},{name:"arrow-color",type:l.color},{name:"arrow-fill",type:l.arrowFill}].forEach((function(t){L.forEach((function(e){var n=e+"-"+t.name,i=t.type,a=t.triggersBounds;I.push({name:n,type:i,triggersBounds:a})}))}),{});var M=Ql.properties=[].concat(p,w,b,m,y,S,g,f,u,d,h,R,_,k,A,E,C,I,T),N=Ql.propertyGroups={behavior:p,transition:w,visibility:b,overlay:m,underlay:y,ghost:S,commonLabel:g,labelDimensions:f,mainLabel:u,sourceLabel:d,targetLabel:h,nodeBody:R,nodeBorder:_,backgroundImage:k,pie:A,compound:E,edgeLine:C,edgeArrow:I,core:T},B=Ql.propertyGroupNames={};(Ql.propertyGroupKeys=Object.keys(N)).forEach((function(t){B[t]=N[t].map((function(t){return t.name})),N[t].forEach((function(e){return e.groupKey=t}))}));var P=Ql.aliases=[{name:"content",pointsTo:"label"},{name:"control-point-distance",pointsTo:"control-point-distances"},{name:"control-point-weight",pointsTo:"control-point-weights"},{name:"edge-text-rotation",pointsTo:"text-rotation"},{name:"padding-left",pointsTo:"padding"},{name:"padding-right",pointsTo:"padding"},{name:"padding-top",pointsTo:"padding"},{name:"padding-bottom",pointsTo:"padding"}];Ql.propertyNames=M.map((function(t){return t.name}));for(var F=0;F<M.length;F++){var j=M[F];M[j.name]=j}for(var $=0;$<P.length;$++){var z=P[$],H=M[z.pointsTo],V={name:z.name,alias:!0,pointsTo:H};M.push(V),M[z.name]=V}})(),Ql.getDefaultProperty=function(t){return this.getDefaultProperties()[t]},Ql.getDefaultProperties=function(){var t=this._private;if(null!=t.defaultProperties)return t.defaultProperties;for(var e=J({"selection-box-color":"#ddd","selection-box-opacity":.65,"selection-box-border-color":"#aaa","selection-box-border-width":1,"active-bg-color":"black","active-bg-opacity":.15,"active-bg-size":30,"outside-texture-bg-color":"#000","outside-texture-bg-opacity":.125,events:"yes","text-events":"no","text-valign":"top","text-halign":"center","text-justification":"auto","line-height":1,color:"#000","text-outline-color":"#000","text-outline-width":0,"text-outline-opacity":1,"text-opacity":1,"text-decoration":"none","text-transform":"none","text-wrap":"none","text-overflow-wrap":"whitespace","text-max-width":9999,"text-background-color":"#000","text-background-opacity":0,"text-background-shape":"rectangle","text-background-padding":0,"text-border-opacity":0,"text-border-width":0,"text-border-style":"solid","text-border-color":"#000","font-family":"Helvetica Neue, Helvetica, sans-serif","font-style":"normal","font-weight":"normal","font-size":16,"min-zoomed-font-size":0,"text-rotation":"none","source-text-rotation":"none","target-text-rotation":"none",visibility:"visible",display:"element",opacity:1,"z-compound-depth":"auto","z-index-compare":"auto","z-index":0,label:"","text-margin-x":0,"text-margin-y":0,"source-label":"","source-text-offset":0,"source-text-margin-x":0,"source-text-margin-y":0,"target-label":"","target-text-offset":0,"target-text-margin-x":0,"target-text-margin-y":0,"overlay-opacity":0,"overlay-color":"#000","overlay-padding":10,"overlay-shape":"round-rectangle","underlay-opacity":0,"underlay-color":"#000","underlay-padding":10,"underlay-shape":"round-rectangle","transition-property":"none","transition-duration":0,"transition-delay":0,"transition-timing-function":"linear","background-blacken":0,"background-color":"#999","background-fill":"solid","background-opacity":1,"background-image":"none","background-image-crossorigin":"anonymous","background-image-opacity":1,"background-image-containment":"inside","background-image-smoothing":"yes","background-position-x":"50%","background-position-y":"50%","background-offset-x":0,"background-offset-y":0,"background-width-relative-to":"include-padding","background-height-relative-to":"include-padding","background-repeat":"no-repeat","background-fit":"none","background-clip":"node","background-width":"auto","background-height":"auto","border-color":"#000","border-opacity":1,"border-width":0,"border-style":"solid",height:30,width:30,shape:"ellipse","shape-polygon-points":"-1, -1, 1, -1, 1, 1, -1, 1","bounds-expansion":0,"background-gradient-direction":"to-bottom","background-gradient-stop-colors":"#999","background-gradient-stop-positions":"0%",ghost:"no","ghost-offset-y":0,"ghost-offset-x":0,"ghost-opacity":0,padding:0,"padding-relative-to":"width",position:"origin","compound-sizing-wrt-labels":"include","min-width":0,"min-width-bias-left":0,"min-width-bias-right":0,"min-height":0,"min-height-bias-top":0,"min-height-bias-bottom":0},{"pie-size":"100%"},[{name:"pie-{{i}}-background-color",value:"black"},{name:"pie-{{i}}-background-size",value:"0%"},{name:"pie-{{i}}-background-opacity",value:1}].reduce((function(t,e){for(var n=1;n<=Ql.pieBackgroundN;n++){var i=e.name.replace("{{i}}",n),a=e.value;t[i]=a}return t}),{}),{"line-style":"solid","line-color":"#999","line-fill":"solid","line-cap":"butt","line-opacity":1,"line-gradient-stop-colors":"#999","line-gradient-stop-positions":"0%","control-point-step-size":40,"control-point-weights":.5,"segment-weights":.5,"segment-distances":20,"taxi-turn":"50%","taxi-turn-min-distance":10,"taxi-direction":"auto","edge-distances":"intersection","curve-style":"haystack","haystack-radius":0,"arrow-scale":1,"loop-direction":"-45deg","loop-sweep":"-90deg","source-distance-from-node":0,"target-distance-from-node":0,"source-endpoint":"outside-to-node","target-endpoint":"outside-to-node","line-dash-pattern":[6,3],"line-dash-offset":0},[{name:"arrow-shape",value:"none"},{name:"arrow-color",value:"#999"},{name:"arrow-fill",value:"filled"}].reduce((function(t,e){return Ql.arrowPrefixes.forEach((function(n){var i=n+"-"+e.name,a=e.value;t[i]=a})),t}),{})),n={},i=0;i<this.properties.length;i++){var a=this.properties[i];if(!a.pointsTo){var r=a.name,o=e[r],s=this.parse(r,o);n[r]=s}}return t.defaultProperties=n,t.defaultProperties},Ql.addDefaultStylesheet=function(){this.selector(":parent").css({shape:"rectangle",padding:10,"background-color":"#eee","border-color":"#ccc","border-width":1}).selector("edge").css({width:3}).selector(":loop").css({"curve-style":"bezier"}).selector("edge:compound").css({"curve-style":"bezier","source-endpoint":"outside-to-line","target-endpoint":"outside-to-line"}).selector(":selected").css({"background-color":"#0169D9","line-color":"#0169D9","source-arrow-color":"#0169D9","target-arrow-color":"#0169D9","mid-source-arrow-color":"#0169D9","mid-target-arrow-color":"#0169D9"}).selector(":parent:selected").css({"background-color":"#CCE1F9","border-color":"#aec8e5"}).selector(":active").css({"overlay-color":"black","overlay-padding":10,"overlay-opacity":.25}),this.defaultLength=this.length};var tu={parse:function(t,e,n,i){var a=this;if(w(e))return a.parseImplWarn(t,e,n,i);var r,o=pe(t,""+e,n?"t":"f","mapping"===i||!0===i||!1===i||null==i?"dontcare":i),s=a.propCache=a.propCache||[];return(r=s[o])||(r=s[o]=a.parseImplWarn(t,e,n,i)),(n||"mapping"===i)&&(r=Ae(r))&&(r.value=Ae(r.value)),r},parseImplWarn:function(t,e,n,i){var a=this.parseImpl(t,e,n,i);return!a&&null!=e&&Se("The style property `".concat(t,": ").concat(e,"` is invalid")),a&&("width"===a.name||"height"===a.name)&&"label"===e&&Se("The style value of `label` is deprecated for `"+a.name+"`"),a},parseImpl:function(t,e,n,i){var a=this;t=j(t);var r=a.properties[t],o=e,s=a.types;if(!r||void 0===e)return null;r.alias&&(r=r.pointsTo,t=r.name);var c=v(e);c&&(e=e.trim());var l,u,d=r.type;if(!d)return null;if(n&&(""===e||null===e))return{name:t,value:e,bypass:!0,deleteBypass:!0};if(w(e))return{name:t,value:e,strValue:"fn",mapped:s.fn,bypass:n};if(!(!c||i||e.length<7||"a"!==e[1])){if(e.length>=7&&"d"===e[0]&&(l=new RegExp(s.data.regex).exec(e))){if(n)return!1;var h=s.data;return{name:t,value:l,strValue:""+e,mapped:h,field:l[1],bypass:n}}if(e.length>=10&&"m"===e[0]&&(u=new RegExp(s.mapData.regex).exec(e))){if(n||d.multiple)return!1;var f=s.mapData;if(!d.color&&!d.number)return!1;var g=this.parse(t,u[4]);if(!g||g.mapped)return!1;var p=this.parse(t,u[5]);if(!p||p.mapped)return!1;if(g.pfValue===p.pfValue||g.strValue===p.strValue)return Se("`"+t+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+t+": "+g.strValue+"`"),this.parse(t,g.strValue);if(d.color){var b=g.value,m=p.value;if(!(b[0]!==m[0]||b[1]!==m[1]||b[2]!==m[2]||b[3]!==m[3]&&(null!=b[3]&&1!==b[3]||null!=m[3]&&1!==m[3])))return!1}return{name:t,value:u,strValue:""+e,mapped:f,field:u[1],fieldMin:parseFloat(u[2]),fieldMax:parseFloat(u[3]),valueMin:g.value,valueMax:p.value,bypass:n}}}if(d.multiple&&"multiple"!==i){var y;if(y=c?e.split(/\s+/):x(e)?e:[e],d.evenMultiple&&y.length%2!=0)return null;for(var R=[],_=[],k=[],C="",S=!1,T=0;T<y.length;T++){var A=a.parse(t,y[T],n,"multiple");S=S||v(A.value),R.push(A.value),k.push(null!=A.pfValue?A.pfValue:A.value),_.push(A.units),C+=(T>0?" ":"")+A.strValue}return d.validate&&!d.validate(R,_)?null:d.singleEnum&&S?1===R.length&&v(R[0])?{name:t,value:R[0],strValue:R[0],bypass:n}:null:{name:t,value:R,pfValue:k,strValue:C,bypass:n,units:_}}var D=function(){for(var i=0;i<d.enums.length;i++)if(d.enums[i]===e)return{name:t,value:e,strValue:""+e,bypass:n};return null};if(d.number){var I,L="px";if(d.units&&(I=d.units),d.implicitUnits&&(L=d.implicitUnits),!d.unitless)if(c){var O="px|em"+(d.allowPercent?"|\\%":"");I&&(O=I);var M=e.match("^("+U+")("+O+")?$");M&&(e=M[1],I=M[2]||L)}else(!I||d.implicitUnits)&&(I=L);if(e=parseFloat(e),isNaN(e)&&void 0===d.enums)return null;if(isNaN(e)&&void 0!==d.enums)return e=o,D();if(d.integer&&!E(e)||void 0!==d.min&&(e<d.min||d.strictMin&&e===d.min)||void 0!==d.max&&(e>d.max||d.strictMax&&e===d.max))return null;var N={name:t,value:e,strValue:""+e+(I||""),units:I,bypass:n};return d.unitless||"px"!==I&&"em"!==I?N.pfValue=e:N.pfValue="px"!==I&&I?this.getEmSizeInPixels()*e:e,("ms"===I||"s"===I)&&(N.pfValue="ms"===I?e:1e3*e),("deg"===I||"rad"===I)&&(N.pfValue="rad"===I?e:yn(e)),"%"===I&&(N.pfValue=e/100),N}if(d.propList){var B=[],P=""+e;if("none"!==P){for(var F=P.split(/\s*,\s*|\s+/),$=0;$<F.length;$++){var z=F[$].trim();a.properties[z]?B.push(z):Se("`"+z+"` is not a valid property name")}if(0===B.length)return null}return{name:t,value:B,strValue:0===B.length?"none":B.join(" "),bypass:n}}if(d.color){var H=it(e);return H?{name:t,value:H,pfValue:H,strValue:"rgb("+H[0]+","+H[1]+","+H[2]+")",bypass:n}:null}if(d.regex||d.regexes){if(d.enums){var V=D();if(V)return V}for(var q=d.regexes?d.regexes:[d.regex],W=0;W<q.length;W++){var Y=new RegExp(q[W]).exec(e);if(Y)return{name:t,value:d.singleRegexMatchValue?Y[1]:Y,strValue:""+e,bypass:n}}return null}return d.string?{name:t,value:""+e,strValue:""+e,bypass:n}:d.enums?D():null}},eu=function t(e){if(!(this instanceof t))return new t(e);D(e)?(this._private={cy:e,coreStyle:{}},this.length=0,this.resetToDefault()):Ee("A style must have a core reference")},nu=eu.prototype;nu.instanceString=function(){return"style"},nu.clear=function(){for(var t=this._private,e=t.cy.elements(),n=0;n<this.length;n++)this[n]=void 0;return this.length=0,t.contextStyles={},t.propDiffs={},this.cleanElements(e,!0),e.forEach((function(t){var e=t[0]._private;e.styleDirty=!0,e.appliedInitStyle=!1})),this},nu.resetToDefault=function(){return this.clear(),this.addDefaultStylesheet(),this},nu.core=function(t){return this._private.coreStyle[t]||this.getDefaultProperty(t)},nu.selector=function(t){var e="core"===t?null:new Ps(t),n=this.length++;return this[n]={selector:e,properties:[],mappedProperties:[],index:n},this},nu.css=function(){var t=this,e=arguments;if(1===e.length)for(var n=e[0],i=0;i<t.properties.length;i++){var a=t.properties[i],r=n[a.name];void 0===r&&(r=n[$(a.name)]),void 0!==r&&this.cssRule(a.name,r)}else 2===e.length&&this.cssRule(e[0],e[1]);return this},nu.style=nu.css,nu.cssRule=function(t,e){var n=this.parse(t,e);if(n){var i=this.length-1;this[i].properties.push(n),this[i].properties[n.name]=n,n.name.match(/pie-(\d+)-background-size/)&&n.value&&(this._private.hasPie=!0),n.mapped&&this[i].mappedProperties.push(n),!this[i].selector&&(this._private.coreStyle[n.name]=n)}return this},nu.append=function(t){return I(t)?t.appendToStyle(this):x(t)?this.appendFromJson(t):v(t)&&this.appendFromString(t),this},eu.fromJson=function(t,e){var n=new eu(t);return n.fromJson(e),n},eu.fromString=function(t,e){return new eu(t).fromString(e)},[ql,Gl,Zl,Kl,Xl,Jl,Ql,tu].forEach((function(t){J(nu,t)})),eu.types=nu.types,eu.properties=nu.properties,eu.propertyGroups=nu.propertyGroups,eu.propertyGroupNames=nu.propertyGroupNames,eu.propertyGroupKeys=nu.propertyGroupKeys;var iu={style:function(t){return t&&this.setStyle(t).update(),this._private.style},setStyle:function(t){var e=this._private;return I(t)?e.style=t.generateStyle(this):x(t)?e.style=eu.fromJson(this,t):v(t)?e.style=eu.fromString(this,t):e.style=eu(this),e.style},updateStyle:function(){this.mutableElements().updateStyle()}},au="single",ru={autolock:function(t){return void 0===t?this._private.autolock:(this._private.autolock=!!t,this)},autoungrabify:function(t){return void 0===t?this._private.autoungrabify:(this._private.autoungrabify=!!t,this)},autounselectify:function(t){return void 0===t?this._private.autounselectify:(this._private.autounselectify=!!t,this)},selectionType:function(t){var e=this._private;return null==e.selectionType&&(e.selectionType=au),void 0===t?e.selectionType:(("additive"===t||"single"===t)&&(e.selectionType=t),this)},panningEnabled:function(t){return void 0===t?this._private.panningEnabled:(this._private.panningEnabled=!!t,this)},userPanningEnabled:function(t){return void 0===t?this._private.userPanningEnabled:(this._private.userPanningEnabled=!!t,this)},zoomingEnabled:function(t){return void 0===t?this._private.zoomingEnabled:(this._private.zoomingEnabled=!!t,this)},userZoomingEnabled:function(t){return void 0===t?this._private.userZoomingEnabled:(this._private.userZoomingEnabled=!!t,this)},boxSelectionEnabled:function(t){return void 0===t?this._private.boxSelectionEnabled:(this._private.boxSelectionEnabled=!!t,this)},pan:function(){var t,e,n,i,a,r=arguments,o=this._private.pan;switch(r.length){case 0:return o;case 1:if(v(r[0]))return o[t=r[0]];if(R(r[0])){if(!this._private.panningEnabled)return this;i=(n=r[0]).x,a=n.y,k(i)&&(o.x=i),k(a)&&(o.y=a),this.emit("pan viewport")}break;case 2:if(!this._private.panningEnabled)return this;t=r[0],e=r[1],("x"===t||"y"===t)&&k(e)&&(o[t]=e),this.emit("pan viewport")}return this.notify("viewport"),this},panBy:function(t,e){var n,i,a,r,o,s=arguments,c=this._private.pan;if(!this._private.panningEnabled)return this;switch(s.length){case 1:R(t)&&(r=(a=s[0]).x,o=a.y,k(r)&&(c.x+=r),k(o)&&(c.y+=o),this.emit("pan viewport"));break;case 2:i=e,("x"===(n=t)||"y"===n)&&k(i)&&(c[n]+=i),this.emit("pan viewport")}return this.notify("viewport"),this},fit:function(t,e){var n=this.getFitViewport(t,e);if(n){var i=this._private;i.zoom=n.zoom,i.pan=n.pan,this.emit("pan zoom viewport"),this.notify("viewport")}return this},getFitViewport:function(t,e){if(k(t)&&void 0===e&&(e=t,t=void 0),this._private.panningEnabled&&this._private.zoomingEnabled){var n;if(v(t)){var i=t;t=this.$(i)}else if(N(t)){var a=t;(n={x1:a.x1,y1:a.y1,x2:a.x2,y2:a.y2}).w=n.x2-n.x1,n.h=n.y2-n.y1}else S(t)||(t=this.mutableElements());if(!S(t)||!t.empty()){n=n||t.boundingBox();var r,o=this.width(),s=this.height();if(e=k(e)?e:0,!isNaN(o)&&!isNaN(s)&&o>0&&s>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0)return{zoom:r=(r=(r=Math.min((o-2*e)/n.w,(s-2*e)/n.h))>this._private.maxZoom?this._private.maxZoom:r)<this._private.minZoom?this._private.minZoom:r,pan:{x:(o-r*(n.x1+n.x2))/2,y:(s-r*(n.y1+n.y2))/2}}}}},zoomRange:function(t,e){var n=this._private;if(null==e){var i=t;t=i.min,e=i.max}return k(t)&&k(e)&&t<=e?(n.minZoom=t,n.maxZoom=e):k(t)&&void 0===e&&t<=n.maxZoom?n.minZoom=t:k(e)&&void 0===t&&e>=n.minZoom&&(n.maxZoom=e),this},minZoom:function(t){return void 0===t?this._private.minZoom:this.zoomRange({min:t})},maxZoom:function(t){return void 0===t?this._private.maxZoom:this.zoomRange({max:t})},getZoomedViewport:function(t){var e,n,i=this._private,a=i.pan,r=i.zoom,o=!1;if(i.zoomingEnabled||(o=!0),k(t)?n=t:R(t)&&(n=t.level,null!=t.position?e=dn(t.position,r,a):null!=t.renderedPosition&&(e=t.renderedPosition),null!=e&&!i.panningEnabled&&(o=!0)),n=(n=n>i.maxZoom?i.maxZoom:n)<i.minZoom?i.minZoom:n,o||!k(n)||n===r||null!=e&&(!k(e.x)||!k(e.y)))return null;if(null!=e){var s=a,c=r,l=n;return{zoomed:!0,panned:!0,zoom:l,pan:{x:-l/c*(e.x-s.x)+e.x,y:-l/c*(e.y-s.y)+e.y}}}return{zoomed:!0,panned:!1,zoom:n,pan:a}},zoom:function(t){if(void 0===t)return this._private.zoom;var e=this.getZoomedViewport(t),n=this._private;return null!=e&&e.zoomed?(n.zoom=e.zoom,e.panned&&(n.pan.x=e.pan.x,n.pan.y=e.pan.y),this.emit("zoom"+(e.panned?" pan":"")+" viewport"),this.notify("viewport"),this):this},viewport:function(t){var e=this._private,n=!0,i=!0,a=[],r=!1,o=!1;if(!t)return this;if(k(t.zoom)||(n=!1),R(t.pan)||(i=!1),!n&&!i)return this;if(n){var s=t.zoom;s<e.minZoom||s>e.maxZoom||!e.zoomingEnabled?r=!0:(e.zoom=s,a.push("zoom"))}if(i&&(!r||!t.cancelOnFailedZoom)&&e.panningEnabled){var c=t.pan;k(c.x)&&(e.pan.x=c.x,o=!1),k(c.y)&&(e.pan.y=c.y,o=!1),o||a.push("pan")}return a.length>0&&(a.push("viewport"),this.emit(a.join(" ")),this.notify("viewport")),this},center:function(t){var e=this.getCenterPan(t);return e&&(this._private.pan=e,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(t,e){if(this._private.panningEnabled){if(v(t)){var n=t;t=this.mutableElements().filter(n)}else S(t)||(t=this.mutableElements());if(0!==t.length){var i=t.boundingBox(),a=this.width(),r=this.height();return{x:(a-(e=void 0===e?this._private.zoom:e)*(i.x1+i.x2))/2,y:(r-e*(i.y1+i.y2))/2}}}},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled?(this.viewport({pan:{x:0,y:0},zoom:1}),this):this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var t,e,n=this._private,i=n.container;return n.sizeCache=n.sizeCache||(i?(t=h.getComputedStyle(i),e=function(e){return parseFloat(t.getPropertyValue(e))},{width:i.clientWidth-e("padding-left")-e("padding-right"),height:i.clientHeight-e("padding-top")-e("padding-bottom")}):{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var t=this._private.pan,e=this._private.zoom,n=this.renderedExtent(),i={x1:(n.x1-t.x)/e,x2:(n.x2-t.x)/e,y1:(n.y1-t.y)/e,y2:(n.y2-t.y)/e};return i.w=i.x2-i.x1,i.h=i.y2-i.y1,i},renderedExtent:function(){var t=this.width(),e=this.height();return{x1:0,y1:0,x2:t,y2:e,w:t,h:e}},multiClickDebounceTime:function(t){return t?(this._private.multiClickDebounceTime=t,this):this._private.multiClickDebounceTime}};ru.centre=ru.center,ru.autolockNodes=ru.autolock,ru.autoungrabifyNodes=ru.autoungrabify;var ou={data:fs.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:fs.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:fs.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:fs.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};ou.attr=ou.data,ou.removeAttr=ou.removeData;var su=function(t){var e=this,n=(t=J({},t)).container;n&&!C(n)&&C(n[0])&&(n=n[0]);var i=n?n._cyreg:null;(i=i||{})&&i.cy&&(i.cy.destroy(),i={});var a=i.readies=i.readies||[];n&&(n._cyreg=i),i.cy=e;var r=void 0!==h&&void 0!==n&&!t.headless,o=t;o.layout=J({name:r?"grid":"null"},o.layout),o.renderer=J({name:r?"canvas":"null"},o.renderer);var s=function(t,e,n){return void 0!==e?e:void 0!==n?n:t},c=this._private={container:n,ready:!1,options:o,elements:new xl(this),listeners:[],aniEles:new xl(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:s(!0,o.zoomingEnabled),userZoomingEnabled:s(!0,o.userZoomingEnabled),panningEnabled:s(!0,o.panningEnabled),userPanningEnabled:s(!0,o.userPanningEnabled),boxSelectionEnabled:s(!0,o.boxSelectionEnabled),autolock:s(!1,o.autolock,o.autolockNodes),autoungrabify:s(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:s(!1,o.autounselectify),styleEnabled:void 0===o.styleEnabled?r:o.styleEnabled,zoom:k(o.zoom)?o.zoom:1,pan:{x:R(o.pan)&&k(o.pan.x)?o.pan.x:0,y:R(o.pan)&&k(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:s(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});var l=function(t,e){if(t.some(B))return $a.all(t).then(e);e(t)};c.styleEnabled&&e.setStyle([]);var u=J({},o,o.renderer);e.initRenderer(u);var d=function(t,n,i){e.notifications(!1);var a=e.mutableElements();a.length>0&&a.remove(),null!=t&&(R(t)||x(t))&&e.add(t),e.one("layoutready",(function(t){e.notifications(!0),e.emit(t),e.one("load",n),e.emitAndNotify("load")})).one("layoutstop",(function(){e.one("done",i),e.emit("done")}));var r=J({},e._private.options.layout);r.eles=e.elements(),e.layout(r).run()};l([o.style,o.elements],(function(t){var n=t[0],r=t[1];c.styleEnabled&&e.style().append(n),d(r,(function(){e.startAnimationLoop(),c.ready=!0,w(o.ready)&&e.on("ready",o.ready);for(var t=0;t<a.length;t++){var n=a[t];e.on("ready",n)}i&&(i.readies=[]),e.emit("ready")}),o.done)}))},cu=su.prototype;J(cu,{instanceString:function(){return"core"},isReady:function(){return this._private.ready},destroyed:function(){return this._private.destroyed},ready:function(t){return this.isReady()?this.emitter().emit("ready",[],t):this.on("ready",t),this},destroy:function(){var t=this;if(!t.destroyed())return t.stopAnimationLoop(),t.destroyRenderer(),this.emit("destroy"),t._private.destroyed=!0,t},hasElementWithId:function(t){return this._private.elements.hasElementWithId(t)},getElementById:function(t){return this._private.elements.getElementById(t)},hasCompoundNodes:function(){return this._private.hasCompoundNodes},headless:function(){return this._private.renderer.isHeadless()},styleEnabled:function(){return this._private.styleEnabled},addToPool:function(t){return this._private.elements.merge(t),this},removeFromPool:function(t){return this._private.elements.unmerge(t),this},container:function(){return this._private.container||null},mount:function(t){if(null!=t){var e=this,n=e._private,i=n.options;return!C(t)&&C(t[0])&&(t=t[0]),e.stopAnimationLoop(),e.destroyRenderer(),n.container=t,n.styleEnabled=!0,e.invalidateSize(),e.initRenderer(J({},i,i.renderer,{name:"null"===i.renderer.name?"canvas":i.renderer.name})),e.startAnimationLoop(),e.style(i.style),e.emit("mount"),e}},unmount:function(){var t=this;return t.stopAnimationLoop(),t.destroyRenderer(),t.initRenderer({name:"null"}),t.emit("unmount"),t},options:function(){return Ae(this._private.options)},json:function(t){var e=this,n=e._private,i=e.mutableElements(),a=function(t){return e.getElementById(t.id())};if(R(t)){if(e.startBatch(),t.elements){var r={},o=function(t,n){for(var i=[],a=[],o=0;o<t.length;o++){var s=t[o];if(s.data.id){var c=""+s.data.id,l=e.getElementById(c);r[c]=!0,0!==l.length?a.push({ele:l,json:s}):(n&&(s.group=n),i.push(s))}else Se("cy.json() cannot handle elements without an ID attribute")}e.add(i);for(var u=0;u<a.length;u++){var d=a[u],h=d.ele,f=d.json;h.json(f)}};if(x(t.elements))o(t.elements);else for(var s=["nodes","edges"],c=0;c<s.length;c++){var l=s[c],u=t.elements[l];x(u)&&o(u,l)}var d=e.collection();i.filter((function(t){return!r[t.id()]})).forEach((function(t){t.isParent()?d.merge(t):t.remove()})),d.forEach((function(t){return t.children().move({parent:null})})),d.forEach((function(t){return a(t).remove()}))}t.style&&e.style(t.style),null!=t.zoom&&t.zoom!==n.zoom&&e.zoom(t.zoom),t.pan&&(t.pan.x!==n.pan.x||t.pan.y!==n.pan.y)&&e.pan(t.pan),t.data&&e.data(t.data);for(var h=["minZoom","maxZoom","zoomingEnabled","userZoomingEnabled","panningEnabled","userPanningEnabled","boxSelectionEnabled","autolock","autoungrabify","autounselectify","multiClickDebounceTime"],f=0;f<h.length;f++){var g=h[f];null!=t[g]&&e[g](t[g])}return e.endBatch(),this}var p={};t?p.elements=this.elements().map((function(t){return t.json()})):(p.elements={},i.forEach((function(t){var e=t.group();p.elements[e]||(p.elements[e]=[]),p.elements[e].push(t.json())}))),this._private.styleEnabled&&(p.style=e.style().json()),p.data=Ae(e.data());var b=n.options;return p.zoomingEnabled=n.zoomingEnabled,p.userZoomingEnabled=n.userZoomingEnabled,p.zoom=n.zoom,p.minZoom=n.minZoom,p.maxZoom=n.maxZoom,p.panningEnabled=n.panningEnabled,p.userPanningEnabled=n.userPanningEnabled,p.pan=Ae(n.pan),p.boxSelectionEnabled=n.boxSelectionEnabled,p.renderer=Ae(b.renderer),p.hideEdgesOnViewport=b.hideEdgesOnViewport,p.textureOnViewport=b.textureOnViewport,p.wheelSensitivity=b.wheelSensitivity,p.motionBlur=b.motionBlur,p.multiClickDebounceTime=b.multiClickDebounceTime,p}}),cu.$id=cu.getElementById,[_l,Nl,Fl,jl,$l,zl,Ul,Vl,iu,ru,ou].forEach((function(t){J(cu,t)}));var lu={fit:!0,directed:!1,padding:30,circle:!1,grid:!1,spacingFactor:1.75,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,roots:void 0,maximal:!1,depthSort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,e){return!0},ready:void 0,stop:void 0,transform:function(t,e){return e}},uu=function(t){return t.scratch("breadthfirst")},du=function(t,e){return t.scratch("breadthfirst",e)};function hu(t){this.options=J({},lu,t)}hu.prototype.run=function(){var t,e=this.options,n=e,i=e.cy,a=n.eles,r=a.nodes().filter((function(t){return!t.isParent()})),o=a,s=n.directed,c=n.maximal||n.maximalAdjustments>0,l=An(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:i.width(),h:i.height()});if(S(n.roots))t=n.roots;else if(x(n.roots)){for(var u=[],d=0;d<n.roots.length;d++){var h=n.roots[d],f=i.getElementById(h);u.push(f)}t=i.collection(u)}else if(v(n.roots))t=i.$(n.roots);else if(s)t=r.roots();else{var g=a.components();t=i.collection();for(var p=function(e){var n=g[e],i=n.maxDegree(!1),a=n.filter((function(t){return t.degree(!1)===i}));t=t.add(a)},b=0;b<g.length;b++)p(b)}var m=[],y={},w=function(t,e){null==m[e]&&(m[e]=[]);var n=m[e].length;m[e].push(t),du(t,{index:n,depth:e})},R=function(t,e){var n=uu(t),i=n.depth,a=n.index;m[i][a]=null,w(t,e)};o.bfs({roots:t,directed:n.directed,visit:function(t,e,n,i,a){var r=t[0],o=r.id();w(r,a),y[o]=!0}});for(var _=[],k=0;k<r.length;k++){var E=r[k];y[E.id()]||_.push(E)}var C=function(t){for(var e=m[t],n=0;n<e.length;n++){var i=e[n];null!=i?du(i,{depth:t,index:n}):(e.splice(n,1),n--)}},T=function(){for(var t=0;t<m.length;t++)C(t)},A=function(t,e){for(var n=uu(t),i=t.incomers().filter((function(t){return t.isNode()&&a.has(t)})),r=-1,o=t.id(),s=0;s<i.length;s++){var c=i[s],l=uu(c);r=Math.max(r,l.depth)}return n.depth<=r&&(e[o]?null:(R(t,r+1),e[o]=!0,!0))};if(s&&c){var D=[],I={},L=function(t){return D.push(t)},O=function(){return D.shift()};for(r.forEach((function(t){return D.push(t)}));D.length>0;){var M=O(),N=A(M,I);if(N)M.outgoers().filter((function(t){return t.isNode()&&a.has(t)})).forEach(L);else if(null===N){Se("Detected double maximal shift for node `"+M.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}T();var B=0;if(n.avoidOverlap)for(var P=0;P<r.length;P++){var F=r[P].layoutDimensions(n),j=F.w,$=F.h;B=Math.max(B,j,$)}var z={},H=function(t){if(z[t.id()])return z[t.id()];for(var e=uu(t).depth,n=t.neighborhood(),i=0,a=0,o=0;o<n.length;o++){var s=n[o];if(!s.isEdge()&&!s.isParent()&&r.has(s)){var c=uu(s);if(null!=c){var l=c.index,u=c.depth;if(null!=l&&null!=u){var d=m[u].length;u<e&&(i+=l/d,a++)}}}}return i/=a=Math.max(1,a),0===a&&(i=0),z[t.id()]=i,i},U=function(t,e){var n=H(t)-H(e);return 0===n?K(t.id(),e.id()):n};void 0!==n.depthSort&&(U=n.depthSort);for(var V=0;V<m.length;V++)m[V].sort(U),C(V);for(var q=[],W=0;W<_.length;W++)q.push(_[W]);m.unshift(q),T();for(var Y=0,G=0;G<m.length;G++)Y=Math.max(m[G].length,Y);var Z={x:l.x1+l.w/2,y:l.x1+l.h/2},X=m.reduce((function(t,e){return Math.max(t,e.length)}),0),J=function(t){var e=uu(t),i=e.depth,a=e.index,r=m[i].length,o=Math.max(l.w/((n.grid?X:r)+1),B),s=Math.max(l.h/(m.length+1),B),c=Math.min(l.w/2/m.length,l.h/2/m.length);if(c=Math.max(c,B),n.circle){var u=c*i+c-(m.length>0&&m[0].length<=3?c/2:0),d=2*Math.PI/m[i].length*a;return 0===i&&1===m[0].length&&(u=1),{x:Z.x+u*Math.cos(d),y:Z.y+u*Math.sin(d)}}return{x:Z.x+(a+1-(r+1)/2)*o,y:(i+1)*s}};return a.nodes().layoutPositions(this,n,J),this};var fu={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,e){return!0},ready:void 0,stop:void 0,transform:function(t,e){return e}};function gu(t){this.options=J({},fu,t)}gu.prototype.run=function(){var t=this.options,e=t,n=t.cy,i=e.eles,a=void 0!==e.counterclockwise?!e.counterclockwise:e.clockwise,r=i.nodes().not(":parent");e.sort&&(r=r.sort(e.sort));for(var o,s=An(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),c={x:s.x1+s.w/2,y:s.y1+s.h/2},l=(void 0===e.sweep?2*Math.PI-2*Math.PI/r.length:e.sweep)/Math.max(1,r.length-1),u=0,d=0;d<r.length;d++){var h=r[d].layoutDimensions(e),f=h.w,g=h.h;u=Math.max(u,f,g)}if(o=k(e.radius)?e.radius:r.length<=1?0:Math.min(s.h,s.w)/2-u,r.length>1&&e.avoidOverlap){u*=1.75;var p=Math.cos(l)-Math.cos(0),b=Math.sin(l)-Math.sin(0),m=Math.sqrt(u*u/(p*p+b*b));o=Math.max(m,o)}var y=function(t,n){var i=e.startAngle+n*l*(a?1:-1),r=o*Math.cos(i),s=o*Math.sin(i);return{x:c.x+r,y:c.y+s}};return i.nodes().layoutPositions(this,e,y),this};var pu={fit:!0,padding:30,startAngle:1.5*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(t){return t.degree()},levelWidth:function(t){return t.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,e){return!0},ready:void 0,stop:void 0,transform:function(t,e){return e}};function bu(t){this.options=J({},pu,t)}bu.prototype.run=function(){for(var t=this.options,e=t,n=void 0!==e.counterclockwise?!e.counterclockwise:e.clockwise,i=t.cy,a=e.eles,r=a.nodes().not(":parent"),o=An(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:i.width(),h:i.height()}),s={x:o.x1+o.w/2,y:o.y1+o.h/2},c=[],l=0,u=0;u<r.length;u++){var d=r[u],h=void 0;h=e.concentric(d),c.push({value:h,node:d}),d._private.scratch.concentric=h}r.updateStyle();for(var f=0;f<r.length;f++){var g=r[f].layoutDimensions(e);l=Math.max(l,g.w,g.h)}c.sort((function(t,e){return e.value-t.value}));for(var p=e.levelWidth(r),b=[[]],m=b[0],y=0;y<c.length;y++){var v=c[y];m.length>0&&Math.abs(m[0].value-v.value)>=p&&(m=[],b.push(m)),m.push(v)}var w=l+e.minNodeSpacing;if(!e.avoidOverlap){var x=b.length>0&&b[0].length>1,R=(Math.min(o.w,o.h)/2-w)/(b.length+x?1:0);w=Math.min(w,R)}for(var _=0,k=0;k<b.length;k++){var E=b[k],C=void 0===e.sweep?2*Math.PI-2*Math.PI/E.length:e.sweep,S=E.dTheta=C/Math.max(1,E.length-1);if(E.length>1&&e.avoidOverlap){var T=Math.cos(S)-Math.cos(0),A=Math.sin(S)-Math.sin(0),D=Math.sqrt(w*w/(T*T+A*A));_=Math.max(D,_)}E.r=_,_+=w}if(e.equidistant){for(var I=0,L=0,O=0;O<b.length;O++){var M=b[O].r-L;I=Math.max(I,M)}L=0;for(var N=0;N<b.length;N++){var B=b[N];0===N&&(L=B.r),B.r=L,L+=I}}for(var P={},F=0;F<b.length;F++)for(var j=b[F],$=j.dTheta,z=j.r,H=0;H<j.length;H++){var U=j[H],V=e.startAngle+(n?1:-1)*$*H,q={x:s.x+z*Math.cos(V),y:s.y+z*Math.sin(V)};P[U.node.id()]=q}return a.nodes().layoutPositions(this,e,(function(t){var e=t.id();return P[e]})),this};var mu,yu={ready:function(){},stop:function(){},animate:!0,animationEasing:void 0,animationDuration:void 0,animateFilter:function(t,e){return!0},animationThreshold:250,refresh:20,fit:!0,padding:30,boundingBox:void 0,nodeDimensionsIncludeLabels:!1,randomize:!1,componentSpacing:40,nodeRepulsion:function(t){return 2048},nodeOverlap:4,idealEdgeLength:function(t){return 32},edgeElasticity:function(t){return 32},nestingFactor:1.2,gravity:1,numIter:1e3,initialTemp:1e3,coolingFactor:.99,minTemp:1};function vu(t){this.options=J({},yu,t),this.options.layout=this}vu.prototype.run=function(){var t=this.options,e=t.cy,n=this;n.stopped=!1,(!0===t.animate||!1===t.animate)&&n.emit({type:"layoutstart",layout:n}),mu=!0===t.debug;var i=xu(e,n,t);mu&&wu(i),t.randomize&&ku(i);var a=ie(),r=function(){Cu(i,e,t),!0===t.fit&&e.fit(t.padding)},o=function(e){return!(n.stopped||e>=t.numIter||(Su(i,t),i.temperature=i.temperature*t.coolingFactor,i.temperature<t.minTemp))},s=function(){if(!0===t.animate||!1===t.animate)r(),n.one("layoutstop",t.stop),n.emit({type:"layoutstop",layout:n});else{var e=t.eles.nodes(),a=Eu(i,t,e);e.layoutPositions(n,t,a)}},c=0,l=!0;if(!0===t.animate)!function e(){for(var n=0;l&&n<t.refresh;)l=o(c),c++,n++;l?(ie()-a>=t.animationThreshold&&r(),ne(e)):(ju(i,t),s())}();else{for(;l;)l=o(c),c++;ju(i,t),s()}return this},vu.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},vu.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var wu,xu=function(t,e,n){for(var i=n.eles.edges(),a=n.eles.nodes(),r={isCompound:t.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:a.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:i.size(),temperature:n.initialTemp,clientWidth:t.width(),clientHeight:t.width(),boundingBox:An(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()})},o=n.eles.components(),s={},c=0;c<o.length;c++)for(var l=o[c],u=0;u<l.length;u++)s[l[u].id()]=c;for(c=0;c<r.nodeSize;c++){var d=(b=a[c]).layoutDimensions(n);(O={}).isLocked=b.locked(),O.id=b.data("id"),O.parentId=b.data("parent"),O.cmptId=s[b.id()],O.children=[],O.positionX=b.position("x"),O.positionY=b.position("y"),O.offsetX=0,O.offsetY=0,O.height=d.w,O.width=d.h,O.maxX=O.positionX+O.width/2,O.minX=O.positionX-O.width/2,O.maxY=O.positionY+O.height/2,O.minY=O.positionY-O.height/2,O.padLeft=parseFloat(b.style("padding")),O.padRight=parseFloat(b.style("padding")),O.padTop=parseFloat(b.style("padding")),O.padBottom=parseFloat(b.style("padding")),O.nodeRepulsion=w(n.nodeRepulsion)?n.nodeRepulsion(b):n.nodeRepulsion,r.layoutNodes.push(O),r.idToIndex[O.id]=c}var h=[],f=0,g=-1,p=[];for(c=0;c<r.nodeSize;c++){var b,m=(b=r.layoutNodes[c]).parentId;null!=m?r.layoutNodes[r.idToIndex[m]].children.push(b.id):(h[++g]=b.id,p.push(b.id))}for(r.graphSet.push(p);f<=g;){var y=h[f++],v=r.idToIndex[y],x=r.layoutNodes[v].children;if(x.length>0)for(r.graphSet.push(x),c=0;c<x.length;c++)h[++g]=x[c]}for(c=0;c<r.graphSet.length;c++){var R=r.graphSet[c];for(u=0;u<R.length;u++){var _=r.idToIndex[R[u]];r.indexToGraph[_]=c}}for(c=0;c<r.edgeSize;c++){var k=i[c],E={};E.id=k.data("id"),E.sourceId=k.data("source"),E.targetId=k.data("target");var C=w(n.idealEdgeLength)?n.idealEdgeLength(k):n.idealEdgeLength,S=w(n.edgeElasticity)?n.edgeElasticity(k):n.edgeElasticity,T=r.idToIndex[E.sourceId],A=r.idToIndex[E.targetId];if(r.indexToGraph[T]!=r.indexToGraph[A]){for(var D=Ru(E.sourceId,E.targetId,r),I=r.graphSet[D],L=0,O=r.layoutNodes[T];-1===I.indexOf(O.id);)O=r.layoutNodes[r.idToIndex[O.parentId]],L++;for(O=r.layoutNodes[A];-1===I.indexOf(O.id);)O=r.layoutNodes[r.idToIndex[O.parentId]],L++;C*=L*n.nestingFactor}E.idealLength=C,E.elasticity=S,r.layoutEdges.push(E)}return r},Ru=function(t,e,n){var i=_u(t,e,0,n);return 2>i.count?0:i.graph},_u=function t(e,n,i,a){var r=a.graphSet[i];if(-1<r.indexOf(e)&&-1<r.indexOf(n))return{count:2,graph:i};for(var o=0,s=0;s<r.length;s++){var c=r[s],l=a.idToIndex[c],u=a.layoutNodes[l].children;if(0!==u.length){var d=t(e,n,a.indexToGraph[a.idToIndex[u[0]]],a);if(0!==d.count){if(1!==d.count)return d;if(2==++o)break}}}return{count:o,graph:i}},ku=function(t,e){for(var n=t.clientWidth,i=t.clientHeight,a=0;a<t.nodeSize;a++){var r=t.layoutNodes[a];0===r.children.length&&!r.isLocked&&(r.positionX=Math.random()*n,r.positionY=Math.random()*i)}},Eu=function(t,e,n){var i=t.boundingBox,a={x1:1/0,x2:-1/0,y1:1/0,y2:-1/0};return e.boundingBox&&(n.forEach((function(e){var n=t.layoutNodes[t.idToIndex[e.data("id")]];a.x1=Math.min(a.x1,n.positionX),a.x2=Math.max(a.x2,n.positionX),a.y1=Math.min(a.y1,n.positionY),a.y2=Math.max(a.y2,n.positionY)})),a.w=a.x2-a.x1,a.h=a.y2-a.y1),function(n,r){var o=t.layoutNodes[t.idToIndex[n.data("id")]];if(e.boundingBox){var s=(o.positionX-a.x1)/a.w,c=(o.positionY-a.y1)/a.h;return{x:i.x1+s*i.w,y:i.y1+c*i.h}}return{x:o.positionX,y:o.positionY}}},Cu=function(t,e,n){var i=n.layout,a=n.eles.nodes(),r=Eu(t,n,a);a.positions(r),!0!==t.ready&&(t.ready=!0,i.one("layoutready",n.ready),i.emit({type:"layoutready",layout:this}))},Su=function(t,e,n){Tu(t,e),Ou(t),Mu(t,e),Nu(t),Bu(t)},Tu=function(t,e){for(var n=0;n<t.graphSet.length;n++)for(var i=t.graphSet[n],a=i.length,r=0;r<a;r++)for(var o=t.layoutNodes[t.idToIndex[i[r]]],s=r+1;s<a;s++){var c=t.layoutNodes[t.idToIndex[i[s]]];Du(o,c,t,e)}},Au=function(t){return-t+2*t*Math.random()},Du=function(t,e,n,i){if(t.cmptId===e.cmptId||n.isCompound){var a=e.positionX-t.positionX,r=e.positionY-t.positionY,o=1;0===a&&0===r&&(a=Au(o),r=Au(o));var s=Iu(t,e,a,r);if(s>0)var c=(u=i.nodeOverlap*s)*a/(b=Math.sqrt(a*a+r*r)),l=u*r/b;else{var u,d=Lu(t,a,r),h=Lu(e,-1*a,-1*r),f=h.x-d.x,g=h.y-d.y,p=f*f+g*g,b=Math.sqrt(p);c=(u=(t.nodeRepulsion+e.nodeRepulsion)/p)*f/b,l=u*g/b}t.isLocked||(t.offsetX-=c,t.offsetY-=l),e.isLocked||(e.offsetX+=c,e.offsetY+=l)}},Iu=function(t,e,n,i){if(n>0)var a=t.maxX-e.minX;else a=e.maxX-t.minX;if(i>0)var r=t.maxY-e.minY;else r=e.maxY-t.minY;return a>=0&&r>=0?Math.sqrt(a*a+r*r):0},Lu=function(t,e,n){var i=t.positionX,a=t.positionY,r=t.height||1,o=t.width||1,s=n/e,c=r/o,l={};return 0===e&&0<n||0===e&&0>n?(l.x=i,l.y=a+r/2,l):0<e&&-1*c<=s&&s<=c?(l.x=i+o/2,l.y=a+o*n/2/e,l):0>e&&-1*c<=s&&s<=c?(l.x=i-o/2,l.y=a-o*n/2/e,l):0<n&&(s<=-1*c||s>=c)?(l.x=i+r*e/2/n,l.y=a+r/2,l):(0>n&&(s<=-1*c||s>=c)&&(l.x=i-r*e/2/n,l.y=a-r/2),l)},Ou=function(t,e){for(var n=0;n<t.edgeSize;n++){var i=t.layoutEdges[n],a=t.idToIndex[i.sourceId],r=t.layoutNodes[a],o=t.idToIndex[i.targetId],s=t.layoutNodes[o],c=s.positionX-r.positionX,l=s.positionY-r.positionY;if(0!==c||0!==l){var u=Lu(r,c,l),d=Lu(s,-1*c,-1*l),h=d.x-u.x,f=d.y-u.y,g=Math.sqrt(h*h+f*f),p=Math.pow(i.idealLength-g,2)/i.elasticity;if(0!==g)var b=p*h/g,m=p*f/g;else b=0,m=0;r.isLocked||(r.offsetX+=b,r.offsetY+=m),s.isLocked||(s.offsetX-=b,s.offsetY-=m)}}},Mu=function(t,e){if(0!==e.gravity)for(var n=1,i=0;i<t.graphSet.length;i++){var a=t.graphSet[i],r=a.length;if(0===i)var o=t.clientHeight/2,s=t.clientWidth/2;else{var c=t.layoutNodes[t.idToIndex[a[0]]],l=t.layoutNodes[t.idToIndex[c.parentId]];o=l.positionX,s=l.positionY}for(var u=0;u<r;u++){var d=t.layoutNodes[t.idToIndex[a[u]]];if(!d.isLocked){var h=o-d.positionX,f=s-d.positionY,g=Math.sqrt(h*h+f*f);if(g>n){var p=e.gravity*h/g,b=e.gravity*f/g;d.offsetX+=p,d.offsetY+=b}}}}},Nu=function(t,e){var n=[],i=0,a=-1;for(n.push.apply(n,t.graphSet[0]),a+=t.graphSet[0].length;i<=a;){var r=n[i++],o=t.idToIndex[r],s=t.layoutNodes[o],c=s.children;if(0<c.length&&!s.isLocked){for(var l=s.offsetX,u=s.offsetY,d=0;d<c.length;d++){var h=t.layoutNodes[t.idToIndex[c[d]]];h.offsetX+=l,h.offsetY+=u,n[++a]=c[d]}s.offsetX=0,s.offsetY=0}}},Bu=function(t,e){for(var n=0;n<t.nodeSize;n++)0<(a=t.layoutNodes[n]).children.length&&(a.maxX=void 0,a.minX=void 0,a.maxY=void 0,a.minY=void 0);for(n=0;n<t.nodeSize;n++)if(!(0<(a=t.layoutNodes[n]).children.length||a.isLocked)){var i=Pu(a.offsetX,a.offsetY,t.temperature);a.positionX+=i.x,a.positionY+=i.y,a.offsetX=0,a.offsetY=0,a.minX=a.positionX-a.width,a.maxX=a.positionX+a.width,a.minY=a.positionY-a.height,a.maxY=a.positionY+a.height,Fu(a,t)}for(n=0;n<t.nodeSize;n++){var a;0<(a=t.layoutNodes[n]).children.length&&!a.isLocked&&(a.positionX=(a.maxX+a.minX)/2,a.positionY=(a.maxY+a.minY)/2,a.width=a.maxX-a.minX,a.height=a.maxY-a.minY)}},Pu=function(t,e,n){var i=Math.sqrt(t*t+e*e);if(i>n)var a={x:n*t/i,y:n*e/i};else a={x:t,y:e};return a},Fu=function t(e,n){var i=e.parentId;if(null!=i){var a=n.layoutNodes[n.idToIndex[i]],r=!1;if((null==a.maxX||e.maxX+a.padRight>a.maxX)&&(a.maxX=e.maxX+a.padRight,r=!0),(null==a.minX||e.minX-a.padLeft<a.minX)&&(a.minX=e.minX-a.padLeft,r=!0),(null==a.maxY||e.maxY+a.padBottom>a.maxY)&&(a.maxY=e.maxY+a.padBottom,r=!0),(null==a.minY||e.minY-a.padTop<a.minY)&&(a.minY=e.minY-a.padTop,r=!0),r)return t(a,n)}},ju=function(t,e){for(var n=t.layoutNodes,i=[],a=0;a<n.length;a++){var r=n[a],o=r.cmptId;(i[o]=i[o]||[]).push(r)}var s=0;for(a=0;a<i.length;a++)if(p=i[a]){p.x1=1/0,p.x2=-1/0,p.y1=1/0,p.y2=-1/0;for(var c=0;c<p.length;c++){var l=p[c];p.x1=Math.min(p.x1,l.positionX-l.width/2),p.x2=Math.max(p.x2,l.positionX+l.width/2),p.y1=Math.min(p.y1,l.positionY-l.height/2),p.y2=Math.max(p.y2,l.positionY+l.height/2)}p.w=p.x2-p.x1,p.h=p.y2-p.y1,s+=p.w*p.h}i.sort((function(t,e){return e.w*e.h-t.w*t.h}));var u=0,d=0,h=0,f=0,g=Math.sqrt(s)*t.clientWidth/t.clientHeight;for(a=0;a<i.length;a++){var p;if(p=i[a]){for(c=0;c<p.length;c++)(l=p[c]).isLocked||(l.positionX+=u-p.x1,l.positionY+=d-p.y1);u+=p.w+e.componentSpacing,h+=p.w+e.componentSpacing,f=Math.max(f,p.h),h>g&&(d+=f+e.componentSpacing,u=0,h=0,f=0)}}},$u={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(t){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,e){return!0},ready:void 0,stop:void 0,transform:function(t,e){return e}};function zu(t){this.options=J({},$u,t)}zu.prototype.run=function(){var t=this.options,e=t,n=t.cy,i=e.eles,a=i.nodes().not(":parent");e.sort&&(a=a.sort(e.sort));var r=An(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});if(0===r.h||0===r.w)i.nodes().layoutPositions(this,e,(function(t){return{x:r.x1,y:r.y1}}));else{var o=a.size(),s=Math.sqrt(o*r.h/r.w),c=Math.round(s),l=Math.round(r.w/r.h*s),u=function(t){if(null==t)return Math.min(c,l);Math.min(c,l)==c?c=t:l=t},d=function(t){if(null==t)return Math.max(c,l);Math.max(c,l)==c?c=t:l=t},h=e.rows,f=null!=e.cols?e.cols:e.columns;if(null!=h&&null!=f)c=h,l=f;else if(null!=h&&null==f)c=h,l=Math.ceil(o/c);else if(null==h&&null!=f)l=f,c=Math.ceil(o/l);else if(l*c>o){var g=u(),p=d();(g-1)*p>=o?u(g-1):(p-1)*g>=o&&d(p-1)}else for(;l*c<o;){var b=u(),m=d();(m+1)*b>=o?d(m+1):u(b+1)}var y=r.w/l,v=r.h/c;if(e.condense&&(y=0,v=0),e.avoidOverlap)for(var w=0;w<a.length;w++){var x=a[w],R=x._private.position;(null==R.x||null==R.y)&&(R.x=0,R.y=0);var _=x.layoutDimensions(e),k=e.avoidOverlapPadding,E=_.w+k,C=_.h+k;y=Math.max(y,E),v=Math.max(v,C)}for(var S={},T=function(t,e){return!!S["c-"+t+"-"+e]},A=function(t,e){S["c-"+t+"-"+e]=!0},D=0,I=0,L=function(){++I>=l&&(I=0,D++)},O={},M=0;M<a.length;M++){var N=a[M],B=e.position(N);if(B&&(void 0!==B.row||void 0!==B.col)){var P={row:B.row,col:B.col};if(void 0===P.col)for(P.col=0;T(P.row,P.col);)P.col++;else if(void 0===P.row)for(P.row=0;T(P.row,P.col);)P.row++;O[N.id()]=P,A(P.row,P.col)}}var F=function(t,e){var n,i;if(t.locked()||t.isParent())return!1;var a=O[t.id()];if(a)n=a.col*y+y/2+r.x1,i=a.row*v+v/2+r.y1;else{for(;T(D,I);)L();n=I*y+y/2+r.x1,i=D*v+v/2+r.y1,A(D,I),L()}return{x:n,y:i}};a.layoutPositions(this,e,F)}return this};var Hu={ready:function(){},stop:function(){}};function Uu(t){this.options=J({},Hu,t)}Uu.prototype.run=function(){var t=this.options,e=t.eles,n=this;return t.cy,n.emit("layoutstart"),e.nodes().positions((function(){return{x:0,y:0}})),n.one("layoutready",t.ready),n.emit("layoutready"),n.one("layoutstop",t.stop),n.emit("layoutstop"),this},Uu.prototype.stop=function(){return this};var Vu={positions:void 0,zoom:void 0,pan:void 0,fit:!0,padding:30,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,e){return!0},ready:void 0,stop:void 0,transform:function(t,e){return e}};function qu(t){this.options=J({},Vu,t)}qu.prototype.run=function(){var t=this.options,e=t.eles.nodes(),n=w(t.positions);function i(e){return null==t.positions?un(e.position()):n?t.positions(e):t.positions[e._private.data.id]??null}return e.layoutPositions(this,t,(function(t,e){var n=i(t);return!t.locked()&&null!=n&&n})),this};var Wu={fit:!0,padding:30,boundingBox:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,e){return!0},ready:void 0,stop:void 0,transform:function(t,e){return e}};function Yu(t){this.options=J({},Wu,t)}Yu.prototype.run=function(){var t=this.options,e=t.cy,n=t.eles,i=An(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),a=function(t,e){return{x:i.x1+Math.round(Math.random()*i.w),y:i.y1+Math.round(Math.random()*i.h)}};return n.nodes().layoutPositions(this,t,a),this};var Gu=[{name:"breadthfirst",impl:hu},{name:"circle",impl:gu},{name:"concentric",impl:bu},{name:"cose",impl:vu},{name:"grid",impl:zu},{name:"null",impl:Uu},{name:"preset",impl:qu},{name:"random",impl:Yu}];function Zu(t){this.options=t,this.notifications=0}var Ku=function(){},Xu=function(){throw new Error("A headless instance can not render images")};Zu.prototype={recalculateRenderedStyle:Ku,notify:function(){this.notifications++},init:Ku,isHeadless:function(){return!0},png:Xu,jpg:Xu};var Ju={arrowShapeWidth:.3,registerArrowShapes:function(){var t=this.arrowShapes={},e=this,n=function(t,e,n,i,a,r,o){var s=a.x-n/2-o,c=a.x+n/2+o,l=a.y-n/2-o,u=a.y+n/2+o;return s<=t&&t<=c&&l<=e&&e<=u},i=function(t,e,n,i,a){var r=t*Math.cos(i)-e*Math.sin(i),o=(t*Math.sin(i)+e*Math.cos(i))*n;return{x:r*n+a.x,y:o+a.y}},a=function(t,e,n,a){for(var r=[],o=0;o<t.length;o+=2){var s=t[o],c=t[o+1];r.push(i(s,c,e,n,a))}return r},r=function(t){for(var e=[],n=0;n<t.length;n++){var i=t[n];e.push(i.x,i.y)}return e},o=function(t){return t.pstyle("width").pfValue*t.pstyle("arrow-scale").pfValue*2},s=function(i,s){v(s)&&(s=t[s]),t[i]=J({name:i,points:[-.15,-.3,.15,-.3,.15,.3,-.15,.3],collide:function(t,e,n,i,o,s){var c=r(a(this.points,n+2*s,i,o));return Gn(t,e,c)},roughCollide:n,draw:function(t,n,i,r){var o=a(this.points,n,i,r);e.arrowShapeImpl("polygon")(t,o)},spacing:function(t){return 0},gap:o},s)};s("none",{collide:Re,roughCollide:Re,draw:ke,spacing:_e,gap:_e}),s("triangle",{points:[-.15,-.3,0,0,.15,-.3]}),s("arrow","triangle"),s("triangle-backcurve",{points:t.triangle.points,controlPoint:[0,-.15],roughCollide:n,draw:function(t,n,r,o,s){var c=a(this.points,n,r,o),l=this.controlPoint,u=i(l[0],l[1],n,r,o);e.arrowShapeImpl(this.name)(t,c,u)},gap:function(t){return.8*o(t)}}),s("triangle-tee",{points:[0,0,.15,-.3,-.15,-.3,0,0],pointsTee:[-.15,-.4,-.15,-.5,.15,-.5,.15,-.4],collide:function(t,e,n,i,o,s,c){var l=r(a(this.points,n+2*c,i,o)),u=r(a(this.pointsTee,n+2*c,i,o));return Gn(t,e,l)||Gn(t,e,u)},draw:function(t,n,i,r,o){var s=a(this.points,n,i,r),c=a(this.pointsTee,n,i,r);e.arrowShapeImpl(this.name)(t,s,c)}}),s("circle-triangle",{radius:.15,pointsTr:[0,-.15,.15,-.45,-.15,-.45,0,-.15],collide:function(t,e,n,i,o,s,c){var l=o,u=Math.pow(l.x-t,2)+Math.pow(l.y-e,2)<=Math.pow((n+2*c)*this.radius,2),d=r(a(this.points,n+2*c,i,o));return Gn(t,e,d)||u},draw:function(t,n,i,r,o){var s=a(this.pointsTr,n,i,r);e.arrowShapeImpl(this.name)(t,s,r.x,r.y,this.radius*n)},spacing:function(t){return e.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.radius}}),s("triangle-cross",{points:[0,0,.15,-.3,-.15,-.3,0,0],baseCrossLinePts:[-.15,-.4,-.15,-.4,.15,-.4,.15,-.4],crossLinePts:function(t,e){var n=this.baseCrossLinePts.slice(),i=e/t,a=3,r=5;return n[a]=n[a]-i,n[r]=n[r]-i,n},collide:function(t,e,n,i,o,s,c){var l=r(a(this.points,n+2*c,i,o)),u=r(a(this.crossLinePts(n,s),n+2*c,i,o));return Gn(t,e,l)||Gn(t,e,u)},draw:function(t,n,i,r,o){var s=a(this.points,n,i,r),c=a(this.crossLinePts(n,o),n,i,r);e.arrowShapeImpl(this.name)(t,s,c)}}),s("vee",{points:[-.15,-.3,0,0,.15,-.3,0,-.15],gap:function(t){return.525*o(t)}}),s("circle",{radius:.15,collide:function(t,e,n,i,a,r,o){var s=a;return Math.pow(s.x-t,2)+Math.pow(s.y-e,2)<=Math.pow((n+2*o)*this.radius,2)},draw:function(t,n,i,a,r){e.arrowShapeImpl(this.name)(t,a.x,a.y,this.radius*n)},spacing:function(t){return e.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.radius}}),s("tee",{points:[-.15,0,-.15,-.1,.15,-.1,.15,0],spacing:function(t){return 1},gap:function(t){return 1}}),s("square",{points:[-.15,0,.15,0,.15,-.3,-.15,-.3]}),s("diamond",{points:[-.15,-.15,0,-.3,.15,-.15,0,0],gap:function(t){return t.pstyle("width").pfValue*t.pstyle("arrow-scale").value}}),s("chevron",{points:[0,0,-.15,-.15,-.1,-.2,0,-.1,.1,-.2,.15,-.15],gap:function(t){return.95*t.pstyle("width").pfValue*t.pstyle("arrow-scale").value}})}},Qu={projectIntoViewport:function(t,e){var n=this.cy,i=this.findContainerClientCoords(),a=i[0],r=i[1],o=i[4],s=n.pan(),c=n.zoom();return[((t-a)/o-s.x)/c,((e-r)/o-s.y)/c]},findContainerClientCoords:function(){if(this.containerBB)return this.containerBB;var t=this.container,e=t.getBoundingClientRect(),n=h.getComputedStyle(t),i=function(t){return parseFloat(n.getPropertyValue(t))},a={left:i("padding-left"),right:i("padding-right"),top:i("padding-top"),bottom:i("padding-bottom")},r={left:i("border-left-width"),right:i("border-right-width"),top:i("border-top-width"),bottom:i("border-bottom-width")},o=t.clientWidth,s=t.clientHeight,c=a.left+a.right,l=a.top+a.bottom,u=r.left+r.right,d=e.width/(o+u),f=o-c,g=s-l,p=e.left+a.left+r.left,b=e.top+a.top+r.top;return this.containerBB=[p,b,f,g,d]},invalidateContainerClientCoordsCache:function(){this.containerBB=null},findNearestElement:function(t,e,n,i){return this.findNearestElements(t,e,n,i)[0]},findNearestElements:function(t,e,n,i){var a,r,o=this,s=this,c=s.getCachedZSortedEles(),l=[],u=s.cy.zoom(),d=s.cy.hasCompoundNodes(),h=(i?24:8)/u,f=(i?8:2)/u,g=(i?8:2)/u,p=1/0;function b(t,e){if(t.isNode()){if(r)return;r=t,l.push(t)}if(t.isEdge()&&(null==e||e<p))if(a){if(a.pstyle("z-compound-depth").value===t.pstyle("z-compound-depth").value&&a.pstyle("z-compound-depth").value===t.pstyle("z-compound-depth").value)for(var n=0;n<l.length;n++)if(l[n].isEdge()){l[n]=t,a=t,p=e??p;break}}else l.push(t),a=t,p=e??p}function m(n){var i=n.outerWidth()+2*f,a=n.outerHeight()+2*f,r=i/2,c=a/2,l=n.position();if(l.x-r<=t&&t<=l.x+r&&l.y-c<=e&&e<=l.y+c&&s.nodeShapes[o.getNodeShape(n)].checkPoint(t,e,0,i,a,l.x,l.y))return b(n,0),!0}function y(n){var i,a=n._private,r=a.rscratch,c=n.pstyle("width").pfValue,u=n.pstyle("arrow-scale").value,f=c/2+h,g=f*f,p=2*f,y=a.source,v=a.target;if("segments"===r.edgeType||"straight"===r.edgeType||"haystack"===r.edgeType){for(var w=r.allpts,x=0;x+3<w.length;x+=2)if(Hn(t,e,w[x],w[x+1],w[x+2],w[x+3],p)&&g>(i=Yn(t,e,w[x],w[x+1],w[x+2],w[x+3])))return b(n,i),!0}else if("bezier"===r.edgeType||"multibezier"===r.edgeType||"self"===r.edgeType||"compound"===r.edgeType)for(w=r.allpts,x=0;x+5<r.allpts.length;x+=4)if(Un(t,e,w[x],w[x+1],w[x+2],w[x+3],w[x+4],w[x+5],p)&&g>(i=Wn(t,e,w[x],w[x+1],w[x+2],w[x+3],w[x+4],w[x+5])))return b(n,i),!0;y=y||a.source,v=v||a.target;var R=o.getArrowWidth(c,u),_=[{name:"source",x:r.arrowStartX,y:r.arrowStartY,angle:r.srcArrowAngle},{name:"target",x:r.arrowEndX,y:r.arrowEndY,angle:r.tgtArrowAngle},{name:"mid-source",x:r.midX,y:r.midY,angle:r.midsrcArrowAngle},{name:"mid-target",x:r.midX,y:r.midY,angle:r.midtgtArrowAngle}];for(x=0;x<_.length;x++){var k=_[x],E=s.arrowShapes[n.pstyle(k.name+"-arrow-shape").value],C=n.pstyle("width").pfValue;if(E.roughCollide(t,e,R,k.angle,{x:k.x,y:k.y},C,h)&&E.collide(t,e,R,k.angle,{x:k.x,y:k.y},C,h))return b(n),!0}d&&l.length>0&&(m(y),m(v))}function v(t,e,n){return Fe(t,e,n)}function w(n,i){var a,r=n._private,o=g;a=i?i+"-":"",n.boundingBox();var s=r.labelBounds[i||"main"],c=n.pstyle(a+"label").value;if("yes"===n.pstyle("text-events").strValue&&c){var l=v(r.rscratch,"labelX",i),u=v(r.rscratch,"labelY",i),d=v(r.rscratch,"labelAngle",i),h=n.pstyle(a+"text-margin-x").pfValue,f=n.pstyle(a+"text-margin-y").pfValue,p=s.x1-o-h,m=s.x2+o-h,y=s.y1-o-f,w=s.y2+o-f;if(d){var x=Math.cos(d),R=Math.sin(d),_=function(t,e){return{x:(t-=l)*x-(e-=u)*R+l,y:t*R+e*x+u}},k=_(p,y),E=_(p,w),C=_(m,y),S=_(m,w),T=[k.x+h,k.y+f,C.x+h,C.y+f,S.x+h,S.y+f,E.x+h,E.y+f];if(Gn(t,e,T))return b(n),!0}else if(Fn(s,t,e))return b(n),!0}}n&&(c=c.interactive);for(var x=c.length-1;x>=0;x--){var R=c[x];R.isNode()?m(R)||w(R):y(R)||w(R)||w(R,"source")||w(R,"target")}return l},getAllInBox:function(t,e,n,i){for(var a=this.getCachedZSortedEles().interactive,r=[],o=Math.min(t,n),s=Math.max(t,n),c=Math.min(e,i),l=Math.max(e,i),u=An({x1:t=o,y1:e=c,x2:n=s,y2:i=l}),d=0;d<a.length;d++){var h=a[d];if(h.isNode()){var f=h,g=f.boundingBox({includeNodes:!0,includeEdges:!1,includeLabels:!1});Pn(u,g)&&!$n(g,u)&&r.push(f)}else{var p=h,b=p._private,m=b.rscratch;if(null!=m.startX&&null!=m.startY&&!Fn(u,m.startX,m.startY)||null!=m.endX&&null!=m.endY&&!Fn(u,m.endX,m.endY))continue;if("bezier"===m.edgeType||"multibezier"===m.edgeType||"self"===m.edgeType||"compound"===m.edgeType||"segments"===m.edgeType||"haystack"===m.edgeType){for(var y=b.rstyle.bezierPts||b.rstyle.linePts||b.rstyle.haystackPts,v=!0,w=0;w<y.length;w++)if(!jn(u,y[w])){v=!1;break}v&&r.push(p)}else("haystack"===m.edgeType||"straight"===m.edgeType)&&r.push(p)}}return r}},td={calculateArrowAngles:function(t){var e,n,i,a,r,o,s=t._private.rscratch,c="haystack"===s.edgeType,l="bezier"===s.edgeType,u="multibezier"===s.edgeType,d="segments"===s.edgeType,h="compound"===s.edgeType,f="self"===s.edgeType;if(c?(i=s.haystackPts[0],a=s.haystackPts[1],r=s.haystackPts[2],o=s.haystackPts[3]):(i=s.arrowStartX,a=s.arrowStartY,r=s.arrowEndX,o=s.arrowEndY),p=s.midX,b=s.midY,d)e=i-s.segpts[0],n=a-s.segpts[1];else if(u||h||f||l){var g=s.allpts;e=i-En(g[0],g[2],g[4],.1),n=a-En(g[1],g[3],g[5],.1)}else e=i-p,n=a-b;s.srcArrowAngle=vn(e,n);var p=s.midX,b=s.midY;if(c&&(p=(i+r)/2,b=(a+o)/2),e=r-i,n=o-a,d)if((g=s.allpts).length/2%2==0){var m=(y=g.length/2)-2;e=g[y]-g[m],n=g[y+1]-g[m+1]}else{m=(y=g.length/2-1)-2;var y,v=y+2;e=g[y]-g[m],n=g[y+1]-g[m+1]}else if(u||h||f){var w,x,R,_,g=s.allpts;if(s.ctrlpts.length/2%2==0){var k=2+(E=2+(C=g.length/2-1));w=En(g[C],g[E],g[k],0),x=En(g[C+1],g[E+1],g[k+1],0),R=En(g[C],g[E],g[k],1e-4),_=En(g[C+1],g[E+1],g[k+1],1e-4)}else{var E,C;k=2+(E=g.length/2-1),w=En(g[C=E-2],g[E],g[k],.4999),x=En(g[C+1],g[E+1],g[k+1],.4999),R=En(g[C],g[E],g[k],.5),_=En(g[C+1],g[E+1],g[k+1],.5)}e=R-w,n=_-x}if(s.midtgtArrowAngle=vn(e,n),s.midDispX=e,s.midDispY=n,e*=-1,n*=-1,d&&(g=s.allpts).length/2%2!=0&&(e=-(g[v=2+(y=g.length/2-1)]-g[y]),n=-(g[v+1]-g[y+1])),s.midsrcArrowAngle=vn(e,n),d)e=r-s.segpts[s.segpts.length-2],n=o-s.segpts[s.segpts.length-1];else if(u||h||f||l){var S=(g=s.allpts).length;e=r-En(g[S-6],g[S-4],g[S-2],.9),n=o-En(g[S-5],g[S-3],g[S-1],.9)}else e=r-p,n=o-b;s.tgtArrowAngle=vn(e,n)}};td.getArrowWidth=td.getArrowHeight=function(t,e){var n=this.arrowWidthCache=this.arrowWidthCache||{},i=n[t+", "+e];return i||(i=Math.max(Math.pow(13.37*t,.9),29)*e,n[t+", "+e]=i,i)};var ed={};function nd(t){var e=[];if(null!=t){for(var n=0;n<t.length;n+=2){var i=t[n],a=t[n+1];e.push({x:i,y:a})}return e}}ed.findHaystackPoints=function(t){for(var e=0;e<t.length;e++){var n=t[e],i=n._private,a=i.rscratch;if(!a.haystack){var r=2*Math.random()*Math.PI;a.source={x:Math.cos(r),y:Math.sin(r)},r=2*Math.random()*Math.PI,a.target={x:Math.cos(r),y:Math.sin(r)}}var o=i.source,s=i.target,c=o.position(),l=s.position(),u=o.width(),d=s.width(),h=o.height(),f=s.height(),g=n.pstyle("haystack-radius").value/2;a.haystackPts=a.allpts=[a.source.x*u*g+c.x,a.source.y*h*g+c.y,a.target.x*d*g+l.x,a.target.y*f*g+l.y],a.midX=(a.allpts[0]+a.allpts[2])/2,a.midY=(a.allpts[1]+a.allpts[3])/2,a.edgeType="haystack",a.haystack=!0,this.storeEdgeProjections(n),this.calculateArrowAngles(n),this.recalculateEdgeLabelProjections(n),this.calculateLabelAngles(n)}},ed.findSegmentsPoints=function(t,e){var n=t._private.rscratch,i=e.posPts,a=e.intersectionPts,r=e.vectorNormInverse,o=t.pstyle("edge-distances").value,s=t.pstyle("segment-weights"),c=t.pstyle("segment-distances"),l=Math.min(s.pfValue.length,c.pfValue.length);n.edgeType="segments",n.segpts=[];for(var u=0;u<l;u++){var d=s.pfValue[u],h=c.pfValue[u],f=1-d,g=d,p="node-position"===o?i:a,b={x:p.x1*f+p.x2*g,y:p.y1*f+p.y2*g};n.segpts.push(b.x+r.x*h,b.y+r.y*h)}},ed.findLoopPoints=function(t,e,n,i){var a=t._private.rscratch,r=e.dirCounts,o=e.srcPos,s=t.pstyle("control-point-distances"),c=s?s.pfValue[0]:void 0,l=t.pstyle("loop-direction").pfValue,u=t.pstyle("loop-sweep").pfValue,d=t.pstyle("control-point-step-size").pfValue;a.edgeType="self";var h=n,f=d;i&&(h=0,f=c);var g=l-Math.PI/2,p=g-u/2,b=g+u/2,m=String(l+"_"+u);h=void 0===r[m]?r[m]=0:++r[m],a.ctrlpts=[o.x+1.4*Math.cos(p)*f*(h/3+1),o.y+1.4*Math.sin(p)*f*(h/3+1),o.x+1.4*Math.cos(b)*f*(h/3+1),o.y+1.4*Math.sin(b)*f*(h/3+1)]},ed.findCompoundLoopPoints=function(t,e,n,i){var a=t._private.rscratch;a.edgeType="compound";var r=e.srcPos,o=e.tgtPos,s=e.srcW,c=e.srcH,l=e.tgtW,u=e.tgtH,d=t.pstyle("control-point-step-size").pfValue,h=t.pstyle("control-point-distances"),f=h?h.pfValue[0]:void 0,g=n,p=d;i&&(g=0,p=f);var b=50,m={x:r.x-s/2,y:r.y-c/2},y={x:o.x-l/2,y:o.y-u/2},v={x:Math.min(m.x,y.x),y:Math.min(m.y,y.y)},w=.5,x=Math.max(w,Math.log(.01*s)),R=Math.max(w,Math.log(.01*l));a.ctrlpts=[v.x,v.y-(1+Math.pow(b,1.12)/100)*p*(g/3+1)*x,v.x-(1+Math.pow(b,1.12)/100)*p*(g/3+1)*R,v.y]},ed.findStraightEdgePoints=function(t){t._private.rscratch.edgeType="straight"},ed.findBezierPoints=function(t,e,n,i,a){var r=t._private.rscratch,o=e.vectorNormInverse,s=e.posPts,c=e.intersectionPts,l=t.pstyle("edge-distances").value,u=t.pstyle("control-point-step-size").pfValue,d=t.pstyle("control-point-distances"),h=t.pstyle("control-point-weights"),f=d&&h?Math.min(d.value.length,h.value.length):1,g=d?d.pfValue[0]:void 0,p=h.value[0],b=i;r.edgeType=b?"multibezier":"bezier",r.ctrlpts=[];for(var m=0;m<f;m++){var y=(.5-e.eles.length/2+n)*u*(a?-1:1),v=void 0,w=xn(y);b&&(g=d?d.pfValue[m]:u,p=h.value[m]);var x=void 0!==(v=i?g:void 0!==g?w*g:void 0)?v:y,R=1-p,_=p,k="node-position"===l?s:c,E={x:k.x1*R+k.x2*_,y:k.y1*R+k.y2*_};r.ctrlpts.push(E.x+o.x*x,E.y+o.y*x)}},ed.findTaxiPoints=function(t,e){var n=t._private.rscratch;n.edgeType="segments";var i="vertical",a="horizontal",r="leftward",o="rightward",s="downward",c="upward",l="auto",u=e.posPts,d=e.srcW,h=e.srcH,f=e.tgtW,g=e.tgtH,p="node-position"!==t.pstyle("edge-distances").value,b=t.pstyle("taxi-direction").value,m=b,y=t.pstyle("taxi-turn"),v="%"===y.units,w=y.pfValue,x=w<0,R=t.pstyle("taxi-turn-min-distance").pfValue,_=p?(d+f)/2:0,k=p?(h+g)/2:0,E=u.x2-u.x1,C=u.y2-u.y1,S=function(t,e){return t>0?Math.max(t-e,0):Math.min(t+e,0)},T=S(E,_),A=S(C,k),D=!1;m===l?b=Math.abs(T)>Math.abs(A)?a:i:m===c||m===s?(b=i,D=!0):(m===r||m===o)&&(b=a,D=!0);var I,L=b===i,O=L?A:T,M=L?C:E,N=xn(M),B=!1;(!D||!v&&!x)&&(m===s&&M<0||m===c&&M>0||m===r&&M>0||m===o&&M<0)&&(O=(N*=-1)*Math.abs(O),B=!0);var P=function(t){return Math.abs(t)<R||Math.abs(t)>=Math.abs(O)},F=P(I=v?(w<0?1+w:w)*O:(w<0?O:0)+w*N),j=P(Math.abs(O)-Math.abs(I));if(!F&&!j||B)if(L){var $=u.y1+I+(p?h/2*N:0),z=u.x1,H=u.x2;n.segpts=[z,$,H,$]}else{var U=u.x1+I+(p?d/2*N:0),V=u.y1,q=u.y2;n.segpts=[U,V,U,q]}else if(L){var W=Math.abs(M)<=h/2,Y=Math.abs(E)<=f/2;if(W){var G=(u.x1+u.x2)/2,Z=u.y1,K=u.y2;n.segpts=[G,Z,G,K]}else if(Y){var X=(u.y1+u.y2)/2,J=u.x1,Q=u.x2;n.segpts=[J,X,Q,X]}else n.segpts=[u.x1,u.y2]}else{var tt=Math.abs(M)<=d/2,et=Math.abs(C)<=g/2;if(tt){var nt=(u.y1+u.y2)/2,it=u.x1,at=u.x2;n.segpts=[it,nt,at,nt]}else if(et){var rt=(u.x1+u.x2)/2,ot=u.y1,st=u.y2;n.segpts=[rt,ot,rt,st]}else n.segpts=[u.x2,u.y1]}},ed.tryToCorrectInvalidPoints=function(t,e){var n=t._private.rscratch;if("bezier"===n.edgeType){var i=e.srcPos,a=e.tgtPos,r=e.srcW,o=e.srcH,s=e.tgtW,c=e.tgtH,l=e.srcShape,u=e.tgtShape,d=!k(n.startX)||!k(n.startY),h=!k(n.arrowStartX)||!k(n.arrowStartY),f=!k(n.endX)||!k(n.endY),g=!k(n.arrowEndX)||!k(n.arrowEndY),p=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth*3,b=Rn({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.startX,y:n.startY}),m=b<p,y=Rn({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.endX,y:n.endY}),v=y<p,w=!1;if(d||h||m){w=!0;var x={x:n.ctrlpts[0]-i.x,y:n.ctrlpts[1]-i.y},R=Math.sqrt(x.x*x.x+x.y*x.y),_={x:x.x/R,y:x.y/R},E=Math.max(r,o),C={x:n.ctrlpts[0]+2*_.x*E,y:n.ctrlpts[1]+2*_.y*E},S=l.intersectLine(i.x,i.y,r,o,C.x,C.y,0);m?(n.ctrlpts[0]=n.ctrlpts[0]+_.x*(p-b),n.ctrlpts[1]=n.ctrlpts[1]+_.y*(p-b)):(n.ctrlpts[0]=S[0]+_.x*p,n.ctrlpts[1]=S[1]+_.y*p)}if(f||g||v){w=!0;var T={x:n.ctrlpts[0]-a.x,y:n.ctrlpts[1]-a.y},A=Math.sqrt(T.x*T.x+T.y*T.y),D={x:T.x/A,y:T.y/A},I=Math.max(r,o),L={x:n.ctrlpts[0]+2*D.x*I,y:n.ctrlpts[1]+2*D.y*I},O=u.intersectLine(a.x,a.y,s,c,L.x,L.y,0);v?(n.ctrlpts[0]=n.ctrlpts[0]+D.x*(p-y),n.ctrlpts[1]=n.ctrlpts[1]+D.y*(p-y)):(n.ctrlpts[0]=O[0]+D.x*p,n.ctrlpts[1]=O[1]+D.y*p)}w&&this.findEndpoints(t)}},ed.storeAllpts=function(t){var e=t._private.rscratch;if("multibezier"===e.edgeType||"bezier"===e.edgeType||"self"===e.edgeType||"compound"===e.edgeType){e.allpts=[],e.allpts.push(e.startX,e.startY);for(var n=0;n+1<e.ctrlpts.length;n+=2)e.allpts.push(e.ctrlpts[n],e.ctrlpts[n+1]),n+3<e.ctrlpts.length&&e.allpts.push((e.ctrlpts[n]+e.ctrlpts[n+2])/2,(e.ctrlpts[n+1]+e.ctrlpts[n+3])/2);var i,a;e.allpts.push(e.endX,e.endY),e.ctrlpts.length/2%2==0?(i=e.allpts.length/2-1,e.midX=e.allpts[i],e.midY=e.allpts[i+1]):(i=e.allpts.length/2-3,a=.5,e.midX=En(e.allpts[i],e.allpts[i+2],e.allpts[i+4],a),e.midY=En(e.allpts[i+1],e.allpts[i+3],e.allpts[i+5],a))}else if("straight"===e.edgeType)e.allpts=[e.startX,e.startY,e.endX,e.endY],e.midX=(e.startX+e.endX+e.arrowStartX+e.arrowEndX)/4,e.midY=(e.startY+e.endY+e.arrowStartY+e.arrowEndY)/4;else if("segments"===e.edgeType)if(e.allpts=[],e.allpts.push(e.startX,e.startY),e.allpts.push.apply(e.allpts,e.segpts),e.allpts.push(e.endX,e.endY),e.segpts.length%4==0){var r=e.segpts.length/2,o=r-2;e.midX=(e.segpts[o]+e.segpts[r])/2,e.midY=(e.segpts[o+1]+e.segpts[r+1])/2}else{var s=e.segpts.length/2-1;e.midX=e.segpts[s],e.midY=e.segpts[s+1]}},ed.checkForInvalidEdgeWarning=function(t){var e=t[0]._private.rscratch;e.nodesOverlap||k(e.startX)&&k(e.startY)&&k(e.endX)&&k(e.endY)?e.loggedErr=!1:e.loggedErr||(e.loggedErr=!0,Se("Edge `"+t.id()+"` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap."))},ed.findEdgeControlPoints=function(t){var e=this;if(t&&0!==t.length){for(var n=this,i=n.cy.hasCompoundNodes(),a={map:new ze,get:function(t){var e=this.map.get(t[0]);return null!=e?e.get(t[1]):null},set:function(t,e){var n=this.map.get(t[0]);null==n&&(n=new ze,this.map.set(t[0],n)),n.set(t[1],e)}},r=[],o=[],s=0;s<t.length;s++){var c=t[s],l=c._private,u=c.pstyle("curve-style").value;if(!c.removed()&&c.takesUpSpace()){if("haystack"===u){o.push(c);continue}var d="unbundled-bezier"===u||"segments"===u||"straight"===u||"straight-triangle"===u||"taxi"===u,h="unbundled-bezier"===u||"bezier"===u,f=l.source,g=l.target,p=[f.poolIndex(),g.poolIndex()].sort(),b=a.get(p);null==b&&(b={eles:[]},a.set(p,b),r.push(p)),b.eles.push(c),d&&(b.hasUnbundled=!0),h&&(b.hasBezier=!0)}}for(var m=function(t){var o=r[t],s=a.get(o),c=void 0;if(!s.hasUnbundled){var l=s.eles[0].parallelEdges().filter((function(t){return t.isBundledBezier()}));Be(s.eles),l.forEach((function(t){return s.eles.push(t)})),s.eles.sort((function(t,e){return t.poolIndex()-e.poolIndex()}))}var u=s.eles[0],d=u.source(),h=u.target();if(d.poolIndex()>h.poolIndex()){var f=d;d=h,h=f}var g=s.srcPos=d.position(),p=s.tgtPos=h.position(),b=s.srcW=d.outerWidth(),m=s.srcH=d.outerHeight(),y=s.tgtW=h.outerWidth(),v=s.tgtH=h.outerHeight(),w=s.srcShape=n.nodeShapes[e.getNodeShape(d)],x=s.tgtShape=n.nodeShapes[e.getNodeShape(h)];s.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var R=0;R<s.eles.length;R++){var _=s.eles[R],E=_[0]._private.rscratch,C=_.pstyle("curve-style").value,S="unbundled-bezier"===C||"segments"===C||"taxi"===C,T=!d.same(_.source());if(!s.calculatedIntersection&&d!==h&&(s.hasBezier||s.hasUnbundled)){s.calculatedIntersection=!0;var A=w.intersectLine(g.x,g.y,b,m,p.x,p.y,0),D=s.srcIntn=A,I=x.intersectLine(p.x,p.y,y,v,g.x,g.y,0),L=s.tgtIntn=I,O=s.intersectionPts={x1:A[0],x2:I[0],y1:A[1],y2:I[1]},M=s.posPts={x1:g.x,x2:p.x,y1:g.y,y2:p.y},N=I[1]-A[1],B=I[0]-A[0],P=Math.sqrt(B*B+N*N),F=s.vector={x:B,y:N},j=s.vectorNorm={x:F.x/P,y:F.y/P},$={x:-j.y,y:j.x};s.nodesOverlap=!k(P)||x.checkPoint(A[0],A[1],0,y,v,p.x,p.y)||w.checkPoint(I[0],I[1],0,b,m,g.x,g.y),s.vectorNormInverse=$,c={nodesOverlap:s.nodesOverlap,dirCounts:s.dirCounts,calculatedIntersection:!0,hasBezier:s.hasBezier,hasUnbundled:s.hasUnbundled,eles:s.eles,srcPos:p,tgtPos:g,srcW:y,srcH:v,tgtW:b,tgtH:m,srcIntn:L,tgtIntn:D,srcShape:x,tgtShape:w,posPts:{x1:M.x2,y1:M.y2,x2:M.x1,y2:M.y1},intersectionPts:{x1:O.x2,y1:O.y2,x2:O.x1,y2:O.y1},vector:{x:-F.x,y:-F.y},vectorNorm:{x:-j.x,y:-j.y},vectorNormInverse:{x:-$.x,y:-$.y}}}var z=T?c:s;E.nodesOverlap=z.nodesOverlap,E.srcIntn=z.srcIntn,E.tgtIntn=z.tgtIntn,i&&(d.isParent()||d.isChild()||h.isParent()||h.isChild())&&(d.parents().anySame(h)||h.parents().anySame(d)||d.same(h)&&d.isParent())?e.findCompoundLoopPoints(_,z,R,S):d===h?e.findLoopPoints(_,z,R,S):"segments"===C?e.findSegmentsPoints(_,z):"taxi"===C?e.findTaxiPoints(_,z):"straight"===C||!S&&s.eles.length%2==1&&R===Math.floor(s.eles.length/2)?e.findStraightEdgePoints(_):e.findBezierPoints(_,z,R,S,T),e.findEndpoints(_),e.tryToCorrectInvalidPoints(_,z),e.checkForInvalidEdgeWarning(_),e.storeAllpts(_),e.storeEdgeProjections(_),e.calculateArrowAngles(_),e.recalculateEdgeLabelProjections(_),e.calculateLabelAngles(_)}},y=0;y<r.length;y++)m(y);this.findHaystackPoints(o)}},ed.getSegmentPoints=function(t){var e=t[0]._private.rscratch;if("segments"===e.edgeType)return this.recalculateRenderedStyle(t),nd(e.segpts)},ed.getControlPoints=function(t){var e=t[0]._private.rscratch,n=e.edgeType;if("bezier"===n||"multibezier"===n||"self"===n||"compound"===n)return this.recalculateRenderedStyle(t),nd(e.ctrlpts)},ed.getEdgeMidpoint=function(t){var e=t[0]._private.rscratch;return this.recalculateRenderedStyle(t),{x:e.midX,y:e.midY}};var id={manualEndptToPx:function(t,e){var n=this,i=t.position(),a=t.outerWidth(),r=t.outerHeight();if(2===e.value.length){var o=[e.pfValue[0],e.pfValue[1]];return"%"===e.units[0]&&(o[0]=o[0]*a),"%"===e.units[1]&&(o[1]=o[1]*r),o[0]+=i.x,o[1]+=i.y,o}var s=e.pfValue[0];s=-Math.PI/2+s;var c=2*Math.max(a,r),l=[i.x+Math.cos(s)*c,i.y+Math.sin(s)*c];return n.nodeShapes[this.getNodeShape(t)].intersectLine(i.x,i.y,a,r,l[0],l[1],0)},findEndpoints:function(t){var e,n,i,a,r,o=this,s=t.source()[0],c=t.target()[0],l=s.position(),u=c.position(),d=t.pstyle("target-arrow-shape").value,h=t.pstyle("source-arrow-shape").value,f=t.pstyle("target-distance-from-node").pfValue,g=t.pstyle("source-distance-from-node").pfValue,p=t.pstyle("curve-style").value,b=t._private.rscratch,m=b.edgeType,y="self"===m||"compound"===m,v="bezier"===m||"multibezier"===m||y,w="bezier"!==m,x="straight"===m||"segments"===m,R="segments"===m,_=v||w||x,E=y||"taxi"===p,C=t.pstyle("source-endpoint"),S=E?"outside-to-node":C.value,T=t.pstyle("target-endpoint"),A=E?"outside-to-node":T.value;if(b.srcManEndpt=C,b.tgtManEndpt=T,v){var D=[b.ctrlpts[0],b.ctrlpts[1]];n=w?[b.ctrlpts[b.ctrlpts.length-2],b.ctrlpts[b.ctrlpts.length-1]]:D,i=D}else if(x){var I=R?b.segpts.slice(0,2):[u.x,u.y];n=R?b.segpts.slice(b.segpts.length-2):[l.x,l.y],i=I}if("inside-to-node"===A)e=[u.x,u.y];else if(T.units)e=this.manualEndptToPx(c,T);else if("outside-to-line"===A)e=b.tgtIntn;else if("outside-to-node"===A||"outside-to-node-or-label"===A?a=n:("outside-to-line"===A||"outside-to-line-or-label"===A)&&(a=[l.x,l.y]),e=o.nodeShapes[this.getNodeShape(c)].intersectLine(u.x,u.y,c.outerWidth(),c.outerHeight(),a[0],a[1],0),"outside-to-node-or-label"===A||"outside-to-line-or-label"===A){var L=c._private.rscratch,O=L.labelWidth,M=L.labelHeight,N=L.labelX,B=L.labelY,P=O/2,F=M/2,j=c.pstyle("text-valign").value;"top"===j?B-=F:"bottom"===j&&(B+=F);var $=c.pstyle("text-halign").value;"left"===$?N-=P:"right"===$&&(N+=P);var z=ai(a[0],a[1],[N-P,B-F,N+P,B-F,N+P,B+F,N-P,B+F],u.x,u.y);if(z.length>0){var H=l,U=_n(H,fn(e)),V=_n(H,fn(z)),q=U;V<U&&(e=z,q=V),z.length>2&&_n(H,{x:z[2],y:z[3]})<q&&(e=[z[2],z[3]])}}var W=oi(e,n,o.arrowShapes[d].spacing(t)+f),Y=oi(e,n,o.arrowShapes[d].gap(t)+f);if(b.endX=Y[0],b.endY=Y[1],b.arrowEndX=W[0],b.arrowEndY=W[1],"inside-to-node"===S)e=[l.x,l.y];else if(C.units)e=this.manualEndptToPx(s,C);else if("outside-to-line"===S)e=b.srcIntn;else if("outside-to-node"===S||"outside-to-node-or-label"===S?r=i:("outside-to-line"===S||"outside-to-line-or-label"===S)&&(r=[u.x,u.y]),e=o.nodeShapes[this.getNodeShape(s)].intersectLine(l.x,l.y,s.outerWidth(),s.outerHeight(),r[0],r[1],0),"outside-to-node-or-label"===S||"outside-to-line-or-label"===S){var G=s._private.rscratch,Z=G.labelWidth,K=G.labelHeight,X=G.labelX,J=G.labelY,Q=Z/2,tt=K/2,et=s.pstyle("text-valign").value;"top"===et?J-=tt:"bottom"===et&&(J+=tt);var nt=s.pstyle("text-halign").value;"left"===nt?X-=Q:"right"===nt&&(X+=Q);var it=ai(r[0],r[1],[X-Q,J-tt,X+Q,J-tt,X+Q,J+tt,X-Q,J+tt],l.x,l.y);if(it.length>0){var at=u,rt=_n(at,fn(e)),ot=_n(at,fn(it)),st=rt;ot<rt&&(e=[it[0],it[1]],st=ot),it.length>2&&_n(at,{x:it[2],y:it[3]})<st&&(e=[it[2],it[3]])}}var ct=oi(e,i,o.arrowShapes[h].spacing(t)+g),lt=oi(e,i,o.arrowShapes[h].gap(t)+g);b.startX=lt[0],b.startY=lt[1],b.arrowStartX=ct[0],b.arrowStartY=ct[1],_&&(k(b.startX)&&k(b.startY)&&k(b.endX)&&k(b.endY)?b.badLine=!1:b.badLine=!0)},getSourceEndpoint:function(t){var e=t[0]._private.rscratch;return"haystack"===(this.recalculateRenderedStyle(t),e.edgeType)?{x:e.haystackPts[0],y:e.haystackPts[1]}:{x:e.arrowStartX,y:e.arrowStartY}},getTargetEndpoint:function(t){var e=t[0]._private.rscratch;return"haystack"===(this.recalculateRenderedStyle(t),e.edgeType)?{x:e.haystackPts[2],y:e.haystackPts[3]}:{x:e.arrowEndX,y:e.arrowEndY}}},ad={};function rd(t,e,n){for(var i=function(t,e,n,i){return En(t,e,n,i)},a=e._private.rstyle.bezierPts,r=0;r<t.bezierProjPcts.length;r++){var o=t.bezierProjPcts[r];a.push({x:i(n[0],n[2],n[4],o),y:i(n[1],n[3],n[5],o)})}}ad.storeEdgeProjections=function(t){var e=t._private,n=e.rscratch,i=n.edgeType;if(e.rstyle.bezierPts=null,e.rstyle.linePts=null,e.rstyle.haystackPts=null,"multibezier"===i||"bezier"===i||"self"===i||"compound"===i){e.rstyle.bezierPts=[];for(var a=0;a+5<n.allpts.length;a+=4)rd(this,t,n.allpts.slice(a,a+6))}else if("segments"===i){var r=e.rstyle.linePts=[];for(a=0;a+1<n.allpts.length;a+=2)r.push({x:n.allpts[a],y:n.allpts[a+1]})}else if("haystack"===i){var o=n.haystackPts;e.rstyle.haystackPts=[{x:o[0],y:o[1]},{x:o[2],y:o[3]}]}e.rstyle.arrowWidth=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth},ad.recalculateEdgeProjections=function(t){this.findEdgeControlPoints(t)};var od={recalculateNodeLabelProjection:function(t){var e=t.pstyle("label").strValue;if(!O(e)){var n,i,a=t._private,r=t.width(),o=t.height(),s=t.padding(),c=t.position(),l=t.pstyle("text-halign").strValue,u=t.pstyle("text-valign").strValue,d=a.rscratch,h=a.rstyle;switch(l){case"left":n=c.x-r/2-s;break;case"right":n=c.x+r/2+s;break;default:n=c.x}switch(u){case"top":i=c.y-o/2-s;break;case"bottom":i=c.y+o/2+s;break;default:i=c.y}d.labelX=n,d.labelY=i,h.labelX=n,h.labelY=i,this.calculateLabelAngles(t),this.applyLabelDimensions(t)}}},sd=function(t,e){var n=Math.atan(e/t);return 0===t&&n<0&&(n*=-1),n},cd=function(t,e){var n=e.x-t.x,i=e.y-t.y;return sd(n,i)},ld=function(t,e,n,i){var a=Tn(0,i-.001,1),r=Tn(0,i+.001,1),o=Cn(t,e,n,a),s=Cn(t,e,n,r);return cd(o,s)};od.recalculateEdgeLabelProjections=function(t){var e,n=t._private,i=n.rscratch,a=this,r={mid:t.pstyle("label").strValue,source:t.pstyle("source-label").strValue,target:t.pstyle("target-label").strValue};if(r.mid||r.source||r.target){e={x:i.midX,y:i.midY};var o=function(t,e,i){je(n.rscratch,t,e,i),je(n.rstyle,t,e,i)};o("labelX",null,e.x),o("labelY",null,e.y);var s=sd(i.midDispX,i.midDispY);o("labelAutoAngle",null,s);var c=function t(){if(t.cache)return t.cache;for(var e=[],r=0;r+5<i.allpts.length;r+=4){var o={x:i.allpts[r],y:i.allpts[r+1]},s={x:i.allpts[r+2],y:i.allpts[r+3]},c={x:i.allpts[r+4],y:i.allpts[r+5]};e.push({p0:o,p1:s,p2:c,startDist:0,length:0,segments:[]})}var l=n.rstyle.bezierPts,u=a.bezierProjPcts.length;function d(t,e,n,i,a){var r=Rn(e,n),o=t.segments[t.segments.length-1],s={p0:e,p1:n,t0:i,t1:a,startDist:o?o.startDist+o.length:0,length:r};t.segments.push(s),t.length+=r}for(var h=0;h<e.length;h++){var f=e[h],g=e[h-1];g&&(f.startDist=g.startDist+g.length),d(f,f.p0,l[h*u],0,a.bezierProjPcts[0]);for(var p=0;p<u-1;p++)d(f,l[h*u+p],l[h*u+p+1],a.bezierProjPcts[p],a.bezierProjPcts[p+1]);d(f,l[h*u+u-1],f.p2,a.bezierProjPcts[u-1],1)}return t.cache=e},l=function(n){var a,s="source"===n;if(r[n]){var l=t.pstyle(n+"-text-offset").pfValue;switch(i.edgeType){case"self":case"compound":case"bezier":case"multibezier":for(var u,d=c(),h=0,f=0,g=0;g<d.length;g++){for(var p=d[s?g:d.length-1-g],b=0;b<p.segments.length;b++){var m=p.segments[s?b:p.segments.length-1-b],y=g===d.length-1&&b===p.segments.length-1;if(h=f,(f+=m.length)>=l||y){u={cp:p,segment:m};break}}if(u)break}var v=u.cp,w=u.segment,x=(l-h)/w.length,R=w.t1-w.t0,_=s?w.t0+R*x:w.t1-R*x;_=Tn(0,_,1),e=Cn(v.p0,v.p1,v.p2,_),a=ld(v.p0,v.p1,v.p2,_);break;case"straight":case"segments":case"haystack":for(var k,E,C,S,T=0,A=i.allpts.length,D=0;D+3<A&&(s?(C={x:i.allpts[D],y:i.allpts[D+1]},S={x:i.allpts[D+2],y:i.allpts[D+3]}):(C={x:i.allpts[A-2-D],y:i.allpts[A-1-D]},S={x:i.allpts[A-4-D],y:i.allpts[A-3-D]}),E=T,!((T+=k=Rn(C,S))>=l));D+=2);var I=(l-E)/k;I=Tn(0,I,1),e=Sn(C,S,I),a=cd(C,S)}o("labelX",n,e.x),o("labelY",n,e.y),o("labelAutoAngle",n,a)}};l("source"),l("target"),this.applyLabelDimensions(t)}},od.applyLabelDimensions=function(t){this.applyPrefixedLabelDimensions(t),t.isEdge()&&(this.applyPrefixedLabelDimensions(t,"source"),this.applyPrefixedLabelDimensions(t,"target"))},od.applyPrefixedLabelDimensions=function(t,e){var n=t._private,i=this.getLabelText(t,e),a=this.calculateLabelDimensions(t,i),r=t.pstyle("line-height").pfValue,o=t.pstyle("text-wrap").strValue,s=Fe(n.rscratch,"labelWrapCachedLines",e)||[],c="wrap"!==o?1:Math.max(s.length,1),l=a.height/c,u=l*r,d=a.width,h=a.height+(c-1)*(r-1)*l;je(n.rstyle,"labelWidth",e,d),je(n.rscratch,"labelWidth",e,d),je(n.rstyle,"labelHeight",e,h),je(n.rscratch,"labelHeight",e,h),je(n.rscratch,"labelLineHeight",e,u)},od.getLabelText=function(t,e){var n=t._private,i=e?e+"-":"",a=t.pstyle(i+"label").strValue,r=t.pstyle("text-transform").value,o=function(t,i){return i?(je(n.rscratch,t,e,i),i):Fe(n.rscratch,t,e)};if(!a)return"";"none"==r||("uppercase"==r?a=a.toUpperCase():"lowercase"==r&&(a=a.toLowerCase()));var s=t.pstyle("text-wrap").value;if("wrap"===s){var c=o("labelKey");if(null!=c&&o("labelWrapKey")===c)return o("labelWrapCachedText");for(var l="\u200b",u=a.split("\n"),d=t.pstyle("text-max-width").pfValue,h="anywhere"===t.pstyle("text-overflow-wrap").value,f=[],g=/[\s\u200b]+/,p=h?"":" ",b=0;b<u.length;b++){var m=u[b],y=this.calculateLabelDimensions(t,m).width;if(h){var v=m.split("").join(l);m=v}if(y>d){for(var w=m.split(g),x="",R=0;R<w.length;R++){var _=w[R],k=0===x.length?_:x+p+_;this.calculateLabelDimensions(t,k).width<=d?x+=_+p:(x&&f.push(x),x=_+p)}x.match(/^[\s\u200b]+$/)||f.push(x)}else f.push(m)}o("labelWrapCachedLines",f),a=o("labelWrapCachedText",f.join("\n")),o("labelWrapKey",c)}else if("ellipsis"===s){var E=t.pstyle("text-max-width").pfValue,C="",S="\u2026",T=!1;if(this.calculateLabelDimensions(t,a).width<E)return a;for(var A=0;A<a.length&&!(this.calculateLabelDimensions(t,C+a[A]+S).width>E);A++)C+=a[A],A===a.length-1&&(T=!0);return T||(C+=S),C}return a},od.getLabelJustification=function(t){var e=t.pstyle("text-justification").strValue,n=t.pstyle("text-halign").strValue;if("auto"!==e)return e;if(!t.isNode())return"center";switch(n){case"left":return"right";case"right":return"left";default:return"center"}},od.calculateLabelDimensions=function(t,e){var n=this,i=ge(e,t._private.labelDimsKey),a=n.labelDimCache||(n.labelDimCache=[]),r=a[i];if(null!=r)return r;var o=0,s=t.pstyle("font-style").strValue,c=t.pstyle("font-size").pfValue,l=t.pstyle("font-family").strValue,u=t.pstyle("font-weight").strValue,d=this.labelCalcCanvas,h=this.labelCalcCanvasContext;if(!d){d=this.labelCalcCanvas=document.createElement("canvas"),h=this.labelCalcCanvasContext=d.getContext("2d");var f=d.style;f.position="absolute",f.left="-9999px",f.top="-9999px",f.zIndex="-1",f.visibility="hidden",f.pointerEvents="none"}h.font="".concat(s," ").concat(u," ").concat(c,"px ").concat(l);for(var g=0,p=0,b=e.split("\n"),m=0;m<b.length;m++){var y=b[m],v=h.measureText(y),w=Math.ceil(v.width),x=c;g=Math.max(w,g),p+=x}return g+=o,p+=o,a[i]={width:g,height:p}},od.calculateLabelAngle=function(t,e){var n=t._private.rscratch,i=t.isEdge(),a=e?e+"-":"",r=t.pstyle(a+"text-rotation"),o=r.strValue;return"none"===o?0:i&&"autorotate"===o?n.labelAutoAngle:"autorotate"===o?0:r.pfValue},od.calculateLabelAngles=function(t){var e=this,n=t.isEdge(),i=t._private.rscratch;i.labelAngle=e.calculateLabelAngle(t),n&&(i.sourceLabelAngle=e.calculateLabelAngle(t,"source"),i.targetLabelAngle=e.calculateLabelAngle(t,"target"))};var ud={},dd=28,hd=!1;ud.getNodeShape=function(t){var e=this,n=t.pstyle("shape").value;if("cutrectangle"===n&&(t.width()<dd||t.height()<dd))return hd||(Se("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"),hd=!0),"rectangle";if(t.isParent())return"rectangle"===n||"roundrectangle"===n||"round-rectangle"===n||"cutrectangle"===n||"cut-rectangle"===n||"barrel"===n?n:"rectangle";if("polygon"===n){var i=t.pstyle("shape-polygon-points").value;return e.nodeShapes.makePolygon(i).name}return n};var fd={registerCalculationListeners:function(){var t=this.cy,e=t.collection(),n=this,i=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(e.merge(t),n)for(var i=0;i<t.length;i++){var a=t[i]._private.rstyle;a.clean=!1,a.cleanConnected=!1}};n.binder(t).on("bounds.* dirty.*",(function(t){var e=t.target;i(e)})).on("style.* background.*",(function(t){var e=t.target;i(e,!1)}));var a=function(a){if(a){var r=n.onUpdateEleCalcsFns;e.cleanStyle();for(var o=0;o<e.length;o++){var s=e[o],c=s._private.rstyle;s.isNode()&&!c.cleanConnected&&(i(s.connectedEdges()),c.cleanConnected=!0)}if(r)for(var l=0;l<r.length;l++)(0,r[l])(a,e);n.recalculateRenderedStyle(e),e=t.collection()}};n.flushRenderedStyleQueue=function(){a(!0)},n.beforeRender(a,n.beforeRenderPriorities.eleCalcs)},onUpdateEleCalcs:function(t){(this.onUpdateEleCalcsFns=this.onUpdateEleCalcsFns||[]).push(t)},recalculateRenderedStyle:function(t,e){var n=function(t){return t._private.rstyle.cleanConnected},i=[],a=[];if(!this.destroyed){void 0===e&&(e=!0);for(var r=0;r<t.length;r++){var o=t[r],s=o._private,c=s.rstyle;o.isEdge()&&(!n(o.source())||!n(o.target()))&&(c.clean=!1),!(e&&c.clean||o.removed())&&"none"!==o.pstyle("display").value&&("nodes"===s.group?a.push(o):i.push(o),c.clean=!0)}for(var l=0;l<a.length;l++){var u=a[l],d=u._private.rstyle,h=u.position();this.recalculateNodeLabelProjection(u),d.nodeX=h.x,d.nodeY=h.y,d.nodeW=u.pstyle("width").pfValue,d.nodeH=u.pstyle("height").pfValue}this.recalculateEdgeProjections(i);for(var f=0;f<i.length;f++){var g=i[f]._private,p=g.rstyle,b=g.rscratch;p.srcX=b.arrowStartX,p.srcY=b.arrowStartY,p.tgtX=b.arrowEndX,p.tgtY=b.arrowEndY,p.midX=b.midX,p.midY=b.midY,p.labelAngle=b.labelAngle,p.sourceLabelAngle=b.sourceLabelAngle,p.targetLabelAngle=b.targetLabelAngle}}}},gd={updateCachedGrabbedEles:function(){var t=this.cachedZSortedEles;if(t){t.drag=[],t.nondrag=[];for(var e=[],n=0;n<t.length;n++){var i=(a=t[n])._private.rscratch;a.grabbed()&&!a.isParent()?e.push(a):i.inDragLayer?t.drag.push(a):t.nondrag.push(a)}for(n=0;n<e.length;n++){var a=e[n];t.drag.push(a)}}},invalidateCachedZSortedEles:function(){this.cachedZSortedEles=null},getCachedZSortedEles:function(t){if(t||!this.cachedZSortedEles){var e=this.cy.mutableElements().toArray();e.sort(Kc),e.interactive=e.filter((function(t){return t.interactive()})),this.cachedZSortedEles=e,this.updateCachedGrabbedEles()}else e=this.cachedZSortedEles;return e}},pd={};[Qu,td,ed,id,ad,od,ud,fd,gd].forEach((function(t){J(pd,t)}));var bd={getCachedImage:function(t,e,n){var i=this,a=i.imageCache=i.imageCache||{},r=a[t];if(r)return r.image.complete||r.image.addEventListener("load",n),r.image;var o=(r=a[t]=a[t]||{}).image=new Image;o.addEventListener("load",n),o.addEventListener("error",(function(){o.error=!0}));var s="data:";return t.substring(0,s.length).toLowerCase()===s||(o.crossOrigin=e),o.src=t,o}},md={registerBinding:function(t,e,n,i){var a=Array.prototype.slice.apply(arguments,[1]),r=this.binder(t);return r.on.apply(r,a)},binder:function(t){var e=this,n=t===window||t===document||t===document.body||M(t);if(null==e.supportsPassiveEvents){var i=!1;try{var a=Object.defineProperty({},"passive",{get:function(){return i=!0,!0}});window.addEventListener("test",null,a)}catch{}e.supportsPassiveEvents=i}var r=function(i,a,r){var o=Array.prototype.slice.call(arguments);return n&&e.supportsPassiveEvents&&(o[2]={capture:r??!1,passive:!1,once:!1}),e.bindings.push({target:t,args:o}),(t.addEventListener||t.on).apply(t,o),this};return{on:r,addEventListener:r,addListener:r,bind:r}},nodeIsDraggable:function(t){return t&&t.isNode()&&!t.locked()&&t.grabbable()},nodeIsGrabbable:function(t){return this.nodeIsDraggable(t)&&t.interactive()},load:function(){var t=this,e=function(t){return t.selected()},n=function(e,n,i,a){null==e&&(e=t.cy);for(var r=0;r<n.length;r++){var o=n[r];e.emit({originalEvent:i,type:o,position:a})}},i=function(t){return t.shiftKey||t.metaKey||t.ctrlKey},a=function(e,n){var i=!0;if(t.cy.hasCompoundNodes()&&e&&e.pannable()){for(var a=0;n&&a<n.length;a++)if((e=n[a]).isNode()&&e.isParent()&&!e.pannable()){i=!1;break}}else i=!0;return i},r=function(t){t[0]._private.grabbed=!0},o=function(t){t[0]._private.grabbed=!1},s=function(t){t[0]._private.rscratch.inDragLayer=!0},c=function(t){t[0]._private.rscratch.inDragLayer=!1},l=function(t){t[0]._private.rscratch.isGrabTarget=!0},u=function(t){t[0]._private.rscratch.isGrabTarget=!1},d=function(t,e){var n=e.addToList;!n.has(t)&&t.grabbable()&&!t.locked()&&(n.merge(t),r(t))},h=function(t,e){if(t.cy().hasCompoundNodes()&&(null!=e.inDragLayer||null!=e.addToList)){var n=t.descendants();e.inDragLayer&&(n.forEach(s),n.connectedEdges().forEach(s)),e.addToList&&d(n,e)}},f=function(e,n){n=n||{};var i=e.cy().hasCompoundNodes();n.inDragLayer&&(e.forEach(s),e.neighborhood().stdFilter((function(t){return!i||t.isEdge()})).forEach(s)),n.addToList&&e.forEach((function(t){d(t,n)})),h(e,n),b(e,{inDragLayer:n.inDragLayer}),t.updateCachedGrabbedEles()},g=f,p=function(e){e&&(t.getCachedZSortedEles().forEach((function(t){o(t),c(t),u(t)})),t.updateCachedGrabbedEles())},b=function(t,e){if((null!=e.inDragLayer||null!=e.addToList)&&t.cy().hasCompoundNodes()){var n=t.ancestors().orphans();if(!n.same(t)){var i=n.descendants().spawnSelf().merge(n).unmerge(t).unmerge(t.descendants()),a=i.connectedEdges();e.inDragLayer&&(a.forEach(s),i.forEach(s)),e.addToList&&i.forEach((function(t){d(t,e)}))}}},m=function(){null!=document.activeElement&&null!=document.activeElement.blur&&document.activeElement.blur()},y=typeof MutationObserver<"u",v=typeof ResizeObserver<"u";y?(t.removeObserver=new MutationObserver((function(e){for(var n=0;n<e.length;n++){var i=e[n].removedNodes;if(i)for(var a=0;a<i.length;a++)if(i[a]===t.container){t.destroy();break}}})),t.container.parentNode&&t.removeObserver.observe(t.container.parentNode,{childList:!0})):t.registerBinding(t.container,"DOMNodeRemoved",(function(e){t.destroy()}));var w=Jt((function(){t.cy.resize()}),100);y&&(t.styleObserver=new MutationObserver(w),t.styleObserver.observe(t.container,{attributes:!0})),t.registerBinding(window,"resize",w),v&&(t.resizeObserver=new ResizeObserver(w),t.resizeObserver.observe(t.container));var x=function(){t.invalidateContainerClientCoordsCache()};(function(t,e){for(;null!=t;)e(t),t=t.parentNode})(t.container,(function(e){t.registerBinding(e,"transitionend",x),t.registerBinding(e,"animationend",x),t.registerBinding(e,"scroll",x)})),t.registerBinding(t.container,"contextmenu",(function(t){t.preventDefault()}));var R,_,E,C=function(){return 0!==t.selection[4]},S=function(e){for(var n=t.findContainerClientCoords(),i=n[0],a=n[1],r=n[2],o=n[3],s=e.touches?e.touches:[e],c=!1,l=0;l<s.length;l++){var u=s[l];if(i<=u.clientX&&u.clientX<=i+r&&a<=u.clientY&&u.clientY<=a+o){c=!0;break}}if(!c)return!1;for(var d=t.container,h=e.target.parentNode,f=!1;h;){if(h===d){f=!0;break}h=h.parentNode}return!!f};t.registerBinding(t.container,"mousedown",(function(e){if(S(e)){e.preventDefault(),m(),t.hoverData.capture=!0,t.hoverData.which=e.which;var i=t.cy,a=[e.clientX,e.clientY],r=t.projectIntoViewport(a[0],a[1]),o=t.selection,s=t.findNearestElements(r[0],r[1],!0,!1),c=s[0],u=t.dragData.possibleDragElements;t.hoverData.mdownPos=r,t.hoverData.mdownGPos=a;var d=function(){t.hoverData.tapholdCancelled=!1,clearTimeout(t.hoverData.tapholdTimeout),t.hoverData.tapholdTimeout=setTimeout((function(){if(!t.hoverData.tapholdCancelled){var n=t.hoverData.down;n?n.emit({originalEvent:e,type:"taphold",position:{x:r[0],y:r[1]}}):i.emit({originalEvent:e,type:"taphold",position:{x:r[0],y:r[1]}})}}),t.tapholdDuration)};if(3==e.which){t.hoverData.cxtStarted=!0;var h={originalEvent:e,type:"cxttapstart",position:{x:r[0],y:r[1]}};c?(c.activate(),c.emit(h),t.hoverData.down=c):i.emit(h),t.hoverData.downTime=(new Date).getTime(),t.hoverData.cxtDragged=!1}else if(1==e.which){if(c&&c.activate(),null!=c&&t.nodeIsGrabbable(c)){var p=function(t){return{originalEvent:e,type:t,position:{x:r[0],y:r[1]}}},b=function(t){t.emit(p("grab"))};if(l(c),c.selected()){u=t.dragData.possibleDragElements=i.collection();var y=i.$((function(e){return e.isNode()&&e.selected()&&t.nodeIsGrabbable(e)}));f(y,{addToList:u}),c.emit(p("grabon")),y.forEach(b)}else u=t.dragData.possibleDragElements=i.collection(),g(c,{addToList:u}),c.emit(p("grabon")).emit(p("grab"));t.redrawHint("eles",!0),t.redrawHint("drag",!0)}t.hoverData.down=c,t.hoverData.downs=s,t.hoverData.downTime=(new Date).getTime(),n(c,["mousedown","tapstart","vmousedown"],e,{x:r[0],y:r[1]}),null==c?(o[4]=1,t.data.bgActivePosistion={x:r[0],y:r[1]},t.redrawHint("select",!0),t.redraw()):c.pannable()&&(o[4]=1),d()}o[0]=o[2]=r[0],o[1]=o[3]=r[1]}}),!1),t.registerBinding(window,"mousemove",(function(e){if(t.hoverData.capture||S(e)){var r=!1,o=t.cy,s=o.zoom(),c=[e.clientX,e.clientY],l=t.projectIntoViewport(c[0],c[1]),u=t.hoverData.mdownPos,d=t.hoverData.mdownGPos,h=t.selection,g=null;!t.hoverData.draggingEles&&!t.hoverData.dragging&&!t.hoverData.selecting&&(g=t.findNearestElement(l[0],l[1],!0,!1));var b,m=t.hoverData.last,y=t.hoverData.down,v=[l[0]-h[2],l[1]-h[3]],w=t.dragData.possibleDragElements;if(d){var x=c[0]-d[0],R=x*x,_=c[1]-d[1],E=R+_*_;t.hoverData.isOverThresholdDrag=b=E>=t.desktopTapThreshold2}var C=i(e);b&&(t.hoverData.tapholdCancelled=!0);var T=function(){var e=t.hoverData.dragDelta=t.hoverData.dragDelta||[];0===e.length?(e.push(v[0]),e.push(v[1])):(e[0]+=v[0],e[1]+=v[1])};r=!0,n(g,["mousemove","vmousemove","tapdrag"],e,{x:l[0],y:l[1]});var A=function(){t.data.bgActivePosistion=void 0,t.hoverData.selecting||o.emit({originalEvent:e,type:"boxstart",position:{x:l[0],y:l[1]}}),h[4]=1,t.hoverData.selecting=!0,t.redrawHint("select",!0),t.redraw()};if(3===t.hoverData.which){if(b){var D={originalEvent:e,type:"cxtdrag",position:{x:l[0],y:l[1]}};y?y.emit(D):o.emit(D),t.hoverData.cxtDragged=!0,(!t.hoverData.cxtOver||g!==t.hoverData.cxtOver)&&(t.hoverData.cxtOver&&t.hoverData.cxtOver.emit({originalEvent:e,type:"cxtdragout",position:{x:l[0],y:l[1]}}),t.hoverData.cxtOver=g,g&&g.emit({originalEvent:e,type:"cxtdragover",position:{x:l[0],y:l[1]}}))}}else if(t.hoverData.dragging){if(r=!0,o.panningEnabled()&&o.userPanningEnabled()){var I;if(t.hoverData.justStartedPan){var L=t.hoverData.mdownPos;I={x:(l[0]-L[0])*s,y:(l[1]-L[1])*s},t.hoverData.justStartedPan=!1}else I={x:v[0]*s,y:v[1]*s};o.panBy(I),o.emit("dragpan"),t.hoverData.dragged=!0}l=t.projectIntoViewport(e.clientX,e.clientY)}else if(1!=h[4]||null!=y&&!y.pannable()){if(y&&y.pannable()&&y.active()&&y.unactivate(),(!y||!y.grabbed())&&g!=m&&(m&&n(m,["mouseout","tapdragout"],e,{x:l[0],y:l[1]}),g&&n(g,["mouseover","tapdragover"],e,{x:l[0],y:l[1]}),t.hoverData.last=g),y)if(b){if(o.boxSelectionEnabled()&&C)y&&y.grabbed()&&(p(w),y.emit("freeon"),w.emit("free"),t.dragData.didDrag&&(y.emit("dragfreeon"),w.emit("dragfree"))),A();else if(y&&y.grabbed()&&t.nodeIsDraggable(y)){var O=!t.dragData.didDrag;O&&t.redrawHint("eles",!0),t.dragData.didDrag=!0,t.hoverData.draggingEles||f(w,{inDragLayer:!0});var M={x:0,y:0};if(k(v[0])&&k(v[1])&&(M.x+=v[0],M.y+=v[1],O)){var N=t.hoverData.dragDelta;N&&k(N[0])&&k(N[1])&&(M.x+=N[0],M.y+=N[1])}t.hoverData.draggingEles=!0,w.silentShift(M).emit("position drag"),t.redrawHint("drag",!0),t.redraw()}}else T();r=!0}else b&&(t.hoverData.dragging||!o.boxSelectionEnabled()||!C&&o.panningEnabled()&&o.userPanningEnabled()?!t.hoverData.selecting&&o.panningEnabled()&&o.userPanningEnabled()&&a(y,t.hoverData.downs)&&(t.hoverData.dragging=!0,t.hoverData.justStartedPan=!0,h[4]=0,t.data.bgActivePosistion=fn(u),t.redrawHint("select",!0),t.redraw()):A(),y&&y.pannable()&&y.active()&&y.unactivate());if(h[2]=l[0],h[3]=l[1],r)return e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),!1}}),!1),t.registerBinding(window,"mouseup",(function(a){if(t.hoverData.capture){t.hoverData.capture=!1;var r=t.cy,o=t.projectIntoViewport(a.clientX,a.clientY),s=t.selection,c=t.findNearestElement(o[0],o[1],!0,!1),l=t.dragData.possibleDragElements,u=t.hoverData.down,d=i(a);if(t.data.bgActivePosistion&&(t.redrawHint("select",!0),t.redraw()),t.hoverData.tapholdCancelled=!0,t.data.bgActivePosistion=void 0,u&&u.unactivate(),3===t.hoverData.which){var h={originalEvent:a,type:"cxttapend",position:{x:o[0],y:o[1]}};if(u?u.emit(h):r.emit(h),!t.hoverData.cxtDragged){var f={originalEvent:a,type:"cxttap",position:{x:o[0],y:o[1]}};u?u.emit(f):r.emit(f)}t.hoverData.cxtDragged=!1,t.hoverData.which=null}else if(1===t.hoverData.which){if(n(c,["mouseup","tapend","vmouseup"],a,{x:o[0],y:o[1]}),!t.dragData.didDrag&&!t.hoverData.dragged&&!t.hoverData.selecting&&!t.hoverData.isOverThresholdDrag&&(n(u,["click","tap","vclick"],a,{x:o[0],y:o[1]}),_=!1,a.timeStamp-E<=r.multiClickDebounceTime()?(R&&clearTimeout(R),_=!0,E=null,n(u,["dblclick","dbltap","vdblclick"],a,{x:o[0],y:o[1]})):(R=setTimeout((function(){_||n(u,["oneclick","onetap","voneclick"],a,{x:o[0],y:o[1]})}),r.multiClickDebounceTime()),E=a.timeStamp)),null==u&&!t.dragData.didDrag&&!t.hoverData.selecting&&!t.hoverData.dragged&&!i(a)&&(r.$(e).unselect(["tapunselect"]),l.length>0&&t.redrawHint("eles",!0),t.dragData.possibleDragElements=l=r.collection()),c==u&&!t.dragData.didDrag&&!t.hoverData.selecting&&null!=c&&c._private.selectable&&(t.hoverData.dragging||("additive"===r.selectionType()||d?c.selected()?c.unselect(["tapunselect"]):c.select(["tapselect"]):d||(r.$(e).unmerge(c).unselect(["tapunselect"]),c.select(["tapselect"]))),t.redrawHint("eles",!0)),t.hoverData.selecting){var g=r.collection(t.getAllInBox(s[0],s[1],s[2],s[3]));t.redrawHint("select",!0),g.length>0&&t.redrawHint("eles",!0),r.emit({type:"boxend",originalEvent:a,position:{x:o[0],y:o[1]}});var b=function(t){return t.selectable()&&!t.selected()};"additive"===r.selectionType()||d||r.$(e).unmerge(g).unselect(),g.emit("box").stdFilter(b).select().emit("boxselect"),t.redraw()}if(t.hoverData.dragging&&(t.hoverData.dragging=!1,t.redrawHint("select",!0),t.redrawHint("eles",!0),t.redraw()),!s[4]){t.redrawHint("drag",!0),t.redrawHint("eles",!0);var m=u&&u.grabbed();p(l),m&&(u.emit("freeon"),l.emit("free"),t.dragData.didDrag&&(u.emit("dragfreeon"),l.emit("dragfree")))}}s[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}}),!1);var T=function(e){if(!t.scrollingPage){var n=t.cy,i=n.zoom(),a=n.pan(),r=t.projectIntoViewport(e.clientX,e.clientY),o=[r[0]*i+a.x,r[1]*i+a.y];if(t.hoverData.draggingEles||t.hoverData.dragging||t.hoverData.cxtStarted||C())return void e.preventDefault();if(n.panningEnabled()&&n.userPanningEnabled()&&n.zoomingEnabled()&&n.userZoomingEnabled()){var s;e.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),s=null!=e.deltaY?e.deltaY/-250:null!=e.wheelDeltaY?e.wheelDeltaY/1e3:e.wheelDelta/1e3,s*=t.wheelSensitivity,1===e.deltaMode&&(s*=33);var c=n.zoom()*Math.pow(10,s);"gesturechange"===e.type&&(c=t.gestureStartZoom*e.scale),n.zoom({level:c,renderedPosition:{x:o[0],y:o[1]}}),n.emit("gesturechange"===e.type?"pinchzoom":"scrollzoom")}}};t.registerBinding(t.container,"wheel",T,!0),t.registerBinding(window,"scroll",(function(e){t.scrollingPage=!0,clearTimeout(t.scrollingPageTimeout),t.scrollingPageTimeout=setTimeout((function(){t.scrollingPage=!1}),250)}),!0),t.registerBinding(t.container,"gesturestart",(function(e){t.gestureStartZoom=t.cy.zoom(),t.hasTouchStarted||e.preventDefault()}),!0),t.registerBinding(t.container,"gesturechange",(function(e){t.hasTouchStarted||T(e)}),!0),t.registerBinding(t.container,"mouseout",(function(e){var n=t.projectIntoViewport(e.clientX,e.clientY);t.cy.emit({originalEvent:e,type:"mouseout",position:{x:n[0],y:n[1]}})}),!1),t.registerBinding(t.container,"mouseover",(function(e){var n=t.projectIntoViewport(e.clientX,e.clientY);t.cy.emit({originalEvent:e,type:"mouseover",position:{x:n[0],y:n[1]}})}),!1);var A,D,I,L,O,M,N,B,P,F,j,$,z,H,U,V,q,W,Y,G,Z=function(t,e,n,i){return Math.sqrt((n-t)*(n-t)+(i-e)*(i-e))},K=function(t,e,n,i){return(n-t)*(n-t)+(i-e)*(i-e)};if(t.registerBinding(t.container,"touchstart",H=function(e){if(t.hasTouchStarted=!0,S(e)){m(),t.touchData.capture=!0,t.data.bgActivePosistion=void 0;var i=t.cy,a=t.touchData.now,r=t.touchData.earlier;if(e.touches[0]){var o=t.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);a[0]=o[0],a[1]=o[1]}if(e.touches[1]&&(o=t.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY),a[2]=o[0],a[3]=o[1]),e.touches[2]&&(o=t.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY),a[4]=o[0],a[5]=o[1]),e.touches[1]){t.touchData.singleTouchMoved=!0,p(t.dragData.touchDragEles);var s=t.findContainerClientCoords();P=s[0],F=s[1],j=s[2],$=s[3],A=e.touches[0].clientX-P,D=e.touches[0].clientY-F,I=e.touches[1].clientX-P,L=e.touches[1].clientY-F,z=0<=A&&A<=j&&0<=I&&I<=j&&0<=D&&D<=$&&0<=L&&L<=$;var c=i.pan(),u=i.zoom();O=Z(A,D,I,L),M=K(A,D,I,L),B=[((N=[(A+I)/2,(D+L)/2])[0]-c.x)/u,(N[1]-c.y)/u];var d=200;if(M<d*d&&!e.touches[2]){var h=t.findNearestElement(a[0],a[1],!0,!0),b=t.findNearestElement(a[2],a[3],!0,!0);return h&&h.isNode()?(h.activate().emit({originalEvent:e,type:"cxttapstart",position:{x:a[0],y:a[1]}}),t.touchData.start=h):b&&b.isNode()?(b.activate().emit({originalEvent:e,type:"cxttapstart",position:{x:a[0],y:a[1]}}),t.touchData.start=b):i.emit({originalEvent:e,type:"cxttapstart",position:{x:a[0],y:a[1]}}),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!0,t.touchData.cxtDragged=!1,t.data.bgActivePosistion=void 0,void t.redraw()}}if(e.touches[2])i.boxSelectionEnabled()&&e.preventDefault();else if(!e.touches[1]&&e.touches[0]){var y=t.findNearestElements(a[0],a[1],!0,!0),v=y[0];if(null!=v&&(v.activate(),t.touchData.start=v,t.touchData.starts=y,t.nodeIsGrabbable(v))){var w=t.dragData.touchDragEles=i.collection(),x=null;t.redrawHint("eles",!0),t.redrawHint("drag",!0),v.selected()?(x=i.$((function(e){return e.selected()&&t.nodeIsGrabbable(e)})),f(x,{addToList:w})):g(v,{addToList:w}),l(v);var R=function(t){return{originalEvent:e,type:t,position:{x:a[0],y:a[1]}}};v.emit(R("grabon")),x?x.forEach((function(t){t.emit(R("grab"))})):v.emit(R("grab"))}n(v,["touchstart","tapstart","vmousedown"],e,{x:a[0],y:a[1]}),null==v&&(t.data.bgActivePosistion={x:o[0],y:o[1]},t.redrawHint("select",!0),t.redraw()),t.touchData.singleTouchMoved=!1,t.touchData.singleTouchStartTime=+new Date,clearTimeout(t.touchData.tapholdTimeout),t.touchData.tapholdTimeout=setTimeout((function(){!1===t.touchData.singleTouchMoved&&!t.pinching&&!t.touchData.selecting&&n(t.touchData.start,["taphold"],e,{x:a[0],y:a[1]})}),t.tapholdDuration)}if(e.touches.length>=1){for(var _=t.touchData.startPosition=[],k=0;k<a.length;k++)_[k]=r[k]=a[k];var E=e.touches[0];t.touchData.startGPosition=[E.clientX,E.clientY]}}},!1),t.registerBinding(window,"touchmove",U=function(e){var i=t.touchData.capture;if(i||S(e)){var r=t.selection,o=t.cy,s=t.touchData.now,c=t.touchData.earlier,l=o.zoom();if(e.touches[0]){var u=t.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);s[0]=u[0],s[1]=u[1]}e.touches[1]&&(u=t.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY),s[2]=u[0],s[3]=u[1]),e.touches[2]&&(u=t.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY),s[4]=u[0],s[5]=u[1]);var d,h=t.touchData.startGPosition;if(i&&e.touches[0]&&h){for(var g=[],b=0;b<s.length;b++)g[b]=s[b]-c[b];var m=e.touches[0].clientX-h[0],y=m*m,v=e.touches[0].clientY-h[1];d=y+v*v>=t.touchTapThreshold2}if(i&&t.touchData.cxt){e.preventDefault();var w=e.touches[0].clientX-P,x=e.touches[0].clientY-F,R=e.touches[1].clientX-P,_=e.touches[1].clientY-F,E=K(w,x,R,_),C=150,T=1.5;if(E/M>=T*T||E>=C*C){t.touchData.cxt=!1,t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var N={originalEvent:e,type:"cxttapend",position:{x:s[0],y:s[1]}};t.touchData.start?(t.touchData.start.unactivate().emit(N),t.touchData.start=null):o.emit(N)}}if(i&&t.touchData.cxt){N={originalEvent:e,type:"cxtdrag",position:{x:s[0],y:s[1]}},t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.touchData.start?t.touchData.start.emit(N):o.emit(N),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxtDragged=!0;var j=t.findNearestElement(s[0],s[1],!0,!0);(!t.touchData.cxtOver||j!==t.touchData.cxtOver)&&(t.touchData.cxtOver&&t.touchData.cxtOver.emit({originalEvent:e,type:"cxtdragout",position:{x:s[0],y:s[1]}}),t.touchData.cxtOver=j,j&&j.emit({originalEvent:e,type:"cxtdragover",position:{x:s[0],y:s[1]}}))}else if(i&&e.touches[2]&&o.boxSelectionEnabled())e.preventDefault(),t.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,t.touchData.selecting||o.emit({originalEvent:e,type:"boxstart",position:{x:s[0],y:s[1]}}),t.touchData.selecting=!0,t.touchData.didSelect=!0,r[4]=1,r&&0!==r.length&&void 0!==r[0]?(r[2]=(s[0]+s[2]+s[4])/3,r[3]=(s[1]+s[3]+s[5])/3):(r[0]=(s[0]+s[2]+s[4])/3,r[1]=(s[1]+s[3]+s[5])/3,r[2]=(s[0]+s[2]+s[4])/3+1,r[3]=(s[1]+s[3]+s[5])/3+1),t.redrawHint("select",!0),t.redraw();else if(i&&e.touches[1]&&!t.touchData.didSelect&&o.zoomingEnabled()&&o.panningEnabled()&&o.userZoomingEnabled()&&o.userPanningEnabled()){if(e.preventDefault(),t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),nt=t.dragData.touchDragEles){t.redrawHint("drag",!0);for(var $=0;$<nt.length;$++){var H=nt[$]._private;H.grabbed=!1,H.rscratch.inDragLayer=!1}}var U=t.touchData.start,V=(w=e.touches[0].clientX-P,x=e.touches[0].clientY-F,R=e.touches[1].clientX-P,_=e.touches[1].clientY-F,Z(w,x,R,_)),q=V/O;if(z){var W=(w-A+(R-I))/2,Y=(x-D+(_-L))/2,G=o.zoom(),X=G*q,J=o.pan(),Q=B[0]*G+J.x,tt=B[1]*G+J.y,et={x:-X/G*(Q-J.x-W)+Q,y:-X/G*(tt-J.y-Y)+tt};if(U&&U.active()){var nt=t.dragData.touchDragEles;p(nt),t.redrawHint("drag",!0),t.redrawHint("eles",!0),U.unactivate().emit("freeon"),nt.emit("free"),t.dragData.didDrag&&(U.emit("dragfreeon"),nt.emit("dragfree"))}o.viewport({zoom:X,pan:et,cancelOnFailedZoom:!0}),o.emit("pinchzoom"),O=V,A=w,D=x,I=R,L=_,t.pinching=!0}e.touches[0]&&(u=t.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY),s[0]=u[0],s[1]=u[1]),e.touches[1]&&(u=t.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY),s[2]=u[0],s[3]=u[1]),e.touches[2]&&(u=t.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY),s[4]=u[0],s[5]=u[1])}else if(e.touches[0]&&!t.touchData.didSelect){var it=t.touchData.start,at=t.touchData.last;if(!t.hoverData.draggingEles&&!t.swipePanning&&(j=t.findNearestElement(s[0],s[1],!0,!0)),i&&null!=it&&e.preventDefault(),i&&null!=it&&t.nodeIsDraggable(it))if(d){nt=t.dragData.touchDragEles;var rt=!t.dragData.didDrag;rt&&f(nt,{inDragLayer:!0}),t.dragData.didDrag=!0;var ot={x:0,y:0};k(g[0])&&k(g[1])&&(ot.x+=g[0],ot.y+=g[1],rt)&&(t.redrawHint("eles",!0),(st=t.touchData.dragDelta)&&k(st[0])&&k(st[1])&&(ot.x+=st[0],ot.y+=st[1])),t.hoverData.draggingEles=!0,nt.silentShift(ot).emit("position drag"),t.redrawHint("drag",!0),t.touchData.startPosition[0]==c[0]&&t.touchData.startPosition[1]==c[1]&&t.redrawHint("eles",!0),t.redraw()}else{var st;0===(st=t.touchData.dragDelta=t.touchData.dragDelta||[]).length?(st.push(g[0]),st.push(g[1])):(st[0]+=g[0],st[1]+=g[1])}if(n(it||j,["touchmove","tapdrag","vmousemove"],e,{x:s[0],y:s[1]}),(!it||!it.grabbed())&&j!=at&&(at&&at.emit({originalEvent:e,type:"tapdragout",position:{x:s[0],y:s[1]}}),j&&j.emit({originalEvent:e,type:"tapdragover",position:{x:s[0],y:s[1]}})),t.touchData.last=j,i)for($=0;$<s.length;$++)s[$]&&t.touchData.startPosition[$]&&d&&(t.touchData.singleTouchMoved=!0);i&&(null==it||it.pannable())&&o.panningEnabled()&&o.userPanningEnabled()&&(a(it,t.touchData.starts)&&(e.preventDefault(),t.data.bgActivePosistion||(t.data.bgActivePosistion=fn(t.touchData.startPosition)),t.swipePanning?(o.panBy({x:g[0]*l,y:g[1]*l}),o.emit("dragpan")):d&&(t.swipePanning=!0,o.panBy({x:m*l,y:v*l}),o.emit("dragpan"),it&&(it.unactivate(),t.redrawHint("select",!0),t.touchData.start=null))),u=t.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY),s[0]=u[0],s[1]=u[1])}for(b=0;b<s.length;b++)c[b]=s[b];i&&e.touches.length>0&&!t.hoverData.draggingEles&&!t.swipePanning&&null!=t.data.bgActivePosistion&&(t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.redraw())}},!1),t.registerBinding(window,"touchcancel",V=function(e){var n=t.touchData.start;t.touchData.capture=!1,n&&n.unactivate()}),t.registerBinding(window,"touchend",q=function(i){var a=t.touchData.start;if(t.touchData.capture){0===i.touches.length&&(t.touchData.capture=!1),i.preventDefault();var r=t.selection;t.swipePanning=!1,t.hoverData.draggingEles=!1;var o,s=t.cy,c=s.zoom(),l=t.touchData.now,u=t.touchData.earlier;if(i.touches[0]){var d=t.projectIntoViewport(i.touches[0].clientX,i.touches[0].clientY);l[0]=d[0],l[1]=d[1]}if(i.touches[1]&&(d=t.projectIntoViewport(i.touches[1].clientX,i.touches[1].clientY),l[2]=d[0],l[3]=d[1]),i.touches[2]&&(d=t.projectIntoViewport(i.touches[2].clientX,i.touches[2].clientY),l[4]=d[0],l[5]=d[1]),a&&a.unactivate(),t.touchData.cxt){if(o={originalEvent:i,type:"cxttapend",position:{x:l[0],y:l[1]}},a?a.emit(o):s.emit(o),!t.touchData.cxtDragged){var h={originalEvent:i,type:"cxttap",position:{x:l[0],y:l[1]}};a?a.emit(h):s.emit(h)}return t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!1,t.touchData.start=null,void t.redraw()}if(!i.touches[2]&&s.boxSelectionEnabled()&&t.touchData.selecting){t.touchData.selecting=!1;var f=s.collection(t.getAllInBox(r[0],r[1],r[2],r[3]));r[0]=void 0,r[1]=void 0,r[2]=void 0,r[3]=void 0,r[4]=0,t.redrawHint("select",!0),s.emit({type:"boxend",originalEvent:i,position:{x:l[0],y:l[1]}});var g=function(t){return t.selectable()&&!t.selected()};f.emit("box").stdFilter(g).select().emit("boxselect"),f.nonempty()&&t.redrawHint("eles",!0),t.redraw()}if(null!=a&&a.unactivate(),i.touches[2])t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);else if(!i.touches[1]&&!i.touches[0]&&!i.touches[0]){t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var b=t.dragData.touchDragEles;if(null!=a){var m=a._private.grabbed;p(b),t.redrawHint("drag",!0),t.redrawHint("eles",!0),m&&(a.emit("freeon"),b.emit("free"),t.dragData.didDrag&&(a.emit("dragfreeon"),b.emit("dragfree"))),n(a,["touchend","tapend","vmouseup","tapdragout"],i,{x:l[0],y:l[1]}),a.unactivate(),t.touchData.start=null}else{var y=t.findNearestElement(l[0],l[1],!0,!0);n(y,["touchend","tapend","vmouseup","tapdragout"],i,{x:l[0],y:l[1]})}var v=t.touchData.startPosition[0]-l[0],w=v*v,x=t.touchData.startPosition[1]-l[1],R=(w+x*x)*c*c;t.touchData.singleTouchMoved||(a||s.$(":selected").unselect(["tapunselect"]),n(a,["tap","vclick"],i,{x:l[0],y:l[1]}),W=!1,i.timeStamp-G<=s.multiClickDebounceTime()?(Y&&clearTimeout(Y),W=!0,G=null,n(a,["dbltap","vdblclick"],i,{x:l[0],y:l[1]})):(Y=setTimeout((function(){W||n(a,["onetap","voneclick"],i,{x:l[0],y:l[1]})}),s.multiClickDebounceTime()),G=i.timeStamp)),null!=a&&!t.dragData.didDrag&&a._private.selectable&&R<t.touchTapThreshold2&&!t.pinching&&("single"===s.selectionType()?(s.$(e).unmerge(a).unselect(["tapunselect"]),a.select(["tapselect"])):a.selected()?a.unselect(["tapunselect"]):a.select(["tapselect"]),t.redrawHint("eles",!0)),t.touchData.singleTouchMoved=!0}for(var _=0;_<l.length;_++)u[_]=l[_];t.dragData.didDrag=!1,0===i.touches.length&&(t.touchData.dragDelta=[],t.touchData.startPosition=null,t.touchData.startGPosition=null,t.touchData.didSelect=!1),i.touches.length<2&&(1===i.touches.length&&(t.touchData.startGPosition=[i.touches[0].clientX,i.touches[0].clientY]),t.pinching=!1,t.redrawHint("eles",!0),t.redraw())}},!1),typeof TouchEvent>"u"){var X=[],J=function(t){return{clientX:t.clientX,clientY:t.clientY,force:1,identifier:t.pointerId,pageX:t.pageX,pageY:t.pageY,radiusX:t.width/2,radiusY:t.height/2,screenX:t.screenX,screenY:t.screenY,target:t.target}},Q=function(t){return{event:t,touch:J(t)}},tt=function(t){X.push(Q(t))},et=function(t){for(var e=0;e<X.length;e++)if(X[e].event.pointerId===t.pointerId)return void X.splice(e,1)},nt=function(t){var e=X.filter((function(e){return e.event.pointerId===t.pointerId}))[0];e.event=t,e.touch=J(t)},it=function(t){t.touches=X.map((function(t){return t.touch}))},at=function(t){return"mouse"===t.pointerType||4===t.pointerType};t.registerBinding(t.container,"pointerdown",(function(t){at(t)||(t.preventDefault(),tt(t),it(t),H(t))})),t.registerBinding(t.container,"pointerup",(function(t){at(t)||(et(t),it(t),q(t))})),t.registerBinding(t.container,"pointercancel",(function(t){at(t)||(et(t),it(t),V(t))})),t.registerBinding(t.container,"pointermove",(function(t){at(t)||(t.preventDefault(),nt(t),it(t),U(t))}))}}},yd={generatePolygon:function(t,e){return this.nodeShapes[t]={renderer:this,name:t,points:e,draw:function(t,e,n,i,a){this.renderer.nodeShapeImpl("polygon",t,e,n,i,a,this.points)},intersectLine:function(t,e,n,i,a,r,o){return ai(a,r,this.points,t,e,n/2,i/2,o)},checkPoint:function(t,e,n,i,a,r,o){return Zn(t,e,this.points,r,o,i,a,[0,-1],n)}}},generateEllipse:function(){return this.nodeShapes.ellipse={renderer:this,name:"ellipse",draw:function(t,e,n,i,a){this.renderer.nodeShapeImpl(this.name,t,e,n,i,a)},intersectLine:function(t,e,n,i,a,r,o){return Qn(a,r,t,e,n/2+o,i/2+o)},checkPoint:function(t,e,n,i,a,r,o){return ti(t,e,i,a,r,o,n)}}},generateRoundPolygon:function(t,e){for(var n=new Array(2*e.length),i=0;i<e.length/2;i++){var a=2*i,r=void 0;r=i<e.length/2-1?2*(i+1):0,n[4*i]=e[a],n[4*i+1]=e[a+1];var o=e[r]-e[a],s=e[r+1]-e[a+1],c=Math.sqrt(o*o+s*s);n[4*i+2]=o/c,n[4*i+3]=s/c}return this.nodeShapes[t]={renderer:this,name:t,points:n,draw:function(t,e,n,i,a){this.renderer.nodeShapeImpl("round-polygon",t,e,n,i,a,this.points)},intersectLine:function(t,e,n,i,a,r,o){return ri(a,r,this.points,t,e,n,i)},checkPoint:function(t,e,n,i,a,r,o){return Kn(t,e,this.points,r,o,i,a)}}},generateRoundRectangle:function(){return this.nodeShapes["round-rectangle"]=this.nodeShapes.roundrectangle={renderer:this,name:"round-rectangle",points:si(4,0),draw:function(t,e,n,i,a){this.renderer.nodeShapeImpl(this.name,t,e,n,i,a)},intersectLine:function(t,e,n,i,a,r,o){return zn(a,r,t,e,n,i,o)},checkPoint:function(t,e,n,i,a,r,o){var s=ui(i,a),c=2*s;return!!(Zn(t,e,this.points,r,o,i,a-c,[0,-1],n)||Zn(t,e,this.points,r,o,i-c,a,[0,-1],n)||ti(t,e,c,c,r-i/2+s,o-a/2+s,n)||ti(t,e,c,c,r+i/2-s,o-a/2+s,n)||ti(t,e,c,c,r+i/2-s,o+a/2-s,n)||ti(t,e,c,c,r-i/2+s,o+a/2-s,n))}}},generateCutRectangle:function(){return this.nodeShapes["cut-rectangle"]=this.nodeShapes.cutrectangle={renderer:this,name:"cut-rectangle",cornerLength:hi(),points:si(4,0),draw:function(t,e,n,i,a){this.renderer.nodeShapeImpl(this.name,t,e,n,i,a)},generateCutTrianglePts:function(t,e,n,i){var a=this.cornerLength,r=e/2,o=t/2,s=n-o,c=n+o,l=i-r,u=i+r;return{topLeft:[s,l+a,s+a,l,s+a,l+a],topRight:[c-a,l,c,l+a,c-a,l+a],bottomRight:[c,u-a,c-a,u,c-a,u-a],bottomLeft:[s+a,u,s,u-a,s+a,u-a]}},intersectLine:function(t,e,n,i,a,r,o){var s=this.generateCutTrianglePts(n+2*o,i+2*o,t,e),c=[].concat.apply([],[s.topLeft.splice(0,4),s.topRight.splice(0,4),s.bottomRight.splice(0,4),s.bottomLeft.splice(0,4)]);return ai(a,r,c,t,e)},checkPoint:function(t,e,n,i,a,r,o){if(Zn(t,e,this.points,r,o,i,a-2*this.cornerLength,[0,-1],n)||Zn(t,e,this.points,r,o,i-2*this.cornerLength,a,[0,-1],n))return!0;var s=this.generateCutTrianglePts(i,a,r,o);return Gn(t,e,s.topLeft)||Gn(t,e,s.topRight)||Gn(t,e,s.bottomRight)||Gn(t,e,s.bottomLeft)}}},generateBarrel:function(){return this.nodeShapes.barrel={renderer:this,name:"barrel",points:si(4,0),draw:function(t,e,n,i,a){this.renderer.nodeShapeImpl(this.name,t,e,n,i,a)},intersectLine:function(t,e,n,i,a,r,o){var s=.15,c=.5,l=.85,u=this.generateBarrelBezierPts(n+2*o,i+2*o,t,e),d=function(t){var e=Cn({x:t[0],y:t[1]},{x:t[2],y:t[3]},{x:t[4],y:t[5]},s),n=Cn({x:t[0],y:t[1]},{x:t[2],y:t[3]},{x:t[4],y:t[5]},c),i=Cn({x:t[0],y:t[1]},{x:t[2],y:t[3]},{x:t[4],y:t[5]},l);return[t[0],t[1],e.x,e.y,n.x,n.y,i.x,i.y,t[4],t[5]]},h=[].concat(d(u.topLeft),d(u.topRight),d(u.bottomRight),d(u.bottomLeft));return ai(a,r,h,t,e)},generateBarrelBezierPts:function(t,e,n,i){var a=e/2,r=t/2,o=n-r,s=n+r,c=i-a,l=i+a,u=gi(t,e),d=u.heightOffset,h=u.widthOffset,f=u.ctrlPtOffsetPct*t,g={topLeft:[o,c+d,o+f,c,o+h,c],topRight:[s-h,c,s-f,c,s,c+d],bottomRight:[s,l-d,s-f,l,s-h,l],bottomLeft:[o+h,l,o+f,l,o,l-d]};return g.topLeft.isTop=!0,g.topRight.isTop=!0,g.bottomLeft.isBottom=!0,g.bottomRight.isBottom=!0,g},checkPoint:function(t,e,n,i,a,r,o){var s=gi(i,a),c=s.heightOffset,l=s.widthOffset;if(Zn(t,e,this.points,r,o,i,a-2*c,[0,-1],n)||Zn(t,e,this.points,r,o,i-2*l,a,[0,-1],n))return!0;for(var u=this.generateBarrelBezierPts(i,a,r,o),d=function(t,e,n){var i=n[4],a=n[2],r=n[0],o=n[5],s=n[1],c=Math.min(i,r),l=Math.max(i,r),u=Math.min(o,s),d=Math.max(o,s);if(c<=t&&t<=l&&u<=e&&e<=d){var h=fi(i,a,r),f=Vn(h[0],h[1],h[2],t).filter((function(t){return 0<=t&&t<=1}));if(f.length>0)return f[0]}return null},h=Object.keys(u),f=0;f<h.length;f++){var g=u[h[f]],p=d(t,e,g);if(null!=p){var b=g[5],m=g[3],y=g[1],v=En(b,m,y,p);if(g.isTop&&v<=e||g.isBottom&&e<=v)return!0}}return!1}}},generateBottomRoundrectangle:function(){return this.nodeShapes["bottom-round-rectangle"]=this.nodeShapes.bottomroundrectangle={renderer:this,name:"bottom-round-rectangle",points:si(4,0),draw:function(t,e,n,i,a){this.renderer.nodeShapeImpl(this.name,t,e,n,i,a)},intersectLine:function(t,e,n,i,a,r,o){var s=e-(i/2+o),c=ii(a,r,t,e,t-(n/2+o),s,t+(n/2+o),s,!1);return c.length>0?c:zn(a,r,t,e,n,i,o)},checkPoint:function(t,e,n,i,a,r,o){var s=ui(i,a),c=2*s;if(Zn(t,e,this.points,r,o,i,a-c,[0,-1],n)||Zn(t,e,this.points,r,o,i-c,a,[0,-1],n))return!0;var l=i/2+2*n,u=a/2+2*n;return!!(Gn(t,e,[r-l,o-u,r-l,o,r+l,o,r+l,o-u])||ti(t,e,c,c,r+i/2-s,o+a/2-s,n)||ti(t,e,c,c,r-i/2+s,o+a/2-s,n))}}},registerNodeShapes:function(){var t=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",si(3,0)),this.generateRoundPolygon("round-triangle",si(3,0)),this.generatePolygon("rectangle",si(4,0)),t.square=t.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();var n=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",n),this.generateRoundPolygon("round-diamond",n),this.generatePolygon("pentagon",si(5,0)),this.generateRoundPolygon("round-pentagon",si(5,0)),this.generatePolygon("hexagon",si(6,0)),this.generateRoundPolygon("round-hexagon",si(6,0)),this.generatePolygon("heptagon",si(7,0)),this.generateRoundPolygon("round-heptagon",si(7,0)),this.generatePolygon("octagon",si(8,0)),this.generateRoundPolygon("round-octagon",si(8,0));var i=new Array(20),a=li(5,0),r=li(5,Math.PI/5),o=.5*(3-Math.sqrt(5));o*=1.57;for(var s=0;s<r.length/2;s++)r[2*s]*=o,r[2*s+1]*=o;for(s=0;s<5;s++)i[4*s]=a[2*s],i[4*s+1]=a[2*s+1],i[4*s+2]=r[2*s],i[4*s+3]=r[2*s+1];i=ci(i),this.generatePolygon("star",i),this.generatePolygon("vee",[-1,-1,0,-.333,1,-1,0,1]),this.generatePolygon("rhomboid",[-1,-1,.333,-1,1,1,-.333,1]),this.nodeShapes.concavehexagon=this.generatePolygon("concave-hexagon",[-1,-.95,-.75,0,-1,.95,1,.95,.75,0,1,-.95]);var c=[-1,-1,.25,-1,1,0,.25,1,-1,1];this.generatePolygon("tag",c),this.generateRoundPolygon("round-tag",c),t.makePolygon=function(t){var n,i="polygon-"+t.join("$");return(n=this[i])?n:e.generatePolygon(i,t)}}},vd={timeToRender:function(){return this.redrawTotalTime/this.redrawCount},redraw:function(t){t=t||Oe();var e=this;void 0===e.averageRedrawTime&&(e.averageRedrawTime=0),void 0===e.lastRedrawTime&&(e.lastRedrawTime=0),void 0===e.lastDrawTime&&(e.lastDrawTime=0),e.requestedFrame=!0,e.renderOptions=t},beforeRender:function(t,e){if(!this.destroyed){null==e&&Ee("Priority is not optional for beforeRender");var n=this.beforeRenderCallbacks;n.push({fn:t,priority:e}),n.sort((function(t,e){return e.priority-t.priority}))}}},wd=function(t,e,n){for(var i=t.beforeRenderCallbacks,a=0;a<i.length;a++)i[a].fn(e,n)};vd.startRenderLoop=function(){var t=this,e=t.cy;if(!t.renderLoopStarted){t.renderLoopStarted=!0;var n=function n(i){if(!t.destroyed){if(!e.batching())if(t.requestedFrame&&!t.skipFrame){wd(t,!0,i);var a=ie();t.render(t.renderOptions);var r=t.lastDrawTime=ie();void 0===t.averageRedrawTime&&(t.averageRedrawTime=r-a),void 0===t.redrawCount&&(t.redrawCount=0),t.redrawCount++,void 0===t.redrawTotalTime&&(t.redrawTotalTime=0);var o=r-a;t.redrawTotalTime+=o,t.lastRedrawTime=o,t.averageRedrawTime=t.averageRedrawTime/2+o/2,t.requestedFrame=!1}else wd(t,!1,i);t.skipFrame=!1,ne(n)}};ne(n)}};var xd=function(t){this.init(t)},Rd=xd.prototype;Rd.clientFunctions=["redrawHint","render","renderTo","matchCanvasSize","nodeShapeImpl","arrowShapeImpl"],Rd.init=function(t){var e=this;e.options=t,e.cy=t.cy;var n=e.container=t.cy.container();if(h){var i=h.document,a=i.head,r="__________cytoscape_stylesheet",o="__________cytoscape_container",s=null!=i.getElementById(r);if(n.className.indexOf(o)<0&&(n.className=(n.className||"")+" "+o),!s){var c=i.createElement("style");c.id=r,c.innerHTML="."+o+" { position: relative; }",a.insertBefore(c,a.children[0])}"static"===h.getComputedStyle(n).getPropertyValue("position")&&Se("A Cytoscape container has style position:static and so can not use UI extensions properly")}e.selection=[void 0,void 0,void 0,void 0,0],e.bezierProjPcts=[.05,.225,.4,.5,.6,.775,.95],e.hoverData={down:null,last:null,downTime:null,triggerMode:null,dragging:!1,initialPan:[null,null],capture:!1},e.dragData={possibleDragElements:[]},e.touchData={start:null,capture:!1,startPosition:[null,null,null,null,null,null],singleTouchStartTime:null,singleTouchMoved:!0,now:[null,null,null,null,null,null],earlier:[null,null,null,null,null,null]},e.redraws=0,e.showFps=t.showFps,e.debug=t.debug,e.hideEdgesOnViewport=t.hideEdgesOnViewport,e.textureOnViewport=t.textureOnViewport,e.wheelSensitivity=t.wheelSensitivity,e.motionBlurEnabled=t.motionBlur,e.forcedPixelRatio=k(t.pixelRatio)?t.pixelRatio:null,e.motionBlur=t.motionBlur,e.motionBlurOpacity=t.motionBlurOpacity,e.motionBlurTransparency=1-e.motionBlurOpacity,e.motionBlurPxRatio=1,e.mbPxRBlurry=1,e.minMbLowQualFrames=4,e.fullQualityMb=!1,e.clearedForMotionBlur=[],e.desktopTapThreshold=t.desktopTapThreshold,e.desktopTapThreshold2=t.desktopTapThreshold*t.desktopTapThreshold,e.touchTapThreshold=t.touchTapThreshold,e.touchTapThreshold2=t.touchTapThreshold*t.touchTapThreshold,e.tapholdDuration=500,e.bindings=[],e.beforeRenderCallbacks=[],e.beforeRenderPriorities={animations:400,eleCalcs:300,eleTxrDeq:200,lyrTxrDeq:150,lyrTxrSkip:100},e.registerNodeShapes(),e.registerArrowShapes(),e.registerCalculationListeners()},Rd.notify=function(t,e){var n=this,i=n.cy;if(!this.destroyed){if("init"===t)return void n.load();if("destroy"===t)return void n.destroy();("add"===t||"remove"===t||"move"===t&&i.hasCompoundNodes()||"load"===t||"zorder"===t||"mount"===t)&&n.invalidateCachedZSortedEles(),"viewport"===t&&n.redrawHint("select",!0),("load"===t||"resize"===t||"mount"===t)&&(n.invalidateContainerClientCoordsCache(),n.matchCanvasSize(n.container)),n.redrawHint("eles",!0),n.redrawHint("drag",!0),this.startRenderLoop(),this.redraw()}},Rd.destroy=function(){var t=this;t.destroyed=!0,t.cy.stopAnimationLoop();for(var e=0;e<t.bindings.length;e++){var n=t.bindings[e],i=n.target;(i.off||i.removeEventListener).apply(i,n.args)}if(t.bindings=[],t.beforeRenderCallbacks=[],t.onUpdateEleCalcsFns=[],t.removeObserver&&t.removeObserver.disconnect(),t.styleObserver&&t.styleObserver.disconnect(),t.resizeObserver&&t.resizeObserver.disconnect(),t.labelCalcDiv)try{document.body.removeChild(t.labelCalcDiv)}catch{}},Rd.isHeadless=function(){return!1},[Ju,pd,bd,md,yd,vd].forEach((function(t){J(Rd,t)}));var _d=1e3/60,kd={setupDequeueing:function(t){return function(){var e=this,n=this.renderer;if(!e.dequeueingSetup){e.dequeueingSetup=!0;var i=Jt((function(){n.redrawHint("eles",!0),n.redrawHint("drag",!0),n.redraw()}),t.deqRedrawThreshold),a=function(a,r){var o=ie(),s=n.averageRedrawTime,c=n.lastRedrawTime,l=[],u=n.cy.extent(),d=n.getPixelRatio();for(a||n.flushRenderedStyleQueue();;){var h=ie(),f=h-o,g=h-r;if(c<_d){var p=_d-(a?s:0);if(g>=t.deqFastCost*p)break}else if(a){if(f>=t.deqCost*c||f>=t.deqAvgCost*s)break}else if(g>=t.deqNoDrawCost*_d)break;var b=t.deq(e,d,u);if(!(b.length>0))break;for(var m=0;m<b.length;m++)l.push(b[m])}l.length>0&&(t.onDeqd(e,l),!a&&t.shouldRedraw(e,l,d,u)&&i())},r=t.priority||ke;n.beforeRender(a,r(e))}}}},Ed=function(){function t(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Re;e(this,t),this.idsByKey=new ze,this.keyForId=new ze,this.cachesByLvl=new ze,this.lvls=[],this.getKey=n,this.doesEleInvalidateKey=i}return i(t,[{key:"getIdsFor",value:function(t){null==t&&Ee("Can not get id list for null key");var e=this.idsByKey,n=this.idsByKey.get(t);return n||(n=new Ve,e.set(t,n)),n}},{key:"addIdForKey",value:function(t,e){null!=t&&this.getIdsFor(t).add(e)}},{key:"deleteIdForKey",value:function(t,e){null!=t&&this.getIdsFor(t).delete(e)}},{key:"getNumberOfIdsForKey",value:function(t){return null==t?0:this.getIdsFor(t).size}},{key:"updateKeyMappingFor",value:function(t){var e=t.id(),n=this.keyForId.get(e),i=this.getKey(t);this.deleteIdForKey(n,e),this.addIdForKey(i,e),this.keyForId.set(e,i)}},{key:"deleteKeyMappingFor",value:function(t){var e=t.id(),n=this.keyForId.get(e);this.deleteIdForKey(n,e),this.keyForId.delete(e)}},{key:"keyHasChangedFor",value:function(t){var e=t.id();return this.keyForId.get(e)!==this.getKey(t)}},{key:"isInvalid",value:function(t){return this.keyHasChangedFor(t)||this.doesEleInvalidateKey(t)}},{key:"getCachesAt",value:function(t){var e=this.cachesByLvl,n=this.lvls,i=e.get(t);return i||(i=new ze,e.set(t,i),n.push(t)),i}},{key:"getCache",value:function(t,e){return this.getCachesAt(e).get(t)}},{key:"get",value:function(t,e){var n=this.getKey(t),i=this.getCache(n,e);return null!=i&&this.updateKeyMappingFor(t),i}},{key:"getForCachedKey",value:function(t,e){var n=this.keyForId.get(t.id());return this.getCache(n,e)}},{key:"hasCache",value:function(t,e){return this.getCachesAt(e).has(t)}},{key:"has",value:function(t,e){var n=this.getKey(t);return this.hasCache(n,e)}},{key:"setCache",value:function(t,e,n){n.key=t,this.getCachesAt(e).set(t,n)}},{key:"set",value:function(t,e,n){var i=this.getKey(t);this.setCache(i,e,n),this.updateKeyMappingFor(t)}},{key:"deleteCache",value:function(t,e){this.getCachesAt(e).delete(t)}},{key:"delete",value:function(t,e){var n=this.getKey(t);this.deleteCache(n,e)}},{key:"invalidateKey",value:function(t){var e=this;this.lvls.forEach((function(n){return e.deleteCache(t,n)}))}},{key:"invalidate",value:function(t){var e=t.id(),n=this.keyForId.get(e);this.deleteKeyMappingFor(t);var i=this.doesEleInvalidateKey(t);return i&&this.invalidateKey(n),i||0===this.getNumberOfIdsForKey(n)}}]),t}(),Cd=25,Sd=50,Td=-4,Ad=3,Dd=7.99,Id=8,Ld=1024,Od=1024,Md=1024,Nd=.2,Bd=.8,Pd=10,Fd=.15,jd=.1,$d=.9,zd=.9,Hd=100,Ud=1,Vd={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},qd=Me({getKey:null,doesEleInvalidateKey:Re,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:xe,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Wd=function(t,e){var n=this;n.renderer=t,n.onDequeues=[];var i=qd(e);J(n,i),n.lookup=new Ed(i.getKey,i.doesEleInvalidateKey),n.setupDequeueing()},Yd=Wd.prototype;Yd.reasons=Vd,Yd.getTextureQueue=function(t){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[t]=e.eleImgCaches[t]||[]},Yd.getRetiredTextureQueue=function(t){var e=this,n=e.eleImgCaches.retired=e.eleImgCaches.retired||{};return n[t]=n[t]||[]},Yd.getElementQueue=function(){var t=this;return t.eleCacheQueue=t.eleCacheQueue||new Ze((function(t,e){return e.reqs-t.reqs}))},Yd.getElementKeyToQueue=function(){var t=this;return t.eleKeyToCacheQueue=t.eleKeyToCacheQueue||{}},Yd.getElement=function(t,e,n,i,a){var r=this,o=this.renderer,s=o.cy.zoom(),c=this.lookup;if(!e||0===e.w||0===e.h||isNaN(e.w)||isNaN(e.h)||!t.visible()||t.removed()||!r.allowEdgeTxrCaching&&t.isEdge()||!r.allowParentTxrCaching&&t.isParent())return null;if(null==i&&(i=Math.ceil(wn(s*n))),i<Td)i=Td;else if(s>=Dd||i>Ad)return null;var l=Math.pow(2,i),u=e.h*l,d=e.w*l,h=o.eleTextBiggerThanMin(t,l);if(!this.isVisible(t,h))return null;var f,g=c.get(t,i);if(g&&g.invalidated&&(g.invalidated=!1,g.texture.invalidatedWidth-=g.width),g)return g;if(f=u<=Cd?Cd:u<=Sd?Sd:Math.ceil(u/Sd)*Sd,u>Md||d>Od)return null;var p=r.getTextureQueue(f),b=p[p.length-2],m=function(){return r.recycleTexture(f,d)||r.addTexture(f,d)};b||(b=p[p.length-1]),b||(b=m()),b.width-b.usedWidth<d&&(b=m());for(var y,v=function(t){return t&&t.scaledLabelShown===h},w=a&&a===Vd.dequeue,x=a&&a===Vd.highQuality,R=a&&a===Vd.downscale,_=i+1;_<=Ad;_++){var k=c.get(t,_);if(k){y=k;break}}var E=y&&y.level===i+1?y:null,C=function(){b.context.drawImage(E.texture.canvas,E.x,0,E.width,E.height,b.usedWidth,0,d,u)};if(b.context.setTransform(1,0,0,1,0,0),b.context.clearRect(b.usedWidth,0,d,f),v(E))C();else if(v(y)){if(!x)return r.queueElement(t,y.level-1),y;for(var S=y.level;S>i;S--)E=r.getElement(t,e,n,S,Vd.downscale);C()}else{var T;if(!w&&!x&&!R)for(var A=i-1;A>=Td;A--){var D=c.get(t,A);if(D){T=D;break}}if(v(T))return r.queueElement(t,i),T;b.context.translate(b.usedWidth,0),b.context.scale(l,l),this.drawElement(b.context,t,e,h,!1),b.context.scale(1/l,1/l),b.context.translate(-b.usedWidth,0)}return g={x:b.usedWidth,texture:b,level:i,scale:l,width:d,height:u,scaledLabelShown:h},b.usedWidth+=Math.ceil(d+Id),b.eleCaches.push(g),c.set(t,i,g),r.checkTextureFullness(b),g},Yd.invalidateElements=function(t){for(var e=0;e<t.length;e++)this.invalidateElement(t[e])},Yd.invalidateElement=function(t){var e=this,n=e.lookup,i=[];if(n.isInvalid(t)){for(var a=Td;a<=Ad;a++){var r=n.getForCachedKey(t,a);r&&i.push(r)}if(n.invalidate(t))for(var o=0;o<i.length;o++){var s=i[o],c=s.texture;c.invalidatedWidth+=s.width,s.invalidated=!0,e.checkTextureUtility(c)}e.removeFromQueue(t)}},Yd.checkTextureUtility=function(t){t.invalidatedWidth>=Nd*t.width&&this.retireTexture(t)},Yd.checkTextureFullness=function(t){var e=this.getTextureQueue(t.height);t.usedWidth/t.width>Bd&&t.fullnessChecks>=Pd?Ne(e,t):t.fullnessChecks++},Yd.retireTexture=function(t){var e=this,n=t.height,i=e.getTextureQueue(n),a=this.lookup;Ne(i,t),t.retired=!0;for(var r=t.eleCaches,o=0;o<r.length;o++){var s=r[o];a.deleteCache(s.key,s.level)}Be(r),e.getRetiredTextureQueue(n).push(t)},Yd.addTexture=function(t,e){var n=this,i={};return n.getTextureQueue(t).push(i),i.eleCaches=[],i.height=t,i.width=Math.max(Ld,e),i.usedWidth=0,i.invalidatedWidth=0,i.fullnessChecks=0,i.canvas=n.renderer.makeOffscreenCanvas(i.width,i.height),i.context=i.canvas.getContext("2d"),i},Yd.recycleTexture=function(t,e){for(var n=this,i=n.getTextureQueue(t),a=n.getRetiredTextureQueue(t),r=0;r<a.length;r++){var o=a[r];if(o.width>=e)return o.retired=!1,o.usedWidth=0,o.invalidatedWidth=0,o.fullnessChecks=0,Be(o.eleCaches),o.context.setTransform(1,0,0,1,0,0),o.context.clearRect(0,0,o.width,o.height),Ne(a,o),i.push(o),o}},Yd.queueElement=function(t,e){var n=this,i=n.getElementQueue(),a=n.getElementKeyToQueue(),r=this.getKey(t),o=a[r];if(o)o.level=Math.max(o.level,e),o.eles.merge(t),o.reqs++,i.updateItem(o);else{var s={eles:t.spawn().merge(t),level:e,reqs:1,key:r};i.push(s),a[r]=s}},Yd.dequeue=function(t){for(var e=this,n=e.getElementQueue(),i=e.getElementKeyToQueue(),a=[],r=e.lookup,o=0;o<Ud&&n.size()>0;o++){var s=n.pop(),c=s.key,l=s.eles[0],u=r.hasCache(l,s.level);if(i[c]=null,!u){a.push(s);var d=e.getBoundingBox(l);e.getElement(l,d,t,s.level,Vd.dequeue)}}return a},Yd.removeFromQueue=function(t){var e=this,n=e.getElementQueue(),i=e.getElementKeyToQueue(),a=this.getKey(t),r=i[a];null!=r&&(1===r.eles.length?(r.reqs=we,n.updateItem(r),n.pop(),i[a]=null):r.eles.unmerge(t))},Yd.onDequeue=function(t){this.onDequeues.push(t)},Yd.offDequeue=function(t){Ne(this.onDequeues,t)},Yd.setupDequeueing=kd.setupDequeueing({deqRedrawThreshold:Hd,deqCost:Fd,deqAvgCost:jd,deqNoDrawCost:$d,deqFastCost:zd,deq:function(t,e,n){return t.dequeue(e,n)},onDeqd:function(t,e){for(var n=0;n<t.onDequeues.length;n++)(0,t.onDequeues[n])(e)},shouldRedraw:function(t,e,n,i){for(var a=0;a<e.length;a++)for(var r=e[a].eles,o=0;o<r.length;o++){var s=r[o].boundingBox();if(Pn(s,i))return!0}return!1},priority:function(t){return t.renderer.beforeRenderPriorities.eleTxrDeq}});var Gd=1,Zd=-4,Kd=2,Xd=3.99,Jd=50,Qd=50,th=.15,eh=.1,nh=.9,ih=.9,ah=1,rh=250,oh=16e6,sh=!0,ch=function(t){var e=this,n=e.renderer=t,i=n.cy;e.layersByLevel={},e.firstGet=!0,e.lastInvalidationTime=ie()-2*rh,e.skipping=!1,e.eleTxrDeqs=i.collection(),e.scheduleElementRefinement=Jt((function(){e.refineElementTextures(e.eleTxrDeqs),e.eleTxrDeqs.unmerge(e.eleTxrDeqs)}),Qd),n.beforeRender((function(t,n){n-e.lastInvalidationTime<=rh?e.skipping=!0:e.skipping=!1}),n.beforeRenderPriorities.lyrTxrSkip);var a=function(t,e){return e.reqs-t.reqs};e.layersQueue=new Ze(a),e.setupDequeueing()},lh=ch.prototype,uh=0,dh=Math.pow(2,53)-1;lh.makeLayer=function(t,e){var n=Math.pow(2,e),i=Math.ceil(t.w*n),a=Math.ceil(t.h*n),r=this.renderer.makeOffscreenCanvas(i,a),o={id:uh=++uh%dh,bb:t,level:e,width:i,height:a,canvas:r,context:r.getContext("2d"),eles:[],elesQueue:[],reqs:0},s=o.context,c=-o.bb.x1,l=-o.bb.y1;return s.scale(n,n),s.translate(c,l),o},lh.getLayers=function(t,e,n){var i=this,a=i.renderer.cy.zoom(),r=i.firstGet;if(i.firstGet=!1,null==n)if((n=Math.ceil(wn(a*e)))<Zd)n=Zd;else if(a>=Xd||n>Kd)return null;i.validateLayersElesOrdering(n,t);var o,s,c=i.layersByLevel,l=Math.pow(2,n),u=c[n]=c[n]||[];if(i.levelIsComplete(n,t))return u;!function(){var e=function(e){if(i.validateLayersElesOrdering(e,t),i.levelIsComplete(e,t))return s=c[e],!0},a=function(t){if(!s)for(var i=n+t;Zd<=i&&i<=Kd&&!e(i);i+=t);};a(1),a(-1);for(var r=u.length-1;r>=0;r--){var o=u[r];o.invalid&&Ne(u,o)}}();var d=function(){if(!o){o=An();for(var e=0;e<t.length;e++)Ln(o,t[e].boundingBox())}return o},h=function(t){var e=(t=t||{}).after;if(d(),o.w*l*(o.h*l)>oh)return null;var a=i.makeLayer(o,n);if(null!=e){var r=u.indexOf(e)+1;u.splice(r,0,a)}else(void 0===t.insert||t.insert)&&u.unshift(a);return a};if(i.skipping&&!r)return null;for(var f=null,g=t.length/Gd,p=!r,b=0;b<t.length;b++){var m=t[b],y=m._private.rscratch,v=y.imgLayerCaches=y.imgLayerCaches||{},w=v[n];if(w)f=w;else{if((!f||f.eles.length>=g||!$n(f.bb,m.boundingBox()))&&!(f=h({insert:!0,after:f})))return null;s||p?i.queueLayer(f,m):i.drawEleInLayer(f,m,n,e),f.eles.push(m),v[n]=f}}return s||(p?null:u)},lh.getEleLevelForLayerLevel=function(t,e){return t},lh.drawEleInLayer=function(t,e,n,i){var a=this,r=this.renderer,o=t.context,s=e.boundingBox();0===s.w||0===s.h||!e.visible()||(n=a.getEleLevelForLayerLevel(n,i),r.setImgSmoothing(o,!1),r.drawCachedElement(o,e,null,null,n,sh),r.setImgSmoothing(o,!0))},lh.levelIsComplete=function(t,e){var n=this.layersByLevel[t];if(!n||0===n.length)return!1;for(var i=0,a=0;a<n.length;a++){var r=n[a];if(r.reqs>0||r.invalid)return!1;i+=r.eles.length}return i===e.length},lh.validateLayersElesOrdering=function(t,e){var n=this.layersByLevel[t];if(n)for(var i=0;i<n.length;i++){for(var a=n[i],r=-1,o=0;o<e.length;o++)if(a.eles[0]===e[o]){r=o;break}if(r<0)this.invalidateLayer(a);else{var s=r;for(o=0;o<a.eles.length;o++)if(a.eles[o]!==e[s+o]){this.invalidateLayer(a);break}}}},lh.updateElementsInLayers=function(t,e){for(var n=this,i=T(t[0]),a=0;a<t.length;a++)for(var r=i?null:t[a],o=i?t[a]:t[a].ele,s=o._private.rscratch,c=s.imgLayerCaches=s.imgLayerCaches||{},l=Zd;l<=Kd;l++){var u=c[l];u&&(r&&n.getEleLevelForLayerLevel(u.level)!==r.level||e(u,o,r))}},lh.haveLayers=function(){for(var t=this,e=!1,n=Zd;n<=Kd;n++){var i=t.layersByLevel[n];if(i&&i.length>0){e=!0;break}}return e},lh.invalidateElements=function(t){var e=this;0!==t.length&&(e.lastInvalidationTime=ie(),0!==t.length&&e.haveLayers()&&e.updateElementsInLayers(t,(function(t,n,i){e.invalidateLayer(t)})))},lh.invalidateLayer=function(t){if(this.lastInvalidationTime=ie(),!t.invalid){var e=t.level,n=t.eles,i=this.layersByLevel[e];Ne(i,t),t.elesQueue=[],t.invalid=!0,t.replacement&&(t.replacement.invalid=!0);for(var a=0;a<n.length;a++){var r=n[a]._private.rscratch.imgLayerCaches;r&&(r[e]=null)}}},lh.refineElementTextures=function(t){var e=this;e.updateElementsInLayers(t,(function(t,n,i){var a=t.replacement;if(a||((a=t.replacement=e.makeLayer(t.bb,t.level)).replaces=t,a.eles=t.eles),!a.reqs)for(var r=0;r<a.eles.length;r++)e.queueLayer(a,a.eles[r])}))},lh.enqueueElementRefinement=function(t){this.eleTxrDeqs.merge(t),this.scheduleElementRefinement()},lh.queueLayer=function(t,e){var n=this.layersQueue,i=t.elesQueue,a=i.hasId=i.hasId||{};if(!t.replacement){if(e){if(a[e.id()])return;i.push(e),a[e.id()]=!0}t.reqs?(t.reqs++,n.updateItem(t)):(t.reqs=1,n.push(t))}},lh.dequeue=function(t){for(var e=this,n=e.layersQueue,i=[],a=0;a<ah&&0!==n.size();){var r=n.peek();if(r.replacement)n.pop();else if(r.replaces&&r!==r.replaces.replacement)n.pop();else if(r.invalid)n.pop();else{var o=r.elesQueue.shift();o&&(e.drawEleInLayer(r,o,r.level,t),a++),0===i.length&&i.push(!0),0===r.elesQueue.length&&(n.pop(),r.reqs=0,r.replaces&&e.applyLayerReplacement(r),e.requestRedraw())}}return i},lh.applyLayerReplacement=function(t){var e=this,n=e.layersByLevel[t.level],i=t.replaces,a=n.indexOf(i);if(!(a<0||i.invalid)){n[a]=t;for(var r=0;r<t.eles.length;r++){var o=t.eles[r]._private,s=o.imgLayerCaches=o.imgLayerCaches||{};s&&(s[t.level]=t)}e.requestRedraw()}},lh.requestRedraw=Jt((function(){var t=this.renderer;t.redrawHint("eles",!0),t.redrawHint("drag",!0),t.redraw()}),100),lh.setupDequeueing=kd.setupDequeueing({deqRedrawThreshold:Jd,deqCost:th,deqAvgCost:eh,deqNoDrawCost:nh,deqFastCost:ih,deq:function(t,e){return t.dequeue(e)},onDeqd:ke,shouldRedraw:xe,priority:function(t){return t.renderer.beforeRenderPriorities.lyrTxrDeq}});var hh,fh={};function gh(t,e){for(var n=0;n<e.length;n++){var i=e[n];t.lineTo(i.x,i.y)}}function ph(t,e,n){for(var i,a=0;a<e.length;a++){var r=e[a];0===a&&(i=r),t.lineTo(r.x,r.y)}t.quadraticCurveTo(n.x,n.y,i.x,i.y)}function bh(t,e,n){t.beginPath&&t.beginPath();for(var i=e,a=0;a<i.length;a++){var r=i[a];t.lineTo(r.x,r.y)}var o=n,s=n[0];for(t.moveTo(s.x,s.y),a=1;a<o.length;a++)r=o[a],t.lineTo(r.x,r.y);t.closePath&&t.closePath()}function mh(t,e,n,i,a){t.beginPath&&t.beginPath(),t.arc(n,i,a,0,2*Math.PI,!1);var r=e,o=r[0];t.moveTo(o.x,o.y);for(var s=0;s<r.length;s++){var c=r[s];t.lineTo(c.x,c.y)}t.closePath&&t.closePath()}function yh(t,e,n,i){t.arc(e,n,i,0,2*Math.PI,!1)}fh.arrowShapeImpl=function(t){return(hh||(hh={polygon:gh,"triangle-backcurve":ph,"triangle-tee":bh,"circle-triangle":mh,"triangle-cross":bh,circle:yh}))[t]};var vh={drawElement:function(t,e,n,i,a,r){var o=this;e.isNode()?o.drawNode(t,e,n,i,a,r):o.drawEdge(t,e,n,i,a,r)},drawElementOverlay:function(t,e){var n=this;e.isNode()?n.drawNodeOverlay(t,e):n.drawEdgeOverlay(t,e)},drawElementUnderlay:function(t,e){var n=this;e.isNode()?n.drawNodeUnderlay(t,e):n.drawEdgeUnderlay(t,e)},drawCachedElementPortion:function(t,e,n,i,a,r,o,s){var c=this,l=n.getBoundingBox(e);if(0!==l.w&&0!==l.h){var u=n.getElement(e,l,i,a,r);if(null!=u){var d=s(c,e);if(0===d)return;var h,f,g,p,b,m,y=o(c,e),v=l.x1,w=l.y1,x=l.w,R=l.h;if(0!==y){var _=n.getRotationPoint(e);g=_.x,p=_.y,t.translate(g,p),t.rotate(y),(b=c.getImgSmoothing(t))||c.setImgSmoothing(t,!0);var k=n.getRotationOffset(e);h=k.x,f=k.y}else h=v,f=w;1!==d&&(m=t.globalAlpha,t.globalAlpha=m*d),t.drawImage(u.texture.canvas,u.x,0,u.width,u.height,h,f,x,R),1!==d&&(t.globalAlpha=m),0!==y&&(t.rotate(-y),t.translate(-g,-p),b||c.setImgSmoothing(t,!1))}else n.drawElement(t,e)}}},wh=function(){return 0},xh=function(t,e){return t.getTextAngle(e,null)},Rh=function(t,e){return t.getTextAngle(e,"source")},_h=function(t,e){return t.getTextAngle(e,"target")},kh=function(t,e){return e.effectiveOpacity()},Eh=function(t,e){return e.pstyle("text-opacity").pfValue*e.effectiveOpacity()};vh.drawCachedElement=function(t,e,n,i,a,r){var o=this,s=o.data,c=s.eleTxrCache,l=s.lblTxrCache,u=s.slbTxrCache,d=s.tlbTxrCache,h=e.boundingBox(),f=!0===r?c.reasons.highQuality:null;if(0!==h.w&&0!==h.h&&e.visible()&&(!i||Pn(h,i))){var g=e.isEdge(),p=e.element()._private.rscratch.badLine;o.drawElementUnderlay(t,e),o.drawCachedElementPortion(t,e,c,n,a,f,wh,kh),(!g||!p)&&o.drawCachedElementPortion(t,e,l,n,a,f,xh,Eh),g&&!p&&(o.drawCachedElementPortion(t,e,u,n,a,f,Rh,Eh),o.drawCachedElementPortion(t,e,d,n,a,f,_h,Eh)),o.drawElementOverlay(t,e)}},vh.drawElements=function(t,e){for(var n=this,i=0;i<e.length;i++){var a=e[i];n.drawElement(t,a)}},vh.drawCachedElements=function(t,e,n,i){for(var a=this,r=0;r<e.length;r++){var o=e[r];a.drawCachedElement(t,o,n,i)}},vh.drawCachedNodes=function(t,e,n,i){for(var a=this,r=0;r<e.length;r++){var o=e[r];o.isNode()&&a.drawCachedElement(t,o,n,i)}},vh.drawLayeredElements=function(t,e,n,i){var a=this,r=a.data.lyrTxrCache.getLayers(e,n);if(r)for(var o=0;o<r.length;o++){var s=r[o],c=s.bb;0===c.w||0===c.h||t.drawImage(s.canvas,c.x1,c.y1,c.w,c.h)}else a.drawCachedElements(t,e,n,i)};var Ch={drawEdge:function(t,e,n){var i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],o=this,s=e._private.rscratch;if((!r||e.visible())&&!s.badLine&&null!=s.allpts&&!isNaN(s.allpts[0])){var c;n&&(c=n,t.translate(-c.x1,-c.y1));var l=r?e.pstyle("opacity").value:1,u=r?e.pstyle("line-opacity").value:1,d=e.pstyle("curve-style").value,h=e.pstyle("line-style").value,f=e.pstyle("width").pfValue,g=e.pstyle("line-cap").value,p=l*u,b=l*u,m=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p;"straight-triangle"===d?(o.eleStrokeStyle(t,e,n),o.drawEdgeTrianglePath(e,t,s.allpts)):(t.lineWidth=f,t.lineCap=g,o.eleStrokeStyle(t,e,n),o.drawEdgePath(e,t,s.allpts,h),t.lineCap="butt")},y=function(){a&&o.drawEdgeOverlay(t,e)},v=function(){a&&o.drawEdgeUnderlay(t,e)},w=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:b;o.drawArrowheads(t,e,n)},x=function(){o.drawElementText(t,e,null,i)};if(t.lineJoin="round","yes"===e.pstyle("ghost").value){var R=e.pstyle("ghost-offset-x").pfValue,_=e.pstyle("ghost-offset-y").pfValue,k=e.pstyle("ghost-opacity").value,E=p*k;t.translate(R,_),m(E),w(E),t.translate(-R,-_)}v(),m(),w(),y(),x(),n&&t.translate(c.x1,c.y1)}}},Sh=function(t){if(!["overlay","underlay"].includes(t))throw new Error("Invalid state");return function(e,n){if(n.visible()){var i=n.pstyle("".concat(t,"-opacity")).value;if(0!==i){var a=this,r=a.usePaths(),o=n._private.rscratch,s=2*n.pstyle("".concat(t,"-padding")).pfValue,c=n.pstyle("".concat(t,"-color")).value;e.lineWidth=s,"self"!==o.edgeType||r?e.lineCap="round":e.lineCap="butt",a.colorStrokeStyle(e,c[0],c[1],c[2],i),a.drawEdgePath(n,e,o.allpts,"solid")}}}};Ch.drawEdgeOverlay=Sh("overlay"),Ch.drawEdgeUnderlay=Sh("underlay"),Ch.drawEdgePath=function(t,e,n,i){var a,r=t._private.rscratch,o=e,s=!1,c=this.usePaths(),l=t.pstyle("line-dash-pattern").pfValue,u=t.pstyle("line-dash-offset").pfValue;if(c){var d=n.join("$");r.pathCacheKey&&r.pathCacheKey===d?(a=e=r.pathCache,s=!0):(a=e=new Path2D,r.pathCacheKey=d,r.pathCache=a)}if(o.setLineDash)switch(i){case"dotted":o.setLineDash([1,1]);break;case"dashed":o.setLineDash(l),o.lineDashOffset=u;break;case"solid":o.setLineDash([])}if(!s&&!r.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(n[0],n[1]),r.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var h=2;h+3<n.length;h+=4)e.quadraticCurveTo(n[h],n[h+1],n[h+2],n[h+3]);break;case"straight":case"segments":case"haystack":for(var f=2;f+1<n.length;f+=2)e.lineTo(n[f],n[f+1])}e=o,c?e.stroke(a):e.stroke(),e.setLineDash&&e.setLineDash([])},Ch.drawEdgeTrianglePath=function(t,e,n){e.fillStyle=e.strokeStyle;for(var i=t.pstyle("width").pfValue,a=0;a+1<n.length;a+=2){var r=[n[a+2]-n[a],n[a+3]-n[a+1]],o=Math.sqrt(r[0]*r[0]+r[1]*r[1]),s=[r[1]/o,-r[0]/o],c=[s[0]*i/2,s[1]*i/2];e.beginPath(),e.moveTo(n[a]-c[0],n[a+1]-c[1]),e.lineTo(n[a]+c[0],n[a+1]+c[1]),e.lineTo(n[a+2],n[a+3]),e.closePath(),e.fill()}},Ch.drawArrowheads=function(t,e,n){var i=e._private.rscratch,a="haystack"===i.edgeType;a||this.drawArrowhead(t,e,"source",i.arrowStartX,i.arrowStartY,i.srcArrowAngle,n),this.drawArrowhead(t,e,"mid-target",i.midX,i.midY,i.midtgtArrowAngle,n),this.drawArrowhead(t,e,"mid-source",i.midX,i.midY,i.midsrcArrowAngle,n),a||this.drawArrowhead(t,e,"target",i.arrowEndX,i.arrowEndY,i.tgtArrowAngle,n)},Ch.drawArrowhead=function(t,e,n,i,a,r,o){if(!(isNaN(i)||null==i||isNaN(a)||null==a||isNaN(r)||null==r)){var s=this,c=e.pstyle(n+"-arrow-shape").value;if("none"!==c){var l="hollow"===e.pstyle(n+"-arrow-fill").value?"both":"filled",u=e.pstyle(n+"-arrow-fill").value,d=e.pstyle("width").pfValue,h=e.pstyle("opacity").value;void 0===o&&(o=h);var f=t.globalCompositeOperation;(1!==o||"hollow"===u)&&(t.globalCompositeOperation="destination-out",s.colorFillStyle(t,255,255,255,1),s.colorStrokeStyle(t,255,255,255,1),s.drawArrowShape(e,t,l,d,c,i,a,r),t.globalCompositeOperation=f);var g=e.pstyle(n+"-arrow-color").value;s.colorFillStyle(t,g[0],g[1],g[2],o),s.colorStrokeStyle(t,g[0],g[1],g[2],o),s.drawArrowShape(e,t,u,d,c,i,a,r)}}},Ch.drawArrowShape=function(t,e,n,i,a,r,o,s){var c,l=this,u=this.usePaths()&&"triangle-cross"!==a,d=!1,h=e,f={x:r,y:o},g=t.pstyle("arrow-scale").value,p=this.getArrowWidth(i,g),b=l.arrowShapes[a];if(u){var m=l.arrowPathCache=l.arrowPathCache||[],y=ge(a),v=m[y];null!=v?(c=e=v,d=!0):(c=e=new Path2D,m[y]=c)}d||(e.beginPath&&e.beginPath(),u?b.draw(e,1,0,{x:0,y:0},1):b.draw(e,p,s,f,i),e.closePath&&e.closePath()),e=h,u&&(e.translate(r,o),e.rotate(s),e.scale(p,p)),("filled"===n||"both"===n)&&(u?e.fill(c):e.fill()),("hollow"===n||"both"===n)&&(e.lineWidth=(b.matchEdgeWidth?i:1)/(u?p:1),e.lineJoin="miter",u?e.stroke(c):e.stroke()),u&&(e.scale(1/p,1/p),e.rotate(-s),e.translate(-r,-o))};var Th={safeDrawImage:function(t,e,n,i,a,r,o,s,c,l){if(!(a<=0||r<=0||c<=0||l<=0))try{t.drawImage(e,n,i,a,r,o,s,c,l)}catch(u){Se(u)}},drawInscribedImage:function(t,e,n,i,a){var r=this,o=n.position(),s=o.x,c=o.y,l=n.cy().style(),u=l.getIndexedStyle.bind(l),d=u(n,"background-fit","value",i),h=u(n,"background-repeat","value",i),f=n.width(),g=n.height(),p=2*n.padding(),b=f+("inner"===u(n,"background-width-relative-to","value",i)?0:p),m=g+("inner"===u(n,"background-height-relative-to","value",i)?0:p),y=n._private.rscratch,v="node"===u(n,"background-clip","value",i),w=u(n,"background-image-opacity","value",i)*a,x=u(n,"background-image-smoothing","value",i),R=e.width||e.cachedW,_=e.height||e.cachedH;(null==R||null==_)&&(document.body.appendChild(e),R=e.cachedW=e.width||e.offsetWidth,_=e.cachedH=e.height||e.offsetHeight,document.body.removeChild(e));var k=R,E=_;if("auto"!==u(n,"background-width","value",i)&&(k="%"===u(n,"background-width","units",i)?u(n,"background-width","pfValue",i)*b:u(n,"background-width","pfValue",i)),"auto"!==u(n,"background-height","value",i)&&(E="%"===u(n,"background-height","units",i)?u(n,"background-height","pfValue",i)*m:u(n,"background-height","pfValue",i)),0!==k&&0!==E){if("contain"===d)k*=C=Math.min(b/k,m/E),E*=C;else if("cover"===d){var C;k*=C=Math.max(b/k,m/E),E*=C}var S=s-b/2,T=u(n,"background-position-x","units",i),A=u(n,"background-position-x","pfValue",i);S+="%"===T?(b-k)*A:A;var D=u(n,"background-offset-x","units",i),I=u(n,"background-offset-x","pfValue",i);S+="%"===D?(b-k)*I:I;var L=c-m/2,O=u(n,"background-position-y","units",i),M=u(n,"background-position-y","pfValue",i);L+="%"===O?(m-E)*M:M;var N=u(n,"background-offset-y","units",i),B=u(n,"background-offset-y","pfValue",i);L+="%"===N?(m-E)*B:B,y.pathCache&&(S-=s,L-=c,s=0,c=0);var P=t.globalAlpha;t.globalAlpha=w;var F=r.getImgSmoothing(t),j=!1;if("no"===x&&F?(r.setImgSmoothing(t,!1),j=!0):"yes"===x&&!F&&(r.setImgSmoothing(t,!0),j=!0),"no-repeat"===h)v&&(t.save(),y.pathCache?t.clip(y.pathCache):(r.nodeShapes[r.getNodeShape(n)].draw(t,s,c,b,m),t.clip())),r.safeDrawImage(t,e,0,0,R,_,S,L,k,E),v&&t.restore();else{var $=t.createPattern(e,h);t.fillStyle=$,r.nodeShapes[r.getNodeShape(n)].draw(t,s,c,b,m),t.translate(S,L),t.fill(),t.translate(-S,-L)}t.globalAlpha=P,j&&r.setImgSmoothing(t,F)}}},Ah={};function Dh(t,e,n,i,a){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:5;t.beginPath(),t.moveTo(e+r,n),t.lineTo(e+i-r,n),t.quadraticCurveTo(e+i,n,e+i,n+r),t.lineTo(e+i,n+a-r),t.quadraticCurveTo(e+i,n+a,e+i-r,n+a),t.lineTo(e+r,n+a),t.quadraticCurveTo(e,n+a,e,n+a-r),t.lineTo(e,n+r),t.quadraticCurveTo(e,n,e+r,n),t.closePath(),t.fill()}Ah.eleTextBiggerThanMin=function(t,e){if(!e){var n=t.cy().zoom(),i=this.getPixelRatio(),a=Math.ceil(wn(n*i));e=Math.pow(2,a)}return!(t.pstyle("font-size").pfValue*e<t.pstyle("min-zoomed-font-size").pfValue)},Ah.drawElementText=function(t,e,n,i,a){var r=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],o=this;if(null==i){if(r&&!o.eleTextBiggerThanMin(e))return}else if(!1===i)return;if(e.isNode()){var s=e.pstyle("label");if(!s||!s.value)return;var c=o.getLabelJustification(e);t.textAlign=c,t.textBaseline="bottom"}else{var l=e.element()._private.rscratch.badLine,u=e.pstyle("label"),d=e.pstyle("source-label"),h=e.pstyle("target-label");if(l||(!u||!u.value)&&(!d||!d.value)&&(!h||!h.value))return;t.textAlign="center",t.textBaseline="bottom"}var f,g=!n;n&&(f=n,t.translate(-f.x1,-f.y1)),null==a?(o.drawText(t,e,null,g,r),e.isEdge()&&(o.drawText(t,e,"source",g,r),o.drawText(t,e,"target",g,r))):o.drawText(t,e,a,g,r),n&&t.translate(f.x1,f.y1)},Ah.getFontCache=function(t){var e;this.fontCaches=this.fontCaches||[];for(var n=0;n<this.fontCaches.length;n++)if((e=this.fontCaches[n]).context===t)return e;return e={context:t},this.fontCaches.push(e),e},Ah.setupTextStyle=function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=e.pstyle("font-style").strValue,a=e.pstyle("font-size").pfValue+"px",r=e.pstyle("font-family").strValue,o=e.pstyle("font-weight").strValue,s=n?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,c=e.pstyle("text-outline-opacity").value*s,l=e.pstyle("color").value,u=e.pstyle("text-outline-color").value;t.font=i+" "+o+" "+a+" "+r,t.lineJoin="round",this.colorFillStyle(t,l[0],l[1],l[2],s),this.colorStrokeStyle(t,u[0],u[1],u[2],c)},Ah.getTextAngle=function(t,e){var n=t._private.rscratch,i=e?e+"-":"",a=t.pstyle(i+"text-rotation"),r=Fe(n,"labelAngle",e);return"autorotate"===a.strValue?t.isEdge()?r:0:"none"===a.strValue?0:a.pfValue},Ah.drawText=function(t,e,n){var i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=e._private.rscratch,o=a?e.effectiveOpacity():1;if(!a||0!==o&&0!==e.pstyle("text-opacity").value){"main"===n&&(n=null);var s,c,l=Fe(r,"labelX",n),u=Fe(r,"labelY",n),d=this.getLabelText(e,n);if(null!=d&&""!==d&&!isNaN(l)&&!isNaN(u)){this.setupTextStyle(t,e,a);var h,f=n?n+"-":"",g=Fe(r,"labelWidth",n),p=Fe(r,"labelHeight",n),b=e.pstyle(f+"text-margin-x").pfValue,m=e.pstyle(f+"text-margin-y").pfValue,y=e.isEdge(),v=e.pstyle("text-halign").value,w=e.pstyle("text-valign").value;switch(y&&(v="center",w="center"),l+=b,u+=m,0!==(h=i?this.getTextAngle(e,n):0)&&(s=l,c=u,t.translate(s,c),t.rotate(h),l=0,u=0),w){case"top":break;case"center":u+=p/2;break;case"bottom":u+=p}var x=e.pstyle("text-background-opacity").value,R=e.pstyle("text-border-opacity").value,_=e.pstyle("text-border-width").pfValue,k=e.pstyle("text-background-padding").pfValue;if(x>0||_>0&&R>0){var E=l-k;switch(v){case"left":E-=g;break;case"center":E-=g/2}var C=u-p-k,S=g+2*k,T=p+2*k;if(x>0){var A=t.fillStyle,D=e.pstyle("text-background-color").value;t.fillStyle="rgba("+D[0]+","+D[1]+","+D[2]+","+x*o+")",0===e.pstyle("text-background-shape").strValue.indexOf("round")?Dh(t,E,C,S,T,2):t.fillRect(E,C,S,T),t.fillStyle=A}if(_>0&&R>0){var I=t.strokeStyle,L=t.lineWidth,O=e.pstyle("text-border-color").value,M=e.pstyle("text-border-style").value;if(t.strokeStyle="rgba("+O[0]+","+O[1]+","+O[2]+","+R*o+")",t.lineWidth=_,t.setLineDash)switch(M){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"double":t.lineWidth=_/4,t.setLineDash([]);break;case"solid":t.setLineDash([])}if(t.strokeRect(E,C,S,T),"double"===M){var N=_/2;t.strokeRect(E+N,C+N,S-2*N,T-2*N)}t.setLineDash&&t.setLineDash([]),t.lineWidth=L,t.strokeStyle=I}}var B=2*e.pstyle("text-outline-width").pfValue;if(B>0&&(t.lineWidth=B),"wrap"===e.pstyle("text-wrap").value){var P=Fe(r,"labelWrapCachedLines",n),F=Fe(r,"labelLineHeight",n),j=g/2,$=this.getLabelJustification(e);switch("auto"===$||("left"===v?"left"===$?l+=-g:"center"===$&&(l+=-j):"center"===v?"left"===$?l+=-j:"right"===$&&(l+=j):"right"===v&&("center"===$?l+=j:"right"===$&&(l+=g))),w){case"top":case"center":case"bottom":u-=(P.length-1)*F}for(var z=0;z<P.length;z++)B>0&&t.strokeText(P[z],l,u),t.fillText(P[z],l,u),u+=F}else B>0&&t.strokeText(d,l,u),t.fillText(d,l,u);0!==h&&(t.rotate(-h),t.translate(-s,-c))}}};var Ih={drawNode:function(t,e,n){var i,a,r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],c=this,l=e._private,u=l.rscratch,d=e.position();if(k(d.x)&&k(d.y)&&(!s||e.visible())){var h,f,g=s?e.effectiveOpacity():1,p=c.usePaths(),b=!1,m=e.padding();i=e.width()+2*m,a=e.height()+2*m,n&&(f=n,t.translate(-f.x1,-f.y1));for(var y=e.pstyle("background-image").value,v=new Array(y.length),w=new Array(y.length),x=0,R=0;R<y.length;R++){var _=y[R];if(v[R]=null!=_&&"none"!==_){var E=e.cy().style().getIndexedStyle(e,"background-image-crossorigin","value",R);x++,w[R]=c.getCachedImage(_,E,(function(){l.backgroundTimestamp=Date.now(),e.emitAndNotify("background")}))}}var C=e.pstyle("background-blacken").value,S=e.pstyle("border-width").pfValue,T=e.pstyle("background-opacity").value*g,A=e.pstyle("border-color").value,D=e.pstyle("border-style").value,I=e.pstyle("border-opacity").value*g;t.lineJoin="miter";var L=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:T;c.eleFillStyle(t,e,n)},O=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:I;c.colorStrokeStyle(t,A[0],A[1],A[2],e)},M=e.pstyle("shape").strValue,N=e.pstyle("shape-polygon-points").pfValue;if(p){t.translate(d.x,d.y);var B=c.nodePathCache=c.nodePathCache||[],P=pe("polygon"===M?M+","+N.join(","):M,""+a,""+i),F=B[P];null!=F?(h=F,b=!0,u.pathCache=h):(h=new Path2D,B[P]=u.pathCache=h)}var j=function(){if(!b){var n=d;p&&(n={x:0,y:0}),c.nodeShapes[c.getNodeShape(e)].draw(h||t,n.x,n.y,i,a)}p?t.fill(h):t.fill()},$=function(){for(var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],a=l.backgrounding,r=0,o=0;o<w.length;o++){var s=e.cy().style().getIndexedStyle(e,"background-image-containment","value",o);i&&"over"===s||!i&&"inside"===s?r++:v[o]&&w[o].complete&&!w[o].error&&(r++,c.drawInscribedImage(t,w[o],e,o,n))}l.backgrounding=r!==x,a!==l.backgrounding&&e.updateStyle(!1)},z=function(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g;c.hasPie(e)&&(c.drawPie(t,e,r),n&&(p||c.nodeShapes[c.getNodeShape(e)].draw(t,d.x,d.y,i,a)))},H=function(){var e=(C>0?C:-C)*(arguments.length>0&&void 0!==arguments[0]?arguments[0]:g),n=C>0?0:255;0!==C&&(c.colorFillStyle(t,n,n,n,e),p?t.fill(h):t.fill())},U=function(){if(S>0){if(t.lineWidth=S,t.lineCap="butt",t.setLineDash)switch(D){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([])}if(p?t.stroke(h):t.stroke(),"double"===D){t.lineWidth=S/3;var e=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",p?t.stroke(h):t.stroke(),t.globalCompositeOperation=e}t.setLineDash&&t.setLineDash([])}},V=function(){o&&c.drawNodeOverlay(t,e,d,i,a)},q=function(){o&&c.drawNodeUnderlay(t,e,d,i,a)},W=function(){c.drawElementText(t,e,null,r)};if("yes"===e.pstyle("ghost").value){var Y=e.pstyle("ghost-offset-x").pfValue,G=e.pstyle("ghost-offset-y").pfValue,Z=e.pstyle("ghost-opacity").value,K=Z*g;t.translate(Y,G),L(Z*T),j(),$(K,!0),O(Z*I),U(),z(0!==C||0!==S),$(K,!1),H(K),t.translate(-Y,-G)}p&&t.translate(-d.x,-d.y),q(),p&&t.translate(d.x,d.y),L(),j(),$(g,!0),O(),U(),z(0!==C||0!==S),$(g,!1),H(),p&&t.translate(-d.x,-d.y),W(),V(),n&&t.translate(f.x1,f.y1)}}},Lh=function(t){if(!["overlay","underlay"].includes(t))throw new Error("Invalid state");return function(e,n,i,a,r){var o=this;if(n.visible()){var s=n.pstyle("".concat(t,"-padding")).pfValue,c=n.pstyle("".concat(t,"-opacity")).value,l=n.pstyle("".concat(t,"-color")).value,u=n.pstyle("".concat(t,"-shape")).value;if(c>0){if(i=i||n.position(),null==a||null==r){var d=n.padding();a=n.width()+2*d,r=n.height()+2*d}o.colorFillStyle(e,l[0],l[1],l[2],c),o.nodeShapes[u].draw(e,i.x,i.y,a+2*s,r+2*s),e.fill()}}}};Ih.drawNodeOverlay=Lh("overlay"),Ih.drawNodeUnderlay=Lh("underlay"),Ih.hasPie=function(t){return(t=t[0])._private.hasPie},Ih.drawPie=function(t,e,n,i){e=e[0],i=i||e.position();var a=e.cy().style(),r=e.pstyle("pie-size"),o=i.x,s=i.y,c=e.width(),l=e.height(),u=Math.min(c,l)/2,d=0;this.usePaths()&&(o=0,s=0),"%"===r.units?u*=r.pfValue:void 0!==r.pfValue&&(u=r.pfValue/2);for(var h=1;h<=a.pieBackgroundN;h++){var f=e.pstyle("pie-"+h+"-background-size").value,g=e.pstyle("pie-"+h+"-background-color").value,p=e.pstyle("pie-"+h+"-background-opacity").value*n,b=f/100;b+d>1&&(b=1-d);var m=1.5*Math.PI+2*Math.PI*d,y=m+2*Math.PI*b;0===f||d>=1||d+b>1||(t.beginPath(),t.moveTo(o,s),t.arc(o,s,u,m,y),t.closePath(),this.colorFillStyle(t,g[0],g[1],g[2],p),t.fill(),d+=b)}};var Oh={},Mh=100;Oh.getPixelRatio=function(){var t=this.data.contexts[0];if(null!=this.forcedPixelRatio)return this.forcedPixelRatio;var e=t.backingStorePixelRatio||t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return(window.devicePixelRatio||1)/e},Oh.paintCache=function(t){for(var e,n=this.paintCaches=this.paintCaches||[],i=!0,a=0;a<n.length;a++)if((e=n[a]).context===t){i=!1;break}return i&&(e={context:t},n.push(e)),e},Oh.createGradientStyleFor=function(t,e,n,i,a){var r,o=this.usePaths(),s=n.pstyle(e+"-gradient-stop-colors").value,c=n.pstyle(e+"-gradient-stop-positions").pfValue;if("radial-gradient"===i)if(n.isEdge()){var l=n.sourceEndpoint(),u=n.targetEndpoint(),d=n.midpoint(),h=Rn(l,d),f=Rn(u,d);r=t.createRadialGradient(d.x,d.y,0,d.x,d.y,Math.max(h,f))}else{var g=o?{x:0,y:0}:n.position(),p=n.paddedWidth(),b=n.paddedHeight();r=t.createRadialGradient(g.x,g.y,0,g.x,g.y,Math.max(p,b))}else if(n.isEdge()){var m=n.sourceEndpoint(),y=n.targetEndpoint();r=t.createLinearGradient(m.x,m.y,y.x,y.y)}else{var v=o?{x:0,y:0}:n.position(),w=n.paddedWidth()/2,x=n.paddedHeight()/2;switch(n.pstyle("background-gradient-direction").value){case"to-bottom":r=t.createLinearGradient(v.x,v.y-x,v.x,v.y+x);break;case"to-top":r=t.createLinearGradient(v.x,v.y+x,v.x,v.y-x);break;case"to-left":r=t.createLinearGradient(v.x+w,v.y,v.x-w,v.y);break;case"to-right":r=t.createLinearGradient(v.x-w,v.y,v.x+w,v.y);break;case"to-bottom-right":case"to-right-bottom":r=t.createLinearGradient(v.x-w,v.y-x,v.x+w,v.y+x);break;case"to-top-right":case"to-right-top":r=t.createLinearGradient(v.x-w,v.y+x,v.x+w,v.y-x);break;case"to-bottom-left":case"to-left-bottom":r=t.createLinearGradient(v.x+w,v.y-x,v.x-w,v.y+x);break;case"to-top-left":case"to-left-top":r=t.createLinearGradient(v.x+w,v.y+x,v.x-w,v.y-x)}}if(!r)return null;for(var R=c.length===s.length,_=s.length,k=0;k<_;k++)r.addColorStop(R?c[k]:k/(_-1),"rgba("+s[k][0]+","+s[k][1]+","+s[k][2]+","+a+")");return r},Oh.gradientFillStyle=function(t,e,n,i){var a=this.createGradientStyleFor(t,"background",e,n,i);if(!a)return null;t.fillStyle=a},Oh.colorFillStyle=function(t,e,n,i,a){t.fillStyle="rgba("+e+","+n+","+i+","+a+")"},Oh.eleFillStyle=function(t,e,n){var i=e.pstyle("background-fill").value;if("linear-gradient"===i||"radial-gradient"===i)this.gradientFillStyle(t,e,i,n);else{var a=e.pstyle("background-color").value;this.colorFillStyle(t,a[0],a[1],a[2],n)}},Oh.gradientStrokeStyle=function(t,e,n,i){var a=this.createGradientStyleFor(t,"line",e,n,i);if(!a)return null;t.strokeStyle=a},Oh.colorStrokeStyle=function(t,e,n,i,a){t.strokeStyle="rgba("+e+","+n+","+i+","+a+")"},Oh.eleStrokeStyle=function(t,e,n){var i=e.pstyle("line-fill").value;if("linear-gradient"===i||"radial-gradient"===i)this.gradientStrokeStyle(t,e,i,n);else{var a=e.pstyle("line-color").value;this.colorStrokeStyle(t,a[0],a[1],a[2],n)}},Oh.matchCanvasSize=function(t){var e=this,n=e.data,i=e.findContainerClientCoords(),a=i[2],r=i[3],o=e.getPixelRatio(),s=e.motionBlurPxRatio;(t===e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE]||t===e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG])&&(o=s);var c,l=a*o,u=r*o;if(l!==e.canvasWidth||u!==e.canvasHeight){e.fontCaches=null;var d=n.canvasContainer;d.style.width=a+"px",d.style.height=r+"px";for(var h=0;h<e.CANVAS_LAYERS;h++)(c=n.canvases[h]).width=l,c.height=u,c.style.width=a+"px",c.style.height=r+"px";for(h=0;h<e.BUFFER_COUNT;h++)(c=n.bufferCanvases[h]).width=l,c.height=u,c.style.width=a+"px",c.style.height=r+"px";e.textureMult=1,o<=1&&(c=n.bufferCanvases[e.TEXTURE_BUFFER],e.textureMult=2,c.width=l*e.textureMult,c.height=u*e.textureMult),e.canvasWidth=l,e.canvasHeight=u}},Oh.renderTo=function(t,e,n,i){this.render({forcedContext:t,forcedZoom:e,forcedPan:n,drawAllLayers:!0,forcedPxRatio:i})},Oh.render=function(t){var e=(t=t||Oe()).forcedContext,n=t.drawAllLayers,i=t.drawOnlyNodeLayer,a=t.forcedZoom,r=t.forcedPan,o=this,s=void 0===t.forcedPxRatio?this.getPixelRatio():t.forcedPxRatio,c=o.cy,l=o.data,u=l.canvasNeedsRedraw,d=o.textureOnViewport&&!e&&(o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming),h=void 0!==t.motionBlur?t.motionBlur:o.motionBlur,f=o.motionBlurPxRatio,g=c.hasCompoundNodes(),p=o.hoverData.draggingEles,b=!(!o.hoverData.selecting&&!o.touchData.selecting),m=h=h&&!e&&o.motionBlurEnabled&&!b;e||(o.prevPxRatio!==s&&(o.invalidateContainerClientCoordsCache(),o.matchCanvasSize(o.container),o.redrawHint("eles",!0),o.redrawHint("drag",!0)),o.prevPxRatio=s),!e&&o.motionBlurTimeout&&clearTimeout(o.motionBlurTimeout),h&&(null==o.mbFrames&&(o.mbFrames=0),o.mbFrames++,o.mbFrames<3&&(m=!1),o.mbFrames>o.minMbLowQualFrames&&(o.motionBlurPxRatio=o.mbPxRBlurry)),o.clearingMotionBlur&&(o.motionBlurPxRatio=1),o.textureDrawLastFrame&&!d&&(u[o.NODE]=!0,u[o.SELECT_BOX]=!0);var y=c.style(),v=c.zoom(),w=void 0!==a?a:v,x=c.pan(),R={x:x.x,y:x.y},_={zoom:v,pan:{x:x.x,y:x.y}},k=o.prevViewport;!(void 0===k||_.zoom!==k.zoom||_.pan.x!==k.pan.x||_.pan.y!==k.pan.y)&&!(p&&!g)&&(o.motionBlurPxRatio=1),r&&(R=r),w*=s,R.x*=s,R.y*=s;var E=o.getCachedZSortedEles();function C(t,e,n,i,a){var r=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",o.colorFillStyle(t,255,255,255,o.motionBlurTransparency),t.fillRect(e,n,i,a),t.globalCompositeOperation=r}function S(t,i){var s,c,u,d;o.clearingMotionBlur||t!==l.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]&&t!==l.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]?(s=R,c=w,u=o.canvasWidth,d=o.canvasHeight):(s={x:x.x*f,y:x.y*f},c=v*f,u=o.canvasWidth*f,d=o.canvasHeight*f),t.setTransform(1,0,0,1,0,0),"motionBlur"===i?C(t,0,0,u,d):!e&&(void 0===i||i)&&t.clearRect(0,0,u,d),n||(t.translate(s.x,s.y),t.scale(c,c)),r&&t.translate(r.x,r.y),a&&t.scale(a,a)}if(d||(o.textureDrawLastFrame=!1),d){if(o.textureDrawLastFrame=!0,!o.textureCache){o.textureCache={},o.textureCache.bb=c.mutableElements().boundingBox(),o.textureCache.texture=o.data.bufferCanvases[o.TEXTURE_BUFFER];var T=o.data.bufferContexts[o.TEXTURE_BUFFER];T.setTransform(1,0,0,1,0,0),T.clearRect(0,0,o.canvasWidth*o.textureMult,o.canvasHeight*o.textureMult),o.render({forcedContext:T,drawOnlyNodeLayer:!0,forcedPxRatio:s*o.textureMult}),(_=o.textureCache.viewport={zoom:c.zoom(),pan:c.pan(),width:o.canvasWidth,height:o.canvasHeight}).mpan={x:(0-_.pan.x)/_.zoom,y:(0-_.pan.y)/_.zoom}}u[o.DRAG]=!1,u[o.NODE]=!1;var A=l.contexts[o.NODE],D=o.textureCache.texture;_=o.textureCache.viewport,A.setTransform(1,0,0,1,0,0),h?C(A,0,0,_.width,_.height):A.clearRect(0,0,_.width,_.height);var I=y.core("outside-texture-bg-color").value,L=y.core("outside-texture-bg-opacity").value;o.colorFillStyle(A,I[0],I[1],I[2],L),A.fillRect(0,0,_.width,_.height),v=c.zoom(),S(A,!1),A.clearRect(_.mpan.x,_.mpan.y,_.width/_.zoom/s,_.height/_.zoom/s),A.drawImage(D,_.mpan.x,_.mpan.y,_.width/_.zoom/s,_.height/_.zoom/s)}else o.textureOnViewport&&!e&&(o.textureCache=null);var O=c.extent(),M=o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming||o.hoverData.draggingEles||o.cy.animated(),N=o.hideEdgesOnViewport&&M,B=[];if(B[o.NODE]=!u[o.NODE]&&h&&!o.clearedForMotionBlur[o.NODE]||o.clearingMotionBlur,B[o.NODE]&&(o.clearedForMotionBlur[o.NODE]=!0),B[o.DRAG]=!u[o.DRAG]&&h&&!o.clearedForMotionBlur[o.DRAG]||o.clearingMotionBlur,B[o.DRAG]&&(o.clearedForMotionBlur[o.DRAG]=!0),u[o.NODE]||n||i||B[o.NODE]){var P=h&&!B[o.NODE]&&1!==f;S(A=e||(P?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]:l.contexts[o.NODE]),h&&!P?"motionBlur":void 0),N?o.drawCachedNodes(A,E.nondrag,s,O):o.drawLayeredElements(A,E.nondrag,s,O),o.debug&&o.drawDebugPoints(A,E.nondrag),!n&&!h&&(u[o.NODE]=!1)}if(!i&&(u[o.DRAG]||n||B[o.DRAG])&&(P=h&&!B[o.DRAG]&&1!==f,S(A=e||(P?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]:l.contexts[o.DRAG]),h&&!P?"motionBlur":void 0),N?o.drawCachedNodes(A,E.drag,s,O):o.drawCachedElements(A,E.drag,s,O),o.debug&&o.drawDebugPoints(A,E.drag),!n&&!h&&(u[o.DRAG]=!1)),o.showFps||!i&&u[o.SELECT_BOX]&&!n){if(S(A=e||l.contexts[o.SELECT_BOX]),1==o.selection[4]&&(o.hoverData.selecting||o.touchData.selecting)){v=o.cy.zoom();var F=y.core("selection-box-border-width").value/v;A.lineWidth=F,A.fillStyle="rgba("+y.core("selection-box-color").value[0]+","+y.core("selection-box-color").value[1]+","+y.core("selection-box-color").value[2]+","+y.core("selection-box-opacity").value+")",A.fillRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]),F>0&&(A.strokeStyle="rgba("+y.core("selection-box-border-color").value[0]+","+y.core("selection-box-border-color").value[1]+","+y.core("selection-box-border-color").value[2]+","+y.core("selection-box-opacity").value+")",A.strokeRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]))}if(l.bgActivePosistion&&!o.hoverData.selecting){v=o.cy.zoom();var j=l.bgActivePosistion;A.fillStyle="rgba("+y.core("active-bg-color").value[0]+","+y.core("active-bg-color").value[1]+","+y.core("active-bg-color").value[2]+","+y.core("active-bg-opacity").value+")",A.beginPath(),A.arc(j.x,j.y,y.core("active-bg-size").pfValue/v,0,2*Math.PI),A.fill()}var $=o.lastRedrawTime;if(o.showFps&&$){$=Math.round($);var z=Math.round(1e3/$);A.setTransform(1,0,0,1,0,0),A.fillStyle="rgba(255, 0, 0, 0.75)",A.strokeStyle="rgba(255, 0, 0, 0.75)",A.lineWidth=1,A.fillText("1 frame = "+$+" ms = "+z+" fps",0,20);var H=60;A.strokeRect(0,30,250,20),A.fillRect(0,30,250*Math.min(z/H,1),20)}n||(u[o.SELECT_BOX]=!1)}if(h&&1!==f){var U=l.contexts[o.NODE],V=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_NODE],q=l.contexts[o.DRAG],W=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_DRAG],Y=function(t,e,n){t.setTransform(1,0,0,1,0,0),n||!m?t.clearRect(0,0,o.canvasWidth,o.canvasHeight):C(t,0,0,o.canvasWidth,o.canvasHeight);var i=f;t.drawImage(e,0,0,o.canvasWidth*i,o.canvasHeight*i,0,0,o.canvasWidth,o.canvasHeight)};(u[o.NODE]||B[o.NODE])&&(Y(U,V,B[o.NODE]),u[o.NODE]=!1),(u[o.DRAG]||B[o.DRAG])&&(Y(q,W,B[o.DRAG]),u[o.DRAG]=!1)}o.prevViewport=_,o.clearingMotionBlur&&(o.clearingMotionBlur=!1,o.motionBlurCleared=!0,o.motionBlur=!0),h&&(o.motionBlurTimeout=setTimeout((function(){o.motionBlurTimeout=null,o.clearedForMotionBlur[o.NODE]=!1,o.clearedForMotionBlur[o.DRAG]=!1,o.motionBlur=!1,o.clearingMotionBlur=!d,o.mbFrames=0,u[o.NODE]=!0,u[o.DRAG]=!0,o.redraw()}),Mh)),e||c.emit("render")};for(var Nh={drawPolygonPath:function(t,e,n,i,a,r){var o=i/2,s=a/2;t.beginPath&&t.beginPath(),t.moveTo(e+o*r[0],n+s*r[1]);for(var c=1;c<r.length/2;c++)t.lineTo(e+o*r[2*c],n+s*r[2*c+1]);t.closePath()},drawRoundPolygonPath:function(t,e,n,i,a,r){var o=i/2,s=a/2,c=di(i,a);t.beginPath&&t.beginPath();for(var l=0;l<r.length/4;l++){var u=void 0,d=void 0;u=0===l?r.length-2:4*l-2,d=4*l+2;var h=e+o*r[4*l],f=n+s*r[4*l+1],g=-r[u]*r[d]-r[u+1]*r[d+1],p=c/Math.tan(Math.acos(g)/2),b=h-p*r[u],m=f-p*r[u+1],y=h+p*r[d],v=f+p*r[d+1];0===l?t.moveTo(b,m):t.lineTo(b,m),t.arcTo(h,f,y,v,c)}t.closePath()},drawRoundRectanglePath:function(t,e,n,i,a){var r=i/2,o=a/2,s=ui(i,a);t.beginPath&&t.beginPath(),t.moveTo(e,n-o),t.arcTo(e+r,n-o,e+r,n,s),t.arcTo(e+r,n+o,e,n+o,s),t.arcTo(e-r,n+o,e-r,n,s),t.arcTo(e-r,n-o,e,n-o,s),t.lineTo(e,n-o),t.closePath()},drawBottomRoundRectanglePath:function(t,e,n,i,a){var r=i/2,o=a/2,s=ui(i,a);t.beginPath&&t.beginPath(),t.moveTo(e,n-o),t.lineTo(e+r,n-o),t.lineTo(e+r,n),t.arcTo(e+r,n+o,e,n+o,s),t.arcTo(e-r,n+o,e-r,n,s),t.lineTo(e-r,n-o),t.lineTo(e,n-o),t.closePath()},drawCutRectanglePath:function(t,e,n,i,a){var r=i/2,o=a/2,s=hi();t.beginPath&&t.beginPath(),t.moveTo(e-r+s,n-o),t.lineTo(e+r-s,n-o),t.lineTo(e+r,n-o+s),t.lineTo(e+r,n+o-s),t.lineTo(e+r-s,n+o),t.lineTo(e-r+s,n+o),t.lineTo(e-r,n+o-s),t.lineTo(e-r,n-o+s),t.closePath()},drawBarrelPath:function(t,e,n,i,a){var r=i/2,o=a/2,s=e-r,c=e+r,l=n-o,u=n+o,d=gi(i,a),h=d.widthOffset,f=d.heightOffset,g=d.ctrlPtOffsetPct*h;t.beginPath&&t.beginPath(),t.moveTo(s,l+f),t.lineTo(s,u-f),t.quadraticCurveTo(s+g,u,s+h,u),t.lineTo(c-h,u),t.quadraticCurveTo(c-g,u,c,u-f),t.lineTo(c,l+f),t.quadraticCurveTo(c-g,l,c-h,l),t.lineTo(s+h,l),t.quadraticCurveTo(s+g,l,s,l+f),t.closePath()}},Bh=Math.sin(0),Ph=Math.cos(0),Fh={},jh={},$h=Math.PI/40,zh=0*Math.PI;zh<2*Math.PI;zh+=$h)Fh[zh]=Math.sin(zh),jh[zh]=Math.cos(zh);Nh.drawEllipsePath=function(t,e,n,i,a){if(t.beginPath&&t.beginPath(),t.ellipse)t.ellipse(e,n,i/2,a/2,0,0,2*Math.PI);else for(var r,o,s=i/2,c=a/2,l=0*Math.PI;l<2*Math.PI;l+=$h)r=e-s*Fh[l]*Bh+s*jh[l]*Ph,o=n+c*jh[l]*Bh+c*Fh[l]*Ph,0===l?t.moveTo(r,o):t.lineTo(r,o);t.closePath()};var Hh={};function Uh(t,e){for(var n=atob(t),i=new ArrayBuffer(n.length),a=new Uint8Array(i),r=0;r<n.length;r++)a[r]=n.charCodeAt(r);return new Blob([i],{type:e})}function Vh(t){var e=t.indexOf(",");return t.substr(e+1)}function qh(t,e,n){var i=function(){return e.toDataURL(n,t.quality)};switch(t.output){case"blob-promise":return new $a((function(i,a){try{e.toBlob((function(t){null!=t?i(t):a(new Error("`canvas.toBlob()` sent a null value in its callback"))}),n,t.quality)}catch(r){a(r)}}));case"blob":return Uh(Vh(i()),n);case"base64":return Vh(i());default:return i()}}Hh.createBuffer=function(t,e){var n=document.createElement("canvas");return n.width=t,n.height=e,[n,n.getContext("2d")]},Hh.bufferCanvasImage=function(t){var e=this.cy,n=e.mutableElements().boundingBox(),i=this.findContainerClientCoords(),a=t.full?Math.ceil(n.w):i[2],r=t.full?Math.ceil(n.h):i[3],o=k(t.maxWidth)||k(t.maxHeight),s=this.getPixelRatio(),c=1;if(void 0!==t.scale)a*=t.scale,r*=t.scale,c=t.scale;else if(o){var l=1/0,u=1/0;k(t.maxWidth)&&(l=c*t.maxWidth/a),k(t.maxHeight)&&(u=c*t.maxHeight/r),a*=c=Math.min(l,u),r*=c}o||(a*=s,r*=s,c*=s);var d=document.createElement("canvas");d.width=a,d.height=r,d.style.width=a+"px",d.style.height=r+"px";var h=d.getContext("2d");if(a>0&&r>0){h.clearRect(0,0,a,r),h.globalCompositeOperation="source-over";var f=this.getCachedZSortedEles();if(t.full)h.translate(-n.x1*c,-n.y1*c),h.scale(c,c),this.drawElements(h,f),h.scale(1/c,1/c),h.translate(n.x1*c,n.y1*c);else{var g=e.pan(),p={x:g.x*c,y:g.y*c};c*=e.zoom(),h.translate(p.x,p.y),h.scale(c,c),this.drawElements(h,f),h.scale(1/c,1/c),h.translate(-p.x,-p.y)}t.bg&&(h.globalCompositeOperation="destination-over",h.fillStyle=t.bg,h.rect(0,0,a,r),h.fill())}return d},Hh.png=function(t){return qh(t,this.bufferCanvasImage(t),"image/png")},Hh.jpg=function(t){return qh(t,this.bufferCanvasImage(t),"image/jpeg")};var Wh={nodeShapeImpl:function(t,e,n,i,a,r,o){switch(t){case"ellipse":return this.drawEllipsePath(e,n,i,a,r);case"polygon":return this.drawPolygonPath(e,n,i,a,r,o);case"round-polygon":return this.drawRoundPolygonPath(e,n,i,a,r,o);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(e,n,i,a,r);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(e,n,i,a,r);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(e,n,i,a,r);case"barrel":return this.drawBarrelPath(e,n,i,a,r)}}},Yh=Zh,Gh=Zh.prototype;function Zh(t){var e=this;e.data={canvases:new Array(Gh.CANVAS_LAYERS),contexts:new Array(Gh.CANVAS_LAYERS),canvasNeedsRedraw:new Array(Gh.CANVAS_LAYERS),bufferCanvases:new Array(Gh.BUFFER_COUNT),bufferContexts:new Array(Gh.CANVAS_LAYERS)};var n="-webkit-tap-highlight-color",i="rgba(0,0,0,0)";e.data.canvasContainer=document.createElement("div");var a=e.data.canvasContainer.style;e.data.canvasContainer.style[n]=i,a.position="relative",a.zIndex="0",a.overflow="hidden";var r=t.cy.container();r.appendChild(e.data.canvasContainer),r.style[n]=i;var o={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};P()&&(o["-ms-touch-action"]="none",o["touch-action"]="none");for(var s=0;s<Gh.CANVAS_LAYERS;s++){var c=e.data.canvases[s]=document.createElement("canvas");e.data.contexts[s]=c.getContext("2d"),Object.keys(o).forEach((function(t){c.style[t]=o[t]})),c.style.position="absolute",c.setAttribute("data-id","layer"+s),c.style.zIndex=String(Gh.CANVAS_LAYERS-s),e.data.canvasContainer.appendChild(c),e.data.canvasNeedsRedraw[s]=!1}for(e.data.topCanvas=e.data.canvases[0],e.data.canvases[Gh.NODE].setAttribute("data-id","layer"+Gh.NODE+"-node"),e.data.canvases[Gh.SELECT_BOX].setAttribute("data-id","layer"+Gh.SELECT_BOX+"-selectbox"),e.data.canvases[Gh.DRAG].setAttribute("data-id","layer"+Gh.DRAG+"-drag"),s=0;s<Gh.BUFFER_COUNT;s++)e.data.bufferCanvases[s]=document.createElement("canvas"),e.data.bufferContexts[s]=e.data.bufferCanvases[s].getContext("2d"),e.data.bufferCanvases[s].style.position="absolute",e.data.bufferCanvases[s].setAttribute("data-id","buffer"+s),e.data.bufferCanvases[s].style.zIndex=String(-s-1),e.data.bufferCanvases[s].style.visibility="hidden";e.pathsEnabled=!0;var l=An(),u=function(t){return{x:(t.x1+t.x2)/2,y:(t.y1+t.y2)/2}},d=function(t){return{x:-t.w/2,y:-t.h/2}},h=function(t){var e=t[0]._private;return!(e.oldBackgroundTimestamp===e.backgroundTimestamp)},f=function(t){return t[0]._private.nodeKey},g=function(t){return t[0]._private.labelStyleKey},p=function(t){return t[0]._private.sourceLabelStyleKey},b=function(t){return t[0]._private.targetLabelStyleKey},m=function(t,n,i,a,r){return e.drawElement(t,n,i,!1,!1,r)},y=function(t,n,i,a,r){return e.drawElementText(t,n,i,a,"main",r)},v=function(t,n,i,a,r){return e.drawElementText(t,n,i,a,"source",r)},w=function(t,n,i,a,r){return e.drawElementText(t,n,i,a,"target",r)},x=function(t){return t.boundingBox(),t[0]._private.bodyBounds},R=function(t){return t.boundingBox(),t[0]._private.labelBounds.main||l},_=function(t){return t.boundingBox(),t[0]._private.labelBounds.source||l},k=function(t){return t.boundingBox(),t[0]._private.labelBounds.target||l},E=function(t,e){return e},C=function(t){return u(x(t))},S=function(t,e,n){var i=t?t+"-":"";return{x:e.x+n.pstyle(i+"text-margin-x").pfValue,y:e.y+n.pstyle(i+"text-margin-y").pfValue}},T=function(t,e,n){var i=t[0]._private.rscratch;return{x:i[e],y:i[n]}},A=function(t){return S("",T(t,"labelX","labelY"),t)},D=function(t){return S("source",T(t,"sourceLabelX","sourceLabelY"),t)},I=function(t){return S("target",T(t,"targetLabelX","targetLabelY"),t)},L=function(t){return d(x(t))},O=function(t){return d(_(t))},M=function(t){return d(k(t))},N=function(t){var e=R(t),n=d(R(t));if(t.isNode()){switch(t.pstyle("text-halign").value){case"left":n.x=-e.w;break;case"right":n.x=0}switch(t.pstyle("text-valign").value){case"top":n.y=-e.h;break;case"bottom":n.y=0}}return n},B=e.data.eleTxrCache=new Wd(e,{getKey:f,doesEleInvalidateKey:h,drawElement:m,getBoundingBox:x,getRotationPoint:C,getRotationOffset:L,allowEdgeTxrCaching:!1,allowParentTxrCaching:!1}),F=e.data.lblTxrCache=new Wd(e,{getKey:g,drawElement:y,getBoundingBox:R,getRotationPoint:A,getRotationOffset:N,isVisible:E}),j=e.data.slbTxrCache=new Wd(e,{getKey:p,drawElement:v,getBoundingBox:_,getRotationPoint:D,getRotationOffset:O,isVisible:E}),$=e.data.tlbTxrCache=new Wd(e,{getKey:b,drawElement:w,getBoundingBox:k,getRotationPoint:I,getRotationOffset:M,isVisible:E}),z=e.data.lyrTxrCache=new ch(e);e.onUpdateEleCalcs((function(t,e){B.invalidateElements(e),F.invalidateElements(e),j.invalidateElements(e),$.invalidateElements(e),z.invalidateElements(e);for(var n=0;n<e.length;n++){var i=e[n]._private;i.oldBackgroundTimestamp=i.backgroundTimestamp}}));var H=function(t){for(var e=0;e<t.length;e++)z.enqueueElementRefinement(t[e].ele)};B.onDequeue(H),F.onDequeue(H),j.onDequeue(H),$.onDequeue(H)}Gh.CANVAS_LAYERS=3,Gh.SELECT_BOX=0,Gh.DRAG=1,Gh.NODE=2,Gh.BUFFER_COUNT=3,Gh.TEXTURE_BUFFER=0,Gh.MOTIONBLUR_BUFFER_NODE=1,Gh.MOTIONBLUR_BUFFER_DRAG=2,Gh.redrawHint=function(t,e){var n=this;switch(t){case"eles":n.data.canvasNeedsRedraw[Gh.NODE]=e;break;case"drag":n.data.canvasNeedsRedraw[Gh.DRAG]=e;break;case"select":n.data.canvasNeedsRedraw[Gh.SELECT_BOX]=e}};var Kh=typeof Path2D<"u";Gh.path2dEnabled=function(t){if(void 0===t)return this.pathsEnabled;this.pathsEnabled=!!t},Gh.usePaths=function(){return Kh&&this.pathsEnabled},Gh.setImgSmoothing=function(t,e){null!=t.imageSmoothingEnabled?t.imageSmoothingEnabled=e:(t.webkitImageSmoothingEnabled=e,t.mozImageSmoothingEnabled=e,t.msImageSmoothingEnabled=e)},Gh.getImgSmoothing=function(t){return null!=t.imageSmoothingEnabled?t.imageSmoothingEnabled:t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled},Gh.makeOffscreenCanvas=function(e,n){var i;return"undefined"!==(typeof OffscreenCanvas>"u"?"undefined":t(OffscreenCanvas))?i=new OffscreenCanvas(e,n):((i=document.createElement("canvas")).width=e,i.height=n),i},[fh,vh,Ch,Th,Ah,Ih,Oh,Nh,Hh,Wh].forEach((function(t){J(Gh,t)}));var Xh=[{type:"layout",extensions:Gu},{type:"renderer",extensions:[{name:"null",impl:Zu},{name:"base",impl:xd},{name:"canvas",impl:Yh}]}],Jh={},Qh={};function tf(t,e,n){var i=n,a=function(n){Se("Can not register `"+e+"` for `"+t+"` since `"+n+"` already exists in the prototype and can not be overridden")};if("core"===t){if(su.prototype[e])return a(e);su.prototype[e]=n}else if("collection"===t){if(xl.prototype[e])return a(e);xl.prototype[e]=n}else if("layout"===t){for(var r=function(t){this.options=t,n.call(this,t),R(this._private)||(this._private={}),this._private.cy=t.cy,this._private.listeners=[],this.createEmitter()},o=r.prototype=Object.create(n.prototype),s=[],c=0;c<s.length;c++){var l=s[c];o[l]=o[l]||function(){return this}}o.start&&!o.run?o.run=function(){return this.start(),this}:!o.start&&o.run&&(o.start=function(){return this.run(),this});var u=n.prototype.stop;o.stop=function(){var t=this.options;if(t&&t.animate){var e=this.animations;if(e)for(var n=0;n<e.length;n++)e[n].stop()}return u?u.call(this):this.emit("layoutstop"),this},o.destroy||(o.destroy=function(){return this}),o.cy=function(){return this._private.cy};var d=function(t){return t._private.cy},h={addEventFields:function(t,e){e.layout=t,e.cy=d(t),e.target=t},bubble:function(){return!0},parent:function(t){return d(t)}};J(o,{createEmitter:function(){return this._private.emitter=new Fc(h,this),this},emitter:function(){return this._private.emitter},on:function(t,e){return this.emitter().on(t,e),this},one:function(t,e){return this.emitter().one(t,e),this},once:function(t,e){return this.emitter().one(t,e),this},removeListener:function(t,e){return this.emitter().removeListener(t,e),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},emit:function(t,e){return this.emitter().emit(t,e),this}}),fs.eventAliasesOn(o),i=r}else if("renderer"===t&&"null"!==e&&"base"!==e){var f=ef("renderer","base"),g=f.prototype,p=n,b=n.prototype,m=function(){f.apply(this,arguments),p.apply(this,arguments)},y=m.prototype;for(var v in g){var w=g[v];if(null!=b[v])return a(v);y[v]=w}for(var x in b)y[x]=b[x];g.clientFunctions.forEach((function(t){y[t]=y[t]||function(){Ee("Renderer does not implement `renderer."+t+"()` on its prototype")}})),i=m}else if("__proto__"===t||"constructor"===t||"prototype"===t)return Ee(t+" is an illegal type to be registered, possibly lead to prototype pollutions");return rt({map:Jh,keys:[t,e],value:i})}function ef(t,e){return ot({map:Jh,keys:[t,e]})}function nf(t,e,n,i,a){return rt({map:Qh,keys:[t,e,n,i],value:a})}function af(t,e,n,i){return ot({map:Qh,keys:[t,e,n,i]})}var rf=function(){return 2===arguments.length?ef.apply(null,arguments):3===arguments.length?tf.apply(null,arguments):4===arguments.length?af.apply(null,arguments):5===arguments.length?nf.apply(null,arguments):void Ee("Invalid extension access syntax")};su.prototype.extension=rf,Xh.forEach((function(t){t.extensions.forEach((function(e){tf(t.type,e.name,e.impl)}))}));var of=function t(){if(!(this instanceof t))return new t;this.length=0},sf=of.prototype;sf.instanceString=function(){return"stylesheet"},sf.selector=function(t){return this[this.length++]={selector:t,properties:[]},this},sf.css=function(t,e){var n=this.length-1;if(v(t))this[n].properties.push({name:t,value:e});else if(R(t))for(var i=t,a=Object.keys(i),r=0;r<a.length;r++){var o=a[r],s=i[o];if(null!=s){var c=eu.properties[o]||eu.properties[$(o)];if(null!=c){var l=c.name,u=s;this[n].properties.push({name:l,value:u})}}}return this},sf.style=sf.css,sf.generateStyle=function(t){var e=new eu(t);return this.appendToStyle(e)},sf.appendToStyle=function(t){for(var e=0;e<this.length;e++){var n=this[e],i=n.selector,a=n.properties;t.selector(i);for(var r=0;r<a.length;r++){var o=a[r];t.css(o.name,o.value)}}return t};var cf="3.23.0",lf=function(t){return void 0===t&&(t={}),R(t)?new su(t):v(t)?rf.apply(rf,arguments):void 0};return lf.use=function(t){var e=Array.prototype.slice.call(arguments,1);return e.unshift(lf),t.apply(null,e),this},lf.warnings=function(t){return Ce(t)},lf.version=cf,lf.stylesheet=lf.Stylesheet=of,lf}))}({get exports(){return pq},set exports(t){pq=t}});const bq=pq;var mq,yq,vq={},wq={},xq={get exports(){return wq},set exports(t){wq=t}},Rq={},_q={get exports(){return Rq},set exports(t){Rq=t}};function kq(){return mq||(mq=1,function(t,e){var n;n=function(){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var a=e[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=t,n.c=e,n.i=function(t){return t},n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:i})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=26)}([function(t,e,n){function i(){}i.QUALITY=1,i.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,i.DEFAULT_INCREMENTAL=!1,i.DEFAULT_ANIMATION_ON_LAYOUT=!0,i.DEFAULT_ANIMATION_DURING_LAYOUT=!1,i.DEFAULT_ANIMATION_PERIOD=50,i.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,i.DEFAULT_GRAPH_MARGIN=15,i.NODE_DIMENSIONS_INCLUDE_LABELS=!1,i.SIMPLE_NODE_SIZE=40,i.SIMPLE_NODE_HALF_SIZE=i.SIMPLE_NODE_SIZE/2,i.EMPTY_COMPOUND_NODE_SIZE=40,i.MIN_EDGE_LENGTH=1,i.WORLD_BOUNDARY=1e6,i.INITIAL_WORLD_BOUNDARY=i.WORLD_BOUNDARY/1e3,i.WORLD_CENTER_X=1200,i.WORLD_CENTER_Y=900,t.exports=i},function(t,e,n){var i=n(2),a=n(8),r=n(9);function o(t,e,n){i.call(this,n),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=n,this.bendpoints=[],this.source=t,this.target=e}for(var s in o.prototype=Object.create(i.prototype),i)o[s]=i[s];o.prototype.getSource=function(){return this.source},o.prototype.getTarget=function(){return this.target},o.prototype.isInterGraph=function(){return this.isInterGraph},o.prototype.getLength=function(){return this.length},o.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},o.prototype.getBendpoints=function(){return this.bendpoints},o.prototype.getLca=function(){return this.lca},o.prototype.getSourceInLca=function(){return this.sourceInLca},o.prototype.getTargetInLca=function(){return this.targetInLca},o.prototype.getOtherEnd=function(t){if(this.source===t)return this.target;if(this.target===t)return this.source;throw"Node is not incident with this edge"},o.prototype.getOtherEndInGraph=function(t,e){for(var n=this.getOtherEnd(t),i=e.getGraphManager().getRoot();;){if(n.getOwner()==e)return n;if(n.getOwner()==i)break;n=n.getOwner().getParent()}return null},o.prototype.updateLength=function(){var t=new Array(4);this.isOverlapingSourceAndTarget=a.getIntersection(this.target.getRect(),this.source.getRect(),t),this.isOverlapingSourceAndTarget||(this.lengthX=t[0]-t[2],this.lengthY=t[1]-t[3],Math.abs(this.lengthX)<1&&(this.lengthX=r.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=r.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},o.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=r.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=r.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=o},function(t,e,n){function i(t){this.vGraphObject=t}t.exports=i},function(t,e,n){var i=n(2),a=n(10),r=n(13),o=n(0),s=n(16),c=n(4);function l(t,e,n,o){null==n&&null==o&&(o=e),i.call(this,o),null!=t.graphManager&&(t=t.graphManager),this.estimatedSize=a.MIN_VALUE,this.inclusionTreeDepth=a.MAX_VALUE,this.vGraphObject=o,this.edges=[],this.graphManager=t,this.rect=null!=n&&null!=e?new r(e.x,e.y,n.width,n.height):new r}for(var u in l.prototype=Object.create(i.prototype),i)l[u]=i[u];l.prototype.getEdges=function(){return this.edges},l.prototype.getChild=function(){return this.child},l.prototype.getOwner=function(){return this.owner},l.prototype.getWidth=function(){return this.rect.width},l.prototype.setWidth=function(t){this.rect.width=t},l.prototype.getHeight=function(){return this.rect.height},l.prototype.setHeight=function(t){this.rect.height=t},l.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},l.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},l.prototype.getCenter=function(){return new c(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},l.prototype.getLocation=function(){return new c(this.rect.x,this.rect.y)},l.prototype.getRect=function(){return this.rect},l.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},l.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},l.prototype.setRect=function(t,e){this.rect.x=t.x,this.rect.y=t.y,this.rect.width=e.width,this.rect.height=e.height},l.prototype.setCenter=function(t,e){this.rect.x=t-this.rect.width/2,this.rect.y=e-this.rect.height/2},l.prototype.setLocation=function(t,e){this.rect.x=t,this.rect.y=e},l.prototype.moveBy=function(t,e){this.rect.x+=t,this.rect.y+=e},l.prototype.getEdgeListToNode=function(t){var e=[],n=this;return n.edges.forEach((function(i){if(i.target==t){if(i.source!=n)throw"Incorrect edge source!";e.push(i)}})),e},l.prototype.getEdgesBetween=function(t){var e=[],n=this;return n.edges.forEach((function(i){if(i.source!=n&&i.target!=n)throw"Incorrect edge source and/or target";(i.target==t||i.source==t)&&e.push(i)})),e},l.prototype.getNeighborsList=function(){var t=new Set,e=this;return e.edges.forEach((function(n){if(n.source==e)t.add(n.target);else{if(n.target!=e)throw"Incorrect incidency!";t.add(n.source)}})),t},l.prototype.withChildren=function(){var t=new Set;if(t.add(this),null!=this.child)for(var e=this.child.getNodes(),n=0;n<e.length;n++)e[n].withChildren().forEach((function(e){t.add(e)}));return t},l.prototype.getNoOfChildren=function(){var t=0;if(null==this.child)t=1;else for(var e=this.child.getNodes(),n=0;n<e.length;n++)t+=e[n].getNoOfChildren();return 0==t&&(t=1),t},l.prototype.getEstimatedSize=function(){if(this.estimatedSize==a.MIN_VALUE)throw"assert failed";return this.estimatedSize},l.prototype.calcEstimatedSize=function(){return null==this.child?this.estimatedSize=(this.rect.width+this.rect.height)/2:(this.estimatedSize=this.child.calcEstimatedSize(),this.rect.width=this.estimatedSize,this.rect.height=this.estimatedSize,this.estimatedSize)},l.prototype.scatter=function(){var t,e,n=-o.INITIAL_WORLD_BOUNDARY,i=o.INITIAL_WORLD_BOUNDARY;t=o.WORLD_CENTER_X+s.nextDouble()*(i-n)+n;var a=-o.INITIAL_WORLD_BOUNDARY,r=o.INITIAL_WORLD_BOUNDARY;e=o.WORLD_CENTER_Y+s.nextDouble()*(r-a)+a,this.rect.x=t,this.rect.y=e},l.prototype.updateBounds=function(){if(null==this.getChild())throw"assert failed";if(0!=this.getChild().getNodes().length){var t=this.getChild();if(t.updateBounds(!0),this.rect.x=t.getLeft(),this.rect.y=t.getTop(),this.setWidth(t.getRight()-t.getLeft()),this.setHeight(t.getBottom()-t.getTop()),o.NODE_DIMENSIONS_INCLUDE_LABELS){var e=t.getRight()-t.getLeft(),n=t.getBottom()-t.getTop();this.labelWidth>e&&(this.rect.x-=(this.labelWidth-e)/2,this.setWidth(this.labelWidth)),this.labelHeight>n&&("center"==this.labelPos?this.rect.y-=(this.labelHeight-n)/2:"top"==this.labelPos&&(this.rect.y-=this.labelHeight-n),this.setHeight(this.labelHeight))}}},l.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==a.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},l.prototype.transform=function(t){var e=this.rect.x;e>o.WORLD_BOUNDARY?e=o.WORLD_BOUNDARY:e<-o.WORLD_BOUNDARY&&(e=-o.WORLD_BOUNDARY);var n=this.rect.y;n>o.WORLD_BOUNDARY?n=o.WORLD_BOUNDARY:n<-o.WORLD_BOUNDARY&&(n=-o.WORLD_BOUNDARY);var i=new c(e,n),a=t.inverseTransformPoint(i);this.setLocation(a.x,a.y)},l.prototype.getLeft=function(){return this.rect.x},l.prototype.getRight=function(){return this.rect.x+this.rect.width},l.prototype.getTop=function(){return this.rect.y},l.prototype.getBottom=function(){return this.rect.y+this.rect.height},l.prototype.getParent=function(){return null==this.owner?null:this.owner.getParent()},t.exports=l},function(t,e,n){function i(t,e){null==t&&null==e?(this.x=0,this.y=0):(this.x=t,this.y=e)}i.prototype.getX=function(){return this.x},i.prototype.getY=function(){return this.y},i.prototype.setX=function(t){this.x=t},i.prototype.setY=function(t){this.y=t},i.prototype.getDifference=function(t){return new DimensionD(this.x-t.x,this.y-t.y)},i.prototype.getCopy=function(){return new i(this.x,this.y)},i.prototype.translate=function(t){return this.x+=t.width,this.y+=t.height,this},t.exports=i},function(t,e,n){var i=n(2),a=n(10),r=n(0),o=n(6),s=n(3),c=n(1),l=n(13),u=n(12),d=n(11);function h(t,e,n){i.call(this,n),this.estimatedSize=a.MIN_VALUE,this.margin=r.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=t,null!=e&&e instanceof o?this.graphManager=e:null!=e&&e instanceof Layout&&(this.graphManager=e.graphManager)}for(var f in h.prototype=Object.create(i.prototype),i)h[f]=i[f];h.prototype.getNodes=function(){return this.nodes},h.prototype.getEdges=function(){return this.edges},h.prototype.getGraphManager=function(){return this.graphManager},h.prototype.getParent=function(){return this.parent},h.prototype.getLeft=function(){return this.left},h.prototype.getRight=function(){return this.right},h.prototype.getTop=function(){return this.top},h.prototype.getBottom=function(){return this.bottom},h.prototype.isConnected=function(){return this.isConnected},h.prototype.add=function(t,e,n){if(null==e&&null==n){var i=t;if(null==this.graphManager)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(i)>-1)throw"Node already in graph!";return i.owner=this,this.getNodes().push(i),i}var a=t;if(!(this.getNodes().indexOf(e)>-1&&this.getNodes().indexOf(n)>-1))throw"Source or target not in graph!";if(e.owner!=n.owner||e.owner!=this)throw"Both owners must be this graph!";return e.owner!=n.owner?null:(a.source=e,a.target=n,a.isInterGraph=!1,this.getEdges().push(a),e.edges.push(a),n!=e&&n.edges.push(a),a)},h.prototype.remove=function(t){var e=t;if(t instanceof s){if(null==e)throw"Node is null!";if(null==e.owner||e.owner!=this)throw"Owner graph is invalid!";if(null==this.graphManager)throw"Owner graph manager is invalid!";for(var n=e.edges.slice(),i=n.length,a=0;a<i;a++)(r=n[a]).isInterGraph?this.graphManager.remove(r):r.source.owner.remove(r);if(-1==(o=this.nodes.indexOf(e)))throw"Node not in owner node list!";this.nodes.splice(o,1)}else if(t instanceof c){var r;if(null==(r=t))throw"Edge is null!";if(null==r.source||null==r.target)throw"Source and/or target is null!";if(null==r.source.owner||null==r.target.owner||r.source.owner!=this||r.target.owner!=this)throw"Source and/or target owner is invalid!";var o,l=r.source.edges.indexOf(r),u=r.target.edges.indexOf(r);if(!(l>-1&&u>-1))throw"Source and/or target doesn't know this edge!";if(r.source.edges.splice(l,1),r.target!=r.source&&r.target.edges.splice(u,1),-1==(o=r.source.owner.getEdges().indexOf(r)))throw"Not in owner's edge list!";r.source.owner.getEdges().splice(o,1)}},h.prototype.updateLeftTop=function(){for(var t,e,n,i=a.MAX_VALUE,r=a.MAX_VALUE,o=this.getNodes(),s=o.length,c=0;c<s;c++){var l=o[c];i>(t=l.getTop())&&(i=t),r>(e=l.getLeft())&&(r=e)}return i==a.MAX_VALUE?null:(n=null!=o[0].getParent().paddingLeft?o[0].getParent().paddingLeft:this.margin,this.left=r-n,this.top=i-n,new u(this.left,this.top))},h.prototype.updateBounds=function(t){for(var e,n,i,r,o,s=a.MAX_VALUE,c=-a.MAX_VALUE,u=a.MAX_VALUE,d=-a.MAX_VALUE,h=this.nodes,f=h.length,g=0;g<f;g++){var p=h[g];t&&null!=p.child&&p.updateBounds(),s>(e=p.getLeft())&&(s=e),c<(n=p.getRight())&&(c=n),u>(i=p.getTop())&&(u=i),d<(r=p.getBottom())&&(d=r)}var b=new l(s,u,c-s,d-u);s==a.MAX_VALUE&&(this.left=this.parent.getLeft(),this.right=this.parent.getRight(),this.top=this.parent.getTop(),this.bottom=this.parent.getBottom()),o=null!=h[0].getParent().paddingLeft?h[0].getParent().paddingLeft:this.margin,this.left=b.x-o,this.right=b.x+b.width+o,this.top=b.y-o,this.bottom=b.y+b.height+o},h.calculateBounds=function(t){for(var e,n,i,r,o=a.MAX_VALUE,s=-a.MAX_VALUE,c=a.MAX_VALUE,u=-a.MAX_VALUE,d=t.length,h=0;h<d;h++){var f=t[h];o>(e=f.getLeft())&&(o=e),s<(n=f.getRight())&&(s=n),c>(i=f.getTop())&&(c=i),u<(r=f.getBottom())&&(u=r)}return new l(o,c,s-o,u-c)},h.prototype.getInclusionTreeDepth=function(){return this==this.graphManager.getRoot()?1:this.parent.getInclusionTreeDepth()},h.prototype.getEstimatedSize=function(){if(this.estimatedSize==a.MIN_VALUE)throw"assert failed";return this.estimatedSize},h.prototype.calcEstimatedSize=function(){for(var t=0,e=this.nodes,n=e.length,i=0;i<n;i++)t+=e[i].calcEstimatedSize();return this.estimatedSize=0==t?r.EMPTY_COMPOUND_NODE_SIZE:t/Math.sqrt(this.nodes.length),this.estimatedSize},h.prototype.updateConnected=function(){var t=this;if(0!=this.nodes.length){var e,n,i=new d,a=new Set,r=this.nodes[0];for(r.withChildren().forEach((function(t){i.push(t),a.add(t)}));0!==i.length;)for(var o=(e=(r=i.shift()).getEdges()).length,s=0;s<o;s++)null==(n=e[s].getOtherEndInGraph(r,this))||a.has(n)||n.withChildren().forEach((function(t){i.push(t),a.add(t)}));if(this.isConnected=!1,a.size>=this.nodes.length){var c=0;a.forEach((function(e){e.owner==t&&c++})),c==this.nodes.length&&(this.isConnected=!0)}}else this.isConnected=!0},t.exports=h},function(t,e,n){var i,a=n(1);function r(t){i=n(5),this.layout=t,this.graphs=[],this.edges=[]}r.prototype.addRoot=function(){var t=this.layout.newGraph(),e=this.layout.newNode(null),n=this.add(t,e);return this.setRootGraph(n),this.rootGraph},r.prototype.add=function(t,e,n,i,a){if(null==n&&null==i&&null==a){if(null==t)throw"Graph is null!";if(null==e)throw"Parent node is null!";if(this.graphs.indexOf(t)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(t),null!=t.parent)throw"Already has a parent!";if(null!=e.child)throw"Already has a child!";return t.parent=e,e.child=t,t}a=n,n=t;var r=(i=e).getOwner(),o=a.getOwner();if(null==r||r.getGraphManager()!=this)throw"Source not in this graph mgr!";if(null==o||o.getGraphManager()!=this)throw"Target not in this graph mgr!";if(r==o)return n.isInterGraph=!1,r.add(n,i,a);if(n.isInterGraph=!0,n.source=i,n.target=a,this.edges.indexOf(n)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(n),null==n.source||null==n.target)throw"Edge source and/or target is null!";if(-1!=n.source.edges.indexOf(n)||-1!=n.target.edges.indexOf(n))throw"Edge already in source and/or target incidency list!";return n.source.edges.push(n),n.target.edges.push(n),n},r.prototype.remove=function(t){if(t instanceof i){var e=t;if(e.getGraphManager()!=this)throw"Graph not in this graph mgr";if(e!=this.rootGraph&&(null==e.parent||e.parent.graphManager!=this))throw"Invalid parent node!";for(var n,r=[],o=(r=r.concat(e.getEdges())).length,s=0;s<o;s++)n=r[s],e.remove(n);var c,l=[];for(o=(l=l.concat(e.getNodes())).length,s=0;s<o;s++)c=l[s],e.remove(c);e==this.rootGraph&&this.setRootGraph(null);var u=this.graphs.indexOf(e);this.graphs.splice(u,1),e.parent=null}else if(t instanceof a){if(null==(n=t))throw"Edge is null!";if(!n.isInterGraph)throw"Not an inter-graph edge!";if(null==n.source||null==n.target)throw"Source and/or target is null!";if(-1==n.source.edges.indexOf(n)||-1==n.target.edges.indexOf(n))throw"Source and/or target doesn't know this edge!";if(u=n.source.edges.indexOf(n),n.source.edges.splice(u,1),u=n.target.edges.indexOf(n),n.target.edges.splice(u,1),null==n.source.owner||null==n.source.owner.getGraphManager())throw"Edge owner graph or owner graph manager is null!";if(-1==n.source.owner.getGraphManager().edges.indexOf(n))throw"Not in owner graph manager's edge list!";u=n.source.owner.getGraphManager().edges.indexOf(n),n.source.owner.getGraphManager().edges.splice(u,1)}},r.prototype.updateBounds=function(){this.rootGraph.updateBounds(!0)},r.prototype.getGraphs=function(){return this.graphs},r.prototype.getAllNodes=function(){if(null==this.allNodes){for(var t=[],e=this.getGraphs(),n=e.length,i=0;i<n;i++)t=t.concat(e[i].getNodes());this.allNodes=t}return this.allNodes},r.prototype.resetAllNodes=function(){this.allNodes=null},r.prototype.resetAllEdges=function(){this.allEdges=null},r.prototype.resetAllNodesToApplyGravitation=function(){this.allNodesToApplyGravitation=null},r.prototype.getAllEdges=function(){if(null==this.allEdges){var t=[],e=this.getGraphs();e.length;for(var n=0;n<e.length;n++)t=t.concat(e[n].getEdges());t=t.concat(this.edges),this.allEdges=t}return this.allEdges},r.prototype.getAllNodesToApplyGravitation=function(){return this.allNodesToApplyGravitation},r.prototype.setAllNodesToApplyGravitation=function(t){if(null!=this.allNodesToApplyGravitation)throw"assert failed";this.allNodesToApplyGravitation=t},r.prototype.getRoot=function(){return this.rootGraph},r.prototype.setRootGraph=function(t){if(t.getGraphManager()!=this)throw"Root not in this graph mgr!";this.rootGraph=t,null==t.parent&&(t.parent=this.layout.newNode("Root node"))},r.prototype.getLayout=function(){return this.layout},r.prototype.isOneAncestorOfOther=function(t,e){if(null==t||null==e)throw"assert failed";if(t==e)return!0;for(var n,i=t.getOwner();null!=(n=i.getParent());){if(n==e)return!0;if(null==(i=n.getOwner()))break}for(i=e.getOwner();null!=(n=i.getParent());){if(n==t)return!0;if(null==(i=n.getOwner()))break}return!1},r.prototype.calcLowestCommonAncestors=function(){for(var t,e,n,i,a,r=this.getAllEdges(),o=r.length,s=0;s<o;s++)if(e=(t=r[s]).source,n=t.target,t.lca=null,t.sourceInLca=e,t.targetInLca=n,e!=n){for(i=e.getOwner();null==t.lca;){for(t.targetInLca=n,a=n.getOwner();null==t.lca;){if(a==i){t.lca=a;break}if(a==this.rootGraph)break;if(null!=t.lca)throw"assert failed";t.targetInLca=a.getParent(),a=t.targetInLca.getOwner()}if(i==this.rootGraph)break;null==t.lca&&(t.sourceInLca=i.getParent(),i=t.sourceInLca.getOwner())}if(null==t.lca)throw"assert failed"}else t.lca=e.getOwner()},r.prototype.calcLowestCommonAncestor=function(t,e){if(t==e)return t.getOwner();for(var n=t.getOwner();null!=n;){for(var i=e.getOwner();null!=i;){if(i==n)return i;i=i.getParent().getOwner()}n=n.getParent().getOwner()}return n},r.prototype.calcInclusionTreeDepths=function(t,e){null==t&&null==e&&(t=this.rootGraph,e=1);for(var n,i=t.getNodes(),a=i.length,r=0;r<a;r++)(n=i[r]).inclusionTreeDepth=e,null!=n.child&&this.calcInclusionTreeDepths(n.child,e+1)},r.prototype.includesInvalidEdge=function(){for(var t,e=this.edges.length,n=0;n<e;n++)if(t=this.edges[n],this.isOneAncestorOfOther(t.source,t.target))return!0;return!1},t.exports=r},function(t,e,n){var i=n(0);function a(){}for(var r in i)a[r]=i[r];a.MAX_ITERATIONS=2500,a.DEFAULT_EDGE_LENGTH=50,a.DEFAULT_SPRING_STRENGTH=.45,a.DEFAULT_REPULSION_STRENGTH=4500,a.DEFAULT_GRAVITY_STRENGTH=.4,a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,a.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,a.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,a.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,a.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,a.COOLING_ADAPTATION_FACTOR=.33,a.ADAPTATION_LOWER_NODE_LIMIT=1e3,a.ADAPTATION_UPPER_NODE_LIMIT=5e3,a.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,a.MAX_NODE_DISPLACEMENT=3*a.MAX_NODE_DISPLACEMENT_INCREMENTAL,a.MIN_REPULSION_DIST=a.DEFAULT_EDGE_LENGTH/10,a.CONVERGENCE_CHECK_PERIOD=100,a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,a.MIN_EDGE_LENGTH=1,a.GRID_CALCULATION_CHECK_PERIOD=10,t.exports=a},function(t,e,n){var i=n(12);function a(){}a.calcSeparationAmount=function(t,e,n,i){if(!t.intersects(e))throw"assert failed";var a=new Array(2);this.decideDirectionsForOverlappingNodes(t,e,a),n[0]=Math.min(t.getRight(),e.getRight())-Math.max(t.x,e.x),n[1]=Math.min(t.getBottom(),e.getBottom())-Math.max(t.y,e.y),t.getX()<=e.getX()&&t.getRight()>=e.getRight()?n[0]+=Math.min(e.getX()-t.getX(),t.getRight()-e.getRight()):e.getX()<=t.getX()&&e.getRight()>=t.getRight()&&(n[0]+=Math.min(t.getX()-e.getX(),e.getRight()-t.getRight())),t.getY()<=e.getY()&&t.getBottom()>=e.getBottom()?n[1]+=Math.min(e.getY()-t.getY(),t.getBottom()-e.getBottom()):e.getY()<=t.getY()&&e.getBottom()>=t.getBottom()&&(n[1]+=Math.min(t.getY()-e.getY(),e.getBottom()-t.getBottom()));var r=Math.abs((e.getCenterY()-t.getCenterY())/(e.getCenterX()-t.getCenterX()));e.getCenterY()===t.getCenterY()&&e.getCenterX()===t.getCenterX()&&(r=1);var o=r*n[0],s=n[1]/r;n[0]<s?s=n[0]:o=n[1],n[0]=-1*a[0]*(s/2+i),n[1]=-1*a[1]*(o/2+i)},a.decideDirectionsForOverlappingNodes=function(t,e,n){t.getCenterX()<e.getCenterX()?n[0]=-1:n[0]=1,t.getCenterY()<e.getCenterY()?n[1]=-1:n[1]=1},a.getIntersection2=function(t,e,n){var i=t.getCenterX(),a=t.getCenterY(),r=e.getCenterX(),o=e.getCenterY();if(t.intersects(e))return n[0]=i,n[1]=a,n[2]=r,n[3]=o,!0;var s=t.getX(),c=t.getY(),l=t.getRight(),u=t.getX(),d=t.getBottom(),h=t.getRight(),f=t.getWidthHalf(),g=t.getHeightHalf(),p=e.getX(),b=e.getY(),m=e.getRight(),y=e.getX(),v=e.getBottom(),w=e.getRight(),x=e.getWidthHalf(),R=e.getHeightHalf(),_=!1,k=!1;if(i===r){if(a>o)return n[0]=i,n[1]=c,n[2]=r,n[3]=v,!1;if(a<o)return n[0]=i,n[1]=d,n[2]=r,n[3]=b,!1}else if(a===o){if(i>r)return n[0]=s,n[1]=a,n[2]=m,n[3]=o,!1;if(i<r)return n[0]=l,n[1]=a,n[2]=p,n[3]=o,!1}else{var E=t.height/t.width,C=e.height/e.width,S=(o-a)/(r-i),T=void 0,A=void 0,D=void 0,I=void 0,L=void 0,O=void 0;if(-E===S?i>r?(n[0]=u,n[1]=d,_=!0):(n[0]=l,n[1]=c,_=!0):E===S&&(i>r?(n[0]=s,n[1]=c,_=!0):(n[0]=h,n[1]=d,_=!0)),-C===S?r>i?(n[2]=y,n[3]=v,k=!0):(n[2]=m,n[3]=b,k=!0):C===S&&(r>i?(n[2]=p,n[3]=b,k=!0):(n[2]=w,n[3]=v,k=!0)),_&&k)return!1;if(i>r?a>o?(T=this.getCardinalDirection(E,S,4),A=this.getCardinalDirection(C,S,2)):(T=this.getCardinalDirection(-E,S,3),A=this.getCardinalDirection(-C,S,1)):a>o?(T=this.getCardinalDirection(-E,S,1),A=this.getCardinalDirection(-C,S,3)):(T=this.getCardinalDirection(E,S,2),A=this.getCardinalDirection(C,S,4)),!_)switch(T){case 1:I=c,D=i+-g/S,n[0]=D,n[1]=I;break;case 2:D=h,I=a+f*S,n[0]=D,n[1]=I;break;case 3:I=d,D=i+g/S,n[0]=D,n[1]=I;break;case 4:D=u,I=a+-f*S,n[0]=D,n[1]=I}if(!k)switch(A){case 1:O=b,L=r+-R/S,n[2]=L,n[3]=O;break;case 2:L=w,O=o+x*S,n[2]=L,n[3]=O;break;case 3:O=v,L=r+R/S,n[2]=L,n[3]=O;break;case 4:L=y,O=o+-x*S,n[2]=L,n[3]=O}}return!1},a.getCardinalDirection=function(t,e,n){return t>e?n:1+n%4},a.getIntersection=function(t,e,n,a){if(null==a)return this.getIntersection2(t,e,n);var r=t.x,o=t.y,s=e.x,c=e.y,l=n.x,u=n.y,d=a.x,h=a.y,f=void 0,g=void 0,p=void 0,b=void 0,m=void 0,y=void 0,v=void 0;return m=s*o-r*c,y=d*u-l*h,0==(v=(f=c-o)*(b=l-d)-(g=h-u)*(p=r-s))?null:new i((p*y-b*m)/v,(g*m-f*y)/v)},a.angleOfVector=function(t,e,n,i){var a=void 0;return t!==n?(a=Math.atan((i-e)/(n-t)),n<t?a+=Math.PI:i<e&&(a+=this.TWO_PI)):a=i<e?this.ONE_AND_HALF_PI:this.HALF_PI,a},a.doIntersect=function(t,e,n,i){var a=t.x,r=t.y,o=e.x,s=e.y,c=n.x,l=n.y,u=i.x,d=i.y,h=(o-a)*(d-l)-(u-c)*(s-r);if(0===h)return!1;var f=((d-l)*(u-a)+(c-u)*(d-r))/h,g=((r-s)*(u-a)+(o-a)*(d-r))/h;return 0<f&&f<1&&0<g&&g<1},a.HALF_PI=.5*Math.PI,a.ONE_AND_HALF_PI=1.5*Math.PI,a.TWO_PI=2*Math.PI,a.THREE_PI=3*Math.PI,t.exports=a},function(t,e,n){function i(){}i.sign=function(t){return t>0?1:t<0?-1:0},i.floor=function(t){return t<0?Math.ceil(t):Math.floor(t)},i.ceil=function(t){return t<0?Math.floor(t):Math.ceil(t)},t.exports=i},function(t,e,n){function i(){}i.MAX_VALUE=2147483647,i.MIN_VALUE=-2147483648,t.exports=i},function(t,e,n){var i=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}();function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(t){return{value:t,next:null,prev:null}},o=function(t,e,n,i){return null!==t?t.next=e:i.head=e,null!==n?n.prev=e:i.tail=e,e.prev=t,e.next=n,i.length++,e},s=function(t,e){var n=t.prev,i=t.next;return null!==n?n.next=i:e.head=i,null!==i?i.prev=n:e.tail=n,t.prev=t.next=null,e.length--,t},c=function(){function t(e){var n=this;a(this,t),this.length=0,this.head=null,this.tail=null,null!=e&&e.forEach((function(t){return n.push(t)}))}return i(t,[{key:"size",value:function(){return this.length}},{key:"insertBefore",value:function(t,e){return o(e.prev,r(t),e,this)}},{key:"insertAfter",value:function(t,e){return o(e,r(t),e.next,this)}},{key:"insertNodeBefore",value:function(t,e){return o(e.prev,t,e,this)}},{key:"insertNodeAfter",value:function(t,e){return o(e,t,e.next,this)}},{key:"push",value:function(t){return o(this.tail,r(t),null,this)}},{key:"unshift",value:function(t){return o(null,r(t),this.head,this)}},{key:"remove",value:function(t){return s(t,this)}},{key:"pop",value:function(){return s(this.tail,this).value}},{key:"popNode",value:function(){return s(this.tail,this)}},{key:"shift",value:function(){return s(this.head,this).value}},{key:"shiftNode",value:function(){return s(this.head,this)}},{key:"get_object_at",value:function(t){if(t<=this.length()){for(var e=1,n=this.head;e<t;)n=n.next,e++;return n.value}}},{key:"set_object_at",value:function(t,e){if(t<=this.length()){for(var n=1,i=this.head;n<t;)i=i.next,n++;i.value=e}}}]),t}();t.exports=c},function(t,e,n){function i(t,e,n){this.x=null,this.y=null,null==t&&null==e&&null==n?(this.x=0,this.y=0):"number"==typeof t&&"number"==typeof e&&null==n?(this.x=t,this.y=e):"Point"==t.constructor.name&&null==e&&null==n&&(n=t,this.x=n.x,this.y=n.y)}i.prototype.getX=function(){return this.x},i.prototype.getY=function(){return this.y},i.prototype.getLocation=function(){return new i(this.x,this.y)},i.prototype.setLocation=function(t,e,n){"Point"==t.constructor.name&&null==e&&null==n?(n=t,this.setLocation(n.x,n.y)):"number"==typeof t&&"number"==typeof e&&null==n&&(parseInt(t)==t&&parseInt(e)==e?this.move(t,e):(this.x=Math.floor(t+.5),this.y=Math.floor(e+.5)))},i.prototype.move=function(t,e){this.x=t,this.y=e},i.prototype.translate=function(t,e){this.x+=t,this.y+=e},i.prototype.equals=function(t){if("Point"==t.constructor.name){var e=t;return this.x==e.x&&this.y==e.y}return this==t},i.prototype.toString=function(){return(new i).constructor.name+"[x="+this.x+",y="+this.y+"]"},t.exports=i},function(t,e,n){function i(t,e,n,i){this.x=0,this.y=0,this.width=0,this.height=0,null!=t&&null!=e&&null!=n&&null!=i&&(this.x=t,this.y=e,this.width=n,this.height=i)}i.prototype.getX=function(){return this.x},i.prototype.setX=function(t){this.x=t},i.prototype.getY=function(){return this.y},i.prototype.setY=function(t){this.y=t},i.prototype.getWidth=function(){return this.width},i.prototype.setWidth=function(t){this.width=t},i.prototype.getHeight=function(){return this.height},i.prototype.setHeight=function(t){this.height=t},i.prototype.getRight=function(){return this.x+this.width},i.prototype.getBottom=function(){return this.y+this.height},i.prototype.intersects=function(t){return!(this.getRight()<t.x||this.getBottom()<t.y||t.getRight()<this.x||t.getBottom()<this.y)},i.prototype.getCenterX=function(){return this.x+this.width/2},i.prototype.getMinX=function(){return this.getX()},i.prototype.getMaxX=function(){return this.getX()+this.width},i.prototype.getCenterY=function(){return this.y+this.height/2},i.prototype.getMinY=function(){return this.getY()},i.prototype.getMaxY=function(){return this.getY()+this.height},i.prototype.getWidthHalf=function(){return this.width/2},i.prototype.getHeightHalf=function(){return this.height/2},t.exports=i},function(t,e,n){var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};function a(){}a.lastID=0,a.createID=function(t){return a.isPrimitive(t)?t:(null!=t.uniqueID||(t.uniqueID=a.getString(),a.lastID++),t.uniqueID)},a.getString=function(t){return null==t&&(t=a.lastID),"Object#"+t},a.isPrimitive=function(t){var e=typeof t>"u"?"undefined":i(t);return null==t||"object"!=e&&"function"!=e},t.exports=a},function(t,e,n){function i(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}var a=n(0),r=n(6),o=n(3),s=n(1),c=n(5),l=n(4),u=n(17),d=n(27);function h(t){d.call(this),this.layoutQuality=a.QUALITY,this.createBendsAsNeeded=a.DEFAULT_CREATE_BENDS_AS_NEEDED,this.incremental=a.DEFAULT_INCREMENTAL,this.animationOnLayout=a.DEFAULT_ANIMATION_ON_LAYOUT,this.animationDuringLayout=a.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=a.DEFAULT_ANIMATION_PERIOD,this.uniformLeafNodeSizes=a.DEFAULT_UNIFORM_LEAF_NODE_SIZES,this.edgeToDummyNodes=new Map,this.graphManager=new r(this),this.isLayoutFinished=!1,this.isSubLayout=!1,this.isRemoteUse=!1,null!=t&&(this.isRemoteUse=t)}h.RANDOM_SEED=1,h.prototype=Object.create(d.prototype),h.prototype.getGraphManager=function(){return this.graphManager},h.prototype.getAllNodes=function(){return this.graphManager.getAllNodes()},h.prototype.getAllEdges=function(){return this.graphManager.getAllEdges()},h.prototype.getAllNodesToApplyGravitation=function(){return this.graphManager.getAllNodesToApplyGravitation()},h.prototype.newGraphManager=function(){var t=new r(this);return this.graphManager=t,t},h.prototype.newGraph=function(t){return new c(null,this.graphManager,t)},h.prototype.newNode=function(t){return new o(this.graphManager,t)},h.prototype.newEdge=function(t){return new s(null,null,t)},h.prototype.checkLayoutSuccess=function(){return null==this.graphManager.getRoot()||0==this.graphManager.getRoot().getNodes().length||this.graphManager.includesInvalidEdge()},h.prototype.runLayout=function(){var t;return this.isLayoutFinished=!1,this.tilingPreLayout&&this.tilingPreLayout(),this.initParameters(),t=!this.checkLayoutSuccess()&&this.layout(),"during"!==a.ANIMATE&&(t&&(this.isSubLayout||this.doPostLayout()),this.tilingPostLayout&&this.tilingPostLayout(),this.isLayoutFinished=!0,t)},h.prototype.doPostLayout=function(){this.incremental||this.transform(),this.update()},h.prototype.update2=function(){if(this.createBendsAsNeeded&&(this.createBendpointsFromDummyNodes(),this.graphManager.resetAllEdges()),!this.isRemoteUse){for(var t=this.graphManager.getAllEdges(),e=0;e<t.length;e++)t[e];var n=this.graphManager.getRoot().getNodes();for(e=0;e<n.length;e++)n[e];this.update(this.graphManager.getRoot())}},h.prototype.update=function(t){if(null==t)this.update2();else if(t instanceof o){var e=t;if(null!=e.getChild())for(var n=e.getChild().getNodes(),i=0;i<n.length;i++)update(n[i]);null!=e.vGraphObject&&e.vGraphObject.update(e)}else if(t instanceof s){var a=t;null!=a.vGraphObject&&a.vGraphObject.update(a)}else if(t instanceof c){var r=t;null!=r.vGraphObject&&r.vGraphObject.update(r)}},h.prototype.initParameters=function(){this.isSubLayout||(this.layoutQuality=a.QUALITY,this.animationDuringLayout=a.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=a.DEFAULT_ANIMATION_PERIOD,this.animationOnLayout=a.DEFAULT_ANIMATION_ON_LAYOUT,this.incremental=a.DEFAULT_INCREMENTAL,this.createBendsAsNeeded=a.DEFAULT_CREATE_BENDS_AS_NEEDED,this.uniformLeafNodeSizes=a.DEFAULT_UNIFORM_LEAF_NODE_SIZES),this.animationDuringLayout&&(this.animationOnLayout=!1)},h.prototype.transform=function(t){if(null==t)this.transform(new l(0,0));else{var e=new u,n=this.graphManager.getRoot().updateLeftTop();if(null!=n){e.setWorldOrgX(t.x),e.setWorldOrgY(t.y),e.setDeviceOrgX(n.x),e.setDeviceOrgY(n.y);for(var i=this.getAllNodes(),a=0;a<i.length;a++)i[a].transform(e)}}},h.prototype.positionNodesRandomly=function(t){if(null==t)this.positionNodesRandomly(this.getGraphManager().getRoot()),this.getGraphManager().getRoot().updateBounds(!0);else for(var e,n,i=t.getNodes(),a=0;a<i.length;a++)null==(n=(e=i[a]).getChild())||0==n.getNodes().length?e.scatter():(this.positionNodesRandomly(n),e.updateBounds())},h.prototype.getFlatForest=function(){for(var t=[],e=!0,n=this.graphManager.getRoot().getNodes(),a=!0,r=0;r<n.length;r++)null!=n[r].getChild()&&(a=!1);if(!a)return t;var o=new Set,s=[],c=new Map,l=[];for(l=l.concat(n);l.length>0&&e;){for(s.push(l[0]);s.length>0&&e;){var u=s[0];s.splice(0,1),o.add(u);var d=u.getEdges();for(r=0;r<d.length;r++){var h=d[r].getOtherEnd(u);if(c.get(u)!=h){if(o.has(h)){e=!1;break}s.push(h),c.set(h,u)}}}if(e){var f=[].concat(i(o));for(t.push(f),r=0;r<f.length;r++){var g=f[r],p=l.indexOf(g);p>-1&&l.splice(p,1)}o=new Set,c=new Map}else t=[]}return t},h.prototype.createDummyNodesForBendpoints=function(t){for(var e=[],n=t.source,i=this.graphManager.calcLowestCommonAncestor(t.source,t.target),a=0;a<t.bendpoints.length;a++){var r=this.newNode(null);r.setRect(new Point(0,0),new Dimension(1,1)),i.add(r);var o=this.newEdge(null);this.graphManager.add(o,n,r),e.add(r),n=r}return o=this.newEdge(null),this.graphManager.add(o,n,t.target),this.edgeToDummyNodes.set(t,e),t.isInterGraph()?this.graphManager.remove(t):i.remove(t),e},h.prototype.createBendpointsFromDummyNodes=function(){var t=[];t=t.concat(this.graphManager.getAllEdges()),t=[].concat(i(this.edgeToDummyNodes.keys())).concat(t);for(var e=0;e<t.length;e++){var n=t[e];if(n.bendpoints.length>0){for(var a=this.edgeToDummyNodes.get(n),r=0;r<a.length;r++){var o=a[r],s=new l(o.getCenterX(),o.getCenterY()),c=n.bendpoints.get(r);c.x=s.x,c.y=s.y,o.getOwner().remove(o)}this.graphManager.add(n,n.source,n.target)}}},h.transform=function(t,e,n,i){if(null!=n&&null!=i){var a=e;return t<=50?a-=(e-e/n)/50*(50-t):a+=(e*i-e)/50*(t-50),a}var r,o;return t<=50?(r=9*e/500,o=e/10):(r=9*e/50,o=-8*e),r*t+o},h.findCenterOfTree=function(t){var e=[];e=e.concat(t);var n=[],i=new Map,a=!1,r=null;(1==e.length||2==e.length)&&(a=!0,r=e[0]);for(var o=0;o<e.length;o++){var s=(u=e[o]).getNeighborsList().size;i.set(u,u.getNeighborsList().size),1==s&&n.push(u)}var c=[];for(c=c.concat(n);!a;){var l=[];for(l=l.concat(c),c=[],o=0;o<e.length;o++){var u=e[o],d=e.indexOf(u);d>=0&&e.splice(d,1),u.getNeighborsList().forEach((function(t){if(n.indexOf(t)<0){var e=i.get(t)-1;1==e&&c.push(t),i.set(t,e)}}))}n=n.concat(c),(1==e.length||2==e.length)&&(a=!0,r=e[0])}return r},h.prototype.setGraphManager=function(t){this.graphManager=t},t.exports=h},function(t,e,n){function i(){}i.seed=1,i.x=0,i.nextDouble=function(){return i.x=1e4*Math.sin(i.seed++),i.x-Math.floor(i.x)},t.exports=i},function(t,e,n){var i=n(4);function a(t,e){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}a.prototype.getWorldOrgX=function(){return this.lworldOrgX},a.prototype.setWorldOrgX=function(t){this.lworldOrgX=t},a.prototype.getWorldOrgY=function(){return this.lworldOrgY},a.prototype.setWorldOrgY=function(t){this.lworldOrgY=t},a.prototype.getWorldExtX=function(){return this.lworldExtX},a.prototype.setWorldExtX=function(t){this.lworldExtX=t},a.prototype.getWorldExtY=function(){return this.lworldExtY},a.prototype.setWorldExtY=function(t){this.lworldExtY=t},a.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},a.prototype.setDeviceOrgX=function(t){this.ldeviceOrgX=t},a.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},a.prototype.setDeviceOrgY=function(t){this.ldeviceOrgY=t},a.prototype.getDeviceExtX=function(){return this.ldeviceExtX},a.prototype.setDeviceExtX=function(t){this.ldeviceExtX=t},a.prototype.getDeviceExtY=function(){return this.ldeviceExtY},a.prototype.setDeviceExtY=function(t){this.ldeviceExtY=t},a.prototype.transformX=function(t){var e=0,n=this.lworldExtX;return 0!=n&&(e=this.ldeviceOrgX+(t-this.lworldOrgX)*this.ldeviceExtX/n),e},a.prototype.transformY=function(t){var e=0,n=this.lworldExtY;return 0!=n&&(e=this.ldeviceOrgY+(t-this.lworldOrgY)*this.ldeviceExtY/n),e},a.prototype.inverseTransformX=function(t){var e=0,n=this.ldeviceExtX;return 0!=n&&(e=this.lworldOrgX+(t-this.ldeviceOrgX)*this.lworldExtX/n),e},a.prototype.inverseTransformY=function(t){var e=0,n=this.ldeviceExtY;return 0!=n&&(e=this.lworldOrgY+(t-this.ldeviceOrgY)*this.lworldExtY/n),e},a.prototype.inverseTransformPoint=function(t){return new i(this.inverseTransformX(t.x),this.inverseTransformY(t.y))},t.exports=a},function(t,e,n){function i(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}var a=n(15),r=n(7),o=n(0),s=n(8),c=n(9);function l(){a.call(this),this.useSmartIdealEdgeLengthCalculation=r.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.idealEdgeLength=r.DEFAULT_EDGE_LENGTH,this.springConstant=r.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=r.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=r.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=r.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=r.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=r.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.displacementThresholdPerNode=3*r.DEFAULT_EDGE_LENGTH/100,this.coolingFactor=r.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.initialCoolingFactor=r.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.totalDisplacement=0,this.oldTotalDisplacement=0,this.maxIterations=r.MAX_ITERATIONS}for(var u in l.prototype=Object.create(a.prototype),a)l[u]=a[u];l.prototype.initParameters=function(){a.prototype.initParameters.call(this,arguments),this.totalIterations=0,this.notAnimatedIterations=0,this.useFRGridVariant=r.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION,this.grid=[]},l.prototype.calcIdealEdgeLengths=function(){for(var t,e,n,i,a,s,c=this.getGraphManager().getAllEdges(),l=0;l<c.length;l++)(t=c[l]).idealLength=this.idealEdgeLength,t.isInterGraph&&(n=t.getSource(),i=t.getTarget(),a=t.getSourceInLca().getEstimatedSize(),s=t.getTargetInLca().getEstimatedSize(),this.useSmartIdealEdgeLengthCalculation&&(t.idealLength+=a+s-2*o.SIMPLE_NODE_SIZE),e=t.getLca().getInclusionTreeDepth(),t.idealLength+=r.DEFAULT_EDGE_LENGTH*r.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR*(n.getInclusionTreeDepth()+i.getInclusionTreeDepth()-2*e))},l.prototype.initSpringEmbedder=function(){var t=this.getAllNodes().length;this.incremental?(t>r.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*r.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(t-r.ADAPTATION_LOWER_NODE_LIMIT)/(r.ADAPTATION_UPPER_NODE_LIMIT-r.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-r.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=r.MAX_NODE_DISPLACEMENT_INCREMENTAL):(t>r.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(r.COOLING_ADAPTATION_FACTOR,1-(t-r.ADAPTATION_LOWER_NODE_LIMIT)/(r.ADAPTATION_UPPER_NODE_LIMIT-r.ADAPTATION_LOWER_NODE_LIMIT)*(1-r.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=r.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(5*this.getAllNodes().length,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},l.prototype.calcSpringForces=function(){for(var t,e=this.getAllEdges(),n=0;n<e.length;n++)t=e[n],this.calcSpringForce(t,t.idealLength)},l.prototype.calcRepulsionForces=function(){var t,e,n,i,a,o=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],s=arguments.length>1&&void 0!==arguments[1]&&arguments[1],c=this.getAllNodes();if(this.useFRGridVariant)for(this.totalIterations%r.GRID_CALCULATION_CHECK_PERIOD==1&&o&&this.updateGrid(),a=new Set,t=0;t<c.length;t++)n=c[t],this.calculateRepulsionForceOfANode(n,a,o,s),a.add(n);else for(t=0;t<c.length;t++)for(n=c[t],e=t+1;e<c.length;e++)i=c[e],n.getOwner()==i.getOwner()&&this.calcRepulsionForce(n,i)},l.prototype.calcGravitationalForces=function(){for(var t,e=this.getAllNodesToApplyGravitation(),n=0;n<e.length;n++)t=e[n],this.calcGravitationalForce(t)},l.prototype.moveNodes=function(){for(var t=this.getAllNodes(),e=0;e<t.length;e++)t[e].move()},l.prototype.calcSpringForce=function(t,e){var n,i,a,r,o=t.getSource(),s=t.getTarget();if(this.uniformLeafNodeSizes&&null==o.getChild()&&null==s.getChild())t.updateLengthSimple();else if(t.updateLength(),t.isOverlapingSourceAndTarget)return;0!=(n=t.getLength())&&(a=(i=this.springConstant*(n-e))*(t.lengthX/n),r=i*(t.lengthY/n),o.springForceX+=a,o.springForceY+=r,s.springForceX-=a,s.springForceY-=r)},l.prototype.calcRepulsionForce=function(t,e){var n,i,a,o,l,u,d,h=t.getRect(),f=e.getRect(),g=new Array(2),p=new Array(4);if(h.intersects(f)){s.calcSeparationAmount(h,f,g,r.DEFAULT_EDGE_LENGTH/2),u=2*g[0],d=2*g[1];var b=t.noOfChildren*e.noOfChildren/(t.noOfChildren+e.noOfChildren);t.repulsionForceX-=b*u,t.repulsionForceY-=b*d,e.repulsionForceX+=b*u,e.repulsionForceY+=b*d}else this.uniformLeafNodeSizes&&null==t.getChild()&&null==e.getChild()?(n=f.getCenterX()-h.getCenterX(),i=f.getCenterY()-h.getCenterY()):(s.getIntersection(h,f,p),n=p[2]-p[0],i=p[3]-p[1]),Math.abs(n)<r.MIN_REPULSION_DIST&&(n=c.sign(n)*r.MIN_REPULSION_DIST),Math.abs(i)<r.MIN_REPULSION_DIST&&(i=c.sign(i)*r.MIN_REPULSION_DIST),a=n*n+i*i,o=Math.sqrt(a),u=(l=this.repulsionConstant*t.noOfChildren*e.noOfChildren/a)*n/o,d=l*i/o,t.repulsionForceX-=u,t.repulsionForceY-=d,e.repulsionForceX+=u,e.repulsionForceY+=d},l.prototype.calcGravitationalForce=function(t){var e,n,i,a,r,o,s,c;n=((e=t.getOwner()).getRight()+e.getLeft())/2,i=(e.getTop()+e.getBottom())/2,a=t.getCenterX()-n,r=t.getCenterY()-i,o=Math.abs(a)+t.getWidth()/2,s=Math.abs(r)+t.getHeight()/2,t.getOwner()==this.graphManager.getRoot()?(o>(c=e.getEstimatedSize()*this.gravityRangeFactor)||s>c)&&(t.gravitationForceX=-this.gravityConstant*a,t.gravitationForceY=-this.gravityConstant*r):(o>(c=e.getEstimatedSize()*this.compoundGravityRangeFactor)||s>c)&&(t.gravitationForceX=-this.gravityConstant*a*this.compoundGravityConstant,t.gravitationForceY=-this.gravityConstant*r*this.compoundGravityConstant)},l.prototype.isConverged=function(){var t,e=!1;return this.totalIterations>this.maxIterations/3&&(e=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),t=this.totalDisplacement<this.totalDisplacementThreshold,this.oldTotalDisplacement=this.totalDisplacement,t||e},l.prototype.animate=function(){this.animationDuringLayout&&!this.isSubLayout&&(this.notAnimatedIterations==this.animationPeriod?(this.update(),this.notAnimatedIterations=0):this.notAnimatedIterations++)},l.prototype.calcNoOfChildrenForAllNodes=function(){for(var t,e=this.graphManager.getAllNodes(),n=0;n<e.length;n++)(t=e[n]).noOfChildren=t.getNoOfChildren()},l.prototype.calcGrid=function(t){var e=0,n=0;e=parseInt(Math.ceil((t.getRight()-t.getLeft())/this.repulsionRange)),n=parseInt(Math.ceil((t.getBottom()-t.getTop())/this.repulsionRange));for(var i=new Array(e),a=0;a<e;a++)i[a]=new Array(n);for(a=0;a<e;a++)for(var r=0;r<n;r++)i[a][r]=new Array;return i},l.prototype.addNodeToGrid=function(t,e,n){var i=0,a=0,r=0,o=0;i=parseInt(Math.floor((t.getRect().x-e)/this.repulsionRange)),a=parseInt(Math.floor((t.getRect().width+t.getRect().x-e)/this.repulsionRange)),r=parseInt(Math.floor((t.getRect().y-n)/this.repulsionRange)),o=parseInt(Math.floor((t.getRect().height+t.getRect().y-n)/this.repulsionRange));for(var s=i;s<=a;s++)for(var c=r;c<=o;c++)this.grid[s][c].push(t),t.setGridCoordinates(i,a,r,o)},l.prototype.updateGrid=function(){var t,e,n=this.getAllNodes();for(this.grid=this.calcGrid(this.graphManager.getRoot()),t=0;t<n.length;t++)e=n[t],this.addNodeToGrid(e,this.graphManager.getRoot().getLeft(),this.graphManager.getRoot().getTop())},l.prototype.calculateRepulsionForceOfANode=function(t,e,n,a){if(this.totalIterations%r.GRID_CALCULATION_CHECK_PERIOD==1&&n||a){var o=new Set;t.surrounding=new Array;for(var s,c=this.grid,l=t.startX-1;l<t.finishX+2;l++)for(var u=t.startY-1;u<t.finishY+2;u++)if(!(l<0||u<0||l>=c.length||u>=c[0].length))for(var d=0;d<c[l][u].length;d++)if(s=c[l][u][d],t.getOwner()==s.getOwner()&&t!=s&&!e.has(s)&&!o.has(s)){var h=Math.abs(t.getCenterX()-s.getCenterX())-(t.getWidth()/2+s.getWidth()/2),f=Math.abs(t.getCenterY()-s.getCenterY())-(t.getHeight()/2+s.getHeight()/2);h<=this.repulsionRange&&f<=this.repulsionRange&&o.add(s)}t.surrounding=[].concat(i(o))}for(l=0;l<t.surrounding.length;l++)this.calcRepulsionForce(t,t.surrounding[l])},l.prototype.calcRepulsionRange=function(){return 0},t.exports=l},function(t,e,n){var i=n(1),a=n(7);function r(t,e,n){i.call(this,t,e,n),this.idealLength=a.DEFAULT_EDGE_LENGTH}for(var o in r.prototype=Object.create(i.prototype),i)r[o]=i[o];t.exports=r},function(t,e,n){var i=n(3);function a(t,e,n,a){i.call(this,t,e,n,a),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0,this.startX=0,this.finishX=0,this.startY=0,this.finishY=0,this.surrounding=[]}for(var r in a.prototype=Object.create(i.prototype),i)a[r]=i[r];a.prototype.setGridCoordinates=function(t,e,n,i){this.startX=t,this.finishX=e,this.startY=n,this.finishY=i},t.exports=a},function(t,e,n){function i(t,e){this.width=0,this.height=0,null!==t&&null!==e&&(this.height=e,this.width=t)}i.prototype.getWidth=function(){return this.width},i.prototype.setWidth=function(t){this.width=t},i.prototype.getHeight=function(){return this.height},i.prototype.setHeight=function(t){this.height=t},t.exports=i},function(t,e,n){var i=n(14);function a(){this.map={},this.keys=[]}a.prototype.put=function(t,e){var n=i.createID(t);this.contains(n)||(this.map[n]=e,this.keys.push(t))},a.prototype.contains=function(t){return i.createID(t),null!=this.map[t]},a.prototype.get=function(t){var e=i.createID(t);return this.map[e]},a.prototype.keySet=function(){return this.keys},t.exports=a},function(t,e,n){var i=n(14);function a(){this.set={}}a.prototype.add=function(t){var e=i.createID(t);this.contains(e)||(this.set[e]=t)},a.prototype.remove=function(t){delete this.set[i.createID(t)]},a.prototype.clear=function(){this.set={}},a.prototype.contains=function(t){return this.set[i.createID(t)]==t},a.prototype.isEmpty=function(){return 0===this.size()},a.prototype.size=function(){return Object.keys(this.set).length},a.prototype.addAllTo=function(t){for(var e=Object.keys(this.set),n=e.length,i=0;i<n;i++)t.push(this.set[e[i]])},a.prototype.size=function(){return Object.keys(this.set).length},a.prototype.addAll=function(t){for(var e=t.length,n=0;n<e;n++){var i=t[n];this.add(i)}},t.exports=a},function(t,e,n){var i=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}();function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=n(11),o=function(){function t(e,n){a(this,t),(null!==n||void 0!==n)&&(this.compareFunction=this._defaultCompareFunction);var i=void 0;i=e instanceof r?e.size():e.length,this._quicksort(e,0,i-1)}return i(t,[{key:"_quicksort",value:function(t,e,n){if(e<n){var i=this._partition(t,e,n);this._quicksort(t,e,i),this._quicksort(t,i+1,n)}}},{key:"_partition",value:function(t,e,n){for(var i=this._get(t,e),a=e,r=n;;){for(;this.compareFunction(i,this._get(t,r));)r--;for(;this.compareFunction(this._get(t,a),i);)a++;if(!(a<r))return r;this._swap(t,a,r),a++,r--}}},{key:"_get",value:function(t,e){return t instanceof r?t.get_object_at(e):t[e]}},{key:"_set",value:function(t,e,n){t instanceof r?t.set_object_at(e,n):t[e]=n}},{key:"_swap",value:function(t,e,n){var i=this._get(t,e);this._set(t,e,this._get(t,n)),this._set(t,n,i)}},{key:"_defaultCompareFunction",value:function(t,e){return e>t}}]),t}();t.exports=o},function(t,e,n){var i=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}();function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(){function t(e,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1;a(this,t),this.sequence1=e,this.sequence2=n,this.match_score=i,this.mismatch_penalty=r,this.gap_penalty=o,this.iMax=e.length+1,this.jMax=n.length+1,this.grid=new Array(this.iMax);for(var s=0;s<this.iMax;s++){this.grid[s]=new Array(this.jMax);for(var c=0;c<this.jMax;c++)this.grid[s][c]=0}this.tracebackGrid=new Array(this.iMax);for(var l=0;l<this.iMax;l++){this.tracebackGrid[l]=new Array(this.jMax);for(var u=0;u<this.jMax;u++)this.tracebackGrid[l][u]=[null,null,null]}this.alignments=[],this.score=-1,this.computeGrids()}return i(t,[{key:"getScore",value:function(){return this.score}},{key:"getAlignments",value:function(){return this.alignments}},{key:"computeGrids",value:function(){for(var t=1;t<this.jMax;t++)this.grid[0][t]=this.grid[0][t-1]+this.gap_penalty,this.tracebackGrid[0][t]=[!1,!1,!0];for(var e=1;e<this.iMax;e++)this.grid[e][0]=this.grid[e-1][0]+this.gap_penalty,this.tracebackGrid[e][0]=[!1,!0,!1];for(var n=1;n<this.iMax;n++)for(var i=1;i<this.jMax;i++){var a=[this.sequence1[n-1]===this.sequence2[i-1]?this.grid[n-1][i-1]+this.match_score:this.grid[n-1][i-1]+this.mismatch_penalty,this.grid[n-1][i]+this.gap_penalty,this.grid[n][i-1]+this.gap_penalty],r=this.arrayAllMaxIndexes(a);this.grid[n][i]=a[r[0]],this.tracebackGrid[n][i]=[r.includes(0),r.includes(1),r.includes(2)]}this.score=this.grid[this.iMax-1][this.jMax-1]}},{key:"alignmentTraceback",value:function(){var t=[];for(t.push({pos:[this.sequence1.length,this.sequence2.length],seq1:"",seq2:""});t[0];){var e=t[0],n=this.tracebackGrid[e.pos[0]][e.pos[1]];n[0]&&t.push({pos:[e.pos[0]-1,e.pos[1]-1],seq1:this.sequence1[e.pos[0]-1]+e.seq1,seq2:this.sequence2[e.pos[1]-1]+e.seq2}),n[1]&&t.push({pos:[e.pos[0]-1,e.pos[1]],seq1:this.sequence1[e.pos[0]-1]+e.seq1,seq2:"-"+e.seq2}),n[2]&&t.push({pos:[e.pos[0],e.pos[1]-1],seq1:"-"+e.seq1,seq2:this.sequence2[e.pos[1]-1]+e.seq2}),0===e.pos[0]&&0===e.pos[1]&&this.alignments.push({sequence1:e.seq1,sequence2:e.seq2}),t.shift()}return this.alignments}},{key:"getAllIndexes",value:function(t,e){for(var n=[],i=-1;-1!==(i=t.indexOf(e,i+1));)n.push(i);return n}},{key:"arrayAllMaxIndexes",value:function(t){return this.getAllIndexes(t,Math.max.apply(null,t))}}]),t}();t.exports=r},function(t,e,n){var i=function(){};i.FDLayout=n(18),i.FDLayoutConstants=n(7),i.FDLayoutEdge=n(19),i.FDLayoutNode=n(20),i.DimensionD=n(21),i.HashMap=n(22),i.HashSet=n(23),i.IGeometry=n(8),i.IMath=n(9),i.Integer=n(10),i.Point=n(12),i.PointD=n(4),i.RandomSeed=n(16),i.RectangleD=n(13),i.Transform=n(17),i.UniqueIDGeneretor=n(14),i.Quicksort=n(24),i.LinkedList=n(11),i.LGraphObject=n(2),i.LGraph=n(5),i.LEdge=n(1),i.LGraphManager=n(6),i.LNode=n(3),i.Layout=n(15),i.LayoutConstants=n(0),i.NeedlemanWunsch=n(25),t.exports=i},function(t,e,n){function i(){this.listeners=[]}var a=i.prototype;a.addListener=function(t,e){this.listeners.push({event:t,callback:e})},a.removeListener=function(t,e){for(var n=this.listeners.length;n>=0;n--){var i=this.listeners[n];i.event===t&&i.callback===e&&this.listeners.splice(n,1)}},a.emit=function(t,e){for(var n=0;n<this.listeners.length;n++){var i=this.listeners[n];t===i.event&&i.callback(e)}},t.exports=i}])},t.exports=n()}(_q)),Rq}function Eq(){return yq||(yq=1,function(t,e){var n;n=function(t){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var a=e[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=t,n.c=e,n.i=function(t){return t},n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:i})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=7)}([function(e,n){e.exports=t},function(t,e,n){var i=n(0).FDLayoutConstants;function a(){}for(var r in i)a[r]=i[r];a.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,a.DEFAULT_RADIAL_SEPARATION=i.DEFAULT_EDGE_LENGTH,a.DEFAULT_COMPONENT_SEPERATION=60,a.TILE=!0,a.TILING_PADDING_VERTICAL=10,a.TILING_PADDING_HORIZONTAL=10,a.TREE_REDUCTION_ON_INCREMENTAL=!1,t.exports=a},function(t,e,n){var i=n(0).FDLayoutEdge;function a(t,e,n){i.call(this,t,e,n)}for(var r in a.prototype=Object.create(i.prototype),i)a[r]=i[r];t.exports=a},function(t,e,n){var i=n(0).LGraph;function a(t,e,n){i.call(this,t,e,n)}for(var r in a.prototype=Object.create(i.prototype),i)a[r]=i[r];t.exports=a},function(t,e,n){var i=n(0).LGraphManager;function a(t){i.call(this,t)}for(var r in a.prototype=Object.create(i.prototype),i)a[r]=i[r];t.exports=a},function(t,e,n){var i=n(0).FDLayoutNode,a=n(0).IMath;function r(t,e,n,a){i.call(this,t,e,n,a)}for(var o in r.prototype=Object.create(i.prototype),i)r[o]=i[o];r.prototype.move=function(){var t=this.graphManager.getLayout();this.displacementX=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementX=t.coolingFactor*t.maxNodeDisplacement*a.sign(this.displacementX)),Math.abs(this.displacementY)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementY=t.coolingFactor*t.maxNodeDisplacement*a.sign(this.displacementY)),null==this.child||0==this.child.getNodes().length?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),t.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},r.prototype.propogateDisplacementToChildren=function(t,e){for(var n,i=this.getChild().getNodes(),a=0;a<i.length;a++)null==(n=i[a]).getChild()?(n.moveBy(t,e),n.displacementX+=t,n.displacementY+=e):n.propogateDisplacementToChildren(t,e)},r.prototype.setPred1=function(t){this.pred1=t},r.prototype.getPred1=function(){return pred1},r.prototype.getPred2=function(){return pred2},r.prototype.setNext=function(t){this.next=t},r.prototype.getNext=function(){return next},r.prototype.setProcessed=function(t){this.processed=t},r.prototype.isProcessed=function(){return processed},t.exports=r},function(t,e,n){var i=n(0).FDLayout,a=n(4),r=n(3),o=n(5),s=n(2),c=n(1),l=n(0).FDLayoutConstants,u=n(0).LayoutConstants,d=n(0).Point,h=n(0).PointD,f=n(0).Layout,g=n(0).Integer,p=n(0).IGeometry,b=n(0).LGraph,m=n(0).Transform;function y(){i.call(this),this.toBeTiled={}}for(var v in y.prototype=Object.create(i.prototype),i)y[v]=i[v];y.prototype.newGraphManager=function(){var t=new a(this);return this.graphManager=t,t},y.prototype.newGraph=function(t){return new r(null,this.graphManager,t)},y.prototype.newNode=function(t){return new o(this.graphManager,t)},y.prototype.newEdge=function(t){return new s(null,null,t)},y.prototype.initParameters=function(){i.prototype.initParameters.call(this,arguments),this.isSubLayout||(c.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=c.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=c.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.springConstant=l.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=l.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=l.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=l.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=l.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1,this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/l.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=l.CONVERGENCE_CHECK_PERIOD/this.maxIterations,this.coolingAdjuster=1)},y.prototype.layout=function(){return u.DEFAULT_CREATE_BENDS_AS_NEEDED&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},y.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(c.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter((function(e){return t.has(e)}));this.graphManager.setAllNodesToApplyGravitation(e)}}else{var n=this.getFlatForest();n.length>0?this.positionNodesRadially(n):(this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation(),t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter((function(e){return t.has(e)})),this.graphManager.setAllNodesToApplyGravitation(e),this.positionNodesRandomly())}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},y.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}if(this.totalIterations%l.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged()){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}this.coolingCycle++,0==this.layoutQuality?this.coolingAdjuster=this.coolingCycle:1==this.layoutQuality&&(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 t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter((function(e){return t.has(e)}));this.graphManager.setAllNodesToApplyGravitation(e),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=l.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=l.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var n=!this.isTreeGrowing&&!this.isGrowthFinished,i=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(n,i),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},y.prototype.getPositionsData=function(){for(var t=this.graphManager.getAllNodes(),e={},n=0;n<t.length;n++){var i=t[n].rect,a=t[n].id;e[a]={id:a,x:i.getCenterX(),y:i.getCenterY(),w:i.width,h:i.height}}return e},y.prototype.runSpringEmbedder=function(){this.initialAnimationPeriod=25,this.animationPeriod=this.initialAnimationPeriod;var t=!1;if("during"===l.ANIMATE)this.emit("layoutstarted");else{for(;!t;)t=this.tick();this.graphManager.updateBounds()}},y.prototype.calculateNodesToApplyGravitationTo=function(){var t,e,n=[],i=this.graphManager.getGraphs(),a=i.length;for(e=0;e<a;e++)(t=i[e]).updateConnected(),t.isConnected||(n=n.concat(t.getNodes()));return n},y.prototype.createBendpoints=function(){var t=[];t=t.concat(this.graphManager.getAllEdges());var e,n=new Set;for(e=0;e<t.length;e++){var i=t[e];if(!n.has(i)){var a=i.getSource(),r=i.getTarget();if(a==r)i.getBendpoints().push(new h),i.getBendpoints().push(new h),this.createDummyNodesForBendpoints(i),n.add(i);else{var o=[];if(o=(o=o.concat(a.getEdgeListToNode(r))).concat(r.getEdgeListToNode(a)),!n.has(o[0])){var s;if(o.length>1)for(s=0;s<o.length;s++){var c=o[s];c.getBendpoints().push(new h),this.createDummyNodesForBendpoints(c)}o.forEach((function(t){n.add(t)}))}}}if(n.size==t.length)break}},y.prototype.positionNodesRadially=function(t){for(var e=new d(0,0),n=Math.ceil(Math.sqrt(t.length)),i=0,a=0,r=0,o=new h(0,0),s=0;s<t.length;s++){s%n==0&&(r=0,a=i,0!=s&&(a+=c.DEFAULT_COMPONENT_SEPERATION),i=0);var l=t[s],g=f.findCenterOfTree(l);e.x=r,e.y=a,(o=y.radialLayout(l,g,e)).y>i&&(i=Math.floor(o.y)),r=Math.floor(o.x+c.DEFAULT_COMPONENT_SEPERATION)}this.transform(new h(u.WORLD_CENTER_X-o.x/2,u.WORLD_CENTER_Y-o.y/2))},y.radialLayout=function(t,e,n){var i=Math.max(this.maxDiagonalInTree(t),c.DEFAULT_RADIAL_SEPARATION);y.branchRadialLayout(e,null,0,359,0,i);var a=b.calculateBounds(t),r=new m;r.setDeviceOrgX(a.getMinX()),r.setDeviceOrgY(a.getMinY()),r.setWorldOrgX(n.x),r.setWorldOrgY(n.y);for(var o=0;o<t.length;o++)t[o].transform(r);var s=new h(a.getMaxX(),a.getMaxY());return r.inverseTransformPoint(s)},y.branchRadialLayout=function(t,e,n,i,a,r){var o=(i-n+1)/2;o<0&&(o+=180);var s=(o+n)%360*p.TWO_PI/360,c=a*Math.cos(s),l=a*Math.sin(s);t.setCenter(c,l);var u=[],d=(u=u.concat(t.getEdges())).length;null!=e&&d--;for(var h,f=0,g=u.length,b=t.getEdgesBetween(e);b.length>1;){var m=b[0];b.splice(0,1);var v=u.indexOf(m);v>=0&&u.splice(v,1),g--,d--}h=null!=e?(u.indexOf(b[0])+1)%g:0;for(var w=Math.abs(i-n)/d,x=h;f!=d;x=++x%g){var R=u[x].getOtherEnd(t);if(R!=e){var _=(n+f*w)%360,k=(_+w)%360;y.branchRadialLayout(R,t,_,k,a+r,r),f++}}},y.maxDiagonalInTree=function(t){for(var e=g.MIN_VALUE,n=0;n<t.length;n++){var i=t[n].getDiagonal();i>e&&(e=i)}return e},y.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},y.prototype.groupZeroDegreeMembers=function(){var t=this,e={};this.memberGroups={},this.idToDummyNode={};for(var n=[],i=this.graphManager.getAllNodes(),a=0;a<i.length;a++){var r=(s=i[a]).getParent();0===this.getNodeDegreeWithChildren(s)&&(null==r.id||!this.getToBeTiled(r))&&n.push(s)}for(a=0;a<n.length;a++){var s,c=(s=n[a]).getParent().id;typeof e[c]>"u"&&(e[c]=[]),e[c]=e[c].concat(s)}Object.keys(e).forEach((function(n){if(e[n].length>1){var i="DummyCompound_"+n;t.memberGroups[i]=e[n];var a=e[n][0].getParent(),r=new o(t.graphManager);r.id=i,r.paddingLeft=a.paddingLeft||0,r.paddingRight=a.paddingRight||0,r.paddingBottom=a.paddingBottom||0,r.paddingTop=a.paddingTop||0,t.idToDummyNode[i]=r;var s=t.getGraphManager().add(t.newGraph(),r),c=a.getChild();c.add(r);for(var l=0;l<e[n].length;l++){var u=e[n][l];c.remove(u),s.add(u)}}}))},y.prototype.clearCompounds=function(){var t={},e={};this.performDFSOnCompounds();for(var n=0;n<this.compoundOrder.length;n++)e[this.compoundOrder[n].id]=this.compoundOrder[n],t[this.compoundOrder[n].id]=[].concat(this.compoundOrder[n].getChild().getNodes()),this.graphManager.remove(this.compoundOrder[n].getChild()),this.compoundOrder[n].child=null;this.graphManager.resetAllNodes(),this.tileCompoundMembers(t,e)},y.prototype.clearZeroDegreeMembers=function(){var t=this,e=this.tiledZeroDegreePack=[];Object.keys(this.memberGroups).forEach((function(n){var i=t.idToDummyNode[n];e[n]=t.tileNodes(t.memberGroups[n],i.paddingLeft+i.paddingRight),i.rect.width=e[n].width,i.rect.height=e[n].height}))},y.prototype.repopulateCompounds=function(){for(var t=this.compoundOrder.length-1;t>=0;t--){var e=this.compoundOrder[t],n=e.id,i=e.paddingLeft,a=e.paddingTop;this.adjustLocations(this.tiledMemberPack[n],e.rect.x,e.rect.y,i,a)}},y.prototype.repopulateZeroDegreeMembers=function(){var t=this,e=this.tiledZeroDegreePack;Object.keys(e).forEach((function(n){var i=t.idToDummyNode[n],a=i.paddingLeft,r=i.paddingTop;t.adjustLocations(e[n],i.rect.x,i.rect.y,a,r)}))},y.prototype.getToBeTiled=function(t){var e=t.id;if(null!=this.toBeTiled[e])return this.toBeTiled[e];var n=t.getChild();if(null==n)return this.toBeTiled[e]=!1,!1;for(var i=n.getNodes(),a=0;a<i.length;a++){var r=i[a];if(this.getNodeDegree(r)>0)return this.toBeTiled[e]=!1,!1;if(null!=r.getChild()){if(!this.getToBeTiled(r))return this.toBeTiled[e]=!1,!1}else this.toBeTiled[r.id]=!1}return this.toBeTiled[e]=!0,!0},y.prototype.getNodeDegree=function(t){t.id;for(var e=t.getEdges(),n=0,i=0;i<e.length;i++){var a=e[i];a.getSource().id!==a.getTarget().id&&(n+=1)}return n},y.prototype.getNodeDegreeWithChildren=function(t){var e=this.getNodeDegree(t);if(null==t.getChild())return e;for(var n=t.getChild().getNodes(),i=0;i<n.length;i++){var a=n[i];e+=this.getNodeDegreeWithChildren(a)}return e},y.prototype.performDFSOnCompounds=function(){this.compoundOrder=[],this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes())},y.prototype.fillCompexOrderByDFS=function(t){for(var e=0;e<t.length;e++){var n=t[e];null!=n.getChild()&&this.fillCompexOrderByDFS(n.getChild().getNodes()),this.getToBeTiled(n)&&this.compoundOrder.push(n)}},y.prototype.adjustLocations=function(t,e,n,i,a){n+=a;for(var r=e+=i,o=0;o<t.rows.length;o++){var s=t.rows[o];e=r;for(var c=0,l=0;l<s.length;l++){var u=s[l];u.rect.x=e,u.rect.y=n,e+=u.rect.width+t.horizontalPadding,u.rect.height>c&&(c=u.rect.height)}n+=c+t.verticalPadding}},y.prototype.tileCompoundMembers=function(t,e){var n=this;this.tiledMemberPack=[],Object.keys(t).forEach((function(i){var a=e[i];n.tiledMemberPack[i]=n.tileNodes(t[i],a.paddingLeft+a.paddingRight),a.rect.width=n.tiledMemberPack[i].width,a.rect.height=n.tiledMemberPack[i].height}))},y.prototype.tileNodes=function(t,e){var n={rows:[],rowWidth:[],rowHeight:[],width:0,height:e,verticalPadding:c.TILING_PADDING_VERTICAL,horizontalPadding:c.TILING_PADDING_HORIZONTAL};t.sort((function(t,e){return t.rect.width*t.rect.height>e.rect.width*e.rect.height?-1:t.rect.width*t.rect.height<e.rect.width*e.rect.height?1:0}));for(var i=0;i<t.length;i++){var a=t[i];0==n.rows.length?this.insertNodeToRow(n,a,0,e):this.canAddHorizontal(n,a.rect.width,a.rect.height)?this.insertNodeToRow(n,a,this.getShortestRowIndex(n),e):this.insertNodeToRow(n,a,n.rows.length,e),this.shiftToLastRow(n)}return n},y.prototype.insertNodeToRow=function(t,e,n,i){var a=i;if(n==t.rows.length){var r=[];t.rows.push(r),t.rowWidth.push(a),t.rowHeight.push(0)}var o=t.rowWidth[n]+e.rect.width;t.rows[n].length>0&&(o+=t.horizontalPadding),t.rowWidth[n]=o,t.width<o&&(t.width=o);var s=e.rect.height;n>0&&(s+=t.verticalPadding);var c=0;s>t.rowHeight[n]&&(c=t.rowHeight[n],t.rowHeight[n]=s,c=t.rowHeight[n]-c),t.height+=c,t.rows[n].push(e)},y.prototype.getShortestRowIndex=function(t){for(var e=-1,n=Number.MAX_VALUE,i=0;i<t.rows.length;i++)t.rowWidth[i]<n&&(e=i,n=t.rowWidth[i]);return e},y.prototype.getLongestRowIndex=function(t){for(var e=-1,n=Number.MIN_VALUE,i=0;i<t.rows.length;i++)t.rowWidth[i]>n&&(e=i,n=t.rowWidth[i]);return e},y.prototype.canAddHorizontal=function(t,e,n){var i=this.getShortestRowIndex(t);if(i<0)return!0;var a=t.rowWidth[i];if(a+t.horizontalPadding+e<=t.width)return!0;var r,o,s=0;return t.rowHeight[i]<n&&i>0&&(s=n+t.verticalPadding-t.rowHeight[i]),r=t.width-a>=e+t.horizontalPadding?(t.height+s)/(a+e+t.horizontalPadding):(t.height+s)/t.width,s=n+t.verticalPadding,(o=t.width<e?(t.height+s)/e:(t.height+s)/t.width)<1&&(o=1/o),r<1&&(r=1/r),r<o},y.prototype.shiftToLastRow=function(t){var e=this.getLongestRowIndex(t),n=t.rowWidth.length-1,i=t.rows[e],a=i[i.length-1],r=a.width+t.horizontalPadding;if(t.width-t.rowWidth[n]>r&&e!=n){i.splice(-1,1),t.rows[n].push(a),t.rowWidth[e]=t.rowWidth[e]-r,t.rowWidth[n]=t.rowWidth[n]+r,t.width=t.rowWidth[instance.getLongestRowIndex(t)];for(var o=Number.MIN_VALUE,s=0;s<i.length;s++)i[s].height>o&&(o=i[s].height);e>0&&(o+=t.verticalPadding);var c=t.rowHeight[e]+t.rowHeight[n];t.rowHeight[e]=o,t.rowHeight[n]<a.height+t.verticalPadding&&(t.rowHeight[n]=a.height+t.verticalPadding);var l=t.rowHeight[e]+t.rowHeight[n];t.height+=l-c,this.shiftToLastRow(t)}},y.prototype.tilingPreLayout=function(){c.TILE&&(this.groupZeroDegreeMembers(),this.clearCompounds(),this.clearZeroDegreeMembers())},y.prototype.tilingPostLayout=function(){c.TILE&&(this.repopulateZeroDegreeMembers(),this.repopulateCompounds())},y.prototype.reduceTrees=function(){for(var t,e=[],n=!0;n;){var i=this.graphManager.getAllNodes(),a=[];n=!1;for(var r=0;r<i.length;r++)1==(t=i[r]).getEdges().length&&!t.getEdges()[0].isInterGraph&&null==t.getChild()&&(a.push([t,t.getEdges()[0],t.getOwner()]),n=!0);if(1==n){for(var o=[],s=0;s<a.length;s++)1==a[s][0].getEdges().length&&(o.push(a[s]),a[s][0].getOwner().remove(a[s][0]));e.push(o),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()}}this.prunedNodesAll=e},y.prototype.growTree=function(t){for(var e,n=t[t.length-1],i=0;i<n.length;i++)e=n[i],this.findPlaceforPrunedNode(e),e[2].add(e[0]),e[2].add(e[1],e[1].source,e[1].target);t.splice(t.length-1,1),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()},y.prototype.findPlaceforPrunedNode=function(t){var e,n,i=t[0],a=(n=i==t[1].source?t[1].target:t[1].source).startX,r=n.finishX,o=n.startY,s=n.finishY,c=[0,0,0,0];if(o>0)for(var u=a;u<=r;u++)c[0]+=this.grid[u][o-1].length+this.grid[u][o].length-1;if(r<this.grid.length-1)for(u=o;u<=s;u++)c[1]+=this.grid[r+1][u].length+this.grid[r][u].length-1;if(s<this.grid[0].length-1)for(u=a;u<=r;u++)c[2]+=this.grid[u][s+1].length+this.grid[u][s].length-1;if(a>0)for(u=o;u<=s;u++)c[3]+=this.grid[a-1][u].length+this.grid[a][u].length-1;for(var d,h,f=g.MAX_VALUE,p=0;p<c.length;p++)c[p]<f?(f=c[p],d=1,h=p):c[p]==f&&d++;if(3==d&&0==f)0==c[0]&&0==c[1]&&0==c[2]?e=1:0==c[0]&&0==c[1]&&0==c[3]?e=0:0==c[0]&&0==c[2]&&0==c[3]?e=3:0==c[1]&&0==c[2]&&0==c[3]&&(e=2);else if(2==d&&0==f){var b=Math.floor(2*Math.random());e=0==c[0]&&0==c[1]?0==b?0:1:0==c[0]&&0==c[2]?0==b?0:2:0==c[0]&&0==c[3]?0==b?0:3:0==c[1]&&0==c[2]?0==b?1:2:0==c[1]&&0==c[3]?0==b?1:3:0==b?2:3}else e=4==d&&0==f?b=Math.floor(4*Math.random()):h;0==e?i.setCenter(n.getCenterX(),n.getCenterY()-n.getHeight()/2-l.DEFAULT_EDGE_LENGTH-i.getHeight()/2):1==e?i.setCenter(n.getCenterX()+n.getWidth()/2+l.DEFAULT_EDGE_LENGTH+i.getWidth()/2,n.getCenterY()):2==e?i.setCenter(n.getCenterX(),n.getCenterY()+n.getHeight()/2+l.DEFAULT_EDGE_LENGTH+i.getHeight()/2):i.setCenter(n.getCenterX()-n.getWidth()/2-l.DEFAULT_EDGE_LENGTH-i.getWidth()/2,n.getCenterY())},t.exports=y},function(t,e,n){var i={};i.layoutBase=n(0),i.CoSEConstants=n(1),i.CoSEEdge=n(2),i.CoSEGraph=n(3),i.CoSEGraphManager=n(4),i.CoSELayout=n(6),i.CoSENode=n(5),t.exports=i}])},t.exports=n(kq())}(xq)),wq}!function(t,e){var n;n=function(t){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var a=e[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=t,n.c=e,n.i=function(t){return t},n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:i})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=1)}([function(e,n){e.exports=t},function(t,e,n){var i=n(0).layoutBase.LayoutConstants,a=n(0).layoutBase.FDLayoutConstants,r=n(0).CoSEConstants,o=n(0).CoSELayout,s=n(0).CoSENode,c=n(0).layoutBase.PointD,l=n(0).layoutBase.DimensionD,u={ready:function(){},stop:function(){},quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function d(t,e){var n={};for(var i in t)n[i]=t[i];for(var i in e)n[i]=e[i];return n}function h(t){this.options=d(u,t),f(this.options)}var f=function(t){null!=t.nodeRepulsion&&(r.DEFAULT_REPULSION_STRENGTH=a.DEFAULT_REPULSION_STRENGTH=t.nodeRepulsion),null!=t.idealEdgeLength&&(r.DEFAULT_EDGE_LENGTH=a.DEFAULT_EDGE_LENGTH=t.idealEdgeLength),null!=t.edgeElasticity&&(r.DEFAULT_SPRING_STRENGTH=a.DEFAULT_SPRING_STRENGTH=t.edgeElasticity),null!=t.nestingFactor&&(r.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=t.nestingFactor),null!=t.gravity&&(r.DEFAULT_GRAVITY_STRENGTH=a.DEFAULT_GRAVITY_STRENGTH=t.gravity),null!=t.numIter&&(r.MAX_ITERATIONS=a.MAX_ITERATIONS=t.numIter),null!=t.gravityRange&&(r.DEFAULT_GRAVITY_RANGE_FACTOR=a.DEFAULT_GRAVITY_RANGE_FACTOR=t.gravityRange),null!=t.gravityCompound&&(r.DEFAULT_COMPOUND_GRAVITY_STRENGTH=a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=t.gravityCompound),null!=t.gravityRangeCompound&&(r.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=t.gravityRangeCompound),null!=t.initialEnergyOnIncremental&&(r.DEFAULT_COOLING_FACTOR_INCREMENTAL=a.DEFAULT_COOLING_FACTOR_INCREMENTAL=t.initialEnergyOnIncremental),"draft"==t.quality?i.QUALITY=0:"proof"==t.quality?i.QUALITY=2:i.QUALITY=1,r.NODE_DIMENSIONS_INCLUDE_LABELS=a.NODE_DIMENSIONS_INCLUDE_LABELS=i.NODE_DIMENSIONS_INCLUDE_LABELS=t.nodeDimensionsIncludeLabels,r.DEFAULT_INCREMENTAL=a.DEFAULT_INCREMENTAL=i.DEFAULT_INCREMENTAL=!t.randomize,r.ANIMATE=a.ANIMATE=i.ANIMATE=t.animate,r.TILE=t.tile,r.TILING_PADDING_VERTICAL="function"==typeof t.tilingPaddingVertical?t.tilingPaddingVertical.call():t.tilingPaddingVertical,r.TILING_PADDING_HORIZONTAL="function"==typeof t.tilingPaddingHorizontal?t.tilingPaddingHorizontal.call():t.tilingPaddingHorizontal};h.prototype.run=function(){var t,e,n=this.options;this.idToLNode={};var i=this.layout=new o,a=this;a.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var r=i.newGraphManager();this.gm=r;var s=this.options.eles.nodes(),c=this.options.eles.edges();this.root=r.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(s),i);for(var l=0;l<c.length;l++){var u=c[l],d=this.idToLNode[u.data("source")],h=this.idToLNode[u.data("target")];d!==h&&0==d.getEdgesBetween(h).length&&(r.add(i.newEdge(),d,h).id=u.id())}var f=function(t,e){"number"==typeof t&&(t=e);var n=t.data("id"),i=a.idToLNode[n];return{x:i.getRect().getCenterX(),y:i.getRect().getCenterY()}},g=function r(){for(var o,s=function(){n.fit&&n.cy.fit(n.eles,n.padding),t||(t=!0,a.cy.one("layoutready",n.ready),a.cy.trigger({type:"layoutready",layout:a}))},c=a.options.refresh,l=0;l<c&&!o;l++)o=a.stopped||a.layout.tick();if(o)return i.checkLayoutSuccess()&&!i.isSubLayout&&i.doPostLayout(),i.tilingPostLayout&&i.tilingPostLayout(),i.isLayoutFinished=!0,a.options.eles.nodes().positions(f),s(),a.cy.one("layoutstop",a.options.stop),a.cy.trigger({type:"layoutstop",layout:a}),e&&cancelAnimationFrame(e),void(t=!1);var u=a.layout.getPositionsData();n.eles.nodes().positions((function(t,e){if("number"==typeof t&&(t=e),!t.isParent()){for(var n=t.id(),i=u[n],a=t;null==i&&(i=u[a.data("parent")]||u["DummyCompound_"+a.data("parent")],u[n]=i,null!=(a=a.parent()[0])););return null!=i?{x:i.x,y:i.y}:{x:t.position("x"),y:t.position("y")}}})),s(),e=requestAnimationFrame(r)};return i.addListener("layoutstarted",(function(){"during"===a.options.animate&&(e=requestAnimationFrame(g))})),i.runLayout(),"during"!==this.options.animate&&(a.options.eles.nodes().not(":parent").layoutPositions(a,a.options,f),t=!1),this},h.prototype.getTopMostNodes=function(t){for(var e={},n=0;n<t.length;n++)e[t[n].id()]=!0;return t.filter((function(t,n){"number"==typeof t&&(t=n);for(var i=t.parent()[0];null!=i;){if(e[i.id()])return!1;i=i.parent()[0]}return!0}))},h.prototype.processChildrenList=function(t,e,n){for(var i=e.length,a=0;a<i;a++){var r,o,u=e[a],d=u.children(),h=u.layoutDimensions({nodeDimensionsIncludeLabels:this.options.nodeDimensionsIncludeLabels});if((r=null!=u.outerWidth()&&null!=u.outerHeight()?t.add(new s(n.graphManager,new c(u.position("x")-h.w/2,u.position("y")-h.h/2),new l(parseFloat(h.w),parseFloat(h.h)))):t.add(new s(this.graphManager))).id=u.data("id"),r.paddingLeft=parseInt(u.css("padding")),r.paddingTop=parseInt(u.css("padding")),r.paddingRight=parseInt(u.css("padding")),r.paddingBottom=parseInt(u.css("padding")),this.options.nodeDimensionsIncludeLabels&&u.isParent()){var f=u.boundingBox({includeLabels:!0,includeNodes:!1}).w,g=u.boundingBox({includeLabels:!0,includeNodes:!1}).h,p=u.css("text-halign");r.labelWidth=f,r.labelHeight=g,r.labelPos=p}this.idToLNode[u.data("id")]=r,isNaN(r.rect.x)&&(r.rect.x=0),isNaN(r.rect.y)&&(r.rect.y=0),null!=d&&d.length>0&&(o=n.getGraphManager().add(n.newGraph(),r),this.processChildrenList(o,d,n))}},h.prototype.stop=function(){return this.stopped=!0,this};var g=function(t){t("layout","cose-bilkent",h)};typeof cytoscape<"u"&&g(cytoscape),t.exports=g}])},t.exports=n(Eq())}({get exports(){return vq},set exports(t){vq=t}});const Cq=r(vq);function Sq(t,e,n,i){gq.drawNode(t,e,n,i),e.children&&e.children.forEach(((e,a)=>{Sq(t,e,n<0?a:n,i)}))}function Tq(t,e){e.edges().map(((e,n)=>{const i=e.data();if(e[0]._private.bodyBounds){const a=e[0]._private.rscratch;d.trace("Edge: ",n,i),t.insert("path").attr("d",`M ${a.startX},${a.startY} L ${a.midX},${a.midY} L${a.endX},${a.endY} `).attr("class","edge section-edge-"+i.section+" edge-depth-"+i.depth)}}))}function Aq(t,e,n,i){e.add({group:"nodes",data:{id:t.id,labelText:t.descr,height:t.height,width:t.width,level:i,nodeId:t.id,padding:t.padding,type:t.type},position:{x:t.x,y:t.y}}),t.children&&t.children.forEach((a=>{Aq(a,e,n,i+1),e.add({group:"edges",data:{id:`${t.id}_${a.id}`,source:t.id,target:a.id,depth:i,section:a.section}})}))}function Dq(t,e){return new Promise((n=>{const i=un("body").append("div").attr("id","cy").attr("style","display:none"),a=bq({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});i.remove(),Aq(t,a,e,0),a.nodes().forEach((function(t){t.layoutDimensions=()=>{const e=t.data();return{w:e.width,h:e.height}}})),a.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),a.ready((t=>{d.info("Ready",t),n(a)}))}))}function Iq(t){t.nodes().map(((t,e)=>{const n=t.data();n.x=t.position().x,n.y=t.position().y,gq.positionNode(n);const i=nq(n.nodeId);d.info("Id:",e,"Position: (",t.position().x,", ",t.position().y,")",n),i.attr("transform",`translate(${t.position().x-n.width/2}, ${t.position().y-n.height/2})`),i.attr("attr",`apa-${e})`)}))}bq.use(Cq);const Lq={draw:async(t,e,n,i)=>{const a=Ry();i.db.clear(),i.parser.parse(t),d.debug("Renering info diagram\n"+t);const r=Ry().securityLevel;let o;"sandbox"===r&&(o=un("#i"+e));const s=un("sandbox"===r?o.nodes()[0].contentDocument.body:"body").select("#"+e);s.append("g");const c=i.db.getMindmap(),l=s.append("g");l.attr("class","mindmap-edges");const u=s.append("g");u.attr("class","mindmap-nodes"),Sq(u,c,-1,a);const h=await Dq(c,a);Tq(l,h),Iq(h),Oy(void 0,s,a.mindmap.padding,a.mindmap.useMaxWidth)}},Oq=t=>{let e="";for(let n=0;n<t.THEME_COLOR_LIMIT;n++)t["lineColor"+n]=t["lineColor"+n]||t["cScaleInv"+n],xh(t["lineColor"+n])?t["lineColor"+n]=_h(t["lineColor"+n],20):t["lineColor"+n]=kh(t["lineColor"+n],20);for(let n=0;n<t.THEME_COLOR_LIMIT;n++){const i=""+(17-3*n);e+=`\n .section-${n-1} rect, .section-${n-1} path, .section-${n-1} circle, .section-${n-1} polygon, .section-${n-1} path {\n fill: ${t["cScale"+n]};\n }\n .section-${n-1} text {\n fill: ${t["cScaleLabel"+n]};\n }\n .node-icon-${n-1} {\n font-size: 40px;\n color: ${t["cScaleLabel"+n]};\n }\n .section-edge-${n-1}{\n stroke: ${t["cScale"+n]};\n }\n .edge-depth-${n-1}{\n stroke-width: ${i};\n }\n .section-${n-1} line {\n stroke: ${t["cScaleInv"+n]} ;\n stroke-width: 3;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n `}return e},Mq=Object.freeze(Object.defineProperty({__proto__:null,diagram:{db:iq,renderer:Lq,parser:FV,styles:t=>`\n .edge {\n stroke-width: 3;\n }\n ${Oq(t)}\n .section-root rect, .section-root path, .section-root circle, .section-root polygon {\n fill: ${t.git0};\n }\n .section-root text {\n fill: ${t.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n`}},Symbol.toStringTag,{value:"Module"}));return SU}()},94668:(t,e,n)=>{"use strict";const i=n(1597),a=/^[\da-fA-F]+$/,r=/^\d+$/,o=new WeakMap;function s(t){t=t.Parser.acorn||t;let e=o.get(t);if(!e){const n=t.tokTypes,i=t.TokContext,a=t.TokenType,r=new i("<tag",!1),s=new i("</tag",!1),c=new i("<tag>...</tag>",!0,!0),l={tc_oTag:r,tc_cTag:s,tc_expr:c},u={jsxName:new a("jsxName"),jsxText:new a("jsxText",{beforeExpr:!0}),jsxTagStart:new a("jsxTagStart",{startsExpr:!0}),jsxTagEnd:new a("jsxTagEnd")};u.jsxTagStart.updateContext=function(){this.context.push(c),this.context.push(r),this.exprAllowed=!1},u.jsxTagEnd.updateContext=function(t){let e=this.context.pop();e===r&&t===n.slash||e===s?(this.context.pop(),this.exprAllowed=this.curContext()===c):this.exprAllowed=!0},e={tokContexts:l,tokTypes:u},o.set(t,e)}return e}function c(t){return t?"JSXIdentifier"===t.type?t.name:"JSXNamespacedName"===t.type?t.namespace.name+":"+t.name.name:"JSXMemberExpression"===t.type?c(t.object)+"."+c(t.property):void 0:t}t.exports=function(t){return t=t||{},function(e){return function(t,e){const o=e.acorn||n(22030),l=s(o),u=o.tokTypes,d=l.tokTypes,h=o.tokContexts,f=l.tokContexts.tc_oTag,g=l.tokContexts.tc_cTag,p=l.tokContexts.tc_expr,b=o.isNewLine,m=o.isIdentifierStart,y=o.isIdentifierChar;return class extends e{static get acornJsx(){return l}jsx_readToken(){let t="",e=this.pos;for(;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated JSX contents");let n=this.input.charCodeAt(this.pos);switch(n){case 60:case 123:return this.pos===this.start?60===n&&this.exprAllowed?(++this.pos,this.finishToken(d.jsxTagStart)):this.getTokenFromCode(n):(t+=this.input.slice(e,this.pos),this.finishToken(d.jsxText,t));case 38:t+=this.input.slice(e,this.pos),t+=this.jsx_readEntity(),e=this.pos;break;case 62:case 125:this.raise(this.pos,"Unexpected token `"+this.input[this.pos]+"`. Did you mean `"+(62===n?">":"}")+'` or `{"'+this.input[this.pos]+'"}`?');default:b(n)?(t+=this.input.slice(e,this.pos),t+=this.jsx_readNewLine(!0),e=this.pos):++this.pos}}}jsx_readNewLine(t){let e,n=this.input.charCodeAt(this.pos);return++this.pos,13===n&&10===this.input.charCodeAt(this.pos)?(++this.pos,e=t?"\n":"\r\n"):e=String.fromCharCode(n),this.options.locations&&(++this.curLine,this.lineStart=this.pos),e}jsx_readString(t){let e="",n=++this.pos;for(;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");let i=this.input.charCodeAt(this.pos);if(i===t)break;38===i?(e+=this.input.slice(n,this.pos),e+=this.jsx_readEntity(),n=this.pos):b(i)?(e+=this.input.slice(n,this.pos),e+=this.jsx_readNewLine(!1),n=this.pos):++this.pos}return e+=this.input.slice(n,this.pos++),this.finishToken(u.string,e)}jsx_readEntity(){let t,e="",n=0,o=this.input[this.pos];"&"!==o&&this.raise(this.pos,"Entity must start with an ampersand");let s=++this.pos;for(;this.pos<this.input.length&&n++<10;){if(o=this.input[this.pos++],";"===o){"#"===e[0]?"x"===e[1]?(e=e.substr(2),a.test(e)&&(t=String.fromCharCode(parseInt(e,16)))):(e=e.substr(1),r.test(e)&&(t=String.fromCharCode(parseInt(e,10)))):t=i[e];break}e+=o}return t||(this.pos=s,"&")}jsx_readWord(){let t,e=this.pos;do{t=this.input.charCodeAt(++this.pos)}while(y(t)||45===t);return this.finishToken(d.jsxName,this.input.slice(e,this.pos))}jsx_parseIdentifier(){let t=this.startNode();return this.type===d.jsxName?t.name=this.value:this.type.keyword?t.name=this.type.keyword:this.unexpected(),this.next(),this.finishNode(t,"JSXIdentifier")}jsx_parseNamespacedName(){let e=this.start,n=this.startLoc,i=this.jsx_parseIdentifier();if(!t.allowNamespaces||!this.eat(u.colon))return i;var a=this.startNodeAt(e,n);return a.namespace=i,a.name=this.jsx_parseIdentifier(),this.finishNode(a,"JSXNamespacedName")}jsx_parseElementName(){if(this.type===d.jsxTagEnd)return"";let e=this.start,n=this.startLoc,i=this.jsx_parseNamespacedName();for(this.type!==u.dot||"JSXNamespacedName"!==i.type||t.allowNamespacedObjects||this.unexpected();this.eat(u.dot);){let t=this.startNodeAt(e,n);t.object=i,t.property=this.jsx_parseIdentifier(),i=this.finishNode(t,"JSXMemberExpression")}return i}jsx_parseAttributeValue(){switch(this.type){case u.braceL:let t=this.jsx_parseExpressionContainer();return"JSXEmptyExpression"===t.expression.type&&this.raise(t.start,"JSX attributes must only be assigned a non-empty expression"),t;case d.jsxTagStart:case u.string:return this.parseExprAtom();default:this.raise(this.start,"JSX value should be either an expression or a quoted JSX text")}}jsx_parseEmptyExpression(){let t=this.startNodeAt(this.lastTokEnd,this.lastTokEndLoc);return this.finishNodeAt(t,"JSXEmptyExpression",this.start,this.startLoc)}jsx_parseExpressionContainer(){let t=this.startNode();return this.next(),t.expression=this.type===u.braceR?this.jsx_parseEmptyExpression():this.parseExpression(),this.expect(u.braceR),this.finishNode(t,"JSXExpressionContainer")}jsx_parseAttribute(){let t=this.startNode();return this.eat(u.braceL)?(this.expect(u.ellipsis),t.argument=this.parseMaybeAssign(),this.expect(u.braceR),this.finishNode(t,"JSXSpreadAttribute")):(t.name=this.jsx_parseNamespacedName(),t.value=this.eat(u.eq)?this.jsx_parseAttributeValue():null,this.finishNode(t,"JSXAttribute"))}jsx_parseOpeningElementAt(t,e){let n=this.startNodeAt(t,e);n.attributes=[];let i=this.jsx_parseElementName();for(i&&(n.name=i);this.type!==u.slash&&this.type!==d.jsxTagEnd;)n.attributes.push(this.jsx_parseAttribute());return n.selfClosing=this.eat(u.slash),this.expect(d.jsxTagEnd),this.finishNode(n,i?"JSXOpeningElement":"JSXOpeningFragment")}jsx_parseClosingElementAt(t,e){let n=this.startNodeAt(t,e),i=this.jsx_parseElementName();return i&&(n.name=i),this.expect(d.jsxTagEnd),this.finishNode(n,i?"JSXClosingElement":"JSXClosingFragment")}jsx_parseElementAt(t,e){let n=this.startNodeAt(t,e),i=[],a=this.jsx_parseOpeningElementAt(t,e),r=null;if(!a.selfClosing){t:for(;;)switch(this.type){case d.jsxTagStart:if(t=this.start,e=this.startLoc,this.next(),this.eat(u.slash)){r=this.jsx_parseClosingElementAt(t,e);break t}i.push(this.jsx_parseElementAt(t,e));break;case d.jsxText:i.push(this.parseExprAtom());break;case u.braceL:i.push(this.jsx_parseExpressionContainer());break;default:this.unexpected()}c(r.name)!==c(a.name)&&this.raise(r.start,"Expected corresponding JSX closing tag for <"+c(a.name)+">")}let o=a.name?"Element":"Fragment";return n["opening"+o]=a,n["closing"+o]=r,n.children=i,this.type===u.relational&&"<"===this.value&&this.raise(this.start,"Adjacent JSX elements must be wrapped in an enclosing tag"),this.finishNode(n,"JSX"+o)}jsx_parseText(){let t=this.parseLiteral(this.value);return t.type="JSXText",t}jsx_parseElement(){let t=this.start,e=this.startLoc;return this.next(),this.jsx_parseElementAt(t,e)}parseExprAtom(t){return this.type===d.jsxText?this.jsx_parseText():this.type===d.jsxTagStart?this.jsx_parseElement():super.parseExprAtom(t)}readToken(t){let e=this.curContext();if(e===p)return this.jsx_readToken();if(e===f||e===g){if(m(t))return this.jsx_readWord();if(62==t)return++this.pos,this.finishToken(d.jsxTagEnd);if((34===t||39===t)&&e==f)return this.jsx_readString(t)}return 60===t&&this.exprAllowed&&33!==this.input.charCodeAt(this.pos+1)?(++this.pos,this.finishToken(d.jsxTagStart)):super.readToken(t)}updateContext(t){if(this.type==u.braceL){var e=this.curContext();e==f?this.context.push(h.b_expr):e==p?this.context.push(h.b_tmpl):super.updateContext(t),this.exprAllowed=!0}else{if(this.type!==u.slash||t!==d.jsxTagStart)return super.updateContext(t);this.context.length-=2,this.context.push(g),this.exprAllowed=!1}}}}({allowNamespaces:!1!==t.allowNamespaces,allowNamespacedObjects:!!t.allowNamespacedObjects},e)}},Object.defineProperty(t.exports,"tokTypes",{get:function(){return s(n(22030)).tokTypes},configurable:!0,enumerable:!0})},1597:t=>{t.exports={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:"\xa0",iexcl:"\xa1",cent:"\xa2",pound:"\xa3",curren:"\xa4",yen:"\xa5",brvbar:"\xa6",sect:"\xa7",uml:"\xa8",copy:"\xa9",ordf:"\xaa",laquo:"\xab",not:"\xac",shy:"\xad",reg:"\xae",macr:"\xaf",deg:"\xb0",plusmn:"\xb1",sup2:"\xb2",sup3:"\xb3",acute:"\xb4",micro:"\xb5",para:"\xb6",middot:"\xb7",cedil:"\xb8",sup1:"\xb9",ordm:"\xba",raquo:"\xbb",frac14:"\xbc",frac12:"\xbd",frac34:"\xbe",iquest:"\xbf",Agrave:"\xc0",Aacute:"\xc1",Acirc:"\xc2",Atilde:"\xc3",Auml:"\xc4",Aring:"\xc5",AElig:"\xc6",Ccedil:"\xc7",Egrave:"\xc8",Eacute:"\xc9",Ecirc:"\xca",Euml:"\xcb",Igrave:"\xcc",Iacute:"\xcd",Icirc:"\xce",Iuml:"\xcf",ETH:"\xd0",Ntilde:"\xd1",Ograve:"\xd2",Oacute:"\xd3",Ocirc:"\xd4",Otilde:"\xd5",Ouml:"\xd6",times:"\xd7",Oslash:"\xd8",Ugrave:"\xd9",Uacute:"\xda",Ucirc:"\xdb",Uuml:"\xdc",Yacute:"\xdd",THORN:"\xde",szlig:"\xdf",agrave:"\xe0",aacute:"\xe1",acirc:"\xe2",atilde:"\xe3",auml:"\xe4",aring:"\xe5",aelig:"\xe6",ccedil:"\xe7",egrave:"\xe8",eacute:"\xe9",ecirc:"\xea",euml:"\xeb",igrave:"\xec",iacute:"\xed",icirc:"\xee",iuml:"\xef",eth:"\xf0",ntilde:"\xf1",ograve:"\xf2",oacute:"\xf3",ocirc:"\xf4",otilde:"\xf5",ouml:"\xf6",divide:"\xf7",oslash:"\xf8",ugrave:"\xf9",uacute:"\xfa",ucirc:"\xfb",uuml:"\xfc",yacute:"\xfd",thorn:"\xfe",yuml:"\xff",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02c6",tilde:"\u02dc",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039a",Lambda:"\u039b",Mu:"\u039c",Nu:"\u039d",Xi:"\u039e",Omicron:"\u039f",Pi:"\u03a0",Rho:"\u03a1",Sigma:"\u03a3",Tau:"\u03a4",Upsilon:"\u03a5",Phi:"\u03a6",Chi:"\u03a7",Psi:"\u03a8",Omega:"\u03a9",alpha:"\u03b1",beta:"\u03b2",gamma:"\u03b3",delta:"\u03b4",epsilon:"\u03b5",zeta:"\u03b6",eta:"\u03b7",theta:"\u03b8",iota:"\u03b9",kappa:"\u03ba",lambda:"\u03bb",mu:"\u03bc",nu:"\u03bd",xi:"\u03be",omicron:"\u03bf",pi:"\u03c0",rho:"\u03c1",sigmaf:"\u03c2",sigma:"\u03c3",tau:"\u03c4",upsilon:"\u03c5",phi:"\u03c6",chi:"\u03c7",psi:"\u03c8",omega:"\u03c9",thetasym:"\u03d1",upsih:"\u03d2",piv:"\u03d6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200c",zwj:"\u200d",lrm:"\u200e",rlm:"\u200f",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201a",ldquo:"\u201c",rdquo:"\u201d",bdquo:"\u201e",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203a",oline:"\u203e",frasl:"\u2044",euro:"\u20ac",image:"\u2111",weierp:"\u2118",real:"\u211c",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21b5",lArr:"\u21d0",uArr:"\u21d1",rArr:"\u21d2",dArr:"\u21d3",hArr:"\u21d4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220b",prod:"\u220f",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221a",prop:"\u221d",infin:"\u221e",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222a",int:"\u222b",there4:"\u2234",sim:"\u223c",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22a5",sdot:"\u22c5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230a",rfloor:"\u230b",lang:"\u2329",rang:"\u232a",loz:"\u25ca",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666"}},22030:function(t,e){!function(t){"use strict";var e=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,81,2,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,9,5351,0,7,14,13835,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,983,6,110,6,6,9,4759,9,787719,239],n=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,4026,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,757,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,3104,541,1507,4938,6,4191],i="\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f",a="\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\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\u0af9\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-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\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={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},o="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",s={5:o,"5module":o+" export import",6:o+" const class extends export import super"},c=/^in(stanceof)?$/,l=new RegExp("["+a+"]"),u=new RegExp("["+a+i+"]");function d(t,e){for(var n=65536,i=0;i<e.length;i+=2){if((n+=e[i])>t)return!1;if((n+=e[i+1])>=t)return!0}return!1}function h(t,e){return t<65?36===t:t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&l.test(String.fromCharCode(t)):!1!==e&&d(t,n)))}function f(t,i){return t<48?36===t:t<58||!(t<65)&&(t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&u.test(String.fromCharCode(t)):!1!==i&&(d(t,n)||d(t,e)))))}var g=function(t,e){void 0===e&&(e={}),this.label=t,this.keyword=e.keyword,this.beforeExpr=!!e.beforeExpr,this.startsExpr=!!e.startsExpr,this.isLoop=!!e.isLoop,this.isAssign=!!e.isAssign,this.prefix=!!e.prefix,this.postfix=!!e.postfix,this.binop=e.binop||null,this.updateContext=null};function p(t,e){return new g(t,{beforeExpr:!0,binop:e})}var b={beforeExpr:!0},m={startsExpr:!0},y={};function v(t,e){return void 0===e&&(e={}),e.keyword=t,y[t]=new g(t,e)}var w={num:new g("num",m),regexp:new g("regexp",m),string:new g("string",m),name:new g("name",m),privateId:new g("privateId",m),eof:new g("eof"),bracketL:new g("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new g("]"),braceL:new g("{",{beforeExpr:!0,startsExpr:!0}),braceR:new g("}"),parenL:new g("(",{beforeExpr:!0,startsExpr:!0}),parenR:new g(")"),comma:new g(",",b),semi:new g(";",b),colon:new g(":",b),dot:new g("."),question:new g("?",b),questionDot:new g("?."),arrow:new g("=>",b),template:new g("template"),invalidTemplate:new g("invalidTemplate"),ellipsis:new g("...",b),backQuote:new g("`",m),dollarBraceL:new g("${",{beforeExpr:!0,startsExpr:!0}),eq:new g("=",{beforeExpr:!0,isAssign:!0}),assign:new g("_=",{beforeExpr:!0,isAssign:!0}),incDec:new g("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new g("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:p("||",1),logicalAND:p("&&",2),bitwiseOR:p("|",3),bitwiseXOR:p("^",4),bitwiseAND:p("&",5),equality:p("==/!=/===/!==",6),relational:p("</>/<=/>=",7),bitShift:p("<</>>/>>>",8),plusMin:new g("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:p("%",10),star:p("*",10),slash:p("/",10),starstar:new g("**",{beforeExpr:!0}),coalesce:p("??",1),_break:v("break"),_case:v("case",b),_catch:v("catch"),_continue:v("continue"),_debugger:v("debugger"),_default:v("default",b),_do:v("do",{isLoop:!0,beforeExpr:!0}),_else:v("else",b),_finally:v("finally"),_for:v("for",{isLoop:!0}),_function:v("function",m),_if:v("if"),_return:v("return",b),_switch:v("switch"),_throw:v("throw",b),_try:v("try"),_var:v("var"),_const:v("const"),_while:v("while",{isLoop:!0}),_with:v("with"),_new:v("new",{beforeExpr:!0,startsExpr:!0}),_this:v("this",m),_super:v("super",m),_class:v("class",m),_extends:v("extends",b),_export:v("export"),_import:v("import",m),_null:v("null",m),_true:v("true",m),_false:v("false",m),_in:v("in",{beforeExpr:!0,binop:7}),_instanceof:v("instanceof",{beforeExpr:!0,binop:7}),_typeof:v("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:v("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:v("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},x=/\r\n?|\n|\u2028|\u2029/,R=new RegExp(x.source,"g");function _(t){return 10===t||13===t||8232===t||8233===t}function k(t,e,n){void 0===n&&(n=t.length);for(var i=e;i<n;i++){var a=t.charCodeAt(i);if(_(a))return i<n-1&&13===a&&10===t.charCodeAt(i+1)?i+2:i+1}return-1}var E=/[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/,C=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,S=Object.prototype,T=S.hasOwnProperty,A=S.toString,D=Object.hasOwn||function(t,e){return T.call(t,e)},I=Array.isArray||function(t){return"[object Array]"===A.call(t)};function L(t){return new RegExp("^(?:"+t.replace(/ /g,"|")+")$")}function O(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))}var M=/(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/,N=function(t,e){this.line=t,this.column=e};N.prototype.offset=function(t){return new N(this.line,this.column+t)};var B=function(t,e,n){this.start=e,this.end=n,null!==t.sourceFile&&(this.source=t.sourceFile)};function P(t,e){for(var n=1,i=0;;){var a=k(t,i,e);if(a<0)return new N(n,e-i);++n,i=a}}var F={ecmaVersion:null,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:null,allowSuperOutsideMethod:null,allowHashBang:!1,checkPrivateFields:!0,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},j=!1;function $(t){var e={};for(var n in F)e[n]=t&&D(t,n)?t[n]:F[n];if("latest"===e.ecmaVersion?e.ecmaVersion=1e8:null==e.ecmaVersion?(!j&&"object"==typeof console&&console.warn&&(j=!0,console.warn("Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future.")),e.ecmaVersion=11):e.ecmaVersion>=2015&&(e.ecmaVersion-=2009),null==e.allowReserved&&(e.allowReserved=e.ecmaVersion<5),t&&null!=t.allowHashBang||(e.allowHashBang=e.ecmaVersion>=14),I(e.onToken)){var i=e.onToken;e.onToken=function(t){return i.push(t)}}return I(e.onComment)&&(e.onComment=z(e,e.onComment)),e}function z(t,e){return function(n,i,a,r,o,s){var c={type:n?"Block":"Line",value:i,start:a,end:r};t.locations&&(c.loc=new B(this,o,s)),t.ranges&&(c.range=[a,r]),e.push(c)}}var H=1,U=2,V=4,q=8,W=16,Y=32,G=64,Z=128,K=256,X=H|U|K;function J(t,e){return U|(t?V:0)|(e?q:0)}var Q=0,tt=1,et=2,nt=3,it=4,at=5,rt=function(t,e,n){this.options=t=$(t),this.sourceFile=t.sourceFile,this.keywords=L(s[t.ecmaVersion>=6?6:"module"===t.sourceType?"5module":5]);var i="";!0!==t.allowReserved&&(i=r[t.ecmaVersion>=6?6:5===t.ecmaVersion?5:3],"module"===t.sourceType&&(i+=" await")),this.reservedWords=L(i);var a=(i?i+" ":"")+r.strict;this.reservedWordsStrict=L(a),this.reservedWordsStrictBind=L(a+" "+r.strictBind),this.input=String(e),this.containsEsc=!1,n?(this.pos=n,this.lineStart=this.input.lastIndexOf("\n",n-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(x).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=w.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===t.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),0===this.pos&&t.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(H),this.regexpState=null,this.privateNameStack=[]},ot={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},inClassStaticBlock:{configurable:!0}};rt.prototype.parse=function(){var t=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(t)},ot.inFunction.get=function(){return(this.currentVarScope().flags&U)>0},ot.inGenerator.get=function(){return(this.currentVarScope().flags&q)>0&&!this.currentVarScope().inClassFieldInit},ot.inAsync.get=function(){return(this.currentVarScope().flags&V)>0&&!this.currentVarScope().inClassFieldInit},ot.canAwait.get=function(){for(var t=this.scopeStack.length-1;t>=0;t--){var e=this.scopeStack[t];if(e.inClassFieldInit||e.flags&K)return!1;if(e.flags&U)return(e.flags&V)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction},ot.allowSuper.get=function(){var t=this.currentThisScope(),e=t.flags,n=t.inClassFieldInit;return(e&G)>0||n||this.options.allowSuperOutsideMethod},ot.allowDirectSuper.get=function(){return(this.currentThisScope().flags&Z)>0},ot.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},ot.allowNewDotTarget.get=function(){var t=this.currentThisScope(),e=t.flags,n=t.inClassFieldInit;return(e&(U|K))>0||n},ot.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&K)>0},rt.extend=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];for(var n=this,i=0;i<t.length;i++)n=t[i](n);return n},rt.parse=function(t,e){return new this(e,t).parse()},rt.parseExpressionAt=function(t,e,n){var i=new this(n,t,e);return i.nextToken(),i.parseExpression()},rt.tokenizer=function(t,e){return new this(e,t)},Object.defineProperties(rt.prototype,ot);var st=rt.prototype,ct=/^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/;st.strictDirective=function(t){if(this.options.ecmaVersion<5)return!1;for(;;){C.lastIndex=t,t+=C.exec(this.input)[0].length;var e=ct.exec(this.input.slice(t));if(!e)return!1;if("use strict"===(e[1]||e[2])){C.lastIndex=t+e[0].length;var n=C.exec(this.input),i=n.index+n[0].length,a=this.input.charAt(i);return";"===a||"}"===a||x.test(n[0])&&!(/[(`.[+\-/*%<>=,?^&]/.test(a)||"!"===a&&"="===this.input.charAt(i+1))}t+=e[0].length,C.lastIndex=t,t+=C.exec(this.input)[0].length,";"===this.input[t]&&t++}},st.eat=function(t){return this.type===t&&(this.next(),!0)},st.isContextual=function(t){return this.type===w.name&&this.value===t&&!this.containsEsc},st.eatContextual=function(t){return!!this.isContextual(t)&&(this.next(),!0)},st.expectContextual=function(t){this.eatContextual(t)||this.unexpected()},st.canInsertSemicolon=function(){return this.type===w.eof||this.type===w.braceR||x.test(this.input.slice(this.lastTokEnd,this.start))},st.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},st.semicolon=function(){this.eat(w.semi)||this.insertSemicolon()||this.unexpected()},st.afterTrailingComma=function(t,e){if(this.type===t)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),e||this.next(),!0},st.expect=function(t){this.eat(t)||this.unexpected()},st.unexpected=function(t){this.raise(null!=t?t:this.start,"Unexpected token")};var lt=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};st.checkPatternErrors=function(t,e){if(t){t.trailingComma>-1&&this.raiseRecoverable(t.trailingComma,"Comma is not permitted after the rest element");var n=e?t.parenthesizedAssign:t.parenthesizedBind;n>-1&&this.raiseRecoverable(n,e?"Assigning to rvalue":"Parenthesized pattern")}},st.checkExpressionErrors=function(t,e){if(!t)return!1;var n=t.shorthandAssign,i=t.doubleProto;if(!e)return n>=0||i>=0;n>=0&&this.raise(n,"Shorthand property assignments are valid only in destructuring patterns"),i>=0&&this.raiseRecoverable(i,"Redefinition of __proto__ property")},st.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,"Yield expression cannot be a default value"),this.awaitPos&&this.raise(this.awaitPos,"Await expression cannot be a default value")},st.isSimpleAssignTarget=function(t){return"ParenthesizedExpression"===t.type?this.isSimpleAssignTarget(t.expression):"Identifier"===t.type||"MemberExpression"===t.type};var ut=rt.prototype;ut.parseTopLevel=function(t){var e=Object.create(null);for(t.body||(t.body=[]);this.type!==w.eof;){var n=this.parseStatement(null,!0,e);t.body.push(n)}if(this.inModule)for(var i=0,a=Object.keys(this.undefinedExports);i<a.length;i+=1){var r=a[i];this.raiseRecoverable(this.undefinedExports[r].start,"Export '"+r+"' is not defined")}return this.adaptDirectivePrologue(t.body),this.next(),t.sourceType=this.options.sourceType,this.finishNode(t,"Program")};var dt={kind:"loop"},ht={kind:"switch"};ut.isLet=function(t){if(this.options.ecmaVersion<6||!this.isContextual("let"))return!1;C.lastIndex=this.pos;var e=C.exec(this.input),n=this.pos+e[0].length,i=this.input.charCodeAt(n);if(91===i||92===i)return!0;if(t)return!1;if(123===i||i>55295&&i<56320)return!0;if(h(i,!0)){for(var a=n+1;f(i=this.input.charCodeAt(a),!0);)++a;if(92===i||i>55295&&i<56320)return!0;var r=this.input.slice(n,a);if(!c.test(r))return!0}return!1},ut.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;C.lastIndex=this.pos;var t,e=C.exec(this.input),n=this.pos+e[0].length;return!(x.test(this.input.slice(this.pos,n))||"function"!==this.input.slice(n,n+8)||n+8!==this.input.length&&(f(t=this.input.charCodeAt(n+8))||t>55295&&t<56320))},ut.parseStatement=function(t,e,n){var i,a=this.type,r=this.startNode();switch(this.isLet(t)&&(a=w._var,i="let"),a){case w._break:case w._continue:return this.parseBreakContinueStatement(r,a.keyword);case w._debugger:return this.parseDebuggerStatement(r);case w._do:return this.parseDoStatement(r);case w._for:return this.parseForStatement(r);case w._function:return t&&(this.strict||"if"!==t&&"label"!==t)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(r,!1,!t);case w._class:return t&&this.unexpected(),this.parseClass(r,!0);case w._if:return this.parseIfStatement(r);case w._return:return this.parseReturnStatement(r);case w._switch:return this.parseSwitchStatement(r);case w._throw:return this.parseThrowStatement(r);case w._try:return this.parseTryStatement(r);case w._const:case w._var:return i=i||this.value,t&&"var"!==i&&this.unexpected(),this.parseVarStatement(r,i);case w._while:return this.parseWhileStatement(r);case w._with:return this.parseWithStatement(r);case w.braceL:return this.parseBlock(!0,r);case w.semi:return this.parseEmptyStatement(r);case w._export:case w._import:if(this.options.ecmaVersion>10&&a===w._import){C.lastIndex=this.pos;var o=C.exec(this.input),s=this.pos+o[0].length,c=this.input.charCodeAt(s);if(40===c||46===c)return this.parseExpressionStatement(r,this.parseExpression())}return this.options.allowImportExportEverywhere||(e||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),a===w._import?this.parseImport(r):this.parseExport(r,n);default:if(this.isAsyncFunction())return t&&this.unexpected(),this.next(),this.parseFunctionStatement(r,!0,!t);var l=this.value,u=this.parseExpression();return a===w.name&&"Identifier"===u.type&&this.eat(w.colon)?this.parseLabeledStatement(r,l,u,t):this.parseExpressionStatement(r,u)}},ut.parseBreakContinueStatement=function(t,e){var n="break"===e;this.next(),this.eat(w.semi)||this.insertSemicolon()?t.label=null:this.type!==w.name?this.unexpected():(t.label=this.parseIdent(),this.semicolon());for(var i=0;i<this.labels.length;++i){var a=this.labels[i];if(null==t.label||a.name===t.label.name){if(null!=a.kind&&(n||"loop"===a.kind))break;if(t.label&&n)break}}return i===this.labels.length&&this.raise(t.start,"Unsyntactic "+e),this.finishNode(t,n?"BreakStatement":"ContinueStatement")},ut.parseDebuggerStatement=function(t){return this.next(),this.semicolon(),this.finishNode(t,"DebuggerStatement")},ut.parseDoStatement=function(t){return this.next(),this.labels.push(dt),t.body=this.parseStatement("do"),this.labels.pop(),this.expect(w._while),t.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(w.semi):this.semicolon(),this.finishNode(t,"DoWhileStatement")},ut.parseForStatement=function(t){this.next();var e=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(dt),this.enterScope(0),this.expect(w.parenL),this.type===w.semi)return e>-1&&this.unexpected(e),this.parseFor(t,null);var n=this.isLet();if(this.type===w._var||this.type===w._const||n){var i=this.startNode(),a=n?"let":this.value;return this.next(),this.parseVar(i,!0,a),this.finishNode(i,"VariableDeclaration"),(this.type===w._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&1===i.declarations.length?(this.options.ecmaVersion>=9&&(this.type===w._in?e>-1&&this.unexpected(e):t.await=e>-1),this.parseForIn(t,i)):(e>-1&&this.unexpected(e),this.parseFor(t,i))}var r=this.isContextual("let"),o=!1,s=new lt,c=this.parseExpression(!(e>-1)||"await",s);return this.type===w._in||(o=this.options.ecmaVersion>=6&&this.isContextual("of"))?(this.options.ecmaVersion>=9&&(this.type===w._in?e>-1&&this.unexpected(e):t.await=e>-1),r&&o&&this.raise(c.start,"The left-hand side of a for-of loop may not start with 'let'."),this.toAssignable(c,!1,s),this.checkLValPattern(c),this.parseForIn(t,c)):(this.checkExpressionErrors(s,!0),e>-1&&this.unexpected(e),this.parseFor(t,c))},ut.parseFunctionStatement=function(t,e,n){return this.next(),this.parseFunction(t,gt|(n?0:pt),!1,e)},ut.parseIfStatement=function(t){return this.next(),t.test=this.parseParenExpression(),t.consequent=this.parseStatement("if"),t.alternate=this.eat(w._else)?this.parseStatement("if"):null,this.finishNode(t,"IfStatement")},ut.parseReturnStatement=function(t){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(w.semi)||this.insertSemicolon()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,"ReturnStatement")},ut.parseSwitchStatement=function(t){var e;this.next(),t.discriminant=this.parseParenExpression(),t.cases=[],this.expect(w.braceL),this.labels.push(ht),this.enterScope(0);for(var n=!1;this.type!==w.braceR;)if(this.type===w._case||this.type===w._default){var i=this.type===w._case;e&&this.finishNode(e,"SwitchCase"),t.cases.push(e=this.startNode()),e.consequent=[],this.next(),i?e.test=this.parseExpression():(n&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),n=!0,e.test=null),this.expect(w.colon)}else e||this.unexpected(),e.consequent.push(this.parseStatement(null));return this.exitScope(),e&&this.finishNode(e,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(t,"SwitchStatement")},ut.parseThrowStatement=function(t){return this.next(),x.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,"ThrowStatement")};var ft=[];ut.parseCatchClauseParam=function(){var t=this.parseBindingAtom(),e="Identifier"===t.type;return this.enterScope(e?Y:0),this.checkLValPattern(t,e?it:et),this.expect(w.parenR),t},ut.parseTryStatement=function(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.type===w._catch){var e=this.startNode();this.next(),this.eat(w.parenL)?e.param=this.parseCatchClauseParam():(this.options.ecmaVersion<10&&this.unexpected(),e.param=null,this.enterScope(0)),e.body=this.parseBlock(!1),this.exitScope(),t.handler=this.finishNode(e,"CatchClause")}return t.finalizer=this.eat(w._finally)?this.parseBlock():null,t.handler||t.finalizer||this.raise(t.start,"Missing catch or finally clause"),this.finishNode(t,"TryStatement")},ut.parseVarStatement=function(t,e,n){return this.next(),this.parseVar(t,!1,e,n),this.semicolon(),this.finishNode(t,"VariableDeclaration")},ut.parseWhileStatement=function(t){return this.next(),t.test=this.parseParenExpression(),this.labels.push(dt),t.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(t,"WhileStatement")},ut.parseWithStatement=function(t){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),t.object=this.parseParenExpression(),t.body=this.parseStatement("with"),this.finishNode(t,"WithStatement")},ut.parseEmptyStatement=function(t){return this.next(),this.finishNode(t,"EmptyStatement")},ut.parseLabeledStatement=function(t,e,n,i){for(var a=0,r=this.labels;a<r.length;a+=1)r[a].name===e&&this.raise(n.start,"Label '"+e+"' is already declared");for(var o=this.type.isLoop?"loop":this.type===w._switch?"switch":null,s=this.labels.length-1;s>=0;s--){var c=this.labels[s];if(c.statementStart!==t.start)break;c.statementStart=this.start,c.kind=o}return this.labels.push({name:e,kind:o,statementStart:this.start}),t.body=this.parseStatement(i?-1===i.indexOf("label")?i+"label":i:"label"),this.labels.pop(),t.label=n,this.finishNode(t,"LabeledStatement")},ut.parseExpressionStatement=function(t,e){return t.expression=e,this.semicolon(),this.finishNode(t,"ExpressionStatement")},ut.parseBlock=function(t,e,n){for(void 0===t&&(t=!0),void 0===e&&(e=this.startNode()),e.body=[],this.expect(w.braceL),t&&this.enterScope(0);this.type!==w.braceR;){var i=this.parseStatement(null);e.body.push(i)}return n&&(this.strict=!1),this.next(),t&&this.exitScope(),this.finishNode(e,"BlockStatement")},ut.parseFor=function(t,e){return t.init=e,this.expect(w.semi),t.test=this.type===w.semi?null:this.parseExpression(),this.expect(w.semi),t.update=this.type===w.parenR?null:this.parseExpression(),this.expect(w.parenR),t.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(t,"ForStatement")},ut.parseForIn=function(t,e){var n=this.type===w._in;return this.next(),"VariableDeclaration"===e.type&&null!=e.declarations[0].init&&(!n||this.options.ecmaVersion<8||this.strict||"var"!==e.kind||"Identifier"!==e.declarations[0].id.type)&&this.raise(e.start,(n?"for-in":"for-of")+" loop variable declaration may not have an initializer"),t.left=e,t.right=n?this.parseExpression():this.parseMaybeAssign(),this.expect(w.parenR),t.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(t,n?"ForInStatement":"ForOfStatement")},ut.parseVar=function(t,e,n,i){for(t.declarations=[],t.kind=n;;){var a=this.startNode();if(this.parseVarId(a,n),this.eat(w.eq)?a.init=this.parseMaybeAssign(e):i||"const"!==n||this.type===w._in||this.options.ecmaVersion>=6&&this.isContextual("of")?i||"Identifier"===a.id.type||e&&(this.type===w._in||this.isContextual("of"))?a.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),t.declarations.push(this.finishNode(a,"VariableDeclarator")),!this.eat(w.comma))break}return t},ut.parseVarId=function(t,e){t.id=this.parseBindingAtom(),this.checkLValPattern(t.id,"var"===e?tt:et,!1)};var gt=1,pt=2,bt=4;function mt(t,e){var n=e.key.name,i=t[n],a="true";return"MethodDefinition"!==e.type||"get"!==e.kind&&"set"!==e.kind||(a=(e.static?"s":"i")+e.kind),"iget"===i&&"iset"===a||"iset"===i&&"iget"===a||"sget"===i&&"sset"===a||"sset"===i&&"sget"===a?(t[n]="true",!1):!!i||(t[n]=a,!1)}function yt(t,e){var n=t.computed,i=t.key;return!n&&("Identifier"===i.type&&i.name===e||"Literal"===i.type&&i.value===e)}ut.parseFunction=function(t,e,n,i,a){this.initFunction(t),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!i)&&(this.type===w.star&&e&pt&&this.unexpected(),t.generator=this.eat(w.star)),this.options.ecmaVersion>=8&&(t.async=!!i),e>&&(t.id=e&bt&&this.type!==w.name?null:this.parseIdent(),!t.id||e&pt||this.checkLValSimple(t.id,this.strict||t.generator||t.async?this.treatFunctionsAsVar?tt:et:nt));var r=this.yieldPos,o=this.awaitPos,s=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(J(t.async,t.generator)),e>||(t.id=this.type===w.name?this.parseIdent():null),this.parseFunctionParams(t),this.parseFunctionBody(t,n,!1,a),this.yieldPos=r,this.awaitPos=o,this.awaitIdentPos=s,this.finishNode(t,e>?"FunctionDeclaration":"FunctionExpression")},ut.parseFunctionParams=function(t){this.expect(w.parenL),t.params=this.parseBindingList(w.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},ut.parseClass=function(t,e){this.next();var n=this.strict;this.strict=!0,this.parseClassId(t,e),this.parseClassSuper(t);var i=this.enterClassBody(),a=this.startNode(),r=!1;for(a.body=[],this.expect(w.braceL);this.type!==w.braceR;){var o=this.parseClassElement(null!==t.superClass);o&&(a.body.push(o),"MethodDefinition"===o.type&&"constructor"===o.kind?(r&&this.raiseRecoverable(o.start,"Duplicate constructor in the same class"),r=!0):o.key&&"PrivateIdentifier"===o.key.type&&mt(i,o)&&this.raiseRecoverable(o.key.start,"Identifier '#"+o.key.name+"' has already been declared"))}return this.strict=n,this.next(),t.body=this.finishNode(a,"ClassBody"),this.exitClassBody(),this.finishNode(t,e?"ClassDeclaration":"ClassExpression")},ut.parseClassElement=function(t){if(this.eat(w.semi))return null;var e=this.options.ecmaVersion,n=this.startNode(),i="",a=!1,r=!1,o="method",s=!1;if(this.eatContextual("static")){if(e>=13&&this.eat(w.braceL))return this.parseClassStaticBlock(n),n;this.isClassElementNameStart()||this.type===w.star?s=!0:i="static"}if(n.static=s,!i&&e>=8&&this.eatContextual("async")&&(!this.isClassElementNameStart()&&this.type!==w.star||this.canInsertSemicolon()?i="async":r=!0),!i&&(e>=9||!r)&&this.eat(w.star)&&(a=!0),!i&&!r&&!a){var c=this.value;(this.eatContextual("get")||this.eatContextual("set"))&&(this.isClassElementNameStart()?o=c:i=c)}if(i?(n.computed=!1,n.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),n.key.name=i,this.finishNode(n.key,"Identifier")):this.parseClassElementName(n),e<13||this.type===w.parenL||"method"!==o||a||r){var l=!n.static&&yt(n,"constructor"),u=l&&t;l&&"method"!==o&&this.raise(n.key.start,"Constructor can't have get/set modifier"),n.kind=l?"constructor":o,this.parseClassMethod(n,a,r,u)}else this.parseClassField(n);return n},ut.isClassElementNameStart=function(){return this.type===w.name||this.type===w.privateId||this.type===w.num||this.type===w.string||this.type===w.bracketL||this.type.keyword},ut.parseClassElementName=function(t){this.type===w.privateId?("constructor"===this.value&&this.raise(this.start,"Classes can't have an element named '#constructor'"),t.computed=!1,t.key=this.parsePrivateIdent()):this.parsePropertyName(t)},ut.parseClassMethod=function(t,e,n,i){var a=t.key;"constructor"===t.kind?(e&&this.raise(a.start,"Constructor can't be a generator"),n&&this.raise(a.start,"Constructor can't be an async method")):t.static&&yt(t,"prototype")&&this.raise(a.start,"Classes may not have a static property named prototype");var r=t.value=this.parseMethod(e,n,i);return"get"===t.kind&&0!==r.params.length&&this.raiseRecoverable(r.start,"getter should have no params"),"set"===t.kind&&1!==r.params.length&&this.raiseRecoverable(r.start,"setter should have exactly one param"),"set"===t.kind&&"RestElement"===r.params[0].type&&this.raiseRecoverable(r.params[0].start,"Setter cannot use rest params"),this.finishNode(t,"MethodDefinition")},ut.parseClassField=function(t){if(yt(t,"constructor")?this.raise(t.key.start,"Classes can't have a field named 'constructor'"):t.static&&yt(t,"prototype")&&this.raise(t.key.start,"Classes can't have a static field named 'prototype'"),this.eat(w.eq)){var e=this.currentThisScope(),n=e.inClassFieldInit;e.inClassFieldInit=!0,t.value=this.parseMaybeAssign(),e.inClassFieldInit=n}else t.value=null;return this.semicolon(),this.finishNode(t,"PropertyDefinition")},ut.parseClassStaticBlock=function(t){t.body=[];var e=this.labels;for(this.labels=[],this.enterScope(K|G);this.type!==w.braceR;){var n=this.parseStatement(null);t.body.push(n)}return this.next(),this.exitScope(),this.labels=e,this.finishNode(t,"StaticBlock")},ut.parseClassId=function(t,e){this.type===w.name?(t.id=this.parseIdent(),e&&this.checkLValSimple(t.id,et,!1)):(!0===e&&this.unexpected(),t.id=null)},ut.parseClassSuper=function(t){t.superClass=this.eat(w._extends)?this.parseExprSubscripts(null,!1):null},ut.enterClassBody=function(){var t={declared:Object.create(null),used:[]};return this.privateNameStack.push(t),t.declared},ut.exitClassBody=function(){var t=this.privateNameStack.pop(),e=t.declared,n=t.used;if(this.options.checkPrivateFields)for(var i=this.privateNameStack.length,a=0===i?null:this.privateNameStack[i-1],r=0;r<n.length;++r){var o=n[r];D(e,o.name)||(a?a.used.push(o):this.raiseRecoverable(o.start,"Private field '#"+o.name+"' must be declared in an enclosing class"))}},ut.parseExportAllDeclaration=function(t,e){return this.options.ecmaVersion>=11&&(this.eatContextual("as")?(t.exported=this.parseModuleExportName(),this.checkExport(e,t.exported,this.lastTokStart)):t.exported=null),this.expectContextual("from"),this.type!==w.string&&this.unexpected(),t.source=this.parseExprAtom(),this.semicolon(),this.finishNode(t,"ExportAllDeclaration")},ut.parseExport=function(t,e){if(this.next(),this.eat(w.star))return this.parseExportAllDeclaration(t,e);if(this.eat(w._default))return this.checkExport(e,"default",this.lastTokStart),t.declaration=this.parseExportDefaultDeclaration(),this.finishNode(t,"ExportDefaultDeclaration");if(this.shouldParseExportStatement())t.declaration=this.parseExportDeclaration(t),"VariableDeclaration"===t.declaration.type?this.checkVariableExport(e,t.declaration.declarations):this.checkExport(e,t.declaration.id,t.declaration.id.start),t.specifiers=[],t.source=null;else{if(t.declaration=null,t.specifiers=this.parseExportSpecifiers(e),this.eatContextual("from"))this.type!==w.string&&this.unexpected(),t.source=this.parseExprAtom();else{for(var n=0,i=t.specifiers;n<i.length;n+=1){var a=i[n];this.checkUnreserved(a.local),this.checkLocalExport(a.local),"Literal"===a.local.type&&this.raise(a.local.start,"A string literal cannot be used as an exported binding without `from`.")}t.source=null}this.semicolon()}return this.finishNode(t,"ExportNamedDeclaration")},ut.parseExportDeclaration=function(t){return this.parseStatement(null)},ut.parseExportDefaultDeclaration=function(){var t;if(this.type===w._function||(t=this.isAsyncFunction())){var e=this.startNode();return this.next(),t&&this.next(),this.parseFunction(e,gt|bt,!1,t)}if(this.type===w._class){var n=this.startNode();return this.parseClass(n,"nullableID")}var i=this.parseMaybeAssign();return this.semicolon(),i},ut.checkExport=function(t,e,n){t&&("string"!=typeof e&&(e="Identifier"===e.type?e.name:e.value),D(t,e)&&this.raiseRecoverable(n,"Duplicate export '"+e+"'"),t[e]=!0)},ut.checkPatternExport=function(t,e){var n=e.type;if("Identifier"===n)this.checkExport(t,e,e.start);else if("ObjectPattern"===n)for(var i=0,a=e.properties;i<a.length;i+=1){var r=a[i];this.checkPatternExport(t,r)}else if("ArrayPattern"===n)for(var o=0,s=e.elements;o<s.length;o+=1){var c=s[o];c&&this.checkPatternExport(t,c)}else"Property"===n?this.checkPatternExport(t,e.value):"AssignmentPattern"===n?this.checkPatternExport(t,e.left):"RestElement"===n?this.checkPatternExport(t,e.argument):"ParenthesizedExpression"===n&&this.checkPatternExport(t,e.expression)},ut.checkVariableExport=function(t,e){if(t)for(var n=0,i=e;n<i.length;n+=1){var a=i[n];this.checkPatternExport(t,a.id)}},ut.shouldParseExportStatement=function(){return"var"===this.type.keyword||"const"===this.type.keyword||"class"===this.type.keyword||"function"===this.type.keyword||this.isLet()||this.isAsyncFunction()},ut.parseExportSpecifier=function(t){var e=this.startNode();return e.local=this.parseModuleExportName(),e.exported=this.eatContextual("as")?this.parseModuleExportName():e.local,this.checkExport(t,e.exported,e.exported.start),this.finishNode(e,"ExportSpecifier")},ut.parseExportSpecifiers=function(t){var e=[],n=!0;for(this.expect(w.braceL);!this.eat(w.braceR);){if(n)n=!1;else if(this.expect(w.comma),this.afterTrailingComma(w.braceR))break;e.push(this.parseExportSpecifier(t))}return e},ut.parseImport=function(t){return this.next(),this.type===w.string?(t.specifiers=ft,t.source=this.parseExprAtom()):(t.specifiers=this.parseImportSpecifiers(),this.expectContextual("from"),t.source=this.type===w.string?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(t,"ImportDeclaration")},ut.parseImportSpecifier=function(){var t=this.startNode();return t.imported=this.parseModuleExportName(),this.eatContextual("as")?t.local=this.parseIdent():(this.checkUnreserved(t.imported),t.local=t.imported),this.checkLValSimple(t.local,et),this.finishNode(t,"ImportSpecifier")},ut.parseImportDefaultSpecifier=function(){var t=this.startNode();return t.local=this.parseIdent(),this.checkLValSimple(t.local,et),this.finishNode(t,"ImportDefaultSpecifier")},ut.parseImportNamespaceSpecifier=function(){var t=this.startNode();return this.next(),this.expectContextual("as"),t.local=this.parseIdent(),this.checkLValSimple(t.local,et),this.finishNode(t,"ImportNamespaceSpecifier")},ut.parseImportSpecifiers=function(){var t=[],e=!0;if(this.type===w.name&&(t.push(this.parseImportDefaultSpecifier()),!this.eat(w.comma)))return t;if(this.type===w.star)return t.push(this.parseImportNamespaceSpecifier()),t;for(this.expect(w.braceL);!this.eat(w.braceR);){if(e)e=!1;else if(this.expect(w.comma),this.afterTrailingComma(w.braceR))break;t.push(this.parseImportSpecifier())}return t},ut.parseModuleExportName=function(){if(this.options.ecmaVersion>=13&&this.type===w.string){var t=this.parseLiteral(this.value);return M.test(t.value)&&this.raise(t.start,"An export name cannot include a lone surrogate."),t}return this.parseIdent(!0)},ut.adaptDirectivePrologue=function(t){for(var e=0;e<t.length&&this.isDirectiveCandidate(t[e]);++e)t[e].directive=t[e].expression.raw.slice(1,-1)},ut.isDirectiveCandidate=function(t){return this.options.ecmaVersion>=5&&"ExpressionStatement"===t.type&&"Literal"===t.expression.type&&"string"==typeof t.expression.value&&('"'===this.input[t.start]||"'"===this.input[t.start])};var vt=rt.prototype;vt.toAssignable=function(t,e,n){if(this.options.ecmaVersion>=6&&t)switch(t.type){case"Identifier":this.inAsync&&"await"===t.name&&this.raise(t.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":t.type="ObjectPattern",n&&this.checkPatternErrors(n,!0);for(var i=0,a=t.properties;i<a.length;i+=1){var r=a[i];this.toAssignable(r,e),"RestElement"!==r.type||"ArrayPattern"!==r.argument.type&&"ObjectPattern"!==r.argument.type||this.raise(r.argument.start,"Unexpected token")}break;case"Property":"init"!==t.kind&&this.raise(t.key.start,"Object pattern can't contain getter or setter"),this.toAssignable(t.value,e);break;case"ArrayExpression":t.type="ArrayPattern",n&&this.checkPatternErrors(n,!0),this.toAssignableList(t.elements,e);break;case"SpreadElement":t.type="RestElement",this.toAssignable(t.argument,e),"AssignmentPattern"===t.argument.type&&this.raise(t.argument.start,"Rest elements cannot have a default value");break;case"AssignmentExpression":"="!==t.operator&&this.raise(t.left.end,"Only '=' operator can be used for specifying default value."),t.type="AssignmentPattern",delete t.operator,this.toAssignable(t.left,e);break;case"ParenthesizedExpression":this.toAssignable(t.expression,e,n);break;case"ChainExpression":this.raiseRecoverable(t.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":if(!e)break;default:this.raise(t.start,"Assigning to rvalue")}else n&&this.checkPatternErrors(n,!0);return t},vt.toAssignableList=function(t,e){for(var n=t.length,i=0;i<n;i++){var a=t[i];a&&this.toAssignable(a,e)}if(n){var r=t[n-1];6===this.options.ecmaVersion&&e&&r&&"RestElement"===r.type&&"Identifier"!==r.argument.type&&this.unexpected(r.argument.start)}return t},vt.parseSpread=function(t){var e=this.startNode();return this.next(),e.argument=this.parseMaybeAssign(!1,t),this.finishNode(e,"SpreadElement")},vt.parseRestBinding=function(){var t=this.startNode();return this.next(),6===this.options.ecmaVersion&&this.type!==w.name&&this.unexpected(),t.argument=this.parseBindingAtom(),this.finishNode(t,"RestElement")},vt.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case w.bracketL:var t=this.startNode();return this.next(),t.elements=this.parseBindingList(w.bracketR,!0,!0),this.finishNode(t,"ArrayPattern");case w.braceL:return this.parseObj(!0)}return this.parseIdent()},vt.parseBindingList=function(t,e,n,i){for(var a=[],r=!0;!this.eat(t);)if(r?r=!1:this.expect(w.comma),e&&this.type===w.comma)a.push(null);else{if(n&&this.afterTrailingComma(t))break;if(this.type===w.ellipsis){var o=this.parseRestBinding();this.parseBindingListItem(o),a.push(o),this.type===w.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element"),this.expect(t);break}a.push(this.parseAssignableListItem(i))}return a},vt.parseAssignableListItem=function(t){var e=this.parseMaybeDefault(this.start,this.startLoc);return this.parseBindingListItem(e),e},vt.parseBindingListItem=function(t){return t},vt.parseMaybeDefault=function(t,e,n){if(n=n||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(w.eq))return n;var i=this.startNodeAt(t,e);return i.left=n,i.right=this.parseMaybeAssign(),this.finishNode(i,"AssignmentPattern")},vt.checkLValSimple=function(t,e,n){void 0===e&&(e=Q);var i=e!==Q;switch(t.type){case"Identifier":this.strict&&this.reservedWordsStrictBind.test(t.name)&&this.raiseRecoverable(t.start,(i?"Binding ":"Assigning to ")+t.name+" in strict mode"),i&&(e===et&&"let"===t.name&&this.raiseRecoverable(t.start,"let is disallowed as a lexically bound name"),n&&(D(n,t.name)&&this.raiseRecoverable(t.start,"Argument name clash"),n[t.name]=!0),e!==at&&this.declareName(t.name,e,t.start));break;case"ChainExpression":this.raiseRecoverable(t.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":i&&this.raiseRecoverable(t.start,"Binding member expression");break;case"ParenthesizedExpression":return i&&this.raiseRecoverable(t.start,"Binding parenthesized expression"),this.checkLValSimple(t.expression,e,n);default:this.raise(t.start,(i?"Binding":"Assigning to")+" rvalue")}},vt.checkLValPattern=function(t,e,n){switch(void 0===e&&(e=Q),t.type){case"ObjectPattern":for(var i=0,a=t.properties;i<a.length;i+=1){var r=a[i];this.checkLValInnerPattern(r,e,n)}break;case"ArrayPattern":for(var o=0,s=t.elements;o<s.length;o+=1){var c=s[o];c&&this.checkLValInnerPattern(c,e,n)}break;default:this.checkLValSimple(t,e,n)}},vt.checkLValInnerPattern=function(t,e,n){switch(void 0===e&&(e=Q),t.type){case"Property":this.checkLValInnerPattern(t.value,e,n);break;case"AssignmentPattern":this.checkLValPattern(t.left,e,n);break;case"RestElement":this.checkLValPattern(t.argument,e,n);break;default:this.checkLValPattern(t,e,n)}};var wt=function(t,e,n,i,a){this.token=t,this.isExpr=!!e,this.preserveSpace=!!n,this.override=i,this.generator=!!a},xt={b_stat:new wt("{",!1),b_expr:new wt("{",!0),b_tmpl:new wt("${",!1),p_stat:new wt("(",!1),p_expr:new wt("(",!0),q_tmpl:new wt("`",!0,!0,(function(t){return t.tryReadTemplateToken()})),f_stat:new wt("function",!1),f_expr:new wt("function",!0),f_expr_gen:new wt("function",!0,!1,null,!0),f_gen:new wt("function",!1,!1,null,!0)},Rt=rt.prototype;Rt.initialContext=function(){return[xt.b_stat]},Rt.curContext=function(){return this.context[this.context.length-1]},Rt.braceIsBlock=function(t){var e=this.curContext();return e===xt.f_expr||e===xt.f_stat||(t!==w.colon||e!==xt.b_stat&&e!==xt.b_expr?t===w._return||t===w.name&&this.exprAllowed?x.test(this.input.slice(this.lastTokEnd,this.start)):t===w._else||t===w.semi||t===w.eof||t===w.parenR||t===w.arrow||(t===w.braceL?e===xt.b_stat:t!==w._var&&t!==w._const&&t!==w.name&&!this.exprAllowed):!e.isExpr)},Rt.inGeneratorContext=function(){for(var t=this.context.length-1;t>=1;t--){var e=this.context[t];if("function"===e.token)return e.generator}return!1},Rt.updateContext=function(t){var e,n=this.type;n.keyword&&t===w.dot?this.exprAllowed=!1:(e=n.updateContext)?e.call(this,t):this.exprAllowed=n.beforeExpr},Rt.overrideContext=function(t){this.curContext()!==t&&(this.context[this.context.length-1]=t)},w.parenR.updateContext=w.braceR.updateContext=function(){if(1!==this.context.length){var t=this.context.pop();t===xt.b_stat&&"function"===this.curContext().token&&(t=this.context.pop()),this.exprAllowed=!t.isExpr}else this.exprAllowed=!0},w.braceL.updateContext=function(t){this.context.push(this.braceIsBlock(t)?xt.b_stat:xt.b_expr),this.exprAllowed=!0},w.dollarBraceL.updateContext=function(){this.context.push(xt.b_tmpl),this.exprAllowed=!0},w.parenL.updateContext=function(t){var e=t===w._if||t===w._for||t===w._with||t===w._while;this.context.push(e?xt.p_stat:xt.p_expr),this.exprAllowed=!0},w.incDec.updateContext=function(){},w._function.updateContext=w._class.updateContext=function(t){!t.beforeExpr||t===w._else||t===w.semi&&this.curContext()!==xt.p_stat||t===w._return&&x.test(this.input.slice(this.lastTokEnd,this.start))||(t===w.colon||t===w.braceL)&&this.curContext()===xt.b_stat?this.context.push(xt.f_stat):this.context.push(xt.f_expr),this.exprAllowed=!1},w.backQuote.updateContext=function(){this.curContext()===xt.q_tmpl?this.context.pop():this.context.push(xt.q_tmpl),this.exprAllowed=!1},w.star.updateContext=function(t){if(t===w._function){var e=this.context.length-1;this.context[e]===xt.f_expr?this.context[e]=xt.f_expr_gen:this.context[e]=xt.f_gen}this.exprAllowed=!0},w.name.updateContext=function(t){var e=!1;this.options.ecmaVersion>=6&&t!==w.dot&&("of"===this.value&&!this.exprAllowed||"yield"===this.value&&this.inGeneratorContext())&&(e=!0),this.exprAllowed=e};var _t=rt.prototype;function kt(t){return"MemberExpression"===t.type&&"PrivateIdentifier"===t.property.type||"ChainExpression"===t.type&&kt(t.expression)}_t.checkPropClash=function(t,e,n){if(!(this.options.ecmaVersion>=9&&"SpreadElement"===t.type||this.options.ecmaVersion>=6&&(t.computed||t.method||t.shorthand))){var i,a=t.key;switch(a.type){case"Identifier":i=a.name;break;case"Literal":i=String(a.value);break;default:return}var r=t.kind;if(this.options.ecmaVersion>=6)"__proto__"===i&&"init"===r&&(e.proto&&(n?n.doubleProto<0&&(n.doubleProto=a.start):this.raiseRecoverable(a.start,"Redefinition of __proto__ property")),e.proto=!0);else{var o=e[i="$"+i];o?("init"===r?this.strict&&o.init||o.get||o.set:o.init||o[r])&&this.raiseRecoverable(a.start,"Redefinition of property"):o=e[i]={init:!1,get:!1,set:!1},o[r]=!0}}},_t.parseExpression=function(t,e){var n=this.start,i=this.startLoc,a=this.parseMaybeAssign(t,e);if(this.type===w.comma){var r=this.startNodeAt(n,i);for(r.expressions=[a];this.eat(w.comma);)r.expressions.push(this.parseMaybeAssign(t,e));return this.finishNode(r,"SequenceExpression")}return a},_t.parseMaybeAssign=function(t,e,n){if(this.isContextual("yield")){if(this.inGenerator)return this.parseYield(t);this.exprAllowed=!1}var i=!1,a=-1,r=-1,o=-1;e?(a=e.parenthesizedAssign,r=e.trailingComma,o=e.doubleProto,e.parenthesizedAssign=e.trailingComma=-1):(e=new lt,i=!0);var s=this.start,c=this.startLoc;this.type!==w.parenL&&this.type!==w.name||(this.potentialArrowAt=this.start,this.potentialArrowInForAwait="await"===t);var l=this.parseMaybeConditional(t,e);if(n&&(l=n.call(this,l,s,c)),this.type.isAssign){var u=this.startNodeAt(s,c);return u.operator=this.value,this.type===w.eq&&(l=this.toAssignable(l,!1,e)),i||(e.parenthesizedAssign=e.trailingComma=e.doubleProto=-1),e.shorthandAssign>=l.start&&(e.shorthandAssign=-1),this.type===w.eq?this.checkLValPattern(l):this.checkLValSimple(l),u.left=l,this.next(),u.right=this.parseMaybeAssign(t),o>-1&&(e.doubleProto=o),this.finishNode(u,"AssignmentExpression")}return i&&this.checkExpressionErrors(e,!0),a>-1&&(e.parenthesizedAssign=a),r>-1&&(e.trailingComma=r),l},_t.parseMaybeConditional=function(t,e){var n=this.start,i=this.startLoc,a=this.parseExprOps(t,e);if(this.checkExpressionErrors(e))return a;if(this.eat(w.question)){var r=this.startNodeAt(n,i);return r.test=a,r.consequent=this.parseMaybeAssign(),this.expect(w.colon),r.alternate=this.parseMaybeAssign(t),this.finishNode(r,"ConditionalExpression")}return a},_t.parseExprOps=function(t,e){var n=this.start,i=this.startLoc,a=this.parseMaybeUnary(e,!1,!1,t);return this.checkExpressionErrors(e)||a.start===n&&"ArrowFunctionExpression"===a.type?a:this.parseExprOp(a,n,i,-1,t)},_t.parseExprOp=function(t,e,n,i,a){var r=this.type.binop;if(null!=r&&(!a||this.type!==w._in)&&r>i){var o=this.type===w.logicalOR||this.type===w.logicalAND,s=this.type===w.coalesce;s&&(r=w.logicalAND.binop);var c=this.value;this.next();var l=this.start,u=this.startLoc,d=this.parseExprOp(this.parseMaybeUnary(null,!1,!1,a),l,u,r,a),h=this.buildBinary(e,n,t,d,c,o||s);return(o&&this.type===w.coalesce||s&&(this.type===w.logicalOR||this.type===w.logicalAND))&&this.raiseRecoverable(this.start,"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"),this.parseExprOp(h,e,n,i,a)}return t},_t.buildBinary=function(t,e,n,i,a,r){"PrivateIdentifier"===i.type&&this.raise(i.start,"Private identifier can only be left side of binary expression");var o=this.startNodeAt(t,e);return o.left=n,o.operator=a,o.right=i,this.finishNode(o,r?"LogicalExpression":"BinaryExpression")},_t.parseMaybeUnary=function(t,e,n,i){var a,r=this.start,o=this.startLoc;if(this.isContextual("await")&&this.canAwait)a=this.parseAwait(i),e=!0;else if(this.type.prefix){var s=this.startNode(),c=this.type===w.incDec;s.operator=this.value,s.prefix=!0,this.next(),s.argument=this.parseMaybeUnary(null,!0,c,i),this.checkExpressionErrors(t,!0),c?this.checkLValSimple(s.argument):this.strict&&"delete"===s.operator&&"Identifier"===s.argument.type?this.raiseRecoverable(s.start,"Deleting local variable in strict mode"):"delete"===s.operator&&kt(s.argument)?this.raiseRecoverable(s.start,"Private fields can not be deleted"):e=!0,a=this.finishNode(s,c?"UpdateExpression":"UnaryExpression")}else if(e||this.type!==w.privateId){if(a=this.parseExprSubscripts(t,i),this.checkExpressionErrors(t))return a;for(;this.type.postfix&&!this.canInsertSemicolon();){var l=this.startNodeAt(r,o);l.operator=this.value,l.prefix=!1,l.argument=a,this.checkLValSimple(a),this.next(),a=this.finishNode(l,"UpdateExpression")}}else(i||0===this.privateNameStack.length)&&this.options.checkPrivateFields&&this.unexpected(),a=this.parsePrivateIdent(),this.type!==w._in&&this.unexpected();return n||!this.eat(w.starstar)?a:e?void this.unexpected(this.lastTokStart):this.buildBinary(r,o,a,this.parseMaybeUnary(null,!1,!1,i),"**",!1)},_t.parseExprSubscripts=function(t,e){var n=this.start,i=this.startLoc,a=this.parseExprAtom(t,e);if("ArrowFunctionExpression"===a.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd))return a;var r=this.parseSubscripts(a,n,i,!1,e);return t&&"MemberExpression"===r.type&&(t.parenthesizedAssign>=r.start&&(t.parenthesizedAssign=-1),t.parenthesizedBind>=r.start&&(t.parenthesizedBind=-1),t.trailingComma>=r.start&&(t.trailingComma=-1)),r},_t.parseSubscripts=function(t,e,n,i,a){for(var r=this.options.ecmaVersion>=8&&"Identifier"===t.type&&"async"===t.name&&this.lastTokEnd===t.end&&!this.canInsertSemicolon()&&t.end-t.start==5&&this.potentialArrowAt===t.start,o=!1;;){var s=this.parseSubscript(t,e,n,i,r,o,a);if(s.optional&&(o=!0),s===t||"ArrowFunctionExpression"===s.type){if(o){var c=this.startNodeAt(e,n);c.expression=s,s=this.finishNode(c,"ChainExpression")}return s}t=s}},_t.shouldParseAsyncArrow=function(){return!this.canInsertSemicolon()&&this.eat(w.arrow)},_t.parseSubscriptAsyncArrow=function(t,e,n,i){return this.parseArrowExpression(this.startNodeAt(t,e),n,!0,i)},_t.parseSubscript=function(t,e,n,i,a,r,o){var s=this.options.ecmaVersion>=11,c=s&&this.eat(w.questionDot);i&&c&&this.raise(this.lastTokStart,"Optional chaining cannot appear in the callee of new expressions");var l=this.eat(w.bracketL);if(l||c&&this.type!==w.parenL&&this.type!==w.backQuote||this.eat(w.dot)){var u=this.startNodeAt(e,n);u.object=t,l?(u.property=this.parseExpression(),this.expect(w.bracketR)):this.type===w.privateId&&"Super"!==t.type?u.property=this.parsePrivateIdent():u.property=this.parseIdent("never"!==this.options.allowReserved),u.computed=!!l,s&&(u.optional=c),t=this.finishNode(u,"MemberExpression")}else if(!i&&this.eat(w.parenL)){var d=new lt,h=this.yieldPos,f=this.awaitPos,g=this.awaitIdentPos;this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0;var p=this.parseExprList(w.parenR,this.options.ecmaVersion>=8,!1,d);if(a&&!c&&this.shouldParseAsyncArrow())return this.checkPatternErrors(d,!1),this.checkYieldAwaitInDefaultParams(),this.awaitIdentPos>0&&this.raise(this.awaitIdentPos,"Cannot use 'await' as identifier inside an async function"),this.yieldPos=h,this.awaitPos=f,this.awaitIdentPos=g,this.parseSubscriptAsyncArrow(e,n,p,o);this.checkExpressionErrors(d,!0),this.yieldPos=h||this.yieldPos,this.awaitPos=f||this.awaitPos,this.awaitIdentPos=g||this.awaitIdentPos;var b=this.startNodeAt(e,n);b.callee=t,b.arguments=p,s&&(b.optional=c),t=this.finishNode(b,"CallExpression")}else if(this.type===w.backQuote){(c||r)&&this.raise(this.start,"Optional chaining cannot appear in the tag of tagged template expressions");var m=this.startNodeAt(e,n);m.tag=t,m.quasi=this.parseTemplate({isTagged:!0}),t=this.finishNode(m,"TaggedTemplateExpression")}return t},_t.parseExprAtom=function(t,e,n){this.type===w.slash&&this.readRegexp();var i,a=this.potentialArrowAt===this.start;switch(this.type){case w._super:return this.allowSuper||this.raise(this.start,"'super' keyword outside a method"),i=this.startNode(),this.next(),this.type!==w.parenL||this.allowDirectSuper||this.raise(i.start,"super() call outside constructor of a subclass"),this.type!==w.dot&&this.type!==w.bracketL&&this.type!==w.parenL&&this.unexpected(),this.finishNode(i,"Super");case w._this:return i=this.startNode(),this.next(),this.finishNode(i,"ThisExpression");case w.name:var r=this.start,o=this.startLoc,s=this.containsEsc,c=this.parseIdent(!1);if(this.options.ecmaVersion>=8&&!s&&"async"===c.name&&!this.canInsertSemicolon()&&this.eat(w._function))return this.overrideContext(xt.f_expr),this.parseFunction(this.startNodeAt(r,o),0,!1,!0,e);if(a&&!this.canInsertSemicolon()){if(this.eat(w.arrow))return this.parseArrowExpression(this.startNodeAt(r,o),[c],!1,e);if(this.options.ecmaVersion>=8&&"async"===c.name&&this.type===w.name&&!s&&(!this.potentialArrowInForAwait||"of"!==this.value||this.containsEsc))return c=this.parseIdent(!1),!this.canInsertSemicolon()&&this.eat(w.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(r,o),[c],!0,e)}return c;case w.regexp:var l=this.value;return(i=this.parseLiteral(l.value)).regex={pattern:l.pattern,flags:l.flags},i;case w.num:case w.string:return this.parseLiteral(this.value);case w._null:case w._true:case w._false:return(i=this.startNode()).value=this.type===w._null?null:this.type===w._true,i.raw=this.type.keyword,this.next(),this.finishNode(i,"Literal");case w.parenL:var u=this.start,d=this.parseParenAndDistinguishExpression(a,e);return t&&(t.parenthesizedAssign<0&&!this.isSimpleAssignTarget(d)&&(t.parenthesizedAssign=u),t.parenthesizedBind<0&&(t.parenthesizedBind=u)),d;case w.bracketL:return i=this.startNode(),this.next(),i.elements=this.parseExprList(w.bracketR,!0,!0,t),this.finishNode(i,"ArrayExpression");case w.braceL:return this.overrideContext(xt.b_expr),this.parseObj(!1,t);case w._function:return i=this.startNode(),this.next(),this.parseFunction(i,0);case w._class:return this.parseClass(this.startNode(),!1);case w._new:return this.parseNew();case w.backQuote:return this.parseTemplate();case w._import:return this.options.ecmaVersion>=11?this.parseExprImport(n):this.unexpected();default:return this.parseExprAtomDefault()}},_t.parseExprAtomDefault=function(){this.unexpected()},_t.parseExprImport=function(t){var e=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import");var n=this.parseIdent(!0);return this.type!==w.parenL||t?this.type===w.dot?(e.meta=n,this.parseImportMeta(e)):void this.unexpected():this.parseDynamicImport(e)},_t.parseDynamicImport=function(t){if(this.next(),t.source=this.parseMaybeAssign(),!this.eat(w.parenR)){var e=this.start;this.eat(w.comma)&&this.eat(w.parenR)?this.raiseRecoverable(e,"Trailing comma is not allowed in import()"):this.unexpected(e)}return this.finishNode(t,"ImportExpression")},_t.parseImportMeta=function(t){this.next();var e=this.containsEsc;return t.property=this.parseIdent(!0),"meta"!==t.property.name&&this.raiseRecoverable(t.property.start,"The only valid meta property for import is 'import.meta'"),e&&this.raiseRecoverable(t.start,"'import.meta' must not contain escaped characters"),"module"===this.options.sourceType||this.options.allowImportExportEverywhere||this.raiseRecoverable(t.start,"Cannot use 'import.meta' outside a module"),this.finishNode(t,"MetaProperty")},_t.parseLiteral=function(t){var e=this.startNode();return e.value=t,e.raw=this.input.slice(this.start,this.end),110===e.raw.charCodeAt(e.raw.length-1)&&(e.bigint=e.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(e,"Literal")},_t.parseParenExpression=function(){this.expect(w.parenL);var t=this.parseExpression();return this.expect(w.parenR),t},_t.shouldParseArrow=function(t){return!this.canInsertSemicolon()},_t.parseParenAndDistinguishExpression=function(t,e){var n,i=this.start,a=this.startLoc,r=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var o,s=this.start,c=this.startLoc,l=[],u=!0,d=!1,h=new lt,f=this.yieldPos,g=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==w.parenR;){if(u?u=!1:this.expect(w.comma),r&&this.afterTrailingComma(w.parenR,!0)){d=!0;break}if(this.type===w.ellipsis){o=this.start,l.push(this.parseParenItem(this.parseRestBinding())),this.type===w.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element");break}l.push(this.parseMaybeAssign(!1,h,this.parseParenItem))}var p=this.lastTokEnd,b=this.lastTokEndLoc;if(this.expect(w.parenR),t&&this.shouldParseArrow(l)&&this.eat(w.arrow))return this.checkPatternErrors(h,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=f,this.awaitPos=g,this.parseParenArrowList(i,a,l,e);l.length&&!d||this.unexpected(this.lastTokStart),o&&this.unexpected(o),this.checkExpressionErrors(h,!0),this.yieldPos=f||this.yieldPos,this.awaitPos=g||this.awaitPos,l.length>1?((n=this.startNodeAt(s,c)).expressions=l,this.finishNodeAt(n,"SequenceExpression",p,b)):n=l[0]}else n=this.parseParenExpression();if(this.options.preserveParens){var m=this.startNodeAt(i,a);return m.expression=n,this.finishNode(m,"ParenthesizedExpression")}return n},_t.parseParenItem=function(t){return t},_t.parseParenArrowList=function(t,e,n,i){return this.parseArrowExpression(this.startNodeAt(t,e),n,!1,i)};var Et=[];_t.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var t=this.startNode(),e=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(w.dot)){t.meta=e;var n=this.containsEsc;return t.property=this.parseIdent(!0),"target"!==t.property.name&&this.raiseRecoverable(t.property.start,"The only valid meta property for new is 'new.target'"),n&&this.raiseRecoverable(t.start,"'new.target' must not contain escaped characters"),this.allowNewDotTarget||this.raiseRecoverable(t.start,"'new.target' can only be used in functions and class static block"),this.finishNode(t,"MetaProperty")}var i=this.start,a=this.startLoc;return t.callee=this.parseSubscripts(this.parseExprAtom(null,!1,!0),i,a,!0,!1),this.eat(w.parenL)?t.arguments=this.parseExprList(w.parenR,this.options.ecmaVersion>=8,!1):t.arguments=Et,this.finishNode(t,"NewExpression")},_t.parseTemplateElement=function(t){var e=t.isTagged,n=this.startNode();return this.type===w.invalidTemplate?(e||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),n.value={raw:this.value,cooked:null}):n.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),n.tail=this.type===w.backQuote,this.finishNode(n,"TemplateElement")},_t.parseTemplate=function(t){void 0===t&&(t={});var e=t.isTagged;void 0===e&&(e=!1);var n=this.startNode();this.next(),n.expressions=[];var i=this.parseTemplateElement({isTagged:e});for(n.quasis=[i];!i.tail;)this.type===w.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(w.dollarBraceL),n.expressions.push(this.parseExpression()),this.expect(w.braceR),n.quasis.push(i=this.parseTemplateElement({isTagged:e}));return this.next(),this.finishNode(n,"TemplateLiteral")},_t.isAsyncProp=function(t){return!t.computed&&"Identifier"===t.key.type&&"async"===t.key.name&&(this.type===w.name||this.type===w.num||this.type===w.string||this.type===w.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===w.star)&&!x.test(this.input.slice(this.lastTokEnd,this.start))},_t.parseObj=function(t,e){var n=this.startNode(),i=!0,a={};for(n.properties=[],this.next();!this.eat(w.braceR);){if(i)i=!1;else if(this.expect(w.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(w.braceR))break;var r=this.parseProperty(t,e);t||this.checkPropClash(r,a,e),n.properties.push(r)}return this.finishNode(n,t?"ObjectPattern":"ObjectExpression")},_t.parseProperty=function(t,e){var n,i,a,r,o=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(w.ellipsis))return t?(o.argument=this.parseIdent(!1),this.type===w.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element"),this.finishNode(o,"RestElement")):(o.argument=this.parseMaybeAssign(!1,e),this.type===w.comma&&e&&e.trailingComma<0&&(e.trailingComma=this.start),this.finishNode(o,"SpreadElement"));this.options.ecmaVersion>=6&&(o.method=!1,o.shorthand=!1,(t||e)&&(a=this.start,r=this.startLoc),t||(n=this.eat(w.star)));var s=this.containsEsc;return this.parsePropertyName(o),!t&&!s&&this.options.ecmaVersion>=8&&!n&&this.isAsyncProp(o)?(i=!0,n=this.options.ecmaVersion>=9&&this.eat(w.star),this.parsePropertyName(o)):i=!1,this.parsePropertyValue(o,t,n,i,a,r,e,s),this.finishNode(o,"Property")},_t.parseGetterSetter=function(t){t.kind=t.key.name,this.parsePropertyName(t),t.value=this.parseMethod(!1);var e="get"===t.kind?0:1;if(t.value.params.length!==e){var n=t.value.start;"get"===t.kind?this.raiseRecoverable(n,"getter should have no params"):this.raiseRecoverable(n,"setter should have exactly one param")}else"set"===t.kind&&"RestElement"===t.value.params[0].type&&this.raiseRecoverable(t.value.params[0].start,"Setter cannot use rest params")},_t.parsePropertyValue=function(t,e,n,i,a,r,o,s){(n||i)&&this.type===w.colon&&this.unexpected(),this.eat(w.colon)?(t.value=e?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,o),t.kind="init"):this.options.ecmaVersion>=6&&this.type===w.parenL?(e&&this.unexpected(),t.kind="init",t.method=!0,t.value=this.parseMethod(n,i)):e||s||!(this.options.ecmaVersion>=5)||t.computed||"Identifier"!==t.key.type||"get"!==t.key.name&&"set"!==t.key.name||this.type===w.comma||this.type===w.braceR||this.type===w.eq?this.options.ecmaVersion>=6&&!t.computed&&"Identifier"===t.key.type?((n||i)&&this.unexpected(),this.checkUnreserved(t.key),"await"!==t.key.name||this.awaitIdentPos||(this.awaitIdentPos=a),t.kind="init",e?t.value=this.parseMaybeDefault(a,r,this.copyNode(t.key)):this.type===w.eq&&o?(o.shorthandAssign<0&&(o.shorthandAssign=this.start),t.value=this.parseMaybeDefault(a,r,this.copyNode(t.key))):t.value=this.copyNode(t.key),t.shorthand=!0):this.unexpected():((n||i)&&this.unexpected(),this.parseGetterSetter(t))},_t.parsePropertyName=function(t){if(this.options.ecmaVersion>=6){if(this.eat(w.bracketL))return t.computed=!0,t.key=this.parseMaybeAssign(),this.expect(w.bracketR),t.key;t.computed=!1}return t.key=this.type===w.num||this.type===w.string?this.parseExprAtom():this.parseIdent("never"!==this.options.allowReserved)},_t.initFunction=function(t){t.id=null,this.options.ecmaVersion>=6&&(t.generator=t.expression=!1),this.options.ecmaVersion>=8&&(t.async=!1)},_t.parseMethod=function(t,e,n){var i=this.startNode(),a=this.yieldPos,r=this.awaitPos,o=this.awaitIdentPos;return this.initFunction(i),this.options.ecmaVersion>=6&&(i.generator=t),this.options.ecmaVersion>=8&&(i.async=!!e),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(J(e,i.generator)|G|(n?Z:0)),this.expect(w.parenL),i.params=this.parseBindingList(w.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(i,!1,!0,!1),this.yieldPos=a,this.awaitPos=r,this.awaitIdentPos=o,this.finishNode(i,"FunctionExpression")},_t.parseArrowExpression=function(t,e,n,i){var a=this.yieldPos,r=this.awaitPos,o=this.awaitIdentPos;return this.enterScope(J(n,!1)|W),this.initFunction(t),this.options.ecmaVersion>=8&&(t.async=!!n),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,t.params=this.toAssignableList(e,!0),this.parseFunctionBody(t,!0,!1,i),this.yieldPos=a,this.awaitPos=r,this.awaitIdentPos=o,this.finishNode(t,"ArrowFunctionExpression")},_t.parseFunctionBody=function(t,e,n,i){var a=e&&this.type!==w.braceL,r=this.strict,o=!1;if(a)t.body=this.parseMaybeAssign(i),t.expression=!0,this.checkParams(t,!1);else{var s=this.options.ecmaVersion>=7&&!this.isSimpleParamList(t.params);r&&!s||(o=this.strictDirective(this.end))&&s&&this.raiseRecoverable(t.start,"Illegal 'use strict' directive in function with non-simple parameter list");var c=this.labels;this.labels=[],o&&(this.strict=!0),this.checkParams(t,!r&&!o&&!e&&!n&&this.isSimpleParamList(t.params)),this.strict&&t.id&&this.checkLValSimple(t.id,at),t.body=this.parseBlock(!1,void 0,o&&!r),t.expression=!1,this.adaptDirectivePrologue(t.body.body),this.labels=c}this.exitScope()},_t.isSimpleParamList=function(t){for(var e=0,n=t;e<n.length;e+=1)if("Identifier"!==n[e].type)return!1;return!0},_t.checkParams=function(t,e){for(var n=Object.create(null),i=0,a=t.params;i<a.length;i+=1){var r=a[i];this.checkLValInnerPattern(r,tt,e?null:n)}},_t.parseExprList=function(t,e,n,i){for(var a=[],r=!0;!this.eat(t);){if(r)r=!1;else if(this.expect(w.comma),e&&this.afterTrailingComma(t))break;var o=void 0;n&&this.type===w.comma?o=null:this.type===w.ellipsis?(o=this.parseSpread(i),i&&this.type===w.comma&&i.trailingComma<0&&(i.trailingComma=this.start)):o=this.parseMaybeAssign(!1,i),a.push(o)}return a},_t.checkUnreserved=function(t){var e=t.start,n=t.end,i=t.name;this.inGenerator&&"yield"===i&&this.raiseRecoverable(e,"Cannot use 'yield' as identifier inside a generator"),this.inAsync&&"await"===i&&this.raiseRecoverable(e,"Cannot use 'await' as identifier inside an async function"),this.currentThisScope().inClassFieldInit&&"arguments"===i&&this.raiseRecoverable(e,"Cannot use 'arguments' in class field initializer"),!this.inClassStaticBlock||"arguments"!==i&&"await"!==i||this.raise(e,"Cannot use "+i+" in class static initialization block"),this.keywords.test(i)&&this.raise(e,"Unexpected keyword '"+i+"'"),this.options.ecmaVersion<6&&-1!==this.input.slice(e,n).indexOf("\\")||(this.strict?this.reservedWordsStrict:this.reservedWords).test(i)&&(this.inAsync||"await"!==i||this.raiseRecoverable(e,"Cannot use keyword 'await' outside an async function"),this.raiseRecoverable(e,"The keyword '"+i+"' is reserved"))},_t.parseIdent=function(t){var e=this.parseIdentNode();return this.next(!!t),this.finishNode(e,"Identifier"),t||(this.checkUnreserved(e),"await"!==e.name||this.awaitIdentPos||(this.awaitIdentPos=e.start)),e},_t.parseIdentNode=function(){var t=this.startNode();return this.type===w.name?t.name=this.value:this.type.keyword?(t.name=this.type.keyword,"class"!==t.name&&"function"!==t.name||this.lastTokEnd===this.lastTokStart+1&&46===this.input.charCodeAt(this.lastTokStart)||this.context.pop()):this.unexpected(),t},_t.parsePrivateIdent=function(){var t=this.startNode();return this.type===w.privateId?t.name=this.value:this.unexpected(),this.next(),this.finishNode(t,"PrivateIdentifier"),this.options.checkPrivateFields&&(0===this.privateNameStack.length?this.raise(t.start,"Private field '#"+t.name+"' must be declared in an enclosing class"):this.privateNameStack[this.privateNameStack.length-1].used.push(t)),t},_t.parseYield=function(t){this.yieldPos||(this.yieldPos=this.start);var e=this.startNode();return this.next(),this.type===w.semi||this.canInsertSemicolon()||this.type!==w.star&&!this.type.startsExpr?(e.delegate=!1,e.argument=null):(e.delegate=this.eat(w.star),e.argument=this.parseMaybeAssign(t)),this.finishNode(e,"YieldExpression")},_t.parseAwait=function(t){this.awaitPos||(this.awaitPos=this.start);var e=this.startNode();return this.next(),e.argument=this.parseMaybeUnary(null,!0,!1,t),this.finishNode(e,"AwaitExpression")};var Ct=rt.prototype;Ct.raise=function(t,e){var n=P(this.input,t);e+=" ("+n.line+":"+n.column+")";var i=new SyntaxError(e);throw i.pos=t,i.loc=n,i.raisedAt=this.pos,i},Ct.raiseRecoverable=Ct.raise,Ct.curPosition=function(){if(this.options.locations)return new N(this.curLine,this.pos-this.lineStart)};var St=rt.prototype,Tt=function(t){this.flags=t,this.var=[],this.lexical=[],this.functions=[],this.inClassFieldInit=!1};St.enterScope=function(t){this.scopeStack.push(new Tt(t))},St.exitScope=function(){this.scopeStack.pop()},St.treatFunctionsAsVarInScope=function(t){return t.flags&U||!this.inModule&&t.flags&H},St.declareName=function(t,e,n){var i=!1;if(e===et){var a=this.currentScope();i=a.lexical.indexOf(t)>-1||a.functions.indexOf(t)>-1||a.var.indexOf(t)>-1,a.lexical.push(t),this.inModule&&a.flags&H&&delete this.undefinedExports[t]}else if(e===it)this.currentScope().lexical.push(t);else if(e===nt){var r=this.currentScope();i=this.treatFunctionsAsVar?r.lexical.indexOf(t)>-1:r.lexical.indexOf(t)>-1||r.var.indexOf(t)>-1,r.functions.push(t)}else for(var o=this.scopeStack.length-1;o>=0;--o){var s=this.scopeStack[o];if(s.lexical.indexOf(t)>-1&&!(s.flags&Y&&s.lexical[0]===t)||!this.treatFunctionsAsVarInScope(s)&&s.functions.indexOf(t)>-1){i=!0;break}if(s.var.push(t),this.inModule&&s.flags&H&&delete this.undefinedExports[t],s.flags&X)break}i&&this.raiseRecoverable(n,"Identifier '"+t+"' has already been declared")},St.checkLocalExport=function(t){-1===this.scopeStack[0].lexical.indexOf(t.name)&&-1===this.scopeStack[0].var.indexOf(t.name)&&(this.undefinedExports[t.name]=t)},St.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},St.currentVarScope=function(){for(var t=this.scopeStack.length-1;;t--){var e=this.scopeStack[t];if(e.flags&X)return e}},St.currentThisScope=function(){for(var t=this.scopeStack.length-1;;t--){var e=this.scopeStack[t];if(e.flags&X&&!(e.flags&W))return e}};var At=function(t,e,n){this.type="",this.start=e,this.end=0,t.options.locations&&(this.loc=new B(t,n)),t.options.directSourceFile&&(this.sourceFile=t.options.directSourceFile),t.options.ranges&&(this.range=[e,0])},Dt=rt.prototype;function It(t,e,n,i){return t.type=e,t.end=n,this.options.locations&&(t.loc.end=i),this.options.ranges&&(t.range[1]=n),t}Dt.startNode=function(){return new At(this,this.start,this.startLoc)},Dt.startNodeAt=function(t,e){return new At(this,t,e)},Dt.finishNode=function(t,e){return It.call(this,t,e,this.lastTokEnd,this.lastTokEndLoc)},Dt.finishNodeAt=function(t,e,n,i){return It.call(this,t,e,n,i)},Dt.copyNode=function(t){var e=new At(this,t.start,this.startLoc);for(var n in t)e[n]=t[n];return e};var Lt="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",Ot=Lt+" Extended_Pictographic",Mt=Ot+" EBase EComp EMod EPres ExtPict",Nt={9:Lt,10:Ot,11:Ot,12:Mt,13:Mt,14:Mt},Bt={9:"",10:"",11:"",12:"",13:"",14:"Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji"},Pt="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",Ft="Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",jt=Ft+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",$t=jt+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho",zt=$t+" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi",Ht=zt+" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith",Ut={9:Ft,10:jt,11:$t,12:zt,13:Ht,14:Ht+" Hrkt Katakana_Or_Hiragana Kawi Nag_Mundari Nagm Unknown Zzzz"},Vt={};function qt(t){var e=Vt[t]={binary:L(Nt[t]+" "+Pt),binaryOfStrings:L(Bt[t]),nonBinary:{General_Category:L(Pt),Script:L(Ut[t])}};e.nonBinary.Script_Extensions=e.nonBinary.Script,e.nonBinary.gc=e.nonBinary.General_Category,e.nonBinary.sc=e.nonBinary.Script,e.nonBinary.scx=e.nonBinary.Script_Extensions}for(var Wt=0,Yt=[9,10,11,12,13,14];Wt<Yt.length;Wt+=1)qt(Yt[Wt]);var Gt=rt.prototype,Zt=function(t){this.parser=t,this.validFlags="gim"+(t.options.ecmaVersion>=6?"uy":"")+(t.options.ecmaVersion>=9?"s":"")+(t.options.ecmaVersion>=13?"d":"")+(t.options.ecmaVersion>=15?"v":""),this.unicodeProperties=Vt[t.options.ecmaVersion>=14?14:t.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchV=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};function Kt(t){return 36===t||t>=40&&t<=43||46===t||63===t||t>=91&&t<=94||t>=123&&t<=125}function Xt(t){return h(t,!0)||36===t||95===t}function Jt(t){return f(t,!0)||36===t||95===t||8204===t||8205===t}function Qt(t){return t>=65&&t<=90||t>=97&&t<=122}function te(t){return t>=0&&t<=1114111}Zt.prototype.reset=function(t,e,n){var i=-1!==n.indexOf("v"),a=-1!==n.indexOf("u");this.start=0|t,this.source=e+"",this.flags=n,i&&this.parser.options.ecmaVersion>=15?(this.switchU=!0,this.switchV=!0,this.switchN=!0):(this.switchU=a&&this.parser.options.ecmaVersion>=6,this.switchV=!1,this.switchN=a&&this.parser.options.ecmaVersion>=9)},Zt.prototype.raise=function(t){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+t)},Zt.prototype.at=function(t,e){void 0===e&&(e=!1);var n=this.source,i=n.length;if(t>=i)return-1;var a=n.charCodeAt(t);if(!e&&!this.switchU||a<=55295||a>=57344||t+1>=i)return a;var r=n.charCodeAt(t+1);return r>=56320&&r<=57343?(a<<10)+r-56613888:a},Zt.prototype.nextIndex=function(t,e){void 0===e&&(e=!1);var n=this.source,i=n.length;if(t>=i)return i;var a,r=n.charCodeAt(t);return!e&&!this.switchU||r<=55295||r>=57344||t+1>=i||(a=n.charCodeAt(t+1))<56320||a>57343?t+1:t+2},Zt.prototype.current=function(t){return void 0===t&&(t=!1),this.at(this.pos,t)},Zt.prototype.lookahead=function(t){return void 0===t&&(t=!1),this.at(this.nextIndex(this.pos,t),t)},Zt.prototype.advance=function(t){void 0===t&&(t=!1),this.pos=this.nextIndex(this.pos,t)},Zt.prototype.eat=function(t,e){return void 0===e&&(e=!1),this.current(e)===t&&(this.advance(e),!0)},Zt.prototype.eatChars=function(t,e){void 0===e&&(e=!1);for(var n=this.pos,i=0,a=t;i<a.length;i+=1){var r=a[i],o=this.at(n,e);if(-1===o||o!==r)return!1;n=this.nextIndex(n,e)}return this.pos=n,!0},Gt.validateRegExpFlags=function(t){for(var e=t.validFlags,n=t.flags,i=!1,a=!1,r=0;r<n.length;r++){var o=n.charAt(r);-1===e.indexOf(o)&&this.raise(t.start,"Invalid regular expression flag"),n.indexOf(o,r+1)>-1&&this.raise(t.start,"Duplicate regular expression flag"),"u"===o&&(i=!0),"v"===o&&(a=!0)}this.options.ecmaVersion>=15&&i&&a&&this.raise(t.start,"Invalid regular expression flag")},Gt.validateRegExpPattern=function(t){this.regexp_pattern(t),!t.switchN&&this.options.ecmaVersion>=9&&t.groupNames.length>0&&(t.switchN=!0,this.regexp_pattern(t))},Gt.regexp_pattern=function(t){t.pos=0,t.lastIntValue=0,t.lastStringValue="",t.lastAssertionIsQuantifiable=!1,t.numCapturingParens=0,t.maxBackReference=0,t.groupNames.length=0,t.backReferenceNames.length=0,this.regexp_disjunction(t),t.pos!==t.source.length&&(t.eat(41)&&t.raise("Unmatched ')'"),(t.eat(93)||t.eat(125))&&t.raise("Lone quantifier brackets")),t.maxBackReference>t.numCapturingParens&&t.raise("Invalid escape");for(var e=0,n=t.backReferenceNames;e<n.length;e+=1){var i=n[e];-1===t.groupNames.indexOf(i)&&t.raise("Invalid named capture referenced")}},Gt.regexp_disjunction=function(t){for(this.regexp_alternative(t);t.eat(124);)this.regexp_alternative(t);this.regexp_eatQuantifier(t,!0)&&t.raise("Nothing to repeat"),t.eat(123)&&t.raise("Lone quantifier brackets")},Gt.regexp_alternative=function(t){for(;t.pos<t.source.length&&this.regexp_eatTerm(t););},Gt.regexp_eatTerm=function(t){return this.regexp_eatAssertion(t)?(t.lastAssertionIsQuantifiable&&this.regexp_eatQuantifier(t)&&t.switchU&&t.raise("Invalid quantifier"),!0):!!(t.switchU?this.regexp_eatAtom(t):this.regexp_eatExtendedAtom(t))&&(this.regexp_eatQuantifier(t),!0)},Gt.regexp_eatAssertion=function(t){var e=t.pos;if(t.lastAssertionIsQuantifiable=!1,t.eat(94)||t.eat(36))return!0;if(t.eat(92)){if(t.eat(66)||t.eat(98))return!0;t.pos=e}if(t.eat(40)&&t.eat(63)){var n=!1;if(this.options.ecmaVersion>=9&&(n=t.eat(60)),t.eat(61)||t.eat(33))return this.regexp_disjunction(t),t.eat(41)||t.raise("Unterminated group"),t.lastAssertionIsQuantifiable=!n,!0}return t.pos=e,!1},Gt.regexp_eatQuantifier=function(t,e){return void 0===e&&(e=!1),!!this.regexp_eatQuantifierPrefix(t,e)&&(t.eat(63),!0)},Gt.regexp_eatQuantifierPrefix=function(t,e){return t.eat(42)||t.eat(43)||t.eat(63)||this.regexp_eatBracedQuantifier(t,e)},Gt.regexp_eatBracedQuantifier=function(t,e){var n=t.pos;if(t.eat(123)){var i=0,a=-1;if(this.regexp_eatDecimalDigits(t)&&(i=t.lastIntValue,t.eat(44)&&this.regexp_eatDecimalDigits(t)&&(a=t.lastIntValue),t.eat(125)))return-1!==a&&a<i&&!e&&t.raise("numbers out of order in {} quantifier"),!0;t.switchU&&!e&&t.raise("Incomplete quantifier"),t.pos=n}return!1},Gt.regexp_eatAtom=function(t){return this.regexp_eatPatternCharacters(t)||t.eat(46)||this.regexp_eatReverseSolidusAtomEscape(t)||this.regexp_eatCharacterClass(t)||this.regexp_eatUncapturingGroup(t)||this.regexp_eatCapturingGroup(t)},Gt.regexp_eatReverseSolidusAtomEscape=function(t){var e=t.pos;if(t.eat(92)){if(this.regexp_eatAtomEscape(t))return!0;t.pos=e}return!1},Gt.regexp_eatUncapturingGroup=function(t){var e=t.pos;if(t.eat(40)){if(t.eat(63)&&t.eat(58)){if(this.regexp_disjunction(t),t.eat(41))return!0;t.raise("Unterminated group")}t.pos=e}return!1},Gt.regexp_eatCapturingGroup=function(t){if(t.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(t):63===t.current()&&t.raise("Invalid group"),this.regexp_disjunction(t),t.eat(41))return t.numCapturingParens+=1,!0;t.raise("Unterminated group")}return!1},Gt.regexp_eatExtendedAtom=function(t){return t.eat(46)||this.regexp_eatReverseSolidusAtomEscape(t)||this.regexp_eatCharacterClass(t)||this.regexp_eatUncapturingGroup(t)||this.regexp_eatCapturingGroup(t)||this.regexp_eatInvalidBracedQuantifier(t)||this.regexp_eatExtendedPatternCharacter(t)},Gt.regexp_eatInvalidBracedQuantifier=function(t){return this.regexp_eatBracedQuantifier(t,!0)&&t.raise("Nothing to repeat"),!1},Gt.regexp_eatSyntaxCharacter=function(t){var e=t.current();return!!Kt(e)&&(t.lastIntValue=e,t.advance(),!0)},Gt.regexp_eatPatternCharacters=function(t){for(var e=t.pos,n=0;-1!==(n=t.current())&&!Kt(n);)t.advance();return t.pos!==e},Gt.regexp_eatExtendedPatternCharacter=function(t){var e=t.current();return!(-1===e||36===e||e>=40&&e<=43||46===e||63===e||91===e||94===e||124===e||(t.advance(),0))},Gt.regexp_groupSpecifier=function(t){if(t.eat(63)){if(this.regexp_eatGroupName(t))return-1!==t.groupNames.indexOf(t.lastStringValue)&&t.raise("Duplicate capture group name"),void t.groupNames.push(t.lastStringValue);t.raise("Invalid group")}},Gt.regexp_eatGroupName=function(t){if(t.lastStringValue="",t.eat(60)){if(this.regexp_eatRegExpIdentifierName(t)&&t.eat(62))return!0;t.raise("Invalid capture group name")}return!1},Gt.regexp_eatRegExpIdentifierName=function(t){if(t.lastStringValue="",this.regexp_eatRegExpIdentifierStart(t)){for(t.lastStringValue+=O(t.lastIntValue);this.regexp_eatRegExpIdentifierPart(t);)t.lastStringValue+=O(t.lastIntValue);return!0}return!1},Gt.regexp_eatRegExpIdentifierStart=function(t){var e=t.pos,n=this.options.ecmaVersion>=11,i=t.current(n);return t.advance(n),92===i&&this.regexp_eatRegExpUnicodeEscapeSequence(t,n)&&(i=t.lastIntValue),Xt(i)?(t.lastIntValue=i,!0):(t.pos=e,!1)},Gt.regexp_eatRegExpIdentifierPart=function(t){var e=t.pos,n=this.options.ecmaVersion>=11,i=t.current(n);return t.advance(n),92===i&&this.regexp_eatRegExpUnicodeEscapeSequence(t,n)&&(i=t.lastIntValue),Jt(i)?(t.lastIntValue=i,!0):(t.pos=e,!1)},Gt.regexp_eatAtomEscape=function(t){return!!(this.regexp_eatBackReference(t)||this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)||t.switchN&&this.regexp_eatKGroupName(t))||(t.switchU&&(99===t.current()&&t.raise("Invalid unicode escape"),t.raise("Invalid escape")),!1)},Gt.regexp_eatBackReference=function(t){var e=t.pos;if(this.regexp_eatDecimalEscape(t)){var n=t.lastIntValue;if(t.switchU)return n>t.maxBackReference&&(t.maxBackReference=n),!0;if(n<=t.numCapturingParens)return!0;t.pos=e}return!1},Gt.regexp_eatKGroupName=function(t){if(t.eat(107)){if(this.regexp_eatGroupName(t))return t.backReferenceNames.push(t.lastStringValue),!0;t.raise("Invalid named reference")}return!1},Gt.regexp_eatCharacterEscape=function(t){return this.regexp_eatControlEscape(t)||this.regexp_eatCControlLetter(t)||this.regexp_eatZero(t)||this.regexp_eatHexEscapeSequence(t)||this.regexp_eatRegExpUnicodeEscapeSequence(t,!1)||!t.switchU&&this.regexp_eatLegacyOctalEscapeSequence(t)||this.regexp_eatIdentityEscape(t)},Gt.regexp_eatCControlLetter=function(t){var e=t.pos;if(t.eat(99)){if(this.regexp_eatControlLetter(t))return!0;t.pos=e}return!1},Gt.regexp_eatZero=function(t){return 48===t.current()&&!ue(t.lookahead())&&(t.lastIntValue=0,t.advance(),!0)},Gt.regexp_eatControlEscape=function(t){var e=t.current();return 116===e?(t.lastIntValue=9,t.advance(),!0):110===e?(t.lastIntValue=10,t.advance(),!0):118===e?(t.lastIntValue=11,t.advance(),!0):102===e?(t.lastIntValue=12,t.advance(),!0):114===e&&(t.lastIntValue=13,t.advance(),!0)},Gt.regexp_eatControlLetter=function(t){var e=t.current();return!!Qt(e)&&(t.lastIntValue=e%32,t.advance(),!0)},Gt.regexp_eatRegExpUnicodeEscapeSequence=function(t,e){void 0===e&&(e=!1);var n=t.pos,i=e||t.switchU;if(t.eat(117)){if(this.regexp_eatFixedHexDigits(t,4)){var a=t.lastIntValue;if(i&&a>=55296&&a<=56319){var r=t.pos;if(t.eat(92)&&t.eat(117)&&this.regexp_eatFixedHexDigits(t,4)){var o=t.lastIntValue;if(o>=56320&&o<=57343)return t.lastIntValue=1024*(a-55296)+(o-56320)+65536,!0}t.pos=r,t.lastIntValue=a}return!0}if(i&&t.eat(123)&&this.regexp_eatHexDigits(t)&&t.eat(125)&&te(t.lastIntValue))return!0;i&&t.raise("Invalid unicode escape"),t.pos=n}return!1},Gt.regexp_eatIdentityEscape=function(t){if(t.switchU)return!!this.regexp_eatSyntaxCharacter(t)||!!t.eat(47)&&(t.lastIntValue=47,!0);var e=t.current();return!(99===e||t.switchN&&107===e||(t.lastIntValue=e,t.advance(),0))},Gt.regexp_eatDecimalEscape=function(t){t.lastIntValue=0;var e=t.current();if(e>=49&&e<=57){do{t.lastIntValue=10*t.lastIntValue+(e-48),t.advance()}while((e=t.current())>=48&&e<=57);return!0}return!1};var ee=0,ne=1,ie=2;function ae(t){return 100===t||68===t||115===t||83===t||119===t||87===t}function re(t){return Qt(t)||95===t}function oe(t){return re(t)||ue(t)}function se(t){return 33===t||t>=35&&t<=38||t>=42&&t<=44||46===t||t>=58&&t<=64||94===t||96===t||126===t}function ce(t){return 40===t||41===t||45===t||47===t||t>=91&&t<=93||t>=123&&t<=125}function le(t){return 33===t||35===t||37===t||38===t||44===t||45===t||t>=58&&t<=62||64===t||96===t||126===t}function ue(t){return t>=48&&t<=57}function de(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}function he(t){return t>=65&&t<=70?t-65+10:t>=97&&t<=102?t-97+10:t-48}function fe(t){return t>=48&&t<=55}Gt.regexp_eatCharacterClassEscape=function(t){var e=t.current();if(ae(e))return t.lastIntValue=-1,t.advance(),ne;var n=!1;if(t.switchU&&this.options.ecmaVersion>=9&&((n=80===e)||112===e)){var i;if(t.lastIntValue=-1,t.advance(),t.eat(123)&&(i=this.regexp_eatUnicodePropertyValueExpression(t))&&t.eat(125))return n&&i===ie&&t.raise("Invalid property name"),i;t.raise("Invalid property name")}return ee},Gt.regexp_eatUnicodePropertyValueExpression=function(t){var e=t.pos;if(this.regexp_eatUnicodePropertyName(t)&&t.eat(61)){var n=t.lastStringValue;if(this.regexp_eatUnicodePropertyValue(t)){var i=t.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(t,n,i),ne}}if(t.pos=e,this.regexp_eatLoneUnicodePropertyNameOrValue(t)){var a=t.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(t,a)}return ee},Gt.regexp_validateUnicodePropertyNameAndValue=function(t,e,n){D(t.unicodeProperties.nonBinary,e)||t.raise("Invalid property name"),t.unicodeProperties.nonBinary[e].test(n)||t.raise("Invalid property value")},Gt.regexp_validateUnicodePropertyNameOrValue=function(t,e){return t.unicodeProperties.binary.test(e)?ne:t.switchV&&t.unicodeProperties.binaryOfStrings.test(e)?ie:void t.raise("Invalid property name")},Gt.regexp_eatUnicodePropertyName=function(t){var e=0;for(t.lastStringValue="";re(e=t.current());)t.lastStringValue+=O(e),t.advance();return""!==t.lastStringValue},Gt.regexp_eatUnicodePropertyValue=function(t){var e=0;for(t.lastStringValue="";oe(e=t.current());)t.lastStringValue+=O(e),t.advance();return""!==t.lastStringValue},Gt.regexp_eatLoneUnicodePropertyNameOrValue=function(t){return this.regexp_eatUnicodePropertyValue(t)},Gt.regexp_eatCharacterClass=function(t){if(t.eat(91)){var e=t.eat(94),n=this.regexp_classContents(t);return t.eat(93)||t.raise("Unterminated character class"),e&&n===ie&&t.raise("Negated character class may contain strings"),!0}return!1},Gt.regexp_classContents=function(t){return 93===t.current()?ne:t.switchV?this.regexp_classSetExpression(t):(this.regexp_nonEmptyClassRanges(t),ne)},Gt.regexp_nonEmptyClassRanges=function(t){for(;this.regexp_eatClassAtom(t);){var e=t.lastIntValue;if(t.eat(45)&&this.regexp_eatClassAtom(t)){var n=t.lastIntValue;!t.switchU||-1!==e&&-1!==n||t.raise("Invalid character class"),-1!==e&&-1!==n&&e>n&&t.raise("Range out of order in character class")}}},Gt.regexp_eatClassAtom=function(t){var e=t.pos;if(t.eat(92)){if(this.regexp_eatClassEscape(t))return!0;if(t.switchU){var n=t.current();(99===n||fe(n))&&t.raise("Invalid class escape"),t.raise("Invalid escape")}t.pos=e}var i=t.current();return 93!==i&&(t.lastIntValue=i,t.advance(),!0)},Gt.regexp_eatClassEscape=function(t){var e=t.pos;if(t.eat(98))return t.lastIntValue=8,!0;if(t.switchU&&t.eat(45))return t.lastIntValue=45,!0;if(!t.switchU&&t.eat(99)){if(this.regexp_eatClassControlLetter(t))return!0;t.pos=e}return this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)},Gt.regexp_classSetExpression=function(t){var e,n=ne;if(this.regexp_eatClassSetRange(t));else if(e=this.regexp_eatClassSetOperand(t)){e===ie&&(n=ie);for(var i=t.pos;t.eatChars([38,38]);)38!==t.current()&&(e=this.regexp_eatClassSetOperand(t))?e!==ie&&(n=ne):t.raise("Invalid character in character class");if(i!==t.pos)return n;for(;t.eatChars([45,45]);)this.regexp_eatClassSetOperand(t)||t.raise("Invalid character in character class");if(i!==t.pos)return n}else t.raise("Invalid character in character class");for(;;)if(!this.regexp_eatClassSetRange(t)){if(!(e=this.regexp_eatClassSetOperand(t)))return n;e===ie&&(n=ie)}},Gt.regexp_eatClassSetRange=function(t){var e=t.pos;if(this.regexp_eatClassSetCharacter(t)){var n=t.lastIntValue;if(t.eat(45)&&this.regexp_eatClassSetCharacter(t)){var i=t.lastIntValue;return-1!==n&&-1!==i&&n>i&&t.raise("Range out of order in character class"),!0}t.pos=e}return!1},Gt.regexp_eatClassSetOperand=function(t){return this.regexp_eatClassSetCharacter(t)?ne:this.regexp_eatClassStringDisjunction(t)||this.regexp_eatNestedClass(t)},Gt.regexp_eatNestedClass=function(t){var e=t.pos;if(t.eat(91)){var n=t.eat(94),i=this.regexp_classContents(t);if(t.eat(93))return n&&i===ie&&t.raise("Negated character class may contain strings"),i;t.pos=e}if(t.eat(92)){var a=this.regexp_eatCharacterClassEscape(t);if(a)return a;t.pos=e}return null},Gt.regexp_eatClassStringDisjunction=function(t){var e=t.pos;if(t.eatChars([92,113])){if(t.eat(123)){var n=this.regexp_classStringDisjunctionContents(t);if(t.eat(125))return n}else t.raise("Invalid escape");t.pos=e}return null},Gt.regexp_classStringDisjunctionContents=function(t){for(var e=this.regexp_classString(t);t.eat(124);)this.regexp_classString(t)===ie&&(e=ie);return e},Gt.regexp_classString=function(t){for(var e=0;this.regexp_eatClassSetCharacter(t);)e++;return 1===e?ne:ie},Gt.regexp_eatClassSetCharacter=function(t){var e=t.pos;if(t.eat(92))return!(!this.regexp_eatCharacterEscape(t)&&!this.regexp_eatClassSetReservedPunctuator(t)&&(t.eat(98)?(t.lastIntValue=8,0):(t.pos=e,1)));var n=t.current();return!(n<0||n===t.lookahead()&&se(n)||ce(n)||(t.advance(),t.lastIntValue=n,0))},Gt.regexp_eatClassSetReservedPunctuator=function(t){var e=t.current();return!!le(e)&&(t.lastIntValue=e,t.advance(),!0)},Gt.regexp_eatClassControlLetter=function(t){var e=t.current();return!(!ue(e)&&95!==e||(t.lastIntValue=e%32,t.advance(),0))},Gt.regexp_eatHexEscapeSequence=function(t){var e=t.pos;if(t.eat(120)){if(this.regexp_eatFixedHexDigits(t,2))return!0;t.switchU&&t.raise("Invalid escape"),t.pos=e}return!1},Gt.regexp_eatDecimalDigits=function(t){var e=t.pos,n=0;for(t.lastIntValue=0;ue(n=t.current());)t.lastIntValue=10*t.lastIntValue+(n-48),t.advance();return t.pos!==e},Gt.regexp_eatHexDigits=function(t){var e=t.pos,n=0;for(t.lastIntValue=0;de(n=t.current());)t.lastIntValue=16*t.lastIntValue+he(n),t.advance();return t.pos!==e},Gt.regexp_eatLegacyOctalEscapeSequence=function(t){if(this.regexp_eatOctalDigit(t)){var e=t.lastIntValue;if(this.regexp_eatOctalDigit(t)){var n=t.lastIntValue;e<=3&&this.regexp_eatOctalDigit(t)?t.lastIntValue=64*e+8*n+t.lastIntValue:t.lastIntValue=8*e+n}else t.lastIntValue=e;return!0}return!1},Gt.regexp_eatOctalDigit=function(t){var e=t.current();return fe(e)?(t.lastIntValue=e-48,t.advance(),!0):(t.lastIntValue=0,!1)},Gt.regexp_eatFixedHexDigits=function(t,e){var n=t.pos;t.lastIntValue=0;for(var i=0;i<e;++i){var a=t.current();if(!de(a))return t.pos=n,!1;t.lastIntValue=16*t.lastIntValue+he(a),t.advance()}return!0};var ge=function(t){this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,t.options.locations&&(this.loc=new B(t,t.startLoc,t.endLoc)),t.options.ranges&&(this.range=[t.start,t.end])},pe=rt.prototype;function be(t,e){return e?parseInt(t,8):parseFloat(t.replace(/_/g,""))}function me(t){return"function"!=typeof BigInt?null:BigInt(t.replace(/_/g,""))}pe.next=function(t){!t&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+this.type.keyword),this.options.onToken&&this.options.onToken(new ge(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},pe.getToken=function(){return this.next(),new ge(this)},"undefined"!=typeof Symbol&&(pe[Symbol.iterator]=function(){var t=this;return{next:function(){var e=t.getToken();return{done:e.type===w.eof,value:e}}}}),pe.nextToken=function(){var t=this.curContext();return t&&t.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(w.eof):t.override?t.override(this):void this.readToken(this.fullCharCodeAtPos())},pe.readToken=function(t){return h(t,this.options.ecmaVersion>=6)||92===t?this.readWord():this.getTokenFromCode(t)},pe.fullCharCodeAtPos=function(){var t=this.input.charCodeAt(this.pos);if(t<=55295||t>=56320)return t;var e=this.input.charCodeAt(this.pos+1);return e<=56319||e>=57344?t:(t<<10)+e-56613888},pe.skipBlockComment=function(){var t=this.options.onComment&&this.curPosition(),e=this.pos,n=this.input.indexOf("*/",this.pos+=2);if(-1===n&&this.raise(this.pos-2,"Unterminated comment"),this.pos=n+2,this.options.locations)for(var i=void 0,a=e;(i=k(this.input,a,this.pos))>-1;)++this.curLine,a=this.lineStart=i;this.options.onComment&&this.options.onComment(!0,this.input.slice(e+2,n),e,this.pos,t,this.curPosition())},pe.skipLineComment=function(t){for(var e=this.pos,n=this.options.onComment&&this.curPosition(),i=this.input.charCodeAt(this.pos+=t);this.pos<this.input.length&&!_(i);)i=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(e+t,this.pos),e,this.pos,n,this.curPosition())},pe.skipSpace=function(){t:for(;this.pos<this.input.length;){var t=this.input.charCodeAt(this.pos);switch(t){case 32:case 160:++this.pos;break;case 13:10===this.input.charCodeAt(this.pos+1)&&++this.pos;case 10:case 8232:case 8233:++this.pos,this.options.locations&&(++this.curLine,this.lineStart=this.pos);break;case 47:switch(this.input.charCodeAt(this.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break t}break;default:if(!(t>8&&t<14||t>=5760&&E.test(String.fromCharCode(t))))break t;++this.pos}}},pe.finishToken=function(t,e){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var n=this.type;this.type=t,this.value=e,this.updateContext(n)},pe.readToken_dot=function(){var t=this.input.charCodeAt(this.pos+1);if(t>=48&&t<=57)return this.readNumber(!0);var e=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===t&&46===e?(this.pos+=3,this.finishToken(w.ellipsis)):(++this.pos,this.finishToken(w.dot))},pe.readToken_slash=function(){var t=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===t?this.finishOp(w.assign,2):this.finishOp(w.slash,1)},pe.readToken_mult_modulo_exp=function(t){var e=this.input.charCodeAt(this.pos+1),n=1,i=42===t?w.star:w.modulo;return this.options.ecmaVersion>=7&&42===t&&42===e&&(++n,i=w.starstar,e=this.input.charCodeAt(this.pos+2)),61===e?this.finishOp(w.assign,n+1):this.finishOp(i,n)},pe.readToken_pipe_amp=function(t){var e=this.input.charCodeAt(this.pos+1);return e===t?this.options.ecmaVersion>=12&&61===this.input.charCodeAt(this.pos+2)?this.finishOp(w.assign,3):this.finishOp(124===t?w.logicalOR:w.logicalAND,2):61===e?this.finishOp(w.assign,2):this.finishOp(124===t?w.bitwiseOR:w.bitwiseAND,1)},pe.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(w.assign,2):this.finishOp(w.bitwiseXOR,1)},pe.readToken_plus_min=function(t){var e=this.input.charCodeAt(this.pos+1);return e===t?45!==e||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!x.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(w.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===e?this.finishOp(w.assign,2):this.finishOp(w.plusMin,1)},pe.readToken_lt_gt=function(t){var e=this.input.charCodeAt(this.pos+1),n=1;return e===t?(n=62===t&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+n)?this.finishOp(w.assign,n+1):this.finishOp(w.bitShift,n)):33!==e||60!==t||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===e&&(n=2),this.finishOp(w.relational,n)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},pe.readToken_eq_excl=function(t){var e=this.input.charCodeAt(this.pos+1);return 61===e?this.finishOp(w.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===t&&62===e&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(w.arrow)):this.finishOp(61===t?w.eq:w.prefix,1)},pe.readToken_question=function(){var t=this.options.ecmaVersion;if(t>=11){var e=this.input.charCodeAt(this.pos+1);if(46===e){var n=this.input.charCodeAt(this.pos+2);if(n<48||n>57)return this.finishOp(w.questionDot,2)}if(63===e)return t>=12&&61===this.input.charCodeAt(this.pos+2)?this.finishOp(w.assign,3):this.finishOp(w.coalesce,2)}return this.finishOp(w.question,1)},pe.readToken_numberSign=function(){var t=35;if(this.options.ecmaVersion>=13&&(++this.pos,h(t=this.fullCharCodeAtPos(),!0)||92===t))return this.finishToken(w.privateId,this.readWord1());this.raise(this.pos,"Unexpected character '"+O(t)+"'")},pe.getTokenFromCode=function(t){switch(t){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(w.parenL);case 41:return++this.pos,this.finishToken(w.parenR);case 59:return++this.pos,this.finishToken(w.semi);case 44:return++this.pos,this.finishToken(w.comma);case 91:return++this.pos,this.finishToken(w.bracketL);case 93:return++this.pos,this.finishToken(w.bracketR);case 123:return++this.pos,this.finishToken(w.braceL);case 125:return++this.pos,this.finishToken(w.braceR);case 58:return++this.pos,this.finishToken(w.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(w.backQuote);case 48:var e=this.input.charCodeAt(this.pos+1);if(120===e||88===e)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===e||79===e)return this.readRadixNumber(8);if(98===e||66===e)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(t);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(t);case 124:case 38:return this.readToken_pipe_amp(t);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(t);case 60:case 62:return this.readToken_lt_gt(t);case 61:case 33:return this.readToken_eq_excl(t);case 63:return this.readToken_question();case 126:return this.finishOp(w.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,"Unexpected character '"+O(t)+"'")},pe.finishOp=function(t,e){var n=this.input.slice(this.pos,this.pos+e);return this.pos+=e,this.finishToken(t,n)},pe.readRegexp=function(){for(var t,e,n=this.pos;;){this.pos>=this.input.length&&this.raise(n,"Unterminated regular expression");var i=this.input.charAt(this.pos);if(x.test(i)&&this.raise(n,"Unterminated regular expression"),t)t=!1;else{if("["===i)e=!0;else if("]"===i&&e)e=!1;else if("/"===i&&!e)break;t="\\"===i}++this.pos}var a=this.input.slice(n,this.pos);++this.pos;var r=this.pos,o=this.readWord1();this.containsEsc&&this.unexpected(r);var s=this.regexpState||(this.regexpState=new Zt(this));s.reset(n,a,o),this.validateRegExpFlags(s),this.validateRegExpPattern(s);var c=null;try{c=new RegExp(a,o)}catch(l){}return this.finishToken(w.regexp,{pattern:a,flags:o,value:c})},pe.readInt=function(t,e,n){for(var i=this.options.ecmaVersion>=12&&void 0===e,a=n&&48===this.input.charCodeAt(this.pos),r=this.pos,o=0,s=0,c=0,l=null==e?1/0:e;c<l;++c,++this.pos){var u=this.input.charCodeAt(this.pos),d=void 0;if(i&&95===u)a&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed in legacy octal numeric literals"),95===s&&this.raiseRecoverable(this.pos,"Numeric separator must be exactly one underscore"),0===c&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed at the first of digits"),s=u;else{if((d=u>=97?u-97+10:u>=65?u-65+10:u>=48&&u<=57?u-48:1/0)>=t)break;s=u,o=o*t+d}}return i&&95===s&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===r||null!=e&&this.pos-r!==e?null:o},pe.readRadixNumber=function(t){var e=this.pos;this.pos+=2;var n=this.readInt(t);return null==n&&this.raise(this.start+2,"Expected number in radix "+t),this.options.ecmaVersion>=11&&110===this.input.charCodeAt(this.pos)?(n=me(this.input.slice(e,this.pos)),++this.pos):h(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(w.num,n)},pe.readNumber=function(t){var e=this.pos;t||null!==this.readInt(10,void 0,!0)||this.raise(e,"Invalid number");var n=this.pos-e>=2&&48===this.input.charCodeAt(e);n&&this.strict&&this.raise(e,"Invalid number");var i=this.input.charCodeAt(this.pos);if(!n&&!t&&this.options.ecmaVersion>=11&&110===i){var a=me(this.input.slice(e,this.pos));return++this.pos,h(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(w.num,a)}n&&/[89]/.test(this.input.slice(e,this.pos))&&(n=!1),46!==i||n||(++this.pos,this.readInt(10),i=this.input.charCodeAt(this.pos)),69!==i&&101!==i||n||(43!==(i=this.input.charCodeAt(++this.pos))&&45!==i||++this.pos,null===this.readInt(10)&&this.raise(e,"Invalid number")),h(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var r=be(this.input.slice(e,this.pos),n);return this.finishToken(w.num,r)},pe.readCodePoint=function(){var t;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var e=++this.pos;t=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(e,"Code point out of bounds")}else t=this.readHexChar(4);return t},pe.readString=function(t){for(var e="",n=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var i=this.input.charCodeAt(this.pos);if(i===t)break;92===i?(e+=this.input.slice(n,this.pos),e+=this.readEscapedChar(!1),n=this.pos):8232===i||8233===i?(this.options.ecmaVersion<10&&this.raise(this.start,"Unterminated string constant"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(_(i)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return e+=this.input.slice(n,this.pos++),this.finishToken(w.string,e)};var ye={};pe.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(t){if(t!==ye)throw t;this.readInvalidTemplateToken()}this.inTemplateElement=!1},pe.invalidStringToken=function(t,e){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw ye;this.raise(t,e)},pe.readTmplToken=function(){for(var t="",e=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var n=this.input.charCodeAt(this.pos);if(96===n||36===n&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==w.template&&this.type!==w.invalidTemplate?(t+=this.input.slice(e,this.pos),this.finishToken(w.template,t)):36===n?(this.pos+=2,this.finishToken(w.dollarBraceL)):(++this.pos,this.finishToken(w.backQuote));if(92===n)t+=this.input.slice(e,this.pos),t+=this.readEscapedChar(!0),e=this.pos;else if(_(n)){switch(t+=this.input.slice(e,this.pos),++this.pos,n){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:t+="\n";break;default:t+=String.fromCharCode(n)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),e=this.pos}else++this.pos}},pe.readInvalidTemplateToken=function(){for(;this.pos<this.input.length;this.pos++)switch(this.input[this.pos]){case"\\":++this.pos;break;case"$":if("{"!==this.input[this.pos+1])break;case"`":return this.finishToken(w.invalidTemplate,this.input.slice(this.start,this.pos))}this.raise(this.start,"Unterminated template")},pe.readEscapedChar=function(t){var e=this.input.charCodeAt(++this.pos);switch(++this.pos,e){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return O(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";case 56:case 57:if(this.strict&&this.invalidStringToken(this.pos-1,"Invalid escape sequence"),t){var n=this.pos-1;this.invalidStringToken(n,"Invalid escape sequence in template string")}default:if(e>=48&&e<=55){var i=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],a=parseInt(i,8);return a>255&&(i=i.slice(0,-1),a=parseInt(i,8)),this.pos+=i.length-1,e=this.input.charCodeAt(this.pos),"0"===i&&56!==e&&57!==e||!this.strict&&!t||this.invalidStringToken(this.pos-1-i.length,t?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(a)}return _(e)?"":String.fromCharCode(e)}},pe.readHexChar=function(t){var e=this.pos,n=this.readInt(16,t);return null===n&&this.invalidStringToken(e,"Bad character escape sequence"),n},pe.readWord1=function(){this.containsEsc=!1;for(var t="",e=!0,n=this.pos,i=this.options.ecmaVersion>=6;this.pos<this.input.length;){var a=this.fullCharCodeAtPos();if(f(a,i))this.pos+=a<=65535?1:2;else{if(92!==a)break;this.containsEsc=!0,t+=this.input.slice(n,this.pos);var r=this.pos;117!==this.input.charCodeAt(++this.pos)&&this.invalidStringToken(this.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.pos;var o=this.readCodePoint();(e?h:f)(o,i)||this.invalidStringToken(r,"Invalid Unicode escape"),t+=O(o),n=this.pos}e=!1}return t+this.input.slice(n,this.pos)},pe.readWord=function(){var t=this.readWord1(),e=w.name;return this.keywords.test(t)&&(e=y[t]),this.finishToken(e,t)};var ve="8.10.0";function we(t,e){return rt.parse(t,e)}function xe(t,e,n){return rt.parseExpressionAt(t,e,n)}function Re(t,e){return rt.tokenizer(t,e)}rt.acorn={Parser:rt,version:ve,defaultOptions:F,Position:N,SourceLocation:B,getLineInfo:P,Node:At,TokenType:g,tokTypes:w,keywordTypes:y,TokContext:wt,tokContexts:xt,isIdentifierChar:f,isIdentifierStart:h,Token:ge,isNewLine:_,lineBreak:x,lineBreakG:R,nonASCIIwhitespace:E},t.Node=At,t.Parser=rt,t.Position=N,t.SourceLocation=B,t.TokContext=wt,t.Token=ge,t.TokenType=g,t.defaultOptions=F,t.getLineInfo=P,t.isIdentifierChar=f,t.isIdentifierStart=h,t.isNewLine=_,t.keywordTypes=y,t.lineBreak=x,t.lineBreakG=R,t.nonASCIIwhitespace=E,t.parse=we,t.parseExpressionAt=xe,t.tokContexts=xt,t.tokTypes=w,t.tokenizer=Re,t.version=ve}(e)},74071:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});const i={CodeBlockFilenameTab:"CodeBlockFilenameTab_T2zd"}},43150:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});const i={button:"button_ipBY"}},10275:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});const i={filepath_validation_list:"filepath_validation_list_jJSD"}},1925:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});const i={editor:"editor_ksb3",editor_header:"editor_header_k1u9",cta_wrapper:"cta_wrapper_gL2E",editor_input:"editor_input_J9Qe",editor_preview:"editor_preview_IykG",preview_fail_note:"preview_fail_note_lUiM",live_editor:"live_editor_gff9",live_error:"live_error_EIYU",live_preview:"live_preview_LmGk",unknown_component:"unknown_component_htsO",unknown_component_children:"unknown_component_children_WmeU"}},84373:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});const i={FeedbackButton:"FeedbackButton_oOHZ",FeedbackIcon:"FeedbackIcon_kE_h"}},87594:(t,e)=>{function n(t){let e,n=[];for(let i of t.split(",").map((t=>t.trim())))if(/^-?\d+$/.test(i))n.push(parseInt(i,10));else if(e=i.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[t,i,a,r]=e;if(i&&r){i=parseInt(i),r=parseInt(r);const t=i<r?1:-1;"-"!==a&&".."!==a&&"\u2025"!==a||(r+=t);for(let e=i;e!==r;e+=t)n.push(e)}}return n}e.default=n,t.exports=n},46871:(t,e,n)=>{"use strict";function i(){var t=this.constructor.getDerivedStateFromProps(this.props,this.state);null!=t&&this.setState(t)}function a(t){this.setState(function(e){var n=this.constructor.getDerivedStateFromProps(t,e);return null!=n?n:null}.bind(this))}function r(t,e){try{var n=this.props,i=this.state;this.props=t,this.state=e,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(n,i)}finally{this.props=n,this.state=i}}function o(t){var e=t.prototype;if(!e||!e.isReactComponent)throw new Error("Can only polyfill class components");if("function"!=typeof t.getDerivedStateFromProps&&"function"!=typeof e.getSnapshotBeforeUpdate)return t;var n=null,o=null,s=null;if("function"==typeof e.componentWillMount?n="componentWillMount":"function"==typeof e.UNSAFE_componentWillMount&&(n="UNSAFE_componentWillMount"),"function"==typeof e.componentWillReceiveProps?o="componentWillReceiveProps":"function"==typeof e.UNSAFE_componentWillReceiveProps&&(o="UNSAFE_componentWillReceiveProps"),"function"==typeof e.componentWillUpdate?s="componentWillUpdate":"function"==typeof e.UNSAFE_componentWillUpdate&&(s="UNSAFE_componentWillUpdate"),null!==n||null!==o||null!==s){var c=t.displayName||t.name,l="function"==typeof t.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+c+" uses "+l+" but also contains the following legacy lifecycles:"+(null!==n?"\n "+n:"")+(null!==o?"\n "+o:"")+(null!==s?"\n "+s:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"==typeof t.getDerivedStateFromProps&&(e.componentWillMount=i,e.componentWillReceiveProps=a),"function"==typeof e.getSnapshotBeforeUpdate){if("function"!=typeof e.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");e.componentWillUpdate=r;var u=e.componentDidUpdate;e.componentDidUpdate=function(t,e,n){var i=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:n;u.call(this,t,e,i)}}return t}n.r(e),n.d(e,{polyfill:()=>o}),i.__suppressDeprecationWarning=!0,a.__suppressDeprecationWarning=!0,r.__suppressDeprecationWarning=!0},2497:(t,e,n)=>{"use strict";n.r(e),n.d(e,{Editor:()=>ti,LiveContext:()=>ei,LiveEditor:()=>vi,LiveError:()=>wi,LivePreview:()=>Ri,LiveProvider:()=>yi,generateElement:()=>gi,renderElementAsync:()=>pi,withLive:()=>_i});for(var i=n(67294),a=n(40460),r=n.n(a),o=n(23746),s=n(87410),c=n(11890),l=n.n(c),u={},d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",h=0;h<d.length;h++)u[d.charCodeAt(h)]=h;function f(t){var e="";t=t<0?-t<<1|1:t<<1;do{var n=31&t;(t>>>=5)>0&&(n|=32),e+=d[n]}while(t>0);return e}var g=function t(e){this.bits=e instanceof t?e.bits.slice():[]};g.prototype.add=function(t){this.bits[t>>5]|=1<<(31&t)},g.prototype.has=function(t){return!!(this.bits[t>>5]&1<<(31&t))};var p=function(t,e,n){this.start=t,this.end=e,this.original=n,this.intro="",this.outro="",this.content=n,this.storeName=!1,this.edited=!1,Object.defineProperties(this,{previous:{writable:!0,value:null},next:{writable:!0,value:null}})};p.prototype.appendLeft=function(t){this.outro+=t},p.prototype.appendRight=function(t){this.intro=this.intro+t},p.prototype.clone=function(){var t=new p(this.start,this.end,this.original);return t.intro=this.intro,t.outro=this.outro,t.content=this.content,t.storeName=this.storeName,t.edited=this.edited,t},p.prototype.contains=function(t){return this.start<t&&t<this.end},p.prototype.eachNext=function(t){for(var e=this;e;)t(e),e=e.next},p.prototype.eachPrevious=function(t){for(var e=this;e;)t(e),e=e.previous},p.prototype.edit=function(t,e,n){return this.content=t,n||(this.intro="",this.outro=""),this.storeName=e,this.edited=!0,this},p.prototype.prependLeft=function(t){this.outro=t+this.outro},p.prototype.prependRight=function(t){this.intro=t+this.intro},p.prototype.split=function(t){var e=t-this.start,n=this.original.slice(0,e),i=this.original.slice(e);this.original=n;var a=new p(t,this.end,i);return a.outro=this.outro,this.outro="",this.end=t,this.edited?(a.edit("",!1),this.content=""):this.content=n,a.next=this.next,a.next&&(a.next.previous=a),a.previous=this,this.next=a,a},p.prototype.toString=function(){return this.intro+this.content+this.outro},p.prototype.trimEnd=function(t){if(this.outro=this.outro.replace(t,""),this.outro.length)return!0;var e=this.content.replace(t,"");return e.length?(e!==this.content&&this.split(this.start+e.length).edit("",void 0,!0),!0):(this.edit("",void 0,!0),this.intro=this.intro.replace(t,""),!!this.intro.length||void 0)},p.prototype.trimStart=function(t){if(this.intro=this.intro.replace(t,""),this.intro.length)return!0;var e=this.content.replace(t,"");return e.length?(e!==this.content&&(this.split(this.end-e.length),this.edit("",void 0,!0)),!0):(this.edit("",void 0,!0),this.outro=this.outro.replace(t,""),!!this.outro.length||void 0)};var b=function(){throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.")};"undefined"!=typeof window&&"function"==typeof window.btoa?b=function(t){return window.btoa(unescape(encodeURIComponent(t)))}:"function"==typeof Buffer&&(b=function(t){return Buffer.from(t,"utf-8").toString("base64")});var m=function(t){this.version=3,this.file=t.file,this.sources=t.sources,this.sourcesContent=t.sourcesContent,this.names=t.names,this.mappings=function(t){for(var e=0,n=0,i=0,a=0,r="",o=0;o<t.length;o++){var s=t[o];if(o>0&&(r+=";"),0!==s.length){for(var c=0,l=[],u=0,d=s;u<d.length;u++){var h=d[u],g=f(h[0]-c);c=h[0],h.length>1&&(g+=f(h[1]-e)+f(h[2]-n)+f(h[3]-i),e=h[1],n=h[2],i=h[3]),5===h.length&&(g+=f(h[4]-a),a=h[4]),l.push(g)}r+=l.join(",")}}return r}(t.mappings)};function y(t){var e=t.split("\n"),n=e.filter((function(t){return/^\t+/.test(t)})),i=e.filter((function(t){return/^ {2,}/.test(t)}));if(0===n.length&&0===i.length)return null;if(n.length>=i.length)return"\t";var a=i.reduce((function(t,e){var n=/^ +/.exec(e)[0].length;return Math.min(n,t)}),1/0);return new Array(a+1).join(" ")}function v(t,e){var n=t.split(/[/\\]/),i=e.split(/[/\\]/);for(n.pop();n[0]===i[0];)n.shift(),i.shift();if(n.length)for(var a=n.length;a--;)n[a]="..";return n.concat(i).join("/")}m.prototype.toString=function(){return JSON.stringify(this)},m.prototype.toUrl=function(){return"data:application/json;charset=utf-8;base64,"+b(this.toString())};var w=Object.prototype.toString;function x(t){return"[object Object]"===w.call(t)}function R(t){for(var e=t.split("\n"),n=[],i=0,a=0;i<e.length;i++)n.push(a),a+=e[i].length+1;return function(t){for(var e=0,i=n.length;e<i;){var a=e+i>>1;t<n[a]?i=a:e=a+1}var r=e-1;return{line:r,column:t-n[r]}}}var _=function(t){this.hires=t,this.generatedCodeLine=0,this.generatedCodeColumn=0,this.raw=[],this.rawSegments=this.raw[this.generatedCodeLine]=[],this.pending=null};_.prototype.addEdit=function(t,e,n,i){if(e.length){var a=[this.generatedCodeColumn,t,n.line,n.column];i>=0&&a.push(i),this.rawSegments.push(a)}else this.pending&&this.rawSegments.push(this.pending);this.advance(e),this.pending=null},_.prototype.addUneditedChunk=function(t,e,n,i,a){for(var r=e.start,o=!0;r<e.end;)(this.hires||o||a.has(r))&&this.rawSegments.push([this.generatedCodeColumn,t,i.line,i.column]),"\n"===n[r]?(i.line+=1,i.column=0,this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,o=!0):(i.column+=1,this.generatedCodeColumn+=1,o=!1),r+=1;this.pending=null},_.prototype.advance=function(t){if(t){var e=t.split("\n");if(e.length>1){for(var n=0;n<e.length-1;n++)this.generatedCodeLine++,this.raw[this.generatedCodeLine]=this.rawSegments=[];this.generatedCodeColumn=0}this.generatedCodeColumn+=e[e.length-1].length}};var k="\n",E={insertLeft:!1,insertRight:!1,storeName:!1},C=function(t,e){void 0===e&&(e={});var n=new p(0,t.length,t);Object.defineProperties(this,{original:{writable:!0,value:t},outro:{writable:!0,value:""},intro:{writable:!0,value:""},firstChunk:{writable:!0,value:n},lastChunk:{writable:!0,value:n},lastSearchedChunk:{writable:!0,value:n},byStart:{writable:!0,value:{}},byEnd:{writable:!0,value:{}},filename:{writable:!0,value:e.filename},indentExclusionRanges:{writable:!0,value:e.indentExclusionRanges},sourcemapLocations:{writable:!0,value:new g},storedNames:{writable:!0,value:{}},indentStr:{writable:!0,value:y(t)}}),this.byStart[0]=n,this.byEnd[t.length]=n};C.prototype.addSourcemapLocation=function(t){this.sourcemapLocations.add(t)},C.prototype.append=function(t){if("string"!=typeof t)throw new TypeError("outro content must be a string");return this.outro+=t,this},C.prototype.appendLeft=function(t,e){if("string"!=typeof e)throw new TypeError("inserted content must be a string");this._split(t);var n=this.byEnd[t];return n?n.appendLeft(e):this.intro+=e,this},C.prototype.appendRight=function(t,e){if("string"!=typeof e)throw new TypeError("inserted content must be a string");this._split(t);var n=this.byStart[t];return n?n.appendRight(e):this.outro+=e,this},C.prototype.clone=function(){for(var t=new C(this.original,{filename:this.filename}),e=this.firstChunk,n=t.firstChunk=t.lastSearchedChunk=e.clone();e;){t.byStart[n.start]=n,t.byEnd[n.end]=n;var i=e.next,a=i&&i.clone();a&&(n.next=a,a.previous=n,n=a),e=i}return t.lastChunk=n,this.indentExclusionRanges&&(t.indentExclusionRanges=this.indentExclusionRanges.slice()),t.sourcemapLocations=new g(this.sourcemapLocations),t.intro=this.intro,t.outro=this.outro,t},C.prototype.generateDecodedMap=function(t){var e=this;t=t||{};var n=Object.keys(this.storedNames),i=new _(t.hires),a=R(this.original);return this.intro&&i.advance(this.intro),this.firstChunk.eachNext((function(t){var r=a(t.start);t.intro.length&&i.advance(t.intro),t.edited?i.addEdit(0,t.content,r,t.storeName?n.indexOf(t.original):-1):i.addUneditedChunk(0,t,e.original,r,e.sourcemapLocations),t.outro.length&&i.advance(t.outro)})),{file:t.file?t.file.split(/[/\\]/).pop():null,sources:[t.source?v(t.file||"",t.source):null],sourcesContent:t.includeContent?[this.original]:[null],names:n,mappings:i.raw}},C.prototype.generateMap=function(t){return new m(this.generateDecodedMap(t))},C.prototype.getIndentString=function(){return null===this.indentStr?"\t":this.indentStr},C.prototype.indent=function(t,e){var n=/^[^\r\n]/gm;if(x(t)&&(e=t,t=void 0),""===(t=void 0!==t?t:this.indentStr||"\t"))return this;var i={};(e=e||{}).exclude&&("number"==typeof e.exclude[0]?[e.exclude]:e.exclude).forEach((function(t){for(var e=t[0];e<t[1];e+=1)i[e]=!0}));var a=!1!==e.indentStart,r=function(e){return a?""+t+e:(a=!0,e)};this.intro=this.intro.replace(n,r);for(var o=0,s=this.firstChunk;s;){var c=s.end;if(s.edited)i[o]||(s.content=s.content.replace(n,r),s.content.length&&(a="\n"===s.content[s.content.length-1]));else for(o=s.start;o<c;){if(!i[o]){var l=this.original[o];"\n"===l?a=!0:"\r"!==l&&a&&(a=!1,o===s.start?s.prependRight(t):(this._splitChunk(s,o),(s=s.next).prependRight(t)))}o+=1}o=s.end,s=s.next}return this.outro=this.outro.replace(n,r),this},C.prototype.insert=function(){throw new Error("magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)")},C.prototype.insertLeft=function(t,e){return E.insertLeft||(console.warn("magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead"),E.insertLeft=!0),this.appendLeft(t,e)},C.prototype.insertRight=function(t,e){return E.insertRight||(console.warn("magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead"),E.insertRight=!0),this.prependRight(t,e)},C.prototype.move=function(t,e,n){if(n>=t&&n<=e)throw new Error("Cannot move a selection inside itself");this._split(t),this._split(e),this._split(n);var i=this.byStart[t],a=this.byEnd[e],r=i.previous,o=a.next,s=this.byStart[n];if(!s&&a===this.lastChunk)return this;var c=s?s.previous:this.lastChunk;return r&&(r.next=o),o&&(o.previous=r),c&&(c.next=i),s&&(s.previous=a),i.previous||(this.firstChunk=a.next),a.next||(this.lastChunk=i.previous,this.lastChunk.next=null),i.previous=c,a.next=s||null,c||(this.firstChunk=i),s||(this.lastChunk=a),this},C.prototype.overwrite=function(t,e,n,i){if("string"!=typeof n)throw new TypeError("replacement content must be a string");for(;t<0;)t+=this.original.length;for(;e<0;)e+=this.original.length;if(e>this.original.length)throw new Error("end is out of bounds");if(t===e)throw new Error("Cannot overwrite a zero-length range \u2013 use appendLeft or prependRight instead");this._split(t),this._split(e),!0===i&&(E.storeName||(console.warn("The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string"),E.storeName=!0),i={storeName:!0});var a=void 0!==i&&i.storeName,r=void 0!==i&&i.contentOnly;if(a){var o=this.original.slice(t,e);Object.defineProperty(this.storedNames,o,{writable:!0,value:!0,enumerable:!0})}var s=this.byStart[t],c=this.byEnd[e];if(s){for(var l=s;l!==c;){if(l.next!==this.byStart[l.end])throw new Error("Cannot overwrite across a split point");(l=l.next).edit("",!1)}s.edit(n,a,r)}else{var u=new p(t,e,"").edit(n,a);c.next=u,u.previous=c}return this},C.prototype.prepend=function(t){if("string"!=typeof t)throw new TypeError("outro content must be a string");return this.intro=t+this.intro,this},C.prototype.prependLeft=function(t,e){if("string"!=typeof e)throw new TypeError("inserted content must be a string");this._split(t);var n=this.byEnd[t];return n?n.prependLeft(e):this.intro=e+this.intro,this},C.prototype.prependRight=function(t,e){if("string"!=typeof e)throw new TypeError("inserted content must be a string");this._split(t);var n=this.byStart[t];return n?n.prependRight(e):this.outro=e+this.outro,this},C.prototype.remove=function(t,e){for(;t<0;)t+=this.original.length;for(;e<0;)e+=this.original.length;if(t===e)return this;if(t<0||e>this.original.length)throw new Error("Character is out of bounds");if(t>e)throw new Error("end must be greater than start");this._split(t),this._split(e);for(var n=this.byStart[t];n;)n.intro="",n.outro="",n.edit(""),n=e>n.end?this.byStart[n.end]:null;return this},C.prototype.lastChar=function(){if(this.outro.length)return this.outro[this.outro.length-1];var t=this.lastChunk;do{if(t.outro.length)return t.outro[t.outro.length-1];if(t.content.length)return t.content[t.content.length-1];if(t.intro.length)return t.intro[t.intro.length-1]}while(t=t.previous);return this.intro.length?this.intro[this.intro.length-1]:""},C.prototype.lastLine=function(){var t=this.outro.lastIndexOf(k);if(-1!==t)return this.outro.substr(t+1);var e=this.outro,n=this.lastChunk;do{if(n.outro.length>0){if(-1!==(t=n.outro.lastIndexOf(k)))return n.outro.substr(t+1)+e;e=n.outro+e}if(n.content.length>0){if(-1!==(t=n.content.lastIndexOf(k)))return n.content.substr(t+1)+e;e=n.content+e}if(n.intro.length>0){if(-1!==(t=n.intro.lastIndexOf(k)))return n.intro.substr(t+1)+e;e=n.intro+e}}while(n=n.previous);return-1!==(t=this.intro.lastIndexOf(k))?this.intro.substr(t+1)+e:this.intro+e},C.prototype.slice=function(t,e){for(void 0===t&&(t=0),void 0===e&&(e=this.original.length);t<0;)t+=this.original.length;for(;e<0;)e+=this.original.length;for(var n="",i=this.firstChunk;i&&(i.start>t||i.end<=t);){if(i.start<e&&i.end>=e)return n;i=i.next}if(i&&i.edited&&i.start!==t)throw new Error("Cannot use replaced character "+t+" as slice start anchor.");for(var a=i;i;){!i.intro||a===i&&i.start!==t||(n+=i.intro);var r=i.start<e&&i.end>=e;if(r&&i.edited&&i.end!==e)throw new Error("Cannot use replaced character "+e+" as slice end anchor.");var o=a===i?t-i.start:0,s=r?i.content.length+e-i.end:i.content.length;if(n+=i.content.slice(o,s),!i.outro||r&&i.end!==e||(n+=i.outro),r)break;i=i.next}return n},C.prototype.snip=function(t,e){var n=this.clone();return n.remove(0,t),n.remove(e,n.original.length),n},C.prototype._split=function(t){if(!this.byStart[t]&&!this.byEnd[t])for(var e=this.lastSearchedChunk,n=t>e.end;e;){if(e.contains(t))return this._splitChunk(e,t);e=n?this.byStart[e.end]:this.byEnd[e.start]}},C.prototype._splitChunk=function(t,e){if(t.edited&&t.content.length){var n=R(this.original)(e);throw new Error("Cannot split a chunk that has already been edited ("+n.line+":"+n.column+' \u2013 "'+t.original+'")')}var i=t.split(e);return this.byEnd[e]=t,this.byStart[e]=i,this.byEnd[i.end]=i,t===this.lastChunk&&(this.lastChunk=i),this.lastSearchedChunk=t,!0},C.prototype.toString=function(){for(var t=this.intro,e=this.firstChunk;e;)t+=e.toString(),e=e.next;return t+this.outro},C.prototype.isEmpty=function(){var t=this.firstChunk;do{if(t.intro.length&&t.intro.trim()||t.content.length&&t.content.trim()||t.outro.length&&t.outro.trim())return!1}while(t=t.next);return!0},C.prototype.length=function(){var t=this.firstChunk,e=0;do{e+=t.intro.length+t.content.length+t.outro.length}while(t=t.next);return e},C.prototype.trimLines=function(){return this.trim("[\\r\\n]")},C.prototype.trim=function(t){return this.trimStart(t).trimEnd(t)},C.prototype.trimEndAborted=function(t){var e=new RegExp((t||"\\s")+"+$");if(this.outro=this.outro.replace(e,""),this.outro.length)return!0;var n=this.lastChunk;do{var i=n.end,a=n.trimEnd(e);if(n.end!==i&&(this.lastChunk===n&&(this.lastChunk=n.next),this.byEnd[n.end]=n,this.byStart[n.next.start]=n.next,this.byEnd[n.next.end]=n.next),a)return!0;n=n.previous}while(n);return!1},C.prototype.trimEnd=function(t){return this.trimEndAborted(t),this},C.prototype.trimStartAborted=function(t){var e=new RegExp("^"+(t||"\\s")+"+");if(this.intro=this.intro.replace(e,""),this.intro.length)return!0;var n=this.firstChunk;do{var i=n.end,a=n.trimStart(e);if(n.end!==i&&(n===this.lastChunk&&(this.lastChunk=n.next),this.byEnd[n.end]=n,this.byStart[n.next.start]=n.next,this.byEnd[n.next.end]=n.next),a)return!0;n=n.next}while(n);return!1},C.prototype.trimStart=function(t){return this.trimStartAborted(t),this};var S=Object.prototype.hasOwnProperty,T=function(t){void 0===t&&(t={}),this.intro=t.intro||"",this.separator=void 0!==t.separator?t.separator:"\n",this.sources=[],this.uniqueSources=[],this.uniqueSourceIndexByFilename={}};T.prototype.addSource=function(t){if(t instanceof C)return this.addSource({content:t,filename:t.filename,separator:this.separator});if(!x(t)||!t.content)throw new Error("bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`");if(["filename","indentExclusionRanges","separator"].forEach((function(e){S.call(t,e)||(t[e]=t.content[e])})),void 0===t.separator&&(t.separator=this.separator),t.filename)if(S.call(this.uniqueSourceIndexByFilename,t.filename)){var e=this.uniqueSources[this.uniqueSourceIndexByFilename[t.filename]];if(t.content.original!==e.content)throw new Error("Illegal source: same filename ("+t.filename+"), different contents")}else this.uniqueSourceIndexByFilename[t.filename]=this.uniqueSources.length,this.uniqueSources.push({filename:t.filename,content:t.content.original});return this.sources.push(t),this},T.prototype.append=function(t,e){return this.addSource({content:new C(t),separator:e&&e.separator||""}),this},T.prototype.clone=function(){var t=new T({intro:this.intro,separator:this.separator});return this.sources.forEach((function(e){t.addSource({filename:e.filename,content:e.content.clone(),separator:e.separator})})),t},T.prototype.generateDecodedMap=function(t){var e=this;void 0===t&&(t={});var n=[];this.sources.forEach((function(t){Object.keys(t.content.storedNames).forEach((function(t){~n.indexOf(t)||n.push(t)}))}));var i=new _(t.hires);return this.intro&&i.advance(this.intro),this.sources.forEach((function(t,a){a>0&&i.advance(e.separator);var r=t.filename?e.uniqueSourceIndexByFilename[t.filename]:-1,o=t.content,s=R(o.original);o.intro&&i.advance(o.intro),o.firstChunk.eachNext((function(e){var a=s(e.start);e.intro.length&&i.advance(e.intro),t.filename?e.edited?i.addEdit(r,e.content,a,e.storeName?n.indexOf(e.original):-1):i.addUneditedChunk(r,e,o.original,a,o.sourcemapLocations):i.advance(e.content),e.outro.length&&i.advance(e.outro)})),o.outro&&i.advance(o.outro)})),{file:t.file?t.file.split(/[/\\]/).pop():null,sources:this.uniqueSources.map((function(e){return t.file?v(t.file,e.filename):e.filename})),sourcesContent:this.uniqueSources.map((function(e){return t.includeContent?e.content:null})),names:n,mappings:i.raw}},T.prototype.generateMap=function(t){return new m(this.generateDecodedMap(t))},T.prototype.getIndentString=function(){var t={};return this.sources.forEach((function(e){var n=e.content.indentStr;null!==n&&(t[n]||(t[n]=0),t[n]+=1)})),Object.keys(t).sort((function(e,n){return t[e]-t[n]}))[0]||"\t"},T.prototype.indent=function(t){var e=this;if(arguments.length||(t=this.getIndentString()),""===t)return this;var n=!this.intro||"\n"===this.intro.slice(-1);return this.sources.forEach((function(i,a){var r=void 0!==i.separator?i.separator:e.separator,o=n||a>0&&/\r?\n$/.test(r);i.content.indent(t,{exclude:i.indentExclusionRanges,indentStart:o}),n="\n"===i.content.lastChar()})),this.intro&&(this.intro=t+this.intro.replace(/^[^\n]/gm,(function(e,n){return n>0?t+e:e}))),this},T.prototype.prepend=function(t){return this.intro=t+this.intro,this},T.prototype.toString=function(){var t=this,e=this.sources.map((function(e,n){var i=void 0!==e.separator?e.separator:t.separator;return(n>0?i:"")+e.content.toString()})).join("");return this.intro+e},T.prototype.isEmpty=function(){return(!this.intro.length||!this.intro.trim())&&!this.sources.some((function(t){return!t.content.isEmpty()}))},T.prototype.length=function(){return this.sources.reduce((function(t,e){return t+e.content.length()}),this.intro.length)},T.prototype.trimLines=function(){return this.trim("[\\r\\n]")},T.prototype.trim=function(t){return this.trimStart(t).trimEnd(t)},T.prototype.trimStart=function(t){var e=new RegExp("^"+(t||"\\s")+"+");if(this.intro=this.intro.replace(e,""),!this.intro){var n,i=0;do{if(!(n=this.sources[i++]))break}while(!n.content.trimStartAborted(t))}return this},T.prototype.trimEnd=function(t){var e,n=new RegExp((t||"\\s")+"+$"),i=this.sources.length-1;do{if(!(e=this.sources[i--])){this.intro=this.intro.replace(n,"");break}}while(!e.content.trimEndAborted(t));return this};var A={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},D="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",I={5:D,6:D+" const class extends export import super"},L=/^in(stanceof)?$/,O="\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\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\u0af9\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-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\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-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7b9\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\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",M="\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f",N=new RegExp("["+O+"]"),B=new RegExp("["+O+M+"]");O=M=null;var P=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,477,28,11,0,9,21,190,52,76,44,33,24,27,35,30,0,12,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,26,230,43,117,63,32,0,257,0,11,39,8,0,22,0,12,39,3,3,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,270,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,68,12,0,67,12,65,1,31,6129,15,754,9486,286,82,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,15,7472,3104,541],F=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,525,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,4,9,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,280,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239];function j(t,e){for(var n=65536,i=0;i<e.length;i+=2){if((n+=e[i])>t)return!1;if((n+=e[i+1])>=t)return!0}}function $(t,e){return t<65?36===t:t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&N.test(String.fromCharCode(t)):!1!==e&&j(t,P)))}function z(t,e){return t<48?36===t:t<58||!(t<65)&&(t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&B.test(String.fromCharCode(t)):!1!==e&&(j(t,P)||j(t,F)))))}var H=function(t,e){void 0===e&&(e={}),this.label=t,this.keyword=e.keyword,this.beforeExpr=!!e.beforeExpr,this.startsExpr=!!e.startsExpr,this.isLoop=!!e.isLoop,this.isAssign=!!e.isAssign,this.prefix=!!e.prefix,this.postfix=!!e.postfix,this.binop=e.binop||null,this.updateContext=null};function U(t,e){return new H(t,{beforeExpr:!0,binop:e})}var V={beforeExpr:!0},q={startsExpr:!0},W={};function Y(t,e){return void 0===e&&(e={}),e.keyword=t,W[t]=new H(t,e)}var G={num:new H("num",q),regexp:new H("regexp",q),string:new H("string",q),name:new H("name",q),eof:new H("eof"),bracketL:new H("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new H("]"),braceL:new H("{",{beforeExpr:!0,startsExpr:!0}),braceR:new H("}"),parenL:new H("(",{beforeExpr:!0,startsExpr:!0}),parenR:new H(")"),comma:new H(",",V),semi:new H(";",V),colon:new H(":",V),dot:new H("."),question:new H("?",V),arrow:new H("=>",V),template:new H("template"),invalidTemplate:new H("invalidTemplate"),ellipsis:new H("...",V),backQuote:new H("`",q),dollarBraceL:new H("${",{beforeExpr:!0,startsExpr:!0}),eq:new H("=",{beforeExpr:!0,isAssign:!0}),assign:new H("_=",{beforeExpr:!0,isAssign:!0}),incDec:new H("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new H("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:U("||",1),logicalAND:U("&&",2),bitwiseOR:U("|",3),bitwiseXOR:U("^",4),bitwiseAND:U("&",5),equality:U("==/!=/===/!==",6),relational:U("</>/<=/>=",7),bitShift:U("<</>>/>>>",8),plusMin:new H("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:U("%",10),star:U("*",10),slash:U("/",10),starstar:new H("**",{beforeExpr:!0}),_break:Y("break"),_case:Y("case",V),_catch:Y("catch"),_continue:Y("continue"),_debugger:Y("debugger"),_default:Y("default",V),_do:Y("do",{isLoop:!0,beforeExpr:!0}),_else:Y("else",V),_finally:Y("finally"),_for:Y("for",{isLoop:!0}),_function:Y("function",q),_if:Y("if"),_return:Y("return",V),_switch:Y("switch"),_throw:Y("throw",V),_try:Y("try"),_var:Y("var"),_const:Y("const"),_while:Y("while",{isLoop:!0}),_with:Y("with"),_new:Y("new",{beforeExpr:!0,startsExpr:!0}),_this:Y("this",q),_super:Y("super",q),_class:Y("class",q),_extends:Y("extends",V),_export:Y("export"),_import:Y("import"),_null:Y("null",q),_true:Y("true",q),_false:Y("false",q),_in:Y("in",{beforeExpr:!0,binop:7}),_instanceof:Y("instanceof",{beforeExpr:!0,binop:7}),_typeof:Y("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:Y("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:Y("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},Z=/\r\n?|\n|\u2028|\u2029/,K=new RegExp(Z.source,"g");function X(t,e){return 10===t||13===t||!e&&(8232===t||8233===t)}var J=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,Q=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,tt=Object.prototype,et=tt.hasOwnProperty,nt=tt.toString;function it(t,e){return et.call(t,e)}var at=Array.isArray||function(t){return"[object Array]"===nt.call(t)},rt=function(t,e){this.line=t,this.column=e};rt.prototype.offset=function(t){return new rt(this.line,this.column+t)};var ot=function(t,e,n){this.start=e,this.end=n,null!==t.sourceFile&&(this.source=t.sourceFile)};function st(t,e){for(var n=1,i=0;;){K.lastIndex=i;var a=K.exec(t);if(!(a&&a.index<e))return new rt(n,e-i);++n,i=a.index+a[0].length}}var ct={ecmaVersion:9,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:!1,allowHashBang:!1,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1};function lt(t){var e={};for(var n in ct)e[n]=t&&it(t,n)?t[n]:ct[n];if(e.ecmaVersion>=2015&&(e.ecmaVersion-=2009),null==e.allowReserved&&(e.allowReserved=e.ecmaVersion<5),at(e.onToken)){var i=e.onToken;e.onToken=function(t){return i.push(t)}}return at(e.onComment)&&(e.onComment=function(t,e){return function(n,i,a,r,o,s){var c={type:n?"Block":"Line",value:i,start:a,end:r};t.locations&&(c.loc=new ot(this,o,s)),t.ranges&&(c.range=[a,r]),e.push(c)}}(e,e.onComment)),e}function ut(t,e){return 2|(t?4:0)|(e?8:0)}function dt(t){return new RegExp("^(?:"+t.replace(/ /g,"|")+")$")}var ht=function(t,e,n){this.options=t=lt(t),this.sourceFile=t.sourceFile,this.keywords=dt(I[t.ecmaVersion>=6?6:5]);var i="";if(!t.allowReserved){for(var a=t.ecmaVersion;!(i=A[a]);a--);"module"===t.sourceType&&(i+=" await")}this.reservedWords=dt(i);var r=(i?i+" ":"")+A.strict;this.reservedWordsStrict=dt(r),this.reservedWordsStrictBind=dt(r+" "+A.strictBind),this.input=String(e),this.containsEsc=!1,n?(this.pos=n,this.lineStart=this.input.lastIndexOf("\n",n-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(Z).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=G.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===t.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.yieldPos=this.awaitPos=0,this.labels=[],0===this.pos&&t.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(1),this.regexpState=null},ft={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0}};ht.prototype.parse=function(){var t=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(t)},ft.inFunction.get=function(){return(2&this.currentVarScope().flags)>0},ft.inGenerator.get=function(){return(8&this.currentVarScope().flags)>0},ft.inAsync.get=function(){return(4&this.currentVarScope().flags)>0},ht.extend=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];for(var n=this,i=0;i<t.length;i++)n=t[i](n);return n},ht.parse=function(t,e){return new this(e,t).parse()},ht.parseExpressionAt=function(t,e,n){var i=new this(n,t,e);return i.nextToken(),i.parseExpression()},ht.tokenizer=function(t,e){return new this(e,t)},Object.defineProperties(ht.prototype,ft);var gt=ht.prototype,pt=/^(?:'((?:\\.|[^'])*?)'|"((?:\\.|[^"])*?)"|;)/;function bt(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1}gt.strictDirective=function(t){for(;;){Q.lastIndex=t,t+=Q.exec(this.input)[0].length;var e=pt.exec(this.input.slice(t));if(!e)return!1;if("use strict"===(e[1]||e[2]))return!0;t+=e[0].length}},gt.eat=function(t){return this.type===t&&(this.next(),!0)},gt.isContextual=function(t){return this.type===G.name&&this.value===t&&!this.containsEsc},gt.eatContextual=function(t){return!!this.isContextual(t)&&(this.next(),!0)},gt.expectContextual=function(t){this.eatContextual(t)||this.unexpected()},gt.canInsertSemicolon=function(){return this.type===G.eof||this.type===G.braceR||Z.test(this.input.slice(this.lastTokEnd,this.start))},gt.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},gt.semicolon=function(){this.eat(G.semi)||this.insertSemicolon()||this.unexpected()},gt.afterTrailingComma=function(t,e){if(this.type===t)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),e||this.next(),!0},gt.expect=function(t){this.eat(t)||this.unexpected()},gt.unexpected=function(t){this.raise(null!=t?t:this.start,"Unexpected token")},gt.checkPatternErrors=function(t,e){if(t){t.trailingComma>-1&&this.raiseRecoverable(t.trailingComma,"Comma is not permitted after the rest element");var n=e?t.parenthesizedAssign:t.parenthesizedBind;n>-1&&this.raiseRecoverable(n,"Parenthesized pattern")}},gt.checkExpressionErrors=function(t,e){if(!t)return!1;var n=t.shorthandAssign,i=t.doubleProto;if(!e)return n>=0||i>=0;n>=0&&this.raise(n,"Shorthand property assignments are valid only in destructuring patterns"),i>=0&&this.raiseRecoverable(i,"Redefinition of __proto__ property")},gt.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,"Yield expression cannot be a default value"),this.awaitPos&&this.raise(this.awaitPos,"Await expression cannot be a default value")},gt.isSimpleAssignTarget=function(t){return"ParenthesizedExpression"===t.type?this.isSimpleAssignTarget(t.expression):"Identifier"===t.type||"MemberExpression"===t.type};var mt=ht.prototype;mt.parseTopLevel=function(t){var e={};for(t.body||(t.body=[]);this.type!==G.eof;){var n=this.parseStatement(null,!0,e);t.body.push(n)}return this.adaptDirectivePrologue(t.body),this.next(),this.options.ecmaVersion>=6&&(t.sourceType=this.options.sourceType),this.finishNode(t,"Program")};var yt={kind:"loop"},vt={kind:"switch"};mt.isLet=function(){if(this.options.ecmaVersion<6||!this.isContextual("let"))return!1;Q.lastIndex=this.pos;var t=Q.exec(this.input),e=this.pos+t[0].length,n=this.input.charCodeAt(e);if(91===n||123===n)return!0;if($(n,!0)){for(var i=e+1;z(this.input.charCodeAt(i),!0);)++i;var a=this.input.slice(e,i);if(!L.test(a))return!0}return!1},mt.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;Q.lastIndex=this.pos;var t=Q.exec(this.input),e=this.pos+t[0].length;return!(Z.test(this.input.slice(this.pos,e))||"function"!==this.input.slice(e,e+8)||e+8!==this.input.length&&z(this.input.charAt(e+8)))},mt.parseStatement=function(t,e,n){var i,a=this.type,r=this.startNode();switch(this.isLet()&&(a=G._var,i="let"),a){case G._break:case G._continue:return this.parseBreakContinueStatement(r,a.keyword);case G._debugger:return this.parseDebuggerStatement(r);case G._do:return this.parseDoStatement(r);case G._for:return this.parseForStatement(r);case G._function:return t&&(this.strict||"if"!==t)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(r,!1,!t);case G._class:return t&&this.unexpected(),this.parseClass(r,!0);case G._if:return this.parseIfStatement(r);case G._return:return this.parseReturnStatement(r);case G._switch:return this.parseSwitchStatement(r);case G._throw:return this.parseThrowStatement(r);case G._try:return this.parseTryStatement(r);case G._const:case G._var:return i=i||this.value,t&&"var"!==i&&this.unexpected(),this.parseVarStatement(r,i);case G._while:return this.parseWhileStatement(r);case G._with:return this.parseWithStatement(r);case G.braceL:return this.parseBlock(!0,r);case G.semi:return this.parseEmptyStatement(r);case G._export:case G._import:return this.options.allowImportExportEverywhere||(e||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),a===G._import?this.parseImport(r):this.parseExport(r,n);default:if(this.isAsyncFunction())return t&&this.unexpected(),this.next(),this.parseFunctionStatement(r,!0,!t);var o=this.value,s=this.parseExpression();return a===G.name&&"Identifier"===s.type&&this.eat(G.colon)?this.parseLabeledStatement(r,o,s,t):this.parseExpressionStatement(r,s)}},mt.parseBreakContinueStatement=function(t,e){var n="break"===e;this.next(),this.eat(G.semi)||this.insertSemicolon()?t.label=null:this.type!==G.name?this.unexpected():(t.label=this.parseIdent(),this.semicolon());for(var i=0;i<this.labels.length;++i){var a=this.labels[i];if(null==t.label||a.name===t.label.name){if(null!=a.kind&&(n||"loop"===a.kind))break;if(t.label&&n)break}}return i===this.labels.length&&this.raise(t.start,"Unsyntactic "+e),this.finishNode(t,n?"BreakStatement":"ContinueStatement")},mt.parseDebuggerStatement=function(t){return this.next(),this.semicolon(),this.finishNode(t,"DebuggerStatement")},mt.parseDoStatement=function(t){return this.next(),this.labels.push(yt),t.body=this.parseStatement("do"),this.labels.pop(),this.expect(G._while),t.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(G.semi):this.semicolon(),this.finishNode(t,"DoWhileStatement")},mt.parseForStatement=function(t){this.next();var e=this.options.ecmaVersion>=9&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction)&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(yt),this.enterScope(0),this.expect(G.parenL),this.type===G.semi)return e>-1&&this.unexpected(e),this.parseFor(t,null);var n=this.isLet();if(this.type===G._var||this.type===G._const||n){var i=this.startNode(),a=n?"let":this.value;return this.next(),this.parseVar(i,!0,a),this.finishNode(i,"VariableDeclaration"),!(this.type===G._in||this.options.ecmaVersion>=6&&this.isContextual("of"))||1!==i.declarations.length||"var"!==a&&i.declarations[0].init?(e>-1&&this.unexpected(e),this.parseFor(t,i)):(this.options.ecmaVersion>=9&&(this.type===G._in?e>-1&&this.unexpected(e):t.await=e>-1),this.parseForIn(t,i))}var r=new bt,o=this.parseExpression(!0,r);return this.type===G._in||this.options.ecmaVersion>=6&&this.isContextual("of")?(this.options.ecmaVersion>=9&&(this.type===G._in?e>-1&&this.unexpected(e):t.await=e>-1),this.toAssignable(o,!1,r),this.checkLVal(o),this.parseForIn(t,o)):(this.checkExpressionErrors(r,!0),e>-1&&this.unexpected(e),this.parseFor(t,o))},mt.parseFunctionStatement=function(t,e,n){return this.next(),this.parseFunction(t,xt|(n?0:Rt),!1,e)},mt.parseIfStatement=function(t){return this.next(),t.test=this.parseParenExpression(),t.consequent=this.parseStatement("if"),t.alternate=this.eat(G._else)?this.parseStatement("if"):null,this.finishNode(t,"IfStatement")},mt.parseReturnStatement=function(t){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(G.semi)||this.insertSemicolon()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,"ReturnStatement")},mt.parseSwitchStatement=function(t){var e,n=this;this.next(),t.discriminant=this.parseParenExpression(),t.cases=[],this.expect(G.braceL),this.labels.push(vt),this.enterScope(0);for(var i=!1;this.type!==G.braceR;)if(n.type===G._case||n.type===G._default){var a=n.type===G._case;e&&n.finishNode(e,"SwitchCase"),t.cases.push(e=n.startNode()),e.consequent=[],n.next(),a?e.test=n.parseExpression():(i&&n.raiseRecoverable(n.lastTokStart,"Multiple default clauses"),i=!0,e.test=null),n.expect(G.colon)}else e||n.unexpected(),e.consequent.push(n.parseStatement(null));return this.exitScope(),e&&this.finishNode(e,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(t,"SwitchStatement")},mt.parseThrowStatement=function(t){return this.next(),Z.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,"ThrowStatement")};var wt=[];mt.parseTryStatement=function(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.type===G._catch){var e=this.startNode();if(this.next(),this.eat(G.parenL)){e.param=this.parseBindingAtom();var n="Identifier"===e.param.type;this.enterScope(n?32:0),this.checkLVal(e.param,n?4:2),this.expect(G.parenR)}else this.options.ecmaVersion<10&&this.unexpected(),e.param=null,this.enterScope(0);e.body=this.parseBlock(!1),this.exitScope(),t.handler=this.finishNode(e,"CatchClause")}return t.finalizer=this.eat(G._finally)?this.parseBlock():null,t.handler||t.finalizer||this.raise(t.start,"Missing catch or finally clause"),this.finishNode(t,"TryStatement")},mt.parseVarStatement=function(t,e){return this.next(),this.parseVar(t,!1,e),this.semicolon(),this.finishNode(t,"VariableDeclaration")},mt.parseWhileStatement=function(t){return this.next(),t.test=this.parseParenExpression(),this.labels.push(yt),t.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(t,"WhileStatement")},mt.parseWithStatement=function(t){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),t.object=this.parseParenExpression(),t.body=this.parseStatement("with"),this.finishNode(t,"WithStatement")},mt.parseEmptyStatement=function(t){return this.next(),this.finishNode(t,"EmptyStatement")},mt.parseLabeledStatement=function(t,e,n,i){for(var a=this,r=0,o=a.labels;r<o.length;r+=1){o[r].name===e&&a.raise(n.start,"Label '"+e+"' is already declared")}for(var s=this.type.isLoop?"loop":this.type===G._switch?"switch":null,c=this.labels.length-1;c>=0;c--){var l=a.labels[c];if(l.statementStart!==t.start)break;l.statementStart=a.start,l.kind=s}return this.labels.push({name:e,kind:s,statementStart:this.start}),t.body=this.parseStatement(i),("ClassDeclaration"===t.body.type||"VariableDeclaration"===t.body.type&&"var"!==t.body.kind||"FunctionDeclaration"===t.body.type&&(this.strict||t.body.generator||t.body.async))&&this.raiseRecoverable(t.body.start,"Invalid labeled declaration"),this.labels.pop(),t.label=n,this.finishNode(t,"LabeledStatement")},mt.parseExpressionStatement=function(t,e){return t.expression=e,this.semicolon(),this.finishNode(t,"ExpressionStatement")},mt.parseBlock=function(t,e){for(void 0===t&&(t=!0),void 0===e&&(e=this.startNode()),e.body=[],this.expect(G.braceL),t&&this.enterScope(0);!this.eat(G.braceR);){var n=this.parseStatement(null);e.body.push(n)}return t&&this.exitScope(),this.finishNode(e,"BlockStatement")},mt.parseFor=function(t,e){return t.init=e,this.expect(G.semi),t.test=this.type===G.semi?null:this.parseExpression(),this.expect(G.semi),t.update=this.type===G.parenR?null:this.parseExpression(),this.expect(G.parenR),this.exitScope(),t.body=this.parseStatement("for"),this.labels.pop(),this.finishNode(t,"ForStatement")},mt.parseForIn=function(t,e){var n=this.type===G._in?"ForInStatement":"ForOfStatement";return this.next(),"ForInStatement"===n&&("AssignmentPattern"===e.type||"VariableDeclaration"===e.type&&null!=e.declarations[0].init&&(this.strict||"Identifier"!==e.declarations[0].id.type))&&this.raise(e.start,"Invalid assignment in for-in loop head"),t.left=e,t.right="ForInStatement"===n?this.parseExpression():this.parseMaybeAssign(),this.expect(G.parenR),this.exitScope(),t.body=this.parseStatement("for"),this.labels.pop(),this.finishNode(t,n)},mt.parseVar=function(t,e,n){var i=this;for(t.declarations=[],t.kind=n;;){var a=i.startNode();if(i.parseVarId(a,n),i.eat(G.eq)?a.init=i.parseMaybeAssign(e):"const"!==n||i.type===G._in||i.options.ecmaVersion>=6&&i.isContextual("of")?"Identifier"===a.id.type||e&&(i.type===G._in||i.isContextual("of"))?a.init=null:i.raise(i.lastTokEnd,"Complex binding patterns require an initialization value"):i.unexpected(),t.declarations.push(i.finishNode(a,"VariableDeclarator")),!i.eat(G.comma))break}return t},mt.parseVarId=function(t,e){t.id=this.parseBindingAtom(e),this.checkLVal(t.id,"var"===e?1:2,!1)};var xt=1,Rt=2;mt.parseFunction=function(t,e,n,i){this.initFunction(t),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!i)&&(t.generator=this.eat(G.star)),this.options.ecmaVersion>=8&&(t.async=!!i),e&xt&&(t.id=4&e&&this.type!==G.name?null:this.parseIdent(),!t.id||e&Rt||this.checkLVal(t.id,this.inModule&&!this.inFunction?2:3));var a=this.yieldPos,r=this.awaitPos;return this.yieldPos=0,this.awaitPos=0,this.enterScope(ut(t.async,t.generator)),e&xt||(t.id=this.type===G.name?this.parseIdent():null),this.parseFunctionParams(t),this.parseFunctionBody(t,n),this.yieldPos=a,this.awaitPos=r,this.finishNode(t,e&xt?"FunctionDeclaration":"FunctionExpression")},mt.parseFunctionParams=function(t){this.expect(G.parenL),t.params=this.parseBindingList(G.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},mt.parseClass=function(t,e){this.next(),this.parseClassId(t,e),this.parseClassSuper(t);var n=this.startNode(),i=!1;for(n.body=[],this.expect(G.braceL);!this.eat(G.braceR);){var a=this.parseClassElement();a&&(n.body.push(a),"MethodDefinition"===a.type&&"constructor"===a.kind&&(i&&this.raise(a.start,"Duplicate constructor in the same class"),i=!0))}return t.body=this.finishNode(n,"ClassBody"),this.finishNode(t,e?"ClassDeclaration":"ClassExpression")},mt.parseClassElement=function(){var t=this;if(this.eat(G.semi))return null;var e=this.startNode(),n=function(n,i){void 0===i&&(i=!1);var a=t.start,r=t.startLoc;return!!t.eatContextual(n)&&(!(t.type===G.parenL||i&&t.canInsertSemicolon())||(e.key&&t.unexpected(),e.computed=!1,e.key=t.startNodeAt(a,r),e.key.name=n,t.finishNode(e.key,"Identifier"),!1))};e.kind="method",e.static=n("static");var i=this.eat(G.star),a=!1;i||(this.options.ecmaVersion>=8&&n("async",!0)?(a=!0,i=this.options.ecmaVersion>=9&&this.eat(G.star)):n("get")?e.kind="get":n("set")&&(e.kind="set")),e.key||this.parsePropertyName(e);var r=e.key;return e.computed||e.static||!("Identifier"===r.type&&"constructor"===r.name||"Literal"===r.type&&"constructor"===r.value)?e.static&&"Identifier"===r.type&&"prototype"===r.name&&this.raise(r.start,"Classes may not have a static property named prototype"):("method"!==e.kind&&this.raise(r.start,"Constructor can't have get/set modifier"),i&&this.raise(r.start,"Constructor can't be a generator"),a&&this.raise(r.start,"Constructor can't be an async method"),e.kind="constructor"),this.parseClassMethod(e,i,a),"get"===e.kind&&0!==e.value.params.length&&this.raiseRecoverable(e.value.start,"getter should have no params"),"set"===e.kind&&1!==e.value.params.length&&this.raiseRecoverable(e.value.start,"setter should have exactly one param"),"set"===e.kind&&"RestElement"===e.value.params[0].type&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params"),e},mt.parseClassMethod=function(t,e,n){return t.value=this.parseMethod(e,n),this.finishNode(t,"MethodDefinition")},mt.parseClassId=function(t,e){t.id=this.type===G.name?this.parseIdent():!0===e?this.unexpected():null},mt.parseClassSuper=function(t){t.superClass=this.eat(G._extends)?this.parseExprSubscripts():null},mt.parseExport=function(t,e){if(this.next(),this.eat(G.star))return this.expectContextual("from"),this.type!==G.string&&this.unexpected(),t.source=this.parseExprAtom(),this.semicolon(),this.finishNode(t,"ExportAllDeclaration");if(this.eat(G._default)){var n;if(this.checkExport(e,"default",this.lastTokStart),this.type===G._function||(n=this.isAsyncFunction())){var i=this.startNode();this.next(),n&&this.next(),t.declaration=this.parseFunction(i,4|xt,!1,n,!0)}else if(this.type===G._class){var a=this.startNode();t.declaration=this.parseClass(a,"nullableID")}else t.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(t,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())t.declaration=this.parseStatement(null),"VariableDeclaration"===t.declaration.type?this.checkVariableExport(e,t.declaration.declarations):this.checkExport(e,t.declaration.id.name,t.declaration.id.start),t.specifiers=[],t.source=null;else{if(t.declaration=null,t.specifiers=this.parseExportSpecifiers(e),this.eatContextual("from"))this.type!==G.string&&this.unexpected(),t.source=this.parseExprAtom();else{for(var r=0,o=t.specifiers;r<o.length;r+=1){var s=o[r];this.checkUnreserved(s.local)}t.source=null}this.semicolon()}return this.finishNode(t,"ExportNamedDeclaration")},mt.checkExport=function(t,e,n){t&&(it(t,e)&&this.raiseRecoverable(n,"Duplicate export '"+e+"'"),t[e]=!0)},mt.checkPatternExport=function(t,e){var n=e.type;if("Identifier"===n)this.checkExport(t,e.name,e.start);else if("ObjectPattern"===n)for(var i=0,a=e.properties;i<a.length;i+=1){var r=a[i];this.checkPatternExport(t,r)}else if("ArrayPattern"===n)for(var o=0,s=e.elements;o<s.length;o+=1){var c=s[o];c&&this.checkPatternExport(t,c)}else"Property"===n?this.checkPatternExport(t,e.value):"AssignmentPattern"===n?this.checkPatternExport(t,e.left):"RestElement"===n?this.checkPatternExport(t,e.argument):"ParenthesizedExpression"===n&&this.checkPatternExport(t,e.expression)},mt.checkVariableExport=function(t,e){if(t)for(var n=0,i=e;n<i.length;n+=1){var a=i[n];this.checkPatternExport(t,a.id)}},mt.shouldParseExportStatement=function(){return"var"===this.type.keyword||"const"===this.type.keyword||"class"===this.type.keyword||"function"===this.type.keyword||this.isLet()||this.isAsyncFunction()},mt.parseExportSpecifiers=function(t){var e=this,n=[],i=!0;for(this.expect(G.braceL);!this.eat(G.braceR);){if(i)i=!1;else if(e.expect(G.comma),e.afterTrailingComma(G.braceR))break;var a=e.startNode();a.local=e.parseIdent(!0),a.exported=e.eatContextual("as")?e.parseIdent(!0):a.local,e.checkExport(t,a.exported.name,a.exported.start),n.push(e.finishNode(a,"ExportSpecifier"))}return n},mt.parseImport=function(t){return this.next(),this.type===G.string?(t.specifiers=wt,t.source=this.parseExprAtom()):(t.specifiers=this.parseImportSpecifiers(),this.expectContextual("from"),t.source=this.type===G.string?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(t,"ImportDeclaration")},mt.parseImportSpecifiers=function(){var t=this,e=[],n=!0;if(this.type===G.name){var i=this.startNode();if(i.local=this.parseIdent(),this.checkLVal(i.local,2),e.push(this.finishNode(i,"ImportDefaultSpecifier")),!this.eat(G.comma))return e}if(this.type===G.star){var a=this.startNode();return this.next(),this.expectContextual("as"),a.local=this.parseIdent(),this.checkLVal(a.local,2),e.push(this.finishNode(a,"ImportNamespaceSpecifier")),e}for(this.expect(G.braceL);!this.eat(G.braceR);){if(n)n=!1;else if(t.expect(G.comma),t.afterTrailingComma(G.braceR))break;var r=t.startNode();r.imported=t.parseIdent(!0),t.eatContextual("as")?r.local=t.parseIdent():(t.checkUnreserved(r.imported),r.local=r.imported),t.checkLVal(r.local,2),e.push(t.finishNode(r,"ImportSpecifier"))}return e},mt.adaptDirectivePrologue=function(t){for(var e=0;e<t.length&&this.isDirectiveCandidate(t[e]);++e)t[e].directive=t[e].expression.raw.slice(1,-1)},mt.isDirectiveCandidate=function(t){return"ExpressionStatement"===t.type&&"Literal"===t.expression.type&&"string"==typeof t.expression.value&&('"'===this.input[t.start]||"'"===this.input[t.start])};var _t=ht.prototype;_t.toAssignable=function(t,e,n){if(this.options.ecmaVersion>=6&&t)switch(t.type){case"Identifier":this.inAsync&&"await"===t.name&&this.raise(t.start,"Can not use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"RestElement":break;case"ObjectExpression":t.type="ObjectPattern",n&&this.checkPatternErrors(n,!0);for(var i=0,a=t.properties;i<a.length;i+=1){var r=a[i];this.toAssignable(r,e),"RestElement"!==r.type||"ArrayPattern"!==r.argument.type&&"ObjectPattern"!==r.argument.type||this.raise(r.argument.start,"Unexpected token")}break;case"Property":"init"!==t.kind&&this.raise(t.key.start,"Object pattern can't contain getter or setter"),this.toAssignable(t.value,e);break;case"ArrayExpression":t.type="ArrayPattern",n&&this.checkPatternErrors(n,!0),this.toAssignableList(t.elements,e);break;case"SpreadElement":t.type="RestElement",this.toAssignable(t.argument,e),"AssignmentPattern"===t.argument.type&&this.raise(t.argument.start,"Rest elements cannot have a default value");break;case"AssignmentExpression":"="!==t.operator&&this.raise(t.left.end,"Only '=' operator can be used for specifying default value."),t.type="AssignmentPattern",delete t.operator,this.toAssignable(t.left,e);case"AssignmentPattern":break;case"ParenthesizedExpression":this.toAssignable(t.expression,e);break;case"MemberExpression":if(!e)break;default:this.raise(t.start,"Assigning to rvalue")}else n&&this.checkPatternErrors(n,!0);return t},_t.toAssignableList=function(t,e){for(var n=t.length,i=0;i<n;i++){var a=t[i];a&&this.toAssignable(a,e)}if(n){var r=t[n-1];6===this.options.ecmaVersion&&e&&r&&"RestElement"===r.type&&"Identifier"!==r.argument.type&&this.unexpected(r.argument.start)}return t},_t.parseSpread=function(t){var e=this.startNode();return this.next(),e.argument=this.parseMaybeAssign(!1,t),this.finishNode(e,"SpreadElement")},_t.parseRestBinding=function(){var t=this.startNode();return this.next(),6===this.options.ecmaVersion&&this.type!==G.name&&this.unexpected(),t.argument=this.parseBindingAtom(),this.finishNode(t,"RestElement")},_t.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case G.bracketL:var t=this.startNode();return this.next(),t.elements=this.parseBindingList(G.bracketR,!0,!0),this.finishNode(t,"ArrayPattern");case G.braceL:return this.parseObj(!0)}return this.parseIdent()},_t.parseBindingList=function(t,e,n){for(var i=this,a=[],r=!0;!this.eat(t);)if(r?r=!1:i.expect(G.comma),e&&i.type===G.comma)a.push(null);else{if(n&&i.afterTrailingComma(t))break;if(i.type===G.ellipsis){var o=i.parseRestBinding();i.parseBindingListItem(o),a.push(o),i.type===G.comma&&i.raise(i.start,"Comma is not permitted after the rest element"),i.expect(t);break}var s=i.parseMaybeDefault(i.start,i.startLoc);i.parseBindingListItem(s),a.push(s)}return a},_t.parseBindingListItem=function(t){return t},_t.parseMaybeDefault=function(t,e,n){if(n=n||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(G.eq))return n;var i=this.startNodeAt(t,e);return i.left=n,i.right=this.parseMaybeAssign(),this.finishNode(i,"AssignmentPattern")},_t.checkLVal=function(t,e,n){switch(void 0===e&&(e=0),t.type){case"Identifier":this.strict&&this.reservedWordsStrictBind.test(t.name)&&this.raiseRecoverable(t.start,(e?"Binding ":"Assigning to ")+t.name+" in strict mode"),n&&(it(n,t.name)&&this.raiseRecoverable(t.start,"Argument name clash"),n[t.name]=!0),0!==e&&5!==e&&this.declareName(t.name,e,t.start);break;case"MemberExpression":e&&this.raiseRecoverable(t.start,"Binding member expression");break;case"ObjectPattern":for(var i=0,a=t.properties;i<a.length;i+=1){var r=a[i];this.checkLVal(r,e,n)}break;case"Property":this.checkLVal(t.value,e,n);break;case"ArrayPattern":for(var o=0,s=t.elements;o<s.length;o+=1){var c=s[o];c&&this.checkLVal(c,e,n)}break;case"AssignmentPattern":this.checkLVal(t.left,e,n);break;case"RestElement":this.checkLVal(t.argument,e,n);break;case"ParenthesizedExpression":this.checkLVal(t.expression,e,n);break;default:this.raise(t.start,(e?"Binding":"Assigning to")+" rvalue")}};var kt=ht.prototype;kt.checkPropClash=function(t,e,n){if(!(this.options.ecmaVersion>=9&&"SpreadElement"===t.type||this.options.ecmaVersion>=6&&(t.computed||t.method||t.shorthand))){var i,a=t.key;switch(a.type){case"Identifier":i=a.name;break;case"Literal":i=String(a.value);break;default:return}var r=t.kind;if(this.options.ecmaVersion>=6)"__proto__"===i&&"init"===r&&(e.proto&&(n&&n.doubleProto<0?n.doubleProto=a.start:this.raiseRecoverable(a.start,"Redefinition of __proto__ property")),e.proto=!0);else{var o=e[i="$"+i];if(o)("init"===r?this.strict&&o.init||o.get||o.set:o.init||o[r])&&this.raiseRecoverable(a.start,"Redefinition of property");else o=e[i]={init:!1,get:!1,set:!1};o[r]=!0}}},kt.parseExpression=function(t,e){var n=this.start,i=this.startLoc,a=this.parseMaybeAssign(t,e);if(this.type===G.comma){var r=this.startNodeAt(n,i);for(r.expressions=[a];this.eat(G.comma);)r.expressions.push(this.parseMaybeAssign(t,e));return this.finishNode(r,"SequenceExpression")}return a},kt.parseMaybeAssign=function(t,e,n){if(this.isContextual("yield")){if(this.inGenerator)return this.parseYield();this.exprAllowed=!1}var i=!1,a=-1,r=-1,o=-1;e?(a=e.parenthesizedAssign,r=e.trailingComma,o=e.shorthandAssign,e.parenthesizedAssign=e.trailingComma=e.shorthandAssign=-1):(e=new bt,i=!0);var s=this.start,c=this.startLoc;this.type!==G.parenL&&this.type!==G.name||(this.potentialArrowAt=this.start);var l=this.parseMaybeConditional(t,e);if(n&&(l=n.call(this,l,s,c)),this.type.isAssign){var u=this.startNodeAt(s,c);return u.operator=this.value,u.left=this.type===G.eq?this.toAssignable(l,!1,e):l,i||bt.call(e),e.shorthandAssign=-1,this.checkLVal(l),this.next(),u.right=this.parseMaybeAssign(t),this.finishNode(u,"AssignmentExpression")}return i&&this.checkExpressionErrors(e,!0),a>-1&&(e.parenthesizedAssign=a),r>-1&&(e.trailingComma=r),o>-1&&(e.shorthandAssign=o),l},kt.parseMaybeConditional=function(t,e){var n=this.start,i=this.startLoc,a=this.parseExprOps(t,e);if(this.checkExpressionErrors(e))return a;if(this.eat(G.question)){var r=this.startNodeAt(n,i);return r.test=a,r.consequent=this.parseMaybeAssign(),this.expect(G.colon),r.alternate=this.parseMaybeAssign(t),this.finishNode(r,"ConditionalExpression")}return a},kt.parseExprOps=function(t,e){var n=this.start,i=this.startLoc,a=this.parseMaybeUnary(e,!1);return this.checkExpressionErrors(e)||a.start===n&&"ArrowFunctionExpression"===a.type?a:this.parseExprOp(a,n,i,-1,t)},kt.parseExprOp=function(t,e,n,i,a){var r=this.type.binop;if(null!=r&&(!a||this.type!==G._in)&&r>i){var o=this.type===G.logicalOR||this.type===G.logicalAND,s=this.value;this.next();var c=this.start,l=this.startLoc,u=this.parseExprOp(this.parseMaybeUnary(null,!1),c,l,r,a),d=this.buildBinary(e,n,t,u,s,o);return this.parseExprOp(d,e,n,i,a)}return t},kt.buildBinary=function(t,e,n,i,a,r){var o=this.startNodeAt(t,e);return o.left=n,o.operator=a,o.right=i,this.finishNode(o,r?"LogicalExpression":"BinaryExpression")},kt.parseMaybeUnary=function(t,e){var n,i=this,a=this.start,r=this.startLoc;if(this.isContextual("await")&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction))n=this.parseAwait(),e=!0;else if(this.type.prefix){var o=this.startNode(),s=this.type===G.incDec;o.operator=this.value,o.prefix=!0,this.next(),o.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(t,!0),s?this.checkLVal(o.argument):this.strict&&"delete"===o.operator&&"Identifier"===o.argument.type?this.raiseRecoverable(o.start,"Deleting local variable in strict mode"):e=!0,n=this.finishNode(o,s?"UpdateExpression":"UnaryExpression")}else{if(n=this.parseExprSubscripts(t),this.checkExpressionErrors(t))return n;for(;this.type.postfix&&!this.canInsertSemicolon();){var c=i.startNodeAt(a,r);c.operator=i.value,c.prefix=!1,c.argument=n,i.checkLVal(n),i.next(),n=i.finishNode(c,"UpdateExpression")}}return!e&&this.eat(G.starstar)?this.buildBinary(a,r,n,this.parseMaybeUnary(null,!1),"**",!1):n},kt.parseExprSubscripts=function(t){var e=this.start,n=this.startLoc,i=this.parseExprAtom(t),a="ArrowFunctionExpression"===i.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd);if(this.checkExpressionErrors(t)||a)return i;var r=this.parseSubscripts(i,e,n);return t&&"MemberExpression"===r.type&&(t.parenthesizedAssign>=r.start&&(t.parenthesizedAssign=-1),t.parenthesizedBind>=r.start&&(t.parenthesizedBind=-1)),r},kt.parseSubscripts=function(t,e,n,i){for(var a=this,r=this.options.ecmaVersion>=8&&"Identifier"===t.type&&"async"===t.name&&this.lastTokEnd===t.end&&!this.canInsertSemicolon()&&"async"===this.input.slice(t.start,t.end),o=void 0;;)if((o=a.eat(G.bracketL))||a.eat(G.dot)){var s=a.startNodeAt(e,n);s.object=t,s.property=o?a.parseExpression():a.parseIdent(!0),s.computed=!!o,o&&a.expect(G.bracketR),t=a.finishNode(s,"MemberExpression")}else if(!i&&a.eat(G.parenL)){var c=new bt,l=a.yieldPos,u=a.awaitPos;a.yieldPos=0,a.awaitPos=0;var d=a.parseExprList(G.parenR,a.options.ecmaVersion>=8,!1,c);if(r&&!a.canInsertSemicolon()&&a.eat(G.arrow))return a.checkPatternErrors(c,!1),a.checkYieldAwaitInDefaultParams(),a.yieldPos=l,a.awaitPos=u,a.parseArrowExpression(a.startNodeAt(e,n),d,!0);a.checkExpressionErrors(c,!0),a.yieldPos=l||a.yieldPos,a.awaitPos=u||a.awaitPos;var h=a.startNodeAt(e,n);h.callee=t,h.arguments=d,t=a.finishNode(h,"CallExpression")}else{if(a.type!==G.backQuote)return t;var f=a.startNodeAt(e,n);f.tag=t,f.quasi=a.parseTemplate({isTagged:!0}),t=a.finishNode(f,"TaggedTemplateExpression")}},kt.parseExprAtom=function(t){var e,n=this.potentialArrowAt===this.start;switch(this.type){case G._super:return this.inFunction||this.raise(this.start,"'super' outside of function or class"),e=this.startNode(),this.next(),this.type!==G.dot&&this.type!==G.bracketL&&this.type!==G.parenL&&this.unexpected(),this.finishNode(e,"Super");case G._this:return e=this.startNode(),this.next(),this.finishNode(e,"ThisExpression");case G.name:var i=this.start,a=this.startLoc,r=this.containsEsc,o=this.parseIdent(this.type!==G.name);if(this.options.ecmaVersion>=8&&!r&&"async"===o.name&&!this.canInsertSemicolon()&&this.eat(G._function))return this.parseFunction(this.startNodeAt(i,a),0,!1,!0);if(n&&!this.canInsertSemicolon()){if(this.eat(G.arrow))return this.parseArrowExpression(this.startNodeAt(i,a),[o],!1);if(this.options.ecmaVersion>=8&&"async"===o.name&&this.type===G.name&&!r)return o=this.parseIdent(),!this.canInsertSemicolon()&&this.eat(G.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(i,a),[o],!0)}return o;case G.regexp:var s=this.value;return(e=this.parseLiteral(s.value)).regex={pattern:s.pattern,flags:s.flags},e;case G.num:case G.string:return this.parseLiteral(this.value);case G._null:case G._true:case G._false:return(e=this.startNode()).value=this.type===G._null?null:this.type===G._true,e.raw=this.type.keyword,this.next(),this.finishNode(e,"Literal");case G.parenL:var c=this.start,l=this.parseParenAndDistinguishExpression(n);return t&&(t.parenthesizedAssign<0&&!this.isSimpleAssignTarget(l)&&(t.parenthesizedAssign=c),t.parenthesizedBind<0&&(t.parenthesizedBind=c)),l;case G.bracketL:return e=this.startNode(),this.next(),e.elements=this.parseExprList(G.bracketR,!0,!0,t),this.finishNode(e,"ArrayExpression");case G.braceL:return this.parseObj(!1,t);case G._function:return e=this.startNode(),this.next(),this.parseFunction(e,0);case G._class:return this.parseClass(this.startNode(),!1);case G._new:return this.parseNew();case G.backQuote:return this.parseTemplate();default:this.unexpected()}},kt.parseLiteral=function(t){var e=this.startNode();return e.value=t,e.raw=this.input.slice(this.start,this.end),this.next(),this.finishNode(e,"Literal")},kt.parseParenExpression=function(){this.expect(G.parenL);var t=this.parseExpression();return this.expect(G.parenR),t},kt.parseParenAndDistinguishExpression=function(t){var e,n=this,i=this.start,a=this.startLoc,r=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var o,s=this.start,c=this.startLoc,l=[],u=!0,d=!1,h=new bt,f=this.yieldPos,g=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==G.parenR;){if(u?u=!1:n.expect(G.comma),r&&n.afterTrailingComma(G.parenR,!0)){d=!0;break}if(n.type===G.ellipsis){o=n.start,l.push(n.parseParenItem(n.parseRestBinding())),n.type===G.comma&&n.raise(n.start,"Comma is not permitted after the rest element");break}l.push(n.parseMaybeAssign(!1,h,n.parseParenItem))}var p=this.start,b=this.startLoc;if(this.expect(G.parenR),t&&!this.canInsertSemicolon()&&this.eat(G.arrow))return this.checkPatternErrors(h,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=f,this.awaitPos=g,this.parseParenArrowList(i,a,l);l.length&&!d||this.unexpected(this.lastTokStart),o&&this.unexpected(o),this.checkExpressionErrors(h,!0),this.yieldPos=f||this.yieldPos,this.awaitPos=g||this.awaitPos,l.length>1?((e=this.startNodeAt(s,c)).expressions=l,this.finishNodeAt(e,"SequenceExpression",p,b)):e=l[0]}else e=this.parseParenExpression();if(this.options.preserveParens){var m=this.startNodeAt(i,a);return m.expression=e,this.finishNode(m,"ParenthesizedExpression")}return e},kt.parseParenItem=function(t){return t},kt.parseParenArrowList=function(t,e,n){return this.parseArrowExpression(this.startNodeAt(t,e),n)};var Et=[];kt.parseNew=function(){var t=this.startNode(),e=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(G.dot)){t.meta=e;var n=this.containsEsc;return t.property=this.parseIdent(!0),("target"!==t.property.name||n)&&this.raiseRecoverable(t.property.start,"The only valid meta property for new is new.target"),this.inNonArrowFunction()||this.raiseRecoverable(t.start,"new.target can only be used in functions"),this.finishNode(t,"MetaProperty")}var i=this.start,a=this.startLoc;return t.callee=this.parseSubscripts(this.parseExprAtom(),i,a,!0),this.eat(G.parenL)?t.arguments=this.parseExprList(G.parenR,this.options.ecmaVersion>=8,!1):t.arguments=Et,this.finishNode(t,"NewExpression")},kt.parseTemplateElement=function(t){var e=t.isTagged,n=this.startNode();return this.type===G.invalidTemplate?(e||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),n.value={raw:this.value,cooked:null}):n.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),n.tail=this.type===G.backQuote,this.finishNode(n,"TemplateElement")},kt.parseTemplate=function(t){var e=this;void 0===t&&(t={});var n=t.isTagged;void 0===n&&(n=!1);var i=this.startNode();this.next(),i.expressions=[];var a=this.parseTemplateElement({isTagged:n});for(i.quasis=[a];!a.tail;)e.type===G.eof&&e.raise(e.pos,"Unterminated template literal"),e.expect(G.dollarBraceL),i.expressions.push(e.parseExpression()),e.expect(G.braceR),i.quasis.push(a=e.parseTemplateElement({isTagged:n}));return this.next(),this.finishNode(i,"TemplateLiteral")},kt.isAsyncProp=function(t){return!t.computed&&"Identifier"===t.key.type&&"async"===t.key.name&&(this.type===G.name||this.type===G.num||this.type===G.string||this.type===G.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===G.star)&&!Z.test(this.input.slice(this.lastTokEnd,this.start))},kt.parseObj=function(t,e){var n=this,i=this.startNode(),a=!0,r={};for(i.properties=[],this.next();!this.eat(G.braceR);){if(a)a=!1;else if(n.expect(G.comma),n.afterTrailingComma(G.braceR))break;var o=n.parseProperty(t,e);t||n.checkPropClash(o,r,e),i.properties.push(o)}return this.finishNode(i,t?"ObjectPattern":"ObjectExpression")},kt.parseProperty=function(t,e){var n,i,a,r,o=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(G.ellipsis))return t?(o.argument=this.parseIdent(!1),this.type===G.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.finishNode(o,"RestElement")):(this.type===G.parenL&&e&&(e.parenthesizedAssign<0&&(e.parenthesizedAssign=this.start),e.parenthesizedBind<0&&(e.parenthesizedBind=this.start)),o.argument=this.parseMaybeAssign(!1,e),this.type===G.comma&&e&&e.trailingComma<0&&(e.trailingComma=this.start),this.finishNode(o,"SpreadElement"));this.options.ecmaVersion>=6&&(o.method=!1,o.shorthand=!1,(t||e)&&(a=this.start,r=this.startLoc),t||(n=this.eat(G.star)));var s=this.containsEsc;return this.parsePropertyName(o),!t&&!s&&this.options.ecmaVersion>=8&&!n&&this.isAsyncProp(o)?(i=!0,n=this.options.ecmaVersion>=9&&this.eat(G.star),this.parsePropertyName(o,e)):i=!1,this.parsePropertyValue(o,t,n,i,a,r,e,s),this.finishNode(o,"Property")},kt.parsePropertyValue=function(t,e,n,i,a,r,o,s){if((n||i)&&this.type===G.colon&&this.unexpected(),this.eat(G.colon))t.value=e?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,o),t.kind="init";else if(this.options.ecmaVersion>=6&&this.type===G.parenL)e&&this.unexpected(),t.kind="init",t.method=!0,t.value=this.parseMethod(n,i);else if(e||s||!(this.options.ecmaVersion>=5)||t.computed||"Identifier"!==t.key.type||"get"!==t.key.name&&"set"!==t.key.name||this.type===G.comma||this.type===G.braceR)this.options.ecmaVersion>=6&&!t.computed&&"Identifier"===t.key.type?(this.checkUnreserved(t.key),t.kind="init",e?t.value=this.parseMaybeDefault(a,r,t.key):this.type===G.eq&&o?(o.shorthandAssign<0&&(o.shorthandAssign=this.start),t.value=this.parseMaybeDefault(a,r,t.key)):t.value=t.key,t.shorthand=!0):this.unexpected();else{(n||i)&&this.unexpected(),t.kind=t.key.name,this.parsePropertyName(t),t.value=this.parseMethod(!1);var c="get"===t.kind?0:1;if(t.value.params.length!==c){var l=t.value.start;"get"===t.kind?this.raiseRecoverable(l,"getter should have no params"):this.raiseRecoverable(l,"setter should have exactly one param")}else"set"===t.kind&&"RestElement"===t.value.params[0].type&&this.raiseRecoverable(t.value.params[0].start,"Setter cannot use rest params")}},kt.parsePropertyName=function(t){if(this.options.ecmaVersion>=6){if(this.eat(G.bracketL))return t.computed=!0,t.key=this.parseMaybeAssign(),this.expect(G.bracketR),t.key;t.computed=!1}return t.key=this.type===G.num||this.type===G.string?this.parseExprAtom():this.parseIdent(!0)},kt.initFunction=function(t){t.id=null,this.options.ecmaVersion>=6&&(t.generator=t.expression=!1),this.options.ecmaVersion>=8&&(t.async=!1)},kt.parseMethod=function(t,e){var n=this.startNode(),i=this.yieldPos,a=this.awaitPos;return this.initFunction(n),this.options.ecmaVersion>=6&&(n.generator=t),this.options.ecmaVersion>=8&&(n.async=!!e),this.yieldPos=0,this.awaitPos=0,this.enterScope(ut(e,n.generator)),this.expect(G.parenL),n.params=this.parseBindingList(G.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(n,!1),this.yieldPos=i,this.awaitPos=a,this.finishNode(n,"FunctionExpression")},kt.parseArrowExpression=function(t,e,n){var i=this.yieldPos,a=this.awaitPos;return this.enterScope(16|ut(n,!1)),this.initFunction(t),this.options.ecmaVersion>=8&&(t.async=!!n),this.yieldPos=0,this.awaitPos=0,t.params=this.toAssignableList(e,!0),this.parseFunctionBody(t,!0),this.yieldPos=i,this.awaitPos=a,this.finishNode(t,"ArrowFunctionExpression")},kt.parseFunctionBody=function(t,e){var n=e&&this.type!==G.braceL,i=this.strict,a=!1;if(n)t.body=this.parseMaybeAssign(),t.expression=!0,this.checkParams(t,!1);else{var r=this.options.ecmaVersion>=7&&!this.isSimpleParamList(t.params);i&&!r||(a=this.strictDirective(this.end))&&r&&this.raiseRecoverable(t.start,"Illegal 'use strict' directive in function with non-simple parameter list");var o=this.labels;this.labels=[],a&&(this.strict=!0),this.checkParams(t,!i&&!a&&!e&&this.isSimpleParamList(t.params)),t.body=this.parseBlock(!1),t.expression=!1,this.adaptDirectivePrologue(t.body.body),this.labels=o}this.exitScope(),this.strict&&t.id&&this.checkLVal(t.id,5),this.strict=i},kt.isSimpleParamList=function(t){for(var e=0,n=t;e<n.length;e+=1){if("Identifier"!==n[e].type)return!1}return!0},kt.checkParams=function(t,e){for(var n={},i=0,a=t.params;i<a.length;i+=1){var r=a[i];this.checkLVal(r,1,e?null:n)}},kt.parseExprList=function(t,e,n,i){for(var a=this,r=[],o=!0;!this.eat(t);){if(o)o=!1;else if(a.expect(G.comma),e&&a.afterTrailingComma(t))break;var s=void 0;n&&a.type===G.comma?s=null:a.type===G.ellipsis?(s=a.parseSpread(i),i&&a.type===G.comma&&i.trailingComma<0&&(i.trailingComma=a.start)):s=a.parseMaybeAssign(!1,i),r.push(s)}return r},kt.checkUnreserved=function(t){var e=t.start,n=t.end,i=t.name;(this.inGenerator&&"yield"===i&&this.raiseRecoverable(e,"Can not use 'yield' as identifier inside a generator"),this.inAsync&&"await"===i&&this.raiseRecoverable(e,"Can not use 'await' as identifier inside an async function"),this.keywords.test(i)&&this.raise(e,"Unexpected keyword '"+i+"'"),this.options.ecmaVersion<6&&-1!==this.input.slice(e,n).indexOf("\\"))||(this.strict?this.reservedWordsStrict:this.reservedWords).test(i)&&(this.inAsync||"await"!==i||this.raiseRecoverable(e,"Can not use keyword 'await' outside an async function"),this.raiseRecoverable(e,"The keyword '"+i+"' is reserved"))},kt.parseIdent=function(t,e){var n=this.startNode();return t&&"never"===this.options.allowReserved&&(t=!1),this.type===G.name?n.name=this.value:this.type.keyword?(n.name=this.type.keyword,"class"!==n.name&&"function"!==n.name||this.lastTokEnd===this.lastTokStart+1&&46===this.input.charCodeAt(this.lastTokStart)||this.context.pop()):this.unexpected(),this.next(),this.finishNode(n,"Identifier"),t||this.checkUnreserved(n),n},kt.parseYield=function(){this.yieldPos||(this.yieldPos=this.start);var t=this.startNode();return this.next(),this.type===G.semi||this.canInsertSemicolon()||this.type!==G.star&&!this.type.startsExpr?(t.delegate=!1,t.argument=null):(t.delegate=this.eat(G.star),t.argument=this.parseMaybeAssign()),this.finishNode(t,"YieldExpression")},kt.parseAwait=function(){this.awaitPos||(this.awaitPos=this.start);var t=this.startNode();return this.next(),t.argument=this.parseMaybeUnary(null,!0),this.finishNode(t,"AwaitExpression")};var Ct=ht.prototype;Ct.raise=function(t,e){var n=st(this.input,t);e+=" ("+n.line+":"+n.column+")";var i=new SyntaxError(e);throw i.pos=t,i.loc=n,i.raisedAt=this.pos,i},Ct.raiseRecoverable=Ct.raise,Ct.curPosition=function(){if(this.options.locations)return new rt(this.curLine,this.pos-this.lineStart)};var St=ht.prototype,Tt=function(t){this.flags=t,this.var=[],this.lexical=[]};St.enterScope=function(t){this.scopeStack.push(new Tt(t))},St.exitScope=function(){this.scopeStack.pop()},St.declareName=function(t,e,n){var i=!1;if(2===e){var a=this.currentScope();i=a.lexical.indexOf(t)>-1||a.var.indexOf(t)>-1,a.lexical.push(t)}else if(4===e){this.currentScope().lexical.push(t)}else if(3===e){var r=this.currentScope();i=r.lexical.indexOf(t)>-1,r.var.push(t)}else for(var o=this.scopeStack.length-1;o>=0;--o){var s=this.scopeStack[o];if(s.lexical.indexOf(t)>-1&&!(32&s.flags)&&s.lexical[0]===t&&(i=!0),s.var.push(t),3&s.flags)break}i&&this.raiseRecoverable(n,"Identifier '"+t+"' has already been declared")},St.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},St.currentVarScope=function(){for(var t=this.scopeStack.length-1;;t--){var e=this.scopeStack[t];if(3&e.flags)return e}},St.inNonArrowFunction=function(){for(var t=this.scopeStack.length-1;t>=0;t--)if(2&this.scopeStack[t].flags&&!(16&this.scopeStack[t].flags))return!0;return!1};var At=function(t,e,n){this.type="",this.start=e,this.end=0,t.options.locations&&(this.loc=new ot(t,n)),t.options.directSourceFile&&(this.sourceFile=t.options.directSourceFile),t.options.ranges&&(this.range=[e,0])},Dt=ht.prototype;function It(t,e,n,i){return t.type=e,t.end=n,this.options.locations&&(t.loc.end=i),this.options.ranges&&(t.range[1]=n),t}Dt.startNode=function(){return new At(this,this.start,this.startLoc)},Dt.startNodeAt=function(t,e){return new At(this,t,e)},Dt.finishNode=function(t,e){return It.call(this,t,e,this.lastTokEnd,this.lastTokEndLoc)},Dt.finishNodeAt=function(t,e,n,i){return It.call(this,t,e,n,i)};var Lt=function(t,e,n,i,a){this.token=t,this.isExpr=!!e,this.preserveSpace=!!n,this.override=i,this.generator=!!a},Ot={b_stat:new Lt("{",!1),b_expr:new Lt("{",!0),b_tmpl:new Lt("${",!1),p_stat:new Lt("(",!1),p_expr:new Lt("(",!0),q_tmpl:new Lt("`",!0,!0,(function(t){return t.tryReadTemplateToken()})),f_stat:new Lt("function",!1),f_expr:new Lt("function",!0),f_expr_gen:new Lt("function",!0,!1,null,!0),f_gen:new Lt("function",!1,!1,null,!0)},Mt=ht.prototype;Mt.initialContext=function(){return[Ot.b_stat]},Mt.braceIsBlock=function(t){var e=this.curContext();return e===Ot.f_expr||e===Ot.f_stat||(t!==G.colon||e!==Ot.b_stat&&e!==Ot.b_expr?t===G._return||t===G.name&&this.exprAllowed?Z.test(this.input.slice(this.lastTokEnd,this.start)):t===G._else||t===G.semi||t===G.eof||t===G.parenR||t===G.arrow||(t===G.braceL?e===Ot.b_stat:t!==G._var&&t!==G.name&&!this.exprAllowed):!e.isExpr)},Mt.inGeneratorContext=function(){for(var t=this.context.length-1;t>=1;t--){var e=this.context[t];if("function"===e.token)return e.generator}return!1},Mt.updateContext=function(t){var e,n=this.type;n.keyword&&t===G.dot?this.exprAllowed=!1:(e=n.updateContext)?e.call(this,t):this.exprAllowed=n.beforeExpr},G.parenR.updateContext=G.braceR.updateContext=function(){if(1!==this.context.length){var t=this.context.pop();t===Ot.b_stat&&"function"===this.curContext().token&&(t=this.context.pop()),this.exprAllowed=!t.isExpr}else this.exprAllowed=!0},G.braceL.updateContext=function(t){this.context.push(this.braceIsBlock(t)?Ot.b_stat:Ot.b_expr),this.exprAllowed=!0},G.dollarBraceL.updateContext=function(){this.context.push(Ot.b_tmpl),this.exprAllowed=!0},G.parenL.updateContext=function(t){var e=t===G._if||t===G._for||t===G._with||t===G._while;this.context.push(e?Ot.p_stat:Ot.p_expr),this.exprAllowed=!0},G.incDec.updateContext=function(){},G._function.updateContext=G._class.updateContext=function(t){t.beforeExpr&&t!==G.semi&&t!==G._else&&(t!==G.colon&&t!==G.braceL||this.curContext()!==Ot.b_stat)?this.context.push(Ot.f_expr):this.context.push(Ot.f_stat),this.exprAllowed=!1},G.backQuote.updateContext=function(){this.curContext()===Ot.q_tmpl?this.context.pop():this.context.push(Ot.q_tmpl),this.exprAllowed=!1},G.star.updateContext=function(t){if(t===G._function){var e=this.context.length-1;this.context[e]===Ot.f_expr?this.context[e]=Ot.f_expr_gen:this.context[e]=Ot.f_gen}this.exprAllowed=!0},G.name.updateContext=function(t){var e=!1;this.options.ecmaVersion>=6&&t!==G.dot&&("of"===this.value&&!this.exprAllowed||"yield"===this.value&&this.inGeneratorContext())&&(e=!0),this.exprAllowed=e};var Nt={$LONE:["ASCII","ASCII_Hex_Digit","AHex","Alphabetic","Alpha","Any","Assigned","Bidi_Control","Bidi_C","Bidi_Mirrored","Bidi_M","Case_Ignorable","CI","Cased","Changes_When_Casefolded","CWCF","Changes_When_Casemapped","CWCM","Changes_When_Lowercased","CWL","Changes_When_NFKC_Casefolded","CWKCF","Changes_When_Titlecased","CWT","Changes_When_Uppercased","CWU","Dash","Default_Ignorable_Code_Point","DI","Deprecated","Dep","Diacritic","Dia","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extender","Ext","Grapheme_Base","Gr_Base","Grapheme_Extend","Gr_Ext","Hex_Digit","Hex","IDS_Binary_Operator","IDSB","IDS_Trinary_Operator","IDST","ID_Continue","IDC","ID_Start","IDS","Ideographic","Ideo","Join_Control","Join_C","Logical_Order_Exception","LOE","Lowercase","Lower","Math","Noncharacter_Code_Point","NChar","Pattern_Syntax","Pat_Syn","Pattern_White_Space","Pat_WS","Quotation_Mark","QMark","Radical","Regional_Indicator","RI","Sentence_Terminal","STerm","Soft_Dotted","SD","Terminal_Punctuation","Term","Unified_Ideograph","UIdeo","Uppercase","Upper","Variation_Selector","VS","White_Space","space","XID_Continue","XIDC","XID_Start","XIDS"],General_Category:["Cased_Letter","LC","Close_Punctuation","Pe","Connector_Punctuation","Pc","Control","Cc","cntrl","Currency_Symbol","Sc","Dash_Punctuation","Pd","Decimal_Number","Nd","digit","Enclosing_Mark","Me","Final_Punctuation","Pf","Format","Cf","Initial_Punctuation","Pi","Letter","L","Letter_Number","Nl","Line_Separator","Zl","Lowercase_Letter","Ll","Mark","M","Combining_Mark","Math_Symbol","Sm","Modifier_Letter","Lm","Modifier_Symbol","Sk","Nonspacing_Mark","Mn","Number","N","Open_Punctuation","Ps","Other","C","Other_Letter","Lo","Other_Number","No","Other_Punctuation","Po","Other_Symbol","So","Paragraph_Separator","Zp","Private_Use","Co","Punctuation","P","punct","Separator","Z","Space_Separator","Zs","Spacing_Mark","Mc","Surrogate","Cs","Symbol","S","Titlecase_Letter","Lt","Unassigned","Cn","Uppercase_Letter","Lu"],Script:["Adlam","Adlm","Ahom","Anatolian_Hieroglyphs","Hluw","Arabic","Arab","Armenian","Armn","Avestan","Avst","Balinese","Bali","Bamum","Bamu","Bassa_Vah","Bass","Batak","Batk","Bengali","Beng","Bhaiksuki","Bhks","Bopomofo","Bopo","Brahmi","Brah","Braille","Brai","Buginese","Bugi","Buhid","Buhd","Canadian_Aboriginal","Cans","Carian","Cari","Caucasian_Albanian","Aghb","Chakma","Cakm","Cham","Cherokee","Cher","Common","Zyyy","Coptic","Copt","Qaac","Cuneiform","Xsux","Cypriot","Cprt","Cyrillic","Cyrl","Deseret","Dsrt","Devanagari","Deva","Duployan","Dupl","Egyptian_Hieroglyphs","Egyp","Elbasan","Elba","Ethiopic","Ethi","Georgian","Geor","Glagolitic","Glag","Gothic","Goth","Grantha","Gran","Greek","Grek","Gujarati","Gujr","Gurmukhi","Guru","Han","Hani","Hangul","Hang","Hanunoo","Hano","Hatran","Hatr","Hebrew","Hebr","Hiragana","Hira","Imperial_Aramaic","Armi","Inherited","Zinh","Qaai","Inscriptional_Pahlavi","Phli","Inscriptional_Parthian","Prti","Javanese","Java","Kaithi","Kthi","Kannada","Knda","Katakana","Kana","Kayah_Li","Kali","Kharoshthi","Khar","Khmer","Khmr","Khojki","Khoj","Khudawadi","Sind","Lao","Laoo","Latin","Latn","Lepcha","Lepc","Limbu","Limb","Linear_A","Lina","Linear_B","Linb","Lisu","Lycian","Lyci","Lydian","Lydi","Mahajani","Mahj","Malayalam","Mlym","Mandaic","Mand","Manichaean","Mani","Marchen","Marc","Masaram_Gondi","Gonm","Meetei_Mayek","Mtei","Mende_Kikakui","Mend","Meroitic_Cursive","Merc","Meroitic_Hieroglyphs","Mero","Miao","Plrd","Modi","Mongolian","Mong","Mro","Mroo","Multani","Mult","Myanmar","Mymr","Nabataean","Nbat","New_Tai_Lue","Talu","Newa","Nko","Nkoo","Nushu","Nshu","Ogham","Ogam","Ol_Chiki","Olck","Old_Hungarian","Hung","Old_Italic","Ital","Old_North_Arabian","Narb","Old_Permic","Perm","Old_Persian","Xpeo","Old_South_Arabian","Sarb","Old_Turkic","Orkh","Oriya","Orya","Osage","Osge","Osmanya","Osma","Pahawh_Hmong","Hmng","Palmyrene","Palm","Pau_Cin_Hau","Pauc","Phags_Pa","Phag","Phoenician","Phnx","Psalter_Pahlavi","Phlp","Rejang","Rjng","Runic","Runr","Samaritan","Samr","Saurashtra","Saur","Sharada","Shrd","Shavian","Shaw","Siddham","Sidd","SignWriting","Sgnw","Sinhala","Sinh","Sora_Sompeng","Sora","Soyombo","Soyo","Sundanese","Sund","Syloti_Nagri","Sylo","Syriac","Syrc","Tagalog","Tglg","Tagbanwa","Tagb","Tai_Le","Tale","Tai_Tham","Lana","Tai_Viet","Tavt","Takri","Takr","Tamil","Taml","Tangut","Tang","Telugu","Telu","Thaana","Thaa","Thai","Tibetan","Tibt","Tifinagh","Tfng","Tirhuta","Tirh","Ugaritic","Ugar","Vai","Vaii","Warang_Citi","Wara","Yi","Yiii","Zanabazar_Square","Zanb"]};Array.prototype.push.apply(Nt.$LONE,Nt.General_Category),Nt.gc=Nt.General_Category,Nt.sc=Nt.Script_Extensions=Nt.scx=Nt.Script;var Bt=ht.prototype,Pt=function(t){this.parser=t,this.validFlags="gim"+(t.options.ecmaVersion>=6?"uy":"")+(t.options.ecmaVersion>=9?"s":""),this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};function Ft(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))}function jt(t){return 36===t||t>=40&&t<=43||46===t||63===t||t>=91&&t<=94||t>=123&&t<=125}function $t(t){return t>=65&&t<=90||t>=97&&t<=122}function zt(t){return $t(t)||95===t}function Ht(t){return zt(t)||Ut(t)}function Ut(t){return t>=48&&t<=57}function Vt(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}function qt(t){return t>=65&&t<=70?t-65+10:t>=97&&t<=102?t-97+10:t-48}function Wt(t){return t>=48&&t<=55}Pt.prototype.reset=function(t,e,n){var i=-1!==n.indexOf("u");this.start=0|t,this.source=e+"",this.flags=n,this.switchU=i&&this.parser.options.ecmaVersion>=6,this.switchN=i&&this.parser.options.ecmaVersion>=9},Pt.prototype.raise=function(t){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+t)},Pt.prototype.at=function(t){var e=this.source,n=e.length;if(t>=n)return-1;var i=e.charCodeAt(t);return!this.switchU||i<=55295||i>=57344||t+1>=n?i:(i<<10)+e.charCodeAt(t+1)-56613888},Pt.prototype.nextIndex=function(t){var e=this.source,n=e.length;if(t>=n)return n;var i=e.charCodeAt(t);return!this.switchU||i<=55295||i>=57344||t+1>=n?t+1:t+2},Pt.prototype.current=function(){return this.at(this.pos)},Pt.prototype.lookahead=function(){return this.at(this.nextIndex(this.pos))},Pt.prototype.advance=function(){this.pos=this.nextIndex(this.pos)},Pt.prototype.eat=function(t){return this.current()===t&&(this.advance(),!0)},Bt.validateRegExpFlags=function(t){for(var e=t.validFlags,n=t.flags,i=0;i<n.length;i++){var a=n.charAt(i);-1===e.indexOf(a)&&this.raise(t.start,"Invalid regular expression flag"),n.indexOf(a,i+1)>-1&&this.raise(t.start,"Duplicate regular expression flag")}},Bt.validateRegExpPattern=function(t){this.regexp_pattern(t),!t.switchN&&this.options.ecmaVersion>=9&&t.groupNames.length>0&&(t.switchN=!0,this.regexp_pattern(t))},Bt.regexp_pattern=function(t){t.pos=0,t.lastIntValue=0,t.lastStringValue="",t.lastAssertionIsQuantifiable=!1,t.numCapturingParens=0,t.maxBackReference=0,t.groupNames.length=0,t.backReferenceNames.length=0,this.regexp_disjunction(t),t.pos!==t.source.length&&(t.eat(41)&&t.raise("Unmatched ')'"),(t.eat(93)||t.eat(125))&&t.raise("Lone quantifier brackets")),t.maxBackReference>t.numCapturingParens&&t.raise("Invalid escape");for(var e=0,n=t.backReferenceNames;e<n.length;e+=1){var i=n[e];-1===t.groupNames.indexOf(i)&&t.raise("Invalid named capture referenced")}},Bt.regexp_disjunction=function(t){for(this.regexp_alternative(t);t.eat(124);)this.regexp_alternative(t);this.regexp_eatQuantifier(t,!0)&&t.raise("Nothing to repeat"),t.eat(123)&&t.raise("Lone quantifier brackets")},Bt.regexp_alternative=function(t){for(;t.pos<t.source.length&&this.regexp_eatTerm(t););},Bt.regexp_eatTerm=function(t){return this.regexp_eatAssertion(t)?(t.lastAssertionIsQuantifiable&&this.regexp_eatQuantifier(t)&&t.switchU&&t.raise("Invalid quantifier"),!0):!!(t.switchU?this.regexp_eatAtom(t):this.regexp_eatExtendedAtom(t))&&(this.regexp_eatQuantifier(t),!0)},Bt.regexp_eatAssertion=function(t){var e=t.pos;if(t.lastAssertionIsQuantifiable=!1,t.eat(94)||t.eat(36))return!0;if(t.eat(92)){if(t.eat(66)||t.eat(98))return!0;t.pos=e}if(t.eat(40)&&t.eat(63)){var n=!1;if(this.options.ecmaVersion>=9&&(n=t.eat(60)),t.eat(61)||t.eat(33))return this.regexp_disjunction(t),t.eat(41)||t.raise("Unterminated group"),t.lastAssertionIsQuantifiable=!n,!0}return t.pos=e,!1},Bt.regexp_eatQuantifier=function(t,e){return void 0===e&&(e=!1),!!this.regexp_eatQuantifierPrefix(t,e)&&(t.eat(63),!0)},Bt.regexp_eatQuantifierPrefix=function(t,e){return t.eat(42)||t.eat(43)||t.eat(63)||this.regexp_eatBracedQuantifier(t,e)},Bt.regexp_eatBracedQuantifier=function(t,e){var n=t.pos;if(t.eat(123)){var i=0,a=-1;if(this.regexp_eatDecimalDigits(t)&&(i=t.lastIntValue,t.eat(44)&&this.regexp_eatDecimalDigits(t)&&(a=t.lastIntValue),t.eat(125)))return-1!==a&&a<i&&!e&&t.raise("numbers out of order in {} quantifier"),!0;t.switchU&&!e&&t.raise("Incomplete quantifier"),t.pos=n}return!1},Bt.regexp_eatAtom=function(t){return this.regexp_eatPatternCharacters(t)||t.eat(46)||this.regexp_eatReverseSolidusAtomEscape(t)||this.regexp_eatCharacterClass(t)||this.regexp_eatUncapturingGroup(t)||this.regexp_eatCapturingGroup(t)},Bt.regexp_eatReverseSolidusAtomEscape=function(t){var e=t.pos;if(t.eat(92)){if(this.regexp_eatAtomEscape(t))return!0;t.pos=e}return!1},Bt.regexp_eatUncapturingGroup=function(t){var e=t.pos;if(t.eat(40)){if(t.eat(63)&&t.eat(58)){if(this.regexp_disjunction(t),t.eat(41))return!0;t.raise("Unterminated group")}t.pos=e}return!1},Bt.regexp_eatCapturingGroup=function(t){if(t.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(t):63===t.current()&&t.raise("Invalid group"),this.regexp_disjunction(t),t.eat(41))return t.numCapturingParens+=1,!0;t.raise("Unterminated group")}return!1},Bt.regexp_eatExtendedAtom=function(t){return t.eat(46)||this.regexp_eatReverseSolidusAtomEscape(t)||this.regexp_eatCharacterClass(t)||this.regexp_eatUncapturingGroup(t)||this.regexp_eatCapturingGroup(t)||this.regexp_eatInvalidBracedQuantifier(t)||this.regexp_eatExtendedPatternCharacter(t)},Bt.regexp_eatInvalidBracedQuantifier=function(t){return this.regexp_eatBracedQuantifier(t,!0)&&t.raise("Nothing to repeat"),!1},Bt.regexp_eatSyntaxCharacter=function(t){var e=t.current();return!!jt(e)&&(t.lastIntValue=e,t.advance(),!0)},Bt.regexp_eatPatternCharacters=function(t){for(var e=t.pos,n=0;-1!==(n=t.current())&&!jt(n);)t.advance();return t.pos!==e},Bt.regexp_eatExtendedPatternCharacter=function(t){var e=t.current();return!(-1===e||36===e||e>=40&&e<=43||46===e||63===e||91===e||94===e||124===e)&&(t.advance(),!0)},Bt.regexp_groupSpecifier=function(t){if(t.eat(63)){if(this.regexp_eatGroupName(t))return-1!==t.groupNames.indexOf(t.lastStringValue)&&t.raise("Duplicate capture group name"),void t.groupNames.push(t.lastStringValue);t.raise("Invalid group")}},Bt.regexp_eatGroupName=function(t){if(t.lastStringValue="",t.eat(60)){if(this.regexp_eatRegExpIdentifierName(t)&&t.eat(62))return!0;t.raise("Invalid capture group name")}return!1},Bt.regexp_eatRegExpIdentifierName=function(t){if(t.lastStringValue="",this.regexp_eatRegExpIdentifierStart(t)){for(t.lastStringValue+=Ft(t.lastIntValue);this.regexp_eatRegExpIdentifierPart(t);)t.lastStringValue+=Ft(t.lastIntValue);return!0}return!1},Bt.regexp_eatRegExpIdentifierStart=function(t){var e=t.pos,n=t.current();return t.advance(),92===n&&this.regexp_eatRegExpUnicodeEscapeSequence(t)&&(n=t.lastIntValue),function(t){return $(t,!0)||36===t||95===t}(n)?(t.lastIntValue=n,!0):(t.pos=e,!1)},Bt.regexp_eatRegExpIdentifierPart=function(t){var e=t.pos,n=t.current();return t.advance(),92===n&&this.regexp_eatRegExpUnicodeEscapeSequence(t)&&(n=t.lastIntValue),function(t){return z(t,!0)||36===t||95===t||8204===t||8205===t}(n)?(t.lastIntValue=n,!0):(t.pos=e,!1)},Bt.regexp_eatAtomEscape=function(t){return!!(this.regexp_eatBackReference(t)||this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)||t.switchN&&this.regexp_eatKGroupName(t))||(t.switchU&&(99===t.current()&&t.raise("Invalid unicode escape"),t.raise("Invalid escape")),!1)},Bt.regexp_eatBackReference=function(t){var e=t.pos;if(this.regexp_eatDecimalEscape(t)){var n=t.lastIntValue;if(t.switchU)return n>t.maxBackReference&&(t.maxBackReference=n),!0;if(n<=t.numCapturingParens)return!0;t.pos=e}return!1},Bt.regexp_eatKGroupName=function(t){if(t.eat(107)){if(this.regexp_eatGroupName(t))return t.backReferenceNames.push(t.lastStringValue),!0;t.raise("Invalid named reference")}return!1},Bt.regexp_eatCharacterEscape=function(t){return this.regexp_eatControlEscape(t)||this.regexp_eatCControlLetter(t)||this.regexp_eatZero(t)||this.regexp_eatHexEscapeSequence(t)||this.regexp_eatRegExpUnicodeEscapeSequence(t)||!t.switchU&&this.regexp_eatLegacyOctalEscapeSequence(t)||this.regexp_eatIdentityEscape(t)},Bt.regexp_eatCControlLetter=function(t){var e=t.pos;if(t.eat(99)){if(this.regexp_eatControlLetter(t))return!0;t.pos=e}return!1},Bt.regexp_eatZero=function(t){return 48===t.current()&&!Ut(t.lookahead())&&(t.lastIntValue=0,t.advance(),!0)},Bt.regexp_eatControlEscape=function(t){var e=t.current();return 116===e?(t.lastIntValue=9,t.advance(),!0):110===e?(t.lastIntValue=10,t.advance(),!0):118===e?(t.lastIntValue=11,t.advance(),!0):102===e?(t.lastIntValue=12,t.advance(),!0):114===e&&(t.lastIntValue=13,t.advance(),!0)},Bt.regexp_eatControlLetter=function(t){var e=t.current();return!!$t(e)&&(t.lastIntValue=e%32,t.advance(),!0)},Bt.regexp_eatRegExpUnicodeEscapeSequence=function(t){var e,n=t.pos;if(t.eat(117)){if(this.regexp_eatFixedHexDigits(t,4)){var i=t.lastIntValue;if(t.switchU&&i>=55296&&i<=56319){var a=t.pos;if(t.eat(92)&&t.eat(117)&&this.regexp_eatFixedHexDigits(t,4)){var r=t.lastIntValue;if(r>=56320&&r<=57343)return t.lastIntValue=1024*(i-55296)+(r-56320)+65536,!0}t.pos=a,t.lastIntValue=i}return!0}if(t.switchU&&t.eat(123)&&this.regexp_eatHexDigits(t)&&t.eat(125)&&((e=t.lastIntValue)>=0&&e<=1114111))return!0;t.switchU&&t.raise("Invalid unicode escape"),t.pos=n}return!1},Bt.regexp_eatIdentityEscape=function(t){if(t.switchU)return!!this.regexp_eatSyntaxCharacter(t)||!!t.eat(47)&&(t.lastIntValue=47,!0);var e=t.current();return!(99===e||t.switchN&&107===e)&&(t.lastIntValue=e,t.advance(),!0)},Bt.regexp_eatDecimalEscape=function(t){t.lastIntValue=0;var e=t.current();if(e>=49&&e<=57){do{t.lastIntValue=10*t.lastIntValue+(e-48),t.advance()}while((e=t.current())>=48&&e<=57);return!0}return!1},Bt.regexp_eatCharacterClassEscape=function(t){var e=t.current();if(function(t){return 100===t||68===t||115===t||83===t||119===t||87===t}(e))return t.lastIntValue=-1,t.advance(),!0;if(t.switchU&&this.options.ecmaVersion>=9&&(80===e||112===e)){if(t.lastIntValue=-1,t.advance(),t.eat(123)&&this.regexp_eatUnicodePropertyValueExpression(t)&&t.eat(125))return!0;t.raise("Invalid property name")}return!1},Bt.regexp_eatUnicodePropertyValueExpression=function(t){var e=t.pos;if(this.regexp_eatUnicodePropertyName(t)&&t.eat(61)){var n=t.lastStringValue;if(this.regexp_eatUnicodePropertyValue(t)){var i=t.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(t,n,i),!0}}if(t.pos=e,this.regexp_eatLoneUnicodePropertyNameOrValue(t)){var a=t.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(t,a),!0}return!1},Bt.regexp_validateUnicodePropertyNameAndValue=function(t,e,n){Nt.hasOwnProperty(e)&&-1!==Nt[e].indexOf(n)||t.raise("Invalid property name")},Bt.regexp_validateUnicodePropertyNameOrValue=function(t,e){-1===Nt.$LONE.indexOf(e)&&t.raise("Invalid property name")},Bt.regexp_eatUnicodePropertyName=function(t){var e=0;for(t.lastStringValue="";zt(e=t.current());)t.lastStringValue+=Ft(e),t.advance();return""!==t.lastStringValue},Bt.regexp_eatUnicodePropertyValue=function(t){var e=0;for(t.lastStringValue="";Ht(e=t.current());)t.lastStringValue+=Ft(e),t.advance();return""!==t.lastStringValue},Bt.regexp_eatLoneUnicodePropertyNameOrValue=function(t){return this.regexp_eatUnicodePropertyValue(t)},Bt.regexp_eatCharacterClass=function(t){if(t.eat(91)){if(t.eat(94),this.regexp_classRanges(t),t.eat(93))return!0;t.raise("Unterminated character class")}return!1},Bt.regexp_classRanges=function(t){for(;this.regexp_eatClassAtom(t);){var e=t.lastIntValue;if(t.eat(45)&&this.regexp_eatClassAtom(t)){var n=t.lastIntValue;!t.switchU||-1!==e&&-1!==n||t.raise("Invalid character class"),-1!==e&&-1!==n&&e>n&&t.raise("Range out of order in character class")}}},Bt.regexp_eatClassAtom=function(t){var e=t.pos;if(t.eat(92)){if(this.regexp_eatClassEscape(t))return!0;if(t.switchU){var n=t.current();(99===n||Wt(n))&&t.raise("Invalid class escape"),t.raise("Invalid escape")}t.pos=e}var i=t.current();return 93!==i&&(t.lastIntValue=i,t.advance(),!0)},Bt.regexp_eatClassEscape=function(t){var e=t.pos;if(t.eat(98))return t.lastIntValue=8,!0;if(t.switchU&&t.eat(45))return t.lastIntValue=45,!0;if(!t.switchU&&t.eat(99)){if(this.regexp_eatClassControlLetter(t))return!0;t.pos=e}return this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)},Bt.regexp_eatClassControlLetter=function(t){var e=t.current();return!(!Ut(e)&&95!==e)&&(t.lastIntValue=e%32,t.advance(),!0)},Bt.regexp_eatHexEscapeSequence=function(t){var e=t.pos;if(t.eat(120)){if(this.regexp_eatFixedHexDigits(t,2))return!0;t.switchU&&t.raise("Invalid escape"),t.pos=e}return!1},Bt.regexp_eatDecimalDigits=function(t){var e=t.pos,n=0;for(t.lastIntValue=0;Ut(n=t.current());)t.lastIntValue=10*t.lastIntValue+(n-48),t.advance();return t.pos!==e},Bt.regexp_eatHexDigits=function(t){var e=t.pos,n=0;for(t.lastIntValue=0;Vt(n=t.current());)t.lastIntValue=16*t.lastIntValue+qt(n),t.advance();return t.pos!==e},Bt.regexp_eatLegacyOctalEscapeSequence=function(t){if(this.regexp_eatOctalDigit(t)){var e=t.lastIntValue;if(this.regexp_eatOctalDigit(t)){var n=t.lastIntValue;e<=3&&this.regexp_eatOctalDigit(t)?t.lastIntValue=64*e+8*n+t.lastIntValue:t.lastIntValue=8*e+n}else t.lastIntValue=e;return!0}return!1},Bt.regexp_eatOctalDigit=function(t){var e=t.current();return Wt(e)?(t.lastIntValue=e-48,t.advance(),!0):(t.lastIntValue=0,!1)},Bt.regexp_eatFixedHexDigits=function(t,e){var n=t.pos;t.lastIntValue=0;for(var i=0;i<e;++i){var a=t.current();if(!Vt(a))return t.pos=n,!1;t.lastIntValue=16*t.lastIntValue+qt(a),t.advance()}return!0};var Yt=function(t){this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,t.options.locations&&(this.loc=new ot(t,t.startLoc,t.endLoc)),t.options.ranges&&(this.range=[t.start,t.end])},Gt=ht.prototype;function Zt(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))}Gt.next=function(){this.options.onToken&&this.options.onToken(new Yt(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},Gt.getToken=function(){return this.next(),new Yt(this)},"undefined"!=typeof Symbol&&(Gt[Symbol.iterator]=function(){var t=this;return{next:function(){var e=t.getToken();return{done:e.type===G.eof,value:e}}}}),Gt.curContext=function(){return this.context[this.context.length-1]},Gt.nextToken=function(){var t=this.curContext();return t&&t.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(G.eof):t.override?t.override(this):void this.readToken(this.fullCharCodeAtPos())},Gt.readToken=function(t){return $(t,this.options.ecmaVersion>=6)||92===t?this.readWord():this.getTokenFromCode(t)},Gt.fullCharCodeAtPos=function(){var t=this.input.charCodeAt(this.pos);return t<=55295||t>=57344?t:(t<<10)+this.input.charCodeAt(this.pos+1)-56613888},Gt.skipBlockComment=function(){var t,e=this.options.onComment&&this.curPosition(),n=this.pos,i=this.input.indexOf("*/",this.pos+=2);if(-1===i&&this.raise(this.pos-2,"Unterminated comment"),this.pos=i+2,this.options.locations)for(K.lastIndex=n;(t=K.exec(this.input))&&t.index<this.pos;)++this.curLine,this.lineStart=t.index+t[0].length;this.options.onComment&&this.options.onComment(!0,this.input.slice(n+2,i),n,this.pos,e,this.curPosition())},Gt.skipLineComment=function(t){for(var e=this.pos,n=this.options.onComment&&this.curPosition(),i=this.input.charCodeAt(this.pos+=t);this.pos<this.input.length&&!X(i);)i=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(e+t,this.pos),e,this.pos,n,this.curPosition())},Gt.skipSpace=function(){var t=this;t:for(;this.pos<this.input.length;){var e=t.input.charCodeAt(t.pos);switch(e){case 32:case 160:++t.pos;break;case 13:10===t.input.charCodeAt(t.pos+1)&&++t.pos;case 10:case 8232:case 8233:++t.pos,t.options.locations&&(++t.curLine,t.lineStart=t.pos);break;case 47:switch(t.input.charCodeAt(t.pos+1)){case 42:t.skipBlockComment();break;case 47:t.skipLineComment(2);break;default:break t}break;default:if(!(e>8&&e<14||e>=5760&&J.test(String.fromCharCode(e))))break t;++t.pos}}},Gt.finishToken=function(t,e){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var n=this.type;this.type=t,this.value=e,this.updateContext(n)},Gt.readToken_dot=function(){var t=this.input.charCodeAt(this.pos+1);if(t>=48&&t<=57)return this.readNumber(!0);var e=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===t&&46===e?(this.pos+=3,this.finishToken(G.ellipsis)):(++this.pos,this.finishToken(G.dot))},Gt.readToken_slash=function(){var t=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===t?this.finishOp(G.assign,2):this.finishOp(G.slash,1)},Gt.readToken_mult_modulo_exp=function(t){var e=this.input.charCodeAt(this.pos+1),n=1,i=42===t?G.star:G.modulo;return this.options.ecmaVersion>=7&&42===t&&42===e&&(++n,i=G.starstar,e=this.input.charCodeAt(this.pos+2)),61===e?this.finishOp(G.assign,n+1):this.finishOp(i,n)},Gt.readToken_pipe_amp=function(t){var e=this.input.charCodeAt(this.pos+1);return e===t?this.finishOp(124===t?G.logicalOR:G.logicalAND,2):61===e?this.finishOp(G.assign,2):this.finishOp(124===t?G.bitwiseOR:G.bitwiseAND,1)},Gt.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(G.assign,2):this.finishOp(G.bitwiseXOR,1)},Gt.readToken_plus_min=function(t){var e=this.input.charCodeAt(this.pos+1);return e===t?45!==e||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!Z.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(G.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===e?this.finishOp(G.assign,2):this.finishOp(G.plusMin,1)},Gt.readToken_lt_gt=function(t){var e=this.input.charCodeAt(this.pos+1),n=1;return e===t?(n=62===t&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+n)?this.finishOp(G.assign,n+1):this.finishOp(G.bitShift,n)):33!==e||60!==t||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===e&&(n=2),this.finishOp(G.relational,n)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},Gt.readToken_eq_excl=function(t){var e=this.input.charCodeAt(this.pos+1);return 61===e?this.finishOp(G.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===t&&62===e&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(G.arrow)):this.finishOp(61===t?G.eq:G.prefix,1)},Gt.getTokenFromCode=function(t){switch(t){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(G.parenL);case 41:return++this.pos,this.finishToken(G.parenR);case 59:return++this.pos,this.finishToken(G.semi);case 44:return++this.pos,this.finishToken(G.comma);case 91:return++this.pos,this.finishToken(G.bracketL);case 93:return++this.pos,this.finishToken(G.bracketR);case 123:return++this.pos,this.finishToken(G.braceL);case 125:return++this.pos,this.finishToken(G.braceR);case 58:return++this.pos,this.finishToken(G.colon);case 63:return++this.pos,this.finishToken(G.question);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(G.backQuote);case 48:var e=this.input.charCodeAt(this.pos+1);if(120===e||88===e)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===e||79===e)return this.readRadixNumber(8);if(98===e||66===e)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(t);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(t);case 124:case 38:return this.readToken_pipe_amp(t);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(t);case 60:case 62:return this.readToken_lt_gt(t);case 61:case 33:return this.readToken_eq_excl(t);case 126:return this.finishOp(G.prefix,1)}this.raise(this.pos,"Unexpected character '"+Zt(t)+"'")},Gt.finishOp=function(t,e){var n=this.input.slice(this.pos,this.pos+e);return this.pos+=e,this.finishToken(t,n)},Gt.readRegexp=function(){for(var t,e,n=this,i=this.pos;;){n.pos>=n.input.length&&n.raise(i,"Unterminated regular expression");var a=n.input.charAt(n.pos);if(Z.test(a)&&n.raise(i,"Unterminated regular expression"),t)t=!1;else{if("["===a)e=!0;else if("]"===a&&e)e=!1;else if("/"===a&&!e)break;t="\\"===a}++n.pos}var r=this.input.slice(i,this.pos);++this.pos;var o=this.pos,s=this.readWord1();this.containsEsc&&this.unexpected(o);var c=this.regexpState||(this.regexpState=new Pt(this));c.reset(i,r,s),this.validateRegExpFlags(c),this.validateRegExpPattern(c);var l=null;try{l=new RegExp(r,s)}catch(u){}return this.finishToken(G.regexp,{pattern:r,flags:s,value:l})},Gt.readInt=function(t,e){for(var n=this,i=this.pos,a=0,r=0,o=null==e?1/0:e;r<o;++r){var s=n.input.charCodeAt(n.pos),c=void 0;if((c=s>=97?s-97+10:s>=65?s-65+10:s>=48&&s<=57?s-48:1/0)>=t)break;++n.pos,a=a*t+c}return this.pos===i||null!=e&&this.pos-i!==e?null:a},Gt.readRadixNumber=function(t){this.pos+=2;var e=this.readInt(t);return null==e&&this.raise(this.start+2,"Expected number in radix "+t),$(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(G.num,e)},Gt.readNumber=function(t){var e=this.pos;t||null!==this.readInt(10)||this.raise(e,"Invalid number");var n=this.pos-e>=2&&48===this.input.charCodeAt(e);n&&this.strict&&this.raise(e,"Invalid number"),n&&/[89]/.test(this.input.slice(e,this.pos))&&(n=!1);var i=this.input.charCodeAt(this.pos);46!==i||n||(++this.pos,this.readInt(10),i=this.input.charCodeAt(this.pos)),69!==i&&101!==i||n||(43!==(i=this.input.charCodeAt(++this.pos))&&45!==i||++this.pos,null===this.readInt(10)&&this.raise(e,"Invalid number")),$(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var a=this.input.slice(e,this.pos),r=n?parseInt(a,8):parseFloat(a);return this.finishToken(G.num,r)},Gt.readCodePoint=function(){var t;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var e=++this.pos;t=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(e,"Code point out of bounds")}else t=this.readHexChar(4);return t},Gt.readString=function(t){for(var e=this,n="",i=++this.pos;;){e.pos>=e.input.length&&e.raise(e.start,"Unterminated string constant");var a=e.input.charCodeAt(e.pos);if(a===t)break;92===a?(n+=e.input.slice(i,e.pos),n+=e.readEscapedChar(!1),i=e.pos):(X(a,e.options.ecmaVersion>=10)&&e.raise(e.start,"Unterminated string constant"),++e.pos)}return n+=this.input.slice(i,this.pos++),this.finishToken(G.string,n)};var Kt={};Gt.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(t){if(t!==Kt)throw t;this.readInvalidTemplateToken()}this.inTemplateElement=!1},Gt.invalidStringToken=function(t,e){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Kt;this.raise(t,e)},Gt.readTmplToken=function(){for(var t=this,e="",n=this.pos;;){t.pos>=t.input.length&&t.raise(t.start,"Unterminated template");var i=t.input.charCodeAt(t.pos);if(96===i||36===i&&123===t.input.charCodeAt(t.pos+1))return t.pos!==t.start||t.type!==G.template&&t.type!==G.invalidTemplate?(e+=t.input.slice(n,t.pos),t.finishToken(G.template,e)):36===i?(t.pos+=2,t.finishToken(G.dollarBraceL)):(++t.pos,t.finishToken(G.backQuote));if(92===i)e+=t.input.slice(n,t.pos),e+=t.readEscapedChar(!0),n=t.pos;else if(X(i)){switch(e+=t.input.slice(n,t.pos),++t.pos,i){case 13:10===t.input.charCodeAt(t.pos)&&++t.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(i)}t.options.locations&&(++t.curLine,t.lineStart=t.pos),n=t.pos}else++t.pos}},Gt.readInvalidTemplateToken=function(){for(var t=this;this.pos<this.input.length;this.pos++)switch(t.input[t.pos]){case"\\":++t.pos;break;case"$":if("{"!==t.input[t.pos+1])break;case"`":return t.finishToken(G.invalidTemplate,t.input.slice(t.start,t.pos))}this.raise(this.start,"Unterminated template")},Gt.readEscapedChar=function(t){var e=this.input.charCodeAt(++this.pos);switch(++this.pos,e){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return Zt(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";default:if(e>=48&&e<=55){var n=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],i=parseInt(n,8);return i>255&&(n=n.slice(0,-1),i=parseInt(n,8)),this.pos+=n.length-1,e=this.input.charCodeAt(this.pos),"0"===n&&56!==e&&57!==e||!this.strict&&!t||this.invalidStringToken(this.pos-1-n.length,t?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(i)}return String.fromCharCode(e)}},Gt.readHexChar=function(t){var e=this.pos,n=this.readInt(16,t);return null===n&&this.invalidStringToken(e,"Bad character escape sequence"),n},Gt.readWord1=function(){var t=this;this.containsEsc=!1;for(var e="",n=!0,i=this.pos,a=this.options.ecmaVersion>=6;this.pos<this.input.length;){var r=t.fullCharCodeAtPos();if(z(r,a))t.pos+=r<=65535?1:2;else{if(92!==r)break;t.containsEsc=!0,e+=t.input.slice(i,t.pos);var o=t.pos;117!==t.input.charCodeAt(++t.pos)&&t.invalidStringToken(t.pos,"Expecting Unicode escape sequence \\uXXXX"),++t.pos;var s=t.readCodePoint();(n?$:z)(s,a)||t.invalidStringToken(o,"Invalid Unicode escape"),e+=Zt(s),i=t.pos}n=!1}return e+this.input.slice(i,this.pos)},Gt.readWord=function(){var t=this.readWord1(),e=G.name;return this.keywords.test(t)&&(this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+t),e=W[t]),this.finishToken(e,t)};var Xt=Object.freeze({version:"6.0.2",parse:function(t,e){return ht.parse(t,e)},parseExpressionAt:function(t,e,n){return ht.parseExpressionAt(t,e,n)},tokenizer:function(t,e){return ht.tokenizer(t,e)},Parser:ht,defaultOptions:ct,Position:rt,SourceLocation:ot,getLineInfo:st,Node:At,TokenType:H,tokTypes:G,keywordTypes:W,TokContext:Lt,tokContexts:Ot,isIdentifierChar:z,isIdentifierStart:$,Token:Yt,isNewLine:X,lineBreak:Z,lineBreakG:K,nonASCIIwhitespace:J}),Jt={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:"\xa0",iexcl:"\xa1",cent:"\xa2",pound:"\xa3",curren:"\xa4",yen:"\xa5",brvbar:"\xa6",sect:"\xa7",uml:"\xa8",copy:"\xa9",ordf:"\xaa",laquo:"\xab",not:"\xac",shy:"\xad",reg:"\xae",macr:"\xaf",deg:"\xb0",plusmn:"\xb1",sup2:"\xb2",sup3:"\xb3",acute:"\xb4",micro:"\xb5",para:"\xb6",middot:"\xb7",cedil:"\xb8",sup1:"\xb9",ordm:"\xba",raquo:"\xbb",frac14:"\xbc",frac12:"\xbd",frac34:"\xbe",iquest:"\xbf",Agrave:"\xc0",Aacute:"\xc1",Acirc:"\xc2",Atilde:"\xc3",Auml:"\xc4",Aring:"\xc5",AElig:"\xc6",Ccedil:"\xc7",Egrave:"\xc8",Eacute:"\xc9",Ecirc:"\xca",Euml:"\xcb",Igrave:"\xcc",Iacute:"\xcd",Icirc:"\xce",Iuml:"\xcf",ETH:"\xd0",Ntilde:"\xd1",Ograve:"\xd2",Oacute:"\xd3",Ocirc:"\xd4",Otilde:"\xd5",Ouml:"\xd6",times:"\xd7",Oslash:"\xd8",Ugrave:"\xd9",Uacute:"\xda",Ucirc:"\xdb",Uuml:"\xdc",Yacute:"\xdd",THORN:"\xde",szlig:"\xdf",agrave:"\xe0",aacute:"\xe1",acirc:"\xe2",atilde:"\xe3",auml:"\xe4",aring:"\xe5",aelig:"\xe6",ccedil:"\xe7",egrave:"\xe8",eacute:"\xe9",ecirc:"\xea",euml:"\xeb",igrave:"\xec",iacute:"\xed",icirc:"\xee",iuml:"\xef",eth:"\xf0",ntilde:"\xf1",ograve:"\xf2",oacute:"\xf3",ocirc:"\xf4",otilde:"\xf5",ouml:"\xf6",divide:"\xf7",oslash:"\xf8",ugrave:"\xf9",uacute:"\xfa",ucirc:"\xfb",uuml:"\xfc",yacute:"\xfd",thorn:"\xfe",yuml:"\xff",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02c6",tilde:"\u02dc",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039a",Lambda:"\u039b",Mu:"\u039c",Nu:"\u039d",Xi:"\u039e",Omicron:"\u039f",Pi:"\u03a0",Rho:"\u03a1",Sigma:"\u03a3",Tau:"\u03a4",Upsilon:"\u03a5",Phi:"\u03a6",Chi:"\u03a7",Psi:"\u03a8",Omega:"\u03a9",alpha:"\u03b1",beta:"\u03b2",gamma:"\u03b3",delta:"\u03b4",epsilon:"\u03b5",zeta:"\u03b6",eta:"\u03b7",theta:"\u03b8",iota:"\u03b9",kappa:"\u03ba",lambda:"\u03bb",mu:"\u03bc",nu:"\u03bd",xi:"\u03be",omicron:"\u03bf",pi:"\u03c0",rho:"\u03c1",sigmaf:"\u03c2",sigma:"\u03c3",tau:"\u03c4",upsilon:"\u03c5",phi:"\u03c6",chi:"\u03c7",psi:"\u03c8",omega:"\u03c9",thetasym:"\u03d1",upsih:"\u03d2",piv:"\u03d6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200c",zwj:"\u200d",lrm:"\u200e",rlm:"\u200f",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201a",ldquo:"\u201c",rdquo:"\u201d",bdquo:"\u201e",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203a",oline:"\u203e",frasl:"\u2044",euro:"\u20ac",image:"\u2111",weierp:"\u2118",real:"\u211c",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21b5",lArr:"\u21d0",uArr:"\u21d1",rArr:"\u21d2",dArr:"\u21d3",hArr:"\u21d4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220b",prod:"\u220f",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221a",prop:"\u221d",infin:"\u221e",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222a",int:"\u222b",there4:"\u2234",sim:"\u223c",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22a5",sdot:"\u22c5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230a",rfloor:"\u230b",lang:"\u2329",rang:"\u232a",loz:"\u25ca",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666"},Qt=/^[\da-fA-F]+$/,te=/^\d+$/,ee=Xt.tokTypes,ne=Xt.TokContext,ie=Xt.tokContexts,ae=Xt.TokenType,re=Xt.isNewLine,oe=Xt.isIdentifierStart,se=Xt.isIdentifierChar,ce=new ne("<tag",!1),le=new ne("</tag",!1),ue=new ne("<tag>...</tag>",!0,!0),de={jsxName:new ae("jsxName"),jsxText:new ae("jsxText",{beforeExpr:!0}),jsxTagStart:new ae("jsxTagStart"),jsxTagEnd:new ae("jsxTagEnd")};function he(t){return t?"JSXIdentifier"===t.type?t.name:"JSXNamespacedName"===t.type?t.namespace.name+":"+t.name.name:"JSXMemberExpression"===t.type?he(t.object)+"."+he(t.property):void 0:t}de.jsxTagStart.updateContext=function(){this.context.push(ue),this.context.push(ce),this.exprAllowed=!1},de.jsxTagEnd.updateContext=function(t){var e=this.context.pop();e===ce&&t===ee.slash||e===le?(this.context.pop(),this.exprAllowed=this.curContext()===ue):this.exprAllowed=!0};var fe=function(t){return void 0===t&&(t={}),function(e){return function(t,e){return function(e){function n(){e.apply(this,arguments)}return e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n,n.prototype.jsx_readToken=function(){for(var t=this,e="",n=this.pos;;){t.pos>=t.input.length&&t.raise(t.start,"Unterminated JSX contents");var i=t.input.charCodeAt(t.pos);switch(i){case 60:case 123:return t.pos===t.start?60===i&&t.exprAllowed?(++t.pos,t.finishToken(de.jsxTagStart)):t.getTokenFromCode(i):(e+=t.input.slice(n,t.pos),t.finishToken(de.jsxText,e));case 38:e+=t.input.slice(n,t.pos),e+=t.jsx_readEntity(),n=t.pos;break;default:re(i)?(e+=t.input.slice(n,t.pos),e+=t.jsx_readNewLine(!0),n=t.pos):++t.pos}}},n.prototype.jsx_readNewLine=function(t){var e,n=this.input.charCodeAt(this.pos);return++this.pos,13===n&&10===this.input.charCodeAt(this.pos)?(++this.pos,e=t?"\n":"\r\n"):e=String.fromCharCode(n),this.options.locations&&(++this.curLine,this.lineStart=this.pos),e},n.prototype.jsx_readString=function(t){for(var e=this,n="",i=++this.pos;;){e.pos>=e.input.length&&e.raise(e.start,"Unterminated string constant");var a=e.input.charCodeAt(e.pos);if(a===t)break;38===a?(n+=e.input.slice(i,e.pos),n+=e.jsx_readEntity(),i=e.pos):re(a)?(n+=e.input.slice(i,e.pos),n+=e.jsx_readNewLine(!1),i=e.pos):++e.pos}return n+=this.input.slice(i,this.pos++),this.finishToken(ee.string,n)},n.prototype.jsx_readEntity=function(){var t,e=this,n="",i=0,a=this.input[this.pos];"&"!==a&&this.raise(this.pos,"Entity must start with an ampersand");for(var r=++this.pos;this.pos<this.input.length&&i++<10;){if(";"===(a=e.input[e.pos++])){"#"===n[0]?"x"===n[1]?(n=n.substr(2),Qt.test(n)&&(t=String.fromCharCode(parseInt(n,16)))):(n=n.substr(1),te.test(n)&&(t=String.fromCharCode(parseInt(n,10)))):t=Jt[n];break}n+=a}return t||(this.pos=r,"&")},n.prototype.jsx_readWord=function(){var t,e=this,n=this.pos;do{t=e.input.charCodeAt(++e.pos)}while(se(t)||45===t);return this.finishToken(de.jsxName,this.input.slice(n,this.pos))},n.prototype.jsx_parseIdentifier=function(){var t=this.startNode();return this.type===de.jsxName?t.name=this.value:this.type.keyword?t.name=this.type.keyword:this.unexpected(),this.next(),this.finishNode(t,"JSXIdentifier")},n.prototype.jsx_parseNamespacedName=function(){var e=this.start,n=this.startLoc,i=this.jsx_parseIdentifier();if(!t.allowNamespaces||!this.eat(ee.colon))return i;var a=this.startNodeAt(e,n);return a.namespace=i,a.name=this.jsx_parseIdentifier(),this.finishNode(a,"JSXNamespacedName")},n.prototype.jsx_parseElementName=function(){var e=this;if(this.type===de.jsxTagEnd)return"";var n=this.start,i=this.startLoc,a=this.jsx_parseNamespacedName();for(this.type!==ee.dot||"JSXNamespacedName"!==a.type||t.allowNamespacedObjects||this.unexpected();this.eat(ee.dot);){var r=e.startNodeAt(n,i);r.object=a,r.property=e.jsx_parseIdentifier(),a=e.finishNode(r,"JSXMemberExpression")}return a},n.prototype.jsx_parseAttributeValue=function(){switch(this.type){case ee.braceL:var t=this.jsx_parseExpressionContainer();return"JSXEmptyExpression"===t.expression.type&&this.raise(t.start,"JSX attributes must only be assigned a non-empty expression"),t;case de.jsxTagStart:case ee.string:return this.parseExprAtom();default:this.raise(this.start,"JSX value should be either an expression or a quoted JSX text")}},n.prototype.jsx_parseEmptyExpression=function(){var t=this.startNodeAt(this.lastTokEnd,this.lastTokEndLoc);return this.finishNodeAt(t,"JSXEmptyExpression",this.start,this.startLoc)},n.prototype.jsx_parseExpressionContainer=function(){var t=this.startNode();return this.next(),t.expression=this.type===ee.braceR?this.jsx_parseEmptyExpression():this.parseExpression(),this.expect(ee.braceR),this.finishNode(t,"JSXExpressionContainer")},n.prototype.jsx_parseAttribute=function(){var t=this.startNode();return this.eat(ee.braceL)?(this.expect(ee.ellipsis),t.argument=this.parseMaybeAssign(),this.expect(ee.braceR),this.finishNode(t,"JSXSpreadAttribute")):(t.name=this.jsx_parseNamespacedName(),t.value=this.eat(ee.eq)?this.jsx_parseAttributeValue():null,this.finishNode(t,"JSXAttribute"))},n.prototype.jsx_parseOpeningElementAt=function(t,e){var n=this,i=this.startNodeAt(t,e);i.attributes=[];var a=this.jsx_parseElementName();for(a&&(i.name=a);this.type!==ee.slash&&this.type!==de.jsxTagEnd;)i.attributes.push(n.jsx_parseAttribute());return i.selfClosing=this.eat(ee.slash),this.expect(de.jsxTagEnd),this.finishNode(i,a?"JSXOpeningElement":"JSXOpeningFragment")},n.prototype.jsx_parseClosingElementAt=function(t,e){var n=this.startNodeAt(t,e),i=this.jsx_parseElementName();return i&&(n.name=i),this.expect(de.jsxTagEnd),this.finishNode(n,i?"JSXClosingElement":"JSXClosingFragment")},n.prototype.jsx_parseElementAt=function(t,e){var n=this,i=this.startNodeAt(t,e),a=[],r=this.jsx_parseOpeningElementAt(t,e),o=null;if(!r.selfClosing){t:for(;;)switch(n.type){case de.jsxTagStart:if(t=n.start,e=n.startLoc,n.next(),n.eat(ee.slash)){o=n.jsx_parseClosingElementAt(t,e);break t}a.push(n.jsx_parseElementAt(t,e));break;case de.jsxText:a.push(n.parseExprAtom());break;case ee.braceL:a.push(n.jsx_parseExpressionContainer());break;default:n.unexpected()}he(o.name)!==he(r.name)&&this.raise(o.start,"Expected corresponding JSX closing tag for <"+he(r.name)+">")}var s=r.name?"Element":"Fragment";return i["opening"+s]=r,i["closing"+s]=o,i.children=a,this.type===ee.relational&&"<"===this.value&&this.raise(this.start,"Adjacent JSX elements must be wrapped in an enclosing tag"),this.finishNode(i,"JSX"+s)},n.prototype.jsx_parseText=function(t){var e=this.parseLiteral(t);return e.type="JSXText",e},n.prototype.jsx_parseElement=function(){var t=this.start,e=this.startLoc;return this.next(),this.jsx_parseElementAt(t,e)},n.prototype.parseExprAtom=function(t){return this.type===de.jsxText?this.jsx_parseText(this.value):this.type===de.jsxTagStart?this.jsx_parseElement():e.prototype.parseExprAtom.call(this,t)},n.prototype.readToken=function(t){var n=this.curContext();if(n===ue)return this.jsx_readToken();if(n===ce||n===le){if(oe(t))return this.jsx_readWord();if(62==t)return++this.pos,this.finishToken(de.jsxTagEnd);if((34===t||39===t)&&n==ce)return this.jsx_readString(t)}return 60===t&&this.exprAllowed&&33!==this.input.charCodeAt(this.pos+1)?(++this.pos,this.finishToken(de.jsxTagStart)):e.prototype.readToken.call(this,t)},n.prototype.updateContext=function(t){if(this.type==ee.braceL){var n=this.curContext();n==ce?this.context.push(ie.b_expr):n==ue?this.context.push(ie.b_tmpl):e.prototype.updateContext.call(this,t),this.exprAllowed=!0}else{if(this.type!==ee.slash||t!==de.jsxTagStart)return e.prototype.updateContext.call(this,t);this.context.length-=2,this.context.push(le),this.exprAllowed=!1}},n}(e)}({allowNamespaces:!1!==t.allowNamespaces,allowNamespacedObjects:!!t.allowNamespacedObjects},e)}};fe.tokTypes=de;var ge,pe=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.DynamicImportKey=void 0;var n=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),i=function t(e,n,i){null===e&&(e=Function.prototype);var a=Object.getOwnPropertyDescriptor(e,n);if(void 0===a){var r=Object.getPrototypeOf(e);return null===r?void 0:t(r,n,i)}if("value"in a)return a.value;var o=a.get;return void 0!==o?o.call(i):void 0};function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}e.default=function(t){return function(t){function e(){return a(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),n(e,[{key:"parseStatement",value:function(t,n,a){return this.type===Xt.tokTypes._import&&c.call(this)?this.parseExpressionStatement(this.startNode(),this.parseExpression()):i(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"parseStatement",this).call(this,t,n,a)}},{key:"parseExprAtom",value:function(t){return this.type===Xt.tokTypes._import?s.call(this):i(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"parseExprAtom",this).call(this,t)}}]),e}(t)};var o=e.DynamicImportKey="Import";function s(){var t=this.startNode();return this.next(),this.type!==Xt.tokTypes.parenL&&this.unexpected(),this.finishNode(t,o)}function c(){return/^(\s|\/\/.*|\/\*[^]*?\*\/)*\(/.test(this.input.slice(this.pos))}Xt.tokTypes._import.startsExpr=!0})),be=(ge=pe)&&ge.__esModule&&Object.prototype.hasOwnProperty.call(ge,"default")?ge.default:ge;pe.DynamicImportKey;function me(t){var e={};return Object.keys(t).forEach((function(n){"parent"!==n&&"program"!==n&&"keys"!==n&&"__wrapped"!==n&&(Array.isArray(t[n])?e[n]=t[n].map(me):t[n]&&t[n].toJSON?e[n]=t[n].toJSON():e[n]=t[n])})),e}var ye=function(){};function ve(t){var e=[];return we[t.type](e,t),e}ye.prototype.ancestor=function(t){for(var e=this;t--;)if(!(e=e.parent))return null;return e},ye.prototype.contains=function(t){for(;t;){if(t===this)return!0;t=t.parent}return!1},ye.prototype.findLexicalBoundary=function(){return this.parent.findLexicalBoundary()},ye.prototype.findNearest=function(t){return"string"==typeof t&&(t=new RegExp("^"+t+"$")),t.test(this.type)?this:this.parent.findNearest(t)},ye.prototype.unparenthesizedParent=function(){for(var t=this.parent;t&&"ParenthesizedExpression"===t.type;)t=t.parent;return t},ye.prototype.unparenthesize=function(){for(var t=this;"ParenthesizedExpression"===t.type;)t=t.expression;return t},ye.prototype.findScope=function(t){return this.parent.findScope(t)},ye.prototype.getIndentation=function(){return this.parent.getIndentation()},ye.prototype.initialise=function(t){for(var e=0,n=this.keys;e<n.length;e+=1){var i=this[n[e]];Array.isArray(i)?i.forEach((function(e){return e&&e.initialise(t)})):i&&"object"==typeof i&&i.initialise(t)}},ye.prototype.toJSON=function(){return me(this)},ye.prototype.toString=function(){return this.program.magicString.original.slice(this.start,this.end)},ye.prototype.transpile=function(t,e){for(var n=0,i=this.keys;n<i.length;n+=1){var a=this[i[n]];Array.isArray(a)?a.forEach((function(n){return n&&n.transpile(t,e)})):a&&"object"==typeof a&&a.transpile(t,e)}};var we={Identifier:function(t,e){t.push(e)},ObjectPattern:function(t,e){for(var n=0,i=e.properties;n<i.length;n+=1){var a=i[n];we[a.type](t,a)}},Property:function(t,e){we[e.value.type](t,e.value)},ArrayPattern:function(t,e){for(var n=0,i=e.elements;n<i.length;n+=1){var a=i[n];a&&we[a.type](t,a)}},RestElement:function(t,e){we[e.argument.type](t,e.argument)},AssignmentPattern:function(t,e){we[e.left.type](t,e.left)}},xe=Object.create(null);function Re(t){t=t||{},this.parent=t.parent,this.isBlockScope=!!t.block,this.createDeclarationCallback=t.declare;for(var e=this;e.isBlockScope;)e=e.parent;this.functionScope=e,this.identifiers=[],this.declarations=Object.create(null),this.references=Object.create(null),this.blockScopedDeclarations=this.isBlockScope?null:Object.create(null),this.aliases=Object.create(null)}function _e(t,e){var n,i=t.split("\n"),a=i.length,r=0;for(n=0;n<a;n+=1){var o=r+i[n].length+1;if(o>e)return{line:n+1,column:e-r,char:n};r=o}throw new Error("Could not determine location of character")}function ke(t,e){for(var n="";e--;)n+=t;return n}function Ee(t,e,n){void 0===n&&(n=1);var i=Math.max(e.line-5,0),a=e.line,r=String(a).length,o=t.split("\n").slice(i,a),s=o[o.length-1].slice(0,e.column).replace(/\t/g," ").length,c=o.map((function(t,e){return n=r,(a=String(e+i+1))+ke(" ",n-a.length)+" : "+t.replace(/\t/g," ");var n,a})).join("\n");return c+="\n"+ke(" ",r+3+s)+ke("^",n)}"do if in for let new try var case else enum eval null this true void with await break catch class const false super throw while yield delete export import public return static switch typeof default extends finally package private continue debugger function arguments interface protected implements instanceof".split(" ").forEach((function(t){return xe[t]=!0})),Re.prototype={addDeclaration:function(t,e){for(var n=this,i=0,a=ve(t);i<a.length;i+=1){var r=a[i],o=r.name,s={name:o,node:r,kind:e,instances:[]};n.declarations[o]=s,n.isBlockScope&&(n.functionScope.blockScopedDeclarations[o]||(n.functionScope.blockScopedDeclarations[o]=[]),n.functionScope.blockScopedDeclarations[o].push(s))}},addReference:function(t){this.consolidated?this.consolidateReference(t):this.identifiers.push(t)},consolidate:function(){for(var t=0;t<this.identifiers.length;t+=1){var e=this.identifiers[t];this.consolidateReference(e)}this.consolidated=!0},consolidateReference:function(t){var e=this.declarations[t.name];e?e.instances.push(t):(this.references[t.name]=!0,this.parent&&this.parent.addReference(t))},contains:function(t){return this.declarations[t]||!!this.parent&&this.parent.contains(t)},createIdentifier:function(t){"number"==typeof t&&(t=t.toString());for(var e=t=t.replace(/\s/g,"").replace(/\[([^\]]+)\]/g,"_$1").replace(/[^a-zA-Z0-9_$]/g,"_").replace(/_{2,}/,"_"),n=1;this.declarations[e]||this.references[e]||this.aliases[e]||e in xe;)e=t+"$"+n++;return this.aliases[e]=!0,e},createDeclaration:function(t){var e=this.createIdentifier(t);return this.createDeclarationCallback(e),e},findDeclaration:function(t){return this.declarations[t]||this.parent&&this.parent.findDeclaration(t)},resolveName:function(t){var e=this.findDeclaration(t);return e?e.name:t}};var Ce=function(t){function e(e,n){if(t.call(this,e),this.name="CompileError",n){var i=n.program.magicString.original,a=_e(i,n.start);this.message=e+" ("+a.line+":"+a.column+")",this.stack=(new t).stack.replace(new RegExp(".+new "+this.name+".+\\n","m"),""),this.loc=a,this.snippet=Ee(i,a,n.end-n.start)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.toString=function(){return this.name+": "+this.message+"\n"+this.snippet},e}(Error);function Se(t,e){for(var n=0;n<t.length;n+=1)if(e(t[n],n))return n;return-1}var Te={Identifier:De,AssignmentPattern:function(t,e,n,i,a,r,o){var s="Identifier"===i.left.type,c=s?i.left.name:a;r||o.push((function(e,n,a){t.prependRight(i.left.end,n+"if ( "+c+" === void 0 ) "+c),t.move(i.left.end,i.right.end,e),t.appendLeft(i.right.end,a)}));s||Ae(t,e,n,i.left,a,r,o)},ArrayPattern:function(t,e,n,i,a,r,o){var s=i.start;i.elements.forEach((function(i,c){i&&("RestElement"===i.type?Le(t,e,n,s,i.argument,a+".slice("+c+")",r,o):Le(t,e,n,s,i,a+"["+c+"]",r,o),s=i.end)})),t.remove(s,i.end)},ObjectPattern:Ie};function Ae(t,e,n,i,a,r,o){Te[i.type](t,e,n,i,a,r,o)}function De(t,e,n,i,a,r,o){o.push((function(e,o,s){t.overwrite(i.start,i.end,(r?o:o+"var ")+n(i)+" = "+a+s),t.move(i.start,i.end,e)}))}function Ie(t,e,n,i,a,r,o){var s=this,c=i.start,l=[];i.properties.forEach((function(i){var u,d;if("Property"===i.type){var h=i.computed||"Identifier"!==i.key.type,f=h?t.slice(i.key.start,i.key.end):i.key.name;u=h?a+"["+f+"]":a+"."+f,d=i.value,l.push(h?f:'"'+f+'"')}else{if("RestElement"!==i.type)throw new Ce(s,"Unexpected node of type "+i.type+" in object pattern");d=i.argument,u=e("rest"),o.push((function(e,n,o){var s=i.program.getObjectWithoutPropertiesHelper(t);t.overwrite(i.start,c=i.argument.start,(r?n:n+"var ")+u+" = "+s+"( "+a+", ["+l.join(", ")+"] )"+o),t.move(i.start,c,e)}))}Le(t,e,n,c,d,u,r,o),c=i.end})),t.remove(c,i.end)}function Le(t,e,n,i,a,r,o,s){switch(a.type){case"Identifier":t.remove(i,a.start),De(t,0,n,a,r,o,s);break;case"MemberExpression":t.remove(i,a.start),function(t,e,n,i,a,r,o){o.push((function(e,n,o){t.prependRight(i.start,r?n:n+"var "),t.appendLeft(i.end," = "+a+o),t.move(i.start,i.end,e)}))}(t,0,0,a,r,!0,s);break;case"AssignmentPattern":var c,l="Identifier"===a.left.type;c=l?n(a.left):e(r),s.push((function(e,n,i){o?(t.prependRight(a.right.start,c+" = "+r+", "+c+" = "+c+" === void 0 ? "),t.appendLeft(a.right.end," : "+c+i)):(t.prependRight(a.right.start,n+"var "+c+" = "+r+"; if ( "+c+" === void 0 ) "+c+" = "),t.appendLeft(a.right.end,i)),t.move(a.right.start,a.right.end,e)})),l?t.remove(i,a.right.start):(t.remove(i,a.left.start),t.remove(a.left.end,a.right.start),Le(t,e,n,i,a.left,c,o,s));break;case"ObjectPattern":t.remove(i,i=a.start);var u=r;a.properties.length>1&&(u=e(r),s.push((function(e,n,s){t.prependRight(a.start,(o?"":n+"var ")+u+" = "),t.overwrite(a.start,i=a.start+1,r),t.appendLeft(i,s),t.overwrite(a.start,i=a.start+1,(o?"":n+"var ")+u+" = "+r+s),t.move(a.start,i,e)}))),Ie(t,e,n,a,u,o,s);break;case"ArrayPattern":if(t.remove(i,i=a.start),a.elements.filter(Boolean).length>1){var d=e(r);s.push((function(e,n,s){t.prependRight(a.start,(o?"":n+"var ")+d+" = "),t.overwrite(a.start,i=a.start+1,r,{contentOnly:!0}),t.appendLeft(i,s),t.move(a.start,i,e)})),a.elements.forEach((function(a,r){a&&("RestElement"===a.type?Le(t,e,n,i,a.argument,d+".slice("+r+")",o,s):Le(t,e,n,i,a,d+"["+r+"]",o,s),i=a.end)}))}else{var h=Se(a.elements,Boolean),f=a.elements[h];"RestElement"===f.type?Le(t,e,n,i,f.argument,r+".slice("+h+")",o,s):Le(t,e,n,i,f,r+"["+h+"]",o,s),i=f.end}t.remove(i,a.end);break;default:throw new Error("Unexpected node type in destructuring ("+a.type+")")}}var Oe=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createScope=function(){var t=this;this.parentIsFunction=/Function/.test(this.parent.type),this.isFunctionBlock=this.parentIsFunction||"Root"===this.parent.type,this.scope=new Re({block:!this.isFunctionBlock,parent:this.parent.findScope(!1),declare:function(e){return t.createdDeclarations.push(e)}}),this.parentIsFunction&&this.parent.params.forEach((function(e){t.scope.addDeclaration(e,"param")}))},e.prototype.initialise=function(t){this.thisAlias=null,this.argumentsAlias=null,this.defaultParameters=[],this.createdDeclarations=[],this.scope||this.createScope(),this.body.forEach((function(e){return e.initialise(t)})),this.scope.consolidate()},e.prototype.findLexicalBoundary=function(){return"Program"===this.type||/^Function/.test(this.parent.type)?this:this.parent.findLexicalBoundary()},e.prototype.findScope=function(t){return t&&!this.isFunctionBlock?this.parent.findScope(t):this.scope},e.prototype.getArgumentsAlias=function(){return this.argumentsAlias||(this.argumentsAlias=this.scope.createIdentifier("arguments")),this.argumentsAlias},e.prototype.getArgumentsArrayAlias=function(){return this.argumentsArrayAlias||(this.argumentsArrayAlias=this.scope.createIdentifier("argsArray")),this.argumentsArrayAlias},e.prototype.getThisAlias=function(){return this.thisAlias||(this.thisAlias=this.scope.createIdentifier("this")),this.thisAlias},e.prototype.getIndentation=function(){var t=this;if(void 0===this.indentation){for(var e=this.program.magicString.original,n=this.synthetic||!this.body.length,i=n?this.start:this.body[0].start;i&&"\n"!==e[i];)i-=1;for(this.indentation="";;){var a=e[i+=1];if(" "!==a&&"\t"!==a)break;t.indentation+=a}for(var r=this.program.magicString.getIndentString(),o=this.parent;o;)"constructor"!==o.kind||o.parent.parent.superClass||(t.indentation=t.indentation.replace(r,"")),o=o.parent;n&&(this.indentation+=r)}return this.indentation},e.prototype.transpile=function(e,n){var i,a,r=this,o=this.getIndentation(),s=[];if(this.argumentsAlias&&s.push((function(t,n,i){var a=n+"var "+r.argumentsAlias+" = arguments"+i;e.appendLeft(t,a)})),this.thisAlias&&s.push((function(t,n,i){var a=n+"var "+r.thisAlias+" = this"+i;e.appendLeft(t,a)})),this.argumentsArrayAlias&&s.push((function(t,n,i){var a=r.scope.createIdentifier("i"),s=n+"var "+a+" = arguments.length, "+r.argumentsArrayAlias+" = Array("+a+");\n"+o+"while ( "+a+"-- ) "+r.argumentsArrayAlias+"["+a+"] = arguments["+a+"]"+i;e.appendLeft(t,s)})),/Function/.test(this.parent.type)?this.transpileParameters(this.parent.params,e,n,o,s):"CatchClause"===this.parent.type&&this.transpileParameters([this.parent.param],e,n,o,s),n.letConst&&this.isFunctionBlock&&this.transpileBlockScopedIdentifiers(e),t.prototype.transpile.call(this,e,n),this.createdDeclarations.length&&s.push((function(t,n,i){var a=n+"var "+r.createdDeclarations.join(", ")+i;e.appendLeft(t,a)})),this.synthetic)if("ArrowFunctionExpression"===this.parent.type){var c=this.body[0];s.length?(e.appendLeft(this.start,"{").prependRight(this.end,this.parent.getIndentation()+"}"),e.prependRight(c.start,"\n"+o+"return "),e.appendLeft(c.end,";\n")):n.arrow&&(e.prependRight(c.start,"{ return "),e.appendLeft(c.end,"; }"))}else s.length&&e.prependRight(this.start,"{").appendLeft(this.end,"}");a=this.body[0],i=a&&"ExpressionStatement"===a.type&&"Literal"===a.expression.type&&"use strict"===a.expression.value?this.body[0].end:this.synthetic||"Root"===this.parent.type?this.start:this.start+1;var l="\n"+o,u=";";s.forEach((function(t,e){e===s.length-1&&(u=";\n"),t(i,l,u)}))},e.prototype.transpileParameters=function(t,e,n,i,a){var r=this;t.forEach((function(o){if("AssignmentPattern"===o.type&&"Identifier"===o.left.type)n.defaultParameter&&a.push((function(t,n,i){var a=n+"if ( "+o.left.name+" === void 0 ) "+o.left.name;e.prependRight(o.left.end,a).move(o.left.end,o.right.end,t).appendLeft(o.right.end,i)}));else if("RestElement"===o.type)n.spreadRest&&a.push((function(n,a,s){var c=t[t.length-2];if(c)e.remove(c?c.end:o.start,o.end);else{for(var l=o.start,u=o.end;/\s/.test(e.original[l-1]);)l-=1;for(;/\s/.test(e.original[u]);)u+=1;e.remove(l,u)}var d=o.argument.name,h=r.scope.createIdentifier("len"),f=t.length-1;f?e.prependRight(n,a+"var "+d+" = [], "+h+" = arguments.length - "+f+";\n"+i+"while ( "+h+"-- > 0 ) "+d+"[ "+h+" ] = arguments[ "+h+" + "+f+" ]"+s):e.prependRight(n,a+"var "+d+" = [], "+h+" = arguments.length;\n"+i+"while ( "+h+"-- ) "+d+"[ "+h+" ] = arguments[ "+h+" ]"+s)}));else if("Identifier"!==o.type&&n.parameterDestructuring){var s=r.scope.createIdentifier("ref");Ae(e,(function(t){return r.scope.createIdentifier(t)}),(function(t){var e=t.name;return r.scope.resolveName(e)}),o,s,!1,a),e.prependRight(o.start,s)}}))},e.prototype.transpileBlockScopedIdentifiers=function(t){var e=this;Object.keys(this.scope.blockScopedDeclarations).forEach((function(n){for(var i=0,a=e.scope.blockScopedDeclarations[n];i<a.length;i+=1){var r=a[i],o=!1;if("for.let"===r.kind){var s=r.node.findNearest("ForStatement");if(s.shouldRewriteAsFunction){var c=e.scope.createIdentifier(n),l=s.reassigned[n]?e.scope.createIdentifier(n):n;r.name=c,t.overwrite(r.node.start,r.node.end,c,{storeName:!0}),s.aliases[n]={outer:c,inner:l};for(var u=0,d=r.instances;u<d.length;u+=1){var h=d[u],f=s.body.contains(h)?l:c;n!==f&&t.overwrite(h.start,h.end,f,{storeName:!0})}o=!0}}if(!o){var g=e.scope.createIdentifier(n);if(n!==g){r.name=g,t.overwrite(r.node.start,r.node.end,g,{storeName:!0});for(var p=0,b=r.instances;p<b.length;p+=1){var m=b[p];m.rewritten=!0,t.overwrite(m.start,m.end,g,{storeName:!0})}}}}}))},e}(ye);function Me(t){return"Identifier"===t.type&&"arguments"===t.name}function Ne(t,e,n,i,a){for(var r=e.length,o=-1;r--;){var s=e[r];s&&"SpreadElement"===s.type&&(Me(s.argument)&&t.overwrite(s.argument.start,s.argument.end,i),o=r)}if(-1===o)return!1;if(a){for(r=0;r<e.length;r+=1){var c=e[r];"SpreadElement"===c.type?t.remove(c.start,c.argument.start):(t.prependRight(c.start,"["),t.prependRight(c.end,"]"))}return!0}var l=e[o],u=e[o-1];for(u?t.overwrite(u.end,l.start," ].concat( "):(t.remove(n,l.start),t.overwrite(l.end,e[1].start,".concat( ")),r=o;r<e.length;r+=1)(l=e[r])&&("SpreadElement"===l.type?t.remove(l.start,l.argument.start):(t.appendLeft(l.start,"["),t.appendLeft(l.end,"]")));return!0}var Be=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(e.spreadRest&&this.elements.length)for(var n=this.findLexicalBoundary(),i=this.elements.length;i--;){var a=this.elements[i];a&&"SpreadElement"===a.type&&Me(a.argument)&&(this.argumentsArrayAlias=n.getArgumentsArrayAlias())}t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){if(t.prototype.transpile.call(this,e,n),n.spreadRest){if(this.elements.length){var i=this.elements[this.elements.length-1];i&&/\s*,/.test(e.original.slice(i.end,this.end))&&e.overwrite(i.end,this.end-1," ")}if(1===this.elements.length){var a=this.elements[0];a&&"SpreadElement"===a.type&&(Me(a.argument)?e.overwrite(this.start,this.end,"[].concat( "+this.argumentsArrayAlias+" )"):(e.overwrite(this.start,a.argument.start,"[].concat( "),e.overwrite(a.end,this.end," )")))}else{Ne(e,this.elements,this.start,this.argumentsArrayAlias)&&e.overwrite(this.end-1,this.end,")")}}},e}(ye);function Pe(t,e){for(;")"!==t.original[e];){if(","===t.original[e])return void t.remove(e,e+1);"/"===t.original[e]&&(e=t.original.indexOf("/"===t.original[e+1]?"\n":"*/",e)+1),e+=1}}var Fe=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){this.body.createScope(),t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){var i=1===this.params.length&&this.start===this.params[0].start;if(n.arrow||this.needsArguments(n)){for(var a=this.body.start;"="!==e.original[a];)a-=1;e.remove(a,this.body.start),t.prototype.transpile.call(this,e,n),i&&(e.prependRight(this.params[0].start,"("),e.appendLeft(this.params[0].end,")")),this.parent&&"ExpressionStatement"===this.parent.type?e.prependRight(this.start,"!function"):e.prependRight(this.start,"function ")}else t.prototype.transpile.call(this,e,n);n.trailingFunctionCommas&&this.params.length&&!i&&Pe(e,this.params[this.params.length-1].end)},e.prototype.needsArguments=function(t){return t.spreadRest&&this.params.filter((function(t){return"RestElement"===t.type})).length>0},e}(ye);function je(t,e){var n=e.findDeclaration(t.name);if(n&&"const"===n.kind)throw new Ce(t.name+" is read-only",t)}var $e=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if("Identifier"===this.left.type){var n=this.findScope(!1).findDeclaration(this.left.name),i=n&&n.node.ancestor(3);i&&"ForStatement"===i.type&&i.body.contains(this)&&(i.reassigned[this.left.name]=!0)}t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){"Identifier"===this.left.type&&je(this.left,this.findScope(!1)),"**="===this.operator&&n.exponentiation?this.transpileExponentiation(e,n):/Pattern/.test(this.left.type)&&n.destructuring&&this.transpileDestructuring(e),t.prototype.transpile.call(this,e,n)},e.prototype.transpileDestructuring=function(t){var e=this,n=this.findScope(!0),i=this.findScope(!1),a=n.createDeclaration("assign");t.appendRight(this.left.end,"("+a),t.appendLeft(this.right.end,", ");var r=[];Ae(t,(function(t){return n.createDeclaration(t)}),(function(t){var e=i.resolveName(t.name);return je(t,i),e}),this.left,a,!0,r);var o=", ";r.forEach((function(t,n){n===r.length-1&&(o=""),t(e.end,"",o)})),"ExpressionStatement"===this.unparenthesizedParent().type?t.prependRight(this.end,")"):t.appendRight(this.end,", "+a+")")},e.prototype.transpileExponentiation=function(t){for(var e,n=this.findScope(!1),i=this.left.end;"*"!==t.original[i];)i+=1;t.remove(i,i+2);var a=this.left.unparenthesize();if("Identifier"===a.type)e=n.resolveName(a.name);else if("MemberExpression"===a.type){var r,o,s=!1,c=!1,l=this.findNearest(/(?:Statement|Declaration)$/),u=l.getIndentation();"Identifier"===a.property.type?o=a.computed?n.resolveName(a.property.name):a.property.name:(o=n.createDeclaration("property"),c=!0),"Identifier"===a.object.type?r=n.resolveName(a.object.name):(r=n.createDeclaration("object"),s=!0),a.start===l.start?s&&c?(t.prependRight(l.start,r+" = "),t.overwrite(a.object.end,a.property.start,";\n"+u+o+" = "),t.overwrite(a.property.end,a.end,";\n"+u+r+"["+o+"]")):s?(t.prependRight(l.start,r+" = "),t.appendLeft(a.object.end,";\n"+u),t.appendLeft(a.object.end,r)):c&&(t.prependRight(a.property.start,o+" = "),t.appendLeft(a.property.end,";\n"+u),t.move(a.property.start,a.property.end,this.start),t.appendLeft(a.object.end,"["+o+"]"),t.remove(a.object.end,a.property.start),t.remove(a.property.end,a.end)):(s&&c?(t.prependRight(a.start,"( "+r+" = "),t.overwrite(a.object.end,a.property.start,", "+o+" = "),t.overwrite(a.property.end,a.end,", "+r+"["+o+"]")):s?(t.prependRight(a.start,"( "+r+" = "),t.appendLeft(a.object.end,", "+r)):c&&(t.prependRight(a.property.start,"( "+o+" = "),t.appendLeft(a.property.end,", "),t.move(a.property.start,a.property.end,a.start),t.overwrite(a.object.end,a.property.start,"["+o+"]"),t.remove(a.property.end,a.end)),c&&t.appendLeft(this.end," )")),e=r+(a.computed||c?"["+o+"]":"."+o)}t.prependRight(this.right.start,"Math.pow( "+e+", "),t.appendLeft(this.right.end," )")},e}(ye),ze=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){"**"===this.operator&&n.exponentiation&&(e.prependRight(this.start,"Math.pow( "),e.overwrite(this.left.end,this.right.start,", "),e.appendLeft(this.end," )")),t.prototype.transpile.call(this,e,n)},e}(ye),He=/(?:For(?:In|Of)?|While)Statement/,Ue=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(){var t=this.findNearest(He),e=this.findNearest("SwitchCase");t&&(!e||t.depth>e.depth)&&(t.canBreak=!0,this.loop=t)},e.prototype.transpile=function(t){if(this.loop&&this.loop.shouldRewriteAsFunction){if(this.label)throw new Ce("Labels are not currently supported in a loop with locally-scoped variables",this);t.overwrite(this.start,this.start+5,"return 'break'")}},e}(ye),Ve=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(e.spreadRest&&this.arguments.length>1)for(var n=this.findLexicalBoundary(),i=this.arguments.length;i--;){var a=this.arguments[i];"SpreadElement"===a.type&&Me(a.argument)&&(this.argumentsArrayAlias=n.getArgumentsArrayAlias())}t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){if(n.spreadRest&&this.arguments.length){var i,a=!1,r=this.arguments[0];if(1===this.arguments.length?"SpreadElement"===r.type&&(e.remove(r.start,r.argument.start),a=!0):a=Ne(e,this.arguments,r.start,this.argumentsArrayAlias),a){var o=null;if("Super"===this.callee.type?o=this.callee:"MemberExpression"===this.callee.type&&"Super"===this.callee.object.type&&(o=this.callee.object),o||"MemberExpression"!==this.callee.type)i="void 0";else if("Identifier"===this.callee.object.type)i=this.callee.object.name;else{i=this.findScope(!0).createDeclaration("ref");var s=this.callee.object;e.prependRight(s.start,"("+i+" = "),e.appendLeft(s.end,")")}e.appendLeft(this.callee.end,".apply"),o?(o.noCall=!0,this.arguments.length>1&&("SpreadElement"!==r.type&&e.prependRight(r.start,"[ "),e.appendLeft(this.arguments[this.arguments.length-1].end," )"))):1===this.arguments.length?e.prependRight(r.start,i+", "):("SpreadElement"===r.type?e.appendLeft(r.start,i+", "):e.appendLeft(r.start,i+", [ "),e.appendLeft(this.arguments[this.arguments.length-1].end," )"))}}n.trailingFunctionCommas&&this.arguments.length&&Pe(e,this.arguments[this.arguments.length-1].end),t.prototype.transpile.call(this,e,n)},e}(ye),qe=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n,i,a){var r=this;if(n.classes){var o=this.parent.name,s=e.getIndentString(),c=this.getIndentation()+(i?s:""),l=c+s,u=Se(this.body,(function(t){return"constructor"===t.kind})),d=this.body[u],h="",f="";if(this.body.length?(e.remove(this.start,this.body[0].start),e.remove(this.body[this.body.length-1].end,this.end)):e.remove(this.start,this.end),d){d.value.body.isConstructorBody=!0;var g=this.body[u-1],p=this.body[u+1];u>0&&(e.remove(g.end,d.start),e.move(d.start,p?p.start:this.end-1,this.body[0].start)),i||e.appendLeft(d.end,";")}var b=!1!==this.program.options.namedFunctionExpressions,m=b||this.parent.superClass||"ClassDeclaration"!==this.parent.type;if(this.parent.superClass){var y="if ( "+a+" ) "+o+".__proto__ = "+a+";\n"+c+o+".prototype = Object.create( "+a+" && "+a+".prototype );\n"+c+o+".prototype.constructor = "+o+";";if(d)h+="\n\n"+c+y;else h+=(y="function "+o+" () {"+(a?"\n"+l+a+".apply(this, arguments);\n"+c+"}":"}")+(i?"":";")+(this.body.length?"\n\n"+c:"")+y)+"\n\n"+c}else if(!d){var v="function "+(m?o+" ":"")+"() {}";"ClassDeclaration"===this.parent.type&&(v+=";"),this.body.length&&(v+="\n\n"+c),h+=v}var w,x,R=this.findScope(!1),_=[],k=[];if(this.body.forEach((function(t,i){if(("get"===t.kind||"set"===t.kind)&&n.getterSetter)throw new Ce("getters and setters are not supported. Use `transforms: { getterSetter: false }` to skip transformation and disable this error",t);if("constructor"!==t.kind){if(t.static){var a=" "==e.original[t.start+6]?7:6;e.remove(t.start,t.start+a)}var s,l="method"!==t.kind,d=t.key.name;(xe[d]||t.value.body.scope.references[d])&&(d=R.createIdentifier(d));var h=!1;if(t.computed||"Literal"!==t.key.type||(h=!0,t.computed=!0),l){if(t.computed)throw new Error("Computed accessor properties are not currently supported");e.remove(t.start,t.key.start),t.static?(~k.indexOf(t.key.name)||k.push(t.key.name),x||(x=R.createIdentifier("staticAccessors")),s=""+x):(~_.indexOf(t.key.name)||_.push(t.key.name),w||(w=R.createIdentifier("prototypeAccessors")),s=""+w)}else s=t.static?""+o:o+".prototype";t.computed||(s+="."),(u>0&&i===u+1||0===i&&u===r.body.length-1)&&(s="\n\n"+c+s);var f=t.key.end;if(t.computed)if(h)e.prependRight(t.key.start,"["),e.appendLeft(t.key.end,"]");else{for(;"]"!==e.original[f];)f+=1;f+=1}var g=t.computed||l||!b?"":d+" ",p=(l?"."+t.kind:"")+" = function"+(t.value.generator?"* ":" ")+g;e.remove(f,t.value.start),e.prependRight(t.value.start,p),e.appendLeft(t.end,";"),t.value.generator&&e.remove(t.start,t.key.start),e.prependRight(t.start,s)}else{var y=m?" "+o:"";e.overwrite(t.key.start,t.key.end,"function"+y)}})),_.length||k.length){var E=[],C=[];_.length&&(E.push("var "+w+" = { "+_.map((function(t){return t+": { configurable: true }"})).join(",")+" };"),C.push("Object.defineProperties( "+o+".prototype, "+w+" );")),k.length&&(E.push("var "+x+" = { "+k.map((function(t){return t+": { configurable: true }"})).join(",")+" };"),C.push("Object.defineProperties( "+o+", "+x+" );")),d&&(h+="\n\n"+c),h+=E.join("\n"+c),d||(h+="\n\n"+c),f+="\n\n"+c+C.join("\n"+c)}d?e.appendLeft(d.end,h):e.prependRight(this.start,h),e.appendLeft(this.end,f)}t.prototype.transpile.call(this,e,n)},e}(ye);var We=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){this.id?(this.name=this.id.name,this.findScope(!0).addDeclaration(this.id,"class")):this.name=this.findScope(!0).createIdentifier("defaultExport"),t.prototype.initialise.call(this,e)},e.prototype.transpile=function(t,e){if(e.classes){this.superClass||function(t,e){var n=t.start,i=t.end,a=e.getIndentString(),r=a.length,o=n-r;t.program.indentExclusions[o]||e.original.slice(o,n)!==a||e.remove(o,n);for(var s,c=new RegExp(a+"\\S","g"),l=e.original.slice(n,i);s=c.exec(l);){var u=n+s.index;t.program.indentExclusions[u]||e.remove(u,u+r)}}(this.body,t);var n=this.superClass&&(this.superClass.name||"superclass"),i=this.getIndentation(),a=i+t.getIndentString(),r="ExportDefaultDeclaration"===this.parent.type;r&&t.remove(this.parent.start,this.start);var o=this.start;this.id?(t.overwrite(o,this.id.start,"var "),o=this.id.end):t.prependLeft(o,"var "+this.name),this.superClass?this.superClass.end===this.body.start?(t.remove(o,this.superClass.start),t.appendLeft(o," = /*@__PURE__*/(function ("+n+") {\n"+a)):(t.overwrite(o,this.superClass.start," = "),t.overwrite(this.superClass.end,this.body.start,"/*@__PURE__*/(function ("+n+") {\n"+a)):o===this.body.start?t.appendLeft(o," = "):t.overwrite(o,this.body.start," = "),this.body.transpile(t,e,!!this.superClass,n);var s=r?"\n\n"+i+"export default "+this.name+";":"";this.superClass?(t.appendLeft(this.end,"\n\n"+a+"return "+this.name+";\n"+i+"}("),t.move(this.superClass.start,this.superClass.end,this.end),t.prependRight(this.end,"));"+s)):s&&t.prependRight(this.end,s)}else this.body.transpile(t,e,!1,null)},e}(ye),Ye=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){this.name=(this.id?this.id.name:"VariableDeclarator"===this.parent.type?this.parent.id.name:"AssignmentExpression"!==this.parent.type?null:"Identifier"===this.parent.left.type?this.parent.left.name:"MemberExpression"===this.parent.left.type?this.parent.left.property.name:null)||this.findScope(!0).createIdentifier("anonymous"),t.prototype.initialise.call(this,e)},e.prototype.transpile=function(t,e){if(e.classes){var n=this.superClass&&(this.superClass.name||"superclass"),i=this.getIndentation(),a=i+t.getIndentString();this.superClass?(t.remove(this.start,this.superClass.start),t.remove(this.superClass.end,this.body.start),t.appendRight(this.start,"/*@__PURE__*/(function ("+n+") {\n"+a)):t.overwrite(this.start,this.body.start,"/*@__PURE__*/(function () {\n"+a),this.body.transpile(t,e,!0,n);var r="";this.superClass&&(r=t.slice(this.superClass.start,this.superClass.end),t.remove(this.superClass.start,this.superClass.end)),t.appendLeft(this.end,"\n\n"+a+"return "+this.name+";\n"+i+"}("+r+"))")}else this.body.transpile(t,e,!1)},e}(ye),Ge=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(t){if(this.findNearest(He).shouldRewriteAsFunction){if(this.label)throw new Ce("Labels are not currently supported in a loop with locally-scoped variables",this);t.overwrite(this.start,this.start+8,"return")}},e}(ye),Ze=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(e.moduleExport)throw new Ce("export is not supported",this);t.prototype.initialise.call(this,e)},e}(ye),Ke=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(e.moduleExport)throw new Ce("export is not supported",this);t.prototype.initialise.call(this,e)},e}(ye),Xe=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.findScope=function(t){return t||!this.createdScope?this.parent.findScope(t):this.body.scope},e.prototype.initialise=function(e){var n=this;if(this.body.createScope(),this.createdScope=!0,this.reassigned=Object.create(null),this.aliases=Object.create(null),this.thisRefs=[],t.prototype.initialise.call(this,e),e.letConst)for(var i=Object.keys(this.body.scope.declarations),a=i.length;a--;){for(var r=i[a],o=n.body.scope.declarations[r],s=o.instances.length;s--;){var c=o.instances[s].findNearest(/Function/);if(c&&c.depth>n.depth){n.shouldRewriteAsFunction=!0;for(var l=0,u=n.thisRefs;l<u.length;l+=1){var d=u[l];d.alias=d.alias||d.findLexicalBoundary().getThisAlias()}break}}if(n.shouldRewriteAsFunction)break}},e.prototype.transpile=function(e,n){var i="ForOfStatement"!=this.type&&("BlockStatement"!==this.body.type||"BlockStatement"===this.body.type&&this.body.synthetic);if(this.shouldRewriteAsFunction){var a=this.getIndentation(),r=a+e.getIndentString(),o=this.args?" "+this.args.join(", ")+" ":"",s=this.params?" "+this.params.join(", ")+" ":"",c=this.findScope(!0),l=c.createIdentifier("loop"),u="var "+l+" = function ("+s+") "+(this.body.synthetic?"{\n"+a+e.getIndentString():""),d=(this.body.synthetic?"\n"+a+"}":"")+";\n\n"+a;if(e.prependRight(this.body.start,u),e.appendLeft(this.body.end,d),e.move(this.start,this.body.start,this.body.end),this.canBreak||this.canReturn){var h=c.createIdentifier("returned"),f="{\n"+r+"var "+h+" = "+l+"("+o+");\n";this.canBreak&&(f+="\n"+r+"if ( "+h+" === 'break' ) break;"),this.canReturn&&(f+="\n"+r+"if ( "+h+" ) return "+h+".v;"),f+="\n"+a+"}",e.prependRight(this.body.end,f)}else{var g=l+"("+o+");";"DoWhileStatement"===this.type?e.overwrite(this.start,this.body.start,"do {\n"+r+g+"\n"+a+"}"):e.prependRight(this.body.end,g)}}else i&&(e.appendLeft(this.body.start,"{ "),e.prependRight(this.body.end," }"));t.prototype.transpile.call(this,e,n)},e}(ye),Je=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.findScope=function(t){return t||!this.createdScope?this.parent.findScope(t):this.body.scope},e.prototype.transpile=function(e,n){var i=this,a=this.getIndentation()+e.getIndentString();if(this.shouldRewriteAsFunction){var r="VariableDeclaration"===this.init.type?this.init.declarations.map((function(t){return ve(t.id)})):[],o=this.aliases;this.args=r.map((function(t){return t in i.aliases?i.aliases[t].outer:t})),this.params=r.map((function(t){return t in i.aliases?i.aliases[t].inner:t}));var s=Object.keys(this.reassigned).map((function(t){return o[t].outer+" = "+o[t].inner+";"}));if(s.length)if(this.body.synthetic)e.appendLeft(this.body.body[0].end,"; "+s.join(" "));else{var c=this.body.body[this.body.body.length-1];e.appendLeft(c.end,"\n\n"+a+s.join("\n"+a))}}t.prototype.transpile.call(this,e,n)},e}(Xe),Qe=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.findScope=function(t){return t||!this.createdScope?this.parent.findScope(t):this.body.scope},e.prototype.transpile=function(e,n){var i=this,a="VariableDeclaration"===this.left.type;if(this.shouldRewriteAsFunction){var r=a?this.left.declarations.map((function(t){return ve(t.id)})):[];this.args=r.map((function(t){return t in i.aliases?i.aliases[t].outer:t})),this.params=r.map((function(t){return t in i.aliases?i.aliases[t].inner:t}))}t.prototype.transpile.call(this,e,n);var o=a?this.left.declarations[0].id:this.left;"Identifier"!==o.type&&this.destructurePattern(e,o,a)},e.prototype.destructurePattern=function(t,e,n){var i=this.findScope(!0),a=this.getIndentation()+t.getIndentString(),r=i.createIdentifier("ref"),o=this.body.body.length?this.body.body[0].start:this.body.start+1;t.move(e.start,e.end,o),t.prependRight(e.end,n?r:"var "+r);var s=[];Ae(t,(function(t){return i.createIdentifier(t)}),(function(t){var e=t.name;return i.resolveName(e)}),e,r,!1,s);var c=";\n"+a;s.forEach((function(t,e){e===s.length-1&&(c=";\n\n"+a),t(o,"",c)}))},e}(Xe),tn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(e.forOf&&!e.dangerousForOf)throw new Ce("for...of statements are not supported. Use `transforms: { forOf: false }` to skip transformation and disable this error, or `transforms: { dangerousForOf: true }` if you know what you're doing",this);t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){if(t.prototype.transpile.call(this,e,n),n.dangerousForOf)if(this.body.body[0]){var i=this.findScope(!0),a=this.getIndentation(),r=a+e.getIndentString(),o=i.createIdentifier("i"),s=i.createIdentifier("list");this.body.synthetic&&(e.prependRight(this.left.start,"{\n"+r),e.appendLeft(this.body.body[0].end,"\n"+a+"}"));var c=this.body.body[0].start;e.remove(this.left.end,this.right.start),e.move(this.left.start,this.left.end,c),e.prependRight(this.right.start,"var "+o+" = 0, "+s+" = "),e.appendLeft(this.right.end,"; "+o+" < "+s+".length; "+o+" += 1");var l="VariableDeclaration"===this.left.type,u=l?this.left.declarations[0].id:this.left;if("Identifier"!==u.type){var d=[],h=i.createIdentifier("ref");Ae(e,(function(t){return i.createIdentifier(t)}),(function(t){var e=t.name;return i.resolveName(e)}),u,h,!l,d);var f=";\n"+r;d.forEach((function(t,e){e===d.length-1&&(f=";\n\n"+r),t(c,"",f)})),l?(e.appendLeft(this.left.start+this.left.kind.length+1,h),e.appendLeft(this.left.end," = "+s+"["+o+"];\n"+r)):e.appendLeft(this.left.end,"var "+h+" = "+s+"["+o+"];\n"+r)}else e.appendLeft(this.left.end," = "+s+"["+o+"];\n\n"+r)}else"VariableDeclaration"===this.left.type&&"var"===this.left.kind?(e.remove(this.start,this.left.start),e.appendLeft(this.left.end,";"),e.remove(this.left.end,this.end)):e.remove(this.start,this.end)},e}(Xe),en=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(this.generator&&e.generator)throw new Ce("Generators are not supported",this);this.body.createScope(),this.id&&this.findScope(!0).addDeclaration(this.id,"function"),t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){t.prototype.transpile.call(this,e,n),n.trailingFunctionCommas&&this.params.length&&Pe(e,this.params[this.params.length-1].end)},e}(ye),nn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(this.generator&&e.generator)throw new Ce("Generators are not supported",this);this.body.createScope(),this.id&&this.body.scope.addDeclaration(this.id,"function"),t.prototype.initialise.call(this,e);var n,i=this.parent;if(e.conciseMethodProperty&&"Property"===i.type&&"init"===i.kind&&i.method&&"Identifier"===i.key.type||e.classes&&"MethodDefinition"===i.type&&"method"===i.kind&&"Identifier"===i.key.type?n=i.key.name:this.id&&"Identifier"===this.id.type&&(n=this.id.alias||this.id.name),n)for(var a=0,r=this.params;a<r.length;a+=1){var o=r[a];if("Identifier"===o.type&&n===o.name){var s=this.body.scope,c=s.declarations[n],l=s.createIdentifier(n);o.alias=l;for(var u=0,d=c.instances;u<d.length;u+=1){d[u].alias=l}break}}},e.prototype.transpile=function(e,n){t.prototype.transpile.call(this,e,n),n.trailingFunctionCommas&&this.params.length&&Pe(e,this.params[this.params.length-1].end)},e}(ye);function an(t,e){return"MemberExpression"===t.type?!t.computed&&an(t.object,t):"Identifier"===t.type?!e||!/(Function|Class)Expression/.test(e.type)&&("VariableDeclarator"===e.type?t===e.init:"MemberExpression"===e.type||"MethodDefinition"===e.type?e.computed||t===e.object:"ArrayPattern"!==e.type&&("Property"===e.type?"ObjectPattern"!==e.parent.type&&(e.computed||t===e.value):"MethodDefinition"!==e.type&&("ExportSpecifier"!==e.type||t===e.local))):void 0}var rn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.findScope=function(t){return this.parent.params&&~this.parent.params.indexOf(this)||"FunctionExpression"===this.parent.type&&this===this.parent.id?this.parent.body.scope:this.parent.findScope(t)},e.prototype.initialise=function(t){if(an(this,this.parent)){if(t.arrow&&"arguments"===this.name&&!this.findScope(!1).contains(this.name)){var e=this.findLexicalBoundary(),n=this.findNearest("ArrowFunctionExpression"),i=this.findNearest(He);n&&n.depth>e.depth&&(this.alias=e.getArgumentsAlias()),i&&i.body.contains(this)&&i.depth>e.depth&&(this.alias=e.getArgumentsAlias())}this.findScope(!1).addReference(this)}},e.prototype.transpile=function(t){this.alias&&t.overwrite(this.start,this.end,this.alias,{storeName:!0,contentOnly:!0})},e}(ye),on=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){("BlockStatement"!==this.consequent.type||"BlockStatement"===this.consequent.type&&this.consequent.synthetic)&&(e.appendLeft(this.consequent.start,"{ "),e.prependRight(this.consequent.end," }")),this.alternate&&"IfStatement"!==this.alternate.type&&("BlockStatement"!==this.alternate.type||"BlockStatement"===this.alternate.type&&this.alternate.synthetic)&&(e.appendLeft(this.alternate.start,"{ "),e.prependRight(this.alternate.end," }")),t.prototype.transpile.call(this,e,n)},e}(ye),sn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(e.moduleImport)throw new Ce("import is not supported",this);t.prototype.initialise.call(this,e)},e}(ye),cn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){this.findScope(!0).addDeclaration(this.local,"import"),t.prototype.initialise.call(this,e)},e}(ye),ln=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){this.findScope(!0).addDeclaration(this.local,"import"),t.prototype.initialise.call(this,e)},e}(ye),un=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){var i,a=this.name,r=a.start,o=a.name,s=this.value?this.value.start:this.name.end;e.overwrite(r,s,(/-/.test(i=o)?"'"+i+"'":i)+": "+(this.value?"":"true")),t.prototype.transpile.call(this,e,n)},e}(ye);var dn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(t){var e,n=!0,i=this.parent.children[this.parent.children.length-1];(i&&("JSXText"===(e=i).type&&!/\S/.test(e.value)&&/\n/.test(e.value))||this.parent.openingElement.attributes.length)&&(n=!1),t.overwrite(this.start,this.end,n?" )":")")},e}(ye);var hn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(t){var e,n=!0,i=this.parent.children[this.parent.children.length-1];i&&("JSXText"===(e=i).type&&!/\S/.test(e.value)&&/\n/.test(e.value))&&(n=!1),t.overwrite(this.start,this.end,n?" )":")")},e}(ye);function fn(t,e){return t=t.replace(/\u00a0/g," "),e&&/\n/.test(t)&&(t=t.replace(/\s+$/,"")),t=t.replace(/^\n\r?\s+/,"").replace(/\s*\n\r?\s*/gm," "),JSON.stringify(t)}var gn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){t.prototype.transpile.call(this,e,n);var i=this.children.filter((function(t){return"JSXText"!==t.type||(/\S/.test(t.raw)||!/\n/.test(t.raw))}));if(i.length){var a,r=(this.openingElement||this.openingFragment).end;for(a=0;a<i.length;a+=1){var o=i[a];if("JSXExpressionContainer"===o.type&&"JSXEmptyExpression"===o.expression.type);else{var s="\n"===e.original[r]&&"JSXText"!==o.type?"":" ";e.appendLeft(r,","+s)}if("JSXText"===o.type){var c=fn(o.value,a===i.length-1);e.overwrite(o.start,o.end,c)}r=o.end}}},e}(ye),pn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){e.remove(this.start,this.expression.start),e.remove(this.expression.end,this.end),t.prototype.transpile.call(this,e,n)},e}(ye),bn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(gn),mn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){var i=this;t.prototype.transpile.call(this,e,n),e.overwrite(this.start,this.name.start,this.program.jsx+"( ");var a="JSXIdentifier"===this.name.type&&this.name.name[0]===this.name.name[0].toLowerCase();a&&e.prependRight(this.name.start,"'");var r=this.attributes.length,o=this.name.end;if(r){var s,c,l,u=!1;for(s=0;s<r;s+=1)if("JSXSpreadAttribute"===i.attributes[s].type){u=!0;break}for(o=this.attributes[0].end,s=0;s<r;s+=1){var d=i.attributes[s];if(s>0&&(d.start===o?e.prependRight(o,", "):e.overwrite(o,d.start,", ")),u&&"JSXSpreadAttribute"!==d.type){var h=i.attributes[s-1],f=i.attributes[s+1];h&&"JSXSpreadAttribute"!==h.type||e.prependRight(d.start,"{ "),f&&"JSXSpreadAttribute"!==f.type||e.appendLeft(d.end," }")}o=d.end}if(u)if(1===r)l=a?"',":",";else{if(!this.program.options.objectAssign)throw new Ce("Mixed JSX attributes ending in spread requires specified objectAssign option with 'Object.assign' or polyfill helper.",this);l=a?"', "+this.program.options.objectAssign+"({},":", "+this.program.options.objectAssign+"({},",c=")"}else l=a?"', {":", {",c=" }";e.prependRight(this.name.end,l),c&&e.appendLeft(this.attributes[r-1].end,c)}else e.appendLeft(this.name.end,a?"', null":", null"),o=this.name.end;this.selfClosing?e.overwrite(o,this.end,this.attributes.length?")":" )"):e.remove(o,this.end)},e}(ye),yn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(t){t.overwrite(this.start,this.end,this.program.jsx+"( React.Fragment, null")},e}(ye),vn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){e.remove(this.start,this.argument.start),e.remove(this.argument.end,this.end),t.prototype.transpile.call(this,e,n)},e}(ye),wn=/[\u2028-\u2029]/g,xn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(){"string"==typeof this.value&&this.program.indentExclusionElements.push(this)},e.prototype.transpile=function(t,e){if(e.numericLiteral&&this.raw.match(/^0[bo]/i)&&t.overwrite(this.start,this.end,String(this.value),{storeName:!0,contentOnly:!0}),this.regex){var n=this.regex,i=n.pattern,a=n.flags;if(e.stickyRegExp&&/y/.test(a))throw new Ce("Regular expression sticky flag is not supported",this);e.unicodeRegExp&&/u/.test(a)&&t.overwrite(this.start,this.end,"/"+l()(i,a)+"/"+a.replace("u",""),{contentOnly:!0})}else"string"==typeof this.value&&this.value.match(wn)&&t.overwrite(this.start,this.end,this.raw.replace(wn,(function(t){return"\u2028"==t?"\\u2028":"\\u2029"})),{contentOnly:!0})},e}(ye),Rn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){n.reservedProperties&&xe[this.property.name]&&(e.overwrite(this.object.end,this.property.start,"['"),e.appendLeft(this.property.end,"']")),t.prototype.transpile.call(this,e,n)},e}(ye),_n=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(e.spreadRest&&this.arguments.length)for(var n=this.findLexicalBoundary(),i=this.arguments.length;i--;){var a=this.arguments[i];if("SpreadElement"===a.type&&Me(a.argument)){this.argumentsArrayAlias=n.getArgumentsArrayAlias();break}}t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){if(t.prototype.transpile.call(this,e,n),n.spreadRest&&this.arguments.length){var i=this.arguments[0];Ne(e,this.arguments,i.start,this.argumentsArrayAlias,!0)&&(e.prependRight(this.start+"new".length," (Function.prototype.bind.apply("),e.overwrite(this.callee.end,i.start,", [ null ].concat( "),e.appendLeft(this.end," ))"))}this.arguments.length&&Pe(e,this.arguments[this.arguments.length-1].end)},e}(ye),kn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){var i=this;t.prototype.transpile.call(this,e,n);for(var a=this.start+1,r=0,o=0,s=null,c=null,l=0;l<this.properties.length;++l){var u=i.properties[l];"SpreadElement"===u.type?(r+=1,null===s&&(s=l)):u.computed&&n.computedProperty&&(o+=1,null===c&&(c=l))}if(!r||n.objectRestSpread||o&&n.computedProperty){if(r){if(!this.program.options.objectAssign)throw new Ce("Object spread operator requires specified objectAssign option with 'Object.assign' or polyfill helper.",this);for(var d=this.properties.length;d--;){var h=i.properties[d];if("Property"===h.type&&!o){var f=i.properties[d-1],g=i.properties[d+1];f&&"Property"===f.type||e.prependRight(h.start,"{"),g&&"Property"===g.type||e.appendLeft(h.end,"}")}"SpreadElement"===h.type&&(e.remove(h.start,h.argument.start),e.remove(h.argument.end,h.end))}a=this.properties[0].start,o?"SpreadElement"===this.properties[0].type?(e.overwrite(this.start,a,this.program.options.objectAssign+"({}, "),e.remove(this.end-1,this.end),e.appendRight(this.end,")")):(e.prependLeft(this.start,this.program.options.objectAssign+"("),e.appendRight(this.end,")")):(e.overwrite(this.start,a,this.program.options.objectAssign+"({}, "),e.overwrite(this.properties[this.properties.length-1].end,this.end,")"))}}else r=0,s=null;if(o&&n.computedProperty){var p,b,m=this.getIndentation();"VariableDeclarator"===this.parent.type&&1===this.parent.parent.declarations.length&&"Identifier"===this.parent.id.type?(p=!0,b=this.parent.id.alias||this.parent.id.name):("AssignmentExpression"===this.parent.type&&"ExpressionStatement"===this.parent.parent.type&&"Identifier"===this.parent.left.type||"AssignmentPattern"===this.parent.type&&"Identifier"===this.parent.left.type)&&(p=!0,b=this.parent.left.alias||this.parent.left.name),r&&(p=!1),b=this.findScope(!1).resolveName(b);var y=a,v=this.end;p||(null===s||c<s?(b=this.findScope(!0).createDeclaration("obj"),e.prependRight(this.start,"( "+b+" = ")):b=null);for(var w,x=this.properties.length,R=!1,_=!0,k=0;k<x;k+=1){var E=i.properties[k],C=k>0?i.properties[k-1].end:y;if("Property"===E.type&&(E.computed||w&&!r)){if(0===k&&(C=i.start+1),w=E,b){var S=(p?";\n"+m+b:", "+b)+("Literal"===E.key.type||E.computed?"":".");C<E.start?e.overwrite(C,E.start,S):e.prependRight(E.start,S)}else{var T=(b=i.findScope(!0).createDeclaration("obj"))+(E.computed?"":".");e.appendRight(E.start,"( "+b+" = {}, "+T)}var A=E.key.end;if(E.computed){for(;"]"!==e.original[A];)A+=1;A+=1}"Literal"!==E.key.type||E.computed?E.shorthand||E.method&&!E.computed&&n.conciseMethodProperty?e.overwrite(E.key.start,E.key.end,e.slice(E.key.start,E.key.end).replace(/:/," =")):(E.value.start>A&&e.remove(A,E.value.start),e.prependLeft(A," = ")):e.overwrite(E.start,E.key.end+1,"["+e.slice(E.start,E.key.end)+"] = "),!E.method||!E.computed&&n.conciseMethodProperty||(E.value.generator&&e.remove(E.start,E.key.start),e.prependRight(E.value.start,"function"+(E.value.generator?"*":"")+" "))}else"SpreadElement"===E.type?b&&k>0&&(w||(w=i.properties[k-1]),e.appendLeft(w.end,", "+b+" )"),w=null,b=null):(!_&&r&&(e.prependRight(E.start,"{"),e.appendLeft(E.end,"}")),R=!0);if(_&&("SpreadElement"===E.type||E.computed)){var D=R?i.properties[i.properties.length-1].end:i.end-1;","==e.original[D]&&++D;var I=e.slice(D,v);e.prependLeft(C,I),e.remove(D,v),_=!1}var L=E.end;if(k<x-1&&!R)for(;","!==e.original[L];)L+=1;else k==x-1&&(L=i.end);E.end!=L&&e.overwrite(E.end,L,"",{contentOnly:!0})}!p&&b&&e.appendLeft(w.end,", "+b+" )")}},e}(ye),En=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(("get"===this.kind||"set"===this.kind)&&e.getterSetter)throw new Ce("getters and setters are not supported. Use `transforms: { getterSetter: false }` to skip transformation and disable this error",this);t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){if(t.prototype.transpile.call(this,e,n),n.conciseMethodProperty&&!this.computed&&"ObjectPattern"!==this.parent.type)if(this.shorthand)e.prependRight(this.start,this.key.name+": ");else if(this.method){var i="";!1!==this.program.options.namedFunctionExpressions&&(i=" "+(i="Literal"===this.key.type&&"number"==typeof this.key.value?"":"Identifier"===this.key.type?xe[this.key.name]||!/^[a-z_$][a-z0-9_$]*$/i.test(this.key.name)||this.value.body.scope.references[this.key.name]?this.findScope(!0).createIdentifier(this.key.name):this.key.name:this.findScope(!0).createIdentifier(this.key.value))),this.value.generator&&e.remove(this.start,this.key.start),e.appendLeft(this.key.end,": function"+(this.value.generator?"*":"")+i)}n.reservedProperties&&xe[this.key.name]&&(e.prependRight(this.key.start,"'"),e.appendLeft(this.key.end,"'"))},e}(ye),Cn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(t){this.loop=this.findNearest(He),this.nearestFunction=this.findNearest(/Function/),this.loop&&(!this.nearestFunction||this.loop.depth>this.nearestFunction.depth)&&(this.loop.canReturn=!0,this.shouldWrap=!0),this.argument&&this.argument.initialise(t)},e.prototype.transpile=function(t,e){var n=this.shouldWrap&&this.loop&&this.loop.shouldRewriteAsFunction;this.argument?(n&&t.prependRight(this.argument.start,"{ v: "),this.argument.transpile(t,e),n&&t.appendLeft(this.argument.end," }")):n&&t.appendLeft(this.start+6," {}")},e}(ye),Sn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(t){if(t.classes){if(this.method=this.findNearest("MethodDefinition"),!this.method)throw new Ce("use of super outside class method",this);var e=this.findNearest("ClassBody").parent;if(this.superClassName=e.superClass&&(e.superClass.name||"superclass"),!this.superClassName)throw new Ce("super used in base class",this);if(this.isCalled="CallExpression"===this.parent.type&&this===this.parent.callee,"constructor"!==this.method.kind&&this.isCalled)throw new Ce("super() not allowed outside class constructor",this);if(this.isMember="MemberExpression"===this.parent.type,!this.isCalled&&!this.isMember)throw new Ce("Unexpected use of `super` (expected `super(...)` or `super.*`)",this)}if(t.arrow){var n=this.findLexicalBoundary(),i=this.findNearest("ArrowFunctionExpression"),a=this.findNearest(He);i&&i.depth>n.depth&&(this.thisAlias=n.getThisAlias()),a&&a.body.contains(this)&&a.depth>n.depth&&(this.thisAlias=n.getThisAlias())}},e.prototype.transpile=function(t,e){if(e.classes){var n=this.isCalled||this.method.static?this.superClassName:this.superClassName+".prototype";t.overwrite(this.start,this.end,n,{storeName:!0,contentOnly:!0});var i=this.isCalled?this.parent:this.parent.parent;if(i&&"CallExpression"===i.type){this.noCall||t.appendLeft(i.callee.end,".call");var a=this.thisAlias||"this";i.arguments.length?t.appendLeft(i.arguments[0].start,a+", "):t.appendLeft(i.end-1,""+a)}}},e}(ye),Tn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(e.templateString&&!e.dangerousTaggedTemplateString)throw new Ce("Tagged template strings are not supported. Use `transforms: { templateString: false }` to skip transformation and disable this error, or `transforms: { dangerousTaggedTemplateString: true }` if you know what you're doing",this);t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){if(n.templateString&&n.dangerousTaggedTemplateString){var i=this.quasi.expressions.concat(this.quasi.quasis).sort((function(t,e){return t.start-e.start})),a=this.program.body.scope,r=this.quasi.quasis.map((function(t){return JSON.stringify(t.value.cooked)})).join(", "),o=this.program.templateLiteralQuasis[r];o||(o=a.createIdentifier("templateObject"),e.prependRight(this.program.prependAt,"var "+o+" = Object.freeze(["+r+"]);\n"),this.program.templateLiteralQuasis[r]=o),e.overwrite(this.tag.end,i[0].start,"("+o);var s=i[0].start;i.forEach((function(t){"TemplateElement"===t.type?e.remove(s,t.end):e.overwrite(s,t.start,", "),s=t.end})),e.overwrite(s,this.end,")")}t.prototype.transpile.call(this,e,n)},e}(ye),An=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(){this.program.indentExclusionElements.push(this)},e}(ye),Dn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){if(t.prototype.transpile.call(this,e,n),n.templateString&&"TaggedTemplateExpression"!==this.parent.type){var i=this.expressions.concat(this.quasis).sort((function(t,e){return t.start-e.start||t.end-e.end})).filter((function(t,e){return"TemplateElement"!==t.type||(!!t.value.raw||!e)}));if(i.length>=3){var a=i[0],r=i[2];"TemplateElement"===a.type&&""===a.value.raw&&"TemplateElement"===r.type&&i.shift()}var o=!(1===this.quasis.length&&0===this.expressions.length||"TemplateLiteral"===this.parent.type||"AssignmentExpression"===this.parent.type||"AssignmentPattern"===this.parent.type||"VariableDeclarator"===this.parent.type||"BinaryExpression"===this.parent.type&&"+"===this.parent.operator);o&&e.appendRight(this.start,"(");var s=this.start;i.forEach((function(t,n){var i=0===n?o?"(":"":" + ";if("TemplateElement"===t.type)e.overwrite(s,t.end,i+JSON.stringify(t.value.cooked));else{var a="Identifier"!==t.type;a&&(i+="("),e.remove(s,t.start),i&&e.prependRight(t.start,i),a&&e.appendLeft(t.end,")")}s=t.end})),o&&e.appendLeft(s,")"),e.overwrite(s,this.end,"",{contentOnly:!0})}},e}(ye),In=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(t){var e=this.findLexicalBoundary();if(t.letConst)for(var n=this.findNearest(He);n&&n.depth>e.depth;)n.thisRefs.push(this),n=n.parent.findNearest(He);if(t.arrow){var i=this.findNearest("ArrowFunctionExpression");i&&i.depth>e.depth&&(this.alias=e.getThisAlias())}},e.prototype.transpile=function(t){this.alias&&t.overwrite(this.start,this.end,this.alias,{storeName:!0,contentOnly:!0})},e}(ye),Ln=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if("Identifier"===this.argument.type){var n=this.findScope(!1).findDeclaration(this.argument.name),i=n&&n.node.ancestor(3);i&&"ForStatement"===i.type&&i.body.contains(this)&&(i.reassigned[this.argument.name]=!0)}t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){"Identifier"===this.argument.type&&je(this.argument,this.findScope(!1)),t.prototype.transpile.call(this,e,n)},e}(ye),On=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(t){this.scope=this.findScope("var"===this.kind),this.declarations.forEach((function(e){return e.initialise(t)}))},e.prototype.transpile=function(t,e){var n=this,i=this.getIndentation(),a=this.kind;if(e.letConst&&"var"!==a&&(a="var",t.overwrite(this.start,this.start+this.kind.length,a,{contentOnly:!0,storeName:!0})),e.destructuring&&"ForOfStatement"!==this.parent.type&&"ForInStatement"!==this.parent.type){var r,o=this.start;this.declarations.forEach((function(a,s){if(a.transpile(t,e),"Identifier"===a.id.type)s>0&&"Identifier"!==n.declarations[s-1].id.type&&t.overwrite(o,a.id.start,"var ");else{var c=He.test(n.parent.type);0===s?t.remove(o,a.id.start):t.overwrite(o,a.id.start,";\n"+i);var l="Identifier"===a.init.type&&!a.init.rewritten,u=l?a.init.alias||a.init.name:a.findScope(!0).createIdentifier("ref");o=a.start;var d=[];l?t.remove(a.id.end,a.end):d.push((function(e,n,i){t.prependRight(a.id.end,"var "+u),t.appendLeft(a.init.end,""+i),t.move(a.id.end,a.end,e)}));var h=a.findScope(!1);Ae(t,(function(t){return h.createIdentifier(t)}),(function(t){var e=t.name;return h.resolveName(e)}),a.id,u,c,d);var f=c?"var ":"",g=c?", ":";\n"+i;d.forEach((function(t,e){s===n.declarations.length-1&&e===d.length-1&&(g=c?"":";"),t(a.start,0===e?f:"",g)}))}o=a.end,r="Identifier"!==a.id.type})),r&&this.end>o&&t.overwrite(o,this.end,"",{contentOnly:!0})}else this.declarations.forEach((function(n){n.transpile(t,e)}))},e}(ye),Mn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){var n=this.parent.kind;"let"===n&&"ForStatement"===this.parent.parent.type&&(n="for.let"),this.parent.scope.addDeclaration(this.id,n),t.prototype.initialise.call(this,e)},e.prototype.transpile=function(t,e){if(!this.init&&e.letConst&&"var"!==this.parent.kind){var n=this.findNearest(/Function|^For(In|Of)?Statement|^(?:Do)?WhileStatement/);!n||/Function/.test(n.type)||this.isLeftDeclaratorOfLoop()||t.appendLeft(this.id.end," = (void 0)")}this.id&&this.id.transpile(t,e),this.init&&this.init.transpile(t,e)},e.prototype.isLeftDeclaratorOfLoop=function(){return this.parent&&"VariableDeclaration"===this.parent.type&&this.parent.parent&&("ForInStatement"===this.parent.parent.type||"ForOfStatement"===this.parent.parent.type)&&this.parent.parent.left&&this.parent.parent.left.declarations[0]===this},e}(ye),Nn={ArrayExpression:Be,ArrowFunctionExpression:Fe,AssignmentExpression:$e,BinaryExpression:ze,BreakStatement:Ue,CallExpression:Ve,ClassBody:qe,ClassDeclaration:We,ClassExpression:Ye,ContinueStatement:Ge,DoWhileStatement:Xe,ExportNamedDeclaration:Ke,ExportDefaultDeclaration:Ze,ForStatement:Je,ForInStatement:Qe,ForOfStatement:tn,FunctionDeclaration:en,FunctionExpression:nn,Identifier:rn,IfStatement:on,ImportDeclaration:sn,ImportDefaultSpecifier:cn,ImportSpecifier:ln,JSXAttribute:un,JSXClosingElement:dn,JSXClosingFragment:hn,JSXElement:gn,JSXExpressionContainer:pn,JSXFragment:bn,JSXOpeningElement:mn,JSXOpeningFragment:yn,JSXSpreadAttribute:vn,Literal:xn,MemberExpression:Rn,NewExpression:_n,ObjectExpression:kn,Property:En,ReturnStatement:Cn,Super:Sn,TaggedTemplateExpression:Tn,TemplateElement:An,TemplateLiteral:Dn,ThisExpression:In,UpdateExpression:Ln,VariableDeclaration:On,VariableDeclarator:Mn,WhileStatement:Xe},Bn={Program:["body"],Literal:[]},Pn={IfStatement:"consequent",ForStatement:"body",ForInStatement:"body",ForOfStatement:"body",WhileStatement:"body",DoWhileStatement:"body",ArrowFunctionExpression:"body"};function Fn(t,e){if(t)if("length"in t)for(var n=t.length;n--;)Fn(t[n],e);else if(!t.__wrapped){t.__wrapped=!0,Bn[t.type]||(Bn[t.type]=Object.keys(t).filter((function(e){return"object"==typeof t[e]})));var i=Pn[t.type];if(i&&"BlockStatement"!==t[i].type){var a=t[i];t[i]={start:a.start,end:a.end,type:"BlockStatement",body:[a],synthetic:!0}}t.parent=e,t.program=e.program||e,t.depth=e.depth+1,t.keys=Bn[t.type],t.indentation=void 0;for(var r=0,o=Bn[t.type];r<o.length;r+=1){var s=o[r];Fn(t[s],t)}t.program.magicString.addSourcemapLocation(t.start),t.program.magicString.addSourcemapLocation(t.end);var c=("BlockStatement"===t.type?Oe:Nn[t.type])||ye;t.__proto__=c.prototype}}function jn(t,e,n,i){var a=this;this.type="Root",this.jsx=i.jsx||"React.createElement",this.options=i,this.source=t,this.magicString=new C(t),this.ast=e,this.depth=0,Fn(this.body=e,this),this.body.__proto__=Oe.prototype,this.templateLiteralQuasis=Object.create(null);for(var r=0;r<this.body.body.length;++r)if(!a.body.body[r].directive){a.prependAt=a.body.body[r].start;break}this.objectWithoutPropertiesHelper=null,this.indentExclusionElements=[],this.body.initialise(n),this.indentExclusions=Object.create(null);for(var o=0,s=a.indentExclusionElements;o<s.length;o+=1)for(var c=s[o],l=c.start;l<c.end;l+=1)a.indentExclusions[l]=!0;this.body.transpile(this.magicString,n)}jn.prototype={export:function(t){return void 0===t&&(t={}),{code:this.magicString.toString(),map:this.magicString.generateMap({file:t.file,source:t.source,includeContent:!1!==t.includeContent})}},findNearest:function(){return null},findScope:function(){return null},getObjectWithoutPropertiesHelper:function(t){return this.objectWithoutPropertiesHelper||(this.objectWithoutPropertiesHelper=this.body.scope.createIdentifier("objectWithoutProperties"),t.prependLeft(this.prependAt,"function "+this.objectWithoutPropertiesHelper+" (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }\n")),this.objectWithoutPropertiesHelper}};var $n={chrome:{48:610719,49:652287,50:783359,51:783359,52:1045503,53:1045503,54:1045503,55:3142655,56:3142655,57:3142655,58:4191231,59:4191231,60:8385535,61:8385535,62:8385535,63:8385535,64:8385535,65:8385535,66:8385535,67:8385535,68:8385535,69:8385535,70:8385535,71:8385535},firefox:{43:643515,44:643515,45:643519,46:774591,47:774655,48:774655,49:774655,50:774655,51:775167,52:4191231,53:4191231,54:4191231,55:8385535,56:8385535,57:8385535,58:8385535,59:8385535,60:8385535,61:8385535,62:8385535,63:8385535,64:8385535},safari:{8:524297,9:594141,10:1831935,10.1:4191231,11:4191231,11.1:8385535,12:8385535},ie:{8:0,9:524289,10:524289,11:524289},edge:{12:610459,13:774559,14:2085887,15:4183039,16:4183039,17:4183039,18:4183039,19:4183039},node:{"0.10":524289,.12:524417,4:594335,5:594335,6:783359,8:4191231,8.3:8385535,8.7:8385535,"8.10":8385535}},zn=["getterSetter","arrow","classes","computedProperty","conciseMethodProperty","defaultParameter","destructuring","forOf","generator","letConst","moduleExport","moduleImport","numericLiteral","parameterDestructuring","spreadRest","stickyRegExp","templateString","unicodeRegExp","exponentiation","reservedProperties","trailingFunctionCommas","asyncAwait","objectRestSpread"],Hn=ht.extend(be,fe()),Un=["dangerousTaggedTemplateString","dangerousForOf"];function Vn(t,e){var n;void 0===e&&(e={});var i=null;try{n=Hn.parse(t,{ecmaVersion:10,preserveParens:!0,sourceType:"module",allowReturnOutsideFunction:!0,onComment:function(t,e){if(!i){var n=/@jsx\s+([^\s]+)/.exec(e);n&&(i=n[1])}}}),e.jsx=i||e.jsx}catch(r){throw r.snippet=Ee(t,r.loc),r.toString=function(){return r.name+": "+r.message+"\n"+r.snippet},r}var a=function(t){var e=Object.keys(t).length?8388607:524289;Object.keys(t).forEach((function(n){var i=$n[n];if(!i)throw new Error("Unknown environment '"+n+"'. Please raise an issue at https://github.com/Rich-Harris/buble/issues");var a=t[n];if(!(a in i))throw new Error("Support data exists for the following versions of "+n+": "+Object.keys(i).join(", ")+". Please raise an issue at https://github.com/Rich-Harris/buble/issues");var r=i[a];e&=r}));var n=Object.create(null);return zn.forEach((function(t,i){n[t]=!(e&1<<i)})),Un.forEach((function(t){n[t]=!1})),n}(e.target||{});return Object.keys(e.transforms||{}).forEach((function(t){if("modules"===t)return"moduleImport"in e.transforms||(a.moduleImport=e.transforms.modules),void("moduleExport"in e.transforms||(a.moduleExport=e.transforms.modules));if(!(t in a))throw new Error("Unknown transform '"+t+"'");a[t]=e.transforms[t]})),!0===e.objectAssign&&(e.objectAssign="Object.assign"),new jn(t,n,a,e).export(e)}var qn=n(68548),Wn=n.n(qn);function Yn(){return Yn=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},Yn.apply(this,arguments)}function Gn(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Zn(t,e){if(null==t)return{};var n,i,a={},r=Object.keys(t);for(i=0;i<r.length;i++)n=r[i],e.indexOf(n)>=0||(a[n]=t[n]);return a}var Kn={plain:{color:"#C5C8C6",backgroundColor:"#1D1F21"},styles:[{types:["prolog","comment","doctype","cdata"],style:{color:"hsl(30, 20%, 50%)"}},{types:["property","tag","boolean","number","constant","symbol"],style:{color:"hsl(350, 40%, 70%)"}},{types:["attr-name","string","char","builtin","insterted"],style:{color:"hsl(75, 70%, 60%)"}},{types:["operator","entity","url","string","variable","language-css"],style:{color:"hsl(40, 90%, 60%)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["regex","important"],style:{color:"#e90"}},{types:["atrule","attr-value","keyword"],style:{color:"hsl(350, 40%, 70%)"}},{types:["punctuation","symbol"],style:{opacity:"0.7"}}]},Xn=["style","theme","onChange"];function Jn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function Qn(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Jn(Object(n),!0).forEach((function(e){Gn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Jn(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var ti=function(t){var e=(0,i.useState)({code:t.code||""}),n=e[0],a=e[1];(0,i.useEffect)((function(){n.prevCodeProp&&t.code!==n.prevCodeProp&&a({code:t.code,prevCodeProp:t.code})}),[t.code]);(0,i.useEffect)((function(){t.onChange&&t.onChange(n.code)}),[n.code]);var c=t.style,l=t.theme;t.onChange;var u=Zn(t,Xn),d=n.code,h=l&&"object"==typeof l.plain?l.plain:{};return i.createElement(r(),Yn({value:d,padding:10,highlight:function(e){return i.createElement(o.ZP,{Prism:s.Z,code:e,theme:t.theme||Kn,language:t.language},(function(t){var e=t.tokens,n=t.getLineProps,a=t.getTokenProps;return i.createElement(i.Fragment,null,e.map((function(t,e){return i.createElement("div",n({line:t,key:e}),t.map((function(t,e){return i.createElement("span",a({token:t,key:e}))})))})))}))},onValueChange:function(t){a({code:t})},style:Qn(Qn({whiteSpace:"pre",fontFamily:"monospace"},h),c)},u))},ei=(0,i.createContext)({});function ni(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function ii(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ni(Object(n),!0).forEach((function(e){Gn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ni(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var ai={assign:Wn()},ri=function(t,e){return void 0===e&&(e={}),Vn(t,ii(ii({},e),{},{objectAssign:"_poly.assign",transforms:ii({dangerousForOf:!0,dangerousTaggedTemplateString:!0},e.transforms)})).code};function oi(t,e){return oi=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},oi(t,e)}function si(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,oi(t,e)}var ci=function(t,e){return function(n){function a(){return n.apply(this,arguments)||this}si(a,n);var r=a.prototype;return r.componentDidCatch=function(t){e(t)},r.render=function(){return"function"==typeof t?i.createElement(t,null):i.isValidElement(t)?t:null},a}(i.Component)};function li(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function ui(t,e,n){return ui=li()?Reflect.construct:function(t,e,n){var i=[null];i.push.apply(i,e);var a=new(Function.bind.apply(t,i));return n&&oi(a,n.prototype),a},ui.apply(null,arguments)}var di=function(t,e){var n=Object.keys(e),a=n.map((function(t){return e[t]}));return ui(Function,["_poly","React"].concat(n,[t])).apply(void 0,[ai,i].concat(a))};function hi(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function fi(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?hi(Object(n),!0).forEach((function(e){Gn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):hi(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var gi=function(t,e){var n=t.code,i=void 0===n?"":n,a=t.scope,r=void 0===a?{}:a,o=t.transpileOptions,s=i.trim().replace(/;$/,""),c=ri("return ("+s+")",o).trim();return ci(di(c,r),e)},pi=function(t,e,n){var i=t.code,a=void 0===i?"":i,r=t.scope,o=void 0===r?{}:r,s=t.transpileOptions;if(!/render\s*\(/.test(a))return n(new SyntaxError("No-Inline evaluations must call `render`."));di(ri(a,s),fi(fi({},o),{},{render:function(t){void 0===t?n(new SyntaxError("`render` must be called with valid JSX.")):e(ci(t,n))}}))};function bi(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function mi(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?bi(Object(n),!0).forEach((function(e){Gn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):bi(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function yi(t){var e=t.children,n=t.code,a=t.language,r=t.theme,o=t.disabled,s=t.scope,c=t.transformCode,l=t.transpileOptions,u=t.noInline,d=void 0!==u&&u,h=(0,i.useState)({error:void 0,element:void 0}),f=h[0],g=h[1];function p(t){var e={code:c?c(t):t,scope:s,transpileOptions:l},n=function(t){return g({error:t.toString(),element:void 0})},i=function(t){return g({error:void 0,element:t})};try{d?(g({error:void 0,element:null}),pi(e,i,n)):i(gi(e,n))}catch(a){n(a)}}(0,i.useEffect)((function(){p(n)}),[n,s,d,c,l]);return i.createElement(ei.Provider,{value:mi(mi({},f),{},{code:n,language:a,theme:r,disabled:o,onError:function(t){return g({error:t.toString()})},onChange:function(t){return p(t)}})},e)}function vi(t){var e=(0,i.useContext)(ei),n=e.code,a=e.language,r=e.theme,o=e.disabled,s=e.onChange;return i.createElement(ti,Yn({theme:r,code:n,language:a,disabled:o,onChange:s},t))}function wi(t){var e=(0,i.useContext)(ei).error;return e?i.createElement("pre",t,e):null}yi.defaultProps={code:"",noInline:!1,language:"jsx",disabled:!1};var xi=["Component"];function Ri(t){var e=t.Component,n=Zn(t,xi),a=(0,i.useContext)(ei).element;return i.createElement(e,n,a?i.createElement(a,null):null)}function _i(t){var e=function(e){function n(){return e.apply(this,arguments)||this}return si(n,e),n.prototype.render=function(){var e=this;return i.createElement(ei.Consumer,null,(function(n){return i.createElement(t,Yn({live:n},e.props))}))},n}(i.Component);return e}Ri.defaultProps={Component:"div"}},12556:(t,e,n)=>{"use strict";var i=n(75878);t.exports=i},76670:(t,e,n)=>{"use strict";n(35762);var i=n(89021);t.exports=i.Object.assign},68548:(t,e,n)=>{"use strict";t.exports=n(88372)},88372:(t,e,n)=>{"use strict";var i=n(12556);t.exports=i},53866:(t,e,n)=>{"use strict";var i=n(32094),a=n(72526),r=TypeError;t.exports=function(t){if(i(t))return t;throw r(a(t)+" is not a function")}},47420:(t,e,n)=>{"use strict";var i=n(1140),a=String,r=TypeError;t.exports=function(t){if(i(t))return t;throw r(a(t)+" is not an object")}},53260:(t,e,n)=>{"use strict";var i=n(94607),a=n(77),r=n(59782),o=function(t){return function(e,n,o){var s,c=i(e),l=r(c),u=a(o,l);if(t&&n!=n){for(;l>u;)if((s=c[u++])!=s)return!0}else for(;l>u;u++)if((t||u in c)&&c[u]===n)return t||u||0;return!t&&-1}};t.exports={includes:o(!0),indexOf:o(!1)}},55097:(t,e,n)=>{"use strict";var i=n(51213),a=i({}.toString),r=i("".slice);t.exports=function(t){return r(a(t),8,-1)}},94731:(t,e,n)=>{"use strict";var i=n(76333),a=n(47560),r=n(96179),o=n(45689);t.exports=function(t,e,n){for(var s=a(e),c=o.f,l=r.f,u=0;u<s.length;u++){var d=s[u];i(t,d)||n&&i(n,d)||c(t,d,l(e,d))}}},55842:(t,e,n)=>{"use strict";var i=n(10617),a=n(45689),r=n(67797);t.exports=i?function(t,e,n){return a.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},67797:t=>{"use strict";t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},443:(t,e,n)=>{"use strict";var i=n(32094),a=n(45689),r=n(47660),o=n(30336);t.exports=function(t,e,n,s){s||(s={});var c=s.enumerable,l=void 0!==s.name?s.name:e;if(i(n)&&r(n,l,s),s.global)c?t[e]=n:o(e,n);else{try{s.unsafe?t[e]&&(c=!0):delete t[e]}catch(u){}c?t[e]=n:a.f(t,e,{value:n,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return t}},30336:(t,e,n)=>{"use strict";var i=n(96019),a=Object.defineProperty;t.exports=function(t,e){try{a(i,t,{value:e,configurable:!0,writable:!0})}catch(n){i[t]=e}return e}},10617:(t,e,n)=>{"use strict";var i=n(85264);t.exports=!i((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},65004:t=>{"use strict";var e="object"==typeof document&&document.all,n=void 0===e&&void 0!==e;t.exports={all:e,IS_HTMLDDA:n}},16248:(t,e,n)=>{"use strict";var i=n(96019),a=n(1140),r=i.document,o=a(r)&&a(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},17061:t=>{"use strict";t.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},63730:(t,e,n)=>{"use strict";var i,a,r=n(96019),o=n(17061),s=r.process,c=r.Deno,l=s&&s.versions||c&&c.version,u=l&&l.v8;u&&(a=(i=u.split("."))[0]>0&&i[0]<4?1:+(i[0]+i[1])),!a&&o&&(!(i=o.match(/Edge\/(\d+)/))||i[1]>=74)&&(i=o.match(/Chrome\/(\d+)/))&&(a=+i[1]),t.exports=a},2142:t=>{"use strict";t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},45100:(t,e,n)=>{"use strict";var i=n(96019),a=n(96179).f,r=n(55842),o=n(443),s=n(30336),c=n(94731),l=n(3570);t.exports=function(t,e){var n,u,d,h,f,g=t.target,p=t.global,b=t.stat;if(n=p?i:b?i[g]||s(g,{}):(i[g]||{}).prototype)for(u in e){if(h=e[u],d=t.dontCallGetSet?(f=a(n,u))&&f.value:n[u],!l(p?u:g+(b?".":"#")+u,t.forced)&&void 0!==d){if(typeof h==typeof d)continue;c(h,d)}(t.sham||d&&d.sham)&&r(h,"sham",!0),o(n,u,h,t)}}},85264:t=>{"use strict";t.exports=function(t){try{return!!t()}catch(e){return!0}}},61314:(t,e,n)=>{"use strict";var i=n(85264);t.exports=!i((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},26622:(t,e,n)=>{"use strict";var i=n(61314),a=Function.prototype.call;t.exports=i?a.bind(a):function(){return a.apply(a,arguments)}},94615:(t,e,n)=>{"use strict";var i=n(10617),a=n(76333),r=Function.prototype,o=i&&Object.getOwnPropertyDescriptor,s=a(r,"name"),c=s&&"something"===function(){}.name,l=s&&(!i||i&&o(r,"name").configurable);t.exports={EXISTS:s,PROPER:c,CONFIGURABLE:l}},51213:(t,e,n)=>{"use strict";var i=n(61314),a=Function.prototype,r=a.call,o=i&&a.bind.bind(r,r);t.exports=i?o:function(t){return function(){return r.apply(t,arguments)}}},14101:(t,e,n)=>{"use strict";var i=n(96019),a=n(32094),r=function(t){return a(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?r(i[t]):i[t]&&i[t][e]}},62114:(t,e,n)=>{"use strict";var i=n(53866),a=n(94049);t.exports=function(t,e){var n=t[e];return a(n)?void 0:i(n)}},96019:function(t,e,n){"use strict";var i=function(t){return t&&t.Math===Math&&t};t.exports=i("object"==typeof globalThis&&globalThis)||i("object"==typeof window&&window)||i("object"==typeof self&&self)||i("object"==typeof n.g&&n.g)||function(){return this}()||this||Function("return this")()},76333:(t,e,n)=>{"use strict";var i=n(51213),a=n(78713),r=i({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return r(a(t),e)}},16079:t=>{"use strict";t.exports={}},84989:(t,e,n)=>{"use strict";var i=n(10617),a=n(85264),r=n(16248);t.exports=!i&&!a((function(){return 7!==Object.defineProperty(r("div"),"a",{get:function(){return 7}}).a}))},52650:(t,e,n)=>{"use strict";var i=n(51213),a=n(85264),r=n(55097),o=Object,s=i("".split);t.exports=a((function(){return!o("z").propertyIsEnumerable(0)}))?function(t){return"String"===r(t)?s(t,""):o(t)}:o},89933:(t,e,n)=>{"use strict";var i=n(51213),a=n(32094),r=n(52149),o=i(Function.toString);a(r.inspectSource)||(r.inspectSource=function(t){return o(t)}),t.exports=r.inspectSource},54436:(t,e,n)=>{"use strict";var i,a,r,o=n(95188),s=n(96019),c=n(1140),l=n(55842),u=n(76333),d=n(52149),h=n(20444),f=n(16079),g="Object already initialized",p=s.TypeError,b=s.WeakMap;if(o||d.state){var m=d.state||(d.state=new b);m.get=m.get,m.has=m.has,m.set=m.set,i=function(t,e){if(m.has(t))throw p(g);return e.facade=t,m.set(t,e),e},a=function(t){return m.get(t)||{}},r=function(t){return m.has(t)}}else{var y=h("state");f[y]=!0,i=function(t,e){if(u(t,y))throw p(g);return e.facade=t,l(t,y,e),e},a=function(t){return u(t,y)?t[y]:{}},r=function(t){return u(t,y)}}t.exports={set:i,get:a,has:r,enforce:function(t){return r(t)?a(t):i(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=a(e)).type!==t)throw p("Incompatible receiver, "+t+" required");return n}}}},32094:(t,e,n)=>{"use strict";var i=n(65004),a=i.all;t.exports=i.IS_HTMLDDA?function(t){return"function"==typeof t||t===a}:function(t){return"function"==typeof t}},3570:(t,e,n)=>{"use strict";var i=n(85264),a=n(32094),r=/#|\.prototype\./,o=function(t,e){var n=c[s(t)];return n===u||n!==l&&(a(e)?i(e):!!e)},s=o.normalize=function(t){return String(t).replace(r,".").toLowerCase()},c=o.data={},l=o.NATIVE="N",u=o.POLYFILL="P";t.exports=o},94049:t=>{"use strict";t.exports=function(t){return null==t}},1140:(t,e,n)=>{"use strict";var i=n(32094),a=n(65004),r=a.all;t.exports=a.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:i(t)||t===r}:function(t){return"object"==typeof t?null!==t:i(t)}},50596:t=>{"use strict";t.exports=!1},91776:(t,e,n)=>{"use strict";var i=n(14101),a=n(32094),r=n(55157),o=n(52988),s=Object;t.exports=o?function(t){return"symbol"==typeof t}:function(t){var e=i("Symbol");return a(e)&&r(e.prototype,s(t))}},59782:(t,e,n)=>{"use strict";var i=n(43832);t.exports=function(t){return i(t.length)}},47660:(t,e,n)=>{"use strict";var i=n(51213),a=n(85264),r=n(32094),o=n(76333),s=n(10617),c=n(94615).CONFIGURABLE,l=n(89933),u=n(54436),d=u.enforce,h=u.get,f=String,g=Object.defineProperty,p=i("".slice),b=i("".replace),m=i([].join),y=s&&!a((function(){return 8!==g((function(){}),"length",{value:8}).length})),v=String(String).split("String"),w=t.exports=function(t,e,n){"Symbol("===p(f(e),0,7)&&(e="["+b(f(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!o(t,"name")||c&&t.name!==e)&&(s?g(t,"name",{value:e,configurable:!0}):t.name=e),y&&n&&o(n,"arity")&&t.length!==n.arity&&g(t,"length",{value:n.arity});try{n&&o(n,"constructor")&&n.constructor?s&&g(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(a){}var i=d(t);return o(i,"source")||(i.source=m(v,"string"==typeof e?e:"")),t};Function.prototype.toString=w((function(){return r(this)&&h(this).source||l(this)}),"toString")},69662:t=>{"use strict";var e=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(t){var i=+t;return(i>0?n:e)(i)}},55250:(t,e,n)=>{"use strict";var i=n(10617),a=n(51213),r=n(26622),o=n(85264),s=n(11180),c=n(58551),l=n(18308),u=n(78713),d=n(52650),h=Object.assign,f=Object.defineProperty,g=a([].concat);t.exports=!h||o((function(){if(i&&1!==h({b:1},h(f({},"a",{enumerable:!0,get:function(){f(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol("assign detection"),a="abcdefghijklmnopqrst";return t[n]=7,a.split("").forEach((function(t){e[t]=t})),7!==h({},t)[n]||s(h({},e)).join("")!==a}))?function(t,e){for(var n=u(t),a=arguments.length,o=1,h=c.f,f=l.f;a>o;)for(var p,b=d(arguments[o++]),m=h?g(s(b),h(b)):s(b),y=m.length,v=0;y>v;)p=m[v++],i&&!r(f,b,p)||(n[p]=b[p]);return n}:h},45689:(t,e,n)=>{"use strict";var i=n(10617),a=n(84989),r=n(29178),o=n(47420),s=n(60604),c=TypeError,l=Object.defineProperty,u=Object.getOwnPropertyDescriptor,d="enumerable",h="configurable",f="writable";e.f=i?r?function(t,e,n){if(o(t),e=s(e),o(n),"function"==typeof t&&"prototype"===e&&"value"in n&&f in n&&!n.writable){var i=u(t,e);i&&i.writable&&(t[e]=n.value,n={configurable:h in n?n.configurable:i.configurable,enumerable:d in n?n.enumerable:i.enumerable,writable:!1})}return l(t,e,n)}:l:function(t,e,n){if(o(t),e=s(e),o(n),a)try{return l(t,e,n)}catch(i){}if("get"in n||"set"in n)throw c("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},96179:(t,e,n)=>{"use strict";var i=n(10617),a=n(26622),r=n(18308),o=n(67797),s=n(94607),c=n(60604),l=n(76333),u=n(84989),d=Object.getOwnPropertyDescriptor;e.f=i?d:function(t,e){if(t=s(t),e=c(e),u)try{return d(t,e)}catch(n){}if(l(t,e))return o(!a(r.f,t,e),t[e])}},26520:(t,e,n)=>{"use strict";var i=n(84379),a=n(2142).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,a)}},58551:(t,e)=>{"use strict";e.f=Object.getOwnPropertySymbols},55157:(t,e,n)=>{"use strict";var i=n(51213);t.exports=i({}.isPrototypeOf)},84379:(t,e,n)=>{"use strict";var i=n(51213),a=n(76333),r=n(94607),o=n(53260).indexOf,s=n(16079),c=i([].push);t.exports=function(t,e){var n,i=r(t),l=0,u=[];for(n in i)!a(s,n)&&a(i,n)&&c(u,n);for(;e.length>l;)a(i,n=e[l++])&&(~o(u,n)||c(u,n));return u}},11180:(t,e,n)=>{"use strict";var i=n(84379),a=n(2142);t.exports=Object.keys||function(t){return i(t,a)}},18308:(t,e)=>{"use strict";var n={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,a=i&&!n.call({1:2},1);e.f=a?function(t){var e=i(this,t);return!!e&&e.enumerable}:n},92779:(t,e,n)=>{"use strict";var i=n(26622),a=n(32094),r=n(1140),o=TypeError;t.exports=function(t,e){var n,s;if("string"===e&&a(n=t.toString)&&!r(s=i(n,t)))return s;if(a(n=t.valueOf)&&!r(s=i(n,t)))return s;if("string"!==e&&a(n=t.toString)&&!r(s=i(n,t)))return s;throw o("Can't convert object to primitive value")}},47560:(t,e,n)=>{"use strict";var i=n(14101),a=n(51213),r=n(26520),o=n(58551),s=n(47420),c=a([].concat);t.exports=i("Reflect","ownKeys")||function(t){var e=r.f(s(t)),n=o.f;return n?c(e,n(t)):e}},89021:(t,e,n)=>{"use strict";var i=n(96019);t.exports=i},5870:(t,e,n)=>{"use strict";var i=n(94049),a=TypeError;t.exports=function(t){if(i(t))throw a("Can't call method on "+t);return t}},20444:(t,e,n)=>{"use strict";var i=n(57928),a=n(90571),r=i("keys");t.exports=function(t){return r[t]||(r[t]=a(t))}},52149:(t,e,n)=>{"use strict";var i=n(96019),a=n(30336),r="__core-js_shared__",o=i[r]||a(r,{});t.exports=o},57928:(t,e,n)=>{"use strict";var i=n(50596),a=n(52149);(t.exports=function(t,e){return a[t]||(a[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.32.2",mode:i?"pure":"global",copyright:"\xa9 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.32.2/LICENSE",source:"https://github.com/zloirock/core-js"})},95435:(t,e,n)=>{"use strict";var i=n(63730),a=n(85264),r=n(96019).String;t.exports=!!Object.getOwnPropertySymbols&&!a((function(){var t=Symbol("symbol detection");return!r(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&i&&i<41}))},77:(t,e,n)=>{"use strict";var i=n(51382),a=Math.max,r=Math.min;t.exports=function(t,e){var n=i(t);return n<0?a(n+e,0):r(n,e)}},94607:(t,e,n)=>{"use strict";var i=n(52650),a=n(5870);t.exports=function(t){return i(a(t))}},51382:(t,e,n)=>{"use strict";var i=n(69662);t.exports=function(t){var e=+t;return e!=e||0===e?0:i(e)}},43832:(t,e,n)=>{"use strict";var i=n(51382),a=Math.min;t.exports=function(t){return t>0?a(i(t),9007199254740991):0}},78713:(t,e,n)=>{"use strict";var i=n(5870),a=Object;t.exports=function(t){return a(i(t))}},24392:(t,e,n)=>{"use strict";var i=n(26622),a=n(1140),r=n(91776),o=n(62114),s=n(92779),c=n(74267),l=TypeError,u=c("toPrimitive");t.exports=function(t,e){if(!a(t)||r(t))return t;var n,c=o(t,u);if(c){if(void 0===e&&(e="default"),n=i(c,t,e),!a(n)||r(n))return n;throw l("Can't convert object to primitive value")}return void 0===e&&(e="number"),s(t,e)}},60604:(t,e,n)=>{"use strict";var i=n(24392),a=n(91776);t.exports=function(t){var e=i(t,"string");return a(e)?e:e+""}},72526:t=>{"use strict";var e=String;t.exports=function(t){try{return e(t)}catch(n){return"Object"}}},90571:(t,e,n)=>{"use strict";var i=n(51213),a=0,r=Math.random(),o=i(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+o(++a+r,36)}},52988:(t,e,n)=>{"use strict";var i=n(95435);t.exports=i&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},29178:(t,e,n)=>{"use strict";var i=n(10617),a=n(85264);t.exports=i&&a((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},95188:(t,e,n)=>{"use strict";var i=n(96019),a=n(32094),r=i.WeakMap;t.exports=a(r)&&/native code/.test(String(r))},74267:(t,e,n)=>{"use strict";var i=n(96019),a=n(57928),r=n(76333),o=n(90571),s=n(95435),c=n(52988),l=i.Symbol,u=a("wks"),d=c?l.for||l:l&&l.withoutSetter||o;t.exports=function(t){return r(u,t)||(u[t]=s&&r(l,t)?l[t]:d("Symbol."+t)),u[t]}},35762:(t,e,n)=>{"use strict";var i=n(45100),a=n(55250);i({target:"Object",stat:!0,arity:2,forced:Object.assign!==a},{assign:a})},75878:(t,e,n)=>{"use strict";var i=n(76670);t.exports=i},29983:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.bodyOpenClassName=e.portalClassName=void 0;var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},a=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),r=n(67294),o=g(r),s=g(n(73935)),c=g(n(45697)),l=g(n(28747)),u=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(57149)),d=n(51112),h=g(d),f=n(46871);function g(t){return t&&t.__esModule?t:{default:t}}function p(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function b(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}var m=e.portalClassName="ReactModalPortal",y=e.bodyOpenClassName="ReactModal__Body--open",v=d.canUseDOM&&void 0!==s.default.createPortal,w=function(t){return document.createElement(t)},x=function(){return v?s.default.createPortal:s.default.unstable_renderSubtreeIntoContainer};function R(t){return t()}var _=function(t){function e(){var t,n,a;p(this,e);for(var r=arguments.length,c=Array(r),u=0;u<r;u++)c[u]=arguments[u];return n=a=b(this,(t=e.__proto__||Object.getPrototypeOf(e)).call.apply(t,[this].concat(c))),a.removePortal=function(){!v&&s.default.unmountComponentAtNode(a.node);var t=R(a.props.parentSelector);t&&t.contains(a.node)?t.removeChild(a.node):console.warn('React-Modal: "parentSelector" prop did not returned any DOM element. Make sure that the parent element is unmounted to avoid any memory leaks.')},a.portalRef=function(t){a.portal=t},a.renderPortal=function(t){var n=x()(a,o.default.createElement(l.default,i({defaultStyles:e.defaultStyles},t)),a.node);a.portalRef(n)},b(a,n)}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),a(e,[{key:"componentDidMount",value:function(){d.canUseDOM&&(v||(this.node=w("div")),this.node.className=this.props.portalClassName,R(this.props.parentSelector).appendChild(this.node),!v&&this.renderPortal(this.props))}},{key:"getSnapshotBeforeUpdate",value:function(t){return{prevParent:R(t.parentSelector),nextParent:R(this.props.parentSelector)}}},{key:"componentDidUpdate",value:function(t,e,n){if(d.canUseDOM){var i=this.props,a=i.isOpen,r=i.portalClassName;t.portalClassName!==r&&(this.node.className=r);var o=n.prevParent,s=n.nextParent;s!==o&&(o.removeChild(this.node),s.appendChild(this.node)),(t.isOpen||a)&&!v&&this.renderPortal(this.props)}}},{key:"componentWillUnmount",value:function(){if(d.canUseDOM&&this.node&&this.portal){var t=this.portal.state,e=Date.now(),n=t.isOpen&&this.props.closeTimeoutMS&&(t.closesAt||e+this.props.closeTimeoutMS);n?(t.beforeClose||this.portal.closeWithTimeout(),setTimeout(this.removePortal,n-e)):this.removePortal()}}},{key:"render",value:function(){return d.canUseDOM&&v?(!this.node&&v&&(this.node=w("div")),x()(o.default.createElement(l.default,i({ref:this.portalRef,defaultStyles:e.defaultStyles},this.props)),this.node)):null}}],[{key:"setAppElement",value:function(t){u.setElement(t)}}]),e}(r.Component);_.propTypes={isOpen:c.default.bool.isRequired,style:c.default.shape({content:c.default.object,overlay:c.default.object}),portalClassName:c.default.string,bodyOpenClassName:c.default.string,htmlOpenClassName:c.default.string,className:c.default.oneOfType([c.default.string,c.default.shape({base:c.default.string.isRequired,afterOpen:c.default.string.isRequired,beforeClose:c.default.string.isRequired})]),overlayClassName:c.default.oneOfType([c.default.string,c.default.shape({base:c.default.string.isRequired,afterOpen:c.default.string.isRequired,beforeClose:c.default.string.isRequired})]),appElement:c.default.oneOfType([c.default.instanceOf(h.default),c.default.instanceOf(d.SafeHTMLCollection),c.default.instanceOf(d.SafeNodeList),c.default.arrayOf(c.default.instanceOf(h.default))]),onAfterOpen:c.default.func,onRequestClose:c.default.func,closeTimeoutMS:c.default.number,ariaHideApp:c.default.bool,shouldFocusAfterRender:c.default.bool,shouldCloseOnOverlayClick:c.default.bool,shouldReturnFocusAfterClose:c.default.bool,preventScroll:c.default.bool,parentSelector:c.default.func,aria:c.default.object,data:c.default.object,role:c.default.string,contentLabel:c.default.string,shouldCloseOnEsc:c.default.bool,overlayRef:c.default.func,contentRef:c.default.func,id:c.default.string,overlayElement:c.default.func,contentElement:c.default.func},_.defaultProps={isOpen:!1,portalClassName:m,bodyOpenClassName:y,role:"dialog",ariaHideApp:!0,closeTimeoutMS:0,shouldFocusAfterRender:!0,shouldCloseOnEsc:!0,shouldCloseOnOverlayClick:!0,shouldReturnFocusAfterClose:!0,preventScroll:!1,parentSelector:function(){return document.body},overlayElement:function(t,e){return o.default.createElement("div",t,e)},contentElement:function(t,e){return o.default.createElement("div",t,e)}},_.defaultStyles={overlay:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(255, 255, 255, 0.75)"},content:{position:"absolute",top:"40px",left:"40px",right:"40px",bottom:"40px",border:"1px solid #ccc",background:"#fff",overflow:"auto",WebkitOverflowScrolling:"touch",borderRadius:"4px",outline:"none",padding:"20px"}},(0,f.polyfill)(_),e.default=_},28747:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=n(67294),s=b(n(45697)),c=p(n(99685)),l=b(n(88338)),u=p(n(57149)),d=p(n(32409)),h=n(51112),f=b(h),g=b(n(89623));function p(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function b(t){return t&&t.__esModule?t:{default:t}}n(35063);var m={overlay:"ReactModal__Overlay",content:"ReactModal__Content"},y=0,v=function(t){function e(t){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var n=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return n.setOverlayRef=function(t){n.overlay=t,n.props.overlayRef&&n.props.overlayRef(t)},n.setContentRef=function(t){n.content=t,n.props.contentRef&&n.props.contentRef(t)},n.afterClose=function(){var t=n.props,e=t.appElement,i=t.ariaHideApp,a=t.htmlOpenClassName,r=t.bodyOpenClassName;r&&d.remove(document.body,r),a&&d.remove(document.getElementsByTagName("html")[0],a),i&&y>0&&0===(y-=1)&&u.show(e),n.props.shouldFocusAfterRender&&(n.props.shouldReturnFocusAfterClose?(c.returnFocus(n.props.preventScroll),c.teardownScopedFocus()):c.popWithoutFocus()),n.props.onAfterClose&&n.props.onAfterClose(),g.default.deregister(n)},n.open=function(){n.beforeOpen(),n.state.afterOpen&&n.state.beforeClose?(clearTimeout(n.closeTimer),n.setState({beforeClose:!1})):(n.props.shouldFocusAfterRender&&(c.setupScopedFocus(n.node),c.markForFocusLater()),n.setState({isOpen:!0},(function(){n.openAnimationFrame=requestAnimationFrame((function(){n.setState({afterOpen:!0}),n.props.isOpen&&n.props.onAfterOpen&&n.props.onAfterOpen({overlayEl:n.overlay,contentEl:n.content})}))})))},n.close=function(){n.props.closeTimeoutMS>0?n.closeWithTimeout():n.closeWithoutTimeout()},n.focusContent=function(){return n.content&&!n.contentHasFocus()&&n.content.focus({preventScroll:!0})},n.closeWithTimeout=function(){var t=Date.now()+n.props.closeTimeoutMS;n.setState({beforeClose:!0,closesAt:t},(function(){n.closeTimer=setTimeout(n.closeWithoutTimeout,n.state.closesAt-Date.now())}))},n.closeWithoutTimeout=function(){n.setState({beforeClose:!1,isOpen:!1,afterOpen:!1,closesAt:null},n.afterClose)},n.handleKeyDown=function(t){9===t.keyCode&&(0,l.default)(n.content,t),n.props.shouldCloseOnEsc&&27===t.keyCode&&(t.stopPropagation(),n.requestClose(t))},n.handleOverlayOnClick=function(t){null===n.shouldClose&&(n.shouldClose=!0),n.shouldClose&&n.props.shouldCloseOnOverlayClick&&(n.ownerHandlesClose()?n.requestClose(t):n.focusContent()),n.shouldClose=null},n.handleContentOnMouseUp=function(){n.shouldClose=!1},n.handleOverlayOnMouseDown=function(t){n.props.shouldCloseOnOverlayClick||t.target!=n.overlay||t.preventDefault()},n.handleContentOnClick=function(){n.shouldClose=!1},n.handleContentOnMouseDown=function(){n.shouldClose=!1},n.requestClose=function(t){return n.ownerHandlesClose()&&n.props.onRequestClose(t)},n.ownerHandlesClose=function(){return n.props.onRequestClose},n.shouldBeClosed=function(){return!n.state.isOpen&&!n.state.beforeClose},n.contentHasFocus=function(){return document.activeElement===n.content||n.content.contains(document.activeElement)},n.buildClassName=function(t,e){var i="object"===(void 0===e?"undefined":a(e))?e:{base:m[t],afterOpen:m[t]+"--after-open",beforeClose:m[t]+"--before-close"},r=i.base;return n.state.afterOpen&&(r=r+" "+i.afterOpen),n.state.beforeClose&&(r=r+" "+i.beforeClose),"string"==typeof e&&e?r+" "+e:r},n.attributesFromObject=function(t,e){return Object.keys(e).reduce((function(n,i){return n[t+"-"+i]=e[i],n}),{})},n.state={afterOpen:!1,beforeClose:!1},n.shouldClose=null,n.moveFromContentToOverlay=null,n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),r(e,[{key:"componentDidMount",value:function(){this.props.isOpen&&this.open()}},{key:"componentDidUpdate",value:function(t,e){this.props.isOpen&&!t.isOpen?this.open():!this.props.isOpen&&t.isOpen&&this.close(),this.props.shouldFocusAfterRender&&this.state.isOpen&&!e.isOpen&&this.focusContent()}},{key:"componentWillUnmount",value:function(){this.state.isOpen&&this.afterClose(),clearTimeout(this.closeTimer),cancelAnimationFrame(this.openAnimationFrame)}},{key:"beforeOpen",value:function(){var t=this.props,e=t.appElement,n=t.ariaHideApp,i=t.htmlOpenClassName,a=t.bodyOpenClassName;a&&d.add(document.body,a),i&&d.add(document.getElementsByTagName("html")[0],i),n&&(y+=1,u.hide(e)),g.default.register(this)}},{key:"render",value:function(){var t=this.props,e=t.id,n=t.className,a=t.overlayClassName,r=t.defaultStyles,o=t.children,s=n?{}:r.content,c=a?{}:r.overlay;if(this.shouldBeClosed())return null;var l={ref:this.setOverlayRef,className:this.buildClassName("overlay",a),style:i({},c,this.props.style.overlay),onClick:this.handleOverlayOnClick,onMouseDown:this.handleOverlayOnMouseDown},u=i({id:e,ref:this.setContentRef,style:i({},s,this.props.style.content),className:this.buildClassName("content",n),tabIndex:"-1",onKeyDown:this.handleKeyDown,onMouseDown:this.handleContentOnMouseDown,onMouseUp:this.handleContentOnMouseUp,onClick:this.handleContentOnClick,role:this.props.role,"aria-label":this.props.contentLabel},this.attributesFromObject("aria",i({modal:!0},this.props.aria)),this.attributesFromObject("data",this.props.data||{}),{"data-testid":this.props.testId}),d=this.props.contentElement(u,o);return this.props.overlayElement(l,d)}}]),e}(o.Component);v.defaultProps={style:{overlay:{},content:{}},defaultStyles:{}},v.propTypes={isOpen:s.default.bool.isRequired,defaultStyles:s.default.shape({content:s.default.object,overlay:s.default.object}),style:s.default.shape({content:s.default.object,overlay:s.default.object}),className:s.default.oneOfType([s.default.string,s.default.object]),overlayClassName:s.default.oneOfType([s.default.string,s.default.object]),bodyOpenClassName:s.default.string,htmlOpenClassName:s.default.string,ariaHideApp:s.default.bool,appElement:s.default.oneOfType([s.default.instanceOf(f.default),s.default.instanceOf(h.SafeHTMLCollection),s.default.instanceOf(h.SafeNodeList),s.default.arrayOf(s.default.instanceOf(f.default))]),onAfterOpen:s.default.func,onAfterClose:s.default.func,onRequestClose:s.default.func,closeTimeoutMS:s.default.number,shouldFocusAfterRender:s.default.bool,shouldCloseOnOverlayClick:s.default.bool,shouldReturnFocusAfterClose:s.default.bool,preventScroll:s.default.bool,role:s.default.string,contentLabel:s.default.string,aria:s.default.object,data:s.default.object,children:s.default.node,shouldCloseOnEsc:s.default.bool,overlayRef:s.default.func,contentRef:s.default.func,id:s.default.string,overlayElement:s.default.func,contentElement:s.default.func,testId:s.default.string},e.default=v,t.exports=e.default},57149:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.resetState=function(){s&&(s.removeAttribute?s.removeAttribute("aria-hidden"):null!=s.length?s.forEach((function(t){return t.removeAttribute("aria-hidden")})):document.querySelectorAll(s).forEach((function(t){return t.removeAttribute("aria-hidden")})));s=null},e.log=function(){0},e.assertNodeList=c,e.setElement=function(t){var e=t;if("string"==typeof e&&o.canUseDOM){var n=document.querySelectorAll(e);c(n,e),e=n}return s=e||s},e.validateElement=l,e.hide=function(t){var e=!0,n=!1,i=void 0;try{for(var a,r=l(t)[Symbol.iterator]();!(e=(a=r.next()).done);e=!0){a.value.setAttribute("aria-hidden","true")}}catch(o){n=!0,i=o}finally{try{!e&&r.return&&r.return()}finally{if(n)throw i}}},e.show=function(t){var e=!0,n=!1,i=void 0;try{for(var a,r=l(t)[Symbol.iterator]();!(e=(a=r.next()).done);e=!0){a.value.removeAttribute("aria-hidden")}}catch(o){n=!0,i=o}finally{try{!e&&r.return&&r.return()}finally{if(n)throw i}}},e.documentNotReadyOrSSRTesting=function(){s=null};var i,a=n(42473),r=(i=a)&&i.__esModule?i:{default:i},o=n(51112);var s=null;function c(t,e){if(!t||!t.length)throw new Error("react-modal: No elements were found for selector "+e+".")}function l(t){var e=t||s;return e?Array.isArray(e)||e instanceof HTMLCollection||e instanceof NodeList?e:[e]:((0,r.default)(!1,["react-modal: App element is not defined.","Please use `Modal.setAppElement(el)` or set `appElement={el}`.","This is needed so screen readers don't see main content","when modal is opened. It is not recommended, but you can opt-out","by setting `ariaHideApp={false}`."].join(" ")),[])}},35063:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.resetState=function(){for(var t=[o,s],e=0;e<t.length;e++){var n=t[e];n&&(n.parentNode&&n.parentNode.removeChild(n))}o=s=null,c=[]},e.log=function(){console.log("bodyTrap ----------"),console.log(c.length);for(var t=[o,s],e=0;e<t.length;e++){var n=t[e]||{};console.log(n.nodeName,n.className,n.id)}console.log("edn bodyTrap ----------")};var i,a=n(89623),r=(i=a)&&i.__esModule?i:{default:i};var o=void 0,s=void 0,c=[];function l(){0!==c.length&&c[c.length-1].focusContent()}r.default.subscribe((function(t,e){o||s||((o=document.createElement("div")).setAttribute("data-react-modal-body-trap",""),o.style.position="absolute",o.style.opacity="0",o.setAttribute("tabindex","0"),o.addEventListener("focus",l),(s=o.cloneNode()).addEventListener("focus",l)),(c=e).length>0?(document.body.firstChild!==o&&document.body.insertBefore(o,document.body.firstChild),document.body.lastChild!==s&&document.body.appendChild(s)):(o.parentElement&&o.parentElement.removeChild(o),s.parentElement&&s.parentElement.removeChild(s))}))},32409:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.resetState=function(){var t=document.getElementsByTagName("html")[0];for(var e in n)a(t,n[e]);var r=document.body;for(var o in i)a(r,i[o]);n={},i={}},e.log=function(){0};var n={},i={};function a(t,e){t.classList.remove(e)}e.add=function(t,e){return a=t.classList,r="html"==t.nodeName.toLowerCase()?n:i,void e.split(" ").forEach((function(t){!function(t,e){t[e]||(t[e]=0),t[e]+=1}(r,t),a.add(t)}));var a,r},e.remove=function(t,e){return a=t.classList,r="html"==t.nodeName.toLowerCase()?n:i,void e.split(" ").forEach((function(t){!function(t,e){t[e]&&(t[e]-=1)}(r,t),0===r[t]&&a.remove(t)}));var a,r}},99685:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.resetState=function(){o=[]},e.log=function(){0},e.handleBlur=l,e.handleFocus=u,e.markForFocusLater=function(){o.push(document.activeElement)},e.returnFocus=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=null;try{return void(0!==o.length&&(e=o.pop()).focus({preventScroll:t}))}catch(n){console.warn(["You tried to return focus to",e,"but it is not in the DOM anymore"].join(" "))}},e.popWithoutFocus=function(){o.length>0&&o.pop()},e.setupScopedFocus=function(t){s=t,window.addEventListener?(window.addEventListener("blur",l,!1),document.addEventListener("focus",u,!0)):(window.attachEvent("onBlur",l),document.attachEvent("onFocus",u))},e.teardownScopedFocus=function(){s=null,window.addEventListener?(window.removeEventListener("blur",l),document.removeEventListener("focus",u)):(window.detachEvent("onBlur",l),document.detachEvent("onFocus",u))};var i,a=n(37845),r=(i=a)&&i.__esModule?i:{default:i};var o=[],s=null,c=!1;function l(){c=!0}function u(){if(c){if(c=!1,!s)return;setTimeout((function(){s.contains(document.activeElement)||((0,r.default)(s)[0]||s).focus()}),0)}}},89623:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.log=function(){console.log("portalOpenInstances ----------"),console.log(i.openInstances.length),i.openInstances.forEach((function(t){return console.log(t)})),console.log("end portalOpenInstances ----------")},e.resetState=function(){i=new n};var n=function t(){var e=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.register=function(t){-1===e.openInstances.indexOf(t)&&(e.openInstances.push(t),e.emit("register"))},this.deregister=function(t){var n=e.openInstances.indexOf(t);-1!==n&&(e.openInstances.splice(n,1),e.emit("deregister"))},this.subscribe=function(t){e.subscribers.push(t)},this.emit=function(t){e.subscribers.forEach((function(n){return n(t,e.openInstances.slice())}))},this.openInstances=[],this.subscribers=[]},i=new n;e.default=i},51112:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.canUseDOM=e.SafeNodeList=e.SafeHTMLCollection=void 0;var i,a=n(58875);var r=((i=a)&&i.__esModule?i:{default:i}).default,o=r.canUseDOM?window.HTMLElement:{};e.SafeHTMLCollection=r.canUseDOM?window.HTMLCollection:{},e.SafeNodeList=r.canUseDOM?window.NodeList:{},e.canUseDOM=r.canUseDOM;e.default=o},88338:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){var n=(0,r.default)(t);if(!n.length)return void e.preventDefault();var i=void 0,a=e.shiftKey,s=n[0],c=n[n.length-1],l=o();if(t===l){if(!a)return;i=c}c!==l||a||(i=s);s===l&&a&&(i=c);if(i)return e.preventDefault(),void i.focus();var u=/(\bChrome\b|\bSafari\b)\//.exec(navigator.userAgent);if(null==u||"Chrome"==u[1]||null!=/\biPod\b|\biPad\b/g.exec(navigator.userAgent))return;var d=n.indexOf(l);d>-1&&(d+=a?-1:1);if(void 0===(i=n[d]))return e.preventDefault(),void(i=a?c:s).focus();e.preventDefault(),i.focus()};var i,a=n(37845),r=(i=a)&&i.__esModule?i:{default:i};function o(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;return t.activeElement.shadowRoot?o(t.activeElement.shadowRoot):t.activeElement}t.exports=e.default},37845:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function t(e){var n=[].slice.call(e.querySelectorAll("*"),0).reduce((function(e,n){return e.concat(n.shadowRoot?t(n.shadowRoot):[n])}),[]);return n.filter(r)};var n=/input|select|textarea|button|object|iframe/;function i(t){var e=t.offsetWidth<=0&&t.offsetHeight<=0;if(e&&!t.innerHTML)return!0;try{var n=window.getComputedStyle(t);return e?"visible"!==n.getPropertyValue("overflow")||t.scrollWidth<=0&&t.scrollHeight<=0:"none"==n.getPropertyValue("display")}catch(i){return console.warn("Failed to inspect element style"),!1}}function a(t,e){var a=t.nodeName.toLowerCase();return(n.test(a)&&!t.disabled||"a"===a&&t.href||e)&&function(t){for(var e=t,n=t.getRootNode&&t.getRootNode();e&&e!==document.body;){if(n&&e===n&&(e=n.host.parentNode),i(e))return!1;e=e.parentNode}return!0}(t)}function r(t){var e=t.getAttribute("tabindex");null===e&&(e=void 0);var n=isNaN(e);return(n||e>=0)&&a(t,!n)}t.exports=e.default},83253:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i,a=n(29983),r=(i=a)&&i.__esModule?i:{default:i};e.default=r.default,t.exports=e.default},40460:function(t,e,n){"use strict";var i,a=this&&this.__extends||(i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},i(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),r=this&&this.__assign||function(){return r=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var a in e=arguments[n])Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t},r.apply(this,arguments)},o=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,a)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),s=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),c=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&o(e,t,n);return s(e,t),e},l=this&&this.__rest||function(t,e){var n={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(i=Object.getOwnPropertySymbols(t);a<i.length;a++)e.indexOf(i[a])<0&&Object.prototype.propertyIsEnumerable.call(t,i[a])&&(n[i[a]]=t[i[a]])}return n};Object.defineProperty(e,"__esModule",{value:!0});var u=c(n(67294)),d=90,h=219,f=222,g=192,p=100,b="undefined"!=typeof window&&"navigator"in window&&/Win/i.test(navigator.platform),m="undefined"!=typeof window&&"navigator"in window&&/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform),y="npm__react-simple-code-editor__textarea",v="\n/**\n * Reset the text fill color so that placeholder is visible\n */\n.".concat(y,":empty {\n -webkit-text-fill-color: inherit !important;\n}\n\n/**\n * Hack to apply on some CSS on IE10 and IE11\n */\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n /**\n * IE doesn't support '-webkit-text-fill-color'\n * So we use 'color: transparent' to make the text transparent on IE\n * Unlike other browsers, it doesn't affect caret color in IE\n */\n .").concat(y," {\n color: transparent !important;\n }\n\n .").concat(y,"::selection {\n background-color: #accef7 !important;\n color: transparent !important;\n }\n}\n"),w=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.state={capture:!0},e._recordCurrentState=function(){var t=e._input;if(t){var n=t.value,i=t.selectionStart,a=t.selectionEnd;e._recordChange({value:n,selectionStart:i,selectionEnd:a})}},e._getLines=function(t,e){return t.substring(0,e).split("\n")},e._recordChange=function(t,n){var i,a,o;void 0===n&&(n=!1);var s=e._history,c=s.stack,l=s.offset;if(c.length&&l>-1){e._history.stack=c.slice(0,l+1);var u=e._history.stack.length;if(u>p){var d=u-p;e._history.stack=c.slice(d,u),e._history.offset=Math.max(e._history.offset-d,0)}}var h=Date.now();if(n){var f=e._history.stack[e._history.offset];if(f&&h-f.timestamp<3e3){var g=/[^a-z0-9]([a-z0-9]+)$/i,b=null===(i=e._getLines(f.value,f.selectionStart).pop())||void 0===i?void 0:i.match(g),m=null===(a=e._getLines(t.value,t.selectionStart).pop())||void 0===a?void 0:a.match(g);if((null==b?void 0:b[1])&&(null===(o=null==m?void 0:m[1])||void 0===o?void 0:o.startsWith(b[1])))return void(e._history.stack[e._history.offset]=r(r({},t),{timestamp:h}))}}e._history.stack.push(r(r({},t),{timestamp:h})),e._history.offset++},e._updateInput=function(t){var n=e._input;n&&(n.value=t.value,n.selectionStart=t.selectionStart,n.selectionEnd=t.selectionEnd,e.props.onValueChange(t.value))},e._applyEdits=function(t){var n=e._input,i=e._history.stack[e._history.offset];i&&n&&(e._history.stack[e._history.offset]=r(r({},i),{selectionStart:n.selectionStart,selectionEnd:n.selectionEnd})),e._recordChange(t),e._updateInput(t)},e._undoEdit=function(){var t=e._history,n=t.stack,i=t.offset,a=n[i-1];a&&(e._updateInput(a),e._history.offset=Math.max(i-1,0))},e._redoEdit=function(){var t=e._history,n=t.stack,i=t.offset,a=n[i+1];a&&(e._updateInput(a),e._history.offset=Math.min(i+1,n.length-1))},e._handleKeyDown=function(t){var n=e.props,i=n.tabSize,a=n.insertSpaces,r=n.ignoreTabKey,o=n.onKeyDown;if(!o||(o(t),!t.defaultPrevented)){27===t.keyCode&&t.currentTarget.blur();var s=t.currentTarget,c=s.value,l=s.selectionStart,u=s.selectionEnd,p=(a?" ":"\t").repeat(i);if(9===t.keyCode&&!r&&e.state.capture)if(t.preventDefault(),t.shiftKey){var y=(R=e._getLines(c,l)).length-1,v=e._getLines(c,u).length-1,w=c.split("\n").map((function(t,e){return e>=y&&e<=v&&t.startsWith(p)?t.substring(p.length):t})).join("\n");if(c!==w){var x=R[y];e._applyEdits({value:w,selectionStart:(null==x?void 0:x.startsWith(p))?l-p.length:l,selectionEnd:u-(c.length-w.length)})}}else if(l!==u){var R,_=(R=e._getLines(c,l)).length-1,k=e._getLines(c,u).length-1;x=R[_];e._applyEdits({value:c.split("\n").map((function(t,e){return e>=_&&e<=k?p+t:t})).join("\n"),selectionStart:x&&/\S/.test(x)?l+p.length:l,selectionEnd:u+p.length*(k-_+1)})}else{var E=l+p.length;e._applyEdits({value:c.substring(0,l)+p+c.substring(u),selectionStart:E,selectionEnd:E})}else if(8===t.keyCode){var C=l!==u;if(c.substring(0,l).endsWith(p)&&!C){t.preventDefault();E=l-p.length;e._applyEdits({value:c.substring(0,l-p.length)+c.substring(u),selectionStart:E,selectionEnd:E})}}else if(13===t.keyCode){if(l===u){var S=e._getLines(c,l).pop(),T=null==S?void 0:S.match(/^\s+/);if(null==T?void 0:T[0]){t.preventDefault();var A="\n"+T[0];E=l+A.length;e._applyEdits({value:c.substring(0,l)+A+c.substring(u),selectionStart:E,selectionEnd:E})}}}else if(57===t.keyCode||t.keyCode===h||t.keyCode===f||t.keyCode===g){var D=void 0;57===t.keyCode&&t.shiftKey?D=["(",")"]:t.keyCode===h?D=t.shiftKey?["{","}"]:["[","]"]:t.keyCode===f?D=t.shiftKey?['"','"']:["'","'"]:t.keyCode!==g||t.shiftKey||(D=["`","`"]),l!==u&&D&&(t.preventDefault(),e._applyEdits({value:c.substring(0,l)+D[0]+c.substring(l,u)+D[1]+c.substring(u),selectionStart:l,selectionEnd:u+2}))}else!(m?t.metaKey&&t.keyCode===d:t.ctrlKey&&t.keyCode===d)||t.shiftKey||t.altKey?(m?t.metaKey&&t.keyCode===d&&t.shiftKey:b?t.ctrlKey&&89===t.keyCode:t.ctrlKey&&t.keyCode===d&&t.shiftKey)&&!t.altKey?(t.preventDefault(),e._redoEdit()):77!==t.keyCode||!t.ctrlKey||m&&!t.shiftKey||(t.preventDefault(),e.setState((function(t){return{capture:!t.capture}}))):(t.preventDefault(),e._undoEdit())}},e._handleChange=function(t){var n=t.currentTarget,i=n.value,a=n.selectionStart,r=n.selectionEnd;e._recordChange({value:i,selectionStart:a,selectionEnd:r},!0),e.props.onValueChange(i)},e._history={stack:[],offset:-1},e._input=null,e}return a(e,t),e.prototype.componentDidMount=function(){this._recordCurrentState()},Object.defineProperty(e.prototype,"session",{get:function(){return{history:this._history}},set:function(t){this._history=t.history},enumerable:!1,configurable:!0}),e.prototype.render=function(){var t=this,e=this.props,n=e.value,i=e.style,a=e.padding,o=e.highlight,s=e.textareaId,c=e.textareaClassName,d=e.autoFocus,h=e.disabled,f=e.form,g=e.maxLength,p=e.minLength,b=e.name,m=e.placeholder,w=e.readOnly,R=e.required,_=e.onClick,k=e.onFocus,E=e.onBlur,C=e.onKeyUp,S=(e.onKeyDown,e.onValueChange,e.tabSize,e.insertSpaces,e.ignoreTabKey,e.preClassName),T=l(e,["value","style","padding","highlight","textareaId","textareaClassName","autoFocus","disabled","form","maxLength","minLength","name","placeholder","readOnly","required","onClick","onFocus","onBlur","onKeyUp","onKeyDown","onValueChange","tabSize","insertSpaces","ignoreTabKey","preClassName"]),A={paddingTop:a,paddingRight:a,paddingBottom:a,paddingLeft:a},D=o(n);return u.createElement("div",r({},T,{style:r(r({},x.container),i)}),u.createElement("textarea",{ref:function(e){return t._input=e},style:r(r(r({},x.editor),x.textarea),A),className:y+(c?" ".concat(c):""),id:s,value:n,onChange:this._handleChange,onKeyDown:this._handleKeyDown,onClick:_,onKeyUp:C,onFocus:k,onBlur:E,disabled:h,form:f,maxLength:g,minLength:p,name:b,placeholder:m,readOnly:w,required:R,autoFocus:d,autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"data-gramm":!1}),u.createElement("pre",r({className:S,"aria-hidden":"true",style:r(r(r({},x.editor),x.highlight),A)},"string"==typeof D?{dangerouslySetInnerHTML:{__html:D+"<br />"}}:{children:D})),u.createElement("style",{type:"text/css",dangerouslySetInnerHTML:{__html:v}}))},e.defaultProps={tabSize:2,insertSpaces:!0,ignoreTabKey:!1,padding:0},e}(u.Component);e.default=w;var x={container:{position:"relative",textAlign:"left",boxSizing:"border-box",padding:0,overflow:"hidden"},textarea:{position:"absolute",top:0,left:0,height:"100%",width:"100%",resize:"none",color:"inherit",overflow:"hidden",MozOsxFontSmoothing:"grayscale",WebkitFontSmoothing:"antialiased",WebkitTextFillColor:"transparent"},highlight:{position:"relative",pointerEvents:"none"},editor:{margin:0,border:0,background:"none",boxSizing:"inherit",display:"inherit",fontFamily:"inherit",fontSize:"inherit",fontStyle:"inherit",fontVariantLigatures:"inherit",fontWeight:"inherit",letterSpacing:"inherit",lineHeight:"inherit",tabSize:"inherit",textIndent:"inherit",textRendering:"inherit",textTransform:"inherit",whiteSpace:"pre-wrap",wordBreak:"keep-all",overflowWrap:"break-word"}}},46962:(t,e,n)=>{const i=n(78776)();i.addRange(0,127),t.exports=i},60270:(t,e,n)=>{const i=n(78776)();i.addRange(48,57).addRange(65,70).addRange(97,102),t.exports=i},26969:(t,e,n)=>{const i=n(78776)(170,181,186,748,750,837,895,902,908,1369,1471,1479,1791,2042,2482,2510,2519,2556,2641,2654,2768,2929,2972,3024,3031,3165,3406,3517,3542,3661,3716,3749,3782,3789,3840,4152,4295,4301,4696,4800,6103,6108,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,11823,42963,43205,43259,43471,43712,43714,64318,67592,67644,69415,69826,70006,70106,70108,70199,70206,70280,70480,70487,70855,71232,71236,71352,71945,72161,72349,72768,73018,73027,73112,73648,94179,113822,119970,119995,120134,123214,125255,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1456,1469).addRange(1473,1474).addRange(1476,1477).addRange(1488,1514).addRange(1519,1522).addRange(1552,1562).addRange(1568,1623).addRange(1625,1631).addRange(1646,1747).addRange(1749,1756).addRange(1761,1768).addRange(1773,1775).addRange(1786,1788).addRange(1808,1855).addRange(1869,1969).addRange(1994,2026).addRange(2036,2037).addRange(2048,2071).addRange(2074,2092).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2249).addRange(2260,2271).addRange(2275,2281).addRange(2288,2363).addRange(2365,2380).addRange(2382,2384).addRange(2389,2403).addRange(2417,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472),i.addRange(2474,2480).addRange(2486,2489).addRange(2493,2500).addRange(2503,2504).addRange(2507,2508).addRange(2524,2525).addRange(2527,2531).addRange(2544,2545).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2636).addRange(2649,2652).addRange(2672,2677).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2749,2757).addRange(2759,2761).addRange(2763,2764).addRange(2784,2787).addRange(2809,2812).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2877,2884).addRange(2887,2888).addRange(2891,2892).addRange(2902,2903).addRange(2908,2909).addRange(2911,2915).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970),i.addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3020).addRange(3072,3075).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3133,3140).addRange(3142,3144).addRange(3146,3148).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3200,3203).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3261,3268).addRange(3270,3272).addRange(3274,3276).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3313,3314).addRange(3328,3340).addRange(3342,3344).addRange(3346,3386).addRange(3389,3396).addRange(3398,3400).addRange(3402,3404).addRange(3412,3415).addRange(3423,3427).addRange(3450,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3570,3571).addRange(3585,3642).addRange(3648,3654).addRange(3713,3714),i.addRange(3718,3722).addRange(3724,3747).addRange(3751,3769).addRange(3771,3773).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3953,3969).addRange(3976,3991).addRange(3993,4028).addRange(4096,4150).addRange(4155,4159).addRange(4176,4239).addRange(4250,4253).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5907).addRange(5919,5939).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6067).addRange(6070,6088).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430),i.addRange(6432,6443).addRange(6448,6456).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6683).addRange(6688,6750).addRange(6753,6772).addRange(6847,6848).addRange(6860,6862).addRange(6912,6963).addRange(6965,6979).addRange(6981,6988).addRange(7040,7081).addRange(7084,7087).addRange(7098,7141).addRange(7143,7153).addRange(7168,7222).addRange(7245,7247).addRange(7258,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7655,7668).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8505).addRange(8508,8511).addRange(8517,8521),i.addRange(8544,8584).addRange(9398,9449).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11775).addRange(12293,12295).addRange(12321,12329).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42612,42619).addRange(42623,42735).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43013).addRange(43015,43047).addRange(43072,43123).addRange(43136,43203).addRange(43250,43255).addRange(43261,43263).addRange(43274,43306).addRange(43312,43346),i.addRange(43360,43388).addRange(43392,43442).addRange(43444,43455).addRange(43488,43503).addRange(43514,43518).addRange(43520,43574).addRange(43584,43597).addRange(43616,43638).addRange(43642,43710).addRange(43739,43741).addRange(43744,43759).addRange(43762,43765).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44010).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613),i.addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295),i.addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68864,68903).addRange(69248,69289).addRange(69291,69292).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69632,69701).addRange(69745,69749).addRange(69762,69816).addRange(69840,69864).addRange(69888,69938).addRange(69956,69959).addRange(69968,70002).addRange(70016,70079).addRange(70081,70084).addRange(70094,70095).addRange(70144,70161).addRange(70163,70196).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70376).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70461,70468).addRange(70471,70472).addRange(70475,70476).addRange(70493,70499).addRange(70656,70721).addRange(70723,70725).addRange(70727,70730).addRange(70751,70753).addRange(70784,70849).addRange(70852,70853),i.addRange(71040,71093).addRange(71096,71102).addRange(71128,71133).addRange(71168,71230).addRange(71296,71349).addRange(71424,71450).addRange(71453,71466).addRange(71488,71494).addRange(71680,71736).addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,71996).addRange(71999,72002).addRange(72096,72103).addRange(72106,72151).addRange(72154,72159).addRange(72163,72164).addRange(72192,72242).addRange(72245,72254).addRange(72272,72343).addRange(72368,72440).addRange(72704,72712).addRange(72714,72758).addRange(72760,72766).addRange(72818,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73025).addRange(73030,73031).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73110).addRange(73440,73462).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766),i.addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94177).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744),i.addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(127280,127305).addRange(127312,127337).addRange(127344,127369).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},22499:(t,e,n)=>{const i=n(78776)();i.addRange(0,1114111),t.exports=i},9213:(t,e,n)=>{const i=n(78776)(908,2142,2482,2519,2620,2641,2654,2768,2972,3024,3031,3165,3517,3530,3542,3716,3749,3782,4295,4301,4696,4800,6464,8025,8027,8029,11559,11565,42963,64318,64975,65279,65952,67592,67644,67903,69837,70280,70480,70487,71945,73018,73648,119970,119995,120134,123647,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590,129008,917505);i.addRange(0,887).addRange(890,895).addRange(900,906).addRange(910,929).addRange(931,1327).addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(1425,1479).addRange(1488,1514).addRange(1519,1524).addRange(1536,1805).addRange(1807,1866).addRange(1869,1969).addRange(1984,2042).addRange(2045,2093).addRange(2096,2110).addRange(2112,2139).addRange(2144,2154).addRange(2160,2190).addRange(2192,2193).addRange(2200,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525).addRange(2527,2531).addRange(2534,2558).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2678).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736),i.addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2801).addRange(2809,2815).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2935).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3066).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3191,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257),i.addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3314).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3407).addRange(3412,3427).addRange(3430,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3572).addRange(3585,3642).addRange(3647,3675).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3789).addRange(3792,3801).addRange(3804,3807).addRange(3840,3911).addRange(3913,3948).addRange(3953,3991).addRange(3993,4028).addRange(4030,4044).addRange(4046,4058).addRange(4096,4293).addRange(4304,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805),i.addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4988).addRange(4992,5017).addRange(5024,5109).addRange(5112,5117).addRange(5120,5788).addRange(5792,5880).addRange(5888,5909).addRange(5919,5942).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6109).addRange(6112,6121).addRange(6128,6137).addRange(6144,6169).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6468,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6683).addRange(6686,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6816,6829).addRange(6832,6862).addRange(6912,6988).addRange(6992,7038).addRange(7040,7155).addRange(7164,7223).addRange(7227,7241).addRange(7245,7304).addRange(7312,7354).addRange(7357,7367).addRange(7376,7418).addRange(7424,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013),i.addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190).addRange(8192,8292).addRange(8294,8305).addRange(8308,8334).addRange(8336,8348).addRange(8352,8384).addRange(8400,8432).addRange(8448,8587).addRange(8592,9254).addRange(9280,9290).addRange(9312,11123).addRange(11126,11157).addRange(11159,11507).addRange(11513,11557).addRange(11568,11623).addRange(11631,11632).addRange(11647,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11869).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12283).addRange(12288,12351).addRange(12353,12438).addRange(12441,12543).addRange(12549,12591).addRange(12593,12686).addRange(12688,12771).addRange(12784,12830).addRange(12832,42124).addRange(42128,42182).addRange(42192,42539).addRange(42560,42743).addRange(42752,42954).addRange(42960,42961),i.addRange(42965,42969).addRange(42994,43052).addRange(43056,43065).addRange(43072,43127).addRange(43136,43205).addRange(43214,43225).addRange(43232,43347).addRange(43359,43388).addRange(43392,43469).addRange(43471,43481).addRange(43486,43518).addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43612,43714).addRange(43739,43766).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43883).addRange(43888,44013).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(55296,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64450).addRange(64467,64911).addRange(64914,64967).addRange(65008,65049).addRange(65056,65106).addRange(65108,65126).addRange(65128,65131).addRange(65136,65140).addRange(65142,65276).addRange(65281,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65504,65510).addRange(65512,65518),i.addRange(65529,65533).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65792,65794).addRange(65799,65843).addRange(65847,65934).addRange(65936,65948).addRange(66e3,66045).addRange(66176,66204).addRange(66208,66256).addRange(66272,66299).addRange(66304,66339).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66463,66499).addRange(66504,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66927,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67671,67742).addRange(67751,67759).addRange(67808,67826).addRange(67828,67829).addRange(67835,67867),i.addRange(67871,67897).addRange(67968,68023).addRange(68028,68047).addRange(68050,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68159,68168).addRange(68176,68184).addRange(68192,68255).addRange(68288,68326).addRange(68331,68342).addRange(68352,68405).addRange(68409,68437).addRange(68440,68466).addRange(68472,68497).addRange(68505,68508).addRange(68521,68527).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68858,68903).addRange(68912,68921).addRange(69216,69246).addRange(69248,69289).addRange(69291,69293).addRange(69296,69297).addRange(69376,69415).addRange(69424,69465).addRange(69488,69513).addRange(69552,69579).addRange(69600,69622).addRange(69632,69709).addRange(69714,69749).addRange(69759,69826).addRange(69840,69864).addRange(69872,69881).addRange(69888,69940).addRange(69942,69959).addRange(69968,70006).addRange(70016,70111).addRange(70113,70132).addRange(70144,70161).addRange(70163,70206).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313).addRange(70320,70378),i.addRange(70384,70393).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(70656,70747).addRange(70749,70753).addRange(70784,70855).addRange(70864,70873).addRange(71040,71093).addRange(71096,71133).addRange(71168,71236).addRange(71248,71257).addRange(71264,71276).addRange(71296,71353).addRange(71360,71369).addRange(71424,71450).addRange(71453,71467).addRange(71472,71494).addRange(71680,71739).addRange(71840,71922).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72006).addRange(72016,72025).addRange(72096,72103).addRange(72106,72151).addRange(72154,72164).addRange(72192,72263).addRange(72272,72354).addRange(72368,72440).addRange(72704,72712).addRange(72714,72758).addRange(72760,72773).addRange(72784,72812).addRange(72816,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966),i.addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129).addRange(73440,73464).addRange(73664,73713).addRange(73727,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075).addRange(77712,77810).addRange(77824,78894).addRange(78896,78904).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92782,92862).addRange(92864,92873).addRange(92880,92909).addRange(92912,92917).addRange(92928,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071).addRange(93760,93850).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94180).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788),i.addRange(113792,113800).addRange(113808,113817).addRange(113820,113827).addRange(118528,118573).addRange(118576,118598).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119274).addRange(119296,119365).addRange(119520,119539).addRange(119552,119638).addRange(119648,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,121483).addRange(121499,121503).addRange(121505,121519).addRange(122624,122654).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123214,123215).addRange(123536,123566).addRange(123584,123641).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125127,125142),i.addRange(125184,125259).addRange(125264,125273).addRange(125278,125279).addRange(126065,126132).addRange(126209,126269).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660),i.addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782).addRange(129792,129938).addRange(129940,129994).addRange(130032,130041).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546).addRange(917536,917631).addRange(917760,917999).addRange(983040,1048573).addRange(1048576,1114109),t.exports=i},38838:(t,e,n)=>{const i=n(78776)(1564);i.addRange(8206,8207).addRange(8234,8238).addRange(8294,8297),t.exports=i},5720:(t,e,n)=>{const i=n(78776)(60,62,91,93,123,125,171,187,8512,8721,8740,8742,8761,8802,8856,10176,10680,10697,10721,10788,10790,10793,10972,10974,10995,11005,11262,65308,65310,65339,65341,65371,65373,120539,120597,120655,120713,120771);i.addRange(40,41).addRange(3898,3901).addRange(5787,5788).addRange(8249,8250).addRange(8261,8262).addRange(8317,8318).addRange(8333,8334).addRange(8705,8708).addRange(8712,8717).addRange(8725,8726).addRange(8730,8733).addRange(8735,8738).addRange(8747,8755).addRange(8763,8780).addRange(8786,8789).addRange(8799,8800).addRange(8804,8811).addRange(8814,8844).addRange(8847,8850).addRange(8866,8867).addRange(8870,8888).addRange(8894,8895).addRange(8905,8909).addRange(8912,8913).addRange(8918,8941).addRange(8944,8959).addRange(8968,8971).addRange(8992,8993).addRange(9001,9002).addRange(10088,10101).addRange(10179,10182).addRange(10184,10185).addRange(10187,10189).addRange(10195,10198).addRange(10204,10206).addRange(10210,10223).addRange(10627,10648).addRange(10651,10656).addRange(10658,10671).addRange(10688,10693).addRange(10702,10706).addRange(10708,10709).addRange(10712,10716).addRange(10723,10725).addRange(10728,10729).addRange(10740,10745).addRange(10748,10749).addRange(10762,10780).addRange(10782,10785).addRange(10795,10798).addRange(10804,10805),i.addRange(10812,10814).addRange(10839,10840).addRange(10852,10853).addRange(10858,10861).addRange(10863,10864).addRange(10867,10868).addRange(10873,10915).addRange(10918,10925).addRange(10927,10966).addRange(10978,10982).addRange(10988,10990).addRange(10999,11003).addRange(11778,11781).addRange(11785,11786).addRange(11788,11789).addRange(11804,11805).addRange(11808,11817).addRange(11861,11868).addRange(12296,12305).addRange(12308,12315).addRange(65113,65118).addRange(65124,65125).addRange(65288,65289).addRange(65375,65376).addRange(65378,65379),t.exports=i},49965:(t,e,n)=>{const i=n(78776)(39,46,58,94,96,168,173,175,180,890,903,1369,1375,1471,1479,1524,1564,1600,1648,1807,1809,2042,2045,2184,2362,2364,2381,2417,2433,2492,2509,2558,2620,2641,2677,2748,2765,2817,2876,2879,2893,2946,3008,3021,3072,3076,3132,3201,3260,3263,3270,3405,3457,3530,3542,3633,3761,3782,3893,3895,3897,4038,4226,4237,4253,4348,6086,6103,6109,6211,6313,6450,6683,6742,6752,6754,6783,6823,6964,6972,6978,7142,7149,7405,7412,7544,8125,8228,8231,8305,8319,11631,11647,11823,12293,12347,40981,42508,42623,42864,43010,43014,43019,43052,43263,43443,43471,43587,43596,43632,43644,43696,43713,43741,43766,44005,44008,44013,64286,65043,65106,65109,65279,65287,65294,65306,65342,65344,65392,65507,66045,66272,68159,69633,69744,69821,69826,69837,70003,70095,70196,70206,70367,70464,70726,70750,70842,71229,71339,71341,71351,71998,72003,72160,72263,72767,73018,73031,73109,73111,94031,121461,121476,123566,917505);i.addRange(183,184).addRange(688,879).addRange(884,885).addRange(900,901).addRange(1155,1161).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1536,1541).addRange(1552,1562).addRange(1611,1631).addRange(1750,1757).addRange(1759,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2037).addRange(2070,2093).addRange(2137,2139).addRange(2192,2193).addRange(2200,2207).addRange(2249,2306).addRange(2369,2376).addRange(2385,2391).addRange(2402,2403).addRange(2497,2500).addRange(2530,2531).addRange(2561,2562).addRange(2625,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2690).addRange(2753,2757).addRange(2759,2760).addRange(2786,2787).addRange(2810,2815).addRange(2881,2884).addRange(2901,2902).addRange(2914,2915).addRange(3134,3136).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3276,3277).addRange(3298,3299).addRange(3328,3329).addRange(3387,3388).addRange(3393,3396).addRange(3426,3427),i.addRange(3538,3540).addRange(3636,3642).addRange(3654,3662).addRange(3764,3772).addRange(3784,3789).addRange(3864,3865).addRange(3953,3966).addRange(3968,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4141,4144).addRange(4146,4151).addRange(4153,4154).addRange(4157,4158).addRange(4184,4185).addRange(4190,4192).addRange(4209,4212).addRange(4229,4230).addRange(4957,4959).addRange(5906,5908).addRange(5938,5939).addRange(5970,5971).addRange(6002,6003).addRange(6068,6069).addRange(6071,6077).addRange(6089,6099).addRange(6155,6159).addRange(6277,6278).addRange(6432,6434).addRange(6439,6440).addRange(6457,6459).addRange(6679,6680).addRange(6744,6750).addRange(6757,6764).addRange(6771,6780).addRange(6832,6862).addRange(6912,6915).addRange(6966,6970).addRange(7019,7027).addRange(7040,7041).addRange(7074,7077).addRange(7080,7081).addRange(7083,7085).addRange(7144,7145).addRange(7151,7153).addRange(7212,7219).addRange(7222,7223).addRange(7288,7293).addRange(7376,7378).addRange(7380,7392),i.addRange(7394,7400).addRange(7416,7417).addRange(7468,7530).addRange(7579,7679).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(8203,8207).addRange(8216,8217).addRange(8234,8238).addRange(8288,8292).addRange(8294,8303).addRange(8336,8348).addRange(8400,8432).addRange(11388,11389).addRange(11503,11505).addRange(11744,11775).addRange(12330,12333).addRange(12337,12341).addRange(12441,12446).addRange(12540,12542).addRange(42232,42237).addRange(42607,42610).addRange(42612,42621).addRange(42652,42655).addRange(42736,42737).addRange(42752,42785).addRange(42888,42890).addRange(42994,42996).addRange(43e3,43001).addRange(43045,43046).addRange(43204,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43345).addRange(43392,43394).addRange(43446,43449).addRange(43452,43453).addRange(43493,43494).addRange(43561,43566).addRange(43569,43570).addRange(43573,43574).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43756,43757).addRange(43763,43764).addRange(43867,43871).addRange(43881,43883),i.addRange(64434,64450).addRange(65024,65039).addRange(65056,65071).addRange(65438,65439).addRange(65529,65531).addRange(66422,66426).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(69291,69292).addRange(69446,69456).addRange(69506,69509).addRange(69688,69702).addRange(69747,69748).addRange(69759,69761).addRange(69811,69814).addRange(69817,69818).addRange(69888,69890).addRange(69927,69931).addRange(69933,69940).addRange(70016,70017).addRange(70070,70078).addRange(70089,70092).addRange(70191,70193).addRange(70198,70199).addRange(70371,70378).addRange(70400,70401).addRange(70459,70460).addRange(70502,70508).addRange(70512,70516).addRange(70712,70719).addRange(70722,70724).addRange(70835,70840).addRange(70847,70848).addRange(70850,70851).addRange(71090,71093).addRange(71100,71101).addRange(71103,71104).addRange(71132,71133).addRange(71219,71226).addRange(71231,71232).addRange(71344,71349).addRange(71453,71455).addRange(71458,71461).addRange(71463,71467),i.addRange(71727,71735).addRange(71737,71738).addRange(71995,71996).addRange(72148,72151).addRange(72154,72155).addRange(72193,72202).addRange(72243,72248).addRange(72251,72254).addRange(72273,72278).addRange(72281,72283).addRange(72330,72342).addRange(72344,72345).addRange(72752,72758).addRange(72760,72765).addRange(72850,72871).addRange(72874,72880).addRange(72882,72883).addRange(72885,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029).addRange(73104,73105).addRange(73459,73460).addRange(78896,78904).addRange(92912,92916).addRange(92976,92982).addRange(92992,92995).addRange(94095,94111).addRange(94176,94177).addRange(94179,94180).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(113821,113822).addRange(113824,113827).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119155,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922),i.addRange(123184,123197).addRange(123628,123631).addRange(125136,125142).addRange(125252,125259).addRange(127995,127999).addRange(917536,917631).addRange(917760,917999),t.exports=i},32948:(t,e,n)=>{const i=n(78776)(170,181,186,837,895,902,908,4295,4301,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8505,8526,11559,11565,42963,67456,119970,119995,120134);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,442).addRange(444,447).addRange(452,659).addRange(661,696).addRange(704,705).addRange(736,740).addRange(880,883).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(4256,4293).addRange(4304,4346).addRange(4349,4351).addRange(5024,5109).addRange(5112,5117).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8500).addRange(8508,8511).addRange(8517,8521),i.addRange(8544,8575).addRange(8579,8580).addRange(9398,9449).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(42560,42605).addRange(42624,42653).addRange(42786,42887).addRange(42891,42894).addRange(42896,42954).addRange(42960,42961).addRange(42965,42969).addRange(42997,42998).addRange(43e3,43002).addRange(43824,43866).addRange(43868,43880).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(65345,65370).addRange(66560,66639).addRange(66736,66771).addRange(66776,66811).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67459,67461).addRange(67463,67504).addRange(67506,67514).addRange(68736,68786).addRange(68800,68850).addRange(71840,71903).addRange(93760,93823).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084),i.addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122633).addRange(122635,122654).addRange(125184,125251).addRange(127280,127305).addRange(127312,127337).addRange(127344,127369),t.exports=i},65314:(t,e,n)=>{const i=n(78776)(181,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,383,388,418,420,425,428,437,444,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,837,880,882,886,895,902,908,962,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1415,4295,4301,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8486,8498,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,42997);i.addRange(65,90).addRange(192,214).addRange(216,223).addRange(329,330).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(452,453).addRange(455,456).addRange(458,459).addRange(497,498).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(975,977).addRange(981,982).addRange(1008,1009).addRange(1012,1013).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5112,5117).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7834,7835).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8064,8111).addRange(8114,8116),i.addRange(8119,8124).addRange(8130,8132).addRange(8135,8140).addRange(8152,8155).addRange(8168,8172).addRange(8178,8180).addRange(8183,8188).addRange(8490,8491).addRange(8544,8559).addRange(9398,9423).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(125184,125217),t.exports=i},78562:(t,e,n)=>{const i=n(78776)(181,447,601,611,623,629,637,640,658,837,895,902,908,4295,4301,7545,7549,7566,7838,8025,8027,8029,8126,8486,8498,8526,11559,11565,43859);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,311).addRange(313,396).addRange(398,410).addRange(412,425).addRange(428,441).addRange(444,445).addRange(452,544).addRange(546,563).addRange(570,596).addRange(598,599).addRange(603,604).addRange(608,609).addRange(613,614).addRange(616,620).addRange(625,626).addRange(642,643).addRange(647,652).addRange(669,670).addRange(880,883).addRange(886,887).addRange(891,893).addRange(904,906).addRange(910,929).addRange(931,977).addRange(981,1013).addRange(1015,1019).addRange(1021,1153).addRange(1162,1327).addRange(1329,1366).addRange(1377,1415).addRange(4256,4293).addRange(4304,4346).addRange(4349,4351).addRange(5024,5109).addRange(5112,5117).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7680,7835).addRange(7840,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124),i.addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8490,8491).addRange(8544,8575).addRange(8579,8580).addRange(9398,9449).addRange(11264,11376).addRange(11378,11379).addRange(11381,11382).addRange(11390,11491).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(42560,42605).addRange(42624,42651).addRange(42786,42799).addRange(42802,42863).addRange(42873,42887).addRange(42891,42893).addRange(42896,42900).addRange(42902,42926).addRange(42928,42954).addRange(42960,42961).addRange(42966,42969).addRange(42997,42998).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(65345,65370).addRange(66560,66639).addRange(66736,66771).addRange(66776,66811).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68736,68786).addRange(68800,68850).addRange(71840,71903).addRange(93760,93823).addRange(125184,125251),t.exports=i},12104:(t,e,n)=>{const i=n(78776)(256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,388,418,420,425,428,437,444,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,880,882,886,895,902,908,975,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1012,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,4295,4301,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8486,8498,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,42997);i.addRange(65,90).addRange(192,214).addRange(216,222).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(452,453).addRange(455,456).addRange(458,459).addRange(497,498).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5024,5109).addRange(7312,7354).addRange(7357,7359).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8072,8079).addRange(8088,8095).addRange(8104,8111).addRange(8120,8124).addRange(8136,8140).addRange(8152,8155).addRange(8168,8172).addRange(8184,8188).addRange(8490,8491),i.addRange(8544,8559).addRange(9398,9423).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(125184,125217),t.exports=i},41347:(t,e,n)=>{const i=n(78776)(160,168,170,173,175,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,310,313,315,317,323,325,327,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,383,388,418,420,425,428,437,444,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,847,880,882,884,886,890,908,962,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1415,1564,2527,2611,2614,2654,3635,3763,3852,3907,3917,3922,3927,3932,3945,3955,3969,3987,3997,4002,4007,4012,4025,4295,4301,4348,7544,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8049,8051,8053,8055,8057,8059,8061,8147,8163,8209,8215,8252,8254,8279,8360,8484,8486,8488,8579,8585,10764,10972,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,11631,11935,12019,12288,12342,12447,12543,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42864,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,43881,64016,64018,64032,64034,64285,64318,65140,65279,119970,119995,120134,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590,127376);i.addRange(65,90).addRange(178,181).addRange(184,186).addRange(188,190).addRange(192,214).addRange(216,223).addRange(306,308).addRange(319,321).addRange(329,330).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(452,461).addRange(497,500).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(688,696).addRange(728,733).addRange(736,740).addRange(832,833).addRange(835,837).addRange(894,895).addRange(900,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(975,982).addRange(1008,1010).addRange(1012,1013).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(1653,1656).addRange(2392,2399).addRange(2524,2525).addRange(2649,2651).addRange(2908,2909).addRange(3804,3805),i.addRange(3957,3961).addRange(4256,4293).addRange(4447,4448).addRange(5112,5117).addRange(6068,6069).addRange(6155,6159).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7468,7470).addRange(7472,7482).addRange(7484,7501).addRange(7503,7530).addRange(7579,7615).addRange(7834,7835).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8064,8111).addRange(8114,8116).addRange(8119,8132).addRange(8135,8143).addRange(8152,8155).addRange(8157,8159).addRange(8168,8175).addRange(8178,8180).addRange(8183,8190).addRange(8192,8207).addRange(8228,8230).addRange(8234,8239).addRange(8243,8244).addRange(8246,8247).addRange(8263,8265).addRange(8287,8305).addRange(8308,8334).addRange(8336,8348).addRange(8448,8451).addRange(8453,8455).addRange(8457,8467).addRange(8469,8470).addRange(8473,8477).addRange(8480,8482).addRange(8490,8493).addRange(8495,8505).addRange(8507,8512).addRange(8517,8521).addRange(8528,8575).addRange(8748,8749),i.addRange(8751,8752).addRange(9001,9002).addRange(9312,9450).addRange(10868,10870).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11388,11392).addRange(12032,12245).addRange(12344,12346).addRange(12443,12444).addRange(12593,12686).addRange(12690,12703).addRange(12800,12830).addRange(12832,12871).addRange(12880,12926).addRange(12928,13311).addRange(42652,42653).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(42994,42997).addRange(43e3,43001).addRange(43868,43871).addRange(43888,43967).addRange(63744,64013).addRange(64021,64030).addRange(64037,64038).addRange(64042,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65020).addRange(65024,65049).addRange(65072,65092).addRange(65095,65106).addRange(65108,65126).addRange(65128,65131).addRange(65136,65138).addRange(65142,65276).addRange(65281,65470).addRange(65474,65479),i.addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65504,65510).addRange(65512,65518).addRange(65520,65528).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(67457,67461).addRange(67463,67504).addRange(67506,67514).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(113824,113827).addRange(119134,119140).addRange(119155,119162).addRange(119227,119232).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(125184,125217).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578),i.addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(127232,127242).addRange(127248,127278).addRange(127280,127311).addRange(127338,127340).addRange(127488,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(130032,130041).addRange(194560,195101).addRange(917504,921599),t.exports=i},50589:(t,e,n)=>{const i=n(78776)(181,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,311,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,396,402,405,414,417,419,421,424,429,432,436,438,441,445,447,452,460,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,499,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,547,549,551,553,555,557,559,561,563,572,578,583,585,587,589,601,611,623,629,637,640,658,837,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1019,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7545,7549,7566,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8126,8526,8580,11361,11368,11370,11372,11379,11382,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11491,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42651,42787,42789,42791,42793,42795,42797,42799,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42863,42874,42876,42879,42881,42883,42885,42887,42892,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42961,42967,42969,42998,43859);i.addRange(97,122).addRange(223,246).addRange(248,255).addRange(328,329).addRange(382,384).addRange(409,410).addRange(454,455).addRange(457,458).addRange(476,477).addRange(495,497).addRange(575,576).addRange(591,596).addRange(598,599).addRange(603,604).addRange(608,609).addRange(613,614).addRange(616,620).addRange(625,626).addRange(642,643).addRange(647,652).addRange(669,670).addRange(891,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1072,1119).addRange(1230,1231).addRange(1377,1415).addRange(5112,5117).addRange(7296,7304).addRange(7829,7835).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8071).addRange(8080,8087).addRange(8096,8103).addRange(8112,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151).addRange(8160,8167).addRange(8178,8180),i.addRange(8182,8183).addRange(8560,8575).addRange(9424,9449).addRange(11312,11359).addRange(11365,11366).addRange(11520,11557).addRange(42899,42900).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68800,68850).addRange(71872,71903).addRange(93792,93823).addRange(125218,125251),t.exports=i},50046:(t,e,n)=>{const i=n(78776)(181,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,311,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,396,402,405,414,417,419,421,424,429,432,436,438,441,445,447,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,547,549,551,553,555,557,559,561,563,572,578,583,585,587,589,601,611,623,629,637,640,658,837,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1019,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7545,7549,7566,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8124,8126,8140,8188,8526,8580,11361,11368,11370,11372,11379,11382,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11491,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42651,42787,42789,42791,42793,42795,42797,42799,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42863,42874,42876,42879,42881,42883,42885,42887,42892,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42961,42967,42969,42998,43859);i.addRange(97,122).addRange(223,246).addRange(248,255).addRange(328,329).addRange(382,384).addRange(409,410).addRange(453,454).addRange(456,457).addRange(459,460).addRange(476,477).addRange(495,496).addRange(498,499).addRange(575,576).addRange(591,596).addRange(598,599).addRange(603,604).addRange(608,609).addRange(613,614).addRange(616,620).addRange(625,626).addRange(642,643).addRange(647,652).addRange(669,670).addRange(891,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1072,1119).addRange(1230,1231).addRange(1377,1415).addRange(4304,4346).addRange(4349,4351).addRange(5112,5117).addRange(7296,7304).addRange(7829,7835).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151).addRange(8160,8167),i.addRange(8178,8180).addRange(8182,8183).addRange(8560,8575).addRange(9424,9449).addRange(11312,11359).addRange(11365,11366).addRange(11520,11557).addRange(42899,42900).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68800,68850).addRange(71872,71903).addRange(93792,93823).addRange(125218,125251),t.exports=i},77336:(t,e,n)=>{const i=n(78776)(45,1418,1470,5120,6150,8275,8315,8331,8722,11799,11802,11840,11869,12316,12336,12448,65112,65123,65293,69293);i.addRange(8208,8213).addRange(11834,11835).addRange(65073,65074),t.exports=i},32016:(t,e,n)=>{const i=n(78776)(173,847,1564,12644,65279,65440);i.addRange(4447,4448).addRange(6068,6069).addRange(6155,6159).addRange(8203,8207).addRange(8234,8238).addRange(8288,8303).addRange(65024,65039).addRange(65520,65528).addRange(113824,113827).addRange(119155,119162).addRange(917504,921599),t.exports=i},42339:(t,e,n)=>{const i=n(78776)(329,1651,3959,3961,917505);i.addRange(6051,6052).addRange(8298,8303).addRange(9001,9002),t.exports=i},97707:(t,e,n)=>{const i=n(78776)(94,96,168,175,180,890,1369,1471,1476,2364,2381,2417,2492,2509,2620,2637,2748,2765,2876,2893,2901,3021,3132,3149,3260,3277,3405,3530,3662,3770,3893,3895,3897,4038,4151,4239,6109,6783,6964,6980,7405,7412,8125,11823,12540,42607,42623,43204,43347,43443,43456,43493,43766,64286,65342,65344,65392,65507,66272,69702,69744,70003,70080,70460,70477,70722,70726,71231,71467,72003,72160,72244,72263,72345,72767,73026,73111,123566);i.addRange(183,184).addRange(688,846).addRange(848,855).addRange(861,866).addRange(884,885).addRange(900,901).addRange(1155,1159).addRange(1425,1441).addRange(1443,1469).addRange(1473,1474).addRange(1611,1618).addRange(1623,1624).addRange(1759,1760).addRange(1765,1766).addRange(1770,1772).addRange(1840,1866).addRange(1958,1968).addRange(2027,2037).addRange(2072,2073).addRange(2200,2207).addRange(2249,2258).addRange(2275,2302).addRange(2385,2388).addRange(2813,2815).addRange(3387,3388).addRange(3655,3660).addRange(3784,3788).addRange(3864,3865).addRange(3902,3903).addRange(3970,3972).addRange(3974,3975).addRange(4153,4154).addRange(4195,4196).addRange(4201,4205).addRange(4231,4237).addRange(4250,4251).addRange(4957,4959).addRange(5908,5909).addRange(6089,6099).addRange(6457,6459).addRange(6773,6780).addRange(6832,6846).addRange(6849,6859).addRange(7019,7027).addRange(7082,7083).addRange(7222,7223).addRange(7288,7293).addRange(7376,7400).addRange(7415,7417).addRange(7468,7530).addRange(7620,7631),i.addRange(7669,7679).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(11503,11505).addRange(12330,12335).addRange(12441,12444).addRange(42620,42621).addRange(42652,42653).addRange(42736,42737).addRange(42752,42785).addRange(42888,42890).addRange(43e3,43001).addRange(43232,43249).addRange(43307,43310).addRange(43643,43645).addRange(43711,43714).addRange(43867,43871).addRange(43881,43883).addRange(44012,44013).addRange(65056,65071).addRange(65438,65439).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(68325,68326).addRange(68898,68903).addRange(69446,69456).addRange(69506,69509).addRange(69817,69818).addRange(69939,69940).addRange(70090,70092).addRange(70197,70198).addRange(70377,70378).addRange(70502,70508).addRange(70512,70516).addRange(70850,70851).addRange(71103,71104).addRange(71350,71351).addRange(71737,71738).addRange(71997,71998).addRange(73028,73029).addRange(92912,92916).addRange(92976,92982).addRange(94095,94111).addRange(94192,94193).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590),i.addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(123184,123190).addRange(123628,123631).addRange(125136,125142).addRange(125252,125254).addRange(125256,125258),t.exports=i},23694:(t,e,n)=>{const i=n(78776)(35,42,169,174,8252,8265,8482,8505,9e3,9167,9410,9654,9664,9742,9745,9752,9757,9760,9766,9770,9792,9794,9827,9832,9851,9881,9895,9928,9937,9981,9986,9989,9999,10002,10004,10006,10013,10017,10024,10052,10055,10060,10062,10071,10145,10160,10175,11088,11093,12336,12349,12951,12953,126980,127183,127374,127514,127535,128391,128400,128424,128444,128481,128483,128488,128495,128499,128745,128752,129008);i.addRange(48,57).addRange(8596,8601).addRange(8617,8618).addRange(8986,8987).addRange(9193,9203).addRange(9208,9210).addRange(9642,9643).addRange(9723,9726).addRange(9728,9732).addRange(9748,9749).addRange(9762,9763).addRange(9774,9775).addRange(9784,9786).addRange(9800,9811).addRange(9823,9824).addRange(9829,9830).addRange(9854,9855).addRange(9874,9879).addRange(9883,9884).addRange(9888,9889).addRange(9898,9899).addRange(9904,9905).addRange(9917,9918).addRange(9924,9925).addRange(9934,9935).addRange(9939,9940).addRange(9961,9962).addRange(9968,9973).addRange(9975,9978).addRange(9992,9997).addRange(10035,10036).addRange(10067,10069).addRange(10083,10084).addRange(10133,10135).addRange(10548,10549).addRange(11013,11015).addRange(11035,11036).addRange(127344,127345).addRange(127358,127359).addRange(127377,127386).addRange(127462,127487).addRange(127489,127490).addRange(127538,127546).addRange(127568,127569).addRange(127744,127777).addRange(127780,127891).addRange(127894,127895).addRange(127897,127899).addRange(127902,127984).addRange(127987,127989).addRange(127991,128253),i.addRange(128255,128317).addRange(128329,128334).addRange(128336,128359).addRange(128367,128368).addRange(128371,128378).addRange(128394,128397).addRange(128405,128406).addRange(128420,128421).addRange(128433,128434).addRange(128450,128452).addRange(128465,128467).addRange(128476,128478).addRange(128506,128591).addRange(128640,128709).addRange(128715,128722).addRange(128725,128727).addRange(128733,128741).addRange(128747,128748).addRange(128755,128764).addRange(128992,129003).addRange(129292,129338).addRange(129340,129349).addRange(129351,129535).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782),t.exports=i},94007:(t,e,n)=>{const i=n(78776)(35,42,8205,8419,65039);i.addRange(48,57).addRange(127462,127487).addRange(127995,127999).addRange(129456,129459).addRange(917536,917631),t.exports=i},13916:(t,e,n)=>{const i=n(78776)();i.addRange(127995,127999),t.exports=i},98053:(t,e,n)=>{const i=n(78776)(9757,9977,127877,127943,128124,128143,128145,128170,128378,128400,128675,128704,128716,129292,129295,129318,129399,129467);i.addRange(9994,9997).addRange(127938,127940).addRange(127946,127948).addRange(128066,128067).addRange(128070,128080).addRange(128102,128120).addRange(128129,128131).addRange(128133,128135).addRange(128372,128373).addRange(128405,128406).addRange(128581,128583).addRange(128587,128591).addRange(128692,128694).addRange(129304,129311).addRange(129328,129337).addRange(129340,129342).addRange(129461,129462).addRange(129464,129465).addRange(129485,129487).addRange(129489,129501).addRange(129731,129733).addRange(129776,129782),t.exports=i},10906:(t,e,n)=>{const i=n(78776)(9200,9203,9855,9875,9889,9934,9940,9962,9973,9978,9981,9989,10024,10060,10062,10071,10160,10175,11088,11093,126980,127183,127374,127489,127514,127535,127988,128064,128378,128420,128716,129008);i.addRange(8986,8987).addRange(9193,9196).addRange(9725,9726).addRange(9748,9749).addRange(9800,9811).addRange(9898,9899).addRange(9917,9918).addRange(9924,9925).addRange(9970,9971).addRange(9994,9995).addRange(10067,10069).addRange(10133,10135).addRange(11035,11036).addRange(127377,127386).addRange(127462,127487).addRange(127538,127542).addRange(127544,127546).addRange(127568,127569).addRange(127744,127776).addRange(127789,127797).addRange(127799,127868).addRange(127870,127891).addRange(127904,127946).addRange(127951,127955).addRange(127968,127984).addRange(127992,128062).addRange(128066,128252).addRange(128255,128317).addRange(128331,128334).addRange(128336,128359).addRange(128405,128406).addRange(128507,128591).addRange(128640,128709).addRange(128720,128722).addRange(128725,128727).addRange(128733,128735).addRange(128747,128748).addRange(128756,128764).addRange(128992,129003).addRange(129292,129338).addRange(129340,129349).addRange(129351,129535).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782),t.exports=i},66359:(t,e,n)=>{const i=n(78776)(169,174,8252,8265,8482,8505,9e3,9096,9167,9410,9654,9664,10004,10006,10013,10017,10024,10052,10055,10060,10062,10071,10145,10160,10175,11088,11093,12336,12349,12951,12953,127279,127374,127514,127535);i.addRange(8596,8601).addRange(8617,8618).addRange(8986,8987).addRange(9193,9203).addRange(9208,9210).addRange(9642,9643).addRange(9723,9726).addRange(9728,9733).addRange(9735,9746).addRange(9748,9861).addRange(9872,9989).addRange(9992,10002).addRange(10035,10036).addRange(10067,10069).addRange(10083,10087).addRange(10133,10135).addRange(10548,10549).addRange(11013,11015).addRange(11035,11036).addRange(126976,127231).addRange(127245,127247).addRange(127340,127345).addRange(127358,127359).addRange(127377,127386).addRange(127405,127461).addRange(127489,127503).addRange(127538,127546).addRange(127548,127551).addRange(127561,127994).addRange(128e3,128317).addRange(128326,128591).addRange(128640,128767).addRange(128884,128895).addRange(128981,129023).addRange(129036,129039).addRange(129096,129103).addRange(129114,129119).addRange(129160,129167).addRange(129198,129279).addRange(129292,129338).addRange(129340,129349).addRange(129351,129791).addRange(130048,131069),t.exports=i},17743:(t,e,n)=>{const i=n(78776)(183,1600,2042,2901,3654,3782,6154,6211,6823,7222,7291,12293,40981,42508,43471,43494,43632,43741,65392,70493,72344,94179);i.addRange(720,721).addRange(12337,12341).addRange(12445,12446).addRange(12540,12542).addRange(43763,43764).addRange(67457,67458).addRange(71110,71112).addRange(92994,92995).addRange(94176,94177).addRange(123196,123197).addRange(125252,125254),t.exports=i},75530:(t,e,n)=>{const i=n(78776)(908,1470,1472,1475,1478,1563,1758,1769,1808,1969,2074,2084,2088,2142,2363,2482,2493,2510,2563,2654,2678,2691,2761,2768,2809,2877,2880,2947,2972,3007,3024,3133,3165,3389,3517,3716,3749,3773,3782,3894,3896,3967,3973,4145,4152,4295,4301,4696,4800,5909,6070,6314,6464,6743,6753,6971,7082,7143,7150,7379,7393,7418,8025,8027,8029,11559,11565,42611,42963,43597,43697,43712,43714,64285,64318,64975,65952,67592,67644,67903,69293,69632,69749,69932,70197,70280,70461,70463,70480,70725,70749,70841,70846,70849,71102,71230,71340,71350,71462,71736,71739,71945,71997,72192,72272,72343,72766,72873,72881,72884,73030,73110,73112,73648,92917,113820,113823,119142,119365,119970,119995,120134,123647,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590,129008);i.addRange(32,126).addRange(160,172).addRange(174,767).addRange(880,887).addRange(890,895).addRange(900,906).addRange(910,929).addRange(931,1154).addRange(1162,1327).addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(1488,1514).addRange(1519,1524).addRange(1542,1551).addRange(1565,1610).addRange(1632,1647).addRange(1649,1749).addRange(1765,1766).addRange(1774,1805).addRange(1810,1839).addRange(1869,1957).addRange(1984,2026).addRange(2036,2042).addRange(2046,2069).addRange(2096,2110).addRange(2112,2136).addRange(2144,2154).addRange(2160,2190).addRange(2208,2249).addRange(2307,2361).addRange(2365,2368).addRange(2377,2380).addRange(2382,2384).addRange(2392,2401).addRange(2404,2432).addRange(2434,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2495,2496).addRange(2503,2504).addRange(2507,2508).addRange(2524,2525).addRange(2527,2529).addRange(2534,2557).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600),i.addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2624).addRange(2649,2652).addRange(2662,2671).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2749,2752).addRange(2763,2764).addRange(2784,2785).addRange(2790,2801).addRange(2818,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2887,2888).addRange(2891,2892).addRange(2908,2909).addRange(2911,2913).addRange(2918,2935).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3009,3010).addRange(3014,3016).addRange(3018,3020).addRange(3046,3066).addRange(3073,3075).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3137,3140).addRange(3160,3162).addRange(3168,3169).addRange(3174,3183),i.addRange(3191,3200).addRange(3202,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3261,3262).addRange(3264,3265).addRange(3267,3268).addRange(3271,3272).addRange(3274,3275).addRange(3293,3294).addRange(3296,3297).addRange(3302,3311).addRange(3313,3314).addRange(3330,3340).addRange(3342,3344).addRange(3346,3386).addRange(3391,3392).addRange(3398,3400).addRange(3402,3404).addRange(3406,3407).addRange(3412,3414).addRange(3416,3425).addRange(3430,3455).addRange(3458,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3536,3537).addRange(3544,3550).addRange(3558,3567).addRange(3570,3572).addRange(3585,3632).addRange(3634,3635).addRange(3647,3654).addRange(3663,3675).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3792,3801).addRange(3804,3807).addRange(3840,3863).addRange(3866,3892).addRange(3898,3911).addRange(3913,3948).addRange(3976,3980),i.addRange(4030,4037).addRange(4039,4044).addRange(4046,4058).addRange(4096,4140).addRange(4155,4156).addRange(4159,4183).addRange(4186,4189).addRange(4193,4208).addRange(4213,4225).addRange(4227,4228).addRange(4231,4236).addRange(4238,4252).addRange(4254,4293).addRange(4304,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4960,4988).addRange(4992,5017).addRange(5024,5109).addRange(5112,5117).addRange(5120,5788).addRange(5792,5880).addRange(5888,5905).addRange(5919,5937).addRange(5940,5942).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6078,6085).addRange(6087,6088).addRange(6100,6108).addRange(6112,6121).addRange(6128,6137).addRange(6144,6154).addRange(6160,6169).addRange(6176,6264).addRange(6272,6276).addRange(6279,6312).addRange(6320,6389),i.addRange(6400,6430).addRange(6435,6438).addRange(6441,6443).addRange(6448,6449).addRange(6451,6456).addRange(6468,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6678).addRange(6681,6682).addRange(6686,6741).addRange(6755,6756).addRange(6765,6770).addRange(6784,6793).addRange(6800,6809).addRange(6816,6829).addRange(6916,6963).addRange(6973,6977).addRange(6979,6988).addRange(6992,7018).addRange(7028,7038).addRange(7042,7073).addRange(7078,7079).addRange(7086,7141).addRange(7146,7148).addRange(7154,7155).addRange(7164,7211).addRange(7220,7221).addRange(7227,7241).addRange(7245,7304).addRange(7312,7354).addRange(7357,7367).addRange(7401,7404).addRange(7406,7411).addRange(7413,7415).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190),i.addRange(8192,8202).addRange(8208,8231).addRange(8239,8287).addRange(8304,8305).addRange(8308,8334).addRange(8336,8348).addRange(8352,8384).addRange(8448,8587).addRange(8592,9254).addRange(9280,9290).addRange(9312,11123).addRange(11126,11157).addRange(11159,11502).addRange(11506,11507).addRange(11513,11557).addRange(11568,11623).addRange(11631,11632).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11776,11869).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12283).addRange(12288,12329).addRange(12336,12351).addRange(12353,12438).addRange(12443,12543).addRange(12549,12591).addRange(12593,12686).addRange(12688,12771).addRange(12784,12830).addRange(12832,42124).addRange(42128,42182).addRange(42192,42539).addRange(42560,42606).addRange(42622,42653).addRange(42656,42735).addRange(42738,42743).addRange(42752,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43009).addRange(43011,43013),i.addRange(43015,43018).addRange(43020,43044).addRange(43047,43051).addRange(43056,43065).addRange(43072,43127).addRange(43136,43203).addRange(43214,43225).addRange(43250,43262).addRange(43264,43301).addRange(43310,43334).addRange(43346,43347).addRange(43359,43388).addRange(43395,43442).addRange(43444,43445).addRange(43450,43451).addRange(43454,43469).addRange(43471,43481).addRange(43486,43492).addRange(43494,43518).addRange(43520,43560).addRange(43567,43568).addRange(43571,43572).addRange(43584,43586).addRange(43588,43595).addRange(43600,43609).addRange(43612,43643).addRange(43645,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43755).addRange(43758,43765).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43883).addRange(43888,44004).addRange(44006,44007).addRange(44009,44012).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64310).addRange(64312,64316).addRange(64320,64321),i.addRange(64323,64324).addRange(64326,64450).addRange(64467,64911).addRange(64914,64967).addRange(65008,65023).addRange(65040,65049).addRange(65072,65106).addRange(65108,65126).addRange(65128,65131).addRange(65136,65140).addRange(65142,65276).addRange(65281,65437).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65504,65510).addRange(65512,65518).addRange(65532,65533).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65792,65794).addRange(65799,65843).addRange(65847,65934).addRange(65936,65948).addRange(66e3,66044).addRange(66176,66204).addRange(66208,66256).addRange(66273,66299).addRange(66304,66339).addRange(66349,66378).addRange(66384,66421).addRange(66432,66461).addRange(66463,66499).addRange(66504,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66927,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965),i.addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67671,67742).addRange(67751,67759).addRange(67808,67826).addRange(67828,67829).addRange(67835,67867).addRange(67871,67897).addRange(67968,68023).addRange(68028,68047).addRange(68050,68096).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68160,68168).addRange(68176,68184).addRange(68192,68255).addRange(68288,68324).addRange(68331,68342).addRange(68352,68405).addRange(68409,68437).addRange(68440,68466).addRange(68472,68497).addRange(68505,68508).addRange(68521,68527).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68858,68899).addRange(68912,68921).addRange(69216,69246).addRange(69248,69289).addRange(69296,69297).addRange(69376,69415).addRange(69424,69445).addRange(69457,69465).addRange(69488,69505).addRange(69510,69513).addRange(69552,69579),i.addRange(69600,69622).addRange(69634,69687).addRange(69703,69709).addRange(69714,69743).addRange(69745,69746).addRange(69762,69810).addRange(69815,69816).addRange(69819,69820).addRange(69822,69825).addRange(69840,69864).addRange(69872,69881).addRange(69891,69926).addRange(69942,69959).addRange(69968,70002).addRange(70004,70006).addRange(70018,70069).addRange(70079,70088).addRange(70093,70094).addRange(70096,70111).addRange(70113,70132).addRange(70144,70161).addRange(70163,70190).addRange(70194,70195).addRange(70200,70205).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313).addRange(70320,70366).addRange(70368,70370).addRange(70384,70393).addRange(70402,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70465,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70656,70711).addRange(70720,70721).addRange(70727,70747).addRange(70751,70753).addRange(70784,70831).addRange(70833,70834).addRange(70843,70844).addRange(70852,70855).addRange(70864,70873),i.addRange(71040,71086).addRange(71088,71089).addRange(71096,71099).addRange(71105,71131).addRange(71168,71218).addRange(71227,71228).addRange(71233,71236).addRange(71248,71257).addRange(71264,71276).addRange(71296,71338).addRange(71342,71343).addRange(71352,71353).addRange(71360,71369).addRange(71424,71450).addRange(71456,71457).addRange(71472,71494).addRange(71680,71726).addRange(71840,71922).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(71985,71989).addRange(71991,71992).addRange(71999,72002).addRange(72004,72006).addRange(72016,72025).addRange(72096,72103).addRange(72106,72147).addRange(72156,72159).addRange(72161,72164).addRange(72203,72242).addRange(72249,72250).addRange(72255,72262).addRange(72279,72280).addRange(72284,72329).addRange(72346,72354).addRange(72368,72440).addRange(72704,72712).addRange(72714,72751).addRange(72768,72773).addRange(72784,72812).addRange(72816,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73107,73108),i.addRange(73120,73129).addRange(73440,73458).addRange(73461,73464).addRange(73664,73713).addRange(73727,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075).addRange(77712,77810).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92782,92862).addRange(92864,92873).addRange(92880,92909).addRange(92928,92975).addRange(92983,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071).addRange(93760,93850).addRange(93952,94026).addRange(94032,94087).addRange(94099,94111).addRange(94176,94179).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119140).addRange(119146,119149).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274),i.addRange(119296,119361).addRange(119520,119539).addRange(119552,119638).addRange(119648,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,121343).addRange(121399,121402).addRange(121453,121460).addRange(121462,121475).addRange(121477,121483).addRange(122624,122654).addRange(123136,123180).addRange(123191,123197).addRange(123200,123209).addRange(123214,123215).addRange(123536,123565).addRange(123584,123627).addRange(123632,123641).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125127,125135).addRange(125184,125251).addRange(125264,125273).addRange(125278,125279).addRange(126065,126132).addRange(126209,126269).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543),i.addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782).addRange(129792,129938).addRange(129940,129994).addRange(130032,130041).addRange(131072,173791),i.addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},38693:(t,e,n)=>{const i=n(78776)(1471,1479,1648,1809,2045,2362,2364,2381,2433,2492,2494,2509,2519,2558,2620,2641,2677,2748,2765,2817,2876,2893,2946,3006,3008,3021,3031,3072,3076,3132,3201,3260,3263,3266,3270,3390,3405,3415,3457,3530,3535,3542,3551,3633,3761,3893,3895,3897,4038,4226,4237,4253,6086,6109,6159,6313,6450,6683,6742,6752,6754,6783,6972,6978,7142,7149,7405,7412,8204,11647,43010,43014,43019,43052,43263,43443,43493,43587,43596,43644,43696,43713,43766,44005,44008,44013,64286,66045,66272,68159,69633,69744,69826,70003,70095,70196,70206,70367,70462,70464,70487,70726,70750,70832,70842,70845,71087,71229,71339,71341,71351,71984,71998,72003,72160,72263,72767,73018,73031,73109,73111,94031,94180,119141,121461,121476,123566);i.addRange(768,879).addRange(1155,1161).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1552,1562).addRange(1611,1631).addRange(1750,1756).addRange(1759,1764).addRange(1767,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2035).addRange(2070,2073).addRange(2075,2083).addRange(2085,2087).addRange(2089,2093).addRange(2137,2139).addRange(2200,2207).addRange(2250,2273).addRange(2275,2306).addRange(2369,2376).addRange(2385,2391).addRange(2402,2403).addRange(2497,2500).addRange(2530,2531).addRange(2561,2562).addRange(2625,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2690).addRange(2753,2757).addRange(2759,2760).addRange(2786,2787).addRange(2810,2815).addRange(2878,2879).addRange(2881,2884).addRange(2901,2903).addRange(2914,2915).addRange(3134,3136).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3276,3277).addRange(3285,3286).addRange(3298,3299).addRange(3328,3329).addRange(3387,3388),i.addRange(3393,3396).addRange(3426,3427).addRange(3538,3540).addRange(3636,3642).addRange(3655,3662).addRange(3764,3772).addRange(3784,3789).addRange(3864,3865).addRange(3953,3966).addRange(3968,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4141,4144).addRange(4146,4151).addRange(4153,4154).addRange(4157,4158).addRange(4184,4185).addRange(4190,4192).addRange(4209,4212).addRange(4229,4230).addRange(4957,4959).addRange(5906,5908).addRange(5938,5939).addRange(5970,5971).addRange(6002,6003).addRange(6068,6069).addRange(6071,6077).addRange(6089,6099).addRange(6155,6157).addRange(6277,6278).addRange(6432,6434).addRange(6439,6440).addRange(6457,6459).addRange(6679,6680).addRange(6744,6750).addRange(6757,6764).addRange(6771,6780).addRange(6832,6862).addRange(6912,6915).addRange(6964,6970).addRange(7019,7027).addRange(7040,7041).addRange(7074,7077).addRange(7080,7081).addRange(7083,7085).addRange(7144,7145).addRange(7151,7153).addRange(7212,7219).addRange(7222,7223).addRange(7376,7378),i.addRange(7380,7392).addRange(7394,7400).addRange(7416,7417).addRange(7616,7679).addRange(8400,8432).addRange(11503,11505).addRange(11744,11775).addRange(12330,12335).addRange(12441,12442).addRange(42607,42610).addRange(42612,42621).addRange(42654,42655).addRange(42736,42737).addRange(43045,43046).addRange(43204,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43345).addRange(43392,43394).addRange(43446,43449).addRange(43452,43453).addRange(43561,43566).addRange(43569,43570).addRange(43573,43574).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43756,43757).addRange(65024,65039).addRange(65056,65071).addRange(65438,65439).addRange(66422,66426).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(69291,69292).addRange(69446,69456).addRange(69506,69509).addRange(69688,69702).addRange(69747,69748).addRange(69759,69761).addRange(69811,69814).addRange(69817,69818).addRange(69888,69890).addRange(69927,69931).addRange(69933,69940).addRange(70016,70017).addRange(70070,70078),i.addRange(70089,70092).addRange(70191,70193).addRange(70198,70199).addRange(70371,70378).addRange(70400,70401).addRange(70459,70460).addRange(70502,70508).addRange(70512,70516).addRange(70712,70719).addRange(70722,70724).addRange(70835,70840).addRange(70847,70848).addRange(70850,70851).addRange(71090,71093).addRange(71100,71101).addRange(71103,71104).addRange(71132,71133).addRange(71219,71226).addRange(71231,71232).addRange(71344,71349).addRange(71453,71455).addRange(71458,71461).addRange(71463,71467).addRange(71727,71735).addRange(71737,71738).addRange(71995,71996).addRange(72148,72151).addRange(72154,72155).addRange(72193,72202).addRange(72243,72248).addRange(72251,72254).addRange(72273,72278).addRange(72281,72283).addRange(72330,72342).addRange(72344,72345).addRange(72752,72758).addRange(72760,72765).addRange(72850,72871).addRange(72874,72880).addRange(72882,72883).addRange(72885,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029).addRange(73104,73105).addRange(73459,73460).addRange(92912,92916).addRange(92976,92982).addRange(94095,94098).addRange(113821,113822).addRange(118528,118573),i.addRange(118576,118598).addRange(119143,119145).addRange(119150,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123184,123190).addRange(123628,123631).addRange(125136,125142).addRange(125252,125258).addRange(917536,917631).addRange(917760,917999),t.exports=i},91556:(t,e,n)=>{const i=n(78776)();i.addRange(48,57).addRange(65,70).addRange(97,102).addRange(65296,65305).addRange(65313,65318).addRange(65345,65350),t.exports=i},2103:(t,e,n)=>{const i=n(78776)();i.addRange(12272,12273).addRange(12276,12283),t.exports=i},18502:(t,e,n)=>{const i=n(78776)();i.addRange(12274,12275),t.exports=i},19494:(t,e,n)=>{const i=n(78776)(95,170,181,183,186,748,750,895,908,1369,1471,1479,1791,2042,2045,2482,2519,2556,2558,2620,2641,2654,2768,2929,2972,3024,3031,3165,3517,3530,3542,3716,3749,3782,3840,3893,3895,3897,4038,4295,4301,4696,4800,6103,6823,8025,8027,8029,8126,8276,8305,8319,8417,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,42963,43052,43259,64318,65343,66045,66272,67592,67644,68159,69415,69826,70006,70108,70206,70280,70480,70487,70855,71236,71945,72263,72349,73018,73648,119970,119995,120134,121461,121476,123214,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(48,57).addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(768,884).addRange(886,887).addRange(890,893).addRange(902,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1155,1159).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1488,1514).addRange(1519,1522).addRange(1552,1562).addRange(1568,1641).addRange(1646,1747).addRange(1749,1756).addRange(1759,1768).addRange(1770,1788).addRange(1808,1866).addRange(1869,1969).addRange(1984,2037).addRange(2048,2093).addRange(2112,2139).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2200,2273).addRange(2275,2403).addRange(2406,2415).addRange(2417,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525),i.addRange(2527,2531).addRange(2534,2545).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2677).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2799).addRange(2809,2815).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2927).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001),i.addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3055).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3200,3203).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3314).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3406).addRange(3412,3415).addRange(3423,3427).addRange(3430,3439).addRange(3450,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3571).addRange(3585,3642).addRange(3648,3662).addRange(3664,3673).addRange(3713,3714),i.addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3789).addRange(3792,3801).addRange(3804,3807).addRange(3864,3865).addRange(3872,3881).addRange(3902,3911).addRange(3913,3948).addRange(3953,3972).addRange(3974,3991).addRange(3993,4028).addRange(4096,4169).addRange(4176,4253).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4959).addRange(4969,4977).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5909).addRange(5919,5940).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6099).addRange(6108,6109).addRange(6112,6121),i.addRange(6155,6157).addRange(6159,6169).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6470,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6656,6683).addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6832,6845).addRange(6847,6862).addRange(6912,6988).addRange(6992,7001).addRange(7019,7027).addRange(7040,7155).addRange(7168,7223).addRange(7232,7241).addRange(7245,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7376,7378).addRange(7380,7418).addRange(7424,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8255,8256).addRange(8336,8348).addRange(8400,8412).addRange(8421,8432),i.addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11507).addRange(11520,11557).addRange(11568,11623).addRange(11647,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11775).addRange(12293,12295).addRange(12321,12335).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12441,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42539).addRange(42560,42607).addRange(42612,42621).addRange(42623,42737).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43047).addRange(43072,43123).addRange(43136,43205).addRange(43216,43225).addRange(43232,43255).addRange(43261,43309),i.addRange(43312,43347).addRange(43360,43388).addRange(43392,43456).addRange(43471,43481).addRange(43488,43518).addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43616,43638).addRange(43642,43714).addRange(43739,43741).addRange(43744,43759).addRange(43762,43766).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44010).addRange(44012,44013).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65024,65039).addRange(65056,65071).addRange(65075,65076).addRange(65101,65103).addRange(65136,65140).addRange(65142,65276).addRange(65296,65305).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479),i.addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023),i.addRange(68030,68031).addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68326).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68864,68903).addRange(68912,68921).addRange(69248,69289).addRange(69291,69292).addRange(69296,69297).addRange(69376,69404).addRange(69424,69456).addRange(69488,69509).addRange(69552,69572).addRange(69600,69622).addRange(69632,69702).addRange(69734,69749).addRange(69759,69818).addRange(69840,69864).addRange(69872,69881).addRange(69888,69940).addRange(69942,69951).addRange(69956,69959).addRange(69968,70003).addRange(70016,70084).addRange(70089,70092).addRange(70094,70106).addRange(70144,70161).addRange(70163,70199).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70378).addRange(70384,70393).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416),i.addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(70656,70730).addRange(70736,70745).addRange(70750,70753).addRange(70784,70853).addRange(70864,70873).addRange(71040,71093).addRange(71096,71104).addRange(71128,71133).addRange(71168,71232).addRange(71248,71257).addRange(71296,71352).addRange(71360,71369).addRange(71424,71450).addRange(71453,71467).addRange(71472,71481).addRange(71488,71494).addRange(71680,71738).addRange(71840,71913).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72003).addRange(72016,72025).addRange(72096,72103).addRange(72106,72151).addRange(72154,72161).addRange(72163,72164).addRange(72192,72254).addRange(72272,72345).addRange(72368,72440).addRange(72704,72712).addRange(72714,72758).addRange(72760,72768).addRange(72784,72793).addRange(72818,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966).addRange(72968,72969),i.addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129).addRange(73440,73462).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92784,92862).addRange(92864,92873).addRange(92880,92909).addRange(92912,92916).addRange(92928,92982).addRange(92992,92995).addRange(93008,93017).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94177).addRange(94179,94180).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113821,113822),i.addRange(118528,118573).addRange(118576,118598).addRange(119141,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(120782,120831).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122624,122654).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123536,123566).addRange(123584,123641),i.addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125136,125142).addRange(125184,125259).addRange(125264,125273).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(130032,130041).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546).addRange(917760,917999),t.exports=i},20567:(t,e,n)=>{const i=n(78776)(170,181,186,748,750,895,902,908,1369,1749,1791,1808,1969,2042,2074,2084,2088,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3165,3200,3261,3389,3406,3517,3716,3749,3773,3782,3840,4159,4193,4238,4295,4301,4696,4800,6103,6108,6314,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,42963,43259,43471,43642,43697,43712,43714,64285,64318,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73648,94032,94179,119970,119995,120134,123214,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1488,1514).addRange(1519,1522).addRange(1568,1610).addRange(1646,1647).addRange(1649,1747).addRange(1765,1766).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2036,2037).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2249).addRange(2308,2361).addRange(2392,2401).addRange(2417,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611),i.addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3293,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526),i.addRange(3585,3632).addRange(3634,3635).addRange(3648,3654).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198).addRange(4206,4208).addRange(4213,4225).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6264).addRange(6272,6312),i.addRange(6320,6389).addRange(6400,6430).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(11568,11623).addRange(11648,11670),i.addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12293,12295).addRange(12321,12329).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12443,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42623,42653).addRange(42656,42735).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43494,43503).addRange(43514,43518).addRange(43520,43560).addRange(43584,43586),i.addRange(43588,43595).addRange(43616,43638).addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43741).addRange(43744,43754).addRange(43762,43764).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204),i.addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680),i.addRange(68736,68786).addRange(68800,68850).addRange(68864,68899).addRange(69248,69289).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144),i.addRange(72203,72242).addRange(72284,72329).addRange(72368,72440).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73440,73458).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94099,94111).addRange(94176,94177).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993),i.addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,177976),i.addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},19586:(t,e,n)=>{const i=n(78776)(94180);i.addRange(12294,12295).addRange(12321,12329).addRange(12344,12346).addRange(13312,19903).addRange(19968,40959).addRange(63744,64109).addRange(64112,64217).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110960,111355).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},36983:(t,e,n)=>{const i=n(78776)();i.addRange(8204,8205),t.exports=i},72947:(t,e,n)=>{const i=n(78776)(6586,43705);i.addRange(3648,3652).addRange(3776,3780).addRange(6581,6583).addRange(43701,43702).addRange(43707,43708),t.exports=i},49111:(t,e,n)=>{const i=n(78776)(170,181,186,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,402,405,414,417,419,421,424,429,432,436,438,454,457,460,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,499,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,572,578,583,585,587,589,837,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7839,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8126,8305,8319,8458,8467,8495,8500,8505,8526,8580,11361,11368,11370,11372,11377,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42787,42789,42791,42793,42795,42797,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42874,42876,42879,42881,42883,42885,42887,42892,42894,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42927,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42961,42963,42965,42967,42969,42998,67456,119995,120779);i.addRange(97,122).addRange(223,246).addRange(248,255).addRange(311,312).addRange(328,329).addRange(382,384).addRange(396,397).addRange(409,411).addRange(426,427).addRange(441,442).addRange(445,447).addRange(476,477).addRange(495,496).addRange(563,569).addRange(575,576).addRange(591,659).addRange(661,696).addRange(704,705).addRange(736,740).addRange(890,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1019,1020).addRange(1072,1119).addRange(1230,1231).addRange(1376,1416).addRange(4304,4346).addRange(4349,4351).addRange(5112,5117).addRange(7296,7304).addRange(7424,7615).addRange(7829,7837).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8071).addRange(8080,8087).addRange(8096,8103).addRange(8112,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151),i.addRange(8160,8167).addRange(8178,8180).addRange(8182,8183).addRange(8336,8348).addRange(8462,8463).addRange(8508,8509).addRange(8518,8521).addRange(8560,8575).addRange(9424,9449).addRange(11312,11359).addRange(11365,11366).addRange(11379,11380).addRange(11382,11389).addRange(11491,11492).addRange(11520,11557).addRange(42651,42653).addRange(42799,42801).addRange(42863,42872).addRange(42899,42901).addRange(43e3,43002).addRange(43824,43866).addRange(43868,43880).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67459,67461).addRange(67463,67504).addRange(67506,67514).addRange(68800,68850).addRange(71872,71903).addRange(93792,93823).addRange(119834,119859).addRange(119886,119892).addRange(119894,119911).addRange(119938,119963).addRange(119990,119993).addRange(119997,120003).addRange(120005,120015).addRange(120042,120067).addRange(120094,120119).addRange(120146,120171).addRange(120198,120223).addRange(120250,120275).addRange(120302,120327),i.addRange(120354,120379).addRange(120406,120431).addRange(120458,120485).addRange(120514,120538).addRange(120540,120545).addRange(120572,120596).addRange(120598,120603).addRange(120630,120654).addRange(120656,120661).addRange(120688,120712).addRange(120714,120719).addRange(120746,120770).addRange(120772,120777).addRange(122624,122633).addRange(122635,122654).addRange(125218,125251),t.exports=i},65667:(t,e,n)=>{const i=n(78776)(43,94,124,126,172,177,215,247,981,8214,8256,8260,8274,8417,8450,8455,8469,8484,8523,8669,9084,9143,9168,9698,9700,9792,9794,64297,65128,65291,65340,65342,65372,65374,65506,119970,119995,120134,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(60,62).addRange(976,978).addRange(1008,1009).addRange(1012,1014).addRange(1542,1544).addRange(8242,8244).addRange(8289,8292).addRange(8314,8318).addRange(8330,8334).addRange(8400,8412).addRange(8421,8422).addRange(8427,8431).addRange(8458,8467).addRange(8472,8477).addRange(8488,8489).addRange(8492,8493).addRange(8495,8497).addRange(8499,8504).addRange(8508,8521).addRange(8592,8615).addRange(8617,8622).addRange(8624,8625).addRange(8630,8631).addRange(8636,8667).addRange(8676,8677).addRange(8692,8959).addRange(8968,8971).addRange(8992,8993).addRange(9115,9141).addRange(9180,9186).addRange(9632,9633).addRange(9646,9655).addRange(9660,9665).addRange(9670,9671).addRange(9674,9675).addRange(9679,9683).addRange(9703,9708).addRange(9720,9727).addRange(9733,9734).addRange(9824,9827).addRange(9837,9839).addRange(10176,10239).addRange(10496,11007).addRange(11056,11076).addRange(11079,11084).addRange(65121,65126).addRange(65308,65310).addRange(65513,65516).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967),i.addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705),t.exports=i},20052:(t,e,n)=>{const i=n(78776)();i.addRange(64976,65007).addRange(65534,65535).addRange(131070,131071).addRange(196606,196607).addRange(262142,262143).addRange(327678,327679).addRange(393214,393215).addRange(458750,458751).addRange(524286,524287).addRange(589822,589823).addRange(655358,655359).addRange(720894,720895).addRange(786430,786431).addRange(851966,851967).addRange(917502,917503).addRange(983038,983039).addRange(1048574,1048575).addRange(1114110,1114111),t.exports=i},60514:(t,e,n)=>{const i=n(78776)(96,169,174,182,187,191,215,247,12336);i.addRange(33,47).addRange(58,64).addRange(91,94).addRange(123,126).addRange(161,167).addRange(171,172).addRange(176,177).addRange(8208,8231).addRange(8240,8254).addRange(8257,8275).addRange(8277,8286).addRange(8592,9311).addRange(9472,10101).addRange(10132,11263).addRange(11776,11903).addRange(12289,12291).addRange(12296,12320).addRange(64830,64831).addRange(65093,65094),t.exports=i},78588:(t,e,n)=>{const i=n(78776)(32,133);i.addRange(9,13).addRange(8206,8207).addRange(8232,8233),t.exports=i},1053:(t,e,n)=>{const i=n(78776)(34,39,171,187,11842,65282,65287);i.addRange(8216,8223).addRange(8249,8250).addRange(12300,12303).addRange(12317,12319).addRange(65089,65092).addRange(65378,65379),t.exports=i},25361:(t,e,n)=>{const i=n(78776)();i.addRange(11904,11929).addRange(11931,12019).addRange(12032,12245),t.exports=i},94375:(t,e,n)=>{const i=n(78776)();i.addRange(127462,127487),t.exports=i},89697:(t,e,n)=>{const i=n(78776)(33,46,63,1417,1748,2041,2103,2105,4962,5742,6147,6153,11822,11836,12290,42239,42739,42743,43311,44011,65106,65281,65294,65311,65377,70093,70313,72004,72006,92917,92996,93848,113823,121480);i.addRange(1565,1567).addRange(1792,1794).addRange(2109,2110).addRange(2404,2405).addRange(4170,4171).addRange(4967,4968).addRange(5941,5942).addRange(6468,6469).addRange(6824,6827).addRange(7002,7003).addRange(7006,7007).addRange(7037,7038).addRange(7227,7228).addRange(7294,7295).addRange(8252,8253).addRange(8263,8265).addRange(11859,11860).addRange(42510,42511).addRange(43126,43127).addRange(43214,43215).addRange(43464,43465).addRange(43613,43615).addRange(43760,43761).addRange(65110,65111).addRange(68182,68183).addRange(69461,69465).addRange(69510,69513).addRange(69703,69704).addRange(69822,69825).addRange(69953,69955).addRange(70085,70086).addRange(70110,70111).addRange(70200,70201).addRange(70203,70204).addRange(70731,70732).addRange(71106,71107).addRange(71113,71127).addRange(71233,71234).addRange(71484,71486).addRange(72258,72259).addRange(72347,72348).addRange(72769,72770).addRange(73463,73464).addRange(92782,92783).addRange(92983,92984),t.exports=i},35514:(t,e,n)=>{const i=n(78776)(303,585,616,669,690,1011,1110,1112,7522,7574,7588,7592,7725,7883,8305,11388,122650);i.addRange(105,106).addRange(8520,8521).addRange(119842,119843).addRange(119894,119895).addRange(119946,119947).addRange(119998,119999).addRange(120050,120051).addRange(120102,120103).addRange(120154,120155).addRange(120206,120207).addRange(120258,120259).addRange(120310,120311).addRange(120362,120363).addRange(120414,120415).addRange(120466,120467),t.exports=i},21043:(t,e,n)=>{const i=n(78776)(33,44,46,63,894,903,1417,1475,1548,1563,1748,1804,2142,3848,5742,6106,11822,11836,11841,11852,43311,43743,44011,65281,65292,65294,65311,65377,65380,66463,66512,67671,67871,70093,70313,72004,72006,72817,92917,92996,113823);i.addRange(58,59).addRange(1565,1567).addRange(1792,1802).addRange(2040,2041).addRange(2096,2110).addRange(2404,2405).addRange(3674,3675).addRange(3853,3858).addRange(4170,4171).addRange(4961,4968).addRange(5867,5869).addRange(5941,5942).addRange(6100,6102).addRange(6146,6149).addRange(6152,6153).addRange(6468,6469).addRange(6824,6827).addRange(7002,7003).addRange(7005,7007).addRange(7037,7038).addRange(7227,7231).addRange(7294,7295).addRange(8252,8253).addRange(8263,8265).addRange(11854,11855).addRange(11859,11860).addRange(12289,12290).addRange(42238,42239).addRange(42509,42511).addRange(42739,42743).addRange(43126,43127).addRange(43214,43215).addRange(43463,43465).addRange(43613,43615).addRange(43760,43761).addRange(65104,65106).addRange(65108,65111).addRange(65306,65307).addRange(68182,68183).addRange(68336,68341).addRange(68410,68415).addRange(68505,68508).addRange(69461,69465).addRange(69510,69513).addRange(69703,69709).addRange(69822,69825).addRange(69953,69955).addRange(70085,70086).addRange(70110,70111).addRange(70200,70204).addRange(70731,70733),i.addRange(70746,70747).addRange(71106,71109).addRange(71113,71127).addRange(71233,71234).addRange(71484,71486).addRange(72258,72259).addRange(72347,72348).addRange(72353,72354).addRange(72769,72771).addRange(73463,73464).addRange(74864,74868).addRange(92782,92783).addRange(92983,92985).addRange(93847,93848).addRange(121479,121482),t.exports=i},75771:(t,e,n)=>{const i=n(78776)(64017,64031,64033);i.addRange(13312,19903).addRange(19968,40959).addRange(64014,64015).addRange(64019,64020).addRange(64035,64036).addRange(64039,64041).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(196608,201546),t.exports=i},28368:(t,e,n)=>{const i=n(78776)(256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,388,418,420,425,428,437,444,452,455,458,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,497,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,880,882,886,895,902,908,975,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1012,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,4295,4301,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8450,8455,8469,8484,8486,8488,8517,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,42997,119964,119970,120134,120778);i.addRange(65,90).addRange(192,214).addRange(216,222).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(978,980).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5024,5109).addRange(7312,7354).addRange(7357,7359).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8120,8123).addRange(8136,8139).addRange(8152,8155).addRange(8168,8172).addRange(8184,8187).addRange(8459,8461).addRange(8464,8466).addRange(8473,8477).addRange(8490,8493).addRange(8496,8499).addRange(8510,8511).addRange(8544,8559),i.addRange(9398,9423).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(119808,119833).addRange(119860,119885).addRange(119912,119937).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119989).addRange(120016,120041).addRange(120068,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120120,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120172,120197).addRange(120224,120249).addRange(120276,120301).addRange(120328,120353).addRange(120380,120405).addRange(120432,120457).addRange(120488,120512).addRange(120546,120570).addRange(120604,120628).addRange(120662,120686).addRange(120720,120744).addRange(125184,125217).addRange(127280,127305).addRange(127312,127337).addRange(127344,127369),t.exports=i},27186:(t,e,n)=>{const i=n(78776)(6159);i.addRange(6155,6157).addRange(65024,65039).addRange(917760,917999),t.exports=i},61846:(t,e,n)=>{const i=n(78776)(32,133,160,5760,8239,8287,12288);i.addRange(9,13).addRange(8192,8202).addRange(8232,8233),t.exports=i},74003:(t,e,n)=>{const i=n(78776)(95,170,181,183,186,748,750,895,908,1369,1471,1479,1791,2042,2045,2482,2519,2556,2558,2620,2641,2654,2768,2929,2972,3024,3031,3165,3517,3530,3542,3716,3749,3782,3840,3893,3895,3897,4038,4295,4301,4696,4800,6103,6823,8025,8027,8029,8126,8276,8305,8319,8417,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,42963,43052,43259,64318,65137,65139,65143,65145,65147,65149,65343,66045,66272,67592,67644,68159,69415,69826,70006,70108,70206,70280,70480,70487,70855,71236,71945,72263,72349,73018,73648,119970,119995,120134,121461,121476,123214,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(48,57).addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(768,884).addRange(886,887).addRange(891,893).addRange(902,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1155,1159).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1488,1514).addRange(1519,1522).addRange(1552,1562).addRange(1568,1641).addRange(1646,1747).addRange(1749,1756).addRange(1759,1768).addRange(1770,1788).addRange(1808,1866).addRange(1869,1969).addRange(1984,2037).addRange(2048,2093).addRange(2112,2139).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2200,2273).addRange(2275,2403).addRange(2406,2415).addRange(2417,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525),i.addRange(2527,2531).addRange(2534,2545).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2677).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2799).addRange(2809,2815).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2927).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001),i.addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3055).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3200,3203).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3314).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3406).addRange(3412,3415).addRange(3423,3427).addRange(3430,3439).addRange(3450,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3571).addRange(3585,3642).addRange(3648,3662).addRange(3664,3673).addRange(3713,3714),i.addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3789).addRange(3792,3801).addRange(3804,3807).addRange(3864,3865).addRange(3872,3881).addRange(3902,3911).addRange(3913,3948).addRange(3953,3972).addRange(3974,3991).addRange(3993,4028).addRange(4096,4169).addRange(4176,4253).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4959).addRange(4969,4977).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5909).addRange(5919,5940).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6099).addRange(6108,6109).addRange(6112,6121),i.addRange(6155,6157).addRange(6159,6169).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6470,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6656,6683).addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6832,6845).addRange(6847,6862).addRange(6912,6988).addRange(6992,7001).addRange(7019,7027).addRange(7040,7155).addRange(7168,7223).addRange(7232,7241).addRange(7245,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7376,7378).addRange(7380,7418).addRange(7424,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8255,8256).addRange(8336,8348).addRange(8400,8412).addRange(8421,8432),i.addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11507).addRange(11520,11557).addRange(11568,11623).addRange(11647,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11775).addRange(12293,12295).addRange(12321,12335).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12441,12442).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42539).addRange(42560,42607).addRange(42612,42621).addRange(42623,42737).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43047).addRange(43072,43123).addRange(43136,43205).addRange(43216,43225).addRange(43232,43255),i.addRange(43261,43309).addRange(43312,43347).addRange(43360,43388).addRange(43392,43456).addRange(43471,43481).addRange(43488,43518).addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43616,43638).addRange(43642,43714).addRange(43739,43741).addRange(43744,43759).addRange(43762,43766).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44010).addRange(44012,44013).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64605).addRange(64612,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65017).addRange(65024,65039).addRange(65056,65071).addRange(65075,65076).addRange(65101,65103).addRange(65151,65276).addRange(65296,65305).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470),i.addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897),i.addRange(67968,68023).addRange(68030,68031).addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68326).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68864,68903).addRange(68912,68921).addRange(69248,69289).addRange(69291,69292).addRange(69296,69297).addRange(69376,69404).addRange(69424,69456).addRange(69488,69509).addRange(69552,69572).addRange(69600,69622).addRange(69632,69702).addRange(69734,69749).addRange(69759,69818).addRange(69840,69864).addRange(69872,69881).addRange(69888,69940).addRange(69942,69951).addRange(69956,69959).addRange(69968,70003).addRange(70016,70084).addRange(70089,70092).addRange(70094,70106).addRange(70144,70161).addRange(70163,70199).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70378).addRange(70384,70393).addRange(70400,70403).addRange(70405,70412),i.addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(70656,70730).addRange(70736,70745).addRange(70750,70753).addRange(70784,70853).addRange(70864,70873).addRange(71040,71093).addRange(71096,71104).addRange(71128,71133).addRange(71168,71232).addRange(71248,71257).addRange(71296,71352).addRange(71360,71369).addRange(71424,71450).addRange(71453,71467).addRange(71472,71481).addRange(71488,71494).addRange(71680,71738).addRange(71840,71913).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72003).addRange(72016,72025).addRange(72096,72103).addRange(72106,72151).addRange(72154,72161).addRange(72163,72164).addRange(72192,72254).addRange(72272,72345).addRange(72368,72440).addRange(72704,72712).addRange(72714,72758).addRange(72760,72768).addRange(72784,72793).addRange(72818,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966),i.addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129).addRange(73440,73462).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92784,92862).addRange(92864,92873).addRange(92880,92909).addRange(92912,92916).addRange(92928,92982).addRange(92992,92995).addRange(93008,93017).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94177).addRange(94179,94180).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817),i.addRange(113821,113822).addRange(118528,118573).addRange(118576,118598).addRange(119141,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(120782,120831).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122624,122654).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123536,123566),i.addRange(123584,123641).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125136,125142).addRange(125184,125259).addRange(125264,125273).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(130032,130041).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546).addRange(917760,917999),t.exports=i},3468:(t,e,n)=>{const i=n(78776)(170,181,186,748,750,895,902,908,1369,1749,1791,1808,1969,2042,2074,2084,2088,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3165,3200,3261,3389,3406,3517,3634,3716,3749,3762,3773,3782,3840,4159,4193,4238,4295,4301,4696,4800,6103,6108,6314,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,42963,43259,43471,43642,43697,43712,43714,64285,64318,65137,65139,65143,65145,65147,65149,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73648,94032,94179,119970,119995,120134,123214,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(891,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1488,1514).addRange(1519,1522).addRange(1568,1610).addRange(1646,1647).addRange(1649,1747).addRange(1765,1766).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2036,2037).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2249).addRange(2308,2361).addRange(2392,2401).addRange(2417,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611),i.addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3293,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526),i.addRange(3585,3632).addRange(3648,3654).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198).addRange(4206,4208).addRange(4213,4225).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6264).addRange(6272,6312).addRange(6320,6389).addRange(6400,6430),i.addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694),i.addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12293,12295).addRange(12321,12329).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42623,42653).addRange(42656,42735).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43494,43503).addRange(43514,43518).addRange(43520,43560).addRange(43584,43586).addRange(43588,43595).addRange(43616,43638),i.addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43741).addRange(43744,43754).addRange(43762,43764).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64605).addRange(64612,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65017).addRange(65151,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65437).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256),i.addRange(66304,66335).addRange(66349,66378).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786),i.addRange(68800,68850).addRange(68864,68899).addRange(69248,69289).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144).addRange(72203,72242),i.addRange(72284,72329).addRange(72368,72440).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73440,73458).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94099,94111).addRange(94176,94177).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003),i.addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205),i.addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},13090:(t,e,n)=>{const i=n(78776)(181,895,902,908,4295,4301,8025,8027,8029,8126,8450,8455,8469,8484,8486,8488,8505,8526,11559,11565,42963,43002,119970,119995,120134);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,442).addRange(444,447).addRange(452,659).addRange(661,687).addRange(880,883).addRange(886,887).addRange(891,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(4256,4293).addRange(4304,4346).addRange(4349,4351).addRange(5024,5109).addRange(5112,5117).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7424,7467).addRange(7531,7543).addRange(7545,7578).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8500).addRange(8508,8511).addRange(8517,8521).addRange(8579,8580),i.addRange(11264,11387).addRange(11390,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(42560,42605).addRange(42624,42651).addRange(42786,42863).addRange(42865,42887).addRange(42891,42894).addRange(42896,42954).addRange(42960,42961).addRange(42965,42969).addRange(42997,42998).addRange(43824,43866).addRange(43872,43880).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(65345,65370).addRange(66560,66639).addRange(66736,66771).addRange(66776,66811).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68736,68786).addRange(68800,68850).addRange(71840,71903).addRange(93760,93823).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144),i.addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122633).addRange(122635,122654).addRange(125184,125251),t.exports=i},8526:(t,e,n)=>{const i=n(78776)(41,93,125,3899,3901,5788,8262,8318,8334,8969,8971,9002,10089,10091,10093,10095,10097,10099,10101,10182,10215,10217,10219,10221,10223,10628,10630,10632,10634,10636,10638,10640,10642,10644,10646,10648,10713,10715,10749,11811,11813,11815,11817,11862,11864,11866,11868,12297,12299,12301,12303,12305,12309,12311,12313,12315,64830,65048,65078,65080,65082,65084,65086,65088,65090,65092,65096,65114,65116,65118,65289,65341,65373,65376,65379);i.addRange(12318,12319),t.exports=i},26100:(t,e,n)=>{const i=n(78776)(95,8276,65343);i.addRange(8255,8256).addRange(65075,65076).addRange(65101,65103),t.exports=i},80282:(t,e,n)=>{const i=n(78776)();i.addRange(0,31).addRange(127,159),t.exports=i},15352:(t,e,n)=>{const i=n(78776)(36,1423,1547,2555,2801,3065,3647,6107,43064,65020,65129,65284,123647,126128);i.addRange(162,165).addRange(2046,2047).addRange(2546,2547).addRange(8352,8384).addRange(65504,65505).addRange(65509,65510).addRange(73693,73696),t.exports=i},45647:(t,e,n)=>{const i=n(78776)(45,1418,1470,5120,6150,11799,11802,11840,11869,12316,12336,12448,65112,65123,65293,69293);i.addRange(8208,8213).addRange(11834,11835).addRange(65073,65074),t.exports=i},98349:(t,e,n)=>{const i=n(78776)();i.addRange(48,57).addRange(1632,1641).addRange(1776,1785).addRange(1984,1993).addRange(2406,2415).addRange(2534,2543).addRange(2662,2671).addRange(2790,2799).addRange(2918,2927).addRange(3046,3055).addRange(3174,3183).addRange(3302,3311).addRange(3430,3439).addRange(3558,3567).addRange(3664,3673).addRange(3792,3801).addRange(3872,3881).addRange(4160,4169).addRange(4240,4249).addRange(6112,6121).addRange(6160,6169).addRange(6470,6479).addRange(6608,6617).addRange(6784,6793).addRange(6800,6809).addRange(6992,7001).addRange(7088,7097).addRange(7232,7241).addRange(7248,7257).addRange(42528,42537).addRange(43216,43225).addRange(43264,43273).addRange(43472,43481).addRange(43504,43513).addRange(43600,43609).addRange(44016,44025).addRange(65296,65305).addRange(66720,66729).addRange(68912,68921).addRange(69734,69743).addRange(69872,69881).addRange(69942,69951).addRange(70096,70105).addRange(70384,70393).addRange(70736,70745).addRange(70864,70873).addRange(71248,71257).addRange(71360,71369).addRange(71472,71481).addRange(71904,71913).addRange(72016,72025),i.addRange(72784,72793).addRange(73040,73049).addRange(73120,73129).addRange(92768,92777).addRange(92864,92873).addRange(93008,93017).addRange(120782,120831).addRange(123200,123209).addRange(123632,123641).addRange(125264,125273).addRange(130032,130041),t.exports=i},18220:(t,e,n)=>{const i=n(78776)(6846);i.addRange(1160,1161).addRange(8413,8416).addRange(8418,8420).addRange(42608,42610),t.exports=i},88482:(t,e,n)=>{const i=n(78776)(187,8217,8221,8250,11779,11781,11786,11789,11805,11809);t.exports=i},87586:(t,e,n)=>{const i=n(78776)(173,1564,1757,1807,2274,6158,65279,69821,69837,917505);i.addRange(1536,1541).addRange(2192,2193).addRange(8203,8207).addRange(8234,8238).addRange(8288,8292).addRange(8294,8303).addRange(65529,65531).addRange(78896,78904).addRange(113824,113827).addRange(119155,119162).addRange(917536,917631),t.exports=i},88147:(t,e,n)=>{const i=n(78776)(171,8216,8223,8249,11778,11780,11785,11788,11804,11808);i.addRange(8219,8220),t.exports=i},65964:(t,e,n)=>{const i=n(78776)(170,181,186,748,750,895,902,908,1369,1749,1791,1808,1969,2042,2074,2084,2088,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3165,3200,3261,3389,3406,3517,3716,3749,3773,3782,3840,4159,4193,4238,4295,4301,4696,4800,6103,6108,6314,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,11823,42963,43259,43471,43642,43697,43712,43714,64285,64318,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73648,94032,94179,119970,119995,120134,123214,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1488,1514).addRange(1519,1522).addRange(1568,1610).addRange(1646,1647).addRange(1649,1747).addRange(1765,1766).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2036,2037).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2249).addRange(2308,2361).addRange(2392,2401).addRange(2417,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611),i.addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3293,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526),i.addRange(3585,3632).addRange(3634,3635).addRange(3648,3654).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198).addRange(4206,4208).addRange(4213,4225).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5873,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6264).addRange(6272,6276),i.addRange(6279,6312).addRange(6320,6389).addRange(6400,6430).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8505).addRange(8508,8511).addRange(8517,8521).addRange(8579,8580).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557),i.addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12293,12294).addRange(12337,12341).addRange(12347,12348).addRange(12353,12438).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42623,42653).addRange(42656,42725).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43494,43503).addRange(43514,43518).addRange(43520,43560),i.addRange(43584,43586).addRange(43588,43595).addRange(43616,43638).addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43741).addRange(43744,43754).addRange(43762,43764).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(66176,66204),i.addRange(66208,66256).addRange(66304,66335).addRange(66349,66368).addRange(66370,66377).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680),i.addRange(68736,68786).addRange(68800,68850).addRange(68864,68899).addRange(69248,69289).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144),i.addRange(72203,72242).addRange(72284,72329).addRange(72368,72440).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73440,73458).addRange(73728,74649).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94099,94111).addRange(94176,94177).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003),i.addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205),i.addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},66793:(t,e,n)=>{const i=n(78776)(12295,66369,66378);i.addRange(5870,5872).addRange(8544,8578).addRange(8581,8584).addRange(12321,12329).addRange(12344,12346).addRange(42726,42735).addRange(65856,65908).addRange(66513,66517).addRange(74752,74862),t.exports=i},63061:(t,e,n)=>{const i=n(78776)(8232);t.exports=i},19340:(t,e,n)=>{const i=n(78776)(181,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,402,405,414,417,419,421,424,429,432,436,438,454,457,460,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,499,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,572,578,583,585,587,589,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7839,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8126,8458,8467,8495,8500,8505,8526,8580,11361,11368,11370,11372,11377,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42651,42787,42789,42791,42793,42795,42797,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42863,42874,42876,42879,42881,42883,42885,42887,42892,42894,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42927,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42961,42963,42965,42967,42969,42998,43002,119995,120779);i.addRange(97,122).addRange(223,246).addRange(248,255).addRange(311,312).addRange(328,329).addRange(382,384).addRange(396,397).addRange(409,411).addRange(426,427).addRange(441,442).addRange(445,447).addRange(476,477).addRange(495,496).addRange(563,569).addRange(575,576).addRange(591,659).addRange(661,687).addRange(891,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1019,1020).addRange(1072,1119).addRange(1230,1231).addRange(1376,1416).addRange(4304,4346).addRange(4349,4351).addRange(5112,5117).addRange(7296,7304).addRange(7424,7467).addRange(7531,7543).addRange(7545,7578).addRange(7829,7837).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8071).addRange(8080,8087).addRange(8096,8103).addRange(8112,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151),i.addRange(8160,8167).addRange(8178,8180).addRange(8182,8183).addRange(8462,8463).addRange(8508,8509).addRange(8518,8521).addRange(11312,11359).addRange(11365,11366).addRange(11379,11380).addRange(11382,11387).addRange(11491,11492).addRange(11520,11557).addRange(42799,42801).addRange(42865,42872).addRange(42899,42901).addRange(43824,43866).addRange(43872,43880).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68800,68850).addRange(71872,71903).addRange(93792,93823).addRange(119834,119859).addRange(119886,119892).addRange(119894,119911).addRange(119938,119963).addRange(119990,119993).addRange(119997,120003).addRange(120005,120015).addRange(120042,120067).addRange(120094,120119).addRange(120146,120171).addRange(120198,120223).addRange(120250,120275).addRange(120302,120327).addRange(120354,120379).addRange(120406,120431).addRange(120458,120485).addRange(120514,120538).addRange(120540,120545).addRange(120572,120596).addRange(120598,120603).addRange(120630,120654),i.addRange(120656,120661).addRange(120688,120712).addRange(120714,120719).addRange(120746,120770).addRange(120772,120777).addRange(122624,122633).addRange(122635,122654).addRange(125218,125251),t.exports=i},93748:(t,e,n)=>{const i=n(78776)(1471,1479,1648,1809,2045,2492,2519,2558,2620,2641,2677,2748,2876,2946,3031,3132,3260,3415,3530,3542,3633,3761,3893,3895,3897,4038,4239,6109,6159,6313,6783,7405,7412,11647,43010,43014,43019,43052,43263,43493,43587,43696,43713,64286,66045,66272,68159,69744,69826,70003,70206,70487,70750,72e3,72164,72263,73018,73031,94031,94180,121461,121476,123566);i.addRange(768,879).addRange(1155,1161).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1552,1562).addRange(1611,1631).addRange(1750,1756).addRange(1759,1764).addRange(1767,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2035).addRange(2070,2073).addRange(2075,2083).addRange(2085,2087).addRange(2089,2093).addRange(2137,2139).addRange(2200,2207).addRange(2250,2273).addRange(2275,2307).addRange(2362,2364).addRange(2366,2383).addRange(2385,2391).addRange(2402,2403).addRange(2433,2435).addRange(2494,2500).addRange(2503,2504).addRange(2507,2509).addRange(2530,2531).addRange(2561,2563).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2691).addRange(2750,2757).addRange(2759,2761).addRange(2763,2765).addRange(2786,2787).addRange(2810,2815).addRange(2817,2819).addRange(2878,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2914,2915).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021),i.addRange(3072,3076).addRange(3134,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3201,3203).addRange(3262,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3298,3299).addRange(3328,3331).addRange(3387,3388).addRange(3390,3396).addRange(3398,3400).addRange(3402,3405).addRange(3426,3427).addRange(3457,3459).addRange(3535,3540).addRange(3544,3551).addRange(3570,3571).addRange(3636,3642).addRange(3655,3662).addRange(3764,3772).addRange(3784,3789).addRange(3864,3865).addRange(3902,3903).addRange(3953,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4139,4158).addRange(4182,4185).addRange(4190,4192).addRange(4194,4196).addRange(4199,4205).addRange(4209,4212).addRange(4226,4237).addRange(4250,4253).addRange(4957,4959).addRange(5906,5909).addRange(5938,5940).addRange(5970,5971).addRange(6002,6003).addRange(6068,6099).addRange(6155,6157).addRange(6277,6278).addRange(6432,6443).addRange(6448,6459).addRange(6679,6683),i.addRange(6741,6750).addRange(6752,6780).addRange(6832,6862).addRange(6912,6916).addRange(6964,6980).addRange(7019,7027).addRange(7040,7042).addRange(7073,7085).addRange(7142,7155).addRange(7204,7223).addRange(7376,7378).addRange(7380,7400).addRange(7415,7417).addRange(7616,7679).addRange(8400,8432).addRange(11503,11505).addRange(11744,11775).addRange(12330,12335).addRange(12441,12442).addRange(42607,42610).addRange(42612,42621).addRange(42654,42655).addRange(42736,42737).addRange(43043,43047).addRange(43136,43137).addRange(43188,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43347).addRange(43392,43395).addRange(43443,43456).addRange(43561,43574).addRange(43596,43597).addRange(43643,43645).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43755,43759).addRange(43765,43766).addRange(44003,44010).addRange(44012,44013).addRange(65024,65039).addRange(65056,65071).addRange(66422,66426).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(69291,69292),i.addRange(69446,69456).addRange(69506,69509).addRange(69632,69634).addRange(69688,69702).addRange(69747,69748).addRange(69759,69762).addRange(69808,69818).addRange(69888,69890).addRange(69927,69940).addRange(69957,69958).addRange(70016,70018).addRange(70067,70080).addRange(70089,70092).addRange(70094,70095).addRange(70188,70199).addRange(70367,70378).addRange(70400,70403).addRange(70459,70460).addRange(70462,70468).addRange(70471,70472).addRange(70475,70477).addRange(70498,70499).addRange(70502,70508).addRange(70512,70516).addRange(70709,70726).addRange(70832,70851).addRange(71087,71093).addRange(71096,71104).addRange(71132,71133).addRange(71216,71232).addRange(71339,71351).addRange(71453,71467).addRange(71724,71738).addRange(71984,71989).addRange(71991,71992).addRange(71995,71998).addRange(72002,72003).addRange(72145,72151).addRange(72154,72160).addRange(72193,72202).addRange(72243,72249).addRange(72251,72254).addRange(72273,72283).addRange(72330,72345).addRange(72751,72758).addRange(72760,72767).addRange(72850,72871).addRange(72873,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029),i.addRange(73098,73102).addRange(73104,73105).addRange(73107,73111).addRange(73459,73462).addRange(92912,92916).addRange(92976,92982).addRange(94033,94087).addRange(94095,94098).addRange(94192,94193).addRange(113821,113822).addRange(118528,118573).addRange(118576,118598).addRange(119141,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123184,123190).addRange(123628,123631).addRange(125136,125142).addRange(125252,125258).addRange(917760,917999),t.exports=i},32895:(t,e,n)=>{const i=n(78776)(43,124,126,172,177,215,247,1014,8260,8274,8472,8523,8608,8611,8614,8622,8658,8660,9084,9655,9665,9839,64297,65122,65291,65372,65374,65506,120513,120539,120571,120597,120629,120655,120687,120713,120745,120771);i.addRange(60,62).addRange(1542,1544).addRange(8314,8316).addRange(8330,8332).addRange(8512,8516).addRange(8592,8596).addRange(8602,8603).addRange(8654,8655).addRange(8692,8959).addRange(8992,8993).addRange(9115,9139).addRange(9180,9185).addRange(9720,9727).addRange(10176,10180).addRange(10183,10213).addRange(10224,10239).addRange(10496,10626).addRange(10649,10711).addRange(10716,10747).addRange(10750,11007).addRange(11056,11076).addRange(11079,11084).addRange(65124,65126).addRange(65308,65310).addRange(65513,65516).addRange(126704,126705),t.exports=i},66710:(t,e,n)=>{const i=n(78776)(748,750,884,890,1369,1600,2042,2074,2084,2088,2249,2417,3654,3782,4348,6103,6211,6823,7544,8305,8319,11631,11823,12293,12347,40981,42508,42623,42864,42888,43471,43494,43632,43741,43881,65392,94179,125259);i.addRange(688,705).addRange(710,721).addRange(736,740).addRange(1765,1766).addRange(2036,2037).addRange(7288,7293).addRange(7468,7530).addRange(7579,7615).addRange(8336,8348).addRange(11388,11389).addRange(12337,12341).addRange(12445,12446).addRange(12540,12542).addRange(42232,42237).addRange(42652,42653).addRange(42775,42783).addRange(42994,42996).addRange(43e3,43001).addRange(43763,43764).addRange(43868,43871).addRange(65438,65439).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(92992,92995).addRange(94099,94111).addRange(94176,94177).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(123191,123197),t.exports=i},43026:(t,e,n)=>{const i=n(78776)(94,96,168,175,180,184,749,885,2184,8125,43867,65342,65344,65507);i.addRange(706,709).addRange(722,735).addRange(741,747).addRange(751,767).addRange(900,901).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(12443,12444).addRange(42752,42774).addRange(42784,42785).addRange(42889,42890).addRange(43882,43883).addRange(64434,64450).addRange(127995,127999),t.exports=i},95580:(t,e,n)=>{const i=n(78776)(1471,1479,1648,1809,2045,2362,2364,2381,2433,2492,2509,2558,2620,2641,2677,2748,2765,2817,2876,2879,2893,2946,3008,3021,3072,3076,3132,3201,3260,3263,3270,3405,3457,3530,3542,3633,3761,3893,3895,3897,4038,4226,4237,4253,6086,6109,6159,6313,6450,6683,6742,6752,6754,6783,6964,6972,6978,7142,7149,7405,7412,8417,11647,42607,43010,43014,43019,43052,43263,43443,43493,43587,43596,43644,43696,43713,43766,44005,44008,44013,64286,66045,66272,68159,69633,69744,69826,70003,70095,70196,70206,70367,70464,70726,70750,70842,71229,71339,71341,71351,71998,72003,72160,72263,72767,73018,73031,73109,73111,94031,94180,121461,121476,123566);i.addRange(768,879).addRange(1155,1159).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1552,1562).addRange(1611,1631).addRange(1750,1756).addRange(1759,1764).addRange(1767,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2035).addRange(2070,2073).addRange(2075,2083).addRange(2085,2087).addRange(2089,2093).addRange(2137,2139).addRange(2200,2207).addRange(2250,2273).addRange(2275,2306).addRange(2369,2376).addRange(2385,2391).addRange(2402,2403).addRange(2497,2500).addRange(2530,2531).addRange(2561,2562).addRange(2625,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2690).addRange(2753,2757).addRange(2759,2760).addRange(2786,2787).addRange(2810,2815).addRange(2881,2884).addRange(2901,2902).addRange(2914,2915).addRange(3134,3136).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3276,3277).addRange(3298,3299).addRange(3328,3329).addRange(3387,3388).addRange(3393,3396).addRange(3426,3427),i.addRange(3538,3540).addRange(3636,3642).addRange(3655,3662).addRange(3764,3772).addRange(3784,3789).addRange(3864,3865).addRange(3953,3966).addRange(3968,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4141,4144).addRange(4146,4151).addRange(4153,4154).addRange(4157,4158).addRange(4184,4185).addRange(4190,4192).addRange(4209,4212).addRange(4229,4230).addRange(4957,4959).addRange(5906,5908).addRange(5938,5939).addRange(5970,5971).addRange(6002,6003).addRange(6068,6069).addRange(6071,6077).addRange(6089,6099).addRange(6155,6157).addRange(6277,6278).addRange(6432,6434).addRange(6439,6440).addRange(6457,6459).addRange(6679,6680).addRange(6744,6750).addRange(6757,6764).addRange(6771,6780).addRange(6832,6845).addRange(6847,6862).addRange(6912,6915).addRange(6966,6970).addRange(7019,7027).addRange(7040,7041).addRange(7074,7077).addRange(7080,7081).addRange(7083,7085).addRange(7144,7145).addRange(7151,7153).addRange(7212,7219).addRange(7222,7223).addRange(7376,7378).addRange(7380,7392),i.addRange(7394,7400).addRange(7416,7417).addRange(7616,7679).addRange(8400,8412).addRange(8421,8432).addRange(11503,11505).addRange(11744,11775).addRange(12330,12333).addRange(12441,12442).addRange(42612,42621).addRange(42654,42655).addRange(42736,42737).addRange(43045,43046).addRange(43204,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43345).addRange(43392,43394).addRange(43446,43449).addRange(43452,43453).addRange(43561,43566).addRange(43569,43570).addRange(43573,43574).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43756,43757).addRange(65024,65039).addRange(65056,65071).addRange(66422,66426).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(69291,69292).addRange(69446,69456).addRange(69506,69509).addRange(69688,69702).addRange(69747,69748).addRange(69759,69761).addRange(69811,69814).addRange(69817,69818).addRange(69888,69890).addRange(69927,69931).addRange(69933,69940).addRange(70016,70017).addRange(70070,70078).addRange(70089,70092).addRange(70191,70193),i.addRange(70198,70199).addRange(70371,70378).addRange(70400,70401).addRange(70459,70460).addRange(70502,70508).addRange(70512,70516).addRange(70712,70719).addRange(70722,70724).addRange(70835,70840).addRange(70847,70848).addRange(70850,70851).addRange(71090,71093).addRange(71100,71101).addRange(71103,71104).addRange(71132,71133).addRange(71219,71226).addRange(71231,71232).addRange(71344,71349).addRange(71453,71455).addRange(71458,71461).addRange(71463,71467).addRange(71727,71735).addRange(71737,71738).addRange(71995,71996).addRange(72148,72151).addRange(72154,72155).addRange(72193,72202).addRange(72243,72248).addRange(72251,72254).addRange(72273,72278).addRange(72281,72283).addRange(72330,72342).addRange(72344,72345).addRange(72752,72758).addRange(72760,72765).addRange(72850,72871).addRange(72874,72880).addRange(72882,72883).addRange(72885,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029).addRange(73104,73105).addRange(73459,73460).addRange(92912,92916).addRange(92976,92982).addRange(94095,94098).addRange(113821,113822).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145),i.addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123184,123190).addRange(123628,123631).addRange(125136,125142).addRange(125252,125258).addRange(917760,917999),t.exports=i},90055:(t,e,n)=>{const i=n(78776)(185,8304,11517,12295,66369,66378);i.addRange(48,57).addRange(178,179).addRange(188,190).addRange(1632,1641).addRange(1776,1785).addRange(1984,1993).addRange(2406,2415).addRange(2534,2543).addRange(2548,2553).addRange(2662,2671).addRange(2790,2799).addRange(2918,2927).addRange(2930,2935).addRange(3046,3058).addRange(3174,3183).addRange(3192,3198).addRange(3302,3311).addRange(3416,3422).addRange(3430,3448).addRange(3558,3567).addRange(3664,3673).addRange(3792,3801).addRange(3872,3891).addRange(4160,4169).addRange(4240,4249).addRange(4969,4988).addRange(5870,5872).addRange(6112,6121).addRange(6128,6137).addRange(6160,6169).addRange(6470,6479).addRange(6608,6618).addRange(6784,6793).addRange(6800,6809).addRange(6992,7001).addRange(7088,7097).addRange(7232,7241).addRange(7248,7257).addRange(8308,8313).addRange(8320,8329).addRange(8528,8578).addRange(8581,8585).addRange(9312,9371).addRange(9450,9471).addRange(10102,10131).addRange(12321,12329).addRange(12344,12346).addRange(12690,12693).addRange(12832,12841).addRange(12872,12879).addRange(12881,12895),i.addRange(12928,12937).addRange(12977,12991).addRange(42528,42537).addRange(42726,42735).addRange(43056,43061).addRange(43216,43225).addRange(43264,43273).addRange(43472,43481).addRange(43504,43513).addRange(43600,43609).addRange(44016,44025).addRange(65296,65305).addRange(65799,65843).addRange(65856,65912).addRange(65930,65931).addRange(66273,66299).addRange(66336,66339).addRange(66513,66517).addRange(66720,66729).addRange(67672,67679).addRange(67705,67711).addRange(67751,67759).addRange(67835,67839).addRange(67862,67867).addRange(68028,68029).addRange(68032,68047).addRange(68050,68095).addRange(68160,68168).addRange(68221,68222).addRange(68253,68255).addRange(68331,68335).addRange(68440,68447).addRange(68472,68479).addRange(68521,68527).addRange(68858,68863).addRange(68912,68921).addRange(69216,69246).addRange(69405,69414).addRange(69457,69460).addRange(69573,69579).addRange(69714,69743).addRange(69872,69881).addRange(69942,69951).addRange(70096,70105).addRange(70113,70132).addRange(70384,70393).addRange(70736,70745).addRange(70864,70873).addRange(71248,71257).addRange(71360,71369).addRange(71472,71483),i.addRange(71904,71922).addRange(72016,72025).addRange(72784,72812).addRange(73040,73049).addRange(73120,73129).addRange(73664,73684).addRange(74752,74862).addRange(92768,92777).addRange(92864,92873).addRange(93008,93017).addRange(93019,93025).addRange(93824,93846).addRange(119520,119539).addRange(119648,119672).addRange(120782,120831).addRange(123200,123209).addRange(123632,123641).addRange(125127,125135).addRange(125264,125273).addRange(126065,126123).addRange(126125,126127).addRange(126129,126132).addRange(126209,126253).addRange(126255,126269).addRange(127232,127244).addRange(130032,130041),t.exports=i},25622:(t,e,n)=>{const i=n(78776)(40,91,123,3898,3900,5787,8218,8222,8261,8317,8333,8968,8970,9001,10088,10090,10092,10094,10096,10098,10100,10181,10214,10216,10218,10220,10222,10627,10629,10631,10633,10635,10637,10639,10641,10643,10645,10647,10712,10714,10748,11810,11812,11814,11816,11842,11861,11863,11865,11867,12296,12298,12300,12302,12304,12308,12310,12312,12314,12317,64831,65047,65077,65079,65081,65083,65085,65087,65089,65091,65095,65113,65115,65117,65288,65339,65371,65375,65378);t.exports=i},76288:(t,e,n)=>{const i=n(78776)(173,907,909,930,1328,1424,1564,1757,2111,2143,2274,2436,2473,2481,2526,2564,2601,2609,2612,2615,2621,2653,2692,2702,2706,2729,2737,2740,2758,2762,2816,2820,2857,2865,2868,2910,2948,2961,2971,2973,3017,3085,3089,3113,3141,3145,3159,3213,3217,3241,3252,3269,3273,3295,3312,3341,3345,3397,3401,3456,3460,3506,3516,3541,3543,3715,3717,3723,3748,3750,3781,3783,3912,3992,4029,4045,4294,4681,4695,4697,4745,4785,4799,4801,4823,4881,5997,6001,6158,6431,6751,7039,8024,8026,8028,8030,8117,8133,8156,8181,8191,8335,11158,11558,11687,11695,11703,11711,11719,11727,11735,11743,11930,12352,12592,12687,12831,42962,42964,43470,43519,43815,43823,64311,64317,64319,64322,64325,65107,65127,65141,65511,65548,65575,65595,65598,65935,66462,66939,66955,66963,66966,66978,66994,67002,67462,67505,67593,67638,67670,67827,68100,68116,68120,69247,69290,69821,69941,70112,70162,70279,70281,70286,70302,70404,70441,70449,70452,70458,70748,71956,71959,71990,72713,72759,72872,72967,72970,73019,73022,73062,73065,73103,73106,74863,92767,92863,93018,93026,110580,110588,110591,119893,119965,119981,119994,119996,120004,120070,120085,120093,120122,120127,120133,120145,121504,122887,122914,122917,124903,124908,124911,124927,126468,126496,126499,126504,126515,126520,126522,126536,126538,126540,126544,126547,126552,126554,126556,126558,126560,126563,126571,126579,126584,126589,126591,126602,126628,126634,127168,127184,129939);i.addRange(0,31).addRange(127,159).addRange(888,889).addRange(896,899).addRange(1367,1368).addRange(1419,1420).addRange(1480,1487).addRange(1515,1518).addRange(1525,1541).addRange(1806,1807).addRange(1867,1868).addRange(1970,1983).addRange(2043,2044).addRange(2094,2095).addRange(2140,2141).addRange(2155,2159).addRange(2191,2199).addRange(2445,2446).addRange(2449,2450).addRange(2483,2485).addRange(2490,2491).addRange(2501,2502).addRange(2505,2506).addRange(2511,2518).addRange(2520,2523).addRange(2532,2533).addRange(2559,2560).addRange(2571,2574).addRange(2577,2578).addRange(2618,2619).addRange(2627,2630).addRange(2633,2634).addRange(2638,2640).addRange(2642,2648).addRange(2655,2661).addRange(2679,2688).addRange(2746,2747).addRange(2766,2767).addRange(2769,2783).addRange(2788,2789).addRange(2802,2808).addRange(2829,2830).addRange(2833,2834).addRange(2874,2875).addRange(2885,2886).addRange(2889,2890).addRange(2894,2900).addRange(2904,2907).addRange(2916,2917).addRange(2936,2945).addRange(2955,2957),i.addRange(2966,2968).addRange(2976,2978).addRange(2981,2983).addRange(2987,2989).addRange(3002,3005).addRange(3011,3013).addRange(3022,3023).addRange(3025,3030).addRange(3032,3045).addRange(3067,3071).addRange(3130,3131).addRange(3150,3156).addRange(3163,3164).addRange(3166,3167).addRange(3172,3173).addRange(3184,3190).addRange(3258,3259).addRange(3278,3284).addRange(3287,3292).addRange(3300,3301).addRange(3315,3327).addRange(3408,3411).addRange(3428,3429).addRange(3479,3481).addRange(3518,3519).addRange(3527,3529).addRange(3531,3534).addRange(3552,3557).addRange(3568,3569).addRange(3573,3584).addRange(3643,3646).addRange(3676,3712).addRange(3774,3775).addRange(3790,3791).addRange(3802,3803).addRange(3808,3839).addRange(3949,3952).addRange(4059,4095).addRange(4296,4300).addRange(4302,4303).addRange(4686,4687).addRange(4702,4703).addRange(4750,4751).addRange(4790,4791).addRange(4806,4807).addRange(4886,4887).addRange(4955,4956).addRange(4989,4991).addRange(5018,5023).addRange(5110,5111).addRange(5118,5119),i.addRange(5789,5791).addRange(5881,5887).addRange(5910,5918).addRange(5943,5951).addRange(5972,5983).addRange(6004,6015).addRange(6110,6111).addRange(6122,6127).addRange(6138,6143).addRange(6170,6175).addRange(6265,6271).addRange(6315,6319).addRange(6390,6399).addRange(6444,6447).addRange(6460,6463).addRange(6465,6467).addRange(6510,6511).addRange(6517,6527).addRange(6572,6575).addRange(6602,6607).addRange(6619,6621).addRange(6684,6685).addRange(6781,6782).addRange(6794,6799).addRange(6810,6815).addRange(6830,6831).addRange(6863,6911).addRange(6989,6991).addRange(7156,7163).addRange(7224,7226).addRange(7242,7244).addRange(7305,7311).addRange(7355,7356).addRange(7368,7375).addRange(7419,7423).addRange(7958,7959).addRange(7966,7967).addRange(8006,8007).addRange(8014,8015).addRange(8062,8063).addRange(8148,8149).addRange(8176,8177).addRange(8203,8207).addRange(8234,8238).addRange(8288,8303).addRange(8306,8307).addRange(8349,8351).addRange(8385,8399).addRange(8433,8447).addRange(8588,8591).addRange(9255,9279),i.addRange(9291,9311).addRange(11124,11125).addRange(11508,11512).addRange(11560,11564).addRange(11566,11567).addRange(11624,11630).addRange(11633,11646).addRange(11671,11679).addRange(11870,11903).addRange(12020,12031).addRange(12246,12271).addRange(12284,12287).addRange(12439,12440).addRange(12544,12548).addRange(12772,12783).addRange(42125,42127).addRange(42183,42191).addRange(42540,42559).addRange(42744,42751).addRange(42955,42959).addRange(42970,42993).addRange(43053,43055).addRange(43066,43071).addRange(43128,43135).addRange(43206,43213).addRange(43226,43231).addRange(43348,43358).addRange(43389,43391).addRange(43482,43485).addRange(43575,43583).addRange(43598,43599).addRange(43610,43611).addRange(43715,43738).addRange(43767,43776).addRange(43783,43784).addRange(43791,43792).addRange(43799,43807).addRange(43884,43887).addRange(44014,44015).addRange(44026,44031).addRange(55204,55215).addRange(55239,55242).addRange(55292,63743).addRange(64110,64111).addRange(64218,64255).addRange(64263,64274).addRange(64280,64284).addRange(64451,64466).addRange(64912,64913).addRange(64968,64974).addRange(64976,65007),i.addRange(65050,65055).addRange(65132,65135).addRange(65277,65280).addRange(65471,65473).addRange(65480,65481).addRange(65488,65489).addRange(65496,65497).addRange(65501,65503).addRange(65519,65531).addRange(65534,65535).addRange(65614,65615).addRange(65630,65663).addRange(65787,65791).addRange(65795,65798).addRange(65844,65846).addRange(65949,65951).addRange(65953,65999).addRange(66046,66175).addRange(66205,66207).addRange(66257,66271).addRange(66300,66303).addRange(66340,66348).addRange(66379,66383).addRange(66427,66431).addRange(66500,66503).addRange(66518,66559).addRange(66718,66719).addRange(66730,66735).addRange(66772,66775).addRange(66812,66815).addRange(66856,66863).addRange(66916,66926).addRange(67005,67071).addRange(67383,67391).addRange(67414,67423).addRange(67432,67455).addRange(67515,67583).addRange(67590,67591).addRange(67641,67643).addRange(67645,67646).addRange(67743,67750).addRange(67760,67807).addRange(67830,67834).addRange(67868,67870).addRange(67898,67902).addRange(67904,67967).addRange(68024,68027).addRange(68048,68049).addRange(68103,68107).addRange(68150,68151).addRange(68155,68158),i.addRange(68169,68175).addRange(68185,68191).addRange(68256,68287).addRange(68327,68330).addRange(68343,68351).addRange(68406,68408).addRange(68438,68439).addRange(68467,68471).addRange(68498,68504).addRange(68509,68520).addRange(68528,68607).addRange(68681,68735).addRange(68787,68799).addRange(68851,68857).addRange(68904,68911).addRange(68922,69215).addRange(69294,69295).addRange(69298,69375).addRange(69416,69423).addRange(69466,69487).addRange(69514,69551).addRange(69580,69599).addRange(69623,69631).addRange(69710,69713).addRange(69750,69758).addRange(69827,69839).addRange(69865,69871).addRange(69882,69887).addRange(69960,69967).addRange(70007,70015).addRange(70133,70143).addRange(70207,70271).addRange(70314,70319).addRange(70379,70383).addRange(70394,70399).addRange(70413,70414).addRange(70417,70418).addRange(70469,70470).addRange(70473,70474).addRange(70478,70479).addRange(70481,70486).addRange(70488,70492).addRange(70500,70501).addRange(70509,70511).addRange(70517,70655).addRange(70754,70783).addRange(70856,70863).addRange(70874,71039).addRange(71094,71095).addRange(71134,71167).addRange(71237,71247),i.addRange(71258,71263).addRange(71277,71295).addRange(71354,71359).addRange(71370,71423).addRange(71451,71452).addRange(71468,71471).addRange(71495,71679).addRange(71740,71839).addRange(71923,71934).addRange(71943,71944).addRange(71946,71947).addRange(71993,71994).addRange(72007,72015).addRange(72026,72095).addRange(72104,72105).addRange(72152,72153).addRange(72165,72191).addRange(72264,72271).addRange(72355,72367).addRange(72441,72703).addRange(72774,72783).addRange(72813,72815).addRange(72848,72849).addRange(72887,72959).addRange(73015,73017).addRange(73032,73039).addRange(73050,73055).addRange(73113,73119).addRange(73130,73439).addRange(73465,73647).addRange(73649,73663).addRange(73714,73726).addRange(74650,74751).addRange(74869,74879).addRange(75076,77711).addRange(77811,77823).addRange(78895,82943).addRange(83527,92159).addRange(92729,92735).addRange(92778,92781).addRange(92874,92879).addRange(92910,92911).addRange(92918,92927).addRange(92998,93007).addRange(93048,93052).addRange(93072,93759).addRange(93851,93951).addRange(94027,94030).addRange(94088,94094).addRange(94112,94175).addRange(94181,94191),i.addRange(94194,94207).addRange(100344,100351).addRange(101590,101631).addRange(101641,110575).addRange(110883,110927).addRange(110931,110947).addRange(110952,110959).addRange(111356,113663).addRange(113771,113775).addRange(113789,113791).addRange(113801,113807).addRange(113818,113819).addRange(113824,118527).addRange(118574,118575).addRange(118599,118607).addRange(118724,118783).addRange(119030,119039).addRange(119079,119080).addRange(119155,119162).addRange(119275,119295).addRange(119366,119519).addRange(119540,119551).addRange(119639,119647).addRange(119673,119807).addRange(119968,119969).addRange(119971,119972).addRange(119975,119976).addRange(120075,120076).addRange(120135,120137).addRange(120486,120487).addRange(120780,120781).addRange(121484,121498).addRange(121520,122623).addRange(122655,122879).addRange(122905,122906).addRange(122923,123135).addRange(123181,123183).addRange(123198,123199).addRange(123210,123213).addRange(123216,123535).addRange(123567,123583).addRange(123642,123646).addRange(123648,124895).addRange(125125,125126).addRange(125143,125183).addRange(125260,125263).addRange(125274,125277).addRange(125280,126064).addRange(126133,126208).addRange(126270,126463).addRange(126501,126502),i.addRange(126524,126529).addRange(126531,126534).addRange(126549,126550).addRange(126565,126566).addRange(126620,126624).addRange(126652,126703).addRange(126706,126975).addRange(127020,127023).addRange(127124,127135).addRange(127151,127152).addRange(127222,127231).addRange(127406,127461).addRange(127491,127503).addRange(127548,127551).addRange(127561,127567).addRange(127570,127583).addRange(127590,127743).addRange(128728,128732).addRange(128749,128751).addRange(128765,128767).addRange(128884,128895).addRange(128985,128991).addRange(129004,129007).addRange(129009,129023).addRange(129036,129039).addRange(129096,129103).addRange(129114,129119).addRange(129160,129167).addRange(129198,129199).addRange(129202,129279).addRange(129620,129631).addRange(129646,129647).addRange(129653,129655).addRange(129661,129663).addRange(129671,129679).addRange(129709,129711).addRange(129723,129727).addRange(129734,129743).addRange(129754,129759).addRange(129768,129775).addRange(129783,129791).addRange(129995,130031).addRange(130042,131071).addRange(173792,173823).addRange(177977,177983).addRange(178206,178207).addRange(183970,183983).addRange(191457,194559).addRange(195102,196607).addRange(201547,917759).addRange(918e3,1114111),t.exports=i},61453:(t,e,n)=>{const i=n(78776)(170,186,443,660,1749,1791,1808,1969,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3165,3200,3261,3389,3406,3517,3716,3749,3773,3840,4159,4193,4238,4696,4800,6108,6314,7418,12294,12348,12447,12543,42606,42895,42999,43259,43642,43697,43712,43714,43762,64285,64318,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73648,94032,122634,123214,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(448,451).addRange(1488,1514).addRange(1519,1522).addRange(1568,1599).addRange(1601,1610).addRange(1646,1647).addRange(1649,1747).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2248).addRange(2308,2361).addRange(2392,2401).addRange(2418,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873),i.addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3293,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3585,3632).addRange(3634,3635).addRange(3648,3653).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198),i.addRange(4206,4208).addRange(4213,4225).addRange(4352,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5873,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6210).addRange(6212,6264).addRange(6272,6276).addRange(6279,6312).addRange(6320,6389).addRange(6400,6430).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7287).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414),i.addRange(8501,8504).addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12353,12438).addRange(12449,12538).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,40980).addRange(40982,42124).addRange(42192,42231).addRange(42240,42507).addRange(42512,42527).addRange(42538,42539).addRange(42656,42725).addRange(43003,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43495,43503).addRange(43514,43518).addRange(43520,43560).addRange(43584,43586).addRange(43588,43595).addRange(43616,43631).addRange(43633,43638).addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43740).addRange(43744,43754).addRange(43777,43782),i.addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43968,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65382,65391).addRange(65393,65437).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66368).addRange(66370,66377).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66640,66717).addRange(66816,66855).addRange(66864,66915).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431),i.addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68864,68899).addRange(69248,69289).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448),i.addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144).addRange(72203,72242).addRange(72284,72329).addRange(72368,72440).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73440,73458).addRange(73728,74649).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(93027,93047).addRange(93053,93071).addRange(93952,94026).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110592,110882),i.addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(123136,123180).addRange(123536,123565).addRange(123584,123627).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},88795:(t,e,n)=>{const i=n(78776)(185,6618,8304,8585,11517);i.addRange(178,179).addRange(188,190).addRange(2548,2553).addRange(2930,2935).addRange(3056,3058).addRange(3192,3198).addRange(3416,3422).addRange(3440,3448).addRange(3882,3891).addRange(4969,4988).addRange(6128,6137).addRange(8308,8313).addRange(8320,8329).addRange(8528,8543).addRange(9312,9371).addRange(9450,9471).addRange(10102,10131).addRange(12690,12693).addRange(12832,12841).addRange(12872,12879).addRange(12881,12895).addRange(12928,12937).addRange(12977,12991).addRange(43056,43061).addRange(65799,65843).addRange(65909,65912).addRange(65930,65931).addRange(66273,66299).addRange(66336,66339).addRange(67672,67679).addRange(67705,67711).addRange(67751,67759).addRange(67835,67839).addRange(67862,67867).addRange(68028,68029).addRange(68032,68047).addRange(68050,68095).addRange(68160,68168).addRange(68221,68222).addRange(68253,68255).addRange(68331,68335).addRange(68440,68447).addRange(68472,68479).addRange(68521,68527).addRange(68858,68863).addRange(69216,69246).addRange(69405,69414).addRange(69457,69460).addRange(69573,69579).addRange(69714,69733).addRange(70113,70132),i.addRange(71482,71483).addRange(71914,71922).addRange(72794,72812).addRange(73664,73684).addRange(93019,93025).addRange(93824,93846).addRange(119520,119539).addRange(119648,119672).addRange(125127,125135).addRange(126065,126123).addRange(126125,126127).addRange(126129,126132).addRange(126209,126253).addRange(126255,126269).addRange(127232,127244),t.exports=i},47221:(t,e,n)=>{const i=n(78776)(42,44,92,161,167,191,894,903,1417,1472,1475,1478,1563,1748,2142,2416,2557,2678,2800,3191,3204,3572,3663,3860,3973,4347,5742,7379,8275,11632,11787,11803,11841,12349,12539,42611,42622,43260,43359,44011,65049,65072,65128,65290,65292,65340,65377,66463,66512,66927,67671,67871,67903,68223,70093,70107,70313,70749,70854,71353,71739,72162,73727,92917,92996,94178,113823);i.addRange(33,35).addRange(37,39).addRange(46,47).addRange(58,59).addRange(63,64).addRange(182,183).addRange(1370,1375).addRange(1523,1524).addRange(1545,1546).addRange(1548,1549).addRange(1565,1567).addRange(1642,1645).addRange(1792,1805).addRange(2039,2041).addRange(2096,2110).addRange(2404,2405).addRange(3674,3675).addRange(3844,3858).addRange(4048,4052).addRange(4057,4058).addRange(4170,4175).addRange(4960,4968).addRange(5867,5869).addRange(5941,5942).addRange(6100,6102).addRange(6104,6106).addRange(6144,6149).addRange(6151,6154).addRange(6468,6469).addRange(6686,6687).addRange(6816,6822).addRange(6824,6829).addRange(7002,7008).addRange(7037,7038).addRange(7164,7167).addRange(7227,7231).addRange(7294,7295).addRange(7360,7367).addRange(8214,8215).addRange(8224,8231).addRange(8240,8248).addRange(8251,8254).addRange(8257,8259).addRange(8263,8273).addRange(8277,8286).addRange(11513,11516).addRange(11518,11519).addRange(11776,11777).addRange(11782,11784).addRange(11790,11798).addRange(11800,11801),i.addRange(11806,11807).addRange(11818,11822).addRange(11824,11833).addRange(11836,11839).addRange(11843,11855).addRange(11858,11860).addRange(12289,12291).addRange(42238,42239).addRange(42509,42511).addRange(42738,42743).addRange(43124,43127).addRange(43214,43215).addRange(43256,43258).addRange(43310,43311).addRange(43457,43469).addRange(43486,43487).addRange(43612,43615).addRange(43742,43743).addRange(43760,43761).addRange(65040,65046).addRange(65093,65094).addRange(65097,65100).addRange(65104,65106).addRange(65108,65111).addRange(65119,65121).addRange(65130,65131).addRange(65281,65283).addRange(65285,65287).addRange(65294,65295).addRange(65306,65307).addRange(65311,65312).addRange(65380,65381).addRange(65792,65794).addRange(68176,68184).addRange(68336,68342).addRange(68409,68415).addRange(68505,68508).addRange(69461,69465).addRange(69510,69513).addRange(69703,69709).addRange(69819,69820).addRange(69822,69825).addRange(69952,69955).addRange(70004,70005).addRange(70085,70088).addRange(70109,70111).addRange(70200,70205).addRange(70731,70735).addRange(70746,70747).addRange(71105,71127).addRange(71233,71235),i.addRange(71264,71276).addRange(71484,71486).addRange(72004,72006).addRange(72255,72262).addRange(72346,72348).addRange(72350,72354).addRange(72769,72773).addRange(72816,72817).addRange(73463,73464).addRange(74864,74868).addRange(77809,77810).addRange(92782,92783).addRange(92983,92987).addRange(93847,93850).addRange(121479,121483).addRange(125278,125279),t.exports=i},66733:(t,e,n)=>{const i=n(78776)(166,169,174,176,1154,1758,1769,2038,2554,2928,3066,3199,3407,3449,3859,3892,3894,3896,5741,6464,8468,8485,8487,8489,8494,8522,8527,8659,12292,12320,12880,43065,64975,65508,65512,65952,68296,71487,92997,113820,119365,123215,126124,126254,129008);i.addRange(1421,1422).addRange(1550,1551).addRange(1789,1790).addRange(3059,3064).addRange(3841,3843).addRange(3861,3863).addRange(3866,3871).addRange(4030,4037).addRange(4039,4044).addRange(4046,4047).addRange(4053,4056).addRange(4254,4255).addRange(5008,5017).addRange(6622,6655).addRange(7009,7018).addRange(7028,7036).addRange(8448,8449).addRange(8451,8454).addRange(8456,8457).addRange(8470,8471).addRange(8478,8483).addRange(8506,8507).addRange(8524,8525).addRange(8586,8587).addRange(8597,8601).addRange(8604,8607).addRange(8609,8610).addRange(8612,8613).addRange(8615,8621).addRange(8623,8653).addRange(8656,8657).addRange(8661,8691).addRange(8960,8967).addRange(8972,8991).addRange(8994,9e3).addRange(9003,9083).addRange(9085,9114).addRange(9140,9179).addRange(9186,9254).addRange(9280,9290).addRange(9372,9449).addRange(9472,9654).addRange(9656,9664).addRange(9666,9719).addRange(9728,9838).addRange(9840,10087).addRange(10132,10175).addRange(10240,10495).addRange(11008,11055).addRange(11077,11078).addRange(11085,11123),i.addRange(11126,11157).addRange(11159,11263).addRange(11493,11498).addRange(11856,11857).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12283).addRange(12306,12307).addRange(12342,12343).addRange(12350,12351).addRange(12688,12689).addRange(12694,12703).addRange(12736,12771).addRange(12800,12830).addRange(12842,12871).addRange(12896,12927).addRange(12938,12976).addRange(12992,13311).addRange(19904,19967).addRange(42128,42182).addRange(43048,43051).addRange(43062,43063).addRange(43639,43641).addRange(64832,64847).addRange(65021,65023).addRange(65517,65518).addRange(65532,65533).addRange(65847,65855).addRange(65913,65929).addRange(65932,65934).addRange(65936,65948).addRange(66e3,66044).addRange(67703,67704).addRange(73685,73692).addRange(73697,73713).addRange(92988,92991).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119140).addRange(119146,119148).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119296,119361).addRange(119552,119638).addRange(120832,121343).addRange(121399,121402).addRange(121453,121460).addRange(121462,121475),i.addRange(121477,121478).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127245,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,127994).addRange(128e3,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782).addRange(129792,129938).addRange(129940,129994),t.exports=i},12600:(t,e,n)=>{const i=n(78776)(8233);t.exports=i},61704:(t,e,n)=>{const i=n(78776)();i.addRange(57344,63743).addRange(983040,1048573).addRange(1048576,1114109),t.exports=i},36290:(t,e,n)=>{const i=n(78776)(95,123,125,161,167,171,187,191,894,903,1470,1472,1475,1478,1563,1748,2142,2416,2557,2678,2800,3191,3204,3572,3663,3860,3973,4347,5120,5742,7379,11632,12336,12349,12448,12539,42611,42622,43260,43359,44011,65123,65128,65343,65371,65373,66463,66512,66927,67671,67871,67903,68223,69293,70093,70107,70313,70749,70854,71353,71739,72162,73727,92917,92996,94178,113823);i.addRange(33,35).addRange(37,42).addRange(44,47).addRange(58,59).addRange(63,64).addRange(91,93).addRange(182,183).addRange(1370,1375).addRange(1417,1418).addRange(1523,1524).addRange(1545,1546).addRange(1548,1549).addRange(1565,1567).addRange(1642,1645).addRange(1792,1805).addRange(2039,2041).addRange(2096,2110).addRange(2404,2405).addRange(3674,3675).addRange(3844,3858).addRange(3898,3901).addRange(4048,4052).addRange(4057,4058).addRange(4170,4175).addRange(4960,4968).addRange(5787,5788).addRange(5867,5869).addRange(5941,5942).addRange(6100,6102).addRange(6104,6106).addRange(6144,6154).addRange(6468,6469).addRange(6686,6687).addRange(6816,6822).addRange(6824,6829).addRange(7002,7008).addRange(7037,7038).addRange(7164,7167).addRange(7227,7231).addRange(7294,7295).addRange(7360,7367).addRange(8208,8231).addRange(8240,8259).addRange(8261,8273).addRange(8275,8286).addRange(8317,8318).addRange(8333,8334).addRange(8968,8971).addRange(9001,9002).addRange(10088,10101).addRange(10181,10182),i.addRange(10214,10223).addRange(10627,10648).addRange(10712,10715).addRange(10748,10749).addRange(11513,11516).addRange(11518,11519).addRange(11776,11822).addRange(11824,11855).addRange(11858,11869).addRange(12289,12291).addRange(12296,12305).addRange(12308,12319).addRange(42238,42239).addRange(42509,42511).addRange(42738,42743).addRange(43124,43127).addRange(43214,43215).addRange(43256,43258).addRange(43310,43311).addRange(43457,43469).addRange(43486,43487).addRange(43612,43615).addRange(43742,43743).addRange(43760,43761).addRange(64830,64831).addRange(65040,65049).addRange(65072,65106).addRange(65108,65121).addRange(65130,65131).addRange(65281,65283).addRange(65285,65290).addRange(65292,65295).addRange(65306,65307).addRange(65311,65312).addRange(65339,65341).addRange(65375,65381).addRange(65792,65794).addRange(68176,68184).addRange(68336,68342).addRange(68409,68415).addRange(68505,68508).addRange(69461,69465).addRange(69510,69513).addRange(69703,69709).addRange(69819,69820).addRange(69822,69825).addRange(69952,69955).addRange(70004,70005).addRange(70085,70088).addRange(70109,70111).addRange(70200,70205),i.addRange(70731,70735).addRange(70746,70747).addRange(71105,71127).addRange(71233,71235).addRange(71264,71276).addRange(71484,71486).addRange(72004,72006).addRange(72255,72262).addRange(72346,72348).addRange(72350,72354).addRange(72769,72773).addRange(72816,72817).addRange(73463,73464).addRange(74864,74868).addRange(77809,77810).addRange(92782,92783).addRange(92983,92987).addRange(93847,93850).addRange(121479,121483).addRange(125278,125279),t.exports=i},64661:(t,e,n)=>{const i=n(78776)(32,160,5760,8239,8287,12288);i.addRange(8192,8202).addRange(8232,8233),t.exports=i},54343:(t,e,n)=>{const i=n(78776)(32,160,5760,8239,8287,12288);i.addRange(8192,8202),t.exports=i},11276:(t,e,n)=>{const i=n(78776)(2307,2363,2519,2563,2691,2761,2878,2880,2903,3031,3262,3415,3967,4145,4152,4239,5909,5940,6070,6741,6743,6753,6916,6965,6971,7042,7073,7082,7143,7150,7393,7415,43047,43395,43597,43643,43645,43755,43765,44012,69632,69634,69762,69932,70018,70094,70197,70487,70725,70841,70849,71102,71230,71340,71350,71462,71736,71997,72e3,72002,72164,72249,72343,72751,72766,72873,72881,72884,73110);i.addRange(2366,2368).addRange(2377,2380).addRange(2382,2383).addRange(2434,2435).addRange(2494,2496).addRange(2503,2504).addRange(2507,2508).addRange(2622,2624).addRange(2750,2752).addRange(2763,2764).addRange(2818,2819).addRange(2887,2888).addRange(2891,2892).addRange(3006,3007).addRange(3009,3010).addRange(3014,3016).addRange(3018,3020).addRange(3073,3075).addRange(3137,3140).addRange(3202,3203).addRange(3264,3268).addRange(3271,3272).addRange(3274,3275).addRange(3285,3286).addRange(3330,3331).addRange(3390,3392).addRange(3398,3400).addRange(3402,3404).addRange(3458,3459).addRange(3535,3537).addRange(3544,3551).addRange(3570,3571).addRange(3902,3903).addRange(4139,4140).addRange(4155,4156).addRange(4182,4183).addRange(4194,4196).addRange(4199,4205).addRange(4227,4228).addRange(4231,4236).addRange(4250,4252).addRange(6078,6085).addRange(6087,6088).addRange(6435,6438).addRange(6441,6443).addRange(6448,6449).addRange(6451,6456).addRange(6681,6682).addRange(6755,6756).addRange(6765,6770).addRange(6973,6977),i.addRange(6979,6980).addRange(7078,7079).addRange(7146,7148).addRange(7154,7155).addRange(7204,7211).addRange(7220,7221).addRange(12334,12335).addRange(43043,43044).addRange(43136,43137).addRange(43188,43203).addRange(43346,43347).addRange(43444,43445).addRange(43450,43451).addRange(43454,43456).addRange(43567,43568).addRange(43571,43572).addRange(43758,43759).addRange(44003,44004).addRange(44006,44007).addRange(44009,44010).addRange(69808,69810).addRange(69815,69816).addRange(69957,69958).addRange(70067,70069).addRange(70079,70080).addRange(70188,70190).addRange(70194,70195).addRange(70368,70370).addRange(70402,70403).addRange(70462,70463).addRange(70465,70468).addRange(70471,70472).addRange(70475,70477).addRange(70498,70499).addRange(70709,70711).addRange(70720,70721).addRange(70832,70834).addRange(70843,70846).addRange(71087,71089).addRange(71096,71099).addRange(71216,71218).addRange(71227,71228).addRange(71342,71343).addRange(71456,71457).addRange(71724,71726).addRange(71984,71989).addRange(71991,71992).addRange(72145,72147).addRange(72156,72159).addRange(72279,72280).addRange(73098,73102),i.addRange(73107,73108).addRange(73461,73462).addRange(94033,94087).addRange(94192,94193).addRange(119141,119142).addRange(119149,119154),t.exports=i},93474:(t,e,n)=>{const i=n(78776)();i.addRange(55296,57343),t.exports=i},54581:(t,e,n)=>{const i=n(78776)(36,43,94,96,124,126,172,180,184,215,247,749,885,1014,1154,1547,1758,1769,2038,2184,2801,2928,3199,3407,3449,3647,3859,3892,3894,3896,5741,6107,6464,8125,8260,8274,8468,8485,8487,8489,8494,8527,12292,12320,12880,43867,64297,64975,65122,65129,65284,65291,65342,65344,65372,65374,65952,68296,71487,92997,113820,119365,120513,120539,120571,120597,120629,120655,120687,120713,120745,120771,123215,123647,126124,126128,126254,129008);i.addRange(60,62).addRange(162,166).addRange(168,169).addRange(174,177).addRange(706,709).addRange(722,735).addRange(741,747).addRange(751,767).addRange(900,901).addRange(1421,1423).addRange(1542,1544).addRange(1550,1551).addRange(1789,1790).addRange(2046,2047).addRange(2546,2547).addRange(2554,2555).addRange(3059,3066).addRange(3841,3843).addRange(3861,3863).addRange(3866,3871).addRange(4030,4037).addRange(4039,4044).addRange(4046,4047).addRange(4053,4056).addRange(4254,4255).addRange(5008,5017).addRange(6622,6655).addRange(7009,7018).addRange(7028,7036).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(8314,8316).addRange(8330,8332).addRange(8352,8384).addRange(8448,8449).addRange(8451,8454).addRange(8456,8457).addRange(8470,8472).addRange(8478,8483).addRange(8506,8507).addRange(8512,8516).addRange(8522,8525).addRange(8586,8587).addRange(8592,8967).addRange(8972,9e3).addRange(9003,9254).addRange(9280,9290).addRange(9372,9449),i.addRange(9472,10087).addRange(10132,10180).addRange(10183,10213).addRange(10224,10626).addRange(10649,10711).addRange(10716,10747).addRange(10750,11123).addRange(11126,11157).addRange(11159,11263).addRange(11493,11498).addRange(11856,11857).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12283).addRange(12306,12307).addRange(12342,12343).addRange(12350,12351).addRange(12443,12444).addRange(12688,12689).addRange(12694,12703).addRange(12736,12771).addRange(12800,12830).addRange(12842,12871).addRange(12896,12927).addRange(12938,12976).addRange(12992,13311).addRange(19904,19967).addRange(42128,42182).addRange(42752,42774).addRange(42784,42785).addRange(42889,42890).addRange(43048,43051).addRange(43062,43065).addRange(43639,43641).addRange(43882,43883).addRange(64434,64450).addRange(64832,64847).addRange(65020,65023).addRange(65124,65126).addRange(65308,65310).addRange(65504,65510).addRange(65512,65518).addRange(65532,65533).addRange(65847,65855).addRange(65913,65929).addRange(65932,65934).addRange(65936,65948).addRange(66e3,66044).addRange(67703,67704).addRange(73685,73713),i.addRange(92988,92991).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119140).addRange(119146,119148).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119296,119361).addRange(119552,119638).addRange(120832,121343).addRange(121399,121402).addRange(121453,121460).addRange(121462,121475).addRange(121477,121478).addRange(126704,126705).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127245,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767),i.addRange(129776,129782).addRange(129792,129938).addRange(129940,129994),t.exports=i},8550:(t,e,n)=>{const i=n(78776)(453,456,459,498,8124,8140,8188);i.addRange(8072,8079).addRange(8088,8095).addRange(8104,8111),t.exports=i},22525:(t,e,n)=>{const i=n(78776)(907,909,930,1328,1424,1806,2111,2143,2191,2436,2473,2481,2526,2564,2601,2609,2612,2615,2621,2653,2692,2702,2706,2729,2737,2740,2758,2762,2816,2820,2857,2865,2868,2910,2948,2961,2971,2973,3017,3085,3089,3113,3141,3145,3159,3213,3217,3241,3252,3269,3273,3295,3312,3341,3345,3397,3401,3456,3460,3506,3516,3541,3543,3715,3717,3723,3748,3750,3781,3783,3912,3992,4029,4045,4294,4681,4695,4697,4745,4785,4799,4801,4823,4881,5997,6001,6431,6751,7039,8024,8026,8028,8030,8117,8133,8156,8181,8191,8293,8335,11158,11558,11687,11695,11703,11711,11719,11727,11735,11743,11930,12352,12592,12687,12831,42962,42964,43470,43519,43815,43823,64311,64317,64319,64322,64325,65107,65127,65141,65280,65511,65548,65575,65595,65598,65935,66462,66939,66955,66963,66966,66978,66994,67002,67462,67505,67593,67638,67670,67827,68100,68116,68120,69247,69290,69941,70112,70162,70279,70281,70286,70302,70404,70441,70449,70452,70458,70748,71956,71959,71990,72713,72759,72872,72967,72970,73019,73022,73062,73065,73103,73106,74863,78895,92767,92863,93018,93026,110580,110588,110591,119893,119965,119981,119994,119996,120004,120070,120085,120093,120122,120127,120133,120145,121504,122887,122914,122917,124903,124908,124911,124927,126468,126496,126499,126504,126515,126520,126522,126536,126538,126540,126544,126547,126552,126554,126556,126558,126560,126563,126571,126579,126584,126589,126591,126602,126628,126634,127168,127184,129939);i.addRange(888,889).addRange(896,899).addRange(1367,1368).addRange(1419,1420).addRange(1480,1487).addRange(1515,1518).addRange(1525,1535).addRange(1867,1868).addRange(1970,1983).addRange(2043,2044).addRange(2094,2095).addRange(2140,2141).addRange(2155,2159).addRange(2194,2199).addRange(2445,2446).addRange(2449,2450).addRange(2483,2485).addRange(2490,2491).addRange(2501,2502).addRange(2505,2506).addRange(2511,2518).addRange(2520,2523).addRange(2532,2533).addRange(2559,2560).addRange(2571,2574).addRange(2577,2578).addRange(2618,2619).addRange(2627,2630).addRange(2633,2634).addRange(2638,2640).addRange(2642,2648).addRange(2655,2661).addRange(2679,2688).addRange(2746,2747).addRange(2766,2767).addRange(2769,2783).addRange(2788,2789).addRange(2802,2808).addRange(2829,2830).addRange(2833,2834).addRange(2874,2875).addRange(2885,2886).addRange(2889,2890).addRange(2894,2900).addRange(2904,2907).addRange(2916,2917).addRange(2936,2945).addRange(2955,2957).addRange(2966,2968).addRange(2976,2978).addRange(2981,2983),i.addRange(2987,2989).addRange(3002,3005).addRange(3011,3013).addRange(3022,3023).addRange(3025,3030).addRange(3032,3045).addRange(3067,3071).addRange(3130,3131).addRange(3150,3156).addRange(3163,3164).addRange(3166,3167).addRange(3172,3173).addRange(3184,3190).addRange(3258,3259).addRange(3278,3284).addRange(3287,3292).addRange(3300,3301).addRange(3315,3327).addRange(3408,3411).addRange(3428,3429).addRange(3479,3481).addRange(3518,3519).addRange(3527,3529).addRange(3531,3534).addRange(3552,3557).addRange(3568,3569).addRange(3573,3584).addRange(3643,3646).addRange(3676,3712).addRange(3774,3775).addRange(3790,3791).addRange(3802,3803).addRange(3808,3839).addRange(3949,3952).addRange(4059,4095).addRange(4296,4300).addRange(4302,4303).addRange(4686,4687).addRange(4702,4703).addRange(4750,4751).addRange(4790,4791).addRange(4806,4807).addRange(4886,4887).addRange(4955,4956).addRange(4989,4991).addRange(5018,5023).addRange(5110,5111).addRange(5118,5119).addRange(5789,5791).addRange(5881,5887).addRange(5910,5918),i.addRange(5943,5951).addRange(5972,5983).addRange(6004,6015).addRange(6110,6111).addRange(6122,6127).addRange(6138,6143).addRange(6170,6175).addRange(6265,6271).addRange(6315,6319).addRange(6390,6399).addRange(6444,6447).addRange(6460,6463).addRange(6465,6467).addRange(6510,6511).addRange(6517,6527).addRange(6572,6575).addRange(6602,6607).addRange(6619,6621).addRange(6684,6685).addRange(6781,6782).addRange(6794,6799).addRange(6810,6815).addRange(6830,6831).addRange(6863,6911).addRange(6989,6991).addRange(7156,7163).addRange(7224,7226).addRange(7242,7244).addRange(7305,7311).addRange(7355,7356).addRange(7368,7375).addRange(7419,7423).addRange(7958,7959).addRange(7966,7967).addRange(8006,8007).addRange(8014,8015).addRange(8062,8063).addRange(8148,8149).addRange(8176,8177).addRange(8306,8307).addRange(8349,8351).addRange(8385,8399).addRange(8433,8447).addRange(8588,8591).addRange(9255,9279).addRange(9291,9311).addRange(11124,11125).addRange(11508,11512).addRange(11560,11564).addRange(11566,11567).addRange(11624,11630),i.addRange(11633,11646).addRange(11671,11679).addRange(11870,11903).addRange(12020,12031).addRange(12246,12271).addRange(12284,12287).addRange(12439,12440).addRange(12544,12548).addRange(12772,12783).addRange(42125,42127).addRange(42183,42191).addRange(42540,42559).addRange(42744,42751).addRange(42955,42959).addRange(42970,42993).addRange(43053,43055).addRange(43066,43071).addRange(43128,43135).addRange(43206,43213).addRange(43226,43231).addRange(43348,43358).addRange(43389,43391).addRange(43482,43485).addRange(43575,43583).addRange(43598,43599).addRange(43610,43611).addRange(43715,43738).addRange(43767,43776).addRange(43783,43784).addRange(43791,43792).addRange(43799,43807).addRange(43884,43887).addRange(44014,44015).addRange(44026,44031).addRange(55204,55215).addRange(55239,55242).addRange(55292,55295).addRange(64110,64111).addRange(64218,64255).addRange(64263,64274).addRange(64280,64284).addRange(64451,64466).addRange(64912,64913).addRange(64968,64974).addRange(64976,65007).addRange(65050,65055).addRange(65132,65135).addRange(65277,65278).addRange(65471,65473).addRange(65480,65481).addRange(65488,65489),i.addRange(65496,65497).addRange(65501,65503).addRange(65519,65528).addRange(65534,65535).addRange(65614,65615).addRange(65630,65663).addRange(65787,65791).addRange(65795,65798).addRange(65844,65846).addRange(65949,65951).addRange(65953,65999).addRange(66046,66175).addRange(66205,66207).addRange(66257,66271).addRange(66300,66303).addRange(66340,66348).addRange(66379,66383).addRange(66427,66431).addRange(66500,66503).addRange(66518,66559).addRange(66718,66719).addRange(66730,66735).addRange(66772,66775).addRange(66812,66815).addRange(66856,66863).addRange(66916,66926).addRange(67005,67071).addRange(67383,67391).addRange(67414,67423).addRange(67432,67455).addRange(67515,67583).addRange(67590,67591).addRange(67641,67643).addRange(67645,67646).addRange(67743,67750).addRange(67760,67807).addRange(67830,67834).addRange(67868,67870).addRange(67898,67902).addRange(67904,67967).addRange(68024,68027).addRange(68048,68049).addRange(68103,68107).addRange(68150,68151).addRange(68155,68158).addRange(68169,68175).addRange(68185,68191).addRange(68256,68287).addRange(68327,68330).addRange(68343,68351).addRange(68406,68408),i.addRange(68438,68439).addRange(68467,68471).addRange(68498,68504).addRange(68509,68520).addRange(68528,68607).addRange(68681,68735).addRange(68787,68799).addRange(68851,68857).addRange(68904,68911).addRange(68922,69215).addRange(69294,69295).addRange(69298,69375).addRange(69416,69423).addRange(69466,69487).addRange(69514,69551).addRange(69580,69599).addRange(69623,69631).addRange(69710,69713).addRange(69750,69758).addRange(69827,69836).addRange(69838,69839).addRange(69865,69871).addRange(69882,69887).addRange(69960,69967).addRange(70007,70015).addRange(70133,70143).addRange(70207,70271).addRange(70314,70319).addRange(70379,70383).addRange(70394,70399).addRange(70413,70414).addRange(70417,70418).addRange(70469,70470).addRange(70473,70474).addRange(70478,70479).addRange(70481,70486).addRange(70488,70492).addRange(70500,70501).addRange(70509,70511).addRange(70517,70655).addRange(70754,70783).addRange(70856,70863).addRange(70874,71039).addRange(71094,71095).addRange(71134,71167).addRange(71237,71247).addRange(71258,71263).addRange(71277,71295).addRange(71354,71359).addRange(71370,71423).addRange(71451,71452),i.addRange(71468,71471).addRange(71495,71679).addRange(71740,71839).addRange(71923,71934).addRange(71943,71944).addRange(71946,71947).addRange(71993,71994).addRange(72007,72015).addRange(72026,72095).addRange(72104,72105).addRange(72152,72153).addRange(72165,72191).addRange(72264,72271).addRange(72355,72367).addRange(72441,72703).addRange(72774,72783).addRange(72813,72815).addRange(72848,72849).addRange(72887,72959).addRange(73015,73017).addRange(73032,73039).addRange(73050,73055).addRange(73113,73119).addRange(73130,73439).addRange(73465,73647).addRange(73649,73663).addRange(73714,73726).addRange(74650,74751).addRange(74869,74879).addRange(75076,77711).addRange(77811,77823).addRange(78905,82943).addRange(83527,92159).addRange(92729,92735).addRange(92778,92781).addRange(92874,92879).addRange(92910,92911).addRange(92918,92927).addRange(92998,93007).addRange(93048,93052).addRange(93072,93759).addRange(93851,93951).addRange(94027,94030).addRange(94088,94094).addRange(94112,94175).addRange(94181,94191).addRange(94194,94207).addRange(100344,100351).addRange(101590,101631).addRange(101641,110575).addRange(110883,110927),i.addRange(110931,110947).addRange(110952,110959).addRange(111356,113663).addRange(113771,113775).addRange(113789,113791).addRange(113801,113807).addRange(113818,113819).addRange(113828,118527).addRange(118574,118575).addRange(118599,118607).addRange(118724,118783).addRange(119030,119039).addRange(119079,119080).addRange(119275,119295).addRange(119366,119519).addRange(119540,119551).addRange(119639,119647).addRange(119673,119807).addRange(119968,119969).addRange(119971,119972).addRange(119975,119976).addRange(120075,120076).addRange(120135,120137).addRange(120486,120487).addRange(120780,120781).addRange(121484,121498).addRange(121520,122623).addRange(122655,122879).addRange(122905,122906).addRange(122923,123135).addRange(123181,123183).addRange(123198,123199).addRange(123210,123213).addRange(123216,123535).addRange(123567,123583).addRange(123642,123646).addRange(123648,124895).addRange(125125,125126).addRange(125143,125183).addRange(125260,125263).addRange(125274,125277).addRange(125280,126064).addRange(126133,126208).addRange(126270,126463).addRange(126501,126502).addRange(126524,126529).addRange(126531,126534).addRange(126549,126550).addRange(126565,126566).addRange(126620,126624).addRange(126652,126703),i.addRange(126706,126975).addRange(127020,127023).addRange(127124,127135).addRange(127151,127152).addRange(127222,127231).addRange(127406,127461).addRange(127491,127503).addRange(127548,127551).addRange(127561,127567).addRange(127570,127583).addRange(127590,127743).addRange(128728,128732).addRange(128749,128751).addRange(128765,128767).addRange(128884,128895).addRange(128985,128991).addRange(129004,129007).addRange(129009,129023).addRange(129036,129039).addRange(129096,129103).addRange(129114,129119).addRange(129160,129167).addRange(129198,129199).addRange(129202,129279).addRange(129620,129631).addRange(129646,129647).addRange(129653,129655).addRange(129661,129663).addRange(129671,129679).addRange(129709,129711).addRange(129723,129727).addRange(129734,129743).addRange(129754,129759).addRange(129768,129775).addRange(129783,129791).addRange(129995,130031).addRange(130042,131071).addRange(173792,173823).addRange(177977,177983).addRange(178206,178207).addRange(183970,183983).addRange(191457,194559).addRange(195102,196607).addRange(201547,917504).addRange(917506,917535).addRange(917632,917759).addRange(918e3,983039).addRange(1048574,1048575).addRange(1114110,1114111),t.exports=i},28829:(t,e,n)=>{const i=n(78776)(256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,388,418,420,425,428,437,444,452,455,458,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,497,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,880,882,886,895,902,908,975,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1012,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,4295,4301,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8450,8455,8469,8484,8486,8488,8517,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,42997,119964,119970,120134,120778);i.addRange(65,90).addRange(192,214).addRange(216,222).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(978,980).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5024,5109).addRange(7312,7354).addRange(7357,7359).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8120,8123).addRange(8136,8139).addRange(8152,8155).addRange(8168,8172).addRange(8184,8187).addRange(8459,8461).addRange(8464,8466).addRange(8473,8477).addRange(8490,8493).addRange(8496,8499).addRange(8510,8511).addRange(11264,11311),i.addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(119808,119833).addRange(119860,119885).addRange(119912,119937).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119989).addRange(120016,120041).addRange(120068,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120120,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120172,120197).addRange(120224,120249).addRange(120276,120301).addRange(120328,120353).addRange(120380,120405).addRange(120432,120457).addRange(120488,120512).addRange(120546,120570).addRange(120604,120628).addRange(120662,120686).addRange(120720,120744).addRange(125184,125217),t.exports=i},56129:(t,e,n)=>{const i=n(78776)();i.addRange(125184,125259).addRange(125264,125273).addRange(125278,125279),t.exports=i},50147:(t,e,n)=>{const i=n(78776)();i.addRange(71424,71450).addRange(71453,71467).addRange(71472,71494),t.exports=i},50926:(t,e,n)=>{const i=n(78776)();i.addRange(82944,83526),t.exports=i},56820:(t,e,n)=>{const i=n(78776)(64975,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(1536,1540).addRange(1542,1547).addRange(1549,1562).addRange(1564,1566).addRange(1568,1599).addRange(1601,1610).addRange(1622,1647).addRange(1649,1756).addRange(1758,1791).addRange(1872,1919).addRange(2160,2190).addRange(2192,2193).addRange(2200,2273).addRange(2275,2303).addRange(64336,64450).addRange(64467,64829).addRange(64832,64911).addRange(64914,64967).addRange(65008,65023).addRange(65136,65140).addRange(65142,65276).addRange(69216,69246).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705),t.exports=i},14899:(t,e,n)=>{const i=n(78776)();i.addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(64275,64279),t.exports=i},69929:(t,e,n)=>{const i=n(78776)();i.addRange(68352,68405).addRange(68409,68415),t.exports=i},30706:(t,e,n)=>{const i=n(78776)();i.addRange(6912,6988).addRange(6992,7038),t.exports=i},15533:(t,e,n)=>{const i=n(78776)();i.addRange(42656,42743).addRange(92160,92728),t.exports=i},89979:(t,e,n)=>{const i=n(78776)();i.addRange(92880,92909).addRange(92912,92917),t.exports=i},83765:(t,e,n)=>{const i=n(78776)();i.addRange(7104,7155).addRange(7164,7167),t.exports=i},72693:(t,e,n)=>{const i=n(78776)(2482,2519);i.addRange(2432,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525).addRange(2527,2531).addRange(2534,2558),t.exports=i},10236:(t,e,n)=>{const i=n(78776)();i.addRange(72704,72712).addRange(72714,72758).addRange(72760,72773).addRange(72784,72812),t.exports=i},30468:(t,e,n)=>{const i=n(78776)();i.addRange(746,747).addRange(12549,12591).addRange(12704,12735),t.exports=i},45770:(t,e,n)=>{const i=n(78776)(69759);i.addRange(69632,69709).addRange(69714,69749),t.exports=i},65529:(t,e,n)=>{const i=n(78776)();i.addRange(10240,10495),t.exports=i},74206:(t,e,n)=>{const i=n(78776)();i.addRange(6656,6683).addRange(6686,6687),t.exports=i},96208:(t,e,n)=>{const i=n(78776)();i.addRange(5952,5971),t.exports=i},66700:(t,e,n)=>{const i=n(78776)();i.addRange(5120,5759).addRange(6320,6389).addRange(72368,72383),t.exports=i},93961:(t,e,n)=>{const i=n(78776)();i.addRange(66208,66256),t.exports=i},74121:(t,e,n)=>{const i=n(78776)(66927);i.addRange(66864,66915),t.exports=i},12128:(t,e,n)=>{const i=n(78776)();i.addRange(69888,69940).addRange(69942,69959),t.exports=i},52189:(t,e,n)=>{const i=n(78776)();i.addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43612,43615),t.exports=i},75033:(t,e,n)=>{const i=n(78776)();i.addRange(5024,5109).addRange(5112,5117).addRange(43888,43967),t.exports=i},73507:(t,e,n)=>{const i=n(78776)();i.addRange(69552,69579),t.exports=i},85998:(t,e,n)=>{const i=n(78776)(215,247,884,894,901,903,1541,1548,1563,1567,1600,1757,2274,3647,4347,6149,7379,7393,7418,12294,12448,13055,43310,43471,43867,65279,65392,119970,119995,120134,129008,917505);i.addRange(0,64).addRange(91,96).addRange(123,169).addRange(171,185).addRange(187,191).addRange(697,735).addRange(741,745).addRange(748,767).addRange(2404,2405).addRange(4053,4056).addRange(5867,5869).addRange(5941,5942).addRange(6146,6147).addRange(7401,7404).addRange(7406,7411).addRange(7413,7415).addRange(8192,8203).addRange(8206,8292).addRange(8294,8304).addRange(8308,8318).addRange(8320,8334).addRange(8352,8384).addRange(8448,8485).addRange(8487,8489).addRange(8492,8497).addRange(8499,8525).addRange(8527,8543).addRange(8585,8587).addRange(8592,9254).addRange(9280,9290).addRange(9312,10239).addRange(10496,11123).addRange(11126,11157).addRange(11159,11263).addRange(11776,11869).addRange(12272,12283).addRange(12288,12292).addRange(12296,12320).addRange(12336,12343).addRange(12348,12351).addRange(12443,12444).addRange(12539,12540).addRange(12688,12703).addRange(12736,12771).addRange(12832,12895).addRange(12927,13007).addRange(13144,13311).addRange(19904,19967).addRange(42752,42785).addRange(42888,42890).addRange(43056,43065),i.addRange(43882,43883).addRange(64830,64831).addRange(65040,65049).addRange(65072,65106).addRange(65108,65126).addRange(65128,65131).addRange(65281,65312).addRange(65339,65344).addRange(65371,65381).addRange(65438,65439).addRange(65504,65510).addRange(65512,65518).addRange(65529,65533).addRange(65792,65794).addRange(65799,65843).addRange(65847,65855).addRange(65936,65948).addRange(66e3,66044).addRange(66273,66299).addRange(113824,113827).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119142).addRange(119146,119162).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119520,119539).addRange(119552,119638).addRange(119648,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(126065,126132).addRange(126209,126269),i.addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127487).addRange(127489,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782).addRange(129792,129938).addRange(129940,129994).addRange(130032,130041).addRange(917536,917631),t.exports=i},56036:(t,e,n)=>{const i=n(78776)();i.addRange(994,1007).addRange(11392,11507).addRange(11513,11519),t.exports=i},13563:(t,e,n)=>{const i=n(78776)();i.addRange(73728,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075),t.exports=i},49182:(t,e,n)=>{const i=n(78776)(67592,67644,67647);i.addRange(67584,67589).addRange(67594,67637).addRange(67639,67640),t.exports=i},80084:(t,e,n)=>{const i=n(78776)();i.addRange(77712,77810),t.exports=i},84087:(t,e,n)=>{const i=n(78776)(7467,7544);i.addRange(1024,1156).addRange(1159,1327).addRange(7296,7304).addRange(11744,11775).addRange(42560,42655).addRange(65070,65071),t.exports=i},48844:(t,e,n)=>{const i=n(78776)();i.addRange(66560,66639),t.exports=i},35690:(t,e,n)=>{const i=n(78776)();i.addRange(2304,2384).addRange(2389,2403).addRange(2406,2431).addRange(43232,43263),t.exports=i},57201:(t,e,n)=>{const i=n(78776)(71945);i.addRange(71936,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72006).addRange(72016,72025),t.exports=i},71932:(t,e,n)=>{const i=n(78776)();i.addRange(71680,71739),t.exports=i},95187:(t,e,n)=>{const i=n(78776)();i.addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113820,113823),t.exports=i},49778:(t,e,n)=>{const i=n(78776)();i.addRange(77824,78894).addRange(78896,78904),t.exports=i},42781:(t,e,n)=>{const i=n(78776)();i.addRange(66816,66855),t.exports=i},83103:(t,e,n)=>{const i=n(78776)();i.addRange(69600,69622),t.exports=i},26672:(t,e,n)=>{const i=n(78776)(4696,4800);i.addRange(4608,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4988).addRange(4992,5017).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926),t.exports=i},73661:(t,e,n)=>{const i=n(78776)(4295,4301,11559,11565);i.addRange(4256,4293).addRange(4304,4346).addRange(4348,4351).addRange(7312,7354).addRange(7357,7359).addRange(11520,11557),t.exports=i},85857:(t,e,n)=>{const i=n(78776)();i.addRange(11264,11359).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922),t.exports=i},32096:(t,e,n)=>{const i=n(78776)();i.addRange(66352,66378),t.exports=i},71742:(t,e,n)=>{const i=n(78776)(70480,70487);i.addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70460,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516),t.exports=i},62199:(t,e,n)=>{const i=n(78776)(895,900,902,908,7615,8025,8027,8029,8486,43877,65952);i.addRange(880,883).addRange(885,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,993).addRange(1008,1023).addRange(7462,7466).addRange(7517,7521).addRange(7526,7530).addRange(7936,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190).addRange(65856,65934).addRange(119296,119365),t.exports=i},11931:(t,e,n)=>{const i=n(78776)(2768);i.addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2801).addRange(2809,2815),t.exports=i},27600:(t,e,n)=>{const i=n(78776)();i.addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129),t.exports=i},76482:(t,e,n)=>{const i=n(78776)(2620,2641,2654);i.addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2678),t.exports=i},26294:(t,e,n)=>{const i=n(78776)(12293,12295);i.addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12321,12329).addRange(12344,12347).addRange(13312,19903).addRange(19968,40959).addRange(63744,64109).addRange(64112,64217).addRange(94178,94179).addRange(94192,94193).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},38858:(t,e,n)=>{const i=n(78776)();i.addRange(4352,4607).addRange(12334,12335).addRange(12593,12686).addRange(12800,12830).addRange(12896,12926).addRange(43360,43388).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500),t.exports=i},50043:(t,e,n)=>{const i=n(78776)();i.addRange(68864,68903).addRange(68912,68921),t.exports=i},95307:(t,e,n)=>{const i=n(78776)();i.addRange(5920,5940),t.exports=i},20280:(t,e,n)=>{const i=n(78776)();i.addRange(67808,67826).addRange(67828,67829).addRange(67835,67839),t.exports=i},12674:(t,e,n)=>{const i=n(78776)(64318);i.addRange(1425,1479).addRange(1488,1514).addRange(1519,1524).addRange(64285,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64335),t.exports=i},54058:(t,e,n)=>{const i=n(78776)(127488);i.addRange(12353,12438).addRange(12445,12447).addRange(110593,110879).addRange(110928,110930),t.exports=i},70521:(t,e,n)=>{const i=n(78776)();i.addRange(67648,67669).addRange(67671,67679),t.exports=i},21448:(t,e,n)=>{const i=n(78776)(1648,7405,7412,66045,66272,70459);i.addRange(768,879).addRange(1157,1158).addRange(1611,1621).addRange(2385,2388).addRange(6832,6862).addRange(7376,7378).addRange(7380,7392).addRange(7394,7400).addRange(7416,7417).addRange(7616,7679).addRange(8204,8205).addRange(8400,8432).addRange(12330,12333).addRange(12441,12442).addRange(65024,65039).addRange(65056,65069).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(917760,917999),t.exports=i},64086:(t,e,n)=>{const i=n(78776)();i.addRange(68448,68466).addRange(68472,68479),t.exports=i},35772:(t,e,n)=>{const i=n(78776)();i.addRange(68416,68437).addRange(68440,68447),t.exports=i},98272:(t,e,n)=>{const i=n(78776)();i.addRange(43392,43469).addRange(43472,43481).addRange(43486,43487),t.exports=i},52764:(t,e,n)=>{const i=n(78776)(69837);i.addRange(69760,69826),t.exports=i},98276:(t,e,n)=>{const i=n(78776)();i.addRange(3200,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3314),t.exports=i},98285:(t,e,n)=>{const i=n(78776)(110592);i.addRange(12449,12538).addRange(12541,12543).addRange(12784,12799).addRange(13008,13054).addRange(13056,13143).addRange(65382,65391).addRange(65393,65437).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110880,110882).addRange(110948,110951),t.exports=i},10821:(t,e,n)=>{const i=n(78776)(43311);i.addRange(43264,43309),t.exports=i},67559:(t,e,n)=>{const i=n(78776)();i.addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68159,68168).addRange(68176,68184),t.exports=i},48304:(t,e,n)=>{const i=n(78776)(94180);i.addRange(101120,101589),t.exports=i},39834:(t,e,n)=>{const i=n(78776)();i.addRange(6016,6109).addRange(6112,6121).addRange(6128,6137).addRange(6624,6655),t.exports=i},42593:(t,e,n)=>{const i=n(78776)();i.addRange(70144,70161).addRange(70163,70206),t.exports=i},64415:(t,e,n)=>{const i=n(78776)();i.addRange(70320,70378).addRange(70384,70393),t.exports=i},37740:(t,e,n)=>{const i=n(78776)(3716,3749,3782);i.addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3789).addRange(3792,3801).addRange(3804,3807),t.exports=i},46818:(t,e,n)=>{const i=n(78776)(170,186,8305,8319,8498,8526,42963);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,696).addRange(736,740).addRange(7424,7461).addRange(7468,7516).addRange(7522,7525).addRange(7531,7543).addRange(7545,7614).addRange(7680,7935).addRange(8336,8348).addRange(8490,8491).addRange(8544,8584).addRange(11360,11391).addRange(42786,42887).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43007).addRange(43824,43866).addRange(43868,43876).addRange(43878,43881).addRange(64256,64262).addRange(65313,65338).addRange(65345,65370).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(122624,122654),t.exports=i},7647:(t,e,n)=>{const i=n(78776)();i.addRange(7168,7223).addRange(7227,7241).addRange(7245,7247),t.exports=i},92627:(t,e,n)=>{const i=n(78776)(6464);i.addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6468,6479),t.exports=i},16193:(t,e,n)=>{const i=n(78776)();i.addRange(67072,67382).addRange(67392,67413).addRange(67424,67431),t.exports=i},71901:(t,e,n)=>{const i=n(78776)();i.addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786),t.exports=i},25734:(t,e,n)=>{const i=n(78776)(73648);i.addRange(42192,42239),t.exports=i},6450:(t,e,n)=>{const i=n(78776)();i.addRange(66176,66204),t.exports=i},28293:(t,e,n)=>{const i=n(78776)(67903);i.addRange(67872,67897),t.exports=i},48193:(t,e,n)=>{const i=n(78776)();i.addRange(69968,70006),t.exports=i},50865:(t,e,n)=>{const i=n(78776)();i.addRange(73440,73464),t.exports=i},24789:(t,e,n)=>{const i=n(78776)();i.addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3407).addRange(3412,3427).addRange(3430,3455),t.exports=i},9535:(t,e,n)=>{const i=n(78776)(2142);i.addRange(2112,2139),t.exports=i},83061:(t,e,n)=>{const i=n(78776)();i.addRange(68288,68326).addRange(68331,68342),t.exports=i},76528:(t,e,n)=>{const i=n(78776)();i.addRange(72816,72847).addRange(72850,72871).addRange(72873,72886),t.exports=i},9921:(t,e,n)=>{const i=n(78776)(73018);i.addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049),t.exports=i},93378:(t,e,n)=>{const i=n(78776)();i.addRange(93760,93850),t.exports=i},6940:(t,e,n)=>{const i=n(78776)();i.addRange(43744,43766).addRange(43968,44013).addRange(44016,44025),t.exports=i},3897:(t,e,n)=>{const i=n(78776)();i.addRange(124928,125124).addRange(125127,125142),t.exports=i},65999:(t,e,n)=>{const i=n(78776)();i.addRange(68e3,68023).addRange(68028,68047).addRange(68050,68095),t.exports=i},59758:(t,e,n)=>{const i=n(78776)();i.addRange(67968,67999),t.exports=i},65484:(t,e,n)=>{const i=n(78776)();i.addRange(93952,94026).addRange(94031,94087).addRange(94095,94111),t.exports=i},34575:(t,e,n)=>{const i=n(78776)();i.addRange(71168,71236).addRange(71248,71257),t.exports=i},75392:(t,e,n)=>{const i=n(78776)(6148);i.addRange(6144,6145).addRange(6150,6169).addRange(6176,6264).addRange(6272,6314).addRange(71264,71276),t.exports=i},36388:(t,e,n)=>{const i=n(78776)();i.addRange(92736,92766).addRange(92768,92777).addRange(92782,92783),t.exports=i},60556:(t,e,n)=>{const i=n(78776)(70280);i.addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313),t.exports=i},15837:(t,e,n)=>{const i=n(78776)();i.addRange(4096,4255).addRange(43488,43518).addRange(43616,43647),t.exports=i},6820:(t,e,n)=>{const i=n(78776)();i.addRange(67712,67742).addRange(67751,67759),t.exports=i},51892:(t,e,n)=>{const i=n(78776)();i.addRange(72096,72103).addRange(72106,72151).addRange(72154,72164),t.exports=i},32003:(t,e,n)=>{const i=n(78776)();i.addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6623),t.exports=i},15297:(t,e,n)=>{const i=n(78776)();i.addRange(70656,70747).addRange(70749,70753),t.exports=i},17594:(t,e,n)=>{const i=n(78776)();i.addRange(1984,2042).addRange(2045,2047),t.exports=i},7493:(t,e,n)=>{const i=n(78776)(94177);i.addRange(110960,111355),t.exports=i},14406:(t,e,n)=>{const i=n(78776)();i.addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123214,123215),t.exports=i},75847:(t,e,n)=>{const i=n(78776)();i.addRange(5760,5788),t.exports=i},88416:(t,e,n)=>{const i=n(78776)();i.addRange(7248,7295),t.exports=i},40115:(t,e,n)=>{const i=n(78776)();i.addRange(68736,68786).addRange(68800,68850).addRange(68858,68863),t.exports=i},29109:(t,e,n)=>{const i=n(78776)();i.addRange(66304,66339).addRange(66349,66351),t.exports=i},96840:(t,e,n)=>{const i=n(78776)();i.addRange(68224,68255),t.exports=i},39291:(t,e,n)=>{const i=n(78776)();i.addRange(66384,66426),t.exports=i},24678:(t,e,n)=>{const i=n(78776)();i.addRange(66464,66499).addRange(66504,66517),t.exports=i},78647:(t,e,n)=>{const i=n(78776)();i.addRange(69376,69415),t.exports=i},70744:(t,e,n)=>{const i=n(78776)();i.addRange(68192,68223),t.exports=i},59527:(t,e,n)=>{const i=n(78776)();i.addRange(68608,68680),t.exports=i},11791:(t,e,n)=>{const i=n(78776)();i.addRange(69488,69513),t.exports=i},23761:(t,e,n)=>{const i=n(78776)();i.addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2935),t.exports=i},39384:(t,e,n)=>{const i=n(78776)();i.addRange(66736,66771).addRange(66776,66811),t.exports=i},90237:(t,e,n)=>{const i=n(78776)();i.addRange(66688,66717).addRange(66720,66729),t.exports=i},62976:(t,e,n)=>{const i=n(78776)();i.addRange(92928,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071),t.exports=i},60351:(t,e,n)=>{const i=n(78776)();i.addRange(67680,67711),t.exports=i},19767:(t,e,n)=>{const i=n(78776)();i.addRange(72384,72440),t.exports=i},25712:(t,e,n)=>{const i=n(78776)();i.addRange(43072,43127),t.exports=i},86458:(t,e,n)=>{const i=n(78776)(67871);i.addRange(67840,67867),t.exports=i},74874:(t,e,n)=>{const i=n(78776)();i.addRange(68480,68497).addRange(68505,68508).addRange(68521,68527),t.exports=i},27603:(t,e,n)=>{const i=n(78776)(43359);i.addRange(43312,43347),t.exports=i},84788:(t,e,n)=>{const i=n(78776)();i.addRange(5792,5866).addRange(5870,5880),t.exports=i},45810:(t,e,n)=>{const i=n(78776)();i.addRange(2048,2093).addRange(2096,2110),t.exports=i},37632:(t,e,n)=>{const i=n(78776)();i.addRange(43136,43205).addRange(43214,43225),t.exports=i},15058:(t,e,n)=>{const i=n(78776)();i.addRange(70016,70111),t.exports=i},76250:(t,e,n)=>{const i=n(78776)();i.addRange(66640,66687),t.exports=i},39573:(t,e,n)=>{const i=n(78776)();i.addRange(71040,71093).addRange(71096,71133),t.exports=i},54039:(t,e,n)=>{const i=n(78776)();i.addRange(120832,121483).addRange(121499,121503).addRange(121505,121519),t.exports=i},1611:(t,e,n)=>{const i=n(78776)(3517,3530,3542);i.addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3572).addRange(70113,70132),t.exports=i},34250:(t,e,n)=>{const i=n(78776)();i.addRange(69424,69465),t.exports=i},43065:(t,e,n)=>{const i=n(78776)();i.addRange(69840,69864).addRange(69872,69881),t.exports=i},18135:(t,e,n)=>{const i=n(78776)();i.addRange(72272,72354),t.exports=i},95849:(t,e,n)=>{const i=n(78776)();i.addRange(7040,7103).addRange(7360,7367),t.exports=i},46566:(t,e,n)=>{const i=n(78776)();i.addRange(43008,43052),t.exports=i},7810:(t,e,n)=>{const i=n(78776)();i.addRange(1792,1805).addRange(1807,1866).addRange(1869,1871).addRange(2144,2154),t.exports=i},67833:(t,e,n)=>{const i=n(78776)(5919);i.addRange(5888,5909),t.exports=i},58009:(t,e,n)=>{const i=n(78776)();i.addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003),t.exports=i},1187:(t,e,n)=>{const i=n(78776)();i.addRange(6480,6509).addRange(6512,6516),t.exports=i},40377:(t,e,n)=>{const i=n(78776)();i.addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6816,6829),t.exports=i},99e3:(t,e,n)=>{const i=n(78776)();i.addRange(43648,43714).addRange(43739,43743),t.exports=i},72294:(t,e,n)=>{const i=n(78776)();i.addRange(71296,71353).addRange(71360,71369),t.exports=i},98682:(t,e,n)=>{const i=n(78776)(2972,3024,3031,73727);i.addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3066).addRange(73664,73713),t.exports=i},77808:(t,e,n)=>{const i=n(78776)();i.addRange(92784,92862).addRange(92864,92873),t.exports=i},75540:(t,e,n)=>{const i=n(78776)(94176);i.addRange(94208,100343).addRange(100352,101119).addRange(101632,101640),t.exports=i},65084:(t,e,n)=>{const i=n(78776)(3165);i.addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3191,3199),t.exports=i},6867:(t,e,n)=>{const i=n(78776)();i.addRange(1920,1969),t.exports=i},49907:(t,e,n)=>{const i=n(78776)();i.addRange(3585,3642).addRange(3648,3675),t.exports=i},29341:(t,e,n)=>{const i=n(78776)();i.addRange(3840,3911).addRange(3913,3948).addRange(3953,3991).addRange(3993,4028).addRange(4030,4044).addRange(4046,4052).addRange(4057,4058),t.exports=i},81261:(t,e,n)=>{const i=n(78776)(11647);i.addRange(11568,11623).addRange(11631,11632),t.exports=i},57954:(t,e,n)=>{const i=n(78776)();i.addRange(70784,70855).addRange(70864,70873),t.exports=i},68196:(t,e,n)=>{const i=n(78776)();i.addRange(123536,123566),t.exports=i},29097:(t,e,n)=>{const i=n(78776)(66463);i.addRange(66432,66461),t.exports=i},5767:(t,e,n)=>{const i=n(78776)();i.addRange(42240,42539),t.exports=i},45785:(t,e,n)=>{const i=n(78776)();i.addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004),t.exports=i},27172:(t,e,n)=>{const i=n(78776)(123647);i.addRange(123584,123641),t.exports=i},17315:(t,e,n)=>{const i=n(78776)(71935);i.addRange(71840,71922),t.exports=i},34961:(t,e,n)=>{const i=n(78776)();i.addRange(69248,69289).addRange(69291,69293).addRange(69296,69297),t.exports=i},90923:(t,e,n)=>{const i=n(78776)();i.addRange(40960,42124).addRange(42128,42182),t.exports=i},92108:(t,e,n)=>{const i=n(78776)();i.addRange(72192,72263),t.exports=i},99614:(t,e,n)=>{const i=n(78776)(1567,1600);i.addRange(125184,125259).addRange(125264,125273).addRange(125278,125279),t.exports=i},24915:(t,e,n)=>{const i=n(78776)();i.addRange(71424,71450).addRange(71453,71467).addRange(71472,71494),t.exports=i},8983:(t,e,n)=>{const i=n(78776)();i.addRange(82944,83526),t.exports=i},75627:(t,e,n)=>{const i=n(78776)(64975,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(1536,1540).addRange(1542,1756).addRange(1758,1791).addRange(1872,1919).addRange(2160,2190).addRange(2192,2193).addRange(2200,2273).addRange(2275,2303).addRange(64336,64450).addRange(64467,64911).addRange(64914,64967).addRange(65008,65023).addRange(65136,65140).addRange(65142,65276).addRange(66272,66299).addRange(69216,69246).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705),t.exports=i},13585:(t,e,n)=>{const i=n(78776)();i.addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(64275,64279),t.exports=i},79384:(t,e,n)=>{const i=n(78776)();i.addRange(68352,68405).addRange(68409,68415),t.exports=i},47072:(t,e,n)=>{const i=n(78776)();i.addRange(6912,6988).addRange(6992,7038),t.exports=i},31856:(t,e,n)=>{const i=n(78776)();i.addRange(42656,42743).addRange(92160,92728),t.exports=i},24945:(t,e,n)=>{const i=n(78776)();i.addRange(92880,92909).addRange(92912,92917),t.exports=i},92147:(t,e,n)=>{const i=n(78776)();i.addRange(7104,7155).addRange(7164,7167),t.exports=i},61530:(t,e,n)=>{const i=n(78776)(2482,2519,7376,7378,7384,7393,7402,7405,7410,43249);i.addRange(2385,2386).addRange(2404,2405).addRange(2432,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525).addRange(2527,2531).addRange(2534,2558).addRange(7381,7382).addRange(7413,7415),t.exports=i},64063:(t,e,n)=>{const i=n(78776)();i.addRange(72704,72712).addRange(72714,72758).addRange(72760,72773).addRange(72784,72812),t.exports=i},29962:(t,e,n)=>{const i=n(78776)(12336,12343,12539);i.addRange(746,747).addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12330,12333).addRange(12549,12591).addRange(12704,12735).addRange(65093,65094).addRange(65377,65381),t.exports=i},61752:(t,e,n)=>{const i=n(78776)(69759);i.addRange(69632,69709).addRange(69714,69749),t.exports=i},28434:(t,e,n)=>{const i=n(78776)();i.addRange(10240,10495),t.exports=i},15148:(t,e,n)=>{const i=n(78776)(43471);i.addRange(6656,6683).addRange(6686,6687),t.exports=i},78881:(t,e,n)=>{const i=n(78776)();i.addRange(5941,5942).addRange(5952,5971),t.exports=i},55254:(t,e,n)=>{const i=n(78776)();i.addRange(5120,5759).addRange(6320,6389).addRange(72368,72383),t.exports=i},79110:(t,e,n)=>{const i=n(78776)();i.addRange(66208,66256),t.exports=i},76550:(t,e,n)=>{const i=n(78776)(66927);i.addRange(66864,66915),t.exports=i},88753:(t,e,n)=>{const i=n(78776)();i.addRange(2534,2543).addRange(4160,4169).addRange(69888,69940).addRange(69942,69959),t.exports=i},98451:(t,e,n)=>{const i=n(78776)();i.addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43612,43615),t.exports=i},80196:(t,e,n)=>{const i=n(78776)();i.addRange(5024,5109).addRange(5112,5117).addRange(43888,43967),t.exports=i},38676:(t,e,n)=>{const i=n(78776)();i.addRange(69552,69579),t.exports=i},46921:(t,e,n)=>{const i=n(78776)(215,247,884,894,901,903,1541,1757,2274,3647,12288,12292,12306,12320,12342,12927,13311,43867,65279,119970,119995,120134,129008,917505);i.addRange(0,64).addRange(91,96).addRange(123,169).addRange(171,185).addRange(187,191).addRange(697,735).addRange(741,745).addRange(748,767).addRange(4053,4056).addRange(5867,5869).addRange(8192,8203).addRange(8206,8238).addRange(8240,8292).addRange(8294,8304).addRange(8308,8318).addRange(8320,8334).addRange(8352,8384).addRange(8448,8485).addRange(8487,8489).addRange(8492,8497).addRange(8499,8525).addRange(8527,8543).addRange(8585,8587).addRange(8592,9254).addRange(9280,9290).addRange(9312,10239).addRange(10496,11123).addRange(11126,11157).addRange(11159,11263).addRange(11776,11842).addRange(11844,11869).addRange(12272,12283).addRange(12872,12895).addRange(12977,12991).addRange(13004,13007).addRange(13169,13178).addRange(13184,13279).addRange(19904,19967).addRange(42760,42785).addRange(42888,42890).addRange(43882,43883).addRange(65040,65049).addRange(65072,65092).addRange(65095,65106).addRange(65108,65126).addRange(65128,65131).addRange(65281,65312).addRange(65339,65344).addRange(65371,65376).addRange(65504,65510).addRange(65512,65518),i.addRange(65529,65533).addRange(65936,65948).addRange(66e3,66044).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119142).addRange(119146,119162).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119520,119539).addRange(119552,119638).addRange(119666,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(126065,126132).addRange(126209,126269).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127487).addRange(127489,127490).addRange(127504,127547).addRange(127552,127560).addRange(127584,127589).addRange(127744,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984),i.addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782).addRange(129792,129938).addRange(129940,129994).addRange(130032,130041).addRange(917536,917631),t.exports=i},44141:(t,e,n)=>{const i=n(78776)();i.addRange(994,1007).addRange(11392,11507).addRange(11513,11519).addRange(66272,66299),t.exports=i},30286:(t,e,n)=>{const i=n(78776)();i.addRange(73728,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075),t.exports=i},73326:(t,e,n)=>{const i=n(78776)(67592,67644,67647);i.addRange(65792,65794).addRange(65799,65843).addRange(65847,65855).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640),t.exports=i},82300:(t,e,n)=>{const i=n(78776)();i.addRange(65792,65793).addRange(77712,77810),t.exports=i},77115:(t,e,n)=>{const i=n(78776)(7467,7544,7672,11843);i.addRange(1024,1327).addRange(7296,7304).addRange(11744,11775).addRange(42560,42655).addRange(65070,65071),t.exports=i},59108:(t,e,n)=>{const i=n(78776)();i.addRange(66560,66639),t.exports=i},59426:(t,e,n)=>{const i=n(78776)(8432);i.addRange(2304,2386).addRange(2389,2431).addRange(7376,7414).addRange(7416,7417).addRange(43056,43065).addRange(43232,43263),t.exports=i},44660:(t,e,n)=>{const i=n(78776)(71945);i.addRange(71936,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72006).addRange(72016,72025),t.exports=i},41422:(t,e,n)=>{const i=n(78776)();i.addRange(2404,2415).addRange(43056,43065).addRange(71680,71739),t.exports=i},66667:(t,e,n)=>{const i=n(78776)();i.addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113820,113827),t.exports=i},20449:(t,e,n)=>{const i=n(78776)();i.addRange(77824,78894).addRange(78896,78904),t.exports=i},25810:(t,e,n)=>{const i=n(78776)();i.addRange(66816,66855),t.exports=i},83509:(t,e,n)=>{const i=n(78776)();i.addRange(69600,69622),t.exports=i},37837:(t,e,n)=>{const i=n(78776)(4696,4800);i.addRange(4608,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4988).addRange(4992,5017).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926),t.exports=i},77680:(t,e,n)=>{const i=n(78776)(4295,4301,11559,11565);i.addRange(4256,4293).addRange(4304,4351).addRange(7312,7354).addRange(7357,7359).addRange(11520,11557),t.exports=i},97772:(t,e,n)=>{const i=n(78776)(1156,1159,11843,42607);i.addRange(11264,11359).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922),t.exports=i},60674:(t,e,n)=>{const i=n(78776)();i.addRange(66352,66378),t.exports=i},52336:(t,e,n)=>{const i=n(78776)(7376,8432,70480,70487,73683);i.addRange(2385,2386).addRange(2404,2405).addRange(3046,3059).addRange(7378,7379).addRange(7410,7412).addRange(7416,7417).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(73680,73681),t.exports=i},86310:(t,e,n)=>{const i=n(78776)(834,837,895,900,902,908,8025,8027,8029,8486,43877,65952);i.addRange(880,883).addRange(885,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,993).addRange(1008,1023).addRange(7462,7466).addRange(7517,7521).addRange(7526,7530).addRange(7615,7617).addRange(7936,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190).addRange(65856,65934).addRange(119296,119365),t.exports=i},92436:(t,e,n)=>{const i=n(78776)(2768);i.addRange(2385,2386).addRange(2404,2405).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2801).addRange(2809,2815).addRange(43056,43065),t.exports=i},20642:(t,e,n)=>{const i=n(78776)();i.addRange(2404,2405).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129),t.exports=i},33831:(t,e,n)=>{const i=n(78776)(2620,2641,2654);i.addRange(2385,2386).addRange(2404,2405).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2678).addRange(43056,43065),t.exports=i},16613:(t,e,n)=>{const i=n(78776)(12336,12539,13055);i.addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12289,12291).addRange(12293,12305).addRange(12307,12319).addRange(12321,12333).addRange(12343,12351).addRange(12688,12703).addRange(12736,12771).addRange(12832,12871).addRange(12928,12976).addRange(12992,13003).addRange(13144,13168).addRange(13179,13183).addRange(13280,13310).addRange(13312,19903).addRange(19968,40959).addRange(42752,42759).addRange(63744,64109).addRange(64112,64217).addRange(65093,65094).addRange(65377,65381).addRange(94178,94179).addRange(94192,94193).addRange(119648,119665).addRange(127568,127569).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},87001:(t,e,n)=>{const i=n(78776)(12343,12539);i.addRange(4352,4607).addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12334,12336).addRange(12593,12686).addRange(12800,12830).addRange(12896,12926).addRange(43360,43388).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(65093,65094).addRange(65377,65381).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500),t.exports=i},88583:(t,e,n)=>{const i=n(78776)(1548,1563,1567,1600,1748);i.addRange(68864,68903).addRange(68912,68921),t.exports=i},82758:(t,e,n)=>{const i=n(78776)();i.addRange(5920,5942),t.exports=i},66416:(t,e,n)=>{const i=n(78776)();i.addRange(67808,67826).addRange(67828,67829).addRange(67835,67839),t.exports=i},85222:(t,e,n)=>{const i=n(78776)(64318);i.addRange(1425,1479).addRange(1488,1514).addRange(1519,1524).addRange(64285,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64335),t.exports=i},60191:(t,e,n)=>{const i=n(78776)(12343,65392,127488);i.addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12336,12341).addRange(12348,12349).addRange(12353,12438).addRange(12441,12448).addRange(12539,12540).addRange(65093,65094).addRange(65377,65381).addRange(65438,65439).addRange(110593,110879).addRange(110928,110930),t.exports=i},57632:(t,e,n)=>{const i=n(78776)();i.addRange(67648,67669).addRange(67671,67679),t.exports=i},96988:(t,e,n)=>{const i=n(78776)(7673,66045);i.addRange(768,833).addRange(835,836).addRange(838,866).addRange(2387,2388).addRange(6832,6862).addRange(7618,7671).addRange(7675,7679).addRange(8204,8205).addRange(8400,8431).addRange(65024,65039).addRange(65056,65069).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(917760,917999),t.exports=i},52121:(t,e,n)=>{const i=n(78776)();i.addRange(68448,68466).addRange(68472,68479),t.exports=i},82809:(t,e,n)=>{const i=n(78776)();i.addRange(68416,68437).addRange(68440,68447),t.exports=i},55081:(t,e,n)=>{const i=n(78776)();i.addRange(43392,43469).addRange(43471,43481).addRange(43486,43487),t.exports=i},57574:(t,e,n)=>{const i=n(78776)(69837);i.addRange(2406,2415).addRange(43056,43065).addRange(69760,69826),t.exports=i},81868:(t,e,n)=>{const i=n(78776)(7376,7378,7386,7410,7412);i.addRange(2385,2386).addRange(2404,2405).addRange(3200,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3314).addRange(43056,43061),t.exports=i},10774:(t,e,n)=>{const i=n(78776)(12343,110592);i.addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12336,12341).addRange(12348,12349).addRange(12441,12444).addRange(12448,12543).addRange(12784,12799).addRange(13008,13054).addRange(13056,13143).addRange(65093,65094).addRange(65377,65439).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110880,110882).addRange(110948,110951),t.exports=i},76701:(t,e,n)=>{const i=n(78776)();i.addRange(43264,43311),t.exports=i},81466:(t,e,n)=>{const i=n(78776)();i.addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68159,68168).addRange(68176,68184),t.exports=i},21325:(t,e,n)=>{const i=n(78776)(94180);i.addRange(101120,101589),t.exports=i},6068:(t,e,n)=>{const i=n(78776)();i.addRange(6016,6109).addRange(6112,6121).addRange(6128,6137).addRange(6624,6655),t.exports=i},77706:(t,e,n)=>{const i=n(78776)();i.addRange(2790,2799).addRange(43056,43065).addRange(70144,70161).addRange(70163,70206),t.exports=i},54258:(t,e,n)=>{const i=n(78776)();i.addRange(2404,2405).addRange(43056,43065).addRange(70320,70378).addRange(70384,70393),t.exports=i},77149:(t,e,n)=>{const i=n(78776)(3716,3749,3782);i.addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3789).addRange(3792,3801).addRange(3804,3807),t.exports=i},38334:(t,e,n)=>{const i=n(78776)(170,186,4347,8239,8305,8319,8432,8498,8526,42963,43310);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,696).addRange(736,740).addRange(867,879).addRange(1157,1158).addRange(2385,2386).addRange(7424,7461).addRange(7468,7516).addRange(7522,7525).addRange(7531,7543).addRange(7545,7614).addRange(7680,7935).addRange(8336,8348).addRange(8490,8491).addRange(8544,8584).addRange(11360,11391).addRange(42752,42759).addRange(42786,42887).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43007).addRange(43824,43866).addRange(43868,43876).addRange(43878,43881).addRange(64256,64262).addRange(65313,65338).addRange(65345,65370).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(122624,122654),t.exports=i},12299:(t,e,n)=>{const i=n(78776)();i.addRange(7168,7223).addRange(7227,7241).addRange(7245,7247),t.exports=i},25476:(t,e,n)=>{const i=n(78776)(2405,6464);i.addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6468,6479),t.exports=i},54625:(t,e,n)=>{const i=n(78776)();i.addRange(65799,65843).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431),t.exports=i},38810:(t,e,n)=>{const i=n(78776)();i.addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65792,65794).addRange(65799,65843).addRange(65847,65855),t.exports=i},90845:(t,e,n)=>{const i=n(78776)(73648);i.addRange(42192,42239),t.exports=i},68978:(t,e,n)=>{const i=n(78776)();i.addRange(66176,66204),t.exports=i},67905:(t,e,n)=>{const i=n(78776)(67903);i.addRange(67872,67897),t.exports=i},89576:(t,e,n)=>{const i=n(78776)();i.addRange(2404,2415).addRange(43056,43065).addRange(69968,70006),t.exports=i},3405:(t,e,n)=>{const i=n(78776)();i.addRange(73440,73464),t.exports=i},974:(t,e,n)=>{const i=n(78776)(7386);i.addRange(2385,2386).addRange(2404,2405).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3407).addRange(3412,3427).addRange(3430,3455).addRange(43056,43058),t.exports=i},28940:(t,e,n)=>{const i=n(78776)(1600,2142);i.addRange(2112,2139),t.exports=i},6677:(t,e,n)=>{const i=n(78776)(1600);i.addRange(68288,68326).addRange(68331,68342),t.exports=i},14740:(t,e,n)=>{const i=n(78776)();i.addRange(72816,72847).addRange(72850,72871).addRange(72873,72886),t.exports=i},82278:(t,e,n)=>{const i=n(78776)(73018);i.addRange(2404,2405).addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049),t.exports=i},55949:(t,e,n)=>{const i=n(78776)();i.addRange(93760,93850),t.exports=i},13329:(t,e,n)=>{const i=n(78776)();i.addRange(43744,43766).addRange(43968,44013).addRange(44016,44025),t.exports=i},97146:(t,e,n)=>{const i=n(78776)();i.addRange(124928,125124).addRange(125127,125142),t.exports=i},23715:(t,e,n)=>{const i=n(78776)();i.addRange(68e3,68023).addRange(68028,68047).addRange(68050,68095),t.exports=i},43199:(t,e,n)=>{const i=n(78776)();i.addRange(67968,67999),t.exports=i},26499:(t,e,n)=>{const i=n(78776)();i.addRange(93952,94026).addRange(94031,94087).addRange(94095,94111),t.exports=i},36995:(t,e,n)=>{const i=n(78776)();i.addRange(43056,43065).addRange(71168,71236).addRange(71248,71257),t.exports=i},98606:(t,e,n)=>{const i=n(78776)(8239);i.addRange(6144,6169).addRange(6176,6264).addRange(6272,6314).addRange(71264,71276),t.exports=i},11462:(t,e,n)=>{const i=n(78776)();i.addRange(92736,92766).addRange(92768,92777).addRange(92782,92783),t.exports=i},45402:(t,e,n)=>{const i=n(78776)(70280);i.addRange(2662,2671).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313),t.exports=i},76318:(t,e,n)=>{const i=n(78776)(43310);i.addRange(4096,4255).addRange(43488,43518).addRange(43616,43647),t.exports=i},34924:(t,e,n)=>{const i=n(78776)();i.addRange(67712,67742).addRange(67751,67759),t.exports=i},8236:(t,e,n)=>{const i=n(78776)(7401,7410,7418);i.addRange(2404,2405).addRange(3302,3311).addRange(43056,43061).addRange(72096,72103).addRange(72106,72151).addRange(72154,72164),t.exports=i},14575:(t,e,n)=>{const i=n(78776)();i.addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6623),t.exports=i},71314:(t,e,n)=>{const i=n(78776)();i.addRange(70656,70747).addRange(70749,70753),t.exports=i},40577:(t,e,n)=>{const i=n(78776)(1548,1563,1567);i.addRange(1984,2042).addRange(2045,2047).addRange(64830,64831),t.exports=i},44432:(t,e,n)=>{const i=n(78776)(94177);i.addRange(110960,111355),t.exports=i},53612:(t,e,n)=>{const i=n(78776)();i.addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123214,123215),t.exports=i},19298:(t,e,n)=>{const i=n(78776)();i.addRange(5760,5788),t.exports=i},55285:(t,e,n)=>{const i=n(78776)();i.addRange(7248,7295),t.exports=i},16737:(t,e,n)=>{const i=n(78776)();i.addRange(68736,68786).addRange(68800,68850).addRange(68858,68863),t.exports=i},73023:(t,e,n)=>{const i=n(78776)();i.addRange(66304,66339).addRange(66349,66351),t.exports=i},35723:(t,e,n)=>{const i=n(78776)();i.addRange(68224,68255),t.exports=i},56370:(t,e,n)=>{const i=n(78776)(1155);i.addRange(66384,66426),t.exports=i},1402:(t,e,n)=>{const i=n(78776)();i.addRange(66464,66499).addRange(66504,66517),t.exports=i},14718:(t,e,n)=>{const i=n(78776)();i.addRange(69376,69415),t.exports=i},40316:(t,e,n)=>{const i=n(78776)();i.addRange(68192,68223),t.exports=i},5462:(t,e,n)=>{const i=n(78776)();i.addRange(68608,68680),t.exports=i},2280:(t,e,n)=>{const i=n(78776)(1600,68338);i.addRange(69488,69513),t.exports=i},29434:(t,e,n)=>{const i=n(78776)(7386,7410);i.addRange(2385,2386).addRange(2404,2405).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2935),t.exports=i},77045:(t,e,n)=>{const i=n(78776)();i.addRange(66736,66771).addRange(66776,66811),t.exports=i},82301:(t,e,n)=>{const i=n(78776)();i.addRange(66688,66717).addRange(66720,66729),t.exports=i},84766:(t,e,n)=>{const i=n(78776)();i.addRange(92928,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071),t.exports=i},72685:(t,e,n)=>{const i=n(78776)();i.addRange(67680,67711),t.exports=i},34107:(t,e,n)=>{const i=n(78776)();i.addRange(72384,72440),t.exports=i},66506:(t,e,n)=>{const i=n(78776)(6149);i.addRange(6146,6147).addRange(43072,43127),t.exports=i},42186:(t,e,n)=>{const i=n(78776)(67871);i.addRange(67840,67867),t.exports=i},55507:(t,e,n)=>{const i=n(78776)(1600);i.addRange(68480,68497).addRange(68505,68508).addRange(68521,68527),t.exports=i},35435:(t,e,n)=>{const i=n(78776)(43359);i.addRange(43312,43347),t.exports=i},76355:(t,e,n)=>{const i=n(78776)();i.addRange(5792,5866).addRange(5870,5880),t.exports=i},1509:(t,e,n)=>{const i=n(78776)();i.addRange(2048,2093).addRange(2096,2110),t.exports=i},23386:(t,e,n)=>{const i=n(78776)();i.addRange(43136,43205).addRange(43214,43225),t.exports=i},86116:(t,e,n)=>{const i=n(78776)(2385,7383,7385,7392);i.addRange(7388,7389).addRange(70016,70111),t.exports=i},51826:(t,e,n)=>{const i=n(78776)();i.addRange(66640,66687),t.exports=i},22026:(t,e,n)=>{const i=n(78776)();i.addRange(71040,71093).addRange(71096,71133),t.exports=i},96007:(t,e,n)=>{const i=n(78776)();i.addRange(120832,121483).addRange(121499,121503).addRange(121505,121519),t.exports=i},51104:(t,e,n)=>{const i=n(78776)(3517,3530,3542);i.addRange(2404,2405).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3572).addRange(70113,70132),t.exports=i},82401:(t,e,n)=>{const i=n(78776)(1600);i.addRange(69424,69465),t.exports=i},44399:(t,e,n)=>{const i=n(78776)();i.addRange(69840,69864).addRange(69872,69881),t.exports=i},37415:(t,e,n)=>{const i=n(78776)();i.addRange(72272,72354),t.exports=i},3894:(t,e,n)=>{const i=n(78776)();i.addRange(7040,7103).addRange(7360,7367),t.exports=i},5419:(t,e,n)=>{const i=n(78776)();i.addRange(2404,2405).addRange(2534,2543).addRange(43008,43052),t.exports=i},21038:(t,e,n)=>{const i=n(78776)(1548,1567,1600,1648,7672,7674);i.addRange(1563,1564).addRange(1611,1621).addRange(1792,1805).addRange(1807,1866).addRange(1869,1871).addRange(2144,2154),t.exports=i},1744:(t,e,n)=>{const i=n(78776)(5919);i.addRange(5888,5909).addRange(5941,5942),t.exports=i},54217:(t,e,n)=>{const i=n(78776)();i.addRange(5941,5942).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003),t.exports=i},63153:(t,e,n)=>{const i=n(78776)();i.addRange(4160,4169).addRange(6480,6509).addRange(6512,6516),t.exports=i},4926:(t,e,n)=>{const i=n(78776)();i.addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6816,6829),t.exports=i},39311:(t,e,n)=>{const i=n(78776)();i.addRange(43648,43714).addRange(43739,43743),t.exports=i},55970:(t,e,n)=>{const i=n(78776)();i.addRange(2404,2405).addRange(43056,43065).addRange(71296,71353).addRange(71360,71369),t.exports=i},80882:(t,e,n)=>{const i=n(78776)(2972,3024,3031,7386,43251,70401,70403,73727);i.addRange(2385,2386).addRange(2404,2405).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3066).addRange(70459,70460).addRange(73664,73713),t.exports=i},92138:(t,e,n)=>{const i=n(78776)();i.addRange(92784,92862).addRange(92864,92873),t.exports=i},46776:(t,e,n)=>{const i=n(78776)(94176);i.addRange(94208,100343).addRange(100352,101119).addRange(101632,101640),t.exports=i},40444:(t,e,n)=>{const i=n(78776)(3165,7386,7410);i.addRange(2385,2386).addRange(2404,2405).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3191,3199),t.exports=i},23431:(t,e,n)=>{const i=n(78776)(1548,1567,65010,65021);i.addRange(1563,1564).addRange(1632,1641).addRange(1920,1969),t.exports=i},94846:(t,e,n)=>{const i=n(78776)();i.addRange(3585,3642).addRange(3648,3675),t.exports=i},137:(t,e,n)=>{const i=n(78776)();i.addRange(3840,3911).addRange(3913,3948).addRange(3953,3991).addRange(3993,4028).addRange(4030,4044).addRange(4046,4052).addRange(4057,4058),t.exports=i},67065:(t,e,n)=>{const i=n(78776)(11647);i.addRange(11568,11623).addRange(11631,11632),t.exports=i},98082:(t,e,n)=>{const i=n(78776)(7410);i.addRange(2385,2386).addRange(2404,2405).addRange(43056,43065).addRange(70784,70855).addRange(70864,70873),t.exports=i},6715:(t,e,n)=>{const i=n(78776)();i.addRange(123536,123566),t.exports=i},29213:(t,e,n)=>{const i=n(78776)(66463);i.addRange(66432,66461),t.exports=i},85388:(t,e,n)=>{const i=n(78776)();i.addRange(42240,42539),t.exports=i},97706:(t,e,n)=>{const i=n(78776)();i.addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004),t.exports=i},68659:(t,e,n)=>{const i=n(78776)(123647);i.addRange(123584,123641),t.exports=i},27900:(t,e,n)=>{const i=n(78776)(71935);i.addRange(71840,71922),t.exports=i},8051:(t,e,n)=>{const i=n(78776)(1548,1563,1567);i.addRange(1632,1641).addRange(69248,69289).addRange(69291,69293).addRange(69296,69297),t.exports=i},99799:(t,e,n)=>{const i=n(78776)(12539);i.addRange(12289,12290).addRange(12296,12305).addRange(12308,12315).addRange(40960,42124).addRange(42128,42182).addRange(65377,65381),t.exports=i},25904:(t,e,n)=>{const i=n(78776)();i.addRange(72192,72263),t.exports=i},94274:t=>{t.exports=new Map([["General_Category",["Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Number","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Symbol","Titlecase_Letter","Unassigned","Uppercase_Letter"]],["Script",["Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Chorasmian","Common","Coptic","Cuneiform","Cypriot","Cypro_Minoan","Cyrillic","Deseret","Devanagari","Dives_Akuru","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Elymaic","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khitan_Small_Script","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Masaram_Gondi","Medefaidrin","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","Nandinagari","New_Tai_Lue","Newa","Nko","Nushu","Nyiakeng_Puachue_Hmong","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Old_Uyghur","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangsa","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Toto","Ugaritic","Vai","Vithkuqi","Wancho","Warang_Citi","Yezidi","Yi","Zanabazar_Square"]],["Script_Extensions",["Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Chorasmian","Common","Coptic","Cuneiform","Cypriot","Cypro_Minoan","Cyrillic","Deseret","Devanagari","Dives_Akuru","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Elymaic","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khitan_Small_Script","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Masaram_Gondi","Medefaidrin","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","Nandinagari","New_Tai_Lue","Newa","Nko","Nushu","Nyiakeng_Puachue_Hmong","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Old_Uyghur","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangsa","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Toto","Ugaritic","Vai","Vithkuqi","Wancho","Warang_Citi","Yezidi","Yi","Zanabazar_Square"]],["Binary_Property",["ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Math","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start"]]])},47993:t=>{t.exports="14.0.0"},78776:function(t,e,n){var i;t=n.nmd(t),function(a){var r=e,o=(t&&t.exports,"object"==typeof n.g&&n.g);o.global!==o&&o.window;var s="A range\u2019s `stop` value must be greater than or equal to the `start` value.",c="Invalid code point value. Code points range from U+000000 to U+10FFFF.",l=55296,u=56319,d=56320,h=57343,f=/\\x00([^0123456789]|$)/g,g={},p=g.hasOwnProperty,b=function(t,e){for(var n=-1,i=t.length;++n<i;)e(t[n],n)},m=g.toString,y=function(t){return"[object Array]"==m.call(t)},v=function(t){return"number"==typeof t||"[object Number]"==m.call(t)},w=function(t,e){var n=String(t);return n.length<e?("0000"+n).slice(-e):n},x=function(t){return Number(t).toString(16).toUpperCase()},R=[].slice,_=function(t,e){for(var n,i,a=0,r=t.length;a<r;){if(n=t[a],i=t[a+1],e>=n&&e<i)return e==n?i==n+1?(t.splice(a,2),t):(t[a]=e+1,t):e==i-1?(t[a+1]=e,t):(t.splice(a,2,n,e,e+1,i),t);a+=2}return t},k=function(t,e,n){if(n<e)throw Error(s);for(var i,a,r=0;r<t.length;){if(i=t[r],a=t[r+1]-1,i>n)return t;if(e<=i&&n>=a)t.splice(r,2);else{if(e>=i&&n<a)return e==i?(t[r]=n+1,t[r+1]=a+1,t):(t.splice(r,2,i,e,n+1,a+1),t);if(e>=i&&e<=a)t[r+1]=e;else if(n>=i&&n<=a)return t[r]=n+1,t;r+=2}}return t},E=function(t,e){var n,i,a=0,r=null,o=t.length;if(e<0||e>1114111)throw RangeError(c);for(;a<o;){if(n=t[a],i=t[a+1],e>=n&&e<i)return t;if(e==n-1)return t[a]=e,t;if(n>e)return t.splice(null!=r?r+2:0,0,e,e+1),t;if(e==i)return e+1==t[a+2]?(t.splice(a,4,n,t[a+3]),t):(t[a+1]=e+1,t);r=a,a+=2}return t.push(e,e+1),t},C=function(t,e){for(var n,i,a=0,r=t.slice(),o=e.length;a<o;)r=(n=e[a])==(i=e[a+1]-1)?E(r,n):T(r,n,i),a+=2;return r},S=function(t,e){for(var n,i,a=0,r=t.slice(),o=e.length;a<o;)r=(n=e[a])==(i=e[a+1]-1)?_(r,n):k(r,n,i),a+=2;return r},T=function(t,e,n){if(n<e)throw Error(s);if(e<0||e>1114111||n<0||n>1114111)throw RangeError(c);for(var i,a,r=0,o=!1,l=t.length;r<l;){if(i=t[r],a=t[r+1],o){if(i==n+1)return t.splice(r-1,2),t;if(i>n)return t;i>=e&&i<=n&&(a>e&&a-1<=n?(t.splice(r,2),r-=2):(t.splice(r-1,2),r-=2))}else{if(i==n+1||i==n)return t[r]=e,t;if(i>n)return t.splice(r,0,e,n+1),t;if(e>=i&&e<a&&n+1<=a)return t;e>=i&&e<a||a==e?(t[r+1]=n+1,o=!0):e<=i&&n+1>=a&&(t[r]=e,t[r+1]=n+1,o=!0)}r+=2}return o||t.push(e,n+1),t},A=function(t,e){var n=0,i=t.length,a=t[n],r=t[i-1];if(i>=2&&(e<a||e>r))return!1;for(;n<i;){if(a=t[n],r=t[n+1],e>=a&&e<r)return!0;n+=2}return!1},D=function(t){return!t.length},I=function(t){return 2==t.length&&t[0]+1==t[1]},L=function(t){for(var e,n,i=0,a=[],r=t.length;i<r;){for(e=t[i],n=t[i+1];e<n;)a.push(e),++e;i+=2}return a},O=Math.floor,M=function(t){return parseInt(O((t-65536)/1024)+l,10)},N=function(t){return parseInt((t-65536)%1024+d,10)},B=String.fromCharCode,P=function(t){return 9==t?"\\t":10==t?"\\n":12==t?"\\f":13==t?"\\r":45==t?"\\x2D":92==t?"\\\\":36==t||t>=40&&t<=43||46==t||47==t||63==t||t>=91&&t<=94||t>=123&&t<=125?"\\"+B(t):t>=32&&t<=126?B(t):t<=255?"\\x"+w(x(t),2):"\\u"+w(x(t),4)},F=function(t){return t<=65535?P(t):"\\u{"+t.toString(16).toUpperCase()+"}"},j=function(t){var e,n=t.length,i=t.charCodeAt(0);return i>=l&&i<=u&&n>1?(e=t.charCodeAt(1),1024*(i-l)+e-d+65536):i},$=function(t){var e,n,i="",a=0,r=t.length;if(I(t))return P(t[0]);for(;a<r;)i+=(e=t[a])==(n=t[a+1]-1)?P(e):e+1==n?P(e)+P(n):P(e)+"-"+P(n),a+=2;return"["+i+"]"},z=function(t){if(1==t.length)return t;for(var e=-1,n=-1;++e<t.length;){var i=t[e],a=i[1],r=a[0],o=a[1];for(n=e;++n<t.length;){var s=t[n],c=s[1],l=c[0],u=c[1];r==l&&o==u&&2===c.length&&(I(s[0])?i[0]=E(i[0],s[0][0]):i[0]=T(i[0],s[0][0],s[0][1]-1),t.splice(n,1),--n)}}return t},H=function(t){if(!t.length)return[];for(var e,n,i,a,r,o,s=0,c=[],l=t.length;s<l;){e=t[s],n=t[s+1]-1,i=M(e),a=N(e),r=M(n);var u=(o=N(n))==h,f=!1;i==r||a==d&&u?(c.push([[i,r+1],[a,o+1]]),f=!0):c.push([[i,i+1],[a,57344]]),!f&&i+1<r&&(u?(c.push([[i+1,r+1],[d,o+1]]),f=!0):c.push([[i+1,r],[d,57344]])),f||c.push([[r,r+1],[d,o+1]]),s+=2}return function(t){for(var e,n,i,a,r,o,s=[],c=[],l=!1,u=-1,d=t.length;++u<d;)if(e=t[u],n=t[u+1]){for(i=e[0],a=e[1],r=n[0],o=n[1],c=a;r&&i[0]==r[0]&&i[1]==r[1];)c=I(o)?E(c,o[0]):T(c,o[0],o[1]-1),i=(e=t[++u])[0],a=e[1],r=(n=t[u+1])&&n[0],o=n&&n[1],l=!0;s.push([i,l?c:a]),l=!1}else s.push(e);return z(s)}(c)},U=function(t,e,n){if(n)return function(t){var e,n,i="",a=0,r=t.length;if(I(t))return F(t[0]);for(;a<r;)i+=(e=t[a])==(n=t[a+1]-1)?F(e):e+1==n?F(e)+F(n):F(e)+"-"+F(n),a+=2;return"["+i+"]"}(t);var i=[],a=function(t){for(var e,n,i=[],a=[],r=[],o=[],s=0,c=t.length;s<c;)e=t[s],n=t[s+1]-1,e<l?(n<l&&r.push(e,n+1),n>=l&&n<=u&&(r.push(e,l),i.push(l,n+1)),n>=d&&n<=h&&(r.push(e,l),i.push(l,56320),a.push(d,n+1)),n>h&&(r.push(e,l),i.push(l,56320),a.push(d,57344),n<=65535?r.push(57344,n+1):(r.push(57344,65536),o.push(65536,n+1)))):e>=l&&e<=u?(n>=l&&n<=u&&i.push(e,n+1),n>=d&&n<=h&&(i.push(e,56320),a.push(d,n+1)),n>h&&(i.push(e,56320),a.push(d,57344),n<=65535?r.push(57344,n+1):(r.push(57344,65536),o.push(65536,n+1)))):e>=d&&e<=h?(n>=d&&n<=h&&a.push(e,n+1),n>h&&(a.push(e,57344),n<=65535?r.push(57344,n+1):(r.push(57344,65536),o.push(65536,n+1)))):e>h&&e<=65535?n<=65535?r.push(e,n+1):(r.push(e,65536),o.push(65536,n+1)):o.push(e,n+1),s+=2;return{loneHighSurrogates:i,loneLowSurrogates:a,bmp:r,astral:o}}(t),r=a.loneHighSurrogates,o=a.loneLowSurrogates,s=a.bmp,c=a.astral,f=!D(r),g=!D(o),p=H(c);return e&&(s=C(s,r),f=!1,s=C(s,o),g=!1),D(s)||i.push($(s)),p.length&&i.push(function(t){var e=[];return b(t,(function(t){var n=t[0],i=t[1];e.push($(n)+$(i))})),e.join("|")}(p)),f&&i.push($(r)+"(?![\\uDC00-\\uDFFF])"),g&&i.push("(?:[^\\uD800-\\uDBFF]|^)"+$(o)),i.join("|")},V=function(t){return arguments.length>1&&(t=R.call(arguments)),this instanceof V?(this.data=[],t?this.add(t):this):(new V).add(t)};V.version="1.4.2";var q=V.prototype;!function(t,e){var n;for(n in e)p.call(e,n)&&(t[n]=e[n])}(q,{add:function(t){var e=this;return null==t?e:t instanceof V?(e.data=C(e.data,t.data),e):(arguments.length>1&&(t=R.call(arguments)),y(t)?(b(t,(function(t){e.add(t)})),e):(e.data=E(e.data,v(t)?t:j(t)),e))},remove:function(t){var e=this;return null==t?e:t instanceof V?(e.data=S(e.data,t.data),e):(arguments.length>1&&(t=R.call(arguments)),y(t)?(b(t,(function(t){e.remove(t)})),e):(e.data=_(e.data,v(t)?t:j(t)),e))},addRange:function(t,e){var n=this;return n.data=T(n.data,v(t)?t:j(t),v(e)?e:j(e)),n},removeRange:function(t,e){var n=this,i=v(t)?t:j(t),a=v(e)?e:j(e);return n.data=k(n.data,i,a),n},intersection:function(t){var e=this,n=t instanceof V?L(t.data):t;return e.data=function(t,e){for(var n,i=0,a=e.length,r=[];i<a;)n=e[i],A(t,n)&&r.push(n),++i;return function(t){for(var e,n=-1,i=t.length,a=i-1,r=[],o=!0,s=0;++n<i;)if(e=t[n],o)r.push(e),s=e,o=!1;else if(e==s+1){if(n!=a){s=e;continue}o=!0,r.push(e+1)}else r.push(s+1,e),s=e;return o||r.push(e+1),r}(r)}(e.data,n),e},contains:function(t){return A(this.data,v(t)?t:j(t))},clone:function(){var t=new V;return t.data=this.data.slice(0),t},toString:function(t){var e=U(this.data,!!t&&t.bmpOnly,!!t&&t.hasUnicodeFlag);return e?e.replace(f,"\\0$1"):"[]"},toRegExp:function(t){var e=this.toString(t&&-1!=t.indexOf("u")?{hasUnicodeFlag:!0}:null);return RegExp(e,t||"")},valueOf:function(){return L(this.data)}}),q.toArray=q.valueOf,void 0===(i=function(){return V}.call(e,n,e,t))||(t.exports=i)}()},98957:(t,e,n)=>{"use strict";const i=n(78776);e.REGULAR=new Map([["d",i().addRange(48,57)],["D",i().addRange(0,47).addRange(58,65535)],["s",i(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233)],["S",i().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,65535)],["w",i(95).addRange(48,57).addRange(65,90).addRange(97,122)],["W",i(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,65535)]]),e.UNICODE=new Map([["d",i().addRange(48,57)],["D",i().addRange(0,47).addRange(58,1114111)],["s",i(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233)],["S",i().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111)],["w",i(95).addRange(48,57).addRange(65,90).addRange(97,122)],["W",i(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,1114111)]]),e.UNICODE_IGNORE_CASE=new Map([["d",i().addRange(48,57)],["D",i().addRange(0,47).addRange(58,1114111)],["s",i(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233)],["S",i().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111)],["w",i(95,383,8490).addRange(48,57).addRange(65,90).addRange(97,122)],["W",i(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,382).addRange(384,8489).addRange(8491,1114111)]])},61818:t=>{t.exports=new Map([[75,8490],[83,383],[107,8490],[115,383],[181,924],[197,8491],[223,7838],[229,8491],[383,83],[452,453],[453,452],[455,456],[456,455],[458,459],[459,458],[497,498],[498,497],[837,8126],[914,976],[917,1013],[920,1012],[921,8126],[922,1008],[924,181],[928,982],[929,1009],[931,962],[934,981],[937,8486],[952,1012],[962,931],[969,8486],[976,914],[977,1012],[981,934],[982,928],[1008,922],[1009,929],[1012,[920,977,952]],[1013,917],[1042,7296],[1044,7297],[1054,7298],[1057,7299],[1058,7301],[1066,7302],[1122,7303],[7296,1042],[7297,1044],[7298,1054],[7299,1057],[7300,7301],[7301,[1058,7300]],[7302,1066],[7303,1122],[7304,42570],[7776,7835],[7835,7776],[7838,223],[8064,8072],[8065,8073],[8066,8074],[8067,8075],[8068,8076],[8069,8077],[8070,8078],[8071,8079],[8072,8064],[8073,8065],[8074,8066],[8075,8067],[8076,8068],[8077,8069],[8078,8070],[8079,8071],[8080,8088],[8081,8089],[8082,8090],[8083,8091],[8084,8092],[8085,8093],[8086,8094],[8087,8095],[8088,8080],[8089,8081],[8090,8082],[8091,8083],[8092,8084],[8093,8085],[8094,8086],[8095,8087],[8096,8104],[8097,8105],[8098,8106],[8099,8107],[8100,8108],[8101,8109],[8102,8110],[8103,8111],[8104,8096],[8105,8097],[8106,8098],[8107,8099],[8108,8100],[8109,8101],[8110,8102],[8111,8103],[8115,8124],[8124,8115],[8126,[837,921]],[8131,8140],[8140,8131],[8179,8188],[8188,8179],[8486,[937,969]],[8490,75],[8491,[197,229]],[11311,11359],[11359,11311],[42570,7304],[42944,42945],[42945,42944],[42960,42961],[42961,42960],[42966,42967],[42967,42966],[42968,42969],[42969,42968],[66560,66600],[66561,66601],[66562,66602],[66563,66603],[66564,66604],[66565,66605],[66566,66606],[66567,66607],[66568,66608],[66569,66609],[66570,66610],[66571,66611],[66572,66612],[66573,66613],[66574,66614],[66575,66615],[66576,66616],[66577,66617],[66578,66618],[66579,66619],[66580,66620],[66581,66621],[66582,66622],[66583,66623],[66584,66624],[66585,66625],[66586,66626],[66587,66627],[66588,66628],[66589,66629],[66590,66630],[66591,66631],[66592,66632],[66593,66633],[66594,66634],[66595,66635],[66596,66636],[66597,66637],[66598,66638],[66599,66639],[66600,66560],[66601,66561],[66602,66562],[66603,66563],[66604,66564],[66605,66565],[66606,66566],[66607,66567],[66608,66568],[66609,66569],[66610,66570],[66611,66571],[66612,66572],[66613,66573],[66614,66574],[66615,66575],[66616,66576],[66617,66577],[66618,66578],[66619,66579],[66620,66580],[66621,66581],[66622,66582],[66623,66583],[66624,66584],[66625,66585],[66626,66586],[66627,66587],[66628,66588],[66629,66589],[66630,66590],[66631,66591],[66632,66592],[66633,66593],[66634,66594],[66635,66595],[66636,66596],[66637,66597],[66638,66598],[66639,66599],[66736,66776],[66737,66777],[66738,66778],[66739,66779],[66740,66780],[66741,66781],[66742,66782],[66743,66783],[66744,66784],[66745,66785],[66746,66786],[66747,66787],[66748,66788],[66749,66789],[66750,66790],[66751,66791],[66752,66792],[66753,66793],[66754,66794],[66755,66795],[66756,66796],[66757,66797],[66758,66798],[66759,66799],[66760,66800],[66761,66801],[66762,66802],[66763,66803],[66764,66804],[66765,66805],[66766,66806],[66767,66807],[66768,66808],[66769,66809],[66770,66810],[66771,66811],[66776,66736],[66777,66737],[66778,66738],[66779,66739],[66780,66740],[66781,66741],[66782,66742],[66783,66743],[66784,66744],[66785,66745],[66786,66746],[66787,66747],[66788,66748],[66789,66749],[66790,66750],[66791,66751],[66792,66752],[66793,66753],[66794,66754],[66795,66755],[66796,66756],[66797,66757],[66798,66758],[66799,66759],[66800,66760],[66801,66761],[66802,66762],[66803,66763],[66804,66764],[66805,66765],[66806,66766],[66807,66767],[66808,66768],[66809,66769],[66810,66770],[66811,66771],[66928,66967],[66929,66968],[66930,66969],[66931,66970],[66932,66971],[66933,66972],[66934,66973],[66935,66974],[66936,66975],[66937,66976],[66938,66977],[66940,66979],[66941,66980],[66942,66981],[66943,66982],[66944,66983],[66945,66984],[66946,66985],[66947,66986],[66948,66987],[66949,66988],[66950,66989],[66951,66990],[66952,66991],[66953,66992],[66954,66993],[66956,66995],[66957,66996],[66958,66997],[66959,66998],[66960,66999],[66961,67e3],[66962,67001],[66964,67003],[66965,67004],[66967,66928],[66968,66929],[66969,66930],[66970,66931],[66971,66932],[66972,66933],[66973,66934],[66974,66935],[66975,66936],[66976,66937],[66977,66938],[66979,66940],[66980,66941],[66981,66942],[66982,66943],[66983,66944],[66984,66945],[66985,66946],[66986,66947],[66987,66948],[66988,66949],[66989,66950],[66990,66951],[66991,66952],[66992,66953],[66993,66954],[66995,66956],[66996,66957],[66997,66958],[66998,66959],[66999,66960],[67e3,66961],[67001,66962],[67003,66964],[67004,66965],[68736,68800],[68737,68801],[68738,68802],[68739,68803],[68740,68804],[68741,68805],[68742,68806],[68743,68807],[68744,68808],[68745,68809],[68746,68810],[68747,68811],[68748,68812],[68749,68813],[68750,68814],[68751,68815],[68752,68816],[68753,68817],[68754,68818],[68755,68819],[68756,68820],[68757,68821],[68758,68822],[68759,68823],[68760,68824],[68761,68825],[68762,68826],[68763,68827],[68764,68828],[68765,68829],[68766,68830],[68767,68831],[68768,68832],[68769,68833],[68770,68834],[68771,68835],[68772,68836],[68773,68837],[68774,68838],[68775,68839],[68776,68840],[68777,68841],[68778,68842],[68779,68843],[68780,68844],[68781,68845],[68782,68846],[68783,68847],[68784,68848],[68785,68849],[68786,68850],[68800,68736],[68801,68737],[68802,68738],[68803,68739],[68804,68740],[68805,68741],[68806,68742],[68807,68743],[68808,68744],[68809,68745],[68810,68746],[68811,68747],[68812,68748],[68813,68749],[68814,68750],[68815,68751],[68816,68752],[68817,68753],[68818,68754],[68819,68755],[68820,68756],[68821,68757],[68822,68758],[68823,68759],[68824,68760],[68825,68761],[68826,68762],[68827,68763],[68828,68764],[68829,68765],[68830,68766],[68831,68767],[68832,68768],[68833,68769],[68834,68770],[68835,68771],[68836,68772],[68837,68773],[68838,68774],[68839,68775],[68840,68776],[68841,68777],[68842,68778],[68843,68779],[68844,68780],[68845,68781],[68846,68782],[68847,68783],[68848,68784],[68849,68785],[68850,68786],[71840,71872],[71841,71873],[71842,71874],[71843,71875],[71844,71876],[71845,71877],[71846,71878],[71847,71879],[71848,71880],[71849,71881],[71850,71882],[71851,71883],[71852,71884],[71853,71885],[71854,71886],[71855,71887],[71856,71888],[71857,71889],[71858,71890],[71859,71891],[71860,71892],[71861,71893],[71862,71894],[71863,71895],[71864,71896],[71865,71897],[71866,71898],[71867,71899],[71868,71900],[71869,71901],[71870,71902],[71871,71903],[71872,71840],[71873,71841],[71874,71842],[71875,71843],[71876,71844],[71877,71845],[71878,71846],[71879,71847],[71880,71848],[71881,71849],[71882,71850],[71883,71851],[71884,71852],[71885,71853],[71886,71854],[71887,71855],[71888,71856],[71889,71857],[71890,71858],[71891,71859],[71892,71860],[71893,71861],[71894,71862],[71895,71863],[71896,71864],[71897,71865],[71898,71866],[71899,71867],[71900,71868],[71901,71869],[71902,71870],[71903,71871],[93760,93792],[93761,93793],[93762,93794],[93763,93795],[93764,93796],[93765,93797],[93766,93798],[93767,93799],[93768,93800],[93769,93801],[93770,93802],[93771,93803],[93772,93804],[93773,93805],[93774,93806],[93775,93807],[93776,93808],[93777,93809],[93778,93810],[93779,93811],[93780,93812],[93781,93813],[93782,93814],[93783,93815],[93784,93816],[93785,93817],[93786,93818],[93787,93819],[93788,93820],[93789,93821],[93790,93822],[93791,93823],[93792,93760],[93793,93761],[93794,93762],[93795,93763],[93796,93764],[93797,93765],[93798,93766],[93799,93767],[93800,93768],[93801,93769],[93802,93770],[93803,93771],[93804,93772],[93805,93773],[93806,93774],[93807,93775],[93808,93776],[93809,93777],[93810,93778],[93811,93779],[93812,93780],[93813,93781],[93814,93782],[93815,93783],[93816,93784],[93817,93785],[93818,93786],[93819,93787],[93820,93788],[93821,93789],[93822,93790],[93823,93791],[125184,125218],[125185,125219],[125186,125220],[125187,125221],[125188,125222],[125189,125223],[125190,125224],[125191,125225],[125192,125226],[125193,125227],[125194,125228],[125195,125229],[125196,125230],[125197,125231],[125198,125232],[125199,125233],[125200,125234],[125201,125235],[125202,125236],[125203,125237],[125204,125238],[125205,125239],[125206,125240],[125207,125241],[125208,125242],[125209,125243],[125210,125244],[125211,125245],[125212,125246],[125213,125247],[125214,125248],[125215,125249],[125216,125250],[125217,125251],[125218,125184],[125219,125185],[125220,125186],[125221,125187],[125222,125188],[125223,125189],[125224,125190],[125225,125191],[125226,125192],[125227,125193],[125228,125194],[125229,125195],[125230,125196],[125231,125197],[125232,125198],[125233,125199],[125234,125200],[125235,125201],[125236,125202],[125237,125203],[125238,125204],[125239,125205],[125240,125206],[125241,125207],[125242,125208],[125243,125209],[125244,125210],[125245,125211],[125246,125212],[125247,125213],[125248,125214],[125249,125215],[125250,125216],[125251,125217]])},11890:(t,e,n)=>{"use strict";const i=n(23161).generate,a=n(89077).parse,r=n(78776),o=n(48710),s=n(73276),c=n(61818),l=n(98957),u=r().addRange(0,1114111),d=(r().addRange(0,65535),u.clone().remove(10,13,8232,8233)),h=(t,e,n)=>e?n?l.UNICODE_IGNORE_CASE.get(t):l.UNICODE.get(t):l.REGULAR.get(t),f=(t,e)=>{const i=e?`${t}/${e}`:`Binary_Property/${t}`;try{return n(7771)(`./${i}.js`)}catch(a){throw new Error(`Failed to recognize value \`${e}\` for property \`${t}\`.`)}},g=(t,e)=>{const n=t.split("="),i=n[0];let a;if(1==n.length)a=(t=>{try{const e="General_Category",n=s(e,t);return f(e,n)}catch(n){}const e=o(t);return f(e)})(i);else{const t=o(i),e=s(t,n[1]);a=f(t,e)}return e?u.clone().remove(a):a.clone()};r.prototype.iuAddRange=function(t,e){const n=this;do{const e=m(t);e&&n.add(e)}while(++t<=e);return n};const p=(t,e)=>{let n=a(e,w.useUnicodeFlag?"u":"");switch(n.type){case"characterClass":case"group":case"value":break;default:n=b(n,e)}Object.assign(t,n)},b=(t,e)=>({type:"group",behavior:"ignore",body:[t],raw:`(?:${e})`}),m=t=>c.get(t)||!1,y=(t,e)=>{delete t.name,t.matchIndex=e},v=(t,e,n)=>{switch(t.type){case"dot":if(w.useDotAllFlag)break;w.unicode?p(t,(i=w.dotAll,i?u:d).toString(e)):w.dotAll&&p(t,"[\\s\\S]");break;case"characterClass":t=((t,e)=>{const n=r();for(const i of t.body)switch(i.type){case"value":if(n.add(i.codePoint),w.ignoreCase&&w.unicode&&!w.useUnicodeFlag){const t=m(i.codePoint);t&&n.add(t)}break;case"characterClassRange":const t=i.min.codePoint,e=i.max.codePoint;n.addRange(t,e),w.ignoreCase&&w.unicode&&!w.useUnicodeFlag&&n.iuAddRange(t,e);break;case"characterClassEscape":n.add(h(i.value,w.unicode,w.ignoreCase));break;case"unicodePropertyEscape":n.add(g(i.value,i.negative));break;default:throw new Error(`Unknown term type: ${i.type}`)}return t.negative?p(t,`(?!${n.toString(e)})[\\s\\S]`):p(t,n.toString(e)),t})(t,e);break;case"unicodePropertyEscape":w.unicodePropertyEscape&&p(t,g(t.value,t.negative).toString(e));break;case"characterClassEscape":p(t,h(t.value,w.unicode,w.ignoreCase).toString(e));break;case"group":if("normal"==t.behavior&&n.lastIndex++,t.name&&w.namedGroup){const e=t.name.value;if(n.names[e])throw new Error(`Multiple groups with the same name (${e}) are not allowed.`);const i=n.lastIndex;delete t.name,n.names[e]=i,n.onNamedGroup&&n.onNamedGroup.call(null,e,i),n.unmatchedReferences[e]&&(n.unmatchedReferences[e].forEach((t=>{y(t,i)})),delete n.unmatchedReferences[e])}case"alternative":case"disjunction":case"quantifier":t.body=t.body.map((t=>v(t,e,n)));break;case"value":const a=t.codePoint,o=r(a);if(w.ignoreCase&&w.unicode&&!w.useUnicodeFlag){const t=m(a);t&&o.add(t)}p(t,o.toString(e));break;case"reference":if(t.name){const e=t.name.value,i=n.names[e];if(i){y(t,i);break}n.unmatchedReferences[e]||(n.unmatchedReferences[e]=[]),n.unmatchedReferences[e].push(t)}break;case"anchor":case"empty":case"group":break;default:throw new Error(`Unknown term type: ${t.type}`)}var i;return t},w={ignoreCase:!1,unicode:!1,dotAll:!1,useDotAllFlag:!1,useUnicodeFlag:!1,unicodePropertyEscape:!1,namedGroup:!1};t.exports=(t,e,n)=>{w.unicode=e&&e.includes("u");const r={unicodePropertyEscape:w.unicode,namedGroups:!0,lookbehind:n&&n.lookbehind};w.ignoreCase=e&&e.includes("i");const o=n&&n.dotAllFlag;if(w.dotAll=o&&e&&e.includes("s"),w.namedGroup=n&&n.namedGroup,w.useDotAllFlag=n&&n.useDotAllFlag,w.useUnicodeFlag=n&&n.useUnicodeFlag,w.unicodePropertyEscape=n&&n.unicodePropertyEscape,o&&w.useDotAllFlag)throw new Error("`useDotAllFlag` and `dotAllFlag` cannot both be true!");const s={hasUnicodeFlag:w.useUnicodeFlag,bmpOnly:!w.unicode},c={onNamedGroup:n&&n.onNamedGroup,lastIndex:0,names:Object.create(null),unmatchedReferences:Object.create(null)},l=a(t,e,r);return v(l,s,c),(t=>{const e=Object.keys(t.unmatchedReferences);if(e.length>0)throw new Error(`Unknown group names: ${e}`)})(c),i(l)}},23161:function(t,e,n){var i;t=n.nmd(t),function(){"use strict";var a={function:!0,object:!0},r=a[typeof window]&&window||this,o=a[typeof e]&&e&&!e.nodeType&&e,s=a.object&&t&&!t.nodeType,c=o&&s&&"object"==typeof n.g&&n.g;!c||c.global!==c&&c.window!==c&&c.self!==c||(r=c);var l=Object.prototype.hasOwnProperty;function u(){var t=Number(arguments[0]);if(!isFinite(t)||t<0||t>1114111||Math.floor(t)!=t)throw RangeError("Invalid code point: "+t);if(t<=65535)return String.fromCharCode(t);var e=55296+((t-=65536)>>10),n=t%1024+56320;return String.fromCharCode(e,n)}var d={};function h(t,e){if(-1==e.indexOf("|")){if(t==e)return;throw Error("Invalid node type: "+t+"; expected type: "+e)}if(!(e=l.call(d,e)?d[e]:d[e]=RegExp("^(?:"+e+")$")).test(t))throw Error("Invalid node type: "+t+"; expected types: "+e)}function f(t){var e=t.type;if(l.call(y,e))return y[e](t);throw Error("Invalid node type: "+e)}function g(t,e){for(var n,i=-1,a=e.length,r="";++i<a;)n=e[i],i+1<a&&"value"==e[i].type&&"null"==e[i].kind&&"value"==e[i+1].type&&"symbol"==e[i+1].kind&&e[i+1].codePoint>=48&&e[i+1].codePoint<=57?r+="\\000":r+=t(n);return r}function p(t){return h(t.type,"anchor|characterClassEscape|characterClassRange|dot|value"),f(t)}function b(t){return h(t.type,"identifier"),t.value}function m(t){return h(t.type,"anchor|characterClass|characterClassEscape|empty|group|quantifier|reference|unicodePropertyEscape|value|dot"),f(t)}var y={alternative:function(t){return h(t.type,"alternative"),g(m,t.body)},anchor:function(t){switch(h(t.type,"anchor"),t.kind){case"start":return"^";case"end":return"$";case"boundary":return"\\b";case"not-boundary":return"\\B";default:throw Error("Invalid assertion")}},characterClass:function(t){return h(t.type,"characterClass"),"["+(t.negative?"^":"")+g(p,t.body)+"]"},characterClassEscape:function(t){return h(t.type,"characterClassEscape"),"\\"+t.value},characterClassRange:function(t){h(t.type,"characterClassRange");var e=t.min,n=t.max;if("characterClassRange"==e.type||"characterClassRange"==n.type)throw Error("Invalid character class range");return p(e)+"-"+p(n)},disjunction:function(t){h(t.type,"disjunction");for(var e=t.body,n=-1,i=e.length,a="";++n<i;)0!=n&&(a+="|"),a+=f(e[n]);return a},dot:function(t){return h(t.type,"dot"),"."},group:function(t){h(t.type,"group");var e="";switch(t.behavior){case"normal":t.name&&(e+="?<"+b(t.name)+">");break;case"ignore":e+="?:";break;case"lookahead":e+="?=";break;case"negativeLookahead":e+="?!";break;case"lookbehind":e+="?<=";break;case"negativeLookbehind":e+="?<!";break;default:throw Error("Invalid behaviour: "+t.behaviour)}return"("+(e+=g(f,t.body))+")"},quantifier:function(t){h(t.type,"quantifier");var e="",n=t.min,i=t.max;return e=null==i?0==n?"*":1==n?"+":"{"+n+",}":n==i?"{"+n+"}":0==n&&1==i?"?":"{"+n+","+i+"}",t.greedy||(e+="?"),function(t){return h(t.type,"anchor|characterClass|characterClassEscape|dot|group|reference|value"),f(t)}(t.body[0])+e},reference:function(t){if(h(t.type,"reference"),t.matchIndex)return"\\"+t.matchIndex;if(t.name)return"\\k<"+b(t.name)+">";throw new Error("Unknown reference type")},unicodePropertyEscape:function(t){return h(t.type,"unicodePropertyEscape"),"\\"+(t.negative?"P":"p")+"{"+t.value+"}"},value:function(t){h(t.type,"value");var e=t.kind,n=t.codePoint;if("number"!=typeof n)throw new Error("Invalid code point: "+n);switch(e){case"controlLetter":return"\\c"+u(n+64);case"hexadecimalEscape":return"\\x"+("00"+n.toString(16).toUpperCase()).slice(-2);case"identifier":return"\\"+u(n);case"null":return"\\"+n;case"octal":return"\\"+("000"+n.toString(8)).slice(-3);case"singleEscape":switch(n){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 11:return"\\v";case 12:return"\\f";case 13:return"\\r";case 45:return"\\-";default:throw Error("Invalid code point: "+n)}case"symbol":return u(n);case"unicodeEscape":return"\\u"+("0000"+n.toString(16).toUpperCase()).slice(-4);case"unicodeCodePointEscape":return"\\u{"+n.toString(16).toUpperCase()+"}";default:throw Error("Unsupported node kind: "+e)}}},v={generate:f};void 0===(i=function(){return v}.call(e,n,e,t))||(t.exports=i),r.regjsgen=v}.call(this)},89077:t=>{var e,n,i,a;i=String.fromCodePoint||(e=String.fromCharCode,n=Math.floor,function(){var t,i,a=16384,r=[],o=-1,s=arguments.length;if(!s)return"";for(var c="";++o<s;){var l=Number(arguments[o]);if(!isFinite(l)||l<0||l>1114111||n(l)!=l)throw RangeError("Invalid code point: "+l);l<=65535?r.push(l):(t=55296+((l-=65536)>>10),i=l%1024+56320,r.push(t,i)),(o+1==s||r.length>a)&&(c+=e.apply(null,r),r.length=0)}return c}),a={parse:function(t,e,n){function a(e){return e.raw=t.substring(e.range[0],e.range[1]),e}function r(t,e){return t.range[0]=e,a(t)}function o(t,e){return a({type:"anchor",kind:t,range:[J-e,J]})}function s(t,e,n,i){return a({type:"value",kind:t,codePoint:e,range:[n,i]})}function c(t,e,n,i){return i=i||0,s(t,e,J-(n.length+i),J)}function l(t){var e,n=t[0],i=n.charCodeAt(0);return K&&1===n.length&&i>=55296&&i<=56319&&(e=m().charCodeAt(0))>=56320&&e<=57343?s("symbol",1024*(i-55296)+e-56320+65536,++J-2,J):s("symbol",i,J-1,J)}function u(t,e,n,i){return null==i&&(n=J-1,i=J),a({type:"quantifier",min:t,max:e,greedy:!0,body:null,range:[n,i]})}function d(t,e,n,i){return a({type:"characterClass",kind:t.kind,body:t.body,negative:e,range:[n,i]})}function h(t,e,n,i){return t.codePoint>e.codePoint&&W("invalid range in character class",t.raw+"-"+e.raw,n,i),a({type:"characterClassRange",min:t,max:e,range:[n,i]})}function f(t){return"alternative"===t.type?t.body:[t]}function g(e){e=e||1;var n=t.substring(J,J+e);return J+=e||1,n}function p(t){b(t)||W("character",t)}function b(e){if(t.indexOf(e,J)===J)return g(e.length)}function m(){return t[J]}function y(e){return t.indexOf(e,J)===J}function v(e){return t[J+1]===e}function w(e){var n=t.substring(J).match(e);return n&&(n.range=[],n.range[0]=J,g(n[0].length),n.range[1]=J),n}function x(){var t=[],e=J;for(t.push(R());b("|");)t.push(R());return 1===t.length?t[0]:function(t,e,n){return a({type:"disjunction",body:t,range:[e,n]})}(t,e,J)}function R(){for(var t,e=[],n=J;t=_();)e.push(t);return 1===e.length?e[0]:function(t,e,n){return a({type:"alternative",body:t,range:[e,n]})}(e,n,J)}function _(){if(J>=t.length||y("|")||y(")"))return null;var e=b("^")?o("start",1):b("$")?o("end",1):b("\\b")?o("boundary",2):b("\\B")?o("not-boundary",2):k("(?=","lookahead","(?!","negativeLookahead");if(e)return e;var i,c=function(){var t;if(t=w(/^[^^$\\.*+?()[\]{}|]/))return l(t);if(!K&&(t=w(/^(?:]|})/)))return l(t);if(b("."))return a({type:"dot",range:[J-1,J]});if(b("\\")){if(!(t=A())){if(!K&&"c"==m())return s("symbol",92,J-1,J);W("atomEscape")}return t}if(t=P())return t;if(n.lookbehind&&(t=k("(?<=","lookbehind","(?<!","negativeLookbehind")))return t;if(n.namedGroups&&b("(?<")){var e=M();p(">");var i=E("normal",e.range[0]-3);return i.name=e,i}return k("(?:","ignore","(","normal")}();return c||(pos_backup=J,(i=C()||!1)&&(J=pos_backup,W("Expected atom")),!K&&(res=w(/^{/))?c=l(res):W("Expected atom")),(i=C()||!1)?(i.body=f(c),r(i,c.range[0]),i):c}function k(t,e,n,i){var a=null,r=J;if(b(t))a=e;else{if(!b(n))return!1;a=i}return E(a,r)}function E(t,e){var n=x();n||W("Expected disjunction"),p(")");var i=function(t,e,n,i){return a({type:"group",behavior:t,body:e,range:[n,i]})}(t,f(n),e,J);return"normal"==t&&Z&&G++,i}function C(){var t,e,n,i,a=J;return b("*")?e=u(0):b("+")?e=u(1):b("?")?e=u(0,1):(t=w(/^\{([0-9]+)\}/))?e=u(n=parseInt(t[1],10),n,t.range[0],t.range[1]):(t=w(/^\{([0-9]+),\}/))?e=u(n=parseInt(t[1],10),void 0,t.range[0],t.range[1]):(t=w(/^\{([0-9]+),([0-9]+)\}/))&&((n=parseInt(t[1],10))>(i=parseInt(t[2],10))&&W("numbers out of order in {} quantifier","",a,J),e=u(n,i,t.range[0],t.range[1])),e&&b("?")&&(e.greedy=!1,e.range[1]+=1),e}function S(t){var e,n;if(K&&"unicodeEscape"==t.kind&&(e=t.codePoint)>=55296&&e<=56319&&y("\\")&&v("u")){var i=J;J++;var r=T();"unicodeEscape"==r.kind&&(n=r.codePoint)>=56320&&n<=57343?(t.range[1]=r.range[1],t.codePoint=1024*(e-55296)+n-56320+65536,t.type="value",t.kind="unicodeCodePointEscape",a(t)):J=i}return t}function T(){return A(!0)}function A(t){var e,i=J;if(e=function(){var t,e,n;if(t=w(/^(?!0)\d+/)){e=t[0];var i=parseInt(t[0],10);return i<=G?(n=t[0],a({type:"reference",matchIndex:parseInt(n,10),range:[J-1-n.length,J]})):(Y.push(i),g(-t[0].length),(t=w(/^[0-7]{1,3}/))?c("octal",parseInt(t[0],8),t[0],1):r(t=l(w(/^[89]/)),t.range[0]-1))}return!!(t=w(/^[0-7]{1,3}/))&&(e=t[0],/^0{1,3}$/.test(e)?c("null",0,"0",e.length):c("octal",parseInt(e,8),e,1))}()||function(){if(n.namedGroups&&w(/^k<(?=.*?>)/)){var t=M();return p(">"),function(t){return a({type:"reference",name:t,range:[t.range[0]-3,J]})}(t)}}(),e)return e;if(t){if(b("b"))return c("singleEscape",8,"\\b");if(b("B"))W("\\B not possible inside of CharacterClass","",i);else{if(!K&&(e=w(/^c([0-9])/)))return c("controlLetter",e[1]+16,e[1],2);if(!K&&(e=w(/^c_/)))return c("controlLetter",31,"_",2)}if(K&&b("-"))return c("singleEscape",45,"\\-")}return e=D()||L()}function D(){var t;return(t=w(/^[dDsSwW]/))?a({type:"characterClassEscape",value:t[0],range:[J-2,J]}):!(!n.unicodePropertyEscape||!K&&!X||!(t=w(/^([pP])\{([^\}]+)\}/)))&&a({type:"unicodePropertyEscape",negative:"P"===t[1],value:t[2],range:[t.range[0]-1,t.range[1]],raw:t[0]})}function I(){var t;return(t=w(/^u([0-9a-fA-F]{4})/))?S(c("unicodeEscape",parseInt(t[1],16),t[1],2)):K&&(t=w(/^u\{([0-9a-fA-F]+)\}/))?c("unicodeCodePointEscape",parseInt(t[1],16),t[1],4):void 0}function L(){var t,e,i,a=J;if(t=w(/^[fnrtv]/)){var r=0;switch(t[0]){case"t":r=9;break;case"n":r=10;break;case"v":r=11;break;case"f":r=12;break;case"r":r=13}return c("singleEscape",r,"\\"+t[0])}return(t=w(/^c([a-zA-Z])/))?c("controlLetter",t[1].charCodeAt(0)%32,t[1],2):(t=w(/^x([0-9a-fA-F]{2})/))?c("hexadecimalEscape",parseInt(t[1],16),t[1],2):(t=I())?((!t||t.codePoint>1114111)&&W("Invalid escape sequence",null,a,J),t):(i=m(),K&&/[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/.test(i)||!K&&"c"!==i?"k"===i&&n.lookbehind?null:c("identifier",(e=g()).charCodeAt(0),e,1):null)}function O(e){var n=m(),a=J;if("\\"===n){g();var r=I();return r&&e(r.codePoint)||W("Invalid escape sequence",null,a,J),i(r.codePoint)}var o=n.charCodeAt(0);if(o>=55296&&o<=56319){var s=(n+=t[J+1]).charCodeAt(1);s>=56320&&s<=57343&&(o=1024*(o-55296)+s-56320+65536)}if(e(o))return g(),o>65535&&g(),n}function M(){var t,e=J,n=O(N);for(n||W("Invalid identifier");t=O(B);)n+=t;return a({type:"identifier",value:n,range:[e,J]})}function N(t){return 36===t||95===t||t>=65&&t<=90||t>=97&&t<=122||t>=128&&/[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\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\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\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\u0AF9\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-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\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-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\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\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\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]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFF1]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/.test(i(t))}function B(t){return N(t)||t>=48&&t<=57||t>=128&&/[0-9_\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDD30-\uDD39\uDF46-\uDF50]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC66-\uDC6F\uDC7F-\uDC82\uDCB0-\uDCBA\uDCF0-\uDCF9\uDD00-\uDD02\uDD27-\uDD34\uDD36-\uDD3F\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC9-\uDDCC\uDDD0-\uDDD9\uDE2C-\uDE37\uDE3E\uDEDF-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC35-\uDC46\uDC50-\uDC59\uDC5E\uDCB0-\uDCC3\uDCD0-\uDCD9\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDE50-\uDE59\uDEAB-\uDEB7\uDEC0-\uDEC9\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDC2C-\uDC3A\uDCE0-\uDCE9\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE8A-\uDE99]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC50-\uDC59\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD50-\uDD59\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDDA0-\uDDA9\uDEF3-\uDEF6]|\uD81A[\uDE60-\uDE69\uDEF0-\uDEF4\uDF30-\uDF36\uDF50-\uDF59]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A\uDD50-\uDD59]|\uDB40[\uDD00-\uDDEF]/.test(i(t))}function P(){var t,e=J;return(t=w(/^\[\^/))?(t=F(),p("]"),d(t,!0,e,J)):b("[")?(t=F(),p("]"),d(t,!1,e,J)):null}function F(){var t,e;return y("]")?{kind:"union",body:[]}:X?function(){var t,e=[],n=z(!0);for(e.push(n),t="classRange"===n.type?"union":y("&")?"intersection":y("-")?"subtraction":"union";!y("]");)"intersection"===t?(p("&"),p("&"),y("&")&&W("&& cannot be followed by &. Wrap it in parentheses: &&(&).")):"subtraction"===t&&(p("-"),p("-")),n=z("union"===t),e.push(n);return{kind:t,body:e}}():((e=$())||W("classAtom"),(t=y("]")?[e]:j(e))||W("nonEmptyClassRanges"),{kind:"union",body:t})}function j(t){var e,n,i,a,r;if(y("-")&&!v("]")){e=t.range[0],r=l(b("-")),(a=$())||W("classAtom"),n=J;var o=F();return o||W("classRanges"),"codePoint"in t&&"codePoint"in a?i=[h(t,a,e,n)]:K?W("invalid character class"):i=[t,r,a],"empty"===o.type?i:i.concat(o.body)}return(i=function(){var t=$();return t||W("classAtom"),y("]")?t:j(t)}())||W("nonEmptyClassRangesNoDash"),[t].concat(i)}function $(){return b("-")?l("-"):function(){var t;return(t=w(/^[^\\\]-]/))?l(t[0]):b("\\")?((t=T())||W("classEscape"),S(t)):void 0}()}function z(t){var e,n,i=J;if(b("\\"))if(n=D())e=n;else{if(n=V())return n;W("Invalid escape","\\"+m(),i)}else if(n=U())e=n;else{if(n=function(){var t=[],e=J;if(!b("("))return null;do{t.push(q())}while(b("|"));return p(")"),function(t,e,n){return a({type:"classStrings",strings:t,range:[e,n]})}(t,e,J)}()||P())return n;W("Invalid character",m())}if(t&&y("-")&&!v("-")){if(p("-"),n=H())return h(e,n,i,J);W("Invalid range end",m())}return e}function H(){if(b("\\")){if(res=V())return res;W("Invalid escape","\\"+m(),from)}return U()}function U(){var t;if(t=w(/^[^()[\]{}/\-\\|]/))return l(t)}function V(){return b("b")?c("singleEscape",8,"\\b"):b("B")?void W("\\B not possible inside of ClassContents","",J-2):(res=w(/^[&\-!#%,:;<=>@_`~]/))?c("identifier",res[0].codePointAt(0),res[0]):(res=L())?res:null}function q(){for(var t,e=[],n=J;t=H();)e.push(t);return function(t,e,n){return a({type:"classString",characters:t,range:[e,n]})}(e,n,J)}function W(e,n,i,a){i=null==i?J:i,a=null==a?i:a;var r=Math.max(0,i-10),o=Math.min(a+10,t.length),s=" "+t.substring(r,o),c=" "+new Array(i-r+1).join(" ")+"^";throw SyntaxError(e+" at position "+i+(n?": "+n:"")+"\n"+s+"\n"+c)}n||(n={});var Y=[],G=0,Z=!0,K=-1!==(e||"").indexOf("u"),X=-1!==(e||"").indexOf("v"),J=0;if(X&&!n.unicodeSet)throw new Error('The "v" flag is only supported when the .unicodeSet option is enabled.');if(K&&X)throw new Error('The "u" and "v" flags are mutually exclusive.');""===(t=String(t))&&(t="(?:)");var Q=x();Q.range[1]!==t.length&&W("Could not parse entire input - got stuck","",Q.range[1]);for(var tt=0;tt<Y.length;tt++)if(Y[tt]<=G)return J=0,Z=!1,x();return Q}},t.exports?t.exports=a:window.regjsparser=a},42351:t=>{t.exports=new Set(["General_Category","Script","Script_Extensions","Alphabetic","Any","ASCII","ASCII_Hex_Digit","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","ID_Continue","ID_Start","Ideographic","IDS_Binary_Operator","IDS_Trinary_Operator","Join_Control","Logical_Order_Exception","Lowercase","Math","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start"])},48710:(t,e,n)=>{"use strict";const i=n(42351),a=n(84855);t.exports=function(t){if(i.has(t))return t;if(a.has(t))return a.get(t);throw new Error(`Unknown property: ${t}`)}},44973:t=>{t.exports=new Map([["General_Category",new Map([["C","Other"],["Cc","Control"],["cntrl","Control"],["Cf","Format"],["Cn","Unassigned"],["Co","Private_Use"],["Cs","Surrogate"],["L","Letter"],["LC","Cased_Letter"],["Ll","Lowercase_Letter"],["Lm","Modifier_Letter"],["Lo","Other_Letter"],["Lt","Titlecase_Letter"],["Lu","Uppercase_Letter"],["M","Mark"],["Combining_Mark","Mark"],["Mc","Spacing_Mark"],["Me","Enclosing_Mark"],["Mn","Nonspacing_Mark"],["N","Number"],["Nd","Decimal_Number"],["digit","Decimal_Number"],["Nl","Letter_Number"],["No","Other_Number"],["P","Punctuation"],["punct","Punctuation"],["Pc","Connector_Punctuation"],["Pd","Dash_Punctuation"],["Pe","Close_Punctuation"],["Pf","Final_Punctuation"],["Pi","Initial_Punctuation"],["Po","Other_Punctuation"],["Ps","Open_Punctuation"],["S","Symbol"],["Sc","Currency_Symbol"],["Sk","Modifier_Symbol"],["Sm","Math_Symbol"],["So","Other_Symbol"],["Z","Separator"],["Zl","Line_Separator"],["Zp","Paragraph_Separator"],["Zs","Space_Separator"],["Other","Other"],["Control","Control"],["Format","Format"],["Unassigned","Unassigned"],["Private_Use","Private_Use"],["Surrogate","Surrogate"],["Letter","Letter"],["Cased_Letter","Cased_Letter"],["Lowercase_Letter","Lowercase_Letter"],["Modifier_Letter","Modifier_Letter"],["Other_Letter","Other_Letter"],["Titlecase_Letter","Titlecase_Letter"],["Uppercase_Letter","Uppercase_Letter"],["Mark","Mark"],["Spacing_Mark","Spacing_Mark"],["Enclosing_Mark","Enclosing_Mark"],["Nonspacing_Mark","Nonspacing_Mark"],["Number","Number"],["Decimal_Number","Decimal_Number"],["Letter_Number","Letter_Number"],["Other_Number","Other_Number"],["Punctuation","Punctuation"],["Connector_Punctuation","Connector_Punctuation"],["Dash_Punctuation","Dash_Punctuation"],["Close_Punctuation","Close_Punctuation"],["Final_Punctuation","Final_Punctuation"],["Initial_Punctuation","Initial_Punctuation"],["Other_Punctuation","Other_Punctuation"],["Open_Punctuation","Open_Punctuation"],["Symbol","Symbol"],["Currency_Symbol","Currency_Symbol"],["Modifier_Symbol","Modifier_Symbol"],["Math_Symbol","Math_Symbol"],["Other_Symbol","Other_Symbol"],["Separator","Separator"],["Line_Separator","Line_Separator"],["Paragraph_Separator","Paragraph_Separator"],["Space_Separator","Space_Separator"]])],["Script",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Chrs","Chorasmian"],["Copt","Coptic"],["Qaac","Coptic"],["Cpmn","Cypro_Minoan"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Diak","Dives_Akuru"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Elym","Elymaic"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hmnp","Nyiakeng_Puachue_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Kits","Khitan_Small_Script"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Nand","Nandinagari"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Ougr","Old_Uyghur"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Tnsa","Tangsa"],["Toto","Toto"],["Ugar","Ugaritic"],["Vaii","Vai"],["Vith","Vithkuqi"],["Wara","Warang_Citi"],["Wcho","Wancho"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yezi","Yezidi"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Chorasmian","Chorasmian"],["Coptic","Coptic"],["Cypro_Minoan","Cypro_Minoan"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dives_Akuru","Dives_Akuru"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Elymaic","Elymaic"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Nyiakeng_Puachue_Hmong","Nyiakeng_Puachue_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Khitan_Small_Script","Khitan_Small_Script"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Nandinagari","Nandinagari"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Old_Uyghur","Old_Uyghur"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Tangsa","Tangsa"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Vithkuqi","Vithkuqi"],["Warang_Citi","Warang_Citi"],["Wancho","Wancho"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yezidi","Yezidi"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])],["Script_Extensions",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Chrs","Chorasmian"],["Copt","Coptic"],["Qaac","Coptic"],["Cpmn","Cypro_Minoan"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Diak","Dives_Akuru"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Elym","Elymaic"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hmnp","Nyiakeng_Puachue_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Kits","Khitan_Small_Script"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Nand","Nandinagari"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Ougr","Old_Uyghur"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Tnsa","Tangsa"],["Toto","Toto"],["Ugar","Ugaritic"],["Vaii","Vai"],["Vith","Vithkuqi"],["Wara","Warang_Citi"],["Wcho","Wancho"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yezi","Yezidi"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Chorasmian","Chorasmian"],["Coptic","Coptic"],["Cypro_Minoan","Cypro_Minoan"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dives_Akuru","Dives_Akuru"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Elymaic","Elymaic"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Nyiakeng_Puachue_Hmong","Nyiakeng_Puachue_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Khitan_Small_Script","Khitan_Small_Script"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Nandinagari","Nandinagari"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Old_Uyghur","Old_Uyghur"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Tangsa","Tangsa"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Vithkuqi","Vithkuqi"],["Warang_Citi","Warang_Citi"],["Wancho","Wancho"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yezidi","Yezidi"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])]])},73276:(t,e,n)=>{"use strict";const i=n(44973);t.exports=function(t,e){const n=i.get(t);if(!n)throw new Error(`Unknown property \`${t}\`.`);const a=n.get(e);if(a)return a;throw new Error(`Unknown value \`${e}\` for property \`${t}\`.`)}},84855:t=>{t.exports=new Map([["scx","Script_Extensions"],["sc","Script"],["gc","General_Category"],["AHex","ASCII_Hex_Digit"],["Alpha","Alphabetic"],["Bidi_C","Bidi_Control"],["Bidi_M","Bidi_Mirrored"],["Cased","Cased"],["CI","Case_Ignorable"],["CWCF","Changes_When_Casefolded"],["CWCM","Changes_When_Casemapped"],["CWKCF","Changes_When_NFKC_Casefolded"],["CWL","Changes_When_Lowercased"],["CWT","Changes_When_Titlecased"],["CWU","Changes_When_Uppercased"],["Dash","Dash"],["Dep","Deprecated"],["DI","Default_Ignorable_Code_Point"],["Dia","Diacritic"],["EBase","Emoji_Modifier_Base"],["EComp","Emoji_Component"],["EMod","Emoji_Modifier"],["Emoji","Emoji"],["EPres","Emoji_Presentation"],["Ext","Extender"],["ExtPict","Extended_Pictographic"],["Gr_Base","Grapheme_Base"],["Gr_Ext","Grapheme_Extend"],["Hex","Hex_Digit"],["IDC","ID_Continue"],["Ideo","Ideographic"],["IDS","ID_Start"],["IDSB","IDS_Binary_Operator"],["IDST","IDS_Trinary_Operator"],["Join_C","Join_Control"],["LOE","Logical_Order_Exception"],["Lower","Lowercase"],["Math","Math"],["NChar","Noncharacter_Code_Point"],["Pat_Syn","Pattern_Syntax"],["Pat_WS","Pattern_White_Space"],["QMark","Quotation_Mark"],["Radical","Radical"],["RI","Regional_Indicator"],["SD","Soft_Dotted"],["STerm","Sentence_Terminal"],["Term","Terminal_Punctuation"],["UIdeo","Unified_Ideograph"],["Upper","Uppercase"],["VS","Variation_Selector"],["WSpace","White_Space"],["space","White_Space"],["XIDC","XID_Continue"],["XIDS","XID_Start"]])},62854:(t,e,n)=>{"use strict";t.exports=s;var i=n(49858),a=i.CONTINUE,r=i.SKIP,o=i.EXIT;function s(t,e,n,a){"function"==typeof e&&"function"!=typeof n&&(a=n,n=e,e=null),i(t,e,(function(t,e){var i=e[e.length-1],a=i?i.children.indexOf(t):null;return n(t,a,i)}),a)}s.CONTINUE=a,s.SKIP=r,s.EXIT=o},40350:t=>{"use strict";function e(t){if(null==t)return n;if("string"==typeof t)return function(t){return e;function e(e){return Boolean(e&&e.type===t)}}(t);if("object"==typeof t)return"length"in t?function(t){var n=[],i=-1;for(;++i<t.length;)n[i]=e(t[i]);return a;function a(){for(var t=-1;++t<n.length;)if(n[t].apply(this,arguments))return!0;return!1}}(t):function(t){return e;function e(e){var n;for(n in t)if(e[n]!==t[n])return!1;return!0}}(t);if("function"==typeof t)return t;throw new Error("Expected function, string, or object as test")}function n(){return!0}t.exports=e},29824:t=>{t.exports=function(t){return t}},49858:(t,e,n)=>{"use strict";t.exports=c;var i=n(40350),a=n(29824),r=!0,o="skip",s=!1;function c(t,e,n,c){var l,u;"function"==typeof e&&"function"!=typeof n&&(c=n,n=e,e=null),u=i(e),l=c?-1:1,function t(i,d,h){var f,g="object"==typeof i&&null!==i?i:{};"string"==typeof g.type&&(f="string"==typeof g.tagName?g.tagName:"string"==typeof g.name?g.name:void 0,p.displayName="node ("+a(g.type+(f?"<"+f+">":""))+")");return p;function p(){var a,f,g=h.concat(i),p=[];if((!e||u(i,d,h[h.length-1]||null))&&(p=function(t){if(null!==t&&"object"==typeof t&&"length"in t)return t;if("number"==typeof t)return[r,t];return[t]}(n(i,h)),p[0]===s))return p;if(i.children&&p[0]!==o)for(f=(c?i.children.length:-1)+l;f>-1&&f<i.children.length;){if(a=t(i.children[f],f,g)(),a[0]===s)return a;f="number"==typeof a[1]?a[1]:f+l}return p}}(t,null,[])()}c.CONTINUE=true,c.SKIP=o,c.EXIT=s},42473:t=>{"use strict";var e=function(){};t.exports=e},12813:(t,e,n)=>{"use strict";n.r(e),n.d(e,{compile:()=>ss,compileSync:()=>cs});var i={};n.r(i),n.d(i,{attentionMarkers:()=>Vi,contentInitial:()=>Fi,disable:()=>qi,document:()=>Pi,flow:()=>$i,flowInitial:()=>ji,insideSpan:()=>Ui,string:()=>zi,text:()=>Hi});var a={};function r(t){if(t)throw t}n.r(a),n.d(a,{boolean:()=>Ir,booleanish:()=>Lr,commaOrSpaceSeparated:()=>Pr,commaSeparated:()=>Br,number:()=>Mr,overloadedBoolean:()=>Or,spaceSeparated:()=>Nr});var o=n(48738),s=n(94470);function c(t){if("object"!=typeof t||null===t)return!1;const e=Object.getPrototypeOf(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)}function l(){const t=[],e={run:function(...e){let n=-1;const i=e.pop();if("function"!=typeof i)throw new TypeError("Expected function as last argument, not "+i);!function a(r,...o){const s=t[++n];let c=-1;if(r)i(r);else{for(;++c<e.length;)null!==o[c]&&void 0!==o[c]||(o[c]=e[c]);e=o,s?function(t,e){let n;return i;function i(...e){const i=t.length>e.length;let s;i&&e.push(a);try{s=t.apply(this,e)}catch(r){const e=r;if(i&&n)throw e;return a(e)}i||(s instanceof Promise?s.then(o,a):s instanceof Error?a(s):o(s))}function a(t,...i){n||(n=!0,e(t,...i))}function o(t){a(null,t)}}(s,a)(...o):i(null,...o)}}(null,...e)},use:function(n){if("function"!=typeof n)throw new TypeError("Expected `middelware` to be a function, not "+n);return t.push(n),e}};return e}function u(t){return t&&"object"==typeof t?"position"in t||"type"in t?h(t.position):"start"in t||"end"in t?h(t):"line"in t||"column"in t?d(t):"":""}function d(t){return f(t&&t.line)+":"+f(t&&t.column)}function h(t){return d(t&&t.start)+"-"+d(t&&t.end)}function f(t){return t&&"number"==typeof t?t:1}class g extends Error{constructor(t,e,n){const i=[null,null];let a={start:{line:null,column:null},end:{line:null,column:null}};if(super(),"string"==typeof e&&(n=e,e=void 0),"string"==typeof n){const t=n.indexOf(":");-1===t?i[1]=n:(i[0]=n.slice(0,t),i[1]=n.slice(t+1))}e&&("type"in e||"position"in e?e.position&&(a=e.position):"start"in e||"end"in e?a=e:("line"in e||"column"in e)&&(a.start=e)),this.name=u(e)||"1:1",this.message="object"==typeof t?t.message:t,this.stack="","object"==typeof t&&t.stack&&(this.stack=t.stack),this.reason=this.message,this.fatal,this.line=a.start.line,this.column=a.start.column,this.position=a,this.source=i[0],this.ruleId=i[1],this.file,this.actual,this.expected,this.url,this.note}}g.prototype.file="",g.prototype.name="",g.prototype.reason="",g.prototype.message="",g.prototype.stack="",g.prototype.fatal=null,g.prototype.column=null,g.prototype.line=null,g.prototype.source=null,g.prototype.ruleId=null,g.prototype.position=null;const p={basename:function(t,e){if(void 0!==e&&"string"!=typeof e)throw new TypeError('"ext" argument must be a string');b(t);let n,i=0,a=-1,r=t.length;if(void 0===e||0===e.length||e.length>t.length){for(;r--;)if(47===t.charCodeAt(r)){if(n){i=r+1;break}}else a<0&&(n=!0,a=r+1);return a<0?"":t.slice(i,a)}if(e===t)return"";let o=-1,s=e.length-1;for(;r--;)if(47===t.charCodeAt(r)){if(n){i=r+1;break}}else o<0&&(n=!0,o=r+1),s>-1&&(t.charCodeAt(r)===e.charCodeAt(s--)?s<0&&(a=r):(s=-1,a=o));i===a?a=o:a<0&&(a=t.length);return t.slice(i,a)},dirname:function(t){if(b(t),0===t.length)return".";let e,n=-1,i=t.length;for(;--i;)if(47===t.charCodeAt(i)){if(e){n=i;break}}else e||(e=!0);return n<0?47===t.charCodeAt(0)?"/":".":1===n&&47===t.charCodeAt(0)?"//":t.slice(0,n)},extname:function(t){b(t);let e,n=t.length,i=-1,a=0,r=-1,o=0;for(;n--;){const s=t.charCodeAt(n);if(47!==s)i<0&&(e=!0,i=n+1),46===s?r<0?r=n:1!==o&&(o=1):r>-1&&(o=-1);else if(e){a=n+1;break}}if(r<0||i<0||0===o||1===o&&r===i-1&&r===a+1)return"";return t.slice(r,i)},join:function(...t){let e,n=-1;for(;++n<t.length;)b(t[n]),t[n]&&(e=void 0===e?t[n]:e+"/"+t[n]);return void 0===e?".":function(t){b(t);const e=47===t.charCodeAt(0);let n=function(t,e){let n,i,a="",r=0,o=-1,s=0,c=-1;for(;++c<=t.length;){if(c<t.length)n=t.charCodeAt(c);else{if(47===n)break;n=47}if(47===n){if(o===c-1||1===s);else if(o!==c-1&&2===s){if(a.length<2||2!==r||46!==a.charCodeAt(a.length-1)||46!==a.charCodeAt(a.length-2))if(a.length>2){if(i=a.lastIndexOf("/"),i!==a.length-1){i<0?(a="",r=0):(a=a.slice(0,i),r=a.length-1-a.lastIndexOf("/")),o=c,s=0;continue}}else if(a.length>0){a="",r=0,o=c,s=0;continue}e&&(a=a.length>0?a+"/..":"..",r=2)}else a.length>0?a+="/"+t.slice(o+1,c):a=t.slice(o+1,c),r=c-o-1;o=c,s=0}else 46===n&&s>-1?s++:s=-1}return a}(t,!e);0!==n.length||e||(n=".");n.length>0&&47===t.charCodeAt(t.length-1)&&(n+="/");return e?"/"+n:n}(e)},sep:"/"};function b(t){if("string"!=typeof t)throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}const m={cwd:function(){return"/"}};function y(t){return null!==t&&"object"==typeof t&&t.href&&t.origin}function v(t){if("string"==typeof t)t=new URL(t);else if(!y(t)){const e=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+t+"`");throw e.code="ERR_INVALID_ARG_TYPE",e}if("file:"!==t.protocol){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return function(t){if(""!==t.hostname){const t=new TypeError('File URL host must be "localhost" or empty on darwin');throw t.code="ERR_INVALID_FILE_URL_HOST",t}const e=t.pathname;let n=-1;for(;++n<e.length;)if(37===e.charCodeAt(n)&&50===e.charCodeAt(n+1)){const t=e.charCodeAt(n+2);if(70===t||102===t){const t=new TypeError("File URL path must not include encoded / characters");throw t.code="ERR_INVALID_FILE_URL_PATH",t}}return decodeURIComponent(e)}(t)}const w=["history","path","basename","stem","extname","dirname"];class x{constructor(t){let e;e=t?"string"==typeof t||function(t){return o(t)}(t)?{value:t}:y(t)?{path:t}:t:{},this.data={},this.messages=[],this.history=[],this.cwd=m.cwd(),this.value,this.stored,this.result,this.map;let n,i=-1;for(;++i<w.length;){const t=w[i];t in e&&void 0!==e[t]&&null!==e[t]&&(this[t]="history"===t?[...e[t]]:e[t])}for(n in e)w.includes(n)||(this[n]=e[n])}get path(){return this.history[this.history.length-1]}set path(t){y(t)&&(t=v(t)),_(t,"path"),this.path!==t&&this.history.push(t)}get dirname(){return"string"==typeof this.path?p.dirname(this.path):void 0}set dirname(t){k(this.basename,"dirname"),this.path=p.join(t||"",this.basename)}get basename(){return"string"==typeof this.path?p.basename(this.path):void 0}set basename(t){_(t,"basename"),R(t,"basename"),this.path=p.join(this.dirname||"",t)}get extname(){return"string"==typeof this.path?p.extname(this.path):void 0}set extname(t){if(R(t,"extname"),k(this.dirname,"extname"),t){if(46!==t.charCodeAt(0))throw new Error("`extname` must start with `.`");if(t.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=p.join(this.dirname,this.stem+(t||""))}get stem(){return"string"==typeof this.path?p.basename(this.path,this.extname):void 0}set stem(t){_(t,"stem"),R(t,"stem"),this.path=p.join(this.dirname||"",t+(this.extname||""))}toString(t){return(this.value||"").toString(t||void 0)}message(t,e,n){const i=new g(t,e,n);return this.path&&(i.name=this.path+":"+i.name,i.file=this.path),i.fatal=!1,this.messages.push(i),i}info(t,e,n){const i=this.message(t,e,n);return i.fatal=null,i}fail(t,e,n){const i=this.message(t,e,n);throw i.fatal=!0,i}}function R(t,e){if(t&&t.includes(p.sep))throw new Error("`"+e+"` cannot be a path: did not expect `"+p.sep+"`")}function _(t,e){if(!t)throw new Error("`"+e+"` cannot be empty")}function k(t,e){if(!t)throw new Error("Setting `"+e+"` requires `path` to be set too")}const E=function t(){const e=l(),n=[];let i,a={},u=-1;return d.data=function(t,e){if("string"==typeof t)return 2===arguments.length?(D("data",i),a[t]=e,d):C.call(a,t)&&a[t]||null;if(t)return D("data",i),a=t,d;return a},d.Parser=void 0,d.Compiler=void 0,d.freeze=function(){if(i)return d;for(;++u<n.length;){const[t,...i]=n[u];if(!1===i[0])continue;!0===i[0]&&(i[0]=void 0);const a=t.call(d,...i);"function"==typeof a&&e.use(a)}return i=!0,u=Number.POSITIVE_INFINITY,d},d.attachers=n,d.use=function(t,...e){let r;if(D("use",i),null==t);else if("function"==typeof t)h(t,...e);else{if("object"!=typeof t)throw new TypeError("Expected usable value, not `"+t+"`");Array.isArray(t)?u(t):l(t)}r&&(a.settings=Object.assign(a.settings||{},r));return d;function o(t){if("function"==typeof t)h(t);else{if("object"!=typeof t)throw new TypeError("Expected usable value, not `"+t+"`");if(Array.isArray(t)){const[e,...n]=t;h(e,...n)}else l(t)}}function l(t){u(t.plugins),t.settings&&(r=Object.assign(r||{},t.settings))}function u(t){let e=-1;if(null==t);else{if(!Array.isArray(t))throw new TypeError("Expected a list of plugins, not `"+t+"`");for(;++e<t.length;){o(t[e])}}}function h(t,e){let i,a=-1;for(;++a<n.length;)if(n[a][0]===t){i=n[a];break}i?(c(i[1])&&c(e)&&(e=s(!0,i[1],e)),i[1]=e):n.push([...arguments])}},d.parse=function(t){d.freeze();const e=O(t),n=d.Parser;if(T("parse",n),S(n,"parse"))return new n(String(e),e).parse();return n(String(e),e)},d.stringify=function(t,e){d.freeze();const n=O(e),i=d.Compiler;if(A("stringify",i),I(t),S(i,"compile"))return new i(t,n).compile();return i(t,n)},d.run=function(t,n,i){I(t),d.freeze(),i||"function"!=typeof n||(i=n,n=void 0);if(!i)return new Promise(a);function a(a,r){function o(e,n,o){n=n||t,e?r(e):a?a(n):i(null,n,o)}e.run(t,O(n),o)}a(null,i)},d.runSync=function(t,e){let n,i;return d.run(t,e,a),L("runSync","run",i),n;function a(t,e){r(t),n=e,i=!0}},d.process=function(t,e){if(d.freeze(),T("process",d.Parser),A("process",d.Compiler),!e)return new Promise(n);function n(n,i){const a=O(t);function r(t,a){t||!a?i(t):n?n(a):e(null,a)}d.run(d.parse(a),a,((t,e,n)=>{if(!t&&e&&n){const a=d.stringify(e,n);null==a||("string"==typeof(i=a)||o(i)?n.value=a:n.result=a),r(t,n)}else r(t);var i}))}n(null,e)},d.processSync=function(t){let e;d.freeze(),T("processSync",d.Parser),A("processSync",d.Compiler);const n=O(t);return d.process(n,i),L("processSync","process",e),n;function i(t){e=!0,r(t)}},d;function d(){const e=t();let i=-1;for(;++i<n.length;)e.use(...n[i]);return e.data(s(!0,{},a)),e}}().freeze(),C={}.hasOwnProperty;function S(t,e){return"function"==typeof t&&t.prototype&&(function(t){let e;for(e in t)if(C.call(t,e))return!0;return!1}(t.prototype)||e in t.prototype)}function T(t,e){if("function"!=typeof e)throw new TypeError("Cannot `"+t+"` without `Parser`")}function A(t,e){if("function"!=typeof e)throw new TypeError("Cannot `"+t+"` without `Compiler`")}function D(t,e){if(e)throw new Error("Cannot call `"+t+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function I(t){if(!c(t)||"string"!=typeof t.type)throw new TypeError("Expected node, got `"+t+"`")}function L(t,e,n){if(!n)throw new Error("`"+t+"` finished async. Use `"+e+"` instead")}function O(t){return function(t){return Boolean(t&&"object"==typeof t&&"message"in t&&"messages"in t)}(t)?t:new x(t)}var M=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,81,2,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,9,5351,0,7,14,13835,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,983,6,110,6,6,9,4759,9,787719,239],N=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,4026,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,757,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,3104,541,1507,4938,6,4191],B="\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\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\u0af9\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-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\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",P={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},F="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",j={5:F,"5module":F+" export import",6:F+" const class extends export import super"},$=/^in(stanceof)?$/,z=new RegExp("["+B+"]"),H=new RegExp("["+B+"\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f]");function U(t,e){for(var n=65536,i=0;i<e.length;i+=2){if((n+=e[i])>t)return!1;if((n+=e[i+1])>=t)return!0}return!1}function V(t,e){return t<65?36===t:t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&z.test(String.fromCharCode(t)):!1!==e&&U(t,N)))}function q(t,e){return t<48?36===t:t<58||!(t<65)&&(t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&H.test(String.fromCharCode(t)):!1!==e&&(U(t,N)||U(t,M)))))}var W=function(t,e){void 0===e&&(e={}),this.label=t,this.keyword=e.keyword,this.beforeExpr=!!e.beforeExpr,this.startsExpr=!!e.startsExpr,this.isLoop=!!e.isLoop,this.isAssign=!!e.isAssign,this.prefix=!!e.prefix,this.postfix=!!e.postfix,this.binop=e.binop||null,this.updateContext=null};function Y(t,e){return new W(t,{beforeExpr:!0,binop:e})}var G={beforeExpr:!0},Z={startsExpr:!0},K={};function X(t,e){return void 0===e&&(e={}),e.keyword=t,K[t]=new W(t,e)}var J={num:new W("num",Z),regexp:new W("regexp",Z),string:new W("string",Z),name:new W("name",Z),privateId:new W("privateId",Z),eof:new W("eof"),bracketL:new W("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new W("]"),braceL:new W("{",{beforeExpr:!0,startsExpr:!0}),braceR:new W("}"),parenL:new W("(",{beforeExpr:!0,startsExpr:!0}),parenR:new W(")"),comma:new W(",",G),semi:new W(";",G),colon:new W(":",G),dot:new W("."),question:new W("?",G),questionDot:new W("?."),arrow:new W("=>",G),template:new W("template"),invalidTemplate:new W("invalidTemplate"),ellipsis:new W("...",G),backQuote:new W("`",Z),dollarBraceL:new W("${",{beforeExpr:!0,startsExpr:!0}),eq:new W("=",{beforeExpr:!0,isAssign:!0}),assign:new W("_=",{beforeExpr:!0,isAssign:!0}),incDec:new W("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new W("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:Y("||",1),logicalAND:Y("&&",2),bitwiseOR:Y("|",3),bitwiseXOR:Y("^",4),bitwiseAND:Y("&",5),equality:Y("==/!=/===/!==",6),relational:Y("</>/<=/>=",7),bitShift:Y("<</>>/>>>",8),plusMin:new W("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:Y("%",10),star:Y("*",10),slash:Y("/",10),starstar:new W("**",{beforeExpr:!0}),coalesce:Y("??",1),_break:X("break"),_case:X("case",G),_catch:X("catch"),_continue:X("continue"),_debugger:X("debugger"),_default:X("default",G),_do:X("do",{isLoop:!0,beforeExpr:!0}),_else:X("else",G),_finally:X("finally"),_for:X("for",{isLoop:!0}),_function:X("function",Z),_if:X("if"),_return:X("return",G),_switch:X("switch"),_throw:X("throw",G),_try:X("try"),_var:X("var"),_const:X("const"),_while:X("while",{isLoop:!0}),_with:X("with"),_new:X("new",{beforeExpr:!0,startsExpr:!0}),_this:X("this",Z),_super:X("super",Z),_class:X("class",Z),_extends:X("extends",G),_export:X("export"),_import:X("import",Z),_null:X("null",Z),_true:X("true",Z),_false:X("false",Z),_in:X("in",{beforeExpr:!0,binop:7}),_instanceof:X("instanceof",{beforeExpr:!0,binop:7}),_typeof:X("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:X("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:X("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},Q=/\r\n?|\n|\u2028|\u2029/,tt=new RegExp(Q.source,"g");function et(t){return 10===t||13===t||8232===t||8233===t}function nt(t,e,n){void 0===n&&(n=t.length);for(var i=e;i<n;i++){var a=t.charCodeAt(i);if(et(a))return i<n-1&&13===a&&10===t.charCodeAt(i+1)?i+2:i+1}return-1}var it=/[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/,at=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,rt=Object.prototype,ot=rt.hasOwnProperty,st=rt.toString,ct=Object.hasOwn||function(t,e){return ot.call(t,e)},lt=Array.isArray||function(t){return"[object Array]"===st.call(t)};function ut(t){return new RegExp("^(?:"+t.replace(/ /g,"|")+")$")}function dt(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))}var ht=/(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/,ft=function(t,e){this.line=t,this.column=e};ft.prototype.offset=function(t){return new ft(this.line,this.column+t)};var gt=function(t,e,n){this.start=e,this.end=n,null!==t.sourceFile&&(this.source=t.sourceFile)};function pt(t,e){for(var n=1,i=0;;){var a=nt(t,i,e);if(a<0)return new ft(n,e-i);++n,i=a}}var bt={ecmaVersion:null,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:null,allowSuperOutsideMethod:null,allowHashBang:!1,checkPrivateFields:!0,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},mt=!1;function yt(t){var e={};for(var n in bt)e[n]=t&&ct(t,n)?t[n]:bt[n];if("latest"===e.ecmaVersion?e.ecmaVersion=1e8:null==e.ecmaVersion?(!mt&&"object"==typeof console&&console.warn&&(mt=!0,console.warn("Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future.")),e.ecmaVersion=11):e.ecmaVersion>=2015&&(e.ecmaVersion-=2009),null==e.allowReserved&&(e.allowReserved=e.ecmaVersion<5),t&&null!=t.allowHashBang||(e.allowHashBang=e.ecmaVersion>=14),lt(e.onToken)){var i=e.onToken;e.onToken=function(t){return i.push(t)}}return lt(e.onComment)&&(e.onComment=function(t,e){return function(n,i,a,r,o,s){var c={type:n?"Block":"Line",value:i,start:a,end:r};t.locations&&(c.loc=new gt(this,o,s)),t.ranges&&(c.range=[a,r]),e.push(c)}}(e,e.onComment)),e}var vt=256;function wt(t,e){return 2|(t?4:0)|(e?8:0)}var xt=function(t,e,n){this.options=t=yt(t),this.sourceFile=t.sourceFile,this.keywords=ut(j[t.ecmaVersion>=6?6:"module"===t.sourceType?"5module":5]);var i="";!0!==t.allowReserved&&(i=P[t.ecmaVersion>=6?6:5===t.ecmaVersion?5:3],"module"===t.sourceType&&(i+=" await")),this.reservedWords=ut(i);var a=(i?i+" ":"")+P.strict;this.reservedWordsStrict=ut(a),this.reservedWordsStrictBind=ut(a+" "+P.strictBind),this.input=String(e),this.containsEsc=!1,n?(this.pos=n,this.lineStart=this.input.lastIndexOf("\n",n-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(Q).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=J.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===t.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),0===this.pos&&t.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(1),this.regexpState=null,this.privateNameStack=[]},Rt={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},inClassStaticBlock:{configurable:!0}};xt.prototype.parse=function(){var t=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(t)},Rt.inFunction.get=function(){return(2&this.currentVarScope().flags)>0},Rt.inGenerator.get=function(){return(8&this.currentVarScope().flags)>0&&!this.currentVarScope().inClassFieldInit},Rt.inAsync.get=function(){return(4&this.currentVarScope().flags)>0&&!this.currentVarScope().inClassFieldInit},Rt.canAwait.get=function(){for(var t=this.scopeStack.length-1;t>=0;t--){var e=this.scopeStack[t];if(e.inClassFieldInit||e.flags&vt)return!1;if(2&e.flags)return(4&e.flags)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction},Rt.allowSuper.get=function(){var t=this.currentThisScope(),e=t.flags,n=t.inClassFieldInit;return(64&e)>0||n||this.options.allowSuperOutsideMethod},Rt.allowDirectSuper.get=function(){return(128&this.currentThisScope().flags)>0},Rt.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},Rt.allowNewDotTarget.get=function(){var t=this.currentThisScope(),e=t.flags,n=t.inClassFieldInit;return(258&e)>0||n},Rt.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&vt)>0},xt.extend=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];for(var n=this,i=0;i<t.length;i++)n=t[i](n);return n},xt.parse=function(t,e){return new this(e,t).parse()},xt.parseExpressionAt=function(t,e,n){var i=new this(n,t,e);return i.nextToken(),i.parseExpression()},xt.tokenizer=function(t,e){return new this(e,t)},Object.defineProperties(xt.prototype,Rt);var _t=xt.prototype,kt=/^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/;_t.strictDirective=function(t){if(this.options.ecmaVersion<5)return!1;for(;;){at.lastIndex=t,t+=at.exec(this.input)[0].length;var e=kt.exec(this.input.slice(t));if(!e)return!1;if("use strict"===(e[1]||e[2])){at.lastIndex=t+e[0].length;var n=at.exec(this.input),i=n.index+n[0].length,a=this.input.charAt(i);return";"===a||"}"===a||Q.test(n[0])&&!(/[(`.[+\-/*%<>=,?^&]/.test(a)||"!"===a&&"="===this.input.charAt(i+1))}t+=e[0].length,at.lastIndex=t,t+=at.exec(this.input)[0].length,";"===this.input[t]&&t++}},_t.eat=function(t){return this.type===t&&(this.next(),!0)},_t.isContextual=function(t){return this.type===J.name&&this.value===t&&!this.containsEsc},_t.eatContextual=function(t){return!!this.isContextual(t)&&(this.next(),!0)},_t.expectContextual=function(t){this.eatContextual(t)||this.unexpected()},_t.canInsertSemicolon=function(){return this.type===J.eof||this.type===J.braceR||Q.test(this.input.slice(this.lastTokEnd,this.start))},_t.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},_t.semicolon=function(){this.eat(J.semi)||this.insertSemicolon()||this.unexpected()},_t.afterTrailingComma=function(t,e){if(this.type===t)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),e||this.next(),!0},_t.expect=function(t){this.eat(t)||this.unexpected()},_t.unexpected=function(t){this.raise(null!=t?t:this.start,"Unexpected token")};var Et=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};_t.checkPatternErrors=function(t,e){if(t){t.trailingComma>-1&&this.raiseRecoverable(t.trailingComma,"Comma is not permitted after the rest element");var n=e?t.parenthesizedAssign:t.parenthesizedBind;n>-1&&this.raiseRecoverable(n,e?"Assigning to rvalue":"Parenthesized pattern")}},_t.checkExpressionErrors=function(t,e){if(!t)return!1;var n=t.shorthandAssign,i=t.doubleProto;if(!e)return n>=0||i>=0;n>=0&&this.raise(n,"Shorthand property assignments are valid only in destructuring patterns"),i>=0&&this.raiseRecoverable(i,"Redefinition of __proto__ property")},_t.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,"Yield expression cannot be a default value"),this.awaitPos&&this.raise(this.awaitPos,"Await expression cannot be a default value")},_t.isSimpleAssignTarget=function(t){return"ParenthesizedExpression"===t.type?this.isSimpleAssignTarget(t.expression):"Identifier"===t.type||"MemberExpression"===t.type};var Ct=xt.prototype;Ct.parseTopLevel=function(t){var e=Object.create(null);for(t.body||(t.body=[]);this.type!==J.eof;){var n=this.parseStatement(null,!0,e);t.body.push(n)}if(this.inModule)for(var i=0,a=Object.keys(this.undefinedExports);i<a.length;i+=1){var r=a[i];this.raiseRecoverable(this.undefinedExports[r].start,"Export '"+r+"' is not defined")}return this.adaptDirectivePrologue(t.body),this.next(),t.sourceType=this.options.sourceType,this.finishNode(t,"Program")};var St={kind:"loop"},Tt={kind:"switch"};Ct.isLet=function(t){if(this.options.ecmaVersion<6||!this.isContextual("let"))return!1;at.lastIndex=this.pos;var e=at.exec(this.input),n=this.pos+e[0].length,i=this.input.charCodeAt(n);if(91===i||92===i)return!0;if(t)return!1;if(123===i||i>55295&&i<56320)return!0;if(V(i,!0)){for(var a=n+1;q(i=this.input.charCodeAt(a),!0);)++a;if(92===i||i>55295&&i<56320)return!0;var r=this.input.slice(n,a);if(!$.test(r))return!0}return!1},Ct.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;at.lastIndex=this.pos;var t,e=at.exec(this.input),n=this.pos+e[0].length;return!(Q.test(this.input.slice(this.pos,n))||"function"!==this.input.slice(n,n+8)||n+8!==this.input.length&&(q(t=this.input.charCodeAt(n+8))||t>55295&&t<56320))},Ct.parseStatement=function(t,e,n){var i,a=this.type,r=this.startNode();switch(this.isLet(t)&&(a=J._var,i="let"),a){case J._break:case J._continue:return this.parseBreakContinueStatement(r,a.keyword);case J._debugger:return this.parseDebuggerStatement(r);case J._do:return this.parseDoStatement(r);case J._for:return this.parseForStatement(r);case J._function:return t&&(this.strict||"if"!==t&&"label"!==t)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(r,!1,!t);case J._class:return t&&this.unexpected(),this.parseClass(r,!0);case J._if:return this.parseIfStatement(r);case J._return:return this.parseReturnStatement(r);case J._switch:return this.parseSwitchStatement(r);case J._throw:return this.parseThrowStatement(r);case J._try:return this.parseTryStatement(r);case J._const:case J._var:return i=i||this.value,t&&"var"!==i&&this.unexpected(),this.parseVarStatement(r,i);case J._while:return this.parseWhileStatement(r);case J._with:return this.parseWithStatement(r);case J.braceL:return this.parseBlock(!0,r);case J.semi:return this.parseEmptyStatement(r);case J._export:case J._import:if(this.options.ecmaVersion>10&&a===J._import){at.lastIndex=this.pos;var o=at.exec(this.input),s=this.pos+o[0].length,c=this.input.charCodeAt(s);if(40===c||46===c)return this.parseExpressionStatement(r,this.parseExpression())}return this.options.allowImportExportEverywhere||(e||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),a===J._import?this.parseImport(r):this.parseExport(r,n);default:if(this.isAsyncFunction())return t&&this.unexpected(),this.next(),this.parseFunctionStatement(r,!0,!t);var l=this.value,u=this.parseExpression();return a===J.name&&"Identifier"===u.type&&this.eat(J.colon)?this.parseLabeledStatement(r,l,u,t):this.parseExpressionStatement(r,u)}},Ct.parseBreakContinueStatement=function(t,e){var n="break"===e;this.next(),this.eat(J.semi)||this.insertSemicolon()?t.label=null:this.type!==J.name?this.unexpected():(t.label=this.parseIdent(),this.semicolon());for(var i=0;i<this.labels.length;++i){var a=this.labels[i];if(null==t.label||a.name===t.label.name){if(null!=a.kind&&(n||"loop"===a.kind))break;if(t.label&&n)break}}return i===this.labels.length&&this.raise(t.start,"Unsyntactic "+e),this.finishNode(t,n?"BreakStatement":"ContinueStatement")},Ct.parseDebuggerStatement=function(t){return this.next(),this.semicolon(),this.finishNode(t,"DebuggerStatement")},Ct.parseDoStatement=function(t){return this.next(),this.labels.push(St),t.body=this.parseStatement("do"),this.labels.pop(),this.expect(J._while),t.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(J.semi):this.semicolon(),this.finishNode(t,"DoWhileStatement")},Ct.parseForStatement=function(t){this.next();var e=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(St),this.enterScope(0),this.expect(J.parenL),this.type===J.semi)return e>-1&&this.unexpected(e),this.parseFor(t,null);var n=this.isLet();if(this.type===J._var||this.type===J._const||n){var i=this.startNode(),a=n?"let":this.value;return this.next(),this.parseVar(i,!0,a),this.finishNode(i,"VariableDeclaration"),(this.type===J._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&1===i.declarations.length?(this.options.ecmaVersion>=9&&(this.type===J._in?e>-1&&this.unexpected(e):t.await=e>-1),this.parseForIn(t,i)):(e>-1&&this.unexpected(e),this.parseFor(t,i))}var r=this.isContextual("let"),o=!1,s=new Et,c=this.parseExpression(!(e>-1)||"await",s);return this.type===J._in||(o=this.options.ecmaVersion>=6&&this.isContextual("of"))?(this.options.ecmaVersion>=9&&(this.type===J._in?e>-1&&this.unexpected(e):t.await=e>-1),r&&o&&this.raise(c.start,"The left-hand side of a for-of loop may not start with 'let'."),this.toAssignable(c,!1,s),this.checkLValPattern(c),this.parseForIn(t,c)):(this.checkExpressionErrors(s,!0),e>-1&&this.unexpected(e),this.parseFor(t,c))},Ct.parseFunctionStatement=function(t,e,n){return this.next(),this.parseFunction(t,Dt|(n?0:It),!1,e)},Ct.parseIfStatement=function(t){return this.next(),t.test=this.parseParenExpression(),t.consequent=this.parseStatement("if"),t.alternate=this.eat(J._else)?this.parseStatement("if"):null,this.finishNode(t,"IfStatement")},Ct.parseReturnStatement=function(t){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(J.semi)||this.insertSemicolon()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,"ReturnStatement")},Ct.parseSwitchStatement=function(t){var e;this.next(),t.discriminant=this.parseParenExpression(),t.cases=[],this.expect(J.braceL),this.labels.push(Tt),this.enterScope(0);for(var n=!1;this.type!==J.braceR;)if(this.type===J._case||this.type===J._default){var i=this.type===J._case;e&&this.finishNode(e,"SwitchCase"),t.cases.push(e=this.startNode()),e.consequent=[],this.next(),i?e.test=this.parseExpression():(n&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),n=!0,e.test=null),this.expect(J.colon)}else e||this.unexpected(),e.consequent.push(this.parseStatement(null));return this.exitScope(),e&&this.finishNode(e,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(t,"SwitchStatement")},Ct.parseThrowStatement=function(t){return this.next(),Q.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,"ThrowStatement")};var At=[];Ct.parseCatchClauseParam=function(){var t=this.parseBindingAtom(),e="Identifier"===t.type;return this.enterScope(e?32:0),this.checkLValPattern(t,e?4:2),this.expect(J.parenR),t},Ct.parseTryStatement=function(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.type===J._catch){var e=this.startNode();this.next(),this.eat(J.parenL)?e.param=this.parseCatchClauseParam():(this.options.ecmaVersion<10&&this.unexpected(),e.param=null,this.enterScope(0)),e.body=this.parseBlock(!1),this.exitScope(),t.handler=this.finishNode(e,"CatchClause")}return t.finalizer=this.eat(J._finally)?this.parseBlock():null,t.handler||t.finalizer||this.raise(t.start,"Missing catch or finally clause"),this.finishNode(t,"TryStatement")},Ct.parseVarStatement=function(t,e,n){return this.next(),this.parseVar(t,!1,e,n),this.semicolon(),this.finishNode(t,"VariableDeclaration")},Ct.parseWhileStatement=function(t){return this.next(),t.test=this.parseParenExpression(),this.labels.push(St),t.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(t,"WhileStatement")},Ct.parseWithStatement=function(t){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),t.object=this.parseParenExpression(),t.body=this.parseStatement("with"),this.finishNode(t,"WithStatement")},Ct.parseEmptyStatement=function(t){return this.next(),this.finishNode(t,"EmptyStatement")},Ct.parseLabeledStatement=function(t,e,n,i){for(var a=0,r=this.labels;a<r.length;a+=1){r[a].name===e&&this.raise(n.start,"Label '"+e+"' is already declared")}for(var o=this.type.isLoop?"loop":this.type===J._switch?"switch":null,s=this.labels.length-1;s>=0;s--){var c=this.labels[s];if(c.statementStart!==t.start)break;c.statementStart=this.start,c.kind=o}return this.labels.push({name:e,kind:o,statementStart:this.start}),t.body=this.parseStatement(i?-1===i.indexOf("label")?i+"label":i:"label"),this.labels.pop(),t.label=n,this.finishNode(t,"LabeledStatement")},Ct.parseExpressionStatement=function(t,e){return t.expression=e,this.semicolon(),this.finishNode(t,"ExpressionStatement")},Ct.parseBlock=function(t,e,n){for(void 0===t&&(t=!0),void 0===e&&(e=this.startNode()),e.body=[],this.expect(J.braceL),t&&this.enterScope(0);this.type!==J.braceR;){var i=this.parseStatement(null);e.body.push(i)}return n&&(this.strict=!1),this.next(),t&&this.exitScope(),this.finishNode(e,"BlockStatement")},Ct.parseFor=function(t,e){return t.init=e,this.expect(J.semi),t.test=this.type===J.semi?null:this.parseExpression(),this.expect(J.semi),t.update=this.type===J.parenR?null:this.parseExpression(),this.expect(J.parenR),t.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(t,"ForStatement")},Ct.parseForIn=function(t,e){var n=this.type===J._in;return this.next(),"VariableDeclaration"===e.type&&null!=e.declarations[0].init&&(!n||this.options.ecmaVersion<8||this.strict||"var"!==e.kind||"Identifier"!==e.declarations[0].id.type)&&this.raise(e.start,(n?"for-in":"for-of")+" loop variable declaration may not have an initializer"),t.left=e,t.right=n?this.parseExpression():this.parseMaybeAssign(),this.expect(J.parenR),t.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(t,n?"ForInStatement":"ForOfStatement")},Ct.parseVar=function(t,e,n,i){for(t.declarations=[],t.kind=n;;){var a=this.startNode();if(this.parseVarId(a,n),this.eat(J.eq)?a.init=this.parseMaybeAssign(e):i||"const"!==n||this.type===J._in||this.options.ecmaVersion>=6&&this.isContextual("of")?i||"Identifier"===a.id.type||e&&(this.type===J._in||this.isContextual("of"))?a.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),t.declarations.push(this.finishNode(a,"VariableDeclarator")),!this.eat(J.comma))break}return t},Ct.parseVarId=function(t,e){t.id=this.parseBindingAtom(),this.checkLValPattern(t.id,"var"===e?1:2,!1)};var Dt=1,It=2;function Lt(t,e){var n=e.key.name,i=t[n],a="true";return"MethodDefinition"!==e.type||"get"!==e.kind&&"set"!==e.kind||(a=(e.static?"s":"i")+e.kind),"iget"===i&&"iset"===a||"iset"===i&&"iget"===a||"sget"===i&&"sset"===a||"sset"===i&&"sget"===a?(t[n]="true",!1):!!i||(t[n]=a,!1)}function Ot(t,e){var n=t.computed,i=t.key;return!n&&("Identifier"===i.type&&i.name===e||"Literal"===i.type&&i.value===e)}Ct.parseFunction=function(t,e,n,i,a){this.initFunction(t),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!i)&&(this.type===J.star&&e&It&&this.unexpected(),t.generator=this.eat(J.star)),this.options.ecmaVersion>=8&&(t.async=!!i),e&Dt&&(t.id=4&e&&this.type!==J.name?null:this.parseIdent(),!t.id||e&It||this.checkLValSimple(t.id,this.strict||t.generator||t.async?this.treatFunctionsAsVar?1:2:3));var r=this.yieldPos,o=this.awaitPos,s=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(wt(t.async,t.generator)),e&Dt||(t.id=this.type===J.name?this.parseIdent():null),this.parseFunctionParams(t),this.parseFunctionBody(t,n,!1,a),this.yieldPos=r,this.awaitPos=o,this.awaitIdentPos=s,this.finishNode(t,e&Dt?"FunctionDeclaration":"FunctionExpression")},Ct.parseFunctionParams=function(t){this.expect(J.parenL),t.params=this.parseBindingList(J.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},Ct.parseClass=function(t,e){this.next();var n=this.strict;this.strict=!0,this.parseClassId(t,e),this.parseClassSuper(t);var i=this.enterClassBody(),a=this.startNode(),r=!1;for(a.body=[],this.expect(J.braceL);this.type!==J.braceR;){var o=this.parseClassElement(null!==t.superClass);o&&(a.body.push(o),"MethodDefinition"===o.type&&"constructor"===o.kind?(r&&this.raiseRecoverable(o.start,"Duplicate constructor in the same class"),r=!0):o.key&&"PrivateIdentifier"===o.key.type&&Lt(i,o)&&this.raiseRecoverable(o.key.start,"Identifier '#"+o.key.name+"' has already been declared"))}return this.strict=n,this.next(),t.body=this.finishNode(a,"ClassBody"),this.exitClassBody(),this.finishNode(t,e?"ClassDeclaration":"ClassExpression")},Ct.parseClassElement=function(t){if(this.eat(J.semi))return null;var e=this.options.ecmaVersion,n=this.startNode(),i="",a=!1,r=!1,o="method",s=!1;if(this.eatContextual("static")){if(e>=13&&this.eat(J.braceL))return this.parseClassStaticBlock(n),n;this.isClassElementNameStart()||this.type===J.star?s=!0:i="static"}if(n.static=s,!i&&e>=8&&this.eatContextual("async")&&(!this.isClassElementNameStart()&&this.type!==J.star||this.canInsertSemicolon()?i="async":r=!0),!i&&(e>=9||!r)&&this.eat(J.star)&&(a=!0),!i&&!r&&!a){var c=this.value;(this.eatContextual("get")||this.eatContextual("set"))&&(this.isClassElementNameStart()?o=c:i=c)}if(i?(n.computed=!1,n.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),n.key.name=i,this.finishNode(n.key,"Identifier")):this.parseClassElementName(n),e<13||this.type===J.parenL||"method"!==o||a||r){var l=!n.static&&Ot(n,"constructor"),u=l&&t;l&&"method"!==o&&this.raise(n.key.start,"Constructor can't have get/set modifier"),n.kind=l?"constructor":o,this.parseClassMethod(n,a,r,u)}else this.parseClassField(n);return n},Ct.isClassElementNameStart=function(){return this.type===J.name||this.type===J.privateId||this.type===J.num||this.type===J.string||this.type===J.bracketL||this.type.keyword},Ct.parseClassElementName=function(t){this.type===J.privateId?("constructor"===this.value&&this.raise(this.start,"Classes can't have an element named '#constructor'"),t.computed=!1,t.key=this.parsePrivateIdent()):this.parsePropertyName(t)},Ct.parseClassMethod=function(t,e,n,i){var a=t.key;"constructor"===t.kind?(e&&this.raise(a.start,"Constructor can't be a generator"),n&&this.raise(a.start,"Constructor can't be an async method")):t.static&&Ot(t,"prototype")&&this.raise(a.start,"Classes may not have a static property named prototype");var r=t.value=this.parseMethod(e,n,i);return"get"===t.kind&&0!==r.params.length&&this.raiseRecoverable(r.start,"getter should have no params"),"set"===t.kind&&1!==r.params.length&&this.raiseRecoverable(r.start,"setter should have exactly one param"),"set"===t.kind&&"RestElement"===r.params[0].type&&this.raiseRecoverable(r.params[0].start,"Setter cannot use rest params"),this.finishNode(t,"MethodDefinition")},Ct.parseClassField=function(t){if(Ot(t,"constructor")?this.raise(t.key.start,"Classes can't have a field named 'constructor'"):t.static&&Ot(t,"prototype")&&this.raise(t.key.start,"Classes can't have a static field named 'prototype'"),this.eat(J.eq)){var e=this.currentThisScope(),n=e.inClassFieldInit;e.inClassFieldInit=!0,t.value=this.parseMaybeAssign(),e.inClassFieldInit=n}else t.value=null;return this.semicolon(),this.finishNode(t,"PropertyDefinition")},Ct.parseClassStaticBlock=function(t){t.body=[];var e=this.labels;for(this.labels=[],this.enterScope(320);this.type!==J.braceR;){var n=this.parseStatement(null);t.body.push(n)}return this.next(),this.exitScope(),this.labels=e,this.finishNode(t,"StaticBlock")},Ct.parseClassId=function(t,e){this.type===J.name?(t.id=this.parseIdent(),e&&this.checkLValSimple(t.id,2,!1)):(!0===e&&this.unexpected(),t.id=null)},Ct.parseClassSuper=function(t){t.superClass=this.eat(J._extends)?this.parseExprSubscripts(null,!1):null},Ct.enterClassBody=function(){var t={declared:Object.create(null),used:[]};return this.privateNameStack.push(t),t.declared},Ct.exitClassBody=function(){var t=this.privateNameStack.pop(),e=t.declared,n=t.used;if(this.options.checkPrivateFields)for(var i=this.privateNameStack.length,a=0===i?null:this.privateNameStack[i-1],r=0;r<n.length;++r){var o=n[r];ct(e,o.name)||(a?a.used.push(o):this.raiseRecoverable(o.start,"Private field '#"+o.name+"' must be declared in an enclosing class"))}},Ct.parseExportAllDeclaration=function(t,e){return this.options.ecmaVersion>=11&&(this.eatContextual("as")?(t.exported=this.parseModuleExportName(),this.checkExport(e,t.exported,this.lastTokStart)):t.exported=null),this.expectContextual("from"),this.type!==J.string&&this.unexpected(),t.source=this.parseExprAtom(),this.semicolon(),this.finishNode(t,"ExportAllDeclaration")},Ct.parseExport=function(t,e){if(this.next(),this.eat(J.star))return this.parseExportAllDeclaration(t,e);if(this.eat(J._default))return this.checkExport(e,"default",this.lastTokStart),t.declaration=this.parseExportDefaultDeclaration(),this.finishNode(t,"ExportDefaultDeclaration");if(this.shouldParseExportStatement())t.declaration=this.parseExportDeclaration(t),"VariableDeclaration"===t.declaration.type?this.checkVariableExport(e,t.declaration.declarations):this.checkExport(e,t.declaration.id,t.declaration.id.start),t.specifiers=[],t.source=null;else{if(t.declaration=null,t.specifiers=this.parseExportSpecifiers(e),this.eatContextual("from"))this.type!==J.string&&this.unexpected(),t.source=this.parseExprAtom();else{for(var n=0,i=t.specifiers;n<i.length;n+=1){var a=i[n];this.checkUnreserved(a.local),this.checkLocalExport(a.local),"Literal"===a.local.type&&this.raise(a.local.start,"A string literal cannot be used as an exported binding without `from`.")}t.source=null}this.semicolon()}return this.finishNode(t,"ExportNamedDeclaration")},Ct.parseExportDeclaration=function(t){return this.parseStatement(null)},Ct.parseExportDefaultDeclaration=function(){var t;if(this.type===J._function||(t=this.isAsyncFunction())){var e=this.startNode();return this.next(),t&&this.next(),this.parseFunction(e,4|Dt,!1,t)}if(this.type===J._class){var n=this.startNode();return this.parseClass(n,"nullableID")}var i=this.parseMaybeAssign();return this.semicolon(),i},Ct.checkExport=function(t,e,n){t&&("string"!=typeof e&&(e="Identifier"===e.type?e.name:e.value),ct(t,e)&&this.raiseRecoverable(n,"Duplicate export '"+e+"'"),t[e]=!0)},Ct.checkPatternExport=function(t,e){var n=e.type;if("Identifier"===n)this.checkExport(t,e,e.start);else if("ObjectPattern"===n)for(var i=0,a=e.properties;i<a.length;i+=1){var r=a[i];this.checkPatternExport(t,r)}else if("ArrayPattern"===n)for(var o=0,s=e.elements;o<s.length;o+=1){var c=s[o];c&&this.checkPatternExport(t,c)}else"Property"===n?this.checkPatternExport(t,e.value):"AssignmentPattern"===n?this.checkPatternExport(t,e.left):"RestElement"===n?this.checkPatternExport(t,e.argument):"ParenthesizedExpression"===n&&this.checkPatternExport(t,e.expression)},Ct.checkVariableExport=function(t,e){if(t)for(var n=0,i=e;n<i.length;n+=1){var a=i[n];this.checkPatternExport(t,a.id)}},Ct.shouldParseExportStatement=function(){return"var"===this.type.keyword||"const"===this.type.keyword||"class"===this.type.keyword||"function"===this.type.keyword||this.isLet()||this.isAsyncFunction()},Ct.parseExportSpecifier=function(t){var e=this.startNode();return e.local=this.parseModuleExportName(),e.exported=this.eatContextual("as")?this.parseModuleExportName():e.local,this.checkExport(t,e.exported,e.exported.start),this.finishNode(e,"ExportSpecifier")},Ct.parseExportSpecifiers=function(t){var e=[],n=!0;for(this.expect(J.braceL);!this.eat(J.braceR);){if(n)n=!1;else if(this.expect(J.comma),this.afterTrailingComma(J.braceR))break;e.push(this.parseExportSpecifier(t))}return e},Ct.parseImport=function(t){return this.next(),this.type===J.string?(t.specifiers=At,t.source=this.parseExprAtom()):(t.specifiers=this.parseImportSpecifiers(),this.expectContextual("from"),t.source=this.type===J.string?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(t,"ImportDeclaration")},Ct.parseImportSpecifier=function(){var t=this.startNode();return t.imported=this.parseModuleExportName(),this.eatContextual("as")?t.local=this.parseIdent():(this.checkUnreserved(t.imported),t.local=t.imported),this.checkLValSimple(t.local,2),this.finishNode(t,"ImportSpecifier")},Ct.parseImportDefaultSpecifier=function(){var t=this.startNode();return t.local=this.parseIdent(),this.checkLValSimple(t.local,2),this.finishNode(t,"ImportDefaultSpecifier")},Ct.parseImportNamespaceSpecifier=function(){var t=this.startNode();return this.next(),this.expectContextual("as"),t.local=this.parseIdent(),this.checkLValSimple(t.local,2),this.finishNode(t,"ImportNamespaceSpecifier")},Ct.parseImportSpecifiers=function(){var t=[],e=!0;if(this.type===J.name&&(t.push(this.parseImportDefaultSpecifier()),!this.eat(J.comma)))return t;if(this.type===J.star)return t.push(this.parseImportNamespaceSpecifier()),t;for(this.expect(J.braceL);!this.eat(J.braceR);){if(e)e=!1;else if(this.expect(J.comma),this.afterTrailingComma(J.braceR))break;t.push(this.parseImportSpecifier())}return t},Ct.parseModuleExportName=function(){if(this.options.ecmaVersion>=13&&this.type===J.string){var t=this.parseLiteral(this.value);return ht.test(t.value)&&this.raise(t.start,"An export name cannot include a lone surrogate."),t}return this.parseIdent(!0)},Ct.adaptDirectivePrologue=function(t){for(var e=0;e<t.length&&this.isDirectiveCandidate(t[e]);++e)t[e].directive=t[e].expression.raw.slice(1,-1)},Ct.isDirectiveCandidate=function(t){return this.options.ecmaVersion>=5&&"ExpressionStatement"===t.type&&"Literal"===t.expression.type&&"string"==typeof t.expression.value&&('"'===this.input[t.start]||"'"===this.input[t.start])};var Mt=xt.prototype;Mt.toAssignable=function(t,e,n){if(this.options.ecmaVersion>=6&&t)switch(t.type){case"Identifier":this.inAsync&&"await"===t.name&&this.raise(t.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":t.type="ObjectPattern",n&&this.checkPatternErrors(n,!0);for(var i=0,a=t.properties;i<a.length;i+=1){var r=a[i];this.toAssignable(r,e),"RestElement"!==r.type||"ArrayPattern"!==r.argument.type&&"ObjectPattern"!==r.argument.type||this.raise(r.argument.start,"Unexpected token")}break;case"Property":"init"!==t.kind&&this.raise(t.key.start,"Object pattern can't contain getter or setter"),this.toAssignable(t.value,e);break;case"ArrayExpression":t.type="ArrayPattern",n&&this.checkPatternErrors(n,!0),this.toAssignableList(t.elements,e);break;case"SpreadElement":t.type="RestElement",this.toAssignable(t.argument,e),"AssignmentPattern"===t.argument.type&&this.raise(t.argument.start,"Rest elements cannot have a default value");break;case"AssignmentExpression":"="!==t.operator&&this.raise(t.left.end,"Only '=' operator can be used for specifying default value."),t.type="AssignmentPattern",delete t.operator,this.toAssignable(t.left,e);break;case"ParenthesizedExpression":this.toAssignable(t.expression,e,n);break;case"ChainExpression":this.raiseRecoverable(t.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":if(!e)break;default:this.raise(t.start,"Assigning to rvalue")}else n&&this.checkPatternErrors(n,!0);return t},Mt.toAssignableList=function(t,e){for(var n=t.length,i=0;i<n;i++){var a=t[i];a&&this.toAssignable(a,e)}if(n){var r=t[n-1];6===this.options.ecmaVersion&&e&&r&&"RestElement"===r.type&&"Identifier"!==r.argument.type&&this.unexpected(r.argument.start)}return t},Mt.parseSpread=function(t){var e=this.startNode();return this.next(),e.argument=this.parseMaybeAssign(!1,t),this.finishNode(e,"SpreadElement")},Mt.parseRestBinding=function(){var t=this.startNode();return this.next(),6===this.options.ecmaVersion&&this.type!==J.name&&this.unexpected(),t.argument=this.parseBindingAtom(),this.finishNode(t,"RestElement")},Mt.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case J.bracketL:var t=this.startNode();return this.next(),t.elements=this.parseBindingList(J.bracketR,!0,!0),this.finishNode(t,"ArrayPattern");case J.braceL:return this.parseObj(!0)}return this.parseIdent()},Mt.parseBindingList=function(t,e,n,i){for(var a=[],r=!0;!this.eat(t);)if(r?r=!1:this.expect(J.comma),e&&this.type===J.comma)a.push(null);else{if(n&&this.afterTrailingComma(t))break;if(this.type===J.ellipsis){var o=this.parseRestBinding();this.parseBindingListItem(o),a.push(o),this.type===J.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element"),this.expect(t);break}a.push(this.parseAssignableListItem(i))}return a},Mt.parseAssignableListItem=function(t){var e=this.parseMaybeDefault(this.start,this.startLoc);return this.parseBindingListItem(e),e},Mt.parseBindingListItem=function(t){return t},Mt.parseMaybeDefault=function(t,e,n){if(n=n||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(J.eq))return n;var i=this.startNodeAt(t,e);return i.left=n,i.right=this.parseMaybeAssign(),this.finishNode(i,"AssignmentPattern")},Mt.checkLValSimple=function(t,e,n){void 0===e&&(e=0);var i=0!==e;switch(t.type){case"Identifier":this.strict&&this.reservedWordsStrictBind.test(t.name)&&this.raiseRecoverable(t.start,(i?"Binding ":"Assigning to ")+t.name+" in strict mode"),i&&(2===e&&"let"===t.name&&this.raiseRecoverable(t.start,"let is disallowed as a lexically bound name"),n&&(ct(n,t.name)&&this.raiseRecoverable(t.start,"Argument name clash"),n[t.name]=!0),5!==e&&this.declareName(t.name,e,t.start));break;case"ChainExpression":this.raiseRecoverable(t.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":i&&this.raiseRecoverable(t.start,"Binding member expression");break;case"ParenthesizedExpression":return i&&this.raiseRecoverable(t.start,"Binding parenthesized expression"),this.checkLValSimple(t.expression,e,n);default:this.raise(t.start,(i?"Binding":"Assigning to")+" rvalue")}},Mt.checkLValPattern=function(t,e,n){switch(void 0===e&&(e=0),t.type){case"ObjectPattern":for(var i=0,a=t.properties;i<a.length;i+=1){var r=a[i];this.checkLValInnerPattern(r,e,n)}break;case"ArrayPattern":for(var o=0,s=t.elements;o<s.length;o+=1){var c=s[o];c&&this.checkLValInnerPattern(c,e,n)}break;default:this.checkLValSimple(t,e,n)}},Mt.checkLValInnerPattern=function(t,e,n){switch(void 0===e&&(e=0),t.type){case"Property":this.checkLValInnerPattern(t.value,e,n);break;case"AssignmentPattern":this.checkLValPattern(t.left,e,n);break;case"RestElement":this.checkLValPattern(t.argument,e,n);break;default:this.checkLValPattern(t,e,n)}};var Nt=function(t,e,n,i,a){this.token=t,this.isExpr=!!e,this.preserveSpace=!!n,this.override=i,this.generator=!!a},Bt={b_stat:new Nt("{",!1),b_expr:new Nt("{",!0),b_tmpl:new Nt("${",!1),p_stat:new Nt("(",!1),p_expr:new Nt("(",!0),q_tmpl:new Nt("`",!0,!0,(function(t){return t.tryReadTemplateToken()})),f_stat:new Nt("function",!1),f_expr:new Nt("function",!0),f_expr_gen:new Nt("function",!0,!1,null,!0),f_gen:new Nt("function",!1,!1,null,!0)},Pt=xt.prototype;Pt.initialContext=function(){return[Bt.b_stat]},Pt.curContext=function(){return this.context[this.context.length-1]},Pt.braceIsBlock=function(t){var e=this.curContext();return e===Bt.f_expr||e===Bt.f_stat||(t!==J.colon||e!==Bt.b_stat&&e!==Bt.b_expr?t===J._return||t===J.name&&this.exprAllowed?Q.test(this.input.slice(this.lastTokEnd,this.start)):t===J._else||t===J.semi||t===J.eof||t===J.parenR||t===J.arrow||(t===J.braceL?e===Bt.b_stat:t!==J._var&&t!==J._const&&t!==J.name&&!this.exprAllowed):!e.isExpr)},Pt.inGeneratorContext=function(){for(var t=this.context.length-1;t>=1;t--){var e=this.context[t];if("function"===e.token)return e.generator}return!1},Pt.updateContext=function(t){var e,n=this.type;n.keyword&&t===J.dot?this.exprAllowed=!1:(e=n.updateContext)?e.call(this,t):this.exprAllowed=n.beforeExpr},Pt.overrideContext=function(t){this.curContext()!==t&&(this.context[this.context.length-1]=t)},J.parenR.updateContext=J.braceR.updateContext=function(){if(1!==this.context.length){var t=this.context.pop();t===Bt.b_stat&&"function"===this.curContext().token&&(t=this.context.pop()),this.exprAllowed=!t.isExpr}else this.exprAllowed=!0},J.braceL.updateContext=function(t){this.context.push(this.braceIsBlock(t)?Bt.b_stat:Bt.b_expr),this.exprAllowed=!0},J.dollarBraceL.updateContext=function(){this.context.push(Bt.b_tmpl),this.exprAllowed=!0},J.parenL.updateContext=function(t){var e=t===J._if||t===J._for||t===J._with||t===J._while;this.context.push(e?Bt.p_stat:Bt.p_expr),this.exprAllowed=!0},J.incDec.updateContext=function(){},J._function.updateContext=J._class.updateContext=function(t){!t.beforeExpr||t===J._else||t===J.semi&&this.curContext()!==Bt.p_stat||t===J._return&&Q.test(this.input.slice(this.lastTokEnd,this.start))||(t===J.colon||t===J.braceL)&&this.curContext()===Bt.b_stat?this.context.push(Bt.f_stat):this.context.push(Bt.f_expr),this.exprAllowed=!1},J.backQuote.updateContext=function(){this.curContext()===Bt.q_tmpl?this.context.pop():this.context.push(Bt.q_tmpl),this.exprAllowed=!1},J.star.updateContext=function(t){if(t===J._function){var e=this.context.length-1;this.context[e]===Bt.f_expr?this.context[e]=Bt.f_expr_gen:this.context[e]=Bt.f_gen}this.exprAllowed=!0},J.name.updateContext=function(t){var e=!1;this.options.ecmaVersion>=6&&t!==J.dot&&("of"===this.value&&!this.exprAllowed||"yield"===this.value&&this.inGeneratorContext())&&(e=!0),this.exprAllowed=e};var Ft=xt.prototype;function jt(t){return"MemberExpression"===t.type&&"PrivateIdentifier"===t.property.type||"ChainExpression"===t.type&&jt(t.expression)}Ft.checkPropClash=function(t,e,n){if(!(this.options.ecmaVersion>=9&&"SpreadElement"===t.type||this.options.ecmaVersion>=6&&(t.computed||t.method||t.shorthand))){var i,a=t.key;switch(a.type){case"Identifier":i=a.name;break;case"Literal":i=String(a.value);break;default:return}var r=t.kind;if(this.options.ecmaVersion>=6)"__proto__"===i&&"init"===r&&(e.proto&&(n?n.doubleProto<0&&(n.doubleProto=a.start):this.raiseRecoverable(a.start,"Redefinition of __proto__ property")),e.proto=!0);else{var o=e[i="$"+i];if(o)("init"===r?this.strict&&o.init||o.get||o.set:o.init||o[r])&&this.raiseRecoverable(a.start,"Redefinition of property");else o=e[i]={init:!1,get:!1,set:!1};o[r]=!0}}},Ft.parseExpression=function(t,e){var n=this.start,i=this.startLoc,a=this.parseMaybeAssign(t,e);if(this.type===J.comma){var r=this.startNodeAt(n,i);for(r.expressions=[a];this.eat(J.comma);)r.expressions.push(this.parseMaybeAssign(t,e));return this.finishNode(r,"SequenceExpression")}return a},Ft.parseMaybeAssign=function(t,e,n){if(this.isContextual("yield")){if(this.inGenerator)return this.parseYield(t);this.exprAllowed=!1}var i=!1,a=-1,r=-1,o=-1;e?(a=e.parenthesizedAssign,r=e.trailingComma,o=e.doubleProto,e.parenthesizedAssign=e.trailingComma=-1):(e=new Et,i=!0);var s=this.start,c=this.startLoc;this.type!==J.parenL&&this.type!==J.name||(this.potentialArrowAt=this.start,this.potentialArrowInForAwait="await"===t);var l=this.parseMaybeConditional(t,e);if(n&&(l=n.call(this,l,s,c)),this.type.isAssign){var u=this.startNodeAt(s,c);return u.operator=this.value,this.type===J.eq&&(l=this.toAssignable(l,!1,e)),i||(e.parenthesizedAssign=e.trailingComma=e.doubleProto=-1),e.shorthandAssign>=l.start&&(e.shorthandAssign=-1),this.type===J.eq?this.checkLValPattern(l):this.checkLValSimple(l),u.left=l,this.next(),u.right=this.parseMaybeAssign(t),o>-1&&(e.doubleProto=o),this.finishNode(u,"AssignmentExpression")}return i&&this.checkExpressionErrors(e,!0),a>-1&&(e.parenthesizedAssign=a),r>-1&&(e.trailingComma=r),l},Ft.parseMaybeConditional=function(t,e){var n=this.start,i=this.startLoc,a=this.parseExprOps(t,e);if(this.checkExpressionErrors(e))return a;if(this.eat(J.question)){var r=this.startNodeAt(n,i);return r.test=a,r.consequent=this.parseMaybeAssign(),this.expect(J.colon),r.alternate=this.parseMaybeAssign(t),this.finishNode(r,"ConditionalExpression")}return a},Ft.parseExprOps=function(t,e){var n=this.start,i=this.startLoc,a=this.parseMaybeUnary(e,!1,!1,t);return this.checkExpressionErrors(e)||a.start===n&&"ArrowFunctionExpression"===a.type?a:this.parseExprOp(a,n,i,-1,t)},Ft.parseExprOp=function(t,e,n,i,a){var r=this.type.binop;if(null!=r&&(!a||this.type!==J._in)&&r>i){var o=this.type===J.logicalOR||this.type===J.logicalAND,s=this.type===J.coalesce;s&&(r=J.logicalAND.binop);var c=this.value;this.next();var l=this.start,u=this.startLoc,d=this.parseExprOp(this.parseMaybeUnary(null,!1,!1,a),l,u,r,a),h=this.buildBinary(e,n,t,d,c,o||s);return(o&&this.type===J.coalesce||s&&(this.type===J.logicalOR||this.type===J.logicalAND))&&this.raiseRecoverable(this.start,"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"),this.parseExprOp(h,e,n,i,a)}return t},Ft.buildBinary=function(t,e,n,i,a,r){"PrivateIdentifier"===i.type&&this.raise(i.start,"Private identifier can only be left side of binary expression");var o=this.startNodeAt(t,e);return o.left=n,o.operator=a,o.right=i,this.finishNode(o,r?"LogicalExpression":"BinaryExpression")},Ft.parseMaybeUnary=function(t,e,n,i){var a,r=this.start,o=this.startLoc;if(this.isContextual("await")&&this.canAwait)a=this.parseAwait(i),e=!0;else if(this.type.prefix){var s=this.startNode(),c=this.type===J.incDec;s.operator=this.value,s.prefix=!0,this.next(),s.argument=this.parseMaybeUnary(null,!0,c,i),this.checkExpressionErrors(t,!0),c?this.checkLValSimple(s.argument):this.strict&&"delete"===s.operator&&"Identifier"===s.argument.type?this.raiseRecoverable(s.start,"Deleting local variable in strict mode"):"delete"===s.operator&&jt(s.argument)?this.raiseRecoverable(s.start,"Private fields can not be deleted"):e=!0,a=this.finishNode(s,c?"UpdateExpression":"UnaryExpression")}else if(e||this.type!==J.privateId){if(a=this.parseExprSubscripts(t,i),this.checkExpressionErrors(t))return a;for(;this.type.postfix&&!this.canInsertSemicolon();){var l=this.startNodeAt(r,o);l.operator=this.value,l.prefix=!1,l.argument=a,this.checkLValSimple(a),this.next(),a=this.finishNode(l,"UpdateExpression")}}else(i||0===this.privateNameStack.length)&&this.options.checkPrivateFields&&this.unexpected(),a=this.parsePrivateIdent(),this.type!==J._in&&this.unexpected();return n||!this.eat(J.starstar)?a:e?void this.unexpected(this.lastTokStart):this.buildBinary(r,o,a,this.parseMaybeUnary(null,!1,!1,i),"**",!1)},Ft.parseExprSubscripts=function(t,e){var n=this.start,i=this.startLoc,a=this.parseExprAtom(t,e);if("ArrowFunctionExpression"===a.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd))return a;var r=this.parseSubscripts(a,n,i,!1,e);return t&&"MemberExpression"===r.type&&(t.parenthesizedAssign>=r.start&&(t.parenthesizedAssign=-1),t.parenthesizedBind>=r.start&&(t.parenthesizedBind=-1),t.trailingComma>=r.start&&(t.trailingComma=-1)),r},Ft.parseSubscripts=function(t,e,n,i,a){for(var r=this.options.ecmaVersion>=8&&"Identifier"===t.type&&"async"===t.name&&this.lastTokEnd===t.end&&!this.canInsertSemicolon()&&t.end-t.start==5&&this.potentialArrowAt===t.start,o=!1;;){var s=this.parseSubscript(t,e,n,i,r,o,a);if(s.optional&&(o=!0),s===t||"ArrowFunctionExpression"===s.type){if(o){var c=this.startNodeAt(e,n);c.expression=s,s=this.finishNode(c,"ChainExpression")}return s}t=s}},Ft.shouldParseAsyncArrow=function(){return!this.canInsertSemicolon()&&this.eat(J.arrow)},Ft.parseSubscriptAsyncArrow=function(t,e,n,i){return this.parseArrowExpression(this.startNodeAt(t,e),n,!0,i)},Ft.parseSubscript=function(t,e,n,i,a,r,o){var s=this.options.ecmaVersion>=11,c=s&&this.eat(J.questionDot);i&&c&&this.raise(this.lastTokStart,"Optional chaining cannot appear in the callee of new expressions");var l=this.eat(J.bracketL);if(l||c&&this.type!==J.parenL&&this.type!==J.backQuote||this.eat(J.dot)){var u=this.startNodeAt(e,n);u.object=t,l?(u.property=this.parseExpression(),this.expect(J.bracketR)):this.type===J.privateId&&"Super"!==t.type?u.property=this.parsePrivateIdent():u.property=this.parseIdent("never"!==this.options.allowReserved),u.computed=!!l,s&&(u.optional=c),t=this.finishNode(u,"MemberExpression")}else if(!i&&this.eat(J.parenL)){var d=new Et,h=this.yieldPos,f=this.awaitPos,g=this.awaitIdentPos;this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0;var p=this.parseExprList(J.parenR,this.options.ecmaVersion>=8,!1,d);if(a&&!c&&this.shouldParseAsyncArrow())return this.checkPatternErrors(d,!1),this.checkYieldAwaitInDefaultParams(),this.awaitIdentPos>0&&this.raise(this.awaitIdentPos,"Cannot use 'await' as identifier inside an async function"),this.yieldPos=h,this.awaitPos=f,this.awaitIdentPos=g,this.parseSubscriptAsyncArrow(e,n,p,o);this.checkExpressionErrors(d,!0),this.yieldPos=h||this.yieldPos,this.awaitPos=f||this.awaitPos,this.awaitIdentPos=g||this.awaitIdentPos;var b=this.startNodeAt(e,n);b.callee=t,b.arguments=p,s&&(b.optional=c),t=this.finishNode(b,"CallExpression")}else if(this.type===J.backQuote){(c||r)&&this.raise(this.start,"Optional chaining cannot appear in the tag of tagged template expressions");var m=this.startNodeAt(e,n);m.tag=t,m.quasi=this.parseTemplate({isTagged:!0}),t=this.finishNode(m,"TaggedTemplateExpression")}return t},Ft.parseExprAtom=function(t,e,n){this.type===J.slash&&this.readRegexp();var i,a=this.potentialArrowAt===this.start;switch(this.type){case J._super:return this.allowSuper||this.raise(this.start,"'super' keyword outside a method"),i=this.startNode(),this.next(),this.type!==J.parenL||this.allowDirectSuper||this.raise(i.start,"super() call outside constructor of a subclass"),this.type!==J.dot&&this.type!==J.bracketL&&this.type!==J.parenL&&this.unexpected(),this.finishNode(i,"Super");case J._this:return i=this.startNode(),this.next(),this.finishNode(i,"ThisExpression");case J.name:var r=this.start,o=this.startLoc,s=this.containsEsc,c=this.parseIdent(!1);if(this.options.ecmaVersion>=8&&!s&&"async"===c.name&&!this.canInsertSemicolon()&&this.eat(J._function))return this.overrideContext(Bt.f_expr),this.parseFunction(this.startNodeAt(r,o),0,!1,!0,e);if(a&&!this.canInsertSemicolon()){if(this.eat(J.arrow))return this.parseArrowExpression(this.startNodeAt(r,o),[c],!1,e);if(this.options.ecmaVersion>=8&&"async"===c.name&&this.type===J.name&&!s&&(!this.potentialArrowInForAwait||"of"!==this.value||this.containsEsc))return c=this.parseIdent(!1),!this.canInsertSemicolon()&&this.eat(J.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(r,o),[c],!0,e)}return c;case J.regexp:var l=this.value;return(i=this.parseLiteral(l.value)).regex={pattern:l.pattern,flags:l.flags},i;case J.num:case J.string:return this.parseLiteral(this.value);case J._null:case J._true:case J._false:return(i=this.startNode()).value=this.type===J._null?null:this.type===J._true,i.raw=this.type.keyword,this.next(),this.finishNode(i,"Literal");case J.parenL:var u=this.start,d=this.parseParenAndDistinguishExpression(a,e);return t&&(t.parenthesizedAssign<0&&!this.isSimpleAssignTarget(d)&&(t.parenthesizedAssign=u),t.parenthesizedBind<0&&(t.parenthesizedBind=u)),d;case J.bracketL:return i=this.startNode(),this.next(),i.elements=this.parseExprList(J.bracketR,!0,!0,t),this.finishNode(i,"ArrayExpression");case J.braceL:return this.overrideContext(Bt.b_expr),this.parseObj(!1,t);case J._function:return i=this.startNode(),this.next(),this.parseFunction(i,0);case J._class:return this.parseClass(this.startNode(),!1);case J._new:return this.parseNew();case J.backQuote:return this.parseTemplate();case J._import:return this.options.ecmaVersion>=11?this.parseExprImport(n):this.unexpected();default:return this.parseExprAtomDefault()}},Ft.parseExprAtomDefault=function(){this.unexpected()},Ft.parseExprImport=function(t){var e=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import");var n=this.parseIdent(!0);return this.type!==J.parenL||t?this.type===J.dot?(e.meta=n,this.parseImportMeta(e)):void this.unexpected():this.parseDynamicImport(e)},Ft.parseDynamicImport=function(t){if(this.next(),t.source=this.parseMaybeAssign(),!this.eat(J.parenR)){var e=this.start;this.eat(J.comma)&&this.eat(J.parenR)?this.raiseRecoverable(e,"Trailing comma is not allowed in import()"):this.unexpected(e)}return this.finishNode(t,"ImportExpression")},Ft.parseImportMeta=function(t){this.next();var e=this.containsEsc;return t.property=this.parseIdent(!0),"meta"!==t.property.name&&this.raiseRecoverable(t.property.start,"The only valid meta property for import is 'import.meta'"),e&&this.raiseRecoverable(t.start,"'import.meta' must not contain escaped characters"),"module"===this.options.sourceType||this.options.allowImportExportEverywhere||this.raiseRecoverable(t.start,"Cannot use 'import.meta' outside a module"),this.finishNode(t,"MetaProperty")},Ft.parseLiteral=function(t){var e=this.startNode();return e.value=t,e.raw=this.input.slice(this.start,this.end),110===e.raw.charCodeAt(e.raw.length-1)&&(e.bigint=e.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(e,"Literal")},Ft.parseParenExpression=function(){this.expect(J.parenL);var t=this.parseExpression();return this.expect(J.parenR),t},Ft.shouldParseArrow=function(t){return!this.canInsertSemicolon()},Ft.parseParenAndDistinguishExpression=function(t,e){var n,i=this.start,a=this.startLoc,r=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var o,s=this.start,c=this.startLoc,l=[],u=!0,d=!1,h=new Et,f=this.yieldPos,g=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==J.parenR;){if(u?u=!1:this.expect(J.comma),r&&this.afterTrailingComma(J.parenR,!0)){d=!0;break}if(this.type===J.ellipsis){o=this.start,l.push(this.parseParenItem(this.parseRestBinding())),this.type===J.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element");break}l.push(this.parseMaybeAssign(!1,h,this.parseParenItem))}var p=this.lastTokEnd,b=this.lastTokEndLoc;if(this.expect(J.parenR),t&&this.shouldParseArrow(l)&&this.eat(J.arrow))return this.checkPatternErrors(h,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=f,this.awaitPos=g,this.parseParenArrowList(i,a,l,e);l.length&&!d||this.unexpected(this.lastTokStart),o&&this.unexpected(o),this.checkExpressionErrors(h,!0),this.yieldPos=f||this.yieldPos,this.awaitPos=g||this.awaitPos,l.length>1?((n=this.startNodeAt(s,c)).expressions=l,this.finishNodeAt(n,"SequenceExpression",p,b)):n=l[0]}else n=this.parseParenExpression();if(this.options.preserveParens){var m=this.startNodeAt(i,a);return m.expression=n,this.finishNode(m,"ParenthesizedExpression")}return n},Ft.parseParenItem=function(t){return t},Ft.parseParenArrowList=function(t,e,n,i){return this.parseArrowExpression(this.startNodeAt(t,e),n,!1,i)};var $t=[];Ft.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var t=this.startNode(),e=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(J.dot)){t.meta=e;var n=this.containsEsc;return t.property=this.parseIdent(!0),"target"!==t.property.name&&this.raiseRecoverable(t.property.start,"The only valid meta property for new is 'new.target'"),n&&this.raiseRecoverable(t.start,"'new.target' must not contain escaped characters"),this.allowNewDotTarget||this.raiseRecoverable(t.start,"'new.target' can only be used in functions and class static block"),this.finishNode(t,"MetaProperty")}var i=this.start,a=this.startLoc;return t.callee=this.parseSubscripts(this.parseExprAtom(null,!1,!0),i,a,!0,!1),this.eat(J.parenL)?t.arguments=this.parseExprList(J.parenR,this.options.ecmaVersion>=8,!1):t.arguments=$t,this.finishNode(t,"NewExpression")},Ft.parseTemplateElement=function(t){var e=t.isTagged,n=this.startNode();return this.type===J.invalidTemplate?(e||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),n.value={raw:this.value,cooked:null}):n.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),n.tail=this.type===J.backQuote,this.finishNode(n,"TemplateElement")},Ft.parseTemplate=function(t){void 0===t&&(t={});var e=t.isTagged;void 0===e&&(e=!1);var n=this.startNode();this.next(),n.expressions=[];var i=this.parseTemplateElement({isTagged:e});for(n.quasis=[i];!i.tail;)this.type===J.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(J.dollarBraceL),n.expressions.push(this.parseExpression()),this.expect(J.braceR),n.quasis.push(i=this.parseTemplateElement({isTagged:e}));return this.next(),this.finishNode(n,"TemplateLiteral")},Ft.isAsyncProp=function(t){return!t.computed&&"Identifier"===t.key.type&&"async"===t.key.name&&(this.type===J.name||this.type===J.num||this.type===J.string||this.type===J.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===J.star)&&!Q.test(this.input.slice(this.lastTokEnd,this.start))},Ft.parseObj=function(t,e){var n=this.startNode(),i=!0,a={};for(n.properties=[],this.next();!this.eat(J.braceR);){if(i)i=!1;else if(this.expect(J.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(J.braceR))break;var r=this.parseProperty(t,e);t||this.checkPropClash(r,a,e),n.properties.push(r)}return this.finishNode(n,t?"ObjectPattern":"ObjectExpression")},Ft.parseProperty=function(t,e){var n,i,a,r,o=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(J.ellipsis))return t?(o.argument=this.parseIdent(!1),this.type===J.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element"),this.finishNode(o,"RestElement")):(o.argument=this.parseMaybeAssign(!1,e),this.type===J.comma&&e&&e.trailingComma<0&&(e.trailingComma=this.start),this.finishNode(o,"SpreadElement"));this.options.ecmaVersion>=6&&(o.method=!1,o.shorthand=!1,(t||e)&&(a=this.start,r=this.startLoc),t||(n=this.eat(J.star)));var s=this.containsEsc;return this.parsePropertyName(o),!t&&!s&&this.options.ecmaVersion>=8&&!n&&this.isAsyncProp(o)?(i=!0,n=this.options.ecmaVersion>=9&&this.eat(J.star),this.parsePropertyName(o)):i=!1,this.parsePropertyValue(o,t,n,i,a,r,e,s),this.finishNode(o,"Property")},Ft.parseGetterSetter=function(t){t.kind=t.key.name,this.parsePropertyName(t),t.value=this.parseMethod(!1);var e="get"===t.kind?0:1;if(t.value.params.length!==e){var n=t.value.start;"get"===t.kind?this.raiseRecoverable(n,"getter should have no params"):this.raiseRecoverable(n,"setter should have exactly one param")}else"set"===t.kind&&"RestElement"===t.value.params[0].type&&this.raiseRecoverable(t.value.params[0].start,"Setter cannot use rest params")},Ft.parsePropertyValue=function(t,e,n,i,a,r,o,s){(n||i)&&this.type===J.colon&&this.unexpected(),this.eat(J.colon)?(t.value=e?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,o),t.kind="init"):this.options.ecmaVersion>=6&&this.type===J.parenL?(e&&this.unexpected(),t.kind="init",t.method=!0,t.value=this.parseMethod(n,i)):e||s||!(this.options.ecmaVersion>=5)||t.computed||"Identifier"!==t.key.type||"get"!==t.key.name&&"set"!==t.key.name||this.type===J.comma||this.type===J.braceR||this.type===J.eq?this.options.ecmaVersion>=6&&!t.computed&&"Identifier"===t.key.type?((n||i)&&this.unexpected(),this.checkUnreserved(t.key),"await"!==t.key.name||this.awaitIdentPos||(this.awaitIdentPos=a),t.kind="init",e?t.value=this.parseMaybeDefault(a,r,this.copyNode(t.key)):this.type===J.eq&&o?(o.shorthandAssign<0&&(o.shorthandAssign=this.start),t.value=this.parseMaybeDefault(a,r,this.copyNode(t.key))):t.value=this.copyNode(t.key),t.shorthand=!0):this.unexpected():((n||i)&&this.unexpected(),this.parseGetterSetter(t))},Ft.parsePropertyName=function(t){if(this.options.ecmaVersion>=6){if(this.eat(J.bracketL))return t.computed=!0,t.key=this.parseMaybeAssign(),this.expect(J.bracketR),t.key;t.computed=!1}return t.key=this.type===J.num||this.type===J.string?this.parseExprAtom():this.parseIdent("never"!==this.options.allowReserved)},Ft.initFunction=function(t){t.id=null,this.options.ecmaVersion>=6&&(t.generator=t.expression=!1),this.options.ecmaVersion>=8&&(t.async=!1)},Ft.parseMethod=function(t,e,n){var i=this.startNode(),a=this.yieldPos,r=this.awaitPos,o=this.awaitIdentPos;return this.initFunction(i),this.options.ecmaVersion>=6&&(i.generator=t),this.options.ecmaVersion>=8&&(i.async=!!e),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(64|wt(e,i.generator)|(n?128:0)),this.expect(J.parenL),i.params=this.parseBindingList(J.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(i,!1,!0,!1),this.yieldPos=a,this.awaitPos=r,this.awaitIdentPos=o,this.finishNode(i,"FunctionExpression")},Ft.parseArrowExpression=function(t,e,n,i){var a=this.yieldPos,r=this.awaitPos,o=this.awaitIdentPos;return this.enterScope(16|wt(n,!1)),this.initFunction(t),this.options.ecmaVersion>=8&&(t.async=!!n),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,t.params=this.toAssignableList(e,!0),this.parseFunctionBody(t,!0,!1,i),this.yieldPos=a,this.awaitPos=r,this.awaitIdentPos=o,this.finishNode(t,"ArrowFunctionExpression")},Ft.parseFunctionBody=function(t,e,n,i){var a=e&&this.type!==J.braceL,r=this.strict,o=!1;if(a)t.body=this.parseMaybeAssign(i),t.expression=!0,this.checkParams(t,!1);else{var s=this.options.ecmaVersion>=7&&!this.isSimpleParamList(t.params);r&&!s||(o=this.strictDirective(this.end))&&s&&this.raiseRecoverable(t.start,"Illegal 'use strict' directive in function with non-simple parameter list");var c=this.labels;this.labels=[],o&&(this.strict=!0),this.checkParams(t,!r&&!o&&!e&&!n&&this.isSimpleParamList(t.params)),this.strict&&t.id&&this.checkLValSimple(t.id,5),t.body=this.parseBlock(!1,void 0,o&&!r),t.expression=!1,this.adaptDirectivePrologue(t.body.body),this.labels=c}this.exitScope()},Ft.isSimpleParamList=function(t){for(var e=0,n=t;e<n.length;e+=1){if("Identifier"!==n[e].type)return!1}return!0},Ft.checkParams=function(t,e){for(var n=Object.create(null),i=0,a=t.params;i<a.length;i+=1){var r=a[i];this.checkLValInnerPattern(r,1,e?null:n)}},Ft.parseExprList=function(t,e,n,i){for(var a=[],r=!0;!this.eat(t);){if(r)r=!1;else if(this.expect(J.comma),e&&this.afterTrailingComma(t))break;var o=void 0;n&&this.type===J.comma?o=null:this.type===J.ellipsis?(o=this.parseSpread(i),i&&this.type===J.comma&&i.trailingComma<0&&(i.trailingComma=this.start)):o=this.parseMaybeAssign(!1,i),a.push(o)}return a},Ft.checkUnreserved=function(t){var e=t.start,n=t.end,i=t.name;(this.inGenerator&&"yield"===i&&this.raiseRecoverable(e,"Cannot use 'yield' as identifier inside a generator"),this.inAsync&&"await"===i&&this.raiseRecoverable(e,"Cannot use 'await' as identifier inside an async function"),this.currentThisScope().inClassFieldInit&&"arguments"===i&&this.raiseRecoverable(e,"Cannot use 'arguments' in class field initializer"),!this.inClassStaticBlock||"arguments"!==i&&"await"!==i||this.raise(e,"Cannot use "+i+" in class static initialization block"),this.keywords.test(i)&&this.raise(e,"Unexpected keyword '"+i+"'"),this.options.ecmaVersion<6&&-1!==this.input.slice(e,n).indexOf("\\"))||(this.strict?this.reservedWordsStrict:this.reservedWords).test(i)&&(this.inAsync||"await"!==i||this.raiseRecoverable(e,"Cannot use keyword 'await' outside an async function"),this.raiseRecoverable(e,"The keyword '"+i+"' is reserved"))},Ft.parseIdent=function(t){var e=this.parseIdentNode();return this.next(!!t),this.finishNode(e,"Identifier"),t||(this.checkUnreserved(e),"await"!==e.name||this.awaitIdentPos||(this.awaitIdentPos=e.start)),e},Ft.parseIdentNode=function(){var t=this.startNode();return this.type===J.name?t.name=this.value:this.type.keyword?(t.name=this.type.keyword,"class"!==t.name&&"function"!==t.name||this.lastTokEnd===this.lastTokStart+1&&46===this.input.charCodeAt(this.lastTokStart)||this.context.pop()):this.unexpected(),t},Ft.parsePrivateIdent=function(){var t=this.startNode();return this.type===J.privateId?t.name=this.value:this.unexpected(),this.next(),this.finishNode(t,"PrivateIdentifier"),this.options.checkPrivateFields&&(0===this.privateNameStack.length?this.raise(t.start,"Private field '#"+t.name+"' must be declared in an enclosing class"):this.privateNameStack[this.privateNameStack.length-1].used.push(t)),t},Ft.parseYield=function(t){this.yieldPos||(this.yieldPos=this.start);var e=this.startNode();return this.next(),this.type===J.semi||this.canInsertSemicolon()||this.type!==J.star&&!this.type.startsExpr?(e.delegate=!1,e.argument=null):(e.delegate=this.eat(J.star),e.argument=this.parseMaybeAssign(t)),this.finishNode(e,"YieldExpression")},Ft.parseAwait=function(t){this.awaitPos||(this.awaitPos=this.start);var e=this.startNode();return this.next(),e.argument=this.parseMaybeUnary(null,!0,!1,t),this.finishNode(e,"AwaitExpression")};var zt=xt.prototype;zt.raise=function(t,e){var n=pt(this.input,t);e+=" ("+n.line+":"+n.column+")";var i=new SyntaxError(e);throw i.pos=t,i.loc=n,i.raisedAt=this.pos,i},zt.raiseRecoverable=zt.raise,zt.curPosition=function(){if(this.options.locations)return new ft(this.curLine,this.pos-this.lineStart)};var Ht=xt.prototype,Ut=function(t){this.flags=t,this.var=[],this.lexical=[],this.functions=[],this.inClassFieldInit=!1};Ht.enterScope=function(t){this.scopeStack.push(new Ut(t))},Ht.exitScope=function(){this.scopeStack.pop()},Ht.treatFunctionsAsVarInScope=function(t){return 2&t.flags||!this.inModule&&1&t.flags},Ht.declareName=function(t,e,n){var i=!1;if(2===e){var a=this.currentScope();i=a.lexical.indexOf(t)>-1||a.functions.indexOf(t)>-1||a.var.indexOf(t)>-1,a.lexical.push(t),this.inModule&&1&a.flags&&delete this.undefinedExports[t]}else if(4===e){this.currentScope().lexical.push(t)}else if(3===e){var r=this.currentScope();i=this.treatFunctionsAsVar?r.lexical.indexOf(t)>-1:r.lexical.indexOf(t)>-1||r.var.indexOf(t)>-1,r.functions.push(t)}else for(var o=this.scopeStack.length-1;o>=0;--o){var s=this.scopeStack[o];if(s.lexical.indexOf(t)>-1&&!(32&s.flags&&s.lexical[0]===t)||!this.treatFunctionsAsVarInScope(s)&&s.functions.indexOf(t)>-1){i=!0;break}if(s.var.push(t),this.inModule&&1&s.flags&&delete this.undefinedExports[t],259&s.flags)break}i&&this.raiseRecoverable(n,"Identifier '"+t+"' has already been declared")},Ht.checkLocalExport=function(t){-1===this.scopeStack[0].lexical.indexOf(t.name)&&-1===this.scopeStack[0].var.indexOf(t.name)&&(this.undefinedExports[t.name]=t)},Ht.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},Ht.currentVarScope=function(){for(var t=this.scopeStack.length-1;;t--){var e=this.scopeStack[t];if(259&e.flags)return e}},Ht.currentThisScope=function(){for(var t=this.scopeStack.length-1;;t--){var e=this.scopeStack[t];if(259&e.flags&&!(16&e.flags))return e}};var Vt=function(t,e,n){this.type="",this.start=e,this.end=0,t.options.locations&&(this.loc=new gt(t,n)),t.options.directSourceFile&&(this.sourceFile=t.options.directSourceFile),t.options.ranges&&(this.range=[e,0])},qt=xt.prototype;function Wt(t,e,n,i){return t.type=e,t.end=n,this.options.locations&&(t.loc.end=i),this.options.ranges&&(t.range[1]=n),t}qt.startNode=function(){return new Vt(this,this.start,this.startLoc)},qt.startNodeAt=function(t,e){return new Vt(this,t,e)},qt.finishNode=function(t,e){return Wt.call(this,t,e,this.lastTokEnd,this.lastTokEndLoc)},qt.finishNodeAt=function(t,e,n,i){return Wt.call(this,t,e,n,i)},qt.copyNode=function(t){var e=new Vt(this,t.start,this.startLoc);for(var n in t)e[n]=t[n];return e};var Yt="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",Gt=Yt+" Extended_Pictographic",Zt=Gt+" EBase EComp EMod EPres ExtPict",Kt={9:Yt,10:Gt,11:Gt,12:Zt,13:Zt,14:"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS Extended_Pictographic EBase EComp EMod EPres ExtPict"},Xt={9:"",10:"",11:"",12:"",13:"",14:"Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji"},Jt="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",Qt="Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",te=Qt+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",ee=te+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho",ne=ee+" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi",ie=ne+" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith",ae={9:Qt,10:te,11:ee,12:ne,13:ie,14:"Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith Hrkt Katakana_Or_Hiragana Kawi Nag_Mundari Nagm Unknown Zzzz"},re={};function oe(t){var e=re[t]={binary:ut(Kt[t]+" "+Jt),binaryOfStrings:ut(Xt[t]),nonBinary:{General_Category:ut(Jt),Script:ut(ae[t])}};e.nonBinary.Script_Extensions=e.nonBinary.Script,e.nonBinary.gc=e.nonBinary.General_Category,e.nonBinary.sc=e.nonBinary.Script,e.nonBinary.scx=e.nonBinary.Script_Extensions}for(var se=0,ce=[9,10,11,12,13,14];se<ce.length;se+=1){oe(ce[se])}var le=xt.prototype,ue=function(t){this.parser=t,this.validFlags="gim"+(t.options.ecmaVersion>=6?"uy":"")+(t.options.ecmaVersion>=9?"s":"")+(t.options.ecmaVersion>=13?"d":"")+(t.options.ecmaVersion>=15?"v":""),this.unicodeProperties=re[t.options.ecmaVersion>=14?14:t.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchV=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};function de(t){return 36===t||t>=40&&t<=43||46===t||63===t||t>=91&&t<=94||t>=123&&t<=125}function he(t){return t>=65&&t<=90||t>=97&&t<=122}ue.prototype.reset=function(t,e,n){var i=-1!==n.indexOf("v"),a=-1!==n.indexOf("u");this.start=0|t,this.source=e+"",this.flags=n,i&&this.parser.options.ecmaVersion>=15?(this.switchU=!0,this.switchV=!0,this.switchN=!0):(this.switchU=a&&this.parser.options.ecmaVersion>=6,this.switchV=!1,this.switchN=a&&this.parser.options.ecmaVersion>=9)},ue.prototype.raise=function(t){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+t)},ue.prototype.at=function(t,e){void 0===e&&(e=!1);var n=this.source,i=n.length;if(t>=i)return-1;var a=n.charCodeAt(t);if(!e&&!this.switchU||a<=55295||a>=57344||t+1>=i)return a;var r=n.charCodeAt(t+1);return r>=56320&&r<=57343?(a<<10)+r-56613888:a},ue.prototype.nextIndex=function(t,e){void 0===e&&(e=!1);var n=this.source,i=n.length;if(t>=i)return i;var a,r=n.charCodeAt(t);return!e&&!this.switchU||r<=55295||r>=57344||t+1>=i||(a=n.charCodeAt(t+1))<56320||a>57343?t+1:t+2},ue.prototype.current=function(t){return void 0===t&&(t=!1),this.at(this.pos,t)},ue.prototype.lookahead=function(t){return void 0===t&&(t=!1),this.at(this.nextIndex(this.pos,t),t)},ue.prototype.advance=function(t){void 0===t&&(t=!1),this.pos=this.nextIndex(this.pos,t)},ue.prototype.eat=function(t,e){return void 0===e&&(e=!1),this.current(e)===t&&(this.advance(e),!0)},ue.prototype.eatChars=function(t,e){void 0===e&&(e=!1);for(var n=this.pos,i=0,a=t;i<a.length;i+=1){var r=a[i],o=this.at(n,e);if(-1===o||o!==r)return!1;n=this.nextIndex(n,e)}return this.pos=n,!0},le.validateRegExpFlags=function(t){for(var e=t.validFlags,n=t.flags,i=!1,a=!1,r=0;r<n.length;r++){var o=n.charAt(r);-1===e.indexOf(o)&&this.raise(t.start,"Invalid regular expression flag"),n.indexOf(o,r+1)>-1&&this.raise(t.start,"Duplicate regular expression flag"),"u"===o&&(i=!0),"v"===o&&(a=!0)}this.options.ecmaVersion>=15&&i&&a&&this.raise(t.start,"Invalid regular expression flag")},le.validateRegExpPattern=function(t){this.regexp_pattern(t),!t.switchN&&this.options.ecmaVersion>=9&&t.groupNames.length>0&&(t.switchN=!0,this.regexp_pattern(t))},le.regexp_pattern=function(t){t.pos=0,t.lastIntValue=0,t.lastStringValue="",t.lastAssertionIsQuantifiable=!1,t.numCapturingParens=0,t.maxBackReference=0,t.groupNames.length=0,t.backReferenceNames.length=0,this.regexp_disjunction(t),t.pos!==t.source.length&&(t.eat(41)&&t.raise("Unmatched ')'"),(t.eat(93)||t.eat(125))&&t.raise("Lone quantifier brackets")),t.maxBackReference>t.numCapturingParens&&t.raise("Invalid escape");for(var e=0,n=t.backReferenceNames;e<n.length;e+=1){var i=n[e];-1===t.groupNames.indexOf(i)&&t.raise("Invalid named capture referenced")}},le.regexp_disjunction=function(t){for(this.regexp_alternative(t);t.eat(124);)this.regexp_alternative(t);this.regexp_eatQuantifier(t,!0)&&t.raise("Nothing to repeat"),t.eat(123)&&t.raise("Lone quantifier brackets")},le.regexp_alternative=function(t){for(;t.pos<t.source.length&&this.regexp_eatTerm(t););},le.regexp_eatTerm=function(t){return this.regexp_eatAssertion(t)?(t.lastAssertionIsQuantifiable&&this.regexp_eatQuantifier(t)&&t.switchU&&t.raise("Invalid quantifier"),!0):!!(t.switchU?this.regexp_eatAtom(t):this.regexp_eatExtendedAtom(t))&&(this.regexp_eatQuantifier(t),!0)},le.regexp_eatAssertion=function(t){var e=t.pos;if(t.lastAssertionIsQuantifiable=!1,t.eat(94)||t.eat(36))return!0;if(t.eat(92)){if(t.eat(66)||t.eat(98))return!0;t.pos=e}if(t.eat(40)&&t.eat(63)){var n=!1;if(this.options.ecmaVersion>=9&&(n=t.eat(60)),t.eat(61)||t.eat(33))return this.regexp_disjunction(t),t.eat(41)||t.raise("Unterminated group"),t.lastAssertionIsQuantifiable=!n,!0}return t.pos=e,!1},le.regexp_eatQuantifier=function(t,e){return void 0===e&&(e=!1),!!this.regexp_eatQuantifierPrefix(t,e)&&(t.eat(63),!0)},le.regexp_eatQuantifierPrefix=function(t,e){return t.eat(42)||t.eat(43)||t.eat(63)||this.regexp_eatBracedQuantifier(t,e)},le.regexp_eatBracedQuantifier=function(t,e){var n=t.pos;if(t.eat(123)){var i=0,a=-1;if(this.regexp_eatDecimalDigits(t)&&(i=t.lastIntValue,t.eat(44)&&this.regexp_eatDecimalDigits(t)&&(a=t.lastIntValue),t.eat(125)))return-1!==a&&a<i&&!e&&t.raise("numbers out of order in {} quantifier"),!0;t.switchU&&!e&&t.raise("Incomplete quantifier"),t.pos=n}return!1},le.regexp_eatAtom=function(t){return this.regexp_eatPatternCharacters(t)||t.eat(46)||this.regexp_eatReverseSolidusAtomEscape(t)||this.regexp_eatCharacterClass(t)||this.regexp_eatUncapturingGroup(t)||this.regexp_eatCapturingGroup(t)},le.regexp_eatReverseSolidusAtomEscape=function(t){var e=t.pos;if(t.eat(92)){if(this.regexp_eatAtomEscape(t))return!0;t.pos=e}return!1},le.regexp_eatUncapturingGroup=function(t){var e=t.pos;if(t.eat(40)){if(t.eat(63)&&t.eat(58)){if(this.regexp_disjunction(t),t.eat(41))return!0;t.raise("Unterminated group")}t.pos=e}return!1},le.regexp_eatCapturingGroup=function(t){if(t.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(t):63===t.current()&&t.raise("Invalid group"),this.regexp_disjunction(t),t.eat(41))return t.numCapturingParens+=1,!0;t.raise("Unterminated group")}return!1},le.regexp_eatExtendedAtom=function(t){return t.eat(46)||this.regexp_eatReverseSolidusAtomEscape(t)||this.regexp_eatCharacterClass(t)||this.regexp_eatUncapturingGroup(t)||this.regexp_eatCapturingGroup(t)||this.regexp_eatInvalidBracedQuantifier(t)||this.regexp_eatExtendedPatternCharacter(t)},le.regexp_eatInvalidBracedQuantifier=function(t){return this.regexp_eatBracedQuantifier(t,!0)&&t.raise("Nothing to repeat"),!1},le.regexp_eatSyntaxCharacter=function(t){var e=t.current();return!!de(e)&&(t.lastIntValue=e,t.advance(),!0)},le.regexp_eatPatternCharacters=function(t){for(var e=t.pos,n=0;-1!==(n=t.current())&&!de(n);)t.advance();return t.pos!==e},le.regexp_eatExtendedPatternCharacter=function(t){var e=t.current();return!(-1===e||36===e||e>=40&&e<=43||46===e||63===e||91===e||94===e||124===e)&&(t.advance(),!0)},le.regexp_groupSpecifier=function(t){if(t.eat(63)){if(this.regexp_eatGroupName(t))return-1!==t.groupNames.indexOf(t.lastStringValue)&&t.raise("Duplicate capture group name"),void t.groupNames.push(t.lastStringValue);t.raise("Invalid group")}},le.regexp_eatGroupName=function(t){if(t.lastStringValue="",t.eat(60)){if(this.regexp_eatRegExpIdentifierName(t)&&t.eat(62))return!0;t.raise("Invalid capture group name")}return!1},le.regexp_eatRegExpIdentifierName=function(t){if(t.lastStringValue="",this.regexp_eatRegExpIdentifierStart(t)){for(t.lastStringValue+=dt(t.lastIntValue);this.regexp_eatRegExpIdentifierPart(t);)t.lastStringValue+=dt(t.lastIntValue);return!0}return!1},le.regexp_eatRegExpIdentifierStart=function(t){var e=t.pos,n=this.options.ecmaVersion>=11,i=t.current(n);return t.advance(n),92===i&&this.regexp_eatRegExpUnicodeEscapeSequence(t,n)&&(i=t.lastIntValue),function(t){return V(t,!0)||36===t||95===t}(i)?(t.lastIntValue=i,!0):(t.pos=e,!1)},le.regexp_eatRegExpIdentifierPart=function(t){var e=t.pos,n=this.options.ecmaVersion>=11,i=t.current(n);return t.advance(n),92===i&&this.regexp_eatRegExpUnicodeEscapeSequence(t,n)&&(i=t.lastIntValue),function(t){return q(t,!0)||36===t||95===t||8204===t||8205===t}(i)?(t.lastIntValue=i,!0):(t.pos=e,!1)},le.regexp_eatAtomEscape=function(t){return!!(this.regexp_eatBackReference(t)||this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)||t.switchN&&this.regexp_eatKGroupName(t))||(t.switchU&&(99===t.current()&&t.raise("Invalid unicode escape"),t.raise("Invalid escape")),!1)},le.regexp_eatBackReference=function(t){var e=t.pos;if(this.regexp_eatDecimalEscape(t)){var n=t.lastIntValue;if(t.switchU)return n>t.maxBackReference&&(t.maxBackReference=n),!0;if(n<=t.numCapturingParens)return!0;t.pos=e}return!1},le.regexp_eatKGroupName=function(t){if(t.eat(107)){if(this.regexp_eatGroupName(t))return t.backReferenceNames.push(t.lastStringValue),!0;t.raise("Invalid named reference")}return!1},le.regexp_eatCharacterEscape=function(t){return this.regexp_eatControlEscape(t)||this.regexp_eatCControlLetter(t)||this.regexp_eatZero(t)||this.regexp_eatHexEscapeSequence(t)||this.regexp_eatRegExpUnicodeEscapeSequence(t,!1)||!t.switchU&&this.regexp_eatLegacyOctalEscapeSequence(t)||this.regexp_eatIdentityEscape(t)},le.regexp_eatCControlLetter=function(t){var e=t.pos;if(t.eat(99)){if(this.regexp_eatControlLetter(t))return!0;t.pos=e}return!1},le.regexp_eatZero=function(t){return 48===t.current()&&!pe(t.lookahead())&&(t.lastIntValue=0,t.advance(),!0)},le.regexp_eatControlEscape=function(t){var e=t.current();return 116===e?(t.lastIntValue=9,t.advance(),!0):110===e?(t.lastIntValue=10,t.advance(),!0):118===e?(t.lastIntValue=11,t.advance(),!0):102===e?(t.lastIntValue=12,t.advance(),!0):114===e&&(t.lastIntValue=13,t.advance(),!0)},le.regexp_eatControlLetter=function(t){var e=t.current();return!!he(e)&&(t.lastIntValue=e%32,t.advance(),!0)},le.regexp_eatRegExpUnicodeEscapeSequence=function(t,e){void 0===e&&(e=!1);var n,i=t.pos,a=e||t.switchU;if(t.eat(117)){if(this.regexp_eatFixedHexDigits(t,4)){var r=t.lastIntValue;if(a&&r>=55296&&r<=56319){var o=t.pos;if(t.eat(92)&&t.eat(117)&&this.regexp_eatFixedHexDigits(t,4)){var s=t.lastIntValue;if(s>=56320&&s<=57343)return t.lastIntValue=1024*(r-55296)+(s-56320)+65536,!0}t.pos=o,t.lastIntValue=r}return!0}if(a&&t.eat(123)&&this.regexp_eatHexDigits(t)&&t.eat(125)&&((n=t.lastIntValue)>=0&&n<=1114111))return!0;a&&t.raise("Invalid unicode escape"),t.pos=i}return!1},le.regexp_eatIdentityEscape=function(t){if(t.switchU)return!!this.regexp_eatSyntaxCharacter(t)||!!t.eat(47)&&(t.lastIntValue=47,!0);var e=t.current();return!(99===e||t.switchN&&107===e)&&(t.lastIntValue=e,t.advance(),!0)},le.regexp_eatDecimalEscape=function(t){t.lastIntValue=0;var e=t.current();if(e>=49&&e<=57){do{t.lastIntValue=10*t.lastIntValue+(e-48),t.advance()}while((e=t.current())>=48&&e<=57);return!0}return!1};function fe(t){return he(t)||95===t}function ge(t){return fe(t)||pe(t)}function pe(t){return t>=48&&t<=57}function be(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}function me(t){return t>=65&&t<=70?t-65+10:t>=97&&t<=102?t-97+10:t-48}function ye(t){return t>=48&&t<=55}le.regexp_eatCharacterClassEscape=function(t){var e=t.current();if(function(t){return 100===t||68===t||115===t||83===t||119===t||87===t}(e))return t.lastIntValue=-1,t.advance(),1;var n=!1;if(t.switchU&&this.options.ecmaVersion>=9&&((n=80===e)||112===e)){var i;if(t.lastIntValue=-1,t.advance(),t.eat(123)&&(i=this.regexp_eatUnicodePropertyValueExpression(t))&&t.eat(125))return n&&2===i&&t.raise("Invalid property name"),i;t.raise("Invalid property name")}return 0},le.regexp_eatUnicodePropertyValueExpression=function(t){var e=t.pos;if(this.regexp_eatUnicodePropertyName(t)&&t.eat(61)){var n=t.lastStringValue;if(this.regexp_eatUnicodePropertyValue(t)){var i=t.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(t,n,i),1}}if(t.pos=e,this.regexp_eatLoneUnicodePropertyNameOrValue(t)){var a=t.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(t,a)}return 0},le.regexp_validateUnicodePropertyNameAndValue=function(t,e,n){ct(t.unicodeProperties.nonBinary,e)||t.raise("Invalid property name"),t.unicodeProperties.nonBinary[e].test(n)||t.raise("Invalid property value")},le.regexp_validateUnicodePropertyNameOrValue=function(t,e){return t.unicodeProperties.binary.test(e)?1:t.switchV&&t.unicodeProperties.binaryOfStrings.test(e)?2:void t.raise("Invalid property name")},le.regexp_eatUnicodePropertyName=function(t){var e=0;for(t.lastStringValue="";fe(e=t.current());)t.lastStringValue+=dt(e),t.advance();return""!==t.lastStringValue},le.regexp_eatUnicodePropertyValue=function(t){var e=0;for(t.lastStringValue="";ge(e=t.current());)t.lastStringValue+=dt(e),t.advance();return""!==t.lastStringValue},le.regexp_eatLoneUnicodePropertyNameOrValue=function(t){return this.regexp_eatUnicodePropertyValue(t)},le.regexp_eatCharacterClass=function(t){if(t.eat(91)){var e=t.eat(94),n=this.regexp_classContents(t);return t.eat(93)||t.raise("Unterminated character class"),e&&2===n&&t.raise("Negated character class may contain strings"),!0}return!1},le.regexp_classContents=function(t){return 93===t.current()?1:t.switchV?this.regexp_classSetExpression(t):(this.regexp_nonEmptyClassRanges(t),1)},le.regexp_nonEmptyClassRanges=function(t){for(;this.regexp_eatClassAtom(t);){var e=t.lastIntValue;if(t.eat(45)&&this.regexp_eatClassAtom(t)){var n=t.lastIntValue;!t.switchU||-1!==e&&-1!==n||t.raise("Invalid character class"),-1!==e&&-1!==n&&e>n&&t.raise("Range out of order in character class")}}},le.regexp_eatClassAtom=function(t){var e=t.pos;if(t.eat(92)){if(this.regexp_eatClassEscape(t))return!0;if(t.switchU){var n=t.current();(99===n||ye(n))&&t.raise("Invalid class escape"),t.raise("Invalid escape")}t.pos=e}var i=t.current();return 93!==i&&(t.lastIntValue=i,t.advance(),!0)},le.regexp_eatClassEscape=function(t){var e=t.pos;if(t.eat(98))return t.lastIntValue=8,!0;if(t.switchU&&t.eat(45))return t.lastIntValue=45,!0;if(!t.switchU&&t.eat(99)){if(this.regexp_eatClassControlLetter(t))return!0;t.pos=e}return this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)},le.regexp_classSetExpression=function(t){var e,n=1;if(this.regexp_eatClassSetRange(t));else if(e=this.regexp_eatClassSetOperand(t)){2===e&&(n=2);for(var i=t.pos;t.eatChars([38,38]);)38!==t.current()&&(e=this.regexp_eatClassSetOperand(t))?2!==e&&(n=1):t.raise("Invalid character in character class");if(i!==t.pos)return n;for(;t.eatChars([45,45]);)this.regexp_eatClassSetOperand(t)||t.raise("Invalid character in character class");if(i!==t.pos)return n}else t.raise("Invalid character in character class");for(;;)if(!this.regexp_eatClassSetRange(t)){if(!(e=this.regexp_eatClassSetOperand(t)))return n;2===e&&(n=2)}},le.regexp_eatClassSetRange=function(t){var e=t.pos;if(this.regexp_eatClassSetCharacter(t)){var n=t.lastIntValue;if(t.eat(45)&&this.regexp_eatClassSetCharacter(t)){var i=t.lastIntValue;return-1!==n&&-1!==i&&n>i&&t.raise("Range out of order in character class"),!0}t.pos=e}return!1},le.regexp_eatClassSetOperand=function(t){return this.regexp_eatClassSetCharacter(t)?1:this.regexp_eatClassStringDisjunction(t)||this.regexp_eatNestedClass(t)},le.regexp_eatNestedClass=function(t){var e=t.pos;if(t.eat(91)){var n=t.eat(94),i=this.regexp_classContents(t);if(t.eat(93))return n&&2===i&&t.raise("Negated character class may contain strings"),i;t.pos=e}if(t.eat(92)){var a=this.regexp_eatCharacterClassEscape(t);if(a)return a;t.pos=e}return null},le.regexp_eatClassStringDisjunction=function(t){var e=t.pos;if(t.eatChars([92,113])){if(t.eat(123)){var n=this.regexp_classStringDisjunctionContents(t);if(t.eat(125))return n}else t.raise("Invalid escape");t.pos=e}return null},le.regexp_classStringDisjunctionContents=function(t){for(var e=this.regexp_classString(t);t.eat(124);)2===this.regexp_classString(t)&&(e=2);return e},le.regexp_classString=function(t){for(var e=0;this.regexp_eatClassSetCharacter(t);)e++;return 1===e?1:2},le.regexp_eatClassSetCharacter=function(t){var e=t.pos;if(t.eat(92))return!(!this.regexp_eatCharacterEscape(t)&&!this.regexp_eatClassSetReservedPunctuator(t))||(t.eat(98)?(t.lastIntValue=8,!0):(t.pos=e,!1));var n=t.current();return!(n<0||n===t.lookahead()&&function(t){return 33===t||t>=35&&t<=38||t>=42&&t<=44||46===t||t>=58&&t<=64||94===t||96===t||126===t}(n))&&(!function(t){return 40===t||41===t||45===t||47===t||t>=91&&t<=93||t>=123&&t<=125}(n)&&(t.advance(),t.lastIntValue=n,!0))},le.regexp_eatClassSetReservedPunctuator=function(t){var e=t.current();return!!function(t){return 33===t||35===t||37===t||38===t||44===t||45===t||t>=58&&t<=62||64===t||96===t||126===t}(e)&&(t.lastIntValue=e,t.advance(),!0)},le.regexp_eatClassControlLetter=function(t){var e=t.current();return!(!pe(e)&&95!==e)&&(t.lastIntValue=e%32,t.advance(),!0)},le.regexp_eatHexEscapeSequence=function(t){var e=t.pos;if(t.eat(120)){if(this.regexp_eatFixedHexDigits(t,2))return!0;t.switchU&&t.raise("Invalid escape"),t.pos=e}return!1},le.regexp_eatDecimalDigits=function(t){var e=t.pos,n=0;for(t.lastIntValue=0;pe(n=t.current());)t.lastIntValue=10*t.lastIntValue+(n-48),t.advance();return t.pos!==e},le.regexp_eatHexDigits=function(t){var e=t.pos,n=0;for(t.lastIntValue=0;be(n=t.current());)t.lastIntValue=16*t.lastIntValue+me(n),t.advance();return t.pos!==e},le.regexp_eatLegacyOctalEscapeSequence=function(t){if(this.regexp_eatOctalDigit(t)){var e=t.lastIntValue;if(this.regexp_eatOctalDigit(t)){var n=t.lastIntValue;e<=3&&this.regexp_eatOctalDigit(t)?t.lastIntValue=64*e+8*n+t.lastIntValue:t.lastIntValue=8*e+n}else t.lastIntValue=e;return!0}return!1},le.regexp_eatOctalDigit=function(t){var e=t.current();return ye(e)?(t.lastIntValue=e-48,t.advance(),!0):(t.lastIntValue=0,!1)},le.regexp_eatFixedHexDigits=function(t,e){var n=t.pos;t.lastIntValue=0;for(var i=0;i<e;++i){var a=t.current();if(!be(a))return t.pos=n,!1;t.lastIntValue=16*t.lastIntValue+me(a),t.advance()}return!0};var ve=function(t){this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,t.options.locations&&(this.loc=new gt(t,t.startLoc,t.endLoc)),t.options.ranges&&(this.range=[t.start,t.end])},we=xt.prototype;function xe(t){return"function"!=typeof BigInt?null:BigInt(t.replace(/_/g,""))}we.next=function(t){!t&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+this.type.keyword),this.options.onToken&&this.options.onToken(new ve(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},we.getToken=function(){return this.next(),new ve(this)},"undefined"!=typeof Symbol&&(we[Symbol.iterator]=function(){var t=this;return{next:function(){var e=t.getToken();return{done:e.type===J.eof,value:e}}}}),we.nextToken=function(){var t=this.curContext();return t&&t.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(J.eof):t.override?t.override(this):void this.readToken(this.fullCharCodeAtPos())},we.readToken=function(t){return V(t,this.options.ecmaVersion>=6)||92===t?this.readWord():this.getTokenFromCode(t)},we.fullCharCodeAtPos=function(){var t=this.input.charCodeAt(this.pos);if(t<=55295||t>=56320)return t;var e=this.input.charCodeAt(this.pos+1);return e<=56319||e>=57344?t:(t<<10)+e-56613888},we.skipBlockComment=function(){var t=this.options.onComment&&this.curPosition(),e=this.pos,n=this.input.indexOf("*/",this.pos+=2);if(-1===n&&this.raise(this.pos-2,"Unterminated comment"),this.pos=n+2,this.options.locations)for(var i=void 0,a=e;(i=nt(this.input,a,this.pos))>-1;)++this.curLine,a=this.lineStart=i;this.options.onComment&&this.options.onComment(!0,this.input.slice(e+2,n),e,this.pos,t,this.curPosition())},we.skipLineComment=function(t){for(var e=this.pos,n=this.options.onComment&&this.curPosition(),i=this.input.charCodeAt(this.pos+=t);this.pos<this.input.length&&!et(i);)i=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(e+t,this.pos),e,this.pos,n,this.curPosition())},we.skipSpace=function(){t:for(;this.pos<this.input.length;){var t=this.input.charCodeAt(this.pos);switch(t){case 32:case 160:++this.pos;break;case 13:10===this.input.charCodeAt(this.pos+1)&&++this.pos;case 10:case 8232:case 8233:++this.pos,this.options.locations&&(++this.curLine,this.lineStart=this.pos);break;case 47:switch(this.input.charCodeAt(this.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break t}break;default:if(!(t>8&&t<14||t>=5760&&it.test(String.fromCharCode(t))))break t;++this.pos}}},we.finishToken=function(t,e){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var n=this.type;this.type=t,this.value=e,this.updateContext(n)},we.readToken_dot=function(){var t=this.input.charCodeAt(this.pos+1);if(t>=48&&t<=57)return this.readNumber(!0);var e=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===t&&46===e?(this.pos+=3,this.finishToken(J.ellipsis)):(++this.pos,this.finishToken(J.dot))},we.readToken_slash=function(){var t=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===t?this.finishOp(J.assign,2):this.finishOp(J.slash,1)},we.readToken_mult_modulo_exp=function(t){var e=this.input.charCodeAt(this.pos+1),n=1,i=42===t?J.star:J.modulo;return this.options.ecmaVersion>=7&&42===t&&42===e&&(++n,i=J.starstar,e=this.input.charCodeAt(this.pos+2)),61===e?this.finishOp(J.assign,n+1):this.finishOp(i,n)},we.readToken_pipe_amp=function(t){var e=this.input.charCodeAt(this.pos+1);if(e===t){if(this.options.ecmaVersion>=12)if(61===this.input.charCodeAt(this.pos+2))return this.finishOp(J.assign,3);return this.finishOp(124===t?J.logicalOR:J.logicalAND,2)}return 61===e?this.finishOp(J.assign,2):this.finishOp(124===t?J.bitwiseOR:J.bitwiseAND,1)},we.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(J.assign,2):this.finishOp(J.bitwiseXOR,1)},we.readToken_plus_min=function(t){var e=this.input.charCodeAt(this.pos+1);return e===t?45!==e||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!Q.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(J.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===e?this.finishOp(J.assign,2):this.finishOp(J.plusMin,1)},we.readToken_lt_gt=function(t){var e=this.input.charCodeAt(this.pos+1),n=1;return e===t?(n=62===t&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+n)?this.finishOp(J.assign,n+1):this.finishOp(J.bitShift,n)):33!==e||60!==t||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===e&&(n=2),this.finishOp(J.relational,n)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},we.readToken_eq_excl=function(t){var e=this.input.charCodeAt(this.pos+1);return 61===e?this.finishOp(J.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===t&&62===e&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(J.arrow)):this.finishOp(61===t?J.eq:J.prefix,1)},we.readToken_question=function(){var t=this.options.ecmaVersion;if(t>=11){var e=this.input.charCodeAt(this.pos+1);if(46===e){var n=this.input.charCodeAt(this.pos+2);if(n<48||n>57)return this.finishOp(J.questionDot,2)}if(63===e){if(t>=12)if(61===this.input.charCodeAt(this.pos+2))return this.finishOp(J.assign,3);return this.finishOp(J.coalesce,2)}}return this.finishOp(J.question,1)},we.readToken_numberSign=function(){var t=35;if(this.options.ecmaVersion>=13&&(++this.pos,V(t=this.fullCharCodeAtPos(),!0)||92===t))return this.finishToken(J.privateId,this.readWord1());this.raise(this.pos,"Unexpected character '"+dt(t)+"'")},we.getTokenFromCode=function(t){switch(t){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(J.parenL);case 41:return++this.pos,this.finishToken(J.parenR);case 59:return++this.pos,this.finishToken(J.semi);case 44:return++this.pos,this.finishToken(J.comma);case 91:return++this.pos,this.finishToken(J.bracketL);case 93:return++this.pos,this.finishToken(J.bracketR);case 123:return++this.pos,this.finishToken(J.braceL);case 125:return++this.pos,this.finishToken(J.braceR);case 58:return++this.pos,this.finishToken(J.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(J.backQuote);case 48:var e=this.input.charCodeAt(this.pos+1);if(120===e||88===e)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===e||79===e)return this.readRadixNumber(8);if(98===e||66===e)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(t);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(t);case 124:case 38:return this.readToken_pipe_amp(t);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(t);case 60:case 62:return this.readToken_lt_gt(t);case 61:case 33:return this.readToken_eq_excl(t);case 63:return this.readToken_question();case 126:return this.finishOp(J.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,"Unexpected character '"+dt(t)+"'")},we.finishOp=function(t,e){var n=this.input.slice(this.pos,this.pos+e);return this.pos+=e,this.finishToken(t,n)},we.readRegexp=function(){for(var t,e,n=this.pos;;){this.pos>=this.input.length&&this.raise(n,"Unterminated regular expression");var i=this.input.charAt(this.pos);if(Q.test(i)&&this.raise(n,"Unterminated regular expression"),t)t=!1;else{if("["===i)e=!0;else if("]"===i&&e)e=!1;else if("/"===i&&!e)break;t="\\"===i}++this.pos}var a=this.input.slice(n,this.pos);++this.pos;var r=this.pos,o=this.readWord1();this.containsEsc&&this.unexpected(r);var s=this.regexpState||(this.regexpState=new ue(this));s.reset(n,a,o),this.validateRegExpFlags(s),this.validateRegExpPattern(s);var c=null;try{c=new RegExp(a,o)}catch(l){}return this.finishToken(J.regexp,{pattern:a,flags:o,value:c})},we.readInt=function(t,e,n){for(var i=this.options.ecmaVersion>=12&&void 0===e,a=n&&48===this.input.charCodeAt(this.pos),r=this.pos,o=0,s=0,c=0,l=null==e?1/0:e;c<l;++c,++this.pos){var u=this.input.charCodeAt(this.pos),d=void 0;if(i&&95===u)a&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed in legacy octal numeric literals"),95===s&&this.raiseRecoverable(this.pos,"Numeric separator must be exactly one underscore"),0===c&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed at the first of digits"),s=u;else{if((d=u>=97?u-97+10:u>=65?u-65+10:u>=48&&u<=57?u-48:1/0)>=t)break;s=u,o=o*t+d}}return i&&95===s&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===r||null!=e&&this.pos-r!==e?null:o},we.readRadixNumber=function(t){var e=this.pos;this.pos+=2;var n=this.readInt(t);return null==n&&this.raise(this.start+2,"Expected number in radix "+t),this.options.ecmaVersion>=11&&110===this.input.charCodeAt(this.pos)?(n=xe(this.input.slice(e,this.pos)),++this.pos):V(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(J.num,n)},we.readNumber=function(t){var e=this.pos;t||null!==this.readInt(10,void 0,!0)||this.raise(e,"Invalid number");var n=this.pos-e>=2&&48===this.input.charCodeAt(e);n&&this.strict&&this.raise(e,"Invalid number");var i=this.input.charCodeAt(this.pos);if(!n&&!t&&this.options.ecmaVersion>=11&&110===i){var a=xe(this.input.slice(e,this.pos));return++this.pos,V(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(J.num,a)}n&&/[89]/.test(this.input.slice(e,this.pos))&&(n=!1),46!==i||n||(++this.pos,this.readInt(10),i=this.input.charCodeAt(this.pos)),69!==i&&101!==i||n||(43!==(i=this.input.charCodeAt(++this.pos))&&45!==i||++this.pos,null===this.readInt(10)&&this.raise(e,"Invalid number")),V(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var r,o=(r=this.input.slice(e,this.pos),n?parseInt(r,8):parseFloat(r.replace(/_/g,"")));return this.finishToken(J.num,o)},we.readCodePoint=function(){var t;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var e=++this.pos;t=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(e,"Code point out of bounds")}else t=this.readHexChar(4);return t},we.readString=function(t){for(var e="",n=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var i=this.input.charCodeAt(this.pos);if(i===t)break;92===i?(e+=this.input.slice(n,this.pos),e+=this.readEscapedChar(!1),n=this.pos):8232===i||8233===i?(this.options.ecmaVersion<10&&this.raise(this.start,"Unterminated string constant"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(et(i)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return e+=this.input.slice(n,this.pos++),this.finishToken(J.string,e)};var Re={};we.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(t){if(t!==Re)throw t;this.readInvalidTemplateToken()}this.inTemplateElement=!1},we.invalidStringToken=function(t,e){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Re;this.raise(t,e)},we.readTmplToken=function(){for(var t="",e=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var n=this.input.charCodeAt(this.pos);if(96===n||36===n&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==J.template&&this.type!==J.invalidTemplate?(t+=this.input.slice(e,this.pos),this.finishToken(J.template,t)):36===n?(this.pos+=2,this.finishToken(J.dollarBraceL)):(++this.pos,this.finishToken(J.backQuote));if(92===n)t+=this.input.slice(e,this.pos),t+=this.readEscapedChar(!0),e=this.pos;else if(et(n)){switch(t+=this.input.slice(e,this.pos),++this.pos,n){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:t+="\n";break;default:t+=String.fromCharCode(n)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),e=this.pos}else++this.pos}},we.readInvalidTemplateToken=function(){for(;this.pos<this.input.length;this.pos++)switch(this.input[this.pos]){case"\\":++this.pos;break;case"$":if("{"!==this.input[this.pos+1])break;case"`":return this.finishToken(J.invalidTemplate,this.input.slice(this.start,this.pos))}this.raise(this.start,"Unterminated template")},we.readEscapedChar=function(t){var e=this.input.charCodeAt(++this.pos);switch(++this.pos,e){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return dt(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";case 56:case 57:if(this.strict&&this.invalidStringToken(this.pos-1,"Invalid escape sequence"),t){var n=this.pos-1;this.invalidStringToken(n,"Invalid escape sequence in template string")}default:if(e>=48&&e<=55){var i=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],a=parseInt(i,8);return a>255&&(i=i.slice(0,-1),a=parseInt(i,8)),this.pos+=i.length-1,e=this.input.charCodeAt(this.pos),"0"===i&&56!==e&&57!==e||!this.strict&&!t||this.invalidStringToken(this.pos-1-i.length,t?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(a)}return et(e)?"":String.fromCharCode(e)}},we.readHexChar=function(t){var e=this.pos,n=this.readInt(16,t);return null===n&&this.invalidStringToken(e,"Bad character escape sequence"),n},we.readWord1=function(){this.containsEsc=!1;for(var t="",e=!0,n=this.pos,i=this.options.ecmaVersion>=6;this.pos<this.input.length;){var a=this.fullCharCodeAtPos();if(q(a,i))this.pos+=a<=65535?1:2;else{if(92!==a)break;this.containsEsc=!0,t+=this.input.slice(n,this.pos);var r=this.pos;117!==this.input.charCodeAt(++this.pos)&&this.invalidStringToken(this.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.pos;var o=this.readCodePoint();(e?V:q)(o,i)||this.invalidStringToken(r,"Invalid Unicode escape"),t+=dt(o),n=this.pos}e=!1}return t+this.input.slice(n,this.pos)},we.readWord=function(){var t=this.readWord1(),e=J.name;return this.keywords.test(t)&&(e=K[t]),this.finishToken(e,t)};xt.acorn={Parser:xt,version:"8.10.0",defaultOptions:bt,Position:ft,SourceLocation:gt,getLineInfo:pt,Node:Vt,TokenType:W,tokTypes:J,keywordTypes:K,TokContext:Nt,tokContexts:Bt,isIdentifierChar:q,isIdentifierStart:V,Token:ve,isNewLine:et,lineBreak:Q,lineBreakG:tt,nonASCIIwhitespace:it};var _e=n(94668),ke=n(75364);const Ee={}.hasOwnProperty,Ce=Symbol("continue"),Se=Symbol("exit"),Te=Symbol("skip");function Ae(t){return Array.isArray(t)?t:"number"==typeof t?[Ce,t]:[t]}function De(t){return Boolean(t&&"object"==typeof t&&"type"in t&&"string"==typeof t.type&&t.type.length>0)}function Ie(t,e){const n=e.prefix||"",i=e.suffix||"",a=Object.assign({},e.acornOptions),r=[],o=[],s=a.onComment,c=a.onToken;let l,u,d=!1;const h=Object.assign({},a,{onComment:r,preserveParens:!0});c&&(h.onToken=o);const f=function(t,e){const n={value:"",stops:[]};let i=-1;for(;++i<t.length;){const a=t[i];if("enter"===a[0]&&e.includes(a[1].type)){const t=a[2].sliceStream(a[1]);for(;t.length>0&&-1===t[0];)t.shift();const e=Oe(t);n.stops.push([n.value.length,a[1].start]),n.value+=e,n.stops.push([n.value.length,a[1].end])}}return n}(t,["lineEnding","expressionChunk","mdxFlowExpressionChunk","mdxTextExpressionChunk","mdxJsxTextTagExpressionAttributeValue","mdxJsxTextTagAttributeValueExpressionValue","mdxJsxFlowTagExpressionAttributeValue","mdxJsxFlowTagAttributeValueExpressionValue","mdxjsEsmData"]),p=f.value,b=n+p+i,m=e.expression&&Le(p);if(m&&!e.allowEmpty)throw new g("Unexpected empty expression",v(0),"micromark-extension-mdx-expression:unexpected-empty-expression");try{l=e.expression&&!m?e.acorn.parseExpressionAt(b,0,h):e.acorn.parse(b,h)}catch(w){const t=w,e=v(t.pos);t.message=String(t.message).replace(/ \(\d+:\d+\)$/,""),t.pos=e.offset,t.loc={line:e.line,column:e.column-1},u=t,d=t.raisedAt>=n.length+p.length||"Unterminated comment"===t.message}if(l&&e.expression&&!m)if(Le(b.slice(l.end,b.length-i.length)))l={type:"Program",start:0,end:n.length+p.length,body:[{type:"ExpressionStatement",expression:l,start:0,end:n.length+p.length}],sourceType:"module",comments:[]};else{const t=v(l.end),e=new Error("Unexpected content after expression");e.pos=t.offset,e.loc={line:t.line,column:t.column-1},u=e,l=void 0}if(l){if(l.comments=r,function(t,e){let n,i;"function"==typeof e?n=e:e&&"object"==typeof e&&(e.enter&&(n=e.enter),e.leave&&(i=e.leave)),function t(e,a,r,o){return De(e)&&(s.displayName="node ("+e.type+")"),s;function s(){const s=n?Ae(n(e,a,r,o)):[];if(s[0]===Se)return s;if(s[0]!==Te){let n;for(n in e)if(Ee.call(e,n)&&e[n]&&"object"==typeof e[n]&&"data"!==n&&"position"!==n){const i=o.concat(e),a=e[n];if(Array.isArray(a)){const e=a;let r=0;for(;r>-1&&r<e.length;){const a=e[r];if(De(a)){const e=t(a,n,r,i)();if(e[0]===Se)return e;r="number"==typeof e[1]?e[1]:r+1}else r++}}else if(De(a)){const e=t(a,n,null,i)();if(e[0]===Se)return e}}}return i?Ae(i(e,a,r,o)):s}}(t,null,null,[])()}(l,((t,e,n,i)=>{let a=i[i.length-1],r=e;"ParenthesizedExpression"===t.type&&a&&r&&("number"==typeof n&&(a=a[r],r=n),a[r]=t.expression),y(t)})),Array.isArray(s))s.push(...r);else if("function"==typeof s)for(const t of r)s("Block"===t.type,t.value,t.start,t.end,t.loc.start,t.loc.end);for(const t of o)t.end<=n.length||t.start-n.length>=p.length||(y(t),Array.isArray(c)?c.push(t):c(t))}return{estree:l,error:u,swallow:d};function y(t){const e=v(t.start),n=v(t.end);t.start=e.offset,t.end=n.offset,t.loc={start:{line:e.line,column:e.column-1,offset:e.offset},end:{line:n.line,column:n.column-1,offset:n.offset}},t.range=[t.start,t.end]}function v(t){let i=t-n.length;i<0?i=0:i>p.length&&(i=p.length);let a=function(t,e){let n=0;for(;n<t.length&&t[n][0]<=e;)n+=1;if(0===n)return;const[i,a]=t[n-1],r=e-i;return{line:a.line,column:a.column+r,offset:a.offset+r}}(f.stops,i);return a||(a={line:e.start.line,column:e.start.column,offset:e.start.offset}),a}}function Le(t){return/^\s*$/.test(t.replace(/\/\*[\s\S]*?\*\//g,"").replace(/\/\/[^\r\n]*(\r\n|\n|\r)/g,""))}function Oe(t){let e=-1;const n=[];let i;for(;++e<t.length;){const a=t[e];let r;if("string"==typeof a)r=a;else switch(a){case-5:r="\r";break;case-4:r="\n";break;case-3:r="\r\n";break;case-2:r="\t";break;case-1:if(i)continue;r=" ";break;default:r=String.fromCharCode(a)}i=-2===a,n.push(r)}return n.join("")}function Me(t){const e=t||{},n=e.loc||{},i=e.range||[0,0],a=n.start?Ne(n.start.column):void 0,r=n.end?Ne(n.end.column):void 0;return{start:{line:n.start?Ne(n.start.line):void 0,column:void 0===a?void 0:a+1,offset:Ne(i[0]||e.start)},end:{line:n.end?Ne(n.end.line):void 0,column:void 0===r?void 0:r+1,offset:Ne(i[1]||e.end)}}}function Ne(t){return"number"==typeof t&&t>-1?t:void 0}function Be(t,e,n,i,a,r,o,s,c,l,u){const d=this,h=this.events.length+3;let f,p,b=0;return function(e){return t.enter(n),t.enter(i),t.consume(e),t.exit(i),f=d.now(),m};function m(u){if(null===u)throw p||new g("Unexpected end of file in expression, expected a corresponding closing brace for `{`",d.now(),"micromark-extension-mdx-expression:unexpected-eof");if((0,ke.Ch)(u))return t.enter("lineEnding"),t.consume(u),t.exit("lineEnding"),v;if(125===u&&0===b){const g=r?Pe.call(d,r,o,h,f,l||!1,c||!1):{type:"ok",estree:void 0};if("ok"===g.type){t.enter(i),t.consume(u),t.exit(i);const a=t.exit(n);return s&&g.estree&&Object.assign(a,{estree:g.estree}),e}return p=g.message,t.enter(a),t.consume(u),y}return t.enter(a),y(u)}function y(e){return 125===e&&0===b||null===e||(0,ke.Ch)(e)?(t.exit(a),m(e)):(123!==e||r?125===e&&(b-=1):b+=1,t.consume(e),y)}function v(t){const e=d.now();if(e.line!==f.line&&!u&&d.parser.lazy[e.line])throw new g("Unexpected end of file in expression, expected a corresponding closing brace for `{`",d.now(),"micromark-extension-mdx-expression:unexpected-eof");return m(t)}}function Pe(t,e,n,i,a,r){const o=Ie(this.events.slice(n),{acorn:t,acornOptions:e,start:i,expression:!0,allowEmpty:a,prefix:r?"({":"",suffix:r?"})":""}),s=o.estree;if(r&&s){const t=s.body[0];if("ExpressionStatement"!==t.type||"ObjectExpression"!==t.expression.type)throw new g("Unexpected `"+t.type+"` in code: expected an object spread (`{...spread}`)",Me(t).start,"micromark-extension-mdx-expression:non-spread");if(t.expression.properties[1])throw new g("Unexpected extra content in spread: only a single spread is supported",Me(t.expression.properties[1]).start,"micromark-extension-mdx-expression:spread-extra");if(t.expression.properties[0]&&"SpreadElement"!==t.expression.properties[0].type)throw new g("Unexpected `"+t.expression.properties[0].type+"` in code: only spread elements are supported",Me(t.expression.properties[0]).start,"micromark-extension-mdx-expression:non-spread")}return o.error?{type:"nok",message:new g("Could not parse expression with acorn: "+o.error.message,{line:o.error.loc.line,column:o.error.loc.column+1,offset:o.error.pos},"micromark-extension-mdx-expression:acorn")}:{type:"ok",estree:s}}var Fe=n(42761);function je(t){const e=t||{},n=e.addResult,i=e.acorn,a=e.spread;let r,o=e.allowEmpty;if(null==o&&(o=!0),i){if(!i.parseExpressionAt)throw new Error("Expected a proper `acorn` instance passed in as `options.acorn`");r=Object.assign({ecmaVersion:2020,sourceType:"module"},e.acornOptions)}else if(e.acornOptions||e.addResult)throw new Error("Expected an `acorn` instance passed in as `options.acorn`");return{flow:{123:{tokenize:function(t,e,s){const c=this;return function(e){return function(e){return Be.call(c,t,l,"mdxFlowExpression","mdxFlowExpressionMarker","mdxFlowExpressionChunk",i,r,n,a,o)(e)}(e)};function l(e){return(0,ke.xz)(e)?(0,Fe.f)(t,u,"whitespace")(e):u(e)}function u(t){return null===t||(0,ke.Ch)(t)?e(t):s(t)}},concrete:!0}},text:{123:{tokenize:function(t,e){const s=this;return function(c){return Be.call(s,t,e,"mdxTextExpression","mdxTextExpressionMarker","mdxTextExpressionChunk",i,r,n,a,o,!0)(c)}}}}}}const $e=/[$A-Z_a-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\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\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\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\u0AF9\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-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\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-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\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\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\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]/,ze=/[\d\u00B7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F]/;function He(t){return $e.test(String.fromCharCode(t))}function Ue(t){const e=String.fromCharCode(t);return $e.test(e)||ze.test(e)}function Ve(t){let e=-1;for(;++e<t.length;)if(!(e?Ue:He)(t.charCodeAt(e)))return!1;return e>0}function qe(t,e,n,i,a,r,o,s,c,l,u,d,h,f,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A,D,I,L){const O=this;let M,N;return function(e){return t.enter(s),t.enter(c),t.consume(e),t.exit(c),B};function B(t){return(0,ke.z3)(t)?n(t):(M=P,ot(t))}function P(e){return 47===e?(t.enter(l),t.consume(e),t.exit(l),M=F,ot):62===e?rt(e):null!==e&&He(e)?(t.enter(d),t.enter(h),t.consume(e),j):void lt(e,"before name","a character that can start a name, such as a letter, `$`, or `_`"+(33===e?" (note: to create a comment in MDX, use `{/* text */}`)":""))}function F(e){return 62===e?rt(e):null!==e&&He(e)?(t.enter(d),t.enter(h),t.consume(e),j):void lt(e,"before name","a character that can start a name, such as a letter, `$`, or `_`"+(42===e||47===e?" (note: JS comments in JSX tags are not supported in MDX)":""))}function j(e){return 45===e||null!==e&&Ue(e)?(t.consume(e),j):46===e||47===e||58===e||62===e||123===e||(0,ke.z3)(e)||(0,ke.B8)(e)?(t.exit(h),M=$,ot(e)):void lt(e,"in name","a name character such as letters, digits, `$`, or `_`; whitespace before attributes; or the end of the tag"+(64===e?" (note: to create a link in MDX, use `[text](url)`)":""))}function $(e){return 46===e?(t.enter(f),t.consume(e),t.exit(f),M=z,ot):58===e?(t.enter(b),t.consume(e),t.exit(b),M=V,ot):47===e||62===e||123===e||null!==e&&He(e)?(t.exit(d),Y(e)):void lt(e,"after name","a character that can start an attribute name, such as a letter, `$`, or `_`; whitespace before attributes; or the end of the tag")}function z(e){if(null!==e&&He(e))return t.enter(p),t.consume(e),H;lt(e,"before member name","a character that can start an attribute name, such as a letter, `$`, or `_`; whitespace before attributes; or the end of the tag")}function H(e){return 45===e||null!==e&&Ue(e)?(t.consume(e),H):46===e||47===e||62===e||123===e||(0,ke.z3)(e)||(0,ke.B8)(e)?(t.exit(p),M=U,ot(e)):void lt(e,"in member name","a name character such as letters, digits, `$`, or `_`; whitespace before attributes; or the end of the tag"+(64===e?" (note: to create a link in MDX, use `[text](url)`)":""))}function U(e){return 46===e?(t.enter(f),t.consume(e),t.exit(f),M=z,ot):47===e||62===e||123===e||null!==e&&He(e)?(t.exit(d),Y(e)):void lt(e,"after member name","a character that can start an attribute name, such as a letter, `$`, or `_`; whitespace before attributes; or the end of the tag")}function V(e){if(null!==e&&He(e))return t.enter(m),t.consume(e),q;lt(e,"before local name","a character that can start a name, such as a letter, `$`, or `_`"+(43===e||null!==e&&e>46&&e<58?" (note: to create a link in MDX, use `[text](url)`)":""))}function q(e){return 45===e||null!==e&&Ue(e)?(t.consume(e),q):47===e||62===e||123===e||(0,ke.z3)(e)||(0,ke.B8)(e)?(t.exit(m),M=W,ot(e)):void lt(e,"in local name","a name character such as letters, digits, `$`, or `_`; whitespace before attributes; or the end of the tag")}function W(e){if(47===e||62===e||123===e||null!==e&&He(e))return t.exit(d),Y(e);lt(e,"after local name","a character that can start an attribute name, such as a letter, `$`, or `_`; whitespace before attributes; or the end of the tag")}function Y(e){return 47===e?(t.enter(u),t.consume(e),t.exit(u),M=at,ot):62===e?rt(e):123===e?Be.call(O,t,G,y,v,w,i,a,r,!0,!1,o)(e):null!==e&&He(e)?(t.enter(x),t.enter(R),t.enter(_),t.consume(e),Z):void lt(e,"before attribute name","a character that can start an attribute name, such as a letter, `$`, or `_`; whitespace before attributes; or the end of the tag")}function G(t){return M=Y,ot(t)}function Z(e){return 45===e||null!==e&&Ue(e)?(t.consume(e),Z):47===e||58===e||61===e||62===e||123===e||(0,ke.z3)(e)||(0,ke.B8)(e)?(t.exit(_),M=K,ot(e)):void lt(e,"in attribute name","an attribute name character such as letters, digits, `$`, or `_`; `=` to initialize a value; whitespace before attributes; or the end of the tag")}function K(e){return 58===e?(t.enter(k),t.consume(e),t.exit(k),M=X,ot):61===e?(t.exit(R),t.enter(C),t.consume(e),t.exit(C),M=tt,ot):47===e||62===e||123===e||(0,ke.z3)(e)||(0,ke.B8)(e)||null!==e&&He(e)?(t.exit(R),t.exit(x),M=Y,ot(e)):void lt(e,"after attribute name","a character that can start an attribute name, such as a letter, `$`, or `_`; `=` to initialize a value; or the end of the tag")}function X(e){if(null!==e&&He(e))return t.enter(E),t.consume(e),J;lt(e,"before local attribute name","a character that can start an attribute name, such as a letter, `$`, or `_`; `=` to initialize a value; or the end of the tag")}function J(e){return 45===e||null!==e&&Ue(e)?(t.consume(e),J):47===e||61===e||62===e||123===e||(0,ke.z3)(e)||(0,ke.B8)(e)?(t.exit(E),t.exit(R),M=Q,ot(e)):void lt(e,"in local attribute name","an attribute name character such as letters, digits, `$`, or `_`; `=` to initialize a value; whitespace before attributes; or the end of the tag")}function Q(e){return 61===e?(t.enter(C),t.consume(e),t.exit(C),M=tt,ot):47===e||62===e||123===e||null!==e&&He(e)?(t.exit(x),Y(e)):void lt(e,"after local attribute name","a character that can start an attribute name, such as a letter, `$`, or `_`; `=` to initialize a value; or the end of the tag")}function tt(e){return 34===e||39===e?(t.enter(S),t.enter(T),t.consume(e),t.exit(T),N=e,nt):123===e?Be.call(O,t,et,D,I,L,i,a,r,!1,!1,o)(e):void lt(e,"before attribute value","a character that can start an attribute value, such as `\"`, `'`, or `{`"+(60===e?" (note: to use an element or fragment as a prop value in MDX, use `{<element />}`)":""))}function et(e){return t.exit(x),M=Y,ot(e)}function nt(e){return null===e&<(e,"in attribute value","a corresponding closing quote `"+String.fromCodePoint(N)+"`"),e===N?(t.enter(T),t.consume(e),t.exit(T),t.exit(S),t.exit(x),N=void 0,M=Y,ot):(0,ke.Ch)(e)?(M=nt,ot(e)):(t.enter(A),it(e))}function it(e){return null===e||e===N||(0,ke.Ch)(e)?(t.exit(A),nt(e)):(t.consume(e),it)}function at(t){if(62===t)return rt(t);lt(t,"after self-closing slash","`>` to end the tag"+(42===t||47===t?" (note: JS comments in JSX tags are not supported in MDX)":""))}function rt(n){return t.enter(c),t.consume(n),t.exit(c),t.exit(s),e}function ot(e){return(0,ke.Ch)(e)?(t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),ct):(0,ke.xz)(e)||(0,ke.B8)(e)?(t.enter("esWhitespace"),st(e)):M(e)}function st(e){return(0,ke.Ch)(e)?(t.exit("esWhitespace"),ot(e)):(0,ke.xz)(e)||(0,ke.B8)(e)?(t.consume(e),st):(t.exit("esWhitespace"),M(e))}function ct(t){if(!o&&O.parser.lazy[O.now().line])throw new g("Unexpected lazy line in container, expected line to be prefixed with `>` when in a block quote, whitespace when in a list, etc",O.now(),"micromark-extension-mdx-jsx:unexpected-eof");return ot(t)}function lt(t,e,n){throw new g("Unexpected "+(null===t?"end of file":"character `"+(96===t?"` ` `":String.fromCodePoint(t))+"` ("+function(t){return"U+"+t.toString(16).toUpperCase().padStart(4,"0")}(t)+")")+" "+e+", expected "+n,O.now(),"micromark-extension-mdx-jsx:unexpected-"+(null===t?"eof":"character"))}}function We(t,e,n){return{tokenize:function(i,a,r){return qe.call(this,i,a,r,t,e,n,!0,"mdxJsxTextTag","mdxJsxTextTagMarker","mdxJsxTextTagClosingMarker","mdxJsxTextTagSelfClosingMarker","mdxJsxTextTagName","mdxJsxTextTagNamePrimary","mdxJsxTextTagNameMemberMarker","mdxJsxTextTagNameMember","mdxJsxTextTagNamePrefixMarker","mdxJsxTextTagNameLocal","mdxJsxTextTagExpressionAttribute","mdxJsxTextTagExpressionAttributeMarker","mdxJsxTextTagExpressionAttributeValue","mdxJsxTextTagAttribute","mdxJsxTextTagAttributeName","mdxJsxTextTagAttributeNamePrimary","mdxJsxTextTagAttributeNamePrefixMarker","mdxJsxTextTagAttributeNameLocal","mdxJsxTextTagAttributeInitializerMarker","mdxJsxTextTagAttributeValueLiteral","mdxJsxTextTagAttributeValueLiteralMarker","mdxJsxTextTagAttributeValueLiteralValue","mdxJsxTextTagAttributeValueExpression","mdxJsxTextTagAttributeValueExpressionMarker","mdxJsxTextTagAttributeValueExpressionValue")}}}function Ye(t,e,n){return{tokenize:function(i,a,r){const o=this;return s;function s(a){return function(a){return qe.call(o,i,c,r,t,e,n,!1,"mdxJsxFlowTag","mdxJsxFlowTagMarker","mdxJsxFlowTagClosingMarker","mdxJsxFlowTagSelfClosingMarker","mdxJsxFlowTagName","mdxJsxFlowTagNamePrimary","mdxJsxFlowTagNameMemberMarker","mdxJsxFlowTagNameMember","mdxJsxFlowTagNamePrefixMarker","mdxJsxFlowTagNameLocal","mdxJsxFlowTagExpressionAttribute","mdxJsxFlowTagExpressionAttributeMarker","mdxJsxFlowTagExpressionAttributeValue","mdxJsxFlowTagAttribute","mdxJsxFlowTagAttributeName","mdxJsxFlowTagAttributeNamePrimary","mdxJsxFlowTagAttributeNamePrefixMarker","mdxJsxFlowTagAttributeNameLocal","mdxJsxFlowTagAttributeInitializerMarker","mdxJsxFlowTagAttributeValueLiteral","mdxJsxFlowTagAttributeValueLiteralMarker","mdxJsxFlowTagAttributeValueLiteralValue","mdxJsxFlowTagAttributeValueExpression","mdxJsxFlowTagAttributeValueExpressionMarker","mdxJsxFlowTagAttributeValueExpressionValue")(a)}(a)}function c(t){return(0,ke.xz)(t)?(0,Fe.f)(i,l,"whitespace")(t):l(t)}function l(t){return 60===t?s(t):null===t||(0,ke.Ch)(t)?a(t):r(t)}},concrete:!0}}function Ge(t){const e=t||{},n=e.acorn;let i;if(n){if(!n.parse||!n.parseExpressionAt)throw new Error("Expected a proper `acorn` instance passed in as `options.acorn`");i=Object.assign({ecmaVersion:2020,sourceType:"module"},e.acornOptions,{locations:!0})}else if(e.acornOptions||e.addResult)throw new Error("Expected an `acorn` instance passed in as `options.acorn`");return{flow:{60:Ye(n||void 0,i,e.addResult||!1)},text:{60:We(n||void 0,i,e.addResult||!1)}}}const Ze={disable:{null:["autolink","codeIndented","htmlFlow","htmlText"]}};var Ke=n(23402);const Xe={tokenize:function(t,e,n){return function(i){return t.enter("lineEndingBlank"),t.consume(i),t.exit("lineEndingBlank"),t.attempt(Ke.w,e,n)}},partial:!0},Je=new Set(["ExportAllDeclaration","ExportDefaultDeclaration","ExportNamedDeclaration","ImportDeclaration"]);function Qe(t){const e={tokenize:function(e,a,r){const o=this,s=o.parser.definedModuleSpecifiers||(o.parser.definedModuleSpecifiers=[]),c=this.events.length+1;let l="";return o.interrupt?r:function(t){return o.now().column>1?r(t):(e.enter("mdxjsEsm"),e.enter("mdxjsEsmData"),e.consume(t),l+=String.fromCharCode(t),u)};function u(t){return(0,ke.jv)(t)?(e.consume(t),l+=String.fromCharCode(t),u):"import"!==l&&"export"!==l||32!==t?r(t):(e.consume(t),d)}function d(t){return null===t||(0,ke.Ch)(t)?(e.exit("mdxjsEsmData"),h(t)):(e.consume(t),d)}function h(t){return null===t?p(t):(0,ke.Ch)(t)?e.check(Xe,p,f)(t):(e.enter("mdxjsEsmData"),d(t))}function f(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),h}function p(r){const l=Ie(o.events.slice(c),{acorn:n,acornOptions:i,prefix:s.length>0?"var "+s.join(",")+"\n":""});if(l.error){if(null!==r&&l.swallow)return f(r);throw new g("Could not parse import/exports with acorn: "+String(l.error),{line:l.error.loc.line,column:l.error.loc.column+1,offset:l.error.pos},"micromark-extension-mdxjs-esm:acorn")}if(s.length>0){l.estree.body.shift()}let u=-1;for(;++u<l.estree.body.length;){const t=l.estree.body[u];if(!Je.has(t.type))throw new g("Unexpected `"+t.type+"` in code: only import/exports are supported",Me(t),"micromark-extension-mdxjs-esm:non-esm");if("ImportDeclaration"===t.type&&!o.interrupt){let e=-1;for(;++e<t.specifiers.length;){const n=t.specifiers[e];s.push(n.local.name)}}}return Object.assign(e.exit("mdxjsEsm"),t.addResult?{estree:l.estree}:void 0),a(r)}},concrete:!0};if(!t||!t.acorn||!t.acorn.parse)throw new Error("Expected an `acorn` instance passed in as `options.acorn`");const n=t.acorn,i=Object.assign({ecmaVersion:2020,sourceType:"module"},t.acornOptions);return{flow:{101:e,105:e}}}var tn=n(4663);const en={enter:{mdxFlowExpression:function(t){this.enter({type:"mdxFlowExpression",value:""},t),this.buffer()},mdxTextExpression:function(t){this.enter({type:"mdxTextExpression",value:""},t),this.buffer()}},exit:{mdxFlowExpression:an,mdxFlowExpressionChunk:rn,mdxTextExpression:an,mdxTextExpressionChunk:rn}},nn={handlers:{mdxFlowExpression:on,mdxTextExpression:on},unsafe:[{character:"{",inConstruct:["phrasing"]},{atBreak:!0,character:"{"}]};function an(t){const e=this.resume(),n=t.estree,i=this.exit(t);i.value=e,n&&(i.data={estree:n})}function rn(t){this.config.enter.data.call(this,t),this.config.exit.data.call(this,t)}function on(t){return"{"+(t.value||"")+"}"}var sn=n(64777);const cn=["AElig","AMP","Aacute","Acirc","Agrave","Aring","Atilde","Auml","COPY","Ccedil","ETH","Eacute","Ecirc","Egrave","Euml","GT","Iacute","Icirc","Igrave","Iuml","LT","Ntilde","Oacute","Ocirc","Ograve","Oslash","Otilde","Ouml","QUOT","REG","THORN","Uacute","Ucirc","Ugrave","Uuml","Yacute","aacute","acirc","acute","aelig","agrave","amp","aring","atilde","auml","brvbar","ccedil","cedil","cent","copy","curren","deg","divide","eacute","ecirc","egrave","eth","euml","frac12","frac14","frac34","gt","iacute","icirc","iexcl","igrave","iquest","iuml","laquo","lt","macr","micro","middot","nbsp","not","ntilde","oacute","ocirc","ograve","ordf","ordm","oslash","otilde","ouml","para","plusmn","pound","quot","raquo","reg","sect","shy","sup1","sup2","sup3","szlig","thorn","times","uacute","ucirc","ugrave","uml","uuml","yacute","yen","yuml"],ln={0:"\ufffd",128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};function un(t){const e="string"==typeof t?t.charCodeAt(0):t;return e>=48&&e<=57}function dn(t){const e="string"==typeof t?t.charCodeAt(0):t;return e>=97&&e<=102||e>=65&&e<=70||e>=48&&e<=57}function hn(t){return function(t){const e="string"==typeof t?t.charCodeAt(0):t;return e>=97&&e<=122||e>=65&&e<=90}(t)||un(t)}var fn=n(44301);const gn=String.fromCharCode,pn=["","Named character references must be terminated by a semicolon","Numeric character references must be terminated by a semicolon","Named character references cannot be empty","Numeric character references cannot be empty","Named character references must be known","Numeric character references cannot be disallowed","Numeric character references cannot be outside the permissible Unicode range"];function bn(t){return t>=55296&&t<=57343||t>1114111}function mn(t){return t>=1&&t<=8||11===t||t>=13&&t<=31||t>=127&&t<=159||t>=64976&&t<=65007||65535==(65535&t)||65534==(65535&t)}function yn(t,e){return t=t.replace(e.subset?function(t){const e=[];let n=-1;for(;++n<t.length;)e.push(t[n].replace(/[|\\{}()[\]^$+*?.]/g,"\\$&"));return new RegExp("(?:"+e.join("|")+")","g")}(e.subset):/["&'<>`]/g,n),e.subset||e.escapeOnly?t:t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,(function(t,n,i){return e.format(1024*(t.charCodeAt(0)-55296)+t.charCodeAt(1)-56320+65536,i.charCodeAt(n+2),e)})).replace(/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,n);function n(t,n,i){return e.format(t.charCodeAt(0),i.charCodeAt(n+1),e)}}function vn(t){return"&#x"+t.toString(16).toUpperCase()+";"}function wn(t,e){return yn(t,Object.assign({format:vn},e))}var xn=n(87891),Rn=n(21665),_n=n(48653);function kn(){return{canContainEols:["mdxJsxTextElement"],enter:{mdxJsxFlowTag:n,mdxJsxFlowTagClosingMarker:i,mdxJsxFlowTagAttribute:d,mdxJsxFlowTagExpressionAttribute:h,mdxJsxFlowTagAttributeValueLiteral:t,mdxJsxFlowTagAttributeValueExpression:t,mdxJsxFlowTagSelfClosingMarker:r,mdxJsxTextTag:n,mdxJsxTextTagClosingMarker:i,mdxJsxTextTagAttribute:d,mdxJsxTextTagExpressionAttribute:h,mdxJsxTextTagAttributeValueLiteral:t,mdxJsxTextTagAttributeValueExpression:t,mdxJsxTextTagSelfClosingMarker:r},exit:{mdxJsxFlowTagClosingMarker:o,mdxJsxFlowTagNamePrimary:s,mdxJsxFlowTagNameMember:c,mdxJsxFlowTagNameLocal:l,mdxJsxFlowTagExpressionAttribute:f,mdxJsxFlowTagExpressionAttributeValue:e,mdxJsxFlowTagAttributeNamePrimary:p,mdxJsxFlowTagAttributeNameLocal:b,mdxJsxFlowTagAttributeValueLiteral:m,mdxJsxFlowTagAttributeValueLiteralValue:e,mdxJsxFlowTagAttributeValueExpression:y,mdxJsxFlowTagAttributeValueExpressionValue:e,mdxJsxFlowTagSelfClosingMarker:v,mdxJsxFlowTag:w,mdxJsxTextTagClosingMarker:o,mdxJsxTextTagNamePrimary:s,mdxJsxTextTagNameMember:c,mdxJsxTextTagNameLocal:l,mdxJsxTextTagExpressionAttribute:f,mdxJsxTextTagExpressionAttributeValue:e,mdxJsxTextTagAttributeNamePrimary:p,mdxJsxTextTagAttributeNameLocal:b,mdxJsxTextTagAttributeValueLiteral:m,mdxJsxTextTagAttributeValueLiteralValue:e,mdxJsxTextTagAttributeValueExpression:y,mdxJsxTextTagAttributeValueExpressionValue:e,mdxJsxTextTagSelfClosingMarker:v,mdxJsxTextTag:w}};function t(){this.buffer()}function e(t){this.config.enter.data.call(this,t),this.config.exit.data.call(this,t)}function n(t){const e={name:void 0,attributes:[],close:!1,selfClosing:!1,start:t.start,end:t.end};this.getData("mdxJsxTagStack")||this.setData("mdxJsxTagStack",[]),this.setData("mdxJsxTag",e),this.buffer()}function i(t){if(0===this.getData("mdxJsxTagStack").length)throw new g("Unexpected closing slash `/` in tag, expected an open tag first",{start:t.start,end:t.end},"mdast-util-mdx-jsx:unexpected-closing-slash")}function a(t){if(this.getData("mdxJsxTag").close)throw new g("Unexpected attribute in closing tag, expected the end of the tag",{start:t.start,end:t.end},"mdast-util-mdx-jsx:unexpected-attribute")}function r(t){if(this.getData("mdxJsxTag").close)throw new g("Unexpected self-closing slash `/` in closing tag, expected the end of the tag",{start:t.start,end:t.end},"mdast-util-mdx-jsx:unexpected-self-closing-slash")}function o(){this.getData("mdxJsxTag").close=!0}function s(t){this.getData("mdxJsxTag").name=this.sliceSerialize(t)}function c(t){this.getData("mdxJsxTag").name+="."+this.sliceSerialize(t)}function l(t){this.getData("mdxJsxTag").name+=":"+this.sliceSerialize(t)}function d(t){const e=this.getData("mdxJsxTag");a.call(this,t),e.attributes.push({type:"mdxJsxAttribute",name:"",value:null})}function h(t){const e=this.getData("mdxJsxTag");a.call(this,t),e.attributes.push({type:"mdxJsxExpressionAttribute",value:""}),this.buffer()}function f(t){const e=this.getData("mdxJsxTag"),n=e.attributes[e.attributes.length-1],i=t.estree;n.value=this.resume(),i&&(n.data={estree:i})}function p(t){const e=this.getData("mdxJsxTag");e.attributes[e.attributes.length-1].name=this.sliceSerialize(t)}function b(t){const e=this.getData("mdxJsxTag");e.attributes[e.attributes.length-1].name+=":"+this.sliceSerialize(t)}function m(){const t=this.getData("mdxJsxTag");t.attributes[t.attributes.length-1].value=function(t,e={}){const n="string"==typeof e.additional?e.additional.charCodeAt(0):e.additional,i=[];let a,r,o=0,s=-1,c="";e.position&&("start"in e.position||"indent"in e.position?(r=e.position.indent,a=e.position.start):a=e.position);let l,u=(a?a.line:0)||1,d=(a?a.column:0)||1,h=f();for(o--;++o<=t.length;)if(10===l&&(d=(r?r[s]:0)||1),l=t.charCodeAt(o),38===l){const a=t.charCodeAt(o+1);if(9===a||10===a||12===a||32===a||38===a||60===a||Number.isNaN(a)||n&&a===n){c+=gn(l),d++;continue}const r=o+1;let s,u=r,b=r;if(35===a){b=++u;const e=t.charCodeAt(b);88===e||120===e?(s="hexadecimal",b=++u):s="decimal"}else s="named";let m="",y="",v="";const w="named"===s?hn:"decimal"===s?un:dn;for(b--;++b<=t.length;){const e=t.charCodeAt(b);if(!w(e))break;v+=gn(e),"named"===s&&cn.includes(v)&&(m=v,y=(0,fn.T)(v))}let x=59===t.charCodeAt(b);if(x){b++;const t="named"===s&&(0,fn.T)(v);t&&(m=v,y=t)}let R=1+b-r,_="";if(x||!1!==e.nonTerminated)if(v)if("named"===s){if(x&&!y)g(5,1);else if(m!==v&&(b=u+m.length,R=1+b-u,x=!1),!x){const n=m?1:3;if(e.attribute){const e=t.charCodeAt(b);61===e?(g(n,R),y=""):hn(e)?y="":g(n,R)}else g(n,R)}_=y}else{x||g(2,R);let t=Number.parseInt(v,"hexadecimal"===s?16:10);if(bn(t))g(7,R),_=gn(65533);else if(t in ln)g(6,R),_=ln[t];else{let e="";mn(t)&&g(6,R),t>65535&&(t-=65536,e+=gn(t>>>10|55296),t=56320|1023&t),_=e+gn(t)}}else"named"!==s&&g(4,R);if(_){p(),h=f(),o=b-1,d+=b-r+1,i.push(_);const n=f();n.offset++,e.reference&&e.reference.call(e.referenceContext,_,{start:h,end:n},t.slice(r-1,b)),h=n}else v=t.slice(r-1,b),c+=v,d+=v.length,o=b-1}else 10===l&&(u++,s++,d=0),Number.isNaN(l)?p():(c+=gn(l),d++);return i.join("");function f(){return{line:u,column:d,offset:o+((a?a.offset:0)||0)}}function g(t,n){let i;e.warning&&(i=f(),i.column+=n,i.offset+=n,e.warning.call(e.warningContext,pn[t],i,t))}function p(){c&&(i.push(c),e.text&&e.text.call(e.textContext,c,{start:h,end:f()}),c="")}}(this.resume(),{nonTerminated:!1})}function y(t){const e=this.getData("mdxJsxTag"),n=e.attributes[e.attributes.length-1],i={type:"mdxJsxAttributeValueExpression",value:this.resume()},a=t.estree;a&&(i.data={estree:a}),n.value=i}function v(){this.getData("mdxJsxTag").selfClosing=!0}function w(t){const e=this.getData("mdxJsxTag"),n=this.getData("mdxJsxTagStack"),i=n[n.length-1];if(e.close&&i.name!==e.name)throw new g("Unexpected closing tag `"+_(e)+"`, expected corresponding closing tag for `"+_(i)+"` ("+u(i)+")",{start:t.start,end:t.end},"mdast-util-mdx-jsx:end-tag-mismatch");this.resume(),e.close?n.pop():this.enter({type:"mdxJsxTextTag"===t.type?"mdxJsxTextElement":"mdxJsxFlowElement",name:e.name||null,attributes:e.attributes,children:[]},t,x),e.selfClosing||e.close?this.exit(t,R):n.push(e)}function x(t,e){const n=this.getData("mdxJsxTag"),i=t?" before the end of `"+t.type+"`":"",a=t?{start:t.start,end:t.end}:void 0;throw new g("Expected a closing tag for `"+_(n)+"` ("+u({start:e.start,end:e.end})+")"+i,a,"mdast-util-mdx-jsx:end-tag-mismatch")}function R(t,e){const n=this.getData("mdxJsxTag");throw new g("Expected the closing tag `"+_(n)+"` either after the end of `"+e.type+"` ("+u(e.end)+") or another opening tag after the start of `"+e.type+"` ("+u(e.start)+")",{start:t.start,end:t.end},"mdast-util-mdx-jsx:end-tag-mismatch")}function _(t){return"<"+(t.close?"/":"")+(t.name||"")+">"}}function En(t){const e=t||{},n=e.quote||'"',i=e.quoteSmart||!1,a=e.tightSelfClosing||!1,r=e.printWidth||Number.POSITIVE_INFINITY,o='"'===n?"'":'"';if('"'!==n&&"'"!==n)throw new Error("Cannot serialize attribute values with `"+n+"` for `options.quote`, expected `\"`, or `'`");return s.peek=Tn,{handlers:{mdxJsxFlowElement:s,mdxJsxTextElement:s},unsafe:[{character:"<",inConstruct:["phrasing"]},{atBreak:!0,character:"<"}],fences:!0,resourceLink:!0};function s(t,e,s,c){const l="mdxJsxFlowElement"===t.type,u=!!t.name&&(!t.children||0===t.children.length),d=Sn(Cn(s)),h=(0,_n.j)(c),f=(0,_n.j)(c),g=[],p=(l?d:"")+"<"+(t.name||""),b=s.enter(t.type);if(h.move(p),f.move(p),t.attributes&&t.attributes.length>0){if(!t.name)throw new Error("Cannot serialize fragment w/ attributes");let e=-1;for(;++e<t.attributes.length;){const a=t.attributes[e];let r;if("mdxJsxExpressionAttribute"===a.type)r="{"+(a.value||"")+"}";else{if(!a.name)throw new Error("Cannot serialize attribute w/o name");const t=a.value,e=a.name;let s="";if(null==t);else if("object"==typeof t)s="{"+(t.value||"")+"}";else{const e=i&&(0,sn.w)(t,n)>(0,sn.w)(t,o)?o:n;s=e+wn(t,{subset:[e]})+e}r=e+(s?"=":"")+s}g.push(r)}}let m=!1;const y=g.join(" ");l&&(/\r?\n|\r/.test(y)||h.current().now.column+y.length+(u?a?2:3:1)>r)&&(m=!0);let v=h,w=p;if(m){v=f;let t=-1;for(;++t<g.length;)g[t]=d+" "+g[t];w+=v.move("\n"+g.join("\n")+"\n"+d)}else y&&(w+=v.move(" "+y));return u&&(w+=v.move((a||m?"":" ")+"/")),w+=v.move(">"),t.children&&t.children.length>0&&("mdxJsxTextElement"===t.type?w+=v.move((0,xn.p)(t,s,{...v.current(),before:">",after:"<"})):(v.shift(2),w+=v.move("\n"),w+=v.move(function(t,e,n){const i=e.indexStack,a=t.children,r=e.createTracker(n),o=Sn(Cn(e)),s=[];let c=-1;i.push(-1);for(;++c<a.length;){const n=a[c];i[i.length-1]=c;const l={before:"\n",after:"\n",...r.current()},u=e.handle(n,t,e,l),d="mdxJsxFlowElement"===n.type?u:(0,Rn.Q)(u,(function(t,e,n){return(n?"":o)+t}));s.push(r.move(d)),"list"!==n.type&&(e.bulletLastUsed=void 0),c<a.length-1&&s.push(r.move("\n\n"))}return i.pop(),s.join("")}(t,s,v.current())),w+=v.move("\n"))),u||(w+=v.move((l?d:"")+"</"+(t.name||"")+">")),b(),w}}function Cn(t){let e=0;for(const n of t.stack)"mdxJsxFlowElement"===n&&e++;return e}function Sn(t){return" ".repeat(t)}function Tn(){return"<"}const An={enter:{mdxjsEsm:function(t){this.enter({type:"mdxjsEsm",value:""},t),this.buffer()}},exit:{mdxjsEsm:function(t){const e=this.resume(),n=this.exit(t),i=t.estree;n.value=e,i&&(n.data={estree:i})},mdxjsEsmData:function(t){this.config.enter.data.call(this,t),this.config.exit.data.call(this,t)}}},Dn={handlers:{mdxjsEsm:function(t){return t.value||""}}};function In(t){const e=this.data();function n(t,n){(e[t]?e[t]:e[t]=[]).push(n)}n("micromarkExtensions",function(t){const e=Object.assign({acorn:xt.extend(_e()),acornOptions:{ecmaVersion:2020,sourceType:"module"},addResult:!0},t);return(0,tn.W)([Qe(e),je(e),Ge(e),Ze])}(t)),n("fromMarkdownExtensions",[en,kn(),An]),n("toMarkdownExtensions",function(t){return{extensions:[nn,En(t),Dn]}}(t))}const Ln={};function On(t,e,n){if(function(t){return Boolean(t&&"object"==typeof t)}(t)){if("value"in t)return"html"!==t.type||n?t.value:"";if(e&&"alt"in t&&t.alt)return t.alt;if("children"in t)return Mn(t.children,e,n)}return Array.isArray(t)?Mn(t,e,n):""}function Mn(t,e,n){const i=[];let a=-1;for(;++a<t.length;)i[a]=On(t[a],e,n);return i.join("")}const Nn={tokenize:function(t){const e=t.attempt(this.parser.constructs.contentInitial,(function(n){if(null===n)return void t.consume(n);return t.enter("lineEnding"),t.consume(n),t.exit("lineEnding"),(0,Fe.f)(t,e,"linePrefix")}),(function(e){return t.enter("paragraph"),i(e)}));let n;return e;function i(e){const i=t.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=i),n=i,a(e)}function a(e){return null===e?(t.exit("chunkText"),t.exit("paragraph"),void t.consume(e)):(0,ke.Ch)(e)?(t.consume(e),t.exit("chunkText"),i):(t.consume(e),a)}}};var Bn=n(21905);const Pn={tokenize:function(t){const e=this,n=[];let i,a,r,o=0;return s;function s(i){if(o<n.length){const a=n[o];return e.containerState=a[1],t.attempt(a[0].continuation,c,l)(i)}return l(i)}function c(t){if(o++,e.containerState._closeFlow){e.containerState._closeFlow=void 0,i&&y();const n=e.events.length;let a,r=n;for(;r--;)if("exit"===e.events[r][0]&&"chunkFlow"===e.events[r][1].type){a=e.events[r][1].end;break}m(o);let s=n;for(;s<e.events.length;)e.events[s][1].end=Object.assign({},a),s++;return(0,Bn.d)(e.events,r+1,0,e.events.slice(n)),e.events.length=s,l(t)}return s(t)}function l(a){if(o===n.length){if(!i)return h(a);if(i.currentConstruct&&i.currentConstruct.concrete)return g(a);e.interrupt=Boolean(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return e.containerState={},t.check(Fn,u,d)(a)}function u(t){return i&&y(),m(o),h(t)}function d(t){return e.parser.lazy[e.now().line]=o!==n.length,r=e.now().offset,g(t)}function h(n){return e.containerState={},t.attempt(Fn,f,g)(n)}function f(t){return o++,n.push([e.currentConstruct,e.containerState]),h(t)}function g(n){return null===n?(i&&y(),m(0),void t.consume(n)):(i=i||e.parser.flow(e.now()),t.enter("chunkFlow",{contentType:"flow",previous:a,_tokenizer:i}),p(n))}function p(n){return null===n?(b(t.exit("chunkFlow"),!0),m(0),void t.consume(n)):(0,ke.Ch)(n)?(t.consume(n),b(t.exit("chunkFlow")),o=0,e.interrupt=void 0,s):(t.consume(n),p)}function b(t,n){const s=e.sliceStream(t);if(n&&s.push(null),t.previous=a,a&&(a.next=t),a=t,i.defineSkip(t.start),i.write(s),e.parser.lazy[t.start.line]){let t=i.events.length;for(;t--;)if(i.events[t][1].start.offset<r&&(!i.events[t][1].end||i.events[t][1].end.offset>r))return;const n=e.events.length;let a,s,c=n;for(;c--;)if("exit"===e.events[c][0]&&"chunkFlow"===e.events[c][1].type){if(a){s=e.events[c][1].end;break}a=!0}for(m(o),t=n;t<e.events.length;)e.events[t][1].end=Object.assign({},s),t++;(0,Bn.d)(e.events,c+1,0,e.events.slice(n)),e.events.length=t}}function m(i){let a=n.length;for(;a-- >i;){const i=n[a];e.containerState=i[1],i[0].exit.call(e,t)}n.length=i}function y(){i.write([null]),a=void 0,i=void 0,e.containerState._closeFlow=void 0}}},Fn={tokenize:function(t,e,n){return(0,Fe.f)(t,t.attempt(this.parser.constructs.document,e,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};function jn(t){const e={};let n,i,a,r,o,s,c,l=-1;for(;++l<t.length;){for(;l in e;)l=e[l];if(n=t[l],l&&"chunkFlow"===n[1].type&&"listItemPrefix"===t[l-1][1].type&&(s=n[1]._tokenizer.events,a=0,a<s.length&&"lineEndingBlank"===s[a][1].type&&(a+=2),a<s.length&&"content"===s[a][1].type))for(;++a<s.length&&"content"!==s[a][1].type;)"chunkText"===s[a][1].type&&(s[a][1]._isInFirstContentOfListItem=!0,a++);if("enter"===n[0])n[1].contentType&&(Object.assign(e,$n(t,l)),l=e[l],c=!0);else if(n[1]._container){for(a=l,i=void 0;a--&&(r=t[a],"lineEnding"===r[1].type||"lineEndingBlank"===r[1].type);)"enter"===r[0]&&(i&&(t[i][1].type="lineEndingBlank"),r[1].type="lineEnding",i=a);i&&(n[1].end=Object.assign({},t[i][1].start),o=t.slice(i,l),o.unshift(n),(0,Bn.d)(t,i,l-i+1,o))}}return!c}function $n(t,e){const n=t[e][1],i=t[e][2];let a=e-1;const r=[],o=n._tokenizer||i.parser[n.contentType](n.start),s=o.events,c=[],l={};let u,d,h=-1,f=n,g=0,p=0;const b=[p];for(;f;){for(;t[++a][1]!==f;);r.push(a),f._tokenizer||(u=i.sliceStream(f),f.next||u.push(null),d&&o.defineSkip(f.start),f._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(u),f._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),d=f,f=f.next}for(f=n;++h<s.length;)"exit"===s[h][0]&&"enter"===s[h-1][0]&&s[h][1].type===s[h-1][1].type&&s[h][1].start.line!==s[h][1].end.line&&(p=h+1,b.push(p),f._tokenizer=void 0,f.previous=void 0,f=f.next);for(o.events=[],f?(f._tokenizer=void 0,f.previous=void 0):b.pop(),h=b.length;h--;){const e=s.slice(b[h],b[h+1]),n=r.pop();c.unshift([n,n+e.length-1]),(0,Bn.d)(t,n,2,e)}for(h=-1;++h<c.length;)l[g+c[h][0]]=g+c[h][1],g+=c[h][1]-c[h][0]-1;return l}const zn={tokenize:function(t,e){let n;return function(e){return t.enter("content"),n=t.enter("chunkContent",{contentType:"content"}),i(e)};function i(e){return null===e?a(e):(0,ke.Ch)(e)?t.check(Hn,r,a)(e):(t.consume(e),i)}function a(n){return t.exit("chunkContent"),t.exit("content"),e(n)}function r(e){return t.consume(e),t.exit("chunkContent"),n.next=t.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,i}},resolve:function(t){return jn(t),t}},Hn={tokenize:function(t,e,n){const i=this;return function(e){return t.exit("chunkContent"),t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),(0,Fe.f)(t,a,"linePrefix")};function a(a){if(null===a||(0,ke.Ch)(a))return n(a);const r=i.events[i.events.length-1];return!i.parser.constructs.disable.null.includes("codeIndented")&&r&&"linePrefix"===r[1].type&&r[2].sliceSerialize(r[1],!0).length>=4?e(a):t.interrupt(i.parser.constructs.flow,n,e)(a)}},partial:!0};const Un={tokenize:function(t){const e=this,n=t.attempt(Ke.w,(function(i){if(null===i)return void t.consume(i);return t.enter("lineEndingBlank"),t.consume(i),t.exit("lineEndingBlank"),e.currentConstruct=void 0,n}),t.attempt(this.parser.constructs.flowInitial,i,(0,Fe.f)(t,t.attempt(this.parser.constructs.flow,i,t.attempt(zn,i)),"linePrefix")));return n;function i(i){if(null!==i)return t.enter("lineEnding"),t.consume(i),t.exit("lineEnding"),e.currentConstruct=void 0,n;t.consume(i)}}};const Vn={resolveAll:Gn()},qn=Yn("string"),Wn=Yn("text");function Yn(t){return{tokenize:function(e){const n=this,i=this.parser.constructs[t],a=e.attempt(i,r,o);return r;function r(t){return c(t)?a(t):o(t)}function o(t){if(null!==t)return e.enter("data"),e.consume(t),s;e.consume(t)}function s(t){return c(t)?(e.exit("data"),a(t)):(e.consume(t),s)}function c(t){if(null===t)return!0;const e=i[t];let a=-1;if(e)for(;++a<e.length;){const t=e[a];if(!t.previous||t.previous.call(n,n.previous))return!0}return!1}},resolveAll:Gn("text"===t?Zn:void 0)}}function Gn(t){return function(e,n){let i,a=-1;for(;++a<=e.length;)void 0===i?e[a]&&"data"===e[a][1].type&&(i=a,a++):e[a]&&"data"===e[a][1].type||(a!==i+2&&(e[i][1].end=e[a-1][1].end,e.splice(i+2,a-i-2),a=i+2),i=void 0);return t?t(e,n):e}}function Zn(t,e){let n=0;for(;++n<=t.length;)if((n===t.length||"lineEnding"===t[n][1].type)&&"data"===t[n-1][1].type){const i=t[n-1][1],a=e.sliceStream(i);let r,o=a.length,s=-1,c=0;for(;o--;){const t=a[o];if("string"==typeof t){for(s=t.length;32===t.charCodeAt(s-1);)c++,s--;if(s)break;s=-1}else if(-2===t)r=!0,c++;else if(-1!==t){o++;break}}if(c){const a={type:n===t.length||r||c<2?"lineSuffix":"hardBreakTrailing",start:{line:i.end.line,column:i.end.column-c,offset:i.end.offset-c,_index:i.start._index+o,_bufferIndex:o?s:i.start._bufferIndex+s},end:Object.assign({},i.end)};i.end=Object.assign({},a.start),i.start.offset===i.end.offset?Object.assign(i,a):(t.splice(n,0,["enter",a,e],["exit",a,e]),n+=2)}n++}return t}var Kn=n(63233);function Xn(t,e,n){let i=Object.assign(n?Object.assign({},n):{line:1,column:1,offset:0},{_index:0,_bufferIndex:-1});const a={},r=[];let o=[],s=[],c=!0;const l={consume:function(t){(0,ke.Ch)(t)?(i.line++,i.column=1,i.offset+=-3===t?2:1,w()):-1!==t&&(i.column++,i.offset++);i._bufferIndex<0?i._index++:(i._bufferIndex++,i._bufferIndex===o[i._index].length&&(i._bufferIndex=-1,i._index++));u.previous=t,c=!0},enter:function(t,e){const n=e||{};return n.type=t,n.start=g(),u.events.push(["enter",n,u]),s.push(n),n},exit:function(t){const e=s.pop();return e.end=g(),u.events.push(["exit",e,u]),e},attempt:y((function(t,e){v(t,e.from)})),check:y(m),interrupt:y(m,{interrupt:!0})},u={previous:null,code:null,containerState:{},events:[],parser:t,sliceStream:f,sliceSerialize:function(t,e){return function(t,e){let n=-1;const i=[];let a;for(;++n<t.length;){const r=t[n];let o;if("string"==typeof r)o=r;else switch(r){case-5:o="\r";break;case-4:o="\n";break;case-3:o="\r\n";break;case-2:o=e?" ":"\t";break;case-1:if(!e&&a)continue;o=" ";break;default:o=String.fromCharCode(r)}a=-2===r,i.push(o)}return i.join("")}(f(t),e)},now:g,defineSkip:function(t){a[t.line]=t.column,w()},write:function(t){if(o=(0,Bn.V)(o,t),p(),null!==o[o.length-1])return[];return v(e,0),u.events=(0,Kn.C)(r,u.events,u),u.events}};let d,h=e.tokenize.call(u,l);return e.resolveAll&&r.push(e),u;function f(t){return function(t,e){const n=e.start._index,i=e.start._bufferIndex,a=e.end._index,r=e.end._bufferIndex;let o;if(n===a)o=[t[n].slice(i,r)];else{if(o=t.slice(n,a),i>-1){const t=o[0];"string"==typeof t?o[0]=t.slice(i):o.shift()}r>0&&o.push(t[a].slice(0,r))}return o}(o,t)}function g(){const{line:t,column:e,offset:n,_index:a,_bufferIndex:r}=i;return{line:t,column:e,offset:n,_index:a,_bufferIndex:r}}function p(){let t;for(;i._index<o.length;){const e=o[i._index];if("string"==typeof e)for(t=i._index,i._bufferIndex<0&&(i._bufferIndex=0);i._index===t&&i._bufferIndex<e.length;)b(e.charCodeAt(i._bufferIndex));else b(e)}}function b(t){c=void 0,d=t,h=h(t)}function m(t,e){e.restore()}function y(t,e){return function(n,a,r){let o,d,h,f;return Array.isArray(n)?p(n):"tokenize"in n?p([n]):function(t){return e;function e(e){const n=null!==e&&t[e],i=null!==e&&t.null;return p([...Array.isArray(n)?n:n?[n]:[],...Array.isArray(i)?i:i?[i]:[]])(e)}}(n);function p(t){return o=t,d=0,0===t.length?r:b(t[d])}function b(t){return function(n){f=function(){const t=g(),e=u.previous,n=u.currentConstruct,a=u.events.length,r=Array.from(s);return{restore:o,from:a};function o(){i=t,u.previous=e,u.currentConstruct=n,u.events.length=a,s=r,w()}}(),h=t,t.partial||(u.currentConstruct=t);if(t.name&&u.parser.constructs.disable.null.includes(t.name))return y(n);return t.tokenize.call(e?Object.assign(Object.create(u),e):u,l,m,y)(n)}}function m(e){return c=!0,t(h,f),a}function y(t){return c=!0,f.restore(),++d<o.length?b(o[d]):r}}}function v(t,e){t.resolveAll&&!r.includes(t)&&r.push(t),t.resolve&&(0,Bn.d)(u.events,e,u.events.length-e,t.resolve(u.events.slice(e),u)),t.resolveTo&&(u.events=t.resolveTo(u.events,u))}function w(){i.line in a&&i.column<2&&(i.column=a[i.line],i.offset+=a[i.line]-1)}}const Jn={name:"thematicBreak",tokenize:function(t,e,n){let i,a=0;return function(e){return t.enter("thematicBreak"),function(t){return i=t,r(t)}(e)};function r(r){return r===i?(t.enter("thematicBreakSequence"),o(r)):a>=3&&(null===r||(0,ke.Ch)(r))?(t.exit("thematicBreak"),e(r)):n(r)}function o(e){return e===i?(t.consume(e),a++,o):(t.exit("thematicBreakSequence"),(0,ke.xz)(e)?(0,Fe.f)(t,r,"whitespace")(e):r(e))}}};const Qn={name:"list",tokenize:function(t,e,n){const i=this,a=i.events[i.events.length-1];let r=a&&"linePrefix"===a[1].type?a[2].sliceSerialize(a[1],!0).length:0,o=0;return function(e){const a=i.containerState.type||(42===e||43===e||45===e?"listUnordered":"listOrdered");if("listUnordered"===a?!i.containerState.marker||e===i.containerState.marker:(0,ke.pY)(e)){if(i.containerState.type||(i.containerState.type=a,t.enter(a,{_container:!0})),"listUnordered"===a)return t.enter("listItemPrefix"),42===e||45===e?t.check(Jn,n,c)(e):c(e);if(!i.interrupt||49===e)return t.enter("listItemPrefix"),t.enter("listItemValue"),s(e)}return n(e)};function s(e){return(0,ke.pY)(e)&&++o<10?(t.consume(e),s):(!i.interrupt||o<2)&&(i.containerState.marker?e===i.containerState.marker:41===e||46===e)?(t.exit("listItemValue"),c(e)):n(e)}function c(e){return t.enter("listItemMarker"),t.consume(e),t.exit("listItemMarker"),i.containerState.marker=i.containerState.marker||e,t.check(Ke.w,i.interrupt?n:l,t.attempt(ti,d,u))}function l(t){return i.containerState.initialBlankLine=!0,r++,d(t)}function u(e){return(0,ke.xz)(e)?(t.enter("listItemPrefixWhitespace"),t.consume(e),t.exit("listItemPrefixWhitespace"),d):n(e)}function d(n){return i.containerState.size=r+i.sliceSerialize(t.exit("listItemPrefix"),!0).length,e(n)}},continuation:{tokenize:function(t,e,n){const i=this;return i.containerState._closeFlow=void 0,t.check(Ke.w,(function(n){return i.containerState.furtherBlankLines=i.containerState.furtherBlankLines||i.containerState.initialBlankLine,(0,Fe.f)(t,e,"listItemIndent",i.containerState.size+1)(n)}),(function(n){if(i.containerState.furtherBlankLines||!(0,ke.xz)(n))return i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,a(n);return i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,t.attempt(ei,e,a)(n)}));function a(a){return i.containerState._closeFlow=!0,i.interrupt=void 0,(0,Fe.f)(t,t.attempt(Qn,e,n),"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}},exit:function(t){t.exit(this.containerState.type)}},ti={tokenize:function(t,e,n){const i=this;return(0,Fe.f)(t,(function(t){const a=i.events[i.events.length-1];return!(0,ke.xz)(t)&&a&&"listItemPrefixWhitespace"===a[1].type?e(t):n(t)}),"listItemPrefixWhitespace",i.parser.constructs.disable.null.includes("codeIndented")?void 0:5)},partial:!0},ei={tokenize:function(t,e,n){const i=this;return(0,Fe.f)(t,(function(t){const a=i.events[i.events.length-1];return a&&"listItemIndent"===a[1].type&&a[2].sliceSerialize(a[1],!0).length===i.containerState.size?e(t):n(t)}),"listItemIndent",i.containerState.size+1)},partial:!0};const ni={name:"blockQuote",tokenize:function(t,e,n){const i=this;return function(e){if(62===e){const n=i.containerState;return n.open||(t.enter("blockQuote",{_container:!0}),n.open=!0),t.enter("blockQuotePrefix"),t.enter("blockQuoteMarker"),t.consume(e),t.exit("blockQuoteMarker"),a}return n(e)};function a(n){return(0,ke.xz)(n)?(t.enter("blockQuotePrefixWhitespace"),t.consume(n),t.exit("blockQuotePrefixWhitespace"),t.exit("blockQuotePrefix"),e):(t.exit("blockQuotePrefix"),e(n))}},continuation:{tokenize:function(t,e,n){const i=this;return function(e){if((0,ke.xz)(e))return(0,Fe.f)(t,a,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(e);return a(e)};function a(i){return t.attempt(ni,e,n)(i)}}},exit:function(t){t.exit("blockQuote")}};function ii(t,e,n,i,a,r,o,s,c){const l=c||Number.POSITIVE_INFINITY;let u=0;return function(e){if(60===e)return t.enter(i),t.enter(a),t.enter(r),t.consume(e),t.exit(r),d;if(null===e||32===e||41===e||(0,ke.Av)(e))return n(e);return t.enter(i),t.enter(o),t.enter(s),t.enter("chunkString",{contentType:"string"}),g(e)};function d(n){return 62===n?(t.enter(r),t.consume(n),t.exit(r),t.exit(a),t.exit(i),e):(t.enter(s),t.enter("chunkString",{contentType:"string"}),h(n))}function h(e){return 62===e?(t.exit("chunkString"),t.exit(s),d(e)):null===e||60===e||(0,ke.Ch)(e)?n(e):(t.consume(e),92===e?f:h)}function f(e){return 60===e||62===e||92===e?(t.consume(e),h):h(e)}function g(a){return u||null!==a&&41!==a&&!(0,ke.z3)(a)?u<l&&40===a?(t.consume(a),u++,g):41===a?(t.consume(a),u--,g):null===a||32===a||40===a||(0,ke.Av)(a)?n(a):(t.consume(a),92===a?p:g):(t.exit("chunkString"),t.exit(s),t.exit(o),t.exit(i),e(a))}function p(e){return 40===e||41===e||92===e?(t.consume(e),g):g(e)}}function ai(t,e,n,i,a,r){const o=this;let s,c=0;return function(e){return t.enter(i),t.enter(a),t.consume(e),t.exit(a),t.enter(r),l};function l(d){return c>999||null===d||91===d||93===d&&!s||94===d&&!c&&"_hiddenFootnoteSupport"in o.parser.constructs?n(d):93===d?(t.exit(r),t.enter(a),t.consume(d),t.exit(a),t.exit(i),e):(0,ke.Ch)(d)?(t.enter("lineEnding"),t.consume(d),t.exit("lineEnding"),l):(t.enter("chunkString",{contentType:"string"}),u(d))}function u(e){return null===e||91===e||93===e||(0,ke.Ch)(e)||c++>999?(t.exit("chunkString"),l(e)):(t.consume(e),s||(s=!(0,ke.xz)(e)),92===e?d:u)}function d(e){return 91===e||92===e||93===e?(t.consume(e),c++,u):u(e)}}function ri(t,e,n,i,a,r){let o;return function(e){if(34===e||39===e||40===e)return t.enter(i),t.enter(a),t.consume(e),t.exit(a),o=40===e?41:e,s;return n(e)};function s(n){return n===o?(t.enter(a),t.consume(n),t.exit(a),t.exit(i),e):(t.enter(r),c(n))}function c(e){return e===o?(t.exit(r),s(o)):null===e?n(e):(0,ke.Ch)(e)?(t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),(0,Fe.f)(t,c,"linePrefix")):(t.enter("chunkString",{contentType:"string"}),l(e))}function l(e){return e===o||null===e||(0,ke.Ch)(e)?(t.exit("chunkString"),c(e)):(t.consume(e),92===e?u:l)}function u(e){return e===o||92===e?(t.consume(e),l):l(e)}}function oi(t,e){let n;return function i(a){if((0,ke.Ch)(a))return t.enter("lineEnding"),t.consume(a),t.exit("lineEnding"),n=!0,i;if((0,ke.xz)(a))return(0,Fe.f)(t,i,n?"linePrefix":"lineSuffix")(a);return e(a)}}var si=n(11098);const ci={name:"definition",tokenize:function(t,e,n){const i=this;let a;return function(e){return t.enter("definition"),function(e){return ai.call(i,t,r,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(e)}(e)};function r(e){return a=(0,si.d)(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)),58===e?(t.enter("definitionMarker"),t.consume(e),t.exit("definitionMarker"),o):n(e)}function o(e){return(0,ke.z3)(e)?oi(t,s)(e):s(e)}function s(e){return ii(t,c,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(e)}function c(e){return t.attempt(li,l,l)(e)}function l(e){return(0,ke.xz)(e)?(0,Fe.f)(t,u,"whitespace")(e):u(e)}function u(r){return null===r||(0,ke.Ch)(r)?(t.exit("definition"),i.parser.defined.push(a),e(r)):n(r)}}},li={tokenize:function(t,e,n){return function(e){return(0,ke.z3)(e)?oi(t,i)(e):n(e)};function i(e){return ri(t,a,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(e)}function a(e){return(0,ke.xz)(e)?(0,Fe.f)(t,r,"whitespace")(e):r(e)}function r(t){return null===t||(0,ke.Ch)(t)?e(t):n(t)}},partial:!0};const ui={name:"codeIndented",tokenize:function(t,e,n){const i=this;return function(e){return t.enter("codeIndented"),(0,Fe.f)(t,a,"linePrefix",5)(e)};function a(t){const e=i.events[i.events.length-1];return e&&"linePrefix"===e[1].type&&e[2].sliceSerialize(e[1],!0).length>=4?r(t):n(t)}function r(e){return null===e?s(e):(0,ke.Ch)(e)?t.attempt(di,r,s)(e):(t.enter("codeFlowValue"),o(e))}function o(e){return null===e||(0,ke.Ch)(e)?(t.exit("codeFlowValue"),r(e)):(t.consume(e),o)}function s(n){return t.exit("codeIndented"),e(n)}}},di={tokenize:function(t,e,n){const i=this;return a;function a(e){return i.parser.lazy[i.now().line]?n(e):(0,ke.Ch)(e)?(t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),a):(0,Fe.f)(t,r,"linePrefix",5)(e)}function r(t){const r=i.events[i.events.length-1];return r&&"linePrefix"===r[1].type&&r[2].sliceSerialize(r[1],!0).length>=4?e(t):(0,ke.Ch)(t)?a(t):n(t)}},partial:!0};const hi={name:"headingAtx",tokenize:function(t,e,n){let i=0;return function(e){return t.enter("atxHeading"),function(e){return t.enter("atxHeadingSequence"),a(e)}(e)};function a(e){return 35===e&&i++<6?(t.consume(e),a):null===e||(0,ke.z3)(e)?(t.exit("atxHeadingSequence"),r(e)):n(e)}function r(n){return 35===n?(t.enter("atxHeadingSequence"),o(n)):null===n||(0,ke.Ch)(n)?(t.exit("atxHeading"),e(n)):(0,ke.xz)(n)?(0,Fe.f)(t,r,"whitespace")(n):(t.enter("atxHeadingText"),s(n))}function o(e){return 35===e?(t.consume(e),o):(t.exit("atxHeadingSequence"),r(e))}function s(e){return null===e||35===e||(0,ke.z3)(e)?(t.exit("atxHeadingText"),r(e)):(t.consume(e),s)}},resolve:function(t,e){let n,i,a=t.length-2,r=3;"whitespace"===t[r][1].type&&(r+=2);a-2>r&&"whitespace"===t[a][1].type&&(a-=2);"atxHeadingSequence"===t[a][1].type&&(r===a-1||a-4>r&&"whitespace"===t[a-2][1].type)&&(a-=r+1===a?2:4);a>r&&(n={type:"atxHeadingText",start:t[r][1].start,end:t[a][1].end},i={type:"chunkText",start:t[r][1].start,end:t[a][1].end,contentType:"text"},(0,Bn.d)(t,r,a-r+1,[["enter",n,e],["enter",i,e],["exit",i,e],["exit",n,e]]));return t}};const fi={name:"setextUnderline",tokenize:function(t,e,n){const i=this;let a;return function(e){let o,s=i.events.length;for(;s--;)if("lineEnding"!==i.events[s][1].type&&"linePrefix"!==i.events[s][1].type&&"content"!==i.events[s][1].type){o="paragraph"===i.events[s][1].type;break}if(!i.parser.lazy[i.now().line]&&(i.interrupt||o))return t.enter("setextHeadingLine"),a=e,function(e){return t.enter("setextHeadingLineSequence"),r(e)}(e);return n(e)};function r(e){return e===a?(t.consume(e),r):(t.exit("setextHeadingLineSequence"),(0,ke.xz)(e)?(0,Fe.f)(t,o,"lineSuffix")(e):o(e))}function o(i){return null===i||(0,ke.Ch)(i)?(t.exit("setextHeadingLine"),e(i)):n(i)}},resolveTo:function(t,e){let n,i,a,r=t.length;for(;r--;)if("enter"===t[r][0]){if("content"===t[r][1].type){n=r;break}"paragraph"===t[r][1].type&&(i=r)}else"content"===t[r][1].type&&t.splice(r,1),a||"definition"!==t[r][1].type||(a=r);const o={type:"setextHeading",start:Object.assign({},t[i][1].start),end:Object.assign({},t[t.length-1][1].end)};t[i][1].type="setextHeadingText",a?(t.splice(i,0,["enter",o,e]),t.splice(a+1,0,["exit",t[n][1],e]),t[n][1].end=Object.assign({},t[a][1].end)):t[n][1]=o;return t.push(["exit",o,e]),t}};const gi=["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"],pi=["pre","script","style","textarea"],bi={name:"htmlFlow",tokenize:function(t,e,n){const i=this;let a,r,o,s,c;return function(e){return function(e){return t.enter("htmlFlow"),t.enter("htmlFlowData"),t.consume(e),l}(e)};function l(s){return 33===s?(t.consume(s),u):47===s?(t.consume(s),r=!0,f):63===s?(t.consume(s),a=3,i.interrupt?e:M):(0,ke.jv)(s)?(t.consume(s),o=String.fromCharCode(s),g):n(s)}function u(r){return 45===r?(t.consume(r),a=2,d):91===r?(t.consume(r),a=5,s=0,h):(0,ke.jv)(r)?(t.consume(r),a=4,i.interrupt?e:M):n(r)}function d(a){return 45===a?(t.consume(a),i.interrupt?e:M):n(a)}function h(a){const r="CDATA[";return a===r.charCodeAt(s++)?(t.consume(a),s===r.length?i.interrupt?e:C:h):n(a)}function f(e){return(0,ke.jv)(e)?(t.consume(e),o=String.fromCharCode(e),g):n(e)}function g(s){if(null===s||47===s||62===s||(0,ke.z3)(s)){const c=47===s,l=o.toLowerCase();return c||r||!pi.includes(l)?gi.includes(o.toLowerCase())?(a=6,c?(t.consume(s),p):i.interrupt?e(s):C(s)):(a=7,i.interrupt&&!i.parser.lazy[i.now().line]?n(s):r?b(s):m(s)):(a=1,i.interrupt?e(s):C(s))}return 45===s||(0,ke.H$)(s)?(t.consume(s),o+=String.fromCharCode(s),g):n(s)}function p(a){return 62===a?(t.consume(a),i.interrupt?e:C):n(a)}function b(e){return(0,ke.xz)(e)?(t.consume(e),b):k(e)}function m(e){return 47===e?(t.consume(e),k):58===e||95===e||(0,ke.jv)(e)?(t.consume(e),y):(0,ke.xz)(e)?(t.consume(e),m):k(e)}function y(e){return 45===e||46===e||58===e||95===e||(0,ke.H$)(e)?(t.consume(e),y):v(e)}function v(e){return 61===e?(t.consume(e),w):(0,ke.xz)(e)?(t.consume(e),v):m(e)}function w(e){return null===e||60===e||61===e||62===e||96===e?n(e):34===e||39===e?(t.consume(e),c=e,x):(0,ke.xz)(e)?(t.consume(e),w):R(e)}function x(e){return e===c?(t.consume(e),c=null,_):null===e||(0,ke.Ch)(e)?n(e):(t.consume(e),x)}function R(e){return null===e||34===e||39===e||47===e||60===e||61===e||62===e||96===e||(0,ke.z3)(e)?v(e):(t.consume(e),R)}function _(t){return 47===t||62===t||(0,ke.xz)(t)?m(t):n(t)}function k(e){return 62===e?(t.consume(e),E):n(e)}function E(e){return null===e||(0,ke.Ch)(e)?C(e):(0,ke.xz)(e)?(t.consume(e),E):n(e)}function C(e){return 45===e&&2===a?(t.consume(e),D):60===e&&1===a?(t.consume(e),I):62===e&&4===a?(t.consume(e),N):63===e&&3===a?(t.consume(e),M):93===e&&5===a?(t.consume(e),O):!(0,ke.Ch)(e)||6!==a&&7!==a?null===e||(0,ke.Ch)(e)?(t.exit("htmlFlowData"),S(e)):(t.consume(e),C):(t.exit("htmlFlowData"),t.check(mi,B,S)(e))}function S(e){return t.check(yi,T,B)(e)}function T(e){return t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),A}function A(e){return null===e||(0,ke.Ch)(e)?S(e):(t.enter("htmlFlowData"),C(e))}function D(e){return 45===e?(t.consume(e),M):C(e)}function I(e){return 47===e?(t.consume(e),o="",L):C(e)}function L(e){if(62===e){const n=o.toLowerCase();return pi.includes(n)?(t.consume(e),N):C(e)}return(0,ke.jv)(e)&&o.length<8?(t.consume(e),o+=String.fromCharCode(e),L):C(e)}function O(e){return 93===e?(t.consume(e),M):C(e)}function M(e){return 62===e?(t.consume(e),N):45===e&&2===a?(t.consume(e),M):C(e)}function N(e){return null===e||(0,ke.Ch)(e)?(t.exit("htmlFlowData"),B(e)):(t.consume(e),N)}function B(n){return t.exit("htmlFlow"),e(n)}},resolveTo:function(t){let e=t.length;for(;e--&&("enter"!==t[e][0]||"htmlFlow"!==t[e][1].type););e>1&&"linePrefix"===t[e-2][1].type&&(t[e][1].start=t[e-2][1].start,t[e+1][1].start=t[e-2][1].start,t.splice(e-2,2));return t},concrete:!0},mi={tokenize:function(t,e,n){return function(i){return t.enter("lineEnding"),t.consume(i),t.exit("lineEnding"),t.attempt(Ke.w,e,n)}},partial:!0},yi={tokenize:function(t,e,n){const i=this;return function(e){if((0,ke.Ch)(e))return t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),a;return n(e)};function a(t){return i.parser.lazy[i.now().line]?n(t):e(t)}},partial:!0};const vi={tokenize:function(t,e,n){const i=this;return function(e){if(null===e)return n(e);return t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),a};function a(t){return i.parser.lazy[i.now().line]?n(t):e(t)}},partial:!0},wi={name:"codeFenced",tokenize:function(t,e,n){const i=this,a={tokenize:function(t,e,n){let a=0;return o;function o(e){return t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),c}function c(e){return t.enter("codeFencedFence"),(0,ke.xz)(e)?(0,Fe.f)(t,l,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(e):l(e)}function l(e){return e===r?(t.enter("codeFencedFenceSequence"),u(e)):n(e)}function u(e){return e===r?(a++,t.consume(e),u):a>=s?(t.exit("codeFencedFenceSequence"),(0,ke.xz)(e)?(0,Fe.f)(t,d,"whitespace")(e):d(e)):n(e)}function d(i){return null===i||(0,ke.Ch)(i)?(t.exit("codeFencedFence"),e(i)):n(i)}},partial:!0};let r,o=0,s=0;return function(e){return function(e){const n=i.events[i.events.length-1];return o=n&&"linePrefix"===n[1].type?n[2].sliceSerialize(n[1],!0).length:0,r=e,t.enter("codeFenced"),t.enter("codeFencedFence"),t.enter("codeFencedFenceSequence"),c(e)}(e)};function c(e){return e===r?(s++,t.consume(e),c):s<3?n(e):(t.exit("codeFencedFenceSequence"),(0,ke.xz)(e)?(0,Fe.f)(t,l,"whitespace")(e):l(e))}function l(n){return null===n||(0,ke.Ch)(n)?(t.exit("codeFencedFence"),i.interrupt?e(n):t.check(vi,f,y)(n)):(t.enter("codeFencedFenceInfo"),t.enter("chunkString",{contentType:"string"}),u(n))}function u(e){return null===e||(0,ke.Ch)(e)?(t.exit("chunkString"),t.exit("codeFencedFenceInfo"),l(e)):(0,ke.xz)(e)?(t.exit("chunkString"),t.exit("codeFencedFenceInfo"),(0,Fe.f)(t,d,"whitespace")(e)):96===e&&e===r?n(e):(t.consume(e),u)}function d(e){return null===e||(0,ke.Ch)(e)?l(e):(t.enter("codeFencedFenceMeta"),t.enter("chunkString",{contentType:"string"}),h(e))}function h(e){return null===e||(0,ke.Ch)(e)?(t.exit("chunkString"),t.exit("codeFencedFenceMeta"),l(e)):96===e&&e===r?n(e):(t.consume(e),h)}function f(e){return t.attempt(a,y,g)(e)}function g(e){return t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),p}function p(e){return o>0&&(0,ke.xz)(e)?(0,Fe.f)(t,b,"linePrefix",o+1)(e):b(e)}function b(e){return null===e||(0,ke.Ch)(e)?t.check(vi,f,y)(e):(t.enter("codeFlowValue"),m(e))}function m(e){return null===e||(0,ke.Ch)(e)?(t.exit("codeFlowValue"),b(e)):(t.consume(e),m)}function y(n){return t.exit("codeFenced"),e(n)}},concrete:!0};const xi={name:"characterReference",tokenize:function(t,e,n){const i=this;let a,r,o=0;return function(e){return t.enter("characterReference"),t.enter("characterReferenceMarker"),t.consume(e),t.exit("characterReferenceMarker"),s};function s(e){return 35===e?(t.enter("characterReferenceMarkerNumeric"),t.consume(e),t.exit("characterReferenceMarkerNumeric"),c):(t.enter("characterReferenceValue"),a=31,r=ke.H$,l(e))}function c(e){return 88===e||120===e?(t.enter("characterReferenceMarkerHexadecimal"),t.consume(e),t.exit("characterReferenceMarkerHexadecimal"),t.enter("characterReferenceValue"),a=6,r=ke.AF,l):(t.enter("characterReferenceValue"),a=7,r=ke.pY,l(e))}function l(s){if(59===s&&o){const a=t.exit("characterReferenceValue");return r!==ke.H$||(0,fn.T)(i.sliceSerialize(a))?(t.enter("characterReferenceMarker"),t.consume(s),t.exit("characterReferenceMarker"),t.exit("characterReference"),e):n(s)}return r(s)&&o++<a?(t.consume(s),l):n(s)}}};const Ri={name:"characterEscape",tokenize:function(t,e,n){return function(e){return t.enter("characterEscape"),t.enter("escapeMarker"),t.consume(e),t.exit("escapeMarker"),i};function i(i){return(0,ke.sR)(i)?(t.enter("characterEscapeValue"),t.consume(i),t.exit("characterEscapeValue"),t.exit("characterEscape"),e):n(i)}}};const _i={name:"lineEnding",tokenize:function(t,e){return function(n){return t.enter("lineEnding"),t.consume(n),t.exit("lineEnding"),(0,Fe.f)(t,e,"linePrefix")}}};const ki={name:"labelEnd",tokenize:function(t,e,n){const i=this;let a,r,o=i.events.length;for(;o--;)if(("labelImage"===i.events[o][1].type||"labelLink"===i.events[o][1].type)&&!i.events[o][1]._balanced){a=i.events[o][1];break}return function(e){if(!a)return n(e);if(a._inactive)return u(e);return r=i.parser.defined.includes((0,si.d)(i.sliceSerialize({start:a.end,end:i.now()}))),t.enter("labelEnd"),t.enter("labelMarker"),t.consume(e),t.exit("labelMarker"),t.exit("labelEnd"),s};function s(e){return 40===e?t.attempt(Ei,l,r?l:u)(e):91===e?t.attempt(Ci,l,r?c:u)(e):r?l(e):u(e)}function c(e){return t.attempt(Si,l,u)(e)}function l(t){return e(t)}function u(t){return a._balanced=!0,n(t)}},resolveTo:function(t,e){let n,i,a,r,o=t.length,s=0;for(;o--;)if(n=t[o][1],i){if("link"===n.type||"labelLink"===n.type&&n._inactive)break;"enter"===t[o][0]&&"labelLink"===n.type&&(n._inactive=!0)}else if(a){if("enter"===t[o][0]&&("labelImage"===n.type||"labelLink"===n.type)&&!n._balanced&&(i=o,"labelLink"!==n.type)){s=2;break}}else"labelEnd"===n.type&&(a=o);const c={type:"labelLink"===t[i][1].type?"link":"image",start:Object.assign({},t[i][1].start),end:Object.assign({},t[t.length-1][1].end)},l={type:"label",start:Object.assign({},t[i][1].start),end:Object.assign({},t[a][1].end)},u={type:"labelText",start:Object.assign({},t[i+s+2][1].end),end:Object.assign({},t[a-2][1].start)};return r=[["enter",c,e],["enter",l,e]],r=(0,Bn.V)(r,t.slice(i+1,i+s+3)),r=(0,Bn.V)(r,[["enter",u,e]]),r=(0,Bn.V)(r,(0,Kn.C)(e.parser.constructs.insideSpan.null,t.slice(i+s+4,a-3),e)),r=(0,Bn.V)(r,[["exit",u,e],t[a-2],t[a-1],["exit",l,e]]),r=(0,Bn.V)(r,t.slice(a+1)),r=(0,Bn.V)(r,[["exit",c,e]]),(0,Bn.d)(t,i,t.length,r),t},resolveAll:function(t){let e=-1;for(;++e<t.length;){const n=t[e][1];"labelImage"!==n.type&&"labelLink"!==n.type&&"labelEnd"!==n.type||(t.splice(e+1,"labelImage"===n.type?4:2),n.type="data",e++)}return t}},Ei={tokenize:function(t,e,n){return function(e){return t.enter("resource"),t.enter("resourceMarker"),t.consume(e),t.exit("resourceMarker"),i};function i(e){return(0,ke.z3)(e)?oi(t,a)(e):a(e)}function a(e){return 41===e?l(e):ii(t,r,o,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(e)}function r(e){return(0,ke.z3)(e)?oi(t,s)(e):l(e)}function o(t){return n(t)}function s(e){return 34===e||39===e||40===e?ri(t,c,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(e):l(e)}function c(e){return(0,ke.z3)(e)?oi(t,l)(e):l(e)}function l(i){return 41===i?(t.enter("resourceMarker"),t.consume(i),t.exit("resourceMarker"),t.exit("resource"),e):n(i)}}},Ci={tokenize:function(t,e,n){const i=this;return function(e){return ai.call(i,t,a,r,"reference","referenceMarker","referenceString")(e)};function a(t){return i.parser.defined.includes((0,si.d)(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)))?e(t):n(t)}function r(t){return n(t)}}},Si={tokenize:function(t,e,n){return function(e){return t.enter("reference"),t.enter("referenceMarker"),t.consume(e),t.exit("referenceMarker"),i};function i(i){return 93===i?(t.enter("referenceMarker"),t.consume(i),t.exit("referenceMarker"),t.exit("reference"),e):n(i)}}};const Ti={name:"labelStartImage",tokenize:function(t,e,n){const i=this;return function(e){return t.enter("labelImage"),t.enter("labelImageMarker"),t.consume(e),t.exit("labelImageMarker"),a};function a(e){return 91===e?(t.enter("labelMarker"),t.consume(e),t.exit("labelMarker"),t.exit("labelImage"),r):n(e)}function r(t){return 94===t&&"_hiddenFootnoteSupport"in i.parser.constructs?n(t):e(t)}},resolveAll:ki.resolveAll};var Ai=n(62987);const Di={name:"attention",tokenize:function(t,e){const n=this.parser.constructs.attentionMarkers.null,i=this.previous,a=(0,Ai.r)(i);let r;return function(e){return r=e,t.enter("attentionSequence"),o(e)};function o(s){if(s===r)return t.consume(s),o;const c=t.exit("attentionSequence"),l=(0,Ai.r)(s),u=!l||2===l&&a||n.includes(s),d=!a||2===a&&l||n.includes(i);return c._open=Boolean(42===r?u:u&&(a||!d)),c._close=Boolean(42===r?d:d&&(l||!u)),e(s)}},resolveAll:function(t,e){let n,i,a,r,o,s,c,l,u=-1;for(;++u<t.length;)if("enter"===t[u][0]&&"attentionSequence"===t[u][1].type&&t[u][1]._close)for(n=u;n--;)if("exit"===t[n][0]&&"attentionSequence"===t[n][1].type&&t[n][1]._open&&e.sliceSerialize(t[n][1]).charCodeAt(0)===e.sliceSerialize(t[u][1]).charCodeAt(0)){if((t[n][1]._close||t[u][1]._open)&&(t[u][1].end.offset-t[u][1].start.offset)%3&&!((t[n][1].end.offset-t[n][1].start.offset+t[u][1].end.offset-t[u][1].start.offset)%3))continue;s=t[n][1].end.offset-t[n][1].start.offset>1&&t[u][1].end.offset-t[u][1].start.offset>1?2:1;const d=Object.assign({},t[n][1].end),h=Object.assign({},t[u][1].start);Ii(d,-s),Ii(h,s),r={type:s>1?"strongSequence":"emphasisSequence",start:d,end:Object.assign({},t[n][1].end)},o={type:s>1?"strongSequence":"emphasisSequence",start:Object.assign({},t[u][1].start),end:h},a={type:s>1?"strongText":"emphasisText",start:Object.assign({},t[n][1].end),end:Object.assign({},t[u][1].start)},i={type:s>1?"strong":"emphasis",start:Object.assign({},r.start),end:Object.assign({},o.end)},t[n][1].end=Object.assign({},r.start),t[u][1].start=Object.assign({},o.end),c=[],t[n][1].end.offset-t[n][1].start.offset&&(c=(0,Bn.V)(c,[["enter",t[n][1],e],["exit",t[n][1],e]])),c=(0,Bn.V)(c,[["enter",i,e],["enter",r,e],["exit",r,e],["enter",a,e]]),c=(0,Bn.V)(c,(0,Kn.C)(e.parser.constructs.insideSpan.null,t.slice(n+1,u),e)),c=(0,Bn.V)(c,[["exit",a,e],["enter",o,e],["exit",o,e],["exit",i,e]]),t[u][1].end.offset-t[u][1].start.offset?(l=2,c=(0,Bn.V)(c,[["enter",t[u][1],e],["exit",t[u][1],e]])):l=0,(0,Bn.d)(t,n-1,u-n+3,c),u=n+c.length-l-2;break}u=-1;for(;++u<t.length;)"attentionSequence"===t[u][1].type&&(t[u][1].type="data");return t}};function Ii(t,e){t.column+=e,t.offset+=e,t._bufferIndex+=e}const Li={name:"autolink",tokenize:function(t,e,n){let i=0;return function(e){return t.enter("autolink"),t.enter("autolinkMarker"),t.consume(e),t.exit("autolinkMarker"),t.enter("autolinkProtocol"),a};function a(e){return(0,ke.jv)(e)?(t.consume(e),r):c(e)}function r(t){return 43===t||45===t||46===t||(0,ke.H$)(t)?(i=1,o(t)):c(t)}function o(e){return 58===e?(t.consume(e),i=0,s):(43===e||45===e||46===e||(0,ke.H$)(e))&&i++<32?(t.consume(e),o):(i=0,c(e))}function s(i){return 62===i?(t.exit("autolinkProtocol"),t.enter("autolinkMarker"),t.consume(i),t.exit("autolinkMarker"),t.exit("autolink"),e):null===i||32===i||60===i||(0,ke.Av)(i)?n(i):(t.consume(i),s)}function c(e){return 64===e?(t.consume(e),l):(0,ke.n9)(e)?(t.consume(e),c):n(e)}function l(t){return(0,ke.H$)(t)?u(t):n(t)}function u(n){return 46===n?(t.consume(n),i=0,l):62===n?(t.exit("autolinkProtocol").type="autolinkEmail",t.enter("autolinkMarker"),t.consume(n),t.exit("autolinkMarker"),t.exit("autolink"),e):d(n)}function d(e){if((45===e||(0,ke.H$)(e))&&i++<63){const n=45===e?d:u;return t.consume(e),n}return n(e)}}};const Oi={name:"htmlText",tokenize:function(t,e,n){const i=this;let a,r,o;return function(e){return t.enter("htmlText"),t.enter("htmlTextData"),t.consume(e),s};function s(e){return 33===e?(t.consume(e),c):47===e?(t.consume(e),w):63===e?(t.consume(e),y):(0,ke.jv)(e)?(t.consume(e),_):n(e)}function c(e){return 45===e?(t.consume(e),l):91===e?(t.consume(e),r=0,f):(0,ke.jv)(e)?(t.consume(e),m):n(e)}function l(e){return 45===e?(t.consume(e),h):n(e)}function u(e){return null===e?n(e):45===e?(t.consume(e),d):(0,ke.Ch)(e)?(o=u,L(e)):(t.consume(e),u)}function d(e){return 45===e?(t.consume(e),h):u(e)}function h(t){return 62===t?I(t):45===t?d(t):u(t)}function f(e){const i="CDATA[";return e===i.charCodeAt(r++)?(t.consume(e),r===i.length?g:f):n(e)}function g(e){return null===e?n(e):93===e?(t.consume(e),p):(0,ke.Ch)(e)?(o=g,L(e)):(t.consume(e),g)}function p(e){return 93===e?(t.consume(e),b):g(e)}function b(e){return 62===e?I(e):93===e?(t.consume(e),b):g(e)}function m(e){return null===e||62===e?I(e):(0,ke.Ch)(e)?(o=m,L(e)):(t.consume(e),m)}function y(e){return null===e?n(e):63===e?(t.consume(e),v):(0,ke.Ch)(e)?(o=y,L(e)):(t.consume(e),y)}function v(t){return 62===t?I(t):y(t)}function w(e){return(0,ke.jv)(e)?(t.consume(e),x):n(e)}function x(e){return 45===e||(0,ke.H$)(e)?(t.consume(e),x):R(e)}function R(e){return(0,ke.Ch)(e)?(o=R,L(e)):(0,ke.xz)(e)?(t.consume(e),R):I(e)}function _(e){return 45===e||(0,ke.H$)(e)?(t.consume(e),_):47===e||62===e||(0,ke.z3)(e)?k(e):n(e)}function k(e){return 47===e?(t.consume(e),I):58===e||95===e||(0,ke.jv)(e)?(t.consume(e),E):(0,ke.Ch)(e)?(o=k,L(e)):(0,ke.xz)(e)?(t.consume(e),k):I(e)}function E(e){return 45===e||46===e||58===e||95===e||(0,ke.H$)(e)?(t.consume(e),E):C(e)}function C(e){return 61===e?(t.consume(e),S):(0,ke.Ch)(e)?(o=C,L(e)):(0,ke.xz)(e)?(t.consume(e),C):k(e)}function S(e){return null===e||60===e||61===e||62===e||96===e?n(e):34===e||39===e?(t.consume(e),a=e,T):(0,ke.Ch)(e)?(o=S,L(e)):(0,ke.xz)(e)?(t.consume(e),S):(t.consume(e),A)}function T(e){return e===a?(t.consume(e),a=void 0,D):null===e?n(e):(0,ke.Ch)(e)?(o=T,L(e)):(t.consume(e),T)}function A(e){return null===e||34===e||39===e||60===e||61===e||96===e?n(e):47===e||62===e||(0,ke.z3)(e)?k(e):(t.consume(e),A)}function D(t){return 47===t||62===t||(0,ke.z3)(t)?k(t):n(t)}function I(i){return 62===i?(t.consume(i),t.exit("htmlTextData"),t.exit("htmlText"),e):n(i)}function L(e){return t.exit("htmlTextData"),t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),O}function O(e){return(0,ke.xz)(e)?(0,Fe.f)(t,M,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(e):M(e)}function M(e){return t.enter("htmlTextData"),o(e)}}};const Mi={name:"labelStartLink",tokenize:function(t,e,n){const i=this;return function(e){return t.enter("labelLink"),t.enter("labelMarker"),t.consume(e),t.exit("labelMarker"),t.exit("labelLink"),a};function a(t){return 94===t&&"_hiddenFootnoteSupport"in i.parser.constructs?n(t):e(t)}},resolveAll:ki.resolveAll};const Ni={name:"hardBreakEscape",tokenize:function(t,e,n){return function(e){return t.enter("hardBreakEscape"),t.consume(e),i};function i(i){return(0,ke.Ch)(i)?(t.exit("hardBreakEscape"),e(i)):n(i)}}};const Bi={name:"codeText",tokenize:function(t,e,n){let i,a,r=0;return function(e){return t.enter("codeText"),t.enter("codeTextSequence"),o(e)};function o(e){return 96===e?(t.consume(e),r++,o):(t.exit("codeTextSequence"),s(e))}function s(e){return null===e?n(e):32===e?(t.enter("space"),t.consume(e),t.exit("space"),s):96===e?(a=t.enter("codeTextSequence"),i=0,l(e)):(0,ke.Ch)(e)?(t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),s):(t.enter("codeTextData"),c(e))}function c(e){return null===e||32===e||96===e||(0,ke.Ch)(e)?(t.exit("codeTextData"),s(e)):(t.consume(e),c)}function l(n){return 96===n?(t.consume(n),i++,l):i===r?(t.exit("codeTextSequence"),t.exit("codeText"),e(n)):(a.type="codeTextData",c(n))}},resolve:function(t){let e,n,i=t.length-4,a=3;if(!("lineEnding"!==t[a][1].type&&"space"!==t[a][1].type||"lineEnding"!==t[i][1].type&&"space"!==t[i][1].type))for(e=a;++e<i;)if("codeTextData"===t[e][1].type){t[a][1].type="codeTextPadding",t[i][1].type="codeTextPadding",a+=2,i-=2;break}e=a-1,i++;for(;++e<=i;)void 0===n?e!==i&&"lineEnding"!==t[e][1].type&&(n=e):e!==i&&"lineEnding"!==t[e][1].type||(t[n][1].type="codeTextData",e!==n+2&&(t[n][1].end=t[e-1][1].end,t.splice(n+2,e-n-2),i-=e-n-2,e=n+2),n=void 0);return t},previous:function(t){return 96!==t||"characterEscape"===this.events[this.events.length-1][1].type}};const Pi={42:Qn,43:Qn,45:Qn,48:Qn,49:Qn,50:Qn,51:Qn,52:Qn,53:Qn,54:Qn,55:Qn,56:Qn,57:Qn,62:ni},Fi={91:ci},ji={[-2]:ui,[-1]:ui,32:ui},$i={35:hi,42:Jn,45:[fi,Jn],60:bi,61:fi,95:Jn,96:wi,126:wi},zi={38:xi,92:Ri},Hi={[-5]:_i,[-4]:_i,[-3]:_i,33:Ti,38:xi,42:Di,60:[Li,Oi],91:Mi,92:[Ni,Ri],93:ki,95:Di,96:Bi},Ui={null:[Di,Vn]},Vi={null:[42,95]},qi={null:[]};const Wi=/[\0\t\n\r]/g;var Yi=n(80889),Gi=n(47881);const Zi={}.hasOwnProperty,Ki=function(t,e,n){return"string"!=typeof e&&(n=e,e=void 0),function(t){const e={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:s(it),autolinkProtocol:T,autolinkEmail:T,atxHeading:s(Q),blockQuote:s(G),characterEscape:T,characterReference:T,codeFenced:s(Z),codeFencedFenceInfo:c,codeFencedFenceMeta:c,codeIndented:s(Z,c),codeText:s(K,c),codeTextData:T,data:T,codeFlowValue:T,definition:s(X),definitionDestinationString:c,definitionLabelString:c,definitionTitleString:c,emphasis:s(J),hardBreakEscape:s(tt),hardBreakTrailing:s(tt),htmlFlow:s(et,c),htmlFlowData:T,htmlText:s(et,c),htmlTextData:T,image:s(nt),label:c,link:s(it),listItem:s(rt),listItemValue:p,listOrdered:s(at,g),listUnordered:s(at),paragraph:s(ot),reference:H,referenceString:c,resourceDestinationString:c,resourceTitleString:c,setextHeading:s(Q),strong:s(st),thematicBreak:s(lt)},exit:{atxHeading:d(),atxHeadingSequence:k,autolink:d(),autolinkEmail:Y,autolinkProtocol:W,blockQuote:d(),characterEscapeValue:A,characterReferenceMarkerHexadecimal:V,characterReferenceMarkerNumeric:V,characterReferenceValue:q,codeFenced:d(v),codeFencedFence:y,codeFencedFenceInfo:b,codeFencedFenceMeta:m,codeFlowValue:A,codeIndented:d(w),codeText:d(M),codeTextData:A,data:A,definition:d(),definitionDestinationString:_,definitionLabelString:x,definitionTitleString:R,emphasis:d(),hardBreakEscape:d(I),hardBreakTrailing:d(I),htmlFlow:d(L),htmlFlowData:A,htmlText:d(O),htmlTextData:A,image:d(B),label:F,labelText:P,lineEnding:D,link:d(N),listItem:d(),listOrdered:d(),listUnordered:d(),paragraph:d(),referenceString:U,resourceDestinationString:j,resourceTitleString:$,resource:z,setextHeading:d(S),setextHeadingLineSequence:C,setextHeadingText:E,strong:d(),thematicBreak:d()}};Ji(e,(t||{}).mdastExtensions||[]);const n={};return i;function i(t){let n={type:"root",children:[]};const i={stack:[n],tokenStack:[],config:e,enter:l,exit:h,buffer:c,resume:f,setData:r,getData:o},s=[];let u=-1;for(;++u<t.length;)if("listOrdered"===t[u][1].type||"listUnordered"===t[u][1].type)if("enter"===t[u][0])s.push(u);else{u=a(t,s.pop(),u)}for(u=-1;++u<t.length;){const n=e[t[u][0]];Zi.call(n,t[u][1].type)&&n[t[u][1].type].call(Object.assign({sliceSerialize:t[u][2].sliceSerialize},i),t[u][1])}if(i.tokenStack.length>0){const t=i.tokenStack[i.tokenStack.length-1];(t[1]||ta).call(i,void 0,t[0])}for(n.position={start:Xi(t.length>0?t[0][1].start:{line:1,column:1,offset:0}),end:Xi(t.length>0?t[t.length-2][1].end:{line:1,column:1,offset:0})},u=-1;++u<e.transforms.length;)n=e.transforms[u](n)||n;return n}function a(t,e,n){let i,a,r,o,s=e-1,c=-1,l=!1;for(;++s<=n;){const e=t[s];if("listUnordered"===e[1].type||"listOrdered"===e[1].type||"blockQuote"===e[1].type?("enter"===e[0]?c++:c--,o=void 0):"lineEndingBlank"===e[1].type?"enter"===e[0]&&(!i||o||c||r||(r=s),o=void 0):"linePrefix"===e[1].type||"listItemValue"===e[1].type||"listItemMarker"===e[1].type||"listItemPrefix"===e[1].type||"listItemPrefixWhitespace"===e[1].type||(o=void 0),!c&&"enter"===e[0]&&"listItemPrefix"===e[1].type||-1===c&&"exit"===e[0]&&("listUnordered"===e[1].type||"listOrdered"===e[1].type)){if(i){let o=s;for(a=void 0;o--;){const e=t[o];if("lineEnding"===e[1].type||"lineEndingBlank"===e[1].type){if("exit"===e[0])continue;a&&(t[a][1].type="lineEndingBlank",l=!0),e[1].type="lineEnding",a=o}else if("linePrefix"!==e[1].type&&"blockQuotePrefix"!==e[1].type&&"blockQuotePrefixWhitespace"!==e[1].type&&"blockQuoteMarker"!==e[1].type&&"listItemIndent"!==e[1].type)break}r&&(!a||r<a)&&(i._spread=!0),i.end=Object.assign({},a?t[a][1].start:e[1].end),t.splice(a||s,0,["exit",i,e[2]]),s++,n++}"listItemPrefix"===e[1].type&&(i={type:"listItem",_spread:!1,start:Object.assign({},e[1].start),end:void 0},t.splice(s,0,["enter",i,e[2]]),s++,n++,r=void 0,o=!0)}}return t[e][1]._spread=l,n}function r(t,e){n[t]=e}function o(t){return n[t]}function s(t,e){return n;function n(n){l.call(this,t(n),n),e&&e.call(this,n)}}function c(){this.stack.push({type:"fragment",children:[]})}function l(t,e,n){return this.stack[this.stack.length-1].children.push(t),this.stack.push(t),this.tokenStack.push([e,n]),t.position={start:Xi(e.start)},t}function d(t){return e;function e(e){t&&t.call(this,e),h.call(this,e)}}function h(t,e){const n=this.stack.pop(),i=this.tokenStack.pop();if(!i)throw new Error("Cannot close `"+t.type+"` ("+u({start:t.start,end:t.end})+"): it\u2019s not open");if(i[0].type!==t.type)if(e)e.call(this,t,i[0]);else{(i[1]||ta).call(this,t,i[0])}return n.position.end=Xi(t.end),n}function f(){return function(t,e){const n=e||Ln;return On(t,"boolean"!=typeof n.includeImageAlt||n.includeImageAlt,"boolean"!=typeof n.includeHtml||n.includeHtml)}(this.stack.pop())}function g(){r("expectingFirstListItemValue",!0)}function p(t){if(o("expectingFirstListItemValue")){this.stack[this.stack.length-2].start=Number.parseInt(this.sliceSerialize(t),10),r("expectingFirstListItemValue")}}function b(){const t=this.resume();this.stack[this.stack.length-1].lang=t}function m(){const t=this.resume();this.stack[this.stack.length-1].meta=t}function y(){o("flowCodeInside")||(this.buffer(),r("flowCodeInside",!0))}function v(){const t=this.resume();this.stack[this.stack.length-1].value=t.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),r("flowCodeInside")}function w(){const t=this.resume();this.stack[this.stack.length-1].value=t.replace(/(\r?\n|\r)$/g,"")}function x(t){const e=this.resume(),n=this.stack[this.stack.length-1];n.label=e,n.identifier=(0,si.d)(this.sliceSerialize(t)).toLowerCase()}function R(){const t=this.resume();this.stack[this.stack.length-1].title=t}function _(){const t=this.resume();this.stack[this.stack.length-1].url=t}function k(t){const e=this.stack[this.stack.length-1];if(!e.depth){const n=this.sliceSerialize(t).length;e.depth=n}}function E(){r("setextHeadingSlurpLineEnding",!0)}function C(t){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(t).charCodeAt(0)?1:2}function S(){r("setextHeadingSlurpLineEnding")}function T(t){const e=this.stack[this.stack.length-1];let n=e.children[e.children.length-1];n&&"text"===n.type||(n=ct(),n.position={start:Xi(t.start)},e.children.push(n)),this.stack.push(n)}function A(t){const e=this.stack.pop();e.value+=this.sliceSerialize(t),e.position.end=Xi(t.end)}function D(t){const n=this.stack[this.stack.length-1];if(o("atHardBreak")){return n.children[n.children.length-1].position.end=Xi(t.end),void r("atHardBreak")}!o("setextHeadingSlurpLineEnding")&&e.canContainEols.includes(n.type)&&(T.call(this,t),A.call(this,t))}function I(){r("atHardBreak",!0)}function L(){const t=this.resume();this.stack[this.stack.length-1].value=t}function O(){const t=this.resume();this.stack[this.stack.length-1].value=t}function M(){const t=this.resume();this.stack[this.stack.length-1].value=t}function N(){const t=this.stack[this.stack.length-1];if(o("inReference")){const e=o("referenceType")||"shortcut";t.type+="Reference",t.referenceType=e,delete t.url,delete t.title}else delete t.identifier,delete t.label;r("referenceType")}function B(){const t=this.stack[this.stack.length-1];if(o("inReference")){const e=o("referenceType")||"shortcut";t.type+="Reference",t.referenceType=e,delete t.url,delete t.title}else delete t.identifier,delete t.label;r("referenceType")}function P(t){const e=this.sliceSerialize(t),n=this.stack[this.stack.length-2];n.label=(0,Gi.v)(e),n.identifier=(0,si.d)(e).toLowerCase()}function F(){const t=this.stack[this.stack.length-1],e=this.resume(),n=this.stack[this.stack.length-1];if(r("inReference",!0),"link"===n.type){const e=t.children;n.children=e}else n.alt=e}function j(){const t=this.resume();this.stack[this.stack.length-1].url=t}function $(){const t=this.resume();this.stack[this.stack.length-1].title=t}function z(){r("inReference")}function H(){r("referenceType","collapsed")}function U(t){const e=this.resume(),n=this.stack[this.stack.length-1];n.label=e,n.identifier=(0,si.d)(this.sliceSerialize(t)).toLowerCase(),r("referenceType","full")}function V(t){r("characterReferenceType",t.type)}function q(t){const e=this.sliceSerialize(t),n=o("characterReferenceType");let i;if(n)i=(0,Yi.o)(e,"characterReferenceMarkerNumeric"===n?10:16),r("characterReferenceType");else{i=(0,fn.T)(e)}const a=this.stack.pop();a.value+=i,a.position.end=Xi(t.end)}function W(t){A.call(this,t);this.stack[this.stack.length-1].url=this.sliceSerialize(t)}function Y(t){A.call(this,t);this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(t)}function G(){return{type:"blockquote",children:[]}}function Z(){return{type:"code",lang:null,meta:null,value:""}}function K(){return{type:"inlineCode",value:""}}function X(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function J(){return{type:"emphasis",children:[]}}function Q(){return{type:"heading",depth:void 0,children:[]}}function tt(){return{type:"break"}}function et(){return{type:"html",value:""}}function nt(){return{type:"image",title:null,url:"",alt:null}}function it(){return{type:"link",title:null,url:"",children:[]}}function at(t){return{type:"list",ordered:"listOrdered"===t.type,start:null,spread:t._spread,children:[]}}function rt(t){return{type:"listItem",spread:t._spread,checked:null,children:[]}}function ot(){return{type:"paragraph",children:[]}}function st(){return{type:"strong",children:[]}}function ct(){return{type:"text",value:""}}function lt(){return{type:"thematicBreak"}}}(n)(function(t){for(;!jn(t););return t}(function(t){const e=t||{},n={defined:[],lazy:{},constructs:(0,tn.W)([i,...e.extensions||[]]),content:a(Nn),document:a(Pn),flow:a(Un),string:a(qn),text:a(Wn)};return n;function a(t){return function(e){return Xn(n,t,e)}}}(n).document().write(function(){let t,e=1,n="",i=!0;return function(a,r,o){const s=[];let c,l,u,d,h;for(a=n+a.toString(r),u=0,n="",i&&(65279===a.charCodeAt(0)&&u++,i=void 0);u<a.length;){if(Wi.lastIndex=u,c=Wi.exec(a),d=c&&void 0!==c.index?c.index:a.length,h=a.charCodeAt(d),!c){n=a.slice(u);break}if(10===h&&u===d&&t)s.push(-3),t=void 0;else switch(t&&(s.push(-5),t=void 0),u<d&&(s.push(a.slice(u,d)),e+=d-u),h){case 0:s.push(65533),e++;break;case 9:for(l=4*Math.ceil(e/4),s.push(-2);e++<l;)s.push(-1);break;case 10:s.push(-4),e=1;break;default:t=!0,e=1}u=d+1}return o&&(t&&s.push(-5),n&&s.push(n),s.push(null)),s}}()(t,e,!0))))};function Xi(t){return{line:t.line,column:t.column,offset:t.offset}}function Ji(t,e){let n=-1;for(;++n<e.length;){const i=e[n];Array.isArray(i)?Ji(t,i):Qi(t,i)}}function Qi(t,e){let n;for(n in e)if(Zi.call(e,n))if("canContainEols"===n){const i=e[n];i&&t[n].push(...i)}else if("transforms"===n){const i=e[n];i&&t[n].push(...i)}else if("enter"===n||"exit"===n){const i=e[n];i&&Object.assign(t[n],i)}}function ta(t,e){throw t?new Error("Cannot close `"+t.type+"` ("+u({start:t.start,end:t.end})+"): a different token (`"+e.type+"`, "+u({start:e.start,end:e.end})+") is open"):new Error("Cannot close document, a token (`"+e.type+"`, "+u({start:e.start,end:e.end})+") is still open")}function ea(t){Object.assign(this,{Parser:e=>{const n=this.data("settings");return Ki(e,Object.assign({},n,t,{extensions:this.data("micromarkExtensions")||[],mdastExtensions:this.data("fromMarkdownExtensions")||[]}))}})}function na(t){const e=[];let n=-1,i=0,a=0;for(;++n<t.length;){const r=t.charCodeAt(n);let o="";if(37===r&&(0,ke.H$)(t.charCodeAt(n+1))&&(0,ke.H$)(t.charCodeAt(n+2)))a=2;else if(r<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(r))||(o=String.fromCharCode(r));else if(r>55295&&r<57344){const e=t.charCodeAt(n+1);r<56320&&e>56319&&e<57344?(o=String.fromCharCode(r,e),a=1):o="\ufffd"}else o=String.fromCharCode(r);o&&(e.push(t.slice(i,n),encodeURIComponent(o)),i=n+a+1,o=""),a&&(n+=a,a=0)}return e.join("")+t.slice(i)}var ia=n(20557);const aa=function(t,e,n,i){"function"==typeof e&&"function"!=typeof n&&(i=n,n=e,e=null),(0,ia.S4)(t,e,(function(t,e){const i=e[e.length-1];return n(t,i?i.children.indexOf(t):null,i)}),i)},ra=sa("start"),oa=sa("end");function sa(t){return function(e){const n=e&&e.position&&e.position[t]||{};return{line:n.line||null,column:n.column||null,offset:n.offset>-1?n.offset:null}}}const ca={}.hasOwnProperty;function la(t){return String(t||"").toUpperCase()}function ua(t,e){const n=String(e.identifier).toUpperCase(),i=na(n.toLowerCase()),a=t.footnoteOrder.indexOf(n);let r;-1===a?(t.footnoteOrder.push(n),t.footnoteCounts[n]=1,r=t.footnoteOrder.length):(t.footnoteCounts[n]++,r=a+1);const o=t.footnoteCounts[n],s={type:"element",tagName:"a",properties:{href:"#"+t.clobberPrefix+"fn-"+i,id:t.clobberPrefix+"fnref-"+i+(o>1?"-"+o:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(r)}]};t.patch(e,s);const c={type:"element",tagName:"sup",properties:{},children:[s]};return t.patch(e,c),t.applyData(e,c)}function da(t,e){const n=e.referenceType;let i="]";if("collapsed"===n?i+="[]":"full"===n&&(i+="["+(e.label||e.identifier)+"]"),"imageReference"===e.type)return{type:"text",value:"!["+e.alt+i};const a=t.all(e),r=a[0];r&&"text"===r.type?r.value="["+r.value:a.unshift({type:"text",value:"["});const o=a[a.length-1];return o&&"text"===o.type?o.value+=i:a.push({type:"text",value:i}),a}function ha(t){const e=t.spread;return null==e?t.children.length>1:e}function fa(t){const e=String(t),n=/\r?\n|\r/g;let i=n.exec(e),a=0;const r=[];for(;i;)r.push(ga(e.slice(a,i.index),a>0,!0),i[0]),a=i.index+i[0].length,i=n.exec(e);return r.push(ga(e.slice(a),a>0,!1)),r.join("")}function ga(t,e,n){let i=0,a=t.length;if(e){let e=t.codePointAt(i);for(;9===e||32===e;)i++,e=t.codePointAt(i)}if(n){let e=t.codePointAt(a-1);for(;9===e||32===e;)a--,e=t.codePointAt(a-1)}return a>i?t.slice(i,a):""}const pa={blockquote:function(t,e){const n={type:"element",tagName:"blockquote",properties:{},children:t.wrap(t.all(e),!0)};return t.patch(e,n),t.applyData(e,n)},break:function(t,e){const n={type:"element",tagName:"br",properties:{},children:[]};return t.patch(e,n),[t.applyData(e,n),{type:"text",value:"\n"}]},code:function(t,e){const n=e.value?e.value+"\n":"",i=e.lang?e.lang.match(/^[^ \t]+(?=[ \t]|$)/):null,a={};i&&(a.className=["language-"+i]);let r={type:"element",tagName:"code",properties:a,children:[{type:"text",value:n}]};return e.meta&&(r.data={meta:e.meta}),t.patch(e,r),r=t.applyData(e,r),r={type:"element",tagName:"pre",properties:{},children:[r]},t.patch(e,r),r},delete:function(t,e){const n={type:"element",tagName:"del",properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)},emphasis:function(t,e){const n={type:"element",tagName:"em",properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)},footnoteReference:ua,footnote:function(t,e){const n=t.footnoteById;let i=1;for(;i in n;)i++;const a=String(i);return n[a]={type:"footnoteDefinition",identifier:a,children:[{type:"paragraph",children:e.children}],position:e.position},ua(t,{type:"footnoteReference",identifier:a,position:e.position})},heading:function(t,e){const n={type:"element",tagName:"h"+e.depth,properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)},html:function(t,e){if(t.dangerous){const n={type:"raw",value:e.value};return t.patch(e,n),t.applyData(e,n)}return null},imageReference:function(t,e){const n=t.definition(e.identifier);if(!n)return da(t,e);const i={src:na(n.url||""),alt:e.alt};null!==n.title&&void 0!==n.title&&(i.title=n.title);const a={type:"element",tagName:"img",properties:i,children:[]};return t.patch(e,a),t.applyData(e,a)},image:function(t,e){const n={src:na(e.url)};null!==e.alt&&void 0!==e.alt&&(n.alt=e.alt),null!==e.title&&void 0!==e.title&&(n.title=e.title);const i={type:"element",tagName:"img",properties:n,children:[]};return t.patch(e,i),t.applyData(e,i)},inlineCode:function(t,e){const n={type:"text",value:e.value.replace(/\r?\n|\r/g," ")};t.patch(e,n);const i={type:"element",tagName:"code",properties:{},children:[n]};return t.patch(e,i),t.applyData(e,i)},linkReference:function(t,e){const n=t.definition(e.identifier);if(!n)return da(t,e);const i={href:na(n.url||"")};null!==n.title&&void 0!==n.title&&(i.title=n.title);const a={type:"element",tagName:"a",properties:i,children:t.all(e)};return t.patch(e,a),t.applyData(e,a)},link:function(t,e){const n={href:na(e.url)};null!==e.title&&void 0!==e.title&&(n.title=e.title);const i={type:"element",tagName:"a",properties:n,children:t.all(e)};return t.patch(e,i),t.applyData(e,i)},listItem:function(t,e,n){const i=t.all(e),a=n?function(t){let e=!1;if("list"===t.type){e=t.spread||!1;const n=t.children;let i=-1;for(;!e&&++i<n.length;)e=ha(n[i])}return e}(n):ha(e),r={},o=[];if("boolean"==typeof e.checked){const t=i[0];let n;t&&"element"===t.type&&"p"===t.tagName?n=t:(n={type:"element",tagName:"p",properties:{},children:[]},i.unshift(n)),n.children.length>0&&n.children.unshift({type:"text",value:" "}),n.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:e.checked,disabled:!0},children:[]}),r.className=["task-list-item"]}let s=-1;for(;++s<i.length;){const t=i[s];(a||0!==s||"element"!==t.type||"p"!==t.tagName)&&o.push({type:"text",value:"\n"}),"element"!==t.type||"p"!==t.tagName||a?o.push(t):o.push(...t.children)}const c=i[i.length-1];c&&(a||"element"!==c.type||"p"!==c.tagName)&&o.push({type:"text",value:"\n"});const l={type:"element",tagName:"li",properties:r,children:o};return t.patch(e,l),t.applyData(e,l)},list:function(t,e){const n={},i=t.all(e);let a=-1;for("number"==typeof e.start&&1!==e.start&&(n.start=e.start);++a<i.length;){const t=i[a];if("element"===t.type&&"li"===t.tagName&&t.properties&&Array.isArray(t.properties.className)&&t.properties.className.includes("task-list-item")){n.className=["contains-task-list"];break}}const r={type:"element",tagName:e.ordered?"ol":"ul",properties:n,children:t.wrap(i,!0)};return t.patch(e,r),t.applyData(e,r)},paragraph:function(t,e){const n={type:"element",tagName:"p",properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)},root:function(t,e){const n={type:"root",children:t.wrap(t.all(e))};return t.patch(e,n),t.applyData(e,n)},strong:function(t,e){const n={type:"element",tagName:"strong",properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)},table:function(t,e){const n=t.all(e),i=n.shift(),a=[];if(i){const n={type:"element",tagName:"thead",properties:{},children:t.wrap([i],!0)};t.patch(e.children[0],n),a.push(n)}if(n.length>0){const i={type:"element",tagName:"tbody",properties:{},children:t.wrap(n,!0)},r=ra(e.children[1]),o=oa(e.children[e.children.length-1]);r.line&&o.line&&(i.position={start:r,end:o}),a.push(i)}const r={type:"element",tagName:"table",properties:{},children:t.wrap(a,!0)};return t.patch(e,r),t.applyData(e,r)},tableCell:function(t,e){const n={type:"element",tagName:"td",properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)},tableRow:function(t,e,n){const i=n?n.children:void 0,a=0===(i?i.indexOf(e):1)?"th":"td",r=n&&"table"===n.type?n.align:void 0,o=r?r.length:e.children.length;let s=-1;const c=[];for(;++s<o;){const n=e.children[s],i={},o=r?r[s]:void 0;o&&(i.align=o);let l={type:"element",tagName:a,properties:i,children:[]};n&&(l.children=t.all(n),t.patch(n,l),l=t.applyData(e,l)),c.push(l)}const l={type:"element",tagName:"tr",properties:{},children:t.wrap(c,!0)};return t.patch(e,l),t.applyData(e,l)},text:function(t,e){const n={type:"text",value:fa(String(e.value))};return t.patch(e,n),t.applyData(e,n)},thematicBreak:function(t,e){const n={type:"element",tagName:"hr",properties:{},children:[]};return t.patch(e,n),t.applyData(e,n)},toml:ba,yaml:ba,definition:ba,footnoteDefinition:ba};function ba(){return null}const ma={}.hasOwnProperty;function ya(t,e){const n=e||{},i=n.allowDangerousHtml||!1,a={};return o.dangerous=i,o.clobberPrefix=void 0===n.clobberPrefix||null===n.clobberPrefix?"user-content-":n.clobberPrefix,o.footnoteLabel=n.footnoteLabel||"Footnotes",o.footnoteLabelTagName=n.footnoteLabelTagName||"h2",o.footnoteLabelProperties=n.footnoteLabelProperties||{className:["sr-only"]},o.footnoteBackLabel=n.footnoteBackLabel||"Back to content",o.unknownHandler=n.unknownHandler,o.passThrough=n.passThrough,o.handlers={...pa,...n.handlers},o.definition=function(t){const e=Object.create(null);if(!t||!t.type)throw new Error("mdast-util-definitions expected node");return aa(t,"definition",(t=>{const n=la(t.identifier);n&&!ca.call(e,n)&&(e[n]=t)})),function(t){const n=la(t);return n&&ca.call(e,n)?e[n]:null}}(t),o.footnoteById=a,o.footnoteOrder=[],o.footnoteCounts={},o.patch=va,o.applyData=wa,o.one=function(t,e){return xa(o,t,e)},o.all=function(t){return Ra(o,t)},o.wrap=_a,o.augment=r,aa(t,"footnoteDefinition",(t=>{const e=String(t.identifier).toUpperCase();ma.call(a,e)||(a[e]=t)})),o;function r(t,e){if(t&&"data"in t&&t.data){const n=t.data;n.hName&&("element"!==e.type&&(e={type:"element",tagName:"",properties:{},children:[]}),e.tagName=n.hName),"element"===e.type&&n.hProperties&&(e.properties={...e.properties,...n.hProperties}),"children"in e&&e.children&&n.hChildren&&(e.children=n.hChildren)}if(t){const n="type"in t?t:{position:t};(function(t){return!(t&&t.position&&t.position.start&&t.position.start.line&&t.position.start.column&&t.position.end&&t.position.end.line&&t.position.end.column)})(n)||(e.position={start:ra(n),end:oa(n)})}return e}function o(t,e,n,i){return Array.isArray(n)&&(i=n,n={}),r(t,{type:"element",tagName:e,properties:n||{},children:i||[]})}}function va(t,e){t.position&&(e.position=function(t){return{start:ra(t),end:oa(t)}}(t))}function wa(t,e){let n=e;if(t&&t.data){const e=t.data.hName,i=t.data.hChildren,a=t.data.hProperties;"string"==typeof e&&("element"===n.type?n.tagName=e:n={type:"element",tagName:e,properties:{},children:[]}),"element"===n.type&&a&&(n.properties={...n.properties,...a}),"children"in n&&n.children&&null!=i&&(n.children=i)}return n}function xa(t,e,n){const i=e&&e.type;if(!i)throw new Error("Expected node, got `"+e+"`");return ma.call(t.handlers,i)?t.handlers[i](t,e,n):t.passThrough&&t.passThrough.includes(i)?"children"in e?{...e,children:Ra(t,e)}:e:t.unknownHandler?t.unknownHandler(t,e,n):function(t,e){const n=e.data||{},i=!("value"in e)||ma.call(n,"hProperties")||ma.call(n,"hChildren")?{type:"element",tagName:"div",properties:{},children:Ra(t,e)}:{type:"text",value:e.value};return t.patch(e,i),t.applyData(e,i)}(t,e)}function Ra(t,e){const n=[];if("children"in e){const i=e.children;let a=-1;for(;++a<i.length;){const r=xa(t,i[a],e);if(r){if(a&&"break"===i[a-1].type&&(Array.isArray(r)||"text"!==r.type||(r.value=r.value.replace(/^\s+/,"")),!Array.isArray(r)&&"element"===r.type)){const t=r.children[0];t&&"text"===t.type&&(t.value=t.value.replace(/^\s+/,""))}Array.isArray(r)?n.push(...r):n.push(r)}}}return n}function _a(t,e){const n=[];let i=-1;for(e&&n.push({type:"text",value:"\n"});++i<t.length;)i&&n.push({type:"text",value:"\n"}),n.push(t[i]);return e&&t.length>0&&n.push({type:"text",value:"\n"}),n}function ka(t,e){const n=ya(t,e),i=n.one(t,null),a=function(t){const e=[];let n=-1;for(;++n<t.footnoteOrder.length;){const i=t.footnoteById[t.footnoteOrder[n]];if(!i)continue;const a=t.all(i),r=String(i.identifier).toUpperCase(),o=na(r.toLowerCase());let s=0;const c=[];for(;++s<=t.footnoteCounts[r];){const e={type:"element",tagName:"a",properties:{href:"#"+t.clobberPrefix+"fnref-"+o+(s>1?"-"+s:""),dataFootnoteBackref:!0,className:["data-footnote-backref"],ariaLabel:t.footnoteBackLabel},children:[{type:"text",value:"\u21a9"}]};s>1&&e.children.push({type:"element",tagName:"sup",children:[{type:"text",value:String(s)}]}),c.length>0&&c.push({type:"text",value:" "}),c.push(e)}const l=a[a.length-1];if(l&&"element"===l.type&&"p"===l.tagName){const t=l.children[l.children.length-1];t&&"text"===t.type?t.value+=" ":l.children.push({type:"text",value:" "}),l.children.push(...c)}else a.push(...c);const u={type:"element",tagName:"li",properties:{id:t.clobberPrefix+"fn-"+o},children:t.wrap(a,!0)};t.patch(i,u),e.push(u)}if(0!==e.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:t.footnoteLabelTagName,properties:{...JSON.parse(JSON.stringify(t.footnoteLabelProperties)),id:"footnote-label"},children:[{type:"text",value:t.footnoteLabel}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:t.wrap(e,!0)},{type:"text",value:"\n"}]}}(n);return a&&i.children.push({type:"text",value:"\n"},a),Array.isArray(i)?{type:"root",children:i}:i}const Ea=function(t,e){return t&&"run"in t?function(t,e){return(n,i,a)=>{t.run(ka(n,e),i,(t=>{a(t)}))}}(t,e):function(t){return e=>ka(e,t)}(t||e)};class Ca extends class{constructor(){this.should_skip=!1,this.should_remove=!1,this.replacement=null,this.context={skip:()=>this.should_skip=!0,remove:()=>this.should_remove=!0,replace:t=>this.replacement=t}}replace(t,e,n,i){t&&e&&(null!=n?t[e][n]=i:t[e]=i)}remove(t,e,n){t&&e&&(null!=n?t[e].splice(n,1):delete t[e])}}{constructor(t,e){super(),this.should_skip=!1,this.should_remove=!1,this.replacement=null,this.context={skip:()=>this.should_skip=!0,remove:()=>this.should_remove=!0,replace:t=>this.replacement=t},this.enter=t,this.leave=e}visit(t,e,n,i){if(t){if(this.enter){const a=this.should_skip,r=this.should_remove,o=this.replacement;this.should_skip=!1,this.should_remove=!1,this.replacement=null,this.enter.call(this.context,t,e,n,i),this.replacement&&(t=this.replacement,this.replace(e,n,i,t)),this.should_remove&&this.remove(e,n,i);const s=this.should_skip,c=this.should_remove;if(this.should_skip=a,this.should_remove=r,this.replacement=o,s)return t;if(c)return null}let a;for(a in t){const e=t[a];if(e&&"object"==typeof e)if(Array.isArray(e)){const n=e;for(let e=0;e<n.length;e+=1){const i=n[e];Sa(i)&&(this.visit(i,t,a,e)||e--)}}else Sa(e)&&this.visit(e,t,a,null)}if(this.leave){const a=this.replacement,r=this.should_remove;this.replacement=null,this.should_remove=!1,this.leave.call(this.context,t,e,n,i),this.replacement&&(t=this.replacement,this.replace(e,n,i,t)),this.should_remove&&this.remove(e,n,i);const o=this.should_remove;if(this.replacement=a,this.should_remove=r,o)return null}}return t}}function Sa(t){return null!==t&&"object"==typeof t&&"type"in t&&"string"==typeof t.type}function Ta(t,{enter:e,leave:n}){return new Ca(e,n).visit(t,null)}const Aa=/@(jsx|jsxFrag|jsxImportSource|jsxRuntime)\s+(\S+)/g;function Da(t){let e;return t.value?"JSXExpressionContainer"===t.value.type?e=t.value.expression:(e=t.value,delete e.raw):e={type:"Literal",value:!0},Oa(t,{type:"Property",key:Ia(t.name),value:e,kind:"init",method:!1,shorthand:!1,computed:!1})}function Ia(t){let e;if("JSXMemberExpression"===t.type){const n=Ia(t.property);e={type:"MemberExpression",object:Ia(t.object),property:n,computed:"Literal"===n.type,optional:!1}}else e="JSXNamespacedName"===t.type?{type:"Literal",value:t.namespace.name+":"+t.name.name}:Ve(t.name)?{type:"Identifier",name:t.name}:{type:"Literal",value:t.name};return Oa(t,e)}function La(t){const e=t.split(".");let n,i=-1;for(;++i<e.length;){const t=Ve(e[i])?{type:"Identifier",name:e[i]}:{type:"Literal",value:e[i]};n=n?{type:"MemberExpression",object:n,property:t,computed:Boolean(i&&"Literal"===t.type),optional:!1}:t}return n}function Oa(t,e){const n=["start","end","loc","range","comments"];let i=-1;for(;++i<n.length;){const a=n[i];a in t&&(e[a]=t[a])}return e}function Ma(t,e){const n=["start","end","loc","range","comments"];let i=-1;for(;++i<n.length;){const a=n[i];a in t&&(e[a]=t[a])}}function Na(t,e){let n=-1;const i=[],a=[];let r;for(;++n<t.length;){const e=t[n];"ImportNamespaceSpecifier"===e.type?r=e:a.push(e)}if(r){const t={type:"VariableDeclarator",id:r.local,init:e};Ma(r,t),i.push(t)}return i.push({type:"VariableDeclarator",id:{type:"ObjectPattern",properties:a.map((t=>{let e="ImportSpecifier"===t.type?t.imported:"ExportSpecifier"===t.type?t.exported:{type:"Identifier",name:"default"},n=t.local;"ExportSpecifier"===t.type&&(n=e,e=t.local);const i={type:"Property",kind:"init",shorthand:e.name===n.name,method:!1,computed:!1,key:e,value:n};return Ma(t,i),i}))},init:r?{type:"Identifier",name:r.local.name}:e}),i}const Ba=Fa("Identifier","MemberExpression",Ve),Pa=Fa("JSXIdentifier","JSXMemberExpression",(function(t){let e=-1;for(;++e<t.length;)if(!(e?ja:He)(t.charCodeAt(e)))return!1;return e>0}));function Fa(t,e,n){return function(i){let a,r=-1;for(;++r<i.length;){const o=i[r],s="string"==typeof o&&n(o);if("JSXIdentifier"===t&&!s)throw new Error("Cannot turn `"+o+"` into a JSX identifier");const c=s?{type:t,name:o}:{type:"Literal",value:o};a=a?{type:e,object:a,property:c,computed:"Literal"===c.type,optional:!1}:c}if(!a)throw new Error("Expected non-empty `ids` to be passed");if("Literal"===a.type)throw new Error("Expected identifier as left-most value");return a}}function ja(t){return 45===t||Ue(t)}function $a(t){const{development:e,outputFormat:n}=t||{};return(t,i)=>{!function(t,e){const n=e||{};let i="automatic"===n.runtime;const a={},r={};Ta(t,{enter(t){if("Program"===t.type){const e=t.comments||[];let n=-1;for(;++n<e.length;){Aa.lastIndex=0;let t=Aa.exec(e[n].value);for(;t;)a[t[1]]=t[2],t=Aa.exec(e[n].value)}if(a.jsxRuntime)if("automatic"===a.jsxRuntime){if(i=!0,a.jsx)throw new Error("Unexpected `@jsx` pragma w/ automatic runtime");if(a.jsxFrag)throw new Error("Unexpected `@jsxFrag` pragma w/ automatic runtime")}else{if("classic"!==a.jsxRuntime)throw new Error("Unexpected `jsxRuntime` `"+a.jsxRuntime+"`, expected `automatic` or `classic`");if(i=!1,a.jsxImportSource)throw new Error("Unexpected `@jsxImportSource` w/ classic runtime")}}},leave(t){if("Program"===t.type){const e=[];r.fragment&&e.push({type:"ImportSpecifier",imported:{type:"Identifier",name:"Fragment"},local:{type:"Identifier",name:"_Fragment"}}),r.jsx&&e.push({type:"ImportSpecifier",imported:{type:"Identifier",name:"jsx"},local:{type:"Identifier",name:"_jsx"}}),r.jsxs&&e.push({type:"ImportSpecifier",imported:{type:"Identifier",name:"jsxs"},local:{type:"Identifier",name:"_jsxs"}}),r.jsxDEV&&e.push({type:"ImportSpecifier",imported:{type:"Identifier",name:"jsxDEV"},local:{type:"Identifier",name:"_jsxDEV"}}),e.length>0&&t.body.unshift({type:"ImportDeclaration",specifiers:e,source:{type:"Literal",value:(a.jsxImportSource||n.importSource||"react")+(n.development?"/jsx-dev-runtime":"/jsx-runtime")}})}if("JSXElement"!==t.type&&"JSXFragment"!==t.type)return;const e=[];let o,s=-1;for(;++s<t.children.length;){const n=t.children[s];if("JSXExpressionContainer"===n.type)"JSXEmptyExpression"!==n.expression.type&&e.push(n.expression);else if("JSXText"===n.type){const t=n.value.replace(/\t/g," ").replace(/ *(\r?\n|\r) */g,"\n").replace(/\n+/g,"\n").replace(/\n+$/,"").replace(/^\n+/,"").replace(/\n/g," ");t&&e.push(Oa(n,{type:"Literal",value:t}))}else e.push(n)}let c=[];const l=[];let u,d,h,f=[];if("JSXElement"===t.type){let e;o=Ia(t.openingElement.name),"Identifier"===o.type&&/^[a-z]/.test(o.name)&&(o=Oa(o,{type:"Literal",value:o.name}));const n=t.openingElement.attributes;let a=-1;for(;++a<n.length;){const t=n[a];if("JSXSpreadAttribute"===t.type)c.length>0&&(l.push({type:"ObjectExpression",properties:c}),c=[]),l.push(t.argument),e=!0;else{const n=Da(t);if(i&&"Identifier"===n.key.type&&"key"===n.key.name){if(e)throw new Error("Expected `key` to come before any spread expressions");u=n.value}else c.push(n)}}}else i?(r.fragment=!0,o={type:"Identifier",name:"_Fragment"}):o=La(a.jsxFrag||n.pragmaFrag||"React.Fragment");if(i?e.length>0&&c.push({type:"Property",key:{type:"Identifier",name:"children"},value:e.length>1?{type:"ArrayExpression",elements:e}:e[0],kind:"init",method:!1,shorthand:!1,computed:!1}):f=e,c.length>0&&l.push({type:"ObjectExpression",properties:c}),l.length>1?("ObjectExpression"!==l[0].type&&l.unshift({type:"ObjectExpression",properties:[]}),d={type:"CallExpression",callee:La("Object.assign"),arguments:l,optional:!1}):l.length>0&&(d=l[0]),i){f.push(d||{type:"ObjectExpression",properties:[]}),u?f.push(u):n.development&&f.push({type:"Identifier",name:"undefined"});const i=e.length>1;if(n.development){r.jsxDEV=!0,h={type:"Identifier",name:"_jsxDEV"},f.push({type:"Literal",value:i});const e={type:"ObjectExpression",properties:[{type:"Property",method:!1,shorthand:!1,computed:!1,kind:"init",key:{type:"Identifier",name:"fileName"},value:{type:"Literal",value:n.filePath||"<source.js>"}}]};t.loc&&e.properties.push({type:"Property",method:!1,shorthand:!1,computed:!1,kind:"init",key:{type:"Identifier",name:"lineNumber"},value:{type:"Literal",value:t.loc.start.line}},{type:"Property",method:!1,shorthand:!1,computed:!1,kind:"init",key:{type:"Identifier",name:"columnNumber"},value:{type:"Literal",value:t.loc.start.column+1}}),f.push(e,{type:"ThisExpression"})}else i?(r.jsxs=!0,h={type:"Identifier",name:"_jsxs"}):(r.jsx=!0,h={type:"Identifier",name:"_jsx"})}else(d||f.length>0)&&f.unshift(d||{type:"Literal",value:null}),h=La(a.jsx||n.pragma||"React.createElement");f.unshift(o),this.replace(Oa(t,{type:"CallExpression",callee:h,arguments:f,optional:!1}))}})}(t,{development:e,filePath:i.history[0]}),"function-body"===n&&t.body[0]&&"ImportDeclaration"===t.body[0].type&&"string"==typeof t.body[0].source.value&&/\/jsx-(dev-)?runtime$/.test(t.body[0].source.value)&&(t.body[0]={type:"VariableDeclaration",kind:"const",declarations:Na(t.body[0].specifiers,Ba(["arguments",0]))})}}function za(t,e){if("MemberExpression"===t.type)return!t.computed&&za(t.object,t);if("Identifier"===t.type){if(!e)return!0;switch(e.type){case"MemberExpression":return e.computed||t===e.object;case"MethodDefinition":return e.computed;case"PropertyDefinition":case"Property":return e.computed||t===e.value;case"ExportSpecifier":case"ImportSpecifier":return t===e.local;case"LabeledStatement":case"BreakStatement":case"ContinueStatement":return!1;default:return!0}}return!1}function Ha(t){const e=new WeakMap,n=new Map,i=new Va(null,!1),a=[];let r=i;Ta(t,{enter(t,n){switch(t.type){case"Identifier":n&&za(t,n)&&a.push([r,t]);break;case"ImportDeclaration":t.specifiers.forEach((t=>{r.declarations.set(t.local.name,t)}));break;case"FunctionExpression":case"FunctionDeclaration":case"ArrowFunctionExpression":"FunctionDeclaration"===t.type?(t.id&&r.declarations.set(t.id.name,t),e.set(t,r=new Va(r,!1))):(e.set(t,r=new Va(r,!1)),"FunctionExpression"===t.type&&t.id&&r.declarations.set(t.id.name,t)),t.params.forEach((e=>{qa(e).forEach((e=>{r.declarations.set(e,t)}))}));break;case"ForStatement":case"ForInStatement":case"ForOfStatement":case"BlockStatement":e.set(t,r=new Va(r,!0));break;case"ClassDeclaration":case"VariableDeclaration":r.add_declaration(t);break;case"CatchClause":e.set(t,r=new Va(r,!0)),t.param&&qa(t.param).forEach((e=>{t.param&&r.declarations.set(e,t.param)}))}},leave(t){e.has(t)&&null!==r&&r.parent&&(r=r.parent)}});for(let o=a.length-1;o>=0;--o){const[t,e]=a[o];t.references.has(e.name)||Ua(t,e.name),t.find_owner(e.name)||n.set(e.name,e)}return{map:e,scope:i,globals:n}}function Ua(t,e){t.references.add(e),t.parent&&Ua(t.parent,e)}class Va{constructor(t,e){this.parent=t,this.block=e,this.declarations=new Map,this.initialised_declarations=new Set,this.references=new Set}add_declaration(t){if("VariableDeclaration"===t.type)if("var"===t.kind&&this.block&&this.parent)this.parent.add_declaration(t);else{const e=e=>{qa(e.id).forEach((n=>{this.declarations.set(n,t),e.init&&this.initialised_declarations.add(n)}))};t.declarations.forEach(e)}else t.id&&this.declarations.set(t.id.name,t)}find_owner(t){return this.declarations.has(t)?this:this.parent&&this.parent.find_owner(t)}has(t){return this.declarations.has(t)||!!this.parent&&this.parent.has(t)}}function qa(t){return Wa(t).map((t=>t.name))}function Wa(t,e=[]){switch(t.type){case"Identifier":e.push(t);break;case"MemberExpression":let n=t;for(;"MemberExpression"===n.type;)n=n.object;e.push(n);break;case"ObjectPattern":const i=t=>{"RestElement"===t.type?Wa(t.argument,e):Wa(t.value,e)};t.properties.forEach(i);break;case"ArrayPattern":const a=t=>{t&&Wa(t,e)};t.elements.forEach((t=>{t&&a(t)}));break;case"RestElement":Wa(t.argument,e);break;case"AssignmentPattern":Wa(t.left,e)}return e}function Ya(t){if("FunctionDeclaration"===t.type)return{...t,type:"FunctionExpression"};if("ClassDeclaration"===t.type)return{...t,type:"ClassExpression"};throw new Error("Cannot turn `"+t.type+"` into an expression")}function Ga(t){return Boolean("FunctionDeclaration"===t.type||"ClassDeclaration"===t.type||"VariableDeclaration"===t.type)}function Za(t){const e=t||{},n=e.baseUrl||void 0,i=e.useDynamicImport||void 0,a=e.outputFormat||"program",r=void 0===e.pragma?"React.createElement":e.pragma,o=void 0===e.pragmaFrag?"React.Fragment":e.pragmaFrag,s=e.pragmaImportSource||"react",c=e.jsxImportSource||"react",l=e.jsxRuntime||"automatic";return(t,e)=>{const h=[],f=[],g=[];let p,b,m,y=0;if(t.comments||(t.comments=[]),l&&g.push("@jsxRuntime "+l),"automatic"===l&&c&&g.push("@jsxImportSource "+c),"classic"===l&&r&&g.push("@jsx "+r),"classic"===l&&o&&g.push("@jsxFrag "+o),g.length>0&&t.comments.unshift({type:"Block",value:g.join(" ")}),"classic"===l&&s){if(!r)throw new Error("Missing `pragma` in classic runtime with `pragmaImportSource`");w({type:"ImportDeclaration",specifiers:[{type:"ImportDefaultSpecifier",local:{type:"Identifier",name:r.split(".")[0]}}],source:{type:"Literal",value:s}})}for(m of t.body)if("ExportDefaultDeclaration"===m.type)p&&e.fail("Cannot specify multiple layouts (previous: "+u(Me(p))+")",Me(m),"recma-document:duplicate-layout"),p=m,f.push({type:"VariableDeclaration",kind:"const",declarations:[{type:"VariableDeclarator",id:{type:"Identifier",name:"MDXLayout"},init:Ga(m.declaration)?Ya(m.declaration):m.declaration}]});else if("ExportNamedDeclaration"===m.type&&m.source){const t=m.source;m.specifiers=m.specifiers.filter((n=>{if("default"===n.exported.name){p&&e.fail("Cannot specify multiple layouts (previous: "+u(Me(p))+")",Me(m),"recma-document:duplicate-layout"),p=n;const i=[];if("default"===n.local.name)i.push({type:"ImportDefaultSpecifier",local:{type:"Identifier",name:"MDXLayout"}});else{const t={type:"ImportSpecifier",imported:n.local,local:{type:"Identifier",name:"MDXLayout"}};Ma(n.local,t),i.push(t)}const a={type:"Literal",value:t.value};Ma(t,a);const r={type:"ImportDeclaration",specifiers:i,source:a};return Ma(n,r),w(r),!1}return!0})),m.specifiers.length>0&&v(m)}else"ExportNamedDeclaration"===m.type||"ExportAllDeclaration"===m.type?v(m):"ImportDeclaration"===m.type?w(m):"ExpressionStatement"!==m.type||"JSXFragment"!==m.expression.type&&"JSXElement"!==m.expression.type?f.push(m):(b=!0,f.push(...d(m.expression,Boolean(p))));function v(t){if("ExportNamedDeclaration"===t.type)for(m of(t.declaration&&h.push(...Ha(t.declaration).scope.declarations.keys()),t.specifiers))h.push(m.exported.name);w(t)}function w(t){if(n&&t.source){let e=String(t.source.value);try{e=String(new URL(e))}catch{/^\.{0,2}\//.test(e)&&(e=String(new URL(e,n)))}const i={type:"Literal",value:e};Ma(t.source,i),t.source=i}let r,o;if("function-body"===a)if("ImportDeclaration"===t.type||"ExportAllDeclaration"===t.type||"ExportNamedDeclaration"===t.type&&t.source){if(i||e.fail("Cannot use `import` or `export \u2026 from` in `evaluate` (outputting a function body) by default: please set `useDynamicImport: true` (and probably specify a `baseUrl`)",Me(t),"recma-document:invalid-esm-statement"),!t.source)throw new Error("Expected `node.source` to be defined");const n={type:"ImportExpression",source:t.source};Ma(t,n),o={type:"AwaitExpression",argument:n},r="ImportDeclaration"!==t.type&&"ExportNamedDeclaration"!==t.type||0!==t.specifiers.length?{type:"VariableDeclaration",kind:"const",declarations:"ExportAllDeclaration"===t.type?[{type:"VariableDeclarator",id:{type:"Identifier",name:"_exportAll"+ ++y},init:o}]:Na(t.specifiers,o)}:{type:"ExpressionStatement",expression:o}}else if(t.declaration)r=t.declaration;else{const e=t.specifiers.filter((t=>t.local.name!==t.exported.name)).map((t=>({type:"VariableDeclarator",id:t.exported,init:t.local})));e.length>0&&(r={type:"VariableDeclaration",kind:"const",declarations:e})}else r=t;r&&f.push(r)}b||f.push(...d(void 0,Boolean(p))),h.push(["MDXContent","default"]),"function-body"===a?f.push({type:"ReturnStatement",argument:{type:"ObjectExpression",properties:[...Array.from({length:y}).map(((t,e)=>({type:"SpreadElement",argument:{type:"Identifier",name:"_exportAll"+(e+1)}}))),...h.map((t=>({type:"Property",kind:"init",method:!1,computed:!1,shorthand:"string"==typeof t,key:{type:"Identifier",name:"string"==typeof t?t:t[1]},value:{type:"Identifier",name:"string"==typeof t?t:t[0]}})))]}}):f.push({type:"ExportDefaultDeclaration",declaration:{type:"Identifier",name:"MDXContent"}}),t.body=f,n&&Ta(t,{enter(t){if("MemberExpression"===t.type&&"object"in t&&"MetaProperty"===t.object.type&&"Identifier"===t.property.type&&"import"===t.object.meta.name&&"meta"===t.object.property.name&&"url"===t.property.name){const t={type:"Literal",value:n};this.replace(t)}}})};function d(t,e){let n={type:"JSXElement",openingElement:{type:"JSXOpeningElement",name:{type:"JSXIdentifier",name:"MDXLayout"},attributes:[{type:"JSXSpreadAttribute",argument:{type:"Identifier",name:"props"}}],selfClosing:!1},closingElement:{type:"JSXClosingElement",name:{type:"JSXIdentifier",name:"MDXLayout"}},children:[{type:"JSXElement",openingElement:{type:"JSXOpeningElement",name:{type:"JSXIdentifier",name:"_createMdxContent"},attributes:[{type:"JSXSpreadAttribute",argument:{type:"Identifier",name:"props"}}],selfClosing:!0},closingElement:null,children:[]}]};e||(n={type:"ConditionalExpression",test:{type:"Identifier",name:"MDXLayout"},consequent:n,alternate:{type:"CallExpression",callee:{type:"Identifier",name:"_createMdxContent"},arguments:[{type:"Identifier",name:"props"}],optional:!1}});let i=t||{type:"Literal",value:null};return i&&"JSXFragment"===i.type&&1===i.children.length&&"JSXElement"===i.children[0].type&&(i=i.children[0]),[{type:"FunctionDeclaration",id:{type:"Identifier",name:"_createMdxContent"},params:[{type:"Identifier",name:"props"}],body:{type:"BlockStatement",body:[{type:"ReturnStatement",argument:i}]}},{type:"FunctionDeclaration",id:{type:"Identifier",name:"MDXContent"},params:[{type:"AssignmentPattern",left:{type:"Identifier",name:"props"},right:{type:"ObjectExpression",properties:[]}}],body:{type:"BlockStatement",body:[{type:"ReturnStatement",argument:n}]}}]}}function Ka(t){let e,n=-1;for(;++n<t.length;){const i=t[n];e=e?{type:"BinaryExpression",left:e,operator:"+",right:i}:i}if(!e)throw new Error("Expected non-empty `expressions` to be passed");return e}const Xa={}.hasOwnProperty;function Ja(t){const{development:e,providerImportSource:n,outputFormat:i}=t||{};return(t,a)=>{const r=Ha(t),o=[];let s,c=!1,l=!1;if(Ta(t,{enter(t){const e=r.map.get(t);"FunctionDeclaration"!==t.type&&"FunctionExpression"!==t.type&&"ArrowFunctionExpression"!==t.type||(o.push({objects:[],components:[],tags:[],references:{},idToInvalidComponentName:new Map,node:t}),Qa(t,"MDXContent")&&e&&!tr(e,"MDXLayout")&&o[0].components.push("MDXLayout"));const i=o[0];if(i&&(Qa(i.node,"_createMdxContent")||n)&&(e&&(e.node=t,s=e),s&&"JSXElement"===t.type)){let e=t.openingElement.name;if("JSXMemberExpression"===e.type){const n=[];for(;"JSXMemberExpression"===e.type;)n.unshift(e.property.name),e=e.object;n.unshift(e.name);const a=n.join("."),r=e.name,o=tr(s,r);if(!Xa.call(i.references,a)){const e=s.parent;(!o||e&&"FunctionDeclaration"===e.node.type&&Qa(e.node,"_createMdxContent"))&&(i.references[a]={node:t,component:!0})}i.objects.includes(r)||o||i.objects.push(r)}else if("JSXNamespacedName"===e.type);else if(Ve(e.name)&&!/^[a-z]/.test(e.name)){const n=e.name;tr(s,n)||("MDXLayout"===n||Xa.call(i.references,n)||(i.references[n]={node:t,component:!0}),i.components.includes(n)||i.components.push(n))}else if(t.data&&t.data._mdxExplicitJsx);else{const n=e.name;i.tags.includes(n)||i.tags.push(n);let a=["_components",n];if(!1===Ve(n)){let t=i.idToInvalidComponentName.get(n);void 0===t&&(t=`_component${i.idToInvalidComponentName.size}`,i.idToInvalidComponentName.set(n,t)),a=[t]}t.openingElement.name=Pa(a),t.closingElement&&(t.closingElement.name=Pa(a))}}},leave(t){const i=[],a=[],r=[],d=[];if(s&&s.node===t&&(s=s.parent),"FunctionDeclaration"===t.type||"FunctionExpression"===t.type||"ArrowFunctionExpression"===t.type){const s=t,h=o[o.length-1];let f;for(f of h.tags)i.push({type:"Property",kind:"init",key:Ve(f)?{type:"Identifier",name:f}:{type:"Literal",value:f},value:{type:"Literal",value:f},method:!1,shorthand:!1,computed:!1});for(f of(a.push(...h.components),h.objects))a.includes(f)||a.push(f);const g=[];if(i.length>0||a.length>0||h.idToInvalidComponentName.size>0){n&&(c=!0,r.push({type:"CallExpression",callee:{type:"Identifier",name:"_provideComponents"},arguments:[],optional:!1})),(Qa(h.node,"MDXContent")||Qa(h.node,"_createMdxContent"))&&r.push(Ba(["props","components"])),(i.length>0||r.length>1)&&r.unshift({type:"ObjectExpression",properties:i});let t,e=r.length>1?{type:"CallExpression",callee:Ba(["Object","assign"]),arguments:r,optional:!1}:"MemberExpression"===r[0].type?{type:"LogicalExpression",operator:"||",left:r[0],right:{type:"ObjectExpression",properties:[]}}:r[0];if(a.length>0&&(t={type:"ObjectPattern",properties:a.map((t=>({type:"Property",kind:"init",key:{type:"Identifier",name:"MDXLayout"===t?"wrapper":t},value:{type:"Identifier",name:t},method:!1,shorthand:"MDXLayout"!==t,computed:!1})))}),h.tags.length>0&&(d.push({type:"VariableDeclarator",id:{type:"Identifier",name:"_components"},init:e}),e={type:"Identifier",name:"_components"}),Qa(h.node,"_createMdxContent"))for(const[n,i]of h.idToInvalidComponentName)d.push({type:"VariableDeclarator",id:{type:"Identifier",name:i},init:{type:"MemberExpression",object:{type:"Identifier",name:"_components"},property:{type:"Literal",value:n},computed:!0,optional:!1}});t&&d.push({type:"VariableDeclarator",id:t,init:e}),d.length>0&&g.push({type:"VariableDeclaration",kind:"const",declarations:d})}let p;for(p in h.references)if(Xa.call(h.references,p)){const t=p.split(".");let e=0;for(;++e<t.length;){const n=t.slice(0,e).join(".");Xa.call(h.references,n)||(h.references[n]={node:h.references[p].node,component:!1})}}const b=Object.keys(h.references).sort();let m=-1;for(;++m<b.length;){const t=b[m],n=h.references[t],i=u(Me(n.node)),a=[{type:"Literal",value:t},{type:"Literal",value:n.component}];l=!0,e&&"1:1-1:1"!==i&&a.push({type:"Literal",value:i}),g.push({type:"IfStatement",test:{type:"UnaryExpression",operator:"!",prefix:!0,argument:Ba(t.split("."))},consequent:{type:"ExpressionStatement",expression:{type:"CallExpression",callee:{type:"Identifier",name:"_missingMdxReference"},arguments:a,optional:!1}},alternate:null})}g.length>0&&("BlockStatement"!==s.body.type&&(s.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:s.body}]}),s.body.body.unshift(...g)),o.pop()}}}),c&&n&&t.body.unshift(function(t,e){const n=[{type:"ImportSpecifier",imported:{type:"Identifier",name:"useMDXComponents"},local:{type:"Identifier",name:"_provideComponents"}}];return"function-body"===e?{type:"VariableDeclaration",kind:"const",declarations:Na(n,Ba(["arguments",0]))}:{type:"ImportDeclaration",specifiers:n,source:{type:"Literal",value:t}}}(n,i)),l){const n=[{type:"Literal",value:"Expected "},{type:"ConditionalExpression",test:{type:"Identifier",name:"component"},consequent:{type:"Literal",value:"component"},alternate:{type:"Literal",value:"object"}},{type:"Literal",value:" `"},{type:"Identifier",name:"id"},{type:"Literal",value:"` to be defined: you likely forgot to import, pass, or provide it."}],i=[{type:"Identifier",name:"id"},{type:"Identifier",name:"component"}];e&&(n.push({type:"ConditionalExpression",test:{type:"Identifier",name:"place"},consequent:Ka([{type:"Literal",value:"\nIt\u2019s referenced in your code at `"},{type:"Identifier",name:"place"},{type:"Literal",value:(a.path?"` in `"+a.path:"")+"`"}]),alternate:{type:"Literal",value:""}}),i.push({type:"Identifier",name:"place"})),t.body.push({type:"FunctionDeclaration",id:{type:"Identifier",name:"_missingMdxReference"},generator:!1,async:!1,params:i,body:{type:"BlockStatement",body:[{type:"ThrowStatement",argument:{type:"NewExpression",callee:{type:"Identifier",name:"Error"},arguments:[Ka(n)]}}]}})}}}function Qa(t,e){return Boolean(t&&"id"in t&&t.id&&t.id.name===e)}function tr(t,e){let n=t;for(;n;){if(n.declarations.has(e))return!0;n=n.parent}return!1}const{stringify:er}=JSON;if(!String.prototype.repeat)throw new Error("String.prototype.repeat is undefined, see https://github.com/davidbonnet/astring#installation");if(!String.prototype.endsWith)throw new Error("String.prototype.endsWith is undefined, see https://github.com/davidbonnet/astring#installation");const nr={"||":2,"??":3,"&&":4,"|":5,"^":6,"&":7,"==":8,"!=":8,"===":8,"!==":8,"<":9,">":9,"<=":9,">=":9,in:9,instanceof:9,"<<":10,">>":10,">>>":10,"+":11,"-":11,"*":12,"%":12,"/":12,"**":13},ir=17,ar={ArrayExpression:20,TaggedTemplateExpression:20,ThisExpression:20,Identifier:20,PrivateIdentifier:20,Literal:18,TemplateLiteral:20,Super:20,SequenceExpression:20,MemberExpression:19,ChainExpression:19,CallExpression:19,NewExpression:19,ArrowFunctionExpression:ir,ClassExpression:ir,FunctionExpression:ir,ObjectExpression:ir,UpdateExpression:16,UnaryExpression:15,AwaitExpression:15,BinaryExpression:14,LogicalExpression:13,ConditionalExpression:4,AssignmentExpression:3,YieldExpression:2,RestElement:1};function rr(t,e){const{generator:n}=t;if(t.write("("),null!=e&&e.length>0){n[e[0].type](e[0],t);const{length:i}=e;for(let a=1;a<i;a++){const i=e[a];t.write(", "),n[i.type](i,t)}}t.write(")")}function or(t,e,n,i){const a=t.expressionsPrecedence[e.type];if(a===ir)return!0;const r=t.expressionsPrecedence[n.type];return a!==r?!i&&15===a&&14===r&&"**"===n.operator||a<r:(13===a||14===a)&&("**"===e.operator&&"**"===n.operator?!i:13===a&&13===r&&("??"===e.operator||"??"===n.operator)||(i?nr[e.operator]<=nr[n.operator]:nr[e.operator]<nr[n.operator]))}function sr(t,e,n,i){const{generator:a}=t;or(t,e,n,i)?(t.write("("),a[e.type](e,t),t.write(")")):a[e.type](e,t)}function cr(t,e,n,i){const a=e.split("\n"),r=a.length-1;if(t.write(a[0].trim()),r>0){t.write(i);for(let e=1;e<r;e++)t.write(n+a[e].trim()+i);t.write(n+a[r].trim())}}function lr(t,e,n,i){const{length:a}=e;for(let r=0;r<a;r++){const a=e[r];t.write(n),"L"===a.type[0]?t.write("// "+a.value.trim()+"\n",a):(t.write("/*"),cr(t,a.value,n,i),t.write("*/"+i))}}function ur(t,e){const{generator:n}=t,{declarations:i}=e;t.write(e.kind+" ");const{length:a}=i;if(a>0){n.VariableDeclarator(i[0],t);for(let e=1;e<a;e++)t.write(", "),n.VariableDeclarator(i[e],t)}}let dr,hr,fr,gr,pr,br;const mr={Program(t,e){const n=e.indent.repeat(e.indentLevel),{lineEnd:i,writeComments:a}=e;a&&null!=t.comments&&lr(e,t.comments,n,i);const r=t.body,{length:o}=r;for(let s=0;s<o;s++){const t=r[s];a&&null!=t.comments&&lr(e,t.comments,n,i),e.write(n),this[t.type](t,e),e.write(i)}a&&null!=t.trailingComments&&lr(e,t.trailingComments,n,i)},BlockStatement:br=function(t,e){const n=e.indent.repeat(e.indentLevel++),{lineEnd:i,writeComments:a}=e,r=n+e.indent;e.write("{");const o=t.body;if(null!=o&&o.length>0){e.write(i),a&&null!=t.comments&&lr(e,t.comments,r,i);const{length:s}=o;for(let t=0;t<s;t++){const n=o[t];a&&null!=n.comments&&lr(e,n.comments,r,i),e.write(r),this[n.type](n,e),e.write(i)}e.write(n)}else a&&null!=t.comments&&(e.write(i),lr(e,t.comments,r,i),e.write(n));a&&null!=t.trailingComments&&lr(e,t.trailingComments,r,i),e.write("}"),e.indentLevel--},ClassBody:br,StaticBlock(t,e){e.write("static "),this.BlockStatement(t,e)},EmptyStatement(t,e){e.write(";")},ExpressionStatement(t,e){const n=e.expressionsPrecedence[t.expression.type];n===ir||3===n&&"O"===t.expression.left.type[0]?(e.write("("),this[t.expression.type](t.expression,e),e.write(")")):this[t.expression.type](t.expression,e),e.write(";")},IfStatement(t,e){e.write("if ("),this[t.test.type](t.test,e),e.write(") "),this[t.consequent.type](t.consequent,e),null!=t.alternate&&(e.write(" else "),this[t.alternate.type](t.alternate,e))},LabeledStatement(t,e){this[t.label.type](t.label,e),e.write(": "),this[t.body.type](t.body,e)},BreakStatement(t,e){e.write("break"),null!=t.label&&(e.write(" "),this[t.label.type](t.label,e)),e.write(";")},ContinueStatement(t,e){e.write("continue"),null!=t.label&&(e.write(" "),this[t.label.type](t.label,e)),e.write(";")},WithStatement(t,e){e.write("with ("),this[t.object.type](t.object,e),e.write(") "),this[t.body.type](t.body,e)},SwitchStatement(t,e){const n=e.indent.repeat(e.indentLevel++),{lineEnd:i,writeComments:a}=e;e.indentLevel++;const r=n+e.indent,o=r+e.indent;e.write("switch ("),this[t.discriminant.type](t.discriminant,e),e.write(") {"+i);const{cases:s}=t,{length:c}=s;for(let l=0;l<c;l++){const t=s[l];a&&null!=t.comments&&lr(e,t.comments,r,i),t.test?(e.write(r+"case "),this[t.test.type](t.test,e),e.write(":"+i)):e.write(r+"default:"+i);const{consequent:n}=t,{length:c}=n;for(let r=0;r<c;r++){const t=n[r];a&&null!=t.comments&&lr(e,t.comments,o,i),e.write(o),this[t.type](t,e),e.write(i)}}e.indentLevel-=2,e.write(n+"}")},ReturnStatement(t,e){e.write("return"),t.argument&&(e.write(" "),this[t.argument.type](t.argument,e)),e.write(";")},ThrowStatement(t,e){e.write("throw "),this[t.argument.type](t.argument,e),e.write(";")},TryStatement(t,e){if(e.write("try "),this[t.block.type](t.block,e),t.handler){const{handler:n}=t;null==n.param?e.write(" catch "):(e.write(" catch ("),this[n.param.type](n.param,e),e.write(") ")),this[n.body.type](n.body,e)}t.finalizer&&(e.write(" finally "),this[t.finalizer.type](t.finalizer,e))},WhileStatement(t,e){e.write("while ("),this[t.test.type](t.test,e),e.write(") "),this[t.body.type](t.body,e)},DoWhileStatement(t,e){e.write("do "),this[t.body.type](t.body,e),e.write(" while ("),this[t.test.type](t.test,e),e.write(");")},ForStatement(t,e){if(e.write("for ("),null!=t.init){const{init:n}=t;"V"===n.type[0]?ur(e,n):this[n.type](n,e)}e.write("; "),t.test&&this[t.test.type](t.test,e),e.write("; "),t.update&&this[t.update.type](t.update,e),e.write(") "),this[t.body.type](t.body,e)},ForInStatement:dr=function(t,e){e.write(`for ${t.await?"await ":""}(`);const{left:n}=t;"V"===n.type[0]?ur(e,n):this[n.type](n,e),e.write("I"===t.type[3]?" in ":" of "),this[t.right.type](t.right,e),e.write(") "),this[t.body.type](t.body,e)},ForOfStatement:dr,DebuggerStatement(t,e){e.write("debugger;",t)},FunctionDeclaration:hr=function(t,e){e.write((t.async?"async ":"")+(t.generator?"function* ":"function ")+(t.id?t.id.name:""),t),rr(e,t.params),e.write(" "),this[t.body.type](t.body,e)},FunctionExpression:hr,VariableDeclaration(t,e){ur(e,t),e.write(";")},VariableDeclarator(t,e){this[t.id.type](t.id,e),null!=t.init&&(e.write(" = "),this[t.init.type](t.init,e))},ClassDeclaration(t,e){if(e.write("class "+(t.id?`${t.id.name} `:""),t),t.superClass){e.write("extends ");const{superClass:n}=t,{type:i}=n,a=e.expressionsPrecedence[i];"C"===i[0]&&"l"===i[1]&&"E"===i[5]||!(a===ir||a<e.expressionsPrecedence.ClassExpression)?this[n.type](n,e):(e.write("("),this[t.superClass.type](n,e),e.write(")")),e.write(" ")}this.ClassBody(t.body,e)},ImportDeclaration(t,e){e.write("import ");const{specifiers:n}=t,{length:i}=n;let a=0;if(i>0){for(;a<i;){a>0&&e.write(", ");const t=n[a],i=t.type[6];if("D"===i)e.write(t.local.name,t),a++;else{if("N"!==i)break;e.write("* as "+t.local.name,t),a++}}if(a<i){for(e.write("{");;){const t=n[a],{name:r}=t.imported;if(e.write(r,t),r!==t.local.name&&e.write(" as "+t.local.name),!(++a<i))break;e.write(", ")}e.write("}")}e.write(" from ")}this.Literal(t.source,e),e.write(";")},ImportExpression(t,e){e.write("import("),this[t.source.type](t.source,e),e.write(")")},ExportDefaultDeclaration(t,e){e.write("export default "),this[t.declaration.type](t.declaration,e),null!=e.expressionsPrecedence[t.declaration.type]&&"F"!==t.declaration.type[0]&&e.write(";")},ExportNamedDeclaration(t,e){if(e.write("export "),t.declaration)this[t.declaration.type](t.declaration,e);else{e.write("{");const{specifiers:n}=t,{length:i}=n;if(i>0)for(let t=0;;){const a=n[t],{name:r}=a.local;if(e.write(r,a),r!==a.exported.name&&e.write(" as "+a.exported.name),!(++t<i))break;e.write(", ")}e.write("}"),t.source&&(e.write(" from "),this.Literal(t.source,e)),e.write(";")}},ExportAllDeclaration(t,e){null!=t.exported?e.write("export * as "+t.exported.name+" from "):e.write("export * from "),this.Literal(t.source,e),e.write(";")},MethodDefinition(t,e){t.static&&e.write("static ");const n=t.kind[0];"g"!==n&&"s"!==n||e.write(t.kind+" "),t.value.async&&e.write("async "),t.value.generator&&e.write("*"),t.computed?(e.write("["),this[t.key.type](t.key,e),e.write("]")):this[t.key.type](t.key,e),rr(e,t.value.params),e.write(" "),this[t.value.body.type](t.value.body,e)},ClassExpression(t,e){this.ClassDeclaration(t,e)},ArrowFunctionExpression(t,e){e.write(t.async?"async ":"",t);const{params:n}=t;null!=n&&(1===n.length&&"I"===n[0].type[0]?e.write(n[0].name,n[0]):rr(e,t.params)),e.write(" => "),"O"===t.body.type[0]?(e.write("("),this.ObjectExpression(t.body,e),e.write(")")):this[t.body.type](t.body,e)},ThisExpression(t,e){e.write("this",t)},Super(t,e){e.write("super",t)},RestElement:fr=function(t,e){e.write("..."),this[t.argument.type](t.argument,e)},SpreadElement:fr,YieldExpression(t,e){e.write(t.delegate?"yield*":"yield"),t.argument&&(e.write(" "),this[t.argument.type](t.argument,e))},AwaitExpression(t,e){e.write("await ",t),sr(e,t.argument,t)},TemplateLiteral(t,e){const{quasis:n,expressions:i}=t;e.write("`");const{length:a}=i;for(let o=0;o<a;o++){const t=i[o],a=n[o];e.write(a.value.raw,a),e.write("${"),this[t.type](t,e),e.write("}")}const r=n[n.length-1];e.write(r.value.raw,r),e.write("`")},TemplateElement(t,e){e.write(t.value.raw,t)},TaggedTemplateExpression(t,e){sr(e,t.tag,t),this[t.quasi.type](t.quasi,e)},ArrayExpression:pr=function(t,e){if(e.write("["),t.elements.length>0){const{elements:n}=t,{length:i}=n;for(let t=0;;){const a=n[t];if(null!=a&&this[a.type](a,e),!(++t<i)){null==a&&e.write(", ");break}e.write(", ")}}e.write("]")},ArrayPattern:pr,ObjectExpression(t,e){const n=e.indent.repeat(e.indentLevel++),{lineEnd:i,writeComments:a}=e,r=n+e.indent;if(e.write("{"),t.properties.length>0){e.write(i),a&&null!=t.comments&&lr(e,t.comments,r,i);const o=","+i,{properties:s}=t,{length:c}=s;for(let t=0;;){const n=s[t];if(a&&null!=n.comments&&lr(e,n.comments,r,i),e.write(r),this[n.type](n,e),!(++t<c))break;e.write(o)}e.write(i),a&&null!=t.trailingComments&&lr(e,t.trailingComments,r,i),e.write(n+"}")}else a?null!=t.comments?(e.write(i),lr(e,t.comments,r,i),null!=t.trailingComments&&lr(e,t.trailingComments,r,i),e.write(n+"}")):null!=t.trailingComments?(e.write(i),lr(e,t.trailingComments,r,i),e.write(n+"}")):e.write("}"):e.write("}");e.indentLevel--},Property(t,e){t.method||"i"!==t.kind[0]?this.MethodDefinition(t,e):(t.shorthand||(t.computed?(e.write("["),this[t.key.type](t.key,e),e.write("]")):this[t.key.type](t.key,e),e.write(": ")),this[t.value.type](t.value,e))},PropertyDefinition(t,e){t.static&&e.write("static "),t.computed&&e.write("["),this[t.key.type](t.key,e),t.computed&&e.write("]"),null!=t.value?(e.write(" = "),this[t.value.type](t.value,e),e.write(";")):"F"!==t.key.type[0]&&e.write(";")},ObjectPattern(t,e){if(e.write("{"),t.properties.length>0){const{properties:n}=t,{length:i}=n;for(let t=0;this[n[t].type](n[t],e),++t<i;)e.write(", ")}e.write("}")},SequenceExpression(t,e){rr(e,t.expressions)},UnaryExpression(t,e){if(t.prefix){const{operator:n,argument:i,argument:{type:a}}=t;e.write(n);const r=or(e,i,t);r||!(n.length>1)&&("U"!==a[0]||"n"!==a[1]&&"p"!==a[1]||!i.prefix||i.operator[0]!==n||"+"!==n&&"-"!==n)||e.write(" "),r?(e.write(n.length>1?" (":"("),this[a](i,e),e.write(")")):this[a](i,e)}else this[t.argument.type](t.argument,e),e.write(t.operator)},UpdateExpression(t,e){t.prefix?(e.write(t.operator),this[t.argument.type](t.argument,e)):(this[t.argument.type](t.argument,e),e.write(t.operator))},AssignmentExpression(t,e){this[t.left.type](t.left,e),e.write(" "+t.operator+" "),this[t.right.type](t.right,e)},AssignmentPattern(t,e){this[t.left.type](t.left,e),e.write(" = "),this[t.right.type](t.right,e)},BinaryExpression:gr=function(t,e){const n="in"===t.operator;n&&e.write("("),sr(e,t.left,t,!1),e.write(" "+t.operator+" "),sr(e,t.right,t,!0),n&&e.write(")")},LogicalExpression:gr,ConditionalExpression(t,e){const{test:n}=t,i=e.expressionsPrecedence[n.type];i===ir||i<=e.expressionsPrecedence.ConditionalExpression?(e.write("("),this[n.type](n,e),e.write(")")):this[n.type](n,e),e.write(" ? "),this[t.consequent.type](t.consequent,e),e.write(" : "),this[t.alternate.type](t.alternate,e)},NewExpression(t,e){e.write("new ");const n=e.expressionsPrecedence[t.callee.type];n===ir||n<e.expressionsPrecedence.CallExpression||function(t){let e=t;for(;null!=e;){const{type:t}=e;if("C"===t[0]&&"a"===t[1])return!0;if("M"!==t[0]||"e"!==t[1]||"m"!==t[2])return!1;e=e.object}}(t.callee)?(e.write("("),this[t.callee.type](t.callee,e),e.write(")")):this[t.callee.type](t.callee,e),rr(e,t.arguments)},CallExpression(t,e){const n=e.expressionsPrecedence[t.callee.type];n===ir||n<e.expressionsPrecedence.CallExpression?(e.write("("),this[t.callee.type](t.callee,e),e.write(")")):this[t.callee.type](t.callee,e),t.optional&&e.write("?."),rr(e,t.arguments)},ChainExpression(t,e){this[t.expression.type](t.expression,e)},MemberExpression(t,e){const n=e.expressionsPrecedence[t.object.type];n===ir||n<e.expressionsPrecedence.MemberExpression?(e.write("("),this[t.object.type](t.object,e),e.write(")")):this[t.object.type](t.object,e),t.computed?(t.optional&&e.write("?."),e.write("["),this[t.property.type](t.property,e),e.write("]")):(t.optional?e.write("?."):e.write("."),this[t.property.type](t.property,e))},MetaProperty(t,e){e.write(t.meta.name+"."+t.property.name,t)},Identifier(t,e){e.write(t.name,t)},PrivateIdentifier(t,e){e.write(`#${t.name}`,t)},Literal(t,e){null!=t.raw?e.write(t.raw,t):null!=t.regex?this.RegExpLiteral(t,e):null!=t.bigint?e.write(t.bigint+"n",t):e.write(er(t.value),t)},RegExpLiteral(t,e){const{regex:n}=t;e.write(`/${n.pattern}/${n.flags}`,t)}},yr={};class vr{constructor(t){const e=null==t?yr:t;this.output="",null!=e.output?(this.output=e.output,this.write=this.writeToStream):this.output="",this.generator=null!=e.generator?e.generator:mr,this.expressionsPrecedence=null!=e.expressionsPrecedence?e.expressionsPrecedence:ar,this.indent=null!=e.indent?e.indent:" ",this.lineEnd=null!=e.lineEnd?e.lineEnd:"\n",this.indentLevel=null!=e.startingIndentLevel?e.startingIndentLevel:0,this.writeComments=!!e.comments&&e.comments,null!=e.sourceMap&&(this.write=null==e.output?this.writeAndMap:this.writeToStreamAndMap,this.sourceMap=e.sourceMap,this.line=1,this.column=0,this.lineEndSize=this.lineEnd.split("\n").length-1,this.mapping={original:null,generated:this,name:void 0,source:e.sourceMap.file||e.sourceMap._file})}write(t){this.output+=t}writeToStream(t){this.output.write(t)}writeAndMap(t,e){this.output+=t,this.map(t,e)}writeToStreamAndMap(t,e){this.output.write(t),this.map(t,e)}map(t,e){if(null!=e){const{type:n}=e;if("L"===n[0]&&"n"===n[2])return this.column=0,void this.line++;if(null!=e.loc){const{mapping:t}=this;t.original=e.loc.start,t.name=e.name,this.sourceMap.addMapping(t)}if("T"===n[0]&&"E"===n[8]||"L"===n[0]&&"i"===n[1]&&"string"==typeof e.value){const{length:e}=t;let{column:n,line:i}=this;for(let a=0;a<e;a++)"\n"===t[a]?(n=0,i++):n++;return this.column=n,void(this.line=i)}}const{length:n}=t,{lineEnd:i}=this;n>0&&(this.lineEndSize>0&&(1===i.length?t[n-1]===i:t.endsWith(i))?(this.line+=this.lineEndSize,this.column=0):this.column+=n)}toString(){return this.output}}const wr=mr,xr=function(t,e){const n=new vr(e);return n.generator[t.type](t,n),n.output},Rr=function(t,e){const{SourceMapGenerator:n,filePath:i,handlers:a}=e||{},r=n?new n({file:i||"<unknown>.js"}):void 0;return{value:xr(t,{comments:!0,generator:{...wr,...a},sourceMap:r}),map:r?r.toJSON():void 0}},_r={JSXAttribute:function(t,e){this[t.name.type](t.name,e),void 0!==t.value&&null!==t.value&&(e.write("="),"Literal"===t.value.type?e.write('"'+kr(String(t.value.value)).replace(/"/g,""")+'"',t):this[t.value.type](t.value,e))},JSXClosingElement:function(t,e){e.write("</"),this[t.name.type](t.name,e),e.write(">")},JSXClosingFragment:function(t,e){e.write("</>",t)},JSXElement:function(t,e){let n=-1;if(this[t.openingElement.type](t.openingElement,e),t.children)for(;++n<t.children.length;){const i=t.children[n];if("JSXSpreadChild"===i.type)throw new Error("JSX spread children are not supported");this[i.type](i,e)}t.closingElement&&this[t.closingElement.type](t.closingElement,e)},JSXEmptyExpression:function(){},JSXExpressionContainer:function(t,e){e.write("{"),this[t.expression.type](t.expression,e),e.write("}")},JSXFragment:function(t,e){let n=-1;if(this[t.openingFragment.type](t.openingFragment,e),t.children)for(;++n<t.children.length;){const i=t.children[n];if("JSXSpreadChild"===i.type)throw new Error("JSX spread children are not supported");this[i.type](i,e)}this[t.closingFragment.type](t.closingFragment,e)},JSXIdentifier:function(t,e){e.write(t.name,t)},JSXMemberExpression:function(t,e){this[t.object.type](t.object,e),e.write("."),this[t.property.type](t.property,e)},JSXNamespacedName:function(t,e){this[t.namespace.type](t.namespace,e),e.write(":"),this[t.name.type](t.name,e)},JSXOpeningElement:function(t,e){let n=-1;if(e.write("<"),this[t.name.type](t.name,e),t.attributes)for(;++n<t.attributes.length;)e.write(" "),this[t.attributes[n].type](t.attributes[n],e);e.write(t.selfClosing?" />":">")},JSXOpeningFragment:function(t,e){e.write("<>",t)},JSXSpreadAttribute:function(t,e){e.write("{"),this.SpreadElement(t,e),e.write("}")},JSXText:function(t,e){e.write(kr(t.value).replace(/[<>{}]/g,(t=>"<"===t?"<":">"===t?">":"{"===t?"{":"}")),t)}};function kr(t){return t.replace(/&(?=[#a-z])/gi,"&")}function Er(t){const{SourceMapGenerator:e}=t||{};Object.assign(this,{Compiler:function(t,n){const i=Rr(t,e?{filePath:n.path||"unknown.mdx",SourceMapGenerator:e,handlers:_r}:{handlers:_r});return n.map=i.map,i.value}})}class Cr{constructor(t,e,n){this.property=t,this.normal=e,n&&(this.space=n)}}function Sr(t,e){const n={},i={};let a=-1;for(;++a<t.length;)Object.assign(n,t[a].property),Object.assign(i,t[a].normal);return new Cr(n,i,e)}function Tr(t){return t.toLowerCase()}Cr.prototype.property={},Cr.prototype.normal={},Cr.prototype.space=null;class Ar{constructor(t,e){this.property=t,this.attribute=e}}Ar.prototype.space=null,Ar.prototype.boolean=!1,Ar.prototype.booleanish=!1,Ar.prototype.overloadedBoolean=!1,Ar.prototype.number=!1,Ar.prototype.commaSeparated=!1,Ar.prototype.spaceSeparated=!1,Ar.prototype.commaOrSpaceSeparated=!1,Ar.prototype.mustUseProperty=!1,Ar.prototype.defined=!1;let Dr=0;const Ir=Fr(),Lr=Fr(),Or=Fr(),Mr=Fr(),Nr=Fr(),Br=Fr(),Pr=Fr();function Fr(){return 2**++Dr}const jr=Object.keys(a);class $r extends Ar{constructor(t,e,n,i){let r=-1;if(super(t,e),zr(this,"space",i),"number"==typeof n)for(;++r<jr.length;){const t=jr[r];zr(this,jr[r],(n&a[t])===a[t])}}}function zr(t,e,n){n&&(t[e]=n)}$r.prototype.defined=!0;const Hr={}.hasOwnProperty;function Ur(t){const e={},n={};let i;for(i in t.properties)if(Hr.call(t.properties,i)){const a=t.properties[i],r=new $r(i,t.transform(t.attributes||{},i),a,t.space);t.mustUseProperty&&t.mustUseProperty.includes(i)&&(r.mustUseProperty=!0),e[i]=r,n[Tr(i)]=i,n[Tr(r.attribute)]=i}return new Cr(e,n,t.space)}const Vr=Ur({space:"xlink",transform:(t,e)=>"xlink:"+e.slice(5).toLowerCase(),properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null}}),qr=Ur({space:"xml",transform:(t,e)=>"xml:"+e.slice(3).toLowerCase(),properties:{xmlLang:null,xmlBase:null,xmlSpace:null}});function Wr(t,e){return e in t?t[e]:e}function Yr(t,e){return Wr(t,e.toLowerCase())}const Gr=Ur({space:"xmlns",attributes:{xmlnsxlink:"xmlns:xlink"},transform:Yr,properties:{xmlns:null,xmlnsXLink:null}}),Zr=Ur({transform:(t,e)=>"role"===e?e:"aria-"+e.slice(4).toLowerCase(),properties:{ariaActiveDescendant:null,ariaAtomic:Lr,ariaAutoComplete:null,ariaBusy:Lr,ariaChecked:Lr,ariaColCount:Mr,ariaColIndex:Mr,ariaColSpan:Mr,ariaControls:Nr,ariaCurrent:null,ariaDescribedBy:Nr,ariaDetails:null,ariaDisabled:Lr,ariaDropEffect:Nr,ariaErrorMessage:null,ariaExpanded:Lr,ariaFlowTo:Nr,ariaGrabbed:Lr,ariaHasPopup:null,ariaHidden:Lr,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Nr,ariaLevel:Mr,ariaLive:null,ariaModal:Lr,ariaMultiLine:Lr,ariaMultiSelectable:Lr,ariaOrientation:null,ariaOwns:Nr,ariaPlaceholder:null,ariaPosInSet:Mr,ariaPressed:Lr,ariaReadOnly:Lr,ariaRelevant:null,ariaRequired:Lr,ariaRoleDescription:Nr,ariaRowCount:Mr,ariaRowIndex:Mr,ariaRowSpan:Mr,ariaSelected:Lr,ariaSetSize:Mr,ariaSort:null,ariaValueMax:Mr,ariaValueMin:Mr,ariaValueNow:Mr,ariaValueText:null,role:null}}),Kr=Ur({space:"html",attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},transform:Yr,mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Br,acceptCharset:Nr,accessKey:Nr,action:null,allow:null,allowFullScreen:Ir,allowPaymentRequest:Ir,allowUserMedia:Ir,alt:null,as:null,async:Ir,autoCapitalize:null,autoComplete:Nr,autoFocus:Ir,autoPlay:Ir,blocking:Nr,capture:Ir,charSet:null,checked:Ir,cite:null,className:Nr,cols:Mr,colSpan:null,content:null,contentEditable:Lr,controls:Ir,controlsList:Nr,coords:Mr|Br,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Ir,defer:Ir,dir:null,dirName:null,disabled:Ir,download:Or,draggable:Lr,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Ir,formTarget:null,headers:Nr,height:Mr,hidden:Ir,high:Mr,href:null,hrefLang:null,htmlFor:Nr,httpEquiv:Nr,id:null,imageSizes:null,imageSrcSet:null,inert:Ir,inputMode:null,integrity:null,is:null,isMap:Ir,itemId:null,itemProp:Nr,itemRef:Nr,itemScope:Ir,itemType:Nr,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Ir,low:Mr,manifest:null,max:null,maxLength:Mr,media:null,method:null,min:null,minLength:Mr,multiple:Ir,muted:Ir,name:null,nonce:null,noModule:Ir,noValidate:Ir,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Ir,optimum:Mr,pattern:null,ping:Nr,placeholder:null,playsInline:Ir,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Ir,referrerPolicy:null,rel:Nr,required:Ir,reversed:Ir,rows:Mr,rowSpan:Mr,sandbox:Nr,scope:null,scoped:Ir,seamless:Ir,selected:Ir,shape:null,size:Mr,sizes:null,slot:null,span:Mr,spellCheck:Lr,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Mr,step:null,style:null,tabIndex:Mr,target:null,title:null,translate:null,type:null,typeMustMatch:Ir,useMap:null,value:Lr,width:Mr,wrap:null,align:null,aLink:null,archive:Nr,axis:null,background:null,bgColor:null,border:Mr,borderColor:null,bottomMargin:Mr,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Ir,declare:Ir,event:null,face:null,frame:null,frameBorder:null,hSpace:Mr,leftMargin:Mr,link:null,longDesc:null,lowSrc:null,marginHeight:Mr,marginWidth:Mr,noResize:Ir,noHref:Ir,noShade:Ir,noWrap:Ir,object:null,profile:null,prompt:null,rev:null,rightMargin:Mr,rules:null,scheme:null,scrolling:Lr,standby:null,summary:null,text:null,topMargin:Mr,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Mr,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:Ir,disableRemotePlayback:Ir,prefix:null,property:null,results:Mr,security:null,unselectable:null}}),Xr=Ur({space:"svg",attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},transform:Wr,properties:{about:Pr,accentHeight:Mr,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Mr,amplitude:Mr,arabicForm:null,ascent:Mr,attributeName:null,attributeType:null,azimuth:Mr,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Mr,by:null,calcMode:null,capHeight:Mr,className:Nr,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Mr,diffuseConstant:Mr,direction:null,display:null,dur:null,divisor:Mr,dominantBaseline:null,download:Ir,dx:null,dy:null,edgeMode:null,editable:null,elevation:Mr,enableBackground:null,end:null,event:null,exponent:Mr,externalResourcesRequired:null,fill:null,fillOpacity:Mr,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Br,g2:Br,glyphName:Br,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Mr,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Mr,horizOriginX:Mr,horizOriginY:Mr,id:null,ideographic:Mr,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Mr,k:Mr,k1:Mr,k2:Mr,k3:Mr,k4:Mr,kernelMatrix:Pr,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Mr,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Mr,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Mr,overlineThickness:Mr,paintOrder:null,panose1:null,path:null,pathLength:Mr,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Nr,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Mr,pointsAtY:Mr,pointsAtZ:Mr,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Pr,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Pr,rev:Pr,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Pr,requiredFeatures:Pr,requiredFonts:Pr,requiredFormats:Pr,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Mr,specularExponent:Mr,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Mr,strikethroughThickness:Mr,string:null,stroke:null,strokeDashArray:Pr,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Mr,strokeOpacity:Mr,strokeWidth:null,style:null,surfaceScale:Mr,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Pr,tabIndex:Mr,tableValues:null,target:null,targetX:Mr,targetY:Mr,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Pr,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:Mr,underlineThickness:Mr,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Mr,values:null,vAlphabetic:Mr,vMathematical:Mr,vectorEffect:null,vHanging:Mr,vIdeographic:Mr,version:null,vertAdvY:Mr,vertOriginX:Mr,vertOriginY:Mr,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Mr,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null}}),Jr=Sr([qr,Vr,Gr,Zr,Kr],"html"),Qr=Sr([qr,Vr,Gr,Zr,Xr],"svg"),to=no("start"),eo=no("end");function no(t){return function(e){const n=e&&e.position&&e.position[t]||{};return{line:n.line||null,column:n.column||null,offset:n.offset>-1?n.offset:null}}}const io={}.hasOwnProperty;function ao(t,e){const n=e||{};return(""===t[t.length-1]?[...t,""]:t).join((n.padRight?" ":"")+","+(!1===n.padLeft?"":" ")).trim()}const ro=/^data[-\w.:]+$/i,oo=/-[a-z]/g,so=/[A-Z]/g;function co(t,e){const n=Tr(e);let i=e,a=Ar;if(n in t.normal)return t.property[t.normal[n]];if(n.length>4&&"data"===n.slice(0,4)&&ro.test(e)){if("-"===e.charAt(4)){const t=e.slice(5).replace(oo,uo);i="data"+t.charAt(0).toUpperCase()+t.slice(1)}else{const t=e.slice(4);if(!oo.test(t)){let n=t.replace(so,lo);"-"!==n.charAt(0)&&(n="-"+n),e="data"+n}}a=$r}return new a(i,e)}function lo(t){return"-"+t.toLowerCase()}function uo(t){return t.charAt(1).toUpperCase()}const ho={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"};const fo=n(52897),go={}.hasOwnProperty,po=/[A-Z]/g,bo=/-([a-z])/g;function mo(t,e){const n={};try{fo(t,(function(t,e){let i=t;"--"!==i.slice(0,2)&&("-ms-"===i.slice(0,4)&&(i="ms-"+i.slice(4)),i=i.replace(bo,vo));n[i]=e}))}catch(i){const t=i;throw t.message=e+"[style]"+t.message.slice("undefined".length),i}return n}function yo(t){const e={};let n;for(n in t)if(go.call(t,n)){let i=n.replace(po,wo);"ms-"===i.slice(0,3)&&(i="-"+i),e[i]=t[n]}return e}function vo(t,e){return e.toUpperCase()}function wo(t){return"-"+t.toLowerCase()}function xo(t){let e=-1;for(;++e<t.length;)if(!(e?n:He)(t.charCodeAt(e)))return!1;return e>0;function n(t){return Ue(t)||45===t}}const Ro={}.hasOwnProperty;function _o(t,e){const n=(e||[]).concat().sort(Co);return n.length>0&&ko(t,{comments:n,index:0}),t}function ko(t,e){if(e.index===e.comments.length)return;const n=[],i=[];let a;for(a in t)if(Ro.call(t,a)){const e=t[a];if(e&&"object"==typeof e&&"comments"!==a)if(Array.isArray(e)){let t=-1;for(;++t<e.length;)e[t]&&"string"==typeof e[t].type&&n.push(e[t])}else"string"==typeof e.type&&n.push(e)}n.sort(Co),i.push(...Eo(e,t,!1,{leading:!0,trailing:!1}));let r=-1;for(;++r<n.length;)ko(n[r],e);i.push(...Eo(e,t,!0,{leading:!1,trailing:n.length>0})),i.length>0&&(t.comments=i)}function Eo(t,e,n,i){const a=[];for(;t.comments[t.index]&&Co(t.comments[t.index],e,n)<1;)a.push(Object.assign({},t.comments[t.index++],i));return a}function Co(t,e,n){const i=n?"end":"start";return t.range&&e.range?t.range[0]-e.range[n?1:0]:t.loc&&t.loc.start&&e.loc&&e.loc[i]?t.loc.start.line-e.loc[i].line||t.loc.start.column-e.loc[i].column:"start"in t&&i in e?t.start-e[i]:Number.NaN}function So(t,e){const n=t.data&&t.data.estree,i=n&&n.comments||[];let a;n&&(e.comments.push(...i),_o(n,n.comments),a=n.body[0]&&"ExpressionStatement"===n.body[0].type&&n.body[0].expression||void 0),a||(a={type:"JSXEmptyExpression"},e.patch(t,a));const r={type:"JSXExpressionContainer",expression:a};return e.inherit(t,r),r}function To(t,e){const n=e.schema;let i=n;const a=t.attributes||[];let r=-1;t.name&&"html"===n.space&&"svg"===t.name.toLowerCase()&&(i=Qr,e.schema=i);const o=e.all(t),s=[];for(;++r<a.length;){const t=a[r],n=t.value;let i;if("mdxJsxAttribute"===t.type){if(null==n)i=null;else if("object"==typeof n){const t=n.data&&n.data.estree,a=t&&t.comments||[];let r;t&&(e.comments.push(...a),_o(t,t.comments),r=t.body[0]&&"ExpressionStatement"===t.body[0].type&&t.body[0].expression||void 0),i={type:"JSXExpressionContainer",expression:r||{type:"JSXEmptyExpression"}},e.inherit(n,i)}else i={type:"Literal",value:String(n)};const a={type:"JSXAttribute",name:e.createJsxAttributeName(t.name),value:i};e.inherit(t,a),s.push(a)}else{const n=t.data&&t.data.estree,i=n&&n.comments||[];let a;n&&(e.comments.push(...i),_o(n,n.comments),a=n.body[0]&&"ExpressionStatement"===n.body[0].type&&n.body[0].expression&&"ObjectExpression"===n.body[0].expression.type&&n.body[0].expression.properties&&n.body[0].expression.properties[0]&&"SpreadElement"===n.body[0].expression.properties[0].type&&n.body[0].expression.properties[0].argument||void 0);const r={type:"JSXSpreadAttribute",argument:a||{type:"ObjectExpression",properties:[]}};e.inherit(t,r),s.push(r)}}e.schema=n;const c=t.name?{type:"JSXElement",openingElement:{type:"JSXOpeningElement",attributes:s,name:e.createJsxElementName(t.name),selfClosing:0===o.length},closingElement:o.length>0?{type:"JSXClosingElement",name:e.createJsxElementName(t.name)}:null,children:o}:{type:"JSXFragment",openingFragment:{type:"JSXOpeningFragment"},closingFragment:{type:"JSXClosingFragment"},children:o};return e.inherit(t,c),c}function Ao(t){const e=t&&"object"==typeof t&&"text"===t.type?t.value||"":t;return"string"==typeof e&&""===e.replace(/[ \t\n\f\r]/g,"")}const Do={comment:function(t,e){const n={type:"Block",value:t.value};e.inherit(t,n),e.comments.push(n);const i={type:"JSXEmptyExpression",comments:[Object.assign({},n,{leading:!1,trailing:!0})]};e.patch(t,i);const a={type:"JSXExpressionContainer",expression:i};return e.patch(t,a),a},doctype:function(){},element:function(t,e){const n=e.schema;let i=n;const a=t.properties||{};"html"===n.space&&"svg"===t.tagName.toLowerCase()&&(i=Qr,e.schema=i);const r=e.all(t),o=[];let s;for(s in a)if(go.call(a,s)){let n=a[s];const r=co(i,s);let c;if(null==n||"number"==typeof n&&Number.isNaN(n)||!1===n||!n&&r.boolean)continue;if(s="react"===e.elementAttributeNameCase&&r.space?ho[r.property]||r.property:r.attribute,Array.isArray(n)&&(n=r.commaSeparated?ao(n):n.join(" ").trim()),"style"===s){let i="object"==typeof n?n:mo(String(n),t.tagName);"css"===e.stylePropertyNameCase&&(i=yo(i));const a=[];let r;for(r in i)go.call(i,r)&&a.push({type:"Property",method:!1,shorthand:!1,computed:!1,key:Ve(r)?{type:"Identifier",name:r}:{type:"Literal",value:r},value:{type:"Literal",value:String(i[r])},kind:"init"});c={type:"JSXExpressionContainer",expression:{type:"ObjectExpression",properties:a}}}else c=!0===n?null:{type:"Literal",value:String(n)};xo(s)?o.push({type:"JSXAttribute",name:{type:"JSXIdentifier",name:s},value:c}):o.push({type:"JSXSpreadAttribute",argument:{type:"ObjectExpression",properties:[{type:"Property",method:!1,shorthand:!1,computed:!1,key:{type:"Literal",value:String(s)},value:c||{type:"Literal",value:!0},kind:"init"}]}})}e.schema=n;const c={type:"JSXElement",openingElement:{type:"JSXOpeningElement",attributes:o,name:e.createJsxElementName(t.tagName),selfClosing:0===r.length},closingElement:r.length>0?{type:"JSXClosingElement",name:e.createJsxElementName(t.tagName)}:null,children:r};return e.inherit(t,c),c},mdxFlowExpression:So,mdxTextExpression:So,mdxJsxFlowElement:To,mdxJsxTextElement:To,mdxjsEsm:function(t,e){const n=t.data&&t.data.estree,i=n&&n.comments||[];n&&(e.comments.push(...i),_o(n,i),e.esm.push(...n.body))},text:function(t,e){const n=String(t.value||"");if(n){const i={type:"Literal",value:n};e.inherit(t,i);const a={type:"JSXExpressionContainer",expression:i};return e.patch(t,a),a}},root:function(t,e){const n=e.all(t),i=[];let a,r=-1;for(;++r<n.length;){const t=n[r];"JSXExpressionContainer"===t.type&&"Literal"===t.expression.type&&Ao(t.expression.value)?a&&a.push(t):(a&&i.push(...a),i.push(t),a=[])}const o={type:"JSXFragment",openingFragment:{type:"JSXOpeningFragment"},closingFragment:{type:"JSXClosingFragment"},children:i};return e.inherit(t,o),o}};const Io={}.hasOwnProperty,Lo=new Set(["table","thead","tbody","tfoot","tr"]);function Oo(t){const e=function(t,e){const n=e||{};function i(e,...n){let a=i.invalid;const r=i.handlers;if(e&&io.call(e,t)){const n=String(e[t]);a=io.call(r,n)?r[n]:i.unknown}if(a)return a.call(this,e,...n)}return i.handlers=n.handlers||{},i.invalid=n.invalid,i.unknown=n.unknown,i}("type",{invalid:Mo,unknown:No,handlers:{...Do,...t.handlers}});return{schema:"svg"===t.space?Qr:Jr,elementAttributeNameCase:t.elementAttributeNameCase||"react",stylePropertyNameCase:t.stylePropertyNameCase||"dom",comments:[],esm:[],handle:function(t){return e(t,this)},all:Bo,patch:Fo,inherit:Po,createJsxAttributeName:jo,createJsxElementName:$o}}function Mo(t){throw new Error("Cannot handle value `"+t+"`, expected node")}function No(t){throw new Error("Cannot handle unknown node `"+t.type+"`")}function Bo(t){const e=t.children||[];let n=-1;const i=[],a="html"===this.schema.space&&"element"===t.type&&Lo.has(t.tagName.toLowerCase());for(;++n<e.length;){const t=e[n];if(a&&"text"===t.type&&"\n"===t.value)continue;const r=this.handle(t);Array.isArray(r)?i.push(...r):r&&i.push(r)}return i}function Po(t,e){const n=t.data;let i,a;if(Fo(t,e),n){for(a in n)Io.call(n,a)&&"estree"!==a&&(i||(i={}),i[a]=n[a]);i&&(e.data=i)}}function Fo(t,e){const n=function(t){return{start:to(t),end:eo(t)}}(t);n.start.line&&void 0!==n.start.offset&&void 0!==n.end.offset&&(e.start=n.start.offset,e.end=n.end.offset,e.loc={start:{line:n.start.line,column:n.start.column-1},end:{line:n.end.line,column:n.end.column-1}},e.range=[n.start.offset,n.end.offset])}function jo(t){const e=zo(t);if("JSXMemberExpression"===e.type)throw new Error("Member expressions in attribute names are not supported");return e}function $o(t){return zo(t)}function zo(t){if(t.includes(".")){const e=t.split(".");let n=e.shift(),i={type:"JSXIdentifier",name:n};for(;n=e.shift();)i={type:"JSXMemberExpression",object:i,property:{type:"JSXIdentifier",name:n}};return i}if(t.includes(":")){const e=t.split(":");return{type:"JSXNamespacedName",namespace:{type:"JSXIdentifier",name:e[0]},name:{type:"JSXIdentifier",name:e[1]}}}return{type:"JSXIdentifier",name:t}}function Ho(t){return e=>function(t,e){const n=Oo(e||{});let i=n.handle(t);const a=n.esm;if(i){"JSXFragment"!==i.type&&"JSXElement"!==i.type&&(i={type:"JSXFragment",openingFragment:{type:"JSXOpeningFragment"},closingFragment:{type:"JSXClosingFragment"},children:[i]},n.patch(t,i));const e={type:"ExpressionStatement",expression:i};n.patch(t,e),a.push(e)}const r={type:"Program",body:a,sourceType:"module",comments:n.comments};return n.patch(t,r),r}(e,t)}const Uo=function(t,e,n,i){"function"==typeof e&&"function"!=typeof n&&(i=n,n=e,e=null),(0,ia.S4)(t,e,(function(t,e){const i=e[e.length-1];return n(t,i?i.children.indexOf(t):null,i)}),i)};function Vo(){return t=>{Uo(t,"raw",((t,e,n)=>{if(n&&"number"==typeof e)return n.children.splice(e,1),e}))}}function qo(){return t=>{Uo(t,((t,e,n)=>{let i=-1,a=!0,r=!1;if(n&&"number"==typeof e&&"paragraph"===t.type){const o=t.children;for(;++i<o.length;){const t=o[i];if("mdxJsxTextElement"===t.type||"mdxTextExpression"===t.type)r=!0;else if("text"!==t.type||!/^[\t\r\n ]+$/.test(String(t.value))){a=!1;break}}if(a&&r){i=-1;const t=[];for(;++i<o.length;){const e=o[i];"mdxJsxTextElement"===e.type&&(e.type="mdxJsxFlowElement"),"mdxTextExpression"===e.type&&(e.type="mdxFlowExpression"),"text"===e.type&&/^[\t\r\n ]+$/.test(String(e.value))||t.push(e)}return n.children.splice(e,1,...t),e}}if("mdxJsxFlowElement"===t.type||"mdxJsxTextElement"===t.type){(t.data||(t.data={}))._mdxExplicitJsx=!0}}))}}const Wo=["mdxFlowExpression","mdxJsxFlowElement","mdxJsxTextElement","mdxTextExpression","mdxjsEsm"],Yo=["filepath","compilers","hastPlugins","mdPlugins","skipExport","wrapExport"];function Go(t){const{development:e,jsx:n,format:i,outputFormat:a,providerImportSource:r,recmaPlugins:o,rehypePlugins:s,remarkPlugins:c,remarkRehypeOptions:l,elementAttributeNameCase:u,stylePropertyNameCase:d,SourceMapGenerator:h,...f}=t||{},g=null!=e&&e;let p=-1;for(;++p<Yo.length;){const e=Yo[p];if(t&&e in t)throw new Error("`options."+e+"` is no longer supported. Please see <https://mdxjs.com/migrating/v2/> for more information")}if("detect"===i)throw new Error("Incorrect `format: 'detect'`: `createProcessor` can support either `md` or `mdx`; it does not support detecting the format");const b=E().use(ea);"md"!==i&&b.use(In);const m=l&&l.passThrough||[];return b.use(qo).use(c||[]).use(Ea,{...l,allowDangerousHtml:!0,passThrough:[...m,...Wo]}).use(s||[]),"md"===i&&b.use(Vo),b.use(Ho,{elementAttributeNameCase:u,stylePropertyNameCase:d}).use(Za,{...f,outputFormat:a}).use(Ja,{development:g,providerImportSource:r,outputFormat:a}),n||b.use($a,{development:g,outputFormat:a}),b.use(Er,{SourceMapGenerator:h}).use(o||[]),b}const Zo={basename:function(t,e){if(void 0!==e&&"string"!=typeof e)throw new TypeError('"ext" argument must be a string');Ko(t);let n,i=0,a=-1,r=t.length;if(void 0===e||0===e.length||e.length>t.length){for(;r--;)if(47===t.charCodeAt(r)){if(n){i=r+1;break}}else a<0&&(n=!0,a=r+1);return a<0?"":t.slice(i,a)}if(e===t)return"";let o=-1,s=e.length-1;for(;r--;)if(47===t.charCodeAt(r)){if(n){i=r+1;break}}else o<0&&(n=!0,o=r+1),s>-1&&(t.charCodeAt(r)===e.charCodeAt(s--)?s<0&&(a=r):(s=-1,a=o));i===a?a=o:a<0&&(a=t.length);return t.slice(i,a)},dirname:function(t){if(Ko(t),0===t.length)return".";let e,n=-1,i=t.length;for(;--i;)if(47===t.charCodeAt(i)){if(e){n=i;break}}else e||(e=!0);return n<0?47===t.charCodeAt(0)?"/":".":1===n&&47===t.charCodeAt(0)?"//":t.slice(0,n)},extname:function(t){Ko(t);let e,n=t.length,i=-1,a=0,r=-1,o=0;for(;n--;){const s=t.charCodeAt(n);if(47!==s)i<0&&(e=!0,i=n+1),46===s?r<0?r=n:1!==o&&(o=1):r>-1&&(o=-1);else if(e){a=n+1;break}}if(r<0||i<0||0===o||1===o&&r===i-1&&r===a+1)return"";return t.slice(r,i)},join:function(...t){let e,n=-1;for(;++n<t.length;)Ko(t[n]),t[n]&&(e=void 0===e?t[n]:e+"/"+t[n]);return void 0===e?".":function(t){Ko(t);const e=47===t.charCodeAt(0);let n=function(t,e){let n,i,a="",r=0,o=-1,s=0,c=-1;for(;++c<=t.length;){if(c<t.length)n=t.charCodeAt(c);else{if(47===n)break;n=47}if(47===n){if(o===c-1||1===s);else if(o!==c-1&&2===s){if(a.length<2||2!==r||46!==a.charCodeAt(a.length-1)||46!==a.charCodeAt(a.length-2))if(a.length>2){if(i=a.lastIndexOf("/"),i!==a.length-1){i<0?(a="",r=0):(a=a.slice(0,i),r=a.length-1-a.lastIndexOf("/")),o=c,s=0;continue}}else if(a.length>0){a="",r=0,o=c,s=0;continue}e&&(a=a.length>0?a+"/..":"..",r=2)}else a.length>0?a+="/"+t.slice(o+1,c):a=t.slice(o+1,c),r=c-o-1;o=c,s=0}else 46===n&&s>-1?s++:s=-1}return a}(t,!e);0!==n.length||e||(n=".");n.length>0&&47===t.charCodeAt(t.length-1)&&(n+="/");return e?"/"+n:n}(e)},sep:"/"};function Ko(t){if("string"!=typeof t)throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}const Xo={cwd:function(){return"/"}};function Jo(t){return null!==t&&"object"==typeof t&&t.href&&t.origin}function Qo(t){if("string"==typeof t)t=new URL(t);else if(!Jo(t)){const e=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+t+"`");throw e.code="ERR_INVALID_ARG_TYPE",e}if("file:"!==t.protocol){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return function(t){if(""!==t.hostname){const t=new TypeError('File URL host must be "localhost" or empty on darwin');throw t.code="ERR_INVALID_FILE_URL_HOST",t}const e=t.pathname;let n=-1;for(;++n<e.length;)if(37===e.charCodeAt(n)&&50===e.charCodeAt(n+1)){const t=e.charCodeAt(n+2);if(70===t||102===t){const t=new TypeError("File URL path must not include encoded / characters");throw t.code="ERR_INVALID_FILE_URL_PATH",t}}return decodeURIComponent(e)}(t)}const ts=["history","path","basename","stem","extname","dirname"];class es{constructor(t){let e;e=t?"string"==typeof t||function(t){return o(t)}(t)?{value:t}:Jo(t)?{path:t}:t:{},this.data={},this.messages=[],this.history=[],this.cwd=Xo.cwd(),this.value,this.stored,this.result,this.map;let n,i=-1;for(;++i<ts.length;){const t=ts[i];t in e&&void 0!==e[t]&&null!==e[t]&&(this[t]="history"===t?[...e[t]]:e[t])}for(n in e)ts.includes(n)||(this[n]=e[n])}get path(){return this.history[this.history.length-1]}set path(t){Jo(t)&&(t=Qo(t)),is(t,"path"),this.path!==t&&this.history.push(t)}get dirname(){return"string"==typeof this.path?Zo.dirname(this.path):void 0}set dirname(t){as(this.basename,"dirname"),this.path=Zo.join(t||"",this.basename)}get basename(){return"string"==typeof this.path?Zo.basename(this.path):void 0}set basename(t){is(t,"basename"),ns(t,"basename"),this.path=Zo.join(this.dirname||"",t)}get extname(){return"string"==typeof this.path?Zo.extname(this.path):void 0}set extname(t){if(ns(t,"extname"),as(this.dirname,"extname"),t){if(46!==t.charCodeAt(0))throw new Error("`extname` must start with `.`");if(t.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=Zo.join(this.dirname,this.stem+(t||""))}get stem(){return"string"==typeof this.path?Zo.basename(this.path,this.extname):void 0}set stem(t){is(t,"stem"),ns(t,"stem"),this.path=Zo.join(this.dirname||"",t+(this.extname||""))}toString(t){return(this.value||"").toString(t||void 0)}message(t,e,n){const i=new g(t,e,n);return this.path&&(i.name=this.path+":"+i.name,i.file=this.path),i.fatal=!1,this.messages.push(i),i}info(t,e,n){const i=this.message(t,e,n);return i.fatal=null,i}fail(t,e,n){const i=this.message(t,e,n);throw i.fatal=!0,i}}function ns(t,e){if(t&&t.includes(Zo.sep))throw new Error("`"+e+"` cannot be a path: did not expect `"+Zo.sep+"`")}function is(t,e){if(!t)throw new Error("`"+e+"` cannot be empty")}function as(t,e){if(!t)throw new Error("Setting `"+e+"` requires `path` to be set too")}const rs=n(26024).map((t=>"."+t));function os(t,e){const n=(i=t,Boolean(i&&"object"==typeof i&&"message"in i&&"messages"in i)?t:new es(t));var i;const{format:a,...r}=e||{};return{file:n,options:{format:"md"===a||"mdx"===a?a:n.extname&&(r.mdExtensions||rs).includes(n.extname)?"md":"mdx",...r}}}function ss(t,e){const{file:n,options:i}=os(t,e);return Go(i).process(n)}function cs(t,e){const{file:n,options:i}=os(t,e);return Go(i).processSync(n)}},64777:(t,e,n)=>{"use strict";function i(t,e){const n=String(t);if("string"!=typeof e)throw new TypeError("Expected character");let i=0,a=n.indexOf(e);for(;-1!==a;)i++,a=n.indexOf(e,a+e.length);return i}n.d(e,{w:()=>i})},59373:(t,e,n)=>{"use strict";function i(t,e){let n;if(void 0===e)for(const i of t)null!=i&&(n<i||void 0===n&&i>=i)&&(n=i);else{let i=-1;for(let a of t)null!=(a=e(a,++i,t))&&(n<a||void 0===n&&a>=a)&&(n=a)}return n}function a(t,e){let n;if(void 0===e)for(const i of t)null!=i&&(n>i||void 0===n&&i>=i)&&(n=i);else{let i=-1;for(let a of t)null!=(a=e(a,++i,t))&&(n>a||void 0===n&&a>=a)&&(n=a)}return n}function r(t){return t}n.d(e,{Nb1:()=>os,LLu:()=>g,F5q:()=>f,$0Z:()=>vs,Dts:()=>xs,WQY:()=>_s,qpX:()=>Es,u93:()=>Cs,tFB:()=>Ts,YY7:()=>Is,OvA:()=>Os,dCK:()=>Ns,zgE:()=>Fs,fGX:()=>$s,$m7:()=>Hs,c_6:()=>ls,fxm:()=>Vs,FdL:()=>Js,ak_:()=>Qs,SxZ:()=>nc,eA_:()=>ac,jsv:()=>oc,iJ:()=>rc,JHv:()=>hi,jvg:()=>hs,Fp7:()=>i,VV$:()=>a,ve8:()=>ps,BYU:()=>ra,PKp:()=>ha,Xf:()=>Ao,Ys:()=>Do,td_:()=>Io,YPS:()=>Yn,rr1:()=>Aa,i$Z:()=>sr,WQD:()=>Sa,Z_i:()=>Ea,F0B:()=>Ga,NGh:()=>Oa});var o=1e-6;function s(t){return"translate("+t+",0)"}function c(t){return"translate(0,"+t+")"}function l(t){return e=>+t(e)}function u(t,e){return e=Math.max(0,t.bandwidth()-2*e)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function d(){return!this.__axis}function h(t,e){var n=[],i=null,a=null,h=6,f=6,g=3,p="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,b=1===t||4===t?-1:1,m=4===t||2===t?"x":"y",y=1===t||3===t?s:c;function v(s){var c=null==i?e.ticks?e.ticks.apply(e,n):e.domain():i,v=null==a?e.tickFormat?e.tickFormat.apply(e,n):r:a,w=Math.max(h,0)+g,x=e.range(),R=+x[0]+p,_=+x[x.length-1]+p,k=(e.bandwidth?u:l)(e.copy(),p),E=s.selection?s.selection():s,C=E.selectAll(".domain").data([null]),S=E.selectAll(".tick").data(c,e).order(),T=S.exit(),A=S.enter().append("g").attr("class","tick"),D=S.select("line"),I=S.select("text");C=C.merge(C.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),S=S.merge(A),D=D.merge(A.append("line").attr("stroke","currentColor").attr(m+"2",b*h)),I=I.merge(A.append("text").attr("fill","currentColor").attr(m,b*w).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),s!==E&&(C=C.transition(s),S=S.transition(s),D=D.transition(s),I=I.transition(s),T=T.transition(s).attr("opacity",o).attr("transform",(function(t){return isFinite(t=k(t))?y(t+p):this.getAttribute("transform")})),A.attr("opacity",o).attr("transform",(function(t){var e=this.parentNode.__axis;return y((e&&isFinite(e=e(t))?e:k(t))+p)}))),T.remove(),C.attr("d",4===t||2===t?f?"M"+b*f+","+R+"H"+p+"V"+_+"H"+b*f:"M"+p+","+R+"V"+_:f?"M"+R+","+b*f+"V"+p+"H"+_+"V"+b*f:"M"+R+","+p+"H"+_),S.attr("opacity",1).attr("transform",(function(t){return y(k(t)+p)})),D.attr(m+"2",b*h),I.attr(m,b*w).text(v),E.filter(d).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),E.each((function(){this.__axis=k}))}return v.scale=function(t){return arguments.length?(e=t,v):e},v.ticks=function(){return n=Array.from(arguments),v},v.tickArguments=function(t){return arguments.length?(n=null==t?[]:Array.from(t),v):n.slice()},v.tickValues=function(t){return arguments.length?(i=null==t?null:Array.from(t),v):i&&i.slice()},v.tickFormat=function(t){return arguments.length?(a=t,v):a},v.tickSize=function(t){return arguments.length?(h=f=+t,v):h},v.tickSizeInner=function(t){return arguments.length?(h=+t,v):h},v.tickSizeOuter=function(t){return arguments.length?(f=+t,v):f},v.tickPadding=function(t){return arguments.length?(g=+t,v):g},v.offset=function(t){return arguments.length?(p=+t,v):p},v}function f(t){return h(1,t)}function g(t){return h(3,t)}function p(){}function b(t){return null==t?p:function(){return this.querySelector(t)}}function m(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}function y(){return[]}function v(t){return null==t?y:function(){return this.querySelectorAll(t)}}function w(t){return function(){return this.matches(t)}}function x(t){return function(e){return e.matches(t)}}var R=Array.prototype.find;function _(){return this.firstElementChild}var k=Array.prototype.filter;function E(){return Array.from(this.children)}function C(t){return new Array(t.length)}function S(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function T(t){return function(){return t}}function A(t,e,n,i,a,r){for(var o,s=0,c=e.length,l=r.length;s<l;++s)(o=e[s])?(o.__data__=r[s],i[s]=o):n[s]=new S(t,r[s]);for(;s<c;++s)(o=e[s])&&(a[s]=o)}function D(t,e,n,i,a,r,o){var s,c,l,u=new Map,d=e.length,h=r.length,f=new Array(d);for(s=0;s<d;++s)(c=e[s])&&(f[s]=l=o.call(c,c.__data__,s,e)+"",u.has(l)?a[s]=c:u.set(l,c));for(s=0;s<h;++s)l=o.call(t,r[s],s,r)+"",(c=u.get(l))?(i[s]=c,c.__data__=r[s],u.delete(l)):n[s]=new S(t,r[s]);for(s=0;s<d;++s)(c=e[s])&&u.get(f[s])===c&&(a[s]=c)}function I(t){return t.__data__}function L(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function O(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}S.prototype={constructor:S,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var M="http://www.w3.org/1999/xhtml";const N={svg:"http://www.w3.org/2000/svg",xhtml:M,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function B(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),N.hasOwnProperty(e)?{space:N[e],local:t}:t}function P(t){return function(){this.removeAttribute(t)}}function F(t){return function(){this.removeAttributeNS(t.space,t.local)}}function j(t,e){return function(){this.setAttribute(t,e)}}function $(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function z(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function H(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function U(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function V(t){return function(){this.style.removeProperty(t)}}function q(t,e,n){return function(){this.style.setProperty(t,e,n)}}function W(t,e,n){return function(){var i=e.apply(this,arguments);null==i?this.style.removeProperty(t):this.style.setProperty(t,i,n)}}function Y(t,e){return t.style.getPropertyValue(e)||U(t).getComputedStyle(t,null).getPropertyValue(e)}function G(t){return function(){delete this[t]}}function Z(t,e){return function(){this[t]=e}}function K(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function X(t){return t.trim().split(/^|\s+/)}function J(t){return t.classList||new Q(t)}function Q(t){this._node=t,this._names=X(t.getAttribute("class")||"")}function tt(t,e){for(var n=J(t),i=-1,a=e.length;++i<a;)n.add(e[i])}function et(t,e){for(var n=J(t),i=-1,a=e.length;++i<a;)n.remove(e[i])}function nt(t){return function(){tt(this,t)}}function it(t){return function(){et(this,t)}}function at(t,e){return function(){(e.apply(this,arguments)?tt:et)(this,t)}}function rt(){this.textContent=""}function ot(t){return function(){this.textContent=t}}function st(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function ct(){this.innerHTML=""}function lt(t){return function(){this.innerHTML=t}}function ut(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function dt(){this.nextSibling&&this.parentNode.appendChild(this)}function ht(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ft(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===M&&e.documentElement.namespaceURI===M?e.createElement(t):e.createElementNS(n,t)}}function gt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function pt(t){var e=B(t);return(e.local?gt:ft)(e)}function bt(){return null}function mt(){var t=this.parentNode;t&&t.removeChild(this)}function yt(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function vt(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function wt(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function xt(t){return function(){var e=this.__on;if(e){for(var n,i=0,a=-1,r=e.length;i<r;++i)n=e[i],t.type&&n.type!==t.type||n.name!==t.name?e[++a]=n:this.removeEventListener(n.type,n.listener,n.options);++a?e.length=a:delete this.__on}}}function Rt(t,e,n){return function(){var i,a=this.__on,r=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(a)for(var o=0,s=a.length;o<s;++o)if((i=a[o]).type===t.type&&i.name===t.name)return this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=r,i.options=n),void(i.value=e);this.addEventListener(t.type,r,n),i={type:t.type,name:t.name,value:e,listener:r,options:n},a?a.push(i):this.__on=[i]}}function _t(t,e,n){var i=U(t),a=i.CustomEvent;"function"==typeof a?a=new a(e,n):(a=i.document.createEvent("Event"),n?(a.initEvent(e,n.bubbles,n.cancelable),a.detail=n.detail):a.initEvent(e,!1,!1)),t.dispatchEvent(a)}function kt(t,e){return function(){return _t(this,t,e)}}function Et(t,e){return function(){return _t(this,t,e.apply(this,arguments))}}Q.prototype={add:function(t){this._names.indexOf(t)<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}};var Ct=[null];function St(t,e){this._groups=t,this._parents=e}function Tt(){return new St([[document.documentElement]],Ct)}St.prototype=Tt.prototype={constructor:St,select:function(t){"function"!=typeof t&&(t=b(t));for(var e=this._groups,n=e.length,i=new Array(n),a=0;a<n;++a)for(var r,o,s=e[a],c=s.length,l=i[a]=new Array(c),u=0;u<c;++u)(r=s[u])&&(o=t.call(r,r.__data__,u,s))&&("__data__"in r&&(o.__data__=r.__data__),l[u]=o);return new St(i,this._parents)},selectAll:function(t){t="function"==typeof t?function(t){return function(){return m(t.apply(this,arguments))}}(t):v(t);for(var e=this._groups,n=e.length,i=[],a=[],r=0;r<n;++r)for(var o,s=e[r],c=s.length,l=0;l<c;++l)(o=s[l])&&(i.push(t.call(o,o.__data__,l,s)),a.push(o));return new St(i,a)},selectChild:function(t){return this.select(null==t?_:function(t){return function(){return R.call(this.children,t)}}("function"==typeof t?t:x(t)))},selectChildren:function(t){return this.selectAll(null==t?E:function(t){return function(){return k.call(this.children,t)}}("function"==typeof t?t:x(t)))},filter:function(t){"function"!=typeof t&&(t=w(t));for(var e=this._groups,n=e.length,i=new Array(n),a=0;a<n;++a)for(var r,o=e[a],s=o.length,c=i[a]=[],l=0;l<s;++l)(r=o[l])&&t.call(r,r.__data__,l,o)&&c.push(r);return new St(i,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,I);var n=e?D:A,i=this._parents,a=this._groups;"function"!=typeof t&&(t=T(t));for(var r=a.length,o=new Array(r),s=new Array(r),c=new Array(r),l=0;l<r;++l){var u=i[l],d=a[l],h=d.length,f=L(t.call(u,u&&u.__data__,l,i)),g=f.length,p=s[l]=new Array(g),b=o[l]=new Array(g),m=c[l]=new Array(h);n(u,d,p,b,m,f,e);for(var y,v,w=0,x=0;w<g;++w)if(y=p[w]){for(w>=x&&(x=w+1);!(v=b[x])&&++x<g;);y._next=v||null}}return(o=new St(o,i))._enter=s,o._exit=c,o},enter:function(){return new St(this._enter||this._groups.map(C),this._parents)},exit:function(){return new St(this._exit||this._groups.map(C),this._parents)},join:function(t,e,n){var i=this.enter(),a=this,r=this.exit();return"function"==typeof t?(i=t(i))&&(i=i.selection()):i=i.append(t+""),null!=e&&(a=e(a))&&(a=a.selection()),null==n?r.remove():n(r),i&&a?i.merge(a).order():a},merge:function(t){for(var e=t.selection?t.selection():t,n=this._groups,i=e._groups,a=n.length,r=i.length,o=Math.min(a,r),s=new Array(a),c=0;c<o;++c)for(var l,u=n[c],d=i[c],h=u.length,f=s[c]=new Array(h),g=0;g<h;++g)(l=u[g]||d[g])&&(f[g]=l);for(;c<a;++c)s[c]=n[c];return new St(s,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var i,a=t[e],r=a.length-1,o=a[r];--r>=0;)(i=a[r])&&(o&&4^i.compareDocumentPosition(o)&&o.parentNode.insertBefore(i,o),o=i);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=O);for(var n=this._groups,i=n.length,a=new Array(i),r=0;r<i;++r){for(var o,s=n[r],c=s.length,l=a[r]=new Array(c),u=0;u<c;++u)(o=s[u])&&(l[u]=o);l.sort(e)}return new St(a,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i=t[e],a=0,r=i.length;a<r;++a){var o=i[a];if(o)return o}return null},size:function(){let t=0;for(const e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,n=0,i=e.length;n<i;++n)for(var a,r=e[n],o=0,s=r.length;o<s;++o)(a=r[o])&&t.call(a,a.__data__,o,r);return this},attr:function(t,e){var n=B(t);if(arguments.length<2){var i=this.node();return n.local?i.getAttributeNS(n.space,n.local):i.getAttribute(n)}return this.each((null==e?n.local?F:P:"function"==typeof e?n.local?H:z:n.local?$:j)(n,e))},style:function(t,e,n){return arguments.length>1?this.each((null==e?V:"function"==typeof e?W:q)(t,e,null==n?"":n)):Y(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?G:"function"==typeof e?K:Z)(t,e)):this.node()[t]},classed:function(t,e){var n=X(t+"");if(arguments.length<2){for(var i=J(this.node()),a=-1,r=n.length;++a<r;)if(!i.contains(n[a]))return!1;return!0}return this.each(("function"==typeof e?at:e?nt:it)(n,e))},text:function(t){return arguments.length?this.each(null==t?rt:("function"==typeof t?st:ot)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?ct:("function"==typeof t?ut:lt)(t)):this.node().innerHTML},raise:function(){return this.each(dt)},lower:function(){return this.each(ht)},append:function(t){var e="function"==typeof t?t:pt(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var n="function"==typeof t?t:pt(t),i=null==e?bt:"function"==typeof e?e:b(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),i.apply(this,arguments)||null)}))},remove:function(){return this.each(mt)},clone:function(t){return this.select(t?vt:yt)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,n){var i,a,r=wt(t+""),o=r.length;if(!(arguments.length<2)){for(s=e?Rt:xt,i=0;i<o;++i)this.each(s(r[i],e,n));return this}var s=this.node().__on;if(s)for(var c,l=0,u=s.length;l<u;++l)for(i=0,c=s[l];i<o;++i)if((a=r[i]).type===c.type&&a.name===c.name)return c.value},dispatch:function(t,e){return this.each(("function"==typeof e?Et:kt)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i,a=t[e],r=0,o=a.length;r<o;++r)(i=a[r])&&(yield i)}};const At=Tt;var Dt={value:()=>{}};function It(){for(var t,e=0,n=arguments.length,i={};e<n;++e){if(!(t=arguments[e]+"")||t in i||/[\s.]/.test(t))throw new Error("illegal type: "+t);i[t]=[]}return new Lt(i)}function Lt(t){this._=t}function Ot(t,e){return t.trim().split(/^|\s+/).map((function(t){var n="",i=t.indexOf(".");if(i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function Mt(t,e){for(var n,i=0,a=t.length;i<a;++i)if((n=t[i]).name===e)return n.value}function Nt(t,e,n){for(var i=0,a=t.length;i<a;++i)if(t[i].name===e){t[i]=Dt,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=n&&t.push({name:e,value:n}),t}Lt.prototype=It.prototype={constructor:Lt,on:function(t,e){var n,i=this._,a=Ot(t+"",i),r=-1,o=a.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++r<o;)if(n=(t=a[r]).type)i[n]=Nt(i[n],t.name,e);else if(null==e)for(n in i)i[n]=Nt(i[n],t.name,null);return this}for(;++r<o;)if((n=(t=a[r]).type)&&(n=Mt(i[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new Lt(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,i,a=new Array(n),r=0;r<n;++r)a[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(r=0,n=(i=this._[t]).length;r<n;++r)i[r].value.apply(e,a)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var i=this._[t],a=0,r=i.length;a<r;++a)i[a].value.apply(e,n)}};const Bt=It;var Pt,Ft,jt=0,$t=0,zt=0,Ht=0,Ut=0,Vt=0,qt="object"==typeof performance&&performance.now?performance:Date,Wt="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Yt(){return Ut||(Wt(Gt),Ut=qt.now()+Vt)}function Gt(){Ut=0}function Zt(){this._call=this._time=this._next=null}function Kt(t,e,n){var i=new Zt;return i.restart(t,e,n),i}function Xt(){Ut=(Ht=qt.now())+Vt,jt=$t=0;try{!function(){Yt(),++jt;for(var t,e=Pt;e;)(t=Ut-e._time)>=0&&e._call.call(void 0,t),e=e._next;--jt}()}finally{jt=0,function(){var t,e,n=Pt,i=1/0;for(;n;)n._call?(i>n._time&&(i=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:Pt=e);Ft=t,Qt(i)}(),Ut=0}}function Jt(){var t=qt.now(),e=t-Ht;e>1e3&&(Vt-=e,Ht=t)}function Qt(t){jt||($t&&($t=clearTimeout($t)),t-Ut>24?(t<1/0&&($t=setTimeout(Xt,t-qt.now()-Vt)),zt&&(zt=clearInterval(zt))):(zt||(Ht=qt.now(),zt=setInterval(Jt,1e3)),jt=1,Wt(Xt)))}function te(t,e,n){var i=new Zt;return e=null==e?0:+e,i.restart((n=>{i.stop(),t(n+e)}),e,n),i}Zt.prototype=Kt.prototype={constructor:Zt,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?Yt():+n)+(null==e?0:+e),this._next||Ft===this||(Ft?Ft._next=this:Pt=this,Ft=this),this._call=t,this._time=n,Qt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Qt())}};var ee=Bt("start","end","cancel","interrupt"),ne=[];function ie(t,e,n,i,a,r){var o=t.__transition;if(o){if(n in o)return}else t.__transition={};!function(t,e,n){var i,a=t.__transition;function r(t){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=t&&o(t-n.delay)}function o(r){var l,u,d,h;if(1!==n.state)return c();for(l in a)if((h=a[l]).name===n.name){if(3===h.state)return te(o);4===h.state?(h.state=6,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete a[l]):+l<e&&(h.state=6,h.timer.stop(),h.on.call("cancel",t,t.__data__,h.index,h.group),delete a[l])}if(te((function(){3===n.state&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(r))})),n.state=2,n.on.call("start",t,t.__data__,n.index,n.group),2===n.state){for(n.state=3,i=new Array(d=n.tween.length),l=0,u=-1;l<d;++l)(h=n.tween[l].value.call(t,t.__data__,n.index,n.group))&&(i[++u]=h);i.length=u+1}}function s(e){for(var a=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(c),n.state=5,1),r=-1,o=i.length;++r<o;)i[r].call(t,a);5===n.state&&(n.on.call("end",t,t.__data__,n.index,n.group),c())}function c(){for(var i in n.state=6,n.timer.stop(),delete a[e],a)return;delete t.__transition}a[e]=n,n.timer=Kt(r,0,n.time)}(t,n,{name:e,index:i,group:a,on:ee,tween:ne,time:r.time,delay:r.delay,duration:r.duration,ease:r.ease,timer:null,state:0})}function ae(t,e){var n=oe(t,e);if(n.state>0)throw new Error("too late; already scheduled");return n}function re(t,e){var n=oe(t,e);if(n.state>3)throw new Error("too late; already running");return n}function oe(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function se(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var ce,le=180/Math.PI,ue={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function de(t,e,n,i,a,r){var o,s,c;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(c=t*n+e*i)&&(n-=t*c,i-=e*c),(s=Math.sqrt(n*n+i*i))&&(n/=s,i/=s,c/=s),t*i<e*n&&(t=-t,e=-e,c=-c,o=-o),{translateX:a,translateY:r,rotate:Math.atan2(e,t)*le,skewX:Math.atan(c)*le,scaleX:o,scaleY:s}}function he(t,e,n,i){function a(t){return t.length?t.pop()+" ":""}return function(r,o){var s=[],c=[];return r=t(r),o=t(o),function(t,i,a,r,o,s){if(t!==a||i!==r){var c=o.push("translate(",null,e,null,n);s.push({i:c-4,x:se(t,a)},{i:c-2,x:se(i,r)})}else(a||r)&&o.push("translate("+a+e+r+n)}(r.translateX,r.translateY,o.translateX,o.translateY,s,c),function(t,e,n,r){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),r.push({i:n.push(a(n)+"rotate(",null,i)-2,x:se(t,e)})):e&&n.push(a(n)+"rotate("+e+i)}(r.rotate,o.rotate,s,c),function(t,e,n,r){t!==e?r.push({i:n.push(a(n)+"skewX(",null,i)-2,x:se(t,e)}):e&&n.push(a(n)+"skewX("+e+i)}(r.skewX,o.skewX,s,c),function(t,e,n,i,r,o){if(t!==n||e!==i){var s=r.push(a(r)+"scale(",null,",",null,")");o.push({i:s-4,x:se(t,n)},{i:s-2,x:se(e,i)})}else 1===n&&1===i||r.push(a(r)+"scale("+n+","+i+")")}(r.scaleX,r.scaleY,o.scaleX,o.scaleY,s,c),r=o=null,function(t){for(var e,n=-1,i=c.length;++n<i;)s[(e=c[n]).i]=e.x(t);return s.join("")}}}var fe=he((function(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?ue:de(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),ge=he((function(t){return null==t?ue:(ce||(ce=document.createElementNS("http://www.w3.org/2000/svg","g")),ce.setAttribute("transform",t),(t=ce.transform.baseVal.consolidate())?de((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):ue)}),", ",")",")");function pe(t,e){var n,i;return function(){var a=re(this,t),r=a.tween;if(r!==n)for(var o=0,s=(i=n=r).length;o<s;++o)if(i[o].name===e){(i=i.slice()).splice(o,1);break}a.tween=i}}function be(t,e,n){var i,a;if("function"!=typeof n)throw new Error;return function(){var r=re(this,t),o=r.tween;if(o!==i){a=(i=o).slice();for(var s={name:e,value:n},c=0,l=a.length;c<l;++c)if(a[c].name===e){a[c]=s;break}c===l&&a.push(s)}r.tween=a}}function me(t,e,n){var i=t._id;return t.each((function(){var t=re(this,i);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return oe(t,i).value[e]}}function ye(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function ve(t,e){var n=Object.create(t.prototype);for(var i in e)n[i]=e[i];return n}function we(){}var xe=.7,Re=1/xe,_e="\\s*([+-]?\\d+)\\s*",ke="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ee="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Ce=/^#([0-9a-f]{3,8})$/,Se=new RegExp(`^rgb\\(${_e},${_e},${_e}\\)$`),Te=new RegExp(`^rgb\\(${Ee},${Ee},${Ee}\\)$`),Ae=new RegExp(`^rgba\\(${_e},${_e},${_e},${ke}\\)$`),De=new RegExp(`^rgba\\(${Ee},${Ee},${Ee},${ke}\\)$`),Ie=new RegExp(`^hsl\\(${ke},${Ee},${Ee}\\)$`),Le=new RegExp(`^hsla\\(${ke},${Ee},${Ee},${ke}\\)$`),Oe={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Me(){return this.rgb().formatHex()}function Ne(){return this.rgb().formatRgb()}function Be(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=Ce.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?Pe(e):3===n?new ze(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?Fe(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?Fe(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Se.exec(t))?new ze(e[1],e[2],e[3],1):(e=Te.exec(t))?new ze(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Ae.exec(t))?Fe(e[1],e[2],e[3],e[4]):(e=De.exec(t))?Fe(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Ie.exec(t))?Ye(e[1],e[2]/100,e[3]/100,1):(e=Le.exec(t))?Ye(e[1],e[2]/100,e[3]/100,e[4]):Oe.hasOwnProperty(t)?Pe(Oe[t]):"transparent"===t?new ze(NaN,NaN,NaN,0):null}function Pe(t){return new ze(t>>16&255,t>>8&255,255&t,1)}function Fe(t,e,n,i){return i<=0&&(t=e=n=NaN),new ze(t,e,n,i)}function je(t){return t instanceof we||(t=Be(t)),t?new ze((t=t.rgb()).r,t.g,t.b,t.opacity):new ze}function $e(t,e,n,i){return 1===arguments.length?je(t):new ze(t,e,n,null==i?1:i)}function ze(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}function He(){return`#${We(this.r)}${We(this.g)}${We(this.b)}`}function Ue(){const t=Ve(this.opacity);return`${1===t?"rgb(":"rgba("}${qe(this.r)}, ${qe(this.g)}, ${qe(this.b)}${1===t?")":`, ${t})`}`}function Ve(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function qe(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function We(t){return((t=qe(t))<16?"0":"")+t.toString(16)}function Ye(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Ze(t,e,n,i)}function Ge(t){if(t instanceof Ze)return new Ze(t.h,t.s,t.l,t.opacity);if(t instanceof we||(t=Be(t)),!t)return new Ze;if(t instanceof Ze)return t;var e=(t=t.rgb()).r/255,n=t.g/255,i=t.b/255,a=Math.min(e,n,i),r=Math.max(e,n,i),o=NaN,s=r-a,c=(r+a)/2;return s?(o=e===r?(n-i)/s+6*(n<i):n===r?(i-e)/s+2:(e-n)/s+4,s/=c<.5?r+a:2-r-a,o*=60):s=c>0&&c<1?0:o,new Ze(o,s,c,t.opacity)}function Ze(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}function Ke(t){return(t=(t||0)%360)<0?t+360:t}function Xe(t){return Math.max(0,Math.min(1,t||0))}function Je(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}function Qe(t,e,n,i,a){var r=t*t,o=r*t;return((1-3*t+3*r-o)*e+(4-6*r+3*o)*n+(1+3*t+3*r-3*o)*i+o*a)/6}ye(we,Be,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Me,formatHex:Me,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Ge(this).formatHsl()},formatRgb:Ne,toString:Ne}),ye(ze,$e,ve(we,{brighter(t){return t=null==t?Re:Math.pow(Re,t),new ze(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?xe:Math.pow(xe,t),new ze(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new ze(qe(this.r),qe(this.g),qe(this.b),Ve(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:He,formatHex:He,formatHex8:function(){return`#${We(this.r)}${We(this.g)}${We(this.b)}${We(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:Ue,toString:Ue})),ye(Ze,(function(t,e,n,i){return 1===arguments.length?Ge(t):new Ze(t,e,n,null==i?1:i)}),ve(we,{brighter(t){return t=null==t?Re:Math.pow(Re,t),new Ze(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?xe:Math.pow(xe,t),new Ze(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*e,a=2*n-i;return new ze(Je(t>=240?t-240:t+120,a,i),Je(t,a,i),Je(t<120?t+240:t-120,a,i),this.opacity)},clamp(){return new Ze(Ke(this.h),Xe(this.s),Xe(this.l),Ve(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=Ve(this.opacity);return`${1===t?"hsl(":"hsla("}${Ke(this.h)}, ${100*Xe(this.s)}%, ${100*Xe(this.l)}%${1===t?")":`, ${t})`}`}}));const tn=t=>()=>t;function en(t,e){return function(n){return t+n*e}}function nn(t){return 1==(t=+t)?an:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(i){return Math.pow(t+i*e,n)}}(e,n,t):tn(isNaN(e)?n:e)}}function an(t,e){var n=e-t;return n?en(t,n):tn(isNaN(t)?e:t)}const rn=function t(e){var n=nn(e);function i(t,e){var i=n((t=$e(t)).r,(e=$e(e)).r),a=n(t.g,e.g),r=n(t.b,e.b),o=an(t.opacity,e.opacity);return function(e){return t.r=i(e),t.g=a(e),t.b=r(e),t.opacity=o(e),t+""}}return i.gamma=t,i}(1);function on(t){return function(e){var n,i,a=e.length,r=new Array(a),o=new Array(a),s=new Array(a);for(n=0;n<a;++n)i=$e(e[n]),r[n]=i.r||0,o[n]=i.g||0,s[n]=i.b||0;return r=t(r),o=t(o),s=t(s),i.opacity=1,function(t){return i.r=r(t),i.g=o(t),i.b=s(t),i+""}}}on((function(t){var e=t.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),a=t[i],r=t[i+1],o=i>0?t[i-1]:2*a-r,s=i<e-1?t[i+2]:2*r-a;return Qe((n-i/e)*e,o,a,r,s)}})),on((function(t){var e=t.length;return function(n){var i=Math.floor(((n%=1)<0?++n:n)*e),a=t[(i+e-1)%e],r=t[i%e],o=t[(i+1)%e],s=t[(i+2)%e];return Qe((n-i/e)*e,a,r,o,s)}}));var sn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,cn=new RegExp(sn.source,"g");function ln(t,e){var n,i,a,r=sn.lastIndex=cn.lastIndex=0,o=-1,s=[],c=[];for(t+="",e+="";(n=sn.exec(t))&&(i=cn.exec(e));)(a=i.index)>r&&(a=e.slice(r,a),s[o]?s[o]+=a:s[++o]=a),(n=n[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:se(n,i)})),r=cn.lastIndex;return r<e.length&&(a=e.slice(r),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?function(t){return function(e){return t(e)+""}}(c[0].x):function(t){return function(){return t}}(e):(e=c.length,function(t){for(var n,i=0;i<e;++i)s[(n=c[i]).i]=n.x(t);return s.join("")})}function un(t,e){var n;return("number"==typeof e?se:e instanceof Be?rn:(n=Be(e))?(e=n,rn):ln)(t,e)}function dn(t){return function(){this.removeAttribute(t)}}function hn(t){return function(){this.removeAttributeNS(t.space,t.local)}}function fn(t,e,n){var i,a,r=n+"";return function(){var o=this.getAttribute(t);return o===r?null:o===i?a:a=e(i=o,n)}}function gn(t,e,n){var i,a,r=n+"";return function(){var o=this.getAttributeNS(t.space,t.local);return o===r?null:o===i?a:a=e(i=o,n)}}function pn(t,e,n){var i,a,r;return function(){var o,s,c=n(this);if(null!=c)return(o=this.getAttribute(t))===(s=c+"")?null:o===i&&s===a?r:(a=s,r=e(i=o,c));this.removeAttribute(t)}}function bn(t,e,n){var i,a,r;return function(){var o,s,c=n(this);if(null!=c)return(o=this.getAttributeNS(t.space,t.local))===(s=c+"")?null:o===i&&s===a?r:(a=s,r=e(i=o,c));this.removeAttributeNS(t.space,t.local)}}function mn(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function yn(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function vn(t,e){var n,i;function a(){var a=e.apply(this,arguments);return a!==i&&(n=(i=a)&&yn(t,a)),n}return a._value=e,a}function wn(t,e){var n,i;function a(){var a=e.apply(this,arguments);return a!==i&&(n=(i=a)&&mn(t,a)),n}return a._value=e,a}function xn(t,e){return function(){ae(this,t).delay=+e.apply(this,arguments)}}function Rn(t,e){return e=+e,function(){ae(this,t).delay=e}}function _n(t,e){return function(){re(this,t).duration=+e.apply(this,arguments)}}function kn(t,e){return e=+e,function(){re(this,t).duration=e}}function En(t,e){if("function"!=typeof e)throw new Error;return function(){re(this,t).ease=e}}function Cn(t,e,n){var i,a,r=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?ae:re;return function(){var o=r(this,t),s=o.on;s!==i&&(a=(i=s).copy()).on(e,n),o.on=a}}var Sn=At.prototype.constructor;function Tn(t){return function(){this.style.removeProperty(t)}}function An(t,e,n){return function(i){this.style.setProperty(t,e.call(this,i),n)}}function Dn(t,e,n){var i,a;function r(){var r=e.apply(this,arguments);return r!==a&&(i=(a=r)&&An(t,r,n)),i}return r._value=e,r}function In(t){return function(e){this.textContent=t.call(this,e)}}function Ln(t){var e,n;function i(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&In(i)),e}return i._value=t,i}var On=0;function Mn(t,e,n,i){this._groups=t,this._parents=e,this._name=n,this._id=i}function Nn(){return++On}var Bn=At.prototype;Mn.prototype=function(t){return At().transition(t)}.prototype={constructor:Mn,select:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=b(t));for(var i=this._groups,a=i.length,r=new Array(a),o=0;o<a;++o)for(var s,c,l=i[o],u=l.length,d=r[o]=new Array(u),h=0;h<u;++h)(s=l[h])&&(c=t.call(s,s.__data__,h,l))&&("__data__"in s&&(c.__data__=s.__data__),d[h]=c,ie(d[h],e,n,h,d,oe(s,n)));return new Mn(r,this._parents,e,n)},selectAll:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=v(t));for(var i=this._groups,a=i.length,r=[],o=[],s=0;s<a;++s)for(var c,l=i[s],u=l.length,d=0;d<u;++d)if(c=l[d]){for(var h,f=t.call(c,c.__data__,d,l),g=oe(c,n),p=0,b=f.length;p<b;++p)(h=f[p])&&ie(h,e,n,p,f,g);r.push(f),o.push(c)}return new Mn(r,o,e,n)},selectChild:Bn.selectChild,selectChildren:Bn.selectChildren,filter:function(t){"function"!=typeof t&&(t=w(t));for(var e=this._groups,n=e.length,i=new Array(n),a=0;a<n;++a)for(var r,o=e[a],s=o.length,c=i[a]=[],l=0;l<s;++l)(r=o[l])&&t.call(r,r.__data__,l,o)&&c.push(r);return new Mn(i,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,i=e.length,a=n.length,r=Math.min(i,a),o=new Array(i),s=0;s<r;++s)for(var c,l=e[s],u=n[s],d=l.length,h=o[s]=new Array(d),f=0;f<d;++f)(c=l[f]||u[f])&&(h[f]=c);for(;s<i;++s)o[s]=e[s];return new Mn(o,this._parents,this._name,this._id)},selection:function(){return new Sn(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,n=Nn(),i=this._groups,a=i.length,r=0;r<a;++r)for(var o,s=i[r],c=s.length,l=0;l<c;++l)if(o=s[l]){var u=oe(o,e);ie(o,t,n,l,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Mn(i,this._parents,t,n)},call:Bn.call,nodes:Bn.nodes,node:Bn.node,size:Bn.size,empty:Bn.empty,each:Bn.each,on:function(t,e){var n=this._id;return arguments.length<2?oe(this.node(),n).on.on(t):this.each(Cn(n,t,e))},attr:function(t,e){var n=B(t),i="transform"===n?ge:un;return this.attrTween(t,"function"==typeof e?(n.local?bn:pn)(n,i,me(this,"attr."+t,e)):null==e?(n.local?hn:dn)(n):(n.local?gn:fn)(n,i,e))},attrTween:function(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var i=B(t);return this.tween(n,(i.local?vn:wn)(i,e))},style:function(t,e,n){var i="transform"==(t+="")?fe:un;return null==e?this.styleTween(t,function(t,e){var n,i,a;return function(){var r=Y(this,t),o=(this.style.removeProperty(t),Y(this,t));return r===o?null:r===n&&o===i?a:a=e(n=r,i=o)}}(t,i)).on("end.style."+t,Tn(t)):"function"==typeof e?this.styleTween(t,function(t,e,n){var i,a,r;return function(){var o=Y(this,t),s=n(this),c=s+"";return null==s&&(this.style.removeProperty(t),c=s=Y(this,t)),o===c?null:o===i&&c===a?r:(a=c,r=e(i=o,s))}}(t,i,me(this,"style."+t,e))).each(function(t,e){var n,i,a,r,o="style."+e,s="end."+o;return function(){var c=re(this,t),l=c.on,u=null==c.value[o]?r||(r=Tn(e)):void 0;l===n&&a===u||(i=(n=l).copy()).on(s,a=u),c.on=i}}(this._id,t)):this.styleTween(t,function(t,e,n){var i,a,r=n+"";return function(){var o=Y(this,t);return o===r?null:o===i?a:a=e(i=o,n)}}(t,i,e),n).on("end.style."+t,null)},styleTween:function(t,e,n){var i="style."+(t+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==e)return this.tween(i,null);if("function"!=typeof e)throw new Error;return this.tween(i,Dn(t,e,null==n?"":n))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(me(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,Ln(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var n=this._id;if(t+="",arguments.length<2){for(var i,a=oe(this.node(),n).tween,r=0,o=a.length;r<o;++r)if((i=a[r]).name===t)return i.value;return null}return this.each((null==e?pe:be)(n,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?xn:Rn)(e,t)):oe(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?_n:kn)(e,t)):oe(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(En(e,t)):oe(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var n=e.apply(this,arguments);if("function"!=typeof n)throw new Error;re(this,t).ease=n}}(this._id,t))},end:function(){var t,e,n=this,i=n._id,a=n.size();return new Promise((function(r,o){var s={value:o},c={value:function(){0==--a&&r()}};n.each((function(){var n=re(this,i),a=n.on;a!==t&&((e=(t=a).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(c)),n.on=e})),0===a&&r()}))},[Symbol.iterator]:Bn[Symbol.iterator]};var Pn={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function Fn(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}At.prototype.interrupt=function(t){return this.each((function(){!function(t,e){var n,i,a,r=t.__transition,o=!0;if(r){for(a in e=null==e?null:e+"",r)(n=r[a]).name===e?(i=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(i?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete r[a]):o=!1;o&&delete t.__transition}}(this,t)}))},At.prototype.transition=function(t){var e,n;t instanceof Mn?(e=t._id,t=t._name):(e=Nn(),(n=Pn).time=Yt(),t=null==t?null:t+"");for(var i=this._groups,a=i.length,r=0;r<a;++r)for(var o,s=i[r],c=s.length,l=0;l<c;++l)(o=s[l])&&ie(o,t,e,l,s,n||Fn(o,e));return new Mn(i,this._parents,t,e)};const{abs:jn,max:$n,min:zn}=Math;function Hn(t){return[+t[0],+t[1]]}function Un(t){return[Hn(t[0]),Hn(t[1])]}["w","e"].map(Vn),["n","s"].map(Vn),["n","w","e","s","nw","ne","sw","se"].map(Vn);function Vn(t){return{type:t}}function qn(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function Wn(t){return(e,n)=>function(t,e){return fetch(t,e).then(qn)}(e,n).then((e=>(new DOMParser).parseFromString(e,t)))}Wn("application/xml");Wn("text/html");var Yn=Wn("image/svg+xml");const Gn=Math.PI/180,Zn=180/Math.PI,Kn=.96422,Xn=.82521,Jn=4/29,Qn=6/29,ti=3*Qn*Qn;function ei(t){if(t instanceof ni)return new ni(t.l,t.a,t.b,t.opacity);if(t instanceof li)return ui(t);t instanceof ze||(t=je(t));var e,n,i=oi(t.r),a=oi(t.g),r=oi(t.b),o=ii((.2225045*i+.7168786*a+.0606169*r)/1);return i===a&&a===r?e=n=o:(e=ii((.4360747*i+.3850649*a+.1430804*r)/Kn),n=ii((.0139322*i+.0971045*a+.7141733*r)/Xn)),new ni(116*o-16,500*(e-o),200*(o-n),t.opacity)}function ni(t,e,n,i){this.l=+t,this.a=+e,this.b=+n,this.opacity=+i}function ii(t){return t>.008856451679035631?Math.pow(t,1/3):t/ti+Jn}function ai(t){return t>Qn?t*t*t:ti*(t-Jn)}function ri(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function oi(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function si(t){if(t instanceof li)return new li(t.h,t.c,t.l,t.opacity);if(t instanceof ni||(t=ei(t)),0===t.a&&0===t.b)return new li(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*Zn;return new li(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function ci(t,e,n,i){return 1===arguments.length?si(t):new li(t,e,n,null==i?1:i)}function li(t,e,n,i){this.h=+t,this.c=+e,this.l=+n,this.opacity=+i}function ui(t){if(isNaN(t.h))return new ni(t.l,0,0,t.opacity);var e=t.h*Gn;return new ni(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}function di(t){return function(e,n){var i=t((e=ci(e)).h,(n=ci(n)).h),a=an(e.c,n.c),r=an(e.l,n.l),o=an(e.opacity,n.opacity);return function(t){return e.h=i(t),e.c=a(t),e.l=r(t),e.opacity=o(t),e+""}}}ye(ni,(function(t,e,n,i){return 1===arguments.length?ei(t):new ni(t,e,n,null==i?1:i)}),ve(we,{brighter(t){return new ni(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker(t){return new ni(this.l-18*(null==t?1:t),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 new ze(ri(3.1338561*(e=Kn*ai(e))-1.6168667*(t=1*ai(t))-.4906146*(n=Xn*ai(n))),ri(-.9787684*e+1.9161415*t+.033454*n),ri(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}})),ye(li,ci,ve(we,{brighter(t){return new li(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker(t){return new li(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb(){return ui(this).rgb()}}));const hi=di((function(t,e){var n=e-t;return n?en(t,n>180||n<-180?n-360*Math.round(n/360):n):tn(isNaN(t)?e:t)}));di(an);const fi=Math.sqrt(50),gi=Math.sqrt(10),pi=Math.sqrt(2);function bi(t,e,n){const i=(e-t)/Math.max(0,n),a=Math.floor(Math.log10(i)),r=i/Math.pow(10,a),o=r>=fi?10:r>=gi?5:r>=pi?2:1;let s,c,l;return a<0?(l=Math.pow(10,-a)/o,s=Math.round(t*l),c=Math.round(e*l),s/l<t&&++s,c/l>e&&--c,l=-l):(l=Math.pow(10,a)*o,s=Math.round(t/l),c=Math.round(e/l),s*l<t&&++s,c*l>e&&--c),c<s&&.5<=n&&n<2?bi(t,e,2*n):[s,c,l]}function mi(t,e,n){return bi(t=+t,e=+e,n=+n)[2]}function yi(t,e,n){n=+n;const i=(e=+e)<(t=+t),a=i?mi(e,t,n):mi(t,e,n);return(i?-1:1)*(a<0?1/-a:a)}function vi(t,e){return null==t||null==e?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function wi(t,e){return null==t||null==e?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function xi(t){let e,n,i;function a(t,i,a=0,r=t.length){if(a<r){if(0!==e(i,i))return r;do{const e=a+r>>>1;n(t[e],i)<0?a=e+1:r=e}while(a<r)}return a}return 2!==t.length?(e=vi,n=(e,n)=>vi(t(e),n),i=(e,n)=>t(e)-n):(e=t===vi||t===wi?t:Ri,n=t,i=t),{left:a,center:function(t,e,n=0,r=t.length){const o=a(t,e,n,r-1);return o>n&&i(t[o-1],e)>-i(t[o],e)?o-1:o},right:function(t,i,a=0,r=t.length){if(a<r){if(0!==e(i,i))return r;do{const e=a+r>>>1;n(t[e],i)<=0?a=e+1:r=e}while(a<r)}return a}}}function Ri(){return 0}const _i=xi(vi),ki=_i.right,Ei=(_i.left,xi((function(t){return null===t?NaN:+t})).center,ki);function Ci(t,e){var n,i=e?e.length:0,a=t?Math.min(i,t.length):0,r=new Array(a),o=new Array(i);for(n=0;n<a;++n)r[n]=Di(t[n],e[n]);for(;n<i;++n)o[n]=e[n];return function(t){for(n=0;n<a;++n)o[n]=r[n](t);return o}}function Si(t,e){var n=new Date;return t=+t,e=+e,function(i){return n.setTime(t*(1-i)+e*i),n}}function Ti(t,e){var n,i={},a={};for(n in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)n in t?i[n]=Di(t[n],e[n]):a[n]=e[n];return function(t){for(n in i)a[n]=i[n](t);return a}}function Ai(t,e){e||(e=[]);var n,i=t?Math.min(e.length,t.length):0,a=e.slice();return function(r){for(n=0;n<i;++n)a[n]=t[n]*(1-r)+e[n]*r;return a}}function Di(t,e){var n,i,a=typeof e;return null==e||"boolean"===a?tn(e):("number"===a?se:"string"===a?(n=Be(e))?(e=n,rn):ln:e instanceof Be?rn:e instanceof Date?Si:(i=e,!ArrayBuffer.isView(i)||i instanceof DataView?Array.isArray(e)?Ci:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?Ti:se:Ai))(t,e)}function Ii(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}function Li(t){return+t}var Oi=[0,1];function Mi(t){return t}function Ni(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:(n=isNaN(e)?NaN:.5,function(){return n});var n}function Bi(t,e,n){var i=t[0],a=t[1],r=e[0],o=e[1];return a<i?(i=Ni(a,i),r=n(o,r)):(i=Ni(i,a),r=n(r,o)),function(t){return r(i(t))}}function Pi(t,e,n){var i=Math.min(t.length,e.length)-1,a=new Array(i),r=new Array(i),o=-1;for(t[i]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++o<i;)a[o]=Ni(t[o],t[o+1]),r[o]=n(e[o],e[o+1]);return function(e){var n=Ei(t,e,1,i)-1;return r[n](a[n](e))}}function Fi(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function ji(){var t,e,n,i,a,r,o=Oi,s=Oi,c=Di,l=Mi;function u(){var t,e,n,c=Math.min(o.length,s.length);return l!==Mi&&(t=o[0],e=o[c-1],t>e&&(n=t,t=e,e=n),l=function(n){return Math.max(t,Math.min(e,n))}),i=c>2?Pi:Bi,a=r=null,d}function d(e){return null==e||isNaN(e=+e)?n:(a||(a=i(o.map(t),s,c)))(t(l(e)))}return d.invert=function(n){return l(e((r||(r=i(s,o.map(t),se)))(n)))},d.domain=function(t){return arguments.length?(o=Array.from(t,Li),u()):o.slice()},d.range=function(t){return arguments.length?(s=Array.from(t),u()):s.slice()},d.rangeRound=function(t){return s=Array.from(t),c=Ii,u()},d.clamp=function(t){return arguments.length?(l=!!t||Mi,u()):l!==Mi},d.interpolate=function(t){return arguments.length?(c=t,u()):c},d.unknown=function(t){return arguments.length?(n=t,d):n},function(n,i){return t=n,e=i,u()}}function $i(){return ji()(Mi,Mi)}function zi(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}var Hi,Ui=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Vi(t){if(!(e=Ui.exec(t)))throw new Error("invalid format: "+t);var e;return new qi({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function qi(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function Wi(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,i=t.slice(0,n);return[i.length>1?i[0]+i.slice(2):i,+t.slice(n+1)]}function Yi(t){return(t=Wi(Math.abs(t)))?t[1]:NaN}function Gi(t,e){var n=Wi(t,e);if(!n)return t+"";var i=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+i:i.length>a+1?i.slice(0,a+1)+"."+i.slice(a+1):i+new Array(a-i.length+2).join("0")}Vi.prototype=qi.prototype,qi.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const Zi={"%":(t,e)=>(100*t).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Gi(100*t,e),r:Gi,s:function(t,e){var n=Wi(t,e);if(!n)return t+"";var i=n[0],a=n[1],r=a-(Hi=3*Math.max(-8,Math.min(8,Math.floor(a/3))))+1,o=i.length;return r===o?i:r>o?i+new Array(r-o+1).join("0"):r>0?i.slice(0,r)+"."+i.slice(r):"0."+new Array(1-r).join("0")+Wi(t,Math.max(0,e+r-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Ki(t){return t}var Xi,Ji,Qi,ta=Array.prototype.map,ea=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function na(t){var e,n,i=void 0===t.grouping||void 0===t.thousands?Ki:(e=ta.call(t.grouping,Number),n=t.thousands+"",function(t,i){for(var a=t.length,r=[],o=0,s=e[0],c=0;a>0&&s>0&&(c+s+1>i&&(s=Math.max(1,i-c)),r.push(t.substring(a-=s,a+s)),!((c+=s+1)>i));)s=e[o=(o+1)%e.length];return r.reverse().join(n)}),a=void 0===t.currency?"":t.currency[0]+"",r=void 0===t.currency?"":t.currency[1]+"",o=void 0===t.decimal?".":t.decimal+"",s=void 0===t.numerals?Ki:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(ta.call(t.numerals,String)),c=void 0===t.percent?"%":t.percent+"",l=void 0===t.minus?"\u2212":t.minus+"",u=void 0===t.nan?"NaN":t.nan+"";function d(t){var e=(t=Vi(t)).fill,n=t.align,d=t.sign,h=t.symbol,f=t.zero,g=t.width,p=t.comma,b=t.precision,m=t.trim,y=t.type;"n"===y?(p=!0,y="g"):Zi[y]||(void 0===b&&(b=12),m=!0,y="g"),(f||"0"===e&&"="===n)&&(f=!0,e="0",n="=");var v="$"===h?a:"#"===h&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",w="$"===h?r:/[%p]/.test(y)?c:"",x=Zi[y],R=/[defgprs%]/.test(y);function _(t){var a,r,c,h=v,_=w;if("c"===y)_=x(t)+_,t="";else{var k=(t=+t)<0||1/t<0;if(t=isNaN(t)?u:x(Math.abs(t),b),m&&(t=function(t){t:for(var e,n=t.length,i=1,a=-1;i<n;++i)switch(t[i]){case".":a=e=i;break;case"0":0===a&&(a=i),e=i;break;default:if(!+t[i])break t;a>0&&(a=0)}return a>0?t.slice(0,a)+t.slice(e+1):t}(t)),k&&0==+t&&"+"!==d&&(k=!1),h=(k?"("===d?d:l:"-"===d||"("===d?"":d)+h,_=("s"===y?ea[8+Hi/3]:"")+_+(k&&"("===d?")":""),R)for(a=-1,r=t.length;++a<r;)if(48>(c=t.charCodeAt(a))||c>57){_=(46===c?o+t.slice(a+1):t.slice(a))+_,t=t.slice(0,a);break}}p&&!f&&(t=i(t,1/0));var E=h.length+t.length+_.length,C=E<g?new Array(g-E+1).join(e):"";switch(p&&f&&(t=i(C+t,C.length?g-_.length:1/0),C=""),n){case"<":t=h+t+_+C;break;case"=":t=h+C+t+_;break;case"^":t=C.slice(0,E=C.length>>1)+h+t+_+C.slice(E);break;default:t=C+h+t+_}return s(t)}return b=void 0===b?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b)),_.toString=function(){return t+""},_}return{format:d,formatPrefix:function(t,e){var n=d(((t=Vi(t)).type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(Yi(e)/3))),a=Math.pow(10,-i),r=ea[8+i/3];return function(t){return n(a*t)+r}}}}function ia(t,e,n,i){var a,r=yi(t,e,n);switch((i=Vi(null==i?",f":i)).type){case"s":var o=Math.max(Math.abs(t),Math.abs(e));return null!=i.precision||isNaN(a=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Yi(e)/3)))-Yi(Math.abs(t)))}(r,o))||(i.precision=a),Qi(i,o);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(a=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Yi(e)-Yi(t))+1}(r,Math.max(Math.abs(t),Math.abs(e))))||(i.precision=a-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(a=function(t){return Math.max(0,-Yi(Math.abs(t)))}(r))||(i.precision=a-2*("%"===i.type))}return Ji(i)}function aa(t){var e=t.domain;return t.ticks=function(t){var n=e();return function(t,e,n){if(!((n=+n)>0))return[];if((t=+t)==(e=+e))return[t];const i=e<t,[a,r,o]=i?bi(e,t,n):bi(t,e,n);if(!(r>=a))return[];const s=r-a+1,c=new Array(s);if(i)if(o<0)for(let l=0;l<s;++l)c[l]=(r-l)/-o;else for(let l=0;l<s;++l)c[l]=(r-l)*o;else if(o<0)for(let l=0;l<s;++l)c[l]=(a+l)/-o;else for(let l=0;l<s;++l)c[l]=(a+l)*o;return c}(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){var i=e();return ia(i[0],i[i.length-1],null==t?10:t,n)},t.nice=function(n){null==n&&(n=10);var i,a,r=e(),o=0,s=r.length-1,c=r[o],l=r[s],u=10;for(l<c&&(a=c,c=l,l=a,a=o,o=s,s=a);u-- >0;){if((a=mi(c,l,n))===i)return r[o]=c,r[s]=l,e(r);if(a>0)c=Math.floor(c/a)*a,l=Math.ceil(l/a)*a;else{if(!(a<0))break;c=Math.ceil(c*a)/a,l=Math.floor(l*a)/a}i=a}return t},t}function ra(){var t=$i();return t.copy=function(){return Fi(t,ra())},zi.apply(t,arguments),aa(t)}Xi=na({thousands:",",grouping:[3],currency:["$",""]}),Ji=Xi.format,Qi=Xi.formatPrefix;class oa extends Map{constructor(t,e=ua){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=t)for(const[n,i]of t)this.set(n,i)}get(t){return super.get(sa(this,t))}has(t){return super.has(sa(this,t))}set(t,e){return super.set(ca(this,t),e)}delete(t){return super.delete(la(this,t))}}Set;function sa({_intern:t,_key:e},n){const i=e(n);return t.has(i)?t.get(i):n}function ca({_intern:t,_key:e},n){const i=e(n);return t.has(i)?t.get(i):(t.set(i,n),n)}function la({_intern:t,_key:e},n){const i=e(n);return t.has(i)&&(n=t.get(i),t.delete(i)),n}function ua(t){return null!==t&&"object"==typeof t?t.valueOf():t}const da=Symbol("implicit");function ha(){var t=new oa,e=[],n=[],i=da;function a(a){let r=t.get(a);if(void 0===r){if(i!==da)return i;t.set(a,r=e.push(a)-1)}return n[r%n.length]}return a.domain=function(n){if(!arguments.length)return e.slice();e=[],t=new oa;for(const i of n)t.has(i)||t.set(i,e.push(i)-1);return a},a.range=function(t){return arguments.length?(n=Array.from(t),a):n.slice()},a.unknown=function(t){return arguments.length?(i=t,a):i},a.copy=function(){return ha(e,n).unknown(i)},zi.apply(a,arguments),a}const fa=1e3,ga=6e4,pa=36e5,ba=864e5,ma=6048e5,ya=2592e6,va=31536e6,wa=new Date,xa=new Date;function Ra(t,e,n,i){function a(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return a.floor=e=>(t(e=new Date(+e)),e),a.ceil=n=>(t(n=new Date(n-1)),e(n,1),t(n),n),a.round=t=>{const e=a(t),n=a.ceil(t);return t-e<n-t?e:n},a.offset=(t,n)=>(e(t=new Date(+t),null==n?1:Math.floor(n)),t),a.range=(n,i,r)=>{const o=[];if(n=a.ceil(n),r=null==r?1:Math.floor(r),!(n<i&&r>0))return o;let s;do{o.push(s=new Date(+n)),e(n,r),t(n)}while(s<n&&n<i);return o},a.filter=n=>Ra((e=>{if(e>=e)for(;t(e),!n(e);)e.setTime(e-1)}),((t,i)=>{if(t>=t)if(i<0)for(;++i<=0;)for(;e(t,-1),!n(t););else for(;--i>=0;)for(;e(t,1),!n(t););})),n&&(a.count=(e,i)=>(wa.setTime(+e),xa.setTime(+i),t(wa),t(xa),Math.floor(n(wa,xa))),a.every=t=>(t=Math.floor(t),isFinite(t)&&t>0?t>1?a.filter(i?e=>i(e)%t==0:e=>a.count(0,e)%t==0):a:null)),a}const _a=Ra((()=>{}),((t,e)=>{t.setTime(+t+e)}),((t,e)=>e-t));_a.every=t=>(t=Math.floor(t),isFinite(t)&&t>0?t>1?Ra((e=>{e.setTime(Math.floor(e/t)*t)}),((e,n)=>{e.setTime(+e+n*t)}),((e,n)=>(n-e)/t)):_a:null);_a.range;const ka=Ra((t=>{t.setTime(t-t.getMilliseconds())}),((t,e)=>{t.setTime(+t+e*fa)}),((t,e)=>(e-t)/fa),(t=>t.getUTCSeconds())),Ea=(ka.range,Ra((t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*fa)}),((t,e)=>{t.setTime(+t+e*ga)}),((t,e)=>(e-t)/ga),(t=>t.getMinutes()))),Ca=(Ea.range,Ra((t=>{t.setUTCSeconds(0,0)}),((t,e)=>{t.setTime(+t+e*ga)}),((t,e)=>(e-t)/ga),(t=>t.getUTCMinutes()))),Sa=(Ca.range,Ra((t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*fa-t.getMinutes()*ga)}),((t,e)=>{t.setTime(+t+e*pa)}),((t,e)=>(e-t)/pa),(t=>t.getHours()))),Ta=(Sa.range,Ra((t=>{t.setUTCMinutes(0,0,0)}),((t,e)=>{t.setTime(+t+e*pa)}),((t,e)=>(e-t)/pa),(t=>t.getUTCHours()))),Aa=(Ta.range,Ra((t=>t.setHours(0,0,0,0)),((t,e)=>t.setDate(t.getDate()+e)),((t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*ga)/ba),(t=>t.getDate()-1))),Da=(Aa.range,Ra((t=>{t.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCDate(t.getUTCDate()+e)}),((t,e)=>(e-t)/ba),(t=>t.getUTCDate()-1))),Ia=(Da.range,Ra((t=>{t.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCDate(t.getUTCDate()+e)}),((t,e)=>(e-t)/ba),(t=>Math.floor(t/ba))));Ia.range;function La(t){return Ra((e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),((t,e)=>{t.setDate(t.getDate()+7*e)}),((t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*ga)/ma))}const Oa=La(0),Ma=La(1),Na=La(2),Ba=La(3),Pa=La(4),Fa=La(5),ja=La(6);Oa.range,Ma.range,Na.range,Ba.range,Pa.range,Fa.range,ja.range;function $a(t){return Ra((e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCDate(t.getUTCDate()+7*e)}),((t,e)=>(e-t)/ma))}const za=$a(0),Ha=$a(1),Ua=$a(2),Va=$a(3),qa=$a(4),Wa=$a(5),Ya=$a(6),Ga=(za.range,Ha.range,Ua.range,Va.range,qa.range,Wa.range,Ya.range,Ra((t=>{t.setDate(1),t.setHours(0,0,0,0)}),((t,e)=>{t.setMonth(t.getMonth()+e)}),((t,e)=>e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())),(t=>t.getMonth()))),Za=(Ga.range,Ra((t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)}),((t,e)=>e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())),(t=>t.getUTCMonth()))),Ka=(Za.range,Ra((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())));Ka.every=t=>isFinite(t=Math.floor(t))&&t>0?Ra((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)})):null;Ka.range;const Xa=Ra((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()));Xa.every=t=>isFinite(t=Math.floor(t))&&t>0?Ra((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)})):null;Xa.range;function Ja(t,e,n,i,a,r){const o=[[ka,1,fa],[ka,5,5e3],[ka,15,15e3],[ka,30,3e4],[r,1,ga],[r,5,3e5],[r,15,9e5],[r,30,18e5],[a,1,pa],[a,3,108e5],[a,6,216e5],[a,12,432e5],[i,1,ba],[i,2,1728e5],[n,1,ma],[e,1,ya],[e,3,7776e6],[t,1,va]];function s(e,n,i){const a=Math.abs(n-e)/i,r=xi((([,,t])=>t)).right(o,a);if(r===o.length)return t.every(yi(e/va,n/va,i));if(0===r)return _a.every(Math.max(yi(e,n,i),1));const[s,c]=o[a/o[r-1][2]<o[r][2]/a?r-1:r];return s.every(c)}return[function(t,e,n){const i=e<t;i&&([t,e]=[e,t]);const a=n&&"function"==typeof n.range?n:s(t,e,n),r=a?a.range(t,+e+1):[];return i?r.reverse():r},s]}const[Qa,tr]=Ja(Xa,Za,za,Ia,Ta,Ca),[er,nr]=Ja(Ka,Ga,Oa,Aa,Sa,Ea);function ir(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function ar(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function rr(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}var or,sr,cr={"-":"",_:" ",0:"0"},lr=/^\s*\d+/,ur=/^%/,dr=/[\\^$*+?|[\]().{}]/g;function hr(t,e,n){var i=t<0?"-":"",a=(i?-t:t)+"",r=a.length;return i+(r<n?new Array(n-r+1).join(e)+a:a)}function fr(t){return t.replace(dr,"\\$&")}function gr(t){return new RegExp("^(?:"+t.map(fr).join("|")+")","i")}function pr(t){return new Map(t.map(((t,e)=>[t.toLowerCase(),e])))}function br(t,e,n){var i=lr.exec(e.slice(n,n+1));return i?(t.w=+i[0],n+i[0].length):-1}function mr(t,e,n){var i=lr.exec(e.slice(n,n+1));return i?(t.u=+i[0],n+i[0].length):-1}function yr(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.U=+i[0],n+i[0].length):-1}function vr(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.V=+i[0],n+i[0].length):-1}function wr(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.W=+i[0],n+i[0].length):-1}function xr(t,e,n){var i=lr.exec(e.slice(n,n+4));return i?(t.y=+i[0],n+i[0].length):-1}function Rr(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.y=+i[0]+(+i[0]>68?1900:2e3),n+i[0].length):-1}function _r(t,e,n){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return i?(t.Z=i[1]?0:-(i[2]+(i[3]||"00")),n+i[0].length):-1}function kr(t,e,n){var i=lr.exec(e.slice(n,n+1));return i?(t.q=3*i[0]-3,n+i[0].length):-1}function Er(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.m=i[0]-1,n+i[0].length):-1}function Cr(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.d=+i[0],n+i[0].length):-1}function Sr(t,e,n){var i=lr.exec(e.slice(n,n+3));return i?(t.m=0,t.d=+i[0],n+i[0].length):-1}function Tr(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.H=+i[0],n+i[0].length):-1}function Ar(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.M=+i[0],n+i[0].length):-1}function Dr(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.S=+i[0],n+i[0].length):-1}function Ir(t,e,n){var i=lr.exec(e.slice(n,n+3));return i?(t.L=+i[0],n+i[0].length):-1}function Lr(t,e,n){var i=lr.exec(e.slice(n,n+6));return i?(t.L=Math.floor(i[0]/1e3),n+i[0].length):-1}function Or(t,e,n){var i=ur.exec(e.slice(n,n+1));return i?n+i[0].length:-1}function Mr(t,e,n){var i=lr.exec(e.slice(n));return i?(t.Q=+i[0],n+i[0].length):-1}function Nr(t,e,n){var i=lr.exec(e.slice(n));return i?(t.s=+i[0],n+i[0].length):-1}function Br(t,e){return hr(t.getDate(),e,2)}function Pr(t,e){return hr(t.getHours(),e,2)}function Fr(t,e){return hr(t.getHours()%12||12,e,2)}function jr(t,e){return hr(1+Aa.count(Ka(t),t),e,3)}function $r(t,e){return hr(t.getMilliseconds(),e,3)}function zr(t,e){return $r(t,e)+"000"}function Hr(t,e){return hr(t.getMonth()+1,e,2)}function Ur(t,e){return hr(t.getMinutes(),e,2)}function Vr(t,e){return hr(t.getSeconds(),e,2)}function qr(t){var e=t.getDay();return 0===e?7:e}function Wr(t,e){return hr(Oa.count(Ka(t)-1,t),e,2)}function Yr(t){var e=t.getDay();return e>=4||0===e?Pa(t):Pa.ceil(t)}function Gr(t,e){return t=Yr(t),hr(Pa.count(Ka(t),t)+(4===Ka(t).getDay()),e,2)}function Zr(t){return t.getDay()}function Kr(t,e){return hr(Ma.count(Ka(t)-1,t),e,2)}function Xr(t,e){return hr(t.getFullYear()%100,e,2)}function Jr(t,e){return hr((t=Yr(t)).getFullYear()%100,e,2)}function Qr(t,e){return hr(t.getFullYear()%1e4,e,4)}function to(t,e){var n=t.getDay();return hr((t=n>=4||0===n?Pa(t):Pa.ceil(t)).getFullYear()%1e4,e,4)}function eo(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+hr(e/60|0,"0",2)+hr(e%60,"0",2)}function no(t,e){return hr(t.getUTCDate(),e,2)}function io(t,e){return hr(t.getUTCHours(),e,2)}function ao(t,e){return hr(t.getUTCHours()%12||12,e,2)}function ro(t,e){return hr(1+Da.count(Xa(t),t),e,3)}function oo(t,e){return hr(t.getUTCMilliseconds(),e,3)}function so(t,e){return oo(t,e)+"000"}function co(t,e){return hr(t.getUTCMonth()+1,e,2)}function lo(t,e){return hr(t.getUTCMinutes(),e,2)}function uo(t,e){return hr(t.getUTCSeconds(),e,2)}function ho(t){var e=t.getUTCDay();return 0===e?7:e}function fo(t,e){return hr(za.count(Xa(t)-1,t),e,2)}function go(t){var e=t.getUTCDay();return e>=4||0===e?qa(t):qa.ceil(t)}function po(t,e){return t=go(t),hr(qa.count(Xa(t),t)+(4===Xa(t).getUTCDay()),e,2)}function bo(t){return t.getUTCDay()}function mo(t,e){return hr(Ha.count(Xa(t)-1,t),e,2)}function yo(t,e){return hr(t.getUTCFullYear()%100,e,2)}function vo(t,e){return hr((t=go(t)).getUTCFullYear()%100,e,2)}function wo(t,e){return hr(t.getUTCFullYear()%1e4,e,4)}function xo(t,e){var n=t.getUTCDay();return hr((t=n>=4||0===n?qa(t):qa.ceil(t)).getUTCFullYear()%1e4,e,4)}function Ro(){return"+0000"}function _o(){return"%"}function ko(t){return+t}function Eo(t){return Math.floor(+t/1e3)}function Co(t){return new Date(t)}function So(t){return t instanceof Date?+t:+new Date(+t)}function To(t,e,n,i,a,r,o,s,c,l){var u=$i(),d=u.invert,h=u.domain,f=l(".%L"),g=l(":%S"),p=l("%I:%M"),b=l("%I %p"),m=l("%a %d"),y=l("%b %d"),v=l("%B"),w=l("%Y");function x(t){return(c(t)<t?f:s(t)<t?g:o(t)<t?p:r(t)<t?b:i(t)<t?a(t)<t?m:y:n(t)<t?v:w)(t)}return u.invert=function(t){return new Date(d(t))},u.domain=function(t){return arguments.length?h(Array.from(t,So)):h().map(Co)},u.ticks=function(e){var n=h();return t(n[0],n[n.length-1],null==e?10:e)},u.tickFormat=function(t,e){return null==e?x:l(e)},u.nice=function(t){var n=h();return t&&"function"==typeof t.range||(t=e(n[0],n[n.length-1],null==t?10:t)),t?h(function(t,e){var n,i=0,a=(t=t.slice()).length-1,r=t[i],o=t[a];return o<r&&(n=i,i=a,a=n,n=r,r=o,o=n),t[i]=e.floor(r),t[a]=e.ceil(o),t}(n,t)):u},u.copy=function(){return Fi(u,To(t,e,n,i,a,r,o,s,c,l))},u}function Ao(){return zi.apply(To(er,nr,Ka,Ga,Oa,Aa,Sa,Ea,ka,sr).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function Do(t){return"string"==typeof t?new St([[document.querySelector(t)]],[document.documentElement]):new St([[t]],Ct)}function Io(t){return"string"==typeof t?new St([document.querySelectorAll(t)],[document.documentElement]):new St([m(t)],Ct)}function Lo(t){return function(){return t}}!function(t){or=function(t){var e=t.dateTime,n=t.date,i=t.time,a=t.periods,r=t.days,o=t.shortDays,s=t.months,c=t.shortMonths,l=gr(a),u=pr(a),d=gr(r),h=pr(r),f=gr(o),g=pr(o),p=gr(s),b=pr(s),m=gr(c),y=pr(c),v={a:function(t){return o[t.getDay()]},A:function(t){return r[t.getDay()]},b:function(t){return c[t.getMonth()]},B:function(t){return s[t.getMonth()]},c:null,d:Br,e:Br,f:zr,g:Jr,G:to,H:Pr,I:Fr,j:jr,L:$r,m:Hr,M:Ur,p:function(t){return a[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:ko,s:Eo,S:Vr,u:qr,U:Wr,V:Gr,w:Zr,W:Kr,x:null,X:null,y:Xr,Y:Qr,Z:eo,"%":_o},w={a:function(t){return o[t.getUTCDay()]},A:function(t){return r[t.getUTCDay()]},b:function(t){return c[t.getUTCMonth()]},B:function(t){return s[t.getUTCMonth()]},c:null,d:no,e:no,f:so,g:vo,G:xo,H:io,I:ao,j:ro,L:oo,m:co,M:lo,p:function(t){return a[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:ko,s:Eo,S:uo,u:ho,U:fo,V:po,w:bo,W:mo,x:null,X:null,y:yo,Y:wo,Z:Ro,"%":_o},x={a:function(t,e,n){var i=f.exec(e.slice(n));return i?(t.w=g.get(i[0].toLowerCase()),n+i[0].length):-1},A:function(t,e,n){var i=d.exec(e.slice(n));return i?(t.w=h.get(i[0].toLowerCase()),n+i[0].length):-1},b:function(t,e,n){var i=m.exec(e.slice(n));return i?(t.m=y.get(i[0].toLowerCase()),n+i[0].length):-1},B:function(t,e,n){var i=p.exec(e.slice(n));return i?(t.m=b.get(i[0].toLowerCase()),n+i[0].length):-1},c:function(t,n,i){return k(t,e,n,i)},d:Cr,e:Cr,f:Lr,g:Rr,G:xr,H:Tr,I:Tr,j:Sr,L:Ir,m:Er,M:Ar,p:function(t,e,n){var i=l.exec(e.slice(n));return i?(t.p=u.get(i[0].toLowerCase()),n+i[0].length):-1},q:kr,Q:Mr,s:Nr,S:Dr,u:mr,U:yr,V:vr,w:br,W:wr,x:function(t,e,i){return k(t,n,e,i)},X:function(t,e,n){return k(t,i,e,n)},y:Rr,Y:xr,Z:_r,"%":Or};function R(t,e){return function(n){var i,a,r,o=[],s=-1,c=0,l=t.length;for(n instanceof Date||(n=new Date(+n));++s<l;)37===t.charCodeAt(s)&&(o.push(t.slice(c,s)),null!=(a=cr[i=t.charAt(++s)])?i=t.charAt(++s):a="e"===i?" ":"0",(r=e[i])&&(i=r(n,a)),o.push(i),c=s+1);return o.push(t.slice(c,s)),o.join("")}}function _(t,e){return function(n){var i,a,r=rr(1900,void 0,1);if(k(r,t,n+="",0)!=n.length)return null;if("Q"in r)return new Date(r.Q);if("s"in r)return new Date(1e3*r.s+("L"in r?r.L:0));if(e&&!("Z"in r)&&(r.Z=0),"p"in r&&(r.H=r.H%12+12*r.p),void 0===r.m&&(r.m="q"in r?r.q:0),"V"in r){if(r.V<1||r.V>53)return null;"w"in r||(r.w=1),"Z"in r?(a=(i=ar(rr(r.y,0,1))).getUTCDay(),i=a>4||0===a?Ha.ceil(i):Ha(i),i=Da.offset(i,7*(r.V-1)),r.y=i.getUTCFullYear(),r.m=i.getUTCMonth(),r.d=i.getUTCDate()+(r.w+6)%7):(a=(i=ir(rr(r.y,0,1))).getDay(),i=a>4||0===a?Ma.ceil(i):Ma(i),i=Aa.offset(i,7*(r.V-1)),r.y=i.getFullYear(),r.m=i.getMonth(),r.d=i.getDate()+(r.w+6)%7)}else("W"in r||"U"in r)&&("w"in r||(r.w="u"in r?r.u%7:"W"in r?1:0),a="Z"in r?ar(rr(r.y,0,1)).getUTCDay():ir(rr(r.y,0,1)).getDay(),r.m=0,r.d="W"in r?(r.w+6)%7+7*r.W-(a+5)%7:r.w+7*r.U-(a+6)%7);return"Z"in r?(r.H+=r.Z/100|0,r.M+=r.Z%100,ar(r)):ir(r)}}function k(t,e,n,i){for(var a,r,o=0,s=e.length,c=n.length;o<s;){if(i>=c)return-1;if(37===(a=e.charCodeAt(o++))){if(a=e.charAt(o++),!(r=x[a in cr?e.charAt(o++):a])||(i=r(t,n,i))<0)return-1}else if(a!=n.charCodeAt(i++))return-1}return i}return v.x=R(n,v),v.X=R(i,v),v.c=R(e,v),w.x=R(n,w),w.X=R(i,w),w.c=R(e,w),{format:function(t){var e=R(t+="",v);return e.toString=function(){return t},e},parse:function(t){var e=_(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=R(t+="",w);return e.toString=function(){return t},e},utcParse:function(t){var e=_(t+="",!0);return e.toString=function(){return t},e}}}(t),sr=or.format,or.parse,or.utcFormat,or.utcParse}({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"]});const Oo=Math.abs,Mo=Math.atan2,No=Math.cos,Bo=Math.max,Po=Math.min,Fo=Math.sin,jo=Math.sqrt,$o=1e-12,zo=Math.PI,Ho=zo/2,Uo=2*zo;function Vo(t){return t>1?0:t<-1?zo:Math.acos(t)}function qo(t){return t>=1?Ho:t<=-1?-Ho:Math.asin(t)}const Wo=Math.PI,Yo=2*Wo,Go=1e-6,Zo=Yo-Go;function Ko(t){this._+=t[0];for(let e=1,n=t.length;e<n;++e)this._+=arguments[e]+t[e]}class Xo{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?Ko:function(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return Ko;const n=10**e;return function(t){this._+=t[0];for(let e=1,i=t.length;e<i;++e)this._+=Math.round(arguments[e]*n)/n+t[e]}}(t)}moveTo(t,e){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,e){this._append`L${this._x1=+t},${this._y1=+e}`}quadraticCurveTo(t,e,n,i){this._append`Q${+t},${+e},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(t,e,n,i,a,r){this._append`C${+t},${+e},${+n},${+i},${this._x1=+a},${this._y1=+r}`}arcTo(t,e,n,i,a){if(t=+t,e=+e,n=+n,i=+i,(a=+a)<0)throw new Error(`negative radius: ${a}`);let r=this._x1,o=this._y1,s=n-t,c=i-e,l=r-t,u=o-e,d=l*l+u*u;if(null===this._x1)this._append`M${this._x1=t},${this._y1=e}`;else if(d>Go)if(Math.abs(u*s-c*l)>Go&&a){let h=n-r,f=i-o,g=s*s+c*c,p=h*h+f*f,b=Math.sqrt(g),m=Math.sqrt(d),y=a*Math.tan((Wo-Math.acos((g+d-p)/(2*b*m)))/2),v=y/m,w=y/b;Math.abs(v-1)>Go&&this._append`L${t+v*l},${e+v*u}`,this._append`A${a},${a},0,0,${+(u*h>l*f)},${this._x1=t+w*s},${this._y1=e+w*c}`}else this._append`L${this._x1=t},${this._y1=e}`;else;}arc(t,e,n,i,a,r){if(t=+t,e=+e,r=!!r,(n=+n)<0)throw new Error(`negative radius: ${n}`);let o=n*Math.cos(i),s=n*Math.sin(i),c=t+o,l=e+s,u=1^r,d=r?i-a:a-i;null===this._x1?this._append`M${c},${l}`:(Math.abs(this._x1-c)>Go||Math.abs(this._y1-l)>Go)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%Yo+Yo),d>Zo?this._append`A${n},${n},0,1,${u},${t-o},${e-s}A${n},${n},0,1,${u},${this._x1=c},${this._y1=l}`:d>Go&&this._append`A${n},${n},0,${+(d>=Wo)},${u},${this._x1=t+n*Math.cos(a)},${this._y1=e+n*Math.sin(a)}`)}rect(t,e,n,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}}function Jo(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(null==n)e=null;else{const t=Math.floor(n);if(!(t>=0))throw new RangeError(`invalid digits: ${n}`);e=t}return t},()=>new Xo(e)}function Qo(t){return t.innerRadius}function ts(t){return t.outerRadius}function es(t){return t.startAngle}function ns(t){return t.endAngle}function is(t){return t&&t.padAngle}function as(t,e,n,i,a,r,o,s){var c=n-t,l=i-e,u=o-a,d=s-r,h=d*c-u*l;if(!(h*h<$o))return[t+(h=(u*(e-r)-d*(t-a))/h)*c,e+h*l]}function rs(t,e,n,i,a,r,o){var s=t-n,c=e-i,l=(o?r:-r)/jo(s*s+c*c),u=l*c,d=-l*s,h=t+u,f=e+d,g=n+u,p=i+d,b=(h+g)/2,m=(f+p)/2,y=g-h,v=p-f,w=y*y+v*v,x=a-r,R=h*p-g*f,_=(v<0?-1:1)*jo(Bo(0,x*x*w-R*R)),k=(R*v-y*_)/w,E=(-R*y-v*_)/w,C=(R*v+y*_)/w,S=(-R*y+v*_)/w,T=k-b,A=E-m,D=C-b,I=S-m;return T*T+A*A>D*D+I*I&&(k=C,E=S),{cx:k,cy:E,x01:-u,y01:-d,x11:k*(a/x-1),y11:E*(a/x-1)}}function os(){var t=Qo,e=ts,n=Lo(0),i=null,a=es,r=ns,o=is,s=null,c=Jo(l);function l(){var l,u,d=+t.apply(this,arguments),h=+e.apply(this,arguments),f=a.apply(this,arguments)-Ho,g=r.apply(this,arguments)-Ho,p=Oo(g-f),b=g>f;if(s||(s=l=c()),h<d&&(u=h,h=d,d=u),h>$o)if(p>Uo-$o)s.moveTo(h*No(f),h*Fo(f)),s.arc(0,0,h,f,g,!b),d>$o&&(s.moveTo(d*No(g),d*Fo(g)),s.arc(0,0,d,g,f,b));else{var m,y,v=f,w=g,x=f,R=g,_=p,k=p,E=o.apply(this,arguments)/2,C=E>$o&&(i?+i.apply(this,arguments):jo(d*d+h*h)),S=Po(Oo(h-d)/2,+n.apply(this,arguments)),T=S,A=S;if(C>$o){var D=qo(C/d*Fo(E)),I=qo(C/h*Fo(E));(_-=2*D)>$o?(x+=D*=b?1:-1,R-=D):(_=0,x=R=(f+g)/2),(k-=2*I)>$o?(v+=I*=b?1:-1,w-=I):(k=0,v=w=(f+g)/2)}var L=h*No(v),O=h*Fo(v),M=d*No(R),N=d*Fo(R);if(S>$o){var B,P=h*No(w),F=h*Fo(w),j=d*No(x),$=d*Fo(x);if(p<zo)if(B=as(L,O,j,$,P,F,M,N)){var z=L-B[0],H=O-B[1],U=P-B[0],V=F-B[1],q=1/Fo(Vo((z*U+H*V)/(jo(z*z+H*H)*jo(U*U+V*V)))/2),W=jo(B[0]*B[0]+B[1]*B[1]);T=Po(S,(d-W)/(q-1)),A=Po(S,(h-W)/(q+1))}else T=A=0}k>$o?A>$o?(m=rs(j,$,L,O,h,A,b),y=rs(P,F,M,N,h,A,b),s.moveTo(m.cx+m.x01,m.cy+m.y01),A<S?s.arc(m.cx,m.cy,A,Mo(m.y01,m.x01),Mo(y.y01,y.x01),!b):(s.arc(m.cx,m.cy,A,Mo(m.y01,m.x01),Mo(m.y11,m.x11),!b),s.arc(0,0,h,Mo(m.cy+m.y11,m.cx+m.x11),Mo(y.cy+y.y11,y.cx+y.x11),!b),s.arc(y.cx,y.cy,A,Mo(y.y11,y.x11),Mo(y.y01,y.x01),!b))):(s.moveTo(L,O),s.arc(0,0,h,v,w,!b)):s.moveTo(L,O),d>$o&&_>$o?T>$o?(m=rs(M,N,P,F,d,-T,b),y=rs(L,O,j,$,d,-T,b),s.lineTo(m.cx+m.x01,m.cy+m.y01),T<S?s.arc(m.cx,m.cy,T,Mo(m.y01,m.x01),Mo(y.y01,y.x01),!b):(s.arc(m.cx,m.cy,T,Mo(m.y01,m.x01),Mo(m.y11,m.x11),!b),s.arc(0,0,d,Mo(m.cy+m.y11,m.cx+m.x11),Mo(y.cy+y.y11,y.cx+y.x11),b),s.arc(y.cx,y.cy,T,Mo(y.y11,y.x11),Mo(y.y01,y.x01),!b))):s.arc(0,0,d,R,x,b):s.lineTo(M,N)}else s.moveTo(0,0);if(s.closePath(),l)return s=null,l+""||null}return l.centroid=function(){var n=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,i=(+a.apply(this,arguments)+ +r.apply(this,arguments))/2-zo/2;return[No(i)*n,Fo(i)*n]},l.innerRadius=function(e){return arguments.length?(t="function"==typeof e?e:Lo(+e),l):t},l.outerRadius=function(t){return arguments.length?(e="function"==typeof t?t:Lo(+t),l):e},l.cornerRadius=function(t){return arguments.length?(n="function"==typeof t?t:Lo(+t),l):n},l.padRadius=function(t){return arguments.length?(i=null==t?null:"function"==typeof t?t:Lo(+t),l):i},l.startAngle=function(t){return arguments.length?(a="function"==typeof t?t:Lo(+t),l):a},l.endAngle=function(t){return arguments.length?(r="function"==typeof t?t:Lo(+t),l):r},l.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:Lo(+t),l):o},l.context=function(t){return arguments.length?(s=null==t?null:t,l):s},l}Array.prototype.slice;function ss(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function cs(t){this._context=t}function ls(t){return new cs(t)}function us(t){return t[0]}function ds(t){return t[1]}function hs(t,e){var n=Lo(!0),i=null,a=ls,r=null,o=Jo(s);function s(s){var c,l,u,d=(s=ss(s)).length,h=!1;for(null==i&&(r=a(u=o())),c=0;c<=d;++c)!(c<d&&n(l=s[c],c,s))===h&&((h=!h)?r.lineStart():r.lineEnd()),h&&r.point(+t(l,c,s),+e(l,c,s));if(u)return r=null,u+""||null}return t="function"==typeof t?t:void 0===t?us:Lo(t),e="function"==typeof e?e:void 0===e?ds:Lo(e),s.x=function(e){return arguments.length?(t="function"==typeof e?e:Lo(+e),s):t},s.y=function(t){return arguments.length?(e="function"==typeof t?t:Lo(+t),s):e},s.defined=function(t){return arguments.length?(n="function"==typeof t?t:Lo(!!t),s):n},s.curve=function(t){return arguments.length?(a=t,null!=i&&(r=a(i)),s):a},s.context=function(t){return arguments.length?(null==t?i=r=null:r=a(i=t),s):i},s}function fs(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function gs(t){return t}function ps(){var t=gs,e=fs,n=null,i=Lo(0),a=Lo(Uo),r=Lo(0);function o(o){var s,c,l,u,d,h=(o=ss(o)).length,f=0,g=new Array(h),p=new Array(h),b=+i.apply(this,arguments),m=Math.min(Uo,Math.max(-Uo,a.apply(this,arguments)-b)),y=Math.min(Math.abs(m)/h,r.apply(this,arguments)),v=y*(m<0?-1:1);for(s=0;s<h;++s)(d=p[g[s]=s]=+t(o[s],s,o))>0&&(f+=d);for(null!=e?g.sort((function(t,n){return e(p[t],p[n])})):null!=n&&g.sort((function(t,e){return n(o[t],o[e])})),s=0,l=f?(m-h*v)/f:0;s<h;++s,b=u)c=g[s],u=b+((d=p[c])>0?d*l:0)+v,p[c]={data:o[c],index:s,value:d,startAngle:b,endAngle:u,padAngle:y};return p}return o.value=function(e){return arguments.length?(t="function"==typeof e?e:Lo(+e),o):t},o.sortValues=function(t){return arguments.length?(e=t,n=null,o):e},o.sort=function(t){return arguments.length?(n=t,e=null,o):n},o.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:Lo(+t),o):i},o.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:Lo(+t),o):a},o.padAngle=function(t){return arguments.length?(r="function"==typeof t?t:Lo(+t),o):r},o}function bs(){}function ms(t,e,n){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+n)/6)}function ys(t){this._context=t}function vs(t){return new ys(t)}function ws(t){this._context=t}function xs(t){return new ws(t)}function Rs(t){this._context=t}function _s(t){return new Rs(t)}cs.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&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)}}},ys.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:ms(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&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:ms(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},ws.prototype={areaStart:bs,areaEnd:bs,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)}},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:ms(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},Rs.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||0!==this._line&&3===this._point)&&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 n=(this._x0+4*this._x1+t)/6,i=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,i):this._context.moveTo(n,i);break;case 3:this._point=4;default:ms(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};class ks{constructor(t,e){this._context=t,this._x=e}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(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._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,e,t,e):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+e)/2,t,this._y0,t,e)}this._x0=t,this._y0=e}}function Es(t){return new ks(t,!0)}function Cs(t){return new ks(t,!1)}function Ss(t,e){this._basis=new ys(t),this._beta=e}Ss.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var i,a=t[0],r=e[0],o=t[n]-a,s=e[n]-r,c=-1;++c<=n;)i=c/n,this._basis.point(this._beta*t[c]+(1-this._beta)*(a+i*o),this._beta*e[c]+(1-this._beta)*(r+i*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};const Ts=function t(e){function n(t){return 1===e?new ys(t):new Ss(t,e)}return n.beta=function(e){return t(+e)},n}(.85);function As(t,e,n){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-n),t._x2,t._y2)}function Ds(t,e){this._context=t,this._k=(1-e)/6}Ds.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:As(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&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:As(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Is=function t(e){function n(t){return new Ds(t,e)}return n.tension=function(e){return t(+e)},n}(0);function Ls(t,e){this._context=t,this._k=(1-e)/6}Ls.prototype={areaStart:bs,areaEnd:bs,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)}},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:As(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Os=function t(e){function n(t){return new Ls(t,e)}return n.tension=function(e){return t(+e)},n}(0);function Ms(t,e){this._context=t,this._k=(1-e)/6}Ms.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||0!==this._line&&3===this._point)&&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:As(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Ns=function t(e){function n(t){return new Ms(t,e)}return n.tension=function(e){return t(+e)},n}(0);function Bs(t,e,n){var i=t._x1,a=t._y1,r=t._x2,o=t._y2;if(t._l01_a>$o){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);i=(i*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,a=(a*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>$o){var l=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);r=(r*l+t._x1*t._l23_2a-e*t._l12_2a)/u,o=(o*l+t._y1*t._l23_2a-n*t._l12_2a)/u}t._context.bezierCurveTo(i,a,r,o,t._x2,t._y2)}function Ps(t,e){this._context=t,this._alpha=e}Ps.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)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,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:Bs(this,t,e)}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 Fs=function t(e){function n(t){return e?new Ps(t,e):new Ds(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function js(t,e){this._context=t,this._alpha=e}js.prototype={areaStart:bs,areaEnd:bs,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)}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,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:Bs(this,t,e)}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 $s=function t(e){function n(t){return e?new js(t,e):new Ls(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function zs(t,e){this._context=t,this._alpha=e}zs.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||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,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:Bs(this,t,e)}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 Hs=function t(e){function n(t){return e?new zs(t,e):new Ms(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function Us(t){this._context=t}function Vs(t){return new Us(t)}function qs(t){return t<0?-1:1}function Ws(t,e,n){var i=t._x1-t._x0,a=e-t._x1,r=(t._y1-t._y0)/(i||a<0&&-0),o=(n-t._y1)/(a||i<0&&-0),s=(r*a+o*i)/(i+a);return(qs(r)+qs(o))*Math.min(Math.abs(r),Math.abs(o),.5*Math.abs(s))||0}function Ys(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function Gs(t,e,n){var i=t._x0,a=t._y0,r=t._x1,o=t._y1,s=(r-i)/3;t._context.bezierCurveTo(i+s,a+s*e,r-s,o-s*n,r,o)}function Zs(t){this._context=t}function Ks(t){this._context=new Xs(t)}function Xs(t){this._context=t}function Js(t){return new Zs(t)}function Qs(t){return new Ks(t)}function tc(t){this._context=t}function ec(t){var e,n,i=t.length-1,a=new Array(i),r=new Array(i),o=new Array(i);for(a[0]=0,r[0]=2,o[0]=t[0]+2*t[1],e=1;e<i-1;++e)a[e]=1,r[e]=4,o[e]=4*t[e]+2*t[e+1];for(a[i-1]=2,r[i-1]=7,o[i-1]=8*t[i-1]+t[i],e=1;e<i;++e)n=a[e]/r[e-1],r[e]-=n,o[e]-=n*o[e-1];for(a[i-1]=o[i-1]/r[i-1],e=i-2;e>=0;--e)a[e]=(o[e]-a[e+1])/r[e];for(r[i-1]=(t[i]+a[i-1])/2,e=0;e<i-1;++e)r[e]=2*t[e+1]-a[e+1];return[a,r]}function nc(t){return new tc(t)}function ic(t,e){this._context=t,this._t=e}function ac(t){return new ic(t,.5)}function rc(t){return new ic(t,0)}function oc(t){return new ic(t,1)}function sc(t,e,n){this.k=t,this.x=e,this.y=n}Us.prototype={areaStart:bs,areaEnd:bs,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))}},Zs.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:Gs(this,this._t0,Ys(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(e=+e,(t=+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,Gs(this,Ys(this,n=Ws(this,t,e)),n);break;default:Gs(this,this._t0,n=Ws(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}},(Ks.prototype=Object.create(Zs.prototype)).point=function(t,e){Zs.prototype.point.call(this,e,t)},Xs.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,n,i,a,r){this._context.bezierCurveTo(e,t,i,n,r,a)}},tc.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,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),2===n)this._context.lineTo(t[1],e[1]);else for(var i=ec(t),a=ec(e),r=0,o=1;o<n;++r,++o)this._context.bezierCurveTo(i[0][r],a[0][r],i[1][r],a[1][r],t[o],e[o]);(this._line||0!==this._line&&1===n)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}},ic.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=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 n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}}this._x=t,this._y=e}},sc.prototype={constructor:sc,scale:function(t){return 1===t?this:new sc(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new sc(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+")"}};new sc(1,0,0);sc.prototype},23352:(t,e,n)=>{"use strict";function i(t,e,n,i){var r,o,s,c,l,u,d,h,f,g,p,b,m;if(r=e.y-t.y,s=t.x-e.x,l=e.x*t.y-t.x*e.y,f=r*n.x+s*n.y+l,g=r*i.x+s*i.y+l,!(0!==f&&0!==g&&a(f,g)||(o=i.y-n.y,c=n.x-i.x,u=i.x*n.y-n.x*i.y,d=o*t.x+c*t.y+u,h=o*e.x+c*e.y+u,0!==d&&0!==h&&a(d,h)||0==(p=r*c-o*s))))return b=Math.abs(p/2),{x:(m=s*u-c*l)<0?(m-b)/p:(m+b)/p,y:(m=o*l-r*u)<0?(m-b)/p:(m+b)/p}}function a(t,e){return t*e>0}function r(t,e,n){var a=t.x,r=t.y,o=[],s=Number.POSITIVE_INFINITY,c=Number.POSITIVE_INFINITY;e.forEach((function(t){s=Math.min(s,t.x),c=Math.min(c,t.y)}));for(var l=a-t.width/2-s,u=r-t.height/2-c,d=0;d<e.length;d++){var h=e[d],f=e[d<e.length-1?d+1:0],g=i(t,n,{x:l+h.x,y:u+h.y},{x:l+f.x,y:u+f.y});g&&o.push(g)}return o.length?(o.length>1&&o.sort((function(t,e){var i=t.x-n.x,a=t.y-n.y,r=Math.sqrt(i*i+a*a),o=e.x-n.x,s=e.y-n.y,c=Math.sqrt(o*o+s*s);return r<c?-1:r===c?0:1})),o[0]):(console.log("NO INTERSECTION FOUND, RETURN NODE CENTER",t),t)}n.d(e,{A:()=>r})},22930:(t,e,n)=>{"use strict";function i(t,e){var n,i,a=t.x,r=t.y,o=e.x-a,s=e.y-r,c=t.width/2,l=t.height/2;return Math.abs(s)*c>Math.abs(o)*l?(s<0&&(l=-l),n=0===s?0:l*o/s,i=l):(o<0&&(c=-c),n=c,i=0===o?0:c*s/o),{x:a+n,y:r+i}}n.d(e,{q:()=>i})},43349:(t,e,n)=>{"use strict";n.d(e,{a:()=>a});var i=n(96225);function a(t,e){var n=t.append("foreignObject").attr("width","100000"),a=n.append("xhtml:div");a.attr("xmlns","http://www.w3.org/1999/xhtml");var r=e.label;switch(typeof r){case"function":a.insert(r);break;case"object":a.insert((function(){return r}));break;default:a.html(r)}i.bg(a,e.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap");var o=a.node().getBoundingClientRect();return n.attr("width",o.width).attr("height",o.height),n}},96225:(t,e,n)=>{"use strict";n.d(e,{$p:()=>u,O1:()=>o,WR:()=>d,bF:()=>r,bg:()=>l});var i=n(37514),a=n(73234);function r(t,e){return!!t.children(e).length}function o(t){return c(t.v)+":"+c(t.w)+":"+c(t.name)}var s=/:/g;function c(t){return t?String(t).replace(s,"\\:"):""}function l(t,e){e&&t.attr("style",e)}function u(t,e,n){e&&t.attr("class",e).attr("class",n+" "+t.attr("class"))}function d(t,e){var n=e.graph();if(i.Z(n)){var r=n.transition;if(a.Z(r))return r(t)}return t}},70277:(t,e,n)=>{"use strict";n.d(e,{bK:()=>Ge});var i=n(70870),a=n(66749),r=n(17452),o=n(62002),s=n(27961),c=n(43836),l=n(74379),u=n(45625);class d{constructor(){var t={};t._next=t._prev=t,this._sentinel=t}dequeue(){var t=this._sentinel,e=t._prev;if(e!==t)return h(e),e}enqueue(t){var e=this._sentinel;t._prev&&t._next&&h(t),t._next=e._next,e._next._prev=t,e._next=t,t._prev=e}toString(){for(var t=[],e=this._sentinel,n=e._prev;n!==e;)t.push(JSON.stringify(n,f)),n=n._prev;return"["+t.join(", ")+"]"}}function h(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function f(t,e){if("_next"!==t&&"_prev"!==t)return e}var g=o.Z(1);function p(t,e){if(t.nodeCount()<=1)return[];var n=function(t,e){var n=new u.k,a=0,r=0;i.Z(t.nodes(),(function(t){n.setNode(t,{v:t,in:0,out:0})})),i.Z(t.edges(),(function(t){var i=n.edge(t.v,t.w)||0,o=e(t),s=i+o;n.setEdge(t.v,t.w,s),r=Math.max(r,n.node(t.v).out+=o),a=Math.max(a,n.node(t.w).in+=o)}));var o=l.Z(r+a+3).map((function(){return new d})),s=a+1;return i.Z(n.nodes(),(function(t){m(o,s,n.node(t))})),{graph:n,buckets:o,zeroIdx:s}}(t,e||g),a=function(t,e,n){var i,a=[],r=e[e.length-1],o=e[0];for(;t.nodeCount();){for(;i=o.dequeue();)b(t,e,n,i);for(;i=r.dequeue();)b(t,e,n,i);if(t.nodeCount())for(var s=e.length-2;s>0;--s)if(i=e[s].dequeue()){a=a.concat(b(t,e,n,i,!0));break}}return a}(n.graph,n.buckets,n.zeroIdx);return s.Z(c.Z(a,(function(e){return t.outEdges(e.v,e.w)})))}function b(t,e,n,a,r){var o=r?[]:void 0;return i.Z(t.inEdges(a.v),(function(i){var a=t.edge(i),s=t.node(i.v);r&&o.push({v:i.v,w:i.w}),s.out-=a,m(e,n,s)})),i.Z(t.outEdges(a.v),(function(i){var a=t.edge(i),r=i.w,o=t.node(r);o.in-=a,m(e,n,o)})),t.removeNode(a.v),o}function m(t,e,n){n.out?n.in?t[n.out-n.in+e].enqueue(n):t[t.length-1].enqueue(n):t[0].enqueue(n)}function y(t){var e="greedy"===t.graph().acyclicer?p(t,function(t){return function(e){return t.edge(e).weight}}(t)):function(t){var e=[],n={},a={};function o(s){r.Z(a,s)||(a[s]=!0,n[s]=!0,i.Z(t.outEdges(s),(function(t){r.Z(n,t.w)?e.push(t):o(t.w)})),delete n[s])}return i.Z(t.nodes(),o),e}(t);i.Z(e,(function(e){var n=t.edge(e);t.removeEdge(e),n.forwardName=e.name,n.reversed=!0,t.setEdge(e.w,e.v,n,a.Z("rev"))}))}var v=n(31667),w=n(74752),x=n(79651);const R=function(t,e,n){(void 0!==n&&!(0,x.Z)(t[e],n)||void 0===n&&!(e in t))&&(0,w.Z)(t,e,n)};var _=n(61395),k=n(91050),E=n(12701),C=n(87215),S=n(73658),T=n(29169),A=n(27771),D=n(836),I=n(77008),L=n(73234),O=n(77226),M=n(37514),N=n(18843);const B=function(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]};var P=n(31899),F=n(32957);const j=function(t){return(0,P.Z)(t,(0,F.Z)(t))};const $=function(t,e,n,i,a,r,o){var s=B(t,n),c=B(e,n),l=o.get(c);if(l)R(t,n,l);else{var u=r?r(s,c,n+"",t,e,o):void 0,d=void 0===u;if(d){var h=(0,A.Z)(c),f=!h&&(0,I.Z)(c),g=!h&&!f&&(0,N.Z)(c);u=c,h||f||g?(0,A.Z)(s)?u=s:(0,D.Z)(s)?u=(0,C.Z)(s):f?(d=!1,u=(0,k.Z)(c,!0)):g?(d=!1,u=(0,E.Z)(c,!0)):u=[]:(0,M.Z)(c)||(0,T.Z)(c)?(u=s,(0,T.Z)(s)?u=j(s):(0,O.Z)(s)&&!(0,L.Z)(s)||(u=(0,S.Z)(c))):d=!1}d&&(o.set(c,u),a(u,c,i,r,o),o.delete(c)),R(t,n,u)}};const z=function t(e,n,i,a,r){e!==n&&(0,_.Z)(n,(function(o,s){if(r||(r=new v.Z),(0,O.Z)(o))$(e,n,s,i,t,a,r);else{var c=a?a(B(e,s),o,s+"",e,n,r):void 0;void 0===c&&(c=o),R(e,s,c)}}),F.Z)};var H=n(69581),U=n(50439);const V=function(t){return(0,H.Z)((function(e,n){var i=-1,a=n.length,r=a>1?n[a-1]:void 0,o=a>2?n[2]:void 0;for(r=t.length>3&&"function"==typeof r?(a--,r):void 0,o&&(0,U.Z)(n[0],n[1],o)&&(r=a<3?void 0:r,a=1),e=Object(e);++i<a;){var s=n[i];s&&t(e,s,i,r)}return e}))}((function(t,e,n){z(t,e,n)}));var q=n(61666),W=n(3688),Y=n(72714);const G=function(t,e,n){for(var i=-1,a=t.length;++i<a;){var r=t[i],o=e(r);if(null!=o&&(void 0===s?o==o&&!(0,Y.Z)(o):n(o,s)))var s=o,c=r}return c};const Z=function(t,e){return t>e};var K=n(69203);const X=function(t){return t&&t.length?G(t,K.Z,Z):void 0};const J=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0};var Q=n(2693),tt=n(74765);const et=function(t,e){var n={};return e=(0,tt.Z)(e,3),(0,Q.Z)(t,(function(t,i,a){(0,w.Z)(n,i,e(t,i,a))})),n};var nt=n(49360);const it=function(t,e){return t<e};const at=function(t){return t&&t.length?G(t,K.Z,it):void 0};var rt=n(66092);const ot=function(){return rt.Z.Date.now()};function st(t,e,n,i){var r;do{r=a.Z(i)}while(t.hasNode(r));return n.dummy=e,t.setNode(r,n),r}function ct(t){var e=new u.k({multigraph:t.isMultigraph()}).setGraph(t.graph());return i.Z(t.nodes(),(function(n){t.children(n).length||e.setNode(n,t.node(n))})),i.Z(t.edges(),(function(n){e.setEdge(n,t.edge(n))})),e}function lt(t,e){var n,i,a=t.x,r=t.y,o=e.x-a,s=e.y-r,c=t.width/2,l=t.height/2;if(!o&&!s)throw new Error("Not possible to find intersection inside of the rectangle");return Math.abs(s)*c>Math.abs(o)*l?(s<0&&(l=-l),n=l*o/s,i=l):(o<0&&(c=-c),n=c,i=c*s/o),{x:a+n,y:r+i}}function ut(t){var e=c.Z(l.Z(ht(t)+1),(function(){return[]}));return i.Z(t.nodes(),(function(n){var i=t.node(n),a=i.rank;nt.Z(a)||(e[a][i.order]=n)})),e}function dt(t,e,n,i){var a={width:0,height:0};return arguments.length>=4&&(a.rank=n,a.order=i),st(t,"border",a,e)}function ht(t){return X(c.Z(t.nodes(),(function(e){var n=t.node(e).rank;if(!nt.Z(n))return n})))}function ft(t,e){var n=ot();try{return e()}finally{console.log(t+" time: "+(ot()-n)+"ms")}}function gt(t,e){return e()}function pt(t,e,n,i,a,r){var o={width:0,height:0,rank:r,borderType:e},s=a[e][r-1],c=st(t,"border",o,n);a[e][r]=c,t.setParent(c,i),s&&t.setEdge(s,c,{weight:1})}function bt(t){var e=t.graph().rankdir.toLowerCase();"bt"!==e&&"rl"!==e||function(t){i.Z(t.nodes(),(function(e){vt(t.node(e))})),i.Z(t.edges(),(function(e){var n=t.edge(e);i.Z(n.points,vt),r.Z(n,"y")&&vt(n)}))}(t),"lr"!==e&&"rl"!==e||(!function(t){i.Z(t.nodes(),(function(e){wt(t.node(e))})),i.Z(t.edges(),(function(e){var n=t.edge(e);i.Z(n.points,wt),r.Z(n,"x")&&wt(n)}))}(t),mt(t))}function mt(t){i.Z(t.nodes(),(function(e){yt(t.node(e))})),i.Z(t.edges(),(function(e){yt(t.edge(e))}))}function yt(t){var e=t.width;t.width=t.height,t.height=e}function vt(t){t.y=-t.y}function wt(t){var e=t.x;t.x=t.y,t.y=e}function xt(t){t.graph().dummyChains=[],i.Z(t.edges(),(function(e){!function(t,e){var n,i,a,r=e.v,o=t.node(r).rank,s=e.w,c=t.node(s).rank,l=e.name,u=t.edge(e),d=u.labelRank;if(c===o+1)return;for(t.removeEdge(e),a=0,++o;o<c;++a,++o)u.points=[],n=st(t,"edge",i={width:0,height:0,edgeLabel:u,edgeObj:e,rank:o},"_d"),o===d&&(i.width=u.width,i.height=u.height,i.dummy="edge-label",i.labelpos=u.labelpos),t.setEdge(r,n,{weight:u.weight},l),0===a&&t.graph().dummyChains.push(n),r=n;t.setEdge(r,s,{weight:u.weight},l)}(t,e)}))}const Rt=function(t,e){return t&&t.length?G(t,(0,tt.Z)(e,2),it):void 0};function _t(t){var e={};i.Z(t.sources(),(function n(i){var a=t.node(i);if(r.Z(e,i))return a.rank;e[i]=!0;var o=at(c.Z(t.outEdges(i),(function(e){return n(e.w)-t.edge(e).minlen})));return o!==Number.POSITIVE_INFINITY&&null!=o||(o=0),a.rank=o}))}function kt(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}function Et(t){var e,n,i=new u.k({directed:!1}),a=t.nodes()[0],r=t.nodeCount();for(i.setNode(a,{});Ct(i,t)<r;)e=St(i,t),n=i.hasNode(e.v)?kt(t,e):-kt(t,e),Tt(i,t,n);return i}function Ct(t,e){return i.Z(t.nodes(),(function n(a){i.Z(e.nodeEdges(a),(function(i){var r=i.v,o=a===r?i.w:r;t.hasNode(o)||kt(e,i)||(t.setNode(o,{}),t.setEdge(a,o,{}),n(o))}))})),t.nodeCount()}function St(t,e){return Rt(e.edges(),(function(n){if(t.hasNode(n.v)!==t.hasNode(n.w))return kt(e,n)}))}function Tt(t,e,n){i.Z(t.nodes(),(function(t){e.node(t).rank+=n}))}var At=n(50585),Dt=n(17179);const It=function(t){return function(e,n,i){var a=Object(e);if(!(0,At.Z)(e)){var r=(0,tt.Z)(n,3);e=(0,Dt.Z)(e),n=function(t){return r(a[t],t,a)}}var o=t(e,n,i);return o>-1?a[r?e[o]:o]:void 0}};var Lt=n(21692),Ot=n(94099);const Mt=function(t){var e=(0,Ot.Z)(t),n=e%1;return e==e?n?e-n:e:0};var Nt=Math.max;const Bt=It((function(t,e,n){var i=null==t?0:t.length;if(!i)return-1;var a=null==n?0:Mt(n);return a<0&&(a=Nt(i+a,0)),(0,Lt.Z)(t,(0,tt.Z)(e,3),a)}));var Pt=n(13445);o.Z(1);o.Z(1);n(39473),n(83970),n(93589),n(18533);(0,n(54193).Z)("length");RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");var Ft="[\\ud800-\\udfff]",jt="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",$t="\\ud83c[\\udffb-\\udfff]",zt="[^\\ud800-\\udfff]",Ht="(?:\\ud83c[\\udde6-\\uddff]){2}",Ut="[\\ud800-\\udbff][\\udc00-\\udfff]",Vt="(?:"+jt+"|"+$t+")"+"?",qt="[\\ufe0e\\ufe0f]?",Wt=qt+Vt+("(?:\\u200d(?:"+[zt,Ht,Ut].join("|")+")"+qt+Vt+")*"),Yt="(?:"+[zt+jt+"?",jt,Ht,Ut,Ft].join("|")+")";RegExp($t+"(?="+$t+")|"+Yt+Wt,"g");function Gt(){}function Zt(t,e,n){A.Z(e)||(e=[e]);var a=(t.isDirected()?t.successors:t.neighbors).bind(t),r=[],o={};return i.Z(e,(function(e){if(!t.hasNode(e))throw new Error("Graph does not have node: "+e);Kt(t,e,"post"===n,o,a,r)})),r}function Kt(t,e,n,a,o,s){r.Z(a,e)||(a[e]=!0,n||s.push(e),i.Z(o(e),(function(e){Kt(t,e,n,a,o,s)})),n&&s.push(e))}Gt.prototype=new Error;n(52544);function Xt(t){t=function(t){var e=(new u.k).setGraph(t.graph());return i.Z(t.nodes(),(function(n){e.setNode(n,t.node(n))})),i.Z(t.edges(),(function(n){var i=e.edge(n.v,n.w)||{weight:0,minlen:1},a=t.edge(n);e.setEdge(n.v,n.w,{weight:i.weight+a.weight,minlen:Math.max(i.minlen,a.minlen)})})),e}(t),_t(t);var e,n=Et(t);for(te(n),Jt(n,t);e=ne(n);)ae(n,t,e,ie(n,t,e))}function Jt(t,e){var n=function(t,e){return Zt(t,e,"post")}(t,t.nodes());n=n.slice(0,n.length-1),i.Z(n,(function(n){!function(t,e,n){var i=t.node(n).parent;t.edge(n,i).cutvalue=Qt(t,e,n)}(t,e,n)}))}function Qt(t,e,n){var a=t.node(n).parent,r=!0,o=e.edge(n,a),s=0;return o||(r=!1,o=e.edge(a,n)),s=o.weight,i.Z(e.nodeEdges(n),(function(i){var o,c,l=i.v===n,u=l?i.w:i.v;if(u!==a){var d=l===r,h=e.edge(i).weight;if(s+=d?h:-h,o=n,c=u,t.hasEdge(o,c)){var f=t.edge(n,u).cutvalue;s+=d?-f:f}}})),s}function te(t,e){arguments.length<2&&(e=t.nodes()[0]),ee(t,{},1,e)}function ee(t,e,n,a,o){var s=n,c=t.node(a);return e[a]=!0,i.Z(t.neighbors(a),(function(i){r.Z(e,i)||(n=ee(t,e,n,i,a))})),c.low=s,c.lim=n++,o?c.parent=o:delete c.parent,n}function ne(t){return Bt(t.edges(),(function(e){return t.edge(e).cutvalue<0}))}function ie(t,e,n){var i=n.v,a=n.w;e.hasEdge(i,a)||(i=n.w,a=n.v);var r=t.node(i),o=t.node(a),s=r,c=!1;r.lim>o.lim&&(s=o,c=!0);var l=Pt.Z(e.edges(),(function(e){return c===re(t,t.node(e.v),s)&&c!==re(t,t.node(e.w),s)}));return Rt(l,(function(t){return kt(e,t)}))}function ae(t,e,n,a){var r=n.v,o=n.w;t.removeEdge(r,o),t.setEdge(a.v,a.w,{}),te(t),Jt(t,e),function(t,e){var n=Bt(t.nodes(),(function(t){return!e.node(t).parent})),a=function(t,e){return Zt(t,e,"pre")}(t,n);a=a.slice(1),i.Z(a,(function(n){var i=t.node(n).parent,a=e.edge(n,i),r=!1;a||(a=e.edge(i,n),r=!0),e.node(n).rank=e.node(i).rank+(r?a.minlen:-a.minlen)}))}(t,e)}function re(t,e,n){return n.low<=e.lim&&e.lim<=n.lim}function oe(t){switch(t.graph().ranker){case"network-simplex":default:ce(t);break;case"tight-tree":!function(t){_t(t),Et(t)}(t);break;case"longest-path":se(t)}}Xt.initLowLimValues=te,Xt.initCutValues=Jt,Xt.calcCutValue=Qt,Xt.leaveEdge=ne,Xt.enterEdge=ie,Xt.exchangeEdges=ae;var se=_t;function ce(t){Xt(t)}var le=n(34148),ue=n(92344);function de(t){var e=st(t,"root",{},"_root"),n=function(t){var e={};function n(a,r){var o=t.children(a);o&&o.length&&i.Z(o,(function(t){n(t,r+1)})),e[a]=r}return i.Z(t.children(),(function(t){n(t,1)})),e}(t),a=X(le.Z(n))-1,r=2*a+1;t.graph().nestingRoot=e,i.Z(t.edges(),(function(e){t.edge(e).minlen*=r}));var o=function(t){return ue.Z(t.edges(),(function(e,n){return e+t.edge(n).weight}),0)}(t)+1;i.Z(t.children(),(function(i){he(t,e,r,o,a,n,i)})),t.graph().nodeRankFactor=r}function he(t,e,n,a,r,o,s){var c=t.children(s);if(c.length){var l=dt(t,"_bt"),u=dt(t,"_bb"),d=t.node(s);t.setParent(l,s),d.borderTop=l,t.setParent(u,s),d.borderBottom=u,i.Z(c,(function(i){he(t,e,n,a,r,o,i);var c=t.node(i),d=c.borderTop?c.borderTop:i,h=c.borderBottom?c.borderBottom:i,f=c.borderTop?a:2*a,g=d!==h?1:r-o[s]+1;t.setEdge(l,d,{weight:f,minlen:g,nestingEdge:!0}),t.setEdge(h,u,{weight:f,minlen:g,nestingEdge:!0})})),t.parent(s)||t.setEdge(e,l,{weight:0,minlen:r+o[s]})}else s!==e&&t.setEdge(e,s,{weight:0,minlen:n})}var fe=n(48451);const ge=function(t){return(0,fe.Z)(t,5)};function pe(t,e,n){var o=function(t){var e;for(;t.hasNode(e=a.Z("_root")););return e}(t),s=new u.k({compound:!0}).setGraph({root:o}).setDefaultNodeLabel((function(e){return t.node(e)}));return i.Z(t.nodes(),(function(a){var c=t.node(a),l=t.parent(a);(c.rank===e||c.minRank<=e&&e<=c.maxRank)&&(s.setNode(a),s.setParent(a,l||o),i.Z(t[n](a),(function(e){var n=e.v===a?e.w:e.v,i=s.edge(n,a),r=nt.Z(i)?0:i.weight;s.setEdge(n,a,{weight:t.edge(e).weight+r})})),r.Z(c,"minRank")&&s.setNode(a,{borderLeft:c.borderLeft[e],borderRight:c.borderRight[e]}))})),s}var be=n(72954);const me=function(t,e,n){for(var i=-1,a=t.length,r=e.length,o={};++i<a;){var s=i<r?e[i]:void 0;n(o,t[i],s)}return o};const ye=function(t,e){return me(t||[],e||[],be.Z)};var ve=n(10626),we=n(74073),xe=n(13317),Re=n(21018);const _e=function(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t};var ke=n(21162);const Ee=function(t,e){if(t!==e){var n=void 0!==t,i=null===t,a=t==t,r=(0,Y.Z)(t),o=void 0!==e,s=null===e,c=e==e,l=(0,Y.Z)(e);if(!s&&!l&&!r&&t>e||r&&o&&c&&!s&&!l||i&&o&&c||!n&&c||!a)return 1;if(!i&&!r&&!l&&t<e||l&&n&&a&&!i&&!r||s&&n&&a||!o&&a||!c)return-1}return 0};const Ce=function(t,e,n){for(var i=-1,a=t.criteria,r=e.criteria,o=a.length,s=n.length;++i<o;){var c=Ee(a[i],r[i]);if(c)return i>=s?c:c*("desc"==n[i]?-1:1)}return t.index-e.index};const Se=function(t,e,n){e=e.length?(0,we.Z)(e,(function(t){return(0,A.Z)(t)?function(e){return(0,xe.Z)(e,1===t.length?t[0]:t)}:t})):[K.Z];var i=-1;e=(0,we.Z)(e,(0,ke.Z)(tt.Z));var a=(0,Re.Z)(t,(function(t,n,a){return{criteria:(0,we.Z)(e,(function(e){return e(t)})),index:++i,value:t}}));return _e(a,(function(t,e){return Ce(t,e,n)}))};const Te=(0,H.Z)((function(t,e){if(null==t)return[];var n=e.length;return n>1&&(0,U.Z)(t,e[0],e[1])?e=[]:n>2&&(0,U.Z)(e[0],e[1],e[2])&&(e=[e[0]]),Se(t,(0,ve.Z)(e,1),[])}));function Ae(t,e){for(var n=0,i=1;i<e.length;++i)n+=De(t,e[i-1],e[i]);return n}function De(t,e,n){for(var a=ye(n,c.Z(n,(function(t,e){return e}))),r=s.Z(c.Z(e,(function(e){return Te(c.Z(t.outEdges(e),(function(e){return{pos:a[e.w],weight:t.edge(e).weight}})),"pos")}))),o=1;o<n.length;)o<<=1;var l=2*o-1;o-=1;var u=c.Z(new Array(l),(function(){return 0})),d=0;return i.Z(r.forEach((function(t){var e=t.pos+o;u[e]+=t.weight;for(var n=0;e>0;)e%2&&(n+=u[e+1]),u[e=e-1>>1]+=t.weight;d+=t.weight*n}))),d}function Ie(t,e){var n={};return i.Z(t,(function(t,e){var i=n[t.v]={indegree:0,in:[],out:[],vs:[t.v],i:e};nt.Z(t.barycenter)||(i.barycenter=t.barycenter,i.weight=t.weight)})),i.Z(e.edges(),(function(t){var e=n[t.v],i=n[t.w];nt.Z(e)||nt.Z(i)||(i.indegree++,e.out.push(n[t.w]))})),function(t){var e=[];function n(t){return function(e){e.merged||(nt.Z(e.barycenter)||nt.Z(t.barycenter)||e.barycenter>=t.barycenter)&&function(t,e){var n=0,i=0;t.weight&&(n+=t.barycenter*t.weight,i+=t.weight);e.weight&&(n+=e.barycenter*e.weight,i+=e.weight);t.vs=e.vs.concat(t.vs),t.barycenter=n/i,t.weight=i,t.i=Math.min(e.i,t.i),e.merged=!0}(t,e)}}function a(e){return function(n){n.in.push(e),0==--n.indegree&&t.push(n)}}for(;t.length;){var r=t.pop();e.push(r),i.Z(r.in.reverse(),n(r)),i.Z(r.out,a(r))}return c.Z(Pt.Z(e,(function(t){return!t.merged})),(function(t){return q.Z(t,["vs","i","barycenter","weight"])}))}(Pt.Z(n,(function(t){return!t.indegree})))}function Le(t,e){var n,a=function(t,e){var n={lhs:[],rhs:[]};return i.Z(t,(function(t){e(t)?n.lhs.push(t):n.rhs.push(t)})),n}(t,(function(t){return r.Z(t,"barycenter")})),o=a.lhs,c=Te(a.rhs,(function(t){return-t.i})),l=[],u=0,d=0,h=0;o.sort((n=!!e,function(t,e){return t.barycenter<e.barycenter?-1:t.barycenter>e.barycenter?1:n?e.i-t.i:t.i-e.i})),h=Oe(l,c,h),i.Z(o,(function(t){h+=t.vs.length,l.push(t.vs),u+=t.barycenter*t.weight,d+=t.weight,h=Oe(l,c,h)}));var f={vs:s.Z(l)};return d&&(f.barycenter=u/d,f.weight=d),f}function Oe(t,e,n){for(var i;e.length&&(i=J(e)).i<=n;)e.pop(),t.push(i.vs),n++;return n}function Me(t,e,n,a){var o=t.children(e),l=t.node(e),u=l?l.borderLeft:void 0,d=l?l.borderRight:void 0,h={};u&&(o=Pt.Z(o,(function(t){return t!==u&&t!==d})));var f=function(t,e){return c.Z(e,(function(e){var n=t.inEdges(e);if(n.length){var i=ue.Z(n,(function(e,n){var i=t.edge(n),a=t.node(n.v);return{sum:e.sum+i.weight*a.order,weight:e.weight+i.weight}}),{sum:0,weight:0});return{v:e,barycenter:i.sum/i.weight,weight:i.weight}}return{v:e}}))}(t,o);i.Z(f,(function(e){if(t.children(e.v).length){var i=Me(t,e.v,n,a);h[e.v]=i,r.Z(i,"barycenter")&&(o=e,s=i,nt.Z(o.barycenter)?(o.barycenter=s.barycenter,o.weight=s.weight):(o.barycenter=(o.barycenter*o.weight+s.barycenter*s.weight)/(o.weight+s.weight),o.weight+=s.weight))}var o,s}));var g=Ie(f,n);!function(t,e){i.Z(t,(function(t){t.vs=s.Z(t.vs.map((function(t){return e[t]?e[t].vs:t})))}))}(g,h);var p=Le(g,a);if(u&&(p.vs=s.Z([u,p.vs,d]),t.predecessors(u).length)){var b=t.node(t.predecessors(u)[0]),m=t.node(t.predecessors(d)[0]);r.Z(p,"barycenter")||(p.barycenter=0,p.weight=0),p.barycenter=(p.barycenter*p.weight+b.order+m.order)/(p.weight+2),p.weight+=2}return p}function Ne(t){var e=ht(t),n=Be(t,l.Z(1,e+1),"inEdges"),a=Be(t,l.Z(e-1,-1,-1),"outEdges"),o=function(t){var e={},n=Pt.Z(t.nodes(),(function(e){return!t.children(e).length})),a=X(c.Z(n,(function(e){return t.node(e).rank}))),o=c.Z(l.Z(a+1),(function(){return[]})),s=Te(n,(function(e){return t.node(e).rank}));return i.Z(s,(function n(a){if(!r.Z(e,a)){e[a]=!0;var s=t.node(a);o[s.rank].push(a),i.Z(t.successors(a),n)}})),o}(t);Fe(t,o);for(var s,u=Number.POSITIVE_INFINITY,d=0,h=0;h<4;++d,++h){Pe(d%2?n:a,d%4>=2);var f=Ae(t,o=ut(t));f<u&&(h=0,s=ge(o),u=f)}Fe(t,s)}function Be(t,e,n){return c.Z(e,(function(e){return pe(t,e,n)}))}function Pe(t,e){var n=new u.k;i.Z(t,(function(t){var a=t.graph().root,r=Me(t,a,n,e);i.Z(r.vs,(function(e,n){t.node(e).order=n})),function(t,e,n){var a,r={};i.Z(n,(function(n){for(var i,o,s=t.parent(n);s;){if((i=t.parent(s))?(o=r[i],r[i]=s):(o=a,a=s),o&&o!==s)return void e.setEdge(o,s);s=i}}))}(t,n,r.vs)}))}function Fe(t,e){i.Z(e,(function(e){i.Z(e,(function(e,n){t.node(e).order=n}))}))}function je(t){var e=function(t){var e={},n=0;function a(r){var o=n;i.Z(t.children(r),a),e[r]={low:o,lim:n++}}return i.Z(t.children(),a),e}(t);i.Z(t.graph().dummyChains,(function(n){for(var i=t.node(n),a=i.edgeObj,r=function(t,e,n,i){var a,r,o=[],s=[],c=Math.min(e[n].low,e[i].low),l=Math.max(e[n].lim,e[i].lim);a=n;do{a=t.parent(a),o.push(a)}while(a&&(e[a].low>c||l>e[a].lim));r=a,a=i;for(;(a=t.parent(a))!==r;)s.push(a);return{path:o.concat(s.reverse()),lca:r}}(t,e,a.v,a.w),o=r.path,s=r.lca,c=0,l=o[c],u=!0;n!==a.w;){if(i=t.node(n),u){for(;(l=o[c])!==s&&t.node(l).maxRank<i.rank;)c++;l===s&&(u=!1)}if(!u){for(;c<o.length-1&&t.node(l=o[c+1]).minRank<=i.rank;)c++;l=o[c]}t.setParent(n,l),n=t.successors(n)[0]}}))}var $e=n(68882);const ze=function(t,e){return null==t?t:(0,_.Z)(t,(0,$e.Z)(e),F.Z)};function He(t,e){var n={};return ue.Z(e,(function(e,a){var r=0,o=0,s=e.length,c=J(a);return i.Z(a,(function(e,l){var u=function(t,e){if(t.node(e).dummy)return Bt(t.predecessors(e),(function(e){return t.node(e).dummy}))}(t,e),d=u?t.node(u).order:s;(u||e===c)&&(i.Z(a.slice(o,l+1),(function(e){i.Z(t.predecessors(e),(function(i){var a=t.node(i),o=a.order;!(o<r||d<o)||a.dummy&&t.node(e).dummy||Ue(n,i,e)}))})),o=l+1,r=d)})),a})),n}function Ue(t,e,n){if(e>n){var i=e;e=n,n=i}var a=t[e];a||(t[e]=a={}),a[n]=!0}function Ve(t,e,n){if(e>n){var i=e;e=n,n=i}return r.Z(t[e],n)}function qe(t,e,n,a,o){var s={},c=function(t,e,n,a){var o=new u.k,s=t.graph(),c=function(t,e,n){return function(i,a,o){var s,c=i.node(a),l=i.node(o),u=0;if(u+=c.width/2,r.Z(c,"labelpos"))switch(c.labelpos.toLowerCase()){case"l":s=-c.width/2;break;case"r":s=c.width/2}if(s&&(u+=n?s:-s),s=0,u+=(c.dummy?e:t)/2,u+=(l.dummy?e:t)/2,u+=l.width/2,r.Z(l,"labelpos"))switch(l.labelpos.toLowerCase()){case"l":s=l.width/2;break;case"r":s=-l.width/2}return s&&(u+=n?s:-s),s=0,u}}(s.nodesep,s.edgesep,a);return i.Z(e,(function(e){var a;i.Z(e,(function(e){var i=n[e];if(o.setNode(i),a){var r=n[a],s=o.edge(r,i);o.setEdge(r,i,Math.max(c(t,e,a),s||0))}a=e}))})),o}(t,e,n,o),l=o?"borderLeft":"borderRight";function d(t,e){for(var n=c.nodes(),i=n.pop(),a={};i;)a[i]?t(i):(a[i]=!0,n.push(i),n=n.concat(e(i))),i=n.pop()}return d((function(t){s[t]=c.inEdges(t).reduce((function(t,e){return Math.max(t,s[e.v]+c.edge(e))}),0)}),c.predecessors.bind(c)),d((function(e){var n=c.outEdges(e).reduce((function(t,e){return Math.min(t,s[e.w]-c.edge(e))}),Number.POSITIVE_INFINITY),i=t.node(e);n!==Number.POSITIVE_INFINITY&&i.borderType!==l&&(s[e]=Math.max(s[e],n))}),c.successors.bind(c)),i.Z(a,(function(t){s[t]=s[n[t]]})),s}function We(t){var e,n=ut(t),a=V(He(t,n),function(t,e){var n={};function a(e,a,r,o,s){var c;i.Z(l.Z(a,r),(function(a){c=e[a],t.node(c).dummy&&i.Z(t.predecessors(c),(function(e){var i=t.node(e);i.dummy&&(i.order<o||i.order>s)&&Ue(n,e,c)}))}))}return ue.Z(e,(function(e,n){var r,o=-1,s=0;return i.Z(n,(function(i,c){if("border"===t.node(i).dummy){var l=t.predecessors(i);l.length&&(r=t.node(l[0]).order,a(n,s,c,o,r),s=c,o=r)}a(n,s,n.length,r,e.length)})),n})),n}(t,n)),r={};i.Z(["u","d"],(function(o){e="u"===o?n:le.Z(n).reverse(),i.Z(["l","r"],(function(n){"r"===n&&(e=c.Z(e,(function(t){return le.Z(t).reverse()})));var s=("u"===o?t.predecessors:t.successors).bind(t),l=function(t,e,n,a){var r={},o={},s={};return i.Z(e,(function(t){i.Z(t,(function(t,e){r[t]=t,o[t]=t,s[t]=e}))})),i.Z(e,(function(t){var e=-1;i.Z(t,(function(t){var i=a(t);if(i.length){i=Te(i,(function(t){return s[t]}));for(var c=(i.length-1)/2,l=Math.floor(c),u=Math.ceil(c);l<=u;++l){var d=i[l];o[t]===t&&e<s[d]&&!Ve(n,t,d)&&(o[d]=t,o[t]=r[t]=r[d],e=s[d])}}}))})),{root:r,align:o}}(0,e,a,s),u=qe(t,e,l.root,l.align,"r"===n);"r"===n&&(u=et(u,(function(t){return-t}))),r[o+n]=u}))}));var o=function(t,e){return Rt(le.Z(e),(function(e){var n=Number.NEGATIVE_INFINITY,i=Number.POSITIVE_INFINITY;return ze(e,(function(e,a){var r=function(t,e){return t.node(e).width}(t,a)/2;n=Math.max(e+r,n),i=Math.min(e-r,i)})),n-i}))}(t,r);return function(t,e){var n=le.Z(e),a=at(n),r=X(n);i.Z(["u","d"],(function(n){i.Z(["l","r"],(function(i){var o,s=n+i,c=t[s];if(c!==e){var l=le.Z(c);(o="l"===i?a-at(l):r-X(l))&&(t[s]=et(c,(function(t){return t+o})))}}))}))}(r,o),function(t,e){return et(t.ul,(function(n,i){if(e)return t[e.toLowerCase()][i];var a=Te(c.Z(t,i));return(a[1]+a[2])/2}))}(r,t.graph().align)}function Ye(t){(function(t){var e=ut(t),n=t.graph().ranksep,a=0;i.Z(e,(function(e){var r=X(c.Z(e,(function(e){return t.node(e).height})));i.Z(e,(function(e){t.node(e).y=a+r/2})),a+=r+n}))})(t=ct(t)),i.Z(We(t),(function(e,n){t.node(n).x=e}))}function Ge(t,e){var n=e&&e.debugTiming?ft:gt;n("layout",(function(){var e=n(" buildLayoutGraph",(function(){return function(t){var e=new u.k({multigraph:!0,compound:!0}),n=rn(t.graph());return e.setGraph(V({},Ke,an(n,Ze),q.Z(n,Xe))),i.Z(t.nodes(),(function(n){var i=rn(t.node(n));e.setNode(n,W.Z(an(i,Je),Qe)),e.setParent(n,t.parent(n))})),i.Z(t.edges(),(function(n){var i=rn(t.edge(n));e.setEdge(n,V({},en,an(i,tn),q.Z(i,nn)))})),e}(t)}));n(" runLayout",(function(){!function(t,e){e(" makeSpaceForEdgeLabels",(function(){!function(t){var e=t.graph();e.ranksep/=2,i.Z(t.edges(),(function(n){var i=t.edge(n);i.minlen*=2,"c"!==i.labelpos.toLowerCase()&&("TB"===e.rankdir||"BT"===e.rankdir?i.width+=i.labeloffset:i.height+=i.labeloffset)}))}(t)})),e(" removeSelfEdges",(function(){!function(t){i.Z(t.edges(),(function(e){if(e.v===e.w){var n=t.node(e.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:e,label:t.edge(e)}),t.removeEdge(e)}}))}(t)})),e(" acyclic",(function(){y(t)})),e(" nestingGraph.run",(function(){de(t)})),e(" rank",(function(){oe(ct(t))})),e(" injectEdgeLabelProxies",(function(){!function(t){i.Z(t.edges(),(function(e){var n=t.edge(e);if(n.width&&n.height){var i=t.node(e.v),a={rank:(t.node(e.w).rank-i.rank)/2+i.rank,e:e};st(t,"edge-proxy",a,"_ep")}}))}(t)})),e(" removeEmptyRanks",(function(){!function(t){var e=at(c.Z(t.nodes(),(function(e){return t.node(e).rank}))),n=[];i.Z(t.nodes(),(function(i){var a=t.node(i).rank-e;n[a]||(n[a]=[]),n[a].push(i)}));var a=0,r=t.graph().nodeRankFactor;i.Z(n,(function(e,n){nt.Z(e)&&n%r!=0?--a:a&&i.Z(e,(function(e){t.node(e).rank+=a}))}))}(t)})),e(" nestingGraph.cleanup",(function(){!function(t){var e=t.graph();t.removeNode(e.nestingRoot),delete e.nestingRoot,i.Z(t.edges(),(function(e){t.edge(e).nestingEdge&&t.removeEdge(e)}))}(t)})),e(" normalizeRanks",(function(){!function(t){var e=at(c.Z(t.nodes(),(function(e){return t.node(e).rank})));i.Z(t.nodes(),(function(n){var i=t.node(n);r.Z(i,"rank")&&(i.rank-=e)}))}(t)})),e(" assignRankMinMax",(function(){!function(t){var e=0;i.Z(t.nodes(),(function(n){var i=t.node(n);i.borderTop&&(i.minRank=t.node(i.borderTop).rank,i.maxRank=t.node(i.borderBottom).rank,e=X(e,i.maxRank))})),t.graph().maxRank=e}(t)})),e(" removeEdgeLabelProxies",(function(){!function(t){i.Z(t.nodes(),(function(e){var n=t.node(e);"edge-proxy"===n.dummy&&(t.edge(n.e).labelRank=n.rank,t.removeNode(e))}))}(t)})),e(" normalize.run",(function(){xt(t)})),e(" parentDummyChains",(function(){je(t)})),e(" addBorderSegments",(function(){!function(t){i.Z(t.children(),(function e(n){var a=t.children(n),o=t.node(n);if(a.length&&i.Z(a,e),r.Z(o,"minRank")){o.borderLeft=[],o.borderRight=[];for(var s=o.minRank,c=o.maxRank+1;s<c;++s)pt(t,"borderLeft","_bl",n,o,s),pt(t,"borderRight","_br",n,o,s)}}))}(t)})),e(" order",(function(){Ne(t)})),e(" insertSelfEdges",(function(){!function(t){var e=ut(t);i.Z(e,(function(e){var n=0;i.Z(e,(function(e,a){var r=t.node(e);r.order=a+n,i.Z(r.selfEdges,(function(e){st(t,"selfedge",{width:e.label.width,height:e.label.height,rank:r.rank,order:a+ ++n,e:e.e,label:e.label},"_se")})),delete r.selfEdges}))}))}(t)})),e(" adjustCoordinateSystem",(function(){!function(t){var e=t.graph().rankdir.toLowerCase();"lr"!==e&&"rl"!==e||mt(t)}(t)})),e(" position",(function(){Ye(t)})),e(" positionSelfEdges",(function(){!function(t){i.Z(t.nodes(),(function(e){var n=t.node(e);if("selfedge"===n.dummy){var i=t.node(n.e.v),a=i.x+i.width/2,r=i.y,o=n.x-a,s=i.height/2;t.setEdge(n.e,n.label),t.removeNode(e),n.label.points=[{x:a+2*o/3,y:r-s},{x:a+5*o/6,y:r-s},{x:a+o,y:r},{x:a+5*o/6,y:r+s},{x:a+2*o/3,y:r+s}],n.label.x=n.x,n.label.y=n.y}}))}(t)})),e(" removeBorderNodes",(function(){!function(t){i.Z(t.nodes(),(function(e){if(t.children(e).length){var n=t.node(e),i=t.node(n.borderTop),a=t.node(n.borderBottom),r=t.node(J(n.borderLeft)),o=t.node(J(n.borderRight));n.width=Math.abs(o.x-r.x),n.height=Math.abs(a.y-i.y),n.x=r.x+n.width/2,n.y=i.y+n.height/2}})),i.Z(t.nodes(),(function(e){"border"===t.node(e).dummy&&t.removeNode(e)}))}(t)})),e(" normalize.undo",(function(){!function(t){i.Z(t.graph().dummyChains,(function(e){var n,i=t.node(e),a=i.edgeLabel;for(t.setEdge(i.edgeObj,a);i.dummy;)n=t.successors(e)[0],t.removeNode(e),a.points.push({x:i.x,y:i.y}),"edge-label"===i.dummy&&(a.x=i.x,a.y=i.y,a.width=i.width,a.height=i.height),e=n,i=t.node(e)}))}(t)})),e(" fixupEdgeLabelCoords",(function(){!function(t){i.Z(t.edges(),(function(e){var n=t.edge(e);if(r.Z(n,"x"))switch("l"!==n.labelpos&&"r"!==n.labelpos||(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}}))}(t)})),e(" undoCoordinateSystem",(function(){bt(t)})),e(" translateGraph",(function(){!function(t){var e=Number.POSITIVE_INFINITY,n=0,a=Number.POSITIVE_INFINITY,o=0,s=t.graph(),c=s.marginx||0,l=s.marginy||0;function u(t){var i=t.x,r=t.y,s=t.width,c=t.height;e=Math.min(e,i-s/2),n=Math.max(n,i+s/2),a=Math.min(a,r-c/2),o=Math.max(o,r+c/2)}i.Z(t.nodes(),(function(e){u(t.node(e))})),i.Z(t.edges(),(function(e){var n=t.edge(e);r.Z(n,"x")&&u(n)})),e-=c,a-=l,i.Z(t.nodes(),(function(n){var i=t.node(n);i.x-=e,i.y-=a})),i.Z(t.edges(),(function(n){var o=t.edge(n);i.Z(o.points,(function(t){t.x-=e,t.y-=a})),r.Z(o,"x")&&(o.x-=e),r.Z(o,"y")&&(o.y-=a)})),s.width=n-e+c,s.height=o-a+l}(t)})),e(" assignNodeIntersects",(function(){!function(t){i.Z(t.edges(),(function(e){var n,i,a=t.edge(e),r=t.node(e.v),o=t.node(e.w);a.points?(n=a.points[0],i=a.points[a.points.length-1]):(a.points=[],n=o,i=r),a.points.unshift(lt(r,n)),a.points.push(lt(o,i))}))}(t)})),e(" reversePoints",(function(){!function(t){i.Z(t.edges(),(function(e){var n=t.edge(e);n.reversed&&n.points.reverse()}))}(t)})),e(" acyclic.undo",(function(){!function(t){i.Z(t.edges(),(function(e){var n=t.edge(e);if(n.reversed){t.removeEdge(e);var i=n.forwardName;delete n.reversed,delete n.forwardName,t.setEdge(e.w,e.v,n,i)}}))}(t)}))}(e,n)})),n(" updateInputGraph",(function(){!function(t,e){i.Z(t.nodes(),(function(n){var i=t.node(n),a=e.node(n);i&&(i.x=a.x,i.y=a.y,e.children(n).length&&(i.width=a.width,i.height=a.height))})),i.Z(t.edges(),(function(n){var i=t.edge(n),a=e.edge(n);i.points=a.points,r.Z(a,"x")&&(i.x=a.x,i.y=a.y)})),t.graph().width=e.graph().width,t.graph().height=e.graph().height}(t,e)}))}))}var Ze=["nodesep","edgesep","ranksep","marginx","marginy"],Ke={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},Xe=["acyclicer","ranker","rankdir","align"],Je=["width","height"],Qe={width:0,height:0},tn=["minlen","weight","width","height","labeloffset"],en={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},nn=["labelpos"];function an(t,e){return et(q.Z(t,e),Number)}function rn(t){var e={};return i.Z(t,(function(t,n){e[n.toLowerCase()]=t})),e}},52544:(t,e,n)=>{"use strict";n.d(e,{k:()=>L});var i=n(17452),a=n(62002),r=n(73234),o=n(17179),s=n(13445),c=n(79697),l=n(70870),u=n(49360),d=n(10626),h=n(69581),f=n(63001),g=n(21692);const p=function(t){return t!=t};const b=function(t,e,n){for(var i=n-1,a=t.length;++i<a;)if(t[i]===e)return i;return-1};const m=function(t,e,n){return e==e?b(t,e,n):(0,g.Z)(t,p,n)};const y=function(t,e){return!!(null==t?0:t.length)&&m(t,e,0)>-1};const v=function(t,e,n){for(var i=-1,a=null==t?0:t.length;++i<a;)if(n(e,t[i]))return!0;return!1};var w=n(59548),x=n(93203);const R=function(){};var _=n(6545),k=x.Z&&1/(0,_.Z)(new x.Z([,-0]))[1]==1/0?function(t){return new x.Z(t)}:R;const E=k;const C=function(t,e,n){var i=-1,a=y,r=t.length,o=!0,s=[],c=s;if(n)o=!1,a=v;else if(r>=200){var l=e?null:E(t);if(l)return(0,_.Z)(l);o=!1,a=w.Z,c=new f.Z}else c=e?[]:s;t:for(;++i<r;){var u=t[i],d=e?e(u):u;if(u=n||0!==u?u:0,o&&d==d){for(var h=c.length;h--;)if(c[h]===d)continue t;e&&c.push(d),s.push(u)}else a(c,d,n)||(c!==s&&c.push(d),s.push(u))}return s};var S=n(836);const T=(0,h.Z)((function(t){return C((0,d.Z)(t,1,S.Z,!0))}));var A=n(34148),D=n(92344),I="\0";class L{constructor(t={}){this._isDirected=!i.Z(t,"directed")||t.directed,this._isMultigraph=!!i.Z(t,"multigraph")&&t.multigraph,this._isCompound=!!i.Z(t,"compound")&&t.compound,this._label=void 0,this._defaultNodeLabelFn=a.Z(void 0),this._defaultEdgeLabelFn=a.Z(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children["\0"]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(t){return this._label=t,this}graph(){return this._label}setDefaultNodeLabel(t){return r.Z(t)||(t=a.Z(t)),this._defaultNodeLabelFn=t,this}nodeCount(){return this._nodeCount}nodes(){return o.Z(this._nodes)}sources(){var t=this;return s.Z(this.nodes(),(function(e){return c.Z(t._in[e])}))}sinks(){var t=this;return s.Z(this.nodes(),(function(e){return c.Z(t._out[e])}))}setNodes(t,e){var n=arguments,i=this;return l.Z(t,(function(t){n.length>1?i.setNode(t,e):i.setNode(t)})),this}setNode(t,e){return i.Z(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=e),this):(this._nodes[t]=arguments.length>1?e:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=I,this._children[t]={},this._children["\0"][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)}node(t){return this._nodes[t]}hasNode(t){return i.Z(this._nodes,t)}removeNode(t){var e=this;if(i.Z(this._nodes,t)){var n=function(t){e.removeEdge(e._edgeObjs[t])};delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],l.Z(this.children(t),(function(t){e.setParent(t)})),delete this._children[t]),l.Z(o.Z(this._in[t]),n),delete this._in[t],delete this._preds[t],l.Z(o.Z(this._out[t]),n),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this}setParent(t,e){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(u.Z(e))e=I;else{for(var n=e+="";!u.Z(n);n=this.parent(n))if(n===t)throw new Error("Setting "+e+" as parent of "+t+" would create a cycle");this.setNode(e)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=e,this._children[e][t]=!0,this}_removeFromParentsChildList(t){delete this._children[this._parent[t]][t]}parent(t){if(this._isCompound){var e=this._parent[t];if(e!==I)return e}}children(t){if(u.Z(t)&&(t=I),this._isCompound){var e=this._children[t];if(e)return o.Z(e)}else{if(t===I)return this.nodes();if(this.hasNode(t))return[]}}predecessors(t){var e=this._preds[t];if(e)return o.Z(e)}successors(t){var e=this._sucs[t];if(e)return o.Z(e)}neighbors(t){var e=this.predecessors(t);if(e)return T(e,this.successors(t))}isLeaf(t){return 0===(this.isDirected()?this.successors(t):this.neighbors(t)).length}filterNodes(t){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var n=this;l.Z(this._nodes,(function(n,i){t(i)&&e.setNode(i,n)})),l.Z(this._edgeObjs,(function(t){e.hasNode(t.v)&&e.hasNode(t.w)&&e.setEdge(t,n.edge(t))}));var i={};function a(t){var r=n.parent(t);return void 0===r||e.hasNode(r)?(i[t]=r,r):r in i?i[r]:a(r)}return this._isCompound&&l.Z(e.nodes(),(function(t){e.setParent(t,a(t))})),e}setDefaultEdgeLabel(t){return r.Z(t)||(t=a.Z(t)),this._defaultEdgeLabelFn=t,this}edgeCount(){return this._edgeCount}edges(){return A.Z(this._edgeObjs)}setPath(t,e){var n=this,i=arguments;return D.Z(t,(function(t,a){return i.length>1?n.setEdge(t,a,e):n.setEdge(t,a),a})),this}setEdge(){var t,e,n,a,r=!1,o=arguments[0];"object"==typeof o&&null!==o&&"v"in o?(t=o.v,e=o.w,n=o.name,2===arguments.length&&(a=arguments[1],r=!0)):(t=o,e=arguments[1],n=arguments[3],arguments.length>2&&(a=arguments[2],r=!0)),t=""+t,e=""+e,u.Z(n)||(n=""+n);var s=N(this._isDirected,t,e,n);if(i.Z(this._edgeLabels,s))return r&&(this._edgeLabels[s]=a),this;if(!u.Z(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(e),this._edgeLabels[s]=r?a:this._defaultEdgeLabelFn(t,e,n);var c=function(t,e,n,i){var a=""+e,r=""+n;if(!t&&a>r){var o=a;a=r,r=o}var s={v:a,w:r};i&&(s.name=i);return s}(this._isDirected,t,e,n);return t=c.v,e=c.w,Object.freeze(c),this._edgeObjs[s]=c,O(this._preds[e],t),O(this._sucs[t],e),this._in[e][s]=c,this._out[t][s]=c,this._edgeCount++,this}edge(t,e,n){var i=1===arguments.length?B(this._isDirected,arguments[0]):N(this._isDirected,t,e,n);return this._edgeLabels[i]}hasEdge(t,e,n){var a=1===arguments.length?B(this._isDirected,arguments[0]):N(this._isDirected,t,e,n);return i.Z(this._edgeLabels,a)}removeEdge(t,e,n){var i=1===arguments.length?B(this._isDirected,arguments[0]):N(this._isDirected,t,e,n),a=this._edgeObjs[i];return a&&(t=a.v,e=a.w,delete this._edgeLabels[i],delete this._edgeObjs[i],M(this._preds[e],t),M(this._sucs[t],e),delete this._in[e][i],delete this._out[t][i],this._edgeCount--),this}inEdges(t,e){var n=this._in[t];if(n){var i=A.Z(n);return e?s.Z(i,(function(t){return t.v===e})):i}}outEdges(t,e){var n=this._out[t];if(n){var i=A.Z(n);return e?s.Z(i,(function(t){return t.w===e})):i}}nodeEdges(t,e){var n=this.inEdges(t,e);if(n)return n.concat(this.outEdges(t,e))}}function O(t,e){t[e]?t[e]++:t[e]=1}function M(t,e){--t[e]||delete t[e]}function N(t,e,n,i){var a=""+e,r=""+n;if(!t&&a>r){var o=a;a=r,r=o}return a+"\x01"+r+"\x01"+(u.Z(i)?"\0":i)}function B(t,e){return N(t,e.v,e.w,e.name)}L.prototype._nodeCount=0,L.prototype._edgeCount=0},45625:(t,e,n)=>{"use strict";n.d(e,{k:()=>i.k});var i=n(52544)},39354:(t,e,n)=>{"use strict";n.d(e,{c:()=>s});var i=n(49360),a=n(48451);const r=function(t){return(0,a.Z)(t,4)};var o=n(43836);n(52544);function s(t){var e={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:c(t),edges:l(t)};return i.Z(t.graph())||(e.value=r(t.graph())),e}function c(t){return o.Z(t.nodes(),(function(e){var n=t.node(e),a=t.parent(e),r={v:e};return i.Z(n)||(r.value=n),i.Z(a)||(r.parent=a),r}))}function l(t){return o.Z(t.edges(),(function(e){var n=t.edge(e),a={v:e.v,w:e.w};return i.Z(e.name)||(a.name=e.name),i.Z(n)||(a.value=n),a}))}},91518:(t,e,n)=>{"use strict";n.d(e,{sY:()=>I});var i=n(59373),a=n(17452),r=n(3688),o=n(70870),s=n(70277),c=n(96225),l={normal:function(t,e,n,i){var a=t.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").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").style("stroke-width",1).style("stroke-dasharray","1,0");c.bg(a,n[i+"Style"]),n[i+"Class"]&&a.attr("class",n[i+"Class"])},vee:function(t,e,n,i){var a=t.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").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");c.bg(a,n[i+"Style"]),n[i+"Class"]&&a.attr("class",n[i+"Class"])},undirected:function(t,e,n,i){var a=t.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").append("path").attr("d","M 0 5 L 10 5").style("stroke-width",1).style("stroke-dasharray","1,0");c.bg(a,n[i+"Style"]),n[i+"Class"]&&a.attr("class",n[i+"Class"])}};function u(t){l=t}var d=n(43349);function h(t,e,n){var i=e.label,a=t.append("g");"svg"===e.labelType?function(t,e){var n=t;n.node().appendChild(e.label),c.bg(n,e.labelStyle)}(a,e):"string"!=typeof i||"html"===e.labelType?(0,d.a)(a,e):function(t,e){for(var n=t.append("text"),i=function(t){for(var e,n="",i=!1,a=0;a<t.length;++a)e=t[a],i?(n+="n"===e?"\n":e,i=!1):"\\"===e?i=!0:n+=e;return n}(e.label).split("\n"),a=0;a<i.length;a++)n.append("tspan").attr("xml:space","preserve").attr("dy","1em").attr("x","1").text(i[a]);c.bg(n,e.labelStyle)}(a,e);var r,o=a.node().getBBox();switch(n){case"top":r=-e.height/2;break;case"bottom":r=e.height/2-o.height;break;default:r=-o.height/2}return a.attr("transform","translate("+-o.width/2+","+r+")"),a}var f=function(t,e){var n=e.nodes().filter((function(t){return c.bF(e,t)})),a=t.selectAll("g.cluster").data(n,(function(t){return t}));c.WR(a.exit(),e).style("opacity",0).remove();var r=a.enter().append("g").attr("class","cluster").attr("id",(function(t){return e.node(t).id})).style("opacity",0).each((function(t){var n=e.node(t),a=i.Ys(this);i.Ys(this).append("rect"),h(a.append("g").attr("class","label"),n,n.clusterLabelPos)}));return a=a.merge(r),(a=c.WR(a,e).style("opacity",1)).selectAll("rect").each((function(t){var n=e.node(t),a=i.Ys(this);c.bg(a,n.style)})),a};function g(t){f=t}let p=function(t,e){var n,r=t.selectAll("g.edgeLabel").data(e.edges(),(function(t){return c.O1(t)})).classed("update",!0);return r.exit().remove(),r.enter().append("g").classed("edgeLabel",!0).style("opacity",0),(r=t.selectAll("g.edgeLabel")).each((function(t){var n=i.Ys(this);n.select(".label").remove();var r=e.edge(t),o=h(n,e.edge(t),0).classed("label",!0),s=o.node().getBBox();r.labelId&&o.attr("id",r.labelId),a.Z(r,"width")||(r.width=s.width),a.Z(r,"height")||(r.height=s.height)})),n=r.exit?r.exit():r.selectAll(null),c.WR(n,e).style("opacity",0).remove(),r};function b(t){p=t}var m=n(66749),y=n(74379);function v(t,e){return t.intersect(e)}var w=function(t,e,n){var a=t.selectAll("g.edgePath").data(e.edges(),(function(t){return c.O1(t)})).classed("update",!0),r=function(t,e){var n=t.enter().append("g").attr("class","edgePath").style("opacity",0);return n.append("path").attr("class","path").attr("d",(function(t){var n=e.edge(t),i=e.node(t.v).elem;return R(n,y.Z(n.points.length).map((function(){return e=(t=i).getBBox(),{x:(n=t.ownerSVGElement.getScreenCTM().inverse().multiply(t.getScreenCTM()).translate(e.width/2,e.height/2)).e,y:n.f};var t,e,n})))})),n.append("defs"),n}(a,e);!function(t,e){var n=t.exit();c.WR(n,e).style("opacity",0).remove()}(a,e);var o=void 0!==a.merge?a.merge(r):a;return c.WR(o,e).style("opacity",1),o.each((function(t){var n=i.Ys(this),a=e.edge(t);a.elem=this,a.id&&n.attr("id",a.id),c.$p(n,a.class,(n.classed("update")?"update ":"")+"edgePath")})),o.selectAll("path.path").each((function(t){var n=e.edge(t);n.arrowheadId=m.Z("arrowhead");var a=i.Ys(this).attr("marker-end",(function(){return"url("+(t=location.href,e=n.arrowheadId,t.split("#")[0]+"#"+e+")");var t,e})).style("fill","none");c.WR(a,e).attr("d",(function(t){return function(t,e){var n=t.edge(e),i=t.node(e.v),a=t.node(e.w),r=n.points.slice(1,n.points.length-1);return r.unshift(v(i,r[0])),r.push(v(a,r[r.length-1])),R(n,r)}(e,t)})),c.bg(a,n.style)})),o.selectAll("defs *").remove(),o.selectAll("defs").each((function(t){var a=e.edge(t);(0,n[a.arrowhead])(i.Ys(this),a.arrowheadId,a,"arrowhead")})),o};function x(t){w=t}function R(t,e){var n=(i.jvg||i.YPS.line)().x((function(t){return t.x})).y((function(t){return t.y}));return(n.curve||n.interpolate)(t.curve),n(e)}var _=n(61666),k=function(t,e,n){var r,o=e.nodes().filter((function(t){return!c.bF(e,t)})),s=t.selectAll("g.node").data(o,(function(t){return t})).classed("update",!0);return s.exit().remove(),s.enter().append("g").attr("class","node").style("opacity",0),(s=t.selectAll("g.node")).each((function(t){var r=e.node(t),o=i.Ys(this);c.$p(o,r.class,(o.classed("update")?"update ":"")+"node"),o.select("g.label").remove();var s=o.append("g").attr("class","label"),l=h(s,r),u=n[r.shape],d=_.Z(l.node().getBBox(),"width","height");r.elem=this,r.id&&o.attr("id",r.id),r.labelId&&s.attr("id",r.labelId),a.Z(r,"width")&&(d.width=r.width),a.Z(r,"height")&&(d.height=r.height),d.width+=r.paddingLeft+r.paddingRight,d.height+=r.paddingTop+r.paddingBottom,s.attr("transform","translate("+(r.paddingLeft-r.paddingRight)/2+","+(r.paddingTop-r.paddingBottom)/2+")");var f=i.Ys(this);f.select(".label-container").remove();var g=u(f,d,r).classed("label-container",!0);c.bg(g,r.style);var p=g.node().getBBox();r.width=p.width,r.height=p.height})),r=s.exit?s.exit():s.selectAll(null),c.WR(r,e).style("opacity",0).remove(),s};function E(t){k=t}function C(t,e,n,i){var a=t.x,r=t.y,o=a-i.x,s=r-i.y,c=Math.sqrt(e*e*s*s+n*n*o*o),l=Math.abs(e*n*o/c);i.x<a&&(l=-l);var u=Math.abs(e*n*s/c);return i.y<r&&(u=-u),{x:a+l,y:r+u}}var S=n(23352),T=n(22930),A={rect:function(t,e,n){var i=t.insert("rect",":first-child").attr("rx",n.rx).attr("ry",n.ry).attr("x",-e.width/2).attr("y",-e.height/2).attr("width",e.width).attr("height",e.height);return n.intersect=function(t){return(0,T.q)(n,t)},i},ellipse:function(t,e,n){var i=e.width/2,a=e.height/2,r=t.insert("ellipse",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("rx",i).attr("ry",a);return n.intersect=function(t){return C(n,i,a,t)},r},circle:function(t,e,n){var i=Math.max(e.width,e.height)/2,a=t.insert("circle",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("r",i);return n.intersect=function(t){return function(t,e,n){return C(t,e,e,n)}(n,i,t)},a},diamond:function(t,e,n){var i=e.width*Math.SQRT2/2,a=e.height*Math.SQRT2/2,r=[{x:0,y:-a},{x:-i,y:0},{x:0,y:a},{x:i,y:0}],o=t.insert("polygon",":first-child").attr("points",r.map((function(t){return t.x+","+t.y})).join(" "));return n.intersect=function(t){return(0,S.A)(n,r,t)},o}};function D(t){A=t}function I(){var t=function(t,e){!function(t){t.nodes().forEach((function(e){var n=t.node(e);a.Z(n,"label")||t.children(e).length||(n.label=e),a.Z(n,"paddingX")&&r.Z(n,{paddingLeft:n.paddingX,paddingRight:n.paddingX}),a.Z(n,"paddingY")&&r.Z(n,{paddingTop:n.paddingY,paddingBottom:n.paddingY}),a.Z(n,"padding")&&r.Z(n,{paddingLeft:n.padding,paddingRight:n.padding,paddingTop:n.padding,paddingBottom:n.padding}),r.Z(n,L),o.Z(["paddingLeft","paddingRight","paddingTop","paddingBottom"],(function(t){n[t]=Number(n[t])})),a.Z(n,"width")&&(n._prevWidth=n.width),a.Z(n,"height")&&(n._prevHeight=n.height)})),t.edges().forEach((function(e){var n=t.edge(e);a.Z(n,"label")||(n.label=""),r.Z(n,O)}))}(e);var n=M(t,"output"),u=M(n,"clusters"),d=M(n,"edgePaths"),h=p(M(n,"edgeLabels"),e),g=k(M(n,"nodes"),e,A);(0,s.bK)(e),function(t,e){function n(t){var n=e.node(t);return"translate("+n.x+","+n.y+")"}t.filter((function(){return!i.Ys(this).classed("update")})).attr("transform",n),c.WR(t,e).style("opacity",1).attr("transform",n)}(g,e),function(t,e){function n(t){var n=e.edge(t);return a.Z(n,"x")?"translate("+n.x+","+n.y+")":""}t.filter((function(){return!i.Ys(this).classed("update")})).attr("transform",n),c.WR(t,e).style("opacity",1).attr("transform",n)}(h,e),w(d,e,l),function(t,e){var n=t.filter((function(){return!i.Ys(this).classed("update")}));function a(t){var n=e.node(t);return"translate("+n.x+","+n.y+")"}n.attr("transform",a),c.WR(t,e).style("opacity",1).attr("transform",a),c.WR(n.selectAll("rect"),e).attr("width",(function(t){return e.node(t).width})).attr("height",(function(t){return e.node(t).height})).attr("x",(function(t){return-e.node(t).width/2})).attr("y",(function(t){return-e.node(t).height/2}))}(f(u,e),e),function(t){o.Z(t.nodes(),(function(e){var n=t.node(e);a.Z(n,"_prevWidth")?n.width=n._prevWidth:delete n.width,a.Z(n,"_prevHeight")?n.height=n._prevHeight:delete n.height,delete n._prevWidth,delete n._prevHeight}))}(e)};return t.createNodes=function(e){return arguments.length?(E(e),t):k},t.createClusters=function(e){return arguments.length?(g(e),t):f},t.createEdgeLabels=function(e){return arguments.length?(b(e),t):p},t.createEdgePaths=function(e){return arguments.length?(x(e),t):w},t.shapes=function(e){return arguments.length?(D(e),t):A},t.arrows=function(e){return arguments.length?(u(e),t):l},t}var L={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},O={arrowhead:"normal",curve:i.c_6};function M(t,e){var n=t.select("g."+e);return n.empty()&&(n=t.append("g").attr("class",e)),n}n(45625)},44301:(t,e,n)=>{"use strict";n.d(e,{T:()=>a});const i=document.createElement("i");function a(t){const e="&"+t+";";i.innerHTML=e;const n=i.textContent;return(59!==n.charCodeAt(n.length-1)||"semi"===t)&&(n!==e&&n)}},21883:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=n(61691),a=n(82142);const r=class{constructor(){this.type=a.w.ALL}get(){return this.type}set(t){if(this.type&&this.type!==t)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=t}reset(){this.type=a.w.ALL}is(t){return this.type===t}};const o=new class{constructor(t,e){this.color=e,this.changed=!1,this.data=t,this.type=new r}set(t,e){return this.color=e,this.changed=!1,this.data=t,this.type.type=a.w.ALL,this}_ensureHSL(){const t=this.data,{h:e,s:n,l:a}=t;void 0===e&&(t.h=i.Z.channel.rgb2hsl(t,"h")),void 0===n&&(t.s=i.Z.channel.rgb2hsl(t,"s")),void 0===a&&(t.l=i.Z.channel.rgb2hsl(t,"l"))}_ensureRGB(){const t=this.data,{r:e,g:n,b:a}=t;void 0===e&&(t.r=i.Z.channel.hsl2rgb(t,"r")),void 0===n&&(t.g=i.Z.channel.hsl2rgb(t,"g")),void 0===a&&(t.b=i.Z.channel.hsl2rgb(t,"b"))}get r(){const t=this.data,e=t.r;return this.type.is(a.w.HSL)||void 0===e?(this._ensureHSL(),i.Z.channel.hsl2rgb(t,"r")):e}get g(){const t=this.data,e=t.g;return this.type.is(a.w.HSL)||void 0===e?(this._ensureHSL(),i.Z.channel.hsl2rgb(t,"g")):e}get b(){const t=this.data,e=t.b;return this.type.is(a.w.HSL)||void 0===e?(this._ensureHSL(),i.Z.channel.hsl2rgb(t,"b")):e}get h(){const t=this.data,e=t.h;return this.type.is(a.w.RGB)||void 0===e?(this._ensureRGB(),i.Z.channel.rgb2hsl(t,"h")):e}get s(){const t=this.data,e=t.s;return this.type.is(a.w.RGB)||void 0===e?(this._ensureRGB(),i.Z.channel.rgb2hsl(t,"s")):e}get l(){const t=this.data,e=t.l;return this.type.is(a.w.RGB)||void 0===e?(this._ensureRGB(),i.Z.channel.rgb2hsl(t,"l")):e}get a(){return this.data.a}set r(t){this.type.set(a.w.RGB),this.changed=!0,this.data.r=t}set g(t){this.type.set(a.w.RGB),this.changed=!0,this.data.g=t}set b(t){this.type.set(a.w.RGB),this.changed=!0,this.data.b=t}set h(t){this.type.set(a.w.HSL),this.changed=!0,this.data.h=t}set s(t){this.type.set(a.w.HSL),this.changed=!0,this.data.s=t}set l(t){this.type.set(a.w.HSL),this.changed=!0,this.data.l=t}set a(t){this.changed=!0,this.data.a=t}}({r:0,g:0,b:0,a:0},"transparent")},71610:(t,e,n)=>{"use strict";n.d(e,{Z:()=>p});var i=n(21883),a=n(82142);const r={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(35!==t.charCodeAt(0))return;const e=t.match(r.re);if(!e)return;const n=e[1],a=parseInt(n,16),o=n.length,s=o%4==0,c=o>4,l=c?1:17,u=c?8:4,d=s?0:-1,h=c?255:15;return i.Z.set({r:(a>>u*(d+3)&h)*l,g:(a>>u*(d+2)&h)*l,b:(a>>u*(d+1)&h)*l,a:s?(a&h)*l/255:1},t)},stringify:t=>{const{r:e,g:n,b:i,a:r}=t;return r<1?`#${a.Q[Math.round(e)]}${a.Q[Math.round(n)]}${a.Q[Math.round(i)]}${a.Q[Math.round(255*r)]}`:`#${a.Q[Math.round(e)]}${a.Q[Math.round(n)]}${a.Q[Math.round(i)]}`}},o=r;var s=n(61691);const c={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(c.hueRe);if(e){const[,t,n]=e;switch(n){case"grad":return s.Z.channel.clamp.h(.9*parseFloat(t));case"rad":return s.Z.channel.clamp.h(180*parseFloat(t)/Math.PI);case"turn":return s.Z.channel.clamp.h(360*parseFloat(t))}}return s.Z.channel.clamp.h(parseFloat(t))},parse:t=>{const e=t.charCodeAt(0);if(104!==e&&72!==e)return;const n=t.match(c.re);if(!n)return;const[,a,r,o,l,u]=n;return i.Z.set({h:c._hue2deg(a),s:s.Z.channel.clamp.s(parseFloat(r)),l:s.Z.channel.clamp.l(parseFloat(o)),a:l?s.Z.channel.clamp.a(u?parseFloat(l)/100:parseFloat(l)):1},t)},stringify:t=>{const{h:e,s:n,l:i,a:a}=t;return a<1?`hsla(${s.Z.lang.round(e)}, ${s.Z.lang.round(n)}%, ${s.Z.lang.round(i)}%, ${a})`:`hsl(${s.Z.lang.round(e)}, ${s.Z.lang.round(n)}%, ${s.Z.lang.round(i)}%)`}},l=c,u={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=u.colors[t];if(e)return o.parse(e)},stringify:t=>{const e=o.stringify(t);for(const n in u.colors)if(u.colors[n]===e)return n}},d=u,h={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(114!==e&&82!==e)return;const n=t.match(h.re);if(!n)return;const[,a,r,o,c,l,u,d,f]=n;return i.Z.set({r:s.Z.channel.clamp.r(r?2.55*parseFloat(a):parseFloat(a)),g:s.Z.channel.clamp.g(c?2.55*parseFloat(o):parseFloat(o)),b:s.Z.channel.clamp.b(u?2.55*parseFloat(l):parseFloat(l)),a:d?s.Z.channel.clamp.a(f?parseFloat(d)/100:parseFloat(d)):1},t)},stringify:t=>{const{r:e,g:n,b:i,a:a}=t;return a<1?`rgba(${s.Z.lang.round(e)}, ${s.Z.lang.round(n)}, ${s.Z.lang.round(i)}, ${s.Z.lang.round(a)})`:`rgb(${s.Z.lang.round(e)}, ${s.Z.lang.round(n)}, ${s.Z.lang.round(i)})`}},f=h,g={format:{keyword:u,hex:o,rgb:h,rgba:h,hsl:c,hsla:c},parse:t=>{if("string"!=typeof t)return t;const e=o.parse(t)||f.parse(t)||l.parse(t)||d.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(a.w.HSL)||void 0===t.data.r?l.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?f.stringify(t):o.stringify(t)},p=g},82142:(t,e,n)=>{"use strict";n.d(e,{Q:()=>a,w:()=>r});var i=n(61691);const a={};for(let o=0;o<=255;o++)a[o]=i.Z.unit.dec2hex(o);const r={ALL:0,RGB:1,HSL:2}},26174:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(61691),a=n(71610);const r=(t,e,n)=>{const r=a.Z.parse(t),o=r[e],s=i.Z.channel.clamp[e](o+n);return o!==s&&(r[e]=s),a.Z.stringify(r)}},7201:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(26174);const a=(t,e)=>(0,i.Z)(t,"l",-e)},12281:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(26174);const a=(t,e)=>(0,i.Z)(t,"l",e)},61691:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});const i={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,n)=>(n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t),hsl2rgb:({h:t,s:e,l:n},a)=>{if(!e)return 2.55*n;t/=360,e/=100;const r=(n/=100)<.5?n*(1+e):n+e-n*e,o=2*n-r;switch(a){case"r":return 255*i.hue2rgb(o,r,t+1/3);case"g":return 255*i.hue2rgb(o,r,t);case"b":return 255*i.hue2rgb(o,r,t-1/3)}},rgb2hsl:({r:t,g:e,b:n},i)=>{t/=255,e/=255,n/=255;const a=Math.max(t,e,n),r=Math.min(t,e,n),o=(a+r)/2;if("l"===i)return 100*o;if(a===r)return 0;const s=a-r;if("s"===i)return 100*(o>.5?s/(2-a-r):s/(a+r));switch(a){case t:return 60*((e-n)/s+(e<n?6:0));case e:return 60*((n-t)/s+2);case n:return 60*((t-e)/s+4);default:return-1}}},a={channel:i,lang:{clamp:(t,e,n)=>e>n?Math.min(e,Math.max(n,t)):Math.min(n,Math.max(e,t)),round:t=>Math.round(1e10*t)/1e10},unit:{dec2hex:t=>{const e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}}}},67308:(t,e,n)=>{"use strict";n.d(e,{Z:()=>h});const i=function(){this.__data__=[],this.size=0};var a=n(79651);const r=function(t,e){for(var n=t.length;n--;)if((0,a.Z)(t[n][0],e))return n;return-1};var o=Array.prototype.splice;const s=function(t){var e=this.__data__,n=r(e,t);return!(n<0)&&(n==e.length-1?e.pop():o.call(e,n,1),--this.size,!0)};const c=function(t){var e=this.__data__,n=r(e,t);return n<0?void 0:e[n][1]};const l=function(t){return r(this.__data__,t)>-1};const u=function(t,e){var n=this.__data__,i=r(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this};function d(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}d.prototype.clear=i,d.prototype.delete=s,d.prototype.get=c,d.prototype.has=l,d.prototype.set=u;const h=d},86183:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(62508),a=n(66092);const r=(0,i.Z)(a.Z,"Map")},37834:(t,e,n)=>{"use strict";n.d(e,{Z:()=>_});const i=(0,n(62508).Z)(Object,"create");const a=function(){this.__data__=i?i(null):{},this.size=0};const r=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e};var o=Object.prototype.hasOwnProperty;const s=function(t){var e=this.__data__;if(i){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return o.call(e,t)?e[t]:void 0};var c=Object.prototype.hasOwnProperty;const l=function(t){var e=this.__data__;return i?void 0!==e[t]:c.call(e,t)};const u=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=i&&void 0===e?"__lodash_hash_undefined__":e,this};function d(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}d.prototype.clear=a,d.prototype.delete=r,d.prototype.get=s,d.prototype.has=l,d.prototype.set=u;const h=d;var f=n(67308),g=n(86183);const p=function(){this.size=0,this.__data__={hash:new h,map:new(g.Z||f.Z),string:new h}};const b=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t};const m=function(t,e){var n=t.__data__;return b(e)?n["string"==typeof e?"string":"hash"]:n.map};const y=function(t){var e=m(this,t).delete(t);return this.size-=e?1:0,e};const v=function(t){return m(this,t).get(t)};const w=function(t){return m(this,t).has(t)};const x=function(t,e){var n=m(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this};function R(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}R.prototype.clear=p,R.prototype.delete=y,R.prototype.get=v,R.prototype.has=w,R.prototype.set=x;const _=R},93203:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(62508),a=n(66092);const r=(0,i.Z)(a.Z,"Set")},63001:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(37834);const a=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this};const r=function(t){return this.__data__.has(t)};function o(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new i.Z;++e<n;)this.add(t[e])}o.prototype.add=o.prototype.push=a,o.prototype.has=r;const s=o},31667:(t,e,n)=>{"use strict";n.d(e,{Z:()=>h});var i=n(67308);const a=function(){this.__data__=new i.Z,this.size=0};const r=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n};const o=function(t){return this.__data__.get(t)};const s=function(t){return this.__data__.has(t)};var c=n(86183),l=n(37834);const u=function(t,e){var n=this.__data__;if(n instanceof i.Z){var a=n.__data__;if(!c.Z||a.length<199)return a.push([t,e]),this.size=++n.size,this;n=this.__data__=new l.Z(a)}return n.set(t,e),this.size=n.size,this};function d(t){var e=this.__data__=new i.Z(t);this.size=e.size}d.prototype.clear=a,d.prototype.delete=r,d.prototype.get=o,d.prototype.has=s,d.prototype.set=u;const h=d},17685:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=n(66092).Z.Symbol},84073:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=n(66092).Z.Uint8Array},76579:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e){for(var n=-1,i=null==t?0:t.length;++n<i&&!1!==e(t[n],n,t););return t}},68774:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e){for(var n=-1,i=null==t?0:t.length,a=0,r=[];++n<i;){var o=t[n];e(o,n,t)&&(r[a++]=o)}return r}},87668:(t,e,n)=>{"use strict";n.d(e,{Z:()=>u});const i=function(t,e){for(var n=-1,i=Array(t);++n<t;)i[n]=e(n);return i};var a=n(29169),r=n(27771),o=n(77008),s=n(56009),c=n(18843),l=Object.prototype.hasOwnProperty;const u=function(t,e){var n=(0,r.Z)(t),u=!n&&(0,a.Z)(t),d=!n&&!u&&(0,o.Z)(t),h=!n&&!u&&!d&&(0,c.Z)(t),f=n||u||d||h,g=f?i(t.length,String):[],p=g.length;for(var b in t)!e&&!l.call(t,b)||f&&("length"==b||d&&("offset"==b||"parent"==b)||h&&("buffer"==b||"byteLength"==b||"byteOffset"==b)||(0,s.Z)(b,p))||g.push(b);return g}},74073:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e){for(var n=-1,i=null==t?0:t.length,a=Array(i);++n<i;)a[n]=e(t[n],n,t);return a}},58694:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e){for(var n=-1,i=e.length,a=t.length;++n<i;)t[a+n]=e[n];return t}},72954:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=n(74752),a=n(79651),r=Object.prototype.hasOwnProperty;const o=function(t,e,n){var o=t[e];r.call(t,e)&&(0,a.Z)(o,n)&&(void 0!==n||e in t)||(0,i.Z)(t,e,n)}},74752:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(77904);const a=function(t,e,n){"__proto__"==e&&i.Z?(0,i.Z)(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}},48451:(t,e,n)=>{"use strict";n.d(e,{Z:()=>Q});var i=n(31667),a=n(76579),r=n(72954),o=n(31899),s=n(17179);const c=function(t,e){return t&&(0,o.Z)(e,(0,s.Z)(e),t)};var l=n(32957);const u=function(t,e){return t&&(0,o.Z)(e,(0,l.Z)(e),t)};var d=n(91050),h=n(87215),f=n(95695);const g=function(t,e){return(0,o.Z)(t,(0,f.Z)(t),e)};var p=n(58694),b=n(12513),m=n(60532);const y=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)(0,p.Z)(e,(0,f.Z)(t)),t=(0,b.Z)(t);return e}:m.Z;const v=function(t,e){return(0,o.Z)(t,y(t),e)};var w=n(1808),x=n(63327);const R=function(t){return(0,x.Z)(t,l.Z,y)};var _=n(83970),k=Object.prototype.hasOwnProperty;const E=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&k.call(t,"index")&&(n.index=t.index,n.input=t.input),n};var C=n(41884);const S=function(t,e){var n=e?(0,C.Z)(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)};var T=/\w*$/;const A=function(t){var e=new t.constructor(t.source,T.exec(t));return e.lastIndex=t.lastIndex,e};var D=n(17685),I=D.Z?D.Z.prototype:void 0,L=I?I.valueOf:void 0;const O=function(t){return L?Object(L.call(t)):{}};var M=n(12701);const N=function(t,e,n){var i=t.constructor;switch(e){case"[object ArrayBuffer]":return(0,C.Z)(t);case"[object Boolean]":case"[object Date]":return new i(+t);case"[object DataView]":return S(t,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return(0,M.Z)(t,n);case"[object Map]":case"[object Set]":return new i;case"[object Number]":case"[object String]":return new i(t);case"[object RegExp]":return A(t);case"[object Symbol]":return O(t)}};var B=n(73658),P=n(27771),F=n(77008),j=n(18533);const $=function(t){return(0,j.Z)(t)&&"[object Map]"==(0,_.Z)(t)};var z=n(21162),H=n(98351),U=H.Z&&H.Z.isMap;const V=U?(0,z.Z)(U):$;var q=n(77226);const W=function(t){return(0,j.Z)(t)&&"[object Set]"==(0,_.Z)(t)};var Y=H.Z&&H.Z.isSet;const G=Y?(0,z.Z)(Y):W;var Z="[object Arguments]",K="[object Function]",X="[object Object]",J={};J[Z]=J["[object Array]"]=J["[object ArrayBuffer]"]=J["[object DataView]"]=J["[object Boolean]"]=J["[object Date]"]=J["[object Float32Array]"]=J["[object Float64Array]"]=J["[object Int8Array]"]=J["[object Int16Array]"]=J["[object Int32Array]"]=J["[object Map]"]=J["[object Number]"]=J[X]=J["[object RegExp]"]=J["[object Set]"]=J["[object String]"]=J["[object Symbol]"]=J["[object Uint8Array]"]=J["[object Uint8ClampedArray]"]=J["[object Uint16Array]"]=J["[object Uint32Array]"]=!0,J["[object Error]"]=J[K]=J["[object WeakMap]"]=!1;const Q=function t(e,n,o,f,p,b){var m,y=1&n,x=2&n,k=4&n;if(o&&(m=p?o(e,f,p,b):o(e)),void 0!==m)return m;if(!(0,q.Z)(e))return e;var C=(0,P.Z)(e);if(C){if(m=E(e),!y)return(0,h.Z)(e,m)}else{var S=(0,_.Z)(e),T=S==K||"[object GeneratorFunction]"==S;if((0,F.Z)(e))return(0,d.Z)(e,y);if(S==X||S==Z||T&&!p){if(m=x||T?{}:(0,B.Z)(e),!y)return x?v(e,u(m,e)):g(e,c(m,e))}else{if(!J[S])return p?e:{};m=N(e,S,y)}}b||(b=new i.Z);var A=b.get(e);if(A)return A;b.set(e,m),G(e)?e.forEach((function(i){m.add(t(i,n,o,i,e,b))})):V(e)&&e.forEach((function(i,a){m.set(a,t(i,n,o,a,e,b))}));var D=k?x?R:w.Z:x?l.Z:s.Z,I=C?void 0:D(e);return(0,a.Z)(I||e,(function(i,a){I&&(i=e[a=i]),(0,r.Z)(m,a,t(i,n,o,a,e,b))})),m}},49811:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(2693),a=n(50585);const r=function(t,e){return function(n,i){if(null==n)return n;if(!(0,a.Z)(n))return t(n,i);for(var r=n.length,o=e?r:-1,s=Object(n);(e?o--:++o<r)&&!1!==i(s[o],o,s););return n}}(i.Z)},21692:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e,n,i){for(var a=t.length,r=n+(i?1:-1);i?r--:++r<a;)if(e(t[r],r,t))return r;return-1}},10626:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var i=n(58694),a=n(17685),r=n(29169),o=n(27771),s=a.Z?a.Z.isConcatSpreadable:void 0;const c=function(t){return(0,o.Z)(t)||(0,r.Z)(t)||!!(s&&t&&t[s])};const l=function t(e,n,a,r,o){var s=-1,l=e.length;for(a||(a=c),o||(o=[]);++s<l;){var u=e[s];n>0&&a(u)?n>1?t(u,n-1,a,r,o):(0,i.Z)(o,u):r||(o[o.length]=u)}return o}},61395:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){return function(e,n,i){for(var a=-1,r=Object(e),o=i(e),s=o.length;s--;){var c=o[t?s:++a];if(!1===n(r[c],c,r))break}return e}}()},2693:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(61395),a=n(17179);const r=function(t,e){return t&&(0,i.Z)(t,e,a.Z)}},13317:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(22823),a=n(62281);const r=function(t,e){for(var n=0,r=(e=(0,i.Z)(e,t)).length;null!=t&&n<r;)t=t[(0,a.Z)(e[n++])];return n&&n==r?t:void 0}},63327:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(58694),a=n(27771);const r=function(t,e,n){var r=e(t);return(0,a.Z)(t)?r:(0,i.Z)(r,n(t))}},93589:(t,e,n)=>{"use strict";n.d(e,{Z:()=>h});var i=n(17685),a=Object.prototype,r=a.hasOwnProperty,o=a.toString,s=i.Z?i.Z.toStringTag:void 0;const c=function(t){var e=r.call(t,s),n=t[s];try{t[s]=void 0;var i=!0}catch(c){}var a=o.call(t);return i&&(e?t[s]=n:delete t[s]),a};var l=Object.prototype.toString;const u=function(t){return l.call(t)};var d=i.Z?i.Z.toStringTag:void 0;const h=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":d&&d in Object(t)?c(t):u(t)}},74765:(t,e,n)=>{"use strict";n.d(e,{Z:()=>Y});var i=n(31667),a=n(63001);const r=function(t,e){for(var n=-1,i=null==t?0:t.length;++n<i;)if(e(t[n],n,t))return!0;return!1};var o=n(59548);const s=function(t,e,n,i,s,c){var l=1&n,u=t.length,d=e.length;if(u!=d&&!(l&&d>u))return!1;var h=c.get(t),f=c.get(e);if(h&&f)return h==e&&f==t;var g=-1,p=!0,b=2&n?new a.Z:void 0;for(c.set(t,e),c.set(e,t);++g<u;){var m=t[g],y=e[g];if(i)var v=l?i(y,m,g,e,t,c):i(m,y,g,t,e,c);if(void 0!==v){if(v)continue;p=!1;break}if(b){if(!r(e,(function(t,e){if(!(0,o.Z)(b,e)&&(m===t||s(m,t,n,i,c)))return b.push(e)}))){p=!1;break}}else if(m!==y&&!s(m,y,n,i,c)){p=!1;break}}return c.delete(t),c.delete(e),p};var c=n(17685),l=n(84073),u=n(79651);const d=function(t){var e=-1,n=Array(t.size);return t.forEach((function(t,i){n[++e]=[i,t]})),n};var h=n(6545),f=c.Z?c.Z.prototype:void 0,g=f?f.valueOf:void 0;const p=function(t,e,n,i,a,r,o){switch(n){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!r(new l.Z(t),new l.Z(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return(0,u.Z)(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var c=d;case"[object Set]":var f=1&i;if(c||(c=h.Z),t.size!=e.size&&!f)return!1;var p=o.get(t);if(p)return p==e;i|=2,o.set(t,e);var b=s(c(t),c(e),i,a,r,o);return o.delete(t),b;case"[object Symbol]":if(g)return g.call(t)==g.call(e)}return!1};var b=n(1808),m=Object.prototype.hasOwnProperty;const y=function(t,e,n,i,a,r){var o=1&n,s=(0,b.Z)(t),c=s.length;if(c!=(0,b.Z)(e).length&&!o)return!1;for(var l=c;l--;){var u=s[l];if(!(o?u in e:m.call(e,u)))return!1}var d=r.get(t),h=r.get(e);if(d&&h)return d==e&&h==t;var f=!0;r.set(t,e),r.set(e,t);for(var g=o;++l<c;){var p=t[u=s[l]],y=e[u];if(i)var v=o?i(y,p,u,e,t,r):i(p,y,u,t,e,r);if(!(void 0===v?p===y||a(p,y,n,i,r):v)){f=!1;break}g||(g="constructor"==u)}if(f&&!g){var w=t.constructor,x=e.constructor;w==x||!("constructor"in t)||!("constructor"in e)||"function"==typeof w&&w instanceof w&&"function"==typeof x&&x instanceof x||(f=!1)}return r.delete(t),r.delete(e),f};var v=n(83970),w=n(27771),x=n(77008),R=n(18843),_="[object Arguments]",k="[object Array]",E="[object Object]",C=Object.prototype.hasOwnProperty;const S=function(t,e,n,a,r,o){var c=(0,w.Z)(t),l=(0,w.Z)(e),u=c?k:(0,v.Z)(t),d=l?k:(0,v.Z)(e),h=(u=u==_?E:u)==E,f=(d=d==_?E:d)==E,g=u==d;if(g&&(0,x.Z)(t)){if(!(0,x.Z)(e))return!1;c=!0,h=!1}if(g&&!h)return o||(o=new i.Z),c||(0,R.Z)(t)?s(t,e,n,a,r,o):p(t,e,u,n,a,r,o);if(!(1&n)){var b=h&&C.call(t,"__wrapped__"),m=f&&C.call(e,"__wrapped__");if(b||m){var S=b?t.value():t,T=m?e.value():e;return o||(o=new i.Z),r(S,T,n,a,o)}}return!!g&&(o||(o=new i.Z),y(t,e,n,a,r,o))};var T=n(18533);const A=function t(e,n,i,a,r){return e===n||(null==e||null==n||!(0,T.Z)(e)&&!(0,T.Z)(n)?e!=e&&n!=n:S(e,n,i,a,t,r))};const D=function(t,e,n,a){var r=n.length,o=r,s=!a;if(null==t)return!o;for(t=Object(t);r--;){var c=n[r];if(s&&c[2]?c[1]!==t[c[0]]:!(c[0]in t))return!1}for(;++r<o;){var l=(c=n[r])[0],u=t[l],d=c[1];if(s&&c[2]){if(void 0===u&&!(l in t))return!1}else{var h=new i.Z;if(a)var f=a(u,d,l,t,e,h);if(!(void 0===f?A(d,u,3,a,h):f))return!1}}return!0};var I=n(77226);const L=function(t){return t==t&&!(0,I.Z)(t)};var O=n(17179);const M=function(t){for(var e=(0,O.Z)(t),n=e.length;n--;){var i=e[n],a=t[i];e[n]=[i,a,L(a)]}return e};const N=function(t,e){return function(n){return null!=n&&(n[t]===e&&(void 0!==e||t in Object(n)))}};const B=function(t){var e=M(t);return 1==e.length&&e[0][2]?N(e[0][0],e[0][1]):function(n){return n===t||D(n,t,e)}};var P=n(13317);const F=function(t,e,n){var i=null==t?void 0:(0,P.Z)(t,e);return void 0===i?n:i};var j=n(75487),$=n(99365),z=n(62281);const H=function(t,e){return(0,$.Z)(t)&&L(e)?N((0,z.Z)(t),e):function(n){var i=F(n,t);return void 0===i&&i===e?(0,j.Z)(n,t):A(e,i,3)}};var U=n(69203),V=n(54193);const q=function(t){return function(e){return(0,P.Z)(e,t)}};const W=function(t){return(0,$.Z)(t)?(0,V.Z)((0,z.Z)(t)):q(t)};const Y=function(t){return"function"==typeof t?t:null==t?U.Z:"object"==typeof t?(0,w.Z)(t)?H(t[0],t[1]):B(t):W(t)}},39473:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=n(72764);const a=(0,n(1851).Z)(Object.keys,Object);var r=Object.prototype.hasOwnProperty;const o=function(t){if(!(0,i.Z)(t))return a(t);var e=[];for(var n in Object(t))r.call(t,n)&&"constructor"!=n&&e.push(n);return e}},21018:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(49811),a=n(50585);const r=function(t,e){var n=-1,r=(0,a.Z)(t)?Array(t.length):[];return(0,i.Z)(t,(function(t,i,a){r[++n]=e(t,i,a)})),r}},54193:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){return function(e){return null==e?void 0:e[t]}}},69581:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=n(69203),a=n(81211),r=n(27227);const o=function(t,e){return(0,r.Z)((0,a.Z)(t,e,i.Z),t+"")}},21162:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){return function(e){return t(e)}}},59548:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e){return t.has(e)}},68882:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(69203);const a=function(t){return"function"==typeof t?t:i.Z}},22823:(t,e,n)=>{"use strict";n.d(e,{Z:()=>u});var i=n(27771),a=n(99365),r=n(42454);var o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s=/\\(\\)?/g;const c=function(t){var e=(0,r.Z)(t,(function(t){return 500===n.size&&n.clear(),t})),n=e.cache;return e}((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(o,(function(t,n,i,a){e.push(i?a.replace(s,"$1"):n||t)})),e}));var l=n(50751);const u=function(t,e){return(0,i.Z)(t)?t:(0,a.Z)(t,e)?[t]:c((0,l.Z)(t))}},41884:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(84073);const a=function(t){var e=new t.constructor(t.byteLength);return new i.Z(e).set(new i.Z(t)),e}},91050:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(66092),a="object"==typeof exports&&exports&&!exports.nodeType&&exports,r=a&&"object"==typeof module&&module&&!module.nodeType&&module,o=r&&r.exports===a?i.Z.Buffer:void 0,s=o?o.allocUnsafe:void 0;const c=function(t,e){if(e)return t.slice();var n=t.length,i=s?s(n):new t.constructor(n);return t.copy(i),i}},12701:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(41884);const a=function(t,e){var n=e?(0,i.Z)(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}},87215:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n<i;)e[n]=t[n];return e}},31899:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(72954),a=n(74752);const r=function(t,e,n,r){var o=!n;n||(n={});for(var s=-1,c=e.length;++s<c;){var l=e[s],u=r?r(n[l],t[l],l,n,t):void 0;void 0===u&&(u=t[l]),o?(0,a.Z)(n,l,u):(0,i.Z)(n,l,u)}return n}},77904:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(62508);const a=function(){try{var t=(0,i.Z)(Object,"defineProperty");return t({},"",{}),t}catch(e){}}()},13413:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i="object"==typeof global&&global&&global.Object===Object&&global},1808:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=n(63327),a=n(95695),r=n(17179);const o=function(t){return(0,i.Z)(t,r.Z,a.Z)}},62508:(t,e,n)=>{"use strict";n.d(e,{Z:()=>y});var i=n(73234);const a=n(66092).Z["__core-js_shared__"];var r,o=(r=/[^.]+$/.exec(a&&a.keys&&a.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";const s=function(t){return!!o&&o in t};var c=n(77226),l=n(90019),u=/^\[object .+?Constructor\]$/,d=Function.prototype,h=Object.prototype,f=d.toString,g=h.hasOwnProperty,p=RegExp("^"+f.call(g).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");const b=function(t){return!(!(0,c.Z)(t)||s(t))&&((0,i.Z)(t)?p:u).test((0,l.Z)(t))};const m=function(t,e){return null==t?void 0:t[e]};const y=function(t,e){var n=m(t,e);return b(n)?n:void 0}},12513:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=(0,n(1851).Z)(Object.getPrototypeOf,Object)},95695:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(68774),a=n(60532),r=Object.prototype.propertyIsEnumerable,o=Object.getOwnPropertySymbols;const s=o?function(t){return null==t?[]:(t=Object(t),(0,i.Z)(o(t),(function(e){return r.call(t,e)})))}:a.Z},83970:(t,e,n)=>{"use strict";n.d(e,{Z:()=>_});var i=n(62508),a=n(66092);const r=(0,i.Z)(a.Z,"DataView");var o=n(86183);const s=(0,i.Z)(a.Z,"Promise");var c=n(93203);const l=(0,i.Z)(a.Z,"WeakMap");var u=n(93589),d=n(90019),h="[object Map]",f="[object Promise]",g="[object Set]",p="[object WeakMap]",b="[object DataView]",m=(0,d.Z)(r),y=(0,d.Z)(o.Z),v=(0,d.Z)(s),w=(0,d.Z)(c.Z),x=(0,d.Z)(l),R=u.Z;(r&&R(new r(new ArrayBuffer(1)))!=b||o.Z&&R(new o.Z)!=h||s&&R(s.resolve())!=f||c.Z&&R(new c.Z)!=g||l&&R(new l)!=p)&&(R=function(t){var e=(0,u.Z)(t),n="[object Object]"==e?t.constructor:void 0,i=n?(0,d.Z)(n):"";if(i)switch(i){case m:return b;case y:return h;case v:return f;case w:return g;case x:return p}return e});const _=R},16174:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var i=n(22823),a=n(29169),r=n(27771),o=n(56009),s=n(1656),c=n(62281);const l=function(t,e,n){for(var l=-1,u=(e=(0,i.Z)(e,t)).length,d=!1;++l<u;){var h=(0,c.Z)(e[l]);if(!(d=null!=t&&n(t,h)))break;t=t[h]}return d||++l!=u?d:!!(u=null==t?0:t.length)&&(0,s.Z)(u)&&(0,o.Z)(h,u)&&((0,r.Z)(t)||(0,a.Z)(t))}},73658:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(77226),a=Object.create;const r=function(){function t(){}return function(e){if(!(0,i.Z)(e))return{};if(a)return a(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();var o=n(12513),s=n(72764);const c=function(t){return"function"!=typeof t.constructor||(0,s.Z)(t)?{}:r((0,o.Z)(t))}},56009:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=/^(?:0|[1-9]\d*)$/;const a=function(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&i.test(t))&&t>-1&&t%1==0&&t<e}},50439:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(79651),a=n(50585),r=n(56009),o=n(77226);const s=function(t,e,n){if(!(0,o.Z)(n))return!1;var s=typeof e;return!!("number"==s?(0,a.Z)(n)&&(0,r.Z)(e,n.length):"string"==s&&e in n)&&(0,i.Z)(n[e],t)}},99365:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(27771),a=n(72714),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;const s=function(t,e){if((0,i.Z)(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!(0,a.Z)(t))||(o.test(t)||!r.test(t)||null!=e&&t in Object(e))}},72764:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=Object.prototype;const a=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||i)}},98351:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(13413),a="object"==typeof exports&&exports&&!exports.nodeType&&exports,r=a&&"object"==typeof module&&module&&!module.nodeType&&module,o=r&&r.exports===a&&i.Z.process;const s=function(){try{var t=r&&r.require&&r.require("util").types;return t||o&&o.binding&&o.binding("util")}catch(e){}}()},1851:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e){return function(n){return t(e(n))}}},81211:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});const i=function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)};var a=Math.max;const r=function(t,e,n){return e=a(void 0===e?t.length-1:e,0),function(){for(var r=arguments,o=-1,s=a(r.length-e,0),c=Array(s);++o<s;)c[o]=r[e+o];o=-1;for(var l=Array(e+1);++o<e;)l[o]=r[o];return l[e]=n(c),i(t,this,l)}}},66092:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(13413),a="object"==typeof self&&self&&self.Object===Object&&self;const r=i.Z||a||Function("return this")()},6545:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}},27227:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(62002),a=n(77904),r=n(69203);const o=a.Z?function(t,e){return(0,a.Z)(t,"toString",{configurable:!0,enumerable:!1,value:(0,i.Z)(e),writable:!0})}:r.Z;var s=Date.now;const c=function(t){var e=0,n=0;return function(){var i=s(),a=16-(i-n);if(n=i,a>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(o)},62281:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(72714);const a=function(t){if("string"==typeof t||(0,i.Z)(t))return t;var e=t+"";return"0"==e&&1/t==-Infinity?"-0":e}},90019:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=Function.prototype.toString;const a=function(t){if(null!=t){try{return i.call(t)}catch(e){}try{return t+""}catch(e){}}return""}},62002:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){return function(){return t}}},3688:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var i=n(69581),a=n(79651),r=n(50439),o=n(32957),s=Object.prototype,c=s.hasOwnProperty;const l=(0,i.Z)((function(t,e){t=Object(t);var n=-1,i=e.length,l=i>2?e[2]:void 0;for(l&&(0,r.Z)(e[0],e[1],l)&&(i=1);++n<i;)for(var u=e[n],d=(0,o.Z)(u),h=-1,f=d.length;++h<f;){var g=d[h],p=t[g];(void 0===p||(0,a.Z)(p,s[g])&&!c.call(t,g))&&(t[g]=u[g])}return t}))},79651:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e){return t===e||t!=t&&e!=e}},13445:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(68774),a=n(49811);const r=function(t,e){var n=[];return(0,a.Z)(t,(function(t,i,a){e(t,i,a)&&n.push(t)})),n};var o=n(74765),s=n(27771);const c=function(t,e){return((0,s.Z)(t)?i.Z:r)(t,(0,o.Z)(e,3))}},27961:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(10626);const a=function(t){return(null==t?0:t.length)?(0,i.Z)(t,1):[]}},70870:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(76579),a=n(49811),r=n(68882),o=n(27771);const s=function(t,e){return((0,o.Z)(t)?i.Z:a.Z)(t,(0,r.Z)(e))}},17452:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=Object.prototype.hasOwnProperty;const a=function(t,e){return null!=t&&i.call(t,e)};var r=n(16174);const o=function(t,e){return null!=t&&(0,r.Z)(t,e,a)}},75487:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});const i=function(t,e){return null!=t&&e in Object(t)};var a=n(16174);const r=function(t,e){return null!=t&&(0,a.Z)(t,e,i)}},69203:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){return t}},29169:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var i=n(93589),a=n(18533);const r=function(t){return(0,a.Z)(t)&&"[object Arguments]"==(0,i.Z)(t)};var o=Object.prototype,s=o.hasOwnProperty,c=o.propertyIsEnumerable;const l=r(function(){return arguments}())?r:function(t){return(0,a.Z)(t)&&s.call(t,"callee")&&!c.call(t,"callee")}},27771:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=Array.isArray},50585:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(73234),a=n(1656);const r=function(t){return null!=t&&(0,a.Z)(t.length)&&!(0,i.Z)(t)}},836:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(50585),a=n(18533);const r=function(t){return(0,a.Z)(t)&&(0,i.Z)(t)}},77008:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(66092);const a=function(){return!1};var r="object"==typeof exports&&exports&&!exports.nodeType&&exports,o=r&&"object"==typeof module&&module&&!module.nodeType&&module,s=o&&o.exports===r?i.Z.Buffer:void 0;const c=(s?s.isBuffer:void 0)||a},79697:(t,e,n)=>{"use strict";n.d(e,{Z:()=>h});var i=n(39473),a=n(83970),r=n(29169),o=n(27771),s=n(50585),c=n(77008),l=n(72764),u=n(18843),d=Object.prototype.hasOwnProperty;const h=function(t){if(null==t)return!0;if((0,s.Z)(t)&&((0,o.Z)(t)||"string"==typeof t||"function"==typeof t.splice||(0,c.Z)(t)||(0,u.Z)(t)||(0,r.Z)(t)))return!t.length;var e=(0,a.Z)(t);if("[object Map]"==e||"[object Set]"==e)return!t.size;if((0,l.Z)(t))return!(0,i.Z)(t).length;for(var n in t)if(d.call(t,n))return!1;return!0}},73234:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(93589),a=n(77226);const r=function(t){if(!(0,a.Z)(t))return!1;var e=(0,i.Z)(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},1656:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},77226:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},18533:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){return null!=t&&"object"==typeof t}},37514:(t,e,n)=>{"use strict";n.d(e,{Z:()=>d});var i=n(93589),a=n(12513),r=n(18533),o=Function.prototype,s=Object.prototype,c=o.toString,l=s.hasOwnProperty,u=c.call(Object);const d=function(t){if(!(0,r.Z)(t)||"[object Object]"!=(0,i.Z)(t))return!1;var e=(0,a.Z)(t);if(null===e)return!0;var n=l.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&c.call(n)==u}},72714:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(93589),a=n(18533);const r=function(t){return"symbol"==typeof t||(0,a.Z)(t)&&"[object Symbol]"==(0,i.Z)(t)}},18843:(t,e,n)=>{"use strict";n.d(e,{Z:()=>d});var i=n(93589),a=n(1656),r=n(18533),o={};o["[object Float32Array]"]=o["[object Float64Array]"]=o["[object Int8Array]"]=o["[object Int16Array]"]=o["[object Int32Array]"]=o["[object Uint8Array]"]=o["[object Uint8ClampedArray]"]=o["[object Uint16Array]"]=o["[object Uint32Array]"]=!0,o["[object Arguments]"]=o["[object Array]"]=o["[object ArrayBuffer]"]=o["[object Boolean]"]=o["[object DataView]"]=o["[object Date]"]=o["[object Error]"]=o["[object Function]"]=o["[object Map]"]=o["[object Number]"]=o["[object Object]"]=o["[object RegExp]"]=o["[object Set]"]=o["[object String]"]=o["[object WeakMap]"]=!1;const s=function(t){return(0,r.Z)(t)&&(0,a.Z)(t.length)&&!!o[(0,i.Z)(t)]};var c=n(21162),l=n(98351),u=l.Z&&l.Z.isTypedArray;const d=u?(0,c.Z)(u):s},49360:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){return void 0===t}},17179:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=n(87668),a=n(39473),r=n(50585);const o=function(t){return(0,r.Z)(t)?(0,i.Z)(t):(0,a.Z)(t)}},32957:(t,e,n)=>{"use strict";n.d(e,{Z:()=>u});var i=n(87668),a=n(77226),r=n(72764);const o=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e};var s=Object.prototype.hasOwnProperty;const c=function(t){if(!(0,a.Z)(t))return o(t);var e=(0,r.Z)(t),n=[];for(var i in t)("constructor"!=i||!e&&s.call(t,i))&&n.push(i);return n};var l=n(50585);const u=function(t){return(0,l.Z)(t)?(0,i.Z)(t,!0):c(t)}},43836:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(74073),a=n(74765),r=n(21018),o=n(27771);const s=function(t,e){return((0,o.Z)(t)?i.Z:r.Z)(t,(0,a.Z)(e,3))}},42454:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(37834);function a(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var n=function(){var i=arguments,a=e?e.apply(this,i):i[0],r=n.cache;if(r.has(a))return r.get(a);var o=t.apply(this,i);return n.cache=r.set(a,o)||r,o};return n.cache=new(a.Cache||i.Z),n}a.Cache=i.Z;const r=a},61666:(t,e,n)=>{"use strict";n.d(e,{Z:()=>b});var i=n(13317),a=n(72954),r=n(22823),o=n(56009),s=n(77226),c=n(62281);const l=function(t,e,n,i){if(!(0,s.Z)(t))return t;for(var l=-1,u=(e=(0,r.Z)(e,t)).length,d=u-1,h=t;null!=h&&++l<u;){var f=(0,c.Z)(e[l]),g=n;if("__proto__"===f||"constructor"===f||"prototype"===f)return t;if(l!=d){var p=h[f];void 0===(g=i?i(p,f,h):void 0)&&(g=(0,s.Z)(p)?p:(0,o.Z)(e[l+1])?[]:{})}(0,a.Z)(h,f,g),h=h[f]}return t};const u=function(t,e,n){for(var a=-1,o=e.length,s={};++a<o;){var c=e[a],u=(0,i.Z)(t,c);n(u,c)&&l(s,(0,r.Z)(c,t),u)}return s};var d=n(75487);const h=function(t,e){return u(t,e,(function(e,n){return(0,d.Z)(t,n)}))};var f=n(27961),g=n(81211),p=n(27227);const b=function(t){return(0,p.Z)((0,g.Z)(t,void 0,f.Z),t+"")}((function(t,e){return null==t?{}:h(t,e)}))},74379:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=Math.ceil,a=Math.max;const r=function(t,e,n,r){for(var o=-1,s=a(i((e-t)/(n||1)),0),c=Array(s);s--;)c[r?s:++o]=t,t+=n;return c};var o=n(50439),s=n(94099);const c=function(t){return function(e,n,i){return i&&"number"!=typeof i&&(0,o.Z)(e,n,i)&&(n=i=void 0),e=(0,s.Z)(e),void 0===n?(n=e,e=0):n=(0,s.Z)(n),i=void 0===i?e<n?1:-1:(0,s.Z)(i),r(e,n,i,t)}}()},92344:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});const i=function(t,e,n,i){var a=-1,r=null==t?0:t.length;for(i&&r&&(n=t[++a]);++a<r;)n=e(n,t[a],a,t);return n};var a=n(49811),r=n(74765);const o=function(t,e,n,i,a){return a(t,(function(t,a,r){n=i?(i=!1,t):e(n,t,a,r)})),n};var s=n(27771);const c=function(t,e,n){var c=(0,s.Z)(t)?i:o,l=arguments.length<3;return c(t,(0,r.Z)(e,4),n,l,a.Z)}},60532:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(){return[]}},94099:(t,e,n)=>{"use strict";n.d(e,{Z:()=>p});var i=/\s/;const a=function(t){for(var e=t.length;e--&&i.test(t.charAt(e)););return e};var r=/^\s+/;const o=function(t){return t?t.slice(0,a(t)+1).replace(r,""):t};var s=n(77226),c=n(72714),l=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,d=/^0o[0-7]+$/i,h=parseInt;const f=function(t){if("number"==typeof t)return t;if((0,c.Z)(t))return NaN;if((0,s.Z)(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=(0,s.Z)(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=o(t);var n=u.test(t);return n||d.test(t)?h(t.slice(2),n?2:8):l.test(t)?NaN:+t};var g=1/0;const p=function(t){return t?(t=f(t))===g||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}},50751:(t,e,n)=>{"use strict";n.d(e,{Z:()=>u});var i=n(17685),a=n(74073),r=n(27771),o=n(72714),s=i.Z?i.Z.prototype:void 0,c=s?s.toString:void 0;const l=function t(e){if("string"==typeof e)return e;if((0,r.Z)(e))return(0,a.Z)(e,t)+"";if((0,o.Z)(e))return c?c.call(e):"";var n=e+"";return"0"==n&&1/e==-Infinity?"-0":n};const u=function(t){return null==t?"":l(t)}},66749:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(50751),a=0;const r=function(t){var e=++a;return(0,i.Z)(t)+e}},34148:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=n(74073);const a=function(t,e){return(0,i.Z)(e,(function(e){return t[e]}))};var r=n(17179);const o=function(t){return null==t?[]:a(t,(0,r.Z)(t))}},87891:(t,e,n)=>{"use strict";function i(t,e,n){const i=e.indexStack,a=t.children||[],r=[];let o=-1,s=n.before;i.push(-1);let c=e.createTracker(n);for(;++o<a.length;){const l=a[o];let u;if(i[i.length-1]=o,o+1<a.length){let n=e.handle.handlers[a[o+1].type];n&&n.peek&&(n=n.peek),u=n?n(a[o+1],t,e,{before:"",after:"",...c.current()}).charAt(0):""}else u=n.after;r.length>0&&("\r"===s||"\n"===s)&&"html"===l.type&&(r[r.length-1]=r[r.length-1].replace(/(\r?\n|\r)$/," "),s=" ",c=e.createTracker(n),c.move(r.join(""))),r.push(c.move(e.handle(l,t,e,{...c.current(),before:s,after:u}))),s=r[r.length-1].slice(-1)}return i.pop(),r.join("")}n.d(e,{p:()=>i})},21665:(t,e,n)=>{"use strict";n.d(e,{Q:()=>a});const i=/\r?\n|\r/g;function a(t,e){const n=[];let a,r=0,o=0;for(;a=i.exec(t);)s(t.slice(r,a.index)),n.push(a[0]),r=a.index+a[0].length,o++;return s(t.slice(r)),n.join("");function s(t){n.push(e(t,o,!t))}}},48653:(t,e,n)=>{"use strict";function i(t){const e=t||{},n=e.now||{};let i=e.lineShift||0,a=n.line||1,r=n.column||1;return{move:function(t){const e=t||"",n=e.split(/\r?\n|\r/g),o=n[n.length-1];return a+=n.length-1,r=1===n.length?r+o.length:1+o.length+i,e},current:function(){return{now:{line:a,column:r},lineShift:i}},shift:function(t){i+=t}}}n.d(e,{j:()=>i})},23402:(t,e,n)=>{"use strict";n.d(e,{w:()=>r});var i=n(42761),a=n(75364);const r={tokenize:function(t,e,n){return function(e){return(0,a.xz)(e)?(0,i.f)(t,r,"linePrefix")(e):r(e)};function r(t){return null===t||(0,a.Ch)(t)?e(t):n(t)}},partial:!0}},42761:(t,e,n)=>{"use strict";n.d(e,{f:()=>a});var i=n(75364);function a(t,e,n,a){const r=a?a-1:Number.POSITIVE_INFINITY;let o=0;return function(a){if((0,i.xz)(a))return t.enter(n),s(a);return e(a)};function s(a){return(0,i.xz)(a)&&o++<r?(t.consume(a),s):(t.exit(n),e(a))}}},75364:(t,e,n)=>{"use strict";n.d(e,{jv:()=>i,H$:()=>a,n9:()=>r,Av:()=>o,pY:()=>s,AF:()=>c,sR:()=>l,Ch:()=>u,z3:()=>d,xz:()=>h,Xh:()=>f,B8:()=>g});const i=p(/[A-Za-z]/),a=p(/[\dA-Za-z]/),r=p(/[#-'*+\--9=?A-Z^-~]/);function o(t){return null!==t&&(t<32||127===t)}const s=p(/\d/),c=p(/[\dA-Fa-f]/),l=p(/[!-/:-@[-`{-~]/);function u(t){return null!==t&&t<-2}function d(t){return null!==t&&(t<0||32===t)}function h(t){return-2===t||-1===t||32===t}const f=p(/[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\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\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\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\u2E52-\u2E5D\u3001-\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]/),g=p(/\s/);function p(t){return function(e){return null!==e&&t.test(String.fromCharCode(e))}}},21905:(t,e,n)=>{"use strict";function i(t,e,n,i){const a=t.length;let r,o=0;if(e=e<0?-e>a?0:a+e:e>a?a:e,n=n>0?n:0,i.length<1e4)r=Array.from(i),r.unshift(e,n),t.splice(...r);else for(n&&t.splice(e,n);o<i.length;)r=i.slice(o,o+1e4),r.unshift(e,0),t.splice(...r),o+=1e4,e+=1e4}function a(t,e){return t.length>0?(i(t,t.length,0,e),t):e}n.d(e,{V:()=>a,d:()=>i})},62987:(t,e,n)=>{"use strict";n.d(e,{r:()=>a});var i=n(75364);function a(t){return null===t||(0,i.z3)(t)||(0,i.B8)(t)?1:(0,i.Xh)(t)?2:void 0}},4663:(t,e,n)=>{"use strict";n.d(e,{W:()=>r});var i=n(21905);const a={}.hasOwnProperty;function r(t){const e={};let n=-1;for(;++n<t.length;)o(e,t[n]);return e}function o(t,e){let n;for(n in e){const i=(a.call(t,n)?t[n]:void 0)||(t[n]={}),r=e[n];let o;if(r)for(o in r){a.call(i,o)||(i[o]=[]);const t=r[o];s(i[o],Array.isArray(t)?t:t?[t]:[])}}}function s(t,e){let n=-1;const a=[];for(;++n<e.length;)("after"===e[n].add?t:a).push(e[n]);(0,i.d)(t,0,0,a)}},80889:(t,e,n)=>{"use strict";function i(t,e){const n=Number.parseInt(t,e);return n<9||11===n||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||65535==(65535&n)||65534==(65535&n)||n>1114111?"\ufffd":String.fromCharCode(n)}n.d(e,{o:()=>i})},47881:(t,e,n)=>{"use strict";n.d(e,{v:()=>o});var i=n(44301),a=n(80889);const r=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function o(t){return t.replace(r,s)}function s(t,e,n){if(e)return e;if(35===n.charCodeAt(0)){const t=n.charCodeAt(1),e=120===t||88===t;return(0,a.o)(n.slice(e?2:1),e?16:10)}return(0,i.T)(n)||t}},11098:(t,e,n)=>{"use strict";function i(t){return t.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}n.d(e,{d:()=>i})},63233:(t,e,n)=>{"use strict";function i(t,e,n){const i=[];let a=-1;for(;++a<t.length;){const r=t[a].resolveAll;r&&!i.includes(r)&&(e=r(e,n),i.push(r))}return e}n.d(e,{C:()=>i})},86504:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>Ut});var i=n(4663),a=n(75364);const r={tokenize:function(t,e,n){let i=0;return function e(r){if((87===r||119===r)&&i<3)return i++,t.consume(r),e;if(46===r&&3===i)return t.consume(r),a;return n(r)};function a(t){return null===t?n(t):e(t)}},partial:!0},o={tokenize:function(t,e,n){let i,r,o;return s;function s(e){return 46===e||95===e?t.check(c,u,l)(e):null===e||(0,a.z3)(e)||(0,a.B8)(e)||45!==e&&(0,a.Xh)(e)?u(e):(o=!0,t.consume(e),s)}function l(e){return 95===e?i=!0:(r=i,i=void 0),t.consume(e),s}function u(t){return r||i||!o?n(t):e(t)}},partial:!0},s={tokenize:function(t,e){let n=0,i=0;return r;function r(s){return 40===s?(n++,t.consume(s),r):41===s&&i<n?o(s):33===s||34===s||38===s||39===s||41===s||42===s||44===s||46===s||58===s||59===s||60===s||63===s||93===s||95===s||126===s?t.check(c,e,o)(s):null===s||(0,a.z3)(s)||(0,a.B8)(s)?e(s):(t.consume(s),r)}function o(e){return 41===e&&i++,t.consume(e),r}},partial:!0},c={tokenize:function(t,e,n){return i;function i(s){return 33===s||34===s||39===s||41===s||42===s||44===s||46===s||58===s||59===s||63===s||95===s||126===s?(t.consume(s),i):38===s?(t.consume(s),o):93===s?(t.consume(s),r):60===s||null===s||(0,a.z3)(s)||(0,a.B8)(s)?e(s):n(s)}function r(t){return null===t||40===t||91===t||(0,a.z3)(t)||(0,a.B8)(t)?e(t):i(t)}function o(t){return(0,a.jv)(t)?s(t):n(t)}function s(e){return 59===e?(t.consume(e),i):(0,a.jv)(e)?(t.consume(e),s):n(e)}},partial:!0},l={tokenize:function(t,e,n){return function(e){return t.consume(e),i};function i(t){return(0,a.H$)(t)?n(t):e(t)}},partial:!0},u={tokenize:function(t,e,n){const i=this;return function(e){if(87!==e&&119!==e||!b.call(i,i.previous)||w(i.events))return n(e);return t.enter("literalAutolink"),t.enter("literalAutolinkWww"),t.check(r,t.attempt(o,t.attempt(s,a),n),n)(e)};function a(n){return t.exit("literalAutolinkWww"),t.exit("literalAutolink"),e(n)}},previous:b},d={tokenize:function(t,e,n){const i=this;let r="",c=!1;return function(e){if((72===e||104===e)&&m.call(i,i.previous)&&!w(i.events))return t.enter("literalAutolink"),t.enter("literalAutolinkHttp"),r+=String.fromCodePoint(e),t.consume(e),l;return n(e)};function l(e){if((0,a.jv)(e)&&r.length<5)return r+=String.fromCodePoint(e),t.consume(e),l;if(58===e){const n=r.toLowerCase();if("http"===n||"https"===n)return t.consume(e),u}return n(e)}function u(e){return 47===e?(t.consume(e),c?d:(c=!0,u)):n(e)}function d(e){return null===e||(0,a.Av)(e)||(0,a.z3)(e)||(0,a.B8)(e)||(0,a.Xh)(e)?n(e):t.attempt(o,t.attempt(s,h),n)(e)}function h(n){return t.exit("literalAutolinkHttp"),t.exit("literalAutolink"),e(n)}},previous:m},h={tokenize:function(t,e,n){const i=this;let r,o;return function(e){if(!v(e)||!y.call(i,i.previous)||w(i.events))return n(e);return t.enter("literalAutolink"),t.enter("literalAutolinkEmail"),s(e)};function s(e){return v(e)?(t.consume(e),s):64===e?(t.consume(e),c):n(e)}function c(e){return 46===e?t.check(l,d,u)(e):45===e||95===e||(0,a.H$)(e)?(o=!0,t.consume(e),c):d(e)}function u(e){return t.consume(e),r=!0,c}function d(s){return o&&r&&(0,a.jv)(i.previous)?(t.exit("literalAutolinkEmail"),t.exit("literalAutolink"),e(s)):n(s)}},previous:y},f={},g={text:f};let p=48;for(;p<123;)f[p]=h,p++,58===p?p=65:91===p&&(p=97);function b(t){return null===t||40===t||42===t||95===t||91===t||93===t||126===t||(0,a.z3)(t)}function m(t){return!(0,a.jv)(t)}function y(t){return!(47===t||v(t))}function v(t){return 43===t||45===t||46===t||95===t||(0,a.H$)(t)}function w(t){let e=t.length,n=!1;for(;e--;){const i=t[e][1];if(("labelLink"===i.type||"labelImage"===i.type)&&!i._balanced){n=!0;break}if(i._gfmAutolinkLiteralWalkedInto){n=!1;break}}return t.length>0&&!n&&(t[t.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}f[43]=h,f[45]=h,f[46]=h,f[95]=h,f[72]=[h,d],f[104]=[h,d],f[87]=[h,u],f[119]=[h,u];var x=n(23402),R=n(42761),_=n(11098);const k={tokenize:function(t,e,n){const i=this;return(0,R.f)(t,(function(t){const a=i.events[i.events.length-1];return a&&"gfmFootnoteDefinitionIndent"===a[1].type&&4===a[2].sliceSerialize(a[1],!0).length?e(t):n(t)}),"gfmFootnoteDefinitionIndent",5)},partial:!0};function E(t,e,n){const i=this;let a=i.events.length;const r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let o;for(;a--;){const t=i.events[a][1];if("labelImage"===t.type){o=t;break}if("gfmFootnoteCall"===t.type||"labelLink"===t.type||"label"===t.type||"image"===t.type||"link"===t.type)break}return function(a){if(!o||!o._balanced)return n(a);const s=(0,_.d)(i.sliceSerialize({start:o.end,end:i.now()}));if(94!==s.codePointAt(0)||!r.includes(s.slice(1)))return n(a);return t.enter("gfmFootnoteCallLabelMarker"),t.consume(a),t.exit("gfmFootnoteCallLabelMarker"),e(a)}}function C(t,e){let n,i=t.length;for(;i--;)if("labelImage"===t[i][1].type&&"enter"===t[i][0]){n=t[i][1];break}t[i+1][1].type="data",t[i+3][1].type="gfmFootnoteCallLabelMarker";const a={type:"gfmFootnoteCall",start:Object.assign({},t[i+3][1].start),end:Object.assign({},t[t.length-1][1].end)},r={type:"gfmFootnoteCallMarker",start:Object.assign({},t[i+3][1].end),end:Object.assign({},t[i+3][1].end)};r.end.column++,r.end.offset++,r.end._bufferIndex++;const o={type:"gfmFootnoteCallString",start:Object.assign({},r.end),end:Object.assign({},t[t.length-1][1].start)},s={type:"chunkString",contentType:"string",start:Object.assign({},o.start),end:Object.assign({},o.end)},c=[t[i+1],t[i+2],["enter",a,e],t[i+3],t[i+4],["enter",r,e],["exit",r,e],["enter",o,e],["enter",s,e],["exit",s,e],["exit",o,e],t[t.length-2],t[t.length-1],["exit",a,e]];return t.splice(i,t.length-i+1,...c),t}function S(t,e,n){const i=this,r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let o,s=0;return function(e){return t.enter("gfmFootnoteCall"),t.enter("gfmFootnoteCallLabelMarker"),t.consume(e),t.exit("gfmFootnoteCallLabelMarker"),c};function c(e){return 94!==e?n(e):(t.enter("gfmFootnoteCallMarker"),t.consume(e),t.exit("gfmFootnoteCallMarker"),t.enter("gfmFootnoteCallString"),t.enter("chunkString").contentType="string",l)}function l(c){if(s>999||93===c&&!o||null===c||91===c||(0,a.z3)(c))return n(c);if(93===c){t.exit("chunkString");const a=t.exit("gfmFootnoteCallString");return r.includes((0,_.d)(i.sliceSerialize(a)))?(t.enter("gfmFootnoteCallLabelMarker"),t.consume(c),t.exit("gfmFootnoteCallLabelMarker"),t.exit("gfmFootnoteCall"),e):n(c)}return(0,a.z3)(c)||(o=!0),s++,t.consume(c),92===c?u:l}function u(e){return 91===e||92===e||93===e?(t.consume(e),s++,l):l(e)}}function T(t,e,n){const i=this,r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let o,s,c=0;return function(e){return t.enter("gfmFootnoteDefinition")._container=!0,t.enter("gfmFootnoteDefinitionLabel"),t.enter("gfmFootnoteDefinitionLabelMarker"),t.consume(e),t.exit("gfmFootnoteDefinitionLabelMarker"),l};function l(e){return 94===e?(t.enter("gfmFootnoteDefinitionMarker"),t.consume(e),t.exit("gfmFootnoteDefinitionMarker"),t.enter("gfmFootnoteDefinitionLabelString"),t.enter("chunkString").contentType="string",u):n(e)}function u(e){if(c>999||93===e&&!s||null===e||91===e||(0,a.z3)(e))return n(e);if(93===e){t.exit("chunkString");const n=t.exit("gfmFootnoteDefinitionLabelString");return o=(0,_.d)(i.sliceSerialize(n)),t.enter("gfmFootnoteDefinitionLabelMarker"),t.consume(e),t.exit("gfmFootnoteDefinitionLabelMarker"),t.exit("gfmFootnoteDefinitionLabel"),h}return(0,a.z3)(e)||(s=!0),c++,t.consume(e),92===e?d:u}function d(e){return 91===e||92===e||93===e?(t.consume(e),c++,u):u(e)}function h(e){return 58===e?(t.enter("definitionMarker"),t.consume(e),t.exit("definitionMarker"),r.includes(o)||r.push(o),(0,R.f)(t,f,"gfmFootnoteDefinitionWhitespace")):n(e)}function f(t){return e(t)}}function A(t,e,n){return t.check(x.w,e,t.attempt(k,e,n))}function D(t){t.exit("gfmFootnoteDefinition")}var I=n(21905),L=n(62987),O=n(63233);function M(t){let e=(t||{}).singleTilde;const n={tokenize:function(t,n,i){const a=this.previous,r=this.events;let o=0;return function(e){if(126===a&&"characterEscape"!==r[r.length-1][1].type)return i(e);return t.enter("strikethroughSequenceTemporary"),s(e)};function s(r){const c=(0,L.r)(a);if(126===r)return o>1?i(r):(t.consume(r),o++,s);if(o<2&&!e)return i(r);const l=t.exit("strikethroughSequenceTemporary"),u=(0,L.r)(r);return l._open=!u||2===u&&Boolean(c),l._close=!c||2===c&&Boolean(u),n(r)}},resolveAll:function(t,e){let n=-1;for(;++n<t.length;)if("enter"===t[n][0]&&"strikethroughSequenceTemporary"===t[n][1].type&&t[n][1]._close){let i=n;for(;i--;)if("exit"===t[i][0]&&"strikethroughSequenceTemporary"===t[i][1].type&&t[i][1]._open&&t[n][1].end.offset-t[n][1].start.offset==t[i][1].end.offset-t[i][1].start.offset){t[n][1].type="strikethroughSequence",t[i][1].type="strikethroughSequence";const a={type:"strikethrough",start:Object.assign({},t[i][1].start),end:Object.assign({},t[n][1].end)},r={type:"strikethroughText",start:Object.assign({},t[i][1].end),end:Object.assign({},t[n][1].start)},o=[["enter",a,e],["enter",t[i][1],e],["exit",t[i][1],e],["enter",r,e]],s=e.parser.constructs.insideSpan.null;s&&(0,I.d)(o,o.length,0,(0,O.C)(s,t.slice(i+1,n),e)),(0,I.d)(o,o.length,0,[["exit",r,e],["enter",t[n][1],e],["exit",t[n][1],e],["exit",a,e]]),(0,I.d)(t,i-1,n-i+3,o),n=i+o.length-2;break}}n=-1;for(;++n<t.length;)"strikethroughSequenceTemporary"===t[n][1].type&&(t[n][1].type="data");return t}};return null==e&&(e=!0),{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}}}class N{constructor(){this.map=[]}add(t,e,n){!function(t,e,n,i){let a=0;if(0===n&&0===i.length)return;for(;a<t.map.length;){if(t.map[a][0]===e)return t.map[a][1]+=n,void t.map[a][2].push(...i);a+=1}t.map.push([e,n,i])}(this,t,e,n)}consume(t){if(this.map.sort(((t,e)=>t[0]-e[0])),0===this.map.length)return;let e=this.map.length;const n=[];for(;e>0;)e-=1,n.push(t.slice(this.map[e][0]+this.map[e][1])),n.push(this.map[e][2]),t.length=this.map[e][0];n.push([...t]),t.length=0;let i=n.pop();for(;i;)t.push(...i),i=n.pop();this.map.length=0}}function B(t,e){let n=!1;const i=[];for(;e<t.length;){const a=t[e];if(n){if("enter"===a[0])"tableContent"===a[1].type&&i.push("tableDelimiterMarker"===t[e+1][1].type?"left":"none");else if("tableContent"===a[1].type){if("tableDelimiterMarker"===t[e-1][1].type){const t=i.length-1;i[t]="left"===i[t]?"center":"right"}}else if("tableDelimiterRow"===a[1].type)break}else"enter"===a[0]&&"tableDelimiterRow"===a[1].type&&(n=!0);e+=1}return i}const P={flow:{null:{tokenize:function(t,e,n){const i=this;let r,o=0,s=0;return function(t){let e=i.events.length-1;for(;e>-1;){const t=i.events[e][1].type;if("lineEnding"!==t&&"linePrefix"!==t)break;e--}const a=e>-1?i.events[e][1].type:null,r="tableHead"===a||"tableRow"===a?x:c;if(r===x&&i.parser.lazy[i.now().line])return n(t);return r(t)};function c(e){return t.enter("tableHead"),t.enter("tableRow"),function(t){if(124===t)return l(t);return r=!0,s+=1,l(t)}(e)}function l(e){return null===e?n(e):(0,a.Ch)(e)?s>1?(s=0,i.interrupt=!0,t.exit("tableRow"),t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),h):n(e):(0,a.xz)(e)?(0,R.f)(t,l,"whitespace")(e):(s+=1,r&&(r=!1,o+=1),124===e?(t.enter("tableCellDivider"),t.consume(e),t.exit("tableCellDivider"),r=!0,l):(t.enter("data"),u(e)))}function u(e){return null===e||124===e||(0,a.z3)(e)?(t.exit("data"),l(e)):(t.consume(e),92===e?d:u)}function d(e){return 92===e||124===e?(t.consume(e),u):u(e)}function h(e){return i.interrupt=!1,i.parser.lazy[i.now().line]?n(e):(t.enter("tableDelimiterRow"),r=!1,(0,a.xz)(e)?(0,R.f)(t,f,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(e):f(e))}function f(e){return 45===e||58===e?p(e):124===e?(r=!0,t.enter("tableCellDivider"),t.consume(e),t.exit("tableCellDivider"),g):w(e)}function g(e){return(0,a.xz)(e)?(0,R.f)(t,p,"whitespace")(e):p(e)}function p(e){return 58===e?(s+=1,r=!0,t.enter("tableDelimiterMarker"),t.consume(e),t.exit("tableDelimiterMarker"),b):45===e?(s+=1,b(e)):null===e||(0,a.Ch)(e)?v(e):w(e)}function b(e){return 45===e?(t.enter("tableDelimiterFiller"),m(e)):w(e)}function m(e){return 45===e?(t.consume(e),m):58===e?(r=!0,t.exit("tableDelimiterFiller"),t.enter("tableDelimiterMarker"),t.consume(e),t.exit("tableDelimiterMarker"),y):(t.exit("tableDelimiterFiller"),y(e))}function y(e){return(0,a.xz)(e)?(0,R.f)(t,v,"whitespace")(e):v(e)}function v(n){return 124===n?f(n):(null===n||(0,a.Ch)(n))&&r&&o===s?(t.exit("tableDelimiterRow"),t.exit("tableHead"),e(n)):w(n)}function w(t){return n(t)}function x(e){return t.enter("tableRow"),_(e)}function _(n){return 124===n?(t.enter("tableCellDivider"),t.consume(n),t.exit("tableCellDivider"),_):null===n||(0,a.Ch)(n)?(t.exit("tableRow"),e(n)):(0,a.xz)(n)?(0,R.f)(t,_,"whitespace")(n):(t.enter("data"),k(n))}function k(e){return null===e||124===e||(0,a.z3)(e)?(t.exit("data"),_(e)):(t.consume(e),92===e?E:k)}function E(e){return 92===e||124===e?(t.consume(e),k):k(e)}},resolveAll:function(t,e){let n,i,a,r=-1,o=!0,s=0,c=[0,0,0,0],l=[0,0,0,0],u=!1,d=0;const h=new N;for(;++r<t.length;){const f=t[r],g=f[1];"enter"===f[0]?"tableHead"===g.type?(u=!1,0!==d&&(j(h,e,d,n,i),i=void 0,d=0),n={type:"table",start:Object.assign({},g.start),end:Object.assign({},g.end)},h.add(r,0,[["enter",n,e]])):"tableRow"===g.type||"tableDelimiterRow"===g.type?(o=!0,a=void 0,c=[0,0,0,0],l=[0,r+1,0,0],u&&(u=!1,i={type:"tableBody",start:Object.assign({},g.start),end:Object.assign({},g.end)},h.add(r,0,[["enter",i,e]])),s="tableDelimiterRow"===g.type?2:i?3:1):!s||"data"!==g.type&&"tableDelimiterMarker"!==g.type&&"tableDelimiterFiller"!==g.type?"tableCellDivider"===g.type&&(o?o=!1:(0!==c[1]&&(l[0]=l[1],a=F(h,e,c,s,void 0,a)),c=l,l=[c[1],r,0,0])):(o=!1,0===l[2]&&(0!==c[1]&&(l[0]=l[1],a=F(h,e,c,s,void 0,a),c=[0,0,0,0]),l[2]=r)):"tableHead"===g.type?(u=!0,d=r):"tableRow"===g.type||"tableDelimiterRow"===g.type?(d=r,0!==c[1]?(l[0]=l[1],a=F(h,e,c,s,r,a)):0!==l[1]&&(a=F(h,e,l,s,r,a)),s=0):!s||"data"!==g.type&&"tableDelimiterMarker"!==g.type&&"tableDelimiterFiller"!==g.type||(l[3]=r)}0!==d&&j(h,e,d,n,i);h.consume(e.events),r=-1;for(;++r<e.events.length;){const t=e.events[r];"enter"===t[0]&&"table"===t[1].type&&(t[1]._align=B(e.events,r))}return t}}}};function F(t,e,n,i,a,r){const o=1===i?"tableHeader":2===i?"tableDelimiter":"tableData";0!==n[0]&&(r.end=Object.assign({},$(e.events,n[0])),t.add(n[0],0,[["exit",r,e]]));const s=$(e.events,n[1]);if(r={type:o,start:Object.assign({},s),end:Object.assign({},s)},t.add(n[1],0,[["enter",r,e]]),0!==n[2]){const a=$(e.events,n[2]),r=$(e.events,n[3]),o={type:"tableContent",start:Object.assign({},a),end:Object.assign({},r)};if(t.add(n[2],0,[["enter",o,e]]),2!==i){const i=e.events[n[2]],a=e.events[n[3]];if(i[1].end=Object.assign({},a[1].end),i[1].type="chunkText",i[1].contentType="text",n[3]>n[2]+1){const e=n[2]+1,i=n[3]-n[2]-1;t.add(e,i,[])}}t.add(n[3]+1,0,[["exit",o,e]])}return void 0!==a&&(r.end=Object.assign({},$(e.events,a)),t.add(a,0,[["exit",r,e]]),r=void 0),r}function j(t,e,n,i,a){const r=[],o=$(e.events,n);a&&(a.end=Object.assign({},o),r.push(["exit",a,e])),i.end=Object.assign({},o),r.push(["exit",i,e]),t.add(n+1,0,r)}function $(t,e){const n=t[e],i="enter"===n[0]?"start":"end";return n[1][i]}const z={tokenize:function(t,e,n){const i=this;return function(e){if(null!==i.previous||!i._gfmTasklistFirstContentOfListItem)return n(e);return t.enter("taskListCheck"),t.enter("taskListCheckMarker"),t.consume(e),t.exit("taskListCheckMarker"),r};function r(e){return(0,a.z3)(e)?(t.enter("taskListCheckValueUnchecked"),t.consume(e),t.exit("taskListCheckValueUnchecked"),o):88===e||120===e?(t.enter("taskListCheckValueChecked"),t.consume(e),t.exit("taskListCheckValueChecked"),o):n(e)}function o(e){return 93===e?(t.enter("taskListCheckMarker"),t.consume(e),t.exit("taskListCheckMarker"),t.exit("taskListCheck"),s):n(e)}function s(i){return(0,a.Ch)(i)?e(i):(0,a.xz)(i)?t.check({tokenize:U},e,n)(i):n(i)}}},H={text:{91:z}};function U(t,e,n){return(0,R.f)(t,(function(t){return null===t?n(t):e(t)}),"whitespace")}var V=n(64777);var q=n(20557),W=n(96093);const Y={}.hasOwnProperty,G=function(t,e,n,i){let a,r;"string"==typeof e||e instanceof RegExp?(r=[[e,n]],a=i):(r=e,a=n),a||(a={});const o=(0,W.O)(a.ignore||[]),s=function(t){const e=[];if("object"!=typeof t)throw new TypeError("Expected array or object as schema");if(Array.isArray(t)){let n=-1;for(;++n<t.length;)e.push([Z(t[n][0]),K(t[n][1])])}else{let n;for(n in t)Y.call(t,n)&&e.push([Z(n),K(t[n])])}return e}(r);let c=-1;for(;++c<s.length;)(0,q.S4)(t,"text",l);return t;function l(t,e){let n,i=-1;for(;++i<e.length;){const t=e[i];if(o(t,n?n.children.indexOf(t):void 0,n))return;n=t}if(n)return function(t,e){const n=e[e.length-1],i=s[c][0],a=s[c][1];let r=0;const o=n.children.indexOf(t);let l=!1,u=[];i.lastIndex=0;let d=i.exec(t.value);for(;d;){const n=d.index,o={index:d.index,input:d.input,stack:[...e,t]};let s=a(...d,o);if("string"==typeof s&&(s=s.length>0?{type:"text",value:s}:void 0),!1!==s&&(r!==n&&u.push({type:"text",value:t.value.slice(r,n)}),Array.isArray(s)?u.push(...s):s&&u.push(s),r=n+d[0].length,l=!0),!i.global)break;d=i.exec(t.value)}l?(r<t.value.length&&u.push({type:"text",value:t.value.slice(r)}),n.children.splice(o,1,...u)):u=[t];return o+u.length}(t,e)}};function Z(t){return"string"==typeof t?new RegExp(function(t){if("string"!=typeof t)throw new TypeError("Expected a string");return t.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}(t),"g"):t}function K(t){return"function"==typeof t?t:()=>t}const X="phrasing",J=["autolink","link","image","label"],Q={transforms:[function(t){G(t,[[/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi,nt],[/([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/g,it]],{ignore:["link","linkReference"]})}],enter:{literalAutolink:function(t){this.enter({type:"link",title:null,url:"",children:[]},t)},literalAutolinkEmail:et,literalAutolinkHttp:et,literalAutolinkWww:et},exit:{literalAutolink:function(t){this.exit(t)},literalAutolinkEmail:function(t){this.config.exit.autolinkEmail.call(this,t)},literalAutolinkHttp:function(t){this.config.exit.autolinkProtocol.call(this,t)},literalAutolinkWww:function(t){this.config.exit.data.call(this,t);this.stack[this.stack.length-1].url="http://"+this.sliceSerialize(t)}}},tt={unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:X,notInConstruct:J},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:X,notInConstruct:J},{character:":",before:"[ps]",after:"\\/",inConstruct:X,notInConstruct:J}]};function et(t){this.config.enter.autolinkProtocol.call(this,t)}function nt(t,e,n,i,a){let r="";if(!at(a))return!1;if(/^w/i.test(e)&&(n=e+n,e="",r="http://"),!function(t){const e=t.split(".");if(e.length<2||e[e.length-1]&&(/_/.test(e[e.length-1])||!/[a-zA-Z\d]/.test(e[e.length-1]))||e[e.length-2]&&(/_/.test(e[e.length-2])||!/[a-zA-Z\d]/.test(e[e.length-2])))return!1;return!0}(n))return!1;const o=function(t){const e=/[!"&'),.:;<>?\]}]+$/.exec(t);if(!e)return[t,void 0];t=t.slice(0,e.index);let n=e[0],i=n.indexOf(")");const a=(0,V.w)(t,"(");let r=(0,V.w)(t,")");for(;-1!==i&&a>r;)t+=n.slice(0,i+1),n=n.slice(i+1),i=n.indexOf(")"),r++;return[t,n]}(n+i);if(!o[0])return!1;const s={type:"link",title:null,url:r+e+o[0],children:[{type:"text",value:e+o[0]}]};return o[1]?[s,{type:"text",value:o[1]}]:s}function it(t,e,n,i){return!(!at(i,!0)||/[-\d_]$/.test(n))&&{type:"link",title:null,url:"mailto:"+e+"@"+n,children:[{type:"text",value:e+"@"+n}]}}function at(t,e){const n=t.input.charCodeAt(t.index-1);return(0===t.index||(0,a.B8)(n)||(0,a.Xh)(n))&&(!e||47!==n)}var rt=n(47881);function ot(t){return t.label||!t.identifier?t.label||"":(0,rt.v)(t.identifier)}function st(t,e,n,i){let a=i.join.length;for(;a--;){const r=i.join[a](t,e,n,i);if(!0===r||1===r)break;if("number"==typeof r)return"\n".repeat(1+r);if(!1===r)return"\n\n\x3c!----\x3e\n\n"}return"\n\n"}var ct=n(21665);function lt(t){if(!t._compiled){const e=(t.atBreak?"[\\r\\n][\\t ]*":"")+(t.before?"(?:"+t.before+")":"");t._compiled=new RegExp((e?"("+e+")":"")+(/[|\\{}()[\]^$+*?.-]/.test(t.character)?"\\":"")+t.character+(t.after?"(?:"+t.after+")":""),"g")}return t._compiled}function ut(t,e){return dt(t,e.inConstruct,!0)&&!dt(t,e.notInConstruct,!1)}function dt(t,e,n){if("string"==typeof e&&(e=[e]),!e||0===e.length)return n;let i=-1;for(;++i<e.length;)if(t.includes(e[i]))return!0;return!1}function ht(t,e,n){const i=(n.before||"")+(e||"")+(n.after||""),a=[],r=[],o={};let s=-1;for(;++s<t.unsafe.length;){const e=t.unsafe[s];if(!ut(t.stack,e))continue;const n=lt(e);let r;for(;r=n.exec(i);){const t="before"in e||Boolean(e.atBreak),n="after"in e,i=r.index+(t?r[1].length:0);a.includes(i)?(o[i].before&&!t&&(o[i].before=!1),o[i].after&&!n&&(o[i].after=!1)):(a.push(i),o[i]={before:t,after:n})}}a.sort(ft);let c=n.before?n.before.length:0;const l=i.length-(n.after?n.after.length:0);for(s=-1;++s<a.length;){const t=a[s];t<c||t>=l||(t+1<l&&a[s+1]===t+1&&o[t].after&&!o[t+1].before&&!o[t+1].after||a[s-1]===t-1&&o[t].before&&!o[t-1].before&&!o[t-1].after||(c!==t&&r.push(gt(i.slice(c,t),"\\")),c=t,!/[!-/:-@[-`{-~]/.test(i.charAt(t))||n.encode&&n.encode.includes(i.charAt(t))?(r.push("&#x"+i.charCodeAt(t).toString(16).toUpperCase()+";"),c++):r.push("\\")))}return r.push(gt(i.slice(c,l),n.after)),r.join("")}function ft(t,e){return t-e}function gt(t,e){const n=/\\(?=[!-/:-@[-`{-~])/g,i=[],a=[],r=t+e;let o,s=-1,c=0;for(;o=n.exec(r);)i.push(o.index);for(;++s<i.length;)c!==i[s]&&a.push(t.slice(c,i[s])),a.push("\\"),c=i[s];return a.push(t.slice(c)),a.join("")}var pt=n(48653);function bt(t){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},t)}function mt(){this.buffer()}function yt(t){const e=this.resume(),n=this.stack[this.stack.length-1];n.label=e,n.identifier=(0,_.d)(this.sliceSerialize(t)).toLowerCase()}function vt(t){this.exit(t)}function wt(t){this.enter({type:"footnoteReference",identifier:"",label:""},t)}function xt(){this.buffer()}function Rt(t){const e=this.resume(),n=this.stack[this.stack.length-1];n.label=e,n.identifier=(0,_.d)(this.sliceSerialize(t)).toLowerCase()}function _t(t){this.exit(t)}function kt(t,e,n,i){const a=(0,pt.j)(i);let r=a.move("[^");const o=n.enter("footnoteReference"),s=n.enter("reference");return r+=a.move(ht(n,ot(t),{...a.current(),before:r,after:"]"})),s(),o(),r+=a.move("]"),r}function Et(t,e,n,i){const a=(0,pt.j)(i);let r=a.move("[^");const o=n.enter("footnoteDefinition"),s=n.enter("label");return r+=a.move(ht(n,ot(t),{...a.current(),before:r,after:"]"})),s(),r+=a.move("]:"+(t.children&&t.children.length>0?" ":"")),a.shift(4),r+=a.move((0,ct.Q)(function(t,e,n){const i=e.indexStack,a=t.children||[],r=e.createTracker(n),o=[];let s=-1;for(i.push(-1);++s<a.length;){const n=a[s];i[i.length-1]=s,o.push(r.move(e.handle(n,t,e,{before:"\n",after:"\n",...r.current()}))),"list"!==n.type&&(e.bulletLastUsed=void 0),s<a.length-1&&o.push(r.move(st(n,a[s+1],t,e)))}return i.pop(),o.join("")}(t,n,a.current()),Ct)),o(),r}function Ct(t,e,n){return 0===e?t:(n?"":" ")+t}kt.peek=function(){return"["};var St=n(87891);Dt.peek=function(){return"~"};const Tt={canContainEols:["delete"],enter:{strikethrough:function(t){this.enter({type:"delete",children:[]},t)}},exit:{strikethrough:function(t){this.exit(t)}}},At={unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"]}],handlers:{delete:Dt}};function Dt(t,e,n,i){const a=(0,pt.j)(i),r=n.enter("strikethrough");let o=a.move("~~");return o+=(0,St.p)(t,n,{...a.current(),before:o,after:"~"}),o+=a.move("~~"),r(),o}function It(t,e,n){let i=t.value||"",a="`",r=-1;for(;new RegExp("(^|[^`])"+a+"([^`]|$)").test(i);)a+="`";for(/[^ \r\n]/.test(i)&&(/^[ \r\n]/.test(i)&&/[ \r\n]$/.test(i)||/^`|`$/.test(i))&&(i=" "+i+" ");++r<n.unsafe.length;){const t=n.unsafe[r],e=lt(t);let a;if(t.atBreak)for(;a=e.exec(i);){let t=a.index;10===i.charCodeAt(t)&&13===i.charCodeAt(t-1)&&t--,i=i.slice(0,t)+" "+i.slice(a.index+1)}}return a+i+a}function Lt(t){return t.length}function Ot(t){const e="string"==typeof t?t.codePointAt(0):0;return 67===e||99===e?99:76===e||108===e?108:82===e||114===e?114:0}It.peek=function(){return"`"};const Mt={enter:{table:function(t){const e=t._align;this.enter({type:"table",align:e.map((t=>"none"===t?null:t)),children:[]},t),this.setData("inTable",!0)},tableData:Bt,tableHeader:Bt,tableRow:function(t){this.enter({type:"tableRow",children:[]},t)}},exit:{codeText:function(t){let e=this.resume();this.getData("inTable")&&(e=e.replace(/\\([\\|])/g,Pt));this.stack[this.stack.length-1].value=e,this.exit(t)},table:function(t){this.exit(t),this.setData("inTable")},tableData:Nt,tableHeader:Nt,tableRow:Nt}};function Nt(t){this.exit(t)}function Bt(t){this.enter({type:"tableCell",children:[]},t)}function Pt(t,e){return"|"===e?e:t}function Ft(t){const e=t||{},n=e.tableCellPadding,i=e.tablePipeAlign,a=e.stringLength,r=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:"\n",inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[\t :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{table:function(t,e,n,i){return s(function(t,e,n){const i=t.children;let a=-1;const r=[],o=e.enter("table");for(;++a<i.length;)r[a]=c(i[a],e,n);return o(),r}(t,n,i),t.align)},tableRow:function(t,e,n,i){const a=s([c(t,n,i)]);return a.slice(0,a.indexOf("\n"))},tableCell:o,inlineCode:function(t,e,n){let i=It(t,0,n);n.stack.includes("tableCell")&&(i=i.replace(/\|/g,"\\$&"));return i}}};function o(t,e,n,i){const a=n.enter("tableCell"),o=n.enter("phrasing"),s=(0,St.p)(t,n,{...i,before:r,after:r});return o(),a(),s}function s(t,e){return function(t,e={}){const n=(e.align||[]).concat(),i=e.stringLength||Lt,a=[],r=[],o=[],s=[];let c=0,l=-1;for(;++l<t.length;){const n=[],a=[];let d=-1;for(t[l].length>c&&(c=t[l].length);++d<t[l].length;){const r=null==(u=t[l][d])?"":String(u);if(!1!==e.alignDelimiters){const t=i(r);a[d]=t,(void 0===s[d]||t>s[d])&&(s[d]=t)}n.push(r)}r[l]=n,o[l]=a}var u;let d=-1;if("object"==typeof n&&"length"in n)for(;++d<c;)a[d]=Ot(n[d]);else{const t=Ot(n);for(;++d<c;)a[d]=t}d=-1;const h=[],f=[];for(;++d<c;){const t=a[d];let n="",i="";99===t?(n=":",i=":"):108===t?n=":":114===t&&(i=":");let r=!1===e.alignDelimiters?1:Math.max(1,s[d]-n.length-i.length);const o=n+"-".repeat(r)+i;!1!==e.alignDelimiters&&(r=n.length+r+i.length,r>s[d]&&(s[d]=r),f[d]=r),h[d]=o}r.splice(1,0,h),o.splice(1,0,f),l=-1;const g=[];for(;++l<r.length;){const t=r[l],n=o[l];d=-1;const i=[];for(;++d<c;){const r=t[d]||"";let o="",l="";if(!1!==e.alignDelimiters){const t=s[d]-(n[d]||0),e=a[d];114===e?o=" ".repeat(t):99===e?t%2?(o=" ".repeat(t/2+.5),l=" ".repeat(t/2-.5)):(o=" ".repeat(t/2),l=o):l=" ".repeat(t)}!1===e.delimiterStart||d||i.push("|"),!1===e.padding||!1===e.alignDelimiters&&""===r||!1===e.delimiterStart&&!d||i.push(" "),!1!==e.alignDelimiters&&i.push(o),i.push(r),!1!==e.alignDelimiters&&i.push(l),!1!==e.padding&&i.push(" "),!1===e.delimiterEnd&&d===c-1||i.push("|")}g.push(!1===e.delimiterEnd?i.join("").replace(/ +$/,""):i.join(""))}return g.join("\n")}(t,{align:e,alignDelimiters:i,padding:n,stringLength:a})}function c(t,e,n){const i=t.children;let a=-1;const r=[],s=e.enter("tableRow");for(;++a<i.length;)r[a]=o(i[a],0,e,n);return s(),r}}function jt(t,e,n,i){const a=function(t){const e=t.options.listItemIndent||"tab";if(1===e||"1"===e)return"one";if("tab"!==e&&"one"!==e&&"mixed"!==e)throw new Error("Cannot serialize items with `"+e+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return e}(n);let r=n.bulletCurrent||function(t){const e=t.options.bullet||"*";if("*"!==e&&"+"!==e&&"-"!==e)throw new Error("Cannot serialize items with `"+e+"` for `options.bullet`, expected `*`, `+`, or `-`");return e}(n);e&&"list"===e.type&&e.ordered&&(r=("number"==typeof e.start&&e.start>-1?e.start:1)+(!1===n.options.incrementListMarker?0:e.children.indexOf(t))+r);let o=r.length+1;("tab"===a||"mixed"===a&&(e&&"list"===e.type&&e.spread||t.spread))&&(o=4*Math.ceil(o/4));const s=n.createTracker(i);s.move(r+" ".repeat(o-r.length)),s.shift(o);const c=n.enter("listItem"),l=n.indentLines(n.containerFlow(t,s.current()),(function(t,e,n){if(e)return(n?"":" ".repeat(o))+t;return(n?r:r+" ".repeat(o-r.length))+t}));return c(),l}const $t={exit:{taskListCheckValueChecked:Ht,taskListCheckValueUnchecked:Ht,paragraph:function(t){const e=this.stack[this.stack.length-2];if(e&&"listItem"===e.type&&"boolean"==typeof e.checked){const t=this.stack[this.stack.length-1],n=t.children[0];if(n&&"text"===n.type){const i=e.children;let a,r=-1;for(;++r<i.length;){const t=i[r];if("paragraph"===t.type){a=t;break}}a===t&&(n.value=n.value.slice(1),0===n.value.length?t.children.shift():t.position&&n.position&&"number"==typeof n.position.start.offset&&(n.position.start.column++,n.position.start.offset++,t.position.start=Object.assign({},n.position.start)))}}this.exit(t)}}},zt={unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:function(t,e,n,i){const a=t.children[0],r="boolean"==typeof t.checked&&a&&"paragraph"===a.type,o="["+(t.checked?"x":" ")+"] ",s=(0,pt.j)(i);r&&s.move(o);let c=jt(t,e,n,{...i,...s.current()});r&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,(function(t){return t+o})));return c}}};function Ht(t){this.stack[this.stack.length-2].checked="taskListCheckValueChecked"===t.type}function Ut(t={}){const e=this.data();function n(t,n){(e[t]?e[t]:e[t]=[]).push(n)}n("micromarkExtensions",function(t){return(0,i.W)([g,{document:{91:{tokenize:T,continuation:{tokenize:A},exit:D}},text:{91:{tokenize:S},93:{add:"after",tokenize:E,resolveTo:C}}},M(t),P,H])}(t)),n("fromMarkdownExtensions",[Q,{enter:{gfmFootnoteDefinition:bt,gfmFootnoteDefinitionLabelString:mt,gfmFootnoteCall:wt,gfmFootnoteCallString:xt},exit:{gfmFootnoteDefinition:vt,gfmFootnoteDefinitionLabelString:yt,gfmFootnoteCall:_t,gfmFootnoteCallString:Rt}},Tt,Mt,$t]),n("toMarkdownExtensions",function(t){return{extensions:[tt,{unsafe:[{character:"[",inConstruct:["phrasing","label","reference"]}],handlers:{footnoteDefinition:Et,footnoteReference:kt}},At,Ft(t),zt]}}(t))}},96093:(t,e,n)=>{"use strict";n.d(e,{O:()=>i});const i=function(t){if(null==t)return r;if("string"==typeof t)return function(t){return a(e);function e(e){return e&&e.type===t}}(t);if("object"==typeof t)return Array.isArray(t)?function(t){const e=[];let n=-1;for(;++n<t.length;)e[n]=i(t[n]);return a(r);function r(...t){let n=-1;for(;++n<e.length;)if(e[n].call(this,...t))return!0;return!1}}(t):function(t){return a(e);function e(e){let n;for(n in t)if(e[n]!==t[n])return!1;return!0}}(t);if("function"==typeof t)return a(t);throw new Error("Expected function, string, or object as test")};function a(t){return function(e,...n){return Boolean(e&&"object"==typeof e&&"type"in e&&Boolean(t.call(this,e,...n)))}}function r(){return!0}},70905:(t,e,n)=>{"use strict";n.r(e),n.d(e,{remove:()=>r});var i=n(96093);const a=[],r=function(t,e,n){const r=(0,i.O)(n||e),o=!e||void 0===e.cascade||null===e.cascade||e.cascade;return function t(e,n,i){const s=e.children||a;let c=-1,l=0;if(r(e,n,i))return null;if(s.length>0){for(;++c<s.length;)t(s[c],c,e)&&(s[l++]=s[c]);if(o&&!l)return null;s.length=l}return e}(t)}},20557:(t,e,n)=>{"use strict";n.d(e,{S4:()=>a});var i=n(96093);const a=function(t,e,n,a){"function"==typeof e&&"function"!=typeof n&&(a=n,n=e,e=null);const r=(0,i.O)(e),o=a?-1:1;!function t(i,s,c){const l=i&&"object"==typeof i?i:{};if("string"==typeof l.type){const t="string"==typeof l.tagName?l.tagName:"string"==typeof l.name?l.name:void 0;Object.defineProperty(u,"name",{value:"node ("+i.type+(t?"<"+t+">":"")+")"})}return u;function u(){let l,u,d,h=[];if((!e||r(i,s,c[c.length-1]||null))&&(h=function(t){if(Array.isArray(t))return t;if("number"==typeof t)return[true,t];return[t]}(n(i,c)),false===h[0]))return h;if(i.children&&"skip"!==h[0])for(u=(a?i.children.length:-1)+o,d=c.concat(i);u>-1&&u<i.children.length;){if(l=t(i.children[u],u,d)(),false===l[0])return l;u="number"==typeof l[1]?l[1]:u+o}return h}}(t,void 0,[])()}},68914:t=>{"use strict";t.exports=JSON.parse('["md","markdown","mdown","mkdn","mkd","mdwn","mkdown","ron"]')}}]); \ No newline at end of file diff --git a/assets/js/6894.61d518cf.js.LICENSE.txt b/assets/js/6894.61d518cf.js.LICENSE.txt new file mode 100644 index 00000000000..b4b09e0d654 --- /dev/null +++ b/assets/js/6894.61d518cf.js.LICENSE.txt @@ -0,0 +1,64 @@ +/*! + Event object based on jQuery events, MIT license + + https://jquery.org/license/ + https://tldrlegal.com/license/mit-license + https://github.com/jquery/jquery/blob/master/src/event.js + */ + +/*! + * Wait for document loaded before starting the execution + */ + +/*! + Copyright (c) 2015 Jed Watson. + Based on code that is Copyright 2013-2015, Facebook, Inc. + All rights reserved. +*/ + +/*! + * Adapted from jQuery UI core + * + * http://jqueryui.com + * + * Copyright 2014 jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/category/ui-core/ + */ + +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh <https://feross.org> + * @license MIT + */ + +/*! + * Wait for document loaded before starting the execution + */ + +/*! + * regjsgen 0.5.2 + * Copyright 2014-2020 Benjamin Tan <https://ofcr.se/> + * Available under the MIT license <https://github.com/bnjmnt4n/regjsgen/blob/master/LICENSE-MIT.txt> + */ + +/*! +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) +*/ + +/*! @license DOMPurify 2.4.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.3/LICENSE */ + +/*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */ + +/*! Check if previously processed */ + +/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */ + +/*! https://mths.be/regenerate v1.4.2 by @mathias | MIT license */ + +/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ diff --git a/assets/js/6923.4bd4b036.js b/assets/js/6923.4bd4b036.js new file mode 100644 index 00000000000..eba8bec831e --- /dev/null +++ b/assets/js/6923.4bd4b036.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6923],{66923:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>m,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>n});var o=s(87462),a=(s(67294),s(3905));s(45475);const i={title:"Emacs",slug:"/editors/emacs"},l=void 0,r={unversionedId:"editors/emacs",id:"editors/emacs",title:"Emacs",description:"flow-for-emacs",source:"@site/docs/editors/emacs.md",sourceDirName:"editors",slug:"/editors/emacs",permalink:"/en/docs/editors/emacs",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/editors/emacs.md",tags:[],version:"current",frontMatter:{title:"Emacs",slug:"/editors/emacs"},sidebar:"docsSidebar",previous:{title:"Vim",permalink:"/en/docs/editors/vim"},next:{title:"WebStorm",permalink:"/en/docs/editors/webstorm"}},m={},n=[{value:"flow-for-emacs",id:"toc-flow-for-emacs",level:3},{value:"Requirements",id:"toc-emacs-requirements",level:3},{value:"Installation",id:"toc-emacs-installation",level:3}],c={toc:n};function d(e){let{components:t,...s}=e;return(0,a.mdx)("wrapper",(0,o.Z)({},c,s,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("h3",{id:"toc-flow-for-emacs"},"flow-for-emacs"),(0,a.mdx)("p",null,"You can add support for Flow in Emacs by using ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/flowtype/flow-for-emacs"},"flow-for-emacs")),(0,a.mdx)("h3",{id:"toc-emacs-requirements"},"Requirements"),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},"Requires Flow to be installed and available on your path."),(0,a.mdx)("li",{parentName:"ul"},"Requires projects containing JavaScript files to be initialised with flow init."),(0,a.mdx)("li",{parentName:"ul"},"Requires JavaScript files to be marked with /",(0,a.mdx)("em",{parentName:"li"}," @flow "),"/ at the top.")),(0,a.mdx)("h3",{id:"toc-emacs-installation"},"Installation"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-sh"},'cd ~/.emacs.d/\ngit clone https://github.com/flowtype/flow-for-emacs.git\necho -e "\\n(load-file \\"~/.emacs.d/flow-for-emacs/flow.el\\")" >> ~/.emacs\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6943.36e5dcf5.js b/assets/js/6943.36e5dcf5.js new file mode 100644 index 00000000000..4c1880510dd --- /dev/null +++ b/assets/js/6943.36e5dcf5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6943],{56943:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>n,contentTitle:()=>i,default:()=>w,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var s=t(87462),r=(t(67294),t(3905));const a={title:"A More Responsive Flow","short-title":"A More Responsive Flow",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/a-more-responsive-flow-1a8cb01aec11"},i=void 0,l={permalink:"/blog/2019/2/8/A-More-Responsive-Flow",source:"@site/blog/2019-2-8-A-More-Responsive-Flow.md",title:"A More Responsive Flow",description:"Flow 0.92 improves on the Flow developer experience.",date:"2019-02-08T00:00:00.000Z",formattedDate:"February 8, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{title:"A More Responsive Flow","short-title":"A More Responsive Flow",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/a-more-responsive-flow-1a8cb01aec11"},prevItem:{title:"Upgrading Flow Codebases",permalink:"/blog/2019/4/9/Upgrading-Flow-Codebases"},nextItem:{title:"What the Flow Team Has Been Up To",permalink:"/blog/2019/1/28/What-the-flow-team-has-been-up-to"}},n={authorsImageUrls:[void 0]},p=[],m={toc:p};function w(e){let{components:o,...t}=e;return(0,r.mdx)("wrapper",(0,s.Z)({},m,t,{components:o,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Flow 0.92 improves on the Flow developer experience."))}w.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6945.7839b727.js b/assets/js/6945.7839b727.js new file mode 100644 index 00000000000..7d43e5bdef2 --- /dev/null +++ b/assets/js/6945.7839b727.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6945],{46945:(e,s,w)=>{w.r(s)}}]); \ No newline at end of file diff --git a/assets/js/6956.75567b7a.js b/assets/js/6956.75567b7a.js new file mode 100644 index 00000000000..8c1633eb1c6 --- /dev/null +++ b/assets/js/6956.75567b7a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6956],{86956:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>n,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>p,toc:()=>l});var s=o(87462),a=(o(67294),o(3905));const r={title:"Private Object Properties Using Flow\u2019s Opaque Type Aliases","short-title":"Private Props w/ Opaque Types",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/private-object-properties-using-flows-opaque-type-aliases-e0100e9b0282"},i=void 0,p={permalink:"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases",source:"@site/blog/2017-08-25-Private-Object-Properties-Using-Flows-Opaque-Type-Aliases.md",title:"Private Object Properties Using Flow\u2019s Opaque Type Aliases",description:"In the last few weeks, a proposal for private class fields in Javascript reached",date:"2017-08-25T00:00:00.000Z",formattedDate:"August 25, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Private Object Properties Using Flow\u2019s Opaque Type Aliases","short-title":"Private Props w/ Opaque Types",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/private-object-properties-using-flows-opaque-type-aliases-e0100e9b0282"},prevItem:{title:"Typing Higher-Order Components in Recompose With Flow",permalink:"/blog/2017/09/03/Flow-Support-in-Recompose"},nextItem:{title:"Even Better Support for React in Flow",permalink:"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow"}},n={authorsImageUrls:[void 0]},l=[],u={toc:l};function c(e){let{components:t,...o}=e;return(0,a.mdx)("wrapper",(0,s.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"In the last few weeks, a proposal for ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/tc39/proposal-class-fields"},"private class fields in Javascript")," reached\nstage 3. This is going to be a great way to hide implementation details away\nfrom users of your classes. However, locking yourself in to an OOP style of\nprogramming is not always ideal if you prefer a more functional style. Let\u2019s\ntalk about how you can use Flow\u2019s ",(0,a.mdx)("a",{parentName:"p",href:"https://flow.org/en/docs/types/opaque-types/"},"opaque type aliases")," to get private properties\non any object type."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6990.60c608ae.js b/assets/js/6990.60c608ae.js new file mode 100644 index 00000000000..479af8d1e2d --- /dev/null +++ b/assets/js/6990.60c608ae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6990],{66990:(e,r,i)=>{i.r(r),i.d(r,{assets:()=>l,contentTitle:()=>n,default:()=>m,frontMatter:()=>t,metadata:()=>a,toc:()=>p});var o=i(87462),s=(i(67294),i(3905));const t={title:"Making Flow error suppressions more specific","short-title":"Making Flow error suppressions",author:"Daniel Sainati","medium-link":"https://medium.com/flow-type/making-flow-error-suppressions-more-specific-280aa4e3c95c"},n=void 0,a={permalink:"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific",source:"@site/blog/2020-03-16-Making-Flow-error-suppressions-more-specific.md",title:"Making Flow error suppressions more specific",description:"We\u2019re improving Flow error suppressions so that they don\u2019t accidentally hide errors.",date:"2020-03-16T00:00:00.000Z",formattedDate:"March 16, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Daniel Sainati"}],frontMatter:{title:"Making Flow error suppressions more specific","short-title":"Making Flow error suppressions",author:"Daniel Sainati","medium-link":"https://medium.com/flow-type/making-flow-error-suppressions-more-specific-280aa4e3c95c"},prevItem:{title:"Types-First: A Scalable New Architecture for Flow",permalink:"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow"},nextItem:{title:"What we\u2019re building in 2020",permalink:"/blog/2020/03/09/What-were-building-in-2020"}},l={authorsImageUrls:[void 0]},p=[],c={toc:p};function m(e){let{components:r,...i}=e;return(0,s.mdx)("wrapper",(0,o.Z)({},c,i,{components:r,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"We\u2019re improving Flow error suppressions so that they don\u2019t accidentally hide errors."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7043.6c28e0ba.js b/assets/js/7043.6c28e0ba.js new file mode 100644 index 00000000000..e3602842af2 --- /dev/null +++ b/assets/js/7043.6c28e0ba.js @@ -0,0 +1,2 @@ +/*! For license information please see 7043.6c28e0ba.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7043],{17043:(e,t,s)=>{s.r(t),s.d(t,{conf:()=>n,language:()=>i});var n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))"),end:new RegExp("^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))")}}},i={defaultToken:"",tokenPostfix:".java",keywords:["abstract","continue","for","new","switch","assert","default","goto","package","synchronized","boolean","do","if","private","this","break","double","implements","protected","throw","byte","else","import","public","throws","case","enum","instanceof","return","transient","catch","extends","int","short","try","char","final","interface","static","void","class","finally","long","strictfp","volatile","const","float","native","super","while","true","false","yield","record","sealed","non-sealed","permits"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[["non-sealed","keyword.non-sealed"],[/[a-zA-Z_$][\w$]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string","@multistring"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],multistring:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"""/,"string","@pop"],[/./,"string"]]}}}}]); \ No newline at end of file diff --git a/assets/js/7043.6c28e0ba.js.LICENSE.txt b/assets/js/7043.6c28e0ba.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/7043.6c28e0ba.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/7043.c99b557e.js b/assets/js/7043.c99b557e.js new file mode 100644 index 00000000000..92adf763fdb --- /dev/null +++ b/assets/js/7043.c99b557e.js @@ -0,0 +1,240 @@ +"use strict"; +exports.id = 7043; +exports.ids = [7043]; +exports.modules = { + +/***/ 17043: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/java/java.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "<", close: ">" } + ], + folding: { + markers: { + start: new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))"), + end: new RegExp("^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".java", + keywords: [ + "abstract", + "continue", + "for", + "new", + "switch", + "assert", + "default", + "goto", + "package", + "synchronized", + "boolean", + "do", + "if", + "private", + "this", + "break", + "double", + "implements", + "protected", + "throw", + "byte", + "else", + "import", + "public", + "throws", + "case", + "enum", + "instanceof", + "return", + "transient", + "catch", + "extends", + "int", + "short", + "try", + "char", + "final", + "interface", + "static", + "void", + "class", + "finally", + "long", + "strictfp", + "volatile", + "const", + "float", + "native", + "super", + "while", + "true", + "false", + "yield", + "record", + "sealed", + "non-sealed", + "permits" + ], + operators: [ + "=", + ">", + "<", + "!", + "~", + "?", + ":", + "==", + "<=", + ">=", + "!=", + "&&", + "||", + "++", + "--", + "+", + "-", + "*", + "/", + "&", + "|", + "^", + "%", + "<<", + ">>", + ">>>", + "+=", + "-=", + "*=", + "/=", + "&=", + "|=", + "^=", + "%=", + "<<=", + ">>=", + ">>>=" + ], + symbols: /[=><!~?:&|+\-*\/\^%]+/, + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + digits: /\d+(_+\d+)*/, + octaldigits: /[0-7]+(_+[0-7]+)*/, + binarydigits: /[0-1]+(_+[0-1]+)*/, + hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/, + tokenizer: { + root: [ + ["non-sealed", "keyword.non-sealed"], + [ + /[a-zA-Z_$][\w$]*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "identifier" + } + } + ], + { include: "@whitespace" }, + [/[{}()\[\]]/, "@brackets"], + [/[<>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/@\s*[a-zA-Z_\$][\w\$]*/, "annotation"], + [/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/, "number.float"], + [/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/, "number.float"], + [/0[xX](@hexdigits)[Ll]?/, "number.hex"], + [/0(@octaldigits)[Ll]?/, "number.octal"], + [/0[bB](@binarydigits)[Ll]?/, "number.binary"], + [/(@digits)[fFdD]/, "number.float"], + [/(@digits)[lL]?/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"""/, "string", "@multistring"], + [/"/, "string", "@string"], + [/'[^\\']'/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@javadoc"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + javadoc: [ + [/[^\/*]+/, "comment.doc"], + [/\/\*/, "comment.doc.invalid"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ], + multistring: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"""/, "string", "@pop"], + [/./, "string"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/7085.2da88da6.js b/assets/js/7085.2da88da6.js new file mode 100644 index 00000000000..dc574a61c7c --- /dev/null +++ b/assets/js/7085.2da88da6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7085],{7085:e=>{e.exports=JSON.parse('{"name":"docusaurus-theme-search-algolia","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/7131.af65a3d6.js b/assets/js/7131.af65a3d6.js new file mode 100644 index 00000000000..1877dad4d82 --- /dev/null +++ b/assets/js/7131.af65a3d6.js @@ -0,0 +1,2 @@ +/*! For license information please see 7131.af65a3d6.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7131],{47131:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>r,language:()=>i});var o=`\\b${"[_a-zA-Z][_a-zA-Z0-9]*"}\\b`,r={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'"},{open:"'''",close:"'''"}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:"'''",close:"'''",notIn:["string","comment"]}],autoCloseBefore:":.,=}])' \n\t",indentationRules:{increaseIndentPattern:new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"),decreaseIndentPattern:new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$")}},i={defaultToken:"",tokenPostfix:".bicep",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],symbols:/[=><!~?:&|+\-*/^%]+/,keywords:["targetScope","resource","module","param","var","output","for","in","if","existing"],namedLiterals:["true","false","null"],escapes:"\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)",tokenizer:{root:[{include:"@expression"},{include:"@whitespace"}],stringVerbatim:[{regex:"(|'|'')[^']",action:{token:"string"}},{regex:"'''",action:{token:"string.quote",next:"@pop"}}],stringLiteral:[{regex:"\\${",action:{token:"delimiter.bracket",next:"@bracketCounting"}},{regex:"[^\\\\'$]+",action:{token:"string"}},{regex:"@escapes",action:{token:"string.escape"}},{regex:"\\\\.",action:{token:"string.escape.invalid"}},{regex:"'",action:{token:"string",next:"@pop"}}],bracketCounting:[{regex:"{",action:{token:"delimiter.bracket",next:"@bracketCounting"}},{regex:"}",action:{token:"delimiter.bracket",next:"@pop"}},{include:"expression"}],comment:[{regex:"[^\\*]+",action:{token:"comment"}},{regex:"\\*\\/",action:{token:"comment",next:"@pop"}},{regex:"[\\/*]",action:{token:"comment"}}],whitespace:[{regex:"[ \\t\\r\\n]"},{regex:"\\/\\*",action:{token:"comment",next:"@comment"}},{regex:"\\/\\/.*$",action:{token:"comment"}}],expression:[{regex:"'''",action:{token:"string.quote",next:"@stringVerbatim"}},{regex:"'",action:{token:"string.quote",next:"@stringLiteral"}},{regex:"[0-9]+",action:{token:"number"}},{regex:o,action:{cases:{"@keywords":{token:"keyword"},"@namedLiterals":{token:"keyword"},"@default":{token:"identifier"}}}}]}}}}]); \ No newline at end of file diff --git a/assets/js/7131.af65a3d6.js.LICENSE.txt b/assets/js/7131.af65a3d6.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/7131.af65a3d6.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/7131.ef199ac3.js b/assets/js/7131.ef199ac3.js new file mode 100644 index 00000000000..2560a0b74e3 --- /dev/null +++ b/assets/js/7131.ef199ac3.js @@ -0,0 +1,134 @@ +"use strict"; +exports.id = 7131; +exports.ids = [7131]; +exports.modules = { + +/***/ 47131: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/bicep/bicep.ts +var bounded = (text) => `\\b${text}\\b`; +var identifierStart = "[_a-zA-Z]"; +var identifierContinue = "[_a-zA-Z0-9]"; +var identifier = bounded(`${identifierStart}${identifierContinue}*`); +var keywords = [ + "targetScope", + "resource", + "module", + "param", + "var", + "output", + "for", + "in", + "if", + "existing" +]; +var namedLiterals = ["true", "false", "null"]; +var nonCommentWs = `[ \\t\\r\\n]`; +var numericLiteral = `[0-9]+`; +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "'", close: "'" }, + { open: "'''", close: "'''" } + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: "'''", close: "'''", notIn: ["string", "comment"] } + ], + autoCloseBefore: ":.,=}])' \n ", + indentationRules: { + increaseIndentPattern: new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"), + decreaseIndentPattern: new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$") + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".bicep", + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + symbols: /[=><!~?:&|+\-*/^%]+/, + keywords, + namedLiterals, + escapes: `\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\\${)`, + tokenizer: { + root: [{ include: "@expression" }, { include: "@whitespace" }], + stringVerbatim: [ + { regex: `(|'|'')[^']`, action: { token: "string" } }, + { regex: `'''`, action: { token: "string.quote", next: "@pop" } } + ], + stringLiteral: [ + { regex: `\\\${`, action: { token: "delimiter.bracket", next: "@bracketCounting" } }, + { regex: `[^\\\\'$]+`, action: { token: "string" } }, + { regex: "@escapes", action: { token: "string.escape" } }, + { regex: `\\\\.`, action: { token: "string.escape.invalid" } }, + { regex: `'`, action: { token: "string", next: "@pop" } } + ], + bracketCounting: [ + { regex: `{`, action: { token: "delimiter.bracket", next: "@bracketCounting" } }, + { regex: `}`, action: { token: "delimiter.bracket", next: "@pop" } }, + { include: "expression" } + ], + comment: [ + { regex: `[^\\*]+`, action: { token: "comment" } }, + { regex: `\\*\\/`, action: { token: "comment", next: "@pop" } }, + { regex: `[\\/*]`, action: { token: "comment" } } + ], + whitespace: [ + { regex: nonCommentWs }, + { regex: `\\/\\*`, action: { token: "comment", next: "@comment" } }, + { regex: `\\/\\/.*$`, action: { token: "comment" } } + ], + expression: [ + { regex: `'''`, action: { token: "string.quote", next: "@stringVerbatim" } }, + { regex: `'`, action: { token: "string.quote", next: "@stringLiteral" } }, + { regex: numericLiteral, action: { token: "number" } }, + { + regex: identifier, + action: { + cases: { + "@keywords": { token: "keyword" }, + "@namedLiterals": { token: "keyword" }, + "@default": { token: "identifier" } + } + } + } + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/7210.dccd8a9d.js b/assets/js/7210.dccd8a9d.js new file mode 100644 index 00000000000..bf27f82fb2d --- /dev/null +++ b/assets/js/7210.dccd8a9d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7210],{97210:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>s});var o=i(87462),t=(i(67294),i(3905));i(45475);const r={title:".flowconfig [ignore]",slug:"/config/ignore"},l=void 0,a={unversionedId:"config/ignore",id:"config/ignore",title:".flowconfig [ignore]",description:"The [ignore] section in a .flowconfig file tells Flow to ignore files",source:"@site/docs/config/ignore.md",sourceDirName:"config",slug:"/config/ignore",permalink:"/en/docs/config/ignore",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/config/ignore.md",tags:[],version:"current",frontMatter:{title:".flowconfig [ignore]",slug:"/config/ignore"},sidebar:"docsSidebar",previous:{title:".flowconfig [include]",permalink:"/en/docs/config/include"},next:{title:".flowconfig [untyped]",permalink:"/en/docs/config/untyped"}},d={},s=[{value:"Exclusions",id:"toc-ignore-exclusions",level:3}],m={toc:s};function p(e){let{components:n,...i}=e;return(0,t.mdx)("wrapper",(0,o.Z)({},m,i,{components:n,mdxType:"MDXLayout"}),(0,t.mdx)("p",null,"The ",(0,t.mdx)("inlineCode",{parentName:"p"},"[ignore]")," section in a ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file tells Flow to ignore files\nmatching the specified regular expressions when type checking your code. By\ndefault, nothing is ignored."),(0,t.mdx)("p",null,"Things to keep in mind:"),(0,t.mdx)("ol",null,(0,t.mdx)("li",{parentName:"ol"},"These are ",(0,t.mdx)("a",{parentName:"li",href:"http://caml.inria.fr/pub/docs/manual-ocaml/libref/Str.html#TYPEregexp"},"OCaml regular expressions"),"."),(0,t.mdx)("li",{parentName:"ol"},"These regular expressions match against absolute paths. They probably should\nstart with ",(0,t.mdx)("inlineCode",{parentName:"li"},".*")),(0,t.mdx)("li",{parentName:"ol"},"Ignores are processed AFTER includes. If you both include and ignore a file\nit will be ignored.")),(0,t.mdx)("p",null,"An example ",(0,t.mdx)("inlineCode",{parentName:"p"},"[ignore]")," section might look like:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[ignore]\n.*/__tests__/.*\n.*/src/\\(foo\\|bar\\)/.*\n.*\\.ignore\\.js\n")),(0,t.mdx)("p",null,"This ",(0,t.mdx)("inlineCode",{parentName:"p"},"[ignore]")," section will ignore:"),(0,t.mdx)("ol",null,(0,t.mdx)("li",{parentName:"ol"},"Any file or directory under a directory named ",(0,t.mdx)("inlineCode",{parentName:"li"},"__tests__")),(0,t.mdx)("li",{parentName:"ol"},"Any file or directory under ",(0,t.mdx)("inlineCode",{parentName:"li"},".*/src/foo")," or under ",(0,t.mdx)("inlineCode",{parentName:"li"},".*/src/bar")),(0,t.mdx)("li",{parentName:"ol"},"Any file that ends with the extension ",(0,t.mdx)("inlineCode",{parentName:"li"},".ignore.js"))),(0,t.mdx)("p",null,"You may use the ",(0,t.mdx)("inlineCode",{parentName:"p"},"<PROJECT_ROOT>")," placeholder in your regular expressions.\nAt runtime, Flow will treat the placeholder as if it were the absolute\npath to the project's root directory. This is useful for writing regular\nexpressions that are relative rather than absolute."),(0,t.mdx)("p",null,"For example, you can write:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[ignore]\n<PROJECT_ROOT>/__tests__/.*\n")),(0,t.mdx)("p",null,"Which would ignore any file or directory under the directory named ",(0,t.mdx)("inlineCode",{parentName:"p"},"__tests__/"),"\nwithin the project root. However, unlike the previous example's\n",(0,t.mdx)("inlineCode",{parentName:"p"},".*/__tests__/.*"),", it would NOT ignore files or directories under other\ndirectories named ",(0,t.mdx)("inlineCode",{parentName:"p"},"__tests__/"),", like ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/__tests__/"),"."),(0,t.mdx)("h3",{id:"toc-ignore-exclusions"},"Exclusions"),(0,t.mdx)("p",null,'Sometimes you may want to ignore all files inside a directory with the exception of a few. An optional prefix "!" which negates the pattern may help. With this, any matching file excluded by a previous pattern will become included again.'),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[ignore]\n<PROJECT_ROOT>/node_modules/.*\n!<PROJECT_ROOT>/node_modules/not-ignored-package-A/.*\n!<PROJECT_ROOT>/node_modules/not-ignored-package-B/.*\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7216.82683887.js b/assets/js/7216.82683887.js new file mode 100644 index 00000000000..5b779300772 --- /dev/null +++ b/assets/js/7216.82683887.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7216],{17216:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>m,frontMatter:()=>o,metadata:()=>d,toc:()=>p});var i=t(87462),a=(t(67294),t(3905));t(45475);const o={title:".flowconfig [untyped]",slug:"/config/untyped"},r=void 0,d={unversionedId:"config/untyped",id:"config/untyped",title:".flowconfig [untyped]",description:"The [untyped] section in a .flowconfig file tells Flow to not typecheck files",source:"@site/docs/config/untyped.md",sourceDirName:"config",slug:"/config/untyped",permalink:"/en/docs/config/untyped",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/config/untyped.md",tags:[],version:"current",frontMatter:{title:".flowconfig [untyped]",slug:"/config/untyped"},sidebar:"docsSidebar",previous:{title:".flowconfig [ignore]",permalink:"/en/docs/config/ignore"},next:{title:".flowconfig [declarations]",permalink:"/en/docs/config/declarations"}},l={},p=[],s={toc:p};function m(e){let{components:n,...t}=e;return(0,a.mdx)("wrapper",(0,i.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"The ",(0,a.mdx)("inlineCode",{parentName:"p"},"[untyped]")," section in a ",(0,a.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file tells Flow to not typecheck files\nmatching the specified regular expressions and instead throw away types and treat modules as ",(0,a.mdx)("a",{parentName:"p",href:"../../types/any"},(0,a.mdx)("inlineCode",{parentName:"a"},"any")),"."),(0,a.mdx)("p",null,"This is different from the ",(0,a.mdx)("a",{parentName:"p",href:"../ignore"},(0,a.mdx)("inlineCode",{parentName:"a"},"[ignore]"))," config section that causes matching files to be ignored by the module resolver,\nwhich inherently makes them un-typechecked, and also unresolvable by ",(0,a.mdx)("inlineCode",{parentName:"p"},"import")," or ",(0,a.mdx)("inlineCode",{parentName:"p"},"require"),".\nWhen ignored, ",(0,a.mdx)("a",{parentName:"p",href:"../libs"},(0,a.mdx)("inlineCode",{parentName:"a"},"[libs]"))," must then be specified for each ",(0,a.mdx)("inlineCode",{parentName:"p"},"import")," using ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow-typed"),", which may not always be desired."),(0,a.mdx)("p",null,"It is also different from the ",(0,a.mdx)("a",{parentName:"p",href:"../declarations"},(0,a.mdx)("inlineCode",{parentName:"a"},"[declarations]"))," section.\nThis also does not typecheck the file contents, but ",(0,a.mdx)("inlineCode",{parentName:"p"},"[declarations]")," does extract and use the signatures of functions, classes, etc, when checking other code."),(0,a.mdx)("p",null,(0,a.mdx)("inlineCode",{parentName:"p"},"[untyped]")," instead causes a file to be ignored by the typechecker as if it had ",(0,a.mdx)("inlineCode",{parentName:"p"},"@noflow")," in it,\nresolve modules as ",(0,a.mdx)("inlineCode",{parentName:"p"},"any")," type, but allow them to NOT be ignored by the module resolver.\nAny matching file is skipped by Flow (not even parsed, like other ",(0,a.mdx)("inlineCode",{parentName:"p"},"@noflow")," files!), but can still be ",(0,a.mdx)("inlineCode",{parentName:"p"},"require()"),"'d."),(0,a.mdx)("p",null,"Things to keep in mind:"),(0,a.mdx)("ol",null,(0,a.mdx)("li",{parentName:"ol"},"These are ",(0,a.mdx)("a",{parentName:"li",href:"http://caml.inria.fr/pub/docs/manual-ocaml/libref/Str.html#TYPEregexp"},"OCaml regular expressions"),"."),(0,a.mdx)("li",{parentName:"ol"},"These regular expressions match against absolute paths. They probably should\nstart with ",(0,a.mdx)("inlineCode",{parentName:"li"},".*"))),(0,a.mdx)("p",null,"An example ",(0,a.mdx)("inlineCode",{parentName:"p"},"[untyped]")," section might look like:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre"},"[untyped]\n.*/third_party/.*\n.*/src/\\(foo\\|bar\\)/.*\n.*\\.untyped\\.js\n")),(0,a.mdx)("p",null,"This ",(0,a.mdx)("inlineCode",{parentName:"p"},"[untyped]")," section will parse:"),(0,a.mdx)("ol",null,(0,a.mdx)("li",{parentName:"ol"},"Any file or directory under a directory named ",(0,a.mdx)("inlineCode",{parentName:"li"},"third_party")),(0,a.mdx)("li",{parentName:"ol"},"Any file or directory under ",(0,a.mdx)("inlineCode",{parentName:"li"},".*/src/foo")," or under ",(0,a.mdx)("inlineCode",{parentName:"li"},".*/src/bar")),(0,a.mdx)("li",{parentName:"ol"},"Any file that ends with the extension ",(0,a.mdx)("inlineCode",{parentName:"li"},".untyped.js"))),(0,a.mdx)("p",null,"You may use the ",(0,a.mdx)("inlineCode",{parentName:"p"},"<PROJECT_ROOT>")," placeholder in your regular expressions.\nAt runtime, Flow will treat the placeholder as if it were the absolute path\nto the project's root directory. This is useful for writing regular\nexpressions that are relative rather than absolute."),(0,a.mdx)("p",null,"For example, you can write:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre"},"[untyped]\n<PROJECT_ROOT>/third_party/.*\n")),(0,a.mdx)("p",null,"Which would parse in declaration mode any file or directory under the directory\nnamed ",(0,a.mdx)("inlineCode",{parentName:"p"},"third_party/")," within the project root. However, unlike the previous\nexample's ",(0,a.mdx)("inlineCode",{parentName:"p"},".*/third_party/.*"),", it would NOT parse files or directories under\ndirectories named ",(0,a.mdx)("inlineCode",{parentName:"p"},"third_party/"),", like ",(0,a.mdx)("inlineCode",{parentName:"p"},"src/third_party/"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/728.1f188d20.js b/assets/js/728.1f188d20.js new file mode 100644 index 00000000000..7cabe4b0877 --- /dev/null +++ b/assets/js/728.1f188d20.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[728],{20728:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>n,contentTitle:()=>a,default:()=>u,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var r=o(87462),s=(o(67294),o(3905));const l={title:"Types-First: A Scalable New Architecture for Flow","short-title":"Types-First: A Scalable New",author:"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-a-scalable-new-architecture-for-flow-3d8c7ba1d4eb"},a=void 0,i={permalink:"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow",source:"@site/blog/2020-05-18-Types-First-A-Scalable-New-Architecture-for-Flow.md",title:"Types-First: A Scalable New Architecture for Flow",description:"Flow Types-First mode is out! It unlocks Flow\u2019s potential at scale by leveraging fully typed module boundaries. Read more in our latest blog post.",date:"2020-05-18T00:00:00.000Z",formattedDate:"May 18, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Panagiotis Vekris"}],frontMatter:{title:"Types-First: A Scalable New Architecture for Flow","short-title":"Types-First: A Scalable New",author:"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-a-scalable-new-architecture-for-flow-3d8c7ba1d4eb"},prevItem:{title:"Flow's Improved Handling of Generic Types",permalink:"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types"},nextItem:{title:"Making Flow error suppressions more specific",permalink:"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific"}},n={authorsImageUrls:[void 0]},c=[],p={toc:c};function u(e){let{components:t,...o}=e;return(0,s.mdx)("wrapper",(0,r.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Flow Types-First mode is out! It unlocks Flow\u2019s potential at scale by leveraging fully typed module boundaries. Read more in our latest blog post."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7287.67d8151a.js b/assets/js/7287.67d8151a.js new file mode 100644 index 00000000000..bdef2a52dbe --- /dev/null +++ b/assets/js/7287.67d8151a.js @@ -0,0 +1,290 @@ +"use strict"; +exports.id = 7287; +exports.ids = [7287]; +exports.modules = { + +/***/ 37287: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38139); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/basic-languages/python/python.ts +var conf = { + comments: { + lineComment: "#", + blockComment: ["'''", "'''"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string", "comment"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + onEnterRules: [ + { + beforeText: new RegExp("^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async|match|case).*?:\\s*$"), + action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent } + } + ], + folding: { + offSide: true, + markers: { + start: new RegExp("^\\s*#region\\b"), + end: new RegExp("^\\s*#endregion\\b") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".python", + keywords: [ + "False", + "None", + "True", + "_", + "and", + "as", + "assert", + "async", + "await", + "break", + "case", + "class", + "continue", + "def", + "del", + "elif", + "else", + "except", + "exec", + "finally", + "for", + "from", + "global", + "if", + "import", + "in", + "is", + "lambda", + "match", + "nonlocal", + "not", + "or", + "pass", + "print", + "raise", + "return", + "try", + "while", + "with", + "yield", + "int", + "float", + "long", + "complex", + "hex", + "abs", + "all", + "any", + "apply", + "basestring", + "bin", + "bool", + "buffer", + "bytearray", + "callable", + "chr", + "classmethod", + "cmp", + "coerce", + "compile", + "complex", + "delattr", + "dict", + "dir", + "divmod", + "enumerate", + "eval", + "execfile", + "file", + "filter", + "format", + "frozenset", + "getattr", + "globals", + "hasattr", + "hash", + "help", + "id", + "input", + "intern", + "isinstance", + "issubclass", + "iter", + "len", + "locals", + "list", + "map", + "max", + "memoryview", + "min", + "next", + "object", + "oct", + "open", + "ord", + "pow", + "print", + "property", + "reversed", + "range", + "raw_input", + "reduce", + "reload", + "repr", + "reversed", + "round", + "self", + "set", + "setattr", + "slice", + "sorted", + "staticmethod", + "str", + "sum", + "super", + "tuple", + "type", + "unichr", + "unicode", + "vars", + "xrange", + "zip", + "__dict__", + "__methods__", + "__members__", + "__class__", + "__bases__", + "__name__", + "__mro__", + "__subclasses__", + "__init__", + "__import__" + ], + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.bracket" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + tokenizer: { + root: [ + { include: "@whitespace" }, + { include: "@numbers" }, + { include: "@strings" }, + [/[,:;]/, "delimiter"], + [/[{}\[\]()]/, "@brackets"], + [/@[a-zA-Z_]\w*/, "tag"], + [ + /[a-zA-Z_]\w*/, + { + cases: { + "@keywords": "keyword", + "@default": "identifier" + } + } + ] + ], + whitespace: [ + [/\s+/, "white"], + [/(^#.*$)/, "comment"], + [/'''/, "string", "@endDocString"], + [/"""/, "string", "@endDblDocString"] + ], + endDocString: [ + [/[^']+/, "string"], + [/\\'/, "string"], + [/'''/, "string", "@popall"], + [/'/, "string"] + ], + endDblDocString: [ + [/[^"]+/, "string"], + [/\\"/, "string"], + [/"""/, "string", "@popall"], + [/"/, "string"] + ], + numbers: [ + [/-?0x([abcdef]|[ABCDEF]|\d)+[lL]?/, "number.hex"], + [/-?(\d*\.)?\d+([eE][+\-]?\d+)?[jJ]?[lL]?/, "number"] + ], + strings: [ + [/'$/, "string.escape", "@popall"], + [/'/, "string.escape", "@stringBody"], + [/"$/, "string.escape", "@popall"], + [/"/, "string.escape", "@dblStringBody"] + ], + stringBody: [ + [/[^\\']+$/, "string", "@popall"], + [/[^\\']+/, "string"], + [/\\./, "string"], + [/'/, "string.escape", "@popall"], + [/\\$/, "string"] + ], + dblStringBody: [ + [/[^\\"]+$/, "string", "@popall"], + [/[^\\"]+/, "string"], + [/\\./, "string"], + [/"/, "string.escape", "@popall"], + [/\\$/, "string"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/7287.94bb8d3f.js b/assets/js/7287.94bb8d3f.js new file mode 100644 index 00000000000..0d65613c823 --- /dev/null +++ b/assets/js/7287.94bb8d3f.js @@ -0,0 +1,2 @@ +/*! For license information please see 7287.94bb8d3f.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7287],{37287:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>g,language:()=>m});var s,r,o=n(38139),i=Object.defineProperty,l=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,p=(e,t,n,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of a(t))c.call(e,r)||r===n||i(e,r,{get:()=>t[r],enumerable:!(s=l(t,r))||s.enumerable});return e},d={};p(d,s=o,"default"),r&&p(r,s,"default");var g={comments:{lineComment:"#",blockComment:["'''","'''"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp("^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async|match|case).*?:\\s*$"),action:{indentAction:d.languages.IndentAction.Indent}}],folding:{offSide:!0,markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},m={defaultToken:"",tokenPostfix:".python",keywords:["False","None","True","_","and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","exec","finally","for","from","global","if","import","in","is","lambda","match","nonlocal","not","or","pass","print","raise","return","try","while","with","yield","int","float","long","complex","hex","abs","all","any","apply","basestring","bin","bool","buffer","bytearray","callable","chr","classmethod","cmp","coerce","compile","complex","delattr","dict","dir","divmod","enumerate","eval","execfile","file","filter","format","frozenset","getattr","globals","hasattr","hash","help","id","input","intern","isinstance","issubclass","iter","len","locals","list","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","reversed","range","raw_input","reduce","reload","repr","reversed","round","self","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","unichr","unicode","vars","xrange","zip","__dict__","__methods__","__members__","__class__","__bases__","__name__","__mro__","__subclasses__","__init__","__import__"],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],tokenizer:{root:[{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},[/[,:;]/,"delimiter"],[/[{}\[\]()]/,"@brackets"],[/@[a-zA-Z_]\w*/,"tag"],[/[a-zA-Z_]\w*/,{cases:{"@keywords":"keyword","@default":"identifier"}}]],whitespace:[[/\s+/,"white"],[/(^#.*$)/,"comment"],[/'''/,"string","@endDocString"],[/"""/,"string","@endDblDocString"]],endDocString:[[/[^']+/,"string"],[/\\'/,"string"],[/'''/,"string","@popall"],[/'/,"string"]],endDblDocString:[[/[^"]+/,"string"],[/\\"/,"string"],[/"""/,"string","@popall"],[/"/,"string"]],numbers:[[/-?0x([abcdef]|[ABCDEF]|\d)+[lL]?/,"number.hex"],[/-?(\d*\.)?\d+([eE][+\-]?\d+)?[jJ]?[lL]?/,"number"]],strings:[[/'$/,"string.escape","@popall"],[/'/,"string.escape","@stringBody"],[/"$/,"string.escape","@popall"],[/"/,"string.escape","@dblStringBody"]],stringBody:[[/[^\\']+$/,"string","@popall"],[/[^\\']+/,"string"],[/\\./,"string"],[/'/,"string.escape","@popall"],[/\\$/,"string"]],dblStringBody:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string"],[/"/,"string.escape","@popall"],[/\\$/,"string"]]}}}}]); \ No newline at end of file diff --git a/assets/js/7287.94bb8d3f.js.LICENSE.txt b/assets/js/7287.94bb8d3f.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/7287.94bb8d3f.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/7322.62a440b9.js b/assets/js/7322.62a440b9.js new file mode 100644 index 00000000000..682b4556854 --- /dev/null +++ b/assets/js/7322.62a440b9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7322],{87322:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>r,contentTitle:()=>s,default:()=>m,frontMatter:()=>n,metadata:()=>l,toc:()=>u});var i=a(87462),o=(a(67294),a(3905));const n={title:"Opaque Type Aliases","short-title":"Opaque Type Aliases",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/hiding-implementation-details-with-flows-new-opaque-type-aliases-feature-40e188c2a3f9"},s=void 0,l={permalink:"/blog/2017/07/27/Opaque-Types",source:"@site/blog/2017-07-27-Opaque-Types.md",title:"Opaque Type Aliases",description:"Do you ever wish that you could hide your implementation details away",date:"2017-07-27T00:00:00.000Z",formattedDate:"July 27, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Opaque Type Aliases","short-title":"Opaque Type Aliases",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/hiding-implementation-details-with-flows-new-opaque-type-aliases-feature-40e188c2a3f9"},prevItem:{title:"Linting in Flow",permalink:"/blog/2017/08/04/Linting-in-Flow"},nextItem:{title:"Strict Checking of Function Call Arity",permalink:"/blog/2017/05/07/Strict-Function-Call-Arity"}},r={authorsImageUrls:[void 0]},u=[],p={toc:u};function m(e){let{components:t,...a}=e;return(0,o.mdx)("wrapper",(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Do you ever wish that you could hide your implementation details away\nfrom your users? Find out how opaque type aliases can get the job done!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7324.55dbe265.js b/assets/js/7324.55dbe265.js new file mode 100644 index 00000000000..baca026d055 --- /dev/null +++ b/assets/js/7324.55dbe265.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7324],{97324:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>m,frontMatter:()=>u,metadata:()=>r,toc:()=>p});var o=n(87462),l=(n(67294),n(3905));const u={title:"Announcing 5 new Flow tuple type features","short-title":"Announcing 5 new Flow tuple type features",author:"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-5-new-flow-tuple-type-features-ff4d7f11c50a"},a=void 0,r={permalink:"/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features",source:"@site/blog/2023-08-17-Announcing-5-new-Flow-tuple-type-features.md",title:"Announcing 5 new Flow tuple type features",description:"Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more.",date:"2023-08-17T00:00:00.000Z",formattedDate:"August 17, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Announcing 5 new Flow tuple type features","short-title":"Announcing 5 new Flow tuple type features",author:"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-5-new-flow-tuple-type-features-ff4d7f11c50a"},nextItem:{title:"Flow can now detect unused Promises",permalink:"/blog/2023/04/10/Unused-Promise"}},s={authorsImageUrls:[void 0]},p=[],i={toc:p};function m(e){let{components:t,...n}=e;return(0,l.mdx)("wrapper",(0,o.Z)({},i,n,{components:t,mdxType:"MDXLayout"}),(0,l.mdx)("p",null,"Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7357.60f17144.js b/assets/js/7357.60f17144.js new file mode 100644 index 00000000000..d454d544587 --- /dev/null +++ b/assets/js/7357.60f17144.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7357],{87357:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var o=n(87462),r=(n(67294),n(3905));const a={title:"Introducing: Local Type Inference for Flow","short-title":"Introducing Local Type Inference",author:"Michael Vitousek","medium-link":"https://medium.com/flow-type/introducing-local-type-inference-for-flow-6af65b7830aa"},l=void 0,i={permalink:"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow",source:"@site/blog/2021-09-27-Introducing-Local-Type-Inference-for-Flow.md",title:"Introducing: Local Type Inference for Flow",description:"We're replacing Flow\u2019s current inference engine with a system that behaves more predictably and can be reasoned about more locally.",date:"2021-09-27T00:00:00.000Z",formattedDate:"September 27, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"Michael Vitousek"}],frontMatter:{title:"Introducing: Local Type Inference for Flow","short-title":"Introducing Local Type Inference",author:"Michael Vitousek","medium-link":"https://medium.com/flow-type/introducing-local-type-inference-for-flow-6af65b7830aa"},prevItem:{title:"New Flow Language Rule: Constrained Writes",permalink:"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes"},nextItem:{title:"Introducing Flow Enums",permalink:"/blog/2021/09/13/Introducing-Flow-Enums"}},c={authorsImageUrls:[void 0]},s=[],u={toc:s};function d(e){let{components:t,...n}=e;return(0,r.mdx)("wrapper",(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"We're replacing Flow\u2019s current inference engine with a system that behaves more predictably and can be reasoned about more locally."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7454.c4cbd7ac.js b/assets/js/7454.c4cbd7ac.js new file mode 100644 index 00000000000..5da6c830db2 --- /dev/null +++ b/assets/js/7454.c4cbd7ac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7454],{87454:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>p});var t=o(87462),a=(o(67294),o(3905));const r={title:"Announcing Bounded Polymorphism","short-title":"Bounded Polymorphism",author:"Avik Chaudhuri",hide_table_of_contents:!0},s=void 0,i={permalink:"/blog/2015/03/12/Bounded-Polymorphism",source:"@site/blog/2015-03-12-Bounded-Polymorphism.md",title:"Announcing Bounded Polymorphism",description:"As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow's bounded polymorphism syntax looks like",date:"2015-03-12T00:00:00.000Z",formattedDate:"March 12, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Avik Chaudhuri"}],frontMatter:{title:"Announcing Bounded Polymorphism","short-title":"Bounded Polymorphism",author:"Avik Chaudhuri",hide_table_of_contents:!0},prevItem:{title:"Announcing Disjoint Unions",permalink:"/blog/2015/07/03/Disjoint-Unions"},nextItem:{title:"Announcing Flow Comments",permalink:"/blog/2015/02/20/Flow-Comments"}},l={authorsImageUrls:[void 0]},p=[{value:"The problem",id:"the-problem",level:2},{value:"The solution",id:"the-solution",level:2},{value:"Why we built this",id:"why-we-built-this",level:2},{value:"Transformations",id:"transformations",level:2}],m={toc:p};function d(e){let{components:n,...o}=e;return(0,a.mdx)("wrapper",(0,t.Z)({},m,o,{components:n,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow's bounded polymorphism syntax looks like"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"class BagOfBones<T: Bone> { ... }\nfunction eat<T: Food>(meal: T): Indigestion<T> { ... }\n")),(0,a.mdx)("h2",{id:"the-problem"},"The problem"),(0,a.mdx)("p",null,"Consider the following code that defines a polymorphic function in Flow:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"function fooBad<T>(obj: T): T {\n console.log(Math.abs(obj.x));\n return obj;\n}\n")),(0,a.mdx)("p",null,"This code does not (and should not!) type check. Not all values ",(0,a.mdx)("inlineCode",{parentName:"p"},"obj: T")," have a property ",(0,a.mdx)("inlineCode",{parentName:"p"},"x"),", let alone a property ",(0,a.mdx)("inlineCode",{parentName:"p"},"x")," that is a ",(0,a.mdx)("inlineCode",{parentName:"p"},"number"),", given the additional requirement imposed by ",(0,a.mdx)("inlineCode",{parentName:"p"},"Math.abs()"),"."),(0,a.mdx)("p",null,"But what if you wanted ",(0,a.mdx)("inlineCode",{parentName:"p"},"T")," to not range over all types, but instead over only the types of objects with an ",(0,a.mdx)("inlineCode",{parentName:"p"},"x")," property that has the type ",(0,a.mdx)("inlineCode",{parentName:"p"},"number"),"? Intuitively, given that condition, the body should type check. Unfortunately, the only way you could enforce this condition prior to Flow 0.5.0 was by giving up on polymorphism entirely! For example you could write:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"// Old lame workaround\nfunction fooStillBad(obj: { x: number }): {x: number } {\n console.log(Math.abs(obj.x));\n return obj;\n}\n")),(0,a.mdx)("p",null,"But while this change would make the body type check, it would cause Flow to lose information across call sites. For example:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},'// The return type of fooStillBad() is {x: number}\n// so Flow thinks result has the type {x: number}\nvar result = fooStillBad({x: 42, y: "oops"});\n\n// This will be an error since result\'s type\n// doesn\'t have a property "y"\nvar test: {x: number; y: string} = result;\n')),(0,a.mdx)("h2",{id:"the-solution"},"The solution"),(0,a.mdx)("p",null,"As of version 0.5.0, such typing problems can be solved elegantly using bounded polymorphism. Type parameters such as ",(0,a.mdx)("inlineCode",{parentName:"p"},"T")," can specify bounds that constrain the types that the type parameters range over. For example, we can write:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"function fooGood<T: { x: number }>(obj: T): T {\n console.log(Math.abs(obj.x));\n return obj;\n}\n")),(0,a.mdx)("p",null,"Now the body type checks under the assumption that ",(0,a.mdx)("inlineCode",{parentName:"p"},"T")," is a subtype of ",(0,a.mdx)("inlineCode",{parentName:"p"},"{ x: number }"),". Furthermore, no information is lost across call sites. Using the example from above:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},'// With bounded polymorphism, Flow knows the return\n// type is {x: number; y: string}\nvar result = fooGood({x: 42, y: "yay"});\n\n// This works!\nvar test: {x: number; y: string} = result;\n')),(0,a.mdx)("p",null,"Of course, polymorphic classes may also specify bounds. For example, the following code type checks:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"class Store<T: { x: number }> {\n obj: T;\n constructor(obj: T) { this.obj = obj; }\n foo() { console.log(Math.abs(this.obj.x)); }\n}\n")),(0,a.mdx)("p",null,"Instantiations of the class are appropriately constrained. If you write"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},'var store = new Store({x: 42, y: "hi"});\n')),(0,a.mdx)("p",null,"Then ",(0,a.mdx)("inlineCode",{parentName:"p"},"store.obj")," has type ",(0,a.mdx)("inlineCode",{parentName:"p"},"{x: number; y: string}"),"."),(0,a.mdx)("p",null,"Any type may be used as a type parameter's bound. The type does not need to be an object type (as in the examples above). It may even be another type parameter that is in scope. For example, consider adding the following method to the above ",(0,a.mdx)("inlineCode",{parentName:"p"},"Store")," class:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"class Store<T: { x: number }> {\n ...\n bar<U: T>(obj: U): U {\n this.obj = obj;\n console.log(Math.abs(obj.x));\n return obj;\n }\n}\n")),(0,a.mdx)("p",null,"Since ",(0,a.mdx)("inlineCode",{parentName:"p"},"U")," is a subtype of ",(0,a.mdx)("inlineCode",{parentName:"p"},"T"),", the method body type checks (as you may expect, ",(0,a.mdx)("inlineCode",{parentName:"p"},"U")," must also satisfy ",(0,a.mdx)("inlineCode",{parentName:"p"},"T"),"'s bound, by transitivity of subtyping). Now the following code type checks:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},' // store is a Store<{x: number; y: string}>\n var store = new Store({x: 42, y: "yay"});\n\n var result = store.bar({x: 0, y: "hello", z: "world"});\n\n // This works!\n var test: {x: number; y: string; z: string } = result;\n')),(0,a.mdx)("p",null,"Also, in a polymorphic definition with multiple type parameters, any type parameter may appear in the bound of any following type parameter. This is useful for type checking examples like the following:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"function copyArray<T, S: T>(from: Array<S>, to: Array<T>) {\n from.forEach(elem => to.push(elem));\n}\n")),(0,a.mdx)("h2",{id:"why-we-built-this"},"Why we built this"),(0,a.mdx)("p",null,"The addition of bounded polymorphism significantly increases the expressiveness of Flow's type system, by enabling signatures and definitions to specify relationships between their type parameters, without having to sacrifice the benefits of generics. We expect that the increased expressiveness will be particularly useful to library writers, and will also allow us to write better declarations for framework APIs such as those provided by React."),(0,a.mdx)("h2",{id:"transformations"},"Transformations"),(0,a.mdx)("p",null,"Like type annotations and other Flow features, polymorphic function and class definitions need to be transformed before the code can be run. The transforms are available in react-tools ",(0,a.mdx)("inlineCode",{parentName:"p"},"0.13.0"),", which was recently released"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7466.0592b0a0.js b/assets/js/7466.0592b0a0.js new file mode 100644 index 00000000000..5954dee5436 --- /dev/null +++ b/assets/js/7466.0592b0a0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7466],{7466:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>m,contentTitle:()=>d,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>i});var a=o(87462),n=(o(67294),o(3905));const r={title:"Supporting React.forwardRef and Beyond","short-title":"Supporting React.forwardRef",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/supporting-react-forwardref-and-beyond-f8dd88f35544"},d=void 0,s={permalink:"/blog/2018/12/13/React-Abstract-Component",source:"@site/blog/2018-12-13-React-Abstract-Component.md",title:"Supporting React.forwardRef and Beyond",description:"We made some major changes to our React model to better model new React components. Let's",date:"2018-12-13T00:00:00.000Z",formattedDate:"December 13, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Supporting React.forwardRef and Beyond","short-title":"Supporting React.forwardRef",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/supporting-react-forwardref-and-beyond-f8dd88f35544"},prevItem:{title:"What the Flow Team Has Been Up To",permalink:"/blog/2019/1/28/What-the-flow-team-has-been-up-to"},nextItem:{title:"Asking for Required Annotations",permalink:"/blog/2018/10/29/Asking-for-Required-Annotations"}},m={authorsImageUrls:[void 0]},i=[],p={toc:i};function c(e){let{components:t,...o}=e;return(0,n.mdx)("wrapper",(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"We made some major changes to our React model to better model new React components. Let's\ntalk about React.AbstractComponent!"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7473.75d32f9d.js b/assets/js/7473.75d32f9d.js new file mode 100644 index 00000000000..0bfae947b0a --- /dev/null +++ b/assets/js/7473.75d32f9d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7473],{57473:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>c,frontMatter:()=>n,metadata:()=>s,toc:()=>m});var r=o(87462),i=(o(67294),o(3905));const n={title:"Typing Higher-Order Components in Recompose With Flow","short-title":"Flow Support in Recompose",author:"Ivan Starkov","medium-link":"https://medium.com/flow-type/flow-support-in-recompose-1b76f58f4cfc"},a=void 0,s={permalink:"/blog/2017/09/03/Flow-Support-in-Recompose",source:"@site/blog/2017-09-03-Flow-Support-in-Recompose.md",title:"Typing Higher-Order Components in Recompose With Flow",description:"One month ago Recompose landed an",date:"2017-09-03T00:00:00.000Z",formattedDate:"September 3, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Ivan Starkov"}],frontMatter:{title:"Typing Higher-Order Components in Recompose With Flow","short-title":"Flow Support in Recompose",author:"Ivan Starkov","medium-link":"https://medium.com/flow-type/flow-support-in-recompose-1b76f58f4cfc"},prevItem:{title:"Better Flow Error Messages for the JavaScript Ecosystem",permalink:"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem"},nextItem:{title:"Private Object Properties Using Flow\u2019s Opaque Type Aliases",permalink:"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases"}},p={authorsImageUrls:[void 0]},m=[],l={toc:m};function c(e){let{components:t,...o}=e;return(0,i.mdx)("wrapper",(0,r.Z)({},l,o,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"One month ago ",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/acdlite/recompose"},"Recompose")," landed an\nofficial Flow library definition. The definitions were a long time coming,\nconsidering the original PR was created by\n",(0,i.mdx)("a",{parentName:"p",href:"https://twitter.com/GiulioCanti"},"@GiulioCanti")," a year ago."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7493.35ce4f7a.js b/assets/js/7493.35ce4f7a.js new file mode 100644 index 00000000000..a37fd518027 --- /dev/null +++ b/assets/js/7493.35ce4f7a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7493],{37493:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>r,toc:()=>l});var o=n(87462),s=(n(67294),n(3905));const a={title:"New Implementation of Unions and Intersections","short-title":"New Unions and Intersections",author:"Sam Goldman",hide_table_of_contents:!0},i=void 0,r={permalink:"/blog/2016/07/01/New-Unions-Intersections",source:"@site/blog/2016-07-01-New-Unions-Intersections.md",title:"New Implementation of Unions and Intersections",description:"Summary",date:"2016-07-01T00:00:00.000Z",formattedDate:"July 1, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Sam Goldman"}],frontMatter:{title:"New Implementation of Unions and Intersections","short-title":"New Unions and Intersections",author:"Sam Goldman",hide_table_of_contents:!0},prevItem:{title:"Windows Support is Here!",permalink:"/blog/2016/08/01/Windows-Support"},nextItem:{title:"Version 0.21.0",permalink:"/blog/2016/02/02/Version-0.21.0"}},m={authorsImageUrls:[void 0]},l=[{value:"Summary",id:"summary",level:3}],d={toc:l};function u(e){let{components:t,...n}=e;return(0,s.mdx)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("h3",{id:"summary"},"Summary"),(0,s.mdx)("p",null,"Before Flow 0.28, the implementation of union/intersection types had serious\nbugs and was ","[the][gh1759]"," ","[root][gh1664]"," ","[cause][gh1663]"," ","[of][gh1462]","\n","[a][gh1455]"," ","[lot][gh1371]"," ","[of][gh1349]"," ","[weird][gh842]"," ","[behaviors][gh815]"," you\nmay have run into with Flow in the past. These bugs have now been addressed in\n","[a diff landing in 0.28][fotu]","."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7520.851d616b.js b/assets/js/7520.851d616b.js new file mode 100644 index 00000000000..e058fa63547 --- /dev/null +++ b/assets/js/7520.851d616b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7520],{85162:(e,a,n)=>{n.r(a),n.d(a,{default:()=>o});var t=n(67294),l=n(86010);const r="tabItem_Ymn6";function o(e){let{children:a,hidden:n,className:o}=e;return t.createElement("div",{role:"tabpanel",className:(0,l.default)(r,o),hidden:n},a)}},74866:(e,a,n)=>{n.r(a),n.d(a,{default:()=>N});var t=n(87462),l=n(67294),r=n(86010),o=n(12466),d=n(76775),u=n(91980),s=n(67392),p=n(50012);function i(e){return function(e){var a,n;return null!=(a=null==(n=l.Children.map(e,(e=>{if(!e||(0,l.isValidElement)(e)&&function(e){const{props:a}=e;return!!a&&"object"==typeof a&&"value"in a}(e))return e;throw new Error("Docusaurus error: Bad <Tabs> child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.')})))?void 0:n.filter(Boolean))?a:[]}(e).map((e=>{let{props:{value:a,label:n,attributes:t,default:l}}=e;return{value:a,label:n,attributes:t,default:l}}))}function m(e){const{values:a,children:n}=e;return(0,l.useMemo)((()=>{const e=null!=a?a:i(n);return function(e){const a=(0,s.l)(e,((e,a)=>e.value===a.value));if(a.length>0)throw new Error('Docusaurus error: Duplicate values "'+a.map((e=>e.value)).join(", ")+'" found in <Tabs>. Every value needs to be unique.')}(e),e}),[a,n])}function c(e){let{value:a,tabValues:n}=e;return n.some((e=>e.value===a))}function b(e){let{queryString:a=!1,groupId:n}=e;const t=(0,d.k6)(),r=function(e){let{queryString:a=!1,groupId:n}=e;if("string"==typeof a)return a;if(!1===a)return null;if(!0===a&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=n?n:null}({queryString:a,groupId:n});return[(0,u._X)(r),(0,l.useCallback)((e=>{if(!r)return;const a=new URLSearchParams(t.location.search);a.set(r,e),t.replace({...t.location,search:a.toString()})}),[r,t])]}function f(e){const{defaultValue:a,queryString:n=!1,groupId:t}=e,r=m(e),[o,d]=(0,l.useState)((()=>function(e){var a;let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!c({value:n,tabValues:t}))throw new Error('Docusaurus error: The <Tabs> has a defaultValue "'+n+'" but none of its children has the corresponding value. Available values are: '+t.map((e=>e.value)).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return n}const l=null!=(a=t.find((e=>e.default)))?a:t[0];if(!l)throw new Error("Unexpected error: 0 tabValues");return l.value}({defaultValue:a,tabValues:r}))),[u,s]=b({queryString:n,groupId:t}),[i,f]=function(e){let{groupId:a}=e;const n=function(e){return e?"docusaurus.tab."+e:null}(a),[t,r]=(0,p.Nk)(n);return[t,(0,l.useCallback)((e=>{n&&r.set(e)}),[n,r])]}({groupId:t}),x=(()=>{const e=null!=u?u:i;return c({value:e,tabValues:r})?e:null})();(0,l.useLayoutEffect)((()=>{x&&d(x)}),[x]);return{selectedValue:o,selectValue:(0,l.useCallback)((e=>{if(!c({value:e,tabValues:r}))throw new Error("Can't select invalid tab value="+e);d(e),s(e),f(e)}),[s,f,r]),tabValues:r}}var x=n(72389);const h="tabList__CuJ",y="tabItem_LNqP";function v(e){let{className:a,block:n,selectedValue:d,selectValue:u,tabValues:s}=e;const p=[],{blockElementScrollPositionUntilNextRender:i}=(0,o.o5)(),m=e=>{const a=e.currentTarget,n=p.indexOf(a),t=s[n].value;t!==d&&(i(a),u(t))},c=e=>{var a;let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{var t;const a=p.indexOf(e.currentTarget)+1;n=null!=(t=p[a])?t:p[0];break}case"ArrowLeft":{var l;const a=p.indexOf(e.currentTarget)-1;n=null!=(l=p[a])?l:p[p.length-1];break}}null==(a=n)||a.focus()};return l.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.default)("tabs",{"tabs--block":n},a)},s.map((e=>{let{value:a,label:n,attributes:o}=e;return l.createElement("li",(0,t.Z)({role:"tab",tabIndex:d===a?0:-1,"aria-selected":d===a,key:a,ref:e=>p.push(e),onKeyDown:c,onClick:m},o,{className:(0,r.default)("tabs__item",y,null==o?void 0:o.className,{"tabs__item--active":d===a})}),null!=n?n:a)})))}function w(e){let{lazy:a,children:n,selectedValue:t}=e;const r=(Array.isArray(n)?n:[n]).filter(Boolean);if(a){const e=r.find((e=>e.props.value===t));return e?(0,l.cloneElement)(e,{className:"margin-top--md"}):null}return l.createElement("div",{className:"margin-top--md"},r.map(((e,a)=>(0,l.cloneElement)(e,{key:a,hidden:e.props.value!==t}))))}function g(e){const a=f(e);return l.createElement("div",{className:(0,r.default)("tabs-container",h)},l.createElement(v,(0,t.Z)({},e,a)),l.createElement(w,(0,t.Z)({},e,a)))}function N(e){const a=(0,x.default)();return l.createElement(g,(0,t.Z)({key:String(a)},e))}},7520:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>p,contentTitle:()=>u,default:()=>c,frontMatter:()=>d,metadata:()=>s,toc:()=>i});var t=n(87462),l=(n(67294),n(3905)),r=(n(45475),n(74866)),o=n(85162);const d={title:"Installation",slug:"/install"},u=void 0,s={unversionedId:"install",id:"install",title:"Installation",description:"Setup Compiler",source:"@site/docs/install.md",sourceDirName:".",slug:"/install",permalink:"/en/docs/install",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/install.md",tags:[],version:"current",frontMatter:{title:"Installation",slug:"/install"},sidebar:"docsSidebar",previous:{title:"Getting Started",permalink:"/en/docs/getting-started"},next:{title:"Usage",permalink:"/en/docs/usage"}},p={},i=[{value:"Setup Compiler",id:"setup-compiler",level:2},{value:"Setup Flow",id:"setup-flow",level:2},{value:"Add a <code>devDependency</code> on the <code>flow-bin</code> npm package",id:"add-a-devdependency-on-the-flow-bin-npm-package",level:3},{value:"Add a <code>"flow"</code> script to your <code>package.json</code>",id:"add-a-flow-script-to-your-packagejson",level:3},{value:"Run Flow",id:"run-flow",level:3},{value:"Setup ESLint",id:"setup-eslint",level:2}],m={toc:i};function c(e){let{components:a,...n}=e;return(0,l.mdx)("wrapper",(0,t.Z)({},m,n,{components:a,mdxType:"MDXLayout"}),(0,l.mdx)("h2",{id:"setup-compiler"},"Setup Compiler"),(0,l.mdx)("p",null,"First you'll need to setup a compiler to strip away Flow types. You can\nchoose between ",(0,l.mdx)("a",{parentName:"p",href:"http://babeljs.io/"},"Babel")," and\n",(0,l.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/tree/master/packages/flow-remove-types"},"flow-remove-types"),"."),(0,l.mdx)(r.default,{defaultValue:"babel",values:[{label:"Babel",value:"babel"},{label:"flow-remove-types",value:"flow-remove-types"}],mdxType:"Tabs"},(0,l.mdx)(o.default,{value:"babel",mdxType:"TabItem"},(0,l.mdx)("p",null,(0,l.mdx)("a",{parentName:"p",href:"http://babeljs.io/"},"Babel")," is a compiler for JavaScript code that has\nsupport for Flow. Babel will take your Flow code and strip out any type\nannotations. Read more about ",(0,l.mdx)("a",{parentName:"p",href:"../tools/babel"},"using Babel"),"."),(0,l.mdx)("p",null,"First install ",(0,l.mdx)("inlineCode",{parentName:"p"},"@babel/core"),", ",(0,l.mdx)("inlineCode",{parentName:"p"},"@babel/cli"),", and ",(0,l.mdx)("inlineCode",{parentName:"p"},"@babel/preset-flow")," with\neither ",(0,l.mdx)("a",{parentName:"p",href:"https://yarnpkg.com/"},"Yarn")," or ",(0,l.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/"},"npm"),"."),(0,l.mdx)(r.default,{groupId:"npm2yarn",mdxType:"Tabs"},(0,l.mdx)(o.default,{value:"npm",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"npm install --save-dev @babel/core @babel/cli @babel/preset-flow\n"))),(0,l.mdx)(o.default,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"yarn add --dev @babel/core @babel/cli @babel/preset-flow\n")))),(0,l.mdx)("p",null,"Next you need to create a ",(0,l.mdx)("inlineCode",{parentName:"p"},".babelrc")," file at the root of your project with\n",(0,l.mdx)("inlineCode",{parentName:"p"},'"@babel/preset-flow"')," in your ",(0,l.mdx)("inlineCode",{parentName:"p"},'"presets"'),"."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-json"},'{ "presets": ["@babel/preset-flow"] }\n')),(0,l.mdx)("p",null,"If you then put all your source files in a ",(0,l.mdx)("inlineCode",{parentName:"p"},"src")," directory you can compile them\nto another directory by running:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"./node_modules/.bin/babel src/ -d lib/\n")),(0,l.mdx)("p",null,"You can add this to your ",(0,l.mdx)("inlineCode",{parentName:"p"},"package.json")," scripts easily, alongside your ",(0,l.mdx)("inlineCode",{parentName:"p"},'"devDependencies"')," on Babel."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-json"},'{\n "name": "my-project",\n "main": "lib/index.js",\n "scripts": {\n "build": "babel src/ -d lib/",\n "prepublish": "yarn run build"\n }\n}\n')),(0,l.mdx)("blockquote",null,(0,l.mdx)("p",{parentName:"blockquote"},(0,l.mdx)("strong",{parentName:"p"},"Note:")," You'll probably want to add a ",(0,l.mdx)("inlineCode",{parentName:"p"},"prepublish")," script that runs this\ntransform as well, so that it runs before you publish your code to the npm\nregistry."))),(0,l.mdx)(o.default,{value:"flow-remove-types",mdxType:"TabItem"},(0,l.mdx)("p",null,(0,l.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/tree/master/packages/flow-remove-types"},"flow-remove-types")," is a small\nCLI tool for stripping Flow type annotations from files. It's a lighter-weight\nalternative to Babel for projects that don't need everything Babel provides."),(0,l.mdx)("p",null,"First install ",(0,l.mdx)("inlineCode",{parentName:"p"},"flow-remove-types")," with either\n",(0,l.mdx)("a",{parentName:"p",href:"https://yarnpkg.com/"},"Yarn")," or ",(0,l.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/"},"npm"),"."),(0,l.mdx)(r.default,{groupId:"npm2yarn",mdxType:"Tabs"},(0,l.mdx)(o.default,{value:"npm",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"npm install --save-dev flow-remove-types\n"))),(0,l.mdx)(o.default,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"yarn add --dev flow-remove-types\n")))),(0,l.mdx)("p",null,"If you then put all your source files in a ",(0,l.mdx)("inlineCode",{parentName:"p"},"src")," directory you can compile them\nto another directory by running:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-sh"},"./node_modules/.bin/flow-remove-types src/ -d lib/\n")),(0,l.mdx)("p",null,"You can add this to your ",(0,l.mdx)("inlineCode",{parentName:"p"},"package.json")," scripts easily, alongside your ",(0,l.mdx)("inlineCode",{parentName:"p"},'"devDependencies"')," on ",(0,l.mdx)("inlineCode",{parentName:"p"},"flow-remove-types"),"."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-json"},'{\n "name": "my-project",\n "main": "lib/index.js",\n "scripts": {\n "build": "flow-remove-types src/ -d lib/",\n "prepublish": "yarn run build"\n }\n}\n')),(0,l.mdx)("blockquote",null,(0,l.mdx)("p",{parentName:"blockquote"},(0,l.mdx)("strong",{parentName:"p"},"Note:")," You'll probably want to add a ",(0,l.mdx)("inlineCode",{parentName:"p"},"prepublish")," script that runs this\ntransform as well, so that it runs before you publish your code to the npm\nregistry.")))),(0,l.mdx)("h2",{id:"setup-flow"},"Setup Flow"),(0,l.mdx)("p",null,"Flow works best when installed per-project with explicit versioning rather than\nglobally."),(0,l.mdx)("p",null,"Luckily, if you're already familiar with ",(0,l.mdx)("inlineCode",{parentName:"p"},"npm")," or ",(0,l.mdx)("inlineCode",{parentName:"p"},"yarn"),", this process should\nbe pretty familiar!"),(0,l.mdx)("h3",{id:"add-a-devdependency-on-the-flow-bin-npm-package"},"Add a ",(0,l.mdx)("inlineCode",{parentName:"h3"},"devDependency")," on the ",(0,l.mdx)("inlineCode",{parentName:"h3"},"flow-bin")," npm package"),(0,l.mdx)(r.default,{groupId:"npm2yarn",mdxType:"Tabs"},(0,l.mdx)(o.default,{value:"npm",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"npm install --save-dev flow-bin\n"))),(0,l.mdx)(o.default,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"yarn add --dev flow-bin\n")))),(0,l.mdx)("h3",{id:"add-a-flow-script-to-your-packagejson"},"Add a ",(0,l.mdx)("inlineCode",{parentName:"h3"},'"flow"')," script to your ",(0,l.mdx)("inlineCode",{parentName:"h3"},"package.json")),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-json"},'{\n "name": "my-flow-project",\n "version": "1.0.0",\n "devDependencies": {\n "flow-bin": "^0.226.0"\n },\n "scripts": {\n "flow": "flow"\n }\n}\n')),(0,l.mdx)("h3",{id:"run-flow"},"Run Flow"),(0,l.mdx)("p",null,"The first time, run:"),(0,l.mdx)(r.default,{groupId:"npm2yarn",mdxType:"Tabs"},(0,l.mdx)(o.default,{value:"npm",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"npm run flow init\n"))),(0,l.mdx)(o.default,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"yarn run flow init\n")))),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre"},'> my-flow-project@1.0.0 flow /Users/Projects/my-flow-project\n> flow "init"\n')),(0,l.mdx)("p",null,"After running ",(0,l.mdx)("inlineCode",{parentName:"p"},"flow")," with ",(0,l.mdx)("inlineCode",{parentName:"p"},"init")," the first time, run:"),(0,l.mdx)(r.default,{groupId:"npm2yarn",mdxType:"Tabs"},(0,l.mdx)(o.default,{value:"npm",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"npm run flow\n"))),(0,l.mdx)(o.default,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"yarn run flow\n")))),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre"},"> my-flow-project@1.0.0 flow /Users/Projects/my-flow-project\n> flow\n\nNo errors!\n")),(0,l.mdx)("h2",{id:"setup-eslint"},"Setup ESLint"),(0,l.mdx)("p",null,"If you use ESLint, you can read ",(0,l.mdx)("a",{parentName:"p",href:"../tools/eslint"},"our page on ESLint")," to set it up to support Flow."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7521.710cbe18.js b/assets/js/7521.710cbe18.js new file mode 100644 index 00000000000..15c0b82b9af --- /dev/null +++ b/assets/js/7521.710cbe18.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7521],{93632:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var t=a(87462),r=(a(67294),a(3905));a(45475);const o={title:"Interfaces",slug:"/types/interfaces"},i=void 0,s={unversionedId:"types/interfaces",id:"types/interfaces",title:"Interfaces",description:"Classes in Flow are nominally typed. This means that when you have two separate",source:"@site/docs/types/interfaces.md",sourceDirName:"types",slug:"/types/interfaces",permalink:"/en/docs/types/interfaces",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/interfaces.md",tags:[],version:"current",frontMatter:{title:"Interfaces",slug:"/types/interfaces"},sidebar:"docsSidebar",previous:{title:"Opaque Type Aliases",permalink:"/en/docs/types/opaque-types"},next:{title:"Generics",permalink:"/en/docs/types/generics"}},l={},c=[{value:"Interface Syntax",id:"toc-interface-syntax",level:2},{value:"Interface Methods",id:"toc-interface-methods",level:3},{value:"Interface Properties",id:"toc-interface-properties",level:3},{value:"Interfaces as maps",id:"toc-interfaces-as-maps",level:3},{value:"Interface Generics",id:"toc-interface-generics",level:3},{value:"Interface property variance (read-only and write-only)",id:"toc-interface-property-variance-read-only-and-write-only",level:2},{value:"Covariant (read-only) properties on interfaces",id:"toc-covariant-read-only-properties-on-interfaces",level:4},{value:"Contravariant (write-only) properties on interfaces",id:"toc-contravariant-write-only-properties-on-interfaces",level:4}],p={toc:c};function m(e){let{components:n,...a}=e;return(0,r.mdx)("wrapper",(0,t.Z)({},p,a,{components:n,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,(0,r.mdx)("a",{parentName:"p",href:"../classes"},"Classes")," in Flow are ",(0,r.mdx)("a",{parentName:"p",href:"../../lang/nominal-structural"},"nominally typed"),". This means that when you have two separate\nclasses you cannot use one in place of the other even when they have the same\nexact properties and methods:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":18,"endLine":9,"endColumn":26,"description":"Cannot assign `new Bar()` to `foo` because `Bar` [1] is incompatible with `Foo` [2]. [incompatible-type]"}]','[{"startLine":9,"startColumn":18,"endLine":9,"endColumn":26,"description":"Cannot':!0,assign:!0,"`new":!0,"Bar()`":!0,to:!0,"`foo`":!0,because:!0,"`Bar`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"`Foo`":!0,"[2].":!0,'[incompatible-type]"}]':!0},"class Foo {\n serialize(): string { return '[Foo]'; }\n}\n\nclass Bar {\n serialize(): string { return '[Bar]'; }\n}\n\nconst foo: Foo = new Bar(); // Error!\n")),(0,r.mdx)("p",null,"Instead, you can use ",(0,r.mdx)("inlineCode",{parentName:"p"},"interface")," in order to declare the structure of the class\nthat you are expecting."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface Serializable {\n serialize(): string;\n}\n\nclass Foo {\n serialize(): string { return '[Foo]'; }\n}\n\nclass Bar {\n serialize(): string { return '[Bar]'; }\n}\n\nconst foo: Serializable = new Foo(); // Works!\nconst bar: Serializable = new Bar(); // Works!\n")),(0,r.mdx)("p",null,"You can also declare an anonymous interface:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class Foo {\n a: number;\n}\n\nfunction getNumber(o: interface {a: number}): number {\n return o.a;\n}\n\ngetNumber(new Foo()); // Works!\n")),(0,r.mdx)("p",null,"You can also use ",(0,r.mdx)("inlineCode",{parentName:"p"},"implements")," to tell Flow that you want the class to match an\ninterface. This prevents you from making incompatible changes when editing the\nclass."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":10,"startColumn":16,"endLine":10,"endColumn":21,"description":"Cannot implement `Serializable` [1] with `Bar` because number [2] is incompatible with string [3] in the return value of property `serialize`. [incompatible-type]"}]','[{"startLine":10,"startColumn":16,"endLine":10,"endColumn":21,"description":"Cannot':!0,implement:!0,"`Serializable`":!0,"[1]":!0,with:!0,"`Bar`":!0,because:!0,number:!0,"[2]":!0,is:!0,incompatible:!0,string:!0,"[3]":!0,in:!0,the:!0,return:!0,value:!0,of:!0,property:!0,"`serialize`.":!0,'[incompatible-type]"}]':!0},"interface Serializable {\n serialize(): string;\n}\n\nclass Foo implements Serializable {\n serialize(): string { return '[Foo]'; } // Works!\n}\n\nclass Bar implements Serializable {\n serialize(): number { return 42; } // Error!\n}\n")),(0,r.mdx)("p",null,"You can also use ",(0,r.mdx)("inlineCode",{parentName:"p"},"implements")," with multiple interfaces."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"class Foo implements Bar, Baz {\n // ...\n}\n")),(0,r.mdx)("p",null,"Interfaces can describe both instances and objects, unlike object types which can only describe objects:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":17,"startColumn":12,"endLine":17,"endColumn":14,"description":"Cannot call `acceptsObj` with `foo` bound to `x` because `Foo` [1] is not a subtype of object type [2]. Class instances are not subtypes of object types; consider rewriting object type [2] as an interface. [class-object-subtyping]"}]','[{"startLine":17,"startColumn":12,"endLine":17,"endColumn":14,"description":"Cannot':!0,call:!0,"`acceptsObj`":!0,with:!0,"`foo`":!0,bound:!0,to:!0,"`x`":!0,because:!0,"`Foo`":!0,"[1]":!0,is:!0,not:!0,a:!0,subtype:!0,of:!0,object:!0,type:!0,"[2].":!0,Class:!0,instances:!0,are:!0,subtypes:!0,"types;":!0,consider:!0,rewriting:!0,"[2]":!0,as:!0,an:!0,"interface.":!0,'[class-object-subtyping]"}]':!0},"class Foo {\n a: number;\n}\nconst foo = new Foo();\nconst o: {a: number} = {a: 1};\n\ninterface MyInterface {\n a: number;\n}\n\nfunction acceptsMyInterface(x: MyInterface) { /* ... */ }\nacceptsMyInterface(o); // Works!\nacceptsMyInterface(foo); // Works!\n\nfunction acceptsObj(x: {a: number, ...}) { /* ... */ }\nacceptsObj(o); // Works!\nacceptsObj(foo); // Error!\n")),(0,r.mdx)("p",null,"Unlike objects, interfaces cannot be ",(0,r.mdx)("a",{parentName:"p",href:"../objects/#exact-and-inexact-object-types"},"exact"),", as they can always have other, unknown properties."),(0,r.mdx)("h2",{id:"toc-interface-syntax"},"Interface Syntax"),(0,r.mdx)("p",null,"Interfaces are created using the keyword ",(0,r.mdx)("inlineCode",{parentName:"p"},"interface")," followed by its name and\na block which contains the body of the type definition."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface {\n // ...\n}\n")),(0,r.mdx)("p",null,"The syntax of the block matches the syntax of object types."),(0,r.mdx)("h3",{id:"toc-interface-methods"},"Interface Methods"),(0,r.mdx)("p",null,"You can add methods to interfaces following the same syntax as class methods. Any ",(0,r.mdx)("a",{parentName:"p",href:"../functions/#this-parameter"},(0,r.mdx)("inlineCode",{parentName:"a"},"this")," parameters")," you\nprovide are also subject to the same restrictions as class methods."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface {\n method(value: string): number;\n}\n")),(0,r.mdx)("p",null,"Also like ",(0,r.mdx)("a",{parentName:"p",href:"../classes#toc-class-methods"},"class methods"),", interface methods must also remain bound to the interface on which they were defined."),(0,r.mdx)("p",null,"You can define ",(0,r.mdx)("a",{parentName:"p",href:"../intersections/#declaring-overloaded-functions"},"overloaded methods")," by declaring the same method name multiple times with different type signatures:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":10,"startColumn":22,"endLine":10,"endColumn":35,"description":"Cannot assign `a.method(...)` to `z` because string [1] is incompatible with boolean [2]. [incompatible-type]"}]','[{"startLine":10,"startColumn":22,"endLine":10,"endColumn":35,"description":"Cannot':!0,assign:!0,"`a.method(...)`":!0,to:!0,"`z`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,boolean:!0,"[2].":!0,'[incompatible-type]"}]':!0},"interface MyInterface {\n method(value: string): string;\n method(value: boolean): boolean;\n}\n\nfunction func(a: MyInterface) {\n const x: string = a.method('hi'); // Works!\n const y: boolean = a.method(true); // Works!\n\n const z: boolean = a.method('hi'); // Error!\n}\n")),(0,r.mdx)("h3",{id:"toc-interface-properties"},"Interface Properties"),(0,r.mdx)("p",null,"You can add properties to interfaces following the same syntax as class\nproperties:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface {\n property: string;\n}\n")),(0,r.mdx)("p",null,"Interface properties can be optional as well:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface {\n property?: string;\n}\n")),(0,r.mdx)("h3",{id:"toc-interfaces-as-maps"},"Interfaces as maps"),(0,r.mdx)("p",null,"You can create ",(0,r.mdx)("a",{parentName:"p",href:"../objects#toc-objects-as-maps"},"indexer properties")," the same\nway as with objects:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface {\n [key: string]: number;\n}\n")),(0,r.mdx)("h3",{id:"toc-interface-generics"},"Interface Generics"),(0,r.mdx)("p",null,"Interfaces can also have their own ",(0,r.mdx)("a",{parentName:"p",href:"../generics/"},"generics"),":"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface<A, B, C> {\n property: A;\n method(val: B): C;\n}\n")),(0,r.mdx)("p",null,"Interface generics are ",(0,r.mdx)("a",{parentName:"p",href:"../generics#toc-parameterized-generics"},"parameterized"),".\nWhen you use an interface you need to pass parameters for each of its generics:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface<A, B, C> {\n foo: A;\n bar: B;\n baz: C;\n}\n\nconst val: MyInterface<number, boolean, string> = {\n foo: 1,\n bar: true,\n baz: 'three',\n};\n")),(0,r.mdx)("h2",{id:"toc-interface-property-variance-read-only-and-write-only"},"Interface property variance (read-only and write-only)"),(0,r.mdx)("p",null,"Interface properties are ",(0,r.mdx)("a",{parentName:"p",href:"../../lang/variance/"},"invariant")," by default. But you\ncan add modifiers to make them covariant (read-only) or contravariant\n(write-only)."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface {\n +covariant: number; // read-only\n -contravariant: number; // write-only\n}\n")),(0,r.mdx)("h4",{id:"toc-covariant-read-only-properties-on-interfaces"},"Covariant (read-only) properties on interfaces"),(0,r.mdx)("p",null,"You can make a property covariant by adding a plus symbol ",(0,r.mdx)("inlineCode",{parentName:"p"},"+")," in front of the\nproperty name:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface {\n +readOnly: number | string;\n}\n")),(0,r.mdx)("p",null,"This allows you to pass a more specific type in place of that property:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":11,"startColumn":27,"endLine":11,"endColumn":27,"description":"Cannot assign `x` to `value1` because string [1] is incompatible with number [2] in property `property`. This property is invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number. [incompatible-type]"}]','[{"startLine":11,"startColumn":27,"endLine":11,"endColumn":27,"description":"Cannot':!0,assign:!0,"`x`":!0,to:!0,"`value1`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2]":!0,in:!0,property:!0,"`property`.":!0,This:!0,invariantly:!0,"typed.":!0,See:!0,"https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number.":!0,'[incompatible-type]"}]':!0},"interface Invariant {\n property: number | string;\n}\ninterface Covariant {\n +readOnly: number | string;\n}\n\nconst x: {property: number} = {property: 42};\nconst y: {readOnly: number} = {readOnly: 42};\n\nconst value1: Invariant = x; // Error!\nconst value2: Covariant = y; // Works\n")),(0,r.mdx)("p",null,"Because of how covariance works, covariant properties also become read-only\nwhen used. Which can be useful over normal properties."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":15,"startColumn":9,"endLine":15,"endColumn":16,"description":"Cannot assign `3.14` to `value.readOnly` because property `readOnly` is not writable. [cannot-write]"}]','[{"startLine":15,"startColumn":9,"endLine":15,"endColumn":16,"description":"Cannot':!0,assign:!0,"`3.14`":!0,to:!0,"`value.readOnly`":!0,because:!0,property:!0,"`readOnly`":!0,is:!0,not:!0,"writable.":!0,'[cannot-write]"}]':!0},"interface Invariant {\n property: number | string;\n}\ninterface Covariant {\n +readOnly: number | string;\n}\n\nfunction func1(value: Invariant) {\n value.property; // Works!\n value.property = 3.14; // Works!\n}\n\nfunction func2(value: Covariant) {\n value.readOnly; // Works!\n value.readOnly = 3.14; // Error!\n}\n")),(0,r.mdx)("h4",{id:"toc-contravariant-write-only-properties-on-interfaces"},"Contravariant (write-only) properties on interfaces"),(0,r.mdx)("p",null,"You can make a property contravariant by adding a minus symbol - in front of\nthe property name."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface InterfaceName {\n -writeOnly: number;\n}\n")),(0,r.mdx)("p",null,"This allows you to pass a less specific type in place of that property."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":10,"startColumn":42,"endLine":10,"endColumn":55,"description":"Cannot assign object literal to `value1` because string [1] is incompatible with number [2] in property `property`. [incompatible-type]"}]','[{"startLine":10,"startColumn":42,"endLine":10,"endColumn":55,"description":"Cannot':!0,assign:!0,object:!0,literal:!0,to:!0,"`value1`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2]":!0,in:!0,property:!0,"`property`.":!0,'[incompatible-type]"}]':!0},"interface Invariant {\n property: number;\n}\ninterface Contravariant {\n -writeOnly: number;\n}\n\nconst numberOrString = Math.random() > 0.5 ? 42 : 'forty-two';\n\nconst value1: Invariant = {property: numberOrString}; // Error!\nconst value2: Contravariant = {writeOnly: numberOrString}; // Works!\n")),(0,r.mdx)("p",null,"Because of how contravariance works, contravariant properties also become\nwrite-only when used. Which can be useful over normal properties."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":14,"startColumn":9,"endLine":14,"endColumn":17,"description":"Cannot get `value.writeOnly` because property `writeOnly` is not readable. [cannot-read]"}]','[{"startLine":14,"startColumn":9,"endLine":14,"endColumn":17,"description":"Cannot':!0,get:!0,"`value.writeOnly`":!0,because:!0,property:!0,"`writeOnly`":!0,is:!0,not:!0,"readable.":!0,'[cannot-read]"}]':!0},"interface Invariant {\n property: number;\n}\ninterface Contravariant {\n -writeOnly: number;\n}\n\nfunction func1(value: Invariant) {\n value.property; // Works!\n value.property = 3.14; // Works!\n}\n\nfunction func2(value: Contravariant) {\n value.writeOnly; // Error!\n value.writeOnly = 3.14; // Works!\n}\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/753.c21fceb8.js b/assets/js/753.c21fceb8.js new file mode 100644 index 00000000000..e49e9578f3f --- /dev/null +++ b/assets/js/753.c21fceb8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[753],{50753:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>a,metadata:()=>r,toc:()=>m});var i=t(87462),s=(t(67294),t(3905));const a={title:"Version 0.21.0","short-title":"Version 0.21.0",author:"Gabe Levi",hide_table_of_contents:!0},o=void 0,r={permalink:"/blog/2016/02/02/Version-0.21.0",source:"@site/blog/2016-02-02-Version-0.21.0.md",title:"Version 0.21.0",description:"Yesterday we deployed Flow v0.21.0! As always, we've listed out the most",date:"2016-02-02T00:00:00.000Z",formattedDate:"February 2, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Version 0.21.0","short-title":"Version 0.21.0",author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"New Implementation of Unions and Intersections",permalink:"/blog/2016/07/01/New-Unions-Intersections"},nextItem:{title:"Version-0.19.0",permalink:"/blog/2015/12/01/Version-0.19.0"}},l={authorsImageUrls:[void 0]},m=[{value:"JSX Intrinsics",id:"jsx-intrinsics",level:3},{value:"Example of how to use JSX intrinsics",id:"example-of-how-to-use-jsx-intrinsics",level:4},{value:"What is going on here?",id:"what-is-going-on-here",level:4},{value:"Smarter string refinements",id:"smarter-string-refinements",level:3},{value:"New string refinements",id:"new-string-refinements",level:4}],d={toc:m};function p(e){let{components:n,...t}=e;return(0,s.mdx)("wrapper",(0,i.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Yesterday we deployed Flow v0.21.0! As always, we've listed out the most\ninteresting changes in the\n",(0,s.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/master/Changelog.md#v0210"},"Changelog"),".\nHowever, since I'm on a plane and can't sleep, I thought it might be fun to\ndive into a couple of the changes! Hope this blog post turns out interesting\nand legible!"),(0,s.mdx)("h3",{id:"jsx-intrinsics"},"JSX Intrinsics"),(0,s.mdx)("p",null,"If you're writing JSX, it's probably a mix of your own React Components and\nsome intrinsics. For example, you might write"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},'render() {\n return <div><FluffyBunny name="Fifi" /></div>;\n}\n')),(0,s.mdx)("p",null,"In this example, ",(0,s.mdx)("inlineCode",{parentName:"p"},"FluffyBunny")," is a React Component you wrote and ",(0,s.mdx)("inlineCode",{parentName:"p"},"div")," is a\nJSX intrinsic. Lower-cased JSX elements are assumed to be intrinsics by React\nand by Flow. Up until Flow v0.21.0, Flow ignored intrinsics and gave them the\ntype ",(0,s.mdx)("inlineCode",{parentName:"p"},"any"),". This meant Flow let you set any property on JSX intrinsics. Flow\nv0.21.0 will, by default, do the same thing as v0.20.0, However now you can\nalso configure Flow to properly type your JSX intrinsics!"),(0,s.mdx)("h4",{id:"example-of-how-to-use-jsx-intrinsics"},"Example of how to use JSX intrinsics"),(0,s.mdx)("p",null,".flowconfig"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"[libs]\nmyLib.js\n")),(0,s.mdx)("p",null,"myLib.js"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},'// JSXHelper is a type alias to make this example more concise.\n// There\'s nothing special or magic here.\n// JSXHelper<{name: string}> is a React component\n// with the single string property "name", which has a default\ntype JSXHelper<T> = Class<ReactComponent<T,T,mixed>>;\n\n// $JSXIntrinsics is special and magic.\n// This declares the types for `div` and `span`\ntype $JSXIntrinsics = {\n div: JSXHelper<{id: string}>,\n span: JSXHelper<{id: string, class: string}>,\n};\n')),(0,s.mdx)("p",null,"myCode.js"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},'<div id="asdf" />; // No error\n<div id={42} />; // Error: `id` prop is a string, not a number!\n')),(0,s.mdx)("h4",{id:"what-is-going-on-here"},"What is going on here?"),(0,s.mdx)("p",null,"The new bit of magic is this ",(0,s.mdx)("inlineCode",{parentName:"p"},"$JSXIntrinsics")," type alias. When Flow sees\n",(0,s.mdx)("inlineCode",{parentName:"p"},"<foo />")," it will look to see if ",(0,s.mdx)("inlineCode",{parentName:"p"},"$JSXIntrinsics")," exists and if so will grab\nthe type of ",(0,s.mdx)("inlineCode",{parentName:"p"},"$JSXIntrinsics['foo']"),". It will use this type to figure out which\nproperties are available and need to be set."),(0,s.mdx)("p",null,"We haven't hardcoded the intrinsics into Flow since the available intrinsics\nwill depend on your environment. For example, React native would have different\nintrinsics than React for the web would."),(0,s.mdx)("h3",{id:"smarter-string-refinements"},"Smarter string refinements"),(0,s.mdx)("p",null,"One of the main ways that we make Flow smarter is by teaching it to recognize\nmore ways that JavaScript programmers refine types. Here's an example of a\ncommon way to refine nullable values:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"class Person {\n name: ?string;\n ...\n getName(): string {\n // Before the if, this.name could be null, undefined, or a string\n if (this.name != null) {\n // But now the programmer has refined this.name to definitely be a string\n return this.name;\n }\n // And now we know that this.name is null or undefined.\n return 'You know who';\n }\n}\n")),(0,s.mdx)("h4",{id:"new-string-refinements"},"New string refinements"),(0,s.mdx)("p",null,"In v0.21.0, one of the refinements we added is the ability to refine types by\ncomparing them to strings."),(0,s.mdx)("p",null,"This is useful for refining unions of string literals into string literals"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"function test(x: 'foo' | 'bar'): 'foo' {\n if (x === 'foo') {\n // Now Flow understands that x has the type 'foo'\n return x;\n } else {\n return 'foo';\n }\n}\n")),(0,s.mdx)("p",null,"And can also narrow the value of strings:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"function test(x: string): 'foo' {\n if (x === 'foo') {\n // Now Flow knows x has the type 'foo'\n return x;\n } else {\n return 'foo';\n }\n}\n")),(0,s.mdx)("p",null,"This is one of the many refinements that Flow currently can recognize and\nfollow, and we'll keep adding more! Stay tuned!"))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7550.c71fbb00.js b/assets/js/7550.c71fbb00.js new file mode 100644 index 00000000000..41635a4e77d --- /dev/null +++ b/assets/js/7550.c71fbb00.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7550],{57550:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>p,default:()=>m,frontMatter:()=>s,metadata:()=>r,toc:()=>o});var t=a(87462),i=(a(67294),a(3905));a(45475);const s={title:"Opaque Type Aliases",slug:"/types/opaque-types"},p=void 0,r={unversionedId:"types/opaque-types",id:"types/opaque-types",title:"Opaque Type Aliases",description:"Opaque type aliases are type aliases that do not allow access to their",source:"@site/docs/types/opaque-types.md",sourceDirName:"types",slug:"/types/opaque-types",permalink:"/en/docs/types/opaque-types",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/opaque-types.md",tags:[],version:"current",frontMatter:{title:"Opaque Type Aliases",slug:"/types/opaque-types"},sidebar:"docsSidebar",previous:{title:"Type Aliases",permalink:"/en/docs/types/aliases"},next:{title:"Interfaces",permalink:"/en/docs/types/interfaces"}},l={},o=[{value:"Opaque Type Alias Syntax",id:"toc-opaque-type-alias-syntax",level:2},{value:"Opaque Type Alias Type Checking",id:"toc-opaque-type-alias-type-checking",level:2},{value:"Within the Defining File",id:"toc-within-the-defining-file",level:3},{value:"Outside the Defining File",id:"toc-outside-the-defining-file",level:3},{value:"Subtyping Constraints",id:"toc-subtyping-constraints",level:3},{value:"Generics",id:"toc-generics",level:3},{value:"Library Definitions",id:"toc-library-definitions",level:3}],u={toc:o};function m(e){let{components:n,...a}=e;return(0,i.mdx)("wrapper",(0,t.Z)({},u,a,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Opaque type aliases are type aliases that do not allow access to their\nunderlying type outside of the file in which they are defined."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"opaque type ID = string;\n")),(0,i.mdx)("p",null,"Opaque type aliases, like regular type aliases, may be used anywhere a type can\nbe used."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"opaque type ID = string;\n\nfunction identity(x: ID): ID {\n return x;\n}\nexport type {ID};\n")),(0,i.mdx)("h2",{id:"toc-opaque-type-alias-syntax"},"Opaque Type Alias Syntax"),(0,i.mdx)("p",null,"Opaque type aliases are created using the words ",(0,i.mdx)("inlineCode",{parentName:"p"},"opaque type")," followed by its\nname, an equals sign ",(0,i.mdx)("inlineCode",{parentName:"p"},"="),", and a type definition."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"opaque type Alias = Type;\n")),(0,i.mdx)("p",null,"You can optionally add a subtyping constraint to an opaque type alias by adding\na colon ",(0,i.mdx)("inlineCode",{parentName:"p"},":")," and a type after the name."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"opaque type Alias: SuperType = Type;\n")),(0,i.mdx)("p",null,"Any type can appear as the super type or type of an opaque type alias."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"opaque type StringAlias = string;\nopaque type ObjectAlias = {\n property: string,\n method(): number,\n};\nopaque type UnionAlias = 1 | 2 | 3;\nopaque type AliasAlias: ObjectAlias = ObjectAlias;\nopaque type VeryOpaque: AliasAlias = ObjectAlias;\n")),(0,i.mdx)("h2",{id:"toc-opaque-type-alias-type-checking"},"Opaque Type Alias Type Checking"),(0,i.mdx)("h3",{id:"toc-within-the-defining-file"},"Within the Defining File"),(0,i.mdx)("p",null,"When in the same file the alias is defined, opaque type aliases behave exactly\nas regular ",(0,i.mdx)("a",{parentName:"p",href:"../aliases/"},"type aliases")," do."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"opaque type NumberAlias = number;\n\n(0: NumberAlias);\n\nfunction add(x: NumberAlias, y: NumberAlias): NumberAlias {\n return x + y;\n}\nfunction toNumberAlias(x: number): NumberAlias { return x; }\nfunction toNumber(x: NumberAlias): number { return x; }\n")),(0,i.mdx)("h3",{id:"toc-outside-the-defining-file"},"Outside the Defining File"),(0,i.mdx)("p",null,"When importing an opaque type alias, it behaves like a\n",(0,i.mdx)("a",{parentName:"p",href:"../../lang/nominal-structural/#toc-nominal-typing"},"nominal type"),", hiding its\nunderlying type."),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},(0,i.mdx)("inlineCode",{parentName:"strong"},"exports.js"))),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"export opaque type NumberAlias = number;\n")),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},(0,i.mdx)("inlineCode",{parentName:"strong"},"imports.js"))),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"import type {NumberAlias} from './exports';\n\n(0: NumberAlias) // Error: 0 is not a NumberAlias!\n\nfunction convert(x: NumberAlias): number {\n return x; // Error: x is not a number!\n}\n")),(0,i.mdx)("h3",{id:"toc-subtyping-constraints"},"Subtyping Constraints"),(0,i.mdx)("p",null,"When you add a subtyping constraint to an opaque type alias, we allow the opaque\ntype to be used as the super type when outside of the defining file."),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},(0,i.mdx)("inlineCode",{parentName:"strong"},"exports.js"))),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"export opaque type ID: string = string;\n")),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},(0,i.mdx)("inlineCode",{parentName:"strong"},"imports.js"))),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"import type {ID} from './exports';\n\nfunction formatID(x: ID): string {\n return \"ID: \" + x; // Ok! IDs are strings.\n}\n\nfunction toID(x: string): ID {\n return x; // Error: strings are not IDs.\n}\n")),(0,i.mdx)("p",null,"When you create an opaque type alias with a subtyping constraint, the type in\nthe type position must be a subtype of the type in the super type position."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":27,"endLine":1,"endColumn":32,"description":"number [1] is incompatible with string [2]. [incompatible-type]"}]','[{"startLine":1,"startColumn":27,"endLine":1,"endColumn":32,"description":"number':!0,"[1]":!0,is:!0,incompatible:!0,with:!0,string:!0,"[2].":!0,'[incompatible-type]"}]':!0},"opaque type Bad: string = number; // Error: number is not a subtype of string\nopaque type Good: {x: string, ...} = {x: string, y: number};\n")),(0,i.mdx)("h3",{id:"toc-generics"},"Generics"),(0,i.mdx)("p",null,"Opaque type aliases can also have their own ",(0,i.mdx)("a",{parentName:"p",href:"../generics/"},"generics"),",\nand they work exactly as generics do in regular ",(0,i.mdx)("a",{parentName:"p",href:"../aliases#toc-type-alias-generics"},"type aliases")),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"opaque type MyObject<A, B, C>: {foo: A, bar: B, ...} = {\n foo: A,\n bar: B,\n baz: C,\n};\n\nvar val: MyObject<number, boolean, string> = {\n foo: 1,\n bar: true,\n baz: 'three',\n};\n")),(0,i.mdx)("h3",{id:"toc-library-definitions"},"Library Definitions"),(0,i.mdx)("p",null,"You can also declare opaque type aliases in\n",(0,i.mdx)("a",{parentName:"p",href:"../../libdefs"},"libdefs"),". There, you omit the underlying\ntype, but may still optionally include a super type."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare opaque type Foo;\ndeclare opaque type PositiveNumber: number;\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7562.8aeb83c2.js b/assets/js/7562.8aeb83c2.js new file mode 100644 index 00000000000..5e640c39455 --- /dev/null +++ b/assets/js/7562.8aeb83c2.js @@ -0,0 +1,2 @@ +/*! For license information please see 7562.8aeb83c2.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7562],{37562:(e,n,s)=>{s.r(n),s.d(n,{conf:()=>t,language:()=>o});var t={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"#",blockComment:["<#","#>"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},o={defaultToken:"",ignoreCase:!0,tokenPostfix:".ps1",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],keywords:["begin","break","catch","class","continue","data","define","do","dynamicparam","else","elseif","end","exit","filter","finally","for","foreach","from","function","if","in","param","process","return","switch","throw","trap","try","until","using","var","while","workflow","parallel","sequence","inlinescript","configuration"],helpKeywords:/SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/,symbols:/[=><!~?&%|+\-*\/\^;\.,]+/,escapes:/`(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_][\w-]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":""}}],[/[ \t\r\n]+/,""],[/^:\w*/,"metatag"],[/\$(\{((global|local|private|script|using):)?[\w]+\}|((global|local|private|script|using):)?[\w]+)/,"variable"],[/<#/,"comment","@comment"],[/#.*$/,"comment"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+?/,"number"],[/[;,.]/,"delimiter"],[/\@"/,"string",'@herestring."'],[/\@'/,"string","@herestring.'"],[/"/,{cases:{"@eos":"string","@default":{token:"string",next:'@string."'}}}],[/'/,{cases:{"@eos":"string","@default":{token:"string",next:"@string.'"}}}]],string:[[/[^"'\$`]+/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/@escapes/,{cases:{"@eos":{token:"string.escape",next:"@popall"},"@default":"string.escape"}}],[/`./,{cases:{"@eos":{token:"string.escape.invalid",next:"@popall"},"@default":"string.escape.invalid"}}],[/\$[\w]+$/,{cases:{'$S2=="':{token:"variable",next:"@popall"},"@default":{token:"string",next:"@popall"}}}],[/\$[\w]+/,{cases:{'$S2=="':"variable","@default":"string"}}],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}}}]],herestring:[[/^\s*(["'])@/,{cases:{"$1==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/[^\$`]+/,"string"],[/@escapes/,"string.escape"],[/`./,"string.escape.invalid"],[/\$[\w]+/,{cases:{'$S2=="':"variable","@default":"string"}}]],comment:[[/[^#\.]+/,"comment"],[/#>/,"comment","@pop"],[/(\.)(@helpKeywords)(?!\w)/,{token:"comment.keyword.$2"}],[/[\.#]/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/7562.8aeb83c2.js.LICENSE.txt b/assets/js/7562.8aeb83c2.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/7562.8aeb83c2.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/7562.f9821228.js b/assets/js/7562.f9821228.js new file mode 100644 index 00000000000..6ce8de05cca --- /dev/null +++ b/assets/js/7562.f9821228.js @@ -0,0 +1,252 @@ +"use strict"; +exports.id = 7562; +exports.ids = [7562]; +exports.modules = { + +/***/ 37562: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/powershell/powershell.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "#", + blockComment: ["<#", "#>"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string", "comment"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + folding: { + markers: { + start: new RegExp("^\\s*#region\\b"), + end: new RegExp("^\\s*#endregion\\b") + } + } +}; +var language = { + defaultToken: "", + ignoreCase: true, + tokenPostfix: ".ps1", + brackets: [ + { token: "delimiter.curly", open: "{", close: "}" }, + { token: "delimiter.square", open: "[", close: "]" }, + { token: "delimiter.parenthesis", open: "(", close: ")" } + ], + keywords: [ + "begin", + "break", + "catch", + "class", + "continue", + "data", + "define", + "do", + "dynamicparam", + "else", + "elseif", + "end", + "exit", + "filter", + "finally", + "for", + "foreach", + "from", + "function", + "if", + "in", + "param", + "process", + "return", + "switch", + "throw", + "trap", + "try", + "until", + "using", + "var", + "while", + "workflow", + "parallel", + "sequence", + "inlinescript", + "configuration" + ], + helpKeywords: /SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/, + symbols: /[=><!~?&%|+\-*\/\^;\.,]+/, + escapes: /`(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + tokenizer: { + root: [ + [ + /[a-zA-Z_][\w-]*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "" + } + } + ], + [/[ \t\r\n]+/, ""], + [/^:\w*/, "metatag"], + [ + /\$(\{((global|local|private|script|using):)?[\w]+\}|((global|local|private|script|using):)?[\w]+)/, + "variable" + ], + [/<#/, "comment", "@comment"], + [/#.*$/, "comment"], + [/[{}()\[\]]/, "@brackets"], + [/@symbols/, "delimiter"], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, "number.hex"], + [/\d+?/, "number"], + [/[;,.]/, "delimiter"], + [/\@"/, "string", '@herestring."'], + [/\@'/, "string", "@herestring.'"], + [ + /"/, + { + cases: { + "@eos": "string", + "@default": { token: "string", next: '@string."' } + } + } + ], + [ + /'/, + { + cases: { + "@eos": "string", + "@default": { token: "string", next: "@string.'" } + } + } + ] + ], + string: [ + [ + /[^"'\$`]+/, + { + cases: { + "@eos": { token: "string", next: "@popall" }, + "@default": "string" + } + } + ], + [ + /@escapes/, + { + cases: { + "@eos": { token: "string.escape", next: "@popall" }, + "@default": "string.escape" + } + } + ], + [ + /`./, + { + cases: { + "@eos": { + token: "string.escape.invalid", + next: "@popall" + }, + "@default": "string.escape.invalid" + } + } + ], + [ + /\$[\w]+$/, + { + cases: { + '$S2=="': { token: "variable", next: "@popall" }, + "@default": { token: "string", next: "@popall" } + } + } + ], + [ + /\$[\w]+/, + { + cases: { + '$S2=="': "variable", + "@default": "string" + } + } + ], + [ + /["']/, + { + cases: { + "$#==$S2": { token: "string", next: "@pop" }, + "@default": { + cases: { + "@eos": { token: "string", next: "@popall" }, + "@default": "string" + } + } + } + } + ] + ], + herestring: [ + [ + /^\s*(["'])@/, + { + cases: { + "$1==$S2": { token: "string", next: "@pop" }, + "@default": "string" + } + } + ], + [/[^\$`]+/, "string"], + [/@escapes/, "string.escape"], + [/`./, "string.escape.invalid"], + [ + /\$[\w]+/, + { + cases: { + '$S2=="': "variable", + "@default": "string" + } + } + ] + ], + comment: [ + [/[^#\.]+/, "comment"], + [/#>/, "comment", "@pop"], + [/(\.)(@helpKeywords)(?!\w)/, { token: "comment.keyword.$2" }], + [/[\.#]/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/7637.a10259f0.js b/assets/js/7637.a10259f0.js new file mode 100644 index 00000000000..3c2635c797e --- /dev/null +++ b/assets/js/7637.a10259f0.js @@ -0,0 +1,2 @@ +/*! For license information please see 7637.a10259f0.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7637],{57637:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>o,language:()=>s});var o={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},s={tokenPostfix:".tcl",specialFunctions:["set","unset","rename","variable","proc","coroutine","foreach","incr","append","lappend","linsert","lreplace"],mainFunctions:["if","then","elseif","else","case","switch","while","for","break","continue","return","package","namespace","catch","exit","eval","expr","uplevel","upvar"],builtinFunctions:["file","info","concat","join","lindex","list","llength","lrange","lsearch","lsort","split","array","parray","binary","format","regexp","regsub","scan","string","subst","dict","cd","clock","exec","glob","pid","pwd","close","eof","fblocked","fconfigure","fcopy","fileevent","flush","gets","open","puts","read","seek","socket","tell","interp","after","auto_execok","auto_load","auto_mkindex","auto_reset","bgerror","error","global","history","load","source","time","trace","unknown","unset","update","vwait","winfo","wm","bind","event","pack","place","grid","font","bell","clipboard","destroy","focus","grab","lower","option","raise","selection","send","tk","tkwait","tk_bisque","tk_focusNext","tk_focusPrev","tk_focusFollowsMouse","tk_popup","tk_setPalette"],symbols:/[=><!~?:&|+\-*\/\^%]+/,brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],escapes:/\\(?:[abfnrtv\\"'\[\]\{\};\$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,variables:/(?:\$+(?:(?:\:\:?)?[a-zA-Z_]\w*)+)/,tokenizer:{root:[[/[a-zA-Z_]\w*/,{cases:{"@specialFunctions":{token:"keyword.flow",next:"@specialFunc"},"@mainFunctions":"keyword","@builtinFunctions":"variable","@default":"operator.scss"}}],[/\s+\-+(?!\d|\.)\w*|{\*}/,"metatag"],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/@symbols/,"operator"],[/\$+(?:\:\:)?\{/,{token:"identifier",next:"@nestedVariable"}],[/@variables/,"type.identifier"],[/\.(?!\d|\.)[\w\-]*/,"operator.sql"],[/\d+(\.\d+)?/,"number"],[/\d+/,"number"],[/;/,"delimiter"],[/"/,{token:"string.quote",bracket:"@open",next:"@dstring"}],[/'/,{token:"string.quote",bracket:"@open",next:"@sstring"}]],dstring:[[/\[/,{token:"@brackets",next:"@nestedCall"}],[/\$+(?:\:\:)?\{/,{token:"identifier",next:"@nestedVariable"}],[/@variables/,"type.identifier"],[/[^\\$\[\]"]+/,"string"],[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],sstring:[[/\[/,{token:"@brackets",next:"@nestedCall"}],[/\$+(?:\:\:)?\{/,{token:"identifier",next:"@nestedVariable"}],[/@variables/,"type.identifier"],[/[^\\$\[\]']+/,"string"],[/@escapes/,"string.escape"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/#.*\\$/,{token:"comment",next:"@newlineComment"}],[/#.*(?!\\)$/,"comment"]],newlineComment:[[/.*\\$/,"comment"],[/.*(?!\\)$/,{token:"comment",next:"@pop"}]],nestedVariable:[[/[^\{\}\$]+/,"type.identifier"],[/\}/,{token:"identifier",next:"@pop"}]],nestedCall:[[/\[/,{token:"@brackets",next:"@nestedCall"}],[/\]/,{token:"@brackets",next:"@pop"}],{include:"root"}],specialFunc:[[/"/,{token:"string",next:"@dstring"}],[/'/,{token:"string",next:"@sstring"}],[/\S+/,{token:"type",next:"@pop"}]]}}}}]); \ No newline at end of file diff --git a/assets/js/7637.a10259f0.js.LICENSE.txt b/assets/js/7637.a10259f0.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/7637.a10259f0.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/7637.aff67a32.js b/assets/js/7637.aff67a32.js new file mode 100644 index 00000000000..b0215292df2 --- /dev/null +++ b/assets/js/7637.aff67a32.js @@ -0,0 +1,251 @@ +"use strict"; +exports.id = 7637; +exports.ids = [7637]; +exports.modules = { + +/***/ 57637: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/tcl/tcl.ts +var conf = { + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + tokenPostfix: ".tcl", + specialFunctions: [ + "set", + "unset", + "rename", + "variable", + "proc", + "coroutine", + "foreach", + "incr", + "append", + "lappend", + "linsert", + "lreplace" + ], + mainFunctions: [ + "if", + "then", + "elseif", + "else", + "case", + "switch", + "while", + "for", + "break", + "continue", + "return", + "package", + "namespace", + "catch", + "exit", + "eval", + "expr", + "uplevel", + "upvar" + ], + builtinFunctions: [ + "file", + "info", + "concat", + "join", + "lindex", + "list", + "llength", + "lrange", + "lsearch", + "lsort", + "split", + "array", + "parray", + "binary", + "format", + "regexp", + "regsub", + "scan", + "string", + "subst", + "dict", + "cd", + "clock", + "exec", + "glob", + "pid", + "pwd", + "close", + "eof", + "fblocked", + "fconfigure", + "fcopy", + "fileevent", + "flush", + "gets", + "open", + "puts", + "read", + "seek", + "socket", + "tell", + "interp", + "after", + "auto_execok", + "auto_load", + "auto_mkindex", + "auto_reset", + "bgerror", + "error", + "global", + "history", + "load", + "source", + "time", + "trace", + "unknown", + "unset", + "update", + "vwait", + "winfo", + "wm", + "bind", + "event", + "pack", + "place", + "grid", + "font", + "bell", + "clipboard", + "destroy", + "focus", + "grab", + "lower", + "option", + "raise", + "selection", + "send", + "tk", + "tkwait", + "tk_bisque", + "tk_focusNext", + "tk_focusPrev", + "tk_focusFollowsMouse", + "tk_popup", + "tk_setPalette" + ], + symbols: /[=><!~?:&|+\-*\/\^%]+/, + brackets: [ + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" } + ], + escapes: /\\(?:[abfnrtv\\"'\[\]\{\};\$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + variables: /(?:\$+(?:(?:\:\:?)?[a-zA-Z_]\w*)+)/, + tokenizer: { + root: [ + [ + /[a-zA-Z_]\w*/, + { + cases: { + "@specialFunctions": { + token: "keyword.flow", + next: "@specialFunc" + }, + "@mainFunctions": "keyword", + "@builtinFunctions": "variable", + "@default": "operator.scss" + } + } + ], + [/\s+\-+(?!\d|\.)\w*|{\*}/, "metatag"], + { include: "@whitespace" }, + [/[{}()\[\]]/, "@brackets"], + [/@symbols/, "operator"], + [/\$+(?:\:\:)?\{/, { token: "identifier", next: "@nestedVariable" }], + [/@variables/, "type.identifier"], + [/\.(?!\d|\.)[\w\-]*/, "operator.sql"], + [/\d+(\.\d+)?/, "number"], + [/\d+/, "number"], + [/;/, "delimiter"], + [/"/, { token: "string.quote", bracket: "@open", next: "@dstring" }], + [/'/, { token: "string.quote", bracket: "@open", next: "@sstring" }] + ], + dstring: [ + [/\[/, { token: "@brackets", next: "@nestedCall" }], + [/\$+(?:\:\:)?\{/, { token: "identifier", next: "@nestedVariable" }], + [/@variables/, "type.identifier"], + [/[^\\$\[\]"]+/, "string"], + [/@escapes/, "string.escape"], + [/"/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + sstring: [ + [/\[/, { token: "@brackets", next: "@nestedCall" }], + [/\$+(?:\:\:)?\{/, { token: "identifier", next: "@nestedVariable" }], + [/@variables/, "type.identifier"], + [/[^\\$\[\]']+/, "string"], + [/@escapes/, "string.escape"], + [/'/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/#.*\\$/, { token: "comment", next: "@newlineComment" }], + [/#.*(?!\\)$/, "comment"] + ], + newlineComment: [ + [/.*\\$/, "comment"], + [/.*(?!\\)$/, { token: "comment", next: "@pop" }] + ], + nestedVariable: [ + [/[^\{\}\$]+/, "type.identifier"], + [/\}/, { token: "identifier", next: "@pop" }] + ], + nestedCall: [ + [/\[/, { token: "@brackets", next: "@nestedCall" }], + [/\]/, { token: "@brackets", next: "@pop" }], + { include: "root" } + ], + specialFunc: [ + [/"/, { token: "string", next: "@dstring" }], + [/'/, { token: "string", next: "@sstring" }], + [/\S+/, { token: "type", next: "@pop" }] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/7667.b9d7153f.js b/assets/js/7667.b9d7153f.js new file mode 100644 index 00000000000..9195df456c7 --- /dev/null +++ b/assets/js/7667.b9d7153f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7667],{7667:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>l,metadata:()=>r,toc:()=>u});var t=a(87462),i=(a(67294),a(3905));a(45475);const l={title:"Type Refinements",slug:"/lang/refinements"},o=void 0,r={unversionedId:"lang/refinements",id:"lang/refinements",title:"Type Refinements",description:"Refinements allow us to narrow the type of a value based on conditional tests.",source:"@site/docs/lang/refinements.md",sourceDirName:"lang",slug:"/lang/refinements",permalink:"/en/docs/lang/refinements",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/refinements.md",tags:[],version:"current",frontMatter:{title:"Type Refinements",slug:"/lang/refinements"},sidebar:"docsSidebar",previous:{title:"Width Subtyping",permalink:"/en/docs/lang/width-subtyping"},next:{title:"Lazy Mode",permalink:"/en/docs/lang/lazy-modes"}},s={},u=[{value:"Ways to refine in Flow",id:"ways-to-refine-in-flow",level:2},{value:"<code>typeof</code> checks",id:"typeof-checks",level:3},{value:"Equality checks",id:"equality-checks",level:3},{value:"Truthiness checks",id:"truthiness-checks",level:3},{value:"<code>instanceof</code> checks",id:"instanceof-checks",level:3},{value:"Assignments",id:"assignments",level:3},{value:"Type Guards",id:"type-guards",level:3},{value:"Refinement Invalidations",id:"toc-refinement-invalidations",level:2}],d={toc:u};function p(e){let{components:n,...a}=e;return(0,i.mdx)("wrapper",(0,t.Z)({},d,a,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Refinements allow us to narrow the type of a value based on conditional tests."),(0,i.mdx)("p",null,"For example, in the function below ",(0,i.mdx)("inlineCode",{parentName:"p"},"value")," is a ",(0,i.mdx)("a",{parentName:"p",href:"../../types/unions"},"union")," of ",(0,i.mdx)("inlineCode",{parentName:"p"},'"A"')," or ",(0,i.mdx)("inlineCode",{parentName:"p"},'"B"'),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(value: "A" | "B") {\n if (value === "A") {\n (value: "A");\n }\n}\n')),(0,i.mdx)("p",null,"Inside of the ",(0,i.mdx)("inlineCode",{parentName:"p"},"if")," block we know that value must be ",(0,i.mdx)("inlineCode",{parentName:"p"},'"A"')," because that's the only\ntime the if-statement will be true."),(0,i.mdx)("p",null,"The ability for a static type checker to be able to tell that the value inside\nthe if statement must be ",(0,i.mdx)("inlineCode",{parentName:"p"},'"A"')," is known as a refinement."),(0,i.mdx)("p",null,"Next we'll add an ",(0,i.mdx)("inlineCode",{parentName:"p"},"else")," block to our if statement."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(value: "A" | "B") {\n if (value === "A") {\n (value: "A");\n } else {\n (value: "B");\n }\n}\n')),(0,i.mdx)("p",null,"Inside of the ",(0,i.mdx)("inlineCode",{parentName:"p"},"else")," block we know that value must be ",(0,i.mdx)("inlineCode",{parentName:"p"},'"B"')," because it can only\nbe ",(0,i.mdx)("inlineCode",{parentName:"p"},'"A"')," or ",(0,i.mdx)("inlineCode",{parentName:"p"},'"B"')," and we've removed ",(0,i.mdx)("inlineCode",{parentName:"p"},'"A"')," from the possibilities."),(0,i.mdx)("h2",{id:"ways-to-refine-in-flow"},"Ways to refine in Flow"),(0,i.mdx)("h3",{id:"typeof-checks"},(0,i.mdx)("inlineCode",{parentName:"h3"},"typeof")," checks"),(0,i.mdx)("p",null,"You can use a ",(0,i.mdx)("inlineCode",{parentName:"p"},'typeof value === "<type>"')," check to refine a value to one of the categories supported by the ",(0,i.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof"},(0,i.mdx)("inlineCode",{parentName:"a"},"typeof"))," operator."),(0,i.mdx)("p",null,"The ",(0,i.mdx)("inlineCode",{parentName:"p"},"typeof")," operator can output ",(0,i.mdx)("inlineCode",{parentName:"p"},'"undefined"'),",",(0,i.mdx)("inlineCode",{parentName:"p"},'"boolean"'),", ",(0,i.mdx)("inlineCode",{parentName:"p"},'"number"'),", ",(0,i.mdx)("inlineCode",{parentName:"p"},'"bigint"'),", ",(0,i.mdx)("inlineCode",{parentName:"p"},'"string"'),", ",(0,i.mdx)("inlineCode",{parentName:"p"},'"symbol"'),", ",(0,i.mdx)("inlineCode",{parentName:"p"},'"function"'),", or ",(0,i.mdx)("inlineCode",{parentName:"p"},'"object"'),"."),(0,i.mdx)("p",null,"Keep in mind that the ",(0,i.mdx)("inlineCode",{parentName:"p"},"typeof")," operator will return ",(0,i.mdx)("inlineCode",{parentName:"p"},'"object"')," for objects, but also ",(0,i.mdx)("inlineCode",{parentName:"p"},"null")," and arrays as well."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(value: mixed) {\n if (typeof value === "string") {\n (value: string);\n } else if (typeof value === "boolean") {\n (value: boolean);\n } else if (typeof value === "object") {\n // `value` could be null, an array, or an object\n (value: null | interface {} | $ReadOnlyArray<mixed>);\n }\n}\n')),(0,i.mdx)("p",null,"To check for ",(0,i.mdx)("inlineCode",{parentName:"p"},"null"),", use a ",(0,i.mdx)("inlineCode",{parentName:"p"},"value === null")," ",(0,i.mdx)("a",{parentName:"p",href:"#equality-checks"},"equality")," check."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(value: mixed) {\n if (value === null) {\n (value: null); // `value` is null\n }\n}\n")),(0,i.mdx)("p",null,"To check for ",(0,i.mdx)("a",{parentName:"p",href:"../../types/arrays"},"arrays"),", use ",(0,i.mdx)("inlineCode",{parentName:"p"},"Array.isArray"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(value: mixed) {\n if (Array.isArray(value)) {\n (value: $ReadOnlyArray<mixed>); // `value` is an array\n }\n}\n")),(0,i.mdx)("h3",{id:"equality-checks"},"Equality checks"),(0,i.mdx)("p",null,"As shown in the introductory example, you can use an equality check to narrow a value to a specific type.\nThis also applies to equality checks made in ",(0,i.mdx)("inlineCode",{parentName:"p"},"switch")," statements."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(value: "A" | "B" | "C") {\n if (value === "A") {\n (value: "A");\n } else {\n (value: "B" | "C");\n }\n\n switch (value) {\n case "A":\n (value: "A");\n break;\n case "B":\n (value: "B");\n break;\n case "C":\n (value: "C");\n break;\n }\n}\n')),(0,i.mdx)("p",null,"While in general it is not recommended to use ",(0,i.mdx)("inlineCode",{parentName:"p"},"==")," in JavaScript, due to the coercions it performs,\ndoing ",(0,i.mdx)("inlineCode",{parentName:"p"},"value == null")," (or ",(0,i.mdx)("inlineCode",{parentName:"p"},"value != null"),") checks ",(0,i.mdx)("inlineCode",{parentName:"p"},"value")," exactly for ",(0,i.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"void"),".\nThis works well with Flow's ",(0,i.mdx)("a",{parentName:"p",href:"../../types/maybe"},"maybe")," types, which create a union with ",(0,i.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"void"),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(value: ?string) {\n if (value != null) {\n (value: string);\n } else {\n (value: null | void);\n }\n}\n")),(0,i.mdx)("p",null,"You can refine a union of object types based on a common tag, which we call ",(0,i.mdx)("a",{parentName:"p",href:"../../types/unions/#toc-disjoint-object-unions"},"disjoint object unions"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'type A = {type: "A", s: string};\ntype B = {type: "B", n: number};\n\nfunction func(value: A | B) {\n if (value.type === "A") {\n // `value` is A\n (value.s: string); // Works\n } else {\n // `value` is B\n (value.n: number); // Works\n }\n}\n')),(0,i.mdx)("h3",{id:"truthiness-checks"},"Truthiness checks"),(0,i.mdx)("p",null,"You can use non-booleans in JavaScript conditionals.\n",(0,i.mdx)("inlineCode",{parentName:"p"},"0"),", ",(0,i.mdx)("inlineCode",{parentName:"p"},"NaN"),", ",(0,i.mdx)("inlineCode",{parentName:"p"},'""'),", ",(0,i.mdx)("inlineCode",{parentName:"p"},"null"),", and ",(0,i.mdx)("inlineCode",{parentName:"p"},"undefined")," will all coerce to ",(0,i.mdx)("inlineCode",{parentName:"p"},"false"),' (and so are considered "falsey").\nOther values will coerce to ',(0,i.mdx)("inlineCode",{parentName:"p"},"true"),' (and so are considered "truthy").'),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":6,"endLine":5,"endColumn":10,"description":"Cannot cast `value` to union type because string [1] is incompatible with literal union [2]. [incompatible-cast]"}]','[{"startLine":5,"startColumn":6,"endLine":5,"endColumn":10,"description":"Cannot':!0,cast:!0,"`value`":!0,to:!0,union:!0,type:!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,literal:!0,"[2].":!0,'[incompatible-cast]"}]':!0},'function func(value: ?string) {\n if (value) {\n (value: string); // Works\n } else {\n (value: null | void); // Error! Could still be the empty string ""\n }\n}\n')),(0,i.mdx)("p",null,"You can see in the above example why doing a truthy check when your value can be a string or number is not suggested:\nit is possible to unintentionally check against the ",(0,i.mdx)("inlineCode",{parentName:"p"},'""')," or ",(0,i.mdx)("inlineCode",{parentName:"p"},"0"),".\nWe created a ",(0,i.mdx)("a",{parentName:"p",href:"../../linting"},"Flow lint")," called ",(0,i.mdx)("a",{parentName:"p",href:"../../linting/rule-reference/#toc-sketchy-null"},"sketchy-null")," to guard against this scenario:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":7,"endLine":3,"endColumn":11,"description":"Sketchy null check on string [1] which is potentially an empty string. Perhaps you meant to check for null or undefined [2]? [sketchy-null-string]"}]','[{"startLine":3,"startColumn":7,"endLine":3,"endColumn":11,"description":"Sketchy':!0,null:!0,check:!0,on:!0,string:!0,"[1]":!0,which:!0,is:!0,potentially:!0,an:!0,empty:!0,"string.":!0,Perhaps:!0,you:!0,meant:!0,to:!0,for:!0,or:!0,undefined:!0,"[2]?":!0,'[sketchy-null-string]"}]':!0},"// flowlint sketchy-null:error\nfunction func(value: ?string) {\n if (value) { // Error!\n }\n}\n")),(0,i.mdx)("h3",{id:"instanceof-checks"},(0,i.mdx)("inlineCode",{parentName:"h3"},"instanceof")," checks"),(0,i.mdx)("p",null,"You can use the ",(0,i.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof"},"instanceof")," operator to narrow a value as well.\nIt checks if the supplied constructor's prototype is anywhere in a value's prototype chain."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":16,"startColumn":11,"endLine":16,"endColumn":15,"description":"Cannot call `value.build` because property `build` is missing in `A` [1]. [prop-missing]"}]','[{"startLine":16,"startColumn":11,"endLine":16,"endColumn":15,"description":"Cannot':!0,call:!0,"`value.build`":!0,because:!0,property:!0,"`build`":!0,is:!0,missing:!0,in:!0,"`A`":!0,"[1].":!0,'[prop-missing]"}]':!0},"class A {\n amaze(): void {}\n}\nclass B extends A {\n build(): void {}\n}\n\nfunction func(value: mixed) {\n if (value instanceof B) {\n value.amaze(); // Works\n value.build(); // Works\n }\n\n if (value instanceof A) {\n value.amaze(); // Works\n value.build(); // Error\n }\n\n if (value instanceof Object) {\n value.toString(); // Works\n }\n}\n")),(0,i.mdx)("h3",{id:"assignments"},"Assignments"),(0,i.mdx)("p",null,"Flow follows your control flow and narrows the type of a variable after you have assigned to it."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'declare const b: boolean;\n\nlet x: ?string = b ? "str" : null;\n\n(x: ?string);\n\nx = "hi";\n\n// We know `x` must now be a string after the assignment\n(x: string); // Works\n')),(0,i.mdx)("h3",{id:"type-guards"},"Type Guards"),(0,i.mdx)("p",null,"You can create a reusable refinement by defining a function which is a ",(0,i.mdx)("a",{parentName:"p",href:"../../types/type-guards/"},"type guard"),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function nonMaybe<T>(x: ?T): x is T {\n return x != null;\n}\n\nfunction func(value: ?string) {\n if (nonMaybe(value)) {\n (value: string); // Works!\n }\n}\n")),(0,i.mdx)("h2",{id:"toc-refinement-invalidations"},"Refinement Invalidations"),(0,i.mdx)("p",null,"It is also possible to invalidate refinements, for example:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":16,"endLine":6,"endColumn":21,"description":"Cannot call `value.prop.charAt` because property `charAt` is missing in undefined [1]. [incompatible-use]"}]','[{"startLine":6,"startColumn":16,"endLine":6,"endColumn":21,"description":"Cannot':!0,call:!0,"`value.prop.charAt`":!0,because:!0,property:!0,"`charAt`":!0,is:!0,missing:!0,in:!0,undefined:!0,"[1].":!0,'[incompatible-use]"}]':!0},"function otherFunc() { /* ... */ }\n\nfunction func(value: {prop?: string}) {\n if (value.prop) {\n otherFunc();\n value.prop.charAt(0); // Error!\n }\n}\n")),(0,i.mdx)("p",null,"The reason for this is that we don't know that ",(0,i.mdx)("inlineCode",{parentName:"p"},"otherFunc()")," hasn't done\nsomething to our value. Imagine the following scenario:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":12,"startColumn":16,"endLine":12,"endColumn":21,"description":"Cannot call `value.prop.charAt` because property `charAt` is missing in undefined [1]. [incompatible-use]"}]','[{"startLine":12,"startColumn":16,"endLine":12,"endColumn":21,"description":"Cannot':!0,call:!0,"`value.prop.charAt`":!0,because:!0,property:!0,"`charAt`":!0,is:!0,missing:!0,in:!0,undefined:!0,"[1].":!0,'[incompatible-use]"}]':!0},'const obj: {prop?: string} = {prop: "test"};\n\nfunction otherFunc() {\n if (Math.random() > 0.5) {\n delete obj.prop;\n }\n}\n\nfunction func(value: {prop?: string}) {\n if (value.prop) {\n otherFunc();\n value.prop.charAt(0); // Error!\n }\n}\n\nfunc(obj);\n')),(0,i.mdx)("p",null,"Inside of ",(0,i.mdx)("inlineCode",{parentName:"p"},"otherFunc()")," we sometimes remove ",(0,i.mdx)("inlineCode",{parentName:"p"},"prop"),". Flow doesn't know if the\n",(0,i.mdx)("inlineCode",{parentName:"p"},"if (value.prop)")," check is still true, so it invalidates the refinement."),(0,i.mdx)("p",null,"There's a straightforward way to get around this. Store the value before\ncalling another function and use the stored value instead. This way you can\nprevent the refinement from invalidating."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function otherFunc() { /* ... */ }\n\nfunction func(value: {prop?: string}) {\n if (value.prop) {\n const prop = value.prop;\n otherFunc();\n prop.charAt(0);\n }\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7678.09b0f00f.js b/assets/js/7678.09b0f00f.js new file mode 100644 index 00000000000..b0cbd8f420f --- /dev/null +++ b/assets/js/7678.09b0f00f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7678],{67678:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>u,toc:()=>l});var o=n(87462),s=(n(67294),n(3905));const a={title:"Flow can now detect unused Promises","short-title":"Flow can now detect unused Promises",author:"David Richey","medium-link":"https://medium.com/flow-type/flow-can-now-detect-unused-promises-b49341256640"},i=void 0,u={permalink:"/blog/2023/04/10/Unused-Promise",source:"@site/blog/2023-04-10-Unused-Promise.md",title:"Flow can now detect unused Promises",description:"As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous,",date:"2023-04-10T00:00:00.000Z",formattedDate:"April 10, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"David Richey"}],frontMatter:{title:"Flow can now detect unused Promises","short-title":"Flow can now detect unused Promises",author:"David Richey","medium-link":"https://medium.com/flow-type/flow-can-now-detect-unused-promises-b49341256640"},prevItem:{title:"Announcing 5 new Flow tuple type features",permalink:"/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features"},nextItem:{title:"Announcing Partial & Required Flow utility types + catch annotations",permalink:"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations"}},r={authorsImageUrls:[void 0]},l=[],d={toc:l};function c(e){let{components:t,...n}=e;return(0,s.mdx)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous,\nbecause errors are potentially unhandled, and the code may not execute in the intended order. They are\nusually mistakes that Flow is perfectly positioned to warn you about."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7724.5b44829a.js b/assets/js/7724.5b44829a.js new file mode 100644 index 00000000000..2a390dd5389 --- /dev/null +++ b/assets/js/7724.5b44829a.js @@ -0,0 +1,41607 @@ +exports.id = 7724; +exports.ids = [7724]; +exports.modules = { + +/***/ 84182: +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +(function webpackUniversalModuleDefinition(root, factory) { + if(true) + module.exports = factory(__webpack_require__(82241)); + else {} +})(this, function(__WEBPACK_EXTERNAL_MODULE_0__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __nested_webpack_require_643__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_643__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __nested_webpack_require_643__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __nested_webpack_require_643__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __nested_webpack_require_643__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __nested_webpack_require_643__.d = function(exports, name, getter) { +/******/ if(!__nested_webpack_require_643__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __nested_webpack_require_643__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __nested_webpack_require_643__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __nested_webpack_require_643__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __nested_webpack_require_643__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __nested_webpack_require_643__(__nested_webpack_require_643__.s = 7); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_0__; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __nested_webpack_require_3185__) { + +"use strict"; + + +var FDLayoutConstants = __nested_webpack_require_3185__(0).FDLayoutConstants; + +function CoSEConstants() {} + +//CoSEConstants inherits static props in FDLayoutConstants +for (var prop in FDLayoutConstants) { + CoSEConstants[prop] = FDLayoutConstants[prop]; +} + +CoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING = false; +CoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH; +CoSEConstants.DEFAULT_COMPONENT_SEPERATION = 60; +CoSEConstants.TILE = true; +CoSEConstants.TILING_PADDING_VERTICAL = 10; +CoSEConstants.TILING_PADDING_HORIZONTAL = 10; +CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = false; // make this true when cose is used incrementally as a part of other non-incremental layout + +module.exports = CoSEConstants; + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __nested_webpack_require_4002__) { + +"use strict"; + + +var FDLayoutEdge = __nested_webpack_require_4002__(0).FDLayoutEdge; + +function CoSEEdge(source, target, vEdge) { + FDLayoutEdge.call(this, source, target, vEdge); +} + +CoSEEdge.prototype = Object.create(FDLayoutEdge.prototype); +for (var prop in FDLayoutEdge) { + CoSEEdge[prop] = FDLayoutEdge[prop]; +} + +module.exports = CoSEEdge; + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __nested_webpack_require_4409__) { + +"use strict"; + + +var LGraph = __nested_webpack_require_4409__(0).LGraph; + +function CoSEGraph(parent, graphMgr, vGraph) { + LGraph.call(this, parent, graphMgr, vGraph); +} + +CoSEGraph.prototype = Object.create(LGraph.prototype); +for (var prop in LGraph) { + CoSEGraph[prop] = LGraph[prop]; +} + +module.exports = CoSEGraph; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __nested_webpack_require_4790__) { + +"use strict"; + + +var LGraphManager = __nested_webpack_require_4790__(0).LGraphManager; + +function CoSEGraphManager(layout) { + LGraphManager.call(this, layout); +} + +CoSEGraphManager.prototype = Object.create(LGraphManager.prototype); +for (var prop in LGraphManager) { + CoSEGraphManager[prop] = LGraphManager[prop]; +} + +module.exports = CoSEGraphManager; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __nested_webpack_require_5205__) { + +"use strict"; + + +var FDLayoutNode = __nested_webpack_require_5205__(0).FDLayoutNode; +var IMath = __nested_webpack_require_5205__(0).IMath; + +function CoSENode(gm, loc, size, vNode) { + FDLayoutNode.call(this, gm, loc, size, vNode); +} + +CoSENode.prototype = Object.create(FDLayoutNode.prototype); +for (var prop in FDLayoutNode) { + CoSENode[prop] = FDLayoutNode[prop]; +} + +CoSENode.prototype.move = function () { + var layout = this.graphManager.getLayout(); + this.displacementX = layout.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.noOfChildren; + this.displacementY = layout.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.noOfChildren; + + if (Math.abs(this.displacementX) > layout.coolingFactor * layout.maxNodeDisplacement) { + this.displacementX = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementX); + } + + if (Math.abs(this.displacementY) > layout.coolingFactor * layout.maxNodeDisplacement) { + this.displacementY = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementY); + } + + // a simple node, just move it + if (this.child == null) { + this.moveBy(this.displacementX, this.displacementY); + } + // an empty compound node, again just move it + else if (this.child.getNodes().length == 0) { + this.moveBy(this.displacementX, this.displacementY); + } + // non-empty compound node, propogate movement to children as well + else { + this.propogateDisplacementToChildren(this.displacementX, this.displacementY); + } + + layout.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; +}; + +CoSENode.prototype.propogateDisplacementToChildren = function (dX, dY) { + var nodes = this.getChild().getNodes(); + var node; + for (var i = 0; i < nodes.length; i++) { + node = nodes[i]; + if (node.getChild() == null) { + node.moveBy(dX, dY); + node.displacementX += dX; + node.displacementY += dY; + } else { + node.propogateDisplacementToChildren(dX, dY); + } + } +}; + +CoSENode.prototype.setPred1 = function (pred1) { + this.pred1 = pred1; +}; + +CoSENode.prototype.getPred1 = function () { + return pred1; +}; + +CoSENode.prototype.getPred2 = function () { + return pred2; +}; + +CoSENode.prototype.setNext = function (next) { + this.next = next; +}; + +CoSENode.prototype.getNext = function () { + return next; +}; + +CoSENode.prototype.setProcessed = function (processed) { + this.processed = processed; +}; + +CoSENode.prototype.isProcessed = function () { + return processed; +}; + +module.exports = CoSENode; + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __nested_webpack_require_8085__) { + +"use strict"; + + +var FDLayout = __nested_webpack_require_8085__(0).FDLayout; +var CoSEGraphManager = __nested_webpack_require_8085__(4); +var CoSEGraph = __nested_webpack_require_8085__(3); +var CoSENode = __nested_webpack_require_8085__(5); +var CoSEEdge = __nested_webpack_require_8085__(2); +var CoSEConstants = __nested_webpack_require_8085__(1); +var FDLayoutConstants = __nested_webpack_require_8085__(0).FDLayoutConstants; +var LayoutConstants = __nested_webpack_require_8085__(0).LayoutConstants; +var Point = __nested_webpack_require_8085__(0).Point; +var PointD = __nested_webpack_require_8085__(0).PointD; +var Layout = __nested_webpack_require_8085__(0).Layout; +var Integer = __nested_webpack_require_8085__(0).Integer; +var IGeometry = __nested_webpack_require_8085__(0).IGeometry; +var LGraph = __nested_webpack_require_8085__(0).LGraph; +var Transform = __nested_webpack_require_8085__(0).Transform; + +function CoSELayout() { + FDLayout.call(this); + + this.toBeTiled = {}; // Memorize if a node is to be tiled or is tiled +} + +CoSELayout.prototype = Object.create(FDLayout.prototype); + +for (var prop in FDLayout) { + CoSELayout[prop] = FDLayout[prop]; +} + +CoSELayout.prototype.newGraphManager = function () { + var gm = new CoSEGraphManager(this); + this.graphManager = gm; + return gm; +}; + +CoSELayout.prototype.newGraph = function (vGraph) { + return new CoSEGraph(null, this.graphManager, vGraph); +}; + +CoSELayout.prototype.newNode = function (vNode) { + return new CoSENode(this.graphManager, vNode); +}; + +CoSELayout.prototype.newEdge = function (vEdge) { + return new CoSEEdge(null, null, vEdge); +}; + +CoSELayout.prototype.initParameters = function () { + FDLayout.prototype.initParameters.call(this, arguments); + if (!this.isSubLayout) { + if (CoSEConstants.DEFAULT_EDGE_LENGTH < 10) { + this.idealEdgeLength = 10; + } else { + this.idealEdgeLength = CoSEConstants.DEFAULT_EDGE_LENGTH; + } + + this.useSmartIdealEdgeLengthCalculation = CoSEConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION; + this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH; + this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH; + this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH; + this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH; + this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR; + this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR; + + // variables for tree reduction support + this.prunedNodesAll = []; + this.growTreeIterations = 0; + this.afterGrowthIterations = 0; + this.isTreeGrowing = false; + this.isGrowthFinished = false; + + // variables for cooling + this.coolingCycle = 0; + this.maxCoolingCycle = this.maxIterations / FDLayoutConstants.CONVERGENCE_CHECK_PERIOD; + this.finalTemperature = FDLayoutConstants.CONVERGENCE_CHECK_PERIOD / this.maxIterations; + this.coolingAdjuster = 1; + } +}; + +CoSELayout.prototype.layout = function () { + var createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED; + if (createBendsAsNeeded) { + this.createBendpoints(); + this.graphManager.resetAllEdges(); + } + + this.level = 0; + return this.classicLayout(); +}; + +CoSELayout.prototype.classicLayout = function () { + this.nodesWithGravity = this.calculateNodesToApplyGravitationTo(); + this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity); + this.calcNoOfChildrenForAllNodes(); + this.graphManager.calcLowestCommonAncestors(); + this.graphManager.calcInclusionTreeDepths(); + this.graphManager.getRoot().calcEstimatedSize(); + this.calcIdealEdgeLengths(); + + if (!this.incremental) { + var forest = this.getFlatForest(); + + // The graph associated with this layout is flat and a forest + if (forest.length > 0) { + this.positionNodesRadially(forest); + } + // The graph associated with this layout is not flat or a forest + else { + // Reduce the trees when incremental mode is not enabled and graph is not a forest + this.reduceTrees(); + // Update nodes that gravity will be applied + this.graphManager.resetAllNodesToApplyGravitation(); + var allNodes = new Set(this.getAllNodes()); + var intersection = this.nodesWithGravity.filter(function (x) { + return allNodes.has(x); + }); + this.graphManager.setAllNodesToApplyGravitation(intersection); + + this.positionNodesRandomly(); + } + } else { + if (CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL) { + // Reduce the trees in incremental mode if only this constant is set to true + this.reduceTrees(); + // Update nodes that gravity will be applied + this.graphManager.resetAllNodesToApplyGravitation(); + var allNodes = new Set(this.getAllNodes()); + var intersection = this.nodesWithGravity.filter(function (x) { + return allNodes.has(x); + }); + this.graphManager.setAllNodesToApplyGravitation(intersection); + } + } + + this.initSpringEmbedder(); + this.runSpringEmbedder(); + + return true; +}; + +CoSELayout.prototype.tick = function () { + this.totalIterations++; + + if (this.totalIterations === this.maxIterations && !this.isTreeGrowing && !this.isGrowthFinished) { + if (this.prunedNodesAll.length > 0) { + this.isTreeGrowing = true; + } else { + return true; + } + } + + if (this.totalIterations % FDLayoutConstants.CONVERGENCE_CHECK_PERIOD == 0 && !this.isTreeGrowing && !this.isGrowthFinished) { + if (this.isConverged()) { + if (this.prunedNodesAll.length > 0) { + this.isTreeGrowing = true; + } else { + return true; + } + } + + this.coolingCycle++; + + if (this.layoutQuality == 0) { + // quality - "draft" + this.coolingAdjuster = this.coolingCycle; + } else if (this.layoutQuality == 1) { + // quality - "default" + this.coolingAdjuster = this.coolingCycle / 3; + } + + // cooling schedule is based on http://www.btluke.com/simanf1.html -> cooling schedule 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)); + } + // Operations while tree is growing again + if (this.isTreeGrowing) { + if (this.growTreeIterations % 10 == 0) { + if (this.prunedNodesAll.length > 0) { + this.graphManager.updateBounds(); + this.updateGrid(); + this.growTree(this.prunedNodesAll); + // Update nodes that gravity will be applied + this.graphManager.resetAllNodesToApplyGravitation(); + var allNodes = new Set(this.getAllNodes()); + var intersection = this.nodesWithGravity.filter(function (x) { + return allNodes.has(x); + }); + this.graphManager.setAllNodesToApplyGravitation(intersection); + + this.graphManager.updateBounds(); + this.updateGrid(); + this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL; + } else { + this.isTreeGrowing = false; + this.isGrowthFinished = true; + } + } + this.growTreeIterations++; + } + // Operations after growth is finished + if (this.isGrowthFinished) { + if (this.isConverged()) { + return true; + } + if (this.afterGrowthIterations % 10 == 0) { + this.graphManager.updateBounds(); + this.updateGrid(); + } + this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL * ((100 - this.afterGrowthIterations) / 100); + this.afterGrowthIterations++; + } + + var gridUpdateAllowed = !this.isTreeGrowing && !this.isGrowthFinished; + var forceToNodeSurroundingUpdate = this.growTreeIterations % 10 == 1 && this.isTreeGrowing || this.afterGrowthIterations % 10 == 1 && this.isGrowthFinished; + + this.totalDisplacement = 0; + this.graphManager.updateBounds(); + this.calcSpringForces(); + this.calcRepulsionForces(gridUpdateAllowed, forceToNodeSurroundingUpdate); + this.calcGravitationalForces(); + this.moveNodes(); + this.animate(); + + return false; // Layout is not ended yet return false +}; + +CoSELayout.prototype.getPositionsData = function () { + var allNodes = this.graphManager.getAllNodes(); + var pData = {}; + for (var i = 0; i < allNodes.length; i++) { + var rect = allNodes[i].rect; + var id = allNodes[i].id; + pData[id] = { + id: id, + x: rect.getCenterX(), + y: rect.getCenterY(), + w: rect.width, + h: rect.height + }; + } + + return pData; +}; + +CoSELayout.prototype.runSpringEmbedder = function () { + this.initialAnimationPeriod = 25; + this.animationPeriod = this.initialAnimationPeriod; + var layoutEnded = false; + + // If aminate option is 'during' signal that layout is supposed to start iterating + if (FDLayoutConstants.ANIMATE === 'during') { + this.emit('layoutstarted'); + } else { + // If aminate option is 'during' tick() function will be called on index.js + while (!layoutEnded) { + layoutEnded = this.tick(); + } + + this.graphManager.updateBounds(); + } +}; + +CoSELayout.prototype.calculateNodesToApplyGravitationTo = function () { + var nodeList = []; + var graph; + + var graphs = this.graphManager.getGraphs(); + var size = graphs.length; + var i; + for (i = 0; i < size; i++) { + graph = graphs[i]; + + graph.updateConnected(); + + if (!graph.isConnected) { + nodeList = nodeList.concat(graph.getNodes()); + } + } + + return nodeList; +}; + +CoSELayout.prototype.createBendpoints = function () { + var edges = []; + edges = edges.concat(this.graphManager.getAllEdges()); + var visited = new Set(); + var i; + for (i = 0; i < edges.length; i++) { + var edge = edges[i]; + + if (!visited.has(edge)) { + var source = edge.getSource(); + var target = edge.getTarget(); + + if (source == target) { + edge.getBendpoints().push(new PointD()); + edge.getBendpoints().push(new PointD()); + this.createDummyNodesForBendpoints(edge); + visited.add(edge); + } else { + var edgeList = []; + + edgeList = edgeList.concat(source.getEdgeListToNode(target)); + edgeList = edgeList.concat(target.getEdgeListToNode(source)); + + if (!visited.has(edgeList[0])) { + if (edgeList.length > 1) { + var k; + for (k = 0; k < edgeList.length; k++) { + var multiEdge = edgeList[k]; + multiEdge.getBendpoints().push(new PointD()); + this.createDummyNodesForBendpoints(multiEdge); + } + } + edgeList.forEach(function (edge) { + visited.add(edge); + }); + } + } + } + + if (visited.size == edges.length) { + break; + } + } +}; + +CoSELayout.prototype.positionNodesRadially = function (forest) { + // We tile the trees to a grid row by row; first tree starts at (0,0) + var currentStartingPoint = new Point(0, 0); + var numberOfColumns = Math.ceil(Math.sqrt(forest.length)); + var height = 0; + var currentY = 0; + var currentX = 0; + var point = new PointD(0, 0); + + for (var i = 0; i < forest.length; i++) { + if (i % numberOfColumns == 0) { + // Start of a new row, make the x coordinate 0, increment the + // y coordinate with the max height of the previous row + currentX = 0; + currentY = height; + + if (i != 0) { + currentY += CoSEConstants.DEFAULT_COMPONENT_SEPERATION; + } + + height = 0; + } + + var tree = forest[i]; + + // Find the center of the tree + var centerNode = Layout.findCenterOfTree(tree); + + // Set the staring point of the next tree + currentStartingPoint.x = currentX; + currentStartingPoint.y = currentY; + + // Do a radial layout starting with the center + point = CoSELayout.radialLayout(tree, centerNode, currentStartingPoint); + + if (point.y > height) { + height = Math.floor(point.y); + } + + currentX = Math.floor(point.x + CoSEConstants.DEFAULT_COMPONENT_SEPERATION); + } + + this.transform(new PointD(LayoutConstants.WORLD_CENTER_X - point.x / 2, LayoutConstants.WORLD_CENTER_Y - point.y / 2)); +}; + +CoSELayout.radialLayout = function (tree, centerNode, startingPoint) { + var radialSep = Math.max(this.maxDiagonalInTree(tree), CoSEConstants.DEFAULT_RADIAL_SEPARATION); + CoSELayout.branchRadialLayout(centerNode, null, 0, 359, 0, radialSep); + var bounds = LGraph.calculateBounds(tree); + + var transform = new Transform(); + transform.setDeviceOrgX(bounds.getMinX()); + transform.setDeviceOrgY(bounds.getMinY()); + transform.setWorldOrgX(startingPoint.x); + transform.setWorldOrgY(startingPoint.y); + + for (var i = 0; i < tree.length; i++) { + var node = tree[i]; + node.transform(transform); + } + + var bottomRight = new PointD(bounds.getMaxX(), bounds.getMaxY()); + + return transform.inverseTransformPoint(bottomRight); +}; + +CoSELayout.branchRadialLayout = function (node, parentOfNode, startAngle, endAngle, distance, radialSeparation) { + // First, position this node by finding its angle. + var halfInterval = (endAngle - startAngle + 1) / 2; + + if (halfInterval < 0) { + halfInterval += 180; + } + + var nodeAngle = (halfInterval + startAngle) % 360; + var teta = nodeAngle * IGeometry.TWO_PI / 360; + + // Make polar to java cordinate conversion. + var cos_teta = Math.cos(teta); + var x_ = distance * Math.cos(teta); + var y_ = distance * Math.sin(teta); + + node.setCenter(x_, y_); + + // Traverse all neighbors of this node and recursively call this + // function. + var neighborEdges = []; + neighborEdges = neighborEdges.concat(node.getEdges()); + var childCount = neighborEdges.length; + + if (parentOfNode != null) { + childCount--; + } + + var branchCount = 0; + + var incEdgesCount = neighborEdges.length; + var startIndex; + + var edges = node.getEdgesBetween(parentOfNode); + + // If there are multiple edges, prune them until there remains only one + // edge. + while (edges.length > 1) { + //neighborEdges.remove(edges.remove(0)); + var temp = edges[0]; + edges.splice(0, 1); + var index = neighborEdges.indexOf(temp); + if (index >= 0) { + neighborEdges.splice(index, 1); + } + incEdgesCount--; + childCount--; + } + + if (parentOfNode != null) { + //assert edges.length == 1; + startIndex = (neighborEdges.indexOf(edges[0]) + 1) % incEdgesCount; + } else { + startIndex = 0; + } + + var stepAngle = Math.abs(endAngle - startAngle) / childCount; + + for (var i = startIndex; branchCount != childCount; i = ++i % incEdgesCount) { + var currentNeighbor = neighborEdges[i].getOtherEnd(node); + + // Don't back traverse to root node in current tree. + if (currentNeighbor == parentOfNode) { + continue; + } + + var childStartAngle = (startAngle + branchCount * stepAngle) % 360; + var childEndAngle = (childStartAngle + stepAngle) % 360; + + CoSELayout.branchRadialLayout(currentNeighbor, node, childStartAngle, childEndAngle, distance + radialSeparation, radialSeparation); + + branchCount++; + } +}; + +CoSELayout.maxDiagonalInTree = function (tree) { + var maxDiagonal = Integer.MIN_VALUE; + + for (var i = 0; i < tree.length; i++) { + var node = tree[i]; + var diagonal = node.getDiagonal(); + + if (diagonal > maxDiagonal) { + maxDiagonal = diagonal; + } + } + + return maxDiagonal; +}; + +CoSELayout.prototype.calcRepulsionRange = function () { + // formula is 2 x (level + 1) x idealEdgeLength + return 2 * (this.level + 1) * this.idealEdgeLength; +}; + +// Tiling methods + +// Group zero degree members whose parents are not to be tiled, create dummy parents where needed and fill memberGroups by their dummp parent id's +CoSELayout.prototype.groupZeroDegreeMembers = function () { + var self = this; + // array of [parent_id x oneDegreeNode_id] + var tempMemberGroups = {}; // A temporary map of parent node and its zero degree members + this.memberGroups = {}; // A map of dummy parent node and its zero degree members whose parents are not to be tiled + this.idToDummyNode = {}; // A map of id to dummy node + + var zeroDegree = []; // List of zero degree nodes whose parents are not to be tiled + var allNodes = this.graphManager.getAllNodes(); + + // Fill zero degree list + for (var i = 0; i < allNodes.length; i++) { + var node = allNodes[i]; + var parent = node.getParent(); + // If a node has zero degree and its parent is not to be tiled if exists add that node to zeroDegres list + if (this.getNodeDegreeWithChildren(node) === 0 && (parent.id == undefined || !this.getToBeTiled(parent))) { + zeroDegree.push(node); + } + } + + // Create a map of parent node and its zero degree members + for (var i = 0; i < zeroDegree.length; i++) { + var node = zeroDegree[i]; // Zero degree node itself + var p_id = node.getParent().id; // Parent id + + if (typeof tempMemberGroups[p_id] === "undefined") tempMemberGroups[p_id] = []; + + tempMemberGroups[p_id] = tempMemberGroups[p_id].concat(node); // Push node to the list belongs to its parent in tempMemberGroups + } + + // If there are at least two nodes at a level, create a dummy compound for them + Object.keys(tempMemberGroups).forEach(function (p_id) { + if (tempMemberGroups[p_id].length > 1) { + var dummyCompoundId = "DummyCompound_" + p_id; // The id of dummy compound which will be created soon + self.memberGroups[dummyCompoundId] = tempMemberGroups[p_id]; // Add dummy compound to memberGroups + + var parent = tempMemberGroups[p_id][0].getParent(); // The parent of zero degree nodes will be the parent of new dummy compound + + // Create a dummy compound with calculated id + var dummyCompound = new CoSENode(self.graphManager); + dummyCompound.id = dummyCompoundId; + dummyCompound.paddingLeft = parent.paddingLeft || 0; + dummyCompound.paddingRight = parent.paddingRight || 0; + dummyCompound.paddingBottom = parent.paddingBottom || 0; + dummyCompound.paddingTop = parent.paddingTop || 0; + + self.idToDummyNode[dummyCompoundId] = dummyCompound; + + var dummyParentGraph = self.getGraphManager().add(self.newGraph(), dummyCompound); + var parentGraph = parent.getChild(); + + // Add dummy compound to parent the graph + parentGraph.add(dummyCompound); + + // For each zero degree node in this level remove it from its parent graph and add it to the graph of dummy parent + for (var i = 0; i < tempMemberGroups[p_id].length; i++) { + var node = tempMemberGroups[p_id][i]; + + parentGraph.remove(node); + dummyParentGraph.add(node); + } + } + }); +}; + +CoSELayout.prototype.clearCompounds = function () { + var childGraphMap = {}; + var idToNode = {}; + + // Get compound ordering by finding the inner one first + this.performDFSOnCompounds(); + + for (var i = 0; i < this.compoundOrder.length; i++) { + + idToNode[this.compoundOrder[i].id] = this.compoundOrder[i]; + childGraphMap[this.compoundOrder[i].id] = [].concat(this.compoundOrder[i].getChild().getNodes()); + + // Remove children of compounds + this.graphManager.remove(this.compoundOrder[i].getChild()); + this.compoundOrder[i].child = null; + } + + this.graphManager.resetAllNodes(); + + // Tile the removed children + this.tileCompoundMembers(childGraphMap, idToNode); +}; + +CoSELayout.prototype.clearZeroDegreeMembers = function () { + var self = this; + var tiledZeroDegreePack = this.tiledZeroDegreePack = []; + + Object.keys(this.memberGroups).forEach(function (id) { + var compoundNode = self.idToDummyNode[id]; // Get the dummy compound + + tiledZeroDegreePack[id] = self.tileNodes(self.memberGroups[id], compoundNode.paddingLeft + compoundNode.paddingRight); + + // Set the width and height of the dummy compound as calculated + compoundNode.rect.width = tiledZeroDegreePack[id].width; + compoundNode.rect.height = tiledZeroDegreePack[id].height; + }); +}; + +CoSELayout.prototype.repopulateCompounds = function () { + for (var i = this.compoundOrder.length - 1; i >= 0; i--) { + var lCompoundNode = this.compoundOrder[i]; + var id = lCompoundNode.id; + var horizontalMargin = lCompoundNode.paddingLeft; + var verticalMargin = lCompoundNode.paddingTop; + + this.adjustLocations(this.tiledMemberPack[id], lCompoundNode.rect.x, lCompoundNode.rect.y, horizontalMargin, verticalMargin); + } +}; + +CoSELayout.prototype.repopulateZeroDegreeMembers = function () { + var self = this; + var tiledPack = this.tiledZeroDegreePack; + + Object.keys(tiledPack).forEach(function (id) { + var compoundNode = self.idToDummyNode[id]; // Get the dummy compound by its id + var horizontalMargin = compoundNode.paddingLeft; + var verticalMargin = compoundNode.paddingTop; + + // Adjust the positions of nodes wrt its compound + self.adjustLocations(tiledPack[id], compoundNode.rect.x, compoundNode.rect.y, horizontalMargin, verticalMargin); + }); +}; + +CoSELayout.prototype.getToBeTiled = function (node) { + var id = node.id; + //firstly check the previous results + if (this.toBeTiled[id] != null) { + return this.toBeTiled[id]; + } + + //only compound nodes are to be tiled + var childGraph = node.getChild(); + if (childGraph == null) { + this.toBeTiled[id] = false; + return false; + } + + var children = childGraph.getNodes(); // Get the children nodes + + //a compound node is not to be tiled if all of its compound children are not to be tiled + for (var i = 0; i < children.length; i++) { + var theChild = children[i]; + + if (this.getNodeDegree(theChild) > 0) { + this.toBeTiled[id] = false; + return false; + } + + //pass the children not having the compound structure + if (theChild.getChild() == null) { + this.toBeTiled[theChild.id] = false; + continue; + } + + if (!this.getToBeTiled(theChild)) { + this.toBeTiled[id] = false; + return false; + } + } + this.toBeTiled[id] = true; + return true; +}; + +// Get degree of a node depending of its edges and independent of its children +CoSELayout.prototype.getNodeDegree = function (node) { + var id = node.id; + var edges = node.getEdges(); + var degree = 0; + + // For the edges connected + for (var i = 0; i < edges.length; i++) { + var edge = edges[i]; + if (edge.getSource().id !== edge.getTarget().id) { + degree = degree + 1; + } + } + return degree; +}; + +// Get degree of a node with its children +CoSELayout.prototype.getNodeDegreeWithChildren = function (node) { + var degree = this.getNodeDegree(node); + if (node.getChild() == null) { + return degree; + } + var children = node.getChild().getNodes(); + for (var i = 0; i < children.length; i++) { + var child = children[i]; + degree += this.getNodeDegreeWithChildren(child); + } + return degree; +}; + +CoSELayout.prototype.performDFSOnCompounds = function () { + this.compoundOrder = []; + this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes()); +}; + +CoSELayout.prototype.fillCompexOrderByDFS = function (children) { + for (var i = 0; i < children.length; i++) { + var child = children[i]; + if (child.getChild() != null) { + this.fillCompexOrderByDFS(child.getChild().getNodes()); + } + if (this.getToBeTiled(child)) { + this.compoundOrder.push(child); + } + } +}; + +/** +* This method places each zero degree member wrt given (x,y) coordinates (top left). +*/ +CoSELayout.prototype.adjustLocations = function (organization, x, y, compoundHorizontalMargin, compoundVerticalMargin) { + x += compoundHorizontalMargin; + y += compoundVerticalMargin; + + var left = x; + + for (var i = 0; i < organization.rows.length; i++) { + var row = organization.rows[i]; + x = left; + var maxHeight = 0; + + for (var j = 0; j < row.length; j++) { + var lnode = row[j]; + + lnode.rect.x = x; // + lnode.rect.width / 2; + lnode.rect.y = y; // + lnode.rect.height / 2; + + x += lnode.rect.width + organization.horizontalPadding; + + if (lnode.rect.height > maxHeight) maxHeight = lnode.rect.height; + } + + y += maxHeight + organization.verticalPadding; + } +}; + +CoSELayout.prototype.tileCompoundMembers = function (childGraphMap, idToNode) { + var self = this; + this.tiledMemberPack = []; + + Object.keys(childGraphMap).forEach(function (id) { + // Get the compound node + var compoundNode = idToNode[id]; + + self.tiledMemberPack[id] = self.tileNodes(childGraphMap[id], compoundNode.paddingLeft + compoundNode.paddingRight); + + compoundNode.rect.width = self.tiledMemberPack[id].width; + compoundNode.rect.height = self.tiledMemberPack[id].height; + }); +}; + +CoSELayout.prototype.tileNodes = function (nodes, minWidth) { + var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL; + var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL; + var organization = { + rows: [], + rowWidth: [], + rowHeight: [], + width: 0, + height: minWidth, // assume minHeight equals to minWidth + verticalPadding: verticalPadding, + horizontalPadding: horizontalPadding + }; + + // Sort the nodes in ascending order of their areas + nodes.sort(function (n1, n2) { + if (n1.rect.width * n1.rect.height > n2.rect.width * n2.rect.height) return -1; + if (n1.rect.width * n1.rect.height < n2.rect.width * n2.rect.height) return 1; + return 0; + }); + + // Create the organization -> tile members + for (var i = 0; i < nodes.length; i++) { + var lNode = nodes[i]; + + if (organization.rows.length == 0) { + this.insertNodeToRow(organization, lNode, 0, minWidth); + } else if (this.canAddHorizontal(organization, lNode.rect.width, lNode.rect.height)) { + this.insertNodeToRow(organization, lNode, this.getShortestRowIndex(organization), minWidth); + } else { + this.insertNodeToRow(organization, lNode, organization.rows.length, minWidth); + } + + this.shiftToLastRow(organization); + } + + return organization; +}; + +CoSELayout.prototype.insertNodeToRow = function (organization, node, rowIndex, minWidth) { + var minCompoundSize = minWidth; + + // Add new row if needed + if (rowIndex == organization.rows.length) { + var secondDimension = []; + + organization.rows.push(secondDimension); + organization.rowWidth.push(minCompoundSize); + organization.rowHeight.push(0); + } + + // Update row width + var w = organization.rowWidth[rowIndex] + node.rect.width; + + if (organization.rows[rowIndex].length > 0) { + w += organization.horizontalPadding; + } + + organization.rowWidth[rowIndex] = w; + // Update compound width + if (organization.width < w) { + organization.width = w; + } + + // Update height + var h = node.rect.height; + if (rowIndex > 0) h += organization.verticalPadding; + + var extraHeight = 0; + if (h > organization.rowHeight[rowIndex]) { + extraHeight = organization.rowHeight[rowIndex]; + organization.rowHeight[rowIndex] = h; + extraHeight = organization.rowHeight[rowIndex] - extraHeight; + } + + organization.height += extraHeight; + + // Insert node + organization.rows[rowIndex].push(node); +}; + +//Scans the rows of an organization and returns the one with the min width +CoSELayout.prototype.getShortestRowIndex = function (organization) { + var r = -1; + var min = Number.MAX_VALUE; + + for (var i = 0; i < organization.rows.length; i++) { + if (organization.rowWidth[i] < min) { + r = i; + min = organization.rowWidth[i]; + } + } + return r; +}; + +//Scans the rows of an organization and returns the one with the max width +CoSELayout.prototype.getLongestRowIndex = function (organization) { + var r = -1; + var max = Number.MIN_VALUE; + + for (var i = 0; i < organization.rows.length; i++) { + + if (organization.rowWidth[i] > max) { + r = i; + max = organization.rowWidth[i]; + } + } + + return r; +}; + +/** +* This method checks whether adding extra width to the organization violates +* the aspect ratio(1) or not. +*/ +CoSELayout.prototype.canAddHorizontal = function (organization, extraWidth, extraHeight) { + + var sri = this.getShortestRowIndex(organization); + + if (sri < 0) { + return true; + } + + var min = organization.rowWidth[sri]; + + if (min + organization.horizontalPadding + extraWidth <= organization.width) return true; + + var hDiff = 0; + + // Adding to an existing row + if (organization.rowHeight[sri] < extraHeight) { + if (sri > 0) hDiff = extraHeight + organization.verticalPadding - organization.rowHeight[sri]; + } + + var add_to_row_ratio; + if (organization.width - min >= extraWidth + organization.horizontalPadding) { + add_to_row_ratio = (organization.height + hDiff) / (min + extraWidth + organization.horizontalPadding); + } else { + add_to_row_ratio = (organization.height + hDiff) / organization.width; + } + + // Adding a new row for this node + hDiff = extraHeight + organization.verticalPadding; + var add_new_row_ratio; + if (organization.width < extraWidth) { + add_new_row_ratio = (organization.height + hDiff) / extraWidth; + } else { + add_new_row_ratio = (organization.height + hDiff) / organization.width; + } + + if (add_new_row_ratio < 1) add_new_row_ratio = 1 / add_new_row_ratio; + + if (add_to_row_ratio < 1) add_to_row_ratio = 1 / add_to_row_ratio; + + return add_to_row_ratio < add_new_row_ratio; +}; + +//If moving the last node from the longest row and adding it to the last +//row makes the bounding box smaller, do it. +CoSELayout.prototype.shiftToLastRow = function (organization) { + var longest = this.getLongestRowIndex(organization); + var last = organization.rowWidth.length - 1; + var row = organization.rows[longest]; + var node = row[row.length - 1]; + + var diff = node.width + organization.horizontalPadding; + + // Check if there is enough space on the last row + if (organization.width - organization.rowWidth[last] > diff && longest != last) { + // Remove the last element of the longest row + row.splice(-1, 1); + + // Push it to the last row + organization.rows[last].push(node); + + organization.rowWidth[longest] = organization.rowWidth[longest] - diff; + organization.rowWidth[last] = organization.rowWidth[last] + diff; + organization.width = organization.rowWidth[instance.getLongestRowIndex(organization)]; + + // Update heights of the organization + var maxHeight = Number.MIN_VALUE; + for (var i = 0; i < row.length; i++) { + if (row[i].height > maxHeight) maxHeight = row[i].height; + } + if (longest > 0) maxHeight += organization.verticalPadding; + + var prevTotal = organization.rowHeight[longest] + organization.rowHeight[last]; + + organization.rowHeight[longest] = maxHeight; + if (organization.rowHeight[last] < node.height + organization.verticalPadding) organization.rowHeight[last] = node.height + organization.verticalPadding; + + var finalTotal = organization.rowHeight[longest] + organization.rowHeight[last]; + organization.height += finalTotal - prevTotal; + + this.shiftToLastRow(organization); + } +}; + +CoSELayout.prototype.tilingPreLayout = function () { + if (CoSEConstants.TILE) { + // Find zero degree nodes and create a compound for each level + this.groupZeroDegreeMembers(); + // Tile and clear children of each compound + this.clearCompounds(); + // Separately tile and clear zero degree nodes for each level + this.clearZeroDegreeMembers(); + } +}; + +CoSELayout.prototype.tilingPostLayout = function () { + if (CoSEConstants.TILE) { + this.repopulateZeroDegreeMembers(); + this.repopulateCompounds(); + } +}; + +// ----------------------------------------------------------------------------- +// Section: Tree Reduction methods +// ----------------------------------------------------------------------------- +// Reduce trees +CoSELayout.prototype.reduceTrees = function () { + var prunedNodesAll = []; + var containsLeaf = true; + var node; + + while (containsLeaf) { + var allNodes = this.graphManager.getAllNodes(); + var prunedNodesInStepTemp = []; + containsLeaf = false; + + for (var i = 0; i < allNodes.length; i++) { + node = allNodes[i]; + if (node.getEdges().length == 1 && !node.getEdges()[0].isInterGraph && node.getChild() == null) { + prunedNodesInStepTemp.push([node, node.getEdges()[0], node.getOwner()]); + containsLeaf = true; + } + } + if (containsLeaf == true) { + var prunedNodesInStep = []; + for (var j = 0; j < prunedNodesInStepTemp.length; j++) { + if (prunedNodesInStepTemp[j][0].getEdges().length == 1) { + prunedNodesInStep.push(prunedNodesInStepTemp[j]); + prunedNodesInStepTemp[j][0].getOwner().remove(prunedNodesInStepTemp[j][0]); + } + } + prunedNodesAll.push(prunedNodesInStep); + this.graphManager.resetAllNodes(); + this.graphManager.resetAllEdges(); + } + } + this.prunedNodesAll = prunedNodesAll; +}; + +// Grow tree one step +CoSELayout.prototype.growTree = function (prunedNodesAll) { + var lengthOfPrunedNodesInStep = prunedNodesAll.length; + var prunedNodesInStep = prunedNodesAll[lengthOfPrunedNodesInStep - 1]; + + var nodeData; + for (var i = 0; i < prunedNodesInStep.length; i++) { + nodeData = prunedNodesInStep[i]; + + this.findPlaceforPrunedNode(nodeData); + + nodeData[2].add(nodeData[0]); + nodeData[2].add(nodeData[1], nodeData[1].source, nodeData[1].target); + } + + prunedNodesAll.splice(prunedNodesAll.length - 1, 1); + this.graphManager.resetAllNodes(); + this.graphManager.resetAllEdges(); +}; + +// Find an appropriate position to replace pruned node, this method can be improved +CoSELayout.prototype.findPlaceforPrunedNode = function (nodeData) { + + var gridForPrunedNode; + var nodeToConnect; + var prunedNode = nodeData[0]; + if (prunedNode == nodeData[1].source) { + nodeToConnect = nodeData[1].target; + } else { + nodeToConnect = nodeData[1].source; + } + var startGridX = nodeToConnect.startX; + var finishGridX = nodeToConnect.finishX; + var startGridY = nodeToConnect.startY; + var finishGridY = nodeToConnect.finishY; + + var upNodeCount = 0; + var downNodeCount = 0; + var rightNodeCount = 0; + var leftNodeCount = 0; + var controlRegions = [upNodeCount, rightNodeCount, downNodeCount, leftNodeCount]; + + if (startGridY > 0) { + for (var i = startGridX; i <= finishGridX; i++) { + controlRegions[0] += this.grid[i][startGridY - 1].length + this.grid[i][startGridY].length - 1; + } + } + if (finishGridX < this.grid.length - 1) { + for (var i = startGridY; i <= finishGridY; i++) { + controlRegions[1] += this.grid[finishGridX + 1][i].length + this.grid[finishGridX][i].length - 1; + } + } + if (finishGridY < this.grid[0].length - 1) { + for (var i = startGridX; i <= finishGridX; i++) { + controlRegions[2] += this.grid[i][finishGridY + 1].length + this.grid[i][finishGridY].length - 1; + } + } + if (startGridX > 0) { + for (var i = startGridY; i <= finishGridY; i++) { + controlRegions[3] += this.grid[startGridX - 1][i].length + this.grid[startGridX][i].length - 1; + } + } + var min = Integer.MAX_VALUE; + var minCount; + var minIndex; + for (var j = 0; j < controlRegions.length; j++) { + if (controlRegions[j] < min) { + min = controlRegions[j]; + minCount = 1; + minIndex = j; + } else if (controlRegions[j] == min) { + minCount++; + } + } + + if (minCount == 3 && min == 0) { + if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[2] == 0) { + gridForPrunedNode = 1; + } else if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[3] == 0) { + gridForPrunedNode = 0; + } else if (controlRegions[0] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) { + gridForPrunedNode = 3; + } else if (controlRegions[1] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) { + gridForPrunedNode = 2; + } + } else if (minCount == 2 && min == 0) { + var random = Math.floor(Math.random() * 2); + if (controlRegions[0] == 0 && controlRegions[1] == 0) { + ; + if (random == 0) { + gridForPrunedNode = 0; + } else { + gridForPrunedNode = 1; + } + } else if (controlRegions[0] == 0 && controlRegions[2] == 0) { + if (random == 0) { + gridForPrunedNode = 0; + } else { + gridForPrunedNode = 2; + } + } else if (controlRegions[0] == 0 && controlRegions[3] == 0) { + if (random == 0) { + gridForPrunedNode = 0; + } else { + gridForPrunedNode = 3; + } + } else if (controlRegions[1] == 0 && controlRegions[2] == 0) { + if (random == 0) { + gridForPrunedNode = 1; + } else { + gridForPrunedNode = 2; + } + } else if (controlRegions[1] == 0 && controlRegions[3] == 0) { + if (random == 0) { + gridForPrunedNode = 1; + } else { + gridForPrunedNode = 3; + } + } else { + if (random == 0) { + gridForPrunedNode = 2; + } else { + gridForPrunedNode = 3; + } + } + } else if (minCount == 4 && min == 0) { + var random = Math.floor(Math.random() * 4); + gridForPrunedNode = random; + } else { + gridForPrunedNode = minIndex; + } + + if (gridForPrunedNode == 0) { + prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() - nodeToConnect.getHeight() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getHeight() / 2); + } else if (gridForPrunedNode == 1) { + prunedNode.setCenter(nodeToConnect.getCenterX() + nodeToConnect.getWidth() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getWidth() / 2, nodeToConnect.getCenterY()); + } else if (gridForPrunedNode == 2) { + prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() + nodeToConnect.getHeight() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getHeight() / 2); + } else { + prunedNode.setCenter(nodeToConnect.getCenterX() - nodeToConnect.getWidth() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getWidth() / 2, nodeToConnect.getCenterY()); + } +}; + +module.exports = CoSELayout; + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __nested_webpack_require_45620__) { + +"use strict"; + + +var coseBase = {}; + +coseBase.layoutBase = __nested_webpack_require_45620__(0); +coseBase.CoSEConstants = __nested_webpack_require_45620__(1); +coseBase.CoSEEdge = __nested_webpack_require_45620__(2); +coseBase.CoSEGraph = __nested_webpack_require_45620__(3); +coseBase.CoSEGraphManager = __nested_webpack_require_45620__(4); +coseBase.CoSELayout = __nested_webpack_require_45620__(6); +coseBase.CoSENode = __nested_webpack_require_45620__(5); + +module.exports = coseBase; + +/***/ }) +/******/ ]); +}); + +/***/ }), + +/***/ 14607: +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +(function webpackUniversalModuleDefinition(root, factory) { + if(true) + module.exports = factory(__webpack_require__(84182)); + else {} +})(this, function(__WEBPACK_EXTERNAL_MODULE_0__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __nested_webpack_require_659__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_659__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __nested_webpack_require_659__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __nested_webpack_require_659__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __nested_webpack_require_659__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __nested_webpack_require_659__.d = function(exports, name, getter) { +/******/ if(!__nested_webpack_require_659__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __nested_webpack_require_659__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __nested_webpack_require_659__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __nested_webpack_require_659__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __nested_webpack_require_659__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __nested_webpack_require_659__(__nested_webpack_require_659__.s = 1); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_0__; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __nested_webpack_require_3201__) { + +"use strict"; + + +var LayoutConstants = __nested_webpack_require_3201__(0).layoutBase.LayoutConstants; +var FDLayoutConstants = __nested_webpack_require_3201__(0).layoutBase.FDLayoutConstants; +var CoSEConstants = __nested_webpack_require_3201__(0).CoSEConstants; +var CoSELayout = __nested_webpack_require_3201__(0).CoSELayout; +var CoSENode = __nested_webpack_require_3201__(0).CoSENode; +var PointD = __nested_webpack_require_3201__(0).layoutBase.PointD; +var DimensionD = __nested_webpack_require_3201__(0).layoutBase.DimensionD; + +var defaults = { + // Called on `layoutready` + ready: function ready() {}, + // Called on `layoutstop` + stop: function stop() {}, + // 'draft', 'default' or 'proof" + // - 'draft' fast cooling rate + // - 'default' moderate cooling rate + // - "proof" slow cooling rate + quality: 'default', + // include labels in node dimensions + nodeDimensionsIncludeLabels: false, + // number of ticks per frame; higher is faster but more jerky + refresh: 30, + // Whether to fit the network view after when done + fit: true, + // Padding on fit + padding: 10, + // Whether to enable incremental mode + randomize: true, + // Node repulsion (non overlapping) multiplier + nodeRepulsion: 4500, + // Ideal edge (non nested) length + idealEdgeLength: 50, + // Divisor to compute edge forces + edgeElasticity: 0.45, + // Nesting factor (multiplier) to compute ideal edge length for nested edges + nestingFactor: 0.1, + // Gravity force (constant) + gravity: 0.25, + // Maximum number of iterations to perform + numIter: 2500, + // For enabling tiling + tile: true, + // Type of layout animation. The option set is {'during', 'end', false} + animate: 'end', + // Duration for animate:end + animationDuration: 500, + // Represents the amount of the vertical space to put between the zero degree members during the tiling operation(can also be a function) + tilingPaddingVertical: 10, + // Represents the amount of the horizontal space to put between the zero degree members during the tiling operation(can also be a function) + tilingPaddingHorizontal: 10, + // Gravity range (constant) for compounds + gravityRangeCompound: 1.5, + // Gravity force (constant) for compounds + gravityCompound: 1.0, + // Gravity range (constant) + gravityRange: 3.8, + // Initial cooling factor for incremental layout + initialEnergyOnIncremental: 0.5 +}; + +function extend(defaults, options) { + var obj = {}; + + for (var i in defaults) { + obj[i] = defaults[i]; + } + + for (var i in options) { + obj[i] = options[i]; + } + + return obj; +}; + +function _CoSELayout(_options) { + this.options = extend(defaults, _options); + getUserOptions(this.options); +} + +var getUserOptions = function getUserOptions(options) { + if (options.nodeRepulsion != null) CoSEConstants.DEFAULT_REPULSION_STRENGTH = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = options.nodeRepulsion; + if (options.idealEdgeLength != null) CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = options.idealEdgeLength; + if (options.edgeElasticity != null) CoSEConstants.DEFAULT_SPRING_STRENGTH = FDLayoutConstants.DEFAULT_SPRING_STRENGTH = options.edgeElasticity; + if (options.nestingFactor != null) CoSEConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = options.nestingFactor; + if (options.gravity != null) CoSEConstants.DEFAULT_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = options.gravity; + if (options.numIter != null) CoSEConstants.MAX_ITERATIONS = FDLayoutConstants.MAX_ITERATIONS = options.numIter; + if (options.gravityRange != null) CoSEConstants.DEFAULT_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = options.gravityRange; + if (options.gravityCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = options.gravityCompound; + if (options.gravityRangeCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = options.gravityRangeCompound; + if (options.initialEnergyOnIncremental != null) CoSEConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = options.initialEnergyOnIncremental; + + if (options.quality == 'draft') LayoutConstants.QUALITY = 0;else if (options.quality == 'proof') LayoutConstants.QUALITY = 2;else LayoutConstants.QUALITY = 1; + + CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS = FDLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = options.nodeDimensionsIncludeLabels; + CoSEConstants.DEFAULT_INCREMENTAL = FDLayoutConstants.DEFAULT_INCREMENTAL = LayoutConstants.DEFAULT_INCREMENTAL = !options.randomize; + CoSEConstants.ANIMATE = FDLayoutConstants.ANIMATE = LayoutConstants.ANIMATE = options.animate; + CoSEConstants.TILE = options.tile; + CoSEConstants.TILING_PADDING_VERTICAL = typeof options.tilingPaddingVertical === 'function' ? options.tilingPaddingVertical.call() : options.tilingPaddingVertical; + CoSEConstants.TILING_PADDING_HORIZONTAL = typeof options.tilingPaddingHorizontal === 'function' ? options.tilingPaddingHorizontal.call() : options.tilingPaddingHorizontal; +}; + +_CoSELayout.prototype.run = function () { + var ready; + var frameId; + var options = this.options; + var idToLNode = this.idToLNode = {}; + var layout = this.layout = new CoSELayout(); + var self = this; + + self.stopped = false; + + this.cy = this.options.cy; + + this.cy.trigger({ type: 'layoutstart', layout: this }); + + var gm = layout.newGraphManager(); + this.gm = gm; + + var nodes = this.options.eles.nodes(); + var edges = this.options.eles.edges(); + + this.root = gm.addRoot(); + this.processChildrenList(this.root, this.getTopMostNodes(nodes), layout); + + for (var i = 0; i < edges.length; i++) { + var edge = edges[i]; + var sourceNode = this.idToLNode[edge.data("source")]; + var targetNode = this.idToLNode[edge.data("target")]; + if (sourceNode !== targetNode && sourceNode.getEdgesBetween(targetNode).length == 0) { + var e1 = gm.add(layout.newEdge(), sourceNode, targetNode); + e1.id = edge.id(); + } + } + + var getPositions = function getPositions(ele, i) { + if (typeof ele === "number") { + ele = i; + } + var theId = ele.data('id'); + var lNode = self.idToLNode[theId]; + + return { + x: lNode.getRect().getCenterX(), + y: lNode.getRect().getCenterY() + }; + }; + + /* + * Reposition nodes in iterations animatedly + */ + var iterateAnimated = function iterateAnimated() { + // Thigs to perform after nodes are repositioned on screen + var afterReposition = function afterReposition() { + if (options.fit) { + options.cy.fit(options.eles, options.padding); + } + + if (!ready) { + ready = true; + self.cy.one('layoutready', options.ready); + self.cy.trigger({ type: 'layoutready', layout: self }); + } + }; + + var ticksPerFrame = self.options.refresh; + var isDone; + + for (var i = 0; i < ticksPerFrame && !isDone; i++) { + isDone = self.stopped || self.layout.tick(); + } + + // If layout is done + if (isDone) { + // If the layout is not a sublayout and it is successful perform post layout. + if (layout.checkLayoutSuccess() && !layout.isSubLayout) { + layout.doPostLayout(); + } + + // If layout has a tilingPostLayout function property call it. + if (layout.tilingPostLayout) { + layout.tilingPostLayout(); + } + + layout.isLayoutFinished = true; + + self.options.eles.nodes().positions(getPositions); + + afterReposition(); + + // trigger layoutstop when the layout stops (e.g. finishes) + self.cy.one('layoutstop', self.options.stop); + self.cy.trigger({ type: 'layoutstop', layout: self }); + + if (frameId) { + cancelAnimationFrame(frameId); + } + + ready = false; + return; + } + + var animationData = self.layout.getPositionsData(); // Get positions of layout nodes note that all nodes may not be layout nodes because of tiling + + // Position nodes, for the nodes whose id does not included in data (because they are removed from their parents and included in dummy compounds) + // use position of their ancestors or dummy ancestors + options.eles.nodes().positions(function (ele, i) { + if (typeof ele === "number") { + ele = i; + } + // If ele is a compound node, then its position will be defined by its children + if (!ele.isParent()) { + var theId = ele.id(); + var pNode = animationData[theId]; + var temp = ele; + // If pNode is undefined search until finding position data of its first ancestor (It may be dummy as well) + while (pNode == null) { + pNode = animationData[temp.data('parent')] || animationData['DummyCompound_' + temp.data('parent')]; + animationData[theId] = pNode; + temp = temp.parent()[0]; + if (temp == undefined) { + break; + } + } + if (pNode != null) { + return { + x: pNode.x, + y: pNode.y + }; + } else { + return { + x: ele.position('x'), + y: ele.position('y') + }; + } + } + }); + + afterReposition(); + + frameId = requestAnimationFrame(iterateAnimated); + }; + + /* + * Listen 'layoutstarted' event and start animated iteration if animate option is 'during' + */ + layout.addListener('layoutstarted', function () { + if (self.options.animate === 'during') { + frameId = requestAnimationFrame(iterateAnimated); + } + }); + + layout.runLayout(); // Run cose layout + + /* + * If animate option is not 'during' ('end' or false) perform these here (If it is 'during' similar things are already performed) + */ + if (this.options.animate !== "during") { + self.options.eles.nodes().not(":parent").layoutPositions(self, self.options, getPositions); // Use layout positions to reposition the nodes it considers the options parameter + ready = false; + } + + return this; // chaining +}; + +//Get the top most ones of a list of nodes +_CoSELayout.prototype.getTopMostNodes = function (nodes) { + var nodesMap = {}; + for (var i = 0; i < nodes.length; i++) { + nodesMap[nodes[i].id()] = true; + } + var roots = nodes.filter(function (ele, i) { + if (typeof ele === "number") { + ele = i; + } + var parent = ele.parent()[0]; + while (parent != null) { + if (nodesMap[parent.id()]) { + return false; + } + parent = parent.parent()[0]; + } + return true; + }); + + return roots; +}; + +_CoSELayout.prototype.processChildrenList = function (parent, children, layout) { + var size = children.length; + for (var i = 0; i < size; i++) { + var theChild = children[i]; + var children_of_children = theChild.children(); + var theNode; + + var dimensions = theChild.layoutDimensions({ + nodeDimensionsIncludeLabels: this.options.nodeDimensionsIncludeLabels + }); + + if (theChild.outerWidth() != null && theChild.outerHeight() != null) { + theNode = parent.add(new CoSENode(layout.graphManager, new PointD(theChild.position('x') - dimensions.w / 2, theChild.position('y') - dimensions.h / 2), new DimensionD(parseFloat(dimensions.w), parseFloat(dimensions.h)))); + } else { + theNode = parent.add(new CoSENode(this.graphManager)); + } + // Attach id to the layout node + theNode.id = theChild.data("id"); + // Attach the paddings of cy node to layout node + theNode.paddingLeft = parseInt(theChild.css('padding')); + theNode.paddingTop = parseInt(theChild.css('padding')); + theNode.paddingRight = parseInt(theChild.css('padding')); + theNode.paddingBottom = parseInt(theChild.css('padding')); + + //Attach the label properties to compound if labels will be included in node dimensions + if (this.options.nodeDimensionsIncludeLabels) { + if (theChild.isParent()) { + var labelWidth = theChild.boundingBox({ includeLabels: true, includeNodes: false }).w; + var labelHeight = theChild.boundingBox({ includeLabels: true, includeNodes: false }).h; + var labelPos = theChild.css("text-halign"); + theNode.labelWidth = labelWidth; + theNode.labelHeight = labelHeight; + theNode.labelPos = labelPos; + } + } + + // Map the layout node + this.idToLNode[theChild.data("id")] = theNode; + + if (isNaN(theNode.rect.x)) { + theNode.rect.x = 0; + } + + if (isNaN(theNode.rect.y)) { + theNode.rect.y = 0; + } + + if (children_of_children != null && children_of_children.length > 0) { + var theNewGraph; + theNewGraph = layout.getGraphManager().add(layout.newGraph(), theNode); + this.processChildrenList(theNewGraph, children_of_children, layout); + } + } +}; + +/** + * @brief : called on continuous layouts to stop them before they finish + */ +_CoSELayout.prototype.stop = function () { + this.stopped = true; + + return this; // chaining +}; + +var register = function register(cytoscape) { + // var Layout = getLayout( cytoscape ); + + cytoscape('layout', 'cose-bilkent', _CoSELayout); +}; + +// auto reg for globals +if (typeof cytoscape !== 'undefined') { + register(cytoscape); +} + +module.exports = register; + +/***/ }) +/******/ ]); +}); + +/***/ }), + +/***/ 71377: +/***/ (function(module) { + +/** + * Copyright (c) 2016-2023, The Cytoscape Consortium. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the “Software”), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do + * so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +(function (global, factory) { + true ? module.exports = factory() : + 0; +})(this, (function () { 'use strict'; + + function _typeof(obj) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + + function _defineProperty$1(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; + } + + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + + var _s, _e; + + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; + } + + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + + return arr2; + } + + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + var _window = typeof window === 'undefined' ? null : window; // eslint-disable-line no-undef + + var navigator = _window ? _window.navigator : null; + _window ? _window.document : null; + + var typeofstr = _typeof(''); + + var typeofobj = _typeof({}); + + var typeoffn = _typeof(function () {}); + + var typeofhtmlele = typeof HTMLElement === "undefined" ? "undefined" : _typeof(HTMLElement); + + var instanceStr = function instanceStr(obj) { + return obj && obj.instanceString && fn$6(obj.instanceString) ? obj.instanceString() : null; + }; + + var string = function string(obj) { + return obj != null && _typeof(obj) == typeofstr; + }; + var fn$6 = function fn(obj) { + return obj != null && _typeof(obj) === typeoffn; + }; + var array = function array(obj) { + return !elementOrCollection(obj) && (Array.isArray ? Array.isArray(obj) : obj != null && obj instanceof Array); + }; + var plainObject = function plainObject(obj) { + return obj != null && _typeof(obj) === typeofobj && !array(obj) && obj.constructor === Object; + }; + var object = function object(obj) { + return obj != null && _typeof(obj) === typeofobj; + }; + var number$1 = function number(obj) { + return obj != null && _typeof(obj) === _typeof(1) && !isNaN(obj); + }; + var integer = function integer(obj) { + return number$1(obj) && Math.floor(obj) === obj; + }; + var htmlElement = function htmlElement(obj) { + if ('undefined' === typeofhtmlele) { + return undefined; + } else { + return null != obj && obj instanceof HTMLElement; + } + }; + var elementOrCollection = function elementOrCollection(obj) { + return element(obj) || collection(obj); + }; + var element = function element(obj) { + return instanceStr(obj) === 'collection' && obj._private.single; + }; + var collection = function collection(obj) { + return instanceStr(obj) === 'collection' && !obj._private.single; + }; + var core = function core(obj) { + return instanceStr(obj) === 'core'; + }; + var stylesheet = function stylesheet(obj) { + return instanceStr(obj) === 'stylesheet'; + }; + var event = function event(obj) { + return instanceStr(obj) === 'event'; + }; + var emptyString = function emptyString(obj) { + if (obj === undefined || obj === null) { + // null is empty + return true; + } else if (obj === '' || obj.match(/^\s+$/)) { + return true; // empty string is empty + } + + return false; // otherwise, we don't know what we've got + }; + var domElement = function domElement(obj) { + if (typeof HTMLElement === 'undefined') { + return false; // we're not in a browser so it doesn't matter + } else { + return obj instanceof HTMLElement; + } + }; + var boundingBox = function boundingBox(obj) { + return plainObject(obj) && number$1(obj.x1) && number$1(obj.x2) && number$1(obj.y1) && number$1(obj.y2); + }; + var promise = function promise(obj) { + return object(obj) && fn$6(obj.then); + }; + var ms = function ms() { + return navigator && navigator.userAgent.match(/msie|trident|edge/i); + }; // probably a better way to detect this... + + var memoize$1 = function memoize(fn, keyFn) { + if (!keyFn) { + keyFn = function keyFn() { + if (arguments.length === 1) { + return arguments[0]; + } else if (arguments.length === 0) { + return 'undefined'; + } + + var args = []; + + for (var i = 0; i < arguments.length; i++) { + args.push(arguments[i]); + } + + return args.join('$'); + }; + } + + var memoizedFn = function memoizedFn() { + var self = this; + var args = arguments; + var ret; + var k = keyFn.apply(self, args); + var cache = memoizedFn.cache; + + if (!(ret = cache[k])) { + ret = cache[k] = fn.apply(self, args); + } + + return ret; + }; + + memoizedFn.cache = {}; + return memoizedFn; + }; + + var camel2dash = memoize$1(function (str) { + return str.replace(/([A-Z])/g, function (v) { + return '-' + v.toLowerCase(); + }); + }); + var dash2camel = memoize$1(function (str) { + return str.replace(/(-\w)/g, function (v) { + return v[1].toUpperCase(); + }); + }); + var prependCamel = memoize$1(function (prefix, str) { + return prefix + str[0].toUpperCase() + str.substring(1); + }, function (prefix, str) { + return prefix + '$' + str; + }); + var capitalize = function capitalize(str) { + if (emptyString(str)) { + return str; + } + + return str.charAt(0).toUpperCase() + str.substring(1); + }; + + var number = '(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))'; + var rgba = 'rgb[a]?\\((' + number + '[%]?)\\s*,\\s*(' + number + '[%]?)\\s*,\\s*(' + number + '[%]?)(?:\\s*,\\s*(' + number + '))?\\)'; + var rgbaNoBackRefs = 'rgb[a]?\\((?:' + number + '[%]?)\\s*,\\s*(?:' + number + '[%]?)\\s*,\\s*(?:' + number + '[%]?)(?:\\s*,\\s*(?:' + number + '))?\\)'; + var hsla = 'hsl[a]?\\((' + number + ')\\s*,\\s*(' + number + '[%])\\s*,\\s*(' + number + '[%])(?:\\s*,\\s*(' + number + '))?\\)'; + var hslaNoBackRefs = 'hsl[a]?\\((?:' + number + ')\\s*,\\s*(?:' + number + '[%])\\s*,\\s*(?:' + number + '[%])(?:\\s*,\\s*(?:' + number + '))?\\)'; + var hex3 = '\\#[0-9a-fA-F]{3}'; + var hex6 = '\\#[0-9a-fA-F]{6}'; + + var ascending = function ascending(a, b) { + if (a < b) { + return -1; + } else if (a > b) { + return 1; + } else { + return 0; + } + }; + var descending = function descending(a, b) { + return -1 * ascending(a, b); + }; + + var extend = Object.assign != null ? Object.assign.bind(Object) : function (tgt) { + var args = arguments; + + for (var i = 1; i < args.length; i++) { + var obj = args[i]; + + if (obj == null) { + continue; + } + + var keys = Object.keys(obj); + + for (var j = 0; j < keys.length; j++) { + var k = keys[j]; + tgt[k] = obj[k]; + } + } + + return tgt; + }; + + var hex2tuple = function hex2tuple(hex) { + if (!(hex.length === 4 || hex.length === 7) || hex[0] !== '#') { + return; + } + + var shortHex = hex.length === 4; + var r, g, b; + var base = 16; + + if (shortHex) { + r = parseInt(hex[1] + hex[1], base); + g = parseInt(hex[2] + hex[2], base); + b = parseInt(hex[3] + hex[3], base); + } else { + r = parseInt(hex[1] + hex[2], base); + g = parseInt(hex[3] + hex[4], base); + b = parseInt(hex[5] + hex[6], base); + } + + return [r, g, b]; + }; // get [r, g, b, a] from hsl(0, 0, 0) or hsla(0, 0, 0, 0) + + var hsl2tuple = function hsl2tuple(hsl) { + var ret; + var h, s, l, a, r, g, b; + + function hue2rgb(p, q, t) { + if (t < 0) t += 1; + if (t > 1) t -= 1; + if (t < 1 / 6) return p + (q - p) * 6 * t; + if (t < 1 / 2) return q; + if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; + return p; + } + + var m = new RegExp('^' + hsla + '$').exec(hsl); + + if (m) { + // get hue + h = parseInt(m[1]); + + if (h < 0) { + h = (360 - -1 * h % 360) % 360; + } else if (h > 360) { + h = h % 360; + } + + h /= 360; // normalise on [0, 1] + + s = parseFloat(m[2]); + + if (s < 0 || s > 100) { + return; + } // saturation is [0, 100] + + + s = s / 100; // normalise on [0, 1] + + l = parseFloat(m[3]); + + if (l < 0 || l > 100) { + return; + } // lightness is [0, 100] + + + l = l / 100; // normalise on [0, 1] + + a = m[4]; + + if (a !== undefined) { + a = parseFloat(a); + + if (a < 0 || a > 1) { + return; + } // alpha is [0, 1] + + } // now, convert to rgb + // code from http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript + + + if (s === 0) { + r = g = b = Math.round(l * 255); // achromatic + } else { + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = Math.round(255 * hue2rgb(p, q, h + 1 / 3)); + g = Math.round(255 * hue2rgb(p, q, h)); + b = Math.round(255 * hue2rgb(p, q, h - 1 / 3)); + } + + ret = [r, g, b, a]; + } + + return ret; + }; // get [r, g, b, a] from rgb(0, 0, 0) or rgba(0, 0, 0, 0) + + var rgb2tuple = function rgb2tuple(rgb) { + var ret; + var m = new RegExp('^' + rgba + '$').exec(rgb); + + if (m) { + ret = []; + var isPct = []; + + for (var i = 1; i <= 3; i++) { + var channel = m[i]; + + if (channel[channel.length - 1] === '%') { + isPct[i] = true; + } + + channel = parseFloat(channel); + + if (isPct[i]) { + channel = channel / 100 * 255; // normalise to [0, 255] + } + + if (channel < 0 || channel > 255) { + return; + } // invalid channel value + + + ret.push(Math.floor(channel)); + } + + var atLeastOneIsPct = isPct[1] || isPct[2] || isPct[3]; + var allArePct = isPct[1] && isPct[2] && isPct[3]; + + if (atLeastOneIsPct && !allArePct) { + return; + } // must all be percent values if one is + + + var alpha = m[4]; + + if (alpha !== undefined) { + alpha = parseFloat(alpha); + + if (alpha < 0 || alpha > 1) { + return; + } // invalid alpha value + + + ret.push(alpha); + } + } + + return ret; + }; + var colorname2tuple = function colorname2tuple(color) { + return colors[color.toLowerCase()]; + }; + var color2tuple = function color2tuple(color) { + return (array(color) ? color : null) || colorname2tuple(color) || hex2tuple(color) || rgb2tuple(color) || hsl2tuple(color); + }; + var colors = { + // special colour names + transparent: [0, 0, 0, 0], + // NB alpha === 0 + // regular colours + 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] + }; + + var setMap = function setMap(options) { + var obj = options.map; + var keys = options.keys; + var l = keys.length; + + for (var i = 0; i < l; i++) { + var key = keys[i]; + + if (plainObject(key)) { + throw Error('Tried to set map with object key'); + } + + if (i < keys.length - 1) { + // extend the map if necessary + if (obj[key] == null) { + obj[key] = {}; + } + + obj = obj[key]; + } else { + // set the value + obj[key] = options.value; + } + } + }; // gets the value in a map even if it's not built in places + + var getMap = function getMap(options) { + var obj = options.map; + var keys = options.keys; + var l = keys.length; + + for (var i = 0; i < l; i++) { + var key = keys[i]; + + if (plainObject(key)) { + throw Error('Tried to get map with object key'); + } + + obj = obj[key]; + + if (obj == null) { + return obj; + } + } + + return obj; + }; // deletes the entry in the map + + /** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ + function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); + } + + var isObject_1 = isObject; + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; + } + + /** Detect free variable `global` from Node.js. */ + var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal; + + var _freeGlobal = freeGlobal; + + /** Detect free variable `self`. */ + var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + + /** Used as a reference to the global object. */ + var root = _freeGlobal || freeSelf || Function('return this')(); + + var _root = root; + + /** + * Gets the timestamp of the number of milliseconds that have elapsed since + * the Unix epoch (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Date + * @returns {number} Returns the timestamp. + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => Logs the number of milliseconds it took for the deferred invocation. + */ + var now = function() { + return _root.Date.now(); + }; + + var now_1 = now; + + /** Used to match a single whitespace character. */ + var reWhitespace = /\s/; + + /** + * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace + * character of `string`. + * + * @private + * @param {string} string The string to inspect. + * @returns {number} Returns the index of the last non-whitespace character. + */ + function trimmedEndIndex(string) { + var index = string.length; + + while (index-- && reWhitespace.test(string.charAt(index))) {} + return index; + } + + var _trimmedEndIndex = trimmedEndIndex; + + /** Used to match leading whitespace. */ + var reTrimStart = /^\s+/; + + /** + * The base implementation of `_.trim`. + * + * @private + * @param {string} string The string to trim. + * @returns {string} Returns the trimmed string. + */ + function baseTrim(string) { + return string + ? string.slice(0, _trimmedEndIndex(string) + 1).replace(reTrimStart, '') + : string; + } + + var _baseTrim = baseTrim; + + /** Built-in value references. */ + var Symbol$1 = _root.Symbol; + + var _Symbol = Symbol$1; + + /** Used for built-in method references. */ + var objectProto$5 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$4 = objectProto$5.hasOwnProperty; + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString$1 = objectProto$5.toString; + + /** Built-in value references. */ + var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined; + + /** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ + function getRawTag(value) { + var isOwn = hasOwnProperty$4.call(value, symToStringTag$1), + tag = value[symToStringTag$1]; + + try { + value[symToStringTag$1] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString$1.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag$1] = tag; + } else { + delete value[symToStringTag$1]; + } + } + return result; + } + + var _getRawTag = getRawTag; + + /** Used for built-in method references. */ + var objectProto$4 = Object.prototype; + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString = objectProto$4.toString; + + /** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ + function objectToString(value) { + return nativeObjectToString.call(value); + } + + var _objectToString = objectToString; + + /** `Object#toString` result references. */ + var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + + /** Built-in value references. */ + var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined; + + /** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? _getRawTag(value) + : _objectToString(value); + } + + var _baseGetTag = baseGetTag; + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return value != null && typeof value == 'object'; + } + + var isObjectLike_1 = isObjectLike; + + /** `Object#toString` result references. */ + var symbolTag = '[object Symbol]'; + + /** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ + function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike_1(value) && _baseGetTag(value) == symbolTag); + } + + var isSymbol_1 = isSymbol; + + /** Used as references for various `Number` constants. */ + var NAN = 0 / 0; + + /** Used to detect bad signed hexadecimal string values. */ + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + + /** Used to detect binary string values. */ + var reIsBinary = /^0b[01]+$/i; + + /** Used to detect octal string values. */ + var reIsOctal = /^0o[0-7]+$/i; + + /** Built-in method references without a dependency on `root`. */ + var freeParseInt = parseInt; + + /** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ + function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol_1(value)) { + return NAN; + } + if (isObject_1(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = isObject_1(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = _baseTrim(value); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); + } + + var toNumber_1 = toNumber; + + /** Error message constants. */ + var FUNC_ERROR_TEXT$1 = 'Expected a function'; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeMax = Math.max, + nativeMin = Math.min; + + /** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide `options` to indicate whether `func` should be invoked on the + * leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent + * calls to the debounced function return the result of the last `func` + * invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the debounced function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.debounce` and `_.throttle`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * var source = new EventSource('/stream'); + * jQuery(source).on('message', debounced); + * + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); + */ + function debounce(func, wait, options) { + var lastArgs, + lastThis, + maxWait, + result, + timerId, + lastCallTime, + lastInvokeTime = 0, + leading = false, + maxing = false, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT$1); + } + wait = toNumber_1(wait) || 0; + if (isObject_1(options)) { + leading = !!options.leading; + maxing = 'maxWait' in options; + maxWait = maxing ? nativeMax(toNumber_1(options.maxWait) || 0, wait) : maxWait; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + + function invokeFunc(time) { + var args = lastArgs, + thisArg = lastThis; + + lastArgs = lastThis = undefined; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time; + // Start the timer for the trailing edge. + timerId = setTimeout(timerExpired, wait); + // Invoke the leading edge. + return leading ? invokeFunc(time) : result; + } + + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime, + timeWaiting = wait - timeSinceLastCall; + + return maxing + ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) + : timeWaiting; + } + + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime; + + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return (lastCallTime === undefined || (timeSinceLastCall >= wait) || + (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); + } + + function timerExpired() { + var time = now_1(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + // Restart the timer. + timerId = setTimeout(timerExpired, remainingWait(time)); + } + + function trailingEdge(time) { + timerId = undefined; + + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined; + return result; + } + + function cancel() { + if (timerId !== undefined) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined; + } + + function flush() { + return timerId === undefined ? result : trailingEdge(now_1()); + } + + function debounced() { + var time = now_1(), + isInvoking = shouldInvoke(time); + + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime); + } + if (maxing) { + // Handle invocations in a tight loop. + clearTimeout(timerId); + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; + } + + var debounce_1 = debounce; + + var performance = _window ? _window.performance : null; + var pnow = performance && performance.now ? function () { + return performance.now(); + } : function () { + return Date.now(); + }; + + var raf = function () { + if (_window) { + if (_window.requestAnimationFrame) { + return function (fn) { + _window.requestAnimationFrame(fn); + }; + } else if (_window.mozRequestAnimationFrame) { + return function (fn) { + _window.mozRequestAnimationFrame(fn); + }; + } else if (_window.webkitRequestAnimationFrame) { + return function (fn) { + _window.webkitRequestAnimationFrame(fn); + }; + } else if (_window.msRequestAnimationFrame) { + return function (fn) { + _window.msRequestAnimationFrame(fn); + }; + } + } + + return function (fn) { + if (fn) { + setTimeout(function () { + fn(pnow()); + }, 1000 / 60); + } + }; + }(); + + var requestAnimationFrame = function requestAnimationFrame(fn) { + return raf(fn); + }; + var performanceNow = pnow; + + var DEFAULT_HASH_SEED = 9261; + var K = 65599; // 37 also works pretty well + + var DEFAULT_HASH_SEED_ALT = 5381; + var hashIterableInts = function hashIterableInts(iterator) { + var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED; + // sdbm/string-hash + var hash = seed; + var entry; + + for (;;) { + entry = iterator.next(); + + if (entry.done) { + break; + } + + hash = hash * K + entry.value | 0; + } + + return hash; + }; + var hashInt = function hashInt(num) { + var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED; + // sdbm/string-hash + return seed * K + num | 0; + }; + var hashIntAlt = function hashIntAlt(num) { + var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED_ALT; + // djb2/string-hash + return (seed << 5) + seed + num | 0; + }; + var combineHashes = function combineHashes(hash1, hash2) { + return hash1 * 0x200000 + hash2; + }; + var combineHashesArray = function combineHashesArray(hashes) { + return hashes[0] * 0x200000 + hashes[1]; + }; + var hashArrays = function hashArrays(hashes1, hashes2) { + return [hashInt(hashes1[0], hashes2[0]), hashIntAlt(hashes1[1], hashes2[1])]; + }; + var hashIntsArray = function hashIntsArray(ints, seed) { + var entry = { + value: 0, + done: false + }; + var i = 0; + var length = ints.length; + var iterator = { + next: function next() { + if (i < length) { + entry.value = ints[i++]; + } else { + entry.done = true; + } + + return entry; + } + }; + return hashIterableInts(iterator, seed); + }; + var hashString = function hashString(str, seed) { + var entry = { + value: 0, + done: false + }; + var i = 0; + var length = str.length; + var iterator = { + next: function next() { + if (i < length) { + entry.value = str.charCodeAt(i++); + } else { + entry.done = true; + } + + return entry; + } + }; + return hashIterableInts(iterator, seed); + }; + var hashStrings = function hashStrings() { + return hashStringsArray(arguments); + }; + var hashStringsArray = function hashStringsArray(strs) { + var hash; + + for (var i = 0; i < strs.length; i++) { + var str = strs[i]; + + if (i === 0) { + hash = hashString(str); + } else { + hash = hashString(str, hash); + } + } + + return hash; + }; + + /*global console */ + var warningsEnabled = true; + var warnSupported = console.warn != null; // eslint-disable-line no-console + + var traceSupported = console.trace != null; // eslint-disable-line no-console + + var MAX_INT$1 = Number.MAX_SAFE_INTEGER || 9007199254740991; + var trueify = function trueify() { + return true; + }; + var falsify = function falsify() { + return false; + }; + var zeroify = function zeroify() { + return 0; + }; + var noop$1 = function noop() {}; + var error = function error(msg) { + throw new Error(msg); + }; + var warnings = function warnings(enabled) { + if (enabled !== undefined) { + warningsEnabled = !!enabled; + } else { + return warningsEnabled; + } + }; + var warn = function warn(msg) { + /* eslint-disable no-console */ + if (!warnings()) { + return; + } + + if (warnSupported) { + console.warn(msg); + } else { + console.log(msg); + + if (traceSupported) { + console.trace(); + } + } + }; + /* eslint-enable */ + + var clone = function clone(obj) { + return extend({}, obj); + }; // gets a shallow copy of the argument + + var copy = function copy(obj) { + if (obj == null) { + return obj; + } + + if (array(obj)) { + return obj.slice(); + } else if (plainObject(obj)) { + return clone(obj); + } else { + return obj; + } + }; + var copyArray$1 = function copyArray(arr) { + return arr.slice(); + }; + var uuid = function uuid(a, b + /* placeholders */ + ) { + for ( // loop :) + b = a = ''; // b - result , a - numeric letiable + a++ < 36; // + b += a * 51 & 52 // if "a" is not 9 or 14 or 19 or 24 + ? // return a random number or 4 + (a ^ 15 // if "a" is not 15 + ? // generate a random number from 0 to 15 + 8 ^ Math.random() * (a ^ 20 ? 16 : 4) // unless "a" is 20, in which case a random number from 8 to 11 + : 4 // otherwise 4 + ).toString(16) : '-' // in other cases (if "a" is 9,14,19,24) insert "-" + ) { + } + + return b; + }; + var _staticEmptyObject = {}; + var staticEmptyObject = function staticEmptyObject() { + return _staticEmptyObject; + }; + var defaults$g = function defaults(_defaults) { + var keys = Object.keys(_defaults); + return function (opts) { + var filledOpts = {}; + + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var optVal = opts == null ? undefined : opts[key]; + filledOpts[key] = optVal === undefined ? _defaults[key] : optVal; + } + + return filledOpts; + }; + }; + var removeFromArray = function removeFromArray(arr, ele, oneCopy) { + for (var i = arr.length - 1; i >= 0; i--) { + if (arr[i] === ele) { + arr.splice(i, 1); + + if (oneCopy) { + break; + } + } + } + }; + var clearArray = function clearArray(arr) { + arr.splice(0, arr.length); + }; + var push = function push(arr, otherArr) { + for (var i = 0; i < otherArr.length; i++) { + var el = otherArr[i]; + arr.push(el); + } + }; + var getPrefixedProperty = function getPrefixedProperty(obj, propName, prefix) { + if (prefix) { + propName = prependCamel(prefix, propName); // e.g. (labelWidth, source) => sourceLabelWidth + } + + return obj[propName]; + }; + var setPrefixedProperty = function setPrefixedProperty(obj, propName, prefix, value) { + if (prefix) { + propName = prependCamel(prefix, propName); // e.g. (labelWidth, source) => sourceLabelWidth + } + + obj[propName] = value; + }; + + /* global Map */ + var ObjectMap = /*#__PURE__*/function () { + function ObjectMap() { + _classCallCheck(this, ObjectMap); + + this._obj = {}; + } + + _createClass(ObjectMap, [{ + key: "set", + value: function set(key, val) { + this._obj[key] = val; + return this; + } + }, { + key: "delete", + value: function _delete(key) { + this._obj[key] = undefined; + return this; + } + }, { + key: "clear", + value: function clear() { + this._obj = {}; + } + }, { + key: "has", + value: function has(key) { + return this._obj[key] !== undefined; + } + }, { + key: "get", + value: function get(key) { + return this._obj[key]; + } + }]); + + return ObjectMap; + }(); + + var Map$2 = typeof Map !== 'undefined' ? Map : ObjectMap; + + /* global Set */ + var undef = "undefined" ; + + var ObjectSet = /*#__PURE__*/function () { + function ObjectSet(arrayOrObjectSet) { + _classCallCheck(this, ObjectSet); + + this._obj = Object.create(null); + this.size = 0; + + if (arrayOrObjectSet != null) { + var arr; + + if (arrayOrObjectSet.instanceString != null && arrayOrObjectSet.instanceString() === this.instanceString()) { + arr = arrayOrObjectSet.toArray(); + } else { + arr = arrayOrObjectSet; + } + + for (var i = 0; i < arr.length; i++) { + this.add(arr[i]); + } + } + } + + _createClass(ObjectSet, [{ + key: "instanceString", + value: function instanceString() { + return 'set'; + } + }, { + key: "add", + value: function add(val) { + var o = this._obj; + + if (o[val] !== 1) { + o[val] = 1; + this.size++; + } + } + }, { + key: "delete", + value: function _delete(val) { + var o = this._obj; + + if (o[val] === 1) { + o[val] = 0; + this.size--; + } + } + }, { + key: "clear", + value: function clear() { + this._obj = Object.create(null); + } + }, { + key: "has", + value: function has(val) { + return this._obj[val] === 1; + } + }, { + key: "toArray", + value: function toArray() { + var _this = this; + + return Object.keys(this._obj).filter(function (key) { + return _this.has(key); + }); + } + }, { + key: "forEach", + value: function forEach(callback, thisArg) { + return this.toArray().forEach(callback, thisArg); + } + }]); + + return ObjectSet; + }(); + + var Set$1 = (typeof Set === "undefined" ? "undefined" : _typeof(Set)) !== undef ? Set : ObjectSet; + + var Element = function Element(cy, params) { + var restore = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + + if (cy === undefined || params === undefined || !core(cy)) { + error('An element must have a core reference and parameters set'); + return; + } + + var group = params.group; // try to automatically infer the group if unspecified + + if (group == null) { + if (params.data && params.data.source != null && params.data.target != null) { + group = 'edges'; + } else { + group = 'nodes'; + } + } // validate group + + + if (group !== 'nodes' && group !== 'edges') { + error('An element must be of type `nodes` or `edges`; you specified `' + group + '`'); + return; + } // make the element array-like, just like a collection + + + this.length = 1; + this[0] = this; // NOTE: when something is added here, add also to ele.json() + + var _p = this._private = { + cy: cy, + single: true, + // indicates this is an element + data: params.data || {}, + // data object + position: params.position || { + x: 0, + y: 0 + }, + // (x, y) position pair + autoWidth: undefined, + // width and height of nodes calculated by the renderer when set to special 'auto' value + autoHeight: undefined, + autoPadding: undefined, + compoundBoundsClean: false, + // whether the compound dimensions need to be recalculated the next time dimensions are read + listeners: [], + // array of bound listeners + group: group, + // string; 'nodes' or 'edges' + style: {}, + // properties as set by the style + rstyle: {}, + // properties for style sent from the renderer to the core + styleCxts: [], + // applied style contexts from the styler + styleKeys: {}, + // per-group keys of style property values + removed: true, + // whether it's inside the vis; true if removed (set true here since we call restore) + selected: params.selected ? true : false, + // whether it's selected + selectable: params.selectable === undefined ? true : params.selectable ? true : false, + // whether it's selectable + locked: params.locked ? true : false, + // whether the element is locked (cannot be moved) + grabbed: false, + // whether the element is grabbed by the mouse; renderer sets this privately + grabbable: params.grabbable === undefined ? true : params.grabbable ? true : false, + // whether the element can be grabbed + pannable: params.pannable === undefined ? group === 'edges' ? true : false : params.pannable ? true : false, + // whether the element has passthrough panning enabled + active: false, + // whether the element is active from user interaction + classes: new Set$1(), + // map ( className => true ) + animation: { + // object for currently-running animations + current: [], + queue: [] + }, + rscratch: {}, + // object in which the renderer can store information + scratch: params.scratch || {}, + // scratch objects + edges: [], + // array of connected edges + children: [], + // array of children + parent: params.parent && params.parent.isNode() ? params.parent : null, + // parent ref + traversalCache: {}, + // cache of output of traversal functions + backgrounding: false, + // whether background images are loading + bbCache: null, + // cache of the current bounding box + bbCacheShift: { + x: 0, + y: 0 + }, + // shift applied to cached bb to be applied on next get + bodyBounds: null, + // bounds cache of element body, w/o overlay + overlayBounds: null, + // bounds cache of element body, including overlay + labelBounds: { + // bounds cache of labels + all: null, + source: null, + target: null, + main: null + }, + arrowBounds: { + // bounds cache of edge arrows + source: null, + target: null, + 'mid-source': null, + 'mid-target': null + } + }; + + if (_p.position.x == null) { + _p.position.x = 0; + } + + if (_p.position.y == null) { + _p.position.y = 0; + } // renderedPosition overrides if specified + + + if (params.renderedPosition) { + var rpos = params.renderedPosition; + var pan = cy.pan(); + var zoom = cy.zoom(); + _p.position = { + x: (rpos.x - pan.x) / zoom, + y: (rpos.y - pan.y) / zoom + }; + } + + var classes = []; + + if (array(params.classes)) { + classes = params.classes; + } else if (string(params.classes)) { + classes = params.classes.split(/\s+/); + } + + for (var i = 0, l = classes.length; i < l; i++) { + var cls = classes[i]; + + if (!cls || cls === '') { + continue; + } + + _p.classes.add(cls); + } + + this.createEmitter(); + var bypass = params.style || params.css; + + if (bypass) { + warn('Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead.'); + this.style(bypass); + } + + if (restore === undefined || restore) { + this.restore(); + } + }; + + var defineSearch = function defineSearch(params) { + params = { + bfs: params.bfs || !params.dfs, + dfs: params.dfs || !params.bfs + }; // from pseudocode on wikipedia + + return function searchFn(roots, fn, directed) { + var options; + + if (plainObject(roots) && !elementOrCollection(roots)) { + options = roots; + roots = options.roots || options.root; + fn = options.visit; + directed = options.directed; + } + + directed = arguments.length === 2 && !fn$6(fn) ? fn : directed; + fn = fn$6(fn) ? fn : function () {}; + var cy = this._private.cy; + var v = roots = string(roots) ? this.filter(roots) : roots; + var Q = []; + var connectedNodes = []; + var connectedBy = {}; + var id2depth = {}; + var V = {}; + var j = 0; + var found; + + var _this$byGroup = this.byGroup(), + nodes = _this$byGroup.nodes, + edges = _this$byGroup.edges; // enqueue v + + + for (var i = 0; i < v.length; i++) { + var vi = v[i]; + var viId = vi.id(); + + if (vi.isNode()) { + Q.unshift(vi); + + if (params.bfs) { + V[viId] = true; + connectedNodes.push(vi); + } + + id2depth[viId] = 0; + } + } + + var _loop = function _loop() { + var v = params.bfs ? Q.shift() : Q.pop(); + var vId = v.id(); + + if (params.dfs) { + if (V[vId]) { + return "continue"; + } + + V[vId] = true; + connectedNodes.push(v); + } + + var depth = id2depth[vId]; + var prevEdge = connectedBy[vId]; + var src = prevEdge != null ? prevEdge.source() : null; + var tgt = prevEdge != null ? prevEdge.target() : null; + var prevNode = prevEdge == null ? undefined : v.same(src) ? tgt[0] : src[0]; + var ret = void 0; + ret = fn(v, prevEdge, prevNode, j++, depth); + + if (ret === true) { + found = v; + return "break"; + } + + if (ret === false) { + return "break"; + } + + var vwEdges = v.connectedEdges().filter(function (e) { + return (!directed || e.source().same(v)) && edges.has(e); + }); + + for (var _i2 = 0; _i2 < vwEdges.length; _i2++) { + var e = vwEdges[_i2]; + var w = e.connectedNodes().filter(function (n) { + return !n.same(v) && nodes.has(n); + }); + var wId = w.id(); + + if (w.length !== 0 && !V[wId]) { + w = w[0]; + Q.push(w); + + if (params.bfs) { + V[wId] = true; + connectedNodes.push(w); + } + + connectedBy[wId] = e; + id2depth[wId] = id2depth[vId] + 1; + } + } + }; + + while (Q.length !== 0) { + var _ret = _loop(); + + if (_ret === "continue") continue; + if (_ret === "break") break; + } + + var connectedEles = cy.collection(); + + for (var _i = 0; _i < connectedNodes.length; _i++) { + var node = connectedNodes[_i]; + var edge = connectedBy[node.id()]; + + if (edge != null) { + connectedEles.push(edge); + } + + connectedEles.push(node); + } + + return { + path: cy.collection(connectedEles), + found: cy.collection(found) + }; + }; + }; // search, spanning trees, etc + + + var elesfn$v = { + breadthFirstSearch: defineSearch({ + bfs: true + }), + depthFirstSearch: defineSearch({ + dfs: true + }) + }; // nice, short mathematical alias + + elesfn$v.bfs = elesfn$v.breadthFirstSearch; + elesfn$v.dfs = elesfn$v.depthFirstSearch; + + var heap$1 = createCommonjsModule(function (module, exports) { + // Generated by CoffeeScript 1.8.0 + (function() { + var Heap, defaultCmp, floor, heapify, heappop, heappush, heappushpop, heapreplace, insort, min, nlargest, nsmallest, updateItem, _siftdown, _siftup; + + floor = Math.floor, min = Math.min; + + + /* + Default comparison function to be used + */ + + defaultCmp = function(x, y) { + if (x < y) { + return -1; + } + if (x > y) { + return 1; + } + return 0; + }; + + + /* + Insert item x in list a, and keep it sorted assuming a is sorted. + + If x is already in a, insert it to the right of the rightmost x. + + Optional args lo (default 0) and hi (default a.length) bound the slice + of a to be searched. + */ + + insort = function(a, x, lo, hi, cmp) { + var mid; + if (lo == null) { + lo = 0; + } + if (cmp == null) { + cmp = defaultCmp; + } + if (lo < 0) { + throw new Error('lo must be non-negative'); + } + if (hi == null) { + hi = a.length; + } + while (lo < hi) { + mid = floor((lo + hi) / 2); + if (cmp(x, a[mid]) < 0) { + hi = mid; + } else { + lo = mid + 1; + } + } + return ([].splice.apply(a, [lo, lo - lo].concat(x)), x); + }; + + + /* + Push item onto heap, maintaining the heap invariant. + */ + + heappush = function(array, item, cmp) { + if (cmp == null) { + cmp = defaultCmp; + } + array.push(item); + return _siftdown(array, 0, array.length - 1, cmp); + }; + + + /* + Pop the smallest item off the heap, maintaining the heap invariant. + */ + + heappop = function(array, cmp) { + var lastelt, returnitem; + if (cmp == null) { + cmp = defaultCmp; + } + lastelt = array.pop(); + if (array.length) { + returnitem = array[0]; + array[0] = lastelt; + _siftup(array, 0, cmp); + } else { + returnitem = lastelt; + } + return returnitem; + }; + + + /* + Pop and return the current smallest value, and add the new item. + + This is more efficient than heappop() followed by heappush(), and can be + more appropriate when using a fixed size heap. Note that the value + returned may be larger than item! That constrains reasonable use of + this routine unless written as part of a conditional replacement: + if item > array[0] + item = heapreplace(array, item) + */ + + heapreplace = function(array, item, cmp) { + var returnitem; + if (cmp == null) { + cmp = defaultCmp; + } + returnitem = array[0]; + array[0] = item; + _siftup(array, 0, cmp); + return returnitem; + }; + + + /* + Fast version of a heappush followed by a heappop. + */ + + heappushpop = function(array, item, cmp) { + var _ref; + if (cmp == null) { + cmp = defaultCmp; + } + if (array.length && cmp(array[0], item) < 0) { + _ref = [array[0], item], item = _ref[0], array[0] = _ref[1]; + _siftup(array, 0, cmp); + } + return item; + }; + + + /* + Transform list into a heap, in-place, in O(array.length) time. + */ + + heapify = function(array, cmp) { + var i, _i, _len, _ref1, _results, _results1; + if (cmp == null) { + cmp = defaultCmp; + } + _ref1 = (function() { + _results1 = []; + for (var _j = 0, _ref = floor(array.length / 2); 0 <= _ref ? _j < _ref : _j > _ref; 0 <= _ref ? _j++ : _j--){ _results1.push(_j); } + return _results1; + }).apply(this).reverse(); + _results = []; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + i = _ref1[_i]; + _results.push(_siftup(array, i, cmp)); + } + return _results; + }; + + + /* + Update the position of the given item in the heap. + This function should be called every time the item is being modified. + */ + + updateItem = function(array, item, cmp) { + var pos; + if (cmp == null) { + cmp = defaultCmp; + } + pos = array.indexOf(item); + if (pos === -1) { + return; + } + _siftdown(array, 0, pos, cmp); + return _siftup(array, pos, cmp); + }; + + + /* + Find the n largest elements in a dataset. + */ + + nlargest = function(array, n, cmp) { + var elem, result, _i, _len, _ref; + if (cmp == null) { + cmp = defaultCmp; + } + result = array.slice(0, n); + if (!result.length) { + return result; + } + heapify(result, cmp); + _ref = array.slice(n); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + elem = _ref[_i]; + heappushpop(result, elem, cmp); + } + return result.sort(cmp).reverse(); + }; + + + /* + Find the n smallest elements in a dataset. + */ + + nsmallest = function(array, n, cmp) { + var elem, los, result, _i, _j, _len, _ref, _ref1, _results; + if (cmp == null) { + cmp = defaultCmp; + } + if (n * 10 <= array.length) { + result = array.slice(0, n).sort(cmp); + if (!result.length) { + return result; + } + los = result[result.length - 1]; + _ref = array.slice(n); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + elem = _ref[_i]; + if (cmp(elem, los) < 0) { + insort(result, elem, 0, null, cmp); + result.pop(); + los = result[result.length - 1]; + } + } + return result; + } + heapify(array, cmp); + _results = []; + for (_j = 0, _ref1 = min(n, array.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; 0 <= _ref1 ? ++_j : --_j) { + _results.push(heappop(array, cmp)); + } + return _results; + }; + + _siftdown = function(array, startpos, pos, cmp) { + var newitem, parent, parentpos; + if (cmp == null) { + cmp = defaultCmp; + } + newitem = array[pos]; + while (pos > startpos) { + parentpos = (pos - 1) >> 1; + parent = array[parentpos]; + if (cmp(newitem, parent) < 0) { + array[pos] = parent; + pos = parentpos; + continue; + } + break; + } + return array[pos] = newitem; + }; + + _siftup = function(array, pos, cmp) { + var childpos, endpos, newitem, rightpos, startpos; + if (cmp == null) { + cmp = defaultCmp; + } + endpos = array.length; + startpos = pos; + newitem = array[pos]; + childpos = 2 * pos + 1; + while (childpos < endpos) { + rightpos = childpos + 1; + if (rightpos < endpos && !(cmp(array[childpos], array[rightpos]) < 0)) { + childpos = rightpos; + } + array[pos] = array[childpos]; + pos = childpos; + childpos = 2 * pos + 1; + } + array[pos] = newitem; + return _siftdown(array, startpos, pos, cmp); + }; + + Heap = (function() { + Heap.push = heappush; + + Heap.pop = heappop; + + Heap.replace = heapreplace; + + Heap.pushpop = heappushpop; + + Heap.heapify = heapify; + + Heap.updateItem = updateItem; + + Heap.nlargest = nlargest; + + Heap.nsmallest = nsmallest; + + function Heap(cmp) { + this.cmp = cmp != null ? cmp : defaultCmp; + this.nodes = []; + } + + Heap.prototype.push = function(x) { + return heappush(this.nodes, x, this.cmp); + }; + + Heap.prototype.pop = function() { + return heappop(this.nodes, this.cmp); + }; + + Heap.prototype.peek = function() { + return this.nodes[0]; + }; + + Heap.prototype.contains = function(x) { + return this.nodes.indexOf(x) !== -1; + }; + + Heap.prototype.replace = function(x) { + return heapreplace(this.nodes, x, this.cmp); + }; + + Heap.prototype.pushpop = function(x) { + return heappushpop(this.nodes, x, this.cmp); + }; + + Heap.prototype.heapify = function() { + return heapify(this.nodes, this.cmp); + }; + + Heap.prototype.updateItem = function(x) { + return updateItem(this.nodes, x, this.cmp); + }; + + Heap.prototype.clear = function() { + return this.nodes = []; + }; + + Heap.prototype.empty = function() { + return this.nodes.length === 0; + }; + + Heap.prototype.size = function() { + return this.nodes.length; + }; + + Heap.prototype.clone = function() { + var heap; + heap = new Heap(); + heap.nodes = this.nodes.slice(0); + return heap; + }; + + Heap.prototype.toArray = function() { + return this.nodes.slice(0); + }; + + Heap.prototype.insert = Heap.prototype.push; + + Heap.prototype.top = Heap.prototype.peek; + + Heap.prototype.front = Heap.prototype.peek; + + Heap.prototype.has = Heap.prototype.contains; + + Heap.prototype.copy = Heap.prototype.clone; + + return Heap; + + })(); + + (function(root, factory) { + { + return module.exports = factory(); + } + })(this, function() { + return Heap; + }); + + }).call(commonjsGlobal); + }); + + var heap = heap$1; + + var dijkstraDefaults = defaults$g({ + root: null, + weight: function weight(edge) { + return 1; + }, + directed: false + }); + var elesfn$u = { + dijkstra: function dijkstra(options) { + if (!plainObject(options)) { + var args = arguments; + options = { + root: args[0], + weight: args[1], + directed: args[2] + }; + } + + var _dijkstraDefaults = dijkstraDefaults(options), + root = _dijkstraDefaults.root, + weight = _dijkstraDefaults.weight, + directed = _dijkstraDefaults.directed; + + var eles = this; + var weightFn = weight; + var source = string(root) ? this.filter(root)[0] : root[0]; + var dist = {}; + var prev = {}; + var knownDist = {}; + + var _this$byGroup = this.byGroup(), + nodes = _this$byGroup.nodes, + edges = _this$byGroup.edges; + + edges.unmergeBy(function (ele) { + return ele.isLoop(); + }); + + var getDist = function getDist(node) { + return dist[node.id()]; + }; + + var setDist = function setDist(node, d) { + dist[node.id()] = d; + Q.updateItem(node); + }; + + var Q = new heap(function (a, b) { + return getDist(a) - getDist(b); + }); + + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + dist[node.id()] = node.same(source) ? 0 : Infinity; + Q.push(node); + } + + var distBetween = function distBetween(u, v) { + var uvs = (directed ? u.edgesTo(v) : u.edgesWith(v)).intersect(edges); + var smallestDistance = Infinity; + var smallestEdge; + + for (var _i = 0; _i < uvs.length; _i++) { + var edge = uvs[_i]; + + var _weight = weightFn(edge); + + if (_weight < smallestDistance || !smallestEdge) { + smallestDistance = _weight; + smallestEdge = edge; + } + } + + return { + edge: smallestEdge, + dist: smallestDistance + }; + }; + + while (Q.size() > 0) { + var u = Q.pop(); + var smalletsDist = getDist(u); + var uid = u.id(); + knownDist[uid] = smalletsDist; + + if (smalletsDist === Infinity) { + continue; + } + + var neighbors = u.neighborhood().intersect(nodes); + + for (var _i2 = 0; _i2 < neighbors.length; _i2++) { + var v = neighbors[_i2]; + var vid = v.id(); + var vDist = distBetween(u, v); + var alt = smalletsDist + vDist.dist; + + if (alt < getDist(v)) { + setDist(v, alt); + prev[vid] = { + node: u, + edge: vDist.edge + }; + } + } // for + + } // while + + + return { + distanceTo: function distanceTo(node) { + var target = string(node) ? nodes.filter(node)[0] : node[0]; + return knownDist[target.id()]; + }, + pathTo: function pathTo(node) { + var target = string(node) ? nodes.filter(node)[0] : node[0]; + var S = []; + var u = target; + var uid = u.id(); + + if (target.length > 0) { + S.unshift(target); + + while (prev[uid]) { + var p = prev[uid]; + S.unshift(p.edge); + S.unshift(p.node); + u = p.node; + uid = u.id(); + } + } + + return eles.spawn(S); + } + }; + } + }; + + var elesfn$t = { + // kruskal's algorithm (finds min spanning tree, assuming undirected graph) + // implemented from pseudocode from wikipedia + kruskal: function kruskal(weightFn) { + weightFn = weightFn || function (edge) { + return 1; + }; + + var _this$byGroup = this.byGroup(), + nodes = _this$byGroup.nodes, + edges = _this$byGroup.edges; + + var numNodes = nodes.length; + var forest = new Array(numNodes); + var A = nodes; // assumes byGroup() creates new collections that can be safely mutated + + var findSetIndex = function findSetIndex(ele) { + for (var i = 0; i < forest.length; i++) { + var eles = forest[i]; + + if (eles.has(ele)) { + return i; + } + } + }; // start with one forest per node + + + for (var i = 0; i < numNodes; i++) { + forest[i] = this.spawn(nodes[i]); + } + + var S = edges.sort(function (a, b) { + return weightFn(a) - weightFn(b); + }); + + for (var _i = 0; _i < S.length; _i++) { + var edge = S[_i]; + var u = edge.source()[0]; + var v = edge.target()[0]; + var setUIndex = findSetIndex(u); + var setVIndex = findSetIndex(v); + var setU = forest[setUIndex]; + var setV = forest[setVIndex]; + + if (setUIndex !== setVIndex) { + A.merge(edge); // combine forests for u and v + + setU.merge(setV); + forest.splice(setVIndex, 1); + } + } + + return A; + } + }; + + var aStarDefaults = defaults$g({ + root: null, + goal: null, + weight: function weight(edge) { + return 1; + }, + heuristic: function heuristic(edge) { + return 0; + }, + directed: false + }); + var elesfn$s = { + // Implemented from pseudocode from wikipedia + aStar: function aStar(options) { + var cy = this.cy(); + + var _aStarDefaults = aStarDefaults(options), + root = _aStarDefaults.root, + goal = _aStarDefaults.goal, + heuristic = _aStarDefaults.heuristic, + directed = _aStarDefaults.directed, + weight = _aStarDefaults.weight; + + root = cy.collection(root)[0]; + goal = cy.collection(goal)[0]; + var sid = root.id(); + var tid = goal.id(); + var gScore = {}; + var fScore = {}; + var closedSetIds = {}; + var openSet = new heap(function (a, b) { + return fScore[a.id()] - fScore[b.id()]; + }); + var openSetIds = new Set$1(); + var cameFrom = {}; + var cameFromEdge = {}; + + var addToOpenSet = function addToOpenSet(ele, id) { + openSet.push(ele); + openSetIds.add(id); + }; + + var cMin, cMinId; + + var popFromOpenSet = function popFromOpenSet() { + cMin = openSet.pop(); + cMinId = cMin.id(); + openSetIds["delete"](cMinId); + }; + + var isInOpenSet = function isInOpenSet(id) { + return openSetIds.has(id); + }; + + addToOpenSet(root, sid); + gScore[sid] = 0; + fScore[sid] = heuristic(root); // Counter + + var steps = 0; // Main loop + + while (openSet.size() > 0) { + popFromOpenSet(); + steps++; // If we've found our goal, then we are done + + if (cMinId === tid) { + var path = []; + var pathNode = goal; + var pathNodeId = tid; + var pathEdge = cameFromEdge[pathNodeId]; + + for (;;) { + path.unshift(pathNode); + + if (pathEdge != null) { + path.unshift(pathEdge); + } + + pathNode = cameFrom[pathNodeId]; + + if (pathNode == null) { + break; + } + + pathNodeId = pathNode.id(); + pathEdge = cameFromEdge[pathNodeId]; + } + + return { + found: true, + distance: gScore[cMinId], + path: this.spawn(path), + steps: steps + }; + } // Add cMin to processed nodes + + + closedSetIds[cMinId] = true; // Update scores for neighbors of cMin + // Take into account if graph is directed or not + + var vwEdges = cMin._private.edges; + + for (var i = 0; i < vwEdges.length; i++) { + var e = vwEdges[i]; // edge must be in set of calling eles + + if (!this.hasElementWithId(e.id())) { + continue; + } // cMin must be the source of edge if directed + + + if (directed && e.data('source') !== cMinId) { + continue; + } + + var wSrc = e.source(); + var wTgt = e.target(); + var w = wSrc.id() !== cMinId ? wSrc : wTgt; + var wid = w.id(); // node must be in set of calling eles + + if (!this.hasElementWithId(wid)) { + continue; + } // if node is in closedSet, ignore it + + + if (closedSetIds[wid]) { + continue; + } // New tentative score for node w + + + var tempScore = gScore[cMinId] + weight(e); // Update gScore for node w if: + // w not present in openSet + // OR + // tentative gScore is less than previous value + // w not in openSet + + if (!isInOpenSet(wid)) { + gScore[wid] = tempScore; + fScore[wid] = tempScore + heuristic(w); + addToOpenSet(w, wid); + cameFrom[wid] = cMin; + cameFromEdge[wid] = e; + continue; + } // w already in openSet, but with greater gScore + + + if (tempScore < gScore[wid]) { + gScore[wid] = tempScore; + fScore[wid] = tempScore + heuristic(w); + cameFrom[wid] = cMin; + cameFromEdge[wid] = e; + } + } // End of neighbors update + + } // End of main loop + // If we've reached here, then we've not reached our goal + + + return { + found: false, + distance: undefined, + path: undefined, + steps: steps + }; + } + }; // elesfn + + var floydWarshallDefaults = defaults$g({ + weight: function weight(edge) { + return 1; + }, + directed: false + }); + var elesfn$r = { + // Implemented from pseudocode from wikipedia + floydWarshall: function floydWarshall(options) { + var cy = this.cy(); + + var _floydWarshallDefault = floydWarshallDefaults(options), + weight = _floydWarshallDefault.weight, + directed = _floydWarshallDefault.directed; + + var weightFn = weight; + + var _this$byGroup = this.byGroup(), + nodes = _this$byGroup.nodes, + edges = _this$byGroup.edges; + + var N = nodes.length; + var Nsq = N * N; + + var indexOf = function indexOf(node) { + return nodes.indexOf(node); + }; + + var atIndex = function atIndex(i) { + return nodes[i]; + }; // Initialize distance matrix + + + var dist = new Array(Nsq); + + for (var n = 0; n < Nsq; n++) { + var j = n % N; + var i = (n - j) / N; + + if (i === j) { + dist[n] = 0; + } else { + dist[n] = Infinity; + } + } // Initialize matrix used for path reconstruction + // Initialize distance matrix + + + var next = new Array(Nsq); + var edgeNext = new Array(Nsq); // Process edges + + for (var _i = 0; _i < edges.length; _i++) { + var edge = edges[_i]; + var src = edge.source()[0]; + var tgt = edge.target()[0]; + + if (src === tgt) { + continue; + } // exclude loops + + + var s = indexOf(src); + var t = indexOf(tgt); + var st = s * N + t; // source to target index + + var _weight = weightFn(edge); // Check if already process another edge between same 2 nodes + + + if (dist[st] > _weight) { + dist[st] = _weight; + next[st] = t; + edgeNext[st] = edge; + } // If undirected graph, process 'reversed' edge + + + if (!directed) { + var ts = t * N + s; // target to source index + + if (!directed && dist[ts] > _weight) { + dist[ts] = _weight; + next[ts] = s; + edgeNext[ts] = edge; + } + } + } // Main loop + + + for (var k = 0; k < N; k++) { + for (var _i2 = 0; _i2 < N; _i2++) { + var ik = _i2 * N + k; + + for (var _j = 0; _j < N; _j++) { + var ij = _i2 * N + _j; + var kj = k * N + _j; + + if (dist[ik] + dist[kj] < dist[ij]) { + dist[ij] = dist[ik] + dist[kj]; + next[ij] = next[ik]; + } + } + } + } + + var getArgEle = function getArgEle(ele) { + return (string(ele) ? cy.filter(ele) : ele)[0]; + }; + + var indexOfArgEle = function indexOfArgEle(ele) { + return indexOf(getArgEle(ele)); + }; + + var res = { + distance: function distance(from, to) { + var i = indexOfArgEle(from); + var j = indexOfArgEle(to); + return dist[i * N + j]; + }, + path: function path(from, to) { + var i = indexOfArgEle(from); + var j = indexOfArgEle(to); + var fromNode = atIndex(i); + + if (i === j) { + return fromNode.collection(); + } + + if (next[i * N + j] == null) { + return cy.collection(); + } + + var path = cy.collection(); + var prev = i; + var edge; + path.merge(fromNode); + + while (i !== j) { + prev = i; + i = next[i * N + j]; + edge = edgeNext[prev * N + i]; + path.merge(edge); + path.merge(atIndex(i)); + } + + return path; + } + }; + return res; + } // floydWarshall + + }; // elesfn + + var bellmanFordDefaults = defaults$g({ + weight: function weight(edge) { + return 1; + }, + directed: false, + root: null + }); + var elesfn$q = { + // Implemented from pseudocode from wikipedia + bellmanFord: function bellmanFord(options) { + var _this = this; + + var _bellmanFordDefaults = bellmanFordDefaults(options), + weight = _bellmanFordDefaults.weight, + directed = _bellmanFordDefaults.directed, + root = _bellmanFordDefaults.root; + + var weightFn = weight; + var eles = this; + var cy = this.cy(); + + var _this$byGroup = this.byGroup(), + edges = _this$byGroup.edges, + nodes = _this$byGroup.nodes; + + var numNodes = nodes.length; + var infoMap = new Map$2(); + var hasNegativeWeightCycle = false; + var negativeWeightCycles = []; + root = cy.collection(root)[0]; // in case selector passed + + edges.unmergeBy(function (edge) { + return edge.isLoop(); + }); + var numEdges = edges.length; + + var getInfo = function getInfo(node) { + var obj = infoMap.get(node.id()); + + if (!obj) { + obj = {}; + infoMap.set(node.id(), obj); + } + + return obj; + }; + + var getNodeFromTo = function getNodeFromTo(to) { + return (string(to) ? cy.$(to) : to)[0]; + }; + + var distanceTo = function distanceTo(to) { + return getInfo(getNodeFromTo(to)).dist; + }; + + var pathTo = function pathTo(to) { + var thisStart = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : root; + var end = getNodeFromTo(to); + var path = []; + var node = end; + + for (;;) { + if (node == null) { + return _this.spawn(); + } + + var _getInfo = getInfo(node), + edge = _getInfo.edge, + pred = _getInfo.pred; + + path.unshift(node[0]); + + if (node.same(thisStart) && path.length > 0) { + break; + } + + if (edge != null) { + path.unshift(edge); + } + + node = pred; + } + + return eles.spawn(path); + }; // Initializations { dist, pred, edge } + + + for (var i = 0; i < numNodes; i++) { + var node = nodes[i]; + var info = getInfo(node); + + if (node.same(root)) { + info.dist = 0; + } else { + info.dist = Infinity; + } + + info.pred = null; + info.edge = null; + } // Edges relaxation + + + var replacedEdge = false; + + var checkForEdgeReplacement = function checkForEdgeReplacement(node1, node2, edge, info1, info2, weight) { + var dist = info1.dist + weight; + + if (dist < info2.dist && !edge.same(info1.edge)) { + info2.dist = dist; + info2.pred = node1; + info2.edge = edge; + replacedEdge = true; + } + }; + + for (var _i = 1; _i < numNodes; _i++) { + replacedEdge = false; + + for (var e = 0; e < numEdges; e++) { + var edge = edges[e]; + var src = edge.source(); + var tgt = edge.target(); + + var _weight = weightFn(edge); + + var srcInfo = getInfo(src); + var tgtInfo = getInfo(tgt); + checkForEdgeReplacement(src, tgt, edge, srcInfo, tgtInfo, _weight); // If undirected graph, we need to take into account the 'reverse' edge + + if (!directed) { + checkForEdgeReplacement(tgt, src, edge, tgtInfo, srcInfo, _weight); + } + } + + if (!replacedEdge) { + break; + } + } + + if (replacedEdge) { + // Check for negative weight cycles + var negativeWeightCycleIds = []; + + for (var _e = 0; _e < numEdges; _e++) { + var _edge = edges[_e]; + + var _src = _edge.source(); + + var _tgt = _edge.target(); + + var _weight2 = weightFn(_edge); + + var srcDist = getInfo(_src).dist; + var tgtDist = getInfo(_tgt).dist; + + if (srcDist + _weight2 < tgtDist || !directed && tgtDist + _weight2 < srcDist) { + if (!hasNegativeWeightCycle) { + warn('Graph contains a negative weight cycle for Bellman-Ford'); + hasNegativeWeightCycle = true; + } + + if (options.findNegativeWeightCycles !== false) { + var negativeNodes = []; + + if (srcDist + _weight2 < tgtDist) { + negativeNodes.push(_src); + } + + if (!directed && tgtDist + _weight2 < srcDist) { + negativeNodes.push(_tgt); + } + + var numNegativeNodes = negativeNodes.length; + + for (var n = 0; n < numNegativeNodes; n++) { + var start = negativeNodes[n]; + var cycle = [start]; + cycle.push(getInfo(start).edge); + var _node = getInfo(start).pred; + + while (cycle.indexOf(_node) === -1) { + cycle.push(_node); + cycle.push(getInfo(_node).edge); + _node = getInfo(_node).pred; + } + + cycle = cycle.slice(cycle.indexOf(_node)); + var smallestId = cycle[0].id(); + var smallestIndex = 0; + + for (var c = 2; c < cycle.length; c += 2) { + if (cycle[c].id() < smallestId) { + smallestId = cycle[c].id(); + smallestIndex = c; + } + } + + cycle = cycle.slice(smallestIndex).concat(cycle.slice(0, smallestIndex)); + cycle.push(cycle[0]); + var cycleId = cycle.map(function (el) { + return el.id(); + }).join(","); + + if (negativeWeightCycleIds.indexOf(cycleId) === -1) { + negativeWeightCycles.push(eles.spawn(cycle)); + negativeWeightCycleIds.push(cycleId); + } + } + } else { + break; + } + } + } + } + + return { + distanceTo: distanceTo, + pathTo: pathTo, + hasNegativeWeightCycle: hasNegativeWeightCycle, + negativeWeightCycles: negativeWeightCycles + }; + } // bellmanFord + + }; // elesfn + + var sqrt2 = Math.sqrt(2); // Function which colapses 2 (meta) nodes into one + // Updates the remaining edge lists + // Receives as a paramater the edge which causes the collapse + + var collapse = function collapse(edgeIndex, nodeMap, remainingEdges) { + if (remainingEdges.length === 0) { + error("Karger-Stein must be run on a connected (sub)graph"); + } + + var edgeInfo = remainingEdges[edgeIndex]; + var sourceIn = edgeInfo[1]; + var targetIn = edgeInfo[2]; + var partition1 = nodeMap[sourceIn]; + var partition2 = nodeMap[targetIn]; + var newEdges = remainingEdges; // re-use array + // Delete all edges between partition1 and partition2 + + for (var i = newEdges.length - 1; i >= 0; i--) { + var edge = newEdges[i]; + var src = edge[1]; + var tgt = edge[2]; + + if (nodeMap[src] === partition1 && nodeMap[tgt] === partition2 || nodeMap[src] === partition2 && nodeMap[tgt] === partition1) { + newEdges.splice(i, 1); + } + } // All edges pointing to partition2 should now point to partition1 + + + for (var _i = 0; _i < newEdges.length; _i++) { + var _edge = newEdges[_i]; + + if (_edge[1] === partition2) { + // Check source + newEdges[_i] = _edge.slice(); // copy + + newEdges[_i][1] = partition1; + } else if (_edge[2] === partition2) { + // Check target + newEdges[_i] = _edge.slice(); // copy + + newEdges[_i][2] = partition1; + } + } // Move all nodes from partition2 to partition1 + + + for (var _i2 = 0; _i2 < nodeMap.length; _i2++) { + if (nodeMap[_i2] === partition2) { + nodeMap[_i2] = partition1; + } + } + + return newEdges; + }; // Contracts a graph until we reach a certain number of meta nodes + + + var contractUntil = function contractUntil(metaNodeMap, remainingEdges, size, sizeLimit) { + while (size > sizeLimit) { + // Choose an edge randomly + var edgeIndex = Math.floor(Math.random() * remainingEdges.length); // Collapse graph based on edge + + remainingEdges = collapse(edgeIndex, metaNodeMap, remainingEdges); + size--; + } + + return remainingEdges; + }; + + var elesfn$p = { + // Computes the minimum cut of an undirected graph + // Returns the correct answer with high probability + kargerStein: function kargerStein() { + var _this = this; + + var _this$byGroup = this.byGroup(), + nodes = _this$byGroup.nodes, + edges = _this$byGroup.edges; + + edges.unmergeBy(function (edge) { + return edge.isLoop(); + }); + var numNodes = nodes.length; + var numEdges = edges.length; + var numIter = Math.ceil(Math.pow(Math.log(numNodes) / Math.LN2, 2)); + var stopSize = Math.floor(numNodes / sqrt2); + + if (numNodes < 2) { + error('At least 2 nodes are required for Karger-Stein algorithm'); + return undefined; + } // Now store edge destination as indexes + // Format for each edge (edge index, source node index, target node index) + + + var edgeIndexes = []; + + for (var i = 0; i < numEdges; i++) { + var e = edges[i]; + edgeIndexes.push([i, nodes.indexOf(e.source()), nodes.indexOf(e.target())]); + } // We will store the best cut found here + + + var minCutSize = Infinity; + var minCutEdgeIndexes = []; + var minCutNodeMap = new Array(numNodes); // Initial meta node partition + + var metaNodeMap = new Array(numNodes); + var metaNodeMap2 = new Array(numNodes); + + var copyNodesMap = function copyNodesMap(from, to) { + for (var _i3 = 0; _i3 < numNodes; _i3++) { + to[_i3] = from[_i3]; + } + }; // Main loop + + + for (var iter = 0; iter <= numIter; iter++) { + // Reset meta node partition + for (var _i4 = 0; _i4 < numNodes; _i4++) { + metaNodeMap[_i4] = _i4; + } // Contract until stop point (stopSize nodes) + + + var edgesState = contractUntil(metaNodeMap, edgeIndexes.slice(), numNodes, stopSize); + var edgesState2 = edgesState.slice(); // copy + // Create a copy of the colapsed nodes state + + copyNodesMap(metaNodeMap, metaNodeMap2); // Run 2 iterations starting in the stop state + + var res1 = contractUntil(metaNodeMap, edgesState, stopSize, 2); + var res2 = contractUntil(metaNodeMap2, edgesState2, stopSize, 2); // Is any of the 2 results the best cut so far? + + if (res1.length <= res2.length && res1.length < minCutSize) { + minCutSize = res1.length; + minCutEdgeIndexes = res1; + copyNodesMap(metaNodeMap, minCutNodeMap); + } else if (res2.length <= res1.length && res2.length < minCutSize) { + minCutSize = res2.length; + minCutEdgeIndexes = res2; + copyNodesMap(metaNodeMap2, minCutNodeMap); + } + } // end of main loop + // Construct result + + + var cut = this.spawn(minCutEdgeIndexes.map(function (e) { + return edges[e[0]]; + })); + var partition1 = this.spawn(); + var partition2 = this.spawn(); // traverse metaNodeMap for best cut + + var witnessNodePartition = minCutNodeMap[0]; + + for (var _i5 = 0; _i5 < minCutNodeMap.length; _i5++) { + var partitionId = minCutNodeMap[_i5]; + var node = nodes[_i5]; + + if (partitionId === witnessNodePartition) { + partition1.merge(node); + } else { + partition2.merge(node); + } + } // construct components corresponding to each disjoint subset of nodes + + + var constructComponent = function constructComponent(subset) { + var component = _this.spawn(); + + subset.forEach(function (node) { + component.merge(node); + node.connectedEdges().forEach(function (edge) { + // ensure edge is within calling collection and edge is not in cut + if (_this.contains(edge) && !cut.contains(edge)) { + component.merge(edge); + } + }); + }); + return component; + }; + + var components = [constructComponent(partition1), constructComponent(partition2)]; + var ret = { + cut: cut, + components: components, + // n.b. partitions are included to be compatible with the old api spec + // (could be removed in a future major version) + partition1: partition1, + partition2: partition2 + }; + return ret; + } + }; // elesfn + + var copyPosition = function copyPosition(p) { + return { + x: p.x, + y: p.y + }; + }; + var modelToRenderedPosition = function modelToRenderedPosition(p, zoom, pan) { + return { + x: p.x * zoom + pan.x, + y: p.y * zoom + pan.y + }; + }; + var renderedToModelPosition = function renderedToModelPosition(p, zoom, pan) { + return { + x: (p.x - pan.x) / zoom, + y: (p.y - pan.y) / zoom + }; + }; + var array2point = function array2point(arr) { + return { + x: arr[0], + y: arr[1] + }; + }; + var min = function min(arr) { + var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length; + var min = Infinity; + + for (var i = begin; i < end; i++) { + var val = arr[i]; + + if (isFinite(val)) { + min = Math.min(val, min); + } + } + + return min; + }; + var max = function max(arr) { + var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length; + var max = -Infinity; + + for (var i = begin; i < end; i++) { + var val = arr[i]; + + if (isFinite(val)) { + max = Math.max(val, max); + } + } + + return max; + }; + var mean = function mean(arr) { + var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length; + var total = 0; + var n = 0; + + for (var i = begin; i < end; i++) { + var val = arr[i]; + + if (isFinite(val)) { + total += val; + n++; + } + } + + return total / n; + }; + var median = function median(arr) { + var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length; + var copy = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + var sort = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; + var includeHoles = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true; + + if (copy) { + arr = arr.slice(begin, end); + } else { + if (end < arr.length) { + arr.splice(end, arr.length - end); + } + + if (begin > 0) { + arr.splice(0, begin); + } + } // all non finite (e.g. Infinity, NaN) elements must be -Infinity so they go to the start + + + var off = 0; // offset from non-finite values + + for (var i = arr.length - 1; i >= 0; i--) { + var v = arr[i]; + + if (includeHoles) { + if (!isFinite(v)) { + arr[i] = -Infinity; + off++; + } + } else { + // just remove it if we don't want to consider holes + arr.splice(i, 1); + } + } + + if (sort) { + arr.sort(function (a, b) { + return a - b; + }); // requires copy = true if you don't want to change the orig + } + + var len = arr.length; + var mid = Math.floor(len / 2); + + if (len % 2 !== 0) { + return arr[mid + 1 + off]; + } else { + return (arr[mid - 1 + off] + arr[mid + off]) / 2; + } + }; + var deg2rad = function deg2rad(deg) { + return Math.PI * deg / 180; + }; + var getAngleFromDisp = function getAngleFromDisp(dispX, dispY) { + return Math.atan2(dispY, dispX) - Math.PI / 2; + }; + var log2 = Math.log2 || function (n) { + return Math.log(n) / Math.log(2); + }; + var signum = function signum(x) { + if (x > 0) { + return 1; + } else if (x < 0) { + return -1; + } else { + return 0; + } + }; + var dist = function dist(p1, p2) { + return Math.sqrt(sqdist(p1, p2)); + }; + var sqdist = function sqdist(p1, p2) { + var dx = p2.x - p1.x; + var dy = p2.y - p1.y; + return dx * dx + dy * dy; + }; + var inPlaceSumNormalize = function inPlaceSumNormalize(v) { + var length = v.length; // First, get sum of all elements + + var total = 0; + + for (var i = 0; i < length; i++) { + total += v[i]; + } // Now, divide each by the sum of all elements + + + for (var _i = 0; _i < length; _i++) { + v[_i] = v[_i] / total; + } + + return v; + }; + + var qbezierAt = function qbezierAt(p0, p1, p2, t) { + return (1 - t) * (1 - t) * p0 + 2 * (1 - t) * t * p1 + t * t * p2; + }; + var qbezierPtAt = function qbezierPtAt(p0, p1, p2, t) { + return { + x: qbezierAt(p0.x, p1.x, p2.x, t), + y: qbezierAt(p0.y, p1.y, p2.y, t) + }; + }; + var lineAt = function lineAt(p0, p1, t, d) { + var vec = { + x: p1.x - p0.x, + y: p1.y - p0.y + }; + var vecDist = dist(p0, p1); + var normVec = { + x: vec.x / vecDist, + y: vec.y / vecDist + }; + t = t == null ? 0 : t; + d = d != null ? d : t * vecDist; + return { + x: p0.x + normVec.x * d, + y: p0.y + normVec.y * d + }; + }; + var bound = function bound(min, val, max) { + return Math.max(min, Math.min(max, val)); + }; // makes a full bb (x1, y1, x2, y2, w, h) from implicit params + + var makeBoundingBox = function makeBoundingBox(bb) { + if (bb == null) { + return { + x1: Infinity, + y1: Infinity, + x2: -Infinity, + y2: -Infinity, + w: 0, + h: 0 + }; + } else if (bb.x1 != null && bb.y1 != null) { + if (bb.x2 != null && bb.y2 != null && bb.x2 >= bb.x1 && bb.y2 >= bb.y1) { + return { + x1: bb.x1, + y1: bb.y1, + x2: bb.x2, + y2: bb.y2, + w: bb.x2 - bb.x1, + h: bb.y2 - bb.y1 + }; + } else if (bb.w != null && bb.h != null && bb.w >= 0 && bb.h >= 0) { + return { + x1: bb.x1, + y1: bb.y1, + x2: bb.x1 + bb.w, + y2: bb.y1 + bb.h, + w: bb.w, + h: bb.h + }; + } + } + }; + var copyBoundingBox = function copyBoundingBox(bb) { + return { + x1: bb.x1, + x2: bb.x2, + w: bb.w, + y1: bb.y1, + y2: bb.y2, + h: bb.h + }; + }; + var clearBoundingBox = function clearBoundingBox(bb) { + bb.x1 = Infinity; + bb.y1 = Infinity; + bb.x2 = -Infinity; + bb.y2 = -Infinity; + bb.w = 0; + bb.h = 0; + }; + var updateBoundingBox = function updateBoundingBox(bb1, bb2) { + // update bb1 with bb2 bounds + bb1.x1 = Math.min(bb1.x1, bb2.x1); + bb1.x2 = Math.max(bb1.x2, bb2.x2); + bb1.w = bb1.x2 - bb1.x1; + bb1.y1 = Math.min(bb1.y1, bb2.y1); + bb1.y2 = Math.max(bb1.y2, bb2.y2); + bb1.h = bb1.y2 - bb1.y1; + }; + var expandBoundingBoxByPoint = function expandBoundingBoxByPoint(bb, x, y) { + bb.x1 = Math.min(bb.x1, x); + bb.x2 = Math.max(bb.x2, x); + bb.w = bb.x2 - bb.x1; + bb.y1 = Math.min(bb.y1, y); + bb.y2 = Math.max(bb.y2, y); + bb.h = bb.y2 - bb.y1; + }; + var expandBoundingBox = function expandBoundingBox(bb) { + var padding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + bb.x1 -= padding; + bb.x2 += padding; + bb.y1 -= padding; + bb.y2 += padding; + bb.w = bb.x2 - bb.x1; + bb.h = bb.y2 - bb.y1; + return bb; + }; + var expandBoundingBoxSides = function expandBoundingBoxSides(bb) { + var padding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0]; + var top, right, bottom, left; + + if (padding.length === 1) { + top = right = bottom = left = padding[0]; + } else if (padding.length === 2) { + top = bottom = padding[0]; + left = right = padding[1]; + } else if (padding.length === 4) { + var _padding = _slicedToArray(padding, 4); + + top = _padding[0]; + right = _padding[1]; + bottom = _padding[2]; + left = _padding[3]; + } + + bb.x1 -= left; + bb.x2 += right; + bb.y1 -= top; + bb.y2 += bottom; + bb.w = bb.x2 - bb.x1; + bb.h = bb.y2 - bb.y1; + return bb; + }; + + var assignBoundingBox = function assignBoundingBox(bb1, bb2) { + bb1.x1 = bb2.x1; + bb1.y1 = bb2.y1; + bb1.x2 = bb2.x2; + bb1.y2 = bb2.y2; + bb1.w = bb1.x2 - bb1.x1; + bb1.h = bb1.y2 - bb1.y1; + }; + var boundingBoxesIntersect = function boundingBoxesIntersect(bb1, bb2) { + // case: one bb to right of other + if (bb1.x1 > bb2.x2) { + return false; + } + + if (bb2.x1 > bb1.x2) { + return false; + } // case: one bb to left of other + + + if (bb1.x2 < bb2.x1) { + return false; + } + + if (bb2.x2 < bb1.x1) { + return false; + } // case: one bb above other + + + if (bb1.y2 < bb2.y1) { + return false; + } + + if (bb2.y2 < bb1.y1) { + return false; + } // case: one bb below other + + + if (bb1.y1 > bb2.y2) { + return false; + } + + if (bb2.y1 > bb1.y2) { + return false; + } // otherwise, must have some overlap + + + return true; + }; + var inBoundingBox = function inBoundingBox(bb, x, y) { + return bb.x1 <= x && x <= bb.x2 && bb.y1 <= y && y <= bb.y2; + }; + var pointInBoundingBox = function pointInBoundingBox(bb, pt) { + return inBoundingBox(bb, pt.x, pt.y); + }; + var boundingBoxInBoundingBox = function boundingBoxInBoundingBox(bb1, bb2) { + return inBoundingBox(bb1, bb2.x1, bb2.y1) && inBoundingBox(bb1, bb2.x2, bb2.y2); + }; + var roundRectangleIntersectLine = function roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding) { + var cornerRadius = getRoundRectangleRadius(width, height); + var halfWidth = width / 2; + var halfHeight = height / 2; // Check intersections with straight line segments + + var straightLineIntersections; // Top segment, left to right + + { + var topStartX = nodeX - halfWidth + cornerRadius - padding; + var topStartY = nodeY - halfHeight - padding; + var topEndX = nodeX + halfWidth - cornerRadius + padding; + var topEndY = topStartY; + straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false); + + if (straightLineIntersections.length > 0) { + return straightLineIntersections; + } + } // Right segment, top to bottom + + { + var rightStartX = nodeX + halfWidth + padding; + var rightStartY = nodeY - halfHeight + cornerRadius - padding; + var rightEndX = rightStartX; + var rightEndY = nodeY + halfHeight - cornerRadius + padding; + straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, rightStartX, rightStartY, rightEndX, rightEndY, false); + + if (straightLineIntersections.length > 0) { + return straightLineIntersections; + } + } // Bottom segment, left to right + + { + var bottomStartX = nodeX - halfWidth + cornerRadius - padding; + var bottomStartY = nodeY + halfHeight + padding; + var bottomEndX = nodeX + halfWidth - cornerRadius + padding; + var bottomEndY = bottomStartY; + straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, bottomStartX, bottomStartY, bottomEndX, bottomEndY, false); + + if (straightLineIntersections.length > 0) { + return straightLineIntersections; + } + } // Left segment, top to bottom + + { + var leftStartX = nodeX - halfWidth - padding; + var leftStartY = nodeY - halfHeight + cornerRadius - padding; + var leftEndX = leftStartX; + var leftEndY = nodeY + halfHeight - cornerRadius + padding; + straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, leftStartX, leftStartY, leftEndX, leftEndY, false); + + if (straightLineIntersections.length > 0) { + return straightLineIntersections; + } + } // Check intersections with arc segments + + var arcIntersections; // Top Left + + { + var topLeftCenterX = nodeX - halfWidth + cornerRadius; + var topLeftCenterY = nodeY - halfHeight + cornerRadius; + arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topLeftCenterX, topLeftCenterY, cornerRadius + padding); // Ensure the intersection is on the desired quarter of the circle + + if (arcIntersections.length > 0 && arcIntersections[0] <= topLeftCenterX && arcIntersections[1] <= topLeftCenterY) { + return [arcIntersections[0], arcIntersections[1]]; + } + } // Top Right + + { + var topRightCenterX = nodeX + halfWidth - cornerRadius; + var topRightCenterY = nodeY - halfHeight + cornerRadius; + arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topRightCenterX, topRightCenterY, cornerRadius + padding); // Ensure the intersection is on the desired quarter of the circle + + if (arcIntersections.length > 0 && arcIntersections[0] >= topRightCenterX && arcIntersections[1] <= topRightCenterY) { + return [arcIntersections[0], arcIntersections[1]]; + } + } // Bottom Right + + { + var bottomRightCenterX = nodeX + halfWidth - cornerRadius; + var bottomRightCenterY = nodeY + halfHeight - cornerRadius; + arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomRightCenterX, bottomRightCenterY, cornerRadius + padding); // Ensure the intersection is on the desired quarter of the circle + + if (arcIntersections.length > 0 && arcIntersections[0] >= bottomRightCenterX && arcIntersections[1] >= bottomRightCenterY) { + return [arcIntersections[0], arcIntersections[1]]; + } + } // Bottom Left + + { + var bottomLeftCenterX = nodeX - halfWidth + cornerRadius; + var bottomLeftCenterY = nodeY + halfHeight - cornerRadius; + arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomLeftCenterX, bottomLeftCenterY, cornerRadius + padding); // Ensure the intersection is on the desired quarter of the circle + + if (arcIntersections.length > 0 && arcIntersections[0] <= bottomLeftCenterX && arcIntersections[1] >= bottomLeftCenterY) { + return [arcIntersections[0], arcIntersections[1]]; + } + } + return []; // if nothing + }; + var inLineVicinity = function inLineVicinity(x, y, lx1, ly1, lx2, ly2, tolerance) { + var t = tolerance; + var x1 = Math.min(lx1, lx2); + var x2 = Math.max(lx1, lx2); + var y1 = Math.min(ly1, ly2); + var y2 = Math.max(ly1, ly2); + return x1 - t <= x && x <= x2 + t && y1 - t <= y && y <= y2 + t; + }; + var inBezierVicinity = function inBezierVicinity(x, y, x1, y1, x2, y2, x3, y3, tolerance) { + var bb = { + x1: Math.min(x1, x3, x2) - tolerance, + x2: Math.max(x1, x3, x2) + tolerance, + y1: Math.min(y1, y3, y2) - tolerance, + y2: Math.max(y1, y3, y2) + tolerance + }; // if outside the rough bounding box for the bezier, then it can't be a hit + + if (x < bb.x1 || x > bb.x2 || y < bb.y1 || y > bb.y2) { + // console.log('bezier out of rough bb') + return false; + } else { + // console.log('do more expensive check'); + return true; + } + }; + var solveQuadratic = function solveQuadratic(a, b, c, val) { + c -= val; + var r = b * b - 4 * a * c; + + if (r < 0) { + return []; + } + + var sqrtR = Math.sqrt(r); + var denom = 2 * a; + var root1 = (-b + sqrtR) / denom; + var root2 = (-b - sqrtR) / denom; + return [root1, root2]; + }; + var solveCubic = function solveCubic(a, b, c, d, result) { + // Solves a cubic function, returns root in form [r1, i1, r2, i2, r3, i3], where + // r is the real component, i is the imaginary component + // An implementation of the Cardano method from the year 1545 + // http://en.wikipedia.org/wiki/Cubic_function#The_nature_of_the_roots + var epsilon = 0.00001; // avoid division by zero while keeping the overall expression close in value + + if (a === 0) { + a = epsilon; + } + + b /= a; + c /= a; + d /= a; + var discriminant, q, r, dum1, s, t, term1, r13; + q = (3.0 * c - b * b) / 9.0; + r = -(27.0 * d) + b * (9.0 * c - 2.0 * (b * b)); + r /= 54.0; + discriminant = q * q * q + r * r; + result[1] = 0; + term1 = b / 3.0; + + if (discriminant > 0) { + s = r + Math.sqrt(discriminant); + s = s < 0 ? -Math.pow(-s, 1.0 / 3.0) : Math.pow(s, 1.0 / 3.0); + t = r - Math.sqrt(discriminant); + t = t < 0 ? -Math.pow(-t, 1.0 / 3.0) : Math.pow(t, 1.0 / 3.0); + result[0] = -term1 + s + t; + term1 += (s + t) / 2.0; + result[4] = result[2] = -term1; + term1 = Math.sqrt(3.0) * (-t + s) / 2; + result[3] = term1; + result[5] = -term1; + return; + } + + result[5] = result[3] = 0; + + if (discriminant === 0) { + r13 = r < 0 ? -Math.pow(-r, 1.0 / 3.0) : Math.pow(r, 1.0 / 3.0); + result[0] = -term1 + 2.0 * r13; + result[4] = result[2] = -(r13 + term1); + return; + } + + q = -q; + dum1 = q * q * q; + dum1 = Math.acos(r / Math.sqrt(dum1)); + r13 = 2.0 * Math.sqrt(q); + result[0] = -term1 + r13 * Math.cos(dum1 / 3.0); + result[2] = -term1 + r13 * Math.cos((dum1 + 2.0 * Math.PI) / 3.0); + result[4] = -term1 + r13 * Math.cos((dum1 + 4.0 * Math.PI) / 3.0); + return; + }; + var sqdistToQuadraticBezier = function sqdistToQuadraticBezier(x, y, x1, y1, x2, y2, x3, y3) { + // Find minimum distance by using the minimum of the distance + // function between the given point and the curve + // This gives the coefficients of the resulting cubic equation + // whose roots tell us where a possible minimum is + // (Coefficients are divided by 4) + var a = 1.0 * x1 * x1 - 4 * x1 * x2 + 2 * x1 * x3 + 4 * x2 * x2 - 4 * x2 * x3 + x3 * x3 + y1 * y1 - 4 * y1 * y2 + 2 * y1 * y3 + 4 * y2 * y2 - 4 * y2 * y3 + y3 * y3; + var b = 1.0 * 9 * x1 * x2 - 3 * x1 * x1 - 3 * x1 * x3 - 6 * x2 * x2 + 3 * x2 * x3 + 9 * y1 * y2 - 3 * y1 * y1 - 3 * y1 * y3 - 6 * y2 * y2 + 3 * y2 * y3; + var c = 1.0 * 3 * x1 * x1 - 6 * x1 * x2 + x1 * x3 - x1 * x + 2 * x2 * x2 + 2 * x2 * x - x3 * x + 3 * y1 * y1 - 6 * y1 * y2 + y1 * y3 - y1 * y + 2 * y2 * y2 + 2 * y2 * y - y3 * y; + var d = 1.0 * x1 * x2 - x1 * x1 + x1 * x - x2 * x + y1 * y2 - y1 * y1 + y1 * y - y2 * y; // debug("coefficients: " + a / a + ", " + b / a + ", " + c / a + ", " + d / a); + + var roots = []; // Use the cubic solving algorithm + + solveCubic(a, b, c, d, roots); + var zeroThreshold = 0.0000001; + var params = []; + + for (var index = 0; index < 6; index += 2) { + if (Math.abs(roots[index + 1]) < zeroThreshold && roots[index] >= 0 && roots[index] <= 1.0) { + params.push(roots[index]); + } + } + + params.push(1.0); + params.push(0.0); + var minDistanceSquared = -1; + var curX, curY, distSquared; + + for (var i = 0; i < params.length; i++) { + curX = Math.pow(1.0 - params[i], 2.0) * x1 + 2.0 * (1 - params[i]) * params[i] * x2 + params[i] * params[i] * x3; + curY = Math.pow(1 - params[i], 2.0) * y1 + 2 * (1.0 - params[i]) * params[i] * y2 + params[i] * params[i] * y3; + distSquared = Math.pow(curX - x, 2) + Math.pow(curY - y, 2); // debug('distance for param ' + params[i] + ": " + Math.sqrt(distSquared)); + + if (minDistanceSquared >= 0) { + if (distSquared < minDistanceSquared) { + minDistanceSquared = distSquared; + } + } else { + minDistanceSquared = distSquared; + } + } + + return minDistanceSquared; + }; + var sqdistToFiniteLine = function sqdistToFiniteLine(x, y, x1, y1, x2, y2) { + var offset = [x - x1, y - y1]; + var line = [x2 - x1, y2 - y1]; + var lineSq = line[0] * line[0] + line[1] * line[1]; + var hypSq = offset[0] * offset[0] + offset[1] * offset[1]; + var dotProduct = offset[0] * line[0] + offset[1] * line[1]; + var adjSq = dotProduct * dotProduct / lineSq; + + if (dotProduct < 0) { + return hypSq; + } + + if (adjSq > lineSq) { + return (x - x2) * (x - x2) + (y - y2) * (y - y2); + } + + return hypSq - adjSq; + }; + var pointInsidePolygonPoints = function pointInsidePolygonPoints(x, y, points) { + var x1, y1, x2, y2; + var y3; // Intersect with vertical line through (x, y) + + var up = 0; // let down = 0; + + for (var i = 0; i < points.length / 2; i++) { + x1 = points[i * 2]; + y1 = points[i * 2 + 1]; + + if (i + 1 < points.length / 2) { + x2 = points[(i + 1) * 2]; + y2 = points[(i + 1) * 2 + 1]; + } else { + x2 = points[(i + 1 - points.length / 2) * 2]; + y2 = points[(i + 1 - points.length / 2) * 2 + 1]; + } + + if (x1 == x && x2 == x) ; else if (x1 >= x && x >= x2 || x1 <= x && x <= x2) { + y3 = (x - x1) / (x2 - x1) * (y2 - y1) + y1; + + if (y3 > y) { + up++; + } // if( y3 < y ){ + // down++; + // } + + } else { + continue; + } + } + + if (up % 2 === 0) { + return false; + } else { + return true; + } + }; + var pointInsidePolygon = function pointInsidePolygon(x, y, basePoints, centerX, centerY, width, height, direction, padding) { + var transformedPoints = new Array(basePoints.length); // Gives negative angle + + var angle; + + if (direction[0] != null) { + angle = Math.atan(direction[1] / direction[0]); + + if (direction[0] < 0) { + angle = angle + Math.PI / 2; + } else { + angle = -angle - Math.PI / 2; + } + } else { + angle = direction; + } + + var cos = Math.cos(-angle); + var sin = Math.sin(-angle); // console.log("base: " + basePoints); + + for (var i = 0; i < transformedPoints.length / 2; i++) { + transformedPoints[i * 2] = width / 2 * (basePoints[i * 2] * cos - basePoints[i * 2 + 1] * sin); + transformedPoints[i * 2 + 1] = height / 2 * (basePoints[i * 2 + 1] * cos + basePoints[i * 2] * sin); + transformedPoints[i * 2] += centerX; + transformedPoints[i * 2 + 1] += centerY; + } + + var points; + + if (padding > 0) { + var expandedLineSet = expandPolygon(transformedPoints, -padding); + points = joinLines(expandedLineSet); + } else { + points = transformedPoints; + } + + return pointInsidePolygonPoints(x, y, points); + }; + var pointInsideRoundPolygon = function pointInsideRoundPolygon(x, y, basePoints, centerX, centerY, width, height) { + var cutPolygonPoints = new Array(basePoints.length); + var halfW = width / 2; + var halfH = height / 2; + var cornerRadius = getRoundPolygonRadius(width, height); + var squaredCornerRadius = cornerRadius * cornerRadius; + + for (var i = 0; i < basePoints.length / 4; i++) { + var sourceUv = void 0, + destUv = void 0; + + if (i === 0) { + sourceUv = basePoints.length - 2; + } else { + sourceUv = i * 4 - 2; + } + + destUv = i * 4 + 2; + var px = centerX + halfW * basePoints[i * 4]; + var py = centerY + halfH * basePoints[i * 4 + 1]; + var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1]; + var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2); + var cp0x = px - offset * basePoints[sourceUv]; + var cp0y = py - offset * basePoints[sourceUv + 1]; + var cp1x = px + offset * basePoints[destUv]; + var cp1y = py + offset * basePoints[destUv + 1]; + cutPolygonPoints[i * 4] = cp0x; + cutPolygonPoints[i * 4 + 1] = cp0y; + cutPolygonPoints[i * 4 + 2] = cp1x; + cutPolygonPoints[i * 4 + 3] = cp1y; + var orthx = basePoints[sourceUv + 1]; + var orthy = -basePoints[sourceUv]; + var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1]; + + if (cosAlpha < 0) { + orthx *= -1; + orthy *= -1; + } + + var cx = cp0x + orthx * cornerRadius; + var cy = cp0y + orthy * cornerRadius; + var squaredDistance = Math.pow(cx - x, 2) + Math.pow(cy - y, 2); + + if (squaredDistance <= squaredCornerRadius) { + return true; + } + } + + return pointInsidePolygonPoints(x, y, cutPolygonPoints); + }; + var joinLines = function joinLines(lineSet) { + var vertices = new Array(lineSet.length / 2); + var currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY; + var nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY; + + for (var i = 0; i < lineSet.length / 4; i++) { + currentLineStartX = lineSet[i * 4]; + currentLineStartY = lineSet[i * 4 + 1]; + currentLineEndX = lineSet[i * 4 + 2]; + currentLineEndY = lineSet[i * 4 + 3]; + + if (i < lineSet.length / 4 - 1) { + nextLineStartX = lineSet[(i + 1) * 4]; + nextLineStartY = lineSet[(i + 1) * 4 + 1]; + nextLineEndX = lineSet[(i + 1) * 4 + 2]; + nextLineEndY = lineSet[(i + 1) * 4 + 3]; + } else { + nextLineStartX = lineSet[0]; + nextLineStartY = lineSet[1]; + nextLineEndX = lineSet[2]; + nextLineEndY = lineSet[3]; + } + + var intersection = finiteLinesIntersect(currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY, nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY, true); + vertices[i * 2] = intersection[0]; + vertices[i * 2 + 1] = intersection[1]; + } + + return vertices; + }; + var expandPolygon = function expandPolygon(points, pad) { + var expandedLineSet = new Array(points.length * 2); + var currentPointX, currentPointY, nextPointX, nextPointY; + + for (var i = 0; i < points.length / 2; i++) { + currentPointX = points[i * 2]; + currentPointY = points[i * 2 + 1]; + + if (i < points.length / 2 - 1) { + nextPointX = points[(i + 1) * 2]; + nextPointY = points[(i + 1) * 2 + 1]; + } else { + nextPointX = points[0]; + nextPointY = points[1]; + } // Current line: [currentPointX, currentPointY] to [nextPointX, nextPointY] + // Assume CCW polygon winding + + + var offsetX = nextPointY - currentPointY; + var offsetY = -(nextPointX - currentPointX); // Normalize + + var offsetLength = Math.sqrt(offsetX * offsetX + offsetY * offsetY); + var normalizedOffsetX = offsetX / offsetLength; + var normalizedOffsetY = offsetY / offsetLength; + expandedLineSet[i * 4] = currentPointX + normalizedOffsetX * pad; + expandedLineSet[i * 4 + 1] = currentPointY + normalizedOffsetY * pad; + expandedLineSet[i * 4 + 2] = nextPointX + normalizedOffsetX * pad; + expandedLineSet[i * 4 + 3] = nextPointY + normalizedOffsetY * pad; + } + + return expandedLineSet; + }; + var intersectLineEllipse = function intersectLineEllipse(x, y, centerX, centerY, ellipseWradius, ellipseHradius) { + var dispX = centerX - x; + var dispY = centerY - y; + dispX /= ellipseWradius; + dispY /= ellipseHradius; + var len = Math.sqrt(dispX * dispX + dispY * dispY); + var newLength = len - 1; + + if (newLength < 0) { + return []; + } + + var lenProportion = newLength / len; + return [(centerX - x) * lenProportion + x, (centerY - y) * lenProportion + y]; + }; + var checkInEllipse = function checkInEllipse(x, y, width, height, centerX, centerY, padding) { + x -= centerX; + y -= centerY; + x /= width / 2 + padding; + y /= height / 2 + padding; + return x * x + y * y <= 1; + }; // Returns intersections of increasing distance from line's start point + + var intersectLineCircle = function intersectLineCircle(x1, y1, x2, y2, centerX, centerY, radius) { + // Calculate d, direction vector of line + var d = [x2 - x1, y2 - y1]; // Direction vector of line + + var f = [x1 - centerX, y1 - centerY]; + var a = d[0] * d[0] + d[1] * d[1]; + var b = 2 * (f[0] * d[0] + f[1] * d[1]); + var c = f[0] * f[0] + f[1] * f[1] - radius * radius; + var discriminant = b * b - 4 * a * c; + + if (discriminant < 0) { + return []; + } + + var t1 = (-b + Math.sqrt(discriminant)) / (2 * a); + var t2 = (-b - Math.sqrt(discriminant)) / (2 * a); + var tMin = Math.min(t1, t2); + var tMax = Math.max(t1, t2); + var inRangeParams = []; + + if (tMin >= 0 && tMin <= 1) { + inRangeParams.push(tMin); + } + + if (tMax >= 0 && tMax <= 1) { + inRangeParams.push(tMax); + } + + if (inRangeParams.length === 0) { + return []; + } + + var nearIntersectionX = inRangeParams[0] * d[0] + x1; + var nearIntersectionY = inRangeParams[0] * d[1] + y1; + + if (inRangeParams.length > 1) { + if (inRangeParams[0] == inRangeParams[1]) { + return [nearIntersectionX, nearIntersectionY]; + } else { + var farIntersectionX = inRangeParams[1] * d[0] + x1; + var farIntersectionY = inRangeParams[1] * d[1] + y1; + return [nearIntersectionX, nearIntersectionY, farIntersectionX, farIntersectionY]; + } + } else { + return [nearIntersectionX, nearIntersectionY]; + } + }; + var midOfThree = function midOfThree(a, b, c) { + if (b <= a && a <= c || c <= a && a <= b) { + return a; + } else if (a <= b && b <= c || c <= b && b <= a) { + return b; + } else { + return c; + } + }; // (x1,y1)=>(x2,y2) intersect with (x3,y3)=>(x4,y4) + + var finiteLinesIntersect = function finiteLinesIntersect(x1, y1, x2, y2, x3, y3, x4, y4, infiniteLines) { + var dx13 = x1 - x3; + var dx21 = x2 - x1; + var dx43 = x4 - x3; + var dy13 = y1 - y3; + var dy21 = y2 - y1; + var dy43 = y4 - y3; + var ua_t = dx43 * dy13 - dy43 * dx13; + var ub_t = dx21 * dy13 - dy21 * dx13; + var u_b = dy43 * dx21 - dx43 * dy21; + + if (u_b !== 0) { + var ua = ua_t / u_b; + var ub = ub_t / u_b; + var flptThreshold = 0.001; + + var _min = 0 - flptThreshold; + + var _max = 1 + flptThreshold; + + if (_min <= ua && ua <= _max && _min <= ub && ub <= _max) { + return [x1 + ua * dx21, y1 + ua * dy21]; + } else { + if (!infiniteLines) { + return []; + } else { + return [x1 + ua * dx21, y1 + ua * dy21]; + } + } + } else { + if (ua_t === 0 || ub_t === 0) { + // Parallel, coincident lines. Check if overlap + // Check endpoint of second line + if (midOfThree(x1, x2, x4) === x4) { + return [x4, y4]; + } // Check start point of second line + + + if (midOfThree(x1, x2, x3) === x3) { + return [x3, y3]; + } // Endpoint of first line + + + if (midOfThree(x3, x4, x2) === x2) { + return [x2, y2]; + } + + return []; + } else { + // Parallel, non-coincident + return []; + } + } + }; // math.polygonIntersectLine( x, y, basePoints, centerX, centerY, width, height, padding ) + // intersect a node polygon (pts transformed) + // + // math.polygonIntersectLine( x, y, basePoints, centerX, centerY ) + // intersect the points (no transform) + + var polygonIntersectLine = function polygonIntersectLine(x, y, basePoints, centerX, centerY, width, height, padding) { + var intersections = []; + var intersection; + var transformedPoints = new Array(basePoints.length); + var doTransform = true; + + if (width == null) { + doTransform = false; + } + + var points; + + if (doTransform) { + for (var i = 0; i < transformedPoints.length / 2; i++) { + transformedPoints[i * 2] = basePoints[i * 2] * width + centerX; + transformedPoints[i * 2 + 1] = basePoints[i * 2 + 1] * height + centerY; + } + + if (padding > 0) { + var expandedLineSet = expandPolygon(transformedPoints, -padding); + points = joinLines(expandedLineSet); + } else { + points = transformedPoints; + } + } else { + points = basePoints; + } + + var currentX, currentY, nextX, nextY; + + for (var _i2 = 0; _i2 < points.length / 2; _i2++) { + currentX = points[_i2 * 2]; + currentY = points[_i2 * 2 + 1]; + + if (_i2 < points.length / 2 - 1) { + nextX = points[(_i2 + 1) * 2]; + nextY = points[(_i2 + 1) * 2 + 1]; + } else { + nextX = points[0]; + nextY = points[1]; + } + + intersection = finiteLinesIntersect(x, y, centerX, centerY, currentX, currentY, nextX, nextY); + + if (intersection.length !== 0) { + intersections.push(intersection[0], intersection[1]); + } + } + + return intersections; + }; + var roundPolygonIntersectLine = function roundPolygonIntersectLine(x, y, basePoints, centerX, centerY, width, height, padding) { + var intersections = []; + var intersection; + var lines = new Array(basePoints.length); + var halfW = width / 2; + var halfH = height / 2; + var cornerRadius = getRoundPolygonRadius(width, height); + + for (var i = 0; i < basePoints.length / 4; i++) { + var sourceUv = void 0, + destUv = void 0; + + if (i === 0) { + sourceUv = basePoints.length - 2; + } else { + sourceUv = i * 4 - 2; + } + + destUv = i * 4 + 2; + var px = centerX + halfW * basePoints[i * 4]; + var py = centerY + halfH * basePoints[i * 4 + 1]; + var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1]; + var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2); + var cp0x = px - offset * basePoints[sourceUv]; + var cp0y = py - offset * basePoints[sourceUv + 1]; + var cp1x = px + offset * basePoints[destUv]; + var cp1y = py + offset * basePoints[destUv + 1]; + + if (i === 0) { + lines[basePoints.length - 2] = cp0x; + lines[basePoints.length - 1] = cp0y; + } else { + lines[i * 4 - 2] = cp0x; + lines[i * 4 - 1] = cp0y; + } + + lines[i * 4] = cp1x; + lines[i * 4 + 1] = cp1y; + var orthx = basePoints[sourceUv + 1]; + var orthy = -basePoints[sourceUv]; + var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1]; + + if (cosAlpha < 0) { + orthx *= -1; + orthy *= -1; + } + + var cx = cp0x + orthx * cornerRadius; + var cy = cp0y + orthy * cornerRadius; + intersection = intersectLineCircle(x, y, centerX, centerY, cx, cy, cornerRadius); + + if (intersection.length !== 0) { + intersections.push(intersection[0], intersection[1]); + } + } + + for (var _i3 = 0; _i3 < lines.length / 4; _i3++) { + intersection = finiteLinesIntersect(x, y, centerX, centerY, lines[_i3 * 4], lines[_i3 * 4 + 1], lines[_i3 * 4 + 2], lines[_i3 * 4 + 3], false); + + if (intersection.length !== 0) { + intersections.push(intersection[0], intersection[1]); + } + } + + if (intersections.length > 2) { + var lowestIntersection = [intersections[0], intersections[1]]; + var lowestSquaredDistance = Math.pow(lowestIntersection[0] - x, 2) + Math.pow(lowestIntersection[1] - y, 2); + + for (var _i4 = 1; _i4 < intersections.length / 2; _i4++) { + var squaredDistance = Math.pow(intersections[_i4 * 2] - x, 2) + Math.pow(intersections[_i4 * 2 + 1] - y, 2); + + if (squaredDistance <= lowestSquaredDistance) { + lowestIntersection[0] = intersections[_i4 * 2]; + lowestIntersection[1] = intersections[_i4 * 2 + 1]; + lowestSquaredDistance = squaredDistance; + } + } + + return lowestIntersection; + } + + return intersections; + }; + var shortenIntersection = function shortenIntersection(intersection, offset, amount) { + var disp = [intersection[0] - offset[0], intersection[1] - offset[1]]; + var length = Math.sqrt(disp[0] * disp[0] + disp[1] * disp[1]); + var lenRatio = (length - amount) / length; + + if (lenRatio < 0) { + lenRatio = 0.00001; + } + + return [offset[0] + lenRatio * disp[0], offset[1] + lenRatio * disp[1]]; + }; + var generateUnitNgonPointsFitToSquare = function generateUnitNgonPointsFitToSquare(sides, rotationRadians) { + var points = generateUnitNgonPoints(sides, rotationRadians); + points = fitPolygonToSquare(points); + return points; + }; + var fitPolygonToSquare = function fitPolygonToSquare(points) { + var x, y; + var sides = points.length / 2; + var minX = Infinity, + minY = Infinity, + maxX = -Infinity, + maxY = -Infinity; + + for (var i = 0; i < sides; i++) { + x = points[2 * i]; + y = points[2 * i + 1]; + minX = Math.min(minX, x); + maxX = Math.max(maxX, x); + minY = Math.min(minY, y); + maxY = Math.max(maxY, y); + } // stretch factors + + + var sx = 2 / (maxX - minX); + var sy = 2 / (maxY - minY); + + for (var _i5 = 0; _i5 < sides; _i5++) { + x = points[2 * _i5] = points[2 * _i5] * sx; + y = points[2 * _i5 + 1] = points[2 * _i5 + 1] * sy; + minX = Math.min(minX, x); + maxX = Math.max(maxX, x); + minY = Math.min(minY, y); + maxY = Math.max(maxY, y); + } + + if (minY < -1) { + for (var _i6 = 0; _i6 < sides; _i6++) { + y = points[2 * _i6 + 1] = points[2 * _i6 + 1] + (-1 - minY); + } + } + + return points; + }; + var generateUnitNgonPoints = function generateUnitNgonPoints(sides, rotationRadians) { + var increment = 1.0 / sides * 2 * Math.PI; + var startAngle = sides % 2 === 0 ? Math.PI / 2.0 + increment / 2.0 : Math.PI / 2.0; + startAngle += rotationRadians; + var points = new Array(sides * 2); + var currentAngle; + + for (var i = 0; i < sides; i++) { + currentAngle = i * increment + startAngle; + points[2 * i] = Math.cos(currentAngle); // x + + points[2 * i + 1] = Math.sin(-currentAngle); // y + } + + return points; + }; // Set the default radius, unless half of width or height is smaller than default + + var getRoundRectangleRadius = function getRoundRectangleRadius(width, height) { + return Math.min(width / 4, height / 4, 8); + }; // Set the default radius + + var getRoundPolygonRadius = function getRoundPolygonRadius(width, height) { + return Math.min(width / 10, height / 10, 8); + }; + var getCutRectangleCornerLength = function getCutRectangleCornerLength() { + return 8; + }; + var bezierPtsToQuadCoeff = function bezierPtsToQuadCoeff(p0, p1, p2) { + return [p0 - 2 * p1 + p2, 2 * (p1 - p0), p0]; + }; // get curve width, height, and control point position offsets as a percentage of node height / width + + var getBarrelCurveConstants = function getBarrelCurveConstants(width, height) { + return { + heightOffset: Math.min(15, 0.05 * height), + widthOffset: Math.min(100, 0.25 * width), + ctrlPtOffsetPct: 0.05 + }; + }; + + var pageRankDefaults = defaults$g({ + dampingFactor: 0.8, + precision: 0.000001, + iterations: 200, + weight: function weight(edge) { + return 1; + } + }); + var elesfn$o = { + pageRank: function pageRank(options) { + var _pageRankDefaults = pageRankDefaults(options), + dampingFactor = _pageRankDefaults.dampingFactor, + precision = _pageRankDefaults.precision, + iterations = _pageRankDefaults.iterations, + weight = _pageRankDefaults.weight; + + var cy = this._private.cy; + + var _this$byGroup = this.byGroup(), + nodes = _this$byGroup.nodes, + edges = _this$byGroup.edges; + + var numNodes = nodes.length; + var numNodesSqd = numNodes * numNodes; + var numEdges = edges.length; // Construct transposed adjacency matrix + // First lets have a zeroed matrix of the right size + // We'll also keep track of the sum of each column + + var matrix = new Array(numNodesSqd); + var columnSum = new Array(numNodes); + var additionalProb = (1 - dampingFactor) / numNodes; // Create null matrix + + for (var i = 0; i < numNodes; i++) { + for (var j = 0; j < numNodes; j++) { + var n = i * numNodes + j; + matrix[n] = 0; + } + + columnSum[i] = 0; + } // Now, process edges + + + for (var _i = 0; _i < numEdges; _i++) { + var edge = edges[_i]; + var srcId = edge.data('source'); + var tgtId = edge.data('target'); // Don't include loops in the matrix + + if (srcId === tgtId) { + continue; + } + + var s = nodes.indexOfId(srcId); + var t = nodes.indexOfId(tgtId); + var w = weight(edge); + + var _n = t * numNodes + s; // Update matrix + + + matrix[_n] += w; // Update column sum + + columnSum[s] += w; + } // Add additional probability based on damping factor + // Also, take into account columns that have sum = 0 + + + var p = 1.0 / numNodes + additionalProb; // Shorthand + // Traverse matrix, column by column + + for (var _j = 0; _j < numNodes; _j++) { + if (columnSum[_j] === 0) { + // No 'links' out from node jth, assume equal probability for each possible node + for (var _i2 = 0; _i2 < numNodes; _i2++) { + var _n2 = _i2 * numNodes + _j; + + matrix[_n2] = p; + } + } else { + // Node jth has outgoing link, compute normalized probabilities + for (var _i3 = 0; _i3 < numNodes; _i3++) { + var _n3 = _i3 * numNodes + _j; + + matrix[_n3] = matrix[_n3] / columnSum[_j] + additionalProb; + } + } + } // Compute dominant eigenvector using power method + + + var eigenvector = new Array(numNodes); + var temp = new Array(numNodes); + var previous; // Start with a vector of all 1's + // Also, initialize a null vector which will be used as shorthand + + for (var _i4 = 0; _i4 < numNodes; _i4++) { + eigenvector[_i4] = 1; + } + + for (var iter = 0; iter < iterations; iter++) { + // Temp array with all 0's + for (var _i5 = 0; _i5 < numNodes; _i5++) { + temp[_i5] = 0; + } // Multiply matrix with previous result + + + for (var _i6 = 0; _i6 < numNodes; _i6++) { + for (var _j2 = 0; _j2 < numNodes; _j2++) { + var _n4 = _i6 * numNodes + _j2; + + temp[_i6] += matrix[_n4] * eigenvector[_j2]; + } + } + + inPlaceSumNormalize(temp); + previous = eigenvector; + eigenvector = temp; + temp = previous; + var diff = 0; // Compute difference (squared module) of both vectors + + for (var _i7 = 0; _i7 < numNodes; _i7++) { + var delta = previous[_i7] - eigenvector[_i7]; + diff += delta * delta; + } // If difference is less than the desired threshold, stop iterating + + + if (diff < precision) { + break; + } + } // Construct result + + + var res = { + rank: function rank(node) { + node = cy.collection(node)[0]; + return eigenvector[nodes.indexOf(node)]; + } + }; + return res; + } // pageRank + + }; // elesfn + + var defaults$f = defaults$g({ + root: null, + weight: function weight(edge) { + return 1; + }, + directed: false, + alpha: 0 + }); + var elesfn$n = { + degreeCentralityNormalized: function degreeCentralityNormalized(options) { + options = defaults$f(options); + var cy = this.cy(); + var nodes = this.nodes(); + var numNodes = nodes.length; + + if (!options.directed) { + var degrees = {}; + var maxDegree = 0; + + for (var i = 0; i < numNodes; i++) { + var node = nodes[i]; // add current node to the current options object and call degreeCentrality + + options.root = node; + var currDegree = this.degreeCentrality(options); + + if (maxDegree < currDegree.degree) { + maxDegree = currDegree.degree; + } + + degrees[node.id()] = currDegree.degree; + } + + return { + degree: function degree(node) { + if (maxDegree === 0) { + return 0; + } + + if (string(node)) { + // from is a selector string + node = cy.filter(node); + } + + return degrees[node.id()] / maxDegree; + } + }; + } else { + var indegrees = {}; + var outdegrees = {}; + var maxIndegree = 0; + var maxOutdegree = 0; + + for (var _i = 0; _i < numNodes; _i++) { + var _node = nodes[_i]; + + var id = _node.id(); // add current node to the current options object and call degreeCentrality + + + options.root = _node; + + var _currDegree = this.degreeCentrality(options); + + if (maxIndegree < _currDegree.indegree) maxIndegree = _currDegree.indegree; + if (maxOutdegree < _currDegree.outdegree) maxOutdegree = _currDegree.outdegree; + indegrees[id] = _currDegree.indegree; + outdegrees[id] = _currDegree.outdegree; + } + + return { + indegree: function indegree(node) { + if (maxIndegree == 0) { + return 0; + } + + if (string(node)) { + // from is a selector string + node = cy.filter(node); + } + + return indegrees[node.id()] / maxIndegree; + }, + outdegree: function outdegree(node) { + if (maxOutdegree === 0) { + return 0; + } + + if (string(node)) { + // from is a selector string + node = cy.filter(node); + } + + return outdegrees[node.id()] / maxOutdegree; + } + }; + } + }, + // degreeCentralityNormalized + // Implemented from the algorithm in Opsahl's paper + // "Node centrality in weighted networks: Generalizing degree and shortest paths" + // check the heading 2 "Degree" + degreeCentrality: function degreeCentrality(options) { + options = defaults$f(options); + var cy = this.cy(); + var callingEles = this; + var _options = options, + root = _options.root, + weight = _options.weight, + directed = _options.directed, + alpha = _options.alpha; + root = cy.collection(root)[0]; + + if (!directed) { + var connEdges = root.connectedEdges().intersection(callingEles); + var k = connEdges.length; + var s = 0; // Now, sum edge weights + + for (var i = 0; i < connEdges.length; i++) { + s += weight(connEdges[i]); + } + + return { + degree: Math.pow(k, 1 - alpha) * Math.pow(s, alpha) + }; + } else { + var edges = root.connectedEdges(); + var incoming = edges.filter(function (edge) { + return edge.target().same(root) && callingEles.has(edge); + }); + var outgoing = edges.filter(function (edge) { + return edge.source().same(root) && callingEles.has(edge); + }); + var k_in = incoming.length; + var k_out = outgoing.length; + var s_in = 0; + var s_out = 0; // Now, sum incoming edge weights + + for (var _i2 = 0; _i2 < incoming.length; _i2++) { + s_in += weight(incoming[_i2]); + } // Now, sum outgoing edge weights + + + for (var _i3 = 0; _i3 < outgoing.length; _i3++) { + s_out += weight(outgoing[_i3]); + } + + return { + indegree: Math.pow(k_in, 1 - alpha) * Math.pow(s_in, alpha), + outdegree: Math.pow(k_out, 1 - alpha) * Math.pow(s_out, alpha) + }; + } + } // degreeCentrality + + }; // elesfn + // nice, short mathematical alias + + elesfn$n.dc = elesfn$n.degreeCentrality; + elesfn$n.dcn = elesfn$n.degreeCentralityNormalised = elesfn$n.degreeCentralityNormalized; + + var defaults$e = defaults$g({ + harmonic: true, + weight: function weight() { + return 1; + }, + directed: false, + root: null + }); + var elesfn$m = { + closenessCentralityNormalized: function closenessCentralityNormalized(options) { + var _defaults = defaults$e(options), + harmonic = _defaults.harmonic, + weight = _defaults.weight, + directed = _defaults.directed; + + var cy = this.cy(); + var closenesses = {}; + var maxCloseness = 0; + var nodes = this.nodes(); + var fw = this.floydWarshall({ + weight: weight, + directed: directed + }); // Compute closeness for every node and find the maximum closeness + + for (var i = 0; i < nodes.length; i++) { + var currCloseness = 0; + var node_i = nodes[i]; + + for (var j = 0; j < nodes.length; j++) { + if (i !== j) { + var d = fw.distance(node_i, nodes[j]); + + if (harmonic) { + currCloseness += 1 / d; + } else { + currCloseness += d; + } + } + } + + if (!harmonic) { + currCloseness = 1 / currCloseness; + } + + if (maxCloseness < currCloseness) { + maxCloseness = currCloseness; + } + + closenesses[node_i.id()] = currCloseness; + } + + return { + closeness: function closeness(node) { + if (maxCloseness == 0) { + return 0; + } + + if (string(node)) { + // from is a selector string + node = cy.filter(node)[0].id(); + } else { + // from is a node + node = node.id(); + } + + return closenesses[node] / maxCloseness; + } + }; + }, + // Implemented from pseudocode from wikipedia + closenessCentrality: function closenessCentrality(options) { + var _defaults2 = defaults$e(options), + root = _defaults2.root, + weight = _defaults2.weight, + directed = _defaults2.directed, + harmonic = _defaults2.harmonic; + + root = this.filter(root)[0]; // we need distance from this node to every other node + + var dijkstra = this.dijkstra({ + root: root, + weight: weight, + directed: directed + }); + var totalDistance = 0; + var nodes = this.nodes(); + + for (var i = 0; i < nodes.length; i++) { + var n = nodes[i]; + + if (!n.same(root)) { + var d = dijkstra.distanceTo(n); + + if (harmonic) { + totalDistance += 1 / d; + } else { + totalDistance += d; + } + } + } + + return harmonic ? totalDistance : 1 / totalDistance; + } // closenessCentrality + + }; // elesfn + // nice, short mathematical alias + + elesfn$m.cc = elesfn$m.closenessCentrality; + elesfn$m.ccn = elesfn$m.closenessCentralityNormalised = elesfn$m.closenessCentralityNormalized; + + var defaults$d = defaults$g({ + weight: null, + directed: false + }); + var elesfn$l = { + // Implemented from the algorithm in the paper "On Variants of Shortest-Path Betweenness Centrality and their Generic Computation" by Ulrik Brandes + betweennessCentrality: function betweennessCentrality(options) { + var _defaults = defaults$d(options), + directed = _defaults.directed, + weight = _defaults.weight; + + var weighted = weight != null; + var cy = this.cy(); // starting + + var V = this.nodes(); + var A = {}; + var _C = {}; + var max = 0; + var C = { + set: function set(key, val) { + _C[key] = val; + + if (val > max) { + max = val; + } + }, + get: function get(key) { + return _C[key]; + } + }; // A contains the neighborhoods of every node + + for (var i = 0; i < V.length; i++) { + var v = V[i]; + var vid = v.id(); + + if (directed) { + A[vid] = v.outgoers().nodes(); // get outgoers of every node + } else { + A[vid] = v.openNeighborhood().nodes(); // get neighbors of every node + } + + C.set(vid, 0); + } + + var _loop = function _loop(s) { + var sid = V[s].id(); + var S = []; // stack + + var P = {}; + var g = {}; + var d = {}; + var Q = new heap(function (a, b) { + return d[a] - d[b]; + }); // queue + // init dictionaries + + for (var _i = 0; _i < V.length; _i++) { + var _vid = V[_i].id(); + + P[_vid] = []; + g[_vid] = 0; + d[_vid] = Infinity; + } + + g[sid] = 1; // sigma + + d[sid] = 0; // distance to s + + Q.push(sid); + + while (!Q.empty()) { + var _v = Q.pop(); + + S.push(_v); + + if (weighted) { + for (var j = 0; j < A[_v].length; j++) { + var w = A[_v][j]; + var vEle = cy.getElementById(_v); + var edge = void 0; + + if (vEle.edgesTo(w).length > 0) { + edge = vEle.edgesTo(w)[0]; + } else { + edge = w.edgesTo(vEle)[0]; + } + + var edgeWeight = weight(edge); + w = w.id(); + + if (d[w] > d[_v] + edgeWeight) { + d[w] = d[_v] + edgeWeight; + + if (Q.nodes.indexOf(w) < 0) { + //if w is not in Q + Q.push(w); + } else { + // update position if w is in Q + Q.updateItem(w); + } + + g[w] = 0; + P[w] = []; + } + + if (d[w] == d[_v] + edgeWeight) { + g[w] = g[w] + g[_v]; + P[w].push(_v); + } + } + } else { + for (var _j = 0; _j < A[_v].length; _j++) { + var _w = A[_v][_j].id(); + + if (d[_w] == Infinity) { + Q.push(_w); + d[_w] = d[_v] + 1; + } + + if (d[_w] == d[_v] + 1) { + g[_w] = g[_w] + g[_v]; + + P[_w].push(_v); + } + } + } + } + + var e = {}; + + for (var _i2 = 0; _i2 < V.length; _i2++) { + e[V[_i2].id()] = 0; + } + + while (S.length > 0) { + var _w2 = S.pop(); + + for (var _j2 = 0; _j2 < P[_w2].length; _j2++) { + var _v2 = P[_w2][_j2]; + e[_v2] = e[_v2] + g[_v2] / g[_w2] * (1 + e[_w2]); + } + + if (_w2 != V[s].id()) { + C.set(_w2, C.get(_w2) + e[_w2]); + } + } + }; + + for (var s = 0; s < V.length; s++) { + _loop(s); + } + + var ret = { + betweenness: function betweenness(node) { + var id = cy.collection(node).id(); + return C.get(id); + }, + betweennessNormalized: function betweennessNormalized(node) { + if (max == 0) { + return 0; + } + + var id = cy.collection(node).id(); + return C.get(id) / max; + } + }; // alias + + ret.betweennessNormalised = ret.betweennessNormalized; + return ret; + } // betweennessCentrality + + }; // elesfn + // nice, short mathematical alias + + elesfn$l.bc = elesfn$l.betweennessCentrality; + + // Implemented by Zoe Xi @zoexi for GSOC 2016 + /* eslint-disable no-unused-vars */ + + var defaults$c = defaults$g({ + expandFactor: 2, + // affects time of computation and cluster granularity to some extent: M * M + inflateFactor: 2, + // affects cluster granularity (the greater the value, the more clusters): M(i,j) / E(j) + multFactor: 1, + // optional self loops for each node. Use a neutral value to improve cluster computations. + maxIterations: 20, + // maximum number of iterations of the MCL algorithm in a single run + attributes: [// attributes/features used to group nodes, ie. similarity values between nodes + function (edge) { + return 1; + }] + }); + /* eslint-enable */ + + var setOptions$3 = function setOptions(options) { + return defaults$c(options); + }; + /* eslint-enable */ + + + var getSimilarity$1 = function getSimilarity(edge, attributes) { + var total = 0; + + for (var i = 0; i < attributes.length; i++) { + total += attributes[i](edge); + } + + return total; + }; + + var addLoops = function addLoops(M, n, val) { + for (var i = 0; i < n; i++) { + M[i * n + i] = val; + } + }; + + var normalize = function normalize(M, n) { + var sum; + + for (var col = 0; col < n; col++) { + sum = 0; + + for (var row = 0; row < n; row++) { + sum += M[row * n + col]; + } + + for (var _row = 0; _row < n; _row++) { + M[_row * n + col] = M[_row * n + col] / sum; + } + } + }; // TODO: blocked matrix multiplication? + + + var mmult = function mmult(A, B, n) { + var C = new Array(n * n); + + for (var i = 0; i < n; i++) { + for (var j = 0; j < n; j++) { + C[i * n + j] = 0; + } + + for (var k = 0; k < n; k++) { + for (var _j = 0; _j < n; _j++) { + C[i * n + _j] += A[i * n + k] * B[k * n + _j]; + } + } + } + + return C; + }; + + var expand = function expand(M, n, expandFactor + /** power **/ + ) { + var _M = M.slice(0); + + for (var p = 1; p < expandFactor; p++) { + M = mmult(M, _M, n); + } + + return M; + }; + + var inflate = function inflate(M, n, inflateFactor + /** r **/ + ) { + var _M = new Array(n * n); // M(i,j) ^ inflatePower + + + for (var i = 0; i < n * n; i++) { + _M[i] = Math.pow(M[i], inflateFactor); + } + + normalize(_M, n); + return _M; + }; + + var hasConverged = function hasConverged(M, _M, n2, roundFactor) { + // Check that both matrices have the same elements (i,j) + for (var i = 0; i < n2; i++) { + var v1 = Math.round(M[i] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor); // truncate to 'roundFactor' decimal places + + var v2 = Math.round(_M[i] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor); + + if (v1 !== v2) { + return false; + } + } + + return true; + }; + + var assign$2 = function assign(M, n, nodes, cy) { + var clusters = []; + + for (var i = 0; i < n; i++) { + var cluster = []; + + for (var j = 0; j < n; j++) { + // Row-wise attractors and elements that they attract belong in same cluster + if (Math.round(M[i * n + j] * 1000) / 1000 > 0) { + cluster.push(nodes[j]); + } + } + + if (cluster.length !== 0) { + clusters.push(cy.collection(cluster)); + } + } + + return clusters; + }; + + var isDuplicate = function isDuplicate(c1, c2) { + for (var i = 0; i < c1.length; i++) { + if (!c2[i] || c1[i].id() !== c2[i].id()) { + return false; + } + } + + return true; + }; + + var removeDuplicates = function removeDuplicates(clusters) { + for (var i = 0; i < clusters.length; i++) { + for (var j = 0; j < clusters.length; j++) { + if (i != j && isDuplicate(clusters[i], clusters[j])) { + clusters.splice(j, 1); + } + } + } + + return clusters; + }; + + var markovClustering = function markovClustering(options) { + var nodes = this.nodes(); + var edges = this.edges(); + var cy = this.cy(); // Set parameters of algorithm: + + var opts = setOptions$3(options); // Map each node to its position in node array + + var id2position = {}; + + for (var i = 0; i < nodes.length; i++) { + id2position[nodes[i].id()] = i; + } // Generate stochastic matrix M from input graph G (should be symmetric/undirected) + + + var n = nodes.length, + n2 = n * n; + + var M = new Array(n2), + _M; + + for (var _i = 0; _i < n2; _i++) { + M[_i] = 0; + } + + for (var e = 0; e < edges.length; e++) { + var edge = edges[e]; + var _i2 = id2position[edge.source().id()]; + var j = id2position[edge.target().id()]; + var sim = getSimilarity$1(edge, opts.attributes); + M[_i2 * n + j] += sim; // G should be symmetric and undirected + + M[j * n + _i2] += sim; + } // Begin Markov cluster algorithm + // Step 1: Add self loops to each node, ie. add multFactor to matrix diagonal + + + addLoops(M, n, opts.multFactor); // Step 2: M = normalize( M ); + + normalize(M, n); + var isStillMoving = true; + var iterations = 0; + + while (isStillMoving && iterations < opts.maxIterations) { + isStillMoving = false; // Step 3: + + _M = expand(M, n, opts.expandFactor); // Step 4: + + M = inflate(_M, n, opts.inflateFactor); // Step 5: check to see if ~steady state has been reached + + if (!hasConverged(M, _M, n2, 4)) { + isStillMoving = true; + } + + iterations++; + } // Build clusters from matrix + + + var clusters = assign$2(M, n, nodes, cy); // Remove duplicate clusters due to symmetry of graph and M matrix + + clusters = removeDuplicates(clusters); + return clusters; + }; + + var markovClustering$1 = { + markovClustering: markovClustering, + mcl: markovClustering + }; + + // Common distance metrics for clustering algorithms + + var identity = function identity(x) { + return x; + }; + + var absDiff = function absDiff(p, q) { + return Math.abs(q - p); + }; + + var addAbsDiff = function addAbsDiff(total, p, q) { + return total + absDiff(p, q); + }; + + var addSquaredDiff = function addSquaredDiff(total, p, q) { + return total + Math.pow(q - p, 2); + }; + + var sqrt = function sqrt(x) { + return Math.sqrt(x); + }; + + var maxAbsDiff = function maxAbsDiff(currentMax, p, q) { + return Math.max(currentMax, absDiff(p, q)); + }; + + var getDistance = function getDistance(length, getP, getQ, init, visit) { + var post = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : identity; + var ret = init; + var p, q; + + for (var dim = 0; dim < length; dim++) { + p = getP(dim); + q = getQ(dim); + ret = visit(ret, p, q); + } + + return post(ret); + }; + + var distances = { + euclidean: function euclidean(length, getP, getQ) { + if (length >= 2) { + return getDistance(length, getP, getQ, 0, addSquaredDiff, sqrt); + } else { + // for single attr case, more efficient to avoid sqrt + return getDistance(length, getP, getQ, 0, addAbsDiff); + } + }, + squaredEuclidean: function squaredEuclidean(length, getP, getQ) { + return getDistance(length, getP, getQ, 0, addSquaredDiff); + }, + manhattan: function manhattan(length, getP, getQ) { + return getDistance(length, getP, getQ, 0, addAbsDiff); + }, + max: function max(length, getP, getQ) { + return getDistance(length, getP, getQ, -Infinity, maxAbsDiff); + } + }; // in case the user accidentally doesn't use camel case + + distances['squared-euclidean'] = distances['squaredEuclidean']; + distances['squaredeuclidean'] = distances['squaredEuclidean']; + function clusteringDistance (method, length, getP, getQ, nodeP, nodeQ) { + var impl; + + if (fn$6(method)) { + impl = method; + } else { + impl = distances[method] || distances.euclidean; + } + + if (length === 0 && fn$6(method)) { + return impl(nodeP, nodeQ); + } else { + return impl(length, getP, getQ, nodeP, nodeQ); + } + } + + var defaults$b = defaults$g({ + k: 2, + m: 2, + sensitivityThreshold: 0.0001, + distance: 'euclidean', + maxIterations: 10, + attributes: [], + testMode: false, + testCentroids: null + }); + + var setOptions$2 = function setOptions(options) { + return defaults$b(options); + }; + /* eslint-enable */ + + + var getDist = function getDist(type, node, centroid, attributes, mode) { + var noNodeP = mode !== 'kMedoids'; + var getP = noNodeP ? function (i) { + return centroid[i]; + } : function (i) { + return attributes[i](centroid); + }; + + var getQ = function getQ(i) { + return attributes[i](node); + }; + + var nodeP = centroid; + var nodeQ = node; + return clusteringDistance(type, attributes.length, getP, getQ, nodeP, nodeQ); + }; + + var randomCentroids = function randomCentroids(nodes, k, attributes) { + var ndim = attributes.length; + var min = new Array(ndim); + var max = new Array(ndim); + var centroids = new Array(k); + var centroid = null; // Find min, max values for each attribute dimension + + for (var i = 0; i < ndim; i++) { + min[i] = nodes.min(attributes[i]).value; + max[i] = nodes.max(attributes[i]).value; + } // Build k centroids, each represented as an n-dim feature vector + + + for (var c = 0; c < k; c++) { + centroid = []; + + for (var _i = 0; _i < ndim; _i++) { + centroid[_i] = Math.random() * (max[_i] - min[_i]) + min[_i]; // random initial value + } + + centroids[c] = centroid; + } + + return centroids; + }; + + var classify = function classify(node, centroids, distance, attributes, type) { + var min = Infinity; + var index = 0; + + for (var i = 0; i < centroids.length; i++) { + var dist = getDist(distance, node, centroids[i], attributes, type); + + if (dist < min) { + min = dist; + index = i; + } + } + + return index; + }; + + var buildCluster = function buildCluster(centroid, nodes, assignment) { + var cluster = []; + var node = null; + + for (var n = 0; n < nodes.length; n++) { + node = nodes[n]; + + if (assignment[node.id()] === centroid) { + //console.log("Node " + node.id() + " is associated with medoid #: " + m); + cluster.push(node); + } + } + + return cluster; + }; + + var haveValuesConverged = function haveValuesConverged(v1, v2, sensitivityThreshold) { + return Math.abs(v2 - v1) <= sensitivityThreshold; + }; + + var haveMatricesConverged = function haveMatricesConverged(v1, v2, sensitivityThreshold) { + for (var i = 0; i < v1.length; i++) { + for (var j = 0; j < v1[i].length; j++) { + var diff = Math.abs(v1[i][j] - v2[i][j]); + + if (diff > sensitivityThreshold) { + return false; + } + } + } + + return true; + }; + + var seenBefore = function seenBefore(node, medoids, n) { + for (var i = 0; i < n; i++) { + if (node === medoids[i]) return true; + } + + return false; + }; + + var randomMedoids = function randomMedoids(nodes, k) { + var medoids = new Array(k); // For small data sets, the probability of medoid conflict is greater, + // so we need to check to see if we've already seen or chose this node before. + + if (nodes.length < 50) { + // Randomly select k medoids from the n nodes + for (var i = 0; i < k; i++) { + var node = nodes[Math.floor(Math.random() * nodes.length)]; // If we've already chosen this node to be a medoid, don't choose it again (for small data sets). + // Instead choose a different random node. + + while (seenBefore(node, medoids, i)) { + node = nodes[Math.floor(Math.random() * nodes.length)]; + } + + medoids[i] = node; + } + } else { + // Relatively large data set, so pretty safe to not check and just select random nodes + for (var _i2 = 0; _i2 < k; _i2++) { + medoids[_i2] = nodes[Math.floor(Math.random() * nodes.length)]; + } + } + + return medoids; + }; + + var findCost = function findCost(potentialNewMedoid, cluster, attributes) { + var cost = 0; + + for (var n = 0; n < cluster.length; n++) { + cost += getDist('manhattan', cluster[n], potentialNewMedoid, attributes, 'kMedoids'); + } + + return cost; + }; + + var kMeans = function kMeans(options) { + var cy = this.cy(); + var nodes = this.nodes(); + var node = null; // Set parameters of algorithm: # of clusters, distance metric, etc. + + var opts = setOptions$2(options); // Begin k-means algorithm + + var clusters = new Array(opts.k); + var assignment = {}; + var centroids; // Step 1: Initialize centroid positions + + if (opts.testMode) { + if (typeof opts.testCentroids === 'number') { + // TODO: implement a seeded random number generator. + opts.testCentroids; + centroids = randomCentroids(nodes, opts.k, opts.attributes); + } else if (_typeof(opts.testCentroids) === 'object') { + centroids = opts.testCentroids; + } else { + centroids = randomCentroids(nodes, opts.k, opts.attributes); + } + } else { + centroids = randomCentroids(nodes, opts.k, opts.attributes); + } + + var isStillMoving = true; + var iterations = 0; + + while (isStillMoving && iterations < opts.maxIterations) { + // Step 2: Assign nodes to the nearest centroid + for (var n = 0; n < nodes.length; n++) { + node = nodes[n]; // Determine which cluster this node belongs to: node id => cluster # + + assignment[node.id()] = classify(node, centroids, opts.distance, opts.attributes, 'kMeans'); + } // Step 3: For each of the k clusters, update its centroid + + + isStillMoving = false; + + for (var c = 0; c < opts.k; c++) { + // Get all nodes that belong to this cluster + var cluster = buildCluster(c, nodes, assignment); + + if (cluster.length === 0) { + // If cluster is empty, break out early & move to next cluster + continue; + } // Update centroids by calculating avg of all nodes within the cluster. + + + var ndim = opts.attributes.length; + var centroid = centroids[c]; // [ dim_1, dim_2, dim_3, ... , dim_n ] + + var newCentroid = new Array(ndim); + var sum = new Array(ndim); + + for (var d = 0; d < ndim; d++) { + sum[d] = 0.0; + + for (var i = 0; i < cluster.length; i++) { + node = cluster[i]; + sum[d] += opts.attributes[d](node); + } + + newCentroid[d] = sum[d] / cluster.length; // Check to see if algorithm has converged, i.e. when centroids no longer change + + if (!haveValuesConverged(newCentroid[d], centroid[d], opts.sensitivityThreshold)) { + isStillMoving = true; + } + } + + centroids[c] = newCentroid; + clusters[c] = cy.collection(cluster); + } + + iterations++; + } + + return clusters; + }; + + var kMedoids = function kMedoids(options) { + var cy = this.cy(); + var nodes = this.nodes(); + var node = null; + var opts = setOptions$2(options); // Begin k-medoids algorithm + + var clusters = new Array(opts.k); + var medoids; + var assignment = {}; + var curCost; + var minCosts = new Array(opts.k); // minimum cost configuration for each cluster + // Step 1: Initialize k medoids + + if (opts.testMode) { + if (typeof opts.testCentroids === 'number') ; else if (_typeof(opts.testCentroids) === 'object') { + medoids = opts.testCentroids; + } else { + medoids = randomMedoids(nodes, opts.k); + } + } else { + medoids = randomMedoids(nodes, opts.k); + } + + var isStillMoving = true; + var iterations = 0; + + while (isStillMoving && iterations < opts.maxIterations) { + // Step 2: Assign nodes to the nearest medoid + for (var n = 0; n < nodes.length; n++) { + node = nodes[n]; // Determine which cluster this node belongs to: node id => cluster # + + assignment[node.id()] = classify(node, medoids, opts.distance, opts.attributes, 'kMedoids'); + } + + isStillMoving = false; // Step 3: For each medoid m, and for each node associated with mediod m, + // select the node with the lowest configuration cost as new medoid. + + for (var m = 0; m < medoids.length; m++) { + // Get all nodes that belong to this medoid + var cluster = buildCluster(m, nodes, assignment); + + if (cluster.length === 0) { + // If cluster is empty, break out early & move to next cluster + continue; + } + + minCosts[m] = findCost(medoids[m], cluster, opts.attributes); // original cost + // Select different medoid if its configuration has the lowest cost + + for (var _n = 0; _n < cluster.length; _n++) { + curCost = findCost(cluster[_n], cluster, opts.attributes); + + if (curCost < minCosts[m]) { + minCosts[m] = curCost; + medoids[m] = cluster[_n]; + isStillMoving = true; + } + } + + clusters[m] = cy.collection(cluster); + } + + iterations++; + } + + return clusters; + }; + + var updateCentroids = function updateCentroids(centroids, nodes, U, weight, opts) { + var numerator, denominator; + + for (var n = 0; n < nodes.length; n++) { + for (var c = 0; c < centroids.length; c++) { + weight[n][c] = Math.pow(U[n][c], opts.m); + } + } + + for (var _c = 0; _c < centroids.length; _c++) { + for (var dim = 0; dim < opts.attributes.length; dim++) { + numerator = 0; + denominator = 0; + + for (var _n2 = 0; _n2 < nodes.length; _n2++) { + numerator += weight[_n2][_c] * opts.attributes[dim](nodes[_n2]); + denominator += weight[_n2][_c]; + } + + centroids[_c][dim] = numerator / denominator; + } + } + }; + + var updateMembership = function updateMembership(U, _U, centroids, nodes, opts) { + // Save previous step + for (var i = 0; i < U.length; i++) { + _U[i] = U[i].slice(); + } + + var sum, numerator, denominator; + var pow = 2 / (opts.m - 1); + + for (var c = 0; c < centroids.length; c++) { + for (var n = 0; n < nodes.length; n++) { + sum = 0; + + for (var k = 0; k < centroids.length; k++) { + // against all other centroids + numerator = getDist(opts.distance, nodes[n], centroids[c], opts.attributes, 'cmeans'); + denominator = getDist(opts.distance, nodes[n], centroids[k], opts.attributes, 'cmeans'); + sum += Math.pow(numerator / denominator, pow); + } + + U[n][c] = 1 / sum; + } + } + }; + + var assign$1 = function assign(nodes, U, opts, cy) { + var clusters = new Array(opts.k); + + for (var c = 0; c < clusters.length; c++) { + clusters[c] = []; + } + + var max; + var index; + + for (var n = 0; n < U.length; n++) { + // for each node (U is N x C matrix) + max = -Infinity; + index = -1; // Determine which cluster the node is most likely to belong in + + for (var _c2 = 0; _c2 < U[0].length; _c2++) { + if (U[n][_c2] > max) { + max = U[n][_c2]; + index = _c2; + } + } + + clusters[index].push(nodes[n]); + } // Turn every array into a collection of nodes + + + for (var _c3 = 0; _c3 < clusters.length; _c3++) { + clusters[_c3] = cy.collection(clusters[_c3]); + } + + return clusters; + }; + + var fuzzyCMeans = function fuzzyCMeans(options) { + var cy = this.cy(); + var nodes = this.nodes(); + var opts = setOptions$2(options); // Begin fuzzy c-means algorithm + + var clusters; + var centroids; + var U; + + var _U; + + var weight; // Step 1: Initialize letiables. + + _U = new Array(nodes.length); + + for (var i = 0; i < nodes.length; i++) { + // N x C matrix + _U[i] = new Array(opts.k); + } + + U = new Array(nodes.length); + + for (var _i3 = 0; _i3 < nodes.length; _i3++) { + // N x C matrix + U[_i3] = new Array(opts.k); + } + + for (var _i4 = 0; _i4 < nodes.length; _i4++) { + var total = 0; + + for (var j = 0; j < opts.k; j++) { + U[_i4][j] = Math.random(); + total += U[_i4][j]; + } + + for (var _j = 0; _j < opts.k; _j++) { + U[_i4][_j] = U[_i4][_j] / total; + } + } + + centroids = new Array(opts.k); + + for (var _i5 = 0; _i5 < opts.k; _i5++) { + centroids[_i5] = new Array(opts.attributes.length); + } + + weight = new Array(nodes.length); + + for (var _i6 = 0; _i6 < nodes.length; _i6++) { + // N x C matrix + weight[_i6] = new Array(opts.k); + } // end init FCM + + + var isStillMoving = true; + var iterations = 0; + + while (isStillMoving && iterations < opts.maxIterations) { + isStillMoving = false; // Step 2: Calculate the centroids for each step. + + updateCentroids(centroids, nodes, U, weight, opts); // Step 3: Update the partition matrix U. + + updateMembership(U, _U, centroids, nodes, opts); // Step 4: Check for convergence. + + if (!haveMatricesConverged(U, _U, opts.sensitivityThreshold)) { + isStillMoving = true; + } + + iterations++; + } // Assign nodes to clusters with highest probability. + + + clusters = assign$1(nodes, U, opts, cy); + return { + clusters: clusters, + degreeOfMembership: U + }; + }; + + var kClustering = { + kMeans: kMeans, + kMedoids: kMedoids, + fuzzyCMeans: fuzzyCMeans, + fcm: fuzzyCMeans + }; + + // Implemented by Zoe Xi @zoexi for GSOC 2016 + var defaults$a = defaults$g({ + distance: 'euclidean', + // distance metric to compare nodes + linkage: 'min', + // linkage criterion : how to determine the distance between clusters of nodes + mode: 'threshold', + // mode:'threshold' => clusters must be threshold distance apart + threshold: Infinity, + // the distance threshold + // mode:'dendrogram' => the nodes are organised as leaves in a tree (siblings are close), merging makes clusters + addDendrogram: false, + // whether to add the dendrogram to the graph for viz + dendrogramDepth: 0, + // depth at which dendrogram branches are merged into the returned clusters + attributes: [] // array of attr functions + + }); + var linkageAliases = { + 'single': 'min', + 'complete': 'max' + }; + + var setOptions$1 = function setOptions(options) { + var opts = defaults$a(options); + var preferredAlias = linkageAliases[opts.linkage]; + + if (preferredAlias != null) { + opts.linkage = preferredAlias; + } + + return opts; + }; + + var mergeClosest = function mergeClosest(clusters, index, dists, mins, opts) { + // Find two closest clusters from cached mins + var minKey = 0; + var min = Infinity; + var dist; + var attrs = opts.attributes; + + var getDist = function getDist(n1, n2) { + return clusteringDistance(opts.distance, attrs.length, function (i) { + return attrs[i](n1); + }, function (i) { + return attrs[i](n2); + }, n1, n2); + }; + + for (var i = 0; i < clusters.length; i++) { + var key = clusters[i].key; + var _dist = dists[key][mins[key]]; + + if (_dist < min) { + minKey = key; + min = _dist; + } + } + + if (opts.mode === 'threshold' && min >= opts.threshold || opts.mode === 'dendrogram' && clusters.length === 1) { + return false; + } + + var c1 = index[minKey]; + var c2 = index[mins[minKey]]; + var merged; // Merge two closest clusters + + if (opts.mode === 'dendrogram') { + merged = { + left: c1, + right: c2, + key: c1.key + }; + } else { + merged = { + value: c1.value.concat(c2.value), + key: c1.key + }; + } + + clusters[c1.index] = merged; + clusters.splice(c2.index, 1); + index[c1.key] = merged; // Update distances with new merged cluster + + for (var _i = 0; _i < clusters.length; _i++) { + var cur = clusters[_i]; + + if (c1.key === cur.key) { + dist = Infinity; + } else if (opts.linkage === 'min') { + dist = dists[c1.key][cur.key]; + + if (dists[c1.key][cur.key] > dists[c2.key][cur.key]) { + dist = dists[c2.key][cur.key]; + } + } else if (opts.linkage === 'max') { + dist = dists[c1.key][cur.key]; + + if (dists[c1.key][cur.key] < dists[c2.key][cur.key]) { + dist = dists[c2.key][cur.key]; + } + } else if (opts.linkage === 'mean') { + dist = (dists[c1.key][cur.key] * c1.size + dists[c2.key][cur.key] * c2.size) / (c1.size + c2.size); + } else { + if (opts.mode === 'dendrogram') dist = getDist(cur.value, c1.value);else dist = getDist(cur.value[0], c1.value[0]); + } + + dists[c1.key][cur.key] = dists[cur.key][c1.key] = dist; // distance matrix is symmetric + } // Update cached mins + + + for (var _i2 = 0; _i2 < clusters.length; _i2++) { + var key1 = clusters[_i2].key; + + if (mins[key1] === c1.key || mins[key1] === c2.key) { + var _min = key1; + + for (var j = 0; j < clusters.length; j++) { + var key2 = clusters[j].key; + + if (dists[key1][key2] < dists[key1][_min]) { + _min = key2; + } + } + + mins[key1] = _min; + } + + clusters[_i2].index = _i2; + } // Clean up meta data used for clustering + + + c1.key = c2.key = c1.index = c2.index = null; + return true; + }; + + var getAllChildren = function getAllChildren(root, arr, cy) { + if (!root) return; + + if (root.value) { + arr.push(root.value); + } else { + if (root.left) getAllChildren(root.left, arr); + if (root.right) getAllChildren(root.right, arr); + } + }; + + var buildDendrogram = function buildDendrogram(root, cy) { + if (!root) return ''; + + if (root.left && root.right) { + var leftStr = buildDendrogram(root.left, cy); + var rightStr = buildDendrogram(root.right, cy); + var node = cy.add({ + group: 'nodes', + data: { + id: leftStr + ',' + rightStr + } + }); + cy.add({ + group: 'edges', + data: { + source: leftStr, + target: node.id() + } + }); + cy.add({ + group: 'edges', + data: { + source: rightStr, + target: node.id() + } + }); + return node.id(); + } else if (root.value) { + return root.value.id(); + } + }; + + var buildClustersFromTree = function buildClustersFromTree(root, k, cy) { + if (!root) return []; + var left = [], + right = [], + leaves = []; + + if (k === 0) { + // don't cut tree, simply return all nodes as 1 single cluster + if (root.left) getAllChildren(root.left, left); + if (root.right) getAllChildren(root.right, right); + leaves = left.concat(right); + return [cy.collection(leaves)]; + } else if (k === 1) { + // cut at root + if (root.value) { + // leaf node + return [cy.collection(root.value)]; + } else { + if (root.left) getAllChildren(root.left, left); + if (root.right) getAllChildren(root.right, right); + return [cy.collection(left), cy.collection(right)]; + } + } else { + if (root.value) { + return [cy.collection(root.value)]; + } else { + if (root.left) left = buildClustersFromTree(root.left, k - 1, cy); + if (root.right) right = buildClustersFromTree(root.right, k - 1, cy); + return left.concat(right); + } + } + }; + /* eslint-enable */ + + + var hierarchicalClustering = function hierarchicalClustering(options) { + var cy = this.cy(); + var nodes = this.nodes(); // Set parameters of algorithm: linkage type, distance metric, etc. + + var opts = setOptions$1(options); + var attrs = opts.attributes; + + var getDist = function getDist(n1, n2) { + return clusteringDistance(opts.distance, attrs.length, function (i) { + return attrs[i](n1); + }, function (i) { + return attrs[i](n2); + }, n1, n2); + }; // Begin hierarchical algorithm + + + var clusters = []; + var dists = []; // distances between each pair of clusters + + var mins = []; // closest cluster for each cluster + + var index = []; // hash of all clusters by key + // In agglomerative (bottom-up) clustering, each node starts as its own cluster + + for (var n = 0; n < nodes.length; n++) { + var cluster = { + value: opts.mode === 'dendrogram' ? nodes[n] : [nodes[n]], + key: n, + index: n + }; + clusters[n] = cluster; + index[n] = cluster; + dists[n] = []; + mins[n] = 0; + } // Calculate the distance between each pair of clusters + + + for (var i = 0; i < clusters.length; i++) { + for (var j = 0; j <= i; j++) { + var dist = void 0; + + if (opts.mode === 'dendrogram') { + // modes store cluster values differently + dist = i === j ? Infinity : getDist(clusters[i].value, clusters[j].value); + } else { + dist = i === j ? Infinity : getDist(clusters[i].value[0], clusters[j].value[0]); + } + + dists[i][j] = dist; + dists[j][i] = dist; + + if (dist < dists[i][mins[i]]) { + mins[i] = j; // Cache mins: closest cluster to cluster i is cluster j + } + } + } // Find the closest pair of clusters and merge them into a single cluster. + // Update distances between new cluster and each of the old clusters, and loop until threshold reached. + + + var merged = mergeClosest(clusters, index, dists, mins, opts); + + while (merged) { + merged = mergeClosest(clusters, index, dists, mins, opts); + } + + var retClusters; // Dendrogram mode builds the hierarchy and adds intermediary nodes + edges + // in addition to returning the clusters. + + if (opts.mode === 'dendrogram') { + retClusters = buildClustersFromTree(clusters[0], opts.dendrogramDepth, cy); + if (opts.addDendrogram) buildDendrogram(clusters[0], cy); + } else { + // Regular mode simply returns the clusters + retClusters = new Array(clusters.length); + clusters.forEach(function (cluster, i) { + // Clean up meta data used for clustering + cluster.key = cluster.index = null; + retClusters[i] = cy.collection(cluster.value); + }); + } + + return retClusters; + }; + + var hierarchicalClustering$1 = { + hierarchicalClustering: hierarchicalClustering, + hca: hierarchicalClustering + }; + + // Implemented by Zoe Xi @zoexi for GSOC 2016 + var defaults$9 = defaults$g({ + distance: 'euclidean', + // distance metric to compare attributes between two nodes + preference: 'median', + // suitability of a data point to serve as an exemplar + damping: 0.8, + // damping factor between [0.5, 1) + maxIterations: 1000, + // max number of iterations to run + minIterations: 100, + // min number of iterations to run in order for clustering to stop + attributes: [// functions to quantify the similarity between any two points + // e.g. node => node.data('weight') + ] + }); + + var setOptions = function setOptions(options) { + var dmp = options.damping; + var pref = options.preference; + + if (!(0.5 <= dmp && dmp < 1)) { + error("Damping must range on [0.5, 1). Got: ".concat(dmp)); + } + + var validPrefs = ['median', 'mean', 'min', 'max']; + + if (!(validPrefs.some(function (v) { + return v === pref; + }) || number$1(pref))) { + error("Preference must be one of [".concat(validPrefs.map(function (p) { + return "'".concat(p, "'"); + }).join(', '), "] or a number. Got: ").concat(pref)); + } + + return defaults$9(options); + }; + /* eslint-enable */ + + + var getSimilarity = function getSimilarity(type, n1, n2, attributes) { + var attr = function attr(n, i) { + return attributes[i](n); + }; // nb negative because similarity should have an inverse relationship to distance + + + return -clusteringDistance(type, attributes.length, function (i) { + return attr(n1, i); + }, function (i) { + return attr(n2, i); + }, n1, n2); + }; + + var getPreference = function getPreference(S, preference) { + // larger preference = greater # of clusters + var p = null; + + if (preference === 'median') { + p = median(S); + } else if (preference === 'mean') { + p = mean(S); + } else if (preference === 'min') { + p = min(S); + } else if (preference === 'max') { + p = max(S); + } else { + // Custom preference number, as set by user + p = preference; + } + + return p; + }; + + var findExemplars = function findExemplars(n, R, A) { + var indices = []; + + for (var i = 0; i < n; i++) { + if (R[i * n + i] + A[i * n + i] > 0) { + indices.push(i); + } + } + + return indices; + }; + + var assignClusters = function assignClusters(n, S, exemplars) { + var clusters = []; + + for (var i = 0; i < n; i++) { + var index = -1; + var max = -Infinity; + + for (var ei = 0; ei < exemplars.length; ei++) { + var e = exemplars[ei]; + + if (S[i * n + e] > max) { + index = e; + max = S[i * n + e]; + } + } + + if (index > 0) { + clusters.push(index); + } + } + + for (var _ei = 0; _ei < exemplars.length; _ei++) { + clusters[exemplars[_ei]] = exemplars[_ei]; + } + + return clusters; + }; + + var assign = function assign(n, S, exemplars) { + var clusters = assignClusters(n, S, exemplars); + + for (var ei = 0; ei < exemplars.length; ei++) { + var ii = []; + + for (var c = 0; c < clusters.length; c++) { + if (clusters[c] === exemplars[ei]) { + ii.push(c); + } + } + + var maxI = -1; + var maxSum = -Infinity; + + for (var i = 0; i < ii.length; i++) { + var sum = 0; + + for (var j = 0; j < ii.length; j++) { + sum += S[ii[j] * n + ii[i]]; + } + + if (sum > maxSum) { + maxI = i; + maxSum = sum; + } + } + + exemplars[ei] = ii[maxI]; + } + + clusters = assignClusters(n, S, exemplars); + return clusters; + }; + + var affinityPropagation = function affinityPropagation(options) { + var cy = this.cy(); + var nodes = this.nodes(); + var opts = setOptions(options); // Map each node to its position in node array + + var id2position = {}; + + for (var i = 0; i < nodes.length; i++) { + id2position[nodes[i].id()] = i; + } // Begin affinity propagation algorithm + + + var n; // number of data points + + var n2; // size of matrices + + var S; // similarity matrix (1D array) + + var p; // preference/suitability of a data point to serve as an exemplar + + var R; // responsibility matrix (1D array) + + var A; // availability matrix (1D array) + + n = nodes.length; + n2 = n * n; // Initialize and build S similarity matrix + + S = new Array(n2); + + for (var _i = 0; _i < n2; _i++) { + S[_i] = -Infinity; // for cases where two data points shouldn't be linked together + } + + for (var _i2 = 0; _i2 < n; _i2++) { + for (var j = 0; j < n; j++) { + if (_i2 !== j) { + S[_i2 * n + j] = getSimilarity(opts.distance, nodes[_i2], nodes[j], opts.attributes); + } + } + } // Place preferences on the diagonal of S + + + p = getPreference(S, opts.preference); + + for (var _i3 = 0; _i3 < n; _i3++) { + S[_i3 * n + _i3] = p; + } // Initialize R responsibility matrix + + + R = new Array(n2); + + for (var _i4 = 0; _i4 < n2; _i4++) { + R[_i4] = 0.0; + } // Initialize A availability matrix + + + A = new Array(n2); + + for (var _i5 = 0; _i5 < n2; _i5++) { + A[_i5] = 0.0; + } + + var old = new Array(n); + var Rp = new Array(n); + var se = new Array(n); + + for (var _i6 = 0; _i6 < n; _i6++) { + old[_i6] = 0.0; + Rp[_i6] = 0.0; + se[_i6] = 0; + } + + var e = new Array(n * opts.minIterations); + + for (var _i7 = 0; _i7 < e.length; _i7++) { + e[_i7] = 0; + } + + var iter; + + for (iter = 0; iter < opts.maxIterations; iter++) { + // main algorithmic loop + // Update R responsibility matrix + for (var _i8 = 0; _i8 < n; _i8++) { + var max = -Infinity, + max2 = -Infinity, + maxI = -1, + AS = 0.0; + + for (var _j = 0; _j < n; _j++) { + old[_j] = R[_i8 * n + _j]; + AS = A[_i8 * n + _j] + S[_i8 * n + _j]; + + if (AS >= max) { + max2 = max; + max = AS; + maxI = _j; + } else if (AS > max2) { + max2 = AS; + } + } + + for (var _j2 = 0; _j2 < n; _j2++) { + R[_i8 * n + _j2] = (1 - opts.damping) * (S[_i8 * n + _j2] - max) + opts.damping * old[_j2]; + } + + R[_i8 * n + maxI] = (1 - opts.damping) * (S[_i8 * n + maxI] - max2) + opts.damping * old[maxI]; + } // Update A availability matrix + + + for (var _i9 = 0; _i9 < n; _i9++) { + var sum = 0; + + for (var _j3 = 0; _j3 < n; _j3++) { + old[_j3] = A[_j3 * n + _i9]; + Rp[_j3] = Math.max(0, R[_j3 * n + _i9]); + sum += Rp[_j3]; + } + + sum -= Rp[_i9]; + Rp[_i9] = R[_i9 * n + _i9]; + sum += Rp[_i9]; + + for (var _j4 = 0; _j4 < n; _j4++) { + A[_j4 * n + _i9] = (1 - opts.damping) * Math.min(0, sum - Rp[_j4]) + opts.damping * old[_j4]; + } + + A[_i9 * n + _i9] = (1 - opts.damping) * (sum - Rp[_i9]) + opts.damping * old[_i9]; + } // Check for convergence + + + var K = 0; + + for (var _i10 = 0; _i10 < n; _i10++) { + var E = A[_i10 * n + _i10] + R[_i10 * n + _i10] > 0 ? 1 : 0; + e[iter % opts.minIterations * n + _i10] = E; + K += E; + } + + if (K > 0 && (iter >= opts.minIterations - 1 || iter == opts.maxIterations - 1)) { + var _sum = 0; + + for (var _i11 = 0; _i11 < n; _i11++) { + se[_i11] = 0; + + for (var _j5 = 0; _j5 < opts.minIterations; _j5++) { + se[_i11] += e[_j5 * n + _i11]; + } + + if (se[_i11] === 0 || se[_i11] === opts.minIterations) { + _sum++; + } + } + + if (_sum === n) { + // then we have convergence + break; + } + } + } // Identify exemplars (cluster centers) + + + var exemplarsIndices = findExemplars(n, R, A); // Assign nodes to clusters + + var clusterIndices = assign(n, S, exemplarsIndices); + var clusters = {}; + + for (var c = 0; c < exemplarsIndices.length; c++) { + clusters[exemplarsIndices[c]] = []; + } + + for (var _i12 = 0; _i12 < nodes.length; _i12++) { + var pos = id2position[nodes[_i12].id()]; + + var clusterIndex = clusterIndices[pos]; + + if (clusterIndex != null) { + // the node may have not been assigned a cluster if no valid attributes were specified + clusters[clusterIndex].push(nodes[_i12]); + } + } + + var retClusters = new Array(exemplarsIndices.length); + + for (var _c = 0; _c < exemplarsIndices.length; _c++) { + retClusters[_c] = cy.collection(clusters[exemplarsIndices[_c]]); + } + + return retClusters; + }; + + var affinityPropagation$1 = { + affinityPropagation: affinityPropagation, + ap: affinityPropagation + }; + + var hierholzerDefaults = defaults$g({ + root: undefined, + directed: false + }); + var elesfn$k = { + hierholzer: function hierholzer(options) { + if (!plainObject(options)) { + var args = arguments; + options = { + root: args[0], + directed: args[1] + }; + } + + var _hierholzerDefaults = hierholzerDefaults(options), + root = _hierholzerDefaults.root, + directed = _hierholzerDefaults.directed; + + var eles = this; + var dflag = false; + var oddIn; + var oddOut; + var startVertex; + if (root) startVertex = string(root) ? this.filter(root)[0].id() : root[0].id(); + var nodes = {}; + var edges = {}; + + if (directed) { + eles.forEach(function (ele) { + var id = ele.id(); + + if (ele.isNode()) { + var ind = ele.indegree(true); + var outd = ele.outdegree(true); + var d1 = ind - outd; + var d2 = outd - ind; + + if (d1 == 1) { + if (oddIn) dflag = true;else oddIn = id; + } else if (d2 == 1) { + if (oddOut) dflag = true;else oddOut = id; + } else if (d2 > 1 || d1 > 1) { + dflag = true; + } + + nodes[id] = []; + ele.outgoers().forEach(function (e) { + if (e.isEdge()) nodes[id].push(e.id()); + }); + } else { + edges[id] = [undefined, ele.target().id()]; + } + }); + } else { + eles.forEach(function (ele) { + var id = ele.id(); + + if (ele.isNode()) { + var d = ele.degree(true); + + if (d % 2) { + if (!oddIn) oddIn = id;else if (!oddOut) oddOut = id;else dflag = true; + } + + nodes[id] = []; + ele.connectedEdges().forEach(function (e) { + return nodes[id].push(e.id()); + }); + } else { + edges[id] = [ele.source().id(), ele.target().id()]; + } + }); + } + + var result = { + found: false, + trail: undefined + }; + if (dflag) return result;else if (oddOut && oddIn) { + if (directed) { + if (startVertex && oddOut != startVertex) { + return result; + } + + startVertex = oddOut; + } else { + if (startVertex && oddOut != startVertex && oddIn != startVertex) { + return result; + } else if (!startVertex) { + startVertex = oddOut; + } + } + } else { + if (!startVertex) startVertex = eles[0].id(); + } + + var walk = function walk(v) { + var currentNode = v; + var subtour = [v]; + var adj, adjTail, adjHead; + + while (nodes[currentNode].length) { + adj = nodes[currentNode].shift(); + adjTail = edges[adj][0]; + adjHead = edges[adj][1]; + + if (currentNode != adjHead) { + nodes[adjHead] = nodes[adjHead].filter(function (e) { + return e != adj; + }); + currentNode = adjHead; + } else if (!directed && currentNode != adjTail) { + nodes[adjTail] = nodes[adjTail].filter(function (e) { + return e != adj; + }); + currentNode = adjTail; + } + + subtour.unshift(adj); + subtour.unshift(currentNode); + } + + return subtour; + }; + + var trail = []; + var subtour = []; + subtour = walk(startVertex); + + while (subtour.length != 1) { + if (nodes[subtour[0]].length == 0) { + trail.unshift(eles.getElementById(subtour.shift())); + trail.unshift(eles.getElementById(subtour.shift())); + } else { + subtour = walk(subtour.shift()).concat(subtour); + } + } + + trail.unshift(eles.getElementById(subtour.shift())); // final node + + for (var d in nodes) { + if (nodes[d].length) { + return result; + } + } + + result.found = true; + result.trail = this.spawn(trail, true); + return result; + } + }; + + var hopcroftTarjanBiconnected = function hopcroftTarjanBiconnected() { + var eles = this; + var nodes = {}; + var id = 0; + var edgeCount = 0; + var components = []; + var stack = []; + var visitedEdges = {}; + + var buildComponent = function buildComponent(x, y) { + var i = stack.length - 1; + var cutset = []; + var component = eles.spawn(); + + while (stack[i].x != x || stack[i].y != y) { + cutset.push(stack.pop().edge); + i--; + } + + cutset.push(stack.pop().edge); + cutset.forEach(function (edge) { + var connectedNodes = edge.connectedNodes().intersection(eles); + component.merge(edge); + connectedNodes.forEach(function (node) { + var nodeId = node.id(); + var connectedEdges = node.connectedEdges().intersection(eles); + component.merge(node); + + if (!nodes[nodeId].cutVertex) { + component.merge(connectedEdges); + } else { + component.merge(connectedEdges.filter(function (edge) { + return edge.isLoop(); + })); + } + }); + }); + components.push(component); + }; + + var biconnectedSearch = function biconnectedSearch(root, currentNode, parent) { + if (root === parent) edgeCount += 1; + nodes[currentNode] = { + id: id, + low: id++, + cutVertex: false + }; + var edges = eles.getElementById(currentNode).connectedEdges().intersection(eles); + + if (edges.size() === 0) { + components.push(eles.spawn(eles.getElementById(currentNode))); + } else { + var sourceId, targetId, otherNodeId, edgeId; + edges.forEach(function (edge) { + sourceId = edge.source().id(); + targetId = edge.target().id(); + otherNodeId = sourceId === currentNode ? targetId : sourceId; + + if (otherNodeId !== parent) { + edgeId = edge.id(); + + if (!visitedEdges[edgeId]) { + visitedEdges[edgeId] = true; + stack.push({ + x: currentNode, + y: otherNodeId, + edge: edge + }); + } + + if (!(otherNodeId in nodes)) { + biconnectedSearch(root, otherNodeId, currentNode); + nodes[currentNode].low = Math.min(nodes[currentNode].low, nodes[otherNodeId].low); + + if (nodes[currentNode].id <= nodes[otherNodeId].low) { + nodes[currentNode].cutVertex = true; + buildComponent(currentNode, otherNodeId); + } + } else { + nodes[currentNode].low = Math.min(nodes[currentNode].low, nodes[otherNodeId].id); + } + } + }); + } + }; + + eles.forEach(function (ele) { + if (ele.isNode()) { + var nodeId = ele.id(); + + if (!(nodeId in nodes)) { + edgeCount = 0; + biconnectedSearch(nodeId, nodeId); + nodes[nodeId].cutVertex = edgeCount > 1; + } + } + }); + var cutVertices = Object.keys(nodes).filter(function (id) { + return nodes[id].cutVertex; + }).map(function (id) { + return eles.getElementById(id); + }); + return { + cut: eles.spawn(cutVertices), + components: components + }; + }; + + var hopcroftTarjanBiconnected$1 = { + hopcroftTarjanBiconnected: hopcroftTarjanBiconnected, + htbc: hopcroftTarjanBiconnected, + htb: hopcroftTarjanBiconnected, + hopcroftTarjanBiconnectedComponents: hopcroftTarjanBiconnected + }; + + var tarjanStronglyConnected = function tarjanStronglyConnected() { + var eles = this; + var nodes = {}; + var index = 0; + var components = []; + var stack = []; + var cut = eles.spawn(eles); + + var stronglyConnectedSearch = function stronglyConnectedSearch(sourceNodeId) { + stack.push(sourceNodeId); + nodes[sourceNodeId] = { + index: index, + low: index++, + explored: false + }; + var connectedEdges = eles.getElementById(sourceNodeId).connectedEdges().intersection(eles); + connectedEdges.forEach(function (edge) { + var targetNodeId = edge.target().id(); + + if (targetNodeId !== sourceNodeId) { + if (!(targetNodeId in nodes)) { + stronglyConnectedSearch(targetNodeId); + } + + if (!nodes[targetNodeId].explored) { + nodes[sourceNodeId].low = Math.min(nodes[sourceNodeId].low, nodes[targetNodeId].low); + } + } + }); + + if (nodes[sourceNodeId].index === nodes[sourceNodeId].low) { + var componentNodes = eles.spawn(); + + for (;;) { + var nodeId = stack.pop(); + componentNodes.merge(eles.getElementById(nodeId)); + nodes[nodeId].low = nodes[sourceNodeId].index; + nodes[nodeId].explored = true; + + if (nodeId === sourceNodeId) { + break; + } + } + + var componentEdges = componentNodes.edgesWith(componentNodes); + var component = componentNodes.merge(componentEdges); + components.push(component); + cut = cut.difference(component); + } + }; + + eles.forEach(function (ele) { + if (ele.isNode()) { + var nodeId = ele.id(); + + if (!(nodeId in nodes)) { + stronglyConnectedSearch(nodeId); + } + } + }); + return { + cut: cut, + components: components + }; + }; + + var tarjanStronglyConnected$1 = { + tarjanStronglyConnected: tarjanStronglyConnected, + tsc: tarjanStronglyConnected, + tscc: tarjanStronglyConnected, + tarjanStronglyConnectedComponents: tarjanStronglyConnected + }; + + var elesfn$j = {}; + [elesfn$v, elesfn$u, elesfn$t, elesfn$s, elesfn$r, elesfn$q, elesfn$p, elesfn$o, elesfn$n, elesfn$m, elesfn$l, markovClustering$1, kClustering, hierarchicalClustering$1, affinityPropagation$1, elesfn$k, hopcroftTarjanBiconnected$1, tarjanStronglyConnected$1].forEach(function (props) { + extend(elesfn$j, props); + }); + + /*! + 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) + */ + + /* promise states [Promises/A+ 2.1] */ + var STATE_PENDING = 0; + /* [Promises/A+ 2.1.1] */ + + var STATE_FULFILLED = 1; + /* [Promises/A+ 2.1.2] */ + + var STATE_REJECTED = 2; + /* [Promises/A+ 2.1.3] */ + + /* promise object constructor */ + + var api = function api(executor) { + /* optionally support non-constructor/plain-function call */ + if (!(this instanceof api)) return new api(executor); + /* initialize object */ + + this.id = 'Thenable/1.0.7'; + this.state = STATE_PENDING; + /* initial state */ + + this.fulfillValue = undefined; + /* initial value */ + + /* [Promises/A+ 1.3, 2.1.2.2] */ + + this.rejectReason = undefined; + /* initial reason */ + + /* [Promises/A+ 1.5, 2.1.3.2] */ + + this.onFulfilled = []; + /* initial handlers */ + + this.onRejected = []; + /* initial handlers */ + + /* provide optional information-hiding proxy */ + + this.proxy = { + then: this.then.bind(this) + }; + /* support optional executor function */ + + if (typeof executor === 'function') executor.call(this, this.fulfill.bind(this), this.reject.bind(this)); + }; + /* promise API methods */ + + + api.prototype = { + /* promise resolving methods */ + fulfill: function fulfill(value) { + return deliver(this, STATE_FULFILLED, 'fulfillValue', value); + }, + reject: function reject(value) { + return deliver(this, STATE_REJECTED, 'rejectReason', value); + }, + + /* "The then Method" [Promises/A+ 1.1, 1.2, 2.2] */ + then: function then(onFulfilled, onRejected) { + var curr = this; + var next = new api(); + /* [Promises/A+ 2.2.7] */ + + curr.onFulfilled.push(resolver(onFulfilled, next, 'fulfill')); + /* [Promises/A+ 2.2.2/2.2.6] */ + + curr.onRejected.push(resolver(onRejected, next, 'reject')); + /* [Promises/A+ 2.2.3/2.2.6] */ + + execute(curr); + return next.proxy; + /* [Promises/A+ 2.2.7, 3.3] */ + } + }; + /* deliver an action */ + + var deliver = function deliver(curr, state, name, value) { + if (curr.state === STATE_PENDING) { + curr.state = state; + /* [Promises/A+ 2.1.2.1, 2.1.3.1] */ + + curr[name] = value; + /* [Promises/A+ 2.1.2.2, 2.1.3.2] */ + + execute(curr); + } + + return curr; + }; + /* execute all handlers */ + + + var execute = function execute(curr) { + if (curr.state === STATE_FULFILLED) execute_handlers(curr, 'onFulfilled', curr.fulfillValue);else if (curr.state === STATE_REJECTED) execute_handlers(curr, 'onRejected', curr.rejectReason); + }; + /* execute particular set of handlers */ + + + var execute_handlers = function execute_handlers(curr, name, value) { + /* global setImmediate: true */ + + /* global setTimeout: true */ + + /* short-circuit processing */ + if (curr[name].length === 0) return; + /* iterate over all handlers, exactly once */ + + var handlers = curr[name]; + curr[name] = []; + /* [Promises/A+ 2.2.2.3, 2.2.3.3] */ + + var func = function func() { + for (var i = 0; i < handlers.length; i++) { + handlers[i](value); + } + /* [Promises/A+ 2.2.5] */ + + }; + /* execute procedure asynchronously */ + + /* [Promises/A+ 2.2.4, 3.1] */ + + + if (typeof setImmediate === 'function') setImmediate(func);else setTimeout(func, 0); + }; + /* generate a resolver function */ + + + var resolver = function resolver(cb, next, method) { + return function (value) { + if (typeof cb !== 'function') + /* [Promises/A+ 2.2.1, 2.2.7.3, 2.2.7.4] */ + next[method].call(next, value); + /* [Promises/A+ 2.2.7.3, 2.2.7.4] */ + else { + var result; + + try { + result = cb(value); + } + /* [Promises/A+ 2.2.2.1, 2.2.3.1, 2.2.5, 3.2] */ + catch (e) { + next.reject(e); + /* [Promises/A+ 2.2.7.2] */ + + return; + } + + resolve(next, result); + /* [Promises/A+ 2.2.7.1] */ + } + }; + }; + /* "Promise Resolution Procedure" */ + + /* [Promises/A+ 2.3] */ + + + var resolve = function resolve(promise, x) { + /* sanity check arguments */ + + /* [Promises/A+ 2.3.1] */ + if (promise === x || promise.proxy === x) { + promise.reject(new TypeError('cannot resolve promise with itself')); + return; + } + /* surgically check for a "then" method + (mainly to just call the "getter" of "then" only once) */ + + + var then; + + if (_typeof(x) === 'object' && x !== null || typeof x === 'function') { + try { + then = x.then; + } + /* [Promises/A+ 2.3.3.1, 3.5] */ + catch (e) { + promise.reject(e); + /* [Promises/A+ 2.3.3.2] */ + + return; + } + } + /* handle own Thenables [Promises/A+ 2.3.2] + and similar "thenables" [Promises/A+ 2.3.3] */ + + + if (typeof then === 'function') { + var resolved = false; + + try { + /* call retrieved "then" method */ + + /* [Promises/A+ 2.3.3.3] */ + then.call(x, + /* resolvePromise */ + + /* [Promises/A+ 2.3.3.3.1] */ + function (y) { + if (resolved) return; + resolved = true; + /* [Promises/A+ 2.3.3.3.3] */ + + if (y === x) + /* [Promises/A+ 3.6] */ + promise.reject(new TypeError('circular thenable chain'));else resolve(promise, y); + }, + /* rejectPromise */ + + /* [Promises/A+ 2.3.3.3.2] */ + function (r) { + if (resolved) return; + resolved = true; + /* [Promises/A+ 2.3.3.3.3] */ + + promise.reject(r); + }); + } catch (e) { + if (!resolved) + /* [Promises/A+ 2.3.3.3.3] */ + promise.reject(e); + /* [Promises/A+ 2.3.3.3.4] */ + } + + return; + } + /* handle other values */ + + + promise.fulfill(x); + /* [Promises/A+ 2.3.4, 2.3.3.4] */ + }; // so we always have Promise.all() + + + api.all = function (ps) { + return new api(function (resolveAll, rejectAll) { + var vals = new Array(ps.length); + var doneCount = 0; + + var fulfill = function fulfill(i, val) { + vals[i] = val; + doneCount++; + + if (doneCount === ps.length) { + resolveAll(vals); + } + }; + + for (var i = 0; i < ps.length; i++) { + (function (i) { + var p = ps[i]; + var isPromise = p != null && p.then != null; + + if (isPromise) { + p.then(function (val) { + fulfill(i, val); + }, function (err) { + rejectAll(err); + }); + } else { + var val = p; + fulfill(i, val); + } + })(i); + } + }); + }; + + api.resolve = function (val) { + return new api(function (resolve, reject) { + resolve(val); + }); + }; + + api.reject = function (val) { + return new api(function (resolve, reject) { + reject(val); + }); + }; + + var Promise$1 = typeof Promise !== 'undefined' ? Promise : api; // eslint-disable-line no-undef + + var Animation = function Animation(target, opts, opts2) { + var isCore = core(target); + var isEle = !isCore; + + var _p = this._private = extend({ + duration: 1000 + }, opts, opts2); + + _p.target = target; + _p.style = _p.style || _p.css; + _p.started = false; + _p.playing = false; + _p.hooked = false; + _p.applying = false; + _p.progress = 0; + _p.completes = []; + _p.frames = []; + + if (_p.complete && fn$6(_p.complete)) { + _p.completes.push(_p.complete); + } + + if (isEle) { + var pos = target.position(); + _p.startPosition = _p.startPosition || { + x: pos.x, + y: pos.y + }; + _p.startStyle = _p.startStyle || target.cy().style().getAnimationStartStyle(target, _p.style); + } + + if (isCore) { + var pan = target.pan(); + _p.startPan = { + x: pan.x, + y: pan.y + }; + _p.startZoom = target.zoom(); + } // for future timeline/animations impl + + + this.length = 1; + this[0] = this; + }; + + var anifn = Animation.prototype; + extend(anifn, { + instanceString: function instanceString() { + return 'animation'; + }, + hook: function hook() { + var _p = this._private; + + if (!_p.hooked) { + // add to target's animation queue + var q; + var tAni = _p.target._private.animation; + + if (_p.queue) { + q = tAni.queue; + } else { + q = tAni.current; + } + + q.push(this); // add to the animation loop pool + + if (elementOrCollection(_p.target)) { + _p.target.cy().addToAnimationPool(_p.target); + } + + _p.hooked = true; + } + + return this; + }, + play: function play() { + var _p = this._private; // autorewind + + if (_p.progress === 1) { + _p.progress = 0; + } + + _p.playing = true; + _p.started = false; // needs to be started by animation loop + + _p.stopped = false; + this.hook(); // the animation loop will start the animation... + + return this; + }, + playing: function playing() { + return this._private.playing; + }, + apply: function apply() { + var _p = this._private; + _p.applying = true; + _p.started = false; // needs to be started by animation loop + + _p.stopped = false; + this.hook(); // the animation loop will apply the animation at this progress + + return this; + }, + applying: function applying() { + return this._private.applying; + }, + pause: function pause() { + var _p = this._private; + _p.playing = false; + _p.started = false; + return this; + }, + stop: function stop() { + var _p = this._private; + _p.playing = false; + _p.started = false; + _p.stopped = true; // to be removed from animation queues + + return this; + }, + rewind: function rewind() { + return this.progress(0); + }, + fastforward: function fastforward() { + return this.progress(1); + }, + time: function time(t) { + var _p = this._private; + + if (t === undefined) { + return _p.progress * _p.duration; + } else { + return this.progress(t / _p.duration); + } + }, + progress: function progress(p) { + var _p = this._private; + var wasPlaying = _p.playing; + + if (p === undefined) { + return _p.progress; + } else { + if (wasPlaying) { + this.pause(); + } + + _p.progress = p; + _p.started = false; + + if (wasPlaying) { + this.play(); + } + } + + return this; + }, + completed: function completed() { + return this._private.progress === 1; + }, + reverse: function reverse() { + var _p = this._private; + var wasPlaying = _p.playing; + + if (wasPlaying) { + this.pause(); + } + + _p.progress = 1 - _p.progress; + _p.started = false; + + var swap = function swap(a, b) { + var _pa = _p[a]; + + if (_pa == null) { + return; + } + + _p[a] = _p[b]; + _p[b] = _pa; + }; + + swap('zoom', 'startZoom'); + swap('pan', 'startPan'); + swap('position', 'startPosition'); // swap styles + + if (_p.style) { + for (var i = 0; i < _p.style.length; i++) { + var prop = _p.style[i]; + var name = prop.name; + var startStyleProp = _p.startStyle[name]; + _p.startStyle[name] = prop; + _p.style[i] = startStyleProp; + } + } + + if (wasPlaying) { + this.play(); + } + + return this; + }, + promise: function promise(type) { + var _p = this._private; + var arr; + + switch (type) { + case 'frame': + arr = _p.frames; + break; + + default: + case 'complete': + case 'completed': + arr = _p.completes; + } + + return new Promise$1(function (resolve, reject) { + arr.push(function () { + resolve(); + }); + }); + } + }); + anifn.complete = anifn.completed; + anifn.run = anifn.play; + anifn.running = anifn.playing; + + var define$3 = { + animated: function animated() { + return function animatedImpl() { + var self = this; + var selfIsArrayLike = self.length !== undefined; + var all = selfIsArrayLike ? self : [self]; // put in array if not array-like + + var cy = this._private.cy || this; + + if (!cy.styleEnabled()) { + return false; + } + + var ele = all[0]; + + if (ele) { + return ele._private.animation.current.length > 0; + } + }; + }, + // animated + clearQueue: function clearQueue() { + return function clearQueueImpl() { + var self = this; + var selfIsArrayLike = self.length !== undefined; + var all = selfIsArrayLike ? self : [self]; // put in array if not array-like + + var cy = this._private.cy || this; + + if (!cy.styleEnabled()) { + return this; + } + + for (var i = 0; i < all.length; i++) { + var ele = all[i]; + ele._private.animation.queue = []; + } + + return this; + }; + }, + // clearQueue + delay: function delay() { + return function delayImpl(time, complete) { + var cy = this._private.cy || this; + + if (!cy.styleEnabled()) { + return this; + } + + return this.animate({ + delay: time, + duration: time, + complete: complete + }); + }; + }, + // delay + delayAnimation: function delayAnimation() { + return function delayAnimationImpl(time, complete) { + var cy = this._private.cy || this; + + if (!cy.styleEnabled()) { + return this; + } + + return this.animation({ + delay: time, + duration: time, + complete: complete + }); + }; + }, + // delay + animation: function animation() { + return function animationImpl(properties, params) { + var self = this; + var selfIsArrayLike = self.length !== undefined; + var all = selfIsArrayLike ? self : [self]; // put in array if not array-like + + var cy = this._private.cy || this; + var isCore = !selfIsArrayLike; + var isEles = !isCore; + + if (!cy.styleEnabled()) { + return this; + } + + var style = cy.style(); + properties = extend({}, properties, params); + var propertiesEmpty = Object.keys(properties).length === 0; + + if (propertiesEmpty) { + return new Animation(all[0], properties); // nothing to animate + } + + if (properties.duration === undefined) { + properties.duration = 400; + } + + switch (properties.duration) { + case 'slow': + properties.duration = 600; + break; + + case 'fast': + properties.duration = 200; + break; + } + + if (isEles) { + properties.style = style.getPropsList(properties.style || properties.css); + properties.css = undefined; + } + + if (isEles && properties.renderedPosition != null) { + var rpos = properties.renderedPosition; + var pan = cy.pan(); + var zoom = cy.zoom(); + properties.position = renderedToModelPosition(rpos, zoom, pan); + } // override pan w/ panBy if set + + + if (isCore && properties.panBy != null) { + var panBy = properties.panBy; + var cyPan = cy.pan(); + properties.pan = { + x: cyPan.x + panBy.x, + y: cyPan.y + panBy.y + }; + } // override pan w/ center if set + + + var center = properties.center || properties.centre; + + if (isCore && center != null) { + var centerPan = cy.getCenterPan(center.eles, properties.zoom); + + if (centerPan != null) { + properties.pan = centerPan; + } + } // override pan & zoom w/ fit if set + + + if (isCore && properties.fit != null) { + var fit = properties.fit; + var fitVp = cy.getFitViewport(fit.eles || fit.boundingBox, fit.padding); + + if (fitVp != null) { + properties.pan = fitVp.pan; + properties.zoom = fitVp.zoom; + } + } // override zoom (& potentially pan) w/ zoom obj if set + + + if (isCore && plainObject(properties.zoom)) { + var vp = cy.getZoomedViewport(properties.zoom); + + if (vp != null) { + if (vp.zoomed) { + properties.zoom = vp.zoom; + } + + if (vp.panned) { + properties.pan = vp.pan; + } + } else { + properties.zoom = null; // an inavalid zoom (e.g. no delta) gets automatically destroyed + } + } + + return new Animation(all[0], properties); + }; + }, + // animate + animate: function animate() { + return function animateImpl(properties, params) { + var self = this; + var selfIsArrayLike = self.length !== undefined; + var all = selfIsArrayLike ? self : [self]; // put in array if not array-like + + var cy = this._private.cy || this; + + if (!cy.styleEnabled()) { + return this; + } + + if (params) { + properties = extend({}, properties, params); + } // manually hook and run the animation + + + for (var i = 0; i < all.length; i++) { + var ele = all[i]; + var queue = ele.animated() && (properties.queue === undefined || properties.queue); + var ani = ele.animation(properties, queue ? { + queue: true + } : undefined); + ani.play(); + } + + return this; // chaining + }; + }, + // animate + stop: function stop() { + return function stopImpl(clearQueue, jumpToEnd) { + var self = this; + var selfIsArrayLike = self.length !== undefined; + var all = selfIsArrayLike ? self : [self]; // put in array if not array-like + + var cy = this._private.cy || this; + + if (!cy.styleEnabled()) { + return this; + } + + for (var i = 0; i < all.length; i++) { + var ele = all[i]; + var _p = ele._private; + var anis = _p.animation.current; + + for (var j = 0; j < anis.length; j++) { + var ani = anis[j]; + var ani_p = ani._private; + + if (jumpToEnd) { + // next iteration of the animation loop, the animation + // will go straight to the end and be removed + ani_p.duration = 0; + } + } // clear the queue of future animations + + + if (clearQueue) { + _p.animation.queue = []; + } + + if (!jumpToEnd) { + _p.animation.current = []; + } + } // we have to notify (the animation loop doesn't do it for us on `stop`) + + + cy.notify('draw'); + return this; + }; + } // stop + + }; // define + + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ + var isArray = Array.isArray; + + var isArray_1 = isArray; + + /** Used to match property names within property paths. */ + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + + /** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ + function isKey(value, object) { + if (isArray_1(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol_1(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); + } + + var _isKey = isKey; + + /** `Object#toString` result references. */ + var asyncTag = '[object AsyncFunction]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + proxyTag = '[object Proxy]'; + + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + if (!isObject_1(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = _baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; + } + + var isFunction_1 = isFunction; + + /** Used to detect overreaching core-js shims. */ + var coreJsData = _root['__core-js_shared__']; + + var _coreJsData = coreJsData; + + /** Used to detect methods masquerading as native. */ + var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(_coreJsData && _coreJsData.keys && _coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; + }()); + + /** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ + function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); + } + + var _isMasked = isMasked; + + /** Used for built-in method references. */ + var funcProto$1 = Function.prototype; + + /** Used to resolve the decompiled source of functions. */ + var funcToString$1 = funcProto$1.toString; + + /** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ + function toSource(func) { + if (func != null) { + try { + return funcToString$1.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; + } + + var _toSource = toSource; + + /** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + + /** Used to detect host constructors (Safari). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + + /** Used for built-in method references. */ + var funcProto = Function.prototype, + objectProto$3 = Object.prototype; + + /** Used to resolve the decompiled source of functions. */ + var funcToString = funcProto.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty$3 = objectProto$3.hasOwnProperty; + + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty$3).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' + ); + + /** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ + function baseIsNative(value) { + if (!isObject_1(value) || _isMasked(value)) { + return false; + } + var pattern = isFunction_1(value) ? reIsNative : reIsHostCtor; + return pattern.test(_toSource(value)); + } + + var _baseIsNative = baseIsNative; + + /** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ + function getValue$1(object, key) { + return object == null ? undefined : object[key]; + } + + var _getValue = getValue$1; + + /** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = _getValue(object, key); + return _baseIsNative(value) ? value : undefined; + } + + var _getNative = getNative; + + /* Built-in method references that are verified to be native. */ + var nativeCreate = _getNative(Object, 'create'); + + var _nativeCreate = nativeCreate; + + /** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ + function hashClear() { + this.__data__ = _nativeCreate ? _nativeCreate(null) : {}; + this.size = 0; + } + + var _hashClear = hashClear; + + /** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; + } + + var _hashDelete = hashDelete; + + /** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED$1 = '__lodash_hash_undefined__'; + + /** Used for built-in method references. */ + var objectProto$2 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$2 = objectProto$2.hasOwnProperty; + + /** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function hashGet(key) { + var data = this.__data__; + if (_nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED$1 ? undefined : result; + } + return hasOwnProperty$2.call(data, key) ? data[key] : undefined; + } + + var _hashGet = hashGet; + + /** Used for built-in method references. */ + var objectProto$1 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$1 = objectProto$1.hasOwnProperty; + + /** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function hashHas(key) { + var data = this.__data__; + return _nativeCreate ? (data[key] !== undefined) : hasOwnProperty$1.call(data, key); + } + + var _hashHas = hashHas; + + /** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED = '__lodash_hash_undefined__'; + + /** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ + function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (_nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; + } + + var _hashSet = hashSet; + + /** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + // Add methods to `Hash`. + Hash.prototype.clear = _hashClear; + Hash.prototype['delete'] = _hashDelete; + Hash.prototype.get = _hashGet; + Hash.prototype.has = _hashHas; + Hash.prototype.set = _hashSet; + + var _Hash = Hash; + + /** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ + function listCacheClear() { + this.__data__ = []; + this.size = 0; + } + + var _listCacheClear = listCacheClear; + + /** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ + function eq(value, other) { + return value === other || (value !== value && other !== other); + } + + var eq_1 = eq; + + /** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq_1(array[length][0], key)) { + return length; + } + } + return -1; + } + + var _assocIndexOf = assocIndexOf; + + /** Used for built-in method references. */ + var arrayProto = Array.prototype; + + /** Built-in value references. */ + var splice = arrayProto.splice; + + /** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function listCacheDelete(key) { + var data = this.__data__, + index = _assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; + } + + var _listCacheDelete = listCacheDelete; + + /** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function listCacheGet(key) { + var data = this.__data__, + index = _assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; + } + + var _listCacheGet = listCacheGet; + + /** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function listCacheHas(key) { + return _assocIndexOf(this.__data__, key) > -1; + } + + var _listCacheHas = listCacheHas; + + /** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ + function listCacheSet(key, value) { + var data = this.__data__, + index = _assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; + } + + var _listCacheSet = listCacheSet; + + /** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + // Add methods to `ListCache`. + ListCache.prototype.clear = _listCacheClear; + ListCache.prototype['delete'] = _listCacheDelete; + ListCache.prototype.get = _listCacheGet; + ListCache.prototype.has = _listCacheHas; + ListCache.prototype.set = _listCacheSet; + + var _ListCache = ListCache; + + /* Built-in method references that are verified to be native. */ + var Map$1 = _getNative(_root, 'Map'); + + var _Map = Map$1; + + /** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ + function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new _Hash, + 'map': new (_Map || _ListCache), + 'string': new _Hash + }; + } + + var _mapCacheClear = mapCacheClear; + + /** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ + function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); + } + + var _isKeyable = isKeyable; + + /** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ + function getMapData(map, key) { + var data = map.__data__; + return _isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; + } + + var _getMapData = getMapData; + + /** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function mapCacheDelete(key) { + var result = _getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; + } + + var _mapCacheDelete = mapCacheDelete; + + /** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function mapCacheGet(key) { + return _getMapData(this, key).get(key); + } + + var _mapCacheGet = mapCacheGet; + + /** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function mapCacheHas(key) { + return _getMapData(this, key).has(key); + } + + var _mapCacheHas = mapCacheHas; + + /** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ + function mapCacheSet(key, value) { + var data = _getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; + } + + var _mapCacheSet = mapCacheSet; + + /** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + // Add methods to `MapCache`. + MapCache.prototype.clear = _mapCacheClear; + MapCache.prototype['delete'] = _mapCacheDelete; + MapCache.prototype.get = _mapCacheGet; + MapCache.prototype.has = _mapCacheHas; + MapCache.prototype.set = _mapCacheSet; + + var _MapCache = MapCache; + + /** Error message constants. */ + var FUNC_ERROR_TEXT = 'Expected a function'; + + /** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ + function memoize(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || _MapCache); + return memoized; + } + + // Expose `MapCache`. + memoize.Cache = _MapCache; + + var memoize_1 = memoize; + + /** Used as the maximum memoize cache size. */ + var MAX_MEMOIZE_SIZE = 500; + + /** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ + function memoizeCapped(func) { + var result = memoize_1(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + + var cache = result.cache; + return result; + } + + var _memoizeCapped = memoizeCapped; + + /** Used to match property names within property paths. */ + var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + + /** Used to match backslashes in property paths. */ + var reEscapeChar = /\\(\\)?/g; + + /** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ + var stringToPath = _memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46 /* . */) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; + }); + + var _stringToPath = stringToPath; + + /** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; + } + + var _arrayMap = arrayMap; + + /** Used as references for various `Number` constants. */ + var INFINITY$1 = 1 / 0; + + /** Used to convert symbols to primitives and strings. */ + var symbolProto = _Symbol ? _Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + + /** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ + function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray_1(value)) { + // Recursively convert values (susceptible to call stack limits). + return _arrayMap(value, baseToString) + ''; + } + if (isSymbol_1(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY$1) ? '-0' : result; + } + + var _baseToString = baseToString; + + /** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ + function toString$1(value) { + return value == null ? '' : _baseToString(value); + } + + var toString_1 = toString$1; + + /** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ + function castPath(value, object) { + if (isArray_1(value)) { + return value; + } + return _isKey(value, object) ? [value] : _stringToPath(toString_1(value)); + } + + var _castPath = castPath; + + /** Used as references for various `Number` constants. */ + var INFINITY = 1 / 0; + + /** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ + function toKey(value) { + if (typeof value == 'string' || isSymbol_1(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; + } + + var _toKey = toKey; + + /** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ + function baseGet(object, path) { + path = _castPath(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[_toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; + } + + var _baseGet = baseGet; + + /** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ + function get(object, path, defaultValue) { + var result = object == null ? undefined : _baseGet(object, path); + return result === undefined ? defaultValue : result; + } + + var get_1 = get; + + var defineProperty = (function() { + try { + var func = _getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} + }()); + + var _defineProperty = defineProperty; + + /** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function baseAssignValue(object, key, value) { + if (key == '__proto__' && _defineProperty) { + _defineProperty(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true + }); + } else { + object[key] = value; + } + } + + var _baseAssignValue = baseAssignValue; + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq_1(objValue, value)) || + (value === undefined && !(key in object))) { + _baseAssignValue(object, key, value); + } + } + + var _assignValue = assignValue; + + /** Used as references for various `Number` constants. */ + var MAX_SAFE_INTEGER = 9007199254740991; + + /** Used to detect unsigned integer values. */ + var reIsUint = /^(?:0|[1-9]\d*)$/; + + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); + } + + var _isIndex = isIndex; + + /** + * The base implementation of `_.set`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ + function baseSet(object, path, value, customizer) { + if (!isObject_1(object)) { + return object; + } + path = _castPath(path, object); + + var index = -1, + length = path.length, + lastIndex = length - 1, + nested = object; + + while (nested != null && ++index < length) { + var key = _toKey(path[index]), + newValue = value; + + if (key === '__proto__' || key === 'constructor' || key === 'prototype') { + return object; + } + + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined; + if (newValue === undefined) { + newValue = isObject_1(objValue) + ? objValue + : (_isIndex(path[index + 1]) ? [] : {}); + } + } + _assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; + } + + var _baseSet = baseSet; + + /** + * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, + * it's created. Arrays are created for missing index properties while objects + * are created for all other missing properties. Use `_.setWith` to customize + * `path` creation. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @returns {Object} Returns `object`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.set(object, 'a[0].b.c', 4); + * console.log(object.a[0].b.c); + * // => 4 + * + * _.set(object, ['x', '0', 'y', 'z'], 5); + * console.log(object.x[0].y.z); + * // => 5 + */ + function set(object, path, value) { + return object == null ? object : _baseSet(object, path, value); + } + + var set_1 = set; + + /** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ + function copyArray(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; + } + + var _copyArray = copyArray; + + /** + * Converts `value` to a property path array. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Util + * @param {*} value The value to convert. + * @returns {Array} Returns the new property path array. + * @example + * + * _.toPath('a.b.c'); + * // => ['a', 'b', 'c'] + * + * _.toPath('a[0].b.c'); + * // => ['a', '0', 'b', 'c'] + */ + function toPath(value) { + if (isArray_1(value)) { + return _arrayMap(value, _toKey); + } + return isSymbol_1(value) ? [value] : _copyArray(_stringToPath(toString_1(value))); + } + + var toPath_1 = toPath; + + var define$2 = { + // access data field + data: function data(params) { + var defaults = { + field: 'data', + bindingEvent: 'data', + allowBinding: false, + allowSetting: false, + allowGetting: false, + settingEvent: 'data', + settingTriggersEvent: false, + triggerFnName: 'trigger', + immutableKeys: {}, + // key => true if immutable + updateStyle: false, + beforeGet: function beforeGet(self) {}, + beforeSet: function beforeSet(self, obj) {}, + onSet: function onSet(self) {}, + canSet: function canSet(self) { + return true; + } + }; + params = extend({}, defaults, params); + return function dataImpl(name, value) { + var p = params; + var self = this; + var selfIsArrayLike = self.length !== undefined; + var all = selfIsArrayLike ? self : [self]; // put in array if not array-like + + var single = selfIsArrayLike ? self[0] : self; // .data('foo', ...) + + if (string(name)) { + // set or get property + var isPathLike = name.indexOf('.') !== -1; // there might be a normal field with a dot + + var path = isPathLike && toPath_1(name); // .data('foo') + + if (p.allowGetting && value === undefined) { + // get + var ret; + + if (single) { + p.beforeGet(single); // check if it's path and a field with the same name doesn't exist + + if (path && single._private[p.field][name] === undefined) { + ret = get_1(single._private[p.field], path); + } else { + ret = single._private[p.field][name]; + } + } + + return ret; // .data('foo', 'bar') + } else if (p.allowSetting && value !== undefined) { + // set + var valid = !p.immutableKeys[name]; + + if (valid) { + var change = _defineProperty$1({}, name, value); + + p.beforeSet(self, change); + + for (var i = 0, l = all.length; i < l; i++) { + var ele = all[i]; + + if (p.canSet(ele)) { + if (path && single._private[p.field][name] === undefined) { + set_1(ele._private[p.field], path, value); + } else { + ele._private[p.field][name] = value; + } + } + } // update mappers if asked + + + if (p.updateStyle) { + self.updateStyle(); + } // call onSet callback + + + p.onSet(self); + + if (p.settingTriggersEvent) { + self[p.triggerFnName](p.settingEvent); + } + } + } // .data({ 'foo': 'bar' }) + + } else if (p.allowSetting && plainObject(name)) { + // extend + var obj = name; + var k, v; + var keys = Object.keys(obj); + p.beforeSet(self, obj); + + for (var _i = 0; _i < keys.length; _i++) { + k = keys[_i]; + v = obj[k]; + + var _valid = !p.immutableKeys[k]; + + if (_valid) { + for (var j = 0; j < all.length; j++) { + var _ele = all[j]; + + if (p.canSet(_ele)) { + _ele._private[p.field][k] = v; + } + } + } + } // update mappers if asked + + + if (p.updateStyle) { + self.updateStyle(); + } // call onSet callback + + + p.onSet(self); + + if (p.settingTriggersEvent) { + self[p.triggerFnName](p.settingEvent); + } // .data(function(){ ... }) + + } else if (p.allowBinding && fn$6(name)) { + // bind to event + var fn = name; + self.on(p.bindingEvent, fn); // .data() + } else if (p.allowGetting && name === undefined) { + // get whole object + var _ret; + + if (single) { + p.beforeGet(single); + _ret = single._private[p.field]; + } + + return _ret; + } + + return self; // maintain chainability + }; // function + }, + // data + // remove data field + removeData: function removeData(params) { + var defaults = { + field: 'data', + event: 'data', + triggerFnName: 'trigger', + triggerEvent: false, + immutableKeys: {} // key => true if immutable + + }; + params = extend({}, defaults, params); + return function removeDataImpl(names) { + var p = params; + var self = this; + var selfIsArrayLike = self.length !== undefined; + var all = selfIsArrayLike ? self : [self]; // put in array if not array-like + // .removeData('foo bar') + + if (string(names)) { + // then get the list of keys, and delete them + var keys = names.split(/\s+/); + var l = keys.length; + + for (var i = 0; i < l; i++) { + // delete each non-empty key + var key = keys[i]; + + if (emptyString(key)) { + continue; + } + + var valid = !p.immutableKeys[key]; // not valid if immutable + + if (valid) { + for (var i_a = 0, l_a = all.length; i_a < l_a; i_a++) { + all[i_a]._private[p.field][key] = undefined; + } + } + } + + if (p.triggerEvent) { + self[p.triggerFnName](p.event); + } // .removeData() + + } else if (names === undefined) { + // then delete all keys + for (var _i_a = 0, _l_a = all.length; _i_a < _l_a; _i_a++) { + var _privateFields = all[_i_a]._private[p.field]; + + var _keys = Object.keys(_privateFields); + + for (var _i2 = 0; _i2 < _keys.length; _i2++) { + var _key = _keys[_i2]; + var validKeyToDelete = !p.immutableKeys[_key]; + + if (validKeyToDelete) { + _privateFields[_key] = undefined; + } + } + } + + if (p.triggerEvent) { + self[p.triggerFnName](p.event); + } + } + + return self; // maintain chaining + }; // function + } // removeData + + }; // define + + var define$1 = { + eventAliasesOn: function eventAliasesOn(proto) { + var p = proto; + p.addListener = p.listen = p.bind = p.on; + p.unlisten = p.unbind = p.off = p.removeListener; + p.trigger = p.emit; // this is just a wrapper alias of .on() + + p.pon = p.promiseOn = function (events, selector) { + var self = this; + var args = Array.prototype.slice.call(arguments, 0); + return new Promise$1(function (resolve, reject) { + var callback = function callback(e) { + self.off.apply(self, offArgs); + resolve(e); + }; + + var onArgs = args.concat([callback]); + var offArgs = onArgs.concat([]); + self.on.apply(self, onArgs); + }); + }; + } + }; // define + + // use this module to cherry pick functions into your prototype + var define = {}; + [define$3, define$2, define$1].forEach(function (m) { + extend(define, m); + }); + + var elesfn$i = { + animate: define.animate(), + animation: define.animation(), + animated: define.animated(), + clearQueue: define.clearQueue(), + delay: define.delay(), + delayAnimation: define.delayAnimation(), + stop: define.stop() + }; + + var elesfn$h = { + classes: function classes(_classes) { + var self = this; + + if (_classes === undefined) { + var ret = []; + + self[0]._private.classes.forEach(function (cls) { + return ret.push(cls); + }); + + return ret; + } else if (!array(_classes)) { + // extract classes from string + _classes = (_classes || '').match(/\S+/g) || []; + } + + var changed = []; + var classesSet = new Set$1(_classes); // check and update each ele + + for (var j = 0; j < self.length; j++) { + var ele = self[j]; + var _p = ele._private; + var eleClasses = _p.classes; + var changedEle = false; // check if ele has all of the passed classes + + for (var i = 0; i < _classes.length; i++) { + var cls = _classes[i]; + var eleHasClass = eleClasses.has(cls); + + if (!eleHasClass) { + changedEle = true; + break; + } + } // check if ele has classes outside of those passed + + + if (!changedEle) { + changedEle = eleClasses.size !== _classes.length; + } + + if (changedEle) { + _p.classes = classesSet; + changed.push(ele); + } + } // trigger update style on those eles that had class changes + + + if (changed.length > 0) { + this.spawn(changed).updateStyle().emit('class'); + } + + return self; + }, + addClass: function addClass(classes) { + return this.toggleClass(classes, true); + }, + hasClass: function hasClass(className) { + var ele = this[0]; + return ele != null && ele._private.classes.has(className); + }, + toggleClass: function toggleClass(classes, toggle) { + if (!array(classes)) { + // extract classes from string + classes = classes.match(/\S+/g) || []; + } + + var self = this; + var toggleUndefd = toggle === undefined; + var changed = []; // eles who had classes changed + + for (var i = 0, il = self.length; i < il; i++) { + var ele = self[i]; + var eleClasses = ele._private.classes; + var changedEle = false; + + for (var j = 0; j < classes.length; j++) { + var cls = classes[j]; + var hasClass = eleClasses.has(cls); + var changedNow = false; + + if (toggle || toggleUndefd && !hasClass) { + eleClasses.add(cls); + changedNow = true; + } else if (!toggle || toggleUndefd && hasClass) { + eleClasses["delete"](cls); + changedNow = true; + } + + if (!changedEle && changedNow) { + changed.push(ele); + changedEle = true; + } + } // for j classes + + } // for i eles + // trigger update style on those eles that had class changes + + + if (changed.length > 0) { + this.spawn(changed).updateStyle().emit('class'); + } + + return self; + }, + removeClass: function removeClass(classes) { + return this.toggleClass(classes, false); + }, + flashClass: function flashClass(classes, duration) { + var self = this; + + if (duration == null) { + duration = 250; + } else if (duration === 0) { + return self; // nothing to do really + } + + self.addClass(classes); + setTimeout(function () { + self.removeClass(classes); + }, duration); + return self; + } + }; + elesfn$h.className = elesfn$h.classNames = elesfn$h.classes; + + var tokens = { + metaChar: '[\\!\\"\\#\\$\\%\\&\\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]', + // chars we need to escape in let names, etc + comparatorOp: '=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=', + // binary comparison op (used in data selectors) + boolOp: '\\?|\\!|\\^', + // boolean (unary) operators (used in data selectors) + string: '"(?:\\\\"|[^"])*"' + '|' + "'(?:\\\\'|[^'])*'", + // string literals (used in data selectors) -- doublequotes | singlequotes + number: number, + // number literal (used in data selectors) --- e.g. 0.1234, 1234, 12e123 + meta: 'degree|indegree|outdegree', + // allowed metadata fields (i.e. allowed functions to use from Collection) + separator: '\\s*,\\s*', + // queries are separated by commas, e.g. edge[foo = 'bar'], node.someClass + descendant: '\\s+', + child: '\\s+>\\s+', + subject: '\\$', + group: 'node|edge|\\*', + directedEdge: '\\s+->\\s+', + undirectedEdge: '\\s+<->\\s+' + }; + tokens.variable = '(?:[\\w-.]|(?:\\\\' + tokens.metaChar + '))+'; // a variable name can have letters, numbers, dashes, and periods + + tokens.className = '(?:[\\w-]|(?:\\\\' + tokens.metaChar + '))+'; // a class name has the same rules as a variable except it can't have a '.' in the name + + tokens.value = tokens.string + '|' + tokens.number; // a value literal, either a string or number + + tokens.id = tokens.variable; // an element id (follows variable conventions) + + (function () { + var ops, op, i; // add @ variants to comparatorOp + + ops = tokens.comparatorOp.split('|'); + + for (i = 0; i < ops.length; i++) { + op = ops[i]; + tokens.comparatorOp += '|@' + op; + } // add ! variants to comparatorOp + + + ops = tokens.comparatorOp.split('|'); + + for (i = 0; i < ops.length; i++) { + op = ops[i]; + + if (op.indexOf('!') >= 0) { + continue; + } // skip ops that explicitly contain ! + + + if (op === '=') { + continue; + } // skip = b/c != is explicitly defined + + + tokens.comparatorOp += '|\\!' + op; + } + })(); + + /** + * Make a new query object + * + * @prop type {Type} The type enum (int) of the query + * @prop checks List of checks to make against an ele to test for a match + */ + var newQuery = function newQuery() { + return { + checks: [] + }; + }; + + /** + * A check type enum-like object. Uses integer values for fast match() lookup. + * The ordering does not matter as long as the ints are unique. + */ + var Type = { + /** E.g. node */ + GROUP: 0, + + /** A collection of elements */ + COLLECTION: 1, + + /** A filter(ele) function */ + FILTER: 2, + + /** E.g. [foo > 1] */ + DATA_COMPARE: 3, + + /** E.g. [foo] */ + DATA_EXIST: 4, + + /** E.g. [?foo] */ + DATA_BOOL: 5, + + /** E.g. [[degree > 2]] */ + META_COMPARE: 6, + + /** E.g. :selected */ + STATE: 7, + + /** E.g. #foo */ + ID: 8, + + /** E.g. .foo */ + CLASS: 9, + + /** E.g. #foo <-> #bar */ + UNDIRECTED_EDGE: 10, + + /** E.g. #foo -> #bar */ + DIRECTED_EDGE: 11, + + /** E.g. $#foo -> #bar */ + NODE_SOURCE: 12, + + /** E.g. #foo -> $#bar */ + NODE_TARGET: 13, + + /** E.g. $#foo <-> #bar */ + NODE_NEIGHBOR: 14, + + /** E.g. #foo > #bar */ + CHILD: 15, + + /** E.g. #foo #bar */ + DESCENDANT: 16, + + /** E.g. $#foo > #bar */ + PARENT: 17, + + /** E.g. $#foo #bar */ + ANCESTOR: 18, + + /** E.g. #foo > $bar > #baz */ + COMPOUND_SPLIT: 19, + + /** Always matches, useful placeholder for subject in `COMPOUND_SPLIT` */ + TRUE: 20 + }; + + var stateSelectors = [{ + selector: ':selected', + matches: function matches(ele) { + return ele.selected(); + } + }, { + selector: ':unselected', + matches: function matches(ele) { + return !ele.selected(); + } + }, { + selector: ':selectable', + matches: function matches(ele) { + return ele.selectable(); + } + }, { + selector: ':unselectable', + matches: function matches(ele) { + return !ele.selectable(); + } + }, { + selector: ':locked', + matches: function matches(ele) { + return ele.locked(); + } + }, { + selector: ':unlocked', + matches: function matches(ele) { + return !ele.locked(); + } + }, { + selector: ':visible', + matches: function matches(ele) { + return ele.visible(); + } + }, { + selector: ':hidden', + matches: function matches(ele) { + return !ele.visible(); + } + }, { + selector: ':transparent', + matches: function matches(ele) { + return ele.transparent(); + } + }, { + selector: ':grabbed', + matches: function matches(ele) { + return ele.grabbed(); + } + }, { + selector: ':free', + matches: function matches(ele) { + return !ele.grabbed(); + } + }, { + selector: ':removed', + matches: function matches(ele) { + return ele.removed(); + } + }, { + selector: ':inside', + matches: function matches(ele) { + return !ele.removed(); + } + }, { + selector: ':grabbable', + matches: function matches(ele) { + return ele.grabbable(); + } + }, { + selector: ':ungrabbable', + matches: function matches(ele) { + return !ele.grabbable(); + } + }, { + selector: ':animated', + matches: function matches(ele) { + return ele.animated(); + } + }, { + selector: ':unanimated', + matches: function matches(ele) { + return !ele.animated(); + } + }, { + selector: ':parent', + matches: function matches(ele) { + return ele.isParent(); + } + }, { + selector: ':childless', + matches: function matches(ele) { + return ele.isChildless(); + } + }, { + selector: ':child', + matches: function matches(ele) { + return ele.isChild(); + } + }, { + selector: ':orphan', + matches: function matches(ele) { + return ele.isOrphan(); + } + }, { + selector: ':nonorphan', + matches: function matches(ele) { + return ele.isChild(); + } + }, { + selector: ':compound', + matches: function matches(ele) { + if (ele.isNode()) { + return ele.isParent(); + } else { + return ele.source().isParent() || ele.target().isParent(); + } + } + }, { + selector: ':loop', + matches: function matches(ele) { + return ele.isLoop(); + } + }, { + selector: ':simple', + matches: function matches(ele) { + return ele.isSimple(); + } + }, { + selector: ':active', + matches: function matches(ele) { + return ele.active(); + } + }, { + selector: ':inactive', + matches: function matches(ele) { + return !ele.active(); + } + }, { + selector: ':backgrounding', + matches: function matches(ele) { + return ele.backgrounding(); + } + }, { + selector: ':nonbackgrounding', + matches: function matches(ele) { + return !ele.backgrounding(); + } + }].sort(function (a, b) { + // n.b. selectors that are starting substrings of others must have the longer ones first + return descending(a.selector, b.selector); + }); + + var lookup = function () { + var selToFn = {}; + var s; + + for (var i = 0; i < stateSelectors.length; i++) { + s = stateSelectors[i]; + selToFn[s.selector] = s.matches; + } + + return selToFn; + }(); + + var stateSelectorMatches = function stateSelectorMatches(sel, ele) { + return lookup[sel](ele); + }; + var stateSelectorRegex = '(' + stateSelectors.map(function (s) { + return s.selector; + }).join('|') + ')'; + + // so that values get compared properly in Selector.filter() + + var cleanMetaChars = function cleanMetaChars(str) { + return str.replace(new RegExp('\\\\(' + tokens.metaChar + ')', 'g'), function (match, $1) { + return $1; + }); + }; + + var replaceLastQuery = function replaceLastQuery(selector, examiningQuery, replacementQuery) { + selector[selector.length - 1] = replacementQuery; + }; // NOTE: add new expression syntax here to have it recognised by the parser; + // - a query contains all adjacent (i.e. no separator in between) expressions; + // - the current query is stored in selector[i] + // - you need to check the query objects in match() for it actually filter properly, but that's pretty straight forward + + + var exprs = [{ + name: 'group', + // just used for identifying when debugging + query: true, + regex: '(' + tokens.group + ')', + populate: function populate(selector, query, _ref) { + var _ref2 = _slicedToArray(_ref, 1), + group = _ref2[0]; + + query.checks.push({ + type: Type.GROUP, + value: group === '*' ? group : group + 's' + }); + } + }, { + name: 'state', + query: true, + regex: stateSelectorRegex, + populate: function populate(selector, query, _ref3) { + var _ref4 = _slicedToArray(_ref3, 1), + state = _ref4[0]; + + query.checks.push({ + type: Type.STATE, + value: state + }); + } + }, { + name: 'id', + query: true, + regex: '\\#(' + tokens.id + ')', + populate: function populate(selector, query, _ref5) { + var _ref6 = _slicedToArray(_ref5, 1), + id = _ref6[0]; + + query.checks.push({ + type: Type.ID, + value: cleanMetaChars(id) + }); + } + }, { + name: 'className', + query: true, + regex: '\\.(' + tokens.className + ')', + populate: function populate(selector, query, _ref7) { + var _ref8 = _slicedToArray(_ref7, 1), + className = _ref8[0]; + + query.checks.push({ + type: Type.CLASS, + value: cleanMetaChars(className) + }); + } + }, { + name: 'dataExists', + query: true, + regex: '\\[\\s*(' + tokens.variable + ')\\s*\\]', + populate: function populate(selector, query, _ref9) { + var _ref10 = _slicedToArray(_ref9, 1), + variable = _ref10[0]; + + query.checks.push({ + type: Type.DATA_EXIST, + field: cleanMetaChars(variable) + }); + } + }, { + name: 'dataCompare', + query: true, + regex: '\\[\\s*(' + tokens.variable + ')\\s*(' + tokens.comparatorOp + ')\\s*(' + tokens.value + ')\\s*\\]', + populate: function populate(selector, query, _ref11) { + var _ref12 = _slicedToArray(_ref11, 3), + variable = _ref12[0], + comparatorOp = _ref12[1], + value = _ref12[2]; + + var valueIsString = new RegExp('^' + tokens.string + '$').exec(value) != null; + + if (valueIsString) { + value = value.substring(1, value.length - 1); + } else { + value = parseFloat(value); + } + + query.checks.push({ + type: Type.DATA_COMPARE, + field: cleanMetaChars(variable), + operator: comparatorOp, + value: value + }); + } + }, { + name: 'dataBool', + query: true, + regex: '\\[\\s*(' + tokens.boolOp + ')\\s*(' + tokens.variable + ')\\s*\\]', + populate: function populate(selector, query, _ref13) { + var _ref14 = _slicedToArray(_ref13, 2), + boolOp = _ref14[0], + variable = _ref14[1]; + + query.checks.push({ + type: Type.DATA_BOOL, + field: cleanMetaChars(variable), + operator: boolOp + }); + } + }, { + name: 'metaCompare', + query: true, + regex: '\\[\\[\\s*(' + tokens.meta + ')\\s*(' + tokens.comparatorOp + ')\\s*(' + tokens.number + ')\\s*\\]\\]', + populate: function populate(selector, query, _ref15) { + var _ref16 = _slicedToArray(_ref15, 3), + meta = _ref16[0], + comparatorOp = _ref16[1], + number = _ref16[2]; + + query.checks.push({ + type: Type.META_COMPARE, + field: cleanMetaChars(meta), + operator: comparatorOp, + value: parseFloat(number) + }); + } + }, { + name: 'nextQuery', + separator: true, + regex: tokens.separator, + populate: function populate(selector, query) { + var currentSubject = selector.currentSubject; + var edgeCount = selector.edgeCount; + var compoundCount = selector.compoundCount; + var lastQ = selector[selector.length - 1]; + + if (currentSubject != null) { + lastQ.subject = currentSubject; + selector.currentSubject = null; + } + + lastQ.edgeCount = edgeCount; + lastQ.compoundCount = compoundCount; + selector.edgeCount = 0; + selector.compoundCount = 0; // go on to next query + + var nextQuery = selector[selector.length++] = newQuery(); + return nextQuery; // this is the new query to be filled by the following exprs + } + }, { + name: 'directedEdge', + separator: true, + regex: tokens.directedEdge, + populate: function populate(selector, query) { + if (selector.currentSubject == null) { + // undirected edge + var edgeQuery = newQuery(); + var source = query; + var target = newQuery(); + edgeQuery.checks.push({ + type: Type.DIRECTED_EDGE, + source: source, + target: target + }); // the query in the selector should be the edge rather than the source + + replaceLastQuery(selector, query, edgeQuery); + selector.edgeCount++; // we're now populating the target query with expressions that follow + + return target; + } else { + // source/target + var srcTgtQ = newQuery(); + var _source = query; + + var _target = newQuery(); + + srcTgtQ.checks.push({ + type: Type.NODE_SOURCE, + source: _source, + target: _target + }); // the query in the selector should be the neighbourhood rather than the node + + replaceLastQuery(selector, query, srcTgtQ); + selector.edgeCount++; + return _target; // now populating the target with the following expressions + } + } + }, { + name: 'undirectedEdge', + separator: true, + regex: tokens.undirectedEdge, + populate: function populate(selector, query) { + if (selector.currentSubject == null) { + // undirected edge + var edgeQuery = newQuery(); + var source = query; + var target = newQuery(); + edgeQuery.checks.push({ + type: Type.UNDIRECTED_EDGE, + nodes: [source, target] + }); // the query in the selector should be the edge rather than the source + + replaceLastQuery(selector, query, edgeQuery); + selector.edgeCount++; // we're now populating the target query with expressions that follow + + return target; + } else { + // neighbourhood + var nhoodQ = newQuery(); + var node = query; + var neighbor = newQuery(); + nhoodQ.checks.push({ + type: Type.NODE_NEIGHBOR, + node: node, + neighbor: neighbor + }); // the query in the selector should be the neighbourhood rather than the node + + replaceLastQuery(selector, query, nhoodQ); + return neighbor; // now populating the neighbor with following expressions + } + } + }, { + name: 'child', + separator: true, + regex: tokens.child, + populate: function populate(selector, query) { + if (selector.currentSubject == null) { + // default: child query + var parentChildQuery = newQuery(); + var child = newQuery(); + var parent = selector[selector.length - 1]; + parentChildQuery.checks.push({ + type: Type.CHILD, + parent: parent, + child: child + }); // the query in the selector should be the '>' itself + + replaceLastQuery(selector, query, parentChildQuery); + selector.compoundCount++; // we're now populating the child query with expressions that follow + + return child; + } else if (selector.currentSubject === query) { + // compound split query + var compound = newQuery(); + var left = selector[selector.length - 1]; + var right = newQuery(); + var subject = newQuery(); + + var _child = newQuery(); + + var _parent = newQuery(); // set up the root compound q + + + compound.checks.push({ + type: Type.COMPOUND_SPLIT, + left: left, + right: right, + subject: subject + }); // populate the subject and replace the q at the old spot (within left) with TRUE + + subject.checks = query.checks; // take the checks from the left + + query.checks = [{ + type: Type.TRUE + }]; // checks under left refs the subject implicitly + // set up the right q + + _parent.checks.push({ + type: Type.TRUE + }); // parent implicitly refs the subject + + + right.checks.push({ + type: Type.PARENT, + // type is swapped on right side queries + parent: _parent, + child: _child // empty for now + + }); + replaceLastQuery(selector, left, compound); // update the ref since we moved things around for `query` + + selector.currentSubject = subject; + selector.compoundCount++; + return _child; // now populating the right side's child + } else { + // parent query + // info for parent query + var _parent2 = newQuery(); + + var _child2 = newQuery(); + + var pcQChecks = [{ + type: Type.PARENT, + parent: _parent2, + child: _child2 + }]; // the parent-child query takes the place of the query previously being populated + + _parent2.checks = query.checks; // the previous query contains the checks for the parent + + query.checks = pcQChecks; // pc query takes over + + selector.compoundCount++; + return _child2; // we're now populating the child + } + } + }, { + name: 'descendant', + separator: true, + regex: tokens.descendant, + populate: function populate(selector, query) { + if (selector.currentSubject == null) { + // default: descendant query + var ancChQuery = newQuery(); + var descendant = newQuery(); + var ancestor = selector[selector.length - 1]; + ancChQuery.checks.push({ + type: Type.DESCENDANT, + ancestor: ancestor, + descendant: descendant + }); // the query in the selector should be the '>' itself + + replaceLastQuery(selector, query, ancChQuery); + selector.compoundCount++; // we're now populating the descendant query with expressions that follow + + return descendant; + } else if (selector.currentSubject === query) { + // compound split query + var compound = newQuery(); + var left = selector[selector.length - 1]; + var right = newQuery(); + var subject = newQuery(); + + var _descendant = newQuery(); + + var _ancestor = newQuery(); // set up the root compound q + + + compound.checks.push({ + type: Type.COMPOUND_SPLIT, + left: left, + right: right, + subject: subject + }); // populate the subject and replace the q at the old spot (within left) with TRUE + + subject.checks = query.checks; // take the checks from the left + + query.checks = [{ + type: Type.TRUE + }]; // checks under left refs the subject implicitly + // set up the right q + + _ancestor.checks.push({ + type: Type.TRUE + }); // ancestor implicitly refs the subject + + + right.checks.push({ + type: Type.ANCESTOR, + // type is swapped on right side queries + ancestor: _ancestor, + descendant: _descendant // empty for now + + }); + replaceLastQuery(selector, left, compound); // update the ref since we moved things around for `query` + + selector.currentSubject = subject; + selector.compoundCount++; + return _descendant; // now populating the right side's descendant + } else { + // ancestor query + // info for parent query + var _ancestor2 = newQuery(); + + var _descendant2 = newQuery(); + + var adQChecks = [{ + type: Type.ANCESTOR, + ancestor: _ancestor2, + descendant: _descendant2 + }]; // the parent-child query takes the place of the query previously being populated + + _ancestor2.checks = query.checks; // the previous query contains the checks for the parent + + query.checks = adQChecks; // pc query takes over + + selector.compoundCount++; + return _descendant2; // we're now populating the child + } + } + }, { + name: 'subject', + modifier: true, + regex: tokens.subject, + populate: function populate(selector, query) { + if (selector.currentSubject != null && selector.currentSubject !== query) { + warn('Redefinition of subject in selector `' + selector.toString() + '`'); + return false; + } + + selector.currentSubject = query; + var topQ = selector[selector.length - 1]; + var topChk = topQ.checks[0]; + var topType = topChk == null ? null : topChk.type; + + if (topType === Type.DIRECTED_EDGE) { + // directed edge with subject on the target + // change to target node check + topChk.type = Type.NODE_TARGET; + } else if (topType === Type.UNDIRECTED_EDGE) { + // undirected edge with subject on the second node + // change to neighbor check + topChk.type = Type.NODE_NEIGHBOR; + topChk.node = topChk.nodes[1]; // second node is subject + + topChk.neighbor = topChk.nodes[0]; // clean up unused fields for new type + + topChk.nodes = null; + } + } + }]; + exprs.forEach(function (e) { + return e.regexObj = new RegExp('^' + e.regex); + }); + + /** + * Of all the expressions, find the first match in the remaining text. + * @param {string} remaining The remaining text to parse + * @returns The matched expression and the newly remaining text `{ expr, match, name, remaining }` + */ + + var consumeExpr = function consumeExpr(remaining) { + var expr; + var match; + var name; + + for (var j = 0; j < exprs.length; j++) { + var e = exprs[j]; + var n = e.name; + var m = remaining.match(e.regexObj); + + if (m != null) { + match = m; + expr = e; + name = n; + var consumed = m[0]; + remaining = remaining.substring(consumed.length); + break; // we've consumed one expr, so we can return now + } + } + + return { + expr: expr, + match: match, + name: name, + remaining: remaining + }; + }; + /** + * Consume all the leading whitespace + * @param {string} remaining The text to consume + * @returns The text with the leading whitespace removed + */ + + + var consumeWhitespace = function consumeWhitespace(remaining) { + var match = remaining.match(/^\s+/); + + if (match) { + var consumed = match[0]; + remaining = remaining.substring(consumed.length); + } + + return remaining; + }; + /** + * Parse the string and store the parsed representation in the Selector. + * @param {string} selector The selector string + * @returns `true` if the selector was successfully parsed, `false` otherwise + */ + + + var parse = function parse(selector) { + var self = this; + var remaining = self.inputText = selector; + var currentQuery = self[0] = newQuery(); + self.length = 1; + remaining = consumeWhitespace(remaining); // get rid of leading whitespace + + for (;;) { + var exprInfo = consumeExpr(remaining); + + if (exprInfo.expr == null) { + warn('The selector `' + selector + '`is invalid'); + return false; + } else { + var args = exprInfo.match.slice(1); // let the token populate the selector object in currentQuery + + var ret = exprInfo.expr.populate(self, currentQuery, args); + + if (ret === false) { + return false; // exit if population failed + } else if (ret != null) { + currentQuery = ret; // change the current query to be filled if the expr specifies + } + } + + remaining = exprInfo.remaining; // we're done when there's nothing left to parse + + if (remaining.match(/^\s*$/)) { + break; + } + } + + var lastQ = self[self.length - 1]; + + if (self.currentSubject != null) { + lastQ.subject = self.currentSubject; + } + + lastQ.edgeCount = self.edgeCount; + lastQ.compoundCount = self.compoundCount; + + for (var i = 0; i < self.length; i++) { + var q = self[i]; // in future, this could potentially be allowed if there were operator precedence and detection of invalid combinations + + if (q.compoundCount > 0 && q.edgeCount > 0) { + warn('The selector `' + selector + '` is invalid because it uses both a compound selector and an edge selector'); + return false; + } + + if (q.edgeCount > 1) { + warn('The selector `' + selector + '` is invalid because it uses multiple edge selectors'); + return false; + } else if (q.edgeCount === 1) { + warn('The selector `' + selector + '` 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 true; // success + }; + /** + * Get the selector represented as a string. This value uses default formatting, + * so things like spacing may differ from the input text passed to the constructor. + * @returns {string} The selector string + */ + + + var toString = function toString() { + if (this.toStringCache != null) { + return this.toStringCache; + } + + var clean = function clean(obj) { + if (obj == null) { + return ''; + } else { + return obj; + } + }; + + var cleanVal = function cleanVal(val) { + if (string(val)) { + return '"' + val + '"'; + } else { + return clean(val); + } + }; + + var space = function space(val) { + return ' ' + val + ' '; + }; + + var checkToString = function checkToString(check, subject) { + var type = check.type, + value = check.value; + + switch (type) { + case Type.GROUP: + { + var group = clean(value); + return group.substring(0, group.length - 1); + } + + case Type.DATA_COMPARE: + { + var field = check.field, + operator = check.operator; + return '[' + field + space(clean(operator)) + cleanVal(value) + ']'; + } + + case Type.DATA_BOOL: + { + var _operator = check.operator, + _field = check.field; + return '[' + clean(_operator) + _field + ']'; + } + + case Type.DATA_EXIST: + { + var _field2 = check.field; + return '[' + _field2 + ']'; + } + + case Type.META_COMPARE: + { + var _operator2 = check.operator, + _field3 = check.field; + return '[[' + _field3 + space(clean(_operator2)) + cleanVal(value) + ']]'; + } + + case Type.STATE: + { + return value; + } + + case Type.ID: + { + return '#' + value; + } + + case Type.CLASS: + { + return '.' + value; + } + + case Type.PARENT: + case Type.CHILD: + { + return queryToString(check.parent, subject) + space('>') + queryToString(check.child, subject); + } + + case Type.ANCESTOR: + case Type.DESCENDANT: + { + return queryToString(check.ancestor, subject) + ' ' + queryToString(check.descendant, subject); + } + + case Type.COMPOUND_SPLIT: + { + var lhs = queryToString(check.left, subject); + var sub = queryToString(check.subject, subject); + var rhs = queryToString(check.right, subject); + return lhs + (lhs.length > 0 ? ' ' : '') + sub + rhs; + } + + case Type.TRUE: + { + return ''; + } + } + }; + + var queryToString = function queryToString(query, subject) { + return query.checks.reduce(function (str, chk, i) { + return str + (subject === query && i === 0 ? '$' : '') + checkToString(chk, subject); + }, ''); + }; + + var str = ''; + + for (var i = 0; i < this.length; i++) { + var query = this[i]; + str += queryToString(query, query.subject); + + if (this.length > 1 && i < this.length - 1) { + str += ', '; + } + } + + this.toStringCache = str; + return str; + }; + var parse$1 = { + parse: parse, + toString: toString + }; + + var valCmp = function valCmp(fieldVal, operator, value) { + var matches; + var isFieldStr = string(fieldVal); + var isFieldNum = number$1(fieldVal); + var isValStr = string(value); + var fieldStr, valStr; + var caseInsensitive = false; + var notExpr = false; + var isIneqCmp = false; + + if (operator.indexOf('!') >= 0) { + operator = operator.replace('!', ''); + notExpr = true; + } + + if (operator.indexOf('@') >= 0) { + operator = operator.replace('@', ''); + caseInsensitive = true; + } + + if (isFieldStr || isValStr || caseInsensitive) { + fieldStr = !isFieldStr && !isFieldNum ? '' : '' + fieldVal; + valStr = '' + value; + } // if we're doing a case insensitive comparison, then we're using a STRING comparison + // even if we're comparing numbers + + + if (caseInsensitive) { + fieldVal = fieldStr = fieldStr.toLowerCase(); + value = valStr = valStr.toLowerCase(); + } + + switch (operator) { + case '*=': + matches = fieldStr.indexOf(valStr) >= 0; + break; + + case '$=': + matches = fieldStr.indexOf(valStr, fieldStr.length - valStr.length) >= 0; + break; + + case '^=': + matches = fieldStr.indexOf(valStr) === 0; + break; + + case '=': + matches = fieldVal === value; + break; + + case '>': + isIneqCmp = true; + matches = fieldVal > value; + break; + + case '>=': + isIneqCmp = true; + matches = fieldVal >= value; + break; + + case '<': + isIneqCmp = true; + matches = fieldVal < value; + break; + + case '<=': + isIneqCmp = true; + matches = fieldVal <= value; + break; + + default: + matches = false; + break; + } // apply the not op, but null vals for inequalities should always stay non-matching + + + if (notExpr && (fieldVal != null || !isIneqCmp)) { + matches = !matches; + } + + return matches; + }; + var boolCmp = function boolCmp(fieldVal, operator) { + switch (operator) { + case '?': + return fieldVal ? true : false; + + case '!': + return fieldVal ? false : true; + + case '^': + return fieldVal === undefined; + } + }; + var existCmp = function existCmp(fieldVal) { + return fieldVal !== undefined; + }; + var data$1 = function data(ele, field) { + return ele.data(field); + }; + var meta = function meta(ele, field) { + return ele[field](); + }; + + /** A lookup of `match(check, ele)` functions by `Type` int */ + + var match = []; + /** + * Returns whether the query matches for the element + * @param query The `{ type, value, ... }` query object + * @param ele The element to compare against + */ + + var matches$1 = function matches(query, ele) { + return query.checks.every(function (chk) { + return match[chk.type](chk, ele); + }); + }; + + match[Type.GROUP] = function (check, ele) { + var group = check.value; + return group === '*' || group === ele.group(); + }; + + match[Type.STATE] = function (check, ele) { + var stateSelector = check.value; + return stateSelectorMatches(stateSelector, ele); + }; + + match[Type.ID] = function (check, ele) { + var id = check.value; + return ele.id() === id; + }; + + match[Type.CLASS] = function (check, ele) { + var cls = check.value; + return ele.hasClass(cls); + }; + + match[Type.META_COMPARE] = function (check, ele) { + var field = check.field, + operator = check.operator, + value = check.value; + return valCmp(meta(ele, field), operator, value); + }; + + match[Type.DATA_COMPARE] = function (check, ele) { + var field = check.field, + operator = check.operator, + value = check.value; + return valCmp(data$1(ele, field), operator, value); + }; + + match[Type.DATA_BOOL] = function (check, ele) { + var field = check.field, + operator = check.operator; + return boolCmp(data$1(ele, field), operator); + }; + + match[Type.DATA_EXIST] = function (check, ele) { + var field = check.field; + check.operator; + return existCmp(data$1(ele, field)); + }; + + match[Type.UNDIRECTED_EDGE] = function (check, ele) { + var qA = check.nodes[0]; + var qB = check.nodes[1]; + var src = ele.source(); + var tgt = ele.target(); + return matches$1(qA, src) && matches$1(qB, tgt) || matches$1(qB, src) && matches$1(qA, tgt); + }; + + match[Type.NODE_NEIGHBOR] = function (check, ele) { + return matches$1(check.node, ele) && ele.neighborhood().some(function (n) { + return n.isNode() && matches$1(check.neighbor, n); + }); + }; + + match[Type.DIRECTED_EDGE] = function (check, ele) { + return matches$1(check.source, ele.source()) && matches$1(check.target, ele.target()); + }; + + match[Type.NODE_SOURCE] = function (check, ele) { + return matches$1(check.source, ele) && ele.outgoers().some(function (n) { + return n.isNode() && matches$1(check.target, n); + }); + }; + + match[Type.NODE_TARGET] = function (check, ele) { + return matches$1(check.target, ele) && ele.incomers().some(function (n) { + return n.isNode() && matches$1(check.source, n); + }); + }; + + match[Type.CHILD] = function (check, ele) { + return matches$1(check.child, ele) && matches$1(check.parent, ele.parent()); + }; + + match[Type.PARENT] = function (check, ele) { + return matches$1(check.parent, ele) && ele.children().some(function (c) { + return matches$1(check.child, c); + }); + }; + + match[Type.DESCENDANT] = function (check, ele) { + return matches$1(check.descendant, ele) && ele.ancestors().some(function (a) { + return matches$1(check.ancestor, a); + }); + }; + + match[Type.ANCESTOR] = function (check, ele) { + return matches$1(check.ancestor, ele) && ele.descendants().some(function (d) { + return matches$1(check.descendant, d); + }); + }; + + match[Type.COMPOUND_SPLIT] = function (check, ele) { + return matches$1(check.subject, ele) && matches$1(check.left, ele) && matches$1(check.right, ele); + }; + + match[Type.TRUE] = function () { + return true; + }; + + match[Type.COLLECTION] = function (check, ele) { + var collection = check.value; + return collection.has(ele); + }; + + match[Type.FILTER] = function (check, ele) { + var filter = check.value; + return filter(ele); + }; + + var filter = function filter(collection) { + var self = this; // for 1 id #foo queries, just get the element + + if (self.length === 1 && self[0].checks.length === 1 && self[0].checks[0].type === Type.ID) { + return collection.getElementById(self[0].checks[0].value).collection(); + } + + var selectorFunction = function selectorFunction(element) { + for (var j = 0; j < self.length; j++) { + var query = self[j]; + + if (matches$1(query, element)) { + return true; + } + } + + return false; + }; + + if (self.text() == null) { + selectorFunction = function selectorFunction() { + return true; + }; + } + + return collection.filter(selectorFunction); + }; // filter + // does selector match a single element? + + + var matches = function matches(ele) { + var self = this; + + for (var j = 0; j < self.length; j++) { + var query = self[j]; + + if (matches$1(query, ele)) { + return true; + } + } + + return false; + }; // matches + + + var matching = { + matches: matches, + filter: filter + }; + + var Selector = function Selector(selector) { + this.inputText = selector; + this.currentSubject = null; + this.compoundCount = 0; + this.edgeCount = 0; + this.length = 0; + + if (selector == null || string(selector) && selector.match(/^\s*$/)) ; else if (elementOrCollection(selector)) { + this.addQuery({ + checks: [{ + type: Type.COLLECTION, + value: selector.collection() + }] + }); + } else if (fn$6(selector)) { + this.addQuery({ + checks: [{ + type: Type.FILTER, + value: selector + }] + }); + } else if (string(selector)) { + if (!this.parse(selector)) { + this.invalid = true; + } + } else { + error('A selector must be created from a string; found '); + } + }; + + var selfn = Selector.prototype; + [parse$1, matching].forEach(function (p) { + return extend(selfn, p); + }); + + selfn.text = function () { + return this.inputText; + }; + + selfn.size = function () { + return this.length; + }; + + selfn.eq = function (i) { + return this[i]; + }; + + selfn.sameText = function (otherSel) { + return !this.invalid && !otherSel.invalid && this.text() === otherSel.text(); + }; + + selfn.addQuery = function (q) { + this[this.length++] = q; + }; + + selfn.selector = selfn.toString; + + var elesfn$g = { + allAre: function allAre(selector) { + var selObj = new Selector(selector); + return this.every(function (ele) { + return selObj.matches(ele); + }); + }, + is: function is(selector) { + var selObj = new Selector(selector); + return this.some(function (ele) { + return selObj.matches(ele); + }); + }, + some: function some(fn, thisArg) { + for (var i = 0; i < this.length; i++) { + var ret = !thisArg ? fn(this[i], i, this) : fn.apply(thisArg, [this[i], i, this]); + + if (ret) { + return true; + } + } + + return false; + }, + every: function every(fn, thisArg) { + for (var i = 0; i < this.length; i++) { + var ret = !thisArg ? fn(this[i], i, this) : fn.apply(thisArg, [this[i], i, this]); + + if (!ret) { + return false; + } + } + + return true; + }, + same: function same(collection) { + // cheap collection ref check + if (this === collection) { + return true; + } + + collection = this.cy().collection(collection); + var thisLength = this.length; + var collectionLength = collection.length; // cheap length check + + if (thisLength !== collectionLength) { + return false; + } // cheap element ref check + + + if (thisLength === 1) { + return this[0] === collection[0]; + } + + return this.every(function (ele) { + return collection.hasElementWithId(ele.id()); + }); + }, + anySame: function anySame(collection) { + collection = this.cy().collection(collection); + return this.some(function (ele) { + return collection.hasElementWithId(ele.id()); + }); + }, + allAreNeighbors: function allAreNeighbors(collection) { + collection = this.cy().collection(collection); + var nhood = this.neighborhood(); + return collection.every(function (ele) { + return nhood.hasElementWithId(ele.id()); + }); + }, + contains: function contains(collection) { + collection = this.cy().collection(collection); + var self = this; + return collection.every(function (ele) { + return self.hasElementWithId(ele.id()); + }); + } + }; + elesfn$g.allAreNeighbours = elesfn$g.allAreNeighbors; + elesfn$g.has = elesfn$g.contains; + elesfn$g.equal = elesfn$g.equals = elesfn$g.same; + + var cache = function cache(fn, name) { + return function traversalCache(arg1, arg2, arg3, arg4) { + var selectorOrEles = arg1; + var eles = this; + var key; + + if (selectorOrEles == null) { + key = ''; + } else if (elementOrCollection(selectorOrEles) && selectorOrEles.length === 1) { + key = selectorOrEles.id(); + } + + if (eles.length === 1 && key) { + var _p = eles[0]._private; + var tch = _p.traversalCache = _p.traversalCache || {}; + var ch = tch[name] = tch[name] || []; + var hash = hashString(key); + var cacheHit = ch[hash]; + + if (cacheHit) { + return cacheHit; + } else { + return ch[hash] = fn.call(eles, arg1, arg2, arg3, arg4); + } + } else { + return fn.call(eles, arg1, arg2, arg3, arg4); + } + }; + }; + + var elesfn$f = { + parent: function parent(selector) { + var parents = []; // optimisation for single ele call + + if (this.length === 1) { + var parent = this[0]._private.parent; + + if (parent) { + return parent; + } + } + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var _parent = ele._private.parent; + + if (_parent) { + parents.push(_parent); + } + } + + return this.spawn(parents, true).filter(selector); + }, + parents: function parents(selector) { + var parents = []; + var eles = this.parent(); + + while (eles.nonempty()) { + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + parents.push(ele); + } + + eles = eles.parent(); + } + + return this.spawn(parents, true).filter(selector); + }, + commonAncestors: function commonAncestors(selector) { + var ancestors; + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var parents = ele.parents(); + ancestors = ancestors || parents; + ancestors = ancestors.intersect(parents); // current list must be common with current ele parents set + } + + return ancestors.filter(selector); + }, + orphans: function orphans(selector) { + return this.stdFilter(function (ele) { + return ele.isOrphan(); + }).filter(selector); + }, + nonorphans: function nonorphans(selector) { + return this.stdFilter(function (ele) { + return ele.isChild(); + }).filter(selector); + }, + children: cache(function (selector) { + var children = []; + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var eleChildren = ele._private.children; + + for (var j = 0; j < eleChildren.length; j++) { + children.push(eleChildren[j]); + } + } + + return this.spawn(children, true).filter(selector); + }, 'children'), + siblings: function siblings(selector) { + return this.parent().children().not(this).filter(selector); + }, + isParent: function isParent() { + var ele = this[0]; + + if (ele) { + return ele.isNode() && ele._private.children.length !== 0; + } + }, + isChildless: function isChildless() { + var ele = this[0]; + + if (ele) { + return ele.isNode() && ele._private.children.length === 0; + } + }, + isChild: function isChild() { + var ele = this[0]; + + if (ele) { + return ele.isNode() && ele._private.parent != null; + } + }, + isOrphan: function isOrphan() { + var ele = this[0]; + + if (ele) { + return ele.isNode() && ele._private.parent == null; + } + }, + descendants: function descendants(selector) { + var elements = []; + + function add(eles) { + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + elements.push(ele); + + if (ele.children().nonempty()) { + add(ele.children()); + } + } + } + + add(this.children()); + return this.spawn(elements, true).filter(selector); + } + }; + + function forEachCompound(eles, fn, includeSelf, recursiveStep) { + var q = []; + var did = new Set$1(); + var cy = eles.cy(); + var hasCompounds = cy.hasCompoundNodes(); + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + + if (includeSelf) { + q.push(ele); + } else if (hasCompounds) { + recursiveStep(q, did, ele); + } + } + + while (q.length > 0) { + var _ele = q.shift(); + + fn(_ele); + did.add(_ele.id()); + + if (hasCompounds) { + recursiveStep(q, did, _ele); + } + } + + return eles; + } + + function addChildren(q, did, ele) { + if (ele.isParent()) { + var children = ele._private.children; + + for (var i = 0; i < children.length; i++) { + var child = children[i]; + + if (!did.has(child.id())) { + q.push(child); + } + } + } + } // very efficient version of eles.add( eles.descendants() ).forEach() + // for internal use + + + elesfn$f.forEachDown = function (fn) { + var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + return forEachCompound(this, fn, includeSelf, addChildren); + }; + + function addParent(q, did, ele) { + if (ele.isChild()) { + var parent = ele._private.parent; + + if (!did.has(parent.id())) { + q.push(parent); + } + } + } + + elesfn$f.forEachUp = function (fn) { + var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + return forEachCompound(this, fn, includeSelf, addParent); + }; + + function addParentAndChildren(q, did, ele) { + addParent(q, did, ele); + addChildren(q, did, ele); + } + + elesfn$f.forEachUpAndDown = function (fn) { + var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + return forEachCompound(this, fn, includeSelf, addParentAndChildren); + }; // aliases + + + elesfn$f.ancestors = elesfn$f.parents; + + var fn$5, elesfn$e; + fn$5 = elesfn$e = { + data: define.data({ + field: 'data', + bindingEvent: 'data', + allowBinding: true, + allowSetting: true, + settingEvent: 'data', + settingTriggersEvent: true, + triggerFnName: 'trigger', + allowGetting: true, + immutableKeys: { + 'id': true, + 'source': true, + 'target': true, + 'parent': true + }, + updateStyle: true + }), + removeData: define.removeData({ + field: 'data', + event: 'data', + triggerFnName: 'trigger', + triggerEvent: true, + immutableKeys: { + 'id': true, + 'source': true, + 'target': true, + 'parent': true + }, + updateStyle: true + }), + scratch: define.data({ + field: 'scratch', + bindingEvent: 'scratch', + allowBinding: true, + allowSetting: true, + settingEvent: 'scratch', + settingTriggersEvent: true, + triggerFnName: 'trigger', + allowGetting: true, + updateStyle: true + }), + removeScratch: define.removeData({ + field: 'scratch', + event: 'scratch', + triggerFnName: 'trigger', + triggerEvent: true, + updateStyle: true + }), + rscratch: define.data({ + field: 'rscratch', + allowBinding: false, + allowSetting: true, + settingTriggersEvent: false, + allowGetting: true + }), + removeRscratch: define.removeData({ + field: 'rscratch', + triggerEvent: false + }), + id: function id() { + var ele = this[0]; + + if (ele) { + return ele._private.data.id; + } + } + }; // aliases + + fn$5.attr = fn$5.data; + fn$5.removeAttr = fn$5.removeData; + var data = elesfn$e; + + var elesfn$d = {}; + + function defineDegreeFunction(callback) { + return function (includeLoops) { + var self = this; + + if (includeLoops === undefined) { + includeLoops = true; + } + + if (self.length === 0) { + return; + } + + if (self.isNode() && !self.removed()) { + var degree = 0; + var node = self[0]; + var connectedEdges = node._private.edges; + + for (var i = 0; i < connectedEdges.length; i++) { + var edge = connectedEdges[i]; + + if (!includeLoops && edge.isLoop()) { + continue; + } + + degree += callback(node, edge); + } + + return degree; + } else { + return; + } + }; + } + + extend(elesfn$d, { + degree: defineDegreeFunction(function (node, edge) { + if (edge.source().same(edge.target())) { + return 2; + } else { + return 1; + } + }), + indegree: defineDegreeFunction(function (node, edge) { + if (edge.target().same(node)) { + return 1; + } else { + return 0; + } + }), + outdegree: defineDegreeFunction(function (node, edge) { + if (edge.source().same(node)) { + return 1; + } else { + return 0; + } + }) + }); + + function defineDegreeBoundsFunction(degreeFn, callback) { + return function (includeLoops) { + var ret; + var nodes = this.nodes(); + + for (var i = 0; i < nodes.length; i++) { + var ele = nodes[i]; + var degree = ele[degreeFn](includeLoops); + + if (degree !== undefined && (ret === undefined || callback(degree, ret))) { + ret = degree; + } + } + + return ret; + }; + } + + extend(elesfn$d, { + minDegree: defineDegreeBoundsFunction('degree', function (degree, min) { + return degree < min; + }), + maxDegree: defineDegreeBoundsFunction('degree', function (degree, max) { + return degree > max; + }), + minIndegree: defineDegreeBoundsFunction('indegree', function (degree, min) { + return degree < min; + }), + maxIndegree: defineDegreeBoundsFunction('indegree', function (degree, max) { + return degree > max; + }), + minOutdegree: defineDegreeBoundsFunction('outdegree', function (degree, min) { + return degree < min; + }), + maxOutdegree: defineDegreeBoundsFunction('outdegree', function (degree, max) { + return degree > max; + }) + }); + extend(elesfn$d, { + totalDegree: function totalDegree(includeLoops) { + var total = 0; + var nodes = this.nodes(); + + for (var i = 0; i < nodes.length; i++) { + total += nodes[i].degree(includeLoops); + } + + return total; + } + }); + + var fn$4, elesfn$c; + + var beforePositionSet = function beforePositionSet(eles, newPos, silent) { + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + + if (!ele.locked()) { + var oldPos = ele._private.position; + var delta = { + x: newPos.x != null ? newPos.x - oldPos.x : 0, + y: newPos.y != null ? newPos.y - oldPos.y : 0 + }; + + if (ele.isParent() && !(delta.x === 0 && delta.y === 0)) { + ele.children().shift(delta, silent); + } + + ele.dirtyBoundingBoxCache(); + } + } + }; + + var positionDef = { + field: 'position', + bindingEvent: 'position', + allowBinding: true, + allowSetting: true, + settingEvent: 'position', + settingTriggersEvent: true, + triggerFnName: 'emitAndNotify', + allowGetting: true, + validKeys: ['x', 'y'], + beforeGet: function beforeGet(ele) { + ele.updateCompoundBounds(); + }, + beforeSet: function beforeSet(eles, newPos) { + beforePositionSet(eles, newPos, false); + }, + onSet: function onSet(eles) { + eles.dirtyCompoundBoundsCache(); + }, + canSet: function canSet(ele) { + return !ele.locked(); + } + }; + fn$4 = elesfn$c = { + position: define.data(positionDef), + // position but no notification to renderer + silentPosition: define.data(extend({}, positionDef, { + allowBinding: false, + allowSetting: true, + settingTriggersEvent: false, + allowGetting: false, + beforeSet: function beforeSet(eles, newPos) { + beforePositionSet(eles, newPos, true); + }, + onSet: function onSet(eles) { + eles.dirtyCompoundBoundsCache(); + } + })), + positions: function positions(pos, silent) { + if (plainObject(pos)) { + if (silent) { + this.silentPosition(pos); + } else { + this.position(pos); + } + } else if (fn$6(pos)) { + var _fn = pos; + var cy = this.cy(); + cy.startBatch(); + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + + var _pos = void 0; + + if (_pos = _fn(ele, i)) { + if (silent) { + ele.silentPosition(_pos); + } else { + ele.position(_pos); + } + } + } + + cy.endBatch(); + } + + return this; // chaining + }, + silentPositions: function silentPositions(pos) { + return this.positions(pos, true); + }, + shift: function shift(dim, val, silent) { + var delta; + + if (plainObject(dim)) { + delta = { + x: number$1(dim.x) ? dim.x : 0, + y: number$1(dim.y) ? dim.y : 0 + }; + silent = val; + } else if (string(dim) && number$1(val)) { + delta = { + x: 0, + y: 0 + }; + delta[dim] = val; + } + + if (delta != null) { + var cy = this.cy(); + cy.startBatch(); + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; // exclude any node that is a descendant of the calling collection + + if (cy.hasCompoundNodes() && ele.isChild() && ele.ancestors().anySame(this)) { + continue; + } + + var pos = ele.position(); + var newPos = { + x: pos.x + delta.x, + y: pos.y + delta.y + }; + + if (silent) { + ele.silentPosition(newPos); + } else { + ele.position(newPos); + } + } + + cy.endBatch(); + } + + return this; + }, + silentShift: function silentShift(dim, val) { + if (plainObject(dim)) { + this.shift(dim, true); + } else if (string(dim) && number$1(val)) { + this.shift(dim, val, true); + } + + return this; + }, + // get/set the rendered (i.e. on screen) positon of the element + renderedPosition: function renderedPosition(dim, val) { + var ele = this[0]; + var cy = this.cy(); + var zoom = cy.zoom(); + var pan = cy.pan(); + var rpos = plainObject(dim) ? dim : undefined; + var setting = rpos !== undefined || val !== undefined && string(dim); + + if (ele && ele.isNode()) { + // must have an element and must be a node to return position + if (setting) { + for (var i = 0; i < this.length; i++) { + var _ele = this[i]; + + if (val !== undefined) { + // set one dimension + _ele.position(dim, (val - pan[dim]) / zoom); + } else if (rpos !== undefined) { + // set whole position + _ele.position(renderedToModelPosition(rpos, zoom, pan)); + } + } + } else { + // getting + var pos = ele.position(); + rpos = modelToRenderedPosition(pos, zoom, pan); + + if (dim === undefined) { + // then return the whole rendered position + return rpos; + } else { + // then return the specified dimension + return rpos[dim]; + } + } + } else if (!setting) { + return undefined; // for empty collection case + } + + return this; // chaining + }, + // get/set the position relative to the parent + relativePosition: function relativePosition(dim, val) { + var ele = this[0]; + var cy = this.cy(); + var ppos = plainObject(dim) ? dim : undefined; + var setting = ppos !== undefined || val !== undefined && string(dim); + var hasCompoundNodes = cy.hasCompoundNodes(); + + if (ele && ele.isNode()) { + // must have an element and must be a node to return position + if (setting) { + for (var i = 0; i < this.length; i++) { + var _ele2 = this[i]; + var parent = hasCompoundNodes ? _ele2.parent() : null; + var hasParent = parent && parent.length > 0; + var relativeToParent = hasParent; + + if (hasParent) { + parent = parent[0]; + } + + var origin = relativeToParent ? parent.position() : { + x: 0, + y: 0 + }; + + if (val !== undefined) { + // set one dimension + _ele2.position(dim, val + origin[dim]); + } else if (ppos !== undefined) { + // set whole position + _ele2.position({ + x: ppos.x + origin.x, + y: ppos.y + origin.y + }); + } + } + } else { + // getting + var pos = ele.position(); + + var _parent = hasCompoundNodes ? ele.parent() : null; + + var _hasParent = _parent && _parent.length > 0; + + var _relativeToParent = _hasParent; + + if (_hasParent) { + _parent = _parent[0]; + } + + var _origin = _relativeToParent ? _parent.position() : { + x: 0, + y: 0 + }; + + ppos = { + x: pos.x - _origin.x, + y: pos.y - _origin.y + }; + + if (dim === undefined) { + // then return the whole rendered position + return ppos; + } else { + // then return the specified dimension + return ppos[dim]; + } + } + } else if (!setting) { + return undefined; // for empty collection case + } + + return this; // chaining + } + }; // aliases + + fn$4.modelPosition = fn$4.point = fn$4.position; + fn$4.modelPositions = fn$4.points = fn$4.positions; + fn$4.renderedPoint = fn$4.renderedPosition; + fn$4.relativePoint = fn$4.relativePosition; + var position = elesfn$c; + + var fn$3, elesfn$b; + fn$3 = elesfn$b = {}; + + elesfn$b.renderedBoundingBox = function (options) { + var bb = this.boundingBox(options); + var cy = this.cy(); + var zoom = cy.zoom(); + var pan = cy.pan(); + var x1 = bb.x1 * zoom + pan.x; + var x2 = bb.x2 * zoom + pan.x; + var y1 = bb.y1 * zoom + pan.y; + var y2 = bb.y2 * zoom + pan.y; + return { + x1: x1, + x2: x2, + y1: y1, + y2: y2, + w: x2 - x1, + h: y2 - y1 + }; + }; + + elesfn$b.dirtyCompoundBoundsCache = function () { + var silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var cy = this.cy(); + + if (!cy.styleEnabled() || !cy.hasCompoundNodes()) { + return this; + } + + this.forEachUp(function (ele) { + if (ele.isParent()) { + var _p = ele._private; + _p.compoundBoundsClean = false; + _p.bbCache = null; + + if (!silent) { + ele.emitAndNotify('bounds'); + } + } + }); + return this; + }; + + elesfn$b.updateCompoundBounds = function () { + var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var cy = this.cy(); // not possible to do on non-compound graphs or with the style disabled + + if (!cy.styleEnabled() || !cy.hasCompoundNodes()) { + return this; + } // save cycles when batching -- but bounds will be stale (or not exist yet) + + + if (!force && cy.batching()) { + return this; + } + + function update(parent) { + if (!parent.isParent()) { + return; + } + + var _p = parent._private; + var children = parent.children(); + var includeLabels = parent.pstyle('compound-sizing-wrt-labels').value === 'include'; + var min = { + width: { + val: parent.pstyle('min-width').pfValue, + left: parent.pstyle('min-width-bias-left'), + right: parent.pstyle('min-width-bias-right') + }, + height: { + val: parent.pstyle('min-height').pfValue, + top: parent.pstyle('min-height-bias-top'), + bottom: parent.pstyle('min-height-bias-bottom') + } + }; + var bb = children.boundingBox({ + includeLabels: includeLabels, + includeOverlays: false, + // updating the compound bounds happens outside of the regular + // cache cycle (i.e. before fired events) + useCache: false + }); + var pos = _p.position; // if children take up zero area then keep position and fall back on stylesheet w/h + + if (bb.w === 0 || bb.h === 0) { + bb = { + w: parent.pstyle('width').pfValue, + h: parent.pstyle('height').pfValue + }; + bb.x1 = pos.x - bb.w / 2; + bb.x2 = pos.x + bb.w / 2; + bb.y1 = pos.y - bb.h / 2; + bb.y2 = pos.y + bb.h / 2; + } + + function computeBiasValues(propDiff, propBias, propBiasComplement) { + var biasDiff = 0; + var biasComplementDiff = 0; + var biasTotal = propBias + propBiasComplement; + + if (propDiff > 0 && biasTotal > 0) { + biasDiff = propBias / biasTotal * propDiff; + biasComplementDiff = propBiasComplement / biasTotal * propDiff; + } + + return { + biasDiff: biasDiff, + biasComplementDiff: biasComplementDiff + }; + } + + function computePaddingValues(width, height, paddingObject, relativeTo) { + // Assuming percentage is number from 0 to 1 + if (paddingObject.units === '%') { + switch (relativeTo) { + case 'width': + return width > 0 ? paddingObject.pfValue * width : 0; + + case 'height': + return height > 0 ? paddingObject.pfValue * height : 0; + + case 'average': + return width > 0 && height > 0 ? paddingObject.pfValue * (width + height) / 2 : 0; + + case 'min': + return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * height : paddingObject.pfValue * width : 0; + + case 'max': + return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * width : paddingObject.pfValue * height : 0; + + default: + return 0; + } + } else if (paddingObject.units === 'px') { + return paddingObject.pfValue; + } else { + return 0; + } + } + + var leftVal = min.width.left.value; + + if (min.width.left.units === 'px' && min.width.val > 0) { + leftVal = leftVal * 100 / min.width.val; + } + + var rightVal = min.width.right.value; + + if (min.width.right.units === 'px' && min.width.val > 0) { + rightVal = rightVal * 100 / min.width.val; + } + + var topVal = min.height.top.value; + + if (min.height.top.units === 'px' && min.height.val > 0) { + topVal = topVal * 100 / min.height.val; + } + + var bottomVal = min.height.bottom.value; + + if (min.height.bottom.units === 'px' && min.height.val > 0) { + bottomVal = bottomVal * 100 / min.height.val; + } + + var widthBiasDiffs = computeBiasValues(min.width.val - bb.w, leftVal, rightVal); + var diffLeft = widthBiasDiffs.biasDiff; + var diffRight = widthBiasDiffs.biasComplementDiff; + var heightBiasDiffs = computeBiasValues(min.height.val - bb.h, topVal, bottomVal); + var diffTop = heightBiasDiffs.biasDiff; + var diffBottom = heightBiasDiffs.biasComplementDiff; + _p.autoPadding = computePaddingValues(bb.w, bb.h, parent.pstyle('padding'), parent.pstyle('padding-relative-to').value); + _p.autoWidth = Math.max(bb.w, min.width.val); + pos.x = (-diffLeft + bb.x1 + bb.x2 + diffRight) / 2; + _p.autoHeight = Math.max(bb.h, min.height.val); + pos.y = (-diffTop + bb.y1 + bb.y2 + diffBottom) / 2; + } + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var _p = ele._private; + + if (!_p.compoundBoundsClean || force) { + update(ele); + + if (!cy.batching()) { + _p.compoundBoundsClean = true; + } + } + } + + return this; + }; + + var noninf = function noninf(x) { + if (x === Infinity || x === -Infinity) { + return 0; + } + + return x; + }; + + var updateBounds = function updateBounds(b, x1, y1, x2, y2) { + // don't update with zero area boxes + if (x2 - x1 === 0 || y2 - y1 === 0) { + return; + } // don't update with null dim + + + if (x1 == null || y1 == null || x2 == null || y2 == null) { + return; + } + + b.x1 = x1 < b.x1 ? x1 : b.x1; + b.x2 = x2 > b.x2 ? x2 : b.x2; + b.y1 = y1 < b.y1 ? y1 : b.y1; + b.y2 = y2 > b.y2 ? y2 : b.y2; + b.w = b.x2 - b.x1; + b.h = b.y2 - b.y1; + }; + + var updateBoundsFromBox = function updateBoundsFromBox(b, b2) { + if (b2 == null) { + return b; + } + + return updateBounds(b, b2.x1, b2.y1, b2.x2, b2.y2); + }; + + var prefixedProperty = function prefixedProperty(obj, field, prefix) { + return getPrefixedProperty(obj, field, prefix); + }; + + var updateBoundsFromArrow = function updateBoundsFromArrow(bounds, ele, prefix) { + if (ele.cy().headless()) { + return; + } + + var _p = ele._private; + var rstyle = _p.rstyle; + var halfArW = rstyle.arrowWidth / 2; + var arrowType = ele.pstyle(prefix + '-arrow-shape').value; + var x; + var y; + + if (arrowType !== 'none') { + if (prefix === 'source') { + x = rstyle.srcX; + y = rstyle.srcY; + } else if (prefix === 'target') { + x = rstyle.tgtX; + y = rstyle.tgtY; + } else { + x = rstyle.midX; + y = rstyle.midY; + } // always store the individual arrow bounds + + + var bbs = _p.arrowBounds = _p.arrowBounds || {}; + var bb = bbs[prefix] = bbs[prefix] || {}; + bb.x1 = x - halfArW; + bb.y1 = y - halfArW; + bb.x2 = x + halfArW; + bb.y2 = y + halfArW; + bb.w = bb.x2 - bb.x1; + bb.h = bb.y2 - bb.y1; + expandBoundingBox(bb, 1); + updateBounds(bounds, bb.x1, bb.y1, bb.x2, bb.y2); + } + }; + + var updateBoundsFromLabel = function updateBoundsFromLabel(bounds, ele, prefix) { + if (ele.cy().headless()) { + return; + } + + var prefixDash; + + if (prefix) { + prefixDash = prefix + '-'; + } else { + prefixDash = ''; + } + + var _p = ele._private; + var rstyle = _p.rstyle; + var label = ele.pstyle(prefixDash + 'label').strValue; + + if (label) { + var halign = ele.pstyle('text-halign'); + var valign = ele.pstyle('text-valign'); + var labelWidth = prefixedProperty(rstyle, 'labelWidth', prefix); + var labelHeight = prefixedProperty(rstyle, 'labelHeight', prefix); + var labelX = prefixedProperty(rstyle, 'labelX', prefix); + var labelY = prefixedProperty(rstyle, 'labelY', prefix); + var marginX = ele.pstyle(prefixDash + 'text-margin-x').pfValue; + var marginY = ele.pstyle(prefixDash + 'text-margin-y').pfValue; + var isEdge = ele.isEdge(); + var rotation = ele.pstyle(prefixDash + 'text-rotation'); + var outlineWidth = ele.pstyle('text-outline-width').pfValue; + var borderWidth = ele.pstyle('text-border-width').pfValue; + var halfBorderWidth = borderWidth / 2; + var padding = ele.pstyle('text-background-padding').pfValue; + var marginOfError = 2; // expand to work around browser dimension inaccuracies + + var lh = labelHeight; + var lw = labelWidth; + var lw_2 = lw / 2; + var lh_2 = lh / 2; + var lx1, lx2, ly1, ly2; + + if (isEdge) { + lx1 = labelX - lw_2; + lx2 = labelX + lw_2; + ly1 = labelY - lh_2; + ly2 = labelY + lh_2; + } else { + switch (halign.value) { + case 'left': + lx1 = labelX - lw; + lx2 = labelX; + break; + + case 'center': + lx1 = labelX - lw_2; + lx2 = labelX + lw_2; + break; + + case 'right': + lx1 = labelX; + lx2 = labelX + lw; + break; + } + + switch (valign.value) { + case 'top': + ly1 = labelY - lh; + ly2 = labelY; + break; + + case 'center': + ly1 = labelY - lh_2; + ly2 = labelY + lh_2; + break; + + case 'bottom': + ly1 = labelY; + ly2 = labelY + lh; + break; + } + } // shift by margin and expand by outline and border + + + lx1 += marginX - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError; + lx2 += marginX + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError; + ly1 += marginY - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError; + ly2 += marginY + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError; // always store the unrotated label bounds separately + + var bbPrefix = prefix || 'main'; + var bbs = _p.labelBounds; + var bb = bbs[bbPrefix] = bbs[bbPrefix] || {}; + bb.x1 = lx1; + bb.y1 = ly1; + bb.x2 = lx2; + bb.y2 = ly2; + bb.w = lx2 - lx1; + bb.h = ly2 - ly1; + var isAutorotate = isEdge && rotation.strValue === 'autorotate'; + var isPfValue = rotation.pfValue != null && rotation.pfValue !== 0; + + if (isAutorotate || isPfValue) { + var theta = isAutorotate ? prefixedProperty(_p.rstyle, 'labelAngle', prefix) : rotation.pfValue; + var cos = Math.cos(theta); + var sin = Math.sin(theta); // rotation point (default value for center-center) + + var xo = (lx1 + lx2) / 2; + var yo = (ly1 + ly2) / 2; + + if (!isEdge) { + switch (halign.value) { + case 'left': + xo = lx2; + break; + + case 'right': + xo = lx1; + break; + } + + switch (valign.value) { + case 'top': + yo = ly2; + break; + + case 'bottom': + yo = ly1; + break; + } + } + + var rotate = function rotate(x, y) { + x = x - xo; + y = y - yo; + return { + x: x * cos - y * sin + xo, + y: x * sin + y * cos + yo + }; + }; + + var px1y1 = rotate(lx1, ly1); + var px1y2 = rotate(lx1, ly2); + var px2y1 = rotate(lx2, ly1); + var px2y2 = rotate(lx2, ly2); + lx1 = Math.min(px1y1.x, px1y2.x, px2y1.x, px2y2.x); + lx2 = Math.max(px1y1.x, px1y2.x, px2y1.x, px2y2.x); + ly1 = Math.min(px1y1.y, px1y2.y, px2y1.y, px2y2.y); + ly2 = Math.max(px1y1.y, px1y2.y, px2y1.y, px2y2.y); + } + + var bbPrefixRot = bbPrefix + 'Rot'; + var bbRot = bbs[bbPrefixRot] = bbs[bbPrefixRot] || {}; + bbRot.x1 = lx1; + bbRot.y1 = ly1; + bbRot.x2 = lx2; + bbRot.y2 = ly2; + bbRot.w = lx2 - lx1; + bbRot.h = ly2 - ly1; + updateBounds(bounds, lx1, ly1, lx2, ly2); + updateBounds(_p.labelBounds.all, lx1, ly1, lx2, ly2); + } + + return bounds; + }; // get the bounding box of the elements (in raw model position) + + + var boundingBoxImpl = function boundingBoxImpl(ele, options) { + var cy = ele._private.cy; + var styleEnabled = cy.styleEnabled(); + var headless = cy.headless(); + var bounds = makeBoundingBox(); + var _p = ele._private; + var isNode = ele.isNode(); + var isEdge = ele.isEdge(); + var ex1, ex2, ey1, ey2; // extrema of body / lines + + var x, y; // node pos + + var rstyle = _p.rstyle; + var manualExpansion = isNode && styleEnabled ? ele.pstyle('bounds-expansion').pfValue : [0]; // must use `display` prop only, as reading `compound.width()` causes recursion + // (other factors like width values will be considered later in this function anyway) + + var isDisplayed = function isDisplayed(ele) { + return ele.pstyle('display').value !== 'none'; + }; + + var displayed = !styleEnabled || isDisplayed(ele) // must take into account connected nodes b/c of implicit edge hiding on display:none node + && (!isEdge || isDisplayed(ele.source()) && isDisplayed(ele.target())); + + if (displayed) { + // displayed suffices, since we will find zero area eles anyway + var overlayOpacity = 0; + var overlayPadding = 0; + + if (styleEnabled && options.includeOverlays) { + overlayOpacity = ele.pstyle('overlay-opacity').value; + + if (overlayOpacity !== 0) { + overlayPadding = ele.pstyle('overlay-padding').value; + } + } + + var underlayOpacity = 0; + var underlayPadding = 0; + + if (styleEnabled && options.includeUnderlays) { + underlayOpacity = ele.pstyle('underlay-opacity').value; + + if (underlayOpacity !== 0) { + underlayPadding = ele.pstyle('underlay-padding').value; + } + } + + var padding = Math.max(overlayPadding, underlayPadding); + var w = 0; + var wHalf = 0; + + if (styleEnabled) { + w = ele.pstyle('width').pfValue; + wHalf = w / 2; + } + + if (isNode && options.includeNodes) { + var pos = ele.position(); + x = pos.x; + y = pos.y; + + var _w = ele.outerWidth(); + + var halfW = _w / 2; + var h = ele.outerHeight(); + var halfH = h / 2; // handle node dimensions + ///////////////////////// + + ex1 = x - halfW; + ex2 = x + halfW; + ey1 = y - halfH; + ey2 = y + halfH; + updateBounds(bounds, ex1, ey1, ex2, ey2); + } else if (isEdge && options.includeEdges) { + if (styleEnabled && !headless) { + var curveStyle = ele.pstyle('curve-style').strValue; // handle edge dimensions (rough box estimate) + ////////////////////////////////////////////// + + ex1 = Math.min(rstyle.srcX, rstyle.midX, rstyle.tgtX); + ex2 = Math.max(rstyle.srcX, rstyle.midX, rstyle.tgtX); + ey1 = Math.min(rstyle.srcY, rstyle.midY, rstyle.tgtY); + ey2 = Math.max(rstyle.srcY, rstyle.midY, rstyle.tgtY); // take into account edge width + + ex1 -= wHalf; + ex2 += wHalf; + ey1 -= wHalf; + ey2 += wHalf; + updateBounds(bounds, ex1, ey1, ex2, ey2); // precise edges + //////////////// + + if (curveStyle === 'haystack') { + var hpts = rstyle.haystackPts; + + if (hpts && hpts.length === 2) { + ex1 = hpts[0].x; + ey1 = hpts[0].y; + ex2 = hpts[1].x; + ey2 = hpts[1].y; + + if (ex1 > ex2) { + var temp = ex1; + ex1 = ex2; + ex2 = temp; + } + + if (ey1 > ey2) { + var _temp = ey1; + ey1 = ey2; + ey2 = _temp; + } + + updateBounds(bounds, ex1 - wHalf, ey1 - wHalf, ex2 + wHalf, ey2 + wHalf); + } + } else if (curveStyle === 'bezier' || curveStyle === 'unbundled-bezier' || curveStyle === 'segments' || curveStyle === 'taxi') { + var pts; + + switch (curveStyle) { + case 'bezier': + case 'unbundled-bezier': + pts = rstyle.bezierPts; + break; + + case 'segments': + case 'taxi': + pts = rstyle.linePts; + break; + } + + if (pts != null) { + for (var j = 0; j < pts.length; j++) { + var pt = pts[j]; + ex1 = pt.x - wHalf; + ex2 = pt.x + wHalf; + ey1 = pt.y - wHalf; + ey2 = pt.y + wHalf; + updateBounds(bounds, ex1, ey1, ex2, ey2); + } + } + } // bezier-like or segment-like edge + + } else { + // headless or style disabled + // fallback on source and target positions + ////////////////////////////////////////// + var n1 = ele.source(); + var n1pos = n1.position(); + var n2 = ele.target(); + var n2pos = n2.position(); + ex1 = n1pos.x; + ex2 = n2pos.x; + ey1 = n1pos.y; + ey2 = n2pos.y; + + if (ex1 > ex2) { + var _temp2 = ex1; + ex1 = ex2; + ex2 = _temp2; + } + + if (ey1 > ey2) { + var _temp3 = ey1; + ey1 = ey2; + ey2 = _temp3; + } // take into account edge width + + + ex1 -= wHalf; + ex2 += wHalf; + ey1 -= wHalf; + ey2 += wHalf; + updateBounds(bounds, ex1, ey1, ex2, ey2); + } // headless or style disabled + + } // edges + // handle edge arrow size + ///////////////////////// + + + if (styleEnabled && options.includeEdges && isEdge) { + updateBoundsFromArrow(bounds, ele, 'mid-source'); + updateBoundsFromArrow(bounds, ele, 'mid-target'); + updateBoundsFromArrow(bounds, ele, 'source'); + updateBoundsFromArrow(bounds, ele, 'target'); + } // ghost + //////// + + + if (styleEnabled) { + var ghost = ele.pstyle('ghost').value === 'yes'; + + if (ghost) { + var gx = ele.pstyle('ghost-offset-x').pfValue; + var gy = ele.pstyle('ghost-offset-y').pfValue; + updateBounds(bounds, bounds.x1 + gx, bounds.y1 + gy, bounds.x2 + gx, bounds.y2 + gy); + } + } // always store the body bounds separately from the labels + + + var bbBody = _p.bodyBounds = _p.bodyBounds || {}; + assignBoundingBox(bbBody, bounds); + expandBoundingBoxSides(bbBody, manualExpansion); + expandBoundingBox(bbBody, 1); // expand to work around browser dimension inaccuracies + // overlay + ////////// + + if (styleEnabled) { + ex1 = bounds.x1; + ex2 = bounds.x2; + ey1 = bounds.y1; + ey2 = bounds.y2; + updateBounds(bounds, ex1 - padding, ey1 - padding, ex2 + padding, ey2 + padding); + } // always store the body bounds separately from the labels + + + var bbOverlay = _p.overlayBounds = _p.overlayBounds || {}; + assignBoundingBox(bbOverlay, bounds); + expandBoundingBoxSides(bbOverlay, manualExpansion); + expandBoundingBox(bbOverlay, 1); // expand to work around browser dimension inaccuracies + // handle label dimensions + ////////////////////////// + + var bbLabels = _p.labelBounds = _p.labelBounds || {}; + + if (bbLabels.all != null) { + clearBoundingBox(bbLabels.all); + } else { + bbLabels.all = makeBoundingBox(); + } + + if (styleEnabled && options.includeLabels) { + if (options.includeMainLabels) { + updateBoundsFromLabel(bounds, ele, null); + } + + if (isEdge) { + if (options.includeSourceLabels) { + updateBoundsFromLabel(bounds, ele, 'source'); + } + + if (options.includeTargetLabels) { + updateBoundsFromLabel(bounds, ele, 'target'); + } + } + } // style enabled for labels + + } // if displayed + + + bounds.x1 = noninf(bounds.x1); + bounds.y1 = noninf(bounds.y1); + bounds.x2 = noninf(bounds.x2); + bounds.y2 = noninf(bounds.y2); + bounds.w = noninf(bounds.x2 - bounds.x1); + bounds.h = noninf(bounds.y2 - bounds.y1); + + if (bounds.w > 0 && bounds.h > 0 && displayed) { + expandBoundingBoxSides(bounds, manualExpansion); // expand bounds by 1 because antialiasing can increase the visual/effective size by 1 on all sides + + expandBoundingBox(bounds, 1); + } + + return bounds; + }; + + var getKey = function getKey(opts) { + var i = 0; + + var tf = function tf(val) { + return (val ? 1 : 0) << i++; + }; + + var key = 0; + key += tf(opts.incudeNodes); + key += tf(opts.includeEdges); + key += tf(opts.includeLabels); + key += tf(opts.includeMainLabels); + key += tf(opts.includeSourceLabels); + key += tf(opts.includeTargetLabels); + key += tf(opts.includeOverlays); + return key; + }; + + var getBoundingBoxPosKey = function getBoundingBoxPosKey(ele) { + if (ele.isEdge()) { + var p1 = ele.source().position(); + var p2 = ele.target().position(); + + var r = function r(x) { + return Math.round(x); + }; + + return hashIntsArray([r(p1.x), r(p1.y), r(p2.x), r(p2.y)]); + } else { + return 0; + } + }; + + var cachedBoundingBoxImpl = function cachedBoundingBoxImpl(ele, opts) { + var _p = ele._private; + var bb; + var isEdge = ele.isEdge(); + var key = opts == null ? defBbOptsKey : getKey(opts); + var usingDefOpts = key === defBbOptsKey; + var currPosKey = getBoundingBoxPosKey(ele); + var isPosKeySame = _p.bbCachePosKey === currPosKey; + var useCache = opts.useCache && isPosKeySame; + + var isDirty = function isDirty(ele) { + return ele._private.bbCache == null || ele._private.styleDirty; + }; + + var needRecalc = !useCache || isDirty(ele) || isEdge && isDirty(ele.source()) || isDirty(ele.target()); + + if (needRecalc) { + if (!isPosKeySame) { + ele.recalculateRenderedStyle(useCache); + } + + bb = boundingBoxImpl(ele, defBbOpts); + _p.bbCache = bb; + _p.bbCachePosKey = currPosKey; + } else { + bb = _p.bbCache; + } // not using def opts => need to build up bb from combination of sub bbs + + + if (!usingDefOpts) { + var isNode = ele.isNode(); + bb = makeBoundingBox(); + + if (opts.includeNodes && isNode || opts.includeEdges && !isNode) { + if (opts.includeOverlays) { + updateBoundsFromBox(bb, _p.overlayBounds); + } else { + updateBoundsFromBox(bb, _p.bodyBounds); + } + } + + if (opts.includeLabels) { + if (opts.includeMainLabels && (!isEdge || opts.includeSourceLabels && opts.includeTargetLabels)) { + updateBoundsFromBox(bb, _p.labelBounds.all); + } else { + if (opts.includeMainLabels) { + updateBoundsFromBox(bb, _p.labelBounds.mainRot); + } + + if (opts.includeSourceLabels) { + updateBoundsFromBox(bb, _p.labelBounds.sourceRot); + } + + if (opts.includeTargetLabels) { + updateBoundsFromBox(bb, _p.labelBounds.targetRot); + } + } + } + + bb.w = bb.x2 - bb.x1; + bb.h = bb.y2 - bb.y1; + } + + return bb; + }; + + var defBbOpts = { + includeNodes: true, + includeEdges: true, + includeLabels: true, + includeMainLabels: true, + includeSourceLabels: true, + includeTargetLabels: true, + includeOverlays: true, + includeUnderlays: true, + useCache: true + }; + var defBbOptsKey = getKey(defBbOpts); + var filledBbOpts = defaults$g(defBbOpts); + + elesfn$b.boundingBox = function (options) { + var bounds; // the main usecase is ele.boundingBox() for a single element with no/def options + // specified s.t. the cache is used, so check for this case to make it faster by + // avoiding the overhead of the rest of the function + + if (this.length === 1 && this[0]._private.bbCache != null && !this[0]._private.styleDirty && (options === undefined || options.useCache === undefined || options.useCache === true)) { + if (options === undefined) { + options = defBbOpts; + } else { + options = filledBbOpts(options); + } + + bounds = cachedBoundingBoxImpl(this[0], options); + } else { + bounds = makeBoundingBox(); + options = options || defBbOpts; + var opts = filledBbOpts(options); + var eles = this; + var cy = eles.cy(); + var styleEnabled = cy.styleEnabled(); + + if (styleEnabled) { + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var _p = ele._private; + var currPosKey = getBoundingBoxPosKey(ele); + var isPosKeySame = _p.bbCachePosKey === currPosKey; + var useCache = opts.useCache && isPosKeySame && !_p.styleDirty; + ele.recalculateRenderedStyle(useCache); + } + } + + this.updateCompoundBounds(!options.useCache); + + for (var _i = 0; _i < eles.length; _i++) { + var _ele = eles[_i]; + updateBoundsFromBox(bounds, cachedBoundingBoxImpl(_ele, opts)); + } + } + + bounds.x1 = noninf(bounds.x1); + bounds.y1 = noninf(bounds.y1); + bounds.x2 = noninf(bounds.x2); + bounds.y2 = noninf(bounds.y2); + bounds.w = noninf(bounds.x2 - bounds.x1); + bounds.h = noninf(bounds.y2 - bounds.y1); + return bounds; + }; + + elesfn$b.dirtyBoundingBoxCache = function () { + for (var i = 0; i < this.length; i++) { + var _p = this[i]._private; + _p.bbCache = null; + _p.bbCachePosKey = null; + _p.bodyBounds = null; + _p.overlayBounds = null; + _p.labelBounds.all = null; + _p.labelBounds.source = null; + _p.labelBounds.target = null; + _p.labelBounds.main = null; + _p.labelBounds.sourceRot = null; + _p.labelBounds.targetRot = null; + _p.labelBounds.mainRot = null; + _p.arrowBounds.source = null; + _p.arrowBounds.target = null; + _p.arrowBounds['mid-source'] = null; + _p.arrowBounds['mid-target'] = null; + } + + this.emitAndNotify('bounds'); + return this; + }; // private helper to get bounding box for custom node positions + // - good for perf in certain cases but currently requires dirtying the rendered style + // - would be better to not modify the nodes but the nodes are read directly everywhere in the renderer... + // - try to use for only things like discrete layouts where the node position would change anyway + + + elesfn$b.boundingBoxAt = function (fn) { + var nodes = this.nodes(); + var cy = this.cy(); + var hasCompoundNodes = cy.hasCompoundNodes(); + var parents = cy.collection(); + + if (hasCompoundNodes) { + parents = nodes.filter(function (node) { + return node.isParent(); + }); + nodes = nodes.not(parents); + } + + if (plainObject(fn)) { + var obj = fn; + + fn = function fn() { + return obj; + }; + } + + var storeOldPos = function storeOldPos(node, i) { + return node._private.bbAtOldPos = fn(node, i); + }; + + var getOldPos = function getOldPos(node) { + return node._private.bbAtOldPos; + }; + + cy.startBatch(); + nodes.forEach(storeOldPos).silentPositions(fn); + + if (hasCompoundNodes) { + parents.dirtyCompoundBoundsCache(); + parents.dirtyBoundingBoxCache(); + parents.updateCompoundBounds(true); // force update b/c we're inside a batch cycle + } + + var bb = copyBoundingBox(this.boundingBox({ + useCache: false + })); + nodes.silentPositions(getOldPos); + + if (hasCompoundNodes) { + parents.dirtyCompoundBoundsCache(); + parents.dirtyBoundingBoxCache(); + parents.updateCompoundBounds(true); // force update b/c we're inside a batch cycle + } + + cy.endBatch(); + return bb; + }; + + fn$3.boundingbox = fn$3.bb = fn$3.boundingBox; + fn$3.renderedBoundingbox = fn$3.renderedBoundingBox; + var bounds = elesfn$b; + + var fn$2, elesfn$a; + fn$2 = elesfn$a = {}; + + var defineDimFns = function defineDimFns(opts) { + opts.uppercaseName = capitalize(opts.name); + opts.autoName = 'auto' + opts.uppercaseName; + opts.labelName = 'label' + opts.uppercaseName; + opts.outerName = 'outer' + opts.uppercaseName; + opts.uppercaseOuterName = capitalize(opts.outerName); + + fn$2[opts.name] = function dimImpl() { + var ele = this[0]; + var _p = ele._private; + var cy = _p.cy; + var styleEnabled = cy._private.styleEnabled; + + if (ele) { + if (styleEnabled) { + if (ele.isParent()) { + ele.updateCompoundBounds(); + return _p[opts.autoName] || 0; + } + + var d = ele.pstyle(opts.name); + + switch (d.strValue) { + case 'label': + ele.recalculateRenderedStyle(); + return _p.rstyle[opts.labelName] || 0; + + default: + return d.pfValue; + } + } else { + return 1; + } + } + }; + + fn$2['outer' + opts.uppercaseName] = function outerDimImpl() { + var ele = this[0]; + var _p = ele._private; + var cy = _p.cy; + var styleEnabled = cy._private.styleEnabled; + + if (ele) { + if (styleEnabled) { + var dim = ele[opts.name](); + var border = ele.pstyle('border-width').pfValue; // n.b. 1/2 each side + + var padding = 2 * ele.padding(); + return dim + border + padding; + } else { + return 1; + } + } + }; + + fn$2['rendered' + opts.uppercaseName] = function renderedDimImpl() { + var ele = this[0]; + + if (ele) { + var d = ele[opts.name](); + return d * this.cy().zoom(); + } + }; + + fn$2['rendered' + opts.uppercaseOuterName] = function renderedOuterDimImpl() { + var ele = this[0]; + + if (ele) { + var od = ele[opts.outerName](); + return od * this.cy().zoom(); + } + }; + }; + + defineDimFns({ + name: 'width' + }); + defineDimFns({ + name: 'height' + }); + + elesfn$a.padding = function () { + var ele = this[0]; + var _p = ele._private; + + if (ele.isParent()) { + ele.updateCompoundBounds(); + + if (_p.autoPadding !== undefined) { + return _p.autoPadding; + } else { + return ele.pstyle('padding').pfValue; + } + } else { + return ele.pstyle('padding').pfValue; + } + }; + + elesfn$a.paddedHeight = function () { + var ele = this[0]; + return ele.height() + 2 * ele.padding(); + }; + + elesfn$a.paddedWidth = function () { + var ele = this[0]; + return ele.width() + 2 * ele.padding(); + }; + + var widthHeight = elesfn$a; + + var ifEdge = function ifEdge(ele, getValue) { + if (ele.isEdge()) { + return getValue(ele); + } + }; + + var ifEdgeRenderedPosition = function ifEdgeRenderedPosition(ele, getPoint) { + if (ele.isEdge()) { + var cy = ele.cy(); + return modelToRenderedPosition(getPoint(ele), cy.zoom(), cy.pan()); + } + }; + + var ifEdgeRenderedPositions = function ifEdgeRenderedPositions(ele, getPoints) { + if (ele.isEdge()) { + var cy = ele.cy(); + var pan = cy.pan(); + var zoom = cy.zoom(); + return getPoints(ele).map(function (p) { + return modelToRenderedPosition(p, zoom, pan); + }); + } + }; + + var controlPoints = function controlPoints(ele) { + return ele.renderer().getControlPoints(ele); + }; + + var segmentPoints = function segmentPoints(ele) { + return ele.renderer().getSegmentPoints(ele); + }; + + var sourceEndpoint = function sourceEndpoint(ele) { + return ele.renderer().getSourceEndpoint(ele); + }; + + var targetEndpoint = function targetEndpoint(ele) { + return ele.renderer().getTargetEndpoint(ele); + }; + + var midpoint = function midpoint(ele) { + return ele.renderer().getEdgeMidpoint(ele); + }; + + var pts = { + controlPoints: { + get: controlPoints, + mult: true + }, + segmentPoints: { + get: segmentPoints, + mult: true + }, + sourceEndpoint: { + get: sourceEndpoint + }, + targetEndpoint: { + get: targetEndpoint + }, + midpoint: { + get: midpoint + } + }; + + var renderedName = function renderedName(name) { + return 'rendered' + name[0].toUpperCase() + name.substr(1); + }; + + var edgePoints = Object.keys(pts).reduce(function (obj, name) { + var spec = pts[name]; + var rName = renderedName(name); + + obj[name] = function () { + return ifEdge(this, spec.get); + }; + + if (spec.mult) { + obj[rName] = function () { + return ifEdgeRenderedPositions(this, spec.get); + }; + } else { + obj[rName] = function () { + return ifEdgeRenderedPosition(this, spec.get); + }; + } + + return obj; + }, {}); + + var dimensions = extend({}, position, bounds, widthHeight, edgePoints); + + /*! + Event object based on jQuery events, MIT license + + https://jquery.org/license/ + https://tldrlegal.com/license/mit-license + https://github.com/jquery/jquery/blob/master/src/event.js + */ + var Event = function Event(src, props) { + this.recycle(src, props); + }; + + function returnFalse() { + return false; + } + + function returnTrue() { + return true; + } // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html + + + Event.prototype = { + instanceString: function instanceString() { + return 'event'; + }, + recycle: function recycle(src, props) { + this.isImmediatePropagationStopped = this.isPropagationStopped = this.isDefaultPrevented = returnFalse; + + if (src != null && src.preventDefault) { + // Browser Event object + this.type = src.type; // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + + this.isDefaultPrevented = src.defaultPrevented ? returnTrue : returnFalse; + } else if (src != null && src.type) { + // Plain object containing all event details + props = src; + } else { + // Event string + this.type = src; + } // Put explicitly provided properties onto the event object + + + if (props != null) { + // more efficient to manually copy fields we use + this.originalEvent = props.originalEvent; + this.type = props.type != null ? props.type : this.type; + this.cy = props.cy; + this.target = props.target; + this.position = props.position; + this.renderedPosition = props.renderedPosition; + this.namespace = props.namespace; + this.layout = props.layout; + } + + if (this.cy != null && this.position != null && this.renderedPosition == null) { + // create a rendered position based on the passed position + var pos = this.position; + var zoom = this.cy.zoom(); + var pan = this.cy.pan(); + this.renderedPosition = { + x: pos.x * zoom + pan.x, + y: pos.y * zoom + pan.y + }; + } // Create a timestamp if incoming event doesn't have one + + + this.timeStamp = src && src.timeStamp || Date.now(); + }, + preventDefault: function preventDefault() { + this.isDefaultPrevented = returnTrue; + var e = this.originalEvent; + + if (!e) { + return; + } // if preventDefault exists run it on the original event + + + if (e.preventDefault) { + e.preventDefault(); + } + }, + stopPropagation: function stopPropagation() { + this.isPropagationStopped = returnTrue; + var e = this.originalEvent; + + if (!e) { + return; + } // if stopPropagation exists run it on the original event + + + if (e.stopPropagation) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function stopImmediatePropagation() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + }, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse + }; + + var eventRegex = /^([^.]+)(\.(?:[^.]+))?$/; // regex for matching event strings (e.g. "click.namespace") + + var universalNamespace = '.*'; // matches as if no namespace specified and prevents users from unbinding accidentally + + var defaults$8 = { + qualifierCompare: function qualifierCompare(q1, q2) { + return q1 === q2; + }, + eventMatches: function + /*context, listener, eventObj*/ + eventMatches() { + return true; + }, + addEventFields: function + /*context, evt*/ + addEventFields() {}, + callbackContext: function callbackContext(context + /*, listener, eventObj*/ + ) { + return context; + }, + beforeEmit: function + /* context, listener, eventObj */ + beforeEmit() {}, + afterEmit: function + /* context, listener, eventObj */ + afterEmit() {}, + bubble: function + /*context*/ + bubble() { + return false; + }, + parent: function + /*context*/ + parent() { + return null; + }, + context: null + }; + var defaultsKeys = Object.keys(defaults$8); + var emptyOpts = {}; + + function Emitter() { + var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : emptyOpts; + var context = arguments.length > 1 ? arguments[1] : undefined; + + // micro-optimisation vs Object.assign() -- reduces Element instantiation time + for (var i = 0; i < defaultsKeys.length; i++) { + var key = defaultsKeys[i]; + this[key] = opts[key] || defaults$8[key]; + } + + this.context = context || this.context; + this.listeners = []; + this.emitting = 0; + } + + var p = Emitter.prototype; + + var forEachEvent = function forEachEvent(self, handler, events, qualifier, callback, conf, confOverrides) { + if (fn$6(qualifier)) { + callback = qualifier; + qualifier = null; + } + + if (confOverrides) { + if (conf == null) { + conf = confOverrides; + } else { + conf = extend({}, conf, confOverrides); + } + } + + var eventList = array(events) ? events : events.split(/\s+/); + + for (var i = 0; i < eventList.length; i++) { + var evt = eventList[i]; + + if (emptyString(evt)) { + continue; + } + + var match = evt.match(eventRegex); // type[.namespace] + + if (match) { + var type = match[1]; + var namespace = match[2] ? match[2] : null; + var ret = handler(self, evt, type, namespace, qualifier, callback, conf); + + if (ret === false) { + break; + } // allow exiting early + + } + } + }; + + var makeEventObj = function makeEventObj(self, obj) { + self.addEventFields(self.context, obj); + return new Event(obj.type, obj); + }; + + var forEachEventObj = function forEachEventObj(self, handler, events) { + if (event(events)) { + handler(self, events); + return; + } else if (plainObject(events)) { + handler(self, makeEventObj(self, events)); + return; + } + + var eventList = array(events) ? events : events.split(/\s+/); + + for (var i = 0; i < eventList.length; i++) { + var evt = eventList[i]; + + if (emptyString(evt)) { + continue; + } + + var match = evt.match(eventRegex); // type[.namespace] + + if (match) { + var type = match[1]; + var namespace = match[2] ? match[2] : null; + var eventObj = makeEventObj(self, { + type: type, + namespace: namespace, + target: self.context + }); + handler(self, eventObj); + } + } + }; + + p.on = p.addListener = function (events, qualifier, callback, conf, confOverrides) { + forEachEvent(this, function (self, event, type, namespace, qualifier, callback, conf) { + if (fn$6(callback)) { + self.listeners.push({ + event: event, + // full event string + callback: callback, + // callback to run + type: type, + // the event type (e.g. 'click') + namespace: namespace, + // the event namespace (e.g. ".foo") + qualifier: qualifier, + // a restriction on whether to match this emitter + conf: conf // additional configuration + + }); + } + }, events, qualifier, callback, conf, confOverrides); + return this; + }; + + p.one = function (events, qualifier, callback, conf) { + return this.on(events, qualifier, callback, conf, { + one: true + }); + }; + + p.removeListener = p.off = function (events, qualifier, callback, conf) { + var _this = this; + + if (this.emitting !== 0) { + this.listeners = copyArray$1(this.listeners); + } + + var listeners = this.listeners; + + var _loop = function _loop(i) { + var listener = listeners[i]; + forEachEvent(_this, function (self, event, type, namespace, qualifier, callback + /*, conf*/ + ) { + if ((listener.type === type || events === '*') && (!namespace && listener.namespace !== '.*' || listener.namespace === namespace) && (!qualifier || self.qualifierCompare(listener.qualifier, qualifier)) && (!callback || listener.callback === callback)) { + listeners.splice(i, 1); + return false; + } + }, events, qualifier, callback, conf); + }; + + for (var i = listeners.length - 1; i >= 0; i--) { + _loop(i); + } + + return this; + }; + + p.removeAllListeners = function () { + return this.removeListener('*'); + }; + + p.emit = p.trigger = function (events, extraParams, manualCallback) { + var listeners = this.listeners; + var numListenersBeforeEmit = listeners.length; + this.emitting++; + + if (!array(extraParams)) { + extraParams = [extraParams]; + } + + forEachEventObj(this, function (self, eventObj) { + if (manualCallback != null) { + listeners = [{ + event: eventObj.event, + type: eventObj.type, + namespace: eventObj.namespace, + callback: manualCallback + }]; + numListenersBeforeEmit = listeners.length; + } + + var _loop2 = function _loop2(i) { + var listener = listeners[i]; + + if (listener.type === eventObj.type && (!listener.namespace || listener.namespace === eventObj.namespace || listener.namespace === universalNamespace) && self.eventMatches(self.context, listener, eventObj)) { + var args = [eventObj]; + + if (extraParams != null) { + push(args, extraParams); + } + + self.beforeEmit(self.context, listener, eventObj); + + if (listener.conf && listener.conf.one) { + self.listeners = self.listeners.filter(function (l) { + return l !== listener; + }); + } + + var context = self.callbackContext(self.context, listener, eventObj); + var ret = listener.callback.apply(context, args); + self.afterEmit(self.context, listener, eventObj); + + if (ret === false) { + eventObj.stopPropagation(); + eventObj.preventDefault(); + } + } // if listener matches + + }; + + for (var i = 0; i < numListenersBeforeEmit; i++) { + _loop2(i); + } // for listener + + + if (self.bubble(self.context) && !eventObj.isPropagationStopped()) { + self.parent(self.context).emit(eventObj, extraParams); + } + }, events); + this.emitting--; + return this; + }; + + var emitterOptions$1 = { + qualifierCompare: function qualifierCompare(selector1, selector2) { + if (selector1 == null || selector2 == null) { + return selector1 == null && selector2 == null; + } else { + return selector1.sameText(selector2); + } + }, + eventMatches: function eventMatches(ele, listener, eventObj) { + var selector = listener.qualifier; + + if (selector != null) { + return ele !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target); + } + + return true; + }, + addEventFields: function addEventFields(ele, evt) { + evt.cy = ele.cy(); + evt.target = ele; + }, + callbackContext: function callbackContext(ele, listener, eventObj) { + return listener.qualifier != null ? eventObj.target : ele; + }, + beforeEmit: function beforeEmit(context, listener + /*, eventObj*/ + ) { + if (listener.conf && listener.conf.once) { + listener.conf.onceCollection.removeListener(listener.event, listener.qualifier, listener.callback); + } + }, + bubble: function bubble() { + return true; + }, + parent: function parent(ele) { + return ele.isChild() ? ele.parent() : ele.cy(); + } + }; + + var argSelector$1 = function argSelector(arg) { + if (string(arg)) { + return new Selector(arg); + } else { + return arg; + } + }; + + var elesfn$9 = { + createEmitter: function createEmitter() { + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var _p = ele._private; + + if (!_p.emitter) { + _p.emitter = new Emitter(emitterOptions$1, ele); + } + } + + return this; + }, + emitter: function emitter() { + return this._private.emitter; + }, + on: function on(events, selector, callback) { + var argSel = argSelector$1(selector); + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + ele.emitter().on(events, argSel, callback); + } + + return this; + }, + removeListener: function removeListener(events, selector, callback) { + var argSel = argSelector$1(selector); + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + ele.emitter().removeListener(events, argSel, callback); + } + + return this; + }, + removeAllListeners: function removeAllListeners() { + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + ele.emitter().removeAllListeners(); + } + + return this; + }, + one: function one(events, selector, callback) { + var argSel = argSelector$1(selector); + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + ele.emitter().one(events, argSel, callback); + } + + return this; + }, + once: function once(events, selector, callback) { + var argSel = argSelector$1(selector); + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + ele.emitter().on(events, argSel, callback, { + once: true, + onceCollection: this + }); + } + }, + emit: function emit(events, extraParams) { + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + ele.emitter().emit(events, extraParams); + } + + return this; + }, + emitAndNotify: function emitAndNotify(event, extraParams) { + // for internal use only + if (this.length === 0) { + return; + } // empty collections don't need to notify anything + // notify renderer + + + this.cy().notify(event, this); + this.emit(event, extraParams); + return this; + } + }; + define.eventAliasesOn(elesfn$9); + + var elesfn$8 = { + nodes: function nodes(selector) { + return this.filter(function (ele) { + return ele.isNode(); + }).filter(selector); + }, + edges: function edges(selector) { + return this.filter(function (ele) { + return ele.isEdge(); + }).filter(selector); + }, + // internal helper to get nodes and edges as separate collections with single iteration over elements + byGroup: function byGroup() { + var nodes = this.spawn(); + var edges = this.spawn(); + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + + if (ele.isNode()) { + nodes.push(ele); + } else { + edges.push(ele); + } + } + + return { + nodes: nodes, + edges: edges + }; + }, + filter: function filter(_filter, thisArg) { + if (_filter === undefined) { + // check this first b/c it's the most common/performant case + return this; + } else if (string(_filter) || elementOrCollection(_filter)) { + return new Selector(_filter).filter(this); + } else if (fn$6(_filter)) { + var filterEles = this.spawn(); + var eles = this; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var include = thisArg ? _filter.apply(thisArg, [ele, i, eles]) : _filter(ele, i, eles); + + if (include) { + filterEles.push(ele); + } + } + + return filterEles; + } + + return this.spawn(); // if not handled by above, give 'em an empty collection + }, + not: function not(toRemove) { + if (!toRemove) { + return this; + } else { + if (string(toRemove)) { + toRemove = this.filter(toRemove); + } + + var elements = this.spawn(); + + for (var i = 0; i < this.length; i++) { + var element = this[i]; + var remove = toRemove.has(element); + + if (!remove) { + elements.push(element); + } + } + + return elements; + } + }, + absoluteComplement: function absoluteComplement() { + var cy = this.cy(); + return cy.mutableElements().not(this); + }, + intersect: function intersect(other) { + // if a selector is specified, then filter by it instead + if (string(other)) { + var selector = other; + return this.filter(selector); + } + + var elements = this.spawn(); + var col1 = this; + var col2 = other; + var col1Smaller = this.length < other.length; + var colS = col1Smaller ? col1 : col2; + var colL = col1Smaller ? col2 : col1; + + for (var i = 0; i < colS.length; i++) { + var ele = colS[i]; + + if (colL.has(ele)) { + elements.push(ele); + } + } + + return elements; + }, + xor: function xor(other) { + var cy = this._private.cy; + + if (string(other)) { + other = cy.$(other); + } + + var elements = this.spawn(); + var col1 = this; + var col2 = other; + + var add = function add(col, other) { + for (var i = 0; i < col.length; i++) { + var ele = col[i]; + var id = ele._private.data.id; + var inOther = other.hasElementWithId(id); + + if (!inOther) { + elements.push(ele); + } + } + }; + + add(col1, col2); + add(col2, col1); + return elements; + }, + diff: function diff(other) { + var cy = this._private.cy; + + if (string(other)) { + other = cy.$(other); + } + + var left = this.spawn(); + var right = this.spawn(); + var both = this.spawn(); + var col1 = this; + var col2 = other; + + var add = function add(col, other, retEles) { + for (var i = 0; i < col.length; i++) { + var ele = col[i]; + var id = ele._private.data.id; + var inOther = other.hasElementWithId(id); + + if (inOther) { + both.merge(ele); + } else { + retEles.push(ele); + } + } + }; + + add(col1, col2, left); + add(col2, col1, right); + return { + left: left, + right: right, + both: both + }; + }, + add: function add(toAdd) { + var cy = this._private.cy; + + if (!toAdd) { + return this; + } + + if (string(toAdd)) { + var selector = toAdd; + toAdd = cy.mutableElements().filter(selector); + } + + var elements = this.spawnSelf(); + + for (var i = 0; i < toAdd.length; i++) { + var ele = toAdd[i]; + var add = !this.has(ele); + + if (add) { + elements.push(ele); + } + } + + return elements; + }, + // in place merge on calling collection + merge: function merge(toAdd) { + var _p = this._private; + var cy = _p.cy; + + if (!toAdd) { + return this; + } + + if (toAdd && string(toAdd)) { + var selector = toAdd; + toAdd = cy.mutableElements().filter(selector); + } + + var map = _p.map; + + for (var i = 0; i < toAdd.length; i++) { + var toAddEle = toAdd[i]; + var id = toAddEle._private.data.id; + var add = !map.has(id); + + if (add) { + var index = this.length++; + this[index] = toAddEle; + map.set(id, { + ele: toAddEle, + index: index + }); + } + } + + return this; // chaining + }, + unmergeAt: function unmergeAt(i) { + var ele = this[i]; + var id = ele.id(); + var _p = this._private; + var map = _p.map; // remove ele + + this[i] = undefined; + map["delete"](id); + var unmergedLastEle = i === this.length - 1; // replace empty spot with last ele in collection + + if (this.length > 1 && !unmergedLastEle) { + var lastEleI = this.length - 1; + var lastEle = this[lastEleI]; + var lastEleId = lastEle._private.data.id; + this[lastEleI] = undefined; + this[i] = lastEle; + map.set(lastEleId, { + ele: lastEle, + index: i + }); + } // the collection is now 1 ele smaller + + + this.length--; + return this; + }, + // remove single ele in place in calling collection + unmergeOne: function unmergeOne(ele) { + ele = ele[0]; + var _p = this._private; + var id = ele._private.data.id; + var map = _p.map; + var entry = map.get(id); + + if (!entry) { + return this; // no need to remove + } + + var i = entry.index; + this.unmergeAt(i); + return this; + }, + // remove eles in place on calling collection + unmerge: function unmerge(toRemove) { + var cy = this._private.cy; + + if (!toRemove) { + return this; + } + + if (toRemove && string(toRemove)) { + var selector = toRemove; + toRemove = cy.mutableElements().filter(selector); + } + + for (var i = 0; i < toRemove.length; i++) { + this.unmergeOne(toRemove[i]); + } + + return this; // chaining + }, + unmergeBy: function unmergeBy(toRmFn) { + for (var i = this.length - 1; i >= 0; i--) { + var ele = this[i]; + + if (toRmFn(ele)) { + this.unmergeAt(i); + } + } + + return this; + }, + map: function map(mapFn, thisArg) { + var arr = []; + var eles = this; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var ret = thisArg ? mapFn.apply(thisArg, [ele, i, eles]) : mapFn(ele, i, eles); + arr.push(ret); + } + + return arr; + }, + reduce: function reduce(fn, initialValue) { + var val = initialValue; + var eles = this; + + for (var i = 0; i < eles.length; i++) { + val = fn(val, eles[i], i, eles); + } + + return val; + }, + max: function max(valFn, thisArg) { + var max = -Infinity; + var maxEle; + var eles = this; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var val = thisArg ? valFn.apply(thisArg, [ele, i, eles]) : valFn(ele, i, eles); + + if (val > max) { + max = val; + maxEle = ele; + } + } + + return { + value: max, + ele: maxEle + }; + }, + min: function min(valFn, thisArg) { + var min = Infinity; + var minEle; + var eles = this; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var val = thisArg ? valFn.apply(thisArg, [ele, i, eles]) : valFn(ele, i, eles); + + if (val < min) { + min = val; + minEle = ele; + } + } + + return { + value: min, + ele: minEle + }; + } + }; // aliases + + var fn$1 = elesfn$8; + fn$1['u'] = fn$1['|'] = fn$1['+'] = fn$1.union = fn$1.or = fn$1.add; + fn$1['\\'] = fn$1['!'] = fn$1['-'] = fn$1.difference = fn$1.relativeComplement = fn$1.subtract = fn$1.not; + fn$1['n'] = fn$1['&'] = fn$1['.'] = fn$1.and = fn$1.intersection = fn$1.intersect; + fn$1['^'] = fn$1['(+)'] = fn$1['(-)'] = fn$1.symmetricDifference = fn$1.symdiff = fn$1.xor; + fn$1.fnFilter = fn$1.filterFn = fn$1.stdFilter = fn$1.filter; + fn$1.complement = fn$1.abscomp = fn$1.absoluteComplement; + + var elesfn$7 = { + isNode: function isNode() { + return this.group() === 'nodes'; + }, + isEdge: function isEdge() { + return this.group() === 'edges'; + }, + isLoop: function isLoop() { + return this.isEdge() && this.source()[0] === this.target()[0]; + }, + isSimple: function isSimple() { + return this.isEdge() && this.source()[0] !== this.target()[0]; + }, + group: function group() { + var ele = this[0]; + + if (ele) { + return ele._private.group; + } + } + }; + + /** + * Elements are drawn in a specific order based on compound depth (low to high), the element type (nodes above edges), + * and z-index (low to high). These styles affect how this applies: + * + * z-compound-depth: May be `bottom | orphan | auto | top`. The first drawn is `bottom`, then `orphan` which is the + * same depth as the root of the compound graph, followed by the default value `auto` which draws in order from + * root to leaves of the compound graph. The last drawn is `top`. + * z-index-compare: May be `auto | manual`. The default value is `auto` which always draws edges under nodes. + * `manual` ignores this convention and draws based on the `z-index` value setting. + * z-index: An integer value that affects the relative draw order of elements. In general, an element with a higher + * `z-index` will be drawn on top of an element with a lower `z-index`. + */ + + var zIndexSort = function zIndexSort(a, b) { + var cy = a.cy(); + var hasCompoundNodes = cy.hasCompoundNodes(); + + function getDepth(ele) { + var style = ele.pstyle('z-compound-depth'); + + if (style.value === 'auto') { + return hasCompoundNodes ? ele.zDepth() : 0; + } else if (style.value === 'bottom') { + return -1; + } else if (style.value === 'top') { + return MAX_INT$1; + } // 'orphan' + + + return 0; + } + + var depthDiff = getDepth(a) - getDepth(b); + + if (depthDiff !== 0) { + return depthDiff; + } + + function getEleDepth(ele) { + var style = ele.pstyle('z-index-compare'); + + if (style.value === 'auto') { + return ele.isNode() ? 1 : 0; + } // 'manual' + + + return 0; + } + + var eleDiff = getEleDepth(a) - getEleDepth(b); + + if (eleDiff !== 0) { + return eleDiff; + } + + var zDiff = a.pstyle('z-index').value - b.pstyle('z-index').value; + + if (zDiff !== 0) { + return zDiff; + } // compare indices in the core (order added to graph w/ last on top) + + + return a.poolIndex() - b.poolIndex(); + }; + + var elesfn$6 = { + forEach: function forEach(fn, thisArg) { + if (fn$6(fn)) { + var N = this.length; + + for (var i = 0; i < N; i++) { + var ele = this[i]; + var ret = thisArg ? fn.apply(thisArg, [ele, i, this]) : fn(ele, i, this); + + if (ret === false) { + break; + } // exit each early on return false + + } + } + + return this; + }, + toArray: function toArray() { + var array = []; + + for (var i = 0; i < this.length; i++) { + array.push(this[i]); + } + + return array; + }, + slice: function slice(start, end) { + var array = []; + var thisSize = this.length; + + if (end == null) { + end = thisSize; + } + + if (start == null) { + start = 0; + } + + if (start < 0) { + start = thisSize + start; + } + + if (end < 0) { + end = thisSize + end; + } + + for (var i = start; i >= 0 && i < end && i < thisSize; i++) { + array.push(this[i]); + } + + return this.spawn(array); + }, + size: function size() { + return this.length; + }, + eq: function eq(i) { + return this[i] || this.spawn(); + }, + first: function first() { + return this[0] || this.spawn(); + }, + last: function last() { + return this[this.length - 1] || this.spawn(); + }, + empty: function empty() { + return this.length === 0; + }, + nonempty: function nonempty() { + return !this.empty(); + }, + sort: function sort(sortFn) { + if (!fn$6(sortFn)) { + return this; + } + + var sorted = this.toArray().sort(sortFn); + return this.spawn(sorted); + }, + sortByZIndex: function sortByZIndex() { + return this.sort(zIndexSort); + }, + zDepth: function zDepth() { + var ele = this[0]; + + if (!ele) { + return undefined; + } // let cy = ele.cy(); + + + var _p = ele._private; + var group = _p.group; + + if (group === 'nodes') { + var depth = _p.data.parent ? ele.parents().size() : 0; + + if (!ele.isParent()) { + return MAX_INT$1 - 1; // childless nodes always on top + } + + return depth; + } else { + var src = _p.source; + var tgt = _p.target; + var srcDepth = src.zDepth(); + var tgtDepth = tgt.zDepth(); + return Math.max(srcDepth, tgtDepth, 0); // depth of deepest parent + } + } + }; + elesfn$6.each = elesfn$6.forEach; + + var defineSymbolIterator = function defineSymbolIterator() { + var typeofUndef = "undefined" ; + var isIteratorSupported = (typeof Symbol === "undefined" ? "undefined" : _typeof(Symbol)) != typeofUndef && _typeof(Symbol.iterator) != typeofUndef; // eslint-disable-line no-undef + + if (isIteratorSupported) { + elesfn$6[Symbol.iterator] = function () { + var _this = this; + + // eslint-disable-line no-undef + var entry = { + value: undefined, + done: false + }; + var i = 0; + var length = this.length; + return _defineProperty$1({ + next: function next() { + if (i < length) { + entry.value = _this[i++]; + } else { + entry.value = undefined; + entry.done = true; + } + + return entry; + } + }, Symbol.iterator, function () { + // eslint-disable-line no-undef + return this; + }); + }; + } + }; + + defineSymbolIterator(); + + var getLayoutDimensionOptions = defaults$g({ + nodeDimensionsIncludeLabels: false + }); + var elesfn$5 = { + // Calculates and returns node dimensions { x, y } based on options given + layoutDimensions: function layoutDimensions(options) { + options = getLayoutDimensionOptions(options); + var dims; + + if (!this.takesUpSpace()) { + dims = { + w: 0, + h: 0 + }; + } else if (options.nodeDimensionsIncludeLabels) { + var bbDim = this.boundingBox(); + dims = { + w: bbDim.w, + h: bbDim.h + }; + } else { + dims = { + w: this.outerWidth(), + h: this.outerHeight() + }; + } // sanitise the dimensions for external layouts (avoid division by zero) + + + if (dims.w === 0 || dims.h === 0) { + dims.w = dims.h = 1; + } + + return dims; + }, + // using standard layout options, apply position function (w/ or w/o animation) + layoutPositions: function layoutPositions(layout, options, fn) { + var nodes = this.nodes().filter(function (n) { + return !n.isParent(); + }); + var cy = this.cy(); + var layoutEles = options.eles; // nodes & edges + + var getMemoizeKey = function getMemoizeKey(node) { + return node.id(); + }; + + var fnMem = memoize$1(fn, getMemoizeKey); // memoized version of position function + + layout.emit({ + type: 'layoutstart', + layout: layout + }); + layout.animations = []; + + var calculateSpacing = function calculateSpacing(spacing, nodesBb, pos) { + var center = { + x: nodesBb.x1 + nodesBb.w / 2, + y: nodesBb.y1 + nodesBb.h / 2 + }; + var spacingVector = { + // scale from center of bounding box (not necessarily 0,0) + x: (pos.x - center.x) * spacing, + y: (pos.y - center.y) * spacing + }; + return { + x: center.x + spacingVector.x, + y: center.y + spacingVector.y + }; + }; + + var useSpacingFactor = options.spacingFactor && options.spacingFactor !== 1; + + var spacingBb = function spacingBb() { + if (!useSpacingFactor) { + return null; + } + + var bb = makeBoundingBox(); + + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + var pos = fnMem(node, i); + expandBoundingBoxByPoint(bb, pos.x, pos.y); + } + + return bb; + }; + + var bb = spacingBb(); + var getFinalPos = memoize$1(function (node, i) { + var newPos = fnMem(node, i); + + if (useSpacingFactor) { + var spacing = Math.abs(options.spacingFactor); + newPos = calculateSpacing(spacing, bb, newPos); + } + + if (options.transform != null) { + newPos = options.transform(node, newPos); + } + + return newPos; + }, getMemoizeKey); + + if (options.animate) { + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + var newPos = getFinalPos(node, i); + var animateNode = options.animateFilter == null || options.animateFilter(node, i); + + if (animateNode) { + var ani = node.animation({ + position: newPos, + duration: options.animationDuration, + easing: options.animationEasing + }); + layout.animations.push(ani); + } else { + node.position(newPos); + } + } + + if (options.fit) { + var fitAni = cy.animation({ + fit: { + boundingBox: layoutEles.boundingBoxAt(getFinalPos), + padding: options.padding + }, + duration: options.animationDuration, + easing: options.animationEasing + }); + layout.animations.push(fitAni); + } else if (options.zoom !== undefined && options.pan !== undefined) { + var zoomPanAni = cy.animation({ + zoom: options.zoom, + pan: options.pan, + duration: options.animationDuration, + easing: options.animationEasing + }); + layout.animations.push(zoomPanAni); + } + + layout.animations.forEach(function (ani) { + return ani.play(); + }); + layout.one('layoutready', options.ready); + layout.emit({ + type: 'layoutready', + layout: layout + }); + Promise$1.all(layout.animations.map(function (ani) { + return ani.promise(); + })).then(function () { + layout.one('layoutstop', options.stop); + layout.emit({ + type: 'layoutstop', + layout: layout + }); + }); + } else { + nodes.positions(getFinalPos); + + if (options.fit) { + cy.fit(options.eles, options.padding); + } + + if (options.zoom != null) { + cy.zoom(options.zoom); + } + + if (options.pan) { + cy.pan(options.pan); + } + + layout.one('layoutready', options.ready); + layout.emit({ + type: 'layoutready', + layout: layout + }); + layout.one('layoutstop', options.stop); + layout.emit({ + type: 'layoutstop', + layout: layout + }); + } + + return this; // chaining + }, + layout: function layout(options) { + var cy = this.cy(); + return cy.makeLayout(extend({}, options, { + eles: this + })); + } + }; // aliases: + + elesfn$5.createLayout = elesfn$5.makeLayout = elesfn$5.layout; + + function styleCache(key, fn, ele) { + var _p = ele._private; + var cache = _p.styleCache = _p.styleCache || []; + var val; + + if ((val = cache[key]) != null) { + return val; + } else { + val = cache[key] = fn(ele); + return val; + } + } + + function cacheStyleFunction(key, fn) { + key = hashString(key); + return function cachedStyleFunction(ele) { + return styleCache(key, fn, ele); + }; + } + + function cachePrototypeStyleFunction(key, fn) { + key = hashString(key); + + var selfFn = function selfFn(ele) { + return fn.call(ele); + }; + + return function cachedPrototypeStyleFunction() { + var ele = this[0]; + + if (ele) { + return styleCache(key, selfFn, ele); + } + }; + } + + var elesfn$4 = { + recalculateRenderedStyle: function recalculateRenderedStyle(useCache) { + var cy = this.cy(); + var renderer = cy.renderer(); + var styleEnabled = cy.styleEnabled(); + + if (renderer && styleEnabled) { + renderer.recalculateRenderedStyle(this, useCache); + } + + return this; + }, + dirtyStyleCache: function dirtyStyleCache() { + var cy = this.cy(); + + var dirty = function dirty(ele) { + return ele._private.styleCache = null; + }; + + if (cy.hasCompoundNodes()) { + var eles; + eles = this.spawnSelf().merge(this.descendants()).merge(this.parents()); + eles.merge(eles.connectedEdges()); + eles.forEach(dirty); + } else { + this.forEach(function (ele) { + dirty(ele); + ele.connectedEdges().forEach(dirty); + }); + } + + return this; + }, + // fully updates (recalculates) the style for the elements + updateStyle: function updateStyle(notifyRenderer) { + var cy = this._private.cy; + + if (!cy.styleEnabled()) { + return this; + } + + if (cy.batching()) { + var bEles = cy._private.batchStyleEles; + bEles.merge(this); + return this; // chaining and exit early when batching + } + + var hasCompounds = cy.hasCompoundNodes(); + var updatedEles = this; + notifyRenderer = notifyRenderer || notifyRenderer === undefined ? true : false; + + if (hasCompounds) { + // then add everything up and down for compound selector checks + updatedEles = this.spawnSelf().merge(this.descendants()).merge(this.parents()); + } // let changedEles = style.apply( updatedEles ); + + + var changedEles = updatedEles; + + if (notifyRenderer) { + changedEles.emitAndNotify('style'); // let renderer know we changed style + } else { + changedEles.emit('style'); // just fire the event + } + + updatedEles.forEach(function (ele) { + return ele._private.styleDirty = true; + }); + return this; // chaining + }, + // private: clears dirty flag and recalculates style + cleanStyle: function cleanStyle() { + var cy = this.cy(); + + if (!cy.styleEnabled()) { + return; + } + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + + if (ele._private.styleDirty) { + // n.b. this flag should be set before apply() to avoid potential infinite recursion + ele._private.styleDirty = false; + cy.style().apply(ele); + } + } + }, + // get the internal parsed style object for the specified property + parsedStyle: function parsedStyle(property) { + var includeNonDefault = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var ele = this[0]; + var cy = ele.cy(); + + if (!cy.styleEnabled()) { + return; + } + + if (ele) { + this.cleanStyle(); + var overriddenStyle = ele._private.style[property]; + + if (overriddenStyle != null) { + return overriddenStyle; + } else if (includeNonDefault) { + return cy.style().getDefaultProperty(property); + } else { + return null; + } + } + }, + numericStyle: function numericStyle(property) { + var ele = this[0]; + + if (!ele.cy().styleEnabled()) { + return; + } + + if (ele) { + var pstyle = ele.pstyle(property); + return pstyle.pfValue !== undefined ? pstyle.pfValue : pstyle.value; + } + }, + numericStyleUnits: function numericStyleUnits(property) { + var ele = this[0]; + + if (!ele.cy().styleEnabled()) { + return; + } + + if (ele) { + return ele.pstyle(property).units; + } + }, + // get the specified css property as a rendered value (i.e. on-screen value) + // or get the whole rendered style if no property specified (NB doesn't allow setting) + renderedStyle: function renderedStyle(property) { + var cy = this.cy(); + + if (!cy.styleEnabled()) { + return this; + } + + var ele = this[0]; + + if (ele) { + return cy.style().getRenderedStyle(ele, property); + } + }, + // read the calculated css style of the element or override the style (via a bypass) + style: function style(name, value) { + var cy = this.cy(); + + if (!cy.styleEnabled()) { + return this; + } + + var updateTransitions = false; + var style = cy.style(); + + if (plainObject(name)) { + // then extend the bypass + var props = name; + style.applyBypass(this, props, updateTransitions); + this.emitAndNotify('style'); // let the renderer know we've updated style + } else if (string(name)) { + if (value === undefined) { + // then get the property from the style + var ele = this[0]; + + if (ele) { + return style.getStylePropertyValue(ele, name); + } else { + // empty collection => can't get any value + return; + } + } else { + // then set the bypass with the property value + style.applyBypass(this, name, value, updateTransitions); + this.emitAndNotify('style'); // let the renderer know we've updated style + } + } else if (name === undefined) { + var _ele = this[0]; + + if (_ele) { + return style.getRawStyle(_ele); + } else { + // empty collection => can't get any value + return; + } + } + + return this; // chaining + }, + removeStyle: function removeStyle(names) { + var cy = this.cy(); + + if (!cy.styleEnabled()) { + return this; + } + + var updateTransitions = false; + var style = cy.style(); + var eles = this; + + if (names === undefined) { + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + style.removeAllBypasses(ele, updateTransitions); + } + } else { + names = names.split(/\s+/); + + for (var _i = 0; _i < eles.length; _i++) { + var _ele2 = eles[_i]; + style.removeBypasses(_ele2, names, updateTransitions); + } + } + + this.emitAndNotify('style'); // let the renderer know we've updated style + + return this; // chaining + }, + show: function show() { + this.css('display', 'element'); + return this; // chaining + }, + hide: function hide() { + this.css('display', 'none'); + return this; // chaining + }, + effectiveOpacity: function effectiveOpacity() { + var cy = this.cy(); + + if (!cy.styleEnabled()) { + return 1; + } + + var hasCompoundNodes = cy.hasCompoundNodes(); + var ele = this[0]; + + if (ele) { + var _p = ele._private; + var parentOpacity = ele.pstyle('opacity').value; + + if (!hasCompoundNodes) { + return parentOpacity; + } + + var parents = !_p.data.parent ? null : ele.parents(); + + if (parents) { + for (var i = 0; i < parents.length; i++) { + var parent = parents[i]; + var opacity = parent.pstyle('opacity').value; + parentOpacity = opacity * parentOpacity; + } + } + + return parentOpacity; + } + }, + transparent: function transparent() { + var cy = this.cy(); + + if (!cy.styleEnabled()) { + return false; + } + + var ele = this[0]; + var hasCompoundNodes = ele.cy().hasCompoundNodes(); + + if (ele) { + if (!hasCompoundNodes) { + return ele.pstyle('opacity').value === 0; + } else { + return ele.effectiveOpacity() === 0; + } + } + }, + backgrounding: function backgrounding() { + var cy = this.cy(); + + if (!cy.styleEnabled()) { + return false; + } + + var ele = this[0]; + return ele._private.backgrounding ? true : false; + } + }; + + function checkCompound(ele, parentOk) { + var _p = ele._private; + var parents = _p.data.parent ? ele.parents() : null; + + if (parents) { + for (var i = 0; i < parents.length; i++) { + var parent = parents[i]; + + if (!parentOk(parent)) { + return false; + } + } + } + + return true; + } + + function defineDerivedStateFunction(specs) { + var ok = specs.ok; + var edgeOkViaNode = specs.edgeOkViaNode || specs.ok; + var parentOk = specs.parentOk || specs.ok; + return function () { + var cy = this.cy(); + + if (!cy.styleEnabled()) { + return true; + } + + var ele = this[0]; + var hasCompoundNodes = cy.hasCompoundNodes(); + + if (ele) { + var _p = ele._private; + + if (!ok(ele)) { + return false; + } + + if (ele.isNode()) { + return !hasCompoundNodes || checkCompound(ele, parentOk); + } else { + var src = _p.source; + var tgt = _p.target; + return edgeOkViaNode(src) && (!hasCompoundNodes || checkCompound(src, edgeOkViaNode)) && (src === tgt || edgeOkViaNode(tgt) && (!hasCompoundNodes || checkCompound(tgt, edgeOkViaNode))); + } + } + }; + } + + var eleTakesUpSpace = cacheStyleFunction('eleTakesUpSpace', function (ele) { + return ele.pstyle('display').value === 'element' && ele.width() !== 0 && (ele.isNode() ? ele.height() !== 0 : true); + }); + elesfn$4.takesUpSpace = cachePrototypeStyleFunction('takesUpSpace', defineDerivedStateFunction({ + ok: eleTakesUpSpace + })); + var eleInteractive = cacheStyleFunction('eleInteractive', function (ele) { + return ele.pstyle('events').value === 'yes' && ele.pstyle('visibility').value === 'visible' && eleTakesUpSpace(ele); + }); + var parentInteractive = cacheStyleFunction('parentInteractive', function (parent) { + return parent.pstyle('visibility').value === 'visible' && eleTakesUpSpace(parent); + }); + elesfn$4.interactive = cachePrototypeStyleFunction('interactive', defineDerivedStateFunction({ + ok: eleInteractive, + parentOk: parentInteractive, + edgeOkViaNode: eleTakesUpSpace + })); + + elesfn$4.noninteractive = function () { + var ele = this[0]; + + if (ele) { + return !ele.interactive(); + } + }; + + var eleVisible = cacheStyleFunction('eleVisible', function (ele) { + return ele.pstyle('visibility').value === 'visible' && ele.pstyle('opacity').pfValue !== 0 && eleTakesUpSpace(ele); + }); + var edgeVisibleViaNode = eleTakesUpSpace; + elesfn$4.visible = cachePrototypeStyleFunction('visible', defineDerivedStateFunction({ + ok: eleVisible, + edgeOkViaNode: edgeVisibleViaNode + })); + + elesfn$4.hidden = function () { + var ele = this[0]; + + if (ele) { + return !ele.visible(); + } + }; + + elesfn$4.isBundledBezier = cachePrototypeStyleFunction('isBundledBezier', function () { + if (!this.cy().styleEnabled()) { + return false; + } + + return !this.removed() && this.pstyle('curve-style').value === 'bezier' && this.takesUpSpace(); + }); + elesfn$4.bypass = elesfn$4.css = elesfn$4.style; + elesfn$4.renderedCss = elesfn$4.renderedStyle; + elesfn$4.removeBypass = elesfn$4.removeCss = elesfn$4.removeStyle; + elesfn$4.pstyle = elesfn$4.parsedStyle; + + var elesfn$3 = {}; + + function defineSwitchFunction(params) { + return function () { + var args = arguments; + var changedEles = []; // e.g. cy.nodes().select( data, handler ) + + if (args.length === 2) { + var data = args[0]; + var handler = args[1]; + this.on(params.event, data, handler); + } // e.g. cy.nodes().select( handler ) + else if (args.length === 1 && fn$6(args[0])) { + var _handler = args[0]; + this.on(params.event, _handler); + } // e.g. cy.nodes().select() + // e.g. (private) cy.nodes().select(['tapselect']) + else if (args.length === 0 || args.length === 1 && array(args[0])) { + var addlEvents = args.length === 1 ? args[0] : null; + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var able = !params.ableField || ele._private[params.ableField]; + var changed = ele._private[params.field] != params.value; + + if (params.overrideAble) { + var overrideAble = params.overrideAble(ele); + + if (overrideAble !== undefined) { + able = overrideAble; + + if (!overrideAble) { + return this; + } // to save cycles assume not able for all on override + + } + } + + if (able) { + ele._private[params.field] = params.value; + + if (changed) { + changedEles.push(ele); + } + } + } + + var changedColl = this.spawn(changedEles); + changedColl.updateStyle(); // change of state => possible change of style + + changedColl.emit(params.event); + + if (addlEvents) { + changedColl.emit(addlEvents); + } + } + + return this; + }; + } + + function defineSwitchSet(params) { + elesfn$3[params.field] = function () { + var ele = this[0]; + + if (ele) { + if (params.overrideField) { + var val = params.overrideField(ele); + + if (val !== undefined) { + return val; + } + } + + return ele._private[params.field]; + } + }; + + elesfn$3[params.on] = defineSwitchFunction({ + event: params.on, + field: params.field, + ableField: params.ableField, + overrideAble: params.overrideAble, + value: true + }); + elesfn$3[params.off] = defineSwitchFunction({ + event: params.off, + field: params.field, + ableField: params.ableField, + overrideAble: params.overrideAble, + value: false + }); + } + + defineSwitchSet({ + field: 'locked', + overrideField: function overrideField(ele) { + return ele.cy().autolock() ? true : undefined; + }, + on: 'lock', + off: 'unlock' + }); + defineSwitchSet({ + field: 'grabbable', + overrideField: function overrideField(ele) { + return ele.cy().autoungrabify() || ele.pannable() ? false : undefined; + }, + on: 'grabify', + off: 'ungrabify' + }); + defineSwitchSet({ + field: 'selected', + ableField: 'selectable', + overrideAble: function overrideAble(ele) { + return ele.cy().autounselectify() ? false : undefined; + }, + on: 'select', + off: 'unselect' + }); + defineSwitchSet({ + field: 'selectable', + overrideField: function overrideField(ele) { + return ele.cy().autounselectify() ? false : undefined; + }, + on: 'selectify', + off: 'unselectify' + }); + elesfn$3.deselect = elesfn$3.unselect; + + elesfn$3.grabbed = function () { + var ele = this[0]; + + if (ele) { + return ele._private.grabbed; + } + }; + + defineSwitchSet({ + field: 'active', + on: 'activate', + off: 'unactivate' + }); + defineSwitchSet({ + field: 'pannable', + on: 'panify', + off: 'unpanify' + }); + + elesfn$3.inactive = function () { + var ele = this[0]; + + if (ele) { + return !ele._private.active; + } + }; + + var elesfn$2 = {}; // DAG functions + //////////////// + + var defineDagExtremity = function defineDagExtremity(params) { + return function dagExtremityImpl(selector) { + var eles = this; + var ret = []; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + + if (!ele.isNode()) { + continue; + } + + var disqualified = false; + var edges = ele.connectedEdges(); + + for (var j = 0; j < edges.length; j++) { + var edge = edges[j]; + var src = edge.source(); + var tgt = edge.target(); + + if (params.noIncomingEdges && tgt === ele && src !== ele || params.noOutgoingEdges && src === ele && tgt !== ele) { + disqualified = true; + break; + } + } + + if (!disqualified) { + ret.push(ele); + } + } + + return this.spawn(ret, true).filter(selector); + }; + }; + + var defineDagOneHop = function defineDagOneHop(params) { + return function (selector) { + var eles = this; + var oEles = []; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + + if (!ele.isNode()) { + continue; + } + + var edges = ele.connectedEdges(); + + for (var j = 0; j < edges.length; j++) { + var edge = edges[j]; + var src = edge.source(); + var tgt = edge.target(); + + if (params.outgoing && src === ele) { + oEles.push(edge); + oEles.push(tgt); + } else if (params.incoming && tgt === ele) { + oEles.push(edge); + oEles.push(src); + } + } + } + + return this.spawn(oEles, true).filter(selector); + }; + }; + + var defineDagAllHops = function defineDagAllHops(params) { + return function (selector) { + var eles = this; + var sEles = []; + var sElesIds = {}; + + for (;;) { + var next = params.outgoing ? eles.outgoers() : eles.incomers(); + + if (next.length === 0) { + break; + } // done if none left + + + var newNext = false; + + for (var i = 0; i < next.length; i++) { + var n = next[i]; + var nid = n.id(); + + if (!sElesIds[nid]) { + sElesIds[nid] = true; + sEles.push(n); + newNext = true; + } + } + + if (!newNext) { + break; + } // done if touched all outgoers already + + + eles = next; + } + + return this.spawn(sEles, true).filter(selector); + }; + }; + + elesfn$2.clearTraversalCache = function () { + for (var i = 0; i < this.length; i++) { + this[i]._private.traversalCache = null; + } + }; + + extend(elesfn$2, { + // get the root nodes in the DAG + roots: defineDagExtremity({ + noIncomingEdges: true + }), + // get the leaf nodes in the DAG + leaves: defineDagExtremity({ + noOutgoingEdges: true + }), + // normally called children in graph theory + // these nodes =edges=> outgoing nodes + outgoers: cache(defineDagOneHop({ + outgoing: true + }), 'outgoers'), + // aka DAG descendants + successors: defineDagAllHops({ + outgoing: true + }), + // normally called parents in graph theory + // these nodes <=edges= incoming nodes + incomers: cache(defineDagOneHop({ + incoming: true + }), 'incomers'), + // aka DAG ancestors + predecessors: defineDagAllHops({ + incoming: true + }) + }); // Neighbourhood functions + ////////////////////////// + + extend(elesfn$2, { + neighborhood: cache(function (selector) { + var elements = []; + var nodes = this.nodes(); + + for (var i = 0; i < nodes.length; i++) { + // for all nodes + var node = nodes[i]; + var connectedEdges = node.connectedEdges(); // for each connected edge, add the edge and the other node + + for (var j = 0; j < connectedEdges.length; j++) { + var edge = connectedEdges[j]; + var src = edge.source(); + var tgt = edge.target(); + var otherNode = node === src ? tgt : src; // need check in case of loop + + if (otherNode.length > 0) { + elements.push(otherNode[0]); // add node 1 hop away + } // add connected edge + + + elements.push(edge[0]); + } + } + + return this.spawn(elements, true).filter(selector); + }, 'neighborhood'), + closedNeighborhood: function closedNeighborhood(selector) { + return this.neighborhood().add(this).filter(selector); + }, + openNeighborhood: function openNeighborhood(selector) { + return this.neighborhood(selector); + } + }); // aliases + + elesfn$2.neighbourhood = elesfn$2.neighborhood; + elesfn$2.closedNeighbourhood = elesfn$2.closedNeighborhood; + elesfn$2.openNeighbourhood = elesfn$2.openNeighborhood; // Edge functions + ///////////////// + + extend(elesfn$2, { + source: cache(function sourceImpl(selector) { + var ele = this[0]; + var src; + + if (ele) { + src = ele._private.source || ele.cy().collection(); + } + + return src && selector ? src.filter(selector) : src; + }, 'source'), + target: cache(function targetImpl(selector) { + var ele = this[0]; + var tgt; + + if (ele) { + tgt = ele._private.target || ele.cy().collection(); + } + + return tgt && selector ? tgt.filter(selector) : tgt; + }, 'target'), + sources: defineSourceFunction({ + attr: 'source' + }), + targets: defineSourceFunction({ + attr: 'target' + }) + }); + + function defineSourceFunction(params) { + return function sourceImpl(selector) { + var sources = []; + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var src = ele._private[params.attr]; + + if (src) { + sources.push(src); + } + } + + return this.spawn(sources, true).filter(selector); + }; + } + + extend(elesfn$2, { + edgesWith: cache(defineEdgesWithFunction(), 'edgesWith'), + edgesTo: cache(defineEdgesWithFunction({ + thisIsSrc: true + }), 'edgesTo') + }); + + function defineEdgesWithFunction(params) { + return function edgesWithImpl(otherNodes) { + var elements = []; + var cy = this._private.cy; + var p = params || {}; // get elements if a selector is specified + + if (string(otherNodes)) { + otherNodes = cy.$(otherNodes); + } + + for (var h = 0; h < otherNodes.length; h++) { + var edges = otherNodes[h]._private.edges; + + for (var i = 0; i < edges.length; i++) { + var edge = edges[i]; + var edgeData = edge._private.data; + var thisToOther = this.hasElementWithId(edgeData.source) && otherNodes.hasElementWithId(edgeData.target); + var otherToThis = otherNodes.hasElementWithId(edgeData.source) && this.hasElementWithId(edgeData.target); + var edgeConnectsThisAndOther = thisToOther || otherToThis; + + if (!edgeConnectsThisAndOther) { + continue; + } + + if (p.thisIsSrc || p.thisIsTgt) { + if (p.thisIsSrc && !thisToOther) { + continue; + } + + if (p.thisIsTgt && !otherToThis) { + continue; + } + } + + elements.push(edge); + } + } + + return this.spawn(elements, true); + }; + } + + extend(elesfn$2, { + connectedEdges: cache(function (selector) { + var retEles = []; + var eles = this; + + for (var i = 0; i < eles.length; i++) { + var node = eles[i]; + + if (!node.isNode()) { + continue; + } + + var edges = node._private.edges; + + for (var j = 0; j < edges.length; j++) { + var edge = edges[j]; + retEles.push(edge); + } + } + + return this.spawn(retEles, true).filter(selector); + }, 'connectedEdges'), + connectedNodes: cache(function (selector) { + var retEles = []; + var eles = this; + + for (var i = 0; i < eles.length; i++) { + var edge = eles[i]; + + if (!edge.isEdge()) { + continue; + } + + retEles.push(edge.source()[0]); + retEles.push(edge.target()[0]); + } + + return this.spawn(retEles, true).filter(selector); + }, 'connectedNodes'), + parallelEdges: cache(defineParallelEdgesFunction(), 'parallelEdges'), + codirectedEdges: cache(defineParallelEdgesFunction({ + codirected: true + }), 'codirectedEdges') + }); + + function defineParallelEdgesFunction(params) { + var defaults = { + codirected: false + }; + params = extend({}, defaults, params); + return function parallelEdgesImpl(selector) { + // micro-optimised for renderer + var elements = []; + var edges = this.edges(); + var p = params; // look at all the edges in the collection + + for (var i = 0; i < edges.length; i++) { + var edge1 = edges[i]; + var edge1_p = edge1._private; + var src1 = edge1_p.source; + var srcid1 = src1._private.data.id; + var tgtid1 = edge1_p.data.target; + var srcEdges1 = src1._private.edges; // look at edges connected to the src node of this edge + + for (var j = 0; j < srcEdges1.length; j++) { + var edge2 = srcEdges1[j]; + var edge2data = edge2._private.data; + var tgtid2 = edge2data.target; + var srcid2 = edge2data.source; + var codirected = tgtid2 === tgtid1 && srcid2 === srcid1; + var oppdirected = srcid1 === tgtid2 && tgtid1 === srcid2; + + if (p.codirected && codirected || !p.codirected && (codirected || oppdirected)) { + elements.push(edge2); + } + } + } + + return this.spawn(elements, true).filter(selector); + }; + } // Misc functions + ///////////////// + + + extend(elesfn$2, { + components: function components(root) { + var self = this; + var cy = self.cy(); + var visited = cy.collection(); + var unvisited = root == null ? self.nodes() : root.nodes(); + var components = []; + + if (root != null && unvisited.empty()) { + // root may contain only edges + unvisited = root.sources(); // doesn't matter which node to use (undirected), so just use the source sides + } + + var visitInComponent = function visitInComponent(node, component) { + visited.merge(node); + unvisited.unmerge(node); + component.merge(node); + }; + + if (unvisited.empty()) { + return self.spawn(); + } + + var _loop = function _loop() { + // each iteration yields a component + var cmpt = cy.collection(); + components.push(cmpt); + var root = unvisited[0]; + visitInComponent(root, cmpt); + self.bfs({ + directed: false, + roots: root, + visit: function visit(v) { + return visitInComponent(v, cmpt); + } + }); + cmpt.forEach(function (node) { + node.connectedEdges().forEach(function (e) { + // connectedEdges() usually cached + if (self.has(e) && cmpt.has(e.source()) && cmpt.has(e.target())) { + // has() is cheap + cmpt.merge(e); // forEach() only considers nodes -- sets N at call time + } + }); + }); + }; + + do { + _loop(); + } while (unvisited.length > 0); + + return components; + }, + component: function component() { + var ele = this[0]; + return ele.cy().mutableElements().components(ele)[0]; + } + }); + elesfn$2.componentsOf = elesfn$2.components; + + var Collection = function Collection(cy, elements) { + var unique = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var removed = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + + if (cy === undefined) { + error('A collection must have a reference to the core'); + return; + } + + var map = new Map$2(); + var createdElements = false; + + if (!elements) { + elements = []; + } else if (elements.length > 0 && plainObject(elements[0]) && !element(elements[0])) { + createdElements = true; // make elements from json and restore all at once later + + var eles = []; + var elesIds = new Set$1(); + + for (var i = 0, l = elements.length; i < l; i++) { + var json = elements[i]; + + if (json.data == null) { + json.data = {}; + } + + var _data = json.data; // make sure newly created elements have valid ids + + if (_data.id == null) { + _data.id = uuid(); + } else if (cy.hasElementWithId(_data.id) || elesIds.has(_data.id)) { + continue; // can't create element if prior id already exists + } + + var ele = new Element(cy, json, false); + eles.push(ele); + elesIds.add(_data.id); + } + + elements = eles; + } + + this.length = 0; + + for (var _i = 0, _l = elements.length; _i < _l; _i++) { + var element$1 = elements[_i][0]; // [0] in case elements is an array of collections, rather than array of elements + + if (element$1 == null) { + continue; + } + + var id = element$1._private.data.id; + + if (!unique || !map.has(id)) { + if (unique) { + map.set(id, { + index: this.length, + ele: element$1 + }); + } + + this[this.length] = element$1; + this.length++; + } + } + + this._private = { + eles: this, + cy: cy, + + get map() { + if (this.lazyMap == null) { + this.rebuildMap(); + } + + return this.lazyMap; + }, + + set map(m) { + this.lazyMap = m; + }, + + rebuildMap: function rebuildMap() { + var m = this.lazyMap = new Map$2(); + var eles = this.eles; + + for (var _i2 = 0; _i2 < eles.length; _i2++) { + var _ele = eles[_i2]; + m.set(_ele.id(), { + index: _i2, + ele: _ele + }); + } + } + }; + + if (unique) { + this._private.map = map; + } // restore the elements if we created them from json + + + if (createdElements && !removed) { + this.restore(); + } + }; // Functions + //////////////////////////////////////////////////////////////////////////////////////////////////// + // keep the prototypes in sync (an element has the same functions as a collection) + // and use elefn and elesfn as shorthands to the prototypes + + + var elesfn$1 = Element.prototype = Collection.prototype = Object.create(Array.prototype); + + elesfn$1.instanceString = function () { + return 'collection'; + }; + + elesfn$1.spawn = function (eles, unique) { + return new Collection(this.cy(), eles, unique); + }; + + elesfn$1.spawnSelf = function () { + return this.spawn(this); + }; + + elesfn$1.cy = function () { + return this._private.cy; + }; + + elesfn$1.renderer = function () { + return this._private.cy.renderer(); + }; + + elesfn$1.element = function () { + return this[0]; + }; + + elesfn$1.collection = function () { + if (collection(this)) { + return this; + } else { + // an element + return new Collection(this._private.cy, [this]); + } + }; + + elesfn$1.unique = function () { + return new Collection(this._private.cy, this, true); + }; + + elesfn$1.hasElementWithId = function (id) { + id = '' + id; // id must be string + + return this._private.map.has(id); + }; + + elesfn$1.getElementById = function (id) { + id = '' + id; // id must be string + + var cy = this._private.cy; + + var entry = this._private.map.get(id); + + return entry ? entry.ele : new Collection(cy); // get ele or empty collection + }; + + elesfn$1.$id = elesfn$1.getElementById; + + elesfn$1.poolIndex = function () { + var cy = this._private.cy; + var eles = cy._private.elements; + var id = this[0]._private.data.id; + return eles._private.map.get(id).index; + }; + + elesfn$1.indexOf = function (ele) { + var id = ele[0]._private.data.id; + return this._private.map.get(id).index; + }; + + elesfn$1.indexOfId = function (id) { + id = '' + id; // id must be string + + return this._private.map.get(id).index; + }; + + elesfn$1.json = function (obj) { + var ele = this.element(); + var cy = this.cy(); + + if (ele == null && obj) { + return this; + } // can't set to no eles + + + if (ele == null) { + return undefined; + } // can't get from no eles + + + var p = ele._private; + + if (plainObject(obj)) { + // set + cy.startBatch(); + + if (obj.data) { + ele.data(obj.data); + var _data2 = p.data; + + if (ele.isEdge()) { + // source and target are immutable via data() + var move = false; + var spec = {}; + var src = obj.data.source; + var tgt = obj.data.target; + + if (src != null && src != _data2.source) { + spec.source = '' + src; // id must be string + + move = true; + } + + if (tgt != null && tgt != _data2.target) { + spec.target = '' + tgt; // id must be string + + move = true; + } + + if (move) { + ele = ele.move(spec); + } + } else { + // parent is immutable via data() + var newParentValSpecd = ('parent' in obj.data); + var parent = obj.data.parent; + + if (newParentValSpecd && (parent != null || _data2.parent != null) && parent != _data2.parent) { + if (parent === undefined) { + // can't set undefined imperatively, so use null + parent = null; + } + + if (parent != null) { + parent = '' + parent; // id must be string + } + + ele = ele.move({ + parent: parent + }); + } + } + } + + if (obj.position) { + ele.position(obj.position); + } // ignore group -- immutable + + + var checkSwitch = function checkSwitch(k, trueFnName, falseFnName) { + var obj_k = obj[k]; + + if (obj_k != null && obj_k !== p[k]) { + if (obj_k) { + ele[trueFnName](); + } else { + ele[falseFnName](); + } + } + }; + + checkSwitch('removed', 'remove', 'restore'); + checkSwitch('selected', 'select', 'unselect'); + checkSwitch('selectable', 'selectify', 'unselectify'); + checkSwitch('locked', 'lock', 'unlock'); + checkSwitch('grabbable', 'grabify', 'ungrabify'); + checkSwitch('pannable', 'panify', 'unpanify'); + + if (obj.classes != null) { + ele.classes(obj.classes); + } + + cy.endBatch(); + return this; + } else if (obj === undefined) { + // get + var json = { + data: copy(p.data), + position: copy(p.position), + group: p.group, + removed: p.removed, + selected: p.selected, + selectable: p.selectable, + locked: p.locked, + grabbable: p.grabbable, + pannable: p.pannable, + classes: null + }; + json.classes = ''; + var i = 0; + p.classes.forEach(function (cls) { + return json.classes += i++ === 0 ? cls : ' ' + cls; + }); + return json; + } + }; + + elesfn$1.jsons = function () { + var jsons = []; + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var json = ele.json(); + jsons.push(json); + } + + return jsons; + }; + + elesfn$1.clone = function () { + var cy = this.cy(); + var elesArr = []; + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var json = ele.json(); + var clone = new Element(cy, json, false); // NB no restore + + elesArr.push(clone); + } + + return new Collection(cy, elesArr); + }; + + elesfn$1.copy = elesfn$1.clone; + + elesfn$1.restore = function () { + var notifyRenderer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + var addToPool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var self = this; + var cy = self.cy(); + var cy_p = cy._private; // create arrays of nodes and edges, since we need to + // restore the nodes first + + var nodes = []; + var edges = []; + var elements; + + for (var _i3 = 0, l = self.length; _i3 < l; _i3++) { + var ele = self[_i3]; + + if (addToPool && !ele.removed()) { + // don't need to handle this ele + continue; + } // keep nodes first in the array and edges after + + + if (ele.isNode()) { + // put to front of array if node + nodes.push(ele); + } else { + // put to end of array if edge + edges.push(ele); + } + } + + elements = nodes.concat(edges); + var i; + + var removeFromElements = function removeFromElements() { + elements.splice(i, 1); + i--; + }; // now, restore each element + + + for (i = 0; i < elements.length; i++) { + var _ele2 = elements[i]; + var _private = _ele2._private; + var _data3 = _private.data; // the traversal cache should start fresh when ele is added + + _ele2.clearTraversalCache(); // set id and validate + + + if (!addToPool && !_private.removed) ; else if (_data3.id === undefined) { + _data3.id = uuid(); + } else if (number$1(_data3.id)) { + _data3.id = '' + _data3.id; // now it's a string + } else if (emptyString(_data3.id) || !string(_data3.id)) { + error('Can not create element with invalid string ID `' + _data3.id + '`'); // can't create element if it has empty string as id or non-string id + + removeFromElements(); + continue; + } else if (cy.hasElementWithId(_data3.id)) { + error('Can not create second element with ID `' + _data3.id + '`'); // can't create element if one already has that id + + removeFromElements(); + continue; + } + + var id = _data3.id; // id is finalised, now let's keep a ref + + if (_ele2.isNode()) { + // extra checks for nodes + var pos = _private.position; // make sure the nodes have a defined position + + if (pos.x == null) { + pos.x = 0; + } + + if (pos.y == null) { + pos.y = 0; + } + } + + if (_ele2.isEdge()) { + // extra checks for edges + var edge = _ele2; + var fields = ['source', 'target']; + var fieldsLength = fields.length; + var badSourceOrTarget = false; + + for (var j = 0; j < fieldsLength; j++) { + var field = fields[j]; + var val = _data3[field]; + + if (number$1(val)) { + val = _data3[field] = '' + _data3[field]; // now string + } + + if (val == null || val === '') { + // can't create if source or target is not defined properly + error('Can not create edge `' + id + '` with unspecified ' + field); + badSourceOrTarget = true; + } else if (!cy.hasElementWithId(val)) { + // can't create edge if one of its nodes doesn't exist + error('Can not create edge `' + id + '` with nonexistant ' + field + ' `' + val + '`'); + badSourceOrTarget = true; + } + } + + if (badSourceOrTarget) { + removeFromElements(); + continue; + } // can't create this + + + var src = cy.getElementById(_data3.source); + var tgt = cy.getElementById(_data3.target); // only one edge in node if loop + + if (src.same(tgt)) { + src._private.edges.push(edge); + } else { + src._private.edges.push(edge); + + tgt._private.edges.push(edge); + } + + edge._private.source = src; + edge._private.target = tgt; + } // if is edge + // create mock ids / indexes maps for element so it can be used like collections + + + _private.map = new Map$2(); + + _private.map.set(id, { + ele: _ele2, + index: 0 + }); + + _private.removed = false; + + if (addToPool) { + cy.addToPool(_ele2); + } + } // for each element + // do compound node sanity checks + + + for (var _i4 = 0; _i4 < nodes.length; _i4++) { + // each node + var node = nodes[_i4]; + var _data4 = node._private.data; + + if (number$1(_data4.parent)) { + // then automake string + _data4.parent = '' + _data4.parent; + } + + var parentId = _data4.parent; + var specifiedParent = parentId != null; + + if (specifiedParent || node._private.parent) { + var parent = node._private.parent ? cy.collection().merge(node._private.parent) : cy.getElementById(parentId); + + if (parent.empty()) { + // non-existant parent; just remove it + _data4.parent = undefined; + } else if (parent[0].removed()) { + warn('Node added with missing parent, reference to parent removed'); + _data4.parent = undefined; + node._private.parent = null; + } else { + var selfAsParent = false; + var ancestor = parent; + + while (!ancestor.empty()) { + if (node.same(ancestor)) { + // mark self as parent and remove from data + selfAsParent = true; + _data4.parent = undefined; // remove parent reference + // exit or we loop forever + + break; + } + + ancestor = ancestor.parent(); + } + + if (!selfAsParent) { + // connect with children + parent[0]._private.children.push(node); + + node._private.parent = parent[0]; // let the core know we have a compound graph + + cy_p.hasCompoundNodes = true; + } + } // else + + } // if specified parent + + } // for each node + + + if (elements.length > 0) { + var restored = elements.length === self.length ? self : new Collection(cy, elements); + + for (var _i5 = 0; _i5 < restored.length; _i5++) { + var _ele3 = restored[_i5]; + + if (_ele3.isNode()) { + continue; + } // adding an edge invalidates the traversal caches for the parallel edges + + + _ele3.parallelEdges().clearTraversalCache(); // adding an edge invalidates the traversal cache for the connected nodes + + + _ele3.source().clearTraversalCache(); + + _ele3.target().clearTraversalCache(); + } + + var toUpdateStyle; + + if (cy_p.hasCompoundNodes) { + toUpdateStyle = cy.collection().merge(restored).merge(restored.connectedNodes()).merge(restored.parent()); + } else { + toUpdateStyle = restored; + } + + toUpdateStyle.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(notifyRenderer); + + if (notifyRenderer) { + restored.emitAndNotify('add'); + } else if (addToPool) { + restored.emit('add'); + } + } + + return self; // chainability + }; + + elesfn$1.removed = function () { + var ele = this[0]; + return ele && ele._private.removed; + }; + + elesfn$1.inside = function () { + var ele = this[0]; + return ele && !ele._private.removed; + }; + + elesfn$1.remove = function () { + var notifyRenderer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + var removeFromPool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var self = this; + var elesToRemove = []; + var elesToRemoveIds = {}; + var cy = self._private.cy; // add connected edges + + function addConnectedEdges(node) { + var edges = node._private.edges; + + for (var i = 0; i < edges.length; i++) { + add(edges[i]); + } + } // add descendant nodes + + + function addChildren(node) { + var children = node._private.children; + + for (var i = 0; i < children.length; i++) { + add(children[i]); + } + } + + function add(ele) { + var alreadyAdded = elesToRemoveIds[ele.id()]; + + if (removeFromPool && ele.removed() || alreadyAdded) { + return; + } else { + elesToRemoveIds[ele.id()] = true; + } + + if (ele.isNode()) { + elesToRemove.push(ele); // nodes are removed last + + addConnectedEdges(ele); + addChildren(ele); + } else { + elesToRemove.unshift(ele); // edges are removed first + } + } // make the list of elements to remove + // (may be removing more than specified due to connected edges etc) + + + for (var i = 0, l = self.length; i < l; i++) { + var ele = self[i]; + add(ele); + } + + function removeEdgeRef(node, edge) { + var connectedEdges = node._private.edges; + removeFromArray(connectedEdges, edge); // removing an edges invalidates the traversal cache for its nodes + + node.clearTraversalCache(); + } + + function removeParallelRef(pllEdge) { + // removing an edge invalidates the traversal caches for the parallel edges + pllEdge.clearTraversalCache(); + } + + var alteredParents = []; + alteredParents.ids = {}; + + function removeChildRef(parent, ele) { + ele = ele[0]; + parent = parent[0]; + var children = parent._private.children; + var pid = parent.id(); + removeFromArray(children, ele); // remove parent => child ref + + ele._private.parent = null; // remove child => parent ref + + if (!alteredParents.ids[pid]) { + alteredParents.ids[pid] = true; + alteredParents.push(parent); + } + } + + self.dirtyCompoundBoundsCache(); + + if (removeFromPool) { + cy.removeFromPool(elesToRemove); // remove from core pool + } + + for (var _i6 = 0; _i6 < elesToRemove.length; _i6++) { + var _ele4 = elesToRemove[_i6]; + + if (_ele4.isEdge()) { + // remove references to this edge in its connected nodes + var src = _ele4.source()[0]; + + var tgt = _ele4.target()[0]; + + removeEdgeRef(src, _ele4); + removeEdgeRef(tgt, _ele4); + + var pllEdges = _ele4.parallelEdges(); + + for (var j = 0; j < pllEdges.length; j++) { + var pllEdge = pllEdges[j]; + removeParallelRef(pllEdge); + + if (pllEdge.isBundledBezier()) { + pllEdge.dirtyBoundingBoxCache(); + } + } + } else { + // remove reference to parent + var parent = _ele4.parent(); + + if (parent.length !== 0) { + removeChildRef(parent, _ele4); + } + } + + if (removeFromPool) { + // mark as removed + _ele4._private.removed = true; + } + } // check to see if we have a compound graph or not + + + var elesStillInside = cy._private.elements; + cy._private.hasCompoundNodes = false; + + for (var _i7 = 0; _i7 < elesStillInside.length; _i7++) { + var _ele5 = elesStillInside[_i7]; + + if (_ele5.isParent()) { + cy._private.hasCompoundNodes = true; + break; + } + } + + var removedElements = new Collection(this.cy(), elesToRemove); + + if (removedElements.size() > 0) { + // must manually notify since trigger won't do this automatically once removed + if (notifyRenderer) { + removedElements.emitAndNotify('remove'); + } else if (removeFromPool) { + removedElements.emit('remove'); + } + } // the parents who were modified by the removal need their style updated + + + for (var _i8 = 0; _i8 < alteredParents.length; _i8++) { + var _ele6 = alteredParents[_i8]; + + if (!removeFromPool || !_ele6.removed()) { + _ele6.updateStyle(); + } + } + + return removedElements; + }; + + elesfn$1.move = function (struct) { + var cy = this._private.cy; + var eles = this; // just clean up refs, caches, etc. in the same way as when removing and then restoring + // (our calls to remove/restore do not remove from the graph or make events) + + var notifyRenderer = false; + var modifyPool = false; + + var toString = function toString(id) { + return id == null ? id : '' + id; + }; // id must be string + + + if (struct.source !== undefined || struct.target !== undefined) { + var srcId = toString(struct.source); + var tgtId = toString(struct.target); + var srcExists = srcId != null && cy.hasElementWithId(srcId); + var tgtExists = tgtId != null && cy.hasElementWithId(tgtId); + + if (srcExists || tgtExists) { + cy.batch(function () { + // avoid duplicate style updates + eles.remove(notifyRenderer, modifyPool); // clean up refs etc. + + eles.emitAndNotify('moveout'); + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var _data5 = ele._private.data; + + if (ele.isEdge()) { + if (srcExists) { + _data5.source = srcId; + } + + if (tgtExists) { + _data5.target = tgtId; + } + } + } + + eles.restore(notifyRenderer, modifyPool); // make new refs, style, etc. + }); + eles.emitAndNotify('move'); + } + } else if (struct.parent !== undefined) { + // move node to new parent + var parentId = toString(struct.parent); + var parentExists = parentId === null || cy.hasElementWithId(parentId); + + if (parentExists) { + var pidToAssign = parentId === null ? undefined : parentId; + cy.batch(function () { + // avoid duplicate style updates + var updated = eles.remove(notifyRenderer, modifyPool); // clean up refs etc. + + updated.emitAndNotify('moveout'); + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var _data6 = ele._private.data; + + if (ele.isNode()) { + _data6.parent = pidToAssign; + } + } + + updated.restore(notifyRenderer, modifyPool); // make new refs, style, etc. + }); + eles.emitAndNotify('move'); + } + } + + return this; + }; + + [elesfn$j, elesfn$i, elesfn$h, elesfn$g, elesfn$f, data, elesfn$d, dimensions, elesfn$9, elesfn$8, elesfn$7, elesfn$6, elesfn$5, elesfn$4, elesfn$3, elesfn$2].forEach(function (props) { + extend(elesfn$1, props); + }); + + var corefn$9 = { + add: function add(opts) { + var elements; + var cy = this; // add the elements + + if (elementOrCollection(opts)) { + var eles = opts; + + if (eles._private.cy === cy) { + // same instance => just restore + elements = eles.restore(); + } else { + // otherwise, copy from json + var jsons = []; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + jsons.push(ele.json()); + } + + elements = new Collection(cy, jsons); + } + } // specify an array of options + else if (array(opts)) { + var _jsons = opts; + elements = new Collection(cy, _jsons); + } // specify via opts.nodes and opts.edges + else if (plainObject(opts) && (array(opts.nodes) || array(opts.edges))) { + var elesByGroup = opts; + var _jsons2 = []; + var grs = ['nodes', 'edges']; + + for (var _i = 0, il = grs.length; _i < il; _i++) { + var group = grs[_i]; + var elesArray = elesByGroup[group]; + + if (array(elesArray)) { + for (var j = 0, jl = elesArray.length; j < jl; j++) { + var json = extend({ + group: group + }, elesArray[j]); + + _jsons2.push(json); + } + } + } + + elements = new Collection(cy, _jsons2); + } // specify options for one element + else { + var _json = opts; + elements = new Element(cy, _json).collection(); + } + + return elements; + }, + remove: function remove(collection) { + if (elementOrCollection(collection)) ; else if (string(collection)) { + var selector = collection; + collection = this.$(selector); + } + + return collection.remove(); + } + }; + + /* global Float32Array */ + + /*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */ + function generateCubicBezier(mX1, mY1, mX2, mY2) { + var NEWTON_ITERATIONS = 4, + NEWTON_MIN_SLOPE = 0.001, + SUBDIVISION_PRECISION = 0.0000001, + SUBDIVISION_MAX_ITERATIONS = 10, + kSplineTableSize = 11, + kSampleStepSize = 1.0 / (kSplineTableSize - 1.0), + float32ArraySupported = typeof Float32Array !== 'undefined'; + /* Must contain four arguments. */ + + if (arguments.length !== 4) { + return false; + } + /* Arguments must be numbers. */ + + + for (var i = 0; i < 4; ++i) { + if (typeof arguments[i] !== "number" || isNaN(arguments[i]) || !isFinite(arguments[i])) { + return false; + } + } + /* X values must be in the [0, 1] range. */ + + + mX1 = Math.min(mX1, 1); + mX2 = Math.min(mX2, 1); + mX1 = Math.max(mX1, 0); + mX2 = Math.max(mX2, 0); + var mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize); + + function A(aA1, aA2) { + return 1.0 - 3.0 * aA2 + 3.0 * aA1; + } + + function B(aA1, aA2) { + return 3.0 * aA2 - 6.0 * aA1; + } + + function C(aA1) { + return 3.0 * aA1; + } + + function calcBezier(aT, aA1, aA2) { + return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; + } + + function getSlope(aT, aA1, aA2) { + return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); + } + + function newtonRaphsonIterate(aX, aGuessT) { + for (var _i = 0; _i < NEWTON_ITERATIONS; ++_i) { + var currentSlope = getSlope(aGuessT, mX1, mX2); + + if (currentSlope === 0.0) { + return aGuessT; + } + + var currentX = calcBezier(aGuessT, mX1, mX2) - aX; + aGuessT -= currentX / currentSlope; + } + + return aGuessT; + } + + function calcSampleValues() { + for (var _i2 = 0; _i2 < kSplineTableSize; ++_i2) { + mSampleValues[_i2] = calcBezier(_i2 * kSampleStepSize, mX1, mX2); + } + } + + function binarySubdivide(aX, aA, aB) { + var currentX, + currentT, + i = 0; + + do { + currentT = aA + (aB - aA) / 2.0; + currentX = calcBezier(currentT, mX1, mX2) - aX; + + if (currentX > 0.0) { + aB = currentT; + } else { + aA = currentT; + } + } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS); + + return currentT; + } + + function getTForX(aX) { + var intervalStart = 0.0, + currentSample = 1, + lastSample = kSplineTableSize - 1; + + for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) { + intervalStart += kSampleStepSize; + } + + --currentSample; + var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]), + guessForT = intervalStart + dist * kSampleStepSize, + initialSlope = getSlope(guessForT, mX1, mX2); + + if (initialSlope >= NEWTON_MIN_SLOPE) { + return newtonRaphsonIterate(aX, guessForT); + } else if (initialSlope === 0.0) { + return guessForT; + } else { + return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize); + } + } + + var _precomputed = false; + + function precompute() { + _precomputed = true; + + if (mX1 !== mY1 || mX2 !== mY2) { + calcSampleValues(); + } + } + + var f = function f(aX) { + if (!_precomputed) { + precompute(); + } + + if (mX1 === mY1 && mX2 === mY2) { + return aX; + } + + if (aX === 0) { + return 0; + } + + if (aX === 1) { + return 1; + } + + return calcBezier(getTForX(aX), mY1, mY2); + }; + + f.getControlPoints = function () { + return [{ + x: mX1, + y: mY1 + }, { + x: mX2, + y: mY2 + }]; + }; + + var str = "generateBezier(" + [mX1, mY1, mX2, mY2] + ")"; + + f.toString = function () { + return str; + }; + + return f; + } + + /*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */ + + /* Given a tension, friction, and duration, a simulation at 60FPS will first run without a defined duration in order to calculate the full path. A second pass + then adjusts the time delta -- using the relation between actual time and duration -- to calculate the path for the duration-constrained animation. */ + var generateSpringRK4 = function () { + function springAccelerationForState(state) { + return -state.tension * state.x - state.friction * state.v; + } + + function springEvaluateStateWithDerivative(initialState, dt, derivative) { + var state = { + x: initialState.x + derivative.dx * dt, + v: initialState.v + derivative.dv * dt, + tension: initialState.tension, + friction: initialState.friction + }; + return { + dx: state.v, + dv: springAccelerationForState(state) + }; + } + + function springIntegrateState(state, dt) { + var a = { + dx: state.v, + dv: springAccelerationForState(state) + }, + b = springEvaluateStateWithDerivative(state, dt * 0.5, a), + c = springEvaluateStateWithDerivative(state, dt * 0.5, b), + d = springEvaluateStateWithDerivative(state, dt, c), + dxdt = 1.0 / 6.0 * (a.dx + 2.0 * (b.dx + c.dx) + d.dx), + dvdt = 1.0 / 6.0 * (a.dv + 2.0 * (b.dv + c.dv) + d.dv); + state.x = state.x + dxdt * dt; + state.v = state.v + dvdt * dt; + return state; + } + + return function springRK4Factory(tension, friction, duration) { + var initState = { + x: -1, + v: 0, + tension: null, + friction: null + }, + path = [0], + time_lapsed = 0, + tolerance = 1 / 10000, + DT = 16 / 1000, + have_duration, + dt, + last_state; + tension = parseFloat(tension) || 500; + friction = parseFloat(friction) || 20; + duration = duration || null; + initState.tension = tension; + initState.friction = friction; + have_duration = duration !== null; + /* Calculate the actual time it takes for this animation to complete with the provided conditions. */ + + if (have_duration) { + /* Run the simulation without a duration. */ + time_lapsed = springRK4Factory(tension, friction); + /* Compute the adjusted time delta. */ + + dt = time_lapsed / duration * DT; + } else { + dt = DT; + } + + for (;;) { + /* Next/step function .*/ + last_state = springIntegrateState(last_state || initState, dt); + /* Store the position. */ + + path.push(1 + last_state.x); + time_lapsed += 16; + /* If the change threshold is reached, break. */ + + if (!(Math.abs(last_state.x) > tolerance && Math.abs(last_state.v) > tolerance)) { + break; + } + } + /* If duration is not defined, return the actual time required for completing this animation. Otherwise, return a closure that holds the + computed path and returns a snapshot of the position according to a given percentComplete. */ + + + return !have_duration ? time_lapsed : function (percentComplete) { + return path[percentComplete * (path.length - 1) | 0]; + }; + }; + }(); + + var cubicBezier = function cubicBezier(t1, p1, t2, p2) { + var bezier = generateCubicBezier(t1, p1, t2, p2); + return function (start, end, percent) { + return start + (end - start) * bezier(percent); + }; + }; + + var easings = { + 'linear': function linear(start, end, percent) { + return start + (end - start) * percent; + }, + // default easings + 'ease': cubicBezier(0.25, 0.1, 0.25, 1), + 'ease-in': cubicBezier(0.42, 0, 1, 1), + 'ease-out': cubicBezier(0, 0, 0.58, 1), + 'ease-in-out': cubicBezier(0.42, 0, 0.58, 1), + // sine + 'ease-in-sine': cubicBezier(0.47, 0, 0.745, 0.715), + 'ease-out-sine': cubicBezier(0.39, 0.575, 0.565, 1), + 'ease-in-out-sine': cubicBezier(0.445, 0.05, 0.55, 0.95), + // quad + 'ease-in-quad': cubicBezier(0.55, 0.085, 0.68, 0.53), + 'ease-out-quad': cubicBezier(0.25, 0.46, 0.45, 0.94), + 'ease-in-out-quad': cubicBezier(0.455, 0.03, 0.515, 0.955), + // cubic + 'ease-in-cubic': cubicBezier(0.55, 0.055, 0.675, 0.19), + 'ease-out-cubic': cubicBezier(0.215, 0.61, 0.355, 1), + 'ease-in-out-cubic': cubicBezier(0.645, 0.045, 0.355, 1), + // quart + 'ease-in-quart': cubicBezier(0.895, 0.03, 0.685, 0.22), + 'ease-out-quart': cubicBezier(0.165, 0.84, 0.44, 1), + 'ease-in-out-quart': cubicBezier(0.77, 0, 0.175, 1), + // quint + 'ease-in-quint': cubicBezier(0.755, 0.05, 0.855, 0.06), + 'ease-out-quint': cubicBezier(0.23, 1, 0.32, 1), + 'ease-in-out-quint': cubicBezier(0.86, 0, 0.07, 1), + // expo + 'ease-in-expo': cubicBezier(0.95, 0.05, 0.795, 0.035), + 'ease-out-expo': cubicBezier(0.19, 1, 0.22, 1), + 'ease-in-out-expo': cubicBezier(1, 0, 0, 1), + // circ + 'ease-in-circ': cubicBezier(0.6, 0.04, 0.98, 0.335), + 'ease-out-circ': cubicBezier(0.075, 0.82, 0.165, 1), + 'ease-in-out-circ': cubicBezier(0.785, 0.135, 0.15, 0.86), + // user param easings... + 'spring': function spring(tension, friction, duration) { + if (duration === 0) { + // can't get a spring w/ duration 0 + return easings.linear; // duration 0 => jump to end so impl doesn't matter + } + + var spring = generateSpringRK4(tension, friction, duration); + return function (start, end, percent) { + return start + (end - start) * spring(percent); + }; + }, + 'cubic-bezier': cubicBezier + }; + + function getEasedValue(type, start, end, percent, easingFn) { + if (percent === 1) { + return end; + } + + if (start === end) { + return end; + } + + var val = easingFn(start, end, percent); + + if (type == null) { + return val; + } + + if (type.roundValue || type.color) { + val = Math.round(val); + } + + if (type.min !== undefined) { + val = Math.max(val, type.min); + } + + if (type.max !== undefined) { + val = Math.min(val, type.max); + } + + return val; + } + + function getValue(prop, spec) { + if (prop.pfValue != null || prop.value != null) { + if (prop.pfValue != null && (spec == null || spec.type.units !== '%')) { + return prop.pfValue; + } else { + return prop.value; + } + } else { + return prop; + } + } + + function ease(startProp, endProp, percent, easingFn, propSpec) { + var type = propSpec != null ? propSpec.type : null; + + if (percent < 0) { + percent = 0; + } else if (percent > 1) { + percent = 1; + } + + var start = getValue(startProp, propSpec); + var end = getValue(endProp, propSpec); + + if (number$1(start) && number$1(end)) { + return getEasedValue(type, start, end, percent, easingFn); + } else if (array(start) && array(end)) { + var easedArr = []; + + for (var i = 0; i < end.length; i++) { + var si = start[i]; + var ei = end[i]; + + if (si != null && ei != null) { + var val = getEasedValue(type, si, ei, percent, easingFn); + easedArr.push(val); + } else { + easedArr.push(ei); + } + } + + return easedArr; + } + + return undefined; + } + + function step$1(self, ani, now, isCore) { + var isEles = !isCore; + var _p = self._private; + var ani_p = ani._private; + var pEasing = ani_p.easing; + var startTime = ani_p.startTime; + var cy = isCore ? self : self.cy(); + var style = cy.style(); + + if (!ani_p.easingImpl) { + if (pEasing == null) { + // use default + ani_p.easingImpl = easings['linear']; + } else { + // then define w/ name + var easingVals; + + if (string(pEasing)) { + var easingProp = style.parse('transition-timing-function', pEasing); + easingVals = easingProp.value; + } else { + // then assume preparsed array + easingVals = pEasing; + } + + var name, args; + + if (string(easingVals)) { + name = easingVals; + args = []; + } else { + name = easingVals[1]; + args = easingVals.slice(2).map(function (n) { + return +n; + }); + } + + if (args.length > 0) { + // create with args + if (name === 'spring') { + args.push(ani_p.duration); // need duration to generate spring + } + + ani_p.easingImpl = easings[name].apply(null, args); + } else { + // static impl by name + ani_p.easingImpl = easings[name]; + } + } + } + + var easing = ani_p.easingImpl; + var percent; + + if (ani_p.duration === 0) { + percent = 1; + } else { + percent = (now - startTime) / ani_p.duration; + } + + if (ani_p.applying) { + percent = ani_p.progress; + } + + if (percent < 0) { + percent = 0; + } else if (percent > 1) { + percent = 1; + } + + if (ani_p.delay == null) { + // then update + var startPos = ani_p.startPosition; + var endPos = ani_p.position; + + if (endPos && isEles && !self.locked()) { + var newPos = {}; + + if (valid(startPos.x, endPos.x)) { + newPos.x = ease(startPos.x, endPos.x, percent, easing); + } + + if (valid(startPos.y, endPos.y)) { + newPos.y = ease(startPos.y, endPos.y, percent, easing); + } + + self.position(newPos); + } + + var startPan = ani_p.startPan; + var endPan = ani_p.pan; + var pan = _p.pan; + var animatingPan = endPan != null && isCore; + + if (animatingPan) { + if (valid(startPan.x, endPan.x)) { + pan.x = ease(startPan.x, endPan.x, percent, easing); + } + + if (valid(startPan.y, endPan.y)) { + pan.y = ease(startPan.y, endPan.y, percent, easing); + } + + self.emit('pan'); + } + + var startZoom = ani_p.startZoom; + var endZoom = ani_p.zoom; + var animatingZoom = endZoom != null && isCore; + + if (animatingZoom) { + if (valid(startZoom, endZoom)) { + _p.zoom = bound(_p.minZoom, ease(startZoom, endZoom, percent, easing), _p.maxZoom); + } + + self.emit('zoom'); + } + + if (animatingPan || animatingZoom) { + self.emit('viewport'); + } + + var props = ani_p.style; + + if (props && props.length > 0 && isEles) { + for (var i = 0; i < props.length; i++) { + var prop = props[i]; + var _name = prop.name; + var end = prop; + var start = ani_p.startStyle[_name]; + var propSpec = style.properties[start.name]; + var easedVal = ease(start, end, percent, easing, propSpec); + style.overrideBypass(self, _name, easedVal); + } // for props + + + self.emit('style'); + } // if + + } + + ani_p.progress = percent; + return percent; + } + + function valid(start, end) { + if (start == null || end == null) { + return false; + } + + if (number$1(start) && number$1(end)) { + return true; + } else if (start && end) { + return true; + } + + return false; + } + + function startAnimation(self, ani, now, isCore) { + var ani_p = ani._private; + ani_p.started = true; + ani_p.startTime = now - ani_p.progress * ani_p.duration; + } + + function stepAll(now, cy) { + var eles = cy._private.aniEles; + var doneEles = []; + + function stepOne(ele, isCore) { + var _p = ele._private; + var current = _p.animation.current; + var queue = _p.animation.queue; + var ranAnis = false; // if nothing currently animating, get something from the queue + + if (current.length === 0) { + var next = queue.shift(); + + if (next) { + current.push(next); + } + } + + var callbacks = function callbacks(_callbacks) { + for (var j = _callbacks.length - 1; j >= 0; j--) { + var cb = _callbacks[j]; + cb(); + } + + _callbacks.splice(0, _callbacks.length); + }; // step and remove if done + + + for (var i = current.length - 1; i >= 0; i--) { + var ani = current[i]; + var ani_p = ani._private; + + if (ani_p.stopped) { + current.splice(i, 1); + ani_p.hooked = false; + ani_p.playing = false; + ani_p.started = false; + callbacks(ani_p.frames); + continue; + } + + if (!ani_p.playing && !ani_p.applying) { + continue; + } // an apply() while playing shouldn't do anything + + + if (ani_p.playing && ani_p.applying) { + ani_p.applying = false; + } + + if (!ani_p.started) { + startAnimation(ele, ani, now); + } + + step$1(ele, ani, now, isCore); + + if (ani_p.applying) { + ani_p.applying = false; + } + + callbacks(ani_p.frames); + + if (ani_p.step != null) { + ani_p.step(now); + } + + if (ani.completed()) { + current.splice(i, 1); + ani_p.hooked = false; + ani_p.playing = false; + ani_p.started = false; + callbacks(ani_p.completes); + } + + ranAnis = true; + } + + if (!isCore && current.length === 0 && queue.length === 0) { + doneEles.push(ele); + } + + return ranAnis; + } // stepElement + // handle all eles + + + var ranEleAni = false; + + for (var e = 0; e < eles.length; e++) { + var ele = eles[e]; + var handledThisEle = stepOne(ele); + ranEleAni = ranEleAni || handledThisEle; + } // each element + + + var ranCoreAni = stepOne(cy, true); // notify renderer + + if (ranEleAni || ranCoreAni) { + if (eles.length > 0) { + cy.notify('draw', eles); + } else { + cy.notify('draw'); + } + } // remove elements from list of currently animating if its queues are empty + + + eles.unmerge(doneEles); + cy.emit('step'); + } // stepAll + + var corefn$8 = { + // pull in animation functions + animate: define.animate(), + animation: define.animation(), + animated: define.animated(), + clearQueue: define.clearQueue(), + delay: define.delay(), + delayAnimation: define.delayAnimation(), + stop: define.stop(), + addToAnimationPool: function addToAnimationPool(eles) { + var cy = this; + + if (!cy.styleEnabled()) { + return; + } // save cycles when no style used + + + cy._private.aniEles.merge(eles); + }, + stopAnimationLoop: function stopAnimationLoop() { + this._private.animationsRunning = false; + }, + startAnimationLoop: function startAnimationLoop() { + var cy = this; + cy._private.animationsRunning = true; + + if (!cy.styleEnabled()) { + return; + } // save cycles when no style used + // NB the animation loop will exec in headless environments if style enabled + // and explicit cy.destroy() is necessary to stop the loop + + + function headlessStep() { + if (!cy._private.animationsRunning) { + return; + } + + requestAnimationFrame(function animationStep(now) { + stepAll(now, cy); + headlessStep(); + }); + } + + var renderer = cy.renderer(); + + if (renderer && renderer.beforeRender) { + // let the renderer schedule animations + renderer.beforeRender(function rendererAnimationStep(willDraw, now) { + stepAll(now, cy); + }, renderer.beforeRenderPriorities.animations); + } else { + // manage the animation loop ourselves + headlessStep(); // first call + } + } + }; + + var emitterOptions = { + qualifierCompare: function qualifierCompare(selector1, selector2) { + if (selector1 == null || selector2 == null) { + return selector1 == null && selector2 == null; + } else { + return selector1.sameText(selector2); + } + }, + eventMatches: function eventMatches(cy, listener, eventObj) { + var selector = listener.qualifier; + + if (selector != null) { + return cy !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target); + } + + return true; + }, + addEventFields: function addEventFields(cy, evt) { + evt.cy = cy; + evt.target = cy; + }, + callbackContext: function callbackContext(cy, listener, eventObj) { + return listener.qualifier != null ? eventObj.target : cy; + } + }; + + var argSelector = function argSelector(arg) { + if (string(arg)) { + return new Selector(arg); + } else { + return arg; + } + }; + + var elesfn = { + createEmitter: function createEmitter() { + var _p = this._private; + + if (!_p.emitter) { + _p.emitter = new Emitter(emitterOptions, this); + } + + return this; + }, + emitter: function emitter() { + return this._private.emitter; + }, + on: function on(events, selector, callback) { + this.emitter().on(events, argSelector(selector), callback); + return this; + }, + removeListener: function removeListener(events, selector, callback) { + this.emitter().removeListener(events, argSelector(selector), callback); + return this; + }, + removeAllListeners: function removeAllListeners() { + this.emitter().removeAllListeners(); + return this; + }, + one: function one(events, selector, callback) { + this.emitter().one(events, argSelector(selector), callback); + return this; + }, + once: function once(events, selector, callback) { + this.emitter().one(events, argSelector(selector), callback); + return this; + }, + emit: function emit(events, extraParams) { + this.emitter().emit(events, extraParams); + return this; + }, + emitAndNotify: function emitAndNotify(event, eles) { + this.emit(event); + this.notify(event, eles); + return this; + } + }; + define.eventAliasesOn(elesfn); + + var corefn$7 = { + png: function png(options) { + var renderer = this._private.renderer; + options = options || {}; + return renderer.png(options); + }, + jpg: function jpg(options) { + var renderer = this._private.renderer; + options = options || {}; + options.bg = options.bg || '#fff'; + return renderer.jpg(options); + } + }; + corefn$7.jpeg = corefn$7.jpg; + + var corefn$6 = { + layout: function layout(options) { + var cy = this; + + if (options == null) { + error('Layout options must be specified to make a layout'); + return; + } + + if (options.name == null) { + error('A `name` must be specified to make a layout'); + return; + } + + var name = options.name; + var Layout = cy.extension('layout', name); + + if (Layout == null) { + error('No such layout `' + name + '` found. Did you forget to import it and `cytoscape.use()` it?'); + return; + } + + var eles; + + if (string(options.eles)) { + eles = cy.$(options.eles); + } else { + eles = options.eles != null ? options.eles : cy.$(); + } + + var layout = new Layout(extend({}, options, { + cy: cy, + eles: eles + })); + return layout; + } + }; + corefn$6.createLayout = corefn$6.makeLayout = corefn$6.layout; + + var corefn$5 = { + notify: function notify(eventName, eventEles) { + var _p = this._private; + + if (this.batching()) { + _p.batchNotifications = _p.batchNotifications || {}; + var eles = _p.batchNotifications[eventName] = _p.batchNotifications[eventName] || this.collection(); + + if (eventEles != null) { + eles.merge(eventEles); + } + + return; // notifications are disabled during batching + } + + if (!_p.notificationsEnabled) { + return; + } // exit on disabled + + + var renderer = this.renderer(); // exit if destroy() called on core or renderer in between frames #1499 #1528 + + if (this.destroyed() || !renderer) { + return; + } + + renderer.notify(eventName, eventEles); + }, + notifications: function notifications(bool) { + var p = this._private; + + if (bool === undefined) { + return p.notificationsEnabled; + } else { + p.notificationsEnabled = bool ? true : false; + } + + return this; + }, + noNotifications: function noNotifications(callback) { + this.notifications(false); + callback(); + this.notifications(true); + }, + batching: function batching() { + return this._private.batchCount > 0; + }, + startBatch: function startBatch() { + var _p = this._private; + + if (_p.batchCount == null) { + _p.batchCount = 0; + } + + if (_p.batchCount === 0) { + _p.batchStyleEles = this.collection(); + _p.batchNotifications = {}; + } + + _p.batchCount++; + return this; + }, + endBatch: function endBatch() { + var _p = this._private; + + if (_p.batchCount === 0) { + return this; + } + + _p.batchCount--; + + if (_p.batchCount === 0) { + // update style for dirty eles + _p.batchStyleEles.updateStyle(); + + var renderer = this.renderer(); // notify the renderer of queued eles and event types + + Object.keys(_p.batchNotifications).forEach(function (eventName) { + var eles = _p.batchNotifications[eventName]; + + if (eles.empty()) { + renderer.notify(eventName); + } else { + renderer.notify(eventName, eles); + } + }); + } + + return this; + }, + batch: function batch(callback) { + this.startBatch(); + callback(); + this.endBatch(); + return this; + }, + // for backwards compatibility + batchData: function batchData(map) { + var cy = this; + return this.batch(function () { + var ids = Object.keys(map); + + for (var i = 0; i < ids.length; i++) { + var id = ids[i]; + var data = map[id]; + var ele = cy.getElementById(id); + ele.data(data); + } + }); + } + }; + + var rendererDefaults = defaults$g({ + hideEdgesOnViewport: false, + textureOnViewport: false, + motionBlur: false, + motionBlurOpacity: 0.05, + pixelRatio: undefined, + desktopTapThreshold: 4, + touchTapThreshold: 8, + wheelSensitivity: 1, + debug: false, + showFps: false + }); + var corefn$4 = { + renderTo: function renderTo(context, zoom, pan, pxRatio) { + var r = this._private.renderer; + r.renderTo(context, zoom, pan, pxRatio); + return this; + }, + renderer: function renderer() { + return this._private.renderer; + }, + forceRender: function forceRender() { + this.notify('draw'); + return this; + }, + resize: function resize() { + this.invalidateSize(); + this.emitAndNotify('resize'); + return this; + }, + initRenderer: function initRenderer(options) { + var cy = this; + var RendererProto = cy.extension('renderer', options.name); + + if (RendererProto == null) { + error("Can not initialise: No such renderer `".concat(options.name, "` found. Did you forget to import it and `cytoscape.use()` it?")); + return; + } + + if (options.wheelSensitivity !== undefined) { + warn("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine."); + } + + var rOpts = rendererDefaults(options); + rOpts.cy = cy; + cy._private.renderer = new RendererProto(rOpts); + this.notify('init'); + }, + destroyRenderer: function destroyRenderer() { + var cy = this; + cy.notify('destroy'); // destroy the renderer + + var domEle = cy.container(); + + if (domEle) { + domEle._cyreg = null; + + while (domEle.childNodes.length > 0) { + domEle.removeChild(domEle.childNodes[0]); + } + } + + cy._private.renderer = null; // to be extra safe, remove the ref + + cy.mutableElements().forEach(function (ele) { + var _p = ele._private; + _p.rscratch = {}; + _p.rstyle = {}; + _p.animation.current = []; + _p.animation.queue = []; + }); + }, + onRender: function onRender(fn) { + return this.on('render', fn); + }, + offRender: function offRender(fn) { + return this.off('render', fn); + } + }; + corefn$4.invalidateDimensions = corefn$4.resize; + + var corefn$3 = { + // get a collection + // - empty collection on no args + // - collection of elements in the graph on selector arg + // - guarantee a returned collection when elements or collection specified + collection: function collection(eles, opts) { + if (string(eles)) { + return this.$(eles); + } else if (elementOrCollection(eles)) { + return eles.collection(); + } else if (array(eles)) { + if (!opts) { + opts = {}; + } + + return new Collection(this, eles, opts.unique, opts.removed); + } + + return new Collection(this); + }, + nodes: function nodes(selector) { + var nodes = this.$(function (ele) { + return ele.isNode(); + }); + + if (selector) { + return nodes.filter(selector); + } + + return nodes; + }, + edges: function edges(selector) { + var edges = this.$(function (ele) { + return ele.isEdge(); + }); + + if (selector) { + return edges.filter(selector); + } + + return edges; + }, + // search the graph like jQuery + $: function $(selector) { + var eles = this._private.elements; + + if (selector) { + return eles.filter(selector); + } else { + return eles.spawnSelf(); + } + }, + mutableElements: function mutableElements() { + return this._private.elements; + } + }; // aliases + + corefn$3.elements = corefn$3.filter = corefn$3.$; + + var styfn$8 = {}; // keys for style blocks, e.g. ttfftt + + var TRUE = 't'; + var FALSE = 'f'; // (potentially expensive calculation) + // apply the style to the element based on + // - its bypass + // - what selectors match it + + styfn$8.apply = function (eles) { + var self = this; + var _p = self._private; + var cy = _p.cy; + var updatedEles = cy.collection(); + + for (var ie = 0; ie < eles.length; ie++) { + var ele = eles[ie]; + var cxtMeta = self.getContextMeta(ele); + + if (cxtMeta.empty) { + continue; + } + + var cxtStyle = self.getContextStyle(cxtMeta); + var app = self.applyContextStyle(cxtMeta, cxtStyle, ele); + + if (ele._private.appliedInitStyle) { + self.updateTransitions(ele, app.diffProps); + } else { + ele._private.appliedInitStyle = true; + } + + var hintsDiff = self.updateStyleHints(ele); + + if (hintsDiff) { + updatedEles.push(ele); + } + } // for elements + + + return updatedEles; + }; + + styfn$8.getPropertiesDiff = function (oldCxtKey, newCxtKey) { + var self = this; + var cache = self._private.propDiffs = self._private.propDiffs || {}; + var dualCxtKey = oldCxtKey + '-' + newCxtKey; + var cachedVal = cache[dualCxtKey]; + + if (cachedVal) { + return cachedVal; + } + + var diffProps = []; + var addedProp = {}; + + for (var i = 0; i < self.length; i++) { + var cxt = self[i]; + var oldHasCxt = oldCxtKey[i] === TRUE; + var newHasCxt = newCxtKey[i] === TRUE; + var cxtHasDiffed = oldHasCxt !== newHasCxt; + var cxtHasMappedProps = cxt.mappedProperties.length > 0; + + if (cxtHasDiffed || newHasCxt && cxtHasMappedProps) { + var props = void 0; + + if (cxtHasDiffed && cxtHasMappedProps) { + props = cxt.properties; // suffices b/c mappedProperties is a subset of properties + } else if (cxtHasDiffed) { + props = cxt.properties; // need to check them all + } else if (cxtHasMappedProps) { + props = cxt.mappedProperties; // only need to check mapped + } + + for (var j = 0; j < props.length; j++) { + var prop = props[j]; + var name = prop.name; // if a later context overrides this property, then the fact that this context has switched/diffed doesn't matter + // (semi expensive check since it makes this function O(n^2) on context length, but worth it since overall result + // is cached) + + var laterCxtOverrides = false; + + for (var k = i + 1; k < self.length; k++) { + var laterCxt = self[k]; + var hasLaterCxt = newCxtKey[k] === TRUE; + + if (!hasLaterCxt) { + continue; + } // can't override unless the context is active + + + laterCxtOverrides = laterCxt.properties[prop.name] != null; + + if (laterCxtOverrides) { + break; + } // exit early as long as one later context overrides + + } + + if (!addedProp[name] && !laterCxtOverrides) { + addedProp[name] = true; + diffProps.push(name); + } + } // for props + + } // if + + } // for contexts + + + cache[dualCxtKey] = diffProps; + return diffProps; + }; + + styfn$8.getContextMeta = function (ele) { + var self = this; + var cxtKey = ''; + var diffProps; + var prevKey = ele._private.styleCxtKey || ''; // get the cxt key + + for (var i = 0; i < self.length; i++) { + var context = self[i]; + var contextSelectorMatches = context.selector && context.selector.matches(ele); // NB: context.selector may be null for 'core' + + if (contextSelectorMatches) { + cxtKey += TRUE; + } else { + cxtKey += FALSE; + } + } // for context + + + diffProps = self.getPropertiesDiff(prevKey, cxtKey); + ele._private.styleCxtKey = cxtKey; + return { + key: cxtKey, + diffPropNames: diffProps, + empty: diffProps.length === 0 + }; + }; // gets a computed ele style object based on matched contexts + + + styfn$8.getContextStyle = function (cxtMeta) { + var cxtKey = cxtMeta.key; + var self = this; + var cxtStyles = this._private.contextStyles = this._private.contextStyles || {}; // if already computed style, returned cached copy + + if (cxtStyles[cxtKey]) { + return cxtStyles[cxtKey]; + } + + var style = { + _private: { + key: cxtKey + } + }; + + for (var i = 0; i < self.length; i++) { + var cxt = self[i]; + var hasCxt = cxtKey[i] === TRUE; + + if (!hasCxt) { + continue; + } + + for (var j = 0; j < cxt.properties.length; j++) { + var prop = cxt.properties[j]; + style[prop.name] = prop; + } + } + + cxtStyles[cxtKey] = style; + return style; + }; + + styfn$8.applyContextStyle = function (cxtMeta, cxtStyle, ele) { + var self = this; + var diffProps = cxtMeta.diffPropNames; + var retDiffProps = {}; + var types = self.types; + + for (var i = 0; i < diffProps.length; i++) { + var diffPropName = diffProps[i]; + var cxtProp = cxtStyle[diffPropName]; + var eleProp = ele.pstyle(diffPropName); + + if (!cxtProp) { + // no context prop means delete + if (!eleProp) { + continue; // no existing prop means nothing needs to be removed + // nb affects initial application on mapped values like control-point-distances + } else if (eleProp.bypass) { + cxtProp = { + name: diffPropName, + deleteBypassed: true + }; + } else { + cxtProp = { + name: diffPropName, + "delete": true + }; + } + } // save cycles when the context prop doesn't need to be applied + + + if (eleProp === cxtProp) { + continue; + } // save cycles when a mapped context prop doesn't need to be applied + + + if (cxtProp.mapped === types.fn // context prop is function mapper + && eleProp != null // some props can be null even by default (e.g. a prop that overrides another one) + && eleProp.mapping != null // ele prop is a concrete value from from a mapper + && eleProp.mapping.value === cxtProp.value // the current prop on the ele is a flat prop value for the function mapper + ) { + // NB don't write to cxtProp, as it's shared among eles (stored in stylesheet) + var mapping = eleProp.mapping; // can write to mapping, as it's a per-ele copy + + var fnValue = mapping.fnValue = cxtProp.value(ele); // temporarily cache the value in case of a miss + + if (fnValue === mapping.prevFnValue) { + continue; + } + } + + var retDiffProp = retDiffProps[diffPropName] = { + prev: eleProp + }; + self.applyParsedProperty(ele, cxtProp); + retDiffProp.next = ele.pstyle(diffPropName); + + if (retDiffProp.next && retDiffProp.next.bypass) { + retDiffProp.next = retDiffProp.next.bypassed; + } + } + + return { + diffProps: retDiffProps + }; + }; + + styfn$8.updateStyleHints = function (ele) { + var _p = ele._private; + var self = this; + var propNames = self.propertyGroupNames; + var propGrKeys = self.propertyGroupKeys; + + var propHash = function propHash(ele, propNames, seedKey) { + return self.getPropertiesHash(ele, propNames, seedKey); + }; + + var oldStyleKey = _p.styleKey; + + if (ele.removed()) { + return false; + } + + var isNode = _p.group === 'nodes'; // get the style key hashes per prop group + // but lazily -- only use non-default prop values to reduce the number of hashes + // + + var overriddenStyles = ele._private.style; + propNames = Object.keys(overriddenStyles); + + for (var i = 0; i < propGrKeys.length; i++) { + var grKey = propGrKeys[i]; + _p.styleKeys[grKey] = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]; + } + + var updateGrKey1 = function updateGrKey1(val, grKey) { + return _p.styleKeys[grKey][0] = hashInt(val, _p.styleKeys[grKey][0]); + }; + + var updateGrKey2 = function updateGrKey2(val, grKey) { + return _p.styleKeys[grKey][1] = hashIntAlt(val, _p.styleKeys[grKey][1]); + }; + + var updateGrKey = function updateGrKey(val, grKey) { + updateGrKey1(val, grKey); + updateGrKey2(val, grKey); + }; + + var updateGrKeyWStr = function updateGrKeyWStr(strVal, grKey) { + for (var j = 0; j < strVal.length; j++) { + var ch = strVal.charCodeAt(j); + updateGrKey1(ch, grKey); + updateGrKey2(ch, grKey); + } + }; // - hashing works on 32 bit ints b/c we use bitwise ops + // - small numbers get cut off (e.g. 0.123 is seen as 0 by the hashing function) + // - raise up small numbers so more significant digits are seen by hashing + // - make small numbers larger than a normal value to avoid collisions + // - works in practice and it's relatively cheap + + + var N = 2000000000; + + var cleanNum = function cleanNum(val) { + return -128 < val && val < 128 && Math.floor(val) !== val ? N - (val * 1024 | 0) : val; + }; + + for (var _i = 0; _i < propNames.length; _i++) { + var name = propNames[_i]; + var parsedProp = overriddenStyles[name]; + + if (parsedProp == null) { + continue; + } + + var propInfo = this.properties[name]; + var type = propInfo.type; + var _grKey = propInfo.groupKey; + var normalizedNumberVal = void 0; + + if (propInfo.hashOverride != null) { + normalizedNumberVal = propInfo.hashOverride(ele, parsedProp); + } else if (parsedProp.pfValue != null) { + normalizedNumberVal = parsedProp.pfValue; + } // might not be a number if it allows enums + + + var numberVal = propInfo.enums == null ? parsedProp.value : null; + var haveNormNum = normalizedNumberVal != null; + var haveUnitedNum = numberVal != null; + var haveNum = haveNormNum || haveUnitedNum; + var units = parsedProp.units; // numbers are cheaper to hash than strings + // 1 hash op vs n hash ops (for length n string) + + if (type.number && haveNum && !type.multiple) { + var v = haveNormNum ? normalizedNumberVal : numberVal; + updateGrKey(cleanNum(v), _grKey); + + if (!haveNormNum && units != null) { + updateGrKeyWStr(units, _grKey); + } + } else { + updateGrKeyWStr(parsedProp.strValue, _grKey); + } + } // overall style key + // + + + var hash = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]; + + for (var _i2 = 0; _i2 < propGrKeys.length; _i2++) { + var _grKey2 = propGrKeys[_i2]; + var grHash = _p.styleKeys[_grKey2]; + hash[0] = hashInt(grHash[0], hash[0]); + hash[1] = hashIntAlt(grHash[1], hash[1]); + } + + _p.styleKey = combineHashes(hash[0], hash[1]); // label dims + // + + var sk = _p.styleKeys; + _p.labelDimsKey = combineHashesArray(sk.labelDimensions); + var labelKeys = propHash(ele, ['label'], sk.labelDimensions); + _p.labelKey = combineHashesArray(labelKeys); + _p.labelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, labelKeys)); + + if (!isNode) { + var sourceLabelKeys = propHash(ele, ['source-label'], sk.labelDimensions); + _p.sourceLabelKey = combineHashesArray(sourceLabelKeys); + _p.sourceLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, sourceLabelKeys)); + var targetLabelKeys = propHash(ele, ['target-label'], sk.labelDimensions); + _p.targetLabelKey = combineHashesArray(targetLabelKeys); + _p.targetLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, targetLabelKeys)); + } // node + // + + + if (isNode) { + var _p$styleKeys = _p.styleKeys, + nodeBody = _p$styleKeys.nodeBody, + nodeBorder = _p$styleKeys.nodeBorder, + backgroundImage = _p$styleKeys.backgroundImage, + compound = _p$styleKeys.compound, + pie = _p$styleKeys.pie; + var nodeKeys = [nodeBody, nodeBorder, backgroundImage, compound, pie].filter(function (k) { + return k != null; + }).reduce(hashArrays, [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]); + _p.nodeKey = combineHashesArray(nodeKeys); + _p.hasPie = pie != null && pie[0] !== DEFAULT_HASH_SEED && pie[1] !== DEFAULT_HASH_SEED_ALT; + } + + return oldStyleKey !== _p.styleKey; + }; + + styfn$8.clearStyleHints = function (ele) { + var _p = ele._private; + _p.styleCxtKey = ''; + _p.styleKeys = {}; + _p.styleKey = null; + _p.labelKey = null; + _p.labelStyleKey = null; + _p.sourceLabelKey = null; + _p.sourceLabelStyleKey = null; + _p.targetLabelKey = null; + _p.targetLabelStyleKey = null; + _p.nodeKey = null; + _p.hasPie = null; + }; // apply a property to the style (for internal use) + // returns whether application was successful + // + // now, this function flattens the property, and here's how: + // + // for parsedProp:{ bypass: true, deleteBypass: true } + // no property is generated, instead the bypass property in the + // element's style is replaced by what's pointed to by the `bypassed` + // field in the bypass property (i.e. restoring the property the + // bypass was overriding) + // + // for parsedProp:{ mapped: truthy } + // the generated flattenedProp:{ mapping: prop } + // + // for parsedProp:{ bypass: true } + // the generated flattenedProp:{ bypassed: parsedProp } + + + styfn$8.applyParsedProperty = function (ele, parsedProp) { + var self = this; + var prop = parsedProp; + var style = ele._private.style; + var flatProp; + var types = self.types; + var type = self.properties[prop.name].type; + var propIsBypass = prop.bypass; + var origProp = style[prop.name]; + var origPropIsBypass = origProp && origProp.bypass; + var _p = ele._private; + var flatPropMapping = 'mapping'; + + var getVal = function getVal(p) { + if (p == null) { + return null; + } else if (p.pfValue != null) { + return p.pfValue; + } else { + return p.value; + } + }; + + var checkTriggers = function checkTriggers() { + var fromVal = getVal(origProp); + var toVal = getVal(prop); + self.checkTriggers(ele, prop.name, fromVal, toVal); + }; + + if (prop && prop.name.substr(0, 3) === 'pie') { + warn('The pie style properties are deprecated. Create charts using background images instead.'); + } // edge sanity checks to prevent the client from making serious mistakes + + + if (parsedProp.name === 'curve-style' && ele.isEdge() && ( // loops must be bundled beziers + parsedProp.value !== 'bezier' && ele.isLoop() || // edges connected to compound nodes can not be haystacks + parsedProp.value === 'haystack' && (ele.source().isParent() || ele.target().isParent()))) { + prop = parsedProp = this.parse(parsedProp.name, 'bezier', propIsBypass); + } + + if (prop["delete"]) { + // delete the property and use the default value on falsey value + style[prop.name] = undefined; + checkTriggers(); + return true; + } + + if (prop.deleteBypassed) { + // delete the property that the + if (!origProp) { + checkTriggers(); + return true; // can't delete if no prop + } else if (origProp.bypass) { + // delete bypassed + origProp.bypassed = undefined; + checkTriggers(); + return true; + } else { + return false; // we're unsuccessful deleting the bypassed + } + } // check if we need to delete the current bypass + + + if (prop.deleteBypass) { + // then this property is just here to indicate we need to delete + if (!origProp) { + checkTriggers(); + return true; // property is already not defined + } else if (origProp.bypass) { + // then replace the bypass property with the original + // because the bypassed property was already applied (and therefore parsed), we can just replace it (no reapplying necessary) + style[prop.name] = origProp.bypassed; + checkTriggers(); + return true; + } else { + return false; // we're unsuccessful deleting the bypass + } + } + + var printMappingErr = function printMappingErr() { + warn('Do not assign mappings to elements without corresponding data (i.e. ele `' + ele.id() + '` has no mapping for property `' + prop.name + '` with data field `' + prop.field + '`); try a `[' + prop.field + ']` selector to limit scope to elements with `' + prop.field + '` defined'); + }; // put the property in the style objects + + + switch (prop.mapped) { + // flatten the property if mapped + case types.mapData: + { + // flatten the field (e.g. data.foo.bar) + var fields = prop.field.split('.'); + var fieldVal = _p.data; + + for (var i = 0; i < fields.length && fieldVal; i++) { + var field = fields[i]; + fieldVal = fieldVal[field]; + } + + if (fieldVal == null) { + printMappingErr(); + return false; + } + + var percent; + + if (!number$1(fieldVal)) { + // then don't apply and fall back on the existing style + warn('Do not use continuous mappers without specifying numeric data (i.e. `' + prop.field + ': ' + fieldVal + '` for `' + ele.id() + '` is non-numeric)'); + return false; + } else { + var fieldWidth = prop.fieldMax - prop.fieldMin; + + if (fieldWidth === 0) { + // safety check -- not strictly necessary as no props of zero range should be passed here + percent = 0; + } else { + percent = (fieldVal - prop.fieldMin) / fieldWidth; + } + } // make sure to bound percent value + + + if (percent < 0) { + percent = 0; + } else if (percent > 1) { + percent = 1; + } + + if (type.color) { + var r1 = prop.valueMin[0]; + var r2 = prop.valueMax[0]; + var g1 = prop.valueMin[1]; + var g2 = prop.valueMax[1]; + var b1 = prop.valueMin[2]; + var b2 = prop.valueMax[2]; + var a1 = prop.valueMin[3] == null ? 1 : prop.valueMin[3]; + var a2 = prop.valueMax[3] == null ? 1 : prop.valueMax[3]; + var clr = [Math.round(r1 + (r2 - r1) * percent), Math.round(g1 + (g2 - g1) * percent), Math.round(b1 + (b2 - b1) * percent), Math.round(a1 + (a2 - a1) * percent)]; + flatProp = { + // colours are simple, so just create the flat property instead of expensive string parsing + bypass: prop.bypass, + // we're a bypass if the mapping property is a bypass + name: prop.name, + value: clr, + strValue: 'rgb(' + clr[0] + ', ' + clr[1] + ', ' + clr[2] + ')' + }; + } else if (type.number) { + var calcValue = prop.valueMin + (prop.valueMax - prop.valueMin) * percent; + flatProp = this.parse(prop.name, calcValue, prop.bypass, flatPropMapping); + } else { + return false; // can only map to colours and numbers + } + + if (!flatProp) { + // if we can't flatten the property, then don't apply the property and fall back on the existing style + printMappingErr(); + return false; + } + + flatProp.mapping = prop; // keep a reference to the mapping + + prop = flatProp; // the flattened (mapped) property is the one we want + + break; + } + // direct mapping + + case types.data: + { + // flatten the field (e.g. data.foo.bar) + var _fields = prop.field.split('.'); + + var _fieldVal = _p.data; + + for (var _i3 = 0; _i3 < _fields.length && _fieldVal; _i3++) { + var _field = _fields[_i3]; + _fieldVal = _fieldVal[_field]; + } + + if (_fieldVal != null) { + flatProp = this.parse(prop.name, _fieldVal, prop.bypass, flatPropMapping); + } + + if (!flatProp) { + // if we can't flatten the property, then don't apply and fall back on the existing style + printMappingErr(); + return false; + } + + flatProp.mapping = prop; // keep a reference to the mapping + + prop = flatProp; // the flattened (mapped) property is the one we want + + break; + } + + case types.fn: + { + var fn = prop.value; + var fnRetVal = prop.fnValue != null ? prop.fnValue : fn(ele); // check for cached value before calling function + + prop.prevFnValue = fnRetVal; + + if (fnRetVal == null) { + warn('Custom function mappers may not return null (i.e. `' + prop.name + '` for ele `' + ele.id() + '` is null)'); + return false; + } + + flatProp = this.parse(prop.name, fnRetVal, prop.bypass, flatPropMapping); + + if (!flatProp) { + warn('Custom function mappers may not return invalid values for the property type (i.e. `' + prop.name + '` for ele `' + ele.id() + '` is invalid)'); + return false; + } + + flatProp.mapping = copy(prop); // keep a reference to the mapping + + prop = flatProp; // the flattened (mapped) property is the one we want + + break; + } + + case undefined: + break; + // just set the property + + default: + return false; + // not a valid mapping + } // if the property is a bypass property, then link the resultant property to the original one + + + if (propIsBypass) { + if (origPropIsBypass) { + // then this bypass overrides the existing one + prop.bypassed = origProp.bypassed; // steal bypassed prop from old bypass + } else { + // then link the orig prop to the new bypass + prop.bypassed = origProp; + } + + style[prop.name] = prop; // and set + } else { + // prop is not bypass + if (origPropIsBypass) { + // then keep the orig prop (since it's a bypass) and link to the new prop + origProp.bypassed = prop; + } else { + // then just replace the old prop with the new one + style[prop.name] = prop; + } + } + + checkTriggers(); + return true; + }; + + styfn$8.cleanElements = function (eles, keepBypasses) { + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + this.clearStyleHints(ele); + ele.dirtyCompoundBoundsCache(); + ele.dirtyBoundingBoxCache(); + + if (!keepBypasses) { + ele._private.style = {}; + } else { + var style = ele._private.style; + var propNames = Object.keys(style); + + for (var j = 0; j < propNames.length; j++) { + var propName = propNames[j]; + var eleProp = style[propName]; + + if (eleProp != null) { + if (eleProp.bypass) { + eleProp.bypassed = null; + } else { + style[propName] = null; + } + } + } + } + } + }; // updates the visual style for all elements (useful for manual style modification after init) + + + styfn$8.update = function () { + var cy = this._private.cy; + var eles = cy.mutableElements(); + eles.updateStyle(); + }; // diffProps : { name => { prev, next } } + + + styfn$8.updateTransitions = function (ele, diffProps) { + var self = this; + var _p = ele._private; + var props = ele.pstyle('transition-property').value; + var duration = ele.pstyle('transition-duration').pfValue; + var delay = ele.pstyle('transition-delay').pfValue; + + if (props.length > 0 && duration > 0) { + var style = {}; // build up the style to animate towards + + var anyPrev = false; + + for (var i = 0; i < props.length; i++) { + var prop = props[i]; + var styProp = ele.pstyle(prop); + var diffProp = diffProps[prop]; + + if (!diffProp) { + continue; + } + + var prevProp = diffProp.prev; + var fromProp = prevProp; + var toProp = diffProp.next != null ? diffProp.next : styProp; + var diff = false; + var initVal = void 0; + var initDt = 0.000001; // delta time % value for initVal (allows animating out of init zero opacity) + + if (!fromProp) { + continue; + } // consider px values + + + if (number$1(fromProp.pfValue) && number$1(toProp.pfValue)) { + diff = toProp.pfValue - fromProp.pfValue; // nonzero is truthy + + initVal = fromProp.pfValue + initDt * diff; // consider numerical values + } else if (number$1(fromProp.value) && number$1(toProp.value)) { + diff = toProp.value - fromProp.value; // nonzero is truthy + + initVal = fromProp.value + initDt * diff; // consider colour values + } else if (array(fromProp.value) && array(toProp.value)) { + diff = fromProp.value[0] !== toProp.value[0] || fromProp.value[1] !== toProp.value[1] || fromProp.value[2] !== toProp.value[2]; + initVal = fromProp.strValue; + } // the previous value is good for an animation only if it's different + + + if (diff) { + style[prop] = toProp.strValue; // to val + + this.applyBypass(ele, prop, initVal); // from val + + anyPrev = true; + } + } // end if props allow ani + // can't transition if there's nothing previous to transition from + + + if (!anyPrev) { + return; + } + + _p.transitioning = true; + new Promise$1(function (resolve) { + if (delay > 0) { + ele.delayAnimation(delay).play().promise().then(resolve); + } else { + resolve(); + } + }).then(function () { + return ele.animation({ + style: style, + duration: duration, + easing: ele.pstyle('transition-timing-function').value, + queue: false + }).play().promise(); + }).then(function () { + // if( !isBypass ){ + self.removeBypasses(ele, props); + ele.emitAndNotify('style'); // } + + _p.transitioning = false; + }); + } else if (_p.transitioning) { + this.removeBypasses(ele, props); + ele.emitAndNotify('style'); + _p.transitioning = false; + } + }; + + styfn$8.checkTrigger = function (ele, name, fromValue, toValue, getTrigger, onTrigger) { + var prop = this.properties[name]; + var triggerCheck = getTrigger(prop); + + if (triggerCheck != null && triggerCheck(fromValue, toValue)) { + onTrigger(prop); + } + }; + + styfn$8.checkZOrderTrigger = function (ele, name, fromValue, toValue) { + var _this = this; + + this.checkTrigger(ele, name, fromValue, toValue, function (prop) { + return prop.triggersZOrder; + }, function () { + _this._private.cy.notify('zorder', ele); + }); + }; + + styfn$8.checkBoundsTrigger = function (ele, name, fromValue, toValue) { + this.checkTrigger(ele, name, fromValue, toValue, function (prop) { + return prop.triggersBounds; + }, function (prop) { + ele.dirtyCompoundBoundsCache(); + ele.dirtyBoundingBoxCache(); // if the prop change makes the bb of pll bezier edges invalid, + // then dirty the pll edge bb cache as well + + if ( // only for beziers -- so performance of other edges isn't affected + prop.triggersBoundsOfParallelBeziers && (name === 'curve-style' && (fromValue === 'bezier' || toValue === 'bezier') || name === 'display' && (fromValue === 'none' || toValue === 'none'))) { + ele.parallelEdges().forEach(function (pllEdge) { + if (pllEdge.isBundledBezier()) { + pllEdge.dirtyBoundingBoxCache(); + } + }); + } + }); + }; + + styfn$8.checkTriggers = function (ele, name, fromValue, toValue) { + ele.dirtyStyleCache(); + this.checkZOrderTrigger(ele, name, fromValue, toValue); + this.checkBoundsTrigger(ele, name, fromValue, toValue); + }; + + var styfn$7 = {}; // bypasses are applied to an existing style on an element, and just tacked on temporarily + // returns true iff application was successful for at least 1 specified property + + styfn$7.applyBypass = function (eles, name, value, updateTransitions) { + var self = this; + var props = []; + var isBypass = true; // put all the properties (can specify one or many) in an array after parsing them + + if (name === '*' || name === '**') { + // apply to all property names + if (value !== undefined) { + for (var i = 0; i < self.properties.length; i++) { + var prop = self.properties[i]; + var _name = prop.name; + var parsedProp = this.parse(_name, value, true); + + if (parsedProp) { + props.push(parsedProp); + } + } + } + } else if (string(name)) { + // then parse the single property + var _parsedProp = this.parse(name, value, true); + + if (_parsedProp) { + props.push(_parsedProp); + } + } else if (plainObject(name)) { + // then parse each property + var specifiedProps = name; + updateTransitions = value; + var names = Object.keys(specifiedProps); + + for (var _i = 0; _i < names.length; _i++) { + var _name2 = names[_i]; + var _value = specifiedProps[_name2]; + + if (_value === undefined) { + // try camel case name too + _value = specifiedProps[dash2camel(_name2)]; + } + + if (_value !== undefined) { + var _parsedProp2 = this.parse(_name2, _value, true); + + if (_parsedProp2) { + props.push(_parsedProp2); + } + } + } + } else { + // can't do anything without well defined properties + return false; + } // we've failed if there are no valid properties + + + if (props.length === 0) { + return false; + } // now, apply the bypass properties on the elements + + + var ret = false; // return true if at least one succesful bypass applied + + for (var _i2 = 0; _i2 < eles.length; _i2++) { + // for each ele + var ele = eles[_i2]; + var diffProps = {}; + var diffProp = void 0; + + for (var j = 0; j < props.length; j++) { + // for each prop + var _prop = props[j]; + + if (updateTransitions) { + var prevProp = ele.pstyle(_prop.name); + diffProp = diffProps[_prop.name] = { + prev: prevProp + }; + } + + ret = this.applyParsedProperty(ele, copy(_prop)) || ret; + + if (updateTransitions) { + diffProp.next = ele.pstyle(_prop.name); + } + } // for props + + + if (ret) { + this.updateStyleHints(ele); + } + + if (updateTransitions) { + this.updateTransitions(ele, diffProps, isBypass); + } + } // for eles + + + return ret; + }; // only useful in specific cases like animation + + + styfn$7.overrideBypass = function (eles, name, value) { + name = camel2dash(name); + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var prop = ele._private.style[name]; + var type = this.properties[name].type; + var isColor = type.color; + var isMulti = type.mutiple; + var oldValue = !prop ? null : prop.pfValue != null ? prop.pfValue : prop.value; + + if (!prop || !prop.bypass) { + // need a bypass if one doesn't exist + this.applyBypass(ele, name, value); + } else { + prop.value = value; + + if (prop.pfValue != null) { + prop.pfValue = value; + } + + if (isColor) { + prop.strValue = 'rgb(' + value.join(',') + ')'; + } else if (isMulti) { + prop.strValue = value.join(' '); + } else { + prop.strValue = '' + value; + } + + this.updateStyleHints(ele); + } + + this.checkTriggers(ele, name, oldValue, value); + } + }; + + styfn$7.removeAllBypasses = function (eles, updateTransitions) { + return this.removeBypasses(eles, this.propertyNames, updateTransitions); + }; + + styfn$7.removeBypasses = function (eles, props, updateTransitions) { + var isBypass = true; + + for (var j = 0; j < eles.length; j++) { + var ele = eles[j]; + var diffProps = {}; + + for (var i = 0; i < props.length; i++) { + var name = props[i]; + var prop = this.properties[name]; + var prevProp = ele.pstyle(prop.name); + + if (!prevProp || !prevProp.bypass) { + // if a bypass doesn't exist for the prop, nothing needs to be removed + continue; + } + + var value = ''; // empty => remove bypass + + var parsedProp = this.parse(name, value, true); + var diffProp = diffProps[prop.name] = { + prev: prevProp + }; + this.applyParsedProperty(ele, parsedProp); + diffProp.next = ele.pstyle(prop.name); + } // for props + + + this.updateStyleHints(ele); + + if (updateTransitions) { + this.updateTransitions(ele, diffProps, isBypass); + } + } // for eles + + }; + + var styfn$6 = {}; // gets what an em size corresponds to in pixels relative to a dom element + + styfn$6.getEmSizeInPixels = function () { + var px = this.containerCss('font-size'); + + if (px != null) { + return parseFloat(px); + } else { + return 1; // for headless + } + }; // gets css property from the core container + + + styfn$6.containerCss = function (propName) { + var cy = this._private.cy; + var domElement = cy.container(); + var containerWindow = cy.window(); + + if (containerWindow && domElement && containerWindow.getComputedStyle) { + return containerWindow.getComputedStyle(domElement).getPropertyValue(propName); + } + }; + + var styfn$5 = {}; // gets the rendered style for an element + + styfn$5.getRenderedStyle = function (ele, prop) { + if (prop) { + return this.getStylePropertyValue(ele, prop, true); + } else { + return this.getRawStyle(ele, true); + } + }; // gets the raw style for an element + + + styfn$5.getRawStyle = function (ele, isRenderedVal) { + var self = this; + ele = ele[0]; // insure it's an element + + if (ele) { + var rstyle = {}; + + for (var i = 0; i < self.properties.length; i++) { + var prop = self.properties[i]; + var val = self.getStylePropertyValue(ele, prop.name, isRenderedVal); + + if (val != null) { + rstyle[prop.name] = val; + rstyle[dash2camel(prop.name)] = val; + } + } + + return rstyle; + } + }; + + styfn$5.getIndexedStyle = function (ele, property, subproperty, index) { + var pstyle = ele.pstyle(property)[subproperty][index]; + return pstyle != null ? pstyle : ele.cy().style().getDefaultProperty(property)[subproperty][0]; + }; + + styfn$5.getStylePropertyValue = function (ele, propName, isRenderedVal) { + var self = this; + ele = ele[0]; // insure it's an element + + if (ele) { + var prop = self.properties[propName]; + + if (prop.alias) { + prop = prop.pointsTo; + } + + var type = prop.type; + var styleProp = ele.pstyle(prop.name); + + if (styleProp) { + var value = styleProp.value, + units = styleProp.units, + strValue = styleProp.strValue; + + if (isRenderedVal && type.number && value != null && number$1(value)) { + var zoom = ele.cy().zoom(); + + var getRenderedValue = function getRenderedValue(val) { + return val * zoom; + }; + + var getValueStringWithUnits = function getValueStringWithUnits(val, units) { + return getRenderedValue(val) + units; + }; + + var isArrayValue = array(value); + var haveUnits = isArrayValue ? units.every(function (u) { + return u != null; + }) : units != null; + + if (haveUnits) { + if (isArrayValue) { + return value.map(function (v, i) { + return getValueStringWithUnits(v, units[i]); + }).join(' '); + } else { + return getValueStringWithUnits(value, units); + } + } else { + if (isArrayValue) { + return value.map(function (v) { + return string(v) ? v : '' + getRenderedValue(v); + }).join(' '); + } else { + return '' + getRenderedValue(value); + } + } + } else if (strValue != null) { + return strValue; + } + } + + return null; + } + }; + + styfn$5.getAnimationStartStyle = function (ele, aniProps) { + var rstyle = {}; + + for (var i = 0; i < aniProps.length; i++) { + var aniProp = aniProps[i]; + var name = aniProp.name; + var styleProp = ele.pstyle(name); + + if (styleProp !== undefined) { + // then make a prop of it + if (plainObject(styleProp)) { + styleProp = this.parse(name, styleProp.strValue); + } else { + styleProp = this.parse(name, styleProp); + } + } + + if (styleProp) { + rstyle[name] = styleProp; + } + } + + return rstyle; + }; + + styfn$5.getPropsList = function (propsObj) { + var self = this; + var rstyle = []; + var style = propsObj; + var props = self.properties; + + if (style) { + var names = Object.keys(style); + + for (var i = 0; i < names.length; i++) { + var name = names[i]; + var val = style[name]; + var prop = props[name] || props[camel2dash(name)]; + var styleProp = this.parse(prop.name, val); + + if (styleProp) { + rstyle.push(styleProp); + } + } + } + + return rstyle; + }; + + styfn$5.getNonDefaultPropertiesHash = function (ele, propNames, seed) { + var hash = seed.slice(); + var name, val, strVal, chVal; + var i, j; + + for (i = 0; i < propNames.length; i++) { + name = propNames[i]; + val = ele.pstyle(name, false); + + if (val == null) { + continue; + } else if (val.pfValue != null) { + hash[0] = hashInt(chVal, hash[0]); + hash[1] = hashIntAlt(chVal, hash[1]); + } else { + strVal = val.strValue; + + for (j = 0; j < strVal.length; j++) { + chVal = strVal.charCodeAt(j); + hash[0] = hashInt(chVal, hash[0]); + hash[1] = hashIntAlt(chVal, hash[1]); + } + } + } + + return hash; + }; + + styfn$5.getPropertiesHash = styfn$5.getNonDefaultPropertiesHash; + + var styfn$4 = {}; + + styfn$4.appendFromJson = function (json) { + var style = this; + + for (var i = 0; i < json.length; i++) { + var context = json[i]; + var selector = context.selector; + var props = context.style || context.css; + var names = Object.keys(props); + style.selector(selector); // apply selector + + for (var j = 0; j < names.length; j++) { + var name = names[j]; + var value = props[name]; + style.css(name, value); // apply property + } + } + + return style; + }; // accessible cy.style() function + + + styfn$4.fromJson = function (json) { + var style = this; + style.resetToDefault(); + style.appendFromJson(json); + return style; + }; // get json from cy.style() api + + + styfn$4.json = function () { + var json = []; + + for (var i = this.defaultLength; i < this.length; i++) { + var cxt = this[i]; + var selector = cxt.selector; + var props = cxt.properties; + var css = {}; + + for (var j = 0; j < props.length; j++) { + var prop = props[j]; + css[prop.name] = prop.strValue; + } + + json.push({ + selector: !selector ? 'core' : selector.toString(), + style: css + }); + } + + return json; + }; + + var styfn$3 = {}; + + styfn$3.appendFromString = function (string) { + var self = this; + var style = this; + var remaining = '' + string; + var selAndBlockStr; + var blockRem; + var propAndValStr; // remove comments from the style string + + remaining = remaining.replace(/[/][*](\s|.)+?[*][/]/g, ''); + + function removeSelAndBlockFromRemaining() { + // remove the parsed selector and block from the remaining text to parse + if (remaining.length > selAndBlockStr.length) { + remaining = remaining.substr(selAndBlockStr.length); + } else { + remaining = ''; + } + } + + function removePropAndValFromRem() { + // remove the parsed property and value from the remaining block text to parse + if (blockRem.length > propAndValStr.length) { + blockRem = blockRem.substr(propAndValStr.length); + } else { + blockRem = ''; + } + } + + for (;;) { + var nothingLeftToParse = remaining.match(/^\s*$/); + + if (nothingLeftToParse) { + break; + } + + var selAndBlock = remaining.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/); + + if (!selAndBlock) { + warn('Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: ' + remaining); + break; + } + + selAndBlockStr = selAndBlock[0]; // parse the selector + + var selectorStr = selAndBlock[1]; + + if (selectorStr !== 'core') { + var selector = new Selector(selectorStr); + + if (selector.invalid) { + warn('Skipping parsing of block: Invalid selector found in string stylesheet: ' + selectorStr); // skip this selector and block + + removeSelAndBlockFromRemaining(); + continue; + } + } // parse the block of properties and values + + + var blockStr = selAndBlock[2]; + var invalidBlock = false; + blockRem = blockStr; + var props = []; + + for (;;) { + var _nothingLeftToParse = blockRem.match(/^\s*$/); + + if (_nothingLeftToParse) { + break; + } + + var propAndVal = blockRem.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/); + + if (!propAndVal) { + warn('Skipping parsing of block: Invalid formatting of style property and value definitions found in:' + blockStr); + invalidBlock = true; + break; + } + + propAndValStr = propAndVal[0]; + var propStr = propAndVal[1]; + var valStr = propAndVal[2]; + var prop = self.properties[propStr]; + + if (!prop) { + warn('Skipping property: Invalid property name in: ' + propAndValStr); // skip this property in the block + + removePropAndValFromRem(); + continue; + } + + var parsedProp = style.parse(propStr, valStr); + + if (!parsedProp) { + warn('Skipping property: Invalid property definition in: ' + propAndValStr); // skip this property in the block + + removePropAndValFromRem(); + continue; + } + + props.push({ + name: propStr, + val: valStr + }); + removePropAndValFromRem(); + } + + if (invalidBlock) { + removeSelAndBlockFromRemaining(); + break; + } // put the parsed block in the style + + + style.selector(selectorStr); + + for (var i = 0; i < props.length; i++) { + var _prop = props[i]; + style.css(_prop.name, _prop.val); + } + + removeSelAndBlockFromRemaining(); + } + + return style; + }; + + styfn$3.fromString = function (string) { + var style = this; + style.resetToDefault(); + style.appendFromString(string); + return style; + }; + + var styfn$2 = {}; + + (function () { + var number$1 = number; + var rgba = rgbaNoBackRefs; + var hsla = hslaNoBackRefs; + var hex3$1 = hex3; + var hex6$1 = hex6; + + var data = function data(prefix) { + return '^' + prefix + '\\s*\\(\\s*([\\w\\.]+)\\s*\\)$'; + }; + + var mapData = function mapData(prefix) { + var mapArg = number$1 + '|\\w+|' + rgba + '|' + hsla + '|' + hex3$1 + '|' + hex6$1; + return '^' + prefix + '\\s*\\(([\\w\\.]+)\\s*\\,\\s*(' + number$1 + ')\\s*\\,\\s*(' + number$1 + ')\\s*,\\s*(' + mapArg + ')\\s*\\,\\s*(' + mapArg + ')\\)$'; + }; + + var urlRegexes = ['^url\\s*\\(\\s*[\'"]?(.+?)[\'"]?\\s*\\)$', '^(none)$', '^(.+)$']; // each visual style property has a type and needs to be validated according to it + + styfn$2.types = { + time: { + number: true, + min: 0, + units: 's|ms', + implicitUnits: 'ms' + }, + percent: { + number: true, + min: 0, + max: 100, + units: '%', + implicitUnits: '%' + }, + percentages: { + number: true, + min: 0, + max: 100, + units: '%', + implicitUnits: '%', + multiple: true + }, + zeroOneNumber: { + number: true, + min: 0, + max: 1, + unitless: true + }, + zeroOneNumbers: { + number: true, + min: 0, + max: 1, + unitless: true, + multiple: true + }, + nOneOneNumber: { + number: true, + min: -1, + max: 1, + unitless: true + }, + nonNegativeInt: { + number: true, + min: 0, + integer: true, + unitless: true + }, + position: { + enums: ['parent', 'origin'] + }, + nodeSize: { + number: true, + min: 0, + enums: ['label'] + }, + number: { + number: true, + unitless: true + }, + numbers: { + number: true, + unitless: true, + multiple: true + }, + positiveNumber: { + number: true, + unitless: true, + min: 0, + strictMin: true + }, + size: { + number: true, + min: 0 + }, + bidirectionalSize: { + number: true + }, + // allows negative + bidirectionalSizeMaybePercent: { + number: true, + allowPercent: true + }, + // allows negative + bidirectionalSizes: { + number: true, + multiple: true + }, + // allows negative + sizeMaybePercent: { + number: true, + min: 0, + allowPercent: true + }, + axisDirection: { + enums: ['horizontal', 'leftward', 'rightward', 'vertical', 'upward', 'downward', 'auto'] + }, + paddingRelativeTo: { + enums: ['width', 'height', 'average', 'min', 'max'] + }, + bgWH: { + number: true, + min: 0, + allowPercent: true, + enums: ['auto'], + multiple: true + }, + bgPos: { + number: true, + allowPercent: true, + multiple: true + }, + bgRelativeTo: { + enums: ['inner', 'include-padding'], + multiple: true + }, + bgRepeat: { + enums: ['repeat', 'repeat-x', 'repeat-y', 'no-repeat'], + multiple: true + }, + bgFit: { + enums: ['none', 'contain', 'cover'], + multiple: true + }, + bgCrossOrigin: { + enums: ['anonymous', 'use-credentials', 'null'], + multiple: true + }, + bgClip: { + enums: ['none', 'node'], + multiple: true + }, + bgContainment: { + enums: ['inside', 'over'], + multiple: true + }, + color: { + color: true + }, + colors: { + color: true, + multiple: true + }, + fill: { + enums: ['solid', 'linear-gradient', 'radial-gradient'] + }, + bool: { + enums: ['yes', 'no'] + }, + bools: { + enums: ['yes', 'no'], + multiple: true + }, + lineStyle: { + enums: ['solid', 'dotted', 'dashed'] + }, + lineCap: { + enums: ['butt', 'round', 'square'] + }, + borderStyle: { + enums: ['solid', 'dotted', 'dashed', 'double'] + }, + curveStyle: { + enums: ['bezier', 'unbundled-bezier', 'haystack', 'segments', 'straight', 'straight-triangle', 'taxi'] + }, + fontFamily: { + regex: '^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$' + }, + fontStyle: { + enums: ['italic', 'normal', 'oblique'] + }, + fontWeight: { + enums: ['normal', 'bold', 'bolder', 'lighter', '100', '200', '300', '400', '500', '600', '800', '900', 100, 200, 300, 400, 500, 600, 700, 800, 900] + }, + textDecoration: { + enums: ['none', 'underline', 'overline', 'line-through'] + }, + textTransform: { + enums: ['none', 'uppercase', 'lowercase'] + }, + textWrap: { + enums: ['none', 'wrap', 'ellipsis'] + }, + textOverflowWrap: { + enums: ['whitespace', 'anywhere'] + }, + textBackgroundShape: { + enums: ['rectangle', 'roundrectangle', 'round-rectangle'] + }, + nodeShape: { + enums: ['rectangle', 'roundrectangle', 'round-rectangle', 'cutrectangle', 'cut-rectangle', 'bottomroundrectangle', 'bottom-round-rectangle', 'barrel', 'ellipse', 'triangle', 'round-triangle', 'square', 'pentagon', 'round-pentagon', 'hexagon', 'round-hexagon', 'concavehexagon', 'concave-hexagon', 'heptagon', 'round-heptagon', 'octagon', 'round-octagon', 'tag', 'round-tag', 'star', 'diamond', 'round-diamond', 'vee', 'rhomboid', 'right-rhomboid', 'polygon'] + }, + overlayShape: { + enums: ['roundrectangle', 'round-rectangle', 'ellipse'] + }, + compoundIncludeLabels: { + enums: ['include', 'exclude'] + }, + arrowShape: { + enums: ['tee', 'triangle', 'triangle-tee', 'circle-triangle', 'triangle-cross', 'triangle-backcurve', 'vee', 'square', 'circle', 'diamond', 'chevron', 'none'] + }, + arrowFill: { + enums: ['filled', 'hollow'] + }, + display: { + enums: ['element', 'none'] + }, + visibility: { + enums: ['hidden', 'visible'] + }, + zCompoundDepth: { + enums: ['bottom', 'orphan', 'auto', 'top'] + }, + zIndexCompare: { + enums: ['auto', 'manual'] + }, + valign: { + enums: ['top', 'center', 'bottom'] + }, + halign: { + enums: ['left', 'center', 'right'] + }, + justification: { + enums: ['left', 'center', 'right', 'auto'] + }, + text: { + string: true + }, + data: { + mapping: true, + regex: data('data') + }, + layoutData: { + mapping: true, + regex: data('layoutData') + }, + scratch: { + mapping: true, + regex: data('scratch') + }, + mapData: { + mapping: true, + regex: mapData('mapData') + }, + mapLayoutData: { + mapping: true, + regex: mapData('mapLayoutData') + }, + mapScratch: { + mapping: true, + regex: mapData('mapScratch') + }, + fn: { + mapping: true, + fn: true + }, + url: { + regexes: urlRegexes, + singleRegexMatchValue: true + }, + urls: { + regexes: urlRegexes, + singleRegexMatchValue: true, + multiple: true + }, + propList: { + propList: true + }, + angle: { + number: true, + units: 'deg|rad', + implicitUnits: 'rad' + }, + textRotation: { + number: true, + units: 'deg|rad', + implicitUnits: 'rad', + enums: ['none', 'autorotate'] + }, + polygonPointList: { + number: true, + multiple: true, + evenMultiple: true, + min: -1, + max: 1, + unitless: true + }, + edgeDistances: { + enums: ['intersection', 'node-position'] + }, + edgeEndpoint: { + number: true, + multiple: true, + units: '%|px|em|deg|rad', + implicitUnits: 'px', + enums: ['inside-to-node', 'outside-to-node', 'outside-to-node-or-label', 'outside-to-line', 'outside-to-line-or-label'], + singleEnum: true, + validate: function validate(valArr, unitsArr) { + switch (valArr.length) { + case 2: + // can be % or px only + return unitsArr[0] !== 'deg' && unitsArr[0] !== 'rad' && unitsArr[1] !== 'deg' && unitsArr[1] !== 'rad'; + + case 1: + // can be enum, deg, or rad only + return string(valArr[0]) || unitsArr[0] === 'deg' || unitsArr[0] === 'rad'; + + default: + return false; + } + } + }, + easing: { + regexes: ['^(spring)\\s*\\(\\s*(' + number$1 + ')\\s*,\\s*(' + number$1 + ')\\s*\\)$', '^(cubic-bezier)\\s*\\(\\s*(' + number$1 + ')\\s*,\\s*(' + number$1 + ')\\s*,\\s*(' + number$1 + ')\\s*,\\s*(' + number$1 + ')\\s*\\)$'], + enums: ['linear', 'ease', 'ease-in', 'ease-out', 'ease-in-out', 'ease-in-sine', 'ease-out-sine', 'ease-in-out-sine', 'ease-in-quad', 'ease-out-quad', 'ease-in-out-quad', 'ease-in-cubic', 'ease-out-cubic', 'ease-in-out-cubic', 'ease-in-quart', 'ease-out-quart', 'ease-in-out-quart', 'ease-in-quint', 'ease-out-quint', 'ease-in-out-quint', 'ease-in-expo', 'ease-out-expo', 'ease-in-out-expo', 'ease-in-circ', 'ease-out-circ', 'ease-in-out-circ'] + }, + gradientDirection: { + enums: ['to-bottom', 'to-top', 'to-left', 'to-right', 'to-bottom-right', 'to-bottom-left', 'to-top-right', 'to-top-left', 'to-right-bottom', 'to-left-bottom', 'to-right-top', 'to-left-top' // different order + ] + }, + boundsExpansion: { + number: true, + multiple: true, + min: 0, + validate: function validate(valArr) { + var length = valArr.length; + return length === 1 || length === 2 || length === 4; + } + } + }; + var diff = { + zeroNonZero: function zeroNonZero(val1, val2) { + if ((val1 == null || val2 == null) && val1 !== val2) { + return true; // null cases could represent any value + } + + if (val1 == 0 && val2 != 0) { + return true; + } else if (val1 != 0 && val2 == 0) { + return true; + } else { + return false; + } + }, + any: function any(val1, val2) { + return val1 != val2; + }, + emptyNonEmpty: function emptyNonEmpty(str1, str2) { + var empty1 = emptyString(str1); + var empty2 = emptyString(str2); + return empty1 && !empty2 || !empty1 && empty2; + } + }; // define visual style properties + // + // - n.b. adding a new group of props may require updates to updateStyleHints() + // - adding new props to an existing group gets handled automatically + + var t = styfn$2.types; + var mainLabel = [{ + name: 'label', + type: t.text, + triggersBounds: diff.any, + triggersZOrder: diff.emptyNonEmpty + }, { + name: 'text-rotation', + type: t.textRotation, + triggersBounds: diff.any + }, { + name: 'text-margin-x', + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: 'text-margin-y', + type: t.bidirectionalSize, + triggersBounds: diff.any + }]; + var sourceLabel = [{ + name: 'source-label', + type: t.text, + triggersBounds: diff.any + }, { + name: 'source-text-rotation', + type: t.textRotation, + triggersBounds: diff.any + }, { + name: 'source-text-margin-x', + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: 'source-text-margin-y', + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: 'source-text-offset', + type: t.size, + triggersBounds: diff.any + }]; + var targetLabel = [{ + name: 'target-label', + type: t.text, + triggersBounds: diff.any + }, { + name: 'target-text-rotation', + type: t.textRotation, + triggersBounds: diff.any + }, { + name: 'target-text-margin-x', + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: 'target-text-margin-y', + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: 'target-text-offset', + type: t.size, + triggersBounds: diff.any + }]; + var labelDimensions = [{ + name: 'font-family', + type: t.fontFamily, + triggersBounds: diff.any + }, { + name: 'font-style', + type: t.fontStyle, + triggersBounds: diff.any + }, { + name: 'font-weight', + type: t.fontWeight, + triggersBounds: diff.any + }, { + name: 'font-size', + type: t.size, + triggersBounds: diff.any + }, { + name: 'text-transform', + type: t.textTransform, + triggersBounds: diff.any + }, { + name: 'text-wrap', + type: t.textWrap, + triggersBounds: diff.any + }, { + name: 'text-overflow-wrap', + type: t.textOverflowWrap, + triggersBounds: diff.any + }, { + name: 'text-max-width', + type: t.size, + triggersBounds: diff.any + }, { + name: 'text-outline-width', + type: t.size, + triggersBounds: diff.any + }, { + name: 'line-height', + type: t.positiveNumber, + triggersBounds: diff.any + }]; + var commonLabel = [{ + name: 'text-valign', + type: t.valign, + triggersBounds: diff.any + }, { + name: 'text-halign', + type: t.halign, + triggersBounds: diff.any + }, { + name: 'color', + type: t.color + }, { + name: 'text-outline-color', + type: t.color + }, { + name: 'text-outline-opacity', + type: t.zeroOneNumber + }, { + name: 'text-background-color', + type: t.color + }, { + name: 'text-background-opacity', + type: t.zeroOneNumber + }, { + name: 'text-background-padding', + type: t.size, + triggersBounds: diff.any + }, { + name: 'text-border-opacity', + type: t.zeroOneNumber + }, { + name: 'text-border-color', + type: t.color + }, { + name: 'text-border-width', + type: t.size, + triggersBounds: diff.any + }, { + name: 'text-border-style', + type: t.borderStyle, + triggersBounds: diff.any + }, { + name: 'text-background-shape', + type: t.textBackgroundShape, + triggersBounds: diff.any + }, { + name: 'text-justification', + type: t.justification + }]; + var behavior = [{ + name: 'events', + type: t.bool + }, { + name: 'text-events', + type: t.bool + }]; + var visibility = [{ + name: 'display', + type: t.display, + triggersZOrder: diff.any, + triggersBounds: diff.any, + triggersBoundsOfParallelBeziers: true + }, { + name: 'visibility', + type: t.visibility, + triggersZOrder: diff.any + }, { + name: 'opacity', + type: t.zeroOneNumber, + triggersZOrder: diff.zeroNonZero + }, { + name: 'text-opacity', + type: t.zeroOneNumber + }, { + name: 'min-zoomed-font-size', + type: t.size + }, { + name: 'z-compound-depth', + type: t.zCompoundDepth, + triggersZOrder: diff.any + }, { + name: 'z-index-compare', + type: t.zIndexCompare, + triggersZOrder: diff.any + }, { + name: 'z-index', + type: t.nonNegativeInt, + triggersZOrder: diff.any + }]; + var overlay = [{ + name: 'overlay-padding', + type: t.size, + triggersBounds: diff.any + }, { + name: 'overlay-color', + type: t.color + }, { + name: 'overlay-opacity', + type: t.zeroOneNumber, + triggersBounds: diff.zeroNonZero + }, { + name: 'overlay-shape', + type: t.overlayShape, + triggersBounds: diff.any + }]; + var underlay = [{ + name: 'underlay-padding', + type: t.size, + triggersBounds: diff.any + }, { + name: 'underlay-color', + type: t.color + }, { + name: 'underlay-opacity', + type: t.zeroOneNumber, + triggersBounds: diff.zeroNonZero + }, { + name: 'underlay-shape', + type: t.overlayShape, + triggersBounds: diff.any + }]; + var transition = [{ + name: 'transition-property', + type: t.propList + }, { + name: 'transition-duration', + type: t.time + }, { + name: 'transition-delay', + type: t.time + }, { + name: 'transition-timing-function', + type: t.easing + }]; + + var nodeSizeHashOverride = function nodeSizeHashOverride(ele, parsedProp) { + if (parsedProp.value === 'label') { + return -ele.poolIndex(); // no hash key hits is using label size (hitrate for perf probably low anyway) + } else { + return parsedProp.pfValue; + } + }; + + var nodeBody = [{ + name: 'height', + type: t.nodeSize, + triggersBounds: diff.any, + hashOverride: nodeSizeHashOverride + }, { + name: 'width', + type: t.nodeSize, + triggersBounds: diff.any, + hashOverride: nodeSizeHashOverride + }, { + name: 'shape', + type: t.nodeShape, + triggersBounds: diff.any + }, { + name: 'shape-polygon-points', + type: t.polygonPointList, + triggersBounds: diff.any + }, { + name: 'background-color', + type: t.color + }, { + name: 'background-fill', + type: t.fill + }, { + name: 'background-opacity', + type: t.zeroOneNumber + }, { + name: 'background-blacken', + type: t.nOneOneNumber + }, { + name: 'background-gradient-stop-colors', + type: t.colors + }, { + name: 'background-gradient-stop-positions', + type: t.percentages + }, { + name: 'background-gradient-direction', + type: t.gradientDirection + }, { + name: 'padding', + type: t.sizeMaybePercent, + triggersBounds: diff.any + }, { + name: 'padding-relative-to', + type: t.paddingRelativeTo, + triggersBounds: diff.any + }, { + name: 'bounds-expansion', + type: t.boundsExpansion, + triggersBounds: diff.any + }]; + var nodeBorder = [{ + name: 'border-color', + type: t.color + }, { + name: 'border-opacity', + type: t.zeroOneNumber + }, { + name: 'border-width', + type: t.size, + triggersBounds: diff.any + }, { + name: 'border-style', + type: t.borderStyle + }]; + var backgroundImage = [{ + name: 'background-image', + type: t.urls + }, { + name: 'background-image-crossorigin', + type: t.bgCrossOrigin + }, { + name: 'background-image-opacity', + type: t.zeroOneNumbers + }, { + name: 'background-image-containment', + type: t.bgContainment + }, { + name: 'background-image-smoothing', + type: t.bools + }, { + name: 'background-position-x', + type: t.bgPos + }, { + name: 'background-position-y', + type: t.bgPos + }, { + name: 'background-width-relative-to', + type: t.bgRelativeTo + }, { + name: 'background-height-relative-to', + type: t.bgRelativeTo + }, { + name: 'background-repeat', + type: t.bgRepeat + }, { + name: 'background-fit', + type: t.bgFit + }, { + name: 'background-clip', + type: t.bgClip + }, { + name: 'background-width', + type: t.bgWH + }, { + name: 'background-height', + type: t.bgWH + }, { + name: 'background-offset-x', + type: t.bgPos + }, { + name: 'background-offset-y', + type: t.bgPos + }]; + var compound = [{ + name: 'position', + type: t.position, + triggersBounds: diff.any + }, { + name: 'compound-sizing-wrt-labels', + type: t.compoundIncludeLabels, + triggersBounds: diff.any + }, { + name: 'min-width', + type: t.size, + triggersBounds: diff.any + }, { + name: 'min-width-bias-left', + type: t.sizeMaybePercent, + triggersBounds: diff.any + }, { + name: 'min-width-bias-right', + type: t.sizeMaybePercent, + triggersBounds: diff.any + }, { + name: 'min-height', + type: t.size, + triggersBounds: diff.any + }, { + name: 'min-height-bias-top', + type: t.sizeMaybePercent, + triggersBounds: diff.any + }, { + name: 'min-height-bias-bottom', + type: t.sizeMaybePercent, + triggersBounds: diff.any + }]; + var edgeLine = [{ + name: 'line-style', + type: t.lineStyle + }, { + name: 'line-color', + type: t.color + }, { + name: 'line-fill', + type: t.fill + }, { + name: 'line-cap', + type: t.lineCap + }, { + name: 'line-opacity', + type: t.zeroOneNumber + }, { + name: 'line-dash-pattern', + type: t.numbers + }, { + name: 'line-dash-offset', + type: t.number + }, { + name: 'line-gradient-stop-colors', + type: t.colors + }, { + name: 'line-gradient-stop-positions', + type: t.percentages + }, { + name: 'curve-style', + type: t.curveStyle, + triggersBounds: diff.any, + triggersBoundsOfParallelBeziers: true + }, { + name: 'haystack-radius', + type: t.zeroOneNumber, + triggersBounds: diff.any + }, { + name: 'source-endpoint', + type: t.edgeEndpoint, + triggersBounds: diff.any + }, { + name: 'target-endpoint', + type: t.edgeEndpoint, + triggersBounds: diff.any + }, { + name: 'control-point-step-size', + type: t.size, + triggersBounds: diff.any + }, { + name: 'control-point-distances', + type: t.bidirectionalSizes, + triggersBounds: diff.any + }, { + name: 'control-point-weights', + type: t.numbers, + triggersBounds: diff.any + }, { + name: 'segment-distances', + type: t.bidirectionalSizes, + triggersBounds: diff.any + }, { + name: 'segment-weights', + type: t.numbers, + triggersBounds: diff.any + }, { + name: 'taxi-turn', + type: t.bidirectionalSizeMaybePercent, + triggersBounds: diff.any + }, { + name: 'taxi-turn-min-distance', + type: t.size, + triggersBounds: diff.any + }, { + name: 'taxi-direction', + type: t.axisDirection, + triggersBounds: diff.any + }, { + name: 'edge-distances', + type: t.edgeDistances, + triggersBounds: diff.any + }, { + name: 'arrow-scale', + type: t.positiveNumber, + triggersBounds: diff.any + }, { + name: 'loop-direction', + type: t.angle, + triggersBounds: diff.any + }, { + name: 'loop-sweep', + type: t.angle, + triggersBounds: diff.any + }, { + name: 'source-distance-from-node', + type: t.size, + triggersBounds: diff.any + }, { + name: 'target-distance-from-node', + type: t.size, + triggersBounds: diff.any + }]; + var ghost = [{ + name: 'ghost', + type: t.bool, + triggersBounds: diff.any + }, { + name: 'ghost-offset-x', + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: 'ghost-offset-y', + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: 'ghost-opacity', + type: t.zeroOneNumber + }]; + var core = [{ + name: 'selection-box-color', + type: t.color + }, { + name: 'selection-box-opacity', + type: t.zeroOneNumber + }, { + name: 'selection-box-border-color', + type: t.color + }, { + name: 'selection-box-border-width', + type: t.size + }, { + name: 'active-bg-color', + type: t.color + }, { + name: 'active-bg-opacity', + type: t.zeroOneNumber + }, { + name: 'active-bg-size', + type: t.size + }, { + name: 'outside-texture-bg-color', + type: t.color + }, { + name: 'outside-texture-bg-opacity', + type: t.zeroOneNumber + }]; // pie backgrounds for nodes + + var pie = []; + styfn$2.pieBackgroundN = 16; // because the pie properties are numbered, give access to a constant N (for renderer use) + + pie.push({ + name: 'pie-size', + type: t.sizeMaybePercent + }); + + for (var i = 1; i <= styfn$2.pieBackgroundN; i++) { + pie.push({ + name: 'pie-' + i + '-background-color', + type: t.color + }); + pie.push({ + name: 'pie-' + i + '-background-size', + type: t.percent + }); + pie.push({ + name: 'pie-' + i + '-background-opacity', + type: t.zeroOneNumber + }); + } // edge arrows + + + var edgeArrow = []; + var arrowPrefixes = styfn$2.arrowPrefixes = ['source', 'mid-source', 'target', 'mid-target']; + [{ + name: 'arrow-shape', + type: t.arrowShape, + triggersBounds: diff.any + }, { + name: 'arrow-color', + type: t.color + }, { + name: 'arrow-fill', + type: t.arrowFill + }].forEach(function (prop) { + arrowPrefixes.forEach(function (prefix) { + var name = prefix + '-' + prop.name; + var type = prop.type, + triggersBounds = prop.triggersBounds; + edgeArrow.push({ + name: name, + type: type, + triggersBounds: triggersBounds + }); + }); + }, {}); + var props = styfn$2.properties = [].concat(behavior, transition, visibility, overlay, underlay, ghost, commonLabel, labelDimensions, mainLabel, sourceLabel, targetLabel, nodeBody, nodeBorder, backgroundImage, pie, compound, edgeLine, edgeArrow, core); + var propGroups = styfn$2.propertyGroups = { + // common to all eles + behavior: behavior, + transition: transition, + visibility: visibility, + overlay: overlay, + underlay: underlay, + ghost: ghost, + // labels + commonLabel: commonLabel, + labelDimensions: labelDimensions, + mainLabel: mainLabel, + sourceLabel: sourceLabel, + targetLabel: targetLabel, + // node props + nodeBody: nodeBody, + nodeBorder: nodeBorder, + backgroundImage: backgroundImage, + pie: pie, + compound: compound, + // edge props + edgeLine: edgeLine, + edgeArrow: edgeArrow, + core: core + }; + var propGroupNames = styfn$2.propertyGroupNames = {}; + var propGroupKeys = styfn$2.propertyGroupKeys = Object.keys(propGroups); + propGroupKeys.forEach(function (key) { + propGroupNames[key] = propGroups[key].map(function (prop) { + return prop.name; + }); + propGroups[key].forEach(function (prop) { + return prop.groupKey = key; + }); + }); // define aliases + + var aliases = styfn$2.aliases = [{ + name: 'content', + pointsTo: 'label' + }, { + name: 'control-point-distance', + pointsTo: 'control-point-distances' + }, { + name: 'control-point-weight', + pointsTo: 'control-point-weights' + }, { + name: 'edge-text-rotation', + pointsTo: 'text-rotation' + }, { + name: 'padding-left', + pointsTo: 'padding' + }, { + name: 'padding-right', + pointsTo: 'padding' + }, { + name: 'padding-top', + pointsTo: 'padding' + }, { + name: 'padding-bottom', + pointsTo: 'padding' + }]; // list of property names + + styfn$2.propertyNames = props.map(function (p) { + return p.name; + }); // allow access of properties by name ( e.g. style.properties.height ) + + for (var _i = 0; _i < props.length; _i++) { + var prop = props[_i]; + props[prop.name] = prop; // allow lookup by name + } // map aliases + + + for (var _i2 = 0; _i2 < aliases.length; _i2++) { + var alias = aliases[_i2]; + var pointsToProp = props[alias.pointsTo]; + var aliasProp = { + name: alias.name, + alias: true, + pointsTo: pointsToProp + }; // add alias prop for parsing + + props.push(aliasProp); + props[alias.name] = aliasProp; // allow lookup by name + } + })(); + + styfn$2.getDefaultProperty = function (name) { + return this.getDefaultProperties()[name]; + }; + + styfn$2.getDefaultProperties = function () { + var _p = this._private; + + if (_p.defaultProperties != null) { + return _p.defaultProperties; + } + + var rawProps = extend({ + // core props + 'selection-box-color': '#ddd', + 'selection-box-opacity': 0.65, + 'selection-box-border-color': '#aaa', + 'selection-box-border-width': 1, + 'active-bg-color': 'black', + 'active-bg-opacity': 0.15, + 'active-bg-size': 30, + 'outside-texture-bg-color': '#000', + 'outside-texture-bg-opacity': 0.125, + // common node/edge props + 'events': 'yes', + 'text-events': 'no', + 'text-valign': 'top', + 'text-halign': 'center', + 'text-justification': 'auto', + 'line-height': 1, + 'color': '#000', + 'text-outline-color': '#000', + 'text-outline-width': 0, + 'text-outline-opacity': 1, + 'text-opacity': 1, + 'text-decoration': 'none', + 'text-transform': 'none', + 'text-wrap': 'none', + 'text-overflow-wrap': 'whitespace', + 'text-max-width': 9999, + 'text-background-color': '#000', + 'text-background-opacity': 0, + 'text-background-shape': 'rectangle', + 'text-background-padding': 0, + 'text-border-opacity': 0, + 'text-border-width': 0, + 'text-border-style': 'solid', + 'text-border-color': '#000', + 'font-family': 'Helvetica Neue, Helvetica, sans-serif', + 'font-style': 'normal', + 'font-weight': 'normal', + 'font-size': 16, + 'min-zoomed-font-size': 0, + 'text-rotation': 'none', + 'source-text-rotation': 'none', + 'target-text-rotation': 'none', + 'visibility': 'visible', + 'display': 'element', + 'opacity': 1, + 'z-compound-depth': 'auto', + 'z-index-compare': 'auto', + 'z-index': 0, + 'label': '', + 'text-margin-x': 0, + 'text-margin-y': 0, + 'source-label': '', + 'source-text-offset': 0, + 'source-text-margin-x': 0, + 'source-text-margin-y': 0, + 'target-label': '', + 'target-text-offset': 0, + 'target-text-margin-x': 0, + 'target-text-margin-y': 0, + 'overlay-opacity': 0, + 'overlay-color': '#000', + 'overlay-padding': 10, + 'overlay-shape': 'round-rectangle', + 'underlay-opacity': 0, + 'underlay-color': '#000', + 'underlay-padding': 10, + 'underlay-shape': 'round-rectangle', + 'transition-property': 'none', + 'transition-duration': 0, + 'transition-delay': 0, + 'transition-timing-function': 'linear', + // node props + 'background-blacken': 0, + 'background-color': '#999', + 'background-fill': 'solid', + 'background-opacity': 1, + 'background-image': 'none', + 'background-image-crossorigin': 'anonymous', + 'background-image-opacity': 1, + 'background-image-containment': 'inside', + 'background-image-smoothing': 'yes', + 'background-position-x': '50%', + 'background-position-y': '50%', + 'background-offset-x': 0, + 'background-offset-y': 0, + 'background-width-relative-to': 'include-padding', + 'background-height-relative-to': 'include-padding', + 'background-repeat': 'no-repeat', + 'background-fit': 'none', + 'background-clip': 'node', + 'background-width': 'auto', + 'background-height': 'auto', + 'border-color': '#000', + 'border-opacity': 1, + 'border-width': 0, + 'border-style': 'solid', + 'height': 30, + 'width': 30, + 'shape': 'ellipse', + 'shape-polygon-points': '-1, -1, 1, -1, 1, 1, -1, 1', + 'bounds-expansion': 0, + // node gradient + 'background-gradient-direction': 'to-bottom', + 'background-gradient-stop-colors': '#999', + 'background-gradient-stop-positions': '0%', + // ghost props + 'ghost': 'no', + 'ghost-offset-y': 0, + 'ghost-offset-x': 0, + 'ghost-opacity': 0, + // compound props + 'padding': 0, + 'padding-relative-to': 'width', + 'position': 'origin', + 'compound-sizing-wrt-labels': 'include', + 'min-width': 0, + 'min-width-bias-left': 0, + 'min-width-bias-right': 0, + 'min-height': 0, + 'min-height-bias-top': 0, + 'min-height-bias-bottom': 0 + }, { + // node pie bg + 'pie-size': '100%' + }, [{ + name: 'pie-{{i}}-background-color', + value: 'black' + }, { + name: 'pie-{{i}}-background-size', + value: '0%' + }, { + name: 'pie-{{i}}-background-opacity', + value: 1 + }].reduce(function (css, prop) { + for (var i = 1; i <= styfn$2.pieBackgroundN; i++) { + var name = prop.name.replace('{{i}}', i); + var val = prop.value; + css[name] = val; + } + + return css; + }, {}), { + // edge props + 'line-style': 'solid', + 'line-color': '#999', + 'line-fill': 'solid', + 'line-cap': 'butt', + 'line-opacity': 1, + 'line-gradient-stop-colors': '#999', + 'line-gradient-stop-positions': '0%', + 'control-point-step-size': 40, + 'control-point-weights': 0.5, + 'segment-weights': 0.5, + 'segment-distances': 20, + 'taxi-turn': '50%', + 'taxi-turn-min-distance': 10, + 'taxi-direction': 'auto', + 'edge-distances': 'intersection', + 'curve-style': 'haystack', + 'haystack-radius': 0, + 'arrow-scale': 1, + 'loop-direction': '-45deg', + 'loop-sweep': '-90deg', + 'source-distance-from-node': 0, + 'target-distance-from-node': 0, + 'source-endpoint': 'outside-to-node', + 'target-endpoint': 'outside-to-node', + 'line-dash-pattern': [6, 3], + 'line-dash-offset': 0 + }, [{ + name: 'arrow-shape', + value: 'none' + }, { + name: 'arrow-color', + value: '#999' + }, { + name: 'arrow-fill', + value: 'filled' + }].reduce(function (css, prop) { + styfn$2.arrowPrefixes.forEach(function (prefix) { + var name = prefix + '-' + prop.name; + var val = prop.value; + css[name] = val; + }); + return css; + }, {})); + var parsedProps = {}; + + for (var i = 0; i < this.properties.length; i++) { + var prop = this.properties[i]; + + if (prop.pointsTo) { + continue; + } + + var name = prop.name; + var val = rawProps[name]; + var parsedProp = this.parse(name, val); + parsedProps[name] = parsedProp; + } + + _p.defaultProperties = parsedProps; + return _p.defaultProperties; + }; + + styfn$2.addDefaultStylesheet = function () { + this.selector(':parent').css({ + 'shape': 'rectangle', + 'padding': 10, + 'background-color': '#eee', + 'border-color': '#ccc', + 'border-width': 1 + }).selector('edge').css({ + 'width': 3 + }).selector(':loop').css({ + 'curve-style': 'bezier' + }).selector('edge:compound').css({ + 'curve-style': 'bezier', + 'source-endpoint': 'outside-to-line', + 'target-endpoint': 'outside-to-line' + }).selector(':selected').css({ + 'background-color': '#0169D9', + 'line-color': '#0169D9', + 'source-arrow-color': '#0169D9', + 'target-arrow-color': '#0169D9', + 'mid-source-arrow-color': '#0169D9', + 'mid-target-arrow-color': '#0169D9' + }).selector(':parent:selected').css({ + 'background-color': '#CCE1F9', + 'border-color': '#aec8e5' + }).selector(':active').css({ + 'overlay-color': 'black', + 'overlay-padding': 10, + 'overlay-opacity': 0.25 + }); + this.defaultLength = this.length; + }; + + var styfn$1 = {}; // a caching layer for property parsing + + styfn$1.parse = function (name, value, propIsBypass, propIsFlat) { + var self = this; // function values can't be cached in all cases, and there isn't much benefit of caching them anyway + + if (fn$6(value)) { + return self.parseImplWarn(name, value, propIsBypass, propIsFlat); + } + + var flatKey = propIsFlat === 'mapping' || propIsFlat === true || propIsFlat === false || propIsFlat == null ? 'dontcare' : propIsFlat; + var bypassKey = propIsBypass ? 't' : 'f'; + var valueKey = '' + value; + var argHash = hashStrings(name, valueKey, bypassKey, flatKey); + var propCache = self.propCache = self.propCache || []; + var ret; + + if (!(ret = propCache[argHash])) { + ret = propCache[argHash] = self.parseImplWarn(name, value, propIsBypass, propIsFlat); + } // - bypasses can't be shared b/c the value can be changed by animations or otherwise overridden + // - mappings can't be shared b/c mappings are per-element + + + if (propIsBypass || propIsFlat === 'mapping') { + // need a copy since props are mutated later in their lifecycles + ret = copy(ret); + + if (ret) { + ret.value = copy(ret.value); // because it could be an array, e.g. colour + } + } + + return ret; + }; + + styfn$1.parseImplWarn = function (name, value, propIsBypass, propIsFlat) { + var prop = this.parseImpl(name, value, propIsBypass, propIsFlat); + + if (!prop && value != null) { + warn("The style property `".concat(name, ": ").concat(value, "` is invalid")); + } + + if (prop && (prop.name === 'width' || prop.name === 'height') && value === 'label') { + warn('The style value of `label` is deprecated for `' + prop.name + '`'); + } + + return prop; + }; // parse a property; return null on invalid; return parsed property otherwise + // fields : + // - name : the name of the property + // - value : the parsed, native-typed value of the property + // - strValue : a string value that represents the property value in valid css + // - bypass : true iff the property is a bypass property + + + styfn$1.parseImpl = function (name, value, propIsBypass, propIsFlat) { + var self = this; + name = camel2dash(name); // make sure the property name is in dash form (e.g. 'property-name' not 'propertyName') + + var property = self.properties[name]; + var passedValue = value; + var types = self.types; + + if (!property) { + return null; + } // return null on property of unknown name + + + if (value === undefined) { + return null; + } // can't assign undefined + // the property may be an alias + + + if (property.alias) { + property = property.pointsTo; + name = property.name; + } + + var valueIsString = string(value); + + if (valueIsString) { + // trim the value to make parsing easier + value = value.trim(); + } + + var type = property.type; + + if (!type) { + return null; + } // no type, no luck + // check if bypass is null or empty string (i.e. indication to delete bypass property) + + + if (propIsBypass && (value === '' || value === null)) { + return { + name: name, + value: value, + bypass: true, + deleteBypass: true + }; + } // check if value is a function used as a mapper + + + if (fn$6(value)) { + return { + name: name, + value: value, + strValue: 'fn', + mapped: types.fn, + bypass: propIsBypass + }; + } // check if value is mapped + + + var data, mapData; + + if (!valueIsString || propIsFlat || value.length < 7 || value[1] !== 'a') ; else if (value.length >= 7 && value[0] === 'd' && (data = new RegExp(types.data.regex).exec(value))) { + if (propIsBypass) { + return false; + } // mappers not allowed in bypass + + + var mapped = types.data; + return { + name: name, + value: data, + strValue: '' + value, + mapped: mapped, + field: data[1], + bypass: propIsBypass + }; + } else if (value.length >= 10 && value[0] === 'm' && (mapData = new RegExp(types.mapData.regex).exec(value))) { + if (propIsBypass) { + return false; + } // mappers not allowed in bypass + + + if (type.multiple) { + return false; + } // impossible to map to num + + + var _mapped = types.mapData; // we can map only if the type is a colour or a number + + if (!(type.color || type.number)) { + return false; + } + + var valueMin = this.parse(name, mapData[4]); // parse to validate + + if (!valueMin || valueMin.mapped) { + return false; + } // can't be invalid or mapped + + + var valueMax = this.parse(name, mapData[5]); // parse to validate + + if (!valueMax || valueMax.mapped) { + return false; + } // can't be invalid or mapped + // check if valueMin and valueMax are the same + + + if (valueMin.pfValue === valueMax.pfValue || valueMin.strValue === valueMax.strValue) { + warn('`' + name + ': ' + value + '` is not a valid mapper because the output range is zero; converting to `' + name + ': ' + valueMin.strValue + '`'); + return this.parse(name, valueMin.strValue); // can't make much of a mapper without a range + } else if (type.color) { + var c1 = valueMin.value; + var c2 = valueMax.value; + var same = c1[0] === c2[0] // red + && c1[1] === c2[1] // green + && c1[2] === c2[2] // blue + && ( // optional alpha + c1[3] === c2[3] // same alpha outright + || (c1[3] == null || c1[3] === 1 // full opacity for colour 1? + ) && (c2[3] == null || c2[3] === 1) // full opacity for colour 2? + ); + + if (same) { + return false; + } // can't make a mapper without a range + + } + + return { + name: name, + value: mapData, + strValue: '' + value, + mapped: _mapped, + field: mapData[1], + fieldMin: parseFloat(mapData[2]), + // min & max are numeric + fieldMax: parseFloat(mapData[3]), + valueMin: valueMin.value, + valueMax: valueMax.value, + bypass: propIsBypass + }; + } + + if (type.multiple && propIsFlat !== 'multiple') { + var vals; + + if (valueIsString) { + vals = value.split(/\s+/); + } else if (array(value)) { + vals = value; + } else { + vals = [value]; + } + + if (type.evenMultiple && vals.length % 2 !== 0) { + return null; + } + + var valArr = []; + var unitsArr = []; + var pfValArr = []; + var strVal = ''; + var hasEnum = false; + + for (var i = 0; i < vals.length; i++) { + var p = self.parse(name, vals[i], propIsBypass, 'multiple'); + hasEnum = hasEnum || string(p.value); + valArr.push(p.value); + pfValArr.push(p.pfValue != null ? p.pfValue : p.value); + unitsArr.push(p.units); + strVal += (i > 0 ? ' ' : '') + p.strValue; + } + + if (type.validate && !type.validate(valArr, unitsArr)) { + return null; + } + + if (type.singleEnum && hasEnum) { + if (valArr.length === 1 && string(valArr[0])) { + return { + name: name, + value: valArr[0], + strValue: valArr[0], + bypass: propIsBypass + }; + } else { + return null; + } + } + + return { + name: name, + value: valArr, + pfValue: pfValArr, + strValue: strVal, + bypass: propIsBypass, + units: unitsArr + }; + } // several types also allow enums + + + var checkEnums = function checkEnums() { + for (var _i = 0; _i < type.enums.length; _i++) { + var en = type.enums[_i]; + + if (en === value) { + return { + name: name, + value: value, + strValue: '' + value, + bypass: propIsBypass + }; + } + } + + return null; + }; // check the type and return the appropriate object + + + if (type.number) { + var units; + var implicitUnits = 'px'; // not set => px + + if (type.units) { + // use specified units if set + units = type.units; + } + + if (type.implicitUnits) { + implicitUnits = type.implicitUnits; + } + + if (!type.unitless) { + if (valueIsString) { + var unitsRegex = 'px|em' + (type.allowPercent ? '|\\%' : ''); + + if (units) { + unitsRegex = units; + } // only allow explicit units if so set + + + var match = value.match('^(' + number + ')(' + unitsRegex + ')?' + '$'); + + if (match) { + value = match[1]; + units = match[2] || implicitUnits; + } + } else if (!units || type.implicitUnits) { + units = implicitUnits; // implicitly px if unspecified + } + } + + value = parseFloat(value); // if not a number and enums not allowed, then the value is invalid + + if (isNaN(value) && type.enums === undefined) { + return null; + } // check if this number type also accepts special keywords in place of numbers + // (i.e. `left`, `auto`, etc) + + + if (isNaN(value) && type.enums !== undefined) { + value = passedValue; + return checkEnums(); + } // check if value must be an integer + + + if (type.integer && !integer(value)) { + return null; + } // check value is within range + + + if (type.min !== undefined && (value < type.min || type.strictMin && value === type.min) || type.max !== undefined && (value > type.max || type.strictMax && value === type.max)) { + return null; + } + + var ret = { + name: name, + value: value, + strValue: '' + value + (units ? units : ''), + units: units, + bypass: propIsBypass + }; // normalise value in pixels + + if (type.unitless || units !== 'px' && units !== 'em') { + ret.pfValue = value; + } else { + ret.pfValue = units === 'px' || !units ? value : this.getEmSizeInPixels() * value; + } // normalise value in ms + + + if (units === 'ms' || units === 's') { + ret.pfValue = units === 'ms' ? value : 1000 * value; + } // normalise value in rad + + + if (units === 'deg' || units === 'rad') { + ret.pfValue = units === 'rad' ? value : deg2rad(value); + } // normalize value in % + + + if (units === '%') { + ret.pfValue = value / 100; + } + + return ret; + } else if (type.propList) { + var props = []; + var propsStr = '' + value; + + if (propsStr === 'none') ; else { + // go over each prop + var propsSplit = propsStr.split(/\s*,\s*|\s+/); + + for (var _i2 = 0; _i2 < propsSplit.length; _i2++) { + var propName = propsSplit[_i2].trim(); + + if (self.properties[propName]) { + props.push(propName); + } else { + warn('`' + propName + '` is not a valid property name'); + } + } + + if (props.length === 0) { + return null; + } + } + + return { + name: name, + value: props, + strValue: props.length === 0 ? 'none' : props.join(' '), + bypass: propIsBypass + }; + } else if (type.color) { + var tuple = color2tuple(value); + + if (!tuple) { + return null; + } + + return { + name: name, + value: tuple, + pfValue: tuple, + strValue: 'rgb(' + tuple[0] + ',' + tuple[1] + ',' + tuple[2] + ')', + // n.b. no spaces b/c of multiple support + bypass: propIsBypass + }; + } else if (type.regex || type.regexes) { + // first check enums + if (type.enums) { + var enumProp = checkEnums(); + + if (enumProp) { + return enumProp; + } + } + + var regexes = type.regexes ? type.regexes : [type.regex]; + + for (var _i3 = 0; _i3 < regexes.length; _i3++) { + var regex = new RegExp(regexes[_i3]); // make a regex from the type string + + var m = regex.exec(value); + + if (m) { + // regex matches + return { + name: name, + value: type.singleRegexMatchValue ? m[1] : m, + strValue: '' + value, + bypass: propIsBypass + }; + } + } + + return null; // didn't match any + } else if (type.string) { + // just return + return { + name: name, + value: '' + value, + strValue: '' + value, + bypass: propIsBypass + }; + } else if (type.enums) { + // check enums last because it's a combo type in others + return checkEnums(); + } else { + return null; // not a type we can handle + } + }; + + var Style = function Style(cy) { + if (!(this instanceof Style)) { + return new Style(cy); + } + + if (!core(cy)) { + error('A style must have a core reference'); + return; + } + + this._private = { + cy: cy, + coreStyle: {} + }; + this.length = 0; + this.resetToDefault(); + }; + + var styfn = Style.prototype; + + styfn.instanceString = function () { + return 'style'; + }; // remove all contexts + + + styfn.clear = function () { + var _p = this._private; + var cy = _p.cy; + var eles = cy.elements(); + + for (var i = 0; i < this.length; i++) { + this[i] = undefined; + } + + this.length = 0; + _p.contextStyles = {}; + _p.propDiffs = {}; + this.cleanElements(eles, true); + eles.forEach(function (ele) { + var ele_p = ele[0]._private; + ele_p.styleDirty = true; + ele_p.appliedInitStyle = false; + }); + return this; // chaining + }; + + styfn.resetToDefault = function () { + this.clear(); + this.addDefaultStylesheet(); + return this; + }; // builds a style object for the 'core' selector + + + styfn.core = function (propName) { + return this._private.coreStyle[propName] || this.getDefaultProperty(propName); + }; // create a new context from the specified selector string and switch to that context + + + styfn.selector = function (selectorStr) { + // 'core' is a special case and does not need a selector + var selector = selectorStr === 'core' ? null : new Selector(selectorStr); + var i = this.length++; // new context means new index + + this[i] = { + selector: selector, + properties: [], + mappedProperties: [], + index: i + }; + return this; // chaining + }; // add one or many css rules to the current context + + + styfn.css = function () { + var self = this; + var args = arguments; + + if (args.length === 1) { + var map = args[0]; + + for (var i = 0; i < self.properties.length; i++) { + var prop = self.properties[i]; + var mapVal = map[prop.name]; + + if (mapVal === undefined) { + mapVal = map[dash2camel(prop.name)]; + } + + if (mapVal !== undefined) { + this.cssRule(prop.name, mapVal); + } + } + } else if (args.length === 2) { + this.cssRule(args[0], args[1]); + } // do nothing if args are invalid + + + return this; // chaining + }; + + styfn.style = styfn.css; // add a single css rule to the current context + + styfn.cssRule = function (name, value) { + // name-value pair + var property = this.parse(name, value); // add property to current context if valid + + if (property) { + var i = this.length - 1; + this[i].properties.push(property); + this[i].properties[property.name] = property; // allow access by name as well + + if (property.name.match(/pie-(\d+)-background-size/) && property.value) { + this._private.hasPie = true; + } + + if (property.mapped) { + this[i].mappedProperties.push(property); + } // add to core style if necessary + + + var currentSelectorIsCore = !this[i].selector; + + if (currentSelectorIsCore) { + this._private.coreStyle[property.name] = property; + } + } + + return this; // chaining + }; + + styfn.append = function (style) { + if (stylesheet(style)) { + style.appendToStyle(this); + } else if (array(style)) { + this.appendFromJson(style); + } else if (string(style)) { + this.appendFromString(style); + } // you probably wouldn't want to append a Style, since you'd duplicate the default parts + + + return this; + }; // static function + + + Style.fromJson = function (cy, json) { + var style = new Style(cy); + style.fromJson(json); + return style; + }; + + Style.fromString = function (cy, string) { + return new Style(cy).fromString(string); + }; + + [styfn$8, styfn$7, styfn$6, styfn$5, styfn$4, styfn$3, styfn$2, styfn$1].forEach(function (props) { + extend(styfn, props); + }); + Style.types = styfn.types; + Style.properties = styfn.properties; + Style.propertyGroups = styfn.propertyGroups; + Style.propertyGroupNames = styfn.propertyGroupNames; + Style.propertyGroupKeys = styfn.propertyGroupKeys; + + var corefn$2 = { + style: function style(newStyle) { + if (newStyle) { + var s = this.setStyle(newStyle); + s.update(); + } + + return this._private.style; + }, + setStyle: function setStyle(style) { + var _p = this._private; + + if (stylesheet(style)) { + _p.style = style.generateStyle(this); + } else if (array(style)) { + _p.style = Style.fromJson(this, style); + } else if (string(style)) { + _p.style = Style.fromString(this, style); + } else { + _p.style = Style(this); + } + + return _p.style; + }, + // e.g. cy.data() changed => recalc ele mappers + updateStyle: function updateStyle() { + this.mutableElements().updateStyle(); // just send to all eles + } + }; + + var defaultSelectionType = 'single'; + var corefn$1 = { + autolock: function autolock(bool) { + if (bool !== undefined) { + this._private.autolock = bool ? true : false; + } else { + return this._private.autolock; + } + + return this; // chaining + }, + autoungrabify: function autoungrabify(bool) { + if (bool !== undefined) { + this._private.autoungrabify = bool ? true : false; + } else { + return this._private.autoungrabify; + } + + return this; // chaining + }, + autounselectify: function autounselectify(bool) { + if (bool !== undefined) { + this._private.autounselectify = bool ? true : false; + } else { + return this._private.autounselectify; + } + + return this; // chaining + }, + selectionType: function selectionType(selType) { + var _p = this._private; + + if (_p.selectionType == null) { + _p.selectionType = defaultSelectionType; + } + + if (selType !== undefined) { + if (selType === 'additive' || selType === 'single') { + _p.selectionType = selType; + } + } else { + return _p.selectionType; + } + + return this; + }, + panningEnabled: function panningEnabled(bool) { + if (bool !== undefined) { + this._private.panningEnabled = bool ? true : false; + } else { + return this._private.panningEnabled; + } + + return this; // chaining + }, + userPanningEnabled: function userPanningEnabled(bool) { + if (bool !== undefined) { + this._private.userPanningEnabled = bool ? true : false; + } else { + return this._private.userPanningEnabled; + } + + return this; // chaining + }, + zoomingEnabled: function zoomingEnabled(bool) { + if (bool !== undefined) { + this._private.zoomingEnabled = bool ? true : false; + } else { + return this._private.zoomingEnabled; + } + + return this; // chaining + }, + userZoomingEnabled: function userZoomingEnabled(bool) { + if (bool !== undefined) { + this._private.userZoomingEnabled = bool ? true : false; + } else { + return this._private.userZoomingEnabled; + } + + return this; // chaining + }, + boxSelectionEnabled: function boxSelectionEnabled(bool) { + if (bool !== undefined) { + this._private.boxSelectionEnabled = bool ? true : false; + } else { + return this._private.boxSelectionEnabled; + } + + return this; // chaining + }, + pan: function pan() { + var args = arguments; + var pan = this._private.pan; + var dim, val, dims, x, y; + + switch (args.length) { + case 0: + // .pan() + return pan; + + case 1: + if (string(args[0])) { + // .pan('x') + dim = args[0]; + return pan[dim]; + } else if (plainObject(args[0])) { + // .pan({ x: 0, y: 100 }) + if (!this._private.panningEnabled) { + return this; + } + + dims = args[0]; + x = dims.x; + y = dims.y; + + if (number$1(x)) { + pan.x = x; + } + + if (number$1(y)) { + pan.y = y; + } + + this.emit('pan viewport'); + } + + break; + + case 2: + // .pan('x', 100) + if (!this._private.panningEnabled) { + return this; + } + + dim = args[0]; + val = args[1]; + + if ((dim === 'x' || dim === 'y') && number$1(val)) { + pan[dim] = val; + } + + this.emit('pan viewport'); + break; + // invalid + } + + this.notify('viewport'); + return this; // chaining + }, + panBy: function panBy(arg0, arg1) { + var args = arguments; + var pan = this._private.pan; + var dim, val, dims, x, y; + + if (!this._private.panningEnabled) { + return this; + } + + switch (args.length) { + case 1: + if (plainObject(arg0)) { + // .panBy({ x: 0, y: 100 }) + dims = args[0]; + x = dims.x; + y = dims.y; + + if (number$1(x)) { + pan.x += x; + } + + if (number$1(y)) { + pan.y += y; + } + + this.emit('pan viewport'); + } + + break; + + case 2: + // .panBy('x', 100) + dim = arg0; + val = arg1; + + if ((dim === 'x' || dim === 'y') && number$1(val)) { + pan[dim] += val; + } + + this.emit('pan viewport'); + break; + // invalid + } + + this.notify('viewport'); + return this; // chaining + }, + fit: function fit(elements, padding) { + var viewportState = this.getFitViewport(elements, padding); + + if (viewportState) { + var _p = this._private; + _p.zoom = viewportState.zoom; + _p.pan = viewportState.pan; + this.emit('pan zoom viewport'); + this.notify('viewport'); + } + + return this; // chaining + }, + getFitViewport: function getFitViewport(elements, padding) { + if (number$1(elements) && padding === undefined) { + // elements is optional + padding = elements; + elements = undefined; + } + + if (!this._private.panningEnabled || !this._private.zoomingEnabled) { + return; + } + + var bb; + + if (string(elements)) { + var sel = elements; + elements = this.$(sel); + } else if (boundingBox(elements)) { + // assume bb + var bbe = elements; + bb = { + x1: bbe.x1, + y1: bbe.y1, + x2: bbe.x2, + y2: bbe.y2 + }; + bb.w = bb.x2 - bb.x1; + bb.h = bb.y2 - bb.y1; + } else if (!elementOrCollection(elements)) { + elements = this.mutableElements(); + } + + if (elementOrCollection(elements) && elements.empty()) { + return; + } // can't fit to nothing + + + bb = bb || elements.boundingBox(); + var w = this.width(); + var h = this.height(); + var zoom; + padding = number$1(padding) ? padding : 0; + + if (!isNaN(w) && !isNaN(h) && w > 0 && h > 0 && !isNaN(bb.w) && !isNaN(bb.h) && bb.w > 0 && bb.h > 0) { + zoom = Math.min((w - 2 * padding) / bb.w, (h - 2 * padding) / bb.h); // crop zoom + + zoom = zoom > this._private.maxZoom ? this._private.maxZoom : zoom; + zoom = zoom < this._private.minZoom ? this._private.minZoom : zoom; + var pan = { + // now pan to middle + x: (w - zoom * (bb.x1 + bb.x2)) / 2, + y: (h - zoom * (bb.y1 + bb.y2)) / 2 + }; + return { + zoom: zoom, + pan: pan + }; + } + + return; + }, + zoomRange: function zoomRange(min, max) { + var _p = this._private; + + if (max == null) { + var opts = min; + min = opts.min; + max = opts.max; + } + + if (number$1(min) && number$1(max) && min <= max) { + _p.minZoom = min; + _p.maxZoom = max; + } else if (number$1(min) && max === undefined && min <= _p.maxZoom) { + _p.minZoom = min; + } else if (number$1(max) && min === undefined && max >= _p.minZoom) { + _p.maxZoom = max; + } + + return this; + }, + minZoom: function minZoom(zoom) { + if (zoom === undefined) { + return this._private.minZoom; + } else { + return this.zoomRange({ + min: zoom + }); + } + }, + maxZoom: function maxZoom(zoom) { + if (zoom === undefined) { + return this._private.maxZoom; + } else { + return this.zoomRange({ + max: zoom + }); + } + }, + getZoomedViewport: function getZoomedViewport(params) { + var _p = this._private; + var currentPan = _p.pan; + var currentZoom = _p.zoom; + var pos; // in rendered px + + var zoom; + var bail = false; + + if (!_p.zoomingEnabled) { + // zooming disabled + bail = true; + } + + if (number$1(params)) { + // then set the zoom + zoom = params; + } else if (plainObject(params)) { + // then zoom about a point + zoom = params.level; + + if (params.position != null) { + pos = modelToRenderedPosition(params.position, currentZoom, currentPan); + } else if (params.renderedPosition != null) { + pos = params.renderedPosition; + } + + if (pos != null && !_p.panningEnabled) { + // panning disabled + bail = true; + } + } // crop zoom + + + zoom = zoom > _p.maxZoom ? _p.maxZoom : zoom; + zoom = zoom < _p.minZoom ? _p.minZoom : zoom; // can't zoom with invalid params + + if (bail || !number$1(zoom) || zoom === currentZoom || pos != null && (!number$1(pos.x) || !number$1(pos.y))) { + return null; + } + + if (pos != null) { + // set zoom about position + var pan1 = currentPan; + var zoom1 = currentZoom; + var zoom2 = zoom; + var pan2 = { + x: -zoom2 / zoom1 * (pos.x - pan1.x) + pos.x, + y: -zoom2 / zoom1 * (pos.y - pan1.y) + pos.y + }; + return { + zoomed: true, + panned: true, + zoom: zoom2, + pan: pan2 + }; + } else { + // just set the zoom + return { + zoomed: true, + panned: false, + zoom: zoom, + pan: currentPan + }; + } + }, + zoom: function zoom(params) { + if (params === undefined) { + // get + return this._private.zoom; + } else { + // set + var vp = this.getZoomedViewport(params); + var _p = this._private; + + if (vp == null || !vp.zoomed) { + return this; + } + + _p.zoom = vp.zoom; + + if (vp.panned) { + _p.pan.x = vp.pan.x; + _p.pan.y = vp.pan.y; + } + + this.emit('zoom' + (vp.panned ? ' pan' : '') + ' viewport'); + this.notify('viewport'); + return this; // chaining + } + }, + viewport: function viewport(opts) { + var _p = this._private; + var zoomDefd = true; + var panDefd = true; + var events = []; // to trigger + + var zoomFailed = false; + var panFailed = false; + + if (!opts) { + return this; + } + + if (!number$1(opts.zoom)) { + zoomDefd = false; + } + + if (!plainObject(opts.pan)) { + panDefd = false; + } + + if (!zoomDefd && !panDefd) { + return this; + } + + if (zoomDefd) { + var z = opts.zoom; + + if (z < _p.minZoom || z > _p.maxZoom || !_p.zoomingEnabled) { + zoomFailed = true; + } else { + _p.zoom = z; + events.push('zoom'); + } + } + + if (panDefd && (!zoomFailed || !opts.cancelOnFailedZoom) && _p.panningEnabled) { + var p = opts.pan; + + if (number$1(p.x)) { + _p.pan.x = p.x; + panFailed = false; + } + + if (number$1(p.y)) { + _p.pan.y = p.y; + panFailed = false; + } + + if (!panFailed) { + events.push('pan'); + } + } + + if (events.length > 0) { + events.push('viewport'); + this.emit(events.join(' ')); + this.notify('viewport'); + } + + return this; // chaining + }, + center: function center(elements) { + var pan = this.getCenterPan(elements); + + if (pan) { + this._private.pan = pan; + this.emit('pan viewport'); + this.notify('viewport'); + } + + return this; // chaining + }, + getCenterPan: function getCenterPan(elements, zoom) { + if (!this._private.panningEnabled) { + return; + } + + if (string(elements)) { + var selector = elements; + elements = this.mutableElements().filter(selector); + } else if (!elementOrCollection(elements)) { + elements = this.mutableElements(); + } + + if (elements.length === 0) { + return; + } // can't centre pan to nothing + + + var bb = elements.boundingBox(); + var w = this.width(); + var h = this.height(); + zoom = zoom === undefined ? this._private.zoom : zoom; + var pan = { + // middle + x: (w - zoom * (bb.x1 + bb.x2)) / 2, + y: (h - zoom * (bb.y1 + bb.y2)) / 2 + }; + return pan; + }, + reset: function reset() { + if (!this._private.panningEnabled || !this._private.zoomingEnabled) { + return this; + } + + this.viewport({ + pan: { + x: 0, + y: 0 + }, + zoom: 1 + }); + return this; // chaining + }, + invalidateSize: function invalidateSize() { + this._private.sizeCache = null; + }, + size: function size() { + var _p = this._private; + var container = _p.container; + var cy = this; + return _p.sizeCache = _p.sizeCache || (container ? function () { + var style = cy.window().getComputedStyle(container); + + var val = function val(name) { + return parseFloat(style.getPropertyValue(name)); + }; + + return { + width: container.clientWidth - val('padding-left') - val('padding-right'), + height: container.clientHeight - val('padding-top') - val('padding-bottom') + }; + }() : { + // fallback if no container (not 0 b/c can be used for dividing etc) + width: 1, + height: 1 + }); + }, + width: function width() { + return this.size().width; + }, + height: function height() { + return this.size().height; + }, + extent: function extent() { + var pan = this._private.pan; + var zoom = this._private.zoom; + var rb = this.renderedExtent(); + var b = { + x1: (rb.x1 - pan.x) / zoom, + x2: (rb.x2 - pan.x) / zoom, + y1: (rb.y1 - pan.y) / zoom, + y2: (rb.y2 - pan.y) / zoom + }; + b.w = b.x2 - b.x1; + b.h = b.y2 - b.y1; + return b; + }, + renderedExtent: function renderedExtent() { + var width = this.width(); + var height = this.height(); + return { + x1: 0, + y1: 0, + x2: width, + y2: height, + w: width, + h: height + }; + }, + multiClickDebounceTime: function multiClickDebounceTime(_int) { + if (_int) this._private.multiClickDebounceTime = _int;else return this._private.multiClickDebounceTime; + return this; // chaining + } + }; // aliases + + corefn$1.centre = corefn$1.center; // backwards compatibility + + corefn$1.autolockNodes = corefn$1.autolock; + corefn$1.autoungrabifyNodes = corefn$1.autoungrabify; + + var fn = { + data: define.data({ + field: 'data', + bindingEvent: 'data', + allowBinding: true, + allowSetting: true, + settingEvent: 'data', + settingTriggersEvent: true, + triggerFnName: 'trigger', + allowGetting: true, + updateStyle: true + }), + removeData: define.removeData({ + field: 'data', + event: 'data', + triggerFnName: 'trigger', + triggerEvent: true, + updateStyle: true + }), + scratch: define.data({ + field: 'scratch', + bindingEvent: 'scratch', + allowBinding: true, + allowSetting: true, + settingEvent: 'scratch', + settingTriggersEvent: true, + triggerFnName: 'trigger', + allowGetting: true, + updateStyle: true + }), + removeScratch: define.removeData({ + field: 'scratch', + event: 'scratch', + triggerFnName: 'trigger', + triggerEvent: true, + updateStyle: true + }) + }; // aliases + + fn.attr = fn.data; + fn.removeAttr = fn.removeData; + + var Core = function Core(opts) { + var cy = this; + opts = extend({}, opts); + var container = opts.container; // allow for passing a wrapped jquery object + // e.g. cytoscape({ container: $('#cy') }) + + if (container && !htmlElement(container) && htmlElement(container[0])) { + container = container[0]; + } + + var reg = container ? container._cyreg : null; // e.g. already registered some info (e.g. readies) via jquery + + reg = reg || {}; + + if (reg && reg.cy) { + reg.cy.destroy(); + reg = {}; // old instance => replace reg completely + } + + var readies = reg.readies = reg.readies || []; + + if (container) { + container._cyreg = reg; + } // make sure container assoc'd reg points to this cy + + + reg.cy = cy; + var head = _window !== undefined && container !== undefined && !opts.headless; + var options = opts; + options.layout = extend({ + name: head ? 'grid' : 'null' + }, options.layout); + options.renderer = extend({ + name: head ? 'canvas' : 'null' + }, options.renderer); + + var defVal = function defVal(def, val, altVal) { + if (val !== undefined) { + return val; + } else if (altVal !== undefined) { + return altVal; + } else { + return def; + } + }; + + var _p = this._private = { + container: container, + // html dom ele container + ready: false, + // whether ready has been triggered + options: options, + // cached options + elements: new Collection(this), + // elements in the graph + listeners: [], + // list of listeners + aniEles: new Collection(this), + // elements being animated + data: options.data || {}, + // data for the core + scratch: {}, + // scratch object for core + layout: null, + renderer: null, + destroyed: false, + // whether destroy was called + notificationsEnabled: true, + // whether notifications are sent to the renderer + minZoom: 1e-50, + maxZoom: 1e50, + zoomingEnabled: defVal(true, options.zoomingEnabled), + userZoomingEnabled: defVal(true, options.userZoomingEnabled), + panningEnabled: defVal(true, options.panningEnabled), + userPanningEnabled: defVal(true, options.userPanningEnabled), + boxSelectionEnabled: defVal(true, options.boxSelectionEnabled), + autolock: defVal(false, options.autolock, options.autolockNodes), + autoungrabify: defVal(false, options.autoungrabify, options.autoungrabifyNodes), + autounselectify: defVal(false, options.autounselectify), + styleEnabled: options.styleEnabled === undefined ? head : options.styleEnabled, + zoom: number$1(options.zoom) ? options.zoom : 1, + pan: { + x: plainObject(options.pan) && number$1(options.pan.x) ? options.pan.x : 0, + y: plainObject(options.pan) && number$1(options.pan.y) ? options.pan.y : 0 + }, + animation: { + // object for currently-running animations + current: [], + queue: [] + }, + hasCompoundNodes: false, + multiClickDebounceTime: defVal(250, options.multiClickDebounceTime) + }; + + this.createEmitter(); // set selection type + + this.selectionType(options.selectionType); // init zoom bounds + + this.zoomRange({ + min: options.minZoom, + max: options.maxZoom + }); + + var loadExtData = function loadExtData(extData, next) { + var anyIsPromise = extData.some(promise); + + if (anyIsPromise) { + return Promise$1.all(extData).then(next); // load all data asynchronously, then exec rest of init + } else { + next(extData); // exec synchronously for convenience + } + }; // start with the default stylesheet so we have something before loading an external stylesheet + + + if (_p.styleEnabled) { + cy.setStyle([]); + } // create the renderer + + + var rendererOptions = extend({}, options, options.renderer); // allow rendering hints in top level options + + cy.initRenderer(rendererOptions); + + var setElesAndLayout = function setElesAndLayout(elements, onload, ondone) { + cy.notifications(false); // remove old elements + + var oldEles = cy.mutableElements(); + + if (oldEles.length > 0) { + oldEles.remove(); + } + + if (elements != null) { + if (plainObject(elements) || array(elements)) { + cy.add(elements); + } + } + + cy.one('layoutready', function (e) { + cy.notifications(true); + cy.emit(e); // we missed this event by turning notifications off, so pass it on + + cy.one('load', onload); + cy.emitAndNotify('load'); + }).one('layoutstop', function () { + cy.one('done', ondone); + cy.emit('done'); + }); + var layoutOpts = extend({}, cy._private.options.layout); + layoutOpts.eles = cy.elements(); + cy.layout(layoutOpts).run(); + }; + + loadExtData([options.style, options.elements], function (thens) { + var initStyle = thens[0]; + var initEles = thens[1]; // init style + + if (_p.styleEnabled) { + cy.style().append(initStyle); + } // initial load + + + setElesAndLayout(initEles, function () { + // onready + cy.startAnimationLoop(); + _p.ready = true; // if a ready callback is specified as an option, the bind it + + if (fn$6(options.ready)) { + cy.on('ready', options.ready); + } // bind all the ready handlers registered before creating this instance + + + for (var i = 0; i < readies.length; i++) { + var fn = readies[i]; + cy.on('ready', fn); + } + + if (reg) { + reg.readies = []; + } // clear b/c we've bound them all and don't want to keep it around in case a new core uses the same div etc + + + cy.emit('ready'); + }, options.done); + }); + }; + + var corefn = Core.prototype; // short alias + + extend(corefn, { + instanceString: function instanceString() { + return 'core'; + }, + isReady: function isReady() { + return this._private.ready; + }, + destroyed: function destroyed() { + return this._private.destroyed; + }, + ready: function ready(fn) { + if (this.isReady()) { + this.emitter().emit('ready', [], fn); // just calls fn as though triggered via ready event + } else { + this.on('ready', fn); + } + + return this; + }, + destroy: function destroy() { + var cy = this; + if (cy.destroyed()) return; + cy.stopAnimationLoop(); + cy.destroyRenderer(); + this.emit('destroy'); + cy._private.destroyed = true; + return cy; + }, + hasElementWithId: function hasElementWithId(id) { + return this._private.elements.hasElementWithId(id); + }, + getElementById: function getElementById(id) { + return this._private.elements.getElementById(id); + }, + hasCompoundNodes: function hasCompoundNodes() { + return this._private.hasCompoundNodes; + }, + headless: function headless() { + return this._private.renderer.isHeadless(); + }, + styleEnabled: function styleEnabled() { + return this._private.styleEnabled; + }, + addToPool: function addToPool(eles) { + this._private.elements.merge(eles); + + return this; // chaining + }, + removeFromPool: function removeFromPool(eles) { + this._private.elements.unmerge(eles); + + return this; + }, + container: function container() { + return this._private.container || null; + }, + window: function window() { + var container = this._private.container; + if (container == null) return _window; + var ownerDocument = this._private.container.ownerDocument; + + if (ownerDocument === undefined || ownerDocument == null) { + return _window; + } + + return ownerDocument.defaultView || _window; + }, + mount: function mount(container) { + if (container == null) { + return; + } + + var cy = this; + var _p = cy._private; + var options = _p.options; + + if (!htmlElement(container) && htmlElement(container[0])) { + container = container[0]; + } + + cy.stopAnimationLoop(); + cy.destroyRenderer(); + _p.container = container; + _p.styleEnabled = true; + cy.invalidateSize(); + cy.initRenderer(extend({}, options, options.renderer, { + // allow custom renderer name to be re-used, otherwise use canvas + name: options.renderer.name === 'null' ? 'canvas' : options.renderer.name + })); + cy.startAnimationLoop(); + cy.style(options.style); + cy.emit('mount'); + return cy; + }, + unmount: function unmount() { + var cy = this; + cy.stopAnimationLoop(); + cy.destroyRenderer(); + cy.initRenderer({ + name: 'null' + }); + cy.emit('unmount'); + return cy; + }, + options: function options() { + return copy(this._private.options); + }, + json: function json(obj) { + var cy = this; + var _p = cy._private; + var eles = cy.mutableElements(); + + var getFreshRef = function getFreshRef(ele) { + return cy.getElementById(ele.id()); + }; + + if (plainObject(obj)) { + // set + cy.startBatch(); + + if (obj.elements) { + var idInJson = {}; + + var updateEles = function updateEles(jsons, gr) { + var toAdd = []; + var toMod = []; + + for (var i = 0; i < jsons.length; i++) { + var json = jsons[i]; + + if (!json.data.id) { + warn('cy.json() cannot handle elements without an ID attribute'); + continue; + } + + var id = '' + json.data.id; // id must be string + + var ele = cy.getElementById(id); + idInJson[id] = true; + + if (ele.length !== 0) { + // existing element should be updated + toMod.push({ + ele: ele, + json: json + }); + } else { + // otherwise should be added + if (gr) { + json.group = gr; + toAdd.push(json); + } else { + toAdd.push(json); + } + } + } + + cy.add(toAdd); + + for (var _i = 0; _i < toMod.length; _i++) { + var _toMod$_i = toMod[_i], + _ele = _toMod$_i.ele, + _json = _toMod$_i.json; + + _ele.json(_json); + } + }; + + if (array(obj.elements)) { + // elements: [] + updateEles(obj.elements); + } else { + // elements: { nodes: [], edges: [] } + var grs = ['nodes', 'edges']; + + for (var i = 0; i < grs.length; i++) { + var gr = grs[i]; + var elements = obj.elements[gr]; + + if (array(elements)) { + updateEles(elements, gr); + } + } + } + + var parentsToRemove = cy.collection(); + eles.filter(function (ele) { + return !idInJson[ele.id()]; + }).forEach(function (ele) { + if (ele.isParent()) { + parentsToRemove.merge(ele); + } else { + ele.remove(); + } + }); // so that children are not removed w/parent + + parentsToRemove.forEach(function (ele) { + return ele.children().move({ + parent: null + }); + }); // intermediate parents may be moved by prior line, so make sure we remove by fresh refs + + parentsToRemove.forEach(function (ele) { + return getFreshRef(ele).remove(); + }); + } + + if (obj.style) { + cy.style(obj.style); + } + + if (obj.zoom != null && obj.zoom !== _p.zoom) { + cy.zoom(obj.zoom); + } + + if (obj.pan) { + if (obj.pan.x !== _p.pan.x || obj.pan.y !== _p.pan.y) { + cy.pan(obj.pan); + } + } + + if (obj.data) { + cy.data(obj.data); + } + + var fields = ['minZoom', 'maxZoom', 'zoomingEnabled', 'userZoomingEnabled', 'panningEnabled', 'userPanningEnabled', 'boxSelectionEnabled', 'autolock', 'autoungrabify', 'autounselectify', 'multiClickDebounceTime']; + + for (var _i2 = 0; _i2 < fields.length; _i2++) { + var f = fields[_i2]; + + if (obj[f] != null) { + cy[f](obj[f]); + } + } + + cy.endBatch(); + return this; // chaining + } else { + // get + var flat = !!obj; + var json = {}; + + if (flat) { + json.elements = this.elements().map(function (ele) { + return ele.json(); + }); + } else { + json.elements = {}; + eles.forEach(function (ele) { + var group = ele.group(); + + if (!json.elements[group]) { + json.elements[group] = []; + } + + json.elements[group].push(ele.json()); + }); + } + + if (this._private.styleEnabled) { + json.style = cy.style().json(); + } + + json.data = copy(cy.data()); + var options = _p.options; + json.zoomingEnabled = _p.zoomingEnabled; + json.userZoomingEnabled = _p.userZoomingEnabled; + json.zoom = _p.zoom; + json.minZoom = _p.minZoom; + json.maxZoom = _p.maxZoom; + json.panningEnabled = _p.panningEnabled; + json.userPanningEnabled = _p.userPanningEnabled; + json.pan = copy(_p.pan); + json.boxSelectionEnabled = _p.boxSelectionEnabled; + json.renderer = copy(options.renderer); + json.hideEdgesOnViewport = options.hideEdgesOnViewport; + json.textureOnViewport = options.textureOnViewport; + json.wheelSensitivity = options.wheelSensitivity; + json.motionBlur = options.motionBlur; + json.multiClickDebounceTime = options.multiClickDebounceTime; + return json; + } + } + }); + corefn.$id = corefn.getElementById; + [corefn$9, corefn$8, elesfn, corefn$7, corefn$6, corefn$5, corefn$4, corefn$3, corefn$2, corefn$1, fn].forEach(function (props) { + extend(corefn, props); + }); + + /* eslint-disable no-unused-vars */ + + var defaults$7 = { + fit: true, + // whether to fit the viewport to the graph + directed: false, + // whether the tree is directed downwards (or edges can point in any direction if false) + padding: 30, + // padding on fit + circle: false, + // put depths in concentric circles if true, put depths top down if false + grid: false, + // whether to create an even grid into which the DAG is placed (circle:false only) + spacingFactor: 1.75, + // positive spacing factor, larger => more space between nodes (N.B. n/a if causes overlap) + boundingBox: undefined, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + avoidOverlap: true, + // prevents node overlap, may overflow boundingBox if not enough space + nodeDimensionsIncludeLabels: false, + // Excludes the label when calculating node bounding boxes for the layout algorithm + roots: undefined, + // the roots of the trees + depthSort: undefined, + // a sorting function to order nodes at equal depth. e.g. function(a, b){ return a.data('weight') - b.data('weight') } + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: undefined, + // easing of animation if enabled, + animateFilter: function animateFilter(node, i) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: undefined, + // callback on layoutready + stop: undefined, + // callback on layoutstop + transform: function transform(node, position) { + return position; + } // transform a given node position. Useful for changing flow direction in discrete layouts + + }; + var deprecatedOptionDefaults = { + maximal: false, + // whether to shift nodes down their natural BFS depths in order to avoid upwards edges (DAGS only); setting acyclic to true sets maximal to true also + acyclic: false // whether the tree is acyclic and thus a node could be shifted (due to the maximal option) multiple times without causing an infinite loop; setting to true sets maximal to true also; if you are uncertain whether a tree is acyclic, set to false to avoid potential infinite loops + + }; + /* eslint-enable */ + + var getInfo = function getInfo(ele) { + return ele.scratch('breadthfirst'); + }; + + var setInfo = function setInfo(ele, obj) { + return ele.scratch('breadthfirst', obj); + }; + + function BreadthFirstLayout(options) { + this.options = extend({}, defaults$7, deprecatedOptionDefaults, options); + } + + BreadthFirstLayout.prototype.run = function () { + var params = this.options; + var options = params; + var cy = params.cy; + var eles = options.eles; + var nodes = eles.nodes().filter(function (n) { + return !n.isParent(); + }); + var graph = eles; + var directed = options.directed; + var maximal = options.acyclic || options.maximal || options.maximalAdjustments > 0; // maximalAdjustments for compat. w/ old code; also, setting acyclic to true sets maximal to true + + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + var roots; + + if (elementOrCollection(options.roots)) { + roots = options.roots; + } else if (array(options.roots)) { + var rootsArray = []; + + for (var i = 0; i < options.roots.length; i++) { + var id = options.roots[i]; + var ele = cy.getElementById(id); + rootsArray.push(ele); + } + + roots = cy.collection(rootsArray); + } else if (string(options.roots)) { + roots = cy.$(options.roots); + } else { + if (directed) { + roots = nodes.roots(); + } else { + var components = eles.components(); + roots = cy.collection(); + + var _loop = function _loop(_i) { + var comp = components[_i]; + var maxDegree = comp.maxDegree(false); + var compRoots = comp.filter(function (ele) { + return ele.degree(false) === maxDegree; + }); + roots = roots.add(compRoots); + }; + + for (var _i = 0; _i < components.length; _i++) { + _loop(_i); + } + } + } + + var depths = []; + var foundByBfs = {}; + + var addToDepth = function addToDepth(ele, d) { + if (depths[d] == null) { + depths[d] = []; + } + + var i = depths[d].length; + depths[d].push(ele); + setInfo(ele, { + index: i, + depth: d + }); + }; + + var changeDepth = function changeDepth(ele, newDepth) { + var _getInfo = getInfo(ele), + depth = _getInfo.depth, + index = _getInfo.index; + + depths[depth][index] = null; + addToDepth(ele, newDepth); + }; // find the depths of the nodes + + + graph.bfs({ + roots: roots, + directed: options.directed, + visit: function visit(node, edge, pNode, i, depth) { + var ele = node[0]; + var id = ele.id(); + addToDepth(ele, depth); + foundByBfs[id] = true; + } + }); // check for nodes not found by bfs + + var orphanNodes = []; + + for (var _i2 = 0; _i2 < nodes.length; _i2++) { + var _ele = nodes[_i2]; + + if (foundByBfs[_ele.id()]) { + continue; + } else { + orphanNodes.push(_ele); + } + } // assign the nodes a depth and index + + + var assignDepthsAt = function assignDepthsAt(i) { + var eles = depths[i]; + + for (var j = 0; j < eles.length; j++) { + var _ele2 = eles[j]; + + if (_ele2 == null) { + eles.splice(j, 1); + j--; + continue; + } + + setInfo(_ele2, { + depth: i, + index: j + }); + } + }; + + var assignDepths = function assignDepths() { + for (var _i3 = 0; _i3 < depths.length; _i3++) { + assignDepthsAt(_i3); + } + }; + + var adjustMaximally = function adjustMaximally(ele, shifted) { + var eInfo = getInfo(ele); + var incomers = ele.incomers().filter(function (el) { + return el.isNode() && eles.has(el); + }); + var maxDepth = -1; + var id = ele.id(); + + for (var k = 0; k < incomers.length; k++) { + var incmr = incomers[k]; + var iInfo = getInfo(incmr); + maxDepth = Math.max(maxDepth, iInfo.depth); + } + + if (eInfo.depth <= maxDepth) { + if (!options.acyclic && shifted[id]) { + return null; + } + + var newDepth = maxDepth + 1; + changeDepth(ele, newDepth); + shifted[id] = newDepth; + return true; + } + + return false; + }; // for the directed case, try to make the edges all go down (i.e. depth i => depth i + 1) + + + if (directed && maximal) { + var Q = []; + var shifted = {}; + + var enqueue = function enqueue(n) { + return Q.push(n); + }; + + var dequeue = function dequeue() { + return Q.shift(); + }; + + nodes.forEach(function (n) { + return Q.push(n); + }); + + while (Q.length > 0) { + var _ele3 = dequeue(); + + var didShift = adjustMaximally(_ele3, shifted); + + if (didShift) { + _ele3.outgoers().filter(function (el) { + return el.isNode() && eles.has(el); + }).forEach(enqueue); + } else if (didShift === null) { + warn('Detected double maximal shift for node `' + _ele3.id() + '`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.'); + break; // exit on failure + } + } + } + + assignDepths(); // clear holes + // find min distance we need to leave between nodes + + var minDistance = 0; + + if (options.avoidOverlap) { + for (var _i4 = 0; _i4 < nodes.length; _i4++) { + var n = nodes[_i4]; + var nbb = n.layoutDimensions(options); + var w = nbb.w; + var h = nbb.h; + minDistance = Math.max(minDistance, w, h); + } + } // get the weighted percent for an element based on its connectivity to other levels + + + var cachedWeightedPercent = {}; + + var getWeightedPercent = function getWeightedPercent(ele) { + if (cachedWeightedPercent[ele.id()]) { + return cachedWeightedPercent[ele.id()]; + } + + var eleDepth = getInfo(ele).depth; + var neighbors = ele.neighborhood(); + var percent = 0; + var samples = 0; + + for (var _i5 = 0; _i5 < neighbors.length; _i5++) { + var neighbor = neighbors[_i5]; + + if (neighbor.isEdge() || neighbor.isParent() || !nodes.has(neighbor)) { + continue; + } + + var bf = getInfo(neighbor); + + if (bf == null) { + continue; + } + + var index = bf.index; + var depth = bf.depth; // unassigned neighbours shouldn't affect the ordering + + if (index == null || depth == null) { + continue; + } + + var nDepth = depths[depth].length; + + if (depth < eleDepth) { + // only get influenced by elements above + percent += index / nDepth; + samples++; + } + } + + samples = Math.max(1, samples); + percent = percent / samples; + + if (samples === 0) { + // put lone nodes at the start + percent = 0; + } + + cachedWeightedPercent[ele.id()] = percent; + return percent; + }; // rearrange the indices in each depth level based on connectivity + + + var sortFn = function sortFn(a, b) { + var apct = getWeightedPercent(a); + var bpct = getWeightedPercent(b); + var diff = apct - bpct; + + if (diff === 0) { + return ascending(a.id(), b.id()); // make sure sort doesn't have don't-care comparisons + } else { + return diff; + } + }; + + if (options.depthSort !== undefined) { + sortFn = options.depthSort; + } // sort each level to make connected nodes closer + + + for (var _i6 = 0; _i6 < depths.length; _i6++) { + depths[_i6].sort(sortFn); + + assignDepthsAt(_i6); + } // assign orphan nodes to a new top-level depth + + + var orphanDepth = []; + + for (var _i7 = 0; _i7 < orphanNodes.length; _i7++) { + orphanDepth.push(orphanNodes[_i7]); + } + + depths.unshift(orphanDepth); + assignDepths(); + var biggestDepthSize = 0; + + for (var _i8 = 0; _i8 < depths.length; _i8++) { + biggestDepthSize = Math.max(depths[_i8].length, biggestDepthSize); + } + + var center = { + x: bb.x1 + bb.w / 2, + y: bb.x1 + bb.h / 2 + }; + var maxDepthSize = depths.reduce(function (max, eles) { + return Math.max(max, eles.length); + }, 0); + + var getPosition = function getPosition(ele) { + var _getInfo2 = getInfo(ele), + depth = _getInfo2.depth, + index = _getInfo2.index; + + var depthSize = depths[depth].length; + var distanceX = Math.max(bb.w / ((options.grid ? maxDepthSize : depthSize) + 1), minDistance); + var distanceY = Math.max(bb.h / (depths.length + 1), minDistance); + var radiusStepSize = Math.min(bb.w / 2 / depths.length, bb.h / 2 / depths.length); + radiusStepSize = Math.max(radiusStepSize, minDistance); + + if (!options.circle) { + var epos = { + x: center.x + (index + 1 - (depthSize + 1) / 2) * distanceX, + y: (depth + 1) * distanceY + }; + return epos; + } else { + var radius = radiusStepSize * depth + radiusStepSize - (depths.length > 0 && depths[0].length <= 3 ? radiusStepSize / 2 : 0); + var theta = 2 * Math.PI / depths[depth].length * index; + + if (depth === 0 && depths[0].length === 1) { + radius = 1; + } + + return { + x: center.x + radius * Math.cos(theta), + y: center.y + radius * Math.sin(theta) + }; + } + }; + + eles.nodes().layoutPositions(this, options, getPosition); + return this; // chaining + }; + + var defaults$6 = { + fit: true, + // whether to fit the viewport to the graph + padding: 30, + // the padding on fit + boundingBox: undefined, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + avoidOverlap: true, + // prevents node overlap, may overflow boundingBox and radius if not enough space + nodeDimensionsIncludeLabels: false, + // Excludes the label when calculating node bounding boxes for the layout algorithm + spacingFactor: undefined, + // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up + radius: undefined, + // the radius of the circle + startAngle: 3 / 2 * Math.PI, + // where nodes start in radians + sweep: undefined, + // how many radians should be between the first and last node (defaults to full circle) + clockwise: true, + // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false) + sort: undefined, + // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') } + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: undefined, + // easing of animation if enabled + animateFilter: function animateFilter(node, i) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: undefined, + // callback on layoutready + stop: undefined, + // callback on layoutstop + transform: function transform(node, position) { + return position; + } // transform a given node position. Useful for changing flow direction in discrete layouts + + }; + + function CircleLayout(options) { + this.options = extend({}, defaults$6, options); + } + + CircleLayout.prototype.run = function () { + var params = this.options; + var options = params; + var cy = params.cy; + var eles = options.eles; + var clockwise = options.counterclockwise !== undefined ? !options.counterclockwise : options.clockwise; + var nodes = eles.nodes().not(':parent'); + + if (options.sort) { + nodes = nodes.sort(options.sort); + } + + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + var center = { + x: bb.x1 + bb.w / 2, + y: bb.y1 + bb.h / 2 + }; + var sweep = options.sweep === undefined ? 2 * Math.PI - 2 * Math.PI / nodes.length : options.sweep; + var dTheta = sweep / Math.max(1, nodes.length - 1); + var r; + var minDistance = 0; + + for (var i = 0; i < nodes.length; i++) { + var n = nodes[i]; + var nbb = n.layoutDimensions(options); + var w = nbb.w; + var h = nbb.h; + minDistance = Math.max(minDistance, w, h); + } + + if (number$1(options.radius)) { + r = options.radius; + } else if (nodes.length <= 1) { + r = 0; + } else { + r = Math.min(bb.h, bb.w) / 2 - minDistance; + } // calculate the radius + + + if (nodes.length > 1 && options.avoidOverlap) { + // but only if more than one node (can't overlap) + minDistance *= 1.75; // just to have some nice spacing + + var dcos = Math.cos(dTheta) - Math.cos(0); + var dsin = Math.sin(dTheta) - Math.sin(0); + var rMin = Math.sqrt(minDistance * minDistance / (dcos * dcos + dsin * dsin)); // s.t. no nodes overlapping + + r = Math.max(rMin, r); + } + + var getPos = function getPos(ele, i) { + var theta = options.startAngle + i * dTheta * (clockwise ? 1 : -1); + var rx = r * Math.cos(theta); + var ry = r * Math.sin(theta); + var pos = { + x: center.x + rx, + y: center.y + ry + }; + return pos; + }; + + eles.nodes().layoutPositions(this, options, getPos); + return this; // chaining + }; + + var defaults$5 = { + fit: true, + // whether to fit the viewport to the graph + padding: 30, + // the padding on fit + startAngle: 3 / 2 * Math.PI, + // where nodes start in radians + sweep: undefined, + // how many radians should be between the first and last node (defaults to full circle) + clockwise: true, + // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false) + equidistant: false, + // whether levels have an equal radial distance betwen them, may cause bounding box overflow + minNodeSpacing: 10, + // min spacing between outside of nodes (used for radius adjustment) + boundingBox: undefined, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + avoidOverlap: true, + // prevents node overlap, may overflow boundingBox if not enough space + nodeDimensionsIncludeLabels: false, + // Excludes the label when calculating node bounding boxes for the layout algorithm + height: undefined, + // height of layout area (overrides container height) + width: undefined, + // width of layout area (overrides container width) + spacingFactor: undefined, + // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up + concentric: function concentric(node) { + // returns numeric value for each node, placing higher nodes in levels towards the centre + return node.degree(); + }, + levelWidth: function levelWidth(nodes) { + // the variation of concentric values in each level + return nodes.maxDegree() / 4; + }, + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: undefined, + // easing of animation if enabled + animateFilter: function animateFilter(node, i) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: undefined, + // callback on layoutready + stop: undefined, + // callback on layoutstop + transform: function transform(node, position) { + return position; + } // transform a given node position. Useful for changing flow direction in discrete layouts + + }; + + function ConcentricLayout(options) { + this.options = extend({}, defaults$5, options); + } + + ConcentricLayout.prototype.run = function () { + var params = this.options; + var options = params; + var clockwise = options.counterclockwise !== undefined ? !options.counterclockwise : options.clockwise; + var cy = params.cy; + var eles = options.eles; + var nodes = eles.nodes().not(':parent'); + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + var center = { + x: bb.x1 + bb.w / 2, + y: bb.y1 + bb.h / 2 + }; + var nodeValues = []; // { node, value } + + var maxNodeSize = 0; + + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + var value = void 0; // calculate the node value + + value = options.concentric(node); + nodeValues.push({ + value: value, + node: node + }); // for style mapping + + node._private.scratch.concentric = value; + } // in case we used the `concentric` in style + + + nodes.updateStyle(); // calculate max size now based on potentially updated mappers + + for (var _i = 0; _i < nodes.length; _i++) { + var _node = nodes[_i]; + + var nbb = _node.layoutDimensions(options); + + maxNodeSize = Math.max(maxNodeSize, nbb.w, nbb.h); + } // sort node values in descreasing order + + + nodeValues.sort(function (a, b) { + return b.value - a.value; + }); + var levelWidth = options.levelWidth(nodes); // put the values into levels + + var levels = [[]]; + var currentLevel = levels[0]; + + for (var _i2 = 0; _i2 < nodeValues.length; _i2++) { + var val = nodeValues[_i2]; + + if (currentLevel.length > 0) { + var diff = Math.abs(currentLevel[0].value - val.value); + + if (diff >= levelWidth) { + currentLevel = []; + levels.push(currentLevel); + } + } + + currentLevel.push(val); + } // create positions from levels + + + var minDist = maxNodeSize + options.minNodeSpacing; // min dist between nodes + + if (!options.avoidOverlap) { + // then strictly constrain to bb + var firstLvlHasMulti = levels.length > 0 && levels[0].length > 1; + var maxR = Math.min(bb.w, bb.h) / 2 - minDist; + var rStep = maxR / (levels.length + firstLvlHasMulti ? 1 : 0); + minDist = Math.min(minDist, rStep); + } // find the metrics for each level + + + var r = 0; + + for (var _i3 = 0; _i3 < levels.length; _i3++) { + var level = levels[_i3]; + var sweep = options.sweep === undefined ? 2 * Math.PI - 2 * Math.PI / level.length : options.sweep; + var dTheta = level.dTheta = sweep / Math.max(1, level.length - 1); // calculate the radius + + if (level.length > 1 && options.avoidOverlap) { + // but only if more than one node (can't overlap) + var dcos = Math.cos(dTheta) - Math.cos(0); + var dsin = Math.sin(dTheta) - Math.sin(0); + var rMin = Math.sqrt(minDist * minDist / (dcos * dcos + dsin * dsin)); // s.t. no nodes overlapping + + r = Math.max(rMin, r); + } + + level.r = r; + r += minDist; + } + + if (options.equidistant) { + var rDeltaMax = 0; + var _r = 0; + + for (var _i4 = 0; _i4 < levels.length; _i4++) { + var _level = levels[_i4]; + var rDelta = _level.r - _r; + rDeltaMax = Math.max(rDeltaMax, rDelta); + } + + _r = 0; + + for (var _i5 = 0; _i5 < levels.length; _i5++) { + var _level2 = levels[_i5]; + + if (_i5 === 0) { + _r = _level2.r; + } + + _level2.r = _r; + _r += rDeltaMax; + } + } // calculate the node positions + + + var pos = {}; // id => position + + for (var _i6 = 0; _i6 < levels.length; _i6++) { + var _level3 = levels[_i6]; + var _dTheta = _level3.dTheta; + var _r2 = _level3.r; + + for (var j = 0; j < _level3.length; j++) { + var _val = _level3[j]; + var theta = options.startAngle + (clockwise ? 1 : -1) * _dTheta * j; + var p = { + x: center.x + _r2 * Math.cos(theta), + y: center.y + _r2 * Math.sin(theta) + }; + pos[_val.node.id()] = p; + } + } // position the nodes + + + eles.nodes().layoutPositions(this, options, function (ele) { + var id = ele.id(); + return pos[id]; + }); + return this; // chaining + }; + + /* + The CoSE layout was written by Gerardo Huck. + https://www.linkedin.com/in/gerardohuck/ + + Based on the following article: + http://dl.acm.org/citation.cfm?id=1498047 + + Modifications tracked on Github. + */ + var DEBUG; + /** + * @brief : default layout options + */ + + var defaults$4 = { + // Called on `layoutready` + ready: function ready() {}, + // Called on `layoutstop` + stop: function stop() {}, + // Whether to animate while running the layout + // true : Animate continuously as the layout is running + // false : Just show the end result + // 'end' : Animate with the end result, from the initial positions to the end positions + animate: true, + // Easing of the animation for animate:'end' + animationEasing: undefined, + // The duration of the animation for animate:'end' + animationDuration: undefined, + // A function that determines whether the node should be animated + // All nodes animated by default on animate enabled + // Non-animated nodes are positioned immediately when the layout starts + animateFilter: function animateFilter(node, i) { + return true; + }, + // The layout animates only after this many milliseconds for animate:true + // (prevents flashing on fast runs) + animationThreshold: 250, + // Number of iterations between consecutive screen positions update + refresh: 20, + // Whether to fit the network view after when done + fit: true, + // Padding on fit + padding: 30, + // Constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + boundingBox: undefined, + // Excludes the label when calculating node bounding boxes for the layout algorithm + nodeDimensionsIncludeLabels: false, + // Randomize the initial positions of the nodes (true) or use existing positions (false) + randomize: false, + // Extra spacing between components in non-compound graphs + componentSpacing: 40, + // Node repulsion (non overlapping) multiplier + nodeRepulsion: function nodeRepulsion(node) { + return 2048; + }, + // Node repulsion (overlapping) multiplier + nodeOverlap: 4, + // Ideal edge (non nested) length + idealEdgeLength: function idealEdgeLength(edge) { + return 32; + }, + // Divisor to compute edge forces + edgeElasticity: function edgeElasticity(edge) { + return 32; + }, + // Nesting factor (multiplier) to compute ideal edge length for nested edges + nestingFactor: 1.2, + // Gravity force (constant) + gravity: 1, + // Maximum number of iterations to perform + numIter: 1000, + // Initial temperature (maximum node displacement) + initialTemp: 1000, + // Cooling factor (how the temperature is reduced between consecutive iterations + coolingFactor: 0.99, + // Lower temperature threshold (below this point the layout will end) + minTemp: 1.0 + }; + /** + * @brief : constructor + * @arg options : object containing layout options + */ + + function CoseLayout(options) { + this.options = extend({}, defaults$4, options); + this.options.layout = this; + } + /** + * @brief : runs the layout + */ + + + CoseLayout.prototype.run = function () { + var options = this.options; + var cy = options.cy; + var layout = this; + layout.stopped = false; + + if (options.animate === true || options.animate === false) { + layout.emit({ + type: 'layoutstart', + layout: layout + }); + } // Set DEBUG - Global variable + + + if (true === options.debug) { + DEBUG = true; + } else { + DEBUG = false; + } // Initialize layout info + + + var layoutInfo = createLayoutInfo(cy, layout, options); // Show LayoutInfo contents if debugging + + if (DEBUG) { + printLayoutInfo(layoutInfo); + } // If required, randomize node positions + + + if (options.randomize) { + randomizePositions(layoutInfo); + } + + var startTime = performanceNow(); + + var refresh = function refresh() { + refreshPositions(layoutInfo, cy, options); // Fit the graph if necessary + + if (true === options.fit) { + cy.fit(options.padding); + } + }; + + var mainLoop = function mainLoop(i) { + if (layout.stopped || i >= options.numIter) { + // logDebug("Layout manually stopped. Stopping computation in step " + i); + return false; + } // Do one step in the phisical simulation + + + step(layoutInfo, options); // Update temperature + + layoutInfo.temperature = layoutInfo.temperature * options.coolingFactor; // logDebug("New temperature: " + layoutInfo.temperature); + + if (layoutInfo.temperature < options.minTemp) { + // logDebug("Temperature drop below minimum threshold. Stopping computation in step " + i); + return false; + } + + return true; + }; + + var done = function done() { + if (options.animate === true || options.animate === false) { + refresh(); // Layout has finished + + layout.one('layoutstop', options.stop); + layout.emit({ + type: 'layoutstop', + layout: layout + }); + } else { + var nodes = options.eles.nodes(); + var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes); + nodes.layoutPositions(layout, options, getScaledPos); + } + }; + + var i = 0; + var loopRet = true; + + if (options.animate === true) { + var frame = function frame() { + var f = 0; + + while (loopRet && f < options.refresh) { + loopRet = mainLoop(i); + i++; + f++; + } + + if (!loopRet) { + // it's done + separateComponents(layoutInfo, options); + done(); + } else { + var now = performanceNow(); + + if (now - startTime >= options.animationThreshold) { + refresh(); + } + + requestAnimationFrame(frame); + } + }; + + frame(); + } else { + while (loopRet) { + loopRet = mainLoop(i); + i++; + } + + separateComponents(layoutInfo, options); + done(); + } + + return this; // chaining + }; + /** + * @brief : called on continuous layouts to stop them before they finish + */ + + + CoseLayout.prototype.stop = function () { + this.stopped = true; + + if (this.thread) { + this.thread.stop(); + } + + this.emit('layoutstop'); + return this; // chaining + }; + + CoseLayout.prototype.destroy = function () { + if (this.thread) { + this.thread.stop(); + } + + return this; // chaining + }; + /** + * @brief : Creates an object which is contains all the data + * used in the layout process + * @arg cy : cytoscape.js object + * @return : layoutInfo object initialized + */ + + + var createLayoutInfo = function createLayoutInfo(cy, layout, options) { + // Shortcut + var edges = options.eles.edges(); + var nodes = options.eles.nodes(); + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + var layoutInfo = { + isCompound: cy.hasCompoundNodes(), + layoutNodes: [], + idToIndex: {}, + nodeSize: nodes.size(), + graphSet: [], + indexToGraph: [], + layoutEdges: [], + edgeSize: edges.size(), + temperature: options.initialTemp, + clientWidth: bb.w, + clientHeight: bb.h, + boundingBox: bb + }; + var components = options.eles.components(); + var id2cmptId = {}; + + for (var i = 0; i < components.length; i++) { + var component = components[i]; + + for (var j = 0; j < component.length; j++) { + var node = component[j]; + id2cmptId[node.id()] = i; + } + } // Iterate over all nodes, creating layout nodes + + + for (var i = 0; i < layoutInfo.nodeSize; i++) { + var n = nodes[i]; + var nbb = n.layoutDimensions(options); + var tempNode = {}; + tempNode.isLocked = n.locked(); + tempNode.id = n.data('id'); + tempNode.parentId = n.data('parent'); + tempNode.cmptId = id2cmptId[n.id()]; + tempNode.children = []; + tempNode.positionX = n.position('x'); + tempNode.positionY = n.position('y'); + tempNode.offsetX = 0; + tempNode.offsetY = 0; + tempNode.height = nbb.w; + tempNode.width = nbb.h; + tempNode.maxX = tempNode.positionX + tempNode.width / 2; + tempNode.minX = tempNode.positionX - tempNode.width / 2; + tempNode.maxY = tempNode.positionY + tempNode.height / 2; + tempNode.minY = tempNode.positionY - tempNode.height / 2; + tempNode.padLeft = parseFloat(n.style('padding')); + tempNode.padRight = parseFloat(n.style('padding')); + tempNode.padTop = parseFloat(n.style('padding')); + tempNode.padBottom = parseFloat(n.style('padding')); // forces + + tempNode.nodeRepulsion = fn$6(options.nodeRepulsion) ? options.nodeRepulsion(n) : options.nodeRepulsion; // Add new node + + layoutInfo.layoutNodes.push(tempNode); // Add entry to id-index map + + layoutInfo.idToIndex[tempNode.id] = i; + } // Inline implementation of a queue, used for traversing the graph in BFS order + + + var queue = []; + var start = 0; // Points to the start the queue + + var end = -1; // Points to the end of the queue + + var tempGraph = []; // Second pass to add child information and + // initialize queue for hierarchical traversal + + for (var i = 0; i < layoutInfo.nodeSize; i++) { + var n = layoutInfo.layoutNodes[i]; + var p_id = n.parentId; // Check if node n has a parent node + + if (null != p_id) { + // Add node Id to parent's list of children + layoutInfo.layoutNodes[layoutInfo.idToIndex[p_id]].children.push(n.id); + } else { + // If a node doesn't have a parent, then it's in the root graph + queue[++end] = n.id; + tempGraph.push(n.id); + } + } // Add root graph to graphSet + + + layoutInfo.graphSet.push(tempGraph); // Traverse the graph, level by level, + + while (start <= end) { + // Get the node to visit and remove it from queue + var node_id = queue[start++]; + var node_ix = layoutInfo.idToIndex[node_id]; + var node = layoutInfo.layoutNodes[node_ix]; + var children = node.children; + + if (children.length > 0) { + // Add children nodes as a new graph to graph set + layoutInfo.graphSet.push(children); // Add children to que queue to be visited + + for (var i = 0; i < children.length; i++) { + queue[++end] = children[i]; + } + } + } // Create indexToGraph map + + + for (var i = 0; i < layoutInfo.graphSet.length; i++) { + var graph = layoutInfo.graphSet[i]; + + for (var j = 0; j < graph.length; j++) { + var index = layoutInfo.idToIndex[graph[j]]; + layoutInfo.indexToGraph[index] = i; + } + } // Iterate over all edges, creating Layout Edges + + + for (var i = 0; i < layoutInfo.edgeSize; i++) { + var e = edges[i]; + var tempEdge = {}; + tempEdge.id = e.data('id'); + tempEdge.sourceId = e.data('source'); + tempEdge.targetId = e.data('target'); // Compute ideal length + + var idealLength = fn$6(options.idealEdgeLength) ? options.idealEdgeLength(e) : options.idealEdgeLength; + var elasticity = fn$6(options.edgeElasticity) ? options.edgeElasticity(e) : options.edgeElasticity; // Check if it's an inter graph edge + + var sourceIx = layoutInfo.idToIndex[tempEdge.sourceId]; + var targetIx = layoutInfo.idToIndex[tempEdge.targetId]; + var sourceGraph = layoutInfo.indexToGraph[sourceIx]; + var targetGraph = layoutInfo.indexToGraph[targetIx]; + + if (sourceGraph != targetGraph) { + // Find lowest common graph ancestor + var lca = findLCA(tempEdge.sourceId, tempEdge.targetId, layoutInfo); // Compute sum of node depths, relative to lca graph + + var lcaGraph = layoutInfo.graphSet[lca]; + var depth = 0; // Source depth + + var tempNode = layoutInfo.layoutNodes[sourceIx]; + + while (-1 === lcaGraph.indexOf(tempNode.id)) { + tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]]; + depth++; + } // Target depth + + + tempNode = layoutInfo.layoutNodes[targetIx]; + + while (-1 === lcaGraph.indexOf(tempNode.id)) { + tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]]; + depth++; + } // logDebug('LCA of nodes ' + tempEdge.sourceId + ' and ' + tempEdge.targetId + + // ". Index: " + lca + " Contents: " + lcaGraph.toString() + + // ". Depth: " + depth); + // Update idealLength + + + idealLength *= depth * options.nestingFactor; + } + + tempEdge.idealLength = idealLength; + tempEdge.elasticity = elasticity; + layoutInfo.layoutEdges.push(tempEdge); + } // Finally, return layoutInfo object + + + return layoutInfo; + }; + /** + * @brief : This function finds the index of the lowest common + * graph ancestor between 2 nodes in the subtree + * (from the graph hierarchy induced tree) whose + * root is graphIx + * + * @arg node1: node1's ID + * @arg node2: node2's ID + * @arg layoutInfo: layoutInfo object + * + */ + + + var findLCA = function findLCA(node1, node2, layoutInfo) { + // Find their common ancester, starting from the root graph + var res = findLCA_aux(node1, node2, 0, layoutInfo); + + if (2 > res.count) { + // If aux function couldn't find the common ancester, + // then it is the root graph + return 0; + } else { + return res.graph; + } + }; + /** + * @brief : Auxiliary function used for LCA computation + * + * @arg node1 : node1's ID + * @arg node2 : node2's ID + * @arg graphIx : subgraph index + * @arg layoutInfo : layoutInfo object + * + * @return : object of the form {count: X, graph: Y}, where: + * X is the number of ancestors (max: 2) found in + * graphIx (and it's subgraphs), + * Y is the graph index of the lowest graph containing + * all X nodes + */ + + + var findLCA_aux = function findLCA_aux(node1, node2, graphIx, layoutInfo) { + var graph = layoutInfo.graphSet[graphIx]; // If both nodes belongs to graphIx + + if (-1 < graph.indexOf(node1) && -1 < graph.indexOf(node2)) { + return { + count: 2, + graph: graphIx + }; + } // Make recursive calls for all subgraphs + + + var c = 0; + + for (var i = 0; i < graph.length; i++) { + var nodeId = graph[i]; + var nodeIx = layoutInfo.idToIndex[nodeId]; + var children = layoutInfo.layoutNodes[nodeIx].children; // If the node has no child, skip it + + if (0 === children.length) { + continue; + } + + var childGraphIx = layoutInfo.indexToGraph[layoutInfo.idToIndex[children[0]]]; + var result = findLCA_aux(node1, node2, childGraphIx, layoutInfo); + + if (0 === result.count) { + // Neither node1 nor node2 are present in this subgraph + continue; + } else if (1 === result.count) { + // One of (node1, node2) is present in this subgraph + c++; + + if (2 === c) { + // We've already found both nodes, no need to keep searching + break; + } + } else { + // Both nodes are present in this subgraph + return result; + } + } + + return { + count: c, + graph: graphIx + }; + }; + /** + * @brief: printsLayoutInfo into js console + * Only used for debbuging + */ + + +var printLayoutInfo; + /** + * @brief : Randomizes the position of all nodes + */ + + + var randomizePositions = function randomizePositions(layoutInfo, cy) { + var width = layoutInfo.clientWidth; + var height = layoutInfo.clientHeight; + + for (var i = 0; i < layoutInfo.nodeSize; i++) { + var n = layoutInfo.layoutNodes[i]; // No need to randomize compound nodes or locked nodes + + if (0 === n.children.length && !n.isLocked) { + n.positionX = Math.random() * width; + n.positionY = Math.random() * height; + } + } + }; + + var getScaleInBoundsFn = function getScaleInBoundsFn(layoutInfo, options, nodes) { + var bb = layoutInfo.boundingBox; + var coseBB = { + x1: Infinity, + x2: -Infinity, + y1: Infinity, + y2: -Infinity + }; + + if (options.boundingBox) { + nodes.forEach(function (node) { + var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[node.data('id')]]; + coseBB.x1 = Math.min(coseBB.x1, lnode.positionX); + coseBB.x2 = Math.max(coseBB.x2, lnode.positionX); + coseBB.y1 = Math.min(coseBB.y1, lnode.positionY); + coseBB.y2 = Math.max(coseBB.y2, lnode.positionY); + }); + coseBB.w = coseBB.x2 - coseBB.x1; + coseBB.h = coseBB.y2 - coseBB.y1; + } + + return function (ele, i) { + var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[ele.data('id')]]; + + if (options.boundingBox) { + // then add extra bounding box constraint + var pctX = (lnode.positionX - coseBB.x1) / coseBB.w; + var pctY = (lnode.positionY - coseBB.y1) / coseBB.h; + return { + x: bb.x1 + pctX * bb.w, + y: bb.y1 + pctY * bb.h + }; + } else { + return { + x: lnode.positionX, + y: lnode.positionY + }; + } + }; + }; + /** + * @brief : Updates the positions of nodes in the network + * @arg layoutInfo : LayoutInfo object + * @arg cy : Cytoscape object + * @arg options : Layout options + */ + + + var refreshPositions = function refreshPositions(layoutInfo, cy, options) { + // var s = 'Refreshing positions'; + // logDebug(s); + var layout = options.layout; + var nodes = options.eles.nodes(); + var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes); + nodes.positions(getScaledPos); // Trigger layoutReady only on first call + + if (true !== layoutInfo.ready) { + // s = 'Triggering layoutready'; + // logDebug(s); + layoutInfo.ready = true; + layout.one('layoutready', options.ready); + layout.emit({ + type: 'layoutready', + layout: this + }); + } + }; + /** + * @brief : Logs a debug message in JS console, if DEBUG is ON + */ + // var logDebug = function(text) { + // if (DEBUG) { + // console.debug(text); + // } + // }; + + /** + * @brief : Performs one iteration of the physical simulation + * @arg layoutInfo : LayoutInfo object already initialized + * @arg cy : Cytoscape object + * @arg options : Layout options + */ + + + var step = function step(layoutInfo, options, _step) { + // var s = "\n\n###############################"; + // s += "\nSTEP: " + step; + // s += "\n###############################\n"; + // logDebug(s); + // Calculate node repulsions + calculateNodeForces(layoutInfo, options); // Calculate edge forces + + calculateEdgeForces(layoutInfo); // Calculate gravity forces + + calculateGravityForces(layoutInfo, options); // Propagate forces from parent to child + + propagateForces(layoutInfo); // Update positions based on calculated forces + + updatePositions(layoutInfo); + }; + /** + * @brief : Computes the node repulsion forces + */ + + + var calculateNodeForces = function calculateNodeForces(layoutInfo, options) { + // Go through each of the graphs in graphSet + // Nodes only repel each other if they belong to the same graph + // var s = 'calculateNodeForces'; + // logDebug(s); + for (var i = 0; i < layoutInfo.graphSet.length; i++) { + var graph = layoutInfo.graphSet[i]; + var numNodes = graph.length; // s = "Set: " + graph.toString(); + // logDebug(s); + // Now get all the pairs of nodes + // Only get each pair once, (A, B) = (B, A) + + for (var j = 0; j < numNodes; j++) { + var node1 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]]; + + for (var k = j + 1; k < numNodes; k++) { + var node2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[k]]]; + nodeRepulsion(node1, node2, layoutInfo, options); + } + } + } + }; + + var randomDistance = function randomDistance(max) { + return -max + 2 * max * Math.random(); + }; + /** + * @brief : Compute the node repulsion forces between a pair of nodes + */ + + + var nodeRepulsion = function nodeRepulsion(node1, node2, layoutInfo, options) { + // var s = "Node repulsion. Node1: " + node1.id + " Node2: " + node2.id; + var cmptId1 = node1.cmptId; + var cmptId2 = node2.cmptId; + + if (cmptId1 !== cmptId2 && !layoutInfo.isCompound) { + return; + } // Get direction of line connecting both node centers + + + var directionX = node2.positionX - node1.positionX; + var directionY = node2.positionY - node1.positionY; + var maxRandDist = 1; // s += "\ndirectionX: " + directionX + ", directionY: " + directionY; + // If both centers are the same, apply a random force + + if (0 === directionX && 0 === directionY) { + directionX = randomDistance(maxRandDist); + directionY = randomDistance(maxRandDist); + } + + var overlap = nodesOverlap(node1, node2, directionX, directionY); + + if (overlap > 0) { + // s += "\nNodes DO overlap."; + // s += "\nOverlap: " + overlap; + // If nodes overlap, repulsion force is proportional + // to the overlap + var force = options.nodeOverlap * overlap; // Compute the module and components of the force vector + + var distance = Math.sqrt(directionX * directionX + directionY * directionY); // s += "\nDistance: " + distance; + + var forceX = force * directionX / distance; + var forceY = force * directionY / distance; + } else { + // s += "\nNodes do NOT overlap."; + // If there's no overlap, force is inversely proportional + // to squared distance + // Get clipping points for both nodes + var point1 = findClippingPoint(node1, directionX, directionY); + var point2 = findClippingPoint(node2, -1 * directionX, -1 * directionY); // Use clipping points to compute distance + + var distanceX = point2.x - point1.x; + var distanceY = point2.y - point1.y; + var distanceSqr = distanceX * distanceX + distanceY * distanceY; + var distance = Math.sqrt(distanceSqr); // s += "\nDistance: " + distance; + // Compute the module and components of the force vector + + var force = (node1.nodeRepulsion + node2.nodeRepulsion) / distanceSqr; + var forceX = force * distanceX / distance; + var forceY = force * distanceY / distance; + } // Apply force + + + if (!node1.isLocked) { + node1.offsetX -= forceX; + node1.offsetY -= forceY; + } + + if (!node2.isLocked) { + node2.offsetX += forceX; + node2.offsetY += forceY; + } // s += "\nForceX: " + forceX + " ForceY: " + forceY; + // logDebug(s); + + + return; + }; + /** + * @brief : Determines whether two nodes overlap or not + * @return : Amount of overlapping (0 => no overlap) + */ + + + var nodesOverlap = function nodesOverlap(node1, node2, dX, dY) { + if (dX > 0) { + var overlapX = node1.maxX - node2.minX; + } else { + var overlapX = node2.maxX - node1.minX; + } + + if (dY > 0) { + var overlapY = node1.maxY - node2.minY; + } else { + var overlapY = node2.maxY - node1.minY; + } + + if (overlapX >= 0 && overlapY >= 0) { + return Math.sqrt(overlapX * overlapX + overlapY * overlapY); + } else { + return 0; + } + }; + /** + * @brief : Finds the point in which an edge (direction dX, dY) intersects + * the rectangular bounding box of it's source/target node + */ + + + var findClippingPoint = function findClippingPoint(node, dX, dY) { + // Shorcuts + var X = node.positionX; + var Y = node.positionY; + var H = node.height || 1; + var W = node.width || 1; + var dirSlope = dY / dX; + var nodeSlope = H / W; // var s = 'Computing clipping point of node ' + node.id + + // " . Height: " + H + ", Width: " + W + + // "\nDirection " + dX + ", " + dY; + // + // Compute intersection + + var res = {}; // Case: Vertical direction (up) + + if (0 === dX && 0 < dY) { + res.x = X; // s += "\nUp direction"; + + res.y = Y + H / 2; + return res; + } // Case: Vertical direction (down) + + + if (0 === dX && 0 > dY) { + res.x = X; + res.y = Y + H / 2; // s += "\nDown direction"; + + return res; + } // Case: Intersects the right border + + + if (0 < dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) { + res.x = X + W / 2; + res.y = Y + W * dY / 2 / dX; // s += "\nRightborder"; + + return res; + } // Case: Intersects the left border + + + if (0 > dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) { + res.x = X - W / 2; + res.y = Y - W * dY / 2 / dX; // s += "\nLeftborder"; + + return res; + } // Case: Intersects the top border + + + if (0 < dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) { + res.x = X + H * dX / 2 / dY; + res.y = Y + H / 2; // s += "\nTop border"; + + return res; + } // Case: Intersects the bottom border + + + if (0 > dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) { + res.x = X - H * dX / 2 / dY; + res.y = Y - H / 2; // s += "\nBottom border"; + + return res; + } // s += "\nClipping point found at " + res.x + ", " + res.y; + // logDebug(s); + + + return res; + }; + /** + * @brief : Calculates all edge forces + */ + + + var calculateEdgeForces = function calculateEdgeForces(layoutInfo, options) { + // Iterate over all edges + for (var i = 0; i < layoutInfo.edgeSize; i++) { + // Get edge, source & target nodes + var edge = layoutInfo.layoutEdges[i]; + var sourceIx = layoutInfo.idToIndex[edge.sourceId]; + var source = layoutInfo.layoutNodes[sourceIx]; + var targetIx = layoutInfo.idToIndex[edge.targetId]; + var target = layoutInfo.layoutNodes[targetIx]; // Get direction of line connecting both node centers + + var directionX = target.positionX - source.positionX; + var directionY = target.positionY - source.positionY; // If both centers are the same, do nothing. + // A random force has already been applied as node repulsion + + if (0 === directionX && 0 === directionY) { + continue; + } // Get clipping points for both nodes + + + var point1 = findClippingPoint(source, directionX, directionY); + var point2 = findClippingPoint(target, -1 * directionX, -1 * directionY); + var lx = point2.x - point1.x; + var ly = point2.y - point1.y; + var l = Math.sqrt(lx * lx + ly * ly); + var force = Math.pow(edge.idealLength - l, 2) / edge.elasticity; + + if (0 !== l) { + var forceX = force * lx / l; + var forceY = force * ly / l; + } else { + var forceX = 0; + var forceY = 0; + } // Add this force to target and source nodes + + + if (!source.isLocked) { + source.offsetX += forceX; + source.offsetY += forceY; + } + + if (!target.isLocked) { + target.offsetX -= forceX; + target.offsetY -= forceY; + } // var s = 'Edge force between nodes ' + source.id + ' and ' + target.id; + // s += "\nDistance: " + l + " Force: (" + forceX + ", " + forceY + ")"; + // logDebug(s); + + } + }; + /** + * @brief : Computes gravity forces for all nodes + */ + + + var calculateGravityForces = function calculateGravityForces(layoutInfo, options) { + if (options.gravity === 0) { + return; + } + + var distThreshold = 1; // var s = 'calculateGravityForces'; + // logDebug(s); + + for (var i = 0; i < layoutInfo.graphSet.length; i++) { + var graph = layoutInfo.graphSet[i]; + var numNodes = graph.length; // s = "Set: " + graph.toString(); + // logDebug(s); + // Compute graph center + + if (0 === i) { + var centerX = layoutInfo.clientHeight / 2; + var centerY = layoutInfo.clientWidth / 2; + } else { + // Get Parent node for this graph, and use its position as center + var temp = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[0]]]; + var parent = layoutInfo.layoutNodes[layoutInfo.idToIndex[temp.parentId]]; + var centerX = parent.positionX; + var centerY = parent.positionY; + } // s = "Center found at: " + centerX + ", " + centerY; + // logDebug(s); + // Apply force to all nodes in graph + + + for (var j = 0; j < numNodes; j++) { + var node = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]]; // s = "Node: " + node.id; + + if (node.isLocked) { + continue; + } + + var dx = centerX - node.positionX; + var dy = centerY - node.positionY; + var d = Math.sqrt(dx * dx + dy * dy); + + if (d > distThreshold) { + var fx = options.gravity * dx / d; + var fy = options.gravity * dy / d; + node.offsetX += fx; + node.offsetY += fy; // s += ": Applied force: " + fx + ", " + fy; + } // logDebug(s); + + } + } + }; + /** + * @brief : This function propagates the existing offsets from + * parent nodes to its descendents. + * @arg layoutInfo : layoutInfo Object + * @arg cy : cytoscape Object + * @arg options : Layout options + */ + + + var propagateForces = function propagateForces(layoutInfo, options) { + // Inline implementation of a queue, used for traversing the graph in BFS order + var queue = []; + var start = 0; // Points to the start the queue + + var end = -1; // Points to the end of the queue + // logDebug('propagateForces'); + // Start by visiting the nodes in the root graph + + queue.push.apply(queue, layoutInfo.graphSet[0]); + end += layoutInfo.graphSet[0].length; // Traverse the graph, level by level, + + while (start <= end) { + // Get the node to visit and remove it from queue + var nodeId = queue[start++]; + var nodeIndex = layoutInfo.idToIndex[nodeId]; + var node = layoutInfo.layoutNodes[nodeIndex]; + var children = node.children; // We only need to process the node if it's compound + + if (0 < children.length && !node.isLocked) { + var offX = node.offsetX; + var offY = node.offsetY; // var s = "Propagating offset from parent node : " + node.id + + // ". OffsetX: " + offX + ". OffsetY: " + offY; + // s += "\n Children: " + children.toString(); + // logDebug(s); + + for (var i = 0; i < children.length; i++) { + var childNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[children[i]]]; // Propagate offset + + childNode.offsetX += offX; + childNode.offsetY += offY; // Add children to queue to be visited + + queue[++end] = children[i]; + } // Reset parent offsets + + + node.offsetX = 0; + node.offsetY = 0; + } + } + }; + /** + * @brief : Updates the layout model positions, based on + * the accumulated forces + */ + + + var updatePositions = function updatePositions(layoutInfo, options) { + // var s = 'Updating positions'; + // logDebug(s); + // Reset boundaries for compound nodes + for (var i = 0; i < layoutInfo.nodeSize; i++) { + var n = layoutInfo.layoutNodes[i]; + + if (0 < n.children.length) { + // logDebug("Resetting boundaries of compound node: " + n.id); + n.maxX = undefined; + n.minX = undefined; + n.maxY = undefined; + n.minY = undefined; + } + } + + for (var i = 0; i < layoutInfo.nodeSize; i++) { + var n = layoutInfo.layoutNodes[i]; + + if (0 < n.children.length || n.isLocked) { + // No need to set compound or locked node position + // logDebug("Skipping position update of node: " + n.id); + continue; + } // s = "Node: " + n.id + " Previous position: (" + + // n.positionX + ", " + n.positionY + ")."; + // Limit displacement in order to improve stability + + + var tempForce = limitForce(n.offsetX, n.offsetY, layoutInfo.temperature); + n.positionX += tempForce.x; + n.positionY += tempForce.y; + n.offsetX = 0; + n.offsetY = 0; + n.minX = n.positionX - n.width; + n.maxX = n.positionX + n.width; + n.minY = n.positionY - n.height; + n.maxY = n.positionY + n.height; // s += " New Position: (" + n.positionX + ", " + n.positionY + ")."; + // logDebug(s); + // Update ancestry boudaries + + updateAncestryBoundaries(n, layoutInfo); + } // Update size, position of compund nodes + + + for (var i = 0; i < layoutInfo.nodeSize; i++) { + var n = layoutInfo.layoutNodes[i]; + + if (0 < n.children.length && !n.isLocked) { + n.positionX = (n.maxX + n.minX) / 2; + n.positionY = (n.maxY + n.minY) / 2; + n.width = n.maxX - n.minX; + n.height = n.maxY - n.minY; // s = "Updating position, size of compound node " + n.id; + // s += "\nPositionX: " + n.positionX + ", PositionY: " + n.positionY; + // s += "\nWidth: " + n.width + ", Height: " + n.height; + // logDebug(s); + } + } + }; + /** + * @brief : Limits a force (forceX, forceY) to be not + * greater (in modulo) than max. + 8 Preserves force direction. + */ + + + var limitForce = function limitForce(forceX, forceY, max) { + // var s = "Limiting force: (" + forceX + ", " + forceY + "). Max: " + max; + var force = Math.sqrt(forceX * forceX + forceY * forceY); + + if (force > max) { + var res = { + x: max * forceX / force, + y: max * forceY / force + }; + } else { + var res = { + x: forceX, + y: forceY + }; + } // s += ".\nResult: (" + res.x + ", " + res.y + ")"; + // logDebug(s); + + + return res; + }; + /** + * @brief : Function used for keeping track of compound node + * sizes, since they should bound all their subnodes. + */ + + + var updateAncestryBoundaries = function updateAncestryBoundaries(node, layoutInfo) { + // var s = "Propagating new position/size of node " + node.id; + var parentId = node.parentId; + + if (null == parentId) { + // If there's no parent, we are done + // s += ". No parent node."; + // logDebug(s); + return; + } // Get Parent Node + + + var p = layoutInfo.layoutNodes[layoutInfo.idToIndex[parentId]]; + var flag = false; // MaxX + + if (null == p.maxX || node.maxX + p.padRight > p.maxX) { + p.maxX = node.maxX + p.padRight; + flag = true; // s += "\nNew maxX for parent node " + p.id + ": " + p.maxX; + } // MinX + + + if (null == p.minX || node.minX - p.padLeft < p.minX) { + p.minX = node.minX - p.padLeft; + flag = true; // s += "\nNew minX for parent node " + p.id + ": " + p.minX; + } // MaxY + + + if (null == p.maxY || node.maxY + p.padBottom > p.maxY) { + p.maxY = node.maxY + p.padBottom; + flag = true; // s += "\nNew maxY for parent node " + p.id + ": " + p.maxY; + } // MinY + + + if (null == p.minY || node.minY - p.padTop < p.minY) { + p.minY = node.minY - p.padTop; + flag = true; // s += "\nNew minY for parent node " + p.id + ": " + p.minY; + } // If updated boundaries, propagate changes upward + + + if (flag) { + // logDebug(s); + return updateAncestryBoundaries(p, layoutInfo); + } // s += ". No changes in boundaries/position of parent node " + p.id; + // logDebug(s); + + + return; + }; + + var separateComponents = function separateComponents(layoutInfo, options) { + var nodes = layoutInfo.layoutNodes; + var components = []; + + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + var cid = node.cmptId; + var component = components[cid] = components[cid] || []; + component.push(node); + } + + var totalA = 0; + + for (var i = 0; i < components.length; i++) { + var c = components[i]; + + if (!c) { + continue; + } + + c.x1 = Infinity; + c.x2 = -Infinity; + c.y1 = Infinity; + c.y2 = -Infinity; + + for (var j = 0; j < c.length; j++) { + var n = c[j]; + c.x1 = Math.min(c.x1, n.positionX - n.width / 2); + c.x2 = Math.max(c.x2, n.positionX + n.width / 2); + c.y1 = Math.min(c.y1, n.positionY - n.height / 2); + c.y2 = Math.max(c.y2, n.positionY + n.height / 2); + } + + c.w = c.x2 - c.x1; + c.h = c.y2 - c.y1; + totalA += c.w * c.h; + } + + components.sort(function (c1, c2) { + return c2.w * c2.h - c1.w * c1.h; + }); + var x = 0; + var y = 0; + var usedW = 0; + var rowH = 0; + var maxRowW = Math.sqrt(totalA) * layoutInfo.clientWidth / layoutInfo.clientHeight; + + for (var i = 0; i < components.length; i++) { + var c = components[i]; + + if (!c) { + continue; + } + + for (var j = 0; j < c.length; j++) { + var n = c[j]; + + if (!n.isLocked) { + n.positionX += x - c.x1; + n.positionY += y - c.y1; + } + } + + x += c.w + options.componentSpacing; + usedW += c.w + options.componentSpacing; + rowH = Math.max(rowH, c.h); + + if (usedW > maxRowW) { + y += rowH + options.componentSpacing; + x = 0; + usedW = 0; + rowH = 0; + } + } + }; + + var defaults$3 = { + fit: true, + // whether to fit the viewport to the graph + padding: 30, + // padding used on fit + boundingBox: undefined, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + avoidOverlap: true, + // prevents node overlap, may overflow boundingBox if not enough space + avoidOverlapPadding: 10, + // extra spacing around nodes when avoidOverlap: true + nodeDimensionsIncludeLabels: false, + // Excludes the label when calculating node bounding boxes for the layout algorithm + spacingFactor: undefined, + // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up + condense: false, + // uses all available space on false, uses minimal space on true + rows: undefined, + // force num of rows in the grid + cols: undefined, + // force num of columns in the grid + position: function position(node) {}, + // returns { row, col } for element + sort: undefined, + // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') } + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: undefined, + // easing of animation if enabled + animateFilter: function animateFilter(node, i) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: undefined, + // callback on layoutready + stop: undefined, + // callback on layoutstop + transform: function transform(node, position) { + return position; + } // transform a given node position. Useful for changing flow direction in discrete layouts + + }; + + function GridLayout(options) { + this.options = extend({}, defaults$3, options); + } + + GridLayout.prototype.run = function () { + var params = this.options; + var options = params; + var cy = params.cy; + var eles = options.eles; + var nodes = eles.nodes().not(':parent'); + + if (options.sort) { + nodes = nodes.sort(options.sort); + } + + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + + if (bb.h === 0 || bb.w === 0) { + eles.nodes().layoutPositions(this, options, function (ele) { + return { + x: bb.x1, + y: bb.y1 + }; + }); + } else { + // width/height * splits^2 = cells where splits is number of times to split width + var cells = nodes.size(); + var splits = Math.sqrt(cells * bb.h / bb.w); + var rows = Math.round(splits); + var cols = Math.round(bb.w / bb.h * splits); + + var small = function small(val) { + if (val == null) { + return Math.min(rows, cols); + } else { + var min = Math.min(rows, cols); + + if (min == rows) { + rows = val; + } else { + cols = val; + } + } + }; + + var large = function large(val) { + if (val == null) { + return Math.max(rows, cols); + } else { + var max = Math.max(rows, cols); + + if (max == rows) { + rows = val; + } else { + cols = val; + } + } + }; + + var oRows = options.rows; + var oCols = options.cols != null ? options.cols : options.columns; // if rows or columns were set in options, use those values + + if (oRows != null && oCols != null) { + rows = oRows; + cols = oCols; + } else if (oRows != null && oCols == null) { + rows = oRows; + cols = Math.ceil(cells / rows); + } else if (oRows == null && oCols != null) { + cols = oCols; + rows = Math.ceil(cells / cols); + } // otherwise use the automatic values and adjust accordingly + // if rounding was up, see if we can reduce rows or columns + else if (cols * rows > cells) { + var sm = small(); + var lg = large(); // reducing the small side takes away the most cells, so try it first + + if ((sm - 1) * lg >= cells) { + small(sm - 1); + } else if ((lg - 1) * sm >= cells) { + large(lg - 1); + } + } else { + // if rounding was too low, add rows or columns + while (cols * rows < cells) { + var _sm = small(); + + var _lg = large(); // try to add to larger side first (adds less in multiplication) + + + if ((_lg + 1) * _sm >= cells) { + large(_lg + 1); + } else { + small(_sm + 1); + } + } + } + + var cellWidth = bb.w / cols; + var cellHeight = bb.h / rows; + + if (options.condense) { + cellWidth = 0; + cellHeight = 0; + } + + if (options.avoidOverlap) { + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + var pos = node._private.position; + + if (pos.x == null || pos.y == null) { + // for bb + pos.x = 0; + pos.y = 0; + } + + var nbb = node.layoutDimensions(options); + var p = options.avoidOverlapPadding; + var w = nbb.w + p; + var h = nbb.h + p; + cellWidth = Math.max(cellWidth, w); + cellHeight = Math.max(cellHeight, h); + } + } + + var cellUsed = {}; // e.g. 'c-0-2' => true + + var used = function used(row, col) { + return cellUsed['c-' + row + '-' + col] ? true : false; + }; + + var use = function use(row, col) { + cellUsed['c-' + row + '-' + col] = true; + }; // to keep track of current cell position + + + var row = 0; + var col = 0; + + var moveToNextCell = function moveToNextCell() { + col++; + + if (col >= cols) { + col = 0; + row++; + } + }; // get a cache of all the manual positions + + + var id2manPos = {}; + + for (var _i = 0; _i < nodes.length; _i++) { + var _node = nodes[_i]; + var rcPos = options.position(_node); + + if (rcPos && (rcPos.row !== undefined || rcPos.col !== undefined)) { + // must have at least row or col def'd + var _pos = { + row: rcPos.row, + col: rcPos.col + }; + + if (_pos.col === undefined) { + // find unused col + _pos.col = 0; + + while (used(_pos.row, _pos.col)) { + _pos.col++; + } + } else if (_pos.row === undefined) { + // find unused row + _pos.row = 0; + + while (used(_pos.row, _pos.col)) { + _pos.row++; + } + } + + id2manPos[_node.id()] = _pos; + use(_pos.row, _pos.col); + } + } + + var getPos = function getPos(element, i) { + var x, y; + + if (element.locked() || element.isParent()) { + return false; + } // see if we have a manual position set + + + var rcPos = id2manPos[element.id()]; + + if (rcPos) { + x = rcPos.col * cellWidth + cellWidth / 2 + bb.x1; + y = rcPos.row * cellHeight + cellHeight / 2 + bb.y1; + } else { + // otherwise set automatically + while (used(row, col)) { + moveToNextCell(); + } + + x = col * cellWidth + cellWidth / 2 + bb.x1; + y = row * cellHeight + cellHeight / 2 + bb.y1; + use(row, col); + moveToNextCell(); + } + + return { + x: x, + y: y + }; + }; + + nodes.layoutPositions(this, options, getPos); + } + + return this; // chaining + }; + + var defaults$2 = { + ready: function ready() {}, + // on layoutready + stop: function stop() {} // on layoutstop + + }; // constructor + // options : object containing layout options + + function NullLayout(options) { + this.options = extend({}, defaults$2, options); + } // runs the layout + + + NullLayout.prototype.run = function () { + var options = this.options; + var eles = options.eles; // elements to consider in the layout + + var layout = this; // cy is automatically populated for us in the constructor + // (disable eslint for next line as this serves as example layout code to external developers) + // eslint-disable-next-line no-unused-vars + + options.cy; + layout.emit('layoutstart'); // puts all nodes at (0, 0) + // n.b. most layouts would use layoutPositions(), instead of positions() and manual events + + eles.nodes().positions(function () { + return { + x: 0, + y: 0 + }; + }); // trigger layoutready when each node has had its position set at least once + + layout.one('layoutready', options.ready); + layout.emit('layoutready'); // trigger layoutstop when the layout stops (e.g. finishes) + + layout.one('layoutstop', options.stop); + layout.emit('layoutstop'); + return this; // chaining + }; // called on continuous layouts to stop them before they finish + + + NullLayout.prototype.stop = function () { + return this; // chaining + }; + + var defaults$1 = { + positions: undefined, + // map of (node id) => (position obj); or function(node){ return somPos; } + zoom: undefined, + // the zoom level to set (prob want fit = false if set) + pan: undefined, + // the pan level to set (prob want fit = false if set) + fit: true, + // whether to fit to viewport + padding: 30, + // padding on fit + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: undefined, + // easing of animation if enabled + animateFilter: function animateFilter(node, i) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: undefined, + // callback on layoutready + stop: undefined, + // callback on layoutstop + transform: function transform(node, position) { + return position; + } // transform a given node position. Useful for changing flow direction in discrete layouts + + }; + + function PresetLayout(options) { + this.options = extend({}, defaults$1, options); + } + + PresetLayout.prototype.run = function () { + var options = this.options; + var eles = options.eles; + var nodes = eles.nodes(); + var posIsFn = fn$6(options.positions); + + function getPosition(node) { + if (options.positions == null) { + return copyPosition(node.position()); + } + + if (posIsFn) { + return options.positions(node); + } + + var pos = options.positions[node._private.data.id]; + + if (pos == null) { + return null; + } + + return pos; + } + + nodes.layoutPositions(this, options, function (node, i) { + var position = getPosition(node); + + if (node.locked() || position == null) { + return false; + } + + return position; + }); + return this; // chaining + }; + + var defaults = { + fit: true, + // whether to fit to viewport + padding: 30, + // fit padding + boundingBox: undefined, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: undefined, + // easing of animation if enabled + animateFilter: function animateFilter(node, i) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: undefined, + // callback on layoutready + stop: undefined, + // callback on layoutstop + transform: function transform(node, position) { + return position; + } // transform a given node position. Useful for changing flow direction in discrete layouts + + }; + + function RandomLayout(options) { + this.options = extend({}, defaults, options); + } + + RandomLayout.prototype.run = function () { + var options = this.options; + var cy = options.cy; + var eles = options.eles; + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + + var getPos = function getPos(node, i) { + return { + x: bb.x1 + Math.round(Math.random() * bb.w), + y: bb.y1 + Math.round(Math.random() * bb.h) + }; + }; + + eles.nodes().layoutPositions(this, options, getPos); + return this; // chaining + }; + + var layout = [{ + name: 'breadthfirst', + impl: BreadthFirstLayout + }, { + name: 'circle', + impl: CircleLayout + }, { + name: 'concentric', + impl: ConcentricLayout + }, { + name: 'cose', + impl: CoseLayout + }, { + name: 'grid', + impl: GridLayout + }, { + name: 'null', + impl: NullLayout + }, { + name: 'preset', + impl: PresetLayout + }, { + name: 'random', + impl: RandomLayout + }]; + + function NullRenderer(options) { + this.options = options; + this.notifications = 0; // for testing + } + + var noop = function noop() {}; + + var throwImgErr = function throwImgErr() { + throw new Error('A headless instance can not render images'); + }; + + NullRenderer.prototype = { + recalculateRenderedStyle: noop, + notify: function notify() { + this.notifications++; + }, + init: noop, + isHeadless: function isHeadless() { + return true; + }, + png: throwImgErr, + jpg: throwImgErr + }; + + var BRp$f = {}; + BRp$f.arrowShapeWidth = 0.3; + + BRp$f.registerArrowShapes = function () { + var arrowShapes = this.arrowShapes = {}; + var renderer = this; // Contract for arrow shapes: + // 0, 0 is arrow tip + // (0, 1) is direction towards node + // (1, 0) is right + // + // functional api: + // collide: check x, y in shape + // roughCollide: called before collide, no false negatives + // draw: draw + // spacing: dist(arrowTip, nodeBoundary) + // gap: dist(edgeTip, nodeBoundary), edgeTip may != arrowTip + + var bbCollide = function bbCollide(x, y, size, angle, translation, edgeWidth, padding) { + var x1 = translation.x - size / 2 - padding; + var x2 = translation.x + size / 2 + padding; + var y1 = translation.y - size / 2 - padding; + var y2 = translation.y + size / 2 + padding; + var inside = x1 <= x && x <= x2 && y1 <= y && y <= y2; + return inside; + }; + + var transform = function transform(x, y, size, angle, translation) { + var xRotated = x * Math.cos(angle) - y * Math.sin(angle); + var yRotated = x * Math.sin(angle) + y * Math.cos(angle); + var xScaled = xRotated * size; + var yScaled = yRotated * size; + var xTranslated = xScaled + translation.x; + var yTranslated = yScaled + translation.y; + return { + x: xTranslated, + y: yTranslated + }; + }; + + var transformPoints = function transformPoints(pts, size, angle, translation) { + var retPts = []; + + for (var i = 0; i < pts.length; i += 2) { + var x = pts[i]; + var y = pts[i + 1]; + retPts.push(transform(x, y, size, angle, translation)); + } + + return retPts; + }; + + var pointsToArr = function pointsToArr(pts) { + var ret = []; + + for (var i = 0; i < pts.length; i++) { + var p = pts[i]; + ret.push(p.x, p.y); + } + + return ret; + }; + + var standardGap = function standardGap(edge) { + return edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').pfValue * 2; + }; + + var defineArrowShape = function defineArrowShape(name, defn) { + if (string(defn)) { + defn = arrowShapes[defn]; + } + + arrowShapes[name] = extend({ + name: name, + points: [-0.15, -0.3, 0.15, -0.3, 0.15, 0.3, -0.15, 0.3], + collide: function collide(x, y, size, angle, translation, padding) { + var points = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); + var inside = pointInsidePolygonPoints(x, y, points); + return inside; + }, + roughCollide: bbCollide, + draw: function draw(context, size, angle, translation) { + var points = transformPoints(this.points, size, angle, translation); + renderer.arrowShapeImpl('polygon')(context, points); + }, + spacing: function spacing(edge) { + return 0; + }, + gap: standardGap + }, defn); + }; + + defineArrowShape('none', { + collide: falsify, + roughCollide: falsify, + draw: noop$1, + spacing: zeroify, + gap: zeroify + }); + defineArrowShape('triangle', { + points: [-0.15, -0.3, 0, 0, 0.15, -0.3] + }); + defineArrowShape('arrow', 'triangle'); + defineArrowShape('triangle-backcurve', { + points: arrowShapes['triangle'].points, + controlPoint: [0, -0.15], + roughCollide: bbCollide, + draw: function draw(context, size, angle, translation, edgeWidth) { + var ptsTrans = transformPoints(this.points, size, angle, translation); + var ctrlPt = this.controlPoint; + var ctrlPtTrans = transform(ctrlPt[0], ctrlPt[1], size, angle, translation); + renderer.arrowShapeImpl(this.name)(context, ptsTrans, ctrlPtTrans); + }, + gap: function gap(edge) { + return standardGap(edge) * 0.8; + } + }); + defineArrowShape('triangle-tee', { + points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0], + pointsTee: [-0.15, -0.4, -0.15, -0.5, 0.15, -0.5, 0.15, -0.4], + collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { + var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); + var teePts = pointsToArr(transformPoints(this.pointsTee, size + 2 * padding, angle, translation)); + var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts); + return inside; + }, + draw: function draw(context, size, angle, translation, edgeWidth) { + var triPts = transformPoints(this.points, size, angle, translation); + var teePts = transformPoints(this.pointsTee, size, angle, translation); + renderer.arrowShapeImpl(this.name)(context, triPts, teePts); + } + }); + defineArrowShape('circle-triangle', { + radius: 0.15, + pointsTr: [0, -0.15, 0.15, -0.45, -0.15, -0.45, 0, -0.15], + collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { + var t = translation; + var circleInside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2); + var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); + return pointInsidePolygonPoints(x, y, triPts) || circleInside; + }, + draw: function draw(context, size, angle, translation, edgeWidth) { + var triPts = transformPoints(this.pointsTr, size, angle, translation); + renderer.arrowShapeImpl(this.name)(context, triPts, translation.x, translation.y, this.radius * size); + }, + spacing: function spacing(edge) { + return renderer.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.radius; + } + }); + defineArrowShape('triangle-cross', { + points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0], + baseCrossLinePts: [-0.15, -0.4, // first half of the rectangle + -0.15, -0.4, 0.15, -0.4, // second half of the rectangle + 0.15, -0.4], + crossLinePts: function crossLinePts(size, edgeWidth) { + // shift points so that the distance between the cross points matches edge width + var p = this.baseCrossLinePts.slice(); + var shiftFactor = edgeWidth / size; + var y0 = 3; + var y1 = 5; + p[y0] = p[y0] - shiftFactor; + p[y1] = p[y1] - shiftFactor; + return p; + }, + collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { + var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); + var teePts = pointsToArr(transformPoints(this.crossLinePts(size, edgeWidth), size + 2 * padding, angle, translation)); + var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts); + return inside; + }, + draw: function draw(context, size, angle, translation, edgeWidth) { + var triPts = transformPoints(this.points, size, angle, translation); + var crossLinePts = transformPoints(this.crossLinePts(size, edgeWidth), size, angle, translation); + renderer.arrowShapeImpl(this.name)(context, triPts, crossLinePts); + } + }); + defineArrowShape('vee', { + points: [-0.15, -0.3, 0, 0, 0.15, -0.3, 0, -0.15], + gap: function gap(edge) { + return standardGap(edge) * 0.525; + } + }); + defineArrowShape('circle', { + radius: 0.15, + collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { + var t = translation; + var inside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2); + return inside; + }, + draw: function draw(context, size, angle, translation, edgeWidth) { + renderer.arrowShapeImpl(this.name)(context, translation.x, translation.y, this.radius * size); + }, + spacing: function spacing(edge) { + return renderer.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.radius; + } + }); + defineArrowShape('tee', { + points: [-0.15, 0, -0.15, -0.1, 0.15, -0.1, 0.15, 0], + spacing: function spacing(edge) { + return 1; + }, + gap: function gap(edge) { + return 1; + } + }); + defineArrowShape('square', { + points: [-0.15, 0.00, 0.15, 0.00, 0.15, -0.3, -0.15, -0.3] + }); + defineArrowShape('diamond', { + points: [-0.15, -0.15, 0, -0.3, 0.15, -0.15, 0, 0], + gap: function gap(edge) { + return edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').value; + } + }); + defineArrowShape('chevron', { + points: [0, 0, -0.15, -0.15, -0.1, -0.2, 0, -0.1, 0.1, -0.2, 0.15, -0.15], + gap: function gap(edge) { + return 0.95 * edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').value; + } + }); + }; + + var BRp$e = {}; // Project mouse + + BRp$e.projectIntoViewport = function (clientX, clientY) { + var cy = this.cy; + var offsets = this.findContainerClientCoords(); + var offsetLeft = offsets[0]; + var offsetTop = offsets[1]; + var scale = offsets[4]; + var pan = cy.pan(); + var zoom = cy.zoom(); + var x = ((clientX - offsetLeft) / scale - pan.x) / zoom; + var y = ((clientY - offsetTop) / scale - pan.y) / zoom; + return [x, y]; + }; + + BRp$e.findContainerClientCoords = function () { + if (this.containerBB) { + return this.containerBB; + } + + var container = this.container; + var rect = container.getBoundingClientRect(); + var style = this.cy.window().getComputedStyle(container); + + var styleValue = function styleValue(name) { + return parseFloat(style.getPropertyValue(name)); + }; + + var padding = { + left: styleValue('padding-left'), + right: styleValue('padding-right'), + top: styleValue('padding-top'), + bottom: styleValue('padding-bottom') + }; + var border = { + left: styleValue('border-left-width'), + right: styleValue('border-right-width'), + top: styleValue('border-top-width'), + bottom: styleValue('border-bottom-width') + }; + var clientWidth = container.clientWidth; + var clientHeight = container.clientHeight; + var paddingHor = padding.left + padding.right; + var paddingVer = padding.top + padding.bottom; + var borderHor = border.left + border.right; + var scale = rect.width / (clientWidth + borderHor); + var unscaledW = clientWidth - paddingHor; + var unscaledH = clientHeight - paddingVer; + var left = rect.left + padding.left + border.left; + var top = rect.top + padding.top + border.top; + return this.containerBB = [left, top, unscaledW, unscaledH, scale]; + }; + + BRp$e.invalidateContainerClientCoordsCache = function () { + this.containerBB = null; + }; + + BRp$e.findNearestElement = function (x, y, interactiveElementsOnly, isTouch) { + return this.findNearestElements(x, y, interactiveElementsOnly, isTouch)[0]; + }; + + BRp$e.findNearestElements = function (x, y, interactiveElementsOnly, isTouch) { + var self = this; + var r = this; + var eles = r.getCachedZSortedEles(); + var near = []; // 1 node max, 1 edge max + + var zoom = r.cy.zoom(); + var hasCompounds = r.cy.hasCompoundNodes(); + var edgeThreshold = (isTouch ? 24 : 8) / zoom; + var nodeThreshold = (isTouch ? 8 : 2) / zoom; + var labelThreshold = (isTouch ? 8 : 2) / zoom; + var minSqDist = Infinity; + var nearEdge; + var nearNode; + + if (interactiveElementsOnly) { + eles = eles.interactive; + } + + function addEle(ele, sqDist) { + if (ele.isNode()) { + if (nearNode) { + return; // can't replace node + } else { + nearNode = ele; + near.push(ele); + } + } + + if (ele.isEdge() && (sqDist == null || sqDist < minSqDist)) { + if (nearEdge) { + // then replace existing edge + // can replace only if same z-index + if (nearEdge.pstyle('z-compound-depth').value === ele.pstyle('z-compound-depth').value && nearEdge.pstyle('z-compound-depth').value === ele.pstyle('z-compound-depth').value) { + for (var i = 0; i < near.length; i++) { + if (near[i].isEdge()) { + near[i] = ele; + nearEdge = ele; + minSqDist = sqDist != null ? sqDist : minSqDist; + break; + } + } + } + } else { + near.push(ele); + nearEdge = ele; + minSqDist = sqDist != null ? sqDist : minSqDist; + } + } + } + + function checkNode(node) { + var width = node.outerWidth() + 2 * nodeThreshold; + var height = node.outerHeight() + 2 * nodeThreshold; + var hw = width / 2; + var hh = height / 2; + var pos = node.position(); + + if (pos.x - hw <= x && x <= pos.x + hw // bb check x + && pos.y - hh <= y && y <= pos.y + hh // bb check y + ) { + var shape = r.nodeShapes[self.getNodeShape(node)]; + + if (shape.checkPoint(x, y, 0, width, height, pos.x, pos.y)) { + addEle(node, 0); + return true; + } + } + } + + function checkEdge(edge) { + var _p = edge._private; + var rs = _p.rscratch; + var styleWidth = edge.pstyle('width').pfValue; + var scale = edge.pstyle('arrow-scale').value; + var width = styleWidth / 2 + edgeThreshold; // more like a distance radius from centre + + var widthSq = width * width; + var width2 = width * 2; + var src = _p.source; + var tgt = _p.target; + var sqDist; + + if (rs.edgeType === 'segments' || rs.edgeType === 'straight' || rs.edgeType === 'haystack') { + var pts = rs.allpts; + + for (var i = 0; i + 3 < pts.length; i += 2) { + if (inLineVicinity(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], width2) && widthSq > (sqDist = sqdistToFiniteLine(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3]))) { + addEle(edge, sqDist); + return true; + } + } + } else if (rs.edgeType === 'bezier' || rs.edgeType === 'multibezier' || rs.edgeType === 'self' || rs.edgeType === 'compound') { + var pts = rs.allpts; + + for (var i = 0; i + 5 < rs.allpts.length; i += 4) { + if (inBezierVicinity(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], pts[i + 4], pts[i + 5], width2) && widthSq > (sqDist = sqdistToQuadraticBezier(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], pts[i + 4], pts[i + 5]))) { + addEle(edge, sqDist); + return true; + } + } + } // if we're close to the edge but didn't hit it, maybe we hit its arrows + + + var src = src || _p.source; + var tgt = tgt || _p.target; + var arSize = self.getArrowWidth(styleWidth, scale); + var arrows = [{ + name: 'source', + x: rs.arrowStartX, + y: rs.arrowStartY, + angle: rs.srcArrowAngle + }, { + name: 'target', + x: rs.arrowEndX, + y: rs.arrowEndY, + angle: rs.tgtArrowAngle + }, { + name: 'mid-source', + x: rs.midX, + y: rs.midY, + angle: rs.midsrcArrowAngle + }, { + name: 'mid-target', + x: rs.midX, + y: rs.midY, + angle: rs.midtgtArrowAngle + }]; + + for (var i = 0; i < arrows.length; i++) { + var ar = arrows[i]; + var shape = r.arrowShapes[edge.pstyle(ar.name + '-arrow-shape').value]; + var edgeWidth = edge.pstyle('width').pfValue; + + if (shape.roughCollide(x, y, arSize, ar.angle, { + x: ar.x, + y: ar.y + }, edgeWidth, edgeThreshold) && shape.collide(x, y, arSize, ar.angle, { + x: ar.x, + y: ar.y + }, edgeWidth, edgeThreshold)) { + addEle(edge); + return true; + } + } // for compound graphs, hitting edge may actually want a connected node instead (b/c edge may have greater z-index precedence) + + + if (hasCompounds && near.length > 0) { + checkNode(src); + checkNode(tgt); + } + } + + function preprop(obj, name, pre) { + return getPrefixedProperty(obj, name, pre); + } + + function checkLabel(ele, prefix) { + var _p = ele._private; + var th = labelThreshold; + var prefixDash; + + if (prefix) { + prefixDash = prefix + '-'; + } else { + prefixDash = ''; + } + + ele.boundingBox(); + var bb = _p.labelBounds[prefix || 'main']; + var text = ele.pstyle(prefixDash + 'label').value; + var eventsEnabled = ele.pstyle('text-events').strValue === 'yes'; + + if (!eventsEnabled || !text) { + return; + } + + var lx = preprop(_p.rscratch, 'labelX', prefix); + var ly = preprop(_p.rscratch, 'labelY', prefix); + var theta = preprop(_p.rscratch, 'labelAngle', prefix); + var ox = ele.pstyle(prefixDash + 'text-margin-x').pfValue; + var oy = ele.pstyle(prefixDash + 'text-margin-y').pfValue; + var lx1 = bb.x1 - th - ox; // (-ox, -oy) as bb already includes margin + + var lx2 = bb.x2 + th - ox; // and rotation is about (lx, ly) + + var ly1 = bb.y1 - th - oy; + var ly2 = bb.y2 + th - oy; + + if (theta) { + var cos = Math.cos(theta); + var sin = Math.sin(theta); + + var rotate = function rotate(x, y) { + x = x - lx; + y = y - ly; + return { + x: x * cos - y * sin + lx, + y: x * sin + y * cos + ly + }; + }; + + var px1y1 = rotate(lx1, ly1); + var px1y2 = rotate(lx1, ly2); + var px2y1 = rotate(lx2, ly1); + var px2y2 = rotate(lx2, ly2); + var points = [// with the margin added after the rotation is applied + px1y1.x + ox, px1y1.y + oy, px2y1.x + ox, px2y1.y + oy, px2y2.x + ox, px2y2.y + oy, px1y2.x + ox, px1y2.y + oy]; + + if (pointInsidePolygonPoints(x, y, points)) { + addEle(ele); + return true; + } + } else { + // do a cheaper bb check + if (inBoundingBox(bb, x, y)) { + addEle(ele); + return true; + } + } + } + + for (var i = eles.length - 1; i >= 0; i--) { + // reverse order for precedence + var ele = eles[i]; + + if (ele.isNode()) { + checkNode(ele) || checkLabel(ele); + } else { + // then edge + checkEdge(ele) || checkLabel(ele) || checkLabel(ele, 'source') || checkLabel(ele, 'target'); + } + } + + return near; + }; // 'Give me everything from this box' + + + BRp$e.getAllInBox = function (x1, y1, x2, y2) { + var eles = this.getCachedZSortedEles().interactive; + var box = []; + var x1c = Math.min(x1, x2); + var x2c = Math.max(x1, x2); + var y1c = Math.min(y1, y2); + var y2c = Math.max(y1, y2); + x1 = x1c; + x2 = x2c; + y1 = y1c; + y2 = y2c; + var boxBb = makeBoundingBox({ + x1: x1, + y1: y1, + x2: x2, + y2: y2 + }); + + for (var e = 0; e < eles.length; e++) { + var ele = eles[e]; + + if (ele.isNode()) { + var node = ele; + var nodeBb = node.boundingBox({ + includeNodes: true, + includeEdges: false, + includeLabels: false + }); + + if (boundingBoxesIntersect(boxBb, nodeBb) && !boundingBoxInBoundingBox(nodeBb, boxBb)) { + box.push(node); + } + } else { + var edge = ele; + var _p = edge._private; + var rs = _p.rscratch; + + if (rs.startX != null && rs.startY != null && !inBoundingBox(boxBb, rs.startX, rs.startY)) { + continue; + } + + if (rs.endX != null && rs.endY != null && !inBoundingBox(boxBb, rs.endX, rs.endY)) { + continue; + } + + if (rs.edgeType === 'bezier' || rs.edgeType === 'multibezier' || rs.edgeType === 'self' || rs.edgeType === 'compound' || rs.edgeType === 'segments' || rs.edgeType === 'haystack') { + var pts = _p.rstyle.bezierPts || _p.rstyle.linePts || _p.rstyle.haystackPts; + var allInside = true; + + for (var i = 0; i < pts.length; i++) { + if (!pointInBoundingBox(boxBb, pts[i])) { + allInside = false; + break; + } + } + + if (allInside) { + box.push(edge); + } + } else if (rs.edgeType === 'haystack' || rs.edgeType === 'straight') { + box.push(edge); + } + } + } + + return box; + }; + + var BRp$d = {}; + + BRp$d.calculateArrowAngles = function (edge) { + var rs = edge._private.rscratch; + var isHaystack = rs.edgeType === 'haystack'; + var isBezier = rs.edgeType === 'bezier'; + var isMultibezier = rs.edgeType === 'multibezier'; + var isSegments = rs.edgeType === 'segments'; + var isCompound = rs.edgeType === 'compound'; + var isSelf = rs.edgeType === 'self'; // Displacement gives direction for arrowhead orientation + + var dispX, dispY; + var startX, startY, endX, endY, midX, midY; + + if (isHaystack) { + startX = rs.haystackPts[0]; + startY = rs.haystackPts[1]; + endX = rs.haystackPts[2]; + endY = rs.haystackPts[3]; + } else { + startX = rs.arrowStartX; + startY = rs.arrowStartY; + endX = rs.arrowEndX; + endY = rs.arrowEndY; + } + + midX = rs.midX; + midY = rs.midY; // source + // + + if (isSegments) { + dispX = startX - rs.segpts[0]; + dispY = startY - rs.segpts[1]; + } else if (isMultibezier || isCompound || isSelf || isBezier) { + var pts = rs.allpts; + var bX = qbezierAt(pts[0], pts[2], pts[4], 0.1); + var bY = qbezierAt(pts[1], pts[3], pts[5], 0.1); + dispX = startX - bX; + dispY = startY - bY; + } else { + dispX = startX - midX; + dispY = startY - midY; + } + + rs.srcArrowAngle = getAngleFromDisp(dispX, dispY); // mid target + // + + var midX = rs.midX; + var midY = rs.midY; + + if (isHaystack) { + midX = (startX + endX) / 2; + midY = (startY + endY) / 2; + } + + dispX = endX - startX; + dispY = endY - startY; + + if (isSegments) { + var pts = rs.allpts; + + if (pts.length / 2 % 2 === 0) { + var i2 = pts.length / 2; + var i1 = i2 - 2; + dispX = pts[i2] - pts[i1]; + dispY = pts[i2 + 1] - pts[i1 + 1]; + } else { + var i2 = pts.length / 2 - 1; + var i1 = i2 - 2; + var i3 = i2 + 2; + dispX = pts[i2] - pts[i1]; + dispY = pts[i2 + 1] - pts[i1 + 1]; + } + } else if (isMultibezier || isCompound || isSelf) { + var pts = rs.allpts; + var cpts = rs.ctrlpts; + var bp0x, bp0y; + var bp1x, bp1y; + + if (cpts.length / 2 % 2 === 0) { + var p0 = pts.length / 2 - 1; // startpt + + var ic = p0 + 2; + var p1 = ic + 2; + bp0x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.0); + bp0y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.0); + bp1x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.0001); + bp1y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.0001); + } else { + var ic = pts.length / 2 - 1; // ctrpt + + var p0 = ic - 2; // startpt + + var p1 = ic + 2; // endpt + + bp0x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.4999); + bp0y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.4999); + bp1x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.5); + bp1y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.5); + } + + dispX = bp1x - bp0x; + dispY = bp1y - bp0y; + } + + rs.midtgtArrowAngle = getAngleFromDisp(dispX, dispY); + rs.midDispX = dispX; + rs.midDispY = dispY; // mid source + // + + dispX *= -1; + dispY *= -1; + + if (isSegments) { + var pts = rs.allpts; + + if (pts.length / 2 % 2 === 0) ; else { + var i2 = pts.length / 2 - 1; + var i3 = i2 + 2; + dispX = -(pts[i3] - pts[i2]); + dispY = -(pts[i3 + 1] - pts[i2 + 1]); + } + } + + rs.midsrcArrowAngle = getAngleFromDisp(dispX, dispY); // target + // + + if (isSegments) { + dispX = endX - rs.segpts[rs.segpts.length - 2]; + dispY = endY - rs.segpts[rs.segpts.length - 1]; + } else if (isMultibezier || isCompound || isSelf || isBezier) { + var pts = rs.allpts; + var l = pts.length; + var bX = qbezierAt(pts[l - 6], pts[l - 4], pts[l - 2], 0.9); + var bY = qbezierAt(pts[l - 5], pts[l - 3], pts[l - 1], 0.9); + dispX = endX - bX; + dispY = endY - bY; + } else { + dispX = endX - midX; + dispY = endY - midY; + } + + rs.tgtArrowAngle = getAngleFromDisp(dispX, dispY); + }; + + BRp$d.getArrowWidth = BRp$d.getArrowHeight = function (edgeWidth, scale) { + var cache = this.arrowWidthCache = this.arrowWidthCache || {}; + var cachedVal = cache[edgeWidth + ', ' + scale]; + + if (cachedVal) { + return cachedVal; + } + + cachedVal = Math.max(Math.pow(edgeWidth * 13.37, 0.9), 29) * scale; + cache[edgeWidth + ', ' + scale] = cachedVal; + return cachedVal; + }; + + var BRp$c = {}; + + BRp$c.findHaystackPoints = function (edges) { + for (var i = 0; i < edges.length; i++) { + var edge = edges[i]; + var _p = edge._private; + var rs = _p.rscratch; + + if (!rs.haystack) { + var angle = Math.random() * 2 * Math.PI; + rs.source = { + x: Math.cos(angle), + y: Math.sin(angle) + }; + angle = Math.random() * 2 * Math.PI; + rs.target = { + x: Math.cos(angle), + y: Math.sin(angle) + }; + } + + var src = _p.source; + var tgt = _p.target; + var srcPos = src.position(); + var tgtPos = tgt.position(); + var srcW = src.width(); + var tgtW = tgt.width(); + var srcH = src.height(); + var tgtH = tgt.height(); + var radius = edge.pstyle('haystack-radius').value; + var halfRadius = radius / 2; // b/c have to half width/height + + rs.haystackPts = rs.allpts = [rs.source.x * srcW * halfRadius + srcPos.x, rs.source.y * srcH * halfRadius + srcPos.y, rs.target.x * tgtW * halfRadius + tgtPos.x, rs.target.y * tgtH * halfRadius + tgtPos.y]; + rs.midX = (rs.allpts[0] + rs.allpts[2]) / 2; + rs.midY = (rs.allpts[1] + rs.allpts[3]) / 2; // always override as haystack in case set to different type previously + + rs.edgeType = 'haystack'; + rs.haystack = true; + this.storeEdgeProjections(edge); + this.calculateArrowAngles(edge); + this.recalculateEdgeLabelProjections(edge); + this.calculateLabelAngles(edge); + } + }; + + BRp$c.findSegmentsPoints = function (edge, pairInfo) { + // Segments (multiple straight lines) + var rs = edge._private.rscratch; + var posPts = pairInfo.posPts, + intersectionPts = pairInfo.intersectionPts, + vectorNormInverse = pairInfo.vectorNormInverse; + var edgeDistances = edge.pstyle('edge-distances').value; + var segmentWs = edge.pstyle('segment-weights'); + var segmentDs = edge.pstyle('segment-distances'); + var segmentsN = Math.min(segmentWs.pfValue.length, segmentDs.pfValue.length); + rs.edgeType = 'segments'; + rs.segpts = []; + + for (var s = 0; s < segmentsN; s++) { + var w = segmentWs.pfValue[s]; + var d = segmentDs.pfValue[s]; + var w1 = 1 - w; + var w2 = w; + var midptPts = edgeDistances === 'node-position' ? posPts : intersectionPts; + var adjustedMidpt = { + x: midptPts.x1 * w1 + midptPts.x2 * w2, + y: midptPts.y1 * w1 + midptPts.y2 * w2 + }; + rs.segpts.push(adjustedMidpt.x + vectorNormInverse.x * d, adjustedMidpt.y + vectorNormInverse.y * d); + } + }; + + BRp$c.findLoopPoints = function (edge, pairInfo, i, edgeIsUnbundled) { + // Self-edge + var rs = edge._private.rscratch; + var dirCounts = pairInfo.dirCounts, + srcPos = pairInfo.srcPos; + var ctrlptDists = edge.pstyle('control-point-distances'); + var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined; + var loopDir = edge.pstyle('loop-direction').pfValue; + var loopSwp = edge.pstyle('loop-sweep').pfValue; + var stepSize = edge.pstyle('control-point-step-size').pfValue; + rs.edgeType = 'self'; + var j = i; + var loopDist = stepSize; + + if (edgeIsUnbundled) { + j = 0; + loopDist = ctrlptDist; + } + + var loopAngle = loopDir - Math.PI / 2; + var outAngle = loopAngle - loopSwp / 2; + var inAngle = loopAngle + loopSwp / 2; // increase by step size for overlapping loops, keyed on direction and sweep values + + var dc = String(loopDir + '_' + loopSwp); + j = dirCounts[dc] === undefined ? dirCounts[dc] = 0 : ++dirCounts[dc]; + rs.ctrlpts = [srcPos.x + Math.cos(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.x + Math.cos(inAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(inAngle) * 1.4 * loopDist * (j / 3 + 1)]; + }; + + BRp$c.findCompoundLoopPoints = function (edge, pairInfo, i, edgeIsUnbundled) { + // Compound edge + var rs = edge._private.rscratch; + rs.edgeType = 'compound'; + var srcPos = pairInfo.srcPos, + tgtPos = pairInfo.tgtPos, + srcW = pairInfo.srcW, + srcH = pairInfo.srcH, + tgtW = pairInfo.tgtW, + tgtH = pairInfo.tgtH; + var stepSize = edge.pstyle('control-point-step-size').pfValue; + var ctrlptDists = edge.pstyle('control-point-distances'); + var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined; + var j = i; + var loopDist = stepSize; + + if (edgeIsUnbundled) { + j = 0; + loopDist = ctrlptDist; + } + + var loopW = 50; + var loopaPos = { + x: srcPos.x - srcW / 2, + y: srcPos.y - srcH / 2 + }; + var loopbPos = { + x: tgtPos.x - tgtW / 2, + y: tgtPos.y - tgtH / 2 + }; + var loopPos = { + x: Math.min(loopaPos.x, loopbPos.x), + y: Math.min(loopaPos.y, loopbPos.y) + }; // avoids cases with impossible beziers + + var minCompoundStretch = 0.5; + var compoundStretchA = Math.max(minCompoundStretch, Math.log(srcW * 0.01)); + var compoundStretchB = Math.max(minCompoundStretch, Math.log(tgtW * 0.01)); + rs.ctrlpts = [loopPos.x, loopPos.y - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchA, loopPos.x - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchB, loopPos.y]; + }; + + BRp$c.findStraightEdgePoints = function (edge) { + // Straight edge within bundle + edge._private.rscratch.edgeType = 'straight'; + }; + + BRp$c.findBezierPoints = function (edge, pairInfo, i, edgeIsUnbundled, edgeIsSwapped) { + var rs = edge._private.rscratch; + var vectorNormInverse = pairInfo.vectorNormInverse, + posPts = pairInfo.posPts, + intersectionPts = pairInfo.intersectionPts; + var edgeDistances = edge.pstyle('edge-distances').value; + var stepSize = edge.pstyle('control-point-step-size').pfValue; + var ctrlptDists = edge.pstyle('control-point-distances'); + var ctrlptWs = edge.pstyle('control-point-weights'); + var bezierN = ctrlptDists && ctrlptWs ? Math.min(ctrlptDists.value.length, ctrlptWs.value.length) : 1; + var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined; + var ctrlptWeight = ctrlptWs.value[0]; // (Multi)bezier + + var multi = edgeIsUnbundled; + rs.edgeType = multi ? 'multibezier' : 'bezier'; + rs.ctrlpts = []; + + for (var b = 0; b < bezierN; b++) { + var normctrlptDist = (0.5 - pairInfo.eles.length / 2 + i) * stepSize * (edgeIsSwapped ? -1 : 1); + var manctrlptDist = void 0; + var sign = signum(normctrlptDist); + + if (multi) { + ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[b] : stepSize; // fall back on step size + + ctrlptWeight = ctrlptWs.value[b]; + } + + if (edgeIsUnbundled) { + // multi or single unbundled + manctrlptDist = ctrlptDist; + } else { + manctrlptDist = ctrlptDist !== undefined ? sign * ctrlptDist : undefined; + } + + var distanceFromMidpoint = manctrlptDist !== undefined ? manctrlptDist : normctrlptDist; + var w1 = 1 - ctrlptWeight; + var w2 = ctrlptWeight; + var midptPts = edgeDistances === 'node-position' ? posPts : intersectionPts; + var adjustedMidpt = { + x: midptPts.x1 * w1 + midptPts.x2 * w2, + y: midptPts.y1 * w1 + midptPts.y2 * w2 + }; + rs.ctrlpts.push(adjustedMidpt.x + vectorNormInverse.x * distanceFromMidpoint, adjustedMidpt.y + vectorNormInverse.y * distanceFromMidpoint); + } + }; + + BRp$c.findTaxiPoints = function (edge, pairInfo) { + // Taxicab geometry with two turns maximum + var rs = edge._private.rscratch; + rs.edgeType = 'segments'; + var VERTICAL = 'vertical'; + var HORIZONTAL = 'horizontal'; + var LEFTWARD = 'leftward'; + var RIGHTWARD = 'rightward'; + var DOWNWARD = 'downward'; + var UPWARD = 'upward'; + var AUTO = 'auto'; + var posPts = pairInfo.posPts, + srcW = pairInfo.srcW, + srcH = pairInfo.srcH, + tgtW = pairInfo.tgtW, + tgtH = pairInfo.tgtH; + var edgeDistances = edge.pstyle('edge-distances').value; + var dIncludesNodeBody = edgeDistances !== 'node-position'; + var taxiDir = edge.pstyle('taxi-direction').value; + var rawTaxiDir = taxiDir; // unprocessed value + + var taxiTurn = edge.pstyle('taxi-turn'); + var turnIsPercent = taxiTurn.units === '%'; + var taxiTurnPfVal = taxiTurn.pfValue; + var turnIsNegative = taxiTurnPfVal < 0; // i.e. from target side + + var minD = edge.pstyle('taxi-turn-min-distance').pfValue; + var dw = dIncludesNodeBody ? (srcW + tgtW) / 2 : 0; + var dh = dIncludesNodeBody ? (srcH + tgtH) / 2 : 0; + var pdx = posPts.x2 - posPts.x1; + var pdy = posPts.y2 - posPts.y1; // take away the effective w/h from the magnitude of the delta value + + var subDWH = function subDWH(dxy, dwh) { + if (dxy > 0) { + return Math.max(dxy - dwh, 0); + } else { + return Math.min(dxy + dwh, 0); + } + }; + + var dx = subDWH(pdx, dw); + var dy = subDWH(pdy, dh); + var isExplicitDir = false; + + if (rawTaxiDir === AUTO) { + taxiDir = Math.abs(dx) > Math.abs(dy) ? HORIZONTAL : VERTICAL; + } else if (rawTaxiDir === UPWARD || rawTaxiDir === DOWNWARD) { + taxiDir = VERTICAL; + isExplicitDir = true; + } else if (rawTaxiDir === LEFTWARD || rawTaxiDir === RIGHTWARD) { + taxiDir = HORIZONTAL; + isExplicitDir = true; + } + + var isVert = taxiDir === VERTICAL; + var l = isVert ? dy : dx; + var pl = isVert ? pdy : pdx; + var sgnL = signum(pl); + var forcedDir = false; + + if (!(isExplicitDir && (turnIsPercent || turnIsNegative)) // forcing in this case would cause weird growing in the opposite direction + && (rawTaxiDir === DOWNWARD && pl < 0 || rawTaxiDir === UPWARD && pl > 0 || rawTaxiDir === LEFTWARD && pl > 0 || rawTaxiDir === RIGHTWARD && pl < 0)) { + sgnL *= -1; + l = sgnL * Math.abs(l); + forcedDir = true; + } + + var d; + + if (turnIsPercent) { + var p = taxiTurnPfVal < 0 ? 1 + taxiTurnPfVal : taxiTurnPfVal; + d = p * l; + } else { + var k = taxiTurnPfVal < 0 ? l : 0; + d = k + taxiTurnPfVal * sgnL; + } + + var getIsTooClose = function getIsTooClose(d) { + return Math.abs(d) < minD || Math.abs(d) >= Math.abs(l); + }; + + var isTooCloseSrc = getIsTooClose(d); + var isTooCloseTgt = getIsTooClose(Math.abs(l) - Math.abs(d)); + var isTooClose = isTooCloseSrc || isTooCloseTgt; + + if (isTooClose && !forcedDir) { + // non-ideal routing + if (isVert) { + // vertical fallbacks + var lShapeInsideSrc = Math.abs(pl) <= srcH / 2; + var lShapeInsideTgt = Math.abs(pdx) <= tgtW / 2; + + if (lShapeInsideSrc) { + // horizontal Z-shape (direction not respected) + var x = (posPts.x1 + posPts.x2) / 2; + var y1 = posPts.y1, + y2 = posPts.y2; + rs.segpts = [x, y1, x, y2]; + } else if (lShapeInsideTgt) { + // vertical Z-shape (distance not respected) + var y = (posPts.y1 + posPts.y2) / 2; + var x1 = posPts.x1, + x2 = posPts.x2; + rs.segpts = [x1, y, x2, y]; + } else { + // L-shape fallback (turn distance not respected, but works well with tree siblings) + rs.segpts = [posPts.x1, posPts.y2]; + } + } else { + // horizontal fallbacks + var _lShapeInsideSrc = Math.abs(pl) <= srcW / 2; + + var _lShapeInsideTgt = Math.abs(pdy) <= tgtH / 2; + + if (_lShapeInsideSrc) { + // vertical Z-shape (direction not respected) + var _y = (posPts.y1 + posPts.y2) / 2; + + var _x = posPts.x1, + _x2 = posPts.x2; + rs.segpts = [_x, _y, _x2, _y]; + } else if (_lShapeInsideTgt) { + // horizontal Z-shape (turn distance not respected) + var _x3 = (posPts.x1 + posPts.x2) / 2; + + var _y2 = posPts.y1, + _y3 = posPts.y2; + rs.segpts = [_x3, _y2, _x3, _y3]; + } else { + // L-shape (turn distance not respected, but works well for tree siblings) + rs.segpts = [posPts.x2, posPts.y1]; + } + } + } else { + // ideal routing + if (isVert) { + var _y4 = posPts.y1 + d + (dIncludesNodeBody ? srcH / 2 * sgnL : 0); + + var _x4 = posPts.x1, + _x5 = posPts.x2; + rs.segpts = [_x4, _y4, _x5, _y4]; + } else { + // horizontal + var _x6 = posPts.x1 + d + (dIncludesNodeBody ? srcW / 2 * sgnL : 0); + + var _y5 = posPts.y1, + _y6 = posPts.y2; + rs.segpts = [_x6, _y5, _x6, _y6]; + } + } + }; + + BRp$c.tryToCorrectInvalidPoints = function (edge, pairInfo) { + var rs = edge._private.rscratch; // can only correct beziers for now... + + if (rs.edgeType === 'bezier') { + var srcPos = pairInfo.srcPos, + tgtPos = pairInfo.tgtPos, + srcW = pairInfo.srcW, + srcH = pairInfo.srcH, + tgtW = pairInfo.tgtW, + tgtH = pairInfo.tgtH, + srcShape = pairInfo.srcShape, + tgtShape = pairInfo.tgtShape; + var badStart = !number$1(rs.startX) || !number$1(rs.startY); + var badAStart = !number$1(rs.arrowStartX) || !number$1(rs.arrowStartY); + var badEnd = !number$1(rs.endX) || !number$1(rs.endY); + var badAEnd = !number$1(rs.arrowEndX) || !number$1(rs.arrowEndY); + var minCpADistFactor = 3; + var arrowW = this.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.arrowShapeWidth; + var minCpADist = minCpADistFactor * arrowW; + var startACpDist = dist({ + x: rs.ctrlpts[0], + y: rs.ctrlpts[1] + }, { + x: rs.startX, + y: rs.startY + }); + var closeStartACp = startACpDist < minCpADist; + var endACpDist = dist({ + x: rs.ctrlpts[0], + y: rs.ctrlpts[1] + }, { + x: rs.endX, + y: rs.endY + }); + var closeEndACp = endACpDist < minCpADist; + var overlapping = false; + + if (badStart || badAStart || closeStartACp) { + overlapping = true; // project control point along line from src centre to outside the src shape + // (otherwise intersection will yield nothing) + + var cpD = { + // delta + x: rs.ctrlpts[0] - srcPos.x, + y: rs.ctrlpts[1] - srcPos.y + }; + var cpL = Math.sqrt(cpD.x * cpD.x + cpD.y * cpD.y); // length of line + + var cpM = { + // normalised delta + x: cpD.x / cpL, + y: cpD.y / cpL + }; + var radius = Math.max(srcW, srcH); + var cpProj = { + // *2 radius guarantees outside shape + x: rs.ctrlpts[0] + cpM.x * 2 * radius, + y: rs.ctrlpts[1] + cpM.y * 2 * radius + }; + var srcCtrlPtIntn = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, cpProj.x, cpProj.y, 0); + + if (closeStartACp) { + rs.ctrlpts[0] = rs.ctrlpts[0] + cpM.x * (minCpADist - startACpDist); + rs.ctrlpts[1] = rs.ctrlpts[1] + cpM.y * (minCpADist - startACpDist); + } else { + rs.ctrlpts[0] = srcCtrlPtIntn[0] + cpM.x * minCpADist; + rs.ctrlpts[1] = srcCtrlPtIntn[1] + cpM.y * minCpADist; + } + } + + if (badEnd || badAEnd || closeEndACp) { + overlapping = true; // project control point along line from tgt centre to outside the tgt shape + // (otherwise intersection will yield nothing) + + var _cpD = { + // delta + x: rs.ctrlpts[0] - tgtPos.x, + y: rs.ctrlpts[1] - tgtPos.y + }; + + var _cpL = Math.sqrt(_cpD.x * _cpD.x + _cpD.y * _cpD.y); // length of line + + + var _cpM = { + // normalised delta + x: _cpD.x / _cpL, + y: _cpD.y / _cpL + }; + + var _radius = Math.max(srcW, srcH); + + var _cpProj = { + // *2 radius guarantees outside shape + x: rs.ctrlpts[0] + _cpM.x * 2 * _radius, + y: rs.ctrlpts[1] + _cpM.y * 2 * _radius + }; + var tgtCtrlPtIntn = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, _cpProj.x, _cpProj.y, 0); + + if (closeEndACp) { + rs.ctrlpts[0] = rs.ctrlpts[0] + _cpM.x * (minCpADist - endACpDist); + rs.ctrlpts[1] = rs.ctrlpts[1] + _cpM.y * (minCpADist - endACpDist); + } else { + rs.ctrlpts[0] = tgtCtrlPtIntn[0] + _cpM.x * minCpADist; + rs.ctrlpts[1] = tgtCtrlPtIntn[1] + _cpM.y * minCpADist; + } + } + + if (overlapping) { + // recalc endpts + this.findEndpoints(edge); + } + } + }; + + BRp$c.storeAllpts = function (edge) { + var rs = edge._private.rscratch; + + if (rs.edgeType === 'multibezier' || rs.edgeType === 'bezier' || rs.edgeType === 'self' || rs.edgeType === 'compound') { + rs.allpts = []; + rs.allpts.push(rs.startX, rs.startY); + + for (var b = 0; b + 1 < rs.ctrlpts.length; b += 2) { + // ctrl pt itself + rs.allpts.push(rs.ctrlpts[b], rs.ctrlpts[b + 1]); // the midpt between ctrlpts as intermediate destination pts + + if (b + 3 < rs.ctrlpts.length) { + rs.allpts.push((rs.ctrlpts[b] + rs.ctrlpts[b + 2]) / 2, (rs.ctrlpts[b + 1] + rs.ctrlpts[b + 3]) / 2); + } + } + + rs.allpts.push(rs.endX, rs.endY); + var m, mt; + + if (rs.ctrlpts.length / 2 % 2 === 0) { + m = rs.allpts.length / 2 - 1; + rs.midX = rs.allpts[m]; + rs.midY = rs.allpts[m + 1]; + } else { + m = rs.allpts.length / 2 - 3; + mt = 0.5; + rs.midX = qbezierAt(rs.allpts[m], rs.allpts[m + 2], rs.allpts[m + 4], mt); + rs.midY = qbezierAt(rs.allpts[m + 1], rs.allpts[m + 3], rs.allpts[m + 5], mt); + } + } else if (rs.edgeType === 'straight') { + // need to calc these after endpts + rs.allpts = [rs.startX, rs.startY, rs.endX, rs.endY]; // default midpt for labels etc + + rs.midX = (rs.startX + rs.endX + rs.arrowStartX + rs.arrowEndX) / 4; + rs.midY = (rs.startY + rs.endY + rs.arrowStartY + rs.arrowEndY) / 4; + } else if (rs.edgeType === 'segments') { + rs.allpts = []; + rs.allpts.push(rs.startX, rs.startY); + rs.allpts.push.apply(rs.allpts, rs.segpts); + rs.allpts.push(rs.endX, rs.endY); + + if (rs.segpts.length % 4 === 0) { + var i2 = rs.segpts.length / 2; + var i1 = i2 - 2; + rs.midX = (rs.segpts[i1] + rs.segpts[i2]) / 2; + rs.midY = (rs.segpts[i1 + 1] + rs.segpts[i2 + 1]) / 2; + } else { + var _i = rs.segpts.length / 2 - 1; + + rs.midX = rs.segpts[_i]; + rs.midY = rs.segpts[_i + 1]; + } + } + }; + + BRp$c.checkForInvalidEdgeWarning = function (edge) { + var rs = edge[0]._private.rscratch; + + if (rs.nodesOverlap || number$1(rs.startX) && number$1(rs.startY) && number$1(rs.endX) && number$1(rs.endY)) { + rs.loggedErr = false; + } else { + if (!rs.loggedErr) { + rs.loggedErr = true; + warn('Edge `' + edge.id() + '` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap.'); + } + } + }; + + BRp$c.findEdgeControlPoints = function (edges) { + var _this = this; + + if (!edges || edges.length === 0) { + return; + } + + var r = this; + var cy = r.cy; + var hasCompounds = cy.hasCompoundNodes(); + var hashTable = { + map: new Map$2(), + get: function get(pairId) { + var map2 = this.map.get(pairId[0]); + + if (map2 != null) { + return map2.get(pairId[1]); + } else { + return null; + } + }, + set: function set(pairId, val) { + var map2 = this.map.get(pairId[0]); + + if (map2 == null) { + map2 = new Map$2(); + this.map.set(pairId[0], map2); + } + + map2.set(pairId[1], val); + } + }; + var pairIds = []; + var haystackEdges = []; // create a table of edge (src, tgt) => list of edges between them + + for (var i = 0; i < edges.length; i++) { + var edge = edges[i]; + var _p = edge._private; + var curveStyle = edge.pstyle('curve-style').value; // ignore edges who are not to be displayed + // they shouldn't take up space + + if (edge.removed() || !edge.takesUpSpace()) { + continue; + } + + if (curveStyle === 'haystack') { + haystackEdges.push(edge); + continue; + } + + var edgeIsUnbundled = curveStyle === 'unbundled-bezier' || curveStyle === 'segments' || curveStyle === 'straight' || curveStyle === 'straight-triangle' || curveStyle === 'taxi'; + var edgeIsBezier = curveStyle === 'unbundled-bezier' || curveStyle === 'bezier'; + var src = _p.source; + var tgt = _p.target; + var srcIndex = src.poolIndex(); + var tgtIndex = tgt.poolIndex(); + var pairId = [srcIndex, tgtIndex].sort(); + var tableEntry = hashTable.get(pairId); + + if (tableEntry == null) { + tableEntry = { + eles: [] + }; + hashTable.set(pairId, tableEntry); + pairIds.push(pairId); + } + + tableEntry.eles.push(edge); + + if (edgeIsUnbundled) { + tableEntry.hasUnbundled = true; + } + + if (edgeIsBezier) { + tableEntry.hasBezier = true; + } + } // for each pair (src, tgt), create the ctrl pts + // Nested for loop is OK; total number of iterations for both loops = edgeCount + + + var _loop = function _loop(p) { + var pairId = pairIds[p]; + var pairInfo = hashTable.get(pairId); + var swappedpairInfo = void 0; + + if (!pairInfo.hasUnbundled) { + var pllEdges = pairInfo.eles[0].parallelEdges().filter(function (e) { + return e.isBundledBezier(); + }); + clearArray(pairInfo.eles); + pllEdges.forEach(function (edge) { + return pairInfo.eles.push(edge); + }); // for each pair id, the edges should be sorted by index + + pairInfo.eles.sort(function (edge1, edge2) { + return edge1.poolIndex() - edge2.poolIndex(); + }); + } + + var firstEdge = pairInfo.eles[0]; + var src = firstEdge.source(); + var tgt = firstEdge.target(); // make sure src/tgt distinction is consistent w.r.t. pairId + + if (src.poolIndex() > tgt.poolIndex()) { + var temp = src; + src = tgt; + tgt = temp; + } + + var srcPos = pairInfo.srcPos = src.position(); + var tgtPos = pairInfo.tgtPos = tgt.position(); + var srcW = pairInfo.srcW = src.outerWidth(); + var srcH = pairInfo.srcH = src.outerHeight(); + var tgtW = pairInfo.tgtW = tgt.outerWidth(); + var tgtH = pairInfo.tgtH = tgt.outerHeight(); + + var srcShape = pairInfo.srcShape = r.nodeShapes[_this.getNodeShape(src)]; + + var tgtShape = pairInfo.tgtShape = r.nodeShapes[_this.getNodeShape(tgt)]; + + pairInfo.dirCounts = { + 'north': 0, + 'west': 0, + 'south': 0, + 'east': 0, + 'northwest': 0, + 'southwest': 0, + 'northeast': 0, + 'southeast': 0 + }; + + for (var _i2 = 0; _i2 < pairInfo.eles.length; _i2++) { + var _edge = pairInfo.eles[_i2]; + var rs = _edge[0]._private.rscratch; + + var _curveStyle = _edge.pstyle('curve-style').value; + + var _edgeIsUnbundled = _curveStyle === 'unbundled-bezier' || _curveStyle === 'segments' || _curveStyle === 'taxi'; // whether the normalised pair order is the reverse of the edge's src-tgt order + + + var edgeIsSwapped = !src.same(_edge.source()); + + if (!pairInfo.calculatedIntersection && src !== tgt && (pairInfo.hasBezier || pairInfo.hasUnbundled)) { + pairInfo.calculatedIntersection = true; // pt outside src shape to calc distance/displacement from src to tgt + + var srcOutside = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, tgtPos.x, tgtPos.y, 0); + var srcIntn = pairInfo.srcIntn = srcOutside; // pt outside tgt shape to calc distance/displacement from src to tgt + + var tgtOutside = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, srcPos.x, srcPos.y, 0); + var tgtIntn = pairInfo.tgtIntn = tgtOutside; + var intersectionPts = pairInfo.intersectionPts = { + x1: srcOutside[0], + x2: tgtOutside[0], + y1: srcOutside[1], + y2: tgtOutside[1] + }; + var posPts = pairInfo.posPts = { + x1: srcPos.x, + x2: tgtPos.x, + y1: srcPos.y, + y2: tgtPos.y + }; + var dy = tgtOutside[1] - srcOutside[1]; + var dx = tgtOutside[0] - srcOutside[0]; + var l = Math.sqrt(dx * dx + dy * dy); + var vector = pairInfo.vector = { + x: dx, + y: dy + }; + var vectorNorm = pairInfo.vectorNorm = { + x: vector.x / l, + y: vector.y / l + }; + var vectorNormInverse = { + x: -vectorNorm.y, + y: vectorNorm.x + }; // if node shapes overlap, then no ctrl pts to draw + + pairInfo.nodesOverlap = !number$1(l) || tgtShape.checkPoint(srcOutside[0], srcOutside[1], 0, tgtW, tgtH, tgtPos.x, tgtPos.y) || srcShape.checkPoint(tgtOutside[0], tgtOutside[1], 0, srcW, srcH, srcPos.x, srcPos.y); + pairInfo.vectorNormInverse = vectorNormInverse; + swappedpairInfo = { + nodesOverlap: pairInfo.nodesOverlap, + dirCounts: pairInfo.dirCounts, + calculatedIntersection: true, + hasBezier: pairInfo.hasBezier, + hasUnbundled: pairInfo.hasUnbundled, + eles: pairInfo.eles, + srcPos: tgtPos, + tgtPos: srcPos, + srcW: tgtW, + srcH: tgtH, + tgtW: srcW, + tgtH: srcH, + srcIntn: tgtIntn, + tgtIntn: srcIntn, + srcShape: tgtShape, + tgtShape: srcShape, + posPts: { + x1: posPts.x2, + y1: posPts.y2, + x2: posPts.x1, + y2: posPts.y1 + }, + intersectionPts: { + x1: intersectionPts.x2, + y1: intersectionPts.y2, + x2: intersectionPts.x1, + y2: intersectionPts.y1 + }, + vector: { + x: -vector.x, + y: -vector.y + }, + vectorNorm: { + x: -vectorNorm.x, + y: -vectorNorm.y + }, + vectorNormInverse: { + x: -vectorNormInverse.x, + y: -vectorNormInverse.y + } + }; + } + + var passedPairInfo = edgeIsSwapped ? swappedpairInfo : pairInfo; + rs.nodesOverlap = passedPairInfo.nodesOverlap; + rs.srcIntn = passedPairInfo.srcIntn; + rs.tgtIntn = passedPairInfo.tgtIntn; + + if (hasCompounds && (src.isParent() || src.isChild() || tgt.isParent() || tgt.isChild()) && (src.parents().anySame(tgt) || tgt.parents().anySame(src) || src.same(tgt) && src.isParent())) { + _this.findCompoundLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled); + } else if (src === tgt) { + _this.findLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled); + } else if (_curveStyle === 'segments') { + _this.findSegmentsPoints(_edge, passedPairInfo); + } else if (_curveStyle === 'taxi') { + _this.findTaxiPoints(_edge, passedPairInfo); + } else if (_curveStyle === 'straight' || !_edgeIsUnbundled && pairInfo.eles.length % 2 === 1 && _i2 === Math.floor(pairInfo.eles.length / 2)) { + _this.findStraightEdgePoints(_edge); + } else { + _this.findBezierPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled, edgeIsSwapped); + } + + _this.findEndpoints(_edge); + + _this.tryToCorrectInvalidPoints(_edge, passedPairInfo); + + _this.checkForInvalidEdgeWarning(_edge); + + _this.storeAllpts(_edge); + + _this.storeEdgeProjections(_edge); + + _this.calculateArrowAngles(_edge); + + _this.recalculateEdgeLabelProjections(_edge); + + _this.calculateLabelAngles(_edge); + } // for pair edges + + }; + + for (var p = 0; p < pairIds.length; p++) { + _loop(p); + } // for pair ids + // haystacks avoid the expense of pairInfo stuff (intersections etc.) + + + this.findHaystackPoints(haystackEdges); + }; + + function getPts(pts) { + var retPts = []; + + if (pts == null) { + return; + } + + for (var i = 0; i < pts.length; i += 2) { + var x = pts[i]; + var y = pts[i + 1]; + retPts.push({ + x: x, + y: y + }); + } + + return retPts; + } + + BRp$c.getSegmentPoints = function (edge) { + var rs = edge[0]._private.rscratch; + var type = rs.edgeType; + + if (type === 'segments') { + this.recalculateRenderedStyle(edge); + return getPts(rs.segpts); + } + }; + + BRp$c.getControlPoints = function (edge) { + var rs = edge[0]._private.rscratch; + var type = rs.edgeType; + + if (type === 'bezier' || type === 'multibezier' || type === 'self' || type === 'compound') { + this.recalculateRenderedStyle(edge); + return getPts(rs.ctrlpts); + } + }; + + BRp$c.getEdgeMidpoint = function (edge) { + var rs = edge[0]._private.rscratch; + this.recalculateRenderedStyle(edge); + return { + x: rs.midX, + y: rs.midY + }; + }; + + var BRp$b = {}; + + BRp$b.manualEndptToPx = function (node, prop) { + var r = this; + var npos = node.position(); + var w = node.outerWidth(); + var h = node.outerHeight(); + + if (prop.value.length === 2) { + var p = [prop.pfValue[0], prop.pfValue[1]]; + + if (prop.units[0] === '%') { + p[0] = p[0] * w; + } + + if (prop.units[1] === '%') { + p[1] = p[1] * h; + } + + p[0] += npos.x; + p[1] += npos.y; + return p; + } else { + var angle = prop.pfValue[0]; + angle = -Math.PI / 2 + angle; // start at 12 o'clock + + var l = 2 * Math.max(w, h); + var _p = [npos.x + Math.cos(angle) * l, npos.y + Math.sin(angle) * l]; + return r.nodeShapes[this.getNodeShape(node)].intersectLine(npos.x, npos.y, w, h, _p[0], _p[1], 0); + } + }; + + BRp$b.findEndpoints = function (edge) { + var r = this; + var intersect; + var source = edge.source()[0]; + var target = edge.target()[0]; + var srcPos = source.position(); + var tgtPos = target.position(); + var tgtArShape = edge.pstyle('target-arrow-shape').value; + var srcArShape = edge.pstyle('source-arrow-shape').value; + var tgtDist = edge.pstyle('target-distance-from-node').pfValue; + var srcDist = edge.pstyle('source-distance-from-node').pfValue; + var curveStyle = edge.pstyle('curve-style').value; + var rs = edge._private.rscratch; + var et = rs.edgeType; + var taxi = curveStyle === 'taxi'; + var self = et === 'self' || et === 'compound'; + var bezier = et === 'bezier' || et === 'multibezier' || self; + var multi = et !== 'bezier'; + var lines = et === 'straight' || et === 'segments'; + var segments = et === 'segments'; + var hasEndpts = bezier || multi || lines; + var overrideEndpts = self || taxi; + var srcManEndpt = edge.pstyle('source-endpoint'); + var srcManEndptVal = overrideEndpts ? 'outside-to-node' : srcManEndpt.value; + var tgtManEndpt = edge.pstyle('target-endpoint'); + var tgtManEndptVal = overrideEndpts ? 'outside-to-node' : tgtManEndpt.value; + rs.srcManEndpt = srcManEndpt; + rs.tgtManEndpt = tgtManEndpt; + var p1; // last known point of edge on target side + + var p2; // last known point of edge on source side + + var p1_i; // point to intersect with target shape + + var p2_i; // point to intersect with source shape + + if (bezier) { + var cpStart = [rs.ctrlpts[0], rs.ctrlpts[1]]; + var cpEnd = multi ? [rs.ctrlpts[rs.ctrlpts.length - 2], rs.ctrlpts[rs.ctrlpts.length - 1]] : cpStart; + p1 = cpEnd; + p2 = cpStart; + } else if (lines) { + var srcArrowFromPt = !segments ? [tgtPos.x, tgtPos.y] : rs.segpts.slice(0, 2); + var tgtArrowFromPt = !segments ? [srcPos.x, srcPos.y] : rs.segpts.slice(rs.segpts.length - 2); + p1 = tgtArrowFromPt; + p2 = srcArrowFromPt; + } + + if (tgtManEndptVal === 'inside-to-node') { + intersect = [tgtPos.x, tgtPos.y]; + } else if (tgtManEndpt.units) { + intersect = this.manualEndptToPx(target, tgtManEndpt); + } else if (tgtManEndptVal === 'outside-to-line') { + intersect = rs.tgtIntn; // use cached value from ctrlpt calc + } else { + if (tgtManEndptVal === 'outside-to-node' || tgtManEndptVal === 'outside-to-node-or-label') { + p1_i = p1; + } else if (tgtManEndptVal === 'outside-to-line' || tgtManEndptVal === 'outside-to-line-or-label') { + p1_i = [srcPos.x, srcPos.y]; + } + + intersect = r.nodeShapes[this.getNodeShape(target)].intersectLine(tgtPos.x, tgtPos.y, target.outerWidth(), target.outerHeight(), p1_i[0], p1_i[1], 0); + + if (tgtManEndptVal === 'outside-to-node-or-label' || tgtManEndptVal === 'outside-to-line-or-label') { + var trs = target._private.rscratch; + var lw = trs.labelWidth; + var lh = trs.labelHeight; + var lx = trs.labelX; + var ly = trs.labelY; + var lw2 = lw / 2; + var lh2 = lh / 2; + var va = target.pstyle('text-valign').value; + + if (va === 'top') { + ly -= lh2; + } else if (va === 'bottom') { + ly += lh2; + } + + var ha = target.pstyle('text-halign').value; + + if (ha === 'left') { + lx -= lw2; + } else if (ha === 'right') { + lx += lw2; + } + + var labelIntersect = polygonIntersectLine(p1_i[0], p1_i[1], [lx - lw2, ly - lh2, lx + lw2, ly - lh2, lx + lw2, ly + lh2, lx - lw2, ly + lh2], tgtPos.x, tgtPos.y); + + if (labelIntersect.length > 0) { + var refPt = srcPos; + var intSqdist = sqdist(refPt, array2point(intersect)); + var labIntSqdist = sqdist(refPt, array2point(labelIntersect)); + var minSqDist = intSqdist; + + if (labIntSqdist < intSqdist) { + intersect = labelIntersect; + minSqDist = labIntSqdist; + } + + if (labelIntersect.length > 2) { + var labInt2SqDist = sqdist(refPt, { + x: labelIntersect[2], + y: labelIntersect[3] + }); + + if (labInt2SqDist < minSqDist) { + intersect = [labelIntersect[2], labelIntersect[3]]; + } + } + } + } + } + + var arrowEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].spacing(edge) + tgtDist); + var edgeEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].gap(edge) + tgtDist); + rs.endX = edgeEnd[0]; + rs.endY = edgeEnd[1]; + rs.arrowEndX = arrowEnd[0]; + rs.arrowEndY = arrowEnd[1]; + + if (srcManEndptVal === 'inside-to-node') { + intersect = [srcPos.x, srcPos.y]; + } else if (srcManEndpt.units) { + intersect = this.manualEndptToPx(source, srcManEndpt); + } else if (srcManEndptVal === 'outside-to-line') { + intersect = rs.srcIntn; // use cached value from ctrlpt calc + } else { + if (srcManEndptVal === 'outside-to-node' || srcManEndptVal === 'outside-to-node-or-label') { + p2_i = p2; + } else if (srcManEndptVal === 'outside-to-line' || srcManEndptVal === 'outside-to-line-or-label') { + p2_i = [tgtPos.x, tgtPos.y]; + } + + intersect = r.nodeShapes[this.getNodeShape(source)].intersectLine(srcPos.x, srcPos.y, source.outerWidth(), source.outerHeight(), p2_i[0], p2_i[1], 0); + + if (srcManEndptVal === 'outside-to-node-or-label' || srcManEndptVal === 'outside-to-line-or-label') { + var srs = source._private.rscratch; + var _lw = srs.labelWidth; + var _lh = srs.labelHeight; + var _lx = srs.labelX; + var _ly = srs.labelY; + + var _lw2 = _lw / 2; + + var _lh2 = _lh / 2; + + var _va = source.pstyle('text-valign').value; + + if (_va === 'top') { + _ly -= _lh2; + } else if (_va === 'bottom') { + _ly += _lh2; + } + + var _ha = source.pstyle('text-halign').value; + + if (_ha === 'left') { + _lx -= _lw2; + } else if (_ha === 'right') { + _lx += _lw2; + } + + var _labelIntersect = polygonIntersectLine(p2_i[0], p2_i[1], [_lx - _lw2, _ly - _lh2, _lx + _lw2, _ly - _lh2, _lx + _lw2, _ly + _lh2, _lx - _lw2, _ly + _lh2], srcPos.x, srcPos.y); + + if (_labelIntersect.length > 0) { + var _refPt = tgtPos; + + var _intSqdist = sqdist(_refPt, array2point(intersect)); + + var _labIntSqdist = sqdist(_refPt, array2point(_labelIntersect)); + + var _minSqDist = _intSqdist; + + if (_labIntSqdist < _intSqdist) { + intersect = [_labelIntersect[0], _labelIntersect[1]]; + _minSqDist = _labIntSqdist; + } + + if (_labelIntersect.length > 2) { + var _labInt2SqDist = sqdist(_refPt, { + x: _labelIntersect[2], + y: _labelIntersect[3] + }); + + if (_labInt2SqDist < _minSqDist) { + intersect = [_labelIntersect[2], _labelIntersect[3]]; + } + } + } + } + } + + var arrowStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].spacing(edge) + srcDist); + var edgeStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].gap(edge) + srcDist); + rs.startX = edgeStart[0]; + rs.startY = edgeStart[1]; + rs.arrowStartX = arrowStart[0]; + rs.arrowStartY = arrowStart[1]; + + if (hasEndpts) { + if (!number$1(rs.startX) || !number$1(rs.startY) || !number$1(rs.endX) || !number$1(rs.endY)) { + rs.badLine = true; + } else { + rs.badLine = false; + } + } + }; + + BRp$b.getSourceEndpoint = function (edge) { + var rs = edge[0]._private.rscratch; + this.recalculateRenderedStyle(edge); + + switch (rs.edgeType) { + case 'haystack': + return { + x: rs.haystackPts[0], + y: rs.haystackPts[1] + }; + + default: + return { + x: rs.arrowStartX, + y: rs.arrowStartY + }; + } + }; + + BRp$b.getTargetEndpoint = function (edge) { + var rs = edge[0]._private.rscratch; + this.recalculateRenderedStyle(edge); + + switch (rs.edgeType) { + case 'haystack': + return { + x: rs.haystackPts[2], + y: rs.haystackPts[3] + }; + + default: + return { + x: rs.arrowEndX, + y: rs.arrowEndY + }; + } + }; + + var BRp$a = {}; + + function pushBezierPts(r, edge, pts) { + var qbezierAt$1 = function qbezierAt$1(p1, p2, p3, t) { + return qbezierAt(p1, p2, p3, t); + }; + + var _p = edge._private; + var bpts = _p.rstyle.bezierPts; + + for (var i = 0; i < r.bezierProjPcts.length; i++) { + var p = r.bezierProjPcts[i]; + bpts.push({ + x: qbezierAt$1(pts[0], pts[2], pts[4], p), + y: qbezierAt$1(pts[1], pts[3], pts[5], p) + }); + } + } + + BRp$a.storeEdgeProjections = function (edge) { + var _p = edge._private; + var rs = _p.rscratch; + var et = rs.edgeType; // clear the cached points state + + _p.rstyle.bezierPts = null; + _p.rstyle.linePts = null; + _p.rstyle.haystackPts = null; + + if (et === 'multibezier' || et === 'bezier' || et === 'self' || et === 'compound') { + _p.rstyle.bezierPts = []; + + for (var i = 0; i + 5 < rs.allpts.length; i += 4) { + pushBezierPts(this, edge, rs.allpts.slice(i, i + 6)); + } + } else if (et === 'segments') { + var lpts = _p.rstyle.linePts = []; + + for (var i = 0; i + 1 < rs.allpts.length; i += 2) { + lpts.push({ + x: rs.allpts[i], + y: rs.allpts[i + 1] + }); + } + } else if (et === 'haystack') { + var hpts = rs.haystackPts; + _p.rstyle.haystackPts = [{ + x: hpts[0], + y: hpts[1] + }, { + x: hpts[2], + y: hpts[3] + }]; + } + + _p.rstyle.arrowWidth = this.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.arrowShapeWidth; + }; + + BRp$a.recalculateEdgeProjections = function (edges) { + this.findEdgeControlPoints(edges); + }; + + /* global document */ + + var BRp$9 = {}; + + BRp$9.recalculateNodeLabelProjection = function (node) { + var content = node.pstyle('label').strValue; + + if (emptyString(content)) { + return; + } + + var textX, textY; + var _p = node._private; + var nodeWidth = node.width(); + var nodeHeight = node.height(); + var padding = node.padding(); + var nodePos = node.position(); + var textHalign = node.pstyle('text-halign').strValue; + var textValign = node.pstyle('text-valign').strValue; + var rs = _p.rscratch; + var rstyle = _p.rstyle; + + switch (textHalign) { + case 'left': + textX = nodePos.x - nodeWidth / 2 - padding; + break; + + case 'right': + textX = nodePos.x + nodeWidth / 2 + padding; + break; + + default: + // e.g. center + textX = nodePos.x; + } + + switch (textValign) { + case 'top': + textY = nodePos.y - nodeHeight / 2 - padding; + break; + + case 'bottom': + textY = nodePos.y + nodeHeight / 2 + padding; + break; + + default: + // e.g. middle + textY = nodePos.y; + } + + rs.labelX = textX; + rs.labelY = textY; + rstyle.labelX = textX; + rstyle.labelY = textY; + this.calculateLabelAngles(node); + this.applyLabelDimensions(node); + }; + + var lineAngleFromDelta = function lineAngleFromDelta(dx, dy) { + var angle = Math.atan(dy / dx); + + if (dx === 0 && angle < 0) { + angle = angle * -1; + } + + return angle; + }; + + var lineAngle = function lineAngle(p0, p1) { + var dx = p1.x - p0.x; + var dy = p1.y - p0.y; + return lineAngleFromDelta(dx, dy); + }; + + var bezierAngle = function bezierAngle(p0, p1, p2, t) { + var t0 = bound(0, t - 0.001, 1); + var t1 = bound(0, t + 0.001, 1); + var lp0 = qbezierPtAt(p0, p1, p2, t0); + var lp1 = qbezierPtAt(p0, p1, p2, t1); + return lineAngle(lp0, lp1); + }; + + BRp$9.recalculateEdgeLabelProjections = function (edge) { + var p; + var _p = edge._private; + var rs = _p.rscratch; + var r = this; + var content = { + mid: edge.pstyle('label').strValue, + source: edge.pstyle('source-label').strValue, + target: edge.pstyle('target-label').strValue + }; + + if (content.mid || content.source || content.target) ; else { + return; // no labels => no calcs + } // add center point to style so bounding box calculations can use it + // + + + p = { + x: rs.midX, + y: rs.midY + }; + + var setRs = function setRs(propName, prefix, value) { + setPrefixedProperty(_p.rscratch, propName, prefix, value); + setPrefixedProperty(_p.rstyle, propName, prefix, value); + }; + + setRs('labelX', null, p.x); + setRs('labelY', null, p.y); + var midAngle = lineAngleFromDelta(rs.midDispX, rs.midDispY); + setRs('labelAutoAngle', null, midAngle); + + var createControlPointInfo = function createControlPointInfo() { + if (createControlPointInfo.cache) { + return createControlPointInfo.cache; + } // use cache so only 1x per edge + + + var ctrlpts = []; // store each ctrlpt info init + + for (var i = 0; i + 5 < rs.allpts.length; i += 4) { + var p0 = { + x: rs.allpts[i], + y: rs.allpts[i + 1] + }; + var p1 = { + x: rs.allpts[i + 2], + y: rs.allpts[i + 3] + }; // ctrlpt + + var p2 = { + x: rs.allpts[i + 4], + y: rs.allpts[i + 5] + }; + ctrlpts.push({ + p0: p0, + p1: p1, + p2: p2, + startDist: 0, + length: 0, + segments: [] + }); + } + + var bpts = _p.rstyle.bezierPts; + var nProjs = r.bezierProjPcts.length; + + function addSegment(cp, p0, p1, t0, t1) { + var length = dist(p0, p1); + var prevSegment = cp.segments[cp.segments.length - 1]; + var segment = { + p0: p0, + p1: p1, + t0: t0, + t1: t1, + startDist: prevSegment ? prevSegment.startDist + prevSegment.length : 0, + length: length + }; + cp.segments.push(segment); + cp.length += length; + } // update each ctrlpt with segment info + + + for (var _i = 0; _i < ctrlpts.length; _i++) { + var cp = ctrlpts[_i]; + var prevCp = ctrlpts[_i - 1]; + + if (prevCp) { + cp.startDist = prevCp.startDist + prevCp.length; + } + + addSegment(cp, cp.p0, bpts[_i * nProjs], 0, r.bezierProjPcts[0]); // first + + for (var j = 0; j < nProjs - 1; j++) { + addSegment(cp, bpts[_i * nProjs + j], bpts[_i * nProjs + j + 1], r.bezierProjPcts[j], r.bezierProjPcts[j + 1]); + } + + addSegment(cp, bpts[_i * nProjs + nProjs - 1], cp.p2, r.bezierProjPcts[nProjs - 1], 1); // last + } + + return createControlPointInfo.cache = ctrlpts; + }; + + var calculateEndProjection = function calculateEndProjection(prefix) { + var angle; + var isSrc = prefix === 'source'; + + if (!content[prefix]) { + return; + } + + var offset = edge.pstyle(prefix + '-text-offset').pfValue; + + switch (rs.edgeType) { + case 'self': + case 'compound': + case 'bezier': + case 'multibezier': + { + var cps = createControlPointInfo(); + var selected; + var startDist = 0; + var totalDist = 0; // find the segment we're on + + for (var i = 0; i < cps.length; i++) { + var _cp = cps[isSrc ? i : cps.length - 1 - i]; + + for (var j = 0; j < _cp.segments.length; j++) { + var _seg = _cp.segments[isSrc ? j : _cp.segments.length - 1 - j]; + var lastSeg = i === cps.length - 1 && j === _cp.segments.length - 1; + startDist = totalDist; + totalDist += _seg.length; + + if (totalDist >= offset || lastSeg) { + selected = { + cp: _cp, + segment: _seg + }; + break; + } + } + + if (selected) { + break; + } + } + + var cp = selected.cp; + var seg = selected.segment; + var tSegment = (offset - startDist) / seg.length; + var segDt = seg.t1 - seg.t0; + var t = isSrc ? seg.t0 + segDt * tSegment : seg.t1 - segDt * tSegment; + t = bound(0, t, 1); + p = qbezierPtAt(cp.p0, cp.p1, cp.p2, t); + angle = bezierAngle(cp.p0, cp.p1, cp.p2, t); + break; + } + + case 'straight': + case 'segments': + case 'haystack': + { + var d = 0, + di, + d0; + var p0, p1; + var l = rs.allpts.length; + + for (var _i2 = 0; _i2 + 3 < l; _i2 += 2) { + if (isSrc) { + p0 = { + x: rs.allpts[_i2], + y: rs.allpts[_i2 + 1] + }; + p1 = { + x: rs.allpts[_i2 + 2], + y: rs.allpts[_i2 + 3] + }; + } else { + p0 = { + x: rs.allpts[l - 2 - _i2], + y: rs.allpts[l - 1 - _i2] + }; + p1 = { + x: rs.allpts[l - 4 - _i2], + y: rs.allpts[l - 3 - _i2] + }; + } + + di = dist(p0, p1); + d0 = d; + d += di; + + if (d >= offset) { + break; + } + } + + var pD = offset - d0; + + var _t = pD / di; + + _t = bound(0, _t, 1); + p = lineAt(p0, p1, _t); + angle = lineAngle(p0, p1); + break; + } + } + + setRs('labelX', prefix, p.x); + setRs('labelY', prefix, p.y); + setRs('labelAutoAngle', prefix, angle); + }; + + calculateEndProjection('source'); + calculateEndProjection('target'); + this.applyLabelDimensions(edge); + }; + + BRp$9.applyLabelDimensions = function (ele) { + this.applyPrefixedLabelDimensions(ele); + + if (ele.isEdge()) { + this.applyPrefixedLabelDimensions(ele, 'source'); + this.applyPrefixedLabelDimensions(ele, 'target'); + } + }; + + BRp$9.applyPrefixedLabelDimensions = function (ele, prefix) { + var _p = ele._private; + var text = this.getLabelText(ele, prefix); + var labelDims = this.calculateLabelDimensions(ele, text); + var lineHeight = ele.pstyle('line-height').pfValue; + var textWrap = ele.pstyle('text-wrap').strValue; + var lines = getPrefixedProperty(_p.rscratch, 'labelWrapCachedLines', prefix) || []; + var numLines = textWrap !== 'wrap' ? 1 : Math.max(lines.length, 1); + var normPerLineHeight = labelDims.height / numLines; + var labelLineHeight = normPerLineHeight * lineHeight; + var width = labelDims.width; + var height = labelDims.height + (numLines - 1) * (lineHeight - 1) * normPerLineHeight; + setPrefixedProperty(_p.rstyle, 'labelWidth', prefix, width); + setPrefixedProperty(_p.rscratch, 'labelWidth', prefix, width); + setPrefixedProperty(_p.rstyle, 'labelHeight', prefix, height); + setPrefixedProperty(_p.rscratch, 'labelHeight', prefix, height); + setPrefixedProperty(_p.rscratch, 'labelLineHeight', prefix, labelLineHeight); + }; + + BRp$9.getLabelText = function (ele, prefix) { + var _p = ele._private; + var pfd = prefix ? prefix + '-' : ''; + var text = ele.pstyle(pfd + 'label').strValue; + var textTransform = ele.pstyle('text-transform').value; + + var rscratch = function rscratch(propName, value) { + if (value) { + setPrefixedProperty(_p.rscratch, propName, prefix, value); + return value; + } else { + return getPrefixedProperty(_p.rscratch, propName, prefix); + } + }; // for empty text, skip all processing + + + if (!text) { + return ''; + } + + if (textTransform == 'none') ; else if (textTransform == 'uppercase') { + text = text.toUpperCase(); + } else if (textTransform == 'lowercase') { + text = text.toLowerCase(); + } + + var wrapStyle = ele.pstyle('text-wrap').value; + + if (wrapStyle === 'wrap') { + var labelKey = rscratch('labelKey'); // save recalc if the label is the same as before + + if (labelKey != null && rscratch('labelWrapKey') === labelKey) { + return rscratch('labelWrapCachedText'); + } + + var zwsp = "\u200B"; + var lines = text.split('\n'); + var maxW = ele.pstyle('text-max-width').pfValue; + var overflow = ele.pstyle('text-overflow-wrap').value; + var overflowAny = overflow === 'anywhere'; + var wrappedLines = []; + var wordsRegex = /[\s\u200b]+/; + var wordSeparator = overflowAny ? '' : ' '; + + for (var l = 0; l < lines.length; l++) { + var line = lines[l]; + var lineDims = this.calculateLabelDimensions(ele, line); + var lineW = lineDims.width; + + if (overflowAny) { + var processedLine = line.split('').join(zwsp); + line = processedLine; + } + + if (lineW > maxW) { + // line is too long + var words = line.split(wordsRegex); + var subline = ''; + + for (var w = 0; w < words.length; w++) { + var word = words[w]; + var testLine = subline.length === 0 ? word : subline + wordSeparator + word; + var testDims = this.calculateLabelDimensions(ele, testLine); + var testW = testDims.width; + + if (testW <= maxW) { + // word fits on current line + subline += word + wordSeparator; + } else { + // word starts new line + if (subline) { + wrappedLines.push(subline); + } + + subline = word + wordSeparator; + } + } // if there's remaining text, put it in a wrapped line + + + if (!subline.match(/^[\s\u200b]+$/)) { + wrappedLines.push(subline); + } + } else { + // line is already short enough + wrappedLines.push(line); + } + } // for + + + rscratch('labelWrapCachedLines', wrappedLines); + text = rscratch('labelWrapCachedText', wrappedLines.join('\n')); + rscratch('labelWrapKey', labelKey); + } else if (wrapStyle === 'ellipsis') { + var _maxW = ele.pstyle('text-max-width').pfValue; + var ellipsized = ''; + var ellipsis = "\u2026"; + var incLastCh = false; + + if (this.calculateLabelDimensions(ele, text).width < _maxW) { + // the label already fits + return text; + } + + for (var i = 0; i < text.length; i++) { + var widthWithNextCh = this.calculateLabelDimensions(ele, ellipsized + text[i] + ellipsis).width; + + if (widthWithNextCh > _maxW) { + break; + } + + ellipsized += text[i]; + + if (i === text.length - 1) { + incLastCh = true; + } + } + + if (!incLastCh) { + ellipsized += ellipsis; + } + + return ellipsized; + } // if ellipsize + + + return text; + }; + + BRp$9.getLabelJustification = function (ele) { + var justification = ele.pstyle('text-justification').strValue; + var textHalign = ele.pstyle('text-halign').strValue; + + if (justification === 'auto') { + if (ele.isNode()) { + switch (textHalign) { + case 'left': + return 'right'; + + case 'right': + return 'left'; + + default: + return 'center'; + } + } else { + return 'center'; + } + } else { + return justification; + } + }; + + BRp$9.calculateLabelDimensions = function (ele, text) { + var r = this; + var cacheKey = hashString(text, ele._private.labelDimsKey); + var cache = r.labelDimCache || (r.labelDimCache = []); + var existingVal = cache[cacheKey]; + + if (existingVal != null) { + return existingVal; + } + + var padding = 0; // add padding around text dims, as the measurement isn't that accurate + + var fStyle = ele.pstyle('font-style').strValue; + var size = ele.pstyle('font-size').pfValue; + var family = ele.pstyle('font-family').strValue; + var weight = ele.pstyle('font-weight').strValue; + var canvas = this.labelCalcCanvas; + var c2d = this.labelCalcCanvasContext; + + if (!canvas) { + canvas = this.labelCalcCanvas = document.createElement('canvas'); + c2d = this.labelCalcCanvasContext = canvas.getContext('2d'); + var ds = canvas.style; + ds.position = 'absolute'; + ds.left = '-9999px'; + ds.top = '-9999px'; + ds.zIndex = '-1'; + ds.visibility = 'hidden'; + ds.pointerEvents = 'none'; + } + + c2d.font = "".concat(fStyle, " ").concat(weight, " ").concat(size, "px ").concat(family); + var width = 0; + var height = 0; + var lines = text.split('\n'); + + for (var i = 0; i < lines.length; i++) { + var line = lines[i]; + var metrics = c2d.measureText(line); + var w = Math.ceil(metrics.width); + var h = size; + width = Math.max(w, width); + height += h; + } + + width += padding; + height += padding; + return cache[cacheKey] = { + width: width, + height: height + }; + }; + + BRp$9.calculateLabelAngle = function (ele, prefix) { + var _p = ele._private; + var rs = _p.rscratch; + var isEdge = ele.isEdge(); + var prefixDash = prefix ? prefix + '-' : ''; + var rot = ele.pstyle(prefixDash + 'text-rotation'); + var rotStr = rot.strValue; + + if (rotStr === 'none') { + return 0; + } else if (isEdge && rotStr === 'autorotate') { + return rs.labelAutoAngle; + } else if (rotStr === 'autorotate') { + return 0; + } else { + return rot.pfValue; + } + }; + + BRp$9.calculateLabelAngles = function (ele) { + var r = this; + var isEdge = ele.isEdge(); + var _p = ele._private; + var rs = _p.rscratch; + rs.labelAngle = r.calculateLabelAngle(ele); + + if (isEdge) { + rs.sourceLabelAngle = r.calculateLabelAngle(ele, 'source'); + rs.targetLabelAngle = r.calculateLabelAngle(ele, 'target'); + } + }; + + var BRp$8 = {}; + var TOO_SMALL_CUT_RECT = 28; + var warnedCutRect = false; + + BRp$8.getNodeShape = function (node) { + var r = this; + var shape = node.pstyle('shape').value; + + if (shape === 'cutrectangle' && (node.width() < TOO_SMALL_CUT_RECT || node.height() < TOO_SMALL_CUT_RECT)) { + if (!warnedCutRect) { + warn('The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead'); + warnedCutRect = true; + } + + return 'rectangle'; + } + + if (node.isParent()) { + if (shape === 'rectangle' || shape === 'roundrectangle' || shape === 'round-rectangle' || shape === 'cutrectangle' || shape === 'cut-rectangle' || shape === 'barrel') { + return shape; + } else { + return 'rectangle'; + } + } + + if (shape === 'polygon') { + var points = node.pstyle('shape-polygon-points').value; + return r.nodeShapes.makePolygon(points).name; + } + + return shape; + }; + + var BRp$7 = {}; + + BRp$7.registerCalculationListeners = function () { + var cy = this.cy; + var elesToUpdate = cy.collection(); + var r = this; + + var enqueue = function enqueue(eles) { + var dirtyStyleCaches = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + elesToUpdate.merge(eles); + + if (dirtyStyleCaches) { + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var _p = ele._private; + var rstyle = _p.rstyle; + rstyle.clean = false; + rstyle.cleanConnected = false; + } + } + }; + + r.binder(cy).on('bounds.* dirty.*', function onDirtyBounds(e) { + var ele = e.target; + enqueue(ele); + }).on('style.* background.*', function onDirtyStyle(e) { + var ele = e.target; + enqueue(ele, false); + }); + + var updateEleCalcs = function updateEleCalcs(willDraw) { + if (willDraw) { + var fns = r.onUpdateEleCalcsFns; // because we need to have up-to-date style (e.g. stylesheet mappers) + // before calculating rendered style (and pstyle might not be called yet) + + elesToUpdate.cleanStyle(); + + for (var i = 0; i < elesToUpdate.length; i++) { + var ele = elesToUpdate[i]; + var rstyle = ele._private.rstyle; + + if (ele.isNode() && !rstyle.cleanConnected) { + enqueue(ele.connectedEdges()); + rstyle.cleanConnected = true; + } + } + + if (fns) { + for (var _i = 0; _i < fns.length; _i++) { + var fn = fns[_i]; + fn(willDraw, elesToUpdate); + } + } + + r.recalculateRenderedStyle(elesToUpdate); + elesToUpdate = cy.collection(); + } + }; + + r.flushRenderedStyleQueue = function () { + updateEleCalcs(true); + }; + + r.beforeRender(updateEleCalcs, r.beforeRenderPriorities.eleCalcs); + }; + + BRp$7.onUpdateEleCalcs = function (fn) { + var fns = this.onUpdateEleCalcsFns = this.onUpdateEleCalcsFns || []; + fns.push(fn); + }; + + BRp$7.recalculateRenderedStyle = function (eles, useCache) { + var isCleanConnected = function isCleanConnected(ele) { + return ele._private.rstyle.cleanConnected; + }; + + var edges = []; + var nodes = []; // the renderer can't be used for calcs when destroyed, e.g. ele.boundingBox() + + if (this.destroyed) { + return; + } // use cache by default for perf + + + if (useCache === undefined) { + useCache = true; + } + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var _p = ele._private; + var rstyle = _p.rstyle; // an edge may be implicitly dirty b/c of one of its connected nodes + // (and a request for recalc may come in between frames) + + if (ele.isEdge() && (!isCleanConnected(ele.source()) || !isCleanConnected(ele.target()))) { + rstyle.clean = false; + } // only update if dirty and in graph + + + if (useCache && rstyle.clean || ele.removed()) { + continue; + } // only update if not display: none + + + if (ele.pstyle('display').value === 'none') { + continue; + } + + if (_p.group === 'nodes') { + nodes.push(ele); + } else { + // edges + edges.push(ele); + } + + rstyle.clean = true; + } // update node data from projections + + + for (var _i2 = 0; _i2 < nodes.length; _i2++) { + var _ele = nodes[_i2]; + var _p2 = _ele._private; + var _rstyle = _p2.rstyle; + + var pos = _ele.position(); + + this.recalculateNodeLabelProjection(_ele); + _rstyle.nodeX = pos.x; + _rstyle.nodeY = pos.y; + _rstyle.nodeW = _ele.pstyle('width').pfValue; + _rstyle.nodeH = _ele.pstyle('height').pfValue; + } + + this.recalculateEdgeProjections(edges); // update edge data from projections + + for (var _i3 = 0; _i3 < edges.length; _i3++) { + var _ele2 = edges[_i3]; + var _p3 = _ele2._private; + var _rstyle2 = _p3.rstyle; + var rs = _p3.rscratch; // update rstyle positions + + _rstyle2.srcX = rs.arrowStartX; + _rstyle2.srcY = rs.arrowStartY; + _rstyle2.tgtX = rs.arrowEndX; + _rstyle2.tgtY = rs.arrowEndY; + _rstyle2.midX = rs.midX; + _rstyle2.midY = rs.midY; + _rstyle2.labelAngle = rs.labelAngle; + _rstyle2.sourceLabelAngle = rs.sourceLabelAngle; + _rstyle2.targetLabelAngle = rs.targetLabelAngle; + } + }; + + var BRp$6 = {}; + + BRp$6.updateCachedGrabbedEles = function () { + var eles = this.cachedZSortedEles; + + if (!eles) { + // just let this be recalculated on the next z sort tick + return; + } + + eles.drag = []; + eles.nondrag = []; + var grabTargets = []; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var rs = ele._private.rscratch; + + if (ele.grabbed() && !ele.isParent()) { + grabTargets.push(ele); + } else if (rs.inDragLayer) { + eles.drag.push(ele); + } else { + eles.nondrag.push(ele); + } + } // put the grab target nodes last so it's on top of its neighbourhood + + + for (var i = 0; i < grabTargets.length; i++) { + var ele = grabTargets[i]; + eles.drag.push(ele); + } + }; + + BRp$6.invalidateCachedZSortedEles = function () { + this.cachedZSortedEles = null; + }; + + BRp$6.getCachedZSortedEles = function (forceRecalc) { + if (forceRecalc || !this.cachedZSortedEles) { + var eles = this.cy.mutableElements().toArray(); + eles.sort(zIndexSort); + eles.interactive = eles.filter(function (ele) { + return ele.interactive(); + }); + this.cachedZSortedEles = eles; + this.updateCachedGrabbedEles(); + } else { + eles = this.cachedZSortedEles; + } + + return eles; + }; + + var BRp$5 = {}; + [BRp$e, BRp$d, BRp$c, BRp$b, BRp$a, BRp$9, BRp$8, BRp$7, BRp$6].forEach(function (props) { + extend(BRp$5, props); + }); + + var BRp$4 = {}; + + BRp$4.getCachedImage = function (url, crossOrigin, onLoad) { + var r = this; + var imageCache = r.imageCache = r.imageCache || {}; + var cache = imageCache[url]; + + if (cache) { + if (!cache.image.complete) { + cache.image.addEventListener('load', onLoad); + } + + return cache.image; + } else { + cache = imageCache[url] = imageCache[url] || {}; + var image = cache.image = new Image(); // eslint-disable-line no-undef + + image.addEventListener('load', onLoad); + image.addEventListener('error', function () { + image.error = true; + }); // #1582 safari doesn't load data uris with crossOrigin properly + // https://bugs.webkit.org/show_bug.cgi?id=123978 + + var dataUriPrefix = 'data:'; + var isDataUri = url.substring(0, dataUriPrefix.length).toLowerCase() === dataUriPrefix; + + if (!isDataUri) { + // if crossorigin is 'null'(stringified), then manually set it to null + crossOrigin = crossOrigin === 'null' ? null : crossOrigin; + image.crossOrigin = crossOrigin; // prevent tainted canvas + } + + image.src = url; + return image; + } + }; + + var BRp$3 = {}; + /* global document, window, ResizeObserver, MutationObserver */ + + BRp$3.registerBinding = function (target, event, handler, useCapture) { + // eslint-disable-line no-unused-vars + var args = Array.prototype.slice.apply(arguments, [1]); // copy + + var b = this.binder(target); + return b.on.apply(b, args); + }; + + BRp$3.binder = function (tgt) { + var r = this; + var containerWindow = r.cy.window(); + var tgtIsDom = tgt === containerWindow || tgt === containerWindow.document || tgt === containerWindow.document.body || domElement(tgt); + + if (r.supportsPassiveEvents == null) { + // from https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection + var supportsPassive = false; + + try { + var opts = Object.defineProperty({}, 'passive', { + get: function get() { + supportsPassive = true; + return true; + } + }); + containerWindow.addEventListener('test', null, opts); + } catch (err) {// not supported + } + + r.supportsPassiveEvents = supportsPassive; + } + + var on = function on(event, handler, useCapture) { + var args = Array.prototype.slice.call(arguments); + + if (tgtIsDom && r.supportsPassiveEvents) { + // replace useCapture w/ opts obj + args[2] = { + capture: useCapture != null ? useCapture : false, + passive: false, + once: false + }; + } + + r.bindings.push({ + target: tgt, + args: args + }); + (tgt.addEventListener || tgt.on).apply(tgt, args); + return this; + }; + + return { + on: on, + addEventListener: on, + addListener: on, + bind: on + }; + }; + + BRp$3.nodeIsDraggable = function (node) { + return node && node.isNode() && !node.locked() && node.grabbable(); + }; + + BRp$3.nodeIsGrabbable = function (node) { + return this.nodeIsDraggable(node) && node.interactive(); + }; + + BRp$3.load = function () { + var r = this; + var containerWindow = r.cy.window(); + + var isSelected = function isSelected(ele) { + return ele.selected(); + }; + + var triggerEvents = function triggerEvents(target, names, e, position) { + if (target == null) { + target = r.cy; + } + + for (var i = 0; i < names.length; i++) { + var name = names[i]; + target.emit({ + originalEvent: e, + type: name, + position: position + }); + } + }; + + var isMultSelKeyDown = function isMultSelKeyDown(e) { + return e.shiftKey || e.metaKey || e.ctrlKey; // maybe e.altKey + }; + + var allowPanningPassthrough = function allowPanningPassthrough(down, downs) { + var allowPassthrough = true; + + if (r.cy.hasCompoundNodes() && down && down.pannable()) { + // a grabbable compound node below the ele => no passthrough panning + for (var i = 0; downs && i < downs.length; i++) { + var down = downs[i]; //if any parent node in event hierarchy isn't pannable, reject passthrough + + if (down.isNode() && down.isParent() && !down.pannable()) { + allowPassthrough = false; + break; + } + } + } else { + allowPassthrough = true; + } + + return allowPassthrough; + }; + + var setGrabbed = function setGrabbed(ele) { + ele[0]._private.grabbed = true; + }; + + var setFreed = function setFreed(ele) { + ele[0]._private.grabbed = false; + }; + + var setInDragLayer = function setInDragLayer(ele) { + ele[0]._private.rscratch.inDragLayer = true; + }; + + var setOutDragLayer = function setOutDragLayer(ele) { + ele[0]._private.rscratch.inDragLayer = false; + }; + + var setGrabTarget = function setGrabTarget(ele) { + ele[0]._private.rscratch.isGrabTarget = true; + }; + + var removeGrabTarget = function removeGrabTarget(ele) { + ele[0]._private.rscratch.isGrabTarget = false; + }; + + var addToDragList = function addToDragList(ele, opts) { + var list = opts.addToList; + var listHasEle = list.has(ele); + + if (!listHasEle && ele.grabbable() && !ele.locked()) { + list.merge(ele); + setGrabbed(ele); + } + }; // helper function to determine which child nodes and inner edges + // of a compound node to be dragged as well as the grabbed and selected nodes + + + var addDescendantsToDrag = function addDescendantsToDrag(node, opts) { + if (!node.cy().hasCompoundNodes()) { + return; + } + + if (opts.inDragLayer == null && opts.addToList == null) { + return; + } // nothing to do + + + var innerNodes = node.descendants(); + + if (opts.inDragLayer) { + innerNodes.forEach(setInDragLayer); + innerNodes.connectedEdges().forEach(setInDragLayer); + } + + if (opts.addToList) { + addToDragList(innerNodes, opts); + } + }; // adds the given nodes and its neighbourhood to the drag layer + + + var addNodesToDrag = function addNodesToDrag(nodes, opts) { + opts = opts || {}; + var hasCompoundNodes = nodes.cy().hasCompoundNodes(); + + if (opts.inDragLayer) { + nodes.forEach(setInDragLayer); + nodes.neighborhood().stdFilter(function (ele) { + return !hasCompoundNodes || ele.isEdge(); + }).forEach(setInDragLayer); + } + + if (opts.addToList) { + nodes.forEach(function (ele) { + addToDragList(ele, opts); + }); + } + + addDescendantsToDrag(nodes, opts); // always add to drag + // also add nodes and edges related to the topmost ancestor + + updateAncestorsInDragLayer(nodes, { + inDragLayer: opts.inDragLayer + }); + r.updateCachedGrabbedEles(); + }; + + var addNodeToDrag = addNodesToDrag; + + var freeDraggedElements = function freeDraggedElements(grabbedEles) { + if (!grabbedEles) { + return; + } // just go over all elements rather than doing a bunch of (possibly expensive) traversals + + + r.getCachedZSortedEles().forEach(function (ele) { + setFreed(ele); + setOutDragLayer(ele); + removeGrabTarget(ele); + }); + r.updateCachedGrabbedEles(); + }; // helper function to determine which ancestor nodes and edges should go + // to the drag layer (or should be removed from drag layer). + + + var updateAncestorsInDragLayer = function updateAncestorsInDragLayer(node, opts) { + if (opts.inDragLayer == null && opts.addToList == null) { + return; + } // nothing to do + + + if (!node.cy().hasCompoundNodes()) { + return; + } // find top-level parent + + + var parent = node.ancestors().orphans(); // no parent node: no nodes to add to the drag layer + + if (parent.same(node)) { + return; + } + + var nodes = parent.descendants().spawnSelf().merge(parent).unmerge(node).unmerge(node.descendants()); + var edges = nodes.connectedEdges(); + + if (opts.inDragLayer) { + edges.forEach(setInDragLayer); + nodes.forEach(setInDragLayer); + } + + if (opts.addToList) { + nodes.forEach(function (ele) { + addToDragList(ele, opts); + }); + } + }; + + var blurActiveDomElement = function blurActiveDomElement() { + if (document.activeElement != null && document.activeElement.blur != null) { + document.activeElement.blur(); + } + }; + + var haveMutationsApi = typeof MutationObserver !== 'undefined'; + var haveResizeObserverApi = typeof ResizeObserver !== 'undefined'; // watch for when the cy container is removed from the dom + + if (haveMutationsApi) { + r.removeObserver = new MutationObserver(function (mutns) { + // eslint-disable-line no-undef + for (var i = 0; i < mutns.length; i++) { + var mutn = mutns[i]; + var rNodes = mutn.removedNodes; + + if (rNodes) { + for (var j = 0; j < rNodes.length; j++) { + var rNode = rNodes[j]; + + if (rNode === r.container) { + r.destroy(); + break; + } + } + } + } + }); + + if (r.container.parentNode) { + r.removeObserver.observe(r.container.parentNode, { + childList: true + }); + } + } else { + r.registerBinding(r.container, 'DOMNodeRemoved', function (e) { + // eslint-disable-line no-unused-vars + r.destroy(); + }); + } + + var onResize = debounce_1(function () { + r.cy.resize(); + }, 100); + + if (haveMutationsApi) { + r.styleObserver = new MutationObserver(onResize); // eslint-disable-line no-undef + + r.styleObserver.observe(r.container, { + attributes: true + }); + } // auto resize + + + r.registerBinding(containerWindow, 'resize', onResize); // eslint-disable-line no-undef + + if (haveResizeObserverApi) { + r.resizeObserver = new ResizeObserver(onResize); // eslint-disable-line no-undef + + r.resizeObserver.observe(r.container); + } + + var forEachUp = function forEachUp(domEle, fn) { + while (domEle != null) { + fn(domEle); + domEle = domEle.parentNode; + } + }; + + var invalidateCoords = function invalidateCoords() { + r.invalidateContainerClientCoordsCache(); + }; + + forEachUp(r.container, function (domEle) { + r.registerBinding(domEle, 'transitionend', invalidateCoords); + r.registerBinding(domEle, 'animationend', invalidateCoords); + r.registerBinding(domEle, 'scroll', invalidateCoords); + }); // stop right click menu from appearing on cy + + r.registerBinding(r.container, 'contextmenu', function (e) { + e.preventDefault(); + }); + + var inBoxSelection = function inBoxSelection() { + return r.selection[4] !== 0; + }; + + var eventInContainer = function eventInContainer(e) { + // save cycles if mouse events aren't to be captured + var containerPageCoords = r.findContainerClientCoords(); + var x = containerPageCoords[0]; + var y = containerPageCoords[1]; + var width = containerPageCoords[2]; + var height = containerPageCoords[3]; + var positions = e.touches ? e.touches : [e]; + var atLeastOnePosInside = false; + + for (var i = 0; i < positions.length; i++) { + var p = positions[i]; + + if (x <= p.clientX && p.clientX <= x + width && y <= p.clientY && p.clientY <= y + height) { + atLeastOnePosInside = true; + break; + } + } + + if (!atLeastOnePosInside) { + return false; + } + + var container = r.container; + var target = e.target; + var tParent = target.parentNode; + var containerIsTarget = false; + + while (tParent) { + if (tParent === container) { + containerIsTarget = true; + break; + } + + tParent = tParent.parentNode; + } + + if (!containerIsTarget) { + return false; + } // if target is outisde cy container, then this event is not for us + + + return true; + }; // Primary key + + + r.registerBinding(r.container, 'mousedown', function mousedownHandler(e) { + if (!eventInContainer(e)) { + return; + } + + e.preventDefault(); + blurActiveDomElement(); + r.hoverData.capture = true; + r.hoverData.which = e.which; + var cy = r.cy; + var gpos = [e.clientX, e.clientY]; + var pos = r.projectIntoViewport(gpos[0], gpos[1]); + var select = r.selection; + var nears = r.findNearestElements(pos[0], pos[1], true, false); + var near = nears[0]; + var draggedElements = r.dragData.possibleDragElements; + r.hoverData.mdownPos = pos; + r.hoverData.mdownGPos = gpos; + + var checkForTaphold = function checkForTaphold() { + r.hoverData.tapholdCancelled = false; + clearTimeout(r.hoverData.tapholdTimeout); + r.hoverData.tapholdTimeout = setTimeout(function () { + if (r.hoverData.tapholdCancelled) { + return; + } else { + var ele = r.hoverData.down; + + if (ele) { + ele.emit({ + originalEvent: e, + type: 'taphold', + position: { + x: pos[0], + y: pos[1] + } + }); + } else { + cy.emit({ + originalEvent: e, + type: 'taphold', + position: { + x: pos[0], + y: pos[1] + } + }); + } + } + }, r.tapholdDuration); + }; // Right click button + + + if (e.which == 3) { + r.hoverData.cxtStarted = true; + var cxtEvt = { + originalEvent: e, + type: 'cxttapstart', + position: { + x: pos[0], + y: pos[1] + } + }; + + if (near) { + near.activate(); + near.emit(cxtEvt); + r.hoverData.down = near; + } else { + cy.emit(cxtEvt); + } + + r.hoverData.downTime = new Date().getTime(); + r.hoverData.cxtDragged = false; // Primary button + } else if (e.which == 1) { + if (near) { + near.activate(); + } // Element dragging + + + { + // If something is under the cursor and it is draggable, prepare to grab it + if (near != null) { + if (r.nodeIsGrabbable(near)) { + var makeEvent = function makeEvent(type) { + return { + originalEvent: e, + type: type, + position: { + x: pos[0], + y: pos[1] + } + }; + }; + + var triggerGrab = function triggerGrab(ele) { + ele.emit(makeEvent('grab')); + }; + + setGrabTarget(near); + + if (!near.selected()) { + draggedElements = r.dragData.possibleDragElements = cy.collection(); + addNodeToDrag(near, { + addToList: draggedElements + }); + near.emit(makeEvent('grabon')).emit(makeEvent('grab')); + } else { + draggedElements = r.dragData.possibleDragElements = cy.collection(); + var selectedNodes = cy.$(function (ele) { + return ele.isNode() && ele.selected() && r.nodeIsGrabbable(ele); + }); + addNodesToDrag(selectedNodes, { + addToList: draggedElements + }); + near.emit(makeEvent('grabon')); + selectedNodes.forEach(triggerGrab); + } + + r.redrawHint('eles', true); + r.redrawHint('drag', true); + } + } + + r.hoverData.down = near; + r.hoverData.downs = nears; + r.hoverData.downTime = new Date().getTime(); + } + triggerEvents(near, ['mousedown', 'tapstart', 'vmousedown'], e, { + x: pos[0], + y: pos[1] + }); + + if (near == null) { + select[4] = 1; + r.data.bgActivePosistion = { + x: pos[0], + y: pos[1] + }; + r.redrawHint('select', true); + r.redraw(); + } else if (near.pannable()) { + select[4] = 1; // for future pan + } + + checkForTaphold(); + } // Initialize selection box coordinates + + + select[0] = select[2] = pos[0]; + select[1] = select[3] = pos[1]; + }, false); + r.registerBinding(containerWindow, 'mousemove', function mousemoveHandler(e) { + // eslint-disable-line no-undef + var capture = r.hoverData.capture; + + if (!capture && !eventInContainer(e)) { + return; + } + + var preventDefault = false; + var cy = r.cy; + var zoom = cy.zoom(); + var gpos = [e.clientX, e.clientY]; + var pos = r.projectIntoViewport(gpos[0], gpos[1]); + var mdownPos = r.hoverData.mdownPos; + var mdownGPos = r.hoverData.mdownGPos; + var select = r.selection; + var near = null; + + if (!r.hoverData.draggingEles && !r.hoverData.dragging && !r.hoverData.selecting) { + near = r.findNearestElement(pos[0], pos[1], true, false); + } + + var last = r.hoverData.last; + var down = r.hoverData.down; + var disp = [pos[0] - select[2], pos[1] - select[3]]; + var draggedElements = r.dragData.possibleDragElements; + var isOverThresholdDrag; + + if (mdownGPos) { + var dx = gpos[0] - mdownGPos[0]; + var dx2 = dx * dx; + var dy = gpos[1] - mdownGPos[1]; + var dy2 = dy * dy; + var dist2 = dx2 + dy2; + r.hoverData.isOverThresholdDrag = isOverThresholdDrag = dist2 >= r.desktopTapThreshold2; + } + + var multSelKeyDown = isMultSelKeyDown(e); + + if (isOverThresholdDrag) { + r.hoverData.tapholdCancelled = true; + } + + var updateDragDelta = function updateDragDelta() { + var dragDelta = r.hoverData.dragDelta = r.hoverData.dragDelta || []; + + if (dragDelta.length === 0) { + dragDelta.push(disp[0]); + dragDelta.push(disp[1]); + } else { + dragDelta[0] += disp[0]; + dragDelta[1] += disp[1]; + } + }; + + preventDefault = true; + triggerEvents(near, ['mousemove', 'vmousemove', 'tapdrag'], e, { + x: pos[0], + y: pos[1] + }); + + var goIntoBoxMode = function goIntoBoxMode() { + r.data.bgActivePosistion = undefined; + + if (!r.hoverData.selecting) { + cy.emit({ + originalEvent: e, + type: 'boxstart', + position: { + x: pos[0], + y: pos[1] + } + }); + } + + select[4] = 1; + r.hoverData.selecting = true; + r.redrawHint('select', true); + r.redraw(); + }; // trigger context drag if rmouse down + + + if (r.hoverData.which === 3) { + // but only if over threshold + if (isOverThresholdDrag) { + var cxtEvt = { + originalEvent: e, + type: 'cxtdrag', + position: { + x: pos[0], + y: pos[1] + } + }; + + if (down) { + down.emit(cxtEvt); + } else { + cy.emit(cxtEvt); + } + + r.hoverData.cxtDragged = true; + + if (!r.hoverData.cxtOver || near !== r.hoverData.cxtOver) { + if (r.hoverData.cxtOver) { + r.hoverData.cxtOver.emit({ + originalEvent: e, + type: 'cxtdragout', + position: { + x: pos[0], + y: pos[1] + } + }); + } + + r.hoverData.cxtOver = near; + + if (near) { + near.emit({ + originalEvent: e, + type: 'cxtdragover', + position: { + x: pos[0], + y: pos[1] + } + }); + } + } + } // Check if we are drag panning the entire graph + + } else if (r.hoverData.dragging) { + preventDefault = true; + + if (cy.panningEnabled() && cy.userPanningEnabled()) { + var deltaP; + + if (r.hoverData.justStartedPan) { + var mdPos = r.hoverData.mdownPos; + deltaP = { + x: (pos[0] - mdPos[0]) * zoom, + y: (pos[1] - mdPos[1]) * zoom + }; + r.hoverData.justStartedPan = false; + } else { + deltaP = { + x: disp[0] * zoom, + y: disp[1] * zoom + }; + } + + cy.panBy(deltaP); + cy.emit('dragpan'); + r.hoverData.dragged = true; + } // Needs reproject due to pan changing viewport + + + pos = r.projectIntoViewport(e.clientX, e.clientY); // Checks primary button down & out of time & mouse not moved much + } else if (select[4] == 1 && (down == null || down.pannable())) { + if (isOverThresholdDrag) { + if (!r.hoverData.dragging && cy.boxSelectionEnabled() && (multSelKeyDown || !cy.panningEnabled() || !cy.userPanningEnabled())) { + goIntoBoxMode(); + } else if (!r.hoverData.selecting && cy.panningEnabled() && cy.userPanningEnabled()) { + var allowPassthrough = allowPanningPassthrough(down, r.hoverData.downs); + + if (allowPassthrough) { + r.hoverData.dragging = true; + r.hoverData.justStartedPan = true; + select[4] = 0; + r.data.bgActivePosistion = array2point(mdownPos); + r.redrawHint('select', true); + r.redraw(); + } + } + + if (down && down.pannable() && down.active()) { + down.unactivate(); + } + } + } else { + if (down && down.pannable() && down.active()) { + down.unactivate(); + } + + if ((!down || !down.grabbed()) && near != last) { + if (last) { + triggerEvents(last, ['mouseout', 'tapdragout'], e, { + x: pos[0], + y: pos[1] + }); + } + + if (near) { + triggerEvents(near, ['mouseover', 'tapdragover'], e, { + x: pos[0], + y: pos[1] + }); + } + + r.hoverData.last = near; + } + + if (down) { + if (isOverThresholdDrag) { + // then we can take action + if (cy.boxSelectionEnabled() && multSelKeyDown) { + // then selection overrides + if (down && down.grabbed()) { + freeDraggedElements(draggedElements); + down.emit('freeon'); + draggedElements.emit('free'); + + if (r.dragData.didDrag) { + down.emit('dragfreeon'); + draggedElements.emit('dragfree'); + } + } + + goIntoBoxMode(); + } else if (down && down.grabbed() && r.nodeIsDraggable(down)) { + // drag node + var justStartedDrag = !r.dragData.didDrag; + + if (justStartedDrag) { + r.redrawHint('eles', true); + } + + r.dragData.didDrag = true; // indicate that we actually did drag the node + // now, add the elements to the drag layer if not done already + + if (!r.hoverData.draggingEles) { + addNodesToDrag(draggedElements, { + inDragLayer: true + }); + } + + var totalShift = { + x: 0, + y: 0 + }; + + if (number$1(disp[0]) && number$1(disp[1])) { + totalShift.x += disp[0]; + totalShift.y += disp[1]; + + if (justStartedDrag) { + var dragDelta = r.hoverData.dragDelta; + + if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) { + totalShift.x += dragDelta[0]; + totalShift.y += dragDelta[1]; + } + } + } + + r.hoverData.draggingEles = true; + draggedElements.silentShift(totalShift).emit('position drag'); + r.redrawHint('drag', true); + r.redraw(); + } + } else { + // otherwise save drag delta for when we actually start dragging so the relative grab pos is constant + updateDragDelta(); + } + } // prevent the dragging from triggering text selection on the page + + + preventDefault = true; + } + + select[2] = pos[0]; + select[3] = pos[1]; + + if (preventDefault) { + if (e.stopPropagation) e.stopPropagation(); + if (e.preventDefault) e.preventDefault(); + return false; + } + }, false); + var clickTimeout, didDoubleClick, prevClickTimeStamp; + r.registerBinding(containerWindow, 'mouseup', function mouseupHandler(e) { + // eslint-disable-line no-undef + var capture = r.hoverData.capture; + + if (!capture) { + return; + } + + r.hoverData.capture = false; + var cy = r.cy; + var pos = r.projectIntoViewport(e.clientX, e.clientY); + var select = r.selection; + var near = r.findNearestElement(pos[0], pos[1], true, false); + var draggedElements = r.dragData.possibleDragElements; + var down = r.hoverData.down; + var multSelKeyDown = isMultSelKeyDown(e); + + if (r.data.bgActivePosistion) { + r.redrawHint('select', true); + r.redraw(); + } + + r.hoverData.tapholdCancelled = true; + r.data.bgActivePosistion = undefined; // not active bg now + + if (down) { + down.unactivate(); + } + + if (r.hoverData.which === 3) { + var cxtEvt = { + originalEvent: e, + type: 'cxttapend', + position: { + x: pos[0], + y: pos[1] + } + }; + + if (down) { + down.emit(cxtEvt); + } else { + cy.emit(cxtEvt); + } + + if (!r.hoverData.cxtDragged) { + var cxtTap = { + originalEvent: e, + type: 'cxttap', + position: { + x: pos[0], + y: pos[1] + } + }; + + if (down) { + down.emit(cxtTap); + } else { + cy.emit(cxtTap); + } + } + + r.hoverData.cxtDragged = false; + r.hoverData.which = null; + } else if (r.hoverData.which === 1) { + triggerEvents(near, ['mouseup', 'tapend', 'vmouseup'], e, { + x: pos[0], + y: pos[1] + }); + + if (!r.dragData.didDrag && // didn't move a node around + !r.hoverData.dragged && // didn't pan + !r.hoverData.selecting && // not box selection + !r.hoverData.isOverThresholdDrag // didn't move too much + ) { + triggerEvents(down, ["click", "tap", "vclick"], e, { + x: pos[0], + y: pos[1] + }); + didDoubleClick = false; + + if (e.timeStamp - prevClickTimeStamp <= cy.multiClickDebounceTime()) { + clickTimeout && clearTimeout(clickTimeout); + didDoubleClick = true; + prevClickTimeStamp = null; + triggerEvents(down, ["dblclick", "dbltap", "vdblclick"], e, { + x: pos[0], + y: pos[1] + }); + } else { + clickTimeout = setTimeout(function () { + if (didDoubleClick) return; + triggerEvents(down, ["oneclick", "onetap", "voneclick"], e, { + x: pos[0], + y: pos[1] + }); + }, cy.multiClickDebounceTime()); + prevClickTimeStamp = e.timeStamp; + } + } // Deselect all elements if nothing is currently under the mouse cursor and we aren't dragging something + + + if (down == null // not mousedown on node + && !r.dragData.didDrag // didn't move the node around + && !r.hoverData.selecting // not box selection + && !r.hoverData.dragged // didn't pan + && !isMultSelKeyDown(e)) { + cy.$(isSelected).unselect(['tapunselect']); + + if (draggedElements.length > 0) { + r.redrawHint('eles', true); + } + + r.dragData.possibleDragElements = draggedElements = cy.collection(); + } // Single selection + + + if (near == down && !r.dragData.didDrag && !r.hoverData.selecting) { + if (near != null && near._private.selectable) { + if (r.hoverData.dragging) ; else if (cy.selectionType() === 'additive' || multSelKeyDown) { + if (near.selected()) { + near.unselect(['tapunselect']); + } else { + near.select(['tapselect']); + } + } else { + if (!multSelKeyDown) { + cy.$(isSelected).unmerge(near).unselect(['tapunselect']); + near.select(['tapselect']); + } + } + + r.redrawHint('eles', true); + } + } + + if (r.hoverData.selecting) { + var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3])); + r.redrawHint('select', true); + + if (box.length > 0) { + r.redrawHint('eles', true); + } + + cy.emit({ + type: 'boxend', + originalEvent: e, + position: { + x: pos[0], + y: pos[1] + } + }); + + var eleWouldBeSelected = function eleWouldBeSelected(ele) { + return ele.selectable() && !ele.selected(); + }; + + if (cy.selectionType() === 'additive') { + box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect'); + } else { + if (!multSelKeyDown) { + cy.$(isSelected).unmerge(box).unselect(); + } + + box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect'); + } // always need redraw in case eles unselectable + + + r.redraw(); + } // Cancel drag pan + + + if (r.hoverData.dragging) { + r.hoverData.dragging = false; + r.redrawHint('select', true); + r.redrawHint('eles', true); + r.redraw(); + } + + if (!select[4]) { + r.redrawHint('drag', true); + r.redrawHint('eles', true); + var downWasGrabbed = down && down.grabbed(); + freeDraggedElements(draggedElements); + + if (downWasGrabbed) { + down.emit('freeon'); + draggedElements.emit('free'); + + if (r.dragData.didDrag) { + down.emit('dragfreeon'); + draggedElements.emit('dragfree'); + } + } + } + } // else not right mouse + + + select[4] = 0; + r.hoverData.down = null; + r.hoverData.cxtStarted = false; + r.hoverData.draggingEles = false; + r.hoverData.selecting = false; + r.hoverData.isOverThresholdDrag = false; + r.dragData.didDrag = false; + r.hoverData.dragged = false; + r.hoverData.dragDelta = []; + r.hoverData.mdownPos = null; + r.hoverData.mdownGPos = null; + }, false); + + var wheelHandler = function wheelHandler(e) { + if (r.scrollingPage) { + return; + } // while scrolling, ignore wheel-to-zoom + + + var cy = r.cy; + var zoom = cy.zoom(); + var pan = cy.pan(); + var pos = r.projectIntoViewport(e.clientX, e.clientY); + var rpos = [pos[0] * zoom + pan.x, pos[1] * zoom + pan.y]; + + if (r.hoverData.draggingEles || r.hoverData.dragging || r.hoverData.cxtStarted || inBoxSelection()) { + // if pan dragging or cxt dragging, wheel movements make no zoom + e.preventDefault(); + return; + } + + if (cy.panningEnabled() && cy.userPanningEnabled() && cy.zoomingEnabled() && cy.userZoomingEnabled()) { + e.preventDefault(); + r.data.wheelZooming = true; + clearTimeout(r.data.wheelTimeout); + r.data.wheelTimeout = setTimeout(function () { + r.data.wheelZooming = false; + r.redrawHint('eles', true); + r.redraw(); + }, 150); + var diff; + + if (e.deltaY != null) { + diff = e.deltaY / -250; + } else if (e.wheelDeltaY != null) { + diff = e.wheelDeltaY / 1000; + } else { + diff = e.wheelDelta / 1000; + } + + diff = diff * r.wheelSensitivity; + var needsWheelFix = e.deltaMode === 1; + + if (needsWheelFix) { + // fixes slow wheel events on ff/linux and ff/windows + diff *= 33; + } + + var newZoom = cy.zoom() * Math.pow(10, diff); + + if (e.type === 'gesturechange') { + newZoom = r.gestureStartZoom * e.scale; + } + + cy.zoom({ + level: newZoom, + renderedPosition: { + x: rpos[0], + y: rpos[1] + } + }); + cy.emit(e.type === 'gesturechange' ? 'pinchzoom' : 'scrollzoom'); + } + }; // Functions to help with whether mouse wheel should trigger zooming + // -- + + + r.registerBinding(r.container, 'wheel', wheelHandler, true); // disable nonstandard wheel events + // r.registerBinding(r.container, 'mousewheel', wheelHandler, true); + // r.registerBinding(r.container, 'DOMMouseScroll', wheelHandler, true); + // r.registerBinding(r.container, 'MozMousePixelScroll', wheelHandler, true); // older firefox + + r.registerBinding(containerWindow, 'scroll', function scrollHandler(e) { + // eslint-disable-line no-unused-vars + r.scrollingPage = true; + clearTimeout(r.scrollingPageTimeout); + r.scrollingPageTimeout = setTimeout(function () { + r.scrollingPage = false; + }, 250); + }, true); // desktop safari pinch to zoom start + + r.registerBinding(r.container, 'gesturestart', function gestureStartHandler(e) { + r.gestureStartZoom = r.cy.zoom(); + + if (!r.hasTouchStarted) { + // don't affect touch devices like iphone + e.preventDefault(); + } + }, true); + r.registerBinding(r.container, 'gesturechange', function (e) { + if (!r.hasTouchStarted) { + // don't affect touch devices like iphone + wheelHandler(e); + } + }, true); // Functions to help with handling mouseout/mouseover on the Cytoscape container + // Handle mouseout on Cytoscape container + + r.registerBinding(r.container, 'mouseout', function mouseOutHandler(e) { + var pos = r.projectIntoViewport(e.clientX, e.clientY); + r.cy.emit({ + originalEvent: e, + type: 'mouseout', + position: { + x: pos[0], + y: pos[1] + } + }); + }, false); + r.registerBinding(r.container, 'mouseover', function mouseOverHandler(e) { + var pos = r.projectIntoViewport(e.clientX, e.clientY); + r.cy.emit({ + originalEvent: e, + type: 'mouseover', + position: { + x: pos[0], + y: pos[1] + } + }); + }, false); + var f1x1, f1y1, f2x1, f2y1; // starting points for pinch-to-zoom + + var distance1, distance1Sq; // initial distance between finger 1 and finger 2 for pinch-to-zoom + + var center1, modelCenter1; // center point on start pinch to zoom + + var offsetLeft, offsetTop; + var containerWidth, containerHeight; + var twoFingersStartInside; + + var distance = function distance(x1, y1, x2, y2) { + return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); + }; + + var distanceSq = function distanceSq(x1, y1, x2, y2) { + return (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1); + }; + + var touchstartHandler; + r.registerBinding(r.container, 'touchstart', touchstartHandler = function touchstartHandler(e) { + r.hasTouchStarted = true; + + if (!eventInContainer(e)) { + return; + } + + blurActiveDomElement(); + r.touchData.capture = true; + r.data.bgActivePosistion = undefined; + var cy = r.cy; + var now = r.touchData.now; + var earlier = r.touchData.earlier; + + if (e.touches[0]) { + var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); + now[0] = pos[0]; + now[1] = pos[1]; + } + + if (e.touches[1]) { + var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY); + now[2] = pos[0]; + now[3] = pos[1]; + } + + if (e.touches[2]) { + var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY); + now[4] = pos[0]; + now[5] = pos[1]; + } // record starting points for pinch-to-zoom + + + if (e.touches[1]) { + r.touchData.singleTouchMoved = true; + freeDraggedElements(r.dragData.touchDragEles); + var offsets = r.findContainerClientCoords(); + offsetLeft = offsets[0]; + offsetTop = offsets[1]; + containerWidth = offsets[2]; + containerHeight = offsets[3]; + f1x1 = e.touches[0].clientX - offsetLeft; + f1y1 = e.touches[0].clientY - offsetTop; + f2x1 = e.touches[1].clientX - offsetLeft; + f2y1 = e.touches[1].clientY - offsetTop; + twoFingersStartInside = 0 <= f1x1 && f1x1 <= containerWidth && 0 <= f2x1 && f2x1 <= containerWidth && 0 <= f1y1 && f1y1 <= containerHeight && 0 <= f2y1 && f2y1 <= containerHeight; + var pan = cy.pan(); + var zoom = cy.zoom(); + distance1 = distance(f1x1, f1y1, f2x1, f2y1); + distance1Sq = distanceSq(f1x1, f1y1, f2x1, f2y1); + center1 = [(f1x1 + f2x1) / 2, (f1y1 + f2y1) / 2]; + modelCenter1 = [(center1[0] - pan.x) / zoom, (center1[1] - pan.y) / zoom]; // consider context tap + + var cxtDistThreshold = 200; + var cxtDistThresholdSq = cxtDistThreshold * cxtDistThreshold; + + if (distance1Sq < cxtDistThresholdSq && !e.touches[2]) { + var near1 = r.findNearestElement(now[0], now[1], true, true); + var near2 = r.findNearestElement(now[2], now[3], true, true); + + if (near1 && near1.isNode()) { + near1.activate().emit({ + originalEvent: e, + type: 'cxttapstart', + position: { + x: now[0], + y: now[1] + } + }); + r.touchData.start = near1; + } else if (near2 && near2.isNode()) { + near2.activate().emit({ + originalEvent: e, + type: 'cxttapstart', + position: { + x: now[0], + y: now[1] + } + }); + r.touchData.start = near2; + } else { + cy.emit({ + originalEvent: e, + type: 'cxttapstart', + position: { + x: now[0], + y: now[1] + } + }); + } + + if (r.touchData.start) { + r.touchData.start._private.grabbed = false; + } + + r.touchData.cxt = true; + r.touchData.cxtDragged = false; + r.data.bgActivePosistion = undefined; + r.redraw(); + return; + } + } + + if (e.touches[2]) { + // ignore + // safari on ios pans the page otherwise (normally you should be able to preventdefault on touchmove...) + if (cy.boxSelectionEnabled()) { + e.preventDefault(); + } + } else if (e.touches[1]) ; else if (e.touches[0]) { + var nears = r.findNearestElements(now[0], now[1], true, true); + var near = nears[0]; + + if (near != null) { + near.activate(); + r.touchData.start = near; + r.touchData.starts = nears; + + if (r.nodeIsGrabbable(near)) { + var draggedEles = r.dragData.touchDragEles = cy.collection(); + var selectedNodes = null; + r.redrawHint('eles', true); + r.redrawHint('drag', true); + + if (near.selected()) { + // reset drag elements, since near will be added again + selectedNodes = cy.$(function (ele) { + return ele.selected() && r.nodeIsGrabbable(ele); + }); + addNodesToDrag(selectedNodes, { + addToList: draggedEles + }); + } else { + addNodeToDrag(near, { + addToList: draggedEles + }); + } + + setGrabTarget(near); + + var makeEvent = function makeEvent(type) { + return { + originalEvent: e, + type: type, + position: { + x: now[0], + y: now[1] + } + }; + }; + + near.emit(makeEvent('grabon')); + + if (selectedNodes) { + selectedNodes.forEach(function (n) { + n.emit(makeEvent('grab')); + }); + } else { + near.emit(makeEvent('grab')); + } + } + } + + triggerEvents(near, ['touchstart', 'tapstart', 'vmousedown'], e, { + x: now[0], + y: now[1] + }); + + if (near == null) { + r.data.bgActivePosistion = { + x: pos[0], + y: pos[1] + }; + r.redrawHint('select', true); + r.redraw(); + } // Tap, taphold + // ----- + + + r.touchData.singleTouchMoved = false; + r.touchData.singleTouchStartTime = +new Date(); + clearTimeout(r.touchData.tapholdTimeout); + r.touchData.tapholdTimeout = setTimeout(function () { + if (r.touchData.singleTouchMoved === false && !r.pinching // if pinching, then taphold unselect shouldn't take effect + && !r.touchData.selecting // box selection shouldn't allow taphold through + ) { + triggerEvents(r.touchData.start, ['taphold'], e, { + x: now[0], + y: now[1] + }); + } + }, r.tapholdDuration); + } + + if (e.touches.length >= 1) { + var sPos = r.touchData.startPosition = [null, null, null, null, null, null]; + + for (var i = 0; i < now.length; i++) { + sPos[i] = earlier[i] = now[i]; + } + + var touch0 = e.touches[0]; + r.touchData.startGPosition = [touch0.clientX, touch0.clientY]; + } + }, false); + var touchmoveHandler; + r.registerBinding(window, 'touchmove', touchmoveHandler = function touchmoveHandler(e) { + // eslint-disable-line no-undef + var capture = r.touchData.capture; + + if (!capture && !eventInContainer(e)) { + return; + } + + var select = r.selection; + var cy = r.cy; + var now = r.touchData.now; + var earlier = r.touchData.earlier; + var zoom = cy.zoom(); + + if (e.touches[0]) { + var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); + now[0] = pos[0]; + now[1] = pos[1]; + } + + if (e.touches[1]) { + var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY); + now[2] = pos[0]; + now[3] = pos[1]; + } + + if (e.touches[2]) { + var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY); + now[4] = pos[0]; + now[5] = pos[1]; + } + + var startGPos = r.touchData.startGPosition; + var isOverThresholdDrag; + + if (capture && e.touches[0] && startGPos) { + var disp = []; + + for (var j = 0; j < now.length; j++) { + disp[j] = now[j] - earlier[j]; + } + + var dx = e.touches[0].clientX - startGPos[0]; + var dx2 = dx * dx; + var dy = e.touches[0].clientY - startGPos[1]; + var dy2 = dy * dy; + var dist2 = dx2 + dy2; + isOverThresholdDrag = dist2 >= r.touchTapThreshold2; + } // context swipe cancelling + + + if (capture && r.touchData.cxt) { + e.preventDefault(); + var f1x2 = e.touches[0].clientX - offsetLeft, + f1y2 = e.touches[0].clientY - offsetTop; + var f2x2 = e.touches[1].clientX - offsetLeft, + f2y2 = e.touches[1].clientY - offsetTop; // var distance2 = distance( f1x2, f1y2, f2x2, f2y2 ); + + var distance2Sq = distanceSq(f1x2, f1y2, f2x2, f2y2); + var factorSq = distance2Sq / distance1Sq; + var distThreshold = 150; + var distThresholdSq = distThreshold * distThreshold; + var factorThreshold = 1.5; + var factorThresholdSq = factorThreshold * factorThreshold; // cancel ctx gestures if the distance b/t the fingers increases + + if (factorSq >= factorThresholdSq || distance2Sq >= distThresholdSq) { + r.touchData.cxt = false; + r.data.bgActivePosistion = undefined; + r.redrawHint('select', true); + var cxtEvt = { + originalEvent: e, + type: 'cxttapend', + position: { + x: now[0], + y: now[1] + } + }; + + if (r.touchData.start) { + r.touchData.start.unactivate().emit(cxtEvt); + r.touchData.start = null; + } else { + cy.emit(cxtEvt); + } + } + } // context swipe + + + if (capture && r.touchData.cxt) { + var cxtEvt = { + originalEvent: e, + type: 'cxtdrag', + position: { + x: now[0], + y: now[1] + } + }; + r.data.bgActivePosistion = undefined; + r.redrawHint('select', true); + + if (r.touchData.start) { + r.touchData.start.emit(cxtEvt); + } else { + cy.emit(cxtEvt); + } + + if (r.touchData.start) { + r.touchData.start._private.grabbed = false; + } + + r.touchData.cxtDragged = true; + var near = r.findNearestElement(now[0], now[1], true, true); + + if (!r.touchData.cxtOver || near !== r.touchData.cxtOver) { + if (r.touchData.cxtOver) { + r.touchData.cxtOver.emit({ + originalEvent: e, + type: 'cxtdragout', + position: { + x: now[0], + y: now[1] + } + }); + } + + r.touchData.cxtOver = near; + + if (near) { + near.emit({ + originalEvent: e, + type: 'cxtdragover', + position: { + x: now[0], + y: now[1] + } + }); + } + } // box selection + + } else if (capture && e.touches[2] && cy.boxSelectionEnabled()) { + e.preventDefault(); + r.data.bgActivePosistion = undefined; + this.lastThreeTouch = +new Date(); + + if (!r.touchData.selecting) { + cy.emit({ + originalEvent: e, + type: 'boxstart', + position: { + x: now[0], + y: now[1] + } + }); + } + + r.touchData.selecting = true; + r.touchData.didSelect = true; + select[4] = 1; + + if (!select || select.length === 0 || select[0] === undefined) { + select[0] = (now[0] + now[2] + now[4]) / 3; + select[1] = (now[1] + now[3] + now[5]) / 3; + select[2] = (now[0] + now[2] + now[4]) / 3 + 1; + select[3] = (now[1] + now[3] + now[5]) / 3 + 1; + } else { + select[2] = (now[0] + now[2] + now[4]) / 3; + select[3] = (now[1] + now[3] + now[5]) / 3; + } + + r.redrawHint('select', true); + r.redraw(); // pinch to zoom + } else if (capture && e.touches[1] && !r.touchData.didSelect // don't allow box selection to degrade to pinch-to-zoom + && cy.zoomingEnabled() && cy.panningEnabled() && cy.userZoomingEnabled() && cy.userPanningEnabled()) { + // two fingers => pinch to zoom + e.preventDefault(); + r.data.bgActivePosistion = undefined; + r.redrawHint('select', true); + var draggedEles = r.dragData.touchDragEles; + + if (draggedEles) { + r.redrawHint('drag', true); + + for (var i = 0; i < draggedEles.length; i++) { + var de_p = draggedEles[i]._private; + de_p.grabbed = false; + de_p.rscratch.inDragLayer = false; + } + } + + var _start = r.touchData.start; // (x2, y2) for fingers 1 and 2 + + var f1x2 = e.touches[0].clientX - offsetLeft, + f1y2 = e.touches[0].clientY - offsetTop; + var f2x2 = e.touches[1].clientX - offsetLeft, + f2y2 = e.touches[1].clientY - offsetTop; + var distance2 = distance(f1x2, f1y2, f2x2, f2y2); // var distance2Sq = distanceSq( f1x2, f1y2, f2x2, f2y2 ); + // var factor = Math.sqrt( distance2Sq ) / Math.sqrt( distance1Sq ); + + var factor = distance2 / distance1; + + if (twoFingersStartInside) { + // delta finger1 + var df1x = f1x2 - f1x1; + var df1y = f1y2 - f1y1; // delta finger 2 + + var df2x = f2x2 - f2x1; + var df2y = f2y2 - f2y1; // translation is the normalised vector of the two fingers movement + // i.e. so pinching cancels out and moving together pans + + var tx = (df1x + df2x) / 2; + var ty = (df1y + df2y) / 2; // now calculate the zoom + + var zoom1 = cy.zoom(); + var zoom2 = zoom1 * factor; + var pan1 = cy.pan(); // the model center point converted to the current rendered pos + + var ctrx = modelCenter1[0] * zoom1 + pan1.x; + var ctry = modelCenter1[1] * zoom1 + pan1.y; + var pan2 = { + x: -zoom2 / zoom1 * (ctrx - pan1.x - tx) + ctrx, + y: -zoom2 / zoom1 * (ctry - pan1.y - ty) + ctry + }; // remove dragged eles + + if (_start && _start.active()) { + var draggedEles = r.dragData.touchDragEles; + freeDraggedElements(draggedEles); + r.redrawHint('drag', true); + r.redrawHint('eles', true); + + _start.unactivate().emit('freeon'); + + draggedEles.emit('free'); + + if (r.dragData.didDrag) { + _start.emit('dragfreeon'); + + draggedEles.emit('dragfree'); + } + } + + cy.viewport({ + zoom: zoom2, + pan: pan2, + cancelOnFailedZoom: true + }); + cy.emit('pinchzoom'); + distance1 = distance2; + f1x1 = f1x2; + f1y1 = f1y2; + f2x1 = f2x2; + f2y1 = f2y2; + r.pinching = true; + } // Re-project + + + if (e.touches[0]) { + var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); + now[0] = pos[0]; + now[1] = pos[1]; + } + + if (e.touches[1]) { + var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY); + now[2] = pos[0]; + now[3] = pos[1]; + } + + if (e.touches[2]) { + var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY); + now[4] = pos[0]; + now[5] = pos[1]; + } + } else if (e.touches[0] && !r.touchData.didSelect // don't allow box selection to degrade to single finger events like panning + ) { + var start = r.touchData.start; + var last = r.touchData.last; + var near; + + if (!r.hoverData.draggingEles && !r.swipePanning) { + near = r.findNearestElement(now[0], now[1], true, true); + } + + if (capture && start != null) { + e.preventDefault(); + } // dragging nodes + + + if (capture && start != null && r.nodeIsDraggable(start)) { + if (isOverThresholdDrag) { + // then dragging can happen + var draggedEles = r.dragData.touchDragEles; + var justStartedDrag = !r.dragData.didDrag; + + if (justStartedDrag) { + addNodesToDrag(draggedEles, { + inDragLayer: true + }); + } + + r.dragData.didDrag = true; + var totalShift = { + x: 0, + y: 0 + }; + + if (number$1(disp[0]) && number$1(disp[1])) { + totalShift.x += disp[0]; + totalShift.y += disp[1]; + + if (justStartedDrag) { + r.redrawHint('eles', true); + var dragDelta = r.touchData.dragDelta; + + if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) { + totalShift.x += dragDelta[0]; + totalShift.y += dragDelta[1]; + } + } + } + + r.hoverData.draggingEles = true; + draggedEles.silentShift(totalShift).emit('position drag'); + r.redrawHint('drag', true); + + if (r.touchData.startPosition[0] == earlier[0] && r.touchData.startPosition[1] == earlier[1]) { + r.redrawHint('eles', true); + } + + r.redraw(); + } else { + // otherwise keep track of drag delta for later + var dragDelta = r.touchData.dragDelta = r.touchData.dragDelta || []; + + if (dragDelta.length === 0) { + dragDelta.push(disp[0]); + dragDelta.push(disp[1]); + } else { + dragDelta[0] += disp[0]; + dragDelta[1] += disp[1]; + } + } + } // touchmove + + + { + triggerEvents(start || near, ['touchmove', 'tapdrag', 'vmousemove'], e, { + x: now[0], + y: now[1] + }); + + if ((!start || !start.grabbed()) && near != last) { + if (last) { + last.emit({ + originalEvent: e, + type: 'tapdragout', + position: { + x: now[0], + y: now[1] + } + }); + } + + if (near) { + near.emit({ + originalEvent: e, + type: 'tapdragover', + position: { + x: now[0], + y: now[1] + } + }); + } + } + + r.touchData.last = near; + } // check to cancel taphold + + if (capture) { + for (var i = 0; i < now.length; i++) { + if (now[i] && r.touchData.startPosition[i] && isOverThresholdDrag) { + r.touchData.singleTouchMoved = true; + } + } + } // panning + + + if (capture && (start == null || start.pannable()) && cy.panningEnabled() && cy.userPanningEnabled()) { + var allowPassthrough = allowPanningPassthrough(start, r.touchData.starts); + + if (allowPassthrough) { + e.preventDefault(); + + if (!r.data.bgActivePosistion) { + r.data.bgActivePosistion = array2point(r.touchData.startPosition); + } + + if (r.swipePanning) { + cy.panBy({ + x: disp[0] * zoom, + y: disp[1] * zoom + }); + cy.emit('dragpan'); + } else if (isOverThresholdDrag) { + r.swipePanning = true; + cy.panBy({ + x: dx * zoom, + y: dy * zoom + }); + cy.emit('dragpan'); + + if (start) { + start.unactivate(); + r.redrawHint('select', true); + r.touchData.start = null; + } + } + } // Re-project + + + var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); + now[0] = pos[0]; + now[1] = pos[1]; + } + } + + for (var j = 0; j < now.length; j++) { + earlier[j] = now[j]; + } // the active bg indicator should be removed when making a swipe that is neither for dragging nodes or panning + + + if (capture && e.touches.length > 0 && !r.hoverData.draggingEles && !r.swipePanning && r.data.bgActivePosistion != null) { + r.data.bgActivePosistion = undefined; + r.redrawHint('select', true); + r.redraw(); + } + }, false); + var touchcancelHandler; + r.registerBinding(containerWindow, 'touchcancel', touchcancelHandler = function touchcancelHandler(e) { + // eslint-disable-line no-unused-vars + var start = r.touchData.start; + r.touchData.capture = false; + + if (start) { + start.unactivate(); + } + }); + var touchendHandler, didDoubleTouch, touchTimeout, prevTouchTimeStamp; + r.registerBinding(containerWindow, 'touchend', touchendHandler = function touchendHandler(e) { + // eslint-disable-line no-unused-vars + var start = r.touchData.start; + var capture = r.touchData.capture; + + if (capture) { + if (e.touches.length === 0) { + r.touchData.capture = false; + } + + e.preventDefault(); + } else { + return; + } + + var select = r.selection; + r.swipePanning = false; + r.hoverData.draggingEles = false; + var cy = r.cy; + var zoom = cy.zoom(); + var now = r.touchData.now; + var earlier = r.touchData.earlier; + + if (e.touches[0]) { + var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); + now[0] = pos[0]; + now[1] = pos[1]; + } + + if (e.touches[1]) { + var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY); + now[2] = pos[0]; + now[3] = pos[1]; + } + + if (e.touches[2]) { + var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY); + now[4] = pos[0]; + now[5] = pos[1]; + } + + if (start) { + start.unactivate(); + } + + var ctxTapend; + + if (r.touchData.cxt) { + ctxTapend = { + originalEvent: e, + type: 'cxttapend', + position: { + x: now[0], + y: now[1] + } + }; + + if (start) { + start.emit(ctxTapend); + } else { + cy.emit(ctxTapend); + } + + if (!r.touchData.cxtDragged) { + var ctxTap = { + originalEvent: e, + type: 'cxttap', + position: { + x: now[0], + y: now[1] + } + }; + + if (start) { + start.emit(ctxTap); + } else { + cy.emit(ctxTap); + } + } + + if (r.touchData.start) { + r.touchData.start._private.grabbed = false; + } + + r.touchData.cxt = false; + r.touchData.start = null; + r.redraw(); + return; + } // no more box selection if we don't have three fingers + + + if (!e.touches[2] && cy.boxSelectionEnabled() && r.touchData.selecting) { + r.touchData.selecting = false; + var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3])); + select[0] = undefined; + select[1] = undefined; + select[2] = undefined; + select[3] = undefined; + select[4] = 0; + r.redrawHint('select', true); + cy.emit({ + type: 'boxend', + originalEvent: e, + position: { + x: now[0], + y: now[1] + } + }); + + var eleWouldBeSelected = function eleWouldBeSelected(ele) { + return ele.selectable() && !ele.selected(); + }; + + box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect'); + + if (box.nonempty()) { + r.redrawHint('eles', true); + } + + r.redraw(); + } + + if (start != null) { + start.unactivate(); + } + + if (e.touches[2]) { + r.data.bgActivePosistion = undefined; + r.redrawHint('select', true); + } else if (e.touches[1]) ; else if (e.touches[0]) ; else if (!e.touches[0]) { + r.data.bgActivePosistion = undefined; + r.redrawHint('select', true); + var draggedEles = r.dragData.touchDragEles; + + if (start != null) { + var startWasGrabbed = start._private.grabbed; + freeDraggedElements(draggedEles); + r.redrawHint('drag', true); + r.redrawHint('eles', true); + + if (startWasGrabbed) { + start.emit('freeon'); + draggedEles.emit('free'); + + if (r.dragData.didDrag) { + start.emit('dragfreeon'); + draggedEles.emit('dragfree'); + } + } + + triggerEvents(start, ['touchend', 'tapend', 'vmouseup', 'tapdragout'], e, { + x: now[0], + y: now[1] + }); + start.unactivate(); + r.touchData.start = null; + } else { + var near = r.findNearestElement(now[0], now[1], true, true); + triggerEvents(near, ['touchend', 'tapend', 'vmouseup', 'tapdragout'], e, { + x: now[0], + y: now[1] + }); + } + + var dx = r.touchData.startPosition[0] - now[0]; + var dx2 = dx * dx; + var dy = r.touchData.startPosition[1] - now[1]; + var dy2 = dy * dy; + var dist2 = dx2 + dy2; + var rdist2 = dist2 * zoom * zoom; // Tap event, roughly same as mouse click event for touch + + if (!r.touchData.singleTouchMoved) { + if (!start) { + cy.$(':selected').unselect(['tapunselect']); + } + + triggerEvents(start, ['tap', 'vclick'], e, { + x: now[0], + y: now[1] + }); + didDoubleTouch = false; + + if (e.timeStamp - prevTouchTimeStamp <= cy.multiClickDebounceTime()) { + touchTimeout && clearTimeout(touchTimeout); + didDoubleTouch = true; + prevTouchTimeStamp = null; + triggerEvents(start, ['dbltap', 'vdblclick'], e, { + x: now[0], + y: now[1] + }); + } else { + touchTimeout = setTimeout(function () { + if (didDoubleTouch) return; + triggerEvents(start, ['onetap', 'voneclick'], e, { + x: now[0], + y: now[1] + }); + }, cy.multiClickDebounceTime()); + prevTouchTimeStamp = e.timeStamp; + } + } // Prepare to select the currently touched node, only if it hasn't been dragged past a certain distance + + + if (start != null && !r.dragData.didDrag // didn't drag nodes around + && start._private.selectable && rdist2 < r.touchTapThreshold2 && !r.pinching // pinch to zoom should not affect selection + ) { + if (cy.selectionType() === 'single') { + cy.$(isSelected).unmerge(start).unselect(['tapunselect']); + start.select(['tapselect']); + } else { + if (start.selected()) { + start.unselect(['tapunselect']); + } else { + start.select(['tapselect']); + } + } + + r.redrawHint('eles', true); + } + + r.touchData.singleTouchMoved = true; + } + + for (var j = 0; j < now.length; j++) { + earlier[j] = now[j]; + } + + r.dragData.didDrag = false; // reset for next touchstart + + if (e.touches.length === 0) { + r.touchData.dragDelta = []; + r.touchData.startPosition = [null, null, null, null, null, null]; + r.touchData.startGPosition = null; + r.touchData.didSelect = false; + } + + if (e.touches.length < 2) { + if (e.touches.length === 1) { + // the old start global pos'n may not be the same finger that remains + r.touchData.startGPosition = [e.touches[0].clientX, e.touches[0].clientY]; + } + + r.pinching = false; + r.redrawHint('eles', true); + r.redraw(); + } //r.redraw(); + + }, false); // fallback compatibility layer for ms pointer events + + if (typeof TouchEvent === 'undefined') { + var pointers = []; + + var makeTouch = function makeTouch(e) { + return { + clientX: e.clientX, + clientY: e.clientY, + force: 1, + identifier: e.pointerId, + pageX: e.pageX, + pageY: e.pageY, + radiusX: e.width / 2, + radiusY: e.height / 2, + screenX: e.screenX, + screenY: e.screenY, + target: e.target + }; + }; + + var makePointer = function makePointer(e) { + return { + event: e, + touch: makeTouch(e) + }; + }; + + var addPointer = function addPointer(e) { + pointers.push(makePointer(e)); + }; + + var removePointer = function removePointer(e) { + for (var i = 0; i < pointers.length; i++) { + var p = pointers[i]; + + if (p.event.pointerId === e.pointerId) { + pointers.splice(i, 1); + return; + } + } + }; + + var updatePointer = function updatePointer(e) { + var p = pointers.filter(function (p) { + return p.event.pointerId === e.pointerId; + })[0]; + p.event = e; + p.touch = makeTouch(e); + }; + + var addTouchesToEvent = function addTouchesToEvent(e) { + e.touches = pointers.map(function (p) { + return p.touch; + }); + }; + + var pointerIsMouse = function pointerIsMouse(e) { + return e.pointerType === 'mouse' || e.pointerType === 4; + }; + + r.registerBinding(r.container, 'pointerdown', function (e) { + if (pointerIsMouse(e)) { + return; + } // mouse already handled + + + e.preventDefault(); + addPointer(e); + addTouchesToEvent(e); + touchstartHandler(e); + }); + r.registerBinding(r.container, 'pointerup', function (e) { + if (pointerIsMouse(e)) { + return; + } // mouse already handled + + + removePointer(e); + addTouchesToEvent(e); + touchendHandler(e); + }); + r.registerBinding(r.container, 'pointercancel', function (e) { + if (pointerIsMouse(e)) { + return; + } // mouse already handled + + + removePointer(e); + addTouchesToEvent(e); + touchcancelHandler(e); + }); + r.registerBinding(r.container, 'pointermove', function (e) { + if (pointerIsMouse(e)) { + return; + } // mouse already handled + + + e.preventDefault(); + updatePointer(e); + addTouchesToEvent(e); + touchmoveHandler(e); + }); + } + }; + + var BRp$2 = {}; + + BRp$2.generatePolygon = function (name, points) { + return this.nodeShapes[name] = { + renderer: this, + name: name, + points: points, + draw: function draw(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl('polygon', context, centerX, centerY, width, height, this.points); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + return polygonIntersectLine(x, y, this.points, nodeX, nodeY, width / 2, height / 2, padding); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + return pointInsidePolygon(x, y, this.points, centerX, centerY, width, height, [0, -1], padding); + } + }; + }; + + BRp$2.generateEllipse = function () { + return this.nodeShapes['ellipse'] = { + renderer: this, + name: 'ellipse', + draw: function draw(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + return intersectLineEllipse(x, y, nodeX, nodeY, width / 2 + padding, height / 2 + padding); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + return checkInEllipse(x, y, width, height, centerX, centerY, padding); + } + }; + }; + + BRp$2.generateRoundPolygon = function (name, points) { + // Pre-compute control points + // Since these points depend on the radius length (which in turns depend on the width/height of the node) we will only pre-compute + // the unit vectors. + // For simplicity the layout will be: + // [ p0, UnitVectorP0P1, p1, UniVectorP1P2, ..., pn, UnitVectorPnP0 ] + var allPoints = new Array(points.length * 2); + + for (var i = 0; i < points.length / 2; i++) { + var sourceIndex = i * 2; + var destIndex = void 0; + + if (i < points.length / 2 - 1) { + destIndex = (i + 1) * 2; + } else { + destIndex = 0; + } + + allPoints[i * 4] = points[sourceIndex]; + allPoints[i * 4 + 1] = points[sourceIndex + 1]; + var xDest = points[destIndex] - points[sourceIndex]; + var yDest = points[destIndex + 1] - points[sourceIndex + 1]; + var norm = Math.sqrt(xDest * xDest + yDest * yDest); + allPoints[i * 4 + 2] = xDest / norm; + allPoints[i * 4 + 3] = yDest / norm; + } + + return this.nodeShapes[name] = { + renderer: this, + name: name, + points: allPoints, + draw: function draw(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl('round-polygon', context, centerX, centerY, width, height, this.points); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + return roundPolygonIntersectLine(x, y, this.points, nodeX, nodeY, width, height); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + return pointInsideRoundPolygon(x, y, this.points, centerX, centerY, width, height); + } + }; + }; + + BRp$2.generateRoundRectangle = function () { + return this.nodeShapes['round-rectangle'] = this.nodeShapes['roundrectangle'] = { + renderer: this, + name: 'round-rectangle', + points: generateUnitNgonPointsFitToSquare(4, 0), + draw: function draw(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + var cornerRadius = getRoundRectangleRadius(width, height); + var diam = cornerRadius * 2; // Check hBox + + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) { + return true; + } // Check vBox + + + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) { + return true; + } // Check top left quarter circle + + + if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY - height / 2 + cornerRadius, padding)) { + return true; + } // Check top right quarter circle + + + if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY - height / 2 + cornerRadius, padding)) { + return true; + } // Check bottom right quarter circle + + + if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) { + return true; + } // Check bottom left quarter circle + + + if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) { + return true; + } + + return false; + } + }; + }; + + BRp$2.generateCutRectangle = function () { + return this.nodeShapes['cut-rectangle'] = this.nodeShapes['cutrectangle'] = { + renderer: this, + name: 'cut-rectangle', + cornerLength: getCutRectangleCornerLength(), + points: generateUnitNgonPointsFitToSquare(4, 0), + draw: function draw(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); + }, + generateCutTrianglePts: function generateCutTrianglePts(width, height, centerX, centerY) { + var cl = this.cornerLength; + var hh = height / 2; + var hw = width / 2; + var xBegin = centerX - hw; + var xEnd = centerX + hw; + var yBegin = centerY - hh; + var yEnd = centerY + hh; // points are in clockwise order, inner (imaginary) triangle pt on [4, 5] + + return { + topLeft: [xBegin, yBegin + cl, xBegin + cl, yBegin, xBegin + cl, yBegin + cl], + topRight: [xEnd - cl, yBegin, xEnd, yBegin + cl, xEnd - cl, yBegin + cl], + bottomRight: [xEnd, yEnd - cl, xEnd - cl, yEnd, xEnd - cl, yEnd - cl], + bottomLeft: [xBegin + cl, yEnd, xBegin, yEnd - cl, xBegin + cl, yEnd - cl] + }; + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + var cPts = this.generateCutTrianglePts(width + 2 * padding, height + 2 * padding, nodeX, nodeY); + var pts = [].concat.apply([], [cPts.topLeft.splice(0, 4), cPts.topRight.splice(0, 4), cPts.bottomRight.splice(0, 4), cPts.bottomLeft.splice(0, 4)]); + return polygonIntersectLine(x, y, pts, nodeX, nodeY); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + // Check hBox + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * this.cornerLength, [0, -1], padding)) { + return true; + } // Check vBox + + + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * this.cornerLength, height, [0, -1], padding)) { + return true; + } + + var cutTrianglePts = this.generateCutTrianglePts(width, height, centerX, centerY); + return pointInsidePolygonPoints(x, y, cutTrianglePts.topLeft) || pointInsidePolygonPoints(x, y, cutTrianglePts.topRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomLeft); + } + }; + }; + + BRp$2.generateBarrel = function () { + return this.nodeShapes['barrel'] = { + renderer: this, + name: 'barrel', + points: generateUnitNgonPointsFitToSquare(4, 0), + draw: function draw(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + // use two fixed t values for the bezier curve approximation + var t0 = 0.15; + var t1 = 0.5; + var t2 = 0.85; + var bPts = this.generateBarrelBezierPts(width + 2 * padding, height + 2 * padding, nodeX, nodeY); + + var approximateBarrelCurvePts = function approximateBarrelCurvePts(pts) { + // approximate curve pts based on the two t values + var m0 = qbezierPtAt({ + x: pts[0], + y: pts[1] + }, { + x: pts[2], + y: pts[3] + }, { + x: pts[4], + y: pts[5] + }, t0); + var m1 = qbezierPtAt({ + x: pts[0], + y: pts[1] + }, { + x: pts[2], + y: pts[3] + }, { + x: pts[4], + y: pts[5] + }, t1); + var m2 = qbezierPtAt({ + x: pts[0], + y: pts[1] + }, { + x: pts[2], + y: pts[3] + }, { + x: pts[4], + y: pts[5] + }, t2); + return [pts[0], pts[1], m0.x, m0.y, m1.x, m1.y, m2.x, m2.y, pts[4], pts[5]]; + }; + + var pts = [].concat(approximateBarrelCurvePts(bPts.topLeft), approximateBarrelCurvePts(bPts.topRight), approximateBarrelCurvePts(bPts.bottomRight), approximateBarrelCurvePts(bPts.bottomLeft)); + return polygonIntersectLine(x, y, pts, nodeX, nodeY); + }, + generateBarrelBezierPts: function generateBarrelBezierPts(width, height, centerX, centerY) { + var hh = height / 2; + var hw = width / 2; + var xBegin = centerX - hw; + var xEnd = centerX + hw; + var yBegin = centerY - hh; + var yEnd = centerY + hh; + var curveConstants = getBarrelCurveConstants(width, height); + var hOffset = curveConstants.heightOffset; + var wOffset = curveConstants.widthOffset; + var ctrlPtXOffset = curveConstants.ctrlPtOffsetPct * width; // points are in clockwise order, inner (imaginary) control pt on [4, 5] + + var pts = { + topLeft: [xBegin, yBegin + hOffset, xBegin + ctrlPtXOffset, yBegin, xBegin + wOffset, yBegin], + topRight: [xEnd - wOffset, yBegin, xEnd - ctrlPtXOffset, yBegin, xEnd, yBegin + hOffset], + bottomRight: [xEnd, yEnd - hOffset, xEnd - ctrlPtXOffset, yEnd, xEnd - wOffset, yEnd], + bottomLeft: [xBegin + wOffset, yEnd, xBegin + ctrlPtXOffset, yEnd, xBegin, yEnd - hOffset] + }; + pts.topLeft.isTop = true; + pts.topRight.isTop = true; + pts.bottomLeft.isBottom = true; + pts.bottomRight.isBottom = true; + return pts; + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + var curveConstants = getBarrelCurveConstants(width, height); + var hOffset = curveConstants.heightOffset; + var wOffset = curveConstants.widthOffset; // Check hBox + + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * hOffset, [0, -1], padding)) { + return true; + } // Check vBox + + + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * wOffset, height, [0, -1], padding)) { + return true; + } + + var barrelCurvePts = this.generateBarrelBezierPts(width, height, centerX, centerY); + + var getCurveT = function getCurveT(x, y, curvePts) { + var x0 = curvePts[4]; + var x1 = curvePts[2]; + var x2 = curvePts[0]; + var y0 = curvePts[5]; // var y1 = curvePts[ 3 ]; + + var y2 = curvePts[1]; + var xMin = Math.min(x0, x2); + var xMax = Math.max(x0, x2); + var yMin = Math.min(y0, y2); + var yMax = Math.max(y0, y2); + + if (xMin <= x && x <= xMax && yMin <= y && y <= yMax) { + var coeff = bezierPtsToQuadCoeff(x0, x1, x2); + var roots = solveQuadratic(coeff[0], coeff[1], coeff[2], x); + var validRoots = roots.filter(function (r) { + return 0 <= r && r <= 1; + }); + + if (validRoots.length > 0) { + return validRoots[0]; + } + } + + return null; + }; + + var curveRegions = Object.keys(barrelCurvePts); + + for (var i = 0; i < curveRegions.length; i++) { + var corner = curveRegions[i]; + var cornerPts = barrelCurvePts[corner]; + var t = getCurveT(x, y, cornerPts); + + if (t == null) { + continue; + } + + var y0 = cornerPts[5]; + var y1 = cornerPts[3]; + var y2 = cornerPts[1]; + var bezY = qbezierAt(y0, y1, y2, t); + + if (cornerPts.isTop && bezY <= y) { + return true; + } + + if (cornerPts.isBottom && y <= bezY) { + return true; + } + } + + return false; + } + }; + }; + + BRp$2.generateBottomRoundrectangle = function () { + return this.nodeShapes['bottom-round-rectangle'] = this.nodeShapes['bottomroundrectangle'] = { + renderer: this, + name: 'bottom-round-rectangle', + points: generateUnitNgonPointsFitToSquare(4, 0), + draw: function draw(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + var topStartX = nodeX - (width / 2 + padding); + var topStartY = nodeY - (height / 2 + padding); + var topEndY = topStartY; + var topEndX = nodeX + (width / 2 + padding); + var topIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false); + + if (topIntersections.length > 0) { + return topIntersections; + } + + return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + var cornerRadius = getRoundRectangleRadius(width, height); + var diam = 2 * cornerRadius; // Check hBox + + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) { + return true; + } // Check vBox + + + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) { + return true; + } // check non-rounded top side + + + var outerWidth = width / 2 + 2 * padding; + var outerHeight = height / 2 + 2 * padding; + var points = [centerX - outerWidth, centerY - outerHeight, centerX - outerWidth, centerY, centerX + outerWidth, centerY, centerX + outerWidth, centerY - outerHeight]; + + if (pointInsidePolygonPoints(x, y, points)) { + return true; + } // Check bottom right quarter circle + + + if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) { + return true; + } // Check bottom left quarter circle + + + if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) { + return true; + } + + return false; + } + }; + }; + + BRp$2.registerNodeShapes = function () { + var nodeShapes = this.nodeShapes = {}; + var renderer = this; + this.generateEllipse(); + this.generatePolygon('triangle', generateUnitNgonPointsFitToSquare(3, 0)); + this.generateRoundPolygon('round-triangle', generateUnitNgonPointsFitToSquare(3, 0)); + this.generatePolygon('rectangle', generateUnitNgonPointsFitToSquare(4, 0)); + nodeShapes['square'] = nodeShapes['rectangle']; + this.generateRoundRectangle(); + this.generateCutRectangle(); + this.generateBarrel(); + this.generateBottomRoundrectangle(); + { + var diamondPoints = [0, 1, 1, 0, 0, -1, -1, 0]; + this.generatePolygon('diamond', diamondPoints); + this.generateRoundPolygon('round-diamond', diamondPoints); + } + this.generatePolygon('pentagon', generateUnitNgonPointsFitToSquare(5, 0)); + this.generateRoundPolygon('round-pentagon', generateUnitNgonPointsFitToSquare(5, 0)); + this.generatePolygon('hexagon', generateUnitNgonPointsFitToSquare(6, 0)); + this.generateRoundPolygon('round-hexagon', generateUnitNgonPointsFitToSquare(6, 0)); + this.generatePolygon('heptagon', generateUnitNgonPointsFitToSquare(7, 0)); + this.generateRoundPolygon('round-heptagon', generateUnitNgonPointsFitToSquare(7, 0)); + this.generatePolygon('octagon', generateUnitNgonPointsFitToSquare(8, 0)); + this.generateRoundPolygon('round-octagon', generateUnitNgonPointsFitToSquare(8, 0)); + var star5Points = new Array(20); + { + var outerPoints = generateUnitNgonPoints(5, 0); + var innerPoints = generateUnitNgonPoints(5, Math.PI / 5); // Outer radius is 1; inner radius of star is smaller + + var innerRadius = 0.5 * (3 - Math.sqrt(5)); + innerRadius *= 1.57; + + for (var i = 0; i < innerPoints.length / 2; i++) { + innerPoints[i * 2] *= innerRadius; + innerPoints[i * 2 + 1] *= innerRadius; + } + + for (var i = 0; i < 20 / 4; i++) { + star5Points[i * 4] = outerPoints[i * 2]; + star5Points[i * 4 + 1] = outerPoints[i * 2 + 1]; + star5Points[i * 4 + 2] = innerPoints[i * 2]; + star5Points[i * 4 + 3] = innerPoints[i * 2 + 1]; + } + } + star5Points = fitPolygonToSquare(star5Points); + this.generatePolygon('star', star5Points); + this.generatePolygon('vee', [-1, -1, 0, -0.333, 1, -1, 0, 1]); + this.generatePolygon('rhomboid', [-1, -1, 0.333, -1, 1, 1, -0.333, 1]); + this.generatePolygon('right-rhomboid', [-0.333, -1, 1, -1, 0.333, 1, -1, 1]); + this.nodeShapes['concavehexagon'] = this.generatePolygon('concave-hexagon', [-1, -0.95, -0.75, 0, -1, 0.95, 1, 0.95, 0.75, 0, 1, -0.95]); + { + var tagPoints = [-1, -1, 0.25, -1, 1, 0, 0.25, 1, -1, 1]; + this.generatePolygon('tag', tagPoints); + this.generateRoundPolygon('round-tag', tagPoints); + } + + nodeShapes.makePolygon = function (points) { + // use caching on user-specified polygons so they are as fast as native shapes + var key = points.join('$'); + var name = 'polygon-' + key; + var shape; + + if (shape = this[name]) { + // got cached shape + return shape; + } // create and cache new shape + + + return renderer.generatePolygon(name, points); + }; + }; + + var BRp$1 = {}; + + BRp$1.timeToRender = function () { + return this.redrawTotalTime / this.redrawCount; + }; + + BRp$1.redraw = function (options) { + options = options || staticEmptyObject(); + var r = this; + + if (r.averageRedrawTime === undefined) { + r.averageRedrawTime = 0; + } + + if (r.lastRedrawTime === undefined) { + r.lastRedrawTime = 0; + } + + if (r.lastDrawTime === undefined) { + r.lastDrawTime = 0; + } + + r.requestedFrame = true; + r.renderOptions = options; + }; + + BRp$1.beforeRender = function (fn, priority) { + // the renderer can't add tick callbacks when destroyed + if (this.destroyed) { + return; + } + + if (priority == null) { + error('Priority is not optional for beforeRender'); + } + + var cbs = this.beforeRenderCallbacks; + cbs.push({ + fn: fn, + priority: priority + }); // higher priority callbacks executed first + + cbs.sort(function (a, b) { + return b.priority - a.priority; + }); + }; + + var beforeRenderCallbacks = function beforeRenderCallbacks(r, willDraw, startTime) { + var cbs = r.beforeRenderCallbacks; + + for (var i = 0; i < cbs.length; i++) { + cbs[i].fn(willDraw, startTime); + } + }; + + BRp$1.startRenderLoop = function () { + var r = this; + var cy = r.cy; + + if (r.renderLoopStarted) { + return; + } else { + r.renderLoopStarted = true; + } + + var renderFn = function renderFn(requestTime) { + if (r.destroyed) { + return; + } + + if (cy.batching()) ; else if (r.requestedFrame && !r.skipFrame) { + beforeRenderCallbacks(r, true, requestTime); + var startTime = performanceNow(); + r.render(r.renderOptions); + var endTime = r.lastDrawTime = performanceNow(); + + if (r.averageRedrawTime === undefined) { + r.averageRedrawTime = endTime - startTime; + } + + if (r.redrawCount === undefined) { + r.redrawCount = 0; + } + + r.redrawCount++; + + if (r.redrawTotalTime === undefined) { + r.redrawTotalTime = 0; + } + + var duration = endTime - startTime; + r.redrawTotalTime += duration; + r.lastRedrawTime = duration; // use a weighted average with a bias from the previous average so we don't spike so easily + + r.averageRedrawTime = r.averageRedrawTime / 2 + duration / 2; + r.requestedFrame = false; + } else { + beforeRenderCallbacks(r, false, requestTime); + } + + r.skipFrame = false; + requestAnimationFrame(renderFn); + }; + + requestAnimationFrame(renderFn); + }; + + var BaseRenderer = function BaseRenderer(options) { + this.init(options); + }; + + var BR = BaseRenderer; + var BRp = BR.prototype; + BRp.clientFunctions = ['redrawHint', 'render', 'renderTo', 'matchCanvasSize', 'nodeShapeImpl', 'arrowShapeImpl']; + + BRp.init = function (options) { + var r = this; + r.options = options; + r.cy = options.cy; + var ctr = r.container = options.cy.container(); + var containerWindow = r.cy.window(); // prepend a stylesheet in the head such that + + if (containerWindow) { + var document = containerWindow.document; + var head = document.head; + var stylesheetId = '__________cytoscape_stylesheet'; + var className = '__________cytoscape_container'; + var stylesheetAlreadyExists = document.getElementById(stylesheetId) != null; + + if (ctr.className.indexOf(className) < 0) { + ctr.className = (ctr.className || '') + ' ' + className; + } + + if (!stylesheetAlreadyExists) { + var stylesheet = document.createElement('style'); + stylesheet.id = stylesheetId; + stylesheet.textContent = '.' + className + ' { position: relative; }'; + head.insertBefore(stylesheet, head.children[0]); // first so lowest priority + } + + var computedStyle = containerWindow.getComputedStyle(ctr); + var position = computedStyle.getPropertyValue('position'); + + if (position === 'static') { + warn('A Cytoscape container has style position:static and so can not use UI extensions properly'); + } + } + + r.selection = [undefined, undefined, undefined, undefined, 0]; // Coordinates for selection box, plus enabled flag + + r.bezierProjPcts = [0.05, 0.225, 0.4, 0.5, 0.6, 0.775, 0.95]; //--Pointer-related data + + r.hoverData = { + down: null, + last: null, + downTime: null, + triggerMode: null, + dragging: false, + initialPan: [null, null], + capture: false + }; + r.dragData = { + possibleDragElements: [] + }; + r.touchData = { + start: null, + capture: false, + // These 3 fields related to tap, taphold events + startPosition: [null, null, null, null, null, null], + singleTouchStartTime: null, + singleTouchMoved: true, + now: [null, null, null, null, null, null], + earlier: [null, null, null, null, null, null] + }; + r.redraws = 0; + r.showFps = options.showFps; + r.debug = options.debug; + r.hideEdgesOnViewport = options.hideEdgesOnViewport; + r.textureOnViewport = options.textureOnViewport; + r.wheelSensitivity = options.wheelSensitivity; + r.motionBlurEnabled = options.motionBlur; // on by default + + r.forcedPixelRatio = number$1(options.pixelRatio) ? options.pixelRatio : null; + r.motionBlur = options.motionBlur; // for initial kick off + + r.motionBlurOpacity = options.motionBlurOpacity; + r.motionBlurTransparency = 1 - r.motionBlurOpacity; + r.motionBlurPxRatio = 1; + r.mbPxRBlurry = 1; //0.8; + + r.minMbLowQualFrames = 4; + r.fullQualityMb = false; + r.clearedForMotionBlur = []; + r.desktopTapThreshold = options.desktopTapThreshold; + r.desktopTapThreshold2 = options.desktopTapThreshold * options.desktopTapThreshold; + r.touchTapThreshold = options.touchTapThreshold; + r.touchTapThreshold2 = options.touchTapThreshold * options.touchTapThreshold; + r.tapholdDuration = 500; + r.bindings = []; + r.beforeRenderCallbacks = []; + r.beforeRenderPriorities = { + // higher priority execs before lower one + animations: 400, + eleCalcs: 300, + eleTxrDeq: 200, + lyrTxrDeq: 150, + lyrTxrSkip: 100 + }; + r.registerNodeShapes(); + r.registerArrowShapes(); + r.registerCalculationListeners(); + }; + + BRp.notify = function (eventName, eles) { + var r = this; + var cy = r.cy; // the renderer can't be notified after it's destroyed + + if (this.destroyed) { + return; + } + + if (eventName === 'init') { + r.load(); + return; + } + + if (eventName === 'destroy') { + r.destroy(); + return; + } + + if (eventName === 'add' || eventName === 'remove' || eventName === 'move' && cy.hasCompoundNodes() || eventName === 'load' || eventName === 'zorder' || eventName === 'mount') { + r.invalidateCachedZSortedEles(); + } + + if (eventName === 'viewport') { + r.redrawHint('select', true); + } + + if (eventName === 'load' || eventName === 'resize' || eventName === 'mount') { + r.invalidateContainerClientCoordsCache(); + r.matchCanvasSize(r.container); + } + + r.redrawHint('eles', true); + r.redrawHint('drag', true); + this.startRenderLoop(); + this.redraw(); + }; + + BRp.destroy = function () { + var r = this; + r.destroyed = true; + r.cy.stopAnimationLoop(); + + for (var i = 0; i < r.bindings.length; i++) { + var binding = r.bindings[i]; + var b = binding; + var tgt = b.target; + (tgt.off || tgt.removeEventListener).apply(tgt, b.args); + } + + r.bindings = []; + r.beforeRenderCallbacks = []; + r.onUpdateEleCalcsFns = []; + + if (r.removeObserver) { + r.removeObserver.disconnect(); + } + + if (r.styleObserver) { + r.styleObserver.disconnect(); + } + + if (r.resizeObserver) { + r.resizeObserver.disconnect(); + } + + if (r.labelCalcDiv) { + try { + document.body.removeChild(r.labelCalcDiv); // eslint-disable-line no-undef + } catch (e) {// ie10 issue #1014 + } + } + }; + + BRp.isHeadless = function () { + return false; + }; + + [BRp$f, BRp$5, BRp$4, BRp$3, BRp$2, BRp$1].forEach(function (props) { + extend(BRp, props); + }); + + var fullFpsTime = 1000 / 60; // assume 60 frames per second + + var defs = { + setupDequeueing: function setupDequeueing(opts) { + return function setupDequeueingImpl() { + var self = this; + var r = this.renderer; + + if (self.dequeueingSetup) { + return; + } else { + self.dequeueingSetup = true; + } + + var queueRedraw = debounce_1(function () { + r.redrawHint('eles', true); + r.redrawHint('drag', true); + r.redraw(); + }, opts.deqRedrawThreshold); + + var dequeue = function dequeue(willDraw, frameStartTime) { + var startTime = performanceNow(); + var avgRenderTime = r.averageRedrawTime; + var renderTime = r.lastRedrawTime; + var deqd = []; + var extent = r.cy.extent(); + var pixelRatio = r.getPixelRatio(); // if we aren't in a tick that causes a draw, then the rendered style + // queue won't automatically be flushed before dequeueing starts + + if (!willDraw) { + r.flushRenderedStyleQueue(); + } + + while (true) { + // eslint-disable-line no-constant-condition + var now = performanceNow(); + var duration = now - startTime; + var frameDuration = now - frameStartTime; + + if (renderTime < fullFpsTime) { + // if we're rendering faster than the ideal fps, then do dequeueing + // during all of the remaining frame time + var timeAvailable = fullFpsTime - (willDraw ? avgRenderTime : 0); + + if (frameDuration >= opts.deqFastCost * timeAvailable) { + break; + } + } else { + if (willDraw) { + if (duration >= opts.deqCost * renderTime || duration >= opts.deqAvgCost * avgRenderTime) { + break; + } + } else if (frameDuration >= opts.deqNoDrawCost * fullFpsTime) { + break; + } + } + + var thisDeqd = opts.deq(self, pixelRatio, extent); + + if (thisDeqd.length > 0) { + for (var i = 0; i < thisDeqd.length; i++) { + deqd.push(thisDeqd[i]); + } + } else { + break; + } + } // callbacks on dequeue + + + if (deqd.length > 0) { + opts.onDeqd(self, deqd); + + if (!willDraw && opts.shouldRedraw(self, deqd, pixelRatio, extent)) { + queueRedraw(); + } + } + }; + + var priority = opts.priority || noop$1; + r.beforeRender(dequeue, priority(self)); + }; + } + }; + + // Uses keys so elements may share the same cache. + + var ElementTextureCacheLookup = /*#__PURE__*/function () { + function ElementTextureCacheLookup(getKey) { + var doesEleInvalidateKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : falsify; + + _classCallCheck(this, ElementTextureCacheLookup); + + this.idsByKey = new Map$2(); + this.keyForId = new Map$2(); + this.cachesByLvl = new Map$2(); + this.lvls = []; + this.getKey = getKey; + this.doesEleInvalidateKey = doesEleInvalidateKey; + } + + _createClass(ElementTextureCacheLookup, [{ + key: "getIdsFor", + value: function getIdsFor(key) { + if (key == null) { + error("Can not get id list for null key"); + } + + var idsByKey = this.idsByKey; + var ids = this.idsByKey.get(key); + + if (!ids) { + ids = new Set$1(); + idsByKey.set(key, ids); + } + + return ids; + } + }, { + key: "addIdForKey", + value: function addIdForKey(key, id) { + if (key != null) { + this.getIdsFor(key).add(id); + } + } + }, { + key: "deleteIdForKey", + value: function deleteIdForKey(key, id) { + if (key != null) { + this.getIdsFor(key)["delete"](id); + } + } + }, { + key: "getNumberOfIdsForKey", + value: function getNumberOfIdsForKey(key) { + if (key == null) { + return 0; + } else { + return this.getIdsFor(key).size; + } + } + }, { + key: "updateKeyMappingFor", + value: function updateKeyMappingFor(ele) { + var id = ele.id(); + var prevKey = this.keyForId.get(id); + var currKey = this.getKey(ele); + this.deleteIdForKey(prevKey, id); + this.addIdForKey(currKey, id); + this.keyForId.set(id, currKey); + } + }, { + key: "deleteKeyMappingFor", + value: function deleteKeyMappingFor(ele) { + var id = ele.id(); + var prevKey = this.keyForId.get(id); + this.deleteIdForKey(prevKey, id); + this.keyForId["delete"](id); + } + }, { + key: "keyHasChangedFor", + value: function keyHasChangedFor(ele) { + var id = ele.id(); + var prevKey = this.keyForId.get(id); + var newKey = this.getKey(ele); + return prevKey !== newKey; + } + }, { + key: "isInvalid", + value: function isInvalid(ele) { + return this.keyHasChangedFor(ele) || this.doesEleInvalidateKey(ele); + } + }, { + key: "getCachesAt", + value: function getCachesAt(lvl) { + var cachesByLvl = this.cachesByLvl, + lvls = this.lvls; + var caches = cachesByLvl.get(lvl); + + if (!caches) { + caches = new Map$2(); + cachesByLvl.set(lvl, caches); + lvls.push(lvl); + } + + return caches; + } + }, { + key: "getCache", + value: function getCache(key, lvl) { + return this.getCachesAt(lvl).get(key); + } + }, { + key: "get", + value: function get(ele, lvl) { + var key = this.getKey(ele); + var cache = this.getCache(key, lvl); // getting for an element may need to add to the id list b/c eles can share keys + + if (cache != null) { + this.updateKeyMappingFor(ele); + } + + return cache; + } + }, { + key: "getForCachedKey", + value: function getForCachedKey(ele, lvl) { + var key = this.keyForId.get(ele.id()); // n.b. use cached key, not newly computed key + + var cache = this.getCache(key, lvl); + return cache; + } + }, { + key: "hasCache", + value: function hasCache(key, lvl) { + return this.getCachesAt(lvl).has(key); + } + }, { + key: "has", + value: function has(ele, lvl) { + var key = this.getKey(ele); + return this.hasCache(key, lvl); + } + }, { + key: "setCache", + value: function setCache(key, lvl, cache) { + cache.key = key; + this.getCachesAt(lvl).set(key, cache); + } + }, { + key: "set", + value: function set(ele, lvl, cache) { + var key = this.getKey(ele); + this.setCache(key, lvl, cache); + this.updateKeyMappingFor(ele); + } + }, { + key: "deleteCache", + value: function deleteCache(key, lvl) { + this.getCachesAt(lvl)["delete"](key); + } + }, { + key: "delete", + value: function _delete(ele, lvl) { + var key = this.getKey(ele); + this.deleteCache(key, lvl); + } + }, { + key: "invalidateKey", + value: function invalidateKey(key) { + var _this = this; + + this.lvls.forEach(function (lvl) { + return _this.deleteCache(key, lvl); + }); + } // returns true if no other eles reference the invalidated cache (n.b. other eles may need the cache with the same key) + + }, { + key: "invalidate", + value: function invalidate(ele) { + var id = ele.id(); + var key = this.keyForId.get(id); // n.b. use stored key rather than current (potential key) + + this.deleteKeyMappingFor(ele); + var entireKeyInvalidated = this.doesEleInvalidateKey(ele); + + if (entireKeyInvalidated) { + // clear mapping for current key + this.invalidateKey(key); + } + + return entireKeyInvalidated || this.getNumberOfIdsForKey(key) === 0; + } + }]); + + return ElementTextureCacheLookup; + }(); + + var minTxrH = 25; // the size of the texture cache for small height eles (special case) + + var txrStepH = 50; // the min size of the regular cache, and the size it increases with each step up + + var minLvl$1 = -4; // when scaling smaller than that we don't need to re-render + + var maxLvl$1 = 3; // when larger than this scale just render directly (caching is not helpful) + + var maxZoom$1 = 7.99; // beyond this zoom level, layered textures are not used + + var eleTxrSpacing = 8; // spacing between elements on textures to avoid blitting overlaps + + var defTxrWidth = 1024; // default/minimum texture width + + var maxTxrW = 1024; // the maximum width of a texture + + var maxTxrH = 1024; // the maximum height of a texture + + var minUtility = 0.2; // if usage of texture is less than this, it is retired + + var maxFullness = 0.8; // fullness of texture after which queue removal is checked + + var maxFullnessChecks = 10; // dequeued after this many checks + + var deqCost$1 = 0.15; // % of add'l rendering cost allowed for dequeuing ele caches each frame + + var deqAvgCost$1 = 0.1; // % of add'l rendering cost compared to average overall redraw time + + var deqNoDrawCost$1 = 0.9; // % of avg frame time that can be used for dequeueing when not drawing + + var deqFastCost$1 = 0.9; // % of frame time to be used when >60fps + + var deqRedrawThreshold$1 = 100; // time to batch redraws together from dequeueing to allow more dequeueing calcs to happen in the meanwhile + + var maxDeqSize$1 = 1; // number of eles to dequeue and render at higher texture in each batch + + var getTxrReasons = { + dequeue: 'dequeue', + downscale: 'downscale', + highQuality: 'highQuality' + }; + var initDefaults = defaults$g({ + getKey: null, + doesEleInvalidateKey: falsify, + drawElement: null, + getBoundingBox: null, + getRotationPoint: null, + getRotationOffset: null, + isVisible: trueify, + allowEdgeTxrCaching: true, + allowParentTxrCaching: true + }); + + var ElementTextureCache = function ElementTextureCache(renderer, initOptions) { + var self = this; + self.renderer = renderer; + self.onDequeues = []; + var opts = initDefaults(initOptions); + extend(self, opts); + self.lookup = new ElementTextureCacheLookup(opts.getKey, opts.doesEleInvalidateKey); + self.setupDequeueing(); + }; + + var ETCp = ElementTextureCache.prototype; + ETCp.reasons = getTxrReasons; // the list of textures in which new subtextures for elements can be placed + + ETCp.getTextureQueue = function (txrH) { + var self = this; + self.eleImgCaches = self.eleImgCaches || {}; + return self.eleImgCaches[txrH] = self.eleImgCaches[txrH] || []; + }; // the list of usused textures which can be recycled (in use in texture queue) + + + ETCp.getRetiredTextureQueue = function (txrH) { + var self = this; + var rtxtrQs = self.eleImgCaches.retired = self.eleImgCaches.retired || {}; + var rtxtrQ = rtxtrQs[txrH] = rtxtrQs[txrH] || []; + return rtxtrQ; + }; // queue of element draw requests at different scale levels + + + ETCp.getElementQueue = function () { + var self = this; + var q = self.eleCacheQueue = self.eleCacheQueue || new heap(function (a, b) { + return b.reqs - a.reqs; + }); + return q; + }; // queue of element draw requests at different scale levels (element id lookup) + + + ETCp.getElementKeyToQueue = function () { + var self = this; + var k2q = self.eleKeyToCacheQueue = self.eleKeyToCacheQueue || {}; + return k2q; + }; + + ETCp.getElement = function (ele, bb, pxRatio, lvl, reason) { + var self = this; + var r = this.renderer; + var zoom = r.cy.zoom(); + var lookup = this.lookup; + + if (!bb || bb.w === 0 || bb.h === 0 || isNaN(bb.w) || isNaN(bb.h) || !ele.visible() || ele.removed()) { + return null; + } + + if (!self.allowEdgeTxrCaching && ele.isEdge() || !self.allowParentTxrCaching && ele.isParent()) { + return null; + } + + if (lvl == null) { + lvl = Math.ceil(log2(zoom * pxRatio)); + } + + if (lvl < minLvl$1) { + lvl = minLvl$1; + } else if (zoom >= maxZoom$1 || lvl > maxLvl$1) { + return null; + } + + var scale = Math.pow(2, lvl); + var eleScaledH = bb.h * scale; + var eleScaledW = bb.w * scale; + var scaledLabelShown = r.eleTextBiggerThanMin(ele, scale); + + if (!this.isVisible(ele, scaledLabelShown)) { + return null; + } + + var eleCache = lookup.get(ele, lvl); // if this get was on an unused/invalidated cache, then restore the texture usage metric + + if (eleCache && eleCache.invalidated) { + eleCache.invalidated = false; + eleCache.texture.invalidatedWidth -= eleCache.width; + } + + if (eleCache) { + return eleCache; + } + + var txrH; // which texture height this ele belongs to + + if (eleScaledH <= minTxrH) { + txrH = minTxrH; + } else if (eleScaledH <= txrStepH) { + txrH = txrStepH; + } else { + txrH = Math.ceil(eleScaledH / txrStepH) * txrStepH; + } + + if (eleScaledH > maxTxrH || eleScaledW > maxTxrW) { + return null; // caching large elements is not efficient + } + + var txrQ = self.getTextureQueue(txrH); // first try the second last one in case it has space at the end + + var txr = txrQ[txrQ.length - 2]; + + var addNewTxr = function addNewTxr() { + return self.recycleTexture(txrH, eleScaledW) || self.addTexture(txrH, eleScaledW); + }; // try the last one if there is no second last one + + + if (!txr) { + txr = txrQ[txrQ.length - 1]; + } // if the last one doesn't exist, we need a first one + + + if (!txr) { + txr = addNewTxr(); + } // if there's no room in the current texture, we need a new one + + + if (txr.width - txr.usedWidth < eleScaledW) { + txr = addNewTxr(); + } + + var scalableFrom = function scalableFrom(otherCache) { + return otherCache && otherCache.scaledLabelShown === scaledLabelShown; + }; + + var deqing = reason && reason === getTxrReasons.dequeue; + var highQualityReq = reason && reason === getTxrReasons.highQuality; + var downscaleReq = reason && reason === getTxrReasons.downscale; + var higherCache; // the nearest cache with a higher level + + for (var l = lvl + 1; l <= maxLvl$1; l++) { + var c = lookup.get(ele, l); + + if (c) { + higherCache = c; + break; + } + } + + var oneUpCache = higherCache && higherCache.level === lvl + 1 ? higherCache : null; + + var downscale = function downscale() { + txr.context.drawImage(oneUpCache.texture.canvas, oneUpCache.x, 0, oneUpCache.width, oneUpCache.height, txr.usedWidth, 0, eleScaledW, eleScaledH); + }; // reset ele area in texture + + + txr.context.setTransform(1, 0, 0, 1, 0, 0); + txr.context.clearRect(txr.usedWidth, 0, eleScaledW, txrH); + + if (scalableFrom(oneUpCache)) { + // then we can relatively cheaply rescale the existing image w/o rerendering + downscale(); + } else if (scalableFrom(higherCache)) { + // then use the higher cache for now and queue the next level down + // to cheaply scale towards the smaller level + if (highQualityReq) { + for (var _l = higherCache.level; _l > lvl; _l--) { + oneUpCache = self.getElement(ele, bb, pxRatio, _l, getTxrReasons.downscale); + } + + downscale(); + } else { + self.queueElement(ele, higherCache.level - 1); + return higherCache; + } + } else { + var lowerCache; // the nearest cache with a lower level + + if (!deqing && !highQualityReq && !downscaleReq) { + for (var _l2 = lvl - 1; _l2 >= minLvl$1; _l2--) { + var _c = lookup.get(ele, _l2); + + if (_c) { + lowerCache = _c; + break; + } + } + } + + if (scalableFrom(lowerCache)) { + // then use the lower quality cache for now and queue the better one for later + self.queueElement(ele, lvl); + return lowerCache; + } + + txr.context.translate(txr.usedWidth, 0); + txr.context.scale(scale, scale); + this.drawElement(txr.context, ele, bb, scaledLabelShown, false); + txr.context.scale(1 / scale, 1 / scale); + txr.context.translate(-txr.usedWidth, 0); + } + + eleCache = { + x: txr.usedWidth, + texture: txr, + level: lvl, + scale: scale, + width: eleScaledW, + height: eleScaledH, + scaledLabelShown: scaledLabelShown + }; + txr.usedWidth += Math.ceil(eleScaledW + eleTxrSpacing); + txr.eleCaches.push(eleCache); + lookup.set(ele, lvl, eleCache); + self.checkTextureFullness(txr); + return eleCache; + }; + + ETCp.invalidateElements = function (eles) { + for (var i = 0; i < eles.length; i++) { + this.invalidateElement(eles[i]); + } + }; + + ETCp.invalidateElement = function (ele) { + var self = this; + var lookup = self.lookup; + var caches = []; + var invalid = lookup.isInvalid(ele); + + if (!invalid) { + return; // override the invalidation request if the element key has not changed + } + + for (var lvl = minLvl$1; lvl <= maxLvl$1; lvl++) { + var cache = lookup.getForCachedKey(ele, lvl); + + if (cache) { + caches.push(cache); + } + } + + var noOtherElesUseCache = lookup.invalidate(ele); + + if (noOtherElesUseCache) { + for (var i = 0; i < caches.length; i++) { + var _cache = caches[i]; + var txr = _cache.texture; // remove space from the texture it belongs to + + txr.invalidatedWidth += _cache.width; // mark the cache as invalidated + + _cache.invalidated = true; // retire the texture if its utility is low + + self.checkTextureUtility(txr); + } + } // remove from queue since the old req was for the old state + + + self.removeFromQueue(ele); + }; + + ETCp.checkTextureUtility = function (txr) { + // invalidate all entries in the cache if the cache size is small + if (txr.invalidatedWidth >= minUtility * txr.width) { + this.retireTexture(txr); + } + }; + + ETCp.checkTextureFullness = function (txr) { + // if texture has been mostly filled and passed over several times, remove + // it from the queue so we don't need to waste time looking at it to put new things + var self = this; + var txrQ = self.getTextureQueue(txr.height); + + if (txr.usedWidth / txr.width > maxFullness && txr.fullnessChecks >= maxFullnessChecks) { + removeFromArray(txrQ, txr); + } else { + txr.fullnessChecks++; + } + }; + + ETCp.retireTexture = function (txr) { + var self = this; + var txrH = txr.height; + var txrQ = self.getTextureQueue(txrH); + var lookup = this.lookup; // retire the texture from the active / searchable queue: + + removeFromArray(txrQ, txr); + txr.retired = true; // remove the refs from the eles to the caches: + + var eleCaches = txr.eleCaches; + + for (var i = 0; i < eleCaches.length; i++) { + var eleCache = eleCaches[i]; + lookup.deleteCache(eleCache.key, eleCache.level); + } + + clearArray(eleCaches); // add the texture to a retired queue so it can be recycled in future: + + var rtxtrQ = self.getRetiredTextureQueue(txrH); + rtxtrQ.push(txr); + }; + + ETCp.addTexture = function (txrH, minW) { + var self = this; + var txrQ = self.getTextureQueue(txrH); + var txr = {}; + txrQ.push(txr); + txr.eleCaches = []; + txr.height = txrH; + txr.width = Math.max(defTxrWidth, minW); + txr.usedWidth = 0; + txr.invalidatedWidth = 0; + txr.fullnessChecks = 0; + txr.canvas = self.renderer.makeOffscreenCanvas(txr.width, txr.height); + txr.context = txr.canvas.getContext('2d'); + return txr; + }; + + ETCp.recycleTexture = function (txrH, minW) { + var self = this; + var txrQ = self.getTextureQueue(txrH); + var rtxtrQ = self.getRetiredTextureQueue(txrH); + + for (var i = 0; i < rtxtrQ.length; i++) { + var txr = rtxtrQ[i]; + + if (txr.width >= minW) { + txr.retired = false; + txr.usedWidth = 0; + txr.invalidatedWidth = 0; + txr.fullnessChecks = 0; + clearArray(txr.eleCaches); + txr.context.setTransform(1, 0, 0, 1, 0, 0); + txr.context.clearRect(0, 0, txr.width, txr.height); + removeFromArray(rtxtrQ, txr); + txrQ.push(txr); + return txr; + } + } + }; + + ETCp.queueElement = function (ele, lvl) { + var self = this; + var q = self.getElementQueue(); + var k2q = self.getElementKeyToQueue(); + var key = this.getKey(ele); + var existingReq = k2q[key]; + + if (existingReq) { + // use the max lvl b/c in between lvls are cheap to make + existingReq.level = Math.max(existingReq.level, lvl); + existingReq.eles.merge(ele); + existingReq.reqs++; + q.updateItem(existingReq); + } else { + var req = { + eles: ele.spawn().merge(ele), + level: lvl, + reqs: 1, + key: key + }; + q.push(req); + k2q[key] = req; + } + }; + + ETCp.dequeue = function (pxRatio + /*, extent*/ + ) { + var self = this; + var q = self.getElementQueue(); + var k2q = self.getElementKeyToQueue(); + var dequeued = []; + var lookup = self.lookup; + + for (var i = 0; i < maxDeqSize$1; i++) { + if (q.size() > 0) { + var req = q.pop(); + var key = req.key; + var ele = req.eles[0]; // all eles have the same key + + var cacheExists = lookup.hasCache(ele, req.level); // clear out the key to req lookup + + k2q[key] = null; // dequeueing isn't necessary with an existing cache + + if (cacheExists) { + continue; + } + + dequeued.push(req); + var bb = self.getBoundingBox(ele); + self.getElement(ele, bb, pxRatio, req.level, getTxrReasons.dequeue); + } else { + break; + } + } + + return dequeued; + }; + + ETCp.removeFromQueue = function (ele) { + var self = this; + var q = self.getElementQueue(); + var k2q = self.getElementKeyToQueue(); + var key = this.getKey(ele); + var req = k2q[key]; + + if (req != null) { + if (req.eles.length === 1) { + // remove if last ele in the req + // bring to front of queue + req.reqs = MAX_INT$1; + q.updateItem(req); + q.pop(); // remove from queue + + k2q[key] = null; // remove from lookup map + } else { + // otherwise just remove ele from req + req.eles.unmerge(ele); + } + } + }; + + ETCp.onDequeue = function (fn) { + this.onDequeues.push(fn); + }; + + ETCp.offDequeue = function (fn) { + removeFromArray(this.onDequeues, fn); + }; + + ETCp.setupDequeueing = defs.setupDequeueing({ + deqRedrawThreshold: deqRedrawThreshold$1, + deqCost: deqCost$1, + deqAvgCost: deqAvgCost$1, + deqNoDrawCost: deqNoDrawCost$1, + deqFastCost: deqFastCost$1, + deq: function deq(self, pxRatio, extent) { + return self.dequeue(pxRatio, extent); + }, + onDeqd: function onDeqd(self, deqd) { + for (var i = 0; i < self.onDequeues.length; i++) { + var fn = self.onDequeues[i]; + fn(deqd); + } + }, + shouldRedraw: function shouldRedraw(self, deqd, pxRatio, extent) { + for (var i = 0; i < deqd.length; i++) { + var eles = deqd[i].eles; + + for (var j = 0; j < eles.length; j++) { + var bb = eles[j].boundingBox(); + + if (boundingBoxesIntersect(bb, extent)) { + return true; + } + } + } + + return false; + }, + priority: function priority(self) { + return self.renderer.beforeRenderPriorities.eleTxrDeq; + } + }); + + var defNumLayers = 1; // default number of layers to use + + var minLvl = -4; // when scaling smaller than that we don't need to re-render + + var maxLvl = 2; // when larger than this scale just render directly (caching is not helpful) + + var maxZoom = 3.99; // beyond this zoom level, layered textures are not used + + var deqRedrawThreshold = 50; // time to batch redraws together from dequeueing to allow more dequeueing calcs to happen in the meanwhile + + var refineEleDebounceTime = 50; // time to debounce sharper ele texture updates + + var deqCost = 0.15; // % of add'l rendering cost allowed for dequeuing ele caches each frame + + var deqAvgCost = 0.1; // % of add'l rendering cost compared to average overall redraw time + + var deqNoDrawCost = 0.9; // % of avg frame time that can be used for dequeueing when not drawing + + var deqFastCost = 0.9; // % of frame time to be used when >60fps + + var maxDeqSize = 1; // number of eles to dequeue and render at higher texture in each batch + + var invalidThreshold = 250; // time threshold for disabling b/c of invalidations + + var maxLayerArea = 4000 * 4000; // layers can't be bigger than this + + var useHighQualityEleTxrReqs = true; // whether to use high quality ele txr requests (generally faster and cheaper in the longterm) + // var log = function(){ console.log.apply( console, arguments ); }; + + var LayeredTextureCache = function LayeredTextureCache(renderer) { + var self = this; + var r = self.renderer = renderer; + var cy = r.cy; + self.layersByLevel = {}; // e.g. 2 => [ layer1, layer2, ..., layerN ] + + self.firstGet = true; + self.lastInvalidationTime = performanceNow() - 2 * invalidThreshold; + self.skipping = false; + self.eleTxrDeqs = cy.collection(); + self.scheduleElementRefinement = debounce_1(function () { + self.refineElementTextures(self.eleTxrDeqs); + self.eleTxrDeqs.unmerge(self.eleTxrDeqs); + }, refineEleDebounceTime); + r.beforeRender(function (willDraw, now) { + if (now - self.lastInvalidationTime <= invalidThreshold) { + self.skipping = true; + } else { + self.skipping = false; + } + }, r.beforeRenderPriorities.lyrTxrSkip); + + var qSort = function qSort(a, b) { + return b.reqs - a.reqs; + }; + + self.layersQueue = new heap(qSort); + self.setupDequeueing(); + }; + + var LTCp = LayeredTextureCache.prototype; + var layerIdPool = 0; + var MAX_INT = Math.pow(2, 53) - 1; + + LTCp.makeLayer = function (bb, lvl) { + var scale = Math.pow(2, lvl); + var w = Math.ceil(bb.w * scale); + var h = Math.ceil(bb.h * scale); + var canvas = this.renderer.makeOffscreenCanvas(w, h); + var layer = { + id: layerIdPool = ++layerIdPool % MAX_INT, + bb: bb, + level: lvl, + width: w, + height: h, + canvas: canvas, + context: canvas.getContext('2d'), + eles: [], + elesQueue: [], + reqs: 0 + }; // log('make layer %s with w %s and h %s and lvl %s', layer.id, layer.width, layer.height, layer.level); + + var cxt = layer.context; + var dx = -layer.bb.x1; + var dy = -layer.bb.y1; // do the transform on creation to save cycles (it's the same for all eles) + + cxt.scale(scale, scale); + cxt.translate(dx, dy); + return layer; + }; + + LTCp.getLayers = function (eles, pxRatio, lvl) { + var self = this; + var r = self.renderer; + var cy = r.cy; + var zoom = cy.zoom(); + var firstGet = self.firstGet; + self.firstGet = false; // log('--\nget layers with %s eles', eles.length); + //log eles.map(function(ele){ return ele.id() }) ); + + if (lvl == null) { + lvl = Math.ceil(log2(zoom * pxRatio)); + + if (lvl < minLvl) { + lvl = minLvl; + } else if (zoom >= maxZoom || lvl > maxLvl) { + return null; + } + } + + self.validateLayersElesOrdering(lvl, eles); + var layersByLvl = self.layersByLevel; + var scale = Math.pow(2, lvl); + var layers = layersByLvl[lvl] = layersByLvl[lvl] || []; + var bb; + var lvlComplete = self.levelIsComplete(lvl, eles); + var tmpLayers; + + var checkTempLevels = function checkTempLevels() { + var canUseAsTmpLvl = function canUseAsTmpLvl(l) { + self.validateLayersElesOrdering(l, eles); + + if (self.levelIsComplete(l, eles)) { + tmpLayers = layersByLvl[l]; + return true; + } + }; + + var checkLvls = function checkLvls(dir) { + if (tmpLayers) { + return; + } + + for (var l = lvl + dir; minLvl <= l && l <= maxLvl; l += dir) { + if (canUseAsTmpLvl(l)) { + break; + } + } + }; + + checkLvls(+1); + checkLvls(-1); // remove the invalid layers; they will be replaced as needed later in this function + + for (var i = layers.length - 1; i >= 0; i--) { + var layer = layers[i]; + + if (layer.invalid) { + removeFromArray(layers, layer); + } + } + }; + + if (!lvlComplete) { + // if the current level is incomplete, then use the closest, best quality layerset temporarily + // and later queue the current layerset so we can get the proper quality level soon + checkTempLevels(); + } else { + // log('level complete, using existing layers\n--'); + return layers; + } + + var getBb = function getBb() { + if (!bb) { + bb = makeBoundingBox(); + + for (var i = 0; i < eles.length; i++) { + updateBoundingBox(bb, eles[i].boundingBox()); + } + } + + return bb; + }; + + var makeLayer = function makeLayer(opts) { + opts = opts || {}; + var after = opts.after; + getBb(); + var area = bb.w * scale * (bb.h * scale); + + if (area > maxLayerArea) { + return null; + } + + var layer = self.makeLayer(bb, lvl); + + if (after != null) { + var index = layers.indexOf(after) + 1; + layers.splice(index, 0, layer); + } else if (opts.insert === undefined || opts.insert) { + // no after specified => first layer made so put at start + layers.unshift(layer); + } // if( tmpLayers ){ + //self.queueLayer( layer ); + // } + + + return layer; + }; + + if (self.skipping && !firstGet) { + // log('skip layers'); + return null; + } // log('do layers'); + + + var layer = null; + var maxElesPerLayer = eles.length / defNumLayers; + var allowLazyQueueing = !firstGet; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var rs = ele._private.rscratch; + var caches = rs.imgLayerCaches = rs.imgLayerCaches || {}; // log('look at ele', ele.id()); + + var existingLayer = caches[lvl]; + + if (existingLayer) { + // reuse layer for later eles + // log('reuse layer for', ele.id()); + layer = existingLayer; + continue; + } + + if (!layer || layer.eles.length >= maxElesPerLayer || !boundingBoxInBoundingBox(layer.bb, ele.boundingBox())) { + // log('make new layer for ele %s', ele.id()); + layer = makeLayer({ + insert: true, + after: layer + }); // if now layer can be built then we can't use layers at this level + + if (!layer) { + return null; + } // log('new layer with id %s', layer.id); + + } + + if (tmpLayers || allowLazyQueueing) { + // log('queue ele %s in layer %s', ele.id(), layer.id); + self.queueLayer(layer, ele); + } else { + // log('draw ele %s in layer %s', ele.id(), layer.id); + self.drawEleInLayer(layer, ele, lvl, pxRatio); + } + + layer.eles.push(ele); + caches[lvl] = layer; + } // log('--'); + + + if (tmpLayers) { + // then we only queued the current layerset and can't draw it yet + return tmpLayers; + } + + if (allowLazyQueueing) { + // log('lazy queue level', lvl); + return null; + } + + return layers; + }; // a layer may want to use an ele cache of a higher level to avoid blurriness + // so the layer level might not equal the ele level + + + LTCp.getEleLevelForLayerLevel = function (lvl, pxRatio) { + return lvl; + }; + + LTCp.drawEleInLayer = function (layer, ele, lvl, pxRatio) { + var self = this; + var r = this.renderer; + var context = layer.context; + var bb = ele.boundingBox(); + + if (bb.w === 0 || bb.h === 0 || !ele.visible()) { + return; + } + + lvl = self.getEleLevelForLayerLevel(lvl, pxRatio); + + { + r.setImgSmoothing(context, false); + } + + { + r.drawCachedElement(context, ele, null, null, lvl, useHighQualityEleTxrReqs); + } + + { + r.setImgSmoothing(context, true); + } + }; + + LTCp.levelIsComplete = function (lvl, eles) { + var self = this; + var layers = self.layersByLevel[lvl]; + + if (!layers || layers.length === 0) { + return false; + } + + var numElesInLayers = 0; + + for (var i = 0; i < layers.length; i++) { + var layer = layers[i]; // if there are any eles needed to be drawn yet, the level is not complete + + if (layer.reqs > 0) { + return false; + } // if the layer is invalid, the level is not complete + + + if (layer.invalid) { + return false; + } + + numElesInLayers += layer.eles.length; + } // we should have exactly the number of eles passed in to be complete + + + if (numElesInLayers !== eles.length) { + return false; + } + + return true; + }; + + LTCp.validateLayersElesOrdering = function (lvl, eles) { + var layers = this.layersByLevel[lvl]; + + if (!layers) { + return; + } // if in a layer the eles are not in the same order, then the layer is invalid + // (i.e. there is an ele in between the eles in the layer) + + + for (var i = 0; i < layers.length; i++) { + var layer = layers[i]; + var offset = -1; // find the offset + + for (var j = 0; j < eles.length; j++) { + if (layer.eles[0] === eles[j]) { + offset = j; + break; + } + } + + if (offset < 0) { + // then the layer has nonexistent elements and is invalid + this.invalidateLayer(layer); + continue; + } // the eles in the layer must be in the same continuous order, else the layer is invalid + + + var o = offset; + + for (var j = 0; j < layer.eles.length; j++) { + if (layer.eles[j] !== eles[o + j]) { + // log('invalidate based on ordering', layer.id); + this.invalidateLayer(layer); + break; + } + } + } + }; + + LTCp.updateElementsInLayers = function (eles, update) { + var self = this; + var isEles = element(eles[0]); // collect udpated elements (cascaded from the layers) and update each + // layer itself along the way + + for (var i = 0; i < eles.length; i++) { + var req = isEles ? null : eles[i]; + var ele = isEles ? eles[i] : eles[i].ele; + var rs = ele._private.rscratch; + var caches = rs.imgLayerCaches = rs.imgLayerCaches || {}; + + for (var l = minLvl; l <= maxLvl; l++) { + var layer = caches[l]; + + if (!layer) { + continue; + } // if update is a request from the ele cache, then it affects only + // the matching level + + + if (req && self.getEleLevelForLayerLevel(layer.level) !== req.level) { + continue; + } + + update(layer, ele, req); + } + } + }; + + LTCp.haveLayers = function () { + var self = this; + var haveLayers = false; + + for (var l = minLvl; l <= maxLvl; l++) { + var layers = self.layersByLevel[l]; + + if (layers && layers.length > 0) { + haveLayers = true; + break; + } + } + + return haveLayers; + }; + + LTCp.invalidateElements = function (eles) { + var self = this; + + if (eles.length === 0) { + return; + } + + self.lastInvalidationTime = performanceNow(); // log('update invalidate layer time from eles'); + + if (eles.length === 0 || !self.haveLayers()) { + return; + } + + self.updateElementsInLayers(eles, function invalAssocLayers(layer, ele, req) { + self.invalidateLayer(layer); + }); + }; + + LTCp.invalidateLayer = function (layer) { + // log('update invalidate layer time'); + this.lastInvalidationTime = performanceNow(); + + if (layer.invalid) { + return; + } // save cycles + + + var lvl = layer.level; + var eles = layer.eles; + var layers = this.layersByLevel[lvl]; // log('invalidate layer', layer.id ); + + removeFromArray(layers, layer); // layer.eles = []; + + layer.elesQueue = []; + layer.invalid = true; + + if (layer.replacement) { + layer.replacement.invalid = true; + } + + for (var i = 0; i < eles.length; i++) { + var caches = eles[i]._private.rscratch.imgLayerCaches; + + if (caches) { + caches[lvl] = null; + } + } + }; + + LTCp.refineElementTextures = function (eles) { + var self = this; // log('refine', eles.length); + + self.updateElementsInLayers(eles, function refineEachEle(layer, ele, req) { + var rLyr = layer.replacement; + + if (!rLyr) { + rLyr = layer.replacement = self.makeLayer(layer.bb, layer.level); + rLyr.replaces = layer; + rLyr.eles = layer.eles; // log('make replacement layer %s for %s with level %s', rLyr.id, layer.id, rLyr.level); + } + + if (!rLyr.reqs) { + for (var i = 0; i < rLyr.eles.length; i++) { + self.queueLayer(rLyr, rLyr.eles[i]); + } // log('queue replacement layer refinement', rLyr.id); + + } + }); + }; + + LTCp.enqueueElementRefinement = function (ele) { + + this.eleTxrDeqs.merge(ele); + this.scheduleElementRefinement(); + }; + + LTCp.queueLayer = function (layer, ele) { + var self = this; + var q = self.layersQueue; + var elesQ = layer.elesQueue; + var hasId = elesQ.hasId = elesQ.hasId || {}; // if a layer is going to be replaced, queuing is a waste of time + + if (layer.replacement) { + return; + } + + if (ele) { + if (hasId[ele.id()]) { + return; + } + + elesQ.push(ele); + hasId[ele.id()] = true; + } + + if (layer.reqs) { + layer.reqs++; + q.updateItem(layer); + } else { + layer.reqs = 1; + q.push(layer); + } + }; + + LTCp.dequeue = function (pxRatio) { + var self = this; + var q = self.layersQueue; + var deqd = []; + var eleDeqs = 0; + + while (eleDeqs < maxDeqSize) { + if (q.size() === 0) { + break; + } + + var layer = q.peek(); // if a layer has been or will be replaced, then don't waste time with it + + if (layer.replacement) { + // log('layer %s in queue skipped b/c it already has a replacement', layer.id); + q.pop(); + continue; + } // if this is a replacement layer that has been superceded, then forget it + + + if (layer.replaces && layer !== layer.replaces.replacement) { + // log('layer is no longer the most uptodate replacement; dequeued', layer.id) + q.pop(); + continue; + } + + if (layer.invalid) { + // log('replacement layer %s is invalid; dequeued', layer.id); + q.pop(); + continue; + } + + var ele = layer.elesQueue.shift(); + + if (ele) { + // log('dequeue layer %s', layer.id); + self.drawEleInLayer(layer, ele, layer.level, pxRatio); + eleDeqs++; + } + + if (deqd.length === 0) { + // we need only one entry in deqd to queue redrawing etc + deqd.push(true); + } // if the layer has all its eles done, then remove from the queue + + + if (layer.elesQueue.length === 0) { + q.pop(); + layer.reqs = 0; // log('dequeue of layer %s complete', layer.id); + // when a replacement layer is dequeued, it replaces the old layer in the level + + if (layer.replaces) { + self.applyLayerReplacement(layer); + } + + self.requestRedraw(); + } + } + + return deqd; + }; + + LTCp.applyLayerReplacement = function (layer) { + var self = this; + var layersInLevel = self.layersByLevel[layer.level]; + var replaced = layer.replaces; + var index = layersInLevel.indexOf(replaced); // if the replaced layer is not in the active list for the level, then replacing + // refs would be a mistake (i.e. overwriting the true active layer) + + if (index < 0 || replaced.invalid) { + // log('replacement layer would have no effect', layer.id); + return; + } + + layersInLevel[index] = layer; // replace level ref + // replace refs in eles + + for (var i = 0; i < layer.eles.length; i++) { + var _p = layer.eles[i]._private; + var cache = _p.imgLayerCaches = _p.imgLayerCaches || {}; + + if (cache) { + cache[layer.level] = layer; + } + } // log('apply replacement layer %s over %s', layer.id, replaced.id); + + + self.requestRedraw(); + }; + + LTCp.requestRedraw = debounce_1(function () { + var r = this.renderer; + r.redrawHint('eles', true); + r.redrawHint('drag', true); + r.redraw(); + }, 100); + LTCp.setupDequeueing = defs.setupDequeueing({ + deqRedrawThreshold: deqRedrawThreshold, + deqCost: deqCost, + deqAvgCost: deqAvgCost, + deqNoDrawCost: deqNoDrawCost, + deqFastCost: deqFastCost, + deq: function deq(self, pxRatio) { + return self.dequeue(pxRatio); + }, + onDeqd: noop$1, + shouldRedraw: trueify, + priority: function priority(self) { + return self.renderer.beforeRenderPriorities.lyrTxrDeq; + } + }); + + var CRp$a = {}; + var impl; + + function polygon(context, points) { + for (var i = 0; i < points.length; i++) { + var pt = points[i]; + context.lineTo(pt.x, pt.y); + } + } + + function triangleBackcurve(context, points, controlPoint) { + var firstPt; + + for (var i = 0; i < points.length; i++) { + var pt = points[i]; + + if (i === 0) { + firstPt = pt; + } + + context.lineTo(pt.x, pt.y); + } + + context.quadraticCurveTo(controlPoint.x, controlPoint.y, firstPt.x, firstPt.y); + } + + function triangleTee(context, trianglePoints, teePoints) { + if (context.beginPath) { + context.beginPath(); + } + + var triPts = trianglePoints; + + for (var i = 0; i < triPts.length; i++) { + var pt = triPts[i]; + context.lineTo(pt.x, pt.y); + } + + var teePts = teePoints; + var firstTeePt = teePoints[0]; + context.moveTo(firstTeePt.x, firstTeePt.y); + + for (var i = 1; i < teePts.length; i++) { + var pt = teePts[i]; + context.lineTo(pt.x, pt.y); + } + + if (context.closePath) { + context.closePath(); + } + } + + function circleTriangle(context, trianglePoints, rx, ry, r) { + if (context.beginPath) { + context.beginPath(); + } + + context.arc(rx, ry, r, 0, Math.PI * 2, false); + var triPts = trianglePoints; + var firstTrPt = triPts[0]; + context.moveTo(firstTrPt.x, firstTrPt.y); + + for (var i = 0; i < triPts.length; i++) { + var pt = triPts[i]; + context.lineTo(pt.x, pt.y); + } + + if (context.closePath) { + context.closePath(); + } + } + + function circle(context, rx, ry, r) { + context.arc(rx, ry, r, 0, Math.PI * 2, false); + } + + CRp$a.arrowShapeImpl = function (name) { + return (impl || (impl = { + 'polygon': polygon, + 'triangle-backcurve': triangleBackcurve, + 'triangle-tee': triangleTee, + 'circle-triangle': circleTriangle, + 'triangle-cross': triangleTee, + 'circle': circle + }))[name]; + }; + + var CRp$9 = {}; + + CRp$9.drawElement = function (context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity) { + var r = this; + + if (ele.isNode()) { + r.drawNode(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity); + } else { + r.drawEdge(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity); + } + }; + + CRp$9.drawElementOverlay = function (context, ele) { + var r = this; + + if (ele.isNode()) { + r.drawNodeOverlay(context, ele); + } else { + r.drawEdgeOverlay(context, ele); + } + }; + + CRp$9.drawElementUnderlay = function (context, ele) { + var r = this; + + if (ele.isNode()) { + r.drawNodeUnderlay(context, ele); + } else { + r.drawEdgeUnderlay(context, ele); + } + }; + + CRp$9.drawCachedElementPortion = function (context, ele, eleTxrCache, pxRatio, lvl, reason, getRotation, getOpacity) { + var r = this; + var bb = eleTxrCache.getBoundingBox(ele); + + if (bb.w === 0 || bb.h === 0) { + return; + } // ignore zero size case + + + var eleCache = eleTxrCache.getElement(ele, bb, pxRatio, lvl, reason); + + if (eleCache != null) { + var opacity = getOpacity(r, ele); + + if (opacity === 0) { + return; + } + + var theta = getRotation(r, ele); + var x1 = bb.x1, + y1 = bb.y1, + w = bb.w, + h = bb.h; + var x, y, sx, sy, smooth; + + if (theta !== 0) { + var rotPt = eleTxrCache.getRotationPoint(ele); + sx = rotPt.x; + sy = rotPt.y; + context.translate(sx, sy); + context.rotate(theta); + smooth = r.getImgSmoothing(context); + + if (!smooth) { + r.setImgSmoothing(context, true); + } + + var off = eleTxrCache.getRotationOffset(ele); + x = off.x; + y = off.y; + } else { + x = x1; + y = y1; + } + + var oldGlobalAlpha; + + if (opacity !== 1) { + oldGlobalAlpha = context.globalAlpha; + context.globalAlpha = oldGlobalAlpha * opacity; + } + + context.drawImage(eleCache.texture.canvas, eleCache.x, 0, eleCache.width, eleCache.height, x, y, w, h); + + if (opacity !== 1) { + context.globalAlpha = oldGlobalAlpha; + } + + if (theta !== 0) { + context.rotate(-theta); + context.translate(-sx, -sy); + + if (!smooth) { + r.setImgSmoothing(context, false); + } + } + } else { + eleTxrCache.drawElement(context, ele); // direct draw fallback + } + }; + + var getZeroRotation = function getZeroRotation() { + return 0; + }; + + var getLabelRotation = function getLabelRotation(r, ele) { + return r.getTextAngle(ele, null); + }; + + var getSourceLabelRotation = function getSourceLabelRotation(r, ele) { + return r.getTextAngle(ele, 'source'); + }; + + var getTargetLabelRotation = function getTargetLabelRotation(r, ele) { + return r.getTextAngle(ele, 'target'); + }; + + var getOpacity = function getOpacity(r, ele) { + return ele.effectiveOpacity(); + }; + + var getTextOpacity = function getTextOpacity(e, ele) { + return ele.pstyle('text-opacity').pfValue * ele.effectiveOpacity(); + }; + + CRp$9.drawCachedElement = function (context, ele, pxRatio, extent, lvl, requestHighQuality) { + var r = this; + var _r$data = r.data, + eleTxrCache = _r$data.eleTxrCache, + lblTxrCache = _r$data.lblTxrCache, + slbTxrCache = _r$data.slbTxrCache, + tlbTxrCache = _r$data.tlbTxrCache; + var bb = ele.boundingBox(); + var reason = requestHighQuality === true ? eleTxrCache.reasons.highQuality : null; + + if (bb.w === 0 || bb.h === 0 || !ele.visible()) { + return; + } + + if (!extent || boundingBoxesIntersect(bb, extent)) { + var isEdge = ele.isEdge(); + + var badLine = ele.element()._private.rscratch.badLine; + + r.drawElementUnderlay(context, ele); + r.drawCachedElementPortion(context, ele, eleTxrCache, pxRatio, lvl, reason, getZeroRotation, getOpacity); + + if (!isEdge || !badLine) { + r.drawCachedElementPortion(context, ele, lblTxrCache, pxRatio, lvl, reason, getLabelRotation, getTextOpacity); + } + + if (isEdge && !badLine) { + r.drawCachedElementPortion(context, ele, slbTxrCache, pxRatio, lvl, reason, getSourceLabelRotation, getTextOpacity); + r.drawCachedElementPortion(context, ele, tlbTxrCache, pxRatio, lvl, reason, getTargetLabelRotation, getTextOpacity); + } + + r.drawElementOverlay(context, ele); + } + }; + + CRp$9.drawElements = function (context, eles) { + var r = this; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + r.drawElement(context, ele); + } + }; + + CRp$9.drawCachedElements = function (context, eles, pxRatio, extent) { + var r = this; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + r.drawCachedElement(context, ele, pxRatio, extent); + } + }; + + CRp$9.drawCachedNodes = function (context, eles, pxRatio, extent) { + var r = this; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + + if (!ele.isNode()) { + continue; + } + + r.drawCachedElement(context, ele, pxRatio, extent); + } + }; + + CRp$9.drawLayeredElements = function (context, eles, pxRatio, extent) { + var r = this; + var layers = r.data.lyrTxrCache.getLayers(eles, pxRatio); + + if (layers) { + for (var i = 0; i < layers.length; i++) { + var layer = layers[i]; + var bb = layer.bb; + + if (bb.w === 0 || bb.h === 0) { + continue; + } + + context.drawImage(layer.canvas, bb.x1, bb.y1, bb.w, bb.h); + } + } else { + // fall back on plain caching if no layers + r.drawCachedElements(context, eles, pxRatio, extent); + } + }; + + /* global Path2D */ + var CRp$8 = {}; + + CRp$8.drawEdge = function (context, edge, shiftToOriginWithBb) { + var drawLabel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; + var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true; + var r = this; + var rs = edge._private.rscratch; + + if (shouldDrawOpacity && !edge.visible()) { + return; + } // if bezier ctrl pts can not be calculated, then die + + + if (rs.badLine || rs.allpts == null || isNaN(rs.allpts[0])) { + // isNaN in case edge is impossible and browser bugs (e.g. safari) + return; + } + + var bb; + + if (shiftToOriginWithBb) { + bb = shiftToOriginWithBb; + context.translate(-bb.x1, -bb.y1); + } + + var opacity = shouldDrawOpacity ? edge.pstyle('opacity').value : 1; + var lineOpacity = shouldDrawOpacity ? edge.pstyle('line-opacity').value : 1; + var curveStyle = edge.pstyle('curve-style').value; + var lineStyle = edge.pstyle('line-style').value; + var edgeWidth = edge.pstyle('width').pfValue; + var lineCap = edge.pstyle('line-cap').value; + var effectiveLineOpacity = opacity * lineOpacity; // separate arrow opacity would require arrow-opacity property + + var effectiveArrowOpacity = opacity * lineOpacity; + + var drawLine = function drawLine() { + var strokeOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : effectiveLineOpacity; + + if (curveStyle === 'straight-triangle') { + r.eleStrokeStyle(context, edge, strokeOpacity); + r.drawEdgeTrianglePath(edge, context, rs.allpts); + } else { + context.lineWidth = edgeWidth; + context.lineCap = lineCap; + r.eleStrokeStyle(context, edge, strokeOpacity); + r.drawEdgePath(edge, context, rs.allpts, lineStyle); + context.lineCap = 'butt'; // reset for other drawing functions + } + }; + + var drawOverlay = function drawOverlay() { + if (!shouldDrawOverlay) { + return; + } + + r.drawEdgeOverlay(context, edge); + }; + + var drawUnderlay = function drawUnderlay() { + if (!shouldDrawOverlay) { + return; + } + + r.drawEdgeUnderlay(context, edge); + }; + + var drawArrows = function drawArrows() { + var arrowOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : effectiveArrowOpacity; + r.drawArrowheads(context, edge, arrowOpacity); + }; + + var drawText = function drawText() { + r.drawElementText(context, edge, null, drawLabel); + }; + + context.lineJoin = 'round'; + var ghost = edge.pstyle('ghost').value === 'yes'; + + if (ghost) { + var gx = edge.pstyle('ghost-offset-x').pfValue; + var gy = edge.pstyle('ghost-offset-y').pfValue; + var ghostOpacity = edge.pstyle('ghost-opacity').value; + var effectiveGhostOpacity = effectiveLineOpacity * ghostOpacity; + context.translate(gx, gy); + drawLine(effectiveGhostOpacity); + drawArrows(effectiveGhostOpacity); + context.translate(-gx, -gy); + } + + drawUnderlay(); + drawLine(); + drawArrows(); + drawOverlay(); + drawText(); + + if (shiftToOriginWithBb) { + context.translate(bb.x1, bb.y1); + } + }; + + var drawEdgeOverlayUnderlay = function drawEdgeOverlayUnderlay(overlayOrUnderlay) { + if (!['overlay', 'underlay'].includes(overlayOrUnderlay)) { + throw new Error('Invalid state'); + } + + return function (context, edge) { + if (!edge.visible()) { + return; + } + + var opacity = edge.pstyle("".concat(overlayOrUnderlay, "-opacity")).value; + + if (opacity === 0) { + return; + } + + var r = this; + var usePaths = r.usePaths(); + var rs = edge._private.rscratch; + var padding = edge.pstyle("".concat(overlayOrUnderlay, "-padding")).pfValue; + var width = 2 * padding; + var color = edge.pstyle("".concat(overlayOrUnderlay, "-color")).value; + context.lineWidth = width; + + if (rs.edgeType === 'self' && !usePaths) { + context.lineCap = 'butt'; + } else { + context.lineCap = 'round'; + } + + r.colorStrokeStyle(context, color[0], color[1], color[2], opacity); + r.drawEdgePath(edge, context, rs.allpts, 'solid'); + }; + }; + + CRp$8.drawEdgeOverlay = drawEdgeOverlayUnderlay('overlay'); + CRp$8.drawEdgeUnderlay = drawEdgeOverlayUnderlay('underlay'); + + CRp$8.drawEdgePath = function (edge, context, pts, type) { + var rs = edge._private.rscratch; + var canvasCxt = context; + var path; + var pathCacheHit = false; + var usePaths = this.usePaths(); + var lineDashPattern = edge.pstyle('line-dash-pattern').pfValue; + var lineDashOffset = edge.pstyle('line-dash-offset').pfValue; + + if (usePaths) { + var pathCacheKey = pts.join('$'); + var keyMatches = rs.pathCacheKey && rs.pathCacheKey === pathCacheKey; + + if (keyMatches) { + path = context = rs.pathCache; + pathCacheHit = true; + } else { + path = context = new Path2D(); + rs.pathCacheKey = pathCacheKey; + rs.pathCache = path; + } + } + + if (canvasCxt.setLineDash) { + // for very outofdate browsers + switch (type) { + case 'dotted': + canvasCxt.setLineDash([1, 1]); + break; + + case 'dashed': + canvasCxt.setLineDash(lineDashPattern); + canvasCxt.lineDashOffset = lineDashOffset; + break; + + case 'solid': + canvasCxt.setLineDash([]); + break; + } + } + + if (!pathCacheHit && !rs.badLine) { + if (context.beginPath) { + context.beginPath(); + } + + context.moveTo(pts[0], pts[1]); + + switch (rs.edgeType) { + case 'bezier': + case 'self': + case 'compound': + case 'multibezier': + for (var i = 2; i + 3 < pts.length; i += 4) { + context.quadraticCurveTo(pts[i], pts[i + 1], pts[i + 2], pts[i + 3]); + } + + break; + + case 'straight': + case 'segments': + case 'haystack': + for (var _i = 2; _i + 1 < pts.length; _i += 2) { + context.lineTo(pts[_i], pts[_i + 1]); + } + + break; + } + } + + context = canvasCxt; + + if (usePaths) { + context.stroke(path); + } else { + context.stroke(); + } // reset any line dashes + + + if (context.setLineDash) { + // for very outofdate browsers + context.setLineDash([]); + } + }; + + CRp$8.drawEdgeTrianglePath = function (edge, context, pts) { + // use line stroke style for triangle fill style + context.fillStyle = context.strokeStyle; + var edgeWidth = edge.pstyle('width').pfValue; + + for (var i = 0; i + 1 < pts.length; i += 2) { + var vector = [pts[i + 2] - pts[i], pts[i + 3] - pts[i + 1]]; + var length = Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1]); + var normal = [vector[1] / length, -vector[0] / length]; + var triangleHead = [normal[0] * edgeWidth / 2, normal[1] * edgeWidth / 2]; + context.beginPath(); + context.moveTo(pts[i] - triangleHead[0], pts[i + 1] - triangleHead[1]); + context.lineTo(pts[i] + triangleHead[0], pts[i + 1] + triangleHead[1]); + context.lineTo(pts[i + 2], pts[i + 3]); + context.closePath(); + context.fill(); + } + }; + + CRp$8.drawArrowheads = function (context, edge, opacity) { + var rs = edge._private.rscratch; + var isHaystack = rs.edgeType === 'haystack'; + + if (!isHaystack) { + this.drawArrowhead(context, edge, 'source', rs.arrowStartX, rs.arrowStartY, rs.srcArrowAngle, opacity); + } + + this.drawArrowhead(context, edge, 'mid-target', rs.midX, rs.midY, rs.midtgtArrowAngle, opacity); + this.drawArrowhead(context, edge, 'mid-source', rs.midX, rs.midY, rs.midsrcArrowAngle, opacity); + + if (!isHaystack) { + this.drawArrowhead(context, edge, 'target', rs.arrowEndX, rs.arrowEndY, rs.tgtArrowAngle, opacity); + } + }; + + CRp$8.drawArrowhead = function (context, edge, prefix, x, y, angle, opacity) { + if (isNaN(x) || x == null || isNaN(y) || y == null || isNaN(angle) || angle == null) { + return; + } + + var self = this; + var arrowShape = edge.pstyle(prefix + '-arrow-shape').value; + + if (arrowShape === 'none') { + return; + } + + var arrowClearFill = edge.pstyle(prefix + '-arrow-fill').value === 'hollow' ? 'both' : 'filled'; + var arrowFill = edge.pstyle(prefix + '-arrow-fill').value; + var edgeWidth = edge.pstyle('width').pfValue; + var edgeOpacity = edge.pstyle('opacity').value; + + if (opacity === undefined) { + opacity = edgeOpacity; + } + + var gco = context.globalCompositeOperation; + + if (opacity !== 1 || arrowFill === 'hollow') { + // then extra clear is needed + context.globalCompositeOperation = 'destination-out'; + self.colorFillStyle(context, 255, 255, 255, 1); + self.colorStrokeStyle(context, 255, 255, 255, 1); + self.drawArrowShape(edge, context, arrowClearFill, edgeWidth, arrowShape, x, y, angle); + context.globalCompositeOperation = gco; + } // otherwise, the opaque arrow clears it for free :) + + + var color = edge.pstyle(prefix + '-arrow-color').value; + self.colorFillStyle(context, color[0], color[1], color[2], opacity); + self.colorStrokeStyle(context, color[0], color[1], color[2], opacity); + self.drawArrowShape(edge, context, arrowFill, edgeWidth, arrowShape, x, y, angle); + }; + + CRp$8.drawArrowShape = function (edge, context, fill, edgeWidth, shape, x, y, angle) { + var r = this; + var usePaths = this.usePaths() && shape !== 'triangle-cross'; + var pathCacheHit = false; + var path; + var canvasContext = context; + var translation = { + x: x, + y: y + }; + var scale = edge.pstyle('arrow-scale').value; + var size = this.getArrowWidth(edgeWidth, scale); + var shapeImpl = r.arrowShapes[shape]; + + if (usePaths) { + var cache = r.arrowPathCache = r.arrowPathCache || []; + var key = hashString(shape); + var cachedPath = cache[key]; + + if (cachedPath != null) { + path = context = cachedPath; + pathCacheHit = true; + } else { + path = context = new Path2D(); + cache[key] = path; + } + } + + if (!pathCacheHit) { + if (context.beginPath) { + context.beginPath(); + } + + if (usePaths) { + // store in the path cache with values easily manipulated later + shapeImpl.draw(context, 1, 0, { + x: 0, + y: 0 + }, 1); + } else { + shapeImpl.draw(context, size, angle, translation, edgeWidth); + } + + if (context.closePath) { + context.closePath(); + } + } + + context = canvasContext; + + if (usePaths) { + // set transform to arrow position/orientation + context.translate(x, y); + context.rotate(angle); + context.scale(size, size); + } + + if (fill === 'filled' || fill === 'both') { + if (usePaths) { + context.fill(path); + } else { + context.fill(); + } + } + + if (fill === 'hollow' || fill === 'both') { + context.lineWidth = (shapeImpl.matchEdgeWidth ? edgeWidth : 1) / (usePaths ? size : 1); + context.lineJoin = 'miter'; + + if (usePaths) { + context.stroke(path); + } else { + context.stroke(); + } + } + + if (usePaths) { + // reset transform by applying inverse + context.scale(1 / size, 1 / size); + context.rotate(-angle); + context.translate(-x, -y); + } + }; + + var CRp$7 = {}; + + CRp$7.safeDrawImage = function (context, img, ix, iy, iw, ih, x, y, w, h) { + // detect problematic cases for old browsers with bad images (cheaper than try-catch) + if (iw <= 0 || ih <= 0 || w <= 0 || h <= 0) { + return; + } + + try { + context.drawImage(img, ix, iy, iw, ih, x, y, w, h); + } catch (e) { + warn(e); + } + }; + + CRp$7.drawInscribedImage = function (context, img, node, index, nodeOpacity) { + var r = this; + var pos = node.position(); + var nodeX = pos.x; + var nodeY = pos.y; + var styleObj = node.cy().style(); + var getIndexedStyle = styleObj.getIndexedStyle.bind(styleObj); + var fit = getIndexedStyle(node, 'background-fit', 'value', index); + var repeat = getIndexedStyle(node, 'background-repeat', 'value', index); + var nodeW = node.width(); + var nodeH = node.height(); + var paddingX2 = node.padding() * 2; + var nodeTW = nodeW + (getIndexedStyle(node, 'background-width-relative-to', 'value', index) === 'inner' ? 0 : paddingX2); + var nodeTH = nodeH + (getIndexedStyle(node, 'background-height-relative-to', 'value', index) === 'inner' ? 0 : paddingX2); + var rs = node._private.rscratch; + var clip = getIndexedStyle(node, 'background-clip', 'value', index); + var shouldClip = clip === 'node'; + var imgOpacity = getIndexedStyle(node, 'background-image-opacity', 'value', index) * nodeOpacity; + var smooth = getIndexedStyle(node, 'background-image-smoothing', 'value', index); + var imgW = img.width || img.cachedW; + var imgH = img.height || img.cachedH; // workaround for broken browsers like ie + + if (null == imgW || null == imgH) { + document.body.appendChild(img); // eslint-disable-line no-undef + + imgW = img.cachedW = img.width || img.offsetWidth; + imgH = img.cachedH = img.height || img.offsetHeight; + document.body.removeChild(img); // eslint-disable-line no-undef + } + + var w = imgW; + var h = imgH; + + if (getIndexedStyle(node, 'background-width', 'value', index) !== 'auto') { + if (getIndexedStyle(node, 'background-width', 'units', index) === '%') { + w = getIndexedStyle(node, 'background-width', 'pfValue', index) * nodeTW; + } else { + w = getIndexedStyle(node, 'background-width', 'pfValue', index); + } + } + + if (getIndexedStyle(node, 'background-height', 'value', index) !== 'auto') { + if (getIndexedStyle(node, 'background-height', 'units', index) === '%') { + h = getIndexedStyle(node, 'background-height', 'pfValue', index) * nodeTH; + } else { + h = getIndexedStyle(node, 'background-height', 'pfValue', index); + } + } + + if (w === 0 || h === 0) { + return; // no point in drawing empty image (and chrome is broken in this case) + } + + if (fit === 'contain') { + var scale = Math.min(nodeTW / w, nodeTH / h); + w *= scale; + h *= scale; + } else if (fit === 'cover') { + var scale = Math.max(nodeTW / w, nodeTH / h); + w *= scale; + h *= scale; + } + + var x = nodeX - nodeTW / 2; // left + + var posXUnits = getIndexedStyle(node, 'background-position-x', 'units', index); + var posXPfVal = getIndexedStyle(node, 'background-position-x', 'pfValue', index); + + if (posXUnits === '%') { + x += (nodeTW - w) * posXPfVal; + } else { + x += posXPfVal; + } + + var offXUnits = getIndexedStyle(node, 'background-offset-x', 'units', index); + var offXPfVal = getIndexedStyle(node, 'background-offset-x', 'pfValue', index); + + if (offXUnits === '%') { + x += (nodeTW - w) * offXPfVal; + } else { + x += offXPfVal; + } + + var y = nodeY - nodeTH / 2; // top + + var posYUnits = getIndexedStyle(node, 'background-position-y', 'units', index); + var posYPfVal = getIndexedStyle(node, 'background-position-y', 'pfValue', index); + + if (posYUnits === '%') { + y += (nodeTH - h) * posYPfVal; + } else { + y += posYPfVal; + } + + var offYUnits = getIndexedStyle(node, 'background-offset-y', 'units', index); + var offYPfVal = getIndexedStyle(node, 'background-offset-y', 'pfValue', index); + + if (offYUnits === '%') { + y += (nodeTH - h) * offYPfVal; + } else { + y += offYPfVal; + } + + if (rs.pathCache) { + x -= nodeX; + y -= nodeY; + nodeX = 0; + nodeY = 0; + } + + var gAlpha = context.globalAlpha; + context.globalAlpha = imgOpacity; + var smoothingEnabled = r.getImgSmoothing(context); + var isSmoothingSwitched = false; + + if (smooth === 'no' && smoothingEnabled) { + r.setImgSmoothing(context, false); + isSmoothingSwitched = true; + } else if (smooth === 'yes' && !smoothingEnabled) { + r.setImgSmoothing(context, true); + isSmoothingSwitched = true; + } + + if (repeat === 'no-repeat') { + if (shouldClip) { + context.save(); + + if (rs.pathCache) { + context.clip(rs.pathCache); + } else { + r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH); + context.clip(); + } + } + + r.safeDrawImage(context, img, 0, 0, imgW, imgH, x, y, w, h); + + if (shouldClip) { + context.restore(); + } + } else { + var pattern = context.createPattern(img, repeat); + context.fillStyle = pattern; + r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH); + context.translate(x, y); + context.fill(); + context.translate(-x, -y); + } + + context.globalAlpha = gAlpha; + + if (isSmoothingSwitched) { + r.setImgSmoothing(context, smoothingEnabled); + } + }; + + var CRp$6 = {}; + + CRp$6.eleTextBiggerThanMin = function (ele, scale) { + if (!scale) { + var zoom = ele.cy().zoom(); + var pxRatio = this.getPixelRatio(); + var lvl = Math.ceil(log2(zoom * pxRatio)); // the effective texture level + + scale = Math.pow(2, lvl); + } + + var computedSize = ele.pstyle('font-size').pfValue * scale; + var minSize = ele.pstyle('min-zoomed-font-size').pfValue; + + if (computedSize < minSize) { + return false; + } + + return true; + }; + + CRp$6.drawElementText = function (context, ele, shiftToOriginWithBb, force, prefix) { + var useEleOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true; + var r = this; + + if (force == null) { + if (useEleOpacity && !r.eleTextBiggerThanMin(ele)) { + return; + } + } else if (force === false) { + return; + } + + if (ele.isNode()) { + var label = ele.pstyle('label'); + + if (!label || !label.value) { + return; + } + + var justification = r.getLabelJustification(ele); + context.textAlign = justification; + context.textBaseline = 'bottom'; + } else { + var badLine = ele.element()._private.rscratch.badLine; + + var _label = ele.pstyle('label'); + + var srcLabel = ele.pstyle('source-label'); + var tgtLabel = ele.pstyle('target-label'); + + if (badLine || (!_label || !_label.value) && (!srcLabel || !srcLabel.value) && (!tgtLabel || !tgtLabel.value)) { + return; + } + + context.textAlign = 'center'; + context.textBaseline = 'bottom'; + } + + var applyRotation = !shiftToOriginWithBb; + var bb; + + if (shiftToOriginWithBb) { + bb = shiftToOriginWithBb; + context.translate(-bb.x1, -bb.y1); + } + + if (prefix == null) { + r.drawText(context, ele, null, applyRotation, useEleOpacity); + + if (ele.isEdge()) { + r.drawText(context, ele, 'source', applyRotation, useEleOpacity); + r.drawText(context, ele, 'target', applyRotation, useEleOpacity); + } + } else { + r.drawText(context, ele, prefix, applyRotation, useEleOpacity); + } + + if (shiftToOriginWithBb) { + context.translate(bb.x1, bb.y1); + } + }; + + CRp$6.getFontCache = function (context) { + var cache; + this.fontCaches = this.fontCaches || []; + + for (var i = 0; i < this.fontCaches.length; i++) { + cache = this.fontCaches[i]; + + if (cache.context === context) { + return cache; + } + } + + cache = { + context: context + }; + this.fontCaches.push(cache); + return cache; + }; // set up canvas context with font + // returns transformed text string + + + CRp$6.setupTextStyle = function (context, ele) { + var useEleOpacity = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + // Font style + var labelStyle = ele.pstyle('font-style').strValue; + var labelSize = ele.pstyle('font-size').pfValue + 'px'; + var labelFamily = ele.pstyle('font-family').strValue; + var labelWeight = ele.pstyle('font-weight').strValue; + var opacity = useEleOpacity ? ele.effectiveOpacity() * ele.pstyle('text-opacity').value : 1; + var outlineOpacity = ele.pstyle('text-outline-opacity').value * opacity; + var color = ele.pstyle('color').value; + var outlineColor = ele.pstyle('text-outline-color').value; + context.font = labelStyle + ' ' + labelWeight + ' ' + labelSize + ' ' + labelFamily; + context.lineJoin = 'round'; // so text outlines aren't jagged + + this.colorFillStyle(context, color[0], color[1], color[2], opacity); + this.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], outlineOpacity); + }; // TODO ensure re-used + + + function roundRect(ctx, x, y, width, height) { + var radius = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 5; + ctx.beginPath(); + ctx.moveTo(x + radius, y); + ctx.lineTo(x + width - radius, y); + ctx.quadraticCurveTo(x + width, y, x + width, y + radius); + ctx.lineTo(x + width, y + height - radius); + ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height); + ctx.lineTo(x + radius, y + height); + ctx.quadraticCurveTo(x, y + height, x, y + height - radius); + ctx.lineTo(x, y + radius); + ctx.quadraticCurveTo(x, y, x + radius, y); + ctx.closePath(); + ctx.fill(); + } + + CRp$6.getTextAngle = function (ele, prefix) { + var theta; + var _p = ele._private; + var rscratch = _p.rscratch; + var pdash = prefix ? prefix + '-' : ''; + var rotation = ele.pstyle(pdash + 'text-rotation'); + var textAngle = getPrefixedProperty(rscratch, 'labelAngle', prefix); + + if (rotation.strValue === 'autorotate') { + theta = ele.isEdge() ? textAngle : 0; + } else if (rotation.strValue === 'none') { + theta = 0; + } else { + theta = rotation.pfValue; + } + + return theta; + }; + + CRp$6.drawText = function (context, ele, prefix) { + var applyRotation = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + var useEleOpacity = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; + var _p = ele._private; + var rscratch = _p.rscratch; + var parentOpacity = useEleOpacity ? ele.effectiveOpacity() : 1; + + if (useEleOpacity && (parentOpacity === 0 || ele.pstyle('text-opacity').value === 0)) { + return; + } // use 'main' as an alias for the main label (i.e. null prefix) + + + if (prefix === 'main') { + prefix = null; + } + + var textX = getPrefixedProperty(rscratch, 'labelX', prefix); + var textY = getPrefixedProperty(rscratch, 'labelY', prefix); + var orgTextX, orgTextY; // used for rotation + + var text = this.getLabelText(ele, prefix); + + if (text != null && text !== '' && !isNaN(textX) && !isNaN(textY)) { + this.setupTextStyle(context, ele, useEleOpacity); + var pdash = prefix ? prefix + '-' : ''; + var textW = getPrefixedProperty(rscratch, 'labelWidth', prefix); + var textH = getPrefixedProperty(rscratch, 'labelHeight', prefix); + var marginX = ele.pstyle(pdash + 'text-margin-x').pfValue; + var marginY = ele.pstyle(pdash + 'text-margin-y').pfValue; + var isEdge = ele.isEdge(); + var halign = ele.pstyle('text-halign').value; + var valign = ele.pstyle('text-valign').value; + + if (isEdge) { + halign = 'center'; + valign = 'center'; + } + + textX += marginX; + textY += marginY; + var theta; + + if (!applyRotation) { + theta = 0; + } else { + theta = this.getTextAngle(ele, prefix); + } + + if (theta !== 0) { + orgTextX = textX; + orgTextY = textY; + context.translate(orgTextX, orgTextY); + context.rotate(theta); + textX = 0; + textY = 0; + } + + switch (valign) { + case 'top': + break; + + case 'center': + textY += textH / 2; + break; + + case 'bottom': + textY += textH; + break; + } + + var backgroundOpacity = ele.pstyle('text-background-opacity').value; + var borderOpacity = ele.pstyle('text-border-opacity').value; + var textBorderWidth = ele.pstyle('text-border-width').pfValue; + var backgroundPadding = ele.pstyle('text-background-padding').pfValue; + + if (backgroundOpacity > 0 || textBorderWidth > 0 && borderOpacity > 0) { + var bgX = textX - backgroundPadding; + + switch (halign) { + case 'left': + bgX -= textW; + break; + + case 'center': + bgX -= textW / 2; + break; + } + + var bgY = textY - textH - backgroundPadding; + var bgW = textW + 2 * backgroundPadding; + var bgH = textH + 2 * backgroundPadding; + + if (backgroundOpacity > 0) { + var textFill = context.fillStyle; + var textBackgroundColor = ele.pstyle('text-background-color').value; + context.fillStyle = 'rgba(' + textBackgroundColor[0] + ',' + textBackgroundColor[1] + ',' + textBackgroundColor[2] + ',' + backgroundOpacity * parentOpacity + ')'; + var styleShape = ele.pstyle('text-background-shape').strValue; + + if (styleShape.indexOf('round') === 0) { + roundRect(context, bgX, bgY, bgW, bgH, 2); + } else { + context.fillRect(bgX, bgY, bgW, bgH); + } + + context.fillStyle = textFill; + } + + if (textBorderWidth > 0 && borderOpacity > 0) { + var textStroke = context.strokeStyle; + var textLineWidth = context.lineWidth; + var textBorderColor = ele.pstyle('text-border-color').value; + var textBorderStyle = ele.pstyle('text-border-style').value; + context.strokeStyle = 'rgba(' + textBorderColor[0] + ',' + textBorderColor[1] + ',' + textBorderColor[2] + ',' + borderOpacity * parentOpacity + ')'; + context.lineWidth = textBorderWidth; + + if (context.setLineDash) { + // for very outofdate browsers + switch (textBorderStyle) { + case 'dotted': + context.setLineDash([1, 1]); + break; + + case 'dashed': + context.setLineDash([4, 2]); + break; + + case 'double': + context.lineWidth = textBorderWidth / 4; // 50% reserved for white between the two borders + + context.setLineDash([]); + break; + + case 'solid': + context.setLineDash([]); + break; + } + } + + context.strokeRect(bgX, bgY, bgW, bgH); + + if (textBorderStyle === 'double') { + var whiteWidth = textBorderWidth / 2; + context.strokeRect(bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2); + } + + if (context.setLineDash) { + // for very outofdate browsers + context.setLineDash([]); + } + + context.lineWidth = textLineWidth; + context.strokeStyle = textStroke; + } + } + + var lineWidth = 2 * ele.pstyle('text-outline-width').pfValue; // *2 b/c the stroke is drawn centred on the middle + + if (lineWidth > 0) { + context.lineWidth = lineWidth; + } + + if (ele.pstyle('text-wrap').value === 'wrap') { + var lines = getPrefixedProperty(rscratch, 'labelWrapCachedLines', prefix); + var lineHeight = getPrefixedProperty(rscratch, 'labelLineHeight', prefix); + var halfTextW = textW / 2; + var justification = this.getLabelJustification(ele); + + if (justification === 'auto') ; else if (halign === 'left') { + // auto justification : right + if (justification === 'left') { + textX += -textW; + } else if (justification === 'center') { + textX += -halfTextW; + } // else same as auto + + } else if (halign === 'center') { + // auto justfication : center + if (justification === 'left') { + textX += -halfTextW; + } else if (justification === 'right') { + textX += halfTextW; + } // else same as auto + + } else if (halign === 'right') { + // auto justification : left + if (justification === 'center') { + textX += halfTextW; + } else if (justification === 'right') { + textX += textW; + } // else same as auto + + } + + switch (valign) { + case 'top': + textY -= (lines.length - 1) * lineHeight; + break; + + case 'center': + case 'bottom': + textY -= (lines.length - 1) * lineHeight; + break; + } + + for (var l = 0; l < lines.length; l++) { + if (lineWidth > 0) { + context.strokeText(lines[l], textX, textY); + } + + context.fillText(lines[l], textX, textY); + textY += lineHeight; + } + } else { + if (lineWidth > 0) { + context.strokeText(text, textX, textY); + } + + context.fillText(text, textX, textY); + } + + if (theta !== 0) { + context.rotate(-theta); + context.translate(-orgTextX, -orgTextY); + } + } + }; + + /* global Path2D */ + var CRp$5 = {}; + + CRp$5.drawNode = function (context, node, shiftToOriginWithBb) { + var drawLabel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; + var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true; + var r = this; + var nodeWidth, nodeHeight; + var _p = node._private; + var rs = _p.rscratch; + var pos = node.position(); + + if (!number$1(pos.x) || !number$1(pos.y)) { + return; // can't draw node with undefined position + } + + if (shouldDrawOpacity && !node.visible()) { + return; + } + + var eleOpacity = shouldDrawOpacity ? node.effectiveOpacity() : 1; + var usePaths = r.usePaths(); + var path; + var pathCacheHit = false; + var padding = node.padding(); + nodeWidth = node.width() + 2 * padding; + nodeHeight = node.height() + 2 * padding; // + // setup shift + + var bb; + + if (shiftToOriginWithBb) { + bb = shiftToOriginWithBb; + context.translate(-bb.x1, -bb.y1); + } // + // load bg image + + + var bgImgProp = node.pstyle('background-image'); + var urls = bgImgProp.value; + var urlDefined = new Array(urls.length); + var image = new Array(urls.length); + var numImages = 0; + + for (var i = 0; i < urls.length; i++) { + var url = urls[i]; + var defd = urlDefined[i] = url != null && url !== 'none'; + + if (defd) { + var bgImgCrossOrigin = node.cy().style().getIndexedStyle(node, 'background-image-crossorigin', 'value', i); + numImages++; // get image, and if not loaded then ask to redraw when later loaded + + image[i] = r.getCachedImage(url, bgImgCrossOrigin, function () { + _p.backgroundTimestamp = Date.now(); + node.emitAndNotify('background'); + }); + } + } // + // setup styles + + + var darkness = node.pstyle('background-blacken').value; + var borderWidth = node.pstyle('border-width').pfValue; + var bgOpacity = node.pstyle('background-opacity').value * eleOpacity; + var borderColor = node.pstyle('border-color').value; + var borderStyle = node.pstyle('border-style').value; + var borderOpacity = node.pstyle('border-opacity').value * eleOpacity; + context.lineJoin = 'miter'; // so borders are square with the node shape + + var setupShapeColor = function setupShapeColor() { + var bgOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : bgOpacity; + r.eleFillStyle(context, node, bgOpy); + }; + + var setupBorderColor = function setupBorderColor() { + var bdrOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : borderOpacity; + r.colorStrokeStyle(context, borderColor[0], borderColor[1], borderColor[2], bdrOpy); + }; // + // setup shape + + + var styleShape = node.pstyle('shape').strValue; + var shapePts = node.pstyle('shape-polygon-points').pfValue; + + if (usePaths) { + context.translate(pos.x, pos.y); + var pathCache = r.nodePathCache = r.nodePathCache || []; + var key = hashStrings(styleShape === 'polygon' ? styleShape + ',' + shapePts.join(',') : styleShape, '' + nodeHeight, '' + nodeWidth); + var cachedPath = pathCache[key]; + + if (cachedPath != null) { + path = cachedPath; + pathCacheHit = true; + rs.pathCache = path; + } else { + path = new Path2D(); + pathCache[key] = rs.pathCache = path; + } + } + + var drawShape = function drawShape() { + if (!pathCacheHit) { + var npos = pos; + + if (usePaths) { + npos = { + x: 0, + y: 0 + }; + } + + r.nodeShapes[r.getNodeShape(node)].draw(path || context, npos.x, npos.y, nodeWidth, nodeHeight); + } + + if (usePaths) { + context.fill(path); + } else { + context.fill(); + } + }; + + var drawImages = function drawImages() { + var nodeOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : eleOpacity; + var inside = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var prevBging = _p.backgrounding; + var totalCompleted = 0; + + for (var _i = 0; _i < image.length; _i++) { + var bgContainment = node.cy().style().getIndexedStyle(node, 'background-image-containment', 'value', _i); + + if (inside && bgContainment === 'over' || !inside && bgContainment === 'inside') { + totalCompleted++; + continue; + } + + if (urlDefined[_i] && image[_i].complete && !image[_i].error) { + totalCompleted++; + r.drawInscribedImage(context, image[_i], node, _i, nodeOpacity); + } + } + + _p.backgrounding = !(totalCompleted === numImages); + + if (prevBging !== _p.backgrounding) { + // update style b/c :backgrounding state changed + node.updateStyle(false); + } + }; + + var drawPie = function drawPie() { + var redrawShape = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var pieOpacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : eleOpacity; + + if (r.hasPie(node)) { + r.drawPie(context, node, pieOpacity); // redraw/restore path if steps after pie need it + + if (redrawShape) { + if (!usePaths) { + r.nodeShapes[r.getNodeShape(node)].draw(context, pos.x, pos.y, nodeWidth, nodeHeight); + } + } + } + }; + + var darken = function darken() { + var darkenOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : eleOpacity; + var opacity = (darkness > 0 ? darkness : -darkness) * darkenOpacity; + var c = darkness > 0 ? 0 : 255; + + if (darkness !== 0) { + r.colorFillStyle(context, c, c, c, opacity); + + if (usePaths) { + context.fill(path); + } else { + context.fill(); + } + } + }; + + var drawBorder = function drawBorder() { + if (borderWidth > 0) { + context.lineWidth = borderWidth; + context.lineCap = 'butt'; + + if (context.setLineDash) { + // for very outofdate browsers + switch (borderStyle) { + case 'dotted': + context.setLineDash([1, 1]); + break; + + case 'dashed': + context.setLineDash([4, 2]); + break; + + case 'solid': + case 'double': + context.setLineDash([]); + break; + } + } + + if (usePaths) { + context.stroke(path); + } else { + context.stroke(); + } + + if (borderStyle === 'double') { + context.lineWidth = borderWidth / 3; + var gco = context.globalCompositeOperation; + context.globalCompositeOperation = 'destination-out'; + + if (usePaths) { + context.stroke(path); + } else { + context.stroke(); + } + + context.globalCompositeOperation = gco; + } // reset in case we changed the border style + + + if (context.setLineDash) { + // for very outofdate browsers + context.setLineDash([]); + } + } + }; + + var drawOverlay = function drawOverlay() { + if (shouldDrawOverlay) { + r.drawNodeOverlay(context, node, pos, nodeWidth, nodeHeight); + } + }; + + var drawUnderlay = function drawUnderlay() { + if (shouldDrawOverlay) { + r.drawNodeUnderlay(context, node, pos, nodeWidth, nodeHeight); + } + }; + + var drawText = function drawText() { + r.drawElementText(context, node, null, drawLabel); + }; + + var ghost = node.pstyle('ghost').value === 'yes'; + + if (ghost) { + var gx = node.pstyle('ghost-offset-x').pfValue; + var gy = node.pstyle('ghost-offset-y').pfValue; + var ghostOpacity = node.pstyle('ghost-opacity').value; + var effGhostOpacity = ghostOpacity * eleOpacity; + context.translate(gx, gy); + setupShapeColor(ghostOpacity * bgOpacity); + drawShape(); + drawImages(effGhostOpacity, true); + setupBorderColor(ghostOpacity * borderOpacity); + drawBorder(); + drawPie(darkness !== 0 || borderWidth !== 0); + drawImages(effGhostOpacity, false); + darken(effGhostOpacity); + context.translate(-gx, -gy); + } + + if (usePaths) { + context.translate(-pos.x, -pos.y); + } + + drawUnderlay(); + + if (usePaths) { + context.translate(pos.x, pos.y); + } + + setupShapeColor(); + drawShape(); + drawImages(eleOpacity, true); + setupBorderColor(); + drawBorder(); + drawPie(darkness !== 0 || borderWidth !== 0); + drawImages(eleOpacity, false); + darken(); + + if (usePaths) { + context.translate(-pos.x, -pos.y); + } + + drawText(); + drawOverlay(); // + // clean up shift + + if (shiftToOriginWithBb) { + context.translate(bb.x1, bb.y1); + } + }; + + var drawNodeOverlayUnderlay = function drawNodeOverlayUnderlay(overlayOrUnderlay) { + if (!['overlay', 'underlay'].includes(overlayOrUnderlay)) { + throw new Error('Invalid state'); + } + + return function (context, node, pos, nodeWidth, nodeHeight) { + var r = this; + + if (!node.visible()) { + return; + } + + var padding = node.pstyle("".concat(overlayOrUnderlay, "-padding")).pfValue; + var opacity = node.pstyle("".concat(overlayOrUnderlay, "-opacity")).value; + var color = node.pstyle("".concat(overlayOrUnderlay, "-color")).value; + var shape = node.pstyle("".concat(overlayOrUnderlay, "-shape")).value; + + if (opacity > 0) { + pos = pos || node.position(); + + if (nodeWidth == null || nodeHeight == null) { + var _padding = node.padding(); + + nodeWidth = node.width() + 2 * _padding; + nodeHeight = node.height() + 2 * _padding; + } + + r.colorFillStyle(context, color[0], color[1], color[2], opacity); + r.nodeShapes[shape].draw(context, pos.x, pos.y, nodeWidth + padding * 2, nodeHeight + padding * 2); + context.fill(); + } + }; + }; + + CRp$5.drawNodeOverlay = drawNodeOverlayUnderlay('overlay'); + CRp$5.drawNodeUnderlay = drawNodeOverlayUnderlay('underlay'); // does the node have at least one pie piece? + + CRp$5.hasPie = function (node) { + node = node[0]; // ensure ele ref + + return node._private.hasPie; + }; + + CRp$5.drawPie = function (context, node, nodeOpacity, pos) { + node = node[0]; // ensure ele ref + + pos = pos || node.position(); + var cyStyle = node.cy().style(); + var pieSize = node.pstyle('pie-size'); + var x = pos.x; + var y = pos.y; + var nodeW = node.width(); + var nodeH = node.height(); + var radius = Math.min(nodeW, nodeH) / 2; // must fit in node + + var lastPercent = 0; // what % to continue drawing pie slices from on [0, 1] + + var usePaths = this.usePaths(); + + if (usePaths) { + x = 0; + y = 0; + } + + if (pieSize.units === '%') { + radius = radius * pieSize.pfValue; + } else if (pieSize.pfValue !== undefined) { + radius = pieSize.pfValue / 2; + } + + for (var i = 1; i <= cyStyle.pieBackgroundN; i++) { + // 1..N + var size = node.pstyle('pie-' + i + '-background-size').value; + var color = node.pstyle('pie-' + i + '-background-color').value; + var opacity = node.pstyle('pie-' + i + '-background-opacity').value * nodeOpacity; + var percent = size / 100; // map integer range [0, 100] to [0, 1] + // percent can't push beyond 1 + + if (percent + lastPercent > 1) { + percent = 1 - lastPercent; + } + + var angleStart = 1.5 * Math.PI + 2 * Math.PI * lastPercent; // start at 12 o'clock and go clockwise + + var angleDelta = 2 * Math.PI * percent; + var angleEnd = angleStart + angleDelta; // ignore if + // - zero size + // - we're already beyond the full circle + // - adding the current slice would go beyond the full circle + + if (size === 0 || lastPercent >= 1 || lastPercent + percent > 1) { + continue; + } + + context.beginPath(); + context.moveTo(x, y); + context.arc(x, y, radius, angleStart, angleEnd); + context.closePath(); + this.colorFillStyle(context, color[0], color[1], color[2], opacity); + context.fill(); + lastPercent += percent; + } + }; + + var CRp$4 = {}; + var motionBlurDelay = 100; // var isFirefox = typeof InstallTrigger !== 'undefined'; + + CRp$4.getPixelRatio = function () { + var context = this.data.contexts[0]; + + if (this.forcedPixelRatio != null) { + return this.forcedPixelRatio; + } + + var backingStore = context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1; + return (window.devicePixelRatio || 1) / backingStore; // eslint-disable-line no-undef + }; + + CRp$4.paintCache = function (context) { + var caches = this.paintCaches = this.paintCaches || []; + var needToCreateCache = true; + var cache; + + for (var i = 0; i < caches.length; i++) { + cache = caches[i]; + + if (cache.context === context) { + needToCreateCache = false; + break; + } + } + + if (needToCreateCache) { + cache = { + context: context + }; + caches.push(cache); + } + + return cache; + }; + + CRp$4.createGradientStyleFor = function (context, shapeStyleName, ele, fill, opacity) { + var gradientStyle; + var usePaths = this.usePaths(); + var colors = ele.pstyle(shapeStyleName + '-gradient-stop-colors').value, + positions = ele.pstyle(shapeStyleName + '-gradient-stop-positions').pfValue; + + if (fill === 'radial-gradient') { + if (ele.isEdge()) { + var start = ele.sourceEndpoint(), + end = ele.targetEndpoint(), + mid = ele.midpoint(); + var d1 = dist(start, mid); + var d2 = dist(end, mid); + gradientStyle = context.createRadialGradient(mid.x, mid.y, 0, mid.x, mid.y, Math.max(d1, d2)); + } else { + var pos = usePaths ? { + x: 0, + y: 0 + } : ele.position(), + width = ele.paddedWidth(), + height = ele.paddedHeight(); + gradientStyle = context.createRadialGradient(pos.x, pos.y, 0, pos.x, pos.y, Math.max(width, height)); + } + } else { + if (ele.isEdge()) { + var _start = ele.sourceEndpoint(), + _end = ele.targetEndpoint(); + + gradientStyle = context.createLinearGradient(_start.x, _start.y, _end.x, _end.y); + } else { + var _pos = usePaths ? { + x: 0, + y: 0 + } : ele.position(), + _width = ele.paddedWidth(), + _height = ele.paddedHeight(), + halfWidth = _width / 2, + halfHeight = _height / 2; + + var direction = ele.pstyle('background-gradient-direction').value; + + switch (direction) { + case 'to-bottom': + gradientStyle = context.createLinearGradient(_pos.x, _pos.y - halfHeight, _pos.x, _pos.y + halfHeight); + break; + + case 'to-top': + gradientStyle = context.createLinearGradient(_pos.x, _pos.y + halfHeight, _pos.x, _pos.y - halfHeight); + break; + + case 'to-left': + gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y, _pos.x - halfWidth, _pos.y); + break; + + case 'to-right': + gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y, _pos.x + halfWidth, _pos.y); + break; + + case 'to-bottom-right': + case 'to-right-bottom': + gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y - halfHeight, _pos.x + halfWidth, _pos.y + halfHeight); + break; + + case 'to-top-right': + case 'to-right-top': + gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y + halfHeight, _pos.x + halfWidth, _pos.y - halfHeight); + break; + + case 'to-bottom-left': + case 'to-left-bottom': + gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y - halfHeight, _pos.x - halfWidth, _pos.y + halfHeight); + break; + + case 'to-top-left': + case 'to-left-top': + gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y + halfHeight, _pos.x - halfWidth, _pos.y - halfHeight); + break; + } + } + } + + if (!gradientStyle) return null; // invalid gradient style + + var hasPositions = positions.length === colors.length; + var length = colors.length; + + for (var i = 0; i < length; i++) { + gradientStyle.addColorStop(hasPositions ? positions[i] : i / (length - 1), 'rgba(' + colors[i][0] + ',' + colors[i][1] + ',' + colors[i][2] + ',' + opacity + ')'); + } + + return gradientStyle; + }; + + CRp$4.gradientFillStyle = function (context, ele, fill, opacity) { + var gradientStyle = this.createGradientStyleFor(context, 'background', ele, fill, opacity); + if (!gradientStyle) return null; // error + + context.fillStyle = gradientStyle; + }; + + CRp$4.colorFillStyle = function (context, r, g, b, a) { + context.fillStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')'; // turn off for now, seems context does its own caching + // var cache = this.paintCache(context); + // var fillStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')'; + // if( cache.fillStyle !== fillStyle ){ + // context.fillStyle = cache.fillStyle = fillStyle; + // } + }; + + CRp$4.eleFillStyle = function (context, ele, opacity) { + var backgroundFill = ele.pstyle('background-fill').value; + + if (backgroundFill === 'linear-gradient' || backgroundFill === 'radial-gradient') { + this.gradientFillStyle(context, ele, backgroundFill, opacity); + } else { + var backgroundColor = ele.pstyle('background-color').value; + this.colorFillStyle(context, backgroundColor[0], backgroundColor[1], backgroundColor[2], opacity); + } + }; + + CRp$4.gradientStrokeStyle = function (context, ele, fill, opacity) { + var gradientStyle = this.createGradientStyleFor(context, 'line', ele, fill, opacity); + if (!gradientStyle) return null; // error + + context.strokeStyle = gradientStyle; + }; + + CRp$4.colorStrokeStyle = function (context, r, g, b, a) { + context.strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')'; // turn off for now, seems context does its own caching + // var cache = this.paintCache(context); + // var strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')'; + // if( cache.strokeStyle !== strokeStyle ){ + // context.strokeStyle = cache.strokeStyle = strokeStyle; + // } + }; + + CRp$4.eleStrokeStyle = function (context, ele, opacity) { + var lineFill = ele.pstyle('line-fill').value; + + if (lineFill === 'linear-gradient' || lineFill === 'radial-gradient') { + this.gradientStrokeStyle(context, ele, lineFill, opacity); + } else { + var lineColor = ele.pstyle('line-color').value; + this.colorStrokeStyle(context, lineColor[0], lineColor[1], lineColor[2], opacity); + } + }; // Resize canvas + + + CRp$4.matchCanvasSize = function (container) { + var r = this; + var data = r.data; + var bb = r.findContainerClientCoords(); + var width = bb[2]; + var height = bb[3]; + var pixelRatio = r.getPixelRatio(); + var mbPxRatio = r.motionBlurPxRatio; + + if (container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE] || container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG]) { + pixelRatio = mbPxRatio; + } + + var canvasWidth = width * pixelRatio; + var canvasHeight = height * pixelRatio; + var canvas; + + if (canvasWidth === r.canvasWidth && canvasHeight === r.canvasHeight) { + return; // save cycles if same + } + + r.fontCaches = null; // resizing resets the style + + var canvasContainer = data.canvasContainer; + canvasContainer.style.width = width + 'px'; + canvasContainer.style.height = height + 'px'; + + for (var i = 0; i < r.CANVAS_LAYERS; i++) { + canvas = data.canvases[i]; + canvas.width = canvasWidth; + canvas.height = canvasHeight; + canvas.style.width = width + 'px'; + canvas.style.height = height + 'px'; + } + + for (var i = 0; i < r.BUFFER_COUNT; i++) { + canvas = data.bufferCanvases[i]; + canvas.width = canvasWidth; + canvas.height = canvasHeight; + canvas.style.width = width + 'px'; + canvas.style.height = height + 'px'; + } + + r.textureMult = 1; + + if (pixelRatio <= 1) { + canvas = data.bufferCanvases[r.TEXTURE_BUFFER]; + r.textureMult = 2; + canvas.width = canvasWidth * r.textureMult; + canvas.height = canvasHeight * r.textureMult; + } + + r.canvasWidth = canvasWidth; + r.canvasHeight = canvasHeight; + }; + + CRp$4.renderTo = function (cxt, zoom, pan, pxRatio) { + this.render({ + forcedContext: cxt, + forcedZoom: zoom, + forcedPan: pan, + drawAllLayers: true, + forcedPxRatio: pxRatio + }); + }; + + CRp$4.render = function (options) { + options = options || staticEmptyObject(); + var forcedContext = options.forcedContext; + var drawAllLayers = options.drawAllLayers; + var drawOnlyNodeLayer = options.drawOnlyNodeLayer; + var forcedZoom = options.forcedZoom; + var forcedPan = options.forcedPan; + var r = this; + var pixelRatio = options.forcedPxRatio === undefined ? this.getPixelRatio() : options.forcedPxRatio; + var cy = r.cy; + var data = r.data; + var needDraw = data.canvasNeedsRedraw; + var textureDraw = r.textureOnViewport && !forcedContext && (r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming); + var motionBlur = options.motionBlur !== undefined ? options.motionBlur : r.motionBlur; + var mbPxRatio = r.motionBlurPxRatio; + var hasCompoundNodes = cy.hasCompoundNodes(); + var inNodeDragGesture = r.hoverData.draggingEles; + var inBoxSelection = r.hoverData.selecting || r.touchData.selecting ? true : false; + motionBlur = motionBlur && !forcedContext && r.motionBlurEnabled && !inBoxSelection; + var motionBlurFadeEffect = motionBlur; + + if (!forcedContext) { + if (r.prevPxRatio !== pixelRatio) { + r.invalidateContainerClientCoordsCache(); + r.matchCanvasSize(r.container); + r.redrawHint('eles', true); + r.redrawHint('drag', true); + } + + r.prevPxRatio = pixelRatio; + } + + if (!forcedContext && r.motionBlurTimeout) { + clearTimeout(r.motionBlurTimeout); + } + + if (motionBlur) { + if (r.mbFrames == null) { + r.mbFrames = 0; + } + + r.mbFrames++; + + if (r.mbFrames < 3) { + // need several frames before even high quality motionblur + motionBlurFadeEffect = false; + } // go to lower quality blurry frames when several m/b frames have been rendered (avoids flashing) + + + if (r.mbFrames > r.minMbLowQualFrames) { + //r.fullQualityMb = false; + r.motionBlurPxRatio = r.mbPxRBlurry; + } + } + + if (r.clearingMotionBlur) { + r.motionBlurPxRatio = 1; + } // b/c drawToContext() may be async w.r.t. redraw(), keep track of last texture frame + // because a rogue async texture frame would clear needDraw + + + if (r.textureDrawLastFrame && !textureDraw) { + needDraw[r.NODE] = true; + needDraw[r.SELECT_BOX] = true; + } + + var style = cy.style(); + var zoom = cy.zoom(); + var effectiveZoom = forcedZoom !== undefined ? forcedZoom : zoom; + var pan = cy.pan(); + var effectivePan = { + x: pan.x, + y: pan.y + }; + var vp = { + zoom: zoom, + pan: { + x: pan.x, + y: pan.y + } + }; + var prevVp = r.prevViewport; + var viewportIsDiff = prevVp === undefined || vp.zoom !== prevVp.zoom || vp.pan.x !== prevVp.pan.x || vp.pan.y !== prevVp.pan.y; // we want the low quality motionblur only when the viewport is being manipulated etc (where it's not noticed) + + if (!viewportIsDiff && !(inNodeDragGesture && !hasCompoundNodes)) { + r.motionBlurPxRatio = 1; + } + + if (forcedPan) { + effectivePan = forcedPan; + } // apply pixel ratio + + + effectiveZoom *= pixelRatio; + effectivePan.x *= pixelRatio; + effectivePan.y *= pixelRatio; + var eles = r.getCachedZSortedEles(); + + function mbclear(context, x, y, w, h) { + var gco = context.globalCompositeOperation; + context.globalCompositeOperation = 'destination-out'; + r.colorFillStyle(context, 255, 255, 255, r.motionBlurTransparency); + context.fillRect(x, y, w, h); + context.globalCompositeOperation = gco; + } + + function setContextTransform(context, clear) { + var ePan, eZoom, w, h; + + if (!r.clearingMotionBlur && (context === data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] || context === data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG])) { + ePan = { + x: pan.x * mbPxRatio, + y: pan.y * mbPxRatio + }; + eZoom = zoom * mbPxRatio; + w = r.canvasWidth * mbPxRatio; + h = r.canvasHeight * mbPxRatio; + } else { + ePan = effectivePan; + eZoom = effectiveZoom; + w = r.canvasWidth; + h = r.canvasHeight; + } + + context.setTransform(1, 0, 0, 1, 0, 0); + + if (clear === 'motionBlur') { + mbclear(context, 0, 0, w, h); + } else if (!forcedContext && (clear === undefined || clear)) { + context.clearRect(0, 0, w, h); + } + + if (!drawAllLayers) { + context.translate(ePan.x, ePan.y); + context.scale(eZoom, eZoom); + } + + if (forcedPan) { + context.translate(forcedPan.x, forcedPan.y); + } + + if (forcedZoom) { + context.scale(forcedZoom, forcedZoom); + } + } + + if (!textureDraw) { + r.textureDrawLastFrame = false; + } + + if (textureDraw) { + r.textureDrawLastFrame = true; + + if (!r.textureCache) { + r.textureCache = {}; + r.textureCache.bb = cy.mutableElements().boundingBox(); + r.textureCache.texture = r.data.bufferCanvases[r.TEXTURE_BUFFER]; + var cxt = r.data.bufferContexts[r.TEXTURE_BUFFER]; + cxt.setTransform(1, 0, 0, 1, 0, 0); + cxt.clearRect(0, 0, r.canvasWidth * r.textureMult, r.canvasHeight * r.textureMult); + r.render({ + forcedContext: cxt, + drawOnlyNodeLayer: true, + forcedPxRatio: pixelRatio * r.textureMult + }); + var vp = r.textureCache.viewport = { + zoom: cy.zoom(), + pan: cy.pan(), + width: r.canvasWidth, + height: r.canvasHeight + }; + vp.mpan = { + x: (0 - vp.pan.x) / vp.zoom, + y: (0 - vp.pan.y) / vp.zoom + }; + } + + needDraw[r.DRAG] = false; + needDraw[r.NODE] = false; + var context = data.contexts[r.NODE]; + var texture = r.textureCache.texture; + var vp = r.textureCache.viewport; + context.setTransform(1, 0, 0, 1, 0, 0); + + if (motionBlur) { + mbclear(context, 0, 0, vp.width, vp.height); + } else { + context.clearRect(0, 0, vp.width, vp.height); + } + + var outsideBgColor = style.core('outside-texture-bg-color').value; + var outsideBgOpacity = style.core('outside-texture-bg-opacity').value; + r.colorFillStyle(context, outsideBgColor[0], outsideBgColor[1], outsideBgColor[2], outsideBgOpacity); + context.fillRect(0, 0, vp.width, vp.height); + var zoom = cy.zoom(); + setContextTransform(context, false); + context.clearRect(vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio); + context.drawImage(texture, vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio); + } else if (r.textureOnViewport && !forcedContext) { + // clear the cache since we don't need it + r.textureCache = null; + } + + var extent = cy.extent(); + var vpManip = r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming || r.hoverData.draggingEles || r.cy.animated(); + var hideEdges = r.hideEdgesOnViewport && vpManip; + var needMbClear = []; + needMbClear[r.NODE] = !needDraw[r.NODE] && motionBlur && !r.clearedForMotionBlur[r.NODE] || r.clearingMotionBlur; + + if (needMbClear[r.NODE]) { + r.clearedForMotionBlur[r.NODE] = true; + } + + needMbClear[r.DRAG] = !needDraw[r.DRAG] && motionBlur && !r.clearedForMotionBlur[r.DRAG] || r.clearingMotionBlur; + + if (needMbClear[r.DRAG]) { + r.clearedForMotionBlur[r.DRAG] = true; + } + + if (needDraw[r.NODE] || drawAllLayers || drawOnlyNodeLayer || needMbClear[r.NODE]) { + var useBuffer = motionBlur && !needMbClear[r.NODE] && mbPxRatio !== 1; + var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] : data.contexts[r.NODE]); + var clear = motionBlur && !useBuffer ? 'motionBlur' : undefined; + setContextTransform(context, clear); + + if (hideEdges) { + r.drawCachedNodes(context, eles.nondrag, pixelRatio, extent); + } else { + r.drawLayeredElements(context, eles.nondrag, pixelRatio, extent); + } + + if (r.debug) { + r.drawDebugPoints(context, eles.nondrag); + } + + if (!drawAllLayers && !motionBlur) { + needDraw[r.NODE] = false; + } + } + + if (!drawOnlyNodeLayer && (needDraw[r.DRAG] || drawAllLayers || needMbClear[r.DRAG])) { + var useBuffer = motionBlur && !needMbClear[r.DRAG] && mbPxRatio !== 1; + var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG] : data.contexts[r.DRAG]); + setContextTransform(context, motionBlur && !useBuffer ? 'motionBlur' : undefined); + + if (hideEdges) { + r.drawCachedNodes(context, eles.drag, pixelRatio, extent); + } else { + r.drawCachedElements(context, eles.drag, pixelRatio, extent); + } + + if (r.debug) { + r.drawDebugPoints(context, eles.drag); + } + + if (!drawAllLayers && !motionBlur) { + needDraw[r.DRAG] = false; + } + } + + if (r.showFps || !drawOnlyNodeLayer && needDraw[r.SELECT_BOX] && !drawAllLayers) { + var context = forcedContext || data.contexts[r.SELECT_BOX]; + setContextTransform(context); + + if (r.selection[4] == 1 && (r.hoverData.selecting || r.touchData.selecting)) { + var zoom = r.cy.zoom(); + var borderWidth = style.core('selection-box-border-width').value / zoom; + context.lineWidth = borderWidth; + context.fillStyle = 'rgba(' + style.core('selection-box-color').value[0] + ',' + style.core('selection-box-color').value[1] + ',' + style.core('selection-box-color').value[2] + ',' + style.core('selection-box-opacity').value + ')'; + context.fillRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]); + + if (borderWidth > 0) { + context.strokeStyle = 'rgba(' + style.core('selection-box-border-color').value[0] + ',' + style.core('selection-box-border-color').value[1] + ',' + style.core('selection-box-border-color').value[2] + ',' + style.core('selection-box-opacity').value + ')'; + context.strokeRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]); + } + } + + if (data.bgActivePosistion && !r.hoverData.selecting) { + var zoom = r.cy.zoom(); + var pos = data.bgActivePosistion; + context.fillStyle = 'rgba(' + style.core('active-bg-color').value[0] + ',' + style.core('active-bg-color').value[1] + ',' + style.core('active-bg-color').value[2] + ',' + style.core('active-bg-opacity').value + ')'; + context.beginPath(); + context.arc(pos.x, pos.y, style.core('active-bg-size').pfValue / zoom, 0, 2 * Math.PI); + context.fill(); + } + + var timeToRender = r.lastRedrawTime; + + if (r.showFps && timeToRender) { + timeToRender = Math.round(timeToRender); + var fps = Math.round(1000 / timeToRender); + context.setTransform(1, 0, 0, 1, 0, 0); + context.fillStyle = 'rgba(255, 0, 0, 0.75)'; + context.strokeStyle = 'rgba(255, 0, 0, 0.75)'; + context.lineWidth = 1; + context.fillText('1 frame = ' + timeToRender + ' ms = ' + fps + ' fps', 0, 20); + var maxFps = 60; + context.strokeRect(0, 30, 250, 20); + context.fillRect(0, 30, 250 * Math.min(fps / maxFps, 1), 20); + } + + if (!drawAllLayers) { + needDraw[r.SELECT_BOX] = false; + } + } // motionblur: blit rendered blurry frames + + + if (motionBlur && mbPxRatio !== 1) { + var cxtNode = data.contexts[r.NODE]; + var txtNode = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE]; + var cxtDrag = data.contexts[r.DRAG]; + var txtDrag = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG]; + + var drawMotionBlur = function drawMotionBlur(cxt, txt, needClear) { + cxt.setTransform(1, 0, 0, 1, 0, 0); + + if (needClear || !motionBlurFadeEffect) { + cxt.clearRect(0, 0, r.canvasWidth, r.canvasHeight); + } else { + mbclear(cxt, 0, 0, r.canvasWidth, r.canvasHeight); + } + + var pxr = mbPxRatio; + cxt.drawImage(txt, // img + 0, 0, // sx, sy + r.canvasWidth * pxr, r.canvasHeight * pxr, // sw, sh + 0, 0, // x, y + r.canvasWidth, r.canvasHeight // w, h + ); + }; + + if (needDraw[r.NODE] || needMbClear[r.NODE]) { + drawMotionBlur(cxtNode, txtNode, needMbClear[r.NODE]); + needDraw[r.NODE] = false; + } + + if (needDraw[r.DRAG] || needMbClear[r.DRAG]) { + drawMotionBlur(cxtDrag, txtDrag, needMbClear[r.DRAG]); + needDraw[r.DRAG] = false; + } + } + + r.prevViewport = vp; + + if (r.clearingMotionBlur) { + r.clearingMotionBlur = false; + r.motionBlurCleared = true; + r.motionBlur = true; + } + + if (motionBlur) { + r.motionBlurTimeout = setTimeout(function () { + r.motionBlurTimeout = null; + r.clearedForMotionBlur[r.NODE] = false; + r.clearedForMotionBlur[r.DRAG] = false; + r.motionBlur = false; + r.clearingMotionBlur = !textureDraw; + r.mbFrames = 0; + needDraw[r.NODE] = true; + needDraw[r.DRAG] = true; + r.redraw(); + }, motionBlurDelay); + } + + if (!forcedContext) { + cy.emit('render'); + } + }; + + var CRp$3 = {}; // @O Polygon drawing + + CRp$3.drawPolygonPath = function (context, x, y, width, height, points) { + var halfW = width / 2; + var halfH = height / 2; + + if (context.beginPath) { + context.beginPath(); + } + + context.moveTo(x + halfW * points[0], y + halfH * points[1]); + + for (var i = 1; i < points.length / 2; i++) { + context.lineTo(x + halfW * points[i * 2], y + halfH * points[i * 2 + 1]); + } + + context.closePath(); + }; + + CRp$3.drawRoundPolygonPath = function (context, x, y, width, height, points) { + var halfW = width / 2; + var halfH = height / 2; + var cornerRadius = getRoundPolygonRadius(width, height); + + if (context.beginPath) { + context.beginPath(); + } + + for (var _i = 0; _i < points.length / 4; _i++) { + var sourceUv = void 0, + destUv = void 0; + + if (_i === 0) { + sourceUv = points.length - 2; + } else { + sourceUv = _i * 4 - 2; + } + + destUv = _i * 4 + 2; + var px = x + halfW * points[_i * 4]; + var py = y + halfH * points[_i * 4 + 1]; + var cosTheta = -points[sourceUv] * points[destUv] - points[sourceUv + 1] * points[destUv + 1]; + var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2); + var cp0x = px - offset * points[sourceUv]; + var cp0y = py - offset * points[sourceUv + 1]; + var cp1x = px + offset * points[destUv]; + var cp1y = py + offset * points[destUv + 1]; + + if (_i === 0) { + context.moveTo(cp0x, cp0y); + } else { + context.lineTo(cp0x, cp0y); + } + + context.arcTo(px, py, cp1x, cp1y, cornerRadius); + } + + context.closePath(); + }; // Round rectangle drawing + + + CRp$3.drawRoundRectanglePath = function (context, x, y, width, height) { + var halfWidth = width / 2; + var halfHeight = height / 2; + var cornerRadius = getRoundRectangleRadius(width, height); + + if (context.beginPath) { + context.beginPath(); + } // Start at top middle + + + context.moveTo(x, y - halfHeight); // Arc from middle top to right side + + context.arcTo(x + halfWidth, y - halfHeight, x + halfWidth, y, cornerRadius); // Arc from right side to bottom + + context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius); // Arc from bottom to left side + + context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius); // Arc from left side to topBorder + + context.arcTo(x - halfWidth, y - halfHeight, x, y - halfHeight, cornerRadius); // Join line + + context.lineTo(x, y - halfHeight); + context.closePath(); + }; + + CRp$3.drawBottomRoundRectanglePath = function (context, x, y, width, height) { + var halfWidth = width / 2; + var halfHeight = height / 2; + var cornerRadius = getRoundRectangleRadius(width, height); + + if (context.beginPath) { + context.beginPath(); + } // Start at top middle + + + context.moveTo(x, y - halfHeight); + context.lineTo(x + halfWidth, y - halfHeight); + context.lineTo(x + halfWidth, y); + context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius); + context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius); + context.lineTo(x - halfWidth, y - halfHeight); + context.lineTo(x, y - halfHeight); + context.closePath(); + }; + + CRp$3.drawCutRectanglePath = function (context, x, y, width, height) { + var halfWidth = width / 2; + var halfHeight = height / 2; + var cornerLength = getCutRectangleCornerLength(); + + if (context.beginPath) { + context.beginPath(); + } + + context.moveTo(x - halfWidth + cornerLength, y - halfHeight); + context.lineTo(x + halfWidth - cornerLength, y - halfHeight); + context.lineTo(x + halfWidth, y - halfHeight + cornerLength); + context.lineTo(x + halfWidth, y + halfHeight - cornerLength); + context.lineTo(x + halfWidth - cornerLength, y + halfHeight); + context.lineTo(x - halfWidth + cornerLength, y + halfHeight); + context.lineTo(x - halfWidth, y + halfHeight - cornerLength); + context.lineTo(x - halfWidth, y - halfHeight + cornerLength); + context.closePath(); + }; + + CRp$3.drawBarrelPath = function (context, x, y, width, height) { + var halfWidth = width / 2; + var halfHeight = height / 2; + var xBegin = x - halfWidth; + var xEnd = x + halfWidth; + var yBegin = y - halfHeight; + var yEnd = y + halfHeight; + var barrelCurveConstants = getBarrelCurveConstants(width, height); + var wOffset = barrelCurveConstants.widthOffset; + var hOffset = barrelCurveConstants.heightOffset; + var ctrlPtXOffset = barrelCurveConstants.ctrlPtOffsetPct * wOffset; + + if (context.beginPath) { + context.beginPath(); + } + + context.moveTo(xBegin, yBegin + hOffset); + context.lineTo(xBegin, yEnd - hOffset); + context.quadraticCurveTo(xBegin + ctrlPtXOffset, yEnd, xBegin + wOffset, yEnd); + context.lineTo(xEnd - wOffset, yEnd); + context.quadraticCurveTo(xEnd - ctrlPtXOffset, yEnd, xEnd, yEnd - hOffset); + context.lineTo(xEnd, yBegin + hOffset); + context.quadraticCurveTo(xEnd - ctrlPtXOffset, yBegin, xEnd - wOffset, yBegin); + context.lineTo(xBegin + wOffset, yBegin); + context.quadraticCurveTo(xBegin + ctrlPtXOffset, yBegin, xBegin, yBegin + hOffset); + context.closePath(); + }; + + var sin0 = Math.sin(0); + var cos0 = Math.cos(0); + var sin = {}; + var cos = {}; + var ellipseStepSize = Math.PI / 40; + + for (var i = 0 * Math.PI; i < 2 * Math.PI; i += ellipseStepSize) { + sin[i] = Math.sin(i); + cos[i] = Math.cos(i); + } + + CRp$3.drawEllipsePath = function (context, centerX, centerY, width, height) { + if (context.beginPath) { + context.beginPath(); + } + + if (context.ellipse) { + context.ellipse(centerX, centerY, width / 2, height / 2, 0, 0, 2 * Math.PI); + } else { + var xPos, yPos; + var rw = width / 2; + var rh = height / 2; + + for (var i = 0 * Math.PI; i < 2 * Math.PI; i += ellipseStepSize) { + xPos = centerX - rw * sin[i] * sin0 + rw * cos[i] * cos0; + yPos = centerY + rh * cos[i] * sin0 + rh * sin[i] * cos0; + + if (i === 0) { + context.moveTo(xPos, yPos); + } else { + context.lineTo(xPos, yPos); + } + } + } + + context.closePath(); + }; + + /* global atob, ArrayBuffer, Uint8Array, Blob */ + var CRp$2 = {}; + + CRp$2.createBuffer = function (w, h) { + var buffer = document.createElement('canvas'); // eslint-disable-line no-undef + + buffer.width = w; + buffer.height = h; + return [buffer, buffer.getContext('2d')]; + }; + + CRp$2.bufferCanvasImage = function (options) { + var cy = this.cy; + var eles = cy.mutableElements(); + var bb = eles.boundingBox(); + var ctrRect = this.findContainerClientCoords(); + var width = options.full ? Math.ceil(bb.w) : ctrRect[2]; + var height = options.full ? Math.ceil(bb.h) : ctrRect[3]; + var specdMaxDims = number$1(options.maxWidth) || number$1(options.maxHeight); + var pxRatio = this.getPixelRatio(); + var scale = 1; + + if (options.scale !== undefined) { + width *= options.scale; + height *= options.scale; + scale = options.scale; + } else if (specdMaxDims) { + var maxScaleW = Infinity; + var maxScaleH = Infinity; + + if (number$1(options.maxWidth)) { + maxScaleW = scale * options.maxWidth / width; + } + + if (number$1(options.maxHeight)) { + maxScaleH = scale * options.maxHeight / height; + } + + scale = Math.min(maxScaleW, maxScaleH); + width *= scale; + height *= scale; + } + + if (!specdMaxDims) { + width *= pxRatio; + height *= pxRatio; + scale *= pxRatio; + } + + var buffCanvas = document.createElement('canvas'); // eslint-disable-line no-undef + + buffCanvas.width = width; + buffCanvas.height = height; + buffCanvas.style.width = width + 'px'; + buffCanvas.style.height = height + 'px'; + var buffCxt = buffCanvas.getContext('2d'); // Rasterize the layers, but only if container has nonzero size + + if (width > 0 && height > 0) { + buffCxt.clearRect(0, 0, width, height); + buffCxt.globalCompositeOperation = 'source-over'; + var zsortedEles = this.getCachedZSortedEles(); + + if (options.full) { + // draw the full bounds of the graph + buffCxt.translate(-bb.x1 * scale, -bb.y1 * scale); + buffCxt.scale(scale, scale); + this.drawElements(buffCxt, zsortedEles); + buffCxt.scale(1 / scale, 1 / scale); + buffCxt.translate(bb.x1 * scale, bb.y1 * scale); + } else { + // draw the current view + var pan = cy.pan(); + var translation = { + x: pan.x * scale, + y: pan.y * scale + }; + scale *= cy.zoom(); + buffCxt.translate(translation.x, translation.y); + buffCxt.scale(scale, scale); + this.drawElements(buffCxt, zsortedEles); + buffCxt.scale(1 / scale, 1 / scale); + buffCxt.translate(-translation.x, -translation.y); + } // need to fill bg at end like this in order to fill cleared transparent pixels in jpgs + + + if (options.bg) { + buffCxt.globalCompositeOperation = 'destination-over'; + buffCxt.fillStyle = options.bg; + buffCxt.rect(0, 0, width, height); + buffCxt.fill(); + } + } + + return buffCanvas; + }; + + function b64ToBlob(b64, mimeType) { + var bytes = atob(b64); + var buff = new ArrayBuffer(bytes.length); + var buffUint8 = new Uint8Array(buff); + + for (var i = 0; i < bytes.length; i++) { + buffUint8[i] = bytes.charCodeAt(i); + } + + return new Blob([buff], { + type: mimeType + }); + } + + function b64UriToB64(b64uri) { + var i = b64uri.indexOf(','); + return b64uri.substr(i + 1); + } + + function output(options, canvas, mimeType) { + var getB64Uri = function getB64Uri() { + return canvas.toDataURL(mimeType, options.quality); + }; + + switch (options.output) { + case 'blob-promise': + return new Promise$1(function (resolve, reject) { + try { + canvas.toBlob(function (blob) { + if (blob != null) { + resolve(blob); + } else { + reject(new Error('`canvas.toBlob()` sent a null value in its callback')); + } + }, mimeType, options.quality); + } catch (err) { + reject(err); + } + }); + + case 'blob': + return b64ToBlob(b64UriToB64(getB64Uri()), mimeType); + + case 'base64': + return b64UriToB64(getB64Uri()); + + case 'base64uri': + default: + return getB64Uri(); + } + } + + CRp$2.png = function (options) { + return output(options, this.bufferCanvasImage(options), 'image/png'); + }; + + CRp$2.jpg = function (options) { + return output(options, this.bufferCanvasImage(options), 'image/jpeg'); + }; + + var CRp$1 = {}; + + CRp$1.nodeShapeImpl = function (name, context, centerX, centerY, width, height, points) { + switch (name) { + case 'ellipse': + return this.drawEllipsePath(context, centerX, centerY, width, height); + + case 'polygon': + return this.drawPolygonPath(context, centerX, centerY, width, height, points); + + case 'round-polygon': + return this.drawRoundPolygonPath(context, centerX, centerY, width, height, points); + + case 'roundrectangle': + case 'round-rectangle': + return this.drawRoundRectanglePath(context, centerX, centerY, width, height); + + case 'cutrectangle': + case 'cut-rectangle': + return this.drawCutRectanglePath(context, centerX, centerY, width, height); + + case 'bottomroundrectangle': + case 'bottom-round-rectangle': + return this.drawBottomRoundRectanglePath(context, centerX, centerY, width, height); + + case 'barrel': + return this.drawBarrelPath(context, centerX, centerY, width, height); + } + }; + + var CR = CanvasRenderer; + var CRp = CanvasRenderer.prototype; + CRp.CANVAS_LAYERS = 3; // + + CRp.SELECT_BOX = 0; + CRp.DRAG = 1; + CRp.NODE = 2; + CRp.BUFFER_COUNT = 3; // + + CRp.TEXTURE_BUFFER = 0; + CRp.MOTIONBLUR_BUFFER_NODE = 1; + CRp.MOTIONBLUR_BUFFER_DRAG = 2; + + function CanvasRenderer(options) { + var r = this; + r.data = { + canvases: new Array(CRp.CANVAS_LAYERS), + contexts: new Array(CRp.CANVAS_LAYERS), + canvasNeedsRedraw: new Array(CRp.CANVAS_LAYERS), + bufferCanvases: new Array(CRp.BUFFER_COUNT), + bufferContexts: new Array(CRp.CANVAS_LAYERS) + }; + var tapHlOffAttr = '-webkit-tap-highlight-color'; + var tapHlOffStyle = 'rgba(0,0,0,0)'; + r.data.canvasContainer = document.createElement('div'); // eslint-disable-line no-undef + + var containerStyle = r.data.canvasContainer.style; + r.data.canvasContainer.style[tapHlOffAttr] = tapHlOffStyle; + containerStyle.position = 'relative'; + containerStyle.zIndex = '0'; + containerStyle.overflow = 'hidden'; + var container = options.cy.container(); + container.appendChild(r.data.canvasContainer); + container.style[tapHlOffAttr] = tapHlOffStyle; + var styleMap = { + '-webkit-user-select': 'none', + '-moz-user-select': '-moz-none', + 'user-select': 'none', + '-webkit-tap-highlight-color': 'rgba(0,0,0,0)', + 'outline-style': 'none' + }; + + if (ms()) { + styleMap['-ms-touch-action'] = 'none'; + styleMap['touch-action'] = 'none'; + } + + for (var i = 0; i < CRp.CANVAS_LAYERS; i++) { + var canvas = r.data.canvases[i] = document.createElement('canvas'); // eslint-disable-line no-undef + + r.data.contexts[i] = canvas.getContext('2d'); + Object.keys(styleMap).forEach(function (k) { + canvas.style[k] = styleMap[k]; + }); + canvas.style.position = 'absolute'; + canvas.setAttribute('data-id', 'layer' + i); + canvas.style.zIndex = String(CRp.CANVAS_LAYERS - i); + r.data.canvasContainer.appendChild(canvas); + r.data.canvasNeedsRedraw[i] = false; + } + + r.data.topCanvas = r.data.canvases[0]; + r.data.canvases[CRp.NODE].setAttribute('data-id', 'layer' + CRp.NODE + '-node'); + r.data.canvases[CRp.SELECT_BOX].setAttribute('data-id', 'layer' + CRp.SELECT_BOX + '-selectbox'); + r.data.canvases[CRp.DRAG].setAttribute('data-id', 'layer' + CRp.DRAG + '-drag'); + + for (var i = 0; i < CRp.BUFFER_COUNT; i++) { + r.data.bufferCanvases[i] = document.createElement('canvas'); // eslint-disable-line no-undef + + r.data.bufferContexts[i] = r.data.bufferCanvases[i].getContext('2d'); + r.data.bufferCanvases[i].style.position = 'absolute'; + r.data.bufferCanvases[i].setAttribute('data-id', 'buffer' + i); + r.data.bufferCanvases[i].style.zIndex = String(-i - 1); + r.data.bufferCanvases[i].style.visibility = 'hidden'; //r.data.canvasContainer.appendChild(r.data.bufferCanvases[i]); + } + + r.pathsEnabled = true; + var emptyBb = makeBoundingBox(); + + var getBoxCenter = function getBoxCenter(bb) { + return { + x: (bb.x1 + bb.x2) / 2, + y: (bb.y1 + bb.y2) / 2 + }; + }; + + var getCenterOffset = function getCenterOffset(bb) { + return { + x: -bb.w / 2, + y: -bb.h / 2 + }; + }; + + var backgroundTimestampHasChanged = function backgroundTimestampHasChanged(ele) { + var _p = ele[0]._private; + var same = _p.oldBackgroundTimestamp === _p.backgroundTimestamp; + return !same; + }; + + var getStyleKey = function getStyleKey(ele) { + return ele[0]._private.nodeKey; + }; + + var getLabelKey = function getLabelKey(ele) { + return ele[0]._private.labelStyleKey; + }; + + var getSourceLabelKey = function getSourceLabelKey(ele) { + return ele[0]._private.sourceLabelStyleKey; + }; + + var getTargetLabelKey = function getTargetLabelKey(ele) { + return ele[0]._private.targetLabelStyleKey; + }; + + var drawElement = function drawElement(context, ele, bb, scaledLabelShown, useEleOpacity) { + return r.drawElement(context, ele, bb, false, false, useEleOpacity); + }; + + var drawLabel = function drawLabel(context, ele, bb, scaledLabelShown, useEleOpacity) { + return r.drawElementText(context, ele, bb, scaledLabelShown, 'main', useEleOpacity); + }; + + var drawSourceLabel = function drawSourceLabel(context, ele, bb, scaledLabelShown, useEleOpacity) { + return r.drawElementText(context, ele, bb, scaledLabelShown, 'source', useEleOpacity); + }; + + var drawTargetLabel = function drawTargetLabel(context, ele, bb, scaledLabelShown, useEleOpacity) { + return r.drawElementText(context, ele, bb, scaledLabelShown, 'target', useEleOpacity); + }; + + var getElementBox = function getElementBox(ele) { + ele.boundingBox(); + return ele[0]._private.bodyBounds; + }; + + var getLabelBox = function getLabelBox(ele) { + ele.boundingBox(); + return ele[0]._private.labelBounds.main || emptyBb; + }; + + var getSourceLabelBox = function getSourceLabelBox(ele) { + ele.boundingBox(); + return ele[0]._private.labelBounds.source || emptyBb; + }; + + var getTargetLabelBox = function getTargetLabelBox(ele) { + ele.boundingBox(); + return ele[0]._private.labelBounds.target || emptyBb; + }; + + var isLabelVisibleAtScale = function isLabelVisibleAtScale(ele, scaledLabelShown) { + return scaledLabelShown; + }; + + var getElementRotationPoint = function getElementRotationPoint(ele) { + return getBoxCenter(getElementBox(ele)); + }; + + var addTextMargin = function addTextMargin(prefix, pt, ele) { + var pre = prefix ? prefix + '-' : ''; + return { + x: pt.x + ele.pstyle(pre + 'text-margin-x').pfValue, + y: pt.y + ele.pstyle(pre + 'text-margin-y').pfValue + }; + }; + + var getRsPt = function getRsPt(ele, x, y) { + var rs = ele[0]._private.rscratch; + return { + x: rs[x], + y: rs[y] + }; + }; + + var getLabelRotationPoint = function getLabelRotationPoint(ele) { + return addTextMargin('', getRsPt(ele, 'labelX', 'labelY'), ele); + }; + + var getSourceLabelRotationPoint = function getSourceLabelRotationPoint(ele) { + return addTextMargin('source', getRsPt(ele, 'sourceLabelX', 'sourceLabelY'), ele); + }; + + var getTargetLabelRotationPoint = function getTargetLabelRotationPoint(ele) { + return addTextMargin('target', getRsPt(ele, 'targetLabelX', 'targetLabelY'), ele); + }; + + var getElementRotationOffset = function getElementRotationOffset(ele) { + return getCenterOffset(getElementBox(ele)); + }; + + var getSourceLabelRotationOffset = function getSourceLabelRotationOffset(ele) { + return getCenterOffset(getSourceLabelBox(ele)); + }; + + var getTargetLabelRotationOffset = function getTargetLabelRotationOffset(ele) { + return getCenterOffset(getTargetLabelBox(ele)); + }; + + var getLabelRotationOffset = function getLabelRotationOffset(ele) { + var bb = getLabelBox(ele); + var p = getCenterOffset(getLabelBox(ele)); + + if (ele.isNode()) { + switch (ele.pstyle('text-halign').value) { + case 'left': + p.x = -bb.w; + break; + + case 'right': + p.x = 0; + break; + } + + switch (ele.pstyle('text-valign').value) { + case 'top': + p.y = -bb.h; + break; + + case 'bottom': + p.y = 0; + break; + } + } + + return p; + }; + + var eleTxrCache = r.data.eleTxrCache = new ElementTextureCache(r, { + getKey: getStyleKey, + doesEleInvalidateKey: backgroundTimestampHasChanged, + drawElement: drawElement, + getBoundingBox: getElementBox, + getRotationPoint: getElementRotationPoint, + getRotationOffset: getElementRotationOffset, + allowEdgeTxrCaching: false, + allowParentTxrCaching: false + }); + var lblTxrCache = r.data.lblTxrCache = new ElementTextureCache(r, { + getKey: getLabelKey, + drawElement: drawLabel, + getBoundingBox: getLabelBox, + getRotationPoint: getLabelRotationPoint, + getRotationOffset: getLabelRotationOffset, + isVisible: isLabelVisibleAtScale + }); + var slbTxrCache = r.data.slbTxrCache = new ElementTextureCache(r, { + getKey: getSourceLabelKey, + drawElement: drawSourceLabel, + getBoundingBox: getSourceLabelBox, + getRotationPoint: getSourceLabelRotationPoint, + getRotationOffset: getSourceLabelRotationOffset, + isVisible: isLabelVisibleAtScale + }); + var tlbTxrCache = r.data.tlbTxrCache = new ElementTextureCache(r, { + getKey: getTargetLabelKey, + drawElement: drawTargetLabel, + getBoundingBox: getTargetLabelBox, + getRotationPoint: getTargetLabelRotationPoint, + getRotationOffset: getTargetLabelRotationOffset, + isVisible: isLabelVisibleAtScale + }); + var lyrTxrCache = r.data.lyrTxrCache = new LayeredTextureCache(r); + r.onUpdateEleCalcs(function invalidateTextureCaches(willDraw, eles) { + // each cache should check for sub-key diff to see that the update affects that cache particularly + eleTxrCache.invalidateElements(eles); + lblTxrCache.invalidateElements(eles); + slbTxrCache.invalidateElements(eles); + tlbTxrCache.invalidateElements(eles); // any change invalidates the layers + + lyrTxrCache.invalidateElements(eles); // update the old bg timestamp so diffs can be done in the ele txr caches + + for (var _i = 0; _i < eles.length; _i++) { + var _p = eles[_i]._private; + _p.oldBackgroundTimestamp = _p.backgroundTimestamp; + } + }); + + var refineInLayers = function refineInLayers(reqs) { + for (var i = 0; i < reqs.length; i++) { + lyrTxrCache.enqueueElementRefinement(reqs[i].ele); + } + }; + + eleTxrCache.onDequeue(refineInLayers); + lblTxrCache.onDequeue(refineInLayers); + slbTxrCache.onDequeue(refineInLayers); + tlbTxrCache.onDequeue(refineInLayers); + } + + CRp.redrawHint = function (group, bool) { + var r = this; + + switch (group) { + case 'eles': + r.data.canvasNeedsRedraw[CRp.NODE] = bool; + break; + + case 'drag': + r.data.canvasNeedsRedraw[CRp.DRAG] = bool; + break; + + case 'select': + r.data.canvasNeedsRedraw[CRp.SELECT_BOX] = bool; + break; + } + }; // whether to use Path2D caching for drawing + + + var pathsImpld = typeof Path2D !== 'undefined'; + + CRp.path2dEnabled = function (on) { + if (on === undefined) { + return this.pathsEnabled; + } + + this.pathsEnabled = on ? true : false; + }; + + CRp.usePaths = function () { + return pathsImpld && this.pathsEnabled; + }; + + CRp.setImgSmoothing = function (context, bool) { + if (context.imageSmoothingEnabled != null) { + context.imageSmoothingEnabled = bool; + } else { + context.webkitImageSmoothingEnabled = bool; + context.mozImageSmoothingEnabled = bool; + context.msImageSmoothingEnabled = bool; + } + }; + + CRp.getImgSmoothing = function (context) { + if (context.imageSmoothingEnabled != null) { + return context.imageSmoothingEnabled; + } else { + return context.webkitImageSmoothingEnabled || context.mozImageSmoothingEnabled || context.msImageSmoothingEnabled; + } + }; + + CRp.makeOffscreenCanvas = function (width, height) { + var canvas; + + if ((typeof OffscreenCanvas === "undefined" ? "undefined" : _typeof(OffscreenCanvas)) !== ("undefined" )) { + canvas = new OffscreenCanvas(width, height); + } else { + canvas = document.createElement('canvas'); // eslint-disable-line no-undef + + canvas.width = width; + canvas.height = height; + } + + return canvas; + }; + + [CRp$a, CRp$9, CRp$8, CRp$7, CRp$6, CRp$5, CRp$4, CRp$3, CRp$2, CRp$1].forEach(function (props) { + extend(CRp, props); + }); + + var renderer = [{ + name: 'null', + impl: NullRenderer + }, { + name: 'base', + impl: BR + }, { + name: 'canvas', + impl: CR + }]; + + var incExts = [{ + type: 'layout', + extensions: layout + }, { + type: 'renderer', + extensions: renderer + }]; + + var extensions = {}; // registered modules for extensions, indexed by name + + var modules = {}; + + function setExtension(type, name, registrant) { + var ext = registrant; + + var overrideErr = function overrideErr(field) { + warn('Can not register `' + name + '` for `' + type + '` since `' + field + '` already exists in the prototype and can not be overridden'); + }; + + if (type === 'core') { + if (Core.prototype[name]) { + return overrideErr(name); + } else { + Core.prototype[name] = registrant; + } + } else if (type === 'collection') { + if (Collection.prototype[name]) { + return overrideErr(name); + } else { + Collection.prototype[name] = registrant; + } + } else if (type === 'layout') { + // fill in missing layout functions in the prototype + var Layout = function Layout(options) { + this.options = options; + registrant.call(this, options); // make sure layout has _private for use w/ std apis like .on() + + if (!plainObject(this._private)) { + this._private = {}; + } + + this._private.cy = options.cy; + this._private.listeners = []; + this.createEmitter(); + }; + + var layoutProto = Layout.prototype = Object.create(registrant.prototype); + var optLayoutFns = []; + + for (var i = 0; i < optLayoutFns.length; i++) { + var fnName = optLayoutFns[i]; + + layoutProto[fnName] = layoutProto[fnName] || function () { + return this; + }; + } // either .start() or .run() is defined, so autogen the other + + + if (layoutProto.start && !layoutProto.run) { + layoutProto.run = function () { + this.start(); + return this; + }; + } else if (!layoutProto.start && layoutProto.run) { + layoutProto.start = function () { + this.run(); + return this; + }; + } + + var regStop = registrant.prototype.stop; + + layoutProto.stop = function () { + var opts = this.options; + + if (opts && opts.animate) { + var anis = this.animations; + + if (anis) { + for (var _i = 0; _i < anis.length; _i++) { + anis[_i].stop(); + } + } + } + + if (regStop) { + regStop.call(this); + } else { + this.emit('layoutstop'); + } + + return this; + }; + + if (!layoutProto.destroy) { + layoutProto.destroy = function () { + return this; + }; + } + + layoutProto.cy = function () { + return this._private.cy; + }; + + var getCy = function getCy(layout) { + return layout._private.cy; + }; + + var emitterOpts = { + addEventFields: function addEventFields(layout, evt) { + evt.layout = layout; + evt.cy = getCy(layout); + evt.target = layout; + }, + bubble: function bubble() { + return true; + }, + parent: function parent(layout) { + return getCy(layout); + } + }; + extend(layoutProto, { + createEmitter: function createEmitter() { + this._private.emitter = new Emitter(emitterOpts, this); + return this; + }, + emitter: function emitter() { + return this._private.emitter; + }, + on: function on(evt, cb) { + this.emitter().on(evt, cb); + return this; + }, + one: function one(evt, cb) { + this.emitter().one(evt, cb); + return this; + }, + once: function once(evt, cb) { + this.emitter().one(evt, cb); + return this; + }, + removeListener: function removeListener(evt, cb) { + this.emitter().removeListener(evt, cb); + return this; + }, + removeAllListeners: function removeAllListeners() { + this.emitter().removeAllListeners(); + return this; + }, + emit: function emit(evt, params) { + this.emitter().emit(evt, params); + return this; + } + }); + define.eventAliasesOn(layoutProto); + ext = Layout; // replace with our wrapped layout + } else if (type === 'renderer' && name !== 'null' && name !== 'base') { + // user registered renderers inherit from base + var BaseRenderer = getExtension('renderer', 'base'); + var bProto = BaseRenderer.prototype; + var RegistrantRenderer = registrant; + var rProto = registrant.prototype; + + var Renderer = function Renderer() { + BaseRenderer.apply(this, arguments); + RegistrantRenderer.apply(this, arguments); + }; + + var proto = Renderer.prototype; + + for (var pName in bProto) { + var pVal = bProto[pName]; + var existsInR = rProto[pName] != null; + + if (existsInR) { + return overrideErr(pName); + } + + proto[pName] = pVal; // take impl from base + } + + for (var _pName in rProto) { + proto[_pName] = rProto[_pName]; // take impl from registrant + } + + bProto.clientFunctions.forEach(function (name) { + proto[name] = proto[name] || function () { + error('Renderer does not implement `renderer.' + name + '()` on its prototype'); + }; + }); + ext = Renderer; + } else if (type === '__proto__' || type === 'constructor' || type === 'prototype') { + // to avoid potential prototype pollution + return error(type + ' is an illegal type to be registered, possibly lead to prototype pollutions'); + } + + return setMap({ + map: extensions, + keys: [type, name], + value: ext + }); + } + + function getExtension(type, name) { + return getMap({ + map: extensions, + keys: [type, name] + }); + } + + function setModule(type, name, moduleType, moduleName, registrant) { + return setMap({ + map: modules, + keys: [type, name, moduleType, moduleName], + value: registrant + }); + } + + function getModule(type, name, moduleType, moduleName) { + return getMap({ + map: modules, + keys: [type, name, moduleType, moduleName] + }); + } + + var extension = function extension() { + // e.g. extension('renderer', 'svg') + if (arguments.length === 2) { + return getExtension.apply(null, arguments); + } // e.g. extension('renderer', 'svg', { ... }) + else if (arguments.length === 3) { + return setExtension.apply(null, arguments); + } // e.g. extension('renderer', 'svg', 'nodeShape', 'ellipse') + else if (arguments.length === 4) { + return getModule.apply(null, arguments); + } // e.g. extension('renderer', 'svg', 'nodeShape', 'ellipse', { ... }) + else if (arguments.length === 5) { + return setModule.apply(null, arguments); + } else { + error('Invalid extension access syntax'); + } + }; // allows a core instance to access extensions internally + + + Core.prototype.extension = extension; // included extensions + + incExts.forEach(function (group) { + group.extensions.forEach(function (ext) { + setExtension(group.type, ext.name, ext.impl); + }); + }); + + // (useful for init) + + var Stylesheet = function Stylesheet() { + if (!(this instanceof Stylesheet)) { + return new Stylesheet(); + } + + this.length = 0; + }; + + var sheetfn = Stylesheet.prototype; + + sheetfn.instanceString = function () { + return 'stylesheet'; + }; // just store the selector to be parsed later + + + sheetfn.selector = function (selector) { + var i = this.length++; + this[i] = { + selector: selector, + properties: [] + }; + return this; // chaining + }; // just store the property to be parsed later + + + sheetfn.css = function (name, value) { + var i = this.length - 1; + + if (string(name)) { + this[i].properties.push({ + name: name, + value: value + }); + } else if (plainObject(name)) { + var map = name; + var propNames = Object.keys(map); + + for (var j = 0; j < propNames.length; j++) { + var key = propNames[j]; + var mapVal = map[key]; + + if (mapVal == null) { + continue; + } + + var prop = Style.properties[key] || Style.properties[dash2camel(key)]; + + if (prop == null) { + continue; + } + + var _name = prop.name; + var _value = mapVal; + this[i].properties.push({ + name: _name, + value: _value + }); + } + } + + return this; // chaining + }; + + sheetfn.style = sheetfn.css; // generate a real style object from the dummy stylesheet + + sheetfn.generateStyle = function (cy) { + var style = new Style(cy); + return this.appendToStyle(style); + }; // append a dummy stylesheet object on a real style object + + + sheetfn.appendToStyle = function (style) { + for (var i = 0; i < this.length; i++) { + var context = this[i]; + var selector = context.selector; + var props = context.properties; + style.selector(selector); // apply selector + + for (var j = 0; j < props.length; j++) { + var prop = props[j]; + style.css(prop.name, prop.value); // apply property + } + } + + return style; + }; + + var version = "3.26.0"; + + var cytoscape = function cytoscape(options) { + // if no options specified, use default + if (options === undefined) { + options = {}; + } // create instance + + + if (plainObject(options)) { + return new Core(options); + } // allow for registration of extensions + else if (string(options)) { + return extension.apply(extension, arguments); + } + }; // e.g. cytoscape.use( require('cytoscape-foo'), bar ) + + + cytoscape.use = function (ext) { + var args = Array.prototype.slice.call(arguments, 1); // args to pass to ext + + args.unshift(cytoscape); // cytoscape is first arg to ext + + ext.apply(null, args); + return this; + }; + + cytoscape.warnings = function (bool) { + return warnings(bool); + }; // replaced by build system + + + cytoscape.version = version; // expose public apis (mostly for extensions) + + cytoscape.stylesheet = cytoscape.Stylesheet = Stylesheet; + + return cytoscape; + +})); + + +/***/ }), + +/***/ 82241: +/***/ (function(module) { + +(function webpackUniversalModuleDefinition(root, factory) { + if(true) + module.exports = factory(); + else {} +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __nested_webpack_require_543__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_543__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __nested_webpack_require_543__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __nested_webpack_require_543__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __nested_webpack_require_543__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __nested_webpack_require_543__.d = function(exports, name, getter) { +/******/ if(!__nested_webpack_require_543__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __nested_webpack_require_543__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __nested_webpack_require_543__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __nested_webpack_require_543__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __nested_webpack_require_543__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __nested_webpack_require_543__(__nested_webpack_require_543__.s = 26); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function LayoutConstants() {} + +/** + * Layout Quality: 0:draft, 1:default, 2:proof + */ +LayoutConstants.QUALITY = 1; + +/** + * Default parameters + */ +LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED = false; +LayoutConstants.DEFAULT_INCREMENTAL = false; +LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT = true; +LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT = false; +LayoutConstants.DEFAULT_ANIMATION_PERIOD = 50; +LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES = false; + +// ----------------------------------------------------------------------------- +// Section: General other constants +// ----------------------------------------------------------------------------- +/* + * Margins of a graph to be applied on bouding rectangle of its contents. We + * assume margins on all four sides to be uniform. + */ +LayoutConstants.DEFAULT_GRAPH_MARGIN = 15; + +/* + * Whether to consider labels in node dimensions or not + */ +LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = false; + +/* + * Default dimension of a non-compound node. + */ +LayoutConstants.SIMPLE_NODE_SIZE = 40; + +/* + * Default dimension of a non-compound node. + */ +LayoutConstants.SIMPLE_NODE_HALF_SIZE = LayoutConstants.SIMPLE_NODE_SIZE / 2; + +/* + * Empty compound node size. When a compound node is empty, its both + * dimensions should be of this value. + */ +LayoutConstants.EMPTY_COMPOUND_NODE_SIZE = 40; + +/* + * Minimum length that an edge should take during layout + */ +LayoutConstants.MIN_EDGE_LENGTH = 1; + +/* + * World boundaries that layout operates on + */ +LayoutConstants.WORLD_BOUNDARY = 1000000; + +/* + * World boundaries that random positioning can be performed with + */ +LayoutConstants.INITIAL_WORLD_BOUNDARY = LayoutConstants.WORLD_BOUNDARY / 1000; + +/* + * Coordinates of the world center + */ +LayoutConstants.WORLD_CENTER_X = 1200; +LayoutConstants.WORLD_CENTER_Y = 900; + +module.exports = LayoutConstants; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __nested_webpack_require_4947__) { + +"use strict"; + + +var LGraphObject = __nested_webpack_require_4947__(2); +var IGeometry = __nested_webpack_require_4947__(8); +var IMath = __nested_webpack_require_4947__(9); + +function LEdge(source, target, vEdge) { + LGraphObject.call(this, vEdge); + + this.isOverlapingSourceAndTarget = false; + this.vGraphObject = vEdge; + this.bendpoints = []; + this.source = source; + this.target = target; +} + +LEdge.prototype = Object.create(LGraphObject.prototype); + +for (var prop in LGraphObject) { + LEdge[prop] = LGraphObject[prop]; +} + +LEdge.prototype.getSource = function () { + return this.source; +}; + +LEdge.prototype.getTarget = function () { + return this.target; +}; + +LEdge.prototype.isInterGraph = function () { + return this.isInterGraph; +}; + +LEdge.prototype.getLength = function () { + return this.length; +}; + +LEdge.prototype.isOverlapingSourceAndTarget = function () { + return this.isOverlapingSourceAndTarget; +}; + +LEdge.prototype.getBendpoints = function () { + return this.bendpoints; +}; + +LEdge.prototype.getLca = function () { + return this.lca; +}; + +LEdge.prototype.getSourceInLca = function () { + return this.sourceInLca; +}; + +LEdge.prototype.getTargetInLca = function () { + return this.targetInLca; +}; + +LEdge.prototype.getOtherEnd = function (node) { + if (this.source === node) { + return this.target; + } else if (this.target === node) { + return this.source; + } else { + throw "Node is not incident with this edge"; + } +}; + +LEdge.prototype.getOtherEndInGraph = function (node, graph) { + var otherEnd = this.getOtherEnd(node); + var root = graph.getGraphManager().getRoot(); + + while (true) { + if (otherEnd.getOwner() == graph) { + return otherEnd; + } + + if (otherEnd.getOwner() == root) { + break; + } + + otherEnd = otherEnd.getOwner().getParent(); + } + + return null; +}; + +LEdge.prototype.updateLength = function () { + var clipPointCoordinates = new Array(4); + + this.isOverlapingSourceAndTarget = IGeometry.getIntersection(this.target.getRect(), this.source.getRect(), clipPointCoordinates); + + if (!this.isOverlapingSourceAndTarget) { + this.lengthX = clipPointCoordinates[0] - clipPointCoordinates[2]; + this.lengthY = clipPointCoordinates[1] - clipPointCoordinates[3]; + + if (Math.abs(this.lengthX) < 1.0) { + this.lengthX = IMath.sign(this.lengthX); + } + + if (Math.abs(this.lengthY) < 1.0) { + this.lengthY = IMath.sign(this.lengthY); + } + + this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY); + } +}; + +LEdge.prototype.updateLengthSimple = function () { + this.lengthX = this.target.getCenterX() - this.source.getCenterX(); + this.lengthY = this.target.getCenterY() - this.source.getCenterY(); + + if (Math.abs(this.lengthX) < 1.0) { + this.lengthX = IMath.sign(this.lengthX); + } + + if (Math.abs(this.lengthY) < 1.0) { + this.lengthY = IMath.sign(this.lengthY); + } + + this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY); +}; + +module.exports = LEdge; + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function LGraphObject(vGraphObject) { + this.vGraphObject = vGraphObject; +} + +module.exports = LGraphObject; + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __nested_webpack_require_8167__) { + +"use strict"; + + +var LGraphObject = __nested_webpack_require_8167__(2); +var Integer = __nested_webpack_require_8167__(10); +var RectangleD = __nested_webpack_require_8167__(13); +var LayoutConstants = __nested_webpack_require_8167__(0); +var RandomSeed = __nested_webpack_require_8167__(16); +var PointD = __nested_webpack_require_8167__(4); + +function LNode(gm, loc, size, vNode) { + //Alternative constructor 1 : LNode(LGraphManager gm, Point loc, Dimension size, Object vNode) + if (size == null && vNode == null) { + vNode = loc; + } + + LGraphObject.call(this, vNode); + + //Alternative constructor 2 : LNode(Layout layout, Object vNode) + if (gm.graphManager != null) gm = gm.graphManager; + + this.estimatedSize = Integer.MIN_VALUE; + this.inclusionTreeDepth = Integer.MAX_VALUE; + this.vGraphObject = vNode; + this.edges = []; + this.graphManager = gm; + + if (size != null && loc != null) this.rect = new RectangleD(loc.x, loc.y, size.width, size.height);else this.rect = new RectangleD(); +} + +LNode.prototype = Object.create(LGraphObject.prototype); +for (var prop in LGraphObject) { + LNode[prop] = LGraphObject[prop]; +} + +LNode.prototype.getEdges = function () { + return this.edges; +}; + +LNode.prototype.getChild = function () { + return this.child; +}; + +LNode.prototype.getOwner = function () { + // if (this.owner != null) { + // if (!(this.owner == null || this.owner.getNodes().indexOf(this) > -1)) { + // throw "assert failed"; + // } + // } + + return this.owner; +}; + +LNode.prototype.getWidth = function () { + return this.rect.width; +}; + +LNode.prototype.setWidth = function (width) { + this.rect.width = width; +}; + +LNode.prototype.getHeight = function () { + return this.rect.height; +}; + +LNode.prototype.setHeight = function (height) { + this.rect.height = height; +}; + +LNode.prototype.getCenterX = function () { + return this.rect.x + this.rect.width / 2; +}; + +LNode.prototype.getCenterY = function () { + return this.rect.y + this.rect.height / 2; +}; + +LNode.prototype.getCenter = function () { + return new PointD(this.rect.x + this.rect.width / 2, this.rect.y + this.rect.height / 2); +}; + +LNode.prototype.getLocation = function () { + return new PointD(this.rect.x, this.rect.y); +}; + +LNode.prototype.getRect = function () { + return this.rect; +}; + +LNode.prototype.getDiagonal = function () { + return Math.sqrt(this.rect.width * this.rect.width + this.rect.height * this.rect.height); +}; + +/** + * This method returns half the diagonal length of this node. + */ +LNode.prototype.getHalfTheDiagonal = function () { + return Math.sqrt(this.rect.height * this.rect.height + this.rect.width * this.rect.width) / 2; +}; + +LNode.prototype.setRect = function (upperLeft, dimension) { + this.rect.x = upperLeft.x; + this.rect.y = upperLeft.y; + this.rect.width = dimension.width; + this.rect.height = dimension.height; +}; + +LNode.prototype.setCenter = function (cx, cy) { + this.rect.x = cx - this.rect.width / 2; + this.rect.y = cy - this.rect.height / 2; +}; + +LNode.prototype.setLocation = function (x, y) { + this.rect.x = x; + this.rect.y = y; +}; + +LNode.prototype.moveBy = function (dx, dy) { + this.rect.x += dx; + this.rect.y += dy; +}; + +LNode.prototype.getEdgeListToNode = function (to) { + var edgeList = []; + var edge; + var self = this; + + self.edges.forEach(function (edge) { + + if (edge.target == to) { + if (edge.source != self) throw "Incorrect edge source!"; + + edgeList.push(edge); + } + }); + + return edgeList; +}; + +LNode.prototype.getEdgesBetween = function (other) { + var edgeList = []; + var edge; + + var self = this; + self.edges.forEach(function (edge) { + + if (!(edge.source == self || edge.target == self)) throw "Incorrect edge source and/or target"; + + if (edge.target == other || edge.source == other) { + edgeList.push(edge); + } + }); + + return edgeList; +}; + +LNode.prototype.getNeighborsList = function () { + var neighbors = new Set(); + + var self = this; + self.edges.forEach(function (edge) { + + if (edge.source == self) { + neighbors.add(edge.target); + } else { + if (edge.target != self) { + throw "Incorrect incidency!"; + } + + neighbors.add(edge.source); + } + }); + + return neighbors; +}; + +LNode.prototype.withChildren = function () { + var withNeighborsList = new Set(); + var childNode; + var children; + + withNeighborsList.add(this); + + if (this.child != null) { + var nodes = this.child.getNodes(); + for (var i = 0; i < nodes.length; i++) { + childNode = nodes[i]; + children = childNode.withChildren(); + children.forEach(function (node) { + withNeighborsList.add(node); + }); + } + } + + return withNeighborsList; +}; + +LNode.prototype.getNoOfChildren = function () { + var noOfChildren = 0; + var childNode; + + if (this.child == null) { + noOfChildren = 1; + } else { + var nodes = this.child.getNodes(); + for (var i = 0; i < nodes.length; i++) { + childNode = nodes[i]; + + noOfChildren += childNode.getNoOfChildren(); + } + } + + if (noOfChildren == 0) { + noOfChildren = 1; + } + return noOfChildren; +}; + +LNode.prototype.getEstimatedSize = function () { + if (this.estimatedSize == Integer.MIN_VALUE) { + throw "assert failed"; + } + return this.estimatedSize; +}; + +LNode.prototype.calcEstimatedSize = function () { + if (this.child == null) { + return this.estimatedSize = (this.rect.width + this.rect.height) / 2; + } else { + this.estimatedSize = this.child.calcEstimatedSize(); + this.rect.width = this.estimatedSize; + this.rect.height = this.estimatedSize; + + return this.estimatedSize; + } +}; + +LNode.prototype.scatter = function () { + var randomCenterX; + var randomCenterY; + + var minX = -LayoutConstants.INITIAL_WORLD_BOUNDARY; + var maxX = LayoutConstants.INITIAL_WORLD_BOUNDARY; + randomCenterX = LayoutConstants.WORLD_CENTER_X + RandomSeed.nextDouble() * (maxX - minX) + minX; + + var minY = -LayoutConstants.INITIAL_WORLD_BOUNDARY; + var maxY = LayoutConstants.INITIAL_WORLD_BOUNDARY; + randomCenterY = LayoutConstants.WORLD_CENTER_Y + RandomSeed.nextDouble() * (maxY - minY) + minY; + + this.rect.x = randomCenterX; + this.rect.y = randomCenterY; +}; + +LNode.prototype.updateBounds = function () { + if (this.getChild() == null) { + throw "assert failed"; + } + if (this.getChild().getNodes().length != 0) { + // wrap the children nodes by re-arranging the boundaries + var childGraph = this.getChild(); + childGraph.updateBounds(true); + + this.rect.x = childGraph.getLeft(); + this.rect.y = childGraph.getTop(); + + this.setWidth(childGraph.getRight() - childGraph.getLeft()); + this.setHeight(childGraph.getBottom() - childGraph.getTop()); + + // Update compound bounds considering its label properties + if (LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS) { + + var width = childGraph.getRight() - childGraph.getLeft(); + var height = childGraph.getBottom() - childGraph.getTop(); + + if (this.labelWidth > width) { + this.rect.x -= (this.labelWidth - width) / 2; + this.setWidth(this.labelWidth); + } + + if (this.labelHeight > height) { + if (this.labelPos == "center") { + this.rect.y -= (this.labelHeight - height) / 2; + } else if (this.labelPos == "top") { + this.rect.y -= this.labelHeight - height; + } + this.setHeight(this.labelHeight); + } + } + } +}; + +LNode.prototype.getInclusionTreeDepth = function () { + if (this.inclusionTreeDepth == Integer.MAX_VALUE) { + throw "assert failed"; + } + return this.inclusionTreeDepth; +}; + +LNode.prototype.transform = function (trans) { + var left = this.rect.x; + + if (left > LayoutConstants.WORLD_BOUNDARY) { + left = LayoutConstants.WORLD_BOUNDARY; + } else if (left < -LayoutConstants.WORLD_BOUNDARY) { + left = -LayoutConstants.WORLD_BOUNDARY; + } + + var top = this.rect.y; + + if (top > LayoutConstants.WORLD_BOUNDARY) { + top = LayoutConstants.WORLD_BOUNDARY; + } else if (top < -LayoutConstants.WORLD_BOUNDARY) { + top = -LayoutConstants.WORLD_BOUNDARY; + } + + var leftTop = new PointD(left, top); + var vLeftTop = trans.inverseTransformPoint(leftTop); + + this.setLocation(vLeftTop.x, vLeftTop.y); +}; + +LNode.prototype.getLeft = function () { + return this.rect.x; +}; + +LNode.prototype.getRight = function () { + return this.rect.x + this.rect.width; +}; + +LNode.prototype.getTop = function () { + return this.rect.y; +}; + +LNode.prototype.getBottom = function () { + return this.rect.y + this.rect.height; +}; + +LNode.prototype.getParent = function () { + if (this.owner == null) { + return null; + } + + return this.owner.getParent(); +}; + +module.exports = LNode; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function PointD(x, y) { + if (x == null && y == null) { + this.x = 0; + this.y = 0; + } else { + this.x = x; + this.y = y; + } +} + +PointD.prototype.getX = function () { + return this.x; +}; + +PointD.prototype.getY = function () { + return this.y; +}; + +PointD.prototype.setX = function (x) { + this.x = x; +}; + +PointD.prototype.setY = function (y) { + this.y = y; +}; + +PointD.prototype.getDifference = function (pt) { + return new DimensionD(this.x - pt.x, this.y - pt.y); +}; + +PointD.prototype.getCopy = function () { + return new PointD(this.x, this.y); +}; + +PointD.prototype.translate = function (dim) { + this.x += dim.width; + this.y += dim.height; + return this; +}; + +module.exports = PointD; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __nested_webpack_require_17549__) { + +"use strict"; + + +var LGraphObject = __nested_webpack_require_17549__(2); +var Integer = __nested_webpack_require_17549__(10); +var LayoutConstants = __nested_webpack_require_17549__(0); +var LGraphManager = __nested_webpack_require_17549__(6); +var LNode = __nested_webpack_require_17549__(3); +var LEdge = __nested_webpack_require_17549__(1); +var RectangleD = __nested_webpack_require_17549__(13); +var Point = __nested_webpack_require_17549__(12); +var LinkedList = __nested_webpack_require_17549__(11); + +function LGraph(parent, obj2, vGraph) { + LGraphObject.call(this, vGraph); + this.estimatedSize = Integer.MIN_VALUE; + this.margin = LayoutConstants.DEFAULT_GRAPH_MARGIN; + this.edges = []; + this.nodes = []; + this.isConnected = false; + this.parent = parent; + + if (obj2 != null && obj2 instanceof LGraphManager) { + this.graphManager = obj2; + } else if (obj2 != null && obj2 instanceof Layout) { + this.graphManager = obj2.graphManager; + } +} + +LGraph.prototype = Object.create(LGraphObject.prototype); +for (var prop in LGraphObject) { + LGraph[prop] = LGraphObject[prop]; +} + +LGraph.prototype.getNodes = function () { + return this.nodes; +}; + +LGraph.prototype.getEdges = function () { + return this.edges; +}; + +LGraph.prototype.getGraphManager = function () { + return this.graphManager; +}; + +LGraph.prototype.getParent = function () { + return this.parent; +}; + +LGraph.prototype.getLeft = function () { + return this.left; +}; + +LGraph.prototype.getRight = function () { + return this.right; +}; + +LGraph.prototype.getTop = function () { + return this.top; +}; + +LGraph.prototype.getBottom = function () { + return this.bottom; +}; + +LGraph.prototype.isConnected = function () { + return this.isConnected; +}; + +LGraph.prototype.add = function (obj1, sourceNode, targetNode) { + if (sourceNode == null && targetNode == null) { + var newNode = obj1; + if (this.graphManager == null) { + throw "Graph has no graph mgr!"; + } + if (this.getNodes().indexOf(newNode) > -1) { + throw "Node already in graph!"; + } + newNode.owner = this; + this.getNodes().push(newNode); + + return newNode; + } else { + var newEdge = obj1; + if (!(this.getNodes().indexOf(sourceNode) > -1 && this.getNodes().indexOf(targetNode) > -1)) { + throw "Source or target not in graph!"; + } + + if (!(sourceNode.owner == targetNode.owner && sourceNode.owner == this)) { + throw "Both owners must be this graph!"; + } + + if (sourceNode.owner != targetNode.owner) { + return null; + } + + // set source and target + newEdge.source = sourceNode; + newEdge.target = targetNode; + + // set as intra-graph edge + newEdge.isInterGraph = false; + + // add to graph edge list + this.getEdges().push(newEdge); + + // add to incidency lists + sourceNode.edges.push(newEdge); + + if (targetNode != sourceNode) { + targetNode.edges.push(newEdge); + } + + return newEdge; + } +}; + +LGraph.prototype.remove = function (obj) { + var node = obj; + if (obj instanceof LNode) { + if (node == null) { + throw "Node is null!"; + } + if (!(node.owner != null && node.owner == this)) { + throw "Owner graph is invalid!"; + } + if (this.graphManager == null) { + throw "Owner graph manager is invalid!"; + } + // remove incident edges first (make a copy to do it safely) + var edgesToBeRemoved = node.edges.slice(); + var edge; + var s = edgesToBeRemoved.length; + for (var i = 0; i < s; i++) { + edge = edgesToBeRemoved[i]; + + if (edge.isInterGraph) { + this.graphManager.remove(edge); + } else { + edge.source.owner.remove(edge); + } + } + + // now the node itself + var index = this.nodes.indexOf(node); + if (index == -1) { + throw "Node not in owner node list!"; + } + + this.nodes.splice(index, 1); + } else if (obj instanceof LEdge) { + var edge = obj; + if (edge == null) { + throw "Edge is null!"; + } + if (!(edge.source != null && edge.target != null)) { + throw "Source and/or target is null!"; + } + if (!(edge.source.owner != null && edge.target.owner != null && edge.source.owner == this && edge.target.owner == this)) { + throw "Source and/or target owner is invalid!"; + } + + var sourceIndex = edge.source.edges.indexOf(edge); + var targetIndex = edge.target.edges.indexOf(edge); + if (!(sourceIndex > -1 && targetIndex > -1)) { + throw "Source and/or target doesn't know this edge!"; + } + + edge.source.edges.splice(sourceIndex, 1); + + if (edge.target != edge.source) { + edge.target.edges.splice(targetIndex, 1); + } + + var index = edge.source.owner.getEdges().indexOf(edge); + if (index == -1) { + throw "Not in owner's edge list!"; + } + + edge.source.owner.getEdges().splice(index, 1); + } +}; + +LGraph.prototype.updateLeftTop = function () { + var top = Integer.MAX_VALUE; + var left = Integer.MAX_VALUE; + var nodeTop; + var nodeLeft; + var margin; + + var nodes = this.getNodes(); + var s = nodes.length; + + for (var i = 0; i < s; i++) { + var lNode = nodes[i]; + nodeTop = lNode.getTop(); + nodeLeft = lNode.getLeft(); + + if (top > nodeTop) { + top = nodeTop; + } + + if (left > nodeLeft) { + left = nodeLeft; + } + } + + // Do we have any nodes in this graph? + if (top == Integer.MAX_VALUE) { + return null; + } + + if (nodes[0].getParent().paddingLeft != undefined) { + margin = nodes[0].getParent().paddingLeft; + } else { + margin = this.margin; + } + + this.left = left - margin; + this.top = top - margin; + + // Apply the margins and return the result + return new Point(this.left, this.top); +}; + +LGraph.prototype.updateBounds = function (recursive) { + // calculate bounds + var left = Integer.MAX_VALUE; + var right = -Integer.MAX_VALUE; + var top = Integer.MAX_VALUE; + var bottom = -Integer.MAX_VALUE; + var nodeLeft; + var nodeRight; + var nodeTop; + var nodeBottom; + var margin; + + var nodes = this.nodes; + var s = nodes.length; + for (var i = 0; i < s; i++) { + var lNode = nodes[i]; + + if (recursive && lNode.child != null) { + lNode.updateBounds(); + } + nodeLeft = lNode.getLeft(); + nodeRight = lNode.getRight(); + nodeTop = lNode.getTop(); + nodeBottom = lNode.getBottom(); + + if (left > nodeLeft) { + left = nodeLeft; + } + + if (right < nodeRight) { + right = nodeRight; + } + + if (top > nodeTop) { + top = nodeTop; + } + + if (bottom < nodeBottom) { + bottom = nodeBottom; + } + } + + var boundingRect = new RectangleD(left, top, right - left, bottom - top); + if (left == Integer.MAX_VALUE) { + this.left = this.parent.getLeft(); + this.right = this.parent.getRight(); + this.top = this.parent.getTop(); + this.bottom = this.parent.getBottom(); + } + + if (nodes[0].getParent().paddingLeft != undefined) { + margin = nodes[0].getParent().paddingLeft; + } else { + margin = this.margin; + } + + this.left = boundingRect.x - margin; + this.right = boundingRect.x + boundingRect.width + margin; + this.top = boundingRect.y - margin; + this.bottom = boundingRect.y + boundingRect.height + margin; +}; + +LGraph.calculateBounds = function (nodes) { + var left = Integer.MAX_VALUE; + var right = -Integer.MAX_VALUE; + var top = Integer.MAX_VALUE; + var bottom = -Integer.MAX_VALUE; + var nodeLeft; + var nodeRight; + var nodeTop; + var nodeBottom; + + var s = nodes.length; + + for (var i = 0; i < s; i++) { + var lNode = nodes[i]; + nodeLeft = lNode.getLeft(); + nodeRight = lNode.getRight(); + nodeTop = lNode.getTop(); + nodeBottom = lNode.getBottom(); + + if (left > nodeLeft) { + left = nodeLeft; + } + + if (right < nodeRight) { + right = nodeRight; + } + + if (top > nodeTop) { + top = nodeTop; + } + + if (bottom < nodeBottom) { + bottom = nodeBottom; + } + } + + var boundingRect = new RectangleD(left, top, right - left, bottom - top); + + return boundingRect; +}; + +LGraph.prototype.getInclusionTreeDepth = function () { + if (this == this.graphManager.getRoot()) { + return 1; + } else { + return this.parent.getInclusionTreeDepth(); + } +}; + +LGraph.prototype.getEstimatedSize = function () { + if (this.estimatedSize == Integer.MIN_VALUE) { + throw "assert failed"; + } + return this.estimatedSize; +}; + +LGraph.prototype.calcEstimatedSize = function () { + var size = 0; + var nodes = this.nodes; + var s = nodes.length; + + for (var i = 0; i < s; i++) { + var lNode = nodes[i]; + size += lNode.calcEstimatedSize(); + } + + if (size == 0) { + this.estimatedSize = LayoutConstants.EMPTY_COMPOUND_NODE_SIZE; + } else { + this.estimatedSize = size / Math.sqrt(this.nodes.length); + } + + return this.estimatedSize; +}; + +LGraph.prototype.updateConnected = function () { + var self = this; + if (this.nodes.length == 0) { + this.isConnected = true; + return; + } + + var queue = new LinkedList(); + var visited = new Set(); + var currentNode = this.nodes[0]; + var neighborEdges; + var currentNeighbor; + var childrenOfNode = currentNode.withChildren(); + childrenOfNode.forEach(function (node) { + queue.push(node); + visited.add(node); + }); + + while (queue.length !== 0) { + currentNode = queue.shift(); + + // Traverse all neighbors of this node + neighborEdges = currentNode.getEdges(); + var size = neighborEdges.length; + for (var i = 0; i < size; i++) { + var neighborEdge = neighborEdges[i]; + currentNeighbor = neighborEdge.getOtherEndInGraph(currentNode, this); + + // Add unvisited neighbors to the list to visit + if (currentNeighbor != null && !visited.has(currentNeighbor)) { + var childrenOfNeighbor = currentNeighbor.withChildren(); + + childrenOfNeighbor.forEach(function (node) { + queue.push(node); + visited.add(node); + }); + } + } + } + + this.isConnected = false; + + if (visited.size >= this.nodes.length) { + var noOfVisitedInThisGraph = 0; + + visited.forEach(function (visitedNode) { + if (visitedNode.owner == self) { + noOfVisitedInThisGraph++; + } + }); + + if (noOfVisitedInThisGraph == this.nodes.length) { + this.isConnected = true; + } + } +}; + +module.exports = LGraph; + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __nested_webpack_require_27617__) { + +"use strict"; + + +var LGraph; +var LEdge = __nested_webpack_require_27617__(1); + +function LGraphManager(layout) { + LGraph = __nested_webpack_require_27617__(5); // It may be better to initilize this out of this function but it gives an error (Right-hand side of 'instanceof' is not callable) now. + this.layout = layout; + + this.graphs = []; + this.edges = []; +} + +LGraphManager.prototype.addRoot = function () { + var ngraph = this.layout.newGraph(); + var nnode = this.layout.newNode(null); + var root = this.add(ngraph, nnode); + this.setRootGraph(root); + return this.rootGraph; +}; + +LGraphManager.prototype.add = function (newGraph, parentNode, newEdge, sourceNode, targetNode) { + //there are just 2 parameters are passed then it adds an LGraph else it adds an LEdge + if (newEdge == null && sourceNode == null && targetNode == null) { + if (newGraph == null) { + throw "Graph is null!"; + } + if (parentNode == null) { + throw "Parent node is null!"; + } + if (this.graphs.indexOf(newGraph) > -1) { + throw "Graph already in this graph mgr!"; + } + + this.graphs.push(newGraph); + + if (newGraph.parent != null) { + throw "Already has a parent!"; + } + if (parentNode.child != null) { + throw "Already has a child!"; + } + + newGraph.parent = parentNode; + parentNode.child = newGraph; + + return newGraph; + } else { + //change the order of the parameters + targetNode = newEdge; + sourceNode = parentNode; + newEdge = newGraph; + var sourceGraph = sourceNode.getOwner(); + var targetGraph = targetNode.getOwner(); + + if (!(sourceGraph != null && sourceGraph.getGraphManager() == this)) { + throw "Source not in this graph mgr!"; + } + if (!(targetGraph != null && targetGraph.getGraphManager() == this)) { + throw "Target not in this graph mgr!"; + } + + if (sourceGraph == targetGraph) { + newEdge.isInterGraph = false; + return sourceGraph.add(newEdge, sourceNode, targetNode); + } else { + newEdge.isInterGraph = true; + + // set source and target + newEdge.source = sourceNode; + newEdge.target = targetNode; + + // add edge to inter-graph edge list + if (this.edges.indexOf(newEdge) > -1) { + throw "Edge already in inter-graph edge list!"; + } + + this.edges.push(newEdge); + + // add edge to source and target incidency lists + if (!(newEdge.source != null && newEdge.target != null)) { + throw "Edge source and/or target is null!"; + } + + if (!(newEdge.source.edges.indexOf(newEdge) == -1 && newEdge.target.edges.indexOf(newEdge) == -1)) { + throw "Edge already in source and/or target incidency list!"; + } + + newEdge.source.edges.push(newEdge); + newEdge.target.edges.push(newEdge); + + return newEdge; + } + } +}; + +LGraphManager.prototype.remove = function (lObj) { + if (lObj instanceof LGraph) { + var graph = lObj; + if (graph.getGraphManager() != this) { + throw "Graph not in this graph mgr"; + } + if (!(graph == this.rootGraph || graph.parent != null && graph.parent.graphManager == this)) { + throw "Invalid parent node!"; + } + + // first the edges (make a copy to do it safely) + var edgesToBeRemoved = []; + + edgesToBeRemoved = edgesToBeRemoved.concat(graph.getEdges()); + + var edge; + var s = edgesToBeRemoved.length; + for (var i = 0; i < s; i++) { + edge = edgesToBeRemoved[i]; + graph.remove(edge); + } + + // then the nodes (make a copy to do it safely) + var nodesToBeRemoved = []; + + nodesToBeRemoved = nodesToBeRemoved.concat(graph.getNodes()); + + var node; + s = nodesToBeRemoved.length; + for (var i = 0; i < s; i++) { + node = nodesToBeRemoved[i]; + graph.remove(node); + } + + // check if graph is the root + if (graph == this.rootGraph) { + this.setRootGraph(null); + } + + // now remove the graph itself + var index = this.graphs.indexOf(graph); + this.graphs.splice(index, 1); + + // also reset the parent of the graph + graph.parent = null; + } else if (lObj instanceof LEdge) { + edge = lObj; + if (edge == null) { + throw "Edge is null!"; + } + if (!edge.isInterGraph) { + throw "Not an inter-graph edge!"; + } + if (!(edge.source != null && edge.target != null)) { + throw "Source and/or target is null!"; + } + + // remove edge from source and target nodes' incidency lists + + if (!(edge.source.edges.indexOf(edge) != -1 && edge.target.edges.indexOf(edge) != -1)) { + throw "Source and/or target doesn't know this edge!"; + } + + var index = edge.source.edges.indexOf(edge); + edge.source.edges.splice(index, 1); + index = edge.target.edges.indexOf(edge); + edge.target.edges.splice(index, 1); + + // remove edge from owner graph manager's inter-graph edge list + + if (!(edge.source.owner != null && edge.source.owner.getGraphManager() != null)) { + throw "Edge owner graph or owner graph manager is null!"; + } + if (edge.source.owner.getGraphManager().edges.indexOf(edge) == -1) { + throw "Not in owner graph manager's edge list!"; + } + + var index = edge.source.owner.getGraphManager().edges.indexOf(edge); + edge.source.owner.getGraphManager().edges.splice(index, 1); + } +}; + +LGraphManager.prototype.updateBounds = function () { + this.rootGraph.updateBounds(true); +}; + +LGraphManager.prototype.getGraphs = function () { + return this.graphs; +}; + +LGraphManager.prototype.getAllNodes = function () { + if (this.allNodes == null) { + var nodeList = []; + var graphs = this.getGraphs(); + var s = graphs.length; + for (var i = 0; i < s; i++) { + nodeList = nodeList.concat(graphs[i].getNodes()); + } + this.allNodes = nodeList; + } + return this.allNodes; +}; + +LGraphManager.prototype.resetAllNodes = function () { + this.allNodes = null; +}; + +LGraphManager.prototype.resetAllEdges = function () { + this.allEdges = null; +}; + +LGraphManager.prototype.resetAllNodesToApplyGravitation = function () { + this.allNodesToApplyGravitation = null; +}; + +LGraphManager.prototype.getAllEdges = function () { + if (this.allEdges == null) { + var edgeList = []; + var graphs = this.getGraphs(); + var s = graphs.length; + for (var i = 0; i < graphs.length; i++) { + edgeList = edgeList.concat(graphs[i].getEdges()); + } + + edgeList = edgeList.concat(this.edges); + + this.allEdges = edgeList; + } + return this.allEdges; +}; + +LGraphManager.prototype.getAllNodesToApplyGravitation = function () { + return this.allNodesToApplyGravitation; +}; + +LGraphManager.prototype.setAllNodesToApplyGravitation = function (nodeList) { + if (this.allNodesToApplyGravitation != null) { + throw "assert failed"; + } + + this.allNodesToApplyGravitation = nodeList; +}; + +LGraphManager.prototype.getRoot = function () { + return this.rootGraph; +}; + +LGraphManager.prototype.setRootGraph = function (graph) { + if (graph.getGraphManager() != this) { + throw "Root not in this graph mgr!"; + } + + this.rootGraph = graph; + // root graph must have a root node associated with it for convenience + if (graph.parent == null) { + graph.parent = this.layout.newNode("Root node"); + } +}; + +LGraphManager.prototype.getLayout = function () { + return this.layout; +}; + +LGraphManager.prototype.isOneAncestorOfOther = function (firstNode, secondNode) { + if (!(firstNode != null && secondNode != null)) { + throw "assert failed"; + } + + if (firstNode == secondNode) { + return true; + } + // Is second node an ancestor of the first one? + var ownerGraph = firstNode.getOwner(); + var parentNode; + + do { + parentNode = ownerGraph.getParent(); + + if (parentNode == null) { + break; + } + + if (parentNode == secondNode) { + return true; + } + + ownerGraph = parentNode.getOwner(); + if (ownerGraph == null) { + break; + } + } while (true); + // Is first node an ancestor of the second one? + ownerGraph = secondNode.getOwner(); + + do { + parentNode = ownerGraph.getParent(); + + if (parentNode == null) { + break; + } + + if (parentNode == firstNode) { + return true; + } + + ownerGraph = parentNode.getOwner(); + if (ownerGraph == null) { + break; + } + } while (true); + + return false; +}; + +LGraphManager.prototype.calcLowestCommonAncestors = function () { + var edge; + var sourceNode; + var targetNode; + var sourceAncestorGraph; + var targetAncestorGraph; + + var edges = this.getAllEdges(); + var s = edges.length; + for (var i = 0; i < s; i++) { + edge = edges[i]; + + sourceNode = edge.source; + targetNode = edge.target; + edge.lca = null; + edge.sourceInLca = sourceNode; + edge.targetInLca = targetNode; + + if (sourceNode == targetNode) { + edge.lca = sourceNode.getOwner(); + continue; + } + + sourceAncestorGraph = sourceNode.getOwner(); + + while (edge.lca == null) { + edge.targetInLca = targetNode; + targetAncestorGraph = targetNode.getOwner(); + + while (edge.lca == null) { + if (targetAncestorGraph == sourceAncestorGraph) { + edge.lca = targetAncestorGraph; + break; + } + + if (targetAncestorGraph == this.rootGraph) { + break; + } + + if (edge.lca != null) { + throw "assert failed"; + } + edge.targetInLca = targetAncestorGraph.getParent(); + targetAncestorGraph = edge.targetInLca.getOwner(); + } + + if (sourceAncestorGraph == this.rootGraph) { + break; + } + + if (edge.lca == null) { + edge.sourceInLca = sourceAncestorGraph.getParent(); + sourceAncestorGraph = edge.sourceInLca.getOwner(); + } + } + + if (edge.lca == null) { + throw "assert failed"; + } + } +}; + +LGraphManager.prototype.calcLowestCommonAncestor = function (firstNode, secondNode) { + if (firstNode == secondNode) { + return firstNode.getOwner(); + } + var firstOwnerGraph = firstNode.getOwner(); + + do { + if (firstOwnerGraph == null) { + break; + } + var secondOwnerGraph = secondNode.getOwner(); + + do { + if (secondOwnerGraph == null) { + break; + } + + if (secondOwnerGraph == firstOwnerGraph) { + return secondOwnerGraph; + } + secondOwnerGraph = secondOwnerGraph.getParent().getOwner(); + } while (true); + + firstOwnerGraph = firstOwnerGraph.getParent().getOwner(); + } while (true); + + return firstOwnerGraph; +}; + +LGraphManager.prototype.calcInclusionTreeDepths = function (graph, depth) { + if (graph == null && depth == null) { + graph = this.rootGraph; + depth = 1; + } + var node; + + var nodes = graph.getNodes(); + var s = nodes.length; + for (var i = 0; i < s; i++) { + node = nodes[i]; + node.inclusionTreeDepth = depth; + + if (node.child != null) { + this.calcInclusionTreeDepths(node.child, depth + 1); + } + } +}; + +LGraphManager.prototype.includesInvalidEdge = function () { + var edge; + + var s = this.edges.length; + for (var i = 0; i < s; i++) { + edge = this.edges[i]; + + if (this.isOneAncestorOfOther(edge.source, edge.target)) { + return true; + } + } + return false; +}; + +module.exports = LGraphManager; + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __nested_webpack_require_38707__) { + +"use strict"; + + +var LayoutConstants = __nested_webpack_require_38707__(0); + +function FDLayoutConstants() {} + +//FDLayoutConstants inherits static props in LayoutConstants +for (var prop in LayoutConstants) { + FDLayoutConstants[prop] = LayoutConstants[prop]; +} + +FDLayoutConstants.MAX_ITERATIONS = 2500; + +FDLayoutConstants.DEFAULT_EDGE_LENGTH = 50; +FDLayoutConstants.DEFAULT_SPRING_STRENGTH = 0.45; +FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = 4500.0; +FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = 0.4; +FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = 1.0; +FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = 3.8; +FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = 1.5; +FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION = true; +FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION = true; +FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = 0.3; +FDLayoutConstants.COOLING_ADAPTATION_FACTOR = 0.33; +FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT = 1000; +FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT = 5000; +FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL = 100.0; +FDLayoutConstants.MAX_NODE_DISPLACEMENT = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL * 3; +FDLayoutConstants.MIN_REPULSION_DIST = FDLayoutConstants.DEFAULT_EDGE_LENGTH / 10.0; +FDLayoutConstants.CONVERGENCE_CHECK_PERIOD = 100; +FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = 0.1; +FDLayoutConstants.MIN_EDGE_LENGTH = 1; +FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD = 10; + +module.exports = FDLayoutConstants; + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __nested_webpack_require_40298__) { + +"use strict"; + + +/** + * This class maintains a list of static geometry related utility methods. + * + * + * Copyright: i-Vis Research Group, Bilkent University, 2007 - present + */ + +var Point = __nested_webpack_require_40298__(12); + +function IGeometry() {} + +/** + * This method calculates *half* the amount in x and y directions of the two + * input rectangles needed to separate them keeping their respective + * positioning, and returns the result in the input array. An input + * separation buffer added to the amount in both directions. We assume that + * the two rectangles do intersect. + */ +IGeometry.calcSeparationAmount = function (rectA, rectB, overlapAmount, separationBuffer) { + if (!rectA.intersects(rectB)) { + throw "assert failed"; + } + + var directions = new Array(2); + + this.decideDirectionsForOverlappingNodes(rectA, rectB, directions); + + overlapAmount[0] = Math.min(rectA.getRight(), rectB.getRight()) - Math.max(rectA.x, rectB.x); + overlapAmount[1] = Math.min(rectA.getBottom(), rectB.getBottom()) - Math.max(rectA.y, rectB.y); + + // update the overlapping amounts for the following cases: + if (rectA.getX() <= rectB.getX() && rectA.getRight() >= rectB.getRight()) { + /* Case x.1: + * + * rectA + * | | + * | _________ | + * | | | | + * |________|_______|______| + * | | + * | | + * rectB + */ + overlapAmount[0] += Math.min(rectB.getX() - rectA.getX(), rectA.getRight() - rectB.getRight()); + } else if (rectB.getX() <= rectA.getX() && rectB.getRight() >= rectA.getRight()) { + /* Case x.2: + * + * rectB + * | | + * | _________ | + * | | | | + * |________|_______|______| + * | | + * | | + * rectA + */ + overlapAmount[0] += Math.min(rectA.getX() - rectB.getX(), rectB.getRight() - rectA.getRight()); + } + if (rectA.getY() <= rectB.getY() && rectA.getBottom() >= rectB.getBottom()) { + /* Case y.1: + * ________ rectA + * | + * | + * ______|____ rectB + * | | + * | | + * ______|____| + * | + * | + * |________ + * + */ + overlapAmount[1] += Math.min(rectB.getY() - rectA.getY(), rectA.getBottom() - rectB.getBottom()); + } else if (rectB.getY() <= rectA.getY() && rectB.getBottom() >= rectA.getBottom()) { + /* Case y.2: + * ________ rectB + * | + * | + * ______|____ rectA + * | | + * | | + * ______|____| + * | + * | + * |________ + * + */ + overlapAmount[1] += Math.min(rectA.getY() - rectB.getY(), rectB.getBottom() - rectA.getBottom()); + } + + // find slope of the line passes two centers + var slope = Math.abs((rectB.getCenterY() - rectA.getCenterY()) / (rectB.getCenterX() - rectA.getCenterX())); + // if centers are overlapped + if (rectB.getCenterY() === rectA.getCenterY() && rectB.getCenterX() === rectA.getCenterX()) { + // assume the slope is 1 (45 degree) + slope = 1.0; + } + + var moveByY = slope * overlapAmount[0]; + var moveByX = overlapAmount[1] / slope; + if (overlapAmount[0] < moveByX) { + moveByX = overlapAmount[0]; + } else { + moveByY = overlapAmount[1]; + } + // return half the amount so that if each rectangle is moved by these + // amounts in opposite directions, overlap will be resolved + overlapAmount[0] = -1 * directions[0] * (moveByX / 2 + separationBuffer); + overlapAmount[1] = -1 * directions[1] * (moveByY / 2 + separationBuffer); +}; + +/** + * This method decides the separation direction of overlapping nodes + * + * if directions[0] = -1, then rectA goes left + * if directions[0] = 1, then rectA goes right + * if directions[1] = -1, then rectA goes up + * if directions[1] = 1, then rectA goes down + */ +IGeometry.decideDirectionsForOverlappingNodes = function (rectA, rectB, directions) { + if (rectA.getCenterX() < rectB.getCenterX()) { + directions[0] = -1; + } else { + directions[0] = 1; + } + + if (rectA.getCenterY() < rectB.getCenterY()) { + directions[1] = -1; + } else { + directions[1] = 1; + } +}; + +/** + * This method calculates the intersection (clipping) points of the two + * input rectangles with line segment defined by the centers of these two + * rectangles. The clipping points are saved in the input double array and + * whether or not the two rectangles overlap is returned. + */ +IGeometry.getIntersection2 = function (rectA, rectB, result) { + //result[0-1] will contain clipPoint of rectA, result[2-3] will contain clipPoint of rectB + var p1x = rectA.getCenterX(); + var p1y = rectA.getCenterY(); + var p2x = rectB.getCenterX(); + var p2y = rectB.getCenterY(); + + //if two rectangles intersect, then clipping points are centers + if (rectA.intersects(rectB)) { + result[0] = p1x; + result[1] = p1y; + result[2] = p2x; + result[3] = p2y; + return true; + } + //variables for rectA + var topLeftAx = rectA.getX(); + var topLeftAy = rectA.getY(); + var topRightAx = rectA.getRight(); + var bottomLeftAx = rectA.getX(); + var bottomLeftAy = rectA.getBottom(); + var bottomRightAx = rectA.getRight(); + var halfWidthA = rectA.getWidthHalf(); + var halfHeightA = rectA.getHeightHalf(); + //variables for rectB + var topLeftBx = rectB.getX(); + var topLeftBy = rectB.getY(); + var topRightBx = rectB.getRight(); + var bottomLeftBx = rectB.getX(); + var bottomLeftBy = rectB.getBottom(); + var bottomRightBx = rectB.getRight(); + var halfWidthB = rectB.getWidthHalf(); + var halfHeightB = rectB.getHeightHalf(); + + //flag whether clipping points are found + var clipPointAFound = false; + var clipPointBFound = false; + + // line is vertical + if (p1x === p2x) { + if (p1y > p2y) { + result[0] = p1x; + result[1] = topLeftAy; + result[2] = p2x; + result[3] = bottomLeftBy; + return false; + } else if (p1y < p2y) { + result[0] = p1x; + result[1] = bottomLeftAy; + result[2] = p2x; + result[3] = topLeftBy; + return false; + } else { + //not line, return null; + } + } + // line is horizontal + else if (p1y === p2y) { + if (p1x > p2x) { + result[0] = topLeftAx; + result[1] = p1y; + result[2] = topRightBx; + result[3] = p2y; + return false; + } else if (p1x < p2x) { + result[0] = topRightAx; + result[1] = p1y; + result[2] = topLeftBx; + result[3] = p2y; + return false; + } else { + //not valid line, return null; + } + } else { + //slopes of rectA's and rectB's diagonals + var slopeA = rectA.height / rectA.width; + var slopeB = rectB.height / rectB.width; + + //slope of line between center of rectA and center of rectB + var slopePrime = (p2y - p1y) / (p2x - p1x); + var cardinalDirectionA = void 0; + var cardinalDirectionB = void 0; + var tempPointAx = void 0; + var tempPointAy = void 0; + var tempPointBx = void 0; + var tempPointBy = void 0; + + //determine whether clipping point is the corner of nodeA + if (-slopeA === slopePrime) { + if (p1x > p2x) { + result[0] = bottomLeftAx; + result[1] = bottomLeftAy; + clipPointAFound = true; + } else { + result[0] = topRightAx; + result[1] = topLeftAy; + clipPointAFound = true; + } + } else if (slopeA === slopePrime) { + if (p1x > p2x) { + result[0] = topLeftAx; + result[1] = topLeftAy; + clipPointAFound = true; + } else { + result[0] = bottomRightAx; + result[1] = bottomLeftAy; + clipPointAFound = true; + } + } + + //determine whether clipping point is the corner of nodeB + if (-slopeB === slopePrime) { + if (p2x > p1x) { + result[2] = bottomLeftBx; + result[3] = bottomLeftBy; + clipPointBFound = true; + } else { + result[2] = topRightBx; + result[3] = topLeftBy; + clipPointBFound = true; + } + } else if (slopeB === slopePrime) { + if (p2x > p1x) { + result[2] = topLeftBx; + result[3] = topLeftBy; + clipPointBFound = true; + } else { + result[2] = bottomRightBx; + result[3] = bottomLeftBy; + clipPointBFound = true; + } + } + + //if both clipping points are corners + if (clipPointAFound && clipPointBFound) { + return false; + } + + //determine Cardinal Direction of rectangles + if (p1x > p2x) { + if (p1y > p2y) { + cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 4); + cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 2); + } else { + cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 3); + cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 1); + } + } else { + if (p1y > p2y) { + cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 1); + cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 3); + } else { + cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 2); + cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 4); + } + } + //calculate clipping Point if it is not found before + if (!clipPointAFound) { + switch (cardinalDirectionA) { + case 1: + tempPointAy = topLeftAy; + tempPointAx = p1x + -halfHeightA / slopePrime; + result[0] = tempPointAx; + result[1] = tempPointAy; + break; + case 2: + tempPointAx = bottomRightAx; + tempPointAy = p1y + halfWidthA * slopePrime; + result[0] = tempPointAx; + result[1] = tempPointAy; + break; + case 3: + tempPointAy = bottomLeftAy; + tempPointAx = p1x + halfHeightA / slopePrime; + result[0] = tempPointAx; + result[1] = tempPointAy; + break; + case 4: + tempPointAx = bottomLeftAx; + tempPointAy = p1y + -halfWidthA * slopePrime; + result[0] = tempPointAx; + result[1] = tempPointAy; + break; + } + } + if (!clipPointBFound) { + switch (cardinalDirectionB) { + case 1: + tempPointBy = topLeftBy; + tempPointBx = p2x + -halfHeightB / slopePrime; + result[2] = tempPointBx; + result[3] = tempPointBy; + break; + case 2: + tempPointBx = bottomRightBx; + tempPointBy = p2y + halfWidthB * slopePrime; + result[2] = tempPointBx; + result[3] = tempPointBy; + break; + case 3: + tempPointBy = bottomLeftBy; + tempPointBx = p2x + halfHeightB / slopePrime; + result[2] = tempPointBx; + result[3] = tempPointBy; + break; + case 4: + tempPointBx = bottomLeftBx; + tempPointBy = p2y + -halfWidthB * slopePrime; + result[2] = tempPointBx; + result[3] = tempPointBy; + break; + } + } + } + return false; +}; + +/** + * This method returns in which cardinal direction does input point stays + * 1: North + * 2: East + * 3: South + * 4: West + */ +IGeometry.getCardinalDirection = function (slope, slopePrime, line) { + if (slope > slopePrime) { + return line; + } else { + return 1 + line % 4; + } +}; + +/** + * This method calculates the intersection of the two lines defined by + * point pairs (s1,s2) and (f1,f2). + */ +IGeometry.getIntersection = function (s1, s2, f1, f2) { + if (f2 == null) { + return this.getIntersection2(s1, s2, f1); + } + + var x1 = s1.x; + var y1 = s1.y; + var x2 = s2.x; + var y2 = s2.y; + var x3 = f1.x; + var y3 = f1.y; + var x4 = f2.x; + var y4 = f2.y; + var x = void 0, + y = void 0; // intersection point + var a1 = void 0, + a2 = void 0, + b1 = void 0, + b2 = void 0, + c1 = void 0, + c2 = void 0; // coefficients of line eqns. + var denom = void 0; + + a1 = y2 - y1; + b1 = x1 - x2; + c1 = x2 * y1 - x1 * y2; // { a1*x + b1*y + c1 = 0 is line 1 } + + a2 = y4 - y3; + b2 = x3 - x4; + c2 = x4 * y3 - x3 * y4; // { a2*x + b2*y + c2 = 0 is line 2 } + + denom = a1 * b2 - a2 * b1; + + if (denom === 0) { + return null; + } + + x = (b1 * c2 - b2 * c1) / denom; + y = (a2 * c1 - a1 * c2) / denom; + + return new Point(x, y); +}; + +/** + * This method finds and returns the angle of the vector from the + x-axis + * in clockwise direction (compatible w/ Java coordinate system!). + */ +IGeometry.angleOfVector = function (Cx, Cy, Nx, Ny) { + var C_angle = void 0; + + if (Cx !== Nx) { + C_angle = Math.atan((Ny - Cy) / (Nx - Cx)); + + if (Nx < Cx) { + C_angle += Math.PI; + } else if (Ny < Cy) { + C_angle += this.TWO_PI; + } + } else if (Ny < Cy) { + C_angle = this.ONE_AND_HALF_PI; // 270 degrees + } else { + C_angle = this.HALF_PI; // 90 degrees + } + + return C_angle; +}; + +/** + * This method checks whether the given two line segments (one with point + * p1 and p2, the other with point p3 and p4) intersect at a point other + * than these points. + */ +IGeometry.doIntersect = function (p1, p2, p3, p4) { + var a = p1.x; + var b = p1.y; + var c = p2.x; + var d = p2.y; + var p = p3.x; + var q = p3.y; + var r = p4.x; + var s = p4.y; + var det = (c - a) * (s - q) - (r - p) * (d - b); + + if (det === 0) { + return false; + } else { + var lambda = ((s - q) * (r - a) + (p - r) * (s - b)) / det; + var gamma = ((b - d) * (r - a) + (c - a) * (s - b)) / det; + return 0 < lambda && lambda < 1 && 0 < gamma && gamma < 1; + } +}; + +// ----------------------------------------------------------------------------- +// Section: Class Constants +// ----------------------------------------------------------------------------- +/** + * Some useful pre-calculated constants + */ +IGeometry.HALF_PI = 0.5 * Math.PI; +IGeometry.ONE_AND_HALF_PI = 1.5 * Math.PI; +IGeometry.TWO_PI = 2.0 * Math.PI; +IGeometry.THREE_PI = 3.0 * Math.PI; + +module.exports = IGeometry; + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function IMath() {} + +/** + * This method returns the sign of the input value. + */ +IMath.sign = function (value) { + if (value > 0) { + return 1; + } else if (value < 0) { + return -1; + } else { + return 0; + } +}; + +IMath.floor = function (value) { + return value < 0 ? Math.ceil(value) : Math.floor(value); +}; + +IMath.ceil = function (value) { + return value < 0 ? Math.floor(value) : Math.ceil(value); +}; + +module.exports = IMath; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function Integer() {} + +Integer.MAX_VALUE = 2147483647; +Integer.MIN_VALUE = -2147483648; + +module.exports = Integer; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var nodeFrom = function nodeFrom(value) { + return { value: value, next: null, prev: null }; +}; + +var add = function add(prev, node, next, list) { + if (prev !== null) { + prev.next = node; + } else { + list.head = node; + } + + if (next !== null) { + next.prev = node; + } else { + list.tail = node; + } + + node.prev = prev; + node.next = next; + + list.length++; + + return node; +}; + +var _remove = function _remove(node, list) { + var prev = node.prev, + next = node.next; + + + if (prev !== null) { + prev.next = next; + } else { + list.head = next; + } + + if (next !== null) { + next.prev = prev; + } else { + list.tail = prev; + } + + node.prev = node.next = null; + + list.length--; + + return node; +}; + +var LinkedList = function () { + function LinkedList(vals) { + var _this = this; + + _classCallCheck(this, LinkedList); + + this.length = 0; + this.head = null; + this.tail = null; + + if (vals != null) { + vals.forEach(function (v) { + return _this.push(v); + }); + } + } + + _createClass(LinkedList, [{ + key: "size", + value: function size() { + return this.length; + } + }, { + key: "insertBefore", + value: function insertBefore(val, otherNode) { + return add(otherNode.prev, nodeFrom(val), otherNode, this); + } + }, { + key: "insertAfter", + value: function insertAfter(val, otherNode) { + return add(otherNode, nodeFrom(val), otherNode.next, this); + } + }, { + key: "insertNodeBefore", + value: function insertNodeBefore(newNode, otherNode) { + return add(otherNode.prev, newNode, otherNode, this); + } + }, { + key: "insertNodeAfter", + value: function insertNodeAfter(newNode, otherNode) { + return add(otherNode, newNode, otherNode.next, this); + } + }, { + key: "push", + value: function push(val) { + return add(this.tail, nodeFrom(val), null, this); + } + }, { + key: "unshift", + value: function unshift(val) { + return add(null, nodeFrom(val), this.head, this); + } + }, { + key: "remove", + value: function remove(node) { + return _remove(node, this); + } + }, { + key: "pop", + value: function pop() { + return _remove(this.tail, this).value; + } + }, { + key: "popNode", + value: function popNode() { + return _remove(this.tail, this); + } + }, { + key: "shift", + value: function shift() { + return _remove(this.head, this).value; + } + }, { + key: "shiftNode", + value: function shiftNode() { + return _remove(this.head, this); + } + }, { + key: "get_object_at", + value: function get_object_at(index) { + if (index <= this.length()) { + var i = 1; + var current = this.head; + while (i < index) { + current = current.next; + i++; + } + return current.value; + } + } + }, { + key: "set_object_at", + value: function set_object_at(index, value) { + if (index <= this.length()) { + var i = 1; + var current = this.head; + while (i < index) { + current = current.next; + i++; + } + current.value = value; + } + } + }]); + + return LinkedList; +}(); + +module.exports = LinkedList; + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/* + *This class is the javascript implementation of the Point.java class in jdk + */ +function Point(x, y, p) { + this.x = null; + this.y = null; + if (x == null && y == null && p == null) { + this.x = 0; + this.y = 0; + } else if (typeof x == 'number' && typeof y == 'number' && p == null) { + this.x = x; + this.y = y; + } else if (x.constructor.name == 'Point' && y == null && p == null) { + p = x; + this.x = p.x; + this.y = p.y; + } +} + +Point.prototype.getX = function () { + return this.x; +}; + +Point.prototype.getY = function () { + return this.y; +}; + +Point.prototype.getLocation = function () { + return new Point(this.x, this.y); +}; + +Point.prototype.setLocation = function (x, y, p) { + if (x.constructor.name == 'Point' && y == null && p == null) { + p = x; + this.setLocation(p.x, p.y); + } else if (typeof x == 'number' && typeof y == 'number' && p == null) { + //if both parameters are integer just move (x,y) location + if (parseInt(x) == x && parseInt(y) == y) { + this.move(x, y); + } else { + this.x = Math.floor(x + 0.5); + this.y = Math.floor(y + 0.5); + } + } +}; + +Point.prototype.move = function (x, y) { + this.x = x; + this.y = y; +}; + +Point.prototype.translate = function (dx, dy) { + this.x += dx; + this.y += dy; +}; + +Point.prototype.equals = function (obj) { + if (obj.constructor.name == "Point") { + var pt = obj; + return this.x == pt.x && this.y == pt.y; + } + return this == obj; +}; + +Point.prototype.toString = function () { + return new Point().constructor.name + "[x=" + this.x + ",y=" + this.y + "]"; +}; + +module.exports = Point; + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function RectangleD(x, y, width, height) { + this.x = 0; + this.y = 0; + this.width = 0; + this.height = 0; + + if (x != null && y != null && width != null && height != null) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + } +} + +RectangleD.prototype.getX = function () { + return this.x; +}; + +RectangleD.prototype.setX = function (x) { + this.x = x; +}; + +RectangleD.prototype.getY = function () { + return this.y; +}; + +RectangleD.prototype.setY = function (y) { + this.y = y; +}; + +RectangleD.prototype.getWidth = function () { + return this.width; +}; + +RectangleD.prototype.setWidth = function (width) { + this.width = width; +}; + +RectangleD.prototype.getHeight = function () { + return this.height; +}; + +RectangleD.prototype.setHeight = function (height) { + this.height = height; +}; + +RectangleD.prototype.getRight = function () { + return this.x + this.width; +}; + +RectangleD.prototype.getBottom = function () { + return this.y + this.height; +}; + +RectangleD.prototype.intersects = function (a) { + if (this.getRight() < a.x) { + return false; + } + + if (this.getBottom() < a.y) { + return false; + } + + if (a.getRight() < this.x) { + return false; + } + + if (a.getBottom() < this.y) { + return false; + } + + return true; +}; + +RectangleD.prototype.getCenterX = function () { + return this.x + this.width / 2; +}; + +RectangleD.prototype.getMinX = function () { + return this.getX(); +}; + +RectangleD.prototype.getMaxX = function () { + return this.getX() + this.width; +}; + +RectangleD.prototype.getCenterY = function () { + return this.y + this.height / 2; +}; + +RectangleD.prototype.getMinY = function () { + return this.getY(); +}; + +RectangleD.prototype.getMaxY = function () { + return this.getY() + this.height; +}; + +RectangleD.prototype.getWidthHalf = function () { + return this.width / 2; +}; + +RectangleD.prototype.getHeightHalf = function () { + return this.height / 2; +}; + +module.exports = RectangleD; + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +function UniqueIDGeneretor() {} + +UniqueIDGeneretor.lastID = 0; + +UniqueIDGeneretor.createID = function (obj) { + if (UniqueIDGeneretor.isPrimitive(obj)) { + return obj; + } + if (obj.uniqueID != null) { + return obj.uniqueID; + } + obj.uniqueID = UniqueIDGeneretor.getString(); + UniqueIDGeneretor.lastID++; + return obj.uniqueID; +}; + +UniqueIDGeneretor.getString = function (id) { + if (id == null) id = UniqueIDGeneretor.lastID; + return "Object#" + id + ""; +}; + +UniqueIDGeneretor.isPrimitive = function (arg) { + var type = typeof arg === "undefined" ? "undefined" : _typeof(arg); + return arg == null || type != "object" && type != "function"; +}; + +module.exports = UniqueIDGeneretor; + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __nested_webpack_require_64072__) { + +"use strict"; + + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +var LayoutConstants = __nested_webpack_require_64072__(0); +var LGraphManager = __nested_webpack_require_64072__(6); +var LNode = __nested_webpack_require_64072__(3); +var LEdge = __nested_webpack_require_64072__(1); +var LGraph = __nested_webpack_require_64072__(5); +var PointD = __nested_webpack_require_64072__(4); +var Transform = __nested_webpack_require_64072__(17); +var Emitter = __nested_webpack_require_64072__(27); + +function Layout(isRemoteUse) { + Emitter.call(this); + + //Layout Quality: 0:draft, 1:default, 2:proof + this.layoutQuality = LayoutConstants.QUALITY; + //Whether layout should create bendpoints as needed or not + this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED; + //Whether layout should be incremental or not + this.incremental = LayoutConstants.DEFAULT_INCREMENTAL; + //Whether we animate from before to after layout node positions + this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT; + //Whether we animate the layout process or not + this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT; + //Number iterations that should be done between two successive animations + this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD; + /** + * Whether or not leaf nodes (non-compound nodes) are of uniform sizes. When + * they are, both spring and repulsion forces between two leaf nodes can be + * calculated without the expensive clipping point calculations, resulting + * in major speed-up. + */ + this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES; + /** + * This is used for creation of bendpoints by using dummy nodes and edges. + * Maps an LEdge to its dummy bendpoint path. + */ + this.edgeToDummyNodes = new Map(); + this.graphManager = new LGraphManager(this); + this.isLayoutFinished = false; + this.isSubLayout = false; + this.isRemoteUse = false; + + if (isRemoteUse != null) { + this.isRemoteUse = isRemoteUse; + } +} + +Layout.RANDOM_SEED = 1; + +Layout.prototype = Object.create(Emitter.prototype); + +Layout.prototype.getGraphManager = function () { + return this.graphManager; +}; + +Layout.prototype.getAllNodes = function () { + return this.graphManager.getAllNodes(); +}; + +Layout.prototype.getAllEdges = function () { + return this.graphManager.getAllEdges(); +}; + +Layout.prototype.getAllNodesToApplyGravitation = function () { + return this.graphManager.getAllNodesToApplyGravitation(); +}; + +Layout.prototype.newGraphManager = function () { + var gm = new LGraphManager(this); + this.graphManager = gm; + return gm; +}; + +Layout.prototype.newGraph = function (vGraph) { + return new LGraph(null, this.graphManager, vGraph); +}; + +Layout.prototype.newNode = function (vNode) { + return new LNode(this.graphManager, vNode); +}; + +Layout.prototype.newEdge = function (vEdge) { + return new LEdge(null, null, vEdge); +}; + +Layout.prototype.checkLayoutSuccess = function () { + return this.graphManager.getRoot() == null || this.graphManager.getRoot().getNodes().length == 0 || this.graphManager.includesInvalidEdge(); +}; + +Layout.prototype.runLayout = function () { + this.isLayoutFinished = false; + + if (this.tilingPreLayout) { + this.tilingPreLayout(); + } + + this.initParameters(); + var isLayoutSuccessfull; + + if (this.checkLayoutSuccess()) { + isLayoutSuccessfull = false; + } else { + isLayoutSuccessfull = this.layout(); + } + + if (LayoutConstants.ANIMATE === 'during') { + // If this is a 'during' layout animation. Layout is not finished yet. + // We need to perform these in index.js when layout is really finished. + return false; + } + + if (isLayoutSuccessfull) { + if (!this.isSubLayout) { + this.doPostLayout(); + } + } + + if (this.tilingPostLayout) { + this.tilingPostLayout(); + } + + this.isLayoutFinished = true; + + return isLayoutSuccessfull; +}; + +/** + * This method performs the operations required after layout. + */ +Layout.prototype.doPostLayout = function () { + //assert !isSubLayout : "Should not be called on sub-layout!"; + // Propagate geometric changes to v-level objects + if (!this.incremental) { + this.transform(); + } + this.update(); +}; + +/** + * This method updates the geometry of the target graph according to + * calculated layout. + */ +Layout.prototype.update2 = function () { + // update bend points + if (this.createBendsAsNeeded) { + this.createBendpointsFromDummyNodes(); + + // reset all edges, since the topology has changed + this.graphManager.resetAllEdges(); + } + + // perform edge, node and root updates if layout is not called + // remotely + if (!this.isRemoteUse) { + // update all edges + var edge; + var allEdges = this.graphManager.getAllEdges(); + for (var i = 0; i < allEdges.length; i++) { + edge = allEdges[i]; + // this.update(edge); + } + + // recursively update nodes + var node; + var nodes = this.graphManager.getRoot().getNodes(); + for (var i = 0; i < nodes.length; i++) { + node = nodes[i]; + // this.update(node); + } + + // update root graph + this.update(this.graphManager.getRoot()); + } +}; + +Layout.prototype.update = function (obj) { + if (obj == null) { + this.update2(); + } else if (obj instanceof LNode) { + var node = obj; + if (node.getChild() != null) { + // since node is compound, recursively update child nodes + var nodes = node.getChild().getNodes(); + for (var i = 0; i < nodes.length; i++) { + update(nodes[i]); + } + } + + // if the l-level node is associated with a v-level graph object, + // then it is assumed that the v-level node implements the + // interface Updatable. + if (node.vGraphObject != null) { + // cast to Updatable without any type check + var vNode = node.vGraphObject; + + // call the update method of the interface + vNode.update(node); + } + } else if (obj instanceof LEdge) { + var edge = obj; + // if the l-level edge is associated with a v-level graph object, + // then it is assumed that the v-level edge implements the + // interface Updatable. + + if (edge.vGraphObject != null) { + // cast to Updatable without any type check + var vEdge = edge.vGraphObject; + + // call the update method of the interface + vEdge.update(edge); + } + } else if (obj instanceof LGraph) { + var graph = obj; + // if the l-level graph is associated with a v-level graph object, + // then it is assumed that the v-level object implements the + // interface Updatable. + + if (graph.vGraphObject != null) { + // cast to Updatable without any type check + var vGraph = graph.vGraphObject; + + // call the update method of the interface + vGraph.update(graph); + } + } +}; + +/** + * This method is used to set all layout parameters to default values + * determined at compile time. + */ +Layout.prototype.initParameters = function () { + if (!this.isSubLayout) { + this.layoutQuality = LayoutConstants.QUALITY; + this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT; + this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD; + this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT; + this.incremental = LayoutConstants.DEFAULT_INCREMENTAL; + this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED; + this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES; + } + + if (this.animationDuringLayout) { + this.animationOnLayout = false; + } +}; + +Layout.prototype.transform = function (newLeftTop) { + if (newLeftTop == undefined) { + this.transform(new PointD(0, 0)); + } else { + // create a transformation object (from Eclipse to layout). When an + // inverse transform is applied, we get upper-left coordinate of the + // drawing or the root graph at given input coordinate (some margins + // already included in calculation of left-top). + + var trans = new Transform(); + var leftTop = this.graphManager.getRoot().updateLeftTop(); + + if (leftTop != null) { + trans.setWorldOrgX(newLeftTop.x); + trans.setWorldOrgY(newLeftTop.y); + + trans.setDeviceOrgX(leftTop.x); + trans.setDeviceOrgY(leftTop.y); + + var nodes = this.getAllNodes(); + var node; + + for (var i = 0; i < nodes.length; i++) { + node = nodes[i]; + node.transform(trans); + } + } + } +}; + +Layout.prototype.positionNodesRandomly = function (graph) { + + if (graph == undefined) { + //assert !this.incremental; + this.positionNodesRandomly(this.getGraphManager().getRoot()); + this.getGraphManager().getRoot().updateBounds(true); + } else { + var lNode; + var childGraph; + + var nodes = graph.getNodes(); + for (var i = 0; i < nodes.length; i++) { + lNode = nodes[i]; + childGraph = lNode.getChild(); + + if (childGraph == null) { + lNode.scatter(); + } else if (childGraph.getNodes().length == 0) { + lNode.scatter(); + } else { + this.positionNodesRandomly(childGraph); + lNode.updateBounds(); + } + } + } +}; + +/** + * This method returns a list of trees where each tree is represented as a + * list of l-nodes. The method returns a list of size 0 when: + * - The graph is not flat or + * - One of the component(s) of the graph is not a tree. + */ +Layout.prototype.getFlatForest = function () { + var flatForest = []; + var isForest = true; + + // Quick reference for all nodes in the graph manager associated with + // this layout. The list should not be changed. + var allNodes = this.graphManager.getRoot().getNodes(); + + // First be sure that the graph is flat + var isFlat = true; + + for (var i = 0; i < allNodes.length; i++) { + if (allNodes[i].getChild() != null) { + isFlat = false; + } + } + + // Return empty forest if the graph is not flat. + if (!isFlat) { + return flatForest; + } + + // Run BFS for each component of the graph. + + var visited = new Set(); + var toBeVisited = []; + var parents = new Map(); + var unProcessedNodes = []; + + unProcessedNodes = unProcessedNodes.concat(allNodes); + + // Each iteration of this loop finds a component of the graph and + // decides whether it is a tree or not. If it is a tree, adds it to the + // forest and continued with the next component. + + while (unProcessedNodes.length > 0 && isForest) { + toBeVisited.push(unProcessedNodes[0]); + + // Start the BFS. Each iteration of this loop visits a node in a + // BFS manner. + while (toBeVisited.length > 0 && isForest) { + //pool operation + var currentNode = toBeVisited[0]; + toBeVisited.splice(0, 1); + visited.add(currentNode); + + // Traverse all neighbors of this node + var neighborEdges = currentNode.getEdges(); + + for (var i = 0; i < neighborEdges.length; i++) { + var currentNeighbor = neighborEdges[i].getOtherEnd(currentNode); + + // If BFS is not growing from this neighbor. + if (parents.get(currentNode) != currentNeighbor) { + // We haven't previously visited this neighbor. + if (!visited.has(currentNeighbor)) { + toBeVisited.push(currentNeighbor); + parents.set(currentNeighbor, currentNode); + } + // Since we have previously visited this neighbor and + // this neighbor is not parent of currentNode, given + // graph contains a component that is not tree, hence + // it is not a forest. + else { + isForest = false; + break; + } + } + } + } + + // The graph contains a component that is not a tree. Empty + // previously found trees. The method will end. + if (!isForest) { + flatForest = []; + } + // Save currently visited nodes as a tree in our forest. Reset + // visited and parents lists. Continue with the next component of + // the graph, if any. + else { + var temp = [].concat(_toConsumableArray(visited)); + flatForest.push(temp); + //flatForest = flatForest.concat(temp); + //unProcessedNodes.removeAll(visited); + for (var i = 0; i < temp.length; i++) { + var value = temp[i]; + var index = unProcessedNodes.indexOf(value); + if (index > -1) { + unProcessedNodes.splice(index, 1); + } + } + visited = new Set(); + parents = new Map(); + } + } + + return flatForest; +}; + +/** + * This method creates dummy nodes (an l-level node with minimal dimensions) + * for the given edge (one per bendpoint). The existing l-level structure + * is updated accordingly. + */ +Layout.prototype.createDummyNodesForBendpoints = function (edge) { + var dummyNodes = []; + var prev = edge.source; + + var graph = this.graphManager.calcLowestCommonAncestor(edge.source, edge.target); + + for (var i = 0; i < edge.bendpoints.length; i++) { + // create new dummy node + var dummyNode = this.newNode(null); + dummyNode.setRect(new Point(0, 0), new Dimension(1, 1)); + + graph.add(dummyNode); + + // create new dummy edge between prev and dummy node + var dummyEdge = this.newEdge(null); + this.graphManager.add(dummyEdge, prev, dummyNode); + + dummyNodes.add(dummyNode); + prev = dummyNode; + } + + var dummyEdge = this.newEdge(null); + this.graphManager.add(dummyEdge, prev, edge.target); + + this.edgeToDummyNodes.set(edge, dummyNodes); + + // remove real edge from graph manager if it is inter-graph + if (edge.isInterGraph()) { + this.graphManager.remove(edge); + } + // else, remove the edge from the current graph + else { + graph.remove(edge); + } + + return dummyNodes; +}; + +/** + * This method creates bendpoints for edges from the dummy nodes + * at l-level. + */ +Layout.prototype.createBendpointsFromDummyNodes = function () { + var edges = []; + edges = edges.concat(this.graphManager.getAllEdges()); + edges = [].concat(_toConsumableArray(this.edgeToDummyNodes.keys())).concat(edges); + + for (var k = 0; k < edges.length; k++) { + var lEdge = edges[k]; + + if (lEdge.bendpoints.length > 0) { + var path = this.edgeToDummyNodes.get(lEdge); + + for (var i = 0; i < path.length; i++) { + var dummyNode = path[i]; + var p = new PointD(dummyNode.getCenterX(), dummyNode.getCenterY()); + + // update bendpoint's location according to dummy node + var ebp = lEdge.bendpoints.get(i); + ebp.x = p.x; + ebp.y = p.y; + + // remove the dummy node, dummy edges incident with this + // dummy node is also removed (within the remove method) + dummyNode.getOwner().remove(dummyNode); + } + + // add the real edge to graph + this.graphManager.add(lEdge, lEdge.source, lEdge.target); + } + } +}; + +Layout.transform = function (sliderValue, defaultValue, minDiv, maxMul) { + if (minDiv != undefined && maxMul != undefined) { + var value = defaultValue; + + if (sliderValue <= 50) { + var minValue = defaultValue / minDiv; + value -= (defaultValue - minValue) / 50 * (50 - sliderValue); + } else { + var maxValue = defaultValue * maxMul; + value += (maxValue - defaultValue) / 50 * (sliderValue - 50); + } + + return value; + } else { + var a, b; + + if (sliderValue <= 50) { + a = 9.0 * defaultValue / 500.0; + b = defaultValue / 10.0; + } else { + a = 9.0 * defaultValue / 50.0; + b = -8 * defaultValue; + } + + return a * sliderValue + b; + } +}; + +/** + * This method finds and returns the center of the given nodes, assuming + * that the given nodes form a tree in themselves. + */ +Layout.findCenterOfTree = function (nodes) { + var list = []; + list = list.concat(nodes); + + var removedNodes = []; + var remainingDegrees = new Map(); + var foundCenter = false; + var centerNode = null; + + if (list.length == 1 || list.length == 2) { + foundCenter = true; + centerNode = list[0]; + } + + for (var i = 0; i < list.length; i++) { + var node = list[i]; + var degree = node.getNeighborsList().size; + remainingDegrees.set(node, node.getNeighborsList().size); + + if (degree == 1) { + removedNodes.push(node); + } + } + + var tempList = []; + tempList = tempList.concat(removedNodes); + + while (!foundCenter) { + var tempList2 = []; + tempList2 = tempList2.concat(tempList); + tempList = []; + + for (var i = 0; i < list.length; i++) { + var node = list[i]; + + var index = list.indexOf(node); + if (index >= 0) { + list.splice(index, 1); + } + + var neighbours = node.getNeighborsList(); + + neighbours.forEach(function (neighbour) { + if (removedNodes.indexOf(neighbour) < 0) { + var otherDegree = remainingDegrees.get(neighbour); + var newDegree = otherDegree - 1; + + if (newDegree == 1) { + tempList.push(neighbour); + } + + remainingDegrees.set(neighbour, newDegree); + } + }); + } + + removedNodes = removedNodes.concat(tempList); + + if (list.length == 1 || list.length == 2) { + foundCenter = true; + centerNode = list[0]; + } + } + + return centerNode; +}; + +/** + * During the coarsening process, this layout may be referenced by two graph managers + * this setter function grants access to change the currently being used graph manager + */ +Layout.prototype.setGraphManager = function (gm) { + this.graphManager = gm; +}; + +module.exports = Layout; + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function RandomSeed() {} +// adapted from: https://stackoverflow.com/a/19303725 +RandomSeed.seed = 1; +RandomSeed.x = 0; + +RandomSeed.nextDouble = function () { + RandomSeed.x = Math.sin(RandomSeed.seed++) * 10000; + return RandomSeed.x - Math.floor(RandomSeed.x); +}; + +module.exports = RandomSeed; + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __nested_webpack_require_81860__) { + +"use strict"; + + +var PointD = __nested_webpack_require_81860__(4); + +function Transform(x, y) { + this.lworldOrgX = 0.0; + this.lworldOrgY = 0.0; + this.ldeviceOrgX = 0.0; + this.ldeviceOrgY = 0.0; + this.lworldExtX = 1.0; + this.lworldExtY = 1.0; + this.ldeviceExtX = 1.0; + this.ldeviceExtY = 1.0; +} + +Transform.prototype.getWorldOrgX = function () { + return this.lworldOrgX; +}; + +Transform.prototype.setWorldOrgX = function (wox) { + this.lworldOrgX = wox; +}; + +Transform.prototype.getWorldOrgY = function () { + return this.lworldOrgY; +}; + +Transform.prototype.setWorldOrgY = function (woy) { + this.lworldOrgY = woy; +}; + +Transform.prototype.getWorldExtX = function () { + return this.lworldExtX; +}; + +Transform.prototype.setWorldExtX = function (wex) { + this.lworldExtX = wex; +}; + +Transform.prototype.getWorldExtY = function () { + return this.lworldExtY; +}; + +Transform.prototype.setWorldExtY = function (wey) { + this.lworldExtY = wey; +}; + +/* Device related */ + +Transform.prototype.getDeviceOrgX = function () { + return this.ldeviceOrgX; +}; + +Transform.prototype.setDeviceOrgX = function (dox) { + this.ldeviceOrgX = dox; +}; + +Transform.prototype.getDeviceOrgY = function () { + return this.ldeviceOrgY; +}; + +Transform.prototype.setDeviceOrgY = function (doy) { + this.ldeviceOrgY = doy; +}; + +Transform.prototype.getDeviceExtX = function () { + return this.ldeviceExtX; +}; + +Transform.prototype.setDeviceExtX = function (dex) { + this.ldeviceExtX = dex; +}; + +Transform.prototype.getDeviceExtY = function () { + return this.ldeviceExtY; +}; + +Transform.prototype.setDeviceExtY = function (dey) { + this.ldeviceExtY = dey; +}; + +Transform.prototype.transformX = function (x) { + var xDevice = 0.0; + var worldExtX = this.lworldExtX; + if (worldExtX != 0.0) { + xDevice = this.ldeviceOrgX + (x - this.lworldOrgX) * this.ldeviceExtX / worldExtX; + } + + return xDevice; +}; + +Transform.prototype.transformY = function (y) { + var yDevice = 0.0; + var worldExtY = this.lworldExtY; + if (worldExtY != 0.0) { + yDevice = this.ldeviceOrgY + (y - this.lworldOrgY) * this.ldeviceExtY / worldExtY; + } + + return yDevice; +}; + +Transform.prototype.inverseTransformX = function (x) { + var xWorld = 0.0; + var deviceExtX = this.ldeviceExtX; + if (deviceExtX != 0.0) { + xWorld = this.lworldOrgX + (x - this.ldeviceOrgX) * this.lworldExtX / deviceExtX; + } + + return xWorld; +}; + +Transform.prototype.inverseTransformY = function (y) { + var yWorld = 0.0; + var deviceExtY = this.ldeviceExtY; + if (deviceExtY != 0.0) { + yWorld = this.lworldOrgY + (y - this.ldeviceOrgY) * this.lworldExtY / deviceExtY; + } + return yWorld; +}; + +Transform.prototype.inverseTransformPoint = function (inPoint) { + var outPoint = new PointD(this.inverseTransformX(inPoint.x), this.inverseTransformY(inPoint.y)); + return outPoint; +}; + +module.exports = Transform; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __nested_webpack_require_84747__) { + +"use strict"; + + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +var Layout = __nested_webpack_require_84747__(15); +var FDLayoutConstants = __nested_webpack_require_84747__(7); +var LayoutConstants = __nested_webpack_require_84747__(0); +var IGeometry = __nested_webpack_require_84747__(8); +var IMath = __nested_webpack_require_84747__(9); + +function FDLayout() { + Layout.call(this); + + this.useSmartIdealEdgeLengthCalculation = FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION; + this.idealEdgeLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH; + this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH; + this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH; + this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH; + this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH; + this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR; + this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR; + this.displacementThresholdPerNode = 3.0 * FDLayoutConstants.DEFAULT_EDGE_LENGTH / 100; + this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL; + this.initialCoolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL; + this.totalDisplacement = 0.0; + this.oldTotalDisplacement = 0.0; + this.maxIterations = FDLayoutConstants.MAX_ITERATIONS; +} + +FDLayout.prototype = Object.create(Layout.prototype); + +for (var prop in Layout) { + FDLayout[prop] = Layout[prop]; +} + +FDLayout.prototype.initParameters = function () { + Layout.prototype.initParameters.call(this, arguments); + + this.totalIterations = 0; + this.notAnimatedIterations = 0; + + this.useFRGridVariant = FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION; + + this.grid = []; +}; + +FDLayout.prototype.calcIdealEdgeLengths = function () { + var edge; + var lcaDepth; + var source; + var target; + var sizeOfSourceInLca; + var sizeOfTargetInLca; + + var allEdges = this.getGraphManager().getAllEdges(); + for (var i = 0; i < allEdges.length; i++) { + edge = allEdges[i]; + + edge.idealLength = this.idealEdgeLength; + + if (edge.isInterGraph) { + source = edge.getSource(); + target = edge.getTarget(); + + sizeOfSourceInLca = edge.getSourceInLca().getEstimatedSize(); + sizeOfTargetInLca = edge.getTargetInLca().getEstimatedSize(); + + if (this.useSmartIdealEdgeLengthCalculation) { + edge.idealLength += sizeOfSourceInLca + sizeOfTargetInLca - 2 * LayoutConstants.SIMPLE_NODE_SIZE; + } + + lcaDepth = edge.getLca().getInclusionTreeDepth(); + + edge.idealLength += FDLayoutConstants.DEFAULT_EDGE_LENGTH * FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR * (source.getInclusionTreeDepth() + target.getInclusionTreeDepth() - 2 * lcaDepth); + } + } +}; + +FDLayout.prototype.initSpringEmbedder = function () { + + var s = this.getAllNodes().length; + if (this.incremental) { + if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) { + this.coolingFactor = Math.max(this.coolingFactor * FDLayoutConstants.COOLING_ADAPTATION_FACTOR, this.coolingFactor - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * this.coolingFactor * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR)); + } + this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL; + } else { + if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) { + this.coolingFactor = Math.max(FDLayoutConstants.COOLING_ADAPTATION_FACTOR, 1.0 - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR)); + } else { + this.coolingFactor = 1.0; + } + this.initialCoolingFactor = this.coolingFactor; + this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT; + } + + this.maxIterations = Math.max(this.getAllNodes().length * 5, this.maxIterations); + + this.totalDisplacementThreshold = this.displacementThresholdPerNode * this.getAllNodes().length; + + this.repulsionRange = this.calcRepulsionRange(); +}; + +FDLayout.prototype.calcSpringForces = function () { + var lEdges = this.getAllEdges(); + var edge; + + for (var i = 0; i < lEdges.length; i++) { + edge = lEdges[i]; + + this.calcSpringForce(edge, edge.idealLength); + } +}; + +FDLayout.prototype.calcRepulsionForces = function () { + var gridUpdateAllowed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + var forceToNodeSurroundingUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + var i, j; + var nodeA, nodeB; + var lNodes = this.getAllNodes(); + var processedNodeSet; + + if (this.useFRGridVariant) { + if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed) { + this.updateGrid(); + } + + processedNodeSet = new Set(); + + // calculate repulsion forces between each nodes and its surrounding + for (i = 0; i < lNodes.length; i++) { + nodeA = lNodes[i]; + this.calculateRepulsionForceOfANode(nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate); + processedNodeSet.add(nodeA); + } + } else { + for (i = 0; i < lNodes.length; i++) { + nodeA = lNodes[i]; + + for (j = i + 1; j < lNodes.length; j++) { + nodeB = lNodes[j]; + + // If both nodes are not members of the same graph, skip. + if (nodeA.getOwner() != nodeB.getOwner()) { + continue; + } + + this.calcRepulsionForce(nodeA, nodeB); + } + } + } +}; + +FDLayout.prototype.calcGravitationalForces = function () { + var node; + var lNodes = this.getAllNodesToApplyGravitation(); + + for (var i = 0; i < lNodes.length; i++) { + node = lNodes[i]; + this.calcGravitationalForce(node); + } +}; + +FDLayout.prototype.moveNodes = function () { + var lNodes = this.getAllNodes(); + var node; + + for (var i = 0; i < lNodes.length; i++) { + node = lNodes[i]; + node.move(); + } +}; + +FDLayout.prototype.calcSpringForce = function (edge, idealLength) { + var sourceNode = edge.getSource(); + var targetNode = edge.getTarget(); + + var length; + var springForce; + var springForceX; + var springForceY; + + // Update edge length + if (this.uniformLeafNodeSizes && sourceNode.getChild() == null && targetNode.getChild() == null) { + edge.updateLengthSimple(); + } else { + edge.updateLength(); + + if (edge.isOverlapingSourceAndTarget) { + return; + } + } + + length = edge.getLength(); + + if (length == 0) return; + + // Calculate spring forces + springForce = this.springConstant * (length - idealLength); + + // Project force onto x and y axes + springForceX = springForce * (edge.lengthX / length); + springForceY = springForce * (edge.lengthY / length); + + // Apply forces on the end nodes + sourceNode.springForceX += springForceX; + sourceNode.springForceY += springForceY; + targetNode.springForceX -= springForceX; + targetNode.springForceY -= springForceY; +}; + +FDLayout.prototype.calcRepulsionForce = function (nodeA, nodeB) { + var rectA = nodeA.getRect(); + var rectB = nodeB.getRect(); + var overlapAmount = new Array(2); + var clipPoints = new Array(4); + var distanceX; + var distanceY; + var distanceSquared; + var distance; + var repulsionForce; + var repulsionForceX; + var repulsionForceY; + + if (rectA.intersects(rectB)) // two nodes overlap + { + // calculate separation amount in x and y directions + IGeometry.calcSeparationAmount(rectA, rectB, overlapAmount, FDLayoutConstants.DEFAULT_EDGE_LENGTH / 2.0); + + repulsionForceX = 2 * overlapAmount[0]; + repulsionForceY = 2 * overlapAmount[1]; + + var childrenConstant = nodeA.noOfChildren * nodeB.noOfChildren / (nodeA.noOfChildren + nodeB.noOfChildren); + + // Apply forces on the two nodes + nodeA.repulsionForceX -= childrenConstant * repulsionForceX; + nodeA.repulsionForceY -= childrenConstant * repulsionForceY; + nodeB.repulsionForceX += childrenConstant * repulsionForceX; + nodeB.repulsionForceY += childrenConstant * repulsionForceY; + } else // no overlap + { + // calculate distance + + if (this.uniformLeafNodeSizes && nodeA.getChild() == null && nodeB.getChild() == null) // simply base repulsion on distance of node centers + { + distanceX = rectB.getCenterX() - rectA.getCenterX(); + distanceY = rectB.getCenterY() - rectA.getCenterY(); + } else // use clipping points + { + IGeometry.getIntersection(rectA, rectB, clipPoints); + + distanceX = clipPoints[2] - clipPoints[0]; + distanceY = clipPoints[3] - clipPoints[1]; + } + + // No repulsion range. FR grid variant should take care of this. + if (Math.abs(distanceX) < FDLayoutConstants.MIN_REPULSION_DIST) { + distanceX = IMath.sign(distanceX) * FDLayoutConstants.MIN_REPULSION_DIST; + } + + if (Math.abs(distanceY) < FDLayoutConstants.MIN_REPULSION_DIST) { + distanceY = IMath.sign(distanceY) * FDLayoutConstants.MIN_REPULSION_DIST; + } + + distanceSquared = distanceX * distanceX + distanceY * distanceY; + distance = Math.sqrt(distanceSquared); + + repulsionForce = this.repulsionConstant * nodeA.noOfChildren * nodeB.noOfChildren / distanceSquared; + + // Project force onto x and y axes + repulsionForceX = repulsionForce * distanceX / distance; + repulsionForceY = repulsionForce * distanceY / distance; + + // Apply forces on the two nodes + nodeA.repulsionForceX -= repulsionForceX; + nodeA.repulsionForceY -= repulsionForceY; + nodeB.repulsionForceX += repulsionForceX; + nodeB.repulsionForceY += repulsionForceY; + } +}; + +FDLayout.prototype.calcGravitationalForce = function (node) { + var ownerGraph; + var ownerCenterX; + var ownerCenterY; + var distanceX; + var distanceY; + var absDistanceX; + var absDistanceY; + var estimatedSize; + ownerGraph = node.getOwner(); + + ownerCenterX = (ownerGraph.getRight() + ownerGraph.getLeft()) / 2; + ownerCenterY = (ownerGraph.getTop() + ownerGraph.getBottom()) / 2; + distanceX = node.getCenterX() - ownerCenterX; + distanceY = node.getCenterY() - ownerCenterY; + absDistanceX = Math.abs(distanceX) + node.getWidth() / 2; + absDistanceY = Math.abs(distanceY) + node.getHeight() / 2; + + if (node.getOwner() == this.graphManager.getRoot()) // in the root graph + { + estimatedSize = ownerGraph.getEstimatedSize() * this.gravityRangeFactor; + + if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) { + node.gravitationForceX = -this.gravityConstant * distanceX; + node.gravitationForceY = -this.gravityConstant * distanceY; + } + } else // inside a compound + { + estimatedSize = ownerGraph.getEstimatedSize() * this.compoundGravityRangeFactor; + + if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) { + node.gravitationForceX = -this.gravityConstant * distanceX * this.compoundGravityConstant; + node.gravitationForceY = -this.gravityConstant * distanceY * this.compoundGravityConstant; + } + } +}; + +FDLayout.prototype.isConverged = function () { + var converged; + var oscilating = false; + + if (this.totalIterations > this.maxIterations / 3) { + oscilating = Math.abs(this.totalDisplacement - this.oldTotalDisplacement) < 2; + } + + converged = this.totalDisplacement < this.totalDisplacementThreshold; + + this.oldTotalDisplacement = this.totalDisplacement; + + return converged || oscilating; +}; + +FDLayout.prototype.animate = function () { + if (this.animationDuringLayout && !this.isSubLayout) { + if (this.notAnimatedIterations == this.animationPeriod) { + this.update(); + this.notAnimatedIterations = 0; + } else { + this.notAnimatedIterations++; + } + } +}; + +//This method calculates the number of children (weight) for all nodes +FDLayout.prototype.calcNoOfChildrenForAllNodes = function () { + var node; + var allNodes = this.graphManager.getAllNodes(); + + for (var i = 0; i < allNodes.length; i++) { + node = allNodes[i]; + node.noOfChildren = node.getNoOfChildren(); + } +}; + +// ----------------------------------------------------------------------------- +// Section: FR-Grid Variant Repulsion Force Calculation +// ----------------------------------------------------------------------------- + +FDLayout.prototype.calcGrid = function (graph) { + + var sizeX = 0; + var sizeY = 0; + + sizeX = parseInt(Math.ceil((graph.getRight() - graph.getLeft()) / this.repulsionRange)); + sizeY = parseInt(Math.ceil((graph.getBottom() - graph.getTop()) / this.repulsionRange)); + + var grid = new Array(sizeX); + + for (var i = 0; i < sizeX; i++) { + grid[i] = new Array(sizeY); + } + + for (var i = 0; i < sizeX; i++) { + for (var j = 0; j < sizeY; j++) { + grid[i][j] = new Array(); + } + } + + return grid; +}; + +FDLayout.prototype.addNodeToGrid = function (v, left, top) { + + var startX = 0; + var finishX = 0; + var startY = 0; + var finishY = 0; + + startX = parseInt(Math.floor((v.getRect().x - left) / this.repulsionRange)); + finishX = parseInt(Math.floor((v.getRect().width + v.getRect().x - left) / this.repulsionRange)); + startY = parseInt(Math.floor((v.getRect().y - top) / this.repulsionRange)); + finishY = parseInt(Math.floor((v.getRect().height + v.getRect().y - top) / this.repulsionRange)); + + for (var i = startX; i <= finishX; i++) { + for (var j = startY; j <= finishY; j++) { + this.grid[i][j].push(v); + v.setGridCoordinates(startX, finishX, startY, finishY); + } + } +}; + +FDLayout.prototype.updateGrid = function () { + var i; + var nodeA; + var lNodes = this.getAllNodes(); + + this.grid = this.calcGrid(this.graphManager.getRoot()); + + // put all nodes to proper grid cells + for (i = 0; i < lNodes.length; i++) { + nodeA = lNodes[i]; + this.addNodeToGrid(nodeA, this.graphManager.getRoot().getLeft(), this.graphManager.getRoot().getTop()); + } +}; + +FDLayout.prototype.calculateRepulsionForceOfANode = function (nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate) { + + if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed || forceToNodeSurroundingUpdate) { + var surrounding = new Set(); + nodeA.surrounding = new Array(); + var nodeB; + var grid = this.grid; + + for (var i = nodeA.startX - 1; i < nodeA.finishX + 2; i++) { + for (var j = nodeA.startY - 1; j < nodeA.finishY + 2; j++) { + if (!(i < 0 || j < 0 || i >= grid.length || j >= grid[0].length)) { + for (var k = 0; k < grid[i][j].length; k++) { + nodeB = grid[i][j][k]; + + // If both nodes are not members of the same graph, + // or both nodes are the same, skip. + if (nodeA.getOwner() != nodeB.getOwner() || nodeA == nodeB) { + continue; + } + + // check if the repulsion force between + // nodeA and nodeB has already been calculated + if (!processedNodeSet.has(nodeB) && !surrounding.has(nodeB)) { + var distanceX = Math.abs(nodeA.getCenterX() - nodeB.getCenterX()) - (nodeA.getWidth() / 2 + nodeB.getWidth() / 2); + var distanceY = Math.abs(nodeA.getCenterY() - nodeB.getCenterY()) - (nodeA.getHeight() / 2 + nodeB.getHeight() / 2); + + // if the distance between nodeA and nodeB + // is less then calculation range + if (distanceX <= this.repulsionRange && distanceY <= this.repulsionRange) { + //then add nodeB to surrounding of nodeA + surrounding.add(nodeB); + } + } + } + } + } + } + + nodeA.surrounding = [].concat(_toConsumableArray(surrounding)); + } + for (i = 0; i < nodeA.surrounding.length; i++) { + this.calcRepulsionForce(nodeA, nodeA.surrounding[i]); + } +}; + +FDLayout.prototype.calcRepulsionRange = function () { + return 0.0; +}; + +module.exports = FDLayout; + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __nested_webpack_require_100902__) { + +"use strict"; + + +var LEdge = __nested_webpack_require_100902__(1); +var FDLayoutConstants = __nested_webpack_require_100902__(7); + +function FDLayoutEdge(source, target, vEdge) { + LEdge.call(this, source, target, vEdge); + this.idealLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH; +} + +FDLayoutEdge.prototype = Object.create(LEdge.prototype); + +for (var prop in LEdge) { + FDLayoutEdge[prop] = LEdge[prop]; +} + +module.exports = FDLayoutEdge; + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __nested_webpack_require_101387__) { + +"use strict"; + + +var LNode = __nested_webpack_require_101387__(3); + +function FDLayoutNode(gm, loc, size, vNode) { + // alternative constructor is handled inside LNode + LNode.call(this, gm, loc, size, vNode); + //Spring, repulsion and gravitational forces acting on this node + this.springForceX = 0; + this.springForceY = 0; + this.repulsionForceX = 0; + this.repulsionForceY = 0; + this.gravitationForceX = 0; + this.gravitationForceY = 0; + //Amount by which this node is to be moved in this iteration + this.displacementX = 0; + this.displacementY = 0; + + //Start and finish grid coordinates that this node is fallen into + this.startX = 0; + this.finishX = 0; + this.startY = 0; + this.finishY = 0; + + //Geometric neighbors of this node + this.surrounding = []; +} + +FDLayoutNode.prototype = Object.create(LNode.prototype); + +for (var prop in LNode) { + FDLayoutNode[prop] = LNode[prop]; +} + +FDLayoutNode.prototype.setGridCoordinates = function (_startX, _finishX, _startY, _finishY) { + this.startX = _startX; + this.finishX = _finishX; + this.startY = _startY; + this.finishY = _finishY; +}; + +module.exports = FDLayoutNode; + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function DimensionD(width, height) { + this.width = 0; + this.height = 0; + if (width !== null && height !== null) { + this.height = height; + this.width = width; + } +} + +DimensionD.prototype.getWidth = function () { + return this.width; +}; + +DimensionD.prototype.setWidth = function (width) { + this.width = width; +}; + +DimensionD.prototype.getHeight = function () { + return this.height; +}; + +DimensionD.prototype.setHeight = function (height) { + this.height = height; +}; + +module.exports = DimensionD; + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __nested_webpack_require_103173__) { + +"use strict"; + + +var UniqueIDGeneretor = __nested_webpack_require_103173__(14); + +function HashMap() { + this.map = {}; + this.keys = []; +} + +HashMap.prototype.put = function (key, value) { + var theId = UniqueIDGeneretor.createID(key); + if (!this.contains(theId)) { + this.map[theId] = value; + this.keys.push(key); + } +}; + +HashMap.prototype.contains = function (key) { + var theId = UniqueIDGeneretor.createID(key); + return this.map[key] != null; +}; + +HashMap.prototype.get = function (key) { + var theId = UniqueIDGeneretor.createID(key); + return this.map[theId]; +}; + +HashMap.prototype.keySet = function () { + return this.keys; +}; + +module.exports = HashMap; + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __nested_webpack_require_103901__) { + +"use strict"; + + +var UniqueIDGeneretor = __nested_webpack_require_103901__(14); + +function HashSet() { + this.set = {}; +} +; + +HashSet.prototype.add = function (obj) { + var theId = UniqueIDGeneretor.createID(obj); + if (!this.contains(theId)) this.set[theId] = obj; +}; + +HashSet.prototype.remove = function (obj) { + delete this.set[UniqueIDGeneretor.createID(obj)]; +}; + +HashSet.prototype.clear = function () { + this.set = {}; +}; + +HashSet.prototype.contains = function (obj) { + return this.set[UniqueIDGeneretor.createID(obj)] == obj; +}; + +HashSet.prototype.isEmpty = function () { + return this.size() === 0; +}; + +HashSet.prototype.size = function () { + return Object.keys(this.set).length; +}; + +//concats this.set to the given list +HashSet.prototype.addAllTo = function (list) { + var keys = Object.keys(this.set); + var length = keys.length; + for (var i = 0; i < length; i++) { + list.push(this.set[keys[i]]); + } +}; + +HashSet.prototype.size = function () { + return Object.keys(this.set).length; +}; + +HashSet.prototype.addAll = function (list) { + var s = list.length; + for (var i = 0; i < s; i++) { + var v = list[i]; + this.add(v); + } +}; + +module.exports = HashSet; + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __nested_webpack_require_105138__) { + +"use strict"; + + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * A classic Quicksort algorithm with Hoare's partition + * - Works also on LinkedList objects + * + * Copyright: i-Vis Research Group, Bilkent University, 2007 - present + */ + +var LinkedList = __nested_webpack_require_105138__(11); + +var Quicksort = function () { + function Quicksort(A, compareFunction) { + _classCallCheck(this, Quicksort); + + if (compareFunction !== null || compareFunction !== undefined) this.compareFunction = this._defaultCompareFunction; + + var length = void 0; + if (A instanceof LinkedList) length = A.size();else length = A.length; + + this._quicksort(A, 0, length - 1); + } + + _createClass(Quicksort, [{ + key: '_quicksort', + value: function _quicksort(A, p, r) { + if (p < r) { + var q = this._partition(A, p, r); + this._quicksort(A, p, q); + this._quicksort(A, q + 1, r); + } + } + }, { + key: '_partition', + value: function _partition(A, p, r) { + var x = this._get(A, p); + var i = p; + var j = r; + while (true) { + while (this.compareFunction(x, this._get(A, j))) { + j--; + }while (this.compareFunction(this._get(A, i), x)) { + i++; + }if (i < j) { + this._swap(A, i, j); + i++; + j--; + } else return j; + } + } + }, { + key: '_get', + value: function _get(object, index) { + if (object instanceof LinkedList) return object.get_object_at(index);else return object[index]; + } + }, { + key: '_set', + value: function _set(object, index, value) { + if (object instanceof LinkedList) object.set_object_at(index, value);else object[index] = value; + } + }, { + key: '_swap', + value: function _swap(A, i, j) { + var temp = this._get(A, i); + this._set(A, i, this._get(A, j)); + this._set(A, j, temp); + } + }, { + key: '_defaultCompareFunction', + value: function _defaultCompareFunction(a, b) { + return b > a; + } + }]); + + return Quicksort; +}(); + +module.exports = Quicksort; + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * Needleman-Wunsch algorithm is an procedure to compute the optimal global alignment of two string + * sequences by S.B.Needleman and C.D.Wunsch (1970). + * + * Aside from the inputs, you can assign the scores for, + * - Match: The two characters at the current index are same. + * - Mismatch: The two characters at the current index are different. + * - Insertion/Deletion(gaps): The best alignment involves one letter aligning to a gap in the other string. + */ + +var NeedlemanWunsch = function () { + function NeedlemanWunsch(sequence1, sequence2) { + var match_score = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; + var mismatch_penalty = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1; + var gap_penalty = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1; + + _classCallCheck(this, NeedlemanWunsch); + + this.sequence1 = sequence1; + this.sequence2 = sequence2; + this.match_score = match_score; + this.mismatch_penalty = mismatch_penalty; + this.gap_penalty = gap_penalty; + + // Just the remove redundancy + this.iMax = sequence1.length + 1; + this.jMax = sequence2.length + 1; + + // Grid matrix of scores + this.grid = new Array(this.iMax); + for (var i = 0; i < this.iMax; i++) { + this.grid[i] = new Array(this.jMax); + + for (var j = 0; j < this.jMax; j++) { + this.grid[i][j] = 0; + } + } + + // Traceback matrix (2D array, each cell is an array of boolean values for [`Diag`, `Up`, `Left`] positions) + this.tracebackGrid = new Array(this.iMax); + for (var _i = 0; _i < this.iMax; _i++) { + this.tracebackGrid[_i] = new Array(this.jMax); + + for (var _j = 0; _j < this.jMax; _j++) { + this.tracebackGrid[_i][_j] = [null, null, null]; + } + } + + // The aligned sequences (return multiple possibilities) + this.alignments = []; + + // Final alignment score + this.score = -1; + + // Calculate scores and tracebacks + this.computeGrids(); + } + + _createClass(NeedlemanWunsch, [{ + key: "getScore", + value: function getScore() { + return this.score; + } + }, { + key: "getAlignments", + value: function getAlignments() { + return this.alignments; + } + + // Main dynamic programming procedure + + }, { + key: "computeGrids", + value: function computeGrids() { + // Fill in the first row + for (var j = 1; j < this.jMax; j++) { + this.grid[0][j] = this.grid[0][j - 1] + this.gap_penalty; + this.tracebackGrid[0][j] = [false, false, true]; + } + + // Fill in the first column + for (var i = 1; i < this.iMax; i++) { + this.grid[i][0] = this.grid[i - 1][0] + this.gap_penalty; + this.tracebackGrid[i][0] = [false, true, false]; + } + + // Fill the rest of the grid + for (var _i2 = 1; _i2 < this.iMax; _i2++) { + for (var _j2 = 1; _j2 < this.jMax; _j2++) { + // Find the max score(s) among [`Diag`, `Up`, `Left`] + var diag = void 0; + if (this.sequence1[_i2 - 1] === this.sequence2[_j2 - 1]) diag = this.grid[_i2 - 1][_j2 - 1] + this.match_score;else diag = this.grid[_i2 - 1][_j2 - 1] + this.mismatch_penalty; + + var up = this.grid[_i2 - 1][_j2] + this.gap_penalty; + var left = this.grid[_i2][_j2 - 1] + this.gap_penalty; + + // If there exists multiple max values, capture them for multiple paths + var maxOf = [diag, up, left]; + var indices = this.arrayAllMaxIndexes(maxOf); + + // Update Grids + this.grid[_i2][_j2] = maxOf[indices[0]]; + this.tracebackGrid[_i2][_j2] = [indices.includes(0), indices.includes(1), indices.includes(2)]; + } + } + + // Update alignment score + this.score = this.grid[this.iMax - 1][this.jMax - 1]; + } + + // Gets all possible valid sequence combinations + + }, { + key: "alignmentTraceback", + value: function alignmentTraceback() { + var inProcessAlignments = []; + + inProcessAlignments.push({ pos: [this.sequence1.length, this.sequence2.length], + seq1: "", + seq2: "" + }); + + while (inProcessAlignments[0]) { + var current = inProcessAlignments[0]; + var directions = this.tracebackGrid[current.pos[0]][current.pos[1]]; + + if (directions[0]) { + inProcessAlignments.push({ pos: [current.pos[0] - 1, current.pos[1] - 1], + seq1: this.sequence1[current.pos[0] - 1] + current.seq1, + seq2: this.sequence2[current.pos[1] - 1] + current.seq2 + }); + } + if (directions[1]) { + inProcessAlignments.push({ pos: [current.pos[0] - 1, current.pos[1]], + seq1: this.sequence1[current.pos[0] - 1] + current.seq1, + seq2: '-' + current.seq2 + }); + } + if (directions[2]) { + inProcessAlignments.push({ pos: [current.pos[0], current.pos[1] - 1], + seq1: '-' + current.seq1, + seq2: this.sequence2[current.pos[1] - 1] + current.seq2 + }); + } + + if (current.pos[0] === 0 && current.pos[1] === 0) this.alignments.push({ sequence1: current.seq1, + sequence2: current.seq2 + }); + + inProcessAlignments.shift(); + } + + return this.alignments; + } + + // Helper Functions + + }, { + key: "getAllIndexes", + value: function getAllIndexes(arr, val) { + var indexes = [], + i = -1; + while ((i = arr.indexOf(val, i + 1)) !== -1) { + indexes.push(i); + } + return indexes; + } + }, { + key: "arrayAllMaxIndexes", + value: function arrayAllMaxIndexes(array) { + return this.getAllIndexes(array, Math.max.apply(null, array)); + } + }]); + + return NeedlemanWunsch; +}(); + +module.exports = NeedlemanWunsch; + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __nested_webpack_require_115611__) { + +"use strict"; + + +var layoutBase = function layoutBase() { + return; +}; + +layoutBase.FDLayout = __nested_webpack_require_115611__(18); +layoutBase.FDLayoutConstants = __nested_webpack_require_115611__(7); +layoutBase.FDLayoutEdge = __nested_webpack_require_115611__(19); +layoutBase.FDLayoutNode = __nested_webpack_require_115611__(20); +layoutBase.DimensionD = __nested_webpack_require_115611__(21); +layoutBase.HashMap = __nested_webpack_require_115611__(22); +layoutBase.HashSet = __nested_webpack_require_115611__(23); +layoutBase.IGeometry = __nested_webpack_require_115611__(8); +layoutBase.IMath = __nested_webpack_require_115611__(9); +layoutBase.Integer = __nested_webpack_require_115611__(10); +layoutBase.Point = __nested_webpack_require_115611__(12); +layoutBase.PointD = __nested_webpack_require_115611__(4); +layoutBase.RandomSeed = __nested_webpack_require_115611__(16); +layoutBase.RectangleD = __nested_webpack_require_115611__(13); +layoutBase.Transform = __nested_webpack_require_115611__(17); +layoutBase.UniqueIDGeneretor = __nested_webpack_require_115611__(14); +layoutBase.Quicksort = __nested_webpack_require_115611__(24); +layoutBase.LinkedList = __nested_webpack_require_115611__(11); +layoutBase.LGraphObject = __nested_webpack_require_115611__(2); +layoutBase.LGraph = __nested_webpack_require_115611__(5); +layoutBase.LEdge = __nested_webpack_require_115611__(1); +layoutBase.LGraphManager = __nested_webpack_require_115611__(6); +layoutBase.LNode = __nested_webpack_require_115611__(3); +layoutBase.Layout = __nested_webpack_require_115611__(15); +layoutBase.LayoutConstants = __nested_webpack_require_115611__(0); +layoutBase.NeedlemanWunsch = __nested_webpack_require_115611__(25); + +module.exports = layoutBase; + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function Emitter() { + this.listeners = []; +} + +var p = Emitter.prototype; + +p.addListener = function (event, callback) { + this.listeners.push({ + event: event, + callback: callback + }); +}; + +p.removeListener = function (event, callback) { + for (var i = this.listeners.length; i >= 0; i--) { + var l = this.listeners[i]; + + if (l.event === event && l.callback === callback) { + this.listeners.splice(i, 1); + } + } +}; + +p.emit = function (event, data) { + for (var i = 0; i < this.listeners.length; i++) { + var l = this.listeners[i]; + + if (event === l.event) { + l.callback(data); + } + } +}; + +module.exports = Emitter; + +/***/ }) +/******/ ]); +}); + +/***/ }), + +/***/ 47724: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "diagram": () => (/* binding */ diagram) +/* harmony export */ }); +/* harmony import */ var _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(87115); +/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59373); +/* harmony import */ var cytoscape_dist_cytoscape_umd_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71377); +/* harmony import */ var cytoscape_dist_cytoscape_umd_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cytoscape_dist_cytoscape_umd_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var cytoscape_cose_bilkent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14607); +/* harmony import */ var cytoscape_cose_bilkent__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(cytoscape_cose_bilkent__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(91619); +/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(12281); +/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(7201); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(27484); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(17967); +/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20683); +/* harmony import */ var dagre_d3_es_src_dagre_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(70277); +/* harmony import */ var dagre_d3_es_src_graphlib_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(45625); +/* harmony import */ var dagre_d3_es_src_graphlib_json_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(39354); +/* harmony import */ var dagre_d3_es__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(91518); +/* harmony import */ var dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(59542); +/* harmony import */ var dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_10__); +/* harmony import */ var dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(10285); +/* harmony import */ var dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_11__); +/* harmony import */ var dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(28734); +/* harmony import */ var dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_12__); + + + + + + + + + + + + + + + + + + + + + + + + +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 4], $V1 = [1, 13], $V2 = [1, 12], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 20], $V6 = [1, 19], $V7 = [6, 7, 8], $V8 = [1, 26], $V9 = [1, 24], $Va = [1, 25], $Vb = [6, 7, 11], $Vc = [1, 6, 13, 15, 16, 19, 22], $Vd = [1, 33], $Ve = [1, 34], $Vf = [1, 6, 7, 11, 13, 15, 16, 19, 22]; + var parser2 = { + trace: function trace() { + }, + 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 anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 6: + case 7: + return yy; + case 8: + yy.getLogger().trace("Stop NL "); + break; + case 9: + yy.getLogger().trace("Stop EOF "); + break; + case 11: + yy.getLogger().trace("Stop NL2 "); + break; + case 12: + yy.getLogger().trace("Stop EOF2 "); + break; + case 15: + yy.getLogger().info("Node: ", $$[$0].id); + yy.addNode($$[$0 - 1].length, $$[$0].id, $$[$0].descr, $$[$0].type); + break; + case 16: + yy.getLogger().trace("Icon: ", $$[$0]); + yy.decorateNode({ icon: $$[$0] }); + break; + case 17: + case 21: + yy.decorateNode({ class: $$[$0] }); + break; + case 18: + yy.getLogger().trace("SPACELIST"); + break; + case 19: + yy.getLogger().trace("Node: ", $$[$0].id); + yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type); + break; + case 20: + yy.decorateNode({ icon: $$[$0] }); + break; + case 25: + yy.getLogger().trace("node found ..", $$[$0 - 2]); + this.$ = { id: $$[$0 - 1], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) }; + break; + case 26: + this.$ = { id: $$[$0], descr: $$[$0], type: yy.nodeType.DEFAULT }; + break; + case 27: + yy.getLogger().trace("node found ..", $$[$0 - 3]); + this.$ = { id: $$[$0 - 3], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) }; + break; + } + }, + table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: $V0 }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: $V0 }, { 6: $V1, 7: [1, 10], 9: 9, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($V7, [2, 3]), { 1: [2, 2] }, o($V7, [2, 4]), o($V7, [2, 5]), { 1: [2, 6], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V1, 9: 22, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V8, 7: $V9, 10: 23, 11: $Va }, o($Vb, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: $V5, 22: $V6 }), o($Vb, [2, 18]), o($Vb, [2, 19]), o($Vb, [2, 20]), o($Vb, [2, 21]), o($Vb, [2, 23]), o($Vb, [2, 24]), o($Vb, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: $V8, 7: $V9, 10: 32, 11: $Va }, { 1: [2, 7], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($Vc, [2, 14], { 7: $Vd, 11: $Ve }), o($Vf, [2, 8]), o($Vf, [2, 9]), o($Vf, [2, 10]), o($Vb, [2, 15]), o($Vb, [2, 16]), o($Vb, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, o($Vc, [2, 13], { 7: $Vd, 11: $Ve }), o($Vf, [2, 11]), o($Vf, [2, 12]), { 21: [1, 37] }, o($Vb, [2, 25]), o($Vb, [2, 27])], + defaultActions: { 2: [2, 1], 6: [2, 2] }, + parseError: function parseError2(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError2(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + 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 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = 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); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } 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).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + 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 + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + yy.getLogger().trace("Found comment", yy_.yytext); + break; + case 1: + return 8; + case 2: + this.begin("CLASS"); + break; + case 3: + this.popState(); + return 16; + case 4: + this.popState(); + break; + case 5: + yy.getLogger().trace("Begin icon"); + this.begin("ICON"); + break; + case 6: + yy.getLogger().trace("SPACELINE"); + return 6; + case 7: + return 7; + case 8: + return 15; + case 9: + yy.getLogger().trace("end icon"); + this.popState(); + break; + case 10: + yy.getLogger().trace("Exploding node"); + this.begin("NODE"); + return 19; + case 11: + yy.getLogger().trace("Cloud"); + this.begin("NODE"); + return 19; + case 12: + yy.getLogger().trace("Explosion Bang"); + this.begin("NODE"); + return 19; + case 13: + yy.getLogger().trace("Cloud Bang"); + this.begin("NODE"); + return 19; + case 14: + this.begin("NODE"); + return 19; + case 15: + this.begin("NODE"); + return 19; + case 16: + this.begin("NODE"); + return 19; + case 17: + this.begin("NODE"); + return 19; + case 18: + return 13; + case 19: + return 22; + case 20: + return 11; + case 21: + yy.getLogger().trace("Starting NSTR"); + this.begin("NSTR"); + break; + case 22: + yy.getLogger().trace("description:", yy_.yytext); + return "NODE_DESCR"; + case 23: + this.popState(); + break; + case 24: + this.popState(); + yy.getLogger().trace("node end ))"); + return "NODE_DEND"; + case 25: + this.popState(); + yy.getLogger().trace("node end )"); + return "NODE_DEND"; + case 26: + this.popState(); + yy.getLogger().trace("node end ...", yy_.yytext); + return "NODE_DEND"; + case 27: + this.popState(); + yy.getLogger().trace("node end (("); + return "NODE_DEND"; + case 28: + this.popState(); + yy.getLogger().trace("node end (-"); + return "NODE_DEND"; + case 29: + this.popState(); + yy.getLogger().trace("node end (-"); + return "NODE_DEND"; + case 30: + this.popState(); + yy.getLogger().trace("node end (("); + return "NODE_DEND"; + case 31: + this.popState(); + yy.getLogger().trace("node end (("); + return "NODE_DEND"; + case 32: + yy.getLogger().trace("Long description:", yy_.yytext); + return 20; + case 33: + yy.getLogger().trace("Long description:", yy_.yytext); + return 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], + conditions: { "CLASS": { "rules": [3, 4], "inclusive": false }, "ICON": { "rules": [8, 9], "inclusive": false }, "NSTR": { "rules": [22, 23], "inclusive": false }, "NODE": { "rules": [21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const mindmapParser = parser; +const sanitizeText = (text) => (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.n)(text, (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.g)()); +let nodes = []; +let cnt = 0; +let elements = {}; +const clear = () => { + nodes = []; + cnt = 0; + elements = {}; +}; +const getParent = function(level) { + for (let i = nodes.length - 1; i >= 0; i--) { + if (nodes[i].level < level) { + return nodes[i]; + } + } + return null; +}; +const getMindmap = () => { + return nodes.length > 0 ? nodes[0] : null; +}; +const addNode = (level, id, descr, type) => { + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.l.info("addNode", level, id, descr, type); + const conf = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.g)(); + const node = { + id: cnt++, + nodeId: sanitizeText(id), + level, + descr: sanitizeText(descr), + type, + children: [], + width: (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.g)().mindmap.maxNodeWidth + }; + switch (node.type) { + case nodeType.ROUNDED_RECT: + node.padding = 2 * conf.mindmap.padding; + break; + case nodeType.RECT: + node.padding = 2 * conf.mindmap.padding; + break; + case nodeType.HEXAGON: + node.padding = 2 * conf.mindmap.padding; + break; + default: + node.padding = conf.mindmap.padding; + } + const parent = getParent(level); + if (parent) { + parent.children.push(node); + nodes.push(node); + } else { + if (nodes.length === 0) { + nodes.push(node); + } else { + let error = new Error( + 'There can be only one root. No parent could be found for ("' + node.descr + '")' + ); + error.hash = { + text: "branch " + name, + token: "branch " + name, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ['"checkout ' + name + '"'] + }; + throw error; + } + } +}; +const nodeType = { + DEFAULT: 0, + NO_BORDER: 0, + ROUNDED_RECT: 1, + RECT: 2, + CIRCLE: 3, + CLOUD: 4, + BANG: 5, + HEXAGON: 6 +}; +const getType = (startStr, endStr) => { + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.l.debug("In get type", startStr, endStr); + switch (startStr) { + case "[": + return nodeType.RECT; + case "(": + return endStr === ")" ? nodeType.ROUNDED_RECT : nodeType.CLOUD; + case "((": + return nodeType.CIRCLE; + case ")": + return nodeType.CLOUD; + case "))": + return nodeType.BANG; + case "{{": + return nodeType.HEXAGON; + default: + return nodeType.DEFAULT; + } +}; +const setElementForId = (id, element) => { + elements[id] = element; +}; +const decorateNode = (decoration) => { + const node = nodes[nodes.length - 1]; + if (decoration && decoration.icon) { + node.icon = sanitizeText(decoration.icon); + } + if (decoration && decoration.class) { + node.class = sanitizeText(decoration.class); + } +}; +const type2Str = (type) => { + switch (type) { + case nodeType.DEFAULT: + return "no-border"; + case nodeType.RECT: + return "rect"; + case nodeType.ROUNDED_RECT: + return "rounded-rect"; + case nodeType.CIRCLE: + return "circle"; + case nodeType.CLOUD: + return "cloud"; + case nodeType.BANG: + return "bang"; + case nodeType.HEXAGON: + return "hexgon"; + default: + return "no-border"; + } +}; +let parseError; +const setErrorHandler = (handler) => { + parseError = handler; +}; +const getLogger = () => _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.l; +const getNodeById = (id) => nodes[id]; +const getElementById = (id) => elements[id]; +const mindmapDb = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + addNode, + clear, + decorateNode, + getElementById, + getLogger, + getMindmap, + getNodeById, + getType, + nodeType, + get parseError() { + return parseError; + }, + sanitizeText, + setElementForId, + setErrorHandler, + type2Str +}, Symbol.toStringTag, { value: "Module" })); +const MAX_SECTIONS = 12; +function wrap(text, width) { + text.each(function() { + var text2 = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)(this), words = text2.text().split(/(\s+|<br>)/).reverse(), word, line = [], lineHeight = 1.1, y = text2.attr("y"), dy = parseFloat(text2.attr("dy")), tspan = text2.text(null).append("tspan").attr("x", 0).attr("y", y).attr("dy", dy + "em"); + for (let j = 0; j < words.length; j++) { + word = words[words.length - 1 - j]; + line.push(word); + tspan.text(line.join(" ").trim()); + if (tspan.node().getComputedTextLength() > width || word === "<br>") { + line.pop(); + tspan.text(line.join(" ").trim()); + if (word === "<br>") { + line = [""]; + } else { + line = [word]; + } + tspan = text2.append("tspan").attr("x", 0).attr("y", y).attr("dy", lineHeight + "em").text(word); + } + } + }); +} +const defaultBkg = function(elem, node, section) { + const rd = 5; + elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr( + "d", + `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z` + ); + elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node.height).attr("x2", node.width).attr("y2", node.height); +}; +const rectBkg = function(elem, node) { + elem.append("rect").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("height", node.height).attr("width", node.width); +}; +const cloudBkg = function(elem, node) { + const w = node.width; + const h = node.height; + const r1 = 0.15 * w; + const r2 = 0.25 * w; + const r3 = 0.35 * w; + const r4 = 0.2 * w; + elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr( + "d", + `M0 0 a${r1},${r1} 0 0,1 ${w * 0.25},${-1 * w * 0.1} + a${r3},${r3} 1 0,1 ${w * 0.4},${-1 * w * 0.1} + a${r2},${r2} 1 0,1 ${w * 0.35},${1 * w * 0.2} + + a${r1},${r1} 1 0,1 ${w * 0.15},${1 * h * 0.35} + a${r4},${r4} 1 0,1 ${-1 * w * 0.15},${1 * h * 0.65} + + a${r2},${r1} 1 0,1 ${-1 * w * 0.25},${w * 0.15} + a${r3},${r3} 1 0,1 ${-1 * w * 0.5},${0} + a${r1},${r1} 1 0,1 ${-1 * w * 0.25},${-1 * w * 0.15} + + a${r1},${r1} 1 0,1 ${-1 * w * 0.1},${-1 * h * 0.35} + a${r4},${r4} 1 0,1 ${w * 0.1},${-1 * h * 0.65} + + H0 V0 Z` + ); +}; +const bangBkg = function(elem, node) { + const w = node.width; + const h = node.height; + const r = 0.15 * w; + elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr( + "d", + `M0 0 a${r},${r} 1 0,0 ${w * 0.25},${-1 * h * 0.1} + a${r},${r} 1 0,0 ${w * 0.25},${0} + a${r},${r} 1 0,0 ${w * 0.25},${0} + a${r},${r} 1 0,0 ${w * 0.25},${1 * h * 0.1} + + a${r},${r} 1 0,0 ${w * 0.15},${1 * h * 0.33} + a${r * 0.8},${r * 0.8} 1 0,0 ${0},${1 * h * 0.34} + a${r},${r} 1 0,0 ${-1 * w * 0.15},${1 * h * 0.33} + + a${r},${r} 1 0,0 ${-1 * w * 0.25},${h * 0.15} + a${r},${r} 1 0,0 ${-1 * w * 0.25},${0} + a${r},${r} 1 0,0 ${-1 * w * 0.25},${0} + a${r},${r} 1 0,0 ${-1 * w * 0.25},${-1 * h * 0.15} + + a${r},${r} 1 0,0 ${-1 * w * 0.1},${-1 * h * 0.33} + a${r * 0.8},${r * 0.8} 1 0,0 ${0},${-1 * h * 0.34} + a${r},${r} 1 0,0 ${w * 0.1},${-1 * h * 0.33} + + H0 V0 Z` + ); +}; +const circleBkg = function(elem, node) { + elem.append("circle").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("r", node.width / 2); +}; +function insertPolygonShape(parent, w, h, points, node) { + return parent.insert("polygon", ":first-child").attr( + "points", + points.map(function(d) { + return d.x + "," + d.y; + }).join(" ") + ).attr("transform", "translate(" + (node.width - w) / 2 + ", " + h + ")"); +} +const hexagonBkg = function(elem, node) { + const h = node.height; + const f = 4; + const m = h / f; + const w = node.width - node.padding + 2 * m; + const points = [ + { x: m, y: 0 }, + { x: w - m, y: 0 }, + { x: w, y: -h / 2 }, + { x: w - m, y: -h }, + { x: m, y: -h }, + { x: 0, y: -h / 2 } + ]; + insertPolygonShape(elem, w, h, points, node); +}; +const roundedRectBkg = function(elem, node) { + elem.append("rect").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("height", node.height).attr("rx", node.padding).attr("ry", node.padding).attr("width", node.width); +}; +const drawNode = function(elem, node, fullSection, conf) { + const section = fullSection % (MAX_SECTIONS - 1); + const nodeElem = elem.append("g"); + node.section = section; + let sectionClass = "section-" + section; + if (section < 0) { + sectionClass += " section-root"; + } + nodeElem.attr("class", (node.class ? node.class + " " : "") + "mindmap-node " + sectionClass); + const bkgElem = nodeElem.append("g"); + const textElem = nodeElem.append("g"); + const txt = textElem.append("text").text(node.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node.width); + const bbox = txt.node().getBBox(); + const fontSize = conf.fontSize.replace ? conf.fontSize.replace("px", "") : conf.fontSize; + node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding; + node.width = bbox.width + 2 * node.padding; + if (node.icon) { + if (node.type === nodeType.CIRCLE) { + node.height += 50; + node.width += 50; + const icon = nodeElem.append("foreignObject").attr("height", "50px").attr("width", node.width).attr("style", "text-align: center;"); + icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node.icon); + textElem.attr( + "transform", + "translate(" + node.width / 2 + ", " + (node.height / 2 - 1.5 * node.padding) + ")" + ); + } else { + node.width += 50; + const orgHeight = node.height; + node.height = Math.max(orgHeight, 60); + const heightDiff = Math.abs(node.height - orgHeight); + const icon = nodeElem.append("foreignObject").attr("width", "60px").attr("height", node.height).attr("style", "text-align: center;margin-top:" + heightDiff / 2 + "px;"); + icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node.icon); + textElem.attr( + "transform", + "translate(" + (25 + node.width / 2) + ", " + (heightDiff / 2 + node.padding / 2) + ")" + ); + } + } else { + textElem.attr("transform", "translate(" + node.width / 2 + ", " + node.padding / 2 + ")"); + } + switch (node.type) { + case nodeType.DEFAULT: + defaultBkg(bkgElem, node, section); + break; + case nodeType.ROUNDED_RECT: + roundedRectBkg(bkgElem, node); + break; + case nodeType.RECT: + rectBkg(bkgElem, node); + break; + case nodeType.CIRCLE: + bkgElem.attr("transform", "translate(" + node.width / 2 + ", " + +node.height / 2 + ")"); + circleBkg(bkgElem, node); + break; + case nodeType.CLOUD: + cloudBkg(bkgElem, node); + break; + case nodeType.BANG: + bangBkg(bkgElem, node); + break; + case nodeType.HEXAGON: + hexagonBkg(bkgElem, node); + break; + } + setElementForId(node.id, nodeElem); + return node.height; +}; +const drawEdge = function drawEdge2(edgesElem, mindmap, parent, depth, fullSection) { + const section = fullSection % (MAX_SECTIONS - 1); + const sx = parent.x + parent.width / 2; + const sy = parent.y + parent.height / 2; + const ex = mindmap.x + mindmap.width / 2; + const ey = mindmap.y + mindmap.height / 2; + const mx = ex > sx ? sx + Math.abs(sx - ex) / 2 : sx - Math.abs(sx - ex) / 2; + const my = ey > sy ? sy + Math.abs(sy - ey) / 2 : sy - Math.abs(sy - ey) / 2; + const qx = ex > sx ? Math.abs(sx - mx) / 2 + sx : -Math.abs(sx - mx) / 2 + sx; + const qy = ey > sy ? Math.abs(sy - my) / 2 + sy : -Math.abs(sy - my) / 2 + sy; + edgesElem.append("path").attr( + "d", + parent.direction === "TB" || parent.direction === "BT" ? `M${sx},${sy} Q${sx},${qy} ${mx},${my} T${ex},${ey}` : `M${sx},${sy} Q${qx},${sy} ${mx},${my} T${ex},${ey}` + ).attr("class", "edge section-edge-" + section + " edge-depth-" + depth); +}; +const positionNode = function(node) { + const nodeElem = getElementById(node.id); + const x = node.x || 0; + const y = node.y || 0; + nodeElem.attr("transform", "translate(" + x + "," + y + ")"); +}; +const svgDraw = { drawNode, positionNode, drawEdge }; +cytoscape_dist_cytoscape_umd_js__WEBPACK_IMPORTED_MODULE_1___default().use((cytoscape_cose_bilkent__WEBPACK_IMPORTED_MODULE_2___default())); +function drawNodes(svg, mindmap, section, conf) { + svgDraw.drawNode(svg, mindmap, section, conf); + if (mindmap.children) { + mindmap.children.forEach((child, index) => { + drawNodes(svg, child, section < 0 ? index : section, conf); + }); + } +} +function drawEdges(edgesEl, cy) { + cy.edges().map((edge, id) => { + const data = edge.data(); + if (edge[0]._private.bodyBounds) { + const bounds = edge[0]._private.rscratch; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.l.trace("Edge: ", id, data); + edgesEl.insert("path").attr( + "d", + `M ${bounds.startX},${bounds.startY} L ${bounds.midX},${bounds.midY} L${bounds.endX},${bounds.endY} ` + ).attr("class", "edge section-edge-" + data.section + " edge-depth-" + data.depth); + } + }); +} +function addNodes(mindmap, cy, conf, level) { + cy.add({ + group: "nodes", + data: { + id: mindmap.id, + labelText: mindmap.descr, + height: mindmap.height, + width: mindmap.width, + level, + nodeId: mindmap.id, + padding: mindmap.padding, + type: mindmap.type + }, + position: { + x: mindmap.x, + y: mindmap.y + } + }); + if (mindmap.children) { + mindmap.children.forEach((child) => { + addNodes(child, cy, conf, level + 1); + cy.add({ + group: "edges", + data: { + id: `${mindmap.id}_${child.id}`, + source: mindmap.id, + target: child.id, + depth: level, + section: child.section + } + }); + }); + } +} +function layoutMindmap(node, conf) { + return new Promise((resolve) => { + const renderEl = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("body").append("div").attr("id", "cy").attr("style", "display:none"); + const cy = cytoscape_dist_cytoscape_umd_js__WEBPACK_IMPORTED_MODULE_1___default()({ + container: document.getElementById("cy"), + // container to render in + style: [ + { + selector: "edge", + style: { + "curve-style": "bezier" + } + } + ] + }); + renderEl.remove(); + addNodes(node, cy, conf, 0); + cy.nodes().forEach(function(n) { + n.layoutDimensions = () => { + const data = n.data(); + return { w: data.width, h: data.height }; + }; + }); + cy.layout({ + name: "cose-bilkent", + quality: "proof", + // headless: true, + styleEnabled: false, + animate: false + }).run(); + cy.ready((e) => { + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.l.info("Ready", e); + resolve(cy); + }); + }); +} +function positionNodes(cy) { + cy.nodes().map((node, id) => { + const data = node.data(); + data.x = node.position().x; + data.y = node.position().y; + svgDraw.positionNode(data); + const el = getElementById(data.nodeId); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.l.info("Id:", id, "Position: (", node.position().x, ", ", node.position().y, ")", data); + el.attr( + "transform", + `translate(${node.position().x - data.width / 2}, ${node.position().y - data.height / 2})` + ); + el.attr("attr", `apa-${id})`); + }); +} +const draw = async (text, id, version, diagObj) => { + const conf = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.g)(); + diagObj.db.clear(); + diagObj.parser.parse(text); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.l.debug("Renering info diagram\n" + text); + const securityLevel = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.g)().securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("#i" + id); + } + const root = securityLevel === "sandbox" ? (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("body"); + const svg = root.select("#" + id); + svg.append("g"); + const mm = diagObj.db.getMindmap(); + const edgesElem = svg.append("g"); + edgesElem.attr("class", "mindmap-edges"); + const nodesElem = svg.append("g"); + nodesElem.attr("class", "mindmap-nodes"); + drawNodes(nodesElem, mm, -1, conf); + const cy = await layoutMindmap(mm, conf); + drawEdges(edgesElem, cy); + positionNodes(cy); + (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.s)(void 0, svg, conf.mindmap.padding, conf.mindmap.useMaxWidth); +}; +const mindmapRenderer = { + draw +}; +const genSections = (options) => { + let sections = ""; + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + options["lineColor" + i] = options["lineColor" + i] || options["cScaleInv" + i]; + if ((0,khroma__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z)(options["lineColor" + i])) { + options["lineColor" + i] = (0,khroma__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .Z)(options["lineColor" + i], 20); + } else { + options["lineColor" + i] = (0,khroma__WEBPACK_IMPORTED_MODULE_16__/* ["default"] */ .Z)(options["lineColor" + i], 20); + } + } + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + const sw = "" + (17 - 3 * i); + sections += ` + .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} polygon, .section-${i - 1} path { + fill: ${options["cScale" + i]}; + } + .section-${i - 1} text { + fill: ${options["cScaleLabel" + i]}; + } + .node-icon-${i - 1} { + font-size: 40px; + color: ${options["cScaleLabel" + i]}; + } + .section-edge-${i - 1}{ + stroke: ${options["cScale" + i]}; + } + .edge-depth-${i - 1}{ + stroke-width: ${sw}; + } + .section-${i - 1} line { + stroke: ${options["cScaleInv" + i]} ; + stroke-width: 3; + } + + .disabled, .disabled circle, .disabled text { + fill: lightgray; + } + .disabled text { + fill: #efefef; + } + `; + } + return sections; +}; +const getStyles = (options) => ` + .edge { + stroke-width: 3; + } + ${genSections(options)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${options.git0}; + } + .section-root text { + fill: ${options.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } +`; +const mindmapStyles = getStyles; +const diagram = { + db: mindmapDb, + renderer: mindmapRenderer, + parser: mindmapParser, + styles: mindmapStyles +}; + +//# sourceMappingURL=mindmap-definition-44684416.js.map + + +/***/ }), + +/***/ 91619: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Z": () => (/* binding */ is_dark) +}); + +// EXTERNAL MODULE: ./node_modules/khroma/dist/utils/index.js + 3 modules +var utils = __webpack_require__(61691); +// EXTERNAL MODULE: ./node_modules/khroma/dist/color/index.js + 4 modules +var dist_color = __webpack_require__(71610); +;// CONCATENATED MODULE: ./node_modules/khroma/dist/methods/luminance.js +/* IMPORT */ + + +/* MAIN */ +//SOURCE: https://planetcalc.com/7779 +const luminance = (color) => { + const { r, g, b } = dist_color/* default.parse */.Z.parse(color); + const luminance = .2126 * utils/* default.channel.toLinear */.Z.channel.toLinear(r) + .7152 * utils/* default.channel.toLinear */.Z.channel.toLinear(g) + .0722 * utils/* default.channel.toLinear */.Z.channel.toLinear(b); + return utils/* default.lang.round */.Z.lang.round(luminance); +}; +/* EXPORT */ +/* harmony default export */ const methods_luminance = (luminance); + +;// CONCATENATED MODULE: ./node_modules/khroma/dist/methods/is_light.js +/* IMPORT */ + +/* MAIN */ +const isLight = (color) => { + return methods_luminance(color) >= .5; +}; +/* EXPORT */ +/* harmony default export */ const is_light = (isLight); + +;// CONCATENATED MODULE: ./node_modules/khroma/dist/methods/is_dark.js +/* IMPORT */ + +/* MAIN */ +const isDark = (color) => { + return !is_light(color); +}; +/* EXPORT */ +/* harmony default export */ const is_dark = (isDark); + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/7724.ccc7d3de.js b/assets/js/7724.ccc7d3de.js new file mode 100644 index 00000000000..fb34221062e --- /dev/null +++ b/assets/js/7724.ccc7d3de.js @@ -0,0 +1,2 @@ +/*! For license information please see 7724.ccc7d3de.js.LICENSE.txt */ +(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7724],{84182:function(e,t,n){var r;r=function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=7)}([function(t,n){t.exports=e},function(e,t,n){"use strict";var r=n(0).FDLayoutConstants;function i(){}for(var a in r)i[a]=r[a];i.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,i.DEFAULT_RADIAL_SEPARATION=r.DEFAULT_EDGE_LENGTH,i.DEFAULT_COMPONENT_SEPERATION=60,i.TILE=!0,i.TILING_PADDING_VERTICAL=10,i.TILING_PADDING_HORIZONTAL=10,i.TREE_REDUCTION_ON_INCREMENTAL=!1,e.exports=i},function(e,t,n){"use strict";var r=n(0).FDLayoutEdge;function i(e,t,n){r.call(this,e,t,n)}for(var a in i.prototype=Object.create(r.prototype),r)i[a]=r[a];e.exports=i},function(e,t,n){"use strict";var r=n(0).LGraph;function i(e,t,n){r.call(this,e,t,n)}for(var a in i.prototype=Object.create(r.prototype),r)i[a]=r[a];e.exports=i},function(e,t,n){"use strict";var r=n(0).LGraphManager;function i(e){r.call(this,e)}for(var a in i.prototype=Object.create(r.prototype),r)i[a]=r[a];e.exports=i},function(e,t,n){"use strict";var r=n(0).FDLayoutNode,i=n(0).IMath;function a(e,t,n,i){r.call(this,e,t,n,i)}for(var o in a.prototype=Object.create(r.prototype),r)a[o]=r[o];a.prototype.move=function(){var e=this.graphManager.getLayout();this.displacementX=e.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=e.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>e.coolingFactor*e.maxNodeDisplacement&&(this.displacementX=e.coolingFactor*e.maxNodeDisplacement*i.sign(this.displacementX)),Math.abs(this.displacementY)>e.coolingFactor*e.maxNodeDisplacement&&(this.displacementY=e.coolingFactor*e.maxNodeDisplacement*i.sign(this.displacementY)),null==this.child||0==this.child.getNodes().length?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),e.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},a.prototype.propogateDisplacementToChildren=function(e,t){for(var n,r=this.getChild().getNodes(),i=0;i<r.length;i++)null==(n=r[i]).getChild()?(n.moveBy(e,t),n.displacementX+=e,n.displacementY+=t):n.propogateDisplacementToChildren(e,t)},a.prototype.setPred1=function(e){this.pred1=e},a.prototype.getPred1=function(){return pred1},a.prototype.getPred2=function(){return pred2},a.prototype.setNext=function(e){this.next=e},a.prototype.getNext=function(){return next},a.prototype.setProcessed=function(e){this.processed=e},a.prototype.isProcessed=function(){return processed},e.exports=a},function(e,t,n){"use strict";var r=n(0).FDLayout,i=n(4),a=n(3),o=n(5),s=n(2),l=n(1),u=n(0).FDLayoutConstants,c=n(0).LayoutConstants,h=n(0).Point,d=n(0).PointD,p=n(0).Layout,g=n(0).Integer,f=n(0).IGeometry,v=n(0).LGraph,y=n(0).Transform;function m(){r.call(this),this.toBeTiled={}}for(var b in m.prototype=Object.create(r.prototype),r)m[b]=r[b];m.prototype.newGraphManager=function(){var e=new i(this);return this.graphManager=e,e},m.prototype.newGraph=function(e){return new a(null,this.graphManager,e)},m.prototype.newNode=function(e){return new o(this.graphManager,e)},m.prototype.newEdge=function(e){return new s(null,null,e)},m.prototype.initParameters=function(){r.prototype.initParameters.call(this,arguments),this.isSubLayout||(l.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=l.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=l.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.springConstant=u.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=u.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=u.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=u.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=u.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=u.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1,this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/u.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=u.CONVERGENCE_CHECK_PERIOD/this.maxIterations,this.coolingAdjuster=1)},m.prototype.layout=function(){return c.DEFAULT_CREATE_BENDS_AS_NEEDED&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},m.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental)l.TREE_REDUCTION_ON_INCREMENTAL&&(this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation(),t=new Set(this.getAllNodes()),n=this.nodesWithGravity.filter((function(e){return t.has(e)})),this.graphManager.setAllNodesToApplyGravitation(n));else{var e=this.getFlatForest();if(e.length>0)this.positionNodesRadially(e);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),n=this.nodesWithGravity.filter((function(e){return t.has(e)}));this.graphManager.setAllNodesToApplyGravitation(n),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},m.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}if(this.totalIterations%u.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged()){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}this.coolingCycle++,0==this.layoutQuality?this.coolingAdjuster=this.coolingCycle:1==this.layoutQuality&&(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()),t=this.nodesWithGravity.filter((function(t){return e.has(t)}));this.graphManager.setAllNodesToApplyGravitation(t),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=u.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=u.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var n=!this.isTreeGrowing&&!this.isGrowthFinished,r=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(n,r),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},m.prototype.getPositionsData=function(){for(var e=this.graphManager.getAllNodes(),t={},n=0;n<e.length;n++){var r=e[n].rect,i=e[n].id;t[i]={id:i,x:r.getCenterX(),y:r.getCenterY(),w:r.width,h:r.height}}return t},m.prototype.runSpringEmbedder=function(){this.initialAnimationPeriod=25,this.animationPeriod=this.initialAnimationPeriod;var e=!1;if("during"===u.ANIMATE)this.emit("layoutstarted");else{for(;!e;)e=this.tick();this.graphManager.updateBounds()}},m.prototype.calculateNodesToApplyGravitationTo=function(){var e,t,n=[],r=this.graphManager.getGraphs(),i=r.length;for(t=0;t<i;t++)(e=r[t]).updateConnected(),e.isConnected||(n=n.concat(e.getNodes()));return n},m.prototype.createBendpoints=function(){var e=[];e=e.concat(this.graphManager.getAllEdges());var t,n=new Set;for(t=0;t<e.length;t++){var r=e[t];if(!n.has(r)){var i=r.getSource(),a=r.getTarget();if(i==a)r.getBendpoints().push(new d),r.getBendpoints().push(new d),this.createDummyNodesForBendpoints(r),n.add(r);else{var o=[];if(o=(o=o.concat(i.getEdgeListToNode(a))).concat(a.getEdgeListToNode(i)),!n.has(o[0])){var s;if(o.length>1)for(s=0;s<o.length;s++){var l=o[s];l.getBendpoints().push(new d),this.createDummyNodesForBendpoints(l)}o.forEach((function(e){n.add(e)}))}}}if(n.size==e.length)break}},m.prototype.positionNodesRadially=function(e){for(var t=new h(0,0),n=Math.ceil(Math.sqrt(e.length)),r=0,i=0,a=0,o=new d(0,0),s=0;s<e.length;s++){s%n==0&&(a=0,i=r,0!=s&&(i+=l.DEFAULT_COMPONENT_SEPERATION),r=0);var u=e[s],g=p.findCenterOfTree(u);t.x=a,t.y=i,(o=m.radialLayout(u,g,t)).y>r&&(r=Math.floor(o.y)),a=Math.floor(o.x+l.DEFAULT_COMPONENT_SEPERATION)}this.transform(new d(c.WORLD_CENTER_X-o.x/2,c.WORLD_CENTER_Y-o.y/2))},m.radialLayout=function(e,t,n){var r=Math.max(this.maxDiagonalInTree(e),l.DEFAULT_RADIAL_SEPARATION);m.branchRadialLayout(t,null,0,359,0,r);var i=v.calculateBounds(e),a=new y;a.setDeviceOrgX(i.getMinX()),a.setDeviceOrgY(i.getMinY()),a.setWorldOrgX(n.x),a.setWorldOrgY(n.y);for(var o=0;o<e.length;o++)e[o].transform(a);var s=new d(i.getMaxX(),i.getMaxY());return a.inverseTransformPoint(s)},m.branchRadialLayout=function(e,t,n,r,i,a){var o=(r-n+1)/2;o<0&&(o+=180);var s=(o+n)%360*f.TWO_PI/360,l=(Math.cos(s),i*Math.cos(s)),u=i*Math.sin(s);e.setCenter(l,u);var c=[],h=(c=c.concat(e.getEdges())).length;null!=t&&h--;for(var d,p=0,g=c.length,v=e.getEdgesBetween(t);v.length>1;){var y=v[0];v.splice(0,1);var b=c.indexOf(y);b>=0&&c.splice(b,1),g--,h--}d=null!=t?(c.indexOf(v[0])+1)%g:0;for(var x=Math.abs(r-n)/h,w=d;p!=h;w=++w%g){var E=c[w].getOtherEnd(e);if(E!=t){var T=(n+p*x)%360,_=(T+x)%360;m.branchRadialLayout(E,e,T,_,i+a,a),p++}}},m.maxDiagonalInTree=function(e){for(var t=g.MIN_VALUE,n=0;n<e.length;n++){var r=e[n].getDiagonal();r>t&&(t=r)}return t},m.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},m.prototype.groupZeroDegreeMembers=function(){var e=this,t={};this.memberGroups={},this.idToDummyNode={};for(var n=[],r=this.graphManager.getAllNodes(),i=0;i<r.length;i++){var a=(s=r[i]).getParent();0!==this.getNodeDegreeWithChildren(s)||null!=a.id&&this.getToBeTiled(a)||n.push(s)}for(i=0;i<n.length;i++){var s,l=(s=n[i]).getParent().id;void 0===t[l]&&(t[l]=[]),t[l]=t[l].concat(s)}Object.keys(t).forEach((function(n){if(t[n].length>1){var r="DummyCompound_"+n;e.memberGroups[r]=t[n];var i=t[n][0].getParent(),a=new o(e.graphManager);a.id=r,a.paddingLeft=i.paddingLeft||0,a.paddingRight=i.paddingRight||0,a.paddingBottom=i.paddingBottom||0,a.paddingTop=i.paddingTop||0,e.idToDummyNode[r]=a;var s=e.getGraphManager().add(e.newGraph(),a),l=i.getChild();l.add(a);for(var u=0;u<t[n].length;u++){var c=t[n][u];l.remove(c),s.add(c)}}}))},m.prototype.clearCompounds=function(){var e={},t={};this.performDFSOnCompounds();for(var n=0;n<this.compoundOrder.length;n++)t[this.compoundOrder[n].id]=this.compoundOrder[n],e[this.compoundOrder[n].id]=[].concat(this.compoundOrder[n].getChild().getNodes()),this.graphManager.remove(this.compoundOrder[n].getChild()),this.compoundOrder[n].child=null;this.graphManager.resetAllNodes(),this.tileCompoundMembers(e,t)},m.prototype.clearZeroDegreeMembers=function(){var e=this,t=this.tiledZeroDegreePack=[];Object.keys(this.memberGroups).forEach((function(n){var r=e.idToDummyNode[n];t[n]=e.tileNodes(e.memberGroups[n],r.paddingLeft+r.paddingRight),r.rect.width=t[n].width,r.rect.height=t[n].height}))},m.prototype.repopulateCompounds=function(){for(var e=this.compoundOrder.length-1;e>=0;e--){var t=this.compoundOrder[e],n=t.id,r=t.paddingLeft,i=t.paddingTop;this.adjustLocations(this.tiledMemberPack[n],t.rect.x,t.rect.y,r,i)}},m.prototype.repopulateZeroDegreeMembers=function(){var e=this,t=this.tiledZeroDegreePack;Object.keys(t).forEach((function(n){var r=e.idToDummyNode[n],i=r.paddingLeft,a=r.paddingTop;e.adjustLocations(t[n],r.rect.x,r.rect.y,i,a)}))},m.prototype.getToBeTiled=function(e){var t=e.id;if(null!=this.toBeTiled[t])return this.toBeTiled[t];var n=e.getChild();if(null==n)return this.toBeTiled[t]=!1,!1;for(var r=n.getNodes(),i=0;i<r.length;i++){var a=r[i];if(this.getNodeDegree(a)>0)return this.toBeTiled[t]=!1,!1;if(null!=a.getChild()){if(!this.getToBeTiled(a))return this.toBeTiled[t]=!1,!1}else this.toBeTiled[a.id]=!1}return this.toBeTiled[t]=!0,!0},m.prototype.getNodeDegree=function(e){e.id;for(var t=e.getEdges(),n=0,r=0;r<t.length;r++){var i=t[r];i.getSource().id!==i.getTarget().id&&(n+=1)}return n},m.prototype.getNodeDegreeWithChildren=function(e){var t=this.getNodeDegree(e);if(null==e.getChild())return t;for(var n=e.getChild().getNodes(),r=0;r<n.length;r++){var i=n[r];t+=this.getNodeDegreeWithChildren(i)}return t},m.prototype.performDFSOnCompounds=function(){this.compoundOrder=[],this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes())},m.prototype.fillCompexOrderByDFS=function(e){for(var t=0;t<e.length;t++){var n=e[t];null!=n.getChild()&&this.fillCompexOrderByDFS(n.getChild().getNodes()),this.getToBeTiled(n)&&this.compoundOrder.push(n)}},m.prototype.adjustLocations=function(e,t,n,r,i){n+=i;for(var a=t+=r,o=0;o<e.rows.length;o++){var s=e.rows[o];t=a;for(var l=0,u=0;u<s.length;u++){var c=s[u];c.rect.x=t,c.rect.y=n,t+=c.rect.width+e.horizontalPadding,c.rect.height>l&&(l=c.rect.height)}n+=l+e.verticalPadding}},m.prototype.tileCompoundMembers=function(e,t){var n=this;this.tiledMemberPack=[],Object.keys(e).forEach((function(r){var i=t[r];n.tiledMemberPack[r]=n.tileNodes(e[r],i.paddingLeft+i.paddingRight),i.rect.width=n.tiledMemberPack[r].width,i.rect.height=n.tiledMemberPack[r].height}))},m.prototype.tileNodes=function(e,t){var n={rows:[],rowWidth:[],rowHeight:[],width:0,height:t,verticalPadding:l.TILING_PADDING_VERTICAL,horizontalPadding:l.TILING_PADDING_HORIZONTAL};e.sort((function(e,t){return e.rect.width*e.rect.height>t.rect.width*t.rect.height?-1:e.rect.width*e.rect.height<t.rect.width*t.rect.height?1:0}));for(var r=0;r<e.length;r++){var i=e[r];0==n.rows.length?this.insertNodeToRow(n,i,0,t):this.canAddHorizontal(n,i.rect.width,i.rect.height)?this.insertNodeToRow(n,i,this.getShortestRowIndex(n),t):this.insertNodeToRow(n,i,n.rows.length,t),this.shiftToLastRow(n)}return n},m.prototype.insertNodeToRow=function(e,t,n,r){var i=r;n==e.rows.length&&(e.rows.push([]),e.rowWidth.push(i),e.rowHeight.push(0));var a=e.rowWidth[n]+t.rect.width;e.rows[n].length>0&&(a+=e.horizontalPadding),e.rowWidth[n]=a,e.width<a&&(e.width=a);var o=t.rect.height;n>0&&(o+=e.verticalPadding);var s=0;o>e.rowHeight[n]&&(s=e.rowHeight[n],e.rowHeight[n]=o,s=e.rowHeight[n]-s),e.height+=s,e.rows[n].push(t)},m.prototype.getShortestRowIndex=function(e){for(var t=-1,n=Number.MAX_VALUE,r=0;r<e.rows.length;r++)e.rowWidth[r]<n&&(t=r,n=e.rowWidth[r]);return t},m.prototype.getLongestRowIndex=function(e){for(var t=-1,n=Number.MIN_VALUE,r=0;r<e.rows.length;r++)e.rowWidth[r]>n&&(t=r,n=e.rowWidth[r]);return t},m.prototype.canAddHorizontal=function(e,t,n){var r=this.getShortestRowIndex(e);if(r<0)return!0;var i=e.rowWidth[r];if(i+e.horizontalPadding+t<=e.width)return!0;var a,o,s=0;return e.rowHeight[r]<n&&r>0&&(s=n+e.verticalPadding-e.rowHeight[r]),a=e.width-i>=t+e.horizontalPadding?(e.height+s)/(i+t+e.horizontalPadding):(e.height+s)/e.width,s=n+e.verticalPadding,(o=e.width<t?(e.height+s)/t:(e.height+s)/e.width)<1&&(o=1/o),a<1&&(a=1/a),a<o},m.prototype.shiftToLastRow=function(e){var t=this.getLongestRowIndex(e),n=e.rowWidth.length-1,r=e.rows[t],i=r[r.length-1],a=i.width+e.horizontalPadding;if(e.width-e.rowWidth[n]>a&&t!=n){r.splice(-1,1),e.rows[n].push(i),e.rowWidth[t]=e.rowWidth[t]-a,e.rowWidth[n]=e.rowWidth[n]+a,e.width=e.rowWidth[instance.getLongestRowIndex(e)];for(var o=Number.MIN_VALUE,s=0;s<r.length;s++)r[s].height>o&&(o=r[s].height);t>0&&(o+=e.verticalPadding);var l=e.rowHeight[t]+e.rowHeight[n];e.rowHeight[t]=o,e.rowHeight[n]<i.height+e.verticalPadding&&(e.rowHeight[n]=i.height+e.verticalPadding);var u=e.rowHeight[t]+e.rowHeight[n];e.height+=u-l,this.shiftToLastRow(e)}},m.prototype.tilingPreLayout=function(){l.TILE&&(this.groupZeroDegreeMembers(),this.clearCompounds(),this.clearZeroDegreeMembers())},m.prototype.tilingPostLayout=function(){l.TILE&&(this.repopulateZeroDegreeMembers(),this.repopulateCompounds())},m.prototype.reduceTrees=function(){for(var e,t=[],n=!0;n;){var r=this.graphManager.getAllNodes(),i=[];n=!1;for(var a=0;a<r.length;a++)1!=(e=r[a]).getEdges().length||e.getEdges()[0].isInterGraph||null!=e.getChild()||(i.push([e,e.getEdges()[0],e.getOwner()]),n=!0);if(1==n){for(var o=[],s=0;s<i.length;s++)1==i[s][0].getEdges().length&&(o.push(i[s]),i[s][0].getOwner().remove(i[s][0]));t.push(o),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()}}this.prunedNodesAll=t},m.prototype.growTree=function(e){for(var t,n=e[e.length-1],r=0;r<n.length;r++)t=n[r],this.findPlaceforPrunedNode(t),t[2].add(t[0]),t[2].add(t[1],t[1].source,t[1].target);e.splice(e.length-1,1),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()},m.prototype.findPlaceforPrunedNode=function(e){var t,n,r=e[0],i=(n=r==e[1].source?e[1].target:e[1].source).startX,a=n.finishX,o=n.startY,s=n.finishY,l=[0,0,0,0];if(o>0)for(var c=i;c<=a;c++)l[0]+=this.grid[c][o-1].length+this.grid[c][o].length-1;if(a<this.grid.length-1)for(c=o;c<=s;c++)l[1]+=this.grid[a+1][c].length+this.grid[a][c].length-1;if(s<this.grid[0].length-1)for(c=i;c<=a;c++)l[2]+=this.grid[c][s+1].length+this.grid[c][s].length-1;if(i>0)for(c=o;c<=s;c++)l[3]+=this.grid[i-1][c].length+this.grid[i][c].length-1;for(var h,d,p=g.MAX_VALUE,f=0;f<l.length;f++)l[f]<p?(p=l[f],h=1,d=f):l[f]==p&&h++;if(3==h&&0==p)0==l[0]&&0==l[1]&&0==l[2]?t=1:0==l[0]&&0==l[1]&&0==l[3]?t=0:0==l[0]&&0==l[2]&&0==l[3]?t=3:0==l[1]&&0==l[2]&&0==l[3]&&(t=2);else if(2==h&&0==p){var v=Math.floor(2*Math.random());t=0==l[0]&&0==l[1]?0==v?0:1:0==l[0]&&0==l[2]?0==v?0:2:0==l[0]&&0==l[3]?0==v?0:3:0==l[1]&&0==l[2]?0==v?1:2:0==l[1]&&0==l[3]?0==v?1:3:0==v?2:3}else t=4==h&&0==p?v=Math.floor(4*Math.random()):d;0==t?r.setCenter(n.getCenterX(),n.getCenterY()-n.getHeight()/2-u.DEFAULT_EDGE_LENGTH-r.getHeight()/2):1==t?r.setCenter(n.getCenterX()+n.getWidth()/2+u.DEFAULT_EDGE_LENGTH+r.getWidth()/2,n.getCenterY()):2==t?r.setCenter(n.getCenterX(),n.getCenterY()+n.getHeight()/2+u.DEFAULT_EDGE_LENGTH+r.getHeight()/2):r.setCenter(n.getCenterX()-n.getWidth()/2-u.DEFAULT_EDGE_LENGTH-r.getWidth()/2,n.getCenterY())},e.exports=m},function(e,t,n){"use strict";var r={};r.layoutBase=n(0),r.CoSEConstants=n(1),r.CoSEEdge=n(2),r.CoSEGraph=n(3),r.CoSEGraphManager=n(4),r.CoSELayout=n(6),r.CoSENode=n(5),e.exports=r}])},e.exports=r(n(82241))},14607:function(e,t,n){var r;r=function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(t,n){t.exports=e},function(e,t,n){"use strict";var r=n(0).layoutBase.LayoutConstants,i=n(0).layoutBase.FDLayoutConstants,a=n(0).CoSEConstants,o=n(0).CoSELayout,s=n(0).CoSENode,l=n(0).layoutBase.PointD,u=n(0).layoutBase.DimensionD,c={ready:function(){},stop:function(){},quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function h(e){this.options=function(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n}(c,e),d(this.options)}var d=function(e){null!=e.nodeRepulsion&&(a.DEFAULT_REPULSION_STRENGTH=i.DEFAULT_REPULSION_STRENGTH=e.nodeRepulsion),null!=e.idealEdgeLength&&(a.DEFAULT_EDGE_LENGTH=i.DEFAULT_EDGE_LENGTH=e.idealEdgeLength),null!=e.edgeElasticity&&(a.DEFAULT_SPRING_STRENGTH=i.DEFAULT_SPRING_STRENGTH=e.edgeElasticity),null!=e.nestingFactor&&(a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=e.nestingFactor),null!=e.gravity&&(a.DEFAULT_GRAVITY_STRENGTH=i.DEFAULT_GRAVITY_STRENGTH=e.gravity),null!=e.numIter&&(a.MAX_ITERATIONS=i.MAX_ITERATIONS=e.numIter),null!=e.gravityRange&&(a.DEFAULT_GRAVITY_RANGE_FACTOR=i.DEFAULT_GRAVITY_RANGE_FACTOR=e.gravityRange),null!=e.gravityCompound&&(a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=i.DEFAULT_COMPOUND_GRAVITY_STRENGTH=e.gravityCompound),null!=e.gravityRangeCompound&&(a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=e.gravityRangeCompound),null!=e.initialEnergyOnIncremental&&(a.DEFAULT_COOLING_FACTOR_INCREMENTAL=i.DEFAULT_COOLING_FACTOR_INCREMENTAL=e.initialEnergyOnIncremental),"draft"==e.quality?r.QUALITY=0:"proof"==e.quality?r.QUALITY=2:r.QUALITY=1,a.NODE_DIMENSIONS_INCLUDE_LABELS=i.NODE_DIMENSIONS_INCLUDE_LABELS=r.NODE_DIMENSIONS_INCLUDE_LABELS=e.nodeDimensionsIncludeLabels,a.DEFAULT_INCREMENTAL=i.DEFAULT_INCREMENTAL=r.DEFAULT_INCREMENTAL=!e.randomize,a.ANIMATE=i.ANIMATE=r.ANIMATE=e.animate,a.TILE=e.tile,a.TILING_PADDING_VERTICAL="function"==typeof e.tilingPaddingVertical?e.tilingPaddingVertical.call():e.tilingPaddingVertical,a.TILING_PADDING_HORIZONTAL="function"==typeof e.tilingPaddingHorizontal?e.tilingPaddingHorizontal.call():e.tilingPaddingHorizontal};h.prototype.run=function(){var e,t,n=this.options,r=(this.idToLNode={},this.layout=new o),i=this;i.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var a=r.newGraphManager();this.gm=a;var s=this.options.eles.nodes(),l=this.options.eles.edges();this.root=a.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(s),r);for(var u=0;u<l.length;u++){var c=l[u],h=this.idToLNode[c.data("source")],d=this.idToLNode[c.data("target")];h!==d&&0==h.getEdgesBetween(d).length&&(a.add(r.newEdge(),h,d).id=c.id())}var p=function(e,t){"number"==typeof e&&(e=t);var n=e.data("id"),r=i.idToLNode[n];return{x:r.getRect().getCenterX(),y:r.getRect().getCenterY()}},g=function a(){for(var o,s=function(){n.fit&&n.cy.fit(n.eles,n.padding),e||(e=!0,i.cy.one("layoutready",n.ready),i.cy.trigger({type:"layoutready",layout:i}))},l=i.options.refresh,u=0;u<l&&!o;u++)o=i.stopped||i.layout.tick();if(o)return r.checkLayoutSuccess()&&!r.isSubLayout&&r.doPostLayout(),r.tilingPostLayout&&r.tilingPostLayout(),r.isLayoutFinished=!0,i.options.eles.nodes().positions(p),s(),i.cy.one("layoutstop",i.options.stop),i.cy.trigger({type:"layoutstop",layout:i}),t&&cancelAnimationFrame(t),void(e=!1);var c=i.layout.getPositionsData();n.eles.nodes().positions((function(e,t){if("number"==typeof e&&(e=t),!e.isParent()){for(var n=e.id(),r=c[n],i=e;null==r&&(r=c[i.data("parent")]||c["DummyCompound_"+i.data("parent")],c[n]=r,null!=(i=i.parent()[0])););return null!=r?{x:r.x,y:r.y}:{x:e.position("x"),y:e.position("y")}}})),s(),t=requestAnimationFrame(a)};return r.addListener("layoutstarted",(function(){"during"===i.options.animate&&(t=requestAnimationFrame(g))})),r.runLayout(),"during"!==this.options.animate&&(i.options.eles.nodes().not(":parent").layoutPositions(i,i.options,p),e=!1),this},h.prototype.getTopMostNodes=function(e){for(var t={},n=0;n<e.length;n++)t[e[n].id()]=!0;var r=e.filter((function(e,n){"number"==typeof e&&(e=n);for(var r=e.parent()[0];null!=r;){if(t[r.id()])return!1;r=r.parent()[0]}return!0}));return r},h.prototype.processChildrenList=function(e,t,n){for(var r=t.length,i=0;i<r;i++){var a,o,c=t[i],h=c.children(),d=c.layoutDimensions({nodeDimensionsIncludeLabels:this.options.nodeDimensionsIncludeLabels});if((a=null!=c.outerWidth()&&null!=c.outerHeight()?e.add(new s(n.graphManager,new l(c.position("x")-d.w/2,c.position("y")-d.h/2),new u(parseFloat(d.w),parseFloat(d.h)))):e.add(new s(this.graphManager))).id=c.data("id"),a.paddingLeft=parseInt(c.css("padding")),a.paddingTop=parseInt(c.css("padding")),a.paddingRight=parseInt(c.css("padding")),a.paddingBottom=parseInt(c.css("padding")),this.options.nodeDimensionsIncludeLabels&&c.isParent()){var p=c.boundingBox({includeLabels:!0,includeNodes:!1}).w,g=c.boundingBox({includeLabels:!0,includeNodes:!1}).h,f=c.css("text-halign");a.labelWidth=p,a.labelHeight=g,a.labelPos=f}this.idToLNode[c.data("id")]=a,isNaN(a.rect.x)&&(a.rect.x=0),isNaN(a.rect.y)&&(a.rect.y=0),null!=h&&h.length>0&&(o=n.getGraphManager().add(n.newGraph(),a),this.processChildrenList(o,h,n))}},h.prototype.stop=function(){return this.stopped=!0,this};var p=function(e){e("layout","cose-bilkent",h)};"undefined"!=typeof cytoscape&&p(cytoscape),e.exports=p}])},e.exports=r(n(84182))},71377:function(e,t,n){e.exports=function(){"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){return s(e)||l(e,t)||u(e,t)||h()}function s(e){if(Array.isArray(e))return e}function l(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a=[],o=!0,s=!1;try{for(n=n.call(e);!(o=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(l){s=!0,i=l}finally{try{o||null==n.return||n.return()}finally{if(s)throw i}}return a}}function u(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function h(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var d="undefined"==typeof window?null:window,p=d?d.navigator:null;d&&d.document;var g=e(""),f=e({}),v=e((function(){})),y="undefined"==typeof HTMLElement?"undefined":e(HTMLElement),m=function(e){return e&&e.instanceString&&x(e.instanceString)?e.instanceString():null},b=function(t){return null!=t&&e(t)==g},x=function(t){return null!=t&&e(t)===v},w=function(e){return!N(e)&&(Array.isArray?Array.isArray(e):null!=e&&e instanceof Array)},E=function(t){return null!=t&&e(t)===f&&!w(t)&&t.constructor===Object},T=function(t){return null!=t&&e(t)===f},_=function(t){return null!=t&&e(t)===e(1)&&!isNaN(t)},D=function(e){return _(e)&&Math.floor(e)===e},C=function(e){return"undefined"===y?void 0:null!=e&&e instanceof HTMLElement},N=function(e){return A(e)||L(e)},A=function(e){return"collection"===m(e)&&e._private.single},L=function(e){return"collection"===m(e)&&!e._private.single},S=function(e){return"core"===m(e)},O=function(e){return"stylesheet"===m(e)},I=function(e){return"event"===m(e)},k=function(e){return null==e||!(""!==e&&!e.match(/^\s+$/))},M=function(e){return"undefined"!=typeof HTMLElement&&e instanceof HTMLElement},P=function(e){return E(e)&&_(e.x1)&&_(e.x2)&&_(e.y1)&&_(e.y2)},R=function(e){return T(e)&&x(e.then)},B=function(){return p&&p.userAgent.match(/msie|trident|edge/i)},F=function(e,t){t||(t=function(){if(1===arguments.length)return arguments[0];if(0===arguments.length)return"undefined";for(var e=[],t=0;t<arguments.length;t++)e.push(arguments[t]);return e.join("$")});var n=function n(){var r,i=this,a=arguments,o=t.apply(i,a),s=n.cache;return(r=s[o])||(r=s[o]=e.apply(i,a)),r};return n.cache={},n},z=F((function(e){return e.replace(/([A-Z])/g,(function(e){return"-"+e.toLowerCase()}))})),G=F((function(e){return e.replace(/(-\w)/g,(function(e){return e[1].toUpperCase()}))})),Y=F((function(e,t){return e+t[0].toUpperCase()+t.substring(1)}),(function(e,t){return e+"$"+t})),X=function(e){return k(e)?e:e.charAt(0).toUpperCase()+e.substring(1)},V="(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))",U="rgb[a]?\\(("+V+"[%]?)\\s*,\\s*("+V+"[%]?)\\s*,\\s*("+V+"[%]?)(?:\\s*,\\s*("+V+"))?\\)",j="rgb[a]?\\((?:"+V+"[%]?)\\s*,\\s*(?:"+V+"[%]?)\\s*,\\s*(?:"+V+"[%]?)(?:\\s*,\\s*(?:"+V+"))?\\)",H="hsl[a]?\\(("+V+")\\s*,\\s*("+V+"[%])\\s*,\\s*("+V+"[%])(?:\\s*,\\s*("+V+"))?\\)",q="hsl[a]?\\((?:"+V+")\\s*,\\s*(?:"+V+"[%])\\s*,\\s*(?:"+V+"[%])(?:\\s*,\\s*(?:"+V+"))?\\)",W="\\#[0-9a-fA-F]{3}",$="\\#[0-9a-fA-F]{6}",K=function(e,t){return e<t?-1:e>t?1:0},Z=function(e,t){return-1*K(e,t)},Q=null!=Object.assign?Object.assign.bind(Object):function(e){for(var t=arguments,n=1;n<t.length;n++){var r=t[n];if(null!=r)for(var i=Object.keys(r),a=0;a<i.length;a++){var o=i[a];e[o]=r[o]}}return e},J=function(e){if((4===e.length||7===e.length)&&"#"===e[0]){var t,n,r,i=16;return 4===e.length?(t=parseInt(e[1]+e[1],i),n=parseInt(e[2]+e[2],i),r=parseInt(e[3]+e[3],i)):(t=parseInt(e[1]+e[2],i),n=parseInt(e[3]+e[4],i),r=parseInt(e[5]+e[6],i)),[t,n,r]}},ee=function(e){var t,n,r,i,a,o,s,l;function u(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}var c=new RegExp("^"+H+"$").exec(e);if(c){if((n=parseInt(c[1]))<0?n=(360- -1*n%360)%360:n>360&&(n%=360),n/=360,(r=parseFloat(c[2]))<0||r>100)return;if(r/=100,(i=parseFloat(c[3]))<0||i>100)return;if(i/=100,void 0!==(a=c[4])&&((a=parseFloat(a))<0||a>1))return;if(0===r)o=s=l=Math.round(255*i);else{var h=i<.5?i*(1+r):i+r-i*r,d=2*i-h;o=Math.round(255*u(d,h,n+1/3)),s=Math.round(255*u(d,h,n)),l=Math.round(255*u(d,h,n-1/3))}t=[o,s,l,a]}return t},te=function(e){var t,n=new RegExp("^"+U+"$").exec(e);if(n){t=[];for(var r=[],i=1;i<=3;i++){var a=n[i];if("%"===a[a.length-1]&&(r[i]=!0),a=parseFloat(a),r[i]&&(a=a/100*255),a<0||a>255)return;t.push(Math.floor(a))}var o=r[1]||r[2]||r[3],s=r[1]&&r[2]&&r[3];if(o&&!s)return;var l=n[4];if(void 0!==l){if((l=parseFloat(l))<0||l>1)return;t.push(l)}}return t},ne=function(e){return ie[e.toLowerCase()]},re=function(e){return(w(e)?e:null)||ne(e)||J(e)||te(e)||ee(e)},ie={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]},ae=function(e){for(var t=e.map,n=e.keys,r=n.length,i=0;i<r;i++){var a=n[i];if(E(a))throw Error("Tried to set map with object key");i<n.length-1?(null==t[a]&&(t[a]={}),t=t[a]):t[a]=e.value}},oe=function(e){for(var t=e.map,n=e.keys,r=n.length,i=0;i<r;i++){var a=n[i];if(E(a))throw Error("Tried to get map with object key");if(null==(t=t[a]))return t}return t};function se(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var le=se,ue="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:"undefined"!=typeof self?self:{};function ce(e,t){return e(t={exports:{}},t.exports),t.exports}var he="object"==typeof ue&&ue&&ue.Object===Object&&ue,de="object"==typeof self&&self&&self.Object===Object&&self,pe=he||de||Function("return this")(),ge=function(){return pe.Date.now()},fe=/\s/;function ve(e){for(var t=e.length;t--&&fe.test(e.charAt(t)););return t}var ye=ve,me=/^\s+/;function be(e){return e?e.slice(0,ye(e)+1).replace(me,""):e}var xe=be,we=pe.Symbol,Ee=Object.prototype,Te=Ee.hasOwnProperty,_e=Ee.toString,De=we?we.toStringTag:void 0;function Ce(e){var t=Te.call(e,De),n=e[De];try{e[De]=void 0;var r=!0}catch(a){}var i=_e.call(e);return r&&(t?e[De]=n:delete e[De]),i}var Ne=Ce,Ae=Object.prototype.toString;function Le(e){return Ae.call(e)}var Se=Le,Oe="[object Null]",Ie="[object Undefined]",ke=we?we.toStringTag:void 0;function Me(e){return null==e?void 0===e?Ie:Oe:ke&&ke in Object(e)?Ne(e):Se(e)}var Pe=Me;function Re(e){return null!=e&&"object"==typeof e}var Be=Re,Fe="[object Symbol]";function ze(e){return"symbol"==typeof e||Be(e)&&Pe(e)==Fe}var Ge=ze,Ye=NaN,Xe=/^[-+]0x[0-9a-f]+$/i,Ve=/^0b[01]+$/i,Ue=/^0o[0-7]+$/i,je=parseInt;function He(e){if("number"==typeof e)return e;if(Ge(e))return Ye;if(le(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=le(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=xe(e);var n=Ve.test(e);return n||Ue.test(e)?je(e.slice(2),n?2:8):Xe.test(e)?Ye:+e}var qe=He,We="Expected a function",$e=Math.max,Ke=Math.min;function Ze(e,t,n){var r,i,a,o,s,l,u=0,c=!1,h=!1,d=!0;if("function"!=typeof e)throw new TypeError(We);function p(t){var n=r,a=i;return r=i=void 0,u=t,o=e.apply(a,n)}function g(e){return u=e,s=setTimeout(y,t),c?p(e):o}function f(e){var n=t-(e-l);return h?Ke(n,a-(e-u)):n}function v(e){var n=e-l;return void 0===l||n>=t||n<0||h&&e-u>=a}function y(){var e=ge();if(v(e))return m(e);s=setTimeout(y,f(e))}function m(e){return s=void 0,d&&r?p(e):(r=i=void 0,o)}function b(){void 0!==s&&clearTimeout(s),u=0,r=l=i=s=void 0}function x(){return void 0===s?o:m(ge())}function w(){var e=ge(),n=v(e);if(r=arguments,i=this,l=e,n){if(void 0===s)return g(l);if(h)return clearTimeout(s),s=setTimeout(y,t),p(l)}return void 0===s&&(s=setTimeout(y,t)),o}return t=qe(t)||0,le(n)&&(c=!!n.leading,a=(h="maxWait"in n)?$e(qe(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),w.cancel=b,w.flush=x,w}var Qe=Ze,Je=d?d.performance:null,et=Je&&Je.now?function(){return Je.now()}:function(){return Date.now()},tt=function(){if(d){if(d.requestAnimationFrame)return function(e){d.requestAnimationFrame(e)};if(d.mozRequestAnimationFrame)return function(e){d.mozRequestAnimationFrame(e)};if(d.webkitRequestAnimationFrame)return function(e){d.webkitRequestAnimationFrame(e)};if(d.msRequestAnimationFrame)return function(e){d.msRequestAnimationFrame(e)}}return function(e){e&&setTimeout((function(){e(et())}),1e3/60)}}(),nt=function(e){return tt(e)},rt=et,it=9261,at=65599,ot=5381,st=function(e){for(var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:it;!(t=e.next()).done;)n=n*at+t.value|0;return n},lt=function(e){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:it)*at+e|0},ut=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ot;return(t<<5)+t+e|0},ct=function(e,t){return 2097152*e+t},ht=function(e){return 2097152*e[0]+e[1]},dt=function(e,t){return[lt(e[0],t[0]),ut(e[1],t[1])]},pt=function(e,t){var n={value:0,done:!1},r=0,i=e.length;return st({next:function(){return r<i?n.value=e[r++]:n.done=!0,n}},t)},gt=function(e,t){var n={value:0,done:!1},r=0,i=e.length;return st({next:function(){return r<i?n.value=e.charCodeAt(r++):n.done=!0,n}},t)},ft=function(){return vt(arguments)},vt=function(e){for(var t,n=0;n<e.length;n++){var r=e[n];t=0===n?gt(r):gt(r,t)}return t},yt=!0,mt=null!=console.warn,bt=null!=console.trace,xt=Number.MAX_SAFE_INTEGER||9007199254740991,wt=function(){return!0},Et=function(){return!1},Tt=function(){return 0},_t=function(){},Dt=function(e){throw new Error(e)},Ct=function(e){if(void 0===e)return yt;yt=!!e},Nt=function(e){Ct()&&(mt?console.warn(e):(console.log(e),bt&&console.trace()))},At=function(e){return Q({},e)},Lt=function(e){return null==e?e:w(e)?e.slice():E(e)?At(e):e},St=function(e){return e.slice()},Ot=function(e,t){for(t=e="";e++<36;t+=51*e&52?(15^e?8^Math.random()*(20^e?16:4):4).toString(16):"-");return t},It={},kt=function(){return It},Mt=function(e){var t=Object.keys(e);return function(n){for(var r={},i=0;i<t.length;i++){var a=t[i],o=null==n?void 0:n[a];r[a]=void 0===o?e[a]:o}return r}},Pt=function(e,t,n){for(var r=e.length-1;r>=0&&(e[r]!==t||(e.splice(r,1),!n));r--);},Rt=function(e){e.splice(0,e.length)},Bt=function(e,t){for(var n=0;n<t.length;n++){var r=t[n];e.push(r)}},Ft=function(e,t,n){return n&&(t=Y(n,t)),e[t]},zt=function(e,t,n,r){n&&(t=Y(n,t)),e[t]=r},Gt=function(){function e(){t(this,e),this._obj={}}return i(e,[{key:"set",value:function(e,t){return this._obj[e]=t,this}},{key:"delete",value:function(e){return this._obj[e]=void 0,this}},{key:"clear",value:function(){this._obj={}}},{key:"has",value:function(e){return void 0!==this._obj[e]}},{key:"get",value:function(e){return this._obj[e]}}]),e}(),Yt="undefined"!=typeof Map?Map:Gt,Xt="undefined",Vt=function(){function e(n){if(t(this,e),this._obj=Object.create(null),this.size=0,null!=n){var r;r=null!=n.instanceString&&n.instanceString()===this.instanceString()?n.toArray():n;for(var i=0;i<r.length;i++)this.add(r[i])}}return i(e,[{key:"instanceString",value:function(){return"set"}},{key:"add",value:function(e){var t=this._obj;1!==t[e]&&(t[e]=1,this.size++)}},{key:"delete",value:function(e){var t=this._obj;1===t[e]&&(t[e]=0,this.size--)}},{key:"clear",value:function(){this._obj=Object.create(null)}},{key:"has",value:function(e){return 1===this._obj[e]}},{key:"toArray",value:function(){var e=this;return Object.keys(this._obj).filter((function(t){return e.has(t)}))}},{key:"forEach",value:function(e,t){return this.toArray().forEach(e,t)}}]),e}(),Ut=("undefined"==typeof Set?"undefined":e(Set))!==Xt?Set:Vt,jt=function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0!==e&&void 0!==t&&S(e)){var r=t.group;if(null==r&&(r=t.data&&null!=t.data.source&&null!=t.data.target?"edges":"nodes"),"nodes"===r||"edges"===r){this.length=1,this[0]=this;var i=this._private={cy:e,single:!0,data:t.data||{},position:t.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:r,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!t.selected,selectable:void 0===t.selectable||!!t.selectable,locked:!!t.locked,grabbed:!1,grabbable:void 0===t.grabbable||!!t.grabbable,pannable:void 0===t.pannable?"edges"===r:!!t.pannable,active:!1,classes:new Ut,animation:{current:[],queue:[]},rscratch:{},scratch:t.scratch||{},edges:[],children:[],parent:t.parent&&t.parent.isNode()?t.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(null==i.position.x&&(i.position.x=0),null==i.position.y&&(i.position.y=0),t.renderedPosition){var a=t.renderedPosition,o=e.pan(),s=e.zoom();i.position={x:(a.x-o.x)/s,y:(a.y-o.y)/s}}var l=[];w(t.classes)?l=t.classes:b(t.classes)&&(l=t.classes.split(/\s+/));for(var u=0,c=l.length;u<c;u++){var h=l[u];h&&""!==h&&i.classes.add(h)}this.createEmitter();var d=t.style||t.css;d&&(Nt("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead."),this.style(d)),(void 0===n||n)&&this.restore()}else Dt("An element must be of type `nodes` or `edges`; you specified `"+r+"`")}else Dt("An element must have a core reference and parameters set")},Ht=function(e){return e={bfs:e.bfs||!e.dfs,dfs:e.dfs||!e.bfs},function(t,n,r){var i;E(t)&&!N(t)&&(t=(i=t).roots||i.root,n=i.visit,r=i.directed),r=2!==arguments.length||x(n)?r:n,n=x(n)?n:function(){};for(var a,o=this._private.cy,s=t=b(t)?this.filter(t):t,l=[],u=[],c={},h={},d={},p=0,g=this.byGroup(),f=g.nodes,v=g.edges,y=0;y<s.length;y++){var m=s[y],w=m.id();m.isNode()&&(l.unshift(m),e.bfs&&(d[w]=!0,u.push(m)),h[w]=0)}for(var T=function(){var t=e.bfs?l.shift():l.pop(),i=t.id();if(e.dfs){if(d[i])return"continue";d[i]=!0,u.push(t)}var o=h[i],s=c[i],g=null!=s?s.source():null,y=null!=s?s.target():null,m=null==s?void 0:t.same(g)?y[0]:g[0],b=void 0;if(!0===(b=n(t,s,m,p++,o)))return a=t,"break";if(!1===b)return"break";for(var x=t.connectedEdges().filter((function(e){return(!r||e.source().same(t))&&v.has(e)})),w=0;w<x.length;w++){var E=x[w],T=E.connectedNodes().filter((function(e){return!e.same(t)&&f.has(e)})),_=T.id();0===T.length||d[_]||(T=T[0],l.push(T),e.bfs&&(d[_]=!0,u.push(T)),c[_]=E,h[_]=h[i]+1)}};0!==l.length;){var _=T();if("continue"!==_&&"break"===_)break}for(var D=o.collection(),C=0;C<u.length;C++){var A=u[C],L=c[A.id()];null!=L&&D.push(L),D.push(A)}return{path:o.collection(D),found:o.collection(a)}}},qt={breadthFirstSearch:Ht({bfs:!0}),depthFirstSearch:Ht({dfs:!0})};qt.bfs=qt.breadthFirstSearch,qt.dfs=qt.depthFirstSearch;var Wt=ce((function(e,t){(function(){var t,n,r,i,a,o,s,l,u,c,h,d,p,g,f;r=Math.floor,c=Math.min,n=function(e,t){return e<t?-1:e>t?1:0},u=function(e,t,i,a,o){var s;if(null==i&&(i=0),null==o&&(o=n),i<0)throw new Error("lo must be non-negative");for(null==a&&(a=e.length);i<a;)o(t,e[s=r((i+a)/2)])<0?a=s:i=s+1;return[].splice.apply(e,[i,i-i].concat(t)),t},o=function(e,t,r){return null==r&&(r=n),e.push(t),g(e,0,e.length-1,r)},a=function(e,t){var r,i;return null==t&&(t=n),r=e.pop(),e.length?(i=e[0],e[0]=r,f(e,0,t)):i=r,i},l=function(e,t,r){var i;return null==r&&(r=n),i=e[0],e[0]=t,f(e,0,r),i},s=function(e,t,r){var i;return null==r&&(r=n),e.length&&r(e[0],t)<0&&(t=(i=[e[0],t])[0],e[0]=i[1],f(e,0,r)),t},i=function(e,t){var i,a,o,s,l,u;for(null==t&&(t=n),l=[],a=0,o=(s=function(){u=[];for(var t=0,n=r(e.length/2);0<=n?t<n:t>n;0<=n?t++:t--)u.push(t);return u}.apply(this).reverse()).length;a<o;a++)i=s[a],l.push(f(e,i,t));return l},p=function(e,t,r){var i;if(null==r&&(r=n),-1!==(i=e.indexOf(t)))return g(e,0,i,r),f(e,i,r)},h=function(e,t,r){var a,o,l,u,c;if(null==r&&(r=n),!(o=e.slice(0,t)).length)return o;for(i(o,r),l=0,u=(c=e.slice(t)).length;l<u;l++)a=c[l],s(o,a,r);return o.sort(r).reverse()},d=function(e,t,r){var o,s,l,h,d,p,g,f,v;if(null==r&&(r=n),10*t<=e.length){if(!(l=e.slice(0,t).sort(r)).length)return l;for(s=l[l.length-1],h=0,p=(g=e.slice(t)).length;h<p;h++)r(o=g[h],s)<0&&(u(l,o,0,null,r),l.pop(),s=l[l.length-1]);return l}for(i(e,r),v=[],d=0,f=c(t,e.length);0<=f?d<f:d>f;0<=f?++d:--d)v.push(a(e,r));return v},g=function(e,t,r,i){var a,o,s;for(null==i&&(i=n),a=e[r];r>t&&i(a,o=e[s=r-1>>1])<0;)e[r]=o,r=s;return e[r]=a},f=function(e,t,r){var i,a,o,s,l;for(null==r&&(r=n),a=e.length,l=t,o=e[t],i=2*t+1;i<a;)(s=i+1)<a&&!(r(e[i],e[s])<0)&&(i=s),e[t]=e[i],i=2*(t=i)+1;return e[t]=o,g(e,l,t,r)},t=function(){function e(e){this.cmp=null!=e?e:n,this.nodes=[]}return e.push=o,e.pop=a,e.replace=l,e.pushpop=s,e.heapify=i,e.updateItem=p,e.nlargest=h,e.nsmallest=d,e.prototype.push=function(e){return o(this.nodes,e,this.cmp)},e.prototype.pop=function(){return a(this.nodes,this.cmp)},e.prototype.peek=function(){return this.nodes[0]},e.prototype.contains=function(e){return-1!==this.nodes.indexOf(e)},e.prototype.replace=function(e){return l(this.nodes,e,this.cmp)},e.prototype.pushpop=function(e){return s(this.nodes,e,this.cmp)},e.prototype.heapify=function(){return i(this.nodes,this.cmp)},e.prototype.updateItem=function(e){return p(this.nodes,e,this.cmp)},e.prototype.clear=function(){return this.nodes=[]},e.prototype.empty=function(){return 0===this.nodes.length},e.prototype.size=function(){return this.nodes.length},e.prototype.clone=function(){var t;return(t=new e).nodes=this.nodes.slice(0),t},e.prototype.toArray=function(){return this.nodes.slice(0)},e.prototype.insert=e.prototype.push,e.prototype.top=e.prototype.peek,e.prototype.front=e.prototype.peek,e.prototype.has=e.prototype.contains,e.prototype.copy=e.prototype.clone,e}(),function(t,n){e.exports=n()}(0,(function(){return t}))}).call(ue)})),$t=Wt,Kt=Mt({root:null,weight:function(e){return 1},directed:!1}),Zt={dijkstra:function(e){if(!E(e)){var t=arguments;e={root:t[0],weight:t[1],directed:t[2]}}var n=Kt(e),r=n.root,i=n.weight,a=n.directed,o=this,s=i,l=b(r)?this.filter(r)[0]:r[0],u={},c={},h={},d=this.byGroup(),p=d.nodes,g=d.edges;g.unmergeBy((function(e){return e.isLoop()}));for(var f=function(e){return u[e.id()]},v=function(e,t){u[e.id()]=t,y.updateItem(e)},y=new $t((function(e,t){return f(e)-f(t)})),m=0;m<p.length;m++){var x=p[m];u[x.id()]=x.same(l)?0:1/0,y.push(x)}for(var w=function(e,t){for(var n,r=(a?e.edgesTo(t):e.edgesWith(t)).intersect(g),i=1/0,o=0;o<r.length;o++){var l=r[o],u=s(l);(u<i||!n)&&(i=u,n=l)}return{edge:n,dist:i}};y.size()>0;){var T=y.pop(),_=f(T),D=T.id();if(h[D]=_,_!==1/0)for(var C=T.neighborhood().intersect(p),N=0;N<C.length;N++){var A=C[N],L=A.id(),S=w(T,A),O=_+S.dist;O<f(A)&&(v(A,O),c[L]={node:T,edge:S.edge})}}return{distanceTo:function(e){var t=b(e)?p.filter(e)[0]:e[0];return h[t.id()]},pathTo:function(e){var t=b(e)?p.filter(e)[0]:e[0],n=[],r=t,i=r.id();if(t.length>0)for(n.unshift(t);c[i];){var a=c[i];n.unshift(a.edge),n.unshift(a.node),i=(r=a.node).id()}return o.spawn(n)}}}},Qt={kruskal:function(e){e=e||function(e){return 1};for(var t=this.byGroup(),n=t.nodes,r=t.edges,i=n.length,a=new Array(i),o=n,s=function(e){for(var t=0;t<a.length;t++)if(a[t].has(e))return t},l=0;l<i;l++)a[l]=this.spawn(n[l]);for(var u=r.sort((function(t,n){return e(t)-e(n)})),c=0;c<u.length;c++){var h=u[c],d=h.source()[0],p=h.target()[0],g=s(d),f=s(p),v=a[g],y=a[f];g!==f&&(o.merge(h),v.merge(y),a.splice(f,1))}return o}},Jt=Mt({root:null,goal:null,weight:function(e){return 1},heuristic:function(e){return 0},directed:!1}),en={aStar:function(e){var t=this.cy(),n=Jt(e),r=n.root,i=n.goal,a=n.heuristic,o=n.directed,s=n.weight;r=t.collection(r)[0],i=t.collection(i)[0];var l,u,c=r.id(),h=i.id(),d={},p={},g={},f=new $t((function(e,t){return p[e.id()]-p[t.id()]})),v=new Ut,y={},m={},b=function(e,t){f.push(e),v.add(t)},x=function(){l=f.pop(),u=l.id(),v.delete(u)},w=function(e){return v.has(e)};b(r,c),d[c]=0,p[c]=a(r);for(var E=0;f.size()>0;){if(x(),E++,u===h){for(var T=[],_=i,D=h,C=m[D];T.unshift(_),null!=C&&T.unshift(C),null!=(_=y[D]);)C=m[D=_.id()];return{found:!0,distance:d[u],path:this.spawn(T),steps:E}}g[u]=!0;for(var N=l._private.edges,A=0;A<N.length;A++){var L=N[A];if(this.hasElementWithId(L.id())&&(!o||L.data("source")===u)){var S=L.source(),O=L.target(),I=S.id()!==u?S:O,k=I.id();if(this.hasElementWithId(k)&&!g[k]){var M=d[u]+s(L);w(k)?M<d[k]&&(d[k]=M,p[k]=M+a(I),y[k]=l,m[k]=L):(d[k]=M,p[k]=M+a(I),b(I,k),y[k]=l,m[k]=L)}}}}return{found:!1,distance:void 0,path:void 0,steps:E}}},tn=Mt({weight:function(e){return 1},directed:!1}),nn={floydWarshall:function(e){for(var t=this.cy(),n=tn(e),r=n.weight,i=n.directed,a=r,o=this.byGroup(),s=o.nodes,l=o.edges,u=s.length,c=u*u,h=function(e){return s.indexOf(e)},d=function(e){return s[e]},p=new Array(c),g=0;g<c;g++){var f=g%u,v=(g-f)/u;p[g]=v===f?0:1/0}for(var y=new Array(c),m=new Array(c),x=0;x<l.length;x++){var w=l[x],E=w.source()[0],T=w.target()[0];if(E!==T){var _=h(E),D=h(T),C=_*u+D,N=a(w);if(p[C]>N&&(p[C]=N,y[C]=D,m[C]=w),!i){var A=D*u+_;!i&&p[A]>N&&(p[A]=N,y[A]=_,m[A]=w)}}}for(var L=0;L<u;L++)for(var S=0;S<u;S++)for(var O=S*u+L,I=0;I<u;I++){var k=S*u+I,M=L*u+I;p[O]+p[M]<p[k]&&(p[k]=p[O]+p[M],y[k]=y[O])}var P=function(e){return(b(e)?t.filter(e):e)[0]},R=function(e){return h(P(e))},B={distance:function(e,t){var n=R(e),r=R(t);return p[n*u+r]},path:function(e,n){var r=R(e),i=R(n),a=d(r);if(r===i)return a.collection();if(null==y[r*u+i])return t.collection();var o,s=t.collection(),l=r;for(s.merge(a);r!==i;)l=r,r=y[r*u+i],o=m[l*u+r],s.merge(o),s.merge(d(r));return s}};return B}},rn=Mt({weight:function(e){return 1},directed:!1,root:null}),an={bellmanFord:function(e){var t=this,n=rn(e),r=n.weight,i=n.directed,a=n.root,o=r,s=this,l=this.cy(),u=this.byGroup(),c=u.edges,h=u.nodes,d=h.length,p=new Yt,g=!1,f=[];a=l.collection(a)[0],c.unmergeBy((function(e){return e.isLoop()}));for(var v=c.length,y=function(e){var t=p.get(e.id());return t||(t={},p.set(e.id(),t)),t},m=function(e){return(b(e)?l.$(e):e)[0]},x=function(e){return y(m(e)).dist},w=function(e){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a,r=[],i=m(e);;){if(null==i)return t.spawn();var o=y(i),l=o.edge,u=o.pred;if(r.unshift(i[0]),i.same(n)&&r.length>0)break;null!=l&&r.unshift(l),i=u}return s.spawn(r)},E=0;E<d;E++){var T=h[E],_=y(T);T.same(a)?_.dist=0:_.dist=1/0,_.pred=null,_.edge=null}for(var D=!1,C=function(e,t,n,r,i,a){var o=r.dist+a;o<i.dist&&!n.same(r.edge)&&(i.dist=o,i.pred=e,i.edge=n,D=!0)},N=1;N<d;N++){D=!1;for(var A=0;A<v;A++){var L=c[A],S=L.source(),O=L.target(),I=o(L),k=y(S),M=y(O);C(S,O,L,k,M,I),i||C(O,S,L,M,k,I)}if(!D)break}if(D)for(var P=[],R=0;R<v;R++){var B=c[R],F=B.source(),z=B.target(),G=o(B),Y=y(F).dist,X=y(z).dist;if(Y+G<X||!i&&X+G<Y){if(g||(Nt("Graph contains a negative weight cycle for Bellman-Ford"),g=!0),!1===e.findNegativeWeightCycles)break;var V=[];Y+G<X&&V.push(F),!i&&X+G<Y&&V.push(z);for(var U=V.length,j=0;j<U;j++){var H=V[j],q=[H];q.push(y(H).edge);for(var W=y(H).pred;-1===q.indexOf(W);)q.push(W),q.push(y(W).edge),W=y(W).pred;for(var $=(q=q.slice(q.indexOf(W)))[0].id(),K=0,Z=2;Z<q.length;Z+=2)q[Z].id()<$&&($=q[Z].id(),K=Z);(q=q.slice(K).concat(q.slice(0,K))).push(q[0]);var Q=q.map((function(e){return e.id()})).join(",");-1===P.indexOf(Q)&&(f.push(s.spawn(q)),P.push(Q))}}}return{distanceTo:x,pathTo:w,hasNegativeWeightCycle:g,negativeWeightCycles:f}}},on=Math.sqrt(2),sn=function(e,t,n){0===n.length&&Dt("Karger-Stein must be run on a connected (sub)graph");for(var r=n[e],i=r[1],a=r[2],o=t[i],s=t[a],l=n,u=l.length-1;u>=0;u--){var c=l[u],h=c[1],d=c[2];(t[h]===o&&t[d]===s||t[h]===s&&t[d]===o)&&l.splice(u,1)}for(var p=0;p<l.length;p++){var g=l[p];g[1]===s?(l[p]=g.slice(),l[p][1]=o):g[2]===s&&(l[p]=g.slice(),l[p][2]=o)}for(var f=0;f<t.length;f++)t[f]===s&&(t[f]=o);return l},ln=function(e,t,n,r){for(;n>r;){var i=Math.floor(Math.random()*t.length);t=sn(i,e,t),n--}return t},un={kargerStein:function(){var e=this,t=this.byGroup(),n=t.nodes,r=t.edges;r.unmergeBy((function(e){return e.isLoop()}));var i=n.length,a=r.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),s=Math.floor(i/on);if(!(i<2)){for(var l=[],u=0;u<a;u++){var c=r[u];l.push([u,n.indexOf(c.source()),n.indexOf(c.target())])}for(var h=1/0,d=[],p=new Array(i),g=new Array(i),f=new Array(i),v=function(e,t){for(var n=0;n<i;n++)t[n]=e[n]},y=0;y<=o;y++){for(var m=0;m<i;m++)g[m]=m;var b=ln(g,l.slice(),i,s),x=b.slice();v(g,f);var w=ln(g,b,s,2),E=ln(f,x,s,2);w.length<=E.length&&w.length<h?(h=w.length,d=w,v(g,p)):E.length<=w.length&&E.length<h&&(h=E.length,d=E,v(f,p))}for(var T=this.spawn(d.map((function(e){return r[e[0]]}))),_=this.spawn(),D=this.spawn(),C=p[0],N=0;N<p.length;N++){var A=p[N],L=n[N];A===C?_.merge(L):D.merge(L)}var S=function(t){var n=e.spawn();return t.forEach((function(t){n.merge(t),t.connectedEdges().forEach((function(t){e.contains(t)&&!T.contains(t)&&n.merge(t)}))})),n},O=[S(_),S(D)];return{cut:T,components:O,partition1:_,partition2:D}}Dt("At least 2 nodes are required for Karger-Stein algorithm")}},cn=function(e){return{x:e.x,y:e.y}},hn=function(e,t,n){return{x:e.x*t+n.x,y:e.y*t+n.y}},dn=function(e,t,n){return{x:(e.x-n.x)/t,y:(e.y-n.y)/t}},pn=function(e){return{x:e[0],y:e[1]}},gn=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=1/0,i=t;i<n;i++){var a=e[i];isFinite(a)&&(r=Math.min(a,r))}return r},fn=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=-1/0,i=t;i<n;i++){var a=e[i];isFinite(a)&&(r=Math.max(a,r))}return r},vn=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=0,i=0,a=t;a<n;a++){var o=e[a];isFinite(o)&&(r+=o,i++)}return r/i},yn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];arguments.length>3&&void 0!==arguments[3]&&!arguments[3]?(n<e.length&&e.splice(n,e.length-n),t>0&&e.splice(0,t)):e=e.slice(t,n);for(var a=0,o=e.length-1;o>=0;o--){var s=e[o];i?isFinite(s)||(e[o]=-1/0,a++):e.splice(o,1)}r&&e.sort((function(e,t){return e-t}));var l=e.length,u=Math.floor(l/2);return l%2!=0?e[u+1+a]:(e[u-1+a]+e[u+a])/2},mn=function(e){return Math.PI*e/180},bn=function(e,t){return Math.atan2(t,e)-Math.PI/2},xn=Math.log2||function(e){return Math.log(e)/Math.log(2)},wn=function(e){return e>0?1:e<0?-1:0},En=function(e,t){return Math.sqrt(Tn(e,t))},Tn=function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r},_n=function(e){for(var t=e.length,n=0,r=0;r<t;r++)n+=e[r];for(var i=0;i<t;i++)e[i]=e[i]/n;return e},Dn=function(e,t,n,r){return(1-r)*(1-r)*e+2*(1-r)*r*t+r*r*n},Cn=function(e,t,n,r){return{x:Dn(e.x,t.x,n.x,r),y:Dn(e.y,t.y,n.y,r)}},Nn=function(e,t,n,r){var i={x:t.x-e.x,y:t.y-e.y},a=En(e,t),o={x:i.x/a,y:i.y/a};return n=null==n?0:n,r=null!=r?r:n*a,{x:e.x+o.x*r,y:e.y+o.y*r}},An=function(e,t,n){return Math.max(e,Math.min(n,t))},Ln=function(e){if(null==e)return{x1:1/0,y1:1/0,x2:-1/0,y2:-1/0,w:0,h:0};if(null!=e.x1&&null!=e.y1){if(null!=e.x2&&null!=e.y2&&e.x2>=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(null!=e.w&&null!=e.h&&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}}},Sn=function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},On=function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},In=function(e,t){e.x1=Math.min(e.x1,t.x1),e.x2=Math.max(e.x2,t.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,t.y1),e.y2=Math.max(e.y2,t.y2),e.h=e.y2-e.y1},kn=function(e,t,n){e.x1=Math.min(e.x1,t),e.x2=Math.max(e.x2,t),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},Mn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e.x1-=t,e.x2+=t,e.y1-=t,e.y2+=t,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},Pn=function(e){var t,n,r,i,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0];if(1===a.length)t=n=r=i=a[0];else if(2===a.length)t=r=a[0],i=n=a[1];else if(4===a.length){var s=o(a,4);t=s[0],n=s[1],r=s[2],i=s[3]}return e.x1-=i,e.x2+=n,e.y1-=t,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},Rn=function(e,t){e.x1=t.x1,e.y1=t.y1,e.x2=t.x2,e.y2=t.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},Bn=function(e,t){return!(e.x1>t.x2||t.x1>e.x2||e.x2<t.x1||t.x2<e.x1||e.y2<t.y1||t.y2<e.y1||e.y1>t.y2||t.y1>e.y2)},Fn=function(e,t,n){return e.x1<=t&&t<=e.x2&&e.y1<=n&&n<=e.y2},zn=function(e,t){return Fn(e,t.x,t.y)},Gn=function(e,t){return Fn(e,t.x1,t.y1)&&Fn(e,t.x2,t.y2)},Yn=function(e,t,n,r,i,a,o){var s,l=cr(i,a),u=i/2,c=a/2,h=r-c-o;if((s=rr(e,t,n,r,n-u+l-o,h,n+u-l+o,h,!1)).length>0)return s;var d=n+u+o;if((s=rr(e,t,n,r,d,r-c+l-o,d,r+c-l+o,!1)).length>0)return s;var p=r+c+o;if((s=rr(e,t,n,r,n-u+l-o,p,n+u-l+o,p,!1)).length>0)return s;var g,f=n-u-o;if((s=rr(e,t,n,r,f,r-c+l-o,f,r+c-l+o,!1)).length>0)return s;var v=n-u+l,y=r-c+l;if((g=tr(e,t,n,r,v,y,l+o)).length>0&&g[0]<=v&&g[1]<=y)return[g[0],g[1]];var m=n+u-l,b=r-c+l;if((g=tr(e,t,n,r,m,b,l+o)).length>0&&g[0]>=m&&g[1]<=b)return[g[0],g[1]];var x=n+u-l,w=r+c-l;if((g=tr(e,t,n,r,x,w,l+o)).length>0&&g[0]>=x&&g[1]>=w)return[g[0],g[1]];var E=n-u+l,T=r+c-l;return(g=tr(e,t,n,r,E,T,l+o)).length>0&&g[0]<=E&&g[1]>=T?[g[0],g[1]]:[]},Xn=function(e,t,n,r,i,a,o){var s=o,l=Math.min(n,i),u=Math.max(n,i),c=Math.min(r,a),h=Math.max(r,a);return l-s<=e&&e<=u+s&&c-s<=t&&t<=h+s},Vn=function(e,t,n,r,i,a,o,s,l){var u={x1:Math.min(n,o,i)-l,x2:Math.max(n,o,i)+l,y1:Math.min(r,s,a)-l,y2:Math.max(r,s,a)+l};return!(e<u.x1||e>u.x2||t<u.y1||t>u.y2)},Un=function(e,t,n,r){var i=t*t-4*e*(n-=r);if(i<0)return[];var a=Math.sqrt(i),o=2*e;return[(-t+a)/o,(-t-a)/o]},jn=function(e,t,n,r,i){var a,o,s,l,u,c,h,d;return 0===e&&(e=1e-5),s=-27*(r/=e)+(t/=e)*(9*(n/=e)-t*t*2),a=(o=(3*n-t*t)/9)*o*o+(s/=54)*s,i[1]=0,h=t/3,a>0?(u=(u=s+Math.sqrt(a))<0?-Math.pow(-u,1/3):Math.pow(u,1/3),c=(c=s-Math.sqrt(a))<0?-Math.pow(-c,1/3):Math.pow(c,1/3),i[0]=-h+u+c,h+=(u+c)/2,i[4]=i[2]=-h,h=Math.sqrt(3)*(-c+u)/2,i[3]=h,void(i[5]=-h)):(i[5]=i[3]=0,0===a?(d=s<0?-Math.pow(-s,1/3):Math.pow(s,1/3),i[0]=2*d-h,void(i[4]=i[2]=-(d+h))):(l=(o=-o)*o*o,l=Math.acos(s/Math.sqrt(l)),d=2*Math.sqrt(o),i[0]=-h+d*Math.cos(l/3),i[2]=-h+d*Math.cos((l+2*Math.PI)/3),void(i[4]=-h+d*Math.cos((l+4*Math.PI)/3))))},Hn=function(e,t,n,r,i,a,o,s){var l=[];jn(1*n*n-4*n*i+2*n*o+4*i*i-4*i*o+o*o+r*r-4*r*a+2*r*s+4*a*a-4*a*s+s*s,9*n*i-3*n*n-3*n*o-6*i*i+3*i*o+9*r*a-3*r*r-3*r*s-6*a*a+3*a*s,3*n*n-6*n*i+n*o-n*e+2*i*i+2*i*e-o*e+3*r*r-6*r*a+r*s-r*t+2*a*a+2*a*t-s*t,1*n*i-n*n+n*e-i*e+r*a-r*r+r*t-a*t,l);for(var u=1e-7,c=[],h=0;h<6;h+=2)Math.abs(l[h+1])<u&&l[h]>=0&&l[h]<=1&&c.push(l[h]);c.push(1),c.push(0);for(var d,p,g,f=-1,v=0;v<c.length;v++)d=Math.pow(1-c[v],2)*n+2*(1-c[v])*c[v]*i+c[v]*c[v]*o,p=Math.pow(1-c[v],2)*r+2*(1-c[v])*c[v]*a+c[v]*c[v]*s,g=Math.pow(d-e,2)+Math.pow(p-t,2),f>=0?g<f&&(f=g):f=g;return f},qn=function(e,t,n,r,i,a){var o=[e-n,t-r],s=[i-n,a-r],l=s[0]*s[0]+s[1]*s[1],u=o[0]*o[0]+o[1]*o[1],c=o[0]*s[0]+o[1]*s[1],h=c*c/l;return c<0?u:h>l?(e-i)*(e-i)+(t-a)*(t-a):u-h},Wn=function(e,t,n){for(var r,i,a,o,s=0,l=0;l<n.length/2;l++)if(r=n[2*l],i=n[2*l+1],l+1<n.length/2?(a=n[2*(l+1)],o=n[2*(l+1)+1]):(a=n[2*(l+1-n.length/2)],o=n[2*(l+1-n.length/2)+1]),r==e&&a==e);else{if(!(r>=e&&e>=a||r<=e&&e<=a))continue;(e-r)/(a-r)*(o-i)+i>t&&s++}return s%2!=0},$n=function(e,t,n,r,i,a,o,s,l){var u,c=new Array(n.length);null!=s[0]?(u=Math.atan(s[1]/s[0]),s[0]<0?u+=Math.PI/2:u=-u-Math.PI/2):u=s;for(var h,d=Math.cos(-u),p=Math.sin(-u),g=0;g<c.length/2;g++)c[2*g]=a/2*(n[2*g]*d-n[2*g+1]*p),c[2*g+1]=o/2*(n[2*g+1]*d+n[2*g]*p),c[2*g]+=r,c[2*g+1]+=i;if(l>0){var f=Qn(c,-l);h=Zn(f)}else h=c;return Wn(e,t,h)},Kn=function(e,t,n,r,i,a,o){for(var s=new Array(n.length),l=a/2,u=o/2,c=hr(a,o),h=c*c,d=0;d<n.length/4;d++){var p=void 0,g=void 0;p=0===d?n.length-2:4*d-2,g=4*d+2;var f=r+l*n[4*d],v=i+u*n[4*d+1],y=-n[p]*n[g]-n[p+1]*n[g+1],m=c/Math.tan(Math.acos(y)/2),b=f-m*n[p],x=v-m*n[p+1],w=f+m*n[g],E=v+m*n[g+1];s[4*d]=b,s[4*d+1]=x,s[4*d+2]=w,s[4*d+3]=E;var T=n[p+1],_=-n[p];T*n[g]+_*n[g+1]<0&&(T*=-1,_*=-1);var D=b+T*c,C=x+_*c;if(Math.pow(D-e,2)+Math.pow(C-t,2)<=h)return!0}return Wn(e,t,s)},Zn=function(e){for(var t,n,r,i,a,o,s,l,u=new Array(e.length/2),c=0;c<e.length/4;c++){t=e[4*c],n=e[4*c+1],r=e[4*c+2],i=e[4*c+3],c<e.length/4-1?(a=e[4*(c+1)],o=e[4*(c+1)+1],s=e[4*(c+1)+2],l=e[4*(c+1)+3]):(a=e[0],o=e[1],s=e[2],l=e[3]);var h=rr(t,n,r,i,a,o,s,l,!0);u[2*c]=h[0],u[2*c+1]=h[1]}return u},Qn=function(e,t){for(var n,r,i,a,o=new Array(2*e.length),s=0;s<e.length/2;s++){n=e[2*s],r=e[2*s+1],s<e.length/2-1?(i=e[2*(s+1)],a=e[2*(s+1)+1]):(i=e[0],a=e[1]);var l=a-r,u=-(i-n),c=Math.sqrt(l*l+u*u),h=l/c,d=u/c;o[4*s]=n+h*t,o[4*s+1]=r+d*t,o[4*s+2]=i+h*t,o[4*s+3]=a+d*t}return o},Jn=function(e,t,n,r,i,a){var o=n-e,s=r-t;o/=i,s/=a;var l=Math.sqrt(o*o+s*s),u=l-1;if(u<0)return[];var c=u/l;return[(n-e)*c+e,(r-t)*c+t]},er=function(e,t,n,r,i,a,o){return e-=i,t-=a,(e/=n/2+o)*e+(t/=r/2+o)*t<=1},tr=function(e,t,n,r,i,a,o){var s=[n-e,r-t],l=[e-i,t-a],u=s[0]*s[0]+s[1]*s[1],c=2*(l[0]*s[0]+l[1]*s[1]),h=c*c-4*u*(l[0]*l[0]+l[1]*l[1]-o*o);if(h<0)return[];var d=(-c+Math.sqrt(h))/(2*u),p=(-c-Math.sqrt(h))/(2*u),g=Math.min(d,p),f=Math.max(d,p),v=[];if(g>=0&&g<=1&&v.push(g),f>=0&&f<=1&&v.push(f),0===v.length)return[];var y=v[0]*s[0]+e,m=v[0]*s[1]+t;return v.length>1?v[0]==v[1]?[y,m]:[y,m,v[1]*s[0]+e,v[1]*s[1]+t]:[y,m]},nr=function(e,t,n){return t<=e&&e<=n||n<=e&&e<=t?e:e<=t&&t<=n||n<=t&&t<=e?t:n},rr=function(e,t,n,r,i,a,o,s,l){var u=e-i,c=n-e,h=o-i,d=t-a,p=r-t,g=s-a,f=h*d-g*u,v=c*d-p*u,y=g*c-h*p;if(0!==y){var m=f/y,b=v/y,x=.001,w=0-x,E=1+x;return w<=m&&m<=E&&w<=b&&b<=E||l?[e+m*c,t+m*p]:[]}return 0===f||0===v?nr(e,n,o)===o?[o,s]:nr(e,n,i)===i?[i,a]:nr(i,o,n)===n?[n,r]:[]:[]},ir=function(e,t,n,r,i,a,o,s){var l,u,c,h,d,p,g=[],f=new Array(n.length),v=!0;if(null==a&&(v=!1),v){for(var y=0;y<f.length/2;y++)f[2*y]=n[2*y]*a+r,f[2*y+1]=n[2*y+1]*o+i;if(s>0){var m=Qn(f,-s);u=Zn(m)}else u=f}else u=n;for(var b=0;b<u.length/2;b++)c=u[2*b],h=u[2*b+1],b<u.length/2-1?(d=u[2*(b+1)],p=u[2*(b+1)+1]):(d=u[0],p=u[1]),0!==(l=rr(e,t,r,i,c,h,d,p)).length&&g.push(l[0],l[1]);return g},ar=function(e,t,n,r,i,a,o,s){for(var l,u=[],c=new Array(n.length),h=a/2,d=o/2,p=hr(a,o),g=0;g<n.length/4;g++){var f=void 0,v=void 0;f=0===g?n.length-2:4*g-2,v=4*g+2;var y=r+h*n[4*g],m=i+d*n[4*g+1],b=-n[f]*n[v]-n[f+1]*n[v+1],x=p/Math.tan(Math.acos(b)/2),w=y-x*n[f],E=m-x*n[f+1],T=y+x*n[v],_=m+x*n[v+1];0===g?(c[n.length-2]=w,c[n.length-1]=E):(c[4*g-2]=w,c[4*g-1]=E),c[4*g]=T,c[4*g+1]=_;var D=n[f+1],C=-n[f];D*n[v]+C*n[v+1]<0&&(D*=-1,C*=-1),0!==(l=tr(e,t,r,i,w+D*p,E+C*p,p)).length&&u.push(l[0],l[1])}for(var N=0;N<c.length/4;N++)0!==(l=rr(e,t,r,i,c[4*N],c[4*N+1],c[4*N+2],c[4*N+3],!1)).length&&u.push(l[0],l[1]);if(u.length>2){for(var A=[u[0],u[1]],L=Math.pow(A[0]-e,2)+Math.pow(A[1]-t,2),S=1;S<u.length/2;S++){var O=Math.pow(u[2*S]-e,2)+Math.pow(u[2*S+1]-t,2);O<=L&&(A[0]=u[2*S],A[1]=u[2*S+1],L=O)}return A}return u},or=function(e,t,n){var r=[e[0]-t[0],e[1]-t[1]],i=Math.sqrt(r[0]*r[0]+r[1]*r[1]),a=(i-n)/i;return a<0&&(a=1e-5),[t[0]+a*r[0],t[1]+a*r[1]]},sr=function(e,t){var n=ur(e,t);return n=lr(n)},lr=function(e){for(var t,n,r=e.length/2,i=1/0,a=1/0,o=-1/0,s=-1/0,l=0;l<r;l++)t=e[2*l],n=e[2*l+1],i=Math.min(i,t),o=Math.max(o,t),a=Math.min(a,n),s=Math.max(s,n);for(var u=2/(o-i),c=2/(s-a),h=0;h<r;h++)t=e[2*h]=e[2*h]*u,n=e[2*h+1]=e[2*h+1]*c,i=Math.min(i,t),o=Math.max(o,t),a=Math.min(a,n),s=Math.max(s,n);if(a<-1)for(var d=0;d<r;d++)n=e[2*d+1]=e[2*d+1]+(-1-a);return e},ur=function(e,t){var n=1/e*2*Math.PI,r=e%2==0?Math.PI/2+n/2:Math.PI/2;r+=t;for(var i,a=new Array(2*e),o=0;o<e;o++)i=o*n+r,a[2*o]=Math.cos(i),a[2*o+1]=Math.sin(-i);return a},cr=function(e,t){return Math.min(e/4,t/4,8)},hr=function(e,t){return Math.min(e/10,t/10,8)},dr=function(){return 8},pr=function(e,t,n){return[e-2*t+n,2*(t-e),e]},gr=function(e,t){return{heightOffset:Math.min(15,.05*t),widthOffset:Math.min(100,.25*e),ctrlPtOffsetPct:.05}},fr=Mt({dampingFactor:.8,precision:1e-6,iterations:200,weight:function(e){return 1}}),vr={pageRank:function(e){for(var t=fr(e),n=t.dampingFactor,r=t.precision,i=t.iterations,a=t.weight,o=this._private.cy,s=this.byGroup(),l=s.nodes,u=s.edges,c=l.length,h=c*c,d=u.length,p=new Array(h),g=new Array(c),f=(1-n)/c,v=0;v<c;v++){for(var y=0;y<c;y++)p[v*c+y]=0;g[v]=0}for(var m=0;m<d;m++){var b=u[m],x=b.data("source"),w=b.data("target");if(x!==w){var E=l.indexOfId(x),T=l.indexOfId(w),_=a(b);p[T*c+E]+=_,g[E]+=_}}for(var D=1/c+f,C=0;C<c;C++)if(0===g[C])for(var N=0;N<c;N++)p[N*c+C]=D;else for(var A=0;A<c;A++){var L=A*c+C;p[L]=p[L]/g[C]+f}for(var S,O=new Array(c),I=new Array(c),k=0;k<c;k++)O[k]=1;for(var M=0;M<i;M++){for(var P=0;P<c;P++)I[P]=0;for(var R=0;R<c;R++)for(var B=0;B<c;B++){var F=R*c+B;I[R]+=p[F]*O[B]}_n(I),S=O,O=I,I=S;for(var z=0,G=0;G<c;G++){var Y=S[G]-O[G];z+=Y*Y}if(z<r)break}return{rank:function(e){return e=o.collection(e)[0],O[l.indexOf(e)]}}}},yr=Mt({root:null,weight:function(e){return 1},directed:!1,alpha:0}),mr={degreeCentralityNormalized:function(e){e=yr(e);var t=this.cy(),n=this.nodes(),r=n.length;if(e.directed){for(var i={},a={},o=0,s=0,l=0;l<r;l++){var u=n[l],c=u.id();e.root=u;var h=this.degreeCentrality(e);o<h.indegree&&(o=h.indegree),s<h.outdegree&&(s=h.outdegree),i[c]=h.indegree,a[c]=h.outdegree}return{indegree:function(e){return 0==o?0:(b(e)&&(e=t.filter(e)),i[e.id()]/o)},outdegree:function(e){return 0===s?0:(b(e)&&(e=t.filter(e)),a[e.id()]/s)}}}for(var d={},p=0,g=0;g<r;g++){var f=n[g];e.root=f;var v=this.degreeCentrality(e);p<v.degree&&(p=v.degree),d[f.id()]=v.degree}return{degree:function(e){return 0===p?0:(b(e)&&(e=t.filter(e)),d[e.id()]/p)}}},degreeCentrality:function(e){e=yr(e);var t=this.cy(),n=this,r=e,i=r.root,a=r.weight,o=r.directed,s=r.alpha;if(i=t.collection(i)[0],o){for(var l=i.connectedEdges(),u=l.filter((function(e){return e.target().same(i)&&n.has(e)})),c=l.filter((function(e){return e.source().same(i)&&n.has(e)})),h=u.length,d=c.length,p=0,g=0,f=0;f<u.length;f++)p+=a(u[f]);for(var v=0;v<c.length;v++)g+=a(c[v]);return{indegree:Math.pow(h,1-s)*Math.pow(p,s),outdegree:Math.pow(d,1-s)*Math.pow(g,s)}}for(var y=i.connectedEdges().intersection(n),m=y.length,b=0,x=0;x<y.length;x++)b+=a(y[x]);return{degree:Math.pow(m,1-s)*Math.pow(b,s)}}};mr.dc=mr.degreeCentrality,mr.dcn=mr.degreeCentralityNormalised=mr.degreeCentralityNormalized;var br=Mt({harmonic:!0,weight:function(){return 1},directed:!1,root:null}),xr={closenessCentralityNormalized:function(e){for(var t=br(e),n=t.harmonic,r=t.weight,i=t.directed,a=this.cy(),o={},s=0,l=this.nodes(),u=this.floydWarshall({weight:r,directed:i}),c=0;c<l.length;c++){for(var h=0,d=l[c],p=0;p<l.length;p++)if(c!==p){var g=u.distance(d,l[p]);h+=n?1/g:g}n||(h=1/h),s<h&&(s=h),o[d.id()]=h}return{closeness:function(e){return 0==s?0:(e=b(e)?a.filter(e)[0].id():e.id(),o[e]/s)}}},closenessCentrality:function(e){var t=br(e),n=t.root,r=t.weight,i=t.directed,a=t.harmonic;n=this.filter(n)[0];for(var o=this.dijkstra({root:n,weight:r,directed:i}),s=0,l=this.nodes(),u=0;u<l.length;u++){var c=l[u];if(!c.same(n)){var h=o.distanceTo(c);s+=a?1/h:h}}return a?s:1/s}};xr.cc=xr.closenessCentrality,xr.ccn=xr.closenessCentralityNormalised=xr.closenessCentralityNormalized;var wr=Mt({weight:null,directed:!1}),Er={betweennessCentrality:function(e){for(var t=wr(e),n=t.directed,r=t.weight,i=null!=r,a=this.cy(),o=this.nodes(),s={},l={},u=0,c={set:function(e,t){l[e]=t,t>u&&(u=t)},get:function(e){return l[e]}},h=0;h<o.length;h++){var d=o[h],p=d.id();s[p]=n?d.outgoers().nodes():d.openNeighborhood().nodes(),c.set(p,0)}for(var g=function(e){for(var t=o[e].id(),n=[],l={},u={},h={},d=new $t((function(e,t){return h[e]-h[t]})),p=0;p<o.length;p++){var g=o[p].id();l[g]=[],u[g]=0,h[g]=1/0}for(u[t]=1,h[t]=0,d.push(t);!d.empty();){var f=d.pop();if(n.push(f),i)for(var v=0;v<s[f].length;v++){var y=s[f][v],m=a.getElementById(f),b=void 0;b=m.edgesTo(y).length>0?m.edgesTo(y)[0]:y.edgesTo(m)[0];var x=r(b);y=y.id(),h[y]>h[f]+x&&(h[y]=h[f]+x,d.nodes.indexOf(y)<0?d.push(y):d.updateItem(y),u[y]=0,l[y]=[]),h[y]==h[f]+x&&(u[y]=u[y]+u[f],l[y].push(f))}else for(var w=0;w<s[f].length;w++){var E=s[f][w].id();h[E]==1/0&&(d.push(E),h[E]=h[f]+1),h[E]==h[f]+1&&(u[E]=u[E]+u[f],l[E].push(f))}}for(var T={},_=0;_<o.length;_++)T[o[_].id()]=0;for(;n.length>0;){for(var D=n.pop(),C=0;C<l[D].length;C++){var N=l[D][C];T[N]=T[N]+u[N]/u[D]*(1+T[D])}D!=o[e].id()&&c.set(D,c.get(D)+T[D])}},f=0;f<o.length;f++)g(f);var v={betweenness:function(e){var t=a.collection(e).id();return c.get(t)},betweennessNormalized:function(e){if(0==u)return 0;var t=a.collection(e).id();return c.get(t)/u}};return v.betweennessNormalised=v.betweennessNormalized,v}};Er.bc=Er.betweennessCentrality;var Tr=Mt({expandFactor:2,inflateFactor:2,multFactor:1,maxIterations:20,attributes:[function(e){return 1}]}),_r=function(e){return Tr(e)},Dr=function(e,t){for(var n=0,r=0;r<t.length;r++)n+=t[r](e);return n},Cr=function(e,t,n){for(var r=0;r<t;r++)e[r*t+r]=n},Nr=function(e,t){for(var n,r=0;r<t;r++){n=0;for(var i=0;i<t;i++)n+=e[i*t+r];for(var a=0;a<t;a++)e[a*t+r]=e[a*t+r]/n}},Ar=function(e,t,n){for(var r=new Array(n*n),i=0;i<n;i++){for(var a=0;a<n;a++)r[i*n+a]=0;for(var o=0;o<n;o++)for(var s=0;s<n;s++)r[i*n+s]+=e[i*n+o]*t[o*n+s]}return r},Lr=function(e,t,n){for(var r=e.slice(0),i=1;i<n;i++)e=Ar(e,r,t);return e},Sr=function(e,t,n){for(var r=new Array(t*t),i=0;i<t*t;i++)r[i]=Math.pow(e[i],n);return Nr(r,t),r},Or=function(e,t,n,r){for(var i=0;i<n;i++)if(Math.round(e[i]*Math.pow(10,r))/Math.pow(10,r)!=Math.round(t[i]*Math.pow(10,r))/Math.pow(10,r))return!1;return!0},Ir=function(e,t,n,r){for(var i=[],a=0;a<t;a++){for(var o=[],s=0;s<t;s++)Math.round(1e3*e[a*t+s])/1e3>0&&o.push(n[s]);0!==o.length&&i.push(r.collection(o))}return i},kr=function(e,t){for(var n=0;n<e.length;n++)if(!t[n]||e[n].id()!==t[n].id())return!1;return!0},Mr=function(e){for(var t=0;t<e.length;t++)for(var n=0;n<e.length;n++)t!=n&&kr(e[t],e[n])&&e.splice(n,1);return e},Pr=function(e){for(var t=this.nodes(),n=this.edges(),r=this.cy(),i=_r(e),a={},o=0;o<t.length;o++)a[t[o].id()]=o;for(var s,l=t.length,u=l*l,c=new Array(u),h=0;h<u;h++)c[h]=0;for(var d=0;d<n.length;d++){var p=n[d],g=a[p.source().id()],f=a[p.target().id()],v=Dr(p,i.attributes);c[g*l+f]+=v,c[f*l+g]+=v}Cr(c,l,i.multFactor),Nr(c,l);for(var y=!0,m=0;y&&m<i.maxIterations;)y=!1,s=Lr(c,l,i.expandFactor),c=Sr(s,l,i.inflateFactor),Or(c,s,u,4)||(y=!0),m++;var b=Ir(c,l,t,r);return b=Mr(b)},Rr={markovClustering:Pr,mcl:Pr},Br=function(e){return e},Fr=function(e,t){return Math.abs(t-e)},zr=function(e,t,n){return e+Fr(t,n)},Gr=function(e,t,n){return e+Math.pow(n-t,2)},Yr=function(e){return Math.sqrt(e)},Xr=function(e,t,n){return Math.max(e,Fr(t,n))},Vr=function(e,t,n,r,i){for(var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:Br,o=r,s=0;s<e;s++)o=i(o,t(s),n(s));return a(o)},Ur={euclidean:function(e,t,n){return e>=2?Vr(e,t,n,0,Gr,Yr):Vr(e,t,n,0,zr)},squaredEuclidean:function(e,t,n){return Vr(e,t,n,0,Gr)},manhattan:function(e,t,n){return Vr(e,t,n,0,zr)},max:function(e,t,n){return Vr(e,t,n,-1/0,Xr)}};function jr(e,t,n,r,i,a){var o;return o=x(e)?e:Ur[e]||Ur.euclidean,0===t&&x(e)?o(i,a):o(t,n,r,i,a)}Ur["squared-euclidean"]=Ur.squaredEuclidean,Ur.squaredeuclidean=Ur.squaredEuclidean;var Hr=Mt({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),qr=function(e){return Hr(e)},Wr=function(e,t,n,r,i){var a="kMedoids"!==i?function(e){return n[e]}:function(e){return r[e](n)},o=function(e){return r[e](t)},s=n,l=t;return jr(e,r.length,a,o,s,l)},$r=function(e,t,n){for(var r=n.length,i=new Array(r),a=new Array(r),o=new Array(t),s=null,l=0;l<r;l++)i[l]=e.min(n[l]).value,a[l]=e.max(n[l]).value;for(var u=0;u<t;u++){s=[];for(var c=0;c<r;c++)s[c]=Math.random()*(a[c]-i[c])+i[c];o[u]=s}return o},Kr=function(e,t,n,r,i){for(var a=1/0,o=0,s=0;s<t.length;s++){var l=Wr(n,e,t[s],r,i);l<a&&(a=l,o=s)}return o},Zr=function(e,t,n){for(var r=[],i=null,a=0;a<t.length;a++)n[(i=t[a]).id()]===e&&r.push(i);return r},Qr=function(e,t,n){return Math.abs(t-e)<=n},Jr=function(e,t,n){for(var r=0;r<e.length;r++)for(var i=0;i<e[r].length;i++)if(Math.abs(e[r][i]-t[r][i])>n)return!1;return!0},ei=function(e,t,n){for(var r=0;r<n;r++)if(e===t[r])return!0;return!1},ti=function(e,t){var n=new Array(t);if(e.length<50)for(var r=0;r<t;r++){for(var i=e[Math.floor(Math.random()*e.length)];ei(i,n,r);)i=e[Math.floor(Math.random()*e.length)];n[r]=i}else for(var a=0;a<t;a++)n[a]=e[Math.floor(Math.random()*e.length)];return n},ni=function(e,t,n){for(var r=0,i=0;i<t.length;i++)r+=Wr("manhattan",t[i],e,n,"kMedoids");return r},ri=function(t){var n,r=this.cy(),i=this.nodes(),a=null,o=qr(t),s=new Array(o.k),l={};o.testMode?"number"==typeof o.testCentroids?(o.testCentroids,n=$r(i,o.k,o.attributes)):n="object"===e(o.testCentroids)?o.testCentroids:$r(i,o.k,o.attributes):n=$r(i,o.k,o.attributes);for(var u=!0,c=0;u&&c<o.maxIterations;){for(var h=0;h<i.length;h++)l[(a=i[h]).id()]=Kr(a,n,o.distance,o.attributes,"kMeans");u=!1;for(var d=0;d<o.k;d++){var p=Zr(d,i,l);if(0!==p.length){for(var g=o.attributes.length,f=n[d],v=new Array(g),y=new Array(g),m=0;m<g;m++){y[m]=0;for(var b=0;b<p.length;b++)a=p[b],y[m]+=o.attributes[m](a);v[m]=y[m]/p.length,Qr(v[m],f[m],o.sensitivityThreshold)||(u=!0)}n[d]=v,s[d]=r.collection(p)}}c++}return s},ii=function(e,t,n,r,i){for(var a,o,s=0;s<t.length;s++)for(var l=0;l<e.length;l++)r[s][l]=Math.pow(n[s][l],i.m);for(var u=0;u<e.length;u++)for(var c=0;c<i.attributes.length;c++){a=0,o=0;for(var h=0;h<t.length;h++)a+=r[h][u]*i.attributes[c](t[h]),o+=r[h][u];e[u][c]=a/o}},ai=function(e,t,n,r,i){for(var a=0;a<e.length;a++)t[a]=e[a].slice();for(var o,s,l,u=2/(i.m-1),c=0;c<n.length;c++)for(var h=0;h<r.length;h++){o=0;for(var d=0;d<n.length;d++)s=Wr(i.distance,r[h],n[c],i.attributes,"cmeans"),l=Wr(i.distance,r[h],n[d],i.attributes,"cmeans"),o+=Math.pow(s/l,u);e[h][c]=1/o}},oi=function(e,t,n,r){for(var i,a,o=new Array(n.k),s=0;s<o.length;s++)o[s]=[];for(var l=0;l<t.length;l++){i=-1/0,a=-1;for(var u=0;u<t[0].length;u++)t[l][u]>i&&(i=t[l][u],a=u);o[a].push(e[l])}for(var c=0;c<o.length;c++)o[c]=r.collection(o[c]);return o},si=function(e){var t,n,r,i,a=this.cy(),o=this.nodes(),s=qr(e);r=new Array(o.length);for(var l=0;l<o.length;l++)r[l]=new Array(s.k);n=new Array(o.length);for(var u=0;u<o.length;u++)n[u]=new Array(s.k);for(var c=0;c<o.length;c++){for(var h=0,d=0;d<s.k;d++)n[c][d]=Math.random(),h+=n[c][d];for(var p=0;p<s.k;p++)n[c][p]=n[c][p]/h}t=new Array(s.k);for(var g=0;g<s.k;g++)t[g]=new Array(s.attributes.length);i=new Array(o.length);for(var f=0;f<o.length;f++)i[f]=new Array(s.k);for(var v=!0,y=0;v&&y<s.maxIterations;)v=!1,ii(t,o,n,i,s),ai(n,r,t,o,s),Jr(n,r,s.sensitivityThreshold)||(v=!0),y++;return{clusters:oi(o,n,s,a),degreeOfMembership:n}},li={kMeans:ri,kMedoids:function(t){var n,r,i=this.cy(),a=this.nodes(),o=null,s=qr(t),l=new Array(s.k),u={},c=new Array(s.k);s.testMode?"number"==typeof s.testCentroids||(n="object"===e(s.testCentroids)?s.testCentroids:ti(a,s.k)):n=ti(a,s.k);for(var h=!0,d=0;h&&d<s.maxIterations;){for(var p=0;p<a.length;p++)u[(o=a[p]).id()]=Kr(o,n,s.distance,s.attributes,"kMedoids");h=!1;for(var g=0;g<n.length;g++){var f=Zr(g,a,u);if(0!==f.length){c[g]=ni(n[g],f,s.attributes);for(var v=0;v<f.length;v++)(r=ni(f[v],f,s.attributes))<c[g]&&(c[g]=r,n[g]=f[v],h=!0);l[g]=i.collection(f)}}d++}return l},fuzzyCMeans:si,fcm:si},ui=Mt({distance:"euclidean",linkage:"min",mode:"threshold",threshold:1/0,addDendrogram:!1,dendrogramDepth:0,attributes:[]}),ci={single:"min",complete:"max"},hi=function(e){var t=ui(e),n=ci[t.linkage];return null!=n&&(t.linkage=n),t},di=function(e,t,n,r,i){for(var a,o=0,s=1/0,l=i.attributes,u=function(e,t){return jr(i.distance,l.length,(function(t){return l[t](e)}),(function(e){return l[e](t)}),e,t)},c=0;c<e.length;c++){var h=e[c].key,d=n[h][r[h]];d<s&&(o=h,s=d)}if("threshold"===i.mode&&s>=i.threshold||"dendrogram"===i.mode&&1===e.length)return!1;var p,g=t[o],f=t[r[o]];p="dendrogram"===i.mode?{left:g,right:f,key:g.key}:{value:g.value.concat(f.value),key:g.key},e[g.index]=p,e.splice(f.index,1),t[g.key]=p;for(var v=0;v<e.length;v++){var y=e[v];g.key===y.key?a=1/0:"min"===i.linkage?(a=n[g.key][y.key],n[g.key][y.key]>n[f.key][y.key]&&(a=n[f.key][y.key])):"max"===i.linkage?(a=n[g.key][y.key],n[g.key][y.key]<n[f.key][y.key]&&(a=n[f.key][y.key])):a="mean"===i.linkage?(n[g.key][y.key]*g.size+n[f.key][y.key]*f.size)/(g.size+f.size):"dendrogram"===i.mode?u(y.value,g.value):u(y.value[0],g.value[0]),n[g.key][y.key]=n[y.key][g.key]=a}for(var m=0;m<e.length;m++){var b=e[m].key;if(r[b]===g.key||r[b]===f.key){for(var x=b,w=0;w<e.length;w++){var E=e[w].key;n[b][E]<n[b][x]&&(x=E)}r[b]=x}e[m].index=m}return g.key=f.key=g.index=f.index=null,!0},pi=function e(t,n,r){t&&(t.value?n.push(t.value):(t.left&&e(t.left,n),t.right&&e(t.right,n)))},gi=function e(t,n){if(!t)return"";if(t.left&&t.right){var r=e(t.left,n),i=e(t.right,n),a=n.add({group:"nodes",data:{id:r+","+i}});return n.add({group:"edges",data:{source:r,target:a.id()}}),n.add({group:"edges",data:{source:i,target:a.id()}}),a.id()}return t.value?t.value.id():void 0},fi=function e(t,n,r){if(!t)return[];var i=[],a=[],o=[];return 0===n?(t.left&&pi(t.left,i),t.right&&pi(t.right,a),o=i.concat(a),[r.collection(o)]):1===n?t.value?[r.collection(t.value)]:(t.left&&pi(t.left,i),t.right&&pi(t.right,a),[r.collection(i),r.collection(a)]):t.value?[r.collection(t.value)]:(t.left&&(i=e(t.left,n-1,r)),t.right&&(a=e(t.right,n-1,r)),i.concat(a))},vi=function(e){for(var t=this.cy(),n=this.nodes(),r=hi(e),i=r.attributes,a=function(e,t){return jr(r.distance,i.length,(function(t){return i[t](e)}),(function(e){return i[e](t)}),e,t)},o=[],s=[],l=[],u=[],c=0;c<n.length;c++){var h={value:"dendrogram"===r.mode?n[c]:[n[c]],key:c,index:c};o[c]=h,u[c]=h,s[c]=[],l[c]=0}for(var d=0;d<o.length;d++)for(var p=0;p<=d;p++){var g=void 0;g="dendrogram"===r.mode?d===p?1/0:a(o[d].value,o[p].value):d===p?1/0:a(o[d].value[0],o[p].value[0]),s[d][p]=g,s[p][d]=g,g<s[d][l[d]]&&(l[d]=p)}for(var f,v=di(o,u,s,l,r);v;)v=di(o,u,s,l,r);return"dendrogram"===r.mode?(f=fi(o[0],r.dendrogramDepth,t),r.addDendrogram&&gi(o[0],t)):(f=new Array(o.length),o.forEach((function(e,n){e.key=e.index=null,f[n]=t.collection(e.value)}))),f},yi={hierarchicalClustering:vi,hca:vi},mi=Mt({distance:"euclidean",preference:"median",damping:.8,maxIterations:1e3,minIterations:100,attributes:[]}),bi=function(e){var t=e.damping,n=e.preference;.5<=t&&t<1||Dt("Damping must range on [0.5, 1). Got: ".concat(t));var r=["median","mean","min","max"];return r.some((function(e){return e===n}))||_(n)||Dt("Preference must be one of [".concat(r.map((function(e){return"'".concat(e,"'")})).join(", "),"] or a number. Got: ").concat(n)),mi(e)},xi=function(e,t,n,r){var i=function(e,t){return r[t](e)};return-jr(e,r.length,(function(e){return i(t,e)}),(function(e){return i(n,e)}),t,n)},wi=function(e,t){return"median"===t?yn(e):"mean"===t?vn(e):"min"===t?gn(e):"max"===t?fn(e):t},Ei=function(e,t,n){for(var r=[],i=0;i<e;i++)t[i*e+i]+n[i*e+i]>0&&r.push(i);return r},Ti=function(e,t,n){for(var r=[],i=0;i<e;i++){for(var a=-1,o=-1/0,s=0;s<n.length;s++){var l=n[s];t[i*e+l]>o&&(a=l,o=t[i*e+l])}a>0&&r.push(a)}for(var u=0;u<n.length;u++)r[n[u]]=n[u];return r},_i=function(e,t,n){for(var r=Ti(e,t,n),i=0;i<n.length;i++){for(var a=[],o=0;o<r.length;o++)r[o]===n[i]&&a.push(o);for(var s=-1,l=-1/0,u=0;u<a.length;u++){for(var c=0,h=0;h<a.length;h++)c+=t[a[h]*e+a[u]];c>l&&(s=u,l=c)}n[i]=a[s]}return r=Ti(e,t,n)},Di=function(e){for(var t,n,r,i,a,o,s=this.cy(),l=this.nodes(),u=bi(e),c={},h=0;h<l.length;h++)c[l[h].id()]=h;n=(t=l.length)*t,r=new Array(n);for(var d=0;d<n;d++)r[d]=-1/0;for(var p=0;p<t;p++)for(var g=0;g<t;g++)p!==g&&(r[p*t+g]=xi(u.distance,l[p],l[g],u.attributes));i=wi(r,u.preference);for(var f=0;f<t;f++)r[f*t+f]=i;a=new Array(n);for(var v=0;v<n;v++)a[v]=0;o=new Array(n);for(var y=0;y<n;y++)o[y]=0;for(var m=new Array(t),b=new Array(t),x=new Array(t),w=0;w<t;w++)m[w]=0,b[w]=0,x[w]=0;for(var E,T=new Array(t*u.minIterations),_=0;_<T.length;_++)T[_]=0;for(E=0;E<u.maxIterations;E++){for(var D=0;D<t;D++){for(var C=-1/0,N=-1/0,A=-1,L=0,S=0;S<t;S++)m[S]=a[D*t+S],(L=o[D*t+S]+r[D*t+S])>=C?(N=C,C=L,A=S):L>N&&(N=L);for(var O=0;O<t;O++)a[D*t+O]=(1-u.damping)*(r[D*t+O]-C)+u.damping*m[O];a[D*t+A]=(1-u.damping)*(r[D*t+A]-N)+u.damping*m[A]}for(var I=0;I<t;I++){for(var k=0,M=0;M<t;M++)m[M]=o[M*t+I],b[M]=Math.max(0,a[M*t+I]),k+=b[M];k-=b[I],b[I]=a[I*t+I],k+=b[I];for(var P=0;P<t;P++)o[P*t+I]=(1-u.damping)*Math.min(0,k-b[P])+u.damping*m[P];o[I*t+I]=(1-u.damping)*(k-b[I])+u.damping*m[I]}for(var R=0,B=0;B<t;B++){var F=o[B*t+B]+a[B*t+B]>0?1:0;T[E%u.minIterations*t+B]=F,R+=F}if(R>0&&(E>=u.minIterations-1||E==u.maxIterations-1)){for(var z=0,G=0;G<t;G++){x[G]=0;for(var Y=0;Y<u.minIterations;Y++)x[G]+=T[Y*t+G];0!==x[G]&&x[G]!==u.minIterations||z++}if(z===t)break}}for(var X=Ei(t,a,o),V=_i(t,r,X),U={},j=0;j<X.length;j++)U[X[j]]=[];for(var H=0;H<l.length;H++){var q=V[c[l[H].id()]];null!=q&&U[q].push(l[H])}for(var W=new Array(X.length),$=0;$<X.length;$++)W[$]=s.collection(U[X[$]]);return W},Ci={affinityPropagation:Di,ap:Di},Ni=Mt({root:void 0,directed:!1}),Ai={hierholzer:function(e){if(!E(e)){var t=arguments;e={root:t[0],directed:t[1]}}var n,r,i,a=Ni(e),o=a.root,s=a.directed,l=this,u=!1;o&&(i=b(o)?this.filter(o)[0].id():o[0].id());var c={},h={};s?l.forEach((function(e){var t=e.id();if(e.isNode()){var i=e.indegree(!0),a=e.outdegree(!0),o=i-a,s=a-i;1==o?n?u=!0:n=t:1==s?r?u=!0:r=t:(s>1||o>1)&&(u=!0),c[t]=[],e.outgoers().forEach((function(e){e.isEdge()&&c[t].push(e.id())}))}else h[t]=[void 0,e.target().id()]})):l.forEach((function(e){var t=e.id();e.isNode()?(e.degree(!0)%2&&(n?r?u=!0:r=t:n=t),c[t]=[],e.connectedEdges().forEach((function(e){return c[t].push(e.id())}))):h[t]=[e.source().id(),e.target().id()]}));var d={found:!1,trail:void 0};if(u)return d;if(r&&n)if(s){if(i&&r!=i)return d;i=r}else{if(i&&r!=i&&n!=i)return d;i||(i=r)}else i||(i=l[0].id());var p=function(e){for(var t,n,r,i=e,a=[e];c[i].length;)t=c[i].shift(),n=h[t][0],i!=(r=h[t][1])?(c[r]=c[r].filter((function(e){return e!=t})),i=r):s||i==n||(c[n]=c[n].filter((function(e){return e!=t})),i=n),a.unshift(t),a.unshift(i);return a},g=[],f=[];for(f=p(i);1!=f.length;)0==c[f[0]].length?(g.unshift(l.getElementById(f.shift())),g.unshift(l.getElementById(f.shift()))):f=p(f.shift()).concat(f);for(var v in g.unshift(l.getElementById(f.shift())),c)if(c[v].length)return d;return d.found=!0,d.trail=this.spawn(g,!0),d}},Li=function(){var e=this,t={},n=0,r=0,i=[],a=[],o={},s=function(n,r){for(var o=a.length-1,s=[],l=e.spawn();a[o].x!=n||a[o].y!=r;)s.push(a.pop().edge),o--;s.push(a.pop().edge),s.forEach((function(n){var r=n.connectedNodes().intersection(e);l.merge(n),r.forEach((function(n){var r=n.id(),i=n.connectedEdges().intersection(e);l.merge(n),t[r].cutVertex?l.merge(i.filter((function(e){return e.isLoop()}))):l.merge(i)}))})),i.push(l)},l=function l(u,c,h){u===h&&(r+=1),t[c]={id:n,low:n++,cutVertex:!1};var d,p,g,f,v=e.getElementById(c).connectedEdges().intersection(e);0===v.size()?i.push(e.spawn(e.getElementById(c))):v.forEach((function(e){d=e.source().id(),p=e.target().id(),(g=d===c?p:d)!==h&&(f=e.id(),o[f]||(o[f]=!0,a.push({x:c,y:g,edge:e})),g in t?t[c].low=Math.min(t[c].low,t[g].id):(l(u,g,c),t[c].low=Math.min(t[c].low,t[g].low),t[c].id<=t[g].low&&(t[c].cutVertex=!0,s(c,g))))}))};e.forEach((function(e){if(e.isNode()){var n=e.id();n in t||(r=0,l(n,n),t[n].cutVertex=r>1)}}));var u=Object.keys(t).filter((function(e){return t[e].cutVertex})).map((function(t){return e.getElementById(t)}));return{cut:e.spawn(u),components:i}},Si=function(){var e=this,t={},n=0,r=[],i=[],a=e.spawn(e),o=function o(s){if(i.push(s),t[s]={index:n,low:n++,explored:!1},e.getElementById(s).connectedEdges().intersection(e).forEach((function(e){var n=e.target().id();n!==s&&(n in t||o(n),t[n].explored||(t[s].low=Math.min(t[s].low,t[n].low)))})),t[s].index===t[s].low){for(var l=e.spawn();;){var u=i.pop();if(l.merge(e.getElementById(u)),t[u].low=t[s].index,t[u].explored=!0,u===s)break}var c=l.edgesWith(l),h=l.merge(c);r.push(h),a=a.difference(h)}};return e.forEach((function(e){if(e.isNode()){var n=e.id();n in t||o(n)}})),{cut:a,components:r}},Oi={};[qt,Zt,Qt,en,nn,an,un,vr,mr,xr,Er,Rr,li,yi,Ci,Ai,{hopcroftTarjanBiconnected:Li,htbc:Li,htb:Li,hopcroftTarjanBiconnectedComponents:Li},{tarjanStronglyConnected:Si,tsc:Si,tscc:Si,tarjanStronglyConnectedComponents:Si}].forEach((function(e){Q(Oi,e)}));var Ii=0,ki=1,Mi=2,Pi=function e(t){if(!(this instanceof e))return new e(t);this.id="Thenable/1.0.7",this.state=Ii,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},"function"==typeof t&&t.call(this,this.fulfill.bind(this),this.reject.bind(this))};Pi.prototype={fulfill:function(e){return Ri(this,ki,"fulfillValue",e)},reject:function(e){return Ri(this,Mi,"rejectReason",e)},then:function(e,t){var n=this,r=new Pi;return n.onFulfilled.push(zi(e,r,"fulfill")),n.onRejected.push(zi(t,r,"reject")),Bi(n),r.proxy}};var Ri=function(e,t,n,r){return e.state===Ii&&(e.state=t,e[n]=r,Bi(e)),e},Bi=function(e){e.state===ki?Fi(e,"onFulfilled",e.fulfillValue):e.state===Mi&&Fi(e,"onRejected",e.rejectReason)},Fi=function(e,t,n){if(0!==e[t].length){var r=e[t];e[t]=[];var i=function(){for(var e=0;e<r.length;e++)r[e](n)};"function"==typeof setImmediate?setImmediate(i):setTimeout(i,0)}},zi=function(e,t,n){return function(r){if("function"!=typeof e)t[n].call(t,r);else{var i;try{i=e(r)}catch(a){return void t.reject(a)}Gi(t,i)}}},Gi=function t(n,r){if(n!==r&&n.proxy!==r){var i;if("object"===e(r)&&null!==r||"function"==typeof r)try{i=r.then}catch(o){return void n.reject(o)}if("function"!=typeof i)n.fulfill(r);else{var a=!1;try{i.call(r,(function(e){a||(a=!0,e===r?n.reject(new TypeError("circular thenable chain")):t(n,e))}),(function(e){a||(a=!0,n.reject(e))}))}catch(o){a||n.reject(o)}}}else n.reject(new TypeError("cannot resolve promise with itself"))};Pi.all=function(e){return new Pi((function(t,n){for(var r=new Array(e.length),i=0,a=function(n,a){r[n]=a,++i===e.length&&t(r)},o=0;o<e.length;o++)!function(t){var r=e[t];null!=r&&null!=r.then?r.then((function(e){a(t,e)}),(function(e){n(e)})):a(t,r)}(o)}))},Pi.resolve=function(e){return new Pi((function(t,n){t(e)}))},Pi.reject=function(e){return new Pi((function(t,n){n(e)}))};var Yi="undefined"!=typeof Promise?Promise:Pi,Xi=function(e,t,n){var r=S(e),i=!r,a=this._private=Q({duration:1e3},t,n);if(a.target=e,a.style=a.style||a.css,a.started=!1,a.playing=!1,a.hooked=!1,a.applying=!1,a.progress=0,a.completes=[],a.frames=[],a.complete&&x(a.complete)&&a.completes.push(a.complete),i){var o=e.position();a.startPosition=a.startPosition||{x:o.x,y:o.y},a.startStyle=a.startStyle||e.cy().style().getAnimationStartStyle(e,a.style)}if(r){var s=e.pan();a.startPan={x:s.x,y:s.y},a.startZoom=e.zoom()}this.length=1,this[0]=this},Vi=Xi.prototype;Q(Vi,{instanceString:function(){return"animation"},hook:function(){var e=this._private;if(!e.hooked){var t=e.target._private.animation;(e.queue?t.queue:t.current).push(this),N(e.target)&&e.target.cy().addToAnimationPool(e.target),e.hooked=!0}return this},play:function(){var e=this._private;return 1===e.progress&&(e.progress=0),e.playing=!0,e.started=!1,e.stopped=!1,this.hook(),this},playing:function(){return this._private.playing},apply:function(){var e=this._private;return e.applying=!0,e.started=!1,e.stopped=!1,this.hook(),this},applying:function(){return this._private.applying},pause:function(){var e=this._private;return e.playing=!1,e.started=!1,this},stop:function(){var e=this._private;return e.playing=!1,e.started=!1,e.stopped=!0,this},rewind:function(){return this.progress(0)},fastforward:function(){return this.progress(1)},time:function(e){var t=this._private;return void 0===e?t.progress*t.duration:this.progress(e/t.duration)},progress:function(e){var t=this._private,n=t.playing;return void 0===e?t.progress:(n&&this.pause(),t.progress=e,t.started=!1,n&&this.play(),this)},completed:function(){return 1===this._private.progress},reverse:function(){var e=this._private,t=e.playing;t&&this.pause(),e.progress=1-e.progress,e.started=!1;var n=function(t,n){var r=e[t];null!=r&&(e[t]=e[n],e[n]=r)};if(n("zoom","startZoom"),n("pan","startPan"),n("position","startPosition"),e.style)for(var r=0;r<e.style.length;r++){var i=e.style[r],a=i.name,o=e.startStyle[a];e.startStyle[a]=i,e.style[r]=o}return t&&this.play(),this},promise:function(e){var t,n=this._private;return t="frame"===e?n.frames:n.completes,new Yi((function(e,n){t.push((function(){e()}))}))}}),Vi.complete=Vi.completed,Vi.run=Vi.play,Vi.running=Vi.playing;var Ui={animated:function(){return function(){var e=this,t=void 0!==e.length?e:[e];if(!(this._private.cy||this).styleEnabled())return!1;var n=t[0];return n?n._private.animation.current.length>0:void 0}},clearQueue:function(){return function(){var e=this,t=void 0!==e.length?e:[e];if(!(this._private.cy||this).styleEnabled())return this;for(var n=0;n<t.length;n++)t[n]._private.animation.queue=[];return this}},delay:function(){return function(e,t){return(this._private.cy||this).styleEnabled()?this.animate({delay:e,duration:e,complete:t}):this}},delayAnimation:function(){return function(e,t){return(this._private.cy||this).styleEnabled()?this.animation({delay:e,duration:e,complete:t}):this}},animation:function(){return function(e,t){var n=this,r=void 0!==n.length,i=r?n:[n],a=this._private.cy||this,o=!r,s=!o;if(!a.styleEnabled())return this;var l=a.style();if(e=Q({},e,t),0===Object.keys(e).length)return new Xi(i[0],e);switch(void 0===e.duration&&(e.duration=400),e.duration){case"slow":e.duration=600;break;case"fast":e.duration=200}if(s&&(e.style=l.getPropsList(e.style||e.css),e.css=void 0),s&&null!=e.renderedPosition){var u=e.renderedPosition,c=a.pan(),h=a.zoom();e.position=dn(u,h,c)}if(o&&null!=e.panBy){var d=e.panBy,p=a.pan();e.pan={x:p.x+d.x,y:p.y+d.y}}var g=e.center||e.centre;if(o&&null!=g){var f=a.getCenterPan(g.eles,e.zoom);null!=f&&(e.pan=f)}if(o&&null!=e.fit){var v=e.fit,y=a.getFitViewport(v.eles||v.boundingBox,v.padding);null!=y&&(e.pan=y.pan,e.zoom=y.zoom)}if(o&&E(e.zoom)){var m=a.getZoomedViewport(e.zoom);null!=m?(m.zoomed&&(e.zoom=m.zoom),m.panned&&(e.pan=m.pan)):e.zoom=null}return new Xi(i[0],e)}},animate:function(){return function(e,t){var n=this,r=void 0!==n.length?n:[n];if(!(this._private.cy||this).styleEnabled())return this;t&&(e=Q({},e,t));for(var i=0;i<r.length;i++){var a=r[i],o=a.animated()&&(void 0===e.queue||e.queue);a.animation(e,o?{queue:!0}:void 0).play()}return this}},stop:function(){return function(e,t){var n=this,r=void 0!==n.length?n:[n],i=this._private.cy||this;if(!i.styleEnabled())return this;for(var a=0;a<r.length;a++){for(var o=r[a]._private,s=o.animation.current,l=0;l<s.length;l++){var u=s[l]._private;t&&(u.duration=0)}e&&(o.animation.queue=[]),t||(o.animation.current=[])}return i.notify("draw"),this}}},ji=Array.isArray,Hi=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,qi=/^\w*$/;function Wi(e,t){if(ji(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!Ge(e))||qi.test(e)||!Hi.test(e)||null!=t&&e in Object(t)}var $i=Wi,Ki="[object AsyncFunction]",Zi="[object Function]",Qi="[object GeneratorFunction]",Ji="[object Proxy]";function ea(e){if(!le(e))return!1;var t=Pe(e);return t==Zi||t==Qi||t==Ki||t==Ji}var ta,na=ea,ra=pe["__core-js_shared__"],ia=(ta=/[^.]+$/.exec(ra&&ra.keys&&ra.keys.IE_PROTO||""))?"Symbol(src)_1."+ta:"";function aa(e){return!!ia&&ia in e}var oa=aa,sa=Function.prototype.toString;function la(e){if(null!=e){try{return sa.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var ua=la,ca=/[\\^$.*+?()[\]{}|]/g,ha=/^\[object .+?Constructor\]$/,da=Function.prototype,pa=Object.prototype,ga=da.toString,fa=pa.hasOwnProperty,va=RegExp("^"+ga.call(fa).replace(ca,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ya(e){return!(!le(e)||oa(e))&&(na(e)?va:ha).test(ua(e))}var ma=ya;function ba(e,t){return null==e?void 0:e[t]}var xa=ba;function wa(e,t){var n=xa(e,t);return ma(n)?n:void 0}var Ea=wa,Ta=Ea(Object,"create");function _a(){this.__data__=Ta?Ta(null):{},this.size=0}var Da=_a;function Ca(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Na=Ca,Aa="__lodash_hash_undefined__",La=Object.prototype.hasOwnProperty;function Sa(e){var t=this.__data__;if(Ta){var n=t[e];return n===Aa?void 0:n}return La.call(t,e)?t[e]:void 0}var Oa=Sa,Ia=Object.prototype.hasOwnProperty;function ka(e){var t=this.__data__;return Ta?void 0!==t[e]:Ia.call(t,e)}var Ma=ka,Pa="__lodash_hash_undefined__";function Ra(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ta&&void 0===t?Pa:t,this}var Ba=Ra;function Fa(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Fa.prototype.clear=Da,Fa.prototype.delete=Na,Fa.prototype.get=Oa,Fa.prototype.has=Ma,Fa.prototype.set=Ba;var za=Fa;function Ga(){this.__data__=[],this.size=0}var Ya=Ga;function Xa(e,t){return e===t||e!=e&&t!=t}var Va=Xa;function Ua(e,t){for(var n=e.length;n--;)if(Va(e[n][0],t))return n;return-1}var ja=Ua,Ha=Array.prototype.splice;function qa(e){var t=this.__data__,n=ja(t,e);return!(n<0||(n==t.length-1?t.pop():Ha.call(t,n,1),--this.size,0))}var Wa=qa;function $a(e){var t=this.__data__,n=ja(t,e);return n<0?void 0:t[n][1]}var Ka=$a;function Za(e){return ja(this.__data__,e)>-1}var Qa=Za;function Ja(e,t){var n=this.__data__,r=ja(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var eo=Ja;function to(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}to.prototype.clear=Ya,to.prototype.delete=Wa,to.prototype.get=Ka,to.prototype.has=Qa,to.prototype.set=eo;var no=to,ro=Ea(pe,"Map");function io(){this.size=0,this.__data__={hash:new za,map:new(ro||no),string:new za}}var ao=io;function oo(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}var so=oo;function lo(e,t){var n=e.__data__;return so(t)?n["string"==typeof t?"string":"hash"]:n.map}var uo=lo;function co(e){var t=uo(this,e).delete(e);return this.size-=t?1:0,t}var ho=co;function po(e){return uo(this,e).get(e)}var go=po;function fo(e){return uo(this,e).has(e)}var vo=fo;function yo(e,t){var n=uo(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var mo=yo;function bo(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}bo.prototype.clear=ao,bo.prototype.delete=ho,bo.prototype.get=go,bo.prototype.has=vo,bo.prototype.set=mo;var xo=bo,wo="Expected a function";function Eo(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(wo);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(Eo.Cache||xo),n}Eo.Cache=xo;var To=Eo,_o=500;function Do(e){var t=To(e,(function(e){return n.size===_o&&n.clear(),e})),n=t.cache;return t}var Co=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,No=/\\(\\)?/g,Ao=Do((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(Co,(function(e,n,r,i){t.push(r?i.replace(No,"$1"):n||e)})),t})),Lo=Ao;function So(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}var Oo=So,Io=1/0,ko=we?we.prototype:void 0,Mo=ko?ko.toString:void 0;function Po(e){if("string"==typeof e)return e;if(ji(e))return Oo(e,Po)+"";if(Ge(e))return Mo?Mo.call(e):"";var t=e+"";return"0"==t&&1/e==-Io?"-0":t}var Ro=Po;function Bo(e){return null==e?"":Ro(e)}var Fo=Bo;function zo(e,t){return ji(e)?e:$i(e,t)?[e]:Lo(Fo(e))}var Go=zo,Yo=1/0;function Xo(e){if("string"==typeof e||Ge(e))return e;var t=e+"";return"0"==t&&1/e==-Yo?"-0":t}var Vo=Xo;function Uo(e,t){for(var n=0,r=(t=Go(t,e)).length;null!=e&&n<r;)e=e[Vo(t[n++])];return n&&n==r?e:void 0}var jo=Uo;function Ho(e,t,n){var r=null==e?void 0:jo(e,t);return void 0===r?n:r}var qo=Ho,Wo=function(){try{var e=Ea(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();function $o(e,t,n){"__proto__"==t&&Wo?Wo(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var Ko=$o,Zo=Object.prototype.hasOwnProperty;function Qo(e,t,n){var r=e[t];Zo.call(e,t)&&Va(r,n)&&(void 0!==n||t in e)||Ko(e,t,n)}var Jo=Qo,es=9007199254740991,ts=/^(?:0|[1-9]\d*)$/;function ns(e,t){var n=typeof e;return!!(t=null==t?es:t)&&("number"==n||"symbol"!=n&&ts.test(e))&&e>-1&&e%1==0&&e<t}var rs=ns;function is(e,t,n,r){if(!le(e))return e;for(var i=-1,a=(t=Go(t,e)).length,o=a-1,s=e;null!=s&&++i<a;){var l=Vo(t[i]),u=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return e;if(i!=o){var c=s[l];void 0===(u=r?r(c,l,s):void 0)&&(u=le(c)?c:rs(t[i+1])?[]:{})}Jo(s,l,u),s=s[l]}return e}var as=is;function os(e,t,n){return null==e?e:as(e,t,n)}var ss=os;function ls(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}var us=ls;function cs(e){return ji(e)?Oo(e,Vo):Ge(e)?[e]:us(Lo(Fo(e)))}var hs=cs,ds={data:function(e){return e=Q({},{field:"data",bindingEvent:"data",allowBinding:!1,allowSetting:!1,allowGetting:!1,settingEvent:"data",settingTriggersEvent:!1,triggerFnName:"trigger",immutableKeys:{},updateStyle:!1,beforeGet:function(e){},beforeSet:function(e,t){},onSet:function(e){},canSet:function(e){return!0}},e),function(t,n){var r=e,i=this,o=void 0!==i.length,s=o?i:[i],l=o?i[0]:i;if(b(t)){var u,c=-1!==t.indexOf(".")&&hs(t);if(r.allowGetting&&void 0===n)return l&&(r.beforeGet(l),u=c&&void 0===l._private[r.field][t]?qo(l._private[r.field],c):l._private[r.field][t]),u;if(r.allowSetting&&void 0!==n&&!r.immutableKeys[t]){var h=a({},t,n);r.beforeSet(i,h);for(var d=0,p=s.length;d<p;d++){var g=s[d];r.canSet(g)&&(c&&void 0===l._private[r.field][t]?ss(g._private[r.field],c,n):g._private[r.field][t]=n)}r.updateStyle&&i.updateStyle(),r.onSet(i),r.settingTriggersEvent&&i[r.triggerFnName](r.settingEvent)}}else if(r.allowSetting&&E(t)){var f,v,y=t,m=Object.keys(y);r.beforeSet(i,y);for(var w=0;w<m.length;w++)if(v=y[f=m[w]],!r.immutableKeys[f])for(var T=0;T<s.length;T++){var _=s[T];r.canSet(_)&&(_._private[r.field][f]=v)}r.updateStyle&&i.updateStyle(),r.onSet(i),r.settingTriggersEvent&&i[r.triggerFnName](r.settingEvent)}else if(r.allowBinding&&x(t)){var D=t;i.on(r.bindingEvent,D)}else if(r.allowGetting&&void 0===t){var C;return l&&(r.beforeGet(l),C=l._private[r.field]),C}return i}},removeData:function(e){return e=Q({},{field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!1,immutableKeys:{}},e),function(t){var n=e,r=this,i=void 0!==r.length?r:[r];if(b(t)){for(var a=t.split(/\s+/),o=a.length,s=0;s<o;s++){var l=a[s];if(!k(l)&&!n.immutableKeys[l])for(var u=0,c=i.length;u<c;u++)i[u]._private[n.field][l]=void 0}n.triggerEvent&&r[n.triggerFnName](n.event)}else if(void 0===t){for(var h=0,d=i.length;h<d;h++)for(var p=i[h]._private[n.field],g=Object.keys(p),f=0;f<g.length;f++){var v=g[f];!n.immutableKeys[v]&&(p[v]=void 0)}n.triggerEvent&&r[n.triggerFnName](n.event)}return r}}},ps={eventAliasesOn:function(e){var t=e;t.addListener=t.listen=t.bind=t.on,t.unlisten=t.unbind=t.off=t.removeListener,t.trigger=t.emit,t.pon=t.promiseOn=function(e,t){var n=this,r=Array.prototype.slice.call(arguments,0);return new Yi((function(e,t){var i=function(t){n.off.apply(n,o),e(t)},a=r.concat([i]),o=a.concat([]);n.on.apply(n,a)}))}}},gs={};[Ui,ds,ps].forEach((function(e){Q(gs,e)}));var fs={animate:gs.animate(),animation:gs.animation(),animated:gs.animated(),clearQueue:gs.clearQueue(),delay:gs.delay(),delayAnimation:gs.delayAnimation(),stop:gs.stop()},vs={classes:function(e){var t=this;if(void 0===e){var n=[];return t[0]._private.classes.forEach((function(e){return n.push(e)})),n}w(e)||(e=(e||"").match(/\S+/g)||[]);for(var r=[],i=new Ut(e),a=0;a<t.length;a++){for(var o=t[a],s=o._private,l=s.classes,u=!1,c=0;c<e.length;c++){var h=e[c];if(!l.has(h)){u=!0;break}}u||(u=l.size!==e.length),u&&(s.classes=i,r.push(o))}return r.length>0&&this.spawn(r).updateStyle().emit("class"),t},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var t=this[0];return null!=t&&t._private.classes.has(e)},toggleClass:function(e,t){w(e)||(e=e.match(/\S+/g)||[]);for(var n=this,r=void 0===t,i=[],a=0,o=n.length;a<o;a++)for(var s=n[a],l=s._private.classes,u=!1,c=0;c<e.length;c++){var h=e[c],d=l.has(h),p=!1;t||r&&!d?(l.add(h),p=!0):(!t||r&&d)&&(l.delete(h),p=!0),!u&&p&&(i.push(s),u=!0)}return i.length>0&&this.spawn(i).updateStyle().emit("class"),n},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,t){var n=this;if(null==t)t=250;else if(0===t)return n;return n.addClass(e),setTimeout((function(){n.removeClass(e)}),t),n}};vs.className=vs.classNames=vs.classes;var ys={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:"\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'",number:V,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};ys.variable="(?:[\\w-.]|(?:\\\\"+ys.metaChar+"))+",ys.className="(?:[\\w-]|(?:\\\\"+ys.metaChar+"))+",ys.value=ys.string+"|"+ys.number,ys.id=ys.variable,function(){var e,t,n;for(e=ys.comparatorOp.split("|"),n=0;n<e.length;n++)t=e[n],ys.comparatorOp+="|@"+t;for(e=ys.comparatorOp.split("|"),n=0;n<e.length;n++)(t=e[n]).indexOf("!")>=0||"="!==t&&(ys.comparatorOp+="|\\!"+t)}();var ms=function(){return{checks:[]}},bs={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},xs=[{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(e,t){return Z(e.selector,t.selector)})),ws=function(){for(var e,t={},n=0;n<xs.length;n++)t[(e=xs[n]).selector]=e.matches;return t}(),Es=function(e,t){return ws[e](t)},Ts="("+xs.map((function(e){return e.selector})).join("|")+")",_s=function(e){return e.replace(new RegExp("\\\\("+ys.metaChar+")","g"),(function(e,t){return t}))},Ds=function(e,t,n){e[e.length-1]=n},Cs=[{name:"group",query:!0,regex:"("+ys.group+")",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:bs.GROUP,value:"*"===r?r:r+"s"})}},{name:"state",query:!0,regex:Ts,populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:bs.STATE,value:r})}},{name:"id",query:!0,regex:"\\#("+ys.id+")",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:bs.ID,value:_s(r)})}},{name:"className",query:!0,regex:"\\.("+ys.className+")",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:bs.CLASS,value:_s(r)})}},{name:"dataExists",query:!0,regex:"\\[\\s*("+ys.variable+")\\s*\\]",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:bs.DATA_EXIST,field:_s(r)})}},{name:"dataCompare",query:!0,regex:"\\[\\s*("+ys.variable+")\\s*("+ys.comparatorOp+")\\s*("+ys.value+")\\s*\\]",populate:function(e,t,n){var r=o(n,3),i=r[0],a=r[1],s=r[2];s=null!=new RegExp("^"+ys.string+"$").exec(s)?s.substring(1,s.length-1):parseFloat(s),t.checks.push({type:bs.DATA_COMPARE,field:_s(i),operator:a,value:s})}},{name:"dataBool",query:!0,regex:"\\[\\s*("+ys.boolOp+")\\s*("+ys.variable+")\\s*\\]",populate:function(e,t,n){var r=o(n,2),i=r[0],a=r[1];t.checks.push({type:bs.DATA_BOOL,field:_s(a),operator:i})}},{name:"metaCompare",query:!0,regex:"\\[\\[\\s*("+ys.meta+")\\s*("+ys.comparatorOp+")\\s*("+ys.number+")\\s*\\]\\]",populate:function(e,t,n){var r=o(n,3),i=r[0],a=r[1],s=r[2];t.checks.push({type:bs.META_COMPARE,field:_s(i),operator:a,value:parseFloat(s)})}},{name:"nextQuery",separator:!0,regex:ys.separator,populate:function(e,t){var n=e.currentSubject,r=e.edgeCount,i=e.compoundCount,a=e[e.length-1];return null!=n&&(a.subject=n,e.currentSubject=null),a.edgeCount=r,a.compoundCount=i,e.edgeCount=0,e.compoundCount=0,e[e.length++]=ms()}},{name:"directedEdge",separator:!0,regex:ys.directedEdge,populate:function(e,t){if(null==e.currentSubject){var n=ms(),r=t,i=ms();return n.checks.push({type:bs.DIRECTED_EDGE,source:r,target:i}),Ds(e,t,n),e.edgeCount++,i}var a=ms(),o=t,s=ms();return a.checks.push({type:bs.NODE_SOURCE,source:o,target:s}),Ds(e,t,a),e.edgeCount++,s}},{name:"undirectedEdge",separator:!0,regex:ys.undirectedEdge,populate:function(e,t){if(null==e.currentSubject){var n=ms(),r=t,i=ms();return n.checks.push({type:bs.UNDIRECTED_EDGE,nodes:[r,i]}),Ds(e,t,n),e.edgeCount++,i}var a=ms(),o=t,s=ms();return a.checks.push({type:bs.NODE_NEIGHBOR,node:o,neighbor:s}),Ds(e,t,a),s}},{name:"child",separator:!0,regex:ys.child,populate:function(e,t){if(null==e.currentSubject){var n=ms(),r=ms(),i=e[e.length-1];return n.checks.push({type:bs.CHILD,parent:i,child:r}),Ds(e,t,n),e.compoundCount++,r}if(e.currentSubject===t){var a=ms(),o=e[e.length-1],s=ms(),l=ms(),u=ms(),c=ms();return a.checks.push({type:bs.COMPOUND_SPLIT,left:o,right:s,subject:l}),l.checks=t.checks,t.checks=[{type:bs.TRUE}],c.checks.push({type:bs.TRUE}),s.checks.push({type:bs.PARENT,parent:c,child:u}),Ds(e,o,a),e.currentSubject=l,e.compoundCount++,u}var h=ms(),d=ms(),p=[{type:bs.PARENT,parent:h,child:d}];return h.checks=t.checks,t.checks=p,e.compoundCount++,d}},{name:"descendant",separator:!0,regex:ys.descendant,populate:function(e,t){if(null==e.currentSubject){var n=ms(),r=ms(),i=e[e.length-1];return n.checks.push({type:bs.DESCENDANT,ancestor:i,descendant:r}),Ds(e,t,n),e.compoundCount++,r}if(e.currentSubject===t){var a=ms(),o=e[e.length-1],s=ms(),l=ms(),u=ms(),c=ms();return a.checks.push({type:bs.COMPOUND_SPLIT,left:o,right:s,subject:l}),l.checks=t.checks,t.checks=[{type:bs.TRUE}],c.checks.push({type:bs.TRUE}),s.checks.push({type:bs.ANCESTOR,ancestor:c,descendant:u}),Ds(e,o,a),e.currentSubject=l,e.compoundCount++,u}var h=ms(),d=ms(),p=[{type:bs.ANCESTOR,ancestor:h,descendant:d}];return h.checks=t.checks,t.checks=p,e.compoundCount++,d}},{name:"subject",modifier:!0,regex:ys.subject,populate:function(e,t){if(null!=e.currentSubject&&e.currentSubject!==t)return Nt("Redefinition of subject in selector `"+e.toString()+"`"),!1;e.currentSubject=t;var n=e[e.length-1].checks[0],r=null==n?null:n.type;r===bs.DIRECTED_EDGE?n.type=bs.NODE_TARGET:r===bs.UNDIRECTED_EDGE&&(n.type=bs.NODE_NEIGHBOR,n.node=n.nodes[1],n.neighbor=n.nodes[0],n.nodes=null)}}];Cs.forEach((function(e){return e.regexObj=new RegExp("^"+e.regex)}));var Ns=function(e){for(var t,n,r,i=0;i<Cs.length;i++){var a=Cs[i],o=a.name,s=e.match(a.regexObj);if(null!=s){n=s,t=a,r=o;var l=s[0];e=e.substring(l.length);break}}return{expr:t,match:n,name:r,remaining:e}},As=function(e){var t=e.match(/^\s+/);if(t){var n=t[0];e=e.substring(n.length)}return e},Ls=function(e){var t=this,n=t.inputText=e,r=t[0]=ms();for(t.length=1,n=As(n);;){var i=Ns(n);if(null==i.expr)return Nt("The selector `"+e+"`is invalid"),!1;var a=i.match.slice(1),o=i.expr.populate(t,r,a);if(!1===o)return!1;if(null!=o&&(r=o),(n=i.remaining).match(/^\s*$/))break}var s=t[t.length-1];null!=t.currentSubject&&(s.subject=t.currentSubject),s.edgeCount=t.edgeCount,s.compoundCount=t.compoundCount;for(var l=0;l<t.length;l++){var u=t[l];if(u.compoundCount>0&&u.edgeCount>0)return Nt("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(u.edgeCount>1)return Nt("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;1===u.edgeCount&&Nt("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},Ss=function(){if(null!=this.toStringCache)return this.toStringCache;for(var e=function(e){return null==e?"":e},t=function(t){return b(t)?'"'+t+'"':e(t)},n=function(e){return" "+e+" "},r=function(r,a){var o=r.type,s=r.value;switch(o){case bs.GROUP:var l=e(s);return l.substring(0,l.length-1);case bs.DATA_COMPARE:var u=r.field,c=r.operator;return"["+u+n(e(c))+t(s)+"]";case bs.DATA_BOOL:var h=r.operator,d=r.field;return"["+e(h)+d+"]";case bs.DATA_EXIST:return"["+r.field+"]";case bs.META_COMPARE:var p=r.operator;return"[["+r.field+n(e(p))+t(s)+"]]";case bs.STATE:return s;case bs.ID:return"#"+s;case bs.CLASS:return"."+s;case bs.PARENT:case bs.CHILD:return i(r.parent,a)+n(">")+i(r.child,a);case bs.ANCESTOR:case bs.DESCENDANT:return i(r.ancestor,a)+" "+i(r.descendant,a);case bs.COMPOUND_SPLIT:var g=i(r.left,a),f=i(r.subject,a),v=i(r.right,a);return g+(g.length>0?" ":"")+f+v;case bs.TRUE:return""}},i=function(e,t){return e.checks.reduce((function(n,i,a){return n+(t===e&&0===a?"$":"")+r(i,t)}),"")},a="",o=0;o<this.length;o++){var s=this[o];a+=i(s,s.subject),this.length>1&&o<this.length-1&&(a+=", ")}return this.toStringCache=a,a},Os={parse:Ls,toString:Ss},Is=function(e,t,n){var r,i,a,o=b(e),s=_(e),l=b(n),u=!1,c=!1,h=!1;switch(t.indexOf("!")>=0&&(t=t.replace("!",""),c=!0),t.indexOf("@")>=0&&(t=t.replace("@",""),u=!0),(o||l||u)&&(i=o||s?""+e:"",a=""+n),u&&(e=i=i.toLowerCase(),n=a=a.toLowerCase()),t){case"*=":r=i.indexOf(a)>=0;break;case"$=":r=i.indexOf(a,i.length-a.length)>=0;break;case"^=":r=0===i.indexOf(a);break;case"=":r=e===n;break;case">":h=!0,r=e>n;break;case">=":h=!0,r=e>=n;break;case"<":h=!0,r=e<n;break;case"<=":h=!0,r=e<=n;break;default:r=!1}return!c||null==e&&h||(r=!r),r},ks=function(e,t){switch(t){case"?":return!!e;case"!":return!e;case"^":return void 0===e}},Ms=function(e){return void 0!==e},Ps=function(e,t){return e.data(t)},Rs=function(e,t){return e[t]()},Bs=[],Fs=function(e,t){return e.checks.every((function(e){return Bs[e.type](e,t)}))};Bs[bs.GROUP]=function(e,t){var n=e.value;return"*"===n||n===t.group()},Bs[bs.STATE]=function(e,t){var n=e.value;return Es(n,t)},Bs[bs.ID]=function(e,t){var n=e.value;return t.id()===n},Bs[bs.CLASS]=function(e,t){var n=e.value;return t.hasClass(n)},Bs[bs.META_COMPARE]=function(e,t){var n=e.field,r=e.operator,i=e.value;return Is(Rs(t,n),r,i)},Bs[bs.DATA_COMPARE]=function(e,t){var n=e.field,r=e.operator,i=e.value;return Is(Ps(t,n),r,i)},Bs[bs.DATA_BOOL]=function(e,t){var n=e.field,r=e.operator;return ks(Ps(t,n),r)},Bs[bs.DATA_EXIST]=function(e,t){var n=e.field;return e.operator,Ms(Ps(t,n))},Bs[bs.UNDIRECTED_EDGE]=function(e,t){var n=e.nodes[0],r=e.nodes[1],i=t.source(),a=t.target();return Fs(n,i)&&Fs(r,a)||Fs(r,i)&&Fs(n,a)},Bs[bs.NODE_NEIGHBOR]=function(e,t){return Fs(e.node,t)&&t.neighborhood().some((function(t){return t.isNode()&&Fs(e.neighbor,t)}))},Bs[bs.DIRECTED_EDGE]=function(e,t){return Fs(e.source,t.source())&&Fs(e.target,t.target())},Bs[bs.NODE_SOURCE]=function(e,t){return Fs(e.source,t)&&t.outgoers().some((function(t){return t.isNode()&&Fs(e.target,t)}))},Bs[bs.NODE_TARGET]=function(e,t){return Fs(e.target,t)&&t.incomers().some((function(t){return t.isNode()&&Fs(e.source,t)}))},Bs[bs.CHILD]=function(e,t){return Fs(e.child,t)&&Fs(e.parent,t.parent())},Bs[bs.PARENT]=function(e,t){return Fs(e.parent,t)&&t.children().some((function(t){return Fs(e.child,t)}))},Bs[bs.DESCENDANT]=function(e,t){return Fs(e.descendant,t)&&t.ancestors().some((function(t){return Fs(e.ancestor,t)}))},Bs[bs.ANCESTOR]=function(e,t){return Fs(e.ancestor,t)&&t.descendants().some((function(t){return Fs(e.descendant,t)}))},Bs[bs.COMPOUND_SPLIT]=function(e,t){return Fs(e.subject,t)&&Fs(e.left,t)&&Fs(e.right,t)},Bs[bs.TRUE]=function(){return!0},Bs[bs.COLLECTION]=function(e,t){return e.value.has(t)},Bs[bs.FILTER]=function(e,t){return(0,e.value)(t)};var zs=function(e){var t=this;if(1===t.length&&1===t[0].checks.length&&t[0].checks[0].type===bs.ID)return e.getElementById(t[0].checks[0].value).collection();var n=function(e){for(var n=0;n<t.length;n++){var r=t[n];if(Fs(r,e))return!0}return!1};return null==t.text()&&(n=function(){return!0}),e.filter(n)},Gs={matches:function(e){for(var t=this,n=0;n<t.length;n++){var r=t[n];if(Fs(r,e))return!0}return!1},filter:zs},Ys=function(e){this.inputText=e,this.currentSubject=null,this.compoundCount=0,this.edgeCount=0,this.length=0,null==e||b(e)&&e.match(/^\s*$/)||(N(e)?this.addQuery({checks:[{type:bs.COLLECTION,value:e.collection()}]}):x(e)?this.addQuery({checks:[{type:bs.FILTER,value:e}]}):b(e)?this.parse(e)||(this.invalid=!0):Dt("A selector must be created from a string; found "))},Xs=Ys.prototype;[Os,Gs].forEach((function(e){return Q(Xs,e)})),Xs.text=function(){return this.inputText},Xs.size=function(){return this.length},Xs.eq=function(e){return this[e]},Xs.sameText=function(e){return!this.invalid&&!e.invalid&&this.text()===e.text()},Xs.addQuery=function(e){this[this.length++]=e},Xs.selector=Xs.toString;var Vs={allAre:function(e){var t=new Ys(e);return this.every((function(e){return t.matches(e)}))},is:function(e){var t=new Ys(e);return this.some((function(e){return t.matches(e)}))},some:function(e,t){for(var n=0;n<this.length;n++)if(t?e.apply(t,[this[n],n,this]):e(this[n],n,this))return!0;return!1},every:function(e,t){for(var n=0;n<this.length;n++)if(!(t?e.apply(t,[this[n],n,this]):e(this[n],n,this)))return!1;return!0},same:function(e){if(this===e)return!0;e=this.cy().collection(e);var t=this.length;return t===e.length&&(1===t?this[0]===e[0]:this.every((function(t){return e.hasElementWithId(t.id())})))},anySame:function(e){return e=this.cy().collection(e),this.some((function(t){return e.hasElementWithId(t.id())}))},allAreNeighbors:function(e){e=this.cy().collection(e);var t=this.neighborhood();return e.every((function(e){return t.hasElementWithId(e.id())}))},contains:function(e){e=this.cy().collection(e);var t=this;return e.every((function(e){return t.hasElementWithId(e.id())}))}};Vs.allAreNeighbours=Vs.allAreNeighbors,Vs.has=Vs.contains,Vs.equal=Vs.equals=Vs.same;var Us,js,Hs=function(e,t){return function(n,r,i,a){var o,s=n,l=this;if(null==s?o="":N(s)&&1===s.length&&(o=s.id()),1===l.length&&o){var u=l[0]._private,c=u.traversalCache=u.traversalCache||{},h=c[t]=c[t]||[],d=gt(o),p=h[d];return p||(h[d]=e.call(l,n,r,i,a))}return e.call(l,n,r,i,a)}},qs={parent:function(e){var t=[];if(1===this.length){var n=this[0]._private.parent;if(n)return n}for(var r=0;r<this.length;r++){var i=this[r]._private.parent;i&&t.push(i)}return this.spawn(t,!0).filter(e)},parents:function(e){for(var t=[],n=this.parent();n.nonempty();){for(var r=0;r<n.length;r++){var i=n[r];t.push(i)}n=n.parent()}return this.spawn(t,!0).filter(e)},commonAncestors:function(e){for(var t,n=0;n<this.length;n++){var r=this[n].parents();t=(t=t||r).intersect(r)}return t.filter(e)},orphans:function(e){return this.stdFilter((function(e){return e.isOrphan()})).filter(e)},nonorphans:function(e){return this.stdFilter((function(e){return e.isChild()})).filter(e)},children:Hs((function(e){for(var t=[],n=0;n<this.length;n++)for(var r=this[n]._private.children,i=0;i<r.length;i++)t.push(r[i]);return this.spawn(t,!0).filter(e)}),"children"),siblings:function(e){return this.parent().children().not(this).filter(e)},isParent:function(){var e=this[0];if(e)return e.isNode()&&0!==e._private.children.length},isChildless:function(){var e=this[0];if(e)return e.isNode()&&0===e._private.children.length},isChild:function(){var e=this[0];if(e)return e.isNode()&&null!=e._private.parent},isOrphan:function(){var e=this[0];if(e)return e.isNode()&&null==e._private.parent},descendants:function(e){var t=[];function n(e){for(var r=0;r<e.length;r++){var i=e[r];t.push(i),i.children().nonempty()&&n(i.children())}}return n(this.children()),this.spawn(t,!0).filter(e)}};function Ws(e,t,n,r){for(var i=[],a=new Ut,o=e.cy().hasCompoundNodes(),s=0;s<e.length;s++){var l=e[s];n?i.push(l):o&&r(i,a,l)}for(;i.length>0;){var u=i.shift();t(u),a.add(u.id()),o&&r(i,a,u)}return e}function $s(e,t,n){if(n.isParent())for(var r=n._private.children,i=0;i<r.length;i++){var a=r[i];t.has(a.id())||e.push(a)}}function Ks(e,t,n){if(n.isChild()){var r=n._private.parent;t.has(r.id())||e.push(r)}}function Zs(e,t,n){Ks(e,t,n),$s(e,t,n)}qs.forEachDown=function(e){return Ws(this,e,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],$s)},qs.forEachUp=function(e){return Ws(this,e,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],Ks)},qs.forEachUpAndDown=function(e){return Ws(this,e,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],Zs)},qs.ancestors=qs.parents,(Us=js={data:gs.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:gs.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:gs.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:gs.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:gs.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:gs.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}}).attr=Us.data,Us.removeAttr=Us.removeData;var Qs,Js,el=js,tl={};function nl(e){return function(t){var n=this;if(void 0===t&&(t=!0),0!==n.length&&n.isNode()&&!n.removed()){for(var r=0,i=n[0],a=i._private.edges,o=0;o<a.length;o++){var s=a[o];!t&&s.isLoop()||(r+=e(i,s))}return r}}}function rl(e,t){return function(n){for(var r,i=this.nodes(),a=0;a<i.length;a++){var o=i[a][e](n);void 0===o||void 0!==r&&!t(o,r)||(r=o)}return r}}Q(tl,{degree:nl((function(e,t){return t.source().same(t.target())?2:1})),indegree:nl((function(e,t){return t.target().same(e)?1:0})),outdegree:nl((function(e,t){return t.source().same(e)?1:0}))}),Q(tl,{minDegree:rl("degree",(function(e,t){return e<t})),maxDegree:rl("degree",(function(e,t){return e>t})),minIndegree:rl("indegree",(function(e,t){return e<t})),maxIndegree:rl("indegree",(function(e,t){return e>t})),minOutdegree:rl("outdegree",(function(e,t){return e<t})),maxOutdegree:rl("outdegree",(function(e,t){return e>t}))}),Q(tl,{totalDegree:function(e){for(var t=0,n=this.nodes(),r=0;r<n.length;r++)t+=n[r].degree(e);return t}});var il=function(e,t,n){for(var r=0;r<e.length;r++){var i=e[r];if(!i.locked()){var a=i._private.position,o={x:null!=t.x?t.x-a.x:0,y:null!=t.y?t.y-a.y:0};!i.isParent()||0===o.x&&0===o.y||i.children().shift(o,n),i.dirtyBoundingBoxCache()}}},al={field:"position",bindingEvent:"position",allowBinding:!0,allowSetting:!0,settingEvent:"position",settingTriggersEvent:!0,triggerFnName:"emitAndNotify",allowGetting:!0,validKeys:["x","y"],beforeGet:function(e){e.updateCompoundBounds()},beforeSet:function(e,t){il(e,t,!1)},onSet:function(e){e.dirtyCompoundBoundsCache()},canSet:function(e){return!e.locked()}};Qs=Js={position:gs.data(al),silentPosition:gs.data(Q({},al,{allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!1,beforeSet:function(e,t){il(e,t,!0)},onSet:function(e){e.dirtyCompoundBoundsCache()}})),positions:function(e,t){if(E(e))t?this.silentPosition(e):this.position(e);else if(x(e)){var n=e,r=this.cy();r.startBatch();for(var i=0;i<this.length;i++){var a=this[i],o=void 0;(o=n(a,i))&&(t?a.silentPosition(o):a.position(o))}r.endBatch()}return this},silentPositions:function(e){return this.positions(e,!0)},shift:function(e,t,n){var r;if(E(e)?(r={x:_(e.x)?e.x:0,y:_(e.y)?e.y:0},n=t):b(e)&&_(t)&&((r={x:0,y:0})[e]=t),null!=r){var i=this.cy();i.startBatch();for(var a=0;a<this.length;a++){var o=this[a];if(!(i.hasCompoundNodes()&&o.isChild()&&o.ancestors().anySame(this))){var s=o.position(),l={x:s.x+r.x,y:s.y+r.y};n?o.silentPosition(l):o.position(l)}}i.endBatch()}return this},silentShift:function(e,t){return E(e)?this.shift(e,!0):b(e)&&_(t)&&this.shift(e,t,!0),this},renderedPosition:function(e,t){var n=this[0],r=this.cy(),i=r.zoom(),a=r.pan(),o=E(e)?e:void 0,s=void 0!==o||void 0!==t&&b(e);if(n&&n.isNode()){if(!s){var l=n.position();return o=hn(l,i,a),void 0===e?o:o[e]}for(var u=0;u<this.length;u++){var c=this[u];void 0!==t?c.position(e,(t-a[e])/i):void 0!==o&&c.position(dn(o,i,a))}}else if(!s)return;return this},relativePosition:function(e,t){var n=this[0],r=this.cy(),i=E(e)?e:void 0,a=void 0!==i||void 0!==t&&b(e),o=r.hasCompoundNodes();if(n&&n.isNode()){if(!a){var s=n.position(),l=o?n.parent():null,u=l&&l.length>0,c=u;u&&(l=l[0]);var h=c?l.position():{x:0,y:0};return i={x:s.x-h.x,y:s.y-h.y},void 0===e?i:i[e]}for(var d=0;d<this.length;d++){var p=this[d],g=o?p.parent():null,f=g&&g.length>0,v=f;f&&(g=g[0]);var y=v?g.position():{x:0,y:0};void 0!==t?p.position(e,t+y[e]):void 0!==i&&p.position({x:i.x+y.x,y:i.y+y.y})}}else if(!a)return;return this}},Qs.modelPosition=Qs.point=Qs.position,Qs.modelPositions=Qs.points=Qs.positions,Qs.renderedPoint=Qs.renderedPosition,Qs.relativePoint=Qs.relativePosition;var ol,sl,ll=Js;ol=sl={},sl.renderedBoundingBox=function(e){var t=this.boundingBox(e),n=this.cy(),r=n.zoom(),i=n.pan(),a=t.x1*r+i.x,o=t.x2*r+i.x,s=t.y1*r+i.y,l=t.y2*r+i.y;return{x1:a,x2:o,y1:s,y2:l,w:o-a,h:l-s}},sl.dirtyCompoundBoundsCache=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();return t.styleEnabled()&&t.hasCompoundNodes()?(this.forEachUp((function(t){if(t.isParent()){var n=t._private;n.compoundBoundsClean=!1,n.bbCache=null,e||t.emitAndNotify("bounds")}})),this):this},sl.updateCompoundBounds=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes())return this;if(!e&&t.batching())return this;function n(e){if(e.isParent()){var t=e._private,n=e.children(),r="include"===e.pstyle("compound-sizing-wrt-labels").value,i={width:{val:e.pstyle("min-width").pfValue,left:e.pstyle("min-width-bias-left"),right:e.pstyle("min-width-bias-right")},height:{val:e.pstyle("min-height").pfValue,top:e.pstyle("min-height-bias-top"),bottom:e.pstyle("min-height-bias-bottom")}},a=n.boundingBox({includeLabels:r,includeOverlays:!1,useCache:!1}),o=t.position;0!==a.w&&0!==a.h||((a={w:e.pstyle("width").pfValue,h:e.pstyle("height").pfValue}).x1=o.x-a.w/2,a.x2=o.x+a.w/2,a.y1=o.y-a.h/2,a.y2=o.y+a.h/2);var s=i.width.left.value;"px"===i.width.left.units&&i.width.val>0&&(s=100*s/i.width.val);var l=i.width.right.value;"px"===i.width.right.units&&i.width.val>0&&(l=100*l/i.width.val);var u=i.height.top.value;"px"===i.height.top.units&&i.height.val>0&&(u=100*u/i.height.val);var c=i.height.bottom.value;"px"===i.height.bottom.units&&i.height.val>0&&(c=100*c/i.height.val);var h=y(i.width.val-a.w,s,l),d=h.biasDiff,p=h.biasComplementDiff,g=y(i.height.val-a.h,u,c),f=g.biasDiff,v=g.biasComplementDiff;t.autoPadding=m(a.w,a.h,e.pstyle("padding"),e.pstyle("padding-relative-to").value),t.autoWidth=Math.max(a.w,i.width.val),o.x=(-d+a.x1+a.x2+p)/2,t.autoHeight=Math.max(a.h,i.height.val),o.y=(-f+a.y1+a.y2+v)/2}function y(e,t,n){var r=0,i=0,a=t+n;return e>0&&a>0&&(r=t/a*e,i=n/a*e),{biasDiff:r,biasComplementDiff:i}}function m(e,t,n,r){if("%"!==n.units)return"px"===n.units?n.pfValue:0;switch(r){case"width":return e>0?n.pfValue*e:0;case"height":return t>0?n.pfValue*t:0;case"average":return e>0&&t>0?n.pfValue*(e+t)/2:0;case"min":return e>0&&t>0?e>t?n.pfValue*t:n.pfValue*e:0;case"max":return e>0&&t>0?e>t?n.pfValue*e:n.pfValue*t:0;default:return 0}}}for(var r=0;r<this.length;r++){var i=this[r],a=i._private;a.compoundBoundsClean&&!e||(n(i),t.batching()||(a.compoundBoundsClean=!0))}return this};var ul=function(e){return e===1/0||e===-1/0?0:e},cl=function(e,t,n,r,i){r-t!=0&&i-n!=0&&null!=t&&null!=n&&null!=r&&null!=i&&(e.x1=t<e.x1?t:e.x1,e.x2=r>e.x2?r:e.x2,e.y1=n<e.y1?n:e.y1,e.y2=i>e.y2?i:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},hl=function(e,t){return null==t?e:cl(e,t.x1,t.y1,t.x2,t.y2)},dl=function(e,t,n){return Ft(e,t,n)},pl=function(e,t,n){if(!t.cy().headless()){var r,i,a=t._private,o=a.rstyle,s=o.arrowWidth/2;if("none"!==t.pstyle(n+"-arrow-shape").value){"source"===n?(r=o.srcX,i=o.srcY):"target"===n?(r=o.tgtX,i=o.tgtY):(r=o.midX,i=o.midY);var l=a.arrowBounds=a.arrowBounds||{},u=l[n]=l[n]||{};u.x1=r-s,u.y1=i-s,u.x2=r+s,u.y2=i+s,u.w=u.x2-u.x1,u.h=u.y2-u.y1,Mn(u,1),cl(e,u.x1,u.y1,u.x2,u.y2)}}},gl=function(e,t,n){if(!t.cy().headless()){var r;r=n?n+"-":"";var i=t._private,a=i.rstyle;if(t.pstyle(r+"label").strValue){var o,s,l,u,c=t.pstyle("text-halign"),h=t.pstyle("text-valign"),d=dl(a,"labelWidth",n),p=dl(a,"labelHeight",n),g=dl(a,"labelX",n),f=dl(a,"labelY",n),v=t.pstyle(r+"text-margin-x").pfValue,y=t.pstyle(r+"text-margin-y").pfValue,m=t.isEdge(),b=t.pstyle(r+"text-rotation"),x=t.pstyle("text-outline-width").pfValue,w=t.pstyle("text-border-width").pfValue/2,E=t.pstyle("text-background-padding").pfValue,T=2,_=p,D=d,C=D/2,N=_/2;if(m)o=g-C,s=g+C,l=f-N,u=f+N;else{switch(c.value){case"left":o=g-D,s=g;break;case"center":o=g-C,s=g+C;break;case"right":o=g,s=g+D}switch(h.value){case"top":l=f-_,u=f;break;case"center":l=f-N,u=f+N;break;case"bottom":l=f,u=f+_}}o+=v-Math.max(x,w)-E-T,s+=v+Math.max(x,w)+E+T,l+=y-Math.max(x,w)-E-T,u+=y+Math.max(x,w)+E+T;var A=n||"main",L=i.labelBounds,S=L[A]=L[A]||{};S.x1=o,S.y1=l,S.x2=s,S.y2=u,S.w=s-o,S.h=u-l;var O=m&&"autorotate"===b.strValue,I=null!=b.pfValue&&0!==b.pfValue;if(O||I){var k=O?dl(i.rstyle,"labelAngle",n):b.pfValue,M=Math.cos(k),P=Math.sin(k),R=(o+s)/2,B=(l+u)/2;if(!m){switch(c.value){case"left":R=s;break;case"right":R=o}switch(h.value){case"top":B=u;break;case"bottom":B=l}}var F=function(e,t){return{x:(e-=R)*M-(t-=B)*P+R,y:e*P+t*M+B}},z=F(o,l),G=F(o,u),Y=F(s,l),X=F(s,u);o=Math.min(z.x,G.x,Y.x,X.x),s=Math.max(z.x,G.x,Y.x,X.x),l=Math.min(z.y,G.y,Y.y,X.y),u=Math.max(z.y,G.y,Y.y,X.y)}var V=A+"Rot",U=L[V]=L[V]||{};U.x1=o,U.y1=l,U.x2=s,U.y2=u,U.w=s-o,U.h=u-l,cl(e,o,l,s,u),cl(i.labelBounds.all,o,l,s,u)}return e}},fl=function(e,t){var n,r,i,a,o,s,l=e._private.cy,u=l.styleEnabled(),c=l.headless(),h=Ln(),d=e._private,p=e.isNode(),g=e.isEdge(),f=d.rstyle,v=p&&u?e.pstyle("bounds-expansion").pfValue:[0],y=function(e){return"none"!==e.pstyle("display").value},m=!u||y(e)&&(!g||y(e.source())&&y(e.target()));if(m){var b=0;u&&t.includeOverlays&&0!==e.pstyle("overlay-opacity").value&&(b=e.pstyle("overlay-padding").value);var x=0;u&&t.includeUnderlays&&0!==e.pstyle("underlay-opacity").value&&(x=e.pstyle("underlay-padding").value);var w=Math.max(b,x),E=0;if(u&&(E=e.pstyle("width").pfValue/2),p&&t.includeNodes){var T=e.position();o=T.x,s=T.y;var _=e.outerWidth()/2,D=e.outerHeight()/2;cl(h,n=o-_,i=s-D,r=o+_,a=s+D)}else if(g&&t.includeEdges)if(u&&!c){var C=e.pstyle("curve-style").strValue;if(n=Math.min(f.srcX,f.midX,f.tgtX),r=Math.max(f.srcX,f.midX,f.tgtX),i=Math.min(f.srcY,f.midY,f.tgtY),a=Math.max(f.srcY,f.midY,f.tgtY),cl(h,n-=E,i-=E,r+=E,a+=E),"haystack"===C){var N=f.haystackPts;if(N&&2===N.length){if(n=N[0].x,i=N[0].y,n>(r=N[1].x)){var A=n;n=r,r=A}if(i>(a=N[1].y)){var L=i;i=a,a=L}cl(h,n-E,i-E,r+E,a+E)}}else if("bezier"===C||"unbundled-bezier"===C||"segments"===C||"taxi"===C){var S;switch(C){case"bezier":case"unbundled-bezier":S=f.bezierPts;break;case"segments":case"taxi":S=f.linePts}if(null!=S)for(var O=0;O<S.length;O++){var I=S[O];n=I.x-E,r=I.x+E,i=I.y-E,a=I.y+E,cl(h,n,i,r,a)}}}else{var k=e.source().position(),M=e.target().position();if((n=k.x)>(r=M.x)){var P=n;n=r,r=P}if((i=k.y)>(a=M.y)){var R=i;i=a,a=R}cl(h,n-=E,i-=E,r+=E,a+=E)}if(u&&t.includeEdges&&g&&(pl(h,e,"mid-source"),pl(h,e,"mid-target"),pl(h,e,"source"),pl(h,e,"target")),u&&"yes"===e.pstyle("ghost").value){var B=e.pstyle("ghost-offset-x").pfValue,F=e.pstyle("ghost-offset-y").pfValue;cl(h,h.x1+B,h.y1+F,h.x2+B,h.y2+F)}var z=d.bodyBounds=d.bodyBounds||{};Rn(z,h),Pn(z,v),Mn(z,1),u&&(n=h.x1,r=h.x2,i=h.y1,a=h.y2,cl(h,n-w,i-w,r+w,a+w));var G=d.overlayBounds=d.overlayBounds||{};Rn(G,h),Pn(G,v),Mn(G,1);var Y=d.labelBounds=d.labelBounds||{};null!=Y.all?On(Y.all):Y.all=Ln(),u&&t.includeLabels&&(t.includeMainLabels&&gl(h,e,null),g&&(t.includeSourceLabels&&gl(h,e,"source"),t.includeTargetLabels&&gl(h,e,"target")))}return h.x1=ul(h.x1),h.y1=ul(h.y1),h.x2=ul(h.x2),h.y2=ul(h.y2),h.w=ul(h.x2-h.x1),h.h=ul(h.y2-h.y1),h.w>0&&h.h>0&&m&&(Pn(h,v),Mn(h,1)),h},vl=function(e){var t=0,n=function(e){return(e?1:0)<<t++},r=0;return r+=n(e.incudeNodes),r+=n(e.includeEdges),r+=n(e.includeLabels),r+=n(e.includeMainLabels),r+=n(e.includeSourceLabels),r+=n(e.includeTargetLabels),r+=n(e.includeOverlays)},yl=function(e){if(e.isEdge()){var t=e.source().position(),n=e.target().position(),r=function(e){return Math.round(e)};return pt([r(t.x),r(t.y),r(n.x),r(n.y)])}return 0},ml=function(e,t){var n,r=e._private,i=e.isEdge(),a=(null==t?xl:vl(t))===xl,o=yl(e),s=r.bbCachePosKey===o,l=t.useCache&&s,u=function(e){return null==e._private.bbCache||e._private.styleDirty};if(!l||u(e)||i&&u(e.source())||u(e.target())?(s||e.recalculateRenderedStyle(l),n=fl(e,bl),r.bbCache=n,r.bbCachePosKey=o):n=r.bbCache,!a){var c=e.isNode();n=Ln(),(t.includeNodes&&c||t.includeEdges&&!c)&&(t.includeOverlays?hl(n,r.overlayBounds):hl(n,r.bodyBounds)),t.includeLabels&&(t.includeMainLabels&&(!i||t.includeSourceLabels&&t.includeTargetLabels)?hl(n,r.labelBounds.all):(t.includeMainLabels&&hl(n,r.labelBounds.mainRot),t.includeSourceLabels&&hl(n,r.labelBounds.sourceRot),t.includeTargetLabels&&hl(n,r.labelBounds.targetRot))),n.w=n.x2-n.x1,n.h=n.y2-n.y1}return n},bl={includeNodes:!0,includeEdges:!0,includeLabels:!0,includeMainLabels:!0,includeSourceLabels:!0,includeTargetLabels:!0,includeOverlays:!0,includeUnderlays:!0,useCache:!0},xl=vl(bl),wl=Mt(bl);sl.boundingBox=function(e){var t;if(1!==this.length||null==this[0]._private.bbCache||this[0]._private.styleDirty||void 0!==e&&void 0!==e.useCache&&!0!==e.useCache){t=Ln();var n=wl(e=e||bl),r=this;if(r.cy().styleEnabled())for(var i=0;i<r.length;i++){var a=r[i],o=a._private,s=yl(a),l=o.bbCachePosKey===s,u=n.useCache&&l&&!o.styleDirty;a.recalculateRenderedStyle(u)}this.updateCompoundBounds(!e.useCache);for(var c=0;c<r.length;c++){var h=r[c];hl(t,ml(h,n))}}else e=void 0===e?bl:wl(e),t=ml(this[0],e);return t.x1=ul(t.x1),t.y1=ul(t.y1),t.x2=ul(t.x2),t.y2=ul(t.y2),t.w=ul(t.x2-t.x1),t.h=ul(t.y2-t.y1),t},sl.dirtyBoundingBoxCache=function(){for(var e=0;e<this.length;e++){var t=this[e]._private;t.bbCache=null,t.bbCachePosKey=null,t.bodyBounds=null,t.overlayBounds=null,t.labelBounds.all=null,t.labelBounds.source=null,t.labelBounds.target=null,t.labelBounds.main=null,t.labelBounds.sourceRot=null,t.labelBounds.targetRot=null,t.labelBounds.mainRot=null,t.arrowBounds.source=null,t.arrowBounds.target=null,t.arrowBounds["mid-source"]=null,t.arrowBounds["mid-target"]=null}return this.emitAndNotify("bounds"),this},sl.boundingBoxAt=function(e){var t=this.nodes(),n=this.cy(),r=n.hasCompoundNodes(),i=n.collection();if(r&&(i=t.filter((function(e){return e.isParent()})),t=t.not(i)),E(e)){var a=e;e=function(){return a}}var o=function(t,n){return t._private.bbAtOldPos=e(t,n)},s=function(e){return e._private.bbAtOldPos};n.startBatch(),t.forEach(o).silentPositions(e),r&&(i.dirtyCompoundBoundsCache(),i.dirtyBoundingBoxCache(),i.updateCompoundBounds(!0));var l=Sn(this.boundingBox({useCache:!1}));return t.silentPositions(s),r&&(i.dirtyCompoundBoundsCache(),i.dirtyBoundingBoxCache(),i.updateCompoundBounds(!0)),n.endBatch(),l},ol.boundingbox=ol.bb=ol.boundingBox,ol.renderedBoundingbox=ol.renderedBoundingBox;var El,Tl,_l=sl;El=Tl={};var Dl=function(e){e.uppercaseName=X(e.name),e.autoName="auto"+e.uppercaseName,e.labelName="label"+e.uppercaseName,e.outerName="outer"+e.uppercaseName,e.uppercaseOuterName=X(e.outerName),El[e.name]=function(){var t=this[0],n=t._private,r=n.cy._private.styleEnabled;if(t){if(r){if(t.isParent())return t.updateCompoundBounds(),n[e.autoName]||0;var i=t.pstyle(e.name);return"label"===i.strValue?(t.recalculateRenderedStyle(),n.rstyle[e.labelName]||0):i.pfValue}return 1}},El["outer"+e.uppercaseName]=function(){var t=this[0],n=t._private.cy._private.styleEnabled;if(t)return n?t[e.name]()+t.pstyle("border-width").pfValue+2*t.padding():1},El["rendered"+e.uppercaseName]=function(){var t=this[0];if(t)return t[e.name]()*this.cy().zoom()},El["rendered"+e.uppercaseOuterName]=function(){var t=this[0];if(t)return t[e.outerName]()*this.cy().zoom()}};Dl({name:"width"}),Dl({name:"height"}),Tl.padding=function(){var e=this[0],t=e._private;return e.isParent()?(e.updateCompoundBounds(),void 0!==t.autoPadding?t.autoPadding:e.pstyle("padding").pfValue):e.pstyle("padding").pfValue},Tl.paddedHeight=function(){var e=this[0];return e.height()+2*e.padding()},Tl.paddedWidth=function(){var e=this[0];return e.width()+2*e.padding()};var Cl=Tl,Nl=function(e,t){if(e.isEdge())return t(e)},Al=function(e,t){if(e.isEdge()){var n=e.cy();return hn(t(e),n.zoom(),n.pan())}},Ll=function(e,t){if(e.isEdge()){var n=e.cy(),r=n.pan(),i=n.zoom();return t(e).map((function(e){return hn(e,i,r)}))}},Sl={controlPoints:{get:function(e){return e.renderer().getControlPoints(e)},mult:!0},segmentPoints:{get:function(e){return e.renderer().getSegmentPoints(e)},mult:!0},sourceEndpoint:{get:function(e){return e.renderer().getSourceEndpoint(e)}},targetEndpoint:{get:function(e){return e.renderer().getTargetEndpoint(e)}},midpoint:{get:function(e){return e.renderer().getEdgeMidpoint(e)}}},Ol=function(e){return"rendered"+e[0].toUpperCase()+e.substr(1)},Il=Object.keys(Sl).reduce((function(e,t){var n=Sl[t],r=Ol(t);return e[t]=function(){return Nl(this,n.get)},n.mult?e[r]=function(){return Ll(this,n.get)}:e[r]=function(){return Al(this,n.get)},e}),{}),kl=Q({},ll,_l,Cl,Il),Ml=function(e,t){this.recycle(e,t)};function Pl(){return!1}function Rl(){return!0}Ml.prototype={instanceString:function(){return"event"},recycle:function(e,t){if(this.isImmediatePropagationStopped=this.isPropagationStopped=this.isDefaultPrevented=Pl,null!=e&&e.preventDefault?(this.type=e.type,this.isDefaultPrevented=e.defaultPrevented?Rl:Pl):null!=e&&e.type?t=e:this.type=e,null!=t&&(this.originalEvent=t.originalEvent,this.type=null!=t.type?t.type:this.type,this.cy=t.cy,this.target=t.target,this.position=t.position,this.renderedPosition=t.renderedPosition,this.namespace=t.namespace,this.layout=t.layout),null!=this.cy&&null!=this.position&&null==this.renderedPosition){var n=this.position,r=this.cy.zoom(),i=this.cy.pan();this.renderedPosition={x:n.x*r+i.x,y:n.y*r+i.y}}this.timeStamp=e&&e.timeStamp||Date.now()},preventDefault:function(){this.isDefaultPrevented=Rl;var e=this.originalEvent;e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){this.isPropagationStopped=Rl;var e=this.originalEvent;e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Rl,this.stopPropagation()},isDefaultPrevented:Pl,isPropagationStopped:Pl,isImmediatePropagationStopped:Pl};var Bl=/^([^.]+)(\.(?:[^.]+))?$/,Fl=".*",zl={qualifierCompare:function(e,t){return e===t},eventMatches:function(){return!0},addEventFields:function(){},callbackContext:function(e){return e},beforeEmit:function(){},afterEmit:function(){},bubble:function(){return!1},parent:function(){return null},context:null},Gl=Object.keys(zl),Yl={};function Xl(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Yl,t=arguments.length>1?arguments[1]:void 0,n=0;n<Gl.length;n++){var r=Gl[n];this[r]=e[r]||zl[r]}this.context=t||this.context,this.listeners=[],this.emitting=0}var Vl=Xl.prototype,Ul=function(e,t,n,r,i,a,o){x(r)&&(i=r,r=null),o&&(a=null==a?o:Q({},a,o));for(var s=w(n)?n:n.split(/\s+/),l=0;l<s.length;l++){var u=s[l];if(!k(u)){var c=u.match(Bl);if(c&&!1===t(e,u,c[1],c[2]?c[2]:null,r,i,a))break}}},jl=function(e,t){return e.addEventFields(e.context,t),new Ml(t.type,t)},Hl=function(e,t,n){if(I(n))t(e,n);else if(E(n))t(e,jl(e,n));else for(var r=w(n)?n:n.split(/\s+/),i=0;i<r.length;i++){var a=r[i];if(!k(a)){var o=a.match(Bl);if(o){var s=o[1],l=o[2]?o[2]:null;t(e,jl(e,{type:s,namespace:l,target:e.context}))}}}};Vl.on=Vl.addListener=function(e,t,n,r,i){return Ul(this,(function(e,t,n,r,i,a,o){x(a)&&e.listeners.push({event:t,callback:a,type:n,namespace:r,qualifier:i,conf:o})}),e,t,n,r,i),this},Vl.one=function(e,t,n,r){return this.on(e,t,n,r,{one:!0})},Vl.removeListener=Vl.off=function(e,t,n,r){var i=this;0!==this.emitting&&(this.listeners=St(this.listeners));for(var a=this.listeners,o=function(o){var s=a[o];Ul(i,(function(t,n,r,i,l,u){if((s.type===r||"*"===e)&&(!i&&".*"!==s.namespace||s.namespace===i)&&(!l||t.qualifierCompare(s.qualifier,l))&&(!u||s.callback===u))return a.splice(o,1),!1}),e,t,n,r)},s=a.length-1;s>=0;s--)o(s);return this},Vl.removeAllListeners=function(){return this.removeListener("*")},Vl.emit=Vl.trigger=function(e,t,n){var r=this.listeners,i=r.length;return this.emitting++,w(t)||(t=[t]),Hl(this,(function(e,a){null!=n&&(r=[{event:a.event,type:a.type,namespace:a.namespace,callback:n}],i=r.length);for(var o=function(n){var i=r[n];if(i.type===a.type&&(!i.namespace||i.namespace===a.namespace||i.namespace===Fl)&&e.eventMatches(e.context,i,a)){var o=[a];null!=t&&Bt(o,t),e.beforeEmit(e.context,i,a),i.conf&&i.conf.one&&(e.listeners=e.listeners.filter((function(e){return e!==i})));var s=e.callbackContext(e.context,i,a),l=i.callback.apply(s,o);e.afterEmit(e.context,i,a),!1===l&&(a.stopPropagation(),a.preventDefault())}},s=0;s<i;s++)o(s);e.bubble(e.context)&&!a.isPropagationStopped()&&e.parent(e.context).emit(a,t)}),e),this.emitting--,this};var ql={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&A(n.target)&&r.matches(n.target)},addEventFields:function(e,t){t.cy=e.cy(),t.target=e},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e},beforeEmit:function(e,t){t.conf&&t.conf.once&&t.conf.onceCollection.removeListener(t.event,t.qualifier,t.callback)},bubble:function(){return!0},parent:function(e){return e.isChild()?e.parent():e.cy()}},Wl=function(e){return b(e)?new Ys(e):e},$l={createEmitter:function(){for(var e=0;e<this.length;e++){var t=this[e],n=t._private;n.emitter||(n.emitter=new Xl(ql,t))}return this},emitter:function(){return this._private.emitter},on:function(e,t,n){for(var r=Wl(t),i=0;i<this.length;i++)this[i].emitter().on(e,r,n);return this},removeListener:function(e,t,n){for(var r=Wl(t),i=0;i<this.length;i++)this[i].emitter().removeListener(e,r,n);return this},removeAllListeners:function(){for(var e=0;e<this.length;e++)this[e].emitter().removeAllListeners();return this},one:function(e,t,n){for(var r=Wl(t),i=0;i<this.length;i++)this[i].emitter().one(e,r,n);return this},once:function(e,t,n){for(var r=Wl(t),i=0;i<this.length;i++)this[i].emitter().on(e,r,n,{once:!0,onceCollection:this})},emit:function(e,t){for(var n=0;n<this.length;n++)this[n].emitter().emit(e,t);return this},emitAndNotify:function(e,t){if(0!==this.length)return this.cy().notify(e,this),this.emit(e,t),this}};gs.eventAliasesOn($l);var Kl={nodes:function(e){return this.filter((function(e){return e.isNode()})).filter(e)},edges:function(e){return this.filter((function(e){return e.isEdge()})).filter(e)},byGroup:function(){for(var e=this.spawn(),t=this.spawn(),n=0;n<this.length;n++){var r=this[n];r.isNode()?e.push(r):t.push(r)}return{nodes:e,edges:t}},filter:function(e,t){if(void 0===e)return this;if(b(e)||N(e))return new Ys(e).filter(this);if(x(e)){for(var n=this.spawn(),r=this,i=0;i<r.length;i++){var a=r[i];(t?e.apply(t,[a,i,r]):e(a,i,r))&&n.push(a)}return n}return this.spawn()},not:function(e){if(e){b(e)&&(e=this.filter(e));for(var t=this.spawn(),n=0;n<this.length;n++){var r=this[n];e.has(r)||t.push(r)}return t}return this},absoluteComplement:function(){return this.cy().mutableElements().not(this)},intersect:function(e){if(b(e)){var t=e;return this.filter(t)}for(var n=this.spawn(),r=this,i=e,a=this.length<e.length,o=a?r:i,s=a?i:r,l=0;l<o.length;l++){var u=o[l];s.has(u)&&n.push(u)}return n},xor:function(e){var t=this._private.cy;b(e)&&(e=t.$(e));var n=this.spawn(),r=this,i=e,a=function(e,t){for(var r=0;r<e.length;r++){var i=e[r],a=i._private.data.id;t.hasElementWithId(a)||n.push(i)}};return a(r,i),a(i,r),n},diff:function(e){var t=this._private.cy;b(e)&&(e=t.$(e));var n=this.spawn(),r=this.spawn(),i=this.spawn(),a=this,o=e,s=function(e,t,n){for(var r=0;r<e.length;r++){var a=e[r],o=a._private.data.id;t.hasElementWithId(o)?i.merge(a):n.push(a)}};return s(a,o,n),s(o,a,r),{left:n,right:r,both:i}},add:function(e){var t=this._private.cy;if(!e)return this;if(b(e)){var n=e;e=t.mutableElements().filter(n)}for(var r=this.spawnSelf(),i=0;i<e.length;i++){var a=e[i],o=!this.has(a);o&&r.push(a)}return r},merge:function(e){var t=this._private,n=t.cy;if(!e)return this;if(e&&b(e)){var r=e;e=n.mutableElements().filter(r)}for(var i=t.map,a=0;a<e.length;a++){var o=e[a],s=o._private.data.id;if(!i.has(s)){var l=this.length++;this[l]=o,i.set(s,{ele:o,index:l})}}return this},unmergeAt:function(e){var t=this[e].id(),n=this._private.map;this[e]=void 0,n.delete(t);var r=e===this.length-1;if(this.length>1&&!r){var i=this.length-1,a=this[i],o=a._private.data.id;this[i]=void 0,this[e]=a,n.set(o,{ele:a,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var t=this._private,n=e._private.data.id,r=t.map.get(n);if(!r)return this;var i=r.index;return this.unmergeAt(i),this},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&b(e)){var n=e;e=t.mutableElements().filter(n)}for(var r=0;r<e.length;r++)this.unmergeOne(e[r]);return this},unmergeBy:function(e){for(var t=this.length-1;t>=0;t--)e(this[t])&&this.unmergeAt(t);return this},map:function(e,t){for(var n=[],r=this,i=0;i<r.length;i++){var a=r[i],o=t?e.apply(t,[a,i,r]):e(a,i,r);n.push(o)}return n},reduce:function(e,t){for(var n=t,r=this,i=0;i<r.length;i++)n=e(n,r[i],i,r);return n},max:function(e,t){for(var n,r=-1/0,i=this,a=0;a<i.length;a++){var o=i[a],s=t?e.apply(t,[o,a,i]):e(o,a,i);s>r&&(r=s,n=o)}return{value:r,ele:n}},min:function(e,t){for(var n,r=1/0,i=this,a=0;a<i.length;a++){var o=i[a],s=t?e.apply(t,[o,a,i]):e(o,a,i);s<r&&(r=s,n=o)}return{value:r,ele:n}}},Zl=Kl;Zl.u=Zl["|"]=Zl["+"]=Zl.union=Zl.or=Zl.add,Zl["\\"]=Zl["!"]=Zl["-"]=Zl.difference=Zl.relativeComplement=Zl.subtract=Zl.not,Zl.n=Zl["&"]=Zl["."]=Zl.and=Zl.intersection=Zl.intersect,Zl["^"]=Zl["(+)"]=Zl["(-)"]=Zl.symmetricDifference=Zl.symdiff=Zl.xor,Zl.fnFilter=Zl.filterFn=Zl.stdFilter=Zl.filter,Zl.complement=Zl.abscomp=Zl.absoluteComplement;var Ql={isNode:function(){return"nodes"===this.group()},isEdge:function(){return"edges"===this.group()},isLoop:function(){return this.isEdge()&&this.source()[0]===this.target()[0]},isSimple:function(){return this.isEdge()&&this.source()[0]!==this.target()[0]},group:function(){var e=this[0];if(e)return e._private.group}},Jl=function(e,t){var n=e.cy().hasCompoundNodes();function r(e){var t=e.pstyle("z-compound-depth");return"auto"===t.value?n?e.zDepth():0:"bottom"===t.value?-1:"top"===t.value?xt:0}var i=r(e)-r(t);if(0!==i)return i;function a(e){return"auto"===e.pstyle("z-index-compare").value&&e.isNode()?1:0}var o=a(e)-a(t);if(0!==o)return o;var s=e.pstyle("z-index").value-t.pstyle("z-index").value;return 0!==s?s:e.poolIndex()-t.poolIndex()},eu={forEach:function(e,t){if(x(e))for(var n=this.length,r=0;r<n;r++){var i=this[r];if(!1===(t?e.apply(t,[i,r,this]):e(i,r,this)))break}return this},toArray:function(){for(var e=[],t=0;t<this.length;t++)e.push(this[t]);return e},slice:function(e,t){var n=[],r=this.length;null==t&&(t=r),null==e&&(e=0),e<0&&(e=r+e),t<0&&(t=r+t);for(var i=e;i>=0&&i<t&&i<r;i++)n.push(this[i]);return this.spawn(n)},size:function(){return this.length},eq:function(e){return this[e]||this.spawn()},first:function(){return this[0]||this.spawn()},last:function(){return this[this.length-1]||this.spawn()},empty:function(){return 0===this.length},nonempty:function(){return!this.empty()},sort:function(e){if(!x(e))return this;var t=this.toArray().sort(e);return this.spawn(t)},sortByZIndex:function(){return this.sort(Jl)},zDepth:function(){var e=this[0];if(e){var t=e._private;if("nodes"===t.group){var n=t.data.parent?e.parents().size():0;return e.isParent()?n:xt-1}var r=t.source,i=t.target,a=r.zDepth(),o=i.zDepth();return Math.max(a,o,0)}}};eu.each=eu.forEach;var tu=function(){var t="undefined";("undefined"==typeof Symbol?"undefined":e(Symbol))!=t&&e(Symbol.iterator)!=t&&(eu[Symbol.iterator]=function(){var e=this,t={value:void 0,done:!1},n=0,r=this.length;return a({next:function(){return n<r?t.value=e[n++]:(t.value=void 0,t.done=!0),t}},Symbol.iterator,(function(){return this}))})};tu();var nu=Mt({nodeDimensionsIncludeLabels:!1}),ru={layoutDimensions:function(e){var t;if(e=nu(e),this.takesUpSpace())if(e.nodeDimensionsIncludeLabels){var n=this.boundingBox();t={w:n.w,h:n.h}}else t={w:this.outerWidth(),h:this.outerHeight()};else t={w:0,h:0};return 0!==t.w&&0!==t.h||(t.w=t.h=1),t},layoutPositions:function(e,t,n){var r=this.nodes().filter((function(e){return!e.isParent()})),i=this.cy(),a=t.eles,o=function(e){return e.id()},s=F(n,o);e.emit({type:"layoutstart",layout:e}),e.animations=[];var l=function(e,t,n){var r={x:t.x1+t.w/2,y:t.y1+t.h/2},i={x:(n.x-r.x)*e,y:(n.y-r.y)*e};return{x:r.x+i.x,y:r.y+i.y}},u=t.spacingFactor&&1!==t.spacingFactor,c=function(){if(!u)return null;for(var e=Ln(),t=0;t<r.length;t++){var n=r[t],i=s(n,t);kn(e,i.x,i.y)}return e},h=c(),d=F((function(e,n){var r=s(e,n);if(u){var i=Math.abs(t.spacingFactor);r=l(i,h,r)}return null!=t.transform&&(r=t.transform(e,r)),r}),o);if(t.animate){for(var p=0;p<r.length;p++){var g=r[p],f=d(g,p);if(null==t.animateFilter||t.animateFilter(g,p)){var v=g.animation({position:f,duration:t.animationDuration,easing:t.animationEasing});e.animations.push(v)}else g.position(f)}if(t.fit){var y=i.animation({fit:{boundingBox:a.boundingBoxAt(d),padding:t.padding},duration:t.animationDuration,easing:t.animationEasing});e.animations.push(y)}else if(void 0!==t.zoom&&void 0!==t.pan){var m=i.animation({zoom:t.zoom,pan:t.pan,duration:t.animationDuration,easing:t.animationEasing});e.animations.push(m)}e.animations.forEach((function(e){return e.play()})),e.one("layoutready",t.ready),e.emit({type:"layoutready",layout:e}),Yi.all(e.animations.map((function(e){return e.promise()}))).then((function(){e.one("layoutstop",t.stop),e.emit({type:"layoutstop",layout:e})}))}else r.positions(d),t.fit&&i.fit(t.eles,t.padding),null!=t.zoom&&i.zoom(t.zoom),t.pan&&i.pan(t.pan),e.one("layoutready",t.ready),e.emit({type:"layoutready",layout:e}),e.one("layoutstop",t.stop),e.emit({type:"layoutstop",layout:e});return this},layout:function(e){return this.cy().makeLayout(Q({},e,{eles:this}))}};function iu(e,t,n){var r,i=n._private,a=i.styleCache=i.styleCache||[];return null!=(r=a[e])?r:r=a[e]=t(n)}function au(e,t){return e=gt(e),function(n){return iu(e,t,n)}}function ou(e,t){e=gt(e);var n=function(e){return t.call(e)};return function(){var t=this[0];if(t)return iu(e,n,t)}}ru.createLayout=ru.makeLayout=ru.layout;var su={recalculateRenderedStyle:function(e){var t=this.cy(),n=t.renderer(),r=t.styleEnabled();return n&&r&&n.recalculateRenderedStyle(this,e),this},dirtyStyleCache:function(){var e,t=this.cy(),n=function(e){return e._private.styleCache=null};return t.hasCompoundNodes()?((e=this.spawnSelf().merge(this.descendants()).merge(this.parents())).merge(e.connectedEdges()),e.forEach(n)):this.forEach((function(e){n(e),e.connectedEdges().forEach(n)})),this},updateStyle:function(e){var t=this._private.cy;if(!t.styleEnabled())return this;if(t.batching())return t._private.batchStyleEles.merge(this),this;var n=this;e=!(!e&&void 0!==e),t.hasCompoundNodes()&&(n=this.spawnSelf().merge(this.descendants()).merge(this.parents()));var r=n;return e?r.emitAndNotify("style"):r.emit("style"),n.forEach((function(e){return e._private.styleDirty=!0})),this},cleanStyle:function(){var e=this.cy();if(e.styleEnabled())for(var t=0;t<this.length;t++){var n=this[t];n._private.styleDirty&&(n._private.styleDirty=!1,e.style().apply(n))}},parsedStyle:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this[0],r=n.cy();if(r.styleEnabled()&&n){this.cleanStyle();var i=n._private.style[e];return null!=i?i:t?r.style().getDefaultProperty(e):null}},numericStyle:function(e){var t=this[0];if(t.cy().styleEnabled()&&t){var n=t.pstyle(e);return void 0!==n.pfValue?n.pfValue:n.value}},numericStyleUnits:function(e){var t=this[0];if(t.cy().styleEnabled())return t?t.pstyle(e).units:void 0},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=this[0];return n?t.style().getRenderedStyle(n,e):void 0},style:function(e,t){var n=this.cy();if(!n.styleEnabled())return this;var r=!1,i=n.style();if(E(e)){var a=e;i.applyBypass(this,a,r),this.emitAndNotify("style")}else if(b(e)){if(void 0===t){var o=this[0];return o?i.getStylePropertyValue(o,e):void 0}i.applyBypass(this,e,t,r),this.emitAndNotify("style")}else if(void 0===e){var s=this[0];return s?i.getRawStyle(s):void 0}return this},removeStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=!1,r=t.style(),i=this;if(void 0===e)for(var a=0;a<i.length;a++){var o=i[a];r.removeAllBypasses(o,n)}else{e=e.split(/\s+/);for(var s=0;s<i.length;s++){var l=i[s];r.removeBypasses(l,e,n)}}return this.emitAndNotify("style"),this},show:function(){return this.css("display","element"),this},hide:function(){return this.css("display","none"),this},effectiveOpacity:function(){var e=this.cy();if(!e.styleEnabled())return 1;var t=e.hasCompoundNodes(),n=this[0];if(n){var r=n._private,i=n.pstyle("opacity").value;if(!t)return i;var a=r.data.parent?n.parents():null;if(a)for(var o=0;o<a.length;o++)i*=a[o].pstyle("opacity").value;return i}},transparent:function(){if(!this.cy().styleEnabled())return!1;var e=this[0],t=e.cy().hasCompoundNodes();return e?t?0===e.effectiveOpacity():0===e.pstyle("opacity").value:void 0},backgrounding:function(){return!!this.cy().styleEnabled()&&!!this[0]._private.backgrounding}};function lu(e,t){var n=e._private.data.parent?e.parents():null;if(n)for(var r=0;r<n.length;r++)if(!t(n[r]))return!1;return!0}function uu(e){var t=e.ok,n=e.edgeOkViaNode||e.ok,r=e.parentOk||e.ok;return function(){var e=this.cy();if(!e.styleEnabled())return!0;var i=this[0],a=e.hasCompoundNodes();if(i){var o=i._private;if(!t(i))return!1;if(i.isNode())return!a||lu(i,r);var s=o.source,l=o.target;return n(s)&&(!a||lu(s,n))&&(s===l||n(l)&&(!a||lu(l,n)))}}}var cu=au("eleTakesUpSpace",(function(e){return"element"===e.pstyle("display").value&&0!==e.width()&&(!e.isNode()||0!==e.height())}));su.takesUpSpace=ou("takesUpSpace",uu({ok:cu}));var hu=au("eleInteractive",(function(e){return"yes"===e.pstyle("events").value&&"visible"===e.pstyle("visibility").value&&cu(e)})),du=au("parentInteractive",(function(e){return"visible"===e.pstyle("visibility").value&&cu(e)}));su.interactive=ou("interactive",uu({ok:hu,parentOk:du,edgeOkViaNode:cu})),su.noninteractive=function(){var e=this[0];if(e)return!e.interactive()};var pu=au("eleVisible",(function(e){return"visible"===e.pstyle("visibility").value&&0!==e.pstyle("opacity").pfValue&&cu(e)})),gu=cu;su.visible=ou("visible",uu({ok:pu,edgeOkViaNode:gu})),su.hidden=function(){var e=this[0];if(e)return!e.visible()},su.isBundledBezier=ou("isBundledBezier",(function(){return!!this.cy().styleEnabled()&&!this.removed()&&"bezier"===this.pstyle("curve-style").value&&this.takesUpSpace()})),su.bypass=su.css=su.style,su.renderedCss=su.renderedStyle,su.removeBypass=su.removeCss=su.removeStyle,su.pstyle=su.parsedStyle;var fu={};function vu(e){return function(){var t=arguments,n=[];if(2===t.length){var r=t[0],i=t[1];this.on(e.event,r,i)}else if(1===t.length&&x(t[0])){var a=t[0];this.on(e.event,a)}else if(0===t.length||1===t.length&&w(t[0])){for(var o=1===t.length?t[0]:null,s=0;s<this.length;s++){var l=this[s],u=!e.ableField||l._private[e.ableField],c=l._private[e.field]!=e.value;if(e.overrideAble){var h=e.overrideAble(l);if(void 0!==h&&(u=h,!h))return this}u&&(l._private[e.field]=e.value,c&&n.push(l))}var d=this.spawn(n);d.updateStyle(),d.emit(e.event),o&&d.emit(o)}return this}}function yu(e){fu[e.field]=function(){var t=this[0];if(t){if(e.overrideField){var n=e.overrideField(t);if(void 0!==n)return n}return t._private[e.field]}},fu[e.on]=vu({event:e.on,field:e.field,ableField:e.ableField,overrideAble:e.overrideAble,value:!0}),fu[e.off]=vu({event:e.off,field:e.field,ableField:e.ableField,overrideAble:e.overrideAble,value:!1})}yu({field:"locked",overrideField:function(e){return!!e.cy().autolock()||void 0},on:"lock",off:"unlock"}),yu({field:"grabbable",overrideField:function(e){return!e.cy().autoungrabify()&&!e.pannable()&&void 0},on:"grabify",off:"ungrabify"}),yu({field:"selected",ableField:"selectable",overrideAble:function(e){return!e.cy().autounselectify()&&void 0},on:"select",off:"unselect"}),yu({field:"selectable",overrideField:function(e){return!e.cy().autounselectify()&&void 0},on:"selectify",off:"unselectify"}),fu.deselect=fu.unselect,fu.grabbed=function(){var e=this[0];if(e)return e._private.grabbed},yu({field:"active",on:"activate",off:"unactivate"}),yu({field:"pannable",on:"panify",off:"unpanify"}),fu.inactive=function(){var e=this[0];if(e)return!e._private.active};var mu={},bu=function(e){return function(t){for(var n=this,r=[],i=0;i<n.length;i++){var a=n[i];if(a.isNode()){for(var o=!1,s=a.connectedEdges(),l=0;l<s.length;l++){var u=s[l],c=u.source(),h=u.target();if(e.noIncomingEdges&&h===a&&c!==a||e.noOutgoingEdges&&c===a&&h!==a){o=!0;break}}o||r.push(a)}}return this.spawn(r,!0).filter(t)}},xu=function(e){return function(t){for(var n=this,r=[],i=0;i<n.length;i++){var a=n[i];if(a.isNode())for(var o=a.connectedEdges(),s=0;s<o.length;s++){var l=o[s],u=l.source(),c=l.target();e.outgoing&&u===a?(r.push(l),r.push(c)):e.incoming&&c===a&&(r.push(l),r.push(u))}}return this.spawn(r,!0).filter(t)}},wu=function(e){return function(t){for(var n=this,r=[],i={};;){var a=e.outgoing?n.outgoers():n.incomers();if(0===a.length)break;for(var o=!1,s=0;s<a.length;s++){var l=a[s],u=l.id();i[u]||(i[u]=!0,r.push(l),o=!0)}if(!o)break;n=a}return this.spawn(r,!0).filter(t)}};function Eu(e){return function(t){for(var n=[],r=0;r<this.length;r++){var i=this[r]._private[e.attr];i&&n.push(i)}return this.spawn(n,!0).filter(t)}}function Tu(e){return function(t){var n=[],r=this._private.cy,i=e||{};b(t)&&(t=r.$(t));for(var a=0;a<t.length;a++)for(var o=t[a]._private.edges,s=0;s<o.length;s++){var l=o[s],u=l._private.data,c=this.hasElementWithId(u.source)&&t.hasElementWithId(u.target),h=t.hasElementWithId(u.source)&&this.hasElementWithId(u.target);if(c||h){if(i.thisIsSrc||i.thisIsTgt){if(i.thisIsSrc&&!c)continue;if(i.thisIsTgt&&!h)continue}n.push(l)}}return this.spawn(n,!0)}}function _u(e){return e=Q({},{codirected:!1},e),function(t){for(var n=[],r=this.edges(),i=e,a=0;a<r.length;a++)for(var o=r[a]._private,s=o.source,l=s._private.data.id,u=o.data.target,c=s._private.edges,h=0;h<c.length;h++){var d=c[h],p=d._private.data,g=p.target,f=p.source,v=g===u&&f===l,y=l===g&&u===f;(i.codirected&&v||!i.codirected&&(v||y))&&n.push(d)}return this.spawn(n,!0).filter(t)}}mu.clearTraversalCache=function(){for(var e=0;e<this.length;e++)this[e]._private.traversalCache=null},Q(mu,{roots:bu({noIncomingEdges:!0}),leaves:bu({noOutgoingEdges:!0}),outgoers:Hs(xu({outgoing:!0}),"outgoers"),successors:wu({outgoing:!0}),incomers:Hs(xu({incoming:!0}),"incomers"),predecessors:wu({incoming:!0})}),Q(mu,{neighborhood:Hs((function(e){for(var t=[],n=this.nodes(),r=0;r<n.length;r++)for(var i=n[r],a=i.connectedEdges(),o=0;o<a.length;o++){var s=a[o],l=s.source(),u=s.target(),c=i===l?u:l;c.length>0&&t.push(c[0]),t.push(s[0])}return this.spawn(t,!0).filter(e)}),"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),mu.neighbourhood=mu.neighborhood,mu.closedNeighbourhood=mu.closedNeighborhood,mu.openNeighbourhood=mu.openNeighborhood,Q(mu,{source:Hs((function(e){var t,n=this[0];return n&&(t=n._private.source||n.cy().collection()),t&&e?t.filter(e):t}),"source"),target:Hs((function(e){var t,n=this[0];return n&&(t=n._private.target||n.cy().collection()),t&&e?t.filter(e):t}),"target"),sources:Eu({attr:"source"}),targets:Eu({attr:"target"})}),Q(mu,{edgesWith:Hs(Tu(),"edgesWith"),edgesTo:Hs(Tu({thisIsSrc:!0}),"edgesTo")}),Q(mu,{connectedEdges:Hs((function(e){for(var t=[],n=this,r=0;r<n.length;r++){var i=n[r];if(i.isNode())for(var a=i._private.edges,o=0;o<a.length;o++){var s=a[o];t.push(s)}}return this.spawn(t,!0).filter(e)}),"connectedEdges"),connectedNodes:Hs((function(e){for(var t=[],n=this,r=0;r<n.length;r++){var i=n[r];i.isEdge()&&(t.push(i.source()[0]),t.push(i.target()[0]))}return this.spawn(t,!0).filter(e)}),"connectedNodes"),parallelEdges:Hs(_u(),"parallelEdges"),codirectedEdges:Hs(_u({codirected:!0}),"codirectedEdges")}),Q(mu,{components:function(e){var t=this,n=t.cy(),r=n.collection(),i=null==e?t.nodes():e.nodes(),a=[];null!=e&&i.empty()&&(i=e.sources());var o=function(e,t){r.merge(e),i.unmerge(e),t.merge(e)};if(i.empty())return t.spawn();var s=function(){var e=n.collection();a.push(e);var r=i[0];o(r,e),t.bfs({directed:!1,roots:r,visit:function(t){return o(t,e)}}),e.forEach((function(n){n.connectedEdges().forEach((function(n){t.has(n)&&e.has(n.source())&&e.has(n.target())&&e.merge(n)}))}))};do{s()}while(i.length>0);return a},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}}),mu.componentsOf=mu.components;var Du=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==e){var i=new Yt,a=!1;if(t){if(t.length>0&&E(t[0])&&!A(t[0])){a=!0;for(var o=[],s=new Ut,l=0,u=t.length;l<u;l++){var c=t[l];null==c.data&&(c.data={});var h=c.data;if(null==h.id)h.id=Ot();else if(e.hasElementWithId(h.id)||s.has(h.id))continue;var d=new jt(e,c,!1);o.push(d),s.add(h.id)}t=o}}else t=[];this.length=0;for(var p=0,g=t.length;p<g;p++){var f=t[p][0];if(null!=f){var v=f._private.data.id;n&&i.has(v)||(n&&i.set(v,{index:this.length,ele:f}),this[this.length]=f,this.length++)}}this._private={eles:this,cy:e,get map(){return null==this.lazyMap&&this.rebuildMap(),this.lazyMap},set map(e){this.lazyMap=e},rebuildMap:function(){for(var e=this.lazyMap=new Yt,t=this.eles,n=0;n<t.length;n++){var r=t[n];e.set(r.id(),{index:n,ele:r})}}},n&&(this._private.map=i),a&&!r&&this.restore()}else Dt("A collection must have a reference to the core")},Cu=jt.prototype=Du.prototype=Object.create(Array.prototype);Cu.instanceString=function(){return"collection"},Cu.spawn=function(e,t){return new Du(this.cy(),e,t)},Cu.spawnSelf=function(){return this.spawn(this)},Cu.cy=function(){return this._private.cy},Cu.renderer=function(){return this._private.cy.renderer()},Cu.element=function(){return this[0]},Cu.collection=function(){return L(this)?this:new Du(this._private.cy,[this])},Cu.unique=function(){return new Du(this._private.cy,this,!0)},Cu.hasElementWithId=function(e){return e=""+e,this._private.map.has(e)},Cu.getElementById=function(e){e=""+e;var t=this._private.cy,n=this._private.map.get(e);return n?n.ele:new Du(t)},Cu.$id=Cu.getElementById,Cu.poolIndex=function(){var e=this._private.cy._private.elements,t=this[0]._private.data.id;return e._private.map.get(t).index},Cu.indexOf=function(e){var t=e[0]._private.data.id;return this._private.map.get(t).index},Cu.indexOfId=function(e){return e=""+e,this._private.map.get(e).index},Cu.json=function(e){var t=this.element(),n=this.cy();if(null==t&&e)return this;if(null!=t){var r=t._private;if(E(e)){if(n.startBatch(),e.data){t.data(e.data);var i=r.data;if(t.isEdge()){var a=!1,o={},s=e.data.source,l=e.data.target;null!=s&&s!=i.source&&(o.source=""+s,a=!0),null!=l&&l!=i.target&&(o.target=""+l,a=!0),a&&(t=t.move(o))}else{var u="parent"in e.data,c=e.data.parent;!u||null==c&&null==i.parent||c==i.parent||(void 0===c&&(c=null),null!=c&&(c=""+c),t=t.move({parent:c}))}}e.position&&t.position(e.position);var h=function(n,i,a){var o=e[n];null!=o&&o!==r[n]&&(o?t[i]():t[a]())};return h("removed","remove","restore"),h("selected","select","unselect"),h("selectable","selectify","unselectify"),h("locked","lock","unlock"),h("grabbable","grabify","ungrabify"),h("pannable","panify","unpanify"),null!=e.classes&&t.classes(e.classes),n.endBatch(),this}if(void 0===e){var d={data:Lt(r.data),position:Lt(r.position),group:r.group,removed:r.removed,selected:r.selected,selectable:r.selectable,locked:r.locked,grabbable:r.grabbable,pannable:r.pannable,classes:null};d.classes="";var p=0;return r.classes.forEach((function(e){return d.classes+=0==p++?e:" "+e})),d}}},Cu.jsons=function(){for(var e=[],t=0;t<this.length;t++){var n=this[t].json();e.push(n)}return e},Cu.clone=function(){for(var e=this.cy(),t=[],n=0;n<this.length;n++){var r=this[n].json(),i=new jt(e,r,!1);t.push(i)}return new Du(e,t)},Cu.copy=Cu.clone,Cu.restore=function(){for(var e,t,n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this,a=i.cy(),o=a._private,s=[],l=[],u=0,c=i.length;u<c;u++){var h=i[u];r&&!h.removed()||(h.isNode()?s.push(h):l.push(h))}e=s.concat(l);var d=function(){e.splice(t,1),t--};for(t=0;t<e.length;t++){var p=e[t],g=p._private,f=g.data;if(p.clearTraversalCache(),r||g.removed)if(void 0===f.id)f.id=Ot();else if(_(f.id))f.id=""+f.id;else{if(k(f.id)||!b(f.id)){Dt("Can not create element with invalid string ID `"+f.id+"`"),d();continue}if(a.hasElementWithId(f.id)){Dt("Can not create second element with ID `"+f.id+"`"),d();continue}}var v=f.id;if(p.isNode()){var y=g.position;null==y.x&&(y.x=0),null==y.y&&(y.y=0)}if(p.isEdge()){for(var m=p,x=["source","target"],w=x.length,E=!1,T=0;T<w;T++){var D=x[T],C=f[D];_(C)&&(C=f[D]=""+f[D]),null==C||""===C?(Dt("Can not create edge `"+v+"` with unspecified "+D),E=!0):a.hasElementWithId(C)||(Dt("Can not create edge `"+v+"` with nonexistant "+D+" `"+C+"`"),E=!0)}if(E){d();continue}var N=a.getElementById(f.source),A=a.getElementById(f.target);N.same(A)?N._private.edges.push(m):(N._private.edges.push(m),A._private.edges.push(m)),m._private.source=N,m._private.target=A}g.map=new Yt,g.map.set(v,{ele:p,index:0}),g.removed=!1,r&&a.addToPool(p)}for(var L=0;L<s.length;L++){var S=s[L],O=S._private.data;_(O.parent)&&(O.parent=""+O.parent);var I=O.parent;if(null!=I||S._private.parent){var M=S._private.parent?a.collection().merge(S._private.parent):a.getElementById(I);if(M.empty())O.parent=void 0;else if(M[0].removed())Nt("Node added with missing parent, reference to parent removed"),O.parent=void 0,S._private.parent=null;else{for(var P=!1,R=M;!R.empty();){if(S.same(R)){P=!0,O.parent=void 0;break}R=R.parent()}P||(M[0]._private.children.push(S),S._private.parent=M[0],o.hasCompoundNodes=!0)}}}if(e.length>0){for(var B=e.length===i.length?i:new Du(a,e),F=0;F<B.length;F++){var z=B[F];z.isNode()||(z.parallelEdges().clearTraversalCache(),z.source().clearTraversalCache(),z.target().clearTraversalCache())}(o.hasCompoundNodes?a.collection().merge(B).merge(B.connectedNodes()).merge(B.parent()):B).dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(n),n?B.emitAndNotify("add"):r&&B.emit("add")}return i},Cu.removed=function(){var e=this[0];return e&&e._private.removed},Cu.inside=function(){var e=this[0];return e&&!e._private.removed},Cu.remove=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this,r=[],i={},a=n._private.cy;function o(e){for(var t=e._private.edges,n=0;n<t.length;n++)l(t[n])}function s(e){for(var t=e._private.children,n=0;n<t.length;n++)l(t[n])}function l(e){var n=i[e.id()];t&&e.removed()||n||(i[e.id()]=!0,e.isNode()?(r.push(e),o(e),s(e)):r.unshift(e))}for(var u=0,c=n.length;u<c;u++)l(n[u]);function h(e,t){var n=e._private.edges;Pt(n,t),e.clearTraversalCache()}function d(e){e.clearTraversalCache()}var p=[];function g(e,t){t=t[0];var n=(e=e[0])._private.children,r=e.id();Pt(n,t),t._private.parent=null,p.ids[r]||(p.ids[r]=!0,p.push(e))}p.ids={},n.dirtyCompoundBoundsCache(),t&&a.removeFromPool(r);for(var f=0;f<r.length;f++){var v=r[f];if(v.isEdge()){var y=v.source()[0],m=v.target()[0];h(y,v),h(m,v);for(var b=v.parallelEdges(),x=0;x<b.length;x++){var w=b[x];d(w),w.isBundledBezier()&&w.dirtyBoundingBoxCache()}}else{var E=v.parent();0!==E.length&&g(E,v)}t&&(v._private.removed=!0)}var T=a._private.elements;a._private.hasCompoundNodes=!1;for(var _=0;_<T.length;_++)if(T[_].isParent()){a._private.hasCompoundNodes=!0;break}var D=new Du(this.cy(),r);D.size()>0&&(e?D.emitAndNotify("remove"):t&&D.emit("remove"));for(var C=0;C<p.length;C++){var N=p[C];t&&N.removed()||N.updateStyle()}return D},Cu.move=function(e){var t=this._private.cy,n=this,r=!1,i=!1,a=function(e){return null==e?e:""+e};if(void 0!==e.source||void 0!==e.target){var o=a(e.source),s=a(e.target),l=null!=o&&t.hasElementWithId(o),u=null!=s&&t.hasElementWithId(s);(l||u)&&(t.batch((function(){n.remove(r,i),n.emitAndNotify("moveout");for(var e=0;e<n.length;e++){var t=n[e],a=t._private.data;t.isEdge()&&(l&&(a.source=o),u&&(a.target=s))}n.restore(r,i)})),n.emitAndNotify("move"))}else if(void 0!==e.parent){var c=a(e.parent);if(null===c||t.hasElementWithId(c)){var h=null===c?void 0:c;t.batch((function(){var e=n.remove(r,i);e.emitAndNotify("moveout");for(var t=0;t<n.length;t++){var a=n[t],o=a._private.data;a.isNode()&&(o.parent=h)}e.restore(r,i)})),n.emitAndNotify("move")}}return this},[Oi,fs,vs,Vs,qs,el,tl,kl,$l,Kl,Ql,eu,ru,su,fu,mu].forEach((function(e){Q(Cu,e)}));var Nu={add:function(e){var t,n=this;if(N(e)){var r=e;if(r._private.cy===n)t=r.restore();else{for(var i=[],a=0;a<r.length;a++){var o=r[a];i.push(o.json())}t=new Du(n,i)}}else if(w(e))t=new Du(n,e);else if(E(e)&&(w(e.nodes)||w(e.edges))){for(var s=e,l=[],u=["nodes","edges"],c=0,h=u.length;c<h;c++){var d=u[c],p=s[d];if(w(p))for(var g=0,f=p.length;g<f;g++){var v=Q({group:d},p[g]);l.push(v)}}t=new Du(n,l)}else t=new jt(n,e).collection();return t},remove:function(e){if(N(e));else if(b(e)){var t=e;e=this.$(t)}return e.remove()}};function Au(e,t,n,r){var i=4,a=.001,o=1e-7,s=10,l=11,u=1/(l-1),c="undefined"!=typeof Float32Array;if(4!==arguments.length)return!1;for(var h=0;h<4;++h)if("number"!=typeof arguments[h]||isNaN(arguments[h])||!isFinite(arguments[h]))return!1;e=Math.min(e,1),n=Math.min(n,1),e=Math.max(e,0),n=Math.max(n,0);var d=c?new Float32Array(l):new Array(l);function p(e,t){return 1-3*t+3*e}function g(e,t){return 3*t-6*e}function f(e){return 3*e}function v(e,t,n){return((p(t,n)*e+g(t,n))*e+f(t))*e}function y(e,t,n){return 3*p(t,n)*e*e+2*g(t,n)*e+f(t)}function m(t,r){for(var a=0;a<i;++a){var o=y(r,e,n);if(0===o)return r;r-=(v(r,e,n)-t)/o}return r}function b(){for(var t=0;t<l;++t)d[t]=v(t*u,e,n)}function x(t,r,i){var a,l,u=0;do{(a=v(l=r+(i-r)/2,e,n)-t)>0?i=l:r=l}while(Math.abs(a)>o&&++u<s);return l}function w(t){for(var r=0,i=1,o=l-1;i!==o&&d[i]<=t;++i)r+=u;--i;var s=r+(t-d[i])/(d[i+1]-d[i])*u,c=y(s,e,n);return c>=a?m(t,s):0===c?s:x(t,r,r+u)}var E=!1;function T(){E=!0,e===t&&n===r||b()}var _=function(i){return E||T(),e===t&&n===r?i:0===i?0:1===i?1:v(w(i),t,r)};_.getControlPoints=function(){return[{x:e,y:t},{x:n,y:r}]};var D="generateBezier("+[e,t,n,r]+")";return _.toString=function(){return D},_}var Lu=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,n,r){var i={x:t.x+r.dx*n,v:t.v+r.dv*n,tension:t.tension,friction:t.friction};return{dx:i.v,dv:e(i)}}function n(n,r){var i={dx:n.v,dv:e(n)},a=t(n,.5*r,i),o=t(n,.5*r,a),s=t(n,r,o),l=1/6*(i.dx+2*(a.dx+o.dx)+s.dx),u=1/6*(i.dv+2*(a.dv+o.dv)+s.dv);return n.x=n.x+l*r,n.v=n.v+u*r,n}return function e(t,r,i){var a,o,s,l={x:-1,v:0,tension:null,friction:null},u=[0],c=0,h=1e-4,d=.016;for(t=parseFloat(t)||500,r=parseFloat(r)||20,i=i||null,l.tension=t,l.friction=r,o=(a=null!==i)?(c=e(t,r))/i*d:d;s=n(s||l,o),u.push(1+s.x),c+=16,Math.abs(s.x)>h&&Math.abs(s.v)>h;);return a?function(e){return u[e*(u.length-1)|0]}:c}}(),Su=function(e,t,n,r){var i=Au(e,t,n,r);return function(e,t,n){return e+(t-e)*i(n)}},Ou={linear:function(e,t,n){return e+(t-e)*n},ease:Su(.25,.1,.25,1),"ease-in":Su(.42,0,1,1),"ease-out":Su(0,0,.58,1),"ease-in-out":Su(.42,0,.58,1),"ease-in-sine":Su(.47,0,.745,.715),"ease-out-sine":Su(.39,.575,.565,1),"ease-in-out-sine":Su(.445,.05,.55,.95),"ease-in-quad":Su(.55,.085,.68,.53),"ease-out-quad":Su(.25,.46,.45,.94),"ease-in-out-quad":Su(.455,.03,.515,.955),"ease-in-cubic":Su(.55,.055,.675,.19),"ease-out-cubic":Su(.215,.61,.355,1),"ease-in-out-cubic":Su(.645,.045,.355,1),"ease-in-quart":Su(.895,.03,.685,.22),"ease-out-quart":Su(.165,.84,.44,1),"ease-in-out-quart":Su(.77,0,.175,1),"ease-in-quint":Su(.755,.05,.855,.06),"ease-out-quint":Su(.23,1,.32,1),"ease-in-out-quint":Su(.86,0,.07,1),"ease-in-expo":Su(.95,.05,.795,.035),"ease-out-expo":Su(.19,1,.22,1),"ease-in-out-expo":Su(1,0,0,1),"ease-in-circ":Su(.6,.04,.98,.335),"ease-out-circ":Su(.075,.82,.165,1),"ease-in-out-circ":Su(.785,.135,.15,.86),spring:function(e,t,n){if(0===n)return Ou.linear;var r=Lu(e,t,n);return function(e,t,n){return e+(t-e)*r(n)}},"cubic-bezier":Su};function Iu(e,t,n,r,i){if(1===r)return n;if(t===n)return n;var a=i(t,n,r);return null==e||((e.roundValue||e.color)&&(a=Math.round(a)),void 0!==e.min&&(a=Math.max(a,e.min)),void 0!==e.max&&(a=Math.min(a,e.max))),a}function ku(e,t){return null!=e.pfValue||null!=e.value?null==e.pfValue||null!=t&&"%"===t.type.units?e.value:e.pfValue:e}function Mu(e,t,n,r,i){var a=null!=i?i.type:null;n<0?n=0:n>1&&(n=1);var o=ku(e,i),s=ku(t,i);if(_(o)&&_(s))return Iu(a,o,s,n,r);if(w(o)&&w(s)){for(var l=[],u=0;u<s.length;u++){var c=o[u],h=s[u];if(null!=c&&null!=h){var d=Iu(a,c,h,n,r);l.push(d)}else l.push(h)}return l}}function Pu(e,t,n,r){var i=!r,a=e._private,o=t._private,s=o.easing,l=o.startTime,u=(r?e:e.cy()).style();if(!o.easingImpl)if(null==s)o.easingImpl=Ou.linear;else{var c,h,d;c=b(s)?u.parse("transition-timing-function",s).value:s,b(c)?(h=c,d=[]):(h=c[1],d=c.slice(2).map((function(e){return+e}))),d.length>0?("spring"===h&&d.push(o.duration),o.easingImpl=Ou[h].apply(null,d)):o.easingImpl=Ou[h]}var p,g=o.easingImpl;if(p=0===o.duration?1:(n-l)/o.duration,o.applying&&(p=o.progress),p<0?p=0:p>1&&(p=1),null==o.delay){var f=o.startPosition,v=o.position;if(v&&i&&!e.locked()){var y={};Ru(f.x,v.x)&&(y.x=Mu(f.x,v.x,p,g)),Ru(f.y,v.y)&&(y.y=Mu(f.y,v.y,p,g)),e.position(y)}var m=o.startPan,x=o.pan,w=a.pan,E=null!=x&&r;E&&(Ru(m.x,x.x)&&(w.x=Mu(m.x,x.x,p,g)),Ru(m.y,x.y)&&(w.y=Mu(m.y,x.y,p,g)),e.emit("pan"));var T=o.startZoom,_=o.zoom,D=null!=_&&r;D&&(Ru(T,_)&&(a.zoom=An(a.minZoom,Mu(T,_,p,g),a.maxZoom)),e.emit("zoom")),(E||D)&&e.emit("viewport");var C=o.style;if(C&&C.length>0&&i){for(var N=0;N<C.length;N++){var A=C[N],L=A.name,S=A,O=o.startStyle[L],I=Mu(O,S,p,g,u.properties[O.name]);u.overrideBypass(e,L,I)}e.emit("style")}}return o.progress=p,p}function Ru(e,t){return!!(null!=e&&null!=t&&(_(e)&&_(t)||e&&t))}function Bu(e,t,n,r){var i=t._private;i.started=!0,i.startTime=n-i.progress*i.duration}function Fu(e,t){var n=t._private.aniEles,r=[];function i(t,n){var i=t._private,a=i.animation.current,o=i.animation.queue,s=!1;if(0===a.length){var l=o.shift();l&&a.push(l)}for(var u=function(e){for(var t=e.length-1;t>=0;t--)(0,e[t])();e.splice(0,e.length)},c=a.length-1;c>=0;c--){var h=a[c],d=h._private;d.stopped?(a.splice(c,1),d.hooked=!1,d.playing=!1,d.started=!1,u(d.frames)):(d.playing||d.applying)&&(d.playing&&d.applying&&(d.applying=!1),d.started||Bu(t,h,e),Pu(t,h,e,n),d.applying&&(d.applying=!1),u(d.frames),null!=d.step&&d.step(e),h.completed()&&(a.splice(c,1),d.hooked=!1,d.playing=!1,d.started=!1,u(d.completes)),s=!0)}return n||0!==a.length||0!==o.length||r.push(t),s}for(var a=!1,o=0;o<n.length;o++){var s=i(n[o]);a=a||s}var l=i(t,!0);(a||l)&&(n.length>0?t.notify("draw",n):t.notify("draw")),n.unmerge(r),t.emit("step")}var zu={animate:gs.animate(),animation:gs.animation(),animated:gs.animated(),clearQueue:gs.clearQueue(),delay:gs.delay(),delayAnimation:gs.delayAnimation(),stop:gs.stop(),addToAnimationPool:function(e){var t=this;t.styleEnabled()&&t._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,e.styleEnabled()){var t=e.renderer();t&&t.beforeRender?t.beforeRender((function(t,n){Fu(n,e)}),t.beforeRenderPriorities.animations):n()}function n(){e._private.animationsRunning&&nt((function(t){Fu(t,e),n()}))}}},Gu={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&A(n.target)&&r.matches(n.target)},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e}},Yu=function(e){return b(e)?new Ys(e):e},Xu={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new Xl(Gu,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,n){return this.emitter().on(e,Yu(t),n),this},removeListener:function(e,t,n){return this.emitter().removeListener(e,Yu(t),n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,n){return this.emitter().one(e,Yu(t),n),this},once:function(e,t,n){return this.emitter().one(e,Yu(t),n),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};gs.eventAliasesOn(Xu);var Vu={png:function(e){return e=e||{},this._private.renderer.png(e)},jpg:function(e){var t=this._private.renderer;return(e=e||{}).bg=e.bg||"#fff",t.jpg(e)}};Vu.jpeg=Vu.jpg;var Uu={layout:function(e){var t=this;if(null!=e)if(null!=e.name){var n=e.name,r=t.extension("layout",n);if(null!=r){var i;i=b(e.eles)?t.$(e.eles):null!=e.eles?e.eles:t.$();var a=new r(Q({},e,{cy:t,eles:i}));return a}Dt("No such layout `"+n+"` found. Did you forget to import it and `cytoscape.use()` it?")}else Dt("A `name` must be specified to make a layout");else Dt("Layout options must be specified to make a layout")}};Uu.createLayout=Uu.makeLayout=Uu.layout;var ju={notify:function(e,t){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var r=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();null!=t&&r.merge(t)}else if(n.notificationsEnabled){var i=this.renderer();!this.destroyed()&&i&&i.notify(e,t)}},notifications:function(e){var t=this._private;return void 0===e?t.notificationsEnabled:(t.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 null==e.batchCount&&(e.batchCount=0),0===e.batchCount&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(0===e.batchCount)return this;if(e.batchCount--,0===e.batchCount){e.batchStyleEles.updateStyle();var t=this.renderer();Object.keys(e.batchNotifications).forEach((function(n){var r=e.batchNotifications[n];r.empty()?t.notify(n):t.notify(n,r)}))}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch((function(){for(var n=Object.keys(e),r=0;r<n.length;r++){var i=n[r],a=e[i];t.getElementById(i).data(a)}}))}},Hu=Mt({hideEdgesOnViewport:!1,textureOnViewport:!1,motionBlur:!1,motionBlurOpacity:.05,pixelRatio:void 0,desktopTapThreshold:4,touchTapThreshold:8,wheelSensitivity:1,debug:!1,showFps:!1}),qu={renderTo:function(e,t,n,r){return this._private.renderer.renderTo(e,t,n,r),this},renderer:function(){return this._private.renderer},forceRender:function(){return this.notify("draw"),this},resize:function(){return this.invalidateSize(),this.emitAndNotify("resize"),this},initRenderer:function(e){var t=this,n=t.extension("renderer",e.name);if(null!=n){void 0!==e.wheelSensitivity&&Nt("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.");var r=Hu(e);r.cy=t,t._private.renderer=new n(r),this.notify("init")}else Dt("Can not initialise: No such renderer `".concat(e.name,"` found. Did you forget to import it and `cytoscape.use()` it?"))},destroyRenderer:function(){var e=this;e.notify("destroy");var t=e.container();if(t)for(t._cyreg=null;t.childNodes.length>0;)t.removeChild(t.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach((function(e){var t=e._private;t.rscratch={},t.rstyle={},t.animation.current=[],t.animation.queue=[]}))},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};qu.invalidateDimensions=qu.resize;var Wu={collection:function(e,t){return b(e)?this.$(e):N(e)?e.collection():w(e)?(t||(t={}),new Du(this,e,t.unique,t.removed)):new Du(this)},nodes:function(e){var t=this.$((function(e){return e.isNode()}));return e?t.filter(e):t},edges:function(e){var t=this.$((function(e){return e.isEdge()}));return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};Wu.elements=Wu.filter=Wu.$;var $u={},Ku="t",Zu="f";$u.apply=function(e){for(var t=this,n=t._private.cy.collection(),r=0;r<e.length;r++){var i=e[r],a=t.getContextMeta(i);if(!a.empty){var o=t.getContextStyle(a),s=t.applyContextStyle(a,o,i);i._private.appliedInitStyle?t.updateTransitions(i,s.diffProps):i._private.appliedInitStyle=!0,t.updateStyleHints(i)&&n.push(i)}}return n},$u.getPropertiesDiff=function(e,t){var n=this,r=n._private.propDiffs=n._private.propDiffs||{},i=e+"-"+t,a=r[i];if(a)return a;for(var o=[],s={},l=0;l<n.length;l++){var u=n[l],c=e[l]===Ku,h=t[l]===Ku,d=c!==h,p=u.mappedProperties.length>0;if(d||h&&p){var g=void 0;d&&p||d?g=u.properties:p&&(g=u.mappedProperties);for(var f=0;f<g.length;f++){for(var v=g[f],y=v.name,m=!1,b=l+1;b<n.length;b++){var x=n[b];if(t[b]===Ku&&(m=null!=x.properties[v.name]))break}s[y]||m||(s[y]=!0,o.push(y))}}}return r[i]=o,o},$u.getContextMeta=function(e){for(var t,n=this,r="",i=e._private.styleCxtKey||"",a=0;a<n.length;a++){var o=n[a];r+=o.selector&&o.selector.matches(e)?Ku:Zu}return t=n.getPropertiesDiff(i,r),e._private.styleCxtKey=r,{key:r,diffPropNames:t,empty:0===t.length}},$u.getContextStyle=function(e){var t=e.key,n=this,r=this._private.contextStyles=this._private.contextStyles||{};if(r[t])return r[t];for(var i={_private:{key:t}},a=0;a<n.length;a++){var o=n[a];if(t[a]===Ku)for(var s=0;s<o.properties.length;s++){var l=o.properties[s];i[l.name]=l}}return r[t]=i,i},$u.applyContextStyle=function(e,t,n){for(var r=this,i=e.diffPropNames,a={},o=r.types,s=0;s<i.length;s++){var l=i[s],u=t[l],c=n.pstyle(l);if(!u){if(!c)continue;u=c.bypass?{name:l,deleteBypassed:!0}:{name:l,delete:!0}}if(c!==u){if(u.mapped===o.fn&&null!=c&&null!=c.mapping&&c.mapping.value===u.value){var h=c.mapping;if((h.fnValue=u.value(n))===h.prevFnValue)continue}var d=a[l]={prev:c};r.applyParsedProperty(n,u),d.next=n.pstyle(l),d.next&&d.next.bypass&&(d.next=d.next.bypassed)}}return{diffProps:a}},$u.updateStyleHints=function(e){var t=e._private,n=this,r=n.propertyGroupNames,i=n.propertyGroupKeys,a=function(e,t,r){return n.getPropertiesHash(e,t,r)},o=t.styleKey;if(e.removed())return!1;var s="nodes"===t.group,l=e._private.style;r=Object.keys(l);for(var u=0;u<i.length;u++){var c=i[u];t.styleKeys[c]=[it,ot]}for(var h=function(e,n){return t.styleKeys[n][0]=lt(e,t.styleKeys[n][0])},d=function(e,n){return t.styleKeys[n][1]=ut(e,t.styleKeys[n][1])},p=function(e,t){h(e,t),d(e,t)},g=function(e,t){for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);h(r,t),d(r,t)}},f=2e9,v=function(e){return-128<e&&e<128&&Math.floor(e)!==e?f-(1024*e|0):e},y=0;y<r.length;y++){var m=r[y],b=l[m];if(null!=b){var x=this.properties[m],w=x.type,E=x.groupKey,T=void 0;null!=x.hashOverride?T=x.hashOverride(e,b):null!=b.pfValue&&(T=b.pfValue);var _=null==x.enums?b.value:null,D=null!=T,C=D||null!=_,N=b.units;w.number&&C&&!w.multiple?(p(v(D?T:_),E),D||null==N||g(N,E)):g(b.strValue,E)}}for(var A=[it,ot],L=0;L<i.length;L++){var S=i[L],O=t.styleKeys[S];A[0]=lt(O[0],A[0]),A[1]=ut(O[1],A[1])}t.styleKey=ct(A[0],A[1]);var I=t.styleKeys;t.labelDimsKey=ht(I.labelDimensions);var k=a(e,["label"],I.labelDimensions);if(t.labelKey=ht(k),t.labelStyleKey=ht(dt(I.commonLabel,k)),!s){var M=a(e,["source-label"],I.labelDimensions);t.sourceLabelKey=ht(M),t.sourceLabelStyleKey=ht(dt(I.commonLabel,M));var P=a(e,["target-label"],I.labelDimensions);t.targetLabelKey=ht(P),t.targetLabelStyleKey=ht(dt(I.commonLabel,P))}if(s){var R=t.styleKeys,B=R.nodeBody,F=R.nodeBorder,z=R.backgroundImage,G=R.compound,Y=R.pie,X=[B,F,z,G,Y].filter((function(e){return null!=e})).reduce(dt,[it,ot]);t.nodeKey=ht(X),t.hasPie=null!=Y&&Y[0]!==it&&Y[1]!==ot}return o!==t.styleKey},$u.clearStyleHints=function(e){var t=e._private;t.styleCxtKey="",t.styleKeys={},t.styleKey=null,t.labelKey=null,t.labelStyleKey=null,t.sourceLabelKey=null,t.sourceLabelStyleKey=null,t.targetLabelKey=null,t.targetLabelStyleKey=null,t.nodeKey=null,t.hasPie=null},$u.applyParsedProperty=function(e,t){var n,r=this,i=t,a=e._private.style,o=r.types,s=r.properties[i.name].type,l=i.bypass,u=a[i.name],c=u&&u.bypass,h=e._private,d="mapping",p=function(e){return null==e?null:null!=e.pfValue?e.pfValue:e.value},g=function(){var t=p(u),n=p(i);r.checkTriggers(e,i.name,t,n)};if(i&&"pie"===i.name.substr(0,3)&&Nt("The pie style properties are deprecated. Create charts using background images instead."),"curve-style"===t.name&&e.isEdge()&&("bezier"!==t.value&&e.isLoop()||"haystack"===t.value&&(e.source().isParent()||e.target().isParent()))&&(i=t=this.parse(t.name,"bezier",l)),i.delete)return a[i.name]=void 0,g(),!0;if(i.deleteBypassed)return u?!!u.bypass&&(u.bypassed=void 0,g(),!0):(g(),!0);if(i.deleteBypass)return u?!!u.bypass&&(a[i.name]=u.bypassed,g(),!0):(g(),!0);var f=function(){Nt("Do not assign mappings to elements without corresponding data (i.e. ele `"+e.id()+"` has no mapping for property `"+i.name+"` with data field `"+i.field+"`); try a `["+i.field+"]` selector to limit scope to elements with `"+i.field+"` defined")};switch(i.mapped){case o.mapData:for(var v,y=i.field.split("."),m=h.data,b=0;b<y.length&&m;b++)m=m[y[b]];if(null==m)return f(),!1;if(!_(m))return Nt("Do not use continuous mappers without specifying numeric data (i.e. `"+i.field+": "+m+"` for `"+e.id()+"` is non-numeric)"),!1;var x=i.fieldMax-i.fieldMin;if((v=0===x?0:(m-i.fieldMin)/x)<0?v=0:v>1&&(v=1),s.color){var w=i.valueMin[0],E=i.valueMax[0],T=i.valueMin[1],D=i.valueMax[1],C=i.valueMin[2],N=i.valueMax[2],A=null==i.valueMin[3]?1:i.valueMin[3],L=null==i.valueMax[3]?1:i.valueMax[3],S=[Math.round(w+(E-w)*v),Math.round(T+(D-T)*v),Math.round(C+(N-C)*v),Math.round(A+(L-A)*v)];n={bypass:i.bypass,name:i.name,value:S,strValue:"rgb("+S[0]+", "+S[1]+", "+S[2]+")"}}else{if(!s.number)return!1;var O=i.valueMin+(i.valueMax-i.valueMin)*v;n=this.parse(i.name,O,i.bypass,d)}if(!n)return f(),!1;n.mapping=i,i=n;break;case o.data:for(var I=i.field.split("."),k=h.data,M=0;M<I.length&&k;M++)k=k[I[M]];if(null!=k&&(n=this.parse(i.name,k,i.bypass,d)),!n)return f(),!1;n.mapping=i,i=n;break;case o.fn:var P=i.value,R=null!=i.fnValue?i.fnValue:P(e);if(i.prevFnValue=R,null==R)return Nt("Custom function mappers may not return null (i.e. `"+i.name+"` for ele `"+e.id()+"` is null)"),!1;if(!(n=this.parse(i.name,R,i.bypass,d)))return Nt("Custom function mappers may not return invalid values for the property type (i.e. `"+i.name+"` for ele `"+e.id()+"` is invalid)"),!1;n.mapping=Lt(i),i=n;break;case void 0:break;default:return!1}return l?(i.bypassed=c?u.bypassed:u,a[i.name]=i):c?u.bypassed=i:a[i.name]=i,g(),!0},$u.cleanElements=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(this.clearStyleHints(r),r.dirtyCompoundBoundsCache(),r.dirtyBoundingBoxCache(),t)for(var i=r._private.style,a=Object.keys(i),o=0;o<a.length;o++){var s=a[o],l=i[s];null!=l&&(l.bypass?l.bypassed=null:i[s]=null)}else r._private.style={}}},$u.update=function(){this._private.cy.mutableElements().updateStyle()},$u.updateTransitions=function(e,t){var n=this,r=e._private,i=e.pstyle("transition-property").value,a=e.pstyle("transition-duration").pfValue,o=e.pstyle("transition-delay").pfValue;if(i.length>0&&a>0){for(var s={},l=!1,u=0;u<i.length;u++){var c=i[u],h=e.pstyle(c),d=t[c];if(d){var p=d.prev,g=null!=d.next?d.next:h,f=!1,v=void 0,y=1e-6;p&&(_(p.pfValue)&&_(g.pfValue)?(f=g.pfValue-p.pfValue,v=p.pfValue+y*f):_(p.value)&&_(g.value)?(f=g.value-p.value,v=p.value+y*f):w(p.value)&&w(g.value)&&(f=p.value[0]!==g.value[0]||p.value[1]!==g.value[1]||p.value[2]!==g.value[2],v=p.strValue),f&&(s[c]=g.strValue,this.applyBypass(e,c,v),l=!0))}}if(!l)return;r.transitioning=!0,new Yi((function(t){o>0?e.delayAnimation(o).play().promise().then(t):t()})).then((function(){return e.animation({style:s,duration:a,easing:e.pstyle("transition-timing-function").value,queue:!1}).play().promise()})).then((function(){n.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1}))}else r.transitioning&&(this.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1)},$u.checkTrigger=function(e,t,n,r,i,a){var o=this.properties[t],s=i(o);null!=s&&s(n,r)&&a(o)},$u.checkZOrderTrigger=function(e,t,n,r){var i=this;this.checkTrigger(e,t,n,r,(function(e){return e.triggersZOrder}),(function(){i._private.cy.notify("zorder",e)}))},$u.checkBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,(function(e){return e.triggersBounds}),(function(i){e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache(),!i.triggersBoundsOfParallelBeziers||("curve-style"!==t||"bezier"!==n&&"bezier"!==r)&&("display"!==t||"none"!==n&&"none"!==r)||e.parallelEdges().forEach((function(e){e.isBundledBezier()&&e.dirtyBoundingBoxCache()}))}))},$u.checkTriggers=function(e,t,n,r){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,n,r),this.checkBoundsTrigger(e,t,n,r)};var Qu={applyBypass:function(e,t,n,r){var i=this,a=[],o=!0;if("*"===t||"**"===t){if(void 0!==n)for(var s=0;s<i.properties.length;s++){var l=i.properties[s].name,u=this.parse(l,n,!0);u&&a.push(u)}}else if(b(t)){var c=this.parse(t,n,!0);c&&a.push(c)}else{if(!E(t))return!1;var h=t;r=n;for(var d=Object.keys(h),p=0;p<d.length;p++){var g=d[p],f=h[g];if(void 0===f&&(f=h[G(g)]),void 0!==f){var v=this.parse(g,f,!0);v&&a.push(v)}}}if(0===a.length)return!1;for(var y=!1,m=0;m<e.length;m++){for(var x=e[m],w={},T=void 0,_=0;_<a.length;_++){var D=a[_];if(r){var C=x.pstyle(D.name);T=w[D.name]={prev:C}}y=this.applyParsedProperty(x,Lt(D))||y,r&&(T.next=x.pstyle(D.name))}y&&this.updateStyleHints(x),r&&this.updateTransitions(x,w,o)}return y},overrideBypass:function(e,t,n){t=z(t);for(var r=0;r<e.length;r++){var i=e[r],a=i._private.style[t],o=this.properties[t].type,s=o.color,l=o.mutiple,u=a?null!=a.pfValue?a.pfValue:a.value:null;a&&a.bypass?(a.value=n,null!=a.pfValue&&(a.pfValue=n),a.strValue=s?"rgb("+n.join(",")+")":l?n.join(" "):""+n,this.updateStyleHints(i)):this.applyBypass(i,t,n),this.checkTriggers(i,t,u,n)}},removeAllBypasses:function(e,t){return this.removeBypasses(e,this.propertyNames,t)},removeBypasses:function(e,t,n){for(var r=!0,i=0;i<e.length;i++){for(var a=e[i],o={},s=0;s<t.length;s++){var l=t[s],u=this.properties[l],c=a.pstyle(u.name);if(c&&c.bypass){var h="",d=this.parse(l,h,!0),p=o[u.name]={prev:c};this.applyParsedProperty(a,d),p.next=a.pstyle(u.name)}}this.updateStyleHints(a),n&&this.updateTransitions(a,o,r)}}},Ju={getEmSizeInPixels:function(){var e=this.containerCss("font-size");return null!=e?parseFloat(e):1},containerCss:function(e){var t=this._private.cy,n=t.container(),r=t.window();if(r&&n&&r.getComputedStyle)return r.getComputedStyle(n).getPropertyValue(e)}},ec={getRenderedStyle:function(e,t){return t?this.getStylePropertyValue(e,t,!0):this.getRawStyle(e,!0)},getRawStyle:function(e,t){var n=this;if(e=e[0]){for(var r={},i=0;i<n.properties.length;i++){var a=n.properties[i],o=n.getStylePropertyValue(e,a.name,t);null!=o&&(r[a.name]=o,r[G(a.name)]=o)}return r}},getIndexedStyle:function(e,t,n,r){var i=e.pstyle(t)[n][r];return null!=i?i:e.cy().style().getDefaultProperty(t)[n][0]},getStylePropertyValue:function(e,t,n){var r=this;if(e=e[0]){var i=r.properties[t];i.alias&&(i=i.pointsTo);var a=i.type,o=e.pstyle(i.name);if(o){var s=o.value,l=o.units,u=o.strValue;if(n&&a.number&&null!=s&&_(s)){var c=e.cy().zoom(),h=function(e){return e*c},d=function(e,t){return h(e)+t},p=w(s);return(p?l.every((function(e){return null!=e})):null!=l)?p?s.map((function(e,t){return d(e,l[t])})).join(" "):d(s,l):p?s.map((function(e){return b(e)?e:""+h(e)})).join(" "):""+h(s)}if(null!=u)return u}return null}},getAnimationStartStyle:function(e,t){for(var n={},r=0;r<t.length;r++){var i=t[r].name,a=e.pstyle(i);void 0!==a&&(a=E(a)?this.parse(i,a.strValue):this.parse(i,a)),a&&(n[i]=a)}return n},getPropsList:function(e){var t=[],n=e,r=this.properties;if(n)for(var i=Object.keys(n),a=0;a<i.length;a++){var o=i[a],s=n[o],l=r[o]||r[z(o)],u=this.parse(l.name,s);u&&t.push(u)}return t},getNonDefaultPropertiesHash:function(e,t,n){var r,i,a,o,s,l,u=n.slice();for(s=0;s<t.length;s++)if(r=t[s],null!=(i=e.pstyle(r,!1)))if(null!=i.pfValue)u[0]=lt(o,u[0]),u[1]=ut(o,u[1]);else for(a=i.strValue,l=0;l<a.length;l++)o=a.charCodeAt(l),u[0]=lt(o,u[0]),u[1]=ut(o,u[1]);return u}};ec.getPropertiesHash=ec.getNonDefaultPropertiesHash;var tc={appendFromJson:function(e){for(var t=this,n=0;n<e.length;n++){var r=e[n],i=r.selector,a=r.style||r.css,o=Object.keys(a);t.selector(i);for(var s=0;s<o.length;s++){var l=o[s],u=a[l];t.css(l,u)}}return t},fromJson:function(e){var t=this;return t.resetToDefault(),t.appendFromJson(e),t},json:function(){for(var e=[],t=this.defaultLength;t<this.length;t++){for(var n=this[t],r=n.selector,i=n.properties,a={},o=0;o<i.length;o++){var s=i[o];a[s.name]=s.strValue}e.push({selector:r?r.toString():"core",style:a})}return e}},nc={appendFromString:function(e){var t,n,r,i=this,a=this,o=""+e;function s(){o=o.length>t.length?o.substr(t.length):""}function l(){n=n.length>r.length?n.substr(r.length):""}for(o=o.replace(/[/][*](\s|.)+?[*][/]/g,"");!o.match(/^\s*$/);){var u=o.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!u){Nt("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+o);break}t=u[0];var c=u[1];if("core"!==c&&new Ys(c).invalid)Nt("Skipping parsing of block: Invalid selector found in string stylesheet: "+c),s();else{var h=u[2],d=!1;n=h;for(var p=[];!n.match(/^\s*$/);){var g=n.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!g){Nt("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+h),d=!0;break}r=g[0];var f=g[1],v=g[2];i.properties[f]?a.parse(f,v)?(p.push({name:f,val:v}),l()):(Nt("Skipping property: Invalid property definition in: "+r),l()):(Nt("Skipping property: Invalid property name in: "+r),l())}if(d){s();break}a.selector(c);for(var y=0;y<p.length;y++){var m=p[y];a.css(m.name,m.val)}s()}}return a},fromString:function(e){var t=this;return t.resetToDefault(),t.appendFromString(e),t}},rc={};(function(){var e=V,t=j,n=q,r=W,i=$,a=function(e){return"^"+e+"\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"},o=function(a){var o=e+"|\\w+|"+t+"|"+n+"|"+r+"|"+i;return"^"+a+"\\s*\\(([\\w\\.]+)\\s*\\,\\s*("+e+")\\s*\\,\\s*("+e+")\\s*,\\s*("+o+")\\s*\\,\\s*("+o+")\\)$"},s=["^url\\s*\\(\\s*['\"]?(.+?)['\"]?\\s*\\)$","^(none)$","^(.+)$"];rc.types={time:{number:!0,min:0,units:"s|ms",implicitUnits:"ms"},percent:{number:!0,min:0,max:100,units:"%",implicitUnits:"%"},percentages:{number:!0,min:0,max:100,units:"%",implicitUnits:"%",multiple:!0},zeroOneNumber:{number:!0,min:0,max:1,unitless:!0},zeroOneNumbers:{number:!0,min:0,max:1,unitless:!0,multiple:!0},nOneOneNumber:{number:!0,min:-1,max:1,unitless:!0},nonNegativeInt:{number:!0,min:0,integer:!0,unitless:!0},position:{enums:["parent","origin"]},nodeSize:{number:!0,min:0,enums:["label"]},number:{number:!0,unitless:!0},numbers:{number:!0,unitless:!0,multiple:!0},positiveNumber:{number:!0,unitless:!0,min:0,strictMin:!0},size:{number:!0,min:0},bidirectionalSize:{number:!0},bidirectionalSizeMaybePercent:{number:!0,allowPercent:!0},bidirectionalSizes:{number:!0,multiple:!0},sizeMaybePercent:{number:!0,min:0,allowPercent:!0},axisDirection:{enums:["horizontal","leftward","rightward","vertical","upward","downward","auto"]},paddingRelativeTo:{enums:["width","height","average","min","max"]},bgWH:{number:!0,min:0,allowPercent:!0,enums:["auto"],multiple:!0},bgPos:{number:!0,allowPercent:!0,multiple:!0},bgRelativeTo:{enums:["inner","include-padding"],multiple:!0},bgRepeat:{enums:["repeat","repeat-x","repeat-y","no-repeat"],multiple:!0},bgFit:{enums:["none","contain","cover"],multiple:!0},bgCrossOrigin:{enums:["anonymous","use-credentials","null"],multiple:!0},bgClip:{enums:["none","node"],multiple:!0},bgContainment:{enums:["inside","over"],multiple:!0},color:{color:!0},colors:{color:!0,multiple:!0},fill:{enums:["solid","linear-gradient","radial-gradient"]},bool:{enums:["yes","no"]},bools:{enums:["yes","no"],multiple:!0},lineStyle:{enums:["solid","dotted","dashed"]},lineCap:{enums:["butt","round","square"]},borderStyle:{enums:["solid","dotted","dashed","double"]},curveStyle:{enums:["bezier","unbundled-bezier","haystack","segments","straight","straight-triangle","taxi"]},fontFamily:{regex:'^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'},fontStyle:{enums:["italic","normal","oblique"]},fontWeight:{enums:["normal","bold","bolder","lighter","100","200","300","400","500","600","800","900",100,200,300,400,500,600,700,800,900]},textDecoration:{enums:["none","underline","overline","line-through"]},textTransform:{enums:["none","uppercase","lowercase"]},textWrap:{enums:["none","wrap","ellipsis"]},textOverflowWrap:{enums:["whitespace","anywhere"]},textBackgroundShape:{enums:["rectangle","roundrectangle","round-rectangle"]},nodeShape:{enums:["rectangle","roundrectangle","round-rectangle","cutrectangle","cut-rectangle","bottomroundrectangle","bottom-round-rectangle","barrel","ellipse","triangle","round-triangle","square","pentagon","round-pentagon","hexagon","round-hexagon","concavehexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","tag","round-tag","star","diamond","round-diamond","vee","rhomboid","right-rhomboid","polygon"]},overlayShape:{enums:["roundrectangle","round-rectangle","ellipse"]},compoundIncludeLabels:{enums:["include","exclude"]},arrowShape:{enums:["tee","triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","square","circle","diamond","chevron","none"]},arrowFill:{enums:["filled","hollow"]},display:{enums:["element","none"]},visibility:{enums:["hidden","visible"]},zCompoundDepth:{enums:["bottom","orphan","auto","top"]},zIndexCompare:{enums:["auto","manual"]},valign:{enums:["top","center","bottom"]},halign:{enums:["left","center","right"]},justification:{enums:["left","center","right","auto"]},text:{string:!0},data:{mapping:!0,regex:a("data")},layoutData:{mapping:!0,regex:a("layoutData")},scratch:{mapping:!0,regex:a("scratch")},mapData:{mapping:!0,regex:o("mapData")},mapLayoutData:{mapping:!0,regex:o("mapLayoutData")},mapScratch:{mapping:!0,regex:o("mapScratch")},fn:{mapping:!0,fn:!0},url:{regexes:s,singleRegexMatchValue:!0},urls:{regexes:s,singleRegexMatchValue:!0,multiple:!0},propList:{propList:!0},angle:{number:!0,units:"deg|rad",implicitUnits:"rad"},textRotation:{number:!0,units:"deg|rad",implicitUnits:"rad",enums:["none","autorotate"]},polygonPointList:{number:!0,multiple:!0,evenMultiple:!0,min:-1,max:1,unitless:!0},edgeDistances:{enums:["intersection","node-position"]},edgeEndpoint:{number:!0,multiple:!0,units:"%|px|em|deg|rad",implicitUnits:"px",enums:["inside-to-node","outside-to-node","outside-to-node-or-label","outside-to-line","outside-to-line-or-label"],singleEnum:!0,validate:function(e,t){switch(e.length){case 2:return"deg"!==t[0]&&"rad"!==t[0]&&"deg"!==t[1]&&"rad"!==t[1];case 1:return b(e[0])||"deg"===t[0]||"rad"===t[0];default:return!1}}},easing:{regexes:["^(spring)\\s*\\(\\s*("+e+")\\s*,\\s*("+e+")\\s*\\)$","^(cubic-bezier)\\s*\\(\\s*("+e+")\\s*,\\s*("+e+")\\s*,\\s*("+e+")\\s*,\\s*("+e+")\\s*\\)$"],enums:["linear","ease","ease-in","ease-out","ease-in-out","ease-in-sine","ease-out-sine","ease-in-out-sine","ease-in-quad","ease-out-quad","ease-in-out-quad","ease-in-cubic","ease-out-cubic","ease-in-out-cubic","ease-in-quart","ease-out-quart","ease-in-out-quart","ease-in-quint","ease-out-quint","ease-in-out-quint","ease-in-expo","ease-out-expo","ease-in-out-expo","ease-in-circ","ease-out-circ","ease-in-out-circ"]},gradientDirection:{enums:["to-bottom","to-top","to-left","to-right","to-bottom-right","to-bottom-left","to-top-right","to-top-left","to-right-bottom","to-left-bottom","to-right-top","to-left-top"]},boundsExpansion:{number:!0,multiple:!0,min:0,validate:function(e){var t=e.length;return 1===t||2===t||4===t}}};var l={zeroNonZero:function(e,t){return(null==e||null==t)&&e!==t||0==e&&0!=t||0!=e&&0==t},any:function(e,t){return e!=t},emptyNonEmpty:function(e,t){var n=k(e),r=k(t);return n&&!r||!n&&r}},u=rc.types,c=[{name:"label",type:u.text,triggersBounds:l.any,triggersZOrder:l.emptyNonEmpty},{name:"text-rotation",type:u.textRotation,triggersBounds:l.any},{name:"text-margin-x",type:u.bidirectionalSize,triggersBounds:l.any},{name:"text-margin-y",type:u.bidirectionalSize,triggersBounds:l.any}],h=[{name:"source-label",type:u.text,triggersBounds:l.any},{name:"source-text-rotation",type:u.textRotation,triggersBounds:l.any},{name:"source-text-margin-x",type:u.bidirectionalSize,triggersBounds:l.any},{name:"source-text-margin-y",type:u.bidirectionalSize,triggersBounds:l.any},{name:"source-text-offset",type:u.size,triggersBounds:l.any}],d=[{name:"target-label",type:u.text,triggersBounds:l.any},{name:"target-text-rotation",type:u.textRotation,triggersBounds:l.any},{name:"target-text-margin-x",type:u.bidirectionalSize,triggersBounds:l.any},{name:"target-text-margin-y",type:u.bidirectionalSize,triggersBounds:l.any},{name:"target-text-offset",type:u.size,triggersBounds:l.any}],p=[{name:"font-family",type:u.fontFamily,triggersBounds:l.any},{name:"font-style",type:u.fontStyle,triggersBounds:l.any},{name:"font-weight",type:u.fontWeight,triggersBounds:l.any},{name:"font-size",type:u.size,triggersBounds:l.any},{name:"text-transform",type:u.textTransform,triggersBounds:l.any},{name:"text-wrap",type:u.textWrap,triggersBounds:l.any},{name:"text-overflow-wrap",type:u.textOverflowWrap,triggersBounds:l.any},{name:"text-max-width",type:u.size,triggersBounds:l.any},{name:"text-outline-width",type:u.size,triggersBounds:l.any},{name:"line-height",type:u.positiveNumber,triggersBounds:l.any}],g=[{name:"text-valign",type:u.valign,triggersBounds:l.any},{name:"text-halign",type:u.halign,triggersBounds:l.any},{name:"color",type:u.color},{name:"text-outline-color",type:u.color},{name:"text-outline-opacity",type:u.zeroOneNumber},{name:"text-background-color",type:u.color},{name:"text-background-opacity",type:u.zeroOneNumber},{name:"text-background-padding",type:u.size,triggersBounds:l.any},{name:"text-border-opacity",type:u.zeroOneNumber},{name:"text-border-color",type:u.color},{name:"text-border-width",type:u.size,triggersBounds:l.any},{name:"text-border-style",type:u.borderStyle,triggersBounds:l.any},{name:"text-background-shape",type:u.textBackgroundShape,triggersBounds:l.any},{name:"text-justification",type:u.justification}],f=[{name:"events",type:u.bool},{name:"text-events",type:u.bool}],v=[{name:"display",type:u.display,triggersZOrder:l.any,triggersBounds:l.any,triggersBoundsOfParallelBeziers:!0},{name:"visibility",type:u.visibility,triggersZOrder:l.any},{name:"opacity",type:u.zeroOneNumber,triggersZOrder:l.zeroNonZero},{name:"text-opacity",type:u.zeroOneNumber},{name:"min-zoomed-font-size",type:u.size},{name:"z-compound-depth",type:u.zCompoundDepth,triggersZOrder:l.any},{name:"z-index-compare",type:u.zIndexCompare,triggersZOrder:l.any},{name:"z-index",type:u.nonNegativeInt,triggersZOrder:l.any}],y=[{name:"overlay-padding",type:u.size,triggersBounds:l.any},{name:"overlay-color",type:u.color},{name:"overlay-opacity",type:u.zeroOneNumber,triggersBounds:l.zeroNonZero},{name:"overlay-shape",type:u.overlayShape,triggersBounds:l.any}],m=[{name:"underlay-padding",type:u.size,triggersBounds:l.any},{name:"underlay-color",type:u.color},{name:"underlay-opacity",type:u.zeroOneNumber,triggersBounds:l.zeroNonZero},{name:"underlay-shape",type:u.overlayShape,triggersBounds:l.any}],x=[{name:"transition-property",type:u.propList},{name:"transition-duration",type:u.time},{name:"transition-delay",type:u.time},{name:"transition-timing-function",type:u.easing}],w=function(e,t){return"label"===t.value?-e.poolIndex():t.pfValue},E=[{name:"height",type:u.nodeSize,triggersBounds:l.any,hashOverride:w},{name:"width",type:u.nodeSize,triggersBounds:l.any,hashOverride:w},{name:"shape",type:u.nodeShape,triggersBounds:l.any},{name:"shape-polygon-points",type:u.polygonPointList,triggersBounds:l.any},{name:"background-color",type:u.color},{name:"background-fill",type:u.fill},{name:"background-opacity",type:u.zeroOneNumber},{name:"background-blacken",type:u.nOneOneNumber},{name:"background-gradient-stop-colors",type:u.colors},{name:"background-gradient-stop-positions",type:u.percentages},{name:"background-gradient-direction",type:u.gradientDirection},{name:"padding",type:u.sizeMaybePercent,triggersBounds:l.any},{name:"padding-relative-to",type:u.paddingRelativeTo,triggersBounds:l.any},{name:"bounds-expansion",type:u.boundsExpansion,triggersBounds:l.any}],T=[{name:"border-color",type:u.color},{name:"border-opacity",type:u.zeroOneNumber},{name:"border-width",type:u.size,triggersBounds:l.any},{name:"border-style",type:u.borderStyle}],_=[{name:"background-image",type:u.urls},{name:"background-image-crossorigin",type:u.bgCrossOrigin},{name:"background-image-opacity",type:u.zeroOneNumbers},{name:"background-image-containment",type:u.bgContainment},{name:"background-image-smoothing",type:u.bools},{name:"background-position-x",type:u.bgPos},{name:"background-position-y",type:u.bgPos},{name:"background-width-relative-to",type:u.bgRelativeTo},{name:"background-height-relative-to",type:u.bgRelativeTo},{name:"background-repeat",type:u.bgRepeat},{name:"background-fit",type:u.bgFit},{name:"background-clip",type:u.bgClip},{name:"background-width",type:u.bgWH},{name:"background-height",type:u.bgWH},{name:"background-offset-x",type:u.bgPos},{name:"background-offset-y",type:u.bgPos}],D=[{name:"position",type:u.position,triggersBounds:l.any},{name:"compound-sizing-wrt-labels",type:u.compoundIncludeLabels,triggersBounds:l.any},{name:"min-width",type:u.size,triggersBounds:l.any},{name:"min-width-bias-left",type:u.sizeMaybePercent,triggersBounds:l.any},{name:"min-width-bias-right",type:u.sizeMaybePercent,triggersBounds:l.any},{name:"min-height",type:u.size,triggersBounds:l.any},{name:"min-height-bias-top",type:u.sizeMaybePercent,triggersBounds:l.any},{name:"min-height-bias-bottom",type:u.sizeMaybePercent,triggersBounds:l.any}],C=[{name:"line-style",type:u.lineStyle},{name:"line-color",type:u.color},{name:"line-fill",type:u.fill},{name:"line-cap",type:u.lineCap},{name:"line-opacity",type:u.zeroOneNumber},{name:"line-dash-pattern",type:u.numbers},{name:"line-dash-offset",type:u.number},{name:"line-gradient-stop-colors",type:u.colors},{name:"line-gradient-stop-positions",type:u.percentages},{name:"curve-style",type:u.curveStyle,triggersBounds:l.any,triggersBoundsOfParallelBeziers:!0},{name:"haystack-radius",type:u.zeroOneNumber,triggersBounds:l.any},{name:"source-endpoint",type:u.edgeEndpoint,triggersBounds:l.any},{name:"target-endpoint",type:u.edgeEndpoint,triggersBounds:l.any},{name:"control-point-step-size",type:u.size,triggersBounds:l.any},{name:"control-point-distances",type:u.bidirectionalSizes,triggersBounds:l.any},{name:"control-point-weights",type:u.numbers,triggersBounds:l.any},{name:"segment-distances",type:u.bidirectionalSizes,triggersBounds:l.any},{name:"segment-weights",type:u.numbers,triggersBounds:l.any},{name:"taxi-turn",type:u.bidirectionalSizeMaybePercent,triggersBounds:l.any},{name:"taxi-turn-min-distance",type:u.size,triggersBounds:l.any},{name:"taxi-direction",type:u.axisDirection,triggersBounds:l.any},{name:"edge-distances",type:u.edgeDistances,triggersBounds:l.any},{name:"arrow-scale",type:u.positiveNumber,triggersBounds:l.any},{name:"loop-direction",type:u.angle,triggersBounds:l.any},{name:"loop-sweep",type:u.angle,triggersBounds:l.any},{name:"source-distance-from-node",type:u.size,triggersBounds:l.any},{name:"target-distance-from-node",type:u.size,triggersBounds:l.any}],N=[{name:"ghost",type:u.bool,triggersBounds:l.any},{name:"ghost-offset-x",type:u.bidirectionalSize,triggersBounds:l.any},{name:"ghost-offset-y",type:u.bidirectionalSize,triggersBounds:l.any},{name:"ghost-opacity",type:u.zeroOneNumber}],A=[{name:"selection-box-color",type:u.color},{name:"selection-box-opacity",type:u.zeroOneNumber},{name:"selection-box-border-color",type:u.color},{name:"selection-box-border-width",type:u.size},{name:"active-bg-color",type:u.color},{name:"active-bg-opacity",type:u.zeroOneNumber},{name:"active-bg-size",type:u.size},{name:"outside-texture-bg-color",type:u.color},{name:"outside-texture-bg-opacity",type:u.zeroOneNumber}],L=[];rc.pieBackgroundN=16,L.push({name:"pie-size",type:u.sizeMaybePercent});for(var S=1;S<=rc.pieBackgroundN;S++)L.push({name:"pie-"+S+"-background-color",type:u.color}),L.push({name:"pie-"+S+"-background-size",type:u.percent}),L.push({name:"pie-"+S+"-background-opacity",type:u.zeroOneNumber});var O=[],I=rc.arrowPrefixes=["source","mid-source","target","mid-target"];[{name:"arrow-shape",type:u.arrowShape,triggersBounds:l.any},{name:"arrow-color",type:u.color},{name:"arrow-fill",type:u.arrowFill}].forEach((function(e){I.forEach((function(t){var n=t+"-"+e.name,r=e.type,i=e.triggersBounds;O.push({name:n,type:r,triggersBounds:i})}))}),{});var M=rc.properties=[].concat(f,x,v,y,m,N,g,p,c,h,d,E,T,_,L,D,C,O,A),P=rc.propertyGroups={behavior:f,transition:x,visibility:v,overlay:y,underlay:m,ghost:N,commonLabel:g,labelDimensions:p,mainLabel:c,sourceLabel:h,targetLabel:d,nodeBody:E,nodeBorder:T,backgroundImage:_,pie:L,compound:D,edgeLine:C,edgeArrow:O,core:A},R=rc.propertyGroupNames={};(rc.propertyGroupKeys=Object.keys(P)).forEach((function(e){R[e]=P[e].map((function(e){return e.name})),P[e].forEach((function(t){return t.groupKey=e}))}));var B=rc.aliases=[{name:"content",pointsTo:"label"},{name:"control-point-distance",pointsTo:"control-point-distances"},{name:"control-point-weight",pointsTo:"control-point-weights"},{name:"edge-text-rotation",pointsTo:"text-rotation"},{name:"padding-left",pointsTo:"padding"},{name:"padding-right",pointsTo:"padding"},{name:"padding-top",pointsTo:"padding"},{name:"padding-bottom",pointsTo:"padding"}];rc.propertyNames=M.map((function(e){return e.name}));for(var F=0;F<M.length;F++){var z=M[F];M[z.name]=z}for(var G=0;G<B.length;G++){var Y=B[G],X=M[Y.pointsTo],U={name:Y.name,alias:!0,pointsTo:X};M.push(U),M[Y.name]=U}})(),rc.getDefaultProperty=function(e){return this.getDefaultProperties()[e]},rc.getDefaultProperties=function(){var e=this._private;if(null!=e.defaultProperties)return e.defaultProperties;for(var t=Q({"selection-box-color":"#ddd","selection-box-opacity":.65,"selection-box-border-color":"#aaa","selection-box-border-width":1,"active-bg-color":"black","active-bg-opacity":.15,"active-bg-size":30,"outside-texture-bg-color":"#000","outside-texture-bg-opacity":.125,events:"yes","text-events":"no","text-valign":"top","text-halign":"center","text-justification":"auto","line-height":1,color:"#000","text-outline-color":"#000","text-outline-width":0,"text-outline-opacity":1,"text-opacity":1,"text-decoration":"none","text-transform":"none","text-wrap":"none","text-overflow-wrap":"whitespace","text-max-width":9999,"text-background-color":"#000","text-background-opacity":0,"text-background-shape":"rectangle","text-background-padding":0,"text-border-opacity":0,"text-border-width":0,"text-border-style":"solid","text-border-color":"#000","font-family":"Helvetica Neue, Helvetica, sans-serif","font-style":"normal","font-weight":"normal","font-size":16,"min-zoomed-font-size":0,"text-rotation":"none","source-text-rotation":"none","target-text-rotation":"none",visibility:"visible",display:"element",opacity:1,"z-compound-depth":"auto","z-index-compare":"auto","z-index":0,label:"","text-margin-x":0,"text-margin-y":0,"source-label":"","source-text-offset":0,"source-text-margin-x":0,"source-text-margin-y":0,"target-label":"","target-text-offset":0,"target-text-margin-x":0,"target-text-margin-y":0,"overlay-opacity":0,"overlay-color":"#000","overlay-padding":10,"overlay-shape":"round-rectangle","underlay-opacity":0,"underlay-color":"#000","underlay-padding":10,"underlay-shape":"round-rectangle","transition-property":"none","transition-duration":0,"transition-delay":0,"transition-timing-function":"linear","background-blacken":0,"background-color":"#999","background-fill":"solid","background-opacity":1,"background-image":"none","background-image-crossorigin":"anonymous","background-image-opacity":1,"background-image-containment":"inside","background-image-smoothing":"yes","background-position-x":"50%","background-position-y":"50%","background-offset-x":0,"background-offset-y":0,"background-width-relative-to":"include-padding","background-height-relative-to":"include-padding","background-repeat":"no-repeat","background-fit":"none","background-clip":"node","background-width":"auto","background-height":"auto","border-color":"#000","border-opacity":1,"border-width":0,"border-style":"solid",height:30,width:30,shape:"ellipse","shape-polygon-points":"-1, -1, 1, -1, 1, 1, -1, 1","bounds-expansion":0,"background-gradient-direction":"to-bottom","background-gradient-stop-colors":"#999","background-gradient-stop-positions":"0%",ghost:"no","ghost-offset-y":0,"ghost-offset-x":0,"ghost-opacity":0,padding:0,"padding-relative-to":"width",position:"origin","compound-sizing-wrt-labels":"include","min-width":0,"min-width-bias-left":0,"min-width-bias-right":0,"min-height":0,"min-height-bias-top":0,"min-height-bias-bottom":0},{"pie-size":"100%"},[{name:"pie-{{i}}-background-color",value:"black"},{name:"pie-{{i}}-background-size",value:"0%"},{name:"pie-{{i}}-background-opacity",value:1}].reduce((function(e,t){for(var n=1;n<=rc.pieBackgroundN;n++){var r=t.name.replace("{{i}}",n),i=t.value;e[r]=i}return e}),{}),{"line-style":"solid","line-color":"#999","line-fill":"solid","line-cap":"butt","line-opacity":1,"line-gradient-stop-colors":"#999","line-gradient-stop-positions":"0%","control-point-step-size":40,"control-point-weights":.5,"segment-weights":.5,"segment-distances":20,"taxi-turn":"50%","taxi-turn-min-distance":10,"taxi-direction":"auto","edge-distances":"intersection","curve-style":"haystack","haystack-radius":0,"arrow-scale":1,"loop-direction":"-45deg","loop-sweep":"-90deg","source-distance-from-node":0,"target-distance-from-node":0,"source-endpoint":"outside-to-node","target-endpoint":"outside-to-node","line-dash-pattern":[6,3],"line-dash-offset":0},[{name:"arrow-shape",value:"none"},{name:"arrow-color",value:"#999"},{name:"arrow-fill",value:"filled"}].reduce((function(e,t){return rc.arrowPrefixes.forEach((function(n){var r=n+"-"+t.name,i=t.value;e[r]=i})),e}),{})),n={},r=0;r<this.properties.length;r++){var i=this.properties[r];if(!i.pointsTo){var a=i.name,o=t[a],s=this.parse(a,o);n[a]=s}}return e.defaultProperties=n,e.defaultProperties},rc.addDefaultStylesheet=function(){this.selector(":parent").css({shape:"rectangle",padding:10,"background-color":"#eee","border-color":"#ccc","border-width":1}).selector("edge").css({width:3}).selector(":loop").css({"curve-style":"bezier"}).selector("edge:compound").css({"curve-style":"bezier","source-endpoint":"outside-to-line","target-endpoint":"outside-to-line"}).selector(":selected").css({"background-color":"#0169D9","line-color":"#0169D9","source-arrow-color":"#0169D9","target-arrow-color":"#0169D9","mid-source-arrow-color":"#0169D9","mid-target-arrow-color":"#0169D9"}).selector(":parent:selected").css({"background-color":"#CCE1F9","border-color":"#aec8e5"}).selector(":active").css({"overlay-color":"black","overlay-padding":10,"overlay-opacity":.25}),this.defaultLength=this.length};var ic={parse:function(e,t,n,r){var i=this;if(x(t))return i.parseImplWarn(e,t,n,r);var a,o=ft(e,""+t,n?"t":"f","mapping"===r||!0===r||!1===r||null==r?"dontcare":r),s=i.propCache=i.propCache||[];return(a=s[o])||(a=s[o]=i.parseImplWarn(e,t,n,r)),(n||"mapping"===r)&&(a=Lt(a))&&(a.value=Lt(a.value)),a},parseImplWarn:function(e,t,n,r){var i=this.parseImpl(e,t,n,r);return i||null==t||Nt("The style property `".concat(e,": ").concat(t,"` is invalid")),!i||"width"!==i.name&&"height"!==i.name||"label"!==t||Nt("The style value of `label` is deprecated for `"+i.name+"`"),i},parseImpl:function(e,t,n,r){var i=this;e=z(e);var a=i.properties[e],o=t,s=i.types;if(!a)return null;if(void 0===t)return null;a.alias&&(a=a.pointsTo,e=a.name);var l=b(t);l&&(t=t.trim());var u,c,h=a.type;if(!h)return null;if(n&&(""===t||null===t))return{name:e,value:t,bypass:!0,deleteBypass:!0};if(x(t))return{name:e,value:t,strValue:"fn",mapped:s.fn,bypass:n};if(!l||r||t.length<7||"a"!==t[1]);else{if(t.length>=7&&"d"===t[0]&&(u=new RegExp(s.data.regex).exec(t))){if(n)return!1;var d=s.data;return{name:e,value:u,strValue:""+t,mapped:d,field:u[1],bypass:n}}if(t.length>=10&&"m"===t[0]&&(c=new RegExp(s.mapData.regex).exec(t))){if(n)return!1;if(h.multiple)return!1;var p=s.mapData;if(!h.color&&!h.number)return!1;var g=this.parse(e,c[4]);if(!g||g.mapped)return!1;var f=this.parse(e,c[5]);if(!f||f.mapped)return!1;if(g.pfValue===f.pfValue||g.strValue===f.strValue)return Nt("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+g.strValue+"`"),this.parse(e,g.strValue);if(h.color){var v=g.value,y=f.value;if(!(v[0]!==y[0]||v[1]!==y[1]||v[2]!==y[2]||v[3]!==y[3]&&(null!=v[3]&&1!==v[3]||null!=y[3]&&1!==y[3])))return!1}return{name:e,value:c,strValue:""+t,mapped:p,field:c[1],fieldMin:parseFloat(c[2]),fieldMax:parseFloat(c[3]),valueMin:g.value,valueMax:f.value,bypass:n}}}if(h.multiple&&"multiple"!==r){var m;if(m=l?t.split(/\s+/):w(t)?t:[t],h.evenMultiple&&m.length%2!=0)return null;for(var E=[],T=[],_=[],C="",N=!1,A=0;A<m.length;A++){var L=i.parse(e,m[A],n,"multiple");N=N||b(L.value),E.push(L.value),_.push(null!=L.pfValue?L.pfValue:L.value),T.push(L.units),C+=(A>0?" ":"")+L.strValue}return h.validate&&!h.validate(E,T)?null:h.singleEnum&&N?1===E.length&&b(E[0])?{name:e,value:E[0],strValue:E[0],bypass:n}:null:{name:e,value:E,pfValue:_,strValue:C,bypass:n,units:T}}var S=function(){for(var r=0;r<h.enums.length;r++)if(h.enums[r]===t)return{name:e,value:t,strValue:""+t,bypass:n};return null};if(h.number){var O,I="px";if(h.units&&(O=h.units),h.implicitUnits&&(I=h.implicitUnits),!h.unitless)if(l){var k="px|em"+(h.allowPercent?"|\\%":"");O&&(k=O);var M=t.match("^("+V+")("+k+")?$");M&&(t=M[1],O=M[2]||I)}else O&&!h.implicitUnits||(O=I);if(t=parseFloat(t),isNaN(t)&&void 0===h.enums)return null;if(isNaN(t)&&void 0!==h.enums)return t=o,S();if(h.integer&&!D(t))return null;if(void 0!==h.min&&(t<h.min||h.strictMin&&t===h.min)||void 0!==h.max&&(t>h.max||h.strictMax&&t===h.max))return null;var P={name:e,value:t,strValue:""+t+(O||""),units:O,bypass:n};return h.unitless||"px"!==O&&"em"!==O?P.pfValue=t:P.pfValue="px"!==O&&O?this.getEmSizeInPixels()*t:t,"ms"!==O&&"s"!==O||(P.pfValue="ms"===O?t:1e3*t),"deg"!==O&&"rad"!==O||(P.pfValue="rad"===O?t:mn(t)),"%"===O&&(P.pfValue=t/100),P}if(h.propList){var R=[],B=""+t;if("none"===B);else{for(var F=B.split(/\s*,\s*|\s+/),G=0;G<F.length;G++){var Y=F[G].trim();i.properties[Y]?R.push(Y):Nt("`"+Y+"` is not a valid property name")}if(0===R.length)return null}return{name:e,value:R,strValue:0===R.length?"none":R.join(" "),bypass:n}}if(h.color){var X=re(t);return X?{name:e,value:X,pfValue:X,strValue:"rgb("+X[0]+","+X[1]+","+X[2]+")",bypass:n}:null}if(h.regex||h.regexes){if(h.enums){var U=S();if(U)return U}for(var j=h.regexes?h.regexes:[h.regex],H=0;H<j.length;H++){var q=new RegExp(j[H]).exec(t);if(q)return{name:e,value:h.singleRegexMatchValue?q[1]:q,strValue:""+t,bypass:n}}return null}return h.string?{name:e,value:""+t,strValue:""+t,bypass:n}:h.enums?S():null}},ac=function e(t){if(!(this instanceof e))return new e(t);S(t)?(this._private={cy:t,coreStyle:{}},this.length=0,this.resetToDefault()):Dt("A style must have a core reference")},oc=ac.prototype;oc.instanceString=function(){return"style"},oc.clear=function(){for(var e=this._private,t=e.cy.elements(),n=0;n<this.length;n++)this[n]=void 0;return this.length=0,e.contextStyles={},e.propDiffs={},this.cleanElements(t,!0),t.forEach((function(e){var t=e[0]._private;t.styleDirty=!0,t.appliedInitStyle=!1})),this},oc.resetToDefault=function(){return this.clear(),this.addDefaultStylesheet(),this},oc.core=function(e){return this._private.coreStyle[e]||this.getDefaultProperty(e)},oc.selector=function(e){var t="core"===e?null:new Ys(e),n=this.length++;return this[n]={selector:t,properties:[],mappedProperties:[],index:n},this},oc.css=function(){var e=this,t=arguments;if(1===t.length)for(var n=t[0],r=0;r<e.properties.length;r++){var i=e.properties[r],a=n[i.name];void 0===a&&(a=n[G(i.name)]),void 0!==a&&this.cssRule(i.name,a)}else 2===t.length&&this.cssRule(t[0],t[1]);return this},oc.style=oc.css,oc.cssRule=function(e,t){var n=this.parse(e,t);if(n){var r=this.length-1;this[r].properties.push(n),this[r].properties[n.name]=n,n.name.match(/pie-(\d+)-background-size/)&&n.value&&(this._private.hasPie=!0),n.mapped&&this[r].mappedProperties.push(n),!this[r].selector&&(this._private.coreStyle[n.name]=n)}return this},oc.append=function(e){return O(e)?e.appendToStyle(this):w(e)?this.appendFromJson(e):b(e)&&this.appendFromString(e),this},ac.fromJson=function(e,t){var n=new ac(e);return n.fromJson(t),n},ac.fromString=function(e,t){return new ac(e).fromString(t)},[$u,Qu,Ju,ec,tc,nc,rc,ic].forEach((function(e){Q(oc,e)})),ac.types=oc.types,ac.properties=oc.properties,ac.propertyGroups=oc.propertyGroups,ac.propertyGroupNames=oc.propertyGroupNames,ac.propertyGroupKeys=oc.propertyGroupKeys;var sc={style:function(e){return e&&this.setStyle(e).update(),this._private.style},setStyle:function(e){var t=this._private;return O(e)?t.style=e.generateStyle(this):w(e)?t.style=ac.fromJson(this,e):b(e)?t.style=ac.fromString(this,e):t.style=ac(this),t.style},updateStyle:function(){this.mutableElements().updateStyle()}},lc="single",uc={autolock:function(e){return void 0===e?this._private.autolock:(this._private.autolock=!!e,this)},autoungrabify:function(e){return void 0===e?this._private.autoungrabify:(this._private.autoungrabify=!!e,this)},autounselectify:function(e){return void 0===e?this._private.autounselectify:(this._private.autounselectify=!!e,this)},selectionType:function(e){var t=this._private;return null==t.selectionType&&(t.selectionType=lc),void 0===e?t.selectionType:("additive"!==e&&"single"!==e||(t.selectionType=e),this)},panningEnabled:function(e){return void 0===e?this._private.panningEnabled:(this._private.panningEnabled=!!e,this)},userPanningEnabled:function(e){return void 0===e?this._private.userPanningEnabled:(this._private.userPanningEnabled=!!e,this)},zoomingEnabled:function(e){return void 0===e?this._private.zoomingEnabled:(this._private.zoomingEnabled=!!e,this)},userZoomingEnabled:function(e){return void 0===e?this._private.userZoomingEnabled:(this._private.userZoomingEnabled=!!e,this)},boxSelectionEnabled:function(e){return void 0===e?this._private.boxSelectionEnabled:(this._private.boxSelectionEnabled=!!e,this)},pan:function(){var e,t,n,r,i,a=arguments,o=this._private.pan;switch(a.length){case 0:return o;case 1:if(b(a[0]))return o[e=a[0]];if(E(a[0])){if(!this._private.panningEnabled)return this;r=(n=a[0]).x,i=n.y,_(r)&&(o.x=r),_(i)&&(o.y=i),this.emit("pan viewport")}break;case 2:if(!this._private.panningEnabled)return this;e=a[0],t=a[1],"x"!==e&&"y"!==e||!_(t)||(o[e]=t),this.emit("pan viewport")}return this.notify("viewport"),this},panBy:function(e,t){var n,r,i,a,o,s=arguments,l=this._private.pan;if(!this._private.panningEnabled)return this;switch(s.length){case 1:E(e)&&(a=(i=s[0]).x,o=i.y,_(a)&&(l.x+=a),_(o)&&(l.y+=o),this.emit("pan viewport"));break;case 2:r=t,"x"!==(n=e)&&"y"!==n||!_(r)||(l[n]+=r),this.emit("pan viewport")}return this.notify("viewport"),this},fit:function(e,t){var n=this.getFitViewport(e,t);if(n){var r=this._private;r.zoom=n.zoom,r.pan=n.pan,this.emit("pan zoom viewport"),this.notify("viewport")}return this},getFitViewport:function(e,t){if(_(e)&&void 0===t&&(t=e,e=void 0),this._private.panningEnabled&&this._private.zoomingEnabled){var n;if(b(e)){var r=e;e=this.$(r)}else if(P(e)){var i=e;(n={x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2}).w=n.x2-n.x1,n.h=n.y2-n.y1}else N(e)||(e=this.mutableElements());if(!N(e)||!e.empty()){n=n||e.boundingBox();var a,o=this.width(),s=this.height();if(t=_(t)?t:0,!isNaN(o)&&!isNaN(s)&&o>0&&s>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0)return{zoom:a=(a=(a=Math.min((o-2*t)/n.w,(s-2*t)/n.h))>this._private.maxZoom?this._private.maxZoom:a)<this._private.minZoom?this._private.minZoom:a,pan:{x:(o-a*(n.x1+n.x2))/2,y:(s-a*(n.y1+n.y2))/2}}}}},zoomRange:function(e,t){var n=this._private;if(null==t){var r=e;e=r.min,t=r.max}return _(e)&&_(t)&&e<=t?(n.minZoom=e,n.maxZoom=t):_(e)&&void 0===t&&e<=n.maxZoom?n.minZoom=e:_(t)&&void 0===e&&t>=n.minZoom&&(n.maxZoom=t),this},minZoom:function(e){return void 0===e?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return void 0===e?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var t,n,r=this._private,i=r.pan,a=r.zoom,o=!1;if(r.zoomingEnabled||(o=!0),_(e)?n=e:E(e)&&(n=e.level,null!=e.position?t=hn(e.position,a,i):null!=e.renderedPosition&&(t=e.renderedPosition),null==t||r.panningEnabled||(o=!0)),n=(n=n>r.maxZoom?r.maxZoom:n)<r.minZoom?r.minZoom:n,o||!_(n)||n===a||null!=t&&(!_(t.x)||!_(t.y)))return null;if(null!=t){var s=i,l=a,u=n;return{zoomed:!0,panned:!0,zoom:u,pan:{x:-u/l*(t.x-s.x)+t.x,y:-u/l*(t.y-s.y)+t.y}}}return{zoomed:!0,panned:!1,zoom:n,pan:i}},zoom:function(e){if(void 0===e)return this._private.zoom;var t=this.getZoomedViewport(e),n=this._private;return null!=t&&t.zoomed?(n.zoom=t.zoom,t.panned&&(n.pan.x=t.pan.x,n.pan.y=t.pan.y),this.emit("zoom"+(t.panned?" pan":"")+" viewport"),this.notify("viewport"),this):this},viewport:function(e){var t=this._private,n=!0,r=!0,i=[],a=!1,o=!1;if(!e)return this;if(_(e.zoom)||(n=!1),E(e.pan)||(r=!1),!n&&!r)return this;if(n){var s=e.zoom;s<t.minZoom||s>t.maxZoom||!t.zoomingEnabled?a=!0:(t.zoom=s,i.push("zoom"))}if(r&&(!a||!e.cancelOnFailedZoom)&&t.panningEnabled){var l=e.pan;_(l.x)&&(t.pan.x=l.x,o=!1),_(l.y)&&(t.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 t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,t){if(this._private.panningEnabled){if(b(e)){var n=e;e=this.mutableElements().filter(n)}else N(e)||(e=this.mutableElements());if(0!==e.length){var r=e.boundingBox(),i=this.width(),a=this.height();return{x:(i-(t=void 0===t?this._private.zoom:t)*(r.x1+r.x2))/2,y:(a-t*(r.y1+r.y2))/2}}}},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled?(this.viewport({pan:{x:0,y:0},zoom:1}),this):this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e,t,n=this._private,r=n.container,i=this;return n.sizeCache=n.sizeCache||(r?(e=i.window().getComputedStyle(r),t=function(t){return parseFloat(e.getPropertyValue(t))},{width:r.clientWidth-t("padding-left")-t("padding-right"),height:r.clientHeight-t("padding-top")-t("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,t=this._private.zoom,n=this.renderedExtent(),r={x1:(n.x1-e.x)/t,x2:(n.x2-e.x)/t,y1:(n.y1-e.y)/t,y2:(n.y2-e.y)/t};return r.w=r.x2-r.x1,r.h=r.y2-r.y1,r},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},multiClickDebounceTime:function(e){return e?(this._private.multiClickDebounceTime=e,this):this._private.multiClickDebounceTime}};uc.centre=uc.center,uc.autolockNodes=uc.autolock,uc.autoungrabifyNodes=uc.autoungrabify;var cc={data:gs.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:gs.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:gs.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:gs.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};cc.attr=cc.data,cc.removeAttr=cc.removeData;var hc=function(e){var t=this,n=(e=Q({},e)).container;n&&!C(n)&&C(n[0])&&(n=n[0]);var r=n?n._cyreg:null;(r=r||{})&&r.cy&&(r.cy.destroy(),r={});var i=r.readies=r.readies||[];n&&(n._cyreg=r),r.cy=t;var a=void 0!==d&&void 0!==n&&!e.headless,o=e;o.layout=Q({name:a?"grid":"null"},o.layout),o.renderer=Q({name:a?"canvas":"null"},o.renderer);var s=function(e,t,n){return void 0!==t?t:void 0!==n?n:e},l=this._private={container:n,ready:!1,options:o,elements:new Du(this),listeners:[],aniEles:new Du(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:s(!0,o.zoomingEnabled),userZoomingEnabled:s(!0,o.userZoomingEnabled),panningEnabled:s(!0,o.panningEnabled),userPanningEnabled:s(!0,o.userPanningEnabled),boxSelectionEnabled:s(!0,o.boxSelectionEnabled),autolock:s(!1,o.autolock,o.autolockNodes),autoungrabify:s(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:s(!1,o.autounselectify),styleEnabled:void 0===o.styleEnabled?a:o.styleEnabled,zoom:_(o.zoom)?o.zoom:1,pan:{x:E(o.pan)&&_(o.pan.x)?o.pan.x:0,y:E(o.pan)&&_(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:s(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});var u=function(e,t){if(e.some(R))return Yi.all(e).then(t);t(e)};l.styleEnabled&&t.setStyle([]);var c=Q({},o,o.renderer);t.initRenderer(c);var h=function(e,n,r){t.notifications(!1);var i=t.mutableElements();i.length>0&&i.remove(),null!=e&&(E(e)||w(e))&&t.add(e),t.one("layoutready",(function(e){t.notifications(!0),t.emit(e),t.one("load",n),t.emitAndNotify("load")})).one("layoutstop",(function(){t.one("done",r),t.emit("done")}));var a=Q({},t._private.options.layout);a.eles=t.elements(),t.layout(a).run()};u([o.style,o.elements],(function(e){var n=e[0],a=e[1];l.styleEnabled&&t.style().append(n),h(a,(function(){t.startAnimationLoop(),l.ready=!0,x(o.ready)&&t.on("ready",o.ready);for(var e=0;e<i.length;e++){var n=i[e];t.on("ready",n)}r&&(r.readies=[]),t.emit("ready")}),o.done)}))},dc=hc.prototype;Q(dc,{instanceString:function(){return"core"},isReady:function(){return this._private.ready},destroyed:function(){return this._private.destroyed},ready:function(e){return this.isReady()?this.emitter().emit("ready",[],e):this.on("ready",e),this},destroy:function(){var e=this;if(!e.destroyed())return e.stopAnimationLoop(),e.destroyRenderer(),this.emit("destroy"),e._private.destroyed=!0,e},hasElementWithId:function(e){return this._private.elements.hasElementWithId(e)},getElementById:function(e){return this._private.elements.getElementById(e)},hasCompoundNodes:function(){return this._private.hasCompoundNodes},headless:function(){return this._private.renderer.isHeadless()},styleEnabled:function(){return this._private.styleEnabled},addToPool:function(e){return this._private.elements.merge(e),this},removeFromPool:function(e){return this._private.elements.unmerge(e),this},container:function(){return this._private.container||null},window:function(){if(null==this._private.container)return d;var e=this._private.container.ownerDocument;return void 0===e||null==e?d:e.defaultView||d},mount:function(e){if(null!=e){var t=this,n=t._private,r=n.options;return!C(e)&&C(e[0])&&(e=e[0]),t.stopAnimationLoop(),t.destroyRenderer(),n.container=e,n.styleEnabled=!0,t.invalidateSize(),t.initRenderer(Q({},r,r.renderer,{name:"null"===r.renderer.name?"canvas":r.renderer.name})),t.startAnimationLoop(),t.style(r.style),t.emit("mount"),t}},unmount:function(){var e=this;return e.stopAnimationLoop(),e.destroyRenderer(),e.initRenderer({name:"null"}),e.emit("unmount"),e},options:function(){return Lt(this._private.options)},json:function(e){var t=this,n=t._private,r=t.mutableElements(),i=function(e){return t.getElementById(e.id())};if(E(e)){if(t.startBatch(),e.elements){var a={},o=function(e,n){for(var r=[],i=[],o=0;o<e.length;o++){var s=e[o];if(s.data.id){var l=""+s.data.id,u=t.getElementById(l);a[l]=!0,0!==u.length?i.push({ele:u,json:s}):n?(s.group=n,r.push(s)):r.push(s)}else Nt("cy.json() cannot handle elements without an ID attribute")}t.add(r);for(var c=0;c<i.length;c++){var h=i[c],d=h.ele,p=h.json;d.json(p)}};if(w(e.elements))o(e.elements);else for(var s=["nodes","edges"],l=0;l<s.length;l++){var u=s[l],c=e.elements[u];w(c)&&o(c,u)}var h=t.collection();r.filter((function(e){return!a[e.id()]})).forEach((function(e){e.isParent()?h.merge(e):e.remove()})),h.forEach((function(e){return e.children().move({parent:null})})),h.forEach((function(e){return i(e).remove()}))}e.style&&t.style(e.style),null!=e.zoom&&e.zoom!==n.zoom&&t.zoom(e.zoom),e.pan&&(e.pan.x===n.pan.x&&e.pan.y===n.pan.y||t.pan(e.pan)),e.data&&t.data(e.data);for(var d=["minZoom","maxZoom","zoomingEnabled","userZoomingEnabled","panningEnabled","userPanningEnabled","boxSelectionEnabled","autolock","autoungrabify","autounselectify","multiClickDebounceTime"],p=0;p<d.length;p++){var g=d[p];null!=e[g]&&t[g](e[g])}return t.endBatch(),this}var f={};e?f.elements=this.elements().map((function(e){return e.json()})):(f.elements={},r.forEach((function(e){var t=e.group();f.elements[t]||(f.elements[t]=[]),f.elements[t].push(e.json())}))),this._private.styleEnabled&&(f.style=t.style().json()),f.data=Lt(t.data());var v=n.options;return f.zoomingEnabled=n.zoomingEnabled,f.userZoomingEnabled=n.userZoomingEnabled,f.zoom=n.zoom,f.minZoom=n.minZoom,f.maxZoom=n.maxZoom,f.panningEnabled=n.panningEnabled,f.userPanningEnabled=n.userPanningEnabled,f.pan=Lt(n.pan),f.boxSelectionEnabled=n.boxSelectionEnabled,f.renderer=Lt(v.renderer),f.hideEdgesOnViewport=v.hideEdgesOnViewport,f.textureOnViewport=v.textureOnViewport,f.wheelSensitivity=v.wheelSensitivity,f.motionBlur=v.motionBlur,f.multiClickDebounceTime=v.multiClickDebounceTime,f}}),dc.$id=dc.getElementById,[Nu,zu,Xu,Vu,Uu,ju,qu,Wu,sc,uc,cc].forEach((function(e){Q(dc,e)}));var pc={fit:!0,directed:!1,padding:30,circle:!1,grid:!1,spacingFactor:1.75,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,roots:void 0,depthSort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}},gc={maximal:!1,acyclic:!1},fc=function(e){return e.scratch("breadthfirst")},vc=function(e,t){return e.scratch("breadthfirst",t)};function yc(e){this.options=Q({},pc,gc,e)}yc.prototype.run=function(){var e,t=this.options,n=t,r=t.cy,i=n.eles,a=i.nodes().filter((function(e){return!e.isParent()})),o=i,s=n.directed,l=n.acyclic||n.maximal||n.maximalAdjustments>0,u=Ln(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(N(n.roots))e=n.roots;else if(w(n.roots)){for(var c=[],h=0;h<n.roots.length;h++){var d=n.roots[h],p=r.getElementById(d);c.push(p)}e=r.collection(c)}else if(b(n.roots))e=r.$(n.roots);else if(s)e=a.roots();else{var g=i.components();e=r.collection();for(var f=function(t){var n=g[t],r=n.maxDegree(!1),i=n.filter((function(e){return e.degree(!1)===r}));e=e.add(i)},v=0;v<g.length;v++)f(v)}var y=[],m={},x=function(e,t){null==y[t]&&(y[t]=[]);var n=y[t].length;y[t].push(e),vc(e,{index:n,depth:t})},E=function(e,t){var n=fc(e),r=n.depth,i=n.index;y[r][i]=null,x(e,t)};o.bfs({roots:e,directed:n.directed,visit:function(e,t,n,r,i){var a=e[0],o=a.id();x(a,i),m[o]=!0}});for(var T=[],_=0;_<a.length;_++){var D=a[_];m[D.id()]||T.push(D)}var C=function(e){for(var t=y[e],n=0;n<t.length;n++){var r=t[n];null!=r?vc(r,{depth:e,index:n}):(t.splice(n,1),n--)}},A=function(){for(var e=0;e<y.length;e++)C(e)},L=function(e,t){for(var r=fc(e),a=e.incomers().filter((function(e){return e.isNode()&&i.has(e)})),o=-1,s=e.id(),l=0;l<a.length;l++){var u=a[l],c=fc(u);o=Math.max(o,c.depth)}if(r.depth<=o){if(!n.acyclic&&t[s])return null;var h=o+1;return E(e,h),t[s]=h,!0}return!1};if(s&&l){var S=[],O={},I=function(e){return S.push(e)},k=function(){return S.shift()};for(a.forEach((function(e){return S.push(e)}));S.length>0;){var M=k(),P=L(M,O);if(P)M.outgoers().filter((function(e){return e.isNode()&&i.has(e)})).forEach(I);else if(null===P){Nt("Detected double maximal shift for node `"+M.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}A();var R=0;if(n.avoidOverlap)for(var B=0;B<a.length;B++){var F=a[B].layoutDimensions(n),z=F.w,G=F.h;R=Math.max(R,z,G)}var Y={},X=function(e){if(Y[e.id()])return Y[e.id()];for(var t=fc(e).depth,n=e.neighborhood(),r=0,i=0,o=0;o<n.length;o++){var s=n[o];if(!s.isEdge()&&!s.isParent()&&a.has(s)){var l=fc(s);if(null!=l){var u=l.index,c=l.depth;if(null!=u&&null!=c){var h=y[c].length;c<t&&(r+=u/h,i++)}}}}return r/=i=Math.max(1,i),0===i&&(r=0),Y[e.id()]=r,r},V=function(e,t){var n=X(e)-X(t);return 0===n?K(e.id(),t.id()):n};void 0!==n.depthSort&&(V=n.depthSort);for(var U=0;U<y.length;U++)y[U].sort(V),C(U);for(var j=[],H=0;H<T.length;H++)j.push(T[H]);y.unshift(j),A();for(var q=0,W=0;W<y.length;W++)q=Math.max(y[W].length,q);var $={x:u.x1+u.w/2,y:u.x1+u.h/2},Z=y.reduce((function(e,t){return Math.max(e,t.length)}),0),Q=function(e){var t=fc(e),r=t.depth,i=t.index,a=y[r].length,o=Math.max(u.w/((n.grid?Z:a)+1),R),s=Math.max(u.h/(y.length+1),R),l=Math.min(u.w/2/y.length,u.h/2/y.length);if(l=Math.max(l,R),n.circle){var c=l*r+l-(y.length>0&&y[0].length<=3?l/2:0),h=2*Math.PI/y[r].length*i;return 0===r&&1===y[0].length&&(c=1),{x:$.x+c*Math.cos(h),y:$.y+c*Math.sin(h)}}return{x:$.x+(i+1-(a+1)/2)*o,y:(r+1)*s}};return i.nodes().layoutPositions(this,n,Q),this};var mc={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function bc(e){this.options=Q({},mc,e)}bc.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,i=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,a=r.nodes().not(":parent");t.sort&&(a=a.sort(t.sort));for(var o,s=Ln(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=(void 0===t.sweep?2*Math.PI-2*Math.PI/a.length:t.sweep)/Math.max(1,a.length-1),c=0,h=0;h<a.length;h++){var d=a[h].layoutDimensions(t),p=d.w,g=d.h;c=Math.max(c,p,g)}if(o=_(t.radius)?t.radius:a.length<=1?0:Math.min(s.h,s.w)/2-c,a.length>1&&t.avoidOverlap){c*=1.75;var f=Math.cos(u)-Math.cos(0),v=Math.sin(u)-Math.sin(0),y=Math.sqrt(c*c/(f*f+v*v));o=Math.max(y,o)}var m=function(e,n){var r=t.startAngle+n*u*(i?1:-1),a=o*Math.cos(r),s=o*Math.sin(r);return{x:l.x+a,y:l.y+s}};return r.nodes().layoutPositions(this,t,m),this};var xc,wc={fit:!0,padding:30,startAngle:1.5*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,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Ec(e){this.options=Q({},wc,e)}Ec.prototype.run=function(){for(var e=this.options,t=e,n=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,r=e.cy,i=t.eles,a=i.nodes().not(":parent"),o=Ln(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),s={x:o.x1+o.w/2,y:o.y1+o.h/2},l=[],u=0,c=0;c<a.length;c++){var h=a[c],d=void 0;d=t.concentric(h),l.push({value:d,node:h}),h._private.scratch.concentric=d}a.updateStyle();for(var p=0;p<a.length;p++){var g=a[p].layoutDimensions(t);u=Math.max(u,g.w,g.h)}l.sort((function(e,t){return t.value-e.value}));for(var f=t.levelWidth(a),v=[[]],y=v[0],m=0;m<l.length;m++){var b=l[m];y.length>0&&Math.abs(y[0].value-b.value)>=f&&(y=[],v.push(y)),y.push(b)}var x=u+t.minNodeSpacing;if(!t.avoidOverlap){var w=v.length>0&&v[0].length>1,E=(Math.min(o.w,o.h)/2-x)/(v.length+w?1:0);x=Math.min(x,E)}for(var T=0,_=0;_<v.length;_++){var D=v[_],C=void 0===t.sweep?2*Math.PI-2*Math.PI/D.length:t.sweep,N=D.dTheta=C/Math.max(1,D.length-1);if(D.length>1&&t.avoidOverlap){var A=Math.cos(N)-Math.cos(0),L=Math.sin(N)-Math.sin(0),S=Math.sqrt(x*x/(A*A+L*L));T=Math.max(S,T)}D.r=T,T+=x}if(t.equidistant){for(var O=0,I=0,k=0;k<v.length;k++){var M=v[k].r-I;O=Math.max(O,M)}I=0;for(var P=0;P<v.length;P++){var R=v[P];0===P&&(I=R.r),R.r=I,I+=O}}for(var B={},F=0;F<v.length;F++)for(var z=v[F],G=z.dTheta,Y=z.r,X=0;X<z.length;X++){var V=z[X],U=t.startAngle+(n?1:-1)*G*X,j={x:s.x+Y*Math.cos(U),y:s.y+Y*Math.sin(U)};B[V.node.id()]=j}return i.nodes().layoutPositions(this,t,(function(e){var t=e.id();return B[t]})),this};var Tc={ready:function(){},stop:function(){},animate:!0,animationEasing:void 0,animationDuration:void 0,animateFilter:function(e,t){return!0},animationThreshold:250,refresh:20,fit:!0,padding:30,boundingBox:void 0,nodeDimensionsIncludeLabels:!1,randomize:!1,componentSpacing:40,nodeRepulsion:function(e){return 2048},nodeOverlap:4,idealEdgeLength:function(e){return 32},edgeElasticity:function(e){return 32},nestingFactor:1.2,gravity:1,numIter:1e3,initialTemp:1e3,coolingFactor:.99,minTemp:1};function _c(e){this.options=Q({},Tc,e),this.options.layout=this}_c.prototype.run=function(){var e=this.options,t=e.cy,n=this;n.stopped=!1,!0!==e.animate&&!1!==e.animate||n.emit({type:"layoutstart",layout:n}),xc=!0===e.debug;var r=Cc(t,n,e);xc&&Dc(r),e.randomize&&Lc(r);var i=rt(),a=function(){Oc(r,t,e),!0===e.fit&&t.fit(e.padding)},o=function(t){return!(n.stopped||t>=e.numIter||(Ic(r,e),r.temperature=r.temperature*e.coolingFactor,r.temperature<e.minTemp))},s=function(){if(!0===e.animate||!1===e.animate)a(),n.one("layoutstop",e.stop),n.emit({type:"layoutstop",layout:n});else{var t=e.eles.nodes(),i=Sc(r,e,t);t.layoutPositions(n,e,i)}},l=0,u=!0;if(!0===e.animate)!function t(){for(var n=0;u&&n<e.refresh;)u=o(l),l++,n++;u?(rt()-i>=e.animationThreshold&&a(),nt(t)):(Uc(r,e),s())}();else{for(;u;)u=o(l),l++;Uc(r,e),s()}return this},_c.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},_c.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var Dc,Cc=function(e,t,n){for(var r=n.eles.edges(),i=n.eles.nodes(),a=Ln(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:r.size(),temperature:n.initialTemp,clientWidth:a.w,clientHeight:a.h,boundingBox:a},s=n.eles.components(),l={},u=0;u<s.length;u++)for(var c=s[u],h=0;h<c.length;h++)l[c[h].id()]=u;for(u=0;u<o.nodeSize;u++){var d=(y=i[u]).layoutDimensions(n);(M={}).isLocked=y.locked(),M.id=y.data("id"),M.parentId=y.data("parent"),M.cmptId=l[y.id()],M.children=[],M.positionX=y.position("x"),M.positionY=y.position("y"),M.offsetX=0,M.offsetY=0,M.height=d.w,M.width=d.h,M.maxX=M.positionX+M.width/2,M.minX=M.positionX-M.width/2,M.maxY=M.positionY+M.height/2,M.minY=M.positionY-M.height/2,M.padLeft=parseFloat(y.style("padding")),M.padRight=parseFloat(y.style("padding")),M.padTop=parseFloat(y.style("padding")),M.padBottom=parseFloat(y.style("padding")),M.nodeRepulsion=x(n.nodeRepulsion)?n.nodeRepulsion(y):n.nodeRepulsion,o.layoutNodes.push(M),o.idToIndex[M.id]=u}var p=[],g=0,f=-1,v=[];for(u=0;u<o.nodeSize;u++){var y,m=(y=o.layoutNodes[u]).parentId;null!=m?o.layoutNodes[o.idToIndex[m]].children.push(y.id):(p[++f]=y.id,v.push(y.id))}for(o.graphSet.push(v);g<=f;){var b=p[g++],w=o.idToIndex[b],E=o.layoutNodes[w].children;if(E.length>0)for(o.graphSet.push(E),u=0;u<E.length;u++)p[++f]=E[u]}for(u=0;u<o.graphSet.length;u++){var T=o.graphSet[u];for(h=0;h<T.length;h++){var _=o.idToIndex[T[h]];o.indexToGraph[_]=u}}for(u=0;u<o.edgeSize;u++){var D=r[u],C={};C.id=D.data("id"),C.sourceId=D.data("source"),C.targetId=D.data("target");var N=x(n.idealEdgeLength)?n.idealEdgeLength(D):n.idealEdgeLength,A=x(n.edgeElasticity)?n.edgeElasticity(D):n.edgeElasticity,L=o.idToIndex[C.sourceId],S=o.idToIndex[C.targetId];if(o.indexToGraph[L]!=o.indexToGraph[S]){for(var O=Nc(C.sourceId,C.targetId,o),I=o.graphSet[O],k=0,M=o.layoutNodes[L];-1===I.indexOf(M.id);)M=o.layoutNodes[o.idToIndex[M.parentId]],k++;for(M=o.layoutNodes[S];-1===I.indexOf(M.id);)M=o.layoutNodes[o.idToIndex[M.parentId]],k++;N*=k*n.nestingFactor}C.idealLength=N,C.elasticity=A,o.layoutEdges.push(C)}return o},Nc=function(e,t,n){var r=Ac(e,t,0,n);return 2>r.count?0:r.graph},Ac=function e(t,n,r,i){var a=i.graphSet[r];if(-1<a.indexOf(t)&&-1<a.indexOf(n))return{count:2,graph:r};for(var o=0,s=0;s<a.length;s++){var l=a[s],u=i.idToIndex[l],c=i.layoutNodes[u].children;if(0!==c.length){var h=e(t,n,i.indexToGraph[i.idToIndex[c[0]]],i);if(0!==h.count){if(1!==h.count)return h;if(2==++o)break}}}return{count:o,graph:r}},Lc=function(e,t){for(var n=e.clientWidth,r=e.clientHeight,i=0;i<e.nodeSize;i++){var a=e.layoutNodes[i];0!==a.children.length||a.isLocked||(a.positionX=Math.random()*n,a.positionY=Math.random()*r)}},Sc=function(e,t,n){var r=e.boundingBox,i={x1:1/0,x2:-1/0,y1:1/0,y2:-1/0};return t.boundingBox&&(n.forEach((function(t){var n=e.layoutNodes[e.idToIndex[t.data("id")]];i.x1=Math.min(i.x1,n.positionX),i.x2=Math.max(i.x2,n.positionX),i.y1=Math.min(i.y1,n.positionY),i.y2=Math.max(i.y2,n.positionY)})),i.w=i.x2-i.x1,i.h=i.y2-i.y1),function(n,a){var o=e.layoutNodes[e.idToIndex[n.data("id")]];if(t.boundingBox){var s=(o.positionX-i.x1)/i.w,l=(o.positionY-i.y1)/i.h;return{x:r.x1+s*r.w,y:r.y1+l*r.h}}return{x:o.positionX,y:o.positionY}}},Oc=function(e,t,n){var r=n.layout,i=n.eles.nodes(),a=Sc(e,n,i);i.positions(a),!0!==e.ready&&(e.ready=!0,r.one("layoutready",n.ready),r.emit({type:"layoutready",layout:this}))},Ic=function(e,t,n){kc(e,t),Fc(e),zc(e,t),Gc(e),Yc(e)},kc=function(e,t){for(var n=0;n<e.graphSet.length;n++)for(var r=e.graphSet[n],i=r.length,a=0;a<i;a++)for(var o=e.layoutNodes[e.idToIndex[r[a]]],s=a+1;s<i;s++){var l=e.layoutNodes[e.idToIndex[r[s]]];Pc(o,l,e,t)}},Mc=function(e){return-e+2*e*Math.random()},Pc=function(e,t,n,r){if(e.cmptId===t.cmptId||n.isCompound){var i=t.positionX-e.positionX,a=t.positionY-e.positionY,o=1;0===i&&0===a&&(i=Mc(o),a=Mc(o));var s=Rc(e,t,i,a);if(s>0)var l=(c=r.nodeOverlap*s)*i/(v=Math.sqrt(i*i+a*a)),u=c*a/v;else{var c,h=Bc(e,i,a),d=Bc(t,-1*i,-1*a),p=d.x-h.x,g=d.y-h.y,f=p*p+g*g,v=Math.sqrt(f);l=(c=(e.nodeRepulsion+t.nodeRepulsion)/f)*p/v,u=c*g/v}e.isLocked||(e.offsetX-=l,e.offsetY-=u),t.isLocked||(t.offsetX+=l,t.offsetY+=u)}},Rc=function(e,t,n,r){if(n>0)var i=e.maxX-t.minX;else i=t.maxX-e.minX;if(r>0)var a=e.maxY-t.minY;else a=t.maxY-e.minY;return i>=0&&a>=0?Math.sqrt(i*i+a*a):0},Bc=function(e,t,n){var r=e.positionX,i=e.positionY,a=e.height||1,o=e.width||1,s=n/t,l=a/o,u={};return 0===t&&0<n||0===t&&0>n?(u.x=r,u.y=i+a/2,u):0<t&&-1*l<=s&&s<=l?(u.x=r+o/2,u.y=i+o*n/2/t,u):0>t&&-1*l<=s&&s<=l?(u.x=r-o/2,u.y=i-o*n/2/t,u):0<n&&(s<=-1*l||s>=l)?(u.x=r+a*t/2/n,u.y=i+a/2,u):0>n&&(s<=-1*l||s>=l)?(u.x=r-a*t/2/n,u.y=i-a/2,u):u},Fc=function(e,t){for(var n=0;n<e.edgeSize;n++){var r=e.layoutEdges[n],i=e.idToIndex[r.sourceId],a=e.layoutNodes[i],o=e.idToIndex[r.targetId],s=e.layoutNodes[o],l=s.positionX-a.positionX,u=s.positionY-a.positionY;if(0!==l||0!==u){var c=Bc(a,l,u),h=Bc(s,-1*l,-1*u),d=h.x-c.x,p=h.y-c.y,g=Math.sqrt(d*d+p*p),f=Math.pow(r.idealLength-g,2)/r.elasticity;if(0!==g)var v=f*d/g,y=f*p/g;else v=0,y=0;a.isLocked||(a.offsetX+=v,a.offsetY+=y),s.isLocked||(s.offsetX-=v,s.offsetY-=y)}}},zc=function(e,t){if(0!==t.gravity)for(var n=1,r=0;r<e.graphSet.length;r++){var i=e.graphSet[r],a=i.length;if(0===r)var o=e.clientHeight/2,s=e.clientWidth/2;else{var l=e.layoutNodes[e.idToIndex[i[0]]],u=e.layoutNodes[e.idToIndex[l.parentId]];o=u.positionX,s=u.positionY}for(var c=0;c<a;c++){var h=e.layoutNodes[e.idToIndex[i[c]]];if(!h.isLocked){var d=o-h.positionX,p=s-h.positionY,g=Math.sqrt(d*d+p*p);if(g>n){var f=t.gravity*d/g,v=t.gravity*p/g;h.offsetX+=f,h.offsetY+=v}}}}},Gc=function(e,t){var n=[],r=0,i=-1;for(n.push.apply(n,e.graphSet[0]),i+=e.graphSet[0].length;r<=i;){var a=n[r++],o=e.idToIndex[a],s=e.layoutNodes[o],l=s.children;if(0<l.length&&!s.isLocked){for(var u=s.offsetX,c=s.offsetY,h=0;h<l.length;h++){var d=e.layoutNodes[e.idToIndex[l[h]]];d.offsetX+=u,d.offsetY+=c,n[++i]=l[h]}s.offsetX=0,s.offsetY=0}}},Yc=function(e,t){for(var n=0;n<e.nodeSize;n++)0<(i=e.layoutNodes[n]).children.length&&(i.maxX=void 0,i.minX=void 0,i.maxY=void 0,i.minY=void 0);for(n=0;n<e.nodeSize;n++)if(!(0<(i=e.layoutNodes[n]).children.length||i.isLocked)){var r=Xc(i.offsetX,i.offsetY,e.temperature);i.positionX+=r.x,i.positionY+=r.y,i.offsetX=0,i.offsetY=0,i.minX=i.positionX-i.width,i.maxX=i.positionX+i.width,i.minY=i.positionY-i.height,i.maxY=i.positionY+i.height,Vc(i,e)}for(n=0;n<e.nodeSize;n++){var i;0<(i=e.layoutNodes[n]).children.length&&!i.isLocked&&(i.positionX=(i.maxX+i.minX)/2,i.positionY=(i.maxY+i.minY)/2,i.width=i.maxX-i.minX,i.height=i.maxY-i.minY)}},Xc=function(e,t,n){var r=Math.sqrt(e*e+t*t);if(r>n)var i={x:n*e/r,y:n*t/r};else i={x:e,y:t};return i},Vc=function e(t,n){var r=t.parentId;if(null!=r){var i=n.layoutNodes[n.idToIndex[r]],a=!1;return(null==i.maxX||t.maxX+i.padRight>i.maxX)&&(i.maxX=t.maxX+i.padRight,a=!0),(null==i.minX||t.minX-i.padLeft<i.minX)&&(i.minX=t.minX-i.padLeft,a=!0),(null==i.maxY||t.maxY+i.padBottom>i.maxY)&&(i.maxY=t.maxY+i.padBottom,a=!0),(null==i.minY||t.minY-i.padTop<i.minY)&&(i.minY=t.minY-i.padTop,a=!0),a?e(i,n):void 0}},Uc=function(e,t){for(var n=e.layoutNodes,r=[],i=0;i<n.length;i++){var a=n[i],o=a.cmptId;(r[o]=r[o]||[]).push(a)}var s=0;for(i=0;i<r.length;i++)if(f=r[i]){f.x1=1/0,f.x2=-1/0,f.y1=1/0,f.y2=-1/0;for(var l=0;l<f.length;l++){var u=f[l];f.x1=Math.min(f.x1,u.positionX-u.width/2),f.x2=Math.max(f.x2,u.positionX+u.width/2),f.y1=Math.min(f.y1,u.positionY-u.height/2),f.y2=Math.max(f.y2,u.positionY+u.height/2)}f.w=f.x2-f.x1,f.h=f.y2-f.y1,s+=f.w*f.h}r.sort((function(e,t){return t.w*t.h-e.w*e.h}));var c=0,h=0,d=0,p=0,g=Math.sqrt(s)*e.clientWidth/e.clientHeight;for(i=0;i<r.length;i++){var f;if(f=r[i]){for(l=0;l<f.length;l++)(u=f[l]).isLocked||(u.positionX+=c-f.x1,u.positionY+=h-f.y1);c+=f.w+t.componentSpacing,d+=f.w+t.componentSpacing,p=Math.max(p,f.h),d>g&&(h+=p+t.componentSpacing,c=0,d=0,p=0)}}},jc={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,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Hc(e){this.options=Q({},jc,e)}Hc.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,i=r.nodes().not(":parent");t.sort&&(i=i.sort(t.sort));var a=Ln(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});if(0===a.h||0===a.w)r.nodes().layoutPositions(this,t,(function(e){return{x:a.x1,y:a.y1}}));else{var o=i.size(),s=Math.sqrt(o*a.h/a.w),l=Math.round(s),u=Math.round(a.w/a.h*s),c=function(e){if(null==e)return Math.min(l,u);Math.min(l,u)==l?l=e:u=e},h=function(e){if(null==e)return Math.max(l,u);Math.max(l,u)==l?l=e:u=e},d=t.rows,p=null!=t.cols?t.cols:t.columns;if(null!=d&&null!=p)l=d,u=p;else if(null!=d&&null==p)l=d,u=Math.ceil(o/l);else if(null==d&&null!=p)u=p,l=Math.ceil(o/u);else if(u*l>o){var g=c(),f=h();(g-1)*f>=o?c(g-1):(f-1)*g>=o&&h(f-1)}else for(;u*l<o;){var v=c(),y=h();(y+1)*v>=o?h(y+1):c(v+1)}var m=a.w/u,b=a.h/l;if(t.condense&&(m=0,b=0),t.avoidOverlap)for(var x=0;x<i.length;x++){var w=i[x],E=w._private.position;null!=E.x&&null!=E.y||(E.x=0,E.y=0);var T=w.layoutDimensions(t),_=t.avoidOverlapPadding,D=T.w+_,C=T.h+_;m=Math.max(m,D),b=Math.max(b,C)}for(var N={},A=function(e,t){return!!N["c-"+e+"-"+t]},L=function(e,t){N["c-"+e+"-"+t]=!0},S=0,O=0,I=function(){++O>=u&&(O=0,S++)},k={},M=0;M<i.length;M++){var P=i[M],R=t.position(P);if(R&&(void 0!==R.row||void 0!==R.col)){var B={row:R.row,col:R.col};if(void 0===B.col)for(B.col=0;A(B.row,B.col);)B.col++;else if(void 0===B.row)for(B.row=0;A(B.row,B.col);)B.row++;k[P.id()]=B,L(B.row,B.col)}}var F=function(e,t){var n,r;if(e.locked()||e.isParent())return!1;var i=k[e.id()];if(i)n=i.col*m+m/2+a.x1,r=i.row*b+b/2+a.y1;else{for(;A(S,O);)I();n=O*m+m/2+a.x1,r=S*b+b/2+a.y1,L(S,O),I()}return{x:n,y:r}};i.layoutPositions(this,t,F)}return this};var qc={ready:function(){},stop:function(){}};function Wc(e){this.options=Q({},qc,e)}Wc.prototype.run=function(){var e=this.options,t=e.eles,n=this;return e.cy,n.emit("layoutstart"),t.nodes().positions((function(){return{x:0,y:0}})),n.one("layoutready",e.ready),n.emit("layoutready"),n.one("layoutstop",e.stop),n.emit("layoutstop"),this},Wc.prototype.stop=function(){return this};var $c={positions:void 0,zoom:void 0,pan:void 0,fit:!0,padding:30,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Kc(e){this.options=Q({},$c,e)}Kc.prototype.run=function(){var e=this.options,t=e.eles.nodes(),n=x(e.positions);function r(t){if(null==e.positions)return cn(t.position());if(n)return e.positions(t);var r=e.positions[t._private.data.id];return null==r?null:r}return t.layoutPositions(this,e,(function(e,t){var n=r(e);return!e.locked()&&null!=n&&n})),this};var Zc={fit:!0,padding:30,boundingBox:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Qc(e){this.options=Q({},Zc,e)}Qc.prototype.run=function(){var e=this.options,t=e.cy,n=e.eles,r=Ln(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()}),i=function(e,t){return{x:r.x1+Math.round(Math.random()*r.w),y:r.y1+Math.round(Math.random()*r.h)}};return n.nodes().layoutPositions(this,e,i),this};var Jc=[{name:"breadthfirst",impl:yc},{name:"circle",impl:bc},{name:"concentric",impl:Ec},{name:"cose",impl:_c},{name:"grid",impl:Hc},{name:"null",impl:Wc},{name:"preset",impl:Kc},{name:"random",impl:Qc}];function eh(e){this.options=e,this.notifications=0}var th=function(){},nh=function(){throw new Error("A headless instance can not render images")};eh.prototype={recalculateRenderedStyle:th,notify:function(){this.notifications++},init:th,isHeadless:function(){return!0},png:nh,jpg:nh};var rh={arrowShapeWidth:.3,registerArrowShapes:function(){var e=this.arrowShapes={},t=this,n=function(e,t,n,r,i,a,o){var s=i.x-n/2-o,l=i.x+n/2+o,u=i.y-n/2-o,c=i.y+n/2+o;return s<=e&&e<=l&&u<=t&&t<=c},r=function(e,t,n,r,i){var a=e*Math.cos(r)-t*Math.sin(r),o=(e*Math.sin(r)+t*Math.cos(r))*n;return{x:a*n+i.x,y:o+i.y}},i=function(e,t,n,i){for(var a=[],o=0;o<e.length;o+=2){var s=e[o],l=e[o+1];a.push(r(s,l,t,n,i))}return a},a=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push(r.x,r.y)}return t},o=function(e){return e.pstyle("width").pfValue*e.pstyle("arrow-scale").pfValue*2},s=function(r,s){b(s)&&(s=e[s]),e[r]=Q({name:r,points:[-.15,-.3,.15,-.3,.15,.3,-.15,.3],collide:function(e,t,n,r,o,s){var l=a(i(this.points,n+2*s,r,o));return Wn(e,t,l)},roughCollide:n,draw:function(e,n,r,a){var o=i(this.points,n,r,a);t.arrowShapeImpl("polygon")(e,o)},spacing:function(e){return 0},gap:o},s)};s("none",{collide:Et,roughCollide:Et,draw:_t,spacing:Tt,gap:Tt}),s("triangle",{points:[-.15,-.3,0,0,.15,-.3]}),s("arrow","triangle"),s("triangle-backcurve",{points:e.triangle.points,controlPoint:[0,-.15],roughCollide:n,draw:function(e,n,a,o,s){var l=i(this.points,n,a,o),u=this.controlPoint,c=r(u[0],u[1],n,a,o);t.arrowShapeImpl(this.name)(e,l,c)},gap:function(e){return.8*o(e)}}),s("triangle-tee",{points:[0,0,.15,-.3,-.15,-.3,0,0],pointsTee:[-.15,-.4,-.15,-.5,.15,-.5,.15,-.4],collide:function(e,t,n,r,o,s,l){var u=a(i(this.points,n+2*l,r,o)),c=a(i(this.pointsTee,n+2*l,r,o));return Wn(e,t,u)||Wn(e,t,c)},draw:function(e,n,r,a,o){var s=i(this.points,n,r,a),l=i(this.pointsTee,n,r,a);t.arrowShapeImpl(this.name)(e,s,l)}}),s("circle-triangle",{radius:.15,pointsTr:[0,-.15,.15,-.45,-.15,-.45,0,-.15],collide:function(e,t,n,r,o,s,l){var u=o,c=Math.pow(u.x-e,2)+Math.pow(u.y-t,2)<=Math.pow((n+2*l)*this.radius,2),h=a(i(this.points,n+2*l,r,o));return Wn(e,t,h)||c},draw:function(e,n,r,a,o){var s=i(this.pointsTr,n,r,a);t.arrowShapeImpl(this.name)(e,s,a.x,a.y,this.radius*n)},spacing:function(e){return t.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.radius}}),s("triangle-cross",{points:[0,0,.15,-.3,-.15,-.3,0,0],baseCrossLinePts:[-.15,-.4,-.15,-.4,.15,-.4,.15,-.4],crossLinePts:function(e,t){var n=this.baseCrossLinePts.slice(),r=t/e,i=3,a=5;return n[i]=n[i]-r,n[a]=n[a]-r,n},collide:function(e,t,n,r,o,s,l){var u=a(i(this.points,n+2*l,r,o)),c=a(i(this.crossLinePts(n,s),n+2*l,r,o));return Wn(e,t,u)||Wn(e,t,c)},draw:function(e,n,r,a,o){var s=i(this.points,n,r,a),l=i(this.crossLinePts(n,o),n,r,a);t.arrowShapeImpl(this.name)(e,s,l)}}),s("vee",{points:[-.15,-.3,0,0,.15,-.3,0,-.15],gap:function(e){return.525*o(e)}}),s("circle",{radius:.15,collide:function(e,t,n,r,i,a,o){var s=i;return Math.pow(s.x-e,2)+Math.pow(s.y-t,2)<=Math.pow((n+2*o)*this.radius,2)},draw:function(e,n,r,i,a){t.arrowShapeImpl(this.name)(e,i.x,i.y,this.radius*n)},spacing:function(e){return t.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.radius}}),s("tee",{points:[-.15,0,-.15,-.1,.15,-.1,.15,0],spacing:function(e){return 1},gap:function(e){return 1}}),s("square",{points:[-.15,0,.15,0,.15,-.3,-.15,-.3]}),s("diamond",{points:[-.15,-.15,0,-.3,.15,-.15,0,0],gap:function(e){return e.pstyle("width").pfValue*e.pstyle("arrow-scale").value}}),s("chevron",{points:[0,0,-.15,-.15,-.1,-.2,0,-.1,.1,-.2,.15,-.15],gap:function(e){return.95*e.pstyle("width").pfValue*e.pstyle("arrow-scale").value}})}},ih={projectIntoViewport:function(e,t){var n=this.cy,r=this.findContainerClientCoords(),i=r[0],a=r[1],o=r[4],s=n.pan(),l=n.zoom();return[((e-i)/o-s.x)/l,((t-a)/o-s.y)/l]},findContainerClientCoords:function(){if(this.containerBB)return this.containerBB;var e=this.container,t=e.getBoundingClientRect(),n=this.cy.window().getComputedStyle(e),r=function(e){return parseFloat(n.getPropertyValue(e))},i={left:r("padding-left"),right:r("padding-right"),top:r("padding-top"),bottom:r("padding-bottom")},a={left:r("border-left-width"),right:r("border-right-width"),top:r("border-top-width"),bottom:r("border-bottom-width")},o=e.clientWidth,s=e.clientHeight,l=i.left+i.right,u=i.top+i.bottom,c=a.left+a.right,h=t.width/(o+c),d=o-l,p=s-u,g=t.left+i.left+a.left,f=t.top+i.top+a.top;return this.containerBB=[g,f,d,p,h]},invalidateContainerClientCoordsCache:function(){this.containerBB=null},findNearestElement:function(e,t,n,r){return this.findNearestElements(e,t,n,r)[0]},findNearestElements:function(e,t,n,r){var i,a,o=this,s=this,l=s.getCachedZSortedEles(),u=[],c=s.cy.zoom(),h=s.cy.hasCompoundNodes(),d=(r?24:8)/c,p=(r?8:2)/c,g=(r?8:2)/c,f=1/0;function v(e,t){if(e.isNode()){if(a)return;a=e,u.push(e)}if(e.isEdge()&&(null==t||t<f))if(i){if(i.pstyle("z-compound-depth").value===e.pstyle("z-compound-depth").value&&i.pstyle("z-compound-depth").value===e.pstyle("z-compound-depth").value)for(var n=0;n<u.length;n++)if(u[n].isEdge()){u[n]=e,i=e,f=null!=t?t:f;break}}else u.push(e),i=e,f=null!=t?t:f}function y(n){var r=n.outerWidth()+2*p,i=n.outerHeight()+2*p,a=r/2,l=i/2,u=n.position();if(u.x-a<=e&&e<=u.x+a&&u.y-l<=t&&t<=u.y+l&&s.nodeShapes[o.getNodeShape(n)].checkPoint(e,t,0,r,i,u.x,u.y))return v(n,0),!0}function m(n){var r,i=n._private,a=i.rscratch,l=n.pstyle("width").pfValue,c=n.pstyle("arrow-scale").value,p=l/2+d,g=p*p,f=2*p,m=i.source,b=i.target;if("segments"===a.edgeType||"straight"===a.edgeType||"haystack"===a.edgeType){for(var x=a.allpts,w=0;w+3<x.length;w+=2)if(Xn(e,t,x[w],x[w+1],x[w+2],x[w+3],f)&&g>(r=qn(e,t,x[w],x[w+1],x[w+2],x[w+3])))return v(n,r),!0}else if("bezier"===a.edgeType||"multibezier"===a.edgeType||"self"===a.edgeType||"compound"===a.edgeType)for(x=a.allpts,w=0;w+5<a.allpts.length;w+=4)if(Vn(e,t,x[w],x[w+1],x[w+2],x[w+3],x[w+4],x[w+5],f)&&g>(r=Hn(e,t,x[w],x[w+1],x[w+2],x[w+3],x[w+4],x[w+5])))return v(n,r),!0;m=m||i.source,b=b||i.target;var E=o.getArrowWidth(l,c),T=[{name:"source",x:a.arrowStartX,y:a.arrowStartY,angle:a.srcArrowAngle},{name:"target",x:a.arrowEndX,y:a.arrowEndY,angle:a.tgtArrowAngle},{name:"mid-source",x:a.midX,y:a.midY,angle:a.midsrcArrowAngle},{name:"mid-target",x:a.midX,y:a.midY,angle:a.midtgtArrowAngle}];for(w=0;w<T.length;w++){var _=T[w],D=s.arrowShapes[n.pstyle(_.name+"-arrow-shape").value],C=n.pstyle("width").pfValue;if(D.roughCollide(e,t,E,_.angle,{x:_.x,y:_.y},C,d)&&D.collide(e,t,E,_.angle,{x:_.x,y:_.y},C,d))return v(n),!0}h&&u.length>0&&(y(m),y(b))}function b(e,t,n){return Ft(e,t,n)}function x(n,r){var i,a=n._private,o=g;i=r?r+"-":"",n.boundingBox();var s=a.labelBounds[r||"main"],l=n.pstyle(i+"label").value;if("yes"===n.pstyle("text-events").strValue&&l){var u=b(a.rscratch,"labelX",r),c=b(a.rscratch,"labelY",r),h=b(a.rscratch,"labelAngle",r),d=n.pstyle(i+"text-margin-x").pfValue,p=n.pstyle(i+"text-margin-y").pfValue,f=s.x1-o-d,y=s.x2+o-d,m=s.y1-o-p,x=s.y2+o-p;if(h){var w=Math.cos(h),E=Math.sin(h),T=function(e,t){return{x:(e-=u)*w-(t-=c)*E+u,y:e*E+t*w+c}},_=T(f,m),D=T(f,x),C=T(y,m),N=T(y,x),A=[_.x+d,_.y+p,C.x+d,C.y+p,N.x+d,N.y+p,D.x+d,D.y+p];if(Wn(e,t,A))return v(n),!0}else if(Fn(s,e,t))return v(n),!0}}n&&(l=l.interactive);for(var w=l.length-1;w>=0;w--){var E=l[w];E.isNode()?y(E)||x(E):m(E)||x(E)||x(E,"source")||x(E,"target")}return u},getAllInBox:function(e,t,n,r){for(var i=this.getCachedZSortedEles().interactive,a=[],o=Math.min(e,n),s=Math.max(e,n),l=Math.min(t,r),u=Math.max(t,r),c=Ln({x1:e=o,y1:t=l,x2:n=s,y2:r=u}),h=0;h<i.length;h++){var d=i[h];if(d.isNode()){var p=d,g=p.boundingBox({includeNodes:!0,includeEdges:!1,includeLabels:!1});Bn(c,g)&&!Gn(g,c)&&a.push(p)}else{var f=d,v=f._private,y=v.rscratch;if(null!=y.startX&&null!=y.startY&&!Fn(c,y.startX,y.startY))continue;if(null!=y.endX&&null!=y.endY&&!Fn(c,y.endX,y.endY))continue;if("bezier"===y.edgeType||"multibezier"===y.edgeType||"self"===y.edgeType||"compound"===y.edgeType||"segments"===y.edgeType||"haystack"===y.edgeType){for(var m=v.rstyle.bezierPts||v.rstyle.linePts||v.rstyle.haystackPts,b=!0,x=0;x<m.length;x++)if(!zn(c,m[x])){b=!1;break}b&&a.push(f)}else"haystack"!==y.edgeType&&"straight"!==y.edgeType||a.push(f)}}return a}},ah={calculateArrowAngles:function(e){var t,n,r,i,a,o,s=e._private.rscratch,l="haystack"===s.edgeType,u="bezier"===s.edgeType,c="multibezier"===s.edgeType,h="segments"===s.edgeType,d="compound"===s.edgeType,p="self"===s.edgeType;if(l?(r=s.haystackPts[0],i=s.haystackPts[1],a=s.haystackPts[2],o=s.haystackPts[3]):(r=s.arrowStartX,i=s.arrowStartY,a=s.arrowEndX,o=s.arrowEndY),f=s.midX,v=s.midY,h)t=r-s.segpts[0],n=i-s.segpts[1];else if(c||d||p||u){var g=s.allpts;t=r-Dn(g[0],g[2],g[4],.1),n=i-Dn(g[1],g[3],g[5],.1)}else t=r-f,n=i-v;s.srcArrowAngle=bn(t,n);var f=s.midX,v=s.midY;if(l&&(f=(r+a)/2,v=(i+o)/2),t=a-r,n=o-i,h)if((g=s.allpts).length/2%2==0){var y=(m=g.length/2)-2;t=g[m]-g[y],n=g[m+1]-g[y+1]}else{y=(m=g.length/2-1)-2;var m,b=m+2;t=g[m]-g[y],n=g[m+1]-g[y+1]}else if(c||d||p){var x,w,E,T,g=s.allpts;if(s.ctrlpts.length/2%2==0){var _=2+(D=2+(C=g.length/2-1));x=Dn(g[C],g[D],g[_],0),w=Dn(g[C+1],g[D+1],g[_+1],0),E=Dn(g[C],g[D],g[_],1e-4),T=Dn(g[C+1],g[D+1],g[_+1],1e-4)}else{var D,C;_=2+(D=g.length/2-1),x=Dn(g[C=D-2],g[D],g[_],.4999),w=Dn(g[C+1],g[D+1],g[_+1],.4999),E=Dn(g[C],g[D],g[_],.5),T=Dn(g[C+1],g[D+1],g[_+1],.5)}t=E-x,n=T-w}if(s.midtgtArrowAngle=bn(t,n),s.midDispX=t,s.midDispY=n,t*=-1,n*=-1,h&&((g=s.allpts).length/2%2==0||(t=-(g[b=2+(m=g.length/2-1)]-g[m]),n=-(g[b+1]-g[m+1]))),s.midsrcArrowAngle=bn(t,n),h)t=a-s.segpts[s.segpts.length-2],n=o-s.segpts[s.segpts.length-1];else if(c||d||p||u){var N=(g=s.allpts).length;t=a-Dn(g[N-6],g[N-4],g[N-2],.9),n=o-Dn(g[N-5],g[N-3],g[N-1],.9)}else t=a-f,n=o-v;s.tgtArrowAngle=bn(t,n)}};ah.getArrowWidth=ah.getArrowHeight=function(e,t){var n=this.arrowWidthCache=this.arrowWidthCache||{},r=n[e+", "+t];return r||(r=Math.max(Math.pow(13.37*e,.9),29)*t,n[e+", "+t]=r,r)};var oh={};function sh(e){var t=[];if(null!=e){for(var n=0;n<e.length;n+=2){var r=e[n],i=e[n+1];t.push({x:r,y:i})}return t}}oh.findHaystackPoints=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=n._private,i=r.rscratch;if(!i.haystack){var a=2*Math.random()*Math.PI;i.source={x:Math.cos(a),y:Math.sin(a)},a=2*Math.random()*Math.PI,i.target={x:Math.cos(a),y:Math.sin(a)}}var o=r.source,s=r.target,l=o.position(),u=s.position(),c=o.width(),h=s.width(),d=o.height(),p=s.height(),g=n.pstyle("haystack-radius").value/2;i.haystackPts=i.allpts=[i.source.x*c*g+l.x,i.source.y*d*g+l.y,i.target.x*h*g+u.x,i.target.y*p*g+u.y],i.midX=(i.allpts[0]+i.allpts[2])/2,i.midY=(i.allpts[1]+i.allpts[3])/2,i.edgeType="haystack",i.haystack=!0,this.storeEdgeProjections(n),this.calculateArrowAngles(n),this.recalculateEdgeLabelProjections(n),this.calculateLabelAngles(n)}},oh.findSegmentsPoints=function(e,t){var n=e._private.rscratch,r=t.posPts,i=t.intersectionPts,a=t.vectorNormInverse,o=e.pstyle("edge-distances").value,s=e.pstyle("segment-weights"),l=e.pstyle("segment-distances"),u=Math.min(s.pfValue.length,l.pfValue.length);n.edgeType="segments",n.segpts=[];for(var c=0;c<u;c++){var h=s.pfValue[c],d=l.pfValue[c],p=1-h,g=h,f="node-position"===o?r:i,v={x:f.x1*p+f.x2*g,y:f.y1*p+f.y2*g};n.segpts.push(v.x+a.x*d,v.y+a.y*d)}},oh.findLoopPoints=function(e,t,n,r){var i=e._private.rscratch,a=t.dirCounts,o=t.srcPos,s=e.pstyle("control-point-distances"),l=s?s.pfValue[0]:void 0,u=e.pstyle("loop-direction").pfValue,c=e.pstyle("loop-sweep").pfValue,h=e.pstyle("control-point-step-size").pfValue;i.edgeType="self";var d=n,p=h;r&&(d=0,p=l);var g=u-Math.PI/2,f=g-c/2,v=g+c/2,y=String(u+"_"+c);d=void 0===a[y]?a[y]=0:++a[y],i.ctrlpts=[o.x+1.4*Math.cos(f)*p*(d/3+1),o.y+1.4*Math.sin(f)*p*(d/3+1),o.x+1.4*Math.cos(v)*p*(d/3+1),o.y+1.4*Math.sin(v)*p*(d/3+1)]},oh.findCompoundLoopPoints=function(e,t,n,r){var i=e._private.rscratch;i.edgeType="compound";var a=t.srcPos,o=t.tgtPos,s=t.srcW,l=t.srcH,u=t.tgtW,c=t.tgtH,h=e.pstyle("control-point-step-size").pfValue,d=e.pstyle("control-point-distances"),p=d?d.pfValue[0]:void 0,g=n,f=h;r&&(g=0,f=p);var v=50,y={x:a.x-s/2,y:a.y-l/2},m={x:o.x-u/2,y:o.y-c/2},b={x:Math.min(y.x,m.x),y:Math.min(y.y,m.y)},x=.5,w=Math.max(x,Math.log(.01*s)),E=Math.max(x,Math.log(.01*u));i.ctrlpts=[b.x,b.y-(1+Math.pow(v,1.12)/100)*f*(g/3+1)*w,b.x-(1+Math.pow(v,1.12)/100)*f*(g/3+1)*E,b.y]},oh.findStraightEdgePoints=function(e){e._private.rscratch.edgeType="straight"},oh.findBezierPoints=function(e,t,n,r,i){var a=e._private.rscratch,o=t.vectorNormInverse,s=t.posPts,l=t.intersectionPts,u=e.pstyle("edge-distances").value,c=e.pstyle("control-point-step-size").pfValue,h=e.pstyle("control-point-distances"),d=e.pstyle("control-point-weights"),p=h&&d?Math.min(h.value.length,d.value.length):1,g=h?h.pfValue[0]:void 0,f=d.value[0],v=r;a.edgeType=v?"multibezier":"bezier",a.ctrlpts=[];for(var y=0;y<p;y++){var m=(.5-t.eles.length/2+n)*c*(i?-1:1),b=void 0,x=wn(m);v&&(g=h?h.pfValue[y]:c,f=d.value[y]);var w=void 0!==(b=r?g:void 0!==g?x*g:void 0)?b:m,E=1-f,T=f,_="node-position"===u?s:l,D={x:_.x1*E+_.x2*T,y:_.y1*E+_.y2*T};a.ctrlpts.push(D.x+o.x*w,D.y+o.y*w)}},oh.findTaxiPoints=function(e,t){var n=e._private.rscratch;n.edgeType="segments";var r="vertical",i="horizontal",a="leftward",o="rightward",s="downward",l="upward",u="auto",c=t.posPts,h=t.srcW,d=t.srcH,p=t.tgtW,g=t.tgtH,f="node-position"!==e.pstyle("edge-distances").value,v=e.pstyle("taxi-direction").value,y=v,m=e.pstyle("taxi-turn"),b="%"===m.units,x=m.pfValue,w=x<0,E=e.pstyle("taxi-turn-min-distance").pfValue,T=f?(h+p)/2:0,_=f?(d+g)/2:0,D=c.x2-c.x1,C=c.y2-c.y1,N=function(e,t){return e>0?Math.max(e-t,0):Math.min(e+t,0)},A=N(D,T),L=N(C,_),S=!1;y===u?v=Math.abs(A)>Math.abs(L)?i:r:y===l||y===s?(v=r,S=!0):y!==a&&y!==o||(v=i,S=!0);var O,I=v===r,k=I?L:A,M=I?C:D,P=wn(M),R=!1;S&&(b||w)||!(y===s&&M<0||y===l&&M>0||y===a&&M>0||y===o&&M<0)||(k=(P*=-1)*Math.abs(k),R=!0);var B=function(e){return Math.abs(e)<E||Math.abs(e)>=Math.abs(k)},F=B(O=b?(x<0?1+x:x)*k:(x<0?k:0)+x*P),z=B(Math.abs(k)-Math.abs(O));if(!F&&!z||R)if(I){var G=c.y1+O+(f?d/2*P:0),Y=c.x1,X=c.x2;n.segpts=[Y,G,X,G]}else{var V=c.x1+O+(f?h/2*P:0),U=c.y1,j=c.y2;n.segpts=[V,U,V,j]}else if(I){var H=Math.abs(M)<=d/2,q=Math.abs(D)<=p/2;if(H){var W=(c.x1+c.x2)/2,$=c.y1,K=c.y2;n.segpts=[W,$,W,K]}else if(q){var Z=(c.y1+c.y2)/2,Q=c.x1,J=c.x2;n.segpts=[Q,Z,J,Z]}else n.segpts=[c.x1,c.y2]}else{var ee=Math.abs(M)<=h/2,te=Math.abs(C)<=g/2;if(ee){var ne=(c.y1+c.y2)/2,re=c.x1,ie=c.x2;n.segpts=[re,ne,ie,ne]}else if(te){var ae=(c.x1+c.x2)/2,oe=c.y1,se=c.y2;n.segpts=[ae,oe,ae,se]}else n.segpts=[c.x2,c.y1]}},oh.tryToCorrectInvalidPoints=function(e,t){var n=e._private.rscratch;if("bezier"===n.edgeType){var r=t.srcPos,i=t.tgtPos,a=t.srcW,o=t.srcH,s=t.tgtW,l=t.tgtH,u=t.srcShape,c=t.tgtShape,h=!_(n.startX)||!_(n.startY),d=!_(n.arrowStartX)||!_(n.arrowStartY),p=!_(n.endX)||!_(n.endY),g=!_(n.arrowEndX)||!_(n.arrowEndY),f=this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth*3,v=En({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.startX,y:n.startY}),y=v<f,m=En({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.endX,y:n.endY}),b=m<f,x=!1;if(h||d||y){x=!0;var w={x:n.ctrlpts[0]-r.x,y:n.ctrlpts[1]-r.y},E=Math.sqrt(w.x*w.x+w.y*w.y),T={x:w.x/E,y:w.y/E},D=Math.max(a,o),C={x:n.ctrlpts[0]+2*T.x*D,y:n.ctrlpts[1]+2*T.y*D},N=u.intersectLine(r.x,r.y,a,o,C.x,C.y,0);y?(n.ctrlpts[0]=n.ctrlpts[0]+T.x*(f-v),n.ctrlpts[1]=n.ctrlpts[1]+T.y*(f-v)):(n.ctrlpts[0]=N[0]+T.x*f,n.ctrlpts[1]=N[1]+T.y*f)}if(p||g||b){x=!0;var A={x:n.ctrlpts[0]-i.x,y:n.ctrlpts[1]-i.y},L=Math.sqrt(A.x*A.x+A.y*A.y),S={x:A.x/L,y:A.y/L},O=Math.max(a,o),I={x:n.ctrlpts[0]+2*S.x*O,y:n.ctrlpts[1]+2*S.y*O},k=c.intersectLine(i.x,i.y,s,l,I.x,I.y,0);b?(n.ctrlpts[0]=n.ctrlpts[0]+S.x*(f-m),n.ctrlpts[1]=n.ctrlpts[1]+S.y*(f-m)):(n.ctrlpts[0]=k[0]+S.x*f,n.ctrlpts[1]=k[1]+S.y*f)}x&&this.findEndpoints(e)}},oh.storeAllpts=function(e){var t=e._private.rscratch;if("multibezier"===t.edgeType||"bezier"===t.edgeType||"self"===t.edgeType||"compound"===t.edgeType){t.allpts=[],t.allpts.push(t.startX,t.startY);for(var n=0;n+1<t.ctrlpts.length;n+=2)t.allpts.push(t.ctrlpts[n],t.ctrlpts[n+1]),n+3<t.ctrlpts.length&&t.allpts.push((t.ctrlpts[n]+t.ctrlpts[n+2])/2,(t.ctrlpts[n+1]+t.ctrlpts[n+3])/2);var r,i;t.allpts.push(t.endX,t.endY),t.ctrlpts.length/2%2==0?(r=t.allpts.length/2-1,t.midX=t.allpts[r],t.midY=t.allpts[r+1]):(r=t.allpts.length/2-3,i=.5,t.midX=Dn(t.allpts[r],t.allpts[r+2],t.allpts[r+4],i),t.midY=Dn(t.allpts[r+1],t.allpts[r+3],t.allpts[r+5],i))}else if("straight"===t.edgeType)t.allpts=[t.startX,t.startY,t.endX,t.endY],t.midX=(t.startX+t.endX+t.arrowStartX+t.arrowEndX)/4,t.midY=(t.startY+t.endY+t.arrowStartY+t.arrowEndY)/4;else if("segments"===t.edgeType)if(t.allpts=[],t.allpts.push(t.startX,t.startY),t.allpts.push.apply(t.allpts,t.segpts),t.allpts.push(t.endX,t.endY),t.segpts.length%4==0){var a=t.segpts.length/2,o=a-2;t.midX=(t.segpts[o]+t.segpts[a])/2,t.midY=(t.segpts[o+1]+t.segpts[a+1])/2}else{var s=t.segpts.length/2-1;t.midX=t.segpts[s],t.midY=t.segpts[s+1]}},oh.checkForInvalidEdgeWarning=function(e){var t=e[0]._private.rscratch;t.nodesOverlap||_(t.startX)&&_(t.startY)&&_(t.endX)&&_(t.endY)?t.loggedErr=!1:t.loggedErr||(t.loggedErr=!0,Nt("Edge `"+e.id()+"` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap."))},oh.findEdgeControlPoints=function(e){var t=this;if(e&&0!==e.length){for(var n=this,r=n.cy.hasCompoundNodes(),i={map:new Yt,get:function(e){var t=this.map.get(e[0]);return null!=t?t.get(e[1]):null},set:function(e,t){var n=this.map.get(e[0]);null==n&&(n=new Yt,this.map.set(e[0],n)),n.set(e[1],t)}},a=[],o=[],s=0;s<e.length;s++){var l=e[s],u=l._private,c=l.pstyle("curve-style").value;if(!l.removed()&&l.takesUpSpace())if("haystack"!==c){var h="unbundled-bezier"===c||"segments"===c||"straight"===c||"straight-triangle"===c||"taxi"===c,d="unbundled-bezier"===c||"bezier"===c,p=u.source,g=u.target,f=[p.poolIndex(),g.poolIndex()].sort(),v=i.get(f);null==v&&(v={eles:[]},i.set(f,v),a.push(f)),v.eles.push(l),h&&(v.hasUnbundled=!0),d&&(v.hasBezier=!0)}else o.push(l)}for(var y=function(e){var o=a[e],s=i.get(o),l=void 0;if(!s.hasUnbundled){var u=s.eles[0].parallelEdges().filter((function(e){return e.isBundledBezier()}));Rt(s.eles),u.forEach((function(e){return s.eles.push(e)})),s.eles.sort((function(e,t){return e.poolIndex()-t.poolIndex()}))}var c=s.eles[0],h=c.source(),d=c.target();if(h.poolIndex()>d.poolIndex()){var p=h;h=d,d=p}var g=s.srcPos=h.position(),f=s.tgtPos=d.position(),v=s.srcW=h.outerWidth(),y=s.srcH=h.outerHeight(),m=s.tgtW=d.outerWidth(),b=s.tgtH=d.outerHeight(),x=s.srcShape=n.nodeShapes[t.getNodeShape(h)],w=s.tgtShape=n.nodeShapes[t.getNodeShape(d)];s.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var E=0;E<s.eles.length;E++){var T=s.eles[E],D=T[0]._private.rscratch,C=T.pstyle("curve-style").value,N="unbundled-bezier"===C||"segments"===C||"taxi"===C,A=!h.same(T.source());if(!s.calculatedIntersection&&h!==d&&(s.hasBezier||s.hasUnbundled)){s.calculatedIntersection=!0;var L=x.intersectLine(g.x,g.y,v,y,f.x,f.y,0),S=s.srcIntn=L,O=w.intersectLine(f.x,f.y,m,b,g.x,g.y,0),I=s.tgtIntn=O,k=s.intersectionPts={x1:L[0],x2:O[0],y1:L[1],y2:O[1]},M=s.posPts={x1:g.x,x2:f.x,y1:g.y,y2:f.y},P=O[1]-L[1],R=O[0]-L[0],B=Math.sqrt(R*R+P*P),F=s.vector={x:R,y:P},z=s.vectorNorm={x:F.x/B,y:F.y/B},G={x:-z.y,y:z.x};s.nodesOverlap=!_(B)||w.checkPoint(L[0],L[1],0,m,b,f.x,f.y)||x.checkPoint(O[0],O[1],0,v,y,g.x,g.y),s.vectorNormInverse=G,l={nodesOverlap:s.nodesOverlap,dirCounts:s.dirCounts,calculatedIntersection:!0,hasBezier:s.hasBezier,hasUnbundled:s.hasUnbundled,eles:s.eles,srcPos:f,tgtPos:g,srcW:m,srcH:b,tgtW:v,tgtH:y,srcIntn:I,tgtIntn:S,srcShape:w,tgtShape:x,posPts:{x1:M.x2,y1:M.y2,x2:M.x1,y2:M.y1},intersectionPts:{x1:k.x2,y1:k.y2,x2:k.x1,y2:k.y1},vector:{x:-F.x,y:-F.y},vectorNorm:{x:-z.x,y:-z.y},vectorNormInverse:{x:-G.x,y:-G.y}}}var Y=A?l:s;D.nodesOverlap=Y.nodesOverlap,D.srcIntn=Y.srcIntn,D.tgtIntn=Y.tgtIntn,r&&(h.isParent()||h.isChild()||d.isParent()||d.isChild())&&(h.parents().anySame(d)||d.parents().anySame(h)||h.same(d)&&h.isParent())?t.findCompoundLoopPoints(T,Y,E,N):h===d?t.findLoopPoints(T,Y,E,N):"segments"===C?t.findSegmentsPoints(T,Y):"taxi"===C?t.findTaxiPoints(T,Y):"straight"===C||!N&&s.eles.length%2==1&&E===Math.floor(s.eles.length/2)?t.findStraightEdgePoints(T):t.findBezierPoints(T,Y,E,N,A),t.findEndpoints(T),t.tryToCorrectInvalidPoints(T,Y),t.checkForInvalidEdgeWarning(T),t.storeAllpts(T),t.storeEdgeProjections(T),t.calculateArrowAngles(T),t.recalculateEdgeLabelProjections(T),t.calculateLabelAngles(T)}},m=0;m<a.length;m++)y(m);this.findHaystackPoints(o)}},oh.getSegmentPoints=function(e){var t=e[0]._private.rscratch;if("segments"===t.edgeType)return this.recalculateRenderedStyle(e),sh(t.segpts)},oh.getControlPoints=function(e){var t=e[0]._private.rscratch,n=t.edgeType;if("bezier"===n||"multibezier"===n||"self"===n||"compound"===n)return this.recalculateRenderedStyle(e),sh(t.ctrlpts)},oh.getEdgeMidpoint=function(e){var t=e[0]._private.rscratch;return this.recalculateRenderedStyle(e),{x:t.midX,y:t.midY}};var lh={manualEndptToPx:function(e,t){var n=this,r=e.position(),i=e.outerWidth(),a=e.outerHeight();if(2===t.value.length){var o=[t.pfValue[0],t.pfValue[1]];return"%"===t.units[0]&&(o[0]=o[0]*i),"%"===t.units[1]&&(o[1]=o[1]*a),o[0]+=r.x,o[1]+=r.y,o}var s=t.pfValue[0];s=-Math.PI/2+s;var l=2*Math.max(i,a),u=[r.x+Math.cos(s)*l,r.y+Math.sin(s)*l];return n.nodeShapes[this.getNodeShape(e)].intersectLine(r.x,r.y,i,a,u[0],u[1],0)},findEndpoints:function(e){var t,n,r,i,a,o=this,s=e.source()[0],l=e.target()[0],u=s.position(),c=l.position(),h=e.pstyle("target-arrow-shape").value,d=e.pstyle("source-arrow-shape").value,p=e.pstyle("target-distance-from-node").pfValue,g=e.pstyle("source-distance-from-node").pfValue,f=e.pstyle("curve-style").value,v=e._private.rscratch,y=v.edgeType,m="self"===y||"compound"===y,b="bezier"===y||"multibezier"===y||m,x="bezier"!==y,w="straight"===y||"segments"===y,E="segments"===y,T=b||x||w,D=m||"taxi"===f,C=e.pstyle("source-endpoint"),N=D?"outside-to-node":C.value,A=e.pstyle("target-endpoint"),L=D?"outside-to-node":A.value;if(v.srcManEndpt=C,v.tgtManEndpt=A,b){var S=[v.ctrlpts[0],v.ctrlpts[1]];n=x?[v.ctrlpts[v.ctrlpts.length-2],v.ctrlpts[v.ctrlpts.length-1]]:S,r=S}else if(w){var O=E?v.segpts.slice(0,2):[c.x,c.y];n=E?v.segpts.slice(v.segpts.length-2):[u.x,u.y],r=O}if("inside-to-node"===L)t=[c.x,c.y];else if(A.units)t=this.manualEndptToPx(l,A);else if("outside-to-line"===L)t=v.tgtIntn;else if("outside-to-node"===L||"outside-to-node-or-label"===L?i=n:"outside-to-line"!==L&&"outside-to-line-or-label"!==L||(i=[u.x,u.y]),t=o.nodeShapes[this.getNodeShape(l)].intersectLine(c.x,c.y,l.outerWidth(),l.outerHeight(),i[0],i[1],0),"outside-to-node-or-label"===L||"outside-to-line-or-label"===L){var I=l._private.rscratch,k=I.labelWidth,M=I.labelHeight,P=I.labelX,R=I.labelY,B=k/2,F=M/2,z=l.pstyle("text-valign").value;"top"===z?R-=F:"bottom"===z&&(R+=F);var G=l.pstyle("text-halign").value;"left"===G?P-=B:"right"===G&&(P+=B);var Y=ir(i[0],i[1],[P-B,R-F,P+B,R-F,P+B,R+F,P-B,R+F],c.x,c.y);if(Y.length>0){var X=u,V=Tn(X,pn(t)),U=Tn(X,pn(Y)),j=V;U<V&&(t=Y,j=U),Y.length>2&&Tn(X,{x:Y[2],y:Y[3]})<j&&(t=[Y[2],Y[3]])}}var H=or(t,n,o.arrowShapes[h].spacing(e)+p),q=or(t,n,o.arrowShapes[h].gap(e)+p);if(v.endX=q[0],v.endY=q[1],v.arrowEndX=H[0],v.arrowEndY=H[1],"inside-to-node"===N)t=[u.x,u.y];else if(C.units)t=this.manualEndptToPx(s,C);else if("outside-to-line"===N)t=v.srcIntn;else if("outside-to-node"===N||"outside-to-node-or-label"===N?a=r:"outside-to-line"!==N&&"outside-to-line-or-label"!==N||(a=[c.x,c.y]),t=o.nodeShapes[this.getNodeShape(s)].intersectLine(u.x,u.y,s.outerWidth(),s.outerHeight(),a[0],a[1],0),"outside-to-node-or-label"===N||"outside-to-line-or-label"===N){var W=s._private.rscratch,$=W.labelWidth,K=W.labelHeight,Z=W.labelX,Q=W.labelY,J=$/2,ee=K/2,te=s.pstyle("text-valign").value;"top"===te?Q-=ee:"bottom"===te&&(Q+=ee);var ne=s.pstyle("text-halign").value;"left"===ne?Z-=J:"right"===ne&&(Z+=J);var re=ir(a[0],a[1],[Z-J,Q-ee,Z+J,Q-ee,Z+J,Q+ee,Z-J,Q+ee],u.x,u.y);if(re.length>0){var ie=c,ae=Tn(ie,pn(t)),oe=Tn(ie,pn(re)),se=ae;oe<ae&&(t=[re[0],re[1]],se=oe),re.length>2&&Tn(ie,{x:re[2],y:re[3]})<se&&(t=[re[2],re[3]])}}var le=or(t,r,o.arrowShapes[d].spacing(e)+g),ue=or(t,r,o.arrowShapes[d].gap(e)+g);v.startX=ue[0],v.startY=ue[1],v.arrowStartX=le[0],v.arrowStartY=le[1],T&&(_(v.startX)&&_(v.startY)&&_(v.endX)&&_(v.endY)?v.badLine=!1:v.badLine=!0)},getSourceEndpoint:function(e){var t=e[0]._private.rscratch;return this.recalculateRenderedStyle(e),"haystack"===t.edgeType?{x:t.haystackPts[0],y:t.haystackPts[1]}:{x:t.arrowStartX,y:t.arrowStartY}},getTargetEndpoint:function(e){var t=e[0]._private.rscratch;return this.recalculateRenderedStyle(e),"haystack"===t.edgeType?{x:t.haystackPts[2],y:t.haystackPts[3]}:{x:t.arrowEndX,y:t.arrowEndY}}},uh={};function ch(e,t,n){for(var r=function(e,t,n,r){return Dn(e,t,n,r)},i=t._private.rstyle.bezierPts,a=0;a<e.bezierProjPcts.length;a++){var o=e.bezierProjPcts[a];i.push({x:r(n[0],n[2],n[4],o),y:r(n[1],n[3],n[5],o)})}}uh.storeEdgeProjections=function(e){var t=e._private,n=t.rscratch,r=n.edgeType;if(t.rstyle.bezierPts=null,t.rstyle.linePts=null,t.rstyle.haystackPts=null,"multibezier"===r||"bezier"===r||"self"===r||"compound"===r){t.rstyle.bezierPts=[];for(var i=0;i+5<n.allpts.length;i+=4)ch(this,e,n.allpts.slice(i,i+6))}else if("segments"===r){var a=t.rstyle.linePts=[];for(i=0;i+1<n.allpts.length;i+=2)a.push({x:n.allpts[i],y:n.allpts[i+1]})}else if("haystack"===r){var o=n.haystackPts;t.rstyle.haystackPts=[{x:o[0],y:o[1]},{x:o[2],y:o[3]}]}t.rstyle.arrowWidth=this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth},uh.recalculateEdgeProjections=function(e){this.findEdgeControlPoints(e)};var hh={recalculateNodeLabelProjection:function(e){var t=e.pstyle("label").strValue;if(!k(t)){var n,r,i=e._private,a=e.width(),o=e.height(),s=e.padding(),l=e.position(),u=e.pstyle("text-halign").strValue,c=e.pstyle("text-valign").strValue,h=i.rscratch,d=i.rstyle;switch(u){case"left":n=l.x-a/2-s;break;case"right":n=l.x+a/2+s;break;default:n=l.x}switch(c){case"top":r=l.y-o/2-s;break;case"bottom":r=l.y+o/2+s;break;default:r=l.y}h.labelX=n,h.labelY=r,d.labelX=n,d.labelY=r,this.calculateLabelAngles(e),this.applyLabelDimensions(e)}}},dh=function(e,t){var n=Math.atan(t/e);return 0===e&&n<0&&(n*=-1),n},ph=function(e,t){var n=t.x-e.x,r=t.y-e.y;return dh(n,r)},gh=function(e,t,n,r){var i=An(0,r-.001,1),a=An(0,r+.001,1),o=Cn(e,t,n,i),s=Cn(e,t,n,a);return ph(o,s)};hh.recalculateEdgeLabelProjections=function(e){var t,n=e._private,r=n.rscratch,i=this,a={mid:e.pstyle("label").strValue,source:e.pstyle("source-label").strValue,target:e.pstyle("target-label").strValue};if(a.mid||a.source||a.target){t={x:r.midX,y:r.midY};var o=function(e,t,r){zt(n.rscratch,e,t,r),zt(n.rstyle,e,t,r)};o("labelX",null,t.x),o("labelY",null,t.y);var s=dh(r.midDispX,r.midDispY);o("labelAutoAngle",null,s);var l=function e(){if(e.cache)return e.cache;for(var t=[],a=0;a+5<r.allpts.length;a+=4){var o={x:r.allpts[a],y:r.allpts[a+1]},s={x:r.allpts[a+2],y:r.allpts[a+3]},l={x:r.allpts[a+4],y:r.allpts[a+5]};t.push({p0:o,p1:s,p2:l,startDist:0,length:0,segments:[]})}var u=n.rstyle.bezierPts,c=i.bezierProjPcts.length;function h(e,t,n,r,i){var a=En(t,n),o=e.segments[e.segments.length-1],s={p0:t,p1:n,t0:r,t1:i,startDist:o?o.startDist+o.length:0,length:a};e.segments.push(s),e.length+=a}for(var d=0;d<t.length;d++){var p=t[d],g=t[d-1];g&&(p.startDist=g.startDist+g.length),h(p,p.p0,u[d*c],0,i.bezierProjPcts[0]);for(var f=0;f<c-1;f++)h(p,u[d*c+f],u[d*c+f+1],i.bezierProjPcts[f],i.bezierProjPcts[f+1]);h(p,u[d*c+c-1],p.p2,i.bezierProjPcts[c-1],1)}return e.cache=t},u=function(n){var i,s="source"===n;if(a[n]){var u=e.pstyle(n+"-text-offset").pfValue;switch(r.edgeType){case"self":case"compound":case"bezier":case"multibezier":for(var c,h=l(),d=0,p=0,g=0;g<h.length;g++){for(var f=h[s?g:h.length-1-g],v=0;v<f.segments.length;v++){var y=f.segments[s?v:f.segments.length-1-v],m=g===h.length-1&&v===f.segments.length-1;if(d=p,(p+=y.length)>=u||m){c={cp:f,segment:y};break}}if(c)break}var b=c.cp,x=c.segment,w=(u-d)/x.length,E=x.t1-x.t0,T=s?x.t0+E*w:x.t1-E*w;T=An(0,T,1),t=Cn(b.p0,b.p1,b.p2,T),i=gh(b.p0,b.p1,b.p2,T);break;case"straight":case"segments":case"haystack":for(var _,D,C,N,A=0,L=r.allpts.length,S=0;S+3<L&&(s?(C={x:r.allpts[S],y:r.allpts[S+1]},N={x:r.allpts[S+2],y:r.allpts[S+3]}):(C={x:r.allpts[L-2-S],y:r.allpts[L-1-S]},N={x:r.allpts[L-4-S],y:r.allpts[L-3-S]}),D=A,!((A+=_=En(C,N))>=u));S+=2);var O=(u-D)/_;O=An(0,O,1),t=Nn(C,N,O),i=ph(C,N)}o("labelX",n,t.x),o("labelY",n,t.y),o("labelAutoAngle",n,i)}};u("source"),u("target"),this.applyLabelDimensions(e)}},hh.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))},hh.applyPrefixedLabelDimensions=function(e,t){var n=e._private,r=this.getLabelText(e,t),i=this.calculateLabelDimensions(e,r),a=e.pstyle("line-height").pfValue,o=e.pstyle("text-wrap").strValue,s=Ft(n.rscratch,"labelWrapCachedLines",t)||[],l="wrap"!==o?1:Math.max(s.length,1),u=i.height/l,c=u*a,h=i.width,d=i.height+(l-1)*(a-1)*u;zt(n.rstyle,"labelWidth",t,h),zt(n.rscratch,"labelWidth",t,h),zt(n.rstyle,"labelHeight",t,d),zt(n.rscratch,"labelHeight",t,d),zt(n.rscratch,"labelLineHeight",t,c)},hh.getLabelText=function(e,t){var n=e._private,r=t?t+"-":"",i=e.pstyle(r+"label").strValue,a=e.pstyle("text-transform").value,o=function(e,r){return r?(zt(n.rscratch,e,t,r),r):Ft(n.rscratch,e,t)};if(!i)return"";"none"==a||("uppercase"==a?i=i.toUpperCase():"lowercase"==a&&(i=i.toLowerCase()));var s=e.pstyle("text-wrap").value;if("wrap"===s){var l=o("labelKey");if(null!=l&&o("labelWrapKey")===l)return o("labelWrapCachedText");for(var u="\u200b",c=i.split("\n"),h=e.pstyle("text-max-width").pfValue,d="anywhere"===e.pstyle("text-overflow-wrap").value,p=[],g=/[\s\u200b]+/,f=d?"":" ",v=0;v<c.length;v++){var y=c[v],m=this.calculateLabelDimensions(e,y).width;if(d){var b=y.split("").join(u);y=b}if(m>h){for(var x=y.split(g),w="",E=0;E<x.length;E++){var T=x[E],_=0===w.length?T:w+f+T;this.calculateLabelDimensions(e,_).width<=h?w+=T+f:(w&&p.push(w),w=T+f)}w.match(/^[\s\u200b]+$/)||p.push(w)}else p.push(y)}o("labelWrapCachedLines",p),i=o("labelWrapCachedText",p.join("\n")),o("labelWrapKey",l)}else if("ellipsis"===s){var D=e.pstyle("text-max-width").pfValue,C="",N="\u2026",A=!1;if(this.calculateLabelDimensions(e,i).width<D)return i;for(var L=0;L<i.length&&!(this.calculateLabelDimensions(e,C+i[L]+N).width>D);L++)C+=i[L],L===i.length-1&&(A=!0);return A||(C+=N),C}return i},hh.getLabelJustification=function(e){var t=e.pstyle("text-justification").strValue,n=e.pstyle("text-halign").strValue;if("auto"!==t)return t;if(!e.isNode())return"center";switch(n){case"left":return"right";case"right":return"left";default:return"center"}},hh.calculateLabelDimensions=function(e,t){var n=this,r=gt(t,e._private.labelDimsKey),i=n.labelDimCache||(n.labelDimCache=[]),a=i[r];if(null!=a)return a;var o=0,s=e.pstyle("font-style").strValue,l=e.pstyle("font-size").pfValue,u=e.pstyle("font-family").strValue,c=e.pstyle("font-weight").strValue,h=this.labelCalcCanvas,d=this.labelCalcCanvasContext;if(!h){h=this.labelCalcCanvas=document.createElement("canvas"),d=this.labelCalcCanvasContext=h.getContext("2d");var p=h.style;p.position="absolute",p.left="-9999px",p.top="-9999px",p.zIndex="-1",p.visibility="hidden",p.pointerEvents="none"}d.font="".concat(s," ").concat(c," ").concat(l,"px ").concat(u);for(var g=0,f=0,v=t.split("\n"),y=0;y<v.length;y++){var m=v[y],b=d.measureText(m),x=Math.ceil(b.width),w=l;g=Math.max(x,g),f+=w}return g+=o,f+=o,i[r]={width:g,height:f}},hh.calculateLabelAngle=function(e,t){var n=e._private.rscratch,r=e.isEdge(),i=t?t+"-":"",a=e.pstyle(i+"text-rotation"),o=a.strValue;return"none"===o?0:r&&"autorotate"===o?n.labelAutoAngle:"autorotate"===o?0:a.pfValue},hh.calculateLabelAngles=function(e){var t=this,n=e.isEdge(),r=e._private.rscratch;r.labelAngle=t.calculateLabelAngle(e),n&&(r.sourceLabelAngle=t.calculateLabelAngle(e,"source"),r.targetLabelAngle=t.calculateLabelAngle(e,"target"))};var fh={},vh=28,yh=!1;fh.getNodeShape=function(e){var t=this,n=e.pstyle("shape").value;if("cutrectangle"===n&&(e.width()<vh||e.height()<vh))return yh||(Nt("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"),yh=!0),"rectangle";if(e.isParent())return"rectangle"===n||"roundrectangle"===n||"round-rectangle"===n||"cutrectangle"===n||"cut-rectangle"===n||"barrel"===n?n:"rectangle";if("polygon"===n){var r=e.pstyle("shape-polygon-points").value;return t.nodeShapes.makePolygon(r).name}return n};var mh={registerCalculationListeners:function(){var e=this.cy,t=e.collection(),n=this,r=function(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(t.merge(e),n)for(var r=0;r<e.length;r++){var i=e[r]._private.rstyle;i.clean=!1,i.cleanConnected=!1}};n.binder(e).on("bounds.* dirty.*",(function(e){var t=e.target;r(t)})).on("style.* background.*",(function(e){var t=e.target;r(t,!1)}));var i=function(i){if(i){var a=n.onUpdateEleCalcsFns;t.cleanStyle();for(var o=0;o<t.length;o++){var s=t[o],l=s._private.rstyle;s.isNode()&&!l.cleanConnected&&(r(s.connectedEdges()),l.cleanConnected=!0)}if(a)for(var u=0;u<a.length;u++)(0,a[u])(i,t);n.recalculateRenderedStyle(t),t=e.collection()}};n.flushRenderedStyleQueue=function(){i(!0)},n.beforeRender(i,n.beforeRenderPriorities.eleCalcs)},onUpdateEleCalcs:function(e){(this.onUpdateEleCalcsFns=this.onUpdateEleCalcsFns||[]).push(e)},recalculateRenderedStyle:function(e,t){var n=function(e){return e._private.rstyle.cleanConnected},r=[],i=[];if(!this.destroyed){void 0===t&&(t=!0);for(var a=0;a<e.length;a++){var o=e[a],s=o._private,l=s.rstyle;!o.isEdge()||n(o.source())&&n(o.target())||(l.clean=!1),t&&l.clean||o.removed()||"none"!==o.pstyle("display").value&&("nodes"===s.group?i.push(o):r.push(o),l.clean=!0)}for(var u=0;u<i.length;u++){var c=i[u],h=c._private.rstyle,d=c.position();this.recalculateNodeLabelProjection(c),h.nodeX=d.x,h.nodeY=d.y,h.nodeW=c.pstyle("width").pfValue,h.nodeH=c.pstyle("height").pfValue}this.recalculateEdgeProjections(r);for(var p=0;p<r.length;p++){var g=r[p]._private,f=g.rstyle,v=g.rscratch;f.srcX=v.arrowStartX,f.srcY=v.arrowStartY,f.tgtX=v.arrowEndX,f.tgtY=v.arrowEndY,f.midX=v.midX,f.midY=v.midY,f.labelAngle=v.labelAngle,f.sourceLabelAngle=v.sourceLabelAngle,f.targetLabelAngle=v.targetLabelAngle}}}},bh={updateCachedGrabbedEles:function(){var e=this.cachedZSortedEles;if(e){e.drag=[],e.nondrag=[];for(var t=[],n=0;n<e.length;n++){var r=(i=e[n])._private.rscratch;i.grabbed()&&!i.isParent()?t.push(i):r.inDragLayer?e.drag.push(i):e.nondrag.push(i)}for(n=0;n<t.length;n++){var i=t[n];e.drag.push(i)}}},invalidateCachedZSortedEles:function(){this.cachedZSortedEles=null},getCachedZSortedEles:function(e){if(e||!this.cachedZSortedEles){var t=this.cy.mutableElements().toArray();t.sort(Jl),t.interactive=t.filter((function(e){return e.interactive()})),this.cachedZSortedEles=t,this.updateCachedGrabbedEles()}else t=this.cachedZSortedEles;return t}},xh={};[ih,ah,oh,lh,uh,hh,fh,mh,bh].forEach((function(e){Q(xh,e)}));var wh={getCachedImage:function(e,t,n){var r=this,i=r.imageCache=r.imageCache||{},a=i[e];if(a)return a.image.complete||a.image.addEventListener("load",n),a.image;var o=(a=i[e]=i[e]||{}).image=new Image;o.addEventListener("load",n),o.addEventListener("error",(function(){o.error=!0}));var s="data:";return e.substring(0,s.length).toLowerCase()===s||(t="null"===t?null:t,o.crossOrigin=t),o.src=e,o}},Eh={registerBinding:function(e,t,n,r){var i=Array.prototype.slice.apply(arguments,[1]),a=this.binder(e);return a.on.apply(a,i)},binder:function(e){var t=this,n=t.cy.window(),r=e===n||e===n.document||e===n.document.body||M(e);if(null==t.supportsPassiveEvents){var i=!1;try{var a=Object.defineProperty({},"passive",{get:function(){return i=!0,!0}});n.addEventListener("test",null,a)}catch(s){}t.supportsPassiveEvents=i}var o=function(n,i,a){var o=Array.prototype.slice.call(arguments);return r&&t.supportsPassiveEvents&&(o[2]={capture:null!=a&&a,passive:!1,once:!1}),t.bindings.push({target:e,args:o}),(e.addEventListener||e.on).apply(e,o),this};return{on:o,addEventListener:o,addListener:o,bind:o}},nodeIsDraggable:function(e){return e&&e.isNode()&&!e.locked()&&e.grabbable()},nodeIsGrabbable:function(e){return this.nodeIsDraggable(e)&&e.interactive()},load:function(){var e=this,t=e.cy.window(),n=function(e){return e.selected()},r=function(t,n,r,i){null==t&&(t=e.cy);for(var a=0;a<n.length;a++){var o=n[a];t.emit({originalEvent:r,type:o,position:i})}},i=function(e){return e.shiftKey||e.metaKey||e.ctrlKey},a=function(t,n){var r=!0;if(e.cy.hasCompoundNodes()&&t&&t.pannable()){for(var i=0;n&&i<n.length;i++)if((t=n[i]).isNode()&&t.isParent()&&!t.pannable()){r=!1;break}}else r=!0;return r},o=function(e){e[0]._private.grabbed=!0},s=function(e){e[0]._private.grabbed=!1},l=function(e){e[0]._private.rscratch.inDragLayer=!0},u=function(e){e[0]._private.rscratch.inDragLayer=!1},c=function(e){e[0]._private.rscratch.isGrabTarget=!0},h=function(e){e[0]._private.rscratch.isGrabTarget=!1},d=function(e,t){var n=t.addToList;n.has(e)||!e.grabbable()||e.locked()||(n.merge(e),o(e))},p=function(e,t){if(e.cy().hasCompoundNodes()&&(null!=t.inDragLayer||null!=t.addToList)){var n=e.descendants();t.inDragLayer&&(n.forEach(l),n.connectedEdges().forEach(l)),t.addToList&&d(n,t)}},g=function(t,n){n=n||{};var r=t.cy().hasCompoundNodes();n.inDragLayer&&(t.forEach(l),t.neighborhood().stdFilter((function(e){return!r||e.isEdge()})).forEach(l)),n.addToList&&t.forEach((function(e){d(e,n)})),p(t,n),y(t,{inDragLayer:n.inDragLayer}),e.updateCachedGrabbedEles()},f=g,v=function(t){t&&(e.getCachedZSortedEles().forEach((function(e){s(e),u(e),h(e)})),e.updateCachedGrabbedEles())},y=function(e,t){if((null!=t.inDragLayer||null!=t.addToList)&&e.cy().hasCompoundNodes()){var n=e.ancestors().orphans();if(!n.same(e)){var r=n.descendants().spawnSelf().merge(n).unmerge(e).unmerge(e.descendants()),i=r.connectedEdges();t.inDragLayer&&(i.forEach(l),r.forEach(l)),t.addToList&&r.forEach((function(e){d(e,t)}))}}},m=function(){null!=document.activeElement&&null!=document.activeElement.blur&&document.activeElement.blur()},b="undefined"!=typeof MutationObserver,x="undefined"!=typeof ResizeObserver;b?(e.removeObserver=new MutationObserver((function(t){for(var n=0;n<t.length;n++){var r=t[n].removedNodes;if(r)for(var i=0;i<r.length;i++)if(r[i]===e.container){e.destroy();break}}})),e.container.parentNode&&e.removeObserver.observe(e.container.parentNode,{childList:!0})):e.registerBinding(e.container,"DOMNodeRemoved",(function(t){e.destroy()}));var w=Qe((function(){e.cy.resize()}),100);b&&(e.styleObserver=new MutationObserver(w),e.styleObserver.observe(e.container,{attributes:!0})),e.registerBinding(t,"resize",w),x&&(e.resizeObserver=new ResizeObserver(w),e.resizeObserver.observe(e.container));var E=function(e,t){for(;null!=e;)t(e),e=e.parentNode},T=function(){e.invalidateContainerClientCoordsCache()};E(e.container,(function(t){e.registerBinding(t,"transitionend",T),e.registerBinding(t,"animationend",T),e.registerBinding(t,"scroll",T)})),e.registerBinding(e.container,"contextmenu",(function(e){e.preventDefault()}));var D,C,N,A=function(){return 0!==e.selection[4]},L=function(t){for(var n=e.findContainerClientCoords(),r=n[0],i=n[1],a=n[2],o=n[3],s=t.touches?t.touches:[t],l=!1,u=0;u<s.length;u++){var c=s[u];if(r<=c.clientX&&c.clientX<=r+a&&i<=c.clientY&&c.clientY<=i+o){l=!0;break}}if(!l)return!1;for(var h=e.container,d=t.target.parentNode,p=!1;d;){if(d===h){p=!0;break}d=d.parentNode}return!!p};e.registerBinding(e.container,"mousedown",(function(t){if(L(t)){t.preventDefault(),m(),e.hoverData.capture=!0,e.hoverData.which=t.which;var n=e.cy,i=[t.clientX,t.clientY],a=e.projectIntoViewport(i[0],i[1]),o=e.selection,s=e.findNearestElements(a[0],a[1],!0,!1),l=s[0],u=e.dragData.possibleDragElements;e.hoverData.mdownPos=a,e.hoverData.mdownGPos=i;var h=function(){e.hoverData.tapholdCancelled=!1,clearTimeout(e.hoverData.tapholdTimeout),e.hoverData.tapholdTimeout=setTimeout((function(){if(!e.hoverData.tapholdCancelled){var r=e.hoverData.down;r?r.emit({originalEvent:t,type:"taphold",position:{x:a[0],y:a[1]}}):n.emit({originalEvent:t,type:"taphold",position:{x:a[0],y:a[1]}})}}),e.tapholdDuration)};if(3==t.which){e.hoverData.cxtStarted=!0;var d={originalEvent:t,type:"cxttapstart",position:{x:a[0],y:a[1]}};l?(l.activate(),l.emit(d),e.hoverData.down=l):n.emit(d),e.hoverData.downTime=(new Date).getTime(),e.hoverData.cxtDragged=!1}else if(1==t.which){if(l&&l.activate(),null!=l&&e.nodeIsGrabbable(l)){var p=function(e){return{originalEvent:t,type:e,position:{x:a[0],y:a[1]}}},v=function(e){e.emit(p("grab"))};if(c(l),l.selected()){u=e.dragData.possibleDragElements=n.collection();var y=n.$((function(t){return t.isNode()&&t.selected()&&e.nodeIsGrabbable(t)}));g(y,{addToList:u}),l.emit(p("grabon")),y.forEach(v)}else u=e.dragData.possibleDragElements=n.collection(),f(l,{addToList:u}),l.emit(p("grabon")).emit(p("grab"));e.redrawHint("eles",!0),e.redrawHint("drag",!0)}e.hoverData.down=l,e.hoverData.downs=s,e.hoverData.downTime=(new Date).getTime(),r(l,["mousedown","tapstart","vmousedown"],t,{x:a[0],y:a[1]}),null==l?(o[4]=1,e.data.bgActivePosistion={x:a[0],y:a[1]},e.redrawHint("select",!0),e.redraw()):l.pannable()&&(o[4]=1),h()}o[0]=o[2]=a[0],o[1]=o[3]=a[1]}}),!1),e.registerBinding(t,"mousemove",(function(t){if(e.hoverData.capture||L(t)){var n=!1,o=e.cy,s=o.zoom(),l=[t.clientX,t.clientY],u=e.projectIntoViewport(l[0],l[1]),c=e.hoverData.mdownPos,h=e.hoverData.mdownGPos,d=e.selection,p=null;e.hoverData.draggingEles||e.hoverData.dragging||e.hoverData.selecting||(p=e.findNearestElement(u[0],u[1],!0,!1));var f,y=e.hoverData.last,m=e.hoverData.down,b=[u[0]-d[2],u[1]-d[3]],x=e.dragData.possibleDragElements;if(h){var w=l[0]-h[0],E=w*w,T=l[1]-h[1],D=E+T*T;e.hoverData.isOverThresholdDrag=f=D>=e.desktopTapThreshold2}var C=i(t);f&&(e.hoverData.tapholdCancelled=!0);var N=function(){var t=e.hoverData.dragDelta=e.hoverData.dragDelta||[];0===t.length?(t.push(b[0]),t.push(b[1])):(t[0]+=b[0],t[1]+=b[1])};n=!0,r(p,["mousemove","vmousemove","tapdrag"],t,{x:u[0],y:u[1]});var A=function(){e.data.bgActivePosistion=void 0,e.hoverData.selecting||o.emit({originalEvent:t,type:"boxstart",position:{x:u[0],y:u[1]}}),d[4]=1,e.hoverData.selecting=!0,e.redrawHint("select",!0),e.redraw()};if(3===e.hoverData.which){if(f){var S={originalEvent:t,type:"cxtdrag",position:{x:u[0],y:u[1]}};m?m.emit(S):o.emit(S),e.hoverData.cxtDragged=!0,e.hoverData.cxtOver&&p===e.hoverData.cxtOver||(e.hoverData.cxtOver&&e.hoverData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:u[0],y:u[1]}}),e.hoverData.cxtOver=p,p&&p.emit({originalEvent:t,type:"cxtdragover",position:{x:u[0],y:u[1]}}))}}else if(e.hoverData.dragging){if(n=!0,o.panningEnabled()&&o.userPanningEnabled()){var O;if(e.hoverData.justStartedPan){var I=e.hoverData.mdownPos;O={x:(u[0]-I[0])*s,y:(u[1]-I[1])*s},e.hoverData.justStartedPan=!1}else O={x:b[0]*s,y:b[1]*s};o.panBy(O),o.emit("dragpan"),e.hoverData.dragged=!0}u=e.projectIntoViewport(t.clientX,t.clientY)}else if(1!=d[4]||null!=m&&!m.pannable()){if(m&&m.pannable()&&m.active()&&m.unactivate(),m&&m.grabbed()||p==y||(y&&r(y,["mouseout","tapdragout"],t,{x:u[0],y:u[1]}),p&&r(p,["mouseover","tapdragover"],t,{x:u[0],y:u[1]}),e.hoverData.last=p),m)if(f){if(o.boxSelectionEnabled()&&C)m&&m.grabbed()&&(v(x),m.emit("freeon"),x.emit("free"),e.dragData.didDrag&&(m.emit("dragfreeon"),x.emit("dragfree"))),A();else if(m&&m.grabbed()&&e.nodeIsDraggable(m)){var k=!e.dragData.didDrag;k&&e.redrawHint("eles",!0),e.dragData.didDrag=!0,e.hoverData.draggingEles||g(x,{inDragLayer:!0});var M={x:0,y:0};if(_(b[0])&&_(b[1])&&(M.x+=b[0],M.y+=b[1],k)){var P=e.hoverData.dragDelta;P&&_(P[0])&&_(P[1])&&(M.x+=P[0],M.y+=P[1])}e.hoverData.draggingEles=!0,x.silentShift(M).emit("position drag"),e.redrawHint("drag",!0),e.redraw()}}else N();n=!0}else f&&(e.hoverData.dragging||!o.boxSelectionEnabled()||!C&&o.panningEnabled()&&o.userPanningEnabled()?!e.hoverData.selecting&&o.panningEnabled()&&o.userPanningEnabled()&&a(m,e.hoverData.downs)&&(e.hoverData.dragging=!0,e.hoverData.justStartedPan=!0,d[4]=0,e.data.bgActivePosistion=pn(c),e.redrawHint("select",!0),e.redraw()):A(),m&&m.pannable()&&m.active()&&m.unactivate());return d[2]=u[0],d[3]=u[1],n?(t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),!1):void 0}}),!1),e.registerBinding(t,"mouseup",(function(t){if(e.hoverData.capture){e.hoverData.capture=!1;var a=e.cy,o=e.projectIntoViewport(t.clientX,t.clientY),s=e.selection,l=e.findNearestElement(o[0],o[1],!0,!1),u=e.dragData.possibleDragElements,c=e.hoverData.down,h=i(t);if(e.data.bgActivePosistion&&(e.redrawHint("select",!0),e.redraw()),e.hoverData.tapholdCancelled=!0,e.data.bgActivePosistion=void 0,c&&c.unactivate(),3===e.hoverData.which){var d={originalEvent:t,type:"cxttapend",position:{x:o[0],y:o[1]}};if(c?c.emit(d):a.emit(d),!e.hoverData.cxtDragged){var p={originalEvent:t,type:"cxttap",position:{x:o[0],y:o[1]}};c?c.emit(p):a.emit(p)}e.hoverData.cxtDragged=!1,e.hoverData.which=null}else if(1===e.hoverData.which){if(r(l,["mouseup","tapend","vmouseup"],t,{x:o[0],y:o[1]}),e.dragData.didDrag||e.hoverData.dragged||e.hoverData.selecting||e.hoverData.isOverThresholdDrag||(r(c,["click","tap","vclick"],t,{x:o[0],y:o[1]}),C=!1,t.timeStamp-N<=a.multiClickDebounceTime()?(D&&clearTimeout(D),C=!0,N=null,r(c,["dblclick","dbltap","vdblclick"],t,{x:o[0],y:o[1]})):(D=setTimeout((function(){C||r(c,["oneclick","onetap","voneclick"],t,{x:o[0],y:o[1]})}),a.multiClickDebounceTime()),N=t.timeStamp)),null!=c||e.dragData.didDrag||e.hoverData.selecting||e.hoverData.dragged||i(t)||(a.$(n).unselect(["tapunselect"]),u.length>0&&e.redrawHint("eles",!0),e.dragData.possibleDragElements=u=a.collection()),l!=c||e.dragData.didDrag||e.hoverData.selecting||null!=l&&l._private.selectable&&(e.hoverData.dragging||("additive"===a.selectionType()||h?l.selected()?l.unselect(["tapunselect"]):l.select(["tapselect"]):h||(a.$(n).unmerge(l).unselect(["tapunselect"]),l.select(["tapselect"]))),e.redrawHint("eles",!0)),e.hoverData.selecting){var g=a.collection(e.getAllInBox(s[0],s[1],s[2],s[3]));e.redrawHint("select",!0),g.length>0&&e.redrawHint("eles",!0),a.emit({type:"boxend",originalEvent:t,position:{x:o[0],y:o[1]}});var f=function(e){return e.selectable()&&!e.selected()};"additive"===a.selectionType()||h||a.$(n).unmerge(g).unselect(),g.emit("box").stdFilter(f).select().emit("boxselect"),e.redraw()}if(e.hoverData.dragging&&(e.hoverData.dragging=!1,e.redrawHint("select",!0),e.redrawHint("eles",!0),e.redraw()),!s[4]){e.redrawHint("drag",!0),e.redrawHint("eles",!0);var y=c&&c.grabbed();v(u),y&&(c.emit("freeon"),u.emit("free"),e.dragData.didDrag&&(c.emit("dragfreeon"),u.emit("dragfree")))}}s[4]=0,e.hoverData.down=null,e.hoverData.cxtStarted=!1,e.hoverData.draggingEles=!1,e.hoverData.selecting=!1,e.hoverData.isOverThresholdDrag=!1,e.dragData.didDrag=!1,e.hoverData.dragged=!1,e.hoverData.dragDelta=[],e.hoverData.mdownPos=null,e.hoverData.mdownGPos=null}}),!1);var S,O,I,k,M,P,R,B,F,z,G,Y,X,V=function(t){if(!e.scrollingPage){var n=e.cy,r=n.zoom(),i=n.pan(),a=e.projectIntoViewport(t.clientX,t.clientY),o=[a[0]*r+i.x,a[1]*r+i.y];if(e.hoverData.draggingEles||e.hoverData.dragging||e.hoverData.cxtStarted||A())t.preventDefault();else if(n.panningEnabled()&&n.userPanningEnabled()&&n.zoomingEnabled()&&n.userZoomingEnabled()){var s;t.preventDefault(),e.data.wheelZooming=!0,clearTimeout(e.data.wheelTimeout),e.data.wheelTimeout=setTimeout((function(){e.data.wheelZooming=!1,e.redrawHint("eles",!0),e.redraw()}),150),s=null!=t.deltaY?t.deltaY/-250:null!=t.wheelDeltaY?t.wheelDeltaY/1e3:t.wheelDelta/1e3,s*=e.wheelSensitivity,1===t.deltaMode&&(s*=33);var l=n.zoom()*Math.pow(10,s);"gesturechange"===t.type&&(l=e.gestureStartZoom*t.scale),n.zoom({level:l,renderedPosition:{x:o[0],y:o[1]}}),n.emit("gesturechange"===t.type?"pinchzoom":"scrollzoom")}}};e.registerBinding(e.container,"wheel",V,!0),e.registerBinding(t,"scroll",(function(t){e.scrollingPage=!0,clearTimeout(e.scrollingPageTimeout),e.scrollingPageTimeout=setTimeout((function(){e.scrollingPage=!1}),250)}),!0),e.registerBinding(e.container,"gesturestart",(function(t){e.gestureStartZoom=e.cy.zoom(),e.hasTouchStarted||t.preventDefault()}),!0),e.registerBinding(e.container,"gesturechange",(function(t){e.hasTouchStarted||V(t)}),!0),e.registerBinding(e.container,"mouseout",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseout",position:{x:n[0],y:n[1]}})}),!1),e.registerBinding(e.container,"mouseover",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseover",position:{x:n[0],y:n[1]}})}),!1);var U,j,H,q,W,$,K,Z=function(e,t,n,r){return Math.sqrt((n-e)*(n-e)+(r-t)*(r-t))},Q=function(e,t,n,r){return(n-e)*(n-e)+(r-t)*(r-t)};if(e.registerBinding(e.container,"touchstart",U=function(t){if(e.hasTouchStarted=!0,L(t)){m(),e.touchData.capture=!0,e.data.bgActivePosistion=void 0;var n=e.cy,i=e.touchData.now,a=e.touchData.earlier;if(t.touches[0]){var o=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);i[0]=o[0],i[1]=o[1]}if(t.touches[1]&&(o=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY),i[2]=o[0],i[3]=o[1]),t.touches[2]&&(o=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY),i[4]=o[0],i[5]=o[1]),t.touches[1]){e.touchData.singleTouchMoved=!0,v(e.dragData.touchDragEles);var s=e.findContainerClientCoords();F=s[0],z=s[1],G=s[2],Y=s[3],S=t.touches[0].clientX-F,O=t.touches[0].clientY-z,I=t.touches[1].clientX-F,k=t.touches[1].clientY-z,X=0<=S&&S<=G&&0<=I&&I<=G&&0<=O&&O<=Y&&0<=k&&k<=Y;var l=n.pan(),u=n.zoom();M=Z(S,O,I,k),P=Q(S,O,I,k),B=[((R=[(S+I)/2,(O+k)/2])[0]-l.x)/u,(R[1]-l.y)/u];var h=200;if(P<h*h&&!t.touches[2]){var d=e.findNearestElement(i[0],i[1],!0,!0),p=e.findNearestElement(i[2],i[3],!0,!0);return d&&d.isNode()?(d.activate().emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start=d):p&&p.isNode()?(p.activate().emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start=p):n.emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!0,e.touchData.cxtDragged=!1,e.data.bgActivePosistion=void 0,void e.redraw()}}if(t.touches[2])n.boxSelectionEnabled()&&t.preventDefault();else if(t.touches[1]);else if(t.touches[0]){var y=e.findNearestElements(i[0],i[1],!0,!0),b=y[0];if(null!=b&&(b.activate(),e.touchData.start=b,e.touchData.starts=y,e.nodeIsGrabbable(b))){var x=e.dragData.touchDragEles=n.collection(),w=null;e.redrawHint("eles",!0),e.redrawHint("drag",!0),b.selected()?(w=n.$((function(t){return t.selected()&&e.nodeIsGrabbable(t)})),g(w,{addToList:x})):f(b,{addToList:x}),c(b);var E=function(e){return{originalEvent:t,type:e,position:{x:i[0],y:i[1]}}};b.emit(E("grabon")),w?w.forEach((function(e){e.emit(E("grab"))})):b.emit(E("grab"))}r(b,["touchstart","tapstart","vmousedown"],t,{x:i[0],y:i[1]}),null==b&&(e.data.bgActivePosistion={x:o[0],y:o[1]},e.redrawHint("select",!0),e.redraw()),e.touchData.singleTouchMoved=!1,e.touchData.singleTouchStartTime=+new Date,clearTimeout(e.touchData.tapholdTimeout),e.touchData.tapholdTimeout=setTimeout((function(){!1!==e.touchData.singleTouchMoved||e.pinching||e.touchData.selecting||r(e.touchData.start,["taphold"],t,{x:i[0],y:i[1]})}),e.tapholdDuration)}if(t.touches.length>=1){for(var T=e.touchData.startPosition=[null,null,null,null,null,null],_=0;_<i.length;_++)T[_]=a[_]=i[_];var D=t.touches[0];e.touchData.startGPosition=[D.clientX,D.clientY]}}},!1),e.registerBinding(window,"touchmove",j=function(t){var n=e.touchData.capture;if(n||L(t)){var i=e.selection,o=e.cy,s=e.touchData.now,l=e.touchData.earlier,u=o.zoom();if(t.touches[0]){var c=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);s[0]=c[0],s[1]=c[1]}t.touches[1]&&(c=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY),s[2]=c[0],s[3]=c[1]),t.touches[2]&&(c=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY),s[4]=c[0],s[5]=c[1]);var h,d=e.touchData.startGPosition;if(n&&t.touches[0]&&d){for(var p=[],f=0;f<s.length;f++)p[f]=s[f]-l[f];var y=t.touches[0].clientX-d[0],m=y*y,b=t.touches[0].clientY-d[1];h=m+b*b>=e.touchTapThreshold2}if(n&&e.touchData.cxt){t.preventDefault();var x=t.touches[0].clientX-F,w=t.touches[0].clientY-z,E=t.touches[1].clientX-F,T=t.touches[1].clientY-z,D=Q(x,w,E,T),C=150,N=1.5;if(D/P>=N*N||D>=C*C){e.touchData.cxt=!1,e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var A={originalEvent:t,type:"cxttapend",position:{x:s[0],y:s[1]}};e.touchData.start?(e.touchData.start.unactivate().emit(A),e.touchData.start=null):o.emit(A)}}if(n&&e.touchData.cxt){A={originalEvent:t,type:"cxtdrag",position:{x:s[0],y:s[1]}},e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.touchData.start?e.touchData.start.emit(A):o.emit(A),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxtDragged=!0;var R=e.findNearestElement(s[0],s[1],!0,!0);e.touchData.cxtOver&&R===e.touchData.cxtOver||(e.touchData.cxtOver&&e.touchData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:s[0],y:s[1]}}),e.touchData.cxtOver=R,R&&R.emit({originalEvent:t,type:"cxtdragover",position:{x:s[0],y:s[1]}}))}else if(n&&t.touches[2]&&o.boxSelectionEnabled())t.preventDefault(),e.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,e.touchData.selecting||o.emit({originalEvent:t,type:"boxstart",position:{x:s[0],y:s[1]}}),e.touchData.selecting=!0,e.touchData.didSelect=!0,i[4]=1,i&&0!==i.length&&void 0!==i[0]?(i[2]=(s[0]+s[2]+s[4])/3,i[3]=(s[1]+s[3]+s[5])/3):(i[0]=(s[0]+s[2]+s[4])/3,i[1]=(s[1]+s[3]+s[5])/3,i[2]=(s[0]+s[2]+s[4])/3+1,i[3]=(s[1]+s[3]+s[5])/3+1),e.redrawHint("select",!0),e.redraw();else if(n&&t.touches[1]&&!e.touchData.didSelect&&o.zoomingEnabled()&&o.panningEnabled()&&o.userZoomingEnabled()&&o.userPanningEnabled()){if(t.preventDefault(),e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),ne=e.dragData.touchDragEles){e.redrawHint("drag",!0);for(var G=0;G<ne.length;G++){var Y=ne[G]._private;Y.grabbed=!1,Y.rscratch.inDragLayer=!1}}var V=e.touchData.start,U=(x=t.touches[0].clientX-F,w=t.touches[0].clientY-z,E=t.touches[1].clientX-F,T=t.touches[1].clientY-z,Z(x,w,E,T)),j=U/M;if(X){var H=(x-S+(E-I))/2,q=(w-O+(T-k))/2,W=o.zoom(),$=W*j,K=o.pan(),J=B[0]*W+K.x,ee=B[1]*W+K.y,te={x:-$/W*(J-K.x-H)+J,y:-$/W*(ee-K.y-q)+ee};if(V&&V.active()){var ne=e.dragData.touchDragEles;v(ne),e.redrawHint("drag",!0),e.redrawHint("eles",!0),V.unactivate().emit("freeon"),ne.emit("free"),e.dragData.didDrag&&(V.emit("dragfreeon"),ne.emit("dragfree"))}o.viewport({zoom:$,pan:te,cancelOnFailedZoom:!0}),o.emit("pinchzoom"),M=U,S=x,O=w,I=E,k=T,e.pinching=!0}t.touches[0]&&(c=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY),s[0]=c[0],s[1]=c[1]),t.touches[1]&&(c=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY),s[2]=c[0],s[3]=c[1]),t.touches[2]&&(c=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY),s[4]=c[0],s[5]=c[1])}else if(t.touches[0]&&!e.touchData.didSelect){var re=e.touchData.start,ie=e.touchData.last;if(e.hoverData.draggingEles||e.swipePanning||(R=e.findNearestElement(s[0],s[1],!0,!0)),n&&null!=re&&t.preventDefault(),n&&null!=re&&e.nodeIsDraggable(re))if(h){ne=e.dragData.touchDragEles;var ae=!e.dragData.didDrag;ae&&g(ne,{inDragLayer:!0}),e.dragData.didDrag=!0;var oe={x:0,y:0};_(p[0])&&_(p[1])&&(oe.x+=p[0],oe.y+=p[1],ae&&(e.redrawHint("eles",!0),(se=e.touchData.dragDelta)&&_(se[0])&&_(se[1])&&(oe.x+=se[0],oe.y+=se[1]))),e.hoverData.draggingEles=!0,ne.silentShift(oe).emit("position drag"),e.redrawHint("drag",!0),e.touchData.startPosition[0]==l[0]&&e.touchData.startPosition[1]==l[1]&&e.redrawHint("eles",!0),e.redraw()}else{var se;0===(se=e.touchData.dragDelta=e.touchData.dragDelta||[]).length?(se.push(p[0]),se.push(p[1])):(se[0]+=p[0],se[1]+=p[1])}if(r(re||R,["touchmove","tapdrag","vmousemove"],t,{x:s[0],y:s[1]}),re&&re.grabbed()||R==ie||(ie&&ie.emit({originalEvent:t,type:"tapdragout",position:{x:s[0],y:s[1]}}),R&&R.emit({originalEvent:t,type:"tapdragover",position:{x:s[0],y:s[1]}})),e.touchData.last=R,n)for(G=0;G<s.length;G++)s[G]&&e.touchData.startPosition[G]&&h&&(e.touchData.singleTouchMoved=!0);n&&(null==re||re.pannable())&&o.panningEnabled()&&o.userPanningEnabled()&&(a(re,e.touchData.starts)&&(t.preventDefault(),e.data.bgActivePosistion||(e.data.bgActivePosistion=pn(e.touchData.startPosition)),e.swipePanning?(o.panBy({x:p[0]*u,y:p[1]*u}),o.emit("dragpan")):h&&(e.swipePanning=!0,o.panBy({x:y*u,y:b*u}),o.emit("dragpan"),re&&(re.unactivate(),e.redrawHint("select",!0),e.touchData.start=null))),c=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY),s[0]=c[0],s[1]=c[1])}for(f=0;f<s.length;f++)l[f]=s[f];n&&t.touches.length>0&&!e.hoverData.draggingEles&&!e.swipePanning&&null!=e.data.bgActivePosistion&&(e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.redraw())}},!1),e.registerBinding(t,"touchcancel",H=function(t){var n=e.touchData.start;e.touchData.capture=!1,n&&n.unactivate()}),e.registerBinding(t,"touchend",q=function(t){var i=e.touchData.start;if(e.touchData.capture){0===t.touches.length&&(e.touchData.capture=!1),t.preventDefault();var a=e.selection;e.swipePanning=!1,e.hoverData.draggingEles=!1;var o,s=e.cy,l=s.zoom(),u=e.touchData.now,c=e.touchData.earlier;if(t.touches[0]){var h=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);u[0]=h[0],u[1]=h[1]}if(t.touches[1]&&(h=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY),u[2]=h[0],u[3]=h[1]),t.touches[2]&&(h=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY),u[4]=h[0],u[5]=h[1]),i&&i.unactivate(),e.touchData.cxt){if(o={originalEvent:t,type:"cxttapend",position:{x:u[0],y:u[1]}},i?i.emit(o):s.emit(o),!e.touchData.cxtDragged){var d={originalEvent:t,type:"cxttap",position:{x:u[0],y:u[1]}};i?i.emit(d):s.emit(d)}return e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!1,e.touchData.start=null,void e.redraw()}if(!t.touches[2]&&s.boxSelectionEnabled()&&e.touchData.selecting){e.touchData.selecting=!1;var p=s.collection(e.getAllInBox(a[0],a[1],a[2],a[3]));a[0]=void 0,a[1]=void 0,a[2]=void 0,a[3]=void 0,a[4]=0,e.redrawHint("select",!0),s.emit({type:"boxend",originalEvent:t,position:{x:u[0],y:u[1]}});var g=function(e){return e.selectable()&&!e.selected()};p.emit("box").stdFilter(g).select().emit("boxselect"),p.nonempty()&&e.redrawHint("eles",!0),e.redraw()}if(null!=i&&i.unactivate(),t.touches[2])e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);else if(t.touches[1]);else if(t.touches[0]);else if(!t.touches[0]){e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var f=e.dragData.touchDragEles;if(null!=i){var y=i._private.grabbed;v(f),e.redrawHint("drag",!0),e.redrawHint("eles",!0),y&&(i.emit("freeon"),f.emit("free"),e.dragData.didDrag&&(i.emit("dragfreeon"),f.emit("dragfree"))),r(i,["touchend","tapend","vmouseup","tapdragout"],t,{x:u[0],y:u[1]}),i.unactivate(),e.touchData.start=null}else{var m=e.findNearestElement(u[0],u[1],!0,!0);r(m,["touchend","tapend","vmouseup","tapdragout"],t,{x:u[0],y:u[1]})}var b=e.touchData.startPosition[0]-u[0],x=b*b,w=e.touchData.startPosition[1]-u[1],E=(x+w*w)*l*l;e.touchData.singleTouchMoved||(i||s.$(":selected").unselect(["tapunselect"]),r(i,["tap","vclick"],t,{x:u[0],y:u[1]}),W=!1,t.timeStamp-K<=s.multiClickDebounceTime()?($&&clearTimeout($),W=!0,K=null,r(i,["dbltap","vdblclick"],t,{x:u[0],y:u[1]})):($=setTimeout((function(){W||r(i,["onetap","voneclick"],t,{x:u[0],y:u[1]})}),s.multiClickDebounceTime()),K=t.timeStamp)),null!=i&&!e.dragData.didDrag&&i._private.selectable&&E<e.touchTapThreshold2&&!e.pinching&&("single"===s.selectionType()?(s.$(n).unmerge(i).unselect(["tapunselect"]),i.select(["tapselect"])):i.selected()?i.unselect(["tapunselect"]):i.select(["tapselect"]),e.redrawHint("eles",!0)),e.touchData.singleTouchMoved=!0}for(var T=0;T<u.length;T++)c[T]=u[T];e.dragData.didDrag=!1,0===t.touches.length&&(e.touchData.dragDelta=[],e.touchData.startPosition=[null,null,null,null,null,null],e.touchData.startGPosition=null,e.touchData.didSelect=!1),t.touches.length<2&&(1===t.touches.length&&(e.touchData.startGPosition=[t.touches[0].clientX,t.touches[0].clientY]),e.pinching=!1,e.redrawHint("eles",!0),e.redraw())}},!1),"undefined"==typeof TouchEvent){var J=[],ee=function(e){return{clientX:e.clientX,clientY:e.clientY,force:1,identifier:e.pointerId,pageX:e.pageX,pageY:e.pageY,radiusX:e.width/2,radiusY:e.height/2,screenX:e.screenX,screenY:e.screenY,target:e.target}},te=function(e){return{event:e,touch:ee(e)}},ne=function(e){J.push(te(e))},re=function(e){for(var t=0;t<J.length;t++)if(J[t].event.pointerId===e.pointerId)return void J.splice(t,1)},ie=function(e){var t=J.filter((function(t){return t.event.pointerId===e.pointerId}))[0];t.event=e,t.touch=ee(e)},ae=function(e){e.touches=J.map((function(e){return e.touch}))},oe=function(e){return"mouse"===e.pointerType||4===e.pointerType};e.registerBinding(e.container,"pointerdown",(function(e){oe(e)||(e.preventDefault(),ne(e),ae(e),U(e))})),e.registerBinding(e.container,"pointerup",(function(e){oe(e)||(re(e),ae(e),q(e))})),e.registerBinding(e.container,"pointercancel",(function(e){oe(e)||(re(e),ae(e),H(e))})),e.registerBinding(e.container,"pointermove",(function(e){oe(e)||(e.preventDefault(),ie(e),ae(e),j(e))}))}}},Th={generatePolygon:function(e,t){return this.nodeShapes[e]={renderer:this,name:e,points:t,draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl("polygon",e,t,n,r,i,this.points)},intersectLine:function(e,t,n,r,i,a,o){return ir(i,a,this.points,e,t,n/2,r/2,o)},checkPoint:function(e,t,n,r,i,a,o){return $n(e,t,this.points,a,o,r,i,[0,-1],n)}}},generateEllipse:function(){return this.nodeShapes.ellipse={renderer:this,name:"ellipse",draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,r,i,a,o){return Jn(i,a,e,t,n/2+o,r/2+o)},checkPoint:function(e,t,n,r,i,a,o){return er(e,t,r,i,a,o,n)}}},generateRoundPolygon:function(e,t){for(var n=new Array(2*t.length),r=0;r<t.length/2;r++){var i=2*r,a=void 0;a=r<t.length/2-1?2*(r+1):0,n[4*r]=t[i],n[4*r+1]=t[i+1];var o=t[a]-t[i],s=t[a+1]-t[i+1],l=Math.sqrt(o*o+s*s);n[4*r+2]=o/l,n[4*r+3]=s/l}return this.nodeShapes[e]={renderer:this,name:e,points:n,draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl("round-polygon",e,t,n,r,i,this.points)},intersectLine:function(e,t,n,r,i,a,o){return ar(i,a,this.points,e,t,n,r)},checkPoint:function(e,t,n,r,i,a,o){return Kn(e,t,this.points,a,o,r,i)}}},generateRoundRectangle:function(){return this.nodeShapes["round-rectangle"]=this.nodeShapes.roundrectangle={renderer:this,name:"round-rectangle",points:sr(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,r,i,a,o){return Yn(i,a,e,t,n,r,o)},checkPoint:function(e,t,n,r,i,a,o){var s=cr(r,i),l=2*s;return!!($n(e,t,this.points,a,o,r,i-l,[0,-1],n)||$n(e,t,this.points,a,o,r-l,i,[0,-1],n)||er(e,t,l,l,a-r/2+s,o-i/2+s,n)||er(e,t,l,l,a+r/2-s,o-i/2+s,n)||er(e,t,l,l,a+r/2-s,o+i/2-s,n)||er(e,t,l,l,a-r/2+s,o+i/2-s,n))}}},generateCutRectangle:function(){return this.nodeShapes["cut-rectangle"]=this.nodeShapes.cutrectangle={renderer:this,name:"cut-rectangle",cornerLength:dr(),points:sr(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},generateCutTrianglePts:function(e,t,n,r){var i=this.cornerLength,a=t/2,o=e/2,s=n-o,l=n+o,u=r-a,c=r+a;return{topLeft:[s,u+i,s+i,u,s+i,u+i],topRight:[l-i,u,l,u+i,l-i,u+i],bottomRight:[l,c-i,l-i,c,l-i,c-i],bottomLeft:[s+i,c,s,c-i,s+i,c-i]}},intersectLine:function(e,t,n,r,i,a,o){var s=this.generateCutTrianglePts(n+2*o,r+2*o,e,t),l=[].concat.apply([],[s.topLeft.splice(0,4),s.topRight.splice(0,4),s.bottomRight.splice(0,4),s.bottomLeft.splice(0,4)]);return ir(i,a,l,e,t)},checkPoint:function(e,t,n,r,i,a,o){if($n(e,t,this.points,a,o,r,i-2*this.cornerLength,[0,-1],n))return!0;if($n(e,t,this.points,a,o,r-2*this.cornerLength,i,[0,-1],n))return!0;var s=this.generateCutTrianglePts(r,i,a,o);return Wn(e,t,s.topLeft)||Wn(e,t,s.topRight)||Wn(e,t,s.bottomRight)||Wn(e,t,s.bottomLeft)}}},generateBarrel:function(){return this.nodeShapes.barrel={renderer:this,name:"barrel",points:sr(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,r,i,a,o){var s=.15,l=.5,u=.85,c=this.generateBarrelBezierPts(n+2*o,r+2*o,e,t),h=function(e){var t=Cn({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},s),n=Cn({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},l),r=Cn({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},u);return[e[0],e[1],t.x,t.y,n.x,n.y,r.x,r.y,e[4],e[5]]},d=[].concat(h(c.topLeft),h(c.topRight),h(c.bottomRight),h(c.bottomLeft));return ir(i,a,d,e,t)},generateBarrelBezierPts:function(e,t,n,r){var i=t/2,a=e/2,o=n-a,s=n+a,l=r-i,u=r+i,c=gr(e,t),h=c.heightOffset,d=c.widthOffset,p=c.ctrlPtOffsetPct*e,g={topLeft:[o,l+h,o+p,l,o+d,l],topRight:[s-d,l,s-p,l,s,l+h],bottomRight:[s,u-h,s-p,u,s-d,u],bottomLeft:[o+d,u,o+p,u,o,u-h]};return g.topLeft.isTop=!0,g.topRight.isTop=!0,g.bottomLeft.isBottom=!0,g.bottomRight.isBottom=!0,g},checkPoint:function(e,t,n,r,i,a,o){var s=gr(r,i),l=s.heightOffset,u=s.widthOffset;if($n(e,t,this.points,a,o,r,i-2*l,[0,-1],n))return!0;if($n(e,t,this.points,a,o,r-2*u,i,[0,-1],n))return!0;for(var c=this.generateBarrelBezierPts(r,i,a,o),h=function(e,t,n){var r=n[4],i=n[2],a=n[0],o=n[5],s=n[1],l=Math.min(r,a),u=Math.max(r,a),c=Math.min(o,s),h=Math.max(o,s);if(l<=e&&e<=u&&c<=t&&t<=h){var d=pr(r,i,a),p=Un(d[0],d[1],d[2],e).filter((function(e){return 0<=e&&e<=1}));if(p.length>0)return p[0]}return null},d=Object.keys(c),p=0;p<d.length;p++){var g=c[d[p]],f=h(e,t,g);if(null!=f){var v=g[5],y=g[3],m=g[1],b=Dn(v,y,m,f);if(g.isTop&&b<=t)return!0;if(g.isBottom&&t<=b)return!0}}return!1}}},generateBottomRoundrectangle:function(){return this.nodeShapes["bottom-round-rectangle"]=this.nodeShapes.bottomroundrectangle={renderer:this,name:"bottom-round-rectangle",points:sr(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,r,i,a,o){var s=t-(r/2+o),l=rr(i,a,e,t,e-(n/2+o),s,e+(n/2+o),s,!1);return l.length>0?l:Yn(i,a,e,t,n,r,o)},checkPoint:function(e,t,n,r,i,a,o){var s=cr(r,i),l=2*s;if($n(e,t,this.points,a,o,r,i-l,[0,-1],n))return!0;if($n(e,t,this.points,a,o,r-l,i,[0,-1],n))return!0;var u=r/2+2*n,c=i/2+2*n;return!!Wn(e,t,[a-u,o-c,a-u,o,a+u,o,a+u,o-c])||!!er(e,t,l,l,a+r/2-s,o+i/2-s,n)||!!er(e,t,l,l,a-r/2+s,o+i/2-s,n)}}},registerNodeShapes:function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",sr(3,0)),this.generateRoundPolygon("round-triangle",sr(3,0)),this.generatePolygon("rectangle",sr(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();var n=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",n),this.generateRoundPolygon("round-diamond",n),this.generatePolygon("pentagon",sr(5,0)),this.generateRoundPolygon("round-pentagon",sr(5,0)),this.generatePolygon("hexagon",sr(6,0)),this.generateRoundPolygon("round-hexagon",sr(6,0)),this.generatePolygon("heptagon",sr(7,0)),this.generateRoundPolygon("round-heptagon",sr(7,0)),this.generatePolygon("octagon",sr(8,0)),this.generateRoundPolygon("round-octagon",sr(8,0));var r=new Array(20),i=ur(5,0),a=ur(5,Math.PI/5),o=.5*(3-Math.sqrt(5));o*=1.57;for(var s=0;s<a.length/2;s++)a[2*s]*=o,a[2*s+1]*=o;for(s=0;s<5;s++)r[4*s]=i[2*s],r[4*s+1]=i[2*s+1],r[4*s+2]=a[2*s],r[4*s+3]=a[2*s+1];r=lr(r),this.generatePolygon("star",r),this.generatePolygon("vee",[-1,-1,0,-.333,1,-1,0,1]),this.generatePolygon("rhomboid",[-1,-1,.333,-1,1,1,-.333,1]),this.generatePolygon("right-rhomboid",[-.333,-1,1,-1,.333,1,-1,1]),this.nodeShapes.concavehexagon=this.generatePolygon("concave-hexagon",[-1,-.95,-.75,0,-1,.95,1,.95,.75,0,1,-.95]);var l=[-1,-1,.25,-1,1,0,.25,1,-1,1];this.generatePolygon("tag",l),this.generateRoundPolygon("round-tag",l),e.makePolygon=function(e){var n,r="polygon-"+e.join("$");return(n=this[r])?n:t.generatePolygon(r,e)}}},_h={timeToRender:function(){return this.redrawTotalTime/this.redrawCount},redraw:function(e){e=e||kt();var t=this;void 0===t.averageRedrawTime&&(t.averageRedrawTime=0),void 0===t.lastRedrawTime&&(t.lastRedrawTime=0),void 0===t.lastDrawTime&&(t.lastDrawTime=0),t.requestedFrame=!0,t.renderOptions=e},beforeRender:function(e,t){if(!this.destroyed){null==t&&Dt("Priority is not optional for beforeRender");var n=this.beforeRenderCallbacks;n.push({fn:e,priority:t}),n.sort((function(e,t){return t.priority-e.priority}))}}},Dh=function(e,t,n){for(var r=e.beforeRenderCallbacks,i=0;i<r.length;i++)r[i].fn(t,n)};_h.startRenderLoop=function(){var e=this,t=e.cy;if(!e.renderLoopStarted){e.renderLoopStarted=!0;var n=function n(r){if(!e.destroyed){if(t.batching());else if(e.requestedFrame&&!e.skipFrame){Dh(e,!0,r);var i=rt();e.render(e.renderOptions);var a=e.lastDrawTime=rt();void 0===e.averageRedrawTime&&(e.averageRedrawTime=a-i),void 0===e.redrawCount&&(e.redrawCount=0),e.redrawCount++,void 0===e.redrawTotalTime&&(e.redrawTotalTime=0);var o=a-i;e.redrawTotalTime+=o,e.lastRedrawTime=o,e.averageRedrawTime=e.averageRedrawTime/2+o/2,e.requestedFrame=!1}else Dh(e,!1,r);e.skipFrame=!1,nt(n)}};nt(n)}};var Ch=function(e){this.init(e)},Nh=Ch.prototype;Nh.clientFunctions=["redrawHint","render","renderTo","matchCanvasSize","nodeShapeImpl","arrowShapeImpl"],Nh.init=function(e){var t=this;t.options=e,t.cy=e.cy;var n=t.container=e.cy.container(),r=t.cy.window();if(r){var i=r.document,a=i.head,o="__________cytoscape_stylesheet",s="__________cytoscape_container",l=null!=i.getElementById(o);if(n.className.indexOf(s)<0&&(n.className=(n.className||"")+" "+s),!l){var u=i.createElement("style");u.id=o,u.textContent="."+s+" { position: relative; }",a.insertBefore(u,a.children[0])}"static"===r.getComputedStyle(n).getPropertyValue("position")&&Nt("A Cytoscape container has style position:static and so can not use UI extensions properly")}t.selection=[void 0,void 0,void 0,void 0,0],t.bezierProjPcts=[.05,.225,.4,.5,.6,.775,.95],t.hoverData={down:null,last:null,downTime:null,triggerMode:null,dragging:!1,initialPan:[null,null],capture:!1},t.dragData={possibleDragElements:[]},t.touchData={start:null,capture:!1,startPosition:[null,null,null,null,null,null],singleTouchStartTime:null,singleTouchMoved:!0,now:[null,null,null,null,null,null],earlier:[null,null,null,null,null,null]},t.redraws=0,t.showFps=e.showFps,t.debug=e.debug,t.hideEdgesOnViewport=e.hideEdgesOnViewport,t.textureOnViewport=e.textureOnViewport,t.wheelSensitivity=e.wheelSensitivity,t.motionBlurEnabled=e.motionBlur,t.forcedPixelRatio=_(e.pixelRatio)?e.pixelRatio:null,t.motionBlur=e.motionBlur,t.motionBlurOpacity=e.motionBlurOpacity,t.motionBlurTransparency=1-t.motionBlurOpacity,t.motionBlurPxRatio=1,t.mbPxRBlurry=1,t.minMbLowQualFrames=4,t.fullQualityMb=!1,t.clearedForMotionBlur=[],t.desktopTapThreshold=e.desktopTapThreshold,t.desktopTapThreshold2=e.desktopTapThreshold*e.desktopTapThreshold,t.touchTapThreshold=e.touchTapThreshold,t.touchTapThreshold2=e.touchTapThreshold*e.touchTapThreshold,t.tapholdDuration=500,t.bindings=[],t.beforeRenderCallbacks=[],t.beforeRenderPriorities={animations:400,eleCalcs:300,eleTxrDeq:200,lyrTxrDeq:150,lyrTxrSkip:100},t.registerNodeShapes(),t.registerArrowShapes(),t.registerCalculationListeners()},Nh.notify=function(e,t){var n=this,r=n.cy;this.destroyed||("init"!==e?"destroy"!==e?(("add"===e||"remove"===e||"move"===e&&r.hasCompoundNodes()||"load"===e||"zorder"===e||"mount"===e)&&n.invalidateCachedZSortedEles(),"viewport"===e&&n.redrawHint("select",!0),"load"!==e&&"resize"!==e&&"mount"!==e||(n.invalidateContainerClientCoordsCache(),n.matchCanvasSize(n.container)),n.redrawHint("eles",!0),n.redrawHint("drag",!0),this.startRenderLoop(),this.redraw()):n.destroy():n.load())},Nh.destroy=function(){var e=this;e.destroyed=!0,e.cy.stopAnimationLoop();for(var t=0;t<e.bindings.length;t++){var n=e.bindings[t],r=n.target;(r.off||r.removeEventListener).apply(r,n.args)}if(e.bindings=[],e.beforeRenderCallbacks=[],e.onUpdateEleCalcsFns=[],e.removeObserver&&e.removeObserver.disconnect(),e.styleObserver&&e.styleObserver.disconnect(),e.resizeObserver&&e.resizeObserver.disconnect(),e.labelCalcDiv)try{document.body.removeChild(e.labelCalcDiv)}catch(i){}},Nh.isHeadless=function(){return!1},[rh,xh,wh,Eh,Th,_h].forEach((function(e){Q(Nh,e)}));var Ah=1e3/60,Lh={setupDequeueing:function(e){return function(){var t=this,n=this.renderer;if(!t.dequeueingSetup){t.dequeueingSetup=!0;var r=Qe((function(){n.redrawHint("eles",!0),n.redrawHint("drag",!0),n.redraw()}),e.deqRedrawThreshold),i=function(i,a){var o=rt(),s=n.averageRedrawTime,l=n.lastRedrawTime,u=[],c=n.cy.extent(),h=n.getPixelRatio();for(i||n.flushRenderedStyleQueue();;){var d=rt(),p=d-o,g=d-a;if(l<Ah){var f=Ah-(i?s:0);if(g>=e.deqFastCost*f)break}else if(i){if(p>=e.deqCost*l||p>=e.deqAvgCost*s)break}else if(g>=e.deqNoDrawCost*Ah)break;var v=e.deq(t,h,c);if(!(v.length>0))break;for(var y=0;y<v.length;y++)u.push(v[y])}u.length>0&&(e.onDeqd(t,u),!i&&e.shouldRedraw(t,u,h,c)&&r())},a=e.priority||_t;n.beforeRender(i,a(t))}}}},Sh=function(){function e(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Et;t(this,e),this.idsByKey=new Yt,this.keyForId=new Yt,this.cachesByLvl=new Yt,this.lvls=[],this.getKey=n,this.doesEleInvalidateKey=r}return i(e,[{key:"getIdsFor",value:function(e){null==e&&Dt("Can not get id list for null key");var t=this.idsByKey,n=this.idsByKey.get(e);return n||(n=new Ut,t.set(e,n)),n}},{key:"addIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).add(t)}},{key:"deleteIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).delete(t)}},{key:"getNumberOfIdsForKey",value:function(e){return null==e?0:this.getIdsFor(e).size}},{key:"updateKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t),r=this.getKey(e);this.deleteIdForKey(n,t),this.addIdForKey(r,t),this.keyForId.set(t,r)}},{key:"deleteKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteIdForKey(n,t),this.keyForId.delete(t)}},{key:"keyHasChangedFor",value:function(e){var t=e.id();return this.keyForId.get(t)!==this.getKey(e)}},{key:"isInvalid",value:function(e){return this.keyHasChangedFor(e)||this.doesEleInvalidateKey(e)}},{key:"getCachesAt",value:function(e){var t=this.cachesByLvl,n=this.lvls,r=t.get(e);return r||(r=new Yt,t.set(e,r),n.push(e)),r}},{key:"getCache",value:function(e,t){return this.getCachesAt(t).get(e)}},{key:"get",value:function(e,t){var n=this.getKey(e),r=this.getCache(n,t);return null!=r&&this.updateKeyMappingFor(e),r}},{key:"getForCachedKey",value:function(e,t){var n=this.keyForId.get(e.id());return this.getCache(n,t)}},{key:"hasCache",value:function(e,t){return this.getCachesAt(t).has(e)}},{key:"has",value:function(e,t){var n=this.getKey(e);return this.hasCache(n,t)}},{key:"setCache",value:function(e,t,n){n.key=e,this.getCachesAt(t).set(e,n)}},{key:"set",value:function(e,t,n){var r=this.getKey(e);this.setCache(r,t,n),this.updateKeyMappingFor(e)}},{key:"deleteCache",value:function(e,t){this.getCachesAt(t).delete(e)}},{key:"delete",value:function(e,t){var n=this.getKey(e);this.deleteCache(n,t)}},{key:"invalidateKey",value:function(e){var t=this;this.lvls.forEach((function(n){return t.deleteCache(e,n)}))}},{key:"invalidate",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteKeyMappingFor(e);var r=this.doesEleInvalidateKey(e);return r&&this.invalidateKey(n),r||0===this.getNumberOfIdsForKey(n)}}]),e}(),Oh=25,Ih=50,kh=-4,Mh=3,Ph=7.99,Rh=8,Bh=1024,Fh=1024,zh=1024,Gh=.2,Yh=.8,Xh=10,Vh=.15,Uh=.1,jh=.9,Hh=.9,qh=100,Wh=1,$h={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},Kh=Mt({getKey:null,doesEleInvalidateKey:Et,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:wt,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Zh=function(e,t){var n=this;n.renderer=e,n.onDequeues=[];var r=Kh(t);Q(n,r),n.lookup=new Sh(r.getKey,r.doesEleInvalidateKey),n.setupDequeueing()},Qh=Zh.prototype;Qh.reasons=$h,Qh.getTextureQueue=function(e){var t=this;return t.eleImgCaches=t.eleImgCaches||{},t.eleImgCaches[e]=t.eleImgCaches[e]||[]},Qh.getRetiredTextureQueue=function(e){var t=this,n=t.eleImgCaches.retired=t.eleImgCaches.retired||{};return n[e]=n[e]||[]},Qh.getElementQueue=function(){var e=this;return e.eleCacheQueue=e.eleCacheQueue||new $t((function(e,t){return t.reqs-e.reqs}))},Qh.getElementKeyToQueue=function(){var e=this;return e.eleKeyToCacheQueue=e.eleKeyToCacheQueue||{}},Qh.getElement=function(e,t,n,r,i){var a=this,o=this.renderer,s=o.cy.zoom(),l=this.lookup;if(!t||0===t.w||0===t.h||isNaN(t.w)||isNaN(t.h)||!e.visible()||e.removed())return null;if(!a.allowEdgeTxrCaching&&e.isEdge()||!a.allowParentTxrCaching&&e.isParent())return null;if(null==r&&(r=Math.ceil(xn(s*n))),r<kh)r=kh;else if(s>=Ph||r>Mh)return null;var u=Math.pow(2,r),c=t.h*u,h=t.w*u,d=o.eleTextBiggerThanMin(e,u);if(!this.isVisible(e,d))return null;var p,g=l.get(e,r);if(g&&g.invalidated&&(g.invalidated=!1,g.texture.invalidatedWidth-=g.width),g)return g;if(p=c<=Oh?Oh:c<=Ih?Ih:Math.ceil(c/Ih)*Ih,c>zh||h>Fh)return null;var f=a.getTextureQueue(p),v=f[f.length-2],y=function(){return a.recycleTexture(p,h)||a.addTexture(p,h)};v||(v=f[f.length-1]),v||(v=y()),v.width-v.usedWidth<h&&(v=y());for(var m,b=function(e){return e&&e.scaledLabelShown===d},x=i&&i===$h.dequeue,w=i&&i===$h.highQuality,E=i&&i===$h.downscale,T=r+1;T<=Mh;T++){var _=l.get(e,T);if(_){m=_;break}}var D=m&&m.level===r+1?m:null,C=function(){v.context.drawImage(D.texture.canvas,D.x,0,D.width,D.height,v.usedWidth,0,h,c)};if(v.context.setTransform(1,0,0,1,0,0),v.context.clearRect(v.usedWidth,0,h,p),b(D))C();else if(b(m)){if(!w)return a.queueElement(e,m.level-1),m;for(var N=m.level;N>r;N--)D=a.getElement(e,t,n,N,$h.downscale);C()}else{var A;if(!x&&!w&&!E)for(var L=r-1;L>=kh;L--){var S=l.get(e,L);if(S){A=S;break}}if(b(A))return a.queueElement(e,r),A;v.context.translate(v.usedWidth,0),v.context.scale(u,u),this.drawElement(v.context,e,t,d,!1),v.context.scale(1/u,1/u),v.context.translate(-v.usedWidth,0)}return g={x:v.usedWidth,texture:v,level:r,scale:u,width:h,height:c,scaledLabelShown:d},v.usedWidth+=Math.ceil(h+Rh),v.eleCaches.push(g),l.set(e,r,g),a.checkTextureFullness(v),g},Qh.invalidateElements=function(e){for(var t=0;t<e.length;t++)this.invalidateElement(e[t])},Qh.invalidateElement=function(e){var t=this,n=t.lookup,r=[];if(n.isInvalid(e)){for(var i=kh;i<=Mh;i++){var a=n.getForCachedKey(e,i);a&&r.push(a)}if(n.invalidate(e))for(var o=0;o<r.length;o++){var s=r[o],l=s.texture;l.invalidatedWidth+=s.width,s.invalidated=!0,t.checkTextureUtility(l)}t.removeFromQueue(e)}},Qh.checkTextureUtility=function(e){e.invalidatedWidth>=Gh*e.width&&this.retireTexture(e)},Qh.checkTextureFullness=function(e){var t=this.getTextureQueue(e.height);e.usedWidth/e.width>Yh&&e.fullnessChecks>=Xh?Pt(t,e):e.fullnessChecks++},Qh.retireTexture=function(e){var t=this,n=e.height,r=t.getTextureQueue(n),i=this.lookup;Pt(r,e),e.retired=!0;for(var a=e.eleCaches,o=0;o<a.length;o++){var s=a[o];i.deleteCache(s.key,s.level)}Rt(a),t.getRetiredTextureQueue(n).push(e)},Qh.addTexture=function(e,t){var n=this,r={};return n.getTextureQueue(e).push(r),r.eleCaches=[],r.height=e,r.width=Math.max(Bh,t),r.usedWidth=0,r.invalidatedWidth=0,r.fullnessChecks=0,r.canvas=n.renderer.makeOffscreenCanvas(r.width,r.height),r.context=r.canvas.getContext("2d"),r},Qh.recycleTexture=function(e,t){for(var n=this,r=n.getTextureQueue(e),i=n.getRetiredTextureQueue(e),a=0;a<i.length;a++){var o=i[a];if(o.width>=t)return o.retired=!1,o.usedWidth=0,o.invalidatedWidth=0,o.fullnessChecks=0,Rt(o.eleCaches),o.context.setTransform(1,0,0,1,0,0),o.context.clearRect(0,0,o.width,o.height),Pt(i,o),r.push(o),o}},Qh.queueElement=function(e,t){var n=this,r=n.getElementQueue(),i=n.getElementKeyToQueue(),a=this.getKey(e),o=i[a];if(o)o.level=Math.max(o.level,t),o.eles.merge(e),o.reqs++,r.updateItem(o);else{var s={eles:e.spawn().merge(e),level:t,reqs:1,key:a};r.push(s),i[a]=s}},Qh.dequeue=function(e){for(var t=this,n=t.getElementQueue(),r=t.getElementKeyToQueue(),i=[],a=t.lookup,o=0;o<Wh&&n.size()>0;o++){var s=n.pop(),l=s.key,u=s.eles[0],c=a.hasCache(u,s.level);if(r[l]=null,!c){i.push(s);var h=t.getBoundingBox(u);t.getElement(u,h,e,s.level,$h.dequeue)}}return i},Qh.removeFromQueue=function(e){var t=this,n=t.getElementQueue(),r=t.getElementKeyToQueue(),i=this.getKey(e),a=r[i];null!=a&&(1===a.eles.length?(a.reqs=xt,n.updateItem(a),n.pop(),r[i]=null):a.eles.unmerge(e))},Qh.onDequeue=function(e){this.onDequeues.push(e)},Qh.offDequeue=function(e){Pt(this.onDequeues,e)},Qh.setupDequeueing=Lh.setupDequeueing({deqRedrawThreshold:qh,deqCost:Vh,deqAvgCost:Uh,deqNoDrawCost:jh,deqFastCost:Hh,deq:function(e,t,n){return e.dequeue(t,n)},onDeqd:function(e,t){for(var n=0;n<e.onDequeues.length;n++)(0,e.onDequeues[n])(t)},shouldRedraw:function(e,t,n,r){for(var i=0;i<t.length;i++)for(var a=t[i].eles,o=0;o<a.length;o++){var s=a[o].boundingBox();if(Bn(s,r))return!0}return!1},priority:function(e){return e.renderer.beforeRenderPriorities.eleTxrDeq}});var Jh=1,ed=-4,td=2,nd=3.99,rd=50,id=50,ad=.15,od=.1,sd=.9,ld=.9,ud=1,cd=250,hd=16e6,dd=!0,pd=function(e){var t=this,n=t.renderer=e,r=n.cy;t.layersByLevel={},t.firstGet=!0,t.lastInvalidationTime=rt()-2*cd,t.skipping=!1,t.eleTxrDeqs=r.collection(),t.scheduleElementRefinement=Qe((function(){t.refineElementTextures(t.eleTxrDeqs),t.eleTxrDeqs.unmerge(t.eleTxrDeqs)}),id),n.beforeRender((function(e,n){n-t.lastInvalidationTime<=cd?t.skipping=!0:t.skipping=!1}),n.beforeRenderPriorities.lyrTxrSkip);var i=function(e,t){return t.reqs-e.reqs};t.layersQueue=new $t(i),t.setupDequeueing()},gd=pd.prototype,fd=0,vd=Math.pow(2,53)-1;gd.makeLayer=function(e,t){var n=Math.pow(2,t),r=Math.ceil(e.w*n),i=Math.ceil(e.h*n),a=this.renderer.makeOffscreenCanvas(r,i),o={id:fd=++fd%vd,bb:e,level:t,width:r,height:i,canvas:a,context:a.getContext("2d"),eles:[],elesQueue:[],reqs:0},s=o.context,l=-o.bb.x1,u=-o.bb.y1;return s.scale(n,n),s.translate(l,u),o},gd.getLayers=function(e,t,n){var r=this,i=r.renderer.cy.zoom(),a=r.firstGet;if(r.firstGet=!1,null==n)if((n=Math.ceil(xn(i*t)))<ed)n=ed;else if(i>=nd||n>td)return null;r.validateLayersElesOrdering(n,e);var o,s,l=r.layersByLevel,u=Math.pow(2,n),c=l[n]=l[n]||[],h=function(){var t=function(t){if(r.validateLayersElesOrdering(t,e),r.levelIsComplete(t,e))return s=l[t],!0},i=function(e){if(!s)for(var r=n+e;ed<=r&&r<=td&&!t(r);r+=e);};i(1),i(-1);for(var a=c.length-1;a>=0;a--){var o=c[a];o.invalid&&Pt(c,o)}};if(r.levelIsComplete(n,e))return c;h();var d=function(){if(!o){o=Ln();for(var t=0;t<e.length;t++)In(o,e[t].boundingBox())}return o},p=function(e){var t=(e=e||{}).after;if(d(),o.w*u*(o.h*u)>hd)return null;var i=r.makeLayer(o,n);if(null!=t){var a=c.indexOf(t)+1;c.splice(a,0,i)}else(void 0===e.insert||e.insert)&&c.unshift(i);return i};if(r.skipping&&!a)return null;for(var g=null,f=e.length/Jh,v=!a,y=0;y<e.length;y++){var m=e[y],b=m._private.rscratch,x=b.imgLayerCaches=b.imgLayerCaches||{},w=x[n];if(w)g=w;else{if((!g||g.eles.length>=f||!Gn(g.bb,m.boundingBox()))&&!(g=p({insert:!0,after:g})))return null;s||v?r.queueLayer(g,m):r.drawEleInLayer(g,m,n,t),g.eles.push(m),x[n]=g}}return s||(v?null:c)},gd.getEleLevelForLayerLevel=function(e,t){return e},gd.drawEleInLayer=function(e,t,n,r){var i=this,a=this.renderer,o=e.context,s=t.boundingBox();0!==s.w&&0!==s.h&&t.visible()&&(n=i.getEleLevelForLayerLevel(n,r),a.setImgSmoothing(o,!1),a.drawCachedElement(o,t,null,null,n,dd),a.setImgSmoothing(o,!0))},gd.levelIsComplete=function(e,t){var n=this.layersByLevel[e];if(!n||0===n.length)return!1;for(var r=0,i=0;i<n.length;i++){var a=n[i];if(a.reqs>0)return!1;if(a.invalid)return!1;r+=a.eles.length}return r===t.length},gd.validateLayersElesOrdering=function(e,t){var n=this.layersByLevel[e];if(n)for(var r=0;r<n.length;r++){for(var i=n[r],a=-1,o=0;o<t.length;o++)if(i.eles[0]===t[o]){a=o;break}if(a<0)this.invalidateLayer(i);else{var s=a;for(o=0;o<i.eles.length;o++)if(i.eles[o]!==t[s+o]){this.invalidateLayer(i);break}}}},gd.updateElementsInLayers=function(e,t){for(var n=this,r=A(e[0]),i=0;i<e.length;i++)for(var a=r?null:e[i],o=r?e[i]:e[i].ele,s=o._private.rscratch,l=s.imgLayerCaches=s.imgLayerCaches||{},u=ed;u<=td;u++){var c=l[u];c&&(a&&n.getEleLevelForLayerLevel(c.level)!==a.level||t(c,o,a))}},gd.haveLayers=function(){for(var e=this,t=!1,n=ed;n<=td;n++){var r=e.layersByLevel[n];if(r&&r.length>0){t=!0;break}}return t},gd.invalidateElements=function(e){var t=this;0!==e.length&&(t.lastInvalidationTime=rt(),0!==e.length&&t.haveLayers()&&t.updateElementsInLayers(e,(function(e,n,r){t.invalidateLayer(e)})))},gd.invalidateLayer=function(e){if(this.lastInvalidationTime=rt(),!e.invalid){var t=e.level,n=e.eles,r=this.layersByLevel[t];Pt(r,e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var i=0;i<n.length;i++){var a=n[i]._private.rscratch.imgLayerCaches;a&&(a[t]=null)}}},gd.refineElementTextures=function(e){var t=this;t.updateElementsInLayers(e,(function(e,n,r){var i=e.replacement;if(i||((i=e.replacement=t.makeLayer(e.bb,e.level)).replaces=e,i.eles=e.eles),!i.reqs)for(var a=0;a<i.eles.length;a++)t.queueLayer(i,i.eles[a])}))},gd.enqueueElementRefinement=function(e){this.eleTxrDeqs.merge(e),this.scheduleElementRefinement()},gd.queueLayer=function(e,t){var n=this.layersQueue,r=e.elesQueue,i=r.hasId=r.hasId||{};if(!e.replacement){if(t){if(i[t.id()])return;r.push(t),i[t.id()]=!0}e.reqs?(e.reqs++,n.updateItem(e)):(e.reqs=1,n.push(e))}},gd.dequeue=function(e){for(var t=this,n=t.layersQueue,r=[],i=0;i<ud&&0!==n.size();){var a=n.peek();if(a.replacement)n.pop();else if(a.replaces&&a!==a.replaces.replacement)n.pop();else if(a.invalid)n.pop();else{var o=a.elesQueue.shift();o&&(t.drawEleInLayer(a,o,a.level,e),i++),0===r.length&&r.push(!0),0===a.elesQueue.length&&(n.pop(),a.reqs=0,a.replaces&&t.applyLayerReplacement(a),t.requestRedraw())}}return r},gd.applyLayerReplacement=function(e){var t=this,n=t.layersByLevel[e.level],r=e.replaces,i=n.indexOf(r);if(!(i<0||r.invalid)){n[i]=e;for(var a=0;a<e.eles.length;a++){var o=e.eles[a]._private,s=o.imgLayerCaches=o.imgLayerCaches||{};s&&(s[e.level]=e)}t.requestRedraw()}},gd.requestRedraw=Qe((function(){var e=this.renderer;e.redrawHint("eles",!0),e.redrawHint("drag",!0),e.redraw()}),100),gd.setupDequeueing=Lh.setupDequeueing({deqRedrawThreshold:rd,deqCost:ad,deqAvgCost:od,deqNoDrawCost:sd,deqFastCost:ld,deq:function(e,t){return e.dequeue(t)},onDeqd:_t,shouldRedraw:wt,priority:function(e){return e.renderer.beforeRenderPriorities.lyrTxrDeq}});var yd,md={};function bd(e,t){for(var n=0;n<t.length;n++){var r=t[n];e.lineTo(r.x,r.y)}}function xd(e,t,n){for(var r,i=0;i<t.length;i++){var a=t[i];0===i&&(r=a),e.lineTo(a.x,a.y)}e.quadraticCurveTo(n.x,n.y,r.x,r.y)}function wd(e,t,n){e.beginPath&&e.beginPath();for(var r=t,i=0;i<r.length;i++){var a=r[i];e.lineTo(a.x,a.y)}var o=n,s=n[0];for(e.moveTo(s.x,s.y),i=1;i<o.length;i++)a=o[i],e.lineTo(a.x,a.y);e.closePath&&e.closePath()}function Ed(e,t,n,r,i){e.beginPath&&e.beginPath(),e.arc(n,r,i,0,2*Math.PI,!1);var a=t,o=a[0];e.moveTo(o.x,o.y);for(var s=0;s<a.length;s++){var l=a[s];e.lineTo(l.x,l.y)}e.closePath&&e.closePath()}function Td(e,t,n,r){e.arc(t,n,r,0,2*Math.PI,!1)}md.arrowShapeImpl=function(e){return(yd||(yd={polygon:bd,"triangle-backcurve":xd,"triangle-tee":wd,"circle-triangle":Ed,"triangle-cross":wd,circle:Td}))[e]};var _d={drawElement:function(e,t,n,r,i,a){var o=this;t.isNode()?o.drawNode(e,t,n,r,i,a):o.drawEdge(e,t,n,r,i,a)},drawElementOverlay:function(e,t){var n=this;t.isNode()?n.drawNodeOverlay(e,t):n.drawEdgeOverlay(e,t)},drawElementUnderlay:function(e,t){var n=this;t.isNode()?n.drawNodeUnderlay(e,t):n.drawEdgeUnderlay(e,t)},drawCachedElementPortion:function(e,t,n,r,i,a,o,s){var l=this,u=n.getBoundingBox(t);if(0!==u.w&&0!==u.h){var c=n.getElement(t,u,r,i,a);if(null!=c){var h=s(l,t);if(0===h)return;var d,p,g,f,v,y,m=o(l,t),b=u.x1,x=u.y1,w=u.w,E=u.h;if(0!==m){var T=n.getRotationPoint(t);g=T.x,f=T.y,e.translate(g,f),e.rotate(m),(v=l.getImgSmoothing(e))||l.setImgSmoothing(e,!0);var _=n.getRotationOffset(t);d=_.x,p=_.y}else d=b,p=x;1!==h&&(y=e.globalAlpha,e.globalAlpha=y*h),e.drawImage(c.texture.canvas,c.x,0,c.width,c.height,d,p,w,E),1!==h&&(e.globalAlpha=y),0!==m&&(e.rotate(-m),e.translate(-g,-f),v||l.setImgSmoothing(e,!1))}else n.drawElement(e,t)}}},Dd=function(){return 0},Cd=function(e,t){return e.getTextAngle(t,null)},Nd=function(e,t){return e.getTextAngle(t,"source")},Ad=function(e,t){return e.getTextAngle(t,"target")},Ld=function(e,t){return t.effectiveOpacity()},Sd=function(e,t){return t.pstyle("text-opacity").pfValue*t.effectiveOpacity()};_d.drawCachedElement=function(e,t,n,r,i,a){var o=this,s=o.data,l=s.eleTxrCache,u=s.lblTxrCache,c=s.slbTxrCache,h=s.tlbTxrCache,d=t.boundingBox(),p=!0===a?l.reasons.highQuality:null;if(0!==d.w&&0!==d.h&&t.visible()&&(!r||Bn(d,r))){var g=t.isEdge(),f=t.element()._private.rscratch.badLine;o.drawElementUnderlay(e,t),o.drawCachedElementPortion(e,t,l,n,i,p,Dd,Ld),g&&f||o.drawCachedElementPortion(e,t,u,n,i,p,Cd,Sd),g&&!f&&(o.drawCachedElementPortion(e,t,c,n,i,p,Nd,Sd),o.drawCachedElementPortion(e,t,h,n,i,p,Ad,Sd)),o.drawElementOverlay(e,t)}},_d.drawElements=function(e,t){for(var n=this,r=0;r<t.length;r++){var i=t[r];n.drawElement(e,i)}},_d.drawCachedElements=function(e,t,n,r){for(var i=this,a=0;a<t.length;a++){var o=t[a];i.drawCachedElement(e,o,n,r)}},_d.drawCachedNodes=function(e,t,n,r){for(var i=this,a=0;a<t.length;a++){var o=t[a];o.isNode()&&i.drawCachedElement(e,o,n,r)}},_d.drawLayeredElements=function(e,t,n,r){var i=this,a=i.data.lyrTxrCache.getLayers(t,n);if(a)for(var o=0;o<a.length;o++){var s=a[o],l=s.bb;0!==l.w&&0!==l.h&&e.drawImage(s.canvas,l.x1,l.y1,l.w,l.h)}else i.drawCachedElements(e,t,n,r)};var Od={drawEdge:function(e,t,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],o=this,s=t._private.rscratch;if((!a||t.visible())&&!s.badLine&&null!=s.allpts&&!isNaN(s.allpts[0])){var l;n&&(l=n,e.translate(-l.x1,-l.y1));var u=a?t.pstyle("opacity").value:1,c=a?t.pstyle("line-opacity").value:1,h=t.pstyle("curve-style").value,d=t.pstyle("line-style").value,p=t.pstyle("width").pfValue,g=t.pstyle("line-cap").value,f=u*c,v=u*c,y=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f;"straight-triangle"===h?(o.eleStrokeStyle(e,t,n),o.drawEdgeTrianglePath(t,e,s.allpts)):(e.lineWidth=p,e.lineCap=g,o.eleStrokeStyle(e,t,n),o.drawEdgePath(t,e,s.allpts,d),e.lineCap="butt")},m=function(){i&&o.drawEdgeOverlay(e,t)},b=function(){i&&o.drawEdgeUnderlay(e,t)},x=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:v;o.drawArrowheads(e,t,n)},w=function(){o.drawElementText(e,t,null,r)};if(e.lineJoin="round","yes"===t.pstyle("ghost").value){var E=t.pstyle("ghost-offset-x").pfValue,T=t.pstyle("ghost-offset-y").pfValue,_=t.pstyle("ghost-opacity").value,D=f*_;e.translate(E,T),y(D),x(D),e.translate(-E,-T)}b(),y(),x(),m(),w(),n&&e.translate(l.x1,l.y1)}}},Id=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(t,n){if(n.visible()){var r=n.pstyle("".concat(e,"-opacity")).value;if(0!==r){var i=this,a=i.usePaths(),o=n._private.rscratch,s=2*n.pstyle("".concat(e,"-padding")).pfValue,l=n.pstyle("".concat(e,"-color")).value;t.lineWidth=s,"self"!==o.edgeType||a?t.lineCap="round":t.lineCap="butt",i.colorStrokeStyle(t,l[0],l[1],l[2],r),i.drawEdgePath(n,t,o.allpts,"solid")}}}};Od.drawEdgeOverlay=Id("overlay"),Od.drawEdgeUnderlay=Id("underlay"),Od.drawEdgePath=function(e,t,n,r){var i,a=e._private.rscratch,o=t,s=!1,l=this.usePaths(),u=e.pstyle("line-dash-pattern").pfValue,c=e.pstyle("line-dash-offset").pfValue;if(l){var h=n.join("$");a.pathCacheKey&&a.pathCacheKey===h?(i=t=a.pathCache,s=!0):(i=t=new Path2D,a.pathCacheKey=h,a.pathCache=i)}if(o.setLineDash)switch(r){case"dotted":o.setLineDash([1,1]);break;case"dashed":o.setLineDash(u),o.lineDashOffset=c;break;case"solid":o.setLineDash([])}if(!s&&!a.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(n[0],n[1]),a.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var d=2;d+3<n.length;d+=4)t.quadraticCurveTo(n[d],n[d+1],n[d+2],n[d+3]);break;case"straight":case"segments":case"haystack":for(var p=2;p+1<n.length;p+=2)t.lineTo(n[p],n[p+1])}t=o,l?t.stroke(i):t.stroke(),t.setLineDash&&t.setLineDash([])},Od.drawEdgeTrianglePath=function(e,t,n){t.fillStyle=t.strokeStyle;for(var r=e.pstyle("width").pfValue,i=0;i+1<n.length;i+=2){var a=[n[i+2]-n[i],n[i+3]-n[i+1]],o=Math.sqrt(a[0]*a[0]+a[1]*a[1]),s=[a[1]/o,-a[0]/o],l=[s[0]*r/2,s[1]*r/2];t.beginPath(),t.moveTo(n[i]-l[0],n[i+1]-l[1]),t.lineTo(n[i]+l[0],n[i+1]+l[1]),t.lineTo(n[i+2],n[i+3]),t.closePath(),t.fill()}},Od.drawArrowheads=function(e,t,n){var r=t._private.rscratch,i="haystack"===r.edgeType;i||this.drawArrowhead(e,t,"source",r.arrowStartX,r.arrowStartY,r.srcArrowAngle,n),this.drawArrowhead(e,t,"mid-target",r.midX,r.midY,r.midtgtArrowAngle,n),this.drawArrowhead(e,t,"mid-source",r.midX,r.midY,r.midsrcArrowAngle,n),i||this.drawArrowhead(e,t,"target",r.arrowEndX,r.arrowEndY,r.tgtArrowAngle,n)},Od.drawArrowhead=function(e,t,n,r,i,a,o){if(!(isNaN(r)||null==r||isNaN(i)||null==i||isNaN(a)||null==a)){var s=this,l=t.pstyle(n+"-arrow-shape").value;if("none"!==l){var u="hollow"===t.pstyle(n+"-arrow-fill").value?"both":"filled",c=t.pstyle(n+"-arrow-fill").value,h=t.pstyle("width").pfValue,d=t.pstyle("opacity").value;void 0===o&&(o=d);var p=e.globalCompositeOperation;1===o&&"hollow"!==c||(e.globalCompositeOperation="destination-out",s.colorFillStyle(e,255,255,255,1),s.colorStrokeStyle(e,255,255,255,1),s.drawArrowShape(t,e,u,h,l,r,i,a),e.globalCompositeOperation=p);var g=t.pstyle(n+"-arrow-color").value;s.colorFillStyle(e,g[0],g[1],g[2],o),s.colorStrokeStyle(e,g[0],g[1],g[2],o),s.drawArrowShape(t,e,c,h,l,r,i,a)}}},Od.drawArrowShape=function(e,t,n,r,i,a,o,s){var l,u=this,c=this.usePaths()&&"triangle-cross"!==i,h=!1,d=t,p={x:a,y:o},g=e.pstyle("arrow-scale").value,f=this.getArrowWidth(r,g),v=u.arrowShapes[i];if(c){var y=u.arrowPathCache=u.arrowPathCache||[],m=gt(i),b=y[m];null!=b?(l=t=b,h=!0):(l=t=new Path2D,y[m]=l)}h||(t.beginPath&&t.beginPath(),c?v.draw(t,1,0,{x:0,y:0},1):v.draw(t,f,s,p,r),t.closePath&&t.closePath()),t=d,c&&(t.translate(a,o),t.rotate(s),t.scale(f,f)),"filled"!==n&&"both"!==n||(c?t.fill(l):t.fill()),"hollow"!==n&&"both"!==n||(t.lineWidth=(v.matchEdgeWidth?r:1)/(c?f:1),t.lineJoin="miter",c?t.stroke(l):t.stroke()),c&&(t.scale(1/f,1/f),t.rotate(-s),t.translate(-a,-o))};var kd={safeDrawImage:function(e,t,n,r,i,a,o,s,l,u){if(!(i<=0||a<=0||l<=0||u<=0))try{e.drawImage(t,n,r,i,a,o,s,l,u)}catch(c){Nt(c)}},drawInscribedImage:function(e,t,n,r,i){var a=this,o=n.position(),s=o.x,l=o.y,u=n.cy().style(),c=u.getIndexedStyle.bind(u),h=c(n,"background-fit","value",r),d=c(n,"background-repeat","value",r),p=n.width(),g=n.height(),f=2*n.padding(),v=p+("inner"===c(n,"background-width-relative-to","value",r)?0:f),y=g+("inner"===c(n,"background-height-relative-to","value",r)?0:f),m=n._private.rscratch,b="node"===c(n,"background-clip","value",r),x=c(n,"background-image-opacity","value",r)*i,w=c(n,"background-image-smoothing","value",r),E=t.width||t.cachedW,T=t.height||t.cachedH;null!=E&&null!=T||(document.body.appendChild(t),E=t.cachedW=t.width||t.offsetWidth,T=t.cachedH=t.height||t.offsetHeight,document.body.removeChild(t));var _=E,D=T;if("auto"!==c(n,"background-width","value",r)&&(_="%"===c(n,"background-width","units",r)?c(n,"background-width","pfValue",r)*v:c(n,"background-width","pfValue",r)),"auto"!==c(n,"background-height","value",r)&&(D="%"===c(n,"background-height","units",r)?c(n,"background-height","pfValue",r)*y:c(n,"background-height","pfValue",r)),0!==_&&0!==D){if("contain"===h)_*=C=Math.min(v/_,y/D),D*=C;else if("cover"===h){var C;_*=C=Math.max(v/_,y/D),D*=C}var N=s-v/2,A=c(n,"background-position-x","units",r),L=c(n,"background-position-x","pfValue",r);N+="%"===A?(v-_)*L:L;var S=c(n,"background-offset-x","units",r),O=c(n,"background-offset-x","pfValue",r);N+="%"===S?(v-_)*O:O;var I=l-y/2,k=c(n,"background-position-y","units",r),M=c(n,"background-position-y","pfValue",r);I+="%"===k?(y-D)*M:M;var P=c(n,"background-offset-y","units",r),R=c(n,"background-offset-y","pfValue",r);I+="%"===P?(y-D)*R:R,m.pathCache&&(N-=s,I-=l,s=0,l=0);var B=e.globalAlpha;e.globalAlpha=x;var F=a.getImgSmoothing(e),z=!1;if("no"===w&&F?(a.setImgSmoothing(e,!1),z=!0):"yes"!==w||F||(a.setImgSmoothing(e,!0),z=!0),"no-repeat"===d)b&&(e.save(),m.pathCache?e.clip(m.pathCache):(a.nodeShapes[a.getNodeShape(n)].draw(e,s,l,v,y),e.clip())),a.safeDrawImage(e,t,0,0,E,T,N,I,_,D),b&&e.restore();else{var G=e.createPattern(t,d);e.fillStyle=G,a.nodeShapes[a.getNodeShape(n)].draw(e,s,l,v,y),e.translate(N,I),e.fill(),e.translate(-N,-I)}e.globalAlpha=B,z&&a.setImgSmoothing(e,F)}}},Md={};function Pd(e,t,n,r,i){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:5;e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+r-a,n),e.quadraticCurveTo(t+r,n,t+r,n+a),e.lineTo(t+r,n+i-a),e.quadraticCurveTo(t+r,n+i,t+r-a,n+i),e.lineTo(t+a,n+i),e.quadraticCurveTo(t,n+i,t,n+i-a),e.lineTo(t,n+a),e.quadraticCurveTo(t,n,t+a,n),e.closePath(),e.fill()}Md.eleTextBiggerThanMin=function(e,t){if(!t){var n=e.cy().zoom(),r=this.getPixelRatio(),i=Math.ceil(xn(n*r));t=Math.pow(2,i)}return!(e.pstyle("font-size").pfValue*t<e.pstyle("min-zoomed-font-size").pfValue)},Md.drawElementText=function(e,t,n,r,i){var a=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],o=this;if(null==r){if(a&&!o.eleTextBiggerThanMin(t))return}else if(!1===r)return;if(t.isNode()){var s=t.pstyle("label");if(!s||!s.value)return;var l=o.getLabelJustification(t);e.textAlign=l,e.textBaseline="bottom"}else{var u=t.element()._private.rscratch.badLine,c=t.pstyle("label"),h=t.pstyle("source-label"),d=t.pstyle("target-label");if(u||(!c||!c.value)&&(!h||!h.value)&&(!d||!d.value))return;e.textAlign="center",e.textBaseline="bottom"}var p,g=!n;n&&(p=n,e.translate(-p.x1,-p.y1)),null==i?(o.drawText(e,t,null,g,a),t.isEdge()&&(o.drawText(e,t,"source",g,a),o.drawText(e,t,"target",g,a))):o.drawText(e,t,i,g,a),n&&e.translate(p.x1,p.y1)},Md.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var n=0;n<this.fontCaches.length;n++)if((t=this.fontCaches[n]).context===e)return t;return t={context:e},this.fontCaches.push(t),t},Md.setupTextStyle=function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=t.pstyle("font-style").strValue,i=t.pstyle("font-size").pfValue+"px",a=t.pstyle("font-family").strValue,o=t.pstyle("font-weight").strValue,s=n?t.effectiveOpacity()*t.pstyle("text-opacity").value:1,l=t.pstyle("text-outline-opacity").value*s,u=t.pstyle("color").value,c=t.pstyle("text-outline-color").value;e.font=r+" "+o+" "+i+" "+a,e.lineJoin="round",this.colorFillStyle(e,u[0],u[1],u[2],s),this.colorStrokeStyle(e,c[0],c[1],c[2],l)},Md.getTextAngle=function(e,t){var n=e._private.rscratch,r=t?t+"-":"",i=e.pstyle(r+"text-rotation"),a=Ft(n,"labelAngle",t);return"autorotate"===i.strValue?e.isEdge()?a:0:"none"===i.strValue?0:i.pfValue},Md.drawText=function(e,t,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=t._private.rscratch,o=i?t.effectiveOpacity():1;if(!i||0!==o&&0!==t.pstyle("text-opacity").value){"main"===n&&(n=null);var s,l,u=Ft(a,"labelX",n),c=Ft(a,"labelY",n),h=this.getLabelText(t,n);if(null!=h&&""!==h&&!isNaN(u)&&!isNaN(c)){this.setupTextStyle(e,t,i);var d,p=n?n+"-":"",g=Ft(a,"labelWidth",n),f=Ft(a,"labelHeight",n),v=t.pstyle(p+"text-margin-x").pfValue,y=t.pstyle(p+"text-margin-y").pfValue,m=t.isEdge(),b=t.pstyle("text-halign").value,x=t.pstyle("text-valign").value;switch(m&&(b="center",x="center"),u+=v,c+=y,0!==(d=r?this.getTextAngle(t,n):0)&&(s=u,l=c,e.translate(s,l),e.rotate(d),u=0,c=0),x){case"top":break;case"center":c+=f/2;break;case"bottom":c+=f}var w=t.pstyle("text-background-opacity").value,E=t.pstyle("text-border-opacity").value,T=t.pstyle("text-border-width").pfValue,_=t.pstyle("text-background-padding").pfValue;if(w>0||T>0&&E>0){var D=u-_;switch(b){case"left":D-=g;break;case"center":D-=g/2}var C=c-f-_,N=g+2*_,A=f+2*_;if(w>0){var L=e.fillStyle,S=t.pstyle("text-background-color").value;e.fillStyle="rgba("+S[0]+","+S[1]+","+S[2]+","+w*o+")",0===t.pstyle("text-background-shape").strValue.indexOf("round")?Pd(e,D,C,N,A,2):e.fillRect(D,C,N,A),e.fillStyle=L}if(T>0&&E>0){var O=e.strokeStyle,I=e.lineWidth,k=t.pstyle("text-border-color").value,M=t.pstyle("text-border-style").value;if(e.strokeStyle="rgba("+k[0]+","+k[1]+","+k[2]+","+E*o+")",e.lineWidth=T,e.setLineDash)switch(M){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=T/4,e.setLineDash([]);break;case"solid":e.setLineDash([])}if(e.strokeRect(D,C,N,A),"double"===M){var P=T/2;e.strokeRect(D+P,C+P,N-2*P,A-2*P)}e.setLineDash&&e.setLineDash([]),e.lineWidth=I,e.strokeStyle=O}}var R=2*t.pstyle("text-outline-width").pfValue;if(R>0&&(e.lineWidth=R),"wrap"===t.pstyle("text-wrap").value){var B=Ft(a,"labelWrapCachedLines",n),F=Ft(a,"labelLineHeight",n),z=g/2,G=this.getLabelJustification(t);switch("auto"===G||("left"===b?"left"===G?u+=-g:"center"===G&&(u+=-z):"center"===b?"left"===G?u+=-z:"right"===G&&(u+=z):"right"===b&&("center"===G?u+=z:"right"===G&&(u+=g))),x){case"top":case"center":case"bottom":c-=(B.length-1)*F}for(var Y=0;Y<B.length;Y++)R>0&&e.strokeText(B[Y],u,c),e.fillText(B[Y],u,c),c+=F}else R>0&&e.strokeText(h,u,c),e.fillText(h,u,c);0!==d&&(e.rotate(-d),e.translate(-s,-l))}}};var Rd={drawNode:function(e,t,n){var r,i,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],l=this,u=t._private,c=u.rscratch,h=t.position();if(_(h.x)&&_(h.y)&&(!s||t.visible())){var d,p,g=s?t.effectiveOpacity():1,f=l.usePaths(),v=!1,y=t.padding();r=t.width()+2*y,i=t.height()+2*y,n&&(p=n,e.translate(-p.x1,-p.y1));for(var m=t.pstyle("background-image").value,b=new Array(m.length),x=new Array(m.length),w=0,E=0;E<m.length;E++){var T=m[E];if(b[E]=null!=T&&"none"!==T){var D=t.cy().style().getIndexedStyle(t,"background-image-crossorigin","value",E);w++,x[E]=l.getCachedImage(T,D,(function(){u.backgroundTimestamp=Date.now(),t.emitAndNotify("background")}))}}var C=t.pstyle("background-blacken").value,N=t.pstyle("border-width").pfValue,A=t.pstyle("background-opacity").value*g,L=t.pstyle("border-color").value,S=t.pstyle("border-style").value,O=t.pstyle("border-opacity").value*g;e.lineJoin="miter";var I=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:A;l.eleFillStyle(e,t,n)},k=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:O;l.colorStrokeStyle(e,L[0],L[1],L[2],t)},M=t.pstyle("shape").strValue,P=t.pstyle("shape-polygon-points").pfValue;if(f){e.translate(h.x,h.y);var R=l.nodePathCache=l.nodePathCache||[],B=ft("polygon"===M?M+","+P.join(","):M,""+i,""+r),F=R[B];null!=F?(d=F,v=!0,c.pathCache=d):(d=new Path2D,R[B]=c.pathCache=d)}var z=function(){if(!v){var n=h;f&&(n={x:0,y:0}),l.nodeShapes[l.getNodeShape(t)].draw(d||e,n.x,n.y,r,i)}f?e.fill(d):e.fill()},G=function(){for(var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g,r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=u.backgrounding,a=0,o=0;o<x.length;o++){var s=t.cy().style().getIndexedStyle(t,"background-image-containment","value",o);r&&"over"===s||!r&&"inside"===s?a++:b[o]&&x[o].complete&&!x[o].error&&(a++,l.drawInscribedImage(e,x[o],t,o,n))}u.backgrounding=!(a===w),i!==u.backgrounding&&t.updateStyle(!1)},Y=function(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g;l.hasPie(t)&&(l.drawPie(e,t,a),n&&(f||l.nodeShapes[l.getNodeShape(t)].draw(e,h.x,h.y,r,i)))},X=function(){var t=(C>0?C:-C)*(arguments.length>0&&void 0!==arguments[0]?arguments[0]:g),n=C>0?0:255;0!==C&&(l.colorFillStyle(e,n,n,n,t),f?e.fill(d):e.fill())},V=function(){if(N>0){if(e.lineWidth=N,e.lineCap="butt",e.setLineDash)switch(S){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([])}if(f?e.stroke(d):e.stroke(),"double"===S){e.lineWidth=N/3;var t=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",f?e.stroke(d):e.stroke(),e.globalCompositeOperation=t}e.setLineDash&&e.setLineDash([])}},U=function(){o&&l.drawNodeOverlay(e,t,h,r,i)},j=function(){o&&l.drawNodeUnderlay(e,t,h,r,i)},H=function(){l.drawElementText(e,t,null,a)};if("yes"===t.pstyle("ghost").value){var q=t.pstyle("ghost-offset-x").pfValue,W=t.pstyle("ghost-offset-y").pfValue,$=t.pstyle("ghost-opacity").value,K=$*g;e.translate(q,W),I($*A),z(),G(K,!0),k($*O),V(),Y(0!==C||0!==N),G(K,!1),X(K),e.translate(-q,-W)}f&&e.translate(-h.x,-h.y),j(),f&&e.translate(h.x,h.y),I(),z(),G(g,!0),k(),V(),Y(0!==C||0!==N),G(g,!1),X(),f&&e.translate(-h.x,-h.y),H(),U(),n&&e.translate(p.x1,p.y1)}}},Bd=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(t,n,r,i,a){var o=this;if(n.visible()){var s=n.pstyle("".concat(e,"-padding")).pfValue,l=n.pstyle("".concat(e,"-opacity")).value,u=n.pstyle("".concat(e,"-color")).value,c=n.pstyle("".concat(e,"-shape")).value;if(l>0){if(r=r||n.position(),null==i||null==a){var h=n.padding();i=n.width()+2*h,a=n.height()+2*h}o.colorFillStyle(t,u[0],u[1],u[2],l),o.nodeShapes[c].draw(t,r.x,r.y,i+2*s,a+2*s),t.fill()}}}};Rd.drawNodeOverlay=Bd("overlay"),Rd.drawNodeUnderlay=Bd("underlay"),Rd.hasPie=function(e){return(e=e[0])._private.hasPie},Rd.drawPie=function(e,t,n,r){t=t[0],r=r||t.position();var i=t.cy().style(),a=t.pstyle("pie-size"),o=r.x,s=r.y,l=t.width(),u=t.height(),c=Math.min(l,u)/2,h=0;this.usePaths()&&(o=0,s=0),"%"===a.units?c*=a.pfValue:void 0!==a.pfValue&&(c=a.pfValue/2);for(var d=1;d<=i.pieBackgroundN;d++){var p=t.pstyle("pie-"+d+"-background-size").value,g=t.pstyle("pie-"+d+"-background-color").value,f=t.pstyle("pie-"+d+"-background-opacity").value*n,v=p/100;v+h>1&&(v=1-h);var y=1.5*Math.PI+2*Math.PI*h,m=y+2*Math.PI*v;0===p||h>=1||h+v>1||(e.beginPath(),e.moveTo(o,s),e.arc(o,s,c,y,m),e.closePath(),this.colorFillStyle(e,g[0],g[1],g[2],f),e.fill(),h+=v)}};var Fd={},zd=100;Fd.getPixelRatio=function(){var e=this.data.contexts[0];if(null!=this.forcedPixelRatio)return this.forcedPixelRatio;var t=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(window.devicePixelRatio||1)/t},Fd.paintCache=function(e){for(var t,n=this.paintCaches=this.paintCaches||[],r=!0,i=0;i<n.length;i++)if((t=n[i]).context===e){r=!1;break}return r&&(t={context:e},n.push(t)),t},Fd.createGradientStyleFor=function(e,t,n,r,i){var a,o=this.usePaths(),s=n.pstyle(t+"-gradient-stop-colors").value,l=n.pstyle(t+"-gradient-stop-positions").pfValue;if("radial-gradient"===r)if(n.isEdge()){var u=n.sourceEndpoint(),c=n.targetEndpoint(),h=n.midpoint(),d=En(u,h),p=En(c,h);a=e.createRadialGradient(h.x,h.y,0,h.x,h.y,Math.max(d,p))}else{var g=o?{x:0,y:0}:n.position(),f=n.paddedWidth(),v=n.paddedHeight();a=e.createRadialGradient(g.x,g.y,0,g.x,g.y,Math.max(f,v))}else if(n.isEdge()){var y=n.sourceEndpoint(),m=n.targetEndpoint();a=e.createLinearGradient(y.x,y.y,m.x,m.y)}else{var b=o?{x:0,y:0}:n.position(),x=n.paddedWidth()/2,w=n.paddedHeight()/2;switch(n.pstyle("background-gradient-direction").value){case"to-bottom":a=e.createLinearGradient(b.x,b.y-w,b.x,b.y+w);break;case"to-top":a=e.createLinearGradient(b.x,b.y+w,b.x,b.y-w);break;case"to-left":a=e.createLinearGradient(b.x+x,b.y,b.x-x,b.y);break;case"to-right":a=e.createLinearGradient(b.x-x,b.y,b.x+x,b.y);break;case"to-bottom-right":case"to-right-bottom":a=e.createLinearGradient(b.x-x,b.y-w,b.x+x,b.y+w);break;case"to-top-right":case"to-right-top":a=e.createLinearGradient(b.x-x,b.y+w,b.x+x,b.y-w);break;case"to-bottom-left":case"to-left-bottom":a=e.createLinearGradient(b.x+x,b.y-w,b.x-x,b.y+w);break;case"to-top-left":case"to-left-top":a=e.createLinearGradient(b.x+x,b.y+w,b.x-x,b.y-w)}}if(!a)return null;for(var E=l.length===s.length,T=s.length,_=0;_<T;_++)a.addColorStop(E?l[_]:_/(T-1),"rgba("+s[_][0]+","+s[_][1]+","+s[_][2]+","+i+")");return a},Fd.gradientFillStyle=function(e,t,n,r){var i=this.createGradientStyleFor(e,"background",t,n,r);if(!i)return null;e.fillStyle=i},Fd.colorFillStyle=function(e,t,n,r,i){e.fillStyle="rgba("+t+","+n+","+r+","+i+")"},Fd.eleFillStyle=function(e,t,n){var r=t.pstyle("background-fill").value;if("linear-gradient"===r||"radial-gradient"===r)this.gradientFillStyle(e,t,r,n);else{var i=t.pstyle("background-color").value;this.colorFillStyle(e,i[0],i[1],i[2],n)}},Fd.gradientStrokeStyle=function(e,t,n,r){var i=this.createGradientStyleFor(e,"line",t,n,r);if(!i)return null;e.strokeStyle=i},Fd.colorStrokeStyle=function(e,t,n,r,i){e.strokeStyle="rgba("+t+","+n+","+r+","+i+")"},Fd.eleStrokeStyle=function(e,t,n){var r=t.pstyle("line-fill").value;if("linear-gradient"===r||"radial-gradient"===r)this.gradientStrokeStyle(e,t,r,n);else{var i=t.pstyle("line-color").value;this.colorStrokeStyle(e,i[0],i[1],i[2],n)}},Fd.matchCanvasSize=function(e){var t=this,n=t.data,r=t.findContainerClientCoords(),i=r[2],a=r[3],o=t.getPixelRatio(),s=t.motionBlurPxRatio;e!==t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_NODE]&&e!==t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_DRAG]||(o=s);var l,u=i*o,c=a*o;if(u!==t.canvasWidth||c!==t.canvasHeight){t.fontCaches=null;var h=n.canvasContainer;h.style.width=i+"px",h.style.height=a+"px";for(var d=0;d<t.CANVAS_LAYERS;d++)(l=n.canvases[d]).width=u,l.height=c,l.style.width=i+"px",l.style.height=a+"px";for(d=0;d<t.BUFFER_COUNT;d++)(l=n.bufferCanvases[d]).width=u,l.height=c,l.style.width=i+"px",l.style.height=a+"px";t.textureMult=1,o<=1&&(l=n.bufferCanvases[t.TEXTURE_BUFFER],t.textureMult=2,l.width=u*t.textureMult,l.height=c*t.textureMult),t.canvasWidth=u,t.canvasHeight=c}},Fd.renderTo=function(e,t,n,r){this.render({forcedContext:e,forcedZoom:t,forcedPan:n,drawAllLayers:!0,forcedPxRatio:r})},Fd.render=function(e){var t=(e=e||kt()).forcedContext,n=e.drawAllLayers,r=e.drawOnlyNodeLayer,i=e.forcedZoom,a=e.forcedPan,o=this,s=void 0===e.forcedPxRatio?this.getPixelRatio():e.forcedPxRatio,l=o.cy,u=o.data,c=u.canvasNeedsRedraw,h=o.textureOnViewport&&!t&&(o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming),d=void 0!==e.motionBlur?e.motionBlur:o.motionBlur,p=o.motionBlurPxRatio,g=l.hasCompoundNodes(),f=o.hoverData.draggingEles,v=!(!o.hoverData.selecting&&!o.touchData.selecting),y=d=d&&!t&&o.motionBlurEnabled&&!v;t||(o.prevPxRatio!==s&&(o.invalidateContainerClientCoordsCache(),o.matchCanvasSize(o.container),o.redrawHint("eles",!0),o.redrawHint("drag",!0)),o.prevPxRatio=s),!t&&o.motionBlurTimeout&&clearTimeout(o.motionBlurTimeout),d&&(null==o.mbFrames&&(o.mbFrames=0),o.mbFrames++,o.mbFrames<3&&(y=!1),o.mbFrames>o.minMbLowQualFrames&&(o.motionBlurPxRatio=o.mbPxRBlurry)),o.clearingMotionBlur&&(o.motionBlurPxRatio=1),o.textureDrawLastFrame&&!h&&(c[o.NODE]=!0,c[o.SELECT_BOX]=!0);var m=l.style(),b=l.zoom(),x=void 0!==i?i:b,w=l.pan(),E={x:w.x,y:w.y},T={zoom:b,pan:{x:w.x,y:w.y}},_=o.prevViewport;void 0===_||T.zoom!==_.zoom||T.pan.x!==_.pan.x||T.pan.y!==_.pan.y||f&&!g||(o.motionBlurPxRatio=1),a&&(E=a),x*=s,E.x*=s,E.y*=s;var D=o.getCachedZSortedEles();function C(e,t,n,r,i){var a=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",o.colorFillStyle(e,255,255,255,o.motionBlurTransparency),e.fillRect(t,n,r,i),e.globalCompositeOperation=a}function N(e,r){var s,l,c,h;o.clearingMotionBlur||e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]&&e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]?(s=E,l=x,c=o.canvasWidth,h=o.canvasHeight):(s={x:w.x*p,y:w.y*p},l=b*p,c=o.canvasWidth*p,h=o.canvasHeight*p),e.setTransform(1,0,0,1,0,0),"motionBlur"===r?C(e,0,0,c,h):t||void 0!==r&&!r||e.clearRect(0,0,c,h),n||(e.translate(s.x,s.y),e.scale(l,l)),a&&e.translate(a.x,a.y),i&&e.scale(i,i)}if(h||(o.textureDrawLastFrame=!1),h){if(o.textureDrawLastFrame=!0,!o.textureCache){o.textureCache={},o.textureCache.bb=l.mutableElements().boundingBox(),o.textureCache.texture=o.data.bufferCanvases[o.TEXTURE_BUFFER];var A=o.data.bufferContexts[o.TEXTURE_BUFFER];A.setTransform(1,0,0,1,0,0),A.clearRect(0,0,o.canvasWidth*o.textureMult,o.canvasHeight*o.textureMult),o.render({forcedContext:A,drawOnlyNodeLayer:!0,forcedPxRatio:s*o.textureMult}),(T=o.textureCache.viewport={zoom:l.zoom(),pan:l.pan(),width:o.canvasWidth,height:o.canvasHeight}).mpan={x:(0-T.pan.x)/T.zoom,y:(0-T.pan.y)/T.zoom}}c[o.DRAG]=!1,c[o.NODE]=!1;var L=u.contexts[o.NODE],S=o.textureCache.texture;T=o.textureCache.viewport,L.setTransform(1,0,0,1,0,0),d?C(L,0,0,T.width,T.height):L.clearRect(0,0,T.width,T.height);var O=m.core("outside-texture-bg-color").value,I=m.core("outside-texture-bg-opacity").value;o.colorFillStyle(L,O[0],O[1],O[2],I),L.fillRect(0,0,T.width,T.height),b=l.zoom(),N(L,!1),L.clearRect(T.mpan.x,T.mpan.y,T.width/T.zoom/s,T.height/T.zoom/s),L.drawImage(S,T.mpan.x,T.mpan.y,T.width/T.zoom/s,T.height/T.zoom/s)}else o.textureOnViewport&&!t&&(o.textureCache=null);var k=l.extent(),M=o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming||o.hoverData.draggingEles||o.cy.animated(),P=o.hideEdgesOnViewport&&M,R=[];if(R[o.NODE]=!c[o.NODE]&&d&&!o.clearedForMotionBlur[o.NODE]||o.clearingMotionBlur,R[o.NODE]&&(o.clearedForMotionBlur[o.NODE]=!0),R[o.DRAG]=!c[o.DRAG]&&d&&!o.clearedForMotionBlur[o.DRAG]||o.clearingMotionBlur,R[o.DRAG]&&(o.clearedForMotionBlur[o.DRAG]=!0),c[o.NODE]||n||r||R[o.NODE]){var B=d&&!R[o.NODE]&&1!==p;N(L=t||(B?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]:u.contexts[o.NODE]),d&&!B?"motionBlur":void 0),P?o.drawCachedNodes(L,D.nondrag,s,k):o.drawLayeredElements(L,D.nondrag,s,k),o.debug&&o.drawDebugPoints(L,D.nondrag),n||d||(c[o.NODE]=!1)}if(!r&&(c[o.DRAG]||n||R[o.DRAG])&&(B=d&&!R[o.DRAG]&&1!==p,N(L=t||(B?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]:u.contexts[o.DRAG]),d&&!B?"motionBlur":void 0),P?o.drawCachedNodes(L,D.drag,s,k):o.drawCachedElements(L,D.drag,s,k),o.debug&&o.drawDebugPoints(L,D.drag),n||d||(c[o.DRAG]=!1)),o.showFps||!r&&c[o.SELECT_BOX]&&!n){if(N(L=t||u.contexts[o.SELECT_BOX]),1==o.selection[4]&&(o.hoverData.selecting||o.touchData.selecting)){b=o.cy.zoom();var F=m.core("selection-box-border-width").value/b;L.lineWidth=F,L.fillStyle="rgba("+m.core("selection-box-color").value[0]+","+m.core("selection-box-color").value[1]+","+m.core("selection-box-color").value[2]+","+m.core("selection-box-opacity").value+")",L.fillRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]),F>0&&(L.strokeStyle="rgba("+m.core("selection-box-border-color").value[0]+","+m.core("selection-box-border-color").value[1]+","+m.core("selection-box-border-color").value[2]+","+m.core("selection-box-opacity").value+")",L.strokeRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]))}if(u.bgActivePosistion&&!o.hoverData.selecting){b=o.cy.zoom();var z=u.bgActivePosistion;L.fillStyle="rgba("+m.core("active-bg-color").value[0]+","+m.core("active-bg-color").value[1]+","+m.core("active-bg-color").value[2]+","+m.core("active-bg-opacity").value+")",L.beginPath(),L.arc(z.x,z.y,m.core("active-bg-size").pfValue/b,0,2*Math.PI),L.fill()}var G=o.lastRedrawTime;if(o.showFps&&G){G=Math.round(G);var Y=Math.round(1e3/G);L.setTransform(1,0,0,1,0,0),L.fillStyle="rgba(255, 0, 0, 0.75)",L.strokeStyle="rgba(255, 0, 0, 0.75)",L.lineWidth=1,L.fillText("1 frame = "+G+" ms = "+Y+" fps",0,20);var X=60;L.strokeRect(0,30,250,20),L.fillRect(0,30,250*Math.min(Y/X,1),20)}n||(c[o.SELECT_BOX]=!1)}if(d&&1!==p){var V=u.contexts[o.NODE],U=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_NODE],j=u.contexts[o.DRAG],H=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_DRAG],q=function(e,t,n){e.setTransform(1,0,0,1,0,0),n||!y?e.clearRect(0,0,o.canvasWidth,o.canvasHeight):C(e,0,0,o.canvasWidth,o.canvasHeight);var r=p;e.drawImage(t,0,0,o.canvasWidth*r,o.canvasHeight*r,0,0,o.canvasWidth,o.canvasHeight)};(c[o.NODE]||R[o.NODE])&&(q(V,U,R[o.NODE]),c[o.NODE]=!1),(c[o.DRAG]||R[o.DRAG])&&(q(j,H,R[o.DRAG]),c[o.DRAG]=!1)}o.prevViewport=T,o.clearingMotionBlur&&(o.clearingMotionBlur=!1,o.motionBlurCleared=!0,o.motionBlur=!0),d&&(o.motionBlurTimeout=setTimeout((function(){o.motionBlurTimeout=null,o.clearedForMotionBlur[o.NODE]=!1,o.clearedForMotionBlur[o.DRAG]=!1,o.motionBlur=!1,o.clearingMotionBlur=!h,o.mbFrames=0,c[o.NODE]=!0,c[o.DRAG]=!0,o.redraw()}),zd)),t||l.emit("render")};for(var Gd={drawPolygonPath:function(e,t,n,r,i,a){var o=r/2,s=i/2;e.beginPath&&e.beginPath(),e.moveTo(t+o*a[0],n+s*a[1]);for(var l=1;l<a.length/2;l++)e.lineTo(t+o*a[2*l],n+s*a[2*l+1]);e.closePath()},drawRoundPolygonPath:function(e,t,n,r,i,a){var o=r/2,s=i/2,l=hr(r,i);e.beginPath&&e.beginPath();for(var u=0;u<a.length/4;u++){var c=void 0,h=void 0;c=0===u?a.length-2:4*u-2,h=4*u+2;var d=t+o*a[4*u],p=n+s*a[4*u+1],g=-a[c]*a[h]-a[c+1]*a[h+1],f=l/Math.tan(Math.acos(g)/2),v=d-f*a[c],y=p-f*a[c+1],m=d+f*a[h],b=p+f*a[h+1];0===u?e.moveTo(v,y):e.lineTo(v,y),e.arcTo(d,p,m,b,l)}e.closePath()},drawRoundRectanglePath:function(e,t,n,r,i){var a=r/2,o=i/2,s=cr(r,i);e.beginPath&&e.beginPath(),e.moveTo(t,n-o),e.arcTo(t+a,n-o,t+a,n,s),e.arcTo(t+a,n+o,t,n+o,s),e.arcTo(t-a,n+o,t-a,n,s),e.arcTo(t-a,n-o,t,n-o,s),e.lineTo(t,n-o),e.closePath()},drawBottomRoundRectanglePath:function(e,t,n,r,i){var a=r/2,o=i/2,s=cr(r,i);e.beginPath&&e.beginPath(),e.moveTo(t,n-o),e.lineTo(t+a,n-o),e.lineTo(t+a,n),e.arcTo(t+a,n+o,t,n+o,s),e.arcTo(t-a,n+o,t-a,n,s),e.lineTo(t-a,n-o),e.lineTo(t,n-o),e.closePath()},drawCutRectanglePath:function(e,t,n,r,i){var a=r/2,o=i/2,s=dr();e.beginPath&&e.beginPath(),e.moveTo(t-a+s,n-o),e.lineTo(t+a-s,n-o),e.lineTo(t+a,n-o+s),e.lineTo(t+a,n+o-s),e.lineTo(t+a-s,n+o),e.lineTo(t-a+s,n+o),e.lineTo(t-a,n+o-s),e.lineTo(t-a,n-o+s),e.closePath()},drawBarrelPath:function(e,t,n,r,i){var a=r/2,o=i/2,s=t-a,l=t+a,u=n-o,c=n+o,h=gr(r,i),d=h.widthOffset,p=h.heightOffset,g=h.ctrlPtOffsetPct*d;e.beginPath&&e.beginPath(),e.moveTo(s,u+p),e.lineTo(s,c-p),e.quadraticCurveTo(s+g,c,s+d,c),e.lineTo(l-d,c),e.quadraticCurveTo(l-g,c,l,c-p),e.lineTo(l,u+p),e.quadraticCurveTo(l-g,u,l-d,u),e.lineTo(s+d,u),e.quadraticCurveTo(s+g,u,s,u+p),e.closePath()}},Yd=Math.sin(0),Xd=Math.cos(0),Vd={},Ud={},jd=Math.PI/40,Hd=0*Math.PI;Hd<2*Math.PI;Hd+=jd)Vd[Hd]=Math.sin(Hd),Ud[Hd]=Math.cos(Hd);Gd.drawEllipsePath=function(e,t,n,r,i){if(e.beginPath&&e.beginPath(),e.ellipse)e.ellipse(t,n,r/2,i/2,0,0,2*Math.PI);else for(var a,o,s=r/2,l=i/2,u=0*Math.PI;u<2*Math.PI;u+=jd)a=t-s*Vd[u]*Yd+s*Ud[u]*Xd,o=n+l*Ud[u]*Yd+l*Vd[u]*Xd,0===u?e.moveTo(a,o):e.lineTo(a,o);e.closePath()};var qd={};function Wd(e,t){for(var n=atob(e),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return new Blob([r],{type:t})}function $d(e){var t=e.indexOf(",");return e.substr(t+1)}function Kd(e,t,n){var r=function(){return t.toDataURL(n,e.quality)};switch(e.output){case"blob-promise":return new Yi((function(r,i){try{t.toBlob((function(e){null!=e?r(e):i(new Error("`canvas.toBlob()` sent a null value in its callback"))}),n,e.quality)}catch(a){i(a)}}));case"blob":return Wd($d(r()),n);case"base64":return $d(r());default:return r()}}qd.createBuffer=function(e,t){var n=document.createElement("canvas");return n.width=e,n.height=t,[n,n.getContext("2d")]},qd.bufferCanvasImage=function(e){var t=this.cy,n=t.mutableElements().boundingBox(),r=this.findContainerClientCoords(),i=e.full?Math.ceil(n.w):r[2],a=e.full?Math.ceil(n.h):r[3],o=_(e.maxWidth)||_(e.maxHeight),s=this.getPixelRatio(),l=1;if(void 0!==e.scale)i*=e.scale,a*=e.scale,l=e.scale;else if(o){var u=1/0,c=1/0;_(e.maxWidth)&&(u=l*e.maxWidth/i),_(e.maxHeight)&&(c=l*e.maxHeight/a),i*=l=Math.min(u,c),a*=l}o||(i*=s,a*=s,l*=s);var h=document.createElement("canvas");h.width=i,h.height=a,h.style.width=i+"px",h.style.height=a+"px";var d=h.getContext("2d");if(i>0&&a>0){d.clearRect(0,0,i,a),d.globalCompositeOperation="source-over";var p=this.getCachedZSortedEles();if(e.full)d.translate(-n.x1*l,-n.y1*l),d.scale(l,l),this.drawElements(d,p),d.scale(1/l,1/l),d.translate(n.x1*l,n.y1*l);else{var g=t.pan(),f={x:g.x*l,y:g.y*l};l*=t.zoom(),d.translate(f.x,f.y),d.scale(l,l),this.drawElements(d,p),d.scale(1/l,1/l),d.translate(-f.x,-f.y)}e.bg&&(d.globalCompositeOperation="destination-over",d.fillStyle=e.bg,d.rect(0,0,i,a),d.fill())}return h},qd.png=function(e){return Kd(e,this.bufferCanvasImage(e),"image/png")},qd.jpg=function(e){return Kd(e,this.bufferCanvasImage(e),"image/jpeg")};var Zd={nodeShapeImpl:function(e,t,n,r,i,a,o){switch(e){case"ellipse":return this.drawEllipsePath(t,n,r,i,a);case"polygon":return this.drawPolygonPath(t,n,r,i,a,o);case"round-polygon":return this.drawRoundPolygonPath(t,n,r,i,a,o);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(t,n,r,i,a);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(t,n,r,i,a);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(t,n,r,i,a);case"barrel":return this.drawBarrelPath(t,n,r,i,a)}}},Qd=ep,Jd=ep.prototype;function ep(e){var t=this;t.data={canvases:new Array(Jd.CANVAS_LAYERS),contexts:new Array(Jd.CANVAS_LAYERS),canvasNeedsRedraw:new Array(Jd.CANVAS_LAYERS),bufferCanvases:new Array(Jd.BUFFER_COUNT),bufferContexts:new Array(Jd.CANVAS_LAYERS)};var n="-webkit-tap-highlight-color",r="rgba(0,0,0,0)";t.data.canvasContainer=document.createElement("div");var i=t.data.canvasContainer.style;t.data.canvasContainer.style[n]=r,i.position="relative",i.zIndex="0",i.overflow="hidden";var a=e.cy.container();a.appendChild(t.data.canvasContainer),a.style[n]=r;var o={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};B()&&(o["-ms-touch-action"]="none",o["touch-action"]="none");for(var s=0;s<Jd.CANVAS_LAYERS;s++){var l=t.data.canvases[s]=document.createElement("canvas");t.data.contexts[s]=l.getContext("2d"),Object.keys(o).forEach((function(e){l.style[e]=o[e]})),l.style.position="absolute",l.setAttribute("data-id","layer"+s),l.style.zIndex=String(Jd.CANVAS_LAYERS-s),t.data.canvasContainer.appendChild(l),t.data.canvasNeedsRedraw[s]=!1}for(t.data.topCanvas=t.data.canvases[0],t.data.canvases[Jd.NODE].setAttribute("data-id","layer"+Jd.NODE+"-node"),t.data.canvases[Jd.SELECT_BOX].setAttribute("data-id","layer"+Jd.SELECT_BOX+"-selectbox"),t.data.canvases[Jd.DRAG].setAttribute("data-id","layer"+Jd.DRAG+"-drag"),s=0;s<Jd.BUFFER_COUNT;s++)t.data.bufferCanvases[s]=document.createElement("canvas"),t.data.bufferContexts[s]=t.data.bufferCanvases[s].getContext("2d"),t.data.bufferCanvases[s].style.position="absolute",t.data.bufferCanvases[s].setAttribute("data-id","buffer"+s),t.data.bufferCanvases[s].style.zIndex=String(-s-1),t.data.bufferCanvases[s].style.visibility="hidden";t.pathsEnabled=!0;var u=Ln(),c=function(e){return{x:(e.x1+e.x2)/2,y:(e.y1+e.y2)/2}},h=function(e){return{x:-e.w/2,y:-e.h/2}},d=function(e){var t=e[0]._private;return!(t.oldBackgroundTimestamp===t.backgroundTimestamp)},p=function(e){return e[0]._private.nodeKey},g=function(e){return e[0]._private.labelStyleKey},f=function(e){return e[0]._private.sourceLabelStyleKey},v=function(e){return e[0]._private.targetLabelStyleKey},y=function(e,n,r,i,a){return t.drawElement(e,n,r,!1,!1,a)},m=function(e,n,r,i,a){return t.drawElementText(e,n,r,i,"main",a)},b=function(e,n,r,i,a){return t.drawElementText(e,n,r,i,"source",a)},x=function(e,n,r,i,a){return t.drawElementText(e,n,r,i,"target",a)},w=function(e){return e.boundingBox(),e[0]._private.bodyBounds},E=function(e){return e.boundingBox(),e[0]._private.labelBounds.main||u},T=function(e){return e.boundingBox(),e[0]._private.labelBounds.source||u},_=function(e){return e.boundingBox(),e[0]._private.labelBounds.target||u},D=function(e,t){return t},C=function(e){return c(w(e))},N=function(e,t,n){var r=e?e+"-":"";return{x:t.x+n.pstyle(r+"text-margin-x").pfValue,y:t.y+n.pstyle(r+"text-margin-y").pfValue}},A=function(e,t,n){var r=e[0]._private.rscratch;return{x:r[t],y:r[n]}},L=function(e){return N("",A(e,"labelX","labelY"),e)},S=function(e){return N("source",A(e,"sourceLabelX","sourceLabelY"),e)},O=function(e){return N("target",A(e,"targetLabelX","targetLabelY"),e)},I=function(e){return h(w(e))},k=function(e){return h(T(e))},M=function(e){return h(_(e))},P=function(e){var t=E(e),n=h(E(e));if(e.isNode()){switch(e.pstyle("text-halign").value){case"left":n.x=-t.w;break;case"right":n.x=0}switch(e.pstyle("text-valign").value){case"top":n.y=-t.h;break;case"bottom":n.y=0}}return n},R=t.data.eleTxrCache=new Zh(t,{getKey:p,doesEleInvalidateKey:d,drawElement:y,getBoundingBox:w,getRotationPoint:C,getRotationOffset:I,allowEdgeTxrCaching:!1,allowParentTxrCaching:!1}),F=t.data.lblTxrCache=new Zh(t,{getKey:g,drawElement:m,getBoundingBox:E,getRotationPoint:L,getRotationOffset:P,isVisible:D}),z=t.data.slbTxrCache=new Zh(t,{getKey:f,drawElement:b,getBoundingBox:T,getRotationPoint:S,getRotationOffset:k,isVisible:D}),G=t.data.tlbTxrCache=new Zh(t,{getKey:v,drawElement:x,getBoundingBox:_,getRotationPoint:O,getRotationOffset:M,isVisible:D}),Y=t.data.lyrTxrCache=new pd(t);t.onUpdateEleCalcs((function(e,t){R.invalidateElements(t),F.invalidateElements(t),z.invalidateElements(t),G.invalidateElements(t),Y.invalidateElements(t);for(var n=0;n<t.length;n++){var r=t[n]._private;r.oldBackgroundTimestamp=r.backgroundTimestamp}}));var X=function(e){for(var t=0;t<e.length;t++)Y.enqueueElementRefinement(e[t].ele)};R.onDequeue(X),F.onDequeue(X),z.onDequeue(X),G.onDequeue(X)}Jd.CANVAS_LAYERS=3,Jd.SELECT_BOX=0,Jd.DRAG=1,Jd.NODE=2,Jd.BUFFER_COUNT=3,Jd.TEXTURE_BUFFER=0,Jd.MOTIONBLUR_BUFFER_NODE=1,Jd.MOTIONBLUR_BUFFER_DRAG=2,Jd.redrawHint=function(e,t){var n=this;switch(e){case"eles":n.data.canvasNeedsRedraw[Jd.NODE]=t;break;case"drag":n.data.canvasNeedsRedraw[Jd.DRAG]=t;break;case"select":n.data.canvasNeedsRedraw[Jd.SELECT_BOX]=t}};var tp="undefined"!=typeof Path2D;Jd.path2dEnabled=function(e){if(void 0===e)return this.pathsEnabled;this.pathsEnabled=!!e},Jd.usePaths=function(){return tp&&this.pathsEnabled},Jd.setImgSmoothing=function(e,t){null!=e.imageSmoothingEnabled?e.imageSmoothingEnabled=t:(e.webkitImageSmoothingEnabled=t,e.mozImageSmoothingEnabled=t,e.msImageSmoothingEnabled=t)},Jd.getImgSmoothing=function(e){return null!=e.imageSmoothingEnabled?e.imageSmoothingEnabled:e.webkitImageSmoothingEnabled||e.mozImageSmoothingEnabled||e.msImageSmoothingEnabled},Jd.makeOffscreenCanvas=function(t,n){var r;return"undefined"!==("undefined"==typeof OffscreenCanvas?"undefined":e(OffscreenCanvas))?r=new OffscreenCanvas(t,n):((r=document.createElement("canvas")).width=t,r.height=n),r},[md,_d,Od,kd,Md,Rd,Fd,Gd,qd,Zd].forEach((function(e){Q(Jd,e)}));var np=[{type:"layout",extensions:Jc},{type:"renderer",extensions:[{name:"null",impl:eh},{name:"base",impl:Ch},{name:"canvas",impl:Qd}]}],rp={},ip={};function ap(e,t,n){var r=n,i=function(n){Nt("Can not register `"+t+"` for `"+e+"` since `"+n+"` already exists in the prototype and can not be overridden")};if("core"===e){if(hc.prototype[t])return i(t);hc.prototype[t]=n}else if("collection"===e){if(Du.prototype[t])return i(t);Du.prototype[t]=n}else if("layout"===e){for(var a=function(e){this.options=e,n.call(this,e),E(this._private)||(this._private={}),this._private.cy=e.cy,this._private.listeners=[],this.createEmitter()},o=a.prototype=Object.create(n.prototype),s=[],l=0;l<s.length;l++){var u=s[l];o[u]=o[u]||function(){return this}}o.start&&!o.run?o.run=function(){return this.start(),this}:!o.start&&o.run&&(o.start=function(){return this.run(),this});var c=n.prototype.stop;o.stop=function(){var e=this.options;if(e&&e.animate){var t=this.animations;if(t)for(var n=0;n<t.length;n++)t[n].stop()}return c?c.call(this):this.emit("layoutstop"),this},o.destroy||(o.destroy=function(){return this}),o.cy=function(){return this._private.cy};var h=function(e){return e._private.cy},d={addEventFields:function(e,t){t.layout=e,t.cy=h(e),t.target=e},bubble:function(){return!0},parent:function(e){return h(e)}};Q(o,{createEmitter:function(){return this._private.emitter=new Xl(d,this),this},emitter:function(){return this._private.emitter},on:function(e,t){return this.emitter().on(e,t),this},one:function(e,t){return this.emitter().one(e,t),this},once:function(e,t){return this.emitter().one(e,t),this},removeListener:function(e,t){return this.emitter().removeListener(e,t),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},emit:function(e,t){return this.emitter().emit(e,t),this}}),gs.eventAliasesOn(o),r=a}else if("renderer"===e&&"null"!==t&&"base"!==t){var p=op("renderer","base"),g=p.prototype,f=n,v=n.prototype,y=function(){p.apply(this,arguments),f.apply(this,arguments)},m=y.prototype;for(var b in g){var x=g[b];if(null!=v[b])return i(b);m[b]=x}for(var w in v)m[w]=v[w];g.clientFunctions.forEach((function(e){m[e]=m[e]||function(){Dt("Renderer does not implement `renderer."+e+"()` on its prototype")}})),r=y}else if("__proto__"===e||"constructor"===e||"prototype"===e)return Dt(e+" is an illegal type to be registered, possibly lead to prototype pollutions");return ae({map:rp,keys:[e,t],value:r})}function op(e,t){return oe({map:rp,keys:[e,t]})}function sp(e,t,n,r,i){return ae({map:ip,keys:[e,t,n,r],value:i})}function lp(e,t,n,r){return oe({map:ip,keys:[e,t,n,r]})}var up=function(){return 2===arguments.length?op.apply(null,arguments):3===arguments.length?ap.apply(null,arguments):4===arguments.length?lp.apply(null,arguments):5===arguments.length?sp.apply(null,arguments):void Dt("Invalid extension access syntax")};hc.prototype.extension=up,np.forEach((function(e){e.extensions.forEach((function(t){ap(e.type,t.name,t.impl)}))}));var cp=function e(){if(!(this instanceof e))return new e;this.length=0},hp=cp.prototype;hp.instanceString=function(){return"stylesheet"},hp.selector=function(e){return this[this.length++]={selector:e,properties:[]},this},hp.css=function(e,t){var n=this.length-1;if(b(e))this[n].properties.push({name:e,value:t});else if(E(e))for(var r=e,i=Object.keys(r),a=0;a<i.length;a++){var o=i[a],s=r[o];if(null!=s){var l=ac.properties[o]||ac.properties[G(o)];if(null!=l){var u=l.name,c=s;this[n].properties.push({name:u,value:c})}}}return this},hp.style=hp.css,hp.generateStyle=function(e){var t=new ac(e);return this.appendToStyle(t)},hp.appendToStyle=function(e){for(var t=0;t<this.length;t++){var n=this[t],r=n.selector,i=n.properties;e.selector(r);for(var a=0;a<i.length;a++){var o=i[a];e.css(o.name,o.value)}}return e};var dp="3.26.0",pp=function(e){return void 0===e&&(e={}),E(e)?new hc(e):b(e)?up.apply(up,arguments):void 0};return pp.use=function(e){var t=Array.prototype.slice.call(arguments,1);return t.unshift(pp),e.apply(null,t),this},pp.warnings=function(e){return Ct(e)},pp.version=dp,pp.stylesheet=pp.Stylesheet=cp,pp}()},82241:function(e){var t;t=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=26)}([function(e,t,n){"use strict";function r(){}r.QUALITY=1,r.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,r.DEFAULT_INCREMENTAL=!1,r.DEFAULT_ANIMATION_ON_LAYOUT=!0,r.DEFAULT_ANIMATION_DURING_LAYOUT=!1,r.DEFAULT_ANIMATION_PERIOD=50,r.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,r.DEFAULT_GRAPH_MARGIN=15,r.NODE_DIMENSIONS_INCLUDE_LABELS=!1,r.SIMPLE_NODE_SIZE=40,r.SIMPLE_NODE_HALF_SIZE=r.SIMPLE_NODE_SIZE/2,r.EMPTY_COMPOUND_NODE_SIZE=40,r.MIN_EDGE_LENGTH=1,r.WORLD_BOUNDARY=1e6,r.INITIAL_WORLD_BOUNDARY=r.WORLD_BOUNDARY/1e3,r.WORLD_CENTER_X=1200,r.WORLD_CENTER_Y=900,e.exports=r},function(e,t,n){"use strict";var r=n(2),i=n(8),a=n(9);function o(e,t,n){r.call(this,n),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=n,this.bendpoints=[],this.source=e,this.target=t}for(var s in o.prototype=Object.create(r.prototype),r)o[s]=r[s];o.prototype.getSource=function(){return this.source},o.prototype.getTarget=function(){return this.target},o.prototype.isInterGraph=function(){return this.isInterGraph},o.prototype.getLength=function(){return this.length},o.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},o.prototype.getBendpoints=function(){return this.bendpoints},o.prototype.getLca=function(){return this.lca},o.prototype.getSourceInLca=function(){return this.sourceInLca},o.prototype.getTargetInLca=function(){return this.targetInLca},o.prototype.getOtherEnd=function(e){if(this.source===e)return this.target;if(this.target===e)return this.source;throw"Node is not incident with this edge"},o.prototype.getOtherEndInGraph=function(e,t){for(var n=this.getOtherEnd(e),r=t.getGraphManager().getRoot();;){if(n.getOwner()==t)return n;if(n.getOwner()==r)break;n=n.getOwner().getParent()}return null},o.prototype.updateLength=function(){var e=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),e),this.isOverlapingSourceAndTarget||(this.lengthX=e[0]-e[2],this.lengthY=e[1]-e[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},o.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},e.exports=o},function(e,t,n){"use strict";e.exports=function(e){this.vGraphObject=e}},function(e,t,n){"use strict";var r=n(2),i=n(10),a=n(13),o=n(0),s=n(16),l=n(4);function u(e,t,n,o){null==n&&null==o&&(o=t),r.call(this,o),null!=e.graphManager&&(e=e.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=o,this.edges=[],this.graphManager=e,this.rect=null!=n&&null!=t?new a(t.x,t.y,n.width,n.height):new a}for(var c in u.prototype=Object.create(r.prototype),r)u[c]=r[c];u.prototype.getEdges=function(){return this.edges},u.prototype.getChild=function(){return this.child},u.prototype.getOwner=function(){return this.owner},u.prototype.getWidth=function(){return this.rect.width},u.prototype.setWidth=function(e){this.rect.width=e},u.prototype.getHeight=function(){return this.rect.height},u.prototype.setHeight=function(e){this.rect.height=e},u.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},u.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},u.prototype.getCenter=function(){return new l(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},u.prototype.getLocation=function(){return new l(this.rect.x,this.rect.y)},u.prototype.getRect=function(){return this.rect},u.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},u.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},u.prototype.setRect=function(e,t){this.rect.x=e.x,this.rect.y=e.y,this.rect.width=t.width,this.rect.height=t.height},u.prototype.setCenter=function(e,t){this.rect.x=e-this.rect.width/2,this.rect.y=t-this.rect.height/2},u.prototype.setLocation=function(e,t){this.rect.x=e,this.rect.y=t},u.prototype.moveBy=function(e,t){this.rect.x+=e,this.rect.y+=t},u.prototype.getEdgeListToNode=function(e){var t=[],n=this;return n.edges.forEach((function(r){if(r.target==e){if(r.source!=n)throw"Incorrect edge source!";t.push(r)}})),t},u.prototype.getEdgesBetween=function(e){var t=[],n=this;return n.edges.forEach((function(r){if(r.source!=n&&r.target!=n)throw"Incorrect edge source and/or target";r.target!=e&&r.source!=e||t.push(r)})),t},u.prototype.getNeighborsList=function(){var e=new Set,t=this;return t.edges.forEach((function(n){if(n.source==t)e.add(n.target);else{if(n.target!=t)throw"Incorrect incidency!";e.add(n.source)}})),e},u.prototype.withChildren=function(){var e=new Set;if(e.add(this),null!=this.child)for(var t=this.child.getNodes(),n=0;n<t.length;n++)t[n].withChildren().forEach((function(t){e.add(t)}));return e},u.prototype.getNoOfChildren=function(){var e=0;if(null==this.child)e=1;else for(var t=this.child.getNodes(),n=0;n<t.length;n++)e+=t[n].getNoOfChildren();return 0==e&&(e=1),e},u.prototype.getEstimatedSize=function(){if(this.estimatedSize==i.MIN_VALUE)throw"assert failed";return this.estimatedSize},u.prototype.calcEstimatedSize=function(){return null==this.child?this.estimatedSize=(this.rect.width+this.rect.height)/2:(this.estimatedSize=this.child.calcEstimatedSize(),this.rect.width=this.estimatedSize,this.rect.height=this.estimatedSize,this.estimatedSize)},u.prototype.scatter=function(){var e,t,n=-o.INITIAL_WORLD_BOUNDARY,r=o.INITIAL_WORLD_BOUNDARY;e=o.WORLD_CENTER_X+s.nextDouble()*(r-n)+n;var i=-o.INITIAL_WORLD_BOUNDARY,a=o.INITIAL_WORLD_BOUNDARY;t=o.WORLD_CENTER_Y+s.nextDouble()*(a-i)+i,this.rect.x=e,this.rect.y=t},u.prototype.updateBounds=function(){if(null==this.getChild())throw"assert failed";if(0!=this.getChild().getNodes().length){var e=this.getChild();if(e.updateBounds(!0),this.rect.x=e.getLeft(),this.rect.y=e.getTop(),this.setWidth(e.getRight()-e.getLeft()),this.setHeight(e.getBottom()-e.getTop()),o.NODE_DIMENSIONS_INCLUDE_LABELS){var t=e.getRight()-e.getLeft(),n=e.getBottom()-e.getTop();this.labelWidth>t&&(this.rect.x-=(this.labelWidth-t)/2,this.setWidth(this.labelWidth)),this.labelHeight>n&&("center"==this.labelPos?this.rect.y-=(this.labelHeight-n)/2:"top"==this.labelPos&&(this.rect.y-=this.labelHeight-n),this.setHeight(this.labelHeight))}}},u.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},u.prototype.transform=function(e){var t=this.rect.x;t>o.WORLD_BOUNDARY?t=o.WORLD_BOUNDARY:t<-o.WORLD_BOUNDARY&&(t=-o.WORLD_BOUNDARY);var n=this.rect.y;n>o.WORLD_BOUNDARY?n=o.WORLD_BOUNDARY:n<-o.WORLD_BOUNDARY&&(n=-o.WORLD_BOUNDARY);var r=new l(t,n),i=e.inverseTransformPoint(r);this.setLocation(i.x,i.y)},u.prototype.getLeft=function(){return this.rect.x},u.prototype.getRight=function(){return this.rect.x+this.rect.width},u.prototype.getTop=function(){return this.rect.y},u.prototype.getBottom=function(){return this.rect.y+this.rect.height},u.prototype.getParent=function(){return null==this.owner?null:this.owner.getParent()},e.exports=u},function(e,t,n){"use strict";function r(e,t){null==e&&null==t?(this.x=0,this.y=0):(this.x=e,this.y=t)}r.prototype.getX=function(){return this.x},r.prototype.getY=function(){return this.y},r.prototype.setX=function(e){this.x=e},r.prototype.setY=function(e){this.y=e},r.prototype.getDifference=function(e){return new DimensionD(this.x-e.x,this.y-e.y)},r.prototype.getCopy=function(){return new r(this.x,this.y)},r.prototype.translate=function(e){return this.x+=e.width,this.y+=e.height,this},e.exports=r},function(e,t,n){"use strict";var r=n(2),i=n(10),a=n(0),o=n(6),s=n(3),l=n(1),u=n(13),c=n(12),h=n(11);function d(e,t,n){r.call(this,n),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=e,null!=t&&t instanceof o?this.graphManager=t:null!=t&&t instanceof Layout&&(this.graphManager=t.graphManager)}for(var p in d.prototype=Object.create(r.prototype),r)d[p]=r[p];d.prototype.getNodes=function(){return this.nodes},d.prototype.getEdges=function(){return this.edges},d.prototype.getGraphManager=function(){return this.graphManager},d.prototype.getParent=function(){return this.parent},d.prototype.getLeft=function(){return this.left},d.prototype.getRight=function(){return this.right},d.prototype.getTop=function(){return this.top},d.prototype.getBottom=function(){return this.bottom},d.prototype.isConnected=function(){return this.isConnected},d.prototype.add=function(e,t,n){if(null==t&&null==n){var r=e;if(null==this.graphManager)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(r)>-1)throw"Node already in graph!";return r.owner=this,this.getNodes().push(r),r}var i=e;if(!(this.getNodes().indexOf(t)>-1&&this.getNodes().indexOf(n)>-1))throw"Source or target not in graph!";if(t.owner!=n.owner||t.owner!=this)throw"Both owners must be this graph!";return t.owner!=n.owner?null:(i.source=t,i.target=n,i.isInterGraph=!1,this.getEdges().push(i),t.edges.push(i),n!=t&&n.edges.push(i),i)},d.prototype.remove=function(e){var t=e;if(e instanceof s){if(null==t)throw"Node is null!";if(null==t.owner||t.owner!=this)throw"Owner graph is invalid!";if(null==this.graphManager)throw"Owner graph manager is invalid!";for(var n=t.edges.slice(),r=n.length,i=0;i<r;i++)(a=n[i]).isInterGraph?this.graphManager.remove(a):a.source.owner.remove(a);if(-1==(o=this.nodes.indexOf(t)))throw"Node not in owner node list!";this.nodes.splice(o,1)}else if(e instanceof l){var a;if(null==(a=e))throw"Edge is null!";if(null==a.source||null==a.target)throw"Source and/or target is null!";if(null==a.source.owner||null==a.target.owner||a.source.owner!=this||a.target.owner!=this)throw"Source and/or target owner is invalid!";var o,u=a.source.edges.indexOf(a),c=a.target.edges.indexOf(a);if(!(u>-1&&c>-1))throw"Source and/or target doesn't know this edge!";if(a.source.edges.splice(u,1),a.target!=a.source&&a.target.edges.splice(c,1),-1==(o=a.source.owner.getEdges().indexOf(a)))throw"Not in owner's edge list!";a.source.owner.getEdges().splice(o,1)}},d.prototype.updateLeftTop=function(){for(var e,t,n,r=i.MAX_VALUE,a=i.MAX_VALUE,o=this.getNodes(),s=o.length,l=0;l<s;l++){var u=o[l];r>(e=u.getTop())&&(r=e),a>(t=u.getLeft())&&(a=t)}return r==i.MAX_VALUE?null:(n=null!=o[0].getParent().paddingLeft?o[0].getParent().paddingLeft:this.margin,this.left=a-n,this.top=r-n,new c(this.left,this.top))},d.prototype.updateBounds=function(e){for(var t,n,r,a,o,s=i.MAX_VALUE,l=-i.MAX_VALUE,c=i.MAX_VALUE,h=-i.MAX_VALUE,d=this.nodes,p=d.length,g=0;g<p;g++){var f=d[g];e&&null!=f.child&&f.updateBounds(),s>(t=f.getLeft())&&(s=t),l<(n=f.getRight())&&(l=n),c>(r=f.getTop())&&(c=r),h<(a=f.getBottom())&&(h=a)}var v=new u(s,c,l-s,h-c);s==i.MAX_VALUE&&(this.left=this.parent.getLeft(),this.right=this.parent.getRight(),this.top=this.parent.getTop(),this.bottom=this.parent.getBottom()),o=null!=d[0].getParent().paddingLeft?d[0].getParent().paddingLeft:this.margin,this.left=v.x-o,this.right=v.x+v.width+o,this.top=v.y-o,this.bottom=v.y+v.height+o},d.calculateBounds=function(e){for(var t,n,r,a,o=i.MAX_VALUE,s=-i.MAX_VALUE,l=i.MAX_VALUE,c=-i.MAX_VALUE,h=e.length,d=0;d<h;d++){var p=e[d];o>(t=p.getLeft())&&(o=t),s<(n=p.getRight())&&(s=n),l>(r=p.getTop())&&(l=r),c<(a=p.getBottom())&&(c=a)}return new u(o,l,s-o,c-l)},d.prototype.getInclusionTreeDepth=function(){return this==this.graphManager.getRoot()?1:this.parent.getInclusionTreeDepth()},d.prototype.getEstimatedSize=function(){if(this.estimatedSize==i.MIN_VALUE)throw"assert failed";return this.estimatedSize},d.prototype.calcEstimatedSize=function(){for(var e=0,t=this.nodes,n=t.length,r=0;r<n;r++)e+=t[r].calcEstimatedSize();return this.estimatedSize=0==e?a.EMPTY_COMPOUND_NODE_SIZE:e/Math.sqrt(this.nodes.length),this.estimatedSize},d.prototype.updateConnected=function(){var e=this;if(0!=this.nodes.length){var t,n,r=new h,i=new Set,a=this.nodes[0];for(a.withChildren().forEach((function(e){r.push(e),i.add(e)}));0!==r.length;)for(var o=(t=(a=r.shift()).getEdges()).length,s=0;s<o;s++)null==(n=t[s].getOtherEndInGraph(a,this))||i.has(n)||n.withChildren().forEach((function(e){r.push(e),i.add(e)}));if(this.isConnected=!1,i.size>=this.nodes.length){var l=0;i.forEach((function(t){t.owner==e&&l++})),l==this.nodes.length&&(this.isConnected=!0)}}else this.isConnected=!0},e.exports=d},function(e,t,n){"use strict";var r,i=n(1);function a(e){r=n(5),this.layout=e,this.graphs=[],this.edges=[]}a.prototype.addRoot=function(){var e=this.layout.newGraph(),t=this.layout.newNode(null),n=this.add(e,t);return this.setRootGraph(n),this.rootGraph},a.prototype.add=function(e,t,n,r,i){if(null==n&&null==r&&null==i){if(null==e)throw"Graph is null!";if(null==t)throw"Parent node is null!";if(this.graphs.indexOf(e)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(e),null!=e.parent)throw"Already has a parent!";if(null!=t.child)throw"Already has a child!";return e.parent=t,t.child=e,e}i=n,n=e;var a=(r=t).getOwner(),o=i.getOwner();if(null==a||a.getGraphManager()!=this)throw"Source not in this graph mgr!";if(null==o||o.getGraphManager()!=this)throw"Target not in this graph mgr!";if(a==o)return n.isInterGraph=!1,a.add(n,r,i);if(n.isInterGraph=!0,n.source=r,n.target=i,this.edges.indexOf(n)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(n),null==n.source||null==n.target)throw"Edge source and/or target is null!";if(-1!=n.source.edges.indexOf(n)||-1!=n.target.edges.indexOf(n))throw"Edge already in source and/or target incidency list!";return n.source.edges.push(n),n.target.edges.push(n),n},a.prototype.remove=function(e){if(e instanceof r){var t=e;if(t.getGraphManager()!=this)throw"Graph not in this graph mgr";if(t!=this.rootGraph&&(null==t.parent||t.parent.graphManager!=this))throw"Invalid parent node!";for(var n,a=[],o=(a=a.concat(t.getEdges())).length,s=0;s<o;s++)n=a[s],t.remove(n);var l,u=[];for(o=(u=u.concat(t.getNodes())).length,s=0;s<o;s++)l=u[s],t.remove(l);t==this.rootGraph&&this.setRootGraph(null);var c=this.graphs.indexOf(t);this.graphs.splice(c,1),t.parent=null}else if(e instanceof i){if(null==(n=e))throw"Edge is null!";if(!n.isInterGraph)throw"Not an inter-graph edge!";if(null==n.source||null==n.target)throw"Source and/or target is null!";if(-1==n.source.edges.indexOf(n)||-1==n.target.edges.indexOf(n))throw"Source and/or target doesn't know this edge!";if(c=n.source.edges.indexOf(n),n.source.edges.splice(c,1),c=n.target.edges.indexOf(n),n.target.edges.splice(c,1),null==n.source.owner||null==n.source.owner.getGraphManager())throw"Edge owner graph or owner graph manager is null!";if(-1==n.source.owner.getGraphManager().edges.indexOf(n))throw"Not in owner graph manager's edge list!";c=n.source.owner.getGraphManager().edges.indexOf(n),n.source.owner.getGraphManager().edges.splice(c,1)}},a.prototype.updateBounds=function(){this.rootGraph.updateBounds(!0)},a.prototype.getGraphs=function(){return this.graphs},a.prototype.getAllNodes=function(){if(null==this.allNodes){for(var e=[],t=this.getGraphs(),n=t.length,r=0;r<n;r++)e=e.concat(t[r].getNodes());this.allNodes=e}return this.allNodes},a.prototype.resetAllNodes=function(){this.allNodes=null},a.prototype.resetAllEdges=function(){this.allEdges=null},a.prototype.resetAllNodesToApplyGravitation=function(){this.allNodesToApplyGravitation=null},a.prototype.getAllEdges=function(){if(null==this.allEdges){for(var e=[],t=this.getGraphs(),n=(t.length,0);n<t.length;n++)e=e.concat(t[n].getEdges());e=e.concat(this.edges),this.allEdges=e}return this.allEdges},a.prototype.getAllNodesToApplyGravitation=function(){return this.allNodesToApplyGravitation},a.prototype.setAllNodesToApplyGravitation=function(e){if(null!=this.allNodesToApplyGravitation)throw"assert failed";this.allNodesToApplyGravitation=e},a.prototype.getRoot=function(){return this.rootGraph},a.prototype.setRootGraph=function(e){if(e.getGraphManager()!=this)throw"Root not in this graph mgr!";this.rootGraph=e,null==e.parent&&(e.parent=this.layout.newNode("Root node"))},a.prototype.getLayout=function(){return this.layout},a.prototype.isOneAncestorOfOther=function(e,t){if(null==e||null==t)throw"assert failed";if(e==t)return!0;for(var n,r=e.getOwner();null!=(n=r.getParent());){if(n==t)return!0;if(null==(r=n.getOwner()))break}for(r=t.getOwner();null!=(n=r.getParent());){if(n==e)return!0;if(null==(r=n.getOwner()))break}return!1},a.prototype.calcLowestCommonAncestors=function(){for(var e,t,n,r,i,a=this.getAllEdges(),o=a.length,s=0;s<o;s++)if(t=(e=a[s]).source,n=e.target,e.lca=null,e.sourceInLca=t,e.targetInLca=n,t!=n){for(r=t.getOwner();null==e.lca;){for(e.targetInLca=n,i=n.getOwner();null==e.lca;){if(i==r){e.lca=i;break}if(i==this.rootGraph)break;if(null!=e.lca)throw"assert failed";e.targetInLca=i.getParent(),i=e.targetInLca.getOwner()}if(r==this.rootGraph)break;null==e.lca&&(e.sourceInLca=r.getParent(),r=e.sourceInLca.getOwner())}if(null==e.lca)throw"assert failed"}else e.lca=t.getOwner()},a.prototype.calcLowestCommonAncestor=function(e,t){if(e==t)return e.getOwner();for(var n=e.getOwner();null!=n;){for(var r=t.getOwner();null!=r;){if(r==n)return r;r=r.getParent().getOwner()}n=n.getParent().getOwner()}return n},a.prototype.calcInclusionTreeDepths=function(e,t){var n;null==e&&null==t&&(e=this.rootGraph,t=1);for(var r=e.getNodes(),i=r.length,a=0;a<i;a++)(n=r[a]).inclusionTreeDepth=t,null!=n.child&&this.calcInclusionTreeDepths(n.child,t+1)},a.prototype.includesInvalidEdge=function(){for(var e,t=this.edges.length,n=0;n<t;n++)if(e=this.edges[n],this.isOneAncestorOfOther(e.source,e.target))return!0;return!1},e.exports=a},function(e,t,n){"use strict";var r=n(0);function i(){}for(var a in r)i[a]=r[a];i.MAX_ITERATIONS=2500,i.DEFAULT_EDGE_LENGTH=50,i.DEFAULT_SPRING_STRENGTH=.45,i.DEFAULT_REPULSION_STRENGTH=4500,i.DEFAULT_GRAVITY_STRENGTH=.4,i.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,i.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,i.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,i.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,i.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,i.COOLING_ADAPTATION_FACTOR=.33,i.ADAPTATION_LOWER_NODE_LIMIT=1e3,i.ADAPTATION_UPPER_NODE_LIMIT=5e3,i.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,i.MAX_NODE_DISPLACEMENT=3*i.MAX_NODE_DISPLACEMENT_INCREMENTAL,i.MIN_REPULSION_DIST=i.DEFAULT_EDGE_LENGTH/10,i.CONVERGENCE_CHECK_PERIOD=100,i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,i.MIN_EDGE_LENGTH=1,i.GRID_CALCULATION_CHECK_PERIOD=10,e.exports=i},function(e,t,n){"use strict";var r=n(12);function i(){}i.calcSeparationAmount=function(e,t,n,r){if(!e.intersects(t))throw"assert failed";var i=new Array(2);this.decideDirectionsForOverlappingNodes(e,t,i),n[0]=Math.min(e.getRight(),t.getRight())-Math.max(e.x,t.x),n[1]=Math.min(e.getBottom(),t.getBottom())-Math.max(e.y,t.y),e.getX()<=t.getX()&&e.getRight()>=t.getRight()?n[0]+=Math.min(t.getX()-e.getX(),e.getRight()-t.getRight()):t.getX()<=e.getX()&&t.getRight()>=e.getRight()&&(n[0]+=Math.min(e.getX()-t.getX(),t.getRight()-e.getRight())),e.getY()<=t.getY()&&e.getBottom()>=t.getBottom()?n[1]+=Math.min(t.getY()-e.getY(),e.getBottom()-t.getBottom()):t.getY()<=e.getY()&&t.getBottom()>=e.getBottom()&&(n[1]+=Math.min(e.getY()-t.getY(),t.getBottom()-e.getBottom()));var a=Math.abs((t.getCenterY()-e.getCenterY())/(t.getCenterX()-e.getCenterX()));t.getCenterY()===e.getCenterY()&&t.getCenterX()===e.getCenterX()&&(a=1);var o=a*n[0],s=n[1]/a;n[0]<s?s=n[0]:o=n[1],n[0]=-1*i[0]*(s/2+r),n[1]=-1*i[1]*(o/2+r)},i.decideDirectionsForOverlappingNodes=function(e,t,n){e.getCenterX()<t.getCenterX()?n[0]=-1:n[0]=1,e.getCenterY()<t.getCenterY()?n[1]=-1:n[1]=1},i.getIntersection2=function(e,t,n){var r=e.getCenterX(),i=e.getCenterY(),a=t.getCenterX(),o=t.getCenterY();if(e.intersects(t))return n[0]=r,n[1]=i,n[2]=a,n[3]=o,!0;var s=e.getX(),l=e.getY(),u=e.getRight(),c=e.getX(),h=e.getBottom(),d=e.getRight(),p=e.getWidthHalf(),g=e.getHeightHalf(),f=t.getX(),v=t.getY(),y=t.getRight(),m=t.getX(),b=t.getBottom(),x=t.getRight(),w=t.getWidthHalf(),E=t.getHeightHalf(),T=!1,_=!1;if(r===a){if(i>o)return n[0]=r,n[1]=l,n[2]=a,n[3]=b,!1;if(i<o)return n[0]=r,n[1]=h,n[2]=a,n[3]=v,!1}else if(i===o){if(r>a)return n[0]=s,n[1]=i,n[2]=y,n[3]=o,!1;if(r<a)return n[0]=u,n[1]=i,n[2]=f,n[3]=o,!1}else{var D=e.height/e.width,C=t.height/t.width,N=(o-i)/(a-r),A=void 0,L=void 0,S=void 0,O=void 0,I=void 0,k=void 0;if(-D===N?r>a?(n[0]=c,n[1]=h,T=!0):(n[0]=u,n[1]=l,T=!0):D===N&&(r>a?(n[0]=s,n[1]=l,T=!0):(n[0]=d,n[1]=h,T=!0)),-C===N?a>r?(n[2]=m,n[3]=b,_=!0):(n[2]=y,n[3]=v,_=!0):C===N&&(a>r?(n[2]=f,n[3]=v,_=!0):(n[2]=x,n[3]=b,_=!0)),T&&_)return!1;if(r>a?i>o?(A=this.getCardinalDirection(D,N,4),L=this.getCardinalDirection(C,N,2)):(A=this.getCardinalDirection(-D,N,3),L=this.getCardinalDirection(-C,N,1)):i>o?(A=this.getCardinalDirection(-D,N,1),L=this.getCardinalDirection(-C,N,3)):(A=this.getCardinalDirection(D,N,2),L=this.getCardinalDirection(C,N,4)),!T)switch(A){case 1:O=l,S=r+-g/N,n[0]=S,n[1]=O;break;case 2:S=d,O=i+p*N,n[0]=S,n[1]=O;break;case 3:O=h,S=r+g/N,n[0]=S,n[1]=O;break;case 4:S=c,O=i+-p*N,n[0]=S,n[1]=O}if(!_)switch(L){case 1:k=v,I=a+-E/N,n[2]=I,n[3]=k;break;case 2:I=x,k=o+w*N,n[2]=I,n[3]=k;break;case 3:k=b,I=a+E/N,n[2]=I,n[3]=k;break;case 4:I=m,k=o+-w*N,n[2]=I,n[3]=k}}return!1},i.getCardinalDirection=function(e,t,n){return e>t?n:1+n%4},i.getIntersection=function(e,t,n,i){if(null==i)return this.getIntersection2(e,t,n);var a,o,s,l,u,c,h,d=e.x,p=e.y,g=t.x,f=t.y,v=n.x,y=n.y,m=i.x,b=i.y;return 0==(h=(a=f-p)*(l=v-m)-(o=b-y)*(s=d-g))?null:new r((s*(c=m*y-v*b)-l*(u=g*p-d*f))/h,(o*u-a*c)/h)},i.angleOfVector=function(e,t,n,r){var i=void 0;return e!==n?(i=Math.atan((r-t)/(n-e)),n<e?i+=Math.PI:r<t&&(i+=this.TWO_PI)):i=r<t?this.ONE_AND_HALF_PI:this.HALF_PI,i},i.doIntersect=function(e,t,n,r){var i=e.x,a=e.y,o=t.x,s=t.y,l=n.x,u=n.y,c=r.x,h=r.y,d=(o-i)*(h-u)-(c-l)*(s-a);if(0===d)return!1;var p=((h-u)*(c-i)+(l-c)*(h-a))/d,g=((a-s)*(c-i)+(o-i)*(h-a))/d;return 0<p&&p<1&&0<g&&g<1},i.HALF_PI=.5*Math.PI,i.ONE_AND_HALF_PI=1.5*Math.PI,i.TWO_PI=2*Math.PI,i.THREE_PI=3*Math.PI,e.exports=i},function(e,t,n){"use strict";function r(){}r.sign=function(e){return e>0?1:e<0?-1:0},r.floor=function(e){return e<0?Math.ceil(e):Math.floor(e)},r.ceil=function(e){return e<0?Math.floor(e):Math.ceil(e)},e.exports=r},function(e,t,n){"use strict";function r(){}r.MAX_VALUE=2147483647,r.MIN_VALUE=-2147483648,e.exports=r},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=function(e){return{value:e,next:null,prev:null}},a=function(e,t,n,r){return null!==e?e.next=t:r.head=t,null!==n?n.prev=t:r.tail=t,t.prev=e,t.next=n,r.length++,t},o=function(e,t){var n=e.prev,r=e.next;return null!==n?n.next=r:t.head=r,null!==r?r.prev=n:t.tail=n,e.prev=e.next=null,t.length--,e},s=function(){function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.length=0,this.head=null,this.tail=null,null!=t&&t.forEach((function(e){return n.push(e)}))}return r(e,[{key:"size",value:function(){return this.length}},{key:"insertBefore",value:function(e,t){return a(t.prev,i(e),t,this)}},{key:"insertAfter",value:function(e,t){return a(t,i(e),t.next,this)}},{key:"insertNodeBefore",value:function(e,t){return a(t.prev,e,t,this)}},{key:"insertNodeAfter",value:function(e,t){return a(t,e,t.next,this)}},{key:"push",value:function(e){return a(this.tail,i(e),null,this)}},{key:"unshift",value:function(e){return a(null,i(e),this.head,this)}},{key:"remove",value:function(e){return o(e,this)}},{key:"pop",value:function(){return o(this.tail,this).value}},{key:"popNode",value:function(){return o(this.tail,this)}},{key:"shift",value:function(){return o(this.head,this).value}},{key:"shiftNode",value:function(){return o(this.head,this)}},{key:"get_object_at",value:function(e){if(e<=this.length()){for(var t=1,n=this.head;t<e;)n=n.next,t++;return n.value}}},{key:"set_object_at",value:function(e,t){if(e<=this.length()){for(var n=1,r=this.head;n<e;)r=r.next,n++;r.value=t}}}]),e}();e.exports=s},function(e,t,n){"use strict";function r(e,t,n){this.x=null,this.y=null,null==e&&null==t&&null==n?(this.x=0,this.y=0):"number"==typeof e&&"number"==typeof t&&null==n?(this.x=e,this.y=t):"Point"==e.constructor.name&&null==t&&null==n&&(n=e,this.x=n.x,this.y=n.y)}r.prototype.getX=function(){return this.x},r.prototype.getY=function(){return this.y},r.prototype.getLocation=function(){return new r(this.x,this.y)},r.prototype.setLocation=function(e,t,n){"Point"==e.constructor.name&&null==t&&null==n?(n=e,this.setLocation(n.x,n.y)):"number"==typeof e&&"number"==typeof t&&null==n&&(parseInt(e)==e&&parseInt(t)==t?this.move(e,t):(this.x=Math.floor(e+.5),this.y=Math.floor(t+.5)))},r.prototype.move=function(e,t){this.x=e,this.y=t},r.prototype.translate=function(e,t){this.x+=e,this.y+=t},r.prototype.equals=function(e){if("Point"==e.constructor.name){var t=e;return this.x==t.x&&this.y==t.y}return this==e},r.prototype.toString=function(){return(new r).constructor.name+"[x="+this.x+",y="+this.y+"]"},e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){this.x=0,this.y=0,this.width=0,this.height=0,null!=e&&null!=t&&null!=n&&null!=r&&(this.x=e,this.y=t,this.width=n,this.height=r)}r.prototype.getX=function(){return this.x},r.prototype.setX=function(e){this.x=e},r.prototype.getY=function(){return this.y},r.prototype.setY=function(e){this.y=e},r.prototype.getWidth=function(){return this.width},r.prototype.setWidth=function(e){this.width=e},r.prototype.getHeight=function(){return this.height},r.prototype.setHeight=function(e){this.height=e},r.prototype.getRight=function(){return this.x+this.width},r.prototype.getBottom=function(){return this.y+this.height},r.prototype.intersects=function(e){return!(this.getRight()<e.x||this.getBottom()<e.y||e.getRight()<this.x||e.getBottom()<this.y)},r.prototype.getCenterX=function(){return this.x+this.width/2},r.prototype.getMinX=function(){return this.getX()},r.prototype.getMaxX=function(){return this.getX()+this.width},r.prototype.getCenterY=function(){return this.y+this.height/2},r.prototype.getMinY=function(){return this.getY()},r.prototype.getMaxY=function(){return this.getY()+this.height},r.prototype.getWidthHalf=function(){return this.width/2},r.prototype.getHeightHalf=function(){return this.height/2},e.exports=r},function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function i(){}i.lastID=0,i.createID=function(e){return i.isPrimitive(e)?e:(null!=e.uniqueID||(e.uniqueID=i.getString(),i.lastID++),e.uniqueID)},i.getString=function(e){return null==e&&(e=i.lastID),"Object#"+e},i.isPrimitive=function(e){var t=void 0===e?"undefined":r(e);return null==e||"object"!=t&&"function"!=t},e.exports=i},function(e,t,n){"use strict";function r(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var i=n(0),a=n(6),o=n(3),s=n(1),l=n(5),u=n(4),c=n(17),h=n(27);function d(e){h.call(this),this.layoutQuality=i.QUALITY,this.createBendsAsNeeded=i.DEFAULT_CREATE_BENDS_AS_NEEDED,this.incremental=i.DEFAULT_INCREMENTAL,this.animationOnLayout=i.DEFAULT_ANIMATION_ON_LAYOUT,this.animationDuringLayout=i.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=i.DEFAULT_ANIMATION_PERIOD,this.uniformLeafNodeSizes=i.DEFAULT_UNIFORM_LEAF_NODE_SIZES,this.edgeToDummyNodes=new Map,this.graphManager=new a(this),this.isLayoutFinished=!1,this.isSubLayout=!1,this.isRemoteUse=!1,null!=e&&(this.isRemoteUse=e)}d.RANDOM_SEED=1,d.prototype=Object.create(h.prototype),d.prototype.getGraphManager=function(){return this.graphManager},d.prototype.getAllNodes=function(){return this.graphManager.getAllNodes()},d.prototype.getAllEdges=function(){return this.graphManager.getAllEdges()},d.prototype.getAllNodesToApplyGravitation=function(){return this.graphManager.getAllNodesToApplyGravitation()},d.prototype.newGraphManager=function(){var e=new a(this);return this.graphManager=e,e},d.prototype.newGraph=function(e){return new l(null,this.graphManager,e)},d.prototype.newNode=function(e){return new o(this.graphManager,e)},d.prototype.newEdge=function(e){return new s(null,null,e)},d.prototype.checkLayoutSuccess=function(){return null==this.graphManager.getRoot()||0==this.graphManager.getRoot().getNodes().length||this.graphManager.includesInvalidEdge()},d.prototype.runLayout=function(){var e;return this.isLayoutFinished=!1,this.tilingPreLayout&&this.tilingPreLayout(),this.initParameters(),e=!this.checkLayoutSuccess()&&this.layout(),"during"!==i.ANIMATE&&(e&&(this.isSubLayout||this.doPostLayout()),this.tilingPostLayout&&this.tilingPostLayout(),this.isLayoutFinished=!0,e)},d.prototype.doPostLayout=function(){this.incremental||this.transform(),this.update()},d.prototype.update2=function(){if(this.createBendsAsNeeded&&(this.createBendpointsFromDummyNodes(),this.graphManager.resetAllEdges()),!this.isRemoteUse){for(var e=this.graphManager.getAllEdges(),t=0;t<e.length;t++)e[t];var n=this.graphManager.getRoot().getNodes();for(t=0;t<n.length;t++)n[t];this.update(this.graphManager.getRoot())}},d.prototype.update=function(e){if(null==e)this.update2();else if(e instanceof o){var t=e;if(null!=t.getChild())for(var n=t.getChild().getNodes(),r=0;r<n.length;r++)update(n[r]);null!=t.vGraphObject&&t.vGraphObject.update(t)}else if(e instanceof s){var i=e;null!=i.vGraphObject&&i.vGraphObject.update(i)}else if(e instanceof l){var a=e;null!=a.vGraphObject&&a.vGraphObject.update(a)}},d.prototype.initParameters=function(){this.isSubLayout||(this.layoutQuality=i.QUALITY,this.animationDuringLayout=i.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=i.DEFAULT_ANIMATION_PERIOD,this.animationOnLayout=i.DEFAULT_ANIMATION_ON_LAYOUT,this.incremental=i.DEFAULT_INCREMENTAL,this.createBendsAsNeeded=i.DEFAULT_CREATE_BENDS_AS_NEEDED,this.uniformLeafNodeSizes=i.DEFAULT_UNIFORM_LEAF_NODE_SIZES),this.animationDuringLayout&&(this.animationOnLayout=!1)},d.prototype.transform=function(e){if(null==e)this.transform(new u(0,0));else{var t=new c,n=this.graphManager.getRoot().updateLeftTop();if(null!=n){t.setWorldOrgX(e.x),t.setWorldOrgY(e.y),t.setDeviceOrgX(n.x),t.setDeviceOrgY(n.y);for(var r=this.getAllNodes(),i=0;i<r.length;i++)r[i].transform(t)}}},d.prototype.positionNodesRandomly=function(e){if(null==e)this.positionNodesRandomly(this.getGraphManager().getRoot()),this.getGraphManager().getRoot().updateBounds(!0);else for(var t,n,r=e.getNodes(),i=0;i<r.length;i++)null==(n=(t=r[i]).getChild())||0==n.getNodes().length?t.scatter():(this.positionNodesRandomly(n),t.updateBounds())},d.prototype.getFlatForest=function(){for(var e=[],t=!0,n=this.graphManager.getRoot().getNodes(),i=!0,a=0;a<n.length;a++)null!=n[a].getChild()&&(i=!1);if(!i)return e;var o=new Set,s=[],l=new Map,u=[];for(u=u.concat(n);u.length>0&&t;){for(s.push(u[0]);s.length>0&&t;){var c=s[0];s.splice(0,1),o.add(c);var h=c.getEdges();for(a=0;a<h.length;a++){var d=h[a].getOtherEnd(c);if(l.get(c)!=d){if(o.has(d)){t=!1;break}s.push(d),l.set(d,c)}}}if(t){var p=[].concat(r(o));for(e.push(p),a=0;a<p.length;a++){var g=p[a],f=u.indexOf(g);f>-1&&u.splice(f,1)}o=new Set,l=new Map}else e=[]}return e},d.prototype.createDummyNodesForBendpoints=function(e){for(var t=[],n=e.source,r=this.graphManager.calcLowestCommonAncestor(e.source,e.target),i=0;i<e.bendpoints.length;i++){var a=this.newNode(null);a.setRect(new Point(0,0),new Dimension(1,1)),r.add(a);var o=this.newEdge(null);this.graphManager.add(o,n,a),t.add(a),n=a}return o=this.newEdge(null),this.graphManager.add(o,n,e.target),this.edgeToDummyNodes.set(e,t),e.isInterGraph()?this.graphManager.remove(e):r.remove(e),t},d.prototype.createBendpointsFromDummyNodes=function(){var e=[];e=e.concat(this.graphManager.getAllEdges()),e=[].concat(r(this.edgeToDummyNodes.keys())).concat(e);for(var t=0;t<e.length;t++){var n=e[t];if(n.bendpoints.length>0){for(var i=this.edgeToDummyNodes.get(n),a=0;a<i.length;a++){var o=i[a],s=new u(o.getCenterX(),o.getCenterY()),l=n.bendpoints.get(a);l.x=s.x,l.y=s.y,o.getOwner().remove(o)}this.graphManager.add(n,n.source,n.target)}}},d.transform=function(e,t,n,r){if(null!=n&&null!=r){var i=t;return e<=50?i-=(t-t/n)/50*(50-e):i+=(t*r-t)/50*(e-50),i}var a,o;return e<=50?(a=9*t/500,o=t/10):(a=9*t/50,o=-8*t),a*e+o},d.findCenterOfTree=function(e){var t=[];t=t.concat(e);var n=[],r=new Map,i=!1,a=null;1!=t.length&&2!=t.length||(i=!0,a=t[0]);for(var o=0;o<t.length;o++){var s=(c=t[o]).getNeighborsList().size;r.set(c,c.getNeighborsList().size),1==s&&n.push(c)}var l=[];for(l=l.concat(n);!i;){var u=[];for(u=u.concat(l),l=[],o=0;o<t.length;o++){var c=t[o],h=t.indexOf(c);h>=0&&t.splice(h,1),c.getNeighborsList().forEach((function(e){if(n.indexOf(e)<0){var t=r.get(e)-1;1==t&&l.push(e),r.set(e,t)}}))}n=n.concat(l),1!=t.length&&2!=t.length||(i=!0,a=t[0])}return a},d.prototype.setGraphManager=function(e){this.graphManager=e},e.exports=d},function(e,t,n){"use strict";function r(){}r.seed=1,r.x=0,r.nextDouble=function(){return r.x=1e4*Math.sin(r.seed++),r.x-Math.floor(r.x)},e.exports=r},function(e,t,n){"use strict";var r=n(4);function i(e,t){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(e){this.lworldOrgX=e},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(e){this.lworldOrgY=e},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(e){this.lworldExtX=e},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(e){this.lworldExtY=e},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(e){this.ldeviceOrgX=e},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(e){this.ldeviceOrgY=e},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(e){this.ldeviceExtX=e},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(e){this.ldeviceExtY=e},i.prototype.transformX=function(e){var t=0,n=this.lworldExtX;return 0!=n&&(t=this.ldeviceOrgX+(e-this.lworldOrgX)*this.ldeviceExtX/n),t},i.prototype.transformY=function(e){var t=0,n=this.lworldExtY;return 0!=n&&(t=this.ldeviceOrgY+(e-this.lworldOrgY)*this.ldeviceExtY/n),t},i.prototype.inverseTransformX=function(e){var t=0,n=this.ldeviceExtX;return 0!=n&&(t=this.lworldOrgX+(e-this.ldeviceOrgX)*this.lworldExtX/n),t},i.prototype.inverseTransformY=function(e){var t=0,n=this.ldeviceExtY;return 0!=n&&(t=this.lworldOrgY+(e-this.ldeviceOrgY)*this.lworldExtY/n),t},i.prototype.inverseTransformPoint=function(e){return new r(this.inverseTransformX(e.x),this.inverseTransformY(e.y))},e.exports=i},function(e,t,n){"use strict";var r=n(15),i=n(7),a=n(0),o=n(8),s=n(9);function l(){r.call(this),this.useSmartIdealEdgeLengthCalculation=i.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.idealEdgeLength=i.DEFAULT_EDGE_LENGTH,this.springConstant=i.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=i.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=i.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=i.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=i.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.displacementThresholdPerNode=3*i.DEFAULT_EDGE_LENGTH/100,this.coolingFactor=i.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.initialCoolingFactor=i.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.totalDisplacement=0,this.oldTotalDisplacement=0,this.maxIterations=i.MAX_ITERATIONS}for(var u in l.prototype=Object.create(r.prototype),r)l[u]=r[u];l.prototype.initParameters=function(){r.prototype.initParameters.call(this,arguments),this.totalIterations=0,this.notAnimatedIterations=0,this.useFRGridVariant=i.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION,this.grid=[]},l.prototype.calcIdealEdgeLengths=function(){for(var e,t,n,r,o,s,l=this.getGraphManager().getAllEdges(),u=0;u<l.length;u++)(e=l[u]).idealLength=this.idealEdgeLength,e.isInterGraph&&(n=e.getSource(),r=e.getTarget(),o=e.getSourceInLca().getEstimatedSize(),s=e.getTargetInLca().getEstimatedSize(),this.useSmartIdealEdgeLengthCalculation&&(e.idealLength+=o+s-2*a.SIMPLE_NODE_SIZE),t=e.getLca().getInclusionTreeDepth(),e.idealLength+=i.DEFAULT_EDGE_LENGTH*i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR*(n.getInclusionTreeDepth()+r.getInclusionTreeDepth()-2*t))},l.prototype.initSpringEmbedder=function(){var e=this.getAllNodes().length;this.incremental?(e>i.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*i.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(e-i.ADAPTATION_LOWER_NODE_LIMIT)/(i.ADAPTATION_UPPER_NODE_LIMIT-i.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-i.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=i.MAX_NODE_DISPLACEMENT_INCREMENTAL):(e>i.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(i.COOLING_ADAPTATION_FACTOR,1-(e-i.ADAPTATION_LOWER_NODE_LIMIT)/(i.ADAPTATION_UPPER_NODE_LIMIT-i.ADAPTATION_LOWER_NODE_LIMIT)*(1-i.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=i.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(5*this.getAllNodes().length,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},l.prototype.calcSpringForces=function(){for(var e,t=this.getAllEdges(),n=0;n<t.length;n++)e=t[n],this.calcSpringForce(e,e.idealLength)},l.prototype.calcRepulsionForces=function(){var e,t,n,r,a,o=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],s=arguments.length>1&&void 0!==arguments[1]&&arguments[1],l=this.getAllNodes();if(this.useFRGridVariant)for(this.totalIterations%i.GRID_CALCULATION_CHECK_PERIOD==1&&o&&this.updateGrid(),a=new Set,e=0;e<l.length;e++)n=l[e],this.calculateRepulsionForceOfANode(n,a,o,s),a.add(n);else for(e=0;e<l.length;e++)for(n=l[e],t=e+1;t<l.length;t++)r=l[t],n.getOwner()==r.getOwner()&&this.calcRepulsionForce(n,r)},l.prototype.calcGravitationalForces=function(){for(var e,t=this.getAllNodesToApplyGravitation(),n=0;n<t.length;n++)e=t[n],this.calcGravitationalForce(e)},l.prototype.moveNodes=function(){for(var e=this.getAllNodes(),t=0;t<e.length;t++)e[t].move()},l.prototype.calcSpringForce=function(e,t){var n,r,i,a,o=e.getSource(),s=e.getTarget();if(this.uniformLeafNodeSizes&&null==o.getChild()&&null==s.getChild())e.updateLengthSimple();else if(e.updateLength(),e.isOverlapingSourceAndTarget)return;0!=(n=e.getLength())&&(i=(r=this.springConstant*(n-t))*(e.lengthX/n),a=r*(e.lengthY/n),o.springForceX+=i,o.springForceY+=a,s.springForceX-=i,s.springForceY-=a)},l.prototype.calcRepulsionForce=function(e,t){var n,r,a,l,u,c,h,d=e.getRect(),p=t.getRect(),g=new Array(2),f=new Array(4);if(d.intersects(p)){o.calcSeparationAmount(d,p,g,i.DEFAULT_EDGE_LENGTH/2),c=2*g[0],h=2*g[1];var v=e.noOfChildren*t.noOfChildren/(e.noOfChildren+t.noOfChildren);e.repulsionForceX-=v*c,e.repulsionForceY-=v*h,t.repulsionForceX+=v*c,t.repulsionForceY+=v*h}else this.uniformLeafNodeSizes&&null==e.getChild()&&null==t.getChild()?(n=p.getCenterX()-d.getCenterX(),r=p.getCenterY()-d.getCenterY()):(o.getIntersection(d,p,f),n=f[2]-f[0],r=f[3]-f[1]),Math.abs(n)<i.MIN_REPULSION_DIST&&(n=s.sign(n)*i.MIN_REPULSION_DIST),Math.abs(r)<i.MIN_REPULSION_DIST&&(r=s.sign(r)*i.MIN_REPULSION_DIST),a=n*n+r*r,l=Math.sqrt(a),c=(u=this.repulsionConstant*e.noOfChildren*t.noOfChildren/a)*n/l,h=u*r/l,e.repulsionForceX-=c,e.repulsionForceY-=h,t.repulsionForceX+=c,t.repulsionForceY+=h},l.prototype.calcGravitationalForce=function(e){var t,n,r,i,a,o,s,l;n=((t=e.getOwner()).getRight()+t.getLeft())/2,r=(t.getTop()+t.getBottom())/2,i=e.getCenterX()-n,a=e.getCenterY()-r,o=Math.abs(i)+e.getWidth()/2,s=Math.abs(a)+e.getHeight()/2,e.getOwner()==this.graphManager.getRoot()?(o>(l=t.getEstimatedSize()*this.gravityRangeFactor)||s>l)&&(e.gravitationForceX=-this.gravityConstant*i,e.gravitationForceY=-this.gravityConstant*a):(o>(l=t.getEstimatedSize()*this.compoundGravityRangeFactor)||s>l)&&(e.gravitationForceX=-this.gravityConstant*i*this.compoundGravityConstant,e.gravitationForceY=-this.gravityConstant*a*this.compoundGravityConstant)},l.prototype.isConverged=function(){var e,t=!1;return this.totalIterations>this.maxIterations/3&&(t=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),e=this.totalDisplacement<this.totalDisplacementThreshold,this.oldTotalDisplacement=this.totalDisplacement,e||t},l.prototype.animate=function(){this.animationDuringLayout&&!this.isSubLayout&&(this.notAnimatedIterations==this.animationPeriod?(this.update(),this.notAnimatedIterations=0):this.notAnimatedIterations++)},l.prototype.calcNoOfChildrenForAllNodes=function(){for(var e,t=this.graphManager.getAllNodes(),n=0;n<t.length;n++)(e=t[n]).noOfChildren=e.getNoOfChildren()},l.prototype.calcGrid=function(e){var t,n;t=parseInt(Math.ceil((e.getRight()-e.getLeft())/this.repulsionRange)),n=parseInt(Math.ceil((e.getBottom()-e.getTop())/this.repulsionRange));for(var r=new Array(t),i=0;i<t;i++)r[i]=new Array(n);for(i=0;i<t;i++)for(var a=0;a<n;a++)r[i][a]=new Array;return r},l.prototype.addNodeToGrid=function(e,t,n){var r,i,a,o;r=parseInt(Math.floor((e.getRect().x-t)/this.repulsionRange)),i=parseInt(Math.floor((e.getRect().width+e.getRect().x-t)/this.repulsionRange)),a=parseInt(Math.floor((e.getRect().y-n)/this.repulsionRange)),o=parseInt(Math.floor((e.getRect().height+e.getRect().y-n)/this.repulsionRange));for(var s=r;s<=i;s++)for(var l=a;l<=o;l++)this.grid[s][l].push(e),e.setGridCoordinates(r,i,a,o)},l.prototype.updateGrid=function(){var e,t,n=this.getAllNodes();for(this.grid=this.calcGrid(this.graphManager.getRoot()),e=0;e<n.length;e++)t=n[e],this.addNodeToGrid(t,this.graphManager.getRoot().getLeft(),this.graphManager.getRoot().getTop())},l.prototype.calculateRepulsionForceOfANode=function(e,t,n,r){if(this.totalIterations%i.GRID_CALCULATION_CHECK_PERIOD==1&&n||r){var a,o=new Set;e.surrounding=new Array;for(var s=this.grid,l=e.startX-1;l<e.finishX+2;l++)for(var u=e.startY-1;u<e.finishY+2;u++)if(!(l<0||u<0||l>=s.length||u>=s[0].length))for(var c=0;c<s[l][u].length;c++)if(a=s[l][u][c],e.getOwner()==a.getOwner()&&e!=a&&!t.has(a)&&!o.has(a)){var h=Math.abs(e.getCenterX()-a.getCenterX())-(e.getWidth()/2+a.getWidth()/2),d=Math.abs(e.getCenterY()-a.getCenterY())-(e.getHeight()/2+a.getHeight()/2);h<=this.repulsionRange&&d<=this.repulsionRange&&o.add(a)}e.surrounding=[].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(o))}for(l=0;l<e.surrounding.length;l++)this.calcRepulsionForce(e,e.surrounding[l])},l.prototype.calcRepulsionRange=function(){return 0},e.exports=l},function(e,t,n){"use strict";var r=n(1),i=n(7);function a(e,t,n){r.call(this,e,t,n),this.idealLength=i.DEFAULT_EDGE_LENGTH}for(var o in a.prototype=Object.create(r.prototype),r)a[o]=r[o];e.exports=a},function(e,t,n){"use strict";var r=n(3);function i(e,t,n,i){r.call(this,e,t,n,i),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0,this.startX=0,this.finishX=0,this.startY=0,this.finishY=0,this.surrounding=[]}for(var a in i.prototype=Object.create(r.prototype),r)i[a]=r[a];i.prototype.setGridCoordinates=function(e,t,n,r){this.startX=e,this.finishX=t,this.startY=n,this.finishY=r},e.exports=i},function(e,t,n){"use strict";function r(e,t){this.width=0,this.height=0,null!==e&&null!==t&&(this.height=t,this.width=e)}r.prototype.getWidth=function(){return this.width},r.prototype.setWidth=function(e){this.width=e},r.prototype.getHeight=function(){return this.height},r.prototype.setHeight=function(e){this.height=e},e.exports=r},function(e,t,n){"use strict";var r=n(14);function i(){this.map={},this.keys=[]}i.prototype.put=function(e,t){var n=r.createID(e);this.contains(n)||(this.map[n]=t,this.keys.push(e))},i.prototype.contains=function(e){return r.createID(e),null!=this.map[e]},i.prototype.get=function(e){var t=r.createID(e);return this.map[t]},i.prototype.keySet=function(){return this.keys},e.exports=i},function(e,t,n){"use strict";var r=n(14);function i(){this.set={}}i.prototype.add=function(e){var t=r.createID(e);this.contains(t)||(this.set[t]=e)},i.prototype.remove=function(e){delete this.set[r.createID(e)]},i.prototype.clear=function(){this.set={}},i.prototype.contains=function(e){return this.set[r.createID(e)]==e},i.prototype.isEmpty=function(){return 0===this.size()},i.prototype.size=function(){return Object.keys(this.set).length},i.prototype.addAllTo=function(e){for(var t=Object.keys(this.set),n=t.length,r=0;r<n;r++)e.push(this.set[t[r]])},i.prototype.size=function(){return Object.keys(this.set).length},i.prototype.addAll=function(e){for(var t=e.length,n=0;n<t;n++){var r=e[n];this.add(r)}},e.exports=i},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(11),a=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),null===n&&void 0===n||(this.compareFunction=this._defaultCompareFunction);var r=void 0;r=t instanceof i?t.size():t.length,this._quicksort(t,0,r-1)}return r(e,[{key:"_quicksort",value:function(e,t,n){if(t<n){var r=this._partition(e,t,n);this._quicksort(e,t,r),this._quicksort(e,r+1,n)}}},{key:"_partition",value:function(e,t,n){for(var r=this._get(e,t),i=t,a=n;;){for(;this.compareFunction(r,this._get(e,a));)a--;for(;this.compareFunction(this._get(e,i),r);)i++;if(!(i<a))return a;this._swap(e,i,a),i++,a--}}},{key:"_get",value:function(e,t){return e instanceof i?e.get_object_at(t):e[t]}},{key:"_set",value:function(e,t,n){e instanceof i?e.set_object_at(t,n):e[t]=n}},{key:"_swap",value:function(e,t,n){var r=this._get(e,t);this._set(e,t,this._get(e,n)),this._set(e,n,r)}},{key:"_defaultCompareFunction",value:function(e,t){return t>e}}]),e}();e.exports=a},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1;i(this,e),this.sequence1=t,this.sequence2=n,this.match_score=r,this.mismatch_penalty=a,this.gap_penalty=o,this.iMax=t.length+1,this.jMax=n.length+1,this.grid=new Array(this.iMax);for(var s=0;s<this.iMax;s++){this.grid[s]=new Array(this.jMax);for(var l=0;l<this.jMax;l++)this.grid[s][l]=0}this.tracebackGrid=new Array(this.iMax);for(var u=0;u<this.iMax;u++){this.tracebackGrid[u]=new Array(this.jMax);for(var c=0;c<this.jMax;c++)this.tracebackGrid[u][c]=[null,null,null]}this.alignments=[],this.score=-1,this.computeGrids()}return r(e,[{key:"getScore",value:function(){return this.score}},{key:"getAlignments",value:function(){return this.alignments}},{key:"computeGrids",value:function(){for(var e=1;e<this.jMax;e++)this.grid[0][e]=this.grid[0][e-1]+this.gap_penalty,this.tracebackGrid[0][e]=[!1,!1,!0];for(var t=1;t<this.iMax;t++)this.grid[t][0]=this.grid[t-1][0]+this.gap_penalty,this.tracebackGrid[t][0]=[!1,!0,!1];for(var n=1;n<this.iMax;n++)for(var r=1;r<this.jMax;r++){var i=[this.sequence1[n-1]===this.sequence2[r-1]?this.grid[n-1][r-1]+this.match_score:this.grid[n-1][r-1]+this.mismatch_penalty,this.grid[n-1][r]+this.gap_penalty,this.grid[n][r-1]+this.gap_penalty],a=this.arrayAllMaxIndexes(i);this.grid[n][r]=i[a[0]],this.tracebackGrid[n][r]=[a.includes(0),a.includes(1),a.includes(2)]}this.score=this.grid[this.iMax-1][this.jMax-1]}},{key:"alignmentTraceback",value:function(){var e=[];for(e.push({pos:[this.sequence1.length,this.sequence2.length],seq1:"",seq2:""});e[0];){var t=e[0],n=this.tracebackGrid[t.pos[0]][t.pos[1]];n[0]&&e.push({pos:[t.pos[0]-1,t.pos[1]-1],seq1:this.sequence1[t.pos[0]-1]+t.seq1,seq2:this.sequence2[t.pos[1]-1]+t.seq2}),n[1]&&e.push({pos:[t.pos[0]-1,t.pos[1]],seq1:this.sequence1[t.pos[0]-1]+t.seq1,seq2:"-"+t.seq2}),n[2]&&e.push({pos:[t.pos[0],t.pos[1]-1],seq1:"-"+t.seq1,seq2:this.sequence2[t.pos[1]-1]+t.seq2}),0===t.pos[0]&&0===t.pos[1]&&this.alignments.push({sequence1:t.seq1,sequence2:t.seq2}),e.shift()}return this.alignments}},{key:"getAllIndexes",value:function(e,t){for(var n=[],r=-1;-1!==(r=e.indexOf(t,r+1));)n.push(r);return n}},{key:"arrayAllMaxIndexes",value:function(e){return this.getAllIndexes(e,Math.max.apply(null,e))}}]),e}();e.exports=a},function(e,t,n){"use strict";var r=function(){};r.FDLayout=n(18),r.FDLayoutConstants=n(7),r.FDLayoutEdge=n(19),r.FDLayoutNode=n(20),r.DimensionD=n(21),r.HashMap=n(22),r.HashSet=n(23),r.IGeometry=n(8),r.IMath=n(9),r.Integer=n(10),r.Point=n(12),r.PointD=n(4),r.RandomSeed=n(16),r.RectangleD=n(13),r.Transform=n(17),r.UniqueIDGeneretor=n(14),r.Quicksort=n(24),r.LinkedList=n(11),r.LGraphObject=n(2),r.LGraph=n(5),r.LEdge=n(1),r.LGraphManager=n(6),r.LNode=n(3),r.Layout=n(15),r.LayoutConstants=n(0),r.NeedlemanWunsch=n(25),e.exports=r},function(e,t,n){"use strict";function r(){this.listeners=[]}var i=r.prototype;i.addListener=function(e,t){this.listeners.push({event:e,callback:t})},i.removeListener=function(e,t){for(var n=this.listeners.length;n>=0;n--){var r=this.listeners[n];r.event===e&&r.callback===t&&this.listeners.splice(n,1)}},i.emit=function(e,t){for(var n=0;n<this.listeners.length;n++){var r=this.listeners[n];e===r.event&&r.callback(t)}},e.exports=r}])},e.exports=t()},47724:(e,t,n)=>{"use strict";n.r(t),n.d(t,{diagram:()=>S});var r=n(16432),i=n(59373),a=n(71377),o=n.n(a),s=n(14607),l=n.n(s),u=n(91619),c=n(12281),h=n(7201),d=(n(27484),n(17967),n(27856),n(70277),n(45625),n(39354),n(91518),n(59542),n(10285),n(28734),function(){var e=function(e,t,n,r){for(n=n||{},r=e.length;r--;n[e[r]]=t);return n},t=[1,4],n=[1,13],r=[1,12],i=[1,15],a=[1,16],o=[1,20],s=[1,19],l=[6,7,8],u=[1,26],c=[1,24],h=[1,25],d=[6,7,11],p=[1,6,13,15,16,19,22],g=[1,33],f=[1,34],v=[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(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 6:case 7:return r;case 8:r.getLogger().trace("Stop NL ");break;case 9:r.getLogger().trace("Stop EOF ");break;case 11:r.getLogger().trace("Stop NL2 ");break;case 12:r.getLogger().trace("Stop EOF2 ");break;case 15:r.getLogger().info("Node: ",a[s].id),r.addNode(a[s-1].length,a[s].id,a[s].descr,a[s].type);break;case 16:r.getLogger().trace("Icon: ",a[s]),r.decorateNode({icon:a[s]});break;case 17:case 21:r.decorateNode({class:a[s]});break;case 18:r.getLogger().trace("SPACELIST");break;case 19:r.getLogger().trace("Node: ",a[s].id),r.addNode(0,a[s].id,a[s].descr,a[s].type);break;case 20:r.decorateNode({icon:a[s]});break;case 25:r.getLogger().trace("node found ..",a[s-2]),this.$={id:a[s-1],descr:a[s-1],type:r.getType(a[s-2],a[s])};break;case 26:this.$={id:a[s],descr:a[s],type:r.nodeType.DEFAULT};break;case 27:r.getLogger().trace("node found ..",a[s-3]),this.$={id:a[s-3],descr:a[s-1],type:r.getType(a[s-2],a[s])}}},table:[{3:1,4:2,5:3,6:[1,5],8:t},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:t},{6:n,7:[1,10],9:9,12:11,13:r,14:14,15:i,16:a,17:17,18:18,19:o,22:s},e(l,[2,3]),{1:[2,2]},e(l,[2,4]),e(l,[2,5]),{1:[2,6],6:n,12:21,13:r,14:14,15:i,16:a,17:17,18:18,19:o,22:s},{6:n,9:22,12:11,13:r,14:14,15:i,16:a,17:17,18:18,19:o,22:s},{6:u,7:c,10:23,11:h},e(d,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:o,22:s}),e(d,[2,18]),e(d,[2,19]),e(d,[2,20]),e(d,[2,21]),e(d,[2,23]),e(d,[2,24]),e(d,[2,26],{19:[1,30]}),{20:[1,31]},{6:u,7:c,10:32,11:h},{1:[2,7],6:n,12:21,13:r,14:14,15:i,16:a,17:17,18:18,19:o,22:s},e(p,[2,14],{7:g,11:f}),e(v,[2,8]),e(v,[2,9]),e(v,[2,10]),e(d,[2,15]),e(d,[2,16]),e(d,[2,17]),{20:[1,35]},{21:[1,36]},e(p,[2,13],{7:g,11:f}),e(v,[2,11]),e(v,[2,12]),{21:[1,37]},e(d,[2,25]),e(d,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:function(e,t){if(!t.recoverable){var n=new Error(e);throw n.hash=t,n}this.trace(e)},parse:function(e){var t=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",l=0,u=0,c=2,h=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var f in this.yy)Object.prototype.hasOwnProperty.call(this.yy,f)&&(g.yy[f]=this.yy[f]);p.setInput(e,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var v=p.yylloc;a.push(v);var y=p.options&&p.options.ranges;function m(){var e;return"number"!=typeof(e=r.pop()||p.lex()||h)&&(e instanceof Array&&(e=(r=e).pop()),e=t.symbols_[e]||e),e}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,x,w,E,T,_,D,C,N={};;){if(x=n[n.length-1],this.defaultActions[x]?w=this.defaultActions[x]:(null==b&&(b=m()),w=o[x]&&o[x][b]),void 0===w||!w.length||!w[0]){var A="";for(T in C=[],o[x])this.terminals_[T]&&T>c&&C.push("'"+this.terminals_[T]+"'");A=p.showPosition?"Parse error on line "+(l+1)+":\n"+p.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(l+1)+": Unexpected "+(b==h?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(A,{text:p.match,token:this.terminals_[b]||b,line:p.yylineno,loc:v,expected:C})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+b);switch(w[0]){case 1:n.push(b),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),b=null,u=p.yyleng,s=p.yytext,l=p.yylineno,v=p.yylloc;break;case 2:if(_=this.productions_[w[1]][1],N.$=i[i.length-_],N._$={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},y&&(N._$.range=[a[a.length-(_||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(N,[s,u,l,g.yy,w[1],i,a].concat(d))))return E;_&&(n=n.slice(0,-1*_*2),i=i.slice(0,-1*_),a=a.slice(0,-1*_)),n.push(this.productions_[w[1]][0]),i.push(N.$),a.push(N._$),D=o[n[n.length-2]][n[n.length-1]],n.push(D);break;case 3:return!0}}return!0}},m={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,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 e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;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 i=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-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,i;if(this.options.backtrack_lexer&&(i={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&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(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+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,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(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;a<i.length;a++)if((n=this._input.match(this.rules[i[a]]))&&(!t||n[0].length>t[0].length)){if(t=n,r=a,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,i[a])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,i[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+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(){return this.conditionStack.length-1>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))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,t,n,r){switch(n){case 0:e.getLogger().trace("Found comment",t.yytext);break;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:case 23:this.popState();break;case 5:e.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return e.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:e.getLogger().trace("end icon"),this.popState();break;case 10:return e.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return e.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return e.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return e.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:case 15:case 16:case 17:return this.begin("NODE"),19;case 18:return 13;case 19:return 22;case 20:return 11;case 21:e.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 22:return e.getLogger().trace("description:",t.yytext),"NODE_DESCR";case 24:return this.popState(),e.getLogger().trace("node end ))"),"NODE_DEND";case 25:return this.popState(),e.getLogger().trace("node end )"),"NODE_DEND";case 26:return this.popState(),e.getLogger().trace("node end ...",t.yytext),"NODE_DEND";case 27:case 30:case 31:return this.popState(),e.getLogger().trace("node end (("),"NODE_DEND";case 28:case 29:return this.popState(),e.getLogger().trace("node end (-"),"NODE_DEND";case 32:case 33:return e.getLogger().trace("Long description:",t.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],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR:{rules:[22,23],inclusive:!1},NODE:{rules:[21,24,25,26,27,28,29,30,31,32,33],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};function b(){this.yy={}}return y.lexer=m,b.prototype=y,y.Parser=b,new b}());d.parser=d;const p=d,g=e=>(0,r.n)(e,(0,r.g)());let f=[],v=0,y={};const m={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},b=(e,t)=>{y[e]=t},x=e=>{switch(e){case m.DEFAULT:return"no-border";case m.RECT:return"rect";case m.ROUNDED_RECT:return"rounded-rect";case m.CIRCLE:return"circle";case m.CLOUD:return"cloud";case m.BANG:return"bang";case m.HEXAGON:return"hexgon";default:return"no-border"}};let w;const E=e=>y[e],T=Object.freeze(Object.defineProperty({__proto__:null,addNode:(e,t,n,i)=>{r.l.info("addNode",e,t,n,i);const a=(0,r.g)(),o={id:v++,nodeId:g(t),level:e,descr:g(n),type:i,children:[],width:(0,r.g)().mindmap.maxNodeWidth};switch(o.type){case m.ROUNDED_RECT:case m.RECT:case m.HEXAGON:o.padding=2*a.mindmap.padding;break;default:o.padding=a.mindmap.padding}const s=function(e){for(let t=f.length-1;t>=0;t--)if(f[t].level<e)return f[t];return null}(e);if(s)s.children.push(o),f.push(o);else{if(0!==f.length){let e=new Error('There can be only one root. No parent could be found for ("'+o.descr+'")');throw e.hash={text:"branch "+name,token:"branch "+name,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+name+'"']},e}f.push(o)}},clear:()=>{f=[],v=0,y={}},decorateNode:e=>{const t=f[f.length-1];e&&e.icon&&(t.icon=g(e.icon)),e&&e.class&&(t.class=g(e.class))},getElementById:E,getLogger:()=>r.l,getMindmap:()=>f.length>0?f[0]:null,getNodeById:e=>f[e],getType:(e,t)=>{switch(r.l.debug("In get type",e,t),e){case"[":return m.RECT;case"(":return")"===t?m.ROUNDED_RECT:m.CLOUD;case"((":return m.CIRCLE;case")":return m.CLOUD;case"))":return m.BANG;case"{{":return m.HEXAGON;default:return m.DEFAULT}},nodeType:m,get parseError(){return w},sanitizeText:g,setElementForId:b,setErrorHandler:e=>{w=e},type2Str:x},Symbol.toStringTag,{value:"Module"}));function _(e,t){e.each((function(){var e,n=(0,i.Ys)(this),r=n.text().split(/(\s+|<br>)/).reverse(),a=[],o=n.attr("y"),s=parseFloat(n.attr("dy")),l=n.text(null).append("tspan").attr("x",0).attr("y",o).attr("dy",s+"em");for(let i=0;i<r.length;i++)e=r[r.length-1-i],a.push(e),l.text(a.join(" ").trim()),(l.node().getComputedTextLength()>t||"<br>"===e)&&(a.pop(),l.text(a.join(" ").trim()),a="<br>"===e?[""]:[e],l=n.append("tspan").attr("x",0).attr("y",o).attr("dy","1.1em").text(e))}))}const D=function(e,t,n,r){const i=n%11,a=e.append("g");t.section=i;let o="section-"+i;i<0&&(o+=" section-root"),a.attr("class",(t.class?t.class+" ":"")+"mindmap-node "+o);const s=a.append("g"),l=a.append("g"),u=l.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(_,t.width).node().getBBox(),c=r.fontSize.replace?r.fontSize.replace("px",""):r.fontSize;if(t.height=u.height+1.1*c*.5+t.padding,t.width=u.width+2*t.padding,t.icon)if(t.type===m.CIRCLE){t.height+=50,t.width+=50;a.append("foreignObject").attr("height","50px").attr("width",t.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+i+" "+t.icon),l.attr("transform","translate("+t.width/2+", "+(t.height/2-1.5*t.padding)+")")}else{t.width+=50;const e=t.height;t.height=Math.max(e,60);const n=Math.abs(t.height-e);a.append("foreignObject").attr("width","60px").attr("height",t.height).attr("style","text-align: center;margin-top:"+n/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+i+" "+t.icon),l.attr("transform","translate("+(25+t.width/2)+", "+(n/2+t.padding/2)+")")}else l.attr("transform","translate("+t.width/2+", "+t.padding/2+")");switch(t.type){case m.DEFAULT:!function(e,t,n){e.append("path").attr("id","node-"+t.id).attr("class","node-bkg node-"+x(t.type)).attr("d",`M0 ${t.height-5} v${10-t.height} q0,-5 5,-5 h${t.width-10} q5,0 5,5 v${t.height-5} H0 Z`),e.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",t.height).attr("x2",t.width).attr("y2",t.height)}(s,t,i);break;case m.ROUNDED_RECT:!function(e,t){e.append("rect").attr("id","node-"+t.id).attr("class","node-bkg node-"+x(t.type)).attr("height",t.height).attr("rx",t.padding).attr("ry",t.padding).attr("width",t.width)}(s,t);break;case m.RECT:!function(e,t){e.append("rect").attr("id","node-"+t.id).attr("class","node-bkg node-"+x(t.type)).attr("height",t.height).attr("width",t.width)}(s,t);break;case m.CIRCLE:s.attr("transform","translate("+t.width/2+", "+ +t.height/2+")"),function(e,t){e.append("circle").attr("id","node-"+t.id).attr("class","node-bkg node-"+x(t.type)).attr("r",t.width/2)}(s,t);break;case m.CLOUD:!function(e,t){const n=t.width,r=t.height,i=.15*n,a=.25*n,o=.35*n,s=.2*n;e.append("path").attr("id","node-"+t.id).attr("class","node-bkg node-"+x(t.type)).attr("d",`M0 0 a${i},${i} 0 0,1 ${.25*n},${-1*n*.1}\n a${o},${o} 1 0,1 ${.4*n},${-1*n*.1}\n a${a},${a} 1 0,1 ${.35*n},${1*n*.2}\n\n a${i},${i} 1 0,1 ${.15*n},${1*r*.35}\n a${s},${s} 1 0,1 ${-1*n*.15},${1*r*.65}\n\n a${a},${i} 1 0,1 ${-1*n*.25},${.15*n}\n a${o},${o} 1 0,1 ${-1*n*.5},0\n a${i},${i} 1 0,1 ${-1*n*.25},${-1*n*.15}\n\n a${i},${i} 1 0,1 ${-1*n*.1},${-1*r*.35}\n a${s},${s} 1 0,1 ${.1*n},${-1*r*.65}\n\n H0 V0 Z`)}(s,t);break;case m.BANG:!function(e,t){const n=t.width,r=t.height,i=.15*n;e.append("path").attr("id","node-"+t.id).attr("class","node-bkg node-"+x(t.type)).attr("d",`M0 0 a${i},${i} 1 0,0 ${.25*n},${-1*r*.1}\n a${i},${i} 1 0,0 ${.25*n},0\n a${i},${i} 1 0,0 ${.25*n},0\n a${i},${i} 1 0,0 ${.25*n},${1*r*.1}\n\n a${i},${i} 1 0,0 ${.15*n},${1*r*.33}\n a${.8*i},${.8*i} 1 0,0 0,${1*r*.34}\n a${i},${i} 1 0,0 ${-1*n*.15},${1*r*.33}\n\n a${i},${i} 1 0,0 ${-1*n*.25},${.15*r}\n a${i},${i} 1 0,0 ${-1*n*.25},0\n a${i},${i} 1 0,0 ${-1*n*.25},0\n a${i},${i} 1 0,0 ${-1*n*.25},${-1*r*.15}\n\n a${i},${i} 1 0,0 ${-1*n*.1},${-1*r*.33}\n a${.8*i},${.8*i} 1 0,0 0,${-1*r*.34}\n a${i},${i} 1 0,0 ${.1*n},${-1*r*.33}\n\n H0 V0 Z`)}(s,t);break;case m.HEXAGON:!function(e,t){const n=t.height,r=n/4,i=t.width-t.padding+2*r;!function(e,t,n,r,i){e.insert("polygon",":first-child").attr("points",r.map((function(e){return e.x+","+e.y})).join(" ")).attr("transform","translate("+(i.width-t)/2+", "+n+")")}(e,i,n,[{x:r,y:0},{x:i-r,y:0},{x:i,y:-n/2},{x:i-r,y:-n},{x:r,y:-n},{x:0,y:-n/2}],t)}(s,t)}return b(t.id,a),t.height},C=function(e){const t=E(e.id),n=e.x||0,r=e.y||0;t.attr("transform","translate("+n+","+r+")")};function N(e,t,n,r){D(e,t,n,r),t.children&&t.children.forEach(((t,i)=>{N(e,t,n<0?i:n,r)}))}function A(e,t,n,r){t.add({group:"nodes",data:{id:e.id,labelText:e.descr,height:e.height,width:e.width,level:r,nodeId:e.id,padding:e.padding,type:e.type},position:{x:e.x,y:e.y}}),e.children&&e.children.forEach((i=>{A(i,t,n,r+1),t.add({group:"edges",data:{id:`${e.id}_${i.id}`,source:e.id,target:i.id,depth:r,section:i.section}})}))}function L(e,t){return new Promise((n=>{const a=(0,i.Ys)("body").append("div").attr("id","cy").attr("style","display:none"),s=o()({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});a.remove(),A(e,s,t,0),s.nodes().forEach((function(e){e.layoutDimensions=()=>{const t=e.data();return{w:t.width,h:t.height}}})),s.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),s.ready((e=>{r.l.info("Ready",e),n(s)}))}))}o().use(l());const S={db:T,renderer:{draw:async(e,t,n,a)=>{const o=(0,r.g)();a.db.clear(),a.parser.parse(e),r.l.debug("Renering info diagram\n"+e);const s=(0,r.g)().securityLevel;let l;"sandbox"===s&&(l=(0,i.Ys)("#i"+t));const u=("sandbox"===s?(0,i.Ys)(l.nodes()[0].contentDocument.body):(0,i.Ys)("body")).select("#"+t);u.append("g");const c=a.db.getMindmap(),h=u.append("g");h.attr("class","mindmap-edges");const d=u.append("g");d.attr("class","mindmap-nodes"),N(d,c,-1,o);const p=await L(c,o);!function(e,t){t.edges().map(((t,n)=>{const i=t.data();if(t[0]._private.bodyBounds){const a=t[0]._private.rscratch;r.l.trace("Edge: ",n,i),e.insert("path").attr("d",`M ${a.startX},${a.startY} L ${a.midX},${a.midY} L${a.endX},${a.endY} `).attr("class","edge section-edge-"+i.section+" edge-depth-"+i.depth)}}))}(h,p),function(e){e.nodes().map(((e,t)=>{const n=e.data();n.x=e.position().x,n.y=e.position().y,C(n);const i=E(n.nodeId);r.l.info("Id:",t,"Position: (",e.position().x,", ",e.position().y,")",n),i.attr("transform",`translate(${e.position().x-n.width/2}, ${e.position().y-n.height/2})`),i.attr("attr",`apa-${t})`)}))}(p),(0,r.s)(void 0,u,o.mindmap.padding,o.mindmap.useMaxWidth)}},parser:p,styles:e=>`\n .edge {\n stroke-width: 3;\n }\n ${(e=>{let t="";for(let n=0;n<e.THEME_COLOR_LIMIT;n++)e["lineColor"+n]=e["lineColor"+n]||e["cScaleInv"+n],(0,u.Z)(e["lineColor"+n])?e["lineColor"+n]=(0,c.Z)(e["lineColor"+n],20):e["lineColor"+n]=(0,h.Z)(e["lineColor"+n],20);for(let n=0;n<e.THEME_COLOR_LIMIT;n++){const r=""+(17-3*n);t+=`\n .section-${n-1} rect, .section-${n-1} path, .section-${n-1} circle, .section-${n-1} polygon, .section-${n-1} path {\n fill: ${e["cScale"+n]};\n }\n .section-${n-1} text {\n fill: ${e["cScaleLabel"+n]};\n }\n .node-icon-${n-1} {\n font-size: 40px;\n color: ${e["cScaleLabel"+n]};\n }\n .section-edge-${n-1}{\n stroke: ${e["cScale"+n]};\n }\n .edge-depth-${n-1}{\n stroke-width: ${r};\n }\n .section-${n-1} line {\n stroke: ${e["cScaleInv"+n]} ;\n stroke-width: 3;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n `}return t})(e)}\n .section-root rect, .section-root path, .section-root circle, .section-root polygon {\n fill: ${e.git0};\n }\n .section-root text {\n fill: ${e.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n`}},91619:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(61691),i=n(71610);const a=e=>{const{r:t,g:n,b:a}=i.Z.parse(e),o=.2126*r.Z.channel.toLinear(t)+.7152*r.Z.channel.toLinear(n)+.0722*r.Z.channel.toLinear(a);return r.Z.lang.round(o)},o=e=>a(e)>=.5,s=e=>!o(e)}}]); \ No newline at end of file diff --git a/assets/js/7724.ccc7d3de.js.LICENSE.txt b/assets/js/7724.ccc7d3de.js.LICENSE.txt new file mode 100644 index 00000000000..a58daed496d --- /dev/null +++ b/assets/js/7724.ccc7d3de.js.LICENSE.txt @@ -0,0 +1,9 @@ +/*! + 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) + */ + +/*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */ + +/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */ diff --git a/assets/js/7758.dda2fbc1.js b/assets/js/7758.dda2fbc1.js new file mode 100644 index 00000000000..5e0df3dc04f --- /dev/null +++ b/assets/js/7758.dda2fbc1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7758],{57758:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>a,toc:()=>m});var n=o(87462),r=(o(67294),o(3905));o(45475);const s={title:"flow-remove-types",slug:"/tools/flow-remove-types"},l=void 0,a={unversionedId:"tools/flow-remove-types",id:"tools/flow-remove-types",title:"flow-remove-types",description:"flow-remove-types is a small",source:"@site/docs/tools/flow-remove-types.md",sourceDirName:"tools",slug:"/tools/flow-remove-types",permalink:"/en/docs/tools/flow-remove-types",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/tools/flow-remove-types.md",tags:[],version:"current",frontMatter:{title:"flow-remove-types",slug:"/tools/flow-remove-types"},sidebar:"docsSidebar",previous:{title:"ESLint",permalink:"/en/docs/tools/eslint"},next:{title:"Editors",permalink:"/en/docs/editors"}},p={},m=[],i={toc:m};function d(e){let{components:t,...o}=e;return(0,r.mdx)("wrapper",(0,n.Z)({},i,o,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,(0,r.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/tree/master/packages/flow-remove-types"},(0,r.mdx)("inlineCode",{parentName:"a"},"flow-remove-types"))," is a small\nCLI tool for stripping Flow type annotations from files. It's a lighter-weight\nalternative to Babel for projects that don't need everything Babel provides."),(0,r.mdx)("p",null,"First install ",(0,r.mdx)("inlineCode",{parentName:"p"},"flow-remove-types")," with either\n",(0,r.mdx)("a",{parentName:"p",href:"https://yarnpkg.com/"},"Yarn")," or ",(0,r.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/"},"npm"),"."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-sh"},"yarn add --dev flow-remove-types\n# or\nnpm install --save-dev flow-remove-types\n")),(0,r.mdx)("p",null,"If you then put all your source files in a ",(0,r.mdx)("inlineCode",{parentName:"p"},"src")," directory you can compile them\nto another directory by running:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-sh"},"yarn run flow-remove-types src/ -d lib/\n")),(0,r.mdx)("p",null,"You can add this to your ",(0,r.mdx)("inlineCode",{parentName:"p"},"package.json")," scripts easily."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-json"},'{\n "name": "my-project",\n "main": "lib/index.js",\n "scripts": {\n "build": "flow-remove-types src/ -d lib/",\n "prepublish": "yarn run build"\n }\n}\n')),(0,r.mdx)("blockquote",null,(0,r.mdx)("p",{parentName:"blockquote"},(0,r.mdx)("strong",{parentName:"p"},"Note:")," You'll probably want to add a ",(0,r.mdx)("inlineCode",{parentName:"p"},"prepublish")," script that runs this\ntransform as well, so that it runs before you publish your code to the npm\nregistry.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/776.52166cee.js b/assets/js/776.52166cee.js new file mode 100644 index 00000000000..6773fe8b5cc --- /dev/null +++ b/assets/js/776.52166cee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[776],{10776:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>a,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>l,toc:()=>p});var i=o(87462),n=(o(67294),o(3905));const r={title:"Flow's Improved Handling of Generic Types","short-title":"Generic Types Improvements",author:"Michael Vitousek","medium-link":"https://medium.com/flow-type/flows-improved-handling-of-generic-types-b5909cc5e3c5"},s=void 0,l={permalink:"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types",source:"@site/blog/2020-11-16-Flows-Improved-Handling-of-Generic-Types.md",title:"Flow's Improved Handling of Generic Types",description:"Flow has improved its handling of generic types by banning unsafe behaviors previously allowed and clarifying error messages.",date:"2020-11-16T00:00:00.000Z",formattedDate:"November 16, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Michael Vitousek"}],frontMatter:{title:"Flow's Improved Handling of Generic Types","short-title":"Generic Types Improvements",author:"Michael Vitousek","medium-link":"https://medium.com/flow-type/flows-improved-handling-of-generic-types-b5909cc5e3c5"},prevItem:{title:"Types-First the only supported mode in Flow (Jan 2021)",permalink:"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow"},nextItem:{title:"Types-First: A Scalable New Architecture for Flow",permalink:"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow"}},a={authorsImageUrls:[void 0]},p=[],m={toc:p};function c(e){let{components:t,...o}=e;return(0,n.mdx)("wrapper",(0,i.Z)({},m,o,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"Flow has improved its handling of generic types by banning unsafe behaviors previously allowed and clarifying error messages."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7778.70985237.js b/assets/js/7778.70985237.js new file mode 100644 index 00000000000..0eae1466524 --- /dev/null +++ b/assets/js/7778.70985237.js @@ -0,0 +1,2 @@ +/*! For license information please see 7778.70985237.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7778],{27778:(E,T,R)=>{R.r(T),R.d(T,{conf:()=>A,language:()=>I});var A={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},I={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ABORT","ABSOLUTE","ACTION","ADA","ADD","AFTER","ALL","ALLOCATE","ALTER","ALWAYS","ANALYZE","AND","ANY","ARE","AS","ASC","ASSERTION","AT","ATTACH","AUTHORIZATION","AUTOINCREMENT","AVG","BACKUP","BEFORE","BEGIN","BETWEEN","BIT","BIT_LENGTH","BOTH","BREAK","BROWSE","BULK","BY","CASCADE","CASCADED","CASE","CAST","CATALOG","CHAR","CHARACTER","CHARACTER_LENGTH","CHAR_LENGTH","CHECK","CHECKPOINT","CLOSE","CLUSTERED","COALESCE","COLLATE","COLLATION","COLUMN","COMMIT","COMPUTE","CONFLICT","CONNECT","CONNECTION","CONSTRAINT","CONSTRAINTS","CONTAINS","CONTAINSTABLE","CONTINUE","CONVERT","CORRESPONDING","COUNT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATE","DAY","DBCC","DEALLOCATE","DEC","DECIMAL","DECLARE","DEFAULT","DEFERRABLE","DEFERRED","DELETE","DENY","DESC","DESCRIBE","DESCRIPTOR","DETACH","DIAGNOSTICS","DISCONNECT","DISK","DISTINCT","DISTRIBUTED","DO","DOMAIN","DOUBLE","DROP","DUMP","EACH","ELSE","END","END-EXEC","ERRLVL","ESCAPE","EXCEPT","EXCEPTION","EXCLUDE","EXCLUSIVE","EXEC","EXECUTE","EXISTS","EXIT","EXPLAIN","EXTERNAL","EXTRACT","FAIL","FALSE","FETCH","FILE","FILLFACTOR","FILTER","FIRST","FLOAT","FOLLOWING","FOR","FOREIGN","FORTRAN","FOUND","FREETEXT","FREETEXTTABLE","FROM","FULL","FUNCTION","GENERATED","GET","GLOB","GLOBAL","GO","GOTO","GRANT","GROUP","GROUPS","HAVING","HOLDLOCK","HOUR","IDENTITY","IDENTITYCOL","IDENTITY_INSERT","IF","IGNORE","IMMEDIATE","IN","INCLUDE","INDEX","INDEXED","INDICATOR","INITIALLY","INNER","INPUT","INSENSITIVE","INSERT","INSTEAD","INT","INTEGER","INTERSECT","INTERVAL","INTO","IS","ISNULL","ISOLATION","JOIN","KEY","KILL","LANGUAGE","LAST","LEADING","LEFT","LEVEL","LIKE","LIMIT","LINENO","LOAD","LOCAL","LOWER","MATCH","MATERIALIZED","MAX","MERGE","MIN","MINUTE","MODULE","MONTH","NAMES","NATIONAL","NATURAL","NCHAR","NEXT","NO","NOCHECK","NONCLUSTERED","NONE","NOT","NOTHING","NOTNULL","NULL","NULLIF","NULLS","NUMERIC","OCTET_LENGTH","OF","OFF","OFFSET","OFFSETS","ON","ONLY","OPEN","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","OPTION","OR","ORDER","OTHERS","OUTER","OUTPUT","OVER","OVERLAPS","PAD","PARTIAL","PARTITION","PASCAL","PERCENT","PIVOT","PLAN","POSITION","PRAGMA","PRECEDING","PRECISION","PREPARE","PRESERVE","PRIMARY","PRINT","PRIOR","PRIVILEGES","PROC","PROCEDURE","PUBLIC","QUERY","RAISE","RAISERROR","RANGE","READ","READTEXT","REAL","RECONFIGURE","RECURSIVE","REFERENCES","REGEXP","REINDEX","RELATIVE","RELEASE","RENAME","REPLACE","REPLICATION","RESTORE","RESTRICT","RETURN","RETURNING","REVERT","REVOKE","RIGHT","ROLLBACK","ROW","ROWCOUNT","ROWGUIDCOL","ROWS","RULE","SAVE","SAVEPOINT","SCHEMA","SCROLL","SECOND","SECTION","SECURITYAUDIT","SELECT","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","SESSION","SESSION_USER","SET","SETUSER","SHUTDOWN","SIZE","SMALLINT","SOME","SPACE","SQL","SQLCA","SQLCODE","SQLERROR","SQLSTATE","SQLWARNING","STATISTICS","SUBSTRING","SUM","SYSTEM_USER","TABLE","TABLESAMPLE","TEMP","TEMPORARY","TEXTSIZE","THEN","TIES","TIME","TIMESTAMP","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TOP","TRAILING","TRAN","TRANSACTION","TRANSLATE","TRANSLATION","TRIGGER","TRIM","TRUE","TRUNCATE","TRY_CONVERT","TSEQUAL","UNBOUNDED","UNION","UNIQUE","UNKNOWN","UNPIVOT","UPDATE","UPDATETEXT","UPPER","USAGE","USE","USER","USING","VACUUM","VALUE","VALUES","VARCHAR","VARYING","VIEW","VIRTUAL","WAITFOR","WHEN","WHENEVER","WHERE","WHILE","WINDOW","WITH","WITHIN GROUP","WITHOUT","WORK","WRITE","WRITETEXT","YEAR","ZONE"],operators:["ALL","AND","ANY","BETWEEN","EXISTS","IN","LIKE","NOT","OR","SOME","EXCEPT","INTERSECT","UNION","APPLY","CROSS","FULL","INNER","JOIN","LEFT","OUTER","RIGHT","CONTAINS","FREETEXT","IS","NULL","PIVOT","UNPIVOT","MATCHED"],builtinFunctions:["AVG","CHECKSUM_AGG","COUNT","COUNT_BIG","GROUPING","GROUPING_ID","MAX","MIN","SUM","STDEV","STDEVP","VAR","VARP","CUME_DIST","FIRST_VALUE","LAG","LAST_VALUE","LEAD","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","COLLATE","COLLATIONPROPERTY","TERTIARY_WEIGHTS","FEDERATION_FILTERING_VALUE","CAST","CONVERT","PARSE","TRY_CAST","TRY_CONVERT","TRY_PARSE","ASYMKEY_ID","ASYMKEYPROPERTY","CERTPROPERTY","CERT_ID","CRYPT_GEN_RANDOM","DECRYPTBYASYMKEY","DECRYPTBYCERT","DECRYPTBYKEY","DECRYPTBYKEYAUTOASYMKEY","DECRYPTBYKEYAUTOCERT","DECRYPTBYPASSPHRASE","ENCRYPTBYASYMKEY","ENCRYPTBYCERT","ENCRYPTBYKEY","ENCRYPTBYPASSPHRASE","HASHBYTES","IS_OBJECTSIGNED","KEY_GUID","KEY_ID","KEY_NAME","SIGNBYASYMKEY","SIGNBYCERT","SYMKEYPROPERTY","VERIFYSIGNEDBYCERT","VERIFYSIGNEDBYASYMKEY","CURSOR_STATUS","DATALENGTH","IDENT_CURRENT","IDENT_INCR","IDENT_SEED","IDENTITY","SQL_VARIANT_PROPERTY","CURRENT_TIMESTAMP","DATEADD","DATEDIFF","DATEFROMPARTS","DATENAME","DATEPART","DATETIME2FROMPARTS","DATETIMEFROMPARTS","DATETIMEOFFSETFROMPARTS","DAY","EOMONTH","GETDATE","GETUTCDATE","ISDATE","MONTH","SMALLDATETIMEFROMPARTS","SWITCHOFFSET","SYSDATETIME","SYSDATETIMEOFFSET","SYSUTCDATETIME","TIMEFROMPARTS","TODATETIMEOFFSET","YEAR","CHOOSE","COALESCE","IIF","NULLIF","ABS","ACOS","ASIN","ATAN","ATN2","CEILING","COS","COT","DEGREES","EXP","FLOOR","LOG","LOG10","PI","POWER","RADIANS","RAND","ROUND","SIGN","SIN","SQRT","SQUARE","TAN","APP_NAME","APPLOCK_MODE","APPLOCK_TEST","ASSEMBLYPROPERTY","COL_LENGTH","COL_NAME","COLUMNPROPERTY","DATABASE_PRINCIPAL_ID","DATABASEPROPERTYEX","DB_ID","DB_NAME","FILE_ID","FILE_IDEX","FILE_NAME","FILEGROUP_ID","FILEGROUP_NAME","FILEGROUPPROPERTY","FILEPROPERTY","FULLTEXTCATALOGPROPERTY","FULLTEXTSERVICEPROPERTY","INDEX_COL","INDEXKEY_PROPERTY","INDEXPROPERTY","OBJECT_DEFINITION","OBJECT_ID","OBJECT_NAME","OBJECT_SCHEMA_NAME","OBJECTPROPERTY","OBJECTPROPERTYEX","ORIGINAL_DB_NAME","PARSENAME","SCHEMA_ID","SCHEMA_NAME","SCOPE_IDENTITY","SERVERPROPERTY","STATS_DATE","TYPE_ID","TYPE_NAME","TYPEPROPERTY","DENSE_RANK","NTILE","RANK","ROW_NUMBER","PUBLISHINGSERVERNAME","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","CERTENCODED","CERTPRIVATEKEY","CURRENT_USER","HAS_DBACCESS","HAS_PERMS_BY_NAME","IS_MEMBER","IS_ROLEMEMBER","IS_SRVROLEMEMBER","LOGINPROPERTY","ORIGINAL_LOGIN","PERMISSIONS","PWDENCRYPT","PWDCOMPARE","SESSION_USER","SESSIONPROPERTY","SUSER_ID","SUSER_NAME","SUSER_SID","SUSER_SNAME","SYSTEM_USER","USER","USER_ID","USER_NAME","ASCII","CHAR","CHARINDEX","CONCAT","DIFFERENCE","FORMAT","LEFT","LEN","LOWER","LTRIM","NCHAR","PATINDEX","QUOTENAME","REPLACE","REPLICATE","REVERSE","RIGHT","RTRIM","SOUNDEX","SPACE","STR","STUFF","SUBSTRING","UNICODE","UPPER","BINARY_CHECKSUM","CHECKSUM","CONNECTIONPROPERTY","CONTEXT_INFO","CURRENT_REQUEST_ID","ERROR_LINE","ERROR_NUMBER","ERROR_MESSAGE","ERROR_PROCEDURE","ERROR_SEVERITY","ERROR_STATE","FORMATMESSAGE","GETANSINULL","GET_FILESTREAM_TRANSACTION_CONTEXT","HOST_ID","HOST_NAME","ISNULL","ISNUMERIC","MIN_ACTIVE_ROWVERSION","NEWID","NEWSEQUENTIALID","ROWCOUNT_BIG","XACT_STATE","TEXTPTR","TEXTVALID","COLUMNS_UPDATED","EVENTDATA","TRIGGER_NESTLEVEL","UPDATE","CHANGETABLE","CHANGE_TRACKING_CONTEXT","CHANGE_TRACKING_CURRENT_VERSION","CHANGE_TRACKING_IS_COLUMN_IN_MASK","CHANGE_TRACKING_MIN_VALID_VERSION","CONTAINSTABLE","FREETEXTTABLE","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","FILETABLEROOTPATH","GETFILENAMESPACEPATH","GETPATHLOCATOR","PATHNAME","GET_TRANSMISSION_STATUS"],builtinVariables:["@@DATEFIRST","@@DBTS","@@LANGID","@@LANGUAGE","@@LOCK_TIMEOUT","@@MAX_CONNECTIONS","@@MAX_PRECISION","@@NESTLEVEL","@@OPTIONS","@@REMSERVER","@@SERVERNAME","@@SERVICENAME","@@SPID","@@TEXTSIZE","@@VERSION","@@CURSOR_ROWS","@@FETCH_STATUS","@@DATEFIRST","@@PROCID","@@ERROR","@@IDENTITY","@@ROWCOUNT","@@TRANCOUNT","@@CONNECTIONS","@@CPU_BUSY","@@IDLE","@@IO_BUSY","@@PACKET_ERRORS","@@PACK_RECEIVED","@@PACK_SENT","@@TIMETICKS","@@TOTAL_ERRORS","@@TOTAL_READ","@@TOTAL_WRITE"],pseudoColumns:["$ACTION","$IDENTITY","$ROWGUID","$PARTITION"],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@keywords":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/N'/,{token:"string",next:"@string"}],[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/\[/,{token:"identifier.quote",next:"@bracketedIdentifier"}],[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],bracketedIdentifier:[[/[^\]]+/,"identifier"],[/]]/,"identifier"],[/]/,{token:"identifier.quote",next:"@pop"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[[/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i,"keyword"],[/BEGIN\s+TRY\b/i,{token:"keyword.try"}],[/END\s+TRY\b/i,{token:"keyword.try"}],[/BEGIN\s+CATCH\b/i,{token:"keyword.catch"}],[/END\s+CATCH\b/i,{token:"keyword.catch"}],[/(BEGIN|CASE)\b/i,{token:"keyword.block"}],[/END\b/i,{token:"keyword.block"}],[/WHEN\b/i,{token:"keyword.choice"}],[/THEN\b/i,{token:"keyword.choice"}]]}}}}]); \ No newline at end of file diff --git a/assets/js/7778.70985237.js.LICENSE.txt b/assets/js/7778.70985237.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/7778.70985237.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/7778.ba66a016.js b/assets/js/7778.ba66a016.js new file mode 100644 index 00000000000..c90c7558bb3 --- /dev/null +++ b/assets/js/7778.ba66a016.js @@ -0,0 +1,837 @@ +"use strict"; +exports.id = 7778; +exports.ids = [7778]; +exports.modules = { + +/***/ 27778: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/sql/sql.ts +var conf = { + comments: { + lineComment: "--", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".sql", + ignoreCase: true, + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + keywords: [ + "ABORT", + "ABSOLUTE", + "ACTION", + "ADA", + "ADD", + "AFTER", + "ALL", + "ALLOCATE", + "ALTER", + "ALWAYS", + "ANALYZE", + "AND", + "ANY", + "ARE", + "AS", + "ASC", + "ASSERTION", + "AT", + "ATTACH", + "AUTHORIZATION", + "AUTOINCREMENT", + "AVG", + "BACKUP", + "BEFORE", + "BEGIN", + "BETWEEN", + "BIT", + "BIT_LENGTH", + "BOTH", + "BREAK", + "BROWSE", + "BULK", + "BY", + "CASCADE", + "CASCADED", + "CASE", + "CAST", + "CATALOG", + "CHAR", + "CHARACTER", + "CHARACTER_LENGTH", + "CHAR_LENGTH", + "CHECK", + "CHECKPOINT", + "CLOSE", + "CLUSTERED", + "COALESCE", + "COLLATE", + "COLLATION", + "COLUMN", + "COMMIT", + "COMPUTE", + "CONFLICT", + "CONNECT", + "CONNECTION", + "CONSTRAINT", + "CONSTRAINTS", + "CONTAINS", + "CONTAINSTABLE", + "CONTINUE", + "CONVERT", + "CORRESPONDING", + "COUNT", + "CREATE", + "CROSS", + "CURRENT", + "CURRENT_DATE", + "CURRENT_TIME", + "CURRENT_TIMESTAMP", + "CURRENT_USER", + "CURSOR", + "DATABASE", + "DATE", + "DAY", + "DBCC", + "DEALLOCATE", + "DEC", + "DECIMAL", + "DECLARE", + "DEFAULT", + "DEFERRABLE", + "DEFERRED", + "DELETE", + "DENY", + "DESC", + "DESCRIBE", + "DESCRIPTOR", + "DETACH", + "DIAGNOSTICS", + "DISCONNECT", + "DISK", + "DISTINCT", + "DISTRIBUTED", + "DO", + "DOMAIN", + "DOUBLE", + "DROP", + "DUMP", + "EACH", + "ELSE", + "END", + "END-EXEC", + "ERRLVL", + "ESCAPE", + "EXCEPT", + "EXCEPTION", + "EXCLUDE", + "EXCLUSIVE", + "EXEC", + "EXECUTE", + "EXISTS", + "EXIT", + "EXPLAIN", + "EXTERNAL", + "EXTRACT", + "FAIL", + "FALSE", + "FETCH", + "FILE", + "FILLFACTOR", + "FILTER", + "FIRST", + "FLOAT", + "FOLLOWING", + "FOR", + "FOREIGN", + "FORTRAN", + "FOUND", + "FREETEXT", + "FREETEXTTABLE", + "FROM", + "FULL", + "FUNCTION", + "GENERATED", + "GET", + "GLOB", + "GLOBAL", + "GO", + "GOTO", + "GRANT", + "GROUP", + "GROUPS", + "HAVING", + "HOLDLOCK", + "HOUR", + "IDENTITY", + "IDENTITYCOL", + "IDENTITY_INSERT", + "IF", + "IGNORE", + "IMMEDIATE", + "IN", + "INCLUDE", + "INDEX", + "INDEXED", + "INDICATOR", + "INITIALLY", + "INNER", + "INPUT", + "INSENSITIVE", + "INSERT", + "INSTEAD", + "INT", + "INTEGER", + "INTERSECT", + "INTERVAL", + "INTO", + "IS", + "ISNULL", + "ISOLATION", + "JOIN", + "KEY", + "KILL", + "LANGUAGE", + "LAST", + "LEADING", + "LEFT", + "LEVEL", + "LIKE", + "LIMIT", + "LINENO", + "LOAD", + "LOCAL", + "LOWER", + "MATCH", + "MATERIALIZED", + "MAX", + "MERGE", + "MIN", + "MINUTE", + "MODULE", + "MONTH", + "NAMES", + "NATIONAL", + "NATURAL", + "NCHAR", + "NEXT", + "NO", + "NOCHECK", + "NONCLUSTERED", + "NONE", + "NOT", + "NOTHING", + "NOTNULL", + "NULL", + "NULLIF", + "NULLS", + "NUMERIC", + "OCTET_LENGTH", + "OF", + "OFF", + "OFFSET", + "OFFSETS", + "ON", + "ONLY", + "OPEN", + "OPENDATASOURCE", + "OPENQUERY", + "OPENROWSET", + "OPENXML", + "OPTION", + "OR", + "ORDER", + "OTHERS", + "OUTER", + "OUTPUT", + "OVER", + "OVERLAPS", + "PAD", + "PARTIAL", + "PARTITION", + "PASCAL", + "PERCENT", + "PIVOT", + "PLAN", + "POSITION", + "PRAGMA", + "PRECEDING", + "PRECISION", + "PREPARE", + "PRESERVE", + "PRIMARY", + "PRINT", + "PRIOR", + "PRIVILEGES", + "PROC", + "PROCEDURE", + "PUBLIC", + "QUERY", + "RAISE", + "RAISERROR", + "RANGE", + "READ", + "READTEXT", + "REAL", + "RECONFIGURE", + "RECURSIVE", + "REFERENCES", + "REGEXP", + "REINDEX", + "RELATIVE", + "RELEASE", + "RENAME", + "REPLACE", + "REPLICATION", + "RESTORE", + "RESTRICT", + "RETURN", + "RETURNING", + "REVERT", + "REVOKE", + "RIGHT", + "ROLLBACK", + "ROW", + "ROWCOUNT", + "ROWGUIDCOL", + "ROWS", + "RULE", + "SAVE", + "SAVEPOINT", + "SCHEMA", + "SCROLL", + "SECOND", + "SECTION", + "SECURITYAUDIT", + "SELECT", + "SEMANTICKEYPHRASETABLE", + "SEMANTICSIMILARITYDETAILSTABLE", + "SEMANTICSIMILARITYTABLE", + "SESSION", + "SESSION_USER", + "SET", + "SETUSER", + "SHUTDOWN", + "SIZE", + "SMALLINT", + "SOME", + "SPACE", + "SQL", + "SQLCA", + "SQLCODE", + "SQLERROR", + "SQLSTATE", + "SQLWARNING", + "STATISTICS", + "SUBSTRING", + "SUM", + "SYSTEM_USER", + "TABLE", + "TABLESAMPLE", + "TEMP", + "TEMPORARY", + "TEXTSIZE", + "THEN", + "TIES", + "TIME", + "TIMESTAMP", + "TIMEZONE_HOUR", + "TIMEZONE_MINUTE", + "TO", + "TOP", + "TRAILING", + "TRAN", + "TRANSACTION", + "TRANSLATE", + "TRANSLATION", + "TRIGGER", + "TRIM", + "TRUE", + "TRUNCATE", + "TRY_CONVERT", + "TSEQUAL", + "UNBOUNDED", + "UNION", + "UNIQUE", + "UNKNOWN", + "UNPIVOT", + "UPDATE", + "UPDATETEXT", + "UPPER", + "USAGE", + "USE", + "USER", + "USING", + "VACUUM", + "VALUE", + "VALUES", + "VARCHAR", + "VARYING", + "VIEW", + "VIRTUAL", + "WAITFOR", + "WHEN", + "WHENEVER", + "WHERE", + "WHILE", + "WINDOW", + "WITH", + "WITHIN GROUP", + "WITHOUT", + "WORK", + "WRITE", + "WRITETEXT", + "YEAR", + "ZONE" + ], + operators: [ + "ALL", + "AND", + "ANY", + "BETWEEN", + "EXISTS", + "IN", + "LIKE", + "NOT", + "OR", + "SOME", + "EXCEPT", + "INTERSECT", + "UNION", + "APPLY", + "CROSS", + "FULL", + "INNER", + "JOIN", + "LEFT", + "OUTER", + "RIGHT", + "CONTAINS", + "FREETEXT", + "IS", + "NULL", + "PIVOT", + "UNPIVOT", + "MATCHED" + ], + builtinFunctions: [ + "AVG", + "CHECKSUM_AGG", + "COUNT", + "COUNT_BIG", + "GROUPING", + "GROUPING_ID", + "MAX", + "MIN", + "SUM", + "STDEV", + "STDEVP", + "VAR", + "VARP", + "CUME_DIST", + "FIRST_VALUE", + "LAG", + "LAST_VALUE", + "LEAD", + "PERCENTILE_CONT", + "PERCENTILE_DISC", + "PERCENT_RANK", + "COLLATE", + "COLLATIONPROPERTY", + "TERTIARY_WEIGHTS", + "FEDERATION_FILTERING_VALUE", + "CAST", + "CONVERT", + "PARSE", + "TRY_CAST", + "TRY_CONVERT", + "TRY_PARSE", + "ASYMKEY_ID", + "ASYMKEYPROPERTY", + "CERTPROPERTY", + "CERT_ID", + "CRYPT_GEN_RANDOM", + "DECRYPTBYASYMKEY", + "DECRYPTBYCERT", + "DECRYPTBYKEY", + "DECRYPTBYKEYAUTOASYMKEY", + "DECRYPTBYKEYAUTOCERT", + "DECRYPTBYPASSPHRASE", + "ENCRYPTBYASYMKEY", + "ENCRYPTBYCERT", + "ENCRYPTBYKEY", + "ENCRYPTBYPASSPHRASE", + "HASHBYTES", + "IS_OBJECTSIGNED", + "KEY_GUID", + "KEY_ID", + "KEY_NAME", + "SIGNBYASYMKEY", + "SIGNBYCERT", + "SYMKEYPROPERTY", + "VERIFYSIGNEDBYCERT", + "VERIFYSIGNEDBYASYMKEY", + "CURSOR_STATUS", + "DATALENGTH", + "IDENT_CURRENT", + "IDENT_INCR", + "IDENT_SEED", + "IDENTITY", + "SQL_VARIANT_PROPERTY", + "CURRENT_TIMESTAMP", + "DATEADD", + "DATEDIFF", + "DATEFROMPARTS", + "DATENAME", + "DATEPART", + "DATETIME2FROMPARTS", + "DATETIMEFROMPARTS", + "DATETIMEOFFSETFROMPARTS", + "DAY", + "EOMONTH", + "GETDATE", + "GETUTCDATE", + "ISDATE", + "MONTH", + "SMALLDATETIMEFROMPARTS", + "SWITCHOFFSET", + "SYSDATETIME", + "SYSDATETIMEOFFSET", + "SYSUTCDATETIME", + "TIMEFROMPARTS", + "TODATETIMEOFFSET", + "YEAR", + "CHOOSE", + "COALESCE", + "IIF", + "NULLIF", + "ABS", + "ACOS", + "ASIN", + "ATAN", + "ATN2", + "CEILING", + "COS", + "COT", + "DEGREES", + "EXP", + "FLOOR", + "LOG", + "LOG10", + "PI", + "POWER", + "RADIANS", + "RAND", + "ROUND", + "SIGN", + "SIN", + "SQRT", + "SQUARE", + "TAN", + "APP_NAME", + "APPLOCK_MODE", + "APPLOCK_TEST", + "ASSEMBLYPROPERTY", + "COL_LENGTH", + "COL_NAME", + "COLUMNPROPERTY", + "DATABASE_PRINCIPAL_ID", + "DATABASEPROPERTYEX", + "DB_ID", + "DB_NAME", + "FILE_ID", + "FILE_IDEX", + "FILE_NAME", + "FILEGROUP_ID", + "FILEGROUP_NAME", + "FILEGROUPPROPERTY", + "FILEPROPERTY", + "FULLTEXTCATALOGPROPERTY", + "FULLTEXTSERVICEPROPERTY", + "INDEX_COL", + "INDEXKEY_PROPERTY", + "INDEXPROPERTY", + "OBJECT_DEFINITION", + "OBJECT_ID", + "OBJECT_NAME", + "OBJECT_SCHEMA_NAME", + "OBJECTPROPERTY", + "OBJECTPROPERTYEX", + "ORIGINAL_DB_NAME", + "PARSENAME", + "SCHEMA_ID", + "SCHEMA_NAME", + "SCOPE_IDENTITY", + "SERVERPROPERTY", + "STATS_DATE", + "TYPE_ID", + "TYPE_NAME", + "TYPEPROPERTY", + "DENSE_RANK", + "NTILE", + "RANK", + "ROW_NUMBER", + "PUBLISHINGSERVERNAME", + "OPENDATASOURCE", + "OPENQUERY", + "OPENROWSET", + "OPENXML", + "CERTENCODED", + "CERTPRIVATEKEY", + "CURRENT_USER", + "HAS_DBACCESS", + "HAS_PERMS_BY_NAME", + "IS_MEMBER", + "IS_ROLEMEMBER", + "IS_SRVROLEMEMBER", + "LOGINPROPERTY", + "ORIGINAL_LOGIN", + "PERMISSIONS", + "PWDENCRYPT", + "PWDCOMPARE", + "SESSION_USER", + "SESSIONPROPERTY", + "SUSER_ID", + "SUSER_NAME", + "SUSER_SID", + "SUSER_SNAME", + "SYSTEM_USER", + "USER", + "USER_ID", + "USER_NAME", + "ASCII", + "CHAR", + "CHARINDEX", + "CONCAT", + "DIFFERENCE", + "FORMAT", + "LEFT", + "LEN", + "LOWER", + "LTRIM", + "NCHAR", + "PATINDEX", + "QUOTENAME", + "REPLACE", + "REPLICATE", + "REVERSE", + "RIGHT", + "RTRIM", + "SOUNDEX", + "SPACE", + "STR", + "STUFF", + "SUBSTRING", + "UNICODE", + "UPPER", + "BINARY_CHECKSUM", + "CHECKSUM", + "CONNECTIONPROPERTY", + "CONTEXT_INFO", + "CURRENT_REQUEST_ID", + "ERROR_LINE", + "ERROR_NUMBER", + "ERROR_MESSAGE", + "ERROR_PROCEDURE", + "ERROR_SEVERITY", + "ERROR_STATE", + "FORMATMESSAGE", + "GETANSINULL", + "GET_FILESTREAM_TRANSACTION_CONTEXT", + "HOST_ID", + "HOST_NAME", + "ISNULL", + "ISNUMERIC", + "MIN_ACTIVE_ROWVERSION", + "NEWID", + "NEWSEQUENTIALID", + "ROWCOUNT_BIG", + "XACT_STATE", + "TEXTPTR", + "TEXTVALID", + "COLUMNS_UPDATED", + "EVENTDATA", + "TRIGGER_NESTLEVEL", + "UPDATE", + "CHANGETABLE", + "CHANGE_TRACKING_CONTEXT", + "CHANGE_TRACKING_CURRENT_VERSION", + "CHANGE_TRACKING_IS_COLUMN_IN_MASK", + "CHANGE_TRACKING_MIN_VALID_VERSION", + "CONTAINSTABLE", + "FREETEXTTABLE", + "SEMANTICKEYPHRASETABLE", + "SEMANTICSIMILARITYDETAILSTABLE", + "SEMANTICSIMILARITYTABLE", + "FILETABLEROOTPATH", + "GETFILENAMESPACEPATH", + "GETPATHLOCATOR", + "PATHNAME", + "GET_TRANSMISSION_STATUS" + ], + builtinVariables: [ + "@@DATEFIRST", + "@@DBTS", + "@@LANGID", + "@@LANGUAGE", + "@@LOCK_TIMEOUT", + "@@MAX_CONNECTIONS", + "@@MAX_PRECISION", + "@@NESTLEVEL", + "@@OPTIONS", + "@@REMSERVER", + "@@SERVERNAME", + "@@SERVICENAME", + "@@SPID", + "@@TEXTSIZE", + "@@VERSION", + "@@CURSOR_ROWS", + "@@FETCH_STATUS", + "@@DATEFIRST", + "@@PROCID", + "@@ERROR", + "@@IDENTITY", + "@@ROWCOUNT", + "@@TRANCOUNT", + "@@CONNECTIONS", + "@@CPU_BUSY", + "@@IDLE", + "@@IO_BUSY", + "@@PACKET_ERRORS", + "@@PACK_RECEIVED", + "@@PACK_SENT", + "@@TIMETICKS", + "@@TOTAL_ERRORS", + "@@TOTAL_READ", + "@@TOTAL_WRITE" + ], + pseudoColumns: ["$ACTION", "$IDENTITY", "$ROWGUID", "$PARTITION"], + tokenizer: { + root: [ + { include: "@comments" }, + { include: "@whitespace" }, + { include: "@pseudoColumns" }, + { include: "@numbers" }, + { include: "@strings" }, + { include: "@complexIdentifiers" }, + { include: "@scopes" }, + [/[;,.]/, "delimiter"], + [/[()]/, "@brackets"], + [ + /[\w@#$]+/, + { + cases: { + "@operators": "operator", + "@builtinVariables": "predefined", + "@builtinFunctions": "predefined", + "@keywords": "keyword", + "@default": "identifier" + } + } + ], + [/[<>=!%&+\-*/|~^]/, "operator"] + ], + whitespace: [[/\s+/, "white"]], + comments: [ + [/--+.*/, "comment"], + [/\/\*/, { token: "comment.quote", next: "@comment" }] + ], + comment: [ + [/[^*/]+/, "comment"], + [/\*\//, { token: "comment.quote", next: "@pop" }], + [/./, "comment"] + ], + pseudoColumns: [ + [ + /[$][A-Za-z_][\w@#$]*/, + { + cases: { + "@pseudoColumns": "predefined", + "@default": "identifier" + } + } + ] + ], + numbers: [ + [/0[xX][0-9a-fA-F]*/, "number"], + [/[$][+-]*\d*(\.\d*)?/, "number"], + [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, "number"] + ], + strings: [ + [/N'/, { token: "string", next: "@string" }], + [/'/, { token: "string", next: "@string" }] + ], + string: [ + [/[^']+/, "string"], + [/''/, "string"], + [/'/, { token: "string", next: "@pop" }] + ], + complexIdentifiers: [ + [/\[/, { token: "identifier.quote", next: "@bracketedIdentifier" }], + [/"/, { token: "identifier.quote", next: "@quotedIdentifier" }] + ], + bracketedIdentifier: [ + [/[^\]]+/, "identifier"], + [/]]/, "identifier"], + [/]/, { token: "identifier.quote", next: "@pop" }] + ], + quotedIdentifier: [ + [/[^"]+/, "identifier"], + [/""/, "identifier"], + [/"/, { token: "identifier.quote", next: "@pop" }] + ], + scopes: [ + [/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i, "keyword"], + [/BEGIN\s+TRY\b/i, { token: "keyword.try" }], + [/END\s+TRY\b/i, { token: "keyword.try" }], + [/BEGIN\s+CATCH\b/i, { token: "keyword.catch" }], + [/END\s+CATCH\b/i, { token: "keyword.catch" }], + [/(BEGIN|CASE)\b/i, { token: "keyword.block" }], + [/END\b/i, { token: "keyword.block" }], + [/WHEN\b/i, { token: "keyword.choice" }], + [/THEN\b/i, { token: "keyword.choice" }] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/7835.3b3c09d8.js b/assets/js/7835.3b3c09d8.js new file mode 100644 index 00000000000..4d97d0568ad --- /dev/null +++ b/assets/js/7835.3b3c09d8.js @@ -0,0 +1,490 @@ +"use strict"; +exports.id = 7835; +exports.ids = [7835]; +exports.modules = { + +/***/ 47835: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/php/php.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}", notIn: ["string"] }, + { open: "[", close: "]", notIn: ["string"] }, + { open: "(", close: ")", notIn: ["string"] }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string", "comment"] } + ], + folding: { + markers: { + start: new RegExp("^\\s*(#|//)region\\b"), + end: new RegExp("^\\s*(#|//)endregion\\b") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: "", + tokenizer: { + root: [ + [/<\?((php)|=)?/, { token: "@rematch", switchTo: "@phpInSimpleState.root" }], + [/<!DOCTYPE/, "metatag.html", "@doctype"], + [/<!--/, "comment.html", "@comment"], + [/(<)(\w+)(\/>)/, ["delimiter.html", "tag.html", "delimiter.html"]], + [/(<)(script)/, ["delimiter.html", { token: "tag.html", next: "@script" }]], + [/(<)(style)/, ["delimiter.html", { token: "tag.html", next: "@style" }]], + [/(<)([:\w]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/(<\/)(\w+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/</, "delimiter.html"], + [/[^<]+/] + ], + doctype: [ + [/<\?((php)|=)?/, { token: "@rematch", switchTo: "@phpInSimpleState.comment" }], + [/[^>]+/, "metatag.content.html"], + [/>/, "metatag.html", "@pop"] + ], + comment: [ + [/<\?((php)|=)?/, { token: "@rematch", switchTo: "@phpInSimpleState.comment" }], + [/-->/, "comment.html", "@pop"], + [/[^-]+/, "comment.content.html"], + [/./, "comment.content.html"] + ], + otherTag: [ + [/<\?((php)|=)?/, { token: "@rematch", switchTo: "@phpInSimpleState.otherTag" }], + [/\/?>/, "delimiter.html", "@pop"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/] + ], + script: [ + [/<\?((php)|=)?/, { token: "@rematch", switchTo: "@phpInSimpleState.script" }], + [/type/, "attribute.name", "@scriptAfterType"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [ + /(<\/)(script\s*)(>)/, + ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }] + ] + ], + scriptAfterType: [ + [ + /<\?((php)|=)?/, + { + token: "@rematch", + switchTo: "@phpInSimpleState.scriptAfterType" + } + ], + [/=/, "delimiter", "@scriptAfterTypeEquals"], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptAfterTypeEquals: [ + [ + /<\?((php)|=)?/, + { + token: "@rematch", + switchTo: "@phpInSimpleState.scriptAfterTypeEquals" + } + ], + [ + /"([^"]*)"/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptWithCustomType: [ + [ + /<\?((php)|=)?/, + { + token: "@rematch", + switchTo: "@phpInSimpleState.scriptWithCustomType.$S2" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptEmbedded: [ + [ + /<\?((php)|=)?/, + { + token: "@rematch", + switchTo: "@phpInEmbeddedState.scriptEmbedded.$S2", + nextEmbedded: "@pop" + } + ], + [/<\/script/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }] + ], + style: [ + [/<\?((php)|=)?/, { token: "@rematch", switchTo: "@phpInSimpleState.style" }], + [/type/, "attribute.name", "@styleAfterType"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [ + /(<\/)(style\s*)(>)/, + ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }] + ] + ], + styleAfterType: [ + [ + /<\?((php)|=)?/, + { + token: "@rematch", + switchTo: "@phpInSimpleState.styleAfterType" + } + ], + [/=/, "delimiter", "@styleAfterTypeEquals"], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleAfterTypeEquals: [ + [ + /<\?((php)|=)?/, + { + token: "@rematch", + switchTo: "@phpInSimpleState.styleAfterTypeEquals" + } + ], + [ + /"([^"]*)"/, + { + token: "attribute.value", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleWithCustomType: [ + [ + /<\?((php)|=)?/, + { + token: "@rematch", + switchTo: "@phpInSimpleState.styleWithCustomType.$S2" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleEmbedded: [ + [ + /<\?((php)|=)?/, + { + token: "@rematch", + switchTo: "@phpInEmbeddedState.styleEmbedded.$S2", + nextEmbedded: "@pop" + } + ], + [/<\/style/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }] + ], + phpInSimpleState: [ + [/<\?((php)|=)?/, "metatag.php"], + [/\?>/, { token: "metatag.php", switchTo: "@$S2.$S3" }], + { include: "phpRoot" } + ], + phpInEmbeddedState: [ + [/<\?((php)|=)?/, "metatag.php"], + [ + /\?>/, + { + token: "metatag.php", + switchTo: "@$S2.$S3", + nextEmbedded: "$S3" + } + ], + { include: "phpRoot" } + ], + phpRoot: [ + [ + /[a-zA-Z_]\w*/, + { + cases: { + "@phpKeywords": { token: "keyword.php" }, + "@phpCompileTimeConstants": { token: "constant.php" }, + "@default": "identifier.php" + } + } + ], + [ + /[$a-zA-Z_]\w*/, + { + cases: { + "@phpPreDefinedVariables": { + token: "variable.predefined.php" + }, + "@default": "variable.php" + } + } + ], + [/[{}]/, "delimiter.bracket.php"], + [/[\[\]]/, "delimiter.array.php"], + [/[()]/, "delimiter.parenthesis.php"], + [/[ \t\r\n]+/], + [/(#|\/\/)$/, "comment.php"], + [/(#|\/\/)/, "comment.php", "@phpLineComment"], + [/\/\*/, "comment.php", "@phpComment"], + [/"/, "string.php", "@phpDoubleQuoteString"], + [/'/, "string.php", "@phpSingleQuoteString"], + [/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,\@]/, "delimiter.php"], + [/\d*\d+[eE]([\-+]?\d+)?/, "number.float.php"], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float.php"], + [/0[xX][0-9a-fA-F']*[0-9a-fA-F]/, "number.hex.php"], + [/0[0-7']*[0-7]/, "number.octal.php"], + [/0[bB][0-1']*[0-1]/, "number.binary.php"], + [/\d[\d']*/, "number.php"], + [/\d/, "number.php"] + ], + phpComment: [ + [/\*\//, "comment.php", "@pop"], + [/[^*]+/, "comment.php"], + [/./, "comment.php"] + ], + phpLineComment: [ + [/\?>/, { token: "@rematch", next: "@pop" }], + [/.$/, "comment.php", "@pop"], + [/[^?]+$/, "comment.php", "@pop"], + [/[^?]+/, "comment.php"], + [/./, "comment.php"] + ], + phpDoubleQuoteString: [ + [/[^\\"]+/, "string.php"], + [/@escapes/, "string.escape.php"], + [/\\./, "string.escape.invalid.php"], + [/"/, "string.php", "@pop"] + ], + phpSingleQuoteString: [ + [/[^\\']+/, "string.php"], + [/@escapes/, "string.escape.php"], + [/\\./, "string.escape.invalid.php"], + [/'/, "string.php", "@pop"] + ] + }, + phpKeywords: [ + "abstract", + "and", + "array", + "as", + "break", + "callable", + "case", + "catch", + "cfunction", + "class", + "clone", + "const", + "continue", + "declare", + "default", + "do", + "else", + "elseif", + "enddeclare", + "endfor", + "endforeach", + "endif", + "endswitch", + "endwhile", + "extends", + "false", + "final", + "for", + "foreach", + "function", + "global", + "goto", + "if", + "implements", + "interface", + "instanceof", + "insteadof", + "namespace", + "new", + "null", + "object", + "old_function", + "or", + "private", + "protected", + "public", + "resource", + "static", + "switch", + "throw", + "trait", + "try", + "true", + "use", + "var", + "while", + "xor", + "die", + "echo", + "empty", + "exit", + "eval", + "include", + "include_once", + "isset", + "list", + "require", + "require_once", + "return", + "print", + "unset", + "yield", + "__construct" + ], + phpCompileTimeConstants: [ + "__CLASS__", + "__DIR__", + "__FILE__", + "__LINE__", + "__NAMESPACE__", + "__METHOD__", + "__FUNCTION__", + "__TRAIT__" + ], + phpPreDefinedVariables: [ + "$GLOBALS", + "$_SERVER", + "$_GET", + "$_POST", + "$_FILES", + "$_REQUEST", + "$_SESSION", + "$_ENV", + "$_COOKIE", + "$php_errormsg", + "$HTTP_RAW_POST_DATA", + "$http_response_header", + "$argc", + "$argv" + ], + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/ +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/7835.fed695f5.js b/assets/js/7835.fed695f5.js new file mode 100644 index 00000000000..498c1a79cef --- /dev/null +++ b/assets/js/7835.fed695f5.js @@ -0,0 +1,2 @@ +/*! For license information please see 7835.fed695f5.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7835],{47835:(e,t,p)=>{p.r(t),p.d(t,{conf:()=>n,language:()=>i});var n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:"(",close:")",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],folding:{markers:{start:new RegExp("^\\s*(#|//)region\\b"),end:new RegExp("^\\s*(#|//)endregion\\b")}}},i={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.root"}],[/<!DOCTYPE/,"metatag.html","@doctype"],[/<!--/,"comment.html","@comment"],[/(<)(\w+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/</,"delimiter.html"],[/[^<]+/]],doctype:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.comment"}],[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],phpInSimpleState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3"}],{include:"phpRoot"}],phpInEmbeddedState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"phpRoot"}],phpRoot:[[/[a-zA-Z_]\w*/,{cases:{"@phpKeywords":{token:"keyword.php"},"@phpCompileTimeConstants":{token:"constant.php"},"@default":"identifier.php"}}],[/[$a-zA-Z_]\w*/,{cases:{"@phpPreDefinedVariables":{token:"variable.predefined.php"},"@default":"variable.php"}}],[/[{}]/,"delimiter.bracket.php"],[/[\[\]]/,"delimiter.array.php"],[/[()]/,"delimiter.parenthesis.php"],[/[ \t\r\n]+/],[/(#|\/\/)$/,"comment.php"],[/(#|\/\/)/,"comment.php","@phpLineComment"],[/\/\*/,"comment.php","@phpComment"],[/"/,"string.php","@phpDoubleQuoteString"],[/'/,"string.php","@phpSingleQuoteString"],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,\@]/,"delimiter.php"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.php"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.php"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.php"],[/0[0-7']*[0-7]/,"number.octal.php"],[/0[bB][0-1']*[0-1]/,"number.binary.php"],[/\d[\d']*/,"number.php"],[/\d/,"number.php"]],phpComment:[[/\*\//,"comment.php","@pop"],[/[^*]+/,"comment.php"],[/./,"comment.php"]],phpLineComment:[[/\?>/,{token:"@rematch",next:"@pop"}],[/.$/,"comment.php","@pop"],[/[^?]+$/,"comment.php","@pop"],[/[^?]+/,"comment.php"],[/./,"comment.php"]],phpDoubleQuoteString:[[/[^\\"]+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/"/,"string.php","@pop"]],phpSingleQuoteString:[[/[^\\']+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/'/,"string.php","@pop"]]},phpKeywords:["abstract","and","array","as","break","callable","case","catch","cfunction","class","clone","const","continue","declare","default","do","else","elseif","enddeclare","endfor","endforeach","endif","endswitch","endwhile","extends","false","final","for","foreach","function","global","goto","if","implements","interface","instanceof","insteadof","namespace","new","null","object","old_function","or","private","protected","public","resource","static","switch","throw","trait","try","true","use","var","while","xor","die","echo","empty","exit","eval","include","include_once","isset","list","require","require_once","return","print","unset","yield","__construct"],phpCompileTimeConstants:["__CLASS__","__DIR__","__FILE__","__LINE__","__NAMESPACE__","__METHOD__","__FUNCTION__","__TRAIT__"],phpPreDefinedVariables:["$GLOBALS","$_SERVER","$_GET","$_POST","$_FILES","$_REQUEST","$_SESSION","$_ENV","$_COOKIE","$php_errormsg","$HTTP_RAW_POST_DATA","$http_response_header","$argc","$argv"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/}}}]); \ No newline at end of file diff --git a/assets/js/7835.fed695f5.js.LICENSE.txt b/assets/js/7835.fed695f5.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/7835.fed695f5.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/7966.b4ef84f5.js b/assets/js/7966.b4ef84f5.js new file mode 100644 index 00000000000..61a187bf839 --- /dev/null +++ b/assets/js/7966.b4ef84f5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7966],{87966:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>n,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=o(87462),i=(o(67294),o(3905));const a={title:"Even Better Support for React in Flow","short-title":"Even Better React Support",author:"Caleb Meredith","medium-link":"https://medium.com/flow-type/even-better-support-for-react-in-flow-25b0a3485627"},n=void 0,l={permalink:"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow",source:"@site/blog/2017-08-16-Even-Better-Support-for-React-in-Flow.md",title:"Even Better Support for React in Flow",description:"The first version of Flow support for React was a magical implementation of",date:"2017-08-16T00:00:00.000Z",formattedDate:"August 16, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Caleb Meredith"}],frontMatter:{title:"Even Better Support for React in Flow","short-title":"Even Better React Support",author:"Caleb Meredith","medium-link":"https://medium.com/flow-type/even-better-support-for-react-in-flow-25b0a3485627"},prevItem:{title:"Private Object Properties Using Flow\u2019s Opaque Type Aliases",permalink:"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases"},nextItem:{title:"Linting in Flow",permalink:"/blog/2017/08/04/Linting-in-Flow"}},s={authorsImageUrls:[void 0]},p=[],c={toc:p};function m(e){let{components:t,...o}=e;return(0,i.mdx)("wrapper",(0,r.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"The first version of Flow support for React was a magical implementation of\n",(0,i.mdx)("inlineCode",{parentName:"p"},"React.createClass()"),". Since then, React has evolved significantly. It is time\nto rethink how Flow models React."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7997.402d61b8.js b/assets/js/7997.402d61b8.js new file mode 100644 index 00000000000..e066f390c9e --- /dev/null +++ b/assets/js/7997.402d61b8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7997],{97997:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var n=o(87462),r=(o(67294),o(3905));o(45475);const i={title:"Flow CLI",slug:"/cli",description:"How to use Flow from the command line. Including how to manage the Flow background process."},s=void 0,a={unversionedId:"cli/index",id:"cli/index",title:"Flow CLI",description:"How to use Flow from the command line. Including how to manage the Flow background process.",source:"@site/docs/cli/index.md",sourceDirName:"cli",slug:"/cli",permalink:"/en/docs/cli",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/cli/index.md",tags:[],version:"current",frontMatter:{title:"Flow CLI",slug:"/cli",description:"How to use Flow from the command line. Including how to manage the Flow background process."},sidebar:"docsSidebar",previous:{title:"Flow Strict",permalink:"/en/docs/strict"},next:{title:"Flow Coverage",permalink:"/en/docs/cli/coverage"}},l={},c=[],d={toc:c};function u(e){let{components:t,...o}=e;return(0,r.mdx)("wrapper",(0,n.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"The flow command line tool is made to be easy-to-use for simple cases."),(0,r.mdx)("p",null,"Using the command ",(0,r.mdx)("inlineCode",{parentName:"p"},"flow")," will type-check your current directory if the\n",(0,r.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file is present. A flow server will automatically be started if\nneeded."),(0,r.mdx)("p",null,"The CLI tool also provides several other options and commands that allow you to\ncontrol the server and build tools that integrate with Flow. For example, this\nis how the ",(0,r.mdx)("a",{parentName:"p",href:"https://nuclide.io/"},"Nuclide")," editor integrates with Flow to\nprovide autocompletion, type errors, etc. in its UI."),(0,r.mdx)("p",null,"To find out more about the CLI just type:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-sh"},"flow --help\n")),(0,r.mdx)("p",null,"This will give you information about everything that flow can do. Running this\ncommand should print something like this:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},"Usage: flow [COMMAND] [PROJECT_ROOT]\n\nValid values for COMMAND:\n ast Print the AST\n autocomplete Queries autocompletion information\n batch-coverage Shows aggregate coverage information for a group of files or directories\n check Does a full Flow check and prints the results\n check-contents Run typechecker on contents from stdin\n config Read or write the .flowconfig file\n coverage Shows coverage information for a given file\n cycle Output .dot file for cycle containing the given file\n find-module Resolves a module reference to a file\n find-refs Gets the reference locations of a variable or property\n force-recheck Forces the server to recheck a given list of files\n get-def Gets the definition location of a variable or property\n graph Outputs dependency graphs of flow repositories\n init Initializes a directory to be used as a flow root directory\n ls Lists files visible to Flow\n lsp Acts as a server for the Language Server Protocol over stdin/stdout [experimental]\n print-signature Prints the type signature of a file as extracted in types-first mode\n server Runs a Flow server in the foreground\n start Starts a Flow server\n status (default) Shows current Flow errors by asking the Flow server\n stop Stops a Flow server\n type-at-pos Shows the type at a given file and position\n version Print version information\n\nDefault values if unspecified:\n COMMAND status\n PROJECT_ROOT current folder\n\nStatus command options:\n --color Display terminal output in color. never, always, auto (default: auto)\n --from Specify client (for use by editor plugins)\n --help This list of options\n --json Output results in JSON format\n --no-auto-start If the server is not running, do not start it; just exit\n --old-output-format Use old output format (absolute file names, line and column numbers)\n --one-line Escapes newlines so that each error prints on one line\n --quiet Suppresses the server-status information that would have been printed to stderr\n --retries Set the number of retries. (default: 3)\n --show-all-errors Print all errors (the default is to truncate after 50 errors)\n --strip-root Print paths without the root\n --temp-dir Directory in which to store temp files (default: /tmp/flow/)\n --timeout Maximum time to wait, in seconds\n --version Print version number and exit\n")),(0,r.mdx)("p",null,"Example with custom project root:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-sh"},"mydir\n\u251c\u2500\u2500 frontend\n\u2502 \u251c\u2500\u2500 .flowconfig\n\u2502 \u2514\u2500\u2500 app.js\n\u2514\u2500\u2500 backend\n")),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-sh"},"flow check frontend\n")),(0,r.mdx)("p",null,"You can then, further dig into particular COMMANDs by adding the ",(0,r.mdx)("inlineCode",{parentName:"p"},"--help")," flag."),(0,r.mdx)("p",null,"So, for example, if you want to know more about how the autocomplete works, you\ncan use this command:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-sh"},"flow autocomplete --help\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8002.799b71bc.js b/assets/js/8002.799b71bc.js new file mode 100644 index 00000000000..0b9f9f9350f --- /dev/null +++ b/assets/js/8002.799b71bc.js @@ -0,0 +1,2 @@ +/*! For license information please see 8002.799b71bc.js.LICENSE.txt */ +(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8002],{19604:(e,t,i)=>{"use strict";function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function s(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?o(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):o(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function r(e,t){if(null==e)return{};var i,n,o=function(e,t){if(null==e)return{};var i,n,o={},s=Object.keys(e);for(n=0;n<s.length;n++)i=s[n],t.indexOf(i)>=0||(o[i]=e[i]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)i=s[n],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i])}return o}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}function l(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function c(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function d(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?c(Object(i),!0).forEach((function(t){l(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):c(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function h(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return function(e){return t.reduceRight((function(e,t){return t(e)}),e)}}function u(e){return function t(){for(var i=this,n=arguments.length,o=new Array(n),s=0;s<n;s++)o[s]=arguments[s];return o.length>=e.length?e.apply(this,o):function(){for(var e=arguments.length,n=new Array(e),s=0;s<e;s++)n[s]=arguments[s];return t.apply(i,[].concat(o,n))}}}function g(e){return{}.toString.call(e).includes("Object")}function p(e){return"function"==typeof e}i.d(t,{ZP:()=>he,_m:()=>U});var m=u((function(e,t){throw new Error(e[t]||e.default)}))({initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"}),f={changes:function(e,t){return g(t)||m("changeType"),Object.keys(t).some((function(t){return i=e,n=t,!Object.prototype.hasOwnProperty.call(i,n);var i,n}))&&m("changeField"),t},selector:function(e){p(e)||m("selectorType")},handler:function(e){p(e)||g(e)||m("handlerType"),g(e)&&Object.values(e).some((function(e){return!p(e)}))&&m("handlersType")},initial:function(e){var t;e||m("initialIsRequired"),g(e)||m("initialType"),t=e,Object.keys(t).length||m("initialContent")}};function _(e,t){return p(t)?t(e.current):t}function v(e,t){return e.current=d(d({},e.current),t),t}function b(e,t,i){return p(t)?t(e.current):Object.keys(i).forEach((function(i){var n;return null===(n=t[i])||void 0===n?void 0:n.call(t,e.current[i])})),i}var C={create:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};f.initial(e),f.handler(t);var i={current:e},n=u(b)(i,t),o=u(v)(i),s=u(f.changes)(e),r=u(_)(i);function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(e){return e};return f.selector(e),e(i.current)}function l(e){h(n,o,s,r)(e)}return[a,l]}};const w=C;const y={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.33.0/min/vs"}};const S=function(e){return{}.toString.call(e).includes("Object")};var L={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:"Deprecation warning!\n You are using deprecated way of configuration.\n\n Instead of using\n monaco.config({ urls: { monacoBase: '...' } })\n use\n monaco.config({ paths: { vs: '...' } })\n\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\n "},k=function(e){return function t(){for(var i=this,n=arguments.length,o=new Array(n),s=0;s<n;s++)o[s]=arguments[s];return o.length>=e.length?e.apply(this,o):function(){for(var e=arguments.length,n=new Array(e),s=0;s<e;s++)n[s]=arguments[s];return t.apply(i,[].concat(o,n))}}}((function(e,t){throw new Error(e[t]||e.default)}))(L),x={config:function(e){return e||k("configIsRequired"),S(e)||k("configType"),e.urls?(console.warn(L.deprecation),{paths:{vs:e.urls.monacoBase}}):e}};const D=x;const N=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return function(e){return t.reduceRight((function(e,t){return t(e)}),e)}};const E=function e(t,i){return Object.keys(i).forEach((function(n){i[n]instanceof Object&&t[n]&&Object.assign(i[n],e(t[n],i[n]))})),s(s({},t),i)};var I={type:"cancelation",msg:"operation is manually canceled"};const T=function(e){var t=!1,i=new Promise((function(i,n){e.then((function(e){return t?n(I):i(e)})),e.catch(n)}));return i.cancel=function(){return t=!0},i};var M,A,R=w.create({config:y,isInitialized:!1,resolve:null,reject:null,monaco:null}),O=(A=2,function(e){if(Array.isArray(e))return e}(M=R)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var i=[],n=!0,o=!1,s=void 0;try{for(var r,a=e[Symbol.iterator]();!(n=(r=a.next()).done)&&(i.push(r.value),!t||i.length!==t);n=!0);}catch(l){o=!0,s=l}finally{try{n||null==a.return||a.return()}finally{if(o)throw s}}return i}}(M,A)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?a(e,t):void 0}}(M,A)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),P=O[0],F=O[1];function B(e){return document.body.appendChild(e)}function V(e){var t,i,n=P((function(e){return{config:e.config,reject:e.reject}})),o=(t="".concat(n.config.paths.vs,"/loader.js"),i=document.createElement("script"),t&&(i.src=t),i);return o.onload=function(){return e()},o.onerror=n.reject,o}function W(){var e=P((function(e){return{config:e.config,resolve:e.resolve,reject:e.reject}})),t=window.require;t.config(e.config),t(["vs/editor/editor.main"],(function(t){H(t),e.resolve(t)}),(function(t){e.reject(t)}))}function H(e){P().monaco||F({monaco:e})}var z=new Promise((function(e,t){return F({resolve:e,reject:t})})),j={config:function(e){var t=D.config(e),i=t.monaco,n=r(t,["monaco"]);F((function(e){return{config:E(e.config,n),monaco:i}}))},init:function(){var e=P((function(e){return{monaco:e.monaco,isInitialized:e.isInitialized,resolve:e.resolve}}));if(!e.isInitialized){if(F({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),T(z);if(window.monaco&&window.monaco.editor)return H(window.monaco),e.resolve(window.monaco),T(z);N(B,V)(W)}return T(z)},__getMonacoInstance:function(){return P((function(e){return e.monaco}))}};const U=j;var K=i(67294),$=i(45697),q=i.n($);function G(){return G=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},G.apply(this,arguments)}const Q={display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"};const Z=function({content:e}){return K.createElement("div",{style:Q},e)},Y={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}};function J({width:e,height:t,isEditorReady:i,loading:n,_ref:o,className:s,wrapperProps:r}){return K.createElement("section",G({style:{...Y.wrapper,width:e,height:t}},r),!i&&K.createElement(Z,{content:n}),K.createElement("div",{ref:o,style:{...Y.fullWidth,...!i&&Y.hide},className:s}))}J.propTypes={width:q().oneOfType([q().number,q().string]).isRequired,height:q().oneOfType([q().number,q().string]).isRequired,loading:q().oneOfType([q().element,q().string]).isRequired,isEditorReady:q().bool.isRequired,className:q().string,wrapperProps:q().object};const X=J;const ee=(0,K.memo)(X);const te=function(e){(0,K.useEffect)(e,[])};const ie=function(e,t,i=!0){const n=(0,K.useRef)(!0);(0,K.useEffect)(n.current||!i?()=>{n.current=!1}:e,t)};function ne(){}function oe(e,t,i,n){return function(e,t){return e.editor.getModel(se(e,t))}(e,n)||function(e,t,i,n){return e.editor.createModel(t,i,n&&se(e,n))}(e,t,i,n)}function se(e,t){return e.Uri.parse(t)}function re({original:e,modified:t,language:i,originalLanguage:n,modifiedLanguage:o,originalModelPath:s,modifiedModelPath:r,keepCurrentOriginalModel:a,keepCurrentModifiedModel:l,theme:c,loading:d,options:h,height:u,width:g,className:p,wrapperProps:m,beforeMount:f,onMount:_}){const[v,b]=(0,K.useState)(!1),[C,w]=(0,K.useState)(!0),y=(0,K.useRef)(null),S=(0,K.useRef)(null),L=(0,K.useRef)(null),k=(0,K.useRef)(_),x=(0,K.useRef)(f);te((()=>{const e=U.init();return e.then((e=>(S.current=e)&&w(!1))).catch((e=>"cancelation"!==(null==e?void 0:e.type)&&console.error("Monaco initialization: error:",e))),()=>y.current?function(){const e=y.current.getModel();var t,i;a||null===(t=e.original)||void 0===t||t.dispose();l||null===(i=e.modified)||void 0===i||i.dispose();y.current.dispose()}():e.cancel()})),ie((()=>{const e=y.current.getModifiedEditor();e.getOption(S.current.editor.EditorOption.readOnly)?e.setValue(t):t!==e.getValue()&&(e.executeEdits("",[{range:e.getModel().getFullModelRange(),text:t,forceMoveMarkers:!0}]),e.pushUndoStop())}),[t],v),ie((()=>{y.current.getModel().original.setValue(e)}),[e],v),ie((()=>{const{original:e,modified:t}=y.current.getModel();S.current.editor.setModelLanguage(e,n||i),S.current.editor.setModelLanguage(t,o||i)}),[i,n,o],v),ie((()=>{S.current.editor.setTheme(c)}),[c],v),ie((()=>{y.current.updateOptions(h)}),[h],v);const D=(0,K.useCallback)((()=>{x.current(S.current);const a=oe(S.current,e,n||i,s),l=oe(S.current,t,o||i,r);y.current.setModel({original:a,modified:l})}),[i,t,o,e,n,s,r]),N=(0,K.useCallback)((()=>{y.current=S.current.editor.createDiffEditor(L.current,{automaticLayout:!0,...h}),D(),S.current.editor.setTheme(c),b(!0)}),[h,c,D]);return(0,K.useEffect)((()=>{v&&k.current(y.current,S.current)}),[v]),(0,K.useEffect)((()=>{!C&&!v&&N()}),[C,v,N]),K.createElement(ee,{width:g,height:u,isEditorReady:v,loading:d,_ref:L,className:p,wrapperProps:m})}re.propTypes={original:q().string,modified:q().string,language:q().string,originalLanguage:q().string,modifiedLanguage:q().string,originalModelPath:q().string,modifiedModelPath:q().string,keepCurrentOriginalModel:q().bool,keepCurrentModifiedModel:q().bool,theme:q().string,loading:q().oneOfType([q().element,q().string]),options:q().object,width:q().oneOfType([q().number,q().string]),height:q().oneOfType([q().number,q().string]),className:q().string,wrapperProps:q().object,beforeMount:q().func,onMount:q().func},re.defaultProps={theme:"light",loading:"Loading...",options:{},keepCurrentOriginalModel:!1,keepCurrentModifiedModel:!1,width:"100%",height:"100%",wrapperProps:{},beforeMount:ne,onMount:ne};const ae=function(e){const t=(0,K.useRef)();return(0,K.useEffect)((()=>{t.current=e}),[e]),t.current},le=new Map;function ce({defaultValue:e,defaultLanguage:t,defaultPath:i,value:n,language:o,path:s,theme:r,line:a,loading:l,options:c,overrideServices:d,saveViewState:h,keepCurrentModel:u,width:g,height:p,className:m,wrapperProps:f,beforeMount:_,onMount:v,onChange:b,onValidate:C}){const[w,y]=(0,K.useState)(!1),[S,L]=(0,K.useState)(!0),k=(0,K.useRef)(null),x=(0,K.useRef)(null),D=(0,K.useRef)(null),N=(0,K.useRef)(v),E=(0,K.useRef)(_),I=(0,K.useRef)(null),T=(0,K.useRef)(n),M=ae(s);te((()=>{const e=U.init();return e.then((e=>(k.current=e)&&L(!1))).catch((e=>"cancelation"!==(null==e?void 0:e.type)&&console.error("Monaco initialization: error:",e))),()=>x.current?function(){var e,t;null===(e=I.current)||void 0===e||e.dispose(),u?h&&le.set(s,x.current.saveViewState()):null===(t=x.current.getModel())||void 0===t||t.dispose();x.current.dispose()}():e.cancel()})),ie((()=>{const i=oe(k.current,e||n,t||o,s);i!==x.current.getModel()&&(h&&le.set(M,x.current.saveViewState()),x.current.setModel(i),h&&x.current.restoreViewState(le.get(s)))}),[s],w),ie((()=>{x.current.updateOptions(c)}),[c],w),ie((()=>{x.current.getOption(k.current.editor.EditorOption.readOnly)?x.current.setValue(n):n!==x.current.getValue()&&(x.current.executeEdits("",[{range:x.current.getModel().getFullModelRange(),text:n,forceMoveMarkers:!0}]),x.current.pushUndoStop())}),[n],w),ie((()=>{k.current.editor.setModelLanguage(x.current.getModel(),o)}),[o],w),ie((()=>{void 0!==a&&x.current.revealLine(a)}),[a],w),ie((()=>{k.current.editor.setTheme(r)}),[r],w);const A=(0,K.useCallback)((()=>{E.current(k.current);const a=s||i,l=oe(k.current,n||e,t||o,a);x.current=k.current.editor.create(D.current,{model:l,automaticLayout:!0,...c},d),h&&x.current.restoreViewState(le.get(a)),k.current.editor.setTheme(r),y(!0)}),[e,t,i,n,o,s,c,d,h,r]);return(0,K.useEffect)((()=>{w&&N.current(x.current,k.current)}),[w]),(0,K.useEffect)((()=>{!S&&!w&&A()}),[S,w,A]),T.current=n,(0,K.useEffect)((()=>{var e,t;w&&b&&(null===(e=I.current)||void 0===e||e.dispose(),I.current=null===(t=x.current)||void 0===t?void 0:t.onDidChangeModelContent((e=>{const t=x.current.getValue();T.current!==t&&b(t,e)})))}),[w,b]),(0,K.useEffect)((()=>{if(w){const e=k.current.editor.onDidChangeMarkers((e=>{var t;const i=null===(t=x.current.getModel())||void 0===t?void 0:t.uri;if(i){if(e.find((e=>e.path===i.path))){const e=k.current.editor.getModelMarkers({resource:i});null==C||C(e)}}}));return()=>{null==e||e.dispose()}}}),[w,C]),K.createElement(ee,{width:g,height:p,isEditorReady:w,loading:l,_ref:D,className:m,wrapperProps:f})}ce.propTypes={defaultValue:q().string,defaultPath:q().string,defaultLanguage:q().string,value:q().string,language:q().string,path:q().string,theme:q().string,line:q().number,loading:q().oneOfType([q().element,q().string]),options:q().object,overrideServices:q().object,saveViewState:q().bool,keepCurrentModel:q().bool,width:q().oneOfType([q().number,q().string]),height:q().oneOfType([q().number,q().string]),className:q().string,wrapperProps:q().object,beforeMount:q().func,onMount:q().func,onChange:q().func,onValidate:q().func},ce.defaultProps={theme:"light",loading:"Loading...",options:{},overrideServices:{},saveViewState:!0,keepCurrentModel:!1,width:"100%",height:"100%",wrapperProps:{},beforeMount:ne,onMount:ne,onValidate:ne};const de=ce;const he=(0,K.memo)(de)},26961:(e,t,i)=>{var n,o=function(){var e=String.fromCharCode,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",n={};function o(e,t){if(!n[e]){n[e]={};for(var i=0;i<e.length;i++)n[e][e.charAt(i)]=i}return n[e][t]}var s={compressToBase64:function(e){if(null==e)return"";var i=s._compress(e,6,(function(e){return t.charAt(e)}));switch(i.length%4){default:case 0:return i;case 1:return i+"===";case 2:return i+"==";case 3:return i+"="}},decompressFromBase64:function(e){return null==e?"":""==e?null:s._decompress(e.length,32,(function(i){return o(t,e.charAt(i))}))},compressToUTF16:function(t){return null==t?"":s._compress(t,15,(function(t){return e(t+32)}))+" "},decompressFromUTF16:function(e){return null==e?"":""==e?null:s._decompress(e.length,16384,(function(t){return e.charCodeAt(t)-32}))},compressToUint8Array:function(e){for(var t=s.compress(e),i=new Uint8Array(2*t.length),n=0,o=t.length;n<o;n++){var r=t.charCodeAt(n);i[2*n]=r>>>8,i[2*n+1]=r%256}return i},decompressFromUint8Array:function(t){if(null==t)return s.decompress(t);for(var i=new Array(t.length/2),n=0,o=i.length;n<o;n++)i[n]=256*t[2*n]+t[2*n+1];var r=[];return i.forEach((function(t){r.push(e(t))})),s.decompress(r.join(""))},compressToEncodedURIComponent:function(e){return null==e?"":s._compress(e,6,(function(e){return i.charAt(e)}))},decompressFromEncodedURIComponent:function(e){return null==e?"":""==e?null:(e=e.replace(/ /g,"+"),s._decompress(e.length,32,(function(t){return o(i,e.charAt(t))})))},compress:function(t){return s._compress(t,16,(function(t){return e(t)}))},_compress:function(e,t,i){if(null==e)return"";var n,o,s,r={},a={},l="",c="",d="",h=2,u=3,g=2,p=[],m=0,f=0;for(s=0;s<e.length;s+=1)if(l=e.charAt(s),Object.prototype.hasOwnProperty.call(r,l)||(r[l]=u++,a[l]=!0),c=d+l,Object.prototype.hasOwnProperty.call(r,c))d=c;else{if(Object.prototype.hasOwnProperty.call(a,d)){if(d.charCodeAt(0)<256){for(n=0;n<g;n++)m<<=1,f==t-1?(f=0,p.push(i(m)),m=0):f++;for(o=d.charCodeAt(0),n=0;n<8;n++)m=m<<1|1&o,f==t-1?(f=0,p.push(i(m)),m=0):f++,o>>=1}else{for(o=1,n=0;n<g;n++)m=m<<1|o,f==t-1?(f=0,p.push(i(m)),m=0):f++,o=0;for(o=d.charCodeAt(0),n=0;n<16;n++)m=m<<1|1&o,f==t-1?(f=0,p.push(i(m)),m=0):f++,o>>=1}0==--h&&(h=Math.pow(2,g),g++),delete a[d]}else for(o=r[d],n=0;n<g;n++)m=m<<1|1&o,f==t-1?(f=0,p.push(i(m)),m=0):f++,o>>=1;0==--h&&(h=Math.pow(2,g),g++),r[c]=u++,d=String(l)}if(""!==d){if(Object.prototype.hasOwnProperty.call(a,d)){if(d.charCodeAt(0)<256){for(n=0;n<g;n++)m<<=1,f==t-1?(f=0,p.push(i(m)),m=0):f++;for(o=d.charCodeAt(0),n=0;n<8;n++)m=m<<1|1&o,f==t-1?(f=0,p.push(i(m)),m=0):f++,o>>=1}else{for(o=1,n=0;n<g;n++)m=m<<1|o,f==t-1?(f=0,p.push(i(m)),m=0):f++,o=0;for(o=d.charCodeAt(0),n=0;n<16;n++)m=m<<1|1&o,f==t-1?(f=0,p.push(i(m)),m=0):f++,o>>=1}0==--h&&(h=Math.pow(2,g),g++),delete a[d]}else for(o=r[d],n=0;n<g;n++)m=m<<1|1&o,f==t-1?(f=0,p.push(i(m)),m=0):f++,o>>=1;0==--h&&(h=Math.pow(2,g),g++)}for(o=2,n=0;n<g;n++)m=m<<1|1&o,f==t-1?(f=0,p.push(i(m)),m=0):f++,o>>=1;for(;;){if(m<<=1,f==t-1){p.push(i(m));break}f++}return p.join("")},decompress:function(e){return null==e?"":""==e?null:s._decompress(e.length,32768,(function(t){return e.charCodeAt(t)}))},_decompress:function(t,i,n){var o,s,r,a,l,c,d,h=[],u=4,g=4,p=3,m="",f=[],_={val:n(0),position:i,index:1};for(o=0;o<3;o+=1)h[o]=o;for(r=0,l=Math.pow(2,2),c=1;c!=l;)a=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),r|=(a>0?1:0)*c,c<<=1;switch(r){case 0:for(r=0,l=Math.pow(2,8),c=1;c!=l;)a=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),r|=(a>0?1:0)*c,c<<=1;d=e(r);break;case 1:for(r=0,l=Math.pow(2,16),c=1;c!=l;)a=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),r|=(a>0?1:0)*c,c<<=1;d=e(r);break;case 2:return""}for(h[3]=d,s=d,f.push(d);;){if(_.index>t)return"";for(r=0,l=Math.pow(2,p),c=1;c!=l;)a=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),r|=(a>0?1:0)*c,c<<=1;switch(d=r){case 0:for(r=0,l=Math.pow(2,8),c=1;c!=l;)a=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),r|=(a>0?1:0)*c,c<<=1;h[g++]=e(r),d=g-1,u--;break;case 1:for(r=0,l=Math.pow(2,16),c=1;c!=l;)a=_.val&_.position,_.position>>=1,0==_.position&&(_.position=i,_.val=n(_.index++)),r|=(a>0?1:0)*c,c<<=1;h[g++]=e(r),d=g-1,u--;break;case 2:return f.join("")}if(0==u&&(u=Math.pow(2,p),p++),h[d])m=h[d];else{if(d!==g)return null;m=s+s.charAt(0)}f.push(m),h[g++]=s+m.charAt(0),s=m,0==--u&&(u=Math.pow(2,p),p++)}}};return s}();void 0===(n=function(){return o}.call(t,i,t,e))||(e.exports=n)},38139:(e,t,i)=>{"use strict";i.r(t),i.d(t,{CancellationTokenSource:()=>_l,Emitter:()=>vl,KeyCode:()=>bl,KeyMod:()=>Cl,MarkerSeverity:()=>kl,MarkerTag:()=>xl,Position:()=>wl,Range:()=>yl,Selection:()=>Sl,SelectionDirection:()=>Ll,Token:()=>Nl,Uri:()=>Dl,default:()=>Ml,editor:()=>El,languages:()=>Il});var n={};i.r(n),i.d(n,{CancellationTokenSource:()=>_l,Emitter:()=>vl,KeyCode:()=>bl,KeyMod:()=>Cl,MarkerSeverity:()=>kl,MarkerTag:()=>xl,Position:()=>wl,Range:()=>yl,Selection:()=>Sl,SelectionDirection:()=>Ll,Token:()=>Nl,Uri:()=>Dl,editor:()=>El,languages:()=>Il});i(29477),i(90236),i(71387),i(42549),i(39934),i(72102),i(55833),i(34281),i(87712),i(29079),i(39956),i(93740),i(85754),i(41895),i(27107),i(76917),i(22482),i(55826),i(40714),i(44125),i(61097),i(99803),i(62078),i(95817),i(22470),i(66122),i(19646),i(68077),i(84602),i(77563),i(70448),i(97830),i(97615),i(49504),i(76),i(18408),i(77061),i(97660),i(91732),i(60669),i(96816),i(73945),i(45048),i(82379),i(47721),i(98762),i(61984),i(76092),i(88088),i(15662),i(64662),i(52614),i(95180),i(79607),i(61271),i(70943),i(37181),i(86709);var o=i(64141),s=i(71050),r=i(4669),a=i(22258),l=i(70666),c=i(50187),d=i(24314),h=i(3860),u=i(43155),g=i(70902);class p{static chord(e,t){return(0,a.gx)(e,t)}}function m(){return{editor:void 0,languages:void 0,CancellationTokenSource:s.A,Emitter:r.Q5,KeyCode:g.VD,KeyMod:p,Position:c.L,Range:d.e,Selection:h.Y,SelectionDirection:g.a$,MarkerSeverity:g.ZL,MarkerTag:g.eB,Uri:l.o,Token:u.WU}}p.CtrlCmd=2048,p.Shift=1024,p.Alt=512,p.WinCtrl=256;var f=i(97295),_=i(66059),v=i(11640),b=i(75623),C=i(27374),w=i(96518),y=i(84973),S=i(4256),L=i(276),k=i(72042),x=i(73733),D=i(15393),N=i(5976),E=i(17301),I=i(1432),T=i(98401);const M="$initialize";let A=!1;function R(e){I.$L&&(A||(A=!0,console.warn("Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq")),console.warn(e.message))}class O{constructor(e,t,i,n){this.vsWorker=e,this.req=t,this.method=i,this.args=n,this.type=0}}class P{constructor(e,t,i,n){this.vsWorker=e,this.seq=t,this.res=i,this.err=n,this.type=1}}class F{constructor(e,t,i,n){this.vsWorker=e,this.req=t,this.eventName=i,this.arg=n,this.type=2}}class B{constructor(e,t,i){this.vsWorker=e,this.req=t,this.event=i,this.type=3}}class V{constructor(e,t){this.vsWorker=e,this.req=t,this.type=4}}class W{constructor(e){this._workerId=-1,this._handler=e,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(e){this._workerId=e}sendMessage(e,t){const i=String(++this._lastSentReq);return new Promise(((n,o)=>{this._pendingReplies[i]={resolve:n,reject:o},this._send(new O(this._workerId,i,e,t))}))}listen(e,t){let i=null;const n=new r.Q5({onFirstListenerAdd:()=>{i=String(++this._lastSentReq),this._pendingEmitters.set(i,n),this._send(new F(this._workerId,i,e,t))},onLastListenerRemove:()=>{this._pendingEmitters.delete(i),this._send(new V(this._workerId,i)),i=null}});return n.event}handleMessage(e){e&&e.vsWorker&&(-1!==this._workerId&&e.vsWorker!==this._workerId||this._handleMessage(e))}_handleMessage(e){switch(e.type){case 1:return this._handleReplyMessage(e);case 0:return this._handleRequestMessage(e);case 2:return this._handleSubscribeEventMessage(e);case 3:return this._handleEventMessage(e);case 4:return this._handleUnsubscribeEventMessage(e)}}_handleReplyMessage(e){if(!this._pendingReplies[e.seq])return void console.warn("Got reply to unknown seq");const t=this._pendingReplies[e.seq];if(delete this._pendingReplies[e.seq],e.err){let i=e.err;return e.err.$isError&&(i=new Error,i.name=e.err.name,i.message=e.err.message,i.stack=e.err.stack),void t.reject(i)}t.resolve(e.res)}_handleRequestMessage(e){const t=e.req;this._handler.handleMessage(e.method,e.args).then((e=>{this._send(new P(this._workerId,t,e,void 0))}),(e=>{e.detail instanceof Error&&(e.detail=(0,E.ri)(e.detail)),this._send(new P(this._workerId,t,void 0,(0,E.ri)(e)))}))}_handleSubscribeEventMessage(e){const t=e.req,i=this._handler.handleEvent(e.eventName,e.arg)((e=>{this._send(new B(this._workerId,t,e))}));this._pendingEvents.set(t,i)}_handleEventMessage(e){this._pendingEmitters.has(e.req)?this._pendingEmitters.get(e.req).fire(e.event):console.warn("Got event for unknown req")}_handleUnsubscribeEventMessage(e){this._pendingEvents.has(e.req)?(this._pendingEvents.get(e.req).dispose(),this._pendingEvents.delete(e.req)):console.warn("Got unsubscribe for unknown req")}_send(e){const t=[];if(0===e.type)for(let i=0;i<e.args.length;i++)e.args[i]instanceof ArrayBuffer&&t.push(e.args[i]);else 1===e.type&&e.res instanceof ArrayBuffer&&t.push(e.res);this._handler.sendMessage(e,t)}}class H extends N.JT{constructor(e,t,i){super();let n=null;this._worker=this._register(e.create("vs/base/common/worker/simpleWorker",(e=>{this._protocol.handleMessage(e)}),(e=>{null==n||n(e)}))),this._protocol=new W({sendMessage:(e,t)=>{this._worker.postMessage(e,t)},handleMessage:(e,t)=>{if("function"!=typeof i[e])return Promise.reject(new Error("Missing method "+e+" on main thread host."));try{return Promise.resolve(i[e].apply(i,t))}catch(n){return Promise.reject(n)}},handleEvent:(e,t)=>{if(j(e)){const n=i[e].call(i,t);if("function"!=typeof n)throw new Error(`Missing dynamic event ${e} on main thread host.`);return n}if(z(e)){const t=i[e];if("function"!=typeof t)throw new Error(`Missing event ${e} on main thread host.`);return t}throw new Error(`Malformed event name ${e}`)}}),this._protocol.setWorkerId(this._worker.getId());let o=null;void 0!==I.li.require&&"function"==typeof I.li.require.getConfig?o=I.li.require.getConfig():void 0!==I.li.requirejs&&(o=I.li.requirejs.s.contexts._.config);const s=T.$E(i);this._onModuleLoaded=this._protocol.sendMessage(M,[this._worker.getId(),JSON.parse(JSON.stringify(o)),t,s]);const r=(e,t)=>this._request(e,t),a=(e,t)=>this._protocol.listen(e,t);this._lazyProxy=new Promise(((e,i)=>{n=i,this._onModuleLoaded.then((t=>{e(U(t,r,a))}),(e=>{i(e),this._onError("Worker failed to load "+t,e)}))}))}getProxyObject(){return this._lazyProxy}_request(e,t){return new Promise(((i,n)=>{this._onModuleLoaded.then((()=>{this._protocol.sendMessage(e,t).then(i,n)}),n)}))}_onError(e,t){console.error(e),console.info(t)}}function z(e){return"o"===e[0]&&"n"===e[1]&&f.df(e.charCodeAt(2))}function j(e){return/^onDynamic/.test(e)&&f.df(e.charCodeAt(9))}function U(e,t,i){const n=e=>function(){const i=Array.prototype.slice.call(arguments,0);return t(e,i)},o=e=>function(t){return i(e,t)},s={};for(const r of e)j(r)?s[r]=o(r):z(r)?s[r]=i(r,void 0):s[r]=n(r);return s}var K;const $=null===(K=window.trustedTypes)||void 0===K?void 0:K.createPolicy("defaultWorkerFactory",{createScriptURL:e=>e});class q{constructor(e,t,i,n,o){this.id=t;const s=function(e){if(I.li.MonacoEnvironment){if("function"==typeof I.li.MonacoEnvironment.getWorker)return I.li.MonacoEnvironment.getWorker("workerMain.js",e);if("function"==typeof I.li.MonacoEnvironment.getWorkerUrl){const t=I.li.MonacoEnvironment.getWorkerUrl("workerMain.js",e);return new Worker($?$.createScriptURL(t):t,{name:e})}}throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}(i);"function"==typeof s.then?this.worker=s:this.worker=Promise.resolve(s),this.postMessage(e,[]),this.worker.then((e=>{e.onmessage=function(e){n(e.data)},e.onmessageerror=o,"function"==typeof e.addEventListener&&e.addEventListener("error",o)}))}getId(){return this.id}postMessage(e,t){var i;null===(i=this.worker)||void 0===i||i.then((i=>i.postMessage(e,t)))}dispose(){var e;null===(e=this.worker)||void 0===e||e.then((e=>e.terminate())),this.worker=null}}class G{constructor(e){this._label=e,this._webWorkerFailedBeforeError=!1}create(e,t,i){const n=++G.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new q(e,n,this._label||"anonymous"+n,t,(e=>{R(e),this._webWorkerFailedBeforeError=e,i(e)}))}}G.LAST_WORKER_ID=0;var Q=i(22571);function Z(e,t,i,n){return new Q.Hs(e,t,i).ComputeDiff(n)}class Y{constructor(e){const t=[],i=[];for(let n=0,o=e.length;n<o;n++)t[n]=ie(e[n],1),i[n]=ne(e[n],1);this.lines=e,this._startColumns=t,this._endColumns=i}getElements(){const e=[];for(let t=0,i=this.lines.length;t<i;t++)e[t]=this.lines[t].substring(this._startColumns[t]-1,this._endColumns[t]-1);return e}getStrictElement(e){return this.lines[e]}getStartLineNumber(e){return e+1}getEndLineNumber(e){return e+1}createCharSequence(e,t,i){const n=[],o=[],s=[];let r=0;for(let a=t;a<=i;a++){const t=this.lines[a],l=e?this._startColumns[a]:1,c=e?this._endColumns[a]:t.length+1;for(let e=l;e<c;e++)n[r]=t.charCodeAt(e-1),o[r]=a+1,s[r]=e,r++;!e&&a<i&&(n[r]=10,o[r]=a+1,s[r]=t.length+1,r++)}return new J(n,o,s)}}class J{constructor(e,t,i){this._charCodes=e,this._lineNumbers=t,this._columns=i}toString(){return"["+this._charCodes.map(((e,t)=>(10===e?"\\n":String.fromCharCode(e))+`-(${this._lineNumbers[t]},${this._columns[t]})`)).join(", ")+"]"}_assertIndex(e,t){if(e<0||e>=t.length)throw new Error("Illegal index")}getElements(){return this._charCodes}getStartLineNumber(e){return e>0&&e===this._lineNumbers.length?this.getEndLineNumber(e-1):(this._assertIndex(e,this._lineNumbers),this._lineNumbers[e])}getEndLineNumber(e){return-1===e?this.getStartLineNumber(e+1):(this._assertIndex(e,this._lineNumbers),10===this._charCodes[e]?this._lineNumbers[e]+1:this._lineNumbers[e])}getStartColumn(e){return e>0&&e===this._columns.length?this.getEndColumn(e-1):(this._assertIndex(e,this._columns),this._columns[e])}getEndColumn(e){return-1===e?this.getStartColumn(e+1):(this._assertIndex(e,this._columns),10===this._charCodes[e]?1:this._columns[e]+1)}}class X{constructor(e,t,i,n,o,s,r,a){this.originalStartLineNumber=e,this.originalStartColumn=t,this.originalEndLineNumber=i,this.originalEndColumn=n,this.modifiedStartLineNumber=o,this.modifiedStartColumn=s,this.modifiedEndLineNumber=r,this.modifiedEndColumn=a}static createFromDiffChange(e,t,i){const n=t.getStartLineNumber(e.originalStart),o=t.getStartColumn(e.originalStart),s=t.getEndLineNumber(e.originalStart+e.originalLength-1),r=t.getEndColumn(e.originalStart+e.originalLength-1),a=i.getStartLineNumber(e.modifiedStart),l=i.getStartColumn(e.modifiedStart),c=i.getEndLineNumber(e.modifiedStart+e.modifiedLength-1),d=i.getEndColumn(e.modifiedStart+e.modifiedLength-1);return new X(n,o,s,r,a,l,c,d)}}class ee{constructor(e,t,i,n,o){this.originalStartLineNumber=e,this.originalEndLineNumber=t,this.modifiedStartLineNumber=i,this.modifiedEndLineNumber=n,this.charChanges=o}static createFromDiffResult(e,t,i,n,o,s,r){let a,l,c,d,h;if(0===t.originalLength?(a=i.getStartLineNumber(t.originalStart)-1,l=0):(a=i.getStartLineNumber(t.originalStart),l=i.getEndLineNumber(t.originalStart+t.originalLength-1)),0===t.modifiedLength?(c=n.getStartLineNumber(t.modifiedStart)-1,d=0):(c=n.getStartLineNumber(t.modifiedStart),d=n.getEndLineNumber(t.modifiedStart+t.modifiedLength-1)),s&&t.originalLength>0&&t.originalLength<20&&t.modifiedLength>0&&t.modifiedLength<20&&o()){const s=i.createCharSequence(e,t.originalStart,t.originalStart+t.originalLength-1),a=n.createCharSequence(e,t.modifiedStart,t.modifiedStart+t.modifiedLength-1);if(s.getElements().length>0&&a.getElements().length>0){let e=Z(s,a,o,!0).changes;r&&(e=function(e){if(e.length<=1)return e;const t=[e[0]];let i=t[0];for(let n=1,o=e.length;n<o;n++){const o=e[n],s=o.originalStart-(i.originalStart+i.originalLength),r=o.modifiedStart-(i.modifiedStart+i.modifiedLength);Math.min(s,r)<3?(i.originalLength=o.originalStart+o.originalLength-i.originalStart,i.modifiedLength=o.modifiedStart+o.modifiedLength-i.modifiedStart):(t.push(o),i=o)}return t}(e)),h=[];for(let t=0,i=e.length;t<i;t++)h.push(X.createFromDiffChange(e[t],s,a))}}return new ee(a,l,c,d,h)}}class te{constructor(e,t,i){this.shouldComputeCharChanges=i.shouldComputeCharChanges,this.shouldPostProcessCharChanges=i.shouldPostProcessCharChanges,this.shouldIgnoreTrimWhitespace=i.shouldIgnoreTrimWhitespace,this.shouldMakePrettyDiff=i.shouldMakePrettyDiff,this.originalLines=e,this.modifiedLines=t,this.original=new Y(e),this.modified=new Y(t),this.continueLineDiff=oe(i.maxComputationTime),this.continueCharDiff=oe(0===i.maxComputationTime?0:Math.min(i.maxComputationTime,5e3))}computeDiff(){if(1===this.original.lines.length&&0===this.original.lines[0].length)return 1===this.modified.lines.length&&0===this.modified.lines[0].length?{quitEarly:!1,changes:[]}:{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:1,modifiedStartLineNumber:1,modifiedEndLineNumber:this.modified.lines.length,charChanges:[{modifiedEndColumn:0,modifiedEndLineNumber:0,modifiedStartColumn:0,modifiedStartLineNumber:0,originalEndColumn:0,originalEndLineNumber:0,originalStartColumn:0,originalStartLineNumber:0}]}]};if(1===this.modified.lines.length&&0===this.modified.lines[0].length)return{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:this.original.lines.length,modifiedStartLineNumber:1,modifiedEndLineNumber:1,charChanges:[{modifiedEndColumn:0,modifiedEndLineNumber:0,modifiedStartColumn:0,modifiedStartLineNumber:0,originalEndColumn:0,originalEndLineNumber:0,originalStartColumn:0,originalStartLineNumber:0}]}]};const e=Z(this.original,this.modified,this.continueLineDiff,this.shouldMakePrettyDiff),t=e.changes,i=e.quitEarly;if(this.shouldIgnoreTrimWhitespace){const e=[];for(let i=0,n=t.length;i<n;i++)e.push(ee.createFromDiffResult(this.shouldIgnoreTrimWhitespace,t[i],this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges));return{quitEarly:i,changes:e}}const n=[];let o=0,s=0;for(let r=-1,a=t.length;r<a;r++){const e=r+1<a?t[r+1]:null,i=e?e.originalStart:this.originalLines.length,l=e?e.modifiedStart:this.modifiedLines.length;for(;o<i&&s<l;){const e=this.originalLines[o],t=this.modifiedLines[s];if(e!==t){{let i=ie(e,1),r=ie(t,1);for(;i>1&&r>1;){if(e.charCodeAt(i-2)!==t.charCodeAt(r-2))break;i--,r--}(i>1||r>1)&&this._pushTrimWhitespaceCharChange(n,o+1,1,i,s+1,1,r)}{let i=ne(e,1),r=ne(t,1);const a=e.length+1,l=t.length+1;for(;i<a&&r<l;){if(e.charCodeAt(i-1)!==e.charCodeAt(r-1))break;i++,r++}(i<a||r<l)&&this._pushTrimWhitespaceCharChange(n,o+1,i,a,s+1,r,l)}}o++,s++}e&&(n.push(ee.createFromDiffResult(this.shouldIgnoreTrimWhitespace,e,this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges)),o+=e.originalLength,s+=e.modifiedLength)}return{quitEarly:i,changes:n}}_pushTrimWhitespaceCharChange(e,t,i,n,o,s,r){if(this._mergeTrimWhitespaceCharChange(e,t,i,n,o,s,r))return;let a;this.shouldComputeCharChanges&&(a=[new X(t,i,t,n,o,s,o,r)]),e.push(new ee(t,t,o,o,a))}_mergeTrimWhitespaceCharChange(e,t,i,n,o,s,r){const a=e.length;if(0===a)return!1;const l=e[a-1];return 0!==l.originalEndLineNumber&&0!==l.modifiedEndLineNumber&&(l.originalEndLineNumber+1===t&&l.modifiedEndLineNumber+1===o&&(l.originalEndLineNumber=t,l.modifiedEndLineNumber=o,this.shouldComputeCharChanges&&l.charChanges&&l.charChanges.push(new X(t,i,t,n,o,s,o,r)),!0))}}function ie(e,t){const i=f.LC(e);return-1===i?t:i+1}function ne(e,t){const i=f.ow(e);return-1===i?t:i+2}function oe(e){if(0===e)return()=>!0;const t=Date.now();return()=>Date.now()-t<e}var se=i(90310);var re=i(270),ae=i(44906);class le{constructor(e,t,i){const n=new Uint8Array(e*t);for(let o=0,s=e*t;o<s;o++)n[o]=i;this._data=n,this.rows=e,this.cols=t}get(e,t){return this._data[e*this.cols+t]}set(e,t,i){this._data[e*this.cols+t]=i}}class ce{constructor(e){let t=0,i=0;for(let o=0,s=e.length;o<s;o++){const[n,s,r]=e[o];s>t&&(t=s),n>i&&(i=n),r>i&&(i=r)}t++,i++;const n=new le(i,t,0);for(let o=0,s=e.length;o<s;o++){const[t,i,s]=e[o];n.set(t,i,s)}this._states=n,this._maxCharCode=t}nextState(e,t){return t<0||t>=this._maxCharCode?0:this._states.get(e,t)}}let de=null;let he=null;class ue{static _createLink(e,t,i,n,o){let s=o-1;do{const i=t.charCodeAt(s);if(2!==e.get(i))break;s--}while(s>n);if(n>0){const e=t.charCodeAt(n-1),i=t.charCodeAt(s);(40===e&&41===i||91===e&&93===i||123===e&&125===i)&&s--}return{range:{startLineNumber:i,startColumn:n+1,endLineNumber:i,endColumn:s+2},url:t.substring(n,s+1)}}static computeLinks(e,t=function(){return null===de&&(de=new ce([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),de}()){const i=function(){if(null===he){he=new ae.N(0);const e=" \t<>'\"\u3001\u3002\uff61\uff64\uff0c\uff0e\uff1a\uff1b\u2018\u3008\u300c\u300e\u3014\uff08\uff3b\uff5b\uff62\uff63\uff5d\uff3d\uff09\u3015\u300f\u300d\u3009\u2019\uff40\uff5e\u2026";for(let i=0;i<e.length;i++)he.set(e.charCodeAt(i),1);const t=".,;:";for(let i=0;i<t.length;i++)he.set(t.charCodeAt(i),2)}return he}(),n=[];for(let o=1,s=e.getLineCount();o<=s;o++){const s=e.getLineContent(o),r=s.length;let a=0,l=0,c=0,d=1,h=!1,u=!1,g=!1,p=!1;for(;a<r;){let e=!1;const r=s.charCodeAt(a);if(13===d){let t;switch(r){case 40:h=!0,t=0;break;case 41:t=h?0:1;break;case 91:g=!0,u=!0,t=0;break;case 93:g=!1,t=u?0:1;break;case 123:p=!0,t=0;break;case 125:t=p?0:1;break;case 39:t=39===c?1:0;break;case 34:t=34===c?1:0;break;case 96:t=96===c?1:0;break;case 42:t=42===c?1:0;break;case 124:t=124===c?1:0;break;case 32:t=g?0:1;break;default:t=i.get(r)}1===t&&(n.push(ue._createLink(i,s,o,l,a)),e=!0)}else if(12===d){let t;91===r?(u=!0,t=0):t=i.get(r),1===t?e=!0:d=13}else d=t.nextState(d,r),0===d&&(e=!0);e&&(d=1,h=!1,u=!1,p=!1,l=a+1,c=r),a++}13===d&&n.push(ue._createLink(i,s,o,l,r))}return n}}class ge{constructor(){this._defaultValueSet=[["true","false"],["True","False"],["Private","Public","Friend","ReadOnly","Partial","Protected","WriteOnly"],["public","protected","private"]]}navigateValueSet(e,t,i,n,o){if(e&&t){const i=this.doNavigateValueSet(t,o);if(i)return{range:e,value:i}}if(i&&n){const e=this.doNavigateValueSet(n,o);if(e)return{range:i,value:e}}return null}doNavigateValueSet(e,t){const i=this.numberReplace(e,t);return null!==i?i:this.textReplace(e,t)}numberReplace(e,t){const i=Math.pow(10,e.length-(e.lastIndexOf(".")+1));let n=Number(e);const o=parseFloat(e);return isNaN(n)||isNaN(o)||n!==o?null:0!==n||t?(n=Math.floor(n*i),n+=t?i:-i,String(n/i)):null}textReplace(e,t){return this.valueSetsReplace(this._defaultValueSet,e,t)}valueSetsReplace(e,t,i){let n=null;for(let o=0,s=e.length;null===n&&o<s;o++)n=this.valueSetReplace(e[o],t,i);return n}valueSetReplace(e,t,i){let n=e.indexOf(t);return n>=0?(n+=i?1:-1,n<0?n=e.length-1:n%=e.length,e[n]):null}}ge.INSTANCE=new ge;var pe=i(84013),me=i(31446),fe=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class _e extends class{constructor(e,t,i,n){this._uri=e,this._lines=t,this._eol=i,this._versionId=n,this._lineStarts=null,this._cachedTextValue=null}dispose(){this._lines.length=0}get version(){return this._versionId}getText(){return null===this._cachedTextValue&&(this._cachedTextValue=this._lines.join(this._eol)),this._cachedTextValue}onEvents(e){e.eol&&e.eol!==this._eol&&(this._eol=e.eol,this._lineStarts=null);const t=e.changes;for(const i of t)this._acceptDeleteRange(i.range),this._acceptInsertText(new c.L(i.range.startLineNumber,i.range.startColumn),i.text);this._versionId=e.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){const e=this._eol.length,t=this._lines.length,i=new Uint32Array(t);for(let n=0;n<t;n++)i[n]=this._lines[n].length+e;this._lineStarts=new se.oQ(i)}}_setLineText(e,t){this._lines[e]=t,this._lineStarts&&this._lineStarts.setValue(e,this._lines[e].length+this._eol.length)}_acceptDeleteRange(e){if(e.startLineNumber!==e.endLineNumber)this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.endLineNumber-1].substring(e.endColumn-1)),this._lines.splice(e.startLineNumber,e.endLineNumber-e.startLineNumber),this._lineStarts&&this._lineStarts.removeValues(e.startLineNumber,e.endLineNumber-e.startLineNumber);else{if(e.startColumn===e.endColumn)return;this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.startLineNumber-1].substring(e.endColumn-1))}}_acceptInsertText(e,t){if(0===t.length)return;const i=(0,f.uq)(t);if(1===i.length)return void this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+i[0]+this._lines[e.lineNumber-1].substring(e.column-1));i[i.length-1]+=this._lines[e.lineNumber-1].substring(e.column-1),this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+i[0]);const n=new Uint32Array(i.length-1);for(let o=1;o<i.length;o++)this._lines.splice(e.lineNumber+o-1,0,i[o]),n[o-1]=i[o].length+this._eol.length;this._lineStarts&&this._lineStarts.insertValues(e.lineNumber,n)}}{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}getLinesContent(){return this._lines.slice(0)}getLineCount(){return this._lines.length}getLineContent(e){return this._lines[e-1]}getWordAtPosition(e,t){const i=(0,re.t2)(e.column,(0,re.eq)(t),this._lines[e.lineNumber-1],0);return i?new d.e(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn):null}words(e){const t=this._lines,i=this._wordenize.bind(this);let n=0,o="",s=0,r=[];return{*[Symbol.iterator](){for(;;)if(s<r.length){const e=o.substring(r[s].start,r[s].end);s+=1,yield e}else{if(!(n<t.length))break;o=t[n],r=i(o,e),s=0,n+=1}}}}getLineWords(e,t){const i=this._lines[e-1],n=this._wordenize(i,t),o=[];for(const s of n)o.push({word:i.substring(s.start,s.end),startColumn:s.start+1,endColumn:s.end+1});return o}_wordenize(e,t){const i=[];let n;for(t.lastIndex=0;(n=t.exec(e))&&0!==n[0].length;)i.push({start:n.index,end:n.index+n[0].length});return i}getValueInRange(e){if((e=this._validateRange(e)).startLineNumber===e.endLineNumber)return this._lines[e.startLineNumber-1].substring(e.startColumn-1,e.endColumn-1);const t=this._eol,i=e.startLineNumber-1,n=e.endLineNumber-1,o=[];o.push(this._lines[i].substring(e.startColumn-1));for(let s=i+1;s<n;s++)o.push(this._lines[s]);return o.push(this._lines[n].substring(0,e.endColumn-1)),o.join(t)}offsetAt(e){return e=this._validatePosition(e),this._ensureLineStarts(),this._lineStarts.getPrefixSum(e.lineNumber-2)+(e.column-1)}positionAt(e){e=Math.floor(e),e=Math.max(0,e),this._ensureLineStarts();const t=this._lineStarts.getIndexOf(e),i=this._lines[t.index].length;return{lineNumber:1+t.index,column:1+Math.min(t.remainder,i)}}_validateRange(e){const t=this._validatePosition({lineNumber:e.startLineNumber,column:e.startColumn}),i=this._validatePosition({lineNumber:e.endLineNumber,column:e.endColumn});return t.lineNumber!==e.startLineNumber||t.column!==e.startColumn||i.lineNumber!==e.endLineNumber||i.column!==e.endColumn?{startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:i.lineNumber,endColumn:i.column}:e}_validatePosition(e){if(!c.L.isIPosition(e))throw new Error("bad position");let{lineNumber:t,column:i}=e,n=!1;if(t<1)t=1,i=1,n=!0;else if(t>this._lines.length)t=this._lines.length,i=this._lines[t-1].length+1,n=!0;else{const e=this._lines[t-1].length+1;i<1?(i=1,n=!0):i>e&&(i=e,n=!0)}return n?{lineNumber:t,column:i}:e}}class ve{constructor(e,t){this._host=e,this._models=Object.create(null),this._foreignModuleFactory=t,this._foreignModule=null}dispose(){this._models=Object.create(null)}_getModel(e){return this._models[e]}_getModels(){const e=[];return Object.keys(this._models).forEach((t=>e.push(this._models[t]))),e}acceptNewModel(e){this._models[e.url]=new _e(l.o.parse(e.url),e.lines,e.EOL,e.versionId)}acceptModelChanged(e,t){if(!this._models[e])return;this._models[e].onEvents(t)}acceptRemovedModel(e){this._models[e]&&delete this._models[e]}computeUnicodeHighlights(e,t,i){return fe(this,void 0,void 0,(function*(){const n=this._getModel(e);return n?me.a.computeUnicodeHighlights(n,t,i):{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0}}))}computeDiff(e,t,i,n){return fe(this,void 0,void 0,(function*(){const o=this._getModel(e),s=this._getModel(t);return o&&s?ve.computeDiff(o,s,i,n):null}))}static computeDiff(e,t,i,n){const o=e.getLinesContent(),s=t.getLinesContent(),r=new te(o,s,{shouldComputeCharChanges:!0,shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:i,shouldMakePrettyDiff:!0,maxComputationTime:n}).computeDiff(),a=!(r.changes.length>0)&&this._modelsAreIdentical(e,t);return{quitEarly:r.quitEarly,identical:a,changes:r.changes}}static _modelsAreIdentical(e,t){const i=e.getLineCount();if(i!==t.getLineCount())return!1;for(let n=1;n<=i;n++){if(e.getLineContent(n)!==t.getLineContent(n))return!1}return!0}computeMoreMinimalEdits(e,t){return fe(this,void 0,void 0,(function*(){const i=this._getModel(e);if(!i)return t;const n=[];let o;t=t.slice(0).sort(((e,t)=>{if(e.range&&t.range)return d.e.compareRangesUsingStarts(e.range,t.range);return(e.range?0:1)-(t.range?0:1)}));for(let{range:e,text:s,eol:r}of t){if("number"==typeof r&&(o=r),d.e.isEmpty(e)&&!s)continue;const t=i.getValueInRange(e);if(s=s.replace(/\r\n|\n|\r/g,i.eol),t===s)continue;if(Math.max(s.length,t.length)>ve._diffLimit){n.push({range:e,text:s});continue}const a=(0,Q.a$)(t,s,!1),l=i.offsetAt(d.e.lift(e).getStartPosition());for(const e of a){const t=i.positionAt(l+e.originalStart),o=i.positionAt(l+e.originalStart+e.originalLength),r={text:s.substr(e.modifiedStart,e.modifiedLength),range:{startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:o.lineNumber,endColumn:o.column}};i.getValueInRange(r.range)!==r.text&&n.push(r)}}return"number"==typeof o&&n.push({eol:o,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),n}))}computeLinks(e){return fe(this,void 0,void 0,(function*(){const t=this._getModel(e);return t?function(e){return e&&"function"==typeof e.getLineCount&&"function"==typeof e.getLineContent?ue.computeLinks(e):[]}(t):null}))}textualSuggest(e,t,i,n){return fe(this,void 0,void 0,(function*(){const o=new pe.G(!0),s=new RegExp(i,n),r=new Set;e:for(const i of e){const e=this._getModel(i);if(e)for(const i of e.words(s))if(i!==t&&isNaN(Number(i))&&(r.add(i),r.size>ve._suggestionsLimit))break e}return{words:Array.from(r),duration:o.elapsed()}}))}computeWordRanges(e,t,i,n){return fe(this,void 0,void 0,(function*(){const o=this._getModel(e);if(!o)return Object.create(null);const s=new RegExp(i,n),r=Object.create(null);for(let e=t.startLineNumber;e<t.endLineNumber;e++){const t=o.getLineWords(e,s);for(const i of t){if(!isNaN(Number(i.word)))continue;let t=r[i.word];t||(t=[],r[i.word]=t),t.push({startLineNumber:e,startColumn:i.startColumn,endLineNumber:e,endColumn:i.endColumn})}}return r}))}navigateValueSet(e,t,i,n,o){return fe(this,void 0,void 0,(function*(){const s=this._getModel(e);if(!s)return null;const r=new RegExp(n,o);t.startColumn===t.endColumn&&(t={startLineNumber:t.startLineNumber,startColumn:t.startColumn,endLineNumber:t.endLineNumber,endColumn:t.endColumn+1});const a=s.getValueInRange(t),l=s.getWordAtPosition({lineNumber:t.startLineNumber,column:t.startColumn},r);if(!l)return null;const c=s.getValueInRange(l);return ge.INSTANCE.navigateValueSet(t,a,l,c,i)}))}loadForeignModule(e,t,i){const n={host:T.IU(i,((e,t)=>this._host.fhr(e,t))),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(n,t),Promise.resolve(T.$E(this._foreignModule))):Promise.reject(new Error("Unexpected usage"))}fmr(e,t){if(!this._foreignModule||"function"!=typeof this._foreignModule[e])return Promise.reject(new Error("Missing requestHandler or method: "+e));try{return Promise.resolve(this._foreignModule[e].apply(this._foreignModule,t))}catch(i){return Promise.reject(i)}}}ve._diffLimit=1e5,ve._suggestionsLimit=1e4,"function"==typeof importScripts&&(I.li.monaco=m());var be=i(71765),Ce=i(9488),we=i(43557),ye=i(71922),Se=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Le=function(e,t){return function(i,n){t(i,n,e)}},ke=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const xe=3e5;function De(e,t){const i=e.getModel(t);return!!i&&!i.isTooLargeForSyncing()}let Ne=class extends N.JT{constructor(e,t,i,n,o){super(),this._modelService=e,this._workerManager=this._register(new Ie(this._modelService,n)),this._logService=i,this._register(o.linkProvider.register({language:"*",hasAccessToAllModels:!0},{provideLinks:(e,t)=>De(this._modelService,e.uri)?this._workerManager.withWorker().then((t=>t.computeLinks(e.uri))).then((e=>e&&{links:e})):Promise.resolve({links:[]})})),this._register(o.completionProvider.register("*",new Ee(this._workerManager,t,this._modelService,n)))}dispose(){super.dispose()}canComputeUnicodeHighlights(e){return De(this._modelService,e)}computedUnicodeHighlights(e,t,i){return this._workerManager.withWorker().then((n=>n.computedUnicodeHighlights(e,t,i)))}computeDiff(e,t,i,n){return this._workerManager.withWorker().then((o=>o.computeDiff(e,t,i,n)))}computeMoreMinimalEdits(e,t){if((0,Ce.Of)(t)){if(!De(this._modelService,e))return Promise.resolve(t);const i=pe.G.create(!0),n=this._workerManager.withWorker().then((i=>i.computeMoreMinimalEdits(e,t)));return n.finally((()=>this._logService.trace("FORMAT#computeMoreMinimalEdits",e.toString(!0),i.elapsed()))),Promise.race([n,(0,D.Vs)(1e3).then((()=>t))])}return Promise.resolve(void 0)}canNavigateValueSet(e){return De(this._modelService,e)}navigateValueSet(e,t,i){return this._workerManager.withWorker().then((n=>n.navigateValueSet(e,t,i)))}canComputeWordRanges(e){return De(this._modelService,e)}computeWordRanges(e,t){return this._workerManager.withWorker().then((i=>i.computeWordRanges(e,t)))}};Ne=Se([Le(0,x.q),Le(1,be.V),Le(2,we.VZ),Le(3,S.c_),Le(4,ye.p)],Ne);class Ee{constructor(e,t,i,n){this.languageConfigurationService=n,this._debugDisplayName="wordbasedCompletions",this._workerManager=e,this._configurationService=t,this._modelService=i}provideCompletionItems(e,t){return ke(this,void 0,void 0,(function*(){const i=this._configurationService.getValue(e.uri,t,"editor");if(!i.wordBasedSuggestions)return;const n=[];if("currentDocument"===i.wordBasedSuggestionsMode)De(this._modelService,e.uri)&&n.push(e.uri);else for(const t of this._modelService.getModels())De(this._modelService,t.uri)&&(t===e?n.unshift(t.uri):"allDocuments"!==i.wordBasedSuggestionsMode&&t.getLanguageId()!==e.getLanguageId()||n.push(t.uri));if(0===n.length)return;const o=this.languageConfigurationService.getLanguageConfiguration(e.getLanguageId()).getWordDefinition(),s=e.getWordAtPosition(t),r=s?new d.e(t.lineNumber,s.startColumn,t.lineNumber,s.endColumn):d.e.fromPositions(t),a=r.setEndPosition(t.lineNumber,t.column),l=yield this._workerManager.withWorker(),c=yield l.textualSuggest(n,null==s?void 0:s.word,o);return c?{duration:c.duration,suggestions:c.words.map((e=>({kind:18,label:e,insertText:e,range:{insert:a,replace:r}})))}:void 0}))}}class Ie extends N.JT{constructor(e,t){super(),this.languageConfigurationService=t,this._modelService=e,this._editorWorkerClient=null,this._lastWorkerUsedTime=(new Date).getTime();this._register(new D.zh).cancelAndSet((()=>this._checkStopIdleWorker()),Math.round(15e4)),this._register(this._modelService.onModelRemoved((e=>this._checkStopEmptyWorker())))}dispose(){this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),super.dispose()}_checkStopEmptyWorker(){if(!this._editorWorkerClient)return;0===this._modelService.getModels().length&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}_checkStopIdleWorker(){if(!this._editorWorkerClient)return;(new Date).getTime()-this._lastWorkerUsedTime>xe&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}withWorker(){return this._lastWorkerUsedTime=(new Date).getTime(),this._editorWorkerClient||(this._editorWorkerClient=new Re(this._modelService,!1,"editorWorkerService",this.languageConfigurationService)),Promise.resolve(this._editorWorkerClient)}}class Te extends N.JT{constructor(e,t,i){if(super(),this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),this._proxy=e,this._modelService=t,!i){const e=new D.zh;e.cancelAndSet((()=>this._checkStopModelSync()),Math.round(3e4)),this._register(e)}}dispose(){for(const e in this._syncedModels)(0,N.B9)(this._syncedModels[e]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),super.dispose()}ensureSyncedResources(e,t){for(const i of e){const e=i.toString();this._syncedModels[e]||this._beginModelSync(i,t),this._syncedModels[e]&&(this._syncedModelsLastUsedTime[e]=(new Date).getTime())}}_checkStopModelSync(){const e=(new Date).getTime(),t=[];for(const i in this._syncedModelsLastUsedTime){e-this._syncedModelsLastUsedTime[i]>6e4&&t.push(i)}for(const i of t)this._stopModelSync(i)}_beginModelSync(e,t){const i=this._modelService.getModel(e);if(!i)return;if(!t&&i.isTooLargeForSyncing())return;const n=e.toString();this._proxy.acceptNewModel({url:i.uri.toString(),lines:i.getLinesContent(),EOL:i.getEOL(),versionId:i.getVersionId()});const o=new N.SL;o.add(i.onDidChangeContent((e=>{this._proxy.acceptModelChanged(n.toString(),e)}))),o.add(i.onWillDispose((()=>{this._stopModelSync(n)}))),o.add((0,N.OF)((()=>{this._proxy.acceptRemovedModel(n)}))),this._syncedModels[n]=o}_stopModelSync(e){const t=this._syncedModels[e];delete this._syncedModels[e],delete this._syncedModelsLastUsedTime[e],(0,N.B9)(t)}}class Me{constructor(e){this._instance=e,this._proxyObj=Promise.resolve(this._instance)}dispose(){this._instance.dispose()}getProxyObject(){return this._proxyObj}}class Ae{constructor(e){this._workerClient=e}fhr(e,t){return this._workerClient.fhr(e,t)}}class Re extends N.JT{constructor(e,t,i,n){super(),this.languageConfigurationService=n,this._disposed=!1,this._modelService=e,this._keepIdleModels=t,this._workerFactory=new G(i),this._worker=null,this._modelManager=null}fhr(e,t){throw new Error("Not implemented!")}_getOrCreateWorker(){if(!this._worker)try{this._worker=this._register(new H(this._workerFactory,"vs/editor/common/services/editorSimpleWorker",new Ae(this)))}catch(e){R(e),this._worker=new Me(new ve(new Ae(this),null))}return this._worker}_getProxy(){return this._getOrCreateWorker().getProxyObject().then(void 0,(e=>(R(e),this._worker=new Me(new ve(new Ae(this),null)),this._getOrCreateWorker().getProxyObject())))}_getOrCreateModelManager(e){return this._modelManager||(this._modelManager=this._register(new Te(e,this._modelService,this._keepIdleModels))),this._modelManager}_withSyncedResources(e,t=!1){return ke(this,void 0,void 0,(function*(){return this._disposed?Promise.reject((0,E.F0)()):this._getProxy().then((i=>(this._getOrCreateModelManager(i).ensureSyncedResources(e,t),i)))}))}computedUnicodeHighlights(e,t,i){return this._withSyncedResources([e]).then((n=>n.computeUnicodeHighlights(e.toString(),t,i)))}computeDiff(e,t,i,n){return this._withSyncedResources([e,t],!0).then((o=>o.computeDiff(e.toString(),t.toString(),i,n)))}computeMoreMinimalEdits(e,t){return this._withSyncedResources([e]).then((i=>i.computeMoreMinimalEdits(e.toString(),t)))}computeLinks(e){return this._withSyncedResources([e]).then((t=>t.computeLinks(e.toString())))}textualSuggest(e,t,i){return ke(this,void 0,void 0,(function*(){const n=yield this._withSyncedResources(e),o=i.source,s=(0,f.mr)(i);return n.textualSuggest(e.map((e=>e.toString())),t,o,s)}))}computeWordRanges(e,t){return this._withSyncedResources([e]).then((i=>{const n=this._modelService.getModel(e);if(!n)return Promise.resolve(null);const o=this.languageConfigurationService.getLanguageConfiguration(n.getLanguageId()).getWordDefinition(),s=o.source,r=(0,f.mr)(o);return i.computeWordRanges(e.toString(),t,s,r)}))}navigateValueSet(e,t,i){return this._withSyncedResources([e]).then((n=>{const o=this._modelService.getModel(e);if(!o)return null;const s=this.languageConfigurationService.getLanguageConfiguration(o.getLanguageId()).getWordDefinition(),r=s.source,a=(0,f.mr)(s);return n.navigateValueSet(e.toString(),t,i,r,a)}))}dispose(){super.dispose(),this._disposed=!0}}class Oe extends Re{constructor(e,t,i){super(e,i.keepIdleModels||!1,i.label,t),this._foreignModuleId=i.moduleId,this._foreignModuleCreateData=i.createData||null,this._foreignModuleHost=i.host||null,this._foreignProxy=null}fhr(e,t){if(!this._foreignModuleHost||"function"!=typeof this._foreignModuleHost[e])return Promise.reject(new Error("Missing method "+e+" or missing main thread foreign host."));try{return Promise.resolve(this._foreignModuleHost[e].apply(this._foreignModuleHost,t))}catch(i){return Promise.reject(i)}}_getForeignProxy(){return this._foreignProxy||(this._foreignProxy=this._getProxy().then((e=>{const t=this._foreignModuleHost?T.$E(this._foreignModuleHost):[];return e.loadForeignModule(this._foreignModuleId,this._foreignModuleCreateData,t).then((t=>{this._foreignModuleCreateData=null;const i=(t,i)=>e.fmr(t,i),n=(e,t)=>function(){const i=Array.prototype.slice.call(arguments,0);return t(e,i)},o={};for(const e of t)o[e]=n(e,i);return o}))}))),this._foreignProxy}getProxy(){return this._getForeignProxy()}withSyncedResources(e){return this._withSyncedResources(e).then((e=>this.getProxy()))}}var Pe=i(77378),Fe=i(72202),Be=i(1118);function Ve(e){return!function(e){return Array.isArray(e)}(e)}function We(e){return"string"==typeof e}function He(e){return!We(e)}function ze(e){return!e}function je(e,t){return e.ignoreCase&&t?t.toLowerCase():t}function Ue(e){return e.replace(/[&<>'"_]/g,"-")}function Ke(e,t){return new Error(`${e.languageId}: ${t}`)}function $e(e,t,i,n,o){let s=null;return t.replace(/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g,(function(t,r,a,l,c,d,h,u,g){return ze(a)?ze(l)?!ze(c)&&c<n.length?je(e,n[c]):!ze(h)&&e&&"string"==typeof e[h]?e[h]:(null===s&&(s=o.split("."),s.unshift(o)),!ze(d)&&d<s.length?je(e,s[d]):""):je(e,i):"$"}))}function qe(e,t){let i=t;for(;i&&i.length>0;){const t=e.tokenizer[i];if(t)return t;const n=i.lastIndexOf(".");i=n<0?null:i.substr(0,n)}return null}var Ge=i(33108),Qe=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ze=function(e,t){return function(i,n){t(i,n,e)}};class Ye{constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}static create(e,t){return this._INSTANCE.create(e,t)}create(e,t){if(null!==e&&e.depth>=this._maxCacheDepth)return new Je(e,t);let i=Je.getStackElementId(e);i.length>0&&(i+="|"),i+=t;let n=this._entries[i];return n||(n=new Je(e,t),this._entries[i]=n,n)}}Ye._INSTANCE=new Ye(5);class Je{constructor(e,t){this.parent=e,this.state=t,this.depth=(this.parent?this.parent.depth:0)+1}static getStackElementId(e){let t="";for(;null!==e;)t.length>0&&(t+="|"),t+=e.state,e=e.parent;return t}static _equals(e,t){for(;null!==e&&null!==t;){if(e===t)return!0;if(e.state!==t.state)return!1;e=e.parent,t=t.parent}return null===e&&null===t}equals(e){return Je._equals(this,e)}push(e){return Ye.create(this,e)}pop(){return this.parent}popall(){let e=this;for(;e.parent;)e=e.parent;return e}switchTo(e){return Ye.create(this.parent,e)}}class Xe{constructor(e,t){this.languageId=e,this.state=t}equals(e){return this.languageId===e.languageId&&this.state.equals(e.state)}clone(){return this.state.clone()===this.state?this:new Xe(this.languageId,this.state)}}class et{constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}static create(e,t){return this._INSTANCE.create(e,t)}create(e,t){if(null!==t)return new tt(e,t);if(null!==e&&e.depth>=this._maxCacheDepth)return new tt(e,t);const i=Je.getStackElementId(e);let n=this._entries[i];return n||(n=new tt(e,null),this._entries[i]=n,n)}}et._INSTANCE=new et(5);class tt{constructor(e,t){this.stack=e,this.embeddedLanguageData=t}clone(){return(this.embeddedLanguageData?this.embeddedLanguageData.clone():null)===this.embeddedLanguageData?this:et.create(this.stack,this.embeddedLanguageData)}equals(e){return e instanceof tt&&(!!this.stack.equals(e.stack)&&(null===this.embeddedLanguageData&&null===e.embeddedLanguageData||null!==this.embeddedLanguageData&&null!==e.embeddedLanguageData&&this.embeddedLanguageData.equals(e.embeddedLanguageData)))}}class it{constructor(){this._tokens=[],this._languageId=null,this._lastTokenType=null,this._lastTokenLanguage=null}enterLanguage(e){this._languageId=e}emit(e,t){this._lastTokenType===t&&this._lastTokenLanguage===this._languageId||(this._lastTokenType=t,this._lastTokenLanguage=this._languageId,this._tokens.push(new u.WU(e,t,this._languageId)))}nestedLanguageTokenize(e,t,i,n){const o=i.languageId,s=i.state,r=u.RW.get(o);if(!r)return this.enterLanguage(o),this.emit(n,""),s;const a=r.tokenize(e,t,s);if(0!==n)for(const l of a.tokens)this._tokens.push(new u.WU(l.offset+n,l.type,l.language));else this._tokens=this._tokens.concat(a.tokens);return this._lastTokenType=null,this._lastTokenLanguage=null,this._languageId=null,a.endState}finalize(e){return new u.hG(this._tokens,e)}}class nt{constructor(e,t){this._languageService=e,this._theme=t,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}enterLanguage(e){this._currentLanguageId=this._languageService.languageIdCodec.encodeLanguageId(e)}emit(e,t){const i=this._theme.match(this._currentLanguageId,t);this._lastTokenMetadata!==i&&(this._lastTokenMetadata=i,this._tokens.push(e),this._tokens.push(i))}static _merge(e,t,i){const n=null!==e?e.length:0,o=t.length,s=null!==i?i.length:0;if(0===n&&0===o&&0===s)return new Uint32Array(0);if(0===n&&0===o)return i;if(0===o&&0===s)return e;const r=new Uint32Array(n+o+s);null!==e&&r.set(e);for(let a=0;a<o;a++)r[n+a]=t[a];return null!==i&&r.set(i,n+o),r}nestedLanguageTokenize(e,t,i,n){const o=i.languageId,s=i.state,r=u.RW.get(o);if(!r)return this.enterLanguage(o),this.emit(n,""),s;const a=r.tokenizeEncoded(e,t,s);if(0!==n)for(let l=0,c=a.tokens.length;l<c;l+=2)a.tokens[l]+=n;return this._prependTokens=nt._merge(this._prependTokens,this._tokens,a.tokens),this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0,a.endState}finalize(e){return new u.DI(nt._merge(this._prependTokens,this._tokens,null),e)}}let ot=class e{constructor(e,t,i,n,o){this._configurationService=o,this._languageService=e,this._standaloneThemeService=t,this._languageId=i,this._lexer=n,this._embeddedLanguages=Object.create(null),this.embeddedLoaded=Promise.resolve(void 0);let s=!1;this._tokenizationRegistryListener=u.RW.onDidChange((e=>{if(s)return;let t=!1;for(let i=0,n=e.changedLanguages.length;i<n;i++){const n=e.changedLanguages[i];if(this._embeddedLanguages[n]){t=!0;break}}t&&(s=!0,u.RW.fire([this._languageId]),s=!1)})),this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId}),this._configurationService.onDidChangeConfiguration((e=>{e.affectsConfiguration("editor.maxTokenizationLineLength")&&(this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId}))}))}dispose(){this._tokenizationRegistryListener.dispose()}getLoadStatus(){const t=[];for(const i in this._embeddedLanguages){const n=u.RW.get(i);if(n){if(n instanceof e){const e=n.getLoadStatus();!1===e.loaded&&t.push(e.promise)}}else u.RW.isResolved(i)||t.push(u.RW.getOrCreate(i))}return 0===t.length?{loaded:!0}:{loaded:!1,promise:Promise.all(t).then((e=>{}))}}getInitialState(){const e=Ye.create(null,this._lexer.start);return et.create(e,null)}tokenize(e,t,i){if(e.length>=this._maxTokenizationLineLength)return(0,L.Ri)(this._languageId,i);const n=new it,o=this._tokenize(e,t,i,n);return n.finalize(o)}tokenizeEncoded(e,t,i){if(e.length>=this._maxTokenizationLineLength)return(0,L.Dy)(this._languageService.languageIdCodec.encodeLanguageId(this._languageId),i);const n=new nt(this._languageService,this._standaloneThemeService.getColorTheme().tokenTheme),o=this._tokenize(e,t,i,n);return n.finalize(o)}_tokenize(e,t,i,n){return i.embeddedLanguageData?this._nestedTokenize(e,t,i,0,n):this._myTokenize(e,t,i,0,n)}_findLeavingNestedLanguageOffset(e,t){let i=this._lexer.tokenizer[t.stack.state];if(!i&&(i=qe(this._lexer,t.stack.state),!i))throw Ke(this._lexer,"tokenizer state is not defined: "+t.stack.state);let n=-1,o=!1;for(const s of i){if(!He(s.action)||"@pop"!==s.action.nextEmbedded)continue;o=!0;let t=s.regex;const i=s.regex.source;if("^(?:"===i.substr(0,4)&&")"===i.substr(i.length-1,1)){const e=(t.ignoreCase?"i":"")+(t.unicode?"u":"");t=new RegExp(i.substr(4,i.length-5),e)}const r=e.search(t);-1===r||0!==r&&s.matchOnlyAtLineStart||(-1===n||r<n)&&(n=r)}if(!o)throw Ke(this._lexer,'no rule containing nextEmbedded: "@pop" in tokenizer embedded state: '+t.stack.state);return n}_nestedTokenize(e,t,i,n,o){const s=this._findLeavingNestedLanguageOffset(e,i);if(-1===s){const s=o.nestedLanguageTokenize(e,t,i.embeddedLanguageData,n);return et.create(i.stack,new Xe(i.embeddedLanguageData.languageId,s))}const r=e.substring(0,s);r.length>0&&o.nestedLanguageTokenize(r,!1,i.embeddedLanguageData,n);const a=e.substring(s);return this._myTokenize(a,t,i,n+s,o)}_safeRuleName(e){return e?e.name:"(unknown)"}_myTokenize(e,t,i,n,o){o.enterLanguage(this._languageId);const s=e.length,r=t&&this._lexer.includeLF?e+"\n":e,a=r.length;let l=i.embeddedLanguageData,c=i.stack,d=0,h=null,u=!0;for(;u||d<a;){const i=d,m=c.depth,f=h?h.groups.length:0,_=c.state;let v=null,b=null,C=null,w=null,y=null;if(h){v=h.matches;const e=h.groups.shift();b=e.matched,C=e.action,w=h.rule,0===h.groups.length&&(h=null)}else{if(!u&&d>=a)break;u=!1;let e=this._lexer.tokenizer[_];if(!e&&(e=qe(this._lexer,_),!e))throw Ke(this._lexer,"tokenizer state is not defined: "+_);const t=r.substr(d);for(const i of e)if((0===d||!i.matchOnlyAtLineStart)&&(v=t.match(i.regex),v)){b=v[0],C=i.action;break}}if(v||(v=[""],b=""),C||(d<a&&(v=[r.charAt(d)],b=v[0]),C=this._lexer.defaultToken),null===b)break;for(d+=b.length;Ve(C)&&He(C)&&C.test;)C=C.test(b,v,_,d===a);let S=null;if("string"==typeof C||Array.isArray(C))S=C;else if(C.group)S=C.group;else if(null!==C.token&&void 0!==C.token){if(S=C.tokenSubst?$e(this._lexer,C.token,b,v,_):C.token,C.nextEmbedded)if("@pop"===C.nextEmbedded){if(!l)throw Ke(this._lexer,"cannot pop embedded language if not inside one");l=null}else{if(l)throw Ke(this._lexer,"cannot enter embedded language from within an embedded language");y=$e(this._lexer,C.nextEmbedded,b,v,_)}if(C.goBack&&(d=Math.max(0,d-C.goBack)),C.switchTo&&"string"==typeof C.switchTo){let e=$e(this._lexer,C.switchTo,b,v,_);if("@"===e[0]&&(e=e.substr(1)),!qe(this._lexer,e))throw Ke(this._lexer,"trying to switch to a state '"+e+"' that is undefined in rule: "+this._safeRuleName(w));c=c.switchTo(e)}else{if(C.transform&&"function"==typeof C.transform)throw Ke(this._lexer,"action.transform not supported");if(C.next)if("@push"===C.next){if(c.depth>=this._lexer.maxStack)throw Ke(this._lexer,"maximum tokenizer stack size reached: ["+c.state+","+c.parent.state+",...]");c=c.push(_)}else if("@pop"===C.next){if(c.depth<=1)throw Ke(this._lexer,"trying to pop an empty stack in rule: "+this._safeRuleName(w));c=c.pop()}else if("@popall"===C.next)c=c.popall();else{let e=$e(this._lexer,C.next,b,v,_);if("@"===e[0]&&(e=e.substr(1)),!qe(this._lexer,e))throw Ke(this._lexer,"trying to set a next state '"+e+"' that is undefined in rule: "+this._safeRuleName(w));c=c.push(e)}}C.log&&"string"==typeof C.log&&(g=this._lexer,p=this._lexer.languageId+": "+$e(this._lexer,C.log,b,v,_),console.log(`${g.languageId}: ${p}`))}if(null===S)throw Ke(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(w));const L=i=>{const s=this._languageService.getLanguageIdByLanguageName(i)||this._languageService.getLanguageIdByMimeType(i)||i,r=this._getNestedEmbeddedLanguageData(s);if(d<a){const i=e.substr(d);return this._nestedTokenize(i,t,et.create(c,r),n+d,o)}return et.create(c,r)};if(Array.isArray(S)){if(h&&h.groups.length>0)throw Ke(this._lexer,"groups cannot be nested: "+this._safeRuleName(w));if(v.length!==S.length+1)throw Ke(this._lexer,"matched number of groups does not match the number of actions in rule: "+this._safeRuleName(w));let e=0;for(let t=1;t<v.length;t++)e+=v[t].length;if(e!==b.length)throw Ke(this._lexer,"with groups, all characters should be matched in consecutive groups in rule: "+this._safeRuleName(w));h={rule:w,matches:v,groups:[]};for(let t=0;t<S.length;t++)h.groups[t]={action:S[t],matched:v[t+1]};d-=b.length}else{{if("@rematch"===S&&(d-=b.length,b="",v=null,S="",null!==y))return L(y);if(0===b.length){if(0===a||m!==c.depth||_!==c.state||(h?h.groups.length:0)!==f)continue;throw Ke(this._lexer,"no progress in tokenizer in rule: "+this._safeRuleName(w))}let e=null;if(We(S)&&0===S.indexOf("@brackets")){const t=S.substr("@brackets".length),i=st(this._lexer,b);if(!i)throw Ke(this._lexer,"@brackets token returned but no bracket defined as: "+b);e=Ue(i.token+t)}else{e=Ue(""===S?"":S+this._lexer.tokenPostfix)}i<s&&o.emit(i+n,e)}if(null!==y)return L(y)}}var g,p;return et.create(c,l)}_getNestedEmbeddedLanguageData(e){if(!this._languageService.isRegisteredLanguageId(e))return new Xe(e,L.TJ);e!==this._languageId&&(u.RW.getOrCreate(e),this._embeddedLanguages[e]=!0);const t=u.RW.get(e);return new Xe(e,t?t.getInitialState():L.TJ)}};function st(e,t){if(!t)return null;t=je(e,t);const i=e.brackets;for(const n of i){if(n.open===t)return{token:n.token,bracketType:1};if(n.close===t)return{token:n.token,bracketType:-1}}return null}ot=Qe([Ze(4,Ge.Ui)],ot);var rt,at=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const lt=null===(rt=window.trustedTypes)||void 0===rt?void 0:rt.createPolicy("standaloneColorizer",{createHTML:e=>e});class ct{static colorizeElement(e,t,i,n){const o=(n=n||{}).theme||"vs",s=n.mimeType||i.getAttribute("lang")||i.getAttribute("data-lang");if(!s)return console.error("Mode not detected"),Promise.resolve();const r=t.getLanguageIdByMimeType(s)||s;e.setTheme(o);const a=i.firstChild?i.firstChild.nodeValue:"";i.className+=" "+o;return this.colorize(t,a||"",r,n).then((e=>{var t;const n=null!==(t=null==lt?void 0:lt.createHTML(e))&&void 0!==t?t:e;i.innerHTML=n}),(e=>console.error(e)))}static colorize(e,t,i,n){return at(this,void 0,void 0,(function*(){const o=e.languageIdCodec;let s=4;n&&"number"==typeof n.tabSize&&(s=n.tabSize),f.uS(t)&&(t=t.substr(1));const r=f.uq(t);if(!e.isRegisteredLanguageId(i))return dt(r,s,o);const a=yield u.RW.getOrCreate(i);return a?function(e,t,i,n){return new Promise(((o,s)=>{const r=()=>{const a=function(e,t,i,n){let o=[],s=i.getInitialState();for(let r=0,a=e.length;r<a;r++){const a=e[r],l=i.tokenizeEncoded(a,!0,s);Pe.A.convertToEndOffset(l.tokens,a.length);const c=new Pe.A(l.tokens,a,n),d=Be.wA.isBasicASCII(a,!0),h=Be.wA.containsRTL(a,d,!0),u=(0,Fe.tF)(new Fe.IJ(!1,!0,a,!1,d,h,0,c.inflate(),[],t,0,0,0,0,-1,"none",!1,!1,null));o=o.concat(u.html),o.push("<br/>"),s=l.endState}return o.join("")}(e,t,i,n);if(i instanceof ot){const e=i.getLoadStatus();if(!1===e.loaded)return void e.promise.then(r,s)}o(a)};r()}))}(r,s,a,o):dt(r,s,o)}))}static colorizeLine(e,t,i,n,o=4){const s=Be.wA.isBasicASCII(e,t),r=Be.wA.containsRTL(e,s,i);return(0,Fe.tF)(new Fe.IJ(!1,!0,e,!1,s,r,0,n,[],o,0,0,0,0,-1,"none",!1,!1,null)).html}static colorizeModelLine(e,t,i=4){const n=e.getLineContent(t);e.tokenization.forceTokenization(t);const o=e.tokenization.getLineTokens(t).inflate();return this.colorizeLine(n,e.mightContainNonBasicASCII(),e.mightContainRTL(),o,i)}}function dt(e,t,i){let n=[];const o=new Uint32Array(2);o[0]=0,o[1]=33587200;for(let s=0,r=e.length;s<r;s++){const r=e[s];o[0]=r.length;const a=new Pe.A(o,r,i),l=Be.wA.isBasicASCII(r,!0),c=Be.wA.containsRTL(r,l,!0),d=(0,Fe.tF)(new Fe.IJ(!1,!0,r,!1,l,c,0,a,[],t,0,0,0,0,-1,"none",!1,!1,null));n=n.concat(d.html),n.push("<br/>")}return n.join("")}var ht=i(85152),ut=i(27982),gt=i(14869),pt=i(30653),mt=i(85215),ft=i(65321),_t=i(66663),vt=i(91741),bt=i(97781),Ct=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},wt=function(e,t){return function(i,n){t(i,n,e)}},yt=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let St=class extends N.JT{constructor(e){super(),this._themeService=e,this._onCodeEditorAdd=this._register(new r.Q5),this.onCodeEditorAdd=this._onCodeEditorAdd.event,this._onCodeEditorRemove=this._register(new r.Q5),this.onCodeEditorRemove=this._onCodeEditorRemove.event,this._onDiffEditorAdd=this._register(new r.Q5),this.onDiffEditorAdd=this._onDiffEditorAdd.event,this._onDiffEditorRemove=this._register(new r.Q5),this.onDiffEditorRemove=this._onDiffEditorRemove.event,this._decorationOptionProviders=new Map,this._codeEditorOpenHandlers=new vt.S,this._modelProperties=new Map,this._codeEditors=Object.create(null),this._diffEditors=Object.create(null),this._globalStyleSheet=null}addCodeEditor(e){this._codeEditors[e.getId()]=e,this._onCodeEditorAdd.fire(e)}removeCodeEditor(e){delete this._codeEditors[e.getId()]&&this._onCodeEditorRemove.fire(e)}listCodeEditors(){return Object.keys(this._codeEditors).map((e=>this._codeEditors[e]))}addDiffEditor(e){this._diffEditors[e.getId()]=e,this._onDiffEditorAdd.fire(e)}removeDiffEditor(e){delete this._diffEditors[e.getId()]&&this._onDiffEditorRemove.fire(e)}listDiffEditors(){return Object.keys(this._diffEditors).map((e=>this._diffEditors[e]))}getFocusedCodeEditor(){let e=null;const t=this.listCodeEditors();for(const i of t){if(i.hasTextFocus())return i;i.hasWidgetFocus()&&(e=i)}return e}removeDecorationType(e){const t=this._decorationOptionProviders.get(e);t&&(t.refCount--,t.refCount<=0&&(this._decorationOptionProviders.delete(e),t.dispose(),this.listCodeEditors().forEach((t=>t.removeDecorationsByType(e)))))}setModelProperty(e,t,i){const n=e.toString();let o;this._modelProperties.has(n)?o=this._modelProperties.get(n):(o=new Map,this._modelProperties.set(n,o)),o.set(t,i)}getModelProperty(e,t){const i=e.toString();if(this._modelProperties.has(i)){return this._modelProperties.get(i).get(t)}}openCodeEditor(e,t,i){return yt(this,void 0,void 0,(function*(){for(const n of this._codeEditorOpenHandlers){const o=yield n(e,t,i);if(null!==o)return o}return null}))}registerCodeEditorOpenHandler(e){const t=this._codeEditorOpenHandlers.unshift(e);return(0,N.OF)(t)}};St=Ct([wt(0,bt.XE)],St);var Lt=i(38819),kt=i(65026),xt=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Dt=function(e,t){return function(i,n){t(i,n,e)}},Nt=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let Et=class extends St{constructor(e,t){super(t),this.onCodeEditorAdd((()=>this._checkContextKey())),this.onCodeEditorRemove((()=>this._checkContextKey())),this._editorIsOpen=e.createKey("editorIsOpen",!1),this._activeCodeEditor=null,this.registerCodeEditorOpenHandler(((e,t,i)=>Nt(this,void 0,void 0,(function*(){return t?this.doOpenEditor(t,e):null}))))}_checkContextKey(){let e=!1;for(const t of this.listCodeEditors())if(!t.isSimpleWidget){e=!0;break}this._editorIsOpen.set(e)}setActiveCodeEditor(e){this._activeCodeEditor=e}getActiveCodeEditor(){return this._activeCodeEditor}doOpenEditor(e,t){if(!this.findModel(e,t.resource)){if(t.resource){const i=t.resource.scheme;if(i===_t.lg.http||i===_t.lg.https)return(0,ft.V3)(t.resource.toString()),e}return null}const i=t.options?t.options.selection:null;if(i)if("number"==typeof i.endLineNumber&&"number"==typeof i.endColumn)e.setSelection(i),e.revealRangeInCenter(i,1);else{const t={lineNumber:i.startLineNumber,column:i.startColumn};e.setPosition(t),e.revealPositionInCenter(t,1)}return e}findModel(e,t){const i=e.getModel();return i&&i.uri.toString()!==t.toString()?null:i}};Et=xt([Dt(0,Lt.i6),Dt(1,bt.XE)],Et),(0,kt.z)(v.$,Et);var It=i(72065);const Tt=(0,It.yh)("layoutService");var Mt=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},At=function(e,t){return function(i,n){t(i,n,e)}};let Rt=class{constructor(e){this._codeEditorService=e,this.onDidLayout=r.ju.None,this.offset={top:0,quickPickTop:0}}get dimension(){return this._dimension||(this._dimension=ft.D6(window.document.body)),this._dimension}get hasContainer(){return!1}get container(){throw new Error("ILayoutService.container is not available in the standalone editor!")}focus(){var e;null===(e=this._codeEditorService.getFocusedCodeEditor())||void 0===e||e.focus()}};Rt=Mt([At(0,v.$)],Rt);let Ot=class extends Rt{constructor(e,t){super(t),this._container=e}get hasContainer(){return!1}get container(){return this._container}};Ot=Mt([At(1,v.$)],Ot),(0,kt.z)(Tt,Rt);var Pt=i(14603),Ft=i(63580),Bt=i(28820),Vt=i(59422),Wt=i(64862),Ht=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},zt=function(e,t){return function(i,n){t(i,n,e)}},jt=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const Ut=!1;function Kt(e){return e.scheme===_t.lg.file?e.fsPath:e.path}let $t=0;class qt{constructor(e,t,i,n,o,s,r){this.id=++$t,this.type=0,this.actual=e,this.label=e.label,this.confirmBeforeUndo=e.confirmBeforeUndo||!1,this.resourceLabel=t,this.strResource=i,this.resourceLabels=[this.resourceLabel],this.strResources=[this.strResource],this.groupId=n,this.groupOrder=o,this.sourceId=s,this.sourceOrder=r,this.isValid=!0}setValid(e){this.isValid=e}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.isValid?" VALID":"INVALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class Gt{constructor(e,t){this.resourceLabel=e,this.reason=t}}class Qt{constructor(){this.elements=new Map}createMessage(){const e=[],t=[];for(const[,n]of this.elements){(0===n.reason?e:t).push(n.resourceLabel)}const i=[];return e.length>0&&i.push(Ft.NC({key:"externalRemoval",comment:["{0} is a list of filenames"]},"The following files have been closed and modified on disk: {0}.",e.join(", "))),t.length>0&&i.push(Ft.NC({key:"noParallelUniverses",comment:["{0} is a list of filenames"]},"The following files have been modified in an incompatible way: {0}.",t.join(", "))),i.join("\n")}get size(){return this.elements.size}has(e){return this.elements.has(e)}set(e,t){this.elements.set(e,t)}delete(e){return this.elements.delete(e)}}class Zt{constructor(e,t,i,n,o,s,r){this.id=++$t,this.type=1,this.actual=e,this.label=e.label,this.confirmBeforeUndo=e.confirmBeforeUndo||!1,this.resourceLabels=t,this.strResources=i,this.groupId=n,this.groupOrder=o,this.sourceId=s,this.sourceOrder=r,this.removedResources=null,this.invalidatedResources=null}canSplit(){return"function"==typeof this.actual.split}removeResource(e,t,i){this.removedResources||(this.removedResources=new Qt),this.removedResources.has(t)||this.removedResources.set(t,new Gt(e,i))}setValid(e,t,i){i?this.invalidatedResources&&(this.invalidatedResources.delete(t),0===this.invalidatedResources.size&&(this.invalidatedResources=null)):(this.invalidatedResources||(this.invalidatedResources=new Qt),this.invalidatedResources.has(t)||this.invalidatedResources.set(t,new Gt(e,0)))}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.invalidatedResources?"INVALID":" VALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class Yt{constructor(e,t){this.resourceLabel=e,this.strResource=t,this._past=[],this._future=[],this.locked=!1,this.versionId=1}dispose(){for(const e of this._past)1===e.type&&e.removeResource(this.resourceLabel,this.strResource,0);for(const e of this._future)1===e.type&&e.removeResource(this.resourceLabel,this.strResource,0);this.versionId++}toString(){const e=[];e.push(`* ${this.strResource}:`);for(let t=0;t<this._past.length;t++)e.push(` * [UNDO] ${this._past[t]}`);for(let t=this._future.length-1;t>=0;t--)e.push(` * [REDO] ${this._future[t]}`);return e.join("\n")}flushAllElements(){this._past=[],this._future=[],this.versionId++}_setElementValidFlag(e,t){1===e.type?e.setValid(this.resourceLabel,this.strResource,t):e.setValid(t)}setElementsValidFlag(e,t){for(const i of this._past)t(i.actual)&&this._setElementValidFlag(i,e);for(const i of this._future)t(i.actual)&&this._setElementValidFlag(i,e)}pushElement(e){for(const t of this._future)1===t.type&&t.removeResource(this.resourceLabel,this.strResource,1);this._future=[],this._past.push(e),this.versionId++}createSnapshot(e){const t=[];for(let i=0,n=this._past.length;i<n;i++)t.push(this._past[i].id);for(let i=this._future.length-1;i>=0;i--)t.push(this._future[i].id);return new Wt.YO(e,t)}restoreSnapshot(e){const t=e.elements.length;let i=!0,n=0,o=-1;for(let r=0,a=this._past.length;r<a;r++,n++){const s=this._past[r];i&&(n>=t||s.id!==e.elements[n])&&(i=!1,o=0),i||1!==s.type||s.removeResource(this.resourceLabel,this.strResource,0)}let s=-1;for(let r=this._future.length-1;r>=0;r--,n++){const o=this._future[r];i&&(n>=t||o.id!==e.elements[n])&&(i=!1,s=r),i||1!==o.type||o.removeResource(this.resourceLabel,this.strResource,0)}-1!==o&&(this._past=this._past.slice(0,o)),-1!==s&&(this._future=this._future.slice(s+1)),this.versionId++}getElements(){const e=[],t=[];for(const i of this._past)e.push(i.actual);for(const i of this._future)t.push(i.actual);return{past:e,future:t}}getClosestPastElement(){return 0===this._past.length?null:this._past[this._past.length-1]}getSecondClosestPastElement(){return this._past.length<2?null:this._past[this._past.length-2]}getClosestFutureElement(){return 0===this._future.length?null:this._future[this._future.length-1]}hasPastElements(){return this._past.length>0}hasFutureElements(){return this._future.length>0}splitPastWorkspaceElement(e,t){for(let i=this._past.length-1;i>=0;i--)if(this._past[i]===e){t.has(this.strResource)?this._past[i]=t.get(this.strResource):this._past.splice(i,1);break}this.versionId++}splitFutureWorkspaceElement(e,t){for(let i=this._future.length-1;i>=0;i--)if(this._future[i]===e){t.has(this.strResource)?this._future[i]=t.get(this.strResource):this._future.splice(i,1);break}this.versionId++}moveBackward(e){this._past.pop(),this._future.push(e),this.versionId++}moveForward(e){this._future.pop(),this._past.push(e),this.versionId++}}class Jt{constructor(e){this.editStacks=e,this._versionIds=[];for(let t=0,i=this.editStacks.length;t<i;t++)this._versionIds[t]=this.editStacks[t].versionId}isValid(){for(let e=0,t=this.editStacks.length;e<t;e++)if(this._versionIds[e]!==this.editStacks[e].versionId)return!1;return!0}}const Xt=new Yt("","");Xt.locked=!0;let ei=class{constructor(e,t){this._dialogService=e,this._notificationService=t,this._editStacks=new Map,this._uriComparisonKeyComputers=[]}getUriComparisonKey(e){for(const t of this._uriComparisonKeyComputers)if(t[0]===e.scheme)return t[1].getComparisonKey(e);return e.toString()}_print(e){console.log("------------------------------------"),console.log(`AFTER ${e}: `);const t=[];for(const i of this._editStacks)t.push(i[1].toString());console.log(t.join("\n"))}pushElement(e,t=Wt.Xt.None,i=Wt.gJ.None){if(0===e.type){const n=Kt(e.resource),o=this.getUriComparisonKey(e.resource);this._pushElement(new qt(e,n,o,t.id,t.nextOrder(),i.id,i.nextOrder()))}else{const n=new Set,o=[],s=[];for(const t of e.resources){const e=Kt(t),i=this.getUriComparisonKey(t);n.has(i)||(n.add(i),o.push(e),s.push(i))}1===o.length?this._pushElement(new qt(e,o[0],s[0],t.id,t.nextOrder(),i.id,i.nextOrder())):this._pushElement(new Zt(e,o,s,t.id,t.nextOrder(),i.id,i.nextOrder()))}}_pushElement(e){for(let t=0,i=e.strResources.length;t<i;t++){const i=e.resourceLabels[t],n=e.strResources[t];let o;this._editStacks.has(n)?o=this._editStacks.get(n):(o=new Yt(i,n),this._editStacks.set(n,o)),o.pushElement(e)}}getLastElement(e){const t=this.getUriComparisonKey(e);if(this._editStacks.has(t)){const e=this._editStacks.get(t);if(e.hasFutureElements())return null;const i=e.getClosestPastElement();return i?i.actual:null}return null}_splitPastWorkspaceElement(e,t){const i=e.actual.split(),n=new Map;for(const o of i){const e=Kt(o.resource),t=this.getUriComparisonKey(o.resource),i=new qt(o,e,t,0,0,0,0);n.set(i.strResource,i)}for(const o of e.strResources){if(t&&t.has(o))continue;this._editStacks.get(o).splitPastWorkspaceElement(e,n)}}_splitFutureWorkspaceElement(e,t){const i=e.actual.split(),n=new Map;for(const o of i){const e=Kt(o.resource),t=this.getUriComparisonKey(o.resource),i=new qt(o,e,t,0,0,0,0);n.set(i.strResource,i)}for(const o of e.strResources){if(t&&t.has(o))continue;this._editStacks.get(o).splitFutureWorkspaceElement(e,n)}}removeElements(e){const t="string"==typeof e?e:this.getUriComparisonKey(e);if(this._editStacks.has(t)){this._editStacks.get(t).dispose(),this._editStacks.delete(t)}}setElementsValidFlag(e,t,i){const n=this.getUriComparisonKey(e);if(this._editStacks.has(n)){this._editStacks.get(n).setElementsValidFlag(t,i)}}createSnapshot(e){const t=this.getUriComparisonKey(e);if(this._editStacks.has(t)){return this._editStacks.get(t).createSnapshot(e)}return new Wt.YO(e,[])}restoreSnapshot(e){const t=this.getUriComparisonKey(e.resource);if(this._editStacks.has(t)){const i=this._editStacks.get(t);i.restoreSnapshot(e),i.hasPastElements()||i.hasFutureElements()||(i.dispose(),this._editStacks.delete(t))}}getElements(e){const t=this.getUriComparisonKey(e);if(this._editStacks.has(t)){return this._editStacks.get(t).getElements()}return{past:[],future:[]}}_findClosestUndoElementWithSource(e){if(!e)return[null,null];let t=null,i=null;for(const[n,o]of this._editStacks){const s=o.getClosestPastElement();s&&(s.sourceId===e&&(!t||s.sourceOrder>t.sourceOrder)&&(t=s,i=n))}return[t,i]}canUndo(e){if(e instanceof Wt.gJ){const[,t]=this._findClosestUndoElementWithSource(e.id);return!!t}const t=this.getUriComparisonKey(e);if(this._editStacks.has(t)){return this._editStacks.get(t).hasPastElements()}return!1}_onError(e,t){(0,E.dL)(e);for(const i of t.strResources)this.removeElements(i);this._notificationService.error(e)}_acquireLocks(e){for(const t of e.editStacks)if(t.locked)throw new Error("Cannot acquire edit stack lock");for(const t of e.editStacks)t.locked=!0;return()=>{for(const t of e.editStacks)t.locked=!1}}_safeInvokeWithLocks(e,t,i,n,o){const s=this._acquireLocks(i);let r;try{r=t()}catch(a){return s(),n.dispose(),this._onError(a,e)}return r?r.then((()=>(s(),n.dispose(),o())),(t=>(s(),n.dispose(),this._onError(t,e)))):(s(),n.dispose(),o())}_invokeWorkspacePrepare(e){return jt(this,void 0,void 0,(function*(){if(void 0===e.actual.prepareUndoRedo)return N.JT.None;const t=e.actual.prepareUndoRedo();return void 0===t?N.JT.None:t}))}_invokeResourcePrepare(e,t){if(1!==e.actual.type||void 0===e.actual.prepareUndoRedo)return t(N.JT.None);const i=e.actual.prepareUndoRedo();return i?(0,N.Wf)(i)?t(i):i.then((e=>t(e))):t(N.JT.None)}_getAffectedEditStacks(e){const t=[];for(const i of e.strResources)t.push(this._editStacks.get(i)||Xt);return new Jt(t)}_tryToSplitAndUndo(e,t,i,n){if(t.canSplit())return this._splitPastWorkspaceElement(t,i),this._notificationService.warn(n),new ti(this._undo(e,0,!0));for(const o of t.strResources)this.removeElements(o);return this._notificationService.warn(n),new ti}_checkWorkspaceUndo(e,t,i,n){if(t.removedResources)return this._tryToSplitAndUndo(e,t,t.removedResources,Ft.NC({key:"cannotWorkspaceUndo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not undo '{0}' across all files. {1}",t.label,t.removedResources.createMessage()));if(n&&t.invalidatedResources)return this._tryToSplitAndUndo(e,t,t.invalidatedResources,Ft.NC({key:"cannotWorkspaceUndo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not undo '{0}' across all files. {1}",t.label,t.invalidatedResources.createMessage()));const o=[];for(const r of i.editStacks)r.getClosestPastElement()!==t&&o.push(r.resourceLabel);if(o.length>0)return this._tryToSplitAndUndo(e,t,null,Ft.NC({key:"cannotWorkspaceUndoDueToChanges",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because changes were made to {1}",t.label,o.join(", ")));const s=[];for(const r of i.editStacks)r.locked&&s.push(r.resourceLabel);return s.length>0?this._tryToSplitAndUndo(e,t,null,Ft.NC({key:"cannotWorkspaceUndoDueToInProgressUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,s.join(", "))):i.isValid()?null:this._tryToSplitAndUndo(e,t,null,Ft.NC({key:"cannotWorkspaceUndoDueToInMeantimeUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime",t.label))}_workspaceUndo(e,t,i){const n=this._getAffectedEditStacks(t),o=this._checkWorkspaceUndo(e,t,n,!1);return o?o.returnValue:this._confirmAndExecuteWorkspaceUndo(e,t,n,i)}_isPartOfUndoGroup(e){if(!e.groupId)return!1;for(const[,t]of this._editStacks){const i=t.getClosestPastElement();if(i){if(i===e){const i=t.getSecondClosestPastElement();if(i&&i.groupId===e.groupId)return!0}if(i.groupId===e.groupId)return!0}}return!1}_confirmAndExecuteWorkspaceUndo(e,t,i,n){return jt(this,void 0,void 0,(function*(){if(t.canSplit()&&!this._isPartOfUndoGroup(t)){const o=yield this._dialogService.show(Pt.Z.Info,Ft.NC("confirmWorkspace","Would you like to undo '{0}' across all files?",t.label),[Ft.NC({key:"ok",comment:["{0} denotes a number that is > 1"]},"Undo in {0} Files",i.editStacks.length),Ft.NC("nok","Undo this File"),Ft.NC("cancel","Cancel")],{cancelId:2});if(2===o.choice)return;if(1===o.choice)return this._splitPastWorkspaceElement(t,null),this._undo(e,0,!0);const s=this._checkWorkspaceUndo(e,t,i,!1);if(s)return s.returnValue;n=!0}let o;try{o=yield this._invokeWorkspacePrepare(t)}catch(r){return this._onError(r,t)}const s=this._checkWorkspaceUndo(e,t,i,!0);if(s)return o.dispose(),s.returnValue;for(const e of i.editStacks)e.moveBackward(t);return this._safeInvokeWithLocks(t,(()=>t.actual.undo()),i,o,(()=>this._continueUndoInGroup(t.groupId,n)))}))}_resourceUndo(e,t,i){if(t.isValid){if(!e.locked)return this._invokeResourcePrepare(t,(n=>(e.moveBackward(t),this._safeInvokeWithLocks(t,(()=>t.actual.undo()),new Jt([e]),n,(()=>this._continueUndoInGroup(t.groupId,i))))));{const e=Ft.NC({key:"cannotResourceUndoDueToInProgressUndoRedo",comment:["{0} is a label for an operation."]},"Could not undo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(e)}}else e.flushAllElements()}_findClosestUndoElementInGroup(e){if(!e)return[null,null];let t=null,i=null;for(const[n,o]of this._editStacks){const s=o.getClosestPastElement();s&&(s.groupId===e&&(!t||s.groupOrder>t.groupOrder)&&(t=s,i=n))}return[t,i]}_continueUndoInGroup(e,t){if(!e)return;const[,i]=this._findClosestUndoElementInGroup(e);return i?this._undo(i,0,t):void 0}undo(e){if(e instanceof Wt.gJ){const[,t]=this._findClosestUndoElementWithSource(e.id);return t?this._undo(t,e.id,!1):void 0}return"string"==typeof e?this._undo(e,0,!1):this._undo(this.getUriComparisonKey(e),0,!1)}_undo(e,t=0,i){if(!this._editStacks.has(e))return;const n=this._editStacks.get(e),o=n.getClosestPastElement();if(!o)return;if(o.groupId){const[e,n]=this._findClosestUndoElementInGroup(o.groupId);if(o!==e&&n)return this._undo(n,t,i)}if((o.sourceId!==t||o.confirmBeforeUndo)&&!i)return this._confirmAndContinueUndo(e,t,o);try{return 1===o.type?this._workspaceUndo(e,o,i):this._resourceUndo(n,o,i)}finally{Ut}}_confirmAndContinueUndo(e,t,i){return jt(this,void 0,void 0,(function*(){if(1!==(yield this._dialogService.show(Pt.Z.Info,Ft.NC("confirmDifferentSource","Would you like to undo '{0}'?",i.label),[Ft.NC("confirmDifferentSource.yes","Yes"),Ft.NC("confirmDifferentSource.no","No")],{cancelId:1})).choice)return this._undo(e,t,!0)}))}_findClosestRedoElementWithSource(e){if(!e)return[null,null];let t=null,i=null;for(const[n,o]of this._editStacks){const s=o.getClosestFutureElement();s&&(s.sourceId===e&&(!t||s.sourceOrder<t.sourceOrder)&&(t=s,i=n))}return[t,i]}canRedo(e){if(e instanceof Wt.gJ){const[,t]=this._findClosestRedoElementWithSource(e.id);return!!t}const t=this.getUriComparisonKey(e);if(this._editStacks.has(t)){return this._editStacks.get(t).hasFutureElements()}return!1}_tryToSplitAndRedo(e,t,i,n){if(t.canSplit())return this._splitFutureWorkspaceElement(t,i),this._notificationService.warn(n),new ti(this._redo(e));for(const o of t.strResources)this.removeElements(o);return this._notificationService.warn(n),new ti}_checkWorkspaceRedo(e,t,i,n){if(t.removedResources)return this._tryToSplitAndRedo(e,t,t.removedResources,Ft.NC({key:"cannotWorkspaceRedo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not redo '{0}' across all files. {1}",t.label,t.removedResources.createMessage()));if(n&&t.invalidatedResources)return this._tryToSplitAndRedo(e,t,t.invalidatedResources,Ft.NC({key:"cannotWorkspaceRedo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not redo '{0}' across all files. {1}",t.label,t.invalidatedResources.createMessage()));const o=[];for(const r of i.editStacks)r.getClosestFutureElement()!==t&&o.push(r.resourceLabel);if(o.length>0)return this._tryToSplitAndRedo(e,t,null,Ft.NC({key:"cannotWorkspaceRedoDueToChanges",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because changes were made to {1}",t.label,o.join(", ")));const s=[];for(const r of i.editStacks)r.locked&&s.push(r.resourceLabel);return s.length>0?this._tryToSplitAndRedo(e,t,null,Ft.NC({key:"cannotWorkspaceRedoDueToInProgressUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,s.join(", "))):i.isValid()?null:this._tryToSplitAndRedo(e,t,null,Ft.NC({key:"cannotWorkspaceRedoDueToInMeantimeUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime",t.label))}_workspaceRedo(e,t){const i=this._getAffectedEditStacks(t),n=this._checkWorkspaceRedo(e,t,i,!1);return n?n.returnValue:this._executeWorkspaceRedo(e,t,i)}_executeWorkspaceRedo(e,t,i){return jt(this,void 0,void 0,(function*(){let n;try{n=yield this._invokeWorkspacePrepare(t)}catch(s){return this._onError(s,t)}const o=this._checkWorkspaceRedo(e,t,i,!0);if(o)return n.dispose(),o.returnValue;for(const e of i.editStacks)e.moveForward(t);return this._safeInvokeWithLocks(t,(()=>t.actual.redo()),i,n,(()=>this._continueRedoInGroup(t.groupId)))}))}_resourceRedo(e,t){if(t.isValid){if(!e.locked)return this._invokeResourcePrepare(t,(i=>(e.moveForward(t),this._safeInvokeWithLocks(t,(()=>t.actual.redo()),new Jt([e]),i,(()=>this._continueRedoInGroup(t.groupId))))));{const e=Ft.NC({key:"cannotResourceRedoDueToInProgressUndoRedo",comment:["{0} is a label for an operation."]},"Could not redo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(e)}}else e.flushAllElements()}_findClosestRedoElementInGroup(e){if(!e)return[null,null];let t=null,i=null;for(const[n,o]of this._editStacks){const s=o.getClosestFutureElement();s&&(s.groupId===e&&(!t||s.groupOrder<t.groupOrder)&&(t=s,i=n))}return[t,i]}_continueRedoInGroup(e){if(!e)return;const[,t]=this._findClosestRedoElementInGroup(e);return t?this._redo(t):void 0}redo(e){if(e instanceof Wt.gJ){const[,t]=this._findClosestRedoElementWithSource(e.id);return t?this._redo(t):void 0}return"string"==typeof e?this._redo(e):this._redo(this.getUriComparisonKey(e))}_redo(e){if(!this._editStacks.has(e))return;const t=this._editStacks.get(e),i=t.getClosestFutureElement();if(i){if(i.groupId){const[e,t]=this._findClosestRedoElementInGroup(i.groupId);if(i!==e&&t)return this._redo(t)}try{return 1===i.type?this._workspaceRedo(e,i):this._resourceRedo(t,i)}finally{Ut}}}};ei=Ht([zt(0,Bt.S),zt(1,Vt.lT)],ei);class ti{constructor(e){this.returnValue=e}}(0,kt.z)(Wt.tJ,ei);i(88191);var ii=i(59069),ni=i(8313),oi=i(66007),si=i(800),ri=i(69386),ai=i(88216),li=i(94565),ci=i(43702),di=i(36248);class hi{constructor(e={},t=[],i=[]){this._contents=e,this._keys=t,this._overrides=i,this.frozen=!1,this.overrideConfigurations=new Map}get contents(){return this.checkAndFreeze(this._contents)}get overrides(){return this.checkAndFreeze(this._overrides)}get keys(){return this.checkAndFreeze(this._keys)}isEmpty(){return 0===this._keys.length&&0===Object.keys(this._contents).length&&0===this._overrides.length}getValue(e){return e?(0,Ge.Mt)(this.contents,e):this.contents}getOverrideValue(e,t){const i=this.getContentsForOverrideIdentifer(t);return i?e?(0,Ge.Mt)(i,e):i:void 0}override(e){let t=this.overrideConfigurations.get(e);return t||(t=this.createOverrideConfigurationModel(e),this.overrideConfigurations.set(e,t)),t}merge(...e){const t=di.I8(this.contents),i=di.I8(this.overrides),n=[...this.keys];for(const o of e)if(!o.isEmpty()){this.mergeContents(t,o.contents);for(const e of o.overrides){const[t]=i.filter((t=>Ce.fS(t.identifiers,e.identifiers)));t?(this.mergeContents(t.contents,e.contents),t.keys.push(...e.keys),t.keys=Ce.EB(t.keys)):i.push(di.I8(e))}for(const e of o.keys)-1===n.indexOf(e)&&n.push(e)}return new hi(t,n,i)}freeze(){return this.frozen=!0,this}createOverrideConfigurationModel(e){const t=this.getContentsForOverrideIdentifer(e);if(!t||"object"!=typeof t||!Object.keys(t).length)return this;const i={};for(const n of Ce.EB([...Object.keys(this.contents),...Object.keys(t)])){let e=this.contents[n];const o=t[n];o&&("object"==typeof e&&"object"==typeof o?(e=di.I8(e),this.mergeContents(e,o)):e=o),i[n]=e}return new hi(i,this.keys,this.overrides)}mergeContents(e,t){for(const i of Object.keys(t))i in e&&T.Kn(e[i])&&T.Kn(t[i])?this.mergeContents(e[i],t[i]):e[i]=di.I8(t[i])}checkAndFreeze(e){return this.frozen&&!Object.isFrozen(e)?di._A(e):e}getContentsForOverrideIdentifer(e){let t=null,i=null;const n=e=>{e&&(i?this.mergeContents(i,e):i=di.I8(e))};for(const o of this.overrides)Ce.fS(o.identifiers,[e])?t=o.contents:o.identifiers.includes(e)&&n(o.contents);return n(t),i}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}setValue(e,t){this.addKey(e),(0,Ge.KV)(this.contents,e,t,(e=>{throw new Error(e)}))}removeValue(e){this.removeKey(e)&&(0,Ge.xL)(this.contents,e)}addKey(e){let t=this.keys.length;for(let i=0;i<t;i++)0===e.indexOf(this.keys[i])&&(t=i);this.keys.splice(t,1,e)}removeKey(e){const t=this.keys.indexOf(e);return-1!==t&&(this.keys.splice(t,1),!0)}}class ui{constructor(e,t,i,n,o=new hi,s=new hi,r=new ci.Y9,a=new hi,l=new ci.Y9,c=!0){this._defaultConfiguration=e,this._policyConfiguration=t,this._applicationConfiguration=i,this._localUserConfiguration=n,this._remoteUserConfiguration=o,this._workspaceConfiguration=s,this._folderConfigurations=r,this._memoryConfiguration=a,this._memoryConfigurationByResource=l,this._freeze=c,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new ci.Y9,this._userConfiguration=null}getValue(e,t,i){return this.getConsolidatedConfigurationModel(e,t,i).getValue(e)}updateValue(e,t,i={}){let n;i.resource?(n=this._memoryConfigurationByResource.get(i.resource),n||(n=new hi,this._memoryConfigurationByResource.set(i.resource,n))):n=this._memoryConfiguration,void 0===t?n.removeValue(e):n.setValue(e,t),i.resource||(this._workspaceConsolidatedConfiguration=null)}inspect(e,t,i){const n=this.getConsolidatedConfigurationModel(e,t,i),o=this.getFolderConfigurationModelForResource(t.resource,i),s=t.resource&&this._memoryConfigurationByResource.get(t.resource)||this._memoryConfiguration,r=t.overrideIdentifier?this._defaultConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this._defaultConfiguration.freeze().getValue(e),a=this._policyConfiguration.isEmpty()?void 0:this._policyConfiguration.freeze().getValue(e),l=this.applicationConfiguration.isEmpty()?void 0:this.applicationConfiguration.freeze().getValue(e),c=t.overrideIdentifier?this.userConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this.userConfiguration.freeze().getValue(e),d=t.overrideIdentifier?this.localUserConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this.localUserConfiguration.freeze().getValue(e),h=t.overrideIdentifier?this.remoteUserConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this.remoteUserConfiguration.freeze().getValue(e),u=i?t.overrideIdentifier?this._workspaceConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this._workspaceConfiguration.freeze().getValue(e):void 0,g=o?t.overrideIdentifier?o.freeze().override(t.overrideIdentifier).getValue(e):o.freeze().getValue(e):void 0,p=t.overrideIdentifier?s.override(t.overrideIdentifier).getValue(e):s.getValue(e),m=n.getValue(e),f=Ce.EB(n.overrides.map((e=>e.identifiers)).flat()).filter((t=>void 0!==n.getOverrideValue(e,t)));return{defaultValue:r,policyValue:a,applicationValue:l,userValue:c,userLocalValue:d,userRemoteValue:h,workspaceValue:u,workspaceFolderValue:g,memoryValue:p,value:m,default:void 0!==r?{value:this._defaultConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this._defaultConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,policy:void 0!==a?{value:a}:void 0,application:void 0!==l?{value:l,override:t.overrideIdentifier?this.applicationConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,user:void 0!==c?{value:this.userConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this.userConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,userLocal:void 0!==d?{value:this.localUserConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this.localUserConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,userRemote:void 0!==h?{value:this.remoteUserConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this.remoteUserConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,workspace:void 0!==u?{value:this._workspaceConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this._workspaceConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,workspaceFolder:void 0!==g?{value:null==o?void 0:o.freeze().getValue(e),override:t.overrideIdentifier?null==o?void 0:o.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,memory:void 0!==p?{value:s.getValue(e),override:t.overrideIdentifier?s.getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,overrideIdentifiers:f.length?f:void 0}}get applicationConfiguration(){return this._applicationConfiguration}get userConfiguration(){return this._userConfiguration||(this._userConfiguration=this._remoteUserConfiguration.isEmpty()?this._localUserConfiguration:this._localUserConfiguration.merge(this._remoteUserConfiguration),this._freeze&&this._userConfiguration.freeze()),this._userConfiguration}get localUserConfiguration(){return this._localUserConfiguration}get remoteUserConfiguration(){return this._remoteUserConfiguration}getConsolidatedConfigurationModel(e,t,i){let n=this.getConsolidatedConfigurationModelForResource(t,i);return t.overrideIdentifier&&(n=n.override(t.overrideIdentifier)),this._policyConfiguration.isEmpty()||void 0===this._policyConfiguration.getValue(e)||(n=n.merge(this._policyConfiguration)),n}getConsolidatedConfigurationModelForResource({resource:e},t){let i=this.getWorkspaceConsolidatedConfiguration();if(t&&e){const n=t.getFolder(e);n&&(i=this.getFolderConsolidatedConfiguration(n.uri)||i);const o=this._memoryConfigurationByResource.get(e);o&&(i=i.merge(o))}return i}getWorkspaceConsolidatedConfiguration(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.applicationConfiguration,this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration),this._freeze&&(this._workspaceConfiguration=this._workspaceConfiguration.freeze())),this._workspaceConsolidatedConfiguration}getFolderConsolidatedConfiguration(e){let t=this._foldersConsolidatedConfigurations.get(e);if(!t){const i=this.getWorkspaceConsolidatedConfiguration(),n=this._folderConfigurations.get(e);n?(t=i.merge(n),this._freeze&&(t=t.freeze()),this._foldersConsolidatedConfigurations.set(e,t)):t=i}return t}getFolderConfigurationModelForResource(e,t){if(t&&e){const i=t.getFolder(e);if(i)return this._folderConfigurations.get(i.uri)}}toData(){return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},policy:{contents:this._policyConfiguration.contents,overrides:this._policyConfiguration.overrides,keys:this._policyConfiguration.keys},application:{contents:this.applicationConfiguration.contents,overrides:this.applicationConfiguration.overrides,keys:this.applicationConfiguration.keys},user:{contents:this.userConfiguration.contents,overrides:this.userConfiguration.overrides,keys:this.userConfiguration.keys},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:[...this._folderConfigurations.keys()].reduce(((e,t)=>{const{contents:i,overrides:n,keys:o}=this._folderConfigurations.get(t);return e.push([t,{contents:i,overrides:n,keys:o}]),e}),[])}}static parse(e){const t=this.parseConfigurationModel(e.defaults),i=this.parseConfigurationModel(e.policy),n=this.parseConfigurationModel(e.application),o=this.parseConfigurationModel(e.user),s=this.parseConfigurationModel(e.workspace),r=e.folders.reduce(((e,t)=>(e.set(l.o.revive(t[0]),this.parseConfigurationModel(t[1])),e)),new ci.Y9);return new ui(t,i,n,o,new hi,s,r,new hi,new ci.Y9,!1)}static parseConfigurationModel(e){return new hi(e.contents,e.keys,e.overrides).freeze()}}class gi{constructor(e,t,i,n){this.change=e,this.previous=t,this.currentConfiguraiton=i,this.currentWorkspace=n,this._previousConfiguration=void 0;const o=new Set;e.keys.forEach((e=>o.add(e))),e.overrides.forEach((([,e])=>e.forEach((e=>o.add(e))))),this.affectedKeys=[...o.values()];const s=new hi;this.affectedKeys.forEach((e=>s.setValue(e,{}))),this.affectedKeysTree=s.contents}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=ui.parse(this.previous.data)),this._previousConfiguration}affectsConfiguration(e,t){var i;if(this.doesAffectedKeysTreeContains(this.affectedKeysTree,e)){if(t){const n=this.previousConfiguration?this.previousConfiguration.getValue(e,t,null===(i=this.previous)||void 0===i?void 0:i.workspace):void 0,o=this.currentConfiguraiton.getValue(e,t,this.currentWorkspace);return!di.fS(n,o)}return!0}return!1}doesAffectedKeysTreeContains(e,t){let i,n=(0,Ge.Od)({[t]:!0},(()=>{}));for(;"object"==typeof n&&(i=Object.keys(n)[0]);){if(!(e=e[i]))return!1;n=n[i]}return!0}}const pi=/^(cursor|delete)/;class mi extends N.JT{constructor(e,t,i,n,o){super(),this._contextKeyService=e,this._commandService=t,this._telemetryService=i,this._notificationService=n,this._logService=o,this._onDidUpdateKeybindings=this._register(new r.Q5),this._currentChord=null,this._currentChordChecker=new D.zh,this._currentChordStatusMessage=null,this._ignoreSingleModifiers=fi.EMPTY,this._currentSingleModifier=null,this._currentSingleModifierClearTimeout=new D._F,this._logging=!1}get onDidUpdateKeybindings(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:r.ju.None}dispose(){super.dispose()}_log(e){this._logging&&this._logService.info(`[KeybindingService]: ${e}`)}getKeybindings(){return this._getResolver().getKeybindings()}lookupKeybinding(e,t){const i=this._getResolver().lookupPrimaryKeybinding(e,t||this._contextKeyService);if(i)return i.resolvedKeybinding}dispatchEvent(e,t){return this._dispatch(e,t)}softDispatch(e,t){this._log("/ Soft dispatching keyboard event");const i=this.resolveKeyboardEvent(e);if(i.isChord())return console.warn("Unexpected keyboard event mapped to a chord"),null;const[n]=i.getDispatchParts();if(null===n)return this._log("\\ Keyboard event cannot be dispatched"),null;const o=this._contextKeyService.getContext(t),s=this._currentChord?this._currentChord.keypress:null;return this._getResolver().resolve(o,s,n)}_enterChordMode(e,t){this._currentChord={keypress:e,label:t},this._currentChordStatusMessage=this._notificationService.status(Ft.NC("first.chord","({0}) was pressed. Waiting for second key of chord...",t));const i=Date.now();this._currentChordChecker.cancelAndSet((()=>{this._documentHasFocus()?Date.now()-i>5e3&&this._leaveChordMode():this._leaveChordMode()}),500)}_leaveChordMode(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),this._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChord=null}_dispatch(e,t){return this._doDispatch(this.resolveKeyboardEvent(e),t,!1)}_singleModifierDispatch(e,t){const i=this.resolveKeyboardEvent(e),[n]=i.getSingleModifierDispatchParts();if(n)return this._ignoreSingleModifiers.has(n)?(this._log(`+ Ignoring single modifier ${n} due to it being pressed together with other keys.`),this._ignoreSingleModifiers=fi.EMPTY,this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1):(this._ignoreSingleModifiers=fi.EMPTY,null===this._currentSingleModifier?(this._log(`+ Storing single modifier for possible chord ${n}.`),this._currentSingleModifier=n,this._currentSingleModifierClearTimeout.cancelAndSet((()=>{this._log("+ Clearing single modifier due to 300ms elapsed."),this._currentSingleModifier=null}),300),!1):n===this._currentSingleModifier?(this._log(`/ Dispatching single modifier chord ${n} ${n}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,this._doDispatch(i,t,!0)):(this._log(`+ Clearing single modifier due to modifier mismatch: ${this._currentSingleModifier} ${n}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1));const[o]=i.getParts();return this._ignoreSingleModifiers=new fi(o),null!==this._currentSingleModifier&&this._log("+ Clearing single modifier due to other key up."),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1}_doDispatch(e,t,i=!1){let n=!1;if(e.isChord())return console.warn("Unexpected keyboard event mapped to a chord"),!1;let o=null,s=null;if(i){const[t]=e.getSingleModifierDispatchParts();o=t,s=t}else[o]=e.getDispatchParts(),s=this._currentChord?this._currentChord.keypress:null;if(null===o)return this._log("\\ Keyboard event cannot be dispatched in keydown phase."),n;const r=this._contextKeyService.getContext(t),a=e.getLabel(),l=this._getResolver().resolve(r,s,o);return this._logService.trace("KeybindingService#dispatch",a,null==l?void 0:l.commandId),l&&l.enterChord?(n=!0,this._enterChordMode(o,a),this._log("+ Entering chord mode..."),n):(this._currentChord&&(l&&l.commandId||(this._log(`+ Leaving chord mode: Nothing bound to "${this._currentChord.label} ${a}".`),this._notificationService.status(Ft.NC("missing.chord","The key combination ({0}, {1}) is not a command.",this._currentChord.label,a),{hideAfter:1e4}),n=!0)),this._leaveChordMode(),l&&l.commandId&&(l.bubble||(n=!0),this._log(`+ Invoking command ${l.commandId}.`),void 0===l.commandArgs?this._commandService.executeCommand(l.commandId).then(void 0,(e=>this._notificationService.warn(e))):this._commandService.executeCommand(l.commandId,l.commandArgs).then(void 0,(e=>this._notificationService.warn(e))),pi.test(l.commandId)||this._telemetryService.publicLog2("workbenchActionExecuted",{id:l.commandId,from:"keybinding"})),n)}mightProducePrintableCharacter(e){return!e.ctrlKey&&!e.metaKey&&(e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30)}}class fi{constructor(e){this._ctrlKey=!!e&&e.ctrlKey,this._shiftKey=!!e&&e.shiftKey,this._altKey=!!e&&e.altKey,this._metaKey=!!e&&e.metaKey}has(e){switch(e){case"ctrl":return this._ctrlKey;case"shift":return this._shiftKey;case"alt":return this._altKey;case"meta":return this._metaKey}}}fi.EMPTY=new fi(null);var _i=i(91847);class vi{constructor(e,t,i){this._log=i,this._defaultKeybindings=e,this._defaultBoundCommands=new Map;for(const n of e){const e=n.command;e&&"-"!==e.charAt(0)&&this._defaultBoundCommands.set(e,!0)}this._map=new Map,this._lookupMap=new Map,this._keybindings=vi.handleRemovals([].concat(e).concat(t));for(let n=0,o=this._keybindings.length;n<o;n++){const e=this._keybindings[n];0!==e.keypressParts.length&&(e.when&&0===e.when.type||this._addKeyPress(e.keypressParts[0],e))}}static _isTargetedForRemoval(e,t,i,n){if(t&&e.keypressParts[0]!==t)return!1;if(i&&e.keypressParts[1]!==i)return!1;if(n){if(!e.when)return!1;if(!(0,Lt.Fb)(n,e.when))return!1}return!0}static handleRemovals(e){const t=new Map;for(let n=0,o=e.length;n<o;n++){const i=e[n];if(i.command&&"-"===i.command.charAt(0)){const e=i.command.substring(1);t.has(e)?t.get(e).push(i):t.set(e,[i])}}if(0===t.size)return e;const i=[];for(let n=0,o=e.length;n<o;n++){const o=e[n];if(!o.command||0===o.command.length){i.push(o);continue}if("-"===o.command.charAt(0))continue;const s=t.get(o.command);if(!s||!o.isDefault){i.push(o);continue}let r=!1;for(const e of s){const t=e.keypressParts[0],i=e.keypressParts[1],n=e.when;if(this._isTargetedForRemoval(o,t,i,n)){r=!0;break}}r||i.push(o)}return i}_addKeyPress(e,t){const i=this._map.get(e);if(void 0===i)return this._map.set(e,[t]),void this._addToLookupMap(t);for(let n=i.length-1;n>=0;n--){const e=i[n];if(e.command===t.command)continue;const o=e.keypressParts.length>1,s=t.keypressParts.length>1;o&&s&&e.keypressParts[1]!==t.keypressParts[1]||vi.whenIsEntirelyIncluded(e.when,t.when)&&this._removeFromLookupMap(e)}i.push(t),this._addToLookupMap(t)}_addToLookupMap(e){if(!e.command)return;let t=this._lookupMap.get(e.command);void 0===t?(t=[e],this._lookupMap.set(e.command,t)):t.push(e)}_removeFromLookupMap(e){if(!e.command)return;const t=this._lookupMap.get(e.command);if(void 0!==t)for(let i=0,n=t.length;i<n;i++)if(t[i]===e)return void t.splice(i,1)}static whenIsEntirelyIncluded(e,t){return!t||1===t.type||!(!e||1===e.type)&&(0,Lt.K8)(e,t)}getKeybindings(){return this._keybindings}lookupPrimaryKeybinding(e,t){const i=this._lookupMap.get(e);if(void 0===i||0===i.length)return null;if(1===i.length)return i[0];for(let n=i.length-1;n>=0;n--){const e=i[n];if(t.contextMatchesRules(e.when))return e}return i[i.length-1]}resolve(e,t,i){this._log(`| Resolving ${i}${t?` chorded from ${t}`:""}`);let n=null;if(null!==t){const e=this._map.get(t);if(void 0===e)return this._log("\\ No keybinding entries."),null;n=[];for(let t=0,o=e.length;t<o;t++){const o=e[t];o.keypressParts[1]===i&&n.push(o)}}else{const e=this._map.get(i);if(void 0===e)return this._log("\\ No keybinding entries."),null;n=e}const o=this._findCommand(e,n);return o?null===t&&o.keypressParts.length>1&&null!==o.keypressParts[1]?(this._log(`\\ From ${n.length} keybinding entries, matched chord, when: ${bi(o.when)}, source: ${Ci(o)}.`),{enterChord:!0,leaveChord:!1,commandId:null,commandArgs:null,bubble:!1}):(this._log(`\\ From ${n.length} keybinding entries, matched ${o.command}, when: ${bi(o.when)}, source: ${Ci(o)}.`),{enterChord:!1,leaveChord:o.keypressParts.length>1,commandId:o.command,commandArgs:o.commandArgs,bubble:o.bubble}):(this._log(`\\ From ${n.length} keybinding entries, no when clauses matched the context.`),null)}_findCommand(e,t){for(let i=t.length-1;i>=0;i--){const n=t[i];if(vi._contextMatchesRules(e,n.when))return n}return null}static _contextMatchesRules(e,t){return!t||t.evaluate(e)}}function bi(e){return e?`${e.serialize()}`:"no when condition"}function Ci(e){return e.extensionId?e.isBuiltinExtension?`built-in extension ${e.extensionId}`:`user extension ${e.extensionId}`:e.isDefault?"built-in":"user"}var wi=i(49989);class yi{constructor(e,t,i,n,o,s,r){this._resolvedKeybindingItemBrand=void 0,this.resolvedKeybinding=e,this.keypressParts=e?Si(e.getDispatchParts()):[],e&&0===this.keypressParts.length&&(this.keypressParts=Si(e.getSingleModifierDispatchParts())),this.bubble=!!t&&94===t.charCodeAt(0),this.command=this.bubble?t.substr(1):t,this.commandArgs=i,this.when=n,this.isDefault=o,this.extensionId=s,this.isBuiltinExtension=r}}function Si(e){const t=[];for(let i=0,n=e.length;i<n;i++){const n=e[i];if(!n)return t;t.push(n)}return t}var Li=i(8030);class ki extends ni.f1{constructor(e,t){if(super(),0===t.length)throw(0,E.b1)("parts");this._os=e,this._parts=t}getLabel(){return Li.xo.toLabel(this._os,this._parts,(e=>this._getLabel(e)))}getAriaLabel(){return Li.X4.toLabel(this._os,this._parts,(e=>this._getAriaLabel(e)))}getElectronAccelerator(){return this._parts.length>1||this._parts[0].isDuplicateModifierCase()?null:Li.jC.toLabel(this._os,this._parts,(e=>this._getElectronAccelerator(e)))}isChord(){return this._parts.length>1}getParts(){return this._parts.map((e=>this._getPart(e)))}_getPart(e){return new ni.BQ(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,this._getLabel(e),this._getAriaLabel(e))}getDispatchParts(){return this._parts.map((e=>this._getDispatchPart(e)))}getSingleModifierDispatchParts(){return this._parts.map((e=>this._getSingleModifierDispatchPart(e)))}}class xi extends ki{constructor(e,t){super(t,e.parts)}_keyCodeToUILabel(e){if(2===this._os)switch(e){case 15:return"\u2190";case 16:return"\u2191";case 17:return"\u2192";case 18:return"\u2193"}return a.kL.toString(e)}_getLabel(e){return e.isDuplicateModifierCase()?"":this._keyCodeToUILabel(e.keyCode)}_getAriaLabel(e){return e.isDuplicateModifierCase()?"":a.kL.toString(e.keyCode)}_getElectronAccelerator(e){return a.kL.toElectronAccelerator(e.keyCode)}_getDispatchPart(e){return xi.getDispatchStr(e)}static getDispatchStr(e){if(e.isModifierKey())return null;let t="";return e.ctrlKey&&(t+="ctrl+"),e.shiftKey&&(t+="shift+"),e.altKey&&(t+="alt+"),e.metaKey&&(t+="meta+"),t+=a.kL.toString(e.keyCode),t}_getSingleModifierDispatchPart(e){return 5!==e.keyCode||e.shiftKey||e.altKey||e.metaKey?4!==e.keyCode||e.ctrlKey||e.altKey||e.metaKey?6!==e.keyCode||e.ctrlKey||e.shiftKey||e.metaKey?57!==e.keyCode||e.ctrlKey||e.shiftKey||e.altKey?null:"meta":"alt":"shift":"ctrl"}static _scanCodeToKeyCode(e){const t=a.Vd[e];if(-1!==t)return t;switch(e){case 10:return 31;case 11:return 32;case 12:return 33;case 13:return 34;case 14:return 35;case 15:return 36;case 16:return 37;case 17:return 38;case 18:return 39;case 19:return 40;case 20:return 41;case 21:return 42;case 22:return 43;case 23:return 44;case 24:return 45;case 25:return 46;case 26:return 47;case 27:return 48;case 28:return 49;case 29:return 50;case 30:return 51;case 31:return 52;case 32:return 53;case 33:return 54;case 34:return 55;case 35:return 56;case 36:return 22;case 37:return 23;case 38:return 24;case 39:return 25;case 40:return 26;case 41:return 27;case 42:return 28;case 43:return 29;case 44:return 30;case 45:return 21;case 51:return 83;case 52:return 81;case 53:return 87;case 54:return 89;case 55:return 88;case 56:return 0;case 57:return 80;case 58:return 90;case 59:return 86;case 60:return 82;case 61:return 84;case 62:return 85;case 106:return 92}return 0}static _resolveSimpleUserBinding(e){if(!e)return null;if(e instanceof ni.QC)return e;const t=this._scanCodeToKeyCode(e.scanCode);return 0===t?null:new ni.QC(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,t)}static resolveUserBinding(e,t){const i=Si(e.map((e=>this._resolveSimpleUserBinding(e))));return i.length>0?[new xi(new ni.X_(i),t)]:[]}}var Di,Ni=i(44349),Ei=i(90535),Ii=i(10829),Ti=i(40382),Mi=i(20913),Ai=i(95935),Ri=i(33425),Oi=i(5606),Pi=i(10161),Fi=i(61134);function Bi(e,t,i){const n=i.mode===Di.ALIGN?i.offset:i.offset+i.size,o=i.mode===Di.ALIGN?i.offset+i.size:i.offset;return 0===i.position?t<=e-n?n:t<=o?o-t:Math.max(e-t,0):t<=o?o-t:t<=e-n?n:0}!function(e){e[e.AVOID=0]="AVOID",e[e.ALIGN=1]="ALIGN"}(Di||(Di={}));class Vi extends N.JT{constructor(e,t){super(),this.container=null,this.delegate=null,this.toDisposeOnClean=N.JT.None,this.toDisposeOnSetContainer=N.JT.None,this.shadowRoot=null,this.shadowRootHostElement=null,this.view=ft.$(".context-view"),this.useFixedPosition=!1,this.useShadowDOM=!1,ft.Cp(this.view),this.setContainer(e,t),this._register((0,N.OF)((()=>this.setContainer(null,1))))}setContainer(e,t){var i;if(this.container&&(this.toDisposeOnSetContainer.dispose(),this.shadowRoot?(this.shadowRoot.removeChild(this.view),this.shadowRoot=null,null===(i=this.shadowRootHostElement)||void 0===i||i.remove(),this.shadowRootHostElement=null):this.container.removeChild(this.view),this.container=null),e){if(this.container=e,this.useFixedPosition=1!==t,this.useShadowDOM=3===t,this.useShadowDOM){this.shadowRootHostElement=ft.$(".shadow-root-host"),this.container.appendChild(this.shadowRootHostElement),this.shadowRoot=this.shadowRootHostElement.attachShadow({mode:"open"});const e=document.createElement("style");e.textContent=Wi,this.shadowRoot.appendChild(e),this.shadowRoot.appendChild(this.view),this.shadowRoot.appendChild(ft.$("slot"))}else this.container.appendChild(this.view);const i=new N.SL;Vi.BUBBLE_UP_EVENTS.forEach((e=>{i.add(ft.mu(this.container,e,(e=>{this.onDOMEvent(e,!1)})))})),Vi.BUBBLE_DOWN_EVENTS.forEach((e=>{i.add(ft.mu(this.container,e,(e=>{this.onDOMEvent(e,!0)}),!0))})),this.toDisposeOnSetContainer=i}}show(e){var t,i;this.isVisible()&&this.hide(),ft.PO(this.view),this.view.className="context-view",this.view.style.top="0px",this.view.style.left="0px",this.view.style.zIndex="2575",this.view.style.position=this.useFixedPosition?"fixed":"absolute",ft.$Z(this.view),this.toDisposeOnClean=e.render(this.view)||N.JT.None,this.delegate=e,this.doLayout(),null===(i=(t=this.delegate).focus)||void 0===i||i.call(t)}getViewElement(){return this.view}layout(){this.isVisible()&&(!1!==this.delegate.canRelayout||I.gn&&Pi.D.pointerEvents?(this.delegate.layout&&this.delegate.layout(),this.doLayout()):this.hide())}doLayout(){if(!this.isVisible())return;const e=this.delegate.getAnchor();let t;if(ft.Re(e)){const i=ft.i(e),n=ft.I8(e);t={top:i.top*n,left:i.left*n,width:i.width*n,height:i.height*n}}else t={top:e.y,left:e.x,width:e.width||1,height:e.height||2};const i=ft.w(this.view),n=ft.wn(this.view),o=this.delegate.anchorPosition||0,s=this.delegate.anchorAlignment||0;let r,a;if(0===(this.delegate.anchorAxisAlignment||0)){const e={offset:t.top-window.pageYOffset,size:t.height,position:0===o?0:1},l={offset:t.left,size:t.width,position:0===s?0:1,mode:Di.ALIGN};r=Bi(window.innerHeight,n,e)+window.pageYOffset,Fi.e.intersects({start:r,end:r+n},{start:e.offset,end:e.offset+e.size})&&(l.mode=Di.AVOID),a=Bi(window.innerWidth,i,l)}else{const e={offset:t.left,size:t.width,position:0===s?0:1},l={offset:t.top,size:t.height,position:0===o?0:1,mode:Di.ALIGN};a=Bi(window.innerWidth,i,e),Fi.e.intersects({start:a,end:a+i},{start:e.offset,end:e.offset+e.size})&&(l.mode=Di.AVOID),r=Bi(window.innerHeight,n,l)+window.pageYOffset}this.view.classList.remove("top","bottom","left","right"),this.view.classList.add(0===o?"bottom":"top"),this.view.classList.add(0===s?"left":"right"),this.view.classList.toggle("fixed",this.useFixedPosition);const l=ft.i(this.container);this.view.style.top=r-(this.useFixedPosition?ft.i(this.view).top:l.top)+"px",this.view.style.left=a-(this.useFixedPosition?ft.i(this.view).left:l.left)+"px",this.view.style.width="initial"}hide(e){const t=this.delegate;this.delegate=null,(null==t?void 0:t.onHide)&&t.onHide(e),this.toDisposeOnClean.dispose(),ft.Cp(this.view)}isVisible(){return!!this.delegate}onDOMEvent(e,t){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(e,document.activeElement):t&&!ft.jg(e.target,this.container)&&this.hide())}dispose(){this.hide(),super.dispose()}}Vi.BUBBLE_UP_EVENTS=["click","keydown","focus","blur"],Vi.BUBBLE_DOWN_EVENTS=["click"];const Wi='\n\t:host {\n\t\tall: initial; /* 1st rule so subsequent properties are reset. */\n\t}\n\n\t@font-face {\n\t\tfont-family: "codicon";\n\t\tfont-display: block;\n\t\tsrc: url("./codicon.ttf?5d4d76ab2ce5108968ad644d591a16a6") format("truetype");\n\t}\n\n\t.codicon[class*=\'codicon-\'] {\n\t\tfont: normal normal normal 16px/1 codicon;\n\t\tdisplay: inline-block;\n\t\ttext-decoration: none;\n\t\ttext-rendering: auto;\n\t\ttext-align: center;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\tuser-select: none;\n\t\t-webkit-user-select: none;\n\t\t-ms-user-select: none;\n\t}\n\n\t:host {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif;\n\t}\n\n\t:host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; }\n\t:host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif; }\n\t:host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", sans-serif; }\n\t:host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", sans-serif; }\n\t:host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, "Nanum Gothic", "Apple SD Gothic Neo", "AppleGothic", sans-serif; }\n\n\t:host-context(.windows) { font-family: "Segoe WPC", "Segoe UI", sans-serif; }\n\t:host-context(.windows:lang(zh-Hans)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft YaHei", sans-serif; }\n\t:host-context(.windows:lang(zh-Hant)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft Jhenghei", sans-serif; }\n\t:host-context(.windows:lang(ja)) { font-family: "Segoe WPC", "Segoe UI", "Yu Gothic UI", "Meiryo UI", sans-serif; }\n\t:host-context(.windows:lang(ko)) { font-family: "Segoe WPC", "Segoe UI", "Malgun Gothic", "Dotom", sans-serif; }\n\n\t:host-context(.linux) { font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif; }\n\t:host-context(.linux:lang(zh-Hans)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans SC", "Source Han Sans CN", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(zh-Hant)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans TC", "Source Han Sans TW", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(ja)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans J", "Source Han Sans JP", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(ko)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans K", "Source Han Sans JR", "Source Han Sans", "UnDotum", "FBaekmuk Gulim", sans-serif; }\n';var Hi=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},zi=function(e,t){return function(i,n){t(i,n,e)}};let ji=class extends N.JT{constructor(e){super(),this.layoutService=e,this.currentViewDisposable=N.JT.None,this.container=e.hasContainer?e.container:null,this.contextView=this._register(new Vi(this.container,1)),this.layout(),this._register(e.onDidLayout((()=>this.layout())))}setContainer(e,t){this.contextView.setContainer(e,t||1)}showContextView(e,t,i){t?t===this.container&&this.shadowRoot===i||(this.container=t,this.setContainer(t,i?3:2)):this.layoutService.hasContainer&&this.container!==this.layoutService.container&&(this.container=this.layoutService.container,this.setContainer(this.container,1)),this.shadowRoot=i,this.contextView.show(e);const n=(0,N.OF)((()=>{this.currentViewDisposable===n&&this.hideContextView()}));return this.currentViewDisposable=n,n}getContextViewElement(){return this.contextView.getViewElement()}layout(){this.contextView.layout()}hideContextView(e){this.contextView.hide(e)}};ji=Hi([zi(0,Tt)],ji);var Ui=i(15527),Ki=i(55336),$i=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const qi="**",Gi="[/\\\\]",Qi="[^/\\\\]",Zi=/\//g;function Yi(e,t){switch(e){case 0:return"";case 1:return"[^/\\\\]*?";default:return`(?:[/\\\\]|[^/\\\\]+[/\\\\]${t?"|[/\\\\][^/\\\\]+":""})*?`}}function Ji(e,t){if(!e)return[];const i=[];let n=!1,o=!1,s="";for(const r of e){switch(r){case t:if(!n&&!o){i.push(s),s="";continue}break;case"{":n=!0;break;case"}":n=!1;break;case"[":o=!0;break;case"]":o=!1}s+=r}return s&&i.push(s),i}function Xi(e){if(!e)return"";let t="";const i=Ji(e,"/");if(i.every((e=>e===qi)))t=".*";else{let e=!1;i.forEach(((n,o)=>{if(n===qi){if(e)return;t+=Yi(2,o===i.length-1)}else{let e=!1,s="",r=!1,a="";for(const i of n)if("}"!==i&&e)s+=i;else if(!r||"]"===i&&a)switch(i){case"{":e=!0;continue;case"[":r=!0;continue;case"}":{const i=`(?:${Ji(s,",").map((e=>Xi(e))).join("|")})`;t+=i,e=!1,s="";break}case"]":t+="["+a+"]",r=!1,a="";break;case"?":t+=Qi;continue;case"*":t+=Yi(1);continue;default:t+=(0,f.ec)(i)}else{let e;e="-"===i?i:"^"!==i&&"!"!==i||a?"/"===i?"":(0,f.ec)(i):"^",a+=e}o<i.length-1&&(i[o+1]!==qi||o+2<i.length)&&(t+=Gi)}e=n===qi}))}return t}const en=/^\*\*\/\*\.[\w\.-]+$/,tn=/^\*\*\/([\w\.-]+)\/?$/,nn=/^{\*\*\/\*?[\w\.-]+\/?(,\*\*\/\*?[\w\.-]+\/?)*}$/,on=/^{\*\*\/\*?[\w\.-]+(\/(\*\*)?)?(,\*\*\/\*?[\w\.-]+(\/(\*\*)?)?)*}$/,sn=/^\*\*((\/[\w\.-]+)+)\/?$/,rn=/^([\w\.-]+(\/[\w\.-]+)*)\/?$/,an=new ci.z6(1e4),ln=function(){return!1},cn=function(){return null};function dn(e,t){if(!e)return cn;let i;i="string"!=typeof e?e.pattern:e,i=i.trim();const n=`${i}_${!!t.trimForExclusions}`;let o,s=an.get(n);return s||(s=en.test(i)?function(e,t){return function(i,n){return"string"==typeof i&&i.endsWith(e)?t:null}}(i.substr(4),i):(o=tn.exec(un(i,t)))?function(e,t){const i=`/${e}`,n=`\\${e}`,o=function(o,s){return"string"!=typeof o?null:s?s===e?t:null:o===e||o.endsWith(i)||o.endsWith(n)?t:null},s=[e];return o.basenames=s,o.patterns=[t],o.allBasenames=s,o}(o[1],i):(t.trimForExclusions?on:nn).test(i)?function(e,t){const i=mn(e.slice(1,-1).split(",").map((e=>dn(e,t))).filter((e=>e!==cn)),e),n=i.length;if(!n)return cn;if(1===n)return i[0];const o=function(t,n){for(let o=0,s=i.length;o<s;o++)if(i[o](t,n))return e;return null},s=i.find((e=>!!e.allBasenames));s&&(o.allBasenames=s.allBasenames);const r=i.reduce(((e,t)=>t.allPaths?e.concat(t.allPaths):e),[]);r.length&&(o.allPaths=r);return o}(i,t):(o=sn.exec(un(i,t)))?gn(o[1].substr(1),i,!0):(o=rn.exec(un(i,t)))?gn(o[1],i,!1):function(e){try{const t=new RegExp(`^${Xi(e)}$`);return function(i){return t.lastIndex=0,"string"==typeof i&&t.test(i)?e:null}}catch(t){return cn}}(i),an.set(n,s)),hn(s,e)}function hn(e,t){if("string"==typeof t)return e;const i=function(i,n){return(0,Ui.KM)(i,t.base,!I.IJ)?e(i.substr(t.base.length+1),n):null};return i.allBasenames=e.allBasenames,i.allPaths=e.allPaths,i.basenames=e.basenames,i.patterns=e.patterns,i}function un(e,t){return t.trimForExclusions&&e.endsWith("/**")?e.substr(0,e.length-2):e}function gn(e,t,i){const n=Ki.ir===Ki.KR.sep,o=n?e:e.replace(Zi,Ki.ir),s=Ki.ir+o,r=Ki.KR.sep+e;let a;return a=i?function(i,a){return"string"!=typeof i||i!==o&&!i.endsWith(s)&&(n||i!==e&&!i.endsWith(r))?null:t}:function(i,s){return"string"!=typeof i||i!==o&&(n||i!==e)?null:t},a.allPaths=[(i?"*/":"./")+e],a}function pn(e,t={}){if(!e)return ln;if("string"==typeof e||function(e){const t=e;if(!t)return!1;return"string"==typeof t.base&&"string"==typeof t.pattern}(e)){const i=dn(e,t);if(i===cn)return ln;const n=function(e,t){return!!i(e,t)};return i.allBasenames&&(n.allBasenames=i.allBasenames),i.allPaths&&(n.allPaths=i.allPaths),n}return function(e,t){const i=mn(Object.getOwnPropertyNames(e).map((i=>function(e,t,i){if(!1===t)return cn;const n=dn(e,i);if(n===cn)return cn;if("boolean"==typeof t)return n;if(t){const i=t.when;if("string"==typeof i){const t=(t,o,s,r)=>{if(!r||!n(t,o))return null;const a=r(i.replace("$(basename)",s));return(0,D.J8)(a)?a.then((t=>t?e:null)):a?e:null};return t.requiresSiblings=!0,t}}return n}(i,e[i],t))).filter((e=>e!==cn))),n=i.length;if(!n)return cn;if(!i.some((e=>!!e.requiresSiblings))){if(1===n)return i[0];const e=function(e,t){let n;for(let o=0,s=i.length;o<s;o++){const s=i[o](e,t);if("string"==typeof s)return s;(0,D.J8)(s)&&(n||(n=[]),n.push(s))}return n?(()=>$i(this,void 0,void 0,(function*(){for(const e of n){const t=yield e;if("string"==typeof t)return t}return null})))():null},t=i.find((e=>!!e.allBasenames));t&&(e.allBasenames=t.allBasenames);const o=i.reduce(((e,t)=>t.allPaths?e.concat(t.allPaths):e),[]);return o.length&&(e.allPaths=o),e}const o=function(e,t,n){let o,s;for(let r=0,a=i.length;r<a;r++){const a=i[r];a.requiresSiblings&&n&&(t||(t=(0,Ki.EZ)(e)),o||(o=t.substr(0,t.length-(0,Ki.DZ)(e).length)));const l=a(e,t,o,n);if("string"==typeof l)return l;(0,D.J8)(l)&&(s||(s=[]),s.push(l))}return s?(()=>$i(this,void 0,void 0,(function*(){for(const e of s){const t=yield e;if("string"==typeof t)return t}return null})))():null},s=i.find((e=>!!e.allBasenames));s&&(o.allBasenames=s.allBasenames);const r=i.reduce(((e,t)=>t.allPaths?e.concat(t.allPaths):e),[]);r.length&&(o.allPaths=r);return o}(e,t)}function mn(e,t){const i=e.filter((e=>!!e.basenames));if(i.length<2)return e;const n=i.reduce(((e,t)=>{const i=t.basenames;return i?e.concat(i):e}),[]);let o;if(t){o=[];for(let e=0,i=n.length;e<i;e++)o.push(t)}else o=i.reduce(((e,t)=>{const i=t.patterns;return i?e.concat(i):e}),[]);const s=function(e,t){if("string"!=typeof e)return null;if(!t){let i;for(i=e.length;i>0;i--){const t=e.charCodeAt(i-1);if(47===t||92===t)break}t=e.substr(i)}const i=n.indexOf(t);return-1!==i?o[i]:null};s.basenames=n,s.patterns=o,s.allBasenames=n;const r=e.filter((e=>!e.basenames));return r.push(s),r}var fn=i(81170),_n=i(68801);let vn=[],bn=[],Cn=[];function wn(e,t=!1){!function(e,t,i){const n=function(e,t){return{id:e.id,mime:e.mime,filename:e.filename,extension:e.extension,filepattern:e.filepattern,firstline:e.firstline,userConfigured:t,filenameLowercase:e.filename?e.filename.toLowerCase():void 0,extensionLowercase:e.extension?e.extension.toLowerCase():void 0,filepatternLowercase:e.filepattern?pn(e.filepattern.toLowerCase()):void 0,filepatternOnPath:!!e.filepattern&&e.filepattern.indexOf(Ki.KR.sep)>=0}}(e,t);vn.push(n),n.userConfigured?Cn.push(n):bn.push(n);i&&!n.userConfigured&&vn.forEach((e=>{e.mime===n.mime||e.userConfigured||(n.extension&&e.extension===n.extension&&console.warn(`Overwriting extension <<${n.extension}>> to now point to mime <<${n.mime}>>`),n.filename&&e.filename===n.filename&&console.warn(`Overwriting filename <<${n.filename}>> to now point to mime <<${n.mime}>>`),n.filepattern&&e.filepattern===n.filepattern&&console.warn(`Overwriting filepattern <<${n.filepattern}>> to now point to mime <<${n.mime}>>`),n.firstline&&e.firstline===n.firstline&&console.warn(`Overwriting firstline <<${n.firstline}>> to now point to mime <<${n.mime}>>`))}))}(e,!1,t)}function yn(e,t){return function(e,t){let i;if(e)switch(e.scheme){case _t.lg.file:i=e.fsPath;break;case _t.lg.data:i=Ai.Vb.parseMetaData(e).get(Ai.Vb.META_DATA_LABEL);break;case _t.lg.vscodeNotebookCell:i=void 0;break;default:i=e.path}if(!i)return[{id:"unknown",mime:fn.v.unknown}];i=i.toLowerCase();const n=(0,Ki.EZ)(i),o=Sn(i,n,Cn);if(o)return[o,{id:_n.bd,mime:fn.v.text}];const s=Sn(i,n,bn);if(s)return[s,{id:_n.bd,mime:fn.v.text}];if(t){const e=function(e){(0,f.uS)(e)&&(e=e.substr(1));if(e.length>0)for(let t=vn.length-1;t>=0;t--){const i=vn[t];if(!i.firstline)continue;const n=e.match(i.firstline);if(n&&n.length>0)return i}return}(t);if(e)return[e,{id:_n.bd,mime:fn.v.text}]}return[{id:"unknown",mime:fn.v.unknown}]}(e,t).map((e=>e.id))}function Sn(e,t,i){var n;let o,s,r;for(let a=i.length-1;a>=0;a--){const l=i[a];if(t===l.filenameLowercase){o=l;break}if(l.filepattern&&(!s||l.filepattern.length>s.filepattern.length)){const i=l.filepatternOnPath?e:t;(null===(n=l.filepatternLowercase)||void 0===n?void 0:n.call(l,i))&&(s=l)}l.extension&&(!r||l.extension.length>r.extension.length)&&t.endsWith(l.extensionLowercase)&&(r=l)}return o||(s||(r||void 0))}var Ln=i(23193),kn=i(89872);const xn=Object.prototype.hasOwnProperty,Dn="vs.editor.nullLanguage";class Nn{constructor(){this._languageIdToLanguage=[],this._languageToLanguageId=new Map,this._register(Dn,0),this._register(_n.bd,1),this._nextLanguageId=2}_register(e,t){this._languageIdToLanguage[t]=e,this._languageToLanguageId.set(e,t)}register(e){if(this._languageToLanguageId.has(e))return;const t=this._nextLanguageId++;this._register(e,t)}encodeLanguageId(e){return this._languageToLanguageId.get(e)||0}decodeLanguageId(e){return this._languageIdToLanguage[e]||Dn}}class En extends N.JT{constructor(e=!0,t=!1){super(),this._onDidChange=this._register(new r.Q5),this.onDidChange=this._onDidChange.event,En.instanceCount++,this._warnOnOverwrite=t,this.languageIdCodec=new Nn,this._dynamicLanguages=[],this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},e&&(this._initializeFromRegistry(),this._register(_n.dQ.onDidChangeLanguages((e=>{this._initializeFromRegistry()}))))}dispose(){En.instanceCount--,super.dispose()}_initializeFromRegistry(){this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},vn=vn.filter((e=>e.userConfigured)),bn=[];const e=[].concat(_n.dQ.getLanguages()).concat(this._dynamicLanguages);this._registerLanguages(e)}_registerLanguages(e){for(const t of e)this._registerLanguage(t);this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Object.keys(this._languages).forEach((e=>{const t=this._languages[e];t.name&&(this._nameMap[t.name]=t.identifier),t.aliases.forEach((e=>{this._lowercaseNameMap[e.toLowerCase()]=t.identifier})),t.mimetypes.forEach((e=>{this._mimeTypesMap[e]=t.identifier}))})),kn.B.as(Ln.IP.Configuration).registerOverrideIdentifiers(this.getRegisteredLanguageIds()),this._onDidChange.fire()}_registerLanguage(e){const t=e.id;let i;xn.call(this._languages,t)?i=this._languages[t]:(this.languageIdCodec.register(t),i={identifier:t,name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[],icons:[]},this._languages[t]=i),this._mergeLanguage(i,e)}_mergeLanguage(e,t){const i=t.id;let n=null;if(Array.isArray(t.mimetypes)&&t.mimetypes.length>0&&(e.mimetypes.push(...t.mimetypes),n=t.mimetypes[0]),n||(n=`text/x-${i}`,e.mimetypes.push(n)),Array.isArray(t.extensions)){t.configuration?e.extensions=t.extensions.concat(e.extensions):e.extensions=e.extensions.concat(t.extensions);for(const e of t.extensions)wn({id:i,mime:n,extension:e},this._warnOnOverwrite)}if(Array.isArray(t.filenames))for(const a of t.filenames)wn({id:i,mime:n,filename:a},this._warnOnOverwrite),e.filenames.push(a);if(Array.isArray(t.filenamePatterns))for(const a of t.filenamePatterns)wn({id:i,mime:n,filepattern:a},this._warnOnOverwrite);if("string"==typeof t.firstLine&&t.firstLine.length>0){let e=t.firstLine;"^"!==e.charAt(0)&&(e="^"+e);try{const t=new RegExp(e);(0,f.IO)(t)||wn({id:i,mime:n,firstline:t},this._warnOnOverwrite)}catch(r){(0,E.dL)(r)}}e.aliases.push(i);let o=null;if(void 0!==t.aliases&&Array.isArray(t.aliases)&&(o=0===t.aliases.length?[null]:t.aliases),null!==o)for(const a of o)a&&0!==a.length&&e.aliases.push(a);const s=null!==o&&o.length>0;if(s&&null===o[0]);else{const t=(s?o[0]:null)||i;!s&&e.name||(e.name=t)}t.configuration&&e.configurationFiles.push(t.configuration),t.icon&&e.icons.push(t.icon)}isRegisteredLanguageId(e){return!!e&&xn.call(this._languages,e)}getRegisteredLanguageIds(){return Object.keys(this._languages)}getLanguageIdByLanguageName(e){const t=e.toLowerCase();return xn.call(this._lowercaseNameMap,t)?this._lowercaseNameMap[t]:null}getLanguageIdByMimeType(e){return e&&xn.call(this._mimeTypesMap,e)?this._mimeTypesMap[e]:null}guessLanguageIdByFilepathOrFirstLine(e,t){return e||t?yn(e,t):[]}}En.instanceCount=0;class In extends N.JT{constructor(e=!1){super(),this._onDidEncounterLanguage=this._register(new r.Q5),this.onDidEncounterLanguage=this._onDidEncounterLanguage.event,this._onDidChange=this._register(new r.Q5({leakWarningThreshold:200})),this.onDidChange=this._onDidChange.event,In.instanceCount++,this._encounteredLanguages=new Set,this._registry=this._register(new En(!0,e)),this.languageIdCodec=this._registry.languageIdCodec,this._register(this._registry.onDidChange((()=>this._onDidChange.fire())))}dispose(){In.instanceCount--,super.dispose()}isRegisteredLanguageId(e){return this._registry.isRegisteredLanguageId(e)}getLanguageIdByLanguageName(e){return this._registry.getLanguageIdByLanguageName(e)}getLanguageIdByMimeType(e){return this._registry.getLanguageIdByMimeType(e)}guessLanguageIdByFilepathOrFirstLine(e,t){const i=this._registry.guessLanguageIdByFilepathOrFirstLine(e,t);return(0,Ce.Xh)(i,null)}createById(e){return new Tn(this.onDidChange,(()=>this._createAndGetLanguageIdentifier(e)))}createByFilepathOrFirstLine(e,t){return new Tn(this.onDidChange,(()=>{const i=this.guessLanguageIdByFilepathOrFirstLine(e,t);return this._createAndGetLanguageIdentifier(i)}))}_createAndGetLanguageIdentifier(e){return e&&this.isRegisteredLanguageId(e)||(e=_n.bd),this._encounteredLanguages.has(e)||(this._encounteredLanguages.add(e),u.RW.getOrCreate(e),this._onDidEncounterLanguage.fire(e)),e}}In.instanceCount=0;class Tn{constructor(e,t){this._onDidChangeLanguages=e,this._selector=t,this._listener=null,this._emitter=null,this.languageId=this._selector()}_dispose(){this._listener&&(this._listener.dispose(),this._listener=null),this._emitter&&(this._emitter.dispose(),this._emitter=null)}get onDidChange(){return this._listener||(this._listener=this._onDidChangeLanguages((()=>this._evaluate()))),this._emitter||(this._emitter=new r.Q5({onLastListenerRemove:()=>{this._dispose()}})),this._emitter.event}_evaluate(){var e;const t=this._selector();t!==this.languageId&&(this.languageId=t,null===(e=this._emitter)||void 0===e||e.fire(this.languageId))}}var Mn=i(7317),An=i(16268),Rn=i(10553),On=i(90317),Pn=i(76033),Fn=i(28609),Bn=i(63161),Vn=i(74741),Wn=i(73046),Hn=i(21212);const zn=/\(&([^\s&])\)|(^|[^&])&([^\s&])/,jn=/(&)?(&)([^\s&])/g;var Un;!function(e){e[e.Right=0]="Right",e[e.Left=1]="Left"}(Un||(Un={}));class Kn extends On.o{constructor(e,t,i={}){e.classList.add("monaco-menu-container"),e.setAttribute("role","presentation");const n=document.createElement("div");n.classList.add("monaco-menu"),n.setAttribute("role","presentation"),super(n,{orientation:1,actionViewItemProvider:e=>this.doGetActionViewItem(e,i,o),context:i.context,actionRunner:i.actionRunner,ariaLabel:i.ariaLabel,ariaRole:"menu",focusOnlyEnabledItems:!0,triggerKeys:{keys:[3,...I.dz||I.IJ?[10]:[]],keyDown:!0}}),this.menuElement=n,this.actionsList.tabIndex=0,this.menuDisposables=this._register(new N.SL),this.initializeOrUpdateStyleSheet(e,{}),this._register(Rn.o.addTarget(n)),(0,ft.nm)(n,ft.tw.KEY_DOWN,(e=>{new ii.y(e).equals(2)&&e.preventDefault()})),i.enableMnemonics&&this.menuDisposables.add((0,ft.nm)(n,ft.tw.KEY_DOWN,(e=>{const t=e.key.toLocaleLowerCase();if(this.mnemonics.has(t)){ft.zB.stop(e,!0);const i=this.mnemonics.get(t);if(1===i.length&&(i[0]instanceof qn&&i[0].container&&this.focusItemByElement(i[0].container),i[0].onClick(e)),i.length>1){const e=i.shift();e&&e.container&&(this.focusItemByElement(e.container),i.push(e)),this.mnemonics.set(t,i)}}}))),I.IJ&&this._register((0,ft.nm)(n,ft.tw.KEY_DOWN,(e=>{const t=new ii.y(e);t.equals(14)||t.equals(11)?(this.focusedItem=this.viewItems.length-1,this.focusNext(),ft.zB.stop(e,!0)):(t.equals(13)||t.equals(12))&&(this.focusedItem=0,this.focusPrevious(),ft.zB.stop(e,!0))}))),this._register((0,ft.nm)(this.domNode,ft.tw.MOUSE_OUT,(e=>{const t=e.relatedTarget;(0,ft.jg)(t,this.domNode)||(this.focusedItem=void 0,this.updateFocus(),e.stopPropagation())}))),this._register((0,ft.nm)(this.actionsList,ft.tw.MOUSE_OVER,(e=>{let t=e.target;if(t&&(0,ft.jg)(t,this.actionsList)&&t!==this.actionsList){for(;t.parentElement!==this.actionsList&&null!==t.parentElement;)t=t.parentElement;if(t.classList.contains("action-item")){const e=this.focusedItem;this.setFocusedItem(t),e!==this.focusedItem&&this.updateFocus()}}}))),this._register(Rn.o.addTarget(this.actionsList)),this._register((0,ft.nm)(this.actionsList,Rn.t.Tap,(e=>{let t=e.initialTarget;if(t&&(0,ft.jg)(t,this.actionsList)&&t!==this.actionsList){for(;t.parentElement!==this.actionsList&&null!==t.parentElement;)t=t.parentElement;if(t.classList.contains("action-item")){const e=this.focusedItem;this.setFocusedItem(t),e!==this.focusedItem&&this.updateFocus()}}})));const o={parent:this};this.mnemonics=new Map,this.scrollableElement=this._register(new Bn.s$(n,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));const s=this.scrollableElement.getDomNode();s.style.position="",this._register((0,ft.nm)(n,Rn.t.Change,(e=>{ft.zB.stop(e,!0);const t=this.scrollableElement.getScrollPosition().scrollTop;this.scrollableElement.setScrollPosition({scrollTop:t-e.translationY})}))),this._register((0,ft.nm)(s,ft.tw.MOUSE_UP,(e=>{e.preventDefault()}))),n.style.maxHeight=`${Math.max(10,window.innerHeight-e.getBoundingClientRect().top-35)}px`,t=t.filter((e=>{var t;return!(null===(t=i.submenuIds)||void 0===t?void 0:t.has(e.id))||(console.warn(`Found submenu cycle: ${e.id}`),!1)})),this.push(t,{icon:!0,label:!0,isMenu:!0}),e.appendChild(this.scrollableElement.getDomNode()),this.scrollableElement.scanDomNode(),this.viewItems.filter((e=>!(e instanceof Gn))).forEach(((e,t,i)=>{e.updatePositionInSet(t+1,i.length)}))}initializeOrUpdateStyleSheet(e,t){this.styleSheet||((0,ft.OO)(e)?this.styleSheet=(0,ft.dS)(e):(Kn.globalStyleSheet||(Kn.globalStyleSheet=(0,ft.dS)()),this.styleSheet=Kn.globalStyleSheet)),this.styleSheet.textContent=function(e,t){let i=`\n.monaco-menu {\n\tfont-size: 13px;\n\tborder-radius: 5px;\n\tmin-width: 160px;\n}\n\n${(0,Fn.a)(Wn.lA.menuSelection)}\n${(0,Fn.a)(Wn.lA.menuSubmenu)}\n\n.monaco-menu .monaco-action-bar {\n\ttext-align: right;\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n\n.monaco-menu .monaco-action-bar .actions-container {\n\tdisplay: flex;\n\tmargin: 0 auto;\n\tpadding: 0;\n\twidth: 100%;\n\tjustify-content: flex-end;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar.reverse .actions-container {\n\tflex-direction: row-reverse;\n}\n\n.monaco-menu .monaco-action-bar .action-item {\n\tcursor: pointer;\n\tdisplay: inline-block;\n\ttransition: transform 50ms ease;\n\tposition: relative; /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled {\n\tcursor: default;\n}\n\n.monaco-menu .monaco-action-bar.animated .action-item.active {\n\ttransform: scale(1.272019649, 1.272019649); /* 1.272019649 = \u221a\u03c6 */\n}\n\n.monaco-menu .monaco-action-bar .action-item .icon,\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar .action-label {\n\tfont-size: 11px;\n\tmargin-right: 4px;\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label,\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover {\n\tcolor: var(--vscode-disabledForeground);\n}\n\n/* Vertical actions */\n\n.monaco-menu .monaco-action-bar.vertical {\n\ttext-align: left;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tdisplay: block;\n\tborder-bottom: 1px solid var(--vscode-menu-separatorBackground);\n\tpadding-top: 1px;\n\tpadding: 30px;\n}\n\n.monaco-menu .secondary-actions .monaco-action-bar .action-label {\n\tmargin-left: 6px;\n}\n\n/* Action Items */\n.monaco-menu .monaco-action-bar .action-item.select-container {\n\toverflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */\n\tflex: 1;\n\tmax-width: 170px;\n\tmin-width: 60px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-right: 10px;\n}\n\n.monaco-menu .monaco-action-bar.vertical {\n\tmargin-left: 0;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tpadding: 0;\n\ttransform: none;\n\tdisplay: flex;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.active {\n\ttransform: none;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\tflex: 1 1 auto;\n\tdisplay: flex;\n\theight: 2em;\n\talign-items: center;\n\tposition: relative;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .keybinding {\n\topacity: unset;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label {\n\tflex: 1 1 auto;\n\ttext-decoration: none;\n\tpadding: 0 1em;\n\tbackground: none;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .keybinding,\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tdisplay: inline-block;\n\tflex: 2 1 auto;\n\tpadding: 0 1em;\n\ttext-align: right;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon {\n\tfont-size: 16px !important;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before {\n\tmargin-left: auto;\n\tmargin-right: -20px;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator {\n\topacity: 0.4;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) {\n\tdisplay: inline-block;\n\tbox-sizing: border-box;\n\tmargin: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tposition: static;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu {\n\tposition: absolute;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\twidth: 100%;\n\theight: 0px !important;\n\topacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator.text {\n\tpadding: 0.7em 1em 0.1em 1em;\n\tfont-weight: bold;\n\topacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:hover {\n\tcolor: inherit;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tposition: absolute;\n\tvisibility: hidden;\n\twidth: 1em;\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check {\n\tvisibility: visible;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* Context Menu */\n\n.context-view.monaco-menu-container {\n\toutline: 0;\n\tborder: none;\n\tanimation: fadeIn 0.083s linear;\n\t-webkit-app-region: no-drag;\n}\n\n.context-view.monaco-menu-container :focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical :focus {\n\toutline: 0;\n}\n\n.hc-black .context-view.monaco-menu-container,\n.hc-light .context-view.monaco-menu-container,\n:host-context(.hc-black) .context-view.monaco-menu-container,\n:host-context(.hc-light) .context-view.monaco-menu-container {\n\tbox-shadow: none;\n}\n\n.hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n.hc-light .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n:host-context(.hc-light) .monaco-menu .monaco-action-bar.vertical .action-item.focused {\n\tbackground: none;\n}\n\n/* Vertical Action Bar Styles */\n\n.monaco-menu .monaco-action-bar.vertical {\n\tpadding: .6em 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\theight: 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator),\n.monaco-menu .monaco-action-bar.vertical .keybinding {\n\tfont-size: inherit;\n\tpadding: 0 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tfont-size: inherit;\n\twidth: 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tfont-size: inherit;\n\tmargin: 5px 0 !important;\n\tpadding: 0;\n\tborder-radius: 0;\n}\n\n.linux .monaco-menu .monaco-action-bar.vertical .action-label.separator,\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tfont-size: 60%;\n\tpadding: 0 1.8em;\n}\n\n.linux .monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n\tmask-size: 10px 10px;\n\t-webkit-mask-size: 10px 10px;\n}\n\n.monaco-menu .action-item {\n\tcursor: default;\n}`;if(t){i+="\n\t\t\t/* Arrows */\n\t\t\t.monaco-scrollable-element > .scrollbar > .scra {\n\t\t\t\tcursor: pointer;\n\t\t\t\tfont-size: 11px !important;\n\t\t\t}\n\n\t\t\t.monaco-scrollable-element > .visible {\n\t\t\t\topacity: 1;\n\n\t\t\t\t/* Background rule added for IE9 - to allow clicks on dom node */\n\t\t\t\tbackground:rgba(0,0,0,0);\n\n\t\t\t\ttransition: opacity 100ms linear;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .invisible {\n\t\t\t\topacity: 0;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .invisible.fade {\n\t\t\t\ttransition: opacity 800ms linear;\n\t\t\t}\n\n\t\t\t/* Scrollable Content Inset Shadow */\n\t\t\t.monaco-scrollable-element > .shadow {\n\t\t\t\tposition: absolute;\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .shadow.top {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 3px;\n\t\t\t\theight: 3px;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .shadow.left {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 3px;\n\t\t\t\tleft: 0;\n\t\t\t\theight: 100%;\n\t\t\t\twidth: 3px;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .shadow.top-left-corner {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\theight: 3px;\n\t\t\t\twidth: 3px;\n\t\t\t}\n\t\t";const t=e.scrollbarShadow;t&&(i+=`\n\t\t\t\t.monaco-scrollable-element > .shadow.top {\n\t\t\t\t\tbox-shadow: ${t} 0 6px 6px -6px inset;\n\t\t\t\t}\n\n\t\t\t\t.monaco-scrollable-element > .shadow.left {\n\t\t\t\t\tbox-shadow: ${t} 6px 0 6px -6px inset;\n\t\t\t\t}\n\n\t\t\t\t.monaco-scrollable-element > .shadow.top.left {\n\t\t\t\t\tbox-shadow: ${t} 6px 6px 6px -6px inset;\n\t\t\t\t}\n\t\t\t`);const n=e.scrollbarSliderBackground;n&&(i+=`\n\t\t\t\t.monaco-scrollable-element > .scrollbar > .slider {\n\t\t\t\t\tbackground: ${n};\n\t\t\t\t}\n\t\t\t`);const o=e.scrollbarSliderHoverBackground;o&&(i+=`\n\t\t\t\t.monaco-scrollable-element > .scrollbar > .slider:hover {\n\t\t\t\t\tbackground: ${o};\n\t\t\t\t}\n\t\t\t`);const s=e.scrollbarSliderActiveBackground;s&&(i+=`\n\t\t\t\t.monaco-scrollable-element > .scrollbar > .slider.active {\n\t\t\t\t\tbackground: ${s};\n\t\t\t\t}\n\t\t\t`)}return i}(t,(0,ft.OO)(e))}style(e){const t=this.getContainer();this.initializeOrUpdateStyleSheet(t,e);const i=e.foregroundColor?`${e.foregroundColor}`:"",n=e.backgroundColor?`${e.backgroundColor}`:"",o=e.borderColor?`1px solid ${e.borderColor}`:"",s=e.shadowColor?`0 2px 8px ${e.shadowColor}`:"";t.style.outline=o,t.style.borderRadius="5px",t.style.color=i,t.style.backgroundColor=n,t.style.boxShadow=s,this.viewItems&&this.viewItems.forEach((t=>{(t instanceof $n||t instanceof Gn)&&t.style(e)}))}getContainer(){return this.scrollableElement.getDomNode()}get onScroll(){return this.scrollableElement.onScroll}focusItemByElement(e){const t=this.focusedItem;this.setFocusedItem(e),t!==this.focusedItem&&this.updateFocus()}setFocusedItem(e){for(let t=0;t<this.actionsList.children.length;t++){if(e===this.actionsList.children[t]){this.focusedItem=t;break}}}updateFocus(e){super.updateFocus(e,!0,!0),void 0!==this.focusedItem&&this.scrollableElement.setScrollPosition({scrollTop:Math.round(this.menuElement.scrollTop)})}doGetActionViewItem(e,t,i){if(e instanceof Vn.Z0)return new Gn(t.context,e,{icon:!0});if(e instanceof Vn.wY){const n=new qn(e,e.actions,i,Object.assign(Object.assign({},t),{submenuIds:new Set([...t.submenuIds||[],e.id])}));if(t.enableMnemonics){const e=n.getMnemonic();if(e&&n.isEnabled()){let t=[];this.mnemonics.has(e)&&(t=this.mnemonics.get(e)),t.push(n),this.mnemonics.set(e,t)}}return n}{const i={enableMnemonics:t.enableMnemonics,useEventAsContext:t.useEventAsContext};if(t.getKeyBinding){const n=t.getKeyBinding(e);if(n){const e=n.getLabel();e&&(i.keybinding=e)}}const n=new $n(t.context,e,i);if(t.enableMnemonics){const e=n.getMnemonic();if(e&&n.isEnabled()){let t=[];this.mnemonics.has(e)&&(t=this.mnemonics.get(e)),t.push(n),this.mnemonics.set(e,t)}}return n}}}class $n extends Pn.Y{constructor(e,t,i={}){if(i.isMenu=!0,super(t,t,i),this.options=i,this.options.icon=void 0!==i.icon&&i.icon,this.options.label=void 0===i.label||i.label,this.cssClass="",this.options.label&&i.enableMnemonics){const e=this.getAction().label;if(e){const t=zn.exec(e);t&&(this.mnemonic=(t[1]?t[1]:t[3]).toLocaleLowerCase())}}this.runOnceToEnableMouseUp=new D.pY((()=>{this.element&&(this._register((0,ft.nm)(this.element,ft.tw.MOUSE_UP,(e=>{if(ft.zB.stop(e,!0),An.isFirefox){if(new Mn.n(e).rightButton)return;this.onClick(e)}else setTimeout((()=>{this.onClick(e)}),0)}))),this._register((0,ft.nm)(this.element,ft.tw.CONTEXT_MENU,(e=>{ft.zB.stop(e,!0)}))))}),100),this._register(this.runOnceToEnableMouseUp)}render(e){super.render(e),this.element&&(this.container=e,this.item=(0,ft.R3)(this.element,(0,ft.$)("a.action-menu-item")),this._action.id===Vn.Z0.ID?this.item.setAttribute("role","presentation"):(this.item.setAttribute("role","menuitem"),this.mnemonic&&this.item.setAttribute("aria-keyshortcuts",`${this.mnemonic}`)),this.check=(0,ft.R3)(this.item,(0,ft.$)("span.menu-item-check"+Wn.lA.menuSelection.cssSelector)),this.check.setAttribute("role","none"),this.label=(0,ft.R3)(this.item,(0,ft.$)("span.action-label")),this.options.label&&this.options.keybinding&&((0,ft.R3)(this.item,(0,ft.$)("span.keybinding")).textContent=this.options.keybinding),this.runOnceToEnableMouseUp.schedule(),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked())}blur(){super.blur(),this.applyStyle()}focus(){super.focus(),this.item&&this.item.focus(),this.applyStyle()}updatePositionInSet(e,t){this.item&&(this.item.setAttribute("aria-posinset",`${e}`),this.item.setAttribute("aria-setsize",`${t}`))}updateLabel(){var e;if(this.label&&this.options.label){(0,ft.PO)(this.label);let t=(0,Hn.x$)(this.getAction().label);if(t){const i=function(e){const t=zn,i=t.exec(e);if(!i)return e;const n=!i[1];return e.replace(t,n?"$2$3":"").trim()}(t);this.options.enableMnemonics||(t=i),this.label.setAttribute("aria-label",i.replace(/&&/g,"&"));const n=zn.exec(t);if(n){t=f.YU(t),jn.lastIndex=0;let i=jn.exec(t);for(;i&&i[1];)i=jn.exec(t);const o=e=>e.replace(/&&/g,"&");i?this.label.append(f.j3(o(t.substr(0,i.index))," "),(0,ft.$)("u",{"aria-hidden":"true"},i[3]),f.oL(o(t.substr(i.index+i[0].length))," ")):this.label.innerText=o(t).trim(),null===(e=this.item)||void 0===e||e.setAttribute("aria-keyshortcuts",(n[1]?n[1]:n[3]).toLocaleLowerCase())}else this.label.innerText=t.replace(/&&/g,"&").trim()}}}updateTooltip(){}updateClass(){this.cssClass&&this.item&&this.item.classList.remove(...this.cssClass.split(" ")),this.options.icon&&this.label?(this.cssClass=this.getAction().class||"",this.label.classList.add("icon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" ")),this.updateEnabled()):this.label&&this.label.classList.remove("icon")}updateEnabled(){this.getAction().enabled?(this.element&&(this.element.classList.remove("disabled"),this.element.removeAttribute("aria-disabled")),this.item&&(this.item.classList.remove("disabled"),this.item.removeAttribute("aria-disabled"),this.item.tabIndex=0)):(this.element&&(this.element.classList.add("disabled"),this.element.setAttribute("aria-disabled","true")),this.item&&(this.item.classList.add("disabled"),this.item.setAttribute("aria-disabled","true")))}updateChecked(){if(!this.item)return;const e=this.getAction().checked;this.item.classList.toggle("checked",!!e),void 0!==e?(this.item.setAttribute("role","menuitemcheckbox"),this.item.setAttribute("aria-checked",e?"true":"false")):(this.item.setAttribute("role","menuitem"),this.item.setAttribute("aria-checked",""))}getMnemonic(){return this.mnemonic}applyStyle(){if(!this.menuStyle)return;const e=this.element&&this.element.classList.contains("focused"),t=e&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor,i=e&&this.menuStyle.selectionBackgroundColor?this.menuStyle.selectionBackgroundColor:void 0,n=e&&this.menuStyle.selectionBorderColor?`1px solid ${this.menuStyle.selectionBorderColor}`:"",o=e&&this.menuStyle.selectionBorderColor?"-1px":"";this.item&&(this.item.style.color=t?t.toString():"",this.item.style.backgroundColor=i?i.toString():"",this.item.style.outline=n,this.item.style.outlineOffset=o),this.check&&(this.check.style.color=t?t.toString():"")}style(e){this.menuStyle=e,this.applyStyle()}}class qn extends $n{constructor(e,t,i,n){super(e,e,n),this.submenuActions=t,this.parentData=i,this.submenuOptions=n,this.mysubmenu=null,this.submenuDisposables=this._register(new N.SL),this.mouseOver=!1,this.expandDirection=n&&void 0!==n.expandDirection?n.expandDirection:Un.Right,this.showScheduler=new D.pY((()=>{this.mouseOver&&(this.cleanupExistingSubmenu(!1),this.createSubmenu(!1))}),250),this.hideScheduler=new D.pY((()=>{this.element&&!(0,ft.jg)((0,ft.vY)(),this.element)&&this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))}),750)}render(e){super.render(e),this.element&&(this.item&&(this.item.classList.add("monaco-submenu-item"),this.item.tabIndex=0,this.item.setAttribute("aria-haspopup","true"),this.updateAriaExpanded("false"),this.submenuIndicator=(0,ft.R3)(this.item,(0,ft.$)("span.submenu-indicator"+Wn.lA.menuSubmenu.cssSelector)),this.submenuIndicator.setAttribute("aria-hidden","true")),this._register((0,ft.nm)(this.element,ft.tw.KEY_UP,(e=>{const t=new ii.y(e);(t.equals(17)||t.equals(3))&&(ft.zB.stop(e,!0),this.createSubmenu(!0))}))),this._register((0,ft.nm)(this.element,ft.tw.KEY_DOWN,(e=>{const t=new ii.y(e);(0,ft.vY)()===this.item&&(t.equals(17)||t.equals(3))&&ft.zB.stop(e,!0)}))),this._register((0,ft.nm)(this.element,ft.tw.MOUSE_OVER,(e=>{this.mouseOver||(this.mouseOver=!0,this.showScheduler.schedule())}))),this._register((0,ft.nm)(this.element,ft.tw.MOUSE_LEAVE,(e=>{this.mouseOver=!1}))),this._register((0,ft.nm)(this.element,ft.tw.FOCUS_OUT,(e=>{this.element&&!(0,ft.jg)((0,ft.vY)(),this.element)&&this.hideScheduler.schedule()}))),this._register(this.parentData.parent.onScroll((()=>{this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))}))))}updateEnabled(){}onClick(e){ft.zB.stop(e,!0),this.cleanupExistingSubmenu(!1),this.createSubmenu(!0)}cleanupExistingSubmenu(e){if(this.parentData.submenu&&(e||this.parentData.submenu!==this.mysubmenu)){try{this.parentData.submenu.dispose()}catch(K){}this.parentData.submenu=void 0,this.updateAriaExpanded("false"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0)}}calculateSubmenuMenuLayout(e,t,i,n){const o={top:0,left:0};return o.left=Bi(e.width,t.width,{position:n===Un.Right?0:1,offset:i.left,size:i.width}),o.left>=i.left&&o.left<i.left+i.width&&(i.left+10+t.width<=e.width&&(o.left=i.left+10),i.top+=10,i.height=0),o.top=Bi(e.height,t.height,{position:0,offset:i.top,size:0}),o.top+t.height===i.top&&o.top+i.height+t.height<=e.height&&(o.top+=i.height),o}createSubmenu(e=!0){if(this.element)if(this.parentData.submenu)this.parentData.submenu.focus(!1);else{this.updateAriaExpanded("true"),this.submenuContainer=(0,ft.R3)(this.element,(0,ft.$)("div.monaco-submenu")),this.submenuContainer.classList.add("menubar-menu-items-holder","context-view");const t=getComputedStyle(this.parentData.parent.domNode),i=parseFloat(t.paddingTop||"0")||0;this.submenuContainer.style.zIndex="1",this.submenuContainer.style.position="fixed",this.submenuContainer.style.top="0",this.submenuContainer.style.left="0",this.parentData.submenu=new Kn(this.submenuContainer,this.submenuActions.length?this.submenuActions:[new Vn.eZ],this.submenuOptions),this.menuStyle&&this.parentData.submenu.style(this.menuStyle);const n=this.element.getBoundingClientRect(),o={top:n.top-i,left:n.left,height:n.height+2*i,width:n.width},s=this.submenuContainer.getBoundingClientRect(),{top:r,left:a}=this.calculateSubmenuMenuLayout(new ft.Ro(window.innerWidth,window.innerHeight),ft.Ro.lift(s),o,this.expandDirection);this.submenuContainer.style.left=a-s.left+"px",this.submenuContainer.style.top=r-s.top+"px",this.submenuDisposables.add((0,ft.nm)(this.submenuContainer,ft.tw.KEY_UP,(e=>{new ii.y(e).equals(15)&&(ft.zB.stop(e,!0),this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0))}))),this.submenuDisposables.add((0,ft.nm)(this.submenuContainer,ft.tw.KEY_DOWN,(e=>{new ii.y(e).equals(15)&&ft.zB.stop(e,!0)}))),this.submenuDisposables.add(this.parentData.submenu.onDidCancel((()=>{this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0)}))),this.parentData.submenu.focus(e),this.mysubmenu=this.parentData.submenu}}updateAriaExpanded(e){var t;this.item&&(null===(t=this.item)||void 0===t||t.setAttribute("aria-expanded",e))}applyStyle(){var e;if(super.applyStyle(),!this.menuStyle)return;const t=this.element&&this.element.classList.contains("focused")&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor;this.submenuIndicator&&(this.submenuIndicator.style.color=t?`${t}`:""),null===(e=this.parentData.submenu)||void 0===e||e.style(this.menuStyle)}dispose(){super.dispose(),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer=void 0)}}class Gn extends Pn.g{style(e){this.label&&(this.label.style.borderBottomColor=e.separatorColor?`${e.separatorColor}`:"")}}var Qn=i(88810);class Zn{constructor(e,t,i,n,o){this.contextViewService=e,this.telemetryService=t,this.notificationService=i,this.keybindingService=n,this.themeService=o,this.focusToReturn=null,this.block=null,this.options={blockMouse:!0}}configure(e){this.options=e}showContextMenu(e){const t=e.getActions();if(!t.length)return;let i;this.focusToReturn=document.activeElement;const n=(0,ft.Re)(e.domForShadowRoot)?e.domForShadowRoot:void 0;this.contextViewService.showContextView({getAnchor:()=>e.getAnchor(),canRelayout:!1,anchorAlignment:e.anchorAlignment,anchorAxisAlignment:e.anchorAxisAlignment,render:n=>{const o=e.getMenuClassName?e.getMenuClassName():"";o&&(n.className+=" "+o),this.options.blockMouse&&(this.block=n.appendChild((0,ft.$)(".context-view-block")),this.block.style.position="fixed",this.block.style.cursor="initial",this.block.style.left="0",this.block.style.top="0",this.block.style.width="100%",this.block.style.height="100%",this.block.style.zIndex="-1",(0,ft.nm)(this.block,ft.tw.MOUSE_DOWN,(e=>e.stopPropagation())));const s=new N.SL,r=e.actionRunner||new Vn.Wi;return r.onBeforeRun(this.onActionRun,this,s),r.onDidRun(this.onDidActionRun,this,s),i=new Kn(n,t,{actionViewItemProvider:e.getActionViewItem,context:e.getActionsContext?e.getActionsContext():null,actionRunner:r,getKeyBinding:e.getKeyBinding?e.getKeyBinding:e=>this.keybindingService.lookupKeybinding(e.id)}),s.add((0,Qn.tj)(i,this.themeService)),i.onDidCancel((()=>this.contextViewService.hideContextView(!0)),null,s),i.onDidBlur((()=>this.contextViewService.hideContextView(!0)),null,s),s.add((0,ft.nm)(window,ft.tw.BLUR,(()=>this.contextViewService.hideContextView(!0)))),s.add((0,ft.nm)(window,ft.tw.MOUSE_DOWN,(e=>{if(e.defaultPrevented)return;const t=new Mn.n(e);let i=t.target;if(!t.rightButton){for(;i;){if(i===n)return;i=i.parentElement}this.contextViewService.hideContextView(!0)}}))),(0,N.F8)(s,i)},focus:()=>{null==i||i.focus(!!e.autoSelectFirstItem)},onHide:t=>{var i;null===(i=e.onHide)||void 0===i||i.call(e,!!t),this.block&&(this.block.remove(),this.block=null),this.focusToReturn&&this.focusToReturn.focus()}},n,!!n)}onActionRun(e){this.telemetryService.publicLog2("workbenchActionExecuted",{id:e.action.id,from:"contextMenu"}),this.contextViewService.hideContextView(!1),this.focusToReturn&&this.focusToReturn.focus()}onDidActionRun(e){e.error&&!(0,E.n2)(e.error)&&this.notificationService.error(e.error)}}var Yn=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Jn=function(e,t){return function(i,n){t(i,n,e)}};let Xn=class extends N.JT{constructor(e,t,i,n,o){super(),this._onDidShowContextMenu=new r.Q5,this._onDidHideContextMenu=new r.Q5,this.contextMenuHandler=new Zn(i,e,t,n,o)}configure(e){this.contextMenuHandler.configure(e)}showContextMenu(e){this.contextMenuHandler.showContextMenu(Object.assign(Object.assign({},e),{onHide:t=>{var i;null===(i=e.onHide)||void 0===i||i.call(e,t),this._onDidHideContextMenu.fire()}})),ft._q.getInstance().resetKeyStatus(),this._onDidShowContextMenu.fire()}};Xn=Yn([Jn(0,Ii.b),Jn(1,Vt.lT),Jn(2,Oi.u),Jn(3,_i.d),Jn(4,bt.XE)],Xn);var eo,to=i(23897);!function(e){e[e.API=0]="API",e[e.USER=1]="USER"}(eo||(eo={}));var io=i(50988),no=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},oo=function(e,t){return function(i,n){t(i,n,e)}},so=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let ro=class{constructor(e){this._commandService=e}open(e,t){return so(this,void 0,void 0,(function*(){if(!(0,io.xn)(e,_t.lg.command))return!1;if(!(null==t?void 0:t.allowCommands))return!0;"string"==typeof e&&(e=l.o.parse(e));let i=[];try{i=(0,to.Q)(decodeURIComponent(e.query))}catch(K){try{i=(0,to.Q)(e.query)}catch(n){}}return Array.isArray(i)||(i=[i]),yield this._commandService.executeCommand(e.path,...i),!0}))}};ro=no([oo(0,li.Hy)],ro);let ao=class{constructor(e){this._editorService=e}open(e,t){return so(this,void 0,void 0,(function*(){"string"==typeof e&&(e=l.o.parse(e));const{selection:i,uri:n}=(0,io.xI)(e);return(e=n).scheme===_t.lg.file&&(e=(0,Ai.AH)(e)),yield this._editorService.openCodeEditor({resource:e,options:Object.assign({selection:i,source:(null==t?void 0:t.fromUserGesture)?eo.USER:eo.API},null==t?void 0:t.editorOptions)},this._editorService.getFocusedCodeEditor(),null==t?void 0:t.openToSide),!0}))}};ao=no([oo(0,v.$)],ao);let lo=class{constructor(e,t){this._openers=new vt.S,this._validators=new vt.S,this._resolvers=new vt.S,this._resolvedUriTargets=new ci.Y9((e=>e.with({path:null,fragment:null,query:null}).toString())),this._externalOpeners=new vt.S,this._defaultExternalOpener={openExternal:e=>so(this,void 0,void 0,(function*(){return(0,io.Gs)(e,_t.lg.http,_t.lg.https)?ft.V3(e):window.location.href=e,!0}))},this._openers.push({open:(e,t)=>so(this,void 0,void 0,(function*(){return!(!(null==t?void 0:t.openExternal)&&!(0,io.Gs)(e,_t.lg.mailto,_t.lg.http,_t.lg.https,_t.lg.vsls))&&(yield this._doOpenExternal(e,t),!0)}))}),this._openers.push(new ro(t)),this._openers.push(new ao(e))}registerOpener(e){return{dispose:this._openers.unshift(e)}}registerValidator(e){return{dispose:this._validators.push(e)}}registerExternalUriResolver(e){return{dispose:this._resolvers.push(e)}}setDefaultExternalOpener(e){this._defaultExternalOpener=e}registerExternalOpener(e){return{dispose:this._externalOpeners.push(e)}}open(e,t){var i;return so(this,void 0,void 0,(function*(){const n="string"==typeof e?l.o.parse(e):e,o=null!==(i=this._resolvedUriTargets.get(n))&&void 0!==i?i:e;for(const e of this._validators)if(!(yield e.shouldOpen(o,t)))return!1;for(const i of this._openers){if(yield i.open(e,t))return!0}return!1}))}resolveExternalUri(e,t){return so(this,void 0,void 0,(function*(){for(const i of this._resolvers)try{const n=yield i.resolveExternalUri(e,t);if(n)return this._resolvedUriTargets.has(n.resolved)||this._resolvedUriTargets.set(n.resolved,e),n}catch(K){}throw new Error("Could not resolve external URI: "+e.toString())}))}_doOpenExternal(e,t){return so(this,void 0,void 0,(function*(){const i="string"==typeof e?l.o.parse(e):e;let n,o;try{n=(yield this.resolveExternalUri(i,t)).resolved}catch(K){n=i}if(o="string"==typeof e&&i.toString()===n.toString()?e:encodeURI(n.toString(!0)),null==t?void 0:t.allowContributedOpeners){const e="string"==typeof(null==t?void 0:t.allowContributedOpeners)?null==t?void 0:t.allowContributedOpeners:void 0;for(const t of this._externalOpeners){if(yield t.openExternal(o,{sourceUri:i,preferredOpenerId:e},s.T.None))return!0}}return this._defaultExternalOpener.openExternal(o,{sourceUri:i},s.T.None)}))}dispose(){this._validators.clear()}};lo=no([oo(0,v.$),oo(1,li.Hy)],lo);var co=i(98674),ho=i(8625),uo=i(73910),go=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},po=function(e,t){return function(i,n){t(i,n,e)}};class mo extends N.JT{constructor(e){super(),this.model=e,this._markersData=new Map,this._register((0,N.OF)((()=>{this.model.deltaDecorations([...this._markersData.keys()],[]),this._markersData.clear()})))}update(e,t){const i=[...this._markersData.keys()];this._markersData.clear();const n=this.model.deltaDecorations(i,t);for(let o=0;o<n.length;o++)this._markersData.set(n[o],e[o]);return 0!==i.length||0!==n.length}getMarker(e){return this._markersData.get(e.id)}}let fo=class extends N.JT{constructor(e,t){super(),this._markerService=t,this._onDidChangeMarker=this._register(new r.Q5),this._markerDecorations=new ci.Y9,e.getModels().forEach((e=>this._onModelAdded(e))),this._register(e.onModelAdded(this._onModelAdded,this)),this._register(e.onModelRemoved(this._onModelRemoved,this)),this._register(this._markerService.onMarkerChanged(this._handleMarkerChange,this))}dispose(){super.dispose(),this._markerDecorations.forEach((e=>e.dispose())),this._markerDecorations.clear()}getMarker(e,t){const i=this._markerDecorations.get(e);return i&&i.getMarker(t)||null}_handleMarkerChange(e){e.forEach((e=>{const t=this._markerDecorations.get(e);t&&this._updateDecorations(t)}))}_onModelAdded(e){const t=new mo(e);this._markerDecorations.set(e.uri,t),this._updateDecorations(t)}_onModelRemoved(e){var t;const i=this._markerDecorations.get(e.uri);i&&(i.dispose(),this._markerDecorations.delete(e.uri)),e.uri.scheme!==_t.lg.inMemory&&e.uri.scheme!==_t.lg.internal&&e.uri.scheme!==_t.lg.vscode||null===(t=this._markerService)||void 0===t||t.read({resource:e.uri}).map((e=>e.owner)).forEach((t=>this._markerService.remove(t,[e.uri])))}_updateDecorations(e){const t=this._markerService.read({resource:e.model.uri,take:500}),i=t.map((t=>({range:this._createDecorationRange(e.model,t),options:this._createDecorationOption(t)})));e.update(t,i)&&this._onDidChangeMarker.fire(e.model)}_createDecorationRange(e,t){let i=d.e.lift(t);if(t.severity!==co.ZL.Hint||this._hasMarkerTag(t,1)||this._hasMarkerTag(t,2)||(i=i.setEndPosition(i.startLineNumber,i.startColumn+2)),i=e.validateRange(i),i.isEmpty()){const t=e.getLineLastNonWhitespaceColumn(i.startLineNumber)||e.getLineMaxColumn(i.startLineNumber);if(1===t||i.endColumn>=t)return i;const n=e.getWordAtPosition(i.getStartPosition());n&&(i=new d.e(i.startLineNumber,n.startColumn,i.endLineNumber,n.endColumn))}else if(t.endColumn===Number.MAX_VALUE&&1===t.startColumn&&i.startLineNumber===i.endLineNumber){const n=e.getLineFirstNonWhitespaceColumn(t.startLineNumber);n<i.endColumn&&(i=new d.e(i.startLineNumber,n,i.endLineNumber,i.endColumn),t.startColumn=n)}return i}_createDecorationOption(e){let t,i,n,o,s;switch(e.severity){case co.ZL.Hint:t=this._hasMarkerTag(e,2)?void 0:this._hasMarkerTag(e,1)?"squiggly-unnecessary":"squiggly-hint",n=0;break;case co.ZL.Warning:t="squiggly-warning",i=(0,bt.EN)(ho.Re),n=20,s={color:(0,bt.EN)(uo.Ivo),position:y.F5.Inline};break;case co.ZL.Info:t="squiggly-info",i=(0,bt.EN)(ho.eS),n=10;break;case co.ZL.Error:default:t="squiggly-error",i=(0,bt.EN)(ho.lK),n=30,s={color:(0,bt.EN)(uo.Gj_),position:y.F5.Inline}}return e.tags&&(-1!==e.tags.indexOf(1)&&(o="squiggly-inline-unnecessary"),-1!==e.tags.indexOf(2)&&(o="squiggly-inline-deprecated")),{description:"marker-decoration",stickiness:1,className:t,showIfCollapsed:!0,overviewRuler:{color:i,position:y.sh.Right},minimap:s,zIndex:n,inlineClassName:o}}_hasMarkerTag(e,t){return!!e.tags&&e.tags.indexOf(t)>=0}};fo=go([po(0,x.q),po(1,co.lT)],fo);var _o=i(36357),vo=i(51200),bo=i(16830),Co=i(31106),wo=i(56811),yo=i(41264);const So={buttonBackground:yo.Il.fromHex("#0E639C"),buttonHoverBackground:yo.Il.fromHex("#006BB3"),buttonSeparator:yo.Il.white,buttonForeground:yo.Il.white};class Lo extends N.JT{constructor(e,t){super(),this._onDidClick=this._register(new r.Q5),this.options=t||Object.create(null),(0,di.jB)(this.options,So,!1),this.buttonForeground=this.options.buttonForeground,this.buttonBackground=this.options.buttonBackground,this.buttonHoverBackground=this.options.buttonHoverBackground,this.buttonSecondaryForeground=this.options.buttonSecondaryForeground,this.buttonSecondaryBackground=this.options.buttonSecondaryBackground,this.buttonSecondaryHoverBackground=this.options.buttonSecondaryHoverBackground,this.buttonBorder=this.options.buttonBorder,this._element=document.createElement("a"),this._element.classList.add("monaco-button"),this._element.tabIndex=0,this._element.setAttribute("role","button"),e.appendChild(this._element),this._register(Rn.o.addTarget(this._element)),[ft.tw.CLICK,Rn.t.Tap].forEach((e=>{this._register((0,ft.nm)(this._element,e,(e=>{this.enabled?this._onDidClick.fire(e):ft.zB.stop(e)})))})),this._register((0,ft.nm)(this._element,ft.tw.KEY_DOWN,(e=>{const t=new ii.y(e);let i=!1;this.enabled&&(t.equals(3)||t.equals(10))?(this._onDidClick.fire(e),i=!0):t.equals(9)&&(this._element.blur(),i=!0),i&&ft.zB.stop(t,!0)}))),this._register((0,ft.nm)(this._element,ft.tw.MOUSE_OVER,(e=>{this._element.classList.contains("disabled")||this.setHoverBackground()}))),this._register((0,ft.nm)(this._element,ft.tw.MOUSE_OUT,(e=>{this.applyStyles()}))),this.focusTracker=this._register((0,ft.go)(this._element)),this._register(this.focusTracker.onDidFocus((()=>{this.enabled&&this.setHoverBackground()}))),this._register(this.focusTracker.onDidBlur((()=>{this.enabled&&this.applyStyles()}))),this.applyStyles()}get onDidClick(){return this._onDidClick.event}setHoverBackground(){let e;e=this.options.secondary?this.buttonSecondaryHoverBackground?this.buttonSecondaryHoverBackground.toString():null:this.buttonHoverBackground?this.buttonHoverBackground.toString():null,e&&(this._element.style.backgroundColor=e)}style(e){this.buttonForeground=e.buttonForeground,this.buttonBackground=e.buttonBackground,this.buttonHoverBackground=e.buttonHoverBackground,this.buttonSecondaryForeground=e.buttonSecondaryForeground,this.buttonSecondaryBackground=e.buttonSecondaryBackground,this.buttonSecondaryHoverBackground=e.buttonSecondaryHoverBackground,this.buttonBorder=e.buttonBorder,this.applyStyles()}applyStyles(){if(this._element){let e,t;this.options.secondary?(t=this.buttonSecondaryForeground?this.buttonSecondaryForeground.toString():"",e=this.buttonSecondaryBackground?this.buttonSecondaryBackground.toString():""):(t=this.buttonForeground?this.buttonForeground.toString():"",e=this.buttonBackground?this.buttonBackground.toString():"");const i=this.buttonBorder?this.buttonBorder.toString():"";this._element.style.color=t,this._element.style.backgroundColor=e,this._element.style.borderWidth=i?"1px":"",this._element.style.borderStyle=i?"solid":"",this._element.style.borderColor=i}}get element(){return this._element}set label(e){this._element.classList.add("monaco-text-button"),this.options.supportIcons?(0,ft.mc)(this._element,...(0,wo.T)(e)):this._element.textContent=e,"string"==typeof this.options.title?this._element.title=this.options.title:this.options.title&&(this._element.title=e)}set enabled(e){e?(this._element.classList.remove("disabled"),this._element.setAttribute("aria-disabled",String(!1)),this._element.tabIndex=0):(this._element.classList.add("disabled"),this._element.setAttribute("aria-disabled",String(!0)))}get enabled(){return!this._element.classList.contains("disabled")}}var ko=i(67488);const xo="done",Do="active",No="infinite",Eo="infinite-long-running",Io="discrete",To={progressBarBackground:yo.Il.fromHex("#0E70C0")};class Mo extends N.JT{constructor(e,t){super(),this.options=t||Object.create(null),(0,di.jB)(this.options,To,!1),this.workedVal=0,this.progressBarBackground=this.options.progressBarBackground,this.showDelayedScheduler=this._register(new D.pY((()=>(0,ft.$Z)(this.element)),0)),this.longRunningScheduler=this._register(new D.pY((()=>this.infiniteLongRunning()),Mo.LONG_RUNNING_INFINITE_THRESHOLD)),this.create(e)}create(e){this.element=document.createElement("div"),this.element.classList.add("monaco-progress-container"),this.element.setAttribute("role","progressbar"),this.element.setAttribute("aria-valuemin","0"),e.appendChild(this.element),this.bit=document.createElement("div"),this.bit.classList.add("progress-bit"),this.element.appendChild(this.bit),this.applyStyles()}off(){this.bit.style.width="inherit",this.bit.style.opacity="1",this.element.classList.remove(Do,No,Eo,Io),this.workedVal=0,this.totalWork=void 0,this.longRunningScheduler.cancel()}stop(){return this.doDone(!1)}doDone(e){return this.element.classList.add(xo),this.element.classList.contains(No)?(this.bit.style.opacity="0",e?setTimeout((()=>this.off()),200):this.off()):(this.bit.style.width="inherit",e?setTimeout((()=>this.off()),200):this.off()),this}infinite(){return this.bit.style.width="2%",this.bit.style.opacity="1",this.element.classList.remove(Io,xo,Eo),this.element.classList.add(Do,No),this.longRunningScheduler.schedule(),this}infiniteLongRunning(){this.element.classList.add(Eo)}getContainer(){return this.element}style(e){this.progressBarBackground=e.progressBarBackground,this.applyStyles()}applyStyles(){if(this.bit){const e=this.progressBarBackground?this.progressBarBackground.toString():"";this.bit.style.backgroundColor=e}}}Mo.LONG_RUNNING_INFINITE_THRESHOLD=1e4;var Ao=i(44742);const Ro={},Oo=new Ao.R("quick-input-button-icon-");function Po(e){if(!e)return;let t;const i=e.dark.toString();return Ro[i]?t=Ro[i]:(t=Oo.nextId(),ft.fk(`.${t}, .hc-light .${t}`,`background-image: ${ft.wY(e.light||e.dark)}`),ft.fk(`.vs-dark .${t}, .hc-black .${t}`,`background-image: ${ft.wY(e.dark)}`),Ro[i]=t),t}var Fo=i(67746),Bo=i(31338);const Vo=ft.$;class Wo extends N.JT{constructor(e){super(),this.parent=e,this.onKeyDown=e=>ft.nm(this.inputBox.inputElement,ft.tw.KEY_DOWN,(t=>{e(new ii.y(t))})),this.onMouseDown=e=>ft.nm(this.inputBox.inputElement,ft.tw.MOUSE_DOWN,(t=>{e(new Mn.n(t))})),this.onDidChange=e=>this.inputBox.onDidChange(e),this.container=ft.R3(this.parent,Vo(".quick-input-box")),this.inputBox=this._register(new Bo.W(this.container,void 0))}get value(){return this.inputBox.value}set value(e){this.inputBox.value=e}select(e=null){this.inputBox.select(e)}isSelectionAtEnd(){return this.inputBox.isSelectionAtEnd()}get placeholder(){return this.inputBox.inputElement.getAttribute("placeholder")||""}set placeholder(e){this.inputBox.setPlaceHolder(e)}get ariaLabel(){return this.inputBox.getAriaLabel()}set ariaLabel(e){this.inputBox.setAriaLabel(e)}get password(){return"password"===this.inputBox.inputElement.type}set password(e){this.inputBox.inputElement.type=e?"password":"text"}setAttribute(e,t){this.inputBox.inputElement.setAttribute(e,t)}removeAttribute(e){this.inputBox.inputElement.removeAttribute(e)}showDecoration(e){e===Pt.Z.Ignore?this.inputBox.hideMessage():this.inputBox.showMessage({type:e===Pt.Z.Info?1:e===Pt.Z.Warning?2:3,content:""})}stylesForType(e){return this.inputBox.stylesForType(e===Pt.Z.Info?1:e===Pt.Z.Warning?2:3)}setFocus(){this.inputBox.focus()}layout(){this.inputBox.layout()}style(e){this.inputBox.style(e)}}var Ho=i(59834);const zo=ft.$;class jo{constructor(e,t,i){this.os=t,this.keyElements=new Set,this.options=i||Object.create(null),this.labelBackground=this.options.keybindingLabelBackground,this.labelForeground=this.options.keybindingLabelForeground,this.labelBorder=this.options.keybindingLabelBorder,this.labelBottomBorder=this.options.keybindingLabelBottomBorder,this.labelShadow=this.options.keybindingLabelShadow,this.domNode=ft.R3(e,zo(".monaco-keybinding")),this.didEverRender=!1,e.appendChild(this.domNode)}get element(){return this.domNode}set(e,t){this.didEverRender&&this.keybinding===e&&jo.areSame(this.matches,t)||(this.keybinding=e,this.matches=t,this.render())}render(){if(this.clear(),this.keybinding){const[e,t]=this.keybinding.getParts();e&&this.renderPart(this.domNode,e,this.matches?this.matches.firstPart:null),t&&(ft.R3(this.domNode,zo("span.monaco-keybinding-key-chord-separator",void 0," ")),this.renderPart(this.domNode,t,this.matches?this.matches.chordPart:null)),this.domNode.title=this.keybinding.getAriaLabel()||""}else this.options&&this.options.renderUnboundKeybindings&&this.renderUnbound(this.domNode);this.applyStyles(),this.didEverRender=!0}clear(){ft.PO(this.domNode),this.keyElements.clear()}renderPart(e,t,i){const n=Li.xo.modifierLabels[this.os];t.ctrlKey&&this.renderKey(e,n.ctrlKey,Boolean(null==i?void 0:i.ctrlKey),n.separator),t.shiftKey&&this.renderKey(e,n.shiftKey,Boolean(null==i?void 0:i.shiftKey),n.separator),t.altKey&&this.renderKey(e,n.altKey,Boolean(null==i?void 0:i.altKey),n.separator),t.metaKey&&this.renderKey(e,n.metaKey,Boolean(null==i?void 0:i.metaKey),n.separator);const o=t.keyLabel;o&&this.renderKey(e,o,Boolean(null==i?void 0:i.keyCode),"")}renderKey(e,t,i,n){ft.R3(e,this.createKeyElement(t,i?".highlight":"")),n&&ft.R3(e,zo("span.monaco-keybinding-key-separator",void 0,n))}renderUnbound(e){ft.R3(e,this.createKeyElement((0,Ft.NC)("unbound","Unbound")))}createKeyElement(e,t=""){const i=zo("span.monaco-keybinding-key"+t,void 0,e);return this.keyElements.add(i),i}style(e){this.labelBackground=e.keybindingLabelBackground,this.labelForeground=e.keybindingLabelForeground,this.labelBorder=e.keybindingLabelBorder,this.labelBottomBorder=e.keybindingLabelBottomBorder,this.labelShadow=e.keybindingLabelShadow,this.applyStyles()}applyStyles(){var e;if(this.element){for(const t of this.keyElements)this.labelBackground&&(t.style.backgroundColor=null===(e=this.labelBackground)||void 0===e?void 0:e.toString()),this.labelBorder&&(t.style.borderColor=this.labelBorder.toString()),this.labelBottomBorder&&(t.style.borderBottomColor=this.labelBottomBorder.toString()),this.labelShadow&&(t.style.boxShadow=`inset 0 -1px 0 ${this.labelShadow}`);this.labelForeground&&(this.element.style.color=this.labelForeground.toString())}}static areSame(e,t){return e===t||!e&&!t||!!e&&!!t&&(0,di.fS)(e.firstPart,t.firstPart)&&(0,di.fS)(e.chordPart,t.chordPart)}}const Uo=new D.Ue((()=>{const e=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});return{collator:e,collatorIsNumeric:e.resolvedOptions().numeric}}));new D.Ue((()=>({collator:new Intl.Collator(void 0,{numeric:!0})}))),new D.Ue((()=>({collator:new Intl.Collator(void 0,{numeric:!0,sensitivity:"accent"})})));function Ko(e,t,i){const n=e.toLowerCase(),o=t.toLowerCase(),s=function(e,t,i){const n=e.toLowerCase(),o=t.toLowerCase(),s=n.startsWith(i),r=o.startsWith(i);if(s!==r)return s?-1:1;if(s&&r){if(n.length<o.length)return-1;if(n.length>o.length)return 1}return 0}(e,t,i);if(s)return s;const r=n.endsWith(i);if(r!==o.endsWith(i))return r?-1:1;const a=function(e,t,i=!1){const n=e||"",o=t||"",s=Uo.value.collator.compare(n,o);return Uo.value.collatorIsNumeric&&0===s&&n!==o?n<o?-1:1:s}(n,o);return 0!==a?a:n.localeCompare(o)}var $o=i(49898),qo=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Go=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const Qo=ft.$;class Zo{constructor(e){this.hidden=!1,this._onChecked=new r.Q5,this.onChecked=this._onChecked.event,Object.assign(this,e)}get checked(){return!!this._checked}set checked(e){e!==this._checked&&(this._checked=e,this._onChecked.fire(e))}dispose(){this._onChecked.dispose()}}class Yo{get templateId(){return Yo.ID}renderTemplate(e){const t=Object.create(null);t.toDisposeElement=[],t.toDisposeTemplate=[],t.entry=ft.R3(e,Qo(".quick-input-list-entry"));const i=ft.R3(t.entry,Qo("label.quick-input-list-label"));t.toDisposeTemplate.push(ft.mu(i,ft.tw.CLICK,(e=>{t.checkbox.offsetParent||e.preventDefault()}))),t.checkbox=ft.R3(i,Qo("input.quick-input-list-checkbox")),t.checkbox.type="checkbox",t.toDisposeTemplate.push(ft.mu(t.checkbox,ft.tw.CHANGE,(e=>{t.element.checked=t.checkbox.checked})));const n=ft.R3(i,Qo(".quick-input-list-rows")),o=ft.R3(n,Qo(".quick-input-list-row")),s=ft.R3(n,Qo(".quick-input-list-row"));t.label=new Ho.g(o,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0});const r=ft.R3(o,Qo(".quick-input-list-entry-keybinding"));t.keybinding=new jo(r,I.OS);const a=ft.R3(s,Qo(".quick-input-list-label-meta"));return t.detail=new Ho.g(a,{supportHighlights:!0,supportIcons:!0}),t.separator=ft.R3(t.entry,Qo(".quick-input-list-separator")),t.actionBar=new On.o(t.entry),t.actionBar.domNode.classList.add("quick-input-list-entry-action-bar"),t.toDisposeTemplate.push(t.actionBar),t}renderElement(e,t,i){i.toDisposeElement=(0,N.B9)(i.toDisposeElement),i.element=e,i.checkbox.checked=e.checked,i.toDisposeElement.push(e.onChecked((e=>i.checkbox.checked=e)));const{labelHighlights:n,descriptionHighlights:o,detailHighlights:s}=e,r=Object.create(null);r.matches=n||[],r.descriptionTitle=e.saneDescription,r.descriptionMatches=o||[],r.extraClasses=e.item.iconClasses,r.italic=e.item.italic,r.strikethrough=e.item.strikethrough,i.label.setLabel(e.saneLabel,e.saneDescription,r),i.keybinding.set(e.item.keybinding),e.saneDetail&&i.detail.setLabel(e.saneDetail,void 0,{matches:s,title:e.saneDetail}),e.separator&&e.separator.label?(i.separator.textContent=e.separator.label,i.separator.style.display=""):i.separator.style.display="none",i.entry.classList.toggle("quick-input-list-separator-border",!!e.separator),i.actionBar.clear();const a=e.item.buttons;a&&a.length?(i.actionBar.push(a.map(((t,i)=>{let n=t.iconClass||(t.iconPath?Po(t.iconPath):void 0);t.alwaysVisible&&(n=n?`${n} always-visible`:"always-visible");const o=new Vn.aU(`id-${i}`,"",n,!0,(()=>Go(this,void 0,void 0,(function*(){e.fireButtonTriggered({button:t,item:e.item})}))));return o.tooltip=t.tooltip||"",o})),{icon:!0,label:!1}),i.entry.classList.add("has-actions")):i.entry.classList.remove("has-actions")}disposeElement(e,t,i){i.toDisposeElement=(0,N.B9)(i.toDisposeElement)}disposeTemplate(e){e.toDisposeElement=(0,N.B9)(e.toDisposeElement),e.toDisposeTemplate=(0,N.B9)(e.toDisposeTemplate)}}Yo.ID="listelement";class Jo{getHeight(e){return e.saneDetail?44:22}getTemplateId(e){return Yo.ID}}var Xo;!function(e){e[e.First=1]="First",e[e.Second=2]="Second",e[e.Last=3]="Last",e[e.Next=4]="Next",e[e.Previous=5]="Previous",e[e.NextPage=6]="NextPage",e[e.PreviousPage=7]="PreviousPage"}(Xo||(Xo={}));class es{constructor(e,t,i){this.parent=e,this.inputElements=[],this.elements=[],this.elementsToIndexes=new Map,this.matchOnDescription=!1,this.matchOnDetail=!1,this.matchOnLabel=!0,this.matchOnLabelMode="fuzzy",this.matchOnMeta=!0,this.sortByLabel=!0,this._onChangedAllVisibleChecked=new r.Q5,this.onChangedAllVisibleChecked=this._onChangedAllVisibleChecked.event,this._onChangedCheckedCount=new r.Q5,this.onChangedCheckedCount=this._onChangedCheckedCount.event,this._onChangedVisibleCount=new r.Q5,this.onChangedVisibleCount=this._onChangedVisibleCount.event,this._onChangedCheckedElements=new r.Q5,this.onChangedCheckedElements=this._onChangedCheckedElements.event,this._onButtonTriggered=new r.Q5,this.onButtonTriggered=this._onButtonTriggered.event,this._onKeyDown=new r.Q5,this.onKeyDown=this._onKeyDown.event,this._onLeave=new r.Q5,this.onLeave=this._onLeave.event,this._fireCheckedEvents=!0,this.elementDisposables=[],this.disposables=[],this.id=t,this.container=ft.R3(this.parent,Qo(".quick-input-list"));const n=new Jo,o=new is;this.list=i.createList("QuickInput",this.container,n,[new Yo],{identityProvider:{getId:e=>e.saneLabel},setRowLineHeight:!1,multipleSelectionSupport:!1,horizontalScrolling:!1,accessibilityProvider:o}),this.list.getHTMLElement().id=t,this.disposables.push(this.list),this.disposables.push(this.list.onKeyDown((e=>{const t=new ii.y(e);switch(t.keyCode){case 10:this.toggleCheckbox();break;case 31:(I.dz?e.metaKey:e.ctrlKey)&&this.list.setFocus((0,Ce.w6)(this.list.length));break;case 16:{const e=this.list.getFocus();1===e.length&&0===e[0]&&this._onLeave.fire();break}case 18:{const e=this.list.getFocus();1===e.length&&e[0]===this.list.length-1&&this._onLeave.fire();break}}this._onKeyDown.fire(t)}))),this.disposables.push(this.list.onMouseDown((e=>{2!==e.browserEvent.button&&e.browserEvent.preventDefault()}))),this.disposables.push(ft.nm(this.container,ft.tw.CLICK,(e=>{(e.x||e.y)&&this._onLeave.fire()}))),this.disposables.push(this.list.onMouseMiddleClick((e=>{this._onLeave.fire()}))),this.disposables.push(this.list.onContextMenu((e=>{"number"==typeof e.index&&(e.browserEvent.preventDefault(),this.list.setSelection([e.index]))}))),this.disposables.push(this._onChangedAllVisibleChecked,this._onChangedCheckedCount,this._onChangedVisibleCount,this._onChangedCheckedElements,this._onButtonTriggered,this._onLeave,this._onKeyDown)}get onDidChangeFocus(){return r.ju.map(this.list.onDidChangeFocus,(e=>e.elements.map((e=>e.item))))}get onDidChangeSelection(){return r.ju.map(this.list.onDidChangeSelection,(e=>({items:e.elements.map((e=>e.item)),event:e.browserEvent})))}get scrollTop(){return this.list.scrollTop}set scrollTop(e){this.list.scrollTop=e}getAllVisibleChecked(){return this.allVisibleChecked(this.elements,!1)}allVisibleChecked(e,t=!0){for(let i=0,n=e.length;i<n;i++){const n=e[i];if(!n.hidden){if(!n.checked)return!1;t=!0}}return t}getCheckedCount(){let e=0;const t=this.elements;for(let i=0,n=t.length;i<n;i++)t[i].checked&&e++;return e}getVisibleCount(){let e=0;const t=this.elements;for(let i=0,n=t.length;i<n;i++)t[i].hidden||e++;return e}setAllVisibleChecked(e){try{this._fireCheckedEvents=!1,this.elements.forEach((t=>{t.hidden||(t.checked=e)}))}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}setElements(e){this.elementDisposables=(0,N.B9)(this.elementDisposables);const t=e=>this.fireButtonTriggered(e);this.inputElements=e,this.elements=e.reduce(((i,n,o)=>{var s,r,a;if("separator"!==n.type){const l=o&&e[o-1],c=n.label&&n.label.replace(/\r?\n/g," "),d=(0,Hn.Ho)(c).text.trim(),h=n.meta&&n.meta.replace(/\r?\n/g," "),u=n.description&&n.description.replace(/\r?\n/g," "),g=n.detail&&n.detail.replace(/\r?\n/g," "),p=n.ariaLabel||[c,u,g].map((e=>(0,Wn.JL)(e))).filter((e=>!!e)).join(", "),m=this.parent.classList.contains("show-checkboxes");i.push(new Zo({hasCheckbox:m,index:o,item:n,saneLabel:c,saneSortLabel:d,saneMeta:h,saneAriaLabel:p,saneDescription:u,saneDetail:g,labelHighlights:null===(s=n.highlights)||void 0===s?void 0:s.label,descriptionHighlights:null===(r=n.highlights)||void 0===r?void 0:r.description,detailHighlights:null===(a=n.highlights)||void 0===a?void 0:a.detail,checked:!1,separator:l&&"separator"===l.type?l:void 0,fireButtonTriggered:t}))}return i}),[]),this.elementDisposables.push(...this.elements),this.elementDisposables.push(...this.elements.map((e=>e.onChecked((()=>this.fireCheckedEvents()))))),this.elementsToIndexes=this.elements.reduce(((e,t,i)=>(e.set(t.item,i),e)),new Map),this.list.splice(0,this.list.length),this.list.splice(0,this.list.length,this.elements),this._onChangedVisibleCount.fire(this.elements.length)}getFocusedElements(){return this.list.getFocusedElements().map((e=>e.item))}setFocusedElements(e){if(this.list.setFocus(e.filter((e=>this.elementsToIndexes.has(e))).map((e=>this.elementsToIndexes.get(e)))),e.length>0){const e=this.list.getFocus()[0];"number"==typeof e&&this.list.reveal(e)}}getActiveDescendant(){return this.list.getHTMLElement().getAttribute("aria-activedescendant")}setSelectedElements(e){this.list.setSelection(e.filter((e=>this.elementsToIndexes.has(e))).map((e=>this.elementsToIndexes.get(e))))}getCheckedElements(){return this.elements.filter((e=>e.checked)).map((e=>e.item))}setCheckedElements(e){try{this._fireCheckedEvents=!1;const t=new Set;for(const i of e)t.add(i);for(const e of this.elements)e.checked=t.has(e.item)}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}set enabled(e){this.list.getHTMLElement().style.pointerEvents=e?"":"none"}focus(e){if(!this.list.length)return;switch(e===Xo.Next&&this.list.getFocus()[0]===this.list.length-1&&(e=Xo.First),e===Xo.Previous&&0===this.list.getFocus()[0]&&(e=Xo.Last),e===Xo.Second&&this.list.length<2&&(e=Xo.First),e){case Xo.First:this.list.focusFirst();break;case Xo.Second:this.list.focusNth(1);break;case Xo.Last:this.list.focusLast();break;case Xo.Next:this.list.focusNext();break;case Xo.Previous:this.list.focusPrevious();break;case Xo.NextPage:this.list.focusNextPage();break;case Xo.PreviousPage:this.list.focusPreviousPage()}const t=this.list.getFocus()[0];"number"==typeof t&&this.list.reveal(t)}clearFocus(){this.list.setFocus([])}domFocus(){this.list.domFocus()}layout(e){this.list.getHTMLElement().style.maxHeight=e?`calc(${44*Math.floor(e/44)}px)`:"",this.list.layout()}filter(e){if(!(this.sortByLabel||this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))return this.list.layout(),!1;const t=e;if((e=e.trim())&&(this.matchOnLabel||this.matchOnDescription||this.matchOnDetail)){let i;this.elements.forEach((n=>{let o;o="fuzzy"===this.matchOnLabelMode?this.matchOnLabel?(0,T.f6)((0,Hn.Gt)(e,(0,Hn.Ho)(n.saneLabel))):void 0:this.matchOnLabel?(0,T.f6)(function(e,t){const{text:i,iconOffsets:n}=t;if(!n||0===n.length)return ts(e,i);const o=(0,f.j3)(i," "),s=i.length-o.length,r=ts(e,o);if(r)for(const a of r){const e=n[a.start+s]+s;a.start+=e,a.end+=e}return r}(t,(0,Hn.Ho)(n.saneLabel))):void 0;const s=this.matchOnDescription?(0,T.f6)((0,Hn.Gt)(e,(0,Hn.Ho)(n.saneDescription||""))):void 0,r=this.matchOnDetail?(0,T.f6)((0,Hn.Gt)(e,(0,Hn.Ho)(n.saneDetail||""))):void 0,a=this.matchOnMeta?(0,T.f6)((0,Hn.Gt)(e,(0,Hn.Ho)(n.saneMeta||""))):void 0;if(o||s||r||a?(n.labelHighlights=o,n.descriptionHighlights=s,n.detailHighlights=r,n.hidden=!1):(n.labelHighlights=void 0,n.descriptionHighlights=void 0,n.detailHighlights=void 0,n.hidden=!n.item.alwaysShow),n.separator=void 0,!this.sortByLabel){const e=n.index&&this.inputElements[n.index-1];i=e&&"separator"===e.type?e:i,i&&!n.hidden&&(n.separator=i,i=void 0)}}))}else this.elements.forEach((e=>{e.labelHighlights=void 0,e.descriptionHighlights=void 0,e.detailHighlights=void 0,e.hidden=!1;const t=e.index&&this.inputElements[e.index-1];e.separator=t&&"separator"===t.type?t:void 0}));const i=this.elements.filter((e=>!e.hidden));if(this.sortByLabel&&e){const t=e.toLowerCase();i.sort(((e,i)=>function(e,t,i){const n=e.labelHighlights||[],o=t.labelHighlights||[];if(n.length&&!o.length)return-1;if(!n.length&&o.length)return 1;if(0===n.length&&0===o.length)return 0;return Ko(e.saneSortLabel,t.saneSortLabel,i)}(e,i,t)))}return this.elementsToIndexes=i.reduce(((e,t,i)=>(e.set(t.item,i),e)),new Map),this.list.splice(0,this.list.length,i),this.list.setFocus([]),this.list.layout(),this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedVisibleCount.fire(i.length),!0}toggleCheckbox(){try{this._fireCheckedEvents=!1;const e=this.list.getFocusedElements(),t=this.allVisibleChecked(e);for(const i of e)i.checked=!t}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}display(e){this.container.style.display=e?"":"none"}isDisplayed(){return"none"!==this.container.style.display}dispose(){this.elementDisposables=(0,N.B9)(this.elementDisposables),this.disposables=(0,N.B9)(this.disposables)}fireCheckedEvents(){this._fireCheckedEvents&&(this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedCheckedCount.fire(this.getCheckedCount()),this._onChangedCheckedElements.fire(this.getCheckedElements()))}fireButtonTriggered(e){this._onButtonTriggered.fire(e)}style(e){this.list.style(e)}}function ts(e,t){const i=t.toLowerCase().indexOf(e.toLowerCase());return-1!==i?[{start:i,end:i+e.length}]:null}qo([$o.H],es.prototype,"onDidChangeFocus",null),qo([$o.H],es.prototype,"onDidChangeSelection",null);class is{getWidgetAriaLabel(){return(0,Ft.NC)("quickInput","Quick Input")}getAriaLabel(e){var t;return(null===(t=e.separator)||void 0===t?void 0:t.label)?`${e.saneAriaLabel}, ${e.separator.label}`:e.saneAriaLabel}getWidgetRole(){return"listbox"}getRole(e){return e.hasCheckbox?"checkbox":"option"}isChecked(e){if(e.hasCheckbox)return{value:e.checked,onDidChange:e.onChecked}}}var ns=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const os=ft.$,ss={iconClass:Wn.lA.quickInputBack.classNames,tooltip:(0,Ft.NC)("quickInput.back","Back"),handle:-1};class rs extends N.JT{constructor(e){super(),this.ui=e,this.visible=!1,this._enabled=!0,this._busy=!1,this._ignoreFocusOut=!1,this._buttons=[],this.noValidationMessage=rs.noPromptMessage,this._severity=Pt.Z.Ignore,this.buttonsUpdated=!1,this.onDidTriggerButtonEmitter=this._register(new r.Q5),this.onDidHideEmitter=this._register(new r.Q5),this.onDisposeEmitter=this._register(new r.Q5),this.visibleDisposables=this._register(new N.SL),this.onDidHide=this.onDidHideEmitter.event}get title(){return this._title}set title(e){this._title=e,this.update()}get description(){return this._description}set description(e){this._description=e,this.update()}get step(){return this._steps}set step(e){this._steps=e,this.update()}get totalSteps(){return this._totalSteps}set totalSteps(e){this._totalSteps=e,this.update()}get enabled(){return this._enabled}set enabled(e){this._enabled=e,this.update()}get contextKey(){return this._contextKey}set contextKey(e){this._contextKey=e,this.update()}get busy(){return this._busy}set busy(e){this._busy=e,this.update()}get ignoreFocusOut(){return this._ignoreFocusOut}set ignoreFocusOut(e){const t=this._ignoreFocusOut!==e&&!I.gn;this._ignoreFocusOut=e&&!I.gn,t&&this.update()}get buttons(){return this._buttons}set buttons(e){this._buttons=e,this.buttonsUpdated=!0,this.update()}get validationMessage(){return this._validationMessage}set validationMessage(e){this._validationMessage=e,this.update()}get severity(){return this._severity}set severity(e){this._severity=e,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.onDidTriggerButton((e=>{-1!==this.buttons.indexOf(e)&&this.onDidTriggerButtonEmitter.fire(e)}))),this.ui.show(this),this.visible=!0,this._lastValidationMessage=void 0,this._lastSeverity=void 0,this.buttons.length&&(this.buttonsUpdated=!0),this.update())}hide(){this.visible&&this.ui.hide()}didHide(e=Fo.Jq.Other){this.visible=!1,this.visibleDisposables.clear(),this.onDidHideEmitter.fire({reason:e})}update(){if(!this.visible)return;const e=this.getTitle();e&&this.ui.title.textContent!==e?this.ui.title.textContent=e:e||" "===this.ui.title.innerHTML||(this.ui.title.innerText="\xa0");const t=this.getDescription();if(this.ui.description1.textContent!==t&&(this.ui.description1.textContent=t),this.ui.description2.textContent!==t&&(this.ui.description2.textContent=t),this.busy&&!this.busyDelay&&(this.busyDelay=new D._F,this.busyDelay.setIfNotSet((()=>{this.visible&&this.ui.progressBar.infinite()}),800)),!this.busy&&this.busyDelay&&(this.ui.progressBar.stop(),this.busyDelay.cancel(),this.busyDelay=void 0),this.buttonsUpdated){this.buttonsUpdated=!1,this.ui.leftActionBar.clear();const e=this.buttons.filter((e=>e===ss));this.ui.leftActionBar.push(e.map(((e,t)=>{const i=new Vn.aU(`id-${t}`,"",e.iconClass||Po(e.iconPath),!0,(()=>ns(this,void 0,void 0,(function*(){this.onDidTriggerButtonEmitter.fire(e)}))));return i.tooltip=e.tooltip||"",i})),{icon:!0,label:!1}),this.ui.rightActionBar.clear();const t=this.buttons.filter((e=>e!==ss));this.ui.rightActionBar.push(t.map(((e,t)=>{const i=new Vn.aU(`id-${t}`,"",e.iconClass||Po(e.iconPath),!0,(()=>ns(this,void 0,void 0,(function*(){this.onDidTriggerButtonEmitter.fire(e)}))));return i.tooltip=e.tooltip||"",i})),{icon:!0,label:!1})}this.ui.ignoreFocusOut=this.ignoreFocusOut,this.ui.setEnabled(this.enabled),this.ui.setContextKey(this.contextKey);const i=this.validationMessage||this.noValidationMessage;this._lastValidationMessage!==i&&(this._lastValidationMessage=i,ft.mc(this.ui.message,...(0,wo.T)(i))),this._lastSeverity!==this.severity&&(this._lastSeverity=this.severity,this.showMessageDecoration(this.severity))}getTitle(){return this.title&&this.step?`${this.title} (${this.getSteps()})`:this.title?this.title:this.step?this.getSteps():""}getDescription(){return this.description||""}getSteps(){return this.step&&this.totalSteps?(0,Ft.NC)("quickInput.steps","{0}/{1}",this.step,this.totalSteps):this.step?String(this.step):""}showMessageDecoration(e){if(this.ui.inputBox.showDecoration(e),e!==Pt.Z.Ignore){const t=this.ui.inputBox.stylesForType(e);this.ui.message.style.color=t.foreground?`${t.foreground}`:"",this.ui.message.style.backgroundColor=t.background?`${t.background}`:"",this.ui.message.style.border=t.border?`1px solid ${t.border}`:"",this.ui.message.style.marginBottom="-2px"}else this.ui.message.style.color="",this.ui.message.style.backgroundColor="",this.ui.message.style.border="",this.ui.message.style.marginBottom=""}dispose(){this.hide(),this.onDisposeEmitter.fire(),super.dispose()}}rs.noPromptMessage=(0,Ft.NC)("inputModeEntry","Press 'Enter' to confirm your input or 'Escape' to cancel");class as extends rs{constructor(){super(...arguments),this._value="",this.onDidChangeValueEmitter=this._register(new r.Q5),this.onWillAcceptEmitter=this._register(new r.Q5),this.onDidAcceptEmitter=this._register(new r.Q5),this.onDidCustomEmitter=this._register(new r.Q5),this._items=[],this.itemsUpdated=!1,this._canSelectMany=!1,this._canAcceptInBackground=!1,this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._autoFocusOnList=!0,this._keepScrollPosition=!1,this._itemActivation=this.ui.isScreenReaderOptimized()?Fo.jG.NONE:Fo.jG.FIRST,this._activeItems=[],this.activeItemsUpdated=!1,this.activeItemsToConfirm=[],this.onDidChangeActiveEmitter=this._register(new r.Q5),this._selectedItems=[],this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=[],this.onDidChangeSelectionEmitter=this._register(new r.Q5),this.onDidTriggerItemButtonEmitter=this._register(new r.Q5),this.valueSelectionUpdated=!0,this._ok="default",this._customButton=!1,this.filterValue=e=>e,this.onDidChangeValue=this.onDidChangeValueEmitter.event,this.onWillAccept=this.onWillAcceptEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event,this.onDidChangeActive=this.onDidChangeActiveEmitter.event,this.onDidChangeSelection=this.onDidChangeSelectionEmitter.event,this.onDidTriggerItemButton=this.onDidTriggerItemButtonEmitter.event}get quickNavigate(){return this._quickNavigate}set quickNavigate(e){this._quickNavigate=e,this.update()}get value(){return this._value}set value(e){this.doSetValue(e)}doSetValue(e,t){if(this._value!==e){if(this._value=e,t||this.update(),this.visible){this.ui.list.filter(this.filterValue(this._value))&&this.trySelectFirst()}this.onDidChangeValueEmitter.fire(this._value)}}set ariaLabel(e){this._ariaLabel=e,this.update()}get ariaLabel(){return this._ariaLabel}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.update()}get items(){return this._items}get scrollTop(){return this.ui.list.scrollTop}set scrollTop(e){this.ui.list.scrollTop=e}set items(e){this._items=e,this.itemsUpdated=!0,this.update()}get canSelectMany(){return this._canSelectMany}set canSelectMany(e){this._canSelectMany=e,this.update()}get canAcceptInBackground(){return this._canAcceptInBackground}set canAcceptInBackground(e){this._canAcceptInBackground=e}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(e){this._matchOnDescription=e,this.update()}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(e){this._matchOnDetail=e,this.update()}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(e){this._matchOnLabel=e,this.update()}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(e){this._matchOnLabelMode=e,this.update()}get sortByLabel(){return this._sortByLabel}set sortByLabel(e){this._sortByLabel=e,this.update()}get autoFocusOnList(){return this._autoFocusOnList}set autoFocusOnList(e){this._autoFocusOnList=e,this.update()}get keepScrollPosition(){return this._keepScrollPosition}set keepScrollPosition(e){this._keepScrollPosition=e}get itemActivation(){return this._itemActivation}set itemActivation(e){this._itemActivation=e}get activeItems(){return this._activeItems}set activeItems(e){this._activeItems=e,this.activeItemsUpdated=!0,this.update()}get selectedItems(){return this._selectedItems}set selectedItems(e){this._selectedItems=e,this.selectedItemsUpdated=!0,this.update()}get keyMods(){return this._quickNavigate?Fo.X5:this.ui.keyMods}set valueSelection(e){this._valueSelection=e,this.valueSelectionUpdated=!0,this.update()}get customButton(){return this._customButton}set customButton(e){this._customButton=e,this.update()}get customLabel(){return this._customButtonLabel}set customLabel(e){this._customButtonLabel=e,this.update()}get customHover(){return this._customButtonHover}set customHover(e){this._customButtonHover=e,this.update()}get ok(){return this._ok}set ok(e){this._ok=e,this.update()}get hideInput(){return!!this._hideInput}set hideInput(e){this._hideInput=e,this.update()}trySelectFirst(){this.autoFocusOnList&&(this.canSelectMany||this.ui.list.focus(Xo.First))}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange((e=>{this.doSetValue(e,!0)}))),this.visibleDisposables.add(this.ui.inputBox.onMouseDown((e=>{this.autoFocusOnList||this.ui.list.clearFocus()}))),this.visibleDisposables.add((this._hideInput?this.ui.list:this.ui.inputBox).onKeyDown((e=>{switch(e.keyCode){case 18:this.ui.list.focus(Xo.Next),this.canSelectMany&&this.ui.list.domFocus(),ft.zB.stop(e,!0);break;case 16:this.ui.list.getFocusedElements().length?this.ui.list.focus(Xo.Previous):this.ui.list.focus(Xo.Last),this.canSelectMany&&this.ui.list.domFocus(),ft.zB.stop(e,!0);break;case 12:this.ui.list.focus(Xo.NextPage),this.canSelectMany&&this.ui.list.domFocus(),ft.zB.stop(e,!0);break;case 11:this.ui.list.focus(Xo.PreviousPage),this.canSelectMany&&this.ui.list.domFocus(),ft.zB.stop(e,!0);break;case 17:if(!this._canAcceptInBackground)return;if(!this.ui.inputBox.isSelectionAtEnd())return;this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!0));break;case 14:!e.ctrlKey&&!e.metaKey||e.shiftKey||e.altKey||(this.ui.list.focus(Xo.First),ft.zB.stop(e,!0));break;case 13:!e.ctrlKey&&!e.metaKey||e.shiftKey||e.altKey||(this.ui.list.focus(Xo.Last),ft.zB.stop(e,!0))}}))),this.visibleDisposables.add(this.ui.onDidAccept((()=>{this.canSelectMany?this.ui.list.getCheckedElements().length||(this._selectedItems=[],this.onDidChangeSelectionEmitter.fire(this.selectedItems)):this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems)),this.handleAccept(!1)}))),this.visibleDisposables.add(this.ui.onDidCustom((()=>{this.onDidCustomEmitter.fire()}))),this.visibleDisposables.add(this.ui.list.onDidChangeFocus((e=>{this.activeItemsUpdated||this.activeItemsToConfirm!==this._activeItems&&(0,Ce.fS)(e,this._activeItems,((e,t)=>e===t))||(this._activeItems=e,this.onDidChangeActiveEmitter.fire(e))}))),this.visibleDisposables.add(this.ui.list.onDidChangeSelection((({items:e,event:t})=>{this.canSelectMany?e.length&&this.ui.list.setSelectedElements([]):this.selectedItemsToConfirm!==this._selectedItems&&(0,Ce.fS)(e,this._selectedItems,((e,t)=>e===t))||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e),e.length&&this.handleAccept(t instanceof MouseEvent&&1===t.button))}))),this.visibleDisposables.add(this.ui.list.onChangedCheckedElements((e=>{this.canSelectMany&&(this.selectedItemsToConfirm!==this._selectedItems&&(0,Ce.fS)(e,this._selectedItems,((e,t)=>e===t))||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e)))}))),this.visibleDisposables.add(this.ui.list.onButtonTriggered((e=>this.onDidTriggerItemButtonEmitter.fire(e)))),this.visibleDisposables.add(this.registerQuickNavigation()),this.valueSelectionUpdated=!0),super.show()}handleAccept(e){let t=!1;this.onWillAcceptEmitter.fire({veto:()=>t=!0}),t||this.onDidAcceptEmitter.fire({inBackground:e})}registerQuickNavigation(){return ft.nm(this.ui.container,ft.tw.KEY_UP,(e=>{if(this.canSelectMany||!this._quickNavigate)return;const t=new ii.y(e),i=t.keyCode;this._quickNavigate.keybindings.some((e=>{const[n,o]=e.getParts();return!o&&(n.shiftKey&&4===i?!(t.ctrlKey||t.altKey||t.metaKey):!(!n.altKey||6!==i)||(!(!n.ctrlKey||5!==i)||!(!n.metaKey||57!==i)))}))&&(this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!1)),this._quickNavigate=void 0)}))}update(){if(!this.visible)return;const e=this.keepScrollPosition?this.scrollTop:0,t=!!this._hideInput&&this._items.length>0;this.ui.container.classList.toggle("hidden-input",t&&!this.description);const i={title:!!this.title||!!this.step||!!this.buttons.length,description:!!this.description,checkAll:this.canSelectMany&&!this._hideCheckAll,checkBox:this.canSelectMany,inputBox:!t,progressBar:!t,visibleCount:!0,count:this.canSelectMany,ok:"default"===this.ok?this.canSelectMany:this.ok,list:!0,message:!!this.validationMessage,customButton:this.customButton};this.ui.setVisibilities(i),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||"");let n=this.ariaLabel;if(n||(n=this.placeholder||as.DEFAULT_ARIA_LABEL,this.title&&(n+=` - ${this.title}`)),this.ui.inputBox.ariaLabel!==n&&(this.ui.inputBox.ariaLabel=n),this.ui.list.matchOnDescription=this.matchOnDescription,this.ui.list.matchOnDetail=this.matchOnDetail,this.ui.list.matchOnLabel=this.matchOnLabel,this.ui.list.matchOnLabelMode=this.matchOnLabelMode,this.ui.list.sortByLabel=this.sortByLabel,this.itemsUpdated)switch(this.itemsUpdated=!1,this.ui.list.setElements(this.items),this.ui.list.filter(this.filterValue(this.ui.inputBox.value)),this.ui.checkAll.checked=this.ui.list.getAllVisibleChecked(),this.ui.visibleCount.setCount(this.ui.list.getVisibleCount()),this.ui.count.setCount(this.ui.list.getCheckedCount()),this._itemActivation){case Fo.jG.NONE:this._itemActivation=Fo.jG.FIRST;break;case Fo.jG.SECOND:this.ui.list.focus(Xo.Second),this._itemActivation=Fo.jG.FIRST;break;case Fo.jG.LAST:this.ui.list.focus(Xo.Last),this._itemActivation=Fo.jG.FIRST;break;default:this.trySelectFirst()}this.ui.container.classList.contains("show-checkboxes")!==!!this.canSelectMany&&(this.canSelectMany?this.ui.list.clearFocus():this.trySelectFirst()),this.activeItemsUpdated&&(this.activeItemsUpdated=!1,this.activeItemsToConfirm=this._activeItems,this.ui.list.setFocusedElements(this.activeItems),this.activeItemsToConfirm===this._activeItems&&(this.activeItemsToConfirm=null)),this.selectedItemsUpdated&&(this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=this._selectedItems,this.canSelectMany?this.ui.list.setCheckedElements(this.selectedItems):this.ui.list.setSelectedElements(this.selectedItems),this.selectedItemsToConfirm===this._selectedItems&&(this.selectedItemsToConfirm=null)),this.ui.customButton.label=this.customLabel||"",this.ui.customButton.element.title=this.customHover||"",this.ui.setComboboxAccessibility(!0),i.inputBox||(this.ui.list.domFocus(),this.canSelectMany&&this.ui.list.focus(Xo.First)),this.keepScrollPosition&&(this.scrollTop=e)}}as.DEFAULT_ARIA_LABEL=(0,Ft.NC)("quickInputBox.ariaLabel","Type to narrow down results.");class ls extends N.JT{constructor(e){super(),this.options=e,this.comboboxAccessibility=!1,this.enabled=!0,this.onDidAcceptEmitter=this._register(new r.Q5),this.onDidCustomEmitter=this._register(new r.Q5),this.onDidTriggerButtonEmitter=this._register(new r.Q5),this.keyMods={ctrlCmd:!1,alt:!1},this.controller=null,this.onShowEmitter=this._register(new r.Q5),this.onShow=this.onShowEmitter.event,this.onHideEmitter=this._register(new r.Q5),this.onHide=this.onHideEmitter.event,this.idPrefix=e.idPrefix,this.parentElement=e.container,this.styles=e.styles,this.registerKeyModsListeners()}registerKeyModsListeners(){const e=e=>{this.keyMods.ctrlCmd=e.ctrlKey||e.metaKey,this.keyMods.alt=e.altKey};this._register(ft.nm(window,ft.tw.KEY_DOWN,e,!0)),this._register(ft.nm(window,ft.tw.KEY_UP,e,!0)),this._register(ft.nm(window,ft.tw.MOUSE_DOWN,e,!0))}getUI(){if(this.ui)return this.ui;const e=ft.R3(this.parentElement,os(".quick-input-widget.show-file-icons"));e.tabIndex=-1,e.style.display="none";const t=ft.dS(e),i=ft.R3(e,os(".quick-input-titlebar")),n=this._register(new On.o(i));n.domNode.classList.add("quick-input-left-action-bar");const o=ft.R3(i,os(".quick-input-title")),s=this._register(new On.o(i));s.domNode.classList.add("quick-input-right-action-bar");const r=ft.R3(e,os(".quick-input-description")),a=ft.R3(e,os(".quick-input-header")),l=ft.R3(a,os("input.quick-input-check-all"));l.type="checkbox",l.setAttribute("aria-label",(0,Ft.NC)("quickInput.checkAll","Toggle all checkboxes")),this._register(ft.mu(l,ft.tw.CHANGE,(e=>{const t=l.checked;y.setAllVisibleChecked(t)}))),this._register(ft.nm(l,ft.tw.CLICK,(e=>{(e.x||e.y)&&u.setFocus()})));const c=ft.R3(a,os(".quick-input-description")),d=ft.R3(a,os(".quick-input-and-message")),h=ft.R3(d,os(".quick-input-filter")),u=this._register(new Wo(h));u.setAttribute("aria-describedby",`${this.idPrefix}message`);const g=ft.R3(h,os(".quick-input-visible-count"));g.setAttribute("aria-live","polite"),g.setAttribute("aria-atomic","true");const p=new ko.Z(g,{countFormat:(0,Ft.NC)({key:"quickInput.visibleCount",comment:["This tells the user how many items are shown in a list of items to select from. The items can be anything. Currently not visible, but read by screen readers."]},"{0} Results")}),m=ft.R3(h,os(".quick-input-count"));m.setAttribute("aria-live","polite");const f=new ko.Z(m,{countFormat:(0,Ft.NC)({key:"quickInput.countSelected",comment:["This tells the user how many items are selected in a list of items to select from. The items can be anything."]},"{0} Selected")}),_=ft.R3(a,os(".quick-input-action")),v=new Lo(_);v.label=(0,Ft.NC)("ok","OK"),this._register(v.onDidClick((e=>{this.onDidAcceptEmitter.fire()})));const b=ft.R3(a,os(".quick-input-action")),C=new Lo(b);C.label=(0,Ft.NC)("custom","Custom"),this._register(C.onDidClick((e=>{this.onDidCustomEmitter.fire()})));const w=ft.R3(d,os(`#${this.idPrefix}message.quick-input-message`)),y=this._register(new es(e,this.idPrefix+"list",this.options));this._register(y.onChangedAllVisibleChecked((e=>{l.checked=e}))),this._register(y.onChangedVisibleCount((e=>{p.setCount(e)}))),this._register(y.onChangedCheckedCount((e=>{f.setCount(e)}))),this._register(y.onLeave((()=>{setTimeout((()=>{u.setFocus(),this.controller instanceof as&&this.controller.canSelectMany&&y.clearFocus()}),0)}))),this._register(y.onDidChangeFocus((()=>{this.comboboxAccessibility&&this.getUI().inputBox.setAttribute("aria-activedescendant",this.getUI().list.getActiveDescendant()||"")})));const S=new Mo(e);S.getContainer().classList.add("quick-input-progress");const L=ft.go(e);return this._register(L),this._register(ft.nm(e,ft.tw.FOCUS,(e=>{this.previousFocusElement=e.relatedTarget instanceof HTMLElement?e.relatedTarget:void 0}),!0)),this._register(L.onDidBlur((()=>{this.getUI().ignoreFocusOut||this.options.ignoreFocusOut()||this.hide(Fo.Jq.Blur),this.previousFocusElement=void 0}))),this._register(ft.nm(e,ft.tw.FOCUS,(e=>{u.setFocus()}))),this._register(ft.nm(e,ft.tw.KEY_DOWN,(t=>{const i=new ii.y(t);switch(i.keyCode){case 3:ft.zB.stop(t,!0),this.onDidAcceptEmitter.fire();break;case 9:ft.zB.stop(t,!0),this.hide(Fo.Jq.Gesture);break;case 2:if(!i.altKey&&!i.ctrlKey&&!i.metaKey){const n=[".action-label.codicon"];e.classList.contains("show-checkboxes")?n.push("input"):n.push("input[type=text]"),this.getUI().list.isDisplayed()&&n.push(".monaco-list");const o=e.querySelectorAll(n.join(", "));i.shiftKey&&i.target===o[0]?(ft.zB.stop(t,!0),o[o.length-1].focus()):i.shiftKey||i.target!==o[o.length-1]||(ft.zB.stop(t,!0),o[0].focus())}}}))),this.ui={container:e,styleSheet:t,leftActionBar:n,titleBar:i,title:o,description1:r,description2:c,rightActionBar:s,checkAll:l,filterContainer:h,inputBox:u,visibleCountContainer:g,visibleCount:p,countContainer:m,count:f,okContainer:_,ok:v,message:w,customButtonContainer:b,customButton:C,list:y,progressBar:S,onDidAccept:this.onDidAcceptEmitter.event,onDidCustom:this.onDidCustomEmitter.event,onDidTriggerButton:this.onDidTriggerButtonEmitter.event,ignoreFocusOut:!1,keyMods:this.keyMods,isScreenReaderOptimized:()=>this.options.isScreenReaderOptimized(),show:e=>this.show(e),hide:()=>this.hide(),setVisibilities:e=>this.setVisibilities(e),setComboboxAccessibility:e=>this.setComboboxAccessibility(e),setEnabled:e=>this.setEnabled(e),setContextKey:e=>this.options.setContextKey(e)},this.updateStyles(),this.ui}pick(e,t={},i=s.T.None){return new Promise(((n,o)=>{let s=e=>{var i;s=n,null===(i=t.onKeyMods)||void 0===i||i.call(t,r.keyMods),n(e)};if(i.isCancellationRequested)return void s(void 0);const r=this.createQuickPick();let a;const l=[r,r.onDidAccept((()=>{if(r.canSelectMany)s(r.selectedItems.slice()),r.hide();else{const e=r.activeItems[0];e&&(s(e),r.hide())}})),r.onDidChangeActive((e=>{const i=e[0];i&&t.onDidFocus&&t.onDidFocus(i)})),r.onDidChangeSelection((e=>{if(!r.canSelectMany){const t=e[0];t&&(s(t),r.hide())}})),r.onDidTriggerItemButton((e=>t.onDidTriggerItemButton&&t.onDidTriggerItemButton(Object.assign(Object.assign({},e),{removeItem:()=>{const t=r.items.indexOf(e.item);if(-1!==t){const e=r.items.slice(),i=e.splice(t,1),n=r.activeItems.filter((e=>e!==i[0])),o=r.keepScrollPosition;r.keepScrollPosition=!0,r.items=e,n&&(r.activeItems=n),r.keepScrollPosition=o}}})))),r.onDidChangeValue((e=>{!a||e||1===r.activeItems.length&&r.activeItems[0]===a||(r.activeItems=[a])})),i.onCancellationRequested((()=>{r.hide()})),r.onDidHide((()=>{(0,N.B9)(l),s(void 0)}))];r.title=t.title,r.canSelectMany=!!t.canPickMany,r.placeholder=t.placeHolder,r.ignoreFocusOut=!!t.ignoreFocusLost,r.matchOnDescription=!!t.matchOnDescription,r.matchOnDetail=!!t.matchOnDetail,r.matchOnLabel=void 0===t.matchOnLabel||t.matchOnLabel,r.autoFocusOnList=void 0===t.autoFocusOnList||t.autoFocusOnList,r.quickNavigate=t.quickNavigate,r.hideInput=!!t.hideInput,r.contextKey=t.contextKey,r.busy=!0,Promise.all([e,t.activeItem]).then((([e,t])=>{a=t,r.busy=!1,r.items=e,r.canSelectMany&&(r.selectedItems=e.filter((e=>"separator"!==e.type&&e.picked))),a&&(r.activeItems=[a])})),r.show(),Promise.resolve(e).then(void 0,(e=>{o(e),r.hide()}))}))}createQuickPick(){const e=this.getUI();return new as(e)}show(e){const t=this.getUI();this.onShowEmitter.fire();const i=this.controller;this.controller=e,i&&i.didHide(),this.setEnabled(!0),t.leftActionBar.clear(),t.title.textContent="",t.description1.textContent="",t.description2.textContent="",t.rightActionBar.clear(),t.checkAll.checked=!1,t.inputBox.placeholder="",t.inputBox.password=!1,t.inputBox.showDecoration(Pt.Z.Ignore),t.visibleCount.setCount(0),t.count.setCount(0),ft.mc(t.message),t.progressBar.stop(),t.list.setElements([]),t.list.matchOnDescription=!1,t.list.matchOnDetail=!1,t.list.matchOnLabel=!0,t.list.sortByLabel=!0,t.ignoreFocusOut=!1,this.setComboboxAccessibility(!1),t.inputBox.ariaLabel="";const n=this.options.backKeybindingLabel();ss.tooltip=n?(0,Ft.NC)("quickInput.backWithKeybinding","Back ({0})",n):(0,Ft.NC)("quickInput.back","Back"),t.container.style.display="",this.updateLayout(),t.inputBox.setFocus()}setVisibilities(e){const t=this.getUI();t.title.style.display=e.title?"":"none",t.description1.style.display=e.description&&(e.inputBox||e.checkAll)?"":"none",t.description2.style.display=!e.description||e.inputBox||e.checkAll?"none":"",t.checkAll.style.display=e.checkAll?"":"none",t.filterContainer.style.display=e.inputBox?"":"none",t.visibleCountContainer.style.display=e.visibleCount?"":"none",t.countContainer.style.display=e.count?"":"none",t.okContainer.style.display=e.ok?"":"none",t.customButtonContainer.style.display=e.customButton?"":"none",t.message.style.display=e.message?"":"none",t.progressBar.getContainer().style.display=e.progressBar?"":"none",t.list.display(!!e.list),t.container.classList[e.checkBox?"add":"remove"]("show-checkboxes"),this.updateLayout()}setComboboxAccessibility(e){if(e!==this.comboboxAccessibility){const t=this.getUI();this.comboboxAccessibility=e,this.comboboxAccessibility?(t.inputBox.setAttribute("role","combobox"),t.inputBox.setAttribute("aria-haspopup","true"),t.inputBox.setAttribute("aria-autocomplete","list"),t.inputBox.setAttribute("aria-activedescendant",t.list.getActiveDescendant()||"")):(t.inputBox.removeAttribute("role"),t.inputBox.removeAttribute("aria-haspopup"),t.inputBox.removeAttribute("aria-autocomplete"),t.inputBox.removeAttribute("aria-activedescendant"))}}setEnabled(e){if(e!==this.enabled){this.enabled=e;for(const t of this.getUI().leftActionBar.viewItems)t.getAction().enabled=e;for(const t of this.getUI().rightActionBar.viewItems)t.getAction().enabled=e;this.getUI().checkAll.disabled=!e,this.getUI().ok.enabled=e,this.getUI().list.enabled=e}}hide(e){var t;const i=this.controller;if(i){const n=!(null===(t=this.ui)||void 0===t?void 0:t.container.contains(document.activeElement));if(this.controller=null,this.onHideEmitter.fire(),this.getUI().container.style.display="none",!n){let e=this.previousFocusElement;for(;e&&!e.offsetParent;)e=(0,T.f6)(e.parentElement);(null==e?void 0:e.offsetParent)?(e.focus(),this.previousFocusElement=void 0):this.options.returnFocus()}i.didHide(e)}}layout(e,t){this.dimension=e,this.titleBarOffset=t,this.updateLayout()}updateLayout(){if(this.ui){this.ui.container.style.top=`${this.titleBarOffset}px`;const e=this.ui.container.style,t=Math.min(.62*this.dimension.width,ls.MAX_WIDTH);e.width=t+"px",e.marginLeft="-"+t/2+"px",this.ui.inputBox.layout(),this.ui.list.layout(this.dimension&&.4*this.dimension.height)}}applyStyles(e){this.styles=e,this.updateStyles()}updateStyles(){if(this.ui){const{quickInputTitleBackground:e,quickInputBackground:t,quickInputForeground:i,contrastBorder:n,widgetShadow:o}=this.styles.widget;this.ui.titleBar.style.backgroundColor=e?e.toString():"",this.ui.container.style.backgroundColor=t?t.toString():"",this.ui.container.style.color=i?i.toString():"",this.ui.container.style.border=n?`1px solid ${n}`:"",this.ui.container.style.boxShadow=o?`0 0 8px 2px ${o}`:"",this.ui.inputBox.style(this.styles.inputBox),this.ui.count.style(this.styles.countBadge),this.ui.ok.style(this.styles.button),this.ui.customButton.style(this.styles.button),this.ui.progressBar.style(this.styles.progressBar),this.ui.list.style(this.styles.list);const s=[];this.styles.list.pickerGroupBorder&&s.push(`.quick-input-list .quick-input-list-entry { border-top-color: ${this.styles.list.pickerGroupBorder}; }`),this.styles.list.pickerGroupForeground&&s.push(`.quick-input-list .quick-input-list-separator { color: ${this.styles.list.pickerGroupForeground}; }`),(this.styles.keybindingLabel.keybindingLabelBackground||this.styles.keybindingLabel.keybindingLabelBorder||this.styles.keybindingLabel.keybindingLabelBottomBorder||this.styles.keybindingLabel.keybindingLabelShadow||this.styles.keybindingLabel.keybindingLabelForeground)&&(s.push(".quick-input-list .monaco-keybinding > .monaco-keybinding-key {"),this.styles.keybindingLabel.keybindingLabelBackground&&s.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`),this.styles.keybindingLabel.keybindingLabelBorder&&s.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`),this.styles.keybindingLabel.keybindingLabelBottomBorder&&s.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`),this.styles.keybindingLabel.keybindingLabelShadow&&s.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`),this.styles.keybindingLabel.keybindingLabelForeground&&s.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`),s.push("}"));const r=s.join("\n");r!==this.ui.styleSheet.textContent&&(this.ui.styleSheet.textContent=r)}}}ls.MAX_WIDTH=600;var cs=i(74615),ds=i(88289),hs=i(90725),us=i(41157),gs=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ps=function(e,t){return function(i,n){t(i,n,e)}};let ms=class extends N.JT{constructor(e,t){super(),this.quickInputService=e,this.instantiationService=t,this.registry=kn.B.as(hs.IP.Quickaccess),this.mapProviderToDescriptor=new Map,this.lastAcceptedPickerValues=new Map,this.visibleQuickAccess=void 0}show(e="",t){this.doShowOrPick(e,!1,t)}doShowOrPick(e,t,i){var n;const[o,r]=this.getOrInstantiateProvider(e),a=this.visibleQuickAccess,l=null==a?void 0:a.descriptor;if(a&&r&&l===r)return e===r.prefix||(null==i?void 0:i.preserveValue)||(a.picker.value=e),void this.adjustValueSelection(a.picker,r,i);if(r&&!(null==i?void 0:i.preserveValue)){let t;if(a&&l&&l!==r){const e=a.value.substr(l.prefix.length);e&&(t=`${r.prefix}${e}`)}if(!t){const e=null==o?void 0:o.defaultFilterValue;e===hs.Ry.LAST?t=this.lastAcceptedPickerValues.get(r):"string"==typeof e&&(t=`${r.prefix}${e}`)}"string"==typeof t&&(e=t)}const c=new N.SL,d=c.add(this.quickInputService.createQuickPick());let h;d.value=e,this.adjustValueSelection(d,r,i),d.placeholder=null==r?void 0:r.placeholder,d.quickNavigate=null==i?void 0:i.quickNavigateConfiguration,d.hideInput=!!d.quickNavigate&&!a,("number"==typeof(null==i?void 0:i.itemActivation)||(null==i?void 0:i.quickNavigateConfiguration))&&(d.itemActivation=null!==(n=null==i?void 0:i.itemActivation)&&void 0!==n?n:us.jG.SECOND),d.contextKey=null==r?void 0:r.contextKey,d.filterValue=e=>e.substring(r?r.prefix.length:0),(null==r?void 0:r.placeholder)&&(d.ariaLabel=null==r?void 0:r.placeholder),t&&(h=new D.CR,c.add((0,ds.I)(d.onWillAccept)((e=>{e.veto(),d.hide()})))),c.add(this.registerPickerListeners(d,o,r,e));const u=c.add(new s.A);return o&&c.add(o.provide(d,u.token)),(0,ds.I)(d.onDidHide)((()=>{0===d.selectedItems.length&&u.cancel(),c.dispose(),null==h||h.complete(d.selectedItems.slice(0))})),d.show(),t?null==h?void 0:h.p:void 0}adjustValueSelection(e,t,i){var n;let o;o=(null==i?void 0:i.preserveValue)?[e.value.length,e.value.length]:[null!==(n=null==t?void 0:t.prefix.length)&&void 0!==n?n:0,e.value.length],e.valueSelection=o}registerPickerListeners(e,t,i,n){const o=new N.SL,s=this.visibleQuickAccess={picker:e,descriptor:i,value:n};return o.add((0,N.OF)((()=>{s===this.visibleQuickAccess&&(this.visibleQuickAccess=void 0)}))),o.add(e.onDidChangeValue((e=>{const[i]=this.getOrInstantiateProvider(e);i!==t?this.show(e,{preserveValue:!0}):s.value=e}))),i&&o.add(e.onDidAccept((()=>{this.lastAcceptedPickerValues.set(i,e.value)}))),o}getOrInstantiateProvider(e){const t=this.registry.getQuickAccessProvider(e);if(!t)return[void 0,void 0];let i=this.mapProviderToDescriptor.get(t);return i||(i=this.instantiationService.createInstance(t.ctor),this.mapProviderToDescriptor.set(t,i)),[i,t]}};ms=gs([ps(0,us.eJ),ps(1,It.TG)],ms);var fs=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},_s=function(e,t){return function(i,n){t(i,n,e)}};let vs=class extends bt.bB{constructor(e,t,i,n,o){super(i),this.instantiationService=e,this.contextKeyService=t,this.accessibilityService=n,this.layoutService=o,this.contexts=new Map}get controller(){return this._controller||(this._controller=this._register(this.createController())),this._controller}get quickAccess(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(ms))),this._quickAccess}createController(e=this.layoutService,t){const i={idPrefix:"quickInput_",container:e.container,ignoreFocusOut:()=>!1,isScreenReaderOptimized:()=>this.accessibilityService.isScreenReaderOptimized(),backKeybindingLabel:()=>{},setContextKey:e=>this.setContextKey(e),returnFocus:()=>e.focus(),createList:(e,t,i,n,o)=>this.instantiationService.createInstance(cs.ev,e,t,i,n,o),styles:this.computeStyles()},n=this._register(new ls(Object.assign(Object.assign({},i),t)));return n.layout(e.dimension,e.offset.quickPickTop),this._register(e.onDidLayout((t=>n.layout(t,e.offset.quickPickTop)))),this._register(n.onShow((()=>this.resetContextKeys()))),this._register(n.onHide((()=>this.resetContextKeys()))),n}setContextKey(e){let t;e&&(t=this.contexts.get(e),t||(t=new Lt.uy(e,!1).bindTo(this.contextKeyService),this.contexts.set(e,t))),t&&t.get()||(this.resetContextKeys(),null==t||t.set(!0))}resetContextKeys(){this.contexts.forEach((e=>{e.get()&&e.reset()}))}pick(e,t={},i=s.T.None){return this.controller.pick(e,t,i)}createQuickPick(){return this.controller.createQuickPick()}updateStyles(){this.controller.applyStyles(this.computeStyles())}computeStyles(){return{widget:Object.assign({},(0,Qn.o)(this.theme,{quickInputBackground:uo.zKr,quickInputForeground:uo.tZ6,quickInputTitleBackground:uo.loF,contrastBorder:uo.lRK,widgetShadow:uo.rh})),inputBox:(0,Qn.o)(this.theme,{inputForeground:uo.zJb,inputBackground:uo.sEe,inputBorder:uo.dt_,inputValidationInfoBackground:uo._lC,inputValidationInfoForeground:uo.YI3,inputValidationInfoBorder:uo.EPQ,inputValidationWarningBackground:uo.RV_,inputValidationWarningForeground:uo.SUG,inputValidationWarningBorder:uo.C3g,inputValidationErrorBackground:uo.paE,inputValidationErrorForeground:uo._t9,inputValidationErrorBorder:uo.OZR}),countBadge:(0,Qn.o)(this.theme,{badgeBackground:uo.g8u,badgeForeground:uo.qeD,badgeBorder:uo.lRK}),button:(0,Qn.o)(this.theme,{buttonForeground:uo.j5u,buttonBackground:uo.b7$,buttonHoverBackground:uo.GO4,buttonBorder:uo.lRK}),progressBar:(0,Qn.o)(this.theme,{progressBarBackground:uo.zRJ}),keybindingLabel:(0,Qn.o)(this.theme,{keybindingLabelBackground:uo.oQ$,keybindingLabelForeground:uo.lWp,keybindingLabelBorder:uo.AWI,keybindingLabelBottomBorder:uo.K19,keybindingLabelShadow:uo.rh}),list:(0,Qn.o)(this.theme,{listBackground:uo.zKr,listInactiveFocusForeground:uo.NPS,listInactiveSelectionIconForeground:uo.cbQ,listInactiveFocusBackground:uo.Vqd,listFocusOutline:uo.xL1,listInactiveFocusOutline:uo.xL1,pickerGroupBorder:uo.opG,pickerGroupForeground:uo.kJk})}}};vs=fs([_s(0,It.TG),_s(1,Lt.i6),_s(2,bt.XE),_s(3,Co.F),_s(4,Tt)],vs);var bs=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Cs=function(e,t){return function(i,n){t(i,n,e)}};let ws=class extends vs{constructor(e,t,i,n,o,s){super(t,i,n,o,new Ot(e.getContainerDomNode(),s)),this.host=void 0;const r=Ss.get(e);if(r){const t=r.widget;this.host={_serviceBrand:void 0,get hasContainer(){return!0},get container(){return t.getDomNode()},get dimension(){return e.getLayoutInfo()},get onDidLayout(){return e.onDidLayoutChange},focus:()=>e.focus(),offset:{top:0,quickPickTop:0}}}else this.host=void 0}createController(){return super.createController(this.host)}};ws=bs([Cs(1,It.TG),Cs(2,Lt.i6),Cs(3,bt.XE),Cs(4,Co.F),Cs(5,v.$)],ws);let ys=class{constructor(e,t){this.instantiationService=e,this.codeEditorService=t,this.mapEditorToService=new Map}get activeService(){const e=this.codeEditorService.getFocusedCodeEditor();if(!e)throw new Error("Quick input service needs a focused editor to work.");let t=this.mapEditorToService.get(e);if(!t){const i=t=this.instantiationService.createInstance(ws,e);this.mapEditorToService.set(e,t),(0,ds.I)(e.onDidDispose)((()=>{i.dispose(),this.mapEditorToService.delete(e)}))}return t}get quickAccess(){return this.activeService.quickAccess}pick(e,t={},i=s.T.None){return this.activeService.pick(e,t,i)}createQuickPick(){return this.activeService.createQuickPick()}};ys=bs([Cs(0,It.TG),Cs(1,v.$)],ys);class Ss{constructor(e){this.editor=e,this.widget=new Ls(this.editor)}static get(e){return e.getContribution(Ss.ID)}dispose(){this.widget.dispose()}}Ss.ID="editor.controller.quickInput";class Ls{constructor(e){this.codeEditor=e,this.domNode=document.createElement("div"),this.codeEditor.addOverlayWidget(this)}getId(){return Ls.ID}getDomNode(){return this.domNode}getPosition(){return{preference:2}}dispose(){this.codeEditor.removeOverlayWidget(this)}}Ls.ID="editor.contrib.quickInputWidget",(0,bo._K)(Ss.ID,Ss);var ks=i(88542),xs=i(44156),Ds=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ns=function(e,t){return function(i,n){t(i,n,e)}};let Es=class extends N.JT{constructor(e,t,i){super(),this._contextKeyService=e,this._layoutService=t,this._configurationService=i,this._accessibilitySupport=0,this._onDidChangeScreenReaderOptimized=new r.Q5,this._onDidChangeReducedMotion=new r.Q5,this._accessibilityModeEnabledContext=Co.U.bindTo(this._contextKeyService);const n=()=>this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());this._register(this._configurationService.onDidChangeConfiguration((e=>{e.affectsConfiguration("editor.accessibilitySupport")&&(n(),this._onDidChangeScreenReaderOptimized.fire()),e.affectsConfiguration("workbench.reduceMotion")&&(this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._onDidChangeReducedMotion.fire())}))),n(),this._register(this.onDidChangeScreenReaderOptimized((()=>n())));const o=window.matchMedia("(prefers-reduced-motion: reduce)");this._systemMotionReduced=o.matches,this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this.initReducedMotionListeners(o)}initReducedMotionListeners(e){if(!this._layoutService.hasContainer)return;this._register((0,ft.nm)(e,"change",(()=>{this._systemMotionReduced=e.matches,"auto"===this._configMotionReduced&&this._onDidChangeReducedMotion.fire()})));const t=()=>{const e=this.isMotionReduced();this._layoutService.container.classList.toggle("reduce-motion",e),this._layoutService.container.classList.toggle("enable-motion",!e)};t(),this._register(this.onDidChangeReducedMotion((()=>t())))}get onDidChangeScreenReaderOptimized(){return this._onDidChangeScreenReaderOptimized.event}isScreenReaderOptimized(){const e=this._configurationService.getValue("editor.accessibilitySupport");return"on"===e||"auto"===e&&2===this._accessibilitySupport}get onDidChangeReducedMotion(){return this._onDidChangeReducedMotion.event}isMotionReduced(){const e=this._configMotionReduced;return"on"===e||"auto"===e&&this._systemMotionReduced}getAccessibilitySupport(){return this._accessibilitySupport}};Es=Ds([Ns(0,Lt.i6),Ns(1,Tt),Ns(2,Ge.Ui)],Es);var Is=i(84144),Ts=i(87060),Ms=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},As=function(e,t){return function(i,n){t(i,n,e)}};let Rs=class{constructor(e,t){this._commandService=e,this._hiddenStates=new Os(t)}createMenu(e,t,i){return new Ps(e,this._hiddenStates,Object.assign({emitEventsForSubmenuChanges:!1,eventDebounceDelay:50},i),this._commandService,t,this)}};Rs=Ms([As(0,li.Hy),As(1,Ts.Uy)],Rs);let Os=class e{constructor(t){this._storageService=t,this._disposables=new N.SL,this._onDidChange=new r.Q5,this.onDidChange=this._onDidChange.event,this._ignoreChangeEvent=!1;try{const i=t.get(e._key,0,"{}");this._data=JSON.parse(i)}catch(i){this._data=Object.create(null)}this._disposables.add(t.onDidChangeValue((n=>{if(n.key===e._key){if(!this._ignoreChangeEvent)try{const i=t.get(e._key,0,"{}");this._data=JSON.parse(i)}catch(i){console.log("FAILED to read storage after UPDATE",i)}this._onDidChange.fire()}})))}dispose(){this._onDidChange.dispose(),this._disposables.dispose()}isHidden(e,t){var i,n;return null!==(n=null===(i=this._data[e.id])||void 0===i?void 0:i.includes(t))&&void 0!==n&&n}updateHidden(e,t,i){const n=this._data[e.id];if(i)if(n){n.indexOf(t)<0&&n.push(t)}else this._data[e.id]=[t];else if(n){const i=n.indexOf(t);i>=0&&(0,Ce.LS)(n,i),0===n.length&&delete this._data[e.id]}this._persist()}_persist(){try{this._ignoreChangeEvent=!0;const t=JSON.stringify(this._data);this._storageService.store(e._key,t,0,0)}finally{this._ignoreChangeEvent=!1}}};Os._key="menu.hiddenCommands",Os=Ms([As(0,Ts.Uy)],Os);let Ps=class e{constructor(e,t,i,n,o,s){this._id=e,this._hiddenStates=t,this._options=i,this._commandService=n,this._contextKeyService=o,this._menuService=s,this._disposables=new N.SL,this._menuGroups=[],this._contextKeys=new Set,this._build();const a=new D.pY((()=>{this._build(),this._onDidChange.fire(this)}),i.eventDebounceDelay);this._disposables.add(a),this._disposables.add(Is.BH.onDidChangeMenu((t=>{t.has(e)&&a.schedule()})));const l=this._disposables.add(new N.SL);this._onDidChange=new r.Q5({onFirstListenerAdd:()=>{const e=new D.pY((()=>this._onDidChange.fire(this)),i.eventDebounceDelay);l.add(e),l.add(o.onDidChangeContext((t=>{t.affectsSome(this._contextKeys)&&e.schedule()}))),l.add(t.onDidChange((()=>{e.schedule()})))},onLastListenerRemove:l.clear.bind(l)}),this.onDidChange=this._onDidChange.event}dispose(){this._disposables.dispose(),this._onDidChange.dispose()}_build(){this._menuGroups.length=0,this._contextKeys.clear();const t=Is.BH.getMenuItems(this._id);let i;t.sort(e._compareMenuItems);for(const e of t){const t=e.group||"";i&&i[0]===t||(i=[t,[]],this._menuGroups.push(i)),i[1].push(e),this._collectContextKeys(e)}}_collectContextKeys(t){if(e._fillInKbExprKeys(t.when,this._contextKeys),(0,Is.vr)(t)){if(t.command.precondition&&e._fillInKbExprKeys(t.command.precondition,this._contextKeys),t.command.toggled){const i=t.command.toggled.condition||t.command.toggled;e._fillInKbExprKeys(i,this._contextKeys)}}else this._options.emitEventsForSubmenuChanges&&Is.BH.getMenuItems(t.submenu).forEach(this._collectContextKeys,this)}getActions(e){const t=[],i=[];for(const n of this._menuGroups){const[o,s]=n,r=[],a=[];for(const t of s)if(this._contextKeyService.contextMatchesRules(t.when)){let i;if((0,Is.vr)(t)){const n=Fs(this._id,t.command,this._hiddenStates);i=new Is.U8(t.command,t.alt,e,n,this._contextKeyService,this._commandService)}else i=new Is.NZ(t,this._menuService,this._contextKeyService,e),0===i.actions.length&&(i.dispose(),i=void 0);i&&a.push(i)}a.length>0&&t.push([o,a]),r.length>0&&i.push(r)}return t}static _fillInKbExprKeys(e,t){if(e)for(const i of e.keys())t.add(i)}static _compareMenuItems(t,i){const n=t.group,o=i.group;if(n!==o){if(!n)return 1;if(!o)return-1;if("navigation"===n)return-1;if("navigation"===o)return 1;const e=n.localeCompare(o);if(0!==e)return e}const s=t.order||0,r=i.order||0;return s<r?-1:s>r?1:e._compareTitles((0,Is.vr)(t)?t.command.title:t.title,(0,Is.vr)(i)?i.command.title:i.title)}static _compareTitles(e,t){const i="string"==typeof e?e:e.original,n="string"==typeof t?t:t.original;return i.localeCompare(n)}};function Fs(e,t,i){const n=`${e.id}/${t.id}`,o="string"==typeof t.title?t.title:t.title.value,s=(0,Vn.xw)({id:n,label:(0,Ft.NC)("hide.label","Hide '{0}'",o),run(){i.updateHidden(e,t.id,!0)}}),r=(0,Vn.xw)({id:n,label:o,get checked(){return!i.isHidden(e,t.id)},run(){const n=!i.isHidden(e,t.id);i.updateHidden(e,t.id,n)}});return{hide:s,toggle:r,get isHidden(){return!r.checked}}}Ps=Ms([As(3,li.Hy),As(4,Lt.i6),As(5,Is.co)],Ps);var Bs=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Vs=function(e,t){return function(i,n){t(i,n,e)}},Ws=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let Hs=class extends N.JT{constructor(e,t){super(),this.layoutService=e,this.logService=t,this.mapTextToType=new Map,this.findText="",this.resources=[],(An.isSafari||An.isWebkitWebView)&&this.installWebKitWriteTextWorkaround()}installWebKitWriteTextWorkaround(){const e=()=>{const e=new D.CR;this.webKitPendingClipboardWritePromise&&!this.webKitPendingClipboardWritePromise.isSettled&&this.webKitPendingClipboardWritePromise.cancel(),this.webKitPendingClipboardWritePromise=e,navigator.clipboard.write([new ClipboardItem({"text/plain":e.p})]).catch((t=>Ws(this,void 0,void 0,(function*(){t instanceof Error&&"NotAllowedError"===t.name&&e.isRejected||this.logService.error(t)}))))};this.layoutService.hasContainer&&(this._register((0,ft.nm)(this.layoutService.container,"click",e)),this._register((0,ft.nm)(this.layoutService.container,"keydown",e)))}writeText(e,t){return Ws(this,void 0,void 0,(function*(){if(t)return void this.mapTextToType.set(t,e);if(this.webKitPendingClipboardWritePromise)return this.webKitPendingClipboardWritePromise.complete(e);try{return yield navigator.clipboard.writeText(e)}catch(o){console.error(o)}const i=document.activeElement,n=document.body.appendChild((0,ft.$)("textarea",{"aria-hidden":!0}));n.style.height="1px",n.style.width="1px",n.style.position="absolute",n.value=e,n.focus(),n.select(),document.execCommand("copy"),i instanceof HTMLElement&&i.focus(),document.body.removeChild(n)}))}readText(e){return Ws(this,void 0,void 0,(function*(){if(e)return this.mapTextToType.get(e)||"";try{return yield navigator.clipboard.readText()}catch(t){return console.error(t),""}}))}readFindText(){return Ws(this,void 0,void 0,(function*(){return this.findText}))}writeFindText(e){return Ws(this,void 0,void 0,(function*(){this.findText=e}))}readResources(){return Ws(this,void 0,void 0,(function*(){return this.resources}))}};Hs=Bs([Vs(0,Tt),Vs(1,we.VZ)],Hs);var zs=i(84972),js=i(53725),Us=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ks=function(e,t){return function(i,n){t(i,n,e)}};const $s="data-keybinding-context";class qs{constructor(e,t){this._id=e,this._parent=t,this._value=Object.create(null),this._value._contextId=e}get value(){return Object.assign({},this._value)}setValue(e,t){return this._value[e]!==t&&(this._value[e]=t,!0)}removeValue(e){return e in this._value&&(delete this._value[e],!0)}getValue(e){const t=this._value[e];return void 0===t&&this._parent?this._parent.getValue(e):t}}class Gs extends qs{constructor(){super(-1,null)}setValue(e,t){return!1}removeValue(e){return!1}getValue(e){}}Gs.INSTANCE=new Gs;class Qs extends qs{constructor(e,t,i){super(e,null),this._configurationService=t,this._values=ci.Id.forConfigKeys(),this._listener=this._configurationService.onDidChangeConfiguration((e=>{if(7===e.source){const e=Array.from(js.$.map(this._values,(([e])=>e)));this._values.clear(),i.fire(new Js(e))}else{const t=[];for(const i of e.affectedKeys){const e=`config.${i}`,n=this._values.findSuperstr(e);void 0!==n&&(t.push(...js.$.map(n,(([e])=>e))),this._values.deleteSuperstr(e)),this._values.has(e)&&(t.push(e),this._values.delete(e))}i.fire(new Js(t))}}))}dispose(){this._listener.dispose()}getValue(e){if(0!==e.indexOf(Qs._keyPrefix))return super.getValue(e);if(this._values.has(e))return this._values.get(e);const t=e.substr(Qs._keyPrefix.length),i=this._configurationService.getValue(t);let n;switch(typeof i){case"number":case"boolean":case"string":n=i;break;default:n=Array.isArray(i)?JSON.stringify(i):i}return this._values.set(e,n),n}setValue(e,t){return super.setValue(e,t)}removeValue(e){return super.removeValue(e)}}Qs._keyPrefix="config.";class Zs{constructor(e,t,i){this._service=e,this._key=t,this._defaultValue=i,this.reset()}set(e){this._service.setContext(this._key,e)}reset(){void 0===this._defaultValue?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)}get(){return this._service.getContextKeyValue(this._key)}}class Ys{constructor(e){this.key=e}affectsSome(e){return e.has(this.key)}allKeysContainedIn(e){return this.affectsSome(e)}}class Js{constructor(e){this.keys=e}affectsSome(e){for(const t of this.keys)if(e.has(t))return!0;return!1}allKeysContainedIn(e){return this.keys.every((t=>e.has(t)))}}class Xs{constructor(e){this.events=e}affectsSome(e){for(const t of this.events)if(t.affectsSome(e))return!0;return!1}allKeysContainedIn(e){return this.events.every((t=>t.allKeysContainedIn(e)))}}class er{constructor(e){this._onDidChangeContext=new r.K3({merge:e=>new Xs(e)}),this.onDidChangeContext=this._onDidChangeContext.event,this._isDisposed=!1,this._myContextId=e}createKey(e,t){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new Zs(this,e,t)}bufferChangeEvents(e){this._onDidChangeContext.pause();try{e()}finally{this._onDidChangeContext.resume()}}createScoped(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new ir(this,e)}contextMatchesRules(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");const t=this.getContextValuesContainer(this._myContextId);return!e||e.evaluate(t)}getContextKeyValue(e){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(e)}setContext(e,t){if(this._isDisposed)return;const i=this.getContextValuesContainer(this._myContextId);i&&i.setValue(e,t)&&this._onDidChangeContext.fire(new Ys(e))}removeContext(e){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(e)&&this._onDidChangeContext.fire(new Ys(e))}getContext(e){return this._isDisposed?Gs.INSTANCE:this.getContextValuesContainer(function(e){for(;e;){if(e.hasAttribute($s)){const t=e.getAttribute($s);return t?parseInt(t,10):NaN}e=e.parentElement}return 0}(e))}}let tr=class extends er{constructor(e){super(0),this._contexts=new Map,this._toDispose=new N.SL,this._lastContextId=0;const t=new Qs(this._myContextId,e,this._onDidChangeContext);this._contexts.set(this._myContextId,t),this._toDispose.add(t)}dispose(){this._onDidChangeContext.dispose(),this._isDisposed=!0,this._toDispose.dispose()}getContextValuesContainer(e){return this._isDisposed?Gs.INSTANCE:this._contexts.get(e)||Gs.INSTANCE}createChildContext(e=this._myContextId){if(this._isDisposed)throw new Error("ContextKeyService has been disposed");const t=++this._lastContextId;return this._contexts.set(t,new qs(t,this.getContextValuesContainer(e))),t}disposeContext(e){this._isDisposed||this._contexts.delete(e)}};tr=Us([Ks(0,Ge.Ui)],tr);class ir extends er{constructor(e,t){if(super(e.createChildContext()),this._parentChangeListener=new N.XK,this._parent=e,this._updateParentChangeListener(),this._domNode=t,this._domNode.hasAttribute($s)){let e="";this._domNode.classList&&(e=Array.from(this._domNode.classList.values()).join(", ")),console.error("Element already has context attribute"+(e?": "+e:""))}this._domNode.setAttribute($s,String(this._myContextId))}_updateParentChangeListener(){this._parentChangeListener.value=this._parent.onDidChangeContext((e=>{const t=this._parent.getContextValuesContainer(this._myContextId).value;var i;i=t,e.allKeysContainedIn(new Set(Object.keys(i)))||this._onDidChangeContext.fire(e)}))}dispose(){this._isDisposed||(this._onDidChangeContext.dispose(),this._parent.disposeContext(this._myContextId),this._parentChangeListener.dispose(),this._domNode.removeAttribute($s),this._isDisposed=!0)}getContextValuesContainer(e){return this._isDisposed?Gs.INSTANCE:this._parent.getContextValuesContainer(e)}createChildContext(e=this._myContextId){if(this._isDisposed)throw new Error("ScopedContextKeyService has been disposed");return this._parent.createChildContext(e)}disposeContext(e){this._isDisposed||this._parent.disposeContext(e)}}li.P0.registerCommand(Lt.Eq,(function(e,t,i){e.get(Lt.i6).createKey(String(t),function(e){return(0,di.rs)(e,(e=>"object"==typeof e&&1===e.$mid?l.o.revive(e).toString():e instanceof l.o?e.toString():void 0))}(i))})),li.P0.registerCommand({id:"getContextKeyInfo",handler:()=>[...Lt.uy.all()].sort(((e,t)=>e.key.localeCompare(t.key))),description:{description:(0,Ft.NC)("getContextKeyInfo","A command that returns information about context keys"),args:[]}}),li.P0.registerCommand("_generateContextKeyInfo",(function(){const e=[],t=new Set;for(const i of Lt.uy.all())t.has(i.key)||(t.add(i.key),e.push(i));e.sort(((e,t)=>e.key.localeCompare(t.key))),console.log(JSON.stringify(e,void 0,2))}));var nr=i(97108);class or{constructor(e){this.incoming=new Map,this.outgoing=new Map,this.data=e}}class sr{constructor(e){this._hashFn=e,this._nodes=new Map}roots(){const e=[];for(const t of this._nodes.values())0===t.outgoing.size&&e.push(t);return e}insertEdge(e,t){const i=this.lookupOrInsertNode(e),n=this.lookupOrInsertNode(t);i.outgoing.set(this._hashFn(t),n),n.incoming.set(this._hashFn(e),i)}removeNode(e){const t=this._hashFn(e);this._nodes.delete(t);for(const i of this._nodes.values())i.outgoing.delete(t),i.incoming.delete(t)}lookupOrInsertNode(e){const t=this._hashFn(e);let i=this._nodes.get(t);return i||(i=new or(e),this._nodes.set(t,i)),i}isEmpty(){return 0===this._nodes.size}toString(){const e=[];for(const[t,i]of this._nodes)e.push(`${t}, (incoming)[${[...i.incoming.keys()].join(", ")}], (outgoing)[${[...i.outgoing.keys()].join(",")}]`);return e.join("\n")}findCycleSlow(){for(const[e,t]of this._nodes){const i=new Set([e]),n=this._findCycle(t,i);if(n)return n}}_findCycle(e,t){for(const[i,n]of e.outgoing){if(t.has(i))return[...t,i].join(" -> ");t.add(i);const e=this._findCycle(n,t);if(e)return e;t.delete(i)}}}var rr=i(60972);class ar extends Error{constructor(e){var t;super("cyclic dependency between services"),this.message=null!==(t=e.findCycleSlow())&&void 0!==t?t:`UNABLE to detect cycle, dumping graph: \n${e.toString()}`}}class lr{constructor(e=new rr.y,t=!1,i){this._activeInstantiations=new Set,this._services=e,this._strict=t,this._parent=i,this._services.set(It.TG,this)}createChild(e){return new lr(e,this._strict,this)}invokeFunction(e,...t){const i=cr.traceInvocation(e);let n=!1;try{return e({get:e=>{if(n)throw(0,E.L6)("service accessor is only valid during the invocation of its target method");const t=this._getOrCreateServiceInstance(e,i);if(!t)throw new Error(`[invokeFunction] unknown service '${e}'`);return t}},...t)}finally{n=!0,i.stop()}}createInstance(e,...t){let i,n;return e instanceof nr.M?(i=cr.traceCreation(e.ctor),n=this._createInstance(e.ctor,e.staticArguments.concat(t),i)):(i=cr.traceCreation(e),n=this._createInstance(e,t,i)),i.stop(),n}_createInstance(e,t=[],i){const n=It.I8.getServiceDependencies(e).sort(((e,t)=>e.index-t.index)),o=[];for(const r of n){const t=this._getOrCreateServiceInstance(r.id,i);t||this._throwIfStrict(`[createInstance] ${e.name} depends on UNKNOWN service ${r.id}.`,!1),o.push(t)}const s=n.length>0?n[0].index:t.length;if(t.length!==s){console.trace(`[createInstance] First service dependency of ${e.name} at position ${s+1} conflicts with ${t.length} static arguments`);const i=s-t.length;t=i>0?t.concat(new Array(i)):t.slice(0,s)}return new e(...[...t,...o])}_setServiceInstance(e,t){if(this._services.get(e)instanceof nr.M)this._services.set(e,t);else{if(!this._parent)throw new Error("illegalState - setting UNKNOWN service instance");this._parent._setServiceInstance(e,t)}}_getServiceInstanceOrDescriptor(e){const t=this._services.get(e);return!t&&this._parent?this._parent._getServiceInstanceOrDescriptor(e):t}_getOrCreateServiceInstance(e,t){const i=this._getServiceInstanceOrDescriptor(e);return i instanceof nr.M?this._safeCreateAndCacheServiceInstance(e,i,t.branch(e,!0)):(t.branch(e,!1),i)}_safeCreateAndCacheServiceInstance(e,t,i){if(this._activeInstantiations.has(e))throw new Error(`illegal state - RECURSIVELY instantiating service '${e}'`);this._activeInstantiations.add(e);try{return this._createAndCacheServiceInstance(e,t,i)}finally{this._activeInstantiations.delete(e)}}_createAndCacheServiceInstance(e,t,i){const n=new sr((e=>e.id.toString()));let o=0;const s=[{id:e,desc:t,_trace:i}];for(;s.length;){const t=s.pop();if(n.lookupOrInsertNode(t),o++>1e3)throw new ar(n);for(const i of It.I8.getServiceDependencies(t.desc.ctor)){const o=this._getServiceInstanceOrDescriptor(i.id);if(o||this._throwIfStrict(`[createInstance] ${e} depends on ${i.id} which is NOT registered.`,!0),o instanceof nr.M){const e={id:i.id,desc:o,_trace:t._trace.branch(i.id,!0)};n.insertEdge(t,e),s.push(e)}}}for(;;){const e=n.roots();if(0===e.length){if(!n.isEmpty())throw new ar(n);break}for(const{data:t}of e){if(this._getServiceInstanceOrDescriptor(t.id)instanceof nr.M){const e=this._createServiceInstanceWithOwner(t.id,t.desc.ctor,t.desc.staticArguments,t.desc.supportsDelayedInstantiation,t._trace);this._setServiceInstance(t.id,e)}n.removeNode(t)}}return this._getServiceInstanceOrDescriptor(e)}_createServiceInstanceWithOwner(e,t,i=[],n,o){if(this._services.get(e)instanceof nr.M)return this._createServiceInstance(t,i,n,o);if(this._parent)return this._parent._createServiceInstanceWithOwner(e,t,i,n,o);throw new Error(`illegalState - creating UNKNOWN service instance ${t.name}`)}_createServiceInstance(e,t=[],i,n){if(i){const i=new D.Ue((()=>this._createInstance(e,t,n)));return new Proxy(Object.create(null),{get(e,t){if(t in e)return e[t];const n=i.value;let o=n[t];return"function"!=typeof o||(o=o.bind(n),e[t]=o),o},set:(e,t,n)=>(i.value[t]=n,!0)})}return this._createInstance(e,t,n)}_throwIfStrict(e,t){if(t&&console.warn(e),this._strict)throw new Error(e)}}class cr{constructor(e,t){this.type=e,this.name=t,this._start=Date.now(),this._dep=[]}static traceInvocation(e){return cr._None}static traceCreation(e){return cr._None}branch(e,t){const i=new cr(2,e.toString());return this._dep.push([e,t,i]),i}stop(){const e=Date.now()-this._start;cr._totals+=e;let t=!1;const i=[`${0===this.type?"CREATE":"CALL"} ${this.name}`,`${function e(i,n){const o=[],s=new Array(i+1).join("\t");for(const[r,a,l]of n._dep)if(a&&l){t=!0,o.push(`${s}CREATES -> ${r}`);const n=e(i+1,l);n&&o.push(n)}else o.push(`${s}uses -> ${r}`);return o.join("\n")}(1,this)}`,`DONE, took ${e.toFixed(2)}ms (grand total ${cr._totals.toFixed(2)}ms)`];(e>2||t)&&console.log(i.join("\n"))}}cr._None=new class extends cr{constructor(){super(-1,null)}stop(){}branch(){return this}},cr._totals=0;class dr{constructor(){this._byResource=new ci.Y9,this._byOwner=new Map}set(e,t,i){let n=this._byResource.get(e);n||(n=new Map,this._byResource.set(e,n)),n.set(t,i);let o=this._byOwner.get(t);o||(o=new ci.Y9,this._byOwner.set(t,o)),o.set(e,i)}get(e,t){const i=this._byResource.get(e);return null==i?void 0:i.get(t)}delete(e,t){let i=!1,n=!1;const o=this._byResource.get(e);o&&(i=o.delete(t));const s=this._byOwner.get(t);if(s&&(n=s.delete(e)),i!==n)throw new Error("illegal state");return i&&n}values(e){var t,i,n,o;return"string"==typeof e?null!==(i=null===(t=this._byOwner.get(e))||void 0===t?void 0:t.values())&&void 0!==i?i:js.$.empty():l.o.isUri(e)?null!==(o=null===(n=this._byResource.get(e))||void 0===n?void 0:n.values())&&void 0!==o?o:js.$.empty():js.$.map(js.$.concat(...this._byOwner.values()),(e=>e[1]))}}class hr{constructor(e){this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=new ci.Y9,this._service=e,this._subscription=e.onMarkerChanged(this._update,this)}dispose(){this._subscription.dispose()}_update(e){for(const t of e){const e=this._data.get(t);e&&this._substract(e);const i=this._resourceStats(t);this._add(i),this._data.set(t,i)}}_resourceStats(e){const t={errors:0,warnings:0,infos:0,unknowns:0};if(e.scheme===_t.lg.inMemory||e.scheme===_t.lg.walkThrough||e.scheme===_t.lg.walkThroughSnippet||e.scheme===_t.lg.vscodeSourceControl)return t;for(const{severity:i}of this._service.read({resource:e}))i===co.ZL.Error?t.errors+=1:i===co.ZL.Warning?t.warnings+=1:i===co.ZL.Info?t.infos+=1:t.unknowns+=1;return t}_substract(e){this.errors-=e.errors,this.warnings-=e.warnings,this.infos-=e.infos,this.unknowns-=e.unknowns}_add(e){this.errors+=e.errors,this.warnings+=e.warnings,this.infos+=e.infos,this.unknowns+=e.unknowns}}class ur{constructor(){this._onMarkerChanged=new r.D0({delay:0,merge:ur._merge}),this.onMarkerChanged=this._onMarkerChanged.event,this._data=new dr,this._stats=new hr(this)}dispose(){this._stats.dispose(),this._onMarkerChanged.dispose()}remove(e,t){for(const i of t||[])this.changeOne(e,i,[])}changeOne(e,t,i){if((0,Ce.XY)(i)){this._data.delete(t,e)&&this._onMarkerChanged.fire([t])}else{const n=[];for(const o of i){const i=ur._toMarker(e,t,o);i&&n.push(i)}this._data.set(t,e,n),this._onMarkerChanged.fire([t])}}static _toMarker(e,t,i){let{code:n,severity:o,message:s,source:r,startLineNumber:a,startColumn:l,endLineNumber:c,endColumn:d,relatedInformation:h,tags:u}=i;if(s)return a=a>0?a:1,l=l>0?l:1,c=c>=a?c:a,d=d>0?d:l,{resource:t,owner:e,code:n,severity:o,message:s,source:r,startLineNumber:a,startColumn:l,endLineNumber:c,endColumn:d,relatedInformation:h,tags:u}}changeAll(e,t){const i=[],n=this._data.values(e);if(n)for(const o of n){const t=js.$.first(o);t&&(i.push(t.resource),this._data.delete(t.resource,e))}if((0,Ce.Of)(t)){const n=new ci.Y9;for(const{resource:o,marker:s}of t){const t=ur._toMarker(e,o,s);if(!t)continue;const r=n.get(o);r?r.push(t):(n.set(o,[t]),i.push(o))}for(const[t,i]of n)this._data.set(t,e,i)}i.length>0&&this._onMarkerChanged.fire(i)}read(e=Object.create(null)){let{owner:t,resource:i,severities:n,take:o}=e;if((!o||o<0)&&(o=-1),t&&i){const e=this._data.get(i,t);if(e){const t=[];for(const i of e)if(ur._accept(i,n)){const e=t.push(i);if(o>0&&e===o)break}return t}return[]}if(t||i){const e=this._data.values(null!=i?i:t),s=[];for(const t of e)for(const e of t)if(ur._accept(e,n)){const t=s.push(e);if(o>0&&t===o)return s}return s}{const e=[];for(const t of this._data.values())for(const i of t)if(ur._accept(i,n)){const t=e.push(i);if(o>0&&t===o)return e}return e}}static _accept(e,t){return void 0===t||(t&e.severity)===e.severity}static _merge(e){const t=new ci.Y9;for(const i of e)for(const e of i)t.set(e,!0);return Array.from(t.keys())}}function gr(e,t,i,n,o,s){if(Array.isArray(e)){let r=0;for(const a of e){const e=gr(a,t,i,n,o,s);if(10===e)return e;e>r&&(r=e)}return r}if("string"==typeof e)return n?"*"===e?5:e===i?10:0:0;if(e){const{language:c,pattern:d,scheme:h,hasAccessToAllModels:u,notebookType:g}=e;if(!n&&!u)return 0;g&&o&&(t=o);let p=0;if(h)if(h===t.scheme)p=10;else{if("*"!==h)return 0;p=5}if(c)if(c===i)p=10;else{if("*"!==c)return 0;p=Math.max(p,5)}if(g)if(g===s)p=10;else{if("*"!==g||void 0===s)return 0;p=Math.max(p,5)}if(d){let e;if(e="string"==typeof d?d:Object.assign(Object.assign({},d),{base:(0,Ki.Fv)(d.base)}),e!==t.fsPath&&(r=e,a=t.fsPath,!r||"string"!=typeof a||!pn(r)(a,void 0,l)))return 0;p=10}return p}return 0;var r,a,l}function pr(e){return"string"!=typeof e&&(Array.isArray(e)?e.every(pr):!!e.exclusive)}class mr{constructor(e,t,i,n){this.uri=e,this.languageId=t,this.notebookUri=i,this.notebookType=n}equals(e){var t,i;return this.notebookType===e.notebookType&&this.languageId===e.languageId&&this.uri.toString()===e.uri.toString()&&(null===(t=this.notebookUri)||void 0===t?void 0:t.toString())===(null===(i=e.notebookUri)||void 0===i?void 0:i.toString())}}class fr{constructor(e){this._notebookInfoResolver=e,this._clock=0,this._entries=[],this._onDidChange=new r.Q5,this.onDidChange=this._onDidChange.event}register(e,t){let i={selector:e,provider:t,_score:-1,_time:this._clock++};return this._entries.push(i),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),(0,N.OF)((()=>{if(i){const e=this._entries.indexOf(i);e>=0&&(this._entries.splice(e,1),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),i=void 0)}}))}has(e){return this.all(e).length>0}all(e){if(!e)return[];this._updateScores(e);const t=[];for(const i of this._entries)i._score>0&&t.push(i.provider);return t}ordered(e){const t=[];return this._orderedForEach(e,(e=>t.push(e.provider))),t}orderedGroups(e){const t=[];let i,n;return this._orderedForEach(e,(e=>{i&&n===e._score?i.push(e.provider):(n=e._score,i=[e.provider],t.push(i))})),t}_orderedForEach(e,t){this._updateScores(e);for(const i of this._entries)i._score>0&&t(i)}_updateScores(e){var t,i;const n=null===(t=this._notebookInfoResolver)||void 0===t?void 0:t.call(this,e.uri),o=n?new mr(e.uri,e.getLanguageId(),n.uri,n.type):new mr(e.uri,e.getLanguageId(),void 0,void 0);if(!(null===(i=this._lastCandidate)||void 0===i?void 0:i.equals(o))){this._lastCandidate=o;for(const t of this._entries)if(t._score=gr(t.selector,o.uri,o.languageId,(0,y.pt)(e),o.notebookUri,o.notebookType),pr(t.selector)&&t._score>0){for(const e of this._entries)e._score=0;t._score=1e3;break}this._entries.sort(fr._compareByScoreAndTime)}}static _compareByScoreAndTime(e,t){return e._score<t._score?1:e._score>t._score?-1:e._time<t._time?1:e._time>t._time?-1:0}}(0,kt.z)(ye.p,class{constructor(){this.referenceProvider=new fr(this._score.bind(this)),this.renameProvider=new fr(this._score.bind(this)),this.codeActionProvider=new fr(this._score.bind(this)),this.definitionProvider=new fr(this._score.bind(this)),this.typeDefinitionProvider=new fr(this._score.bind(this)),this.declarationProvider=new fr(this._score.bind(this)),this.implementationProvider=new fr(this._score.bind(this)),this.documentSymbolProvider=new fr(this._score.bind(this)),this.inlayHintsProvider=new fr(this._score.bind(this)),this.colorProvider=new fr(this._score.bind(this)),this.codeLensProvider=new fr(this._score.bind(this)),this.documentFormattingEditProvider=new fr(this._score.bind(this)),this.documentRangeFormattingEditProvider=new fr(this._score.bind(this)),this.onTypeFormattingEditProvider=new fr(this._score.bind(this)),this.signatureHelpProvider=new fr(this._score.bind(this)),this.hoverProvider=new fr(this._score.bind(this)),this.documentHighlightProvider=new fr(this._score.bind(this)),this.selectionRangeProvider=new fr(this._score.bind(this)),this.foldingRangeProvider=new fr(this._score.bind(this)),this.linkProvider=new fr(this._score.bind(this)),this.inlineCompletionsProvider=new fr(this._score.bind(this)),this.completionProvider=new fr(this._score.bind(this)),this.linkedEditingRangeProvider=new fr(this._score.bind(this)),this.documentRangeSemanticTokensProvider=new fr(this._score.bind(this)),this.documentSemanticTokensProvider=new fr(this._score.bind(this)),this.documentOnDropEditProvider=new fr(this._score.bind(this)),this.documentPasteEditProvider=new fr(this._score.bind(this))}_score(e){var t;return null===(t=this._notebookTypeResolver)||void 0===t?void 0:t.call(this,e)}},!0);class _r extends hi{constructor(e={}){const t=kn.B.as(Ln.IP.Configuration).getConfigurationProperties(),i=Object.keys(t),n=Object.create(null),o=[];for(const s in t){const i=e[s],o=void 0!==i?i:t[s].default;(0,Ge.KV)(n,s,o,(e=>console.error(`Conflict in default settings: ${e}`)))}for(const s of Object.keys(n))Ln.eU.test(s)&&o.push({identifiers:(0,Ln.ny)(s),keys:Object.keys(n[s]),contents:(0,Ge.Od)(n[s],(e=>console.error(`Conflict in default settings file: ${e}`)))});super(n,i,o)}}var vr=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},br=function(e,t){return function(i,n){t(i,n,e)}},Cr=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class wr{constructor(e){this.disposed=!1,this.model=e,this._onWillDispose=new r.Q5}get textEditorModel(){return this.model}dispose(){this.disposed=!0,this._onWillDispose.fire()}}let yr=class{constructor(e){this.modelService=e}createModelReference(e){const t=this.modelService.getModel(e);return t?Promise.resolve(new N.Jz(new wr(t))):Promise.reject(new Error("Model not found"))}};yr=vr([br(0,x.q)],yr);class Sr{show(){return Sr.NULL_PROGRESS_RUNNER}showWhile(e,t){return Cr(this,void 0,void 0,(function*(){yield e}))}}Sr.NULL_PROGRESS_RUNNER={done:()=>{},total:()=>{},worked:()=>{}};class Lr{info(e){return this.notify({severity:Pt.Z.Info,message:e})}warn(e){return this.notify({severity:Pt.Z.Warning,message:e})}error(e){return this.notify({severity:Pt.Z.Error,message:e})}notify(e){switch(e.severity){case Pt.Z.Error:console.error(e.message);break;case Pt.Z.Warning:console.warn(e.message);break;default:console.log(e.message)}return Lr.NO_OP}status(e,t){return N.JT.None}}Lr.NO_OP=new Vt.EO;let kr=class{constructor(e){this._onWillExecuteCommand=new r.Q5,this._onDidExecuteCommand=new r.Q5,this.onWillExecuteCommand=this._onWillExecuteCommand.event,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this._instantiationService=e}executeCommand(e,...t){const i=li.P0.getCommand(e);if(!i)return Promise.reject(new Error(`command '${e}' not found`));try{this._onWillExecuteCommand.fire({commandId:e,args:t});const n=this._instantiationService.invokeFunction.apply(this._instantiationService,[i.handler,...t]);return this._onDidExecuteCommand.fire({commandId:e,args:t}),Promise.resolve(n)}catch(n){return Promise.reject(n)}}};kr=vr([br(0,It.TG)],kr);let xr=class extends mi{constructor(e,t,i,n,o,s){super(e,t,i,n,o),this._cachedResolver=null,this._dynamicKeybindings=[],this._domNodeListeners=[];const r=e=>{const t=new N.SL;t.add(ft.nm(e,ft.tw.KEY_DOWN,(e=>{const t=new ii.y(e);this._dispatch(t,t.target)&&(t.preventDefault(),t.stopPropagation())}))),t.add(ft.nm(e,ft.tw.KEY_UP,(e=>{const t=new ii.y(e);this._singleModifierDispatch(t,t.target)&&t.preventDefault()}))),this._domNodeListeners.push(new Dr(e,t))},a=e=>{for(let t=0;t<this._domNodeListeners.length;t++){const i=this._domNodeListeners[t];i.domNode===e&&(this._domNodeListeners.splice(t,1),i.dispose())}},l=e=>{e.getOption(56)||r(e.getContainerDomNode())};this._register(s.onCodeEditorAdd(l)),this._register(s.onCodeEditorRemove((e=>{e.getOption(56)||a(e.getContainerDomNode())}))),s.listCodeEditors().forEach(l);const c=e=>{r(e.getContainerDomNode())};this._register(s.onDiffEditorAdd(c)),this._register(s.onDiffEditorRemove((e=>{a(e.getContainerDomNode())}))),s.listDiffEditors().forEach(c)}addDynamicKeybinding(e,t,i,n){const o=(0,ni.gm)(t,I.OS),s=new N.SL;return o&&(this._dynamicKeybindings.push({keybinding:o.parts,command:e,when:n,weight1:1e3,weight2:0,extensionId:null,isBuiltinExtension:!1}),s.add((0,N.OF)((()=>{for(let t=0;t<this._dynamicKeybindings.length;t++){if(this._dynamicKeybindings[t].command===e)return this._dynamicKeybindings.splice(t,1),void this.updateResolver()}})))),s.add(li.P0.registerCommand(e,i)),this.updateResolver(),s}updateResolver(){this._cachedResolver=null,this._onDidUpdateKeybindings.fire()}_getResolver(){if(!this._cachedResolver){const e=this._toNormalizedKeybindingItems(wi.W.getDefaultKeybindings(),!0),t=this._toNormalizedKeybindingItems(this._dynamicKeybindings,!1);this._cachedResolver=new vi(e,t,(e=>this._log(e)))}return this._cachedResolver}_documentHasFocus(){return document.hasFocus()}_toNormalizedKeybindingItems(e,t){const i=[];let n=0;for(const o of e){const e=o.when||void 0,s=o.keybinding;if(s){const r=xi.resolveUserBinding(s,I.OS);for(const s of r)i[n++]=new yi(s,o.command,o.commandArgs,e,t,null,!1)}else i[n++]=new yi(void 0,o.command,o.commandArgs,e,t,null,!1)}return i}resolveKeyboardEvent(e){const t=new ni.QC(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,e.keyCode).toChord();return new xi(t,I.OS)}};xr=vr([br(0,Lt.i6),br(1,li.Hy),br(2,Ii.b),br(3,Vt.lT),br(4,we.VZ),br(5,v.$)],xr);class Dr extends N.JT{constructor(e,t){super(),this.domNode=e,this._register(t)}}function Nr(e){return e&&"object"==typeof e&&(!e.overrideIdentifier||"string"==typeof e.overrideIdentifier)&&(!e.resource||e.resource instanceof l.o)}class Er{constructor(){this._onDidChangeConfiguration=new r.Q5,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._configuration=new ui(new _r,new hi,new hi,new hi)}getValue(e,t){const i="string"==typeof e?e:void 0,n=Nr(e)?e:Nr(t)?t:{};return this._configuration.getValue(i,n,void 0)}updateValues(e){const t={data:this._configuration.toData()},i=[];for(const n of e){const[e,t]=n;this.getValue(e)!==t&&(this._configuration.updateValue(e,t),i.push(e))}if(i.length>0){const e=new gi({keys:i,overrides:[]},t,this._configuration);e.source=8,e.sourceConfig=null,this._onDidChangeConfiguration.fire(e)}return Promise.resolve()}updateValue(e,t,i,n){return this.updateValues([[e,t]])}inspect(e,t={}){return this._configuration.inspect(e,t,void 0)}}let Ir=class{constructor(e){this.configurationService=e,this._onDidChangeConfiguration=new r.Q5,this.configurationService.onDidChangeConfiguration((e=>{this._onDidChangeConfiguration.fire({affectedKeys:e.affectedKeys,affectsConfiguration:(t,i)=>e.affectsConfiguration(i)})}))}getValue(e,t,i){const n=(c.L.isIPosition(t)?t:null)?"string"==typeof i?i:void 0:"string"==typeof t?t:void 0;return void 0===n?this.configurationService.getValue():this.configurationService.getValue(n)}};Ir=vr([br(0,Ge.Ui)],Ir);let Tr=class{constructor(e){this.configurationService=e}getEOL(e,t){const i=this.configurationService.getValue("files.eol",{overrideIdentifier:t,resource:e});return i&&"string"==typeof i&&"auto"!==i?i:I.IJ||I.dz?"\n":"\r\n"}};Tr=vr([br(0,Ge.Ui)],Tr);class Mr{constructor(){const e=l.o.from({scheme:Mr.SCHEME,authority:"model",path:"/"});this.workspace={id:"4064f6ec-cb38-4ad0-af64-ee6467e63c82",folders:[new Ti.md({uri:e,name:"",index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(e){return e&&e.scheme===Mr.SCHEME?this.workspace.folders[0]:null}}function Ar(e,t,i){if(!t)return;if(!(e instanceof Er))return;const n=[];Object.keys(t).forEach((e=>{(0,si.ei)(e)&&n.push([`editor.${e}`,t[e]]),i&&(0,si.Pe)(e)&&n.push([`diffEditor.${e}`,t[e]])})),n.length>0&&e.updateValues(n)}Mr.SCHEME="inmemory";let Rr=class{constructor(e){this._modelService=e}hasPreviewHandler(){return!1}apply(e,t){return Cr(this,void 0,void 0,(function*(){const t=new Map;for(const o of e){if(!(o instanceof oi.Gl))throw new Error("bad edit - only text edits are supported");const e=this._modelService.getModel(o.resource);if(!e)throw new Error("bad edit - model not found");if("number"==typeof o.versionId&&e.getVersionId()!==o.versionId)throw new Error("bad state - model changed in the meantime");let i=t.get(e);i||(i=[],t.set(e,i)),i.push(ri.h.replaceMove(d.e.lift(o.textEdit.range),o.textEdit.text))}let i=0,n=0;for(const[e,o]of t)e.pushStackElement(),e.pushEditOperations([],o,(()=>[])),e.pushStackElement(),n+=1,i+=o.length;return{ariaSummary:f.WU(Mi.iN.bulkEditServiceSummary,i,n)}}))}};Rr=vr([br(0,x.q)],Rr);let Or=class extends ji{constructor(e,t){super(e),this._codeEditorService=t}showContextView(e,t,i){if(!t){const e=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();e&&(t=e.getContainerDomNode())}return super.showContextView(e,t,i)}};Or=vr([br(0,Tt),br(1,v.$)],Or);class Pr extends we.$V{constructor(){super(new we.kw)}}let Fr=class extends Xn{constructor(e,t,i,n,o){super(e,t,i,n,o),this.configure({blockMouse:!1})}};var Br;Fr=vr([br(0,Ii.b),br(1,Vt.lT),br(2,Oi.u),br(3,_i.d),br(4,bt.XE)],Fr),(0,kt.z)(Ge.Ui,Er),(0,kt.z)(be.V,Ir),(0,kt.z)(be.y,Tr),(0,kt.z)(Ti.ec,Mr),(0,kt.z)(Ni.e,class{getUriLabel(e,t){return"file"===e.scheme?e.fsPath:e.path}getUriBasenameLabel(e){return(0,Ai.EZ)(e)}}),(0,kt.z)(Ii.b,class{publicLog(e,t){return Promise.resolve(void 0)}publicLog2(e,t){return this.publicLog(e,t)}}),(0,kt.z)(Bt.S,class{confirm(e){return this.doConfirm(e).then((e=>({confirmed:e,checkboxChecked:!1})))}doConfirm(e){let t=e.message;return e.detail&&(t=t+"\n\n"+e.detail),Promise.resolve(window.confirm(t))}show(e,t,i,n){return Promise.resolve({choice:0})}}),(0,kt.z)(Vt.lT,Lr),(0,kt.z)(co.lT,ur),(0,kt.z)(k.O,class extends In{constructor(){super()}}),(0,kt.z)(xs.Z,ks.nI),(0,kt.z)(we.VZ,Pr),(0,kt.z)(x.q,vo.b$),(0,kt.z)(_o.i,fo),(0,kt.z)(Lt.i6,tr),(0,kt.z)(Ei.R9,class{withProgress(e,t,i){return t({report:()=>{}})}}),(0,kt.z)(Ei.ek,Sr),(0,kt.z)(Ts.Uy,Ts.vm),(0,kt.z)(mt.p,Ne),(0,kt.z)(oi.vu,Rr),(0,kt.z)(Ri.Y,class{constructor(){this._neverEmitter=new r.Q5,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}}),(0,kt.z)(ai.S,yr),(0,kt.z)(Co.F,Es),(0,kt.z)(cs.Lw,cs.XN),(0,kt.z)(li.Hy,kr),(0,kt.z)(_i.d,xr),(0,kt.z)(us.eJ,ys),(0,kt.z)(Oi.u,Or),(0,kt.z)(io.v4,lo),(0,kt.z)(zs.p,Hs),(0,kt.z)(Oi.i,Fr),(0,kt.z)(Is.co,Rs),function(e){const t=new rr.y;for(const[o,s]of(0,kt.d)())t.set(o,s);const i=new lr(t,!0);t.set(It.TG,i),e.get=function(e){const n=t.get(e);if(!n)throw new Error("Missing service "+e);return n instanceof nr.M?i.invokeFunction((t=>t.get(e))):n};let n=!1;e.initialize=function(e){if(n)return i;n=!0;for(const[i,n]of(0,kt.d)())t.get(i)||t.set(i,n);for(const i in e)if(e.hasOwnProperty(i)){const n=(0,It.yh)(i);t.get(n)instanceof nr.M&&t.set(n,e[i])}return i}}(Br||(Br={}));var Vr=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Wr=function(e,t){return function(i,n){t(i,n,e)}};let Hr=0,zr=!1;let jr=class extends ut.Gm{constructor(e,t,i,n,o,s,r,a,l,c,d,h){const u=Object.assign({},t);u.ariaLabel=u.ariaLabel||Mi.B8.editorViewAccessibleLabel,u.ariaLabel=u.ariaLabel+";"+Mi.B8.accessibilityHelpMessage,super(e,u,{},i,n,o,s,a,l,c,d,h),this._standaloneKeybindingService=r instanceof xr?r:null,function(e){if(!e){if(zr)return;zr=!0}ht.wW(e||document.body)}(u.ariaContainerElement)}addCommand(e,t,i){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const n="DYNAMIC_"+ ++Hr,o=Lt.Ao.deserialize(i);return this._standaloneKeybindingService.addDynamicKeybinding(n,e,t,o),n}createContextKey(e,t){return this._contextKeyService.createKey(e,t)}addAction(e){if("string"!=typeof e.id||"string"!=typeof e.label||"function"!=typeof e.run)throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),N.JT.None;const t=e.id,i=e.label,n=Lt.Ao.and(Lt.Ao.equals("editorId",this.getId()),Lt.Ao.deserialize(e.precondition)),o=e.keybindings,s=Lt.Ao.and(n,Lt.Ao.deserialize(e.keybindingContext)),r=e.contextMenuGroupId||null,a=e.contextMenuOrder||0,l=(t,...i)=>Promise.resolve(e.run(this,...i)),c=new N.SL,d=this.getId()+":"+t;if(c.add(li.P0.registerCommand(d,l)),r){const e={command:{id:d,title:i},when:n,group:r,order:a};c.add(Is.BH.appendMenuItem(Is.eH.EditorContext,e))}if(Array.isArray(o))for(const u of o)c.add(this._standaloneKeybindingService.addDynamicKeybinding(d,u,l,s));const h=new pt.p(d,i,i,n,l,this._contextKeyService);return this._actions[t]=h,c.add((0,N.OF)((()=>{delete this._actions[t]}))),c}_triggerCommand(e,t){if(this._codeEditorService instanceof Et)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(e,t)}};jr=Vr([Wr(2,It.TG),Wr(3,v.$),Wr(4,li.Hy),Wr(5,Lt.i6),Wr(6,_i.d),Wr(7,bt.XE),Wr(8,Vt.lT),Wr(9,Co.F),Wr(10,S.c_),Wr(11,ye.p)],jr);let Ur=class extends jr{constructor(e,t,i,n,o,s,r,a,l,c,d,h,u,g,p){const m=Object.assign({},t);Ar(c,m,!1);const f=a.registerEditorContainer(e);"string"==typeof m.theme&&a.setTheme(m.theme),void 0!==m.autoDetectHighContrast&&a.setAutoDetectHighContrast(Boolean(m.autoDetectHighContrast));const _=m.model;let v;if(delete m.model,super(e,m,i,n,o,s,r,a,l,d,g,p),this._configurationService=c,this._standaloneThemeService=a,this._register(f),void 0===_){const e=u.getLanguageIdByMimeType(m.language)||m.language||_n.bd;v=$r(h,u,m.value||"",e,void 0),this._ownsModel=!0}else v=_,this._ownsModel=!1;if(this._attachModel(v),v){const e={oldModelUrl:null,newModelUrl:v.uri};this._onDidChangeModel.fire(e)}}dispose(){super.dispose()}updateOptions(e){Ar(this._configurationService,e,!1),"string"==typeof e.theme&&this._standaloneThemeService.setTheme(e.theme),void 0!==e.autoDetectHighContrast&&this._standaloneThemeService.setAutoDetectHighContrast(Boolean(e.autoDetectHighContrast)),super.updateOptions(e)}_postDetachModelCleanup(e){super._postDetachModelCleanup(e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}};Ur=Vr([Wr(2,It.TG),Wr(3,v.$),Wr(4,li.Hy),Wr(5,Lt.i6),Wr(6,_i.d),Wr(7,xs.Z),Wr(8,Vt.lT),Wr(9,Ge.Ui),Wr(10,Co.F),Wr(11,x.q),Wr(12,k.O),Wr(13,S.c_),Wr(14,ye.p)],Ur);let Kr=class extends gt.p{constructor(e,t,i,n,o,s,r,a,l,c,d,h){const u=Object.assign({},t);Ar(l,u,!0);const g=r.registerEditorContainer(e);"string"==typeof u.theme&&r.setTheme(u.theme),void 0!==u.autoDetectHighContrast&&r.setAutoDetectHighContrast(Boolean(u.autoDetectHighContrast)),super(e,u,{},h,o,n,i,s,r,a,c,d),this._configurationService=l,this._standaloneThemeService=r,this._register(g)}dispose(){super.dispose()}updateOptions(e){Ar(this._configurationService,e,!0),"string"==typeof e.theme&&this._standaloneThemeService.setTheme(e.theme),void 0!==e.autoDetectHighContrast&&this._standaloneThemeService.setAutoDetectHighContrast(Boolean(e.autoDetectHighContrast)),super.updateOptions(e)}_createInnerEditor(e,t,i){return e.createInstance(jr,t,i)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(e,t,i){return this.getModifiedEditor().addCommand(e,t,i)}createContextKey(e,t){return this.getModifiedEditor().createContextKey(e,t)}addAction(e){return this.getModifiedEditor().addAction(e)}};function $r(e,t,i,n,o){if(i=i||"",!n){const n=i.indexOf("\n");let s=i;return-1!==n&&(s=i.substring(0,n)),qr(e,i,t.createByFilepathOrFirstLine(o||null,s),o)}return qr(e,i,t.createById(n),o)}function qr(e,t,i,n){return e.createModel(t,i,n)}function Gr(e,t,i){return Br.initialize(i||{}).createInstance(Ur,e,t)}function Qr(e){return Br.get(v.$).onCodeEditorAdd((t=>{e(t)}))}function Zr(e){return Br.get(v.$).onDiffEditorAdd((t=>{e(t)}))}function Yr(){return Br.get(v.$).listCodeEditors()}function Jr(){return Br.get(v.$).listDiffEditors()}function Xr(e,t,i){return Br.initialize(i||{}).createInstance(Kr,e,t)}function ea(e,t){return new b.F(e,t)}function ta(e,t,i){const n=Br.get(k.O),o=n.getLanguageIdByMimeType(t)||t;return $r(Br.get(x.q),n,e,o,i)}function ia(e,t){const i=Br.get(k.O);Br.get(x.q).setMode(e,i.createById(t))}function na(e,t,i){if(e){Br.get(co.lT).changeOne(t,e.uri,i)}}function oa(e){Br.get(co.lT).changeAll(e,[])}function sa(e){return Br.get(co.lT).read(e)}function ra(e){return Br.get(co.lT).onMarkerChanged(e)}function aa(e){return Br.get(x.q).getModel(e)}function la(){return Br.get(x.q).getModels()}function ca(e){return Br.get(x.q).onModelAdded(e)}function da(e){return Br.get(x.q).onModelRemoved(e)}function ha(e){return Br.get(x.q).onModelLanguageChanged((t=>{e({model:t.model,oldLanguage:t.oldLanguageId})}))}function ua(e){return function(e,t,i){return new Oe(e,t,i)}(Br.get(x.q),Br.get(S.c_),e)}function ga(e,t){const i=Br.get(k.O),n=Br.get(xs.Z);return n.registerEditorContainer(e),ct.colorizeElement(n,i,e,t)}function pa(e,t,i){const n=Br.get(k.O);return Br.get(xs.Z).registerEditorContainer(document.body),ct.colorize(n,e,t,i)}function ma(e,t,i=4){return Br.get(xs.Z).registerEditorContainer(document.body),ct.colorizeModelLine(e,t,i)}function fa(e,t){u.RW.getOrCreate(t);const i=(n=t,u.RW.get(n)||{getInitialState:()=>L.TJ,tokenize:(e,t,i)=>(0,L.Ri)(n,i)});var n;const o=(0,f.uq)(e),s=[];let r=i.getInitialState();for(let a=0,l=o.length;a<l;a++){const e=o[a],t=i.tokenize(e,!0,r);s[a]=t.tokens,r=t.endState}return s}function _a(e,t){Br.get(xs.Z).defineTheme(e,t)}function va(e){Br.get(xs.Z).setTheme(e)}function ba(){_.g.clearAllFontInfos()}function Ca(e,t){return li.P0.registerCommand({id:e,handler:t})}function wa(e,t){return"boolean"==typeof e?e:t}function ya(e,t){return"string"==typeof e?e:t}function Sa(e,t=!1){t&&(e=e.map((function(e){return e.toLowerCase()})));const i=function(e){const t={};for(const i of e)t[i]=!0;return t}(e);return t?function(e){return void 0!==i[e.toLowerCase()]&&i.hasOwnProperty(e.toLowerCase())}:function(e){return void 0!==i[e]&&i.hasOwnProperty(e)}}function La(e,t){t=t.replace(/@@/g,"\x01");let i,n=0;do{i=!1,t=t.replace(/@(\w+)/g,(function(n,o){i=!0;let s="";if("string"==typeof e[o])s=e[o];else{if(!(e[o]&&e[o]instanceof RegExp))throw void 0===e[o]?Ke(e,"language definition does not contain attribute '"+o+"', used at: "+t):Ke(e,"attribute reference '"+o+"' must be a string, used at: "+t);s=e[o].source}return ze(s)?"":"(?:"+s+")"})),n++}while(i&&n<5);t=t.replace(/\x01/g,"@");const o=(e.ignoreCase?"i":"")+(e.unicode?"u":"");return new RegExp(t,o)}function ka(e,t,i,n){let o=-1,s=i,r=i.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);r&&(r[3]&&(o=parseInt(r[3]),r[2]&&(o+=100)),s=r[4]);let a,l="~",c=s;if(s&&0!==s.length?/^\w*$/.test(c)?l="==":(r=s.match(/^(@|!@|~|!~|==|!=)(.*)$/),r&&(l=r[1],c=r[2])):(l="!=",c=""),"~"!==l&&"!~"!==l||!/^(\w|\|)*$/.test(c))if("@"===l||"!@"===l){const i=e[c];if(!i)throw Ke(e,"the @ match target '"+c+"' is not defined, in rule: "+t);if(!function(e,t){if(!t)return!1;if(!Array.isArray(t))return!1;for(const i of t)if(!e(i))return!1;return!0}((function(e){return"string"==typeof e}),i))throw Ke(e,"the @ match target '"+c+"' must be an array of strings, in rule: "+t);const n=Sa(i,e.ignoreCase);a=function(e){return"@"===l?n(e):!n(e)}}else if("~"===l||"!~"===l)if(c.indexOf("$")<0){const t=La(e,"^"+c+"$");a=function(e){return"~"===l?t.test(e):!t.test(e)}}else a=function(t,i,n,o){return La(e,"^"+$e(e,c,i,n,o)+"$").test(t)};else if(c.indexOf("$")<0){const t=je(e,c);a=function(e){return"=="===l?e===t:e!==t}}else{const t=je(e,c);a=function(i,n,o,s,r){const a=$e(e,t,n,o,s);return"=="===l?i===a:i!==a}}else{const t=Sa(c.split("|"),e.ignoreCase);a=function(e){return"~"===l?t(e):!t(e)}}return-1===o?{name:i,value:n,test:function(e,t,i,n){return a(e,e,t,i,n)}}:{name:i,value:n,test:function(e,t,i,n){const s=function(e,t,i,n){if(n<0)return e;if(n<t.length)return t[n];if(n>=100){n-=100;const e=i.split(".");if(e.unshift(i),n<e.length)return e[n]}return null}(e,t,i,o);return a(s||"",e,t,i,n)}}}function xa(e,t,i){if(i){if("string"==typeof i)return i;if(i.token||""===i.token){if("string"!=typeof i.token)throw Ke(e,"a 'token' attribute must be of type string, in rule: "+t);{const n={token:i.token};if(i.token.indexOf("$")>=0&&(n.tokenSubst=!0),"string"==typeof i.bracket)if("@open"===i.bracket)n.bracket=1;else{if("@close"!==i.bracket)throw Ke(e,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+t);n.bracket=-1}if(i.next){if("string"!=typeof i.next)throw Ke(e,"the next state must be a string value in rule: "+t);{let o=i.next;if(!/^(@pop|@push|@popall)$/.test(o)&&("@"===o[0]&&(o=o.substr(1)),o.indexOf("$")<0&&!function(e,t){let i=t;for(;i&&i.length>0;){if(e.stateNames[i])return!0;const t=i.lastIndexOf(".");i=t<0?null:i.substr(0,t)}return!1}(e,$e(e,o,"",[],""))))throw Ke(e,"the next state '"+i.next+"' is not defined in rule: "+t);n.next=o}}return"number"==typeof i.goBack&&(n.goBack=i.goBack),"string"==typeof i.switchTo&&(n.switchTo=i.switchTo),"string"==typeof i.log&&(n.log=i.log),"string"==typeof i.nextEmbedded&&(n.nextEmbedded=i.nextEmbedded,e.usesEmbedded=!0),n}}if(Array.isArray(i)){const n=[];for(let o=0,s=i.length;o<s;o++)n[o]=xa(e,t,i[o]);return{group:n}}if(i.cases){const n=[];for(const s in i.cases)if(i.cases.hasOwnProperty(s)){const o=xa(e,t,i.cases[s]);"@default"===s||"@"===s||""===s?n.push({test:void 0,value:o,name:s}):"@eos"===s?n.push({test:function(e,t,i,n){return n},value:o,name:s}):n.push(ka(e,t,s,o))}const o=e.defaultToken;return{test:function(e,t,i,s){for(const o of n){if(!o.test||o.test(e,t,i,s))return o.value}return o}}}throw Ke(e,"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: "+t)}return{token:""}}Kr=Vr([Wr(2,It.TG),Wr(3,Lt.i6),Wr(4,mt.p),Wr(5,v.$),Wr(6,xs.Z),Wr(7,Vt.lT),Wr(8,Ge.Ui),Wr(9,Oi.i),Wr(10,Ei.ek),Wr(11,zs.p)],Kr);class Da{constructor(e){this.regex=new RegExp(""),this.action={token:""},this.matchOnlyAtLineStart=!1,this.name="",this.name=e}setRegex(e,t){let i;if("string"==typeof t)i=t;else{if(!(t instanceof RegExp))throw Ke(e,"rules must start with a match string or regular expression: "+this.name);i=t.source}this.matchOnlyAtLineStart=i.length>0&&"^"===i[0],this.name=this.name+": "+i,this.regex=La(e,"^(?:"+(this.matchOnlyAtLineStart?i.substr(1):i)+")")}setAction(e,t){this.action=xa(e,this.name,t)}}function Na(e,t){if(!t||"object"!=typeof t)throw new Error("Monarch: expecting a language definition object");const i={};i.languageId=e,i.includeLF=wa(t.includeLF,!1),i.noThrow=!1,i.maxStack=100,i.start="string"==typeof t.start?t.start:null,i.ignoreCase=wa(t.ignoreCase,!1),i.unicode=wa(t.unicode,!1),i.tokenPostfix=ya(t.tokenPostfix,"."+i.languageId),i.defaultToken=ya(t.defaultToken,"source"),i.usesEmbedded=!1;const n=t;function o(e,s,r){for(const a of r){let r=a.include;if(r){if("string"!=typeof r)throw Ke(i,"an 'include' attribute must be a string at: "+e);if("@"===r[0]&&(r=r.substr(1)),!t.tokenizer[r])throw Ke(i,"include target '"+r+"' is not defined at: "+e);o(e+"."+r,s,t.tokenizer[r])}else{const t=new Da(e);if(Array.isArray(a)&&a.length>=1&&a.length<=3)if(t.setRegex(n,a[0]),a.length>=3)if("string"==typeof a[1])t.setAction(n,{token:a[1],next:a[2]});else{if("object"!=typeof a[1])throw Ke(i,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+e);{const e=a[1];e.next=a[2],t.setAction(n,e)}}else t.setAction(n,a[1]);else{if(!a.regex)throw Ke(i,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+e);a.name&&"string"==typeof a.name&&(t.name=a.name),a.matchOnlyAtStart&&(t.matchOnlyAtLineStart=wa(a.matchOnlyAtLineStart,!1)),t.setRegex(n,a.regex),t.setAction(n,a.action)}s.push(t)}}}if(n.languageId=e,n.includeLF=i.includeLF,n.ignoreCase=i.ignoreCase,n.unicode=i.unicode,n.noThrow=i.noThrow,n.usesEmbedded=i.usesEmbedded,n.stateNames=t.tokenizer,n.defaultToken=i.defaultToken,!t.tokenizer||"object"!=typeof t.tokenizer)throw Ke(i,"a language definition must define the 'tokenizer' attribute as an object");i.tokenizer=[];for(const r in t.tokenizer)if(t.tokenizer.hasOwnProperty(r)){i.start||(i.start=r);const e=t.tokenizer[r];i.tokenizer[r]=new Array,o("tokenizer."+r,i.tokenizer[r],e)}if(i.usesEmbedded=n.usesEmbedded,t.brackets){if(!Array.isArray(t.brackets))throw Ke(i,"the 'brackets' attribute must be defined as an array")}else t.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];const s=[];for(const r of t.brackets){let e=r;if(e&&Array.isArray(e)&&3===e.length&&(e={token:e[2],open:e[0],close:e[1]}),e.open===e.close)throw Ke(i,"open and close brackets in a 'brackets' attribute must be different: "+e.open+"\n hint: use the 'bracket' attribute if matching on equal brackets is required.");if("string"!=typeof e.open||"string"!=typeof e.token||"string"!=typeof e.close)throw Ke(i,"every element in the 'brackets' array must be a '{open,close,token}' object or array");s.push({token:e.token+i.tokenPostfix,open:je(i,e.open),close:je(i,e.close)})}return i.brackets=s,i.noThrow=!0,i}var Ea=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};function Ia(e){_n.dQ.registerLanguage(e)}function Ta(){let e=[];return e=e.concat(_n.dQ.getLanguages()),e}function Ma(e){return Br.get(k.O).languageIdCodec.encodeLanguageId(e)}function Aa(e,t){const i=Br.get(k.O).onDidEncounterLanguage((n=>{n===e&&(i.dispose(),t())}));return i}function Ra(e,t){if(!Br.get(k.O).isRegisteredLanguageId(e))throw new Error(`Cannot set configuration for unknown language ${e}`);return Br.get(S.c_).register(e,t,100)}class Oa{constructor(e,t){this._languageId=e,this._actual=t}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){if("function"==typeof this._actual.tokenize)return Pa.adaptTokenize(this._languageId,this._actual,e,i);throw new Error("Not supported!")}tokenizeEncoded(e,t,i){const n=this._actual.tokenizeEncoded(e,i);return new u.DI(n.tokens,n.endState)}}class Pa{constructor(e,t,i,n){this._languageId=e,this._actual=t,this._languageService=i,this._standaloneThemeService=n}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const i=[];let n=0;for(let o=0,s=e.length;o<s;o++){const s=e[o];let r=s.startIndex;0===o?r=0:r<n&&(r=n),i[o]=new u.WU(r,s.scopes,t),n=r}return i}static adaptTokenize(e,t,i,n){const o=t.tokenize(i,n),s=Pa._toClassicTokens(o.tokens,e);let r;return r=o.endState.equals(n)?n:o.endState,new u.hG(s,r)}tokenize(e,t,i){return Pa.adaptTokenize(this._languageId,this._actual,e,i)}_toBinaryTokens(e,t){const i=e.encodeLanguageId(this._languageId),n=this._standaloneThemeService.getColorTheme().tokenTheme,o=[];let s=0,r=0;for(let l=0,c=t.length;l<c;l++){const e=t[l],a=n.match(i,e.scopes);if(s>0&&o[s-1]===a)continue;let c=e.startIndex;0===l?c=0:c<r&&(c=r),o[s++]=c,o[s++]=a,r=c}const a=new Uint32Array(s);for(let l=0;l<s;l++)a[l]=o[l];return a}tokenizeEncoded(e,t,i){const n=this._actual.tokenize(e,i),o=this._toBinaryTokens(this._languageService.languageIdCodec,n.tokens);let s;return s=n.endState.equals(i)?i:n.endState,new u.DI(o,s)}}function Fa(e){return e&&"function"==typeof e.then}function Ba(e){const t=Br.get(xs.Z);if(e){const i=[null];for(let t=1,n=e.length;t<n;t++)i[t]=yo.Il.fromHex(e[t]);t.setColorMapOverride(i)}else t.setColorMapOverride(null)}function Va(e,t){return function(e){return"tokenizeEncoded"in e}(t)?new Oa(e,t):new Pa(e,t,Br.get(k.O),Br.get(xs.Z))}function Wa(e,t){const i={createTokenizationSupport:()=>Ea(this,void 0,void 0,(function*(){const i=yield Promise.resolve(t.create());return i?"function"==typeof i.getInitialState?Va(e,i):new ot(Br.get(k.O),Br.get(xs.Z),e,Na(e,i),Br.get(Ge.Ui)):null}))};return u.RW.registerFactory(e,i)}function Ha(e,t){if(!Br.get(k.O).isRegisteredLanguageId(e))throw new Error(`Cannot set tokens provider for unknown language ${e}`);return Fa(t)?Wa(e,{create:()=>t}):u.RW.register(e,Va(e,t))}function za(e,t){return Fa(t)?Wa(e,{create:()=>t}):u.RW.register(e,(t=>new ot(Br.get(k.O),Br.get(xs.Z),e,Na(e,t),Br.get(Ge.Ui)))(t))}function ja(e,t){return Br.get(ye.p).referenceProvider.register(e,t)}function Ua(e,t){return Br.get(ye.p).renameProvider.register(e,t)}function Ka(e,t){return Br.get(ye.p).signatureHelpProvider.register(e,t)}function $a(e,t){return Br.get(ye.p).hoverProvider.register(e,{provideHover:(e,i,n)=>{const o=e.getWordAtPosition(i);return Promise.resolve(t.provideHover(e,i,n)).then((e=>{if(e)return!e.range&&o&&(e.range=new d.e(i.lineNumber,o.startColumn,i.lineNumber,o.endColumn)),e.range||(e.range=new d.e(i.lineNumber,i.column,i.lineNumber,i.column)),e}))}})}function qa(e,t){return Br.get(ye.p).documentSymbolProvider.register(e,t)}function Ga(e,t){return Br.get(ye.p).documentHighlightProvider.register(e,t)}function Qa(e,t){return Br.get(ye.p).linkedEditingRangeProvider.register(e,t)}function Za(e,t){return Br.get(ye.p).definitionProvider.register(e,t)}function Ya(e,t){return Br.get(ye.p).implementationProvider.register(e,t)}function Ja(e,t){return Br.get(ye.p).typeDefinitionProvider.register(e,t)}function Xa(e,t){return Br.get(ye.p).codeLensProvider.register(e,t)}function el(e,t,i){return Br.get(ye.p).codeActionProvider.register(e,{providedCodeActionKinds:null==i?void 0:i.providedCodeActionKinds,documentation:null==i?void 0:i.documentation,provideCodeActions:(e,i,n,o)=>{const s=Br.get(co.lT).read({resource:e.uri}).filter((e=>d.e.areIntersectingOrTouching(e,i)));return t.provideCodeActions(e,i,{markers:s,only:n.only,trigger:n.trigger},o)},resolveCodeAction:t.resolveCodeAction})}function tl(e,t){return Br.get(ye.p).documentFormattingEditProvider.register(e,t)}function il(e,t){return Br.get(ye.p).documentRangeFormattingEditProvider.register(e,t)}function nl(e,t){return Br.get(ye.p).onTypeFormattingEditProvider.register(e,t)}function ol(e,t){return Br.get(ye.p).linkProvider.register(e,t)}function sl(e,t){return Br.get(ye.p).completionProvider.register(e,t)}function rl(e,t){return Br.get(ye.p).colorProvider.register(e,t)}function al(e,t){return Br.get(ye.p).foldingRangeProvider.register(e,t)}function ll(e,t){return Br.get(ye.p).declarationProvider.register(e,t)}function cl(e,t){return Br.get(ye.p).selectionRangeProvider.register(e,t)}function dl(e,t){return Br.get(ye.p).documentSemanticTokensProvider.register(e,t)}function hl(e,t){return Br.get(ye.p).documentRangeSemanticTokensProvider.register(e,t)}function ul(e,t){return Br.get(ye.p).inlineCompletionsProvider.register(e,t)}function gl(e,t){return Br.get(ye.p).inlayHintsProvider.register(e,t)}var pl,ml=i(71373);o.BH.wrappingIndent.defaultValue=0,o.BH.glyphMargin.defaultValue=!1,o.BH.autoIndent.defaultValue=3,o.BH.overviewRulerLanes.defaultValue=2,ml.xC.setFormatterSelector(((e,t,i)=>Promise.resolve(e[0])));const fl=m();fl.editor={create:Gr,getEditors:Yr,getDiffEditors:Jr,onDidCreateEditor:Qr,onDidCreateDiffEditor:Zr,createDiffEditor:Xr,createDiffNavigator:ea,createModel:ta,setModelLanguage:ia,setModelMarkers:na,getModelMarkers:sa,removeAllMarkers:oa,onDidChangeMarkers:ra,getModels:la,getModel:aa,onDidCreateModel:ca,onWillDisposeModel:da,onDidChangeModelLanguage:ha,createWebWorker:ua,colorizeElement:ga,colorize:pa,colorizeModelLine:ma,tokenize:fa,defineTheme:_a,setTheme:va,remeasureFonts:ba,registerCommand:Ca,AccessibilitySupport:g.ao,ContentWidgetPositionPreference:g.r3,CursorChangeReason:g.Vi,DefaultEndOfLine:g._x,EditorAutoIndentStrategy:g.rf,EditorOption:g.wT,EndOfLinePreference:g.gm,EndOfLineSequence:g.jl,MinimapPosition:g.F5,MouseTargetType:g.MG,OverlayWidgetPositionPreference:g.E$,OverviewRulerLane:g.sh,RenderLineNumbersType:g.Lu,RenderMinimap:g.vQ,ScrollbarVisibility:g.g_,ScrollType:g.g4,TextEditorCursorBlinkingStyle:g.In,TextEditorCursorStyle:g.d2,TrackedRangeStickiness:g.OI,WrappingIndent:g.up,InjectedTextCursorStops:g.RM,PositionAffinity:g.py,ConfigurationChangedEvent:o.Bb,BareFontInfo:C.E4,FontInfo:C.pR,TextModelResolvedOptions:y.dJ,FindMatch:y.tk,ApplyUpdateResult:o.rk,EditorType:w.g,EditorOptions:o.BH},fl.languages={register:Ia,getLanguages:Ta,onLanguage:Aa,getEncodedLanguageId:Ma,setLanguageConfiguration:Ra,setColorMap:Ba,registerTokensProviderFactory:Wa,setTokensProvider:Ha,setMonarchTokensProvider:za,registerReferenceProvider:ja,registerRenameProvider:Ua,registerCompletionItemProvider:sl,registerSignatureHelpProvider:Ka,registerHoverProvider:$a,registerDocumentSymbolProvider:qa,registerDocumentHighlightProvider:Ga,registerLinkedEditingRangeProvider:Qa,registerDefinitionProvider:Za,registerImplementationProvider:Ya,registerTypeDefinitionProvider:Ja,registerCodeLensProvider:Xa,registerCodeActionProvider:el,registerDocumentFormattingEditProvider:tl,registerDocumentRangeFormattingEditProvider:il,registerOnTypeFormattingEditProvider:nl,registerLinkProvider:ol,registerColorProvider:rl,registerFoldingRangeProvider:al,registerDeclarationProvider:ll,registerSelectionRangeProvider:cl,registerDocumentSemanticTokensProvider:dl,registerDocumentRangeSemanticTokensProvider:hl,registerInlineCompletionsProvider:ul,registerInlayHintsProvider:gl,DocumentHighlightKind:g.MY,CompletionItemKind:g.cm,CompletionItemTag:g.we,CompletionItemInsertTextRule:g.a7,SymbolKind:g.cR,SymbolTag:g.r4,IndentAction:g.wU,CompletionTriggerKind:g.Ij,SignatureHelpTriggerKind:g.WW,InlayHintKind:g.gl,InlineCompletionTriggerKind:g.bw,CodeActionTriggerType:g.np,FoldingRangeKind:u.AD};const _l=fl.CancellationTokenSource,vl=fl.Emitter,bl=fl.KeyCode,Cl=fl.KeyMod,wl=fl.Position,yl=fl.Range,Sl=fl.Selection,Ll=fl.SelectionDirection,kl=fl.MarkerSeverity,xl=fl.MarkerTag,Dl=fl.Uri,Nl=fl.Token,El=fl.editor,Il=fl.languages;((null===(pl=I.li.MonacoEnvironment)||void 0===pl?void 0:pl.globalAPI)||"function"==typeof define&&i.amdO)&&(self.monaco=fl),void 0!==self.require&&"function"==typeof self.require.config&&self.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});var Tl;i(29126),i(89808),i(13598),i(52042),i(50497),i(11336),i(76334),i(30253),i(47940),i(18162),i(79556),i(56292),i(40605),i(30282),i(42429),i(24129),i(88765),i(43814),i(45067),i(21589),i(97820),i(40927),i(26220),i(1526),i(64091),i(40902),i(68423),i(17476),i(16745),i(43763),i(72323),i(46595),i(36831),i(66079),i(90158),i(38698),i(82665),i(51944),i(77365),i(6595),i(75769),i(51714),i(86935),i(62893),i(27616),i(83335),i(46266),i(89723),i(55788),i(48746),i(94992),i(16563),i(57296),i(85098),i(83187),i(12026),i(76194),i(5566),i(26254),i(5734),i(40191),i(93127),i(34483),i(40840),i(37266),i(2375),i(96461),i(76628),i(40185),i(27776),i(28118),i(96337),i(87530),i(25929),i(17918),i(6205),i(46837),i(88307),i(39585),i(58203),i(81905),i(94199);self.MonacoEnvironment=(Tl={editorWorkerService:"editor.worker.js",css:"css.worker.js",html:"html.worker.js",json:"json.worker.js",typescript:"ts.worker.js",javascript:"ts.worker.js",less:"css.worker.js",scss:"css.worker.js",handlebars:"html.worker.js",razor:"html.worker.js"},{globalAPI:!1,getWorkerUrl:function(e,t){var n=i.p,o=(n?n.replace(/\/$/,"")+"/":"")+Tl[t];if(/^((http:)|(https:)|(file:)|(\/\/))/.test(o)){var s=String(window.location),r=s.substr(0,s.length-window.location.hash.length-window.location.search.length-window.location.pathname.length);if(o.substring(0,r.length)!==r){/^(\/\/)/.test(o)&&(o=window.location.protocol+o);var a=new Blob(["/*"+t+'*/importScripts("'+o+'");'],{type:"application/javascript"});return URL.createObjectURL(a)}}return o}});const Ml=n},33898:(e,t,i)=>{"use strict";i.r(t),i.d(t,{CancellationTokenSource:()=>s.CancellationTokenSource,Emitter:()=>s.Emitter,KeyCode:()=>s.KeyCode,KeyMod:()=>s.KeyMod,MarkerSeverity:()=>s.MarkerSeverity,MarkerTag:()=>s.MarkerTag,Position:()=>s.Position,Range:()=>s.Range,Selection:()=>s.Selection,SelectionDirection:()=>s.SelectionDirection,Token:()=>s.Token,Uri:()=>s.Uri,default:()=>r,editor:()=>s.editor,languages:()=>s.languages});var n={};i.r(n),i.d(n,{CancellationTokenSource:()=>s.CancellationTokenSource,Emitter:()=>s.Emitter,KeyCode:()=>s.KeyCode,KeyMod:()=>s.KeyMod,MarkerSeverity:()=>s.MarkerSeverity,MarkerTag:()=>s.MarkerTag,Position:()=>s.Position,Range:()=>s.Range,Selection:()=>s.Selection,SelectionDirection:()=>s.SelectionDirection,Token:()=>s.Token,Uri:()=>s.Uri,editor:()=>s.editor,languages:()=>s.languages});i(29477),i(90236),i(71387),i(42549),i(39934),i(72102),i(55833),i(34281),i(87712),i(29079),i(39956),i(93740),i(85754),i(41895),i(27107),i(76917),i(22482),i(55826),i(40714),i(44125),i(61097),i(99803),i(62078),i(95817),i(22470),i(66122),i(19646),i(68077),i(84602),i(77563),i(70448),i(97830),i(97615),i(49504),i(76),i(18408),i(77061),i(97660),i(91732),i(60669),i(96816),i(73945),i(45048),i(82379),i(47721),i(98762),i(61984),i(76092),i(88088),i(15662),i(64662),i(52614),i(95180),i(79607),i(61271),i(70943),i(37181),i(86709);var o,s=i(38139);i(29126),i(89808),i(13598),i(52042),i(50497),i(11336),i(76334),i(30253),i(47940),i(18162),i(79556),i(56292),i(30282),i(42429),i(24129),i(88765),i(43814),i(45067),i(97820),i(21589),i(40927),i(26220),i(1526),i(64091),i(40902),i(17476),i(16745),i(43763),i(46595),i(36831),i(66079),i(90158),i(82665),i(38698),i(51944),i(77365),i(6595),i(75769),i(51714),i(86935),i(62893),i(27616),i(83335),i(46266),i(89723),i(55788),i(48746),i(94992),i(16563),i(57296),i(85098),i(83187),i(12026),i(76194),i(5566),i(26254),i(5734),i(40191),i(93127),i(34483),i(40840),i(37266),i(2375),i(96461),i(76628),i(40185),i(27776),i(28118),i(96337),i(87530),i(25929),i(17918),i(6205),i(46837),i(88307),i(58203),i(81905),i(94199),i(40605),i(68423),i(72323),i(39585),i(27982),i(14869),i(75623),i(20913),i(28609);self.MonacoEnvironment=(o={editorWorkerService:"editor.worker.js",css:"css.worker.js",html:"html.worker.js",json:"json.worker.js",typescript:"ts.worker.js",javascript:"ts.worker.js",less:"css.worker.js",scss:"css.worker.js",handlebars:"html.worker.js",razor:"html.worker.js"},{globalAPI:!1,getWorkerUrl:function(e,t){var n=i.p,s=(n?n.replace(/\/$/,"")+"/":"")+o[t];if(/^((http:)|(https:)|(file:)|(\/\/))/.test(s)){var r=String(window.location),a=r.substr(0,r.length-window.location.hash.length-window.location.search.length-window.location.pathname.length);if(s.substring(0,a.length)!==a){/^(\/\/)/.test(s)&&(s=window.location.protocol+s);var l=new Blob(["/*"+t+'*/importScripts("'+s+'");'],{type:"application/javascript"});return URL.createObjectURL(l)}}return s}});const r=n},16268:(e,t,i)=>{"use strict";i.r(t),i.d(t,{PixelRatio:()=>c,addMatchMediaChangeListener:()=>l,getZoomFactor:()=>d,isAndroid:()=>v,isChrome:()=>p,isElectron:()=>_,isFirefox:()=>u,isSafari:()=>m,isStandalone:()=>C,isWebKit:()=>g,isWebkitWebView:()=>f});var n=i(4669),o=i(5976);class s{constructor(){this._zoomFactor=1}getZoomFactor(){return this._zoomFactor}}s.INSTANCE=new s;class r extends o.JT{constructor(){super(),this._onDidChange=this._register(new n.Q5),this.onDidChange=this._onDidChange.event,this._listener=()=>this._handleChange(!0),this._mediaQueryList=null,this._handleChange(!1)}_handleChange(e){var t;null===(t=this._mediaQueryList)||void 0===t||t.removeEventListener("change",this._listener),this._mediaQueryList=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`),this._mediaQueryList.addEventListener("change",this._listener),e&&this._onDidChange.fire()}}class a extends o.JT{constructor(){super(),this._onDidChange=this._register(new n.Q5),this.onDidChange=this._onDidChange.event,this._value=this._getPixelRatio();const e=this._register(new r);this._register(e.onDidChange((()=>{this._value=this._getPixelRatio(),this._onDidChange.fire(this._value)})))}get value(){return this._value}_getPixelRatio(){const e=document.createElement("canvas").getContext("2d");return(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)}}function l(e,t){"string"==typeof e&&(e=window.matchMedia(e)),e.addEventListener("change",t)}const c=new class{constructor(){this._pixelRatioMonitor=null}_getOrCreatePixelRatioMonitor(){return this._pixelRatioMonitor||(this._pixelRatioMonitor=(0,o.dk)(new a)),this._pixelRatioMonitor}get value(){return this._getOrCreatePixelRatioMonitor().value}get onDidChange(){return this._getOrCreatePixelRatioMonitor().onDidChange}};function d(){return s.INSTANCE.getZoomFactor()}const h=navigator.userAgent,u=h.indexOf("Firefox")>=0,g=h.indexOf("AppleWebKit")>=0,p=h.indexOf("Chrome")>=0,m=!p&&h.indexOf("Safari")>=0,f=!p&&!m&&g,_=h.indexOf("Electron/")>=0,v=h.indexOf("Android")>=0;let b=!1;if(window.matchMedia){const e=window.matchMedia("(display-mode: standalone)");b=e.matches,l(e,(({matches:e})=>{b=e}))}function C(){return b}},10161:(e,t,i)=>{"use strict";i.d(t,{D:()=>s});var n=i(16268),o=i(1432);const s={clipboard:{writeText:o.tY||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:o.tY||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText)},keyboard:o.tY||n.isStandalone()?0:navigator.keyboard||n.isSafari?1:2,touch:"ontouchstart"in window||navigator.maxTouchPoints>0,pointerEvents:window.PointerEvent&&("ontouchstart"in window||window.navigator.maxTouchPoints>0||navigator.maxTouchPoints>0)}},23547:(e,t,i)=>{"use strict";i.d(t,{P:()=>o,g:()=>n});const n={RESOURCES:"ResourceURLs",DOWNLOAD_URL:"DownloadURL",FILES:"Files",TEXT:i(81170).v.text},o={CurrentDragAndDropData:void 0}},65321:(e,t,i)=>{"use strict";i.d(t,{$:()=>ce,$Z:()=>de,Ay:()=>j,Ce:()=>oe,Cp:()=>he,D6:()=>x,DI:()=>A,Dx:()=>k,FK:()=>O,Fx:()=>V,GQ:()=>b,H$:()=>ue,I8:()=>M,IC:()=>C,If:()=>P,OO:()=>z,PO:()=>g,R3:()=>ne,Re:()=>Z,Ro:()=>N,Uh:()=>ge,Uw:()=>p,V3:()=>pe,_0:()=>ee,_F:()=>ve,_h:()=>_e,_q:()=>be,dS:()=>K,dp:()=>I,eg:()=>Ce,fk:()=>G,go:()=>ie,i:()=>T,jL:()=>y,jg:()=>B,jt:()=>me,lI:()=>w,mc:()=>se,mu:()=>v,nm:()=>f,tw:()=>Y,uN:()=>Q,uU:()=>W,vL:()=>X,vY:()=>U,w:()=>R,wY:()=>fe,wn:()=>F,xQ:()=>E,zB:()=>J});var n=i(16268),o=i(10161),s=i(59069),r=i(7317),a=i(17301),l=i(4669),c=i(70921),d=i(5976),h=i(66663),u=i(1432);function g(e){for(;e.firstChild;)e.firstChild.remove()}function p(e){var t;return null!==(t=null==e?void 0:e.isConnected)&&void 0!==t&&t}class m{constructor(e,t,i,n){this._node=e,this._type=t,this._handler=i,this._options=n||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}}function f(e,t,i,n){return new m(e,t,i,n)}function _(e){return function(t){return e(new r.n(t))}}const v=function(e,t,i,n){let o=i;return"click"===t||"mousedown"===t?o=_(i):"keydown"!==t&&"keypress"!==t&&"keyup"!==t||(o=function(e){return function(t){return e(new s.y(t))}}(i)),f(e,t,o,n)},b=function(e,t,i){return function(e,t,i){return f(e,u.gn&&o.D.pointerEvents?Y.POINTER_DOWN:Y.MOUSE_DOWN,t,i)}(e,_(t),i)};function C(e,t,i){let n=null;const o=e=>s.fire(e),s=new l.Q5({onFirstListenerAdd:()=>{n||(n=new m(e,t,o,i))},onLastListenerRemove:()=>{n&&(n.dispose(),n=null)}});return s}let w,y,S=null;class L{constructor(e,t=0){this._runner=e,this.priority=t,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(e){(0,a.dL)(e)}}static sort(e,t){return t.priority-e.priority}}function k(e){return document.defaultView.getComputedStyle(e,null)}function x(e){if(e!==document.body)return new N(e.clientWidth,e.clientHeight);if(u.gn&&window.visualViewport)return new N(window.visualViewport.width,window.visualViewport.height);if(window.innerWidth&&window.innerHeight)return new N(window.innerWidth,window.innerHeight);if(document.body&&document.body.clientWidth&&document.body.clientHeight)return new N(document.body.clientWidth,document.body.clientHeight);if(document.documentElement&&document.documentElement.clientWidth&&document.documentElement.clientHeight)return new N(document.documentElement.clientWidth,document.documentElement.clientHeight);throw new Error("Unable to figure out browser width and height")}!function(){let e=[],t=null,i=!1,n=!1;const o=()=>{for(i=!1,t=e,e=[],n=!0;t.length>0;){t.sort(L.sort);t.shift().execute()}n=!1};y=(t,n=0)=>{const s=new L(t,n);return e.push(s),i||(i=!0,function(e){if(!S){const e=e=>setTimeout((()=>e((new Date).getTime())),0);S=self.requestAnimationFrame||self.msRequestAnimationFrame||self.webkitRequestAnimationFrame||self.mozRequestAnimationFrame||self.oRequestAnimationFrame||e}S.call(self,e)}(o)),s},w=(e,i)=>{if(n){const n=new L(e,i);return t.push(n),n}return y(e,i)}}();class D{static convertToPixels(e,t){return parseFloat(t)||0}static getDimension(e,t,i){const n=k(e);let o="0";return n&&(o=n.getPropertyValue?n.getPropertyValue(t):n.getAttribute(i)),D.convertToPixels(e,o)}static getBorderLeftWidth(e){return D.getDimension(e,"border-left-width","borderLeftWidth")}static getBorderRightWidth(e){return D.getDimension(e,"border-right-width","borderRightWidth")}static getBorderTopWidth(e){return D.getDimension(e,"border-top-width","borderTopWidth")}static getBorderBottomWidth(e){return D.getDimension(e,"border-bottom-width","borderBottomWidth")}static getPaddingLeft(e){return D.getDimension(e,"padding-left","paddingLeft")}static getPaddingRight(e){return D.getDimension(e,"padding-right","paddingRight")}static getPaddingTop(e){return D.getDimension(e,"padding-top","paddingTop")}static getPaddingBottom(e){return D.getDimension(e,"padding-bottom","paddingBottom")}static getMarginLeft(e){return D.getDimension(e,"margin-left","marginLeft")}static getMarginTop(e){return D.getDimension(e,"margin-top","marginTop")}static getMarginRight(e){return D.getDimension(e,"margin-right","marginRight")}static getMarginBottom(e){return D.getDimension(e,"margin-bottom","marginBottom")}}class N{constructor(e,t){this.width=e,this.height=t}with(e=this.width,t=this.height){return e!==this.width||t!==this.height?new N(e,t):this}static is(e){return"object"==typeof e&&"number"==typeof e.height&&"number"==typeof e.width}static lift(e){return e instanceof N?e:new N(e.width,e.height)}static equals(e,t){return e===t||!(!e||!t)&&(e.width===t.width&&e.height===t.height)}}function E(e){let t=e.offsetParent,i=e.offsetTop,n=e.offsetLeft;for(;null!==(e=e.parentNode)&&e!==document.body&&e!==document.documentElement;){i-=e.scrollTop;const o=H(e)?null:k(e);o&&(n-="rtl"!==o.direction?e.scrollLeft:-e.scrollLeft),e===t&&(n+=D.getBorderLeftWidth(e),i+=D.getBorderTopWidth(e),i+=e.offsetTop,n+=e.offsetLeft,t=e.offsetParent)}return{left:n,top:i}}function I(e,t,i){"number"==typeof t&&(e.style.width=`${t}px`),"number"==typeof i&&(e.style.height=`${i}px`)}function T(e){const t=e.getBoundingClientRect();return{left:t.left+A.scrollX,top:t.top+A.scrollY,width:t.width,height:t.height}}function M(e){let t=e,i=1;do{const e=k(t).zoom;null!=e&&"1"!==e&&(i*=e),t=t.parentElement}while(null!==t&&t!==document.documentElement);return i}N.None=new N(0,0);const A=new class{get scrollX(){return"number"==typeof window.scrollX?window.scrollX:document.body.scrollLeft+document.documentElement.scrollLeft}get scrollY(){return"number"==typeof window.scrollY?window.scrollY:document.body.scrollTop+document.documentElement.scrollTop}};function R(e){const t=D.getMarginLeft(e)+D.getMarginRight(e);return e.offsetWidth+t}function O(e){const t=D.getBorderLeftWidth(e)+D.getBorderRightWidth(e),i=D.getPaddingLeft(e)+D.getPaddingRight(e);return e.offsetWidth-t-i}function P(e){const t=D.getBorderTopWidth(e)+D.getBorderBottomWidth(e),i=D.getPaddingTop(e)+D.getPaddingBottom(e);return e.offsetHeight-t-i}function F(e){const t=D.getMarginTop(e)+D.getMarginBottom(e);return e.offsetHeight+t}function B(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}function V(e,t,i){for(;e&&e.nodeType===e.ELEMENT_NODE;){if(e.classList.contains(t))return e;if(i)if("string"==typeof i){if(e.classList.contains(i))return null}else if(e===i)return null;e=e.parentNode}return null}function W(e,t,i){return!!V(e,t,i)}function H(e){return e&&!!e.host&&!!e.mode}function z(e){return!!j(e)}function j(e){for(;e.parentNode;){if(e===document.body)return null;e=e.parentNode}return H(e)?e:null}function U(){let e=document.activeElement;for(;null==e?void 0:e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function K(e=document.getElementsByTagName("head")[0]){const t=document.createElement("style");return t.type="text/css",t.media="screen",e.appendChild(t),t}let $=null;function q(){return $||($=K()),$}function G(e,t,i=q()){i&&t&&i.sheet.insertRule(e+"{"+t+"}",0)}function Q(e,t=q()){if(!t)return;const i=function(e){var t,i;return(null===(t=null==e?void 0:e.sheet)||void 0===t?void 0:t.rules)?e.sheet.rules:(null===(i=null==e?void 0:e.sheet)||void 0===i?void 0:i.cssRules)?e.sheet.cssRules:[]}(t),n=[];for(let o=0;o<i.length;o++){-1!==i[o].selectorText.indexOf(e)&&n.push(o)}for(let o=n.length-1;o>=0;o--)t.sheet.deleteRule(n[o])}function Z(e){return"object"==typeof HTMLElement?e instanceof HTMLElement:e&&"object"==typeof e&&1===e.nodeType&&"string"==typeof e.nodeName}const Y={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_LEAVE:"pointerleave",CONTEXT_MENU:"contextmenu",WHEEL:"wheel",KEY_DOWN:"keydown",KEY_PRESS:"keypress",KEY_UP:"keyup",LOAD:"load",BEFORE_UNLOAD:"beforeunload",UNLOAD:"unload",PAGE_SHOW:"pageshow",PAGE_HIDE:"pagehide",ABORT:"abort",ERROR:"error",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_CHANGE:"fullscreenchange",WK_FULLSCREEN_CHANGE:"webkitfullscreenchange",SELECT:"select",CHANGE:"change",SUBMIT:"submit",RESET:"reset",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",STORAGE:"storage",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend",ANIMATION_START:n.isWebKit?"webkitAnimationStart":"animationstart",ANIMATION_END:n.isWebKit?"webkitAnimationEnd":"animationend",ANIMATION_ITERATION:n.isWebKit?"webkitAnimationIteration":"animationiteration"},J={stop:function(e,t){e.preventDefault?e.preventDefault():e.returnValue=!1,t&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)}};function X(e){const t=[];for(let i=0;e&&e.nodeType===e.ELEMENT_NODE;i++)t[i]=e.scrollTop,e=e.parentNode;return t}function ee(e,t){for(let i=0;e&&e.nodeType===e.ELEMENT_NODE;i++)e.scrollTop!==t[i]&&(e.scrollTop=t[i]),e=e.parentNode}class te extends d.JT{constructor(e){super(),this._onDidFocus=this._register(new l.Q5),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new l.Q5),this.onDidBlur=this._onDidBlur.event;let t=te.hasFocusWithin(e),i=!1;const n=()=>{i=!1,t||(t=!0,this._onDidFocus.fire())},o=()=>{t&&(i=!0,window.setTimeout((()=>{i&&(i=!1,t=!1,this._onDidBlur.fire())}),0))};this._refreshStateHandler=()=>{te.hasFocusWithin(e)!==t&&(t?o():n())},this._register(f(e,Y.FOCUS,n,!0)),this._register(f(e,Y.BLUR,o,!0)),this._register(f(e,Y.FOCUS_IN,(()=>this._refreshStateHandler()))),this._register(f(e,Y.FOCUS_OUT,(()=>this._refreshStateHandler())))}static hasFocusWithin(e){const t=j(e);return B(t?t.activeElement:document.activeElement,e)}}function ie(e){return new te(e)}function ne(e,...t){if(e.append(...t),1===t.length&&"string"!=typeof t[0])return t[0]}function oe(e,t){return e.insertBefore(t,e.firstChild),t}function se(e,...t){e.innerText="",ne(e,...t)}const re=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;var ae;function le(e,t,i,...n){const o=re.exec(t);if(!o)throw new Error("Bad use of emmet");i=Object.assign({},i||{});const s=o[1]||"div";let r;return r=e!==ae.HTML?document.createElementNS(e,s):document.createElement(s),o[3]&&(r.id=o[3]),o[4]&&(r.className=o[4].replace(/\./g," ").trim()),Object.keys(i).forEach((e=>{const t=i[e];void 0!==t&&(/^on\w+$/.test(e)?r[e]=t:"selected"===e?t&&r.setAttribute(e,"true"):r.setAttribute(e,t))})),r.append(...n),r}function ce(e,t,...i){return le(ae.HTML,e,t,...i)}function de(...e){for(const t of e)t.style.display="",t.removeAttribute("aria-hidden")}function he(...e){for(const t of e)t.style.display="none",t.setAttribute("aria-hidden","true")}function ue(e){return Array.prototype.slice.call(document.getElementsByTagName(e),0)}function ge(e){const t=window.devicePixelRatio*e;return Math.max(1,Math.floor(t))/window.devicePixelRatio}function pe(e){window.open(e,"_blank","noopener")}function me(e){const t=()=>{e(),i=y(t)};let i=y(t);return(0,d.OF)((()=>i.dispose()))}function fe(e){return e?`url('${h.Gi.asBrowserUri(e).toString(!0).replace(/'/g,"%27")}')`:"url('')"}function _e(e){return`'${e.replace(/'/g,"%27")}'`}function ve(e,t=!1){const i=document.createElement("a");return c.v5("afterSanitizeAttributes",(n=>{for(const o of["href","src"])if(n.hasAttribute(o)){const s=n.getAttribute(o);if("href"===o&&s.startsWith("#"))continue;if(i.href=s,!e.includes(i.protocol.replace(/:$/,""))){if(t&&"src"===o&&i.href.startsWith("data:"))continue;n.removeAttribute(o)}}})),(0,d.OF)((()=>{c.ok("afterSanitizeAttributes")}))}!function(e){e.HTML="http://www.w3.org/1999/xhtml",e.SVG="http://www.w3.org/2000/svg"}(ae||(ae={})),ce.SVG=function(e,t,...i){return le(ae.SVG,e,t,...i)},h.WX.setPreferredWebSchema(/^https:/.test(window.location.href)?"https":"http");class be extends l.Q5{constructor(){super(),this._subscriptions=new d.SL,this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},this._subscriptions.add(f(window,"keydown",(e=>{if(e.defaultPrevented)return;const t=new s.y(e);if(6!==t.keyCode||!e.repeat){if(e.altKey&&!this._keyStatus.altKey)this._keyStatus.lastKeyPressed="alt";else if(e.ctrlKey&&!this._keyStatus.ctrlKey)this._keyStatus.lastKeyPressed="ctrl";else if(e.metaKey&&!this._keyStatus.metaKey)this._keyStatus.lastKeyPressed="meta";else if(e.shiftKey&&!this._keyStatus.shiftKey)this._keyStatus.lastKeyPressed="shift";else{if(6===t.keyCode)return;this._keyStatus.lastKeyPressed=void 0}this._keyStatus.altKey=e.altKey,this._keyStatus.ctrlKey=e.ctrlKey,this._keyStatus.metaKey=e.metaKey,this._keyStatus.shiftKey=e.shiftKey,this._keyStatus.lastKeyPressed&&(this._keyStatus.event=e,this.fire(this._keyStatus))}}),!0)),this._subscriptions.add(f(window,"keyup",(e=>{e.defaultPrevented||(!e.altKey&&this._keyStatus.altKey?this._keyStatus.lastKeyReleased="alt":!e.ctrlKey&&this._keyStatus.ctrlKey?this._keyStatus.lastKeyReleased="ctrl":!e.metaKey&&this._keyStatus.metaKey?this._keyStatus.lastKeyReleased="meta":!e.shiftKey&&this._keyStatus.shiftKey?this._keyStatus.lastKeyReleased="shift":this._keyStatus.lastKeyReleased=void 0,this._keyStatus.lastKeyPressed!==this._keyStatus.lastKeyReleased&&(this._keyStatus.lastKeyPressed=void 0),this._keyStatus.altKey=e.altKey,this._keyStatus.ctrlKey=e.ctrlKey,this._keyStatus.metaKey=e.metaKey,this._keyStatus.shiftKey=e.shiftKey,this._keyStatus.lastKeyReleased&&(this._keyStatus.event=e,this.fire(this._keyStatus)))}),!0)),this._subscriptions.add(f(document.body,"mousedown",(()=>{this._keyStatus.lastKeyPressed=void 0}),!0)),this._subscriptions.add(f(document.body,"mouseup",(()=>{this._keyStatus.lastKeyPressed=void 0}),!0)),this._subscriptions.add(f(document.body,"mousemove",(e=>{e.buttons&&(this._keyStatus.lastKeyPressed=void 0)}),!0)),this._subscriptions.add(f(window,"blur",(()=>{this.resetKeyStatus()})))}get keyStatus(){return this._keyStatus}resetKeyStatus(){this.doResetKeyStatus(),this.fire(this._keyStatus)}doResetKeyStatus(){this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1}}static getInstance(){return be.instance||(be.instance=new be),be.instance}dispose(){super.dispose(),this._subscriptions.dispose()}}class Ce extends d.JT{constructor(e,t){super(),this.element=e,this.callbacks=t,this.counter=0,this.dragStartTime=0,this.registerListeners()}registerListeners(){this._register(f(this.element,Y.DRAG_ENTER,(e=>{this.counter++,this.dragStartTime=e.timeStamp,this.callbacks.onDragEnter(e)}))),this._register(f(this.element,Y.DRAG_OVER,(e=>{var t,i;e.preventDefault(),null===(i=(t=this.callbacks).onDragOver)||void 0===i||i.call(t,e,e.timeStamp-this.dragStartTime)}))),this._register(f(this.element,Y.DRAG_LEAVE,(e=>{this.counter--,0===this.counter&&(this.dragStartTime=0,this.callbacks.onDragLeave(e))}))),this._register(f(this.element,Y.DRAG_END,(e=>{this.counter=0,this.dragStartTime=0,this.callbacks.onDragEnd(e)}))),this._register(f(this.element,Y.DROP,(e=>{this.counter=0,this.dragStartTime=0,this.callbacks.onDrop(e)})))}}},70921:(e,t,i)=>{"use strict";i.d(t,{Nw:()=>J,ok:()=>ee,v5:()=>X});var n=Object.hasOwnProperty,o=Object.setPrototypeOf,s=Object.isFrozen,r=Object.getPrototypeOf,a=Object.getOwnPropertyDescriptor,l=Object.freeze,c=Object.seal,d=Object.create,h="undefined"!=typeof Reflect&&Reflect,u=h.apply,g=h.construct;u||(u=function(e,t,i){return e.apply(t,i)}),l||(l=function(e){return e}),c||(c=function(e){return e}),g||(g=function(e,t){return new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++)i[t]=e[t];return i}return Array.from(e)}(t))))});var p,m=k(Array.prototype.forEach),f=k(Array.prototype.pop),_=k(Array.prototype.push),v=k(String.prototype.toLowerCase),b=k(String.prototype.match),C=k(String.prototype.replace),w=k(String.prototype.indexOf),y=k(String.prototype.trim),S=k(RegExp.prototype.test),L=(p=TypeError,function(){for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];return g(p,t)});function k(e){return function(t){for(var i=arguments.length,n=Array(i>1?i-1:0),o=1;o<i;o++)n[o-1]=arguments[o];return u(e,t,n)}}function x(e,t){o&&o(e,null);for(var i=t.length;i--;){var n=t[i];if("string"==typeof n){var r=v(n);r!==n&&(s(t)||(t[i]=r),n=r)}e[n]=!0}return e}function D(e){var t=d(null),i=void 0;for(i in e)u(n,e,[i])&&(t[i]=e[i]);return t}function N(e,t){for(;null!==e;){var i=a(e,t);if(i){if(i.get)return k(i.get);if("function"==typeof i.value)return k(i.value)}e=r(e)}return function(e){return console.warn("fallback value for",e),null}}var E=l(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),I=l(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),T=l(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),M=l(["animate","color-profile","cursor","discard","fedropshadow","feimage","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),A=l(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"]),R=l(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),O=l(["#text"]),P=l(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),F=l(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),B=l(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),V=l(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),W=c(/\{\{[\s\S]*|[\s\S]*\}\}/gm),H=c(/<%[\s\S]*|[\s\S]*%>/gm),z=c(/^data-[\-\w.\u00B7-\uFFFF]/),j=c(/^aria-[\-\w]+$/),U=c(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),K=c(/^(?:\w+script|data):/i),$=c(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function G(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++)i[t]=e[t];return i}return Array.from(e)}var Q=function(){return"undefined"==typeof window?null:window},Z=function(e,t){if("object"!==(void 0===e?"undefined":q(e))||"function"!=typeof e.createPolicy)return null;var i=null,n="data-tt-policy-suffix";t.currentScript&&t.currentScript.hasAttribute(n)&&(i=t.currentScript.getAttribute(n));var o="dompurify"+(i?"#"+i:"");try{return e.createPolicy(o,{createHTML:function(e){return e}})}catch(s){return console.warn("TrustedTypes policy "+o+" could not be created."),null}};var Y=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Q(),i=function(t){return e(t)};if(i.version="2.3.1",i.removed=[],!t||!t.document||9!==t.document.nodeType)return i.isSupported=!1,i;var n=t.document,o=t.document,s=t.DocumentFragment,r=t.HTMLTemplateElement,a=t.Node,c=t.Element,d=t.NodeFilter,h=t.NamedNodeMap,u=void 0===h?t.NamedNodeMap||t.MozNamedAttrMap:h,g=t.Text,p=t.Comment,k=t.DOMParser,Y=t.trustedTypes,J=c.prototype,X=N(J,"cloneNode"),ee=N(J,"nextSibling"),te=N(J,"childNodes"),ie=N(J,"parentNode");if("function"==typeof r){var ne=o.createElement("template");ne.content&&ne.content.ownerDocument&&(o=ne.content.ownerDocument)}var oe=Z(Y,n),se=oe&&Fe?oe.createHTML(""):"",re=o,ae=re.implementation,le=re.createNodeIterator,ce=re.createDocumentFragment,de=re.getElementsByTagName,he=n.importNode,ue={};try{ue=D(o).documentMode?o.documentMode:{}}catch(vt){}var ge={};i.isSupported="function"==typeof ie&&ae&&void 0!==ae.createHTMLDocument&&9!==ue;var pe=W,me=H,fe=z,_e=j,ve=K,be=$,Ce=U,we=null,ye=x({},[].concat(G(E),G(I),G(T),G(A),G(O))),Se=null,Le=x({},[].concat(G(P),G(F),G(B),G(V))),ke=null,xe=null,De=!0,Ne=!0,Ee=!1,Ie=!1,Te=!1,Me=!1,Ae=!1,Re=!1,Oe=!1,Pe=!0,Fe=!1,Be=!0,Ve=!0,We=!1,He={},ze=null,je=x({},["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"]),Ue=null,Ke=x({},["audio","video","img","source","image","track"]),$e=null,qe=x({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ge="http://www.w3.org/1998/Math/MathML",Qe="http://www.w3.org/2000/svg",Ze="http://www.w3.org/1999/xhtml",Ye=Ze,Je=!1,Xe=null,et=o.createElement("form"),tt=function(e){Xe&&Xe===e||(e&&"object"===(void 0===e?"undefined":q(e))||(e={}),e=D(e),we="ALLOWED_TAGS"in e?x({},e.ALLOWED_TAGS):ye,Se="ALLOWED_ATTR"in e?x({},e.ALLOWED_ATTR):Le,$e="ADD_URI_SAFE_ATTR"in e?x(D(qe),e.ADD_URI_SAFE_ATTR):qe,Ue="ADD_DATA_URI_TAGS"in e?x(D(Ke),e.ADD_DATA_URI_TAGS):Ke,ze="FORBID_CONTENTS"in e?x({},e.FORBID_CONTENTS):je,ke="FORBID_TAGS"in e?x({},e.FORBID_TAGS):{},xe="FORBID_ATTR"in e?x({},e.FORBID_ATTR):{},He="USE_PROFILES"in e&&e.USE_PROFILES,De=!1!==e.ALLOW_ARIA_ATTR,Ne=!1!==e.ALLOW_DATA_ATTR,Ee=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Ie=e.SAFE_FOR_TEMPLATES||!1,Te=e.WHOLE_DOCUMENT||!1,Re=e.RETURN_DOM||!1,Oe=e.RETURN_DOM_FRAGMENT||!1,Pe=!1!==e.RETURN_DOM_IMPORT,Fe=e.RETURN_TRUSTED_TYPE||!1,Ae=e.FORCE_BODY||!1,Be=!1!==e.SANITIZE_DOM,Ve=!1!==e.KEEP_CONTENT,We=e.IN_PLACE||!1,Ce=e.ALLOWED_URI_REGEXP||Ce,Ye=e.NAMESPACE||Ze,Ie&&(Ne=!1),Oe&&(Re=!0),He&&(we=x({},[].concat(G(O))),Se=[],!0===He.html&&(x(we,E),x(Se,P)),!0===He.svg&&(x(we,I),x(Se,F),x(Se,V)),!0===He.svgFilters&&(x(we,T),x(Se,F),x(Se,V)),!0===He.mathMl&&(x(we,A),x(Se,B),x(Se,V))),e.ADD_TAGS&&(we===ye&&(we=D(we)),x(we,e.ADD_TAGS)),e.ADD_ATTR&&(Se===Le&&(Se=D(Se)),x(Se,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&x($e,e.ADD_URI_SAFE_ATTR),e.FORBID_CONTENTS&&(ze===je&&(ze=D(ze)),x(ze,e.FORBID_CONTENTS)),Ve&&(we["#text"]=!0),Te&&x(we,["html","head","body"]),we.table&&(x(we,["tbody"]),delete ke.tbody),l&&l(e),Xe=e)},it=x({},["mi","mo","mn","ms","mtext"]),nt=x({},["foreignobject","desc","title","annotation-xml"]),ot=x({},I);x(ot,T),x(ot,M);var st=x({},A);x(st,R);var rt=function(e){var t=ie(e);t&&t.tagName||(t={namespaceURI:Ze,tagName:"template"});var i=v(e.tagName),n=v(t.tagName);if(e.namespaceURI===Qe)return t.namespaceURI===Ze?"svg"===i:t.namespaceURI===Ge?"svg"===i&&("annotation-xml"===n||it[n]):Boolean(ot[i]);if(e.namespaceURI===Ge)return t.namespaceURI===Ze?"math"===i:t.namespaceURI===Qe?"math"===i&&nt[n]:Boolean(st[i]);if(e.namespaceURI===Ze){if(t.namespaceURI===Qe&&!nt[n])return!1;if(t.namespaceURI===Ge&&!it[n])return!1;var o=x({},["title","style","font","a","script"]);return!st[i]&&(o[i]||!ot[i])}return!1},at=function(e){_(i.removed,{element:e});try{e.parentNode.removeChild(e)}catch(vt){try{e.outerHTML=se}catch(vt){e.remove()}}},lt=function(e,t){try{_(i.removed,{attribute:t.getAttributeNode(e),from:t})}catch(vt){_(i.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!Se[e])if(Re||Oe)try{at(t)}catch(vt){}else try{t.setAttribute(e,"")}catch(vt){}},ct=function(e){var t=void 0,i=void 0;if(Ae)e="<remove></remove>"+e;else{var n=b(e,/^[\r\n\t ]+/);i=n&&n[0]}var s=oe?oe.createHTML(e):e;if(Ye===Ze)try{t=(new k).parseFromString(s,"text/html")}catch(vt){}if(!t||!t.documentElement){t=ae.createDocument(Ye,"template",null);try{t.documentElement.innerHTML=Je?"":s}catch(vt){}}var r=t.body||t.documentElement;return e&&i&&r.insertBefore(o.createTextNode(i),r.childNodes[0]||null),Ye===Ze?de.call(t,Te?"html":"body")[0]:Te?t.documentElement:r},dt=function(e){return le.call(e.ownerDocument||e,e,d.SHOW_ELEMENT|d.SHOW_COMMENT|d.SHOW_TEXT,null,!1)},ht=function(e){return!(e instanceof g||e instanceof p)&&!("string"==typeof e.nodeName&&"string"==typeof e.textContent&&"function"==typeof e.removeChild&&e.attributes instanceof u&&"function"==typeof e.removeAttribute&&"function"==typeof e.setAttribute&&"string"==typeof e.namespaceURI&&"function"==typeof e.insertBefore)},ut=function(e){return"object"===(void 0===a?"undefined":q(a))?e instanceof a:e&&"object"===(void 0===e?"undefined":q(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},gt=function(e,t,n){ge[e]&&m(ge[e],(function(e){e.call(i,t,n,Xe)}))},pt=function(e){var t=void 0;if(gt("beforeSanitizeElements",e,null),ht(e))return at(e),!0;if(b(e.nodeName,/[\u0080-\uFFFF]/))return at(e),!0;var n=v(e.nodeName);if(gt("uponSanitizeElement",e,{tagName:n,allowedTags:we}),!ut(e.firstElementChild)&&(!ut(e.content)||!ut(e.content.firstElementChild))&&S(/<[/\w]/g,e.innerHTML)&&S(/<[/\w]/g,e.textContent))return at(e),!0;if("select"===n&&S(/<template/i,e.innerHTML))return at(e),!0;if(!we[n]||ke[n]){if(Ve&&!ze[n]){var o=ie(e)||e.parentNode,s=te(e)||e.childNodes;if(s&&o)for(var r=s.length-1;r>=0;--r)o.insertBefore(X(s[r],!0),ee(e))}return at(e),!0}return e instanceof c&&!rt(e)?(at(e),!0):"noscript"!==n&&"noembed"!==n||!S(/<\/no(script|embed)/i,e.innerHTML)?(Ie&&3===e.nodeType&&(t=e.textContent,t=C(t,pe," "),t=C(t,me," "),e.textContent!==t&&(_(i.removed,{element:e.cloneNode()}),e.textContent=t)),gt("afterSanitizeElements",e,null),!1):(at(e),!0)},mt=function(e,t,i){if(Be&&("id"===t||"name"===t)&&(i in o||i in et))return!1;if(Ne&&!xe[t]&&S(fe,t));else if(De&&S(_e,t));else{if(!Se[t]||xe[t])return!1;if($e[t]);else if(S(Ce,C(i,be,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==w(i,"data:")||!Ue[e]){if(Ee&&!S(ve,C(i,be,"")));else if(i)return!1}else;}return!0},ft=function(e){var t=void 0,n=void 0,o=void 0,s=void 0;gt("beforeSanitizeAttributes",e,null);var r=e.attributes;if(r){var a={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Se};for(s=r.length;s--;){var l=t=r[s],c=l.name,d=l.namespaceURI;if(n=y(t.value),o=v(c),a.attrName=o,a.attrValue=n,a.keepAttr=!0,a.forceKeepAttr=void 0,gt("uponSanitizeAttribute",e,a),n=a.attrValue,!a.forceKeepAttr&&(lt(c,e),a.keepAttr))if(S(/\/>/i,n))lt(c,e);else{Ie&&(n=C(n,pe," "),n=C(n,me," "));var h=e.nodeName.toLowerCase();if(mt(h,o,n))try{d?e.setAttributeNS(d,c,n):e.setAttribute(c,n),f(i.removed)}catch(vt){}}}gt("afterSanitizeAttributes",e,null)}},_t=function e(t){var i=void 0,n=dt(t);for(gt("beforeSanitizeShadowDOM",t,null);i=n.nextNode();)gt("uponSanitizeShadowNode",i,null),pt(i)||(i.content instanceof s&&e(i.content),ft(i));gt("afterSanitizeShadowDOM",t,null)};return i.sanitize=function(e,o){var r=void 0,l=void 0,c=void 0,d=void 0,h=void 0;if((Je=!e)&&(e="\x3c!--\x3e"),"string"!=typeof e&&!ut(e)){if("function"!=typeof e.toString)throw L("toString is not a function");if("string"!=typeof(e=e.toString()))throw L("dirty is not a string, aborting")}if(!i.isSupported){if("object"===q(t.toStaticHTML)||"function"==typeof t.toStaticHTML){if("string"==typeof e)return t.toStaticHTML(e);if(ut(e))return t.toStaticHTML(e.outerHTML)}return e}if(Me||tt(o),i.removed=[],"string"==typeof e&&(We=!1),We);else if(e instanceof a)1===(l=(r=ct("\x3c!----\x3e")).ownerDocument.importNode(e,!0)).nodeType&&"BODY"===l.nodeName||"HTML"===l.nodeName?r=l:r.appendChild(l);else{if(!Re&&!Ie&&!Te&&-1===e.indexOf("<"))return oe&&Fe?oe.createHTML(e):e;if(!(r=ct(e)))return Re?null:se}r&&Ae&&at(r.firstChild);for(var u=dt(We?e:r);c=u.nextNode();)3===c.nodeType&&c===d||pt(c)||(c.content instanceof s&&_t(c.content),ft(c),d=c);if(d=null,We)return e;if(Re){if(Oe)for(h=ce.call(r.ownerDocument);r.firstChild;)h.appendChild(r.firstChild);else h=r;return Pe&&(h=he.call(n,h,!0)),h}var g=Te?r.outerHTML:r.innerHTML;return Ie&&(g=C(g,pe," "),g=C(g,me," ")),oe&&Fe?oe.createHTML(g):g},i.setConfig=function(e){tt(e),Me=!0},i.clearConfig=function(){Xe=null,Me=!1},i.isValidAttribute=function(e,t,i){Xe||tt({});var n=v(e),o=v(t);return mt(n,o,i)},i.addHook=function(e,t){"function"==typeof t&&(ge[e]=ge[e]||[],_(ge[e],t))},i.removeHook=function(e){ge[e]&&f(ge[e])},i.removeHooks=function(e){ge[e]&&(ge[e]=[])},i.removeAllHooks=function(){ge={}},i}();Y.version,Y.isSupported;const J=Y.sanitize,X=(Y.setConfig,Y.clearConfig,Y.isValidAttribute,Y.addHook),ee=Y.removeHook;Y.removeHooks,Y.removeAllHooks},4850:(e,t,i)=>{"use strict";i.d(t,{Y:()=>o,p:()=>s});var n=i(4669);class o{constructor(e,t,i){const o=e=>this.emitter.fire(e);this.emitter=new n.Q5({onFirstListenerAdd:()=>e.addEventListener(t,o,i),onLastListenerRemove:()=>e.removeEventListener(t,o,i)})}get event(){return this.emitter.event}dispose(){this.emitter.dispose()}}function s(e){return e.preventDefault(),e.stopPropagation(),e}},38626:(e,t,i)=>{"use strict";i.d(t,{X:()=>s,Z:()=>n});class n{constructor(e){this.domNode=e,this._maxWidth="",this._width="",this._height="",this._top="",this._left="",this._bottom="",this._right="",this._fontFamily="",this._fontWeight="",this._fontSize="",this._fontStyle="",this._fontFeatureSettings="",this._textDecoration="",this._lineHeight="",this._letterSpacing="",this._className="",this._display="",this._position="",this._visibility="",this._color="",this._backgroundColor="",this._layerHint=!1,this._contain="none",this._boxShadow=""}setMaxWidth(e){const t=o(e);this._maxWidth!==t&&(this._maxWidth=t,this.domNode.style.maxWidth=this._maxWidth)}setWidth(e){const t=o(e);this._width!==t&&(this._width=t,this.domNode.style.width=this._width)}setHeight(e){const t=o(e);this._height!==t&&(this._height=t,this.domNode.style.height=this._height)}setTop(e){const t=o(e);this._top!==t&&(this._top=t,this.domNode.style.top=this._top)}setLeft(e){const t=o(e);this._left!==t&&(this._left=t,this.domNode.style.left=this._left)}setBottom(e){const t=o(e);this._bottom!==t&&(this._bottom=t,this.domNode.style.bottom=this._bottom)}setRight(e){const t=o(e);this._right!==t&&(this._right=t,this.domNode.style.right=this._right)}setFontFamily(e){this._fontFamily!==e&&(this._fontFamily=e,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(e){this._fontWeight!==e&&(this._fontWeight=e,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(e){const t=o(e);this._fontSize!==t&&(this._fontSize=t,this.domNode.style.fontSize=this._fontSize)}setFontStyle(e){this._fontStyle!==e&&(this._fontStyle=e,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(e){this._fontFeatureSettings!==e&&(this._fontFeatureSettings=e,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setTextDecoration(e){this._textDecoration!==e&&(this._textDecoration=e,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(e){const t=o(e);this._lineHeight!==t&&(this._lineHeight=t,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(e){const t=o(e);this._letterSpacing!==t&&(this._letterSpacing=t,this.domNode.style.letterSpacing=this._letterSpacing)}setClassName(e){this._className!==e&&(this._className=e,this.domNode.className=this._className)}toggleClassName(e,t){this.domNode.classList.toggle(e,t),this._className=this.domNode.className}setDisplay(e){this._display!==e&&(this._display=e,this.domNode.style.display=this._display)}setPosition(e){this._position!==e&&(this._position=e,this.domNode.style.position=this._position)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this.domNode.style.visibility=this._visibility)}setColor(e){this._color!==e&&(this._color=e,this.domNode.style.color=this._color)}setBackgroundColor(e){this._backgroundColor!==e&&(this._backgroundColor=e,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(e){this._layerHint!==e&&(this._layerHint=e,this.domNode.style.transform=this._layerHint?"translate3d(0px, 0px, 0px)":"")}setBoxShadow(e){this._boxShadow!==e&&(this._boxShadow=e,this.domNode.style.boxShadow=e)}setContain(e){this._contain!==e&&(this._contain=e,this.domNode.style.contain=this._contain)}setAttribute(e,t){this.domNode.setAttribute(e,t)}removeAttribute(e){this.domNode.removeAttribute(e)}appendChild(e){this.domNode.appendChild(e.domNode)}removeChild(e){this.domNode.removeChild(e.domNode)}}function o(e){return"number"==typeof e?`${e}px`:e}function s(e){return new n(e)}},48764:(e,t,i)=>{"use strict";i.d(t,{BO:()=>s,IY:()=>o,az:()=>r});var n=i(65321);function o(e,t={}){const i=r(t);return i.textContent=e,i}function s(e,t={}){const i=r(t);return l(i,function(e,t){const i={type:1,children:[]};let n=0,o=i;const s=[],r=new a(e);for(;!r.eos();){let e=r.next();const i="\\"===e&&0!==d(r.peek(),t);if(i&&(e=r.next()),!i&&c(e,t)&&e===r.peek()){r.advance(),2===o.type&&(o=s.pop());const i=d(e,t);if(o.type===i||5===o.type&&6===i)o=s.pop();else{const e={type:i,children:[]};5===i&&(e.index=n,n++),o.children.push(e),s.push(o),o=e}}else if("\n"===e)2===o.type&&(o=s.pop()),o.children.push({type:8});else if(2!==o.type){const t={type:2,content:e};o.children.push(t),s.push(o),o=t}else o.content+=e}2===o.type&&(o=s.pop());s.length;return i}(e,!!t.renderCodeSegments),t.actionHandler,t.renderCodeSegments),i}function r(e){const t=e.inline?"span":"div",i=document.createElement(t);return e.className&&(i.className=e.className),i}class a{constructor(e){this.source=e,this.index=0}eos(){return this.index>=this.source.length}next(){const e=this.peek();return this.advance(),e}peek(){return this.source[this.index]}advance(){this.index++}}function l(e,t,i,o){let s;if(2===t.type)s=document.createTextNode(t.content||"");else if(3===t.type)s=document.createElement("b");else if(4===t.type)s=document.createElement("i");else if(7===t.type&&o)s=document.createElement("code");else if(5===t.type&&i){const e=document.createElement("a");i.disposables.add(n.mu(e,"click",(e=>{i.callback(String(t.index),e)}))),s=e}else 8===t.type?s=document.createElement("br"):1===t.type&&(s=e);s&&e!==s&&e.appendChild(s),s&&Array.isArray(t.children)&&t.children.forEach((e=>{l(s,e,i,o)}))}function c(e,t){return 0!==d(e,t)}function d(e,t){switch(e){case"*":return 3;case"_":return 4;case"[":return 5;case"]":return 6;case"`":return t?7:0;default:return 0}}},93911:(e,t,i)=>{"use strict";i.d(t,{C:()=>s});var n=i(65321),o=i(5976);class s{constructor(){this._hooks=new o.SL,this._pointerMoveCallback=null,this._onStopCallback=null}dispose(){this.stopMonitoring(!1),this._hooks.dispose()}stopMonitoring(e,t){if(!this.isMonitoring())return;this._hooks.clear(),this._pointerMoveCallback=null;const i=this._onStopCallback;this._onStopCallback=null,e&&i&&i(t)}isMonitoring(){return!!this._pointerMoveCallback}startMonitoring(e,t,i,s,r){this.isMonitoring()&&this.stopMonitoring(!1),this._pointerMoveCallback=s,this._onStopCallback=r;let a=e;try{e.setPointerCapture(t),this._hooks.add((0,o.OF)((()=>{e.releasePointerCapture(t)})))}catch(l){a=window}this._hooks.add(n.nm(a,n.tw.POINTER_MOVE,(e=>{e.buttons===i?(e.preventDefault(),this._pointerMoveCallback(e)):this.stopMonitoring(!0)}))),this._hooks.add(n.nm(a,n.tw.POINTER_UP,(e=>this.stopMonitoring(!0))))}}},59069:(e,t,i)=>{"use strict";i.d(t,{y:()=>c});var n=i(16268),o=i(22258),s=i(8313),r=i(1432);const a=r.dz?256:2048,l=r.dz?2048:256;class c{constructor(e){this._standardKeyboardEventBrand=!0;const t=e;this.browserEvent=t,this.target=t.target,this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey,this.keyCode=function(e){if(e.charCode){const t=String.fromCharCode(e.charCode).toUpperCase();return o.kL.fromString(t)}const t=e.keyCode;if(3===t)return 7;if(n.isFirefox){if(59===t)return 80;if(107===t)return 81;if(109===t)return 83;if(r.dz&&224===t)return 57}else if(n.isWebKit){if(91===t)return 57;if(r.dz&&93===t)return 57;if(!r.dz&&92===t)return 57}return o.H_[t]||0}(t),this.code=t.code,this.ctrlKey=this.ctrlKey||5===this.keyCode,this.altKey=this.altKey||6===this.keyCode,this.shiftKey=this.shiftKey||4===this.keyCode,this.metaKey=this.metaKey||57===this.keyCode,this._asKeybinding=this._computeKeybinding(),this._asRuntimeKeybinding=this._computeRuntimeKeybinding()}preventDefault(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()}toKeybinding(){return this._asRuntimeKeybinding}equals(e){return this._asKeybinding===e}_computeKeybinding(){let e=0;5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(e=this.keyCode);let t=0;return this.ctrlKey&&(t|=a),this.altKey&&(t|=512),this.shiftKey&&(t|=1024),this.metaKey&&(t|=l),t|=e,t}_computeRuntimeKeybinding(){let e=0;return 5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(e=this.keyCode),new s.QC(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,e)}}},7317:(e,t,i)=>{"use strict";i.d(t,{n:()=>l,q:()=>c});var n=i(16268);let o=!1,s=null;function r(e){if(!e.parent||e.parent===e)return null;try{const t=e.location,i=e.parent.location;if("null"!==t.origin&&"null"!==i.origin&&t.origin!==i.origin)return o=!0,null}catch(t){return o=!0,null}return e.parent}var a=i(1432);class l{constructor(e){this.timestamp=Date.now(),this.browserEvent=e,this.leftButton=0===e.button,this.middleButton=1===e.button,this.rightButton=2===e.button,this.buttons=e.buttons,this.target=e.target,this.detail=e.detail||1,"dblclick"===e.type&&(this.detail=2),this.ctrlKey=e.ctrlKey,this.shiftKey=e.shiftKey,this.altKey=e.altKey,this.metaKey=e.metaKey,"number"==typeof e.pageX?(this.posx=e.pageX,this.posy=e.pageY):(this.posx=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,this.posy=e.clientY+document.body.scrollTop+document.documentElement.scrollTop);const t=class{static getSameOriginWindowChain(){if(!s){s=[];let e,t=window;do{e=r(t),e?s.push({window:t,iframeElement:t.frameElement||null}):s.push({window:t,iframeElement:null}),t=e}while(t)}return s.slice(0)}static getPositionOfChildWindowRelativeToAncestorWindow(e,t){if(!t||e===t)return{top:0,left:0};let i=0,n=0;const o=this.getSameOriginWindowChain();for(const s of o){if(i+=s.window.scrollY,n+=s.window.scrollX,s.window===t)break;if(!s.iframeElement)break;const e=s.iframeElement.getBoundingClientRect();i+=e.top,n+=e.left}return{top:i,left:n}}}.getPositionOfChildWindowRelativeToAncestorWindow(self,e.view);this.posx-=t.left,this.posy-=t.top}preventDefault(){this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent.stopPropagation()}}class c{constructor(e,t=0,i=0){if(this.browserEvent=e||null,this.target=e?e.target||e.targetNode||e.srcElement:null,this.deltaY=i,this.deltaX=t,e){const t=e,i=e;if(void 0!==t.wheelDeltaY)this.deltaY=t.wheelDeltaY/120;else if(void 0!==i.VERTICAL_AXIS&&i.axis===i.VERTICAL_AXIS)this.deltaY=-i.detail/3;else if("wheel"===e.type){const t=e;t.deltaMode===t.DOM_DELTA_LINE?n.isFirefox&&!a.dz?this.deltaY=-e.deltaY/3:this.deltaY=-e.deltaY:this.deltaY=-e.deltaY/40}if(void 0!==t.wheelDeltaX)n.isSafari&&a.ED?this.deltaX=-t.wheelDeltaX/120:this.deltaX=t.wheelDeltaX/120;else if(void 0!==i.HORIZONTAL_AXIS&&i.axis===i.HORIZONTAL_AXIS)this.deltaX=-e.detail/3;else if("wheel"===e.type){const t=e;t.deltaMode===t.DOM_DELTA_LINE?n.isFirefox&&!a.dz?this.deltaX=-e.deltaX/3:this.deltaX=-e.deltaX:this.deltaX=-e.deltaX/40}0===this.deltaY&&0===this.deltaX&&e.wheelDelta&&(this.deltaY=e.wheelDelta/120)}}preventDefault(){this.browserEvent&&this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent&&this.browserEvent.stopPropagation()}}},10553:(e,t,i)=>{"use strict";i.d(t,{o:()=>c,t:()=>n});var n,o=i(65321),s=i(9488),r=i(49898),a=i(5976),l=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r};!function(e){e.Tap="-monaco-gesturetap",e.Change="-monaco-gesturechange",e.Start="-monaco-gesturestart",e.End="-monaco-gesturesend",e.Contextmenu="-monaco-gesturecontextmenu"}(n||(n={}));class c extends a.JT{constructor(){super(),this.dispatched=!1,this.activeTouches={},this.handle=null,this.targets=[],this.ignoreTargets=[],this._lastSetTapCountTime=0,this._register(o.nm(document,"touchstart",(e=>this.onTouchStart(e)),{passive:!1})),this._register(o.nm(document,"touchend",(e=>this.onTouchEnd(e)))),this._register(o.nm(document,"touchmove",(e=>this.onTouchMove(e)),{passive:!1}))}static addTarget(e){return c.isTouchDevice()?(c.INSTANCE||(c.INSTANCE=new c),c.INSTANCE.targets.push(e),{dispose:()=>{c.INSTANCE.targets=c.INSTANCE.targets.filter((t=>t!==e))}}):a.JT.None}static ignoreTarget(e){return c.isTouchDevice()?(c.INSTANCE||(c.INSTANCE=new c),c.INSTANCE.ignoreTargets.push(e),{dispose:()=>{c.INSTANCE.ignoreTargets=c.INSTANCE.ignoreTargets.filter((t=>t!==e))}}):a.JT.None}static isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0}dispose(){this.handle&&(this.handle.dispose(),this.handle=null),super.dispose()}onTouchStart(e){const t=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(let i=0,o=e.targetTouches.length;i<o;i++){const o=e.targetTouches.item(i);this.activeTouches[o.identifier]={id:o.identifier,initialTarget:o.target,initialTimeStamp:t,initialPageX:o.pageX,initialPageY:o.pageY,rollingTimestamps:[t],rollingPageX:[o.pageX],rollingPageY:[o.pageY]};const s=this.newGestureEvent(n.Start,o.target);s.pageX=o.pageX,s.pageY=o.pageY,this.dispatchEvent(s)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}onTouchEnd(e){const t=Date.now(),i=Object.keys(this.activeTouches).length;for(let o=0,r=e.changedTouches.length;o<r;o++){const r=e.changedTouches.item(o);if(!this.activeTouches.hasOwnProperty(String(r.identifier))){console.warn("move of an UNKNOWN touch",r);continue}const a=this.activeTouches[r.identifier],l=Date.now()-a.initialTimeStamp;if(l<c.HOLD_DELAY&&Math.abs(a.initialPageX-s.Gb(a.rollingPageX))<30&&Math.abs(a.initialPageY-s.Gb(a.rollingPageY))<30){const e=this.newGestureEvent(n.Tap,a.initialTarget);e.pageX=s.Gb(a.rollingPageX),e.pageY=s.Gb(a.rollingPageY),this.dispatchEvent(e)}else if(l>=c.HOLD_DELAY&&Math.abs(a.initialPageX-s.Gb(a.rollingPageX))<30&&Math.abs(a.initialPageY-s.Gb(a.rollingPageY))<30){const e=this.newGestureEvent(n.Contextmenu,a.initialTarget);e.pageX=s.Gb(a.rollingPageX),e.pageY=s.Gb(a.rollingPageY),this.dispatchEvent(e)}else if(1===i){const e=s.Gb(a.rollingPageX),i=s.Gb(a.rollingPageY),n=s.Gb(a.rollingTimestamps)-a.rollingTimestamps[0],o=e-a.rollingPageX[0],r=i-a.rollingPageY[0],l=this.targets.filter((e=>a.initialTarget instanceof Node&&e.contains(a.initialTarget)));this.inertia(l,t,Math.abs(o)/n,o>0?1:-1,e,Math.abs(r)/n,r>0?1:-1,i)}this.dispatchEvent(this.newGestureEvent(n.End,a.initialTarget)),delete this.activeTouches[r.identifier]}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}newGestureEvent(e,t){const i=document.createEvent("CustomEvent");return i.initEvent(e,!1,!0),i.initialTarget=t,i.tapCount=0,i}dispatchEvent(e){if(e.type===n.Tap){const t=(new Date).getTime();let i=0;i=t-this._lastSetTapCountTime>c.CLEAR_TAP_COUNT_TIME?1:2,this._lastSetTapCountTime=t,e.tapCount=i}else e.type!==n.Change&&e.type!==n.Contextmenu||(this._lastSetTapCountTime=0);for(let t=0;t<this.ignoreTargets.length;t++)if(e.initialTarget instanceof Node&&this.ignoreTargets[t].contains(e.initialTarget))return;this.targets.forEach((t=>{e.initialTarget instanceof Node&&t.contains(e.initialTarget)&&(t.dispatchEvent(e),this.dispatched=!0)}))}inertia(e,t,i,s,r,a,l,d){this.handle=o.jL((()=>{const o=Date.now(),h=o-t;let u=0,g=0,p=!0;i+=c.SCROLL_FRICTION*h,a+=c.SCROLL_FRICTION*h,i>0&&(p=!1,u=s*i*h),a>0&&(p=!1,g=l*a*h);const m=this.newGestureEvent(n.Change);m.translationX=u,m.translationY=g,e.forEach((e=>e.dispatchEvent(m))),p||this.inertia(e,o,i,s,r+u,a,l,d+g)}))}onTouchMove(e){const t=Date.now();for(let i=0,o=e.changedTouches.length;i<o;i++){const o=e.changedTouches.item(i);if(!this.activeTouches.hasOwnProperty(String(o.identifier))){console.warn("end of an UNKNOWN touch",o);continue}const r=this.activeTouches[o.identifier],a=this.newGestureEvent(n.Change,r.initialTarget);a.translationX=o.pageX-s.Gb(r.rollingPageX),a.translationY=o.pageY-s.Gb(r.rollingPageY),a.pageX=o.pageX,a.pageY=o.pageY,this.dispatchEvent(a),r.rollingPageX.length>3&&(r.rollingPageX.shift(),r.rollingPageY.shift(),r.rollingTimestamps.shift()),r.rollingPageX.push(o.pageX),r.rollingPageY.push(o.pageY),r.rollingTimestamps.push(t)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}}c.SCROLL_FRICTION=-.005,c.HOLD_DELAY=700,c.CLEAR_TAP_COUNT_TIME=400,l([r.H],c,"isTouchDevice",null)},76033:(e,t,i)=>{"use strict";i.d(t,{Y:()=>g,g:()=>p});var n=i(16268),o=i(23547),s=i(65321),r=i(10553),a=i(51433),l=i(74741),c=i(5976),d=i(1432),h=i(98401),u=i(63580);class g extends c.JT{constructor(e,t,i={}){super(),this.options=i,this._context=e||this,this._action=t,t instanceof l.aU&&this._register(t.onDidChange((e=>{this.element&&this.handleActionChangeEvent(e)})))}get action(){return this._action}handleActionChangeEvent(e){void 0!==e.enabled&&this.updateEnabled(),void 0!==e.checked&&this.updateChecked(),void 0!==e.class&&this.updateClass(),void 0!==e.label&&(this.updateLabel(),this.updateTooltip()),void 0!==e.tooltip&&this.updateTooltip()}get actionRunner(){return this._actionRunner||(this._actionRunner=this._register(new l.Wi)),this._actionRunner}set actionRunner(e){this._actionRunner=e}getAction(){return this._action}isEnabled(){return this._action.enabled}setActionContext(e){this._context=e}render(e){const t=this.element=e;this._register(r.o.addTarget(e));const i=this.options&&this.options.draggable;i&&(e.draggable=!0,n.isFirefox&&this._register((0,s.nm)(e,s.tw.DRAG_START,(e=>{var t;return null===(t=e.dataTransfer)||void 0===t?void 0:t.setData(o.g.TEXT,this._action.label)})))),this._register((0,s.nm)(t,r.t.Tap,(e=>this.onClick(e,!0)))),this._register((0,s.nm)(t,s.tw.MOUSE_DOWN,(e=>{i||s.zB.stop(e,!0),this._action.enabled&&0===e.button&&t.classList.add("active")}))),d.dz&&this._register((0,s.nm)(t,s.tw.CONTEXT_MENU,(e=>{0===e.button&&!0===e.ctrlKey&&this.onClick(e)}))),this._register((0,s.nm)(t,s.tw.CLICK,(e=>{s.zB.stop(e,!0),this.options&&this.options.isMenu||this.onClick(e)}))),this._register((0,s.nm)(t,s.tw.DBLCLICK,(e=>{s.zB.stop(e,!0)}))),[s.tw.MOUSE_UP,s.tw.MOUSE_OUT].forEach((e=>{this._register((0,s.nm)(t,e,(e=>{s.zB.stop(e),t.classList.remove("active")})))}))}onClick(e,t=!1){var i;s.zB.stop(e,!0);const n=h.Jp(this._context)?(null===(i=this.options)||void 0===i?void 0:i.useEventAsContext)?e:{preserveFocus:t}:this._context;this.actionRunner.run(this._action,n)}focus(){this.element&&(this.element.tabIndex=0,this.element.focus(),this.element.classList.add("focused"))}blur(){this.element&&(this.element.blur(),this.element.tabIndex=-1,this.element.classList.remove("focused"))}setFocusable(e){this.element&&(this.element.tabIndex=e?0:-1)}get trapsArrowNavigation(){return!1}updateEnabled(){}updateLabel(){}getTooltip(){return this.getAction().tooltip}updateTooltip(){var e;if(!this.element)return;const t=null!==(e=this.getTooltip())&&void 0!==e?e:"";this.element.setAttribute("aria-label",t),this.options.hoverDelegate?(this.element.title="",this.customHover?this.customHover.update(t):(this.customHover=(0,a.g)(this.options.hoverDelegate,this.element,t),this._store.add(this.customHover))):this.element.title=t}updateClass(){}updateChecked(){}dispose(){this.element&&(this.element.remove(),this.element=void 0),super.dispose()}}class p extends g{constructor(e,t,i={}){super(e,t,i),this.options=i,this.options.icon=void 0!==i.icon&&i.icon,this.options.label=void 0===i.label||i.label,this.cssClass=""}render(e){super.render(e),this.element&&(this.label=(0,s.R3)(this.element,(0,s.$)("a.action-label"))),this.label&&(this._action.id===l.Z0.ID?this.label.setAttribute("role","presentation"):this.options.isMenu?this.label.setAttribute("role","menuitem"):this.label.setAttribute("role","button")),this.options.label&&this.options.keybinding&&this.element&&((0,s.R3)(this.element,(0,s.$)("span.keybinding")).textContent=this.options.keybinding),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()}focus(){this.label&&(this.label.tabIndex=0,this.label.focus())}blur(){this.label&&(this.label.tabIndex=-1)}setFocusable(e){this.label&&(this.label.tabIndex=e?0:-1)}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this.getAction().label)}getTooltip(){let e=null;return this.getAction().tooltip?e=this.getAction().tooltip:!this.options.label&&this.getAction().label&&this.options.icon&&(e=this.getAction().label,this.options.keybinding&&(e=u.NC({key:"titleLabel",comment:["action title","action keybinding"]},"{0} ({1})",e,this.options.keybinding))),null!=e?e:void 0}updateClass(){var e;this.cssClass&&this.label&&this.label.classList.remove(...this.cssClass.split(" ")),this.options.icon?(this.cssClass=this.getAction().class,this.label&&(this.label.classList.add("codicon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" "))),this.updateEnabled()):null===(e=this.label)||void 0===e||e.classList.remove("codicon")}updateEnabled(){var e,t;this.getAction().enabled?(this.label&&(this.label.removeAttribute("aria-disabled"),this.label.classList.remove("disabled")),null===(e=this.element)||void 0===e||e.classList.remove("disabled")):(this.label&&(this.label.setAttribute("aria-disabled","true"),this.label.classList.add("disabled")),null===(t=this.element)||void 0===t||t.classList.add("disabled"))}updateChecked(){this.label&&(this.getAction().checked?this.label.classList.add("checked"):this.label.classList.remove("checked"))}}},90317:(e,t,i)=>{"use strict";i.d(t,{o:()=>h});var n=i(65321),o=i(59069),s=i(76033),r=i(74741),a=i(4669),l=i(5976),c=i(98401),d=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class h extends l.JT{constructor(e,t={}){var i,l,c,d,h,u;let g,p;switch(super(),this.triggerKeyDown=!1,this.focusable=!0,this._onDidBlur=this._register(new a.Q5),this.onDidBlur=this._onDidBlur.event,this._onDidCancel=this._register(new a.Q5({onFirstListenerAdd:()=>this.cancelHasListener=!0})),this.onDidCancel=this._onDidCancel.event,this.cancelHasListener=!1,this._onDidRun=this._register(new a.Q5),this.onDidRun=this._onDidRun.event,this._onBeforeRun=this._register(new a.Q5),this.onBeforeRun=this._onBeforeRun.event,this.options=t,this._context=null!==(i=t.context)&&void 0!==i?i:null,this._orientation=null!==(l=this.options.orientation)&&void 0!==l?l:0,this._triggerKeys={keyDown:null!==(d=null===(c=this.options.triggerKeys)||void 0===c?void 0:c.keyDown)&&void 0!==d&&d,keys:null!==(u=null===(h=this.options.triggerKeys)||void 0===h?void 0:h.keys)&&void 0!==u?u:[3,10]},this.options.actionRunner?this._actionRunner=this.options.actionRunner:(this._actionRunner=new r.Wi,this._register(this._actionRunner)),this._register(this._actionRunner.onDidRun((e=>this._onDidRun.fire(e)))),this._register(this._actionRunner.onBeforeRun((e=>this._onBeforeRun.fire(e)))),this._actionIds=[],this.viewItems=[],this.viewItemDisposables=new Map,this.focusedItem=void 0,this.domNode=document.createElement("div"),this.domNode.className="monaco-action-bar",!1!==t.animated&&this.domNode.classList.add("animated"),this._orientation){case 0:g=[15],p=[17];break;case 1:g=[16],p=[18],this.domNode.className+=" vertical"}this._register(n.nm(this.domNode,n.tw.KEY_DOWN,(e=>{const t=new o.y(e);let i=!0;const n="number"==typeof this.focusedItem?this.viewItems[this.focusedItem]:void 0;g&&(t.equals(g[0])||t.equals(g[1]))?i=this.focusPrevious():p&&(t.equals(p[0])||t.equals(p[1]))?i=this.focusNext():t.equals(9)&&this.cancelHasListener?this._onDidCancel.fire():t.equals(14)?i=this.focusFirst():t.equals(13)?i=this.focusLast():t.equals(2)&&n instanceof s.Y&&n.trapsArrowNavigation?i=this.focusNext():this.isTriggerKeyEvent(t)?this._triggerKeys.keyDown?this.doTrigger(t):this.triggerKeyDown=!0:i=!1,i&&(t.preventDefault(),t.stopPropagation())}))),this._register(n.nm(this.domNode,n.tw.KEY_UP,(e=>{const t=new o.y(e);this.isTriggerKeyEvent(t)?(!this._triggerKeys.keyDown&&this.triggerKeyDown&&(this.triggerKeyDown=!1,this.doTrigger(t)),t.preventDefault(),t.stopPropagation()):(t.equals(2)||t.equals(1026))&&this.updateFocusedItem()}))),this.focusTracker=this._register(n.go(this.domNode)),this._register(this.focusTracker.onDidBlur((()=>{n.vY()!==this.domNode&&n.jg(n.vY(),this.domNode)||(this._onDidBlur.fire(),this.focusedItem=void 0,this.previouslyFocusedItem=void 0,this.triggerKeyDown=!1)}))),this._register(this.focusTracker.onDidFocus((()=>this.updateFocusedItem()))),this.actionsList=document.createElement("ul"),this.actionsList.className="actions-container",this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"),this.options.ariaLabel&&this.actionsList.setAttribute("aria-label",this.options.ariaLabel),this.domNode.appendChild(this.actionsList),e.appendChild(this.domNode)}refreshRole(){this.length()>=2?this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"):this.actionsList.setAttribute("role","presentation")}setFocusable(e){if(this.focusable=e,this.focusable){const e=this.viewItems.find((e=>e instanceof s.Y&&e.isEnabled()));e instanceof s.Y&&e.setFocusable(!0)}else this.viewItems.forEach((e=>{e instanceof s.Y&&e.setFocusable(!1)}))}isTriggerKeyEvent(e){let t=!1;return this._triggerKeys.keys.forEach((i=>{t=t||e.equals(i)})),t}updateFocusedItem(){for(let e=0;e<this.actionsList.children.length;e++){const t=this.actionsList.children[e];if(n.jg(n.vY(),t)){this.focusedItem=e;break}}}get context(){return this._context}set context(e){this._context=e,this.viewItems.forEach((t=>t.setActionContext(e)))}get actionRunner(){return this._actionRunner}set actionRunner(e){e&&(this._actionRunner=e,this.viewItems.forEach((t=>t.actionRunner=e)))}getContainer(){return this.domNode}push(e,t={}){const i=Array.isArray(e)?e:[e];let o=c.hj(t.index)?t.index:null;i.forEach((e=>{const i=document.createElement("li");let r;i.className="action-item",i.setAttribute("role","presentation"),this.options.actionViewItemProvider&&(r=this.options.actionViewItemProvider(e)),r||(r=new s.g(this.context,e,Object.assign({hoverDelegate:this.options.hoverDelegate},t))),this.options.allowContextMenu||this.viewItemDisposables.set(r,n.nm(i,n.tw.CONTEXT_MENU,(e=>{n.zB.stop(e,!0)}))),r.actionRunner=this._actionRunner,r.setActionContext(this.context),r.render(i),this.focusable&&r instanceof s.Y&&0===this.viewItems.length&&r.setFocusable(!0),null===o||o<0||o>=this.actionsList.children.length?(this.actionsList.appendChild(i),this.viewItems.push(r),this._actionIds.push(e.id)):(this.actionsList.insertBefore(i,this.actionsList.children[o]),this.viewItems.splice(o,0,r),this._actionIds.splice(o,0,e.id),o++)})),"number"==typeof this.focusedItem&&this.focus(this.focusedItem),this.refreshRole()}clear(){(0,l.B9)(this.viewItems),this.viewItemDisposables.forEach((e=>e.dispose())),this.viewItemDisposables.clear(),this.viewItems=[],this._actionIds=[],n.PO(this.actionsList),this.refreshRole()}length(){return this.viewItems.length}focus(e){let t,i=!1;if(void 0===e?i=!0:"number"==typeof e?t=e:"boolean"==typeof e&&(i=e),i&&void 0===this.focusedItem){const e=this.viewItems.findIndex((e=>e.isEnabled()));this.focusedItem=-1===e?void 0:e,this.updateFocus(void 0,void 0,!0)}else void 0!==t&&(this.focusedItem=t),this.updateFocus(void 0,void 0,!0)}focusFirst(){return this.focusedItem=this.length()-1,this.focusNext(!0)}focusLast(){return this.focusedItem=0,this.focusPrevious(!0)}focusNext(e){if(void 0===this.focusedItem)this.focusedItem=this.viewItems.length-1;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(!e&&this.options.preventLoopNavigation&&this.focusedItem+1>=this.viewItems.length)return this.focusedItem=t,!1;this.focusedItem=(this.focusedItem+1)%this.viewItems.length,i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&(this.options.focusOnlyEnabledItems&&!i.isEnabled()||i.action.id===r.Z0.ID));return this.updateFocus(),!0}focusPrevious(e){if(void 0===this.focusedItem)this.focusedItem=0;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(this.focusedItem=this.focusedItem-1,this.focusedItem<0){if(!e&&this.options.preventLoopNavigation)return this.focusedItem=t,!1;this.focusedItem=this.viewItems.length-1}i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&(this.options.focusOnlyEnabledItems&&!i.isEnabled()||i.action.id===r.Z0.ID));return this.updateFocus(!0),!0}updateFocus(e,t,i=!1){var n;void 0===this.focusedItem&&this.actionsList.focus({preventScroll:t}),void 0!==this.previouslyFocusedItem&&this.previouslyFocusedItem!==this.focusedItem&&(null===(n=this.viewItems[this.previouslyFocusedItem])||void 0===n||n.blur());const o=void 0!==this.focusedItem&&this.viewItems[this.focusedItem];if(o){let n=!0;c.mf(o.focus)||(n=!1),this.options.focusOnlyEnabledItems&&c.mf(o.isEnabled)&&!o.isEnabled()&&(n=!1),o.action.id===r.Z0.ID&&(n=!1),n?(i||this.previouslyFocusedItem!==this.focusedItem)&&(o.focus(e),this.previouslyFocusedItem=this.focusedItem):(this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem=void 0)}}doTrigger(e){if(void 0===this.focusedItem)return;const t=this.viewItems[this.focusedItem];if(t instanceof s.Y){const i=null===t._context||void 0===t._context?e:t._context;this.run(t._action,i)}}run(e,t){return d(this,void 0,void 0,(function*(){yield this._actionRunner.run(e,t)}))}dispose(){(0,l.B9)(this.viewItems),this.viewItems=[],this._actionIds=[],this.getContainer().remove(),super.dispose()}}},85152:(e,t,i)=>{"use strict";i.d(t,{Z9:()=>h,i7:()=>u,wW:()=>d});var n=i(65321),o=i(1432);let s,r,a,l,c;function d(e){s=document.createElement("div"),s.className="monaco-aria-container";const t=()=>{const e=document.createElement("div");return e.className="monaco-alert",e.setAttribute("role","alert"),e.setAttribute("aria-atomic","true"),s.appendChild(e),e};r=t(),a=t();const i=()=>{const e=document.createElement("div");return e.className="monaco-status",e.setAttribute("role","complementary"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),s.appendChild(e),e};l=i(),c=i(),e.appendChild(s)}function h(e){s&&(r.textContent!==e?(n.PO(a),g(r,e)):(n.PO(r),g(a,e)))}function u(e){s&&(o.dz?h(e):l.textContent!==e?(n.PO(c),g(l,e)):(n.PO(l),g(c,e)))}function g(e,t){n.PO(e),t.length>2e4&&(t=t.substr(0,2e4)),e.textContent=t,e.style.visibility="hidden",e.style.visibility="visible"}},28609:(e,t,i)=>{"use strict";i.d(t,{a:()=>o});var n=i(73046);function o(e){let t=e.definition;for(;t instanceof n.lA;)t=t.definition;return`.codicon-${e.id}:before { content: '${t.fontCharacter}'; }`}},67488:(e,t,i)=>{"use strict";i.d(t,{Z:()=>l});var n=i(65321),o=i(41264),s=i(36248),r=i(97295);const a={badgeBackground:o.Il.fromHex("#4D4D4D"),badgeForeground:o.Il.fromHex("#FFFFFF")};class l{constructor(e,t){this.count=0,this.options=t||Object.create(null),(0,s.jB)(this.options,a,!1),this.badgeBackground=this.options.badgeBackground,this.badgeForeground=this.options.badgeForeground,this.badgeBorder=this.options.badgeBorder,this.element=(0,n.R3)(e,(0,n.$)(".monaco-count-badge")),this.countFormat=this.options.countFormat||"{0}",this.titleFormat=this.options.titleFormat||"",this.setCount(this.options.count||0)}setCount(e){this.count=e,this.render()}setTitleFormat(e){this.titleFormat=e,this.render()}render(){this.element.textContent=(0,r.WU)(this.countFormat,this.count),this.element.title=(0,r.WU)(this.titleFormat,this.count),this.applyStyles()}style(e){this.badgeBackground=e.badgeBackground,this.badgeForeground=e.badgeForeground,this.badgeBorder=e.badgeBorder,this.applyStyles()}applyStyles(){if(this.element){const e=this.badgeBackground?this.badgeBackground.toString():"",t=this.badgeForeground?this.badgeForeground.toString():"",i=this.badgeBorder?this.badgeBorder.toString():"";this.element.style.backgroundColor=e,this.element.style.color=t,this.element.style.borderWidth=i?"1px":"",this.element.style.borderStyle=i?"solid":"",this.element.style.borderColor=i}}}},3070:(e,t,i)=>{"use strict";i.d(t,{V:()=>c});var n=i(65321),o=i(51307),s=i(31338),r=i(93794),a=i(4669);const l=i(63580).NC("defaultLabel","input");class c extends r.${constructor(e,t,i,r){var c;super(),this._showOptionButtons=i,this.fixFocusOnOptionClickEnabled=!0,this.imeSessionInProgress=!1,this.additionalToggles=[],this._onDidOptionChange=this._register(new a.Q5),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new a.Q5),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new a.Q5),this.onMouseDown=this._onMouseDown.event,this._onInput=this._register(new a.Q5),this._onKeyUp=this._register(new a.Q5),this._onCaseSensitiveKeyDown=this._register(new a.Q5),this.onCaseSensitiveKeyDown=this._onCaseSensitiveKeyDown.event,this._onRegexKeyDown=this._register(new a.Q5),this.onRegexKeyDown=this._onRegexKeyDown.event,this._lastHighlightFindOptions=0,this.contextViewProvider=t,this.placeholder=r.placeholder||"",this.validation=r.validation,this.label=r.label||l,this.inputActiveOptionBorder=r.inputActiveOptionBorder,this.inputActiveOptionForeground=r.inputActiveOptionForeground,this.inputActiveOptionBackground=r.inputActiveOptionBackground,this.inputBackground=r.inputBackground,this.inputForeground=r.inputForeground,this.inputBorder=r.inputBorder,this.inputValidationInfoBorder=r.inputValidationInfoBorder,this.inputValidationInfoBackground=r.inputValidationInfoBackground,this.inputValidationInfoForeground=r.inputValidationInfoForeground,this.inputValidationWarningBorder=r.inputValidationWarningBorder,this.inputValidationWarningBackground=r.inputValidationWarningBackground,this.inputValidationWarningForeground=r.inputValidationWarningForeground,this.inputValidationErrorBorder=r.inputValidationErrorBorder,this.inputValidationErrorBackground=r.inputValidationErrorBackground,this.inputValidationErrorForeground=r.inputValidationErrorForeground;const d=r.appendCaseSensitiveLabel||"",h=r.appendWholeWordsLabel||"",u=r.appendRegexLabel||"",g=r.history||[],p=!!r.flexibleHeight,m=!!r.flexibleWidth,f=r.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new s.p(this.domNode,this.contextViewProvider,{placeholder:this.placeholder||"",ariaLabel:this.label||"",validationOptions:{validation:this.validation},inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder,history:g,showHistoryHint:r.showHistoryHint,flexibleHeight:p,flexibleWidth:m,flexibleMaxHeight:f})),this.regex=this._register(new o.eH({appendTitle:u,isChecked:!1,inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground})),this._register(this.regex.onChange((e=>{this._onDidOptionChange.fire(e),!e&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()}))),this._register(this.regex.onKeyDown((e=>{this._onRegexKeyDown.fire(e)}))),this.wholeWords=this._register(new o.Qx({appendTitle:h,isChecked:!1,inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground})),this._register(this.wholeWords.onChange((e=>{this._onDidOptionChange.fire(e),!e&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()}))),this.caseSensitive=this._register(new o.rk({appendTitle:d,isChecked:!1,inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground})),this._register(this.caseSensitive.onChange((e=>{this._onDidOptionChange.fire(e),!e&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()}))),this._register(this.caseSensitive.onKeyDown((e=>{this._onCaseSensitiveKeyDown.fire(e)})));const _=[this.caseSensitive.domNode,this.wholeWords.domNode,this.regex.domNode];this.onkeydown(this.domNode,(e=>{if(e.equals(15)||e.equals(17)||e.equals(9)){const t=_.indexOf(document.activeElement);if(t>=0){let i=-1;e.equals(17)?i=(t+1)%_.length:e.equals(15)&&(i=0===t?_.length-1:t-1),e.equals(9)?(_[t].blur(),this.inputBox.focus()):i>=0&&_[i].focus(),n.zB.stop(e,!0)}}})),this.controls=document.createElement("div"),this.controls.className="controls",this.controls.style.display=this._showOptionButtons?"block":"none",this.controls.appendChild(this.caseSensitive.domNode),this.controls.appendChild(this.wholeWords.domNode),this.controls.appendChild(this.regex.domNode),this._showOptionButtons||(this.caseSensitive.domNode.style.display="none",this.wholeWords.domNode.style.display="none",this.regex.domNode.style.display="none");for(const n of null!==(c=null==r?void 0:r.additionalToggles)&&void 0!==c?c:[])this._register(n),this.controls.appendChild(n.domNode),this._register(n.onChange((e=>{this._onDidOptionChange.fire(e),!e&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus()}))),this.additionalToggles.push(n);this.additionalToggles.length>0&&(this.controls.style.display="block"),this.inputBox.paddingRight=(this._showOptionButtons?this.caseSensitive.width()+this.wholeWords.width()+this.regex.width():0)+this.additionalToggles.reduce(((e,t)=>e+t.width()),0),this.domNode.appendChild(this.controls),null==e||e.appendChild(this.domNode),this._register(n.nm(this.inputBox.inputElement,"compositionstart",(e=>{this.imeSessionInProgress=!0}))),this._register(n.nm(this.inputBox.inputElement,"compositionend",(e=>{this.imeSessionInProgress=!1,this._onInput.fire()}))),this.onkeydown(this.inputBox.inputElement,(e=>this._onKeyDown.fire(e))),this.onkeyup(this.inputBox.inputElement,(e=>this._onKeyUp.fire(e))),this.oninput(this.inputBox.inputElement,(e=>this._onInput.fire())),this.onmousedown(this.inputBox.inputElement,(e=>this._onMouseDown.fire(e)))}get onDidChange(){return this.inputBox.onDidChange}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.regex.enable(),this.wholeWords.enable(),this.caseSensitive.enable();for(const e of this.additionalToggles)e.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.regex.disable(),this.wholeWords.disable(),this.caseSensitive.disable();for(const e of this.additionalToggles)e.disable()}setFocusInputOnOptionClick(e){this.fixFocusOnOptionClickEnabled=e}setEnabled(e){e?this.enable():this.disable()}getValue(){return this.inputBox.value}setValue(e){this.inputBox.value!==e&&(this.inputBox.value=e)}style(e){this.inputActiveOptionBorder=e.inputActiveOptionBorder,this.inputActiveOptionForeground=e.inputActiveOptionForeground,this.inputActiveOptionBackground=e.inputActiveOptionBackground,this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()}applyStyles(){if(this.domNode){const e={inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground};this.regex.style(e),this.wholeWords.style(e),this.caseSensitive.style(e);for(const i of this.additionalToggles)i.style(e);const t={inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder};this.inputBox.style(t)}}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getCaseSensitive(){return this.caseSensitive.checked}setCaseSensitive(e){this.caseSensitive.checked=e}getWholeWords(){return this.wholeWords.checked}setWholeWords(e){this.wholeWords.checked=e}getRegex(){return this.regex.checked}setRegex(e){this.regex.checked=e,this.validate()}focusOnCaseSensitive(){this.caseSensitive.focus()}highlightFindOptions(){this.domNode.classList.remove("highlight-"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,this.domNode.classList.add("highlight-"+this._lastHighlightFindOptions)}validate(){this.inputBox.validate()}showMessage(e){this.inputBox.showMessage(e)}clearMessage(){this.inputBox.hideMessage()}}},51307:(e,t,i)=>{"use strict";i.d(t,{Qx:()=>d,eH:()=>h,rk:()=>c});var n=i(82900),o=i(73046),s=i(63580);const r=s.NC("caseDescription","Match Case"),a=s.NC("wordsDescription","Match Whole Word"),l=s.NC("regexDescription","Use Regular Expression");class c extends n.Z{constructor(e){super({icon:o.lA.caseSensitive,title:r+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class d extends n.Z{constructor(e){super({icon:o.lA.wholeWord,title:a+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class h extends n.Z{constructor(e){super({icon:o.lA.regex,title:l+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}},34650:(e,t,i)=>{"use strict";i.d(t,{q:()=>r});var n=i(65321),o=i(56811),s=i(36248);class r{constructor(e,t){var i;this.text="",this.title="",this.highlights=[],this.didEverRender=!1,this.supportIcons=null!==(i=null==t?void 0:t.supportIcons)&&void 0!==i&&i,this.domNode=n.R3(e,n.$("span.monaco-highlighted-label"))}get element(){return this.domNode}set(e,t=[],i="",n){e||(e=""),n&&(e=r.escapeNewLines(e,t)),this.didEverRender&&this.text===e&&this.title===i&&s.fS(this.highlights,t)||(this.text=e,this.title=i,this.highlights=t,this.render())}render(){const e=[];let t=0;for(const i of this.highlights){if(i.end===i.start)continue;if(t<i.start){const s=this.text.substring(t,i.start);e.push(n.$("span",void 0,...this.supportIcons?(0,o.T)(s):[s])),t=i.end}const s=this.text.substring(i.start,i.end),r=n.$("span.highlight",void 0,...this.supportIcons?(0,o.T)(s):[s]);i.extraClasses&&r.classList.add(...i.extraClasses),e.push(r),t=i.end}if(t<this.text.length){const i=this.text.substring(t);e.push(n.$("span",void 0,...this.supportIcons?(0,o.T)(i):[i]))}n.mc(this.domNode,...e),this.title?this.domNode.title=this.title:this.domNode.removeAttribute("title"),this.didEverRender=!0}static escapeNewLines(e,t){let i=0,n=0;return e.replace(/\r\n|\r|\n/g,((e,o)=>{n="\r\n"===e?-1:0,o+=i;for(const i of t)i.end<=o||(i.start>=o&&(i.start+=n),i.end>=o&&(i.end+=n));return i+=n,"\u23ce"}))}}},59834:(e,t,i)=>{"use strict";i.d(t,{g:()=>d});var n=i(65321),o=i(34650),s=i(51433),r=i(5976),a=i(36248),l=i(61134);class c{constructor(e){this._element=e}get element(){return this._element}set textContent(e){this.disposed||e===this._textContent||(this._textContent=e,this._element.textContent=e)}set className(e){this.disposed||e===this._className||(this._className=e,this._element.className=e)}set empty(e){this.disposed||e===this._empty||(this._empty=e,this._element.style.marginLeft=e?"0":"")}dispose(){this.disposed=!0}}class d extends r.JT{constructor(e,t){super(),this.customHovers=new Map,this.domNode=this._register(new c(n.R3(e,n.$(".monaco-icon-label")))),this.labelContainer=n.R3(this.domNode.element,n.$(".monaco-icon-label-container"));const i=n.R3(this.labelContainer,n.$("span.monaco-icon-name-container"));this.descriptionContainer=this._register(new c(n.R3(this.labelContainer,n.$("span.monaco-icon-description-container")))),(null==t?void 0:t.supportHighlights)||(null==t?void 0:t.supportIcons)?this.nameNode=new u(i,!!t.supportIcons):this.nameNode=new h(i),(null==t?void 0:t.supportDescriptionHighlights)?this.descriptionNodeFactory=()=>new o.q(n.R3(this.descriptionContainer.element,n.$("span.label-description")),{supportIcons:!!t.supportIcons}):this.descriptionNodeFactory=()=>this._register(new c(n.R3(this.descriptionContainer.element,n.$("span.label-description")))),this.hoverDelegate=null==t?void 0:t.hoverDelegate}get element(){return this.domNode.element}setLabel(e,t,i){const n=["monaco-icon-label"];i&&(i.extraClasses&&n.push(...i.extraClasses),i.italic&&n.push("italic"),i.strikethrough&&n.push("strikethrough")),this.domNode.className=n.join(" "),this.setupHover((null==i?void 0:i.descriptionTitle)?this.labelContainer:this.element,null==i?void 0:i.title),this.nameNode.setLabel(e,i),(t||this.descriptionNode)&&(this.descriptionNode||(this.descriptionNode=this.descriptionNodeFactory()),this.descriptionNode instanceof o.q?(this.descriptionNode.set(t||"",i?i.descriptionMatches:void 0),this.setupHover(this.descriptionNode.element,null==i?void 0:i.descriptionTitle)):(this.descriptionNode.textContent=t||"",this.setupHover(this.descriptionNode.element,(null==i?void 0:i.descriptionTitle)||""),this.descriptionNode.empty=!t))}setupHover(e,t){const i=this.customHovers.get(e);if(i&&(i.dispose(),this.customHovers.delete(e)),t)if(this.hoverDelegate){const i=(0,s.g)(this.hoverDelegate,e,t);i&&this.customHovers.set(e,i)}else(0,s.O)(e,t);else e.removeAttribute("title")}dispose(){super.dispose();for(const e of this.customHovers.values())e.dispose();this.customHovers.clear()}}class h{constructor(e){this.container=e,this.label=void 0,this.singleLabel=void 0}setLabel(e,t){if(this.label!==e||!(0,a.fS)(this.options,t))if(this.label=e,this.options=t,"string"==typeof e)this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=n.R3(this.container,n.$("a.label-name",{id:null==t?void 0:t.domId}))),this.singleLabel.textContent=e;else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;for(let i=0;i<e.length;i++){const o=e[i],s=(null==t?void 0:t.domId)&&`${null==t?void 0:t.domId}_${i}`;n.R3(this.container,n.$("a.label-name",{id:s,"data-icon-label-count":e.length,"data-icon-label-index":i,role:"treeitem"},o)),i<e.length-1&&n.R3(this.container,n.$("span.label-separator",void 0,(null==t?void 0:t.separator)||"/"))}}}}class u{constructor(e,t){this.container=e,this.supportIcons=t,this.label=void 0,this.singleLabel=void 0}setLabel(e,t){if(this.label!==e||!(0,a.fS)(this.options,t))if(this.label=e,this.options=t,"string"==typeof e)this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=new o.q(n.R3(this.container,n.$("a.label-name",{id:null==t?void 0:t.domId})),{supportIcons:this.supportIcons})),this.singleLabel.set(e,null==t?void 0:t.matches,void 0,null==t?void 0:t.labelEscapeNewLines);else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;const i=(null==t?void 0:t.separator)||"/",s=function(e,t,i){if(!i)return;let n=0;return e.map((e=>{const o={start:n,end:n+e.length},s=i.map((e=>l.e.intersect(o,e))).filter((e=>!l.e.isEmpty(e))).map((({start:e,end:t})=>({start:e-n,end:t-n})));return n=o.end+t.length,s}))}(e,i,null==t?void 0:t.matches);for(let r=0;r<e.length;r++){const a=e[r],l=s?s[r]:void 0,c=(null==t?void 0:t.domId)&&`${null==t?void 0:t.domId}_${r}`,d=n.$("a.label-name",{id:c,"data-icon-label-count":e.length,"data-icon-label-index":r,role:"treeitem"});new o.q(n.R3(this.container,d),{supportIcons:this.supportIcons}).set(a,l,void 0,null==t?void 0:t.labelEscapeNewLines),r<e.length-1&&n.R3(d,n.$("span.label-separator",void 0,i))}}}}},51433:(e,t,i)=>{"use strict";i.d(t,{O:()=>u,g:()=>p});var n=i(65321),o=i(15393),s=i(71050),r=i(59365),a=i(21212),l=i(5976),c=i(98401),d=i(63580),h=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};function u(e,t){(0,c.HD)(t)?e.title=(0,a.x$)(t):(null==t?void 0:t.markdownNotSupportedFallback)?e.title=t.markdownNotSupportedFallback:e.removeAttribute("title")}class g{constructor(e,t,i){this.hoverDelegate=e,this.target=t,this.fadeInAnimation=i}update(e,t,i){var n;return h(this,void 0,void 0,(function*(){if(this._cancellationTokenSource&&(this._cancellationTokenSource.dispose(!0),this._cancellationTokenSource=void 0),this.isDisposed)return;let o;if(void 0===e||(0,c.HD)(e)||e instanceof HTMLElement)o=e;else if((0,c.mf)(e.markdown)){this._hoverWidget||this.show((0,d.NC)("iconLabel.loading","Loading..."),t),this._cancellationTokenSource=new s.A;const i=this._cancellationTokenSource.token;if(o=yield e.markdown(i),void 0===o&&(o=e.markdownNotSupportedFallback),this.isDisposed||i.isCancellationRequested)return}else o=null!==(n=e.markdown)&&void 0!==n?n:e.markdownNotSupportedFallback;this.show(o,t,i)}))}show(e,t,i){const n=this._hoverWidget;if(this.hasContent(e)){const o=Object.assign({content:e,target:this.target,showPointer:"element"===this.hoverDelegate.placement,hoverPosition:2,skipFadeInAnimation:!this.fadeInAnimation||!!n},i);this._hoverWidget=this.hoverDelegate.showHover(o,t)}null==n||n.dispose()}hasContent(e){return!!e&&(!(0,r.Fr)(e)||!!e.value)}get isDisposed(){var e;return null===(e=this._hoverWidget)||void 0===e?void 0:e.isDisposed}dispose(){var e,t;null===(e=this._hoverWidget)||void 0===e||e.dispose(),null===(t=this._cancellationTokenSource)||void 0===t||t.dispose(!0),this._cancellationTokenSource=void 0}}function p(e,t,i,s){let r,a;const c=(t,i)=>{var n;t&&(null==a||a.dispose(),a=void 0),i&&(null==r||r.dispose(),r=void 0),null===(n=e.onDidHideHover)||void 0===n||n.call(e)},d=(n,r,l)=>new o._F((()=>h(this,void 0,void 0,(function*(){a&&!a.isDisposed||(a=new g(e,l||t,n>0),yield a.update(i,r,s))}))),n),u=n.nm(t,n.tw.MOUSE_OVER,(()=>{if(r)return;const i=new l.SL;i.add(n.nm(t,n.tw.MOUSE_LEAVE,(e=>c(!1,e.fromElement===t)),!0));i.add(n.nm(t,n.tw.MOUSE_DOWN,(()=>c(!0,!0)),!0));const o={targetElements:[t],dispose:()=>{}};if(void 0===e.placement||"mouse"===e.placement){const e=e=>{o.x=e.x+10,e.target instanceof HTMLElement&&e.target.classList.contains("action-label")&&c(!0,!0)};i.add(n.nm(t,n.tw.MOUSE_MOVE,e,!0))}i.add(d(e.delay,!1,o)),r=i}),!0);return{show:e=>{c(!1,!0),d(0,e)},hide:()=>{c(!0,!0)},update:(e,t)=>h(this,void 0,void 0,(function*(){i=e,yield null==a?void 0:a.update(i,void 0,t)})),dispose:()=>{u.dispose(),c(!0,!0)}}}},56811:(e,t,i)=>{"use strict";i.d(t,{T:()=>r});var n=i(65321),o=i(73046);const s=new RegExp(`(\\\\)?\\$\\((${o.dT.iconNameExpression}(?:${o.dT.iconModifierExpression})?)\\)`,"g");function r(e){const t=new Array;let i,n=0,o=0;for(;null!==(i=s.exec(e));){o=i.index||0,t.push(e.substring(n,o)),n=(i.index||0)+i[0].length;const[,s,r]=i;t.push(s?`$(${r})`:a({id:r}))}return n<e.length&&t.push(e.substring(n)),t}function a(e){const t=n.$("span");return t.classList.add(...o.dT.asClassNameArray(e)),t}},31338:(e,t,i)=>{"use strict";i.d(t,{p:()=>b,W:()=>v});var n=i(65321),o=i(4850),s=i(48764),r=i(90317),a=i(85152),l=i(63161),c=i(93794),d=i(41264),h=i(4669);class u{constructor(e,t=0,i=e.length,n=t-1){this.items=e,this.start=t,this.end=i,this.index=n}current(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]}next(){return this.index=Math.min(this.index+1,this.end),this.current()}previous(){return this.index=Math.max(this.index-1,this.start-1),this.current()}first(){return this.index=this.start,this.current()}last(){return this.index=this.end-1,this.current()}}class g{constructor(e=[],t=10){this._initialize(e),this._limit=t,this._onChange()}getHistory(){return this._elements}add(e){this._history.delete(e),this._history.add(e),this._onChange()}next(){return this._currentPosition()!==this._elements.length-1?this._navigator.next():null}previous(){return 0!==this._currentPosition()?this._navigator.previous():null}current(){return this._navigator.current()}first(){return this._navigator.first()}last(){return this._navigator.last()}has(e){return this._history.has(e)}_onChange(){this._reduceToLimit();const e=this._elements;this._navigator=new u(e,0,e.length,e.length)}_reduceToLimit(){const e=this._elements;e.length>this._limit&&this._initialize(e.slice(e.length-this._limit))}_currentPosition(){const e=this._navigator.current();return e?this._elements.indexOf(e):-1}_initialize(e){this._history=new Set;for(const t of e)this._history.add(t)}get _elements(){const e=[];return this._history.forEach((t=>e.push(t))),e}}var p=i(36248),m=i(63580);const f=n.$,_={inputBackground:d.Il.fromHex("#3C3C3C"),inputForeground:d.Il.fromHex("#CCCCCC"),inputValidationInfoBorder:d.Il.fromHex("#55AAFF"),inputValidationInfoBackground:d.Il.fromHex("#063B49"),inputValidationWarningBorder:d.Il.fromHex("#B89500"),inputValidationWarningBackground:d.Il.fromHex("#352A05"),inputValidationErrorBorder:d.Il.fromHex("#BE1100"),inputValidationErrorBackground:d.Il.fromHex("#5A1D1D")};class v extends c.${constructor(e,t,i){var s;super(),this.state="idle",this.maxHeight=Number.POSITIVE_INFINITY,this._onDidChange=this._register(new h.Q5),this.onDidChange=this._onDidChange.event,this._onDidHeightChange=this._register(new h.Q5),this.onDidHeightChange=this._onDidHeightChange.event,this.contextViewProvider=t,this.options=i||Object.create(null),(0,p.jB)(this.options,_,!1),this.message=null,this.placeholder=this.options.placeholder||"",this.tooltip=null!==(s=this.options.tooltip)&&void 0!==s?s:this.placeholder||"",this.ariaLabel=this.options.ariaLabel||"",this.inputBackground=this.options.inputBackground,this.inputForeground=this.options.inputForeground,this.inputBorder=this.options.inputBorder,this.inputValidationInfoBorder=this.options.inputValidationInfoBorder,this.inputValidationInfoBackground=this.options.inputValidationInfoBackground,this.inputValidationInfoForeground=this.options.inputValidationInfoForeground,this.inputValidationWarningBorder=this.options.inputValidationWarningBorder,this.inputValidationWarningBackground=this.options.inputValidationWarningBackground,this.inputValidationWarningForeground=this.options.inputValidationWarningForeground,this.inputValidationErrorBorder=this.options.inputValidationErrorBorder,this.inputValidationErrorBackground=this.options.inputValidationErrorBackground,this.inputValidationErrorForeground=this.options.inputValidationErrorForeground,this.options.validationOptions&&(this.validation=this.options.validationOptions.validation),this.element=n.R3(e,f(".monaco-inputbox.idle"));const a=this.options.flexibleHeight?"textarea":"input",c=n.R3(this.element,f(".ibwrapper"));if(this.input=n.R3(c,f(a+".input.empty")),this.input.setAttribute("autocorrect","off"),this.input.setAttribute("autocapitalize","off"),this.input.setAttribute("spellcheck","false"),this.onfocus(this.input,(()=>this.element.classList.add("synthetic-focus"))),this.onblur(this.input,(()=>this.element.classList.remove("synthetic-focus"))),this.options.flexibleHeight){this.maxHeight="number"==typeof this.options.flexibleMaxHeight?this.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,this.mirror=n.R3(c,f("div.mirror")),this.mirror.innerText="\xa0",this.scrollableElement=new l.NB(this.element,{vertical:1}),this.options.flexibleWidth&&(this.input.setAttribute("wrap","off"),this.mirror.style.whiteSpace="pre",this.mirror.style.wordWrap="initial"),n.R3(e,this.scrollableElement.getDomNode()),this._register(this.scrollableElement),this._register(this.scrollableElement.onScroll((e=>this.input.scrollTop=e.scrollTop)));const t=this._register(new o.Y(document,"selectionchange")),i=h.ju.filter(t.event,(()=>{const e=document.getSelection();return(null==e?void 0:e.anchorNode)===c}));this._register(i(this.updateScrollDimensions,this)),this._register(this.onDidHeightChange(this.updateScrollDimensions,this))}else this.input.type=this.options.type||"text",this.input.setAttribute("wrap","off");this.ariaLabel&&this.input.setAttribute("aria-label",this.ariaLabel),this.placeholder&&!this.options.showPlaceholderOnFocus&&this.setPlaceHolder(this.placeholder),this.tooltip&&this.setTooltip(this.tooltip),this.oninput(this.input,(()=>this.onValueChange())),this.onblur(this.input,(()=>this.onBlur())),this.onfocus(this.input,(()=>this.onFocus())),this.ignoreGesture(this.input),setTimeout((()=>this.updateMirror()),0),this.options.actions&&(this.actionbar=this._register(new r.o(this.element)),this.actionbar.push(this.options.actions,{icon:!0,label:!1})),this.applyStyles()}onBlur(){this._hideMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder","")}onFocus(){this._showMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder",this.placeholder||"")}setPlaceHolder(e){this.placeholder=e,this.input.setAttribute("placeholder",e)}setTooltip(e){this.tooltip=e,this.input.title=e}setAriaLabel(e){this.ariaLabel=e,e?this.input.setAttribute("aria-label",this.ariaLabel):this.input.removeAttribute("aria-label")}getAriaLabel(){return this.ariaLabel}get inputElement(){return this.input}get value(){return this.input.value}set value(e){this.input.value!==e&&(this.input.value=e,this.onValueChange())}get height(){return"number"==typeof this.cachedHeight?this.cachedHeight:n.wn(this.element)}focus(){this.input.focus()}blur(){this.input.blur()}hasFocus(){return document.activeElement===this.input}select(e=null){this.input.select(),e&&(this.input.setSelectionRange(e.start,e.end),e.end===this.input.value.length&&(this.input.scrollLeft=this.input.scrollWidth))}isSelectionAtEnd(){return this.input.selectionEnd===this.input.value.length&&this.input.selectionStart===this.input.selectionEnd}enable(){this.input.removeAttribute("disabled")}disable(){this.blur(),this.input.disabled=!0,this._hideMessage()}get width(){return n.w(this.input)}set width(e){if(this.options.flexibleHeight&&this.options.flexibleWidth){let t=0;if(this.mirror){t=(parseFloat(this.mirror.style.paddingLeft||"")||0)+(parseFloat(this.mirror.style.paddingRight||"")||0)}this.input.style.width=e-t+"px"}else this.input.style.width=e+"px";this.mirror&&(this.mirror.style.width=e+"px")}set paddingRight(e){this.input.style.width=`calc(100% - ${e}px)`,this.mirror&&(this.mirror.style.paddingRight=e+"px")}updateScrollDimensions(){if("number"!=typeof this.cachedContentHeight||"number"!=typeof this.cachedHeight||!this.scrollableElement)return;const e=this.cachedContentHeight,t=this.cachedHeight,i=this.input.scrollTop;this.scrollableElement.setScrollDimensions({scrollHeight:e,height:t}),this.scrollableElement.setScrollPosition({scrollTop:i})}showMessage(e,t){this.message=e,this.element.classList.remove("idle"),this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add(this.classForType(e.type));const i=this.stylesForType(this.message.type);this.element.style.border=i.border?`1px solid ${i.border}`:"",(this.hasFocus()||t)&&this._showMessage()}hideMessage(){this.message=null,this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add("idle"),this._hideMessage(),this.applyStyles()}validate(){let e=null;return this.validation&&(e=this.validation(this.value),e?(this.inputElement.setAttribute("aria-invalid","true"),this.showMessage(e)):this.inputElement.hasAttribute("aria-invalid")&&(this.inputElement.removeAttribute("aria-invalid"),this.hideMessage())),null==e?void 0:e.type}stylesForType(e){switch(e){case 1:return{border:this.inputValidationInfoBorder,background:this.inputValidationInfoBackground,foreground:this.inputValidationInfoForeground};case 2:return{border:this.inputValidationWarningBorder,background:this.inputValidationWarningBackground,foreground:this.inputValidationWarningForeground};default:return{border:this.inputValidationErrorBorder,background:this.inputValidationErrorBackground,foreground:this.inputValidationErrorForeground}}}classForType(e){switch(e){case 1:return"info";case 2:return"warning";default:return"error"}}_showMessage(){if(!this.contextViewProvider||!this.message)return;let e;const t=()=>e.style.width=n.w(this.element)+"px";let i;this.contextViewProvider.showContextView({getAnchor:()=>this.element,anchorAlignment:1,render:i=>{if(!this.message)return null;e=n.R3(i,f(".monaco-inputbox-container")),t();const o={inline:!0,className:"monaco-inputbox-message"},r=this.message.formatContent?(0,s.BO)(this.message.content,o):(0,s.IY)(this.message.content,o);r.classList.add(this.classForType(this.message.type));const a=this.stylesForType(this.message.type);return r.style.backgroundColor=a.background?a.background.toString():"",r.style.color=a.foreground?a.foreground.toString():"",r.style.border=a.border?`1px solid ${a.border}`:"",n.R3(e,r),null},onHide:()=>{this.state="closed"},layout:t}),i=3===this.message.type?m.NC("alertErrorMessage","Error: {0}",this.message.content):2===this.message.type?m.NC("alertWarningMessage","Warning: {0}",this.message.content):m.NC("alertInfoMessage","Info: {0}",this.message.content),a.Z9(i),this.state="open"}_hideMessage(){this.contextViewProvider&&("open"===this.state&&this.contextViewProvider.hideContextView(),this.state="idle")}onValueChange(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(),this.input.classList.toggle("empty",!this.value),"open"===this.state&&this.contextViewProvider&&this.contextViewProvider.layout()}updateMirror(){if(!this.mirror)return;const e=this.value,t=10===e.charCodeAt(e.length-1)?" ":"";(e+t).replace(/\u000c/g,"")?this.mirror.textContent=e+t:this.mirror.innerText="\xa0",this.layout()}style(e){this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()}applyStyles(){const e=this.inputBackground?this.inputBackground.toString():"",t=this.inputForeground?this.inputForeground.toString():"",i=this.inputBorder?this.inputBorder.toString():"";this.element.style.backgroundColor=e,this.element.style.color=t,this.input.style.backgroundColor="inherit",this.input.style.color=t,this.element.style.borderWidth=i?"1px":"",this.element.style.borderStyle=i?"solid":"",this.element.style.borderColor=i}layout(){if(!this.mirror)return;const e=this.cachedContentHeight;this.cachedContentHeight=n.wn(this.mirror),e!==this.cachedContentHeight&&(this.cachedHeight=Math.min(this.cachedContentHeight,this.maxHeight),this.input.style.height=this.cachedHeight+"px",this._onDidHeightChange.fire(this.cachedContentHeight))}insertAtCursor(e){const t=this.inputElement,i=t.selectionStart,n=t.selectionEnd,o=t.value;null!==i&&null!==n&&(this.value=o.substr(0,i)+e+o.substr(n),t.setSelectionRange(i+1,i+1),this.layout())}dispose(){this._hideMessage(),this.message=null,this.actionbar&&this.actionbar.dispose(),super.dispose()}}class b extends v{constructor(e,t,i){const n=m.NC({key:"history.inputbox.hint",comment:["Text will be prefixed with \u21c5 plus a single space, then used as a hint where input field keeps history"]},"for history"),o=` or \u21c5 ${n}`,s=` (\u21c5 ${n})`;super(e,t,i),this._onDidFocus=this._register(new h.Q5),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new h.Q5),this.onDidBlur=this._onDidBlur.event,this.history=new g(i.history,100);const r=()=>{if(i.showHistoryHint&&i.showHistoryHint()&&!this.placeholder.endsWith(o)&&!this.placeholder.endsWith(s)&&this.history.getHistory().length){const e=this.placeholder.endsWith(")")?o:s,t=this.placeholder+e;i.showPlaceholderOnFocus&&document.activeElement!==this.input?this.placeholder=t:this.setPlaceHolder(t)}};this.observer=new MutationObserver(((e,t)=>{e.forEach((e=>{e.target.textContent||r()}))})),this.observer.observe(this.input,{attributeFilter:["class"]}),this.onfocus(this.input,(()=>r())),this.onblur(this.input,(()=>{const e=e=>{if(this.placeholder.endsWith(e)){const t=this.placeholder.slice(0,this.placeholder.length-e.length);return i.showPlaceholderOnFocus?this.placeholder=t:this.setPlaceHolder(t),!0}return!1};e(s)||e(o)}))}dispose(){super.dispose(),this.observer&&(this.observer.disconnect(),this.observer=void 0)}addToHistory(){this.value&&this.value!==this.getCurrentValue()&&this.history.add(this.value)}showNextValue(){this.history.has(this.value)||this.addToHistory();let e=this.getNextValue();e&&(e=e===this.value?this.getNextValue():e),e&&(this.value=e,a.i7(this.value))}showPreviousValue(){this.history.has(this.value)||this.addToHistory();let e=this.getPreviousValue();e&&(e=e===this.value?this.getPreviousValue():e),e&&(this.value=e,a.i7(this.value))}onBlur(){super.onBlur(),this._onDidBlur.fire()}onFocus(){super.onFocus(),this._onDidFocus.fire()}getCurrentValue(){let e=this.history.current();return e||(e=this.history.last(),this.history.next()),e}getPreviousValue(){return this.history.previous()||this.history.first()}getNextValue(){return this.history.next()||this.history.last()}}},72010:(e,t,i)=>{"use strict";i.d(t,{kX:()=>y,Bv:()=>x});var n=i(16268),o=i(23547),s=i(65321),r=i(4850),a=i(10553),l=i(63161),c=i(9488),d=i(15393),h=i(49898),u=i(4669),g=i(5976),p=i(61134),m=i(76633);function f(e,t){const i=[];for(const n of t){if(e.start>=n.range.end)continue;if(e.end<n.range.start)break;const t=p.e.intersect(e,n.range);p.e.isEmpty(t)||i.push({range:t,size:n.size})}return i}function _({start:e,end:t},i){return{start:e+i,end:t+i}}class v{constructor(){this.groups=[],this._size=0}splice(e,t,i=[]){const n=i.length-t,o=f({start:0,end:e},this.groups),s=f({start:e+t,end:Number.POSITIVE_INFINITY},this.groups).map((e=>({range:_(e.range,n),size:e.size}))),r=i.map(((t,i)=>({range:{start:e+i,end:e+i+1},size:t.size})));this.groups=function(...e){return function(e){const t=[];let i=null;for(const n of e){const e=n.range.start,o=n.range.end,s=n.size;i&&s===i.size?i.range.end=o:(i={range:{start:e,end:o},size:s},t.push(i))}return t}(e.reduce(((e,t)=>e.concat(t)),[]))}(o,r,s),this._size=this.groups.reduce(((e,t)=>e+t.size*(t.range.end-t.range.start)),0)}get count(){const e=this.groups.length;return e?this.groups[e-1].range.end:0}get size(){return this._size}indexAt(e){if(e<0)return-1;let t=0,i=0;for(const n of this.groups){const o=n.range.end-n.range.start,s=i+o*n.size;if(e<s)return t+Math.floor((e-i)/n.size);t+=o,i=s}return t}indexAfter(e){return Math.min(this.indexAt(e)+1,this.count)}positionAt(e){if(e<0)return-1;let t=0,i=0;for(const n of this.groups){const o=n.range.end-n.range.start,s=i+o;if(e<s)return t+(e-i)*n.size;t+=o*n.size,i=s}return-1}}class b{constructor(e){this.renderers=e,this.cache=new Map}alloc(e){let t=this.getTemplateCache(e).pop();if(!t){const i=(0,s.$)(".monaco-list-row");t={domNode:i,templateId:e,templateData:this.getRenderer(e).renderTemplate(i)}}return t}release(e){e&&this.releaseRow(e)}releaseRow(e){const{domNode:t,templateId:i}=e;t&&(t.classList.remove("scrolling"),function(e){var t;try{null===(t=e.parentElement)||void 0===t||t.removeChild(e)}catch(i){}}(t));this.getTemplateCache(i).push(e)}getTemplateCache(e){let t=this.cache.get(e);return t||(t=[],this.cache.set(e,t)),t}dispose(){this.cache.forEach(((e,t)=>{for(const i of e){this.getRenderer(t).disposeTemplate(i.templateData),i.templateData=null}})),this.cache.clear()}getRenderer(e){const t=this.renderers.get(e);if(!t)throw new Error(`No renderer found for ${e}`);return t}}var C=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r};const w={useShadows:!0,verticalScrollMode:1,setRowLineHeight:!0,setRowHeight:!0,supportDynamicHeights:!1,dnd:{getDragElements:e=>[e],getDragURI:()=>null,onDragStart(){},onDragOver:()=>!1,drop(){}},horizontalScrolling:!1,transformOptimization:!0,alwaysConsumeMouseWheel:!0};class y{constructor(e){this.elements=e}update(){}getData(){return this.elements}}class S{constructor(e){this.elements=e}update(){}getData(){return this.elements}}class L{constructor(){this.types=[],this.files=[]}update(e){if(e.types&&this.types.splice(0,this.types.length,...e.types),e.files){this.files.splice(0,this.files.length);for(let t=0;t<e.files.length;t++){const i=e.files.item(t);i&&(i.size||i.type)&&this.files.push(i)}}}getData(){return{types:this.types,files:this.files}}}class k{constructor(e){(null==e?void 0:e.getSetSize)?this.getSetSize=e.getSetSize.bind(e):this.getSetSize=(e,t,i)=>i,(null==e?void 0:e.getPosInSet)?this.getPosInSet=e.getPosInSet.bind(e):this.getPosInSet=(e,t)=>t+1,(null==e?void 0:e.getRole)?this.getRole=e.getRole.bind(e):this.getRole=e=>"listitem",(null==e?void 0:e.isChecked)?this.isChecked=e.isChecked.bind(e):this.isChecked=e=>{}}}class x{constructor(e,t,i,n=w){var o,r,c,h,p,f,_,C,y,S;if(this.virtualDelegate=t,this.domId="list_id_"+ ++x.InstanceCount,this.renderers=new Map,this.renderWidth=0,this._scrollHeight=0,this.scrollableElementUpdateDisposable=null,this.scrollableElementWidthDelayer=new d.vp(50),this.splicing=!1,this.dragOverAnimationStopDisposable=g.JT.None,this.dragOverMouseY=0,this.canDrop=!1,this.currentDragFeedbackDisposable=g.JT.None,this.onDragLeaveTimeout=g.JT.None,this.disposables=new g.SL,this._onDidChangeContentHeight=new u.Q5,this._horizontalScrolling=!1,n.horizontalScrolling&&n.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");this.items=[],this.itemId=0,this.rangeMap=new v;for(const s of i)this.renderers.set(s.templateId,s);this.cache=this.disposables.add(new b(this.renderers)),this.lastRenderTop=0,this.lastRenderHeight=0,this.domNode=document.createElement("div"),this.domNode.className="monaco-list",this.domNode.classList.add(this.domId),this.domNode.tabIndex=0,this.domNode.classList.toggle("mouse-support","boolean"!=typeof n.mouseSupport||n.mouseSupport),this._horizontalScrolling=null!==(o=n.horizontalScrolling)&&void 0!==o?o:w.horizontalScrolling,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this.additionalScrollHeight=void 0===n.additionalScrollHeight?0:n.additionalScrollHeight,this.accessibilityProvider=new k(n.accessibilityProvider),this.rowsContainer=document.createElement("div"),this.rowsContainer.className="monaco-list-rows";(null!==(r=n.transformOptimization)&&void 0!==r?r:w.transformOptimization)&&(this.rowsContainer.style.transform="translate3d(0px, 0px, 0px)"),this.disposables.add(a.o.addTarget(this.rowsContainer)),this.scrollable=new m.Rm({forceIntegerValues:!0,smoothScrollDuration:null!==(c=n.smoothScrolling)&&void 0!==c&&c?125:0,scheduleAtNextAnimationFrame:e=>(0,s.jL)(e)}),this.scrollableElement=this.disposables.add(new l.$Z(this.rowsContainer,{alwaysConsumeMouseWheel:null!==(h=n.alwaysConsumeMouseWheel)&&void 0!==h?h:w.alwaysConsumeMouseWheel,horizontal:1,vertical:null!==(p=n.verticalScrollMode)&&void 0!==p?p:w.verticalScrollMode,useShadows:null!==(f=n.useShadows)&&void 0!==f?f:w.useShadows,mouseWheelScrollSensitivity:n.mouseWheelScrollSensitivity,fastScrollSensitivity:n.fastScrollSensitivity},this.scrollable)),this.domNode.appendChild(this.scrollableElement.getDomNode()),e.appendChild(this.domNode),this.scrollableElement.onScroll(this.onScroll,this,this.disposables),this.disposables.add((0,s.nm)(this.rowsContainer,a.t.Change,(e=>this.onTouchChange(e)))),this.disposables.add((0,s.nm)(this.scrollableElement.getDomNode(),"scroll",(e=>e.target.scrollTop=0))),this.disposables.add((0,s.nm)(this.domNode,"dragover",(e=>this.onDragOver(this.toDragEvent(e))))),this.disposables.add((0,s.nm)(this.domNode,"drop",(e=>this.onDrop(this.toDragEvent(e))))),this.disposables.add((0,s.nm)(this.domNode,"dragleave",(e=>this.onDragLeave(this.toDragEvent(e))))),this.disposables.add((0,s.nm)(this.domNode,"dragend",(e=>this.onDragEnd(e)))),this.setRowLineHeight=null!==(_=n.setRowLineHeight)&&void 0!==_?_:w.setRowLineHeight,this.setRowHeight=null!==(C=n.setRowHeight)&&void 0!==C?C:w.setRowHeight,this.supportDynamicHeights=null!==(y=n.supportDynamicHeights)&&void 0!==y?y:w.supportDynamicHeights,this.dnd=null!==(S=n.dnd)&&void 0!==S?S:w.dnd,this.layout()}get contentHeight(){return this.rangeMap.size}get horizontalScrolling(){return this._horizontalScrolling}set horizontalScrolling(e){if(e!==this._horizontalScrolling){if(e&&this.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");if(this._horizontalScrolling=e,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this._horizontalScrolling){for(const e of this.items)this.measureItemWidth(e);this.updateScrollWidth(),this.scrollableElement.setScrollDimensions({width:(0,s.FK)(this.domNode)}),this.rowsContainer.style.width=`${Math.max(this.scrollWidth||0,this.renderWidth)}px`}else this.scrollableElementWidthDelayer.cancel(),this.scrollableElement.setScrollDimensions({width:this.renderWidth,scrollWidth:this.renderWidth}),this.rowsContainer.style.width=""}}updateOptions(e){void 0!==e.additionalScrollHeight&&(this.additionalScrollHeight=e.additionalScrollHeight,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),void 0!==e.smoothScrolling&&this.scrollable.setSmoothScrollDuration(e.smoothScrolling?125:0),void 0!==e.horizontalScrolling&&(this.horizontalScrolling=e.horizontalScrolling),void 0!==e.mouseWheelScrollSensitivity&&this.scrollableElement.updateOptions({mouseWheelScrollSensitivity:e.mouseWheelScrollSensitivity}),void 0!==e.fastScrollSensitivity&&this.scrollableElement.updateOptions({fastScrollSensitivity:e.fastScrollSensitivity})}splice(e,t,i=[]){if(this.splicing)throw new Error("Can't run recursive splices.");this.splicing=!0;try{return this._splice(e,t,i)}finally{this.splicing=!1,this._onDidChangeContentHeight.fire(this.contentHeight)}}_splice(e,t,i=[]){const n=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),o={start:e,end:e+t},s=p.e.intersect(n,o),r=new Map;for(let g=s.end-1;g>=s.start;g--){const e=this.items[g];if(e.dragStartDisposable.dispose(),e.checkedDisposable.dispose(),e.row){let t=r.get(e.templateId);t||(t=[],r.set(e.templateId,t));const i=this.renderers.get(e.templateId);i&&i.disposeElement&&i.disposeElement(e.element,g,e.row.templateData,e.size),t.push(e.row)}e.row=null}const a={start:e+t,end:this.items.length},l=p.e.intersect(a,n),c=p.e.relativeComplement(a,n),d=i.map((e=>({id:String(this.itemId++),element:e,templateId:this.virtualDelegate.getTemplateId(e),size:this.virtualDelegate.getHeight(e),width:void 0,hasDynamicHeight:!!this.virtualDelegate.hasDynamicHeight&&this.virtualDelegate.hasDynamicHeight(e),lastDynamicHeightWidth:void 0,row:null,uri:void 0,dropTarget:!1,dragStartDisposable:g.JT.None,checkedDisposable:g.JT.None})));let h;0===e&&t>=this.items.length?(this.rangeMap=new v,this.rangeMap.splice(0,0,d),h=this.items,this.items=d):(this.rangeMap.splice(e,t,d),h=this.items.splice(e,t,...d));const u=i.length-t,m=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),f=_(l,u),b=p.e.intersect(m,f);for(let g=b.start;g<b.end;g++)this.updateItemInDOM(this.items[g],g);const C=p.e.relativeComplement(f,m);for(const g of C)for(let e=g.start;e<g.end;e++)this.removeItemFromDOM(e);const w=c.map((e=>_(e,u))),y=[{start:e,end:e+i.length},...w].map((e=>p.e.intersect(m,e))),S=this.getNextToLastElement(y);for(const g of y)for(let e=g.start;e<g.end;e++){const t=this.items[e],i=r.get(t.templateId),n=null==i?void 0:i.pop();this.insertItemInDOM(e,S,n)}for(const g of r.values())for(const e of g)this.cache.release(e);return this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),h.map((e=>e.element))}eventuallyUpdateScrollDimensions(){this._scrollHeight=this.contentHeight,this.rowsContainer.style.height=`${this._scrollHeight}px`,this.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=(0,s.jL)((()=>{this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight}),this.updateScrollWidth(),this.scrollableElementUpdateDisposable=null})))}eventuallyUpdateScrollWidth(){this.horizontalScrolling?this.scrollableElementWidthDelayer.trigger((()=>this.updateScrollWidth())):this.scrollableElementWidthDelayer.cancel()}updateScrollWidth(){if(!this.horizontalScrolling)return;let e=0;for(const t of this.items)void 0!==t.width&&(e=Math.max(e,t.width));this.scrollWidth=e,this.scrollableElement.setScrollDimensions({scrollWidth:0===e?0:e+10})}rerender(){if(this.supportDynamicHeights){for(const e of this.items)e.lastDynamicHeightWidth=void 0;this._rerender(this.lastRenderTop,this.lastRenderHeight)}}get length(){return this.items.length}get renderHeight(){return this.scrollableElement.getScrollDimensions().height}element(e){return this.items[e].element}domElement(e){const t=this.items[e].row;return t&&t.domNode}elementHeight(e){return this.items[e].size}elementTop(e){return this.rangeMap.positionAt(e)}indexAt(e){return this.rangeMap.indexAt(e)}indexAfter(e){return this.rangeMap.indexAfter(e)}layout(e,t){const i={height:"number"==typeof e?e:(0,s.If)(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,i.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(i),void 0!==t&&(this.renderWidth=t,this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight)),this.horizontalScrolling&&this.scrollableElement.setScrollDimensions({width:"number"==typeof t?t:(0,s.FK)(this.domNode)})}render(e,t,i,n,o,s=!1){const r=this.getRenderRange(t,i),a=p.e.relativeComplement(r,e),l=p.e.relativeComplement(e,r),c=this.getNextToLastElement(a);if(s){const t=p.e.intersect(e,r);for(let e=t.start;e<t.end;e++)this.updateItemInDOM(this.items[e],e)}for(const d of a)for(let e=d.start;e<d.end;e++)this.insertItemInDOM(e,c);for(const d of l)for(let e=d.start;e<d.end;e++)this.removeItemFromDOM(e);void 0!==n&&(this.rowsContainer.style.left=`-${n}px`),this.rowsContainer.style.top=`-${t}px`,this.horizontalScrolling&&void 0!==o&&(this.rowsContainer.style.width=`${Math.max(o,this.renderWidth)}px`),this.lastRenderTop=t,this.lastRenderHeight=i}insertItemInDOM(e,t,i){const n=this.items[e];n.row||(n.row=null!=i?i:this.cache.alloc(n.templateId));const o=this.accessibilityProvider.getRole(n.element)||"listitem";n.row.domNode.setAttribute("role",o);const r=this.accessibilityProvider.isChecked(n.element);if("boolean"==typeof r)n.row.domNode.setAttribute("aria-checked",String(!!r));else if(r){const e=e=>n.row.domNode.setAttribute("aria-checked",String(!!e));e(r.value),n.checkedDisposable=r.onDidChange(e)}n.row.domNode.parentElement||(t?this.rowsContainer.insertBefore(n.row.domNode,t):this.rowsContainer.appendChild(n.row.domNode)),this.updateItemInDOM(n,e);const a=this.renderers.get(n.templateId);if(!a)throw new Error(`No renderer found for template id ${n.templateId}`);null==a||a.renderElement(n.element,e,n.row.templateData,n.size);const l=this.dnd.getDragURI(n.element);n.dragStartDisposable.dispose(),n.row.domNode.draggable=!!l,l&&(n.dragStartDisposable=(0,s.nm)(n.row.domNode,"dragstart",(e=>this.onDragStart(n.element,l,e)))),this.horizontalScrolling&&(this.measureItemWidth(n),this.eventuallyUpdateScrollWidth())}measureItemWidth(e){if(!e.row||!e.row.domNode)return;e.row.domNode.style.width=n.isFirefox?"-moz-fit-content":"fit-content",e.width=(0,s.FK)(e.row.domNode);const t=window.getComputedStyle(e.row.domNode);t.paddingLeft&&(e.width+=parseFloat(t.paddingLeft)),t.paddingRight&&(e.width+=parseFloat(t.paddingRight)),e.row.domNode.style.width=""}updateItemInDOM(e,t){e.row.domNode.style.top=`${this.elementTop(t)}px`,this.setRowHeight&&(e.row.domNode.style.height=`${e.size}px`),this.setRowLineHeight&&(e.row.domNode.style.lineHeight=`${e.size}px`),e.row.domNode.setAttribute("data-index",`${t}`),e.row.domNode.setAttribute("data-last-element",t===this.length-1?"true":"false"),e.row.domNode.setAttribute("data-parity",t%2==0?"even":"odd"),e.row.domNode.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(e.element,t,this.length))),e.row.domNode.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(e.element,t))),e.row.domNode.setAttribute("id",this.getElementDomId(t)),e.row.domNode.classList.toggle("drop-target",e.dropTarget)}removeItemFromDOM(e){const t=this.items[e];if(t.dragStartDisposable.dispose(),t.checkedDisposable.dispose(),t.row){const i=this.renderers.get(t.templateId);i&&i.disposeElement&&i.disposeElement(t.element,e,t.row.templateData,t.size),this.cache.release(t.row),t.row=null}this.horizontalScrolling&&this.eventuallyUpdateScrollWidth()}getScrollTop(){return this.scrollableElement.getScrollPosition().scrollTop}setScrollTop(e,t){this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),this.scrollableElement.setScrollPosition({scrollTop:e,reuseAnimation:t})}get scrollTop(){return this.getScrollTop()}set scrollTop(e){this.setScrollTop(e)}get scrollHeight(){return this._scrollHeight+(this.horizontalScrolling?10:0)+this.additionalScrollHeight}get onMouseClick(){return u.ju.map(this.disposables.add(new r.Y(this.domNode,"click")).event,(e=>this.toMouseEvent(e)),this.disposables)}get onMouseDblClick(){return u.ju.map(this.disposables.add(new r.Y(this.domNode,"dblclick")).event,(e=>this.toMouseEvent(e)),this.disposables)}get onMouseMiddleClick(){return u.ju.filter(u.ju.map(this.disposables.add(new r.Y(this.domNode,"auxclick")).event,(e=>this.toMouseEvent(e)),this.disposables),(e=>1===e.browserEvent.button),this.disposables)}get onMouseDown(){return u.ju.map(this.disposables.add(new r.Y(this.domNode,"mousedown")).event,(e=>this.toMouseEvent(e)),this.disposables)}get onMouseOver(){return u.ju.map(this.disposables.add(new r.Y(this.domNode,"mouseover")).event,(e=>this.toMouseEvent(e)),this.disposables)}get onContextMenu(){return u.ju.any(u.ju.map(this.disposables.add(new r.Y(this.domNode,"contextmenu")).event,(e=>this.toMouseEvent(e)),this.disposables),u.ju.map(this.disposables.add(new r.Y(this.domNode,a.t.Contextmenu)).event,(e=>this.toGestureEvent(e)),this.disposables))}get onTouchStart(){return u.ju.map(this.disposables.add(new r.Y(this.domNode,"touchstart")).event,(e=>this.toTouchEvent(e)),this.disposables)}get onTap(){return u.ju.map(this.disposables.add(new r.Y(this.rowsContainer,a.t.Tap)).event,(e=>this.toGestureEvent(e)),this.disposables)}toMouseEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=void 0===t?void 0:this.items[t];return{browserEvent:e,index:t,element:i&&i.element}}toTouchEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=void 0===t?void 0:this.items[t];return{browserEvent:e,index:t,element:i&&i.element}}toGestureEvent(e){const t=this.getItemIndexFromEventTarget(e.initialTarget||null),i=void 0===t?void 0:this.items[t];return{browserEvent:e,index:t,element:i&&i.element}}toDragEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=void 0===t?void 0:this.items[t];return{browserEvent:e,index:t,element:i&&i.element}}onScroll(e){try{const t=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight);this.render(t,e.scrollTop,e.height,e.scrollLeft,e.scrollWidth),this.supportDynamicHeights&&this._rerender(e.scrollTop,e.height,e.inSmoothScrolling)}catch(t){throw console.error("Got bad scroll event:",e),t}}onTouchChange(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY}onDragStart(e,t,i){var n,r;if(!i.dataTransfer)return;const a=this.dnd.getDragElements(e);if(i.dataTransfer.effectAllowed="copyMove",i.dataTransfer.setData(o.g.TEXT,t),i.dataTransfer.setDragImage){let e;this.dnd.getDragLabel&&(e=this.dnd.getDragLabel(a,i)),void 0===e&&(e=String(a.length));const t=(0,s.$)(".monaco-drag-image");t.textContent=e,document.body.appendChild(t),i.dataTransfer.setDragImage(t,-10,-10),setTimeout((()=>document.body.removeChild(t)),0)}this.currentDragData=new y(a),o.P.CurrentDragAndDropData=new S(a),null===(r=(n=this.dnd).onDragStart)||void 0===r||r.call(n,this.currentDragData,i)}onDragOver(e){var t;if(e.browserEvent.preventDefault(),this.onDragLeaveTimeout.dispose(),o.P.CurrentDragAndDropData&&"vscode-ui"===o.P.CurrentDragAndDropData.getData())return!1;if(this.setupDragAndDropScrollTopAnimation(e.browserEvent),!e.browserEvent.dataTransfer)return!1;if(!this.currentDragData)if(o.P.CurrentDragAndDropData)this.currentDragData=o.P.CurrentDragAndDropData;else{if(!e.browserEvent.dataTransfer.types)return!1;this.currentDragData=new L}const i=this.dnd.onDragOver(this.currentDragData,e.element,e.index,e.browserEvent);if(this.canDrop="boolean"==typeof i?i:i.accept,!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;let n;if(e.browserEvent.dataTransfer.dropEffect="boolean"!=typeof i&&0===i.effect?"copy":"move",n="boolean"!=typeof i&&i.feedback?i.feedback:void 0===e.index?[-1]:[e.index],n=(0,c.EB)(n).filter((e=>e>=-1&&e<this.length)).sort(((e,t)=>e-t)),n=-1===n[0]?[-1]:n,s=this.currentDragFeedback,r=n,Array.isArray(s)&&Array.isArray(r)?(0,c.fS)(s,r):s===r)return!0;var s,r;if(this.currentDragFeedback=n,this.currentDragFeedbackDisposable.dispose(),-1===n[0])this.domNode.classList.add("drop-target"),this.rowsContainer.classList.add("drop-target"),this.currentDragFeedbackDisposable=(0,g.OF)((()=>{this.domNode.classList.remove("drop-target"),this.rowsContainer.classList.remove("drop-target")}));else{for(const e of n){const i=this.items[e];i.dropTarget=!0,null===(t=i.row)||void 0===t||t.domNode.classList.add("drop-target")}this.currentDragFeedbackDisposable=(0,g.OF)((()=>{var e;for(const t of n){const i=this.items[t];i.dropTarget=!1,null===(e=i.row)||void 0===e||e.domNode.classList.remove("drop-target")}}))}return!0}onDragLeave(e){var t,i;this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=(0,d.Vg)((()=>this.clearDragOverFeedback()),100),this.currentDragData&&(null===(i=(t=this.dnd).onDragLeave)||void 0===i||i.call(t,this.currentDragData,e.element,e.index,e.browserEvent))}onDrop(e){if(!this.canDrop)return;const t=this.currentDragData;this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.currentDragData=void 0,o.P.CurrentDragAndDropData=void 0,t&&e.browserEvent.dataTransfer&&(e.browserEvent.preventDefault(),t.update(e.browserEvent.dataTransfer),this.dnd.drop(t,e.element,e.index,e.browserEvent))}onDragEnd(e){var t,i;this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.currentDragData=void 0,o.P.CurrentDragAndDropData=void 0,null===(i=(t=this.dnd).onDragEnd)||void 0===i||i.call(t,e)}clearDragOverFeedback(){this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=g.JT.None}setupDragAndDropScrollTopAnimation(e){if(!this.dragOverAnimationDisposable){const e=(0,s.xQ)(this.domNode).top;this.dragOverAnimationDisposable=(0,s.jt)(this.animateDragAndDropScrollTop.bind(this,e))}this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationStopDisposable=(0,d.Vg)((()=>{this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}),1e3),this.dragOverMouseY=e.pageY}animateDragAndDropScrollTop(e){if(void 0===this.dragOverMouseY)return;const t=this.dragOverMouseY-e,i=this.renderHeight-35;t<35?this.scrollTop+=Math.max(-14,Math.floor(.3*(t-35))):t>i&&(this.scrollTop+=Math.min(14,Math.floor(.3*(t-i))))}teardownDragAndDropScrollTopAnimation(){this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}getItemIndexFromEventTarget(e){const t=this.scrollableElement.getDomNode();let i=e;for(;i instanceof HTMLElement&&i!==this.rowsContainer&&t.contains(i);){const e=i.getAttribute("data-index");if(e){const t=Number(e);if(!isNaN(t))return t}i=i.parentElement}}getRenderRange(e,t){return{start:this.rangeMap.indexAt(e),end:this.rangeMap.indexAfter(e+t-1)}}_rerender(e,t,i){const n=this.getRenderRange(e,t);let o,s;e===this.elementTop(n.start)?(o=n.start,s=0):n.end-n.start>1&&(o=n.start+1,s=this.elementTop(o)-e);let r=0;for(;;){const a=this.getRenderRange(e,t);let l=!1;for(let e=a.start;e<a.end;e++){const t=this.probeDynamicHeight(e);0!==t&&this.rangeMap.splice(e,1,[this.items[e]]),r+=t,l=l||0!==t}if(!l){0!==r&&this.eventuallyUpdateScrollDimensions();const t=p.e.relativeComplement(n,a);for(const e of t)for(let t=e.start;t<e.end;t++)this.items[t].row&&this.removeItemFromDOM(t);const l=p.e.relativeComplement(a,n);for(const e of l)for(let t=e.start;t<e.end;t++){const e=t+1,i=e<this.items.length?this.items[e].row:null,n=i?i.domNode:null;this.insertItemInDOM(t,n)}for(let e=a.start;e<a.end;e++)this.items[e].row&&this.updateItemInDOM(this.items[e],e);if("number"==typeof o){const t=this.scrollable.getFutureScrollPosition().scrollTop-e,n=this.elementTop(o)-s+t;this.setScrollTop(n,i)}return void this._onDidChangeContentHeight.fire(this.contentHeight)}}}probeDynamicHeight(e){var t,i,n;const o=this.items[e];if(this.virtualDelegate.getDynamicHeight){const e=this.virtualDelegate.getDynamicHeight(o.element);if(null!==e){const t=o.size;return o.size=e,o.lastDynamicHeightWidth=this.renderWidth,e-t}}if(!o.hasDynamicHeight||o.lastDynamicHeightWidth===this.renderWidth)return 0;if(this.virtualDelegate.hasDynamicHeight&&!this.virtualDelegate.hasDynamicHeight(o.element))return 0;const s=o.size;if(!this.setRowHeight&&o.row){const e=o.row.domNode.offsetHeight;return o.size=e,o.lastDynamicHeightWidth=this.renderWidth,e-s}const r=this.cache.alloc(o.templateId);r.domNode.style.height="",this.rowsContainer.appendChild(r.domNode);const a=this.renderers.get(o.templateId);return a&&(a.renderElement(o.element,e,r.templateData,void 0),null===(t=a.disposeElement)||void 0===t||t.call(a,o.element,e,r.templateData,void 0)),o.size=r.domNode.offsetHeight,null===(n=(i=this.virtualDelegate).setDynamicHeight)||void 0===n||n.call(i,o.element,o.size),o.lastDynamicHeightWidth=this.renderWidth,this.rowsContainer.removeChild(r.domNode),this.cache.release(r),o.size-s}getNextToLastElement(e){const t=e[e.length-1];if(!t)return null;const i=this.items[t.end];return i&&i.row?i.row.domNode:null}getElementDomId(e){return`${this.domId}_${e}`}dispose(){var e;if(this.items){for(const t of this.items)if(t.row){const i=this.renderers.get(t.row.templateId);i&&(null===(e=i.disposeElement)||void 0===e||e.call(i,t.element,-1,t.row.templateData,void 0),i.disposeTemplate(t.row.templateData))}this.items=[]}this.domNode&&this.domNode.parentNode&&this.domNode.parentNode.removeChild(this.domNode),(0,g.B9)(this.disposables)}}x.InstanceCount=0,C([h.H],x.prototype,"onMouseClick",null),C([h.H],x.prototype,"onMouseDblClick",null),C([h.H],x.prototype,"onMouseMiddleClick",null),C([h.H],x.prototype,"onMouseDown",null),C([h.H],x.prototype,"onMouseOver",null),C([h.H],x.prototype,"onContextMenu",null),C([h.H],x.prototype,"onTouchStart",null),C([h.H],x.prototype,"onTap",null)},69047:(e,t,i)=>{"use strict";i.d(t,{wD:()=>H,aV:()=>Q,sx:()=>W,AA:()=>w,iK:()=>M,cK:()=>I,hD:()=>T,wn:()=>B,Zo:()=>F});var n=i(65321),o=i(4850),s=i(59069),r=i(10553),a=i(85152);class l{constructor(e){this.spliceables=e}splice(e,t,i){this.spliceables.forEach((n=>n.splice(e,t,i)))}}var c=i(9488),d=i(15393),h=i(41264),u=i(49898),g=i(4669),p=i(48357),m=i(5976),f=i(59870),_=i(36248),v=i(1432),b=i(98401);class C extends Error{constructor(e,t){super(`ListError [${e}] ${t}`)}}var w,y,S=i(72010),L=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},k=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class x{constructor(e){this.trait=e,this.renderedElements=[]}get templateId(){return`template:${this.trait.name}`}renderTemplate(e){return e}renderElement(e,t,i){const n=this.renderedElements.findIndex((e=>e.templateData===i));if(n>=0){const e=this.renderedElements[n];this.trait.unrender(i),e.index=t}else{const e={index:t,templateData:i};this.renderedElements.push(e)}this.trait.renderIndex(t,i)}splice(e,t,i){const n=[];for(const o of this.renderedElements)o.index<e?n.push(o):o.index>=e+t&&n.push({index:o.index+i-t,templateData:o.templateData});this.renderedElements=n}renderIndexes(e){for(const{index:t,templateData:i}of this.renderedElements)e.indexOf(t)>-1&&this.trait.renderIndex(t,i)}disposeTemplate(e){const t=this.renderedElements.findIndex((t=>t.templateData===e));t<0||this.renderedElements.splice(t,1)}}class D{constructor(e){this._trait=e,this.length=0,this.indexes=[],this.sortedIndexes=[],this._onChange=new g.Q5,this.onChange=this._onChange.event}get name(){return this._trait}get renderer(){return new x(this)}splice(e,t,i){var n;t=Math.max(0,Math.min(t,this.length-e));const o=i.length-t,s=e+t,r=[...this.sortedIndexes.filter((t=>t<e)),...i.map(((t,i)=>t?i+e:-1)).filter((e=>-1!==e)),...this.sortedIndexes.filter((e=>e>=s)).map((e=>e+o))],a=this.length+o;if(this.sortedIndexes.length>0&&0===r.length&&a>0){const t=null!==(n=this.sortedIndexes.find((t=>t>=e)))&&void 0!==n?n:a-1;r.push(Math.min(t,a-1))}this.renderer.splice(e,t,i.length),this._set(r,r),this.length=a}renderIndex(e,t){t.classList.toggle(this._trait,this.contains(e))}unrender(e){e.classList.remove(this._trait)}set(e,t){return this._set(e,[...e].sort(K),t)}_set(e,t,i){const n=this.indexes,o=this.sortedIndexes;this.indexes=e,this.sortedIndexes=t;const s=U(o,e);return this.renderer.renderIndexes(s),this._onChange.fire({indexes:e,browserEvent:i}),n}get(){return this.indexes}contains(e){return(0,c.ry)(this.sortedIndexes,e,K)>=0}dispose(){(0,m.B9)(this._onChange)}}L([u.H],D.prototype,"renderer",null);class N extends D{constructor(e){super("selected"),this.setAriaSelected=e}renderIndex(e,t){super.renderIndex(e,t),this.setAriaSelected&&(this.contains(e)?t.setAttribute("aria-selected","true"):t.setAttribute("aria-selected","false"))}}class E{constructor(e,t,i){this.trait=e,this.view=t,this.identityProvider=i}splice(e,t,i){if(!this.identityProvider)return this.trait.splice(e,t,i.map((()=>!1)));const n=this.trait.get().map((e=>this.identityProvider.getId(this.view.element(e)).toString())),o=i.map((e=>n.indexOf(this.identityProvider.getId(e).toString())>-1));this.trait.splice(e,t,o)}}function I(e){return"INPUT"===e.tagName||"TEXTAREA"===e.tagName}function T(e){return!!e.classList.contains("monaco-editor")||!e.classList.contains("monaco-list")&&(!!e.parentElement&&T(e.parentElement))}function M(e){return!!("A"===e.tagName&&e.classList.contains("monaco-button")||"DIV"===e.tagName&&e.classList.contains("monaco-button-dropdown"))||!e.classList.contains("monaco-list")&&(!!e.parentElement&&M(e.parentElement))}class A{constructor(e,t,i){this.list=e,this.view=t,this.disposables=new m.SL,this.multipleSelectionDisposables=new m.SL,this.onKeyDown.filter((e=>3===e.keyCode)).on(this.onEnter,this,this.disposables),this.onKeyDown.filter((e=>16===e.keyCode)).on(this.onUpArrow,this,this.disposables),this.onKeyDown.filter((e=>18===e.keyCode)).on(this.onDownArrow,this,this.disposables),this.onKeyDown.filter((e=>11===e.keyCode)).on(this.onPageUpArrow,this,this.disposables),this.onKeyDown.filter((e=>12===e.keyCode)).on(this.onPageDownArrow,this,this.disposables),this.onKeyDown.filter((e=>9===e.keyCode)).on(this.onEscape,this,this.disposables),!1!==i.multipleSelectionSupport&&this.onKeyDown.filter((e=>(v.dz?e.metaKey:e.ctrlKey)&&31===e.keyCode)).on(this.onCtrlA,this,this.multipleSelectionDisposables)}get onKeyDown(){return this.disposables.add(g.ju.chain(this.disposables.add(new o.Y(this.view.domNode,"keydown")).event).filter((e=>!I(e.target))).map((e=>new s.y(e))))}updateOptions(e){void 0!==e.multipleSelectionSupport&&(this.multipleSelectionDisposables.clear(),e.multipleSelectionSupport&&this.onKeyDown.filter((e=>(v.dz?e.metaKey:e.ctrlKey)&&31===e.keyCode)).on(this.onCtrlA,this,this.multipleSelectionDisposables))}onEnter(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(this.list.getFocus(),e.browserEvent)}onUpArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusPrevious(1,!1,e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onDownArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusNext(1,!1,e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onPageUpArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusPreviousPage(e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onPageDownArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusNextPage(e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onCtrlA(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection((0,c.w6)(this.list.length),e.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus()}onEscape(e){this.list.getSelection().length&&(e.preventDefault(),e.stopPropagation(),this.list.setSelection([],e.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus())}dispose(){this.disposables.dispose(),this.multipleSelectionDisposables.dispose()}}L([u.H],A.prototype,"onKeyDown",null),function(e){e[e.Automatic=0]="Automatic",e[e.Trigger=1]="Trigger"}(w||(w={})),function(e){e[e.Idle=0]="Idle",e[e.Typing=1]="Typing"}(y||(y={}));const R=new class{mightProducePrintableCharacter(e){return!(e.ctrlKey||e.metaKey||e.altKey)&&(e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30||e.keyCode>=93&&e.keyCode<=102||e.keyCode>=80&&e.keyCode<=90)}};class O{constructor(e,t,i,n,o){this.list=e,this.view=t,this.keyboardNavigationLabelProvider=i,this.keyboardNavigationEventFilter=n,this.delegate=o,this.enabled=!1,this.state=y.Idle,this.mode=w.Automatic,this.triggered=!1,this.previouslyFocused=-1,this.enabledDisposables=new m.SL,this.disposables=new m.SL,this.updateOptions(e.options)}updateOptions(e){var t,i;null===(t=e.typeNavigationEnabled)||void 0===t||t?this.enable():this.disable(),this.mode=null!==(i=e.typeNavigationMode)&&void 0!==i?i:w.Automatic}enable(){if(this.enabled)return;let e=!1;const t=this.enabledDisposables.add(g.ju.chain(this.enabledDisposables.add(new o.Y(this.view.domNode,"keydown")).event)).filter((e=>!I(e.target))).filter((()=>this.mode===w.Automatic||this.triggered)).map((e=>new s.y(e))).filter((t=>e||this.keyboardNavigationEventFilter(t))).filter((e=>this.delegate.mightProducePrintableCharacter(e))).forEach(o.p).map((e=>e.browserEvent.key)).event,i=g.ju.debounce(t,(()=>null),800,void 0,void 0,this.enabledDisposables);g.ju.reduce(g.ju.any(t,i),((e,t)=>null===t?null:(e||"")+t),void 0,this.enabledDisposables)(this.onInput,this,this.enabledDisposables),i(this.onClear,this,this.enabledDisposables),t((()=>e=!0),void 0,this.enabledDisposables),i((()=>e=!1),void 0,this.enabledDisposables),this.enabled=!0,this.triggered=!1}disable(){this.enabled&&(this.enabledDisposables.clear(),this.enabled=!1,this.triggered=!1)}onClear(){var e;const t=this.list.getFocus();if(t.length>0&&t[0]===this.previouslyFocused){const i=null===(e=this.list.options.accessibilityProvider)||void 0===e?void 0:e.getAriaLabel(this.list.element(t[0]));i&&(0,a.Z9)(i)}this.previouslyFocused=-1}onInput(e){if(!e)return this.state=y.Idle,void(this.triggered=!1);const t=this.list.getFocus(),i=t.length>0?t[0]:0,n=this.state===y.Idle?1:0;this.state=y.Typing;for(let o=0;o<this.list.length;o++){const t=(i+o+n)%this.list.length,s=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(this.view.element(t)),r=s&&s.toString();if(void 0===r||(0,p.Ji)(e,r))return this.previouslyFocused=i,this.list.setFocus([t]),void this.list.reveal(t)}}dispose(){this.disable(),this.enabledDisposables.dispose(),this.disposables.dispose()}}class P{constructor(e,t){this.list=e,this.view=t,this.disposables=new m.SL;this.disposables.add(g.ju.chain(this.disposables.add(new o.Y(t.domNode,"keydown")).event)).filter((e=>!I(e.target))).map((e=>new s.y(e))).filter((e=>!(2!==e.keyCode||e.ctrlKey||e.metaKey||e.shiftKey||e.altKey))).on(this.onTab,this,this.disposables)}onTab(e){if(e.target!==this.view.domNode)return;const t=this.list.getFocus();if(0===t.length)return;const i=this.view.domElement(t[0]);if(!i)return;const n=i.querySelector("[tabIndex]");if(!(n&&n instanceof HTMLElement&&-1!==n.tabIndex))return;const o=window.getComputedStyle(n);"hidden"!==o.visibility&&"none"!==o.display&&(e.preventDefault(),e.stopPropagation(),n.focus())}dispose(){this.disposables.dispose()}}function F(e){return v.dz?e.browserEvent.metaKey:e.browserEvent.ctrlKey}function B(e){return e.browserEvent.shiftKey}const V={isSelectionSingleChangeEvent:F,isSelectionRangeChangeEvent:B};class W{constructor(e){this.list=e,this.disposables=new m.SL,this._onPointer=new g.Q5,this.onPointer=this._onPointer.event,!1!==e.options.multipleSelectionSupport&&(this.multipleSelectionController=this.list.options.multipleSelectionController||V),this.mouseSupport=void 0===e.options.mouseSupport||!!e.options.mouseSupport,this.mouseSupport&&(e.onMouseDown(this.onMouseDown,this,this.disposables),e.onContextMenu(this.onContextMenu,this,this.disposables),e.onMouseDblClick(this.onDoubleClick,this,this.disposables),e.onTouchStart(this.onMouseDown,this,this.disposables),this.disposables.add(r.o.addTarget(e.getHTMLElement()))),g.ju.any(e.onMouseClick,e.onMouseMiddleClick,e.onTap)(this.onViewPointer,this,this.disposables)}updateOptions(e){void 0!==e.multipleSelectionSupport&&(this.multipleSelectionController=void 0,e.multipleSelectionSupport&&(this.multipleSelectionController=this.list.options.multipleSelectionController||V))}isSelectionSingleChangeEvent(e){return!!this.multipleSelectionController&&this.multipleSelectionController.isSelectionSingleChangeEvent(e)}isSelectionRangeChangeEvent(e){return!!this.multipleSelectionController&&this.multipleSelectionController.isSelectionRangeChangeEvent(e)}isSelectionChangeEvent(e){return this.isSelectionSingleChangeEvent(e)||this.isSelectionRangeChangeEvent(e)}onMouseDown(e){T(e.browserEvent.target)||document.activeElement!==e.browserEvent.target&&this.list.domFocus()}onContextMenu(e){if(T(e.browserEvent.target))return;const t=void 0===e.index?[]:[e.index];this.list.setFocus(t,e.browserEvent)}onViewPointer(e){if(!this.mouseSupport)return;if(I(e.browserEvent.target)||T(e.browserEvent.target))return;const t=e.index;return void 0===t?(this.list.setFocus([],e.browserEvent),this.list.setSelection([],e.browserEvent),void this.list.setAnchor(void 0)):this.isSelectionRangeChangeEvent(e)||this.isSelectionChangeEvent(e)?this.changeSelection(e):(this.list.setFocus([t],e.browserEvent),this.list.setAnchor(t),(i=e.browserEvent)instanceof MouseEvent&&2===i.button||this.list.setSelection([t],e.browserEvent),void this._onPointer.fire(e));var i}onDoubleClick(e){if(I(e.browserEvent.target)||T(e.browserEvent.target))return;if(this.isSelectionChangeEvent(e))return;const t=this.list.getFocus();this.list.setSelection(t,e.browserEvent)}changeSelection(e){const t=e.index;let i=this.list.getAnchor();if(this.isSelectionRangeChangeEvent(e)){if(void 0===i){const e=this.list.getFocus()[0];i=null!=e?e:t,this.list.setAnchor(i)}const n=Math.min(i,t),o=Math.max(i,t),s=(0,c.w6)(n,o+1),r=this.list.getSelection(),a=function(e,t){const i=e.indexOf(t);if(-1===i)return[];const n=[];let o=i-1;for(;o>=0&&e[o]===t-(i-o);)n.push(e[o--]);n.reverse(),o=i;for(;o<e.length&&e[o]===t+(o-i);)n.push(e[o++]);return n}(U(r,[i]),i);if(0===a.length)return;const l=U(s,function(e,t){const i=[];let n=0,o=0;for(;n<e.length||o<t.length;)if(n>=e.length)i.push(t[o++]);else if(o>=t.length)i.push(e[n++]);else{if(e[n]===t[o]){n++,o++;continue}e[n]<t[o]?i.push(e[n++]):o++}return i}(r,a));this.list.setSelection(l,e.browserEvent),this.list.setFocus([t],e.browserEvent)}else if(this.isSelectionSingleChangeEvent(e)){const i=this.list.getSelection(),n=i.filter((e=>e!==t));this.list.setFocus([t]),this.list.setAnchor(t),i.length===n.length?this.list.setSelection([...n,t],e.browserEvent):this.list.setSelection(n,e.browserEvent)}}dispose(){this.disposables.dispose()}}class H{constructor(e,t){this.styleElement=e,this.selectorSuffix=t}style(e){const t=this.selectorSuffix&&`.${this.selectorSuffix}`,i=[];e.listBackground&&(e.listBackground.isOpaque()?i.push(`.monaco-list${t} .monaco-list-rows { background: ${e.listBackground}; }`):v.dz||console.warn(`List with id '${this.selectorSuffix}' was styled with a non-opaque background color. This will break sub-pixel antialiasing.`)),e.listFocusBackground&&(i.push(`.monaco-list${t}:focus .monaco-list-row.focused { background-color: ${e.listFocusBackground}; }`),i.push(`.monaco-list${t}:focus .monaco-list-row.focused:hover { background-color: ${e.listFocusBackground}; }`)),e.listFocusForeground&&i.push(`.monaco-list${t}:focus .monaco-list-row.focused { color: ${e.listFocusForeground}; }`),e.listActiveSelectionBackground&&(i.push(`.monaco-list${t}:focus .monaco-list-row.selected { background-color: ${e.listActiveSelectionBackground}; }`),i.push(`.monaco-list${t}:focus .monaco-list-row.selected:hover { background-color: ${e.listActiveSelectionBackground}; }`)),e.listActiveSelectionForeground&&i.push(`.monaco-list${t}:focus .monaco-list-row.selected { color: ${e.listActiveSelectionForeground}; }`),e.listActiveSelectionIconForeground&&i.push(`.monaco-list${t}:focus .monaco-list-row.selected .codicon { color: ${e.listActiveSelectionIconForeground}; }`),e.listFocusAndSelectionOutline&&i.push(`.monaco-list${t}:focus .monaco-list-row.selected { outline-color: ${e.listFocusAndSelectionOutline} !important; }`),e.listFocusAndSelectionBackground&&i.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${t}:focus .monaco-list-row.selected.focused { background-color: ${e.listFocusAndSelectionBackground}; }\n\t\t\t`),e.listFocusAndSelectionForeground&&i.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${t}:focus .monaco-list-row.selected.focused { color: ${e.listFocusAndSelectionForeground}; }\n\t\t\t`),e.listInactiveFocusForeground&&(i.push(`.monaco-list${t} .monaco-list-row.focused { color: ${e.listInactiveFocusForeground}; }`),i.push(`.monaco-list${t} .monaco-list-row.focused:hover { color: ${e.listInactiveFocusForeground}; }`)),e.listInactiveSelectionIconForeground&&i.push(`.monaco-list${t} .monaco-list-row.focused .codicon { color: ${e.listInactiveSelectionIconForeground}; }`),e.listInactiveFocusBackground&&(i.push(`.monaco-list${t} .monaco-list-row.focused { background-color: ${e.listInactiveFocusBackground}; }`),i.push(`.monaco-list${t} .monaco-list-row.focused:hover { background-color: ${e.listInactiveFocusBackground}; }`)),e.listInactiveSelectionBackground&&(i.push(`.monaco-list${t} .monaco-list-row.selected { background-color: ${e.listInactiveSelectionBackground}; }`),i.push(`.monaco-list${t} .monaco-list-row.selected:hover { background-color: ${e.listInactiveSelectionBackground}; }`)),e.listInactiveSelectionForeground&&i.push(`.monaco-list${t} .monaco-list-row.selected { color: ${e.listInactiveSelectionForeground}; }`),e.listHoverBackground&&i.push(`.monaco-list${t}:not(.drop-target) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${e.listHoverBackground}; }`),e.listHoverForeground&&i.push(`.monaco-list${t} .monaco-list-row:hover:not(.selected):not(.focused) { color: ${e.listHoverForeground}; }`),e.listSelectionOutline&&i.push(`.monaco-list${t} .monaco-list-row.selected { outline: 1px dotted ${e.listSelectionOutline}; outline-offset: -1px; }`),e.listFocusOutline&&i.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${t}:focus .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }\n\t\t\t\t.monaco-workbench.context-menu-visible .monaco-list${t}.last-focused .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }\n\t\t\t`),e.listInactiveFocusOutline&&i.push(`.monaco-list${t} .monaco-list-row.focused { outline: 1px dotted ${e.listInactiveFocusOutline}; outline-offset: -1px; }`),e.listHoverOutline&&i.push(`.monaco-list${t} .monaco-list-row:hover { outline: 1px dashed ${e.listHoverOutline}; outline-offset: -1px; }`),e.listDropBackground&&i.push(`\n\t\t\t\t.monaco-list${t}.drop-target,\n\t\t\t\t.monaco-list${t} .monaco-list-rows.drop-target,\n\t\t\t\t.monaco-list${t} .monaco-list-row.drop-target { background-color: ${e.listDropBackground} !important; color: inherit !important; }\n\t\t\t`),e.tableColumnsBorder&&i.push(`\n\t\t\t\t.monaco-table:hover > .monaco-split-view2,\n\t\t\t\t.monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\t\t\tborder-color: ${e.tableColumnsBorder};\n\t\t\t}`),e.tableOddRowsBackgroundColor&&i.push(`\n\t\t\t\t.monaco-table .monaco-list-row[data-parity=odd]:not(.focused):not(.selected):not(:hover) .monaco-table-tr,\n\t\t\t\t.monaco-table .monaco-list:not(:focus) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr,\n\t\t\t\t.monaco-table .monaco-list:not(.focused) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr {\n\t\t\t\t\tbackground-color: ${e.tableOddRowsBackgroundColor};\n\t\t\t\t}\n\t\t\t`),this.styleElement.textContent=i.join("\n")}}const z={listFocusBackground:h.Il.fromHex("#7FB0D0"),listActiveSelectionBackground:h.Il.fromHex("#0E639C"),listActiveSelectionForeground:h.Il.fromHex("#FFFFFF"),listActiveSelectionIconForeground:h.Il.fromHex("#FFFFFF"),listFocusAndSelectionOutline:h.Il.fromHex("#90C2F9"),listFocusAndSelectionBackground:h.Il.fromHex("#094771"),listFocusAndSelectionForeground:h.Il.fromHex("#FFFFFF"),listInactiveSelectionBackground:h.Il.fromHex("#3F3F46"),listInactiveSelectionIconForeground:h.Il.fromHex("#FFFFFF"),listHoverBackground:h.Il.fromHex("#2A2D2E"),listDropBackground:h.Il.fromHex("#383B3D"),treeIndentGuidesStroke:h.Il.fromHex("#a9a9a9"),tableColumnsBorder:h.Il.fromHex("#cccccc").transparent(.2),tableOddRowsBackgroundColor:h.Il.fromHex("#cccccc").transparent(.04)},j={keyboardSupport:!0,mouseSupport:!0,multipleSelectionSupport:!0,dnd:{getDragURI:()=>null,onDragStart(){},onDragOver:()=>!1,drop(){}}};function U(e,t){const i=[];let n=0,o=0;for(;n<e.length||o<t.length;)if(n>=e.length)i.push(t[o++]);else if(o>=t.length)i.push(e[n++]);else{if(e[n]===t[o]){i.push(e[n]),n++,o++;continue}e[n]<t[o]?i.push(e[n++]):i.push(t[o++])}return i}const K=(e,t)=>e-t;class ${constructor(e,t){this._templateId=e,this.renderers=t}get templateId(){return this._templateId}renderTemplate(e){return this.renderers.map((t=>t.renderTemplate(e)))}renderElement(e,t,i,n){let o=0;for(const s of this.renderers)s.renderElement(e,t,i[o++],n)}disposeElement(e,t,i,n){var o;let s=0;for(const r of this.renderers)null===(o=r.disposeElement)||void 0===o||o.call(r,e,t,i[s],n),s+=1}disposeTemplate(e){let t=0;for(const i of this.renderers)i.disposeTemplate(e[t++])}}class q{constructor(e){this.accessibilityProvider=e,this.templateId="a18n"}renderTemplate(e){return e}renderElement(e,t,i){const n=this.accessibilityProvider.getAriaLabel(e);n?i.setAttribute("aria-label",n):i.removeAttribute("aria-label");const o=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(e);"number"==typeof o?i.setAttribute("aria-level",`${o}`):i.removeAttribute("aria-level")}disposeTemplate(e){}}class G{constructor(e,t){this.list=e,this.dnd=t}getDragElements(e){const t=this.list.getSelectedElements();return t.indexOf(e)>-1?t:[e]}getDragURI(e){return this.dnd.getDragURI(e)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e,t)}onDragStart(e,t){var i,n;null===(n=(i=this.dnd).onDragStart)||void 0===n||n.call(i,e,t)}onDragOver(e,t,i,n){return this.dnd.onDragOver(e,t,i,n)}onDragLeave(e,t,i,n){var o,s;null===(s=(o=this.dnd).onDragLeave)||void 0===s||s.call(o,e,t,i,n)}onDragEnd(e){var t,i;null===(i=(t=this.dnd).onDragEnd)||void 0===i||i.call(t,e)}drop(e,t,i,n){this.dnd.drop(e,t,i,n)}}class Q{constructor(e,t,i,o,s=j){var r,a,c,d;this.user=e,this._options=s,this.focus=new D("focused"),this.anchor=new D("anchor"),this.eventBufferer=new g.E7,this._ariaLabel="",this.disposables=new m.SL,this._onDidDispose=new g.Q5,this.onDidDispose=this._onDidDispose.event;const h=this._options.accessibilityProvider&&this._options.accessibilityProvider.getWidgetRole?null===(r=this._options.accessibilityProvider)||void 0===r?void 0:r.getWidgetRole():"list";this.selection=new N("listbox"!==h),(0,_.jB)(s,z,!1);const u=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=s.accessibilityProvider,this.accessibilityProvider&&(u.push(new q(this.accessibilityProvider)),null===(c=(a=this.accessibilityProvider).onDidChangeActiveDescendant)||void 0===c||c.call(a,this.onDidChangeActiveDescendant,this,this.disposables)),o=o.map((e=>new $(e.templateId,[...u,e])));const p=Object.assign(Object.assign({},s),{dnd:s.dnd&&new G(this,s.dnd)});if(this.view=new S.Bv(t,i,o,p),this.view.domNode.setAttribute("role",h),s.styleController)this.styleController=s.styleController(this.view.domId);else{const e=(0,n.dS)(this.view.domNode);this.styleController=new H(e,this.view.domId)}if(this.spliceable=new l([new E(this.focus,this.view,s.identityProvider),new E(this.selection,this.view,s.identityProvider),new E(this.anchor,this.view,s.identityProvider),this.view]),this.disposables.add(this.focus),this.disposables.add(this.selection),this.disposables.add(this.anchor),this.disposables.add(this.view),this.disposables.add(this._onDidDispose),this.disposables.add(new P(this,this.view)),("boolean"!=typeof s.keyboardSupport||s.keyboardSupport)&&(this.keyboardController=new A(this,this.view,s),this.disposables.add(this.keyboardController)),s.keyboardNavigationLabelProvider){const e=s.keyboardNavigationDelegate||R;this.typeNavigationController=new O(this,this.view,s.keyboardNavigationLabelProvider,null!==(d=s.keyboardNavigationEventFilter)&&void 0!==d?d:()=>!0,e),this.disposables.add(this.typeNavigationController)}this.mouseController=this.createMouseController(s),this.disposables.add(this.mouseController),this.onDidChangeFocus(this._onFocusChange,this,this.disposables),this.onDidChangeSelection(this._onSelectionChange,this,this.disposables),this.accessibilityProvider&&(this.ariaLabel=this.accessibilityProvider.getWidgetAriaLabel()),!1!==this._options.multipleSelectionSupport&&this.view.domNode.setAttribute("aria-multiselectable","true")}get onDidChangeFocus(){return g.ju.map(this.eventBufferer.wrapEvent(this.focus.onChange),(e=>this.toListEvent(e)),this.disposables)}get onDidChangeSelection(){return g.ju.map(this.eventBufferer.wrapEvent(this.selection.onChange),(e=>this.toListEvent(e)),this.disposables)}get domId(){return this.view.domId}get onMouseClick(){return this.view.onMouseClick}get onMouseDblClick(){return this.view.onMouseDblClick}get onMouseMiddleClick(){return this.view.onMouseMiddleClick}get onPointer(){return this.mouseController.onPointer}get onMouseDown(){return this.view.onMouseDown}get onMouseOver(){return this.view.onMouseOver}get onTouchStart(){return this.view.onTouchStart}get onTap(){return this.view.onTap}get onContextMenu(){let e=!1;const t=this.disposables.add(g.ju.chain(this.disposables.add(new o.Y(this.view.domNode,"keydown")).event)).map((e=>new s.y(e))).filter((t=>e=58===t.keyCode||t.shiftKey&&68===t.keyCode)).map(o.p).filter((()=>!1)).event,i=this.disposables.add(g.ju.chain(this.disposables.add(new o.Y(this.view.domNode,"keyup")).event)).forEach((()=>e=!1)).map((e=>new s.y(e))).filter((e=>58===e.keyCode||e.shiftKey&&68===e.keyCode)).map(o.p).map((({browserEvent:e})=>{const t=this.getFocus(),i=t.length?t[0]:void 0;return{index:i,element:void 0!==i?this.view.element(i):void 0,anchor:void 0!==i?this.view.domElement(i):this.view.domNode,browserEvent:e}})).event,n=this.disposables.add(g.ju.chain(this.view.onContextMenu)).filter((t=>!e)).map((({element:e,index:t,browserEvent:i})=>({element:e,index:t,anchor:{x:i.pageX+1,y:i.pageY},browserEvent:i}))).event;return g.ju.any(t,i,n)}get onKeyDown(){return this.disposables.add(new o.Y(this.view.domNode,"keydown")).event}get onDidFocus(){return g.ju.signal(this.disposables.add(new o.Y(this.view.domNode,"focus",!0)).event)}createMouseController(e){return new W(this)}updateOptions(e={}){var t,i;this._options=Object.assign(Object.assign({},this._options),e),null===(t=this.typeNavigationController)||void 0===t||t.updateOptions(this._options),void 0!==this._options.multipleSelectionController&&(this._options.multipleSelectionSupport?this.view.domNode.setAttribute("aria-multiselectable","true"):this.view.domNode.removeAttribute("aria-multiselectable")),this.mouseController.updateOptions(e),null===(i=this.keyboardController)||void 0===i||i.updateOptions(e),this.view.updateOptions(e)}get options(){return this._options}splice(e,t,i=[]){if(e<0||e>this.view.length)throw new C(this.user,`Invalid start index: ${e}`);if(t<0)throw new C(this.user,`Invalid delete count: ${t}`);0===t&&0===i.length||this.eventBufferer.bufferEvents((()=>this.spliceable.splice(e,t,i)))}rerender(){this.view.rerender()}element(e){return this.view.element(e)}get length(){return this.view.length}get contentHeight(){return this.view.contentHeight}get scrollTop(){return this.view.getScrollTop()}set scrollTop(e){this.view.setScrollTop(e)}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){this._ariaLabel=e,this.view.domNode.setAttribute("aria-label",e)}domFocus(){this.view.domNode.focus({preventScroll:!0})}layout(e,t){this.view.layout(e,t)}setSelection(e,t){for(const i of e)if(i<0||i>=this.length)throw new C(this.user,`Invalid index ${i}`);this.selection.set(e,t)}getSelection(){return this.selection.get()}getSelectedElements(){return this.getSelection().map((e=>this.view.element(e)))}setAnchor(e){if(void 0!==e){if(e<0||e>=this.length)throw new C(this.user,`Invalid index ${e}`);this.anchor.set([e])}else this.anchor.set([])}getAnchor(){return(0,c.Xh)(this.anchor.get(),void 0)}getAnchorElement(){const e=this.getAnchor();return void 0===e?void 0:this.element(e)}setFocus(e,t){for(const i of e)if(i<0||i>=this.length)throw new C(this.user,`Invalid index ${i}`);this.focus.set(e,t)}focusNext(e=1,t=!1,i,n){if(0===this.length)return;const o=this.focus.get(),s=this.findNextIndex(o.length>0?o[0]+e:0,t,n);s>-1&&this.setFocus([s],i)}focusPrevious(e=1,t=!1,i,n){if(0===this.length)return;const o=this.focus.get(),s=this.findPreviousIndex(o.length>0?o[0]-e:0,t,n);s>-1&&this.setFocus([s],i)}focusNextPage(e,t){return k(this,void 0,void 0,(function*(){let i=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);i=0===i?0:i-1;const n=this.getFocus()[0];if(n!==i&&(void 0===n||i>n)){const o=this.findPreviousIndex(i,!1,t);o>-1&&n!==o?this.setFocus([o],e):this.setFocus([i],e)}else{const o=this.view.getScrollTop();let s=o+this.view.renderHeight;i>n&&(s-=this.view.elementHeight(i)),this.view.setScrollTop(s),this.view.getScrollTop()!==o&&(this.setFocus([]),yield(0,d.Vs)(0),yield this.focusNextPage(e,t))}}))}focusPreviousPage(e,t){return k(this,void 0,void 0,(function*(){let i;const n=this.view.getScrollTop();i=0===n?this.view.indexAt(n):this.view.indexAfter(n-1);const o=this.getFocus()[0];if(o!==i&&(void 0===o||o>=i)){const n=this.findNextIndex(i,!1,t);n>-1&&o!==n?this.setFocus([n],e):this.setFocus([i],e)}else{const i=n;this.view.setScrollTop(n-this.view.renderHeight),this.view.getScrollTop()!==i&&(this.setFocus([]),yield(0,d.Vs)(0),yield this.focusPreviousPage(e,t))}}))}focusLast(e,t){if(0===this.length)return;const i=this.findPreviousIndex(this.length-1,!1,t);i>-1&&this.setFocus([i],e)}focusFirst(e,t){this.focusNth(0,e,t)}focusNth(e,t,i){if(0===this.length)return;const n=this.findNextIndex(e,!1,i);n>-1&&this.setFocus([n],t)}findNextIndex(e,t=!1,i){for(let n=0;n<this.length;n++){if(e>=this.length&&!t)return-1;if(e%=this.length,!i||i(this.element(e)))return e;e++}return-1}findPreviousIndex(e,t=!1,i){for(let n=0;n<this.length;n++){if(e<0&&!t)return-1;if(e=(this.length+e%this.length)%this.length,!i||i(this.element(e)))return e;e--}return-1}getFocus(){return this.focus.get()}getFocusedElements(){return this.getFocus().map((e=>this.view.element(e)))}reveal(e,t){if(e<0||e>=this.length)throw new C(this.user,`Invalid index ${e}`);const i=this.view.getScrollTop(),n=this.view.elementTop(e),o=this.view.elementHeight(e);if((0,b.hj)(t)){const e=o-this.view.renderHeight;this.view.setScrollTop(e*(0,f.uZ)(t,0,1)+n)}else{const e=n+o,t=i+this.view.renderHeight;n<i&&e>=t||(n<i||e>=t&&o>=this.view.renderHeight?this.view.setScrollTop(n):e>=t&&this.view.setScrollTop(e-this.view.renderHeight))}}getHTMLElement(){return this.view.domNode}getElementID(e){return this.view.getElementDomId(e)}style(e){this.styleController.style(e)}toListEvent({indexes:e,browserEvent:t}){return{indexes:e,elements:e.map((e=>this.view.element(e))),browserEvent:t}}_onFocusChange(){const e=this.focus.get();this.view.domNode.classList.toggle("element-focused",e.length>0),this.onDidChangeActiveDescendant()}onDidChangeActiveDescendant(){var e;const t=this.focus.get();if(t.length>0){let i;(null===(e=this.accessibilityProvider)||void 0===e?void 0:e.getActiveDescendantId)&&(i=this.accessibilityProvider.getActiveDescendantId(this.view.element(t[0]))),this.view.domNode.setAttribute("aria-activedescendant",i||this.view.getElementDomId(t[0]))}else this.view.domNode.removeAttribute("aria-activedescendant")}_onSelectionChange(){const e=this.selection.get();this.view.domNode.classList.toggle("selection-none",0===e.length),this.view.domNode.classList.toggle("selection-single",1===e.length),this.view.domNode.classList.toggle("selection-multiple",e.length>1)}dispose(){this._onDidDispose.fire(),this.disposables.dispose(),this._onDidDispose.dispose()}}L([u.H],Q.prototype,"onDidChangeFocus",null),L([u.H],Q.prototype,"onDidChangeSelection",null),L([u.H],Q.prototype,"onContextMenu",null),L([u.H],Q.prototype,"onKeyDown",null),L([u.H],Q.prototype,"onDidFocus",null)},96542:(e,t,i)=>{"use strict";i.d(t,{S:()=>n});const n="monaco-mouse-cursor-text"},73098:(e,t,i)=>{"use strict";i.d(t,{g:()=>b,l:()=>u});var n=i(65321),o=i(4850),s=i(10553),r=i(15393),a=i(49898),l=i(4669),c=i(5976),d=i(1432),h=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r};var u;!function(e){e.North="north",e.South="south",e.East="east",e.West="west"}(u||(u={}));const g=new l.Q5;const p=new l.Q5;class m{constructor(){this.disposables=new c.SL}get onPointerMove(){return this.disposables.add(new o.Y(window,"mousemove")).event}get onPointerUp(){return this.disposables.add(new o.Y(window,"mouseup")).event}dispose(){this.disposables.dispose()}}h([a.H],m.prototype,"onPointerMove",null),h([a.H],m.prototype,"onPointerUp",null);class f{constructor(e){this.el=e,this.disposables=new c.SL}get onPointerMove(){return this.disposables.add(new o.Y(this.el,s.t.Change)).event}get onPointerUp(){return this.disposables.add(new o.Y(this.el,s.t.End)).event}dispose(){this.disposables.dispose()}}h([a.H],f.prototype,"onPointerMove",null),h([a.H],f.prototype,"onPointerUp",null);class _{constructor(e){this.factory=e}get onPointerMove(){return this.factory.onPointerMove}get onPointerUp(){return this.factory.onPointerUp}dispose(){}}h([a.H],_.prototype,"onPointerMove",null),h([a.H],_.prototype,"onPointerUp",null);const v="pointer-events-disabled";class b extends c.JT{constructor(e,t,i){super(),this.hoverDelay=300,this.hoverDelayer=this._register(new r.vp(this.hoverDelay)),this._state=3,this.onDidEnablementChange=this._register(new l.Q5),this._onDidStart=this._register(new l.Q5),this._onDidChange=this._register(new l.Q5),this._onDidReset=this._register(new l.Q5),this._onDidEnd=this._register(new l.Q5),this.orthogonalStartSashDisposables=this._register(new c.SL),this.orthogonalStartDragHandleDisposables=this._register(new c.SL),this.orthogonalEndSashDisposables=this._register(new c.SL),this.orthogonalEndDragHandleDisposables=this._register(new c.SL),this.onDidStart=this._onDidStart.event,this.onDidChange=this._onDidChange.event,this.onDidReset=this._onDidReset.event,this.onDidEnd=this._onDidEnd.event,this.linkedSash=void 0,this.el=(0,n.R3)(e,(0,n.$)(".monaco-sash")),i.orthogonalEdge&&this.el.classList.add(`orthogonal-edge-${i.orthogonalEdge}`),d.dz&&this.el.classList.add("mac");const a=this._register(new o.Y(this.el,"mousedown")).event;this._register(a((e=>this.onPointerStart(e,new m)),this));const h=this._register(new o.Y(this.el,"dblclick")).event;this._register(h(this.onPointerDoublePress,this));const u=this._register(new o.Y(this.el,"mouseenter")).event;this._register(u((()=>b.onMouseEnter(this))));const _=this._register(new o.Y(this.el,"mouseleave")).event;this._register(_((()=>b.onMouseLeave(this)))),this._register(s.o.addTarget(this.el));const v=l.ju.map(this._register(new o.Y(this.el,s.t.Start)).event,(e=>{var t;return Object.assign(Object.assign({},e),{target:null!==(t=e.initialTarget)&&void 0!==t?t:null})}));this._register(v((e=>this.onPointerStart(e,new f(this.el))),this));const C=this._register(new o.Y(this.el,s.t.Tap)).event,w=l.ju.map(l.ju.filter(l.ju.debounce(C,((e,t)=>{var i;return{event:t,count:(null!==(i=null==e?void 0:e.count)&&void 0!==i?i:0)+1}}),250),(({count:e})=>2===e)),(({event:e})=>{var t;return Object.assign(Object.assign({},e),{target:null!==(t=e.initialTarget)&&void 0!==t?t:null})}));this._register(w(this.onPointerDoublePress,this)),"number"==typeof i.size?(this.size=i.size,0===i.orientation?this.el.style.width=`${this.size}px`:this.el.style.height=`${this.size}px`):(this.size=4,this._register(g.event((e=>{this.size=e,this.layout()})))),this._register(p.event((e=>this.hoverDelay=e))),this.layoutProvider=t,this.orthogonalStartSash=i.orthogonalStartSash,this.orthogonalEndSash=i.orthogonalEndSash,this.orientation=i.orientation||0,1===this.orientation?(this.el.classList.add("horizontal"),this.el.classList.remove("vertical")):(this.el.classList.remove("horizontal"),this.el.classList.add("vertical")),this.el.classList.toggle("debug",false),this.layout()}get state(){return this._state}get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}set state(e){this._state!==e&&(this.el.classList.toggle("disabled",0===e),this.el.classList.toggle("minimum",1===e),this.el.classList.toggle("maximum",2===e),this._state=e,this.onDidEnablementChange.fire(e))}set orthogonalStartSash(e){if(this.orthogonalStartDragHandleDisposables.clear(),this.orthogonalStartSashDisposables.clear(),e){const t=t=>{this.orthogonalStartDragHandleDisposables.clear(),0!==t&&(this._orthogonalStartDragHandle=(0,n.R3)(this.el,(0,n.$)(".orthogonal-drag-handle.start")),this.orthogonalStartDragHandleDisposables.add((0,c.OF)((()=>this._orthogonalStartDragHandle.remove()))),this.orthogonalStartDragHandleDisposables.add(new o.Y(this._orthogonalStartDragHandle,"mouseenter")).event((()=>b.onMouseEnter(e)),void 0,this.orthogonalStartDragHandleDisposables),this.orthogonalStartDragHandleDisposables.add(new o.Y(this._orthogonalStartDragHandle,"mouseleave")).event((()=>b.onMouseLeave(e)),void 0,this.orthogonalStartDragHandleDisposables))};this.orthogonalStartSashDisposables.add(e.onDidEnablementChange.event(t,this)),t(e.state)}this._orthogonalStartSash=e}set orthogonalEndSash(e){if(this.orthogonalEndDragHandleDisposables.clear(),this.orthogonalEndSashDisposables.clear(),e){const t=t=>{this.orthogonalEndDragHandleDisposables.clear(),0!==t&&(this._orthogonalEndDragHandle=(0,n.R3)(this.el,(0,n.$)(".orthogonal-drag-handle.end")),this.orthogonalEndDragHandleDisposables.add((0,c.OF)((()=>this._orthogonalEndDragHandle.remove()))),this.orthogonalEndDragHandleDisposables.add(new o.Y(this._orthogonalEndDragHandle,"mouseenter")).event((()=>b.onMouseEnter(e)),void 0,this.orthogonalEndDragHandleDisposables),this.orthogonalEndDragHandleDisposables.add(new o.Y(this._orthogonalEndDragHandle,"mouseleave")).event((()=>b.onMouseLeave(e)),void 0,this.orthogonalEndDragHandleDisposables))};this.orthogonalEndSashDisposables.add(e.onDidEnablementChange.event(t,this)),t(e.state)}this._orthogonalEndSash=e}onPointerStart(e,t){n.zB.stop(e);let i=!1;if(!e.__orthogonalSashEvent){const n=this.getOrthogonalSash(e);n&&(i=!0,e.__orthogonalSashEvent=!0,n.onPointerStart(e,new _(t)))}if(this.linkedSash&&!e.__linkedSashEvent&&(e.__linkedSashEvent=!0,this.linkedSash.onPointerStart(e,new _(t))),!this.state)return;const o=(0,n.H$)("iframe");for(const n of o)n.classList.add(v);const s=e.pageX,r=e.pageY,a=e.altKey,l={startX:s,currentX:s,startY:r,currentY:r,altKey:a};this.el.classList.add("active"),this._onDidStart.fire(l);const h=(0,n.dS)(this.el),u=()=>{let e="";e=i?"all-scroll":1===this.orientation?1===this.state?"s-resize":2===this.state?"n-resize":d.dz?"row-resize":"ns-resize":1===this.state?"e-resize":2===this.state?"w-resize":d.dz?"col-resize":"ew-resize",h.textContent=`* { cursor: ${e} !important; }`},g=new c.SL;u(),i||this.onDidEnablementChange.event(u,null,g);t.onPointerMove((e=>{n.zB.stop(e,!1);const t={startX:s,currentX:e.pageX,startY:r,currentY:e.pageY,altKey:a};this._onDidChange.fire(t)}),null,g),t.onPointerUp((e=>{n.zB.stop(e,!1),this.el.removeChild(h),this.el.classList.remove("active"),this._onDidEnd.fire(),g.dispose();for(const t of o)t.classList.remove(v)}),null,g),g.add(t)}onPointerDoublePress(e){const t=this.getOrthogonalSash(e);t&&t._onDidReset.fire(),this.linkedSash&&this.linkedSash._onDidReset.fire(),this._onDidReset.fire()}static onMouseEnter(e,t=!1){e.el.classList.contains("active")?(e.hoverDelayer.cancel(),e.el.classList.add("hover")):e.hoverDelayer.trigger((()=>e.el.classList.add("hover")),e.hoverDelay).then(void 0,(()=>{})),!t&&e.linkedSash&&b.onMouseEnter(e.linkedSash,!0)}static onMouseLeave(e,t=!1){e.hoverDelayer.cancel(),e.el.classList.remove("hover"),!t&&e.linkedSash&&b.onMouseLeave(e.linkedSash,!0)}clearSashHoverState(){b.onMouseLeave(this)}layout(){if(0===this.orientation){const e=this.layoutProvider;this.el.style.left=e.getVerticalSashLeft(this)-this.size/2+"px",e.getVerticalSashTop&&(this.el.style.top=e.getVerticalSashTop(this)+"px"),e.getVerticalSashHeight&&(this.el.style.height=e.getVerticalSashHeight(this)+"px")}else{const e=this.layoutProvider;this.el.style.top=e.getHorizontalSashTop(this)-this.size/2+"px",e.getHorizontalSashLeft&&(this.el.style.left=e.getHorizontalSashLeft(this)+"px"),e.getHorizontalSashWidth&&(this.el.style.width=e.getHorizontalSashWidth(this)+"px")}}getOrthogonalSash(e){if(e.target&&e.target instanceof HTMLElement)return e.target.classList.contains("orthogonal-drag-handle")?e.target.classList.contains("start")?this.orthogonalStartSash:this.orthogonalEndSash:void 0}dispose(){super.dispose(),this.el.remove()}}},63161:(e,t,i)=>{"use strict";i.d(t,{s$:()=>D,NB:()=>k,$Z:()=>x});var n=i(16268),o=i(65321),s=i(38626),r=i(7317),a=i(93911),l=i(93794),c=i(15393);const d=11;class h extends l.${constructor(e){super(),this._onActivate=e.onActivate,this.bgDomNode=document.createElement("div"),this.bgDomNode.className="arrow-background",this.bgDomNode.style.position="absolute",this.bgDomNode.style.width=e.bgWidth+"px",this.bgDomNode.style.height=e.bgHeight+"px",void 0!==e.top&&(this.bgDomNode.style.top="0px"),void 0!==e.left&&(this.bgDomNode.style.left="0px"),void 0!==e.bottom&&(this.bgDomNode.style.bottom="0px"),void 0!==e.right&&(this.bgDomNode.style.right="0px"),this.domNode=document.createElement("div"),this.domNode.className=e.className,this.domNode.classList.add(...e.icon.classNamesArray),this.domNode.style.position="absolute",this.domNode.style.width="11px",this.domNode.style.height="11px",void 0!==e.top&&(this.domNode.style.top=e.top+"px"),void 0!==e.left&&(this.domNode.style.left=e.left+"px"),void 0!==e.bottom&&(this.domNode.style.bottom=e.bottom+"px"),void 0!==e.right&&(this.domNode.style.right=e.right+"px"),this._pointerMoveMonitor=this._register(new a.C),this._register(o.mu(this.bgDomNode,o.tw.POINTER_DOWN,(e=>this._arrowPointerDown(e)))),this._register(o.mu(this.domNode,o.tw.POINTER_DOWN,(e=>this._arrowPointerDown(e)))),this._pointerdownRepeatTimer=this._register(new c.zh),this._pointerdownScheduleRepeatTimer=this._register(new c._F)}_arrowPointerDown(e){if(!(e.target&&e.target instanceof Element))return;this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet((()=>{this._pointerdownRepeatTimer.cancelAndSet((()=>this._onActivate()),1e3/24)}),200),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,(e=>{}),(()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()})),e.preventDefault()}}var u=i(5976);class g extends u.JT{constructor(e,t,i){super(),this._visibility=e,this._visibleClassName=t,this._invisibleClassName=i,this._domNode=null,this._isVisible=!1,this._isNeeded=!1,this._rawShouldBeVisible=!1,this._shouldBeVisible=!1,this._revealTimer=this._register(new c._F)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this._updateShouldBeVisible())}setShouldBeVisible(e){this._rawShouldBeVisible=e,this._updateShouldBeVisible()}_applyVisibilitySetting(){return 2!==this._visibility&&(3===this._visibility||this._rawShouldBeVisible)}_updateShouldBeVisible(){const e=this._applyVisibilitySetting();this._shouldBeVisible!==e&&(this._shouldBeVisible=e,this.ensureVisibility())}setIsNeeded(e){this._isNeeded!==e&&(this._isNeeded=e,this.ensureVisibility())}setDomNode(e){this._domNode=e,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)}ensureVisibility(){this._isNeeded?this._shouldBeVisible?this._reveal():this._hide(!0):this._hide(!1)}_reveal(){this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet((()=>{var e;null===(e=this._domNode)||void 0===e||e.setClassName(this._visibleClassName)}),0))}_hide(e){var t;this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,null===(t=this._domNode)||void 0===t||t.setClassName(this._invisibleClassName+(e?" fade":"")))}}var p=i(1432);class m extends l.${constructor(e){super(),this._lazyRender=e.lazyRender,this._host=e.host,this._scrollable=e.scrollable,this._scrollByPage=e.scrollByPage,this._scrollbarState=e.scrollbarState,this._visibilityController=this._register(new g(e.visibility,"visible scrollbar "+e.extraScrollbarClassName,"invisible scrollbar "+e.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._pointerMoveMonitor=this._register(new a.C),this._shouldRender=!0,this.domNode=(0,s.X)(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition("absolute"),this._register(o.nm(this.domNode.domNode,o.tw.POINTER_DOWN,(e=>this._domNodePointerDown(e))))}_createArrow(e){const t=this._register(new h(e));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)}_createSlider(e,t,i,n){this.slider=(0,s.X)(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(e),this.slider.setLeft(t),"number"==typeof i&&this.slider.setWidth(i),"number"==typeof n&&this.slider.setHeight(n),this.slider.setLayerHinting(!0),this.slider.setContain("strict"),this.domNode.domNode.appendChild(this.slider.domNode),this._register(o.nm(this.slider.domNode,o.tw.POINTER_DOWN,(e=>{0===e.button&&(e.preventDefault(),this._sliderPointerDown(e))}))),this.onclick(this.slider.domNode,(e=>{e.leftButton&&e.stopPropagation()}))}_onElementSize(e){return this._scrollbarState.setVisibleSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollSize(e){return this._scrollbarState.setScrollSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollPosition(e){return this._scrollbarState.setScrollPosition(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(!0)}beginHide(){this._visibilityController.setShouldBeVisible(!1)}render(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}_domNodePointerDown(e){e.target===this.domNode.domNode&&this._onPointerDown(e)}delegatePointerDown(e){const t=this.domNode.domNode.getClientRects()[0].top,i=t+this._scrollbarState.getSliderPosition(),n=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),o=this._sliderPointerPosition(e);i<=o&&o<=n?0===e.button&&(e.preventDefault(),this._sliderPointerDown(e)):this._onPointerDown(e)}_onPointerDown(e){let t,i;if(e.target===this.domNode.domNode&&"number"==typeof e.offsetX&&"number"==typeof e.offsetY)t=e.offsetX,i=e.offsetY;else{const n=o.i(this.domNode.domNode);t=e.pageX-n.left,i=e.pageY-n.top}const n=this._pointerDownRelativePosition(t,i);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(n):this._scrollbarState.getDesiredScrollPositionFromOffset(n)),0===e.button&&(e.preventDefault(),this._sliderPointerDown(e))}_sliderPointerDown(e){if(!(e.target&&e.target instanceof Element))return;const t=this._sliderPointerPosition(e),i=this._sliderOrthogonalPointerPosition(e),n=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,(e=>{const o=this._sliderOrthogonalPointerPosition(e),s=Math.abs(o-i);if(p.ED&&s>140)return void this._setDesiredScrollPositionNow(n.getScrollPosition());const r=this._sliderPointerPosition(e)-t;this._setDesiredScrollPositionNow(n.getDesiredScrollPositionFromDelta(r))}),(()=>{this.slider.toggleClassName("active",!1),this._host.onDragEnd()})),this._host.onDragStart()}_setDesiredScrollPositionNow(e){const t={};this.writeScrollPosition(t,e),this._scrollable.setScrollPositionNow(t)}updateScrollbarSize(e){this._updateScrollbarSize(e),this._scrollbarState.setScrollbarSize(e),this._shouldRender=!0,this._lazyRender||this.render()}isNeeded(){return this._scrollbarState.isNeeded()}}class f{constructor(e,t,i,n,o,s){this._scrollbarSize=Math.round(t),this._oppositeScrollbarSize=Math.round(i),this._arrowSize=Math.round(e),this._visibleSize=n,this._scrollSize=o,this._scrollPosition=s,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}clone(){return new f(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}setVisibleSize(e){const t=Math.round(e);return this._visibleSize!==t&&(this._visibleSize=t,this._refreshComputedValues(),!0)}setScrollSize(e){const t=Math.round(e);return this._scrollSize!==t&&(this._scrollSize=t,this._refreshComputedValues(),!0)}setScrollPosition(e){const t=Math.round(e);return this._scrollPosition!==t&&(this._scrollPosition=t,this._refreshComputedValues(),!0)}setScrollbarSize(e){this._scrollbarSize=Math.round(e)}setOppositeScrollbarSize(e){this._oppositeScrollbarSize=Math.round(e)}static _computeValues(e,t,i,n,o){const s=Math.max(0,i-e),r=Math.max(0,s-2*t),a=n>0&&n>i;if(!a)return{computedAvailableSize:Math.round(s),computedIsNeeded:a,computedSliderSize:Math.round(r),computedSliderRatio:0,computedSliderPosition:0};const l=Math.round(Math.max(20,Math.floor(i*r/n))),c=(r-l)/(n-i),d=o*c;return{computedAvailableSize:Math.round(s),computedIsNeeded:a,computedSliderSize:Math.round(l),computedSliderRatio:c,computedSliderPosition:Math.round(d)}}_refreshComputedValues(){const e=f._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=e.computedAvailableSize,this._computedIsNeeded=e.computedIsNeeded,this._computedSliderSize=e.computedSliderSize,this._computedSliderRatio=e.computedSliderRatio,this._computedSliderPosition=e.computedSliderPosition}getArrowSize(){return this._arrowSize}getScrollPosition(){return this._scrollPosition}getRectangleLargeSize(){return this._computedAvailableSize}getRectangleSmallSize(){return this._scrollbarSize}isNeeded(){return this._computedIsNeeded}getSliderSize(){return this._computedSliderSize}getSliderPosition(){return this._computedSliderPosition}getDesiredScrollPositionFromOffset(e){if(!this._computedIsNeeded)return 0;const t=e-this._arrowSize-this._computedSliderSize/2;return Math.round(t/this._computedSliderRatio)}getDesiredScrollPositionFromOffsetPaged(e){if(!this._computedIsNeeded)return 0;const t=e-this._arrowSize;let i=this._scrollPosition;return t<this._computedSliderPosition?i-=this._visibleSize:i+=this._visibleSize,i}getDesiredScrollPositionFromDelta(e){if(!this._computedIsNeeded)return 0;const t=this._computedSliderPosition+e;return Math.round(t/this._computedSliderRatio)}}var _=i(73046);class v extends m{constructor(e,t,i){const n=e.getScrollDimensions(),o=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:i,scrollbarState:new f(t.horizontalHasArrows?t.arrowSize:0,2===t.horizontal?0:t.horizontalScrollbarSize,2===t.vertical?0:t.verticalScrollbarSize,n.width,n.scrollWidth,o.scrollLeft),visibility:t.horizontal,extraScrollbarClassName:"horizontal",scrollable:e,scrollByPage:t.scrollByPage}),t.horizontalHasArrows){const e=(t.arrowSize-d)/2,i=(t.horizontalScrollbarSize-d)/2;this._createArrow({className:"scra",icon:_.lA.scrollbarButtonLeft,top:i,left:e,bottom:void 0,right:void 0,bgWidth:t.arrowSize,bgHeight:t.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new r.q(null,1,0))}),this._createArrow({className:"scra",icon:_.lA.scrollbarButtonRight,top:i,left:void 0,bottom:void 0,right:e,bgWidth:t.arrowSize,bgHeight:t.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new r.q(null,-1,0))})}this._createSlider(Math.floor((t.horizontalScrollbarSize-t.horizontalSliderSize)/2),0,void 0,t.horizontalSliderSize)}_updateSlider(e,t){this.slider.setWidth(e),this.slider.setLeft(t)}_renderDomNode(e,t){this.domNode.setWidth(e),this.domNode.setHeight(t),this.domNode.setLeft(0),this.domNode.setBottom(0)}onDidScroll(e){return this._shouldRender=this._onElementScrollSize(e.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(e.width)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(e,t){return e}_sliderPointerPosition(e){return e.pageX}_sliderOrthogonalPointerPosition(e){return e.pageY}_updateScrollbarSize(e){this.slider.setHeight(e)}writeScrollPosition(e,t){e.scrollLeft=t}updateOptions(e){this.updateScrollbarSize(2===e.horizontal?0:e.horizontalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(2===e.vertical?0:e.verticalScrollbarSize),this._visibilityController.setVisibility(e.horizontal),this._scrollByPage=e.scrollByPage}}class b extends m{constructor(e,t,i){const n=e.getScrollDimensions(),o=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:i,scrollbarState:new f(t.verticalHasArrows?t.arrowSize:0,2===t.vertical?0:t.verticalScrollbarSize,0,n.height,n.scrollHeight,o.scrollTop),visibility:t.vertical,extraScrollbarClassName:"vertical",scrollable:e,scrollByPage:t.scrollByPage}),t.verticalHasArrows){const e=(t.arrowSize-d)/2,i=(t.verticalScrollbarSize-d)/2;this._createArrow({className:"scra",icon:_.lA.scrollbarButtonUp,top:e,left:i,bottom:void 0,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize,onActivate:()=>this._host.onMouseWheel(new r.q(null,0,1))}),this._createArrow({className:"scra",icon:_.lA.scrollbarButtonDown,top:void 0,left:i,bottom:e,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize,onActivate:()=>this._host.onMouseWheel(new r.q(null,0,-1))})}this._createSlider(0,Math.floor((t.verticalScrollbarSize-t.verticalSliderSize)/2),t.verticalSliderSize,void 0)}_updateSlider(e,t){this.slider.setHeight(e),this.slider.setTop(t)}_renderDomNode(e,t){this.domNode.setWidth(t),this.domNode.setHeight(e),this.domNode.setRight(0),this.domNode.setTop(0)}onDidScroll(e){return this._shouldRender=this._onElementScrollSize(e.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(e.height)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(e,t){return t}_sliderPointerPosition(e){return e.pageY}_sliderOrthogonalPointerPosition(e){return e.pageX}_updateScrollbarSize(e){this.slider.setWidth(e)}writeScrollPosition(e,t){e.scrollTop=t}updateOptions(e){this.updateScrollbarSize(2===e.vertical?0:e.verticalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(0),this._visibilityController.setVisibility(e.vertical),this._scrollByPage=e.scrollByPage}}var C=i(4669),w=i(76633);class y{constructor(e,t,i){this.timestamp=e,this.deltaX=t,this.deltaY=i,this.score=0}}class S{constructor(){this._capacity=5,this._memory=[],this._front=-1,this._rear=-1}isPhysicalMouseWheel(){if(-1===this._front&&-1===this._rear)return!1;let e=1,t=0,i=1,n=this._rear;for(;;){const o=n===this._front?e:Math.pow(2,-i);if(e-=o,t+=this._memory[n].score*o,n===this._front)break;n=(this._capacity+n-1)%this._capacity,i++}return t<=.5}accept(e,t,i){const n=new y(e,t,i);n.score=this._computeScore(n),-1===this._front&&-1===this._rear?(this._memory[0]=n,this._front=0,this._rear=0):(this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=n)}_computeScore(e){if(Math.abs(e.deltaX)>0&&Math.abs(e.deltaY)>0)return 1;let t=.5;-1===this._front&&-1===this._rear||this._memory[this._rear];return this._isAlmostInt(e.deltaX)&&this._isAlmostInt(e.deltaY)||(t+=.25),Math.min(Math.max(t,0),1)}_isAlmostInt(e){return Math.abs(Math.round(e)-e)<.01}}S.INSTANCE=new S;class L extends l.${constructor(e,t,i){super(),this._onScroll=this._register(new C.Q5),this.onScroll=this._onScroll.event,this._onWillScroll=this._register(new C.Q5),e.style.overflow="hidden",this._options=function(e){const t={lazyRender:void 0!==e.lazyRender&&e.lazyRender,className:void 0!==e.className?e.className:"",useShadows:void 0===e.useShadows||e.useShadows,handleMouseWheel:void 0===e.handleMouseWheel||e.handleMouseWheel,flipAxes:void 0!==e.flipAxes&&e.flipAxes,consumeMouseWheelIfScrollbarIsNeeded:void 0!==e.consumeMouseWheelIfScrollbarIsNeeded&&e.consumeMouseWheelIfScrollbarIsNeeded,alwaysConsumeMouseWheel:void 0!==e.alwaysConsumeMouseWheel&&e.alwaysConsumeMouseWheel,scrollYToX:void 0!==e.scrollYToX&&e.scrollYToX,mouseWheelScrollSensitivity:void 0!==e.mouseWheelScrollSensitivity?e.mouseWheelScrollSensitivity:1,fastScrollSensitivity:void 0!==e.fastScrollSensitivity?e.fastScrollSensitivity:5,scrollPredominantAxis:void 0===e.scrollPredominantAxis||e.scrollPredominantAxis,mouseWheelSmoothScroll:void 0===e.mouseWheelSmoothScroll||e.mouseWheelSmoothScroll,arrowSize:void 0!==e.arrowSize?e.arrowSize:11,listenOnDomNode:void 0!==e.listenOnDomNode?e.listenOnDomNode:null,horizontal:void 0!==e.horizontal?e.horizontal:1,horizontalScrollbarSize:void 0!==e.horizontalScrollbarSize?e.horizontalScrollbarSize:10,horizontalSliderSize:void 0!==e.horizontalSliderSize?e.horizontalSliderSize:0,horizontalHasArrows:void 0!==e.horizontalHasArrows&&e.horizontalHasArrows,vertical:void 0!==e.vertical?e.vertical:1,verticalScrollbarSize:void 0!==e.verticalScrollbarSize?e.verticalScrollbarSize:10,verticalHasArrows:void 0!==e.verticalHasArrows&&e.verticalHasArrows,verticalSliderSize:void 0!==e.verticalSliderSize?e.verticalSliderSize:0,scrollByPage:void 0!==e.scrollByPage&&e.scrollByPage};t.horizontalSliderSize=void 0!==e.horizontalSliderSize?e.horizontalSliderSize:t.horizontalScrollbarSize,t.verticalSliderSize=void 0!==e.verticalSliderSize?e.verticalSliderSize:t.verticalScrollbarSize,p.dz&&(t.className+=" mac");return t}(t),this._scrollable=i,this._register(this._scrollable.onScroll((e=>{this._onWillScroll.fire(e),this._onDidScroll(e),this._onScroll.fire(e)})));const n={onMouseWheel:e=>this._onMouseWheel(e),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new b(this._scrollable,this._options,n)),this._horizontalScrollbar=this._register(new v(this._scrollable,this._options,n)),this._domNode=document.createElement("div"),this._domNode.className="monaco-scrollable-element "+this._options.className,this._domNode.setAttribute("role","presentation"),this._domNode.style.position="relative",this._domNode.style.overflow="hidden",this._domNode.appendChild(e),this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode),this._domNode.appendChild(this._verticalScrollbar.domNode.domNode),this._options.useShadows?(this._leftShadowDomNode=(0,s.X)(document.createElement("div")),this._leftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=(0,s.X)(document.createElement("div")),this._topShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=(0,s.X)(document.createElement("div")),this._topLeftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,(e=>this._onMouseOver(e))),this.onmouseleave(this._listenOnDomNode,(e=>this._onMouseLeave(e))),this._hideTimeout=this._register(new c._F),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}get options(){return this._options}dispose(){this._mouseWheelToDispose=(0,u.B9)(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarPointerDown(e){this._verticalScrollbar.delegatePointerDown(e)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(e){this._scrollable.setScrollDimensions(e,!1)}updateClassName(e){this._options.className=e,p.dz&&(this._options.className+=" mac"),this._domNode.className="monaco-scrollable-element "+this._options.className}updateOptions(e){void 0!==e.handleMouseWheel&&(this._options.handleMouseWheel=e.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),void 0!==e.mouseWheelScrollSensitivity&&(this._options.mouseWheelScrollSensitivity=e.mouseWheelScrollSensitivity),void 0!==e.fastScrollSensitivity&&(this._options.fastScrollSensitivity=e.fastScrollSensitivity),void 0!==e.scrollPredominantAxis&&(this._options.scrollPredominantAxis=e.scrollPredominantAxis),void 0!==e.horizontal&&(this._options.horizontal=e.horizontal),void 0!==e.vertical&&(this._options.vertical=e.vertical),void 0!==e.horizontalScrollbarSize&&(this._options.horizontalScrollbarSize=e.horizontalScrollbarSize),void 0!==e.verticalScrollbarSize&&(this._options.verticalScrollbarSize=e.verticalScrollbarSize),void 0!==e.scrollByPage&&(this._options.scrollByPage=e.scrollByPage),this._horizontalScrollbar.updateOptions(this._options),this._verticalScrollbar.updateOptions(this._options),this._options.lazyRender||this._render()}_setListeningToMouseWheel(e){if(this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=(0,u.B9)(this._mouseWheelToDispose),e)){const e=e=>{this._onMouseWheel(new r.q(e))};this._mouseWheelToDispose.push(o.nm(this._listenOnDomNode,o.tw.MOUSE_WHEEL,e,{passive:!1}))}}_onMouseWheel(e){const t=S.INSTANCE;{const i=window.devicePixelRatio/(0,n.getZoomFactor)();p.ED||p.IJ?t.accept(Date.now(),e.deltaX/i,e.deltaY/i):t.accept(Date.now(),e.deltaX,e.deltaY)}let i=!1;if(e.deltaY||e.deltaX){let n=e.deltaY*this._options.mouseWheelScrollSensitivity,o=e.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(Math.abs(n)>=Math.abs(o)?o=0:n=0),this._options.flipAxes&&([n,o]=[o,n]);const s=!p.dz&&e.browserEvent&&e.browserEvent.shiftKey;!this._options.scrollYToX&&!s||o||(o=n,n=0),e.browserEvent&&e.browserEvent.altKey&&(o*=this._options.fastScrollSensitivity,n*=this._options.fastScrollSensitivity);const r=this._scrollable.getFutureScrollPosition();let a={};if(n){const e=50*n,t=r.scrollTop-(e<0?Math.floor(e):Math.ceil(e));this._verticalScrollbar.writeScrollPosition(a,t)}if(o){const e=50*o,t=r.scrollLeft-(e<0?Math.floor(e):Math.ceil(e));this._horizontalScrollbar.writeScrollPosition(a,t)}if(a=this._scrollable.validateScrollPosition(a),r.scrollLeft!==a.scrollLeft||r.scrollTop!==a.scrollTop){this._options.mouseWheelSmoothScroll&&t.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(a):this._scrollable.setScrollPositionNow(a),i=!0}}let o=i;!o&&this._options.alwaysConsumeMouseWheel&&(o=!0),!o&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(o=!0),o&&(e.preventDefault(),e.stopPropagation())}_onDidScroll(e){this._shouldRender=this._horizontalScrollbar.onDidScroll(e)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(e)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}renderNow(){if(!this._options.lazyRender)throw new Error("Please use `lazyRender` together with `renderNow`!");this._render()}_render(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){const e=this._scrollable.getCurrentScrollPosition(),t=e.scrollTop>0,i=e.scrollLeft>0,n=i?" left":"",o=t?" top":"",s=i||t?" top-left-corner":"";this._leftShadowDomNode.setClassName(`shadow${n}`),this._topShadowDomNode.setClassName(`shadow${o}`),this._topLeftShadowDomNode.setClassName(`shadow${s}${o}${n}`)}}_onDragStart(){this._isDragging=!0,this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseLeave(e){this._mouseIsOver=!1,this._hide()}_onMouseOver(e){this._mouseIsOver=!0,this._reveal()}_reveal(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}_hide(){this._mouseIsOver||this._isDragging||(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}_scheduleHide(){this._mouseIsOver||this._isDragging||this._hideTimeout.cancelAndSet((()=>this._hide()),500)}}class k extends L{constructor(e,t){(t=t||{}).mouseWheelSmoothScroll=!1;const i=new w.Rm({forceIntegerValues:!0,smoothScrollDuration:0,scheduleAtNextAnimationFrame:e=>o.jL(e)});super(e,t,i),this._register(i)}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}}class x extends L{constructor(e,t,i){super(e,t,i)}setScrollPosition(e){e.reuseAnimation?this._scrollable.setScrollPositionSmooth(e,e.reuseAnimation):this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}}class D extends L{constructor(e,t){(t=t||{}).mouseWheelSmoothScroll=!1;const i=new w.Rm({forceIntegerValues:!1,smoothScrollDuration:0,scheduleAtNextAnimationFrame:e=>o.jL(e)});super(e,t,i),this._register(i),this._element=e,this.onScroll((e=>{e.scrollTopChanged&&(this._element.scrollTop=e.scrollTop),e.scrollLeftChanged&&(this._element.scrollLeft=e.scrollLeft)})),this.scanDomNode()}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}scanDomNode(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})}}},23937:(e,t,i)=>{"use strict";i.d(t,{M:()=>v,z:()=>b});var n=i(65321),o=i(73098),s=i(63161),r=i(9488),a=i(41264),l=i(4669),c=i(5976),d=i(59870),h=i(76633),u=i(98401);const g={separatorBorder:a.Il.transparent};class p{constructor(e,t,i,n){this.container=e,this.view=t,this.disposable=n,this._cachedVisibleSize=void 0,"number"==typeof i?(this._size=i,this._cachedVisibleSize=void 0,e.classList.add("visible")):(this._size=0,this._cachedVisibleSize=i.cachedVisibleSize)}set size(e){this._size=e}get size(){return this._size}get visible(){return void 0===this._cachedVisibleSize}setVisible(e,t){var i,n;e!==this.visible&&(e?(this.size=(0,d.uZ)(this._cachedVisibleSize,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize="number"==typeof t?t:this.size,this.size=0),this.container.classList.toggle("visible",e),null===(n=(i=this.view).setVisible)||void 0===n||n.call(i,e))}get minimumSize(){return this.visible?this.view.minimumSize:0}get viewMinimumSize(){return this.view.minimumSize}get maximumSize(){return this.visible?this.view.maximumSize:0}get viewMaximumSize(){return this.view.maximumSize}get priority(){return this.view.priority}get snap(){return!!this.view.snap}set enabled(e){this.container.style.pointerEvents=e?"":"none"}layout(e,t){this.layoutContainer(e),this.view.layout(this.size,e,t)}dispose(){return this.disposable.dispose(),this.view}}class m extends p{layoutContainer(e){this.container.style.top=`${e}px`,this.container.style.height=`${this.size}px`}}class f extends p{layoutContainer(e){this.container.style.left=`${e}px`,this.container.style.width=`${this.size}px`}}var _,v;!function(e){e[e.Idle=0]="Idle",e[e.Busy=1]="Busy"}(_||(_={})),function(e){e.Distribute={type:"distribute"},e.Split=function(e){return{type:"split",index:e}},e.Invisible=function(e){return{type:"invisible",cachedVisibleSize:e}}}(v||(v={}));class b extends c.JT{constructor(e,t={}){var i,o,r,a,c;super(),this.size=0,this.contentSize=0,this.proportions=void 0,this.viewItems=[],this.sashItems=[],this.state=_.Idle,this._onDidSashChange=this._register(new l.Q5),this._onDidSashReset=this._register(new l.Q5),this._startSnappingEnabled=!0,this._endSnappingEnabled=!0,this.onDidSashChange=this._onDidSashChange.event,this.onDidSashReset=this._onDidSashReset.event,this.orientation=null!==(i=t.orientation)&&void 0!==i?i:0,this.inverseAltBehavior=null!==(o=t.inverseAltBehavior)&&void 0!==o&&o,this.proportionalLayout=null===(r=t.proportionalLayout)||void 0===r||r,this.getSashOrthogonalSize=t.getSashOrthogonalSize,this.el=document.createElement("div"),this.el.classList.add("monaco-split-view2"),this.el.classList.add(0===this.orientation?"vertical":"horizontal"),e.appendChild(this.el),this.sashContainer=(0,n.R3)(this.el,(0,n.$)(".sash-container")),this.viewContainer=(0,n.$)(".split-view-container"),this.scrollable=new h.Rm({forceIntegerValues:!0,smoothScrollDuration:125,scheduleAtNextAnimationFrame:n.jL}),this.scrollableElement=this._register(new s.$Z(this.viewContainer,{vertical:0===this.orientation?null!==(a=t.scrollbarVisibility)&&void 0!==a?a:1:2,horizontal:1===this.orientation?null!==(c=t.scrollbarVisibility)&&void 0!==c?c:1:2},this.scrollable)),this.onDidScroll=this.scrollableElement.onScroll,this._register(this.onDidScroll((e=>{this.viewContainer.scrollTop=e.scrollTop,this.viewContainer.scrollLeft=e.scrollLeft}))),(0,n.R3)(this.el,this.scrollableElement.getDomNode()),this.style(t.styles||g),t.descriptor&&(this.size=t.descriptor.size,t.descriptor.views.forEach(((e,t)=>{const i=u.o8(e.visible)||e.visible?e.size:{type:"invisible",cachedVisibleSize:e.size},n=e.view;this.doAddView(n,i,t,!0)})),this.contentSize=this.viewItems.reduce(((e,t)=>e+t.size),0),this.saveProportions())}get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}get startSnappingEnabled(){return this._startSnappingEnabled}get endSnappingEnabled(){return this._endSnappingEnabled}set orthogonalStartSash(e){for(const t of this.sashItems)t.sash.orthogonalStartSash=e;this._orthogonalStartSash=e}set orthogonalEndSash(e){for(const t of this.sashItems)t.sash.orthogonalEndSash=e;this._orthogonalEndSash=e}set startSnappingEnabled(e){this._startSnappingEnabled!==e&&(this._startSnappingEnabled=e,this.updateSashEnablement())}set endSnappingEnabled(e){this._endSnappingEnabled!==e&&(this._endSnappingEnabled=e,this.updateSashEnablement())}style(e){e.separatorBorder.isTransparent()?(this.el.classList.remove("separator-border"),this.el.style.removeProperty("--separator-border")):(this.el.classList.add("separator-border"),this.el.style.setProperty("--separator-border",e.separatorBorder.toString()))}addView(e,t,i=this.viewItems.length,n){this.doAddView(e,t,i,n)}layout(e,t){const i=Math.max(this.size,this.contentSize);if(this.size=e,this.layoutContext=t,this.proportions)for(let n=0;n<this.viewItems.length;n++){const t=this.viewItems[n];t.size=(0,d.uZ)(Math.round(this.proportions[n]*e),t.minimumSize,t.maximumSize)}else{const t=(0,r.w6)(this.viewItems.length),n=t.filter((e=>1===this.viewItems[e].priority)),o=t.filter((e=>2===this.viewItems[e].priority));this.resize(this.viewItems.length-1,e-i,void 0,n,o)}this.distributeEmptySpace(),this.layoutViews()}saveProportions(){this.proportionalLayout&&this.contentSize>0&&(this.proportions=this.viewItems.map((e=>e.size/this.contentSize)))}onSashStart({sash:e,start:t,alt:i}){for(const n of this.viewItems)n.enabled=!1;const o=this.sashItems.findIndex((t=>t.sash===e)),s=(0,c.F8)((0,n.nm)(document.body,"keydown",(e=>a(this.sashDragState.current,e.altKey))),(0,n.nm)(document.body,"keyup",(()=>a(this.sashDragState.current,!1)))),a=(e,t)=>{const i=this.viewItems.map((e=>e.size));let n,a,l=Number.NEGATIVE_INFINITY,c=Number.POSITIVE_INFINITY;if(this.inverseAltBehavior&&(t=!t),t){if(o===this.sashItems.length-1){const e=this.viewItems[o];l=(e.minimumSize-e.size)/2,c=(e.maximumSize-e.size)/2}else{const e=this.viewItems[o+1];l=(e.size-e.maximumSize)/2,c=(e.size-e.minimumSize)/2}}if(!t){const e=(0,r.w6)(o,-1),t=(0,r.w6)(o+1,this.viewItems.length),s=e.reduce(((e,t)=>e+(this.viewItems[t].minimumSize-i[t])),0),l=e.reduce(((e,t)=>e+(this.viewItems[t].viewMaximumSize-i[t])),0),c=0===t.length?Number.POSITIVE_INFINITY:t.reduce(((e,t)=>e+(i[t]-this.viewItems[t].minimumSize)),0),d=0===t.length?Number.NEGATIVE_INFINITY:t.reduce(((e,t)=>e+(i[t]-this.viewItems[t].viewMaximumSize)),0),h=Math.max(s,d),u=Math.min(c,l),g=this.findFirstSnapIndex(e),p=this.findFirstSnapIndex(t);if("number"==typeof g){const e=this.viewItems[g],t=Math.floor(e.viewMinimumSize/2);n={index:g,limitDelta:e.visible?h-t:h+t,size:e.size}}if("number"==typeof p){const e=this.viewItems[p],t=Math.floor(e.viewMinimumSize/2);a={index:p,limitDelta:e.visible?u+t:u-t,size:e.size}}}this.sashDragState={start:e,current:e,index:o,sizes:i,minDelta:l,maxDelta:c,alt:t,snapBefore:n,snapAfter:a,disposable:s}};a(t,i)}onSashChange({current:e}){const{index:t,start:i,sizes:n,alt:o,minDelta:s,maxDelta:r,snapBefore:a,snapAfter:l}=this.sashDragState;this.sashDragState.current=e;const c=e-i,d=this.resize(t,c,n,void 0,void 0,s,r,a,l);if(o){const e=t===this.sashItems.length-1,i=this.viewItems.map((e=>e.size)),n=e?t:t+1,o=this.viewItems[n],s=o.size-o.maximumSize,r=o.size-o.minimumSize,a=e?t-1:t+1;this.resize(a,-d,i,void 0,void 0,s,r)}this.distributeEmptySpace(),this.layoutViews()}onSashEnd(e){this._onDidSashChange.fire(e),this.sashDragState.disposable.dispose(),this.saveProportions();for(const t of this.viewItems)t.enabled=!0}onViewChange(e,t){const i=this.viewItems.indexOf(e);i<0||i>=this.viewItems.length||(t="number"==typeof t?t:e.size,t=(0,d.uZ)(t,e.minimumSize,e.maximumSize),this.inverseAltBehavior&&i>0?(this.resize(i-1,Math.floor((e.size-t)/2)),this.distributeEmptySpace(),this.layoutViews()):(e.size=t,this.relayout([i],void 0)))}resizeView(e,t){if(this.state!==_.Idle)throw new Error("Cant modify splitview");if(this.state=_.Busy,e<0||e>=this.viewItems.length)return;const i=(0,r.w6)(this.viewItems.length).filter((t=>t!==e)),n=[...i.filter((e=>1===this.viewItems[e].priority)),e],o=i.filter((e=>2===this.viewItems[e].priority)),s=this.viewItems[e];t=Math.round(t),t=(0,d.uZ)(t,s.minimumSize,Math.min(s.maximumSize,this.size)),s.size=t,this.relayout(n,o),this.state=_.Idle}distributeViewSizes(){const e=[];let t=0;for(const r of this.viewItems)r.maximumSize-r.minimumSize>0&&(e.push(r),t+=r.size);const i=Math.floor(t/e.length);for(const r of e)r.size=(0,d.uZ)(i,r.minimumSize,r.maximumSize);const n=(0,r.w6)(this.viewItems.length),o=n.filter((e=>1===this.viewItems[e].priority)),s=n.filter((e=>2===this.viewItems[e].priority));this.relayout(o,s)}getViewSize(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size}doAddView(e,t,i=this.viewItems.length,s){if(this.state!==_.Idle)throw new Error("Cant modify splitview");this.state=_.Busy;const a=(0,n.$)(".split-view-view");i===this.viewItems.length?this.viewContainer.appendChild(a):this.viewContainer.insertBefore(a,this.viewContainer.children.item(i));const d=e.onDidChange((e=>this.onViewChange(p,e))),h=(0,c.OF)((()=>this.viewContainer.removeChild(a))),u=(0,c.F8)(d,h);let g;g="number"==typeof t?t:"split"===t.type?this.getViewSize(t.index)/2:"invisible"===t.type?{cachedVisibleSize:t.cachedVisibleSize}:e.minimumSize;const p=0===this.orientation?new m(a,e,g,u):new f(a,e,g,u);if(this.viewItems.splice(i,0,p),this.viewItems.length>1){const e={orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash},t=0===this.orientation?new o.g(this.sashContainer,{getHorizontalSashTop:e=>this.getSashPosition(e),getHorizontalSashWidth:this.getSashOrthogonalSize},Object.assign(Object.assign({},e),{orientation:1})):new o.g(this.sashContainer,{getVerticalSashLeft:e=>this.getSashPosition(e),getVerticalSashHeight:this.getSashOrthogonalSize},Object.assign(Object.assign({},e),{orientation:0})),n=0===this.orientation?e=>({sash:t,start:e.startY,current:e.currentY,alt:e.altKey}):e=>({sash:t,start:e.startX,current:e.currentX,alt:e.altKey}),s=l.ju.map(t.onDidStart,n)(this.onSashStart,this),a=l.ju.map(t.onDidChange,n)(this.onSashChange,this),d=l.ju.map(t.onDidEnd,(()=>this.sashItems.findIndex((e=>e.sash===t)))),h=d(this.onSashEnd,this),u=t.onDidReset((()=>{const e=this.sashItems.findIndex((e=>e.sash===t)),i=(0,r.w6)(e,-1),n=(0,r.w6)(e+1,this.viewItems.length),o=this.findFirstSnapIndex(i),s=this.findFirstSnapIndex(n);("number"!=typeof o||this.viewItems[o].visible)&&("number"!=typeof s||this.viewItems[s].visible)&&this._onDidSashReset.fire(e)})),g=(0,c.F8)(s,a,h,u,t),p={sash:t,disposable:g};this.sashItems.splice(i-1,0,p)}let v;a.appendChild(e.element),"number"!=typeof t&&"split"===t.type&&(v=[t.index]),s||this.relayout([i],v),this.state=_.Idle,s||"number"==typeof t||"distribute"!==t.type||this.distributeViewSizes()}relayout(e,t){const i=this.viewItems.reduce(((e,t)=>e+t.size),0);this.resize(this.viewItems.length-1,this.size-i,void 0,e,t),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}resize(e,t,i=this.viewItems.map((e=>e.size)),n,o,s=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY,l,c){if(e<0||e>=this.viewItems.length)return 0;const h=(0,r.w6)(e,-1),u=(0,r.w6)(e+1,this.viewItems.length);if(o)for(const d of o)(0,r.zI)(h,d),(0,r.zI)(u,d);if(n)for(const d of n)(0,r.al)(h,d),(0,r.al)(u,d);const g=h.map((e=>this.viewItems[e])),p=h.map((e=>i[e])),m=u.map((e=>this.viewItems[e])),f=u.map((e=>i[e])),_=h.reduce(((e,t)=>e+(this.viewItems[t].minimumSize-i[t])),0),v=h.reduce(((e,t)=>e+(this.viewItems[t].maximumSize-i[t])),0),b=0===u.length?Number.POSITIVE_INFINITY:u.reduce(((e,t)=>e+(i[t]-this.viewItems[t].minimumSize)),0),C=0===u.length?Number.NEGATIVE_INFINITY:u.reduce(((e,t)=>e+(i[t]-this.viewItems[t].maximumSize)),0),w=Math.max(_,C,s),y=Math.min(b,v,a);let S=!1;if(l){const e=this.viewItems[l.index],i=t>=l.limitDelta;S=i!==e.visible,e.setVisible(i,l.size)}if(!S&&c){const e=this.viewItems[c.index],i=t<c.limitDelta;S=i!==e.visible,e.setVisible(i,c.size)}if(S)return this.resize(e,t,i,n,o,s,a);for(let r=0,L=t=(0,d.uZ)(t,w,y);r<g.length;r++){const e=g[r],t=(0,d.uZ)(p[r]+L,e.minimumSize,e.maximumSize);L-=t-p[r],e.size=t}for(let r=0,L=t;r<m.length;r++){const e=m[r],t=(0,d.uZ)(f[r]-L,e.minimumSize,e.maximumSize);L+=t-f[r],e.size=t}return t}distributeEmptySpace(e){const t=this.viewItems.reduce(((e,t)=>e+t.size),0);let i=this.size-t;const n=(0,r.w6)(this.viewItems.length-1,-1),o=n.filter((e=>1===this.viewItems[e].priority)),s=n.filter((e=>2===this.viewItems[e].priority));for(const a of s)(0,r.zI)(n,a);for(const a of o)(0,r.al)(n,a);"number"==typeof e&&(0,r.al)(n,e);for(let r=0;0!==i&&r<n.length;r++){const e=this.viewItems[n[r]],t=(0,d.uZ)(e.size+i,e.minimumSize,e.maximumSize);i-=t-e.size,e.size=t}}layoutViews(){this.contentSize=this.viewItems.reduce(((e,t)=>e+t.size),0);let e=0;for(const t of this.viewItems)t.layout(e,this.layoutContext),e+=t.size;this.sashItems.forEach((e=>e.sash.layout())),this.updateSashEnablement(),this.updateScrollableElement()}updateScrollableElement(){0===this.orientation?this.scrollableElement.setScrollDimensions({height:this.size,scrollHeight:this.contentSize}):this.scrollableElement.setScrollDimensions({width:this.size,scrollWidth:this.contentSize})}updateSashEnablement(){let e=!1;const t=this.viewItems.map((t=>e=t.size-t.minimumSize>0||e));e=!1;const i=this.viewItems.map((t=>e=t.maximumSize-t.size>0||e)),n=[...this.viewItems].reverse();e=!1;const o=n.map((t=>e=t.size-t.minimumSize>0||e)).reverse();e=!1;const s=n.map((t=>e=t.maximumSize-t.size>0||e)).reverse();let a=0;for(let l=0;l<this.sashItems.length;l++){const{sash:e}=this.sashItems[l];a+=this.viewItems[l].size;const n=!(t[l]&&s[l+1]),c=!(i[l]&&o[l+1]);if(n&&c){const i=(0,r.w6)(l,-1),n=(0,r.w6)(l+1,this.viewItems.length),s=this.findFirstSnapIndex(i),c=this.findFirstSnapIndex(n),d="number"==typeof s&&!this.viewItems[s].visible,h="number"==typeof c&&!this.viewItems[c].visible;d&&o[l]&&(a>0||this.startSnappingEnabled)?e.state=1:h&&t[l]&&(a<this.contentSize||this.endSnappingEnabled)?e.state=2:e.state=0}else e.state=n&&!c?1:!n&&c?2:3}}getSashPosition(e){let t=0;for(let i=0;i<this.sashItems.length;i++)if(t+=this.viewItems[i].size,this.sashItems[i].sash===e)return t;return 0}findFirstSnapIndex(e){for(const t of e){const e=this.viewItems[t];if(e.visible&&e.snap)return t}for(const t of e){const e=this.viewItems[t];if(e.visible&&e.maximumSize-e.minimumSize>0)return;if(!e.visible&&e.snap)return t}}dispose(){super.dispose(),(0,c.B9)(this.viewItems),this.viewItems=[],this.sashItems.forEach((e=>e.disposable.dispose())),this.sashItems=[]}}},82900:(e,t,i)=>{"use strict";i.d(t,{Z:()=>l});var n=i(93794),o=i(73046),s=i(41264),r=i(4669);const a={inputActiveOptionBorder:s.Il.fromHex("#007ACC00"),inputActiveOptionForeground:s.Il.fromHex("#FFFFFF"),inputActiveOptionBackground:s.Il.fromHex("#0E639C50")};class l extends n.${constructor(e){super(),this._onChange=this._register(new r.Q5),this.onChange=this._onChange.event,this._onKeyDown=this._register(new r.Q5),this.onKeyDown=this._onKeyDown.event,this._opts=Object.assign(Object.assign({},a),e),this._checked=this._opts.isChecked;const t=["monaco-custom-toggle"];this._opts.icon&&(this._icon=this._opts.icon,t.push(...o.dT.asClassNameArray(this._icon))),this._opts.actionClassName&&t.push(...this._opts.actionClassName.split(" ")),this._checked&&t.push("checked"),this.domNode=document.createElement("div"),this.domNode.title=this._opts.title,this.domNode.classList.add(...t),this._opts.notFocusable||(this.domNode.tabIndex=0),this.domNode.setAttribute("role","checkbox"),this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.setAttribute("aria-label",this._opts.title),this.applyStyles(),this.onclick(this.domNode,(e=>{this.enabled&&(this.checked=!this._checked,this._onChange.fire(!1),e.preventDefault())})),this.ignoreGesture(this.domNode),this.onkeydown(this.domNode,(e=>{if(10===e.keyCode||3===e.keyCode)return this.checked=!this._checked,this._onChange.fire(!0),e.preventDefault(),void e.stopPropagation();this._onKeyDown.fire(e)}))}get enabled(){return"true"!==this.domNode.getAttribute("aria-disabled")}focus(){this.domNode.focus()}get checked(){return this._checked}set checked(e){this._checked=e,this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked),this.applyStyles()}width(){return 22}style(e){e.inputActiveOptionBorder&&(this._opts.inputActiveOptionBorder=e.inputActiveOptionBorder),e.inputActiveOptionForeground&&(this._opts.inputActiveOptionForeground=e.inputActiveOptionForeground),e.inputActiveOptionBackground&&(this._opts.inputActiveOptionBackground=e.inputActiveOptionBackground),this.applyStyles()}applyStyles(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder?this._opts.inputActiveOptionBorder.toString():"",this.domNode.style.color=this._checked&&this._opts.inputActiveOptionForeground?this._opts.inputActiveOptionForeground.toString():"inherit",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground?this._opts.inputActiveOptionBackground.toString():"")}enable(){this.domNode.setAttribute("aria-disabled",String(!1))}disable(){this.domNode.setAttribute("aria-disabled",String(!0))}}},93794:(e,t,i)=>{"use strict";i.d(t,{$:()=>l});var n=i(65321),o=i(59069),s=i(7317),r=i(10553),a=i(5976);class l extends a.JT{onclick(e,t){this._register(n.nm(e,n.tw.CLICK,(e=>t(new s.n(e)))))}onmousedown(e,t){this._register(n.nm(e,n.tw.MOUSE_DOWN,(e=>t(new s.n(e)))))}onmouseover(e,t){this._register(n.nm(e,n.tw.MOUSE_OVER,(e=>t(new s.n(e)))))}onmouseleave(e,t){this._register(n.nm(e,n.tw.MOUSE_LEAVE,(e=>t(new s.n(e)))))}onkeydown(e,t){this._register(n.nm(e,n.tw.KEY_DOWN,(e=>t(new o.y(e)))))}onkeyup(e,t){this._register(n.nm(e,n.tw.KEY_UP,(e=>t(new o.y(e)))))}oninput(e,t){this._register(n.nm(e,n.tw.INPUT,t))}onblur(e,t){this._register(n.nm(e,n.tw.BLUR,t))}onfocus(e,t){this._register(n.nm(e,n.tw.FOCUS,t))}ignoreGesture(e){r.o.ignoreTarget(e)}}},74741:(e,t,i)=>{"use strict";i.d(t,{Wi:()=>l,Z0:()=>c,aU:()=>a,eZ:()=>h,wY:()=>d,xw:()=>u});var n=i(4669),o=i(5976),s=i(63580),r=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class a extends o.JT{constructor(e,t="",i="",o=!0,s){super(),this._onDidChange=this._register(new n.Q5),this.onDidChange=this._onDidChange.event,this._enabled=!0,this._id=e,this._label=t,this._cssClass=i,this._enabled=o,this._actionCallback=s}get id(){return this._id}get label(){return this._label}set label(e){this._setLabel(e)}_setLabel(e){this._label!==e&&(this._label=e,this._onDidChange.fire({label:e}))}get tooltip(){return this._tooltip||""}set tooltip(e){this._setTooltip(e)}_setTooltip(e){this._tooltip!==e&&(this._tooltip=e,this._onDidChange.fire({tooltip:e}))}get class(){return this._cssClass}set class(e){this._setClass(e)}_setClass(e){this._cssClass!==e&&(this._cssClass=e,this._onDidChange.fire({class:e}))}get enabled(){return this._enabled}set enabled(e){this._setEnabled(e)}_setEnabled(e){this._enabled!==e&&(this._enabled=e,this._onDidChange.fire({enabled:e}))}get checked(){return this._checked}set checked(e){this._setChecked(e)}_setChecked(e){this._checked!==e&&(this._checked=e,this._onDidChange.fire({checked:e}))}run(e,t){return r(this,void 0,void 0,(function*(){this._actionCallback&&(yield this._actionCallback(e))}))}}class l extends o.JT{constructor(){super(...arguments),this._onBeforeRun=this._register(new n.Q5),this.onBeforeRun=this._onBeforeRun.event,this._onDidRun=this._register(new n.Q5),this.onDidRun=this._onDidRun.event}run(e,t){return r(this,void 0,void 0,(function*(){if(!e.enabled)return;let i;this._onBeforeRun.fire({action:e});try{yield this.runAction(e,t)}catch(n){i=n}this._onDidRun.fire({action:e,error:i})}))}runAction(e,t){return r(this,void 0,void 0,(function*(){yield e.run(t)}))}}class c extends a{constructor(e){super(c.ID,e,e?"separator text":"separator"),this.checked=!1,this.enabled=!1}}c.ID="vs.actions.separator";class d{constructor(e,t,i,n){this.tooltip="",this.enabled=!0,this.checked=void 0,this.id=e,this.label=t,this.class=n,this._actions=i}get actions(){return this._actions}dispose(){}run(){return r(this,void 0,void 0,(function*(){}))}}class h extends a{constructor(){super(h.ID,s.NC("submenu.empty","(empty)"),void 0,!1)}}function u(e){var t,i;return{id:e.id,label:e.label,class:void 0,enabled:null===(t=e.enabled)||void 0===t||t,checked:null!==(i=e.checked)&&void 0!==i&&i,run:()=>r(this,void 0,void 0,(function*(){return e.run()})),tooltip:e.label,dispose:()=>{}}}h.ID="vs.actions.empty"},9488:(e,t,i)=>{"use strict";function n(e,t=0){return e[e.length-(1+t)]}function o(e){if(0===e.length)throw new Error("Invalid tail call");return[e.slice(0,e.length-1),e[e.length-1]]}function s(e,t,i=((e,t)=>e===t)){if(e===t)return!0;if(!e||!t)return!1;if(e.length!==t.length)return!1;for(let n=0,o=e.length;n<o;n++)if(!i(e[n],t[n]))return!1;return!0}function r(e,t){const i=e.length-1;t<i&&(e[t]=e[i]),e.pop()}function a(e,t,i){return function(e,t){let i=0,n=e-1;for(;i<=n;){const e=(i+n)/2|0,o=t(e);if(o<0)i=e+1;else{if(!(o>0))return e;n=e-1}}return-(i+1)}(e.length,(n=>i(e[n],t)))}function l(e,t){let i=0,n=e.length;if(0===n)return 0;for(;i<n;){const o=Math.floor((i+n)/2);t(e[o])?n=o:i=o+1}return i}function c(e,t,i){if((e|=0)>=t.length)throw new TypeError("invalid index");const n=t[Math.floor(t.length*Math.random())],o=[],s=[],r=[];for(const a of t){const e=i(a,n);e<0?o.push(a):e>0?s.push(a):r.push(a)}return e<o.length?c(e,o,i):e<o.length+r.length?r[0]:c(e-(o.length+r.length),s,i)}function d(e,t){const i=[];let n;for(const o of e.slice(0).sort(t))n&&0===t(n[0],o)?n.push(o):(n=[o],i.push(n));return i}function h(e){return e.filter((e=>!!e))}function u(e){return!Array.isArray(e)||0===e.length}function g(e){return Array.isArray(e)&&e.length>0}function p(e,t=(e=>e)){const i=new Set;return e.filter((e=>{const n=t(e);return!i.has(n)&&(i.add(n),!0)}))}function m(e,t){const i=function(e,t){for(let i=e.length-1;i>=0;i--){if(t(e[i]))return i}return-1}(e,t);if(-1!==i)return e[i]}function f(e,t){return e.length>0?e[0]:t}function _(e,t){let i="number"==typeof t?e:0;"number"==typeof t?i=e:(i=0,t=e);const n=[];if(i<=t)for(let o=i;o<t;o++)n.push(o);else for(let o=i;o>t;o--)n.push(o);return n}function v(e,t,i){const n=e.slice(0,t),o=e.slice(t);return n.concat(i,o)}function b(e,t){const i=e.indexOf(t);i>-1&&(e.splice(i,1),e.unshift(t))}function C(e,t){const i=e.indexOf(t);i>-1&&(e.splice(i,1),e.push(t))}function w(e,t){for(const i of t)e.push(i)}function y(e){return Array.isArray(e)?e:[e]}function S(e,t,i,n){const o=L(e,t),s=e.splice(o,i);return function(e,t,i){const n=L(e,t),o=e.length,s=i.length;e.length=o+s;for(let r=o-1;r>=n;r--)e[r+s]=e[r];for(let r=0;r<s;r++)e[r+n]=i[r]}(e,o,n),s}function L(e,t){return t<0?Math.max(t+e.length,0):Math.min(t,e.length)}var k;function x(e,t){return(i,n)=>t(e(i),e(n))}i.d(t,{Dc:()=>N,EB:()=>p,Gb:()=>n,H9:()=>T,HW:()=>c,JH:()=>o,LS:()=>r,Of:()=>g,VJ:()=>I,XY:()=>u,Xh:()=>f,Zv:()=>v,_2:()=>y,al:()=>C,dF:()=>m,db:()=>S,fS:()=>s,fv:()=>D,jV:()=>E,kX:()=>h,lG:()=>l,ry:()=>a,tT:()=>x,vA:()=>w,vM:()=>d,w6:()=>_,zI:()=>b}),function(e){e.isLessThan=function(e){return e<0},e.isGreaterThan=function(e){return e>0},e.isNeitherLessOrGreaterThan=function(e){return 0===e},e.greaterThan=1,e.lessThan=-1,e.neitherLessOrGreaterThan=0}(k||(k={}));const D=(e,t)=>e-t;function N(e,t){if(0===e.length)return;let i=e[0];for(let n=1;n<e.length;n++){const o=e[n];t(o,i)>0&&(i=o)}return i}function E(e,t){if(0===e.length)return;let i=e[0];for(let n=1;n<e.length;n++){const o=e[n];t(o,i)>=0&&(i=o)}return i}function I(e,t){return N(e,((e,i)=>-t(e,i)))}class T{constructor(e){this.items=e,this.firstIdx=0,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(e){let t=this.firstIdx;for(;t<this.items.length&&e(this.items[t]);)t++;const i=t===this.firstIdx?null:this.items.slice(this.firstIdx,t);return this.firstIdx=t,i}takeFromEndWhile(e){let t=this.lastIdx;for(;t>=0&&e(this.items[t]);)t--;const i=t===this.lastIdx?null:this.items.slice(t+1,this.lastIdx+1);return this.lastIdx=t,i}peek(){if(0!==this.length)return this.items[this.firstIdx]}dequeue(){const e=this.items[this.firstIdx];return this.firstIdx++,e}takeCount(e){const t=this.items.slice(this.firstIdx,this.firstIdx+e);return this.firstIdx+=e,t}}},35146:(e,t,i)=>{"use strict";function n(e,t){if(!e)throw new Error(t?`Assertion failed (${t})`:"Assertion Failed")}i.d(t,{ok:()=>n})},15393:(e,t,i)=>{"use strict";i.d(t,{Aq:()=>D,CR:()=>k,J8:()=>d,PG:()=>h,Ps:()=>b,To:()=>S,Ue:()=>L,Vg:()=>v,Vs:()=>_,_F:()=>C,eP:()=>u,jT:()=>x,ne:()=>p,pY:()=>y,rH:()=>f,vp:()=>m,zS:()=>E,zh:()=>w});var n=i(71050),o=i(17301),s=i(4669),r=i(5976),a=i(1432),l=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))},c=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,i=e[Symbol.asyncIterator];return i?i.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(i){t[i]=e[i]&&function(t){return new Promise((function(n,o){(function(e,t,i,n){Promise.resolve(n).then((function(t){e({value:t,done:i})}),t)})(n,o,(t=e[i](t)).done,t.value)}))}}};function d(e){return!!e&&"function"==typeof e.then}function h(e){const t=new n.A,i=e(t.token),s=new Promise(((e,n)=>{const s=t.token.onCancellationRequested((()=>{s.dispose(),t.dispose(),n(new o.FU)}));Promise.resolve(i).then((i=>{s.dispose(),t.dispose(),e(i)}),(e=>{s.dispose(),t.dispose(),n(e)}))}));return new class{cancel(){t.cancel()}then(e,t){return s.then(e,t)}catch(e){return this.then(void 0,e)}finally(e){return s.finally(e)}}}function u(e,t,i){return new Promise(((n,o)=>{const s=t.onCancellationRequested((()=>{s.dispose(),n(i)}));e.then(n,o).finally((()=>s.dispose()))}))}class g{constructor(){this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}queue(e){if(this.activePromise){if(this.queuedPromiseFactory=e,!this.queuedPromise){const e=()=>{this.queuedPromise=null;const e=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,e};this.queuedPromise=new Promise((t=>{this.activePromise.then(e,e).then(t)}))}return new Promise(((e,t)=>{this.queuedPromise.then(e,t)}))}return this.activePromise=e(),new Promise(((e,t)=>{this.activePromise.then((t=>{this.activePromise=null,e(t)}),(e=>{this.activePromise=null,t(e)}))}))}}const p=Symbol("MicrotaskDelay");class m{constructor(e){this.defaultDelay=e,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(e,t=this.defaultDelay){this.task=e,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise(((e,t)=>{this.doResolve=e,this.doReject=t})).then((()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const e=this.task;return this.task=null,e()}})));const i=()=>{var e;this.deferred=null,null===(e=this.doResolve)||void 0===e||e.call(this,null)};return this.deferred=t===p?(e=>{let t=!0;return queueMicrotask((()=>{t&&(t=!1,e())})),{isTriggered:()=>t,dispose:()=>{t=!1}}})(i):((e,t)=>{let i=!0;const n=setTimeout((()=>{i=!1,t()}),e);return{isTriggered:()=>i,dispose:()=>{clearTimeout(n),i=!1}}})(t,i),this.completionPromise}isTriggered(){var e;return!!(null===(e=this.deferred)||void 0===e?void 0:e.isTriggered())}cancel(){var e;this.cancelTimeout(),this.completionPromise&&(null===(e=this.doReject)||void 0===e||e.call(this,new o.FU),this.completionPromise=null)}cancelTimeout(){var e;null===(e=this.deferred)||void 0===e||e.dispose(),this.deferred=null}dispose(){this.cancel()}}class f{constructor(e){this.delayer=new m(e),this.throttler=new g}trigger(e,t){return this.delayer.trigger((()=>this.throttler.queue(e)),t)}dispose(){this.delayer.dispose()}}function _(e,t){return t?new Promise(((i,n)=>{const s=setTimeout((()=>{r.dispose(),i()}),e),r=t.onCancellationRequested((()=>{clearTimeout(s),r.dispose(),n(new o.FU)}))})):h((t=>_(e,t)))}function v(e,t=0){const i=setTimeout(e,t);return(0,r.OF)((()=>clearTimeout(i)))}function b(e,t=(e=>!!e),i=null){let n=0;const o=e.length,s=()=>{if(n>=o)return Promise.resolve(i);const r=e[n++];return Promise.resolve(r()).then((e=>t(e)?Promise.resolve(e):s()))};return s()}class C{constructor(e,t){this._token=-1,"function"==typeof e&&"number"==typeof t&&this.setIfNotSet(e,t)}dispose(){this.cancel()}cancel(){-1!==this._token&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(e,t){this.cancel(),this._token=setTimeout((()=>{this._token=-1,e()}),t)}setIfNotSet(e,t){-1===this._token&&(this._token=setTimeout((()=>{this._token=-1,e()}),t))}}class w{constructor(){this._token=-1}dispose(){this.cancel()}cancel(){-1!==this._token&&(clearInterval(this._token),this._token=-1)}cancelAndSet(e,t){this.cancel(),this._token=setInterval((()=>{e()}),t)}}class y{constructor(e,t){this.timeoutToken=-1,this.runner=e,this.timeout=t,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)}schedule(e=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,e)}get delay(){return this.timeout}set delay(e){this.timeout=e}isScheduled(){return-1!==this.timeoutToken}onTimeout(){this.timeoutToken=-1,this.runner&&this.doRun()}doRun(){var e;null===(e=this.runner)||void 0===e||e.call(this)}}let S;S="function"!=typeof requestIdleCallback||"function"!=typeof cancelIdleCallback?e=>{(0,a.fn)((()=>{if(t)return;const i=Date.now()+15;e(Object.freeze({didTimeout:!0,timeRemaining:()=>Math.max(0,i-Date.now())}))}));let t=!1;return{dispose(){t||(t=!0)}}}:(e,t)=>{const i=requestIdleCallback(e,"number"==typeof t?{timeout:t}:void 0);let n=!1;return{dispose(){n||(n=!0,cancelIdleCallback(i))}}};class L{constructor(e){this._didRun=!1,this._executor=()=>{try{this._value=e()}catch(t){this._error=t}finally{this._didRun=!0}},this._handle=S((()=>this._executor()))}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}}class k{constructor(){this.rejected=!1,this.resolved=!1,this.p=new Promise(((e,t)=>{this.completeCallback=e,this.errorCallback=t}))}get isRejected(){return this.rejected}get isSettled(){return this.rejected||this.resolved}complete(e){return new Promise((t=>{this.completeCallback(e),this.resolved=!0,t()}))}cancel(){new Promise((e=>{this.errorCallback(new o.FU),this.rejected=!0,e()}))}}var x;!function(e){e.settled=function(e){return l(this,void 0,void 0,(function*(){let t;const i=yield Promise.all(e.map((e=>e.then((e=>e),(e=>{t||(t=e)})))));if(void 0!==t)throw t;return i}))},e.withAsyncBody=function(e){return new Promise(((t,i)=>l(this,void 0,void 0,(function*(){try{yield e(t,i)}catch(n){i(n)}}))))}}(x||(x={}));class D{constructor(e){this._state=0,this._results=[],this._error=null,this._onStateChanged=new s.Q5,queueMicrotask((()=>l(this,void 0,void 0,(function*(){const t={emitOne:e=>this.emitOne(e),emitMany:e=>this.emitMany(e),reject:e=>this.reject(e)};try{yield Promise.resolve(e(t)),this.resolve()}catch(i){this.reject(i)}finally{t.emitOne=void 0,t.emitMany=void 0,t.reject=void 0}}))))}static fromArray(e){return new D((t=>{t.emitMany(e)}))}static fromPromise(e){return new D((t=>l(this,void 0,void 0,(function*(){t.emitMany(yield e)}))))}static fromPromises(e){return new D((t=>l(this,void 0,void 0,(function*(){yield Promise.all(e.map((e=>l(this,void 0,void 0,(function*(){return t.emitOne(yield e)})))))}))))}static merge(e){return new D((t=>l(this,void 0,void 0,(function*(){yield Promise.all(e.map((e=>{var i,n;return l(this,void 0,void 0,(function*(){var o,s;try{for(i=c(e);!(n=yield i.next()).done;){const e=n.value;t.emitOne(e)}}catch(r){o={error:r}}finally{try{n&&!n.done&&(s=i.return)&&(yield s.call(i))}finally{if(o)throw o.error}}}))})))}))))}[Symbol.asyncIterator](){let e=0;return{next:()=>l(this,void 0,void 0,(function*(){for(;;){if(2===this._state)throw this._error;if(e<this._results.length)return{done:!1,value:this._results[e++]};if(1===this._state)return{done:!0,value:void 0};yield s.ju.toPromise(this._onStateChanged.event)}}))}}static map(e,t){return new D((i=>l(this,void 0,void 0,(function*(){var n,o;try{for(var s,r=c(e);!(s=yield r.next()).done;){const e=s.value;i.emitOne(t(e))}}catch(a){n={error:a}}finally{try{s&&!s.done&&(o=r.return)&&(yield o.call(r))}finally{if(n)throw n.error}}}))))}map(e){return D.map(this,e)}static filter(e,t){return new D((i=>l(this,void 0,void 0,(function*(){var n,o;try{for(var s,r=c(e);!(s=yield r.next()).done;){const e=s.value;t(e)&&i.emitOne(e)}}catch(a){n={error:a}}finally{try{s&&!s.done&&(o=r.return)&&(yield o.call(r))}finally{if(n)throw n.error}}}))))}filter(e){return D.filter(this,e)}static coalesce(e){return D.filter(e,(e=>!!e))}coalesce(){return D.coalesce(this)}static toPromise(e){var t,i,n,o;return l(this,void 0,void 0,(function*(){const s=[];try{for(t=c(e);!(i=yield t.next()).done;){const e=i.value;s.push(e)}}catch(r){n={error:r}}finally{try{i&&!i.done&&(o=t.return)&&(yield o.call(t))}finally{if(n)throw n.error}}return s}))}toPromise(){return D.toPromise(this)}emitOne(e){0===this._state&&(this._results.push(e),this._onStateChanged.fire())}emitMany(e){0===this._state&&(this._results=this._results.concat(e),this._onStateChanged.fire())}resolve(){0===this._state&&(this._state=1,this._onStateChanged.fire())}reject(e){0===this._state&&(this._state=2,this._error=e,this._onStateChanged.fire())}}D.EMPTY=D.fromArray([]);class N extends D{constructor(e,t){super(t),this._source=e}cancel(){this._source.cancel()}}function E(e){const t=new n.A,i=e(t.token);return new N(t,(e=>l(this,void 0,void 0,(function*(){var n,s;const r=t.token.onCancellationRequested((()=>{r.dispose(),t.dispose(),e.reject(new o.FU)}));try{try{for(var a,l=c(i);!(a=yield l.next()).done;){const i=a.value;if(t.token.isCancellationRequested)return;e.emitOne(i)}}catch(d){n={error:d}}finally{try{a&&!a.done&&(s=l.return)&&(yield s.call(l))}finally{if(n)throw n.error}}r.dispose(),t.dispose()}catch(h){r.dispose(),t.dispose(),e.reject(h)}}))))}},53060:(e,t,i)=>{"use strict";i.d(t,{Ag:()=>l,Cg:()=>h,KN:()=>s,Q$:()=>d,T4:()=>c,mP:()=>r,oq:()=>a});const n="undefined"!=typeof Buffer;let o;class s{constructor(e){this.buffer=e,this.byteLength=this.buffer.byteLength}static wrap(e){return n&&!Buffer.isBuffer(e)&&(e=Buffer.from(e.buffer,e.byteOffset,e.byteLength)),new s(e)}toString(){return n?this.buffer.toString():(o||(o=new TextDecoder),o.decode(this.buffer))}}function r(e,t){return e[t+0]<<0>>>0|e[t+1]<<8>>>0}function a(e,t,i){e[i+0]=255&t,t>>>=8,e[i+1]=255&t}function l(e,t){return e[t]*Math.pow(2,24)+e[t+1]*Math.pow(2,16)+e[t+2]*Math.pow(2,8)+e[t+3]}function c(e,t,i){e[i+3]=t,t>>>=8,e[i+2]=t,t>>>=8,e[i+1]=t,t>>>=8,e[i]=t}function d(e,t){return e[t]}function h(e,t,i){e[i]=t}},701:(e,t,i)=>{"use strict";i.d(t,{b:()=>o,t:()=>n});class n{constructor(e){this.fn=e,this.lastCache=void 0,this.lastArgKey=void 0}get(e){const t=JSON.stringify(e);return this.lastArgKey!==t&&(this.lastArgKey=t,this.lastCache=this.fn(e)),this.lastCache}}class o{constructor(e){this.fn=e,this._map=new Map}get cachedValues(){return this._map}get(e){if(this._map.has(e))return this._map.get(e);const t=this.fn(e);return this._map.set(e,t),t}}},71050:(e,t,i)=>{"use strict";i.d(t,{A:()=>a,T:()=>s});var n=i(4669);const o=Object.freeze((function(e,t){const i=setTimeout(e.bind(t),0);return{dispose(){clearTimeout(i)}}}));var s;!function(e){e.isCancellationToken=function(t){return t===e.None||t===e.Cancelled||(t instanceof r||!(!t||"object"!=typeof t)&&("boolean"==typeof t.isCancellationRequested&&"function"==typeof t.onCancellationRequested))},e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:n.ju.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:o})}(s||(s={}));class r{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?o:(this._emitter||(this._emitter=new n.Q5),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}class a{constructor(e){this._token=void 0,this._parentListener=void 0,this._parentListener=e&&e.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new r),this._token}cancel(){this._token?this._token instanceof r&&this._token.cancel():this._token=s.Cancelled}dispose(e=!1){e&&this.cancel(),this._parentListener&&this._parentListener.dispose(),this._token?this._token instanceof r&&this._token.dispose():this._token=s.None}}},73046:(e,t,i)=>{"use strict";function n(e){return e?e.replace(/\$\((.*?)\)/g,((e,t)=>` ${t} `)).trim():""}i.d(t,{JL:()=>n,dT:()=>s,lA:()=>o});class o{constructor(e,t,i){this.id=e,this.definition=t,this.description=i,o._allCodicons.push(this)}get classNames(){return"codicon codicon-"+this.id}get classNamesArray(){return["codicon","codicon-"+this.id]}get cssSelector(){return".codicon.codicon-"+this.id}static getAll(){return o._allCodicons}}var s;o._allCodicons=[],o.add=new o("add",{fontCharacter:"\\ea60"}),o.plus=new o("plus",o.add.definition),o.gistNew=new o("gist-new",o.add.definition),o.repoCreate=new o("repo-create",o.add.definition),o.lightbulb=new o("lightbulb",{fontCharacter:"\\ea61"}),o.lightBulb=new o("light-bulb",{fontCharacter:"\\ea61"}),o.repo=new o("repo",{fontCharacter:"\\ea62"}),o.repoDelete=new o("repo-delete",{fontCharacter:"\\ea62"}),o.gistFork=new o("gist-fork",{fontCharacter:"\\ea63"}),o.repoForked=new o("repo-forked",{fontCharacter:"\\ea63"}),o.gitPullRequest=new o("git-pull-request",{fontCharacter:"\\ea64"}),o.gitPullRequestAbandoned=new o("git-pull-request-abandoned",{fontCharacter:"\\ea64"}),o.recordKeys=new o("record-keys",{fontCharacter:"\\ea65"}),o.keyboard=new o("keyboard",{fontCharacter:"\\ea65"}),o.tag=new o("tag",{fontCharacter:"\\ea66"}),o.tagAdd=new o("tag-add",{fontCharacter:"\\ea66"}),o.tagRemove=new o("tag-remove",{fontCharacter:"\\ea66"}),o.person=new o("person",{fontCharacter:"\\ea67"}),o.personFollow=new o("person-follow",{fontCharacter:"\\ea67"}),o.personOutline=new o("person-outline",{fontCharacter:"\\ea67"}),o.personFilled=new o("person-filled",{fontCharacter:"\\ea67"}),o.gitBranch=new o("git-branch",{fontCharacter:"\\ea68"}),o.gitBranchCreate=new o("git-branch-create",{fontCharacter:"\\ea68"}),o.gitBranchDelete=new o("git-branch-delete",{fontCharacter:"\\ea68"}),o.sourceControl=new o("source-control",{fontCharacter:"\\ea68"}),o.mirror=new o("mirror",{fontCharacter:"\\ea69"}),o.mirrorPublic=new o("mirror-public",{fontCharacter:"\\ea69"}),o.star=new o("star",{fontCharacter:"\\ea6a"}),o.starAdd=new o("star-add",{fontCharacter:"\\ea6a"}),o.starDelete=new o("star-delete",{fontCharacter:"\\ea6a"}),o.starEmpty=new o("star-empty",{fontCharacter:"\\ea6a"}),o.comment=new o("comment",{fontCharacter:"\\ea6b"}),o.commentAdd=new o("comment-add",{fontCharacter:"\\ea6b"}),o.alert=new o("alert",{fontCharacter:"\\ea6c"}),o.warning=new o("warning",{fontCharacter:"\\ea6c"}),o.search=new o("search",{fontCharacter:"\\ea6d"}),o.searchSave=new o("search-save",{fontCharacter:"\\ea6d"}),o.logOut=new o("log-out",{fontCharacter:"\\ea6e"}),o.signOut=new o("sign-out",{fontCharacter:"\\ea6e"}),o.logIn=new o("log-in",{fontCharacter:"\\ea6f"}),o.signIn=new o("sign-in",{fontCharacter:"\\ea6f"}),o.eye=new o("eye",{fontCharacter:"\\ea70"}),o.eyeUnwatch=new o("eye-unwatch",{fontCharacter:"\\ea70"}),o.eyeWatch=new o("eye-watch",{fontCharacter:"\\ea70"}),o.circleFilled=new o("circle-filled",{fontCharacter:"\\ea71"}),o.primitiveDot=new o("primitive-dot",{fontCharacter:"\\ea71"}),o.closeDirty=new o("close-dirty",{fontCharacter:"\\ea71"}),o.debugBreakpoint=new o("debug-breakpoint",{fontCharacter:"\\ea71"}),o.debugBreakpointDisabled=new o("debug-breakpoint-disabled",{fontCharacter:"\\ea71"}),o.debugHint=new o("debug-hint",{fontCharacter:"\\ea71"}),o.primitiveSquare=new o("primitive-square",{fontCharacter:"\\ea72"}),o.edit=new o("edit",{fontCharacter:"\\ea73"}),o.pencil=new o("pencil",{fontCharacter:"\\ea73"}),o.info=new o("info",{fontCharacter:"\\ea74"}),o.issueOpened=new o("issue-opened",{fontCharacter:"\\ea74"}),o.gistPrivate=new o("gist-private",{fontCharacter:"\\ea75"}),o.gitForkPrivate=new o("git-fork-private",{fontCharacter:"\\ea75"}),o.lock=new o("lock",{fontCharacter:"\\ea75"}),o.mirrorPrivate=new o("mirror-private",{fontCharacter:"\\ea75"}),o.close=new o("close",{fontCharacter:"\\ea76"}),o.removeClose=new o("remove-close",{fontCharacter:"\\ea76"}),o.x=new o("x",{fontCharacter:"\\ea76"}),o.repoSync=new o("repo-sync",{fontCharacter:"\\ea77"}),o.sync=new o("sync",{fontCharacter:"\\ea77"}),o.clone=new o("clone",{fontCharacter:"\\ea78"}),o.desktopDownload=new o("desktop-download",{fontCharacter:"\\ea78"}),o.beaker=new o("beaker",{fontCharacter:"\\ea79"}),o.microscope=new o("microscope",{fontCharacter:"\\ea79"}),o.vm=new o("vm",{fontCharacter:"\\ea7a"}),o.deviceDesktop=new o("device-desktop",{fontCharacter:"\\ea7a"}),o.file=new o("file",{fontCharacter:"\\ea7b"}),o.fileText=new o("file-text",{fontCharacter:"\\ea7b"}),o.more=new o("more",{fontCharacter:"\\ea7c"}),o.ellipsis=new o("ellipsis",{fontCharacter:"\\ea7c"}),o.kebabHorizontal=new o("kebab-horizontal",{fontCharacter:"\\ea7c"}),o.mailReply=new o("mail-reply",{fontCharacter:"\\ea7d"}),o.reply=new o("reply",{fontCharacter:"\\ea7d"}),o.organization=new o("organization",{fontCharacter:"\\ea7e"}),o.organizationFilled=new o("organization-filled",{fontCharacter:"\\ea7e"}),o.organizationOutline=new o("organization-outline",{fontCharacter:"\\ea7e"}),o.newFile=new o("new-file",{fontCharacter:"\\ea7f"}),o.fileAdd=new o("file-add",{fontCharacter:"\\ea7f"}),o.newFolder=new o("new-folder",{fontCharacter:"\\ea80"}),o.fileDirectoryCreate=new o("file-directory-create",{fontCharacter:"\\ea80"}),o.trash=new o("trash",{fontCharacter:"\\ea81"}),o.trashcan=new o("trashcan",{fontCharacter:"\\ea81"}),o.history=new o("history",{fontCharacter:"\\ea82"}),o.clock=new o("clock",{fontCharacter:"\\ea82"}),o.folder=new o("folder",{fontCharacter:"\\ea83"}),o.fileDirectory=new o("file-directory",{fontCharacter:"\\ea83"}),o.symbolFolder=new o("symbol-folder",{fontCharacter:"\\ea83"}),o.logoGithub=new o("logo-github",{fontCharacter:"\\ea84"}),o.markGithub=new o("mark-github",{fontCharacter:"\\ea84"}),o.github=new o("github",{fontCharacter:"\\ea84"}),o.terminal=new o("terminal",{fontCharacter:"\\ea85"}),o.console=new o("console",{fontCharacter:"\\ea85"}),o.repl=new o("repl",{fontCharacter:"\\ea85"}),o.zap=new o("zap",{fontCharacter:"\\ea86"}),o.symbolEvent=new o("symbol-event",{fontCharacter:"\\ea86"}),o.error=new o("error",{fontCharacter:"\\ea87"}),o.stop=new o("stop",{fontCharacter:"\\ea87"}),o.variable=new o("variable",{fontCharacter:"\\ea88"}),o.symbolVariable=new o("symbol-variable",{fontCharacter:"\\ea88"}),o.array=new o("array",{fontCharacter:"\\ea8a"}),o.symbolArray=new o("symbol-array",{fontCharacter:"\\ea8a"}),o.symbolModule=new o("symbol-module",{fontCharacter:"\\ea8b"}),o.symbolPackage=new o("symbol-package",{fontCharacter:"\\ea8b"}),o.symbolNamespace=new o("symbol-namespace",{fontCharacter:"\\ea8b"}),o.symbolObject=new o("symbol-object",{fontCharacter:"\\ea8b"}),o.symbolMethod=new o("symbol-method",{fontCharacter:"\\ea8c"}),o.symbolFunction=new o("symbol-function",{fontCharacter:"\\ea8c"}),o.symbolConstructor=new o("symbol-constructor",{fontCharacter:"\\ea8c"}),o.symbolBoolean=new o("symbol-boolean",{fontCharacter:"\\ea8f"}),o.symbolNull=new o("symbol-null",{fontCharacter:"\\ea8f"}),o.symbolNumeric=new o("symbol-numeric",{fontCharacter:"\\ea90"}),o.symbolNumber=new o("symbol-number",{fontCharacter:"\\ea90"}),o.symbolStructure=new o("symbol-structure",{fontCharacter:"\\ea91"}),o.symbolStruct=new o("symbol-struct",{fontCharacter:"\\ea91"}),o.symbolParameter=new o("symbol-parameter",{fontCharacter:"\\ea92"}),o.symbolTypeParameter=new o("symbol-type-parameter",{fontCharacter:"\\ea92"}),o.symbolKey=new o("symbol-key",{fontCharacter:"\\ea93"}),o.symbolText=new o("symbol-text",{fontCharacter:"\\ea93"}),o.symbolReference=new o("symbol-reference",{fontCharacter:"\\ea94"}),o.goToFile=new o("go-to-file",{fontCharacter:"\\ea94"}),o.symbolEnum=new o("symbol-enum",{fontCharacter:"\\ea95"}),o.symbolValue=new o("symbol-value",{fontCharacter:"\\ea95"}),o.symbolRuler=new o("symbol-ruler",{fontCharacter:"\\ea96"}),o.symbolUnit=new o("symbol-unit",{fontCharacter:"\\ea96"}),o.activateBreakpoints=new o("activate-breakpoints",{fontCharacter:"\\ea97"}),o.archive=new o("archive",{fontCharacter:"\\ea98"}),o.arrowBoth=new o("arrow-both",{fontCharacter:"\\ea99"}),o.arrowDown=new o("arrow-down",{fontCharacter:"\\ea9a"}),o.arrowLeft=new o("arrow-left",{fontCharacter:"\\ea9b"}),o.arrowRight=new o("arrow-right",{fontCharacter:"\\ea9c"}),o.arrowSmallDown=new o("arrow-small-down",{fontCharacter:"\\ea9d"}),o.arrowSmallLeft=new o("arrow-small-left",{fontCharacter:"\\ea9e"}),o.arrowSmallRight=new o("arrow-small-right",{fontCharacter:"\\ea9f"}),o.arrowSmallUp=new o("arrow-small-up",{fontCharacter:"\\eaa0"}),o.arrowUp=new o("arrow-up",{fontCharacter:"\\eaa1"}),o.bell=new o("bell",{fontCharacter:"\\eaa2"}),o.bold=new o("bold",{fontCharacter:"\\eaa3"}),o.book=new o("book",{fontCharacter:"\\eaa4"}),o.bookmark=new o("bookmark",{fontCharacter:"\\eaa5"}),o.debugBreakpointConditionalUnverified=new o("debug-breakpoint-conditional-unverified",{fontCharacter:"\\eaa6"}),o.debugBreakpointConditional=new o("debug-breakpoint-conditional",{fontCharacter:"\\eaa7"}),o.debugBreakpointConditionalDisabled=new o("debug-breakpoint-conditional-disabled",{fontCharacter:"\\eaa7"}),o.debugBreakpointDataUnverified=new o("debug-breakpoint-data-unverified",{fontCharacter:"\\eaa8"}),o.debugBreakpointData=new o("debug-breakpoint-data",{fontCharacter:"\\eaa9"}),o.debugBreakpointDataDisabled=new o("debug-breakpoint-data-disabled",{fontCharacter:"\\eaa9"}),o.debugBreakpointLogUnverified=new o("debug-breakpoint-log-unverified",{fontCharacter:"\\eaaa"}),o.debugBreakpointLog=new o("debug-breakpoint-log",{fontCharacter:"\\eaab"}),o.debugBreakpointLogDisabled=new o("debug-breakpoint-log-disabled",{fontCharacter:"\\eaab"}),o.briefcase=new o("briefcase",{fontCharacter:"\\eaac"}),o.broadcast=new o("broadcast",{fontCharacter:"\\eaad"}),o.browser=new o("browser",{fontCharacter:"\\eaae"}),o.bug=new o("bug",{fontCharacter:"\\eaaf"}),o.calendar=new o("calendar",{fontCharacter:"\\eab0"}),o.caseSensitive=new o("case-sensitive",{fontCharacter:"\\eab1"}),o.check=new o("check",{fontCharacter:"\\eab2"}),o.checklist=new o("checklist",{fontCharacter:"\\eab3"}),o.chevronDown=new o("chevron-down",{fontCharacter:"\\eab4"}),o.dropDownButton=new o("drop-down-button",o.chevronDown.definition),o.chevronLeft=new o("chevron-left",{fontCharacter:"\\eab5"}),o.chevronRight=new o("chevron-right",{fontCharacter:"\\eab6"}),o.chevronUp=new o("chevron-up",{fontCharacter:"\\eab7"}),o.chromeClose=new o("chrome-close",{fontCharacter:"\\eab8"}),o.chromeMaximize=new o("chrome-maximize",{fontCharacter:"\\eab9"}),o.chromeMinimize=new o("chrome-minimize",{fontCharacter:"\\eaba"}),o.chromeRestore=new o("chrome-restore",{fontCharacter:"\\eabb"}),o.circleOutline=new o("circle-outline",{fontCharacter:"\\eabc"}),o.debugBreakpointUnverified=new o("debug-breakpoint-unverified",{fontCharacter:"\\eabc"}),o.circleSlash=new o("circle-slash",{fontCharacter:"\\eabd"}),o.circuitBoard=new o("circuit-board",{fontCharacter:"\\eabe"}),o.clearAll=new o("clear-all",{fontCharacter:"\\eabf"}),o.clippy=new o("clippy",{fontCharacter:"\\eac0"}),o.closeAll=new o("close-all",{fontCharacter:"\\eac1"}),o.cloudDownload=new o("cloud-download",{fontCharacter:"\\eac2"}),o.cloudUpload=new o("cloud-upload",{fontCharacter:"\\eac3"}),o.code=new o("code",{fontCharacter:"\\eac4"}),o.collapseAll=new o("collapse-all",{fontCharacter:"\\eac5"}),o.colorMode=new o("color-mode",{fontCharacter:"\\eac6"}),o.commentDiscussion=new o("comment-discussion",{fontCharacter:"\\eac7"}),o.compareChanges=new o("compare-changes",{fontCharacter:"\\eafd"}),o.creditCard=new o("credit-card",{fontCharacter:"\\eac9"}),o.dash=new o("dash",{fontCharacter:"\\eacc"}),o.dashboard=new o("dashboard",{fontCharacter:"\\eacd"}),o.database=new o("database",{fontCharacter:"\\eace"}),o.debugContinue=new o("debug-continue",{fontCharacter:"\\eacf"}),o.debugDisconnect=new o("debug-disconnect",{fontCharacter:"\\ead0"}),o.debugPause=new o("debug-pause",{fontCharacter:"\\ead1"}),o.debugRestart=new o("debug-restart",{fontCharacter:"\\ead2"}),o.debugStart=new o("debug-start",{fontCharacter:"\\ead3"}),o.debugStepInto=new o("debug-step-into",{fontCharacter:"\\ead4"}),o.debugStepOut=new o("debug-step-out",{fontCharacter:"\\ead5"}),o.debugStepOver=new o("debug-step-over",{fontCharacter:"\\ead6"}),o.debugStop=new o("debug-stop",{fontCharacter:"\\ead7"}),o.debug=new o("debug",{fontCharacter:"\\ead8"}),o.deviceCameraVideo=new o("device-camera-video",{fontCharacter:"\\ead9"}),o.deviceCamera=new o("device-camera",{fontCharacter:"\\eada"}),o.deviceMobile=new o("device-mobile",{fontCharacter:"\\eadb"}),o.diffAdded=new o("diff-added",{fontCharacter:"\\eadc"}),o.diffIgnored=new o("diff-ignored",{fontCharacter:"\\eadd"}),o.diffModified=new o("diff-modified",{fontCharacter:"\\eade"}),o.diffRemoved=new o("diff-removed",{fontCharacter:"\\eadf"}),o.diffRenamed=new o("diff-renamed",{fontCharacter:"\\eae0"}),o.diff=new o("diff",{fontCharacter:"\\eae1"}),o.discard=new o("discard",{fontCharacter:"\\eae2"}),o.editorLayout=new o("editor-layout",{fontCharacter:"\\eae3"}),o.emptyWindow=new o("empty-window",{fontCharacter:"\\eae4"}),o.exclude=new o("exclude",{fontCharacter:"\\eae5"}),o.extensions=new o("extensions",{fontCharacter:"\\eae6"}),o.eyeClosed=new o("eye-closed",{fontCharacter:"\\eae7"}),o.fileBinary=new o("file-binary",{fontCharacter:"\\eae8"}),o.fileCode=new o("file-code",{fontCharacter:"\\eae9"}),o.fileMedia=new o("file-media",{fontCharacter:"\\eaea"}),o.filePdf=new o("file-pdf",{fontCharacter:"\\eaeb"}),o.fileSubmodule=new o("file-submodule",{fontCharacter:"\\eaec"}),o.fileSymlinkDirectory=new o("file-symlink-directory",{fontCharacter:"\\eaed"}),o.fileSymlinkFile=new o("file-symlink-file",{fontCharacter:"\\eaee"}),o.fileZip=new o("file-zip",{fontCharacter:"\\eaef"}),o.files=new o("files",{fontCharacter:"\\eaf0"}),o.filter=new o("filter",{fontCharacter:"\\eaf1"}),o.flame=new o("flame",{fontCharacter:"\\eaf2"}),o.foldDown=new o("fold-down",{fontCharacter:"\\eaf3"}),o.foldUp=new o("fold-up",{fontCharacter:"\\eaf4"}),o.fold=new o("fold",{fontCharacter:"\\eaf5"}),o.folderActive=new o("folder-active",{fontCharacter:"\\eaf6"}),o.folderOpened=new o("folder-opened",{fontCharacter:"\\eaf7"}),o.gear=new o("gear",{fontCharacter:"\\eaf8"}),o.gift=new o("gift",{fontCharacter:"\\eaf9"}),o.gistSecret=new o("gist-secret",{fontCharacter:"\\eafa"}),o.gist=new o("gist",{fontCharacter:"\\eafb"}),o.gitCommit=new o("git-commit",{fontCharacter:"\\eafc"}),o.gitCompare=new o("git-compare",{fontCharacter:"\\eafd"}),o.gitMerge=new o("git-merge",{fontCharacter:"\\eafe"}),o.githubAction=new o("github-action",{fontCharacter:"\\eaff"}),o.githubAlt=new o("github-alt",{fontCharacter:"\\eb00"}),o.globe=new o("globe",{fontCharacter:"\\eb01"}),o.grabber=new o("grabber",{fontCharacter:"\\eb02"}),o.graph=new o("graph",{fontCharacter:"\\eb03"}),o.gripper=new o("gripper",{fontCharacter:"\\eb04"}),o.heart=new o("heart",{fontCharacter:"\\eb05"}),o.home=new o("home",{fontCharacter:"\\eb06"}),o.horizontalRule=new o("horizontal-rule",{fontCharacter:"\\eb07"}),o.hubot=new o("hubot",{fontCharacter:"\\eb08"}),o.inbox=new o("inbox",{fontCharacter:"\\eb09"}),o.issueClosed=new o("issue-closed",{fontCharacter:"\\eba4"}),o.issueReopened=new o("issue-reopened",{fontCharacter:"\\eb0b"}),o.issues=new o("issues",{fontCharacter:"\\eb0c"}),o.italic=new o("italic",{fontCharacter:"\\eb0d"}),o.jersey=new o("jersey",{fontCharacter:"\\eb0e"}),o.json=new o("json",{fontCharacter:"\\eb0f"}),o.kebabVertical=new o("kebab-vertical",{fontCharacter:"\\eb10"}),o.key=new o("key",{fontCharacter:"\\eb11"}),o.law=new o("law",{fontCharacter:"\\eb12"}),o.lightbulbAutofix=new o("lightbulb-autofix",{fontCharacter:"\\eb13"}),o.linkExternal=new o("link-external",{fontCharacter:"\\eb14"}),o.link=new o("link",{fontCharacter:"\\eb15"}),o.listOrdered=new o("list-ordered",{fontCharacter:"\\eb16"}),o.listUnordered=new o("list-unordered",{fontCharacter:"\\eb17"}),o.liveShare=new o("live-share",{fontCharacter:"\\eb18"}),o.loading=new o("loading",{fontCharacter:"\\eb19"}),o.location=new o("location",{fontCharacter:"\\eb1a"}),o.mailRead=new o("mail-read",{fontCharacter:"\\eb1b"}),o.mail=new o("mail",{fontCharacter:"\\eb1c"}),o.markdown=new o("markdown",{fontCharacter:"\\eb1d"}),o.megaphone=new o("megaphone",{fontCharacter:"\\eb1e"}),o.mention=new o("mention",{fontCharacter:"\\eb1f"}),o.milestone=new o("milestone",{fontCharacter:"\\eb20"}),o.mortarBoard=new o("mortar-board",{fontCharacter:"\\eb21"}),o.move=new o("move",{fontCharacter:"\\eb22"}),o.multipleWindows=new o("multiple-windows",{fontCharacter:"\\eb23"}),o.mute=new o("mute",{fontCharacter:"\\eb24"}),o.noNewline=new o("no-newline",{fontCharacter:"\\eb25"}),o.note=new o("note",{fontCharacter:"\\eb26"}),o.octoface=new o("octoface",{fontCharacter:"\\eb27"}),o.openPreview=new o("open-preview",{fontCharacter:"\\eb28"}),o.package_=new o("package",{fontCharacter:"\\eb29"}),o.paintcan=new o("paintcan",{fontCharacter:"\\eb2a"}),o.pin=new o("pin",{fontCharacter:"\\eb2b"}),o.play=new o("play",{fontCharacter:"\\eb2c"}),o.run=new o("run",{fontCharacter:"\\eb2c"}),o.plug=new o("plug",{fontCharacter:"\\eb2d"}),o.preserveCase=new o("preserve-case",{fontCharacter:"\\eb2e"}),o.preview=new o("preview",{fontCharacter:"\\eb2f"}),o.project=new o("project",{fontCharacter:"\\eb30"}),o.pulse=new o("pulse",{fontCharacter:"\\eb31"}),o.question=new o("question",{fontCharacter:"\\eb32"}),o.quote=new o("quote",{fontCharacter:"\\eb33"}),o.radioTower=new o("radio-tower",{fontCharacter:"\\eb34"}),o.reactions=new o("reactions",{fontCharacter:"\\eb35"}),o.references=new o("references",{fontCharacter:"\\eb36"}),o.refresh=new o("refresh",{fontCharacter:"\\eb37"}),o.regex=new o("regex",{fontCharacter:"\\eb38"}),o.remoteExplorer=new o("remote-explorer",{fontCharacter:"\\eb39"}),o.remote=new o("remote",{fontCharacter:"\\eb3a"}),o.remove=new o("remove",{fontCharacter:"\\eb3b"}),o.replaceAll=new o("replace-all",{fontCharacter:"\\eb3c"}),o.replace=new o("replace",{fontCharacter:"\\eb3d"}),o.repoClone=new o("repo-clone",{fontCharacter:"\\eb3e"}),o.repoForcePush=new o("repo-force-push",{fontCharacter:"\\eb3f"}),o.repoPull=new o("repo-pull",{fontCharacter:"\\eb40"}),o.repoPush=new o("repo-push",{fontCharacter:"\\eb41"}),o.report=new o("report",{fontCharacter:"\\eb42"}),o.requestChanges=new o("request-changes",{fontCharacter:"\\eb43"}),o.rocket=new o("rocket",{fontCharacter:"\\eb44"}),o.rootFolderOpened=new o("root-folder-opened",{fontCharacter:"\\eb45"}),o.rootFolder=new o("root-folder",{fontCharacter:"\\eb46"}),o.rss=new o("rss",{fontCharacter:"\\eb47"}),o.ruby=new o("ruby",{fontCharacter:"\\eb48"}),o.saveAll=new o("save-all",{fontCharacter:"\\eb49"}),o.saveAs=new o("save-as",{fontCharacter:"\\eb4a"}),o.save=new o("save",{fontCharacter:"\\eb4b"}),o.screenFull=new o("screen-full",{fontCharacter:"\\eb4c"}),o.screenNormal=new o("screen-normal",{fontCharacter:"\\eb4d"}),o.searchStop=new o("search-stop",{fontCharacter:"\\eb4e"}),o.server=new o("server",{fontCharacter:"\\eb50"}),o.settingsGear=new o("settings-gear",{fontCharacter:"\\eb51"}),o.settings=new o("settings",{fontCharacter:"\\eb52"}),o.shield=new o("shield",{fontCharacter:"\\eb53"}),o.smiley=new o("smiley",{fontCharacter:"\\eb54"}),o.sortPrecedence=new o("sort-precedence",{fontCharacter:"\\eb55"}),o.splitHorizontal=new o("split-horizontal",{fontCharacter:"\\eb56"}),o.splitVertical=new o("split-vertical",{fontCharacter:"\\eb57"}),o.squirrel=new o("squirrel",{fontCharacter:"\\eb58"}),o.starFull=new o("star-full",{fontCharacter:"\\eb59"}),o.starHalf=new o("star-half",{fontCharacter:"\\eb5a"}),o.symbolClass=new o("symbol-class",{fontCharacter:"\\eb5b"}),o.symbolColor=new o("symbol-color",{fontCharacter:"\\eb5c"}),o.symbolCustomColor=new o("symbol-customcolor",{fontCharacter:"\\eb5c"}),o.symbolConstant=new o("symbol-constant",{fontCharacter:"\\eb5d"}),o.symbolEnumMember=new o("symbol-enum-member",{fontCharacter:"\\eb5e"}),o.symbolField=new o("symbol-field",{fontCharacter:"\\eb5f"}),o.symbolFile=new o("symbol-file",{fontCharacter:"\\eb60"}),o.symbolInterface=new o("symbol-interface",{fontCharacter:"\\eb61"}),o.symbolKeyword=new o("symbol-keyword",{fontCharacter:"\\eb62"}),o.symbolMisc=new o("symbol-misc",{fontCharacter:"\\eb63"}),o.symbolOperator=new o("symbol-operator",{fontCharacter:"\\eb64"}),o.symbolProperty=new o("symbol-property",{fontCharacter:"\\eb65"}),o.wrench=new o("wrench",{fontCharacter:"\\eb65"}),o.wrenchSubaction=new o("wrench-subaction",{fontCharacter:"\\eb65"}),o.symbolSnippet=new o("symbol-snippet",{fontCharacter:"\\eb66"}),o.tasklist=new o("tasklist",{fontCharacter:"\\eb67"}),o.telescope=new o("telescope",{fontCharacter:"\\eb68"}),o.textSize=new o("text-size",{fontCharacter:"\\eb69"}),o.threeBars=new o("three-bars",{fontCharacter:"\\eb6a"}),o.thumbsdown=new o("thumbsdown",{fontCharacter:"\\eb6b"}),o.thumbsup=new o("thumbsup",{fontCharacter:"\\eb6c"}),o.tools=new o("tools",{fontCharacter:"\\eb6d"}),o.triangleDown=new o("triangle-down",{fontCharacter:"\\eb6e"}),o.triangleLeft=new o("triangle-left",{fontCharacter:"\\eb6f"}),o.triangleRight=new o("triangle-right",{fontCharacter:"\\eb70"}),o.triangleUp=new o("triangle-up",{fontCharacter:"\\eb71"}),o.twitter=new o("twitter",{fontCharacter:"\\eb72"}),o.unfold=new o("unfold",{fontCharacter:"\\eb73"}),o.unlock=new o("unlock",{fontCharacter:"\\eb74"}),o.unmute=new o("unmute",{fontCharacter:"\\eb75"}),o.unverified=new o("unverified",{fontCharacter:"\\eb76"}),o.verified=new o("verified",{fontCharacter:"\\eb77"}),o.versions=new o("versions",{fontCharacter:"\\eb78"}),o.vmActive=new o("vm-active",{fontCharacter:"\\eb79"}),o.vmOutline=new o("vm-outline",{fontCharacter:"\\eb7a"}),o.vmRunning=new o("vm-running",{fontCharacter:"\\eb7b"}),o.watch=new o("watch",{fontCharacter:"\\eb7c"}),o.whitespace=new o("whitespace",{fontCharacter:"\\eb7d"}),o.wholeWord=new o("whole-word",{fontCharacter:"\\eb7e"}),o.window=new o("window",{fontCharacter:"\\eb7f"}),o.wordWrap=new o("word-wrap",{fontCharacter:"\\eb80"}),o.zoomIn=new o("zoom-in",{fontCharacter:"\\eb81"}),o.zoomOut=new o("zoom-out",{fontCharacter:"\\eb82"}),o.listFilter=new o("list-filter",{fontCharacter:"\\eb83"}),o.listFlat=new o("list-flat",{fontCharacter:"\\eb84"}),o.listSelection=new o("list-selection",{fontCharacter:"\\eb85"}),o.selection=new o("selection",{fontCharacter:"\\eb85"}),o.listTree=new o("list-tree",{fontCharacter:"\\eb86"}),o.debugBreakpointFunctionUnverified=new o("debug-breakpoint-function-unverified",{fontCharacter:"\\eb87"}),o.debugBreakpointFunction=new o("debug-breakpoint-function",{fontCharacter:"\\eb88"}),o.debugBreakpointFunctionDisabled=new o("debug-breakpoint-function-disabled",{fontCharacter:"\\eb88"}),o.debugStackframeActive=new o("debug-stackframe-active",{fontCharacter:"\\eb89"}),o.circleSmallFilled=new o("circle-small-filled",{fontCharacter:"\\eb8a"}),o.debugStackframeDot=new o("debug-stackframe-dot",o.circleSmallFilled.definition),o.debugStackframe=new o("debug-stackframe",{fontCharacter:"\\eb8b"}),o.debugStackframeFocused=new o("debug-stackframe-focused",{fontCharacter:"\\eb8b"}),o.debugBreakpointUnsupported=new o("debug-breakpoint-unsupported",{fontCharacter:"\\eb8c"}),o.symbolString=new o("symbol-string",{fontCharacter:"\\eb8d"}),o.debugReverseContinue=new o("debug-reverse-continue",{fontCharacter:"\\eb8e"}),o.debugStepBack=new o("debug-step-back",{fontCharacter:"\\eb8f"}),o.debugRestartFrame=new o("debug-restart-frame",{fontCharacter:"\\eb90"}),o.callIncoming=new o("call-incoming",{fontCharacter:"\\eb92"}),o.callOutgoing=new o("call-outgoing",{fontCharacter:"\\eb93"}),o.menu=new o("menu",{fontCharacter:"\\eb94"}),o.expandAll=new o("expand-all",{fontCharacter:"\\eb95"}),o.feedback=new o("feedback",{fontCharacter:"\\eb96"}),o.groupByRefType=new o("group-by-ref-type",{fontCharacter:"\\eb97"}),o.ungroupByRefType=new o("ungroup-by-ref-type",{fontCharacter:"\\eb98"}),o.account=new o("account",{fontCharacter:"\\eb99"}),o.bellDot=new o("bell-dot",{fontCharacter:"\\eb9a"}),o.debugConsole=new o("debug-console",{fontCharacter:"\\eb9b"}),o.library=new o("library",{fontCharacter:"\\eb9c"}),o.output=new o("output",{fontCharacter:"\\eb9d"}),o.runAll=new o("run-all",{fontCharacter:"\\eb9e"}),o.syncIgnored=new o("sync-ignored",{fontCharacter:"\\eb9f"}),o.pinned=new o("pinned",{fontCharacter:"\\eba0"}),o.githubInverted=new o("github-inverted",{fontCharacter:"\\eba1"}),o.debugAlt=new o("debug-alt",{fontCharacter:"\\eb91"}),o.serverProcess=new o("server-process",{fontCharacter:"\\eba2"}),o.serverEnvironment=new o("server-environment",{fontCharacter:"\\eba3"}),o.pass=new o("pass",{fontCharacter:"\\eba4"}),o.stopCircle=new o("stop-circle",{fontCharacter:"\\eba5"}),o.playCircle=new o("play-circle",{fontCharacter:"\\eba6"}),o.record=new o("record",{fontCharacter:"\\eba7"}),o.debugAltSmall=new o("debug-alt-small",{fontCharacter:"\\eba8"}),o.vmConnect=new o("vm-connect",{fontCharacter:"\\eba9"}),o.cloud=new o("cloud",{fontCharacter:"\\ebaa"}),o.merge=new o("merge",{fontCharacter:"\\ebab"}),o.exportIcon=new o("export",{fontCharacter:"\\ebac"}),o.graphLeft=new o("graph-left",{fontCharacter:"\\ebad"}),o.magnet=new o("magnet",{fontCharacter:"\\ebae"}),o.notebook=new o("notebook",{fontCharacter:"\\ebaf"}),o.redo=new o("redo",{fontCharacter:"\\ebb0"}),o.checkAll=new o("check-all",{fontCharacter:"\\ebb1"}),o.pinnedDirty=new o("pinned-dirty",{fontCharacter:"\\ebb2"}),o.passFilled=new o("pass-filled",{fontCharacter:"\\ebb3"}),o.circleLargeFilled=new o("circle-large-filled",{fontCharacter:"\\ebb4"}),o.circleLargeOutline=new o("circle-large-outline",{fontCharacter:"\\ebb5"}),o.combine=new o("combine",{fontCharacter:"\\ebb6"}),o.gather=new o("gather",{fontCharacter:"\\ebb6"}),o.table=new o("table",{fontCharacter:"\\ebb7"}),o.variableGroup=new o("variable-group",{fontCharacter:"\\ebb8"}),o.typeHierarchy=new o("type-hierarchy",{fontCharacter:"\\ebb9"}),o.typeHierarchySub=new o("type-hierarchy-sub",{fontCharacter:"\\ebba"}),o.typeHierarchySuper=new o("type-hierarchy-super",{fontCharacter:"\\ebbb"}),o.gitPullRequestCreate=new o("git-pull-request-create",{fontCharacter:"\\ebbc"}),o.runAbove=new o("run-above",{fontCharacter:"\\ebbd"}),o.runBelow=new o("run-below",{fontCharacter:"\\ebbe"}),o.notebookTemplate=new o("notebook-template",{fontCharacter:"\\ebbf"}),o.debugRerun=new o("debug-rerun",{fontCharacter:"\\ebc0"}),o.workspaceTrusted=new o("workspace-trusted",{fontCharacter:"\\ebc1"}),o.workspaceUntrusted=new o("workspace-untrusted",{fontCharacter:"\\ebc2"}),o.workspaceUnspecified=new o("workspace-unspecified",{fontCharacter:"\\ebc3"}),o.terminalCmd=new o("terminal-cmd",{fontCharacter:"\\ebc4"}),o.terminalDebian=new o("terminal-debian",{fontCharacter:"\\ebc5"}),o.terminalLinux=new o("terminal-linux",{fontCharacter:"\\ebc6"}),o.terminalPowershell=new o("terminal-powershell",{fontCharacter:"\\ebc7"}),o.terminalTmux=new o("terminal-tmux",{fontCharacter:"\\ebc8"}),o.terminalUbuntu=new o("terminal-ubuntu",{fontCharacter:"\\ebc9"}),o.terminalBash=new o("terminal-bash",{fontCharacter:"\\ebca"}),o.arrowSwap=new o("arrow-swap",{fontCharacter:"\\ebcb"}),o.copy=new o("copy",{fontCharacter:"\\ebcc"}),o.personAdd=new o("person-add",{fontCharacter:"\\ebcd"}),o.filterFilled=new o("filter-filled",{fontCharacter:"\\ebce"}),o.wand=new o("wand",{fontCharacter:"\\ebcf"}),o.debugLineByLine=new o("debug-line-by-line",{fontCharacter:"\\ebd0"}),o.inspect=new o("inspect",{fontCharacter:"\\ebd1"}),o.layers=new o("layers",{fontCharacter:"\\ebd2"}),o.layersDot=new o("layers-dot",{fontCharacter:"\\ebd3"}),o.layersActive=new o("layers-active",{fontCharacter:"\\ebd4"}),o.compass=new o("compass",{fontCharacter:"\\ebd5"}),o.compassDot=new o("compass-dot",{fontCharacter:"\\ebd6"}),o.compassActive=new o("compass-active",{fontCharacter:"\\ebd7"}),o.azure=new o("azure",{fontCharacter:"\\ebd8"}),o.issueDraft=new o("issue-draft",{fontCharacter:"\\ebd9"}),o.gitPullRequestClosed=new o("git-pull-request-closed",{fontCharacter:"\\ebda"}),o.gitPullRequestDraft=new o("git-pull-request-draft",{fontCharacter:"\\ebdb"}),o.debugAll=new o("debug-all",{fontCharacter:"\\ebdc"}),o.debugCoverage=new o("debug-coverage",{fontCharacter:"\\ebdd"}),o.runErrors=new o("run-errors",{fontCharacter:"\\ebde"}),o.folderLibrary=new o("folder-library",{fontCharacter:"\\ebdf"}),o.debugContinueSmall=new o("debug-continue-small",{fontCharacter:"\\ebe0"}),o.beakerStop=new o("beaker-stop",{fontCharacter:"\\ebe1"}),o.graphLine=new o("graph-line",{fontCharacter:"\\ebe2"}),o.graphScatter=new o("graph-scatter",{fontCharacter:"\\ebe3"}),o.pieChart=new o("pie-chart",{fontCharacter:"\\ebe4"}),o.bracket=new o("bracket",o.json.definition),o.bracketDot=new o("bracket-dot",{fontCharacter:"\\ebe5"}),o.bracketError=new o("bracket-error",{fontCharacter:"\\ebe6"}),o.lockSmall=new o("lock-small",{fontCharacter:"\\ebe7"}),o.azureDevops=new o("azure-devops",{fontCharacter:"\\ebe8"}),o.verifiedFilled=new o("verified-filled",{fontCharacter:"\\ebe9"}),o.newLine=new o("newline",{fontCharacter:"\\ebea"}),o.layout=new o("layout",{fontCharacter:"\\ebeb"}),o.layoutActivitybarLeft=new o("layout-activitybar-left",{fontCharacter:"\\ebec"}),o.layoutActivitybarRight=new o("layout-activitybar-right",{fontCharacter:"\\ebed"}),o.layoutPanelLeft=new o("layout-panel-left",{fontCharacter:"\\ebee"}),o.layoutPanelCenter=new o("layout-panel-center",{fontCharacter:"\\ebef"}),o.layoutPanelJustify=new o("layout-panel-justify",{fontCharacter:"\\ebf0"}),o.layoutPanelRight=new o("layout-panel-right",{fontCharacter:"\\ebf1"}),o.layoutPanel=new o("layout-panel",{fontCharacter:"\\ebf2"}),o.layoutSidebarLeft=new o("layout-sidebar-left",{fontCharacter:"\\ebf3"}),o.layoutSidebarRight=new o("layout-sidebar-right",{fontCharacter:"\\ebf4"}),o.layoutStatusbar=new o("layout-statusbar",{fontCharacter:"\\ebf5"}),o.layoutMenubar=new o("layout-menubar",{fontCharacter:"\\ebf6"}),o.layoutCentered=new o("layout-centered",{fontCharacter:"\\ebf7"}),o.layoutSidebarRightOff=new o("layout-sidebar-right-off",{fontCharacter:"\\ec00"}),o.layoutPanelOff=new o("layout-panel-off",{fontCharacter:"\\ec01"}),o.layoutSidebarLeftOff=new o("layout-sidebar-left-off",{fontCharacter:"\\ec02"}),o.target=new o("target",{fontCharacter:"\\ebf8"}),o.indent=new o("indent",{fontCharacter:"\\ebf9"}),o.recordSmall=new o("record-small",{fontCharacter:"\\ebfa"}),o.errorSmall=new o("error-small",{fontCharacter:"\\ebfb"}),o.arrowCircleDown=new o("arrow-circle-down",{fontCharacter:"\\ebfc"}),o.arrowCircleLeft=new o("arrow-circle-left",{fontCharacter:"\\ebfd"}),o.arrowCircleRight=new o("arrow-circle-right",{fontCharacter:"\\ebfe"}),o.arrowCircleUp=new o("arrow-circle-up",{fontCharacter:"\\ebff"}),o.heartFilled=new o("heart-filled",{fontCharacter:"\\ec04"}),o.map=new o("map",{fontCharacter:"\\ec05"}),o.mapFilled=new o("map-filled",{fontCharacter:"\\ec06"}),o.circleSmall=new o("circle-small",{fontCharacter:"\\ec07"}),o.bellSlash=new o("bell-slash",{fontCharacter:"\\ec08"}),o.bellSlashDot=new o("bell-slash-dot",{fontCharacter:"\\ec09"}),o.commentUnresolved=new o("comment-unresolved",{fontCharacter:"\\ec0a"}),o.gitPullRequestGoToChanges=new o("git-pull-request-go-to-changes",{fontCharacter:"\\ec0b"}),o.gitPullRequestNewChanges=new o("git-pull-request-new-changes",{fontCharacter:"\\ec0c"}),o.dialogError=new o("dialog-error",o.error.definition),o.dialogWarning=new o("dialog-warning",o.warning.definition),o.dialogInfo=new o("dialog-info",o.info.definition),o.dialogClose=new o("dialog-close",o.close.definition),o.treeItemExpanded=new o("tree-item-expanded",o.chevronDown.definition),o.treeFilterOnTypeOn=new o("tree-filter-on-type-on",o.listFilter.definition),o.treeFilterOnTypeOff=new o("tree-filter-on-type-off",o.listSelection.definition),o.treeFilterClear=new o("tree-filter-clear",o.close.definition),o.treeItemLoading=new o("tree-item-loading",o.loading.definition),o.menuSelection=new o("menu-selection",o.check.definition),o.menuSubmenu=new o("menu-submenu",o.chevronRight.definition),o.menuBarMore=new o("menubar-more",o.more.definition),o.scrollbarButtonLeft=new o("scrollbar-button-left",o.triangleLeft.definition),o.scrollbarButtonRight=new o("scrollbar-button-right",o.triangleRight.definition),o.scrollbarButtonUp=new o("scrollbar-button-up",o.triangleUp.definition),o.scrollbarButtonDown=new o("scrollbar-button-down",o.triangleDown.definition),o.toolBarMore=new o("toolbar-more",o.more.definition),o.quickInputBack=new o("quick-input-back",o.arrowLeft.definition),function(e){e.iconNameSegment="[A-Za-z0-9]+",e.iconNameExpression="[A-Za-z0-9-]+",e.iconModifierExpression="~[A-Za-z]+",e.iconNameCharacter="[A-Za-z0-9~-]";const t=new RegExp(`^(${e.iconNameExpression})(${e.iconModifierExpression})?$`);function i(e){if(e instanceof o)return["codicon","codicon-"+e.id];const n=t.exec(e.id);if(!n)return i(o.error);const[,s,r]=n,a=["codicon","codicon-"+s];return r&&a.push("codicon-modifier-"+r.substr(1)),a}e.asClassNameArray=i,e.asClassName=function(e){return i(e).join(" ")},e.asCSSSelector=function(e){return"."+i(e).join(".")}}(s||(s={}))},41264:(e,t,i)=>{"use strict";function n(e,t){const i=Math.pow(10,t);return Math.round(e*i)/i}i.d(t,{Il:()=>a,VS:()=>o,tx:()=>r});class o{constructor(e,t,i,o=1){this._rgbaBrand=void 0,this.r=0|Math.min(255,Math.max(0,e)),this.g=0|Math.min(255,Math.max(0,t)),this.b=0|Math.min(255,Math.max(0,i)),this.a=n(Math.max(Math.min(1,o),0),3)}static equals(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a}}class s{constructor(e,t,i,o){this._hslaBrand=void 0,this.h=0|Math.max(Math.min(360,e),0),this.s=n(Math.max(Math.min(1,t),0),3),this.l=n(Math.max(Math.min(1,i),0),3),this.a=n(Math.max(Math.min(1,o),0),3)}static equals(e,t){return e.h===t.h&&e.s===t.s&&e.l===t.l&&e.a===t.a}static fromRGBA(e){const t=e.r/255,i=e.g/255,n=e.b/255,o=e.a,r=Math.max(t,i,n),a=Math.min(t,i,n);let l=0,c=0;const d=(a+r)/2,h=r-a;if(h>0){switch(c=Math.min(d<=.5?h/(2*d):h/(2-2*d),1),r){case t:l=(i-n)/h+(i<n?6:0);break;case i:l=(n-t)/h+2;break;case n:l=(t-i)/h+4}l*=60,l=Math.round(l)}return new s(l,c,d,o)}static _hue2rgb(e,t,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?e+6*(t-e)*i:i<.5?t:i<2/3?e+(t-e)*(2/3-i)*6:e}static toRGBA(e){const t=e.h/360,{s:i,l:n,a:r}=e;let a,l,c;if(0===i)a=l=c=n;else{const e=n<.5?n*(1+i):n+i-n*i,o=2*n-e;a=s._hue2rgb(o,e,t+1/3),l=s._hue2rgb(o,e,t),c=s._hue2rgb(o,e,t-1/3)}return new o(Math.round(255*a),Math.round(255*l),Math.round(255*c),r)}}class r{constructor(e,t,i,o){this._hsvaBrand=void 0,this.h=0|Math.max(Math.min(360,e),0),this.s=n(Math.max(Math.min(1,t),0),3),this.v=n(Math.max(Math.min(1,i),0),3),this.a=n(Math.max(Math.min(1,o),0),3)}static equals(e,t){return e.h===t.h&&e.s===t.s&&e.v===t.v&&e.a===t.a}static fromRGBA(e){const t=e.r/255,i=e.g/255,n=e.b/255,o=Math.max(t,i,n),s=o-Math.min(t,i,n),a=0===o?0:s/o;let l;return l=0===s?0:o===t?((i-n)/s%6+6)%6:o===i?(n-t)/s+2:(t-i)/s+4,new r(Math.round(60*l),a,o,e.a)}static toRGBA(e){const{h:t,s:i,v:n,a:s}=e,r=n*i,a=r*(1-Math.abs(t/60%2-1)),l=n-r;let[c,d,h]=[0,0,0];return t<60?(c=r,d=a):t<120?(c=a,d=r):t<180?(d=r,h=a):t<240?(d=a,h=r):t<300?(c=a,h=r):t<=360&&(c=r,h=a),c=Math.round(255*(c+l)),d=Math.round(255*(d+l)),h=Math.round(255*(h+l)),new o(c,d,h,s)}}class a{constructor(e){if(!e)throw new Error("Color needs a value");if(e instanceof o)this.rgba=e;else if(e instanceof s)this._hsla=e,this.rgba=s.toRGBA(e);else{if(!(e instanceof r))throw new Error("Invalid color ctor argument");this._hsva=e,this.rgba=r.toRGBA(e)}}static fromHex(e){return a.Format.CSS.parseHex(e)||a.red}get hsla(){return this._hsla?this._hsla:s.fromRGBA(this.rgba)}get hsva(){return this._hsva?this._hsva:r.fromRGBA(this.rgba)}equals(e){return!!e&&o.equals(this.rgba,e.rgba)&&s.equals(this.hsla,e.hsla)&&r.equals(this.hsva,e.hsva)}getRelativeLuminance(){return n(.2126*a._relativeLuminanceForComponent(this.rgba.r)+.7152*a._relativeLuminanceForComponent(this.rgba.g)+.0722*a._relativeLuminanceForComponent(this.rgba.b),4)}static _relativeLuminanceForComponent(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}isLighter(){return(299*this.rgba.r+587*this.rgba.g+114*this.rgba.b)/1e3>=128}isLighterThan(e){return this.getRelativeLuminance()>e.getRelativeLuminance()}isDarkerThan(e){return this.getRelativeLuminance()<e.getRelativeLuminance()}lighten(e){return new a(new s(this.hsla.h,this.hsla.s,this.hsla.l+this.hsla.l*e,this.hsla.a))}darken(e){return new a(new s(this.hsla.h,this.hsla.s,this.hsla.l-this.hsla.l*e,this.hsla.a))}transparent(e){const{r:t,g:i,b:n,a:s}=this.rgba;return new a(new o(t,i,n,s*e))}isTransparent(){return 0===this.rgba.a}isOpaque(){return 1===this.rgba.a}opposite(){return new a(new o(255-this.rgba.r,255-this.rgba.g,255-this.rgba.b,this.rgba.a))}toString(){return this._toString||(this._toString=a.Format.CSS.format(this)),this._toString}static getLighterColor(e,t,i){if(e.isLighterThan(t))return e;i=i||.5;const n=e.getRelativeLuminance(),o=t.getRelativeLuminance();return i=i*(o-n)/o,e.lighten(i)}static getDarkerColor(e,t,i){if(e.isDarkerThan(t))return e;i=i||.5;const n=e.getRelativeLuminance();return i=i*(n-t.getRelativeLuminance())/n,e.darken(i)}}a.white=new a(new o(255,255,255,1)),a.black=new a(new o(0,0,0,1)),a.red=new a(new o(255,0,0,1)),a.blue=new a(new o(0,0,255,1)),a.green=new a(new o(0,255,0,1)),a.cyan=new a(new o(0,255,255,1)),a.lightgrey=new a(new o(211,211,211,1)),a.transparent=new a(new o(0,0,0,0)),function(e){let t;!function(t){let i;!function(t){function i(e){const t=e.toString(16);return 2!==t.length?"0"+t:t}function n(e){switch(e){case 48:return 0;case 49:return 1;case 50:return 2;case 51:return 3;case 52:return 4;case 53:return 5;case 54:return 6;case 55:return 7;case 56:return 8;case 57:return 9;case 97:case 65:return 10;case 98:case 66:return 11;case 99:case 67:return 12;case 100:case 68:return 13;case 101:case 69:return 14;case 102:case 70:return 15}return 0}t.formatRGB=function(t){return 1===t.rgba.a?`rgb(${t.rgba.r}, ${t.rgba.g}, ${t.rgba.b})`:e.Format.CSS.formatRGBA(t)},t.formatRGBA=function(e){return`rgba(${e.rgba.r}, ${e.rgba.g}, ${e.rgba.b}, ${+e.rgba.a.toFixed(2)})`},t.formatHSL=function(t){return 1===t.hsla.a?`hsl(${t.hsla.h}, ${(100*t.hsla.s).toFixed(2)}%, ${(100*t.hsla.l).toFixed(2)}%)`:e.Format.CSS.formatHSLA(t)},t.formatHSLA=function(e){return`hsla(${e.hsla.h}, ${(100*e.hsla.s).toFixed(2)}%, ${(100*e.hsla.l).toFixed(2)}%, ${e.hsla.a.toFixed(2)})`},t.formatHex=function(e){return`#${i(e.rgba.r)}${i(e.rgba.g)}${i(e.rgba.b)}`},t.formatHexA=function(t,n=!1){return n&&1===t.rgba.a?e.Format.CSS.formatHex(t):`#${i(t.rgba.r)}${i(t.rgba.g)}${i(t.rgba.b)}${i(Math.round(255*t.rgba.a))}`},t.format=function(t){return t.isOpaque()?e.Format.CSS.formatHex(t):e.Format.CSS.formatRGBA(t)},t.parseHex=function(t){const i=t.length;if(0===i)return null;if(35!==t.charCodeAt(0))return null;if(7===i){const i=16*n(t.charCodeAt(1))+n(t.charCodeAt(2)),s=16*n(t.charCodeAt(3))+n(t.charCodeAt(4)),r=16*n(t.charCodeAt(5))+n(t.charCodeAt(6));return new e(new o(i,s,r,1))}if(9===i){const i=16*n(t.charCodeAt(1))+n(t.charCodeAt(2)),s=16*n(t.charCodeAt(3))+n(t.charCodeAt(4)),r=16*n(t.charCodeAt(5))+n(t.charCodeAt(6)),a=16*n(t.charCodeAt(7))+n(t.charCodeAt(8));return new e(new o(i,s,r,a/255))}if(4===i){const i=n(t.charCodeAt(1)),s=n(t.charCodeAt(2)),r=n(t.charCodeAt(3));return new e(new o(16*i+i,16*s+s,16*r+r))}if(5===i){const i=n(t.charCodeAt(1)),s=n(t.charCodeAt(2)),r=n(t.charCodeAt(3)),a=n(t.charCodeAt(4));return new e(new o(16*i+i,16*s+s,16*r+r,(16*a+a)/255))}return null}}(i=t.CSS||(t.CSS={}))}(t=e.Format||(e.Format={}))}(a||(a={}))},73278:(e,t,i)=>{"use strict";i.d(t,{Hl:()=>r,Ix:()=>s,ZO:()=>o});var n=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};function o(e){return{asString:()=>n(this,void 0,void 0,(function*(){return e})),asFile:()=>{},value:"string"==typeof e?e:void 0}}function s(e,t,i){return{asString:()=>n(this,void 0,void 0,(function*(){return""})),asFile:()=>({name:e,uri:t,data:i}),value:void 0}}class r{constructor(){this._entries=new Map}get size(){return this._entries.size}has(e){return this._entries.has(this.toKey(e))}get(e){var t;return null===(t=this._entries.get(this.toKey(e)))||void 0===t?void 0:t[0]}append(e,t){const i=this._entries.get(e);i?i.push(t):this._entries.set(this.toKey(e),[t])}replace(e,t){this._entries.set(this.toKey(e),[t])}delete(e){this._entries.delete(this.toKey(e))}*entries(){for(const[e,t]of this._entries.entries())for(const i of t)yield[e,i]}values(){return Array.from(this._entries.values()).flat()}forEach(e){for(const[t,i]of this.entries())e(i,t)}toKey(e){return e.toLowerCase()}}},49898:(e,t,i)=>{"use strict";function n(e,t,i){let n=null,o=null;if("function"==typeof i.value?(n="value",o=i.value,0!==o.length&&console.warn("Memoize should only be used in functions with zero parameters")):"function"==typeof i.get&&(n="get",o=i.get),!o)throw new Error("not supported");const s=`$memoize$${t}`;i[n]=function(...e){return this.hasOwnProperty(s)||Object.defineProperty(this,s,{configurable:!1,enumerable:!1,writable:!1,value:o.apply(this,e)}),this[s]}}i.d(t,{H:()=>n})},22571:(e,t,i)=>{"use strict";i.d(t,{Hs:()=>d,a$:()=>r});class n{constructor(e,t,i,n){this.originalStart=e,this.originalLength=t,this.modifiedStart=i,this.modifiedLength=n}getOriginalEnd(){return this.originalStart+this.originalLength}getModifiedEnd(){return this.modifiedStart+this.modifiedLength}}var o=i(89954);class s{constructor(e){this.source=e}getElements(){const e=this.source,t=new Int32Array(e.length);for(let i=0,n=e.length;i<n;i++)t[i]=e.charCodeAt(i);return t}}function r(e,t,i){return new d(new s(e),new s(t)).ComputeDiff(i).changes}class a{static Assert(e,t){if(!e)throw new Error(t)}}class l{static Copy(e,t,i,n,o){for(let s=0;s<o;s++)i[n+s]=e[t+s]}static Copy2(e,t,i,n,o){for(let s=0;s<o;s++)i[n+s]=e[t+s]}}class c{constructor(){this.m_changes=[],this.m_originalStart=1073741824,this.m_modifiedStart=1073741824,this.m_originalCount=0,this.m_modifiedCount=0}MarkNextChange(){(this.m_originalCount>0||this.m_modifiedCount>0)&&this.m_changes.push(new n(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++}AddModifiedElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class d{constructor(e,t,i=null){this.ContinueProcessingPredicate=i,this._originalSequence=e,this._modifiedSequence=t;const[n,o,s]=d._getElements(e),[r,a,l]=d._getElements(t);this._hasStrings=s&&l,this._originalStringElements=n,this._originalElementsOrHash=o,this._modifiedStringElements=r,this._modifiedElementsOrHash=a,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(e){return e.length>0&&"string"==typeof e[0]}static _getElements(e){const t=e.getElements();if(d._isStringArray(t)){const e=new Int32Array(t.length);for(let i=0,n=t.length;i<n;i++)e[i]=(0,o.Cv)(t[i],0);return[t,e,!0]}return t instanceof Int32Array?[[],t,!1]:[[],new Int32Array(t),!1]}ElementsAreEqual(e,t){return this._originalElementsOrHash[e]===this._modifiedElementsOrHash[t]&&(!this._hasStrings||this._originalStringElements[e]===this._modifiedStringElements[t])}ElementsAreStrictEqual(e,t){if(!this.ElementsAreEqual(e,t))return!1;return d._getStrictElement(this._originalSequence,e)===d._getStrictElement(this._modifiedSequence,t)}static _getStrictElement(e,t){return"function"==typeof e.getStrictElement?e.getStrictElement(t):null}OriginalElementsAreEqual(e,t){return this._originalElementsOrHash[e]===this._originalElementsOrHash[t]&&(!this._hasStrings||this._originalStringElements[e]===this._originalStringElements[t])}ModifiedElementsAreEqual(e,t){return this._modifiedElementsOrHash[e]===this._modifiedElementsOrHash[t]&&(!this._hasStrings||this._modifiedStringElements[e]===this._modifiedStringElements[t])}ComputeDiff(e){return this._ComputeDiff(0,this._originalElementsOrHash.length-1,0,this._modifiedElementsOrHash.length-1,e)}_ComputeDiff(e,t,i,n,o){const s=[!1];let r=this.ComputeDiffRecursive(e,t,i,n,s);return o&&(r=this.PrettifyChanges(r)),{quitEarly:s[0],changes:r}}ComputeDiffRecursive(e,t,i,o,s){for(s[0]=!1;e<=t&&i<=o&&this.ElementsAreEqual(e,i);)e++,i++;for(;t>=e&&o>=i&&this.ElementsAreEqual(t,o);)t--,o--;if(e>t||i>o){let s;return i<=o?(a.Assert(e===t+1,"originalStart should only be one more than originalEnd"),s=[new n(e,0,i,o-i+1)]):e<=t?(a.Assert(i===o+1,"modifiedStart should only be one more than modifiedEnd"),s=[new n(e,t-e+1,i,0)]):(a.Assert(e===t+1,"originalStart should only be one more than originalEnd"),a.Assert(i===o+1,"modifiedStart should only be one more than modifiedEnd"),s=[]),s}const r=[0],l=[0],c=this.ComputeRecursionPoint(e,t,i,o,r,l,s),d=r[0],h=l[0];if(null!==c)return c;if(!s[0]){const r=this.ComputeDiffRecursive(e,d,i,h,s);let a=[];return a=s[0]?[new n(d+1,t-(d+1)+1,h+1,o-(h+1)+1)]:this.ComputeDiffRecursive(d+1,t,h+1,o,s),this.ConcatenateChanges(r,a)}return[new n(e,t-e+1,i,o-i+1)]}WALKTRACE(e,t,i,o,s,r,a,l,d,h,u,g,p,m,f,_,v,b){let C=null,w=null,y=new c,S=t,L=i,k=p[0]-_[0]-o,x=-1073741824,D=this.m_forwardHistory.length-1;do{const t=k+e;t===S||t<L&&d[t-1]<d[t+1]?(m=(u=d[t+1])-k-o,u<x&&y.MarkNextChange(),x=u,y.AddModifiedElement(u+1,m),k=t+1-e):(m=(u=d[t-1]+1)-k-o,u<x&&y.MarkNextChange(),x=u-1,y.AddOriginalElement(u,m+1),k=t-1-e),D>=0&&(e=(d=this.m_forwardHistory[D])[0],S=1,L=d.length-1)}while(--D>=-1);if(C=y.getReverseChanges(),b[0]){let e=p[0]+1,t=_[0]+1;if(null!==C&&C.length>0){const i=C[C.length-1];e=Math.max(e,i.getOriginalEnd()),t=Math.max(t,i.getModifiedEnd())}w=[new n(e,g-e+1,t,f-t+1)]}else{y=new c,S=r,L=a,k=p[0]-_[0]-l,x=1073741824,D=v?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const e=k+s;e===S||e<L&&h[e-1]>=h[e+1]?(m=(u=h[e+1]-1)-k-l,u>x&&y.MarkNextChange(),x=u+1,y.AddOriginalElement(u+1,m+1),k=e+1-s):(m=(u=h[e-1])-k-l,u>x&&y.MarkNextChange(),x=u,y.AddModifiedElement(u+1,m+1),k=e-1-s),D>=0&&(s=(h=this.m_reverseHistory[D])[0],S=1,L=h.length-1)}while(--D>=-1);w=y.getChanges()}return this.ConcatenateChanges(C,w)}ComputeRecursionPoint(e,t,i,o,s,r,a){let c=0,d=0,h=0,u=0,g=0,p=0;e--,i--,s[0]=0,r[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const m=t-e+(o-i),f=m+1,_=new Int32Array(f),v=new Int32Array(f),b=o-i,C=t-e,w=e-i,y=t-o,S=(C-b)%2==0;_[b]=e,v[C]=t,a[0]=!1;for(let L=1;L<=m/2+1;L++){let m=0,k=0;h=this.ClipDiagonalBound(b-L,L,b,f),u=this.ClipDiagonalBound(b+L,L,b,f);for(let e=h;e<=u;e+=2){c=e===h||e<u&&_[e-1]<_[e+1]?_[e+1]:_[e-1]+1,d=c-(e-b)-w;const i=c;for(;c<t&&d<o&&this.ElementsAreEqual(c+1,d+1);)c++,d++;if(_[e]=c,c+d>m+k&&(m=c,k=d),!S&&Math.abs(e-C)<=L-1&&c>=v[e])return s[0]=c,r[0]=d,i<=v[e]&&L<=1448?this.WALKTRACE(b,h,u,w,C,g,p,y,_,v,c,t,s,d,o,r,S,a):null}const x=(m-e+(k-i)-L)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(m,x))return a[0]=!0,s[0]=m,r[0]=k,x>0&&L<=1448?this.WALKTRACE(b,h,u,w,C,g,p,y,_,v,c,t,s,d,o,r,S,a):(e++,i++,[new n(e,t-e+1,i,o-i+1)]);g=this.ClipDiagonalBound(C-L,L,C,f),p=this.ClipDiagonalBound(C+L,L,C,f);for(let n=g;n<=p;n+=2){c=n===g||n<p&&v[n-1]>=v[n+1]?v[n+1]-1:v[n-1],d=c-(n-C)-y;const l=c;for(;c>e&&d>i&&this.ElementsAreEqual(c,d);)c--,d--;if(v[n]=c,S&&Math.abs(n-b)<=L&&c<=_[n])return s[0]=c,r[0]=d,l>=_[n]&&L<=1448?this.WALKTRACE(b,h,u,w,C,g,p,y,_,v,c,t,s,d,o,r,S,a):null}if(L<=1447){let e=new Int32Array(u-h+2);e[0]=b-h+1,l.Copy2(_,h,e,1,u-h+1),this.m_forwardHistory.push(e),e=new Int32Array(p-g+2),e[0]=C-g+1,l.Copy2(v,g,e,1,p-g+1),this.m_reverseHistory.push(e)}}return this.WALKTRACE(b,h,u,w,C,g,p,y,_,v,c,t,s,d,o,r,S,a)}PrettifyChanges(e){for(let t=0;t<e.length;t++){const i=e[t],n=t<e.length-1?e[t+1].originalStart:this._originalElementsOrHash.length,o=t<e.length-1?e[t+1].modifiedStart:this._modifiedElementsOrHash.length,s=i.originalLength>0,r=i.modifiedLength>0;for(;i.originalStart+i.originalLength<n&&i.modifiedStart+i.modifiedLength<o&&(!s||this.OriginalElementsAreEqual(i.originalStart,i.originalStart+i.originalLength))&&(!r||this.ModifiedElementsAreEqual(i.modifiedStart,i.modifiedStart+i.modifiedLength));){const e=this.ElementsAreStrictEqual(i.originalStart,i.modifiedStart);if(this.ElementsAreStrictEqual(i.originalStart+i.originalLength,i.modifiedStart+i.modifiedLength)&&!e)break;i.originalStart++,i.modifiedStart++}const a=[null];t<e.length-1&&this.ChangesOverlap(e[t],e[t+1],a)&&(e[t]=a[0],e.splice(t+1,1),t--)}for(let t=e.length-1;t>=0;t--){const i=e[t];let n=0,o=0;if(t>0){const i=e[t-1];n=i.originalStart+i.originalLength,o=i.modifiedStart+i.modifiedLength}const s=i.originalLength>0,r=i.modifiedLength>0;let a=0,l=this._boundaryScore(i.originalStart,i.originalLength,i.modifiedStart,i.modifiedLength);for(let e=1;;e++){const t=i.originalStart-e,c=i.modifiedStart-e;if(t<n||c<o)break;if(s&&!this.OriginalElementsAreEqual(t,t+i.originalLength))break;if(r&&!this.ModifiedElementsAreEqual(c,c+i.modifiedLength))break;const d=(t===n&&c===o?5:0)+this._boundaryScore(t,i.originalLength,c,i.modifiedLength);d>l&&(l=d,a=e)}i.originalStart-=a,i.modifiedStart-=a;const c=[null];t>0&&this.ChangesOverlap(e[t-1],e[t],c)&&(e[t-1]=c[0],e.splice(t,1),t++)}if(this._hasStrings)for(let t=1,i=e.length;t<i;t++){const i=e[t-1],n=e[t],o=n.originalStart-i.originalStart-i.originalLength,s=i.originalStart,r=n.originalStart+n.originalLength,a=r-s,l=i.modifiedStart,c=n.modifiedStart+n.modifiedLength,d=c-l;if(o<5&&a<20&&d<20){const e=this._findBetterContiguousSequence(s,a,l,d,o);if(e){const[t,s]=e;t===i.originalStart+i.originalLength&&s===i.modifiedStart+i.modifiedLength||(i.originalLength=t-i.originalStart,i.modifiedLength=s-i.modifiedStart,n.originalStart=t+o,n.modifiedStart=s+o,n.originalLength=r-n.originalStart,n.modifiedLength=c-n.modifiedStart)}}}return e}_findBetterContiguousSequence(e,t,i,n,o){if(t<o||n<o)return null;const s=e+t-o+1,r=i+n-o+1;let a=0,l=0,c=0;for(let d=e;d<s;d++)for(let e=i;e<r;e++){const t=this._contiguousSequenceScore(d,e,o);t>0&&t>a&&(a=t,l=d,c=e)}return a>0?[l,c]:null}_contiguousSequenceScore(e,t,i){let n=0;for(let o=0;o<i;o++){if(!this.ElementsAreEqual(e+o,t+o))return 0;n+=this._originalStringElements[e+o].length}return n}_OriginalIsBoundary(e){return e<=0||e>=this._originalElementsOrHash.length-1||this._hasStrings&&/^\s*$/.test(this._originalStringElements[e])}_OriginalRegionIsBoundary(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){const i=e+t;if(this._OriginalIsBoundary(i-1)||this._OriginalIsBoundary(i))return!0}return!1}_ModifiedIsBoundary(e){return e<=0||e>=this._modifiedElementsOrHash.length-1||this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[e])}_ModifiedRegionIsBoundary(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){const i=e+t;if(this._ModifiedIsBoundary(i-1)||this._ModifiedIsBoundary(i))return!0}return!1}_boundaryScore(e,t,i,n){return(this._OriginalRegionIsBoundary(e,t)?1:0)+(this._ModifiedRegionIsBoundary(i,n)?1:0)}ConcatenateChanges(e,t){const i=[];if(0===e.length||0===t.length)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],i)){const n=new Array(e.length+t.length-1);return l.Copy(e,0,n,0,e.length-1),n[e.length-1]=i[0],l.Copy(t,1,n,e.length,t.length-1),n}{const i=new Array(e.length+t.length);return l.Copy(e,0,i,0,e.length),l.Copy(t,0,i,e.length,t.length),i}}ChangesOverlap(e,t,i){if(a.Assert(e.originalStart<=t.originalStart,"Left change is not less than or equal to right change"),a.Assert(e.modifiedStart<=t.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){const o=e.originalStart;let s=e.originalLength;const r=e.modifiedStart;let a=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(s=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(a=t.modifiedStart+t.modifiedLength-e.modifiedStart),i[0]=new n(o,s,r,a),!0}return i[0]=null,!1}ClipDiagonalBound(e,t,i,n){if(e>=0&&e<n)return e;const o=t%2==0;if(e<0){return o===(i%2==0)?0:1}return o===((n-i-1)%2==0)?n-1:n-2}}},17301:(e,t,i)=>{"use strict";i.d(t,{B8:()=>g,Cp:()=>s,F0:()=>d,FU:()=>c,L6:()=>u,b1:()=>h,dL:()=>o,he:()=>m,n2:()=>l,ri:()=>r});const n=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout((()=>{if(e.stack){if(p.isErrorNoTelemetry(e))throw new p(e.message+"\n\n"+e.stack);throw new Error(e.message+"\n\n"+e.stack)}throw e}),0)}}emit(e){this.listeners.forEach((t=>{t(e)}))}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}};function o(e){l(e)||n.onUnexpectedError(e)}function s(e){l(e)||n.onUnexpectedExternalError(e)}function r(e){if(e instanceof Error){const{name:t,message:i}=e;return{$isError:!0,name:t,message:i,stack:e.stacktrace||e.stack,noTelemetry:p.isErrorNoTelemetry(e)}}return e}const a="Canceled";function l(e){return e instanceof c||e instanceof Error&&e.name===a&&e.message===a}class c extends Error{constructor(){super(a),this.name=this.message}}function d(){const e=new Error(a);return e.name=e.message,e}function h(e){return e?new Error(`Illegal argument: ${e}`):new Error("Illegal argument")}function u(e){return e?new Error(`Illegal state: ${e}`):new Error("Illegal state")}class g extends Error{constructor(e){super("NotSupported"),e&&(this.message=e)}}class p extends Error{constructor(e){super(e),this.name="ErrorNoTelemetry"}static fromError(e){if(e instanceof p)return e;const t=new p;return t.message=e.message,t.stack=e.stack,t}static isErrorNoTelemetry(e){return"ErrorNoTelemetry"===e.name}}class m extends Error{constructor(e){super(e||"An unexpected bug occurred."),Object.setPrototypeOf(this,m.prototype)}}},4669:(e,t,i)=>{"use strict";i.d(t,{D0:()=>f,E7:()=>_,F3:()=>u,K3:()=>m,Q5:()=>h,ZD:()=>v,ju:()=>a});var n=i(17301),o=i(5976),s=i(91741),r=i(84013);var a;!function(e){function t(e){false}function i(e){return(t,i=null,n)=>{let o,s=!1;return o=e((e=>{if(!s)return o?o.dispose():s=!0,t.call(i,e)}),null,n),s&&o.dispose(),o}}function n(e,t,i){return l(((i,n=null,o)=>e((e=>i.call(n,t(e))),null,o)),i)}function s(e,t,i){return l(((i,n=null,o)=>e((e=>{t(e),i.call(n,e)}),null,o)),i)}function r(e,t,i){return l(((i,n=null,o)=>e((e=>t(e)&&i.call(n,e)),null,o)),i)}function a(e,t,i,o){let s=i;return n(e,(e=>(s=t(s,e),s)),o)}function l(e,i){let n;const o={onFirstListenerAdd(){n=e(s.fire,s)},onLastListenerRemove(){null==n||n.dispose()}};i||t();const s=new h(o);return null==i||i.add(s),s.event}function c(e,i,n=100,o=!1,s,r){let a,l,c,d=0;const u={leakWarningThreshold:s,onFirstListenerAdd(){a=e((e=>{d++,l=i(l,e),o&&!c&&(g.fire(l),l=void 0),clearTimeout(c),c=setTimeout((()=>{const e=l;l=void 0,c=void 0,(!o||d>1)&&g.fire(e),d=0}),n)}))},onLastListenerRemove(){a.dispose()}};r||t();const g=new h(u);return null==r||r.add(g),g.event}function d(e,t=((e,t)=>e===t),i){let n,o=!0;return r(e,(e=>{const i=o||!t(e,n);return o=!1,n=e,i}),i)}e.None=()=>o.JT.None,e.once=i,e.map=n,e.forEach=s,e.filter=r,e.signal=function(e){return e},e.any=function(...e){return(t,i=null,n)=>(0,o.F8)(...e.map((e=>e((e=>t.call(i,e)),null,n))))},e.reduce=a,e.debounce=c,e.latch=d,e.split=function(t,i,n){return[e.filter(t,i,n),e.filter(t,(e=>!i(e)),n)]},e.buffer=function(e,t=!1,i=[]){let n=i.slice(),o=e((e=>{n?n.push(e):r.fire(e)}));const s=()=>{null==n||n.forEach((e=>r.fire(e))),n=null},r=new h({onFirstListenerAdd(){o||(o=e((e=>r.fire(e))))},onFirstListenerDidAdd(){n&&(t?setTimeout(s):s())},onLastListenerRemove(){o&&o.dispose(),o=null}});return r.event};class u{constructor(e){this.event=e,this.disposables=new o.SL}map(e){return new u(n(this.event,e,this.disposables))}forEach(e){return new u(s(this.event,e,this.disposables))}filter(e){return new u(r(this.event,e,this.disposables))}reduce(e,t){return new u(a(this.event,e,t,this.disposables))}latch(){return new u(d(this.event,void 0,this.disposables))}debounce(e,t=100,i=!1,n){return new u(c(this.event,e,t,i,n,this.disposables))}on(e,t,i){return this.event(e,t,i)}once(e,t,n){return i(this.event)(e,t,n)}dispose(){this.disposables.dispose()}}e.chain=function(e){return new u(e)},e.fromNodeEventEmitter=function(e,t,i=(e=>e)){const n=(...e)=>o.fire(i(...e)),o=new h({onFirstListenerAdd:()=>e.on(t,n),onLastListenerRemove:()=>e.removeListener(t,n)});return o.event},e.fromDOMEventEmitter=function(e,t,i=(e=>e)){const n=(...e)=>o.fire(i(...e)),o=new h({onFirstListenerAdd:()=>e.addEventListener(t,n),onLastListenerRemove:()=>e.removeEventListener(t,n)});return o.event},e.toPromise=function(e){return new Promise((t=>i(e)(t)))},e.runAndSubscribe=function(e,t){return t(void 0),e((e=>t(e)))},e.runAndSubscribeWithStore=function(e,t){let i=null;function n(e){null==i||i.dispose(),i=new o.SL,t(e,i)}n(void 0);const s=e((e=>n(e)));return(0,o.OF)((()=>{s.dispose(),null==i||i.dispose()}))};class g{constructor(e,i){this.obs=e,this._counter=0,this._hasChanged=!1;const n={onFirstListenerAdd:()=>{e.addObserver(this)},onLastListenerRemove:()=>{e.removeObserver(this)}};i||t(),this.emitter=new h(n),i&&i.add(this.emitter)}beginUpdate(e){this._counter++}handleChange(e,t){this._hasChanged=!0}endUpdate(e){0==--this._counter&&this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this.obs.get()))}}e.fromObservable=function(e,t){return new g(e,t).emitter.event}}(a||(a={}));class l{constructor(e){this._listenerCount=0,this._invocationCount=0,this._elapsedOverall=0,this._name=`${e}_${l._idPool++}`}start(e){this._stopWatch=new r.G(!0),this._listenerCount=e}stop(){if(this._stopWatch){const e=this._stopWatch.elapsed();this._elapsedOverall+=e,this._invocationCount+=1,console.info(`did FIRE ${this._name}: elapsed_ms: ${e.toFixed(5)}, listener: ${this._listenerCount} (elapsed_overall: ${this._elapsedOverall.toFixed(2)}, invocations: ${this._invocationCount})`),this._stopWatch=void 0}}}l._idPool=0;class c{constructor(e){this.value=e}static create(){var e;return new c(null!==(e=(new Error).stack)&&void 0!==e?e:"")}print(){console.warn(this.value.split("\n").slice(2).join("\n"))}}class d{constructor(e,t,i){this.callback=e,this.callbackThis=t,this.stack=i,this.subscription=new o.dt}invoke(e){this.callback.call(this.callbackThis,e)}}class h{constructor(e){var t,i;this._disposed=!1,this._options=e,this._leakageMon=void 0,this._perfMon=(null===(t=this._options)||void 0===t?void 0:t._profName)?new l(this._options._profName):void 0,this._deliveryQueue=null===(i=this._options)||void 0===i?void 0:i.deliveryQueue}dispose(){var e,t,i,n;this._disposed||(this._disposed=!0,this._listeners&&this._listeners.clear(),null===(e=this._deliveryQueue)||void 0===e||e.clear(this),null===(i=null===(t=this._options)||void 0===t?void 0:t.onLastListenerRemove)||void 0===i||i.call(t),null===(n=this._leakageMon)||void 0===n||n.dispose())}get event(){return this._event||(this._event=(e,t,i)=>{var n,r,a;this._listeners||(this._listeners=new s.S);const l=this._listeners.isEmpty();let h,u;l&&(null===(n=this._options)||void 0===n?void 0:n.onFirstListenerAdd)&&this._options.onFirstListenerAdd(this),this._leakageMon&&this._listeners.size>=30&&(u=c.create(),h=this._leakageMon.check(u,this._listeners.size+1));const g=new d(e,t,u),p=this._listeners.push(g);l&&(null===(r=this._options)||void 0===r?void 0:r.onFirstListenerDidAdd)&&this._options.onFirstListenerDidAdd(this),(null===(a=this._options)||void 0===a?void 0:a.onListenerDidAdd)&&this._options.onListenerDidAdd(this,e,t);const m=g.subscription.set((()=>{if(null==h||h(),!this._disposed&&(p(),this._options&&this._options.onLastListenerRemove)){this._listeners&&!this._listeners.isEmpty()||this._options.onLastListenerRemove(this)}}));return i instanceof o.SL?i.add(m):Array.isArray(i)&&i.push(m),m}),this._event}fire(e){var t,i;if(this._listeners){this._deliveryQueue||(this._deliveryQueue=new g);for(const t of this._listeners)this._deliveryQueue.push(this,t,e);null===(t=this._perfMon)||void 0===t||t.start(this._deliveryQueue.size),this._deliveryQueue.deliver(),null===(i=this._perfMon)||void 0===i||i.stop()}}}class u{constructor(){this._queue=new s.S}get size(){return this._queue.size}push(e,t,i){this._queue.push(new p(e,t,i))}clear(e){const t=new s.S;for(const i of this._queue)i.emitter!==e&&t.push(i);this._queue=t}deliver(){for(;this._queue.size>0;){const t=this._queue.shift();try{t.listener.invoke(t.event)}catch(e){(0,n.dL)(e)}}}}class g extends u{clear(e){this._queue.clear()}}class p{constructor(e,t,i){this.emitter=e,this.listener=t,this.event=i}}class m extends h{constructor(e){super(e),this._isPaused=0,this._eventQueue=new s.S,this._mergeFn=null==e?void 0:e.merge}pause(){this._isPaused++}resume(){if(0!==this._isPaused&&0==--this._isPaused)if(this._mergeFn){const e=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(e))}else for(;!this._isPaused&&0!==this._eventQueue.size;)super.fire(this._eventQueue.shift())}fire(e){this._listeners&&(0!==this._isPaused?this._eventQueue.push(e):super.fire(e))}}class f extends m{constructor(e){var t;super(e),this._delay=null!==(t=e.delay)&&void 0!==t?t:100}fire(e){this._handle||(this.pause(),this._handle=setTimeout((()=>{this._handle=void 0,this.resume()}),this._delay)),super.fire(e)}}class _{constructor(){this.buffers=[]}wrapEvent(e){return(t,i,n)=>e((e=>{const n=this.buffers[this.buffers.length-1];n?n.push((()=>t.call(i,e))):t.call(i,e)}),void 0,n)}bufferEvents(e){const t=[];this.buffers.push(t);const i=e();return this.buffers.pop(),t.forEach((e=>e())),i}}class v{constructor(){this.listening=!1,this.inputEvent=a.None,this.inputEventListener=o.JT.None,this.emitter=new h({onFirstListenerDidAdd:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onLastListenerRemove:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(e){this.inputEvent=e,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=e(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}},15527:(e,t,i)=>{"use strict";i.d(t,{KM:()=>d,ej:()=>a,fn:()=>l,oP:()=>u,yj:()=>c});var n=i(55336),o=i(1432),s=i(97295);function r(e){return 47===e||92===e}function a(e){return e.replace(/[\\/]/g,n.KR.sep)}function l(e){return-1===e.indexOf("/")&&(e=a(e)),/^[a-zA-Z]:(\/|$)/.test(e)&&(e="/"+e),e}function c(e,t=n.KR.sep){if(!e)return"";const i=e.length,o=e.charCodeAt(0);if(r(o)){if(r(e.charCodeAt(1))&&!r(e.charCodeAt(2))){let n=3;const o=n;for(;n<i&&!r(e.charCodeAt(n));n++);if(o!==n&&!r(e.charCodeAt(n+1)))for(n+=1;n<i;n++)if(r(e.charCodeAt(n)))return e.slice(0,n+1).replace(/[\\/]/g,t)}return t}if(h(o)&&58===e.charCodeAt(1))return r(e.charCodeAt(2))?e.slice(0,2)+t:e.slice(0,2);let s=e.indexOf("://");if(-1!==s)for(s+=3;s<i;s++)if(r(e.charCodeAt(s)))return e.slice(0,s+1);return""}function d(e,t,i,o=n.ir){if(e===t)return!0;if(!e||!t)return!1;if(t.length>e.length)return!1;if(i){if(!(0,s.ok)(e,t))return!1;if(t.length===e.length)return!0;let i=t.length;return t.charAt(t.length-1)===o&&i--,e.charAt(i)===o}return t.charAt(t.length-1)!==o&&(t+=o),0===e.indexOf(t)}function h(e){return e>=65&&e<=90||e>=97&&e<=122}function u(e,t=o.ED){return!!t&&(h(e.charCodeAt(0))&&58===e.charCodeAt(1))}},48357:(e,t,i)=>{"use strict";i.d(t,{CL:()=>z,EW:()=>U,Ji:()=>r,KZ:()=>y,Oh:()=>N,Sy:()=>c,ir:()=>l,jB:()=>E,l7:()=>$,mB:()=>I,mX:()=>j,or:()=>s});var n=i(43702),o=i(97295);function s(...e){return function(t,i){for(let n=0,o=e.length;n<o;n++){const o=e[n](t,i);if(o)return o}return null}}a.bind(void 0,!1);const r=a.bind(void 0,!0);function a(e,t,i){if(!i||i.length<t.length)return null;let n;return n=e?o.ok(i,t):0===i.indexOf(t),n?t.length>0?[{start:0,end:t.length}]:[]:null}function l(e,t){const i=t.toLowerCase().indexOf(e.toLowerCase());return-1===i?null:[{start:i,end:i+e.length}]}function c(e,t){return d(e.toLowerCase(),t.toLowerCase(),0,0)}function d(e,t,i,n){if(i===e.length)return[];if(n===t.length)return null;if(e[i]===t[n]){let o=null;return(o=d(e,t,i+1,n+1))?v({start:n,end:n+1},o):null}return d(e,t,i,n+1)}function h(e){return 97<=e&&e<=122}function u(e){return 65<=e&&e<=90}function g(e){return 48<=e&&e<=57}function p(e){return 32===e||9===e||10===e||13===e}const m=new Set;function f(e){return p(e)||m.has(e)}function _(e){return h(e)||u(e)||g(e)}function v(e,t){return 0===t.length?t=[e]:e.end===t[0].start?t[0].start=e.start:t.unshift(e),t}function b(e,t){for(let i=t;i<e.length;i++){const t=e.charCodeAt(i);if(u(t)||g(t)||i>0&&!_(e.charCodeAt(i-1)))return i}return e.length}function C(e,t,i,n){if(i===e.length)return[];if(n===t.length)return null;if(e[i]!==t[n].toLowerCase())return null;{let o=null,s=n+1;for(o=C(e,t,i+1,n+1);!o&&(s=b(t,s))<t.length;)o=C(e,t,i+1,s),s++;return null===o?null:v({start:n,end:n+1},o)}}function w(e,t){if(!t)return null;if(0===(t=t.trim()).length)return null;if(!function(e){let t=0,i=0,n=0,o=0;for(let s=0;s<e.length;s++)n=e.charCodeAt(s),u(n)&&t++,h(n)&&i++,p(n)&&o++;return 0!==t&&0!==i||0!==o?t<=5:e.length<=30}(e))return null;if(t.length>60)return null;const i=function(e){let t=0,i=0,n=0,o=0,s=0;for(let r=0;r<e.length;r++)s=e.charCodeAt(r),u(s)&&t++,h(s)&&i++,_(s)&&n++,g(s)&&o++;return{upperPercent:t/e.length,lowerPercent:i/e.length,alphaPercent:n/e.length,numericPercent:o/e.length}}(t);if(!function(e){const{upperPercent:t,lowerPercent:i,alphaPercent:n,numericPercent:o}=e;return i>.2&&t<.8&&n>.6&&o<.2}(i)){if(!function(e){const{upperPercent:t,lowerPercent:i}=e;return 0===i&&t>.6}(i))return null;t=t.toLowerCase()}let n=null,o=0;for(e=e.toLowerCase();o<t.length&&null===(n=C(e,t,0,o));)o=b(t,o+1);return n}function y(e,t,i=!1){if(!t||0===t.length)return null;let n=null,o=0;for(e=e.toLowerCase(),t=t.toLowerCase();o<t.length&&null===(n=S(e,t,0,o,i));)o=L(t,o+1);return n}function S(e,t,i,n,o){if(i===e.length)return[];if(n===t.length)return null;if(s=e.charCodeAt(i),r=t.charCodeAt(n),s===r||f(s)&&f(r)){let s=null,r=n+1;if(s=S(e,t,i+1,n+1,o),!o)for(;!s&&(r=L(t,r))<t.length;)s=S(e,t,i+1,r,o),r++;return null===s?null:v({start:n,end:n+1},s)}return null;var s,r}function L(e,t){for(let i=t;i<e.length;i++)if(f(e.charCodeAt(i))||i>0&&f(e.charCodeAt(i-1)))return i;return e.length}"()[]{}<>`'\"-/;:,.?!".split("").forEach((e=>m.add(e.charCodeAt(0))));const k=s(r,w,l),x=s(r,w,c),D=new n.z6(1e4);function N(e,t,i=!1){if("string"!=typeof e||"string"!=typeof t)return null;let n=D.get(e);n||(n=new RegExp(o.un(e),"i"),D.set(e,n));const s=n.exec(t);return s?[{start:s.index,end:s.index+s[0].length}]:i?x(e,t):k(e,t)}function E(e,t,i,n,o,s){const r=Math.min(13,e.length);for(;i<r;i++){const r=U(e,t,i,n,o,s,{firstMatchCanBeWeak:!1,boostFullMatch:!0});if(r)return r}return[0,s]}function I(e){if(void 0===e)return[];const t=[],i=e[1];for(let n=e.length-1;n>1;n--){const o=e[n]+i,s=t[t.length-1];s&&s.end===o?s.end=o+1:t.push({start:o,end:o+1})}return t}const T=128;function M(){const e=[],t=[];for(let i=0;i<=T;i++)t[i]=0;for(let i=0;i<=T;i++)e.push(t.slice(0));return e}function A(e){const t=[];for(let i=0;i<=e;i++)t[i]=0;return t}const R=A(256),O=A(256),P=M(),F=M(),B=M();function V(e,t){if(t<0||t>=e.length)return!1;const i=e.codePointAt(t);switch(i){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:case 60:case 62:case 40:case 41:case 91:case 93:case 123:case 125:return!0;case void 0:return!1;default:return!!o.C8(i)}}function W(e,t){if(t<0||t>=e.length)return!1;switch(e.charCodeAt(t)){case 32:case 9:return!0;default:return!1}}function H(e,t,i){return t[e]!==i[e]}var z;!function(e){e.Default=[-100,0],e.isDefault=function(e){return!e||2===e.length&&-100===e[0]&&0===e[1]}}(z||(z={}));class j{constructor(e,t){this.firstMatchCanBeWeak=e,this.boostFullMatch=t}}function U(e,t,i,n,o,s,r=j.default){const a=e.length>T?T:e.length,l=n.length>T?T:n.length;if(i>=a||s>=l||a-i>l-s)return;if(!function(e,t,i,n,o,s,r=!1){for(;t<i&&o<s;)e[t]===n[o]&&(r&&(R[t]=o),t+=1),o+=1;return t===i}(t,i,a,o,s,l,!0))return;!function(e,t,i,n,o,s){let r=e-1,a=t-1;for(;r>=i&&a>=n;)o[r]===s[a]&&(O[r]=a,r--),a--}(a,l,i,s,t,o);let c=1,d=1,h=i,u=s;const g=[!1];for(c=1,h=i;h<a;c++,h++){const r=R[h],p=O[h],m=h+1<a?O[h+1]:l;for(d=r-s+1,u=r;u<m;d++,u++){let a=Number.MIN_SAFE_INTEGER,m=!1;u<=p&&(a=K(e,t,h,i,n,o,u,l,s,0===P[c-1][d-1],g));let f=0;a!==Number.MAX_SAFE_INTEGER&&(m=!0,f=a+F[c-1][d-1]);const _=u>r,v=_?F[c][d-1]+(P[c][d-1]>0?-5:0):0,b=u>r+1&&P[c][d-1]>0,C=b?F[c][d-2]+(P[c][d-2]>0?-5:0):0;if(b&&(!_||C>=v)&&(!m||C>=f))F[c][d]=C,B[c][d]=3,P[c][d]=0;else if(_&&(!m||v>=f))F[c][d]=v,B[c][d]=2,P[c][d]=0;else{if(!m)throw new Error("not possible");F[c][d]=f,B[c][d]=1,P[c][d]=P[c-1][d-1]+1}}}if(!g[0]&&!r.firstMatchCanBeWeak)return;c--,d--;const p=[F[c][d],s];let m=0,f=0;for(;c>=1;){let e=d;do{const t=B[c][e];if(3===t)e-=2;else{if(2!==t)break;e-=1}}while(e>=1);m>1&&t[i+c-1]===o[s+d-1]&&!H(e+s-1,n,o)&&m+1>P[c][e]&&(e=d),e===d?m++:m=1,f||(f=e),c--,d=e-1,p.push(d)}l===a&&r.boostFullMatch&&(p[0]+=2);const _=f-a;return p[0]-=_,p}function K(e,t,i,n,o,s,r,a,l,c,d){if(t[i]!==s[r])return Number.MIN_SAFE_INTEGER;let h=1,u=!1;return r===i-n?h=e[i]===o[r]?7:5:!H(r,o,s)||0!==r&&H(r-1,o,s)?!V(s,r)||0!==r&&V(s,r-1)?(V(s,r-1)||W(s,r-1))&&(h=5,u=!0):h=5:(h=e[i]===o[r]?7:5,u=!0),h>1&&i===n&&(d[0]=!0),u||(u=H(r,o,s)||V(s,r-1)||W(s,r-1)),i===n?r>l&&(h-=u?3:5):h+=c?u?2:0:u?0:1,r+1===a&&(h-=u?3:5),h}function $(e,t,i,n,o,s,r){return function(e,t,i,n,o,s,r,a){let l=U(e,t,i,n,o,s,a);if(l&&!r)return l;if(e.length>=3){const t=Math.min(7,e.length-1);for(let r=i+1;r<t;r++){const t=q(e,r);if(t){const e=U(t,t.toLowerCase(),i,n,o,s,a);e&&(e[0]-=3,(!l||e[0]>l[0])&&(l=e))}}}return l}(e,t,i,n,o,s,!0,r)}function q(e,t){if(t+1>=e.length)return;const i=e[t],n=e[t+1];return i!==n?e.slice(0,t)+n+i+e.slice(t+2):void 0}j.default={boostFullMatch:!0,firstMatchCanBeWeak:!1}},88289:(e,t,i)=>{"use strict";function n(e){const t=this;let i,n=!1;return function(){return n||(n=!0,i=e.apply(t,arguments)),i}}i.d(t,{I:()=>n})},89954:(e,t,i)=>{"use strict";i.d(t,{Cv:()=>a,SP:()=>s,vp:()=>o,yP:()=>h});var n=i(97295);function o(e){return s(e,0)}function s(e,t){switch(typeof e){case"object":return null===e?r(349,t):Array.isArray(e)?(i=e,n=r(104579,n=t),i.reduce(((e,t)=>s(t,e)),n)):function(e,t){return t=r(181387,t),Object.keys(e).sort().reduce(((t,i)=>(t=a(i,t),s(e[i],t))),t)}(e,t);case"string":return a(e,t);case"boolean":return function(e,t){return r(e?433:863,t)}(e,t);case"number":return r(e,t);case"undefined":return r(937,t);default:return r(617,t)}var i,n}function r(e,t){return(t<<5)-t+e|0}function a(e,t){t=r(149417,t);for(let i=0,n=e.length;i<n;i++)t=r(e.charCodeAt(i),t);return t}function l(e,t,i=32){const n=i-t;return(e<<t|(~((1<<n)-1)&e)>>>n)>>>0}function c(e,t=0,i=e.byteLength,n=0){for(let o=0;o<i;o++)e[t+o]=n}function d(e,t=32){return e instanceof ArrayBuffer?Array.from(new Uint8Array(e)).map((e=>e.toString(16).padStart(2,"0"))).join(""):function(e,t,i="0"){for(;e.length<t;)e=i+e;return e}((e>>>0).toString(16),t/4)}class h{constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(e){const t=e.length;if(0===t)return;const i=this._buff;let o,s,r=this._buffLen,a=this._leftoverHighSurrogate;for(0!==a?(o=a,s=-1,a=0):(o=e.charCodeAt(0),s=0);;){let l=o;if(n.ZG(o)){if(!(s+1<t)){a=o;break}{const t=e.charCodeAt(s+1);n.YK(t)?(s++,l=n.rL(o,t)):l=65533}}else n.YK(o)&&(l=65533);if(r=this._push(i,r,l),s++,!(s<t))break;o=e.charCodeAt(s)}this._buffLen=r,this._leftoverHighSurrogate=a}_push(e,t,i){return i<128?e[t++]=i:i<2048?(e[t++]=192|(1984&i)>>>6,e[t++]=128|(63&i)>>>0):i<65536?(e[t++]=224|(61440&i)>>>12,e[t++]=128|(4032&i)>>>6,e[t++]=128|(63&i)>>>0):(e[t++]=240|(1835008&i)>>>18,e[t++]=128|(258048&i)>>>12,e[t++]=128|(4032&i)>>>6,e[t++]=128|(63&i)>>>0),t>=64&&(this._step(),t-=64,this._totalLen+=64,e[0]=e[64],e[1]=e[65],e[2]=e[66]),t}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),d(this._h0)+d(this._h1)+d(this._h2)+d(this._h3)+d(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,c(this._buff,this._buffLen),this._buffLen>56&&(this._step(),c(this._buff));const e=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(e/4294967296),!1),this._buffDV.setUint32(60,e%4294967296,!1),this._step()}_step(){const e=h._bigBlock32,t=this._buffDV;for(let l=0;l<64;l+=4)e.setUint32(l,t.getUint32(l,!1),!1);for(let h=64;h<320;h+=4)e.setUint32(h,l(e.getUint32(h-12,!1)^e.getUint32(h-32,!1)^e.getUint32(h-56,!1)^e.getUint32(h-64,!1),1),!1);let i,n,o,s=this._h0,r=this._h1,a=this._h2,c=this._h3,d=this._h4;for(let h=0;h<80;h++)h<20?(i=r&a|~r&c,n=1518500249):h<40?(i=r^a^c,n=1859775393):h<60?(i=r&a|r&c|a&c,n=2400959708):(i=r^a^c,n=3395469782),o=l(s,5)+i+d+n+e.getUint32(4*h,!1)&4294967295,d=c,c=a,a=l(r,30),r=s,s=o;this._h0=this._h0+s&4294967295,this._h1=this._h1+r&4294967295,this._h2=this._h2+a&4294967295,this._h3=this._h3+c&4294967295,this._h4=this._h4+d&4294967295}}h._bigBlock32=new DataView(new ArrayBuffer(320))},59365:(e,t,i)=>{"use strict";i.d(t,{CP:()=>a,Fr:()=>l,W5:()=>r,d9:()=>c,oR:()=>d,v1:()=>h});var n=i(17301),o=i(21212),s=i(97295);class r{constructor(e="",t=!1){var i,o,s;if(this.value=e,"string"!=typeof this.value)throw(0,n.b1)("value");"boolean"==typeof t?(this.isTrusted=t,this.supportThemeIcons=!1,this.supportHtml=!1):(this.isTrusted=null!==(i=t.isTrusted)&&void 0!==i?i:void 0,this.supportThemeIcons=null!==(o=t.supportThemeIcons)&&void 0!==o&&o,this.supportHtml=null!==(s=t.supportHtml)&&void 0!==s&&s)}appendText(e,t=0){var i;return this.value+=(i=this.supportThemeIcons?(0,o.Qo)(e):e,i.replace(/[\\`*_{}[\]()#+\-!]/g,"\\$&")).replace(/([ \t]+)/g,((e,t)=>" ".repeat(t.length))).replace(/\>/gm,"\\>").replace(/\n/g,1===t?"\\\n":"\n\n"),this}appendMarkdown(e){return this.value+=e,this}appendCodeblock(e,t){return this.value+="\n```",this.value+=e,this.value+="\n",this.value+=t,this.value+="\n```\n",this}appendLink(e,t,i){return this.value+="[",this.value+=this._escape(t,"]"),this.value+="](",this.value+=this._escape(String(e),")"),i&&(this.value+=` "${this._escape(this._escape(i,'"'),")")}"`),this.value+=")",this}_escape(e,t){const i=new RegExp((0,s.ec)(t),"g");return e.replace(i,((t,i)=>"\\"!==e.charAt(i-1)?`\\${t}`:t))}}function a(e){return l(e)?!e.value:!Array.isArray(e)||e.every(a)}function l(e){return e instanceof r||!(!e||"object"!=typeof e)&&!("string"!=typeof e.value||"boolean"!=typeof e.isTrusted&&void 0!==e.isTrusted||"boolean"!=typeof e.supportThemeIcons&&void 0!==e.supportThemeIcons)}function c(e){return e.replace(/"/g,""")}function d(e){return e?e.replace(/\\([\\`*_{}[\]()#+\-.!])/g,"$1"):e}function h(e){const t=[],i=e.split("|").map((e=>e.trim()));e=i[0];const n=i[1];if(n){const e=/height=(\d+)/.exec(n),i=/width=(\d+)/.exec(n),o=e?e[1]:"",s=i?i[1]:"",r=isFinite(parseInt(s)),a=isFinite(parseInt(o));r&&t.push(`width="${s}"`),a&&t.push(`height="${o}"`)}return{href:e,dimensions:t}}},21212:(e,t,i)=>{"use strict";i.d(t,{Gt:()=>f,Ho:()=>m,Qo:()=>d,f$:()=>u,x$:()=>p});var n=i(73046),o=i(48357),s=i(97295);const r="$(",a=new RegExp(`\\$\\(${n.dT.iconNameExpression}(?:${n.dT.iconModifierExpression})?\\)`,"g"),l=new RegExp(n.dT.iconNameCharacter),c=new RegExp(`(\\\\)?${a.source}`,"g");function d(e){return e.replace(c,((e,t)=>t?e:`\\${e}`))}const h=new RegExp(`\\\\${a.source}`,"g");function u(e){return e.replace(h,(e=>`\\${e}`))}const g=new RegExp(`(\\s)?(\\\\)?${a.source}(\\s)?`,"g");function p(e){return-1===e.indexOf(r)?e:e.replace(g,((e,t,i,n)=>i?e:t||n||""))}function m(e){const t=e.indexOf(r);return-1===t?{text:e}:function(e,t){const i=[];let n="";function o(e){if(e){n+=e;for(const t of e)i.push(h)}}let s,a,c=-1,d="",h=0,u=t;const g=e.length;o(e.substr(0,t));for(;u<g;){if(s=e[u],a=e[u+1],s===r[0]&&a===r[1])c=u,o(d),d=r,u++;else if(")"===s&&-1!==c){h+=u-c+1,c=-1,d=""}else-1!==c?l.test(s)?d+=s:(o(d),c=-1,d=""):o(s);u++}return o(d),{text:n,iconOffsets:i}}(e,t)}function f(e,t,i=!1){const{text:n,iconOffsets:r}=t;if(!r||0===r.length)return(0,o.Oh)(e,n,i);const a=(0,s.j3)(n," "),l=n.length-a.length,c=(0,o.Oh)(e,a,i);if(c)for(const o of c){const e=r[o.start+l]+l;o.start+=e,o.end+=e}return c}},44742:(e,t,i)=>{"use strict";i.d(t,{R:()=>n,a:()=>o});class n{constructor(e){this._prefix=e,this._lastId=0}nextId(){return this._prefix+ ++this._lastId}}const o=new n("id#")},53725:(e,t,i)=>{"use strict";var n;i.d(t,{$:()=>n}),function(e){e.is=function(e){return e&&"object"==typeof e&&"function"==typeof e[Symbol.iterator]};const t=Object.freeze([]);function i(t,i=Number.POSITIVE_INFINITY){const n=[];if(0===i)return[n,t];const o=t[Symbol.iterator]();for(let s=0;s<i;s++){const t=o.next();if(t.done)return[n,e.empty()];n.push(t.value)}return[n,{[Symbol.iterator]:()=>o}]}e.empty=function(){return t},e.single=function*(e){yield e},e.from=function(e){return e||t},e.isEmpty=function(e){return!e||!0===e[Symbol.iterator]().next().done},e.first=function(e){return e[Symbol.iterator]().next().value},e.some=function(e,t){for(const i of e)if(t(i))return!0;return!1},e.find=function(e,t){for(const i of e)if(t(i))return i},e.filter=function*(e,t){for(const i of e)t(i)&&(yield i)},e.map=function*(e,t){let i=0;for(const n of e)yield t(n,i++)},e.concat=function*(...e){for(const t of e)for(const e of t)yield e},e.concatNested=function*(e){for(const t of e)for(const e of t)yield e},e.reduce=function(e,t,i){let n=i;for(const o of e)n=t(n,o);return n},e.forEach=function(e,t){let i=0;for(const n of e)t(n,i++)},e.slice=function*(e,t,i=e.length){for(t<0&&(t+=e.length),i<0?i+=e.length:i>e.length&&(i=e.length);t<i;t++)yield e[t]},e.consume=i,e.collect=function(e){return i(e)[0]},e.equals=function(e,t,i=((e,t)=>e===t)){const n=e[Symbol.iterator](),o=t[Symbol.iterator]();for(;;){const e=n.next(),t=o.next();if(e.done!==t.done)return!1;if(e.done)return!0;if(!i(e.value,t.value))return!1}}}(n||(n={}))},22258:(e,t,i)=>{"use strict";i.d(t,{H_:()=>a,Vd:()=>u,gx:()=>m,kL:()=>p});class n{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e}keyCodeToStr(e){return this._keyCodeToStr[e]}strToKeyCode(e){return this._strToKeyCode[e.toLowerCase()]||0}}const o=new n,s=new n,r=new n,a=new Array(230),l={},c=[],d=Object.create(null),h=Object.create(null),u=[],g=[];for(let f=0;f<=193;f++)u[f]=-1;for(let f=0;f<=127;f++)g[f]=-1;var p;function m(e,t){return(e|(65535&t)<<16>>>0)>>>0}!function(){const e="",t=[[0,1,0,"None",0,"unknown",0,"VK_UNKNOWN",e,e],[0,1,1,"Hyper",0,e,0,e,e,e],[0,1,2,"Super",0,e,0,e,e,e],[0,1,3,"Fn",0,e,0,e,e,e],[0,1,4,"FnLock",0,e,0,e,e,e],[0,1,5,"Suspend",0,e,0,e,e,e],[0,1,6,"Resume",0,e,0,e,e,e],[0,1,7,"Turbo",0,e,0,e,e,e],[0,1,8,"Sleep",0,e,0,"VK_SLEEP",e,e],[0,1,9,"WakeUp",0,e,0,e,e,e],[31,0,10,"KeyA",31,"A",65,"VK_A",e,e],[32,0,11,"KeyB",32,"B",66,"VK_B",e,e],[33,0,12,"KeyC",33,"C",67,"VK_C",e,e],[34,0,13,"KeyD",34,"D",68,"VK_D",e,e],[35,0,14,"KeyE",35,"E",69,"VK_E",e,e],[36,0,15,"KeyF",36,"F",70,"VK_F",e,e],[37,0,16,"KeyG",37,"G",71,"VK_G",e,e],[38,0,17,"KeyH",38,"H",72,"VK_H",e,e],[39,0,18,"KeyI",39,"I",73,"VK_I",e,e],[40,0,19,"KeyJ",40,"J",74,"VK_J",e,e],[41,0,20,"KeyK",41,"K",75,"VK_K",e,e],[42,0,21,"KeyL",42,"L",76,"VK_L",e,e],[43,0,22,"KeyM",43,"M",77,"VK_M",e,e],[44,0,23,"KeyN",44,"N",78,"VK_N",e,e],[45,0,24,"KeyO",45,"O",79,"VK_O",e,e],[46,0,25,"KeyP",46,"P",80,"VK_P",e,e],[47,0,26,"KeyQ",47,"Q",81,"VK_Q",e,e],[48,0,27,"KeyR",48,"R",82,"VK_R",e,e],[49,0,28,"KeyS",49,"S",83,"VK_S",e,e],[50,0,29,"KeyT",50,"T",84,"VK_T",e,e],[51,0,30,"KeyU",51,"U",85,"VK_U",e,e],[52,0,31,"KeyV",52,"V",86,"VK_V",e,e],[53,0,32,"KeyW",53,"W",87,"VK_W",e,e],[54,0,33,"KeyX",54,"X",88,"VK_X",e,e],[55,0,34,"KeyY",55,"Y",89,"VK_Y",e,e],[56,0,35,"KeyZ",56,"Z",90,"VK_Z",e,e],[22,0,36,"Digit1",22,"1",49,"VK_1",e,e],[23,0,37,"Digit2",23,"2",50,"VK_2",e,e],[24,0,38,"Digit3",24,"3",51,"VK_3",e,e],[25,0,39,"Digit4",25,"4",52,"VK_4",e,e],[26,0,40,"Digit5",26,"5",53,"VK_5",e,e],[27,0,41,"Digit6",27,"6",54,"VK_6",e,e],[28,0,42,"Digit7",28,"7",55,"VK_7",e,e],[29,0,43,"Digit8",29,"8",56,"VK_8",e,e],[30,0,44,"Digit9",30,"9",57,"VK_9",e,e],[21,0,45,"Digit0",21,"0",48,"VK_0",e,e],[3,1,46,"Enter",3,"Enter",13,"VK_RETURN",e,e],[9,1,47,"Escape",9,"Escape",27,"VK_ESCAPE",e,e],[1,1,48,"Backspace",1,"Backspace",8,"VK_BACK",e,e],[2,1,49,"Tab",2,"Tab",9,"VK_TAB",e,e],[10,1,50,"Space",10,"Space",32,"VK_SPACE",e,e],[83,0,51,"Minus",83,"-",189,"VK_OEM_MINUS","-","OEM_MINUS"],[81,0,52,"Equal",81,"=",187,"VK_OEM_PLUS","=","OEM_PLUS"],[87,0,53,"BracketLeft",87,"[",219,"VK_OEM_4","[","OEM_4"],[89,0,54,"BracketRight",89,"]",221,"VK_OEM_6","]","OEM_6"],[88,0,55,"Backslash",88,"\\",220,"VK_OEM_5","\\","OEM_5"],[0,0,56,"IntlHash",0,e,0,e,e,e],[80,0,57,"Semicolon",80,";",186,"VK_OEM_1",";","OEM_1"],[90,0,58,"Quote",90,"'",222,"VK_OEM_7","'","OEM_7"],[86,0,59,"Backquote",86,"`",192,"VK_OEM_3","`","OEM_3"],[82,0,60,"Comma",82,",",188,"VK_OEM_COMMA",",","OEM_COMMA"],[84,0,61,"Period",84,".",190,"VK_OEM_PERIOD",".","OEM_PERIOD"],[85,0,62,"Slash",85,"/",191,"VK_OEM_2","/","OEM_2"],[8,1,63,"CapsLock",8,"CapsLock",20,"VK_CAPITAL",e,e],[59,1,64,"F1",59,"F1",112,"VK_F1",e,e],[60,1,65,"F2",60,"F2",113,"VK_F2",e,e],[61,1,66,"F3",61,"F3",114,"VK_F3",e,e],[62,1,67,"F4",62,"F4",115,"VK_F4",e,e],[63,1,68,"F5",63,"F5",116,"VK_F5",e,e],[64,1,69,"F6",64,"F6",117,"VK_F6",e,e],[65,1,70,"F7",65,"F7",118,"VK_F7",e,e],[66,1,71,"F8",66,"F8",119,"VK_F8",e,e],[67,1,72,"F9",67,"F9",120,"VK_F9",e,e],[68,1,73,"F10",68,"F10",121,"VK_F10",e,e],[69,1,74,"F11",69,"F11",122,"VK_F11",e,e],[70,1,75,"F12",70,"F12",123,"VK_F12",e,e],[0,1,76,"PrintScreen",0,e,0,e,e,e],[79,1,77,"ScrollLock",79,"ScrollLock",145,"VK_SCROLL",e,e],[7,1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE",e,e],[19,1,79,"Insert",19,"Insert",45,"VK_INSERT",e,e],[14,1,80,"Home",14,"Home",36,"VK_HOME",e,e],[11,1,81,"PageUp",11,"PageUp",33,"VK_PRIOR",e,e],[20,1,82,"Delete",20,"Delete",46,"VK_DELETE",e,e],[13,1,83,"End",13,"End",35,"VK_END",e,e],[12,1,84,"PageDown",12,"PageDown",34,"VK_NEXT",e,e],[17,1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",e],[15,1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",e],[18,1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",e],[16,1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",e],[78,1,89,"NumLock",78,"NumLock",144,"VK_NUMLOCK",e,e],[108,1,90,"NumpadDivide",108,"NumPad_Divide",111,"VK_DIVIDE",e,e],[103,1,91,"NumpadMultiply",103,"NumPad_Multiply",106,"VK_MULTIPLY",e,e],[106,1,92,"NumpadSubtract",106,"NumPad_Subtract",109,"VK_SUBTRACT",e,e],[104,1,93,"NumpadAdd",104,"NumPad_Add",107,"VK_ADD",e,e],[3,1,94,"NumpadEnter",3,e,0,e,e,e],[94,1,95,"Numpad1",94,"NumPad1",97,"VK_NUMPAD1",e,e],[95,1,96,"Numpad2",95,"NumPad2",98,"VK_NUMPAD2",e,e],[96,1,97,"Numpad3",96,"NumPad3",99,"VK_NUMPAD3",e,e],[97,1,98,"Numpad4",97,"NumPad4",100,"VK_NUMPAD4",e,e],[98,1,99,"Numpad5",98,"NumPad5",101,"VK_NUMPAD5",e,e],[99,1,100,"Numpad6",99,"NumPad6",102,"VK_NUMPAD6",e,e],[100,1,101,"Numpad7",100,"NumPad7",103,"VK_NUMPAD7",e,e],[101,1,102,"Numpad8",101,"NumPad8",104,"VK_NUMPAD8",e,e],[102,1,103,"Numpad9",102,"NumPad9",105,"VK_NUMPAD9",e,e],[93,1,104,"Numpad0",93,"NumPad0",96,"VK_NUMPAD0",e,e],[107,1,105,"NumpadDecimal",107,"NumPad_Decimal",110,"VK_DECIMAL",e,e],[92,0,106,"IntlBackslash",92,"OEM_102",226,"VK_OEM_102",e,e],[58,1,107,"ContextMenu",58,"ContextMenu",93,e,e,e],[0,1,108,"Power",0,e,0,e,e,e],[0,1,109,"NumpadEqual",0,e,0,e,e,e],[71,1,110,"F13",71,"F13",124,"VK_F13",e,e],[72,1,111,"F14",72,"F14",125,"VK_F14",e,e],[73,1,112,"F15",73,"F15",126,"VK_F15",e,e],[74,1,113,"F16",74,"F16",127,"VK_F16",e,e],[75,1,114,"F17",75,"F17",128,"VK_F17",e,e],[76,1,115,"F18",76,"F18",129,"VK_F18",e,e],[77,1,116,"F19",77,"F19",130,"VK_F19",e,e],[0,1,117,"F20",0,e,0,"VK_F20",e,e],[0,1,118,"F21",0,e,0,"VK_F21",e,e],[0,1,119,"F22",0,e,0,"VK_F22",e,e],[0,1,120,"F23",0,e,0,"VK_F23",e,e],[0,1,121,"F24",0,e,0,"VK_F24",e,e],[0,1,122,"Open",0,e,0,e,e,e],[0,1,123,"Help",0,e,0,e,e,e],[0,1,124,"Select",0,e,0,e,e,e],[0,1,125,"Again",0,e,0,e,e,e],[0,1,126,"Undo",0,e,0,e,e,e],[0,1,127,"Cut",0,e,0,e,e,e],[0,1,128,"Copy",0,e,0,e,e,e],[0,1,129,"Paste",0,e,0,e,e,e],[0,1,130,"Find",0,e,0,e,e,e],[0,1,131,"AudioVolumeMute",112,"AudioVolumeMute",173,"VK_VOLUME_MUTE",e,e],[0,1,132,"AudioVolumeUp",113,"AudioVolumeUp",175,"VK_VOLUME_UP",e,e],[0,1,133,"AudioVolumeDown",114,"AudioVolumeDown",174,"VK_VOLUME_DOWN",e,e],[105,1,134,"NumpadComma",105,"NumPad_Separator",108,"VK_SEPARATOR",e,e],[110,0,135,"IntlRo",110,"ABNT_C1",193,"VK_ABNT_C1",e,e],[0,1,136,"KanaMode",0,e,0,e,e,e],[0,0,137,"IntlYen",0,e,0,e,e,e],[0,1,138,"Convert",0,e,0,e,e,e],[0,1,139,"NonConvert",0,e,0,e,e,e],[0,1,140,"Lang1",0,e,0,e,e,e],[0,1,141,"Lang2",0,e,0,e,e,e],[0,1,142,"Lang3",0,e,0,e,e,e],[0,1,143,"Lang4",0,e,0,e,e,e],[0,1,144,"Lang5",0,e,0,e,e,e],[0,1,145,"Abort",0,e,0,e,e,e],[0,1,146,"Props",0,e,0,e,e,e],[0,1,147,"NumpadParenLeft",0,e,0,e,e,e],[0,1,148,"NumpadParenRight",0,e,0,e,e,e],[0,1,149,"NumpadBackspace",0,e,0,e,e,e],[0,1,150,"NumpadMemoryStore",0,e,0,e,e,e],[0,1,151,"NumpadMemoryRecall",0,e,0,e,e,e],[0,1,152,"NumpadMemoryClear",0,e,0,e,e,e],[0,1,153,"NumpadMemoryAdd",0,e,0,e,e,e],[0,1,154,"NumpadMemorySubtract",0,e,0,e,e,e],[0,1,155,"NumpadClear",126,"Clear",12,"VK_CLEAR",e,e],[0,1,156,"NumpadClearEntry",0,e,0,e,e,e],[5,1,0,e,5,"Ctrl",17,"VK_CONTROL",e,e],[4,1,0,e,4,"Shift",16,"VK_SHIFT",e,e],[6,1,0,e,6,"Alt",18,"VK_MENU",e,e],[57,1,0,e,57,"Meta",0,"VK_COMMAND",e,e],[5,1,157,"ControlLeft",5,e,0,"VK_LCONTROL",e,e],[4,1,158,"ShiftLeft",4,e,0,"VK_LSHIFT",e,e],[6,1,159,"AltLeft",6,e,0,"VK_LMENU",e,e],[57,1,160,"MetaLeft",57,e,0,"VK_LWIN",e,e],[5,1,161,"ControlRight",5,e,0,"VK_RCONTROL",e,e],[4,1,162,"ShiftRight",4,e,0,"VK_RSHIFT",e,e],[6,1,163,"AltRight",6,e,0,"VK_RMENU",e,e],[57,1,164,"MetaRight",57,e,0,"VK_RWIN",e,e],[0,1,165,"BrightnessUp",0,e,0,e,e,e],[0,1,166,"BrightnessDown",0,e,0,e,e,e],[0,1,167,"MediaPlay",0,e,0,e,e,e],[0,1,168,"MediaRecord",0,e,0,e,e,e],[0,1,169,"MediaFastForward",0,e,0,e,e,e],[0,1,170,"MediaRewind",0,e,0,e,e,e],[114,1,171,"MediaTrackNext",119,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK",e,e],[115,1,172,"MediaTrackPrevious",120,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK",e,e],[116,1,173,"MediaStop",121,"MediaStop",178,"VK_MEDIA_STOP",e,e],[0,1,174,"Eject",0,e,0,e,e,e],[117,1,175,"MediaPlayPause",122,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE",e,e],[0,1,176,"MediaSelect",123,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT",e,e],[0,1,177,"LaunchMail",124,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL",e,e],[0,1,178,"LaunchApp2",125,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2",e,e],[0,1,179,"LaunchApp1",0,e,0,"VK_MEDIA_LAUNCH_APP1",e,e],[0,1,180,"SelectTask",0,e,0,e,e,e],[0,1,181,"LaunchScreenSaver",0,e,0,e,e,e],[0,1,182,"BrowserSearch",115,"BrowserSearch",170,"VK_BROWSER_SEARCH",e,e],[0,1,183,"BrowserHome",116,"BrowserHome",172,"VK_BROWSER_HOME",e,e],[112,1,184,"BrowserBack",117,"BrowserBack",166,"VK_BROWSER_BACK",e,e],[113,1,185,"BrowserForward",118,"BrowserForward",167,"VK_BROWSER_FORWARD",e,e],[0,1,186,"BrowserStop",0,e,0,"VK_BROWSER_STOP",e,e],[0,1,187,"BrowserRefresh",0,e,0,"VK_BROWSER_REFRESH",e,e],[0,1,188,"BrowserFavorites",0,e,0,"VK_BROWSER_FAVORITES",e,e],[0,1,189,"ZoomToggle",0,e,0,e,e,e],[0,1,190,"MailReply",0,e,0,e,e,e],[0,1,191,"MailForward",0,e,0,e,e,e],[0,1,192,"MailSend",0,e,0,e,e,e],[109,1,0,e,109,"KeyInComposition",229,e,e,e],[111,1,0,e,111,"ABNT_C2",194,"VK_ABNT_C2",e,e],[91,1,0,e,91,"OEM_8",223,"VK_OEM_8",e,e],[0,1,0,e,0,e,0,"VK_KANA",e,e],[0,1,0,e,0,e,0,"VK_HANGUL",e,e],[0,1,0,e,0,e,0,"VK_JUNJA",e,e],[0,1,0,e,0,e,0,"VK_FINAL",e,e],[0,1,0,e,0,e,0,"VK_HANJA",e,e],[0,1,0,e,0,e,0,"VK_KANJI",e,e],[0,1,0,e,0,e,0,"VK_CONVERT",e,e],[0,1,0,e,0,e,0,"VK_NONCONVERT",e,e],[0,1,0,e,0,e,0,"VK_ACCEPT",e,e],[0,1,0,e,0,e,0,"VK_MODECHANGE",e,e],[0,1,0,e,0,e,0,"VK_SELECT",e,e],[0,1,0,e,0,e,0,"VK_PRINT",e,e],[0,1,0,e,0,e,0,"VK_EXECUTE",e,e],[0,1,0,e,0,e,0,"VK_SNAPSHOT",e,e],[0,1,0,e,0,e,0,"VK_HELP",e,e],[0,1,0,e,0,e,0,"VK_APPS",e,e],[0,1,0,e,0,e,0,"VK_PROCESSKEY",e,e],[0,1,0,e,0,e,0,"VK_PACKET",e,e],[0,1,0,e,0,e,0,"VK_DBE_SBCSCHAR",e,e],[0,1,0,e,0,e,0,"VK_DBE_DBCSCHAR",e,e],[0,1,0,e,0,e,0,"VK_ATTN",e,e],[0,1,0,e,0,e,0,"VK_CRSEL",e,e],[0,1,0,e,0,e,0,"VK_EXSEL",e,e],[0,1,0,e,0,e,0,"VK_EREOF",e,e],[0,1,0,e,0,e,0,"VK_PLAY",e,e],[0,1,0,e,0,e,0,"VK_ZOOM",e,e],[0,1,0,e,0,e,0,"VK_NONAME",e,e],[0,1,0,e,0,e,0,"VK_PA1",e,e],[0,1,0,e,0,e,0,"VK_OEM_CLEAR",e,e]],i=[],n=[];for(const p of t){const[e,t,m,f,_,v,b,C,w,y]=p;if(n[m]||(n[m]=!0,c[m]=f,d[f]=m,h[f.toLowerCase()]=m,t&&(u[m]=_,0!==_&&3!==_&&5!==_&&4!==_&&6!==_&&57!==_&&(g[_]=m))),!i[_]){if(i[_]=!0,!v)throw new Error(`String representation missing for key code ${_} around scan code ${f}`);o.define(_,v),s.define(_,w||v),r.define(_,y||w||v)}b&&(a[b]=_),C&&(l[C]=_)}g[3]=46}(),function(e){e.toString=function(e){return o.keyCodeToStr(e)},e.fromString=function(e){return o.strToKeyCode(e)},e.toUserSettingsUS=function(e){return s.keyCodeToStr(e)},e.toUserSettingsGeneral=function(e){return r.keyCodeToStr(e)},e.fromUserSettings=function(e){return s.strToKeyCode(e)||r.strToKeyCode(e)},e.toElectronAccelerator=function(e){if(e>=93&&e<=108)return null;switch(e){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return o.keyCodeToStr(e)}}(p||(p={}))},8030:(e,t,i)=>{"use strict";i.d(t,{X4:()=>r,jC:()=>a,xo:()=>s});var n=i(63580);class o{constructor(e,t,i=t){this.modifierLabels=[null],this.modifierLabels[2]=e,this.modifierLabels[1]=t,this.modifierLabels[3]=i}toLabel(e,t,i){if(0===t.length)return null;const n=[];for(let o=0,s=t.length;o<s;o++){const s=t[o],r=i(s);if(null===r)return null;n[o]=l(s,r,this.modifierLabels[e])}return n.join(" ")}}const s=new o({ctrlKey:"\u2303",shiftKey:"\u21e7",altKey:"\u2325",metaKey:"\u2318",separator:""},{ctrlKey:n.NC({key:"ctrlKey",comment:["This is the short form for the Control key on the keyboard"]},"Ctrl"),shiftKey:n.NC({key:"shiftKey",comment:["This is the short form for the Shift key on the keyboard"]},"Shift"),altKey:n.NC({key:"altKey",comment:["This is the short form for the Alt key on the keyboard"]},"Alt"),metaKey:n.NC({key:"windowsKey",comment:["This is the short form for the Windows key on the keyboard"]},"Windows"),separator:"+"},{ctrlKey:n.NC({key:"ctrlKey",comment:["This is the short form for the Control key on the keyboard"]},"Ctrl"),shiftKey:n.NC({key:"shiftKey",comment:["This is the short form for the Shift key on the keyboard"]},"Shift"),altKey:n.NC({key:"altKey",comment:["This is the short form for the Alt key on the keyboard"]},"Alt"),metaKey:n.NC({key:"superKey",comment:["This is the short form for the Super key on the keyboard"]},"Super"),separator:"+"}),r=new o({ctrlKey:n.NC({key:"ctrlKey.long",comment:["This is the long form for the Control key on the keyboard"]},"Control"),shiftKey:n.NC({key:"shiftKey.long",comment:["This is the long form for the Shift key on the keyboard"]},"Shift"),altKey:n.NC({key:"optKey.long",comment:["This is the long form for the Alt/Option key on the keyboard"]},"Option"),metaKey:n.NC({key:"cmdKey.long",comment:["This is the long form for the Command key on the keyboard"]},"Command"),separator:"+"},{ctrlKey:n.NC({key:"ctrlKey.long",comment:["This is the long form for the Control key on the keyboard"]},"Control"),shiftKey:n.NC({key:"shiftKey.long",comment:["This is the long form for the Shift key on the keyboard"]},"Shift"),altKey:n.NC({key:"altKey.long",comment:["This is the long form for the Alt key on the keyboard"]},"Alt"),metaKey:n.NC({key:"windowsKey.long",comment:["This is the long form for the Windows key on the keyboard"]},"Windows"),separator:"+"},{ctrlKey:n.NC({key:"ctrlKey.long",comment:["This is the long form for the Control key on the keyboard"]},"Control"),shiftKey:n.NC({key:"shiftKey.long",comment:["This is the long form for the Shift key on the keyboard"]},"Shift"),altKey:n.NC({key:"altKey.long",comment:["This is the long form for the Alt key on the keyboard"]},"Alt"),metaKey:n.NC({key:"superKey.long",comment:["This is the long form for the Super key on the keyboard"]},"Super"),separator:"+"}),a=new o({ctrlKey:"Ctrl",shiftKey:"Shift",altKey:"Alt",metaKey:"Cmd",separator:"+"},{ctrlKey:"Ctrl",shiftKey:"Shift",altKey:"Alt",metaKey:"Super",separator:"+"});new o({ctrlKey:"ctrl",shiftKey:"shift",altKey:"alt",metaKey:"cmd",separator:"+"},{ctrlKey:"ctrl",shiftKey:"shift",altKey:"alt",metaKey:"win",separator:"+"},{ctrlKey:"ctrl",shiftKey:"shift",altKey:"alt",metaKey:"meta",separator:"+"});function l(e,t,i){if(null===t)return"";const n=[];return e.ctrlKey&&n.push(i.ctrlKey),e.shiftKey&&n.push(i.shiftKey),e.altKey&&n.push(i.altKey),e.metaKey&&n.push(i.metaKey),""!==t&&n.push(t),n.join(i.separator)}},8313:(e,t,i)=>{"use strict";i.d(t,{BQ:()=>l,QC:()=>r,X_:()=>a,f1:()=>c,gm:()=>o});var n=i(17301);function o(e,t){if(0===e)return null;const i=(65535&e)>>>0,n=(4294901760&e)>>>16;return new a(0!==n?[s(i,t),s(n,t)]:[s(i,t)])}function s(e,t){const i=!!(2048&e),n=!!(256&e);return new r(2===t?n:i,!!(1024&e),!!(512&e),2===t?i:n,255&e)}class r{constructor(e,t,i,n,o){this.ctrlKey=e,this.shiftKey=t,this.altKey=i,this.metaKey=n,this.keyCode=o}equals(e){return this.ctrlKey===e.ctrlKey&&this.shiftKey===e.shiftKey&&this.altKey===e.altKey&&this.metaKey===e.metaKey&&this.keyCode===e.keyCode}isModifierKey(){return 0===this.keyCode||5===this.keyCode||57===this.keyCode||6===this.keyCode||4===this.keyCode}toChord(){return new a([this])}isDuplicateModifierCase(){return this.ctrlKey&&5===this.keyCode||this.shiftKey&&4===this.keyCode||this.altKey&&6===this.keyCode||this.metaKey&&57===this.keyCode}}class a{constructor(e){if(0===e.length)throw(0,n.b1)("parts");this.parts=e}}class l{constructor(e,t,i,n,o,s){this.ctrlKey=e,this.shiftKey=t,this.altKey=i,this.metaKey=n,this.keyLabel=o,this.keyAriaLabel=s}}class c{}},79579:(e,t,i)=>{"use strict";i.d(t,{o:()=>n});class n{constructor(e){this.executor=e,this._didRun=!1}hasValue(){return this._didRun}getValue(){if(!this._didRun)try{this._value=this.executor()}catch(e){this._error=e}finally{this._didRun=!0}if(this._error)throw this._error;return this._value}get rawValue(){return this._value}}},5976:(e,t,i)=>{"use strict";i.d(t,{B9:()=>u,F8:()=>g,JT:()=>f,Jz:()=>C,L6:()=>v,OF:()=>p,SL:()=>m,Wf:()=>h,XK:()=>_,dk:()=>c,dt:()=>b});var n=i(88289),o=i(53725);let s=null;function r(e){return null==s||s.trackDisposable(e),e}function a(e){null==s||s.markAsDisposed(e)}function l(e,t){null==s||s.setParent(e,t)}function c(e){return null==s||s.markAsSingleton(e),e}class d extends Error{constructor(e){super(`Encountered errors while disposing of store. Errors: [${e.join(", ")}]`),this.errors=e}}function h(e){return"function"==typeof e.dispose&&0===e.dispose.length}function u(e){if(o.$.is(e)){const i=[];for(const n of e)if(n)try{n.dispose()}catch(t){i.push(t)}if(1===i.length)throw i[0];if(i.length>1)throw new d(i);return Array.isArray(e)?[]:e}if(e)return e.dispose(),e}function g(...e){const t=p((()=>u(e)));return function(e,t){if(s)for(const i of e)s.setParent(i,t)}(e,t),t}function p(e){const t=r({dispose:(0,n.I)((()=>{a(t),e()}))});return t}class m{constructor(){this._toDispose=new Set,this._isDisposed=!1,r(this)}dispose(){this._isDisposed||(a(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){try{u(this._toDispose.values())}finally{this._toDispose.clear()}}add(e){if(!e)return e;if(e===this)throw new Error("Cannot register a disposable on itself!");return l(e,this),this._isDisposed?m.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(e),e}}m.DISABLE_DISPOSED_WARNING=!1;class f{constructor(){this._store=new m,r(this),l(this._store,this)}dispose(){a(this),this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}}f.None=Object.freeze({dispose(){}});class _{constructor(){this._isDisposed=!1,r(this)}get value(){return this._isDisposed?void 0:this._value}set value(e){var t;this._isDisposed||e===this._value||(null===(t=this._value)||void 0===t||t.dispose(),e&&l(e,this),this._value=e)}clear(){this.value=void 0}dispose(){var e;this._isDisposed=!0,a(this),null===(e=this._value)||void 0===e||e.dispose(),this._value=void 0}clearAndLeak(){const e=this._value;return this._value=void 0,e&&l(e,null),e}}class v{constructor(e){this._disposable=e,this._counter=1}acquire(){return this._counter++,this}release(){return 0==--this._counter&&this._disposable.dispose(),this}}class b{constructor(){this.dispose=()=>{},this.unset=()=>{},this.isset=()=>!1,r(this)}set(e){let t=e;return this.unset=()=>t=void 0,this.isset=()=>void 0!==t,this.dispose=()=>{t&&(t(),t=void 0,a(this))},this}}class C{constructor(e){this.object=e}dispose(){}}},91741:(e,t,i)=>{"use strict";i.d(t,{S:()=>o});class n{constructor(e){this.element=e,this.next=n.Undefined,this.prev=n.Undefined}}n.Undefined=new n(void 0);class o{constructor(){this._first=n.Undefined,this._last=n.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===n.Undefined}clear(){let e=this._first;for(;e!==n.Undefined;){const t=e.next;e.prev=n.Undefined,e.next=n.Undefined,e=t}this._first=n.Undefined,this._last=n.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){const i=new n(e);if(this._first===n.Undefined)this._first=i,this._last=i;else if(t){const e=this._last;this._last=i,i.prev=e,e.next=i}else{const e=this._first;this._first=i,i.next=e,e.prev=i}this._size+=1;let o=!1;return()=>{o||(o=!0,this._remove(i))}}shift(){if(this._first!==n.Undefined){const e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==n.Undefined){const e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==n.Undefined&&e.next!==n.Undefined){const t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===n.Undefined&&e.next===n.Undefined?(this._first=n.Undefined,this._last=n.Undefined):e.next===n.Undefined?(this._last=this._last.prev,this._last.next=n.Undefined):e.prev===n.Undefined&&(this._first=this._first.next,this._first.prev=n.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==n.Undefined;)yield e.element,e=e.next}}},43702:(e,t,i)=>{"use strict";i.d(t,{Id:()=>h,Y9:()=>g,z6:()=>m});var n,o,s=i(97295);class r{constructor(){this._value="",this._pos=0}reset(e){return this._value=e,this._pos=0,this}next(){return this._pos+=1,this}hasNext(){return this._pos<this._value.length-1}cmp(e){return e.charCodeAt(0)-this._value.charCodeAt(this._pos)}value(){return this._value[this._pos]}}class a{constructor(e=!0){this._caseSensitive=e}reset(e){return this._value=e,this._from=0,this._to=0,this.next()}hasNext(){return this._to<this._value.length}next(){this._from=this._to;let e=!0;for(;this._to<this._value.length;this._to++){if(46===this._value.charCodeAt(this._to)){if(!e)break;this._from++}else e=!1}return this}cmp(e){return this._caseSensitive?(0,s.TT)(e,this._value,0,e.length,this._from,this._to):(0,s.j_)(e,this._value,0,e.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}}class l{constructor(e=!0,t=!0){this._splitOnBackslash=e,this._caseSensitive=t}reset(e){this._from=0,this._to=0,this._value=e,this._valueLen=e.length;for(let t=e.length-1;t>=0;t--,this._valueLen--){const e=this._value.charCodeAt(t);if(!(47===e||this._splitOnBackslash&&92===e))break}return this.next()}hasNext(){return this._to<this._valueLen}next(){this._from=this._to;let e=!0;for(;this._to<this._valueLen;this._to++){const t=this._value.charCodeAt(this._to);if(47===t||this._splitOnBackslash&&92===t){if(!e)break;this._from++}else e=!1}return this}cmp(e){return this._caseSensitive?(0,s.TT)(e,this._value,0,e.length,this._from,this._to):(0,s.j_)(e,this._value,0,e.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}}class c{constructor(e,t){this._ignorePathCasing=e,this._ignoreQueryAndFragment=t,this._states=[],this._stateIdx=0}reset(e){return this._value=e,this._states=[],this._value.scheme&&this._states.push(1),this._value.authority&&this._states.push(2),this._value.path&&(this._pathIterator=new l(!1,!this._ignorePathCasing(e)),this._pathIterator.reset(e.path),this._pathIterator.value()&&this._states.push(3)),this._ignoreQueryAndFragment(e)||(this._value.query&&this._states.push(4),this._value.fragment&&this._states.push(5)),this._stateIdx=0,this}next(){return 3===this._states[this._stateIdx]&&this._pathIterator.hasNext()?this._pathIterator.next():this._stateIdx+=1,this}hasNext(){return 3===this._states[this._stateIdx]&&this._pathIterator.hasNext()||this._stateIdx<this._states.length-1}cmp(e){if(1===this._states[this._stateIdx])return(0,s.zY)(e,this._value.scheme);if(2===this._states[this._stateIdx])return(0,s.zY)(e,this._value.authority);if(3===this._states[this._stateIdx])return this._pathIterator.cmp(e);if(4===this._states[this._stateIdx])return(0,s.qu)(e,this._value.query);if(5===this._states[this._stateIdx])return(0,s.qu)(e,this._value.fragment);throw new Error}value(){if(1===this._states[this._stateIdx])return this._value.scheme;if(2===this._states[this._stateIdx])return this._value.authority;if(3===this._states[this._stateIdx])return this._pathIterator.value();if(4===this._states[this._stateIdx])return this._value.query;if(5===this._states[this._stateIdx])return this._value.fragment;throw new Error}}class d{constructor(){this.height=1}rotateLeft(){const e=this.right;return this.right=e.left,e.left=this,this.updateHeight(),e.updateHeight(),e}rotateRight(){const e=this.left;return this.left=e.right,e.right=this,this.updateHeight(),e.updateHeight(),e}updateHeight(){this.height=1+Math.max(this.heightLeft,this.heightRight)}balanceFactor(){return this.heightRight-this.heightLeft}get heightLeft(){var e,t;return null!==(t=null===(e=this.left)||void 0===e?void 0:e.height)&&void 0!==t?t:0}get heightRight(){var e,t;return null!==(t=null===(e=this.right)||void 0===e?void 0:e.height)&&void 0!==t?t:0}}class h{constructor(e){this._iter=e}static forUris(e=(()=>!1),t=(()=>!1)){return new h(new c(e,t))}static forStrings(){return new h(new r)}static forConfigKeys(){return new h(new a)}clear(){this._root=void 0}set(e,t){const i=this._iter.reset(e);let n;this._root||(this._root=new d,this._root.segment=i.value());const o=[];for(n=this._root;;){const e=i.cmp(n.segment);if(e>0)n.left||(n.left=new d,n.left.segment=i.value()),o.push([-1,n]),n=n.left;else if(e<0)n.right||(n.right=new d,n.right.segment=i.value()),o.push([1,n]),n=n.right;else{if(!i.hasNext())break;i.next(),n.mid||(n.mid=new d,n.mid.segment=i.value()),o.push([0,n]),n=n.mid}}const s=n.value;n.value=t,n.key=e;for(let r=o.length-1;r>=0;r--){const e=o[r][1];e.updateHeight();const t=e.balanceFactor();if(t<-1||t>1){const t=o[r][0],i=o[r+1][0];if(1===t&&1===i)o[r][1]=e.rotateLeft();else if(-1===t&&-1===i)o[r][1]=e.rotateRight();else if(1===t&&-1===i)e.right=o[r+1][1]=o[r+1][1].rotateRight(),o[r][1]=e.rotateLeft();else{if(-1!==t||1!==i)throw new Error;e.left=o[r+1][1]=o[r+1][1].rotateLeft(),o[r][1]=e.rotateRight()}if(r>0)switch(o[r-1][0]){case-1:o[r-1][1].left=o[r][1];break;case 1:o[r-1][1].right=o[r][1];break;case 0:o[r-1][1].mid=o[r][1]}else this._root=o[0][1]}}return s}get(e){var t;return null===(t=this._getNode(e))||void 0===t?void 0:t.value}_getNode(e){const t=this._iter.reset(e);let i=this._root;for(;i;){const e=t.cmp(i.segment);if(e>0)i=i.left;else if(e<0)i=i.right;else{if(!t.hasNext())break;t.next(),i=i.mid}}return i}has(e){const t=this._getNode(e);return!(void 0===(null==t?void 0:t.value)&&void 0===(null==t?void 0:t.mid))}delete(e){return this._delete(e,!1)}deleteSuperstr(e){return this._delete(e,!0)}_delete(e,t){var i;const n=this._iter.reset(e),o=[];let s=this._root;for(;s;){const e=n.cmp(s.segment);if(e>0)o.push([-1,s]),s=s.left;else if(e<0)o.push([1,s]),s=s.right;else{if(!n.hasNext())break;n.next(),o.push([0,s]),s=s.mid}}if(s){if(t?(s.left=void 0,s.mid=void 0,s.right=void 0,s.height=1):(s.key=void 0,s.value=void 0),!s.mid&&!s.value)if(s.left&&s.right){const e=this._min(s.right),{key:t,value:i,segment:n}=e;this._delete(e.key,!1),s.key=t,s.value=i,s.segment=n}else{const e=null!==(i=s.left)&&void 0!==i?i:s.right;if(o.length>0){const[t,i]=o[o.length-1];switch(t){case-1:i.left=e;break;case 0:i.mid=e;break;case 1:i.right=e}}else this._root=e}for(let e=o.length-1;e>=0;e--){const t=o[e][1];t.updateHeight();const i=t.balanceFactor();if(i>1?(t.right.balanceFactor()>=0||(t.right=t.right.rotateRight()),o[e][1]=t.rotateLeft()):i<-1&&(t.left.balanceFactor()<=0||(t.left=t.left.rotateLeft()),o[e][1]=t.rotateRight()),e>0)switch(o[e-1][0]){case-1:o[e-1][1].left=o[e][1];break;case 1:o[e-1][1].right=o[e][1];break;case 0:o[e-1][1].mid=o[e][1]}else this._root=o[0][1]}}}_min(e){for(;e.left;)e=e.left;return e}findSubstr(e){const t=this._iter.reset(e);let i,n=this._root;for(;n;){const e=t.cmp(n.segment);if(e>0)n=n.left;else if(e<0)n=n.right;else{if(!t.hasNext())break;t.next(),i=n.value||i,n=n.mid}}return n&&n.value||i}findSuperstr(e){const t=this._iter.reset(e);let i=this._root;for(;i;){const e=t.cmp(i.segment);if(e>0)i=i.left;else if(e<0)i=i.right;else{if(!t.hasNext())return i.mid?this._entries(i.mid):void 0;t.next(),i=i.mid}}}forEach(e){for(const[t,i]of this)e(i,t)}*[Symbol.iterator](){yield*this._entries(this._root)}_entries(e){const t=[];return this._dfsEntries(e,t),t[Symbol.iterator]()}_dfsEntries(e,t){e&&(e.left&&this._dfsEntries(e.left,t),e.value&&t.push([e.key,e.value]),e.mid&&this._dfsEntries(e.mid,t),e.right&&this._dfsEntries(e.right,t))}}class u{constructor(e,t){this.uri=e,this.value=t}}class g{constructor(e,t){this[n]="ResourceMap",e instanceof g?(this.map=new Map(e.map),this.toKey=null!=t?t:g.defaultToKey):(this.map=new Map,this.toKey=null!=e?e:g.defaultToKey)}set(e,t){return this.map.set(this.toKey(e),new u(e,t)),this}get(e){var t;return null===(t=this.map.get(this.toKey(e)))||void 0===t?void 0:t.value}has(e){return this.map.has(this.toKey(e))}get size(){return this.map.size}clear(){this.map.clear()}delete(e){return this.map.delete(this.toKey(e))}forEach(e,t){void 0!==t&&(e=e.bind(t));for(const[i,n]of this.map)e(n.value,n.uri,this)}*values(){for(const e of this.map.values())yield e.value}*keys(){for(const e of this.map.values())yield e.uri}*entries(){for(const e of this.map.values())yield[e.uri,e.value]}*[(n=Symbol.toStringTag,Symbol.iterator)](){for(const[,e]of this.map)yield[e.uri,e.value]}}g.defaultToKey=e=>e.toString();class p{constructor(){this[o]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){var e;return null===(e=this._head)||void 0===e?void 0:e.value}get last(){var e;return null===(e=this._tail)||void 0===e?void 0:e.value}has(e){return this._map.has(e)}get(e,t=0){const i=this._map.get(e);if(i)return 0!==t&&this.touch(i,t),i.value}set(e,t,i=0){let n=this._map.get(e);if(n)n.value=t,0!==i&&this.touch(n,i);else{switch(n={key:e,value:t,next:void 0,previous:void 0},i){case 0:case 2:default:this.addItemLast(n);break;case 1:this.addItemFirst(n)}this._map.set(e,n),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){const t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){const i=this._state;let n=this._head;for(;n;){if(t?e.bind(t)(n.value,n.key,this):e(n.value,n.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");n=n.next}}keys(){const e=this,t=this._state;let i=this._head;const n={[Symbol.iterator]:()=>n,next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const e={value:i.key,done:!1};return i=i.next,e}return{value:void 0,done:!0}}};return n}values(){const e=this,t=this._state;let i=this._head;const n={[Symbol.iterator]:()=>n,next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const e={value:i.value,done:!1};return i=i.next,e}return{value:void 0,done:!0}}};return n}entries(){const e=this,t=this._state;let i=this._head;const n={[Symbol.iterator]:()=>n,next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const e={value:[i.key,i.value],done:!1};return i=i.next,e}return{value:void 0,done:!0}}};return n}[(o=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(0===e)return void this.clear();let t=this._head,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.next,i--;this._head=t,this._size=i,t&&(t.previous=void 0),this._state++}addItemFirst(e){if(this._head||this._tail){if(!this._head)throw new Error("Invalid list");e.next=this._head,this._head.previous=e}else this._tail=e;this._head=e,this._state++}addItemLast(e){if(this._head||this._tail){if(!this._tail)throw new Error("Invalid list");e.previous=this._tail,this._tail.next=e}else this._head=e;this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{const t=e.next,i=e.previous;if(!t||!i)throw new Error("Invalid list");t.previous=i,i.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw new Error("Invalid list");if(1===t||2===t)if(1===t){if(e===this._head)return;const t=e.next,i=e.previous;e===this._tail?(i.next=void 0,this._tail=i):(t.previous=i,i.next=t),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(2===t){if(e===this._tail)return;const t=e.next,i=e.previous;e===this._head?(t.previous=void 0,this._head=t):(t.previous=i,i.next=t),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}toJSON(){const e=[];return this.forEach(((t,i)=>{e.push([i,t])})),e}fromJSON(e){this.clear();for(const[t,i]of e)this.set(t,i)}}class m extends p{constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get(e,t=2){return super.get(e,t)}peek(e){return super.get(e,0)}set(e,t){return super.set(e,t,2),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}},23897:(e,t,i)=>{"use strict";i.d(t,{Q:()=>s});var n=i(53060),o=i(70666);function s(e){let t=JSON.parse(e);return t=r(t),t}function r(e,t=0){if(!e||t>200)return e;if("object"==typeof e){switch(e.$mid){case 1:return o.o.revive(e);case 2:return new RegExp(e.source,e.flags);case 14:return new Date(e.source)}if(e instanceof n.KN||e instanceof Uint8Array)return e;if(Array.isArray(e))for(let i=0;i<e.length;++i)e[i]=r(e[i],t+1);else for(const i in e)Object.hasOwnProperty.call(e,i)&&(e[i]=r(e[i],t+1))}return e}},81170:(e,t,i)=>{"use strict";i.d(t,{v:()=>n});const n=Object.freeze({text:"text/plain",binary:"application/octet-stream",unknown:"application/unknown",markdown:"text/markdown",latex:"text/latex",uriList:"text/uri-list"})},66663:(e,t,i)=>{"use strict";i.d(t,{Gi:()=>l,WX:()=>r,lg:()=>n});var n,o=i(1432),s=i(70666);!function(e){e.inMemory="inmemory",e.vscode="vscode",e.internal="private",e.walkThrough="walkThrough",e.walkThroughSnippet="walkThroughSnippet",e.http="http",e.https="https",e.file="file",e.mailto="mailto",e.untitled="untitled",e.data="data",e.command="command",e.vscodeRemote="vscode-remote",e.vscodeRemoteResource="vscode-remote-resource",e.vscodeUserData="vscode-userdata",e.vscodeCustomEditor="vscode-custom-editor",e.vscodeNotebook="vscode-notebook",e.vscodeNotebookCell="vscode-notebook-cell",e.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",e.vscodeNotebookCellOutput="vscode-notebook-cell-output",e.vscodeInteractive="vscode-interactive",e.vscodeInteractiveInput="vscode-interactive-input",e.vscodeSettings="vscode-settings",e.vscodeWorkspaceTrust="vscode-workspace-trust",e.vscodeTerminal="vscode-terminal",e.webviewPanel="webview-panel",e.vscodeWebview="vscode-webview",e.extension="extension",e.vscodeFileResource="vscode-file",e.tmp="tmp",e.vsls="vsls",e.vscodeSourceControl="vscode-scm"}(n||(n={}));const r=new class{constructor(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema="http",this._delegate=null,this._remoteResourcesPath=`/${n.vscodeRemoteResource}`}setPreferredWebSchema(e){this._preferredWebSchema=e}rewrite(e){if(this._delegate)return this._delegate(e);const t=e.authority;let i=this._hosts[t];i&&-1!==i.indexOf(":")&&(i=`[${i}]`);const r=this._ports[t],a=this._connectionTokens[t];let l=`path=${encodeURIComponent(e.path)}`;return"string"==typeof a&&(l+=`&tkn=${encodeURIComponent(a)}`),s.o.from({scheme:o.$L?this._preferredWebSchema:n.vscodeRemoteResource,authority:`${i}:${r}`,path:this._remoteResourcesPath,query:l})}};class a{asBrowserUri(e,t){const i=this.toUri(e,t);return i.scheme===n.vscodeRemote?r.rewrite(i):i.scheme===n.file&&(o.tY||o.n2&&o.li.origin===`${n.vscodeFileResource}://${a.FALLBACK_AUTHORITY}`)?i.with({scheme:n.vscodeFileResource,authority:i.authority||a.FALLBACK_AUTHORITY,query:null,fragment:null}):i}toUri(e,t){return s.o.isUri(e)?e:s.o.parse(t.toUrl(e))}}a.FALLBACK_AUTHORITY="vscode-app";const l=new a},59870:(e,t,i)=>{"use strict";function n(e,t,i){return Math.min(Math.max(e,t),i)}i.d(t,{N:()=>s,nM:()=>o,uZ:()=>n});class o{constructor(){this._n=1,this._val=0}update(e){return this._val=this._val+(e-this._val)/this._n,this._n+=1,this._val}get value(){return this._val}}class s{constructor(e){this._n=0,this._val=0,this._values=[],this._index=0,this._sum=0,this._values=new Array(e),this._values.fill(0,0,e)}update(e){const t=this._values[this._index];return this._values[this._index]=e,this._index=(this._index+1)%this._values.length,this._sum-=t,this._sum+=e,this._n<this._values.length&&(this._n+=1),this._val=this._sum/this._n,this._val}get value(){return this._val}}},36248:(e,t,i)=>{"use strict";i.d(t,{I8:()=>o,_A:()=>s,fS:()=>d,jB:()=>c,rs:()=>a});var n=i(98401);function o(e){if(!e||"object"!=typeof e)return e;if(e instanceof RegExp)return e;const t=Array.isArray(e)?[]:{};return Object.keys(e).forEach((i=>{e[i]&&"object"==typeof e[i]?t[i]=o(e[i]):t[i]=e[i]})),t}function s(e){if(!e||"object"!=typeof e)return e;const t=[e];for(;t.length>0;){const e=t.shift();Object.freeze(e);for(const i in e)if(r.call(e,i)){const o=e[i];"object"!=typeof o||Object.isFrozen(o)||(0,n.fU)(o)||t.push(o)}}return e}const r=Object.prototype.hasOwnProperty;function a(e,t){return l(e,t,new Set)}function l(e,t,i){if((0,n.Jp)(e))return e;const o=t(e);if(void 0!==o)return o;if((0,n.kJ)(e)){const n=[];for(const o of e)n.push(l(o,t,i));return n}if((0,n.Kn)(e)){if(i.has(e))throw new Error("Cannot clone recursive data-structure");i.add(e);const n={};for(const o in e)r.call(e,o)&&(n[o]=l(e[o],t,i));return i.delete(e),n}return e}function c(e,t,i=!0){return(0,n.Kn)(e)?((0,n.Kn)(t)&&Object.keys(t).forEach((o=>{o in e?i&&((0,n.Kn)(e[o])&&(0,n.Kn)(t[o])?c(e[o],t[o],i):e[o]=t[o]):e[o]=t[o]})),e):t}function d(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(typeof e!=typeof t)return!1;if("object"!=typeof e)return!1;if(Array.isArray(e)!==Array.isArray(t))return!1;let i,n;if(Array.isArray(e)){if(e.length!==t.length)return!1;for(i=0;i<e.length;i++)if(!d(e[i],t[i]))return!1}else{const o=[];for(n in e)o.push(n);o.sort();const s=[];for(n in t)s.push(n);if(s.sort(),!d(o,s))return!1;for(i=0;i<o.length;i++)if(!d(e[o[i]],t[o[i]]))return!1}return!0}},55336:(e,t,i)=>{"use strict";i.d(t,{EZ:()=>k,XX:()=>L,DZ:()=>x,Fv:()=>w,KR:()=>C,Gf:()=>S,DB:()=>y,ir:()=>D,Ku:()=>b});var n=i(1432);let o;if(void 0!==n.li.vscode&&void 0!==n.li.vscode.process){const e=n.li.vscode.process;o={get platform(){return e.platform},get arch(){return e.arch},get env(){return e.env},cwd:()=>e.cwd()}}else o="undefined"!=typeof process?{get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd:()=>process.env.VSCODE_CWD||process.cwd()}:{get platform(){return n.ED?"win32":n.dz?"darwin":"linux"},get arch(){},get env(){return{}},cwd:()=>"/"};const s=o.cwd,r=o.env,a=o.platform,l=46,c=47,d=92,h=58;class u extends Error{constructor(e,t,i){let n;"string"==typeof t&&0===t.indexOf("not ")?(n="must not be",t=t.replace(/^not /,"")):n="must be";const o=-1!==e.indexOf(".")?"property":"argument";let s=`The "${e}" ${o} ${n} of type ${t}`;s+=". Received type "+typeof i,super(s),this.code="ERR_INVALID_ARG_TYPE"}}function g(e,t){if("string"!=typeof e)throw new u(t,"string",e)}function p(e){return e===c||e===d}function m(e){return e===c}function f(e){return e>=65&&e<=90||e>=97&&e<=122}function _(e,t,i,n){let o="",s=0,r=-1,a=0,d=0;for(let h=0;h<=e.length;++h){if(h<e.length)d=e.charCodeAt(h);else{if(n(d))break;d=c}if(n(d)){if(r===h-1||1===a);else if(2===a){if(o.length<2||2!==s||o.charCodeAt(o.length-1)!==l||o.charCodeAt(o.length-2)!==l){if(o.length>2){const e=o.lastIndexOf(i);-1===e?(o="",s=0):(o=o.slice(0,e),s=o.length-1-o.lastIndexOf(i)),r=h,a=0;continue}if(0!==o.length){o="",s=0,r=h,a=0;continue}}t&&(o+=o.length>0?`${i}..`:"..",s=2)}else o.length>0?o+=`${i}${e.slice(r+1,h)}`:o=e.slice(r+1,h),s=h-r-1;r=h,a=0}else d===l&&-1!==a?++a:a=-1}return o}function v(e,t){if(null===t||"object"!=typeof t)throw new u("pathObject","Object",t);const i=t.dir||t.root,n=t.base||`${t.name||""}${t.ext||""}`;return i?i===t.root?`${i}${n}`:`${i}${e}${n}`:n}const b={resolve(...e){let t="",i="",n=!1;for(let o=e.length-1;o>=-1;o--){let a;if(o>=0){if(a=e[o],g(a,"path"),0===a.length)continue}else 0===t.length?a=s():(a=r[`=${t}`]||s(),(void 0===a||a.slice(0,2).toLowerCase()!==t.toLowerCase()&&a.charCodeAt(2)===d)&&(a=`${t}\\`));const l=a.length;let c=0,u="",m=!1;const _=a.charCodeAt(0);if(1===l)p(_)&&(c=1,m=!0);else if(p(_))if(m=!0,p(a.charCodeAt(1))){let e=2,t=e;for(;e<l&&!p(a.charCodeAt(e));)e++;if(e<l&&e!==t){const i=a.slice(t,e);for(t=e;e<l&&p(a.charCodeAt(e));)e++;if(e<l&&e!==t){for(t=e;e<l&&!p(a.charCodeAt(e));)e++;e!==l&&e===t||(u=`\\\\${i}\\${a.slice(t,e)}`,c=e)}}}else c=1;else f(_)&&a.charCodeAt(1)===h&&(u=a.slice(0,2),c=2,l>2&&p(a.charCodeAt(2))&&(m=!0,c=3));if(u.length>0)if(t.length>0){if(u.toLowerCase()!==t.toLowerCase())continue}else t=u;if(n){if(t.length>0)break}else if(i=`${a.slice(c)}\\${i}`,n=m,m&&t.length>0)break}return i=_(i,!n,"\\",p),n?`${t}\\${i}`:`${t}${i}`||"."},normalize(e){g(e,"path");const t=e.length;if(0===t)return".";let i,n=0,o=!1;const s=e.charCodeAt(0);if(1===t)return m(s)?"\\":e;if(p(s))if(o=!0,p(e.charCodeAt(1))){let o=2,s=o;for(;o<t&&!p(e.charCodeAt(o));)o++;if(o<t&&o!==s){const r=e.slice(s,o);for(s=o;o<t&&p(e.charCodeAt(o));)o++;if(o<t&&o!==s){for(s=o;o<t&&!p(e.charCodeAt(o));)o++;if(o===t)return`\\\\${r}\\${e.slice(s)}\\`;o!==s&&(i=`\\\\${r}\\${e.slice(s,o)}`,n=o)}}}else n=1;else f(s)&&e.charCodeAt(1)===h&&(i=e.slice(0,2),n=2,t>2&&p(e.charCodeAt(2))&&(o=!0,n=3));let r=n<t?_(e.slice(n),!o,"\\",p):"";return 0!==r.length||o||(r="."),r.length>0&&p(e.charCodeAt(t-1))&&(r+="\\"),void 0===i?o?`\\${r}`:r:o?`${i}\\${r}`:`${i}${r}`},isAbsolute(e){g(e,"path");const t=e.length;if(0===t)return!1;const i=e.charCodeAt(0);return p(i)||t>2&&f(i)&&e.charCodeAt(1)===h&&p(e.charCodeAt(2))},join(...e){if(0===e.length)return".";let t,i;for(let s=0;s<e.length;++s){const n=e[s];g(n,"path"),n.length>0&&(void 0===t?t=i=n:t+=`\\${n}`)}if(void 0===t)return".";let n=!0,o=0;if("string"==typeof i&&p(i.charCodeAt(0))){++o;const e=i.length;e>1&&p(i.charCodeAt(1))&&(++o,e>2&&(p(i.charCodeAt(2))?++o:n=!1))}if(n){for(;o<t.length&&p(t.charCodeAt(o));)o++;o>=2&&(t=`\\${t.slice(o)}`)}return b.normalize(t)},relative(e,t){if(g(e,"from"),g(t,"to"),e===t)return"";const i=b.resolve(e),n=b.resolve(t);if(i===n)return"";if((e=i.toLowerCase())===(t=n.toLowerCase()))return"";let o=0;for(;o<e.length&&e.charCodeAt(o)===d;)o++;let s=e.length;for(;s-1>o&&e.charCodeAt(s-1)===d;)s--;const r=s-o;let a=0;for(;a<t.length&&t.charCodeAt(a)===d;)a++;let l=t.length;for(;l-1>a&&t.charCodeAt(l-1)===d;)l--;const c=l-a,h=r<c?r:c;let u=-1,p=0;for(;p<h;p++){const i=e.charCodeAt(o+p);if(i!==t.charCodeAt(a+p))break;i===d&&(u=p)}if(p!==h){if(-1===u)return n}else{if(c>h){if(t.charCodeAt(a+p)===d)return n.slice(a+p+1);if(2===p)return n.slice(a+p)}r>h&&(e.charCodeAt(o+p)===d?u=p:2===p&&(u=3)),-1===u&&(u=0)}let m="";for(p=o+u+1;p<=s;++p)p!==s&&e.charCodeAt(p)!==d||(m+=0===m.length?"..":"\\..");return a+=u,m.length>0?`${m}${n.slice(a,l)}`:(n.charCodeAt(a)===d&&++a,n.slice(a,l))},toNamespacedPath(e){if("string"!=typeof e)return e;if(0===e.length)return"";const t=b.resolve(e);if(t.length<=2)return e;if(t.charCodeAt(0)===d){if(t.charCodeAt(1)===d){const e=t.charCodeAt(2);if(63!==e&&e!==l)return`\\\\?\\UNC\\${t.slice(2)}`}}else if(f(t.charCodeAt(0))&&t.charCodeAt(1)===h&&t.charCodeAt(2)===d)return`\\\\?\\${t}`;return e},dirname(e){g(e,"path");const t=e.length;if(0===t)return".";let i=-1,n=0;const o=e.charCodeAt(0);if(1===t)return p(o)?e:".";if(p(o)){if(i=n=1,p(e.charCodeAt(1))){let o=2,s=o;for(;o<t&&!p(e.charCodeAt(o));)o++;if(o<t&&o!==s){for(s=o;o<t&&p(e.charCodeAt(o));)o++;if(o<t&&o!==s){for(s=o;o<t&&!p(e.charCodeAt(o));)o++;if(o===t)return e;o!==s&&(i=n=o+1)}}}}else f(o)&&e.charCodeAt(1)===h&&(i=t>2&&p(e.charCodeAt(2))?3:2,n=i);let s=-1,r=!0;for(let a=t-1;a>=n;--a)if(p(e.charCodeAt(a))){if(!r){s=a;break}}else r=!1;if(-1===s){if(-1===i)return".";s=i}return e.slice(0,s)},basename(e,t){void 0!==t&&g(t,"ext"),g(e,"path");let i,n=0,o=-1,s=!0;if(e.length>=2&&f(e.charCodeAt(0))&&e.charCodeAt(1)===h&&(n=2),void 0!==t&&t.length>0&&t.length<=e.length){if(t===e)return"";let r=t.length-1,a=-1;for(i=e.length-1;i>=n;--i){const l=e.charCodeAt(i);if(p(l)){if(!s){n=i+1;break}}else-1===a&&(s=!1,a=i+1),r>=0&&(l===t.charCodeAt(r)?-1==--r&&(o=i):(r=-1,o=a))}return n===o?o=a:-1===o&&(o=e.length),e.slice(n,o)}for(i=e.length-1;i>=n;--i)if(p(e.charCodeAt(i))){if(!s){n=i+1;break}}else-1===o&&(s=!1,o=i+1);return-1===o?"":e.slice(n,o)},extname(e){g(e,"path");let t=0,i=-1,n=0,o=-1,s=!0,r=0;e.length>=2&&e.charCodeAt(1)===h&&f(e.charCodeAt(0))&&(t=n=2);for(let a=e.length-1;a>=t;--a){const t=e.charCodeAt(a);if(p(t)){if(!s){n=a+1;break}}else-1===o&&(s=!1,o=a+1),t===l?-1===i?i=a:1!==r&&(r=1):-1!==i&&(r=-1)}return-1===i||-1===o||0===r||1===r&&i===o-1&&i===n+1?"":e.slice(i,o)},format:v.bind(null,"\\"),parse(e){g(e,"path");const t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;const i=e.length;let n=0,o=e.charCodeAt(0);if(1===i)return p(o)?(t.root=t.dir=e,t):(t.base=t.name=e,t);if(p(o)){if(n=1,p(e.charCodeAt(1))){let t=2,o=t;for(;t<i&&!p(e.charCodeAt(t));)t++;if(t<i&&t!==o){for(o=t;t<i&&p(e.charCodeAt(t));)t++;if(t<i&&t!==o){for(o=t;t<i&&!p(e.charCodeAt(t));)t++;t===i?n=t:t!==o&&(n=t+1)}}}}else if(f(o)&&e.charCodeAt(1)===h){if(i<=2)return t.root=t.dir=e,t;if(n=2,p(e.charCodeAt(2))){if(3===i)return t.root=t.dir=e,t;n=3}}n>0&&(t.root=e.slice(0,n));let s=-1,r=n,a=-1,c=!0,d=e.length-1,u=0;for(;d>=n;--d)if(o=e.charCodeAt(d),p(o)){if(!c){r=d+1;break}}else-1===a&&(c=!1,a=d+1),o===l?-1===s?s=d:1!==u&&(u=1):-1!==s&&(u=-1);return-1!==a&&(-1===s||0===u||1===u&&s===a-1&&s===r+1?t.base=t.name=e.slice(r,a):(t.name=e.slice(r,s),t.base=e.slice(r,a),t.ext=e.slice(s,a))),t.dir=r>0&&r!==n?e.slice(0,r-1):t.root,t},sep:"\\",delimiter:";",win32:null,posix:null},C={resolve(...e){let t="",i=!1;for(let n=e.length-1;n>=-1&&!i;n--){const o=n>=0?e[n]:s();g(o,"path"),0!==o.length&&(t=`${o}/${t}`,i=o.charCodeAt(0)===c)}return t=_(t,!i,"/",m),i?`/${t}`:t.length>0?t:"."},normalize(e){if(g(e,"path"),0===e.length)return".";const t=e.charCodeAt(0)===c,i=e.charCodeAt(e.length-1)===c;return 0===(e=_(e,!t,"/",m)).length?t?"/":i?"./":".":(i&&(e+="/"),t?`/${e}`:e)},isAbsolute:e=>(g(e,"path"),e.length>0&&e.charCodeAt(0)===c),join(...e){if(0===e.length)return".";let t;for(let i=0;i<e.length;++i){const n=e[i];g(n,"path"),n.length>0&&(void 0===t?t=n:t+=`/${n}`)}return void 0===t?".":C.normalize(t)},relative(e,t){if(g(e,"from"),g(t,"to"),e===t)return"";if((e=C.resolve(e))===(t=C.resolve(t)))return"";const i=e.length,n=i-1,o=t.length-1,s=n<o?n:o;let r=-1,a=0;for(;a<s;a++){const i=e.charCodeAt(1+a);if(i!==t.charCodeAt(1+a))break;i===c&&(r=a)}if(a===s)if(o>s){if(t.charCodeAt(1+a)===c)return t.slice(1+a+1);if(0===a)return t.slice(1+a)}else n>s&&(e.charCodeAt(1+a)===c?r=a:0===a&&(r=0));let l="";for(a=1+r+1;a<=i;++a)a!==i&&e.charCodeAt(a)!==c||(l+=0===l.length?"..":"/..");return`${l}${t.slice(1+r)}`},toNamespacedPath:e=>e,dirname(e){if(g(e,"path"),0===e.length)return".";const t=e.charCodeAt(0)===c;let i=-1,n=!0;for(let o=e.length-1;o>=1;--o)if(e.charCodeAt(o)===c){if(!n){i=o;break}}else n=!1;return-1===i?t?"/":".":t&&1===i?"//":e.slice(0,i)},basename(e,t){void 0!==t&&g(t,"ext"),g(e,"path");let i,n=0,o=-1,s=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t===e)return"";let r=t.length-1,a=-1;for(i=e.length-1;i>=0;--i){const l=e.charCodeAt(i);if(l===c){if(!s){n=i+1;break}}else-1===a&&(s=!1,a=i+1),r>=0&&(l===t.charCodeAt(r)?-1==--r&&(o=i):(r=-1,o=a))}return n===o?o=a:-1===o&&(o=e.length),e.slice(n,o)}for(i=e.length-1;i>=0;--i)if(e.charCodeAt(i)===c){if(!s){n=i+1;break}}else-1===o&&(s=!1,o=i+1);return-1===o?"":e.slice(n,o)},extname(e){g(e,"path");let t=-1,i=0,n=-1,o=!0,s=0;for(let r=e.length-1;r>=0;--r){const a=e.charCodeAt(r);if(a!==c)-1===n&&(o=!1,n=r+1),a===l?-1===t?t=r:1!==s&&(s=1):-1!==t&&(s=-1);else if(!o){i=r+1;break}}return-1===t||-1===n||0===s||1===s&&t===n-1&&t===i+1?"":e.slice(t,n)},format:v.bind(null,"/"),parse(e){g(e,"path");const t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;const i=e.charCodeAt(0)===c;let n;i?(t.root="/",n=1):n=0;let o=-1,s=0,r=-1,a=!0,d=e.length-1,h=0;for(;d>=n;--d){const t=e.charCodeAt(d);if(t!==c)-1===r&&(a=!1,r=d+1),t===l?-1===o?o=d:1!==h&&(h=1):-1!==o&&(h=-1);else if(!a){s=d+1;break}}if(-1!==r){const n=0===s&&i?1:s;-1===o||0===h||1===h&&o===r-1&&o===s+1?t.base=t.name=e.slice(n,r):(t.name=e.slice(n,o),t.base=e.slice(n,r),t.ext=e.slice(o,r))}return s>0?t.dir=e.slice(0,s-1):i&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};C.win32=b.win32=b,C.posix=b.posix=C;const w="win32"===a?b.normalize:C.normalize,y="win32"===a?b.resolve:C.resolve,S="win32"===a?b.relative:C.relative,L="win32"===a?b.dirname:C.dirname,k="win32"===a?b.basename:C.basename,x="win32"===a?b.extname:C.extname,D="win32"===a?b.sep:C.sep},1432:(e,t,i)=>{"use strict";i.d(t,{$L:()=>N,ED:()=>L,G6:()=>H,IJ:()=>x,OS:()=>O,dK:()=>M,dz:()=>k,fn:()=>R,gn:()=>I,i7:()=>V,li:()=>b,n2:()=>E,r:()=>B,tY:()=>D,un:()=>z,vU:()=>W});var n,o=i(63580);const s="en";let r,a,l=!1,c=!1,d=!1,h=!1,u=!1,g=!1,p=!1,m=!1,f=!1,_=s,v=null;const b="object"==typeof self?self:"object"==typeof i.g?i.g:{};let C;void 0!==b.vscode&&void 0!==b.vscode.process?C=b.vscode.process:"undefined"!=typeof process&&(C=process);const w="string"==typeof(null===(n=null==C?void 0:C.versions)||void 0===n?void 0:n.electron),y=w&&"renderer"===(null==C?void 0:C.type);if("object"!=typeof navigator||y)if("object"==typeof C){l="win32"===C.platform,c="darwin"===C.platform,d="linux"===C.platform,h=d&&!!C.env.SNAP&&!!C.env.SNAP_REVISION,p=w,f=!!C.env.CI||!!C.env.BUILD_ARTIFACTSTAGINGDIRECTORY,r=s,_=s;const e=C.env.VSCODE_NLS_CONFIG;if(e)try{const t=JSON.parse(e),i=t.availableLanguages["*"];r=t.locale,_=i||s,v=t._translationsConfigFile}catch(j){}u=!0}else console.error("Unable to resolve platform.");else{a=navigator.userAgent,l=a.indexOf("Windows")>=0,c=a.indexOf("Macintosh")>=0,m=(a.indexOf("Macintosh")>=0||a.indexOf("iPad")>=0||a.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,d=a.indexOf("Linux")>=0,g=!0;r=o.aj(o.NC({key:"ensureLoaderPluginIsLoaded",comment:["{Locked}"]},"_"))||s,_=r}let S=0;c?S=1:l?S=3:d&&(S=2);const L=l,k=c,x=d,D=u,N=g,E=g&&"function"==typeof b.importScripts,I=m,T=a,M=_,A="function"==typeof b.postMessage&&!b.importScripts,R=(()=>{if(A){const e=[];b.addEventListener("message",(t=>{if(t.data&&t.data.vscodeScheduleAsyncWork)for(let i=0,n=e.length;i<n;i++){const n=e[i];if(n.id===t.data.vscodeScheduleAsyncWork)return e.splice(i,1),void n.callback()}}));let t=0;return i=>{const n=++t;e.push({id:n,callback:i}),b.postMessage({vscodeScheduleAsyncWork:n},"*")}}return e=>setTimeout(e)})(),O=c||m?2:l?1:3;let P=!0,F=!1;function B(){if(!F){F=!0;const e=new Uint8Array(2);e[0]=1,e[1]=2;const t=new Uint16Array(e.buffer);P=513===t[0]}return P}const V=!!(T&&T.indexOf("Chrome")>=0),W=!!(T&&T.indexOf("Firefox")>=0),H=!!(!V&&T&&T.indexOf("Safari")>=0),z=!!(T&&T.indexOf("Edg/")>=0);T&&T.indexOf("Android")},61134:(e,t,i)=>{"use strict";var n;i.d(t,{e:()=>n}),function(e){function t(e,t){if(e.start>=t.end||t.start>=e.end)return{start:0,end:0};const i=Math.max(e.start,t.start),n=Math.min(e.end,t.end);return n-i<=0?{start:0,end:0}:{start:i,end:n}}function i(e){return e.end-e.start<=0}e.intersect=t,e.isEmpty=i,e.intersects=function(e,n){return!i(t(e,n))},e.relativeComplement=function(e,t){const n=[],o={start:e.start,end:Math.min(t.start,e.end)},s={start:Math.max(t.end,e.start),end:e.end};return i(o)||n.push(o),i(s)||n.push(s),n}}(n||(n={}))},95935:(e,t,i)=>{"use strict";i.d(t,{AH:()=>v,DZ:()=>m,EZ:()=>p,Hx:()=>g,SF:()=>h,Vb:()=>S,Vo:()=>_,XX:()=>f,Xy:()=>u,i3:()=>C,lX:()=>b,z_:()=>c});var n=i(15527),o=i(66663),s=i(55336),r=i(1432),a=i(97295),l=i(70666);function c(e){return(0,l.q)(e,!0)}class d{constructor(e){this._ignorePathCasing=e}compare(e,t,i=!1){return e===t?0:(0,a.qu)(this.getComparisonKey(e,i),this.getComparisonKey(t,i))}isEqual(e,t,i=!1){return e===t||!(!e||!t)&&this.getComparisonKey(e,i)===this.getComparisonKey(t,i)}getComparisonKey(e,t=!1){return e.with({path:this._ignorePathCasing(e)?e.path.toLowerCase():void 0,fragment:t?null:void 0}).toString()}isEqualOrParent(e,t,i=!1){if(e.scheme===t.scheme){if(e.scheme===o.lg.file)return n.KM(c(e),c(t),this._ignorePathCasing(e))&&e.query===t.query&&(i||e.fragment===t.fragment);if(w(e.authority,t.authority))return n.KM(e.path,t.path,this._ignorePathCasing(e),"/")&&e.query===t.query&&(i||e.fragment===t.fragment)}return!1}joinPath(e,...t){return l.o.joinPath(e,...t)}basenameOrAuthority(e){return p(e)||e.authority}basename(e){return s.KR.basename(e.path)}extname(e){return s.KR.extname(e.path)}dirname(e){if(0===e.path.length)return e;let t;return e.scheme===o.lg.file?t=l.o.file(s.XX(c(e))).path:(t=s.KR.dirname(e.path),e.authority&&t.length&&47!==t.charCodeAt(0)&&(console.error(`dirname("${e.toString})) resulted in a relative path`),t="/")),e.with({path:t})}normalizePath(e){if(!e.path.length)return e;let t;return t=e.scheme===o.lg.file?l.o.file(s.Fv(c(e))).path:s.KR.normalize(e.path),e.with({path:t})}relativePath(e,t){if(e.scheme!==t.scheme||!w(e.authority,t.authority))return;if(e.scheme===o.lg.file){const i=s.Gf(c(e),c(t));return r.ED?n.ej(i):i}let i=e.path||"/";const a=t.path||"/";if(this._ignorePathCasing(e)){let e=0;for(const t=Math.min(i.length,a.length);e<t&&(i.charCodeAt(e)===a.charCodeAt(e)||i.charAt(e).toLowerCase()===a.charAt(e).toLowerCase());e++);i=a.substr(0,e)+i.substr(e)}return s.KR.relative(i,a)}resolvePath(e,t){if(e.scheme===o.lg.file){const i=l.o.file(s.DB(c(e),t));return e.with({authority:i.authority,path:i.path})}return t=n.fn(t),e.with({path:s.KR.resolve(e.path,t)})}isAbsolutePath(e){return!!e.path&&"/"===e.path[0]}isEqualAuthority(e,t){return e===t||void 0!==e&&void 0!==t&&(0,a.qq)(e,t)}hasTrailingPathSeparator(e,t=s.ir){if(e.scheme===o.lg.file){const i=c(e);return i.length>n.yj(i).length&&i[i.length-1]===t}{const t=e.path;return t.length>1&&47===t.charCodeAt(t.length-1)&&!/^[a-zA-Z]:(\/$|\\$)/.test(e.fsPath)}}removeTrailingPathSeparator(e,t=s.ir){return y(e,t)?e.with({path:e.path.substr(0,e.path.length-1)}):e}addTrailingPathSeparator(e,t=s.ir){let i=!1;if(e.scheme===o.lg.file){const o=c(e);i=void 0!==o&&o.length===n.yj(o).length&&o[o.length-1]===t}else{t="/";const n=e.path;i=1===n.length&&47===n.charCodeAt(n.length-1)}return i||y(e,t)?e:e.with({path:e.path+"/"})}}const h=new d((()=>!1)),u=(new d((e=>e.scheme!==o.lg.file||!r.IJ)),new d((e=>!0)),h.isEqual.bind(h)),g=(h.isEqualOrParent.bind(h),h.getComparisonKey.bind(h),h.basenameOrAuthority.bind(h)),p=h.basename.bind(h),m=h.extname.bind(h),f=h.dirname.bind(h),_=h.joinPath.bind(h),v=h.normalizePath.bind(h),b=h.relativePath.bind(h),C=h.resolvePath.bind(h),w=(h.isAbsolutePath.bind(h),h.isEqualAuthority.bind(h)),y=h.hasTrailingPathSeparator.bind(h);h.removeTrailingPathSeparator.bind(h),h.addTrailingPathSeparator.bind(h);var S;!function(e){e.META_DATA_LABEL="label",e.META_DATA_DESCRIPTION="description",e.META_DATA_SIZE="size",e.META_DATA_MIME="mime",e.parseMetaData=function(t){const i=new Map;t.path.substring(t.path.indexOf(";")+1,t.path.lastIndexOf(";")).split(";").forEach((e=>{const[t,n]=e.split(":");t&&n&&i.set(t,n)}));const n=t.path.substring(0,t.path.indexOf(";"));return n&&i.set(e.META_DATA_MIME,n),i}}(S||(S={}))},76633:(e,t,i)=>{"use strict";i.d(t,{Rm:()=>r});var n=i(4669),o=i(5976);class s{constructor(e,t,i,n,o,s,r){this._forceIntegerValues=e,this._scrollStateBrand=void 0,this._forceIntegerValues&&(t|=0,i|=0,n|=0,o|=0,s|=0,r|=0),this.rawScrollLeft=n,this.rawScrollTop=r,t<0&&(t=0),n+t>i&&(n=i-t),n<0&&(n=0),o<0&&(o=0),r+o>s&&(r=s-o),r<0&&(r=0),this.width=t,this.scrollWidth=i,this.scrollLeft=n,this.height=o,this.scrollHeight=s,this.scrollTop=r}equals(e){return this.rawScrollLeft===e.rawScrollLeft&&this.rawScrollTop===e.rawScrollTop&&this.width===e.width&&this.scrollWidth===e.scrollWidth&&this.scrollLeft===e.scrollLeft&&this.height===e.height&&this.scrollHeight===e.scrollHeight&&this.scrollTop===e.scrollTop}withScrollDimensions(e,t){return new s(this._forceIntegerValues,void 0!==e.width?e.width:this.width,void 0!==e.scrollWidth?e.scrollWidth:this.scrollWidth,t?this.rawScrollLeft:this.scrollLeft,void 0!==e.height?e.height:this.height,void 0!==e.scrollHeight?e.scrollHeight:this.scrollHeight,t?this.rawScrollTop:this.scrollTop)}withScrollPosition(e){return new s(this._forceIntegerValues,this.width,this.scrollWidth,void 0!==e.scrollLeft?e.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,void 0!==e.scrollTop?e.scrollTop:this.rawScrollTop)}createScrollEvent(e,t){const i=this.width!==e.width,n=this.scrollWidth!==e.scrollWidth,o=this.scrollLeft!==e.scrollLeft,s=this.height!==e.height,r=this.scrollHeight!==e.scrollHeight,a=this.scrollTop!==e.scrollTop;return{inSmoothScrolling:t,oldWidth:e.width,oldScrollWidth:e.scrollWidth,oldScrollLeft:e.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:e.height,oldScrollHeight:e.scrollHeight,oldScrollTop:e.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:i,scrollWidthChanged:n,scrollLeftChanged:o,heightChanged:s,scrollHeightChanged:r,scrollTopChanged:a}}}class r extends o.JT{constructor(e){super(),this._scrollableBrand=void 0,this._onScroll=this._register(new n.Q5),this.onScroll=this._onScroll.event,this._smoothScrollDuration=e.smoothScrollDuration,this._scheduleAtNextAnimationFrame=e.scheduleAtNextAnimationFrame,this._state=new s(e.forceIntegerValues,0,0,0,0,0,0),this._smoothScrolling=null}dispose(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),super.dispose()}setSmoothScrollDuration(e){this._smoothScrollDuration=e}validateScrollPosition(e){return this._state.withScrollPosition(e)}getScrollDimensions(){return this._state}setScrollDimensions(e,t){var i;const n=this._state.withScrollDimensions(e,t);this._setState(n,Boolean(this._smoothScrolling)),null===(i=this._smoothScrolling)||void 0===i||i.acceptScrollDimensions(this._state)}getFutureScrollPosition(){return this._smoothScrolling?this._smoothScrolling.to:this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(e){const t=this._state.withScrollPosition(e);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(t,!1)}setScrollPositionSmooth(e,t){if(0===this._smoothScrollDuration)return this.setScrollPositionNow(e);if(this._smoothScrolling){e={scrollLeft:void 0===e.scrollLeft?this._smoothScrolling.to.scrollLeft:e.scrollLeft,scrollTop:void 0===e.scrollTop?this._smoothScrolling.to.scrollTop:e.scrollTop};const i=this._state.withScrollPosition(e);if(this._smoothScrolling.to.scrollLeft===i.scrollLeft&&this._smoothScrolling.to.scrollTop===i.scrollTop)return;let n;n=t?new c(this._smoothScrolling.from,i,this._smoothScrolling.startTime,this._smoothScrolling.duration):this._smoothScrolling.combine(this._state,i,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=n}else{const t=this._state.withScrollPosition(e);this._smoothScrolling=c.start(this._state,t,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())}))}_performSmoothScrolling(){if(!this._smoothScrolling)return;const e=this._smoothScrolling.tick(),t=this._state.withScrollPosition(e);return this._setState(t,!0),this._smoothScrolling?e.isDone?(this._smoothScrolling.dispose(),void(this._smoothScrolling=null)):void(this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())}))):void 0}_setState(e,t){const i=this._state;i.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(i,t)))}}class a{constructor(e,t,i){this.scrollLeft=e,this.scrollTop=t,this.isDone=i}}function l(e,t){const i=t-e;return function(t){return e+i*(1-function(e){return Math.pow(e,3)}(1-t))}}class c{constructor(e,t,i,n){this.from=e,this.to=t,this.duration=n,this.startTime=i,this.animationFrameDisposable=null,this._initAnimations()}_initAnimations(){this.scrollLeft=this._initAnimation(this.from.scrollLeft,this.to.scrollLeft,this.to.width),this.scrollTop=this._initAnimation(this.from.scrollTop,this.to.scrollTop,this.to.height)}_initAnimation(e,t,i){if(Math.abs(e-t)>2.5*i){let r,a;return e<t?(r=e+.75*i,a=t-.75*i):(r=e-.75*i,a=t+.75*i),n=l(e,r),o=l(a,t),s=.33,function(e){return e<s?n(e/s):o((e-s)/(1-s))}}var n,o,s;return l(e,t)}dispose(){null!==this.animationFrameDisposable&&(this.animationFrameDisposable.dispose(),this.animationFrameDisposable=null)}acceptScrollDimensions(e){this.to=e.withScrollPosition(this.to),this._initAnimations()}tick(){return this._tick(Date.now())}_tick(e){const t=(e-this.startTime)/this.duration;if(t<1){const e=this.scrollLeft(t),i=this.scrollTop(t);return new a(e,i,!1)}return new a(this.to.scrollLeft,this.to.scrollTop,!0)}combine(e,t,i){return c.start(e,t,i)}static start(e,t,i){i+=10;const n=Date.now()-10;return new c(e,t,n,i)}}},14603:(e,t,i)=>{"use strict";i.d(t,{Z:()=>s});var n,o=i(97295);!function(e){e[e.Ignore=0]="Ignore",e[e.Info=1]="Info",e[e.Warning=2]="Warning",e[e.Error=3]="Error"}(n||(n={})),function(e){const t="error",i="warning",n="info";e.fromValue=function(s){return s?o.qq(t,s)?e.Error:o.qq(i,s)||o.qq("warn",s)?e.Warning:o.qq(n,s)?e.Info:e.Ignore:e.Ignore},e.toString=function(o){switch(o){case e.Error:return t;case e.Warning:return i;case e.Info:return n;default:return"ignore"}}}(n||(n={}));const s=n},84013:(e,t,i)=>{"use strict";i.d(t,{G:()=>s});var n=i(1432);const o=n.li.performance&&"function"==typeof n.li.performance.now;class s{constructor(e){this._highResolution=o&&e,this._startTime=this._now(),this._stopTime=-1}static create(e=!0){return new s(e)}stop(){this._stopTime=this._now()}elapsed(){return-1!==this._stopTime?this._stopTime-this._startTime:this._now()-this._startTime}_now(){return this._highResolution?n.li.performance.now():Date.now()}}},97295:(e,t,i)=>{"use strict";i.d(t,{$i:()=>$,B4:()=>se,C8:()=>Z,GF:()=>f,HO:()=>H,IO:()=>_,J_:()=>z,K7:()=>Q,Kw:()=>X,LC:()=>C,Mh:()=>M,P1:()=>A,PJ:()=>ee,Qe:()=>q,R1:()=>m,T5:()=>D,TT:()=>L,Ut:()=>U,V8:()=>w,W1:()=>V,WU:()=>l,YK:()=>O,YU:()=>c,ZG:()=>R,ZH:()=>F,ZK:()=>re,ab:()=>G,c1:()=>Y,df:()=>E,ec:()=>d,fy:()=>h,j3:()=>u,j_:()=>x,m5:()=>r,mK:()=>N,mr:()=>v,oH:()=>ne,oL:()=>g,ok:()=>T,ow:()=>y,qq:()=>I,qu:()=>S,rL:()=>P,uS:()=>J,un:()=>p,uq:()=>b,vH:()=>W,vU:()=>ae,zY:()=>k});var n,o=i(701),s=i(79579);function r(e){return!e||"string"!=typeof e||0===e.trim().length}const a=/{(\d+)}/g;function l(e,...t){return 0===t.length?e:e.replace(a,(function(e,i){const n=parseInt(i,10);return isNaN(n)||n<0||n>=t.length?e:t[n]}))}function c(e){return e.replace(/[<>&]/g,(function(e){switch(e){case"<":return"<";case">":return">";case"&":return"&";default:return e}}))}function d(e){return e.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function h(e,t=" "){return g(u(e,t),t)}function u(e,t){if(!e||!t)return e;const i=t.length;if(0===i||0===e.length)return e;let n=0;for(;e.indexOf(t,n)===n;)n+=i;return e.substring(n)}function g(e,t){if(!e||!t)return e;const i=t.length,n=e.length;if(0===i||0===n)return e;let o=n,s=-1;for(;s=e.lastIndexOf(t,o-1),-1!==s&&s+i===o;){if(0===s)return"";o=s}return e.substring(0,o)}function p(e){return e.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}function m(e){return e.replace(/\*/g,"")}function f(e,t,i={}){if(!e)throw new Error("Cannot create regex from empty string");t||(e=d(e)),i.wholeWord&&(/\B/.test(e.charAt(0))||(e="\\b"+e),/\B/.test(e.charAt(e.length-1))||(e+="\\b"));let n="";return i.global&&(n+="g"),i.matchCase||(n+="i"),i.multiline&&(n+="m"),i.unicode&&(n+="u"),new RegExp(e,n)}function _(e){if("^"===e.source||"^$"===e.source||"$"===e.source||"^\\s*$"===e.source)return!1;return!(!e.exec("")||0!==e.lastIndex)}function v(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")}function b(e){return e.split(/\r\n|\r|\n/)}function C(e){for(let t=0,i=e.length;t<i;t++){const i=e.charCodeAt(t);if(32!==i&&9!==i)return t}return-1}function w(e,t=0,i=e.length){for(let n=t;n<i;n++){const i=e.charCodeAt(n);if(32!==i&&9!==i)return e.substring(t,n)}return e.substring(t,i)}function y(e,t=e.length-1){for(let i=t;i>=0;i--){const t=e.charCodeAt(i);if(32!==t&&9!==t)return i}return-1}function S(e,t){return e<t?-1:e>t?1:0}function L(e,t,i=0,n=e.length,o=0,s=t.length){for(;i<n&&o<s;i++,o++){const n=e.charCodeAt(i),s=t.charCodeAt(o);if(n<s)return-1;if(n>s)return 1}const r=n-i,a=s-o;return r<a?-1:r>a?1:0}function k(e,t){return x(e,t,0,e.length,0,t.length)}function x(e,t,i=0,n=e.length,o=0,s=t.length){for(;i<n&&o<s;i++,o++){let r=e.charCodeAt(i),a=t.charCodeAt(o);if(r===a)continue;if(r>=128||a>=128)return L(e.toLowerCase(),t.toLowerCase(),i,n,o,s);N(r)&&(r-=32),N(a)&&(a-=32);const l=r-a;if(0!==l)return l}const r=n-i,a=s-o;return r<a?-1:r>a?1:0}function D(e){return e>=48&&e<=57}function N(e){return e>=97&&e<=122}function E(e){return e>=65&&e<=90}function I(e,t){return e.length===t.length&&0===x(e,t)}function T(e,t){const i=t.length;return!(t.length>e.length)&&0===x(e,t,0,i)}function M(e,t){const i=Math.min(e.length,t.length);let n;for(n=0;n<i;n++)if(e.charCodeAt(n)!==t.charCodeAt(n))return n;return i}function A(e,t){const i=Math.min(e.length,t.length);let n;const o=e.length-1,s=t.length-1;for(n=0;n<i;n++)if(e.charCodeAt(o-n)!==t.charCodeAt(s-n))return n;return i}function R(e){return 55296<=e&&e<=56319}function O(e){return 56320<=e&&e<=57343}function P(e,t){return t-56320+(e-55296<<10)+65536}function F(e,t,i){const n=e.charCodeAt(i);if(R(n)&&i+1<t){const t=e.charCodeAt(i+1);if(O(t))return P(n,t)}return n}class B{constructor(e,t=0){this._str=e,this._len=e.length,this._offset=t}get offset(){return this._offset}setOffset(e){this._offset=e}prevCodePoint(){const e=function(e,t){const i=e.charCodeAt(t-1);if(O(i)&&t>1){const n=e.charCodeAt(t-2);if(R(n))return P(n,i)}return i}(this._str,this._offset);return this._offset-=e>=65536?2:1,e}nextCodePoint(){const e=F(this._str,this._len,this._offset);return this._offset+=e>=65536?2:1,e}eol(){return this._offset>=this._len}}class V{constructor(e,t=0){this._iterator=new B(e,t)}get offset(){return this._iterator.offset}nextGraphemeLength(){const e=ie.getInstance(),t=this._iterator,i=t.offset;let n=e.getGraphemeBreakType(t.nextCodePoint());for(;!t.eol();){const i=t.offset,o=e.getGraphemeBreakType(t.nextCodePoint());if(te(n,o)){t.setOffset(i);break}n=o}return t.offset-i}prevGraphemeLength(){const e=ie.getInstance(),t=this._iterator,i=t.offset;let n=e.getGraphemeBreakType(t.prevCodePoint());for(;t.offset>0;){const i=t.offset,o=e.getGraphemeBreakType(t.prevCodePoint());if(te(o,n)){t.setOffset(i);break}n=o}return i-t.offset}eol(){return this._iterator.eol()}}function W(e,t){return new V(e,t).nextGraphemeLength()}function H(e,t){return new V(e,t).prevGraphemeLength()}function z(e,t){t>0&&O(e.charCodeAt(t))&&t--;const i=t+W(e,t);return[i-H(e,i),i]}const j=/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/;function U(e){return j.test(e)}const K=/^[\t\n\r\x20-\x7E]*$/;function $(e){return K.test(e)}const q=/[\u2028\u2029]/;function G(e){return q.test(e)}function Q(e){return e>=11904&&e<=55215||e>=63744&&e<=64255||e>=65281&&e<=65374}function Z(e){return e>=127462&&e<=127487||8986===e||8987===e||9200===e||9203===e||e>=9728&&e<=10175||11088===e||11093===e||e>=127744&&e<=128591||e>=128640&&e<=128764||e>=128992&&e<=129008||e>=129280&&e<=129535||e>=129648&&e<=129782}const Y=String.fromCharCode(65279);function J(e){return!!(e&&e.length>0&&65279===e.charCodeAt(0))}function X(e,t=!1){return!!e&&(t&&(e=e.replace(/\\./g,"")),e.toLowerCase()!==e)}function ee(e){return(e%=52)<26?String.fromCharCode(97+e):String.fromCharCode(65+e-26)}function te(e,t){return 0===e?5!==t&&7!==t:(2!==e||3!==t)&&(4===e||2===e||3===e||(4===t||2===t||3===t||(8!==e||8!==t&&9!==t&&11!==t&&12!==t)&&((11!==e&&9!==e||9!==t&&10!==t)&&((12!==e&&10!==e||10!==t)&&(5!==t&&13!==t&&(7!==t&&(1!==e&&((13!==e||14!==t)&&(6!==e||6!==t)))))))))}class ie{constructor(){this._data=JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}static getInstance(){return ie._INSTANCE||(ie._INSTANCE=new ie),ie._INSTANCE}getGraphemeBreakType(e){if(e<32)return 10===e?3:13===e?2:4;if(e<127)return 0;const t=this._data,i=t.length/3;let n=1;for(;n<=i;)if(e<t[3*n])n*=2;else{if(!(e>t[3*n+1]))return t[3*n+2];n=2*n+1}return 0}}function ne(e,t){if(0===e)return 0;const i=function(e,t){const i=new B(t,e);let n=i.prevCodePoint();for(;oe(n)||65039===n||8419===n;){if(0===i.offset)return;n=i.prevCodePoint()}if(!Z(n))return;let o=i.offset;if(o>0){8205===i.prevCodePoint()&&(o=i.offset)}return o}(e,t);if(void 0!==i)return i;const n=new B(t,e);return n.prevCodePoint(),n.offset}function oe(e){return 127995<=e&&e<=127999}ie._INSTANCE=null;const se="\xa0";class re{constructor(e){this.confusableDictionary=e}static getInstance(e){return re.cache.get(Array.from(e))}static getLocales(){return re._locales.getValue()}isAmbiguous(e){return this.confusableDictionary.has(e)}getPrimaryConfusable(e){return this.confusableDictionary.get(e)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}}n=re,re.ambiguousCharacterData=new s.o((()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}'))),re.cache=new o.t((e=>{function t(e){const t=new Map;for(let i=0;i<e.length;i+=2)t.set(e[i],e[i+1]);return t}function i(e,t){if(!e)return t;const i=new Map;for(const[n,o]of e)t.has(n)&&i.set(n,o);return i}const o=n.ambiguousCharacterData.getValue();let s,r=e.filter((e=>!e.startsWith("_")&&e in o));0===r.length&&(r=["_default"]);for(const n of r){s=i(s,t(o[n]))}const a=function(e,t){const i=new Map(e);for(const[n,o]of t)i.set(n,o);return i}(t(o._common),s);return new re(a)})),re._locales=new s.o((()=>Object.keys(re.ambiguousCharacterData.getValue()).filter((e=>!e.startsWith("_")))));class ae{static getRawData(){return JSON.parse("[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]")}static getData(){return this._data||(this._data=new Set(ae.getRawData())),this._data}static isInvisibleCharacter(e){return ae.getData().has(e)}static get codePoints(){return ae.getData()}}ae._data=void 0},98401:(e,t,i)=>{"use strict";function n(e){return Array.isArray(e)}function o(e){return"string"==typeof e}function s(e){return!("object"!=typeof e||null===e||Array.isArray(e)||e instanceof RegExp||e instanceof Date)}function r(e){const t=Object.getPrototypeOf(Uint8Array);return"object"==typeof e&&e instanceof t}function a(e){return"number"==typeof e&&!isNaN(e)}function l(e){return!!e&&"function"==typeof e[Symbol.iterator]}function c(e){return!0===e||!1===e}function d(e){return void 0===e}function h(e){return!u(e)}function u(e){return d(e)||null===e}function g(e,t){if(!e)throw new Error(t?`Unexpected type, expected '${t}'`:"Unexpected type")}function p(e){if(u(e))throw new Error("Assertion Failed: argument is undefined or null");return e}function m(e){return"function"==typeof e}function f(e,t){const i=Math.min(e.length,t.length);for(let n=0;n<i;n++)_(e[n],t[n])}function _(e,t){if(o(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(m(t)){try{if(e instanceof t)return}catch(i){}if(!u(e)&&e.constructor===t)return;if(1===t.length&&!0===t.call(void 0,e))return;throw new Error("argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}function v(e){const t=[];for(const i of function(e){let t=[],i=Object.getPrototypeOf(e);for(;Object.prototype!==i;)t=t.concat(Object.getOwnPropertyNames(i)),i=Object.getPrototypeOf(i);return t}(e))"function"==typeof e[i]&&t.push(i);return t}function b(e,t){const i=e=>function(){const i=Array.prototype.slice.call(arguments,0);return t(e,i)},n={};for(const o of e)n[o]=i(o);return n}function C(e){return null===e?void 0:e}function w(e,t="Unreachable"){throw new Error(t)}i.d(t,{$E:()=>v,$K:()=>h,D8:()=>f,HD:()=>o,IU:()=>b,Jp:()=>u,Kn:()=>s,TW:()=>l,cW:()=>p,f6:()=>C,fU:()=>r,hj:()=>a,jn:()=>c,kJ:()=>n,mf:()=>m,o8:()=>d,p_:()=>g,vE:()=>w})},85427:(e,t,i)=>{"use strict";function n(e){return e<0?0:e>255?255:0|e}function o(e){return e<0?0:e>4294967295?4294967295:0|e}i.d(t,{A:()=>o,K:()=>n})},70666:(e,t,i)=>{"use strict";i.d(t,{o:()=>u,q:()=>v});var n=i(55336),o=i(1432);const s=/^\w[\w\d+.-]*$/,r=/^\//,a=/^\/\//;function l(e,t){if(!e.scheme&&t)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!s.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path)if(e.authority){if(!r.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(a.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}const c="",d="/",h=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class u{constructor(e,t,i,n,o,s=!1){"object"==typeof e?(this.scheme=e.scheme||c,this.authority=e.authority||c,this.path=e.path||c,this.query=e.query||c,this.fragment=e.fragment||c):(this.scheme=function(e,t){return e||t?e:"file"}(e,s),this.authority=t||c,this.path=function(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==d&&(t=d+t):t=d}return t}(this.scheme,i||c),this.query=n||c,this.fragment=o||c,l(this,s))}static isUri(e){return e instanceof u||!!e&&("string"==typeof e.authority&&"string"==typeof e.fragment&&"string"==typeof e.path&&"string"==typeof e.query&&"string"==typeof e.scheme&&"string"==typeof e.fsPath&&"function"==typeof e.with&&"function"==typeof e.toString)}get fsPath(){return v(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:i,path:n,query:o,fragment:s}=e;return void 0===t?t=this.scheme:null===t&&(t=c),void 0===i?i=this.authority:null===i&&(i=c),void 0===n?n=this.path:null===n&&(n=c),void 0===o?o=this.query:null===o&&(o=c),void 0===s?s=this.fragment:null===s&&(s=c),t===this.scheme&&i===this.authority&&n===this.path&&o===this.query&&s===this.fragment?this:new p(t,i,n,o,s)}static parse(e,t=!1){const i=h.exec(e);return i?new p(i[2]||c,y(i[4]||c),y(i[5]||c),y(i[7]||c),y(i[9]||c),t):new p(c,c,c,c,c)}static file(e){let t=c;if(o.ED&&(e=e.replace(/\\/g,d)),e[0]===d&&e[1]===d){const i=e.indexOf(d,2);-1===i?(t=e.substring(2),e=d):(t=e.substring(2,i),e=e.substring(i)||d)}return new p("file",t,e,c,c)}static from(e){const t=new p(e.scheme,e.authority,e.path,e.query,e.fragment);return l(t,!0),t}static joinPath(e,...t){if(!e.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let i;return i=o.ED&&"file"===e.scheme?u.file(n.Ku.join(v(e,!0),...t)).path:n.KR.join(e.path,...t),e.with({path:i})}toString(e=!1){return b(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof u)return e;{const t=new p(e);return t._formatted=e.external,t._fsPath=e._sep===g?e.fsPath:null,t}}return e}}const g=o.ED?1:void 0;class p extends u{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=v(this,!1)),this._fsPath}toString(e=!1){return e?b(this,!0):(this._formatted||(this._formatted=b(this,!1)),this._formatted)}toJSON(){const e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=g),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}const m={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function f(e,t){let i,n=-1;for(let o=0;o<e.length;o++){const s=e.charCodeAt(o);if(s>=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||45===s||46===s||95===s||126===s||t&&47===s)-1!==n&&(i+=encodeURIComponent(e.substring(n,o)),n=-1),void 0!==i&&(i+=e.charAt(o));else{void 0===i&&(i=e.substr(0,o));const t=m[s];void 0!==t?(-1!==n&&(i+=encodeURIComponent(e.substring(n,o)),n=-1),i+=t):-1===n&&(n=o)}}return-1!==n&&(i+=encodeURIComponent(e.substring(n))),void 0!==i?i:e}function _(e){let t;for(let i=0;i<e.length;i++){const n=e.charCodeAt(i);35===n||63===n?(void 0===t&&(t=e.substr(0,i)),t+=m[n]):void 0!==t&&(t+=e[i])}return void 0!==t?t:e}function v(e,t){let i;return i=e.authority&&e.path.length>1&&"file"===e.scheme?`//${e.authority}${e.path}`:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?t?e.path.substr(1):e.path[1].toLowerCase()+e.path.substr(2):e.path,o.ED&&(i=i.replace(/\//g,"\\")),i}function b(e,t){const i=t?_:f;let n="",{scheme:o,authority:s,path:r,query:a,fragment:l}=e;if(o&&(n+=o,n+=":"),(s||"file"===o)&&(n+=d,n+=d),s){let e=s.indexOf("@");if(-1!==e){const t=s.substr(0,e);s=s.substr(e+1),e=t.indexOf(":"),-1===e?n+=i(t,!1):(n+=i(t.substr(0,e),!1),n+=":",n+=i(t.substr(e+1),!1)),n+="@"}s=s.toLowerCase(),e=s.indexOf(":"),-1===e?n+=i(s,!1):(n+=i(s.substr(0,e),!1),n+=s.substr(e))}if(r){if(r.length>=3&&47===r.charCodeAt(0)&&58===r.charCodeAt(2)){const e=r.charCodeAt(1);e>=65&&e<=90&&(r=`/${String.fromCharCode(e+32)}:${r.substr(3)}`)}else if(r.length>=2&&58===r.charCodeAt(1)){const e=r.charCodeAt(0);e>=65&&e<=90&&(r=`${String.fromCharCode(e+32)}:${r.substr(2)}`)}n+=i(r,!0)}return a&&(n+="?",n+=i(a,!1)),l&&(n+="#",n+=t?l:f(l,!1)),n}function C(e){try{return decodeURIComponent(e)}catch(t){return e.length>3?e.substr(0,3)+C(e.substr(3)):e}}const w=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function y(e){return e.match(w)?e.replace(w,(e=>C(e))):e}},98e3:(e,t,i)=>{"use strict";i.d(t,{R:()=>n});const n=function(){if("object"==typeof crypto&&"function"==typeof crypto.randomUUID)return crypto.randomUUID.bind(crypto);let e;e="object"==typeof crypto&&"function"==typeof crypto.getRandomValues?crypto.getRandomValues.bind(crypto):function(e){for(let t=0;t<e.length;t++)e[t]=Math.floor(256*Math.random());return e};const t=new Uint8Array(16),i=[];for(let n=0;n<256;n++)i.push(n.toString(16).padStart(2,"0"));return function(){e(t),t[6]=15&t[6]|64,t[8]=63&t[8]|128;let n=0,o="";return o+=i[t[n++]],o+=i[t[n++]],o+=i[t[n++]],o+=i[t[n++]],o+="-",o+=i[t[n++]],o+=i[t[n++]],o+="-",o+=i[t[n++]],o+=i[t[n++]],o+="-",o+=i[t[n++]],o+=i[t[n++]],o+="-",o+=i[t[n++]],o+=i[t[n++]],o+=i[t[n++]],o+=i[t[n++]],o+=i[t[n++]],o+=i[t[n++]],o}}()},67746:(e,t,i)=>{"use strict";i.d(t,{Jq:()=>o,X5:()=>n,jG:()=>s});const n={ctrlCmd:!1,alt:!1};var o,s;!function(e){e[e.Blur=1]="Blur",e[e.Gesture=2]="Gesture",e[e.Other=3]="Other"}(o||(o={})),function(e){e[e.NONE=0]="NONE",e[e.FIRST=1]="FIRST",e[e.SECOND=2]="SECOND",e[e.LAST=3]="LAST"}(s||(s={}));new class{constructor(e){this.options=e}}},25552:(e,t,i)=>{"use strict";i.d(t,{H:()=>m});var n,o,s=i(38139),r=Object.defineProperty,a=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,d=(e,t,i,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of l(t))c.call(e,o)||o===i||r(e,o,{get:()=>t[o],enumerable:!(n=a(t,o))||n.enumerable});return e},h={};d(h,n=s,"default"),o&&d(o,n,"default");var u={},g={},p=class{static getOrCreate(e){return g[e]||(g[e]=new p(e)),g[e]}_languageId;_loadingTriggered;_lazyLoadPromise;_lazyLoadPromiseResolve;_lazyLoadPromiseReject;constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise(((e,t)=>{this._lazyLoadPromiseResolve=e,this._lazyLoadPromiseReject=t}))}load(){return this._loadingTriggered||(this._loadingTriggered=!0,u[this._languageId].loader().then((e=>this._lazyLoadPromiseResolve(e)),(e=>this._lazyLoadPromiseReject(e)))),this._lazyLoadPromise}};function m(e){const t=e.id;u[t]=e,h.languages.register(e);const i=p.getOrCreate(t);h.languages.registerTokensProviderFactory(t,{create:async()=>(await i.load()).language}),h.languages.onLanguage(t,(async()=>{const e=await i.load();h.languages.setLanguageConfiguration(t,e.conf)}))}},29126:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>i.e(848).then(i.bind(i,40848))})},89808:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>i.e(4386).then(i.bind(i,54386))})},13598:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>i.e(1471).then(i.bind(i,31471))})},52042:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>i.e(4129).then(i.bind(i,84129))})},50497:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>i.e(7131).then(i.bind(i,47131))})},11336:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>i.e(1448).then(i.bind(i,11448))})},76334:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>i.e(3036).then(i.bind(i,33036))})},30253:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>i.e(1147).then(i.bind(i,21147))})},47940:(e,t,i)=>{"use strict";var n=i(25552);(0,n.H)({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>i.e(1960).then(i.bind(i,71960))}),(0,n.H)({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>i.e(1960).then(i.bind(i,71960))})},18162:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>i.e(8719).then(i.bind(i,18719))})},79556:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"csp",extensions:[],aliases:["CSP","csp"],loader:()=>i.e(8946).then(i.bind(i,68946))})},56292:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>i.e(2075).then(i.bind(i,62075))})},30282:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>i.e(6423).then(i.bind(i,56423))})},42429:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>i.e(9343).then(i.bind(i,39343))})},24129:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>i.e(5849).then(i.bind(i,25849))})},88765:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>i.e(2814).then(i.bind(i,12814))})},43814:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>i.e(2240).then(i.bind(i,92240))})},45067:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>i.e(4188).then(i.bind(i,14188))})},21589:(e,t,i)=>{"use strict";var n=i(25552);(0,n.H)({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>i.e(5880).then(i.bind(i,5880)).then((e=>e.TagAutoInterpolationDollar))}),(0,n.H)({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>i.e(5880).then(i.bind(i,5880)).then((e=>e.TagAngleInterpolationDollar))}),(0,n.H)({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>i.e(5880).then(i.bind(i,5880)).then((e=>e.TagBracketInterpolationDollar))}),(0,n.H)({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>i.e(5880).then(i.bind(i,5880)).then((e=>e.TagAngleInterpolationBracket))}),(0,n.H)({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>i.e(5880).then(i.bind(i,5880)).then((e=>e.TagBracketInterpolationBracket))}),(0,n.H)({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>i.e(5880).then(i.bind(i,5880)).then((e=>e.TagAutoInterpolationDollar))}),(0,n.H)({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>i.e(5880).then(i.bind(i,5880)).then((e=>e.TagAutoInterpolationBracket))})},97820:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>i.e(6241).then(i.bind(i,96241))})},40927:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>i.e(249).then(i.bind(i,80249))})},26220:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>i.e(6489).then(i.bind(i,66489))})},1526:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>i.e(5703).then(i.bind(i,15703))})},64091:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>i.e(3632).then(i.bind(i,53632))})},40902:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>i.e(2571).then(i.bind(i,2571))})},17476:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>i.e(9607).then(i.bind(i,52798))})},16745:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>i.e(7043).then(i.bind(i,17043))})},43763:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>i.e(1134).then(i.bind(i,41134))})},46595:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>i.e(4946).then(i.bind(i,34946))})},36831:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"kotlin",extensions:[".kt"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>i.e(4368).then(i.bind(i,84368))})},66079:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>i.e(5593).then(i.bind(i,35593))})},90158:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>i.e(4912).then(i.bind(i,64912))})},38698:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>i.e(4028).then(i.bind(i,94028))})},82665:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>i.e(911).then(i.bind(i,20911))})},51944:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>i.e(8906).then(i.bind(i,38906))})},77365:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>i.e(2954).then(i.bind(i,42954))})},6595:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>i.e(854).then(i.bind(i,60854))})},75769:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>i.e(9398).then(i.bind(i,79398))})},51714:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>i.e(1961).then(i.bind(i,31961))})},86935:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>i.e(9537).then(i.bind(i,79537))})},62893:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>i.e(6082).then(i.bind(i,86082))})},27616:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>i.e(8084).then(i.bind(i,98084))})},83335:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"perl",extensions:[".pl"],aliases:["Perl","pl"],loader:()=>i.e(8070).then(i.bind(i,8070))})},46266:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>i.e(996).then(i.bind(i,20996))})},89723:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>i.e(7835).then(i.bind(i,47835))})},55788:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"pla",extensions:[".pla"],loader:()=>i.e(3682).then(i.bind(i,23682))})},48746:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>i.e(8180).then(i.bind(i,48180))})},94992:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>i.e(4407).then(i.bind(i,94407))})},16563:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>i.e(7562).then(i.bind(i,37562))})},57296:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>i.e(3760).then(i.bind(i,63760))})},85098:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>i.e(2892).then(i.bind(i,22892))})},83187:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>i.e(7287).then(i.bind(i,37287))})},12026:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>i.e(9400).then(i.bind(i,69400))})},76194:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>i.e(2140).then(i.bind(i,22140))})},5566:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>i.e(6424).then(i.bind(i,76424))})},26254:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>i.e(1259).then(i.bind(i,91259))})},5734:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>i.e(6449).then(i.bind(i,56449))})},40191:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>i.e(1065).then(i.bind(i,71065))})},93127:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>i.e(9684).then(i.bind(i,69684))})},34483:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>i.e(8715).then(i.bind(i,8715))})},40840:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>i.e(5062).then(i.bind(i,95062))})},37266:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:()=>i.e(180).then(i.bind(i,90180))})},2375:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>i.e(2060).then(i.bind(i,32060))})},96461:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>i.e(525).then(i.bind(i,90525))})},76628:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>i.e(8670).then(i.bind(i,88670))})},40185:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>i.e(1156).then(i.bind(i,1156))})},27776:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>i.e(3919).then(i.bind(i,63919))})},28118:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>i.e(5962).then(i.bind(i,85962))})},96337:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>i.e(7778).then(i.bind(i,27778))})},87530:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib"],aliases:["StructuredText","scl","stl"],loader:()=>i.e(6587).then(i.bind(i,86587))})},25929:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>i.e(2911).then(i.bind(i,42911))})},17918:(e,t,i)=>{"use strict";var n=i(25552);(0,n.H)({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>i.e(1886).then(i.bind(i,81886))}),(0,n.H)({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>i.e(1886).then(i.bind(i,81886))})},6205:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>i.e(7637).then(i.bind(i,57637))})},46837:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>i.e(8424).then(i.bind(i,98424))})},88307:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"typescript",extensions:[".ts",".tsx"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>i.e(6717).then(i.bind(i,96717))})},58203:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>i.e(9907).then(i.bind(i,39907))})},81905:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"xml",extensions:[".xml",".dtd",".ascx",".csproj",".config",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xsl"],firstLine:"(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",aliases:["XML","xml"],mimetypes:["text/xml","application/xml","application/xaml+xml","application/xml-dtd"],loader:()=>i.e(4902).then(i.bind(i,4902))})},94199:(e,t,i)=>{"use strict";(0,i(25552).H)({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>i.e(3585).then(i.bind(i,23585))})},52136:(e,t,i)=>{"use strict";i.d(t,{N:()=>o});var n=i(38626);function o(e,t){e instanceof n.Z?(e.setFontFamily(t.getMassagedFontFamily()),e.setFontWeight(t.fontWeight),e.setFontSize(t.fontSize),e.setFontFeatureSettings(t.fontFeatureSettings),e.setLineHeight(t.lineHeight),e.setLetterSpacing(t.letterSpacing)):(e.style.fontFamily=t.getMassagedFontFamily(),e.style.fontWeight=t.fontWeight,e.style.fontSize=t.fontSize+"px",e.style.fontFeatureSettings=t.fontFeatureSettings,e.style.lineHeight=t.lineHeight+"px",e.style.letterSpacing=t.letterSpacing+"px")}},54534:(e,t,i)=>{"use strict";i.d(t,{I:()=>s});var n=i(5976),o=i(4669);class s extends n.JT{constructor(e,t){super(),this._onDidChange=this._register(new o.Q5),this.onDidChange=this._onDidChange.event,this._referenceDomElement=e,this._width=-1,this._height=-1,this._resizeObserver=null,this.measureReferenceDomElement(!1,t)}dispose(){this.stopObserving(),super.dispose()}getWidth(){return this._width}getHeight(){return this._height}startObserving(){!this._resizeObserver&&this._referenceDomElement&&(this._resizeObserver=new ResizeObserver((e=>{e&&e[0]&&e[0].contentRect?this.observe({width:e[0].contentRect.width,height:e[0].contentRect.height}):this.observe()})),this._resizeObserver.observe(this._referenceDomElement))}stopObserving(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null)}observe(e){this.measureReferenceDomElement(!0,e)}measureReferenceDomElement(e,t){let i=0,n=0;t?(i=t.width,n=t.height):this._referenceDomElement&&(i=this._referenceDomElement.clientWidth,n=this._referenceDomElement.clientHeight),i=Math.max(5,i),n=Math.max(5,n),this._width===i&&this._height===n||(this._width=i,this._height=n,e&&this._onDidChange.fire())}}},66059:(e,t,i)=>{"use strict";i.d(t,{g:()=>g});var n=i(16268),o=i(4669),s=i(5976),r=i(52136);class a{constructor(e,t){this.chr=e,this.type=t,this.width=0}fulfill(e){this.width=e}}class l{constructor(e,t){this._bareFontInfo=e,this._requests=t,this._container=null,this._testElements=null}read(){this._createDomElements(),document.body.appendChild(this._container),this._readFromDomElements(),document.body.removeChild(this._container),this._container=null,this._testElements=null}_createDomElements(){const e=document.createElement("div");e.style.position="absolute",e.style.top="-50000px",e.style.width="50000px";const t=document.createElement("div");(0,r.N)(t,this._bareFontInfo),e.appendChild(t);const i=document.createElement("div");(0,r.N)(i,this._bareFontInfo),i.style.fontWeight="bold",e.appendChild(i);const n=document.createElement("div");(0,r.N)(n,this._bareFontInfo),n.style.fontStyle="italic",e.appendChild(n);const o=[];for(const s of this._requests){let e;0===s.type&&(e=t),2===s.type&&(e=i),1===s.type&&(e=n),e.appendChild(document.createElement("br"));const r=document.createElement("span");l._render(r,s),e.appendChild(r),o.push(r)}this._container=e,this._testElements=o}static _render(e,t){if(" "===t.chr){let t="\xa0";for(let e=0;e<8;e++)t+=t;e.innerText=t}else{let i=t.chr;for(let e=0;e<8;e++)i+=i;e.textContent=i}}_readFromDomElements(){for(let e=0,t=this._requests.length;e<t;e++){const t=this._requests[e],i=this._testElements[e];t.fulfill(i.offsetWidth/256)}}}var c=i(64141),d=i(27374);class h extends s.JT{constructor(){super(),this._onDidChange=this._register(new o.Q5),this.onDidChange=this._onDidChange.event,this._cache=new u,this._evictUntrustedReadingsTimeout=-1}dispose(){-1!==this._evictUntrustedReadingsTimeout&&(window.clearTimeout(this._evictUntrustedReadingsTimeout),this._evictUntrustedReadingsTimeout=-1),super.dispose()}clearAllFontInfos(){this._cache=new u,this._onDidChange.fire()}_writeToCache(e,t){this._cache.put(e,t),t.isTrusted||-1!==this._evictUntrustedReadingsTimeout||(this._evictUntrustedReadingsTimeout=window.setTimeout((()=>{this._evictUntrustedReadingsTimeout=-1,this._evictUntrustedReadings()}),5e3))}_evictUntrustedReadings(){const e=this._cache.getValues();let t=!1;for(const i of e)i.isTrusted||(t=!0,this._cache.remove(i));t&&this._onDidChange.fire()}readFontInfo(e){if(!this._cache.has(e)){let t=this._actualReadFontInfo(e);(t.typicalHalfwidthCharacterWidth<=2||t.typicalFullwidthCharacterWidth<=2||t.spaceWidth<=2||t.maxDigitWidth<=2)&&(t=new d.pR({pixelRatio:n.PixelRatio.value,fontFamily:t.fontFamily,fontWeight:t.fontWeight,fontSize:t.fontSize,fontFeatureSettings:t.fontFeatureSettings,lineHeight:t.lineHeight,letterSpacing:t.letterSpacing,isMonospace:t.isMonospace,typicalHalfwidthCharacterWidth:Math.max(t.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(t.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:t.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(t.spaceWidth,5),middotWidth:Math.max(t.middotWidth,5),wsmiddotWidth:Math.max(t.wsmiddotWidth,5),maxDigitWidth:Math.max(t.maxDigitWidth,5)},!1)),this._writeToCache(e,t)}return this._cache.get(e)}_createRequest(e,t,i,n){const o=new a(e,t);return i.push(o),null==n||n.push(o),o}_actualReadFontInfo(e){const t=[],i=[],o=this._createRequest("n",0,t,i),s=this._createRequest("\uff4d",0,t,null),r=this._createRequest(" ",0,t,i),a=this._createRequest("0",0,t,i),h=this._createRequest("1",0,t,i),u=this._createRequest("2",0,t,i),g=this._createRequest("3",0,t,i),p=this._createRequest("4",0,t,i),m=this._createRequest("5",0,t,i),f=this._createRequest("6",0,t,i),_=this._createRequest("7",0,t,i),v=this._createRequest("8",0,t,i),b=this._createRequest("9",0,t,i),C=this._createRequest("\u2192",0,t,i),w=this._createRequest("\uffeb",0,t,null),y=this._createRequest("\xb7",0,t,i),S=this._createRequest(String.fromCharCode(11825),0,t,null),L="|/-_ilm%";for(let n=0,l=L.length;n<l;n++)this._createRequest(L.charAt(n),0,t,i),this._createRequest(L.charAt(n),1,t,i),this._createRequest(L.charAt(n),2,t,i);!function(e,t){new l(e,t).read()}(e,t);const k=Math.max(a.width,h.width,u.width,g.width,p.width,m.width,f.width,_.width,v.width,b.width);let x=e.fontFeatureSettings===c.n0.OFF;const D=i[0].width;for(let n=1,l=i.length;x&&n<l;n++){const e=D-i[n].width;if(e<-.001||e>.001){x=!1;break}}let N=!0;return x&&w.width!==D&&(N=!1),w.width>C.width&&(N=!1),new d.pR({pixelRatio:n.PixelRatio.value,fontFamily:e.fontFamily,fontWeight:e.fontWeight,fontSize:e.fontSize,fontFeatureSettings:e.fontFeatureSettings,lineHeight:e.lineHeight,letterSpacing:e.letterSpacing,isMonospace:x,typicalHalfwidthCharacterWidth:o.width,typicalFullwidthCharacterWidth:s.width,canUseHalfwidthRightwardsArrow:N,spaceWidth:r.width,middotWidth:y.width,wsmiddotWidth:S.width,maxDigitWidth:k},!0)}}class u{constructor(){this._keys=Object.create(null),this._values=Object.create(null)}has(e){const t=e.getId();return!!this._values[t]}get(e){const t=e.getId();return this._values[t]}put(e,t){const i=e.getId();this._keys[i]=e,this._values[i]=t}remove(e){const t=e.getId();delete this._keys[t],delete this._values[t]}getValues(){return Object.keys(this._keys).map((e=>this._values[e]))}}const g=new h},37940:(e,t,i)=>{"use strict";i.d(t,{n:()=>o});var n=i(4669);const o=new class{constructor(){this._tabFocus=!1,this._onDidChangeTabFocus=new n.Q5,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}getTabFocusMode(){return this._tabFocus}setTabFocusMode(e){this._tabFocus!==e&&(this._tabFocus=e,this._onDidChangeTabFocus.fire(this._tabFocus))}}},35715:(e,t,i)=>{"use strict";i.d(t,{Fz:()=>_,Nl:()=>m,RA:()=>p,Tj:()=>b,pd:()=>n});var n,o=i(16268),s=i(65321),r=i(59069),a=i(15393),l=i(4669),c=i(5976),d=i(81170),h=i(97295),u=i(15887),g=i(3860);!function(e){e.Tap="-monaco-textarea-synthetic-tap"}(n||(n={}));const p={forceCopyWithSyntaxHighlighting:!1};class m{constructor(){this._lastState=null}set(e,t){this._lastState={lastCopiedValue:e,data:t}}get(e){return this._lastState&&this._lastState.lastCopiedValue===e?this._lastState.data:(this._lastState=null,null)}}m.INSTANCE=new m;class f{constructor(){this._lastTypeTextLength=0}handleCompositionUpdate(e){const t={text:e=e||"",replacePrevCharCnt:this._lastTypeTextLength,replaceNextCharCnt:0,positionDelta:0};return this._lastTypeTextLength=e.length,t}}class _ extends c.JT{constructor(e,t,i,n){super(),this._host=e,this._textArea=t,this._OS=i,this._browser=n,this._onFocus=this._register(new l.Q5),this.onFocus=this._onFocus.event,this._onBlur=this._register(new l.Q5),this.onBlur=this._onBlur.event,this._onKeyDown=this._register(new l.Q5),this.onKeyDown=this._onKeyDown.event,this._onKeyUp=this._register(new l.Q5),this.onKeyUp=this._onKeyUp.event,this._onCut=this._register(new l.Q5),this.onCut=this._onCut.event,this._onPaste=this._register(new l.Q5),this.onPaste=this._onPaste.event,this._onType=this._register(new l.Q5),this.onType=this._onType.event,this._onCompositionStart=this._register(new l.Q5),this.onCompositionStart=this._onCompositionStart.event,this._onCompositionUpdate=this._register(new l.Q5),this.onCompositionUpdate=this._onCompositionUpdate.event,this._onCompositionEnd=this._register(new l.Q5),this.onCompositionEnd=this._onCompositionEnd.event,this._onSelectionChangeRequest=this._register(new l.Q5),this.onSelectionChangeRequest=this._onSelectionChangeRequest.event,this._asyncTriggerCut=this._register(new a.pY((()=>this._onCut.fire()),0)),this._asyncFocusGainWriteScreenReaderContent=this._register(new a.pY((()=>this.writeScreenReaderContent("asyncFocusGain")),0)),this._textAreaState=u.un.EMPTY,this._selectionChangeListener=null,this.writeScreenReaderContent("ctor"),this._hasFocus=!1,this._currentComposition=null;let o=null;this._register(this._textArea.onKeyDown((e=>{const t=new r.y(e);(109===t.keyCode||this._currentComposition&&1===t.keyCode)&&t.stopPropagation(),t.equals(9)&&t.preventDefault(),o=t,this._onKeyDown.fire(t)}))),this._register(this._textArea.onKeyUp((e=>{const t=new r.y(e);this._onKeyUp.fire(t)}))),this._register(this._textArea.onCompositionStart((e=>{u.al&&console.log("[compositionstart]",e);const t=new f;if(this._currentComposition)this._currentComposition=t;else{if(this._currentComposition=t,2===this._OS&&o&&o.equals(109)&&this._textAreaState.selectionStart===this._textAreaState.selectionEnd&&this._textAreaState.selectionStart>0&&this._textAreaState.value.substr(this._textAreaState.selectionStart-1,1)===e.data&&("ArrowRight"===o.code||"ArrowLeft"===o.code))return u.al&&console.log("[compositionstart] Handling long press case on macOS + arrow key",e),t.handleCompositionUpdate("x"),void this._onCompositionStart.fire({data:e.data});this._browser.isAndroid,this._onCompositionStart.fire({data:e.data})}}))),this._register(this._textArea.onCompositionUpdate((e=>{u.al&&console.log("[compositionupdate]",e);const t=this._currentComposition;if(!t)return;if(this._browser.isAndroid){const t=u.un.readFromTextArea(this._textArea),i=u.un.deduceAndroidCompositionInput(this._textAreaState,t);return this._textAreaState=t,this._onType.fire(i),void this._onCompositionUpdate.fire(e)}const i=t.handleCompositionUpdate(e.data);this._textAreaState=u.un.readFromTextArea(this._textArea),this._onType.fire(i),this._onCompositionUpdate.fire(e)}))),this._register(this._textArea.onCompositionEnd((e=>{u.al&&console.log("[compositionend]",e);const t=this._currentComposition;if(!t)return;if(this._currentComposition=null,this._browser.isAndroid){const e=u.un.readFromTextArea(this._textArea),t=u.un.deduceAndroidCompositionInput(this._textAreaState,e);return this._textAreaState=e,this._onType.fire(t),void this._onCompositionEnd.fire()}const i=t.handleCompositionUpdate(e.data);this._textAreaState=u.un.readFromTextArea(this._textArea),this._onType.fire(i),this._onCompositionEnd.fire()}))),this._register(this._textArea.onInput((e=>{if(u.al&&console.log("[input]",e),this._textArea.setIgnoreSelectionChangeTime("received input event"),this._currentComposition)return;const t=u.un.readFromTextArea(this._textArea),i=u.un.deduceInput(this._textAreaState,t,2===this._OS);0===i.replacePrevCharCnt&&1===i.text.length&&h.ZG(i.text.charCodeAt(0))||(this._textAreaState=t,""===i.text&&0===i.replacePrevCharCnt&&0===i.replaceNextCharCnt&&0===i.positionDelta||this._onType.fire(i))}))),this._register(this._textArea.onCut((e=>{this._textArea.setIgnoreSelectionChangeTime("received cut event"),this._ensureClipboardGetsEditorSelection(e),this._asyncTriggerCut.schedule()}))),this._register(this._textArea.onCopy((e=>{this._ensureClipboardGetsEditorSelection(e)}))),this._register(this._textArea.onPaste((e=>{if(this._textArea.setIgnoreSelectionChangeTime("received paste event"),e.preventDefault(),!e.clipboardData)return;let[t,i]=v.getTextData(e.clipboardData);t&&(i=i||m.INSTANCE.get(t),this._onPaste.fire({text:t,metadata:i}))}))),this._register(this._textArea.onFocus((()=>{const e=this._hasFocus;this._setHasFocus(!0),this._browser.isSafari&&!e&&this._hasFocus&&this._asyncFocusGainWriteScreenReaderContent.schedule()}))),this._register(this._textArea.onBlur((()=>{this._currentComposition&&(this._currentComposition=null,this.writeScreenReaderContent("blurWithoutCompositionEnd"),this._onCompositionEnd.fire()),this._setHasFocus(!1)}))),this._register(this._textArea.onSyntheticTap((()=>{this._browser.isAndroid&&this._currentComposition&&(this._currentComposition=null,this.writeScreenReaderContent("tapWithoutCompositionEnd"),this._onCompositionEnd.fire())})))}_installSelectionChangeListener(){let e=0;return s.nm(document,"selectionchange",(t=>{if(!this._hasFocus)return;if(this._currentComposition)return;if(!this._browser.isChrome)return;const i=Date.now(),n=i-e;if(e=i,n<5)return;const o=i-this._textArea.getIgnoreSelectionChangeTime();if(this._textArea.resetSelectionChangeTime(),o<100)return;if(!this._textAreaState.selectionStartPosition||!this._textAreaState.selectionEndPosition)return;const s=this._textArea.getValue();if(this._textAreaState.value!==s)return;const r=this._textArea.getSelectionStart(),a=this._textArea.getSelectionEnd();if(this._textAreaState.selectionStart===r&&this._textAreaState.selectionEnd===a)return;const l=this._textAreaState.deduceEditorPosition(r),c=this._host.deduceModelPosition(l[0],l[1],l[2]),d=this._textAreaState.deduceEditorPosition(a),h=this._host.deduceModelPosition(d[0],d[1],d[2]),u=new g.Y(c.lineNumber,c.column,h.lineNumber,h.column);this._onSelectionChangeRequest.fire(u)}))}dispose(){super.dispose(),this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null)}focusTextArea(){this._setHasFocus(!0),this.refreshFocusState()}isFocused(){return this._hasFocus}refreshFocusState(){this._setHasFocus(this._textArea.hasFocus())}_setHasFocus(e){this._hasFocus!==e&&(this._hasFocus=e,this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null),this._hasFocus&&(this._selectionChangeListener=this._installSelectionChangeListener()),this._hasFocus&&this.writeScreenReaderContent("focusgain"),this._hasFocus?this._onFocus.fire():this._onBlur.fire())}_setAndWriteTextAreaState(e,t){this._hasFocus||(t=t.collapseSelection()),t.writeToTextArea(e,this._textArea,this._hasFocus),this._textAreaState=t}writeScreenReaderContent(e){this._currentComposition||this._setAndWriteTextAreaState(e,this._host.getScreenReaderContent(this._textAreaState))}_ensureClipboardGetsEditorSelection(e){const t=this._host.getDataToCopy(),i={version:1,isFromEmptySelection:t.isFromEmptySelection,multicursorText:t.multicursorText,mode:t.mode};m.INSTANCE.set(this._browser.isFirefox?t.text.replace(/\r\n/g,"\n"):t.text,i),e.preventDefault(),e.clipboardData&&v.setTextData(e.clipboardData,t.text,t.html,i)}}class v{static getTextData(e){const t=e.getData(d.v.text);let i=null;const n=e.getData("vscode-editor-data");if("string"==typeof n)try{i=JSON.parse(n),1!==i.version&&(i=null)}catch(o){}if(0===t.length&&null===i&&e.files.length>0){return[Array.prototype.slice.call(e.files,0).map((e=>e.name)).join("\n"),null]}return[t,i]}static setTextData(e,t,i,n){e.setData(d.v.text,t),"string"==typeof i&&e.setData("text/html",i),e.setData("vscode-editor-data",JSON.stringify(n))}}class b extends c.JT{constructor(e){super(),this._actual=e,this.onKeyDown=this._register(s.IC(this._actual,"keydown")).event,this.onKeyUp=this._register(s.IC(this._actual,"keyup")).event,this.onCompositionStart=this._register(s.IC(this._actual,"compositionstart")).event,this.onCompositionUpdate=this._register(s.IC(this._actual,"compositionupdate")).event,this.onCompositionEnd=this._register(s.IC(this._actual,"compositionend")).event,this.onInput=this._register(s.IC(this._actual,"input")).event,this.onCut=this._register(s.IC(this._actual,"cut")).event,this.onCopy=this._register(s.IC(this._actual,"copy")).event,this.onPaste=this._register(s.IC(this._actual,"paste")).event,this.onFocus=this._register(s.IC(this._actual,"focus")).event,this.onBlur=this._register(s.IC(this._actual,"blur")).event,this._onSyntheticTap=this._register(new l.Q5),this.onSyntheticTap=this._onSyntheticTap.event,this._ignoreSelectionChangeTime=0,this._register(s.nm(this._actual,n.Tap,(()=>this._onSyntheticTap.fire())))}hasFocus(){const e=s.Ay(this._actual);return e?e.activeElement===this._actual:!!s.Uw(this._actual)&&document.activeElement===this._actual}setIgnoreSelectionChangeTime(e){this._ignoreSelectionChangeTime=Date.now()}getIgnoreSelectionChangeTime(){return this._ignoreSelectionChangeTime}resetSelectionChangeTime(){this._ignoreSelectionChangeTime=0}getValue(){return this._actual.value}setValue(e,t){const i=this._actual;i.value!==t&&(this.setIgnoreSelectionChangeTime("setValue"),i.value=t)}getSelectionStart(){return"backward"===this._actual.selectionDirection?this._actual.selectionEnd:this._actual.selectionStart}getSelectionEnd(){return"backward"===this._actual.selectionDirection?this._actual.selectionStart:this._actual.selectionEnd}setSelectionRange(e,t,i){const n=this._actual;let r=null;const a=s.Ay(n);r=a?a.activeElement:document.activeElement;const l=r===n,c=n.selectionStart,d=n.selectionEnd;if(l&&c===t&&d===i)o.isFirefox&&window.parent!==window&&n.focus();else{if(l)return this.setIgnoreSelectionChangeTime("setSelectionRange"),n.setSelectionRange(t,i),void(o.isFirefox&&window.parent!==window&&n.focus());try{const e=s.vL(n);this.setIgnoreSelectionChangeTime("setSelectionRange"),n.focus(),n.setSelectionRange(t,i),s._0(n,e)}catch(h){}}}}},15887:(e,t,i)=>{"use strict";i.d(t,{al:()=>r,ee:()=>l,un:()=>a});var n=i(97295),o=i(50187),s=i(24314);const r=!1;class a{constructor(e,t,i,n,o){this.value=e,this.selectionStart=t,this.selectionEnd=i,this.selectionStartPosition=n,this.selectionEndPosition=o}toString(){return`[ <${this.value}>, selectionStart: ${this.selectionStart}, selectionEnd: ${this.selectionEnd}]`}static readFromTextArea(e){return new a(e.getValue(),e.getSelectionStart(),e.getSelectionEnd(),null,null)}collapseSelection(){return new a(this.value,this.value.length,this.value.length,null,null)}writeToTextArea(e,t,i){r&&console.log(`writeToTextArea ${e}: ${this.toString()}`),t.setValue(e,this.value),i&&t.setSelectionRange(e,this.selectionStart,this.selectionEnd)}deduceEditorPosition(e){if(e<=this.selectionStart){const t=this.value.substring(e,this.selectionStart);return this._finishDeduceEditorPosition(this.selectionStartPosition,t,-1)}if(e>=this.selectionEnd){const t=this.value.substring(this.selectionEnd,e);return this._finishDeduceEditorPosition(this.selectionEndPosition,t,1)}const t=this.value.substring(this.selectionStart,e);if(-1===t.indexOf(String.fromCharCode(8230)))return this._finishDeduceEditorPosition(this.selectionStartPosition,t,1);const i=this.value.substring(e,this.selectionEnd);return this._finishDeduceEditorPosition(this.selectionEndPosition,i,-1)}_finishDeduceEditorPosition(e,t,i){let n=0,o=-1;for(;-1!==(o=t.indexOf("\n",o+1));)n++;return[e,i*t.length,n]}static deduceInput(e,t,i){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};r&&(console.log("------------------------deduceInput"),console.log(`PREVIOUS STATE: ${e.toString()}`),console.log(`CURRENT STATE: ${t.toString()}`));const o=Math.min(n.Mh(e.value,t.value),e.selectionStart,t.selectionStart),s=Math.min(n.P1(e.value,t.value),e.value.length-e.selectionEnd,t.value.length-t.selectionEnd),a=e.value.substring(o,e.value.length-s),l=t.value.substring(o,t.value.length-s),c=e.selectionStart-o,d=e.selectionEnd-o,h=t.selectionStart-o,u=t.selectionEnd-o;if(r&&(console.log(`AFTER DIFFING PREVIOUS STATE: <${a}>, selectionStart: ${c}, selectionEnd: ${d}`),console.log(`AFTER DIFFING CURRENT STATE: <${l}>, selectionStart: ${h}, selectionEnd: ${u}`)),h===u){const t=e.selectionStart-o;return r&&console.log(`REMOVE PREVIOUS: ${t} chars`),{text:l,replacePrevCharCnt:t,replaceNextCharCnt:0,positionDelta:0}}return{text:l,replacePrevCharCnt:d-c,replaceNextCharCnt:0,positionDelta:0}}static deduceAndroidCompositionInput(e,t){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};if(r&&(console.log("------------------------deduceAndroidCompositionInput"),console.log(`PREVIOUS STATE: ${e.toString()}`),console.log(`CURRENT STATE: ${t.toString()}`)),e.value===t.value)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:t.selectionEnd-e.selectionEnd};const i=Math.min(n.Mh(e.value,t.value),e.selectionEnd),o=Math.min(n.P1(e.value,t.value),e.value.length-e.selectionEnd),s=e.value.substring(i,e.value.length-o),a=t.value.substring(i,t.value.length-o),l=e.selectionStart-i,c=e.selectionEnd-i,d=t.selectionStart-i,h=t.selectionEnd-i;return r&&(console.log(`AFTER DIFFING PREVIOUS STATE: <${s}>, selectionStart: ${l}, selectionEnd: ${c}`),console.log(`AFTER DIFFING CURRENT STATE: <${a}>, selectionStart: ${d}, selectionEnd: ${h}`)),{text:a,replacePrevCharCnt:c,replaceNextCharCnt:s.length-c,positionDelta:h-a.length}}}a.EMPTY=new a("",0,0,null,null);class l{static _getPageOfLine(e,t){return Math.floor((e-1)/t)}static _getRangeForPage(e,t){const i=e*t,n=i+1,o=i+t;return new s.e(n,1,o+1,1)}static fromEditorSelection(e,t,i,n,r){const c=l._getPageOfLine(i.startLineNumber,n),d=l._getRangeForPage(c,n),h=l._getPageOfLine(i.endLineNumber,n),u=l._getRangeForPage(h,n),g=d.intersectRanges(new s.e(1,1,i.startLineNumber,i.startColumn));let p=t.getValueInRange(g,1);const m=t.getLineCount(),f=t.getLineMaxColumn(m),_=u.intersectRanges(new s.e(i.endLineNumber,i.endColumn,m,f));let v,b=t.getValueInRange(_,1);if(c===h||c+1===h)v=t.getValueInRange(i,1);else{const e=d.intersectRanges(i),n=u.intersectRanges(i);v=t.getValueInRange(e,1)+String.fromCharCode(8230)+t.getValueInRange(n,1)}if(r){const e=500;p.length>e&&(p=p.substring(p.length-e,p.length)),b.length>e&&(b=b.substring(0,e)),v.length>2*e&&(v=v.substring(0,e)+String.fromCharCode(8230)+v.substring(v.length-e,v.length))}return new a(p+v+b,p.length,p.length+v.length,new o.L(i.startLineNumber,i.startColumn),new o.L(i.endLineNumber,i.endColumn))}}},42549:(e,t,i)=>{"use strict";i.d(t,{wk:()=>D,Ox:()=>y});var n=i(63580),o=i(16268),s=i(98401),r=i(85152),a=i(16830),l=i(11640),c=i(55343),d=i(50187),h=i(24314);class u{static columnSelect(e,t,i,n,o,s){const r=Math.abs(o-i)+1,a=i>o,l=n>s,u=n<s,g=[];for(let p=0;p<r;p++){const o=i+(a?-p:p),r=e.columnFromVisibleColumn(t,o,n),m=e.columnFromVisibleColumn(t,o,s),f=e.visibleColumnFromColumn(t,new d.L(o,r)),_=e.visibleColumnFromColumn(t,new d.L(o,m));if(u){if(f>s)continue;if(_<n)continue}if(l){if(_>n)continue;if(f<s)continue}g.push(new c.rS(new h.e(o,r,o,r),0,new d.L(o,m),0))}if(0===g.length)for(let p=0;p<r;p++){const e=i+(a?-p:p),n=t.getLineMaxColumn(e);g.push(new c.rS(new h.e(e,n,e,n),0,new d.L(e,n),0))}return{viewStates:g,reversed:a,fromLineNumber:i,fromVisualColumn:n,toLineNumber:o,toVisualColumn:s}}static columnSelectLeft(e,t,i){let n=i.toViewVisualColumn;return n>0&&n--,u.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,n)}static columnSelectRight(e,t,i){let n=0;const o=Math.min(i.fromViewLineNumber,i.toViewLineNumber),s=Math.max(i.fromViewLineNumber,i.toViewLineNumber);for(let a=o;a<=s;a++){const i=t.getLineMaxColumn(a),o=e.visibleColumnFromColumn(t,new d.L(a,i));n=Math.max(n,o)}let r=i.toViewVisualColumn;return r<n&&r++,this.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,r)}static columnSelectUp(e,t,i,n){const o=n?e.pageSize:1,s=Math.max(1,i.toViewLineNumber-o);return this.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,s,i.toViewVisualColumn)}static columnSelectDown(e,t,i,n){const o=n?e.pageSize:1,s=Math.min(t.getLineCount(),i.toViewLineNumber+o);return this.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,s,i.toViewVisualColumn)}}var g=i(29436),p=i(28108),m=i(94729),f=i(29102),_=i(38819),v=i(49989);class b extends a._l{runEditorCommand(e,t,i){const n=t._getViewModel();n&&this.runCoreEditorCommand(n,i||{})}}var C,w,y;!function(e){e.description={description:"Scroll editor in the given direction",args:[{name:"Editor scroll argument object",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory direction value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'up', 'down'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'line', 'wrappedLine', 'page', 'halfPage', 'editor'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n\t\t\t\t",constraint:function(e){if(!s.Kn(e))return!1;const t=e;return!!s.HD(t.to)&&(!(!s.o8(t.by)&&!s.HD(t.by))&&(!(!s.o8(t.value)&&!s.hj(t.value))&&!(!s.o8(t.revealCursor)&&!s.jn(t.revealCursor))))},schema:{type:"object",required:["to"],properties:{to:{type:"string",enum:["up","down"]},by:{type:"string",enum:["line","wrappedLine","page","halfPage","editor"]},value:{type:"number",default:1},revealCursor:{type:"boolean"}}}}]},e.RawDirection={Up:"up",Down:"down"},e.RawUnit={Line:"line",WrappedLine:"wrappedLine",Page:"page",HalfPage:"halfPage",Editor:"editor"},e.parse=function(t){let i,n;switch(t.to){case e.RawDirection.Up:i=1;break;case e.RawDirection.Down:i=2;break;default:return null}switch(t.by){case e.RawUnit.Line:n=1;break;case e.RawUnit.WrappedLine:n=2;break;case e.RawUnit.Page:n=3;break;case e.RawUnit.HalfPage:n=4;break;case e.RawUnit.Editor:n=5;break;default:n=2}return{direction:i,unit:n,value:Math.floor(t.value||1),revealCursor:!!t.revealCursor,select:!!t.select}}}(C||(C={})),function(e){e.description={description:"Reveal the given line at the given logical position",args:[{name:"Reveal line argument object",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'lineNumber': A mandatory line number value.\n\t\t\t\t\t* 'at': Logical position at which line has to be revealed.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'top', 'center', 'bottom'\n\t\t\t\t\t\t```\n\t\t\t\t",constraint:function(e){if(!s.Kn(e))return!1;const t=e;return!(!s.hj(t.lineNumber)&&!s.HD(t.lineNumber))&&!(!s.o8(t.at)&&!s.HD(t.at))},schema:{type:"object",required:["lineNumber"],properties:{lineNumber:{type:["number","string"]},at:{type:"string",enum:["top","center","bottom"]}}}}]},e.RawAtArgument={Top:"top",Center:"center",Bottom:"bottom"}}(w||(w={}));class S{constructor(e){e.addImplementation(1e4,"code-editor",((e,t)=>{const i=e.get(l.$).getFocusedCodeEditor();return!(!i||!i.hasTextFocus())&&this._runEditorCommand(e,i,t)})),e.addImplementation(1e3,"generic-dom-input-textarea",((e,t)=>{const i=document.activeElement;return!!(i&&["input","textarea"].indexOf(i.tagName.toLowerCase())>=0)&&(this.runDOMCommand(),!0)})),e.addImplementation(0,"generic-dom",((e,t)=>{const i=e.get(l.$).getActiveCodeEditor();return!!i&&(i.focus(),this._runEditorCommand(e,i,t))}))}_runEditorCommand(e,t,i){const n=this.runEditorCommand(e,t,i);return n||!0}}!function(e){class t extends b{constructor(e){super(e),this._minimalReveal=e.minimalReveal,this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement();e.setCursorStates(t.source,3,[p.P.moveTo(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position,t.viewPosition)])&&e.revealPrimaryCursor(t.source,!0,this._minimalReveal)}}e.MoveTo=(0,a.fK)(new t({id:"_moveTo",minimalReveal:!0,inSelectionMode:!1,precondition:void 0})),e.MoveToSelect=(0,a.fK)(new t({id:"_moveToSelect",minimalReveal:!1,inSelectionMode:!0,precondition:void 0}));class i extends b{runCoreEditorCommand(e,t){e.model.pushStackElement();const i=this._getColumnSelectResult(e,e.getPrimaryCursorState(),e.getCursorColumnSelectData(),t);e.setCursorStates(t.source,3,i.viewStates.map((e=>c.Vi.fromViewState(e)))),e.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:i.fromLineNumber,fromViewVisualColumn:i.fromVisualColumn,toViewLineNumber:i.toLineNumber,toViewVisualColumn:i.toVisualColumn}),i.reversed?e.revealTopMostCursor(t.source):e.revealBottomMostCursor(t.source)}}e.ColumnSelect=(0,a.fK)(new class extends i{constructor(){super({id:"columnSelect",precondition:void 0})}_getColumnSelectResult(e,t,i,n){const o=e.model.validatePosition(n.position),s=e.coordinatesConverter.validateViewPosition(new d.L(n.viewPosition.lineNumber,n.viewPosition.column),o),r=n.doColumnSelect?i.fromViewLineNumber:s.lineNumber,a=n.doColumnSelect?i.fromViewVisualColumn:n.mouseColumn-1;return u.columnSelect(e.cursorConfig,e,r,a,s.lineNumber,n.mouseColumn-1)}}),e.CursorColumnSelectLeft=(0,a.fK)(new class extends i{constructor(){super({id:"cursorColumnSelectLeft",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:3599,linux:{primary:0}}})}_getColumnSelectResult(e,t,i,n){return u.columnSelectLeft(e.cursorConfig,e,i)}}),e.CursorColumnSelectRight=(0,a.fK)(new class extends i{constructor(){super({id:"cursorColumnSelectRight",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:3601,linux:{primary:0}}})}_getColumnSelectResult(e,t,i,n){return u.columnSelectRight(e.cursorConfig,e,i)}});class s extends i{constructor(e){super(e),this._isPaged=e.isPaged}_getColumnSelectResult(e,t,i,n){return u.columnSelectUp(e.cursorConfig,e,i,this._isPaged)}}e.CursorColumnSelectUp=(0,a.fK)(new s({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:3600,linux:{primary:0}}})),e.CursorColumnSelectPageUp=(0,a.fK)(new s({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:3595,linux:{primary:0}}}));class l extends i{constructor(e){super(e),this._isPaged=e.isPaged}_getColumnSelectResult(e,t,i,n){return u.columnSelectDown(e.cursorConfig,e,i,this._isPaged)}}e.CursorColumnSelectDown=(0,a.fK)(new l({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:3602,linux:{primary:0}}})),e.CursorColumnSelectPageDown=(0,a.fK)(new l({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:3596,linux:{primary:0}}}));class g extends b{constructor(){super({id:"cursorMove",precondition:void 0,description:p.N.description})}runCoreEditorCommand(e,t){const i=p.N.parse(t);i&&this._runCursorMove(e,t.source,i)}_runCursorMove(e,t,i){e.model.pushStackElement(),e.setCursorStates(t,3,g._move(e,e.getCursorStates(),i)),e.revealPrimaryCursor(t,!0)}static _move(e,t,i){const n=i.select,o=i.value;switch(i.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return p.P.simpleMove(e,t,i.direction,n,o,i.unit);case 11:case 13:case 12:case 14:return p.P.viewportMove(e,t,i.direction,n,o);default:return null}}}e.CursorMoveImpl=g,e.CursorMove=(0,a.fK)(new g);class m extends b{constructor(e){super(e),this._staticArgs=e.args}runCoreEditorCommand(e,t){let i=this._staticArgs;-1===this._staticArgs.value&&(i={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:t.pageSize||e.cursorConfig.pageSize}),e.model.pushStackElement(),e.setCursorStates(t.source,3,p.P.simpleMove(e,e.getCursorStates(),i.direction,i.select,i.value,i.unit)),e.revealPrimaryCursor(t.source,!0)}}e.CursorLeft=(0,a.fK)(new m({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),e.CursorLeftSelect=(0,a.fK)(new m({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:1039}})),e.CursorRight=(0,a.fK)(new m({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),e.CursorRightSelect=(0,a.fK)(new m({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:1041}})),e.CursorUp=(0,a.fK)(new m({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),e.CursorUpSelect=(0,a.fK)(new m({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),e.CursorPageUp=(0,a.fK)(new m({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:11}})),e.CursorPageUpSelect=(0,a.fK)(new m({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:1035}})),e.CursorDown=(0,a.fK)(new m({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),e.CursorDownSelect=(0,a.fK)(new m({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),e.CursorPageDown=(0,a.fK)(new m({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:12}})),e.CursorPageDownSelect=(0,a.fK)(new m({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:1036}})),e.CreateCursor=(0,a.fK)(new class extends b{constructor(){super({id:"createCursor",precondition:void 0})}runCoreEditorCommand(e,t){let i;i=t.wholeLine?p.P.line(e,e.getPrimaryCursorState(),!1,t.position,t.viewPosition):p.P.moveTo(e,e.getPrimaryCursorState(),!1,t.position,t.viewPosition);const n=e.getCursorStates();if(n.length>1){const o=i.modelState?i.modelState.position:null,s=i.viewState?i.viewState.position:null;for(let i=0,r=n.length;i<r;i++){const r=n[i];if((!o||r.modelState.selection.containsPosition(o))&&(!s||r.viewState.selection.containsPosition(s)))return n.splice(i,1),e.model.pushStackElement(),void e.setCursorStates(t.source,3,n)}}n.push(i),e.model.pushStackElement(),e.setCursorStates(t.source,3,n)}}),e.LastCursorMoveToSelect=(0,a.fK)(new class extends b{constructor(){super({id:"_lastCursorMoveToSelect",precondition:void 0})}runCoreEditorCommand(e,t){const i=e.getLastAddedCursorIndex(),n=e.getCursorStates(),o=n.slice(0);o[i]=p.P.moveTo(e,n[i],!0,t.position,t.viewPosition),e.model.pushStackElement(),e.setCursorStates(t.source,3,o)}});class _ extends b{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,p.P.moveToBeginningOfLine(e,e.getCursorStates(),this._inSelectionMode)),e.revealPrimaryCursor(t.source,!0)}}e.CursorHome=(0,a.fK)(new _({inSelectionMode:!1,id:"cursorHome",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:14,mac:{primary:14,secondary:[2063]}}})),e.CursorHomeSelect=(0,a.fK)(new _({inSelectionMode:!0,id:"cursorHomeSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:1038,mac:{primary:1038,secondary:[3087]}}}));class v extends b{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,this._exec(e.getCursorStates())),e.revealPrimaryCursor(t.source,!0)}_exec(e){const t=[];for(let i=0,n=e.length;i<n;i++){const n=e[i],o=n.modelState.position.lineNumber;t[i]=c.Vi.fromModelState(n.modelState.move(this._inSelectionMode,o,1,0))}return t}}e.CursorLineStart=(0,a.fK)(new v({inSelectionMode:!1,id:"cursorLineStart",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:0,mac:{primary:287}}})),e.CursorLineStartSelect=(0,a.fK)(new v({inSelectionMode:!0,id:"cursorLineStartSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:0,mac:{primary:1311}}}));class y extends b{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,p.P.moveToEndOfLine(e,e.getCursorStates(),this._inSelectionMode,t.sticky||!1)),e.revealPrimaryCursor(t.source,!0)}}e.CursorEnd=(0,a.fK)(new y({inSelectionMode:!1,id:"cursorEnd",precondition:void 0,kbOpts:{args:{sticky:!1},weight:0,kbExpr:f.u.textInputFocus,primary:13,mac:{primary:13,secondary:[2065]}},description:{description:"Go to End",args:[{name:"args",schema:{type:"object",properties:{sticky:{description:n.NC("stickydesc","Stick to the end even when going to longer lines"),type:"boolean",default:!1}}}}]}})),e.CursorEndSelect=(0,a.fK)(new y({inSelectionMode:!0,id:"cursorEndSelect",precondition:void 0,kbOpts:{args:{sticky:!1},weight:0,kbExpr:f.u.textInputFocus,primary:1037,mac:{primary:1037,secondary:[3089]}},description:{description:"Select to End",args:[{name:"args",schema:{type:"object",properties:{sticky:{description:n.NC("stickydesc","Stick to the end even when going to longer lines"),type:"boolean",default:!1}}}}]}}));class L extends b{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,this._exec(e,e.getCursorStates())),e.revealPrimaryCursor(t.source,!0)}_exec(e,t){const i=[];for(let n=0,o=t.length;n<o;n++){const o=t[n],s=o.modelState.position.lineNumber,r=e.model.getLineMaxColumn(s);i[n]=c.Vi.fromModelState(o.modelState.move(this._inSelectionMode,s,r,0))}return i}}e.CursorLineEnd=(0,a.fK)(new L({inSelectionMode:!1,id:"cursorLineEnd",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:0,mac:{primary:291}}})),e.CursorLineEndSelect=(0,a.fK)(new L({inSelectionMode:!0,id:"cursorLineEndSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:0,mac:{primary:1315}}}));class k extends b{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,p.P.moveToBeginningOfBuffer(e,e.getCursorStates(),this._inSelectionMode)),e.revealPrimaryCursor(t.source,!0)}}e.CursorTop=(0,a.fK)(new k({inSelectionMode:!1,id:"cursorTop",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:2062,mac:{primary:2064}}})),e.CursorTopSelect=(0,a.fK)(new k({inSelectionMode:!0,id:"cursorTopSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:3086,mac:{primary:3088}}}));class x extends b{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,p.P.moveToEndOfBuffer(e,e.getCursorStates(),this._inSelectionMode)),e.revealPrimaryCursor(t.source,!0)}}e.CursorBottom=(0,a.fK)(new x({inSelectionMode:!1,id:"cursorBottom",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:2061,mac:{primary:2066}}})),e.CursorBottomSelect=(0,a.fK)(new x({inSelectionMode:!0,id:"cursorBottomSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:3085,mac:{primary:3090}}}));class D extends b{constructor(){super({id:"editorScroll",precondition:void 0,description:C.description})}runCoreEditorCommand(e,t){const i=C.parse(t);i&&this._runEditorScroll(e,t.source,i)}_runEditorScroll(e,t,i){const n=this._computeDesiredScrollTop(e,i);if(i.revealCursor){const o=e.getCompletelyVisibleViewRangeAtScrollTop(n);e.setCursorStates(t,3,[p.P.findPositionInViewportIfOutside(e,e.getPrimaryCursorState(),o,i.select)])}e.viewLayout.setScrollPosition({scrollTop:n},0)}_computeDesiredScrollTop(e,t){if(1===t.unit){const i=e.getCompletelyVisibleViewRange(),n=e.coordinatesConverter.convertViewRangeToModelRange(i);let o;o=1===t.direction?Math.max(1,n.startLineNumber-t.value):Math.min(e.model.getLineCount(),n.startLineNumber+t.value);const s=e.coordinatesConverter.convertModelPositionToViewPosition(new d.L(o,1));return e.viewLayout.getVerticalOffsetForLineNumber(s.lineNumber)}if(5===t.unit){let i=0;return 2===t.direction&&(i=e.model.getLineCount()-e.cursorConfig.pageSize),e.viewLayout.getVerticalOffsetForLineNumber(i)}let i;i=3===t.unit?e.cursorConfig.pageSize*t.value:4===t.unit?Math.round(e.cursorConfig.pageSize/2)*t.value:t.value;const n=(1===t.direction?-1:1)*i;return e.viewLayout.getCurrentScrollTop()+n*e.cursorConfig.lineHeight}}e.EditorScrollImpl=D,e.EditorScroll=(0,a.fK)(new D),e.ScrollLineUp=(0,a.fK)(new class extends b{constructor(){super({id:"scrollLineUp",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:2064,mac:{primary:267}}})}runCoreEditorCommand(t,i){e.EditorScroll._runEditorScroll(t,i.source,{direction:1,unit:2,value:1,revealCursor:!1,select:!1})}}),e.ScrollPageUp=(0,a.fK)(new class extends b{constructor(){super({id:"scrollPageUp",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:2059,win:{primary:523},linux:{primary:523}}})}runCoreEditorCommand(t,i){e.EditorScroll._runEditorScroll(t,i.source,{direction:1,unit:3,value:1,revealCursor:!1,select:!1})}}),e.ScrollEditorTop=(0,a.fK)(new class extends b{constructor(){super({id:"scrollEditorTop",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus}})}runCoreEditorCommand(t,i){e.EditorScroll._runEditorScroll(t,i.source,{direction:1,unit:5,value:1,revealCursor:!1,select:!1})}}),e.ScrollLineDown=(0,a.fK)(new class extends b{constructor(){super({id:"scrollLineDown",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:2066,mac:{primary:268}}})}runCoreEditorCommand(t,i){e.EditorScroll._runEditorScroll(t,i.source,{direction:2,unit:2,value:1,revealCursor:!1,select:!1})}}),e.ScrollPageDown=(0,a.fK)(new class extends b{constructor(){super({id:"scrollPageDown",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:2060,win:{primary:524},linux:{primary:524}}})}runCoreEditorCommand(t,i){e.EditorScroll._runEditorScroll(t,i.source,{direction:2,unit:3,value:1,revealCursor:!1,select:!1})}}),e.ScrollEditorBottom=(0,a.fK)(new class extends b{constructor(){super({id:"scrollEditorBottom",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus}})}runCoreEditorCommand(t,i){e.EditorScroll._runEditorScroll(t,i.source,{direction:2,unit:5,value:1,revealCursor:!1,select:!1})}});class N extends b{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[p.P.word(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position)]),e.revealPrimaryCursor(t.source,!0)}}e.WordSelect=(0,a.fK)(new N({inSelectionMode:!1,id:"_wordSelect",precondition:void 0})),e.WordSelectDrag=(0,a.fK)(new N({inSelectionMode:!0,id:"_wordSelectDrag",precondition:void 0})),e.LastCursorWordSelect=(0,a.fK)(new class extends b{constructor(){super({id:"lastCursorWordSelect",precondition:void 0})}runCoreEditorCommand(e,t){const i=e.getLastAddedCursorIndex(),n=e.getCursorStates(),o=n.slice(0),s=n[i];o[i]=p.P.word(e,s,s.modelState.hasSelection(),t.position),e.model.pushStackElement(),e.setCursorStates(t.source,3,o)}});class E extends b{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[p.P.line(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position,t.viewPosition)]),e.revealPrimaryCursor(t.source,!1)}}e.LineSelect=(0,a.fK)(new E({inSelectionMode:!1,id:"_lineSelect",precondition:void 0})),e.LineSelectDrag=(0,a.fK)(new E({inSelectionMode:!0,id:"_lineSelectDrag",precondition:void 0}));class I extends b{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){const i=e.getLastAddedCursorIndex(),n=e.getCursorStates(),o=n.slice(0);o[i]=p.P.line(e,n[i],this._inSelectionMode,t.position,t.viewPosition),e.model.pushStackElement(),e.setCursorStates(t.source,3,o)}}e.LastCursorLineSelect=(0,a.fK)(new I({inSelectionMode:!1,id:"lastCursorLineSelect",precondition:void 0})),e.LastCursorLineSelectDrag=(0,a.fK)(new I({inSelectionMode:!0,id:"lastCursorLineSelectDrag",precondition:void 0})),e.CancelSelection=(0,a.fK)(new class extends b{constructor(){super({id:"cancelSelection",precondition:f.u.hasNonEmptySelection,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:9,secondary:[1033]}})}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[p.P.cancelSelection(e,e.getPrimaryCursorState())]),e.revealPrimaryCursor(t.source,!0)}}),e.RemoveSecondaryCursors=(0,a.fK)(new class extends b{constructor(){super({id:"removeSecondaryCursors",precondition:f.u.hasMultipleSelections,kbOpts:{weight:1,kbExpr:f.u.textInputFocus,primary:9,secondary:[1033]}})}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[e.getPrimaryCursorState()]),e.revealPrimaryCursor(t.source,!0),(0,r.i7)(n.NC("removedCursor","Removed secondary cursors"))}}),e.RevealLine=(0,a.fK)(new class extends b{constructor(){super({id:"revealLine",precondition:void 0,description:w.description})}runCoreEditorCommand(e,t){const i=t,n=i.lineNumber||0;let o="number"==typeof n?n+1:parseInt(n)+1;o<1&&(o=1);const s=e.model.getLineCount();o>s&&(o=s);const r=new h.e(o,1,o,e.model.getLineMaxColumn(o));let a=0;if(i.at)switch(i.at){case w.RawAtArgument.Top:a=3;break;case w.RawAtArgument.Center:a=1;break;case w.RawAtArgument.Bottom:a=4}const l=e.coordinatesConverter.convertModelRangeToViewRange(r);e.revealRange(t.source,!1,l,a,0)}}),e.SelectAll=new class extends S{constructor(){super(a.Sq)}runDOMCommand(){o.isFirefox&&(document.activeElement.focus(),document.activeElement.select()),document.execCommand("selectAll")}runEditorCommand(e,t,i){const n=t._getViewModel();n&&this.runCoreEditorCommand(n,i)}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates("keyboard",3,[p.P.selectAll(e,e.getPrimaryCursorState())])}},e.SetSelection=(0,a.fK)(new class extends b{constructor(){super({id:"setSelection",precondition:void 0})}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[c.Vi.fromModelSelection(t.selection)])}})}(y||(y={}));const L=_.Ao.and(f.u.textInputFocus,f.u.columnSelection);function k(e,t){v.W.registerKeybindingRule({id:e,primary:t,when:L,weight:1})}function x(e){return e.register(),e}var D;k(y.CursorColumnSelectLeft.id,1039),k(y.CursorColumnSelectRight.id,1041),k(y.CursorColumnSelectUp.id,1040),k(y.CursorColumnSelectPageUp.id,1035),k(y.CursorColumnSelectDown.id,1042),k(y.CursorColumnSelectPageDown.id,1036),function(e){class t extends a._l{runEditorCommand(e,t,i){const n=t._getViewModel();n&&this.runCoreEditingCommand(t,n,i||{})}}e.CoreEditingCommand=t,e.LineBreakInsert=(0,a.fK)(new class extends t{constructor(){super({id:"lineBreakInsert",precondition:f.u.writable,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:0,mac:{primary:301}}})}runCoreEditingCommand(e,t,i){e.pushUndoStop(),e.executeCommands(this.id,m.u6.lineBreakInsert(t.cursorConfig,t.model,t.getCursorStates().map((e=>e.modelState.selection))))}}),e.Outdent=(0,a.fK)(new class extends t{constructor(){super({id:"outdent",precondition:f.u.writable,kbOpts:{weight:0,kbExpr:_.Ao.and(f.u.editorTextFocus,f.u.tabDoesNotMoveFocus),primary:1026}})}runCoreEditingCommand(e,t,i){e.pushUndoStop(),e.executeCommands(this.id,m.u6.outdent(t.cursorConfig,t.model,t.getCursorStates().map((e=>e.modelState.selection)))),e.pushUndoStop()}}),e.Tab=(0,a.fK)(new class extends t{constructor(){super({id:"tab",precondition:f.u.writable,kbOpts:{weight:0,kbExpr:_.Ao.and(f.u.editorTextFocus,f.u.tabDoesNotMoveFocus),primary:2}})}runCoreEditingCommand(e,t,i){e.pushUndoStop(),e.executeCommands(this.id,m.u6.tab(t.cursorConfig,t.model,t.getCursorStates().map((e=>e.modelState.selection)))),e.pushUndoStop()}}),e.DeleteLeft=(0,a.fK)(new class extends t{constructor(){super({id:"deleteLeft",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}runCoreEditingCommand(e,t,i){const[n,o]=g.A.deleteLeft(t.getPrevEditOperationType(),t.cursorConfig,t.model,t.getCursorStates().map((e=>e.modelState.selection)),t.getCursorAutoClosedCharacters());n&&e.pushUndoStop(),e.executeCommands(this.id,o),t.setPrevEditOperationType(2)}}),e.DeleteRight=(0,a.fK)(new class extends t{constructor(){super({id:"deleteRight",precondition:void 0,kbOpts:{weight:0,kbExpr:f.u.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}runCoreEditingCommand(e,t,i){const[n,o]=g.A.deleteRight(t.getPrevEditOperationType(),t.cursorConfig,t.model,t.getCursorStates().map((e=>e.modelState.selection)));n&&e.pushUndoStop(),e.executeCommands(this.id,o),t.setPrevEditOperationType(3)}}),e.Undo=new class extends S{constructor(){super(a.n_)}runDOMCommand(){document.execCommand("undo")}runEditorCommand(e,t,i){if(t.hasModel()&&!0!==t.getOption(83))return t.getModel().undo()}},e.Redo=new class extends S{constructor(){super(a.kz)}runDOMCommand(){document.execCommand("redo")}runEditorCommand(e,t,i){if(t.hasModel()&&!0!==t.getOption(83))return t.getModel().redo()}}}(D||(D={}));class N extends a.mY{constructor(e,t,i){super({id:e,precondition:void 0,description:i}),this._handlerId=t}runCommand(e,t){const i=e.get(l.$).getFocusedCodeEditor();i&&i.trigger("keyboard",this._handlerId,t)}}function E(e,t){x(new N("default:"+e,e)),x(new N(e,e,t))}E("type",{description:"Type",args:[{name:"args",schema:{type:"object",required:["text"],properties:{text:{type:"string"}}}}]}),E("replacePreviousChar"),E("compositionType"),E("compositionStart"),E("compositionEnd"),E("paste"),E("cut")},53201:(e,t,i)=>{"use strict";i.d(t,{Z0:()=>C,dR:()=>b,Bo:()=>f});var n=i(23547),o=i(9488),s=i(73278),r=i(81170),a=i(70666),l=i(23897),c=i(50988),d=i(89872);const h="CodeEditors",u="CodeFiles";function g(e){var t;const i=[];if(e.dataTransfer&&e.dataTransfer.types.length>0){const s=e.dataTransfer.getData(h);if(s)try{i.push(...(0,l.Q)(s))}catch(o){}else try{const t=e.dataTransfer.getData(n.g.RESOURCES);i.push(...function(e){const t=[];if(e){const i=JSON.parse(e);for(const e of i)if(e.indexOf(":")>0){const{selection:i,uri:n}=(0,c.xI)(a.o.parse(e));t.push({resource:n,options:{selection:i}})}}return t}(t))}catch(o){}if(null===(t=e.dataTransfer)||void 0===t?void 0:t.files)for(let t=0;t<e.dataTransfer.files.length;t++){const n=e.dataTransfer.files[t];if(n&&n.path)try{i.push({resource:a.o.file(n.path),isExternal:!0,allowWorkspaceOpen:!0})}catch(o){}}const r=e.dataTransfer.getData(u);if(r)try{const e=JSON.parse(r);for(const t of e)i.push({resource:a.o.file(t),isExternal:!0,allowWorkspaceOpen:!0})}catch(o){}const g=d.B.as(p.DragAndDropContribution).getAll();for(const t of g){const n=e.dataTransfer.getData(t.dataFormatKey);if(n)try{i.push(...t.getEditorInputs(n))}catch(o){}}}return i}const p={DragAndDropContribution:"workbench.contributions.dragAndDrop"};d.B.add(p.DragAndDropContribution,new class{constructor(){this._contributions=new Map}getAll(){return this._contributions.values()}});var m=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};function f(e){const t=new s.Hl;for(const i of e.items){const e=i.type;if("string"===i.kind){const n=new Promise((e=>i.getAsString(e)));t.append(e,(0,s.ZO)(n))}else if("file"===i.kind){const n=i.getAsFile();n&&t.append(e,_(n))}}return t}function _(e){const t=e.path?a.o.parse(e.path):void 0;return(0,s.Ix)(e.name,t,(()=>m(this,void 0,void 0,(function*(){return new Uint8Array(yield e.arrayBuffer())}))))}const v=Object.freeze([h,u,n.g.RESOURCES]);function b(e,t,i=!1){var n;if(t.dataTransfer&&(i||!e.has(r.v.uriList))){const i=g(t).filter((e=>e.resource)).map((e=>e.resource.toString()));for(const e of null===(n=t.dataTransfer)||void 0===n?void 0:n.items){const t=e.getAsFile();t&&i.push(t.path?a.o.file(t.path).toString():t.name)}i.length&&e.replace(r.v.uriList,(0,s.ZO)(C.create(i)))}for(const o of v)e.delete(o)}const C=Object.freeze({create:e=>(0,o.EB)(e.map((e=>e.toString()))).join("\r\n"),parse:e=>e.split("\r\n").filter((e=>!e.startsWith("#")))})},65520:(e,t,i)=>{"use strict";i.d(t,{CL:()=>o,Pi:()=>r,QI:()=>s});var n=i(96518);function o(e){return!(!e||"function"!=typeof e.getEditorType)&&e.getEditorType()===n.g.ICodeEditor}function s(e){return!(!e||"function"!=typeof e.getEditorType)&&e.getEditorType()===n.g.IDiffEditor}function r(e){return o(e)?e:s(e)?e.getModifiedEditor():null}},29994:(e,t,i)=>{"use strict";i.d(t,{AL:()=>v,N5:()=>f,Pp:()=>p,YN:()=>c,gy:()=>m,kG:()=>g,rU:()=>d,t7:()=>b,tC:()=>_});var n=i(65321),o=i(93911),s=i(7317),r=i(15393),a=i(5976),l=i(73910);class c{constructor(e,t){this.x=e,this.y=t,this._pageCoordinatesBrand=void 0}toClientCoordinates(){return new d(this.x-n.DI.scrollX,this.y-n.DI.scrollY)}}class d{constructor(e,t){this.clientX=e,this.clientY=t,this._clientCoordinatesBrand=void 0}toPageCoordinates(){return new c(this.clientX+n.DI.scrollX,this.clientY+n.DI.scrollY)}}class h{constructor(e,t,i,n){this.x=e,this.y=t,this.width=i,this.height=n,this._editorPagePositionBrand=void 0}}class u{constructor(e,t){this.x=e,this.y=t,this._positionRelativeToEditorBrand=void 0}}function g(e){const t=n.i(e);return new h(t.left,t.top,t.width,t.height)}function p(e,t,i){const n=t.width/e.offsetWidth,o=t.height/e.offsetHeight,s=(i.x-t.x)/n,r=(i.y-t.y)/o;return new u(s,r)}class m extends s.n{constructor(e,t,i){super(e),this._editorMouseEventBrand=void 0,this.isFromPointerCapture=t,this.pos=new c(this.posx,this.posy),this.editorPos=g(i),this.relativePos=p(i,this.editorPos,this.pos)}}class f{constructor(e){this._editorViewDomNode=e}_create(e){return new m(e,!1,this._editorViewDomNode)}onContextMenu(e,t){return n.nm(e,"contextmenu",(e=>{t(this._create(e))}))}onMouseUp(e,t){return n.nm(e,"mouseup",(e=>{t(this._create(e))}))}onMouseDown(e,t){return n.nm(e,n.tw.MOUSE_DOWN,(e=>{t(this._create(e))}))}onPointerDown(e,t){return n.nm(e,n.tw.POINTER_DOWN,(e=>{t(this._create(e),e.pointerId)}))}onMouseLeave(e,t){return n.nm(e,n.tw.MOUSE_LEAVE,(e=>{t(this._create(e))}))}onMouseMove(e,t){return n.nm(e,"mousemove",(e=>t(this._create(e))))}}class _{constructor(e){this._editorViewDomNode=e}_create(e){return new m(e,!1,this._editorViewDomNode)}onPointerUp(e,t){return n.nm(e,"pointerup",(e=>{t(this._create(e))}))}onPointerDown(e,t){return n.nm(e,n.tw.POINTER_DOWN,(e=>{t(this._create(e),e.pointerId)}))}onPointerLeave(e,t){return n.nm(e,n.tw.POINTER_LEAVE,(e=>{t(this._create(e))}))}onPointerMove(e,t){return n.nm(e,"pointermove",(e=>t(this._create(e))))}}class v extends a.JT{constructor(e){super(),this._editorViewDomNode=e,this._globalPointerMoveMonitor=this._register(new o.C),this._keydownListener=null}startMonitoring(e,t,i,o,s){this._keydownListener=n.mu(document,"keydown",(e=>{e.toKeybinding().isModifierKey()||this._globalPointerMoveMonitor.stopMonitoring(!0,e.browserEvent)}),!0),this._globalPointerMoveMonitor.startMonitoring(e,t,i,(e=>{o(new m(e,!0,this._editorViewDomNode))}),(e=>{this._keydownListener.dispose(),s(e)}))}stopMonitoring(){this._globalPointerMoveMonitor.stopMonitoring(!0)}}class b{constructor(e){this._editor=e,this._instanceId=++b._idPool,this._counter=0,this._rules=new Map,this._garbageCollectionScheduler=new r.pY((()=>this.garbageCollect()),1e3)}createClassNameRef(e){const t=this.getOrCreateRule(e);return t.increaseRefCount(),{className:t.className,dispose:()=>{t.decreaseRefCount(),this._garbageCollectionScheduler.schedule()}}}getOrCreateRule(e){const t=this.computeUniqueKey(e);let i=this._rules.get(t);if(!i){const o=this._counter++;i=new C(t,`dyn-rule-${this._instanceId}-${o}`,n.OO(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0,e),this._rules.set(t,i)}return i}computeUniqueKey(e){return JSON.stringify(e)}garbageCollect(){for(const e of this._rules.values())e.hasReferences()||(this._rules.delete(e.key),e.dispose())}}b._idPool=0;class C{constructor(e,t,i,o){this.key=e,this.className=t,this.properties=o,this._referenceCount=0,this._styleElement=n.dS(i),this._styleElement.textContent=this.getCssText(this.className,this.properties)}getCssText(e,t){let i=`.${e} {`;for(const n in t){const e=t[n];let o;o="object"==typeof e?`var(${(0,l.QO2)(e.id)})`:e;i+=`\n\t${w(n)}: ${o};`}return i+="\n}",i}dispose(){this._styleElement.remove()}increaseRefCount(){this._referenceCount++}decreaseRefCount(){this._referenceCount--}hasReferences(){return this._referenceCount>0}}function w(e){return e.replace(/(^[A-Z])/,(([e])=>e.toLowerCase())).replace(/([A-Z])/g,(([e])=>`-${e.toLowerCase()}`))}},16830:(e,t,i)=>{"use strict";i.d(t,{AJ:()=>C,QG:()=>E,Qr:()=>D,R6:()=>S,Sq:()=>O,Uc:()=>n,_K:()=>I,_l:()=>y,fK:()=>x,jY:()=>L,kz:()=>R,mY:()=>b,n_:()=>A,rn:()=>N,sb:()=>k});var n,o=i(63580),s=i(70666),r=i(11640),a=i(50187),l=i(73733),c=i(88216),d=i(84144),h=i(94565),u=i(38819),g=i(72065),p=i(49989),m=i(89872),f=i(10829),_=i(98401),v=i(43557);class b{constructor(e){this.id=e.id,this.precondition=e.precondition,this._kbOpts=e.kbOpts,this._menuOpts=e.menuOpts,this._description=e.description}register(){if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){const e=Array.isArray(this._kbOpts)?this._kbOpts:[this._kbOpts];for(const t of e){let e=t.kbExpr;this.precondition&&(e=e?u.Ao.and(e,this.precondition):this.precondition);const i={id:this.id,weight:t.weight,args:t.args,when:e,primary:t.primary,secondary:t.secondary,win:t.win,linux:t.linux,mac:t.mac};p.W.registerKeybindingRule(i)}}h.P0.registerCommand({id:this.id,handler:(e,t)=>this.runCommand(e,t),description:this._description})}_registerMenuItem(e){d.BH.appendMenuItem(e.menuId,{group:e.group,command:{id:this.id,title:e.title,icon:e.icon,precondition:this.precondition},when:e.when,order:e.order})}}class C extends b{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t,i){return this._implementations.push({priority:e,name:t,implementation:i}),this._implementations.sort(((e,t)=>t.priority-e.priority)),{dispose:()=>{for(let e=0;e<this._implementations.length;e++)if(this._implementations[e].implementation===i)return void this._implementations.splice(e,1)}}}runCommand(e,t){const i=e.get(v.VZ);i.trace(`Executing Command '${this.id}' which has ${this._implementations.length} bound.`);for(const n of this._implementations){const o=n.implementation(e,t);if(o){if(i.trace(`Command '${this.id}' was handled by '${n.name}'.`),"boolean"==typeof o)return;return o}}i.trace(`The Command '${this.id}' was not handled by any implementation.`)}}class w extends b{constructor(e,t){super(t),this.command=e}runCommand(e,t){return this.command.runCommand(e,t)}}class y extends b{static bindToContribution(e){return class extends y{constructor(e){super(e),this._callback=e.handler}runEditorCommand(t,i,n){const o=e(i);o&&this._callback(o,n)}}}runCommand(e,t){const i=e.get(r.$),n=i.getFocusedCodeEditor()||i.getActiveCodeEditor();if(n)return n.invokeWithinContext((e=>{if(e.get(u.i6).contextMatchesRules((0,_.f6)(this.precondition)))return this.runEditorCommand(e,n,t)}))}}class S extends y{constructor(e){super(S.convertOptions(e)),this.label=e.label,this.alias=e.alias}static convertOptions(e){let t;function i(t){return t.menuId||(t.menuId=d.eH.EditorContext),t.title||(t.title=e.label),t.when=u.Ao.and(e.precondition,t.when),t}return t=Array.isArray(e.menuOpts)?e.menuOpts:e.menuOpts?[e.menuOpts]:[],Array.isArray(e.contextMenuOpts)?t.push(...e.contextMenuOpts.map(i)):e.contextMenuOpts&&t.push(i(e.contextMenuOpts)),e.menuOpts=t,e}runEditorCommand(e,t,i){return this.reportTelemetry(e,t),this.run(e,t,i||{})}reportTelemetry(e,t){e.get(f.b).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}}class L extends S{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t){return this._implementations.push([e,t]),this._implementations.sort(((e,t)=>t[0]-e[0])),{dispose:()=>{for(let e=0;e<this._implementations.length;e++)if(this._implementations[e][1]===t)return void this._implementations.splice(e,1)}}}run(e,t,i){for(const n of this._implementations){const o=n[1](e,t,i);if(o){if("boolean"==typeof o)return;return o}}}}function k(e,t){h.P0.registerCommand(e,(function(e,...i){const n=e.get(g.TG),[o,r]=i;(0,_.p_)(s.o.isUri(o)),(0,_.p_)(a.L.isIPosition(r));const d=e.get(l.q).getModel(o);if(d){const e=a.L.lift(r);return n.invokeFunction(t,d,e,...i.slice(2))}return e.get(c.S).createModelReference(o).then((e=>new Promise(((o,s)=>{try{o(n.invokeFunction(t,e.object.textEditorModel,a.L.lift(r),i.slice(2)))}catch(l){s(l)}})).finally((()=>{e.dispose()}))))}))}function x(e){return T.INSTANCE.registerEditorCommand(e),e}function D(e){const t=new e;return T.INSTANCE.registerEditorAction(t),t}function N(e){return T.INSTANCE.registerEditorAction(e),e}function E(e){T.INSTANCE.registerEditorAction(e)}function I(e,t){T.INSTANCE.registerEditorContribution(e,t)}!function(e){e.getEditorCommand=function(e){return T.INSTANCE.getEditorCommand(e)},e.getEditorActions=function(){return T.INSTANCE.getEditorActions()},e.getEditorContributions=function(){return T.INSTANCE.getEditorContributions()},e.getSomeEditorContributions=function(e){return T.INSTANCE.getEditorContributions().filter((t=>e.indexOf(t.id)>=0))},e.getDiffEditorContributions=function(){return T.INSTANCE.getDiffEditorContributions()}}(n||(n={}));class T{constructor(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}registerEditorContribution(e,t){this.editorContributions.push({id:e,ctor:t})}getEditorContributions(){return this.editorContributions.slice(0)}getDiffEditorContributions(){return this.diffEditorContributions.slice(0)}registerEditorAction(e){e.register(),this.editorActions.push(e)}getEditorActions(){return this.editorActions.slice(0)}registerEditorCommand(e){e.register(),this.editorCommands[e.id]=e}getEditorCommand(e){return this.editorCommands[e]||null}}function M(e){return e.register(),e}T.INSTANCE=new T,m.B.add("editor.contributions",T.INSTANCE);const A=M(new C({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:d.eH.MenubarEditMenu,group:"1_do",title:o.NC({key:"miUndo",comment:["&& denotes a mnemonic"]},"&&Undo"),order:1},{menuId:d.eH.CommandPalette,group:"",title:o.NC("undo","Undo"),order:1}]}));M(new w(A,{id:"default:undo",precondition:void 0}));const R=M(new C({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:d.eH.MenubarEditMenu,group:"1_do",title:o.NC({key:"miRedo",comment:["&& denotes a mnemonic"]},"&&Redo"),order:2},{menuId:d.eH.CommandPalette,group:"",title:o.NC("redo","Redo"),order:1}]}));M(new w(R,{id:"default:redo",precondition:void 0}));const O=M(new C({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:d.eH.MenubarSelectionMenu,group:"1_basic",title:o.NC({key:"miSelectAll",comment:["&& denotes a mnemonic"]},"&&Select All"),order:1},{menuId:d.eH.CommandPalette,group:"",title:o.NC("selectAll","Select All"),order:1}]}))},66007:(e,t,i)=>{"use strict";i.d(t,{Gl:()=>l,fo:()=>a,vu:()=>r});var n=i(72065),o=i(70666),s=i(98401);const r=(0,n.yh)("IWorkspaceEditService");class a{constructor(e){this.metadata=e}static convert(e){return e.edits.map((e=>{if(l.is(e))return l.lift(e);if(c.is(e))return c.lift(e);throw new Error("Unsupported edit")}))}}class l extends a{constructor(e,t,i,n){super(n),this.resource=e,this.textEdit=t,this.versionId=i}static is(e){return e instanceof l||(0,s.Kn)(e)&&o.o.isUri(e.resource)&&(0,s.Kn)(e.textEdit)}static lift(e){return e instanceof l?e:new l(e.resource,e.textEdit,e.versionId,e.metadata)}}class c extends a{constructor(e,t,i={},n){super(n),this.oldResource=e,this.newResource=t,this.options=i}static is(e){return e instanceof c||(0,s.Kn)(e)&&(Boolean(e.newResource)||Boolean(e.oldResource))}static lift(e){return e instanceof c?e:new c(e.oldResource,e.newResource,e.options,e.metadata)}}},11640:(e,t,i)=>{"use strict";i.d(t,{$:()=>n});const n=(0,i(72065).yh)("codeEditorService")},43407:(e,t,i)=>{"use strict";i.d(t,{Z:()=>n});class n{constructor(e,t,i){this._visiblePosition=e,this._visiblePositionScrollDelta=t,this._cursorPosition=i}static capture(e){let t=null,i=0;if(0!==e.getScrollTop()){const n=e.getVisibleRanges();if(n.length>0){t=n[0].getStartPosition();const o=e.getTopForPosition(t.lineNumber,t.column);i=e.getScrollTop()-o}}return new n(t,i,e.getPosition())}restore(e){if(this._visiblePosition){const t=e.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);e.setScrollTop(t+this._visiblePositionScrollDelta)}}restoreRelativeVerticalPositionOfCursor(e){const t=e.getPosition();if(!this._cursorPosition||!t)return;const i=e.getTopForLineNumber(t.lineNumber)-e.getTopForLineNumber(this._cursorPosition.lineNumber);e.setScrollTop(e.getScrollTop()+i)}}},27982:(e,t,i)=>{"use strict";i.d(t,{Gm:()=>Ao});var n=i(36357),o=i(16830),s=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},r=function(e,t){return function(i,n){t(i,n,e)}};let a=class{constructor(e,t){}dispose(){}};a.ID="editor.contrib.markerDecorations",a=s([r(1,n.i)],a),(0,o._K)(a.ID,a);var l=i(63580),c=i(65321),d=i(17301),h=i(4669),u=i(5976),g=i(66663),p=i(16268),m=i(9488),f=i(36248),_=i(1432),v=i(54534),b=i(66059);class C{constructor(e,t){this.key=e,this.migrate=t}apply(e){const t=C._read(e,this.key);this.migrate(t,(t=>C._read(e,t)),((t,i)=>C._write(e,t,i)))}static _read(e,t){if(void 0===e)return;const i=t.indexOf(".");if(i>=0){const n=t.substring(0,i);return this._read(e[n],t.substring(i+1))}return e[t]}static _write(e,t,i){const n=t.indexOf(".");if(n>=0){const o=t.substring(0,n);return e[o]=e[o]||{},void this._write(e[o],t.substring(n+1),i)}e[t]=i}}function w(e,t){C.items.push(new C(e,t))}function y(e,t){w(e,((i,n,o)=>{if(void 0!==i)for(const[s,r]of t)if(i===s)return void o(e,r)}))}C.items=[],y("wordWrap",[[!0,"on"],[!1,"off"]]),y("lineNumbers",[[!0,"on"],[!1,"off"]]),y("cursorBlinking",[["visible","solid"]]),y("renderWhitespace",[[!0,"boundary"],[!1,"none"]]),y("renderLineHighlight",[[!0,"line"],[!1,"none"]]),y("acceptSuggestionOnEnter",[[!0,"on"],[!1,"off"]]),y("tabCompletion",[[!1,"off"],[!0,"onlySnippets"]]),y("hover",[[!0,{enabled:!0}],[!1,{enabled:!1}]]),y("parameterHints",[[!0,{enabled:!0}],[!1,{enabled:!1}]]),y("autoIndent",[[!1,"advanced"],[!0,"full"]]),y("matchBrackets",[[!0,"always"],[!1,"never"]]),w("autoClosingBrackets",((e,t,i)=>{!1===e&&(i("autoClosingBrackets","never"),void 0===t("autoClosingQuotes")&&i("autoClosingQuotes","never"),void 0===t("autoSurround")&&i("autoSurround","never"))})),w("renderIndentGuides",((e,t,i)=>{void 0!==e&&(i("renderIndentGuides",void 0),void 0===t("guides.indentation")&&i("guides.indentation",!!e))})),w("highlightActiveIndentGuide",((e,t,i)=>{void 0!==e&&(i("highlightActiveIndentGuide",void 0),void 0===t("guides.highlightActiveIndentation")&&i("guides.highlightActiveIndentation",!!e))}));const S={method:"showMethods",function:"showFunctions",constructor:"showConstructors",deprecated:"showDeprecated",field:"showFields",variable:"showVariables",class:"showClasses",struct:"showStructs",interface:"showInterfaces",module:"showModules",property:"showProperties",event:"showEvents",operator:"showOperators",unit:"showUnits",value:"showValues",constant:"showConstants",enum:"showEnums",enumMember:"showEnumMembers",keyword:"showKeywords",text:"showWords",color:"showColors",file:"showFiles",reference:"showReferences",folder:"showFolders",typeParameter:"showTypeParameters",snippet:"showSnippets"};w("suggest.filteredTypes",((e,t,i)=>{if(e&&"object"==typeof e){for(const n of Object.entries(S)){!1===e[n[0]]&&void 0===t(`suggest.${n[1]}`)&&i(`suggest.${n[1]}`,!1)}i("suggest.filteredTypes",void 0)}})),w("quickSuggestions",((e,t,i)=>{if("boolean"==typeof e){const t=e?"on":"off";i("quickSuggestions",{comments:t,strings:t,other:t})}}));var L=i(37940),k=i(64141),x=i(82334),D=i(27374),N=i(31106),E=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},I=function(e,t){return function(i,n){t(i,n,e)}};let T=class extends u.JT{constructor(e,t,i,n){super(),this._accessibilityService=n,this._onDidChange=this._register(new h.Q5),this.onDidChange=this._onDidChange.event,this._onDidChangeFast=this._register(new h.Q5),this.onDidChangeFast=this._onDidChangeFast.event,this._isDominatedByLongLines=!1,this._viewLineCount=1,this._lineNumbersDigitCount=1,this._reservedHeight=0,this._computeOptionsMemory=new k.LJ,this.isSimpleWidget=e,this._containerObserver=this._register(new v.I(i,t.dimension)),this._rawOptions=P(t),this._validatedOptions=O.validateOptions(this._rawOptions),this.options=this._computeOptions(),this.options.get(10)&&this._containerObserver.startObserving(),this._register(x.C.onDidChangeZoomLevel((()=>this._recomputeOptions()))),this._register(L.n.onDidChangeTabFocus((()=>this._recomputeOptions()))),this._register(this._containerObserver.onDidChange((()=>this._recomputeOptions()))),this._register(b.g.onDidChange((()=>this._recomputeOptions()))),this._register(p.PixelRatio.onDidChange((()=>this._recomputeOptions()))),this._register(this._accessibilityService.onDidChangeScreenReaderOptimized((()=>this._recomputeOptions())))}_recomputeOptions(){const e=this._computeOptions(),t=O.checkEquals(this.options,e);null!==t&&(this.options=e,this._onDidChangeFast.fire(t),this._onDidChange.fire(t))}_computeOptions(){const e=this._readEnvConfiguration(),t=D.E4.createFromValidatedSettings(this._validatedOptions,e.pixelRatio,this.isSimpleWidget),i=this._readFontInfo(t),n={memory:this._computeOptionsMemory,outerWidth:e.outerWidth,outerHeight:e.outerHeight-this._reservedHeight,fontInfo:i,extraEditorClassName:e.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:e.emptySelectionClipboard,pixelRatio:e.pixelRatio,tabFocusMode:L.n.getTabFocusMode(),accessibilitySupport:e.accessibilitySupport};return O.computeOptions(this._validatedOptions,n)}_readEnvConfiguration(){return{extraEditorClassName:M(),outerWidth:this._containerObserver.getWidth(),outerHeight:this._containerObserver.getHeight(),emptySelectionClipboard:p.isWebKit||p.isFirefox,pixelRatio:p.PixelRatio.value,accessibilitySupport:this._accessibilityService.isScreenReaderOptimized()?2:this._accessibilityService.getAccessibilitySupport()}}_readFontInfo(e){return b.g.readFontInfo(e)}getRawOptions(){return this._rawOptions}updateOptions(e){const t=P(e);O.applyUpdate(this._rawOptions,t)&&(this._validatedOptions=O.validateOptions(this._rawOptions),this._recomputeOptions())}observeContainer(e){this._containerObserver.observe(e)}setIsDominatedByLongLines(e){this._isDominatedByLongLines!==e&&(this._isDominatedByLongLines=e,this._recomputeOptions())}setModelLineCount(e){const t=function(e){let t=0;for(;e;)e=Math.floor(e/10),t++;return t||1}(e);this._lineNumbersDigitCount!==t&&(this._lineNumbersDigitCount=t,this._recomputeOptions())}setViewLineCount(e){this._viewLineCount!==e&&(this._viewLineCount=e,this._recomputeOptions())}setReservedHeight(e){this._reservedHeight!==e&&(this._reservedHeight=e,this._recomputeOptions())}};function M(){let e="";return p.isSafari||p.isWebkitWebView||(e+="no-user-select "),p.isSafari&&(e+="no-minimap-shadow ",e+="enable-user-select "),_.dz&&(e+="mac "),e}T=E([I(3,N.F)],T);class A{constructor(){this._values=[]}_read(e){return this._values[e]}get(e){return this._values[e]}_write(e,t){this._values[e]=t}}class R{constructor(){this._values=[]}_read(e){if(e>=this._values.length)throw new Error("Cannot read uninitialized value");return this._values[e]}get(e){return this._read(e)}_write(e,t){this._values[e]=t}}class O{static validateOptions(e){const t=new A;for(const i of k.Bc){const n="_never_"===i.name?void 0:e[i.name];t._write(i.id,i.validate(n))}return t}static computeOptions(e,t){const i=new R;for(const n of k.Bc)i._write(n.id,n.compute(t,i,e._read(n.id)));return i}static _deepEquals(e,t){if("object"!=typeof e||"object"!=typeof t||!e||!t)return e===t;if(Array.isArray(e)||Array.isArray(t))return!(!Array.isArray(e)||!Array.isArray(t))&&m.fS(e,t);if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const i in e)if(!O._deepEquals(e[i],t[i]))return!1;return!0}static checkEquals(e,t){const i=[];let n=!1;for(const o of k.Bc){const s=!O._deepEquals(e._read(o.id),t._read(o.id));i[o.id]=s,s&&(n=!0)}return n?new k.Bb(i):null}static applyUpdate(e,t){let i=!1;for(const n of k.Bc)if(t.hasOwnProperty(n.name)){const o=n.applyUpdate(e[n.name],t[n.name]);e[n.name]=o.newValue,i=i||o.didChange}return i}}function P(e){const t=f.I8(e);return function(e){C.items.forEach((t=>t.apply(e)))}(t),t}var F=i(11640),B=i(3860),V=i(38626),W=i(10553),H=i(7317),z=i(15393),j=i(29994);class U extends u.JT{constructor(){super(),this._shouldRender=!0}shouldRender(){return this._shouldRender}forceShouldRender(){this._shouldRender=!0}setShouldRender(){this._shouldRender=!0}onDidRender(){this._shouldRender=!1}onCompositionStart(e){return!1}onCompositionEnd(e){return!1}onConfigurationChanged(e){return!1}onCursorStateChanged(e){return!1}onDecorationsChanged(e){return!1}onFlushed(e){return!1}onFocusChanged(e){return!1}onLanguageConfigurationChanged(e){return!1}onLineMappingChanged(e){return!1}onLinesChanged(e){return!1}onLinesDeleted(e){return!1}onLinesInserted(e){return!1}onRevealRangeRequest(e){return!1}onScrollChanged(e){return!1}onThemeChanged(e){return!1}onTokensChanged(e){return!1}onTokensColorsChanged(e){return!1}onZonesChanged(e){return!1}handleEvents(e){let t=!1;for(let i=0,n=e.length;i<n;i++){const n=e[i];switch(n.type){case 0:this.onCompositionStart(n)&&(t=!0);break;case 1:this.onCompositionEnd(n)&&(t=!0);break;case 2:this.onConfigurationChanged(n)&&(t=!0);break;case 3:this.onCursorStateChanged(n)&&(t=!0);break;case 4:this.onDecorationsChanged(n)&&(t=!0);break;case 5:this.onFlushed(n)&&(t=!0);break;case 6:this.onFocusChanged(n)&&(t=!0);break;case 7:this.onLanguageConfigurationChanged(n)&&(t=!0);break;case 8:this.onLineMappingChanged(n)&&(t=!0);break;case 9:this.onLinesChanged(n)&&(t=!0);break;case 10:this.onLinesDeleted(n)&&(t=!0);break;case 11:this.onLinesInserted(n)&&(t=!0);break;case 12:this.onRevealRangeRequest(n)&&(t=!0);break;case 13:this.onScrollChanged(n)&&(t=!0);break;case 15:this.onTokensChanged(n)&&(t=!0);break;case 14:this.onThemeChanged(n)&&(t=!0);break;case 16:this.onTokensColorsChanged(n)&&(t=!0);break;case 17:this.onZonesChanged(n)&&(t=!0);break;default:console.info("View received unknown event: "),console.info(n)}}t&&(this._shouldRender=!0)}}class K extends U{constructor(e){super(),this._context=e,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}}class ${static write(e,t){e.setAttribute("data-mprt",String(t))}static read(e){const t=e.getAttribute("data-mprt");return null===t?0:parseInt(t,10)}static collect(e,t){const i=[];let n=0;for(;e&&e!==document.body&&e!==t;)e.nodeType===e.ELEMENT_NODE&&(i[n++]=this.read(e)),e=e.parentElement;const o=new Uint8Array(n);for(let s=0;s<n;s++)o[s]=i[n-s-1];return o}}class q extends class{constructor(e,t){this._restrictedRenderingContextBrand=void 0,this._viewLayout=e,this.viewportData=t,this.scrollWidth=this._viewLayout.getScrollWidth(),this.scrollHeight=this._viewLayout.getScrollHeight(),this.visibleRange=this.viewportData.visibleRange,this.bigNumbersDelta=this.viewportData.bigNumbersDelta;const i=this._viewLayout.getCurrentViewport();this.scrollTop=i.top,this.scrollLeft=i.left,this.viewportWidth=i.width,this.viewportHeight=i.height}getScrolledTopFromAbsoluteTop(e){return e-this.scrollTop}getVerticalOffsetForLineNumber(e){return this._viewLayout.getVerticalOffsetForLineNumber(e)}getDecorationsInViewport(){return this.viewportData.getDecorationsInViewport()}}{constructor(e,t,i){super(e,t),this._renderingContextBrand=void 0,this._viewLines=i}linesVisibleRangesForRange(e,t){return this._viewLines.linesVisibleRangesForRange(e,t)}visibleRangeForPosition(e){return this._viewLines.visibleRangeForPosition(e)}}class G{constructor(e,t,i){this.outsideRenderedLine=e,this.lineNumber=t,this.ranges=i}}class Q{constructor(e,t){this._horizontalRangeBrand=void 0,this.left=Math.round(e),this.width=Math.round(t)}static from(e){const t=new Array(e.length);for(let i=0,n=e.length;i<n;i++){const n=e[i];t[i]=new Q(n.left,n.width)}return t}toString(){return`[${this.left},${this.width}]`}}class Z{constructor(e,t){this._floatHorizontalRangeBrand=void 0,this.left=e,this.width=t}toString(){return`[${this.left},${this.width}]`}static compare(e,t){return e.left-t.left}}class Y{constructor(e,t){this.outsideRenderedLine=e,this.originalLeft=t,this.left=Math.round(this.originalLeft)}}class J{constructor(e,t){this.outsideRenderedLine=e,this.ranges=t}}class X{static _createRange(){return this._handyReadyRange||(this._handyReadyRange=document.createRange()),this._handyReadyRange}static _detachRange(e,t){e.selectNodeContents(t)}static _readClientRects(e,t,i,n,o){const s=this._createRange();try{return s.setStart(e,t),s.setEnd(i,n),s.getClientRects()}catch(r){return null}finally{this._detachRange(s,o)}}static _mergeAdjacentRanges(e){if(1===e.length)return e;e.sort(Z.compare);const t=[];let i=0,n=e[0];for(let o=1,s=e.length;o<s;o++){const s=e[o];n.left+n.width+.9>=s.left?n.width=Math.max(n.width,s.left+s.width-n.left):(t[i++]=n,n=s)}return t[i++]=n,t}static _createHorizontalRangesFromClientRects(e,t,i){if(!e||0===e.length)return null;const n=[];for(let o=0,s=e.length;o<s;o++){const s=e[o];n[o]=new Z(Math.max(0,(s.left-t)/i),s.width/i)}return this._mergeAdjacentRanges(n)}static readHorizontalRanges(e,t,i,n,o,s,r,a){const l=e.children.length-1;if(0>l)return null;if((t=Math.min(l,Math.max(0,t)))===(n=Math.min(l,Math.max(0,n)))&&i===o&&0===i&&!e.children[t].firstChild){const i=e.children[t].getClientRects();return this._createHorizontalRangesFromClientRects(i,s,r)}t!==n&&n>0&&0===o&&(n--,o=1073741824);let c=e.children[t].firstChild,d=e.children[n].firstChild;if(c&&d||(!c&&0===i&&t>0&&(c=e.children[t-1].firstChild,i=1073741824),!d&&0===o&&n>0&&(d=e.children[n-1].firstChild,o=1073741824)),!c||!d)return null;i=Math.min(c.textContent.length,Math.max(0,i)),o=Math.min(d.textContent.length,Math.max(0,o));const h=this._readClientRects(c,i,d,o,a);return this._createHorizontalRangesFromClientRects(h,s,r)}}var ee=i(92550),te=i(72202),ie=i(92321);const ne=!!_.tY||!(_.IJ||p.isFirefox||p.isSafari);let oe=!0;class se{constructor(e,t){this._domNode=e,this._clientRectDeltaLeft=0,this._clientRectScale=1,this._clientRectRead=!1,this.endNode=t}readClientRect(){if(!this._clientRectRead){this._clientRectRead=!0;const e=this._domNode.getBoundingClientRect();this._clientRectDeltaLeft=e.left,this._clientRectScale=e.width/this._domNode.offsetWidth}}get clientRectDeltaLeft(){return this._clientRectRead||this.readClientRect(),this._clientRectDeltaLeft}get clientRectScale(){return this._clientRectRead||this.readClientRect(),this._clientRectScale}}class re{constructor(e,t){this.themeType=t;const i=e.options,n=i.get(46);this.renderWhitespace=i.get(90),this.renderControlCharacters=i.get(85),this.spaceWidth=n.spaceWidth,this.middotWidth=n.middotWidth,this.wsmiddotWidth=n.wsmiddotWidth,this.useMonospaceOptimizations=n.isMonospace&&!i.get(29),this.canUseHalfwidthRightwardsArrow=n.canUseHalfwidthRightwardsArrow,this.lineHeight=i.get(61),this.stopRenderingLineAfter=i.get(107),this.fontLigatures=i.get(47)}equals(e){return this.themeType===e.themeType&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.fontLigatures===e.fontLigatures}}class ae{constructor(e){this._options=e,this._isMaybeInvalid=!0,this._renderedViewLine=null}getDomNode(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null}setDomNode(e){if(!this._renderedViewLine)throw new Error("I have no rendered view line to set the dom node to...");this._renderedViewLine.domNode=(0,V.X)(e)}onContentChanged(){this._isMaybeInvalid=!0}onTokensChanged(){this._isMaybeInvalid=!0}onDecorationsChanged(){this._isMaybeInvalid=!0}onOptionsChanged(e){this._isMaybeInvalid=!0,this._options=e}onSelectionChanged(){return!(!(0,ie.c3)(this._options.themeType)&&"selection"!==this._options.renderWhitespace)&&(this._isMaybeInvalid=!0,!0)}renderLine(e,t,i,n){if(!1===this._isMaybeInvalid)return!1;this._isMaybeInvalid=!1;const o=i.getViewLineRenderingData(e),s=this._options,r=ee.Kp.filter(o.inlineDecorations,e,o.minColumn,o.maxColumn);let a=null;if((0,ie.c3)(s.themeType)||"selection"===this._options.renderWhitespace){const t=i.selections;for(const i of t){if(i.endLineNumber<e||i.startLineNumber>e)continue;const t=i.startLineNumber===e?i.startColumn:o.minColumn,n=i.endLineNumber===e?i.endColumn:o.maxColumn;t<n&&((0,ie.c3)(s.themeType)||"selection"!==this._options.renderWhitespace?r.push(new ee.Kp(t,n,"inline-selected-text",0)):(a||(a=[]),a.push(new te.zG(t-1,n-1))))}}const l=new te.IJ(s.useMonospaceOptimizations,s.canUseHalfwidthRightwardsArrow,o.content,o.continuesWithWrappedLine,o.isBasicASCII,o.containsRTL,o.minColumn-1,o.tokens,r,o.tabSize,o.startVisibleColumn,s.spaceWidth,s.middotWidth,s.wsmiddotWidth,s.stopRenderingLineAfter,s.renderWhitespace,s.renderControlCharacters,s.fontLigatures!==k.n0.OFF,a);if(this._renderedViewLine&&this._renderedViewLine.input.equals(l))return!1;n.appendASCIIString('<div style="top:'),n.appendASCIIString(String(t)),n.appendASCIIString("px;height:"),n.appendASCIIString(String(this._options.lineHeight)),n.appendASCIIString('px;" class="'),n.appendASCIIString(ae.CLASS_NAME),n.appendASCIIString('">');const c=(0,te.d1)(l,n);n.appendASCIIString("</div>");let d=null;return oe&&ne&&o.isBasicASCII&&s.useMonospaceOptimizations&&0===c.containsForeignElements&&o.content.length<300&&l.lineTokens.getCount()<100&&(d=new le(this._renderedViewLine?this._renderedViewLine.domNode:null,l,c.characterMapping)),d||(d=he(this._renderedViewLine?this._renderedViewLine.domNode:null,l,c.characterMapping,c.containsRTL,c.containsForeignElements)),this._renderedViewLine=d,!0}layoutLine(e,t){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(t),this._renderedViewLine.domNode.setHeight(this._options.lineHeight))}getWidth(){return this._renderedViewLine?this._renderedViewLine.getWidth():0}getWidthIsFast(){return!this._renderedViewLine||this._renderedViewLine.getWidthIsFast()}needsMonospaceFontCheck(){return!!this._renderedViewLine&&this._renderedViewLine instanceof le}monospaceAssumptionsAreValid(){return this._renderedViewLine&&this._renderedViewLine instanceof le?this._renderedViewLine.monospaceAssumptionsAreValid():oe}onMonospaceAssumptionsInvalidated(){this._renderedViewLine&&this._renderedViewLine instanceof le&&(this._renderedViewLine=this._renderedViewLine.toSlowRenderedLine())}getVisibleRangesForRange(e,t,i,n){if(!this._renderedViewLine)return null;t=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,t)),i=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,i));const o=this._renderedViewLine.input.stopRenderingLineAfter;let s=!1;-1!==o&&t>o+1&&i>o+1&&(s=!0),-1!==o&&t>o+1&&(t=o+1),-1!==o&&i>o+1&&(i=o+1);const r=this._renderedViewLine.getVisibleRangesForRange(e,t,i,n);return r&&r.length>0?new J(s,r):null}getColumnOfNodeOffset(e,t,i){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(e,t,i):1}}ae.CLASS_NAME="view-line";class le{constructor(e,t,i){this.domNode=e,this.input=t,this._characterMapping=i,this._charWidth=t.spaceWidth}getWidth(){return Math.round(this._getCharPosition(this._characterMapping.length))}getWidthIsFast(){return!0}monospaceAssumptionsAreValid(){if(!this.domNode)return oe;const e=this.getWidth(),t=this.domNode.domNode.firstChild.offsetWidth;return Math.abs(e-t)>=2&&(console.warn("monospace assumptions have been violated, therefore disabling monospace optimizations!"),oe=!1),oe}toSlowRenderedLine(){return he(this.domNode,this.input,this._characterMapping,!1,0)}getVisibleRangesForRange(e,t,i,n){const o=this._getCharPosition(t),s=this._getCharPosition(i);return[new Z(o,s-o)]}_getCharPosition(e){const t=this._characterMapping.getHorizontalOffset(e);return this._charWidth*t}getColumnOfNodeOffset(e,t,i){const n=t.textContent.length;let o=-1;for(;t;)t=t.previousSibling,o++;return this._characterMapping.getColumn(new te.Nd(o,i),n)}}class ce{constructor(e,t,i,n,o){if(this.domNode=e,this.input=t,this._characterMapping=i,this._isWhitespaceOnly=/^\s*$/.test(t.lineContent),this._containsForeignElements=o,this._cachedWidth=-1,this._pixelOffsetCache=null,!n||0===this._characterMapping.length){this._pixelOffsetCache=new Float32Array(Math.max(2,this._characterMapping.length+1));for(let e=0,t=this._characterMapping.length;e<=t;e++)this._pixelOffsetCache[e]=-1}}_getReadingTarget(e){return e.domNode.firstChild}getWidth(){return this.domNode?(-1===this._cachedWidth&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth),this._cachedWidth):0}getWidthIsFast(){return-1!==this._cachedWidth}getVisibleRangesForRange(e,t,i,n){if(!this.domNode)return null;if(null!==this._pixelOffsetCache){const o=this._readPixelOffset(this.domNode,e,t,n);if(-1===o)return null;const s=this._readPixelOffset(this.domNode,e,i,n);return-1===s?null:[new Z(o,s-o)]}return this._readVisibleRangesForRange(this.domNode,e,t,i,n)}_readVisibleRangesForRange(e,t,i,n,o){if(i===n){const n=this._readPixelOffset(e,t,i,o);return-1===n?null:[new Z(n,0)]}return this._readRawVisibleRangesForRange(e,i,n,o)}_readPixelOffset(e,t,i,n){if(0===this._characterMapping.length){if(0===this._containsForeignElements)return 0;if(2===this._containsForeignElements)return 0;if(1===this._containsForeignElements)return this.getWidth();const t=this._getReadingTarget(e);return t.firstChild?t.firstChild.offsetWidth:0}if(null!==this._pixelOffsetCache){const o=this._pixelOffsetCache[i];if(-1!==o)return o;const s=this._actualReadPixelOffset(e,t,i,n);return this._pixelOffsetCache[i]=s,s}return this._actualReadPixelOffset(e,t,i,n)}_actualReadPixelOffset(e,t,i,n){if(0===this._characterMapping.length){const t=X.readHorizontalRanges(this._getReadingTarget(e),0,0,0,0,n.clientRectDeltaLeft,n.clientRectScale,n.endNode);return t&&0!==t.length?t[0].left:-1}if(i===this._characterMapping.length&&this._isWhitespaceOnly&&0===this._containsForeignElements)return this.getWidth();const o=this._characterMapping.getDomPosition(i),s=X.readHorizontalRanges(this._getReadingTarget(e),o.partIndex,o.charIndex,o.partIndex,o.charIndex,n.clientRectDeltaLeft,n.clientRectScale,n.endNode);if(!s||0===s.length)return-1;const r=s[0].left;if(this.input.isBasicASCII){const e=this._characterMapping.getHorizontalOffset(i),t=Math.round(this.input.spaceWidth*e);if(Math.abs(t-r)<=1)return t}return r}_readRawVisibleRangesForRange(e,t,i,n){if(1===t&&i===this._characterMapping.length)return[new Z(0,this.getWidth())];const o=this._characterMapping.getDomPosition(t),s=this._characterMapping.getDomPosition(i);return X.readHorizontalRanges(this._getReadingTarget(e),o.partIndex,o.charIndex,s.partIndex,s.charIndex,n.clientRectDeltaLeft,n.clientRectScale,n.endNode)}getColumnOfNodeOffset(e,t,i){const n=t.textContent.length;let o=-1;for(;t;)t=t.previousSibling,o++;return this._characterMapping.getColumn(new te.Nd(o,i),n)}}class de extends ce{_readVisibleRangesForRange(e,t,i,n,o){const s=super._readVisibleRangesForRange(e,t,i,n,o);if(!s||0===s.length||i===n||1===i&&n===this._characterMapping.length)return s;if(!this.input.containsRTL){const i=this._readPixelOffset(e,t,n,o);if(-1!==i){const e=s[s.length-1];e.left<i&&(e.width=i-e.left)}}return s}}const he=p.isWebKit?ue:ge;function ue(e,t,i,n,o){return new de(e,t,i,n,o)}function ge(e,t,i,n,o){return new ce(e,t,i,n,o)}var pe,me=i(50187),fe=i(24314),_e=i(7988),ve=i(47128);class be{constructor(e=null){this.hitTarget=e,this.type=0}}class Ce{constructor(e,t,i){this.position=e,this.spanNode=t,this.injectedText=i,this.type=1}}!function(e){e.createFromDOMInfo=function(e,t,i){const n=e.getPositionFromDOMInfo(t,i);return n?new Ce(n,t,null):new be(t)}}(pe||(pe={}));class we{constructor(e,t){this.lastViewCursorsRenderData=e,this.lastTextareaPosition=t}}class ye{static _deduceRage(e,t=null){return!t&&e?new fe.e(e.lineNumber,e.column,e.lineNumber,e.column):null!=t?t:null}static createUnknown(e,t,i){return{type:0,element:e,mouseColumn:t,position:i,range:this._deduceRage(i)}}static createTextarea(e,t){return{type:1,element:e,mouseColumn:t,position:null,range:null}}static createMargin(e,t,i,n,o,s){return{type:e,element:t,mouseColumn:i,position:n,range:o,detail:s}}static createViewZone(e,t,i,n,o){return{type:e,element:t,mouseColumn:i,position:n,range:this._deduceRage(n),detail:o}}static createContentText(e,t,i,n,o){return{type:6,element:e,mouseColumn:t,position:i,range:this._deduceRage(i,n),detail:o}}static createContentEmpty(e,t,i,n){return{type:7,element:e,mouseColumn:t,position:i,range:this._deduceRage(i),detail:n}}static createContentWidget(e,t,i){return{type:9,element:e,mouseColumn:t,position:null,range:null,detail:i}}static createScrollbar(e,t,i){return{type:11,element:e,mouseColumn:t,position:i,range:this._deduceRage(i)}}static createOverlayWidget(e,t,i){return{type:12,element:e,mouseColumn:t,position:null,range:null,detail:i}}static createOutsideEditor(e,t){return{type:13,element:null,mouseColumn:e,position:t,range:this._deduceRage(t)}}static _typeToString(e){return 1===e?"TEXTAREA":2===e?"GUTTER_GLYPH_MARGIN":3===e?"GUTTER_LINE_NUMBERS":4===e?"GUTTER_LINE_DECORATIONS":5===e?"GUTTER_VIEW_ZONE":6===e?"CONTENT_TEXT":7===e?"CONTENT_EMPTY":8===e?"CONTENT_VIEW_ZONE":9===e?"CONTENT_WIDGET":10===e?"OVERVIEW_RULER":11===e?"SCROLLBAR":12===e?"OVERLAY_WIDGET":"UNKNOWN"}static toString(e){return this._typeToString(e.type)+": "+e.position+" - "+e.range+" - "+JSON.stringify(e.detail)}}class Se{static isTextArea(e){return 2===e.length&&3===e[0]&&6===e[1]}static isChildOfViewLines(e){return e.length>=4&&3===e[0]&&7===e[3]}static isStrictChildOfViewLines(e){return e.length>4&&3===e[0]&&7===e[3]}static isChildOfScrollableElement(e){return e.length>=2&&3===e[0]&&5===e[1]}static isChildOfMinimap(e){return e.length>=2&&3===e[0]&&8===e[1]}static isChildOfContentWidgets(e){return e.length>=4&&3===e[0]&&1===e[3]}static isChildOfOverflowingContentWidgets(e){return e.length>=1&&2===e[0]}static isChildOfOverlayWidgets(e){return e.length>=2&&3===e[0]&&4===e[1]}}class Le{constructor(e,t,i){this.viewModel=e.viewModel;const n=e.configuration.options;this.layoutInfo=n.get(133),this.viewDomNode=t.viewDomNode,this.lineHeight=n.get(61),this.stickyTabStops=n.get(106),this.typicalHalfwidthCharacterWidth=n.get(46).typicalHalfwidthCharacterWidth,this.lastRenderData=i,this._context=e,this._viewHelper=t}getZoneAtCoord(e){return Le.getZoneAtCoord(this._context,e)}static getZoneAtCoord(e,t){const i=e.viewLayout.getWhitespaceAtVerticalOffset(t);if(i){const n=i.verticalOffset+i.height/2,o=e.viewModel.getLineCount();let s,r=null,a=null;return i.afterLineNumber!==o&&(a=new me.L(i.afterLineNumber+1,1)),i.afterLineNumber>0&&(r=new me.L(i.afterLineNumber,e.viewModel.getLineMaxColumn(i.afterLineNumber))),s=null===a?r:null===r?a:t<n?r:a,{viewZoneId:i.id,afterLineNumber:i.afterLineNumber,positionBefore:r,positionAfter:a,position:s}}return null}getFullLineRangeAtCoord(e){if(this._context.viewLayout.isAfterLines(e)){const e=this._context.viewModel.getLineCount(),t=this._context.viewModel.getLineMaxColumn(e);return{range:new fe.e(e,t,e,t),isAfterLines:!0}}const t=this._context.viewLayout.getLineNumberAtVerticalOffset(e),i=this._context.viewModel.getLineMaxColumn(t);return{range:new fe.e(t,1,t,i),isAfterLines:!1}}getLineNumberAtVerticalOffset(e){return this._context.viewLayout.getLineNumberAtVerticalOffset(e)}isAfterLines(e){return this._context.viewLayout.isAfterLines(e)}isInTopPadding(e){return this._context.viewLayout.isInTopPadding(e)}isInBottomPadding(e){return this._context.viewLayout.isInBottomPadding(e)}getVerticalOffsetForLineNumber(e){return this._context.viewLayout.getVerticalOffsetForLineNumber(e)}findAttribute(e,t){return Le._findAttribute(e,t,this._viewHelper.viewDomNode)}static _findAttribute(e,t,i){for(;e&&e!==document.body;){if(e.hasAttribute&&e.hasAttribute(t))return e.getAttribute(t);if(e===i)return null;e=e.parentNode}return null}getLineWidth(e){return this._viewHelper.getLineWidth(e)}visibleRangeForPosition(e,t){return this._viewHelper.visibleRangeForPosition(e,t)}getPositionFromDOMInfo(e,t){return this._viewHelper.getPositionFromDOMInfo(e,t)}getCurrentScrollTop(){return this._context.viewLayout.getCurrentScrollTop()}getCurrentScrollLeft(){return this._context.viewLayout.getCurrentScrollLeft()}}class ke extends class{constructor(e,t,i,n){this.editorPos=t,this.pos=i,this.relativePos=n,this.mouseVerticalOffset=Math.max(0,e.getCurrentScrollTop()+this.relativePos.y),this.mouseContentHorizontalOffset=e.getCurrentScrollLeft()+this.relativePos.x-e.layoutInfo.contentLeft,this.isInMarginArea=this.relativePos.x<e.layoutInfo.contentLeft&&this.relativePos.x>=e.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,Ne._getMouseColumn(this.mouseContentHorizontalOffset,e.typicalHalfwidthCharacterWidth))}}{constructor(e,t,i,n,o){super(e,t,i,n),this._ctx=e,o?(this.target=o,this.targetPath=$.collect(o,e.viewDomNode)):(this.target=null,this.targetPath=new Uint8Array(0))}toString(){return`pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), relativePos(${this.relativePos.x},${this.relativePos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset}\n\ttarget: ${this.target?this.target.outerHTML:null}`}_getMouseColumn(e=null){return e&&e.column<this._ctx.viewModel.getLineMaxColumn(e.lineNumber)?_e.i.visibleColumnFromColumn(this._ctx.viewModel.getLineContent(e.lineNumber),e.column,this._ctx.viewModel.model.getOptions().tabSize)+1:this.mouseColumn}fulfillUnknown(e=null){return ye.createUnknown(this.target,this._getMouseColumn(e),e)}fulfillTextarea(){return ye.createTextarea(this.target,this._getMouseColumn())}fulfillMargin(e,t,i,n){return ye.createMargin(e,this.target,this._getMouseColumn(t),t,i,n)}fulfillViewZone(e,t,i){return ye.createViewZone(e,this.target,this._getMouseColumn(t),t,i)}fulfillContentText(e,t,i){return ye.createContentText(this.target,this._getMouseColumn(e),e,t,i)}fulfillContentEmpty(e,t){return ye.createContentEmpty(this.target,this._getMouseColumn(e),e,t)}fulfillContentWidget(e){return ye.createContentWidget(this.target,this._getMouseColumn(),e)}fulfillScrollbar(e){return ye.createScrollbar(this.target,this._getMouseColumn(e),e)}fulfillOverlayWidget(e){return ye.createOverlayWidget(this.target,this._getMouseColumn(),e)}withTarget(e){return new ke(this._ctx,this.editorPos,this.pos,this.relativePos,e)}}const xe={isAfterLines:!0};function De(e){return{isAfterLines:!1,horizontalDistanceToText:e}}class Ne{constructor(e,t){this._context=e,this._viewHelper=t}mouseTargetIsWidget(e){const t=e.target,i=$.collect(t,this._viewHelper.viewDomNode);return!(!Se.isChildOfContentWidgets(i)&&!Se.isChildOfOverflowingContentWidgets(i))||!!Se.isChildOfOverlayWidgets(i)}createMouseTarget(e,t,i,n,o){const s=new Le(this._context,this._viewHelper,e),r=new ke(s,t,i,n,o);try{return Ne._createMouseTarget(s,r,!1)}catch(a){return r.fulfillUnknown()}}static _createMouseTarget(e,t,i){if(null===t.target){if(i)return t.fulfillUnknown();const n=Ne._doHitTest(e,t);return 1===n.type?Ne.createMouseTargetFromHitTestPosition(e,t,n.spanNode,n.position,n.injectedText):this._createMouseTarget(e,t.withTarget(n.hitTarget),!0)}const n=t;let o=null;return o=o||Ne._hitTestContentWidget(e,n),o=o||Ne._hitTestOverlayWidget(e,n),o=o||Ne._hitTestMinimap(e,n),o=o||Ne._hitTestScrollbarSlider(e,n),o=o||Ne._hitTestViewZone(e,n),o=o||Ne._hitTestMargin(e,n),o=o||Ne._hitTestViewCursor(e,n),o=o||Ne._hitTestTextArea(e,n),o=o||Ne._hitTestViewLines(e,n,i),o=o||Ne._hitTestScrollbar(e,n),o||t.fulfillUnknown()}static _hitTestContentWidget(e,t){if(Se.isChildOfContentWidgets(t.targetPath)||Se.isChildOfOverflowingContentWidgets(t.targetPath)){const i=e.findAttribute(t.target,"widgetId");return i?t.fulfillContentWidget(i):t.fulfillUnknown()}return null}static _hitTestOverlayWidget(e,t){if(Se.isChildOfOverlayWidgets(t.targetPath)){const i=e.findAttribute(t.target,"widgetId");return i?t.fulfillOverlayWidget(i):t.fulfillUnknown()}return null}static _hitTestViewCursor(e,t){if(t.target){const i=e.lastRenderData.lastViewCursorsRenderData;for(const e of i)if(t.target===e.domNode)return t.fulfillContentText(e.position,null,{mightBeForeignElement:!1,injectedText:null})}if(t.isInContentArea){const i=e.lastRenderData.lastViewCursorsRenderData,n=t.mouseContentHorizontalOffset,o=t.mouseVerticalOffset;for(const s of i){if(n<s.contentLeft)continue;if(n>s.contentLeft+s.width)continue;const i=e.getVerticalOffsetForLineNumber(s.position.lineNumber);if(i<=o&&o<=i+s.height)return t.fulfillContentText(s.position,null,{mightBeForeignElement:!1,injectedText:null})}}return null}static _hitTestViewZone(e,t){const i=e.getZoneAtCoord(t.mouseVerticalOffset);if(i){const e=t.isInContentArea?8:5;return t.fulfillViewZone(e,i.position,i)}return null}static _hitTestTextArea(e,t){return Se.isTextArea(t.targetPath)?e.lastRenderData.lastTextareaPosition?t.fulfillContentText(e.lastRenderData.lastTextareaPosition,null,{mightBeForeignElement:!1,injectedText:null}):t.fulfillTextarea():null}static _hitTestMargin(e,t){if(t.isInMarginArea){const i=e.getFullLineRangeAtCoord(t.mouseVerticalOffset),n=i.range.getStartPosition();let o=Math.abs(t.relativePos.x);const s={isAfterLines:i.isAfterLines,glyphMarginLeft:e.layoutInfo.glyphMarginLeft,glyphMarginWidth:e.layoutInfo.glyphMarginWidth,lineNumbersWidth:e.layoutInfo.lineNumbersWidth,offsetX:o};return o-=e.layoutInfo.glyphMarginLeft,o<=e.layoutInfo.glyphMarginWidth?t.fulfillMargin(2,n,i.range,s):(o-=e.layoutInfo.glyphMarginWidth,o<=e.layoutInfo.lineNumbersWidth?t.fulfillMargin(3,n,i.range,s):(o-=e.layoutInfo.lineNumbersWidth,t.fulfillMargin(4,n,i.range,s)))}return null}static _hitTestViewLines(e,t,i){if(!Se.isChildOfViewLines(t.targetPath))return null;if(e.isInTopPadding(t.mouseVerticalOffset))return t.fulfillContentEmpty(new me.L(1,1),xe);if(e.isAfterLines(t.mouseVerticalOffset)||e.isInBottomPadding(t.mouseVerticalOffset)){const i=e.viewModel.getLineCount(),n=e.viewModel.getLineMaxColumn(i);return t.fulfillContentEmpty(new me.L(i,n),xe)}if(i){if(Se.isStrictChildOfViewLines(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset);if(0===e.viewModel.getLineLength(i)){const n=e.getLineWidth(i),o=De(t.mouseContentHorizontalOffset-n);return t.fulfillContentEmpty(new me.L(i,1),o)}const n=e.getLineWidth(i);if(t.mouseContentHorizontalOffset>=n){const o=De(t.mouseContentHorizontalOffset-n),s=new me.L(i,e.viewModel.getLineMaxColumn(i));return t.fulfillContentEmpty(s,o)}}return t.fulfillUnknown()}const n=Ne._doHitTest(e,t);return 1===n.type?Ne.createMouseTargetFromHitTestPosition(e,t,n.spanNode,n.position,n.injectedText):this._createMouseTarget(e,t.withTarget(n.hitTarget),!0)}static _hitTestMinimap(e,t){if(Se.isChildOfMinimap(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),n=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new me.L(i,n))}return null}static _hitTestScrollbarSlider(e,t){if(Se.isChildOfScrollableElement(t.targetPath)&&t.target&&1===t.target.nodeType){const i=t.target.className;if(i&&/\b(slider|scrollbar)\b/.test(i)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),n=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new me.L(i,n))}}return null}static _hitTestScrollbar(e,t){if(Se.isChildOfScrollableElement(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),n=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new me.L(i,n))}return null}getMouseColumn(e){const t=this._context.configuration.options,i=t.get(133),n=this._context.viewLayout.getCurrentScrollLeft()+e.x-i.contentLeft;return Ne._getMouseColumn(n,t.get(46).typicalHalfwidthCharacterWidth)}static _getMouseColumn(e,t){if(e<0)return 1;return Math.round(e/t)+1}static createMouseTargetFromHitTestPosition(e,t,i,n,o){const s=n.lineNumber,r=n.column,a=e.getLineWidth(s);if(t.mouseContentHorizontalOffset>a){const e=De(t.mouseContentHorizontalOffset-a);return t.fulfillContentEmpty(n,e)}const l=e.visibleRangeForPosition(s,r);if(!l)return t.fulfillUnknown(n);const c=l.left;if(t.mouseContentHorizontalOffset===c)return t.fulfillContentText(n,null,{mightBeForeignElement:!!o,injectedText:o});const d=[];if(d.push({offset:l.left,column:r}),r>1){const t=e.visibleRangeForPosition(s,r-1);t&&d.push({offset:t.left,column:r-1})}if(r<e.viewModel.getLineMaxColumn(s)){const t=e.visibleRangeForPosition(s,r+1);t&&d.push({offset:t.left,column:r+1})}d.sort(((e,t)=>e.offset-t.offset));const h=t.pos.toClientCoordinates(),u=i.getBoundingClientRect(),g=u.left<=h.clientX&&h.clientX<=u.right;for(let p=1;p<d.length;p++){const e=d[p-1],i=d[p];if(e.offset<=t.mouseContentHorizontalOffset&&t.mouseContentHorizontalOffset<=i.offset){const n=new fe.e(s,e.column,s,i.column),r=Math.abs(e.offset-t.mouseContentHorizontalOffset)<Math.abs(i.offset-t.mouseContentHorizontalOffset)?new me.L(s,e.column):new me.L(s,i.column);return t.fulfillContentText(r,n,{mightBeForeignElement:!g||!!o,injectedText:o})}}return t.fulfillContentText(n,null,{mightBeForeignElement:!g||!!o,injectedText:o})}static _doHitTestWithCaretRangeFromPoint(e,t){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),n=e.getVerticalOffsetForLineNumber(i)+Math.floor(e.lineHeight/2);let o=t.pos.y+(n-t.mouseVerticalOffset);o<=t.editorPos.y&&(o=t.editorPos.y+1),o>=t.editorPos.y+t.editorPos.height&&(o=t.editorPos.y+t.editorPos.height-1);const s=new j.YN(t.pos.x,o),r=this._actualDoHitTestWithCaretRangeFromPoint(e,s.toClientCoordinates());return 1===r.type?r:this._actualDoHitTestWithCaretRangeFromPoint(e,t.pos.toClientCoordinates())}static _actualDoHitTestWithCaretRangeFromPoint(e,t){const i=c.Ay(e.viewDomNode);let n;if(n=i?void 0===i.caretRangeFromPoint?function(e,t,i){const n=document.createRange();let o=e.elementFromPoint(t,i);if(null!==o){for(;o&&o.firstChild&&o.firstChild.nodeType!==o.firstChild.TEXT_NODE&&o.lastChild&&o.lastChild.firstChild;)o=o.lastChild;const e=o.getBoundingClientRect(),i=window.getComputedStyle(o,null).getPropertyValue("font"),s=o.innerText;let r,a=e.left,l=0;if(t>e.left+e.width)l=s.length;else{const e=Ee.getInstance();for(let n=0;n<s.length+1;n++){if(r=e.getCharWidth(s.charAt(n),i)/2,a+=r,t<a){l=n;break}a+=r}}n.setStart(o.firstChild,l),n.setEnd(o.firstChild,l)}return n}(i,t.clientX,t.clientY):i.caretRangeFromPoint(t.clientX,t.clientY):document.caretRangeFromPoint(t.clientX,t.clientY),!n||!n.startContainer)return new be;const o=n.startContainer;if(o.nodeType===o.TEXT_NODE){const t=o.parentNode,i=t?t.parentNode:null,s=i?i.parentNode:null;return(s&&s.nodeType===s.ELEMENT_NODE?s.className:null)===ae.CLASS_NAME?pe.createFromDOMInfo(e,t,n.startOffset):new be(o.parentNode)}if(o.nodeType===o.ELEMENT_NODE){const t=o.parentNode,i=t?t.parentNode:null;return(i&&i.nodeType===i.ELEMENT_NODE?i.className:null)===ae.CLASS_NAME?pe.createFromDOMInfo(e,o,o.textContent.length):new be(o)}return new be}static _doHitTestWithCaretPositionFromPoint(e,t){const i=document.caretPositionFromPoint(t.clientX,t.clientY);if(i.offsetNode.nodeType===i.offsetNode.TEXT_NODE){const t=i.offsetNode.parentNode,n=t?t.parentNode:null,o=n?n.parentNode:null;return(o&&o.nodeType===o.ELEMENT_NODE?o.className:null)===ae.CLASS_NAME?pe.createFromDOMInfo(e,i.offsetNode.parentNode,i.offset):new be(i.offsetNode.parentNode)}if(i.offsetNode.nodeType===i.offsetNode.ELEMENT_NODE){const t=i.offsetNode.parentNode,n=t&&t.nodeType===t.ELEMENT_NODE?t.className:null,o=t?t.parentNode:null,s=o&&o.nodeType===o.ELEMENT_NODE?o.className:null;if(n===ae.CLASS_NAME){const t=i.offsetNode.childNodes[Math.min(i.offset,i.offsetNode.childNodes.length-1)];if(t)return pe.createFromDOMInfo(e,t,0)}else if(s===ae.CLASS_NAME)return pe.createFromDOMInfo(e,i.offsetNode,0)}return new be(i.offsetNode)}static _snapToSoftTabBoundary(e,t){const i=t.getLineContent(e.lineNumber),{tabSize:n}=t.model.getOptions(),o=ve.l.atomicPosition(i,e.column-1,n,2);return-1!==o?new me.L(e.lineNumber,o+1):e}static _doHitTest(e,t){let i=new be;if("function"==typeof document.caretRangeFromPoint?i=this._doHitTestWithCaretRangeFromPoint(e,t):document.caretPositionFromPoint&&(i=this._doHitTestWithCaretPositionFromPoint(e,t.pos.toClientCoordinates())),1===i.type){const t=e.viewModel.getInjectedTextAt(i.position),n=e.viewModel.normalizePosition(i.position,2);!t&&n.equals(i.position)||(i=new Ce(n,i.spanNode,t))}return 1===i.type&&e.stickyTabStops&&(i=new Ce(this._snapToSoftTabBoundary(i.position,e.viewModel),i.spanNode,i.injectedText)),i}}class Ee{constructor(){this._cache={},this._canvas=document.createElement("canvas")}static getInstance(){return Ee._INSTANCE||(Ee._INSTANCE=new Ee),Ee._INSTANCE}getCharWidth(e,t){const i=e+t;if(this._cache[i])return this._cache[i];const n=this._canvas.getContext("2d");n.font=t;const o=n.measureText(e).width;return this._cache[i]=o,o}}Ee._INSTANCE=null;class Ie extends U{constructor(e,t,i){super(),this._mouseLeaveMonitor=null,this._context=e,this.viewController=t,this.viewHelper=i,this.mouseTargetFactory=new Ne(this._context,i),this._mouseDownOperation=this._register(new Te(this._context,this.viewController,this.viewHelper,((e,t)=>this._createMouseTarget(e,t)),(e=>this._getMouseColumn(e)))),this.lastMouseLeaveTime=-1,this._height=this._context.configuration.options.get(133).height;const n=new j.N5(this.viewHelper.viewDomNode);this._register(n.onContextMenu(this.viewHelper.viewDomNode,(e=>this._onContextMenu(e,!0)))),this._register(n.onMouseMove(this.viewHelper.viewDomNode,(e=>{this._onMouseMove(e),this._mouseLeaveMonitor||(this._mouseLeaveMonitor=c.nm(document,"mousemove",(e=>{this.viewHelper.viewDomNode.contains(e.target)||this._onMouseLeave(new j.gy(e,!1,this.viewHelper.viewDomNode))})))}))),this._register(n.onMouseUp(this.viewHelper.viewDomNode,(e=>this._onMouseUp(e)))),this._register(n.onMouseLeave(this.viewHelper.viewDomNode,(e=>this._onMouseLeave(e))));let o=0;this._register(n.onPointerDown(this.viewHelper.viewDomNode,((e,t)=>{o=t}))),this._register(c.nm(this.viewHelper.viewDomNode,c.tw.POINTER_UP,(e=>{this._mouseDownOperation.onPointerUp()}))),this._register(n.onMouseDown(this.viewHelper.viewDomNode,(e=>this._onMouseDown(e,o))));this._register(c.nm(this.viewHelper.viewDomNode,c.tw.MOUSE_WHEEL,(e=>{if(this.viewController.emitMouseWheel(e),!this._context.configuration.options.get(70))return;const t=new H.q(e);if(_.dz?(e.metaKey||e.ctrlKey)&&!e.shiftKey&&!e.altKey:e.ctrlKey&&!e.metaKey&&!e.shiftKey&&!e.altKey){const e=x.C.getZoomLevel(),i=t.deltaY>0?1:-1;x.C.setZoomLevel(e+i),t.preventDefault(),t.stopPropagation()}}),{capture:!0,passive:!1})),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._mouseLeaveMonitor&&(this._mouseLeaveMonitor.dispose(),this._mouseLeaveMonitor=null),super.dispose()}onConfigurationChanged(e){if(e.hasChanged(133)){const e=this._context.configuration.options.get(133).height;this._height!==e&&(this._height=e,this._mouseDownOperation.onHeightChanged())}return!1}onCursorStateChanged(e){return this._mouseDownOperation.onCursorStateChanged(e),!1}onFocusChanged(e){return!1}onScrollChanged(e){return this._mouseDownOperation.onScrollChanged(),!1}getTargetAtClientPoint(e,t){const i=new j.rU(e,t).toPageCoordinates(),n=(0,j.kG)(this.viewHelper.viewDomNode);if(i.y<n.y||i.y>n.y+n.height||i.x<n.x||i.x>n.x+n.width)return null;const o=(0,j.Pp)(this.viewHelper.viewDomNode,n,i);return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),n,i,o,null)}_createMouseTarget(e,t){let i=e.target;if(!this.viewHelper.viewDomNode.contains(i)){const t=c.Ay(this.viewHelper.viewDomNode);t&&(i=t.elementsFromPoint(e.posx,e.posy).find((e=>this.viewHelper.viewDomNode.contains(e))))}return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),e.editorPos,e.pos,e.relativePos,t?i:null)}_getMouseColumn(e){return this.mouseTargetFactory.getMouseColumn(e.relativePos)}_onContextMenu(e,t){this.viewController.emitContextMenu({event:e,target:this._createMouseTarget(e,t)})}_onMouseMove(e){if(this.mouseTargetFactory.mouseTargetIsWidget(e)||e.preventDefault(),this._mouseDownOperation.isActive())return;e.timestamp<this.lastMouseLeaveTime||this.viewController.emitMouseMove({event:e,target:this._createMouseTarget(e,!0)})}_onMouseLeave(e){this._mouseLeaveMonitor&&(this._mouseLeaveMonitor.dispose(),this._mouseLeaveMonitor=null),this.lastMouseLeaveTime=(new Date).getTime(),this.viewController.emitMouseLeave({event:e,target:null})}_onMouseUp(e){this.viewController.emitMouseUp({event:e,target:this._createMouseTarget(e,!0)})}_onMouseDown(e,t){const i=this._createMouseTarget(e,!0),n=6===i.type||7===i.type,o=2===i.type||3===i.type||4===i.type,s=3===i.type,r=this._context.configuration.options.get(100),a=8===i.type||5===i.type,l=9===i.type;let c=e.leftButton||e.middleButton;_.dz&&e.leftButton&&e.ctrlKey&&(c=!1);const d=()=>{e.preventDefault(),this.viewHelper.focusTextArea()};if(c&&(n||s&&r))d(),this._mouseDownOperation.start(i.type,e,t);else if(o)e.preventDefault();else if(a){const n=i.detail;c&&this.viewHelper.shouldSuppressMouseDownOnViewZone(n.viewZoneId)&&(d(),this._mouseDownOperation.start(i.type,e,t),e.preventDefault())}else l&&this.viewHelper.shouldSuppressMouseDownOnWidget(i.detail)&&(d(),e.preventDefault());this.viewController.emitMouseDown({event:e,target:i})}}class Te extends u.JT{constructor(e,t,i,n,o){super(),this._context=e,this._viewController=t,this._viewHelper=i,this._createMouseTarget=n,this._getMouseColumn=o,this._mouseMoveMonitor=this._register(new j.AL(this._viewHelper.viewDomNode)),this._onScrollTimeout=this._register(new z._F),this._mouseState=new Me,this._currentSelection=new B.Y(1,1,1,1),this._isActive=!1,this._lastMouseEvent=null}dispose(){super.dispose()}isActive(){return this._isActive}_onMouseDownThenMove(e){this._lastMouseEvent=e,this._mouseState.setModifiers(e);const t=this._findMousePosition(e,!1);t&&(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:e,target:t}):this._dispatchMouse(t,!0))}start(e,t,i){this._lastMouseEvent=t,this._mouseState.setStartedOnLineNumbers(3===e),this._mouseState.setStartButtons(t),this._mouseState.setModifiers(t);const n=this._findMousePosition(t,!0);if(!n||!n.position)return;this._mouseState.trySetCount(t.detail,n.position),t.detail=this._mouseState.count;const o=this._context.configuration.options;if(!o.get(83)&&o.get(31)&&!o.get(18)&&!this._mouseState.altKey&&t.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&6===n.type&&n.position&&this._currentSelection.containsPosition(n.position))return this._mouseState.isDragAndDrop=!0,this._isActive=!0,void this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,i,t.buttons,(e=>this._onMouseDownThenMove(e)),(e=>{const t=this._findMousePosition(this._lastMouseEvent,!1);e&&e instanceof KeyboardEvent?this._viewController.emitMouseDropCanceled():this._viewController.emitMouseDrop({event:this._lastMouseEvent,target:t?this._createMouseTarget(this._lastMouseEvent,!0):null}),this._stop()}));this._mouseState.isDragAndDrop=!1,this._dispatchMouse(n,t.shiftKey),this._isActive||(this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,i,t.buttons,(e=>this._onMouseDownThenMove(e)),(()=>this._stop())))}_stop(){this._isActive=!1,this._onScrollTimeout.cancel()}onHeightChanged(){this._mouseMoveMonitor.stopMonitoring()}onPointerUp(){this._mouseMoveMonitor.stopMonitoring()}onScrollChanged(){this._isActive&&this._onScrollTimeout.setIfNotSet((()=>{if(!this._lastMouseEvent)return;const e=this._findMousePosition(this._lastMouseEvent,!1);e&&(this._mouseState.isDragAndDrop||this._dispatchMouse(e,!0))}),10)}onCursorStateChanged(e){this._currentSelection=e.selections[0]}_getPositionOutsideEditor(e){const t=e.editorPos,i=this._context.viewModel,n=this._context.viewLayout,o=this._getMouseColumn(e);if(e.posy<t.y){const i=Math.max(n.getCurrentScrollTop()-(t.y-e.posy),0),s=Le.getZoneAtCoord(this._context,i);if(s){const e=this._helpPositionJumpOverViewZone(s);if(e)return ye.createOutsideEditor(o,e)}const r=n.getLineNumberAtVerticalOffset(i);return ye.createOutsideEditor(o,new me.L(r,1))}if(e.posy>t.y+t.height){const t=n.getCurrentScrollTop()+e.relativePos.y,s=Le.getZoneAtCoord(this._context,t);if(s){const e=this._helpPositionJumpOverViewZone(s);if(e)return ye.createOutsideEditor(o,e)}const r=n.getLineNumberAtVerticalOffset(t);return ye.createOutsideEditor(o,new me.L(r,i.getLineMaxColumn(r)))}const s=n.getLineNumberAtVerticalOffset(n.getCurrentScrollTop()+e.relativePos.y);return e.posx<t.x?ye.createOutsideEditor(o,new me.L(s,1)):e.posx>t.x+t.width?ye.createOutsideEditor(o,new me.L(s,i.getLineMaxColumn(s))):null}_findMousePosition(e,t){const i=this._getPositionOutsideEditor(e);if(i)return i;const n=this._createMouseTarget(e,t);if(!n.position)return null;if(8===n.type||5===n.type){const e=this._helpPositionJumpOverViewZone(n.detail);if(e)return ye.createViewZone(n.type,n.element,n.mouseColumn,e,n.detail)}return n}_helpPositionJumpOverViewZone(e){const t=new me.L(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),i=e.positionBefore,n=e.positionAfter;return i&&n?i.isBefore(t)?i:n:null}_dispatchMouse(e,t){e.position&&this._viewController.dispatchMouse({position:e.position,mouseColumn:e.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,inSelectionMode:t,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton,onInjectedText:6===e.type&&null!==e.detail.injectedText})}}class Me{constructor(){this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}get altKey(){return this._altKey}get ctrlKey(){return this._ctrlKey}get metaKey(){return this._metaKey}get shiftKey(){return this._shiftKey}get leftButton(){return this._leftButton}get middleButton(){return this._middleButton}get startedOnLineNumbers(){return this._startedOnLineNumbers}get count(){return this._lastMouseDownCount}setModifiers(e){this._altKey=e.altKey,this._ctrlKey=e.ctrlKey,this._metaKey=e.metaKey,this._shiftKey=e.shiftKey}setStartButtons(e){this._leftButton=e.leftButton,this._middleButton=e.middleButton}setStartedOnLineNumbers(e){this._startedOnLineNumbers=e}trySetCount(e,t){const i=(new Date).getTime();i-this._lastSetMouseDownCountTime>Me.CLEAR_MOUSE_DOWN_COUNT_TIME&&(e=1),this._lastSetMouseDownCountTime=i,e>this._lastMouseDownCount+1&&(e=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(t)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=t,this._lastMouseDownCount=Math.min(e,this._lastMouseDownPositionEqualCount)}}Me.CLEAR_MOUSE_DOWN_COUNT_TIME=400;var Ae=i(10161),Re=i(35715);class Oe extends Ie{constructor(e,t,i){super(e,t,i),this._register(W.o.addTarget(this.viewHelper.linesContentDomNode)),this._register(c.nm(this.viewHelper.linesContentDomNode,W.t.Tap,(e=>this.onTap(e)))),this._register(c.nm(this.viewHelper.linesContentDomNode,W.t.Change,(e=>this.onChange(e)))),this._register(c.nm(this.viewHelper.linesContentDomNode,W.t.Contextmenu,(e=>this._onContextMenu(new j.gy(e,!1,this.viewHelper.viewDomNode),!1)))),this._lastPointerType="mouse",this._register(c.nm(this.viewHelper.linesContentDomNode,"pointerdown",(e=>{const t=e.pointerType;this._lastPointerType="mouse"!==t?"touch"===t?"touch":"pen":"mouse"})));const n=new j.tC(this.viewHelper.viewDomNode);this._register(n.onPointerMove(this.viewHelper.viewDomNode,(e=>this._onMouseMove(e)))),this._register(n.onPointerUp(this.viewHelper.viewDomNode,(e=>this._onMouseUp(e)))),this._register(n.onPointerLeave(this.viewHelper.viewDomNode,(e=>this._onMouseLeave(e)))),this._register(n.onPointerDown(this.viewHelper.viewDomNode,((e,t)=>this._onMouseDown(e,t))))}onTap(e){if(!e.initialTarget||!this.viewHelper.linesContentDomNode.contains(e.initialTarget))return;e.preventDefault(),this.viewHelper.focusTextArea();const t=this._createMouseTarget(new j.gy(e,!1,this.viewHelper.viewDomNode),!1);t.position&&this.viewController.dispatchMouse({position:t.position,mouseColumn:t.position.column,startedOnLineNumbers:!1,mouseDownCount:e.tapCount,inSelectionMode:!1,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1,onInjectedText:6===t.type&&null!==t.detail.injectedText})}onChange(e){"touch"===this._lastPointerType&&this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)}_onMouseDown(e,t){"touch"!==e.browserEvent.pointerType&&super._onMouseDown(e,t)}}class Pe extends Ie{constructor(e,t,i){super(e,t,i),this._register(W.o.addTarget(this.viewHelper.linesContentDomNode)),this._register(c.nm(this.viewHelper.linesContentDomNode,W.t.Tap,(e=>this.onTap(e)))),this._register(c.nm(this.viewHelper.linesContentDomNode,W.t.Change,(e=>this.onChange(e)))),this._register(c.nm(this.viewHelper.linesContentDomNode,W.t.Contextmenu,(e=>this._onContextMenu(new j.gy(e,!1,this.viewHelper.viewDomNode),!1))))}onTap(e){e.preventDefault(),this.viewHelper.focusTextArea();const t=this._createMouseTarget(new j.gy(e,!1,this.viewHelper.viewDomNode),!1);if(t.position){const e=document.createEvent("CustomEvent");e.initEvent(Re.pd.Tap,!1,!0),this.viewHelper.dispatchTextAreaEvent(e),this.viewController.moveTo(t.position)}}onChange(e){this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)}}class Fe extends u.JT{constructor(e,t,i){super(),_.gn&&Ae.D.pointerEvents?this.handler=this._register(new Oe(e,t,i)):window.TouchEvent?this.handler=this._register(new Pe(e,t,i)):this.handler=this._register(new Ie(e,t,i))}getTargetAtClientPoint(e,t){return this.handler.getTargetAtClientPoint(e,t)}}var Be=i(97295),Ve=i(52136),We=i(15887);class He extends U{}var ze=i(8625),je=i(97781);class Ue extends He{constructor(e){super(),this._context=e,this._readConfig(),this._lastCursorModelPosition=new me.L(1,1),this._lastCursorViewPosition=new me.L(1,1),this._renderResult=null,this._activeLineNumber=1,this._context.addEventHandler(this)}_readConfig(){const e=this._context.configuration.options;this._lineHeight=e.get(61);const t=e.get(62);this._renderLineNumbers=t.renderType,this._renderCustomLineNumbers=t.renderFn,this._renderFinalNewline=e.get(86);const i=e.get(133);this._lineNumbersLeft=i.lineNumbersLeft,this._lineNumbersWidth=i.lineNumbersWidth}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){return this._readConfig(),!0}onCursorStateChanged(e){const t=e.selections[0].getPosition();this._lastCursorViewPosition=t,this._lastCursorModelPosition=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(t);let i=!1;return this._activeLineNumber!==t.lineNumber&&(this._activeLineNumber=t.lineNumber,i=!0),2!==this._renderLineNumbers&&3!==this._renderLineNumbers||(i=!0),i}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getLineRenderLineNumber(e){const t=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new me.L(e,1));if(1!==t.column)return"";const i=t.lineNumber;return this._renderCustomLineNumbers?this._renderCustomLineNumbers(i):3===this._renderLineNumbers?this._lastCursorModelPosition.lineNumber===i||i%10==0?String(i):"":String(i)}prepareRender(e){if(0===this._renderLineNumbers)return void(this._renderResult=null);const t=_.IJ?this._lineHeight%2==0?" lh-even":" lh-odd":"",i=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,o='<div class="'+Ue.CLASS_NAME+t+'" style="left:'+this._lineNumbersLeft+"px;width:"+this._lineNumbersWidth+'px;">';let s=null;if(2===this._renderLineNumbers){s=new Array(n-i+1),this._lastCursorViewPosition.lineNumber>=i&&this._lastCursorViewPosition.lineNumber<=n&&(s[this._lastCursorViewPosition.lineNumber-i]=this._lastCursorModelPosition.lineNumber);{let e=0;for(let t=this._lastCursorViewPosition.lineNumber+1;t<=n;t++){const n=1!==this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new me.L(t,1)).column;n||e++,t>=i&&(s[t-i]=n?0:e)}}{let e=0;for(let t=this._lastCursorViewPosition.lineNumber-1;t>=i;t--){const o=1!==this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new me.L(t,1)).column;o||e++,t<=n&&(s[t-i]=o?0:e)}}}const r=this._context.viewModel.getLineCount(),a=[];for(let l=i;l<=n;l++){const e=l-i;if(!this._renderFinalNewline&&l===r&&0===this._context.viewModel.getLineLength(l)){a[e]="";continue}let n;if(s){const t=s[e];n=this._lastCursorViewPosition.lineNumber===l?`<span class="relative-current-line-number">${t}</span>`:t?String(t):""}else n=this._getLineRenderLineNumber(l);n?l===this._activeLineNumber?a[e]='<div class="active-line-number '+Ue.CLASS_NAME+t+'" style="left:'+this._lineNumbersLeft+"px;width:"+this._lineNumbersWidth+'px;">'+n+"</div>":a[e]=o+n+"</div>":a[e]=""}this._renderResult=a}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}Ue.CLASS_NAME="line-numbers",(0,je.Ic)(((e,t)=>{const i=e.getColor(ze.hw);i&&t.addRule(`.monaco-editor .line-numbers { color: ${i}; }`);const n=e.getColor(ze.DD);n&&t.addRule(`.monaco-editor .line-numbers.active-line-number { color: ${n}; }`)}));class Ke extends K{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(133);this._canUseLayerHinting=!t.get(28),this._contentLeft=i.contentLeft,this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,this._domNode=(0,V.X)(document.createElement("div")),this._domNode.setClassName(Ke.OUTER_CLASS_NAME),this._domNode.setPosition("absolute"),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._glyphMarginBackgroundDomNode=(0,V.X)(document.createElement("div")),this._glyphMarginBackgroundDomNode.setClassName(Ke.CLASS_NAME),this._domNode.appendChild(this._glyphMarginBackgroundDomNode)}dispose(){super.dispose()}getDomNode(){return this._domNode}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(133);return this._canUseLayerHinting=!t.get(28),this._contentLeft=i.contentLeft,this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollTopChanged}prepareRender(e){}render(e){this._domNode.setLayerHinting(this._canUseLayerHinting),this._domNode.setContain("strict");const t=e.scrollTop-e.bigNumbersDelta;this._domNode.setTop(-t);const i=Math.min(e.scrollHeight,1e6);this._domNode.setHeight(i),this._domNode.setWidth(this._contentLeft),this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft),this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth),this._glyphMarginBackgroundDomNode.setHeight(i)}}Ke.CLASS_NAME="glyph-margin",Ke.OUTER_CLASS_NAME="margin";var $e=i(24929),qe=i(96542),Ge=i(43155),Qe=i(41264);class Ze{constructor(e,t,i,n,o){this._context=e,this.modelLineNumber=t,this.distanceToModelLineStart=i,this.widthOfHiddenLineTextBefore=n,this.distanceToModelLineEnd=o,this._visibleTextAreaBrand=void 0,this.startPosition=null,this.endPosition=null,this.visibleTextareaStart=null,this.visibleTextareaEnd=null,this._previousPresentation=null}prepareRender(e){const t=new me.L(this.modelLineNumber,this.distanceToModelLineStart+1),i=new me.L(this.modelLineNumber,this._context.viewModel.model.getLineMaxColumn(this.modelLineNumber)-this.distanceToModelLineEnd);this.startPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(t),this.endPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i),this.startPosition.lineNumber===this.endPosition.lineNumber?(this.visibleTextareaStart=e.visibleRangeForPosition(this.startPosition),this.visibleTextareaEnd=e.visibleRangeForPosition(this.endPosition)):(this.visibleTextareaStart=null,this.visibleTextareaEnd=null)}definePresentation(e){return this._previousPresentation||(this._previousPresentation=e||{foreground:1,italic:!1,bold:!1,underline:!1,strikethrough:!1}),this._previousPresentation}}const Ye=p.isFirefox;class Je extends K{constructor(e,t,i){super(e),this._primaryCursorPosition=new me.L(1,1),this._primaryCursorVisibleRange=null,this._viewController=t,this._visibleRangeProvider=i,this._scrollLeft=0,this._scrollTop=0;const n=this._context.configuration.options,o=n.get(133);this._setAccessibilityOptions(n),this._contentLeft=o.contentLeft,this._contentWidth=o.contentWidth,this._contentHeight=o.height,this._fontInfo=n.get(46),this._lineHeight=n.get(61),this._emptySelectionClipboard=n.get(33),this._copyWithSyntaxHighlighting=n.get(21),this._visibleTextArea=null,this._selections=[new B.Y(1,1,1,1)],this._modelSelections=[new B.Y(1,1,1,1)],this._lastRenderPosition=null,this.textArea=(0,V.X)(document.createElement("textarea")),$.write(this.textArea,6),this.textArea.setClassName(`inputarea ${qe.S}`),this.textArea.setAttribute("wrap","off"),this.textArea.setAttribute("autocorrect","off"),this.textArea.setAttribute("autocapitalize","off"),this.textArea.setAttribute("autocomplete","off"),this.textArea.setAttribute("spellcheck","false"),this.textArea.setAttribute("aria-label",this._getAriaLabel(n)),this.textArea.setAttribute("tabindex",String(n.get(114))),this.textArea.setAttribute("role","textbox"),this.textArea.setAttribute("aria-roledescription",l.NC("editor","editor")),this.textArea.setAttribute("aria-multiline","true"),this.textArea.setAttribute("aria-haspopup","false"),this.textArea.setAttribute("aria-autocomplete","both"),n.get(30)&&n.get(83)&&this.textArea.setAttribute("readonly","true"),this.textAreaCover=(0,V.X)(document.createElement("div")),this.textAreaCover.setPosition("absolute");const s={getLineCount:()=>this._context.viewModel.getLineCount(),getLineMaxColumn:e=>this._context.viewModel.getLineMaxColumn(e),getValueInRange:(e,t)=>this._context.viewModel.getValueInRange(e,t)},r={getDataToCopy:()=>{const e=this._context.viewModel.getPlainTextToCopy(this._modelSelections,this._emptySelectionClipboard,_.ED),t=this._context.viewModel.model.getEOL(),i=this._emptySelectionClipboard&&1===this._modelSelections.length&&this._modelSelections[0].isEmpty(),n=Array.isArray(e)?e:null,o=Array.isArray(e)?e.join(t):e;let s,r=null;if(Re.RA.forceCopyWithSyntaxHighlighting||this._copyWithSyntaxHighlighting&&o.length<65536){const e=this._context.viewModel.getRichTextToCopy(this._modelSelections,this._emptySelectionClipboard);e&&(s=e.html,r=e.mode)}return{isFromEmptySelection:i,multicursorText:n,text:o,html:s,mode:r}},getScreenReaderContent:e=>{if(1===this._accessibilitySupport){const e=this._selections[0];if(_.dz&&e.isEmpty()){const t=e.getStartPosition();let i=this._getWordBeforePosition(t);if(0===i.length&&(i=this._getCharacterBeforePosition(t)),i.length>0)return new We.un(i,i.length,i.length,t,t)}if(p.isSafari&&!e.isEmpty()){const e="vscode-placeholder";return new We.un(e,0,e.length,null,null)}return We.un.EMPTY}if(p.isAndroid){const e=this._selections[0];if(e.isEmpty()){const t=e.getStartPosition(),[i,n]=this._getAndroidWordAtPosition(t);if(i.length>0)return new We.un(i,n,n,t,t)}return We.un.EMPTY}return We.ee.fromEditorSelection(e,s,this._selections[0],this._accessibilityPageSize,0===this._accessibilitySupport)},deduceModelPosition:(e,t,i)=>this._context.viewModel.deduceModelPositionRelativeToViewPosition(e,t,i)},a=this._register(new Re.Tj(this.textArea.domNode));this._textAreaInput=this._register(new Re.Fz(r,a,_.OS,p)),this._register(this._textAreaInput.onKeyDown((e=>{this._viewController.emitKeyDown(e)}))),this._register(this._textAreaInput.onKeyUp((e=>{this._viewController.emitKeyUp(e)}))),this._register(this._textAreaInput.onPaste((e=>{let t=!1,i=null,n=null;e.metadata&&(t=this._emptySelectionClipboard&&!!e.metadata.isFromEmptySelection,i=void 0!==e.metadata.multicursorText?e.metadata.multicursorText:null,n=e.metadata.mode),this._viewController.paste(e.text,t,i,n)}))),this._register(this._textAreaInput.onCut((()=>{this._viewController.cut()}))),this._register(this._textAreaInput.onType((e=>{e.replacePrevCharCnt||e.replaceNextCharCnt||e.positionDelta?(We.al&&console.log(` => compositionType: <<${e.text}>>, ${e.replacePrevCharCnt}, ${e.replaceNextCharCnt}, ${e.positionDelta}`),this._viewController.compositionType(e.text,e.replacePrevCharCnt,e.replaceNextCharCnt,e.positionDelta)):(We.al&&console.log(` => type: <<${e.text}>>`),this._viewController.type(e.text))}))),this._register(this._textAreaInput.onSelectionChangeRequest((e=>{this._viewController.setSelection(e)}))),this._register(this._textAreaInput.onCompositionStart((e=>{const t=this.textArea.domNode,i=this._modelSelections[0],{distanceToModelLineStart:n,widthOfHiddenTextBefore:o}=(()=>{const e=t.value.substring(0,Math.min(t.selectionStart,t.selectionEnd)),n=e.lastIndexOf("\n"),o=e.substring(n+1),s=o.lastIndexOf("\t"),r=o.length-s-1,a=i.getStartPosition(),l=Math.min(a.column-1,r);return{distanceToModelLineStart:a.column-1-l,widthOfHiddenTextBefore:function(e,t){if(0===e.length)return 0;const i=document.createElement("div");i.style.position="absolute",i.style.top="-50000px",i.style.width="50000px";const n=document.createElement("span");(0,Ve.N)(n,t),n.style.whiteSpace="pre",n.append(e),i.appendChild(n),document.body.appendChild(i);const o=n.offsetWidth;return document.body.removeChild(i),o}(o.substring(0,o.length-l),this._fontInfo)}})(),{distanceToModelLineEnd:s}=(()=>{const e=t.value.substring(Math.max(t.selectionStart,t.selectionEnd)),n=e.indexOf("\n"),o=-1===n?e:e.substring(0,n),s=o.indexOf("\t"),r=-1===s?o.length:o.length-s-1,a=i.getEndPosition(),l=Math.min(this._context.viewModel.model.getLineMaxColumn(a.lineNumber)-a.column,r);return{distanceToModelLineEnd:this._context.viewModel.model.getLineMaxColumn(a.lineNumber)-a.column-l}})();this._context.viewModel.revealRange("keyboard",!0,fe.e.fromPositions(this._selections[0].getStartPosition()),0,1),this._visibleTextArea=new Ze(this._context,i.startLineNumber,n,o,s),this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render(),this.textArea.setClassName(`inputarea ${qe.S} ime-input`),this._viewController.compositionStart(),this._context.viewModel.onCompositionStart()}))),this._register(this._textAreaInput.onCompositionUpdate((e=>{this._visibleTextArea&&(this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render())}))),this._register(this._textAreaInput.onCompositionEnd((()=>{this._visibleTextArea=null,this._render(),this.textArea.setClassName(`inputarea ${qe.S}`),this._viewController.compositionEnd(),this._context.viewModel.onCompositionEnd()}))),this._register(this._textAreaInput.onFocus((()=>{this._context.viewModel.setHasFocus(!0)}))),this._register(this._textAreaInput.onBlur((()=>{this._context.viewModel.setHasFocus(!1)})))}dispose(){super.dispose()}_getAndroidWordAtPosition(e){const t=this._context.viewModel.getLineContent(e.lineNumber),i=(0,$e.u)('`~!@#$%^&*()-=+[{]}\\|;:",.<>/?');let n=!0,o=e.column,s=!0,r=e.column,a=0;for(;a<50&&(n||s);){if(n&&o<=1&&(n=!1),n){const e=t.charCodeAt(o-2);0!==i.get(e)?n=!1:o--}if(s&&r>t.length&&(s=!1),s){const e=t.charCodeAt(r-1);0!==i.get(e)?s=!1:r++}a++}return[t.substring(o-1,r-1),e.column-o]}_getWordBeforePosition(e){const t=this._context.viewModel.getLineContent(e.lineNumber),i=(0,$e.u)(this._context.configuration.options.get(119));let n=e.column,o=0;for(;n>1;){const s=t.charCodeAt(n-2);if(0!==i.get(s)||o>50)return t.substring(n-1,e.column-1);o++,n--}return t.substring(0,e.column-1)}_getCharacterBeforePosition(e){if(e.column>1){const t=this._context.viewModel.getLineContent(e.lineNumber).charAt(e.column-2);if(!Be.ZG(t.charCodeAt(0)))return t}return""}_getAriaLabel(e){return 1===e.get(2)?l.NC("accessibilityOffAriaLabel","The editor is not accessible at this time. Press {0} for options.",_.IJ?"Shift+Alt+F1":"Alt+F1"):e.get(4)}_setAccessibilityOptions(e){this._accessibilitySupport=e.get(2);const t=e.get(3);2===this._accessibilitySupport&&t===k.BH.accessibilityPageSize.defaultValue?this._accessibilityPageSize=500:this._accessibilityPageSize=t}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(133);return this._setAccessibilityOptions(t),this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._contentHeight=i.height,this._fontInfo=t.get(46),this._lineHeight=t.get(61),this._emptySelectionClipboard=t.get(33),this._copyWithSyntaxHighlighting=t.get(21),this.textArea.setAttribute("aria-label",this._getAriaLabel(t)),this.textArea.setAttribute("tabindex",String(t.get(114))),(e.hasChanged(30)||e.hasChanged(83))&&(t.get(30)&&t.get(83)?this.textArea.setAttribute("readonly","true"):this.textArea.removeAttribute("readonly")),e.hasChanged(2)&&this._textAreaInput.writeScreenReaderContent("strategy changed"),!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),this._modelSelections=e.modelSelections.slice(0),this._textAreaInput.writeScreenReaderContent("selection changed"),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return this._scrollLeft=e.scrollLeft,this._scrollTop=e.scrollTop,!0}onZonesChanged(e){return!0}isFocused(){return this._textAreaInput.isFocused()}focusTextArea(){this._textAreaInput.focusTextArea()}getLastRenderData(){return this._lastRenderPosition}setAriaOptions(e){e.activeDescendant?(this.textArea.setAttribute("aria-haspopup","true"),this.textArea.setAttribute("aria-autocomplete","list"),this.textArea.setAttribute("aria-activedescendant",e.activeDescendant)):(this.textArea.setAttribute("aria-haspopup","false"),this.textArea.setAttribute("aria-autocomplete","both"),this.textArea.removeAttribute("aria-activedescendant")),e.role&&this.textArea.setAttribute("role",e.role)}prepareRender(e){var t;this._primaryCursorPosition=new me.L(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=e.visibleRangeForPosition(this._primaryCursorPosition),null===(t=this._visibleTextArea)||void 0===t||t.prepareRender(e)}render(e){this._textAreaInput.writeScreenReaderContent("render"),this._render()}_render(){if(this._visibleTextArea){const e=this._visibleTextArea.visibleTextareaStart,t=this._visibleTextArea.visibleTextareaEnd,i=this._visibleTextArea.startPosition,n=this._visibleTextArea.endPosition;if(i&&n&&e&&t&&t.left>=this._scrollLeft&&e.left<=this._scrollLeft+this._contentWidth){const o=this._context.viewLayout.getVerticalOffsetForLineNumber(this._primaryCursorPosition.lineNumber)-this._scrollTop,s=this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));let r=this._visibleTextArea.widthOfHiddenLineTextBefore,a=this._contentLeft+e.left-this._scrollLeft,l=t.left-e.left+1;if(a<this._contentLeft){const e=this._contentLeft-a;a+=e,r+=e,l-=e}l>this._contentWidth&&(l=this._contentWidth);const c=this._context.viewModel.getViewLineData(i.lineNumber),d=c.tokens.findTokenIndexAtOffset(i.column-1),h=d===c.tokens.findTokenIndexAtOffset(n.column-1),u=this._visibleTextArea.definePresentation(h?c.tokens.getPresentation(d):null);this.textArea.domNode.scrollTop=s*this._lineHeight,this.textArea.domNode.scrollLeft=r,this._doRender({lastRenderPosition:null,top:o,left:a,width:l,height:this._lineHeight,useCover:!1,color:(Ge.RW.getColorMap()||[])[u.foreground],italic:u.italic,bold:u.bold,underline:u.underline,strikethrough:u.strikethrough})}return}if(!this._primaryCursorVisibleRange)return void this._renderAtTopLeft();const e=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(e<this._contentLeft||e>this._contentLeft+this._contentWidth)return void this._renderAtTopLeft();const t=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;if(t<0||t>this._contentHeight)this._renderAtTopLeft();else if(_.dz){this._doRender({lastRenderPosition:this._primaryCursorPosition,top:t,left:e,width:Ye?0:1,height:this._lineHeight,useCover:!1}),this.textArea.domNode.scrollLeft=this._primaryCursorVisibleRange.left;const i=this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));this.textArea.domNode.scrollTop=i*this._lineHeight}else this._doRender({lastRenderPosition:this._primaryCursorPosition,top:t,left:e,width:Ye?0:1,height:Ye?0:1,useCover:!1})}_newlinecount(e){let t=0,i=-1;for(;;){if(i=e.indexOf("\n",i+1),-1===i)break;t++}return t}_renderAtTopLeft(){this._doRender({lastRenderPosition:null,top:0,left:0,width:Ye?0:1,height:Ye?0:1,useCover:!0})}_doRender(e){this._lastRenderPosition=e.lastRenderPosition;const t=this.textArea,i=this.textAreaCover;(0,Ve.N)(t,this._fontInfo),t.setTop(e.top),t.setLeft(e.left),t.setWidth(e.width),t.setHeight(e.height),t.setColor(e.color?Qe.Il.Format.CSS.formatHex(e.color):""),t.setFontStyle(e.italic?"italic":""),e.bold&&t.setFontWeight("bold"),t.setTextDecoration(`${e.underline?" underline":""}${e.strikethrough?" line-through":""}`),i.setTop(e.useCover?e.top:0),i.setLeft(e.useCover?e.left:0),i.setWidth(e.useCover?e.width:0),i.setHeight(e.useCover?e.height:0);const n=this._context.configuration.options;n.get(52)?i.setClassName("monaco-editor-background textAreaCover "+Ke.OUTER_CLASS_NAME):0!==n.get(62).renderType?i.setClassName("monaco-editor-background textAreaCover "+Ue.CLASS_NAME):i.setClassName("monaco-editor-background textAreaCover")}}var Xe=i(42549);class et{constructor(e,t,i,n){this.configuration=e,this.viewModel=t,this.userInputEvents=i,this.commandDelegate=n}paste(e,t,i,n){this.commandDelegate.paste(e,t,i,n)}type(e){this.commandDelegate.type(e)}compositionType(e,t,i,n){this.commandDelegate.compositionType(e,t,i,n)}compositionStart(){this.commandDelegate.startComposition()}compositionEnd(){this.commandDelegate.endComposition()}cut(){this.commandDelegate.cut()}setSelection(e){Xe.Ox.SetSelection.runCoreEditorCommand(this.viewModel,{source:"keyboard",selection:e})}_validateViewColumn(e){const t=this.viewModel.getLineMinColumn(e.lineNumber);return e.column<t?new me.L(e.lineNumber,t):e}_hasMulticursorModifier(e){switch(this.configuration.options.get(72)){case"altKey":return e.altKey;case"ctrlKey":return e.ctrlKey;case"metaKey":return e.metaKey;default:return!1}}_hasNonMulticursorModifier(e){switch(this.configuration.options.get(72)){case"altKey":return e.ctrlKey||e.metaKey;case"ctrlKey":return e.altKey||e.metaKey;case"metaKey":return e.ctrlKey||e.altKey;default:return!1}}dispatchMouse(e){const t=this.configuration.options,i=_.IJ&&t.get(98),n=t.get(18);e.middleButton&&!i?this._columnSelect(e.position,e.mouseColumn,e.inSelectionMode):e.startedOnLineNumbers?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelect(e.position):this._createCursor(e.position,!0):e.inSelectionMode?this._lineSelectDrag(e.position):this._lineSelect(e.position):e.mouseDownCount>=4?this._selectAll():3===e.mouseDownCount?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelectDrag(e.position):this._lastCursorLineSelect(e.position):e.inSelectionMode?this._lineSelectDrag(e.position):this._lineSelect(e.position):2===e.mouseDownCount?e.onInjectedText||(this._hasMulticursorModifier(e)?this._lastCursorWordSelect(e.position):e.inSelectionMode?this._wordSelectDrag(e.position):this._wordSelect(e.position)):this._hasMulticursorModifier(e)?this._hasNonMulticursorModifier(e)||(e.shiftKey?this._columnSelect(e.position,e.mouseColumn,!0):e.inSelectionMode?this._lastCursorMoveToSelect(e.position):this._createCursor(e.position,!1)):e.inSelectionMode?e.altKey||n?this._columnSelect(e.position,e.mouseColumn,!0):this._moveToSelect(e.position):this.moveTo(e.position)}_usualArgs(e){return e=this._validateViewColumn(e),{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e}}moveTo(e){Xe.Ox.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_moveToSelect(e){Xe.Ox.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_columnSelect(e,t,i){e=this._validateViewColumn(e),Xe.Ox.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,mouseColumn:t,doColumnSelect:i})}_createCursor(e,t){e=this._validateViewColumn(e),Xe.Ox.CreateCursor.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,wholeLine:t})}_lastCursorMoveToSelect(e){Xe.Ox.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_wordSelect(e){Xe.Ox.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_wordSelectDrag(e){Xe.Ox.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_lastCursorWordSelect(e){Xe.Ox.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_lineSelect(e){Xe.Ox.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_lineSelectDrag(e){Xe.Ox.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_lastCursorLineSelect(e){Xe.Ox.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_lastCursorLineSelectDrag(e){Xe.Ox.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e))}_selectAll(){Xe.Ox.SelectAll.runCoreEditorCommand(this.viewModel,{source:"mouse"})}_convertViewToModelPosition(e){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)}emitKeyDown(e){this.userInputEvents.emitKeyDown(e)}emitKeyUp(e){this.userInputEvents.emitKeyUp(e)}emitContextMenu(e){this.userInputEvents.emitContextMenu(e)}emitMouseMove(e){this.userInputEvents.emitMouseMove(e)}emitMouseLeave(e){this.userInputEvents.emitMouseLeave(e)}emitMouseUp(e){this.userInputEvents.emitMouseUp(e)}emitMouseDown(e){this.userInputEvents.emitMouseDown(e)}emitMouseDrag(e){this.userInputEvents.emitMouseDrag(e)}emitMouseDrop(e){this.userInputEvents.emitMouseDrop(e)}emitMouseDropCanceled(){this.userInputEvents.emitMouseDropCanceled()}emitMouseWheel(e){this.userInputEvents.emitMouseWheel(e)}}class tt{constructor(e){this.onKeyDown=null,this.onKeyUp=null,this.onContextMenu=null,this.onMouseMove=null,this.onMouseLeave=null,this.onMouseDown=null,this.onMouseUp=null,this.onMouseDrag=null,this.onMouseDrop=null,this.onMouseDropCanceled=null,this.onMouseWheel=null,this._coordinatesConverter=e}emitKeyDown(e){var t;null===(t=this.onKeyDown)||void 0===t||t.call(this,e)}emitKeyUp(e){var t;null===(t=this.onKeyUp)||void 0===t||t.call(this,e)}emitContextMenu(e){var t;null===(t=this.onContextMenu)||void 0===t||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseMove(e){var t;null===(t=this.onMouseMove)||void 0===t||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseLeave(e){var t;null===(t=this.onMouseLeave)||void 0===t||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDown(e){var t;null===(t=this.onMouseDown)||void 0===t||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseUp(e){var t;null===(t=this.onMouseUp)||void 0===t||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDrag(e){var t;null===(t=this.onMouseDrag)||void 0===t||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDrop(e){var t;null===(t=this.onMouseDrop)||void 0===t||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDropCanceled(){var e;null===(e=this.onMouseDropCanceled)||void 0===e||e.call(this)}emitMouseWheel(e){var t;null===(t=this.onMouseWheel)||void 0===t||t.call(this,e)}_convertViewToModelMouseEvent(e){return e.target?{event:e.event,target:this._convertViewToModelMouseTarget(e.target)}:e}_convertViewToModelMouseTarget(e){return tt.convertViewToModelMouseTarget(e,this._coordinatesConverter)}static convertViewToModelMouseTarget(e,t){const i=Object.assign({},e);return i.position&&(i.position=t.convertViewPositionToModelPosition(i.position)),i.range&&(i.range=t.convertViewRangeToModelRange(i.range)),i}}var it,nt=i(50072);class ot{constructor(e){this._createLine=e,this._set(1,[])}flush(){this._set(1,[])}_set(e,t){this._lines=t,this._rendLineNumberStart=e}_get(){return{rendLineNumberStart:this._rendLineNumberStart,lines:this._lines}}getStartLineNumber(){return this._rendLineNumberStart}getEndLineNumber(){return this._rendLineNumberStart+this._lines.length-1}getCount(){return this._lines.length}getLine(e){const t=e-this._rendLineNumberStart;if(t<0||t>=this._lines.length)throw new Error("Illegal value for lineNumber");return this._lines[t]}onLinesDeleted(e,t){if(0===this.getCount())return null;const i=this.getStartLineNumber(),n=this.getEndLineNumber();if(t<i){const i=t-e+1;return this._rendLineNumberStart-=i,null}if(e>n)return null;let o=0,s=0;for(let r=i;r<=n;r++){const i=r-this._rendLineNumberStart;e<=r&&r<=t&&(0===s?(o=i,s=1):s++)}if(e<i){let n=0;n=t<i?t-e+1:i-e,this._rendLineNumberStart-=n}return this._lines.splice(o,s)}onLinesChanged(e,t){const i=e+t-1;if(0===this.getCount())return!1;const n=this.getStartLineNumber(),o=this.getEndLineNumber();let s=!1;for(let r=e;r<=i;r++)r>=n&&r<=o&&(this._lines[r-this._rendLineNumberStart].onContentChanged(),s=!0);return s}onLinesInserted(e,t){if(0===this.getCount())return null;const i=t-e+1,n=this.getStartLineNumber(),o=this.getEndLineNumber();if(e<=n)return this._rendLineNumberStart+=i,null;if(e>o)return null;if(i+e>o){return this._lines.splice(e-this._rendLineNumberStart,o-e+1)}const s=[];for(let d=0;d<i;d++)s[d]=this._createLine();const r=e-this._rendLineNumberStart,a=this._lines.slice(0,r),l=this._lines.slice(r,this._lines.length-i),c=this._lines.slice(this._lines.length-i,this._lines.length);return this._lines=a.concat(s).concat(l),c}onTokensChanged(e){if(0===this.getCount())return!1;const t=this.getStartLineNumber(),i=this.getEndLineNumber();let n=!1;for(let o=0,s=e.length;o<s;o++){const s=e[o];if(s.toLineNumber<t||s.fromLineNumber>i)continue;const r=Math.max(t,s.fromLineNumber),a=Math.min(i,s.toLineNumber);for(let e=r;e<=a;e++){const t=e-this._rendLineNumberStart;this._lines[t].onTokensChanged(),n=!0}}return n}}class st{constructor(e){this._host=e,this.domNode=this._createDomNode(),this._linesCollection=new ot((()=>this._host.createVisibleLine()))}_createDomNode(){const e=(0,V.X)(document.createElement("div"));return e.setClassName("view-layer"),e.setPosition("absolute"),e.domNode.setAttribute("role","presentation"),e.domNode.setAttribute("aria-hidden","true"),e}onConfigurationChanged(e){return!!e.hasChanged(133)}onFlushed(e){return this._linesCollection.flush(),!0}onLinesChanged(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.count)}onLinesDeleted(e){const t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(let i=0,n=t.length;i<n;i++){const e=t[i].getDomNode();e&&this.domNode.domNode.removeChild(e)}return!0}onLinesInserted(e){const t=this._linesCollection.onLinesInserted(e.fromLineNumber,e.toLineNumber);if(t)for(let i=0,n=t.length;i<n;i++){const e=t[i].getDomNode();e&&this.domNode.domNode.removeChild(e)}return!0}onScrollChanged(e){return e.scrollTopChanged}onTokensChanged(e){return this._linesCollection.onTokensChanged(e.ranges)}onZonesChanged(e){return!0}getStartLineNumber(){return this._linesCollection.getStartLineNumber()}getEndLineNumber(){return this._linesCollection.getEndLineNumber()}getVisibleLine(e){return this._linesCollection.getLine(e)}renderLines(e){const t=this._linesCollection._get(),i=new rt(this.domNode.domNode,this._host,e),n={rendLineNumberStart:t.rendLineNumberStart,lines:t.lines,linesLength:t.lines.length},o=i.render(n,e.startLineNumber,e.endLineNumber,e.relativeVerticalOffset);this._linesCollection._set(o.rendLineNumberStart,o.lines)}}class rt{constructor(e,t,i){this.domNode=e,this.host=t,this.viewportData=i}render(e,t,i,n){const o={rendLineNumberStart:e.rendLineNumberStart,lines:e.lines.slice(0),linesLength:e.linesLength};if(o.rendLineNumberStart+o.linesLength-1<t||i<o.rendLineNumberStart){o.rendLineNumberStart=t,o.linesLength=i-t+1,o.lines=[];for(let e=t;e<=i;e++)o.lines[e-t]=this.host.createVisibleLine();return this._finishRendering(o,!0,n),o}if(this._renderUntouchedLines(o,Math.max(t-o.rendLineNumberStart,0),Math.min(i-o.rendLineNumberStart,o.linesLength-1),n,t),o.rendLineNumberStart>t){const e=t,s=Math.min(i,o.rendLineNumberStart-1);e<=s&&(this._insertLinesBefore(o,e,s,n,t),o.linesLength+=s-e+1)}else if(o.rendLineNumberStart<t){const e=Math.min(o.linesLength,t-o.rendLineNumberStart);e>0&&(this._removeLinesBefore(o,e),o.linesLength-=e)}if(o.rendLineNumberStart=t,o.rendLineNumberStart+o.linesLength-1<i){const e=o.rendLineNumberStart+o.linesLength,s=i;e<=s&&(this._insertLinesAfter(o,e,s,n,t),o.linesLength+=s-e+1)}else if(o.rendLineNumberStart+o.linesLength-1>i){const e=Math.max(0,i-o.rendLineNumberStart+1),t=o.linesLength-1-e+1;t>0&&(this._removeLinesAfter(o,t),o.linesLength-=t)}return this._finishRendering(o,!1,n),o}_renderUntouchedLines(e,t,i,n,o){const s=e.rendLineNumberStart,r=e.lines;for(let a=t;a<=i;a++){const e=s+a;r[a].layoutLine(e,n[e-o])}}_insertLinesBefore(e,t,i,n,o){const s=[];let r=0;for(let a=t;a<=i;a++)s[r++]=this.host.createVisibleLine();e.lines=s.concat(e.lines)}_removeLinesBefore(e,t){for(let i=0;i<t;i++){const t=e.lines[i].getDomNode();t&&this.domNode.removeChild(t)}e.lines.splice(0,t)}_insertLinesAfter(e,t,i,n,o){const s=[];let r=0;for(let a=t;a<=i;a++)s[r++]=this.host.createVisibleLine();e.lines=e.lines.concat(s)}_removeLinesAfter(e,t){const i=e.linesLength-t;for(let n=0;n<t;n++){const t=e.lines[i+n].getDomNode();t&&this.domNode.removeChild(t)}e.lines.splice(i,t)}_finishRenderingNewLines(e,t,i,n){rt._ttPolicy&&(i=rt._ttPolicy.createHTML(i));const o=this.domNode.lastChild;t||!o?this.domNode.innerHTML=i:o.insertAdjacentHTML("afterend",i);let s=this.domNode.lastChild;for(let r=e.linesLength-1;r>=0;r--){const t=e.lines[r];n[r]&&(t.setDomNode(s),s=s.previousSibling)}}_finishRenderingInvalidLines(e,t,i){const n=document.createElement("div");rt._ttPolicy&&(t=rt._ttPolicy.createHTML(t)),n.innerHTML=t;for(let o=0;o<e.linesLength;o++){const t=e.lines[o];if(i[o]){const e=n.firstChild,i=t.getDomNode();i.parentNode.replaceChild(e,i),t.setDomNode(e)}}}_finishRendering(e,t,i){const n=rt._sb,o=e.linesLength,s=e.lines,r=e.rendLineNumberStart,a=[];{n.reset();let l=!1;for(let e=0;e<o;e++){const t=s[e];a[e]=!1;if(t.getDomNode())continue;t.renderLine(e+r,i[e],this.viewportData,n)&&(a[e]=!0,l=!0)}l&&this._finishRenderingNewLines(e,t,n.build(),a)}{n.reset();let t=!1;const l=[];for(let e=0;e<o;e++){const o=s[e];if(l[e]=!1,a[e])continue;o.renderLine(e+r,i[e],this.viewportData,n)&&(l[e]=!0,t=!0)}t&&this._finishRenderingInvalidLines(e,n.build(),l)}}}rt._ttPolicy=null===(it=window.trustedTypes)||void 0===it?void 0:it.createPolicy("editorViewLayer",{createHTML:e=>e}),rt._sb=(0,nt.l$)(1e5);class at extends K{constructor(e){super(e),this._visibleLines=new st(this),this.domNode=this._visibleLines.domNode,this._dynamicOverlays=[],this._isFocused=!1,this.domNode.setClassName("view-overlays")}shouldRender(){if(super.shouldRender())return!0;for(let e=0,t=this._dynamicOverlays.length;e<t;e++){if(this._dynamicOverlays[e].shouldRender())return!0}return!1}dispose(){super.dispose();for(let e=0,t=this._dynamicOverlays.length;e<t;e++){this._dynamicOverlays[e].dispose()}this._dynamicOverlays=[]}getDomNode(){return this.domNode}createVisibleLine(){return new lt(this._context.configuration,this._dynamicOverlays)}addDynamicOverlay(e){this._dynamicOverlays.push(e)}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e);const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();for(let n=t;n<=i;n++){this._visibleLines.getVisibleLine(n).onConfigurationChanged(e)}return!0}onFlushed(e){return this._visibleLines.onFlushed(e)}onFocusChanged(e){return this._isFocused=e.isFocused,!0}onLinesChanged(e){return this._visibleLines.onLinesChanged(e)}onLinesDeleted(e){return this._visibleLines.onLinesDeleted(e)}onLinesInserted(e){return this._visibleLines.onLinesInserted(e)}onScrollChanged(e){return this._visibleLines.onScrollChanged(e)||!0}onTokensChanged(e){return this._visibleLines.onTokensChanged(e)}onZonesChanged(e){return this._visibleLines.onZonesChanged(e)}prepareRender(e){const t=this._dynamicOverlays.filter((e=>e.shouldRender()));for(let i=0,n=t.length;i<n;i++){const n=t[i];n.prepareRender(e),n.onDidRender()}}render(e){this._viewOverlaysRender(e),this.domNode.toggleClassName("focused",this._isFocused)}_viewOverlaysRender(e){this._visibleLines.renderLines(e.viewportData)}}class lt{constructor(e,t){this._configuration=e,this._lineHeight=this._configuration.options.get(61),this._dynamicOverlays=t,this._domNode=null,this._renderedContent=null}getDomNode(){return this._domNode?this._domNode.domNode:null}setDomNode(e){this._domNode=(0,V.X)(e)}onContentChanged(){}onTokensChanged(){}onConfigurationChanged(e){this._lineHeight=this._configuration.options.get(61)}renderLine(e,t,i,n){let o="";for(let s=0,r=this._dynamicOverlays.length;s<r;s++){o+=this._dynamicOverlays[s].render(i.startLineNumber,e)}return this._renderedContent!==o&&(this._renderedContent=o,n.appendASCIIString('<div style="position:absolute;top:'),n.appendASCIIString(String(t)),n.appendASCIIString("px;width:100%;height:"),n.appendASCIIString(String(this._lineHeight)),n.appendASCIIString('px;">'),n.appendASCIIString(o),n.appendASCIIString("</div>"),!0)}layoutLine(e,t){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(this._lineHeight))}}class ct extends at{constructor(e){super(e);const t=this._context.configuration.options.get(133);this._contentWidth=t.contentWidth,this.domNode.setHeight(0)}onConfigurationChanged(e){const t=this._context.configuration.options.get(133);return this._contentWidth=t.contentWidth,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollWidthChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e),this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth))}}class dt extends at{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(133);this._contentLeft=i.contentLeft,this.domNode.setClassName("margin-view-overlays"),this.domNode.setWidth(1),(0,Ve.N)(this.domNode,t.get(46))}onConfigurationChanged(e){const t=this._context.configuration.options;(0,Ve.N)(this.domNode,t.get(46));const i=t.get(133);return this._contentLeft=i.contentLeft,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollHeightChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e);const t=Math.min(e.scrollHeight,1e6);this.domNode.setHeight(t),this.domNode.setWidth(this._contentLeft)}}class ht{constructor(e,t){this._coordinateBrand=void 0,this.top=e,this.left=t}}class ut extends K{constructor(e,t){super(e),this._viewDomNode=t,this._widgets={},this.domNode=(0,V.X)(document.createElement("div")),$.write(this.domNode,1),this.domNode.setClassName("contentWidgets"),this.domNode.setPosition("absolute"),this.domNode.setTop(0),this.overflowingContentWidgetsDomNode=(0,V.X)(document.createElement("div")),$.write(this.overflowingContentWidgetsDomNode,2),this.overflowingContentWidgetsDomNode.setClassName("overflowingContentWidgets")}dispose(){super.dispose(),this._widgets={}}onConfigurationChanged(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].onConfigurationChanged(e);return!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLineMappingChanged(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].onLineMappingChanged(e);return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return!0}onZonesChanged(e){return!0}addWidget(e){const t=new gt(this._context,this._viewDomNode,e);this._widgets[t.id]=t,t.allowEditorOverflow?this.overflowingContentWidgetsDomNode.appendChild(t.domNode):this.domNode.appendChild(t.domNode),this.setShouldRender()}setWidgetPosition(e,t,i,n){this._widgets[e.getId()].setPosition(t,i,n),this.setShouldRender()}removeWidget(e){const t=e.getId();if(this._widgets.hasOwnProperty(t)){const e=this._widgets[t];delete this._widgets[t];const i=e.domNode.domNode;i.parentNode.removeChild(i),i.removeAttribute("monaco-visible-content-widget"),this.setShouldRender()}}shouldSuppressMouseDownOnWidget(e){return!!this._widgets.hasOwnProperty(e)&&this._widgets[e].suppressMouseDown}onBeforeRender(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].onBeforeRender(e)}prepareRender(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].prepareRender(e)}render(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].render(e)}}class gt{constructor(e,t,i){this._context=e,this._viewDomNode=t,this._actual=i,this.domNode=(0,V.X)(this._actual.getDomNode()),this.id=this._actual.getId(),this.allowEditorOverflow=this._actual.allowEditorOverflow||!1,this.suppressMouseDown=this._actual.suppressMouseDown||!1;const n=this._context.configuration.options,o=n.get(133);this._fixedOverflowWidgets=n.get(38),this._contentWidth=o.contentWidth,this._contentLeft=o.contentLeft,this._lineHeight=n.get(61),this._range=null,this._viewRange=null,this._affinity=null,this._preference=[],this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1,this._maxWidth=this._getMaxWidth(),this._isVisible=!1,this._renderData=null,this.domNode.setPosition(this._fixedOverflowWidgets&&this.allowEditorOverflow?"fixed":"absolute"),this.domNode.setDisplay("none"),this.domNode.setVisibility("hidden"),this.domNode.setAttribute("widgetId",this.id),this.domNode.setMaxWidth(this._maxWidth)}onConfigurationChanged(e){const t=this._context.configuration.options;if(this._lineHeight=t.get(61),e.hasChanged(133)){const e=t.get(133);this._contentLeft=e.contentLeft,this._contentWidth=e.contentWidth,this._maxWidth=this._getMaxWidth()}}onLineMappingChanged(e){this._setPosition(this._range,this._affinity)}_setPosition(e,t){var i;if(this._range=e,this._viewRange=null,this._affinity=t,this._range){const e=this._context.viewModel.model.validateRange(this._range);(this._context.viewModel.coordinatesConverter.modelPositionIsVisible(e.getStartPosition())||this._context.viewModel.coordinatesConverter.modelPositionIsVisible(e.getEndPosition()))&&(this._viewRange=this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(e,null!==(i=this._affinity)&&void 0!==i?i:void 0))}}_getMaxWidth(){return this.allowEditorOverflow?window.innerWidth||document.documentElement.offsetWidth||document.body.offsetWidth:this._contentWidth}setPosition(e,t,i){this._setPosition(e,i),this._preference=t,this._viewRange&&this._preference&&this._preference.length>0?this.domNode.setDisplay("block"):this.domNode.setDisplay("none"),this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1}_layoutBoxInViewport(e,t,i,n,o){const s=e.top,r=s,a=t.top+this._lineHeight,l=s-n,c=r>=n,d=a,h=o.viewportHeight-a>=n;let u=e.left,g=t.left;return u+i>o.scrollLeft+o.viewportWidth&&(u=o.scrollLeft+o.viewportWidth-i),g+i>o.scrollLeft+o.viewportWidth&&(g=o.scrollLeft+o.viewportWidth-i),u<o.scrollLeft&&(u=o.scrollLeft),g<o.scrollLeft&&(g=o.scrollLeft),{fitsAbove:c,aboveTop:l,aboveLeft:u,fitsBelow:h,belowTop:d,belowLeft:g}}_layoutHorizontalSegmentInPage(e,t,i,n){const o=Math.max(0,t.left-n),s=Math.min(t.left+t.width+n,e.width);let r=t.left+i-c.DI.scrollX;if(r+n>s){const e=r-(s-n);r-=e,i-=e}if(r<o){const e=r-o;r-=e,i-=e}return[i,r]}_layoutBoxInPage(e,t,i,n,o){const s=e.top-n,r=t.top+this._lineHeight,a=c.i(this._viewDomNode.domNode),l=a.top+s-c.DI.scrollY,d=a.top+r-c.DI.scrollY,h=c.D6(document.body),[u,g]=this._layoutHorizontalSegmentInPage(h,a,e.left-o.scrollLeft+this._contentLeft,i),[p,m]=this._layoutHorizontalSegmentInPage(h,a,t.left-o.scrollLeft+this._contentLeft,i),f=l>=22,_=d+n<=h.height-22;return this._fixedOverflowWidgets?{fitsAbove:f,aboveTop:Math.max(l,22),aboveLeft:g,fitsBelow:_,belowTop:d,belowLeft:m}:{fitsAbove:f,aboveTop:s,aboveLeft:u,fitsBelow:_,belowTop:r,belowLeft:p}}_prepareRenderWidgetAtExactPositionOverflowing(e){return new ht(e.top,e.left+this._contentLeft)}_getTopAndBottomLeft(e){if(!this._viewRange)return[null,null];const t=e.linesVisibleRangesForRange(this._viewRange,!1);if(!t||0===t.length)return[null,null];let i=t[0],n=t[0];for(const c of t)c.lineNumber<i.lineNumber&&(i=c),c.lineNumber>n.lineNumber&&(n=c);let o=1073741824;for(const c of i.ranges)c.left<o&&(o=c.left);let s=1073741824;for(const c of n.ranges)c.left<s&&(s=c.left);const r=e.getVerticalOffsetForLineNumber(i.lineNumber)-e.scrollTop,a=new ht(r,o),l=e.getVerticalOffsetForLineNumber(n.lineNumber)-e.scrollTop;return[a,new ht(l,s)]}_prepareRenderWidget(e){if(!this._preference||0===this._preference.length)return null;const[t,i]=this._getTopAndBottomLeft(e);if(!t||!i)return null;if(-1===this._cachedDomNodeOffsetWidth||-1===this._cachedDomNodeOffsetHeight){let e=null;if("function"==typeof this._actual.beforeRender&&(e=pt(this._actual.beforeRender,this._actual)),e)this._cachedDomNodeOffsetWidth=e.width,this._cachedDomNodeOffsetHeight=e.height;else{const e=this.domNode.domNode.getBoundingClientRect();this._cachedDomNodeOffsetWidth=Math.round(e.width),this._cachedDomNodeOffsetHeight=Math.round(e.height)}}let n;n=this.allowEditorOverflow?this._layoutBoxInPage(t,i,this._cachedDomNodeOffsetWidth,this._cachedDomNodeOffsetHeight,e):this._layoutBoxInViewport(t,i,this._cachedDomNodeOffsetWidth,this._cachedDomNodeOffsetHeight,e);for(let o=1;o<=2;o++)for(const e of this._preference)if(1===e){if(!n)return null;if(2===o||n.fitsAbove)return{coordinate:new ht(n.aboveTop,n.aboveLeft),position:1}}else{if(2!==e)return this.allowEditorOverflow?{coordinate:this._prepareRenderWidgetAtExactPositionOverflowing(t),position:0}:{coordinate:t,position:0};if(!n)return null;if(2===o||n.fitsBelow)return{coordinate:new ht(n.belowTop,n.belowLeft),position:2}}return null}onBeforeRender(e){this._viewRange&&this._preference&&(this._viewRange.endLineNumber<e.startLineNumber||this._viewRange.startLineNumber>e.endLineNumber||this.domNode.setMaxWidth(this._maxWidth))}prepareRender(e){this._renderData=this._prepareRenderWidget(e)}render(e){if(!this._renderData)return this._isVisible&&(this.domNode.removeAttribute("monaco-visible-content-widget"),this._isVisible=!1,this.domNode.setVisibility("hidden")),void("function"==typeof this._actual.afterRender&&pt(this._actual.afterRender,this._actual,null));this.allowEditorOverflow?(this.domNode.setTop(this._renderData.coordinate.top),this.domNode.setLeft(this._renderData.coordinate.left)):(this.domNode.setTop(this._renderData.coordinate.top+e.scrollTop-e.bigNumbersDelta),this.domNode.setLeft(this._renderData.coordinate.left)),this._isVisible||(this.domNode.setVisibility("inherit"),this.domNode.setAttribute("monaco-visible-content-widget","true"),this._isVisible=!0),"function"==typeof this._actual.afterRender&&pt(this._actual.afterRender,this._actual,this._renderData.position)}}function pt(e,t,...i){try{return e.call(t,...i)}catch(it){return null}}class mt extends He{constructor(e){super(),this._context=e;const t=this._context.configuration.options,i=t.get(133);this._lineHeight=t.get(61),this._renderLineHighlight=t.get(87),this._renderLineHighlightOnlyWhenFocus=t.get(88),this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._selectionIsEmpty=!0,this._focused=!1,this._cursorLineNumbers=[1],this._selections=[new B.Y(1,1,1,1)],this._renderData=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}_readFromSelections(){let e=!1;const t=this._selections.map((e=>e.positionLineNumber));t.sort(((e,t)=>e-t)),m.fS(this._cursorLineNumbers,t)||(this._cursorLineNumbers=t,e=!0);const i=this._selections.every((e=>e.isEmpty()));return this._selectionIsEmpty!==i&&(this._selectionIsEmpty=i,e=!0),e}onThemeChanged(e){return this._readFromSelections()}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(133);return this._lineHeight=t.get(61),this._renderLineHighlight=t.get(87),this._renderLineHighlightOnlyWhenFocus=t.get(88),this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,!0}onCursorStateChanged(e){return this._selections=e.selections,this._readFromSelections()}onFlushed(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollWidthChanged||e.scrollTopChanged}onZonesChanged(e){return!0}onFocusChanged(e){return!!this._renderLineHighlightOnlyWhenFocus&&(this._focused=e.isFocused,!0)}prepareRender(e){if(!this._shouldRenderThis())return void(this._renderData=null);const t=this._renderOne(e),i=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,o=this._cursorLineNumbers.length;let s=0;const r=[];for(let a=i;a<=n;a++){const e=a-i;for(;s<o&&this._cursorLineNumbers[s]<a;)s++;s<o&&this._cursorLineNumbers[s]===a?r[e]=t:r[e]=""}this._renderData=r}render(e,t){if(!this._renderData)return"";const i=t-e;return i>=this._renderData.length?"":this._renderData[i]}_shouldRenderInMargin(){return("gutter"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}_shouldRenderInContent(){return("line"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}class ft extends mt{_renderOne(e){return`<div class="${"current-line"+(this._shouldRenderOther()?" current-line-both":"")}" style="width:${Math.max(e.scrollWidth,this._contentWidth)}px; height:${this._lineHeight}px;"></div>`}_shouldRenderThis(){return this._shouldRenderInContent()}_shouldRenderOther(){return this._shouldRenderInMargin()}}class _t extends mt{_renderOne(e){return`<div class="${"current-line"+(this._shouldRenderInMargin()?" current-line-margin":"")+(this._shouldRenderOther()?" current-line-margin-both":"")}" style="width:${this._contentLeft}px; height:${this._lineHeight}px;"></div>`}_shouldRenderThis(){return!0}_shouldRenderOther(){return this._shouldRenderInContent()}}(0,je.Ic)(((e,t)=>{const i=e.getColor(ze.Kh);if(i&&(t.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${i}; }`),t.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${i}; border: none; }`)),!i||i.isTransparent()||e.defines(ze.Mm)){const i=e.getColor(ze.Mm);i&&(t.addRule(`.monaco-editor .view-overlays .current-line { border: 2px solid ${i}; }`),t.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { border: 2px solid ${i}; }`),(0,ie.c3)(e.type)&&(t.addRule(".monaco-editor .view-overlays .current-line { border-width: 1px; }"),t.addRule(".monaco-editor .margin-view-overlays .current-line-margin { border-width: 1px; }")))}}));class vt extends He{constructor(e){super(),this._context=e;const t=this._context.configuration.options;this._lineHeight=t.get(61),this._typicalHalfwidthCharacterWidth=t.get(46).typicalHalfwidthCharacterWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._lineHeight=t.get(61),this._typicalHalfwidthCharacterWidth=t.get(46).typicalHalfwidthCharacterWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged||e.scrollWidthChanged}onZonesChanged(e){return!0}prepareRender(e){const t=e.getDecorationsInViewport();let i=[],n=0;for(let a=0,l=t.length;a<l;a++){const e=t[a];e.options.className&&(i[n++]=e)}i=i.sort(((e,t)=>{if(e.options.zIndex<t.options.zIndex)return-1;if(e.options.zIndex>t.options.zIndex)return 1;const i=e.options.className,n=t.options.className;return i<n?-1:i>n?1:fe.e.compareRangesUsingStarts(e.range,t.range)}));const o=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,r=[];for(let a=o;a<=s;a++){r[a-o]=""}this._renderWholeLineDecorations(e,i,r),this._renderNormalDecorations(e,i,r),this._renderResult=r}_renderWholeLineDecorations(e,t,i){const n=String(this._lineHeight),o=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber;for(let r=0,a=t.length;r<a;r++){const e=t[r];if(!e.options.isWholeLine)continue;const a='<div class="cdr '+e.options.className+'" style="left:0;width:100%;height:'+n+'px;"></div>',l=Math.max(e.range.startLineNumber,o),c=Math.min(e.range.endLineNumber,s);for(let t=l;t<=c;t++){i[t-o]+=a}}}_renderNormalDecorations(e,t,i){const n=String(this._lineHeight),o=e.visibleRange.startLineNumber;let s=null,r=!1,a=null;for(let l=0,c=t.length;l<c;l++){const c=t[l];if(c.options.isWholeLine)continue;const d=c.options.className,h=Boolean(c.options.showIfCollapsed);let u=c.range;h&&1===u.endColumn&&u.endLineNumber!==u.startLineNumber&&(u=new fe.e(u.startLineNumber,u.startColumn,u.endLineNumber-1,this._context.viewModel.getLineMaxColumn(u.endLineNumber-1))),s===d&&r===h&&fe.e.areIntersectingOrTouching(a,u)?a=fe.e.plusRange(a,u):(null!==s&&this._renderNormalDecoration(e,a,s,r,n,o,i),s=d,r=h,a=u)}null!==s&&this._renderNormalDecoration(e,a,s,r,n,o,i)}_renderNormalDecoration(e,t,i,n,o,s,r){const a=e.linesVisibleRangesForRange(t,"findMatch"===i);if(a)for(let l=0,c=a.length;l<c;l++){const e=a[l];if(e.outsideRenderedLine)continue;const t=e.lineNumber-s;if(n&&1===e.ranges.length){const t=e.ranges[0];if(t.width<this._typicalHalfwidthCharacterWidth){const i=Math.round(t.left+t.width/2),n=Math.max(0,Math.round(i-this._typicalHalfwidthCharacterWidth/2));e.ranges[0]=new Q(n,this._typicalHalfwidthCharacterWidth)}}for(let n=0,s=e.ranges.length;n<s;n++){const s=e.ranges[n],a='<div class="cdr '+i+'" style="left:'+String(s.left)+"px;width:"+String(s.width)+"px;height:"+o+'px;"></div>';r[t]+=a}}}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}var bt=i(63161),Ct=i(73910);class wt extends K{constructor(e,t,i,n){super(e);const o=this._context.configuration.options,s=o.get(94),r=o.get(69),a=o.get(36),l=o.get(97),d={listenOnDomNode:i.domNode,className:"editor-scrollable "+(0,je.m6)(e.theme.type),useShadows:!1,lazyRender:!0,vertical:s.vertical,horizontal:s.horizontal,verticalHasArrows:s.verticalHasArrows,horizontalHasArrows:s.horizontalHasArrows,verticalScrollbarSize:s.verticalScrollbarSize,verticalSliderSize:s.verticalSliderSize,horizontalScrollbarSize:s.horizontalScrollbarSize,horizontalSliderSize:s.horizontalSliderSize,handleMouseWheel:s.handleMouseWheel,alwaysConsumeMouseWheel:s.alwaysConsumeMouseWheel,arrowSize:s.arrowSize,mouseWheelScrollSensitivity:r,fastScrollSensitivity:a,scrollPredominantAxis:l,scrollByPage:s.scrollByPage};this.scrollbar=this._register(new bt.$Z(t.domNode,d,this._context.viewLayout.getScrollable())),$.write(this.scrollbar.getDomNode(),5),this.scrollbarDomNode=(0,V.X)(this.scrollbar.getDomNode()),this.scrollbarDomNode.setPosition("absolute"),this._setLayout();const h=(e,t,i)=>{const n={};if(t){const t=e.scrollTop;t&&(n.scrollTop=this._context.viewLayout.getCurrentScrollTop()+t,e.scrollTop=0)}if(i){const t=e.scrollLeft;t&&(n.scrollLeft=this._context.viewLayout.getCurrentScrollLeft()+t,e.scrollLeft=0)}this._context.viewModel.viewLayout.setScrollPosition(n,1)};this._register(c.nm(i.domNode,"scroll",(e=>h(i.domNode,!0,!0)))),this._register(c.nm(t.domNode,"scroll",(e=>h(t.domNode,!0,!1)))),this._register(c.nm(n.domNode,"scroll",(e=>h(n.domNode,!0,!1)))),this._register(c.nm(this.scrollbarDomNode.domNode,"scroll",(e=>h(this.scrollbarDomNode.domNode,!0,!1))))}dispose(){super.dispose()}_setLayout(){const e=this._context.configuration.options,t=e.get(133);this.scrollbarDomNode.setLeft(t.contentLeft);"right"===e.get(67).side?this.scrollbarDomNode.setWidth(t.contentWidth+t.minimap.minimapWidth):this.scrollbarDomNode.setWidth(t.contentWidth),this.scrollbarDomNode.setHeight(t.height)}getOverviewRulerLayoutInfo(){return this.scrollbar.getOverviewRulerLayoutInfo()}getDomNode(){return this.scrollbarDomNode}delegateVerticalScrollbarPointerDown(e){this.scrollbar.delegateVerticalScrollbarPointerDown(e)}onConfigurationChanged(e){if(e.hasChanged(94)||e.hasChanged(69)||e.hasChanged(36)){const e=this._context.configuration.options,t=e.get(94),i=e.get(69),n=e.get(36),o=e.get(97),s={vertical:t.vertical,horizontal:t.horizontal,verticalScrollbarSize:t.verticalScrollbarSize,horizontalScrollbarSize:t.horizontalScrollbarSize,scrollByPage:t.scrollByPage,handleMouseWheel:t.handleMouseWheel,mouseWheelScrollSensitivity:i,fastScrollSensitivity:n,scrollPredominantAxis:o};this.scrollbar.updateOptions(s)}return e.hasChanged(133)&&this._setLayout(),!0}onScrollChanged(e){return!0}onThemeChanged(e){return this.scrollbar.updateClassName("editor-scrollable "+(0,je.m6)(this._context.theme.type)),!0}prepareRender(e){}render(e){this.scrollbar.renderNow()}}(0,je.Ic)(((e,t)=>{const i=e.getColor(Ct._wn);i&&t.addRule(`\n\t\t\t.monaco-scrollable-element > .shadow.top {\n\t\t\t\tbox-shadow: ${i} 0 6px 6px -6px inset;\n\t\t\t}\n\n\t\t\t.monaco-scrollable-element > .shadow.left {\n\t\t\t\tbox-shadow: ${i} 6px 0 6px -6px inset;\n\t\t\t}\n\n\t\t\t.monaco-scrollable-element > .shadow.top.left {\n\t\t\t\tbox-shadow: ${i} 6px 6px 6px -6px inset;\n\t\t\t}\n\t\t`);const n=e.getColor(Ct.etL);n&&t.addRule(`\n\t\t\t.monaco-scrollable-element > .scrollbar > .slider {\n\t\t\t\tbackground: ${n};\n\t\t\t}\n\t\t`);const o=e.getColor(Ct.ABB);o&&t.addRule(`\n\t\t\t.monaco-scrollable-element > .scrollbar > .slider:hover {\n\t\t\t\tbackground: ${o};\n\t\t\t}\n\t\t`);const s=e.getColor(Ct.ynu);s&&t.addRule(`\n\t\t\t.monaco-scrollable-element > .scrollbar > .slider.active {\n\t\t\t\tbackground: ${s};\n\t\t\t}\n\t\t`)}));class yt{constructor(e,t,i){this._decorationToRenderBrand=void 0,this.startLineNumber=+e,this.endLineNumber=+t,this.className=String(i)}}class St extends He{_render(e,t,i){const n=[];for(let r=e;r<=t;r++){n[r-e]=[]}if(0===i.length)return n;i.sort(((e,t)=>e.className===t.className?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.className<t.className?-1:1));let o=null,s=0;for(let r=0,a=i.length;r<a;r++){const a=i[r],l=a.className;let c=Math.max(a.startLineNumber,e)-e;const d=Math.min(a.endLineNumber,t)-e;o===l?(c=Math.max(s+1,c),s=Math.max(s,d)):(o=l,s=d);for(let e=c;e<=s;e++)n[e].push(o)}return n}}class Lt extends St{constructor(e){super(),this._context=e;const t=this._context.configuration.options,i=t.get(133);this._lineHeight=t.get(61),this._glyphMargin=t.get(52),this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(133);return this._lineHeight=t.get(61),this._glyphMargin=t.get(52),this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getDecorations(e){const t=e.getDecorationsInViewport(),i=[];let n=0;for(let o=0,s=t.length;o<s;o++){const e=t[o],s=e.options.glyphMarginClassName;s&&(i[n++]=new yt(e.range.startLineNumber,e.range.endLineNumber,s))}return i}prepareRender(e){if(!this._glyphMargin)return void(this._renderResult=null);const t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,n=this._render(t,i,this._getDecorations(e)),o=this._lineHeight.toString(),s='" style="left:'+this._glyphMarginLeft.toString()+"px;width:"+this._glyphMarginWidth.toString()+"px;height:"+o+'px;"></div>',r=[];for(let a=t;a<=i;a++){const e=a-t,i=n[e];0===i.length?r[e]="":r[e]='<div class="cgmr codicon '+i.join(" ")+s}this._renderResult=r}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}var kt=i(98401),xt=i(1516),Dt=i(65094);class Nt extends He{constructor(e){super(),this._context=e,this._primaryPosition=null;const t=this._context.configuration.options,i=t.get(134),n=t.get(46);this._lineHeight=t.get(61),this._spaceWidth=n.spaceWidth,this._maxIndentLeft=-1===i.wrappingColumn?-1:i.wrappingColumn*n.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(13),this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(134),n=t.get(46);return this._lineHeight=t.get(61),this._spaceWidth=n.spaceWidth,this._maxIndentLeft=-1===i.wrappingColumn?-1:i.wrappingColumn*n.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(13),!0}onCursorStateChanged(e){var t;const i=e.selections[0].getPosition();return!(null===(t=this._primaryPosition)||void 0===t?void 0:t.equals(i))&&(this._primaryPosition=i,!0)}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}onLanguageConfigurationChanged(e){return!0}prepareRender(e){var t,i,n,o;if(!this._bracketPairGuideOptions.indentation&&!1===this._bracketPairGuideOptions.bracketPairs)return void(this._renderResult=null);const s=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,a=e.scrollWidth,l=this._lineHeight,c=this._primaryPosition,d=this.getGuidesByLine(s,r,c),h=[];for(let u=s;u<=r;u++){const r=u-s,c=d[r];let g="";const p=null!==(i=null===(t=e.visibleRangeForPosition(new me.L(u,1)))||void 0===t?void 0:t.left)&&void 0!==i?i:0;for(const t of c){const i=-1===t.column?p+(t.visibleColumn-1)*this._spaceWidth:e.visibleRangeForPosition(new me.L(u,t.column)).left;if(i>a||this._maxIndentLeft>0&&i>this._maxIndentLeft)break;const s=t.horizontalLine?t.horizontalLine.top?"horizontal-top":"horizontal-bottom":"vertical",r=t.horizontalLine?(null!==(o=null===(n=e.visibleRangeForPosition(new me.L(u,t.horizontalLine.endColumn)))||void 0===n?void 0:n.left)&&void 0!==o?o:i+this._spaceWidth)-i:this._spaceWidth;g+=`<div class="core-guide ${t.className} ${s}" style="left:${i}px;height:${l}px;width:${r}px"></div>`}h[r]=g}this._renderResult=h}getGuidesByLine(e,t,i){const n=!1!==this._bracketPairGuideOptions.bracketPairs?this._context.viewModel.getBracketGuidesInRangeByLine(e,t,i,{highlightActive:this._bracketPairGuideOptions.highlightActiveBracketPair,horizontalGuides:!0===this._bracketPairGuideOptions.bracketPairsHorizontal?Dt.s6.Enabled:"active"===this._bracketPairGuideOptions.bracketPairsHorizontal?Dt.s6.EnabledForActive:Dt.s6.Disabled,includeInactive:!0===this._bracketPairGuideOptions.bracketPairs}):null,o=this._bracketPairGuideOptions.indentation?this._context.viewModel.getLinesIndentGuides(e,t):null;let s=0,r=0,a=0;if(!1!==this._bracketPairGuideOptions.highlightActiveIndentation&&i){const n=this._context.viewModel.getActiveIndentGuide(i.lineNumber,e,t);s=n.startLineNumber,r=n.endLineNumber,a=n.indent}const{indentSize:l}=this._context.viewModel.model.getOptions(),c=[];for(let d=e;d<=t;d++){const t=new Array;c.push(t);const i=n?n[d-e]:[],h=new m.H9(i),u=o?o[d-e]:[];for(let e=1;e<=u;e++){const n=(e-1)*l+1,o=("always"===this._bracketPairGuideOptions.highlightActiveIndentation||0===i.length)&&s<=d&&d<=r&&e===a;t.push(...h.takeWhile((e=>e.visibleColumn<n))||[]);const c=h.peek();c&&c.visibleColumn===n&&!c.horizontalLine||t.push(new Dt.UO(n,-1,o?"core-guide-indent-active":"core-guide-indent",null,-1,-1))}t.push(...h.takeWhile((e=>!0))||[])}return c}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}function Et(e){if(!e||!e.isTransparent())return e}(0,je.Ic)(((e,t)=>{const i=e.getColor(ze.tR);i&&t.addRule(`.monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 ${i} inset; }`);const n=e.getColor(ze.Ym)||i;n&&t.addRule(`.monaco-editor .lines-content .core-guide-indent-active { box-shadow: 1px 0 0 0 ${n} inset; }`);const o=[{bracketColor:ze.zJ,guideColor:ze.oV,guideColorActive:ze.Qb},{bracketColor:ze.Vs,guideColor:ze.m$,guideColorActive:ze.m3},{bracketColor:ze.CE,guideColor:ze.DS,guideColorActive:ze.To},{bracketColor:ze.UP,guideColor:ze.lS,guideColorActive:ze.L7},{bracketColor:ze.r0,guideColor:ze.Jn,guideColorActive:ze.HV},{bracketColor:ze.m1,guideColor:ze.YF,guideColorActive:ze.f9}],s=new xt.W,r=o.map((t=>{var i,n;const o=e.getColor(t.bracketColor),s=e.getColor(t.guideColor),r=e.getColor(t.guideColorActive),a=Et(null!==(i=Et(s))&&void 0!==i?i:null==o?void 0:o.transparent(.3)),l=Et(null!==(n=Et(r))&&void 0!==n?n:o);if(a&&l)return{guideColor:a,guideColorActive:l}})).filter(kt.$K);if(r.length>0){for(let e=0;e<30;e++){const i=r[e%r.length];t.addRule(`.monaco-editor .${s.getInlineClassNameOfLevel(e).replace(/ /g,".")} { --guide-color: ${i.guideColor}; --guide-color-active: ${i.guideColorActive}; }`)}t.addRule(".monaco-editor .vertical { box-shadow: 1px 0 0 0 var(--guide-color) inset; }"),t.addRule(".monaco-editor .horizontal-top { border-top: 1px solid var(--guide-color); }"),t.addRule(".monaco-editor .horizontal-bottom { border-bottom: 1px solid var(--guide-color); }"),t.addRule(`.monaco-editor .vertical.${s.activeClassName} { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }`),t.addRule(`.monaco-editor .horizontal-top.${s.activeClassName} { border-top: 1px solid var(--guide-color-active); }`),t.addRule(`.monaco-editor .horizontal-bottom.${s.activeClassName} { border-bottom: 1px solid var(--guide-color-active); }`)}}));class It{constructor(){this._currentVisibleRange=new fe.e(1,1,1,1)}getCurrentVisibleRange(){return this._currentVisibleRange}setCurrentVisibleRange(e){this._currentVisibleRange=e}}class Tt{constructor(e,t,i,n,o,s,r){this.minimalReveal=e,this.lineNumber=t,this.startColumn=i,this.endColumn=n,this.startScrollTop=o,this.stopScrollTop=s,this.scrollType=r,this.type="range",this.minLineNumber=t,this.maxLineNumber=t}}class Mt{constructor(e,t,i,n,o){this.minimalReveal=e,this.selections=t,this.startScrollTop=i,this.stopScrollTop=n,this.scrollType=o,this.type="selections";let s=t[0].startLineNumber,r=t[0].endLineNumber;for(let a=1,l=t.length;a<l;a++){const e=t[a];s=Math.min(s,e.startLineNumber),r=Math.max(r,e.endLineNumber)}this.minLineNumber=s,this.maxLineNumber=r}}class At extends K{constructor(e,t){super(e),this._linesContent=t,this._textRangeRestingSpot=document.createElement("div"),this._visibleLines=new st(this),this.domNode=this._visibleLines.domNode;const i=this._context.configuration,n=this._context.configuration.options,o=n.get(46),s=n.get(134),r=n.get(133);this._lineHeight=n.get(61),this._typicalHalfwidthCharacterWidth=o.typicalHalfwidthCharacterWidth,this._isViewportWrapping=s.isViewportWrapping,this._revealHorizontalRightPadding=n.get(91),this._horizontalScrollbarHeight=r.horizontalScrollbarHeight,this._cursorSurroundingLines=n.get(25),this._cursorSurroundingLinesStyle=n.get(26),this._canUseLayerHinting=!n.get(28),this._viewLineOptions=new re(i,this._context.theme.type),$.write(this.domNode,7),this.domNode.setClassName(`view-lines ${qe.S}`),(0,Ve.N)(this.domNode,o),this._maxLineWidth=0,this._asyncUpdateLineWidths=new z.pY((()=>{this._updateLineWidthsSlow()}),200),this._asyncCheckMonospaceFontAssumptions=new z.pY((()=>{this._checkMonospaceFontAssumptions()}),2e3),this._lastRenderedData=new It,this._horizontalRevealRequest=null}dispose(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),super.dispose()}getDomNode(){return this.domNode}createVisibleLine(){return new ae(this._viewLineOptions)}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e),e.hasChanged(134)&&(this._maxLineWidth=0);const t=this._context.configuration.options,i=t.get(46),n=t.get(134),o=t.get(133);return this._lineHeight=t.get(61),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._isViewportWrapping=n.isViewportWrapping,this._revealHorizontalRightPadding=t.get(91),this._horizontalScrollbarHeight=o.horizontalScrollbarHeight,this._cursorSurroundingLines=t.get(25),this._cursorSurroundingLinesStyle=t.get(26),this._canUseLayerHinting=!t.get(28),(0,Ve.N)(this.domNode,i),this._onOptionsMaybeChanged(),e.hasChanged(133)&&(this._maxLineWidth=0),!0}_onOptionsMaybeChanged(){const e=this._context.configuration,t=new re(e,this._context.theme.type);if(!this._viewLineOptions.equals(t)){this._viewLineOptions=t;const e=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();for(let t=e;t<=i;t++){this._visibleLines.getVisibleLine(t).onOptionsChanged(this._viewLineOptions)}return!0}return!1}onCursorStateChanged(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let n=!1;for(let o=t;o<=i;o++)n=this._visibleLines.getVisibleLine(o).onSelectionChanged()||n;return n}onDecorationsChanged(e){{const e=this._visibleLines.getStartLineNumber(),t=this._visibleLines.getEndLineNumber();for(let i=e;i<=t;i++)this._visibleLines.getVisibleLine(i).onDecorationsChanged()}return!0}onFlushed(e){const t=this._visibleLines.onFlushed(e);return this._maxLineWidth=0,t}onLinesChanged(e){return this._visibleLines.onLinesChanged(e)}onLinesDeleted(e){return this._visibleLines.onLinesDeleted(e)}onLinesInserted(e){return this._visibleLines.onLinesInserted(e)}onRevealRangeRequest(e){const t=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),e.source,e.minimalReveal,e.range,e.selections,e.verticalType);if(-1===t)return!1;let i=this._context.viewLayout.validateScrollPosition({scrollTop:t});e.revealHorizontal?e.range&&e.range.startLineNumber!==e.range.endLineNumber?i={scrollTop:i.scrollTop,scrollLeft:0}:e.range?this._horizontalRevealRequest=new Tt(e.minimalReveal,e.range.startLineNumber,e.range.startColumn,e.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),i.scrollTop,e.scrollType):e.selections&&e.selections.length>0&&(this._horizontalRevealRequest=new Mt(e.minimalReveal,e.selections,this._context.viewLayout.getCurrentScrollTop(),i.scrollTop,e.scrollType)):this._horizontalRevealRequest=null;const n=Math.abs(this._context.viewLayout.getCurrentScrollTop()-i.scrollTop)<=this._lineHeight?1:e.scrollType;return this._context.viewModel.viewLayout.setScrollPosition(i,n),!0}onScrollChanged(e){if(this._horizontalRevealRequest&&e.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&e.scrollTopChanged){const t=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),i=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(e.scrollTop<t||e.scrollTop>i)&&(this._horizontalRevealRequest=null)}return this.domNode.setWidth(e.scrollWidth),this._visibleLines.onScrollChanged(e)||!0}onTokensChanged(e){return this._visibleLines.onTokensChanged(e)}onZonesChanged(e){return this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth),this._visibleLines.onZonesChanged(e)}onThemeChanged(e){return this._onOptionsMaybeChanged()}getPositionFromDOMInfo(e,t){const i=this._getViewLineDomNode(e);if(null===i)return null;const n=this._getLineNumberFor(i);if(-1===n)return null;if(n<1||n>this._context.viewModel.getLineCount())return null;if(1===this._context.viewModel.getLineMaxColumn(n))return new me.L(n,1);const o=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();if(n<o||n>s)return null;let r=this._visibleLines.getVisibleLine(n).getColumnOfNodeOffset(n,e,t);const a=this._context.viewModel.getLineMinColumn(n);return r<a&&(r=a),new me.L(n,r)}_getViewLineDomNode(e){for(;e&&1===e.nodeType;){if(e.className===ae.CLASS_NAME)return e;e=e.parentElement}return null}_getLineNumberFor(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();for(let n=t;n<=i;n++){if(e===this._visibleLines.getVisibleLine(n).getDomNode())return n}return-1}getLineWidth(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();return e<t||e>i?-1:this._visibleLines.getVisibleLine(e).getWidth()}linesVisibleRangesForRange(e,t){if(this.shouldRender())return null;const i=e.endLineNumber,n=fe.e.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange());if(!n)return null;const o=[];let s=0;const r=new se(this.domNode.domNode,this._textRangeRestingSpot);let a=0;t&&(a=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new me.L(n.startLineNumber,1)).lineNumber);const l=this._visibleLines.getStartLineNumber(),c=this._visibleLines.getEndLineNumber();for(let d=n.startLineNumber;d<=n.endLineNumber;d++){if(d<l||d>c)continue;const e=d===n.startLineNumber?n.startColumn:1,h=d===n.endLineNumber?n.endColumn:this._context.viewModel.getLineMaxColumn(d),u=this._visibleLines.getVisibleLine(d).getVisibleRangesForRange(d,e,h,r);if(u){if(t&&d<i){const e=a;a=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new me.L(d+1,1)).lineNumber,e!==a&&(u.ranges[u.ranges.length-1].width+=this._typicalHalfwidthCharacterWidth)}o[s++]=new G(u.outsideRenderedLine,d,Q.from(u.ranges))}}return 0===s?null:o}_visibleRangesForLineRange(e,t,i){return this.shouldRender()||e<this._visibleLines.getStartLineNumber()||e>this._visibleLines.getEndLineNumber()?null:this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e,t,i,new se(this.domNode.domNode,this._textRangeRestingSpot))}visibleRangeForPosition(e){const t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new Y(t.outsideRenderedLine,t.ranges[0].left):null}updateLineWidths(){this._updateLineWidths(!1)}_updateLineWidthsFast(){return this._updateLineWidths(!0)}_updateLineWidthsSlow(){this._updateLineWidths(!1)}_updateLineWidths(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let n=1,o=!0;for(let s=t;s<=i;s++){const t=this._visibleLines.getVisibleLine(s);!e||t.getWidthIsFast()?n=Math.max(n,t.getWidth()):o=!1}return o&&1===t&&i===this._context.viewModel.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(n),o}_checkMonospaceFontAssumptions(){let e=-1,t=-1;const i=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber();for(let o=i;o<=n;o++){const i=this._visibleLines.getVisibleLine(o);if(i.needsMonospaceFontCheck()){const n=i.getWidth();n>t&&(t=n,e=o)}}if(-1!==e&&!this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid())for(let o=i;o<=n;o++){this._visibleLines.getVisibleLine(o).onMonospaceAssumptionsInvalidated()}}prepareRender(){throw new Error("Not supported")}render(){throw new Error("Not supported")}renderText(e){if(this._visibleLines.renderLines(e),this._lastRenderedData.setCurrentVisibleRange(e.visibleRange),this.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._horizontalRevealRequest){const t=this._horizontalRevealRequest;if(e.startLineNumber<=t.minLineNumber&&t.maxLineNumber<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();const e=this._computeScrollLeftToReveal(t);e&&(this._isViewportWrapping||this._ensureMaxLineWidth(e.maxHorizontalOffset),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:e.scrollLeft},t.scrollType))}}if(this._updateLineWidthsFast()||this._asyncUpdateLineWidths.schedule(),_.IJ&&!this._asyncCheckMonospaceFontAssumptions.isScheduled()){const e=this._visibleLines.getStartLineNumber(),t=this._visibleLines.getEndLineNumber();for(let i=e;i<=t;i++){if(this._visibleLines.getVisibleLine(i).needsMonospaceFontCheck()){this._asyncCheckMonospaceFontAssumptions.schedule();break}}}this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain("strict");const t=this._context.viewLayout.getCurrentScrollTop()-e.bigNumbersDelta;this._linesContent.setTop(-t),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())}_ensureMaxLineWidth(e){const t=Math.ceil(e);this._maxLineWidth<t&&(this._maxLineWidth=t,this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth))}_computeScrollTopToRevealRange(e,t,i,n,o,s){const r=e.top,a=e.height,l=r+a;let c,d,h;if(o&&o.length>0){let e=o[0].startLineNumber,t=o[0].endLineNumber;for(let i=1,n=o.length;i<n;i++){const n=o[i];e=Math.min(e,n.startLineNumber),t=Math.max(t,n.endLineNumber)}c=!1,d=this._context.viewLayout.getVerticalOffsetForLineNumber(e),h=this._context.viewLayout.getVerticalOffsetForLineNumber(t)+this._lineHeight}else{if(!n)return-1;c=!0,d=this._context.viewLayout.getVerticalOffsetForLineNumber(n.startLineNumber),h=this._context.viewLayout.getVerticalOffsetForLineNumber(n.endLineNumber)+this._lineHeight}if(("mouse"===t||i)&&"default"===this._cursorSurroundingLinesStyle)i||(d-=this._lineHeight);else{const e=Math.min(a/this._lineHeight/2,this._cursorSurroundingLines);d-=e*this._lineHeight,h+=Math.max(0,e-1)*this._lineHeight}let u;if(0!==s&&4!==s||(h+=i?this._horizontalScrollbarHeight:this._lineHeight),h-d>a){if(!c)return-1;u=d}else if(5===s||6===s)if(6===s&&r<=d&&h<=l)u=r;else{const e=d-Math.max(5*this._lineHeight,.2*a),t=h-a;u=Math.max(t,e)}else if(1===s||2===s)if(2===s&&r<=d&&h<=l)u=r;else{const e=(d+h)/2;u=Math.max(0,e-a/2)}else u=this._computeMinimumScrolling(r,l,d,h,3===s,4===s);return u}_computeScrollLeftToReveal(e){const t=this._context.viewLayout.getCurrentViewport(),i=t.left,n=i+t.width;let o=1073741824,s=0;if("range"===e.type){const t=this._visibleRangesForLineRange(e.lineNumber,e.startColumn,e.endColumn);if(!t)return null;for(const e of t.ranges)o=Math.min(o,Math.round(e.left)),s=Math.max(s,Math.round(e.left+e.width))}else for(const r of e.selections){if(r.startLineNumber!==r.endLineNumber)return null;const e=this._visibleRangesForLineRange(r.startLineNumber,r.startColumn,r.endColumn);if(!e)return null;for(const t of e.ranges)o=Math.min(o,Math.round(t.left)),s=Math.max(s,Math.round(t.left+t.width))}if(e.minimalReveal||(o=Math.max(0,o-At.HORIZONTAL_EXTRA_PX),s+=this._revealHorizontalRightPadding),"selections"===e.type&&s-o>t.width)return null;return{scrollLeft:this._computeMinimumScrolling(i,n,o,s),maxHorizontalOffset:s}}_computeMinimumScrolling(e,t,i,n,o,s){o=!!o,s=!!s;const r=(t|=0)-(e|=0);return(n|=0)-(i|=0)<r?o?i:s?Math.max(0,n-r):i<e?i:n>t?Math.max(0,n-r):e:i}}At.HORIZONTAL_EXTRA_PX=30;class Rt extends St{constructor(e){super(),this._context=e;const t=this._context.configuration.options.get(133);this._decorationsLeft=t.decorationsLeft,this._decorationsWidth=t.decorationsWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options.get(133);return this._decorationsLeft=t.decorationsLeft,this._decorationsWidth=t.decorationsWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getDecorations(e){const t=e.getDecorationsInViewport(),i=[];let n=0;for(let o=0,s=t.length;o<s;o++){const e=t[o],s=e.options.linesDecorationsClassName;s&&(i[n++]=new yt(e.range.startLineNumber,e.range.endLineNumber,s));const r=e.options.firstLineDecorationClassName;r&&(i[n++]=new yt(e.range.startLineNumber,e.range.startLineNumber,r))}return i}prepareRender(e){const t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,n=this._render(t,i,this._getDecorations(e)),o='" style="left:'+this._decorationsLeft.toString()+"px;width:"+this._decorationsWidth.toString()+'px;"></div>',s=[];for(let r=t;r<=i;r++){const e=r-t,i=n[e];let a="";for(let t=0,n=i.length;t<n;t++)a+='<div class="cldr '+i[t]+o;s[e]=a}this._renderResult=s}render(e,t){return this._renderResult?this._renderResult[t-e]:""}}class Ot extends St{constructor(e){super(),this._context=e,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){return!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getDecorations(e){const t=e.getDecorationsInViewport(),i=[];let n=0;for(let o=0,s=t.length;o<s;o++){const e=t[o],s=e.options.marginClassName;s&&(i[n++]=new yt(e.range.startLineNumber,e.range.endLineNumber,s))}return i}prepareRender(e){const t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,n=this._render(t,i,this._getDecorations(e)),o=[];for(let s=t;s<=i;s++){const e=s-t,i=n[e];let r="";for(let t=0,n=i.length;t<n;t++)r+='<div class="cmdr '+i[t]+'" style=""></div>';o[e]=r}this._renderResult=o}render(e,t){return this._renderResult?this._renderResult[t-e]:""}}var Pt=i(93911);class Ft{constructor(e,t,i,n){this._rgba8Brand=void 0,this.r=Ft._clamp(e),this.g=Ft._clamp(t),this.b=Ft._clamp(i),this.a=Ft._clamp(n)}equals(e){return this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}static _clamp(e){return e<0?0:e>255?255:0|e}}Ft.Empty=new Ft(0,0,0,0);class Bt extends u.JT{constructor(){super(),this._onDidChange=new h.Q5,this.onDidChange=this._onDidChange.event,this._updateColorMap(),this._register(Ge.RW.onDidChange((e=>{e.changedColorMap&&this._updateColorMap()})))}static getInstance(){return this._INSTANCE||(this._INSTANCE=(0,u.dk)(new Bt)),this._INSTANCE}_updateColorMap(){const e=Ge.RW.getColorMap();if(!e)return this._colors=[Ft.Empty],void(this._backgroundIsLight=!0);this._colors=[Ft.Empty];for(let i=1;i<e.length;i++){const t=e[i].rgba;this._colors[i]=new Ft(t.r,t.g,t.b,Math.round(255*t.a))}const t=e[2].getRelativeLuminance();this._backgroundIsLight=t>=.5,this._onDidChange.fire(void 0)}getColor(e){return(e<1||e>=this._colors.length)&&(e=2),this._colors[e]}backgroundIsLight(){return this._backgroundIsLight}}Bt._INSTANCE=null;var Vt=i(1118);const Wt=(()=>{const e=[];for(let t=32;t<=126;t++)e.push(t);return e.push(65533),e})();var Ht=i(85427);class zt{constructor(e,t){this.scale=t,this._minimapCharRendererBrand=void 0,this.charDataNormal=zt.soften(e,.8),this.charDataLight=zt.soften(e,50/60)}static soften(e,t){const i=new Uint8ClampedArray(e.length);for(let n=0,o=e.length;n<o;n++)i[n]=(0,Ht.K)(e[n]*t);return i}renderChar(e,t,i,n,o,s,r,a,l,c,d){const h=1*this.scale,u=2*this.scale,g=d?1:u;if(t+h>e.width||i+g>e.height)return void console.warn("bad render request outside image data");const p=c?this.charDataLight:this.charDataNormal,m=((e,t)=>(e-=32)<0||e>96?t<=2?(e+96)%96:95:e)(n,l),f=4*e.width,_=r.r,v=r.g,b=r.b,C=o.r-_,w=o.g-v,y=o.b-b,S=Math.max(s,a),L=e.data;let k=m*h*u,x=i*f+4*t;for(let D=0;D<g;D++){let e=x;for(let t=0;t<h;t++){const t=p[k++]/255*(s/255);L[e++]=_+C*t,L[e++]=v+w*t,L[e++]=b+y*t,L[e++]=S}x+=f}}blockRenderChar(e,t,i,n,o,s,r,a){const l=1*this.scale,c=2*this.scale,d=a?1:c;if(t+l>e.width||i+d>e.height)return void console.warn("bad render request outside image data");const h=4*e.width,u=o/255*.5,g=s.r,p=s.g,m=s.b,f=g+(n.r-g)*u,_=p+(n.g-p)*u,v=m+(n.b-m)*u,b=Math.max(o,r),C=e.data;let w=i*h+4*t;for(let y=0;y<d;y++){let e=w;for(let t=0;t<l;t++)C[e++]=f,C[e++]=_,C[e++]=v,C[e++]=b;w+=h}}}var jt=i(88289);const Ut={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},Kt=e=>{const t=new Uint8ClampedArray(e.length/2);for(let i=0;i<e.length;i+=2)t[i>>1]=Ut[e[i]]<<4|15&Ut[e[i+1]];return t},$t={1:(0,jt.I)((()=>Kt("0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792"))),2:(0,jt.I)((()=>Kt("000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126")))};class qt{static create(e,t){if(this.lastCreated&&e===this.lastCreated.scale&&t===this.lastFontFamily)return this.lastCreated;let i;return i=$t[e]?new zt($t[e](),e):qt.createFromSampleData(qt.createSampleData(t).data,e),this.lastFontFamily=t,this.lastCreated=i,i}static createSampleData(e){const t=document.createElement("canvas"),i=t.getContext("2d");t.style.height="16px",t.height=16,t.width=960,t.style.width="960px",i.fillStyle="#ffffff",i.font=`bold 16px ${e}`,i.textBaseline="middle";let n=0;for(const o of Wt)i.fillText(String.fromCharCode(o),n,8),n+=10;return i.getImageData(0,0,960,16)}static createFromSampleData(e,t){if(61440!==e.length)throw new Error("Unexpected source in MinimapCharRenderer");const i=qt._downsample(e,t);return new zt(i,t)}static _downsampleChar(e,t,i,n,o){const s=1*o,r=2*o;let a=n,l=0;for(let c=0;c<r;c++){const n=c/r*16,o=(c+1)/r*16;for(let r=0;r<s;r++){const c=r/s*10,d=(r+1)/s*10;let h=0,u=0;for(let i=n;i<o;i++){const n=t+3840*Math.floor(i),o=1-(i-Math.floor(i));for(let t=c;t<d;t++){const i=1-(t-Math.floor(t)),s=n+4*Math.floor(t),r=i*o;u+=r,h+=e[s]*e[s+3]/255*r}}const g=h/u;l=Math.max(l,g),i[a++]=(0,Ht.K)(g)}}return l}static _downsample(e,t){const i=2*t*1*t,n=96*i,o=new Uint8ClampedArray(n);let s=0,r=0,a=0;for(let l=0;l<96;l++)a=Math.max(a,this._downsampleChar(e,r,o,s,t)),s+=i,r+=40;if(a>0){const e=255/a;for(let t=0;t<n;t++)o[t]*=e}return o}}var Gt=i(84973);class Qt{constructor(e,t,i){const n=e.options,o=n.get(131),s=n.get(133),r=s.minimap,a=n.get(46),l=n.get(67);this.renderMinimap=r.renderMinimap,this.size=l.size,this.minimapHeightIsEditorHeight=r.minimapHeightIsEditorHeight,this.scrollBeyondLastLine=n.get(96),this.showSlider=l.showSlider,this.autohide=l.autohide,this.pixelRatio=o,this.typicalHalfwidthCharacterWidth=a.typicalHalfwidthCharacterWidth,this.lineHeight=n.get(61),this.minimapLeft=r.minimapLeft,this.minimapWidth=r.minimapWidth,this.minimapHeight=s.height,this.canvasInnerWidth=r.minimapCanvasInnerWidth,this.canvasInnerHeight=r.minimapCanvasInnerHeight,this.canvasOuterWidth=r.minimapCanvasOuterWidth,this.canvasOuterHeight=r.minimapCanvasOuterHeight,this.isSampling=r.minimapIsSampling,this.editorHeight=s.height,this.fontScale=r.minimapScale,this.minimapLineHeight=r.minimapLineHeight,this.minimapCharWidth=1*this.fontScale,this.charRenderer=(0,jt.I)((()=>qt.create(this.fontScale,a.fontFamily))),this.defaultBackgroundColor=i.getColor(2),this.backgroundColor=Qt._getMinimapBackground(t,this.defaultBackgroundColor),this.foregroundAlpha=Qt._getMinimapForegroundOpacity(t)}static _getMinimapBackground(e,t){const i=e.getColor(Ct.kVY);return i?new Ft(i.rgba.r,i.rgba.g,i.rgba.b,Math.round(255*i.rgba.a)):t}static _getMinimapForegroundOpacity(e){const t=e.getColor(Ct.Itd);return t?Ft._clamp(Math.round(255*t.rgba.a)):255}equals(e){return this.renderMinimap===e.renderMinimap&&this.size===e.size&&this.minimapHeightIsEditorHeight===e.minimapHeightIsEditorHeight&&this.scrollBeyondLastLine===e.scrollBeyondLastLine&&this.showSlider===e.showSlider&&this.autohide===e.autohide&&this.pixelRatio===e.pixelRatio&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.lineHeight===e.lineHeight&&this.minimapLeft===e.minimapLeft&&this.minimapWidth===e.minimapWidth&&this.minimapHeight===e.minimapHeight&&this.canvasInnerWidth===e.canvasInnerWidth&&this.canvasInnerHeight===e.canvasInnerHeight&&this.canvasOuterWidth===e.canvasOuterWidth&&this.canvasOuterHeight===e.canvasOuterHeight&&this.isSampling===e.isSampling&&this.editorHeight===e.editorHeight&&this.fontScale===e.fontScale&&this.minimapLineHeight===e.minimapLineHeight&&this.minimapCharWidth===e.minimapCharWidth&&this.defaultBackgroundColor&&this.defaultBackgroundColor.equals(e.defaultBackgroundColor)&&this.backgroundColor&&this.backgroundColor.equals(e.backgroundColor)&&this.foregroundAlpha===e.foregroundAlpha}}class Zt{constructor(e,t,i,n,o,s,r,a){this.scrollTop=e,this.scrollHeight=t,this.sliderNeeded=i,this._computedSliderRatio=n,this.sliderTop=o,this.sliderHeight=s,this.startLineNumber=r,this.endLineNumber=a}getDesiredScrollTopFromDelta(e){return Math.round(this.scrollTop+e/this._computedSliderRatio)}getDesiredScrollTopFromTouchLocation(e){return Math.round((e-this.sliderHeight/2)/this._computedSliderRatio)}static create(e,t,i,n,o,s,r,a,l,c,d){const h=e.pixelRatio,u=e.minimapLineHeight,g=Math.floor(e.canvasInnerHeight/u),p=e.lineHeight;if(e.minimapHeightIsEditorHeight){const t=a*e.lineHeight+(e.scrollBeyondLastLine?o-e.lineHeight:0),i=Math.max(1,Math.floor(o*o/t)),n=Math.max(0,e.minimapHeight-i),s=n/(c-o),d=l*s,h=n>0,u=Math.floor(e.canvasInnerHeight/e.minimapLineHeight);return new Zt(l,c,h,s,d,i,1,Math.min(r,u))}let m,f;if(s&&i!==r){const e=i-t+1;m=Math.floor(e*u/h)}else{const e=o/p;m=Math.floor(e*u/h)}f=e.scrollBeyondLastLine?(r-1)*u/h:Math.max(0,r*u/h-m),f=Math.min(e.minimapHeight-m,f);const _=f/(c-o),v=l*_;let b=0;if(e.scrollBeyondLastLine){b=o/p-1}if(g>=r+b){return new Zt(l,c,f>0,_,v,m,1,r)}{let e=Math.max(1,Math.floor(t-v*h/u));d&&d.scrollHeight===c&&(d.scrollTop>l&&(e=Math.min(e,d.startLineNumber)),d.scrollTop<l&&(e=Math.max(e,d.startLineNumber)));const i=Math.min(r,e+g-1);return new Zt(l,c,!0,_,(t-e+(l-n)/p)*u/h,m,e,i)}}}class Yt{constructor(e){this.dy=e}onContentChanged(){this.dy=-1}onTokensChanged(){this.dy=-1}}Yt.INVALID=new Yt(-1);class Jt{constructor(e,t,i){this.renderedLayout=e,this._imageData=t,this._renderedLines=new ot((()=>Yt.INVALID)),this._renderedLines._set(e.startLineNumber,i)}linesEquals(e){if(!this.scrollEquals(e))return!1;const t=this._renderedLines._get().lines;for(let i=0,n=t.length;i<n;i++)if(-1===t[i].dy)return!1;return!0}scrollEquals(e){return this.renderedLayout.startLineNumber===e.startLineNumber&&this.renderedLayout.endLineNumber===e.endLineNumber}_get(){const e=this._renderedLines._get();return{imageData:this._imageData,rendLineNumberStart:e.rendLineNumberStart,lines:e.lines}}onLinesChanged(e,t){return this._renderedLines.onLinesChanged(e,t)}onLinesDeleted(e,t){this._renderedLines.onLinesDeleted(e,t)}onLinesInserted(e,t){this._renderedLines.onLinesInserted(e,t)}onTokensChanged(e){return this._renderedLines.onTokensChanged(e)}}class Xt{constructor(e,t,i,n){this._backgroundFillData=Xt._createBackgroundFillData(t,i,n),this._buffers=[e.createImageData(t,i),e.createImageData(t,i)],this._lastUsedBuffer=0}getBuffer(){this._lastUsedBuffer=1-this._lastUsedBuffer;const e=this._buffers[this._lastUsedBuffer];return e.data.set(this._backgroundFillData),e}static _createBackgroundFillData(e,t,i){const n=i.r,o=i.g,s=i.b,r=i.a,a=new Uint8ClampedArray(e*t*4);let l=0;for(let c=0;c<t;c++)for(let t=0;t<e;t++)a[l]=n,a[l+1]=o,a[l+2]=s,a[l+3]=r,l+=4;return a}}class ei{constructor(e,t){this.samplingRatio=e,this.minimapLines=t}static compute(e,t,i){if(0===e.renderMinimap||!e.isSampling)return[null,[]];const n=e.pixelRatio,o=e.lineHeight,s=e.scrollBeyondLastLine,{minimapLineCount:r}=k.gk.computeContainedMinimapLineCount({viewLineCount:t,scrollBeyondLastLine:s,height:e.editorHeight,lineHeight:o,pixelRatio:n}),a=t/r,l=a/2;if(!i||0===i.minimapLines.length){const e=[];if(e[0]=1,r>1){for(let t=0,i=r-1;t<i;t++)e[t]=Math.round(t*a+l);e[r-1]=t}return[new ei(a,e),[]]}const c=i.minimapLines,d=c.length,h=[];let u=0,g=0,p=1;let m=[],f=null;for(let _=0;_<r;_++){const e=Math.max(p,Math.round(_*a)),i=Math.max(e,Math.round((_+1)*a));for(;u<d&&c[u]<e;){if(m.length<10){const e=u+1+g;f&&"deleted"===f.type&&f._oldIndex===u-1?f.deleteToLineNumber++:(f={type:"deleted",_oldIndex:u,deleteFromLineNumber:e,deleteToLineNumber:e},m.push(f)),g--}u++}let n;if(u<d&&c[u]<=i)n=c[u],u++;else if(n=0===_?1:_+1===r?t:Math.round(_*a+l),m.length<10){const e=u+1+g;f&&"inserted"===f.type&&f._i===_-1?f.insertToLineNumber++:(f={type:"inserted",_i:_,insertFromLineNumber:e,insertToLineNumber:e},m.push(f)),g++}h[_]=n,p=n}if(m.length<10)for(;u<d;){const e=u+1+g;f&&"deleted"===f.type&&f._oldIndex===u-1?f.deleteToLineNumber++:(f={type:"deleted",_oldIndex:u,deleteFromLineNumber:e,deleteToLineNumber:e},m.push(f)),g--,u++}else m=[{type:"flush"}];return[new ei(a,h),m]}modelLineToMinimapLine(e){return Math.min(this.minimapLines.length,Math.max(1,Math.round(e/this.samplingRatio)))}modelLineRangeToMinimapLineRange(e,t){let i=this.modelLineToMinimapLine(e)-1;for(;i>0&&this.minimapLines[i-1]>=e;)i--;let n=this.modelLineToMinimapLine(t)-1;for(;n+1<this.minimapLines.length&&this.minimapLines[n+1]<=t;)n++;if(i===n){const n=this.minimapLines[i];if(n<e||n>t)return null}return[i+1,n+1]}decorationLineRangeToMinimapLineRange(e,t){let i=this.modelLineToMinimapLine(e),n=this.modelLineToMinimapLine(t);return e!==t&&n===i&&(n===this.minimapLines.length?i>1&&i--:n++),[i,n]}onLinesDeleted(e){const t=e.toLineNumber-e.fromLineNumber+1;let i=this.minimapLines.length,n=0;for(let o=this.minimapLines.length-1;o>=0&&!(this.minimapLines[o]<e.fromLineNumber);o--)this.minimapLines[o]<=e.toLineNumber?(this.minimapLines[o]=Math.max(1,e.fromLineNumber-1),i=Math.min(i,o),n=Math.max(n,o)):this.minimapLines[o]-=t;return[i,n]}onLinesInserted(e){const t=e.toLineNumber-e.fromLineNumber+1;for(let i=this.minimapLines.length-1;i>=0&&!(this.minimapLines[i]<e.fromLineNumber);i--)this.minimapLines[i]+=t}}class ti extends K{constructor(e){super(e),this.tokensColorTracker=Bt.getInstance(),this._selections=[],this._minimapSelections=null,this.options=new Qt(this._context.configuration,this._context.theme,this.tokensColorTracker);const[t]=ei.compute(this.options,this._context.viewModel.getLineCount(),null);this._samplingState=t,this._shouldCheckSampling=!1,this._actual=new ii(e.theme,this)}dispose(){this._actual.dispose(),super.dispose()}getDomNode(){return this._actual.getDomNode()}_onOptionsMaybeChanged(){const e=new Qt(this._context.configuration,this._context.theme,this.tokensColorTracker);return!this.options.equals(e)&&(this.options=e,this._recreateLineSampling(),this._actual.onDidChangeOptions(),!0)}onConfigurationChanged(e){return this._onOptionsMaybeChanged()}onCursorStateChanged(e){return this._selections=e.selections,this._minimapSelections=null,this._actual.onSelectionChanged()}onDecorationsChanged(e){return!!e.affectsMinimap&&this._actual.onDecorationsChanged()}onFlushed(e){return this._samplingState&&(this._shouldCheckSampling=!0),this._actual.onFlushed()}onLinesChanged(e){if(this._samplingState){const t=this._samplingState.modelLineRangeToMinimapLineRange(e.fromLineNumber,e.fromLineNumber+e.count-1);return!!t&&this._actual.onLinesChanged(t[0],t[1]-t[0]+1)}return this._actual.onLinesChanged(e.fromLineNumber,e.count)}onLinesDeleted(e){if(this._samplingState){const[t,i]=this._samplingState.onLinesDeleted(e);return t<=i&&this._actual.onLinesChanged(t+1,i-t+1),this._shouldCheckSampling=!0,!0}return this._actual.onLinesDeleted(e.fromLineNumber,e.toLineNumber)}onLinesInserted(e){return this._samplingState?(this._samplingState.onLinesInserted(e),this._shouldCheckSampling=!0,!0):this._actual.onLinesInserted(e.fromLineNumber,e.toLineNumber)}onScrollChanged(e){return this._actual.onScrollChanged()}onThemeChanged(e){return this._actual.onThemeChanged(),this._onOptionsMaybeChanged(),!0}onTokensChanged(e){if(this._samplingState){const t=[];for(const i of e.ranges){const e=this._samplingState.modelLineRangeToMinimapLineRange(i.fromLineNumber,i.toLineNumber);e&&t.push({fromLineNumber:e[0],toLineNumber:e[1]})}return!!t.length&&this._actual.onTokensChanged(t)}return this._actual.onTokensChanged(e.ranges)}onTokensColorsChanged(e){return this._onOptionsMaybeChanged(),this._actual.onTokensColorsChanged()}onZonesChanged(e){return this._actual.onZonesChanged()}prepareRender(e){this._shouldCheckSampling&&(this._shouldCheckSampling=!1,this._recreateLineSampling())}render(e){let t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber;this._samplingState&&(t=this._samplingState.modelLineToMinimapLine(t),i=this._samplingState.modelLineToMinimapLine(i));const n={viewportContainsWhitespaceGaps:e.viewportData.whitespaceViewportData.length>0,scrollWidth:e.scrollWidth,scrollHeight:e.scrollHeight,viewportStartLineNumber:t,viewportEndLineNumber:i,viewportStartLineNumberVerticalOffset:e.getVerticalOffsetForLineNumber(t),scrollTop:e.scrollTop,scrollLeft:e.scrollLeft,viewportWidth:e.viewportWidth,viewportHeight:e.viewportHeight};this._actual.render(n)}_recreateLineSampling(){this._minimapSelections=null;const e=Boolean(this._samplingState),[t,i]=ei.compute(this.options,this._context.viewModel.getLineCount(),this._samplingState);if(this._samplingState=t,e&&this._samplingState)for(const n of i)switch(n.type){case"deleted":this._actual.onLinesDeleted(n.deleteFromLineNumber,n.deleteToLineNumber);break;case"inserted":this._actual.onLinesInserted(n.insertFromLineNumber,n.insertToLineNumber);break;case"flush":this._actual.onFlushed()}}getLineCount(){return this._samplingState?this._samplingState.minimapLines.length:this._context.viewModel.getLineCount()}getRealLineCount(){return this._context.viewModel.getLineCount()}getLineContent(e){return this._samplingState?this._context.viewModel.getLineContent(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineContent(e)}getLineMaxColumn(e){return this._samplingState?this._context.viewModel.getLineMaxColumn(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineMaxColumn(e)}getMinimapLinesRenderingData(e,t,i){if(this._samplingState){const n=[];for(let o=0,s=t-e+1;o<s;o++)i[o]?n[o]=this._context.viewModel.getViewLineData(this._samplingState.minimapLines[e+o-1]):n[o]=null;return n}return this._context.viewModel.getMinimapLinesRenderingData(e,t,i).data}getSelections(){if(null===this._minimapSelections)if(this._samplingState){this._minimapSelections=[];for(const e of this._selections){const[t,i]=this._samplingState.decorationLineRangeToMinimapLineRange(e.startLineNumber,e.endLineNumber);this._minimapSelections.push(new B.Y(t,e.startColumn,i,e.endColumn))}}else this._minimapSelections=this._selections;return this._minimapSelections}getMinimapDecorationsInViewport(e,t){let i;if(this._samplingState){const n=this._samplingState.minimapLines[e-1],o=this._samplingState.minimapLines[t-1];i=new fe.e(n,1,o,this._context.viewModel.getLineMaxColumn(o))}else i=new fe.e(e,1,t,this._context.viewModel.getLineMaxColumn(t));const n=this._context.viewModel.getDecorationsInViewport(i);if(this._samplingState){const e=[];for(const t of n){if(!t.options.minimap)continue;const i=t.range,n=this._samplingState.modelLineToMinimapLine(i.startLineNumber),o=this._samplingState.modelLineToMinimapLine(i.endLineNumber);e.push(new Vt.$l(new fe.e(n,i.startColumn,o,i.endColumn),t.options))}return e}return n}getOptions(){return this._context.viewModel.model.getOptions()}revealLineNumber(e){this._samplingState&&(e=this._samplingState.minimapLines[e-1]),this._context.viewModel.revealRange("mouse",!1,new fe.e(e,1,e,1),1,0)}setScrollTop(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e},1)}}class ii extends u.JT{constructor(e,t){super(),this._renderDecorations=!1,this._gestureInProgress=!1,this._theme=e,this._model=t,this._lastRenderData=null,this._buffers=null,this._selectionColor=this._theme.getColor(Ct.ov3),this._domNode=(0,V.X)(document.createElement("div")),$.write(this._domNode,8),this._domNode.setClassName(this._getMinimapDomNodeClassName()),this._domNode.setPosition("absolute"),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._shadow=(0,V.X)(document.createElement("div")),this._shadow.setClassName("minimap-shadow-hidden"),this._domNode.appendChild(this._shadow),this._canvas=(0,V.X)(document.createElement("canvas")),this._canvas.setPosition("absolute"),this._canvas.setLeft(0),this._domNode.appendChild(this._canvas),this._decorationsCanvas=(0,V.X)(document.createElement("canvas")),this._decorationsCanvas.setPosition("absolute"),this._decorationsCanvas.setClassName("minimap-decorations-layer"),this._decorationsCanvas.setLeft(0),this._domNode.appendChild(this._decorationsCanvas),this._slider=(0,V.X)(document.createElement("div")),this._slider.setPosition("absolute"),this._slider.setClassName("minimap-slider"),this._slider.setLayerHinting(!0),this._slider.setContain("strict"),this._domNode.appendChild(this._slider),this._sliderHorizontal=(0,V.X)(document.createElement("div")),this._sliderHorizontal.setPosition("absolute"),this._sliderHorizontal.setClassName("minimap-slider-horizontal"),this._slider.appendChild(this._sliderHorizontal),this._applyLayout(),this._pointerDownListener=c.mu(this._domNode.domNode,c.tw.POINTER_DOWN,(e=>{e.preventDefault();if(0===this._model.options.renderMinimap)return;if(!this._lastRenderData)return;if("proportional"!==this._model.options.size){if(0===e.button&&this._lastRenderData){const t=c.i(this._slider.domNode),i=t.top+t.height/2;this._startSliderDragging(e,i,this._lastRenderData.renderedLayout)}return}const t=this._model.options.minimapLineHeight,i=this._model.options.canvasInnerHeight/this._model.options.canvasOuterHeight*e.offsetY;let n=Math.floor(i/t)+this._lastRenderData.renderedLayout.startLineNumber;n=Math.min(n,this._model.getLineCount()),this._model.revealLineNumber(n)})),this._sliderPointerMoveMonitor=new Pt.C,this._sliderPointerDownListener=c.mu(this._slider.domNode,c.tw.POINTER_DOWN,(e=>{e.preventDefault(),e.stopPropagation(),0===e.button&&this._lastRenderData&&this._startSliderDragging(e,e.pageY,this._lastRenderData.renderedLayout)})),this._gestureDisposable=W.o.addTarget(this._domNode.domNode),this._sliderTouchStartListener=c.nm(this._domNode.domNode,W.t.Start,(e=>{e.preventDefault(),e.stopPropagation(),this._lastRenderData&&(this._slider.toggleClassName("active",!0),this._gestureInProgress=!0,this.scrollDueToTouchEvent(e))}),{passive:!1}),this._sliderTouchMoveListener=c.nm(this._domNode.domNode,W.t.Change,(e=>{e.preventDefault(),e.stopPropagation(),this._lastRenderData&&this._gestureInProgress&&this.scrollDueToTouchEvent(e)}),{passive:!1}),this._sliderTouchEndListener=c.mu(this._domNode.domNode,W.t.End,(e=>{e.preventDefault(),e.stopPropagation(),this._gestureInProgress=!1,this._slider.toggleClassName("active",!1)}))}_startSliderDragging(e,t,i){if(!(e.target&&e.target instanceof Element))return;const n=e.pageX;this._slider.toggleClassName("active",!0);const o=(e,o)=>{const s=Math.abs(o-n);if(_.ED&&s>140)return void this._model.setScrollTop(i.scrollTop);const r=e-t;this._model.setScrollTop(i.getDesiredScrollTopFromDelta(r))};e.pageY!==t&&o(e.pageY,n),this._sliderPointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,(e=>o(e.pageY,e.pageX)),(()=>{this._slider.toggleClassName("active",!1)}))}scrollDueToTouchEvent(e){const t=this._domNode.domNode.getBoundingClientRect().top,i=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY-t);this._model.setScrollTop(i)}dispose(){this._pointerDownListener.dispose(),this._sliderPointerMoveMonitor.dispose(),this._sliderPointerDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),super.dispose()}_getMinimapDomNodeClassName(){const e=["minimap"];return"always"===this._model.options.showSlider?e.push("slider-always"):e.push("slider-mouseover"),this._model.options.autohide&&e.push("autohide"),e.join(" ")}getDomNode(){return this._domNode}_applyLayout(){this._domNode.setLeft(this._model.options.minimapLeft),this._domNode.setWidth(this._model.options.minimapWidth),this._domNode.setHeight(this._model.options.minimapHeight),this._shadow.setHeight(this._model.options.minimapHeight),this._canvas.setWidth(this._model.options.canvasOuterWidth),this._canvas.setHeight(this._model.options.canvasOuterHeight),this._canvas.domNode.width=this._model.options.canvasInnerWidth,this._canvas.domNode.height=this._model.options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._model.options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._model.options.canvasInnerHeight,this._slider.setWidth(this._model.options.minimapWidth)}_getBuffer(){return this._buffers||this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new Xt(this._canvas.domNode.getContext("2d"),this._model.options.canvasInnerWidth,this._model.options.canvasInnerHeight,this._model.options.backgroundColor)),this._buffers?this._buffers.getBuffer():null}onDidChangeOptions(){this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName())}onSelectionChanged(){return this._renderDecorations=!0,!0}onDecorationsChanged(){return this._renderDecorations=!0,!0}onFlushed(){return this._lastRenderData=null,!0}onLinesChanged(e,t){return!!this._lastRenderData&&this._lastRenderData.onLinesChanged(e,t)}onLinesDeleted(e,t){var i;return null===(i=this._lastRenderData)||void 0===i||i.onLinesDeleted(e,t),!0}onLinesInserted(e,t){var i;return null===(i=this._lastRenderData)||void 0===i||i.onLinesInserted(e,t),!0}onScrollChanged(){return this._renderDecorations=!0,!0}onThemeChanged(){return this._selectionColor=this._theme.getColor(Ct.ov3),this._renderDecorations=!0,!0}onTokensChanged(e){return!!this._lastRenderData&&this._lastRenderData.onTokensChanged(e)}onTokensColorsChanged(){return this._lastRenderData=null,this._buffers=null,!0}onZonesChanged(){return this._lastRenderData=null,!0}render(e){if(0===this._model.options.renderMinimap)return this._shadow.setClassName("minimap-shadow-hidden"),this._sliderHorizontal.setWidth(0),void this._sliderHorizontal.setHeight(0);e.scrollLeft+e.viewportWidth>=e.scrollWidth?this._shadow.setClassName("minimap-shadow-hidden"):this._shadow.setClassName("minimap-shadow-visible");const t=Zt.create(this._model.options,e.viewportStartLineNumber,e.viewportEndLineNumber,e.viewportStartLineNumberVerticalOffset,e.viewportHeight,e.viewportContainsWhitespaceGaps,this._model.getLineCount(),this._model.getRealLineCount(),e.scrollTop,e.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setDisplay(t.sliderNeeded?"block":"none"),this._slider.setTop(t.sliderTop),this._slider.setHeight(t.sliderHeight),this._sliderHorizontal.setLeft(0),this._sliderHorizontal.setWidth(this._model.options.minimapWidth),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(t.sliderHeight),this.renderDecorations(t),this._lastRenderData=this.renderLines(t)}renderDecorations(e){if(this._renderDecorations){this._renderDecorations=!1;const t=this._model.getSelections();t.sort(fe.e.compareRangesUsingStarts);const i=this._model.getMinimapDecorationsInViewport(e.startLineNumber,e.endLineNumber);i.sort(((e,t)=>(e.options.zIndex||0)-(t.options.zIndex||0)));const{canvasInnerWidth:n,canvasInnerHeight:o}=this._model.options,s=this._model.options.minimapLineHeight,r=this._model.options.minimapCharWidth,a=this._model.getOptions().tabSize,l=this._decorationsCanvas.domNode.getContext("2d");l.clearRect(0,0,n,o);const c=new ni(e.startLineNumber,e.endLineNumber,!1);this._renderSelectionLineHighlights(l,t,c,e,s),this._renderDecorationsLineHighlights(l,i,c,e,s);const d=new ni(e.startLineNumber,e.endLineNumber,null);this._renderSelectionsHighlights(l,t,d,e,s,a,r,n),this._renderDecorationsHighlights(l,i,d,e,s,a,r,n)}}_renderSelectionLineHighlights(e,t,i,n,o){if(!this._selectionColor||this._selectionColor.isTransparent())return;e.fillStyle=this._selectionColor.transparent(.5).toString();let s=0,r=0;for(const a of t){const t=Math.max(n.startLineNumber,a.startLineNumber),l=Math.min(n.endLineNumber,a.endLineNumber);if(t>l)continue;for(let e=t;e<=l;e++)i.set(e,!0);const c=(t-n.startLineNumber)*o,d=(l-n.startLineNumber)*o+o;r>=c||(r>s&&e.fillRect(k.y0,s,e.canvas.width,r-s),s=c),r=d}r>s&&e.fillRect(k.y0,s,e.canvas.width,r-s)}_renderDecorationsLineHighlights(e,t,i,n,o){const s=new Map;for(let r=t.length-1;r>=0;r--){const a=t[r],l=a.options.minimap;if(!l||l.position!==Gt.F5.Inline)continue;const c=Math.max(n.startLineNumber,a.range.startLineNumber),d=Math.min(n.endLineNumber,a.range.endLineNumber);if(c>d)continue;const h=l.getColor(this._theme.value);if(!h||h.isTransparent())continue;let u=s.get(h.toString());u||(u=h.transparent(.5).toString(),s.set(h.toString(),u)),e.fillStyle=u;for(let t=c;t<=d;t++){if(i.has(t))continue;i.set(t,!0);const s=(c-n.startLineNumber)*o;e.fillRect(k.y0,s,e.canvas.width,o)}}}_renderSelectionsHighlights(e,t,i,n,o,s,r,a){if(this._selectionColor&&!this._selectionColor.isTransparent())for(const l of t){const t=Math.max(n.startLineNumber,l.startLineNumber),c=Math.min(n.endLineNumber,l.endLineNumber);if(!(t>c))for(let d=t;d<=c;d++)this.renderDecorationOnLine(e,i,l,this._selectionColor,n,d,o,o,s,r,a)}}_renderDecorationsHighlights(e,t,i,n,o,s,r,a){for(const l of t){const t=l.options.minimap;if(!t)continue;const c=Math.max(n.startLineNumber,l.range.startLineNumber),d=Math.min(n.endLineNumber,l.range.endLineNumber);if(c>d)continue;const h=t.getColor(this._theme.value);if(h&&!h.isTransparent())for(let u=c;u<=d;u++)switch(t.position){case Gt.F5.Inline:this.renderDecorationOnLine(e,i,l.range,h,n,u,o,o,s,r,a);continue;case Gt.F5.Gutter:{const t=(u-n.startLineNumber)*o,i=2;this.renderDecoration(e,h,i,t,2,o);continue}}}}renderDecorationOnLine(e,t,i,n,o,s,r,a,l,c,d){const h=(s-o.startLineNumber)*a;if(h+r<0||h>this._model.options.canvasInnerHeight)return;const{startLineNumber:u,endLineNumber:g}=i,p=u===s?i.startColumn:1,m=g===s?i.endColumn:this._model.getLineMaxColumn(s),f=this.getXOffsetForPosition(t,s,p,l,c,d),_=this.getXOffsetForPosition(t,s,m,l,c,d);this.renderDecoration(e,n,f,h,_-f,r)}getXOffsetForPosition(e,t,i,n,o,s){if(1===i)return k.y0;if((i-1)*o>=s)return s;let r=e.get(t);if(!r){const i=this._model.getLineContent(t);r=[k.y0];let a=k.y0;for(let e=1;e<i.length+1;e++){const t=i.charCodeAt(e-1),l=a+(9===t?n*o:Be.K7(t)?2*o:o);if(l>=s){r[e]=s;break}r[e]=l,a=l}e.set(t,r)}return i-1<r.length?r[i-1]:s}renderDecoration(e,t,i,n,o,s){e.fillStyle=t&&t.toString()||"",e.fillRect(i,n,o,s)}renderLines(e){const t=e.startLineNumber,i=e.endLineNumber,n=this._model.options.minimapLineHeight;if(this._lastRenderData&&this._lastRenderData.linesEquals(e)){const t=this._lastRenderData._get();return new Jt(e,t.imageData,t.lines)}const o=this._getBuffer();if(!o)return null;const[s,r,a]=ii._renderUntouchedLines(o,t,i,n,this._lastRenderData),l=this._model.getMinimapLinesRenderingData(t,i,a),c=this._model.getOptions().tabSize,d=this._model.options.defaultBackgroundColor,h=this._model.options.backgroundColor,u=this._model.options.foregroundAlpha,g=this._model.tokensColorTracker,p=g.backgroundIsLight(),m=this._model.options.renderMinimap,f=this._model.options.charRenderer(),_=this._model.options.fontScale,v=this._model.options.minimapCharWidth,b=(1===m?2:3)*_,C=n>b?Math.floor((n-b)/2):0,w=h.a/255,y=new Ft(Math.round((h.r-d.r)*w+d.r),Math.round((h.g-d.g)*w+d.g),Math.round((h.b-d.b)*w+d.b),255);let S=0;const L=[];for(let D=0,N=i-t+1;D<N;D++)a[D]&&ii._renderLine(o,y,h.a,p,m,v,g,u,f,S,C,c,l[D],_,n),L[D]=new Yt(S),S+=n;const k=-1===s?0:s,x=(-1===r?o.height:r)-k;return this._canvas.domNode.getContext("2d").putImageData(o,0,0,0,k,o.width,x),new Jt(e,o,L)}static _renderUntouchedLines(e,t,i,n,o){const s=[];if(!o){for(let e=0,n=i-t+1;e<n;e++)s[e]=!0;return[-1,-1,s]}const r=o._get(),a=r.imageData.data,l=r.rendLineNumberStart,c=r.lines,d=c.length,h=e.width,u=e.data,g=(i-t+1)*n*h*4;let p=-1,m=-1,f=-1,_=-1,v=-1,b=-1,C=0;for(let w=t;w<=i;w++){const e=w-t,i=w-l,o=i>=0&&i<d?c[i].dy:-1;if(-1===o){s[e]=!0,C+=n;continue}const r=o*h*4,y=(o+n)*h*4,S=C*h*4,L=(C+n)*h*4;_===r&&b===S?(_=y,b=L):(-1!==f&&(u.set(a.subarray(f,_),v),-1===p&&0===f&&f===v&&(p=_),-1===m&&_===g&&f===v&&(m=f)),f=r,_=y,v=S,b=L),s[e]=!1,C+=n}-1!==f&&(u.set(a.subarray(f,_),v),-1===p&&0===f&&f===v&&(p=_),-1===m&&_===g&&f===v&&(m=f));return[-1===p?-1:p/(4*h),-1===m?-1:m/(4*h),s]}static _renderLine(e,t,i,n,o,s,r,a,l,c,d,h,u,g,p){const m=u.content,f=u.tokens,_=e.width-s,v=1===p;let b=k.y0,C=0,w=0;for(let y=0,S=f.getCount();y<S;y++){const u=f.getEndOffset(y),p=f.getForeground(y),S=r.getColor(p);for(;C<u;C++){if(b>_)return;const r=m.charCodeAt(C);if(9===r){const e=h-(C+w)%h;w+=e-1,b+=e*s}else if(32===r)b+=s;else{const h=Be.K7(r)?2:1;for(let u=0;u<h;u++)if(2===o?l.blockRenderChar(e,b,c+d,S,a,t,i,v):l.renderChar(e,b,c+d,r,S,a,t,i,g,n,v),b+=s,b>_)return}}}}}class ni{constructor(e,t,i){this._startLineNumber=e,this._endLineNumber=t,this._defaultValue=i,this._values=[];for(let n=0,o=this._endLineNumber-this._startLineNumber+1;n<o;n++)this._values[n]=i}has(e){return this.get(e)!==this._defaultValue}set(e,t){e<this._startLineNumber||e>this._endLineNumber||(this._values[e-this._startLineNumber]=t)}get(e){return e<this._startLineNumber||e>this._endLineNumber?this._defaultValue:this._values[e-this._startLineNumber]}}(0,je.Ic)(((e,t)=>{const i=e.getColor(Ct.CA6);i&&t.addRule(`.monaco-editor .minimap-slider .minimap-slider-horizontal { background: ${i}; }`);const n=e.getColor(Ct.Xy4);n&&t.addRule(`.monaco-editor .minimap-slider:hover .minimap-slider-horizontal { background: ${n}; }`);const o=e.getColor(Ct.brw);o&&t.addRule(`.monaco-editor .minimap-slider.active .minimap-slider-horizontal { background: ${o}; }`);const s=e.getColor(Ct._wn);s&&t.addRule(`.monaco-editor .minimap-shadow-visible { box-shadow: ${s} -6px 0 6px -6px inset; }`)}));class oi extends K{constructor(e){super(e);const t=this._context.configuration.options.get(133);this._widgets={},this._verticalScrollbarWidth=t.verticalScrollbarWidth,this._minimapWidth=t.minimap.minimapWidth,this._horizontalScrollbarHeight=t.horizontalScrollbarHeight,this._editorHeight=t.height,this._editorWidth=t.width,this._domNode=(0,V.X)(document.createElement("div")),$.write(this._domNode,4),this._domNode.setClassName("overlayWidgets")}dispose(){super.dispose(),this._widgets={}}getDomNode(){return this._domNode}onConfigurationChanged(e){const t=this._context.configuration.options.get(133);return this._verticalScrollbarWidth=t.verticalScrollbarWidth,this._minimapWidth=t.minimap.minimapWidth,this._horizontalScrollbarHeight=t.horizontalScrollbarHeight,this._editorHeight=t.height,this._editorWidth=t.width,!0}addWidget(e){const t=(0,V.X)(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:null,domNode:t},t.setPosition("absolute"),t.setAttribute("widgetId",e.getId()),this._domNode.appendChild(t),this.setShouldRender()}setWidgetPosition(e,t){const i=this._widgets[e.getId()];return i.preference!==t&&(i.preference=t,this.setShouldRender(),!0)}removeWidget(e){const t=e.getId();if(this._widgets.hasOwnProperty(t)){const e=this._widgets[t].domNode.domNode;delete this._widgets[t],e.parentNode.removeChild(e),this.setShouldRender()}}_renderWidget(e){const t=e.domNode;if(null!==e.preference)if(0===e.preference)t.setTop(0),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth);else if(1===e.preference){const e=t.domNode.clientHeight;t.setTop(this._editorHeight-e-2*this._horizontalScrollbarHeight),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth)}else 2===e.preference&&(t.setTop(0),t.domNode.style.right="50%");else t.setTop("")}prepareRender(e){}render(e){this._domNode.setWidth(this._editorWidth);const t=Object.keys(this._widgets);for(let i=0,n=t.length;i<n;i++){const e=t[i];this._renderWidget(this._widgets[e])}}}class si{constructor(e,t){const i=e.options;this.lineHeight=i.get(61),this.pixelRatio=i.get(131),this.overviewRulerLanes=i.get(76),this.renderBorder=i.get(75);const n=t.getColor(ze.zw);this.borderColor=n?n.toString():null,this.hideCursor=i.get(54);const o=t.getColor(ze.n0);this.cursorColor=o?o.transparent(.7).toString():null,this.themeType=t.type;const s=i.get(67),r=s.enabled,a=s.side,l=t.getColor(ze.e_),c=Ge.RW.getDefaultBackground();let d=null;void 0!==l?d=l:r&&(d=c),this.backgroundColor=null===d||"left"===a?null:Qe.Il.Format.CSS.formatHex(d);const h=i.get(133).overviewRuler;this.top=h.top,this.right=h.right,this.domWidth=h.width,this.domHeight=h.height,0===this.overviewRulerLanes?(this.canvasWidth=0,this.canvasHeight=0):(this.canvasWidth=this.domWidth*this.pixelRatio|0,this.canvasHeight=this.domHeight*this.pixelRatio|0);const[u,g]=this._initLanes(1,this.canvasWidth,this.overviewRulerLanes);this.x=u,this.w=g}_initLanes(e,t,i){const n=t-e;if(i>=3){const t=Math.floor(n/3),i=Math.floor(n/3),o=n-t-i,s=e+t;return[[0,e,s,e,e+t+o,e,s,e],[0,t,o,t+o,i,t+o+i,o+i,t+o+i]]}if(2===i){const t=Math.floor(n/2),i=n-t;return[[0,e,e,e,e+t,e,e,e],[0,t,t,t,i,t+i,t+i,t+i]]}return[[0,e,e,e,e,e,e,e],[0,n,n,n,n,n,n,n]]}equals(e){return this.lineHeight===e.lineHeight&&this.pixelRatio===e.pixelRatio&&this.overviewRulerLanes===e.overviewRulerLanes&&this.renderBorder===e.renderBorder&&this.borderColor===e.borderColor&&this.hideCursor===e.hideCursor&&this.cursorColor===e.cursorColor&&this.themeType===e.themeType&&this.backgroundColor===e.backgroundColor&&this.top===e.top&&this.right===e.right&&this.domWidth===e.domWidth&&this.domHeight===e.domHeight&&this.canvasWidth===e.canvasWidth&&this.canvasHeight===e.canvasHeight}}class ri extends K{constructor(e){super(e),this._domNode=(0,V.X)(document.createElement("canvas")),this._domNode.setClassName("decorationsOverviewRuler"),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._domNode.setAttribute("aria-hidden","true"),this._updateSettings(!1),this._tokensColorTrackerListener=Ge.RW.onDidChange((e=>{e.changedColorMap&&this._updateSettings(!0)})),this._cursorPositions=[]}dispose(){super.dispose(),this._tokensColorTrackerListener.dispose()}_updateSettings(e){const t=new si(this._context.configuration,this._context.theme);return(!this._settings||!this._settings.equals(t))&&(this._settings=t,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,e&&this._render(),!0)}onConfigurationChanged(e){return this._updateSettings(!1)}onCursorStateChanged(e){this._cursorPositions=[];for(let t=0,i=e.selections.length;t<i;t++)this._cursorPositions[t]=e.selections[t].getPosition();return this._cursorPositions.sort(me.L.compare),!0}onDecorationsChanged(e){return!!e.affectsOverviewRuler}onFlushed(e){return!0}onScrollChanged(e){return e.scrollHeightChanged}onZonesChanged(e){return!0}onThemeChanged(e){return this._updateSettings(!1)}getDomNode(){return this._domNode.domNode}prepareRender(e){}render(e){this._render()}_render(){if(0===this._settings.overviewRulerLanes)return this._domNode.setBackgroundColor(this._settings.backgroundColor?this._settings.backgroundColor:""),void this._domNode.setDisplay("none");this._domNode.setDisplay("block");const e=this._settings.canvasWidth,t=this._settings.canvasHeight,i=this._settings.lineHeight,n=this._context.viewLayout,o=t/this._context.viewLayout.getScrollHeight(),s=this._context.viewModel.getAllOverviewRulerDecorations(this._context.theme),r=6*this._settings.pixelRatio|0,a=r/2|0,l=this._domNode.domNode.getContext("2d");null===this._settings.backgroundColor?l.clearRect(0,0,e,t):(l.fillStyle=this._settings.backgroundColor,l.fillRect(0,0,e,t));const c=this._settings.x,d=this._settings.w;s.sort(Vt.SQ.cmp);for(const h of s){const e=h.color,s=h.data;l.fillStyle=e;let u=0,g=0,p=0;for(let h=0,m=s.length/3;h<m;h++){const e=s[3*h],m=s[3*h+1],f=s[3*h+2];let _=n.getVerticalOffsetForLineNumber(m)*o|0,v=(n.getVerticalOffsetForLineNumber(f)+i)*o|0;if(v-_<r){let e=(_+v)/2|0;e<a?e=a:e+a>t&&(e=t-a),_=e-a,v=e+a}_>p+1||e!==u?(0!==h&&l.fillRect(c[u],g,d[u],p-g),u=e,g=_,p=v):v>p&&(p=v)}l.fillRect(c[u],g,d[u],p-g)}if(!this._settings.hideCursor&&this._settings.cursorColor){const e=2*this._settings.pixelRatio|0,i=e/2|0,s=this._settings.x[7],r=this._settings.w[7];l.fillStyle=this._settings.cursorColor;let a=-100,c=-100;for(let d=0,h=this._cursorPositions.length;d<h;d++){const h=this._cursorPositions[d];let u=n.getVerticalOffsetForLineNumber(h.lineNumber)*o|0;u<i?u=i:u+i>t&&(u=t-i);const g=u-i,p=g+e;g>c+1?(0!==d&&l.fillRect(s,a,r,c-a),a=g,c=p):p>c&&(c=p)}l.fillRect(s,a,r,c-a)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(l.beginPath(),l.lineWidth=1,l.strokeStyle=this._settings.borderColor,l.moveTo(0,0),l.lineTo(0,t),l.stroke(),l.moveTo(0,0),l.lineTo(e,0),l.stroke())}}var ai=i(30665);class li extends U{constructor(e,t){super(),this._context=e;const i=this._context.configuration.options;this._domNode=(0,V.X)(document.createElement("canvas")),this._domNode.setClassName(t),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._zoneManager=new ai.Tj((e=>this._context.viewLayout.getVerticalOffsetForLineNumber(e))),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()),this._zoneManager.setLineHeight(i.get(61)),this._zoneManager.setPixelRatio(i.get(131)),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return e.hasChanged(61)&&(this._zoneManager.setLineHeight(t.get(61)),this._render()),e.hasChanged(131)&&(this._zoneManager.setPixelRatio(t.get(131)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0}onFlushed(e){return this._render(),!0}onScrollChanged(e){return e.scrollHeightChanged&&(this._zoneManager.setOuterHeight(e.scrollHeight),this._render()),!0}onZonesChanged(e){return this._render(),!0}getDomNode(){return this._domNode.domNode}setLayout(e){this._domNode.setTop(e.top),this._domNode.setRight(e.right);let t=!1;t=this._zoneManager.setDOMWidth(e.width)||t,t=this._zoneManager.setDOMHeight(e.height)||t,t&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())}setZones(e){this._zoneManager.setZones(e),this._render()}_render(){if(0===this._zoneManager.getOuterHeight())return!1;const e=this._zoneManager.getCanvasWidth(),t=this._zoneManager.getCanvasHeight(),i=this._zoneManager.resolveColorZones(),n=this._zoneManager.getId2Color(),o=this._domNode.domNode.getContext("2d");return o.clearRect(0,0,e,t),i.length>0&&this._renderOneLane(o,i,n,e),!0}_renderOneLane(e,t,i,n){let o=0,s=0,r=0;for(const a of t){const t=a.colorId,l=a.from,c=a.to;t!==o?(e.fillRect(0,s,n,r-s),o=t,e.fillStyle=i[o],s=l,r=c):r>=l?r=Math.max(r,c):(e.fillRect(0,s,n,r-s),s=l,r=c)}e.fillRect(0,s,n,r-s)}}class ci extends K{constructor(e){super(e),this.domNode=(0,V.X)(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("view-rulers"),this._renderedRulers=[];const t=this._context.configuration.options;this._rulers=t.get(93),this._typicalHalfwidthCharacterWidth=t.get(46).typicalHalfwidthCharacterWidth}dispose(){super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._rulers=t.get(93),this._typicalHalfwidthCharacterWidth=t.get(46).typicalHalfwidthCharacterWidth,!0}onScrollChanged(e){return e.scrollHeightChanged}prepareRender(e){}_ensureRulersCount(){const e=this._renderedRulers.length,t=this._rulers.length;if(e===t)return;if(e<t){const{tabSize:i}=this._context.viewModel.model.getOptions(),n=i;let o=t-e;for(;o>0;){const e=(0,V.X)(document.createElement("div"));e.setClassName("view-ruler"),e.setWidth(n),this.domNode.appendChild(e),this._renderedRulers.push(e),o--}return}let i=e-t;for(;i>0;){const e=this._renderedRulers.pop();this.domNode.removeChild(e),i--}}render(e){this._ensureRulersCount();for(let t=0,i=this._rulers.length;t<i;t++){const i=this._renderedRulers[t],n=this._rulers[t];i.setBoxShadow(n.color?`1px 0 0 0 ${n.color} inset`:""),i.setHeight(Math.min(e.scrollHeight,1e6)),i.setLeft(n.column*this._typicalHalfwidthCharacterWidth)}}}(0,je.Ic)(((e,t)=>{const i=e.getColor(ze.zk);i&&t.addRule(`.monaco-editor .view-ruler { box-shadow: 1px 0 0 0 ${i} inset; }`)}));class di extends K{constructor(e){super(e),this._scrollTop=0,this._width=0,this._updateWidth(),this._shouldShow=!1;const t=this._context.configuration.options.get(94);this._useShadows=t.useShadows,this._domNode=(0,V.X)(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true")}dispose(){super.dispose()}_updateShouldShow(){const e=this._useShadows&&this._scrollTop>0;return this._shouldShow!==e&&(this._shouldShow=e,!0)}getDomNode(){return this._domNode}_updateWidth(){const e=this._context.configuration.options.get(133);0===e.minimap.renderMinimap||e.minimap.minimapWidth>0&&0===e.minimap.minimapLeft?this._width=e.width:this._width=e.width-e.verticalScrollbarWidth}onConfigurationChanged(e){const t=this._context.configuration.options.get(94);return this._useShadows=t.useShadows,this._updateWidth(),this._updateShouldShow(),!0}onScrollChanged(e){return this._scrollTop=e.scrollTop,this._updateShouldShow()}prepareRender(e){}render(e){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?"scroll-decoration":"")}}(0,je.Ic)(((e,t)=>{const i=e.getColor(Ct._wn);i&&t.addRule(`.monaco-editor .scroll-decoration { box-shadow: ${i} 0 6px 6px -6px inset; }`)}));class hi{constructor(e){this.left=e.left,this.width=e.width,this.startStyle=null,this.endStyle=null}}class ui{constructor(e,t){this.lineNumber=e,this.ranges=t}}function gi(e){return new hi(e)}function pi(e){return new ui(e.lineNumber,e.ranges.map(gi))}class mi extends He{constructor(e){super(),this._previousFrameVisibleRangesWithStyle=[],this._context=e;const t=this._context.configuration.options;this._lineHeight=t.get(61),this._roundedSelection=t.get(92),this._typicalHalfwidthCharacterWidth=t.get(46).typicalHalfwidthCharacterWidth,this._selections=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._lineHeight=t.get(61),this._roundedSelection=t.get(92),this._typicalHalfwidthCharacterWidth=t.get(46).typicalHalfwidthCharacterWidth,!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_visibleRangesHaveGaps(e){for(let t=0,i=e.length;t<i;t++){if(e[t].ranges.length>1)return!0}return!1}_enrichVisibleRangesWithStyle(e,t,i){const n=this._typicalHalfwidthCharacterWidth/4;let o=null,s=null;if(i&&i.length>0&&t.length>0){const n=t[0].lineNumber;if(n===e.startLineNumber)for(let e=0;!o&&e<i.length;e++)i[e].lineNumber===n&&(o=i[e].ranges[0]);const r=t[t.length-1].lineNumber;if(r===e.endLineNumber)for(let e=i.length-1;!s&&e>=0;e--)i[e].lineNumber===r&&(s=i[e].ranges[0]);o&&!o.startStyle&&(o=null),s&&!s.startStyle&&(s=null)}for(let r=0,a=t.length;r<a;r++){const e=t[r].ranges[0],i=e.left,l=e.left+e.width,c={top:0,bottom:0},d={top:0,bottom:0};if(r>0){const e=t[r-1].ranges[0].left,o=t[r-1].ranges[0].left+t[r-1].ranges[0].width;fi(i-e)<n?c.top=2:i>e&&(c.top=1),fi(l-o)<n?d.top=2:e<l&&l<o&&(d.top=1)}else o&&(c.top=o.startStyle.top,d.top=o.endStyle.top);if(r+1<a){const e=t[r+1].ranges[0].left,o=t[r+1].ranges[0].left+t[r+1].ranges[0].width;fi(i-e)<n?c.bottom=2:e<i&&i<o&&(c.bottom=1),fi(l-o)<n?d.bottom=2:l<o&&(d.bottom=1)}else s&&(c.bottom=s.startStyle.bottom,d.bottom=s.endStyle.bottom);e.startStyle=c,e.endStyle=d}}_getVisibleRangesWithStyle(e,t,i){const n=(t.linesVisibleRangesForRange(e,!0)||[]).map(pi);return!this._visibleRangesHaveGaps(n)&&this._roundedSelection&&this._enrichVisibleRangesWithStyle(t.visibleRange,n,i),n}_createSelectionPiece(e,t,i,n,o){return'<div class="cslr '+i+'" style="top:'+e.toString()+"px;left:"+n.toString()+"px;width:"+o.toString()+"px;height:"+t+'px;"></div>'}_actualRenderOneSelection(e,t,i,n){if(0===n.length)return;const o=!!n[0].ranges[0].startStyle,s=this._lineHeight.toString(),r=(this._lineHeight-1).toString(),a=n[0].lineNumber,l=n[n.length-1].lineNumber;for(let c=0,d=n.length;c<d;c++){const d=n[c],h=d.lineNumber,u=h-t,g=i&&(h===l||h===a)?r:s,p=i&&h===a?1:0;let m="",f="";for(let e=0,t=d.ranges.length;e<t;e++){const t=d.ranges[e];if(o){const e=t.startStyle,i=t.endStyle;if(1===e.top||1===e.bottom){m+=this._createSelectionPiece(p,g,mi.SELECTION_CLASS_NAME,t.left-mi.ROUNDED_PIECE_WIDTH,mi.ROUNDED_PIECE_WIDTH);let i=mi.EDITOR_BACKGROUND_CLASS_NAME;1===e.top&&(i+=" "+mi.SELECTION_TOP_RIGHT),1===e.bottom&&(i+=" "+mi.SELECTION_BOTTOM_RIGHT),m+=this._createSelectionPiece(p,g,i,t.left-mi.ROUNDED_PIECE_WIDTH,mi.ROUNDED_PIECE_WIDTH)}if(1===i.top||1===i.bottom){m+=this._createSelectionPiece(p,g,mi.SELECTION_CLASS_NAME,t.left+t.width,mi.ROUNDED_PIECE_WIDTH);let e=mi.EDITOR_BACKGROUND_CLASS_NAME;1===i.top&&(e+=" "+mi.SELECTION_TOP_LEFT),1===i.bottom&&(e+=" "+mi.SELECTION_BOTTOM_LEFT),m+=this._createSelectionPiece(p,g,e,t.left+t.width,mi.ROUNDED_PIECE_WIDTH)}}let i=mi.SELECTION_CLASS_NAME;if(o){const e=t.startStyle,n=t.endStyle;0===e.top&&(i+=" "+mi.SELECTION_TOP_LEFT),0===e.bottom&&(i+=" "+mi.SELECTION_BOTTOM_LEFT),0===n.top&&(i+=" "+mi.SELECTION_TOP_RIGHT),0===n.bottom&&(i+=" "+mi.SELECTION_BOTTOM_RIGHT)}f+=this._createSelectionPiece(p,g,i,t.left,t.width)}e[u][0]+=m,e[u][1]+=f}}prepareRender(e){const t=[],i=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber;for(let s=i;s<=n;s++){t[s-i]=["",""]}const o=[];for(let s=0,r=this._selections.length;s<r;s++){const n=this._selections[s];if(n.isEmpty()){o[s]=null;continue}const r=this._getVisibleRangesWithStyle(n,e,this._previousFrameVisibleRangesWithStyle[s]);o[s]=r,this._actualRenderOneSelection(t,i,this._selections.length>1,r)}this._previousFrameVisibleRangesWithStyle=o,this._renderResult=t.map((([e,t])=>e+t))}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}function fi(e){return e<0?-e:e}mi.SELECTION_CLASS_NAME="selected-text",mi.SELECTION_TOP_LEFT="top-left-radius",mi.SELECTION_BOTTOM_LEFT="bottom-left-radius",mi.SELECTION_TOP_RIGHT="top-right-radius",mi.SELECTION_BOTTOM_RIGHT="bottom-right-radius",mi.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background",mi.ROUNDED_PIECE_WIDTH=10,(0,je.Ic)(((e,t)=>{const i=e.getColor(Ct.hEj);i&&t.addRule(`.monaco-editor .focused .selected-text { background-color: ${i}; }`);const n=e.getColor(Ct.ES4);n&&t.addRule(`.monaco-editor .selected-text { background-color: ${n}; }`);const o=e.getColor(Ct.yb5);o&&!o.isTransparent()&&t.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${o}; }`)}));class _i{constructor(e,t,i,n,o,s){this.top=e,this.left=t,this.width=i,this.height=n,this.textContent=o,this.textContentClassName=s}}class vi{constructor(e){this._context=e;const t=this._context.configuration.options,i=t.get(46);this._cursorStyle=t.get(24),this._lineHeight=t.get(61),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(27),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=(0,V.X)(document.createElement("div")),this._domNode.setClassName(`cursor ${qe.S}`),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),(0,Ve.N)(this._domNode,i),this._domNode.setDisplay("none"),this._position=new me.L(1,1),this._lastRenderedContent="",this._renderData=null}getDomNode(){return this._domNode}getPosition(){return this._position}show(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)}hide(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(46);return this._cursorStyle=t.get(24),this._lineHeight=t.get(61),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(27),this._typicalHalfwidthCharacterWidth),(0,Ve.N)(this._domNode,i),!0}onCursorPositionChanged(e){return this._position=e,!0}_getGraphemeAwarePosition(){const{lineNumber:e,column:t}=this._position,i=this._context.viewModel.getLineContent(e),[n,o]=Be.J_(i,t-1);return[new me.L(e,n+1),i.substring(n,o)]}_prepareRender(e){let t="";const[i,n]=this._getGraphemeAwarePosition();if(this._cursorStyle===k.d2.Line||this._cursorStyle===k.d2.LineThin){const o=e.visibleRangeForPosition(i);if(!o||o.outsideRenderedLine)return null;let s;this._cursorStyle===k.d2.Line?(s=c.Uh(this._lineCursorWidth>0?this._lineCursorWidth:2),s>2&&(t=n)):s=c.Uh(1);let r=o.left;s>=2&&r>=1&&(r-=1);const a=e.getVerticalOffsetForLineNumber(i.lineNumber)-e.bigNumbersDelta;return new _i(a,r,s,this._lineHeight,t,"")}const o=e.linesVisibleRangesForRange(new fe.e(i.lineNumber,i.column,i.lineNumber,i.column+n.length),!1);if(!o||0===o.length)return null;const s=o[0];if(s.outsideRenderedLine||0===s.ranges.length)return null;const r=s.ranges[0],a="\t"===n||r.width<1?this._typicalHalfwidthCharacterWidth:r.width;let l="";if(this._cursorStyle===k.d2.Block){const e=this._context.viewModel.getViewLineData(i.lineNumber);t=n;const o=e.tokens.findTokenIndexAtOffset(i.column-1);l=e.tokens.getClassName(o)}let d=e.getVerticalOffsetForLineNumber(i.lineNumber)-e.bigNumbersDelta,h=this._lineHeight;return this._cursorStyle!==k.d2.Underline&&this._cursorStyle!==k.d2.UnderlineThin||(d+=this._lineHeight-2,h=2),new _i(d,r.left,a,h,t,l)}prepareRender(e){this._renderData=this._prepareRender(e)}render(e){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setClassName(`cursor ${qe.S} ${this._renderData.textContentClassName}`),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay("none"),null)}}class bi extends K{constructor(e){super(e);const t=this._context.configuration.options;this._readOnly=t.get(83),this._cursorBlinking=t.get(22),this._cursorStyle=t.get(24),this._cursorSmoothCaretAnimation=t.get(23),this._selectionIsEmpty=!0,this._isComposingInput=!1,this._isVisible=!1,this._primaryCursor=new vi(this._context),this._secondaryCursors=[],this._renderData=[],this._domNode=(0,V.X)(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._updateDomClassName(),this._domNode.appendChild(this._primaryCursor.getDomNode()),this._startCursorBlinkAnimation=new z._F,this._cursorFlatBlinkInterval=new z.zh,this._blinkingEnabled=!1,this._editorHasFocus=!1,this._updateBlinking()}dispose(){super.dispose(),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()}getDomNode(){return this._domNode}onCompositionStart(e){return this._isComposingInput=!0,this._updateBlinking(),!0}onCompositionEnd(e){return this._isComposingInput=!1,this._updateBlinking(),!0}onConfigurationChanged(e){const t=this._context.configuration.options;this._readOnly=t.get(83),this._cursorBlinking=t.get(22),this._cursorStyle=t.get(24),this._cursorSmoothCaretAnimation=t.get(23),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(e);for(let i=0,n=this._secondaryCursors.length;i<n;i++)this._secondaryCursors[i].onConfigurationChanged(e);return!0}_onCursorPositionChanged(e,t){if(this._primaryCursor.onCursorPositionChanged(e),this._updateBlinking(),this._secondaryCursors.length<t.length){const e=t.length-this._secondaryCursors.length;for(let t=0;t<e;t++){const e=new vi(this._context);this._domNode.domNode.insertBefore(e.getDomNode().domNode,this._primaryCursor.getDomNode().domNode.nextSibling),this._secondaryCursors.push(e)}}else if(this._secondaryCursors.length>t.length){const e=this._secondaryCursors.length-t.length;for(let t=0;t<e;t++)this._domNode.removeChild(this._secondaryCursors[0].getDomNode()),this._secondaryCursors.splice(0,1)}for(let i=0;i<t.length;i++)this._secondaryCursors[i].onCursorPositionChanged(t[i])}onCursorStateChanged(e){const t=[];for(let n=0,o=e.selections.length;n<o;n++)t[n]=e.selections[n].getPosition();this._onCursorPositionChanged(t[0],t.slice(1));const i=e.selections[0].isEmpty();return this._selectionIsEmpty!==i&&(this._selectionIsEmpty=i,this._updateDomClassName()),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onFocusChanged(e){return this._editorHasFocus=e.isFocused,this._updateBlinking(),!1}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return!0}onTokensChanged(e){const t=t=>{for(let i=0,n=e.ranges.length;i<n;i++)if(e.ranges[i].fromLineNumber<=t.lineNumber&&t.lineNumber<=e.ranges[i].toLineNumber)return!0;return!1};if(t(this._primaryCursor.getPosition()))return!0;for(const i of this._secondaryCursors)if(t(i.getPosition()))return!0;return!1}onZonesChanged(e){return!0}_getCursorBlinking(){return this._isComposingInput?0:this._editorHasFocus?this._readOnly?5:this._cursorBlinking:0}_updateBlinking(){this._startCursorBlinkAnimation.cancel(),this._cursorFlatBlinkInterval.cancel();const e=this._getCursorBlinking(),t=0===e,i=5===e;t?this._hide():this._show(),this._blinkingEnabled=!1,this._updateDomClassName(),t||i||(1===e?this._cursorFlatBlinkInterval.cancelAndSet((()=>{this._isVisible?this._hide():this._show()}),bi.BLINK_INTERVAL):this._startCursorBlinkAnimation.setIfNotSet((()=>{this._blinkingEnabled=!0,this._updateDomClassName()}),bi.BLINK_INTERVAL))}_updateDomClassName(){this._domNode.setClassName(this._getClassName())}_getClassName(){let e="cursors-layer";switch(this._selectionIsEmpty||(e+=" has-selection"),this._cursorStyle){case k.d2.Line:e+=" cursor-line-style";break;case k.d2.Block:e+=" cursor-block-style";break;case k.d2.Underline:e+=" cursor-underline-style";break;case k.d2.LineThin:e+=" cursor-line-thin-style";break;case k.d2.BlockOutline:e+=" cursor-block-outline-style";break;case k.d2.UnderlineThin:e+=" cursor-underline-thin-style";break;default:e+=" cursor-line-style"}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1:e+=" cursor-blink";break;case 2:e+=" cursor-smooth";break;case 3:e+=" cursor-phase";break;case 4:e+=" cursor-expand";break;default:e+=" cursor-solid"}else e+=" cursor-solid";return this._cursorSmoothCaretAnimation&&(e+=" cursor-smooth-caret-animation"),e}_show(){this._primaryCursor.show();for(let e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].show();this._isVisible=!0}_hide(){this._primaryCursor.hide();for(let e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].hide();this._isVisible=!1}prepareRender(e){this._primaryCursor.prepareRender(e);for(let t=0,i=this._secondaryCursors.length;t<i;t++)this._secondaryCursors[t].prepareRender(e)}render(e){const t=[];let i=0;const n=this._primaryCursor.render(e);n&&(t[i++]=n);for(let o=0,s=this._secondaryCursors.length;o<s;o++){const n=this._secondaryCursors[o].render(e);n&&(t[i++]=n)}this._renderData=t}getLastRenderData(){return this._renderData}}bi.BLINK_INTERVAL=500,(0,je.Ic)(((e,t)=>{const i=e.getColor(ze.n0);if(i){let n=e.getColor(ze.fY);n||(n=i.opposite()),t.addRule(`.monaco-editor .inputarea.ime-input { caret-color: ${i}; }`),t.addRule(`.monaco-editor .cursors-layer .cursor { background-color: ${i}; border-color: ${i}; color: ${n}; }`),(0,ie.c3)(e.type)&&t.addRule(`.monaco-editor .cursors-layer.has-selection .cursor { border-left: 1px solid ${n}; border-right: 1px solid ${n}; }`)}}));const Ci=()=>{throw new Error("Invalid change accessor")};class wi extends K{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(133);this._lineHeight=t.get(61),this._contentWidth=i.contentWidth,this._contentLeft=i.contentLeft,this.domNode=(0,V.X)(document.createElement("div")),this.domNode.setClassName("view-zones"),this.domNode.setPosition("absolute"),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.marginDomNode=(0,V.X)(document.createElement("div")),this.marginDomNode.setClassName("margin-view-zones"),this.marginDomNode.setPosition("absolute"),this.marginDomNode.setAttribute("role","presentation"),this.marginDomNode.setAttribute("aria-hidden","true"),this._zones={}}dispose(){super.dispose(),this._zones={}}_recomputeWhitespacesProps(){const e=this._context.viewLayout.getWhitespaces(),t=new Map;for(const n of e)t.set(n.id,n);let i=!1;return this._context.viewModel.changeWhitespace((e=>{const n=Object.keys(this._zones);for(let o=0,s=n.length;o<s;o++){const s=n[o],r=this._zones[s],a=this._computeWhitespaceProps(r.delegate);r.isInHiddenArea=a.isInHiddenArea;const l=t.get(s);!l||l.afterLineNumber===a.afterViewLineNumber&&l.height===a.heightInPx||(e.changeOneWhitespace(s,a.afterViewLineNumber,a.heightInPx),this._safeCallOnComputedHeight(r.delegate,a.heightInPx),i=!0)}})),i}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(133);return this._lineHeight=t.get(61),this._contentWidth=i.contentWidth,this._contentLeft=i.contentLeft,e.hasChanged(61)&&this._recomputeWhitespacesProps(),!0}onLineMappingChanged(e){return this._recomputeWhitespacesProps()}onLinesDeleted(e){return!0}onScrollChanged(e){return e.scrollTopChanged||e.scrollWidthChanged}onZonesChanged(e){return!0}onLinesInserted(e){return!0}_getZoneOrdinal(e){return void 0!==e.afterColumn?e.afterColumn:1e4}_computeWhitespaceProps(e){if(0===e.afterLineNumber)return{isInHiddenArea:!1,afterViewLineNumber:0,heightInPx:this._heightInPixels(e),minWidthInPx:this._minWidthInPixels(e)};let t,i;if(void 0!==e.afterColumn)t=this._context.viewModel.model.validatePosition({lineNumber:e.afterLineNumber,column:e.afterColumn});else{const i=this._context.viewModel.model.validatePosition({lineNumber:e.afterLineNumber,column:1}).lineNumber;t=new me.L(i,this._context.viewModel.model.getLineMaxColumn(i))}i=t.column===this._context.viewModel.model.getLineMaxColumn(t.lineNumber)?this._context.viewModel.model.validatePosition({lineNumber:t.lineNumber+1,column:1}):this._context.viewModel.model.validatePosition({lineNumber:t.lineNumber,column:t.column+1});const n=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(t,e.afterColumnAffinity),o=this._context.viewModel.coordinatesConverter.modelPositionIsVisible(i);return{isInHiddenArea:!o,afterViewLineNumber:n.lineNumber,heightInPx:o?this._heightInPixels(e):0,minWidthInPx:this._minWidthInPixels(e)}}changeViewZones(e){let t=!1;return this._context.viewModel.changeWhitespace((i=>{const n={addZone:e=>(t=!0,this._addZone(i,e)),removeZone:e=>{e&&(t=this._removeZone(i,e)||t)},layoutZone:e=>{e&&(t=this._layoutZone(i,e)||t)}};!function(e,t){try{e(t)}catch(i){(0,d.dL)(i)}}(e,n),n.addZone=Ci,n.removeZone=Ci,n.layoutZone=Ci})),t}_addZone(e,t){const i=this._computeWhitespaceProps(t),n={whitespaceId:e.insertWhitespace(i.afterViewLineNumber,this._getZoneOrdinal(t),i.heightInPx,i.minWidthInPx),delegate:t,isInHiddenArea:i.isInHiddenArea,isVisible:!1,domNode:(0,V.X)(t.domNode),marginDomNode:t.marginDomNode?(0,V.X)(t.marginDomNode):null};return this._safeCallOnComputedHeight(n.delegate,i.heightInPx),n.domNode.setPosition("absolute"),n.domNode.domNode.style.width="100%",n.domNode.setDisplay("none"),n.domNode.setAttribute("monaco-view-zone",n.whitespaceId),this.domNode.appendChild(n.domNode),n.marginDomNode&&(n.marginDomNode.setPosition("absolute"),n.marginDomNode.domNode.style.width="100%",n.marginDomNode.setDisplay("none"),n.marginDomNode.setAttribute("monaco-view-zone",n.whitespaceId),this.marginDomNode.appendChild(n.marginDomNode)),this._zones[n.whitespaceId]=n,this.setShouldRender(),n.whitespaceId}_removeZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t];return delete this._zones[t],e.removeWhitespace(i.whitespaceId),i.domNode.removeAttribute("monaco-visible-view-zone"),i.domNode.removeAttribute("monaco-view-zone"),i.domNode.domNode.parentNode.removeChild(i.domNode.domNode),i.marginDomNode&&(i.marginDomNode.removeAttribute("monaco-visible-view-zone"),i.marginDomNode.removeAttribute("monaco-view-zone"),i.marginDomNode.domNode.parentNode.removeChild(i.marginDomNode.domNode)),this.setShouldRender(),!0}return!1}_layoutZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t],n=this._computeWhitespaceProps(i.delegate);return i.isInHiddenArea=n.isInHiddenArea,e.changeOneWhitespace(i.whitespaceId,n.afterViewLineNumber,n.heightInPx),this._safeCallOnComputedHeight(i.delegate,n.heightInPx),this.setShouldRender(),!0}return!1}shouldSuppressMouseDownOnViewZone(e){if(this._zones.hasOwnProperty(e)){const t=this._zones[e];return Boolean(t.delegate.suppressMouseDown)}return!1}_heightInPixels(e){return"number"==typeof e.heightInPx?e.heightInPx:"number"==typeof e.heightInLines?this._lineHeight*e.heightInLines:this._lineHeight}_minWidthInPixels(e){return"number"==typeof e.minWidthInPx?e.minWidthInPx:0}_safeCallOnComputedHeight(e,t){if("function"==typeof e.onComputedHeight)try{e.onComputedHeight(t)}catch(i){(0,d.dL)(i)}}_safeCallOnDomNodeTop(e,t){if("function"==typeof e.onDomNodeTop)try{e.onDomNodeTop(t)}catch(i){(0,d.dL)(i)}}prepareRender(e){}render(e){const t=e.viewportData.whitespaceViewportData,i={};let n=!1;for(const s of t)this._zones[s.id].isInHiddenArea||(i[s.id]=s,n=!0);const o=Object.keys(this._zones);for(let s=0,r=o.length;s<r;s++){const t=o[s],n=this._zones[t];let r=0,a=0,l="none";i.hasOwnProperty(t)?(r=i[t].verticalOffset-e.bigNumbersDelta,a=i[t].height,l="block",n.isVisible||(n.domNode.setAttribute("monaco-visible-view-zone","true"),n.isVisible=!0),this._safeCallOnDomNodeTop(n.delegate,e.getScrolledTopFromAbsoluteTop(i[t].verticalOffset))):(n.isVisible&&(n.domNode.removeAttribute("monaco-visible-view-zone"),n.isVisible=!1),this._safeCallOnDomNodeTop(n.delegate,e.getScrolledTopFromAbsoluteTop(-1e6))),n.domNode.setTop(r),n.domNode.setHeight(a),n.domNode.setDisplay(l),n.marginDomNode&&(n.marginDomNode.setTop(r),n.marginDomNode.setHeight(a),n.marginDomNode.setDisplay(l))}n&&(this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth)),this.marginDomNode.setWidth(this._contentLeft))}}class yi{constructor(e){this._theme=e}get type(){return this._theme.type}get value(){return this._theme}update(e){this._theme=e}getColor(e){return this._theme.getColor(e)}}class Si{constructor(e,t,i){this.configuration=e,this.theme=new yi(t),this.viewModel=i,this.viewLayout=i.viewLayout}addEventHandler(e){this.viewModel.addViewEventHandler(e)}removeEventHandler(e){this.viewModel.removeViewEventHandler(e)}}class Li{constructor(e,t,i,n){this.selections=e,this.startLineNumber=0|t.startLineNumber,this.endLineNumber=0|t.endLineNumber,this.relativeVerticalOffset=t.relativeVerticalOffset,this.bigNumbersDelta=0|t.bigNumbersDelta,this.whitespaceViewportData=i,this._model=n,this.visibleRange=new fe.e(t.startLineNumber,this._model.getLineMinColumn(t.startLineNumber),t.endLineNumber,this._model.getLineMaxColumn(t.endLineNumber))}getViewLineRenderingData(e){return this._model.getViewportViewLineRenderingData(this.visibleRange,e)}getDecorationsInViewport(){return this._model.getDecorationsInViewport(this.visibleRange)}}class ki extends K{constructor(e){super(e),this.blocks=[],this.contentWidth=-1,this.domNode=(0,V.X)(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("blockDecorations-container"),this.update()}update(){let e=!1;const t=this._context.configuration.options.get(133),i=t.contentWidth-t.verticalScrollbarWidth;return this.contentWidth!==i&&(this.contentWidth=i,e=!0),e}dispose(){super.dispose()}onConfigurationChanged(e){return this.update()}onScrollChanged(e){return e.scrollTopChanged||e.scrollLeftChanged}onDecorationsChanged(e){return!0}onZonesChanged(e){return!0}prepareRender(e){}render(e){let t=0;const i=e.getDecorationsInViewport();for(const n of i){if(!n.options.blockClassName)continue;let i=this.blocks[t];i||(i=this.blocks[t]=(0,V.X)(document.createElement("div")),this.domNode.appendChild(i));const o=e.getVerticalOffsetForLineNumber(n.range.startLineNumber),s=e.getVerticalOffsetForLineNumber(n.range.endLineNumber+1);i.setClassName("blockDecorations-block "+n.options.blockClassName),i.setLeft(e.scrollLeft),i.setWidth(this.contentWidth),i.setTop(o),i.setHeight(s-o),t++}for(let n=t;n<this.blocks.length;n++)this.blocks[n].domNode.remove();this.blocks.length=t}}class xi extends U{constructor(e,t,i,n,o,s){super(),this._selections=[new B.Y(1,1,1,1)],this._renderAnimationFrame=null;const r=new et(t,n,o,e);this._context=new Si(t,i,n),this._context.addEventHandler(this),this._viewParts=[],this._textAreaHandler=new Je(this._context,r,this._createTextAreaHandlerHelper()),this._viewParts.push(this._textAreaHandler),this._linesContent=(0,V.X)(document.createElement("div")),this._linesContent.setClassName("lines-content monaco-editor-background"),this._linesContent.setPosition("absolute"),this.domNode=(0,V.X)(document.createElement("div")),this.domNode.setClassName(this._getEditorClassName()),this.domNode.setAttribute("role","code"),this._overflowGuardContainer=(0,V.X)(document.createElement("div")),$.write(this._overflowGuardContainer,3),this._overflowGuardContainer.setClassName("overflow-guard"),this._scrollbar=new wt(this._context,this._linesContent,this.domNode,this._overflowGuardContainer),this._viewParts.push(this._scrollbar),this._viewLines=new At(this._context,this._linesContent),this._viewZones=new wi(this._context),this._viewParts.push(this._viewZones);const a=new ri(this._context);this._viewParts.push(a);const l=new di(this._context);this._viewParts.push(l);const c=new ct(this._context);this._viewParts.push(c),c.addDynamicOverlay(new ft(this._context)),c.addDynamicOverlay(new mi(this._context)),c.addDynamicOverlay(new Nt(this._context)),c.addDynamicOverlay(new vt(this._context));const d=new dt(this._context);this._viewParts.push(d),d.addDynamicOverlay(new _t(this._context)),d.addDynamicOverlay(new Lt(this._context)),d.addDynamicOverlay(new Ot(this._context)),d.addDynamicOverlay(new Rt(this._context)),d.addDynamicOverlay(new Ue(this._context));const h=new Ke(this._context);h.getDomNode().appendChild(this._viewZones.marginDomNode),h.getDomNode().appendChild(d.getDomNode()),this._viewParts.push(h),this._contentWidgets=new ut(this._context,this.domNode),this._viewParts.push(this._contentWidgets),this._viewCursors=new bi(this._context),this._viewParts.push(this._viewCursors),this._overlayWidgets=new oi(this._context),this._viewParts.push(this._overlayWidgets);const u=new ci(this._context);this._viewParts.push(u);const g=new ki(this._context);this._viewParts.push(g);const p=new ti(this._context);if(this._viewParts.push(p),a){const e=this._scrollbar.getOverviewRulerLayoutInfo();e.parent.insertBefore(a.getDomNode(),e.insertBefore)}this._linesContent.appendChild(c.getDomNode()),this._linesContent.appendChild(u.domNode),this._linesContent.appendChild(g.domNode),this._linesContent.appendChild(this._viewZones.domNode),this._linesContent.appendChild(this._viewLines.getDomNode()),this._linesContent.appendChild(this._contentWidgets.domNode),this._linesContent.appendChild(this._viewCursors.getDomNode()),this._overflowGuardContainer.appendChild(h.getDomNode()),this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this._overflowGuardContainer.appendChild(l.getDomNode()),this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea),this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover),this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()),this._overflowGuardContainer.appendChild(p.getDomNode()),this.domNode.appendChild(this._overflowGuardContainer),s?s.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode):this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode),this._applyLayout(),this._pointerHandler=this._register(new Fe(this._context,r,this._createPointerHandlerHelper()))}_flushAccumulatedAndRenderNow(){this._renderNow()}_createPointerHandlerHelper(){return{viewDomNode:this.domNode.domNode,linesContentDomNode:this._linesContent.domNode,viewLinesDomNode:this._viewLines.getDomNode().domNode,focusTextArea:()=>{this.focus()},dispatchTextAreaEvent:e=>{this._textAreaHandler.textArea.domNode.dispatchEvent(e)},getLastRenderData:()=>{const e=this._viewCursors.getLastRenderData()||[],t=this._textAreaHandler.getLastRenderData();return new we(e,t)},shouldSuppressMouseDownOnViewZone:e=>this._viewZones.shouldSuppressMouseDownOnViewZone(e),shouldSuppressMouseDownOnWidget:e=>this._contentWidgets.shouldSuppressMouseDownOnWidget(e),getPositionFromDOMInfo:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getPositionFromDOMInfo(e,t)),visibleRangeForPosition:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(new me.L(e,t))),getLineWidth:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getLineWidth(e))}}_createTextAreaHandlerHelper(){return{visibleRangeForPosition:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(e))}}_applyLayout(){const e=this._context.configuration.options.get(133);this.domNode.setWidth(e.width),this.domNode.setHeight(e.height),this._overflowGuardContainer.setWidth(e.width),this._overflowGuardContainer.setHeight(e.height),this._linesContent.setWidth(1e6),this._linesContent.setHeight(1e6)}_getEditorClassName(){const e=this._textAreaHandler.isFocused()?" focused":"";return this._context.configuration.options.get(130)+" "+(0,je.m6)(this._context.theme.type)+e}handleEvents(e){super.handleEvents(e),this._scheduleRender()}onConfigurationChanged(e){return this.domNode.setClassName(this._getEditorClassName()),this._applyLayout(),!1}onCursorStateChanged(e){return this._selections=e.selections,!1}onFocusChanged(e){return this.domNode.setClassName(this._getEditorClassName()),!1}onThemeChanged(e){return this._context.theme.update(e.theme),this.domNode.setClassName(this._getEditorClassName()),!1}dispose(){null!==this._renderAnimationFrame&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewLines.dispose();for(const e of this._viewParts)e.dispose();super.dispose()}_scheduleRender(){null===this._renderAnimationFrame&&(this._renderAnimationFrame=c.lI(this._onRenderScheduled.bind(this),100))}_onRenderScheduled(){this._renderAnimationFrame=null,this._flushAccumulatedAndRenderNow()}_renderNow(){!function(e){try{e()}catch(t){(0,d.dL)(t)}}((()=>this._actualRender()))}_getViewPartsToRender(){const e=[];let t=0;for(const i of this._viewParts)i.shouldRender()&&(e[t++]=i);return e}_actualRender(){if(!c.Uw(this.domNode.domNode))return;let e=this._getViewPartsToRender();if(!this._viewLines.shouldRender()&&0===e.length)return;const t=this._context.viewLayout.getLinesViewportData();this._context.viewModel.setViewport(t.startLineNumber,t.endLineNumber,t.centeredLineNumber);const i=new Li(this._selections,t,this._context.viewLayout.getWhitespaceViewportData(),this._context.viewModel);this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(i),this._viewLines.shouldRender()&&(this._viewLines.renderText(i),this._viewLines.onDidRender(),e=this._getViewPartsToRender());const n=new q(this._context.viewLayout,i,this._viewLines);for(const o of e)o.prepareRender(n);for(const o of e)o.render(n),o.onDidRender()}delegateVerticalScrollbarPointerDown(e){this._scrollbar.delegateVerticalScrollbarPointerDown(e)}restoreState(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e.scrollTop},1),this._context.viewModel.tokenizeViewport(),this._renderNow(),this._viewLines.updateLineWidths(),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:e.scrollLeft},1)}getOffsetForColumn(e,t){const i=this._context.viewModel.model.validatePosition({lineNumber:e,column:t}),n=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i);this._flushAccumulatedAndRenderNow();const o=this._viewLines.visibleRangeForPosition(new me.L(n.lineNumber,n.column));return o?o.left:-1}getTargetAtClientPoint(e,t){const i=this._pointerHandler.getTargetAtClientPoint(e,t);return i?tt.convertViewToModelMouseTarget(i,this._context.viewModel.coordinatesConverter):null}createOverviewRuler(e){return new li(this._context,e)}change(e){this._viewZones.changeViewZones(e),this._scheduleRender()}render(e,t){if(t){this._viewLines.forceShouldRender();for(const e of this._viewParts)e.forceShouldRender()}e?this._flushAccumulatedAndRenderNow():this._scheduleRender()}focus(){this._textAreaHandler.focusTextArea()}isFocused(){return this._textAreaHandler.isFocused()}setAriaOptions(e){this._textAreaHandler.setAriaOptions(e)}addContentWidget(e){this._contentWidgets.addWidget(e.widget),this.layoutContentWidget(e),this._scheduleRender()}layoutContentWidget(e){var t,i;let n=e.position&&e.position.range||null;if(null===n){const t=e.position?e.position.position:null;null!==t&&(n=new fe.e(t.lineNumber,t.column,t.lineNumber,t.column))}const o=e.position?e.position.preference:null;this._contentWidgets.setWidgetPosition(e.widget,n,o,null!==(i=null===(t=e.position)||void 0===t?void 0:t.positionAffinity)&&void 0!==i?i:null),this._scheduleRender()}removeContentWidget(e){this._contentWidgets.removeWidget(e.widget),this._scheduleRender()}addOverlayWidget(e){this._overlayWidgets.addWidget(e.widget),this.layoutOverlayWidget(e),this._scheduleRender()}layoutOverlayWidget(e){const t=e.position?e.position.preference:null;this._overlayWidgets.setWidgetPosition(e.widget,t)&&this._scheduleRender()}removeOverlayWidget(e){this._overlayWidgets.removeWidget(e.widget),this._scheduleRender()}}var Di=i(55343);class Ni{constructor(e){this._selTrackedRange=null,this._trackSelection=!0,this._setState(e,new Di.rS(new fe.e(1,1,1,1),0,new me.L(1,1),0),new Di.rS(new fe.e(1,1,1,1),0,new me.L(1,1),0))}dispose(e){this._removeTrackedRange(e)}startTrackingSelection(e){this._trackSelection=!0,this._updateTrackedRange(e)}stopTrackingSelection(e){this._trackSelection=!1,this._removeTrackedRange(e)}_updateTrackedRange(e){this._trackSelection&&(this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,this.modelState.selection,0))}_removeTrackedRange(e){this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,null,0)}asCursorState(){return new Di.Vi(this.modelState,this.viewState)}readSelectionFromMarkers(e){const t=e.model._getTrackedRange(this._selTrackedRange);return B.Y.fromRange(t,this.modelState.selection.getDirection())}ensureValidState(e){this._setState(e,this.modelState,this.viewState)}setState(e,t,i){this._setState(e,t,i)}static _validatePositionWithCache(e,t,i,n){return t.equals(i)?n:e.normalizePosition(t,2)}static _validateViewState(e,t){const i=t.position,n=t.selectionStart.getStartPosition(),o=t.selectionStart.getEndPosition(),s=e.normalizePosition(i,2),r=this._validatePositionWithCache(e,n,i,s),a=this._validatePositionWithCache(e,o,n,r);return i.equals(s)&&n.equals(r)&&o.equals(a)?t:new Di.rS(fe.e.fromPositions(r,a),t.selectionStartLeftoverVisibleColumns+n.column-r.column,s,t.leftoverVisibleColumns+i.column-s.column)}_setState(e,t,i){if(i&&(i=Ni._validateViewState(e.viewModel,i)),t){const i=e.model.validateRange(t.selectionStart),n=t.selectionStart.equalsRange(i)?t.selectionStartLeftoverVisibleColumns:0,o=e.model.validatePosition(t.position),s=t.position.equals(o)?t.leftoverVisibleColumns:0;t=new Di.rS(i,n,o,s)}else{if(!i)return;const n=e.model.validateRange(e.coordinatesConverter.convertViewRangeToModelRange(i.selectionStart)),o=e.model.validatePosition(e.coordinatesConverter.convertViewPositionToModelPosition(i.position));t=new Di.rS(n,i.selectionStartLeftoverVisibleColumns,o,i.leftoverVisibleColumns)}if(i){const n=e.coordinatesConverter.validateViewRange(i.selectionStart,t.selectionStart),o=e.coordinatesConverter.validateViewPosition(i.position,t.position);i=new Di.rS(n,t.selectionStartLeftoverVisibleColumns,o,t.leftoverVisibleColumns)}else{const n=e.coordinatesConverter.convertModelPositionToViewPosition(new me.L(t.selectionStart.startLineNumber,t.selectionStart.startColumn)),o=e.coordinatesConverter.convertModelPositionToViewPosition(new me.L(t.selectionStart.endLineNumber,t.selectionStart.endColumn)),s=new fe.e(n.lineNumber,n.column,o.lineNumber,o.column),r=e.coordinatesConverter.convertModelPositionToViewPosition(t.position);i=new Di.rS(s,t.selectionStartLeftoverVisibleColumns,r,t.leftoverVisibleColumns)}this.modelState=t,this.viewState=i,this._updateTrackedRange(e)}}class Ei{constructor(e){this.context=e,this.cursors=[new Ni(e)],this.lastAddedCursorIndex=0}dispose(){for(const e of this.cursors)e.dispose(this.context)}startTrackingSelections(){for(const e of this.cursors)e.startTrackingSelection(this.context)}stopTrackingSelections(){for(const e of this.cursors)e.stopTrackingSelection(this.context)}updateContext(e){this.context=e}ensureValidState(){for(const e of this.cursors)e.ensureValidState(this.context)}readSelectionFromMarkers(){return this.cursors.map((e=>e.readSelectionFromMarkers(this.context)))}getAll(){return this.cursors.map((e=>e.asCursorState()))}getViewPositions(){return this.cursors.map((e=>e.viewState.position))}getTopMostViewPosition(){return(0,m.VJ)(this.cursors,(0,m.tT)((e=>e.viewState.position),me.L.compare)).viewState.position}getBottomMostViewPosition(){return(0,m.jV)(this.cursors,(0,m.tT)((e=>e.viewState.position),me.L.compare)).viewState.position}getSelections(){return this.cursors.map((e=>e.modelState.selection))}getViewSelections(){return this.cursors.map((e=>e.viewState.selection))}setSelections(e){this.setStates(Di.Vi.fromModelSelections(e))}getPrimaryCursor(){return this.cursors[0].asCursorState()}setStates(e){null!==e&&(this.cursors[0].setState(this.context,e[0].modelState,e[0].viewState),this._setSecondaryStates(e.slice(1)))}_setSecondaryStates(e){const t=this.cursors.length-1,i=e.length;if(t<i){const e=i-t;for(let t=0;t<e;t++)this._addSecondaryCursor()}else if(t>i){const e=t-i;for(let t=0;t<e;t++)this._removeSecondaryCursor(this.cursors.length-2)}for(let n=0;n<i;n++)this.cursors[n+1].setState(this.context,e[n].modelState,e[n].viewState)}killSecondaryCursors(){this._setSecondaryStates([])}_addSecondaryCursor(){this.cursors.push(new Ni(this.context)),this.lastAddedCursorIndex=this.cursors.length-1}getLastAddedCursorIndex(){return 1===this.cursors.length||0===this.lastAddedCursorIndex?0:this.lastAddedCursorIndex}_removeSecondaryCursor(e){this.lastAddedCursorIndex>=e+1&&this.lastAddedCursorIndex--,this.cursors[e+1].dispose(this.context),this.cursors.splice(e+1,1)}normalize(){if(1===this.cursors.length)return;const e=this.cursors.slice(0),t=[];for(let i=0,n=e.length;i<n;i++)t.push({index:i,selection:e[i].modelState.selection});t.sort((0,m.tT)((e=>e.selection),fe.e.compareRangesUsingStarts));for(let i=0;i<t.length-1;i++){const n=t[i],o=t[i+1],s=n.selection,r=o.selection;if(!this.context.cursorConfig.multiCursorMergeOverlapping)continue;let a;if(a=r.isEmpty()||s.isEmpty()?r.getStartPosition().isBeforeOrEqual(s.getEndPosition()):r.getStartPosition().isBefore(s.getEndPosition()),a){const s=n.index<o.index?i:i+1,r=n.index<o.index?i+1:i,a=t[r].index,l=t[s].index,c=t[r].selection,d=t[s].selection;if(!c.equalsSelection(d)){const i=c.plusRange(d),n=c.selectionStartLineNumber===c.startLineNumber&&c.selectionStartColumn===c.startColumn,o=d.selectionStartLineNumber===d.startLineNumber&&d.selectionStartColumn===d.startColumn;let r,h;a===this.lastAddedCursorIndex?(r=n,this.lastAddedCursorIndex=l):r=o,h=r?new B.Y(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn):new B.Y(i.endLineNumber,i.endColumn,i.startLineNumber,i.startColumn),t[s].selection=h;const u=Di.Vi.fromModelSelection(h);e[l].setState(this.context,u.modelState,u.viewState)}for(const e of t)e.index>a&&e.index--;e.splice(a,1),t.splice(r,1),this._removeSecondaryCursor(a-1),i--}}}}class Ii{constructor(e,t,i,n){this._cursorContextBrand=void 0,this.model=e,this.viewModel=t,this.coordinatesConverter=i,this.cursorConfig=n}}var Ti=i(29436),Mi=i(94729),Ai=i(14706);class Ri{constructor(){this.type=0}}class Oi{constructor(){this.type=1}}class Pi{constructor(e){this.type=2,this._source=e}hasChanged(e){return this._source.hasChanged(e)}}class Fi{constructor(e,t){this.type=3,this.selections=e,this.modelSelections=t}}class Bi{constructor(e){this.type=4,e?(this.affectsMinimap=e.affectsMinimap,this.affectsOverviewRuler=e.affectsOverviewRuler):(this.affectsMinimap=!0,this.affectsOverviewRuler=!0)}}class Vi{constructor(){this.type=5}}class Wi{constructor(e){this.type=6,this.isFocused=e}}class Hi{constructor(){this.type=7}}class zi{constructor(){this.type=8}}class ji{constructor(e,t){this.fromLineNumber=e,this.count=t,this.type=9}}class Ui{constructor(e,t){this.type=10,this.fromLineNumber=e,this.toLineNumber=t}}class Ki{constructor(e,t){this.type=11,this.fromLineNumber=e,this.toLineNumber=t}}class $i{constructor(e,t,i,n,o,s,r){this.source=e,this.minimalReveal=t,this.range=i,this.selections=n,this.verticalType=o,this.revealHorizontal=s,this.scrollType=r,this.type=12}}class qi{constructor(e){this.type=13,this.scrollWidth=e.scrollWidth,this.scrollLeft=e.scrollLeft,this.scrollHeight=e.scrollHeight,this.scrollTop=e.scrollTop,this.scrollWidthChanged=e.scrollWidthChanged,this.scrollLeftChanged=e.scrollLeftChanged,this.scrollHeightChanged=e.scrollHeightChanged,this.scrollTopChanged=e.scrollTopChanged}}class Gi{constructor(e){this.theme=e,this.type=14}}class Qi{constructor(e){this.type=15,this.ranges=e}}class Zi{constructor(){this.type=16}}class Yi{constructor(){this.type=17}}class Ji extends u.JT{constructor(){super(),this._onEvent=this._register(new h.Q5),this.onEvent=this._onEvent.event,this._eventHandlers=[],this._viewEventQueue=null,this._isConsumingViewEventQueue=!1,this._collector=null,this._collectorCnt=0,this._outgoingEvents=[]}emitOutgoingEvent(e){this._addOutgoingEvent(e),this._emitOutgoingEvents()}_addOutgoingEvent(e){for(let t=0,i=this._outgoingEvents.length;t<i;t++){const i=this._outgoingEvents[t].kind===e.kind?this._outgoingEvents[t].attemptToMerge(e):null;if(i)return void(this._outgoingEvents[t]=i)}this._outgoingEvents.push(e)}_emitOutgoingEvents(){for(;this._outgoingEvents.length>0;){if(this._collector||this._isConsumingViewEventQueue)return;const e=this._outgoingEvents.shift();e.isNoOp()||this._onEvent.fire(e)}}addViewEventHandler(e){for(let t=0,i=this._eventHandlers.length;t<i;t++)this._eventHandlers[t]===e&&console.warn("Detected duplicate listener in ViewEventDispatcher",e);this._eventHandlers.push(e)}removeViewEventHandler(e){for(let t=0;t<this._eventHandlers.length;t++)if(this._eventHandlers[t]===e){this._eventHandlers.splice(t,1);break}}beginEmitViewEvents(){return this._collectorCnt++,1===this._collectorCnt&&(this._collector=new Xi),this._collector}endEmitViewEvents(){if(this._collectorCnt--,0===this._collectorCnt){const e=this._collector.outgoingEvents,t=this._collector.viewEvents;this._collector=null;for(const i of e)this._addOutgoingEvent(i);t.length>0&&this._emitMany(t)}this._emitOutgoingEvents()}emitSingleViewEvent(e){try{this.beginEmitViewEvents().emitViewEvent(e)}finally{this.endEmitViewEvents()}}_emitMany(e){this._viewEventQueue?this._viewEventQueue=this._viewEventQueue.concat(e):this._viewEventQueue=e,this._isConsumingViewEventQueue||this._consumeViewEventQueue()}_consumeViewEventQueue(){try{this._isConsumingViewEventQueue=!0,this._doConsumeQueue()}finally{this._isConsumingViewEventQueue=!1}}_doConsumeQueue(){for(;this._viewEventQueue;){const e=this._viewEventQueue;this._viewEventQueue=null;const t=this._eventHandlers.slice(0);for(const i of t)i.handleEvents(e)}}}class Xi{constructor(){this.viewEvents=[],this.outgoingEvents=[]}emitViewEvent(e){this.viewEvents.push(e)}emitOutgoingEvent(e){this.outgoingEvents.push(e)}}class en{constructor(e,t,i,n){this.kind=0,this._oldContentWidth=e,this._oldContentHeight=t,this.contentWidth=i,this.contentHeight=n,this.contentWidthChanged=this._oldContentWidth!==this.contentWidth,this.contentHeightChanged=this._oldContentHeight!==this.contentHeight}isNoOp(){return!this.contentWidthChanged&&!this.contentHeightChanged}attemptToMerge(e){return e.kind!==this.kind?null:new en(this._oldContentWidth,this._oldContentHeight,e.contentWidth,e.contentHeight)}}class tn{constructor(e,t){this.kind=1,this.oldHasFocus=e,this.hasFocus=t}isNoOp(){return this.oldHasFocus===this.hasFocus}attemptToMerge(e){return e.kind!==this.kind?null:new tn(this.oldHasFocus,e.hasFocus)}}class nn{constructor(e,t,i,n,o,s,r,a){this.kind=2,this._oldScrollWidth=e,this._oldScrollLeft=t,this._oldScrollHeight=i,this._oldScrollTop=n,this.scrollWidth=o,this.scrollLeft=s,this.scrollHeight=r,this.scrollTop=a,this.scrollWidthChanged=this._oldScrollWidth!==this.scrollWidth,this.scrollLeftChanged=this._oldScrollLeft!==this.scrollLeft,this.scrollHeightChanged=this._oldScrollHeight!==this.scrollHeight,this.scrollTopChanged=this._oldScrollTop!==this.scrollTop}isNoOp(){return!(this.scrollWidthChanged||this.scrollLeftChanged||this.scrollHeightChanged||this.scrollTopChanged)}attemptToMerge(e){return e.kind!==this.kind?null:new nn(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop)}}class on{constructor(){this.kind=3}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class sn{constructor(){this.kind=4}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class rn{constructor(e,t,i,n,o,s,r){this.kind=6,this.oldSelections=e,this.selections=t,this.oldModelVersionId=i,this.modelVersionId=n,this.source=o,this.reason=s,this.reachedMaxCursorCount=r}static _selectionsAreEqual(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;const i=e.length;if(i!==t.length)return!1;for(let n=0;n<i;n++)if(!e[n].equalsSelection(t[n]))return!1;return!0}isNoOp(){return rn._selectionsAreEqual(this.oldSelections,this.selections)&&this.oldModelVersionId===this.modelVersionId}attemptToMerge(e){return e.kind!==this.kind?null:new rn(this.oldSelections,e.selections,this.oldModelVersionId,e.modelVersionId,e.source,e.reason,this.reachedMaxCursorCount||e.reachedMaxCursorCount)}}class an{constructor(){this.kind=5}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class ln{constructor(e){this.event=e,this.kind=7}isNoOp(){return!1}attemptToMerge(e){return null}}class cn{constructor(e){this.event=e,this.kind=8}isNoOp(){return!1}attemptToMerge(e){return null}}class dn{constructor(e){this.event=e,this.kind=9}isNoOp(){return!1}attemptToMerge(e){return null}}class hn{constructor(e){this.event=e,this.kind=10}isNoOp(){return!1}attemptToMerge(e){return null}}class un{constructor(e){this.event=e,this.kind=11}isNoOp(){return!1}attemptToMerge(e){return null}}class gn{constructor(e){this.event=e,this.kind=12}isNoOp(){return!1}attemptToMerge(e){return null}}class pn extends u.JT{constructor(e,t,i,n){super(),this._model=e,this._knownModelVersionId=this._model.getVersionId(),this._viewModel=t,this._coordinatesConverter=i,this.context=new Ii(this._model,this._viewModel,this._coordinatesConverter,n),this._cursors=new Ei(this.context),this._hasFocus=!1,this._isHandling=!1,this._compositionState=null,this._columnSelectData=null,this._autoClosedActions=[],this._prevEditOperationType=0}dispose(){this._cursors.dispose(),this._autoClosedActions=(0,u.B9)(this._autoClosedActions),super.dispose()}updateConfiguration(e){this.context=new Ii(this._model,this._viewModel,this._coordinatesConverter,e),this._cursors.updateContext(this.context)}onLineMappingChanged(e){this._knownModelVersionId===this._model.getVersionId()&&this.setStates(e,"viewModel",0,this.getCursorStates())}setHasFocus(e){this._hasFocus=e}_validateAutoClosedActions(){if(this._autoClosedActions.length>0){const e=this._cursors.getSelections();for(let t=0;t<this._autoClosedActions.length;t++){const i=this._autoClosedActions[t];i.isValid(e)||(i.dispose(),this._autoClosedActions.splice(t,1),t--)}}}getPrimaryCursorState(){return this._cursors.getPrimaryCursor()}getLastAddedCursorIndex(){return this._cursors.getLastAddedCursorIndex()}getCursorStates(){return this._cursors.getAll()}setStates(e,t,i,n){let o=!1;null!==n&&n.length>pn.MAX_CURSOR_COUNT&&(n=n.slice(0,pn.MAX_CURSOR_COUNT),o=!0);const s=mn.from(this._model,this);return this._cursors.setStates(n),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,t,i,s,o)}setCursorColumnSelectData(e){this._columnSelectData=e}revealPrimary(e,t,i,n,o,s){const r=this._cursors.getViewPositions();let a=null,l=null;r.length>1?l=this._cursors.getViewSelections():a=fe.e.fromPositions(r[0],r[0]),e.emitViewEvent(new $i(t,i,a,l,n,o,s))}saveState(){const e=[],t=this._cursors.getSelections();for(let i=0,n=t.length;i<n;i++){const n=t[i];e.push({inSelectionMode:!n.isEmpty(),selectionStart:{lineNumber:n.selectionStartLineNumber,column:n.selectionStartColumn},position:{lineNumber:n.positionLineNumber,column:n.positionColumn}})}return e}restoreState(e,t){const i=[];for(let n=0,o=t.length;n<o;n++){const e=t[n];let o=1,s=1;e.position&&e.position.lineNumber&&(o=e.position.lineNumber),e.position&&e.position.column&&(s=e.position.column);let r=o,a=s;e.selectionStart&&e.selectionStart.lineNumber&&(r=e.selectionStart.lineNumber),e.selectionStart&&e.selectionStart.column&&(a=e.selectionStart.column),i.push({selectionStartLineNumber:r,selectionStartColumn:a,positionLineNumber:o,positionColumn:s})}this.setStates(e,"restoreState",0,Di.Vi.fromModelSelections(i)),this.revealPrimary(e,"restoreState",!1,0,!0,1)}onModelContentChanged(e,t){if(t instanceof Ai.D8){if(this._isHandling)return;this._isHandling=!0;try{this.setStates(e,"modelChange",0,this.getCursorStates())}finally{this._isHandling=!1}}else{const i=t.rawContentChangedEvent;if(this._knownModelVersionId=i.versionId,this._isHandling)return;const n=i.containsEvent(1);if(this._prevEditOperationType=0,n)this._cursors.dispose(),this._cursors=new Ei(this.context),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,"model",1,null,!1);else if(this._hasFocus&&i.resultingSelection&&i.resultingSelection.length>0){const t=Di.Vi.fromModelSelections(i.resultingSelection);this.setStates(e,"modelChange",i.isUndoing?5:i.isRedoing?6:2,t)&&this.revealPrimary(e,"modelChange",!1,0,!0,0)}else{const t=this._cursors.readSelectionFromMarkers();this.setStates(e,"modelChange",2,Di.Vi.fromModelSelections(t))}}}getSelection(){return this._cursors.getPrimaryCursor().modelState.selection}getTopMostViewPosition(){return this._cursors.getTopMostViewPosition()}getBottomMostViewPosition(){return this._cursors.getBottomMostViewPosition()}getCursorColumnSelectData(){if(this._columnSelectData)return this._columnSelectData;const e=this._cursors.getPrimaryCursor(),t=e.viewState.selectionStart.getStartPosition(),i=e.viewState.position;return{isReal:!1,fromViewLineNumber:t.lineNumber,fromViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,t),toViewLineNumber:i.lineNumber,toViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,i)}}getSelections(){return this._cursors.getSelections()}setSelections(e,t,i,n){this.setStates(e,t,n,Di.Vi.fromModelSelections(i))}getPrevEditOperationType(){return this._prevEditOperationType}setPrevEditOperationType(e){this._prevEditOperationType=e}_pushAutoClosedAction(e,t){const i=[],n=[];for(let r=0,a=e.length;r<a;r++)i.push({range:e[r],options:{description:"auto-closed-character",inlineClassName:"auto-closed-character",stickiness:1}}),n.push({range:t[r],options:{description:"auto-closed-enclosing",stickiness:1}});const o=this._model.deltaDecorations([],i),s=this._model.deltaDecorations([],n);this._autoClosedActions.push(new fn(this._model,o,s))}_executeEditOperation(e){if(!e)return;e.shouldPushStackElementBefore&&this._model.pushStackElement();const t=class{static executeCommands(e,t,i){const n={model:e,selectionsBefore:t,trackedRanges:[],trackedRangesDirection:[]},o=this._innerExecuteCommands(n,i);for(let s=0,r=n.trackedRanges.length;s<r;s++)n.model._setTrackedRange(n.trackedRanges[s],null,0);return o}static _innerExecuteCommands(e,t){if(this._arrayIsEmpty(t))return null;const i=this._getEditOperations(e,t);if(0===i.operations.length)return null;const n=i.operations,o=this._getLoserCursorMap(n);if(o.hasOwnProperty("0"))return console.warn("Ignoring commands"),null;const s=[];for(let l=0,c=n.length;l<c;l++)o.hasOwnProperty(n[l].identifier.major.toString())||s.push(n[l]);i.hadTrackedEditOperation&&s.length>0&&(s[0]._isTracked=!0);let r=e.model.pushEditOperations(e.selectionsBefore,s,(i=>{const n=[];for(let t=0;t<e.selectionsBefore.length;t++)n[t]=[];for(const e of i)e.identifier&&n[e.identifier.major].push(e);const o=(e,t)=>e.identifier.minor-t.identifier.minor,s=[];for(let r=0;r<e.selectionsBefore.length;r++)n[r].length>0?(n[r].sort(o),s[r]=t[r].computeCursorState(e.model,{getInverseEditOperations:()=>n[r],getTrackedSelection:t=>{const i=parseInt(t,10),n=e.model._getTrackedRange(e.trackedRanges[i]);return 0===e.trackedRangesDirection[i]?new B.Y(n.startLineNumber,n.startColumn,n.endLineNumber,n.endColumn):new B.Y(n.endLineNumber,n.endColumn,n.startLineNumber,n.startColumn)}})):s[r]=e.selectionsBefore[r];return s}));r||(r=e.selectionsBefore);const a=[];for(const l in o)o.hasOwnProperty(l)&&a.push(parseInt(l,10));a.sort(((e,t)=>t-e));for(const l of a)r.splice(l,1);return r}static _arrayIsEmpty(e){for(let t=0,i=e.length;t<i;t++)if(e[t])return!1;return!0}static _getEditOperations(e,t){let i=[],n=!1;for(let o=0,s=t.length;o<s;o++){const s=t[o];if(s){const t=this._getEditOperationsFromCommand(e,o,s);i=i.concat(t.operations),n=n||t.hadTrackedEditOperation}}return{operations:i,hadTrackedEditOperation:n}}static _getEditOperationsFromCommand(e,t,i){const n=[];let o=0;const s=(e,s,r=!1)=>{fe.e.isEmpty(e)&&""===s||n.push({identifier:{major:t,minor:o++},range:e,text:s,forceMoveMarkers:r,isAutoWhitespaceEdit:i.insertsAutoWhitespace})};let r=!1;const a=(e,t,i)=>{r=!0,s(e,t,i)},l={addEditOperation:s,addTrackedEditOperation:a,trackSelection:(t,i)=>{const n=B.Y.liftSelection(t);let o;if(n.isEmpty())if("boolean"==typeof i)o=i?2:3;else{const t=e.model.getLineMaxColumn(n.startLineNumber);o=n.startColumn===t?2:3}else o=1;const s=e.trackedRanges.length,r=e.model._setTrackedRange(null,n,o);return e.trackedRanges[s]=r,e.trackedRangesDirection[s]=n.getDirection(),s.toString()}};try{i.getEditOperations(e.model,l)}catch(c){return(0,d.dL)(c),{operations:[],hadTrackedEditOperation:!1}}return{operations:n,hadTrackedEditOperation:r}}static _getLoserCursorMap(e){(e=e.slice(0)).sort(((e,t)=>-fe.e.compareRangesUsingEnds(e.range,t.range)));const t={};for(let i=1;i<e.length;i++){const n=e[i-1],o=e[i];if(fe.e.getStartPosition(n.range).isBefore(fe.e.getEndPosition(o.range))){let s;s=n.identifier.major>o.identifier.major?n.identifier.major:o.identifier.major,t[s.toString()]=!0;for(let t=0;t<e.length;t++)e[t].identifier.major===s&&(e.splice(t,1),t<i&&i--,t--);i>0&&i--}}return t}}.executeCommands(this._model,this._cursors.getSelections(),e.commands);if(t){this._interpretCommandResult(t);const i=[],n=[];for(let t=0;t<e.commands.length;t++){const o=e.commands[t];o instanceof Mi.g_&&o.enclosingRange&&o.closeCharacterRange&&(i.push(o.closeCharacterRange),n.push(o.enclosingRange))}i.length>0&&this._pushAutoClosedAction(i,n),this._prevEditOperationType=e.type}e.shouldPushStackElementAfter&&this._model.pushStackElement()}_interpretCommandResult(e){e&&0!==e.length||(e=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(e),this._cursors.normalize()}_emitStateChangedIfNecessary(e,t,i,n,o){const s=mn.from(this._model,this);if(s.equals(n))return!1;const r=this._cursors.getSelections(),a=this._cursors.getViewSelections();if(e.emitViewEvent(new Fi(a,r)),!n||n.cursorState.length!==s.cursorState.length||s.cursorState.some(((e,t)=>!e.modelState.equals(n.cursorState[t].modelState)))){const a=n?n.cursorState.map((e=>e.modelState.selection)):null,l=n?n.modelVersionId:0;e.emitOutgoingEvent(new rn(a,r,l,s.modelVersionId,t||"keyboard",i,o))}return!0}_findAutoClosingPairs(e){if(!e.length)return null;const t=[];for(let i=0,n=e.length;i<n;i++){const n=e[i];if(!n.text||n.text.indexOf("\n")>=0)return null;const o=n.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!o)return null;const s=o[1],r=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(s);if(!r||1!==r.length)return null;const a=r[0].open,l=n.text.length-o[2].length-1,c=n.text.lastIndexOf(a,l-1);if(-1===c)return null;t.push([c,l])}return t}executeEdits(e,t,i,n){let o=null;"snippet"===t&&(o=this._findAutoClosingPairs(i)),o&&(i[0]._isTracked=!0);const s=[],r=[],a=this._model.pushEditOperations(this.getSelections(),i,(e=>{if(o)for(let i=0,n=o.length;i<n;i++){const[t,n]=o[i],a=e[i],l=a.range.startLineNumber,c=a.range.startColumn-1+t,d=a.range.startColumn-1+n;s.push(new fe.e(l,d+1,l,d+2)),r.push(new fe.e(l,c+1,l,d+2))}const t=n(e);return t&&(this._isHandling=!0),t}));a&&(this._isHandling=!1,this.setSelections(e,t,a,0)),s.length>0&&this._pushAutoClosedAction(s,r)}_executeEdit(e,t,i,n=0){if(this.context.cursorConfig.readOnly)return;const o=mn.from(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),e()}catch(s){(0,d.dL)(s)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(t,i,n,o,!1)&&this.revealPrimary(t,i,!1,0,!0,0)}getAutoClosedCharacters(){return fn.getAllAutoClosedCharacters(this._autoClosedActions)}startComposition(e){this._compositionState=new vn(this._model,this.getSelections())}endComposition(e,t){const i=this._compositionState?this._compositionState.deduceOutcome(this._model,this.getSelections()):null;this._compositionState=null,this._executeEdit((()=>{"keyboard"===t&&this._executeEditOperation(Mi.u6.compositionEndWithInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,i,this.getSelections(),this.getAutoClosedCharacters()))}),e,t)}type(e,t,i){this._executeEdit((()=>{if("keyboard"===i){const e=t.length;let i=0;for(;i<e;){const e=Be.vH(t,i),n=t.substr(i,e);this._executeEditOperation(Mi.u6.typeWithInterceptors(!!this._compositionState,this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),this.getAutoClosedCharacters(),n)),i+=e}}else this._executeEditOperation(Mi.u6.typeWithoutInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t))}),e,i)}compositionType(e,t,i,n,o,s){if(0!==t.length||0!==i||0!==n)this._executeEdit((()=>{this._executeEditOperation(Mi.u6.compositionType(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t,i,n,o))}),e,s);else if(0!==o){const t=this.getSelections().map((e=>{const t=e.getPosition();return new B.Y(t.lineNumber,t.column+o,t.lineNumber,t.column+o)}));this.setSelections(e,s,t,0)}}paste(e,t,i,n,o){this._executeEdit((()=>{this._executeEditOperation(Mi.u6.paste(this.context.cursorConfig,this._model,this.getSelections(),t,i,n||[]))}),e,o,4)}cut(e,t){this._executeEdit((()=>{this._executeEditOperation(Ti.A.cut(this.context.cursorConfig,this._model,this.getSelections()))}),e,t)}executeCommand(e,t,i){this._executeEdit((()=>{this._cursors.killSecondaryCursors(),this._executeEditOperation(new Di.Tp(0,[t],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))}),e,i)}executeCommands(e,t,i){this._executeEdit((()=>{this._executeEditOperation(new Di.Tp(0,t,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))}),e,i)}}pn.MAX_CURSOR_COUNT=1e4;class mn{constructor(e,t){this.modelVersionId=e,this.cursorState=t}static from(e,t){return new mn(e.getVersionId(),t.getCursorStates())}equals(e){if(!e)return!1;if(this.modelVersionId!==e.modelVersionId)return!1;if(this.cursorState.length!==e.cursorState.length)return!1;for(let t=0,i=this.cursorState.length;t<i;t++)if(!this.cursorState[t].equals(e.cursorState[t]))return!1;return!0}}class fn{constructor(e,t,i){this._model=e,this._autoClosedCharactersDecorations=t,this._autoClosedEnclosingDecorations=i}static getAllAutoClosedCharacters(e){let t=[];for(const i of e)t=t.concat(i.getAutoClosedCharactersRanges());return t}dispose(){this._autoClosedCharactersDecorations=this._model.deltaDecorations(this._autoClosedCharactersDecorations,[]),this._autoClosedEnclosingDecorations=this._model.deltaDecorations(this._autoClosedEnclosingDecorations,[])}getAutoClosedCharactersRanges(){const e=[];for(let t=0;t<this._autoClosedCharactersDecorations.length;t++){const i=this._model.getDecorationRange(this._autoClosedCharactersDecorations[t]);i&&e.push(i)}return e}isValid(e){const t=[];for(let i=0;i<this._autoClosedEnclosingDecorations.length;i++){const e=this._model.getDecorationRange(this._autoClosedEnclosingDecorations[i]);if(e&&(t.push(e),e.startLineNumber!==e.endLineNumber))return!1}t.sort(fe.e.compareRangesUsingStarts),e.sort(fe.e.compareRangesUsingStarts);for(let i=0;i<e.length;i++){if(i>=t.length)return!1;if(!t[i].strictContainsRange(e[i]))return!1}return!0}}class _n{constructor(e,t,i){this.text=e,this.startSelection=t,this.endSelection=i}}class vn{constructor(e,t){this._original=vn._capture(e,t)}static _capture(e,t){const i=[];for(const n of t){if(n.startLineNumber!==n.endLineNumber)return null;i.push(new _n(e.getLineContent(n.startLineNumber),n.startColumn-1,n.endColumn-1))}return i}deduceOutcome(e,t){if(!this._original)return null;const i=vn._capture(e,t);if(!i)return null;if(this._original.length!==i.length)return null;const n=[];for(let o=0,s=this._original.length;o<s;o++)n.push(vn._deduceOutcome(this._original[o],i[o]));return n}static _deduceOutcome(e,t){const i=Math.min(e.startSelection,t.startSelection,Be.Mh(e.text,t.text)),n=Math.min(e.text.length-e.endSelection,t.text.length-t.endSelection,Be.P1(e.text,t.text)),o=e.text.substring(i,e.text.length-n),s=t.text.substring(i,t.text.length-n);return new Mi.Nu(o,e.startSelection-i,e.endSelection-i,s,t.startSelection-i,t.endSelection-i)}}var bn=i(30653),Cn=i(96518),wn=i(29102),yn=i(22529),Sn=i(68801),Ln=i(82963),kn=i(76633);class xn{constructor(){this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}insert(e){this._hasPending=!0,this._inserts.push(e)}change(e){this._hasPending=!0,this._changes.push(e)}remove(e){this._hasPending=!0,this._removes.push(e)}mustCommit(){return this._hasPending}commit(e){if(!this._hasPending)return;const t=this._inserts,i=this._changes,n=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],e._commitPendingChanges(t,i,n)}}class Dn{constructor(e,t,i,n,o){this.id=e,this.afterLineNumber=t,this.ordinal=i,this.height=n,this.minWidth=o,this.prefixSum=0}}class Nn{constructor(e,t,i,n){this._instanceId=Be.PJ(++Nn.INSTANCE_COUNT),this._pendingChanges=new xn,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=e,this._lineHeight=t,this._paddingTop=i,this._paddingBottom=n}static findInsertionIndex(e,t,i){let n=0,o=e.length;for(;n<o;){const s=n+o>>>1;t===e[s].afterLineNumber?i<e[s].ordinal?o=s:n=s+1:t<e[s].afterLineNumber?o=s:n=s+1}return n}setLineHeight(e){this._checkPendingChanges(),this._lineHeight=e}setPadding(e,t){this._paddingTop=e,this._paddingBottom=t}onFlushed(e){this._checkPendingChanges(),this._lineCount=e}changeWhitespace(e){let t=!1;try{e({insertWhitespace:(e,i,n,o)=>{t=!0,e|=0,i|=0,n|=0,o|=0;const s=this._instanceId+ ++this._lastWhitespaceId;return this._pendingChanges.insert(new Dn(s,e,i,n,o)),s},changeOneWhitespace:(e,i,n)=>{t=!0,i|=0,n|=0,this._pendingChanges.change({id:e,newAfterLineNumber:i,newHeight:n})},removeWhitespace:e=>{t=!0,this._pendingChanges.remove({id:e})}})}finally{this._pendingChanges.commit(this)}return t}_commitPendingChanges(e,t,i){if((e.length>0||i.length>0)&&(this._minWidth=-1),e.length+t.length+i.length<=1){for(const t of e)this._insertWhitespace(t);for(const e of t)this._changeOneWhitespace(e.id,e.newAfterLineNumber,e.newHeight);for(const e of i){const t=this._findWhitespaceIndex(e.id);-1!==t&&this._removeWhitespace(t)}return}const n=new Set;for(const a of i)n.add(a.id);const o=new Map;for(const a of t)o.set(a.id,a);const s=e=>{const t=[];for(const i of e)if(!n.has(i.id)){if(o.has(i.id)){const e=o.get(i.id);i.afterLineNumber=e.newAfterLineNumber,i.height=e.newHeight}t.push(i)}return t},r=s(this._arr).concat(s(e));r.sort(((e,t)=>e.afterLineNumber===t.afterLineNumber?e.ordinal-t.ordinal:e.afterLineNumber-t.afterLineNumber)),this._arr=r,this._prefixSumValidIndex=-1}_checkPendingChanges(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)}_insertWhitespace(e){const t=Nn.findInsertionIndex(this._arr,e.afterLineNumber,e.ordinal);this._arr.splice(t,0,e),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,t-1)}_findWhitespaceIndex(e){const t=this._arr;for(let i=0,n=t.length;i<n;i++)if(t[i].id===e)return i;return-1}_changeOneWhitespace(e,t,i){const n=this._findWhitespaceIndex(e);if(-1!==n&&(this._arr[n].height!==i&&(this._arr[n].height=i,this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,n-1)),this._arr[n].afterLineNumber!==t)){const e=this._arr[n];this._removeWhitespace(n),e.afterLineNumber=t,this._insertWhitespace(e)}}_removeWhitespace(e){this._arr.splice(e,1),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,e-1)}onLinesDeleted(e,t){this._checkPendingChanges(),e|=0,t|=0,this._lineCount-=t-e+1;for(let i=0,n=this._arr.length;i<n;i++){const n=this._arr[i].afterLineNumber;e<=n&&n<=t?this._arr[i].afterLineNumber=e-1:n>t&&(this._arr[i].afterLineNumber-=t-e+1)}}onLinesInserted(e,t){this._checkPendingChanges(),e|=0,t|=0,this._lineCount+=t-e+1;for(let i=0,n=this._arr.length;i<n;i++){e<=this._arr[i].afterLineNumber&&(this._arr[i].afterLineNumber+=t-e+1)}}getWhitespacesTotalHeight(){return this._checkPendingChanges(),0===this._arr.length?0:this.getWhitespacesAccumulatedHeight(this._arr.length-1)}getWhitespacesAccumulatedHeight(e){this._checkPendingChanges(),e|=0;let t=Math.max(0,this._prefixSumValidIndex+1);0===t&&(this._arr[0].prefixSum=this._arr[0].height,t++);for(let i=t;i<=e;i++)this._arr[i].prefixSum=this._arr[i-1].prefixSum+this._arr[i].height;return this._prefixSumValidIndex=Math.max(this._prefixSumValidIndex,e),this._arr[e].prefixSum}getLinesTotalHeight(){this._checkPendingChanges();return this._lineHeight*this._lineCount+this.getWhitespacesTotalHeight()+this._paddingTop+this._paddingBottom}getWhitespaceAccumulatedHeightBeforeLineNumber(e){this._checkPendingChanges(),e|=0;const t=this._findLastWhitespaceBeforeLineNumber(e);return-1===t?0:this.getWhitespacesAccumulatedHeight(t)}_findLastWhitespaceBeforeLineNumber(e){e|=0;const t=this._arr;let i=0,n=t.length-1;for(;i<=n;){const o=i+((n-i|0)/2|0)|0;if(t[o].afterLineNumber<e){if(o+1>=t.length||t[o+1].afterLineNumber>=e)return o;i=o+1|0}else n=o-1|0}return-1}_findFirstWhitespaceAfterLineNumber(e){e|=0;const t=this._findLastWhitespaceBeforeLineNumber(e)+1;return t<this._arr.length?t:-1}getFirstWhitespaceIndexAfterLineNumber(e){return this._checkPendingChanges(),e|=0,this._findFirstWhitespaceAfterLineNumber(e)}getVerticalOffsetForLineNumber(e,t=!1){let i;this._checkPendingChanges(),i=(e|=0)>1?this._lineHeight*(e-1):0;return i+this.getWhitespaceAccumulatedHeightBeforeLineNumber(e-(t?1:0))+this._paddingTop}getVerticalOffsetAfterLineNumber(e,t=!1){this._checkPendingChanges(),e|=0;return this._lineHeight*e+this.getWhitespaceAccumulatedHeightBeforeLineNumber(e+(t?1:0))+this._paddingTop}getWhitespaceMinWidth(){if(this._checkPendingChanges(),-1===this._minWidth){let e=0;for(let t=0,i=this._arr.length;t<i;t++)e=Math.max(e,this._arr[t].minWidth);this._minWidth=e}return this._minWidth}isAfterLines(e){this._checkPendingChanges();return e>this.getLinesTotalHeight()}isInTopPadding(e){return 0!==this._paddingTop&&(this._checkPendingChanges(),e<this._paddingTop)}isInBottomPadding(e){if(0===this._paddingBottom)return!1;this._checkPendingChanges();return e>=this.getLinesTotalHeight()-this._paddingBottom}getLineNumberAtOrAfterVerticalOffset(e){if(this._checkPendingChanges(),(e|=0)<0)return 1;const t=0|this._lineCount,i=this._lineHeight;let n=1,o=t;for(;n<o;){const t=(n+o)/2|0,s=0|this.getVerticalOffsetForLineNumber(t);if(e>=s+i)n=t+1;else{if(e>=s)return t;o=t}}return n>t?t:n}getLinesViewportData(e,t){this._checkPendingChanges(),e|=0,t|=0;const i=this._lineHeight,n=0|this.getLineNumberAtOrAfterVerticalOffset(e),o=0|this.getVerticalOffsetForLineNumber(n);let s=0|this._lineCount,r=0|this.getFirstWhitespaceIndexAfterLineNumber(n);const a=0|this.getWhitespacesCount();let l,c;-1===r?(r=a,c=s+1,l=0):(c=0|this.getAfterLineNumberForWhitespaceIndex(r),l=0|this.getHeightForWhitespaceIndex(r));let d=o,h=d;const u=5e5;let g=0;o>=u&&(g=Math.floor(o/u)*u,g=Math.floor(g/i)*i,h-=g);const p=[],m=e+(t-e)/2;let f=-1;for(let C=n;C<=s;C++){if(-1===f){const e=d,t=d+i;(e<=m&&m<t||e>m)&&(f=C)}for(d+=i,p[C-n]=h,h+=i;c===C;)h+=l,d+=l,r++,r>=a?c=s+1:(c=0|this.getAfterLineNumberForWhitespaceIndex(r),l=0|this.getHeightForWhitespaceIndex(r));if(d>=t){s=C;break}}-1===f&&(f=s);const _=0|this.getVerticalOffsetForLineNumber(s);let v=n,b=s;return v<b&&o<e&&v++,v<b&&_+i>t&&b--,{bigNumbersDelta:g,startLineNumber:n,endLineNumber:s,relativeVerticalOffset:p,centeredLineNumber:f,completelyVisibleStartLineNumber:v,completelyVisibleEndLineNumber:b}}getVerticalOffsetForWhitespaceIndex(e){this._checkPendingChanges(),e|=0;const t=this.getAfterLineNumberForWhitespaceIndex(e);let i,n;return i=t>=1?this._lineHeight*t:0,n=e>0?this.getWhitespacesAccumulatedHeight(e-1):0,i+n+this._paddingTop}getWhitespaceIndexAtOrAfterVerticallOffset(e){this._checkPendingChanges(),e|=0;let t=0,i=this.getWhitespacesCount()-1;if(i<0)return-1;if(e>=this.getVerticalOffsetForWhitespaceIndex(i)+this.getHeightForWhitespaceIndex(i))return-1;for(;t<i;){const n=Math.floor((t+i)/2),o=this.getVerticalOffsetForWhitespaceIndex(n);if(e>=o+this.getHeightForWhitespaceIndex(n))t=n+1;else{if(e>=o)return n;i=n}}return t}getWhitespaceAtVerticalOffset(e){this._checkPendingChanges(),e|=0;const t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0)return null;if(t>=this.getWhitespacesCount())return null;const i=this.getVerticalOffsetForWhitespaceIndex(t);if(i>e)return null;const n=this.getHeightForWhitespaceIndex(t);return{id:this.getIdForWhitespaceIndex(t),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(t),verticalOffset:i,height:n}}getWhitespaceViewportData(e,t){this._checkPendingChanges(),e|=0,t|=0;const i=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),n=this.getWhitespacesCount()-1;if(i<0)return[];const o=[];for(let s=i;s<=n;s++){const e=this.getVerticalOffsetForWhitespaceIndex(s),i=this.getHeightForWhitespaceIndex(s);if(e>=t)break;o.push({id:this.getIdForWhitespaceIndex(s),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(s),verticalOffset:e,height:i})}return o}getWhitespaces(){return this._checkPendingChanges(),this._arr.slice(0)}getWhitespacesCount(){return this._checkPendingChanges(),this._arr.length}getIdForWhitespaceIndex(e){return this._checkPendingChanges(),e|=0,this._arr[e].id}getAfterLineNumberForWhitespaceIndex(e){return this._checkPendingChanges(),e|=0,this._arr[e].afterLineNumber}getHeightForWhitespaceIndex(e){return this._checkPendingChanges(),e|=0,this._arr[e].height}}Nn.INSTANCE_COUNT=0;class En{constructor(e,t,i,n){(e|=0)<0&&(e=0),(t|=0)<0&&(t=0),(i|=0)<0&&(i=0),(n|=0)<0&&(n=0),this.width=e,this.contentWidth=t,this.scrollWidth=Math.max(e,t),this.height=i,this.contentHeight=n,this.scrollHeight=Math.max(i,n)}equals(e){return this.width===e.width&&this.contentWidth===e.contentWidth&&this.height===e.height&&this.contentHeight===e.contentHeight}}class In extends u.JT{constructor(e,t){super(),this._onDidContentSizeChange=this._register(new h.Q5),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._dimensions=new En(0,0,0,0),this._scrollable=this._register(new kn.Rm({forceIntegerValues:!0,smoothScrollDuration:e,scheduleAtNextAnimationFrame:t})),this.onDidScroll=this._scrollable.onScroll}getScrollable(){return this._scrollable}setSmoothScrollDuration(e){this._scrollable.setSmoothScrollDuration(e)}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}getScrollDimensions(){return this._dimensions}setScrollDimensions(e){if(this._dimensions.equals(e))return;const t=this._dimensions;this._dimensions=e,this._scrollable.setScrollDimensions({width:e.width,scrollWidth:e.scrollWidth,height:e.height,scrollHeight:e.scrollHeight},!0);const i=t.contentWidth!==e.contentWidth,n=t.contentHeight!==e.contentHeight;(i||n)&&this._onDidContentSizeChange.fire(new en(t.contentWidth,t.contentHeight,e.contentWidth,e.contentHeight))}getFutureScrollPosition(){return this._scrollable.getFutureScrollPosition()}getCurrentScrollPosition(){return this._scrollable.getCurrentScrollPosition()}setScrollPositionNow(e){this._scrollable.setScrollPositionNow(e)}setScrollPositionSmooth(e){this._scrollable.setScrollPositionSmooth(e)}}class Tn extends u.JT{constructor(e,t,i){super(),this._configuration=e;const n=this._configuration.options,o=n.get(133),s=n.get(77);this._linesLayout=new Nn(t,n.get(61),s.top,s.bottom),this._scrollable=this._register(new In(0,i)),this._configureSmoothScrollDuration(),this._scrollable.setScrollDimensions(new En(o.contentWidth,0,o.height,0)),this.onDidScroll=this._scrollable.onDidScroll,this.onDidContentSizeChange=this._scrollable.onDidContentSizeChange,this._updateHeight()}dispose(){super.dispose()}getScrollable(){return this._scrollable.getScrollable()}onHeightMaybeChanged(){this._updateHeight()}_configureSmoothScrollDuration(){this._scrollable.setSmoothScrollDuration(this._configuration.options.get(105)?125:0)}onConfigurationChanged(e){const t=this._configuration.options;if(e.hasChanged(61)&&this._linesLayout.setLineHeight(t.get(61)),e.hasChanged(77)){const e=t.get(77);this._linesLayout.setPadding(e.top,e.bottom)}if(e.hasChanged(133)){const e=t.get(133),i=e.contentWidth,n=e.height,o=this._scrollable.getScrollDimensions(),s=o.contentWidth;this._scrollable.setScrollDimensions(new En(i,o.contentWidth,n,this._getContentHeight(i,n,s)))}else this._updateHeight();e.hasChanged(105)&&this._configureSmoothScrollDuration()}onFlushed(e){this._linesLayout.onFlushed(e)}onLinesDeleted(e,t){this._linesLayout.onLinesDeleted(e,t)}onLinesInserted(e,t){this._linesLayout.onLinesInserted(e,t)}_getHorizontalScrollbarHeight(e,t){const i=this._configuration.options.get(94);return 2===i.horizontal||e>=t?0:i.horizontalScrollbarSize}_getContentHeight(e,t,i){const n=this._configuration.options;let o=this._linesLayout.getLinesTotalHeight();return n.get(96)?o+=Math.max(0,t-n.get(61)-n.get(77).bottom):o+=this._getHorizontalScrollbarHeight(e,i),o}_updateHeight(){const e=this._scrollable.getScrollDimensions(),t=e.width,i=e.height,n=e.contentWidth;this._scrollable.setScrollDimensions(new En(t,e.contentWidth,i,this._getContentHeight(t,i,n)))}getCurrentViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getCurrentScrollPosition();return new Vt.l_(t.scrollTop,t.scrollLeft,e.width,e.height)}getFutureViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getFutureScrollPosition();return new Vt.l_(t.scrollTop,t.scrollLeft,e.width,e.height)}_computeContentWidth(e){const t=this._configuration.options,i=t.get(134),n=t.get(46),o=t.get(133);if(i.isViewportWrapping){const i=t.get(67);return e>o.contentWidth+n.typicalHalfwidthCharacterWidth&&i.enabled&&"right"===i.side?e+o.verticalScrollbarWidth:e}{const i=t.get(95)*n.typicalHalfwidthCharacterWidth,s=this._linesLayout.getWhitespaceMinWidth();return Math.max(e+i+o.verticalScrollbarWidth,s)}}setMaxLineWidth(e){const t=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new En(t.width,this._computeContentWidth(e),t.height,t.contentHeight)),this._updateHeight()}saveState(){const e=this._scrollable.getFutureScrollPosition(),t=e.scrollTop,i=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t);return{scrollTop:t,scrollTopWithoutViewZones:t-this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(i),scrollLeft:e.scrollLeft}}changeWhitespace(e){const t=this._linesLayout.changeWhitespace(e);return t&&this.onHeightMaybeChanged(),t}getVerticalOffsetForLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetForLineNumber(e,t)}getVerticalOffsetAfterLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetAfterLineNumber(e,t)}isAfterLines(e){return this._linesLayout.isAfterLines(e)}isInTopPadding(e){return this._linesLayout.isInTopPadding(e)}isInBottomPadding(e){return this._linesLayout.isInBottomPadding(e)}getLineNumberAtVerticalOffset(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)}getWhitespaceAtVerticalOffset(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)}getLinesViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)}getLinesViewportDataAtScrollTop(e){const t=this._scrollable.getScrollDimensions();return e+t.height>t.scrollHeight&&(e=t.scrollHeight-t.height),e<0&&(e=0),this._linesLayout.getLinesViewportData(e,e+t.height)}getWhitespaceViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)}getWhitespaces(){return this._linesLayout.getWhitespaces()}getContentWidth(){return this._scrollable.getScrollDimensions().contentWidth}getScrollWidth(){return this._scrollable.getScrollDimensions().scrollWidth}getContentHeight(){return this._scrollable.getScrollDimensions().contentHeight}getScrollHeight(){return this._scrollable.getScrollDimensions().scrollHeight}getCurrentScrollLeft(){return this._scrollable.getCurrentScrollPosition().scrollLeft}getCurrentScrollTop(){return this._scrollable.getCurrentScrollPosition().scrollTop}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}setScrollPosition(e,t){1===t?this._scrollable.setScrollPositionNow(e):this._scrollable.setScrollPositionSmooth(e)}deltaScrollNow(e,t){const i=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:i.scrollLeft+e,scrollTop:i.scrollTop+t})}}var Mn=i(30168),An=i(77378);function Rn(e,t){return null===e?t?Pn.INSTANCE:Fn.INSTANCE:new On(e,t)}class On{constructor(e,t){this._projectionData=e,this._isVisible=t}isVisible(){return this._isVisible}setVisible(e){return this._isVisible=e,this}getProjectionData(){return this._projectionData}getViewLineCount(){return this._isVisible?this._projectionData.getOutputLineCount():0}getViewLineContent(e,t,i){this._assertVisible();const n=i>0?this._projectionData.breakOffsets[i-1]:0,o=this._projectionData.breakOffsets[i];let s;if(null!==this._projectionData.injectionOffsets){const i=this._projectionData.injectionOffsets.map(((e,t)=>new Ai.gk(0,0,e+1,this._projectionData.injectionOptions[t],0)));s=Ai.gk.applyInjectedText(e.getLineContent(t),i).substring(n,o)}else s=e.getValueInRange({startLineNumber:t,startColumn:n+1,endLineNumber:t,endColumn:o+1});return i>0&&(s=Vn(this._projectionData.wrappedTextIndentLength)+s),s}getViewLineLength(e,t,i){return this._assertVisible(),this._projectionData.getLineLength(i)}getViewLineMinColumn(e,t,i){return this._assertVisible(),this._projectionData.getMinOutputOffset(i)+1}getViewLineMaxColumn(e,t,i){return this._assertVisible(),this._projectionData.getMaxOutputOffset(i)+1}getViewLineData(e,t,i){const n=new Array;return this.getViewLinesData(e,t,i,1,0,[!0],n),n[0]}getViewLinesData(e,t,i,n,o,s,r){this._assertVisible();const a=this._projectionData,l=a.injectionOffsets,c=a.injectionOptions;let d,h=null;if(l){h=[];let e=0,t=0;for(let i=0;i<a.getOutputLineCount();i++){const n=new Array;h[i]=n;const o=i>0?a.breakOffsets[i-1]:0,s=a.breakOffsets[i];for(;t<l.length;){const r=c[t].content.length,d=l[t]+e,h=d+r;if(d>s)break;if(o<h){const e=c[t];if(e.inlineClassName){const t=i>0?a.wrappedTextIndentLength:0,r=t+Math.max(d-o,0),l=t+Math.min(h-o,s);r!==l&&n.push(new Vt.Wx(r,l,e.inlineClassName,e.inlineClassNameAffectsLetterSpacing))}}if(!(h<=s))break;e+=r,t++}}}d=l?e.tokenization.getLineTokens(t).withInserted(l.map(((e,t)=>({offset:e,text:c[t].content,tokenMetadata:An.A.defaultTokenMetadata})))):e.tokenization.getLineTokens(t);for(let u=i;u<i+n;u++){const e=o+u-i;s[e]?r[e]=this._getViewLineData(d,h?h[u]:null,u):r[e]=null}}_getViewLineData(e,t,i){this._assertVisible();const n=this._projectionData,o=i>0?n.wrappedTextIndentLength:0,s=i>0?n.breakOffsets[i-1]:0,r=n.breakOffsets[i],a=e.sliceAndInflate(s,r,o);let l=a.getLineContent();i>0&&(l=Vn(n.wrappedTextIndentLength)+l);const c=this._projectionData.getMinOutputOffset(i)+1,d=l.length+1,h=i+1<this.getViewLineCount(),u=0===i?0:n.breakOffsetsVisibleColumn[i-1];return new Vt.IP(l,h,c,d,u,a,t)}getModelColumnOfViewPosition(e,t){return this._assertVisible(),this._projectionData.translateToInputOffset(e,t-1)+1}getViewPositionOfModelPosition(e,t,i=2){this._assertVisible();return this._projectionData.translateToOutputPosition(t-1,i).toPosition(e)}getViewLineNumberOfModelPosition(e,t){this._assertVisible();return e+this._projectionData.translateToOutputPosition(t-1).outputLineIndex}normalizePosition(e,t,i){const n=t.lineNumber-e;return this._projectionData.normalizeOutputPosition(e,t.column-1,i).toPosition(n)}getInjectedTextAt(e,t){return this._projectionData.getInjectedText(e,t-1)}_assertVisible(){if(!this._isVisible)throw new Error("Not supported")}}class Pn{constructor(){}isVisible(){return!0}setVisible(e){return e?this:Fn.INSTANCE}getProjectionData(){return null}getViewLineCount(){return 1}getViewLineContent(e,t,i){return e.getLineContent(t)}getViewLineLength(e,t,i){return e.getLineLength(t)}getViewLineMinColumn(e,t,i){return e.getLineMinColumn(t)}getViewLineMaxColumn(e,t,i){return e.getLineMaxColumn(t)}getViewLineData(e,t,i){const n=e.tokenization.getLineTokens(t),o=n.getLineContent();return new Vt.IP(o,!1,1,o.length+1,0,n.inflate(),null)}getViewLinesData(e,t,i,n,o,s,r){s[o]?r[o]=this.getViewLineData(e,t,0):r[o]=null}getModelColumnOfViewPosition(e,t){return t}getViewPositionOfModelPosition(e,t){return new me.L(e,t)}getViewLineNumberOfModelPosition(e,t){return e}normalizePosition(e,t,i){return t}getInjectedTextAt(e,t){return null}}Pn.INSTANCE=new Pn;class Fn{constructor(){}isVisible(){return!1}setVisible(e){return e?Pn.INSTANCE:this}getProjectionData(){return null}getViewLineCount(){return 0}getViewLineContent(e,t,i){throw new Error("Not supported")}getViewLineLength(e,t,i){throw new Error("Not supported")}getViewLineMinColumn(e,t,i){throw new Error("Not supported")}getViewLineMaxColumn(e,t,i){throw new Error("Not supported")}getViewLineData(e,t,i){throw new Error("Not supported")}getViewLinesData(e,t,i,n,o,s,r){throw new Error("Not supported")}getModelColumnOfViewPosition(e,t){throw new Error("Not supported")}getViewPositionOfModelPosition(e,t){throw new Error("Not supported")}getViewLineNumberOfModelPosition(e,t){throw new Error("Not supported")}normalizePosition(e,t,i){throw new Error("Not supported")}getInjectedTextAt(e,t){throw new Error("Not supported")}}Fn.INSTANCE=new Fn;const Bn=[""];function Vn(e){if(e>=Bn.length)for(let t=1;t<=e;t++)Bn[t]=Wn(t);return Bn[e]}function Wn(e){return new Array(e+1).join(" ")}var Hn=i(90310);class zn{constructor(e,t,i,n,o,s,r,a,l){this._editorId=e,this.model=t,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=i,this._monospaceLineBreaksComputerFactory=n,this.fontInfo=o,this.tabSize=s,this.wrappingStrategy=r,this.wrappingColumn=a,this.wrappingIndent=l,this._constructLines(!0,null)}dispose(){this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[])}createCoordinatesConverter(){return new Kn(this)}_constructLines(e,t){this.modelLineProjections=[],e&&(this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[]));const i=this.model.getLinesContent(),n=this.model.getInjectedTextDecorations(this._editorId),o=i.length,s=this.createLineBreaksComputer(),r=new m.H9(Ai.gk.fromDecorations(n));for(let p=0;p<o;p++){const e=r.takeWhile((e=>e.lineNumber===p+1));s.addRequest(i[p],e,t?t[p]:null)}const a=s.finalize(),l=[],c=this.hiddenAreasDecorationIds.map((e=>this.model.getDecorationRange(e))).sort(fe.e.compareRangesUsingStarts);let d=1,h=0,u=-1,g=u+1<c.length?h+1:o+2;for(let p=0;p<o;p++){const e=p+1;e===g&&(u++,d=c[u].startLineNumber,h=c[u].endLineNumber,g=u+1<c.length?h+1:o+2);const t=e>=d&&e<=h,i=Rn(a[p],!t);l[p]=i.getViewLineCount(),this.modelLineProjections[p]=i}this._validModelVersionId=this.model.getVersionId(),this.projectedModelLineLineCounts=new Hn.Ck(l)}getHiddenAreas(){return this.hiddenAreasDecorationIds.map((e=>this.model.getDecorationRange(e)))}setHiddenAreas(e){const t=function(e){if(0===e.length)return[];const t=e.slice();t.sort(fe.e.compareRangesUsingStarts);const i=[];let n=t[0].startLineNumber,o=t[0].endLineNumber;for(let s=1,r=t.length;s<r;s++){const e=t[s];e.startLineNumber>o+1?(i.push(new fe.e(n,1,o,1)),n=e.startLineNumber,o=e.endLineNumber):e.endLineNumber>o&&(o=e.endLineNumber)}return i.push(new fe.e(n,1,o,1)),i}(e.map((e=>this.model.validateRange(e)))),i=this.hiddenAreasDecorationIds.map((e=>this.model.getDecorationRange(e))).sort(fe.e.compareRangesUsingStarts);if(t.length===i.length){let e=!1;for(let n=0;n<t.length;n++)if(!t[n].equalsRange(i[n])){e=!0;break}if(!e)return!1}const n=t.map((e=>({range:e,options:yn.qx.EMPTY})));this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,n);const o=t;let s=1,r=0,a=-1,l=a+1<o.length?r+1:this.modelLineProjections.length+2,c=!1;for(let d=0;d<this.modelLineProjections.length;d++){const e=d+1;e===l&&(a++,s=o[a].startLineNumber,r=o[a].endLineNumber,l=a+1<o.length?r+1:this.modelLineProjections.length+2);let t=!1;if(e>=s&&e<=r?this.modelLineProjections[d].isVisible()&&(this.modelLineProjections[d]=this.modelLineProjections[d].setVisible(!1),t=!0):(c=!0,this.modelLineProjections[d].isVisible()||(this.modelLineProjections[d]=this.modelLineProjections[d].setVisible(!0),t=!0)),t){const e=this.modelLineProjections[d].getViewLineCount();this.projectedModelLineLineCounts.setValue(d,e)}}return c||this.setHiddenAreas([]),!0}modelPositionIsVisible(e,t){return!(e<1||e>this.modelLineProjections.length)&&this.modelLineProjections[e-1].isVisible()}getModelLineViewLineCount(e){return e<1||e>this.modelLineProjections.length?1:this.modelLineProjections[e-1].getViewLineCount()}setTabSize(e){return this.tabSize!==e&&(this.tabSize=e,this._constructLines(!1,null),!0)}setWrappingSettings(e,t,i,n){const o=this.fontInfo.equals(e),s=this.wrappingStrategy===t,r=this.wrappingColumn===i,a=this.wrappingIndent===n;if(o&&s&&r&&a)return!1;const l=o&&s&&!r&&a;this.fontInfo=e,this.wrappingStrategy=t,this.wrappingColumn=i,this.wrappingIndent=n;let c=null;if(l){c=[];for(let e=0,t=this.modelLineProjections.length;e<t;e++)c[e]=this.modelLineProjections[e].getProjectionData()}return this._constructLines(!1,c),!0}createLineBreaksComputer(){return("advanced"===this.wrappingStrategy?this._domLineBreaksComputerFactory:this._monospaceLineBreaksComputerFactory).createLineBreaksComputer(this.fontInfo,this.tabSize,this.wrappingColumn,this.wrappingIndent)}onModelFlushed(){this._constructLines(!0,null)}onModelLinesDeleted(e,t,i){if(!e||e<=this._validModelVersionId)return null;const n=1===t?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,o=this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections.splice(t-1,i-t+1),this.projectedModelLineLineCounts.removeValues(t-1,i-t+1),new Ui(n,o)}onModelLinesInserted(e,t,i,n){if(!e||e<=this._validModelVersionId)return null;const o=t>2&&!this.modelLineProjections[t-2].isVisible(),s=1===t?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1;let r=0;const a=[],l=[];for(let c=0,d=n.length;c<d;c++){const e=Rn(n[c],!o);a.push(e);const t=e.getViewLineCount();r+=t,l[c]=t}return this.modelLineProjections=this.modelLineProjections.slice(0,t-1).concat(a).concat(this.modelLineProjections.slice(t-1)),this.projectedModelLineLineCounts.insertValues(t-1,l),new Ki(s,s+r-1)}onModelLineChanged(e,t,i){if(null!==e&&e<=this._validModelVersionId)return[!1,null,null,null];const n=t-1,o=this.modelLineProjections[n].getViewLineCount(),s=Rn(i,this.modelLineProjections[n].isVisible());this.modelLineProjections[n]=s;const r=this.modelLineProjections[n].getViewLineCount();let a=!1,l=0,c=-1,d=0,h=-1,u=0,g=-1;o>r?(l=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,c=l+r-1,u=c+1,g=u+(o-r)-1,a=!0):o<r?(l=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,c=l+o-1,d=c+1,h=d+(r-o)-1,a=!0):(l=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,c=l+r-1),this.projectedModelLineLineCounts.setValue(n,r);return[a,l<=c?new ji(l,c-l+1):null,d<=h?new Ki(d,h):null,u<=g?new Ui(u,g):null]}acceptVersionId(e){this._validModelVersionId=e,1!==this.modelLineProjections.length||this.modelLineProjections[0].isVisible()||this.setHiddenAreas([])}getViewLineCount(){return this.projectedModelLineLineCounts.getTotalSum()}_toValidViewLineNumber(e){if(e<1)return 1;const t=this.getViewLineCount();return e>t?t:0|e}getActiveIndentGuide(e,t,i){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),i=this._toValidViewLineNumber(i);const n=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),o=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),s=this.convertViewPositionToModelPosition(i,this.getViewLineMinColumn(i)),r=this.model.guides.getActiveIndentGuide(n.lineNumber,o.lineNumber,s.lineNumber),a=this.convertModelPositionToViewPosition(r.startLineNumber,1),l=this.convertModelPositionToViewPosition(r.endLineNumber,this.model.getLineMaxColumn(r.endLineNumber));return{startLineNumber:a.lineNumber,endLineNumber:l.lineNumber,indent:r.indent}}getViewLineInfo(e){e=this._toValidViewLineNumber(e);const t=this.projectedModelLineLineCounts.getIndexOf(e-1),i=t.index,n=t.remainder;return new jn(i+1,n)}getMinColumnOfViewLine(e){return this.modelLineProjections[e.modelLineNumber-1].getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx)}getMaxColumnOfViewLine(e){return this.modelLineProjections[e.modelLineNumber-1].getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx)}getModelStartPositionOfViewLine(e){const t=this.modelLineProjections[e.modelLineNumber-1],i=t.getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),n=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,i);return new me.L(e.modelLineNumber,n)}getModelEndPositionOfViewLine(e){const t=this.modelLineProjections[e.modelLineNumber-1],i=t.getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),n=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,i);return new me.L(e.modelLineNumber,n)}getViewLineInfosGroupedByModelRanges(e,t){const i=this.getViewLineInfo(e),n=this.getViewLineInfo(t),o=new Array;let s=this.getModelStartPositionOfViewLine(i),r=new Array;for(let a=i.modelLineNumber;a<=n.modelLineNumber;a++){const e=this.modelLineProjections[a-1];if(e.isVisible()){const t=a===i.modelLineNumber?i.modelLineWrappedLineIdx:0,o=a===n.modelLineNumber?n.modelLineWrappedLineIdx+1:e.getViewLineCount();for(let e=t;e<o;e++)r.push(new jn(a,e))}if(!e.isVisible()&&s){const e=new me.L(a-1,this.model.getLineMaxColumn(a-1)+1),t=fe.e.fromPositions(s,e);o.push(new Un(t,r)),r=[],s=null}else e.isVisible()&&!s&&(s=new me.L(a,1))}if(s){const e=fe.e.fromPositions(s,this.getModelEndPositionOfViewLine(n));o.push(new Un(e,r))}return o}getViewLinesBracketGuides(e,t,i,n){const o=i?this.convertViewPositionToModelPosition(i.lineNumber,i.column):null,s=[];for(const r of this.getViewLineInfosGroupedByModelRanges(e,t)){const e=r.modelRange.startLineNumber,t=this.model.guides.getLinesBracketGuides(e,r.modelRange.endLineNumber,o,n);for(const i of r.viewLines){const n=t[i.modelLineNumber-e].map((e=>{if(-1!==e.forWrappedLinesAfterColumn){if(this.modelLineProjections[i.modelLineNumber-1].getViewPositionOfModelPosition(0,e.forWrappedLinesAfterColumn).lineNumber>=i.modelLineWrappedLineIdx)return}if(-1!==e.forWrappedLinesBeforeOrAtColumn){if(this.modelLineProjections[i.modelLineNumber-1].getViewPositionOfModelPosition(0,e.forWrappedLinesBeforeOrAtColumn).lineNumber<i.modelLineWrappedLineIdx)return}if(!e.horizontalLine)return e;let t=-1;if(-1!==e.column){const n=this.modelLineProjections[i.modelLineNumber-1].getViewPositionOfModelPosition(0,e.column);if(n.lineNumber===i.modelLineWrappedLineIdx)t=n.column;else if(n.lineNumber<i.modelLineWrappedLineIdx)t=this.getMinColumnOfViewLine(i);else if(n.lineNumber>i.modelLineWrappedLineIdx)return}const n=this.convertModelPositionToViewPosition(i.modelLineNumber,e.horizontalLine.endColumn),o=this.modelLineProjections[i.modelLineNumber-1].getViewPositionOfModelPosition(0,e.horizontalLine.endColumn);return o.lineNumber===i.modelLineWrappedLineIdx?new Dt.UO(e.visibleColumn,t,e.className,new Dt.vW(e.horizontalLine.top,n.column),-1,-1):o.lineNumber<i.modelLineWrappedLineIdx||-1!==e.visibleColumn?void 0:new Dt.UO(e.visibleColumn,t,e.className,new Dt.vW(e.horizontalLine.top,this.getMaxColumnOfViewLine(i)),-1,-1)}));s.push(n.filter((e=>!!e)))}}return s}getViewLinesIndentGuides(e,t){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);const i=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),n=this.convertViewPositionToModelPosition(t,this.getViewLineMaxColumn(t));let o=[];const s=[],r=[],a=i.lineNumber-1,l=n.lineNumber-1;let c=null;for(let g=a;g<=l;g++){const e=this.modelLineProjections[g];if(e.isVisible()){const t=e.getViewLineNumberOfModelPosition(0,g===a?i.column:1),n=e.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(g+1)),o=n-t+1;let l=0;o>1&&1===e.getViewLineMinColumn(this.model,g+1,n)&&(l=0===t?1:2),s.push(o),r.push(l),null===c&&(c=new me.L(g+1,0))}else null!==c&&(o=o.concat(this.model.guides.getLinesIndentGuides(c.lineNumber,g)),c=null)}null!==c&&(o=o.concat(this.model.guides.getLinesIndentGuides(c.lineNumber,n.lineNumber)),c=null);const d=t-e+1,h=new Array(d);let u=0;for(let g=0,p=o.length;g<p;g++){let e=o[g];const t=Math.min(d-u,s[g]),i=r[g];let n;n=2===i?0:1===i?1:t;for(let o=0;o<t;o++)o===n&&(e=0),h[u++]=e}return h}getViewLineContent(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineContent(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineLength(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineLength(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineMinColumn(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineMinColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineMaxColumn(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineMaxColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineData(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineData(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLinesData(e,t,i){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);const n=this.projectedModelLineLineCounts.getIndexOf(e-1);let o=e;const s=n.index,r=n.remainder,a=[];for(let l=s,c=this.model.getLineCount();l<c;l++){const n=this.modelLineProjections[l];if(!n.isVisible())continue;const c=l===s?r:0;let d=n.getViewLineCount()-c,h=!1;if(o+d>t&&(h=!0,d=t-o+1),n.getViewLinesData(this.model,l+1,c,d,o-e,i,a),o+=d,h)break}return a}validateViewPosition(e,t,i){e=this._toValidViewLineNumber(e);const n=this.projectedModelLineLineCounts.getIndexOf(e-1),o=n.index,s=n.remainder,r=this.modelLineProjections[o],a=r.getViewLineMinColumn(this.model,o+1,s),l=r.getViewLineMaxColumn(this.model,o+1,s);t<a&&(t=a),t>l&&(t=l);const c=r.getModelColumnOfViewPosition(s,t);return this.model.validatePosition(new me.L(o+1,c)).equals(i)?new me.L(e,t):this.convertModelPositionToViewPosition(i.lineNumber,i.column)}validateViewRange(e,t){const i=this.validateViewPosition(e.startLineNumber,e.startColumn,t.getStartPosition()),n=this.validateViewPosition(e.endLineNumber,e.endColumn,t.getEndPosition());return new fe.e(i.lineNumber,i.column,n.lineNumber,n.column)}convertViewPositionToModelPosition(e,t){const i=this.getViewLineInfo(e),n=this.modelLineProjections[i.modelLineNumber-1].getModelColumnOfViewPosition(i.modelLineWrappedLineIdx,t);return this.model.validatePosition(new me.L(i.modelLineNumber,n))}convertViewRangeToModelRange(e){const t=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),i=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);return new fe.e(t.lineNumber,t.column,i.lineNumber,i.column)}convertModelPositionToViewPosition(e,t,i=2){const n=this.model.validatePosition(new me.L(e,t)),o=n.lineNumber,s=n.column;let r=o-1,a=!1;for(;r>0&&!this.modelLineProjections[r].isVisible();)r--,a=!0;if(0===r&&!this.modelLineProjections[r].isVisible())return new me.L(1,1);const l=1+this.projectedModelLineLineCounts.getPrefixSum(r);let c;return c=a?this.modelLineProjections[r].getViewPositionOfModelPosition(l,this.model.getLineMaxColumn(r+1),i):this.modelLineProjections[o-1].getViewPositionOfModelPosition(l,s,i),c}convertModelRangeToViewRange(e,t=0){if(e.isEmpty()){const i=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,t);return fe.e.fromPositions(i)}{const t=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,1),i=this.convertModelPositionToViewPosition(e.endLineNumber,e.endColumn,0);return new fe.e(t.lineNumber,t.column,i.lineNumber,i.column)}}getViewLineNumberOfModelPosition(e,t){let i=e-1;if(this.modelLineProjections[i].isVisible()){const e=1+this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections[i].getViewLineNumberOfModelPosition(e,t)}for(;i>0&&!this.modelLineProjections[i].isVisible();)i--;if(0===i&&!this.modelLineProjections[i].isVisible())return 1;const n=1+this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections[i].getViewLineNumberOfModelPosition(n,this.model.getLineMaxColumn(i+1))}getDecorationsInRange(e,t,i){const n=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),o=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);if(o.lineNumber-n.lineNumber<=e.endLineNumber-e.startLineNumber)return this.model.getDecorationsInRange(new fe.e(n.lineNumber,1,o.lineNumber,o.column),t,i);let s=[];const r=n.lineNumber-1,a=o.lineNumber-1;let l=null;for(let u=r;u<=a;u++){if(this.modelLineProjections[u].isVisible())null===l&&(l=new me.L(u+1,u===r?n.column:1));else if(null!==l){const e=this.model.getLineMaxColumn(u);s=s.concat(this.model.getDecorationsInRange(new fe.e(l.lineNumber,l.column,u,e),t,i)),l=null}}null!==l&&(s=s.concat(this.model.getDecorationsInRange(new fe.e(l.lineNumber,l.column,o.lineNumber,o.column),t,i)),l=null),s.sort(((e,t)=>{const i=fe.e.compareRangesUsingStarts(e.range,t.range);return 0===i?e.id<t.id?-1:e.id>t.id?1:0:i}));const c=[];let d=0,h=null;for(const u of s){const e=u.id;h!==e&&(h=e,c[d++]=u)}return c}getInjectedTextAt(e){const t=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[t.modelLineNumber-1].getInjectedTextAt(t.modelLineWrappedLineIdx,e.column)}normalizePosition(e,t){const i=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[i.modelLineNumber-1].normalizePosition(i.modelLineWrappedLineIdx,e,t)}getLineIndentColumn(e){const t=this.getViewLineInfo(e);return 0===t.modelLineWrappedLineIdx?this.model.getLineIndentColumn(t.modelLineNumber):0}}class jn{constructor(e,t){this.modelLineNumber=e,this.modelLineWrappedLineIdx=t}}class Un{constructor(e,t){this.modelRange=e,this.viewLines=t}}class Kn{constructor(e){this._lines=e}convertViewPositionToModelPosition(e){return this._lines.convertViewPositionToModelPosition(e.lineNumber,e.column)}convertViewRangeToModelRange(e){return this._lines.convertViewRangeToModelRange(e)}validateViewPosition(e,t){return this._lines.validateViewPosition(e.lineNumber,e.column,t)}validateViewRange(e,t){return this._lines.validateViewRange(e,t)}convertModelPositionToViewPosition(e,t){return this._lines.convertModelPositionToViewPosition(e.lineNumber,e.column,t)}convertModelRangeToViewRange(e,t){return this._lines.convertModelRangeToViewRange(e,t)}modelPositionIsVisible(e){return this._lines.modelPositionIsVisible(e.lineNumber,e.column)}getModelLineViewLineCount(e){return this._lines.getModelLineViewLineCount(e)}getViewLineNumberOfModelPosition(e,t){return this._lines.getViewLineNumberOfModelPosition(e,t)}}class $n{constructor(e){this.model=e}dispose(){}createCoordinatesConverter(){return new qn(this)}getHiddenAreas(){return[]}setHiddenAreas(e){return!1}setTabSize(e){return!1}setWrappingSettings(e,t,i,n){return!1}createLineBreaksComputer(){const e=[];return{addRequest:(t,i,n)=>{e.push(null)},finalize:()=>e}}onModelFlushed(){}onModelLinesDeleted(e,t,i){return new Ui(t,i)}onModelLinesInserted(e,t,i,n){return new Ki(t,i)}onModelLineChanged(e,t,i){return[!1,new ji(t,1),null,null]}acceptVersionId(e){}getViewLineCount(){return this.model.getLineCount()}getActiveIndentGuide(e,t,i){return{startLineNumber:e,endLineNumber:e,indent:0}}getViewLinesBracketGuides(e,t,i){return new Array(t-e+1).fill([])}getViewLinesIndentGuides(e,t){const i=t-e+1,n=new Array(i);for(let o=0;o<i;o++)n[o]=0;return n}getViewLineContent(e){return this.model.getLineContent(e)}getViewLineLength(e){return this.model.getLineLength(e)}getViewLineMinColumn(e){return this.model.getLineMinColumn(e)}getViewLineMaxColumn(e){return this.model.getLineMaxColumn(e)}getViewLineData(e){const t=this.model.tokenization.getLineTokens(e),i=t.getLineContent();return new Vt.IP(i,!1,1,i.length+1,0,t.inflate(),null)}getViewLinesData(e,t,i){const n=this.model.getLineCount();e=Math.min(Math.max(1,e),n),t=Math.min(Math.max(1,t),n);const o=[];for(let s=e;s<=t;s++){const t=s-e;o[t]=i[t]?this.getViewLineData(s):null}return o}getDecorationsInRange(e,t,i){return this.model.getDecorationsInRange(e,t,i)}normalizePosition(e,t){return this.model.normalizePosition(e,t)}getLineIndentColumn(e){return this.model.getLineIndentColumn(e)}getInjectedTextAt(e){return null}}class qn{constructor(e){this._lines=e}_validPosition(e){return this._lines.model.validatePosition(e)}_validRange(e){return this._lines.model.validateRange(e)}convertViewPositionToModelPosition(e){return this._validPosition(e)}convertViewRangeToModelRange(e){return this._validRange(e)}validateViewPosition(e,t){return this._validPosition(t)}validateViewRange(e,t){return this._validRange(t)}convertModelPositionToViewPosition(e){return this._validPosition(e)}convertModelRangeToViewRange(e){return this._validRange(e)}modelPositionIsVisible(e){const t=this._lines.model.getLineCount();return!(e.lineNumber<1||e.lineNumber>t)}getModelLineViewLineCount(e){return 1}getViewLineNumberOfModelPosition(e,t){return e}}class Gn extends u.JT{constructor(e,t,i,n,o,s,r,a){if(super(),this.languageConfigurationService=r,this._themeService=a,this._editorId=e,this._configuration=t,this.model=i,this._eventDispatcher=new Ji,this.onEvent=this._eventDispatcher.onEvent,this.cursorConfig=new Di.LM(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._tokenizeViewportSoon=this._register(new z.pY((()=>this.tokenizeViewport()),50)),this._updateConfigurationViewLineCount=this._register(new z.pY((()=>this._updateConfigurationViewLineCountNow()),0)),this._hasFocus=!1,this._viewportStart=Qn.create(this.model),this.model.isTooLargeForTokenization())this._lines=new $n(this.model);else{const e=this._configuration.options,t=e.get(46),i=e.get(127),s=e.get(134),r=e.get(126);this._lines=new zn(this._editorId,this.model,n,o,t,this.model.getOptions().tabSize,i,s.wrappingColumn,r)}this.coordinatesConverter=this._lines.createCoordinatesConverter(),this._cursor=this._register(new pn(i,this,this.coordinatesConverter,this.cursorConfig)),this.viewLayout=this._register(new Tn(this._configuration,this.getLineCount(),s)),this._register(this.viewLayout.onDidScroll((e=>{e.scrollTopChanged&&this._tokenizeViewportSoon.schedule(),e.scrollTopChanged&&this._viewportStart.invalidate(),this._eventDispatcher.emitSingleViewEvent(new qi(e)),this._eventDispatcher.emitOutgoingEvent(new nn(e.oldScrollWidth,e.oldScrollLeft,e.oldScrollHeight,e.oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop))}))),this._register(this.viewLayout.onDidContentSizeChange((e=>{this._eventDispatcher.emitOutgoingEvent(e)}))),this._decorations=new Mn.CU(this._editorId,this.model,this._configuration,this._lines,this.coordinatesConverter),this._registerModelEvents(),this._register(this._configuration.onDidChangeFast((e=>{try{const t=this._eventDispatcher.beginEmitViewEvents();this._onConfigurationChanged(t,e)}finally{this._eventDispatcher.endEmitViewEvents()}}))),this._register(Bt.getInstance().onDidChange((()=>{this._eventDispatcher.emitSingleViewEvent(new Zi)}))),this._register(this._themeService.onDidColorThemeChange((e=>{this._invalidateDecorationsColorCache(),this._eventDispatcher.emitSingleViewEvent(new Gi(e))}))),this._updateConfigurationViewLineCountNow()}dispose(){super.dispose(),this._decorations.dispose(),this._lines.dispose(),this._viewportStart.dispose(),this._eventDispatcher.dispose()}createLineBreaksComputer(){return this._lines.createLineBreaksComputer()}addViewEventHandler(e){this._eventDispatcher.addViewEventHandler(e)}removeViewEventHandler(e){this._eventDispatcher.removeViewEventHandler(e)}_updateConfigurationViewLineCountNow(){this._configuration.setViewLineCount(this._lines.getViewLineCount())}tokenizeViewport(){const e=this.viewLayout.getLinesViewportData(),t=new fe.e(e.startLineNumber,this.getLineMinColumn(e.startLineNumber),e.endLineNumber,this.getLineMaxColumn(e.endLineNumber)),i=this._toModelVisibleRanges(t);for(const n of i)this.model.tokenization.tokenizeViewport(n.startLineNumber,n.endLineNumber)}setHasFocus(e){this._hasFocus=e,this._cursor.setHasFocus(e),this._eventDispatcher.emitSingleViewEvent(new Wi(e)),this._eventDispatcher.emitOutgoingEvent(new tn(!e,e))}onCompositionStart(){this._eventDispatcher.emitSingleViewEvent(new Ri)}onCompositionEnd(){this._eventDispatcher.emitSingleViewEvent(new Oi)}_onConfigurationChanged(e,t){let i=null;if(this._viewportStart.isValid){const e=new me.L(this._viewportStart.viewLineNumber,this.getLineMinColumn(this._viewportStart.viewLineNumber));i=this.coordinatesConverter.convertViewPositionToModelPosition(e)}let n=!1;const o=this._configuration.options,s=o.get(46),r=o.get(127),a=o.get(134),l=o.get(126);if(this._lines.setWrappingSettings(s,r,a.wrappingColumn,l)&&(e.emitViewEvent(new Vi),e.emitViewEvent(new zi),e.emitViewEvent(new Bi(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),0!==this.viewLayout.getCurrentScrollTop()&&(n=!0),this._updateConfigurationViewLineCount.schedule()),t.hasChanged(83)&&(this._decorations.reset(),e.emitViewEvent(new Bi(null))),e.emitViewEvent(new Pi(t)),this.viewLayout.onConfigurationChanged(t),n&&i){const e=this.coordinatesConverter.convertModelPositionToViewPosition(i),t=this.viewLayout.getVerticalOffsetForLineNumber(e.lineNumber);this.viewLayout.setScrollPosition({scrollTop:t+this._viewportStart.startLineDelta},1)}Di.LM.shouldRecreate(t)&&(this.cursorConfig=new Di.LM(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig))}_registerModelEvents(){this._register(this.model.onDidChangeContentOrInjectedText((e=>{try{const t=this._eventDispatcher.beginEmitViewEvents();let i=!1,n=!1;const o=e instanceof Ai.fV?e.rawContentChangedEvent.changes:e.changes,s=e instanceof Ai.fV?e.rawContentChangedEvent.versionId:null,r=this._lines.createLineBreaksComputer();for(const e of o)switch(e.changeType){case 4:for(let t=0;t<e.detail.length;t++){const i=e.detail[t];let n=e.injectedTexts[t];n&&(n=n.filter((e=>!e.ownerId||e.ownerId===this._editorId))),r.addRequest(i,n,null)}break;case 2:{let t=null;e.injectedText&&(t=e.injectedText.filter((e=>!e.ownerId||e.ownerId===this._editorId))),r.addRequest(e.detail,t,null);break}}const a=r.finalize(),l=new m.H9(a);for(const e of o)switch(e.changeType){case 1:this._lines.onModelFlushed(),t.emitViewEvent(new Vi),this._decorations.reset(),this.viewLayout.onFlushed(this.getLineCount()),i=!0;break;case 3:{const n=this._lines.onModelLinesDeleted(s,e.fromLineNumber,e.toLineNumber);null!==n&&(t.emitViewEvent(n),this.viewLayout.onLinesDeleted(n.fromLineNumber,n.toLineNumber)),i=!0;break}case 4:{const n=l.takeCount(e.detail.length),o=this._lines.onModelLinesInserted(s,e.fromLineNumber,e.toLineNumber,n);null!==o&&(t.emitViewEvent(o),this.viewLayout.onLinesInserted(o.fromLineNumber,o.toLineNumber)),i=!0;break}case 2:{const i=l.dequeue(),[o,r,a,c]=this._lines.onModelLineChanged(s,e.lineNumber,i);n=o,r&&t.emitViewEvent(r),a&&(t.emitViewEvent(a),this.viewLayout.onLinesInserted(a.fromLineNumber,a.toLineNumber)),c&&(t.emitViewEvent(c),this.viewLayout.onLinesDeleted(c.fromLineNumber,c.toLineNumber));break}}null!==s&&this._lines.acceptVersionId(s),this.viewLayout.onHeightMaybeChanged(),!i&&n&&(t.emitViewEvent(new zi),t.emitViewEvent(new Bi(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged())}finally{this._eventDispatcher.endEmitViewEvents()}const t=this._viewportStart.isValid;if(this._viewportStart.invalidate(),this._configuration.setModelLineCount(this.model.getLineCount()),this._updateConfigurationViewLineCountNow(),!this._hasFocus&&this.model.getAttachedEditorCount()>=2&&t){const e=this.model._getTrackedRange(this._viewportStart.modelTrackedRange);if(e){const t=this.coordinatesConverter.convertModelPositionToViewPosition(e.getStartPosition()),i=this.viewLayout.getVerticalOffsetForLineNumber(t.lineNumber);this.viewLayout.setScrollPosition({scrollTop:i+this._viewportStart.startLineDelta},1)}}try{const t=this._eventDispatcher.beginEmitViewEvents();e instanceof Ai.fV&&t.emitOutgoingEvent(new hn(e.contentChangedEvent)),this._cursor.onModelContentChanged(t,e)}finally{this._eventDispatcher.endEmitViewEvents()}this._tokenizeViewportSoon.schedule()}))),this._register(this.model.onDidChangeTokens((e=>{const t=[];for(let i=0,n=e.ranges.length;i<n;i++){const n=e.ranges[i],o=this.coordinatesConverter.convertModelPositionToViewPosition(new me.L(n.fromLineNumber,1)).lineNumber,s=this.coordinatesConverter.convertModelPositionToViewPosition(new me.L(n.toLineNumber,this.model.getLineMaxColumn(n.toLineNumber))).lineNumber;t[i]={fromLineNumber:o,toLineNumber:s}}this._eventDispatcher.emitSingleViewEvent(new Qi(t)),e.tokenizationSupportChanged&&this._tokenizeViewportSoon.schedule(),this._eventDispatcher.emitOutgoingEvent(new gn(e))}))),this._register(this.model.onDidChangeLanguageConfiguration((e=>{this._eventDispatcher.emitSingleViewEvent(new Hi),this.cursorConfig=new Di.LM(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new dn(e))}))),this._register(this.model.onDidChangeLanguage((e=>{this.cursorConfig=new Di.LM(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new cn(e))}))),this._register(this.model.onDidChangeOptions((e=>{if(this._lines.setTabSize(this.model.getOptions().tabSize)){try{const e=this._eventDispatcher.beginEmitViewEvents();e.emitViewEvent(new Vi),e.emitViewEvent(new zi),e.emitViewEvent(new Bi(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}this.cursorConfig=new Di.LM(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new un(e))}))),this._register(this.model.onDidChangeDecorations((e=>{this._decorations.onModelDecorationsChanged(),this._eventDispatcher.emitSingleViewEvent(new Bi(e)),this._eventDispatcher.emitOutgoingEvent(new ln(e))})))}setHiddenAreas(e){let t=!1;try{const i=this._eventDispatcher.beginEmitViewEvents();t=this._lines.setHiddenAreas(e),t&&(i.emitViewEvent(new Vi),i.emitViewEvent(new zi),i.emitViewEvent(new Bi(null)),this._cursor.onLineMappingChanged(i),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule(),t&&this._eventDispatcher.emitOutgoingEvent(new sn)}getVisibleRangesPlusViewportAboveBelow(){const e=this._configuration.options.get(133),t=this._configuration.options.get(61),i=Math.max(20,Math.round(e.height/t)),n=this.viewLayout.getLinesViewportData(),o=Math.max(1,n.completelyVisibleStartLineNumber-i),s=Math.min(this.getLineCount(),n.completelyVisibleEndLineNumber+i);return this._toModelVisibleRanges(new fe.e(o,this.getLineMinColumn(o),s,this.getLineMaxColumn(s)))}getVisibleRanges(){const e=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(e)}getHiddenAreas(){return this._lines.getHiddenAreas()}_toModelVisibleRanges(e){const t=this.coordinatesConverter.convertViewRangeToModelRange(e),i=this._lines.getHiddenAreas();if(0===i.length)return[t];const n=[];let o=0,s=t.startLineNumber,r=t.startColumn;const a=t.endLineNumber,l=t.endColumn;for(let c=0,d=i.length;c<d;c++){const e=i[c].startLineNumber,t=i[c].endLineNumber;t<s||(e>a||(s<e&&(n[o++]=new fe.e(s,r,e-1,this.model.getLineMaxColumn(e-1))),s=t+1,r=1))}return(s<a||s===a&&r<l)&&(n[o++]=new fe.e(s,r,a,l)),n}getCompletelyVisibleViewRange(){const e=this.viewLayout.getLinesViewportData(),t=e.completelyVisibleStartLineNumber,i=e.completelyVisibleEndLineNumber;return new fe.e(t,this.getLineMinColumn(t),i,this.getLineMaxColumn(i))}getCompletelyVisibleViewRangeAtScrollTop(e){const t=this.viewLayout.getLinesViewportDataAtScrollTop(e),i=t.completelyVisibleStartLineNumber,n=t.completelyVisibleEndLineNumber;return new fe.e(i,this.getLineMinColumn(i),n,this.getLineMaxColumn(n))}saveState(){const e=this.viewLayout.saveState(),t=e.scrollTop,i=this.viewLayout.getLineNumberAtVerticalOffset(t),n=this.coordinatesConverter.convertViewPositionToModelPosition(new me.L(i,this.getLineMinColumn(i))),o=this.viewLayout.getVerticalOffsetForLineNumber(i)-t;return{scrollLeft:e.scrollLeft,firstPosition:n,firstPositionDeltaTop:o}}reduceRestoreState(e){if(void 0===e.firstPosition)return this._reduceRestoreStateCompatibility(e);const t=this.model.validatePosition(e.firstPosition),i=this.coordinatesConverter.convertModelPositionToViewPosition(t),n=this.viewLayout.getVerticalOffsetForLineNumber(i.lineNumber)-e.firstPositionDeltaTop;return{scrollLeft:e.scrollLeft,scrollTop:n}}_reduceRestoreStateCompatibility(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTopWithoutViewZones}}getTabSize(){return this.model.getOptions().tabSize}getLineCount(){return this._lines.getViewLineCount()}setViewport(e,t,i){this._viewportStart.update(this,e)}getActiveIndentGuide(e,t,i){return this._lines.getActiveIndentGuide(e,t,i)}getLinesIndentGuides(e,t){return this._lines.getViewLinesIndentGuides(e,t)}getBracketGuidesInRangeByLine(e,t,i,n){return this._lines.getViewLinesBracketGuides(e,t,i,n)}getLineContent(e){return this._lines.getViewLineContent(e)}getLineLength(e){return this._lines.getViewLineLength(e)}getLineMinColumn(e){return this._lines.getViewLineMinColumn(e)}getLineMaxColumn(e){return this._lines.getViewLineMaxColumn(e)}getLineFirstNonWhitespaceColumn(e){const t=Be.LC(this.getLineContent(e));return-1===t?0:t+1}getLineLastNonWhitespaceColumn(e){const t=Be.ow(this.getLineContent(e));return-1===t?0:t+2}getDecorationsInViewport(e){return this._decorations.getDecorationsViewportData(e).decorations}getInjectedTextAt(e){return this._lines.getInjectedTextAt(e)}getViewportViewLineRenderingData(e,t){const i=this._decorations.getDecorationsViewportData(e).inlineDecorations[t-e.startLineNumber];return this._getViewLineRenderingData(t,i)}getViewLineRenderingData(e){const t=this._decorations.getInlineDecorationsOnLine(e);return this._getViewLineRenderingData(e,t)}_getViewLineRenderingData(e,t){const i=this.model.mightContainRTL(),n=this.model.mightContainNonBasicASCII(),o=this.getTabSize(),s=this._lines.getViewLineData(e);return s.inlineDecorations&&(t=[...t,...s.inlineDecorations.map((t=>t.toInlineDecoration(e)))]),new Vt.wA(s.minColumn,s.maxColumn,s.content,s.continuesWithWrappedLine,i,n,s.tokens,t,o,s.startVisibleColumn)}getViewLineData(e){return this._lines.getViewLineData(e)}getMinimapLinesRenderingData(e,t,i){const n=this._lines.getViewLinesData(e,t,i);return new Vt.ud(this.getTabSize(),n)}getAllOverviewRulerDecorations(e){const t=this.model.getOverviewRulerDecorations(this._editorId,(0,k.$J)(this._configuration.options)),i=new Zn;for(const n of t){const t=n.options,o=t.overviewRuler;if(!o)continue;const s=o.position;if(0===s)continue;const r=o.getColor(e.value),a=this.coordinatesConverter.getViewLineNumberOfModelPosition(n.range.startLineNumber,n.range.startColumn),l=this.coordinatesConverter.getViewLineNumberOfModelPosition(n.range.endLineNumber,n.range.endColumn);i.accept(r,t.zIndex,a,l,s)}return i.asArray}_invalidateDecorationsColorCache(){const e=this.model.getOverviewRulerDecorations();for(const t of e){const e=t.options.overviewRuler;e&&e.invalidateCachedColor();const i=t.options.minimap;i&&i.invalidateCachedColor()}}getValueInRange(e,t){const i=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueInRange(i,t)}deduceModelPositionRelativeToViewPosition(e,t,i){const n=this.coordinatesConverter.convertViewPositionToModelPosition(e);2===this.model.getEOL().length&&(t<0?t-=i:t+=i);const o=this.model.getOffsetAt(n)+t;return this.model.getPositionAt(o)}getPlainTextToCopy(e,t,i){const n=i?"\r\n":this.model.getEOL();(e=e.slice(0)).sort(fe.e.compareRangesUsingStarts);let o=!1,s=!1;for(const a of e)a.isEmpty()?o=!0:s=!0;if(!s){if(!t)return"";const i=e.map((e=>e.startLineNumber));let o="";for(let e=0;e<i.length;e++)e>0&&i[e-1]===i[e]||(o+=this.model.getLineContent(i[e])+n);return o}if(o&&t){const t=[];let n=0;for(const o of e){const e=o.startLineNumber;o.isEmpty()?e!==n&&t.push(this.model.getLineContent(e)):t.push(this.model.getValueInRange(o,i?2:0)),n=e}return 1===t.length?t[0]:t}const r=[];for(const a of e)a.isEmpty()||r.push(this.model.getValueInRange(a,i?2:0));return 1===r.length?r[0]:r}getRichTextToCopy(e,t){const i=this.model.getLanguageId();if(i===Sn.bd)return null;if(1!==e.length)return null;let n=e[0];if(n.isEmpty()){if(!t)return null;const e=n.startLineNumber;n=new fe.e(e,this.model.getLineMinColumn(e),e,this.model.getLineMaxColumn(e))}const o=this._configuration.options.get(46),s=this._getColorMap();let r;if(/[:;\\\/<>]/.test(o.fontFamily)||o.fontFamily===k.hL.fontFamily)r=k.hL.fontFamily;else{r=o.fontFamily,r=r.replace(/"/g,"'");if(!/[,']/.test(r)){/[+ ]/.test(r)&&(r=`'${r}'`)}r=`${r}, ${k.hL.fontFamily}`}return{mode:i,html:`<div style="color: ${s[1]};background-color: ${s[2]};font-family: ${r};font-weight: ${o.fontWeight};font-size: ${o.fontSize}px;line-height: ${o.lineHeight}px;white-space: pre;">`+this._getHTMLToCopy(n,s)+"</div>"}}_getHTMLToCopy(e,t){const i=e.startLineNumber,n=e.startColumn,o=e.endLineNumber,s=e.endColumn,r=this.getTabSize();let a="";for(let l=i;l<=o;l++){const e=this.model.tokenization.getLineTokens(l),c=e.getLineContent(),d=l===i?n-1:0,h=l===o?s-1:c.length;a+=""===c?"<br>":(0,Ln.Fq)(c,e.inflate(),t,d,h,r,_.ED)}return a}_getColorMap(){const e=Ge.RW.getColorMap(),t=["#000000"];if(e)for(let i=1,n=e.length;i<n;i++)t[i]=Qe.Il.Format.CSS.formatHex(e[i]);return t}getPrimaryCursorState(){return this._cursor.getPrimaryCursorState()}getLastAddedCursorIndex(){return this._cursor.getLastAddedCursorIndex()}getCursorStates(){return this._cursor.getCursorStates()}setCursorStates(e,t,i){return this._withViewEventsCollector((n=>this._cursor.setStates(n,e,t,i)))}getCursorColumnSelectData(){return this._cursor.getCursorColumnSelectData()}getCursorAutoClosedCharacters(){return this._cursor.getAutoClosedCharacters()}setCursorColumnSelectData(e){this._cursor.setCursorColumnSelectData(e)}getPrevEditOperationType(){return this._cursor.getPrevEditOperationType()}setPrevEditOperationType(e){this._cursor.setPrevEditOperationType(e)}getSelection(){return this._cursor.getSelection()}getSelections(){return this._cursor.getSelections()}getPosition(){return this._cursor.getPrimaryCursorState().modelState.position}setSelections(e,t,i=0){this._withViewEventsCollector((n=>this._cursor.setSelections(n,e,t,i)))}saveCursorState(){return this._cursor.saveState()}restoreCursorState(e){this._withViewEventsCollector((t=>this._cursor.restoreState(t,e)))}_executeCursorEdit(e){this._cursor.context.cursorConfig.readOnly?this._eventDispatcher.emitOutgoingEvent(new an):this._withViewEventsCollector(e)}executeEdits(e,t,i){this._executeCursorEdit((n=>this._cursor.executeEdits(n,e,t,i)))}startComposition(){this._executeCursorEdit((e=>this._cursor.startComposition(e)))}endComposition(e){this._executeCursorEdit((t=>this._cursor.endComposition(t,e)))}type(e,t){this._executeCursorEdit((i=>this._cursor.type(i,e,t)))}compositionType(e,t,i,n,o){this._executeCursorEdit((s=>this._cursor.compositionType(s,e,t,i,n,o)))}paste(e,t,i,n){this._executeCursorEdit((o=>this._cursor.paste(o,e,t,i,n)))}cut(e){this._executeCursorEdit((t=>this._cursor.cut(t,e)))}executeCommand(e,t){this._executeCursorEdit((i=>this._cursor.executeCommand(i,e,t)))}executeCommands(e,t){this._executeCursorEdit((i=>this._cursor.executeCommands(i,e,t)))}revealPrimaryCursor(e,t,i=!1){this._withViewEventsCollector((n=>this._cursor.revealPrimary(n,e,i,0,t,0)))}revealTopMostCursor(e){const t=this._cursor.getTopMostViewPosition(),i=new fe.e(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector((t=>t.emitViewEvent(new $i(e,!1,i,null,0,!0,0))))}revealBottomMostCursor(e){const t=this._cursor.getBottomMostViewPosition(),i=new fe.e(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector((t=>t.emitViewEvent(new $i(e,!1,i,null,0,!0,0))))}revealRange(e,t,i,n,o){this._withViewEventsCollector((s=>s.emitViewEvent(new $i(e,!1,i,null,n,t,o))))}changeWhitespace(e){this.viewLayout.changeWhitespace(e)&&(this._eventDispatcher.emitSingleViewEvent(new Yi),this._eventDispatcher.emitOutgoingEvent(new on))}_withViewEventsCollector(e){try{return e(this._eventDispatcher.beginEmitViewEvents())}finally{this._eventDispatcher.endEmitViewEvents()}}normalizePosition(e,t){return this._lines.normalizePosition(e,t)}getLineIndentColumn(e){return this._lines.getLineIndentColumn(e)}}class Qn{constructor(e,t,i,n,o){this._model=e,this._viewLineNumber=t,this._isValid=i,this._modelTrackedRange=n,this._startLineDelta=o}static create(e){const t=e._setTrackedRange(null,new fe.e(1,1,1,1),1);return new Qn(e,1,!1,t,0)}get viewLineNumber(){return this._viewLineNumber}get isValid(){return this._isValid}get modelTrackedRange(){return this._modelTrackedRange}get startLineDelta(){return this._startLineDelta}dispose(){this._model._setTrackedRange(this._modelTrackedRange,null,1)}update(e,t){const i=e.coordinatesConverter.convertViewPositionToModelPosition(new me.L(t,e.getLineMinColumn(t))),n=e.model._setTrackedRange(this._modelTrackedRange,new fe.e(i.lineNumber,i.column,i.lineNumber,i.column),1),o=e.viewLayout.getVerticalOffsetForLineNumber(t),s=e.viewLayout.getCurrentScrollTop();this._viewLineNumber=t,this._isValid=!0,this._modelTrackedRange=n,this._startLineDelta=s-o}invalidate(){this._isValid=!1}}class Zn{constructor(){this._asMap=Object.create(null),this.asArray=[]}accept(e,t,i,n,o){const s=this._asMap[e];if(s){const e=s.data,t=e[e.length-3],r=e[e.length-1];if(t===o&&r+1>=i)return void(n>r&&(e[e.length-1]=n));e.push(o,i,n)}else{const s=new Vt.SQ(e,t,[o,i,n]);this._asMap[e]=s,this.asArray.push(s)}}}var Yn=i(94565),Jn=i(38819),Xn=i(72065),eo=i(60972),to=i(59422),io=i(44906);class no{constructor(e,t,i,n,o){this.injectionOffsets=e,this.injectionOptions=t,this.breakOffsets=i,this.breakOffsetsVisibleColumn=n,this.wrappedTextIndentLength=o}getOutputLineCount(){return this.breakOffsets.length}getMinOutputOffset(e){return e>0?this.wrappedTextIndentLength:0}getLineLength(e){const t=e>0?this.breakOffsets[e-1]:0;let i=this.breakOffsets[e]-t;return e>0&&(i+=this.wrappedTextIndentLength),i}getMaxOutputOffset(e){return this.getLineLength(e)}translateToInputOffset(e,t){e>0&&(t=Math.max(0,t-this.wrappedTextIndentLength));let i=0===e?t:this.breakOffsets[e-1]+t;if(null!==this.injectionOffsets)for(let n=0;n<this.injectionOffsets.length&&i>this.injectionOffsets[n];n++)i<this.injectionOffsets[n]+this.injectionOptions[n].content.length?i=this.injectionOffsets[n]:i-=this.injectionOptions[n].content.length;return i}translateToOutputPosition(e,t=2){let i=e;if(null!==this.injectionOffsets)for(let n=0;n<this.injectionOffsets.length&&!(e<this.injectionOffsets[n])&&(1===t||e!==this.injectionOffsets[n]);n++)i+=this.injectionOptions[n].content.length;return this.offsetInInputWithInjectionsToOutputPosition(i,t)}offsetInInputWithInjectionsToOutputPosition(e,t=2){let i=0,n=this.breakOffsets.length-1,o=0,s=0;for(;i<=n;){o=i+(n-i)/2|0;const r=this.breakOffsets[o];if(s=o>0?this.breakOffsets[o-1]:0,0===t)if(e<=s)n=o-1;else{if(!(e>r))break;i=o+1}else if(e<s)n=o-1;else{if(!(e>=r))break;i=o+1}}let r=e-s;return o>0&&(r+=this.wrappedTextIndentLength),new ro(o,r)}normalizeOutputPosition(e,t,i){if(null!==this.injectionOffsets){const n=this.outputPositionToOffsetInInputWithInjections(e,t),o=this.normalizeOffsetInInputWithInjectionsAroundInjections(n,i);if(o!==n)return this.offsetInInputWithInjectionsToOutputPosition(o,i)}if(0===i){if(e>0&&t===this.getMinOutputOffset(e))return new ro(e-1,this.getMaxOutputOffset(e-1))}else if(1===i){if(e<this.getOutputLineCount()-1&&t===this.getMaxOutputOffset(e))return new ro(e+1,this.getMinOutputOffset(e+1))}return new ro(e,t)}outputPositionToOffsetInInputWithInjections(e,t){e>0&&(t=Math.max(0,t-this.wrappedTextIndentLength));return(e>0?this.breakOffsets[e-1]:0)+t}normalizeOffsetInInputWithInjectionsAroundInjections(e,t){const i=this.getInjectedTextAtOffset(e);if(!i)return e;if(2===t){if(e===i.offsetInInputWithInjections+i.length&&oo(this.injectionOptions[i.injectedTextIndex].cursorStops))return i.offsetInInputWithInjections+i.length;{let e=i.offsetInInputWithInjections;if(so(this.injectionOptions[i.injectedTextIndex].cursorStops))return e;let t=i.injectedTextIndex-1;for(;t>=0&&this.injectionOffsets[t]===this.injectionOffsets[i.injectedTextIndex]&&!oo(this.injectionOptions[t].cursorStops)&&(e-=this.injectionOptions[t].content.length,!so(this.injectionOptions[t].cursorStops));)t--;return e}}if(1===t||4===t){let e=i.offsetInInputWithInjections+i.length,t=i.injectedTextIndex;for(;t+1<this.injectionOffsets.length&&this.injectionOffsets[t+1]===this.injectionOffsets[t];)e+=this.injectionOptions[t+1].content.length,t++;return e}if(0===t||3===t){let e=i.offsetInInputWithInjections,t=i.injectedTextIndex;for(;t-1>=0&&this.injectionOffsets[t-1]===this.injectionOffsets[t];)e-=this.injectionOptions[t-1].content.length,t--;return e}(0,kt.vE)(t)}getInjectedText(e,t){const i=this.outputPositionToOffsetInInputWithInjections(e,t),n=this.getInjectedTextAtOffset(i);return n?{options:this.injectionOptions[n.injectedTextIndex]}:null}getInjectedTextAtOffset(e){const t=this.injectionOffsets,i=this.injectionOptions;if(null!==t){let n=0;for(let o=0;o<t.length;o++){const s=i[o].content.length,r=t[o]+n,a=t[o]+n+s;if(r>e)break;if(e<=a)return{injectedTextIndex:o,offsetInInputWithInjections:r,length:s};n+=s}}}}function oo(e){return null==e||(e===Gt.RM.Right||e===Gt.RM.Both)}function so(e){return null==e||(e===Gt.RM.Left||e===Gt.RM.Both)}class ro{constructor(e,t){this.outputLineIndex=e,this.outputOffset=t}toString(){return`${this.outputLineIndex}:${this.outputOffset}`}toPosition(e){return new me.L(e+this.outputLineIndex,this.outputOffset+1)}}class ao{constructor(e,t){this.classifier=new lo(e,t)}static create(e){return new ao(e.get(122),e.get(121))}createLineBreaksComputer(e,t,i,n){const o=[],s=[],r=[];return{addRequest:(e,t,i)=>{o.push(e),s.push(t),r.push(i)},finalize:()=>{const a=e.typicalFullwidthCharacterWidth/e.typicalHalfwidthCharacterWidth,l=[];for(let e=0,c=o.length;e<c;e++){const c=s[e],d=r[e];!d||d.injectionOptions||c?l[e]=go(this.classifier,o[e],c,t,i,a,n):l[e]=uo(this.classifier,d,o[e],t,i,a,n)}return co.length=0,ho.length=0,l}}}}class lo extends io.N{constructor(e,t){super(0);for(let i=0;i<e.length;i++)this.set(e.charCodeAt(i),1);for(let i=0;i<t.length;i++)this.set(t.charCodeAt(i),2)}get(e){return e>=0&&e<256?this._asciiMap[e]:e>=12352&&e<=12543||e>=13312&&e<=19903||e>=19968&&e<=40959?3:this._map.get(e)||this._defaultValue}}let co=[],ho=[];function uo(e,t,i,n,o,s,r){if(-1===o)return null;const a=i.length;if(a<=1)return null;const l=t.breakOffsets,c=t.breakOffsetsVisibleColumn,d=_o(i,n,o,s,r),h=o-d,u=co,g=ho;let p=0,m=0,f=0,_=o;const v=l.length;let b=0;if(b>=0){let e=Math.abs(c[b]-_);for(;b+1<v;){const t=Math.abs(c[b+1]-_);if(t>=e)break;e=t,b++}}for(;b<v;){let t=b<0?0:l[b],o=b<0?0:c[b];m>t&&(t=m,o=f);let r=0,d=0,C=0,w=0;if(o<=_){let f=o,v=0===t?0:i.charCodeAt(t-1),b=0===t?0:e.get(v),y=!0;for(let o=t;o<a;o++){const t=o,a=i.charCodeAt(o);let l,c;if(Be.ZG(a)?(o++,l=0,c=2):(l=e.get(a),c=po(a,f,n,s)),t>m&&fo(v,b,a,l)&&(r=t,d=f),f+=c,f>_){t>m?(C=t,w=f-c):(C=o+1,w=f),f-d>h&&(r=0),y=!1;break}v=a,b=l}if(y){p>0&&(u[p]=l[l.length-1],g[p]=c[l.length-1],p++);break}}if(0===r){let a=o,l=i.charCodeAt(t),c=e.get(l),u=!1;for(let n=t-1;n>=m;n--){const t=n+1,o=i.charCodeAt(n);if(9===o){u=!0;break}let g,p;if(Be.YK(o)?(n--,g=0,p=2):(g=e.get(o),p=Be.K7(o)?s:1),a<=_){if(0===C&&(C=t,w=a),a<=_-h)break;if(fo(o,g,l,c)){r=t,d=a;break}}a-=p,l=o,c=g}if(0!==r){const e=h-(w-d);if(e<=n){const t=i.charCodeAt(C);let o;o=Be.ZG(t)?2:po(t,w,n,s),e-o<0&&(r=0)}}if(u){b--;continue}}if(0===r&&(r=C,d=w),r<=m){const e=i.charCodeAt(m);Be.ZG(e)?(r=m+2,d=f+2):(r=m+1,d=f+po(e,f,n,s))}for(m=r,u[p]=r,f=d,g[p]=d,p++,_=d+h;b<0||b<v&&c[b]<d;)b++;let y=Math.abs(c[b]-_);for(;b+1<v;){const e=Math.abs(c[b+1]-_);if(e>=y)break;y=e,b++}}return 0===p?null:(u.length=p,g.length=p,co=t.breakOffsets,ho=t.breakOffsetsVisibleColumn,t.breakOffsets=u,t.breakOffsetsVisibleColumn=g,t.wrappedTextIndentLength=d,t)}function go(e,t,i,n,o,s,r){const a=Ai.gk.applyInjectedText(t,i);let l,c;if(i&&i.length>0?(l=i.map((e=>e.options)),c=i.map((e=>e.column-1))):(l=null,c=null),-1===o)return l?new no(c,l,[a.length],[],0):null;const d=a.length;if(d<=1)return l?new no(c,l,[a.length],[],0):null;const h=_o(a,n,o,s,r),u=o-h,g=[],p=[];let m=0,f=0,_=0,v=o,b=a.charCodeAt(0),C=e.get(b),w=po(b,0,n,s),y=1;Be.ZG(b)&&(w+=1,b=a.charCodeAt(1),C=e.get(b),y++);for(let S=y;S<d;S++){const t=S,i=a.charCodeAt(S);let o,r;Be.ZG(i)?(S++,o=0,r=2):(o=e.get(i),r=po(i,w,n,s)),fo(b,C,i,o)&&(f=t,_=w),w+=r,w>v&&((0===f||w-_>u)&&(f=t,_=w-r),g[m]=f,p[m]=_,m++,v=_+u,f=0),b=i,C=o}return 0!==m||i&&0!==i.length?(g[m]=d,p[m]=w,new no(c,l,g,p,h)):null}function po(e,t,i,n){return 9===e?i-t%i:Be.K7(e)||e<32?n:1}function mo(e,t){return t-e%t}function fo(e,t,i,n){return 32!==i&&(2===t&&2!==n||1!==t&&1===n||3===t&&2!==n||3===n&&1!==t)}function _o(e,t,i,n,o){let s=0;if(0!==o){const r=Be.LC(e);if(-1!==r){for(let i=0;i<r;i++){s+=9===e.charCodeAt(i)?mo(s,t):1}const a=3===o?2:2===o?1:0;for(let e=0;e<a;e++){s+=mo(s,t)}s+n>i&&(s=0)}}return s}var vo;const bo=null===(vo=window.trustedTypes)||void 0===vo?void 0:vo.createPolicy("domLineBreaksComputer",{createHTML:e=>e});class Co{static create(){return new Co}constructor(){}createLineBreaksComputer(e,t,i,n){const o=[],s=[];return{addRequest:(e,t,i)=>{o.push(e),s.push(t)},finalize:()=>function(e,t,i,n,o,s){var r;function a(t){const i=s[t];if(i){const n=Ai.gk.applyInjectedText(e[t],i),o=i.map((e=>e.options)),s=i.map((e=>e.column-1));return new no(s,o,[n.length],[],0)}return null}if(-1===n){const t=[];for(let i=0,n=e.length;i<n;i++)t[i]=a(i);return t}const l=Math.round(n*t.typicalHalfwidthCharacterWidth),c=3===o?2:2===o?1:0,d=Math.round(i*c),h=Math.ceil(t.spaceWidth*d),u=document.createElement("div");(0,Ve.N)(u,t);const g=(0,nt.l$)(1e4),p=[],m=[],f=[],_=[],v=[];for(let L=0;L<e.length;L++){const n=Ai.gk.applyInjectedText(e[L],s[L]);let r=0,a=0,c=l;if(0!==o)if(r=Be.LC(n),-1===r)r=0;else{for(let t=0;t<r;t++){a+=9===n.charCodeAt(t)?i-a%i:1}const e=Math.ceil(t.spaceWidth*a);e+t.typicalFullwidthCharacterWidth>l?(r=0,a=0):c=l-e}const d=n.substr(r),u=wo(d,a,i,c,g,h);p[L]=r,m[L]=a,f[L]=d,_[L]=u[0],v[L]=u[1]}const b=g.build(),C=null!==(r=null==bo?void 0:bo.createHTML(b))&&void 0!==r?r:b;u.innerHTML=C,u.style.position="absolute",u.style.top="10000",u.style.wordWrap="break-word",document.body.appendChild(u);const w=document.createRange(),y=Array.prototype.slice.call(u.children,0),S=[];for(let L=0;L<e.length;L++){const e=yo(w,y[L],f[L],_[L]);if(null===e){S[L]=a(L);continue}const t=p[L],i=m[L]+d,n=v[L],o=[];for(let s=0,a=e.length;s<a;s++)o[s]=n[e[s]];if(0!==t)for(let s=0,a=e.length;s<a;s++)e[s]+=t;let r,l;const c=s[L];c?(r=c.map((e=>e.options)),l=c.map((e=>e.column-1))):(r=null,l=null),S[L]=new no(l,r,e,o,i)}return document.body.removeChild(u),S}(o,e,t,i,n,s)}}}function wo(e,t,i,n,o,s){if(0!==s){const e=String(s);o.appendASCIIString('<div style="text-indent: -'),o.appendASCIIString(e),o.appendASCIIString("px; padding-left: "),o.appendASCIIString(e),o.appendASCIIString("px; box-sizing: border-box; width:")}else o.appendASCIIString('<div style="width:');o.appendASCIIString(String(n)),o.appendASCIIString('px;">');const r=e.length;let a=t,l=0;const c=[],d=[];let h=0<r?e.charCodeAt(0):0;o.appendASCIIString("<span>");for(let u=0;u<r;u++){0!==u&&u%16384==0&&o.appendASCIIString("</span><span>"),c[u]=l,d[u]=a;const t=h;h=u+1<r?e.charCodeAt(u+1):0;let n=1,s=1;switch(t){case 9:n=i-a%i,s=n;for(let e=1;e<=n;e++)e<n?o.write1(160):o.appendASCII(32);break;case 32:32===h?o.write1(160):o.appendASCII(32);break;case 60:o.appendASCIIString("<");break;case 62:o.appendASCIIString(">");break;case 38:o.appendASCIIString("&");break;case 0:o.appendASCIIString("�");break;case 65279:case 8232:case 8233:case 133:o.write1(65533);break;default:Be.K7(t)&&s++,t<32?o.write1(9216+t):o.write1(t)}l+=n,a+=s}return o.appendASCIIString("</span>"),c[e.length]=l,d[e.length]=a,o.appendASCIIString("</div>"),[c,d]}function yo(e,t,i,n){if(i.length<=1)return null;const o=Array.prototype.slice.call(t.children,0),s=[];try{So(e,o,n,0,null,i.length-1,null,s)}catch(r){return console.log(r),null}return 0===s.length?null:(s.push(i.length),s)}function So(e,t,i,n,o,s,r,a){if(n===s)return;if(o=o||Lo(e,t,i[n],i[n+1]),r=r||Lo(e,t,i[s],i[s+1]),Math.abs(o[0].top-r[0].top)<=.1)return;if(n+1===s)return void a.push(s);const l=n+(s-n)/2|0,c=Lo(e,t,i[l],i[l+1]);So(e,t,i,n,o,l,c,a),So(e,t,i,l,c,s,r,a)}function Lo(e,t,i,n){return e.setStart(t[i/16384|0].firstChild,i%16384),e.setEnd(t[n/16384|0].firstChild,n%16384),e.getClientRects()}var ko=i(92896),xo=i(4256),Do=i(71922),No=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Eo=function(e,t){return function(i,n){t(i,n,e)}},Io=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let To=0;class Mo{constructor(e,t,i,n,o){this.model=e,this.viewModel=t,this.view=i,this.hasRealView=n,this.listenersToRemove=o}dispose(){(0,u.B9)(this.listenersToRemove),this.model.onBeforeDetached(),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}}let Ao=class e extends u.JT{constructor(e,t,i,n,s,r,a,l,u,g,p,m){super(),this.languageConfigurationService=p,this._deliveryQueue=new h.F3,this._onDidDispose=this._register(new h.Q5),this.onDidDispose=this._onDidDispose.event,this._onDidChangeModelContent=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelContent=this._onDidChangeModelContent.event,this._onDidChangeModelLanguage=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguage=this._onDidChangeModelLanguage.event,this._onDidChangeModelLanguageConfiguration=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguageConfiguration=this._onDidChangeModelLanguageConfiguration.event,this._onDidChangeModelOptions=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelOptions=this._onDidChangeModelOptions.event,this._onDidChangeModelDecorations=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelDecorations=this._onDidChangeModelDecorations.event,this._onDidChangeModelTokens=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelTokens=this._onDidChangeModelTokens.event,this._onDidChangeConfiguration=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._onDidChangeModel=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModel=this._onDidChangeModel.event,this._onDidChangeCursorPosition=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorPosition=this._onDidChangeCursorPosition.event,this._onDidChangeCursorSelection=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorSelection=this._onDidChangeCursorSelection.event,this._onDidAttemptReadOnlyEdit=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidAttemptReadOnlyEdit=this._onDidAttemptReadOnlyEdit.event,this._onDidLayoutChange=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidLayoutChange=this._onDidLayoutChange.event,this._editorTextFocus=this._register(new Ro({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorText=this._editorTextFocus.onDidChangeToTrue,this.onDidBlurEditorText=this._editorTextFocus.onDidChangeToFalse,this._editorWidgetFocus=this._register(new Ro({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorWidget=this._editorWidgetFocus.onDidChangeToTrue,this.onDidBlurEditorWidget=this._editorWidgetFocus.onDidChangeToFalse,this._onWillType=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onWillType=this._onWillType.event,this._onDidType=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidType=this._onDidType.event,this._onDidCompositionStart=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidCompositionStart=this._onDidCompositionStart.event,this._onDidCompositionEnd=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidCompositionEnd=this._onDidCompositionEnd.event,this._onDidPaste=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidPaste=this._onDidPaste.event,this._onMouseUp=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onMouseUp=this._onMouseUp.event,this._onMouseDown=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onMouseDown=this._onMouseDown.event,this._onMouseDrag=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onMouseDrag=this._onMouseDrag.event,this._onMouseDrop=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onMouseDrop=this._onMouseDrop.event,this._onMouseDropCanceled=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onMouseDropCanceled=this._onMouseDropCanceled.event,this._onDropIntoEditor=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDropIntoEditor=this._onDropIntoEditor.event,this._onContextMenu=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onContextMenu=this._onContextMenu.event,this._onMouseMove=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onMouseMove=this._onMouseMove.event,this._onMouseLeave=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onMouseLeave=this._onMouseLeave.event,this._onMouseWheel=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onMouseWheel=this._onMouseWheel.event,this._onKeyUp=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onKeyUp=this._onKeyUp.event,this._onKeyDown=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onKeyDown=this._onKeyDown.event,this._onDidContentSizeChange=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._onDidScrollChange=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidScrollChange=this._onDidScrollChange.event,this._onDidChangeViewZones=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeViewZones=this._onDidChangeViewZones.event,this._onDidChangeHiddenAreas=this._register(new h.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeHiddenAreas=this._onDidChangeHiddenAreas.event,this._bannerDomNode=null,this._dropIntoEditorDecorations=this.createDecorationsCollection();const f=Object.assign({},t);let _;this._domElement=e,this._overflowWidgetsDomNode=f.overflowWidgetsDomNode,delete f.overflowWidgetsDomNode,this._id=++To,this._decorationTypeKeysToIds={},this._decorationTypeSubtypes={},this._telemetryData=i.telemetryData,this._configuration=this._register(this._createConfiguration(i.isSimpleWidget||!1,f,g)),this._register(this._configuration.onDidChange((e=>{this._onDidChangeConfiguration.fire(e);const t=this._configuration.options;if(e.hasChanged(133)){const e=t.get(133);this._onDidLayoutChange.fire(e)}}))),this._contextKeyService=this._register(a.createScoped(this._domElement)),this._notificationService=u,this._codeEditorService=s,this._commandService=r,this._themeService=l,this._register(new Oo(this,this._contextKeyService)),this._register(new Po(this,this._contextKeyService,m)),this._instantiationService=n.createChild(new eo.y([Jn.i6,this._contextKeyService])),this._modelData=null,this._contributions={},this._actions={},this._focusTracker=new Fo(e),this._register(this._focusTracker.onChange((()=>{this._editorWidgetFocus.setValue(this._focusTracker.hasFocus())}))),this._contentWidgets={},this._overlayWidgets={},_=Array.isArray(i.contributions)?i.contributions:o.Uc.getEditorContributions();for(const o of _)if(this._contributions[o.id])(0,d.dL)(new Error(`Cannot have two contributions with the same id ${o.id}`));else try{const e=this._instantiationService.createInstance(o.ctor,this);this._contributions[o.id]=e}catch(b){(0,d.dL)(b)}o.Uc.getEditorActions().forEach((e=>{if(this._actions[e.id])return void(0,d.dL)(new Error(`Cannot have two actions with the same id ${e.id}`));const t=new bn.p(e.id,e.label,e.alias,(0,kt.f6)(e.precondition),(()=>this._instantiationService.invokeFunction((t=>Promise.resolve(e.runEditorCommand(t,this,null))))),this._contextKeyService);this._actions[t.id]=t}));const v=()=>!this._configuration.options.get(83)&&this._configuration.options.get(32).enabled;this._register(new c.eg(this._domElement,{onDragEnter:()=>{},onDragOver:e=>{if(!v())return;const t=this.getTargetAtClientPoint(e.clientX,e.clientY);(null==t?void 0:t.position)&&this.showDropIndicatorAt(t.position)},onDrop:e=>Io(this,void 0,void 0,(function*(){if(!v())return;if(this.removeDropIndicator(),!e.dataTransfer)return;const t=this.getTargetAtClientPoint(e.clientX,e.clientY);(null==t?void 0:t.position)&&this._onDropIntoEditor.fire({position:t.position,event:e})})),onDragLeave:()=>{this.removeDropIndicator()},onDragEnd:()=>{this.removeDropIndicator()}})),this._codeEditorService.addCodeEditor(this)}get isSimpleWidget(){return this._configuration.isSimpleWidget}_createConfiguration(e,t,i){return new T(e,t,this._domElement,i)}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return Cn.g.ICodeEditor}dispose(){this._codeEditorService.removeCodeEditor(this),this._focusTracker.dispose();const e=Object.keys(this._contributions);for(let t=0,i=e.length;t<i;t++){const i=e[t];this._contributions[i].dispose()}this._contributions={},this._actions={},this._contentWidgets={},this._overlayWidgets={},this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),super.dispose()}invokeWithinContext(e){return this._instantiationService.invokeFunction(e)}updateOptions(e){this._configuration.updateOptions(e||{})}getOptions(){return this._configuration.options}getOption(e){return this._configuration.options.get(e)}getRawOptions(){return this._configuration.getRawOptions()}getOverflowWidgetsDomNode(){return this._overflowWidgetsDomNode}getConfiguredWordAtPosition(e){return this._modelData?ko.w.getWordAtPosition(this._modelData.model,this._configuration.options.get(119),e):null}getValue(e=null){if(!this._modelData)return"";const t=!(!e||!e.preserveBOM);let i=0;return e&&e.lineEnding&&"\n"===e.lineEnding?i=1:e&&e.lineEnding&&"\r\n"===e.lineEnding&&(i=2),this._modelData.model.getValue(i,t)}setValue(e){this._modelData&&this._modelData.model.setValue(e)}getModel(){return this._modelData?this._modelData.model:null}setModel(e=null){const t=e;if(null===this._modelData&&null===t)return;if(this._modelData&&this._modelData.model===t)return;const i=this.hasTextFocus(),n=this._detachModel();this._attachModel(t),i&&this.hasModel()&&this.focus();const o={oldModelUrl:n?n.uri:null,newModelUrl:t?t.uri:null};this._removeDecorationTypes(),this._onDidChangeModel.fire(o),this._postDetachModelCleanup(n)}_removeDecorationTypes(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(const e in this._decorationTypeSubtypes){const t=this._decorationTypeSubtypes[e];for(const i in t)this._removeDecorationType(e+"-"+i)}this._decorationTypeSubtypes={}}}getVisibleRanges(){return this._modelData?this._modelData.viewModel.getVisibleRanges():[]}getVisibleRangesPlusViewportAboveBelow(){return this._modelData?this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow():[]}getWhitespaces(){return this._modelData?this._modelData.viewModel.viewLayout.getWhitespaces():[]}static _getVerticalOffsetAfterPosition(e,t,i,n){const o=e.model.validatePosition({lineNumber:t,column:i}),s=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(o);return e.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(s.lineNumber,n)}getTopForLineNumber(t,i=!1){return this._modelData?e._getVerticalOffsetForPosition(this._modelData,t,1,i):-1}getTopForPosition(t,i){return this._modelData?e._getVerticalOffsetForPosition(this._modelData,t,i,!1):-1}static _getVerticalOffsetForPosition(e,t,i,n=!1){const o=e.model.validatePosition({lineNumber:t,column:i}),s=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(o);return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(s.lineNumber,n)}getBottomForLineNumber(t,i=!1){return this._modelData?e._getVerticalOffsetAfterPosition(this._modelData,t,1,i):-1}setHiddenAreas(e){var t;null===(t=this._modelData)||void 0===t||t.viewModel.setHiddenAreas(e.map((e=>fe.e.lift(e))))}getVisibleColumnFromPosition(e){if(!this._modelData)return e.column;const t=this._modelData.model.validatePosition(e),i=this._modelData.model.getOptions().tabSize;return _e.i.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber),t.column,i)+1}getPosition(){return this._modelData?this._modelData.viewModel.getPosition():null}setPosition(e,t="api"){if(this._modelData){if(!me.L.isIPosition(e))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(t,[{selectionStartLineNumber:e.lineNumber,selectionStartColumn:e.column,positionLineNumber:e.lineNumber,positionColumn:e.column}])}}_sendRevealRange(e,t,i,n){if(!this._modelData)return;if(!fe.e.isIRange(e))throw new Error("Invalid arguments");const o=this._modelData.model.validateRange(e),s=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(o);this._modelData.viewModel.revealRange("api",i,s,t,n)}revealLine(e,t=0){this._revealLine(e,0,t)}revealLineInCenter(e,t=0){this._revealLine(e,1,t)}revealLineInCenterIfOutsideViewport(e,t=0){this._revealLine(e,2,t)}revealLineNearTop(e,t=0){this._revealLine(e,5,t)}_revealLine(e,t,i){if("number"!=typeof e)throw new Error("Invalid arguments");this._sendRevealRange(new fe.e(e,1,e,1),t,!1,i)}revealPosition(e,t=0){this._revealPosition(e,0,!0,t)}revealPositionInCenter(e,t=0){this._revealPosition(e,1,!0,t)}revealPositionInCenterIfOutsideViewport(e,t=0){this._revealPosition(e,2,!0,t)}revealPositionNearTop(e,t=0){this._revealPosition(e,5,!0,t)}_revealPosition(e,t,i,n){if(!me.L.isIPosition(e))throw new Error("Invalid arguments");this._sendRevealRange(new fe.e(e.lineNumber,e.column,e.lineNumber,e.column),t,i,n)}getSelection(){return this._modelData?this._modelData.viewModel.getSelection():null}getSelections(){return this._modelData?this._modelData.viewModel.getSelections():null}setSelection(e,t="api"){const i=B.Y.isISelection(e),n=fe.e.isIRange(e);if(!i&&!n)throw new Error("Invalid arguments");if(i)this._setSelectionImpl(e,t);else if(n){const i={selectionStartLineNumber:e.startLineNumber,selectionStartColumn:e.startColumn,positionLineNumber:e.endLineNumber,positionColumn:e.endColumn};this._setSelectionImpl(i,t)}}_setSelectionImpl(e,t){if(!this._modelData)return;const i=new B.Y(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn);this._modelData.viewModel.setSelections(t,[i])}revealLines(e,t,i=0){this._revealLines(e,t,0,i)}revealLinesInCenter(e,t,i=0){this._revealLines(e,t,1,i)}revealLinesInCenterIfOutsideViewport(e,t,i=0){this._revealLines(e,t,2,i)}revealLinesNearTop(e,t,i=0){this._revealLines(e,t,5,i)}_revealLines(e,t,i,n){if("number"!=typeof e||"number"!=typeof t)throw new Error("Invalid arguments");this._sendRevealRange(new fe.e(e,1,t,1),i,!1,n)}revealRange(e,t=0,i=!1,n=!0){this._revealRange(e,i?1:0,n,t)}revealRangeInCenter(e,t=0){this._revealRange(e,1,!0,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this._revealRange(e,2,!0,t)}revealRangeNearTop(e,t=0){this._revealRange(e,5,!0,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this._revealRange(e,6,!0,t)}revealRangeAtTop(e,t=0){this._revealRange(e,3,!0,t)}_revealRange(e,t,i,n){if(!fe.e.isIRange(e))throw new Error("Invalid arguments");this._sendRevealRange(fe.e.lift(e),t,i,n)}setSelections(e,t="api",i=0){if(this._modelData){if(!e||0===e.length)throw new Error("Invalid arguments");for(let t=0,i=e.length;t<i;t++)if(!B.Y.isISelection(e[t]))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(t,e,i)}}getContentWidth(){return this._modelData?this._modelData.viewModel.viewLayout.getContentWidth():-1}getScrollWidth(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollWidth():-1}getScrollLeft(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollLeft():-1}getContentHeight(){return this._modelData?this._modelData.viewModel.viewLayout.getContentHeight():-1}getScrollHeight(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollHeight():-1}getScrollTop(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollTop():-1}setScrollLeft(e,t=1){if(this._modelData){if("number"!=typeof e)throw new Error("Invalid arguments");this._modelData.viewModel.viewLayout.setScrollPosition({scrollLeft:e},t)}}setScrollTop(e,t=1){if(this._modelData){if("number"!=typeof e)throw new Error("Invalid arguments");this._modelData.viewModel.viewLayout.setScrollPosition({scrollTop:e},t)}}setScrollPosition(e,t=1){this._modelData&&this._modelData.viewModel.viewLayout.setScrollPosition(e,t)}saveViewState(){if(!this._modelData)return null;const e={},t=Object.keys(this._contributions);for(const i of t){const t=this._contributions[i];"function"==typeof t.saveViewState&&(e[i]=t.saveViewState())}return{cursorState:this._modelData.viewModel.saveCursorState(),viewState:this._modelData.viewModel.saveState(),contributionsState:e}}restoreViewState(e){if(!this._modelData||!this._modelData.hasRealView)return;const t=e;if(t&&t.cursorState&&t.viewState){const e=t.cursorState;Array.isArray(e)?e.length>0&&this._modelData.viewModel.restoreCursorState(e):this._modelData.viewModel.restoreCursorState([e]);const i=t.contributionsState||{},n=Object.keys(this._contributions);for(let t=0,s=n.length;t<s;t++){const e=n[t],o=this._contributions[e];"function"==typeof o.restoreViewState&&o.restoreViewState(i[e])}const o=this._modelData.viewModel.reduceRestoreState(t.viewState);this._modelData.view.restoreState(o)}}getContribution(e){return this._contributions[e]||null}getActions(){const e=[],t=Object.keys(this._actions);for(let i=0,n=t.length;i<n;i++){const n=t[i];e.push(this._actions[n])}return e}getSupportedActions(){let e=this.getActions();return e=e.filter((e=>e.isSupported())),e}getAction(e){return this._actions[e]||null}trigger(e,t,i){switch(i=i||{},t){case"compositionStart":return void this._startComposition();case"compositionEnd":return void this._endComposition(e);case"type":{const t=i;return void this._type(e,t.text||"")}case"replacePreviousChar":{const t=i;return void this._compositionType(e,t.text||"",t.replaceCharCnt||0,0,0)}case"compositionType":{const t=i;return void this._compositionType(e,t.text||"",t.replacePrevCharCnt||0,t.replaceNextCharCnt||0,t.positionDelta||0)}case"paste":{const t=i;return void this._paste(e,t.text||"",t.pasteOnNewLine||!1,t.multicursorText||null,t.mode||null)}case"cut":return void this._cut(e)}const n=this.getAction(t);n?Promise.resolve(n.run()).then(void 0,d.dL):this._modelData&&(this._triggerEditorCommand(e,t,i)||this._triggerCommand(t,i))}_triggerCommand(e,t){this._commandService.executeCommand(e,t)}_startComposition(){this._modelData&&(this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}_endComposition(e){this._modelData&&(this._modelData.viewModel.endComposition(e),this._onDidCompositionEnd.fire())}_type(e,t){this._modelData&&0!==t.length&&("keyboard"===e&&this._onWillType.fire(t),this._modelData.viewModel.type(t,e),"keyboard"===e&&this._onDidType.fire(t))}_compositionType(e,t,i,n,o){this._modelData&&this._modelData.viewModel.compositionType(t,i,n,o,e)}_paste(e,t,i,n,o){if(!this._modelData||0===t.length)return;const s=this._modelData.viewModel,r=s.getSelection().getStartPosition();s.paste(t,i,n,e);const a=s.getSelection().getStartPosition();"keyboard"===e&&this._onDidPaste.fire({range:new fe.e(r.lineNumber,r.column,a.lineNumber,a.column),languageId:o})}_cut(e){this._modelData&&this._modelData.viewModel.cut(e)}_triggerEditorCommand(e,t,i){const n=o.Uc.getEditorCommand(t);return!!n&&((i=i||{}).source=e,this._instantiationService.invokeFunction((e=>{Promise.resolve(n.runEditorCommand(e,this,i)).then(void 0,d.dL)})),!0)}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!!this._modelData&&(!this._configuration.options.get(83)&&(this._modelData.model.pushStackElement(),!0))}popUndoStop(){return!!this._modelData&&(!this._configuration.options.get(83)&&(this._modelData.model.popStackElement(),!0))}executeEdits(e,t,i){if(!this._modelData)return!1;if(this._configuration.options.get(83))return!1;let n;return n=i?Array.isArray(i)?()=>i:i:()=>null,this._modelData.viewModel.executeEdits(e,t,n),!0}executeCommand(e,t){this._modelData&&this._modelData.viewModel.executeCommand(t,e)}executeCommands(e,t){this._modelData&&this._modelData.viewModel.executeCommands(t,e)}createDecorationsCollection(e){return new Bo(this,e)}changeDecorations(e){return this._modelData?this._modelData.model.changeDecorations(e,this._id):null}getLineDecorations(e){return this._modelData?this._modelData.model.getLineDecorations(e,this._id,(0,k.$J)(this._configuration.options)):null}getDecorationsInRange(e){return this._modelData?this._modelData.model.getDecorationsInRange(e,this._id,(0,k.$J)(this._configuration.options)):null}deltaDecorations(e,t){return this._modelData?0===e.length&&0===t.length?e:this._modelData.model.deltaDecorations(e,t,this._id):[]}removeDecorations(e){this._modelData&&0!==e.length&&this._modelData.model.changeDecorations((t=>{t.deltaDecorations(e,[])}))}removeDecorationsByType(e){const t=this._decorationTypeKeysToIds[e];t&&this.deltaDecorations(t,[]),this._decorationTypeKeysToIds.hasOwnProperty(e)&&delete this._decorationTypeKeysToIds[e],this._decorationTypeSubtypes.hasOwnProperty(e)&&delete this._decorationTypeSubtypes[e]}getLayoutInfo(){return this._configuration.options.get(133)}createOverviewRuler(e){return this._modelData&&this._modelData.hasRealView?this._modelData.view.createOverviewRuler(e):null}getContainerDomNode(){return this._domElement}getDomNode(){return this._modelData&&this._modelData.hasRealView?this._modelData.view.domNode.domNode:null}delegateVerticalScrollbarPointerDown(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.delegateVerticalScrollbarPointerDown(e)}layout(e){this._configuration.observeContainer(e),this.render()}focus(){this._modelData&&this._modelData.hasRealView&&this._modelData.view.focus()}hasTextFocus(){return!(!this._modelData||!this._modelData.hasRealView)&&this._modelData.view.isFocused()}hasWidgetFocus(){return this._focusTracker&&this._focusTracker.hasFocus()}addContentWidget(e){const t={widget:e,position:e.getPosition()};this._contentWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting a content widget with the same id."),this._contentWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(t)}layoutContentWidget(e){const t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){const i=this._contentWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(i)}}removeContentWidget(e){const t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){const e=this._contentWidgets[t];delete this._contentWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(e)}}addOverlayWidget(e){const t={widget:e,position:e.getPosition()};this._overlayWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting an overlay widget with the same id."),this._overlayWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addOverlayWidget(t)}layoutOverlayWidget(e){const t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){const i=this._overlayWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(i)}}removeOverlayWidget(e){const t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){const e=this._overlayWidgets[t];delete this._overlayWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(e)}}changeViewZones(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.change(e)}getTargetAtClientPoint(e,t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getTargetAtClientPoint(e,t):null}getScrolledVisiblePosition(t){if(!this._modelData||!this._modelData.hasRealView)return null;const i=this._modelData.model.validatePosition(t),n=this._configuration.options,o=n.get(133);return{top:e._getVerticalOffsetForPosition(this._modelData,i.lineNumber,i.column)-this.getScrollTop(),left:this._modelData.view.getOffsetForColumn(i.lineNumber,i.column)+o.glyphMarginWidth+o.lineNumbersWidth+o.decorationsWidth-this.getScrollLeft(),height:n.get(61)}}getOffsetForColumn(e,t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getOffsetForColumn(e,t):-1}render(e=!1){this._modelData&&this._modelData.hasRealView&&this._modelData.view.render(!0,e)}setAriaOptions(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.setAriaOptions(e)}applyFontInfo(e){(0,Ve.N)(e,this._configuration.options.get(46))}setBanner(e,t){this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),this._bannerDomNode=e,this._configuration.setReservedHeight(e?t:0),this._bannerDomNode&&this._domElement.prepend(this._bannerDomNode)}_attachModel(e){if(!e)return void(this._modelData=null);const t=[];this._domElement.setAttribute("data-mode-id",e.getLanguageId()),this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()),this._configuration.setModelLineCount(e.getLineCount()),e.onBeforeAttached();const i=new Gn(this._id,this._configuration,e,Co.create(),ao.create(this._configuration.options),(e=>c.jL(e)),this.languageConfigurationService,this._themeService);t.push(e.onWillDispose((()=>this.setModel(null)))),t.push(i.onEvent((t=>{switch(t.kind){case 0:this._onDidContentSizeChange.fire(t);break;case 1:this._editorTextFocus.setValue(t.hasFocus);break;case 2:this._onDidScrollChange.fire(t);break;case 3:this._onDidChangeViewZones.fire();break;case 4:this._onDidChangeHiddenAreas.fire();break;case 5:this._onDidAttemptReadOnlyEdit.fire();break;case 6:{t.reachedMaxCursorCount&&this._notificationService.warn(l.NC("cursors.maximum","The number of cursors has been limited to {0}.",pn.MAX_CURSOR_COUNT));const e=[];for(let o=0,s=t.selections.length;o<s;o++)e[o]=t.selections[o].getPosition();const i={position:e[0],secondaryPositions:e.slice(1),reason:t.reason,source:t.source};this._onDidChangeCursorPosition.fire(i);const n={selection:t.selections[0],secondarySelections:t.selections.slice(1),modelVersionId:t.modelVersionId,oldSelections:t.oldSelections,oldModelVersionId:t.oldModelVersionId,source:t.source,reason:t.reason};this._onDidChangeCursorSelection.fire(n);break}case 7:this._onDidChangeModelDecorations.fire(t.event);break;case 8:this._domElement.setAttribute("data-mode-id",e.getLanguageId()),this._onDidChangeModelLanguage.fire(t.event);break;case 9:this._onDidChangeModelLanguageConfiguration.fire(t.event);break;case 10:this._onDidChangeModelContent.fire(t.event);break;case 11:this._onDidChangeModelOptions.fire(t.event);break;case 12:this._onDidChangeModelTokens.fire(t.event)}})));const[n,o]=this._createView(i);if(o){this._domElement.appendChild(n.domNode.domNode);let t=Object.keys(this._contentWidgets);for(let e=0,i=t.length;e<i;e++){const i=t[e];n.addContentWidget(this._contentWidgets[i])}t=Object.keys(this._overlayWidgets);for(let e=0,i=t.length;e<i;e++){const i=t[e];n.addOverlayWidget(this._overlayWidgets[i])}n.render(!1,!0),n.domNode.domNode.setAttribute("data-uri",e.uri.toString())}this._modelData=new Mo(e,i,n,o,t)}_createView(e){let t;t=this.isSimpleWidget?{paste:(e,t,i,n)=>{this._paste("keyboard",e,t,i,n)},type:e=>{this._type("keyboard",e)},compositionType:(e,t,i,n)=>{this._compositionType("keyboard",e,t,i,n)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition("keyboard")},cut:()=>{this._cut("keyboard")}}:{paste:(e,t,i,n)=>{const o={text:e,pasteOnNewLine:t,multicursorText:i,mode:n};this._commandService.executeCommand("paste",o)},type:e=>{const t={text:e};this._commandService.executeCommand("type",t)},compositionType:(e,t,i,n)=>{if(i||n){const o={text:e,replacePrevCharCnt:t,replaceNextCharCnt:i,positionDelta:n};this._commandService.executeCommand("compositionType",o)}else{const i={text:e,replaceCharCnt:t};this._commandService.executeCommand("replacePreviousChar",i)}},startComposition:()=>{this._commandService.executeCommand("compositionStart",{})},endComposition:()=>{this._commandService.executeCommand("compositionEnd",{})},cut:()=>{this._commandService.executeCommand("cut",{})}};const i=new tt(e.coordinatesConverter);i.onKeyDown=e=>this._onKeyDown.fire(e),i.onKeyUp=e=>this._onKeyUp.fire(e),i.onContextMenu=e=>this._onContextMenu.fire(e),i.onMouseMove=e=>this._onMouseMove.fire(e),i.onMouseLeave=e=>this._onMouseLeave.fire(e),i.onMouseDown=e=>this._onMouseDown.fire(e),i.onMouseUp=e=>this._onMouseUp.fire(e),i.onMouseDrag=e=>this._onMouseDrag.fire(e),i.onMouseDrop=e=>this._onMouseDrop.fire(e),i.onMouseDropCanceled=e=>this._onMouseDropCanceled.fire(e),i.onMouseWheel=e=>this._onMouseWheel.fire(e);return[new xi(t,this._configuration,this._themeService.getColorTheme(),e,i,this._overflowWidgetsDomNode),!0]}_postDetachModelCleanup(e){null==e||e.removeAllDecorationsWithOwnerId(this._id)}_detachModel(){if(!this._modelData)return null;const e=this._modelData.model,t=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null,this._domElement.removeAttribute("data-mode-id"),t&&this._domElement.contains(t)&&this._domElement.removeChild(t),this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),e}_removeDecorationType(e){this._codeEditorService.removeDecorationType(e)}hasModel(){return null!==this._modelData}showDropIndicatorAt(t){const i=[{range:new fe.e(t.lineNumber,t.column,t.lineNumber,t.column),options:e.dropIntoEditorDecorationOptions}];this._dropIntoEditorDecorations.set(i),this.revealPosition(t,1)}removeDropIndicator(){this._dropIntoEditorDecorations.clear()}};Ao.dropIntoEditorDecorationOptions=yn.qx.register({description:"workbench-dnd-target",className:"dnd-target"}),Ao=No([Eo(3,Xn.TG),Eo(4,F.$),Eo(5,Yn.Hy),Eo(6,Jn.i6),Eo(7,je.XE),Eo(8,to.lT),Eo(9,N.F),Eo(10,xo.c_),Eo(11,Do.p)],Ao);class Ro extends u.JT{constructor(e){super(),this._emitterOptions=e,this._onDidChangeToTrue=this._register(new h.Q5(this._emitterOptions)),this.onDidChangeToTrue=this._onDidChangeToTrue.event,this._onDidChangeToFalse=this._register(new h.Q5(this._emitterOptions)),this.onDidChangeToFalse=this._onDidChangeToFalse.event,this._value=0}setValue(e){const t=e?2:1;this._value!==t&&(this._value=t,2===this._value?this._onDidChangeToTrue.fire():1===this._value&&this._onDidChangeToFalse.fire())}}class Oo extends u.JT{constructor(e,t){super(),this._editor=e,t.createKey("editorId",e.getId()),this._editorSimpleInput=wn.u.editorSimpleInput.bindTo(t),this._editorFocus=wn.u.focus.bindTo(t),this._textInputFocus=wn.u.textInputFocus.bindTo(t),this._editorTextFocus=wn.u.editorTextFocus.bindTo(t),this._editorTabMovesFocus=wn.u.tabMovesFocus.bindTo(t),this._editorReadonly=wn.u.readOnly.bindTo(t),this._inDiffEditor=wn.u.inDiffEditor.bindTo(t),this._editorColumnSelection=wn.u.columnSelection.bindTo(t),this._hasMultipleSelections=wn.u.hasMultipleSelections.bindTo(t),this._hasNonEmptySelection=wn.u.hasNonEmptySelection.bindTo(t),this._canUndo=wn.u.canUndo.bindTo(t),this._canRedo=wn.u.canRedo.bindTo(t),this._register(this._editor.onDidChangeConfiguration((()=>this._updateFromConfig()))),this._register(this._editor.onDidChangeCursorSelection((()=>this._updateFromSelection()))),this._register(this._editor.onDidFocusEditorWidget((()=>this._updateFromFocus()))),this._register(this._editor.onDidBlurEditorWidget((()=>this._updateFromFocus()))),this._register(this._editor.onDidFocusEditorText((()=>this._updateFromFocus()))),this._register(this._editor.onDidBlurEditorText((()=>this._updateFromFocus()))),this._register(this._editor.onDidChangeModel((()=>this._updateFromModel()))),this._register(this._editor.onDidChangeConfiguration((()=>this._updateFromModel()))),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){const e=this._editor.getOptions();this._editorTabMovesFocus.set(e.get(132)),this._editorReadonly.set(e.get(83)),this._inDiffEditor.set(e.get(56)),this._editorColumnSelection.set(e.get(18))}_updateFromSelection(){const e=this._editor.getSelections();e?(this._hasMultipleSelections.set(e.length>1),this._hasNonEmptySelection.set(e.some((e=>!e.isEmpty())))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}_updateFromFocus(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}_updateFromModel(){const e=this._editor.getModel();this._canUndo.set(Boolean(e&&e.canUndo())),this._canRedo.set(Boolean(e&&e.canRedo()))}}class Po extends u.JT{constructor(e,t,i){super(),this._editor=e,this._contextKeyService=t,this._languageFeaturesService=i,this._langId=wn.u.languageId.bindTo(t),this._hasCompletionItemProvider=wn.u.hasCompletionItemProvider.bindTo(t),this._hasCodeActionsProvider=wn.u.hasCodeActionsProvider.bindTo(t),this._hasCodeLensProvider=wn.u.hasCodeLensProvider.bindTo(t),this._hasDefinitionProvider=wn.u.hasDefinitionProvider.bindTo(t),this._hasDeclarationProvider=wn.u.hasDeclarationProvider.bindTo(t),this._hasImplementationProvider=wn.u.hasImplementationProvider.bindTo(t),this._hasTypeDefinitionProvider=wn.u.hasTypeDefinitionProvider.bindTo(t),this._hasHoverProvider=wn.u.hasHoverProvider.bindTo(t),this._hasDocumentHighlightProvider=wn.u.hasDocumentHighlightProvider.bindTo(t),this._hasDocumentSymbolProvider=wn.u.hasDocumentSymbolProvider.bindTo(t),this._hasReferenceProvider=wn.u.hasReferenceProvider.bindTo(t),this._hasRenameProvider=wn.u.hasRenameProvider.bindTo(t),this._hasSignatureHelpProvider=wn.u.hasSignatureHelpProvider.bindTo(t),this._hasInlayHintsProvider=wn.u.hasInlayHintsProvider.bindTo(t),this._hasDocumentFormattingProvider=wn.u.hasDocumentFormattingProvider.bindTo(t),this._hasDocumentSelectionFormattingProvider=wn.u.hasDocumentSelectionFormattingProvider.bindTo(t),this._hasMultipleDocumentFormattingProvider=wn.u.hasMultipleDocumentFormattingProvider.bindTo(t),this._hasMultipleDocumentSelectionFormattingProvider=wn.u.hasMultipleDocumentSelectionFormattingProvider.bindTo(t),this._isInWalkThrough=wn.u.isInWalkThroughSnippet.bindTo(t);const n=()=>this._update();this._register(e.onDidChangeModel(n)),this._register(e.onDidChangeModelLanguage(n)),this._register(i.completionProvider.onDidChange(n)),this._register(i.codeActionProvider.onDidChange(n)),this._register(i.codeLensProvider.onDidChange(n)),this._register(i.definitionProvider.onDidChange(n)),this._register(i.declarationProvider.onDidChange(n)),this._register(i.implementationProvider.onDidChange(n)),this._register(i.typeDefinitionProvider.onDidChange(n)),this._register(i.hoverProvider.onDidChange(n)),this._register(i.documentHighlightProvider.onDidChange(n)),this._register(i.documentSymbolProvider.onDidChange(n)),this._register(i.referenceProvider.onDidChange(n)),this._register(i.renameProvider.onDidChange(n)),this._register(i.documentFormattingEditProvider.onDidChange(n)),this._register(i.documentRangeFormattingEditProvider.onDidChange(n)),this._register(i.signatureHelpProvider.onDidChange(n)),this._register(i.inlayHintsProvider.onDidChange(n)),n()}dispose(){super.dispose()}reset(){this._contextKeyService.bufferChangeEvents((()=>{this._langId.reset(),this._hasCompletionItemProvider.reset(),this._hasCodeActionsProvider.reset(),this._hasCodeLensProvider.reset(),this._hasDefinitionProvider.reset(),this._hasDeclarationProvider.reset(),this._hasImplementationProvider.reset(),this._hasTypeDefinitionProvider.reset(),this._hasHoverProvider.reset(),this._hasDocumentHighlightProvider.reset(),this._hasDocumentSymbolProvider.reset(),this._hasReferenceProvider.reset(),this._hasRenameProvider.reset(),this._hasDocumentFormattingProvider.reset(),this._hasDocumentSelectionFormattingProvider.reset(),this._hasSignatureHelpProvider.reset(),this._isInWalkThrough.reset()}))}_update(){const e=this._editor.getModel();e?this._contextKeyService.bufferChangeEvents((()=>{this._langId.set(e.getLanguageId()),this._hasCompletionItemProvider.set(this._languageFeaturesService.completionProvider.has(e)),this._hasCodeActionsProvider.set(this._languageFeaturesService.codeActionProvider.has(e)),this._hasCodeLensProvider.set(this._languageFeaturesService.codeLensProvider.has(e)),this._hasDefinitionProvider.set(this._languageFeaturesService.definitionProvider.has(e)),this._hasDeclarationProvider.set(this._languageFeaturesService.declarationProvider.has(e)),this._hasImplementationProvider.set(this._languageFeaturesService.implementationProvider.has(e)),this._hasTypeDefinitionProvider.set(this._languageFeaturesService.typeDefinitionProvider.has(e)),this._hasHoverProvider.set(this._languageFeaturesService.hoverProvider.has(e)),this._hasDocumentHighlightProvider.set(this._languageFeaturesService.documentHighlightProvider.has(e)),this._hasDocumentSymbolProvider.set(this._languageFeaturesService.documentSymbolProvider.has(e)),this._hasReferenceProvider.set(this._languageFeaturesService.referenceProvider.has(e)),this._hasRenameProvider.set(this._languageFeaturesService.renameProvider.has(e)),this._hasSignatureHelpProvider.set(this._languageFeaturesService.signatureHelpProvider.has(e)),this._hasInlayHintsProvider.set(this._languageFeaturesService.inlayHintsProvider.has(e)),this._hasDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.has(e)||this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasMultipleDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.all(e).length+this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._hasMultipleDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._isInWalkThrough.set(e.uri.scheme===g.lg.walkThroughSnippet)})):this.reset()}}class Fo extends u.JT{constructor(e){super(),this._onChange=this._register(new h.Q5),this.onChange=this._onChange.event,this._hasFocus=!1,this._domFocusTracker=this._register(c.go(e)),this._register(this._domFocusTracker.onDidFocus((()=>{this._hasFocus=!0,this._onChange.fire(void 0)}))),this._register(this._domFocusTracker.onDidBlur((()=>{this._hasFocus=!1,this._onChange.fire(void 0)})))}hasFocus(){return this._hasFocus}}class Bo{constructor(e,t){this._editor=e,this._decorationIds=[],this._isChangingDecorations=!1,Array.isArray(t)&&t.length>0&&this.set(t)}get length(){return this._decorationIds.length}onDidChange(e,t,i){return this._editor.onDidChangeModelDecorations((i=>{this._isChangingDecorations||e.call(t,i)}),i)}getRange(e){return this._editor.hasModel()?e>=this._decorationIds.length?null:this._editor.getModel().getDecorationRange(this._decorationIds[e]):null}getRanges(){if(!this._editor.hasModel())return[];const e=this._editor.getModel(),t=[];for(const i of this._decorationIds){const n=e.getDecorationRange(i);n&&t.push(n)}return t}has(e){return this._decorationIds.includes(e.id)}clear(){0!==this._decorationIds.length&&this.set([])}set(e){try{this._isChangingDecorations=!0,this._editor.changeDecorations((t=>{this._decorationIds=t.deltaDecorations(this._decorationIds,e)}))}finally{this._isChangingDecorations=!1}}}const Vo=encodeURIComponent("<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 3' enable-background='new 0 0 6 3' height='3' width='6'><g fill='"),Wo=encodeURIComponent("'><polygon points='5.5,0 2.5,3 1.1,3 4.1,0'/><polygon points='4,0 6,2 6,0.6 5.4,0'/><polygon points='0,2 1,3 2.4,3 0,0.6'/></g></svg>");function Ho(e){return Vo+encodeURIComponent(e.toString())+Wo}const zo=encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" height="3" width="12"><g fill="'),jo=encodeURIComponent('"><circle cx="1" cy="1" r="1"/><circle cx="5" cy="1" r="1"/><circle cx="9" cy="1" r="1"/></g></svg>');(0,je.Ic)(((e,t)=>{const i=e.getColor(Ct.b6y);i&&t.addRule(`.monaco-editor .squiggly-error { border-bottom: 4px double ${i}; }`);const n=e.getColor(Ct.lXJ);n&&t.addRule(`.monaco-editor .squiggly-error { background: url("data:image/svg+xml,${Ho(n)}") repeat-x bottom left; }`);const o=e.getColor(Ct.L_H);o&&t.addRule(`.monaco-editor .squiggly-error::before { display: block; content: ''; width: 100%; height: 100%; background: ${o}; }`);const s=e.getColor(Ct.pW3);s&&t.addRule(`.monaco-editor .squiggly-warning { border-bottom: 4px double ${s}; }`);const r=e.getColor(Ct.uoC);r&&t.addRule(`.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,${Ho(r)}") repeat-x bottom left; }`);const a=e.getColor(Ct.gpD);a&&t.addRule(`.monaco-editor .squiggly-warning::before { display: block; content: ''; width: 100%; height: 100%; background: ${a}; }`);const l=e.getColor(Ct.T83);l&&t.addRule(`.monaco-editor .squiggly-info { border-bottom: 4px double ${l}; }`);const c=e.getColor(Ct.c63);c&&t.addRule(`.monaco-editor .squiggly-info { background: url("data:image/svg+xml,${Ho(c)}") repeat-x bottom left; }`);const d=e.getColor(Ct.few);d&&t.addRule(`.monaco-editor .squiggly-info::before { display: block; content: ''; width: 100%; height: 100%; background: ${d}; }`);const h=e.getColor(Ct.fEB);h&&t.addRule(`.monaco-editor .squiggly-hint { border-bottom: 2px dotted ${h}; }`);const u=e.getColor(Ct.Dut);u&&t.addRule(`.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,${function(e){return zo+encodeURIComponent(e.toString())+jo}(u)}") no-repeat bottom left; }`);const g=e.getColor(ze.zu);g&&t.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${g.rgba.a}; }`);const p=e.getColor(ze.kp);p&&t.addRule(`.monaco-editor.showUnused .squiggly-unnecessary { border-bottom: 2px dashed ${p}; }`);const m=e.getColor(Ct.NOs)||"inherit";t.addRule(`.monaco-editor.showDeprecated .squiggly-inline-deprecated { text-decoration: line-through; text-decoration-color: ${m}}`)}))},14869:(e,t,i)=>{"use strict";i.d(t,{p:()=>_e});var n,o=i(63580),s=i(65321),r=i(35146),a=i(38626),l=i(73098),c=i(15393),d=i(4669),h=i(5976),u=i(52136),g=i(43407),p=i(11640),m=i(27982),f=i(90317),_=i(63161),v=i(74741),b=i(16830),C=i(64141),w=i(77378),y=i(50187),S=i(8625),L=i(72202),k=i(1118),x=i(38819),D=i(73910),N=i(97781),E=i(73046),I=i(59554),T=i(72042),M=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},A=function(e,t){return function(i,n){t(i,n,e)}},R=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class O{constructor(e,t,i,n){this.originalLineStart=e,this.originalLineEnd=t,this.modifiedLineStart=i,this.modifiedLineEnd=n}getType(){return 0===this.originalLineStart?1:0===this.modifiedLineStart?2:0}}class P{constructor(e){this.entries=e}}const F=(0,I.q5)("diff-review-insert",E.lA.add,o.NC("diffReviewInsertIcon","Icon for 'Insert' in diff review.")),B=(0,I.q5)("diff-review-remove",E.lA.remove,o.NC("diffReviewRemoveIcon","Icon for 'Remove' in diff review.")),V=(0,I.q5)("diff-review-close",E.lA.close,o.NC("diffReviewCloseIcon","Icon for 'Close' in diff review."));let W=class e extends h.JT{constructor(e,t){super(),this._languageService=t,this._width=0,this._diffEditor=e,this._isVisible=!1,this.shadow=(0,a.X)(document.createElement("div")),this.shadow.setClassName("diff-review-shadow"),this.actionBarContainer=(0,a.X)(document.createElement("div")),this.actionBarContainer.setClassName("diff-review-actions"),this._actionBar=this._register(new f.o(this.actionBarContainer.domNode)),this._actionBar.push(new v.aU("diffreview.close",o.NC("label.close","Close"),"close-diff-review "+N.kS.asClassName(V),!0,(()=>R(this,void 0,void 0,(function*(){return this.hide()})))),{label:!1,icon:!0}),this.domNode=(0,a.X)(document.createElement("div")),this.domNode.setClassName("diff-review monaco-editor-background"),this._content=(0,a.X)(document.createElement("div")),this._content.setClassName("diff-review-content"),this._content.setAttribute("role","code"),this.scrollbar=this._register(new _.s$(this._content.domNode,{})),this.domNode.domNode.appendChild(this.scrollbar.getDomNode()),this._register(e.onDidUpdateDiff((()=>{this._isVisible&&(this._diffs=this._compute(),this._render())}))),this._register(e.getModifiedEditor().onDidChangeCursorPosition((()=>{this._isVisible&&this._render()}))),this._register(s.mu(this.domNode.domNode,"click",(e=>{e.preventDefault();const t=s.Fx(e.target,"diff-review-row");t&&this._goToRow(t)}))),this._register(s.mu(this.domNode.domNode,"keydown",(e=>{(e.equals(18)||e.equals(2066)||e.equals(530))&&(e.preventDefault(),this._goToRow(this._getNextRow())),(e.equals(16)||e.equals(2064)||e.equals(528))&&(e.preventDefault(),this._goToRow(this._getPrevRow())),(e.equals(9)||e.equals(2057)||e.equals(521)||e.equals(1033))&&(e.preventDefault(),this.hide()),(e.equals(10)||e.equals(3))&&(e.preventDefault(),this.accept())}))),this._diffs=[],this._currentDiff=null}prev(){let e=0;if(this._isVisible||(this._diffs=this._compute()),this._isVisible){let t=-1;for(let e=0,i=this._diffs.length;e<i;e++)if(this._diffs[e]===this._currentDiff){t=e;break}e=this._diffs.length+t-1}else e=this._findDiffIndex(this._diffEditor.getPosition());if(0===this._diffs.length)return;e%=this._diffs.length;const t=this._diffs[e].entries;this._diffEditor.setPosition(new y.L(t[0].modifiedLineStart,1)),this._diffEditor.setSelection({startColumn:1,startLineNumber:t[0].modifiedLineStart,endColumn:1073741824,endLineNumber:t[t.length-1].modifiedLineEnd}),this._isVisible=!0,this._diffEditor.doLayout(),this._render(),this._goToRow(this._getNextRow())}next(){let e=0;if(this._isVisible||(this._diffs=this._compute()),this._isVisible){let t=-1;for(let e=0,i=this._diffs.length;e<i;e++)if(this._diffs[e]===this._currentDiff){t=e;break}e=t+1}else e=this._findDiffIndex(this._diffEditor.getPosition());if(0===this._diffs.length)return;e%=this._diffs.length;const t=this._diffs[e].entries;this._diffEditor.setPosition(new y.L(t[0].modifiedLineStart,1)),this._diffEditor.setSelection({startColumn:1,startLineNumber:t[0].modifiedLineStart,endColumn:1073741824,endLineNumber:t[t.length-1].modifiedLineEnd}),this._isVisible=!0,this._diffEditor.doLayout(),this._render(),this._goToRow(this._getNextRow())}accept(){let e=-1;const t=this._getCurrentFocusedRow();if(t){const i=parseInt(t.getAttribute("data-line"),10);isNaN(i)||(e=i)}this.hide(),-1!==e&&(this._diffEditor.setPosition(new y.L(e,1)),this._diffEditor.revealPosition(new y.L(e,1),1))}hide(){this._isVisible=!1,this._diffEditor.updateOptions({readOnly:!1}),this._diffEditor.focus(),this._diffEditor.doLayout(),this._render()}_getPrevRow(){const e=this._getCurrentFocusedRow();return e?e.previousElementSibling?e.previousElementSibling:e:this._getFirstRow()}_getNextRow(){const e=this._getCurrentFocusedRow();return e?e.nextElementSibling?e.nextElementSibling:e:this._getFirstRow()}_getFirstRow(){return this.domNode.domNode.querySelector(".diff-review-row")}_getCurrentFocusedRow(){const e=document.activeElement;return e&&/diff-review-row/.test(e.className)?e:null}_goToRow(e){const t=this._getCurrentFocusedRow();e.tabIndex=0,e.focus(),t&&t!==e&&(t.tabIndex=-1),this.scrollbar.scanDomNode()}isVisible(){return this._isVisible}layout(e,t,i){this._width=t,this.shadow.setTop(e-6),this.shadow.setWidth(t),this.shadow.setHeight(this._isVisible?6:0),this.domNode.setTop(e),this.domNode.setWidth(t),this.domNode.setHeight(i),this._content.setHeight(i),this._content.setWidth(t),this._isVisible?(this.actionBarContainer.setAttribute("aria-hidden","false"),this.actionBarContainer.setDisplay("block")):(this.actionBarContainer.setAttribute("aria-hidden","true"),this.actionBarContainer.setDisplay("none"))}_compute(){const t=this._diffEditor.getLineChanges();if(!t||0===t.length)return[];const i=this._diffEditor.getOriginalEditor().getModel(),n=this._diffEditor.getModifiedEditor().getModel();return i&&n?e._mergeAdjacent(t,i.getLineCount(),n.getLineCount()):[]}static _mergeAdjacent(e,t,i){if(!e||0===e.length)return[];const n=[];let o=0;for(let l=0,c=e.length;l<c;l++){const s=e[l],r=s.originalStartLineNumber,a=s.originalEndLineNumber,d=s.modifiedStartLineNumber,h=s.modifiedEndLineNumber,u=[];let g=0;{const t=0===a?r:r-1,i=0===h?d:d-1;let n=1,o=1;if(l>0){const t=e[l-1];n=0===t.originalEndLineNumber?t.originalStartLineNumber+1:t.originalEndLineNumber+1,o=0===t.modifiedEndLineNumber?t.modifiedStartLineNumber+1:t.modifiedEndLineNumber+1}let s=t-3+1,c=i-3+1;if(s<n){const e=n-s;s+=e,c+=e}if(c<o){const e=o-c;s+=e,c+=e}u[g++]=new O(s,t,c,i)}0!==a&&(u[g++]=new O(r,a,0,0)),0!==h&&(u[g++]=new O(0,0,d,h));{const n=0===a?r+1:a+1,o=0===h?d+1:h+1;let s=t,p=i;if(l+1<c){const t=e[l+1];s=0===t.originalEndLineNumber?t.originalStartLineNumber:t.originalStartLineNumber-1,p=0===t.modifiedEndLineNumber?t.modifiedStartLineNumber:t.modifiedStartLineNumber-1}let m=n+3-1,f=o+3-1;if(m>s){const e=s-m;m+=e,f+=e}if(f>p){const e=p-f;m+=e,f+=e}u[g++]=new O(n,m,o,f)}n[o++]=new P(u)}let s=n[0].entries;const r=[];let a=0;for(let l=1,c=n.length;l<c;l++){const e=n[l].entries,t=s[s.length-1],i=e[0];0===t.getType()&&0===i.getType()&&i.originalLineStart<=t.originalLineEnd?(s[s.length-1]=new O(t.originalLineStart,i.originalLineEnd,t.modifiedLineStart,i.modifiedLineEnd),s=s.concat(e.slice(1))):(r[a++]=new P(s),s=e)}return r[a++]=new P(s),r}_findDiffIndex(e){const t=e.lineNumber;for(let i=0,n=this._diffs.length;i<n;i++){const e=this._diffs[i].entries;if(t<=e[e.length-1].modifiedLineEnd)return i}return 0}_render(){const t=this._diffEditor.getOriginalEditor().getOptions(),i=this._diffEditor.getModifiedEditor().getOptions(),n=this._diffEditor.getOriginalEditor().getModel(),r=this._diffEditor.getModifiedEditor().getModel(),a=n.getOptions(),l=r.getOptions();if(!this._isVisible||!n||!r)return s.PO(this._content.domNode),this._currentDiff=null,void this.scrollbar.scanDomNode();this._diffEditor.updateOptions({readOnly:!0});const c=this._findDiffIndex(this._diffEditor.getPosition());if(this._diffs[c]===this._currentDiff)return;this._currentDiff=this._diffs[c];const d=this._diffs[c].entries,h=document.createElement("div");h.className="diff-review-table",h.setAttribute("role","list"),h.setAttribute("aria-label",'Difference review. Use "Stage | Unstage | Revert Selected Ranges" commands'),(0,u.N)(h,i.get(46));let g=0,p=0,m=0,f=0;for(let e=0,o=d.length;e<o;e++){const t=d[e],i=t.originalLineStart,n=t.originalLineEnd,o=t.modifiedLineStart,s=t.modifiedLineEnd;0!==i&&(0===g||i<g)&&(g=i),0!==n&&(0===p||n>p)&&(p=n),0!==o&&(0===m||o<m)&&(m=o),0!==s&&(0===f||s>f)&&(f=s)}const _=document.createElement("div");_.className="diff-review-row";const v=document.createElement("div");v.className="diff-review-cell diff-review-summary";const b=p-g+1,C=f-m+1;v.appendChild(document.createTextNode(`${c+1}/${this._diffs.length}: @@ -${g},${b} +${m},${C} @@`)),_.setAttribute("data-line",String(m));const w=e=>0===e?o.NC("no_lines_changed","no lines changed"):1===e?o.NC("one_line_changed","1 line changed"):o.NC("more_lines_changed","{0} lines changed",e),y=w(b),S=w(C);_.setAttribute("aria-label",o.NC({key:"header",comment:["This is the ARIA label for a git diff header.","A git diff header looks like this: @@ -154,12 +159,39 @@.","That encodes that at original line 154 (which is now line 159), 12 lines were removed/changed with 39 lines.","Variables 0 and 1 refer to the diff index out of total number of diffs.","Variables 2 and 4 will be numbers (a line number).",'Variables 3 and 5 will be "no lines changed", "1 line changed" or "X lines changed", localized separately.']},"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}",c+1,this._diffs.length,g,y,m,S)),_.appendChild(v),_.setAttribute("role","listitem"),h.appendChild(_);const L=i.get(61);let k=m;for(let o=0,s=d.length;o<s;o++){const s=d[o];e._renderSection(h,s,k,L,this._width,t,n,a,i,r,l,this._languageService.languageIdCodec),0!==s.modifiedLineStart&&(k=s.modifiedLineEnd)}s.PO(this._content.domNode),this._content.domNode.appendChild(h),this.scrollbar.scanDomNode()}static _renderSection(t,i,n,s,r,a,l,c,d,h,u,g){const p=i.getType();let m="diff-review-row",f="";let _=null;switch(p){case 1:m="diff-review-row line-insert",f=" char-insert",_=F;break;case 2:m="diff-review-row line-delete",f=" char-delete",_=B}const v=i.originalLineStart,b=i.originalLineEnd,C=i.modifiedLineStart,w=i.modifiedLineEnd,y=Math.max(w-C,b-v),S=a.get(133),L=S.glyphMarginWidth+S.lineNumbersWidth,k=d.get(133),x=10+k.glyphMarginWidth+k.lineNumbersWidth;for(let D=0;D<=y;D++){const i=0===v?0:v+D,b=0===C?0:C+D,w=document.createElement("div");w.style.minWidth=r+"px",w.className=m,w.setAttribute("role","listitem"),0!==b&&(n=b),w.setAttribute("data-line",String(n));const y=document.createElement("div");y.className="diff-review-cell",y.style.height=`${s}px`,w.appendChild(y);const S=document.createElement("span");S.style.width=L+"px",S.style.minWidth=L+"px",S.className="diff-review-line-number"+f,0!==i?S.appendChild(document.createTextNode(String(i))):S.innerText="\xa0",y.appendChild(S);const k=document.createElement("span");k.style.width=x+"px",k.style.minWidth=x+"px",k.style.paddingRight="10px",k.className="diff-review-line-number"+f,0!==b?k.appendChild(document.createTextNode(String(b))):k.innerText="\xa0",y.appendChild(k);const E=document.createElement("span");if(E.className="diff-review-spacer",_){const e=document.createElement("span");e.className=N.kS.asClassName(_),e.innerText="\xa0\xa0",E.appendChild(e)}else E.innerText="\xa0\xa0";let I;if(y.appendChild(E),0!==b){let t=this._renderLine(h,d,u.tabSize,b,g);e._ttPolicy&&(t=e._ttPolicy.createHTML(t)),y.insertAdjacentHTML("beforeend",t),I=h.getLineContent(b)}else{let t=this._renderLine(l,a,c.tabSize,i,g);e._ttPolicy&&(t=e._ttPolicy.createHTML(t)),y.insertAdjacentHTML("beforeend",t),I=l.getLineContent(i)}0===I.length&&(I=o.NC("blankLine","blank"));let T="";switch(p){case 0:T=i===b?o.NC({key:"unchangedLine",comment:["The placeholders are contents of the line and should not be translated."]},"{0} unchanged line {1}",I,i):o.NC("equalLine","{0} original line {1} modified line {2}",I,i,b);break;case 1:T=o.NC("insertLine","+ {0} modified line {1}",I,b);break;case 2:T=o.NC("deleteLine","- {0} original line {1}",I,i)}w.setAttribute("aria-label",T),t.appendChild(w)}}static _renderLine(e,t,i,n,o){const s=e.getLineContent(n),r=t.get(46),a=w.A.createEmpty(s,o),l=k.wA.isBasicASCII(s,e.mightContainNonBasicASCII()),c=k.wA.containsRTL(s,l,e.mightContainRTL());return(0,L.tF)(new L.IJ(r.isMonospace&&!t.get(29),r.canUseHalfwidthRightwardsArrow,s,!1,l,c,0,a,[],i,0,r.spaceWidth,r.middotWidth,r.wsmiddotWidth,t.get(107),t.get(90),t.get(85),t.get(47)!==C.n0.OFF,null)).html}};W._ttPolicy=null===(n=window.trustedTypes)||void 0===n?void 0:n.createPolicy("diffReview",{createHTML:e=>e}),W=M([A(1,T.O)],W),(0,N.Ic)(((e,t)=>{const i=e.getColor(S.hw);i&&t.addRule(`.monaco-diff-editor .diff-review-line-number { color: ${i}; }`);const n=e.getColor(D._wn);n&&t.addRule(`.monaco-diff-editor .diff-review-shadow { box-shadow: ${n} 0 -6px 6px -6px inset; }`)}));class H extends b.R6{constructor(){super({id:"editor.action.diffReview.next",label:o.NC("editor.action.diffReview.next","Go to Next Difference"),alias:"Go to Next Difference",precondition:x.Ao.has("isInDiffEditor"),kbOpts:{kbExpr:null,primary:65,weight:100}})}run(e,t){const i=j(e);i&&i.diffReviewNext()}}class z extends b.R6{constructor(){super({id:"editor.action.diffReview.prev",label:o.NC("editor.action.diffReview.prev","Go to Previous Difference"),alias:"Go to Previous Difference",precondition:x.Ao.has("isInDiffEditor"),kbOpts:{kbExpr:null,primary:1089,weight:100}})}run(e,t){const i=j(e);i&&i.diffReviewPrev()}}function j(e){const t=e.get(p.$),i=t.listDiffEditors(),n=t.getActiveCodeEditor();if(!n)return null;for(let o=0,s=i.length;o<s;o++){const e=i[o];if(e.getModifiedEditor().getId()===n.getId()||e.getOriginalEditor().getId()===n.getId())return e}return null}(0,b.Qr)(H),(0,b.Qr)(z);var U=i(24314),K=i(50072),$=i(96518),q=i(22529),G=i(85215),Q=i(30665),Z=i(92550),Y=i(72065),J=i(60972),X=i(59422),ee=i(5606),te=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class ie extends h.JT{constructor(e,t,i,n,r,a){super(),this._viewZoneId=e,this._marginDomNode=t,this.editor=i,this.diff=n,this._contextMenuService=r,this._clipboardService=a,this._visibility=!1,this._marginDomNode.style.zIndex="10",this._diffActions=document.createElement("div"),this._diffActions.className=E.lA.lightBulb.classNames+" lightbulb-glyph",this._diffActions.style.position="absolute";const l=i.getOption(61),c=i.getModel().getEOL();this._diffActions.style.right="0px",this._diffActions.style.visibility="hidden",this._diffActions.style.height=`${l}px`,this._diffActions.style.lineHeight=`${l}px`,this._marginDomNode.appendChild(this._diffActions);const d=[],h=0===n.modifiedEndLineNumber;d.push(new v.aU("diff.clipboard.copyDeletedContent",h?n.originalEndLineNumber>n.modifiedStartLineNumber?o.NC("diff.clipboard.copyDeletedLinesContent.label","Copy deleted lines"):o.NC("diff.clipboard.copyDeletedLinesContent.single.label","Copy deleted line"):n.originalEndLineNumber>n.modifiedStartLineNumber?o.NC("diff.clipboard.copyChangedLinesContent.label","Copy changed lines"):o.NC("diff.clipboard.copyChangedLinesContent.single.label","Copy changed line"),void 0,!0,(()=>te(this,void 0,void 0,(function*(){const e=new U.e(n.originalStartLineNumber,1,n.originalEndLineNumber+1,1),t=n.originalModel.getValueInRange(e);yield this._clipboardService.writeText(t)})))));let u,g=0;n.originalEndLineNumber>n.modifiedStartLineNumber&&(u=new v.aU("diff.clipboard.copyDeletedLineContent",h?o.NC("diff.clipboard.copyDeletedLineContent.label","Copy deleted line ({0})",n.originalStartLineNumber):o.NC("diff.clipboard.copyChangedLineContent.label","Copy changed line ({0})",n.originalStartLineNumber),void 0,!0,(()=>te(this,void 0,void 0,(function*(){const e=n.originalModel.getLineContent(n.originalStartLineNumber+g);if(""===e){const e=n.originalModel.getEndOfLineSequence();yield this._clipboardService.writeText(0===e?"\n":"\r\n")}else yield this._clipboardService.writeText(e)})))),d.push(u));i.getOption(83)||d.push(new v.aU("diff.inline.revertChange",o.NC("diff.inline.revertChange.label","Revert this change"),void 0,!0,(()=>te(this,void 0,void 0,(function*(){const e=new U.e(n.originalStartLineNumber,1,n.originalEndLineNumber,n.originalModel.getLineMaxColumn(n.originalEndLineNumber)),t=n.originalModel.getValueInRange(e);if(0===n.modifiedEndLineNumber){const e=i.getModel().getLineMaxColumn(n.modifiedStartLineNumber);i.executeEdits("diffEditor",[{range:new U.e(n.modifiedStartLineNumber,e,n.modifiedStartLineNumber,e),text:c+t}])}else{const e=i.getModel().getLineMaxColumn(n.modifiedEndLineNumber);i.executeEdits("diffEditor",[{range:new U.e(n.modifiedStartLineNumber,1,n.modifiedEndLineNumber,e),text:t}])}})))));const p=(e,t)=>{this._contextMenuService.showContextMenu({getAnchor:()=>({x:e,y:t}),getActions:()=>(u&&(u.label=h?o.NC("diff.clipboard.copyDeletedLineContent.label","Copy deleted line ({0})",n.originalStartLineNumber+g):o.NC("diff.clipboard.copyChangedLineContent.label","Copy changed line ({0})",n.originalStartLineNumber+g)),d),autoSelectFirstItem:!0})};this._register(s.mu(this._diffActions,"mousedown",(e=>{const{top:t,height:i}=s.i(this._diffActions),n=Math.floor(l/3);e.preventDefault(),p(e.posx,t+i+n)}))),this._register(i.onMouseMove((e=>{if(8===e.target.type||5===e.target.type){e.target.detail.viewZoneId===this._viewZoneId?(this.visibility=!0,g=this._updateLightBulbPosition(this._marginDomNode,e.event.browserEvent.y,l)):this.visibility=!1}else this.visibility=!1}))),this._register(i.onMouseDown((e=>{if(e.event.rightButton&&(8===e.target.type||5===e.target.type)){e.target.detail.viewZoneId===this._viewZoneId&&(e.event.preventDefault(),g=this._updateLightBulbPosition(this._marginDomNode,e.event.browserEvent.y,l),p(e.event.posx,e.event.posy+l))}})))}get visibility(){return this._visibility}set visibility(e){this._visibility!==e&&(this._visibility=e,this._diffActions.style.visibility=e?"visible":"hidden")}_updateLightBulbPosition(e,t,i){const{top:n}=s.i(e),o=t-n,r=Math.floor(o/i),a=r*i;if(this._diffActions.style.top=`${a}px`,this.diff.viewLineCounts){let e=0;for(let t=0;t<this.diff.viewLineCounts.length;t++)if(e+=this.diff.viewLineCounts[t],r<e)return t}return r}}var ne,oe=i(84972),se=i(17301),re=i(90535),ae=i(54534),le=i(96542),ce=i(92321),de=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},he=function(e,t){return function(i,n){t(i,n,e)}};class ue{constructor(e,t){this._contextMenuService=e,this._clipboardService=t,this._zones=[],this._inlineDiffMargins=[],this._zonesMap={},this._decorations=[]}getForeignViewZones(e){return e.filter((e=>!this._zonesMap[String(e.id)]))}clean(e){this._zones.length>0&&e.changeViewZones((e=>{for(const t of this._zones)e.removeZone(t)})),this._zones=[],this._zonesMap={},e.changeDecorations((e=>{this._decorations=e.deltaDecorations(this._decorations,[])}))}apply(e,t,i,n){const o=n?g.Z.capture(e):null;e.changeViewZones((t=>{var n;for(const e of this._zones)t.removeZone(e);for(const e of this._inlineDiffMargins)e.dispose();this._zones=[],this._zonesMap={},this._inlineDiffMargins=[];for(let o=0,s=i.zones.length;o<s;o++){const s=i.zones[o];s.suppressMouseDown=!0;const r=t.addZone(s);this._zones.push(r),this._zonesMap[String(r)]=!0,i.zones[o].diff&&s.marginDomNode&&(s.suppressMouseDown=!1,0!==(null===(n=i.zones[o].diff)||void 0===n?void 0:n.originalModel.getValueLength())&&this._inlineDiffMargins.push(new ie(r,s.marginDomNode,e,i.zones[o].diff,this._contextMenuService,this._clipboardService)))}})),null==o||o.restore(e),e.changeDecorations((e=>{this._decorations=e.deltaDecorations(this._decorations,i.decorations)})),null==t||t.setZones(i.overviewZones)}}let ge=0;const pe=(0,I.q5)("diff-insert",E.lA.add,o.NC("diffInsertIcon","Line decoration for inserts in the diff editor.")),me=(0,I.q5)("diff-remove",E.lA.remove,o.NC("diffRemoveIcon","Line decoration for removals in the diff editor.")),fe=null===(ne=window.trustedTypes)||void 0===ne?void 0:ne.createPolicy("diffEditorWidget",{createHTML:e=>e});let _e=class e extends h.JT{constructor(t,i,n,o,r,l,h,u,g,p,m,f){super(),this._editorProgressService=f,this._onDidDispose=this._register(new d.Q5),this.onDidDispose=this._onDidDispose.event,this._onDidUpdateDiff=this._register(new d.Q5),this.onDidUpdateDiff=this._onDidUpdateDiff.event,this._onDidContentSizeChange=this._register(new d.Q5),this._lastOriginalWarning=null,this._lastModifiedWarning=null,this._editorWorkerService=r,this._codeEditorService=u,this._contextKeyService=this._register(l.createScoped(t)),this._instantiationService=h.createChild(new J.y([x.i6,this._contextKeyService])),this._contextKeyService.createKey("isInDiffEditor",!0),this._themeService=g,this._notificationService=p,this._id=++ge,this._state=0,this._updatingDiffProgress=null,this._domElement=t,i=i||{},this._options=Re(i,{enableSplitViewResizing:!0,renderSideBySide:!0,renderMarginRevertIcon:!0,maxComputationTime:5e3,maxFileSize:50,ignoreTrimWhitespace:!0,renderIndicators:!0,originalEditable:!1,diffCodeLens:!1,renderOverviewRuler:!0,diffWordWrap:"inherit"}),void 0!==i.isInEmbeddedEditor?this._contextKeyService.createKey("isInEmbeddedDiffEditor",i.isInEmbeddedEditor):this._contextKeyService.createKey("isInEmbeddedDiffEditor",!1),this._updateDecorationsRunner=this._register(new c.pY((()=>this._updateDecorations()),0)),this._containerDomElement=document.createElement("div"),this._containerDomElement.className=e._getClassName(this._themeService.getColorTheme(),this._options.renderSideBySide),this._containerDomElement.style.position="relative",this._containerDomElement.style.height="100%",this._domElement.appendChild(this._containerDomElement),this._overviewViewportDomElement=(0,a.X)(document.createElement("div")),this._overviewViewportDomElement.setClassName("diffViewport"),this._overviewViewportDomElement.setPosition("absolute"),this._overviewDomElement=document.createElement("div"),this._overviewDomElement.className="diffOverview",this._overviewDomElement.style.position="absolute",this._overviewDomElement.appendChild(this._overviewViewportDomElement.domNode),this._register(s.mu(this._overviewDomElement,s.tw.POINTER_DOWN,(e=>{this._modifiedEditor.delegateVerticalScrollbarPointerDown(e)}))),this._options.renderOverviewRuler&&this._containerDomElement.appendChild(this._overviewDomElement),this._originalDomNode=document.createElement("div"),this._originalDomNode.className="editor original",this._originalDomNode.style.position="absolute",this._originalDomNode.style.height="100%",this._containerDomElement.appendChild(this._originalDomNode),this._modifiedDomNode=document.createElement("div"),this._modifiedDomNode.className="editor modified",this._modifiedDomNode.style.position="absolute",this._modifiedDomNode.style.height="100%",this._containerDomElement.appendChild(this._modifiedDomNode),this._beginUpdateDecorationsTimeout=-1,this._currentlyChangingViewZones=!1,this._diffComputationToken=0,this._originalEditorState=new ue(m,o),this._modifiedEditorState=new ue(m,o),this._isVisible=!0,this._isHandlingScrollEvent=!1,this._elementSizeObserver=this._register(new ae.I(this._containerDomElement,i.dimension)),this._register(this._elementSizeObserver.onDidChange((()=>this._onDidContainerSizeChanged()))),i.automaticLayout&&this._elementSizeObserver.startObserving(),this._diffComputationResult=null,this._originalEditor=this._createLeftHandSideEditor(i,n.originalEditor||{}),this._modifiedEditor=this._createRightHandSideEditor(i,n.modifiedEditor||{}),this._originalOverviewRuler=null,this._modifiedOverviewRuler=null,this._reviewPane=h.createInstance(W,this),this._containerDomElement.appendChild(this._reviewPane.domNode.domNode),this._containerDomElement.appendChild(this._reviewPane.shadow.domNode),this._containerDomElement.appendChild(this._reviewPane.actionBarContainer.domNode),this._options.renderSideBySide?this._setStrategy(new Se(this._createDataSource(),this._options.enableSplitViewResizing)):this._setStrategy(new ke(this._createDataSource(),this._options.enableSplitViewResizing)),this._register(g.onDidColorThemeChange((t=>{this._strategy&&this._strategy.applyColors(t)&&this._updateDecorationsRunner.schedule(),this._containerDomElement.className=e._getClassName(this._themeService.getColorTheme(),this._options.renderSideBySide)})));const _=b.Uc.getDiffEditorContributions();for(const e of _)try{this._register(h.createInstance(e.ctor,this))}catch(v){(0,se.dL)(v)}this._codeEditorService.addDiffEditor(this)}_setState(e){this._state!==e&&(this._state=e,this._updatingDiffProgress&&(this._updatingDiffProgress.done(),this._updatingDiffProgress=null),1===this._state&&(this._updatingDiffProgress=this._editorProgressService.show(!0,1e3)))}diffReviewNext(){this._reviewPane.next()}diffReviewPrev(){this._reviewPane.prev()}static _getClassName(e,t){let i="monaco-diff-editor monaco-editor-background ";return t&&(i+="side-by-side "),i+=(0,N.m6)(e.type),i}_disposeOverviewRulers(){this._originalOverviewRuler&&(this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()),this._originalOverviewRuler.dispose(),this._originalOverviewRuler=null),this._modifiedOverviewRuler&&(this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()),this._modifiedOverviewRuler.dispose(),this._modifiedOverviewRuler=null)}_createOverviewRulers(){this._options.renderOverviewRuler&&(r.ok(!this._originalOverviewRuler&&!this._modifiedOverviewRuler),this._originalEditor.hasModel()&&(this._originalOverviewRuler=this._originalEditor.createOverviewRuler("original diffOverviewRuler"),this._overviewDomElement.appendChild(this._originalOverviewRuler.getDomNode())),this._modifiedEditor.hasModel()&&(this._modifiedOverviewRuler=this._modifiedEditor.createOverviewRuler("modified diffOverviewRuler"),this._overviewDomElement.appendChild(this._modifiedOverviewRuler.getDomNode())),this._layoutOverviewRulers())}_createLeftHandSideEditor(t,i){const n=this._createInnerEditor(this._instantiationService,this._originalDomNode,this._adjustOptionsForLeftHandSide(t),i);this._register(n.onDidScrollChange((e=>{this._isHandlingScrollEvent||(e.scrollTopChanged||e.scrollLeftChanged||e.scrollHeightChanged)&&(this._isHandlingScrollEvent=!0,this._modifiedEditor.setScrollPosition({scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}),this._isHandlingScrollEvent=!1,this._layoutOverviewViewport())}))),this._register(n.onDidChangeViewZones((()=>{this._onViewZonesChanged()}))),this._register(n.onDidChangeConfiguration((e=>{n.getModel()&&(e.hasChanged(46)&&this._updateDecorationsRunner.schedule(),e.hasChanged(134)&&(this._updateDecorationsRunner.cancel(),this._updateDecorations()))}))),this._register(n.onDidChangeHiddenAreas((()=>{this._updateDecorationsRunner.cancel(),this._updateDecorations()}))),this._register(n.onDidChangeModelContent((()=>{this._isVisible&&this._beginUpdateDecorationsSoon()})));const o=this._contextKeyService.createKey("isInDiffLeftEditor",n.hasWidgetFocus());return this._register(n.onDidFocusEditorWidget((()=>o.set(!0)))),this._register(n.onDidBlurEditorWidget((()=>o.set(!1)))),this._register(n.onDidContentSizeChange((t=>{const i=this._originalEditor.getContentWidth()+this._modifiedEditor.getContentWidth()+e.ONE_OVERVIEW_WIDTH,n=Math.max(this._modifiedEditor.getContentHeight(),this._originalEditor.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:n,contentWidth:i,contentHeightChanged:t.contentHeightChanged,contentWidthChanged:t.contentWidthChanged})}))),n}_createRightHandSideEditor(t,i){const n=this._createInnerEditor(this._instantiationService,this._modifiedDomNode,this._adjustOptionsForRightHandSide(t),i);this._register(n.onDidScrollChange((e=>{this._isHandlingScrollEvent||(e.scrollTopChanged||e.scrollLeftChanged||e.scrollHeightChanged)&&(this._isHandlingScrollEvent=!0,this._originalEditor.setScrollPosition({scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}),this._isHandlingScrollEvent=!1,this._layoutOverviewViewport())}))),this._register(n.onDidChangeViewZones((()=>{this._onViewZonesChanged()}))),this._register(n.onDidChangeConfiguration((e=>{n.getModel()&&(e.hasChanged(46)&&this._updateDecorationsRunner.schedule(),e.hasChanged(134)&&(this._updateDecorationsRunner.cancel(),this._updateDecorations()))}))),this._register(n.onDidChangeHiddenAreas((()=>{this._updateDecorationsRunner.cancel(),this._updateDecorations()}))),this._register(n.onDidChangeModelContent((()=>{this._isVisible&&this._beginUpdateDecorationsSoon()}))),this._register(n.onDidChangeModelOptions((e=>{e.tabSize&&this._updateDecorationsRunner.schedule()})));const o=this._contextKeyService.createKey("isInDiffRightEditor",n.hasWidgetFocus());return this._register(n.onDidFocusEditorWidget((()=>o.set(!0)))),this._register(n.onDidBlurEditorWidget((()=>o.set(!1)))),this._register(n.onDidContentSizeChange((t=>{const i=this._originalEditor.getContentWidth()+this._modifiedEditor.getContentWidth()+e.ONE_OVERVIEW_WIDTH,n=Math.max(this._modifiedEditor.getContentHeight(),this._originalEditor.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:n,contentWidth:i,contentHeightChanged:t.contentHeightChanged,contentWidthChanged:t.contentWidthChanged})}))),this._register(n.onMouseDown((e=>{var t,i;if(!e.event.rightButton&&e.target.position&&(null===(t=e.target.element)||void 0===t?void 0:t.className.includes("arrow-revert-change"))){const t=e.target.position.lineNumber,n=null===(i=this._diffComputationResult)||void 0===i?void 0:i.changes.find((e=>e.modifiedStartLineNumber===t-1||e.modifiedStartLineNumber===t));return n&&this.revertChange(n),e.event.stopPropagation(),void this._updateDecorations()}}))),n}revertChange(e){const t=this._modifiedEditor,i=this._originalEditor.getModel(),n=this._modifiedEditor.getModel();if(!i||!n||!t)return;const o=e.originalEndLineNumber>0?new U.e(e.originalStartLineNumber,1,e.originalEndLineNumber,i.getLineMaxColumn(e.originalEndLineNumber)):null,s=o?i.getValueInRange(o):null,r=e.modifiedEndLineNumber>0?new U.e(e.modifiedStartLineNumber,1,e.modifiedEndLineNumber,n.getLineMaxColumn(e.modifiedEndLineNumber)):null,a=n.getEOL();if(0===e.originalEndLineNumber&&r){let i=r;e.modifiedStartLineNumber>1?i=r.setStartPosition(e.modifiedStartLineNumber-1,n.getLineMaxColumn(e.modifiedStartLineNumber-1)):e.modifiedEndLineNumber<n.getLineCount()&&(i=r.setEndPosition(e.modifiedEndLineNumber+1,1)),t.executeEdits("diffEditor",[{range:i,text:""}])}else if(0===e.modifiedEndLineNumber&&null!==s){const i=e.modifiedStartLineNumber<n.getLineCount()?new y.L(e.modifiedStartLineNumber+1,1):new y.L(e.modifiedStartLineNumber,n.getLineMaxColumn(e.modifiedStartLineNumber));t.executeEdits("diffEditor",[{range:U.e.fromPositions(i,i),text:e.modifiedStartLineNumber<n.getLineCount()?s+a:a+s}])}else r&&null!==s&&t.executeEdits("diffEditor",[{range:r,text:s}])}_createInnerEditor(e,t,i,n){return e.createInstance(m.Gm,t,i,n)}dispose(){this._codeEditorService.removeDiffEditor(this),-1!==this._beginUpdateDecorationsTimeout&&(window.clearTimeout(this._beginUpdateDecorationsTimeout),this._beginUpdateDecorationsTimeout=-1),this._cleanViewZonesAndDecorations(),this._originalOverviewRuler&&(this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()),this._originalOverviewRuler.dispose()),this._modifiedOverviewRuler&&(this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()),this._modifiedOverviewRuler.dispose()),this._overviewDomElement.removeChild(this._overviewViewportDomElement.domNode),this._options.renderOverviewRuler&&this._containerDomElement.removeChild(this._overviewDomElement),this._containerDomElement.removeChild(this._originalDomNode),this._originalEditor.dispose(),this._containerDomElement.removeChild(this._modifiedDomNode),this._modifiedEditor.dispose(),this._strategy.dispose(),this._containerDomElement.removeChild(this._reviewPane.domNode.domNode),this._containerDomElement.removeChild(this._reviewPane.shadow.domNode),this._containerDomElement.removeChild(this._reviewPane.actionBarContainer.domNode),this._reviewPane.dispose(),this._domElement.removeChild(this._containerDomElement),this._onDidDispose.fire(),super.dispose()}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return $.g.IDiffEditor}getLineChanges(){return this._diffComputationResult?this._diffComputationResult.changes:null}getOriginalEditor(){return this._originalEditor}getModifiedEditor(){return this._modifiedEditor}updateOptions(t){const i=Re(t,this._options),n=(o=this._options,s=i,{enableSplitViewResizing:o.enableSplitViewResizing!==s.enableSplitViewResizing,renderSideBySide:o.renderSideBySide!==s.renderSideBySide,renderMarginRevertIcon:o.renderMarginRevertIcon!==s.renderMarginRevertIcon,maxComputationTime:o.maxComputationTime!==s.maxComputationTime,maxFileSize:o.maxFileSize!==s.maxFileSize,ignoreTrimWhitespace:o.ignoreTrimWhitespace!==s.ignoreTrimWhitespace,renderIndicators:o.renderIndicators!==s.renderIndicators,originalEditable:o.originalEditable!==s.originalEditable,diffCodeLens:o.diffCodeLens!==s.diffCodeLens,renderOverviewRuler:o.renderOverviewRuler!==s.renderOverviewRuler,diffWordWrap:o.diffWordWrap!==s.diffWordWrap});var o,s;this._options=i;const r=n.ignoreTrimWhitespace||n.renderIndicators||n.renderMarginRevertIcon,a=this._isVisible&&(n.maxComputationTime||n.maxFileSize);r?this._beginUpdateDecorations():a&&this._beginUpdateDecorationsSoon(),this._modifiedEditor.updateOptions(this._adjustOptionsForRightHandSide(t)),this._originalEditor.updateOptions(this._adjustOptionsForLeftHandSide(t)),this._strategy.setEnableSplitViewResizing(this._options.enableSplitViewResizing),n.renderSideBySide&&(this._options.renderSideBySide?this._setStrategy(new Se(this._createDataSource(),this._options.enableSplitViewResizing)):this._setStrategy(new ke(this._createDataSource(),this._options.enableSplitViewResizing)),this._containerDomElement.className=e._getClassName(this._themeService.getColorTheme(),this._options.renderSideBySide)),n.renderOverviewRuler&&(this._options.renderOverviewRuler?this._containerDomElement.appendChild(this._overviewDomElement):this._containerDomElement.removeChild(this._overviewDomElement))}getModel(){return{original:this._originalEditor.getModel(),modified:this._modifiedEditor.getModel()}}setModel(e){if(e&&(!e.original||!e.modified))throw new Error(e.original?"DiffEditorWidget.setModel: Modified model is null":"DiffEditorWidget.setModel: Original model is null");this._cleanViewZonesAndDecorations(),this._disposeOverviewRulers(),this._originalEditor.setModel(e?e.original:null),this._modifiedEditor.setModel(e?e.modified:null),this._updateDecorationsRunner.cancel(),e&&(this._originalEditor.setScrollTop(0),this._modifiedEditor.setScrollTop(0)),this._diffComputationResult=null,this._diffComputationToken++,this._setState(0),e&&(this._createOverviewRulers(),this._beginUpdateDecorations()),this._layoutOverviewViewport()}getContainerDomNode(){return this._domElement}getVisibleColumnFromPosition(e){return this._modifiedEditor.getVisibleColumnFromPosition(e)}getPosition(){return this._modifiedEditor.getPosition()}setPosition(e,t="api"){this._modifiedEditor.setPosition(e,t)}revealLine(e,t=0){this._modifiedEditor.revealLine(e,t)}revealLineInCenter(e,t=0){this._modifiedEditor.revealLineInCenter(e,t)}revealLineInCenterIfOutsideViewport(e,t=0){this._modifiedEditor.revealLineInCenterIfOutsideViewport(e,t)}revealLineNearTop(e,t=0){this._modifiedEditor.revealLineNearTop(e,t)}revealPosition(e,t=0){this._modifiedEditor.revealPosition(e,t)}revealPositionInCenter(e,t=0){this._modifiedEditor.revealPositionInCenter(e,t)}revealPositionInCenterIfOutsideViewport(e,t=0){this._modifiedEditor.revealPositionInCenterIfOutsideViewport(e,t)}revealPositionNearTop(e,t=0){this._modifiedEditor.revealPositionNearTop(e,t)}getSelection(){return this._modifiedEditor.getSelection()}getSelections(){return this._modifiedEditor.getSelections()}setSelection(e,t="api"){this._modifiedEditor.setSelection(e,t)}setSelections(e,t="api"){this._modifiedEditor.setSelections(e,t)}revealLines(e,t,i=0){this._modifiedEditor.revealLines(e,t,i)}revealLinesInCenter(e,t,i=0){this._modifiedEditor.revealLinesInCenter(e,t,i)}revealLinesInCenterIfOutsideViewport(e,t,i=0){this._modifiedEditor.revealLinesInCenterIfOutsideViewport(e,t,i)}revealLinesNearTop(e,t,i=0){this._modifiedEditor.revealLinesNearTop(e,t,i)}revealRange(e,t=0,i=!1,n=!0){this._modifiedEditor.revealRange(e,t,i,n)}revealRangeInCenter(e,t=0){this._modifiedEditor.revealRangeInCenter(e,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this._modifiedEditor.revealRangeInCenterIfOutsideViewport(e,t)}revealRangeNearTop(e,t=0){this._modifiedEditor.revealRangeNearTop(e,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this._modifiedEditor.revealRangeNearTopIfOutsideViewport(e,t)}revealRangeAtTop(e,t=0){this._modifiedEditor.revealRangeAtTop(e,t)}getSupportedActions(){return this._modifiedEditor.getSupportedActions()}saveViewState(){return{original:this._originalEditor.saveViewState(),modified:this._modifiedEditor.saveViewState()}}restoreViewState(e){if(e&&e.original&&e.modified){const t=e;this._originalEditor.restoreViewState(t.original),this._modifiedEditor.restoreViewState(t.modified)}}layout(e){this._elementSizeObserver.observe(e)}focus(){this._modifiedEditor.focus()}hasTextFocus(){return this._originalEditor.hasTextFocus()||this._modifiedEditor.hasTextFocus()}trigger(e,t,i){this._modifiedEditor.trigger(e,t,i)}createDecorationsCollection(e){return this._modifiedEditor.createDecorationsCollection(e)}changeDecorations(e){return this._modifiedEditor.changeDecorations(e)}_onDidContainerSizeChanged(){this._doLayout()}_getReviewHeight(){return this._reviewPane.isVisible()?this._elementSizeObserver.getHeight():0}_layoutOverviewRulers(){if(!this._options.renderOverviewRuler)return;if(!this._originalOverviewRuler||!this._modifiedOverviewRuler)return;const t=this._elementSizeObserver.getHeight(),i=this._getReviewHeight(),n=e.ENTIRE_DIFF_OVERVIEW_WIDTH-2*e.ONE_OVERVIEW_WIDTH;this._modifiedEditor.getLayoutInfo()&&(this._originalOverviewRuler.setLayout({top:0,width:e.ONE_OVERVIEW_WIDTH,right:n+e.ONE_OVERVIEW_WIDTH,height:t-i}),this._modifiedOverviewRuler.setLayout({top:0,right:0,width:e.ONE_OVERVIEW_WIDTH,height:t-i}))}_onViewZonesChanged(){this._currentlyChangingViewZones||this._updateDecorationsRunner.schedule()}_beginUpdateDecorationsSoon(){-1!==this._beginUpdateDecorationsTimeout&&(window.clearTimeout(this._beginUpdateDecorationsTimeout),this._beginUpdateDecorationsTimeout=-1),this._beginUpdateDecorationsTimeout=window.setTimeout((()=>this._beginUpdateDecorations()),e.UPDATE_DIFF_DECORATIONS_DELAY)}static _equals(e,t){return!e&&!t||!(!e||!t)&&e.toString()===t.toString()}_beginUpdateDecorations(){this._beginUpdateDecorationsTimeout=-1;const t=this._originalEditor.getModel(),i=this._modifiedEditor.getModel();if(!t||!i)return;this._diffComputationToken++;const n=this._diffComputationToken,s=1024*this._options.maxFileSize*1024,r=e=>{const t=e.getValueLength();return 0===s||t<=s};r(t)&&r(i)?(this._setState(1),this._editorWorkerService.computeDiff(t.uri,i.uri,this._options.ignoreTrimWhitespace,this._options.maxComputationTime).then((e=>{n===this._diffComputationToken&&t===this._originalEditor.getModel()&&i===this._modifiedEditor.getModel()&&(this._setState(2),this._diffComputationResult=e,this._updateDecorationsRunner.schedule(),this._onDidUpdateDiff.fire())}),(e=>{n===this._diffComputationToken&&t===this._originalEditor.getModel()&&i===this._modifiedEditor.getModel()&&(this._setState(2),this._diffComputationResult=null,this._updateDecorationsRunner.schedule())}))):e._equals(t.uri,this._lastOriginalWarning)&&e._equals(i.uri,this._lastModifiedWarning)||(this._lastOriginalWarning=t.uri,this._lastModifiedWarning=i.uri,this._notificationService.warn(o.NC("diff.tooLarge","Cannot compare files because one file is too large.")))}_cleanViewZonesAndDecorations(){this._originalEditorState.clean(this._originalEditor),this._modifiedEditorState.clean(this._modifiedEditor)}_updateDecorations(){if(!this._originalEditor.getModel()||!this._modifiedEditor.getModel())return;const e=this._diffComputationResult?this._diffComputationResult.changes:[],t=this._originalEditorState.getForeignViewZones(this._originalEditor.getWhitespaces()),i=this._modifiedEditorState.getForeignViewZones(this._modifiedEditor.getWhitespaces()),n=this._strategy.getEditorsDiffDecorations(e,this._options.ignoreTrimWhitespace,this._options.renderIndicators,this._options.renderMarginRevertIcon,t,i);try{this._currentlyChangingViewZones=!0,this._originalEditorState.apply(this._originalEditor,this._originalOverviewRuler,n.original,!1),this._modifiedEditorState.apply(this._modifiedEditor,this._modifiedOverviewRuler,n.modified,!0)}finally{this._currentlyChangingViewZones=!1}}_adjustOptionsForSubEditor(e){const t=Object.assign({},e);return t.inDiffEditor=!0,t.automaticLayout=!1,t.scrollbar=Object.assign({},t.scrollbar||{}),t.scrollbar.vertical="visible",t.folding=!1,t.codeLens=this._options.diffCodeLens,t.fixedOverflowWidgets=!0,t.minimap=Object.assign({},t.minimap||{}),t.minimap.enabled=!1,t}_adjustOptionsForLeftHandSide(e){const t=this._adjustOptionsForSubEditor(e);return this._options.renderSideBySide?t.wordWrapOverride1=this._options.diffWordWrap:(t.wordWrapOverride1="off",t.wordWrapOverride2="off"),e.originalAriaLabel&&(t.ariaLabel=e.originalAriaLabel),t.readOnly=!this._options.originalEditable,t.dropIntoEditor={enabled:!t.readOnly},t.extraEditorClassName="original-in-monaco-diff-editor",Object.assign(Object.assign({},t),{dimension:{height:0,width:0}})}_adjustOptionsForRightHandSide(t){const i=this._adjustOptionsForSubEditor(t);return t.modifiedAriaLabel&&(i.ariaLabel=t.modifiedAriaLabel),i.wordWrapOverride1=this._options.diffWordWrap,i.revealHorizontalRightPadding=C.BH.revealHorizontalRightPadding.defaultValue+e.ENTIRE_DIFF_OVERVIEW_WIDTH,i.scrollbar.verticalHasArrows=!1,i.extraEditorClassName="modified-in-monaco-diff-editor",Object.assign(Object.assign({},i),{dimension:{height:0,width:0}})}doLayout(){this._elementSizeObserver.observe(),this._doLayout()}_doLayout(){const t=this._elementSizeObserver.getWidth(),i=this._elementSizeObserver.getHeight(),n=this._getReviewHeight(),o=this._strategy.layout();this._originalDomNode.style.width=o+"px",this._originalDomNode.style.left="0px",this._modifiedDomNode.style.width=t-o+"px",this._modifiedDomNode.style.left=o+"px",this._overviewDomElement.style.top="0px",this._overviewDomElement.style.height=i-n+"px",this._overviewDomElement.style.width=e.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",this._overviewDomElement.style.left=t-e.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",this._overviewViewportDomElement.setWidth(e.ENTIRE_DIFF_OVERVIEW_WIDTH),this._overviewViewportDomElement.setHeight(30),this._originalEditor.layout({width:o,height:i-n}),this._modifiedEditor.layout({width:t-o-(this._options.renderOverviewRuler?e.ENTIRE_DIFF_OVERVIEW_WIDTH:0),height:i-n}),(this._originalOverviewRuler||this._modifiedOverviewRuler)&&this._layoutOverviewRulers(),this._reviewPane.layout(i-n,t,n),this._layoutOverviewViewport()}_layoutOverviewViewport(){const e=this._computeOverviewViewport();e?(this._overviewViewportDomElement.setTop(e.top),this._overviewViewportDomElement.setHeight(e.height)):(this._overviewViewportDomElement.setTop(0),this._overviewViewportDomElement.setHeight(0))}_computeOverviewViewport(){const e=this._modifiedEditor.getLayoutInfo();if(!e)return null;const t=this._modifiedEditor.getScrollTop(),i=this._modifiedEditor.getScrollHeight(),n=Math.max(0,e.height),o=Math.max(0,n-0),s=i>0?o/i:0;return{height:Math.max(0,Math.floor(e.height*s)),top:Math.floor(t*s)}}_createDataSource(){return{getWidth:()=>this._elementSizeObserver.getWidth(),getHeight:()=>this._elementSizeObserver.getHeight()-this._getReviewHeight(),getOptions:()=>({renderOverviewRuler:this._options.renderOverviewRuler}),getContainerDomNode:()=>this._containerDomElement,relayoutEditors:()=>{this._doLayout()},getOriginalEditor:()=>this._originalEditor,getModifiedEditor:()=>this._modifiedEditor}}_setStrategy(e){this._strategy&&this._strategy.dispose(),this._strategy=e,e.applyColors(this._themeService.getColorTheme()),this._diffComputationResult&&this._updateDecorations(),this._doLayout()}_getLineChangeAtOrBeforeLineNumber(e,t){const i=this._diffComputationResult?this._diffComputationResult.changes:[];if(0===i.length||e<t(i[0]))return null;let n=0,o=i.length-1;for(;n<o;){const s=Math.floor((n+o)/2),r=t(i[s]),a=s+1<=o?t(i[s+1]):1073741824;e<r?o=s-1:e>=a?n=s+1:(n=s,o=s)}return i[n]}_getEquivalentLineForOriginalLineNumber(e){const t=this._getLineChangeAtOrBeforeLineNumber(e,(e=>e.originalStartLineNumber));if(!t)return e;const i=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),n=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),o=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,s=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,r=e-i;return r<=o?n+Math.min(r,s):n+s-o+r}_getEquivalentLineForModifiedLineNumber(e){const t=this._getLineChangeAtOrBeforeLineNumber(e,(e=>e.modifiedStartLineNumber));if(!t)return e;const i=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),n=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),o=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,s=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,r=e-n;return r<=s?i+Math.min(r,o):i+o-s+r}getDiffLineInformationForOriginal(e){return this._diffComputationResult?{equivalentLineNumber:this._getEquivalentLineForOriginalLineNumber(e)}:null}getDiffLineInformationForModified(e){return this._diffComputationResult?{equivalentLineNumber:this._getEquivalentLineForModifiedLineNumber(e)}:null}};_e.ONE_OVERVIEW_WIDTH=15,_e.ENTIRE_DIFF_OVERVIEW_WIDTH=30,_e.UPDATE_DIFF_DECORATIONS_DELAY=200,_e=de([he(3,oe.p),he(4,G.p),he(5,x.i6),he(6,Y.TG),he(7,p.$),he(8,N.XE),he(9,X.lT),he(10,ee.i),he(11,re.ek)],_e);class ve extends h.JT{constructor(e){super(),this._dataSource=e,this._insertColor=null,this._removeColor=null}applyColors(e){const t=e.getColor(D.P6Y)||(e.getColor(D.ypS)||D.CzK).transparent(2),i=e.getColor(D.F9q)||(e.getColor(D.P4M)||D.keg).transparent(2),n=!t.equals(this._insertColor)||!i.equals(this._removeColor);return this._insertColor=t,this._removeColor=i,n}getEditorsDiffDecorations(e,t,i,n,o,s){s=s.sort(((e,t)=>e.afterLineNumber-t.afterLineNumber)),o=o.sort(((e,t)=>e.afterLineNumber-t.afterLineNumber));const r=this._getViewZones(e,o,s,i),a=this._getOriginalEditorDecorations(r,e,t,i),l=this._getModifiedEditorDecorations(r,e,t,i,n);return{original:{decorations:a.decorations,overviewZones:a.overviewZones,zones:r.original},modified:{decorations:l.decorations,overviewZones:l.overviewZones,zones:r.modified}}}}class be{constructor(e){this._source=e,this._index=-1,this.current=null,this.advance()}advance(){this._index++,this._index<this._source.length?this.current=this._source[this._index]:this.current=null}}class Ce{constructor(e,t,i,n,o){this._lineChanges=e,this._originalForeignVZ=t,this._modifiedForeignVZ=i,this._originalEditor=n,this._modifiedEditor=o}static _getViewLineCount(e,t,i){const n=e.getModel(),o=e._getViewModel();if(n&&o){const e=Ae(n,o,t,i);return e.endLineNumber-e.startLineNumber+1}return i-t+1}getViewZones(){const e=this._originalEditor.getOption(61),t=this._modifiedEditor.getOption(61),i=-1!==this._originalEditor.getOption(134).wrappingColumn,n=-1!==this._modifiedEditor.getOption(134).wrappingColumn,o=i||n,s=this._originalEditor.getModel(),r=this._originalEditor._getViewModel().coordinatesConverter,a=this._modifiedEditor._getViewModel().coordinatesConverter,l=[],c=[];let d=0,h=0,u=0,g=0,p=0,m=0;const f=(e,t)=>e.afterLineNumber-t.afterLineNumber,_=(e,t)=>{if(null===t.domNode&&e.length>0){const i=e[e.length-1];if(i.afterLineNumber===t.afterLineNumber&&null===i.domNode)return void(i.heightInLines+=t.heightInLines)}e.push(t)},v=new be(this._modifiedForeignVZ),b=new be(this._originalForeignVZ);let C=1,w=1;for(let y=0,S=this._lineChanges.length;y<=S;y++){const i=y<S?this._lineChanges[y]:null;null!==i?(u=i.originalStartLineNumber+(i.originalEndLineNumber>0?-1:0),g=i.modifiedStartLineNumber+(i.modifiedEndLineNumber>0?-1:0),h=i.originalEndLineNumber>0?Ce._getViewLineCount(this._originalEditor,i.originalStartLineNumber,i.originalEndLineNumber):0,d=i.modifiedEndLineNumber>0?Ce._getViewLineCount(this._modifiedEditor,i.modifiedStartLineNumber,i.modifiedEndLineNumber):0,p=Math.max(i.originalStartLineNumber,i.originalEndLineNumber),m=Math.max(i.modifiedStartLineNumber,i.modifiedEndLineNumber)):(u+=1e7+h,g+=1e7+d,p=u,m=g);let n=[],L=[];if(o){let e;e=i?i.originalEndLineNumber>0?i.originalStartLineNumber-C:i.modifiedStartLineNumber-w:s.getLineCount()-C+1;for(let t=0;t<e;t++){const e=C+t,i=w+t,o=r.getModelLineViewLineCount(e),s=a.getModelLineViewLineCount(i);o<s?n.push({afterLineNumber:e,heightInLines:s-o,domNode:null,marginDomNode:null}):o>s&&L.push({afterLineNumber:i,heightInLines:o-s,domNode:null,marginDomNode:null})}i&&(C=(i.originalEndLineNumber>0?i.originalEndLineNumber:i.originalStartLineNumber)+1,w=(i.modifiedEndLineNumber>0?i.modifiedEndLineNumber:i.modifiedStartLineNumber)+1)}for(;v.current&&v.current.afterLineNumber<=m;){let e;e=v.current.afterLineNumber<=g?u-g+v.current.afterLineNumber:p;let o=null;i&&i.modifiedStartLineNumber<=v.current.afterLineNumber&&v.current.afterLineNumber<=i.modifiedEndLineNumber&&(o=this._createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion()),n.push({afterLineNumber:e,heightInLines:v.current.height/t,domNode:null,marginDomNode:o}),v.advance()}for(;b.current&&b.current.afterLineNumber<=p;){let t;t=b.current.afterLineNumber<=u?g-u+b.current.afterLineNumber:m,L.push({afterLineNumber:t,heightInLines:b.current.height/e,domNode:null}),b.advance()}if(null!==i&&De(i)){const e=this._produceOriginalFromDiff(i,h,d);e&&n.push(e)}if(null!==i&&Ne(i)){const e=this._produceModifiedFromDiff(i,h,d);e&&L.push(e)}let k=0,x=0;for(n=n.sort(f),L=L.sort(f);k<n.length&&x<L.length;){const e=n[k],t=L[x],i=e.afterLineNumber-u,o=t.afterLineNumber-g;i<o?(_(l,e),k++):o<i?(_(c,t),x++):e.shouldNotShrink?(_(l,e),k++):t.shouldNotShrink?(_(c,t),x++):e.heightInLines>=t.heightInLines?(e.heightInLines-=t.heightInLines,x++):(t.heightInLines-=e.heightInLines,k++)}for(;k<n.length;)_(l,n[k]),k++;for(;x<L.length;)_(c,L[x]),x++}return{original:Ce._ensureDomNodes(l),modified:Ce._ensureDomNodes(c)}}static _ensureDomNodes(e){return e.map((e=>(e.domNode||(e.domNode=Te()),e)))}}function we(e,t,i,n,o){return{range:new U.e(e,t,i,n),options:o}}const ye={arrowRevertChange:q.qx.register({description:"diff-editor-arrow-revert-change",glyphMarginClassName:"arrow-revert-change "+N.kS.asClassName(E.lA.arrowRight)}),charDelete:q.qx.register({description:"diff-editor-char-delete",className:"char-delete"}),charDeleteWholeLine:q.qx.register({description:"diff-editor-char-delete-whole-line",className:"char-delete",isWholeLine:!0}),charInsert:q.qx.register({description:"diff-editor-char-insert",className:"char-insert"}),charInsertWholeLine:q.qx.register({description:"diff-editor-char-insert-whole-line",className:"char-insert",isWholeLine:!0}),lineInsert:q.qx.register({description:"diff-editor-line-insert",className:"line-insert",marginClassName:"gutter-insert",isWholeLine:!0}),lineInsertWithSign:q.qx.register({description:"diff-editor-line-insert-with-sign",className:"line-insert",linesDecorationsClassName:"insert-sign "+N.kS.asClassName(pe),marginClassName:"gutter-insert",isWholeLine:!0}),lineDelete:q.qx.register({description:"diff-editor-line-delete",className:"line-delete",marginClassName:"gutter-delete",isWholeLine:!0}),lineDeleteWithSign:q.qx.register({description:"diff-editor-line-delete-with-sign",className:"line-delete",linesDecorationsClassName:"delete-sign "+N.kS.asClassName(me),marginClassName:"gutter-delete",isWholeLine:!0}),lineDeleteMargin:q.qx.register({description:"diff-editor-line-delete-margin",marginClassName:"gutter-delete"})};class Se extends ve{constructor(e,t){super(e),this._disableSash=!1===t,this._sashRatio=null,this._sashPosition=null,this._startSashPosition=null,this._sash=this._register(new l.g(this._dataSource.getContainerDomNode(),this,{orientation:0})),this._disableSash&&(this._sash.state=0),this._sash.onDidStart((()=>this._onSashDragStart())),this._sash.onDidChange((e=>this._onSashDrag(e))),this._sash.onDidEnd((()=>this._onSashDragEnd())),this._sash.onDidReset((()=>this._onSashReset()))}setEnableSplitViewResizing(e){const t=!1===e;this._disableSash!==t&&(this._disableSash=t,this._sash.state=this._disableSash?0:3)}layout(e=this._sashRatio){const t=this._dataSource.getWidth()-(this._dataSource.getOptions().renderOverviewRuler?_e.ENTIRE_DIFF_OVERVIEW_WIDTH:0);let i=Math.floor((e||.5)*t);const n=Math.floor(.5*t);return i=this._disableSash?n:i||n,t>2*Se.MINIMUM_EDITOR_WIDTH?(i<Se.MINIMUM_EDITOR_WIDTH&&(i=Se.MINIMUM_EDITOR_WIDTH),i>t-Se.MINIMUM_EDITOR_WIDTH&&(i=t-Se.MINIMUM_EDITOR_WIDTH)):i=n,this._sashPosition!==i&&(this._sashPosition=i),this._sash.layout(),this._sashPosition}_onSashDragStart(){this._startSashPosition=this._sashPosition}_onSashDrag(e){const t=this._dataSource.getWidth()-(this._dataSource.getOptions().renderOverviewRuler?_e.ENTIRE_DIFF_OVERVIEW_WIDTH:0),i=this.layout((this._startSashPosition+(e.currentX-e.startX))/t);this._sashRatio=i/t,this._dataSource.relayoutEditors()}_onSashDragEnd(){this._sash.layout()}_onSashReset(){this._sashRatio=.5,this._dataSource.relayoutEditors(),this._sash.layout()}getVerticalSashTop(e){return 0}getVerticalSashLeft(e){return this._sashPosition}getVerticalSashHeight(e){return this._dataSource.getHeight()}_getViewZones(e,t,i){const n=this._dataSource.getOriginalEditor(),o=this._dataSource.getModifiedEditor();return new Le(e,t,i,n,o).getViewZones()}_getOriginalEditorDecorations(e,t,i,n){const o=this._dataSource.getOriginalEditor(),s=String(this._removeColor),r={decorations:[],overviewZones:[]},a=o.getModel(),l=o._getViewModel();for(const c of t)if(Ne(c)){r.decorations.push({range:new U.e(c.originalStartLineNumber,1,c.originalEndLineNumber,1073741824),options:n?ye.lineDeleteWithSign:ye.lineDelete}),De(c)&&c.charChanges||r.decorations.push(we(c.originalStartLineNumber,1,c.originalEndLineNumber,1073741824,ye.charDeleteWholeLine));const e=Ae(a,l,c.originalStartLineNumber,c.originalEndLineNumber);if(r.overviewZones.push(new Q.EY(e.startLineNumber,e.endLineNumber,0,s)),c.charChanges)for(const t of c.charChanges)if(Ie(t))if(i)for(let e=t.originalStartLineNumber;e<=t.originalEndLineNumber;e++){let i,n;i=e===t.originalStartLineNumber?t.originalStartColumn:a.getLineFirstNonWhitespaceColumn(e),n=e===t.originalEndLineNumber?t.originalEndColumn:a.getLineLastNonWhitespaceColumn(e),r.decorations.push(we(e,i,e,n,ye.charDelete))}else r.decorations.push(we(t.originalStartLineNumber,t.originalStartColumn,t.originalEndLineNumber,t.originalEndColumn,ye.charDelete))}return r}_getModifiedEditorDecorations(e,t,i,n,o){const s=this._dataSource.getModifiedEditor(),r=String(this._insertColor),a={decorations:[],overviewZones:[]},l=s.getModel(),c=s._getViewModel();for(const d of t){if(o)if(d.modifiedEndLineNumber>0)a.decorations.push({range:new U.e(d.modifiedStartLineNumber,1,d.modifiedStartLineNumber,1),options:ye.arrowRevertChange});else{const t=e.modified.find((e=>e.afterLineNumber===d.modifiedStartLineNumber));t&&(t.marginDomNode=Me())}if(De(d)){a.decorations.push({range:new U.e(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824),options:n?ye.lineInsertWithSign:ye.lineInsert}),Ne(d)&&d.charChanges||a.decorations.push(we(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824,ye.charInsertWholeLine));const e=Ae(l,c,d.modifiedStartLineNumber,d.modifiedEndLineNumber);if(a.overviewZones.push(new Q.EY(e.startLineNumber,e.endLineNumber,0,r)),d.charChanges)for(const t of d.charChanges)if(Ee(t))if(i)for(let e=t.modifiedStartLineNumber;e<=t.modifiedEndLineNumber;e++){let i,n;i=e===t.modifiedStartLineNumber?t.modifiedStartColumn:l.getLineFirstNonWhitespaceColumn(e),n=e===t.modifiedEndLineNumber?t.modifiedEndColumn:l.getLineLastNonWhitespaceColumn(e),a.decorations.push(we(e,i,e,n,ye.charInsert))}else a.decorations.push(we(t.modifiedStartLineNumber,t.modifiedStartColumn,t.modifiedEndLineNumber,t.modifiedEndColumn,ye.charInsert))}}return a}}Se.MINIMUM_EDITOR_WIDTH=100;class Le extends Ce{constructor(e,t,i,n,o){super(e,t,i,n,o)}_createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion(){return null}_produceOriginalFromDiff(e,t,i){return i>t?{afterLineNumber:Math.max(e.originalStartLineNumber,e.originalEndLineNumber),heightInLines:i-t,domNode:null}:null}_produceModifiedFromDiff(e,t,i){return t>i?{afterLineNumber:Math.max(e.modifiedStartLineNumber,e.modifiedEndLineNumber),heightInLines:t-i,domNode:null}:null}}class ke extends ve{constructor(e,t){super(e),this._decorationsLeft=e.getOriginalEditor().getLayoutInfo().decorationsLeft,this._register(e.getOriginalEditor().onDidLayoutChange((t=>{this._decorationsLeft!==t.decorationsLeft&&(this._decorationsLeft=t.decorationsLeft,e.relayoutEditors())})))}setEnableSplitViewResizing(e){}_getViewZones(e,t,i,n){const o=this._dataSource.getOriginalEditor(),s=this._dataSource.getModifiedEditor();return new xe(e,t,i,o,s,n).getViewZones()}_getOriginalEditorDecorations(e,t,i,n){const o=String(this._removeColor),s={decorations:[],overviewZones:[]},r=this._dataSource.getOriginalEditor(),a=r.getModel(),l=r._getViewModel();let c=0;for(const d of t)if(Ne(d)){for(s.decorations.push({range:new U.e(d.originalStartLineNumber,1,d.originalEndLineNumber,1073741824),options:ye.lineDeleteMargin});c<e.modified.length;){const t=e.modified[c];if(t.diff&&t.diff.originalStartLineNumber>=d.originalStartLineNumber)break;c++}let t=0;if(c<e.modified.length){const i=e.modified[c];i.diff&&i.diff.originalStartLineNumber===d.originalStartLineNumber&&i.diff.originalEndLineNumber===d.originalEndLineNumber&&i.diff.modifiedStartLineNumber===d.modifiedStartLineNumber&&i.diff.modifiedEndLineNumber===d.modifiedEndLineNumber&&(t=i.heightInLines)}const i=Ae(a,l,d.originalStartLineNumber,d.originalEndLineNumber);s.overviewZones.push(new Q.EY(i.startLineNumber,i.endLineNumber,t,o))}return s}_getModifiedEditorDecorations(e,t,i,n,o){const s=this._dataSource.getModifiedEditor(),r=String(this._insertColor),a={decorations:[],overviewZones:[]},l=s.getModel(),c=s._getViewModel();for(const d of t)if(De(d)){a.decorations.push({range:new U.e(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824),options:n?ye.lineInsertWithSign:ye.lineInsert});const e=Ae(l,c,d.modifiedStartLineNumber,d.modifiedEndLineNumber);if(a.overviewZones.push(new Q.EY(e.startLineNumber,e.endLineNumber,0,r)),d.charChanges){for(const t of d.charChanges)if(Ee(t))if(i)for(let e=t.modifiedStartLineNumber;e<=t.modifiedEndLineNumber;e++){let i,n;i=e===t.modifiedStartLineNumber?t.modifiedStartColumn:l.getLineFirstNonWhitespaceColumn(e),n=e===t.modifiedEndLineNumber?t.modifiedEndColumn:l.getLineLastNonWhitespaceColumn(e),a.decorations.push(we(e,i,e,n,ye.charInsert))}else a.decorations.push(we(t.modifiedStartLineNumber,t.modifiedStartColumn,t.modifiedEndLineNumber,t.modifiedEndColumn,ye.charInsert))}else a.decorations.push(we(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824,ye.charInsertWholeLine))}return a}layout(){return Math.max(5,this._decorationsLeft)}}class xe extends Ce{constructor(e,t,i,n,o,s){super(e,t,i,n,o),this._originalModel=n.getModel(),this._renderIndicators=s,this._pendingLineChange=[],this._pendingViewZones=[],this._lineBreaksComputer=this._modifiedEditor._getViewModel().createLineBreaksComputer()}getViewZones(){const e=super.getViewZones();return this._finalize(e),e}_createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion(){const e=document.createElement("div");return e.className="inline-added-margin-view-zone",e}_produceOriginalFromDiff(e,t,i){const n=document.createElement("div");return n.className="inline-added-margin-view-zone",{afterLineNumber:Math.max(e.originalStartLineNumber,e.originalEndLineNumber),heightInLines:i,domNode:document.createElement("div"),marginDomNode:n}}_produceModifiedFromDiff(e,t,i){const n=document.createElement("div");n.className=`view-lines line-delete ${le.S}`;const o=document.createElement("div");o.className="inline-deleted-margin-view-zone";const s={shouldNotShrink:!0,afterLineNumber:0===e.modifiedEndLineNumber?e.modifiedStartLineNumber:e.modifiedStartLineNumber-1,heightInLines:t,minWidthInPx:0,domNode:n,marginDomNode:o,diff:{originalStartLineNumber:e.originalStartLineNumber,originalEndLineNumber:e.originalEndLineNumber,modifiedStartLineNumber:e.modifiedStartLineNumber,modifiedEndLineNumber:e.modifiedEndLineNumber,originalModel:this._originalModel,viewLineCounts:null}};for(let r=e.originalStartLineNumber;r<=e.originalEndLineNumber;r++)this._lineBreaksComputer.addRequest(this._originalModel.getLineContent(r),null,null);return this._pendingLineChange.push(e),this._pendingViewZones.push(s),s}_finalize(e){const t=this._modifiedEditor.getOptions(),i=this._modifiedEditor.getModel().getOptions().tabSize,n=t.get(46),o=t.get(29),s=n.typicalHalfwidthCharacterWidth,r=t.get(95),a=this._originalModel.mightContainNonBasicASCII(),l=this._originalModel.mightContainRTL(),c=t.get(61),d=t.get(133).decorationsWidth,h=t.get(107),g=t.get(90),p=t.get(85),m=t.get(47),f=this._lineBreaksComputer.finalize();let _=0;for(let v=0;v<this._pendingLineChange.length;v++){const t=this._pendingLineChange[v],b=this._pendingViewZones[v],C=b.domNode;(0,u.N)(C,n);const w=b.marginDomNode;(0,u.N)(w,n);const y=[];if(t.charChanges)for(const e of t.charChanges)Ie(e)&&y.push(new k.$t(new U.e(e.originalStartLineNumber,e.originalStartColumn,e.originalEndLineNumber,e.originalEndColumn),"char-delete",0));const S=y.length>0,L=(0,K.l$)(1e4);let x=0,D=0,N=null;for(let s=t.originalStartLineNumber;s<=t.originalEndLineNumber;s++){const r=s-t.originalStartLineNumber,u=this._originalModel.tokenization.getLineTokens(s),v=u.getLineContent(),C=f[_++],k=Z.Kp.filter(y,s,1,v.length+1);if(C){let t=0;for(const e of C.breakOffsets){const s=u.sliceAndInflate(t,e,0),r=v.substring(t,e);x=Math.max(x,this._renderOriginalLine(D++,r,s,Z.Kp.extractWrapped(k,t,e),S,a,l,n,o,c,d,h,g,p,m,i,L,w)),t=e}for(N||(N=[]);N.length<r;)N[N.length]=1;N[r]=C.breakOffsets.length,b.heightInLines+=C.breakOffsets.length-1;const f=document.createElement("div");f.className="gutter-delete",e.original.push({afterLineNumber:s,afterColumn:0,heightInLines:C.breakOffsets.length-1,domNode:Te(),marginDomNode:f})}else x=Math.max(x,this._renderOriginalLine(D++,v,u,k,S,a,l,n,o,c,d,h,g,p,m,i,L,w))}x+=r;const E=L.build(),I=fe?fe.createHTML(E):E;if(C.innerHTML=I,b.minWidthInPx=x*s,N){const e=t.originalEndLineNumber-t.originalStartLineNumber;for(;N.length<=e;)N[N.length]=1}b.diff.viewLineCounts=N}e.original.sort(((e,t)=>e.afterLineNumber-t.afterLineNumber))}_renderOriginalLine(e,t,i,n,o,s,r,a,l,c,d,h,u,g,p,m,f,_){f.appendASCIIString('<div class="view-line'),o||f.appendASCIIString(" char-delete"),f.appendASCIIString('" style="top:'),f.appendASCIIString(String(e*c)),f.appendASCIIString('px;width:1000000px;">');const v=k.wA.isBasicASCII(t,s),b=k.wA.containsRTL(t,v,r),w=(0,L.d1)(new L.IJ(a.isMonospace&&!l,a.canUseHalfwidthRightwardsArrow,t,!1,v,b,0,i,n,m,0,a.spaceWidth,a.middotWidth,a.wsmiddotWidth,h,u,g,p!==C.n0.OFF,null),f);if(f.appendASCIIString("</div>"),this._renderIndicators){const t=document.createElement("div");t.className=`delete-sign ${N.kS.asClassName(me)}`,t.setAttribute("style",`position:absolute;top:${e*c}px;width:${d}px;height:${c}px;right:0;`),_.appendChild(t)}return w.characterMapping.getHorizontalOffset(w.characterMapping.length)}}function De(e){return e.modifiedEndLineNumber>0}function Ne(e){return e.originalEndLineNumber>0}function Ee(e){return e.modifiedStartLineNumber===e.modifiedEndLineNumber?e.modifiedEndColumn-e.modifiedStartColumn>0:e.modifiedEndLineNumber-e.modifiedStartLineNumber>0}function Ie(e){return e.originalStartLineNumber===e.originalEndLineNumber?e.originalEndColumn-e.originalStartColumn>0:e.originalEndLineNumber-e.originalStartLineNumber>0}function Te(){const e=document.createElement("div");return e.className="diagonal-fill",e}function Me(){const e=document.createElement("div");return e.className="arrow-revert-change "+N.kS.asClassName(E.lA.arrowRight),s.$("div",{},e)}function Ae(e,t,i,n){const o=e.getLineCount();return i=Math.min(o,Math.max(1,i)),n=Math.min(o,Math.max(1,n)),t.coordinatesConverter.convertModelRangeToViewRange(new U.e(i,e.getLineMinColumn(i),n,e.getLineMaxColumn(n)))}function Re(e,t){return{enableSplitViewResizing:(0,C.O7)(e.enableSplitViewResizing,t.enableSplitViewResizing),renderSideBySide:(0,C.O7)(e.renderSideBySide,t.renderSideBySide),renderMarginRevertIcon:(0,C.O7)(e.renderMarginRevertIcon,t.renderMarginRevertIcon),maxComputationTime:(0,C.Zc)(e.maxComputationTime,t.maxComputationTime,0,1073741824),maxFileSize:(0,C.Zc)(e.maxFileSize,t.maxFileSize,0,1073741824),ignoreTrimWhitespace:(0,C.O7)(e.ignoreTrimWhitespace,t.ignoreTrimWhitespace),renderIndicators:(0,C.O7)(e.renderIndicators,t.renderIndicators),originalEditable:(0,C.O7)(e.originalEditable,t.originalEditable),diffCodeLens:(0,C.O7)(e.diffCodeLens,t.diffCodeLens),renderOverviewRuler:(0,C.O7)(e.renderOverviewRuler,t.renderOverviewRuler),diffWordWrap:(i=e.diffWordWrap,n=t.diffWordWrap,(0,C.NY)(i,n,["off","on","inherit"]))};var i,n}(0,N.Ic)(((e,t)=>{const i=e.getColor(D.ypS);i&&t.addRule(`.monaco-editor .char-insert, .monaco-diff-editor .char-insert { background-color: ${i}; }`);const n=e.getColor(D.hzo)||i;n&&t.addRule(`.monaco-editor .line-insert, .monaco-diff-editor .line-insert { background-color: ${n}; }`);const o=e.getColor(D.j51)||n;o&&(t.addRule(`.monaco-editor .inline-added-margin-view-zone { background-color: ${o}; }`),t.addRule(`.monaco-editor .gutter-insert, .monaco-diff-editor .gutter-insert { background-color: ${o}; }`));const s=e.getColor(D.P4M);s&&t.addRule(`.monaco-editor .char-delete, .monaco-diff-editor .char-delete { background-color: ${s}; }`);const r=e.getColor(D.xi6)||s;r&&t.addRule(`.monaco-editor .line-delete, .monaco-diff-editor .line-delete { background-color: ${r}; }`);const a=e.getColor(D.zOm)||r;a&&(t.addRule(`.monaco-editor .inline-deleted-margin-view-zone { background-color: ${a}; }`),t.addRule(`.monaco-editor .gutter-delete, .monaco-diff-editor .gutter-delete { background-color: ${a}; }`));const l=e.getColor(D.XL$);l&&t.addRule(`.monaco-editor .line-insert, .monaco-editor .char-insert { border: 1px ${(0,ce.c3)(e.type)?"dashed":"solid"} ${l}; }`);const c=e.getColor(D.mHy);c&&t.addRule(`.monaco-editor .line-delete, .monaco-editor .char-delete { border: 1px ${(0,ce.c3)(e.type)?"dashed":"solid"} ${c}; }`);const d=e.getColor(D._wn);d&&t.addRule(`.monaco-diff-editor.side-by-side .editor.modified { box-shadow: -6px 0 5px -5px ${d}; }`);const h=e.getColor(D.LLc);h&&t.addRule(`.monaco-diff-editor.side-by-side .editor.modified { border-left: 1px solid ${h}; }`);const u=e.getColor(D.etL);u&&t.addRule(`\n\t\t\t.monaco-diff-editor .diffViewport {\n\t\t\t\tbackground: ${u};\n\t\t\t}\n\t\t`);const g=e.getColor(D.ABB);g&&t.addRule(`\n\t\t\t.monaco-diff-editor .diffViewport:hover {\n\t\t\t\tbackground: ${g};\n\t\t\t}\n\t\t`);const p=e.getColor(D.ynu);p&&t.addRule(`\n\t\t\t.monaco-diff-editor .diffViewport:active {\n\t\t\t\tbackground: ${p};\n\t\t\t}\n\t\t`);const m=e.getColor(D.L_t);t.addRule(`\n\t.monaco-editor .diagonal-fill {\n\t\tbackground-image: linear-gradient(\n\t\t\t-45deg,\n\t\t\t${m} 12.5%,\n\t\t\t#0000 12.5%, #0000 50%,\n\t\t\t${m} 50%, ${m} 62.5%,\n\t\t\t#0000 62.5%, #0000 100%\n\t\t);\n\t\tbackground-size: 8px 8px;\n\t}\n\t`)}))},75623:(e,t,i)=>{"use strict";i.d(t,{F:()=>c});var n=i(35146),o=i(4669),s=i(5976),r=i(36248),a=i(24314);const l={followsCaret:!0,ignoreCharChanges:!0,alwaysRevealFirst:!0};class c extends s.JT{constructor(e,t={}){super(),this._onDidUpdate=this._register(new o.Q5),this._editor=e,this._options=r.jB(t,l,!1),this.disposed=!1,this.nextIdx=-1,this.ranges=[],this.ignoreSelectionChange=!1,this.revealFirst=Boolean(this._options.alwaysRevealFirst),this._register(this._editor.onDidDispose((()=>this.dispose()))),this._register(this._editor.onDidUpdateDiff((()=>this._onDiffUpdated()))),this._options.followsCaret&&this._register(this._editor.getModifiedEditor().onDidChangeCursorPosition((e=>{this.ignoreSelectionChange||(this.nextIdx=-1)}))),this._options.alwaysRevealFirst&&this._register(this._editor.getModifiedEditor().onDidChangeModel((e=>{this.revealFirst=!0}))),this._init()}_init(){this._editor.getLineChanges()}_onDiffUpdated(){this._init(),this._compute(this._editor.getLineChanges()),this.revealFirst&&null!==this._editor.getLineChanges()&&(this.revealFirst=!1,this.nextIdx=-1,this.next(1))}_compute(e){this.ranges=[],e&&e.forEach((e=>{!this._options.ignoreCharChanges&&e.charChanges?e.charChanges.forEach((e=>{this.ranges.push({rhs:!0,range:new a.e(e.modifiedStartLineNumber,e.modifiedStartColumn,e.modifiedEndLineNumber,e.modifiedEndColumn)})})):0===e.modifiedEndLineNumber?this.ranges.push({rhs:!0,range:new a.e(e.modifiedStartLineNumber,1,e.modifiedStartLineNumber+1,1)}):this.ranges.push({rhs:!0,range:new a.e(e.modifiedStartLineNumber,1,e.modifiedEndLineNumber+1,1)})})),this.ranges.sort(((e,t)=>a.e.compareRangesUsingStarts(e.range,t.range))),this._onDidUpdate.fire(this)}_initIdx(e){let t=!1;const i=this._editor.getPosition();if(i){for(let n=0,o=this.ranges.length;n<o&&!t;n++){const o=this.ranges[n].range;i.isBeforeOrEqual(o.getStartPosition())&&(this.nextIdx=n+(e?0:-1),t=!0)}t||(this.nextIdx=e?0:this.ranges.length-1),this.nextIdx<0&&(this.nextIdx=this.ranges.length-1)}else this.nextIdx=0}_move(e,t){if(n.ok(!this.disposed,"Illegal State - diff navigator has been disposed"),!this.canNavigate())return;-1===this.nextIdx?this._initIdx(e):e?(this.nextIdx+=1,this.nextIdx>=this.ranges.length&&(this.nextIdx=0)):(this.nextIdx-=1,this.nextIdx<0&&(this.nextIdx=this.ranges.length-1));const i=this.ranges[this.nextIdx];this.ignoreSelectionChange=!0;try{const e=i.range.getStartPosition();this._editor.setPosition(e),this._editor.revealRangeInCenter(i.range,t)}finally{this.ignoreSelectionChange=!1}}canNavigate(){return this.ranges&&this.ranges.length>0}next(e=0){this._move(!0,e)}previous(e=0){this._move(!1,e)}dispose(){super.dispose(),this.ranges=[],this.disposed=!0}}},84527:(e,t,i)=>{"use strict";i.d(t,{H:()=>f});var n=i(36248),o=i(11640),s=i(27982),r=i(94565),a=i(38819),l=i(72065),c=i(59422),d=i(97781),h=i(31106),u=i(4256),g=i(71922),p=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},m=function(e,t){return function(i,n){t(i,n,e)}};let f=class extends s.Gm{constructor(e,t,i,n,o,s,r,a,l,c,d,h){super(e,Object.assign(Object.assign({},i.getRawOptions()),{overflowWidgetsDomNode:i.getOverflowWidgetsDomNode()}),{},n,o,s,r,a,l,c,d,h),this._parentEditor=i,this._overwriteOptions=t,super.updateOptions(this._overwriteOptions),this._register(i.onDidChangeConfiguration((e=>this._onParentConfigurationChanged(e))))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(e){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(e){n.jB(this._overwriteOptions,e,!0),super.updateOptions(this._overwriteOptions)}};f=p([m(3,l.TG),m(4,o.$),m(5,r.Hy),m(6,a.i6),m(7,d.XE),m(8,c.lT),m(9,h.F),m(10,u.c_),m(11,g.p)],f)},61329:(e,t,i)=>{"use strict";i.d(t,{OY:()=>s,Sj:()=>r,T4:()=>o,Uo:()=>a,hP:()=>l});var n=i(3860);class o{constructor(e,t,i=!1){this._range=e,this._text=t,this.insertsAutoWhitespace=i}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const i=t.getInverseEditOperations()[0].range;return n.Y.fromPositions(i.getEndPosition())}}class s{constructor(e,t){this._range=e,this._text=t}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const i=t.getInverseEditOperations()[0].range;return n.Y.fromRange(i,0)}}class r{constructor(e,t,i=!1){this._range=e,this._text=t,this.insertsAutoWhitespace=i}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const i=t.getInverseEditOperations()[0].range;return n.Y.fromPositions(i.getStartPosition())}}class a{constructor(e,t,i,n,o=!1){this._range=e,this._text=t,this._columnDeltaOffset=n,this._lineNumberDeltaOffset=i,this.insertsAutoWhitespace=o}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const i=t.getInverseEditOperations()[0].range;return n.Y.fromPositions(i.getEndPosition().delta(this._lineNumberDeltaOffset,this._columnDeltaOffset))}}class l{constructor(e,t,i,n=!1){this._range=e,this._text=t,this._initialSelection=i,this._forceMoveMarkers=n,this._selectionId=null}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text,this._forceMoveMarkers),this._selectionId=t.trackSelection(this._initialSelection)}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}},10291:(e,t,i)=>{"use strict";i.d(t,{U:()=>g});var n=i(97295),o=i(7988),s=i(24314),r=i(3860),a=i(1615),l=i(4256),c=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},d=function(e,t){return function(i,n){t(i,n,e)}};const h=Object.create(null);function u(e,t){if(t<=0)return"";h[e]||(h[e]=["",e]);const i=h[e];for(let n=i.length;n<=t;n++)i[n]=i[n-1]+e;return i[t]}let g=class e{constructor(e,t,i){this._languageConfigurationService=i,this._opts=t,this._selection=e,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}static unshiftIndent(e,t,i,n,s){const r=o.i.visibleColumnFromColumn(e,t,i);if(s){const e=u(" ",n);return u(e,o.i.prevIndentTabStop(r,n)/n)}return u("\t",o.i.prevRenderTabStop(r,i)/i)}static shiftIndent(e,t,i,n,s){const r=o.i.visibleColumnFromColumn(e,t,i);if(s){const e=u(" ",n);return u(e,o.i.nextIndentTabStop(r,n)/n)}return u("\t",o.i.nextRenderTabStop(r,i)/i)}_addEditOperation(e,t,i){this._useLastEditRangeForCursorEndPosition?e.addTrackedEditOperation(t,i):e.addEditOperation(t,i)}getEditOperations(t,i){const r=this._selection.startLineNumber;let l=this._selection.endLineNumber;1===this._selection.endColumn&&r!==l&&(l-=1);const{tabSize:c,indentSize:d,insertSpaces:h}=this._opts,g=r===l;if(this._opts.useTabStops){this._selection.isEmpty()&&/^\s*$/.test(t.getLineContent(r))&&(this._useLastEditRangeForCursorEndPosition=!0);let u=0,p=0;for(let m=r;m<=l;m++,u=p){p=0;const l=t.getLineContent(m);let f,_=n.LC(l);if((!this._opts.isUnshift||0!==l.length&&0!==_)&&(g||this._opts.isUnshift||0!==l.length)){if(-1===_&&(_=l.length),m>1){if(o.i.visibleColumnFromColumn(l,_+1,c)%d!=0&&t.tokenization.isCheapToTokenize(m-1)){const e=(0,a.A)(this._opts.autoIndent,t,new s.e(m-1,t.getLineMaxColumn(m-1),m-1,t.getLineMaxColumn(m-1)),this._languageConfigurationService);if(e){if(p=u,e.appendText)for(let t=0,i=e.appendText.length;t<i&&p<d&&32===e.appendText.charCodeAt(t);t++)p++;e.removeText&&(p=Math.max(0,p-e.removeText));for(let e=0;e<p&&(0!==_&&32===l.charCodeAt(_-1));e++)_--}}}this._opts.isUnshift&&0===_||(f=this._opts.isUnshift?e.unshiftIndent(l,_+1,c,d,h):e.shiftIndent(l,_+1,c,d,h),this._addEditOperation(i,new s.e(m,1,m,_+1),f),m!==r||this._selection.isEmpty()||(this._selectionStartColumnStaysPut=this._selection.startColumn<=_+1))}}}else{!this._opts.isUnshift&&this._selection.isEmpty()&&0===t.getLineLength(r)&&(this._useLastEditRangeForCursorEndPosition=!0);const e=h?u(" ",d):"\t";for(let o=r;o<=l;o++){const a=t.getLineContent(o);let l=n.LC(a);if((!this._opts.isUnshift||0!==a.length&&0!==l)&&((g||this._opts.isUnshift||0!==a.length)&&(-1===l&&(l=a.length),!this._opts.isUnshift||0!==l)))if(this._opts.isUnshift){l=Math.min(l,d);for(let e=0;e<l;e++){if(9===a.charCodeAt(e)){l=e+1;break}}this._addEditOperation(i,new s.e(o,1,o,l+1),"")}else this._addEditOperation(i,new s.e(o,1,o,1),e),o!==r||this._selection.isEmpty()||(this._selectionStartColumnStaysPut=1===this._selection.startColumn)}}this._selectionId=i.trackSelection(this._selection)}computeCursorState(e,t){if(this._useLastEditRangeForCursorEndPosition){const e=t.getInverseEditOperations()[0];return new r.Y(e.range.endLineNumber,e.range.endColumn,e.range.endLineNumber,e.range.endColumn)}const i=t.getTrackedSelection(this._selectionId);if(this._selectionStartColumnStaysPut){const e=this._selection.startColumn;return i.startColumn<=e?i:0===i.getDirection()?new r.Y(i.startLineNumber,e,i.endLineNumber,i.endColumn):new r.Y(i.endLineNumber,i.endColumn,i.startLineNumber,e)}return i}};g=c([d(2,l.c_)],g)},800:(e,t,i)=>{"use strict";i.d(t,{Pe:()=>p,ei:()=>g,wk:()=>l});var n=i(64141),o=i(22075),s=i(63580),r=i(23193),a=i(89872);const l=Object.freeze({id:"editor",order:5,type:"object",title:s.NC("editorConfigurationTitle","Editor"),scope:5}),c=Object.assign(Object.assign({},l),{properties:{"editor.tabSize":{type:"number",default:o.D.tabSize,minimum:1,markdownDescription:s.NC("tabSize","The number of spaces a tab is equal to. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.")},"editor.insertSpaces":{type:"boolean",default:o.D.insertSpaces,markdownDescription:s.NC("insertSpaces","Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.")},"editor.detectIndentation":{type:"boolean",default:o.D.detectIndentation,markdownDescription:s.NC("detectIndentation","Controls whether `#editor.tabSize#` and `#editor.insertSpaces#` will be automatically detected when a file is opened based on the file contents.")},"editor.trimAutoWhitespace":{type:"boolean",default:o.D.trimAutoWhitespace,description:s.NC("trimAutoWhitespace","Remove trailing auto inserted whitespace.")},"editor.largeFileOptimizations":{type:"boolean",default:o.D.largeFileOptimizations,description:s.NC("largeFileOptimizations","Special handling for large files to disable certain memory intensive features.")},"editor.wordBasedSuggestions":{type:"boolean",default:!0,description:s.NC("wordBasedSuggestions","Controls whether completions should be computed based on words in the document.")},"editor.wordBasedSuggestionsMode":{enum:["currentDocument","matchingDocuments","allDocuments"],default:"matchingDocuments",enumDescriptions:[s.NC("wordBasedSuggestionsMode.currentDocument","Only suggest words from the active document."),s.NC("wordBasedSuggestionsMode.matchingDocuments","Suggest words from all open documents of the same language."),s.NC("wordBasedSuggestionsMode.allDocuments","Suggest words from all open documents.")],description:s.NC("wordBasedSuggestionsMode","Controls from which documents word based completions are computed.")},"editor.semanticHighlighting.enabled":{enum:[!0,!1,"configuredByTheme"],enumDescriptions:[s.NC("semanticHighlighting.true","Semantic highlighting enabled for all color themes."),s.NC("semanticHighlighting.false","Semantic highlighting disabled for all color themes."),s.NC("semanticHighlighting.configuredByTheme","Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.")],default:"configuredByTheme",description:s.NC("semanticHighlighting.enabled","Controls whether the semanticHighlighting is shown for the languages that support it.")},"editor.stablePeek":{type:"boolean",default:!1,markdownDescription:s.NC("stablePeek","Keep peek editors open even when double clicking their content or when hitting `Escape`.")},"editor.maxTokenizationLineLength":{type:"integer",default:2e4,description:s.NC("maxTokenizationLineLength","Lines above this length will not be tokenized for performance reasons")},"editor.language.brackets":{type:["array","null"],default:null,description:s.NC("schema.brackets","Defines the bracket symbols that increase or decrease the indentation."),items:{type:"array",items:[{type:"string",description:s.NC("schema.openBracket","The opening bracket character or string sequence.")},{type:"string",description:s.NC("schema.closeBracket","The closing bracket character or string sequence.")}]}},"editor.language.colorizedBracketPairs":{type:["array","null"],default:null,description:s.NC("schema.colorizedBracketPairs","Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled."),items:{type:"array",items:[{type:"string",description:s.NC("schema.openBracket","The opening bracket character or string sequence.")},{type:"string",description:s.NC("schema.closeBracket","The closing bracket character or string sequence.")}]}},"diffEditor.maxComputationTime":{type:"number",default:5e3,description:s.NC("maxComputationTime","Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.")},"diffEditor.maxFileSize":{type:"number",default:50,description:s.NC("maxFileSize","Maximum file size in MB for which to compute diffs. Use 0 for no limit.")},"diffEditor.renderSideBySide":{type:"boolean",default:!0,description:s.NC("sideBySide","Controls whether the diff editor shows the diff side by side or inline.")},"diffEditor.renderMarginRevertIcon":{type:"boolean",default:!0,description:s.NC("renderMarginRevertIcon","When enabled, the diff editor shows arrows in its glyph margin to revert changes.")},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:!0,description:s.NC("ignoreTrimWhitespace","When enabled, the diff editor ignores changes in leading or trailing whitespace.")},"diffEditor.renderIndicators":{type:"boolean",default:!0,description:s.NC("renderIndicators","Controls whether the diff editor shows +/- indicators for added/removed changes.")},"diffEditor.codeLens":{type:"boolean",default:!1,description:s.NC("codeLens","Controls whether the editor shows CodeLens.")},"diffEditor.wordWrap":{type:"string",enum:["off","on","inherit"],default:"inherit",markdownEnumDescriptions:[s.NC("wordWrap.off","Lines will never wrap."),s.NC("wordWrap.on","Lines will wrap at the viewport width."),s.NC("wordWrap.inherit","Lines will wrap according to the `#editor.wordWrap#` setting.")]}}});for(const m of n.Bc){const e=m.schema;if(void 0!==e)if(void 0!==(d=e).type||void 0!==d.anyOf)c.properties[`editor.${m.name}`]=e;else for(const t in e)Object.hasOwnProperty.call(e,t)&&(c.properties[t]=e[t])}var d;let h=null;function u(){return null===h&&(h=Object.create(null),Object.keys(c.properties).forEach((e=>{h[e]=!0}))),h}function g(e){return u()[`editor.${e}`]||!1}function p(e){return u()[`diffEditor.${e}`]||!1}a.B.as(r.IP.Configuration).registerConfiguration(c)},64141:(e,t,i)=>{"use strict";i.d(t,{$J:()=>I,Av:()=>M,BH:()=>B,Bb:()=>d,Bc:()=>P,LJ:()=>h,NY:()=>S,O7:()=>_,Zc:()=>b,d2:()=>x,gk:()=>E,hL:()=>O,n0:()=>D,qt:()=>A,rk:()=>g,y0:()=>c});var n=i(63580),o=i(1432),s=i(270),r=i(9488),a=i(36248),l=i(22075);const c=8;class d{constructor(e){this._values=e}hasChanged(e){return this._values[e]}}class h{constructor(){this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0}}class u{constructor(e,t,i,n){this.id=e,this.name=t,this.defaultValue=i,this.schema=n}applyUpdate(e,t){return p(e,t)}compute(e,t,i){return i}}class g{constructor(e,t){this.newValue=e,this.didChange=t}}function p(e,t){if("object"!=typeof e||"object"!=typeof t||!e||!t)return new g(t,e!==t);if(Array.isArray(e)||Array.isArray(t)){const i=Array.isArray(e)&&Array.isArray(t)&&r.fS(e,t);return new g(t,!i)}let i=!1;for(const n in t)if(t.hasOwnProperty(n)){const o=p(e[n],t[n]);o.didChange&&(e[n]=o.newValue,i=!0)}return new g(e,i)}class m{constructor(e){this.schema=void 0,this.id=e,this.name="_never_",this.defaultValue=void 0}applyUpdate(e,t){return p(e,t)}validate(e){return this.defaultValue}}class f{constructor(e,t,i,n){this.id=e,this.name=t,this.defaultValue=i,this.schema=n}applyUpdate(e,t){return p(e,t)}validate(e){return void 0===e?this.defaultValue:e}compute(e,t,i){return i}}function _(e,t){return void 0===e?t:"false"!==e&&Boolean(e)}class v extends f{constructor(e,t,i,n){void 0!==n&&(n.type="boolean",n.default=i),super(e,t,i,n)}validate(e){return _(e,this.defaultValue)}}function b(e,t,i,n){if(void 0===e)return t;let o=parseInt(e,10);return isNaN(o)?t:(o=Math.max(i,o),o=Math.min(n,o),0|o)}class C extends f{constructor(e,t,i,n,o,s){void 0!==s&&(s.type="integer",s.default=i,s.minimum=n,s.maximum=o),super(e,t,i,s),this.minimum=n,this.maximum=o}static clampedInt(e,t,i,n){return b(e,t,i,n)}validate(e){return C.clampedInt(e,this.defaultValue,this.minimum,this.maximum)}}class w extends f{constructor(e,t,i,n,o){void 0!==o&&(o.type="number",o.default=i),super(e,t,i,o),this.validationFn=n}static clamp(e,t,i){return e<t?t:e>i?i:e}static float(e,t){if("number"==typeof e)return e;if(void 0===e)return t;const i=parseFloat(e);return isNaN(i)?t:i}validate(e){return this.validationFn(w.float(e,this.defaultValue))}}class y extends f{static string(e,t){return"string"!=typeof e?t:e}constructor(e,t,i,n){void 0!==n&&(n.type="string",n.default=i),super(e,t,i,n)}validate(e){return y.string(e,this.defaultValue)}}function S(e,t,i){return"string"!=typeof e||-1===i.indexOf(e)?t:e}class L extends f{constructor(e,t,i,n,o){void 0!==o&&(o.type="string",o.enum=n,o.default=i),super(e,t,i,o),this._allowedValues=n}validate(e){return S(e,this.defaultValue,this._allowedValues)}}class k extends u{constructor(e,t,i,n,o,s,r){void 0!==r&&(r.type="string",r.enum=o,r.default=n),super(e,t,i,r),this._allowedValues=o,this._convert=s}validate(e){return"string"!=typeof e||-1===this._allowedValues.indexOf(e)?this.defaultValue:this._convert(e)}}var x;!function(e){e[e.Line=1]="Line",e[e.Block=2]="Block",e[e.Underline=3]="Underline",e[e.LineThin=4]="LineThin",e[e.BlockOutline=5]="BlockOutline",e[e.UnderlineThin=6]="UnderlineThin"}(x||(x={}));class D extends u{constructor(){super(47,"fontLigatures",D.OFF,{anyOf:[{type:"boolean",description:n.NC("fontLigatures","Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.")},{type:"string",description:n.NC("fontFeatureSettings","Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")}],description:n.NC("fontLigaturesGeneral","Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property."),default:!1})}validate(e){return void 0===e?this.defaultValue:"string"==typeof e?"false"===e?D.OFF:"true"===e?D.ON:e:Boolean(e)?D.ON:D.OFF}}D.OFF='"liga" off, "calt" off',D.ON='"liga" on, "calt" on';class N extends u{constructor(){super(49,"fontWeight",O.fontWeight,{anyOf:[{type:"number",minimum:N.MINIMUM_VALUE,maximum:N.MAXIMUM_VALUE,errorMessage:n.NC("fontWeightErrorMessage",'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.')},{type:"string",pattern:"^(normal|bold|1000|[1-9][0-9]{0,2})$"},{enum:N.SUGGESTION_VALUES}],default:O.fontWeight,description:n.NC("fontWeight",'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')})}validate(e){return"normal"===e||"bold"===e?e:String(C.clampedInt(e,O.fontWeight,N.MINIMUM_VALUE,N.MAXIMUM_VALUE))}}N.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"],N.MINIMUM_VALUE=1,N.MAXIMUM_VALUE=1e3;class E extends m{constructor(){super(133)}compute(e,t,i){return E.computeLayout(t,{memory:e.memory,outerWidth:e.outerWidth,outerHeight:e.outerHeight,isDominatedByLongLines:e.isDominatedByLongLines,lineHeight:e.fontInfo.lineHeight,viewLineCount:e.viewLineCount,lineNumbersDigitCount:e.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:e.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:e.fontInfo.maxDigitWidth,pixelRatio:e.pixelRatio})}static computeContainedMinimapLineCount(e){const t=e.height/e.lineHeight,i=e.scrollBeyondLastLine?t-1:0,n=(e.viewLineCount+i)/(e.pixelRatio*e.height);return{typicalViewportLineCount:t,extraLinesBeyondLastLine:i,desiredRatio:n,minimapLineCount:Math.floor(e.viewLineCount/n)}}static _computeMinimapLayout(e,t){const i=e.outerWidth,n=e.outerHeight,o=e.pixelRatio;if(!e.minimap.enabled)return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(o*n),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:n};const s=t.stableMinimapLayoutInput,r=s&&e.outerHeight===s.outerHeight&&e.lineHeight===s.lineHeight&&e.typicalHalfwidthCharacterWidth===s.typicalHalfwidthCharacterWidth&&e.pixelRatio===s.pixelRatio&&e.scrollBeyondLastLine===s.scrollBeyondLastLine&&e.minimap.enabled===s.minimap.enabled&&e.minimap.side===s.minimap.side&&e.minimap.size===s.minimap.size&&e.minimap.showSlider===s.minimap.showSlider&&e.minimap.renderCharacters===s.minimap.renderCharacters&&e.minimap.maxColumn===s.minimap.maxColumn&&e.minimap.scale===s.minimap.scale&&e.verticalScrollbarWidth===s.verticalScrollbarWidth&&e.isViewportWrapping===s.isViewportWrapping,a=e.lineHeight,l=e.typicalHalfwidthCharacterWidth,d=e.scrollBeyondLastLine,h=e.minimap.renderCharacters;let u=o>=2?Math.round(2*e.minimap.scale):e.minimap.scale;const g=e.minimap.maxColumn,p=e.minimap.size,m=e.minimap.side,f=e.verticalScrollbarWidth,_=e.viewLineCount,v=e.remainingWidth,b=e.isViewportWrapping,C=h?2:3;let w=Math.floor(o*n);const y=w/o;let S=!1,L=!1,k=C*u,x=u/o,D=1;if("fill"===p||"fit"===p){const{typicalViewportLineCount:i,extraLinesBeyondLastLine:s,desiredRatio:l,minimapLineCount:c}=E.computeContainedMinimapLineCount({viewLineCount:_,scrollBeyondLastLine:d,height:n,lineHeight:a,pixelRatio:o});if(_/c>1)S=!0,L=!0,u=1,k=1,x=u/o;else{let n=!1,c=u+1;if("fit"===p){const e=Math.ceil((_+s)*k);b&&r&&v<=t.stableFitRemainingWidth?(n=!0,c=t.stableFitMaxMinimapScale):n=e>w}if("fill"===p||n){S=!0;const n=u;k=Math.min(a*o,Math.max(1,Math.floor(1/l))),b&&r&&v<=t.stableFitRemainingWidth&&(c=t.stableFitMaxMinimapScale),u=Math.min(c,Math.max(1,Math.floor(k/C))),u>n&&(D=Math.min(2,u/n)),x=u/o/D,w=Math.ceil(Math.max(i,_+s)*k),b?(t.stableMinimapLayoutInput=e,t.stableFitRemainingWidth=v,t.stableFitMaxMinimapScale=u):(t.stableMinimapLayoutInput=null,t.stableFitRemainingWidth=0)}}}const N=Math.floor(g*x),I=Math.min(N,Math.max(0,Math.floor((v-f-2)*x/(l+x)))+c);let T=Math.floor(o*I);const M=T/o;T=Math.floor(T*D);return{renderMinimap:h?1:2,minimapLeft:"left"===m?0:i-I-f,minimapWidth:I,minimapHeightIsEditorHeight:S,minimapIsSampling:L,minimapScale:u,minimapLineHeight:k,minimapCanvasInnerWidth:T,minimapCanvasInnerHeight:w,minimapCanvasOuterWidth:M,minimapCanvasOuterHeight:y}}static computeLayout(e,t){const i=0|t.outerWidth,n=0|t.outerHeight,o=0|t.lineHeight,s=0|t.lineNumbersDigitCount,r=t.typicalHalfwidthCharacterWidth,a=t.maxDigitWidth,l=t.pixelRatio,c=t.viewLineCount,d=e.get(125),u="inherit"===d?e.get(124):d,g="inherit"===u?e.get(120):u,p=e.get(123),m=e.get(2),f=t.isDominatedByLongLines,_=e.get(52),v=0!==e.get(62).renderType,b=e.get(63),w=e.get(96),y=e.get(67),S=e.get(94),L=S.verticalScrollbarSize,k=S.verticalHasArrows,x=S.arrowSize,D=S.horizontalScrollbarSize,N=e.get(60),I=e.get(39),T="never"!==e.get(101);let M;if("string"==typeof N&&/^\d+(\.\d+)?ch$/.test(N)){const e=parseFloat(N.substr(0,N.length-2));M=C.clampedInt(e*r,0,0,1e3)}else M=C.clampedInt(N,0,0,1e3);I&&T&&(M+=16);let A=0;if(v){const e=Math.max(s,b);A=Math.round(e*a)}let R=0;_&&(R=o);let O=0,P=O+R,F=P+A,B=F+M;const V=i-R-A-M;let W=!1,H=!1,z=-1;2!==m&&("inherit"===u&&f?(W=!0,H=!0):"on"===g||"bounded"===g?H=!0:"wordWrapColumn"===g&&(z=p));const j=E._computeMinimapLayout({outerWidth:i,outerHeight:n,lineHeight:o,typicalHalfwidthCharacterWidth:r,pixelRatio:l,scrollBeyondLastLine:w,minimap:y,verticalScrollbarWidth:L,viewLineCount:c,remainingWidth:V,isViewportWrapping:H},t.memory||new h);0!==j.renderMinimap&&0===j.minimapLeft&&(O+=j.minimapWidth,P+=j.minimapWidth,F+=j.minimapWidth,B+=j.minimapWidth);const U=V-j.minimapWidth,K=Math.max(1,Math.floor((U-L-2)/r)),$=k?x:0;return H&&(z=Math.max(1,K),"bounded"===g&&(z=Math.min(z,p))),{width:i,height:n,glyphMarginLeft:O,glyphMarginWidth:R,lineNumbersLeft:P,lineNumbersWidth:A,decorationsLeft:F,decorationsWidth:M,contentLeft:B,contentWidth:U,minimap:j,viewportColumn:K,isWordWrapMinified:W,isViewportWrapping:H,wrappingColumn:z,verticalScrollbarWidth:L,horizontalScrollbarHeight:D,overviewRuler:{top:$,width:L,height:n-2*$,right:0}}}}function I(e){const t=e.get(89);return"editable"===t?e.get(83):"on"!==t}function T(e,t){if("string"!=typeof e)return t;switch(e){case"hidden":return 2;case"visible":return 3;default:return 1}}const M="inUntrustedWorkspace",A={allowedCharacters:"editor.unicodeHighlight.allowedCharacters",invisibleCharacters:"editor.unicodeHighlight.invisibleCharacters",nonBasicASCII:"editor.unicodeHighlight.nonBasicASCII",ambiguousCharacters:"editor.unicodeHighlight.ambiguousCharacters",includeComments:"editor.unicodeHighlight.includeComments",includeStrings:"editor.unicodeHighlight.includeStrings",allowedLocales:"editor.unicodeHighlight.allowedLocales"};function R(e,t,i){const n=i.indexOf(e);return-1===n?t:i[n]}const O={fontFamily:o.dz?"Menlo, Monaco, 'Courier New', monospace":o.IJ?"'Droid Sans Mono', 'monospace', monospace":"Consolas, 'Courier New', monospace",fontWeight:"normal",fontSize:o.dz?12:14,lineHeight:0,letterSpacing:0},P=[];function F(e){return P[e.id]=e,e}const B={acceptSuggestionOnCommitCharacter:F(new v(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:n.NC("acceptSuggestionOnCommitCharacter","Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`; `) can be a commit character that accepts a suggestion and types that character.")})),acceptSuggestionOnEnter:F(new L(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",n.NC("acceptSuggestionOnEnterSmart","Only accept a suggestion with `Enter` when it makes a textual change."),""],markdownDescription:n.NC("acceptSuggestionOnEnter","Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.")})),accessibilitySupport:F(new class extends u{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[n.NC("accessibilitySupport.auto","The editor will use platform APIs to detect when a Screen Reader is attached."),n.NC("accessibilitySupport.on","The editor will be permanently optimized for usage with a Screen Reader. Word wrapping will be disabled."),n.NC("accessibilitySupport.off","The editor will never be optimized for usage with a Screen Reader.")],default:"auto",description:n.NC("accessibilitySupport","Controls whether the editor should run in a mode where it is optimized for screen readers. Setting to on will disable word wrapping.")})}validate(e){switch(e){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(e,t,i){return 0===i?e.accessibilitySupport:i}}),accessibilityPageSize:F(new C(3,"accessibilityPageSize",10,1,1073741824,{description:n.NC("accessibilityPageSize","Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default.")})),ariaLabel:F(new y(4,"ariaLabel",n.NC("editorViewAccessibleLabel","Editor content"))),autoClosingBrackets:F(new L(5,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",n.NC("editor.autoClosingBrackets.languageDefined","Use language configurations to determine when to autoclose brackets."),n.NC("editor.autoClosingBrackets.beforeWhitespace","Autoclose brackets only when the cursor is to the left of whitespace."),""],description:n.NC("autoClosingBrackets","Controls whether the editor should automatically close brackets after the user adds an opening bracket.")})),autoClosingDelete:F(new L(6,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",n.NC("editor.autoClosingDelete.auto","Remove adjacent closing quotes or brackets only if they were automatically inserted."),""],description:n.NC("autoClosingDelete","Controls whether the editor should remove adjacent closing quotes or brackets when deleting.")})),autoClosingOvertype:F(new L(7,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",n.NC("editor.autoClosingOvertype.auto","Type over closing quotes or brackets only if they were automatically inserted."),""],description:n.NC("autoClosingOvertype","Controls whether the editor should type over closing quotes or brackets.")})),autoClosingQuotes:F(new L(8,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",n.NC("editor.autoClosingQuotes.languageDefined","Use language configurations to determine when to autoclose quotes."),n.NC("editor.autoClosingQuotes.beforeWhitespace","Autoclose quotes only when the cursor is to the left of whitespace."),""],description:n.NC("autoClosingQuotes","Controls whether the editor should automatically close quotes after the user adds an opening quote.")})),autoIndent:F(new k(9,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],(function(e){switch(e){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}),{enumDescriptions:[n.NC("editor.autoIndent.none","The editor will not insert indentation automatically."),n.NC("editor.autoIndent.keep","The editor will keep the current line's indentation."),n.NC("editor.autoIndent.brackets","The editor will keep the current line's indentation and honor language defined brackets."),n.NC("editor.autoIndent.advanced","The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages."),n.NC("editor.autoIndent.full","The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.")],description:n.NC("autoIndent","Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.")})),automaticLayout:F(new v(10,"automaticLayout",!1)),autoSurround:F(new L(11,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[n.NC("editor.autoSurround.languageDefined","Use language configurations to determine when to automatically surround selections."),n.NC("editor.autoSurround.quotes","Surround with quotes but not brackets."),n.NC("editor.autoSurround.brackets","Surround with brackets but not quotes."),""],description:n.NC("autoSurround","Controls whether the editor should automatically surround selections when typing quotes or brackets.")})),bracketPairColorization:F(new class extends u{constructor(){const e={enabled:l.D.bracketPairColorizationOptions.enabled,independentColorPoolPerBracketType:l.D.bracketPairColorizationOptions.independentColorPoolPerBracketType};super(12,"bracketPairColorization",e,{"editor.bracketPairColorization.enabled":{type:"boolean",default:e.enabled,markdownDescription:n.NC("bracketPairColorization.enabled","Controls whether bracket pair colorization is enabled or not. Use {0} to override the bracket highlight colors.","`#workbench.colorCustomizations#`")},"editor.bracketPairColorization.independentColorPoolPerBracketType":{type:"boolean",default:e.independentColorPoolPerBracketType,description:n.NC("bracketPairColorization.independentColorPoolPerBracketType","Controls whether each bracket type has its own independent color pool.")}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),independentColorPoolPerBracketType:_(t.independentColorPoolPerBracketType,this.defaultValue.independentColorPoolPerBracketType)}}}),bracketPairGuides:F(new class extends u{constructor(){const e={bracketPairs:!1,bracketPairsHorizontal:"active",highlightActiveBracketPair:!0,indentation:!0,highlightActiveIndentation:!0};super(13,"guides",e,{"editor.guides.bracketPairs":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[n.NC("editor.guides.bracketPairs.true","Enables bracket pair guides."),n.NC("editor.guides.bracketPairs.active","Enables bracket pair guides only for the active bracket pair."),n.NC("editor.guides.bracketPairs.false","Disables bracket pair guides.")],default:e.bracketPairs,description:n.NC("editor.guides.bracketPairs","Controls whether bracket pair guides are enabled or not.")},"editor.guides.bracketPairsHorizontal":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[n.NC("editor.guides.bracketPairsHorizontal.true","Enables horizontal guides as addition to vertical bracket pair guides."),n.NC("editor.guides.bracketPairsHorizontal.active","Enables horizontal guides only for the active bracket pair."),n.NC("editor.guides.bracketPairsHorizontal.false","Disables horizontal bracket pair guides.")],default:e.bracketPairsHorizontal,description:n.NC("editor.guides.bracketPairsHorizontal","Controls whether horizontal bracket pair guides are enabled or not.")},"editor.guides.highlightActiveBracketPair":{type:"boolean",default:e.highlightActiveBracketPair,description:n.NC("editor.guides.highlightActiveBracketPair","Controls whether the editor should highlight the active bracket pair.")},"editor.guides.indentation":{type:"boolean",default:e.indentation,description:n.NC("editor.guides.indentation","Controls whether the editor should render indent guides.")},"editor.guides.highlightActiveIndentation":{type:["boolean","string"],enum:[!0,"always",!1],enumDescriptions:[n.NC("editor.guides.highlightActiveIndentation.true","Highlights the active indent guide."),n.NC("editor.guides.highlightActiveIndentation.always","Highlights the active indent guide even if bracket guides are highlighted."),n.NC("editor.guides.highlightActiveIndentation.false","Do not highlight the active indent guide.")],default:e.highlightActiveIndentation,description:n.NC("editor.guides.highlightActiveIndentation","Controls whether the editor should highlight the active indent guide.")}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return{bracketPairs:R(t.bracketPairs,this.defaultValue.bracketPairs,[!0,!1,"active"]),bracketPairsHorizontal:R(t.bracketPairsHorizontal,this.defaultValue.bracketPairsHorizontal,[!0,!1,"active"]),highlightActiveBracketPair:_(t.highlightActiveBracketPair,this.defaultValue.highlightActiveBracketPair),indentation:_(t.indentation,this.defaultValue.indentation),highlightActiveIndentation:R(t.highlightActiveIndentation,this.defaultValue.highlightActiveIndentation,[!0,!1,"always"])}}}),stickyTabStops:F(new v(106,"stickyTabStops",!1,{description:n.NC("stickyTabStops","Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.")})),codeLens:F(new v(14,"codeLens",!0,{description:n.NC("codeLens","Controls whether the editor shows CodeLens.")})),codeLensFontFamily:F(new y(15,"codeLensFontFamily","",{description:n.NC("codeLensFontFamily","Controls the font family for CodeLens.")})),codeLensFontSize:F(new C(16,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,markdownDescription:n.NC("codeLensFontSize","Controls the font size in pixels for CodeLens. When set to `0`, 90% of `#editor.fontSize#` is used.")})),colorDecorators:F(new v(17,"colorDecorators",!0,{description:n.NC("colorDecorators","Controls whether the editor should render the inline color decorators and color picker.")})),columnSelection:F(new v(18,"columnSelection",!1,{description:n.NC("columnSelection","Enable that the selection with the mouse and keys is doing column selection.")})),comments:F(new class extends u{constructor(){const e={insertSpace:!0,ignoreEmptyLines:!0};super(19,"comments",e,{"editor.comments.insertSpace":{type:"boolean",default:e.insertSpace,description:n.NC("comments.insertSpace","Controls whether a space character is inserted when commenting.")},"editor.comments.ignoreEmptyLines":{type:"boolean",default:e.ignoreEmptyLines,description:n.NC("comments.ignoreEmptyLines","Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return{insertSpace:_(t.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:_(t.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}}),contextmenu:F(new v(20,"contextmenu",!0)),copyWithSyntaxHighlighting:F(new v(21,"copyWithSyntaxHighlighting",!0,{description:n.NC("copyWithSyntaxHighlighting","Controls whether syntax highlighting should be copied into the clipboard.")})),cursorBlinking:F(new k(22,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],(function(e){switch(e){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}),{description:n.NC("cursorBlinking","Control the cursor animation style.")})),cursorSmoothCaretAnimation:F(new v(23,"cursorSmoothCaretAnimation",!1,{description:n.NC("cursorSmoothCaretAnimation","Controls whether the smooth caret animation should be enabled.")})),cursorStyle:F(new k(24,"cursorStyle",x.Line,"line",["line","block","underline","line-thin","block-outline","underline-thin"],(function(e){switch(e){case"line":return x.Line;case"block":return x.Block;case"underline":return x.Underline;case"line-thin":return x.LineThin;case"block-outline":return x.BlockOutline;case"underline-thin":return x.UnderlineThin}}),{description:n.NC("cursorStyle","Controls the cursor style.")})),cursorSurroundingLines:F(new C(25,"cursorSurroundingLines",0,0,1073741824,{description:n.NC("cursorSurroundingLines","Controls the minimal number of visible leading and trailing lines surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.")})),cursorSurroundingLinesStyle:F(new L(26,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[n.NC("cursorSurroundingLinesStyle.default","`cursorSurroundingLines` is enforced only when triggered via the keyboard or API."),n.NC("cursorSurroundingLinesStyle.all","`cursorSurroundingLines` is enforced always.")],description:n.NC("cursorSurroundingLinesStyle","Controls when `cursorSurroundingLines` should be enforced.")})),cursorWidth:F(new C(27,"cursorWidth",0,0,1073741824,{markdownDescription:n.NC("cursorWidth","Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.")})),disableLayerHinting:F(new v(28,"disableLayerHinting",!1)),disableMonospaceOptimizations:F(new v(29,"disableMonospaceOptimizations",!1)),domReadOnly:F(new v(30,"domReadOnly",!1)),dragAndDrop:F(new v(31,"dragAndDrop",!0,{description:n.NC("dragAndDrop","Controls whether the editor should allow moving selections via drag and drop.")})),emptySelectionClipboard:F(new class extends v{constructor(){super(33,"emptySelectionClipboard",!0,{description:n.NC("emptySelectionClipboard","Controls whether copying without a selection copies the current line.")})}compute(e,t,i){return i&&e.emptySelectionClipboard}}),dropIntoEditor:F(new class extends u{constructor(){const e={enabled:!0};super(32,"dropIntoEditor",e,{"editor.dropIntoEditor.enabled":{type:"boolean",default:e.enabled,markdownDescription:n.NC("dropIntoEditor.enabled","Controls whether you can drag and drop a file into a text editor by holding down `shift` (instead of opening the file in an editor).")}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;return{enabled:_(e.enabled,this.defaultValue.enabled)}}}),experimental:F(new class extends u{constructor(){const e={stickyScroll:{enabled:!1}};super(34,"experimental",e,{"editor.experimental.stickyScroll.enabled":{type:"boolean",default:e.stickyScroll.enabled,description:n.NC("editor.experimental.stickyScroll","Shows the nested current scopes during the scroll at the top of the editor.")}})}validate(e){var t;if(!e||"object"!=typeof e)return this.defaultValue;return{stickyScroll:{enabled:_(null===(t=e.stickyScroll)||void 0===t?void 0:t.enabled,this.defaultValue.stickyScroll.enabled)}}}}),extraEditorClassName:F(new y(35,"extraEditorClassName","")),fastScrollSensitivity:F(new w(36,"fastScrollSensitivity",5,(e=>e<=0?5:e),{markdownDescription:n.NC("fastScrollSensitivity","Scrolling speed multiplier when pressing `Alt`.")})),find:F(new class extends u{constructor(){const e={cursorMoveOnType:!0,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0};super(37,"find",e,{"editor.find.cursorMoveOnType":{type:"boolean",default:e.cursorMoveOnType,description:n.NC("find.cursorMoveOnType","Controls whether the cursor should jump to find matches while typing.")},"editor.find.seedSearchStringFromSelection":{type:"string",enum:["never","always","selection"],default:e.seedSearchStringFromSelection,enumDescriptions:[n.NC("editor.find.seedSearchStringFromSelection.never","Never seed search string from the editor selection."),n.NC("editor.find.seedSearchStringFromSelection.always","Always seed search string from the editor selection, including word at cursor position."),n.NC("editor.find.seedSearchStringFromSelection.selection","Only seed search string from the editor selection.")],description:n.NC("find.seedSearchStringFromSelection","Controls whether the search string in the Find Widget is seeded from the editor selection.")},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:e.autoFindInSelection,enumDescriptions:[n.NC("editor.find.autoFindInSelection.never","Never turn on Find in Selection automatically (default)."),n.NC("editor.find.autoFindInSelection.always","Always turn on Find in Selection automatically."),n.NC("editor.find.autoFindInSelection.multiline","Turn on Find in Selection automatically when multiple lines of content are selected.")],description:n.NC("find.autoFindInSelection","Controls the condition for turning on Find in Selection automatically.")},"editor.find.globalFindClipboard":{type:"boolean",default:e.globalFindClipboard,description:n.NC("find.globalFindClipboard","Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),included:o.dz},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:e.addExtraSpaceOnTop,description:n.NC("find.addExtraSpaceOnTop","Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.")},"editor.find.loop":{type:"boolean",default:e.loop,description:n.NC("find.loop","Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.")}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return{cursorMoveOnType:_(t.cursorMoveOnType,this.defaultValue.cursorMoveOnType),seedSearchStringFromSelection:"boolean"==typeof e.seedSearchStringFromSelection?e.seedSearchStringFromSelection?"always":"never":S(t.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:"boolean"==typeof e.autoFindInSelection?e.autoFindInSelection?"always":"never":S(t.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:_(t.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:_(t.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:_(t.loop,this.defaultValue.loop)}}}),fixedOverflowWidgets:F(new v(38,"fixedOverflowWidgets",!1)),folding:F(new v(39,"folding",!0,{description:n.NC("folding","Controls whether the editor has code folding enabled.")})),foldingStrategy:F(new L(40,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[n.NC("foldingStrategy.auto","Use a language-specific folding strategy if available, else the indentation-based one."),n.NC("foldingStrategy.indentation","Use the indentation-based folding strategy.")],description:n.NC("foldingStrategy","Controls the strategy for computing folding ranges.")})),foldingHighlight:F(new v(41,"foldingHighlight",!0,{description:n.NC("foldingHighlight","Controls whether the editor should highlight folded ranges.")})),foldingImportsByDefault:F(new v(42,"foldingImportsByDefault",!1,{description:n.NC("foldingImportsByDefault","Controls whether the editor automatically collapses import ranges.")})),foldingMaximumRegions:F(new C(43,"foldingMaximumRegions",5e3,10,65e3,{description:n.NC("foldingMaximumRegions","The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.")})),unfoldOnClickAfterEndOfLine:F(new v(44,"unfoldOnClickAfterEndOfLine",!1,{description:n.NC("unfoldOnClickAfterEndOfLine","Controls whether clicking on the empty content after a folded line will unfold the line.")})),fontFamily:F(new y(45,"fontFamily",O.fontFamily,{description:n.NC("fontFamily","Controls the font family.")})),fontInfo:F(new class extends m{constructor(){super(46)}compute(e,t,i){return e.fontInfo}}),fontLigatures2:F(new D),fontSize:F(new class extends f{constructor(){super(48,"fontSize",O.fontSize,{type:"number",minimum:6,maximum:100,default:O.fontSize,description:n.NC("fontSize","Controls the font size in pixels.")})}validate(e){const t=w.float(e,this.defaultValue);return 0===t?O.fontSize:w.clamp(t,6,100)}compute(e,t,i){return e.fontInfo.fontSize}}),fontWeight:F(new N),formatOnPaste:F(new v(50,"formatOnPaste",!1,{description:n.NC("formatOnPaste","Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.")})),formatOnType:F(new v(51,"formatOnType",!1,{description:n.NC("formatOnType","Controls whether the editor should automatically format the line after typing.")})),glyphMargin:F(new v(52,"glyphMargin",!0,{description:n.NC("glyphMargin","Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.")})),gotoLocation:F(new class extends u{constructor(){const e={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:""},t={type:"string",enum:["peek","gotoAndPeek","goto"],default:e.multiple,enumDescriptions:[n.NC("editor.gotoLocation.multiple.peek","Show peek view of the results (default)"),n.NC("editor.gotoLocation.multiple.gotoAndPeek","Go to the primary result and show a peek view"),n.NC("editor.gotoLocation.multiple.goto","Go to the primary result and enable peek-less navigation to others")]},i=["","editor.action.referenceSearch.trigger","editor.action.goToReferences","editor.action.peekImplementation","editor.action.goToImplementation","editor.action.peekTypeDefinition","editor.action.goToTypeDefinition","editor.action.peekDeclaration","editor.action.revealDeclaration","editor.action.peekDefinition","editor.action.revealDefinitionAside","editor.action.revealDefinition"];super(53,"gotoLocation",e,{"editor.gotoLocation.multiple":{deprecationMessage:n.NC("editor.gotoLocation.multiple.deprecated","This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")},"editor.gotoLocation.multipleDefinitions":Object.assign({description:n.NC("editor.editor.gotoLocation.multipleDefinitions","Controls the behavior the 'Go to Definition'-command when multiple target locations exist.")},t),"editor.gotoLocation.multipleTypeDefinitions":Object.assign({description:n.NC("editor.editor.gotoLocation.multipleTypeDefinitions","Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.")},t),"editor.gotoLocation.multipleDeclarations":Object.assign({description:n.NC("editor.editor.gotoLocation.multipleDeclarations","Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.")},t),"editor.gotoLocation.multipleImplementations":Object.assign({description:n.NC("editor.editor.gotoLocation.multipleImplemenattions","Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.")},t),"editor.gotoLocation.multipleReferences":Object.assign({description:n.NC("editor.editor.gotoLocation.multipleReferences","Controls the behavior the 'Go to References'-command when multiple target locations exist.")},t),"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:e.alternativeDefinitionCommand,enum:i,description:n.NC("alternativeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Definition' is the current location.")},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:e.alternativeTypeDefinitionCommand,enum:i,description:n.NC("alternativeTypeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.")},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:e.alternativeDeclarationCommand,enum:i,description:n.NC("alternativeDeclarationCommand","Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.")},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:e.alternativeImplementationCommand,enum:i,description:n.NC("alternativeImplementationCommand","Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.")},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:e.alternativeReferenceCommand,enum:i,description:n.NC("alternativeReferenceCommand","Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}})}validate(e){var t,i,n,o,s;if(!e||"object"!=typeof e)return this.defaultValue;const r=e;return{multiple:S(r.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:null!==(t=r.multipleDefinitions)&&void 0!==t?t:S(r.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:null!==(i=r.multipleTypeDefinitions)&&void 0!==i?i:S(r.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:null!==(n=r.multipleDeclarations)&&void 0!==n?n:S(r.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:null!==(o=r.multipleImplementations)&&void 0!==o?o:S(r.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:null!==(s=r.multipleReferences)&&void 0!==s?s:S(r.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:y.string(r.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:y.string(r.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:y.string(r.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:y.string(r.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:y.string(r.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand)}}}),hideCursorInOverviewRuler:F(new v(54,"hideCursorInOverviewRuler",!1,{description:n.NC("hideCursorInOverviewRuler","Controls whether the cursor should be hidden in the overview ruler.")})),hover:F(new class extends u{constructor(){const e={enabled:!0,delay:300,sticky:!0,above:!0};super(55,"hover",e,{"editor.hover.enabled":{type:"boolean",default:e.enabled,description:n.NC("hover.enabled","Controls whether the hover is shown.")},"editor.hover.delay":{type:"number",default:e.delay,minimum:0,maximum:1e4,description:n.NC("hover.delay","Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:e.sticky,description:n.NC("hover.sticky","Controls whether the hover should remain visible when mouse is moved over it.")},"editor.hover.above":{type:"boolean",default:e.above,description:n.NC("hover.above","Prefer showing hovers above the line, if there's space.")}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),delay:C.clampedInt(t.delay,this.defaultValue.delay,0,1e4),sticky:_(t.sticky,this.defaultValue.sticky),above:_(t.above,this.defaultValue.above)}}}),inDiffEditor:F(new v(56,"inDiffEditor",!1)),letterSpacing:F(new w(58,"letterSpacing",O.letterSpacing,(e=>w.clamp(e,-5,20)),{description:n.NC("letterSpacing","Controls the letter spacing in pixels.")})),lightbulb:F(new class extends u{constructor(){const e={enabled:!0};super(59,"lightbulb",e,{"editor.lightbulb.enabled":{type:"boolean",default:e.enabled,description:n.NC("codeActions","Enables the code action lightbulb in the editor.")}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;return{enabled:_(e.enabled,this.defaultValue.enabled)}}}),lineDecorationsWidth:F(new f(60,"lineDecorationsWidth",10)),lineHeight:F(new class extends w{constructor(){super(61,"lineHeight",O.lineHeight,(e=>w.clamp(e,0,150)),{markdownDescription:n.NC("lineHeight","Controls the line height. \n - Use 0 to automatically compute the line height from the font size.\n - Values between 0 and 8 will be used as a multiplier with the font size.\n - Values greater than or equal to 8 will be used as effective values.")})}compute(e,t,i){return e.fontInfo.lineHeight}}),lineNumbers:F(new class extends u{constructor(){super(62,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[n.NC("lineNumbers.off","Line numbers are not rendered."),n.NC("lineNumbers.on","Line numbers are rendered as absolute number."),n.NC("lineNumbers.relative","Line numbers are rendered as distance in lines to cursor position."),n.NC("lineNumbers.interval","Line numbers are rendered every 10 lines.")],default:"on",description:n.NC("lineNumbers","Controls the display of line numbers.")})}validate(e){let t=this.defaultValue.renderType,i=this.defaultValue.renderFn;return void 0!==e&&("function"==typeof e?(t=4,i=e):t="interval"===e?3:"relative"===e?2:"on"===e?1:0),{renderType:t,renderFn:i}}}),lineNumbersMinChars:F(new C(63,"lineNumbersMinChars",5,1,300)),linkedEditing:F(new v(64,"linkedEditing",!1,{description:n.NC("linkedEditing","Controls whether the editor has linked editing enabled. Depending on the language, related symbols, e.g. HTML tags, are updated while editing.")})),links:F(new v(65,"links",!0,{description:n.NC("links","Controls whether the editor should detect links and make them clickable.")})),matchBrackets:F(new L(66,"matchBrackets","always",["always","near","never"],{description:n.NC("matchBrackets","Highlight matching brackets.")})),minimap:F(new class extends u{constructor(){const e={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",autohide:!1,renderCharacters:!0,maxColumn:120,scale:1};super(67,"minimap",e,{"editor.minimap.enabled":{type:"boolean",default:e.enabled,description:n.NC("minimap.enabled","Controls whether the minimap is shown.")},"editor.minimap.autohide":{type:"boolean",default:e.autohide,description:n.NC("minimap.autohide","Controls whether the minimap is hidden automatically.")},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[n.NC("minimap.size.proportional","The minimap has the same size as the editor contents (and might scroll)."),n.NC("minimap.size.fill","The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)."),n.NC("minimap.size.fit","The minimap will shrink as necessary to never be larger than the editor (no scrolling).")],default:e.size,description:n.NC("minimap.size","Controls the size of the minimap.")},"editor.minimap.side":{type:"string",enum:["left","right"],default:e.side,description:n.NC("minimap.side","Controls the side where to render the minimap.")},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:e.showSlider,description:n.NC("minimap.showSlider","Controls when the minimap slider is shown.")},"editor.minimap.scale":{type:"number",default:e.scale,minimum:1,maximum:3,enum:[1,2,3],description:n.NC("minimap.scale","Scale of content drawn in the minimap: 1, 2 or 3.")},"editor.minimap.renderCharacters":{type:"boolean",default:e.renderCharacters,description:n.NC("minimap.renderCharacters","Render the actual characters on a line as opposed to color blocks.")},"editor.minimap.maxColumn":{type:"number",default:e.maxColumn,description:n.NC("minimap.maxColumn","Limit the width of the minimap to render at most a certain number of columns.")}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),autohide:_(t.autohide,this.defaultValue.autohide),size:S(t.size,this.defaultValue.size,["proportional","fill","fit"]),side:S(t.side,this.defaultValue.side,["right","left"]),showSlider:S(t.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:_(t.renderCharacters,this.defaultValue.renderCharacters),scale:C.clampedInt(t.scale,1,1,3),maxColumn:C.clampedInt(t.maxColumn,this.defaultValue.maxColumn,1,1e4)}}}),mouseStyle:F(new L(68,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:F(new w(69,"mouseWheelScrollSensitivity",1,(e=>0===e?1:e),{markdownDescription:n.NC("mouseWheelScrollSensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")})),mouseWheelZoom:F(new v(70,"mouseWheelZoom",!1,{markdownDescription:n.NC("mouseWheelZoom","Zoom the font of the editor when using mouse wheel and holding `Ctrl`.")})),multiCursorMergeOverlapping:F(new v(71,"multiCursorMergeOverlapping",!0,{description:n.NC("multiCursorMergeOverlapping","Merge multiple cursors when they are overlapping.")})),multiCursorModifier:F(new k(72,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],(function(e){return"ctrlCmd"===e?o.dz?"metaKey":"ctrlKey":"altKey"}),{markdownEnumDescriptions:[n.NC("multiCursorModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),n.NC("multiCursorModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],markdownDescription:n.NC({key:"multiCursorModifier",comment:["- `ctrlCmd` refers to a value the setting can take and should not be localized.","- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized."]},"The modifier to be used to add multiple cursors with the mouse. The Go to Definition and Open Link mouse gestures will adapt such that they do not conflict with the [multicursor modifier](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).")})),multiCursorPaste:F(new L(73,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[n.NC("multiCursorPaste.spread","Each cursor pastes a single line of the text."),n.NC("multiCursorPaste.full","Each cursor pastes the full text.")],markdownDescription:n.NC("multiCursorPaste","Controls pasting when the line count of the pasted text matches the cursor count.")})),occurrencesHighlight:F(new v(74,"occurrencesHighlight",!0,{description:n.NC("occurrencesHighlight","Controls whether the editor should highlight semantic symbol occurrences.")})),overviewRulerBorder:F(new v(75,"overviewRulerBorder",!0,{description:n.NC("overviewRulerBorder","Controls whether a border should be drawn around the overview ruler.")})),overviewRulerLanes:F(new C(76,"overviewRulerLanes",3,0,3)),padding:F(new class extends u{constructor(){super(77,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:n.NC("padding.top","Controls the amount of space between the top edge of the editor and the first line.")},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:n.NC("padding.bottom","Controls the amount of space between the bottom edge of the editor and the last line.")}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return{top:C.clampedInt(t.top,0,0,1e3),bottom:C.clampedInt(t.bottom,0,0,1e3)}}}),parameterHints:F(new class extends u{constructor(){const e={enabled:!0,cycle:!1};super(78,"parameterHints",e,{"editor.parameterHints.enabled":{type:"boolean",default:e.enabled,description:n.NC("parameterHints.enabled","Enables a pop-up that shows parameter documentation and type information as you type.")},"editor.parameterHints.cycle":{type:"boolean",default:e.cycle,description:n.NC("parameterHints.cycle","Controls whether the parameter hints menu cycles or closes when reaching the end of the list.")}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),cycle:_(t.cycle,this.defaultValue.cycle)}}}),peekWidgetDefaultFocus:F(new L(79,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[n.NC("peekWidgetDefaultFocus.tree","Focus the tree when opening peek"),n.NC("peekWidgetDefaultFocus.editor","Focus the editor when opening peek")],description:n.NC("peekWidgetDefaultFocus","Controls whether to focus the inline editor or the tree in the peek widget.")})),definitionLinkOpensInPeek:F(new v(80,"definitionLinkOpensInPeek",!1,{description:n.NC("definitionLinkOpensInPeek","Controls whether the Go to Definition mouse gesture always opens the peek widget.")})),quickSuggestions:F(new class extends u{constructor(){const e={other:"on",comments:"off",strings:"off"},t=[{type:"boolean"},{type:"string",enum:["on","inline","off"],enumDescriptions:[n.NC("on","Quick suggestions show inside the suggest widget"),n.NC("inline","Quick suggestions show as ghost text"),n.NC("off","Quick suggestions are disabled")]}];super(81,"quickSuggestions",e,{type:"object",additionalProperties:!1,properties:{strings:{anyOf:t,default:e.strings,description:n.NC("quickSuggestions.strings","Enable quick suggestions inside strings.")},comments:{anyOf:t,default:e.comments,description:n.NC("quickSuggestions.comments","Enable quick suggestions inside comments.")},other:{anyOf:t,default:e.other,description:n.NC("quickSuggestions.other","Enable quick suggestions outside of strings and comments.")}},default:e,markdownDescription:n.NC("quickSuggestions","Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the '{0}'-setting which controls if suggestions are triggered by special characters.","#editor.suggestOnTriggerCharacters#")}),this.defaultValue=e}validate(e){if("boolean"==typeof e){const t=e?"on":"off";return{comments:t,strings:t,other:t}}if(!e||"object"!=typeof e)return this.defaultValue;const{other:t,comments:i,strings:n}=e,o=["on","inline","off"];let s,r,a;return s="boolean"==typeof t?t?"on":"off":S(t,this.defaultValue.other,o),r="boolean"==typeof i?i?"on":"off":S(i,this.defaultValue.comments,o),a="boolean"==typeof n?n?"on":"off":S(n,this.defaultValue.strings,o),{other:s,comments:r,strings:a}}}),quickSuggestionsDelay:F(new C(82,"quickSuggestionsDelay",10,0,1073741824,{description:n.NC("quickSuggestionsDelay","Controls the delay in milliseconds after which quick suggestions will show up.")})),readOnly:F(new v(83,"readOnly",!1)),renameOnType:F(new v(84,"renameOnType",!1,{description:n.NC("renameOnType","Controls whether the editor auto renames on type."),markdownDeprecationMessage:n.NC("renameOnTypeDeprecate","Deprecated, use `editor.linkedEditing` instead.")})),renderControlCharacters:F(new v(85,"renderControlCharacters",!0,{description:n.NC("renderControlCharacters","Controls whether the editor should render control characters."),restricted:!0})),renderFinalNewline:F(new v(86,"renderFinalNewline",!0,{description:n.NC("renderFinalNewline","Render last line number when the file ends with a newline.")})),renderLineHighlight:F(new L(87,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",n.NC("renderLineHighlight.all","Highlights both the gutter and the current line.")],description:n.NC("renderLineHighlight","Controls how the editor should render the current line highlight.")})),renderLineHighlightOnlyWhenFocus:F(new v(88,"renderLineHighlightOnlyWhenFocus",!1,{description:n.NC("renderLineHighlightOnlyWhenFocus","Controls if the editor should render the current line highlight only when the editor is focused.")})),renderValidationDecorations:F(new L(89,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:F(new L(90,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",n.NC("renderWhitespace.boundary","Render whitespace characters except for single spaces between words."),n.NC("renderWhitespace.selection","Render whitespace characters only on selected text."),n.NC("renderWhitespace.trailing","Render only trailing whitespace characters."),""],description:n.NC("renderWhitespace","Controls how the editor should render whitespace characters.")})),revealHorizontalRightPadding:F(new C(91,"revealHorizontalRightPadding",30,0,1e3)),roundedSelection:F(new v(92,"roundedSelection",!0,{description:n.NC("roundedSelection","Controls whether selections should have rounded corners.")})),rulers:F(new class extends u{constructor(){const e=[],t={type:"number",description:n.NC("rulers.size","Number of monospace characters at which this editor ruler will render.")};super(93,"rulers",e,{type:"array",items:{anyOf:[t,{type:["object"],properties:{column:t,color:{type:"string",description:n.NC("rulers.color","Color of this editor ruler."),format:"color-hex"}}}]},default:e,description:n.NC("rulers","Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.")})}validate(e){if(Array.isArray(e)){const t=[];for(const i of e)if("number"==typeof i)t.push({column:C.clampedInt(i,0,0,1e4),color:null});else if(i&&"object"==typeof i){const e=i;t.push({column:C.clampedInt(e.column,0,0,1e4),color:e.color})}return t.sort(((e,t)=>e.column-t.column)),t}return this.defaultValue}}),scrollbar:F(new class extends u{constructor(){const e={vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0,scrollByPage:!1};super(94,"scrollbar",e,{"editor.scrollbar.vertical":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[n.NC("scrollbar.vertical.auto","The vertical scrollbar will be visible only when necessary."),n.NC("scrollbar.vertical.visible","The vertical scrollbar will always be visible."),n.NC("scrollbar.vertical.fit","The vertical scrollbar will always be hidden.")],default:"auto",description:n.NC("scrollbar.vertical","Controls the visibility of the vertical scrollbar.")},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[n.NC("scrollbar.horizontal.auto","The horizontal scrollbar will be visible only when necessary."),n.NC("scrollbar.horizontal.visible","The horizontal scrollbar will always be visible."),n.NC("scrollbar.horizontal.fit","The horizontal scrollbar will always be hidden.")],default:"auto",description:n.NC("scrollbar.horizontal","Controls the visibility of the horizontal scrollbar.")},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:e.verticalScrollbarSize,description:n.NC("scrollbar.verticalScrollbarSize","The width of the vertical scrollbar.")},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:e.horizontalScrollbarSize,description:n.NC("scrollbar.horizontalScrollbarSize","The height of the horizontal scrollbar.")},"editor.scrollbar.scrollByPage":{type:"boolean",default:e.scrollByPage,description:n.NC("scrollbar.scrollByPage","Controls whether clicks scroll by page or jump to click position.")}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e,i=C.clampedInt(t.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),n=C.clampedInt(t.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:C.clampedInt(t.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:T(t.vertical,this.defaultValue.vertical),horizontal:T(t.horizontal,this.defaultValue.horizontal),useShadows:_(t.useShadows,this.defaultValue.useShadows),verticalHasArrows:_(t.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:_(t.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:_(t.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:_(t.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:i,horizontalSliderSize:C.clampedInt(t.horizontalSliderSize,i,0,1e3),verticalScrollbarSize:n,verticalSliderSize:C.clampedInt(t.verticalSliderSize,n,0,1e3),scrollByPage:_(t.scrollByPage,this.defaultValue.scrollByPage)}}}),scrollBeyondLastColumn:F(new C(95,"scrollBeyondLastColumn",4,0,1073741824,{description:n.NC("scrollBeyondLastColumn","Controls the number of extra characters beyond which the editor will scroll horizontally.")})),scrollBeyondLastLine:F(new v(96,"scrollBeyondLastLine",!0,{description:n.NC("scrollBeyondLastLine","Controls whether the editor will scroll beyond the last line.")})),scrollPredominantAxis:F(new v(97,"scrollPredominantAxis",!0,{description:n.NC("scrollPredominantAxis","Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.")})),selectionClipboard:F(new v(98,"selectionClipboard",!0,{description:n.NC("selectionClipboard","Controls whether the Linux primary clipboard should be supported."),included:o.IJ})),selectionHighlight:F(new v(99,"selectionHighlight",!0,{description:n.NC("selectionHighlight","Controls whether the editor should highlight matches similar to the selection.")})),selectOnLineNumbers:F(new v(100,"selectOnLineNumbers",!0)),showFoldingControls:F(new L(101,"showFoldingControls","mouseover",["always","never","mouseover"],{enumDescriptions:[n.NC("showFoldingControls.always","Always show the folding controls."),n.NC("showFoldingControls.never","Never show the folding controls and reduce the gutter size."),n.NC("showFoldingControls.mouseover","Only show the folding controls when the mouse is over the gutter.")],description:n.NC("showFoldingControls","Controls when the folding controls on the gutter are shown.")})),showUnused:F(new v(102,"showUnused",!0,{description:n.NC("showUnused","Controls fading out of unused code.")})),showDeprecated:F(new v(128,"showDeprecated",!0,{description:n.NC("showDeprecated","Controls strikethrough deprecated variables.")})),inlayHints:F(new class extends u{constructor(){const e={enabled:"on",fontSize:0,fontFamily:"",padding:!1};super(129,"inlayHints",e,{"editor.inlayHints.enabled":{type:"string",default:e.enabled,description:n.NC("inlayHints.enable","Enables the inlay hints in the editor."),enum:["on","onUnlessPressed","offUnlessPressed","off"],markdownEnumDescriptions:[n.NC("editor.inlayHints.on","Inlay hints are enabled"),n.NC("editor.inlayHints.onUnlessPressed","Inlay hints are showing by default and hide when holding `Ctrl+Alt`"),n.NC("editor.inlayHints.offUnlessPressed","Inlay hints are hidden by default and show when holding `Ctrl+Alt`"),n.NC("editor.inlayHints.off","Inlay hints are disabled")]},"editor.inlayHints.fontSize":{type:"number",default:e.fontSize,markdownDescription:n.NC("inlayHints.fontSize","Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.","`#editor.fontSize#`","`5`")},"editor.inlayHints.fontFamily":{type:"string",default:e.fontFamily,markdownDescription:n.NC("inlayHints.fontFamily","Controls font family of inlay hints in the editor. When set to empty, the {0} is used.","`#editor.fontFamily#`")},"editor.inlayHints.padding":{type:"boolean",default:e.padding,description:n.NC("inlayHints.padding","Enables the padding around the inlay hints in the editor.")}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return"boolean"==typeof t.enabled&&(t.enabled=t.enabled?"on":"off"),{enabled:S(t.enabled,this.defaultValue.enabled,["on","off","offUnlessPressed","onUnlessPressed"]),fontSize:C.clampedInt(t.fontSize,this.defaultValue.fontSize,0,100),fontFamily:y.string(t.fontFamily,this.defaultValue.fontFamily),padding:_(t.padding,this.defaultValue.padding)}}}),snippetSuggestions:F(new L(103,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[n.NC("snippetSuggestions.top","Show snippet suggestions on top of other suggestions."),n.NC("snippetSuggestions.bottom","Show snippet suggestions below other suggestions."),n.NC("snippetSuggestions.inline","Show snippets suggestions with other suggestions."),n.NC("snippetSuggestions.none","Do not show snippet suggestions.")],description:n.NC("snippetSuggestions","Controls whether snippets are shown with other suggestions and how they are sorted.")})),smartSelect:F(new class extends u{constructor(){super(104,"smartSelect",{selectLeadingAndTrailingWhitespace:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:n.NC("selectLeadingAndTrailingWhitespace","Whether leading and trailing whitespace should always be selected."),default:!0,type:"boolean"}})}validate(e){return e&&"object"==typeof e?{selectLeadingAndTrailingWhitespace:_(e.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace)}:this.defaultValue}}),smoothScrolling:F(new v(105,"smoothScrolling",!1,{description:n.NC("smoothScrolling","Controls whether the editor will scroll using an animation.")})),stopRenderingLineAfter:F(new C(107,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:F(new class extends u{constructor(){const e={insertMode:"insert",filterGraceful:!0,snippetsPreventQuickSuggestions:!0,localityBonus:!1,shareSuggestSelections:!1,showIcons:!0,showStatusBar:!1,preview:!1,previewMode:"subwordSmart",showInlineDetails:!0,showMethods:!0,showFunctions:!0,showConstructors:!0,showDeprecated:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,showProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,showUsers:!0,showIssues:!0};super(108,"suggest",e,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[n.NC("suggest.insertMode.insert","Insert suggestion without overwriting text right of the cursor."),n.NC("suggest.insertMode.replace","Insert suggestion and overwrite text right of the cursor.")],default:e.insertMode,description:n.NC("suggest.insertMode","Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.")},"editor.suggest.filterGraceful":{type:"boolean",default:e.filterGraceful,description:n.NC("suggest.filterGraceful","Controls whether filtering and sorting suggestions accounts for small typos.")},"editor.suggest.localityBonus":{type:"boolean",default:e.localityBonus,description:n.NC("suggest.localityBonus","Controls whether sorting favors words that appear close to the cursor.")},"editor.suggest.shareSuggestSelections":{type:"boolean",default:e.shareSuggestSelections,markdownDescription:n.NC("suggest.shareSuggestSelections","Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:e.snippetsPreventQuickSuggestions,description:n.NC("suggest.snippetsPreventQuickSuggestions","Controls whether an active snippet prevents quick suggestions.")},"editor.suggest.showIcons":{type:"boolean",default:e.showIcons,description:n.NC("suggest.showIcons","Controls whether to show or hide icons in suggestions.")},"editor.suggest.showStatusBar":{type:"boolean",default:e.showStatusBar,description:n.NC("suggest.showStatusBar","Controls the visibility of the status bar at the bottom of the suggest widget.")},"editor.suggest.preview":{type:"boolean",default:e.preview,description:n.NC("suggest.preview","Controls whether to preview the suggestion outcome in the editor.")},"editor.suggest.showInlineDetails":{type:"boolean",default:e.showInlineDetails,description:n.NC("suggest.showInlineDetails","Controls whether suggest details show inline with the label or only in the details widget")},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:n.NC("suggest.maxVisibleSuggestions.dep","This setting is deprecated. The suggest widget can now be resized.")},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:n.NC("deprecated","This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.")},"editor.suggest.showMethods":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showMethods","When enabled IntelliSense shows `method`-suggestions.")},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showFunctions","When enabled IntelliSense shows `function`-suggestions.")},"editor.suggest.showConstructors":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showConstructors","When enabled IntelliSense shows `constructor`-suggestions.")},"editor.suggest.showDeprecated":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showDeprecated","When enabled IntelliSense shows `deprecated`-suggestions.")},"editor.suggest.showFields":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showFields","When enabled IntelliSense shows `field`-suggestions.")},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showVariables","When enabled IntelliSense shows `variable`-suggestions.")},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showClasss","When enabled IntelliSense shows `class`-suggestions.")},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showStructs","When enabled IntelliSense shows `struct`-suggestions.")},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showInterfaces","When enabled IntelliSense shows `interface`-suggestions.")},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showModules","When enabled IntelliSense shows `module`-suggestions.")},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showPropertys","When enabled IntelliSense shows `property`-suggestions.")},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showEvents","When enabled IntelliSense shows `event`-suggestions.")},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showOperators","When enabled IntelliSense shows `operator`-suggestions.")},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showUnits","When enabled IntelliSense shows `unit`-suggestions.")},"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showValues","When enabled IntelliSense shows `value`-suggestions.")},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showConstants","When enabled IntelliSense shows `constant`-suggestions.")},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showEnums","When enabled IntelliSense shows `enum`-suggestions.")},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showEnumMembers","When enabled IntelliSense shows `enumMember`-suggestions.")},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showKeywords","When enabled IntelliSense shows `keyword`-suggestions.")},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showTexts","When enabled IntelliSense shows `text`-suggestions.")},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showColors","When enabled IntelliSense shows `color`-suggestions.")},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showFiles","When enabled IntelliSense shows `file`-suggestions.")},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showReferences","When enabled IntelliSense shows `reference`-suggestions.")},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showCustomcolors","When enabled IntelliSense shows `customcolor`-suggestions.")},"editor.suggest.showFolders":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showFolders","When enabled IntelliSense shows `folder`-suggestions.")},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showTypeParameters","When enabled IntelliSense shows `typeParameter`-suggestions.")},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showSnippets","When enabled IntelliSense shows `snippet`-suggestions.")},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showUsers","When enabled IntelliSense shows `user`-suggestions.")},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:n.NC("editor.suggest.showIssues","When enabled IntelliSense shows `issues`-suggestions.")}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return{insertMode:S(t.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:_(t.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:_(t.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:_(t.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:_(t.shareSuggestSelections,this.defaultValue.shareSuggestSelections),showIcons:_(t.showIcons,this.defaultValue.showIcons),showStatusBar:_(t.showStatusBar,this.defaultValue.showStatusBar),preview:_(t.preview,this.defaultValue.preview),previewMode:S(t.previewMode,this.defaultValue.previewMode,["prefix","subword","subwordSmart"]),showInlineDetails:_(t.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:_(t.showMethods,this.defaultValue.showMethods),showFunctions:_(t.showFunctions,this.defaultValue.showFunctions),showConstructors:_(t.showConstructors,this.defaultValue.showConstructors),showDeprecated:_(t.showDeprecated,this.defaultValue.showDeprecated),showFields:_(t.showFields,this.defaultValue.showFields),showVariables:_(t.showVariables,this.defaultValue.showVariables),showClasses:_(t.showClasses,this.defaultValue.showClasses),showStructs:_(t.showStructs,this.defaultValue.showStructs),showInterfaces:_(t.showInterfaces,this.defaultValue.showInterfaces),showModules:_(t.showModules,this.defaultValue.showModules),showProperties:_(t.showProperties,this.defaultValue.showProperties),showEvents:_(t.showEvents,this.defaultValue.showEvents),showOperators:_(t.showOperators,this.defaultValue.showOperators),showUnits:_(t.showUnits,this.defaultValue.showUnits),showValues:_(t.showValues,this.defaultValue.showValues),showConstants:_(t.showConstants,this.defaultValue.showConstants),showEnums:_(t.showEnums,this.defaultValue.showEnums),showEnumMembers:_(t.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:_(t.showKeywords,this.defaultValue.showKeywords),showWords:_(t.showWords,this.defaultValue.showWords),showColors:_(t.showColors,this.defaultValue.showColors),showFiles:_(t.showFiles,this.defaultValue.showFiles),showReferences:_(t.showReferences,this.defaultValue.showReferences),showFolders:_(t.showFolders,this.defaultValue.showFolders),showTypeParameters:_(t.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:_(t.showSnippets,this.defaultValue.showSnippets),showUsers:_(t.showUsers,this.defaultValue.showUsers),showIssues:_(t.showIssues,this.defaultValue.showIssues)}}}),inlineSuggest:F(new class extends u{constructor(){const e={enabled:!0,mode:"subwordSmart"};super(57,"inlineSuggest",e,{"editor.inlineSuggest.enabled":{type:"boolean",default:e.enabled,description:n.NC("inlineSuggest.enabled","Controls whether to automatically show inline suggestions in the editor.")}})}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),mode:S(t.mode,this.defaultValue.mode,["prefix","subword","subwordSmart"])}}}),suggestFontSize:F(new C(109,"suggestFontSize",0,0,1e3,{markdownDescription:n.NC("suggestFontSize","Font size for the suggest widget. When set to {0}, the value of {1} is used.","`0`","`#editor.fontSize#`")})),suggestLineHeight:F(new C(110,"suggestLineHeight",0,0,1e3,{markdownDescription:n.NC("suggestLineHeight","Line height for the suggest widget. When set to {0}, the value of {1} is used. The minimum value is 8.","`0`","`#editor.lineHeight#`")})),suggestOnTriggerCharacters:F(new v(111,"suggestOnTriggerCharacters",!0,{description:n.NC("suggestOnTriggerCharacters","Controls whether suggestions should automatically show up when typing trigger characters.")})),suggestSelection:F(new L(112,"suggestSelection","first",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[n.NC("suggestSelection.first","Always select the first suggestion."),n.NC("suggestSelection.recentlyUsed","Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently."),n.NC("suggestSelection.recentlyUsedByPrefix","Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.")],description:n.NC("suggestSelection","Controls how suggestions are pre-selected when showing the suggest list.")})),tabCompletion:F(new L(113,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[n.NC("tabCompletion.on","Tab complete will insert the best matching suggestion when pressing tab."),n.NC("tabCompletion.off","Disable tab completions."),n.NC("tabCompletion.onlySnippets","Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.")],description:n.NC("tabCompletion","Enables tab completions.")})),tabIndex:F(new C(114,"tabIndex",0,-1,1073741824)),unicodeHighlight:F(new class extends u{constructor(){const e={nonBasicASCII:M,invisibleCharacters:!0,ambiguousCharacters:!0,includeComments:M,includeStrings:!0,allowedCharacters:{},allowedLocales:{_os:!0,_vscode:!0}};super(115,"unicodeHighlight",e,{[A.nonBasicASCII]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,M],default:e.nonBasicASCII,description:n.NC("unicodeHighlight.nonBasicASCII","Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.")},[A.invisibleCharacters]:{restricted:!0,type:"boolean",default:e.invisibleCharacters,description:n.NC("unicodeHighlight.invisibleCharacters","Controls whether characters that just reserve space or have no width at all are highlighted.")},[A.ambiguousCharacters]:{restricted:!0,type:"boolean",default:e.ambiguousCharacters,description:n.NC("unicodeHighlight.ambiguousCharacters","Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.")},[A.includeComments]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,M],default:e.includeComments,description:n.NC("unicodeHighlight.includeComments","Controls whether characters in comments should also be subject to unicode highlighting.")},[A.includeStrings]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,M],default:e.includeStrings,description:n.NC("unicodeHighlight.includeStrings","Controls whether characters in strings should also be subject to unicode highlighting.")},[A.allowedCharacters]:{restricted:!0,type:"object",default:e.allowedCharacters,description:n.NC("unicodeHighlight.allowedCharacters","Defines allowed characters that are not being highlighted."),additionalProperties:{type:"boolean"}},[A.allowedLocales]:{restricted:!0,type:"object",additionalProperties:{type:"boolean"},default:e.allowedLocales,description:n.NC("unicodeHighlight.allowedLocales","Unicode characters that are common in allowed locales are not being highlighted.")}})}applyUpdate(e,t){let i=!1;t.allowedCharacters&&e&&(a.fS(e.allowedCharacters,t.allowedCharacters)||(e=Object.assign(Object.assign({},e),{allowedCharacters:t.allowedCharacters}),i=!0)),t.allowedLocales&&e&&(a.fS(e.allowedLocales,t.allowedLocales)||(e=Object.assign(Object.assign({},e),{allowedLocales:t.allowedLocales}),i=!0));const n=super.applyUpdate(e,t);return i?new g(n.newValue,!0):n}validate(e){if(!e||"object"!=typeof e)return this.defaultValue;const t=e;return{nonBasicASCII:R(t.nonBasicASCII,M,[!0,!1,M]),invisibleCharacters:_(t.invisibleCharacters,this.defaultValue.invisibleCharacters),ambiguousCharacters:_(t.ambiguousCharacters,this.defaultValue.ambiguousCharacters),includeComments:R(t.includeComments,M,[!0,!1,M]),includeStrings:R(t.includeStrings,M,[!0,!1,M]),allowedCharacters:this.validateBooleanMap(e.allowedCharacters,this.defaultValue.allowedCharacters),allowedLocales:this.validateBooleanMap(e.allowedLocales,this.defaultValue.allowedLocales)}}validateBooleanMap(e,t){if("object"!=typeof e||!e)return t;const i={};for(const[n,o]of Object.entries(e))!0===o&&(i[n]=!0);return i}}),unusualLineTerminators:F(new L(116,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[n.NC("unusualLineTerminators.auto","Unusual line terminators are automatically removed."),n.NC("unusualLineTerminators.off","Unusual line terminators are ignored."),n.NC("unusualLineTerminators.prompt","Unusual line terminators prompt to be removed.")],description:n.NC("unusualLineTerminators","Remove unusual line terminators that might cause problems.")})),useShadowDOM:F(new v(117,"useShadowDOM",!0)),useTabStops:F(new v(118,"useTabStops",!0,{description:n.NC("useTabStops","Inserting and deleting whitespace follows tab stops.")})),wordSeparators:F(new y(119,"wordSeparators",s.vu,{description:n.NC("wordSeparators","Characters that will be used as word separators when doing word related navigations or operations.")})),wordWrap:F(new L(120,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[n.NC("wordWrap.off","Lines will never wrap."),n.NC("wordWrap.on","Lines will wrap at the viewport width."),n.NC({key:"wordWrap.wordWrapColumn",comment:["- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Lines will wrap at `#editor.wordWrapColumn#`."),n.NC({key:"wordWrap.bounded",comment:["- viewport means the edge of the visible window size.","- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.")],description:n.NC({key:"wordWrap",comment:["- 'off', 'on', 'wordWrapColumn' and 'bounded' refer to values the setting can take and should not be localized.","- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Controls how lines should wrap.")})),wordWrapBreakAfterCharacters:F(new y(121,"wordWrapBreakAfterCharacters"," \t})]?|/&.,;\xa2\xb0\u2032\u2033\u2030\u2103\u3001\u3002\uff61\uff64\uffe0\uff0c\uff0e\uff1a\uff1b\uff1f\uff01\uff05\u30fb\uff65\u309d\u309e\u30fd\u30fe\u30fc\u30a1\u30a3\u30a5\u30a7\u30a9\u30c3\u30e3\u30e5\u30e7\u30ee\u30f5\u30f6\u3041\u3043\u3045\u3047\u3049\u3063\u3083\u3085\u3087\u308e\u3095\u3096\u31f0\u31f1\u31f2\u31f3\u31f4\u31f5\u31f6\u31f7\u31f8\u31f9\u31fa\u31fb\u31fc\u31fd\u31fe\u31ff\u3005\u303b\uff67\uff68\uff69\uff6a\uff6b\uff6c\uff6d\uff6e\uff6f\uff70\u201d\u3009\u300b\u300d\u300f\u3011\u3015\uff09\uff3d\uff5d\uff63")),wordWrapBreakBeforeCharacters:F(new y(122,"wordWrapBreakBeforeCharacters","([{\u2018\u201c\u3008\u300a\u300c\u300e\u3010\u3014\uff08\uff3b\uff5b\uff62\xa3\xa5\uff04\uffe1\uffe5+\uff0b")),wordWrapColumn:F(new C(123,"wordWrapColumn",80,1,1073741824,{markdownDescription:n.NC({key:"wordWrapColumn",comment:["- `editor.wordWrap` refers to a different setting and should not be localized.","- 'wordWrapColumn' and 'bounded' refer to values the different setting can take and should not be localized."]},"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.")})),wordWrapOverride1:F(new L(124,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:F(new L(125,"wordWrapOverride2","inherit",["off","on","inherit"])),wrappingIndent:F(new k(126,"wrappingIndent",1,"same",["none","same","indent","deepIndent"],(function(e){switch(e){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}}),{enumDescriptions:[n.NC("wrappingIndent.none","No indentation. Wrapped lines begin at column 1."),n.NC("wrappingIndent.same","Wrapped lines get the same indentation as the parent."),n.NC("wrappingIndent.indent","Wrapped lines get +1 indentation toward the parent."),n.NC("wrappingIndent.deepIndent","Wrapped lines get +2 indentation toward the parent.")],description:n.NC("wrappingIndent","Controls the indentation of wrapped lines.")})),wrappingStrategy:F(new L(127,"wrappingStrategy","simple",["simple","advanced"],{enumDescriptions:[n.NC("wrappingStrategy.simple","Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width."),n.NC("wrappingStrategy.advanced","Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.")],description:n.NC("wrappingStrategy","Controls the algorithm that computes wrapping points.")})),editorClassName:F(new class extends m{constructor(){super(130)}compute(e,t,i){const n=["monaco-editor"];return t.get(35)&&n.push(t.get(35)),e.extraEditorClassName&&n.push(e.extraEditorClassName),"default"===t.get(68)?n.push("mouse-default"):"copy"===t.get(68)&&n.push("mouse-copy"),t.get(102)&&n.push("showUnused"),t.get(128)&&n.push("showDeprecated"),n.join(" ")}}),pixelRatio:F(new class extends m{constructor(){super(131)}compute(e,t,i){return e.pixelRatio}}),tabFocusMode:F(new class extends m{constructor(){super(132)}compute(e,t,i){return!!t.get(83)||e.tabFocusMode}}),layoutInfo:F(new E),wrappingInfo:F(new class extends m{constructor(){super(134)}compute(e,t,i){const n=t.get(133);return{isDominatedByLongLines:e.isDominatedByLongLines,isWordWrapMinified:n.isWordWrapMinified,isViewportWrapping:n.isViewportWrapping,wrappingColumn:n.wrappingColumn}}})}},82334:(e,t,i)=>{"use strict";i.d(t,{C:()=>o});var n=i(4669);const o=new class{constructor(){this._zoomLevel=0,this._onDidChangeZoomLevel=new n.Q5,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}getZoomLevel(){return this._zoomLevel}setZoomLevel(e){e=Math.min(Math.max(-5,e),20),this._zoomLevel!==e&&(this._zoomLevel=e,this._onDidChangeZoomLevel.fire(this._zoomLevel))}}},27374:(e,t,i)=>{"use strict";i.d(t,{E4:()=>a,pR:()=>l});var n=i(1432),o=i(64141),s=i(82334);const r=n.dz?1.5:1.35;class a{constructor(e){this._bareFontInfoBrand=void 0,this.pixelRatio=e.pixelRatio,this.fontFamily=String(e.fontFamily),this.fontWeight=String(e.fontWeight),this.fontSize=e.fontSize,this.fontFeatureSettings=e.fontFeatureSettings,this.lineHeight=0|e.lineHeight,this.letterSpacing=e.letterSpacing}static createFromValidatedSettings(e,t,i){const n=e.get(45),o=e.get(49),s=e.get(48),r=e.get(47),l=e.get(61),c=e.get(58);return a._create(n,o,s,r,l,c,t,i)}static _create(e,t,i,n,o,l,c,d){0===o?o=r*i:o<8&&(o*=i),(o=Math.round(o))<8&&(o=8);const h=1+(d?0:.1*s.C.getZoomLevel());return new a({pixelRatio:c,fontFamily:e,fontWeight:t,fontSize:i*=h,fontFeatureSettings:n,lineHeight:o*=h,letterSpacing:l})}getId(){return`${this.pixelRatio}-${this.fontFamily}-${this.fontWeight}-${this.fontSize}-${this.fontFeatureSettings}-${this.lineHeight}-${this.letterSpacing}`}getMassagedFontFamily(){const e=o.hL.fontFamily,t=a._wrapInQuotes(this.fontFamily);return e&&this.fontFamily!==e?`${t}, ${e}`:t}static _wrapInQuotes(e){return/[,"']/.test(e)?e:/[+ ]/.test(e)?`"${e}"`:e}}class l extends a{constructor(e,t){super(e),this._editorStylingBrand=void 0,this.version=1,this.isTrusted=t,this.isMonospace=e.isMonospace,this.typicalHalfwidthCharacterWidth=e.typicalHalfwidthCharacterWidth,this.typicalFullwidthCharacterWidth=e.typicalFullwidthCharacterWidth,this.canUseHalfwidthRightwardsArrow=e.canUseHalfwidthRightwardsArrow,this.spaceWidth=e.spaceWidth,this.middotWidth=e.middotWidth,this.wsmiddotWidth=e.wsmiddotWidth,this.maxDigitWidth=e.maxDigitWidth}equals(e){return this.fontFamily===e.fontFamily&&this.fontWeight===e.fontWeight&&this.fontSize===e.fontSize&&this.fontFeatureSettings===e.fontFeatureSettings&&this.lineHeight===e.lineHeight&&this.letterSpacing===e.letterSpacing&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.typicalFullwidthCharacterWidth===e.typicalFullwidthCharacterWidth&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.maxDigitWidth===e.maxDigitWidth}}},44906:(e,t,i)=>{"use strict";i.d(t,{N:()=>o,q:()=>s});var n=i(85427);class o{constructor(e){const t=(0,n.K)(e);this._defaultValue=t,this._asciiMap=o._createAsciiMap(t),this._map=new Map}static _createAsciiMap(e){const t=new Uint8Array(256);for(let i=0;i<256;i++)t[i]=e;return t}set(e,t){const i=(0,n.K)(t);e>=0&&e<256?this._asciiMap[e]=i:this._map.set(e,i)}get(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue}}class s{constructor(){this._actual=new o(0)}add(e){this._actual.set(e,1)}has(e){return 1===this._actual.get(e)}}},7988:(e,t,i)=>{"use strict";i.d(t,{i:()=>o});var n=i(97295);class o{static _nextVisibleColumn(e,t,i){return 9===e?o.nextRenderTabStop(t,i):n.K7(e)||n.C8(e)?t+2:t+1}static visibleColumnFromColumn(e,t,i){const o=Math.min(t-1,e.length),s=e.substring(0,o),r=new n.W1(s);let a=0;for(;!r.eol();){const e=n.ZH(s,o,r.offset);r.nextGraphemeLength(),a=this._nextVisibleColumn(e,a,i)}return a}static columnFromVisibleColumn(e,t,i){if(t<=0)return 1;const o=e.length,s=new n.W1(e);let r=0,a=1;for(;!s.eol();){const l=n.ZH(e,o,s.offset);s.nextGraphemeLength();const c=this._nextVisibleColumn(l,r,i),d=s.offset+1;if(c>=t){return c-t<t-r?d:a}r=c,a=d}return o+1}static nextRenderTabStop(e,t){return e+t-e%t}static nextIndentTabStop(e,t){return e+t-e%t}static prevRenderTabStop(e,t){return Math.max(0,e-1-(e-1)%t)}static prevIndentTabStop(e,t){return Math.max(0,e-1-(e-1)%t)}}},69386:(e,t,i)=>{"use strict";i.d(t,{h:()=>o});var n=i(24314);class o{static insert(e,t){return{range:new n.e(e.lineNumber,e.column,e.lineNumber,e.column),text:t,forceMoveMarkers:!0}}static delete(e){return{range:e,text:null}}static replace(e,t){return{range:e,text:t}}static replaceMove(e,t){return{range:e,text:t,forceMoveMarkers:!0}}}},8625:(e,t,i)=>{"use strict";i.d(t,{CE:()=>W,DD:()=>w,DS:()=>q,Dl:()=>L,HV:()=>te,IO:()=>M,Jn:()=>Q,Kh:()=>l,L7:()=>ee,Mm:()=>c,N5:()=>T,Qb:()=>Y,Re:()=>P,TC:()=>S,To:()=>X,UP:()=>H,Vs:()=>V,YF:()=>Z,Ym:()=>v,eS:()=>F,e_:()=>x,f9:()=>ie,fY:()=>m,hw:()=>b,kp:()=>N,lK:()=>O,lS:()=>G,m$:()=>$,m1:()=>j,m3:()=>J,m9:()=>R,n0:()=>p,oV:()=>K,r0:()=>z,tR:()=>_,ts:()=>U,x3:()=>I,zJ:()=>B,zk:()=>y,zu:()=>E,zw:()=>k});var n=i(63580),o=i(41264),s=i(73910),r=i(97781),a=i(92321);const l=(0,s.P6G)("editor.lineHighlightBackground",{dark:null,light:null,hcDark:null,hcLight:null},n.NC("lineHighlight","Background color for the highlight of line at the cursor position.")),c=(0,s.P6G)("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hcDark:"#f38518",hcLight:s.lRK},n.NC("lineHighlightBorderBox","Background color for the border around the line at the cursor position.")),d=(0,s.P6G)("editor.rangeHighlightBackground",{dark:"#ffffff0b",light:"#fdff0033",hcDark:null,hcLight:null},n.NC("rangeHighlight","Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations."),!0),h=(0,s.P6G)("editor.rangeHighlightBorder",{dark:null,light:null,hcDark:s.xL1,hcLight:s.xL1},n.NC("rangeHighlightBorder","Background color of the border around highlighted ranges."),!0),u=(0,s.P6G)("editor.symbolHighlightBackground",{dark:s.MUv,light:s.MUv,hcDark:null,hcLight:null},n.NC("symbolHighlight","Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations."),!0),g=(0,s.P6G)("editor.symbolHighlightBorder",{dark:null,light:null,hcDark:s.xL1,hcLight:s.xL1},n.NC("symbolHighlightBorder","Background color of the border around highlighted symbols."),!0),p=(0,s.P6G)("editorCursor.foreground",{dark:"#AEAFAD",light:o.Il.black,hcDark:o.Il.white,hcLight:"#0F4A85"},n.NC("caret","Color of the editor cursor.")),m=(0,s.P6G)("editorCursor.background",null,n.NC("editorCursorBackground","The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.")),f=(0,s.P6G)("editorWhitespace.foreground",{dark:"#e3e4e229",light:"#33333333",hcDark:"#e3e4e229",hcLight:"#CCCCCC"},n.NC("editorWhitespaces","Color of whitespace characters in the editor.")),_=(0,s.P6G)("editorIndentGuide.background",{dark:f,light:f,hcDark:f,hcLight:f},n.NC("editorIndentGuides","Color of the editor indentation guides.")),v=(0,s.P6G)("editorIndentGuide.activeBackground",{dark:f,light:f,hcDark:f,hcLight:f},n.NC("editorActiveIndentGuide","Color of the active editor indentation guides.")),b=(0,s.P6G)("editorLineNumber.foreground",{dark:"#858585",light:"#237893",hcDark:o.Il.white,hcLight:"#292929"},n.NC("editorLineNumbers","Color of editor line numbers.")),C=(0,s.P6G)("editorActiveLineNumber.foreground",{dark:"#c6c6c6",light:"#0B216F",hcDark:s.xL1,hcLight:s.xL1},n.NC("editorActiveLineNumber","Color of editor active line number"),!1,n.NC("deprecatedEditorActiveLineNumber","Id is deprecated. Use 'editorLineNumber.activeForeground' instead.")),w=(0,s.P6G)("editorLineNumber.activeForeground",{dark:C,light:C,hcDark:C,hcLight:C},n.NC("editorActiveLineNumber","Color of editor active line number")),y=(0,s.P6G)("editorRuler.foreground",{dark:"#5A5A5A",light:o.Il.lightgrey,hcDark:o.Il.white,hcLight:"#292929"},n.NC("editorRuler","Color of the editor rulers.")),S=((0,s.P6G)("editorCodeLens.foreground",{dark:"#999999",light:"#919191",hcDark:"#999999",hcLight:"#292929"},n.NC("editorCodeLensForeground","Foreground color of editor CodeLens")),(0,s.P6G)("editorBracketMatch.background",{dark:"#0064001a",light:"#0064001a",hcDark:"#0064001a",hcLight:"#0000"},n.NC("editorBracketMatchBackground","Background color behind matching brackets"))),L=(0,s.P6G)("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hcDark:s.lRK,hcLight:s.lRK},n.NC("editorBracketMatchBorder","Color for matching brackets boxes")),k=(0,s.P6G)("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hcDark:"#7f7f7f4d",hcLight:"#666666"},n.NC("editorOverviewRulerBorder","Color of the overview ruler border.")),x=(0,s.P6G)("editorOverviewRuler.background",null,n.NC("editorOverviewRulerBackground","Background color of the editor overview ruler. Only used when the minimap is enabled and placed on the right side of the editor.")),D=(0,s.P6G)("editorGutter.background",{dark:s.cvW,light:s.cvW,hcDark:s.cvW,hcLight:s.cvW},n.NC("editorGutter","Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.")),N=(0,s.P6G)("editorUnnecessaryCode.border",{dark:null,light:null,hcDark:o.Il.fromHex("#fff").transparent(.8),hcLight:s.lRK},n.NC("unnecessaryCodeBorder","Border color of unnecessary (unused) source code in the editor.")),E=(0,s.P6G)("editorUnnecessaryCode.opacity",{dark:o.Il.fromHex("#000a"),light:o.Il.fromHex("#0007"),hcDark:null,hcLight:null},n.NC("unnecessaryCodeOpacity","Opacity of unnecessary (unused) source code in the editor. For example, \"#000000c0\" will render the code with 75% opacity. For high contrast themes, use the 'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.")),I=(0,s.P6G)("editorGhostText.border",{dark:null,light:null,hcDark:o.Il.fromHex("#fff").transparent(.8),hcLight:o.Il.fromHex("#292929").transparent(.8)},n.NC("editorGhostTextBorder","Border color of ghost text in the editor.")),T=(0,s.P6G)("editorGhostText.foreground",{dark:o.Il.fromHex("#ffffff56"),light:o.Il.fromHex("#0007"),hcDark:null,hcLight:null},n.NC("editorGhostTextForeground","Foreground color of the ghost text in the editor.")),M=(0,s.P6G)("editorGhostText.background",{dark:null,light:null,hcDark:null,hcLight:null},n.NC("editorGhostTextBackground","Background color of the ghost text in the editor.")),A=new o.Il(new o.VS(0,122,204,.6)),R=(0,s.P6G)("editorOverviewRuler.rangeHighlightForeground",{dark:A,light:A,hcDark:A,hcLight:A},n.NC("overviewRulerRangeHighlight","Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations."),!0),O=(0,s.P6G)("editorOverviewRuler.errorForeground",{dark:new o.Il(new o.VS(255,18,18,.7)),light:new o.Il(new o.VS(255,18,18,.7)),hcDark:new o.Il(new o.VS(255,50,50,1)),hcLight:"#B5200D"},n.NC("overviewRuleError","Overview ruler marker color for errors.")),P=(0,s.P6G)("editorOverviewRuler.warningForeground",{dark:s.uoC,light:s.uoC,hcDark:s.pW3,hcLight:s.pW3},n.NC("overviewRuleWarning","Overview ruler marker color for warnings.")),F=(0,s.P6G)("editorOverviewRuler.infoForeground",{dark:s.c63,light:s.c63,hcDark:s.T83,hcLight:s.T83},n.NC("overviewRuleInfo","Overview ruler marker color for infos.")),B=(0,s.P6G)("editorBracketHighlight.foreground1",{dark:"#FFD700",light:"#0431FAFF",hcDark:"#FFD700",hcLight:"#0431FAFF"},n.NC("editorBracketHighlightForeground1","Foreground color of brackets (1). Requires enabling bracket pair colorization.")),V=(0,s.P6G)("editorBracketHighlight.foreground2",{dark:"#DA70D6",light:"#319331FF",hcDark:"#DA70D6",hcLight:"#319331FF"},n.NC("editorBracketHighlightForeground2","Foreground color of brackets (2). Requires enabling bracket pair colorization.")),W=(0,s.P6G)("editorBracketHighlight.foreground3",{dark:"#179FFF",light:"#7B3814FF",hcDark:"#87CEFA",hcLight:"#7B3814FF"},n.NC("editorBracketHighlightForeground3","Foreground color of brackets (3). Requires enabling bracket pair colorization.")),H=(0,s.P6G)("editorBracketHighlight.foreground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketHighlightForeground4","Foreground color of brackets (4). Requires enabling bracket pair colorization.")),z=(0,s.P6G)("editorBracketHighlight.foreground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketHighlightForeground5","Foreground color of brackets (5). Requires enabling bracket pair colorization.")),j=(0,s.P6G)("editorBracketHighlight.foreground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketHighlightForeground6","Foreground color of brackets (6). Requires enabling bracket pair colorization.")),U=(0,s.P6G)("editorBracketHighlight.unexpectedBracket.foreground",{dark:new o.Il(new o.VS(255,18,18,.8)),light:new o.Il(new o.VS(255,18,18,.8)),hcDark:new o.Il(new o.VS(255,50,50,1)),hcLight:""},n.NC("editorBracketHighlightUnexpectedBracketForeground","Foreground color of unexpected brackets.")),K=(0,s.P6G)("editorBracketPairGuide.background1",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.background1","Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.")),$=(0,s.P6G)("editorBracketPairGuide.background2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.background2","Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.")),q=(0,s.P6G)("editorBracketPairGuide.background3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.background3","Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.")),G=(0,s.P6G)("editorBracketPairGuide.background4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.background4","Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.")),Q=(0,s.P6G)("editorBracketPairGuide.background5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.background5","Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.")),Z=(0,s.P6G)("editorBracketPairGuide.background6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.background6","Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.")),Y=(0,s.P6G)("editorBracketPairGuide.activeBackground1",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.activeBackground1","Background color of active bracket pair guides (1). Requires enabling bracket pair guides.")),J=(0,s.P6G)("editorBracketPairGuide.activeBackground2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.activeBackground2","Background color of active bracket pair guides (2). Requires enabling bracket pair guides.")),X=(0,s.P6G)("editorBracketPairGuide.activeBackground3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.activeBackground3","Background color of active bracket pair guides (3). Requires enabling bracket pair guides.")),ee=(0,s.P6G)("editorBracketPairGuide.activeBackground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.activeBackground4","Background color of active bracket pair guides (4). Requires enabling bracket pair guides.")),te=(0,s.P6G)("editorBracketPairGuide.activeBackground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.activeBackground5","Background color of active bracket pair guides (5). Requires enabling bracket pair guides.")),ie=(0,s.P6G)("editorBracketPairGuide.activeBackground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.activeBackground6","Background color of active bracket pair guides (6). Requires enabling bracket pair guides."));(0,s.P6G)("editorUnicodeHighlight.border",{dark:"#BD9B03",light:"#CEA33D",hcDark:"#ff0000",hcLight:""},n.NC("editorUnicodeHighlight.border","Border color used to highlight unicode characters.")),(0,s.P6G)("editorUnicodeHighlight.background",{dark:"#bd9b0326",light:"#cea33d14",hcDark:"#00000000",hcLight:""},n.NC("editorUnicodeHighlight.background","Background color used to highlight unicode characters."));(0,r.Ic)(((e,t)=>{const i=e.getColor(s.cvW);i&&t.addRule(`.monaco-editor, .monaco-editor-background { background-color: ${i}; }`);const n=e.getColor(l),o=n&&!n.isTransparent()?n:i;o&&t.addRule(`.monaco-editor .inputarea.ime-input { background-color: ${o}; }`);const r=e.getColor(s.NOs);r&&t.addRule(`.monaco-editor, .monaco-editor .inputarea.ime-input { color: ${r}; }`);const c=e.getColor(D);c&&t.addRule(`.monaco-editor .margin { background-color: ${c}; }`);const p=e.getColor(d);p&&t.addRule(`.monaco-editor .rangeHighlight { background-color: ${p}; }`);const m=e.getColor(h);m&&t.addRule(`.monaco-editor .rangeHighlight { border: 1px ${(0,a.c3)(e.type)?"dotted":"solid"} ${m}; }`);const _=e.getColor(u);_&&t.addRule(`.monaco-editor .symbolHighlight { background-color: ${_}; }`);const v=e.getColor(g);v&&t.addRule(`.monaco-editor .symbolHighlight { border: 1px ${(0,a.c3)(e.type)?"dotted":"solid"} ${v}; }`);const b=e.getColor(f);b&&(t.addRule(`.monaco-editor .mtkw { color: ${b} !important; }`),t.addRule(`.monaco-editor .mtkz { color: ${b} !important; }`))}))},23795:(e,t,i)=>{"use strict";function n(e){let t=0,i=0,n=0,o=0;for(let s=0,r=e.length;s<r;s++){const a=e.charCodeAt(s);13===a?(0===t&&(i=s),t++,s+1<r&&10===e.charCodeAt(s+1)?(o|=2,s++):o|=3,n=s+1):10===a&&(o|=1,0===t&&(i=s),t++,n=s+1)}return 0===t&&(i=e.length),[t,i,e.length-n,o]}i.d(t,{Q:()=>n})},83158:(e,t,i)=>{"use strict";i.d(t,{x:()=>s});var n=i(97295),o=i(7988);function s(e,t,i){let s=n.LC(e);return-1===s&&(s=e.length),function(e,t,i){let n=0;for(let r=0;r<e.length;r++)"\t"===e.charAt(r)?n=o.i.nextIndentTabStop(n,t):n++;let s="";if(!i){const e=Math.floor(n/t);n%=t;for(let t=0;t<e;t++)s+="\t"}for(let o=0;o<n;o++)s+=" ";return s}(e.substring(0,s),t,i)+e.substring(s)}},50187:(e,t,i)=>{"use strict";i.d(t,{L:()=>n});class n{constructor(e,t){this.lineNumber=e,this.column=t}with(e=this.lineNumber,t=this.column){return e===this.lineNumber&&t===this.column?this:new n(e,t)}delta(e=0,t=0){return this.with(this.lineNumber+e,this.column+t)}equals(e){return n.equals(this,e)}static equals(e,t){return!e&&!t||!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column}isBefore(e){return n.isBefore(this,e)}static isBefore(e,t){return e.lineNumber<t.lineNumber||!(t.lineNumber<e.lineNumber)&&e.column<t.column}isBeforeOrEqual(e){return n.isBeforeOrEqual(this,e)}static isBeforeOrEqual(e,t){return e.lineNumber<t.lineNumber||!(t.lineNumber<e.lineNumber)&&e.column<=t.column}static compare(e,t){const i=0|e.lineNumber,n=0|t.lineNumber;if(i===n){return(0|e.column)-(0|t.column)}return i-n}clone(){return new n(this.lineNumber,this.column)}toString(){return"("+this.lineNumber+","+this.column+")"}static lift(e){return new n(e.lineNumber,e.column)}static isIPosition(e){return e&&"number"==typeof e.lineNumber&&"number"==typeof e.column}}},24314:(e,t,i)=>{"use strict";i.d(t,{e:()=>o});var n=i(50187);class o{constructor(e,t,i,n){e>i||e===i&&t>n?(this.startLineNumber=i,this.startColumn=n,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=i,this.endColumn=n)}isEmpty(){return o.isEmpty(this)}static isEmpty(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn}containsPosition(e){return o.containsPosition(this,e)}static containsPosition(e,t){return!(t.lineNumber<e.startLineNumber||t.lineNumber>e.endLineNumber)&&(!(t.lineNumber===e.startLineNumber&&t.column<e.startColumn)&&!(t.lineNumber===e.endLineNumber&&t.column>e.endColumn))}static strictContainsPosition(e,t){return!(t.lineNumber<e.startLineNumber||t.lineNumber>e.endLineNumber)&&(!(t.lineNumber===e.startLineNumber&&t.column<=e.startColumn)&&!(t.lineNumber===e.endLineNumber&&t.column>=e.endColumn))}containsRange(e){return o.containsRange(this,e)}static containsRange(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber)&&(!(t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>e.endColumn)))}strictContainsRange(e){return o.strictContainsRange(this,e)}static strictContainsRange(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber)&&(!(t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)))}plusRange(e){return o.plusRange(this,e)}static plusRange(e,t){let i,n,s,r;return t.startLineNumber<e.startLineNumber?(i=t.startLineNumber,n=t.startColumn):t.startLineNumber===e.startLineNumber?(i=t.startLineNumber,n=Math.min(t.startColumn,e.startColumn)):(i=e.startLineNumber,n=e.startColumn),t.endLineNumber>e.endLineNumber?(s=t.endLineNumber,r=t.endColumn):t.endLineNumber===e.endLineNumber?(s=t.endLineNumber,r=Math.max(t.endColumn,e.endColumn)):(s=e.endLineNumber,r=e.endColumn),new o(i,n,s,r)}intersectRanges(e){return o.intersectRanges(this,e)}static intersectRanges(e,t){let i=e.startLineNumber,n=e.startColumn,s=e.endLineNumber,r=e.endColumn;const a=t.startLineNumber,l=t.startColumn,c=t.endLineNumber,d=t.endColumn;return i<a?(i=a,n=l):i===a&&(n=Math.max(n,l)),s>c?(s=c,r=d):s===c&&(r=Math.min(r,d)),i>s||i===s&&n>r?null:new o(i,n,s,r)}equalsRange(e){return o.equalsRange(this,e)}static equalsRange(e,t){return!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn}getEndPosition(){return o.getEndPosition(this)}static getEndPosition(e){return new n.L(e.endLineNumber,e.endColumn)}getStartPosition(){return o.getStartPosition(this)}static getStartPosition(e){return new n.L(e.startLineNumber,e.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(e,t){return new o(this.startLineNumber,this.startColumn,e,t)}setStartPosition(e,t){return new o(e,t,this.endLineNumber,this.endColumn)}collapseToStart(){return o.collapseToStart(this)}static collapseToStart(e){return new o(e.startLineNumber,e.startColumn,e.startLineNumber,e.startColumn)}static fromPositions(e,t=e){return new o(e.lineNumber,e.column,t.lineNumber,t.column)}static lift(e){return e?new o(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):null}static isIRange(e){return e&&"number"==typeof e.startLineNumber&&"number"==typeof e.startColumn&&"number"==typeof e.endLineNumber&&"number"==typeof e.endColumn}static areIntersectingOrTouching(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<t.startColumn)&&!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<e.startColumn)}static areIntersecting(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<=t.startColumn)&&!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<=e.startColumn)}static compareRangesUsingStarts(e,t){if(e&&t){const i=0|e.startLineNumber,n=0|t.startLineNumber;if(i===n){const i=0|e.startColumn,n=0|t.startColumn;if(i===n){const i=0|e.endLineNumber,n=0|t.endLineNumber;if(i===n){return(0|e.endColumn)-(0|t.endColumn)}return i-n}return i-n}return i-n}return(e?1:0)-(t?1:0)}static compareRangesUsingEnds(e,t){return e.endLineNumber===t.endLineNumber?e.endColumn===t.endColumn?e.startLineNumber===t.startLineNumber?e.startColumn-t.startColumn:e.startLineNumber-t.startLineNumber:e.endColumn-t.endColumn:e.endLineNumber-t.endLineNumber}static spansMultipleLines(e){return e.endLineNumber>e.startLineNumber}toJSON(){return this}}},3860:(e,t,i)=>{"use strict";i.d(t,{Y:()=>s});var n=i(50187),o=i(24314);class s extends o.e{constructor(e,t,i,n){super(e,t,i,n),this.selectionStartLineNumber=e,this.selectionStartColumn=t,this.positionLineNumber=i,this.positionColumn=n}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(e){return s.selectionsEqual(this,e)}static selectionsEqual(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(e,t){return 0===this.getDirection()?new s(this.startLineNumber,this.startColumn,e,t):new s(e,t,this.startLineNumber,this.startColumn)}getPosition(){return new n.L(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new n.L(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(e,t){return 0===this.getDirection()?new s(e,t,this.endLineNumber,this.endColumn):new s(this.endLineNumber,this.endColumn,e,t)}static fromPositions(e,t=e){return new s(e.lineNumber,e.column,t.lineNumber,t.column)}static fromRange(e,t){return 0===t?new s(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):new s(e.endLineNumber,e.endColumn,e.startLineNumber,e.startColumn)}static liftSelection(e){return new s(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)}static selectionsArrEqual(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(let i=0,n=e.length;i<n;i++)if(!this.selectionsEqual(e[i],t[i]))return!1;return!0}static isISelection(e){return e&&"number"==typeof e.selectionStartLineNumber&&"number"==typeof e.selectionStartColumn&&"number"==typeof e.positionLineNumber&&"number"==typeof e.positionColumn}static createWithDirection(e,t,i,n,o){return 0===o?new s(e,t,i,n):new s(i,n,e,t)}}},50072:(e,t,i)=>{"use strict";i.d(t,{kH:()=>g,l$:()=>u,lZ:()=>h,oe:()=>d});var n=i(97295),o=i(1432),s=i(53060);let r,a,l;function c(){return r||(r=new TextDecoder("UTF-16LE")),r}function d(){return l||(l=o.r()?c():(a||(a=new TextDecoder("UTF-16BE")),a)),l}const h="undefined"!=typeof TextDecoder;let u,g;function p(e,t,i){const n=[];let o=0;for(let r=0;r<i;r++){const i=s.mP(e,t);t+=2,n[o++]=String.fromCharCode(i)}return n.join("")}h?(u=e=>new m(e),g=function(e,t,i){const n=new Uint16Array(e.buffer,t,i);if(i>0&&(65279===n[0]||65534===n[0]))return p(e,t,i);return c().decode(n)}):(u=e=>new f,g=p);class m{constructor(e){this._capacity=0|e,this._buffer=new Uint16Array(this._capacity),this._completedStrings=null,this._bufferLength=0}reset(){this._completedStrings=null,this._bufferLength=0}build(){return null!==this._completedStrings?(this._flushBuffer(),this._completedStrings.join("")):this._buildBuffer()}_buildBuffer(){if(0===this._bufferLength)return"";const e=new Uint16Array(this._buffer.buffer,0,this._bufferLength);return d().decode(e)}_flushBuffer(){const e=this._buildBuffer();this._bufferLength=0,null===this._completedStrings?this._completedStrings=[e]:this._completedStrings[this._completedStrings.length]=e}write1(e){const t=this._capacity-this._bufferLength;t<=1&&(0===t||n.ZG(e))&&this._flushBuffer(),this._buffer[this._bufferLength++]=e}appendASCII(e){this._bufferLength===this._capacity&&this._flushBuffer(),this._buffer[this._bufferLength++]=e}appendASCIIString(e){const t=e.length;if(this._bufferLength+t>=this._capacity)return this._flushBuffer(),void(this._completedStrings[this._completedStrings.length]=e);for(let i=0;i<t;i++)this._buffer[this._bufferLength++]=e.charCodeAt(i)}}class f{constructor(){this._pieces=[],this._piecesLen=0}reset(){this._pieces=[],this._piecesLen=0}build(){return this._pieces.join("")}write1(e){this._pieces[this._piecesLen++]=String.fromCharCode(e)}appendASCII(e){this._pieces[this._piecesLen++]=String.fromCharCode(e)}appendASCIIString(e){this._pieces[this._piecesLen++]=e}}},93033:(e,t,i)=>{"use strict";i.d(t,{b:()=>a,q:()=>r});var n=i(53060),o=i(50072);function s(e){return e.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}class r{constructor(e,t,i,n){this.oldPosition=e,this.oldText=t,this.newPosition=i,this.newText=n}get oldLength(){return this.oldText.length}get oldEnd(){return this.oldPosition+this.oldText.length}get newLength(){return this.newText.length}get newEnd(){return this.newPosition+this.newText.length}toString(){return 0===this.oldText.length?`(insert@${this.oldPosition} "${s(this.newText)}")`:0===this.newText.length?`(delete@${this.oldPosition} "${s(this.oldText)}")`:`(replace@${this.oldPosition} "${s(this.oldText)}" with "${s(this.newText)}")`}static _writeStringSize(e){return 4+2*e.length}static _writeString(e,t,i){const o=t.length;n.T4(e,o,i),i+=4;for(let s=0;s<o;s++)n.oq(e,t.charCodeAt(s),i),i+=2;return i}static _readString(e,t){const i=n.Ag(e,t);return t+=4,(0,o.kH)(e,t,i)}writeSize(){return 8+r._writeStringSize(this.oldText)+r._writeStringSize(this.newText)}write(e,t){return n.T4(e,this.oldPosition,t),t+=4,n.T4(e,this.newPosition,t),t+=4,t=r._writeString(e,this.oldText,t),t=r._writeString(e,this.newText,t)}static read(e,t,i){const o=n.Ag(e,t);t+=4;const s=n.Ag(e,t);t+=4;const a=r._readString(e,t);t+=r._writeStringSize(a);const l=r._readString(e,t);return t+=r._writeStringSize(l),i.push(new r(o,a,s,l)),t}}function a(e,t){if(null===e||0===e.length)return t;return new l(e,t).compress()}class l{constructor(e,t){this._prevEdits=e,this._currEdits=t,this._result=[],this._resultLen=0,this._prevLen=this._prevEdits.length,this._prevDeltaOffset=0,this._currLen=this._currEdits.length,this._currDeltaOffset=0}compress(){let e=0,t=0,i=this._getPrev(e),n=this._getCurr(t);for(;e<this._prevLen||t<this._currLen;){if(null===i){this._acceptCurr(n),n=this._getCurr(++t);continue}if(null===n){this._acceptPrev(i),i=this._getPrev(++e);continue}if(n.oldEnd<=i.newPosition){this._acceptCurr(n),n=this._getCurr(++t);continue}if(i.newEnd<=n.oldPosition){this._acceptPrev(i),i=this._getPrev(++e);continue}if(n.oldPosition<i.newPosition){const[e,t]=l._splitCurr(n,i.newPosition-n.oldPosition);this._acceptCurr(e),n=t;continue}if(i.newPosition<n.oldPosition){const[e,t]=l._splitPrev(i,n.oldPosition-i.newPosition);this._acceptPrev(e),i=t;continue}let o,s;if(n.oldEnd===i.newEnd)o=i,s=n,i=this._getPrev(++e),n=this._getCurr(++t);else if(n.oldEnd<i.newEnd){const[e,r]=l._splitPrev(i,n.oldLength);o=e,s=n,i=r,n=this._getCurr(++t)}else{const[t,r]=l._splitCurr(n,i.newLength);o=i,s=t,i=this._getPrev(++e),n=r}this._result[this._resultLen++]=new r(o.oldPosition,o.oldText,s.newPosition,s.newText),this._prevDeltaOffset+=o.newLength-o.oldLength,this._currDeltaOffset+=s.newLength-s.oldLength}const o=l._merge(this._result);return l._removeNoOps(o)}_acceptCurr(e){this._result[this._resultLen++]=l._rebaseCurr(this._prevDeltaOffset,e),this._currDeltaOffset+=e.newLength-e.oldLength}_getCurr(e){return e<this._currLen?this._currEdits[e]:null}_acceptPrev(e){this._result[this._resultLen++]=l._rebasePrev(this._currDeltaOffset,e),this._prevDeltaOffset+=e.newLength-e.oldLength}_getPrev(e){return e<this._prevLen?this._prevEdits[e]:null}static _rebaseCurr(e,t){return new r(t.oldPosition-e,t.oldText,t.newPosition,t.newText)}static _rebasePrev(e,t){return new r(t.oldPosition,t.oldText,t.newPosition+e,t.newText)}static _splitPrev(e,t){const i=e.newText.substr(0,t),n=e.newText.substr(t);return[new r(e.oldPosition,e.oldText,e.newPosition,i),new r(e.oldEnd,"",e.newPosition+t,n)]}static _splitCurr(e,t){const i=e.oldText.substr(0,t),n=e.oldText.substr(t);return[new r(e.oldPosition,i,e.newPosition,e.newText),new r(e.oldPosition+t,n,e.newEnd,"")]}static _merge(e){if(0===e.length)return e;const t=[];let i=0,n=e[0];for(let o=1;o<e.length;o++){const s=e[o];n.oldEnd===s.oldPosition?n=new r(n.oldPosition,n.oldText+s.oldText,n.newPosition,n.newText+s.newText):(t[i++]=n,n=s)}return t[i++]=n,t}static _removeNoOps(e){if(0===e.length)return e;const t=[];let i=0;for(let n=0;n<e.length;n++){const o=e[n];o.oldText!==o.newText&&(t[i++]=o)}return t}}},22075:(e,t,i)=>{"use strict";i.d(t,{D:()=>n});const n={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}}},24929:(e,t,i)=>{"use strict";i.d(t,{u:()=>s});var n=i(44906);class o extends n.N{constructor(e){super(0);for(let t=0,i=e.length;t<i;t++)this.set(e.charCodeAt(t),2);this.set(32,1),this.set(9,1)}}const s=function(e){const t={};return i=>(t.hasOwnProperty(i)||(t[i]=e(i)),t[i])}((e=>new o(e)))},270:(e,t,i)=>{"use strict";i.d(t,{Af:()=>r,eq:()=>a,t2:()=>c,vu:()=>s});var n=i(53725),o=i(91741);const s="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";const r=function(e=""){let t="(-?\\d*\\.\\d\\w*)|([^";for(const i of s)e.indexOf(i)>=0||(t+="\\"+i);return t+="\\s]+)",new RegExp(t,"g")}();function a(e){let t=r;if(e&&e instanceof RegExp)if(e.global)t=e;else{let i="g";e.ignoreCase&&(i+="i"),e.multiline&&(i+="m"),e.unicode&&(i+="u"),t=new RegExp(e.source,i)}return t.lastIndex=0,t}const l=new o.S;function c(e,t,i,o,s){if(s||(s=n.$.first(l)),i.length>s.maxLen){let n=e-s.maxLen/2;return n<0?n=0:o+=n,c(e,t,i=i.substring(n,e+s.maxLen/2),o,s)}const r=Date.now(),a=e-1-o;let h=-1,u=null;for(let n=1;!(Date.now()-r>=s.timeBudget);n++){const e=a-s.windowSize*n;t.lastIndex=Math.max(0,e);const o=d(t,i,a,h);if(!o&&u)break;if(u=o,e<=0)break;h=e}if(u){const e={word:u[0],startColumn:o+1+u.index,endColumn:o+1+u.index+u[0].length};return t.lastIndex=0,e}return null}function d(e,t,i,n){let o;for(;o=e.exec(t);){const t=o.index||0;if(t<=i&&e.lastIndex>=i)return o;if(n>0&&t>n)return null}return null}l.unshift({maxLen:1e3,windowSize:15,timeBudget:150})},47128:(e,t,i)=>{"use strict";i.d(t,{l:()=>o});var n=i(7988);class o{static whitespaceVisibleColumn(e,t,i){const o=e.length;let s=0,r=-1,a=-1;for(let l=0;l<o;l++){if(l===t)return[r,a,s];s%i==0&&(r=l,a=s);switch(e.charCodeAt(l)){case 32:s+=1;break;case 9:s=n.i.nextRenderTabStop(s,i);break;default:return[-1,-1,-1]}}return t===o?[r,a,s]:[-1,-1,-1]}static atomicPosition(e,t,i,s){const r=e.length,[a,l,c]=o.whitespaceVisibleColumn(e,t,i);if(-1===c)return-1;let d;switch(s){case 0:d=!0;break;case 1:d=!1;break;case 2:if(c%i==0)return t;d=c%i<=i/2}if(d){if(-1===a)return-1;let t=l;for(let o=a;o<r;++o){if(t===l+i)return a;switch(e.charCodeAt(o)){case 32:t+=1;break;case 9:t=n.i.nextRenderTabStop(t,i);break;default:return-1}}return t===l+i?a:-1}const h=n.i.nextRenderTabStop(c,i);let u=c;for(let o=t;o<r;o++){if(u===h)return o;switch(e.charCodeAt(o)){case 32:u+=1;break;case 9:u=n.i.nextRenderTabStop(u,i);break;default:return-1}}return u===h?r:-1}}},29436:(e,t,i)=>{"use strict";i.d(t,{A:()=>d});var n=i(97295),o=i(61329),s=i(55343),r=i(7988),a=i(10839),l=i(24314),c=i(50187);class d{static deleteRight(e,t,i,n){const s=[];let r=3!==e;for(let c=0,d=n.length;c<d;c++){const e=n[c];let d=e;if(d.isEmpty()){const n=e.getPosition(),o=a.o.right(t,i,n);d=new l.e(o.lineNumber,o.column,n.lineNumber,n.column)}d.isEmpty()?s[c]=null:(d.startLineNumber!==d.endLineNumber&&(r=!0),s[c]=new o.T4(d,""))}return[r,s]}static isAutoClosingPairDelete(e,t,i,n,o,r,a){if("never"===t&&"never"===i)return!1;if("never"===e)return!1;for(let l=0,c=r.length;l<c;l++){const c=r[l],d=c.getPosition();if(!c.isEmpty())return!1;const h=o.getLineContent(d.lineNumber);if(d.column<2||d.column>=h.length+1)return!1;const u=h.charAt(d.column-2),g=n.get(u);if(!g)return!1;if((0,s.LN)(u)){if("never"===i)return!1}else if("never"===t)return!1;const p=h.charAt(d.column-1);let m=!1;for(const e of g)e.open===u&&e.close===p&&(m=!0);if(!m)return!1;if("auto"===e){let e=!1;for(let t=0,i=a.length;t<i;t++){const i=a[t];if(d.lineNumber===i.startLineNumber&&d.column===i.startColumn){e=!0;break}}if(!e)return!1}}return!0}static _runAutoClosingPairDelete(e,t,i){const n=[];for(let s=0,r=i.length;s<r;s++){const e=i[s].getPosition(),t=new l.e(e.lineNumber,e.column-1,e.lineNumber,e.column+1);n[s]=new o.T4(t,"")}return[!0,n]}static deleteLeft(e,t,i,n,s){if(this.isAutoClosingPairDelete(t.autoClosingDelete,t.autoClosingBrackets,t.autoClosingQuotes,t.autoClosingPairs.autoClosingPairsOpenByEnd,i,n,s))return this._runAutoClosingPairDelete(t,i,n);const r=[];let a=2!==e;for(let l=0,c=n.length;l<c;l++){const e=d.getDeleteRange(n[l],i,t);e.isEmpty()?r[l]=null:(e.startLineNumber!==e.endLineNumber&&(a=!0),r[l]=new o.T4(e,""))}return[a,r]}static getDeleteRange(e,t,i){if(!e.isEmpty())return e;const o=e.getPosition();if(i.useTabStops&&o.column>1){const e=t.getLineContent(o.lineNumber),s=n.LC(e),a=-1===s?e.length+1:s+1;if(o.column<=a){const e=i.visibleColumnFromColumn(t,o),n=r.i.prevIndentTabStop(e,i.indentSize),s=i.columnFromVisibleColumn(t,o.lineNumber,n);return new l.e(o.lineNumber,s,o.lineNumber,o.column)}}return l.e.fromPositions(d.getPositionAfterDeleteLeft(o,t),o)}static getPositionAfterDeleteLeft(e,t){if(e.column>1){const i=n.oH(e.column-1,t.getLineContent(e.lineNumber));return e.with(void 0,i+1)}if(e.lineNumber>1){const i=e.lineNumber-1;return new c.L(i,t.getLineMaxColumn(i))}return e}static cut(e,t,i){const n=[];let r=null;i.sort(((e,t)=>c.L.compare(e.getStartPosition(),t.getEndPosition())));for(let s=0,a=i.length;s<a;s++){const a=i[s];if(a.isEmpty())if(e.emptySelectionClipboard){const e=a.getPosition();let i,c,d,h;e.lineNumber<t.getLineCount()?(i=e.lineNumber,c=1,d=e.lineNumber+1,h=1):e.lineNumber>1&&(null==r?void 0:r.endLineNumber)!==e.lineNumber?(i=e.lineNumber-1,c=t.getLineMaxColumn(e.lineNumber-1),d=e.lineNumber,h=t.getLineMaxColumn(e.lineNumber)):(i=e.lineNumber,c=1,d=e.lineNumber,h=t.getLineMaxColumn(e.lineNumber));const u=new l.e(i,c,d,h);r=u,u.isEmpty()?n[s]=null:n[s]=new o.T4(u,"")}else n[s]=null;else n[s]=new o.T4(a,"")}return new s.Tp(0,n,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}},28108:(e,t,i)=>{"use strict";i.d(t,{N:()=>n,P:()=>d});var n,o=i(98401),s=i(55343),r=i(10839),a=i(92896),l=i(50187),c=i(24314);class d{static addCursorDown(e,t,i){const n=[];let o=0;for(let a=0,l=t.length;a<l;a++){const l=t[a];n[o++]=new s.Vi(l.modelState,l.viewState),n[o++]=i?s.Vi.fromModelState(r.o.translateDown(e.cursorConfig,e.model,l.modelState)):s.Vi.fromViewState(r.o.translateDown(e.cursorConfig,e,l.viewState))}return n}static addCursorUp(e,t,i){const n=[];let o=0;for(let a=0,l=t.length;a<l;a++){const l=t[a];n[o++]=new s.Vi(l.modelState,l.viewState),n[o++]=i?s.Vi.fromModelState(r.o.translateUp(e.cursorConfig,e.model,l.modelState)):s.Vi.fromViewState(r.o.translateUp(e.cursorConfig,e,l.viewState))}return n}static moveToBeginningOfLine(e,t,i){const n=[];for(let o=0,s=t.length;o<s;o++){const s=t[o];n[o]=this._moveToLineStart(e,s,i)}return n}static _moveToLineStart(e,t,i){const n=t.viewState.position.column,o=n===t.modelState.position.column,s=t.viewState.position.lineNumber,r=e.getLineFirstNonWhitespaceColumn(s);return o||n===r?this._moveToLineStartByModel(e,t,i):this._moveToLineStartByView(e,t,i)}static _moveToLineStartByView(e,t,i){return s.Vi.fromViewState(r.o.moveToBeginningOfLine(e.cursorConfig,e,t.viewState,i))}static _moveToLineStartByModel(e,t,i){return s.Vi.fromModelState(r.o.moveToBeginningOfLine(e.cursorConfig,e.model,t.modelState,i))}static moveToEndOfLine(e,t,i,n){const o=[];for(let s=0,r=t.length;s<r;s++){const r=t[s];o[s]=this._moveToLineEnd(e,r,i,n)}return o}static _moveToLineEnd(e,t,i,n){const o=t.viewState.position,s=e.getLineMaxColumn(o.lineNumber),r=o.column===s,a=t.modelState.position,l=e.model.getLineMaxColumn(a.lineNumber),c=s-o.column==l-a.column;return r||c?this._moveToLineEndByModel(e,t,i,n):this._moveToLineEndByView(e,t,i,n)}static _moveToLineEndByView(e,t,i,n){return s.Vi.fromViewState(r.o.moveToEndOfLine(e.cursorConfig,e,t.viewState,i,n))}static _moveToLineEndByModel(e,t,i,n){return s.Vi.fromModelState(r.o.moveToEndOfLine(e.cursorConfig,e.model,t.modelState,i,n))}static expandLineSelection(e,t){const i=[];for(let n=0,o=t.length;n<o;n++){const o=t[n],r=o.modelState.selection.startLineNumber,a=e.model.getLineCount();let d,h=o.modelState.selection.endLineNumber;h===a?d=e.model.getLineMaxColumn(a):(h++,d=1),i[n]=s.Vi.fromModelState(new s.rS(new c.e(r,1,r,1),0,new l.L(h,d),0))}return i}static moveToBeginningOfBuffer(e,t,i){const n=[];for(let o=0,a=t.length;o<a;o++){const a=t[o];n[o]=s.Vi.fromModelState(r.o.moveToBeginningOfBuffer(e.cursorConfig,e.model,a.modelState,i))}return n}static moveToEndOfBuffer(e,t,i){const n=[];for(let o=0,a=t.length;o<a;o++){const a=t[o];n[o]=s.Vi.fromModelState(r.o.moveToEndOfBuffer(e.cursorConfig,e.model,a.modelState,i))}return n}static selectAll(e,t){const i=e.model.getLineCount(),n=e.model.getLineMaxColumn(i);return s.Vi.fromModelState(new s.rS(new c.e(1,1,1,1),0,new l.L(i,n),0))}static line(e,t,i,n,o){const r=e.model.validatePosition(n),a=o?e.coordinatesConverter.validateViewPosition(new l.L(o.lineNumber,o.column),r):e.coordinatesConverter.convertModelPositionToViewPosition(r);if(!i||!t.modelState.hasSelection()){const t=e.model.getLineCount();let i=r.lineNumber+1,n=1;return i>t&&(i=t,n=e.model.getLineMaxColumn(i)),s.Vi.fromModelState(new s.rS(new c.e(r.lineNumber,1,i,n),0,new l.L(i,n),0))}const d=t.modelState.selectionStart.getStartPosition().lineNumber;if(r.lineNumber<d)return s.Vi.fromViewState(t.viewState.move(t.modelState.hasSelection(),a.lineNumber,1,0));if(r.lineNumber>d){const i=e.getLineCount();let n=a.lineNumber+1,o=1;return n>i&&(n=i,o=e.getLineMaxColumn(n)),s.Vi.fromViewState(t.viewState.move(t.modelState.hasSelection(),n,o,0))}{const e=t.modelState.selectionStart.getEndPosition();return s.Vi.fromModelState(t.modelState.move(t.modelState.hasSelection(),e.lineNumber,e.column,0))}}static word(e,t,i,n){const o=e.model.validatePosition(n);return s.Vi.fromModelState(a.w.word(e.cursorConfig,e.model,t.modelState,i,o))}static cancelSelection(e,t){if(!t.modelState.hasSelection())return new s.Vi(t.modelState,t.viewState);const i=t.viewState.position.lineNumber,n=t.viewState.position.column;return s.Vi.fromViewState(new s.rS(new c.e(i,n,i,n),0,new l.L(i,n),0))}static moveTo(e,t,i,n,o){const r=e.model.validatePosition(n),a=o?e.coordinatesConverter.validateViewPosition(new l.L(o.lineNumber,o.column),r):e.coordinatesConverter.convertModelPositionToViewPosition(r);return s.Vi.fromViewState(t.viewState.move(i,a.lineNumber,a.column,0))}static simpleMove(e,t,i,n,o,a){switch(i){case 0:return 4===a?this._moveHalfLineLeft(e,t,n):this._moveLeft(e,t,n,o);case 1:return 4===a?this._moveHalfLineRight(e,t,n):this._moveRight(e,t,n,o);case 2:return 2===a?this._moveUpByViewLines(e,t,n,o):this._moveUpByModelLines(e,t,n,o);case 3:return 2===a?this._moveDownByViewLines(e,t,n,o):this._moveDownByModelLines(e,t,n,o);case 4:return 2===a?t.map((t=>s.Vi.fromViewState(r.o.moveToPrevBlankLine(e.cursorConfig,e,t.viewState,n)))):t.map((t=>s.Vi.fromModelState(r.o.moveToPrevBlankLine(e.cursorConfig,e.model,t.modelState,n))));case 5:return 2===a?t.map((t=>s.Vi.fromViewState(r.o.moveToNextBlankLine(e.cursorConfig,e,t.viewState,n)))):t.map((t=>s.Vi.fromModelState(r.o.moveToNextBlankLine(e.cursorConfig,e.model,t.modelState,n))));case 6:return this._moveToViewMinColumn(e,t,n);case 7:return this._moveToViewFirstNonWhitespaceColumn(e,t,n);case 8:return this._moveToViewCenterColumn(e,t,n);case 9:return this._moveToViewMaxColumn(e,t,n);case 10:return this._moveToViewLastNonWhitespaceColumn(e,t,n);default:return null}}static viewportMove(e,t,i,n,o){const s=e.getCompletelyVisibleViewRange(),r=e.coordinatesConverter.convertViewRangeToModelRange(s);switch(i){case 11:{const i=this._firstLineNumberInRange(e.model,r,o),s=e.model.getLineFirstNonWhitespaceColumn(i);return[this._moveToModelPosition(e,t[0],n,i,s)]}case 13:{const i=this._lastLineNumberInRange(e.model,r,o),s=e.model.getLineFirstNonWhitespaceColumn(i);return[this._moveToModelPosition(e,t[0],n,i,s)]}case 12:{const i=Math.round((r.startLineNumber+r.endLineNumber)/2),o=e.model.getLineFirstNonWhitespaceColumn(i);return[this._moveToModelPosition(e,t[0],n,i,o)]}case 14:{const i=[];for(let o=0,r=t.length;o<r;o++){const r=t[o];i[o]=this.findPositionInViewportIfOutside(e,r,s,n)}return i}default:return null}}static findPositionInViewportIfOutside(e,t,i,n){const o=t.viewState.position.lineNumber;if(i.startLineNumber<=o&&o<=i.endLineNumber-1)return new s.Vi(t.modelState,t.viewState);{let a;a=o>i.endLineNumber-1?i.endLineNumber-1:o<i.startLineNumber?i.startLineNumber:o;const l=r.o.vertical(e.cursorConfig,e,o,t.viewState.position.column,t.viewState.leftoverVisibleColumns,a,!1);return s.Vi.fromViewState(t.viewState.move(n,l.lineNumber,l.column,l.leftoverVisibleColumns))}}static _firstLineNumberInRange(e,t,i){let n=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(n)&&n++,Math.min(t.endLineNumber,n+i-1)}static _lastLineNumberInRange(e,t,i){let n=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(n)&&n++,Math.max(n,t.endLineNumber-i+1)}static _moveLeft(e,t,i,n){return t.map((t=>s.Vi.fromViewState(r.o.moveLeft(e.cursorConfig,e,t.viewState,i,n))))}static _moveHalfLineLeft(e,t,i){const n=[];for(let o=0,a=t.length;o<a;o++){const a=t[o],l=a.viewState.position.lineNumber,c=Math.round(e.getLineContent(l).length/2);n[o]=s.Vi.fromViewState(r.o.moveLeft(e.cursorConfig,e,a.viewState,i,c))}return n}static _moveRight(e,t,i,n){return t.map((t=>s.Vi.fromViewState(r.o.moveRight(e.cursorConfig,e,t.viewState,i,n))))}static _moveHalfLineRight(e,t,i){const n=[];for(let o=0,a=t.length;o<a;o++){const a=t[o],l=a.viewState.position.lineNumber,c=Math.round(e.getLineContent(l).length/2);n[o]=s.Vi.fromViewState(r.o.moveRight(e.cursorConfig,e,a.viewState,i,c))}return n}static _moveDownByViewLines(e,t,i,n){const o=[];for(let a=0,l=t.length;a<l;a++){const l=t[a];o[a]=s.Vi.fromViewState(r.o.moveDown(e.cursorConfig,e,l.viewState,i,n))}return o}static _moveDownByModelLines(e,t,i,n){const o=[];for(let a=0,l=t.length;a<l;a++){const l=t[a];o[a]=s.Vi.fromModelState(r.o.moveDown(e.cursorConfig,e.model,l.modelState,i,n))}return o}static _moveUpByViewLines(e,t,i,n){const o=[];for(let a=0,l=t.length;a<l;a++){const l=t[a];o[a]=s.Vi.fromViewState(r.o.moveUp(e.cursorConfig,e,l.viewState,i,n))}return o}static _moveUpByModelLines(e,t,i,n){const o=[];for(let a=0,l=t.length;a<l;a++){const l=t[a];o[a]=s.Vi.fromModelState(r.o.moveUp(e.cursorConfig,e.model,l.modelState,i,n))}return o}static _moveToViewPosition(e,t,i,n,o){return s.Vi.fromViewState(t.viewState.move(i,n,o,0))}static _moveToModelPosition(e,t,i,n,o){return s.Vi.fromModelState(t.modelState.move(i,n,o,0))}static _moveToViewMinColumn(e,t,i){const n=[];for(let o=0,s=t.length;o<s;o++){const s=t[o],r=s.viewState.position.lineNumber,a=e.getLineMinColumn(r);n[o]=this._moveToViewPosition(e,s,i,r,a)}return n}static _moveToViewFirstNonWhitespaceColumn(e,t,i){const n=[];for(let o=0,s=t.length;o<s;o++){const s=t[o],r=s.viewState.position.lineNumber,a=e.getLineFirstNonWhitespaceColumn(r);n[o]=this._moveToViewPosition(e,s,i,r,a)}return n}static _moveToViewCenterColumn(e,t,i){const n=[];for(let o=0,s=t.length;o<s;o++){const s=t[o],r=s.viewState.position.lineNumber,a=Math.round((e.getLineMaxColumn(r)+e.getLineMinColumn(r))/2);n[o]=this._moveToViewPosition(e,s,i,r,a)}return n}static _moveToViewMaxColumn(e,t,i){const n=[];for(let o=0,s=t.length;o<s;o++){const s=t[o],r=s.viewState.position.lineNumber,a=e.getLineMaxColumn(r);n[o]=this._moveToViewPosition(e,s,i,r,a)}return n}static _moveToViewLastNonWhitespaceColumn(e,t,i){const n=[];for(let o=0,s=t.length;o<s;o++){const s=t[o],r=s.viewState.position.lineNumber,a=e.getLineLastNonWhitespaceColumn(r);n[o]=this._moveToViewPosition(e,s,i,r,a)}return n}}!function(e){e.description={description:"Move cursor to a logical position in the view",args:[{name:"Cursor move argument object",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory logical position value providing where to move the cursor.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine',\n\t\t\t\t\t\t'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'\n\t\t\t\t\t\t'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter'\n\t\t\t\t\t\t'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'line', 'wrappedLine', 'character', 'halfLine'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'select': If 'true' makes the selection. Default is 'false'.\n\t\t\t\t",constraint:function(e){if(!o.Kn(e))return!1;const t=e;return!!o.HD(t.to)&&(!(!o.o8(t.select)&&!o.jn(t.select))&&(!(!o.o8(t.by)&&!o.HD(t.by))&&!(!o.o8(t.value)&&!o.hj(t.value))))},schema:{type:"object",required:["to"],properties:{to:{type:"string",enum:["left","right","up","down","prevBlankLine","nextBlankLine","wrappedLineStart","wrappedLineEnd","wrappedLineColumnCenter","wrappedLineFirstNonWhitespaceCharacter","wrappedLineLastNonWhitespaceCharacter","viewPortTop","viewPortCenter","viewPortBottom","viewPortIfOutside"]},by:{type:"string",enum:["line","wrappedLine","character","halfLine"]},value:{type:"number",default:1},select:{type:"boolean",default:!1}}}}]},e.RawDirection={Left:"left",Right:"right",Up:"up",Down:"down",PrevBlankLine:"prevBlankLine",NextBlankLine:"nextBlankLine",WrappedLineStart:"wrappedLineStart",WrappedLineFirstNonWhitespaceCharacter:"wrappedLineFirstNonWhitespaceCharacter",WrappedLineColumnCenter:"wrappedLineColumnCenter",WrappedLineEnd:"wrappedLineEnd",WrappedLineLastNonWhitespaceCharacter:"wrappedLineLastNonWhitespaceCharacter",ViewPortTop:"viewPortTop",ViewPortCenter:"viewPortCenter",ViewPortBottom:"viewPortBottom",ViewPortIfOutside:"viewPortIfOutside"},e.RawUnit={Line:"line",WrappedLine:"wrappedLine",Character:"character",HalfLine:"halfLine"},e.parse=function(t){if(!t.to)return null;let i;switch(t.to){case e.RawDirection.Left:i=0;break;case e.RawDirection.Right:i=1;break;case e.RawDirection.Up:i=2;break;case e.RawDirection.Down:i=3;break;case e.RawDirection.PrevBlankLine:i=4;break;case e.RawDirection.NextBlankLine:i=5;break;case e.RawDirection.WrappedLineStart:i=6;break;case e.RawDirection.WrappedLineFirstNonWhitespaceCharacter:i=7;break;case e.RawDirection.WrappedLineColumnCenter:i=8;break;case e.RawDirection.WrappedLineEnd:i=9;break;case e.RawDirection.WrappedLineLastNonWhitespaceCharacter:i=10;break;case e.RawDirection.ViewPortTop:i=11;break;case e.RawDirection.ViewPortBottom:i=13;break;case e.RawDirection.ViewPortCenter:i=12;break;case e.RawDirection.ViewPortIfOutside:i=14;break;default:return null}let n=0;switch(t.by){case e.RawUnit.Line:n=1;break;case e.RawUnit.WrappedLine:n=2;break;case e.RawUnit.Character:n=3;break;case e.RawUnit.HalfLine:n=4}return{direction:i,unit:n,select:!!t.select,value:t.value||1}}}(n||(n={}))},10839:(e,t,i)=>{"use strict";i.d(t,{o:()=>d});var n=i(55343),o=i(7988),s=i(50187),r=i(24314),a=i(97295),l=i(47128);class c{constructor(e,t,i){this._cursorPositionBrand=void 0,this.lineNumber=e,this.column=t,this.leftoverVisibleColumns=i}}class d{static leftPosition(e,t){if(t.column>e.getLineMinColumn(t.lineNumber))return t.delta(void 0,-a.HO(e.getLineContent(t.lineNumber),t.column-1));if(t.lineNumber>1){const i=t.lineNumber-1;return new s.L(i,e.getLineMaxColumn(i))}return t}static leftPositionAtomicSoftTabs(e,t,i){if(t.column<=e.getLineIndentColumn(t.lineNumber)){const n=e.getLineMinColumn(t.lineNumber),o=e.getLineContent(t.lineNumber),r=l.l.atomicPosition(o,t.column-1,i,0);if(-1!==r&&r+1>=n)return new s.L(t.lineNumber,r+1)}return this.leftPosition(e,t)}static left(e,t,i){const n=e.stickyTabStops?d.leftPositionAtomicSoftTabs(t,i,e.tabSize):d.leftPosition(t,i);return new c(n.lineNumber,n.column,0)}static moveLeft(e,t,i,n,o){let s,r;if(i.hasSelection()&&!n)s=i.selection.startLineNumber,r=i.selection.startColumn;else{const n=i.position.delta(void 0,-(o-1)),a=t.normalizePosition(d.clipPositionColumn(n,t),0),l=d.left(e,t,a);s=l.lineNumber,r=l.column}return i.move(n,s,r,0)}static clipPositionColumn(e,t){return new s.L(e.lineNumber,d.clipRange(e.column,t.getLineMinColumn(e.lineNumber),t.getLineMaxColumn(e.lineNumber)))}static clipRange(e,t,i){return e<t?t:e>i?i:e}static rightPosition(e,t,i){return i<e.getLineMaxColumn(t)?i+=a.vH(e.getLineContent(t),i-1):t<e.getLineCount()&&(t+=1,i=e.getLineMinColumn(t)),new s.L(t,i)}static rightPositionAtomicSoftTabs(e,t,i,n,o){if(i<e.getLineIndentColumn(t)){const o=e.getLineContent(t),r=l.l.atomicPosition(o,i-1,n,1);if(-1!==r)return new s.L(t,r+1)}return this.rightPosition(e,t,i)}static right(e,t,i){const n=e.stickyTabStops?d.rightPositionAtomicSoftTabs(t,i.lineNumber,i.column,e.tabSize,e.indentSize):d.rightPosition(t,i.lineNumber,i.column);return new c(n.lineNumber,n.column,0)}static moveRight(e,t,i,n,o){let s,r;if(i.hasSelection()&&!n)s=i.selection.endLineNumber,r=i.selection.endColumn;else{const n=i.position.delta(void 0,o-1),a=t.normalizePosition(d.clipPositionColumn(n,t),1),l=d.right(e,t,a);s=l.lineNumber,r=l.column}return i.move(n,s,r,0)}static vertical(e,t,i,n,r,a,l,d){const h=o.i.visibleColumnFromColumn(t.getLineContent(i),n,e.tabSize)+r,u=t.getLineCount(),g=1===i&&1===n,p=i===u&&n===t.getLineMaxColumn(i),m=a<i?g:p;if((i=a)<1?(i=1,n=l?t.getLineMinColumn(i):Math.min(t.getLineMaxColumn(i),n)):i>u?(i=u,n=l?t.getLineMaxColumn(i):Math.min(t.getLineMaxColumn(i),n)):n=e.columnFromVisibleColumn(t,i,h),r=m?0:h-o.i.visibleColumnFromColumn(t.getLineContent(i),n,e.tabSize),void 0!==d){const e=new s.L(i,n),o=t.normalizePosition(e,d);r+=n-o.column,i=o.lineNumber,n=o.column}return new c(i,n,r)}static down(e,t,i,n,o,s,r){return this.vertical(e,t,i,n,o,i+s,r,4)}static moveDown(e,t,i,n,o){let s,r;i.hasSelection()&&!n?(s=i.selection.endLineNumber,r=i.selection.endColumn):(s=i.position.lineNumber,r=i.position.column);const a=d.down(e,t,s,r,i.leftoverVisibleColumns,o,!0);return i.move(n,a.lineNumber,a.column,a.leftoverVisibleColumns)}static translateDown(e,t,i){const o=i.selection,a=d.down(e,t,o.selectionStartLineNumber,o.selectionStartColumn,i.selectionStartLeftoverVisibleColumns,1,!1),l=d.down(e,t,o.positionLineNumber,o.positionColumn,i.leftoverVisibleColumns,1,!1);return new n.rS(new r.e(a.lineNumber,a.column,a.lineNumber,a.column),a.leftoverVisibleColumns,new s.L(l.lineNumber,l.column),l.leftoverVisibleColumns)}static up(e,t,i,n,o,s,r){return this.vertical(e,t,i,n,o,i-s,r,3)}static moveUp(e,t,i,n,o){let s,r;i.hasSelection()&&!n?(s=i.selection.startLineNumber,r=i.selection.startColumn):(s=i.position.lineNumber,r=i.position.column);const a=d.up(e,t,s,r,i.leftoverVisibleColumns,o,!0);return i.move(n,a.lineNumber,a.column,a.leftoverVisibleColumns)}static translateUp(e,t,i){const o=i.selection,a=d.up(e,t,o.selectionStartLineNumber,o.selectionStartColumn,i.selectionStartLeftoverVisibleColumns,1,!1),l=d.up(e,t,o.positionLineNumber,o.positionColumn,i.leftoverVisibleColumns,1,!1);return new n.rS(new r.e(a.lineNumber,a.column,a.lineNumber,a.column),a.leftoverVisibleColumns,new s.L(l.lineNumber,l.column),l.leftoverVisibleColumns)}static _isBlankLine(e,t){return 0===e.getLineFirstNonWhitespaceColumn(t)}static moveToPrevBlankLine(e,t,i,n){let o=i.position.lineNumber;for(;o>1&&this._isBlankLine(t,o);)o--;for(;o>1&&!this._isBlankLine(t,o);)o--;return i.move(n,o,t.getLineMinColumn(o),0)}static moveToNextBlankLine(e,t,i,n){const o=t.getLineCount();let s=i.position.lineNumber;for(;s<o&&this._isBlankLine(t,s);)s++;for(;s<o&&!this._isBlankLine(t,s);)s++;return i.move(n,s,t.getLineMinColumn(s),0)}static moveToBeginningOfLine(e,t,i,n){const o=i.position.lineNumber,s=t.getLineMinColumn(o),r=t.getLineFirstNonWhitespaceColumn(o)||s;let a;return a=i.position.column===r?s:r,i.move(n,o,a,0)}static moveToEndOfLine(e,t,i,n,o){const s=i.position.lineNumber,r=t.getLineMaxColumn(s);return i.move(n,s,r,o?1073741824-r:0)}static moveToBeginningOfBuffer(e,t,i,n){return i.move(n,1,1,0)}static moveToEndOfBuffer(e,t,i,n){const o=t.getLineCount(),s=t.getLineMaxColumn(o);return i.move(n,o,s,0)}}},94729:(e,t,i)=>{"use strict";i.d(t,{Nu:()=>w,u6:()=>b,g_:()=>C});var n=i(17301),o=i(97295),s=i(61329),r=i(10291),a=i(24314),l=i(3860);class c{constructor(e,t,i){this._range=e,this._charBeforeSelection=t,this._charAfterSelection=i}getEditOperations(e,t){t.addTrackedEditOperation(new a.e(this._range.startLineNumber,this._range.startColumn,this._range.startLineNumber,this._range.startColumn),this._charBeforeSelection),t.addTrackedEditOperation(new a.e(this._range.endLineNumber,this._range.endColumn,this._range.endLineNumber,this._range.endColumn),this._charAfterSelection)}computeCursorState(e,t){const i=t.getInverseEditOperations(),n=i[0].range,o=i[1].range;return new l.Y(n.endLineNumber,n.endColumn,o.endLineNumber,o.endColumn-this._charAfterSelection.length)}}class d{constructor(e,t,i){this._position=e,this._text=t,this._charAfter=i}getEditOperations(e,t){t.addTrackedEditOperation(new a.e(this._position.lineNumber,this._position.column,this._position.lineNumber,this._position.column),this._text+this._charAfter)}computeCursorState(e,t){const i=t.getInverseEditOperations()[0].range;return new l.Y(i.endLineNumber,i.startColumn,i.endLineNumber,i.endColumn-this._charAfter.length)}}var h=i(55343),u=i(24929),g=i(50187),p=i(49119),m=i(4256),f=i(19111),_=i(75383),v=i(1615);class b{static indent(e,t,i){if(null===t||null===i)return[];const n=[];for(let o=0,s=i.length;o<s;o++)n[o]=new r.U(i[o],{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService);return n}static outdent(e,t,i){const n=[];for(let o=0,s=i.length;o<s;o++)n[o]=new r.U(i[o],{isUnshift:!0,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService);return n}static shiftIndent(e,t,i){return i=i||1,r.U.shiftIndent(t,t.length+i,e.tabSize,e.indentSize,e.insertSpaces)}static unshiftIndent(e,t,i){return i=i||1,r.U.unshiftIndent(t,t.length+i,e.tabSize,e.indentSize,e.insertSpaces)}static _distributedPaste(e,t,i,n){const o=[];for(let r=0,a=i.length;r<a;r++)o[r]=new s.T4(i[r],n[r]);return new h.Tp(0,o,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}static _simplePaste(e,t,i,n,o){const r=[];for(let l=0,c=i.length;l<c;l++){const e=i[l],t=e.getPosition();if(o&&!e.isEmpty()&&(o=!1),o&&n.indexOf("\n")!==n.length-1&&(o=!1),o){const i=new a.e(t.lineNumber,1,t.lineNumber,1);r[l]=new s.hP(i,n,e,!0)}else r[l]=new s.T4(e,n)}return new h.Tp(0,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}static _distributePasteToCursors(e,t,i,n,s){if(n)return null;if(1===t.length)return null;if(s&&s.length===t.length)return s;if("spread"===e.multiCursorPaste){10===i.charCodeAt(i.length-1)&&(i=i.substr(0,i.length-1)),13===i.charCodeAt(i.length-1)&&(i=i.substr(0,i.length-1));const e=o.uq(i);if(e.length===t.length)return e}return null}static paste(e,t,i,n,o,s){const r=this._distributePasteToCursors(e,i,n,o,s);return r?(i=i.sort(a.e.compareRangesUsingStarts),this._distributedPaste(e,t,i,r)):this._simplePaste(e,t,i,n,o)}static _goodIndentForLine(e,t,i){let n=null,s="";const r=(0,_.r7)(e.autoIndent,t,i,!1,e.languageConfigurationService);if(r)n=r.action,s=r.indentation;else if(i>1){let n;for(n=i-1;n>=1;n--){const e=t.getLineContent(n);if(o.ow(e)>=0)break}if(n<1)return null;const r=t.getLineMaxColumn(n),l=(0,v.A)(e.autoIndent,t,new a.e(n,r,n,r),e.languageConfigurationService);l&&(s=l.indentation+l.appendText)}return n&&(n===p.wU.Indent&&(s=b.shiftIndent(e,s)),n===p.wU.Outdent&&(s=b.unshiftIndent(e,s)),s=e.normalizeIndentation(s)),s||null}static _replaceJumpToNextIndent(e,t,i,n){let o="";const r=i.getStartPosition();if(e.insertSpaces){const i=e.visibleColumnFromColumn(t,r),n=e.indentSize,s=n-i%n;for(let e=0;e<s;e++)o+=" "}else o="\t";return new s.T4(i,o,n)}static tab(e,t,i){const n=[];for(let o=0,l=i.length;o<l;o++){const l=i[o];if(l.isEmpty()){const i=t.getLineContent(l.startLineNumber);if(/^\s*$/.test(i)&&t.tokenization.isCheapToTokenize(l.startLineNumber)){let r=this._goodIndentForLine(e,t,l.startLineNumber);r=r||"\t";const c=e.normalizeIndentation(r);if(!i.startsWith(c)){n[o]=new s.T4(new a.e(l.startLineNumber,1,l.startLineNumber,i.length+1),c,!0);continue}}n[o]=this._replaceJumpToNextIndent(e,t,l,!0)}else{if(l.startLineNumber===l.endLineNumber){const i=t.getLineMaxColumn(l.startLineNumber);if(1!==l.startColumn||l.endColumn!==i){n[o]=this._replaceJumpToNextIndent(e,t,l,!1);continue}}n[o]=new r.U(l,{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService)}}return n}static compositionType(e,t,i,n,o,s,r,a){const l=n.map((e=>this._compositionType(i,e,o,s,r,a)));return new h.Tp(4,l,{shouldPushStackElementBefore:S(e,4),shouldPushStackElementAfter:!1})}static _compositionType(e,t,i,n,o,r){if(!t.isEmpty())return null;const l=t.getPosition(),c=Math.max(1,l.column-n),d=Math.min(e.getLineMaxColumn(l.lineNumber),l.column+o),h=new a.e(l.lineNumber,c,l.lineNumber,d);return e.getValueInRange(h)===i&&0===r?null:new s.Uo(h,i,0,r)}static _typeCommand(e,t,i){return i?new s.Sj(e,t,!0):new s.T4(e,t,!0)}static _enter(e,t,i,n){if(0===e.autoIndent)return b._typeCommand(n,"\n",i);if(!t.tokenization.isCheapToTokenize(n.getStartPosition().lineNumber)||1===e.autoIndent){const s=t.getLineContent(n.startLineNumber),r=o.V8(s).substring(0,n.startColumn-1);return b._typeCommand(n,"\n"+e.normalizeIndentation(r),i)}const r=(0,v.A)(e.autoIndent,t,n,e.languageConfigurationService);if(r){if(r.indentAction===p.wU.None)return b._typeCommand(n,"\n"+e.normalizeIndentation(r.indentation+r.appendText),i);if(r.indentAction===p.wU.Indent)return b._typeCommand(n,"\n"+e.normalizeIndentation(r.indentation+r.appendText),i);if(r.indentAction===p.wU.IndentOutdent){const t=e.normalizeIndentation(r.indentation),o=e.normalizeIndentation(r.indentation+r.appendText),a="\n"+o+"\n"+t;return i?new s.Sj(n,a,!0):new s.Uo(n,a,-1,o.length-t.length,!0)}if(r.indentAction===p.wU.Outdent){const t=b.unshiftIndent(e,r.indentation);return b._typeCommand(n,"\n"+e.normalizeIndentation(t+r.appendText),i)}}const a=t.getLineContent(n.startLineNumber),l=o.V8(a).substring(0,n.startColumn-1);if(e.autoIndent>=4){const r=(0,_.UF)(e.autoIndent,t,n,{unshiftIndent:t=>b.unshiftIndent(e,t),shiftIndent:t=>b.shiftIndent(e,t),normalizeIndentation:t=>e.normalizeIndentation(t)},e.languageConfigurationService);if(r){let a=e.visibleColumnFromColumn(t,n.getEndPosition());const l=n.endColumn,c=t.getLineContent(n.endLineNumber),d=o.LC(c);if(n=d>=0?n.setEndPosition(n.endLineNumber,Math.max(n.endColumn,d+1)):n.setEndPosition(n.endLineNumber,t.getLineMaxColumn(n.endLineNumber)),i)return new s.Sj(n,"\n"+e.normalizeIndentation(r.afterEnter),!0);{let t=0;return l<=d+1&&(e.insertSpaces||(a=Math.ceil(a/e.indentSize)),t=Math.min(a+1-e.normalizeIndentation(r.afterEnter).length-1,0)),new s.Uo(n,"\n"+e.normalizeIndentation(r.afterEnter),0,t,!0)}}}return b._typeCommand(n,"\n"+e.normalizeIndentation(l),i)}static _isAutoIndentType(e,t,i){if(e.autoIndent<4)return!1;for(let n=0,o=i.length;n<o;n++)if(!t.tokenization.isCheapToTokenize(i[n].getEndPosition().lineNumber))return!1;return!0}static _runAutoIndentType(e,t,i,n){const o=(0,m.u0)(t,i.startLineNumber,i.startColumn),s=(0,_.$9)(e.autoIndent,t,i,n,{shiftIndent:t=>b.shiftIndent(e,t),unshiftIndent:t=>b.unshiftIndent(e,t)},e.languageConfigurationService);if(null===s)return null;if(s!==e.normalizeIndentation(o)){const o=t.getLineFirstNonWhitespaceColumn(i.startLineNumber);return 0===o?b._typeCommand(new a.e(i.startLineNumber,1,i.endLineNumber,i.endColumn),e.normalizeIndentation(s)+n,!1):b._typeCommand(new a.e(i.startLineNumber,1,i.endLineNumber,i.endColumn),e.normalizeIndentation(s)+t.getLineContent(i.startLineNumber).substring(o-1,i.startColumn-1)+n,!1)}return null}static _isAutoClosingOvertype(e,t,i,n,o){if("never"===e.autoClosingOvertype)return!1;if(!e.autoClosingPairs.autoClosingPairsCloseSingleChar.has(o))return!1;for(let s=0,r=i.length;s<r;s++){const r=i[s];if(!r.isEmpty())return!1;const a=r.getPosition(),l=t.getLineContent(a.lineNumber);if(l.charAt(a.column-1)!==o)return!1;const c=(0,h.LN)(o);if(92===(a.column>2?l.charCodeAt(a.column-2):0)&&c)return!1;if("auto"===e.autoClosingOvertype){let e=!1;for(let t=0,i=n.length;t<i;t++){const i=n[t];if(a.lineNumber===i.startLineNumber&&a.column===i.startColumn){e=!0;break}}if(!e)return!1}}return!0}static _runAutoClosingOvertype(e,t,i,n,o){const r=[];for(let l=0,c=n.length;l<c;l++){const e=n[l].getPosition(),t=new a.e(e.lineNumber,e.column,e.lineNumber,e.column+1);r[l]=new s.T4(t,o)}return new h.Tp(4,r,{shouldPushStackElementBefore:S(e,4),shouldPushStackElementAfter:!1})}static _isBeforeClosingBrace(e,t){const i=t.charAt(0),n=e.autoClosingPairs.autoClosingPairsOpenByStart.get(i)||[],o=e.autoClosingPairs.autoClosingPairsCloseByStart.get(i)||[],s=n.some((e=>t.startsWith(e.open))),r=o.some((e=>t.startsWith(e.close)));return!s&&r}static _findAutoClosingPairOpen(e,t,i,n){const o=e.autoClosingPairs.autoClosingPairsOpenByEnd.get(n);if(!o)return null;let s=null;for(const r of o)if(null===s||r.open.length>s.open.length){let e=!0;for(const o of i){if(t.getValueInRange(new a.e(o.lineNumber,o.column-r.open.length+1,o.lineNumber,o.column))+n!==r.open){e=!1;break}}e&&(s=r)}return s}static _findContainedAutoClosingPair(e,t){if(t.open.length<=1)return null;const i=t.close.charAt(t.close.length-1),n=e.autoClosingPairs.autoClosingPairsCloseByEnd.get(i)||[];let o=null;for(const s of n)s.open!==t.open&&t.open.includes(s.open)&&t.close.endsWith(s.close)&&(!o||s.open.length>o.open.length)&&(o=s);return o}static _getAutoClosingPairClose(e,t,i,n,o){const s=(0,h.LN)(n),r=s?e.autoClosingQuotes:e.autoClosingBrackets,a=s?e.shouldAutoCloseBefore.quote:e.shouldAutoCloseBefore.bracket;if("never"===r)return null;for(const h of i)if(!h.isEmpty())return null;const l=i.map((e=>{const t=e.getPosition();return o?{lineNumber:t.lineNumber,beforeColumn:t.column-n.length,afterColumn:t.column}:{lineNumber:t.lineNumber,beforeColumn:t.column,afterColumn:t.column}})),c=this._findAutoClosingPairOpen(e,t,l.map((e=>new g.L(e.lineNumber,e.beforeColumn))),n);if(!c)return null;const d=this._findContainedAutoClosingPair(e,c),p=d?d.close:"";let m=!0;for(const h of l){const{lineNumber:i,beforeColumn:o,afterColumn:s}=h,l=t.getLineContent(i),d=l.substring(0,o-1),g=l.substring(s-1);if(g.startsWith(p)||(m=!1),g.length>0){const t=g.charAt(0);if(!b._isBeforeClosingBrace(e,g)&&!a(t))return null}if(1===c.open.length&&("'"===n||'"'===n)&&"always"!==r){const t=(0,u.u)(e.wordSeparators);if(d.length>0){const e=d.charCodeAt(d.length-1);if(0===t.get(e))return null}}if(!t.tokenization.isCheapToTokenize(i))return null;t.tokenization.forceTokenization(i);const _=t.tokenization.getLineTokens(i),v=(0,f.wH)(_,o-1);if(!c.shouldAutoClose(v,o-v.firstCharOffset))return null;const C=c.findNeutralCharacter();if(C){const e=t.tokenization.getTokenTypeIfInsertingCharacter(i,o,C);if(!c.isOK(e))return null}}return m?c.close.substring(0,c.close.length-p.length):c.close}static _runAutoClosingOpenCharType(e,t,i,n,o,s,r){const a=[];for(let l=0,c=n.length;l<c;l++){const e=n[l];a[l]=new C(e,o,!s,r)}return new h.Tp(4,a,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}static _shouldSurroundChar(e,t){return(0,h.LN)(t)?"quotes"===e.autoSurround||"languageDefined"===e.autoSurround:"brackets"===e.autoSurround||"languageDefined"===e.autoSurround}static _isSurroundSelectionType(e,t,i,n){if(!b._shouldSurroundChar(e,n)||!e.surroundingPairs.hasOwnProperty(n))return!1;const o=(0,h.LN)(n);for(const s of i){if(s.isEmpty())return!1;let e=!0;for(let i=s.startLineNumber;i<=s.endLineNumber;i++){const n=t.getLineContent(i),o=i===s.startLineNumber?s.startColumn-1:0,r=i===s.endLineNumber?s.endColumn-1:n.length,a=n.substring(o,r);if(/[^ \t]/.test(a)){e=!1;break}}if(e)return!1;if(o&&s.startLineNumber===s.endLineNumber&&s.startColumn+1===s.endColumn){const e=t.getValueInRange(s);if((0,h.LN)(e))return!1}}return!0}static _runSurroundSelectionType(e,t,i,n,o){const s=[];for(let r=0,a=n.length;r<a;r++){const e=n[r],i=t.surroundingPairs[o];s[r]=new c(e,o,i)}return new h.Tp(0,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}static _isTypeInterceptorElectricChar(e,t,i){return!(1!==i.length||!t.tokenization.isCheapToTokenize(i[0].getEndPosition().lineNumber))}static _typeInterceptorElectricChar(e,t,i,r,l){if(!t.electricChars.hasOwnProperty(l)||!r.isEmpty())return null;const c=r.getPosition();i.tokenization.forceTokenization(c.lineNumber);const d=i.tokenization.getLineTokens(c.lineNumber);let u;try{u=t.onElectricCharacter(l,d,c.column)}catch(g){return(0,n.dL)(g),null}if(!u)return null;if(u.matchOpenBracket){const n=(d.getLineContent()+l).lastIndexOf(u.matchOpenBracket)+1,r=i.bracketPairs.findMatchingBracketUp(u.matchOpenBracket,{lineNumber:c.lineNumber,column:n},500);if(r){if(r.startLineNumber===c.lineNumber)return null;const n=i.getLineContent(r.startLineNumber),d=o.V8(n),u=t.normalizeIndentation(d),g=i.getLineContent(c.lineNumber),p=i.getLineFirstNonWhitespaceColumn(c.lineNumber)||c.column,m=u+g.substring(p-1,c.column-1)+l,f=new a.e(c.lineNumber,1,c.lineNumber,c.column),_=new s.T4(f,m);return new h.Tp(y(m,e),[_],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!0})}}return null}static compositionEndWithInterceptors(e,t,i,n,o,r){if(!n)return null;let l=null;for(const s of n)if(null===l)l=s.insertedText;else if(l!==s.insertedText)return null;if(!l||1!==l.length)return null;const c=l;let u=!1;for(const s of n)if(0!==s.deletedText.length){u=!0;break}if(u){if(!b._shouldSurroundChar(t,c)||!t.surroundingPairs.hasOwnProperty(c))return null;const e=(0,h.LN)(c);for(const t of n){if(0!==t.deletedSelectionStart||t.deletedSelectionEnd!==t.deletedText.length)return null;if(/^[ \t]+$/.test(t.deletedText))return null;if(e&&(0,h.LN)(t.deletedText))return null}const i=[];for(const t of o){if(!t.isEmpty())return null;i.push(t.getPosition())}if(i.length!==n.length)return null;const s=[];for(let t=0,o=i.length;t<o;t++)s.push(new d(i[t],n[t].deletedText,c));return new h.Tp(4,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}if(this._isAutoClosingOvertype(t,i,o,r,c)){const e=o.map((e=>new s.T4(new a.e(e.positionLineNumber,e.positionColumn,e.positionLineNumber,e.positionColumn+1),"",!1)));return new h.Tp(4,e,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}const g=this._getAutoClosingPairClose(t,i,o,c,!0);return null!==g?this._runAutoClosingOpenCharType(e,t,i,o,c,!0,g):null}static typeWithInterceptors(e,t,i,n,o,r,a){if(!e&&"\n"===a){const e=[];for(let t=0,s=o.length;t<s;t++)e[t]=b._enter(i,n,!1,o[t]);return new h.Tp(4,e,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}if(!e&&this._isAutoIndentType(i,n,o)){const e=[];let t=!1;for(let s=0,r=o.length;s<r;s++)if(e[s]=this._runAutoIndentType(i,n,o[s],a),!e[s]){t=!0;break}if(!t)return new h.Tp(4,e,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}if(this._isAutoClosingOvertype(i,n,o,r,a))return this._runAutoClosingOvertype(t,i,n,o,a);if(!e){const e=this._getAutoClosingPairClose(i,n,o,a,!1);if(e)return this._runAutoClosingOpenCharType(t,i,n,o,a,!1,e)}if(!e&&this._isSurroundSelectionType(i,n,o,a))return this._runSurroundSelectionType(t,i,n,o,a);if(!e&&this._isTypeInterceptorElectricChar(i,n,o)){const e=this._typeInterceptorElectricChar(t,i,n,o[0],a);if(e)return e}const l=[];for(let d=0,h=o.length;d<h;d++)l[d]=new s.T4(o[d],a);const c=y(a,t);return new h.Tp(c,l,{shouldPushStackElementBefore:S(t,c),shouldPushStackElementAfter:!1})}static typeWithoutInterceptors(e,t,i,n,o){const r=[];for(let l=0,c=n.length;l<c;l++)r[l]=new s.T4(n[l],o);const a=y(o,e);return new h.Tp(a,r,{shouldPushStackElementBefore:S(e,a),shouldPushStackElementAfter:!1})}static lineInsertBefore(e,t,i){if(null===t||null===i)return[];const n=[];for(let o=0,r=i.length;o<r;o++){let r=i[o].positionLineNumber;if(1===r)n[o]=new s.Sj(new a.e(1,1,1,1),"\n");else{r--;const i=t.getLineMaxColumn(r);n[o]=this._enter(e,t,!1,new a.e(r,i,r,i))}}return n}static lineInsertAfter(e,t,i){if(null===t||null===i)return[];const n=[];for(let o=0,s=i.length;o<s;o++){const s=i[o].positionLineNumber,r=t.getLineMaxColumn(s);n[o]=this._enter(e,t,!1,new a.e(s,r,s,r))}return n}static lineBreakInsert(e,t,i){const n=[];for(let o=0,s=i.length;o<s;o++)n[o]=this._enter(e,t,!0,i[o]);return n}}class C extends s.Uo{constructor(e,t,i,n){super(e,(i?t:"")+n,0,-n.length),this._openCharacter=t,this._closeCharacter=n,this.closeCharacterRange=null,this.enclosingRange=null}computeCursorState(e,t){const i=t.getInverseEditOperations()[0].range;return this.closeCharacterRange=new a.e(i.startLineNumber,i.endColumn-this._closeCharacter.length,i.endLineNumber,i.endColumn),this.enclosingRange=new a.e(i.startLineNumber,i.endColumn-this._openCharacter.length-this._closeCharacter.length,i.endLineNumber,i.endColumn),super.computeCursorState(e,t)}}class w{constructor(e,t,i,n,o,s){this.deletedText=e,this.deletedSelectionStart=t,this.deletedSelectionEnd=i,this.insertedText=n,this.insertedSelectionStart=o,this.insertedSelectionEnd=s}}function y(e,t){return" "===e?5===t||6===t?6:5:4}function S(e,t){return!(!k(e)||k(t))||5!==e&&L(e)!==L(t)}function L(e){return 6===e||5===e?"space":e}function k(e){return 4===e||5===e||6===e}},92896:(e,t,i)=>{"use strict";i.d(t,{L:()=>d,w:()=>c});var n=i(97295),o=i(55343),s=i(29436),r=i(24929),a=i(50187),l=i(24314);class c{static _createWord(e,t,i,n,o){return{start:n,end:o,wordType:t,nextCharClass:i}}static _findPreviousWordOnLine(e,t,i){const n=t.getLineContent(i.lineNumber);return this._doFindPreviousWordOnLine(n,e,i)}static _doFindPreviousWordOnLine(e,t,i){let n=0;for(let o=i.column-2;o>=0;o--){const i=e.charCodeAt(o),s=t.get(i);if(0===s){if(2===n)return this._createWord(e,n,s,o+1,this._findEndOfWord(e,t,n,o+1));n=1}else if(2===s){if(1===n)return this._createWord(e,n,s,o+1,this._findEndOfWord(e,t,n,o+1));n=2}else if(1===s&&0!==n)return this._createWord(e,n,s,o+1,this._findEndOfWord(e,t,n,o+1))}return 0!==n?this._createWord(e,n,1,0,this._findEndOfWord(e,t,n,0)):null}static _findEndOfWord(e,t,i,n){const o=e.length;for(let s=n;s<o;s++){const n=e.charCodeAt(s),o=t.get(n);if(1===o)return s;if(1===i&&2===o)return s;if(2===i&&0===o)return s}return o}static _findNextWordOnLine(e,t,i){const n=t.getLineContent(i.lineNumber);return this._doFindNextWordOnLine(n,e,i)}static _doFindNextWordOnLine(e,t,i){let n=0;const o=e.length;for(let s=i.column-1;s<o;s++){const i=e.charCodeAt(s),o=t.get(i);if(0===o){if(2===n)return this._createWord(e,n,o,this._findStartOfWord(e,t,n,s-1),s);n=1}else if(2===o){if(1===n)return this._createWord(e,n,o,this._findStartOfWord(e,t,n,s-1),s);n=2}else if(1===o&&0!==n)return this._createWord(e,n,o,this._findStartOfWord(e,t,n,s-1),s)}return 0!==n?this._createWord(e,n,1,this._findStartOfWord(e,t,n,o-1),o):null}static _findStartOfWord(e,t,i,n){for(let o=n;o>=0;o--){const n=e.charCodeAt(o),s=t.get(n);if(1===s)return o+1;if(1===i&&2===s)return o+1;if(2===i&&0===s)return o+1}return 0}static moveWordLeft(e,t,i,n){let o=i.lineNumber,s=i.column;1===s&&o>1&&(o-=1,s=t.getLineMaxColumn(o));let r=c._findPreviousWordOnLine(e,t,new a.L(o,s));if(0===n)return new a.L(o,r?r.start+1:1);if(1===n)return r&&2===r.wordType&&r.end-r.start==1&&0===r.nextCharClass&&(r=c._findPreviousWordOnLine(e,t,new a.L(o,r.start+1))),new a.L(o,r?r.start+1:1);if(3===n){for(;r&&2===r.wordType;)r=c._findPreviousWordOnLine(e,t,new a.L(o,r.start+1));return new a.L(o,r?r.start+1:1)}return r&&s<=r.end+1&&(r=c._findPreviousWordOnLine(e,t,new a.L(o,r.start+1))),new a.L(o,r?r.end+1:1)}static _moveWordPartLeft(e,t){const i=t.lineNumber,o=e.getLineMaxColumn(i);if(1===t.column)return i>1?new a.L(i-1,e.getLineMaxColumn(i-1)):t;const s=e.getLineContent(i);for(let r=t.column-1;r>1;r--){const e=s.charCodeAt(r-2),t=s.charCodeAt(r-1);if(95===e&&95!==t)return new a.L(i,r);if((n.mK(e)||n.T5(e))&&n.df(t))return new a.L(i,r);if(n.df(e)&&n.df(t)&&r+1<o){const e=s.charCodeAt(r);if(n.mK(e)||n.T5(e))return new a.L(i,r)}}return new a.L(i,1)}static moveWordRight(e,t,i,n){let o=i.lineNumber,s=i.column,r=!1;s===t.getLineMaxColumn(o)&&o<t.getLineCount()&&(r=!0,o+=1,s=1);let l=c._findNextWordOnLine(e,t,new a.L(o,s));if(2===n)l&&2===l.wordType&&l.end-l.start==1&&0===l.nextCharClass&&(l=c._findNextWordOnLine(e,t,new a.L(o,l.end+1))),s=l?l.end+1:t.getLineMaxColumn(o);else if(3===n){for(r&&(s=0);l&&(2===l.wordType||l.start+1<=s);)l=c._findNextWordOnLine(e,t,new a.L(o,l.end+1));s=l?l.start+1:t.getLineMaxColumn(o)}else l&&!r&&s>=l.start+1&&(l=c._findNextWordOnLine(e,t,new a.L(o,l.end+1))),s=l?l.start+1:t.getLineMaxColumn(o);return new a.L(o,s)}static _moveWordPartRight(e,t){const i=t.lineNumber,o=e.getLineMaxColumn(i);if(t.column===o)return i<e.getLineCount()?new a.L(i+1,1):t;const s=e.getLineContent(i);for(let r=t.column+1;r<o;r++){const e=s.charCodeAt(r-2),t=s.charCodeAt(r-1);if(95!==e&&95===t)return new a.L(i,r);if((n.mK(e)||n.T5(e))&&n.df(t))return new a.L(i,r);if(n.df(e)&&n.df(t)&&r+1<o){const e=s.charCodeAt(r);if(n.mK(e)||n.T5(e))return new a.L(i,r)}}return new a.L(i,o)}static _deleteWordLeftWhitespace(e,t){const i=e.getLineContent(t.lineNumber),o=t.column-2,s=n.ow(i,o);return s+1<o?new l.e(t.lineNumber,s+2,t.lineNumber,t.column):null}static deleteWordLeft(e,t){const i=e.wordSeparators,n=e.model,o=e.selection,r=e.whitespaceHeuristics;if(!o.isEmpty())return o;if(s.A.isAutoClosingPairDelete(e.autoClosingDelete,e.autoClosingBrackets,e.autoClosingQuotes,e.autoClosingPairs.autoClosingPairsOpenByEnd,e.model,[e.selection],e.autoClosedCharacters)){const t=e.selection.getPosition();return new l.e(t.lineNumber,t.column-1,t.lineNumber,t.column+1)}const d=new a.L(o.positionLineNumber,o.positionColumn);let h=d.lineNumber,u=d.column;if(1===h&&1===u)return null;if(r){const e=this._deleteWordLeftWhitespace(n,d);if(e)return e}let g=c._findPreviousWordOnLine(i,n,d);return 0===t?g?u=g.start+1:u>1?u=1:(h--,u=n.getLineMaxColumn(h)):(g&&u<=g.end+1&&(g=c._findPreviousWordOnLine(i,n,new a.L(h,g.start+1))),g?u=g.end+1:u>1?u=1:(h--,u=n.getLineMaxColumn(h))),new l.e(h,u,d.lineNumber,d.column)}static deleteInsideWord(e,t,i){if(!i.isEmpty())return i;const n=new a.L(i.positionLineNumber,i.positionColumn),o=this._deleteInsideWordWhitespace(t,n);return o||this._deleteInsideWordDetermineDeleteRange(e,t,n)}static _charAtIsWhitespace(e,t){const i=e.charCodeAt(t);return 32===i||9===i}static _deleteInsideWordWhitespace(e,t){const i=e.getLineContent(t.lineNumber),n=i.length;if(0===n)return null;let o=Math.max(t.column-2,0);if(!this._charAtIsWhitespace(i,o))return null;let s=Math.min(t.column-1,n-1);if(!this._charAtIsWhitespace(i,s))return null;for(;o>0&&this._charAtIsWhitespace(i,o-1);)o--;for(;s+1<n&&this._charAtIsWhitespace(i,s+1);)s++;return new l.e(t.lineNumber,o+1,t.lineNumber,s+2)}static _deleteInsideWordDetermineDeleteRange(e,t,i){const n=t.getLineContent(i.lineNumber),o=n.length;if(0===o)return i.lineNumber>1?new l.e(i.lineNumber-1,t.getLineMaxColumn(i.lineNumber-1),i.lineNumber,1):i.lineNumber<t.getLineCount()?new l.e(i.lineNumber,1,i.lineNumber+1,1):new l.e(i.lineNumber,1,i.lineNumber,1);const s=e=>e.start+1<=i.column&&i.column<=e.end+1,r=(e,t)=>(e=Math.min(e,i.column),t=Math.max(t,i.column),new l.e(i.lineNumber,e,i.lineNumber,t)),a=e=>{let t=e.start+1,i=e.end+1,s=!1;for(;i-1<o&&this._charAtIsWhitespace(n,i-1);)s=!0,i++;if(!s)for(;t>1&&this._charAtIsWhitespace(n,t-2);)t--;return r(t,i)},d=c._findPreviousWordOnLine(e,t,i);if(d&&s(d))return a(d);const h=c._findNextWordOnLine(e,t,i);return h&&s(h)?a(h):d&&h?r(d.end+1,h.start+1):d?r(d.start+1,d.end+1):h?r(h.start+1,h.end+1):r(1,o+1)}static _deleteWordPartLeft(e,t){if(!t.isEmpty())return t;const i=t.getPosition(),n=c._moveWordPartLeft(e,i);return new l.e(i.lineNumber,i.column,n.lineNumber,n.column)}static _findFirstNonWhitespaceChar(e,t){const i=e.length;for(let n=t;n<i;n++){const t=e.charAt(n);if(" "!==t&&"\t"!==t)return n}return i}static _deleteWordRightWhitespace(e,t){const i=e.getLineContent(t.lineNumber),n=t.column-1,o=this._findFirstNonWhitespaceChar(i,n);return n+1<o?new l.e(t.lineNumber,t.column,t.lineNumber,o+1):null}static deleteWordRight(e,t){const i=e.wordSeparators,n=e.model,o=e.selection,s=e.whitespaceHeuristics;if(!o.isEmpty())return o;const r=new a.L(o.positionLineNumber,o.positionColumn);let d=r.lineNumber,h=r.column;const u=n.getLineCount(),g=n.getLineMaxColumn(d);if(d===u&&h===g)return null;if(s){const e=this._deleteWordRightWhitespace(n,r);if(e)return e}let p=c._findNextWordOnLine(i,n,r);return 2===t?p?h=p.end+1:h<g||d===u?h=g:(d++,p=c._findNextWordOnLine(i,n,new a.L(d,1)),h=p?p.start+1:n.getLineMaxColumn(d)):(p&&h>=p.start+1&&(p=c._findNextWordOnLine(i,n,new a.L(d,p.end+1))),p?h=p.start+1:h<g||d===u?h=g:(d++,p=c._findNextWordOnLine(i,n,new a.L(d,1)),h=p?p.start+1:n.getLineMaxColumn(d))),new l.e(d,h,r.lineNumber,r.column)}static _deleteWordPartRight(e,t){if(!t.isEmpty())return t;const i=t.getPosition(),n=c._moveWordPartRight(e,i);return new l.e(i.lineNumber,i.column,n.lineNumber,n.column)}static _createWordAtPosition(e,t,i){const n=new l.e(t,i.start+1,t,i.end+1);return{word:e.getValueInRange(n),startColumn:n.startColumn,endColumn:n.endColumn}}static getWordAtPosition(e,t,i){const n=(0,r.u)(t),o=c._findPreviousWordOnLine(n,e,i);if(o&&1===o.wordType&&o.start<=i.column-1&&i.column-1<=o.end)return c._createWordAtPosition(e,i.lineNumber,o);const s=c._findNextWordOnLine(n,e,i);return s&&1===s.wordType&&s.start<=i.column-1&&i.column-1<=s.end?c._createWordAtPosition(e,i.lineNumber,s):null}static word(e,t,i,n,s){const d=(0,r.u)(e.wordSeparators),h=c._findPreviousWordOnLine(d,t,s),u=c._findNextWordOnLine(d,t,s);if(!n){let e,i;return h&&1===h.wordType&&h.start<=s.column-1&&s.column-1<=h.end?(e=h.start+1,i=h.end+1):u&&1===u.wordType&&u.start<=s.column-1&&s.column-1<=u.end?(e=u.start+1,i=u.end+1):(e=h?h.end+1:1,i=u?u.start+1:t.getLineMaxColumn(s.lineNumber)),new o.rS(new l.e(s.lineNumber,e,s.lineNumber,i),0,new a.L(s.lineNumber,i),0)}let g,p;h&&1===h.wordType&&h.start<s.column-1&&s.column-1<h.end?(g=h.start+1,p=h.end+1):u&&1===u.wordType&&u.start<s.column-1&&s.column-1<u.end?(g=u.start+1,p=u.end+1):(g=s.column,p=s.column);const m=s.lineNumber;let f;if(i.selectionStart.containsPosition(s))f=i.selectionStart.endColumn;else if(s.isBeforeOrEqual(i.selectionStart.getStartPosition())){f=g;const e=new a.L(m,f);i.selectionStart.containsPosition(e)&&(f=i.selectionStart.endColumn)}else{f=p;const e=new a.L(m,f);i.selectionStart.containsPosition(e)&&(f=i.selectionStart.startColumn)}return i.move(!0,m,f,0)}}class d extends c{static deleteWordPartLeft(e){const t=h([c.deleteWordLeft(e,0),c.deleteWordLeft(e,2),c._deleteWordPartLeft(e.model,e.selection)]);return t.sort(l.e.compareRangesUsingEnds),t[2]}static deleteWordPartRight(e){const t=h([c.deleteWordRight(e,0),c.deleteWordRight(e,2),c._deleteWordPartRight(e.model,e.selection)]);return t.sort(l.e.compareRangesUsingStarts),t[0]}static moveWordPartLeft(e,t,i){const n=h([c.moveWordLeft(e,t,i,0),c.moveWordLeft(e,t,i,2),c._moveWordPartLeft(t,i)]);return n.sort(a.L.compare),n[2]}static moveWordPartRight(e,t,i){const n=h([c.moveWordRight(e,t,i,0),c.moveWordRight(e,t,i,2),c._moveWordPartRight(t,i)]);return n.sort(a.L.compare),n[0]}}function h(e){return e.filter((e=>Boolean(e)))}},55343:(e,t,i)=>{"use strict";i.d(t,{LM:()=>u,LN:()=>v,Tp:()=>_,Vi:()=>g,rS:()=>f});var n=i(50187),o=i(24314),s=i(3860),r=i(19111),a=i(7988),l=i(83158);const c=()=>!0,d=()=>!1,h=e=>" "===e||"\t"===e;class u{constructor(e,t,i,n){this.languageConfigurationService=n,this._cursorMoveConfigurationBrand=void 0,this._languageId=e;const o=i.options,s=o.get(133);this.readOnly=o.get(83),this.tabSize=t.tabSize,this.indentSize=t.indentSize,this.insertSpaces=t.insertSpaces,this.stickyTabStops=o.get(106),this.lineHeight=o.get(61),this.pageSize=Math.max(1,Math.floor(s.height/this.lineHeight)-2),this.useTabStops=o.get(118),this.wordSeparators=o.get(119),this.emptySelectionClipboard=o.get(33),this.copyWithSyntaxHighlighting=o.get(21),this.multiCursorMergeOverlapping=o.get(71),this.multiCursorPaste=o.get(73),this.autoClosingBrackets=o.get(5),this.autoClosingQuotes=o.get(8),this.autoClosingDelete=o.get(6),this.autoClosingOvertype=o.get(7),this.autoSurround=o.get(11),this.autoIndent=o.get(9),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:this._getShouldAutoClose(e,this.autoClosingQuotes),bracket:this._getShouldAutoClose(e,this.autoClosingBrackets)},this.autoClosingPairs=this.languageConfigurationService.getLanguageConfiguration(e).getAutoClosingPairs();const r=this.languageConfigurationService.getLanguageConfiguration(e).getSurroundingPairs();if(r)for(const a of r)this.surroundingPairs[a.open]=a.close}static shouldRecreate(e){return e.hasChanged(133)||e.hasChanged(119)||e.hasChanged(33)||e.hasChanged(71)||e.hasChanged(73)||e.hasChanged(5)||e.hasChanged(8)||e.hasChanged(6)||e.hasChanged(7)||e.hasChanged(11)||e.hasChanged(118)||e.hasChanged(61)||e.hasChanged(83)}get electricChars(){var e;if(!this._electricChars){this._electricChars={};const t=null===(e=this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter)||void 0===e?void 0:e.getElectricCharacters();if(t)for(const e of t)this._electricChars[e]=!0}return this._electricChars}onElectricCharacter(e,t,i){const n=(0,r.wH)(t,i-1),o=this.languageConfigurationService.getLanguageConfiguration(n.languageId).electricCharacter;return o?o.onElectricCharacter(e,n,i-n.firstCharOffset):null}normalizeIndentation(e){return(0,l.x)(e,this.indentSize,this.insertSpaces)}_getShouldAutoClose(e,t){switch(t){case"beforeWhitespace":return h;case"languageDefined":return this._getLanguageDefinedShouldAutoClose(e);case"always":return c;case"never":return d}}_getLanguageDefinedShouldAutoClose(e){const t=this.languageConfigurationService.getLanguageConfiguration(e).getAutoCloseBeforeSet();return e=>-1!==t.indexOf(e)}visibleColumnFromColumn(e,t){return a.i.visibleColumnFromColumn(e.getLineContent(t.lineNumber),t.column,this.tabSize)}columnFromVisibleColumn(e,t,i){const n=a.i.columnFromVisibleColumn(e.getLineContent(t),i,this.tabSize),o=e.getLineMinColumn(t);if(n<o)return o;const s=e.getLineMaxColumn(t);return n>s?s:n}}class g{constructor(e,t){this._cursorStateBrand=void 0,this.modelState=e,this.viewState=t}static fromModelState(e){return new p(e)}static fromViewState(e){return new m(e)}static fromModelSelection(e){const t=s.Y.liftSelection(e),i=new f(o.e.fromPositions(t.getSelectionStart()),0,t.getPosition(),0);return g.fromModelState(i)}static fromModelSelections(e){const t=[];for(let i=0,n=e.length;i<n;i++)t[i]=this.fromModelSelection(e[i]);return t}equals(e){return this.viewState.equals(e.viewState)&&this.modelState.equals(e.modelState)}}class p{constructor(e){this.modelState=e,this.viewState=null}}class m{constructor(e){this.modelState=null,this.viewState=e}}class f{constructor(e,t,i,n){this._singleCursorStateBrand=void 0,this.selectionStart=e,this.selectionStartLeftoverVisibleColumns=t,this.position=i,this.leftoverVisibleColumns=n,this.selection=f._computeSelection(this.selectionStart,this.position)}equals(e){return this.selectionStartLeftoverVisibleColumns===e.selectionStartLeftoverVisibleColumns&&this.leftoverVisibleColumns===e.leftoverVisibleColumns&&this.position.equals(e.position)&&this.selectionStart.equalsRange(e.selectionStart)}hasSelection(){return!this.selection.isEmpty()||!this.selectionStart.isEmpty()}move(e,t,i,s){return e?new f(this.selectionStart,this.selectionStartLeftoverVisibleColumns,new n.L(t,i),s):new f(new o.e(t,i,t,i),s,new n.L(t,i),s)}static _computeSelection(e,t){return e.isEmpty()||!t.isBeforeOrEqual(e.getStartPosition())?s.Y.fromPositions(e.getStartPosition(),t):s.Y.fromPositions(e.getEndPosition(),t)}}class _{constructor(e,t,i){this._editOperationResultBrand=void 0,this.type=e,this.commands=t,this.shouldPushStackElementBefore=i.shouldPushStackElementBefore,this.shouldPushStackElementAfter=i.shouldPushStackElementAfter}}function v(e){return"'"===e||'"'===e||"`"===e}},30653:(e,t,i)=>{"use strict";i.d(t,{p:()=>n});class n{constructor(e,t,i,n,o,s){this.id=e,this.label=t,this.alias=i,this._precondition=n,this._run=o,this._contextKeyService=s}isSupported(){return this._contextKeyService.contextMatchesRules(this._precondition)}run(){return this.isSupported()?this._run():Promise.resolve(void 0)}}},96518:(e,t,i)=>{"use strict";i.d(t,{g:()=>n});const n={ICodeEditor:"vs.editor.ICodeEditor",IDiffEditor:"vs.editor.IDiffEditor"}},29102:(e,t,i)=>{"use strict";i.d(t,{u:()=>n});var n,o=i(63580),s=i(38819);!function(e){e.editorSimpleInput=new s.uy("editorSimpleInput",!1,!0),e.editorTextFocus=new s.uy("editorTextFocus",!1,o.NC("editorTextFocus","Whether the editor text has focus (cursor is blinking)")),e.focus=new s.uy("editorFocus",!1,o.NC("editorFocus","Whether the editor or an editor widget has focus (e.g. focus is in the find widget)")),e.textInputFocus=new s.uy("textInputFocus",!1,o.NC("textInputFocus","Whether an editor or a rich text input has focus (cursor is blinking)")),e.readOnly=new s.uy("editorReadonly",!1,o.NC("editorReadonly","Whether the editor is read only")),e.inDiffEditor=new s.uy("inDiffEditor",!1,o.NC("inDiffEditor","Whether the context is a diff editor")),e.columnSelection=new s.uy("editorColumnSelection",!1,o.NC("editorColumnSelection","Whether `editor.columnSelection` is enabled")),e.writable=e.readOnly.toNegated(),e.hasNonEmptySelection=new s.uy("editorHasSelection",!1,o.NC("editorHasSelection","Whether the editor has text selected")),e.hasOnlyEmptySelection=e.hasNonEmptySelection.toNegated(),e.hasMultipleSelections=new s.uy("editorHasMultipleSelections",!1,o.NC("editorHasMultipleSelections","Whether the editor has multiple selections")),e.hasSingleSelection=e.hasMultipleSelections.toNegated(),e.tabMovesFocus=new s.uy("editorTabMovesFocus",!1,o.NC("editorTabMovesFocus","Whether `Tab` will move focus out of the editor")),e.tabDoesNotMoveFocus=e.tabMovesFocus.toNegated(),e.isInWalkThroughSnippet=new s.uy("isInEmbeddedEditor",!1,!0),e.canUndo=new s.uy("canUndo",!1,!0),e.canRedo=new s.uy("canRedo",!1,!0),e.hoverVisible=new s.uy("editorHoverVisible",!1,o.NC("editorHoverVisible","Whether the editor hover is visible")),e.inCompositeEditor=new s.uy("inCompositeEditor",void 0,o.NC("inCompositeEditor","Whether the editor is part of a larger editor (e.g. notebooks)")),e.notInCompositeEditor=e.inCompositeEditor.toNegated(),e.languageId=new s.uy("editorLangId","",o.NC("editorLangId","The language identifier of the editor")),e.hasCompletionItemProvider=new s.uy("editorHasCompletionItemProvider",!1,o.NC("editorHasCompletionItemProvider","Whether the editor has a completion item provider")),e.hasCodeActionsProvider=new s.uy("editorHasCodeActionsProvider",!1,o.NC("editorHasCodeActionsProvider","Whether the editor has a code actions provider")),e.hasCodeLensProvider=new s.uy("editorHasCodeLensProvider",!1,o.NC("editorHasCodeLensProvider","Whether the editor has a code lens provider")),e.hasDefinitionProvider=new s.uy("editorHasDefinitionProvider",!1,o.NC("editorHasDefinitionProvider","Whether the editor has a definition provider")),e.hasDeclarationProvider=new s.uy("editorHasDeclarationProvider",!1,o.NC("editorHasDeclarationProvider","Whether the editor has a declaration provider")),e.hasImplementationProvider=new s.uy("editorHasImplementationProvider",!1,o.NC("editorHasImplementationProvider","Whether the editor has an implementation provider")),e.hasTypeDefinitionProvider=new s.uy("editorHasTypeDefinitionProvider",!1,o.NC("editorHasTypeDefinitionProvider","Whether the editor has a type definition provider")),e.hasHoverProvider=new s.uy("editorHasHoverProvider",!1,o.NC("editorHasHoverProvider","Whether the editor has a hover provider")),e.hasDocumentHighlightProvider=new s.uy("editorHasDocumentHighlightProvider",!1,o.NC("editorHasDocumentHighlightProvider","Whether the editor has a document highlight provider")),e.hasDocumentSymbolProvider=new s.uy("editorHasDocumentSymbolProvider",!1,o.NC("editorHasDocumentSymbolProvider","Whether the editor has a document symbol provider")),e.hasReferenceProvider=new s.uy("editorHasReferenceProvider",!1,o.NC("editorHasReferenceProvider","Whether the editor has a reference provider")),e.hasRenameProvider=new s.uy("editorHasRenameProvider",!1,o.NC("editorHasRenameProvider","Whether the editor has a rename provider")),e.hasSignatureHelpProvider=new s.uy("editorHasSignatureHelpProvider",!1,o.NC("editorHasSignatureHelpProvider","Whether the editor has a signature help provider")),e.hasInlayHintsProvider=new s.uy("editorHasInlayHintsProvider",!1,o.NC("editorHasInlayHintsProvider","Whether the editor has an inline hints provider")),e.hasDocumentFormattingProvider=new s.uy("editorHasDocumentFormattingProvider",!1,o.NC("editorHasDocumentFormattingProvider","Whether the editor has a document formatting provider")),e.hasDocumentSelectionFormattingProvider=new s.uy("editorHasDocumentSelectionFormattingProvider",!1,o.NC("editorHasDocumentSelectionFormattingProvider","Whether the editor has a document selection formatting provider")),e.hasMultipleDocumentFormattingProvider=new s.uy("editorHasMultipleDocumentFormattingProvider",!1,o.NC("editorHasMultipleDocumentFormattingProvider","Whether the editor has multiple document formatting providers")),e.hasMultipleDocumentSelectionFormattingProvider=new s.uy("editorHasMultipleDocumentSelectionFormattingProvider",!1,o.NC("editorHasMultipleDocumentSelectionFormattingProvider","Whether the editor has multiple document selection formatting providers"))}(n||(n={}))},45797:(e,t,i)=>{"use strict";i.d(t,{N:()=>n});class n{static getLanguageId(e){return(255&e)>>>0}static getTokenType(e){return(768&e)>>>8}static containsBalancedBrackets(e){return 0!=(1024&e)}static getFontStyle(e){return(30720&e)>>>11}static getForeground(e){return(16744448&e)>>>15}static getBackground(e){return(4278190080&e)>>>24}static getClassNameFromMetadata(e){let t="mtk"+this.getForeground(e);const i=this.getFontStyle(e);return 1&i&&(t+=" mtki"),2&i&&(t+=" mtkb"),4&i&&(t+=" mtku"),8&i&&(t+=" mtks"),t}static getInlineStyleFromMetadata(e,t){const i=this.getForeground(e),n=this.getFontStyle(e);let o=`color: ${t[i]};`;1&n&&(o+="font-style: italic;"),2&n&&(o+="font-weight: bold;");let s="";return 4&n&&(s+=" underline"),8&n&&(s+=" line-through"),s&&(o+=`text-decoration:${s};`),o}static getPresentationFromMetadata(e){const t=this.getForeground(e),i=this.getFontStyle(e);return{foreground:t,italic:Boolean(1&i),bold:Boolean(2&i),underline:Boolean(4&i),strikethrough:Boolean(8&i)}}}},43155:(e,t,i)=>{"use strict";i.d(t,{mY:()=>l,gX:()=>n,MY:()=>r,DI:()=>b,AD:()=>w,gl:()=>c,bw:()=>o,WW:()=>s,uZ:()=>a,WU:()=>_,RW:()=>y,hG:()=>v,vx:()=>C});var n,o,s,r,a,l,c,d=i(73046),h=i(70666),u=i(24314),g=i(4669),p=i(5976),m=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class f extends p.JT{constructor(e,t,i){super(),this._registry=e,this._languageId=t,this._factory=i,this._isDisposed=!1,this._resolvePromise=null,this._isResolved=!1}get isResolved(){return this._isResolved}dispose(){this._isDisposed=!0,super.dispose()}resolve(){return m(this,void 0,void 0,(function*(){return this._resolvePromise||(this._resolvePromise=this._create()),this._resolvePromise}))}_create(){return m(this,void 0,void 0,(function*(){const e=yield Promise.resolve(this._factory.createTokenizationSupport());this._isResolved=!0,e&&!this._isDisposed&&this._register(this._registry.register(this._languageId,e))}))}}class _{constructor(e,t,i){this._tokenBrand=void 0,this.offset=e,this.type=t,this.language=i}toString(){return"("+this.offset+", "+this.type+")"}}class v{constructor(e,t){this._tokenizationResultBrand=void 0,this.tokens=e,this.endState=t}}class b{constructor(e,t){this._encodedTokenizationResultBrand=void 0,this.tokens=e,this.endState=t}}function C(e){return e&&h.o.isUri(e.uri)&&u.e.isIRange(e.range)&&(u.e.isIRange(e.originSelectionRange)||u.e.isIRange(e.targetSelectionRange))}!function(e){const t=new Map;t.set(0,d.lA.symbolMethod),t.set(1,d.lA.symbolFunction),t.set(2,d.lA.symbolConstructor),t.set(3,d.lA.symbolField),t.set(4,d.lA.symbolVariable),t.set(5,d.lA.symbolClass),t.set(6,d.lA.symbolStruct),t.set(7,d.lA.symbolInterface),t.set(8,d.lA.symbolModule),t.set(9,d.lA.symbolProperty),t.set(10,d.lA.symbolEvent),t.set(11,d.lA.symbolOperator),t.set(12,d.lA.symbolUnit),t.set(13,d.lA.symbolValue),t.set(15,d.lA.symbolEnum),t.set(14,d.lA.symbolConstant),t.set(15,d.lA.symbolEnum),t.set(16,d.lA.symbolEnumMember),t.set(17,d.lA.symbolKeyword),t.set(27,d.lA.symbolSnippet),t.set(18,d.lA.symbolText),t.set(19,d.lA.symbolColor),t.set(20,d.lA.symbolFile),t.set(21,d.lA.symbolReference),t.set(22,d.lA.symbolCustomColor),t.set(23,d.lA.symbolFolder),t.set(24,d.lA.symbolTypeParameter),t.set(25,d.lA.account),t.set(26,d.lA.issues),e.toIcon=function(e){let i=t.get(e);return i||(console.info("No codicon found for CompletionItemKind "+e),i=d.lA.symbolProperty),i};const i=new Map;i.set("method",0),i.set("function",1),i.set("constructor",2),i.set("field",3),i.set("variable",4),i.set("class",5),i.set("struct",6),i.set("interface",7),i.set("module",8),i.set("property",9),i.set("event",10),i.set("operator",11),i.set("unit",12),i.set("value",13),i.set("constant",14),i.set("enum",15),i.set("enum-member",16),i.set("enumMember",16),i.set("keyword",17),i.set("snippet",27),i.set("text",18),i.set("color",19),i.set("file",20),i.set("reference",21),i.set("customcolor",22),i.set("folder",23),i.set("type-parameter",24),i.set("typeParameter",24),i.set("account",25),i.set("issue",26),e.fromString=function(e,t){let n=i.get(e);return void 0!==n||t||(n=9),n}}(n||(n={})),function(e){e[e.Automatic=0]="Automatic",e[e.Explicit=1]="Explicit"}(o||(o={})),function(e){e[e.Invoke=1]="Invoke",e[e.TriggerCharacter=2]="TriggerCharacter",e[e.ContentChange=3]="ContentChange"}(s||(s={})),function(e){e[e.Text=0]="Text",e[e.Read=1]="Read",e[e.Write=2]="Write"}(r||(r={})),function(e){const t=new Map;t.set(0,d.lA.symbolFile),t.set(1,d.lA.symbolModule),t.set(2,d.lA.symbolNamespace),t.set(3,d.lA.symbolPackage),t.set(4,d.lA.symbolClass),t.set(5,d.lA.symbolMethod),t.set(6,d.lA.symbolProperty),t.set(7,d.lA.symbolField),t.set(8,d.lA.symbolConstructor),t.set(9,d.lA.symbolEnum),t.set(10,d.lA.symbolInterface),t.set(11,d.lA.symbolFunction),t.set(12,d.lA.symbolVariable),t.set(13,d.lA.symbolConstant),t.set(14,d.lA.symbolString),t.set(15,d.lA.symbolNumber),t.set(16,d.lA.symbolBoolean),t.set(17,d.lA.symbolArray),t.set(18,d.lA.symbolObject),t.set(19,d.lA.symbolKey),t.set(20,d.lA.symbolNull),t.set(21,d.lA.symbolEnumMember),t.set(22,d.lA.symbolStruct),t.set(23,d.lA.symbolEvent),t.set(24,d.lA.symbolOperator),t.set(25,d.lA.symbolTypeParameter),e.toIcon=function(e){let i=t.get(e);return i||(console.info("No codicon found for SymbolKind "+e),i=d.lA.symbolProperty),i}}(a||(a={}));class w{constructor(e){this.value=e}}w.Comment=new w("comment"),w.Imports=new w("imports"),w.Region=new w("region"),function(e){e.is=function(e){return!(!e||"object"!=typeof e)&&("string"==typeof e.id&&"string"==typeof e.title)}}(l||(l={})),function(e){e[e.Type=1]="Type",e[e.Parameter=2]="Parameter"}(c||(c={}));const y=new class{constructor(){this._map=new Map,this._factories=new Map,this._onDidChange=new g.Q5,this.onDidChange=this._onDidChange.event,this._colorMap=null}fire(e){this._onDidChange.fire({changedLanguages:e,changedColorMap:!1})}register(e,t){return this._map.set(e,t),this.fire([e]),(0,p.OF)((()=>{this._map.get(e)===t&&(this._map.delete(e),this.fire([e]))}))}registerFactory(e,t){var i;null===(i=this._factories.get(e))||void 0===i||i.dispose();const n=new f(this,e,t);return this._factories.set(e,n),(0,p.OF)((()=>{const t=this._factories.get(e);t&&t===n&&(this._factories.delete(e),t.dispose())}))}getOrCreate(e){return m(this,void 0,void 0,(function*(){const t=this.get(e);if(t)return t;const i=this._factories.get(e);return!i||i.isResolved?null:(yield i.resolve(),this.get(e))}))}get(e){return this._map.get(e)||null}isResolved(e){if(this.get(e))return!0;const t=this._factories.get(e);return!(t&&!t.isResolved)}setColorMap(e){this._colorMap=e,this._onDidChange.fire({changedLanguages:Array.from(this._map.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}}},75383:(e,t,i)=>{"use strict";i.d(t,{$9:()=>d,UF:()=>c,n8:()=>l,r7:()=>a,tI:()=>h});var n=i(97295),o=i(49119),s=i(19111),r=i(4256);function a(e,t,i,s=!0,r){if(e<4)return null;const a=r.getLanguageConfiguration(t.tokenization.getLanguageId()).indentRulesSupport;if(!a)return null;if(i<=1)return{indentation:"",action:null};const l=function(e,t,i){const n=e.tokenization.getLanguageIdAtPosition(t,0);if(t>1){let o,s=-1;for(o=t-1;o>=1;o--){if(e.tokenization.getLanguageIdAtPosition(o,0)!==n)return s;const t=e.getLineContent(o);if(!i.shouldIgnore(t)&&!/^\s+$/.test(t)&&""!==t)return o;s=o}}return-1}(t,i,a);if(l<0)return null;if(l<1)return{indentation:"",action:null};const c=t.getLineContent(l);if(a.shouldIncrease(c)||a.shouldIndentNextLine(c))return{indentation:n.V8(c),action:o.wU.Indent,line:l};if(a.shouldDecrease(c))return{indentation:n.V8(c),action:null,line:l};{if(1===l)return{indentation:n.V8(t.getLineContent(l)),action:null,line:l};const e=l-1,i=a.getIndentMetadata(t.getLineContent(e));if(!(3&i)&&4&i){let i=0;for(let n=e-1;n>0;n--)if(!a.shouldIndentNextLine(t.getLineContent(n))){i=n;break}return{indentation:n.V8(t.getLineContent(i+1)),action:null,line:i+1}}if(s)return{indentation:n.V8(t.getLineContent(l)),action:null,line:l};for(let s=l;s>0;s--){const e=t.getLineContent(s);if(a.shouldIncrease(e))return{indentation:n.V8(e),action:o.wU.Indent,line:s};if(a.shouldIndentNextLine(e)){let e=0;for(let i=s-1;i>0;i--)if(!a.shouldIndentNextLine(t.getLineContent(s))){e=i;break}return{indentation:n.V8(t.getLineContent(e+1)),action:null,line:e+1}}if(a.shouldDecrease(e))return{indentation:n.V8(e),action:null,line:s}}return{indentation:n.V8(t.getLineContent(1)),action:null,line:1}}}function l(e,t,i,s,r,l){if(e<4)return null;const c=l.getLanguageConfiguration(i);if(!c)return null;const d=l.getLanguageConfiguration(i).indentRulesSupport;if(!d)return null;const h=a(e,t,s,void 0,l),u=t.getLineContent(s);if(h){const i=h.line;if(void 0!==i){const s=c.onEnter(e,"",t.getLineContent(i),"");if(s){let e=n.V8(t.getLineContent(i));return s.removeText&&(e=e.substring(0,e.length-s.removeText)),s.indentAction===o.wU.Indent||s.indentAction===o.wU.IndentOutdent?e=r.shiftIndent(e):s.indentAction===o.wU.Outdent&&(e=r.unshiftIndent(e)),d.shouldDecrease(u)&&(e=r.unshiftIndent(e)),s.appendText&&(e+=s.appendText),n.V8(e)}}return d.shouldDecrease(u)?h.action===o.wU.Indent?h.indentation:r.unshiftIndent(h.indentation):h.action===o.wU.Indent?r.shiftIndent(h.indentation):h.indentation}return null}function c(e,t,i,l,c){if(e<4)return null;t.tokenization.forceTokenization(i.startLineNumber);const d=t.tokenization.getLineTokens(i.startLineNumber),h=(0,s.wH)(d,i.startColumn-1),u=h.getLineContent();let g,p,m=!1;if(h.firstCharOffset>0&&d.getLanguageId(0)!==h.languageId?(m=!0,g=u.substr(0,i.startColumn-1-h.firstCharOffset)):g=d.getLineContent().substring(0,i.startColumn-1),i.isEmpty())p=u.substr(i.startColumn-1-h.firstCharOffset);else{p=(0,r.n2)(t,i.endLineNumber,i.endColumn).getLineContent().substr(i.endColumn-1-h.firstCharOffset)}const f=c.getLanguageConfiguration(h.languageId).indentRulesSupport;if(!f)return null;const _=g,v=n.V8(g),b={tokenization:{getLineTokens:e=>t.tokenization.getLineTokens(e),getLanguageId:()=>t.getLanguageId(),getLanguageIdAtPosition:(e,i)=>t.getLanguageIdAtPosition(e,i)},getLineContent:e=>e===i.startLineNumber?_:t.getLineContent(e)},C=n.V8(d.getLineContent()),w=a(e,b,i.startLineNumber+1,void 0,c);if(!w){const e=m?C:v;return{beforeEnter:e,afterEnter:e}}let y=m?C:w.indentation;return w.action===o.wU.Indent&&(y=l.shiftIndent(y)),f.shouldDecrease(p)&&(y=l.unshiftIndent(y)),{beforeEnter:m?C:v,afterEnter:y}}function d(e,t,i,n,s,l){if(e<4)return null;const c=(0,r.n2)(t,i.startLineNumber,i.startColumn);if(c.firstCharOffset)return null;const d=l.getLanguageConfiguration(c.languageId).indentRulesSupport;if(!d)return null;const h=c.getLineContent(),u=h.substr(0,i.startColumn-1-c.firstCharOffset);let g;if(i.isEmpty())g=h.substr(i.startColumn-1-c.firstCharOffset);else{g=(0,r.n2)(t,i.endLineNumber,i.endColumn).getLineContent().substr(i.endColumn-1-c.firstCharOffset)}if(!d.shouldDecrease(u+g)&&d.shouldDecrease(u+n+g)){const n=a(e,t,i.startLineNumber,!1,l);if(!n)return null;let r=n.indentation;return n.action!==o.wU.Indent&&(r=s.unshiftIndent(r)),r}return null}function h(e,t,i){const n=i.getLanguageConfiguration(e.getLanguageId()).indentRulesSupport;return n?t<1||t>e.getLineCount()?null:n.getIndentMetadata(e.getLineContent(t)):null}},1615:(e,t,i)=>{"use strict";i.d(t,{A:()=>s});var n=i(49119),o=i(4256);function s(e,t,i,s){const r=(0,o.n2)(t,i.startLineNumber,i.startColumn),a=s.getLanguageConfiguration(r.languageId);if(!a)return null;const l=r.getLineContent(),c=l.substr(0,i.startColumn-1-r.firstCharOffset);let d;if(i.isEmpty())d=l.substr(i.startColumn-1-r.firstCharOffset);else{d=(0,o.n2)(t,i.endLineNumber,i.endColumn).getLineContent().substr(i.endColumn-1-r.firstCharOffset)}let h="";if(i.startLineNumber>1&&0===r.firstCharOffset){const e=(0,o.n2)(t,i.startLineNumber-1);e.languageId===r.languageId&&(h=e.getLineContent())}const u=a.onEnter(e,h,c,d);if(!u)return null;const g=u.indentAction;let p=u.appendText;const m=u.removeText||0;p?g===n.wU.Indent&&(p="\t"+p):p=g===n.wU.Indent||g===n.wU.IndentOutdent?"\t":"";let f=(0,o.u0)(t,i.startLineNumber,i.startColumn);return m&&(f=f.substring(0,f.length-m)),{indentAction:g,appendText:p,removeText:m,indentation:f}}},72042:(e,t,i)=>{"use strict";i.d(t,{O:()=>n});const n=(0,i(72065).yh)("languageService")},49119:(e,t,i)=>{"use strict";var n;i.d(t,{V6:()=>o,c$:()=>s,wU:()=>n}),function(e){e[e.None=0]="None",e[e.Indent=1]="Indent",e[e.IndentOutdent=2]="IndentOutdent",e[e.Outdent=3]="Outdent"}(n||(n={}));class o{constructor(e){if(this._neutralCharacter=null,this._neutralCharacterSearched=!1,this.open=e.open,this.close=e.close,this._inString=!0,this._inComment=!0,this._inRegEx=!0,Array.isArray(e.notIn))for(let t=0,i=e.notIn.length;t<i;t++){switch(e.notIn[t]){case"string":this._inString=!1;break;case"comment":this._inComment=!1;break;case"regex":this._inRegEx=!1}}}isOK(e){switch(e){case 0:return!0;case 1:return this._inComment;case 2:return this._inString;case 3:return this._inRegEx}}shouldAutoClose(e,t){if(0===e.getTokenCount())return!0;const i=e.findTokenIndexAtOffset(t-2),n=e.getStandardTokenType(i);return this.isOK(n)}_findNeutralCharacterInRange(e,t){for(let i=e;i<=t;i++){const e=String.fromCharCode(i);if(!this.open.includes(e)&&!this.close.includes(e))return e}return null}findNeutralCharacter(){return this._neutralCharacterSearched||(this._neutralCharacterSearched=!0,this._neutralCharacter||(this._neutralCharacter=this._findNeutralCharacterInRange(48,57)),this._neutralCharacter||(this._neutralCharacter=this._findNeutralCharacterInRange(97,122)),this._neutralCharacter||(this._neutralCharacter=this._findNeutralCharacterInRange(65,90))),this._neutralCharacter}}class s{constructor(e){this.autoClosingPairsOpenByStart=new Map,this.autoClosingPairsOpenByEnd=new Map,this.autoClosingPairsCloseByStart=new Map,this.autoClosingPairsCloseByEnd=new Map,this.autoClosingPairsCloseSingleChar=new Map;for(const t of e)r(this.autoClosingPairsOpenByStart,t.open.charAt(0),t),r(this.autoClosingPairsOpenByEnd,t.open.charAt(t.open.length-1),t),r(this.autoClosingPairsCloseByStart,t.close.charAt(0),t),r(this.autoClosingPairsCloseByEnd,t.close.charAt(t.close.length-1),t),1===t.close.length&&1===t.open.length&&r(this.autoClosingPairsCloseSingleChar,t.close,t)}}function r(e,t,i){e.has(t)?e.get(t).push(i):e.set(t,[i])}},4256:(e,t,i)=>{"use strict";i.d(t,{c_:()=>T,u0:()=>O,n2:()=>P});var n=i(4669),o=i(5976),s=i(97295),r=i(270),a=i(49119),l=i(19111);class c{constructor(e){if(e.autoClosingPairs?this._autoClosingPairs=e.autoClosingPairs.map((e=>new a.V6(e))):e.brackets?this._autoClosingPairs=e.brackets.map((e=>new a.V6({open:e[0],close:e[1]}))):this._autoClosingPairs=[],e.__electricCharacterSupport&&e.__electricCharacterSupport.docComment){const t=e.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new a.V6({open:t.open,close:t.close||""}))}this._autoCloseBefore="string"==typeof e.autoCloseBefore?e.autoCloseBefore:c.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED,this._surroundingPairs=e.surroundingPairs||this._autoClosingPairs}getAutoClosingPairs(){return this._autoClosingPairs}getAutoCloseBeforeSet(){return this._autoCloseBefore}getSurroundingPairs(){return this._surroundingPairs}}c.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED=";:.,=}])> \n\t";var d=i(9488),h=i(34302);class u{constructor(e){this._richEditBrackets=e}getElectricCharacters(){const e=[];if(this._richEditBrackets)for(const t of this._richEditBrackets.brackets)for(const i of t.close){const t=i.charAt(i.length-1);e.push(t)}return(0,d.EB)(e)}onElectricCharacter(e,t,i){if(!this._richEditBrackets||0===this._richEditBrackets.brackets.length)return null;const n=t.findTokenIndexAtOffset(i-1);if((0,l.Bu)(t.getStandardTokenType(n)))return null;const o=this._richEditBrackets.reversedRegex,s=t.getLineContent().substring(0,i-1)+e,r=h.Vr.findPrevBracketInRange(o,1,s,0,s.length);if(!r)return null;const a=s.substring(r.startColumn-1,r.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[a])return null;const c=t.getActualLineContentBefore(r.startColumn-1);return/^\s*$/.test(c)?{matchOpenBracket:a}:null}}function g(e){return e.global&&(e.lastIndex=0),!0}class p{constructor(e){this._indentationRules=e}shouldIncrease(e){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&g(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(e))}shouldDecrease(e){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&g(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(e))}shouldIndentNextLine(e){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&g(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(e))}shouldIgnore(e){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&g(this._indentationRules.unIndentedLinePattern)&&this._indentationRules.unIndentedLinePattern.test(e))}getIndentMetadata(e){let t=0;return this.shouldIncrease(e)&&(t+=1),this.shouldDecrease(e)&&(t+=2),this.shouldIndentNextLine(e)&&(t+=4),this.shouldIgnore(e)&&(t+=8),t}}var m=i(17301);class f{constructor(e){(e=e||{}).brackets=e.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],e.brackets.forEach((e=>{const t=f._createOpenBracketRegExp(e[0]),i=f._createCloseBracketRegExp(e[1]);t&&i&&this._brackets.push({open:e[0],openRegExp:t,close:e[1],closeRegExp:i})})),this._regExpRules=e.onEnterRules||[]}onEnter(e,t,i,n){if(e>=3)for(let o=0,s=this._regExpRules.length;o<s;o++){const e=this._regExpRules[o];if([{reg:e.beforeText,text:i},{reg:e.afterText,text:n},{reg:e.previousLineText,text:t}].every((e=>!e.reg||(e.reg.lastIndex=0,e.reg.test(e.text)))))return e.action}if(e>=2&&i.length>0&&n.length>0)for(let o=0,s=this._brackets.length;o<s;o++){const e=this._brackets[o];if(e.openRegExp.test(i)&&e.closeRegExp.test(n))return{indentAction:a.wU.IndentOutdent}}if(e>=2&&i.length>0)for(let o=0,s=this._brackets.length;o<s;o++){if(this._brackets[o].openRegExp.test(i))return{indentAction:a.wU.Indent}}return null}static _createOpenBracketRegExp(e){let t=s.ec(e);return/\B/.test(t.charAt(0))||(t="\\b"+t),t+="\\s*$",f._safeRegExp(t)}static _createCloseBracketRegExp(e){let t=s.ec(e);return/\B/.test(t.charAt(t.length-1))||(t+="\\b"),t="^\\s*"+t,f._safeRegExp(t)}static _safeRegExp(e){try{return new RegExp(e)}catch(t){return(0,m.dL)(t),null}}}var _=i(72065),v=i(33108),b=i(72042),C=i(65026),w=i(68801),y=i(701);class S{constructor(e,t){let i;this.languageId=e,i=t.colorizedBracketPairs?L(t.colorizedBracketPairs.map((e=>[e[0],e[1]]))):t.brackets?L(t.brackets.map((e=>[e[0],e[1]])).filter((e=>!("<"===e[0]&&">"===e[1])))):[];const n=new y.b((e=>{const t=new Set;return{info:new x(this,e,t),closing:t}})),o=new y.b((e=>{const t=new Set;return{info:new D(this,e,t),opening:t}}));for(const[s,r]of i){const e=n.get(s),t=o.get(r);e.closing.add(t.info),t.opening.add(e.info)}this._openingBrackets=new Map([...n.cachedValues].map((([e,t])=>[e,t.info]))),this._closingBrackets=new Map([...o.cachedValues].map((([e,t])=>[e,t.info])))}get openingBrackets(){return[...this._openingBrackets.values()]}get closingBrackets(){return[...this._closingBrackets.values()]}getOpeningBracketInfo(e){return this._openingBrackets.get(e)}getClosingBracketInfo(e){return this._closingBrackets.get(e)}getBracketInfo(e){return this.getOpeningBracketInfo(e)||this.getClosingBracketInfo(e)}}function L(e){return e.filter((([e,t])=>""!==e&&""!==t))}class k{constructor(e,t){this.config=e,this.bracketText=t}get languageId(){return this.config.languageId}}class x extends k{constructor(e,t,i){super(e,t),this.openedBrackets=i,this.isOpeningBracket=!0}}class D extends k{constructor(e,t,i){super(e,t),this.closedBrackets=i,this.isOpeningBracket=!1}closes(e){if(e.languageId===this.languageId&&e.config!==this.config)throw new m.he("Brackets from different language configuration cannot be used.");return this.closedBrackets.has(e)}getClosedBrackets(){return[...this.closedBrackets]}}var N=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},E=function(e,t){return function(i,n){t(i,n,e)}};class I{constructor(e){this.languageId=e}affects(e){return!this.languageId||this.languageId===e}}const T=(0,_.yh)("languageConfigurationService");let M=class extends o.JT{constructor(e,t){super(),this.configurationService=e,this.languageService=t,this._registry=this._register(new H),this.onDidChangeEmitter=this._register(new n.Q5),this.onDidChange=this.onDidChangeEmitter.event,this.configurations=new Map;const i=new Set(Object.values(A));this._register(this.configurationService.onDidChangeConfiguration((e=>{const t=e.change.keys.some((e=>i.has(e))),n=e.change.overrides.filter((([e,t])=>t.some((e=>i.has(e))))).map((([e])=>e));if(t)this.configurations.clear(),this.onDidChangeEmitter.fire(new I(void 0));else for(const i of n)this.languageService.isRegisteredLanguageId(i)&&(this.configurations.delete(i),this.onDidChangeEmitter.fire(new I(i)))}))),this._register(this._registry.onDidChange((e=>{this.configurations.delete(e.languageId),this.onDidChangeEmitter.fire(new I(e.languageId))})))}register(e,t,i){return this._registry.register(e,t,i)}getLanguageConfiguration(e){let t=this.configurations.get(e);return t||(t=function(e,t,i,n){let o=t.getLanguageConfiguration(e);if(!o){if(!n.isRegisteredLanguageId(e))throw new Error(`Language id "${e}" is not configured nor known`);o=new z(e,{})}const s=function(e,t){const i=t.getValue(A.brackets,{overrideIdentifier:e}),n=t.getValue(A.colorizedBracketPairs,{overrideIdentifier:e});return{brackets:R(i),colorizedBracketPairs:R(n)}}(o.languageId,i),r=B([o.underlyingConfig,s]);return new z(o.languageId,r)}(e,this._registry,this.configurationService,this.languageService),this.configurations.set(e,t)),t}};M=N([E(0,v.Ui),E(1,b.O)],M);const A={brackets:"editor.language.brackets",colorizedBracketPairs:"editor.language.colorizedBracketPairs"};function R(e){if(Array.isArray(e))return e.map((e=>{if(Array.isArray(e)&&2===e.length)return[e[0],e[1]]})).filter((e=>!!e))}function O(e,t,i){const n=e.getLineContent(t);let o=s.V8(n);return o.length>i-1&&(o=o.substring(0,i-1)),o}function P(e,t,i){e.tokenization.forceTokenization(t);const n=e.tokenization.getLineTokens(t),o=void 0===i?e.getLineMaxColumn(t)-1:i-1;return(0,l.wH)(n,o)}class F{constructor(e){this.languageId=e,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}register(e,t){const i=new V(e,t,++this._order);return this._entries.push(i),this._resolved=null,(0,o.OF)((()=>{for(let e=0;e<this._entries.length;e++)if(this._entries[e]===i){this._entries.splice(e,1),this._resolved=null;break}}))}getResolvedConfiguration(){if(!this._resolved){const e=this._resolve();e&&(this._resolved=new z(this.languageId,e))}return this._resolved}_resolve(){return 0===this._entries.length?null:(this._entries.sort(V.cmp),B(this._entries.map((e=>e.configuration))))}}function B(e){let t={comments:void 0,brackets:void 0,wordPattern:void 0,indentationRules:void 0,onEnterRules:void 0,autoClosingPairs:void 0,surroundingPairs:void 0,autoCloseBefore:void 0,folding:void 0,colorizedBracketPairs:void 0,__electricCharacterSupport:void 0};for(const i of e)t={comments:i.comments||t.comments,brackets:i.brackets||t.brackets,wordPattern:i.wordPattern||t.wordPattern,indentationRules:i.indentationRules||t.indentationRules,onEnterRules:i.onEnterRules||t.onEnterRules,autoClosingPairs:i.autoClosingPairs||t.autoClosingPairs,surroundingPairs:i.surroundingPairs||t.surroundingPairs,autoCloseBefore:i.autoCloseBefore||t.autoCloseBefore,folding:i.folding||t.folding,colorizedBracketPairs:i.colorizedBracketPairs||t.colorizedBracketPairs,__electricCharacterSupport:i.__electricCharacterSupport||t.__electricCharacterSupport};return t}class V{constructor(e,t,i){this.configuration=e,this.priority=t,this.order=i}static cmp(e,t){return e.priority===t.priority?e.order-t.order:e.priority-t.priority}}class W{constructor(e){this.languageId=e}}class H extends o.JT{constructor(){super(),this._entries=new Map,this._onDidChange=this._register(new n.Q5),this.onDidChange=this._onDidChange.event,this._register(this.register(w.bd,{brackets:[["(",")"],["[","]"],["{","}"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],colorizedBracketPairs:[],folding:{offSide:!0}},0))}register(e,t,i=0){let n=this._entries.get(e);n||(n=new F(e),this._entries.set(e,n));const s=n.register(t,i);return this._onDidChange.fire(new W(e)),(0,o.OF)((()=>{s.dispose(),this._onDidChange.fire(new W(e))}))}getLanguageConfiguration(e){const t=this._entries.get(e);return(null==t?void 0:t.getResolvedConfiguration())||null}}class z{constructor(e,t){this.languageId=e,this.underlyingConfig=t,this._brackets=null,this._electricCharacter=null,this._onEnterSupport=this.underlyingConfig.brackets||this.underlyingConfig.indentationRules||this.underlyingConfig.onEnterRules?new f(this.underlyingConfig):null,this.comments=z._handleComments(this.underlyingConfig),this.characterPair=new c(this.underlyingConfig),this.wordDefinition=this.underlyingConfig.wordPattern||r.Af,this.indentationRules=this.underlyingConfig.indentationRules,this.underlyingConfig.indentationRules?this.indentRulesSupport=new p(this.underlyingConfig.indentationRules):this.indentRulesSupport=null,this.foldingRules=this.underlyingConfig.folding||{},this.bracketsNew=new S(e,this.underlyingConfig)}getWordDefinition(){return(0,r.eq)(this.wordDefinition)}get brackets(){return!this._brackets&&this.underlyingConfig.brackets&&(this._brackets=new h.EA(this.languageId,this.underlyingConfig.brackets)),this._brackets}get electricCharacter(){return this._electricCharacter||(this._electricCharacter=new u(this.brackets)),this._electricCharacter}onEnter(e,t,i,n){return this._onEnterSupport?this._onEnterSupport.onEnter(e,t,i,n):null}getAutoClosingPairs(){return new a.c$(this.characterPair.getAutoClosingPairs())}getAutoCloseBeforeSet(){return this.characterPair.getAutoCloseBeforeSet()}getSurroundingPairs(){return this.characterPair.getSurroundingPairs()}static _handleComments(e){const t=e.comments;if(!t)return null;const i={};if(t.lineComment&&(i.lineCommentToken=t.lineComment),t.blockComment){const[e,n]=t.blockComment;i.blockCommentStartToken=e,i.blockCommentEndToken=n}return i}}(0,C.z)(T,M)},68801:(e,t,i)=>{"use strict";i.d(t,{bd:()=>c,dQ:()=>l});var n=i(63580),o=i(4669),s=i(89872),r=i(81170),a=i(23193);const l=new class{constructor(){this._onDidChangeLanguages=new o.Q5,this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[]}registerLanguage(e){return this._languages.push(e),this._onDidChangeLanguages.fire(void 0),{dispose:()=>{for(let t=0,i=this._languages.length;t<i;t++)if(this._languages[t]===e)return void this._languages.splice(t,1)}}}getLanguages(){return this._languages}};s.B.add("editor.modesRegistry",l);const c="plaintext";l.registerLanguage({id:c,extensions:[".txt"],aliases:[n.NC("plainText.alias","Plain Text"),"text"],mimetypes:[r.v.text]}),s.B.as(a.IP.Configuration).registerDefaultConfigurations([{overrides:{"[plaintext]":{"editor.unicodeHighlight.ambiguousCharacters":!1,"editor.unicodeHighlight.invisibleCharacters":!1}}}])},276:(e,t,i)=>{"use strict";i.d(t,{Dy:()=>r,Ri:()=>s,TJ:()=>o});var n=i(43155);const o=new class{clone(){return this}equals(e){return this===e}};function s(e,t){return new n.hG([new n.WU(0,"",e)],t)}function r(e,t){const i=new Uint32Array(2);return i[0]=0,i[1]=(32768|e<<0|2<<24)>>>0,new n.DI(i,null===t?o:t)}},19111:(e,t,i)=>{"use strict";function n(e,t){const i=e.getCount(),n=e.findTokenIndexAtOffset(t),s=e.getLanguageId(n);let r=n;for(;r+1<i&&e.getLanguageId(r+1)===s;)r++;let a=n;for(;a>0&&e.getLanguageId(a-1)===s;)a--;return new o(e,s,a,r+1,e.getStartOffset(a),e.getEndOffset(r))}i.d(t,{Bu:()=>s,wH:()=>n});class o{constructor(e,t,i,n,o,s){this._scopedLineTokensBrand=void 0,this._actual=e,this.languageId=t,this._firstTokenIndex=i,this._lastTokenIndex=n,this.firstCharOffset=o,this._lastCharOffset=s}getLineContent(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}getActualLineContentBefore(e){return this._actual.getLineContent().substring(0,this.firstCharOffset+e)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(e){return this._actual.findTokenIndexAtOffset(e+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(e){return this._actual.getStandardTokenType(e+this._firstTokenIndex)}}function s(e){return 0!=(3&e)}},34302:(e,t,i)=>{"use strict";i.d(t,{EA:()=>a,Vr:()=>p});var n=i(97295),o=i(50072),s=i(24314);class r{constructor(e,t,i,n,o,s){this._richEditBracketBrand=void 0,this.languageId=e,this.index=t,this.open=i,this.close=n,this.forwardRegex=o,this.reversedRegex=s,this._openSet=r._toSet(this.open),this._closeSet=r._toSet(this.close)}isOpen(e){return this._openSet.has(e)}isClose(e){return this._closeSet.has(e)}static _toSet(e){const t=new Set;for(const i of e)t.add(i);return t}}class a{constructor(e,t){this._richEditBracketsBrand=void 0;const i=function(e){const t=e.length;e=e.map((e=>[e[0].toLowerCase(),e[1].toLowerCase()]));const i=[];for(let r=0;r<t;r++)i[r]=r;const n=(e,t)=>{const[i,n]=e,[o,s]=t;return i===o||i===s||n===o||n===s},o=(e,n)=>{const o=Math.min(e,n),s=Math.max(e,n);for(let r=0;r<t;r++)i[r]===s&&(i[r]=o)};for(let r=0;r<t;r++){const s=e[r];for(let a=r+1;a<t;a++)n(s,e[a])&&o(i[r],i[a])}const s=[];for(let r=0;r<t;r++){const n=[],o=[];for(let s=0;s<t;s++)if(i[s]===r){const[t,i]=e[s];n.push(t),o.push(i)}n.length>0&&s.push({open:n,close:o})}return s}(t);this.brackets=i.map(((t,n)=>new r(e,n,t.open,t.close,function(e,t,i,n){let o=[];o=o.concat(e),o=o.concat(t);for(let s=0,r=o.length;s<r;s++)l(o[s],i,n,o);return o=d(o),o.sort(c),o.reverse(),u(o)}(t.open,t.close,i,n),function(e,t,i,n){let o=[];o=o.concat(e),o=o.concat(t);for(let s=0,r=o.length;s<r;s++)l(o[s],i,n,o);return o=d(o),o.sort(c),o.reverse(),u(o.map(g))}(t.open,t.close,i,n)))),this.forwardRegex=function(e){let t=[];for(const i of e){for(const e of i.open)t.push(e);for(const e of i.close)t.push(e)}return t=d(t),u(t)}(this.brackets),this.reversedRegex=function(e){let t=[];for(const i of e){for(const e of i.open)t.push(e);for(const e of i.close)t.push(e)}return t=d(t),u(t.map(g))}(this.brackets),this.textIsBracket={},this.textIsOpenBracket={},this.maxBracketLength=0;for(const n of this.brackets){for(const e of n.open)this.textIsBracket[e]=n,this.textIsOpenBracket[e]=!0,this.maxBracketLength=Math.max(this.maxBracketLength,e.length);for(const e of n.close)this.textIsBracket[e]=n,this.textIsOpenBracket[e]=!1,this.maxBracketLength=Math.max(this.maxBracketLength,e.length)}}}function l(e,t,i,n){for(let o=0,s=t.length;o<s;o++){if(o===i)continue;const s=t[o];for(const t of s.open)t.indexOf(e)>=0&&n.push(t);for(const t of s.close)t.indexOf(e)>=0&&n.push(t)}}function c(e,t){return e.length-t.length}function d(e){if(e.length<=1)return e;const t=[],i=new Set;for(const n of e)i.has(n)||(t.push(n),i.add(n));return t}function h(e){const t=/^[\w ]+$/.test(e);return e=n.ec(e),t?`\\b${e}\\b`:e}function u(e){const t=`(${e.map(h).join(")|(")})`;return n.GF(t,!0)}const g=function(){let e=null,t=null;return function(i){return e!==i&&(e=i,t=function(e){if(o.lZ){const t=new Uint16Array(e.length);let i=0;for(let n=e.length-1;n>=0;n--)t[i++]=e.charCodeAt(n);return o.oe().decode(t)}{const t=[];let i=0;for(let n=e.length-1;n>=0;n--)t[i++]=e.charAt(n);return t.join("")}}(e)),t}}();class p{static _findPrevBracketInText(e,t,i,n){const o=i.match(e);if(!o)return null;const r=i.length-(o.index||0),a=o[0].length,l=n+r;return new s.e(t,l-a+1,t,l+1)}static findPrevBracketInRange(e,t,i,n,o){const s=g(i).substring(i.length-o,i.length-n);return this._findPrevBracketInText(e,t,s,n)}static findNextBracketInText(e,t,i,n){const o=i.match(e);if(!o)return null;const r=o.index||0,a=o[0].length;if(0===a)return null;const l=n+r;return new s.e(t,l+1,t,l+1+a)}static findNextBracketInRange(e,t,i,n,o){const s=i.substring(n,o);return this.findNextBracketInText(e,t,s,n)}}},82963:(e,t,i)=>{"use strict";i.d(t,{C2:()=>c,Fq:()=>d});var n=i(97295),o=i(77378),s=i(43155),r=i(276),a=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const l={getInitialState:()=>r.TJ,tokenizeEncoded:(e,t,i)=>(0,r.Dy)(0,i)};function c(e,t,i){return a(this,void 0,void 0,(function*(){if(!i)return h(t,e.languageIdCodec,l);const n=yield s.RW.getOrCreate(i);return h(t,e.languageIdCodec,n||l)}))}function d(e,t,i,n,o,s,r){let a="<div>",l=n,c=0,d=!0;for(let h=0,u=t.getCount();h<u;h++){const u=t.getEndOffset(h);if(u<=n)continue;let g="";for(;l<u&&l<o;l++){const t=e.charCodeAt(l);switch(t){case 9:{let e=s-(l+c)%s;for(c+=e-1;e>0;)r&&d?(g+=" ",d=!1):(g+=" ",d=!0),e--;break}case 60:g+="<",d=!1;break;case 62:g+=">",d=!1;break;case 38:g+="&",d=!1;break;case 0:g+="�",d=!1;break;case 65279:case 8232:case 8233:case 133:g+="\ufffd",d=!1;break;case 13:g+="​",d=!1;break;case 32:r&&d?(g+=" ",d=!1):(g+=" ",d=!0);break;default:g+=String.fromCharCode(t),d=!1}}if(a+=`<span style="${t.getInlineStyle(h,i)}">${g}</span>`,u>o||l>=o)break}return a+="</div>",a}function h(e,t,i){let s='<div class="monaco-tokenized-source">';const r=n.uq(e);let a=i.getInitialState();for(let l=0,c=r.length;l<c;l++){const e=r[l];l>0&&(s+="<br/>");const c=i.tokenizeEncoded(e,!0,a);o.A.convertToEndOffset(c.tokens,e.length);const d=new o.A(c.tokens,e,t).inflate();let h=0;for(let t=0,i=d.getCount();t<i;t++){const i=d.getClassName(t),o=d.getEndOffset(t);s+=`<span class="${i}">${n.YU(e.substring(h,o))}</span>`,h=o}a=c.endState}return s+="</div>",s}},84973:(e,t,i)=>{"use strict";i.d(t,{F5:()=>o,Hf:()=>c,Qi:()=>d,RM:()=>s,Tx:()=>h,dJ:()=>a,je:()=>u,pt:()=>g,sh:()=>n,tk:()=>l});var n,o,s,r=i(36248);!function(e){e[e.Left=1]="Left",e[e.Center=2]="Center",e[e.Right=4]="Right",e[e.Full=7]="Full"}(n||(n={})),function(e){e[e.Inline=1]="Inline",e[e.Gutter=2]="Gutter"}(o||(o={})),function(e){e[e.Both=0]="Both",e[e.Right=1]="Right",e[e.Left=2]="Left",e[e.None=3]="None"}(s||(s={}));class a{constructor(e){this._textModelResolvedOptionsBrand=void 0,this.tabSize=Math.max(1,0|e.tabSize),this.indentSize=0|e.tabSize,this.insertSpaces=Boolean(e.insertSpaces),this.defaultEOL=0|e.defaultEOL,this.trimAutoWhitespace=Boolean(e.trimAutoWhitespace),this.bracketPairColorizationOptions=e.bracketPairColorizationOptions}equals(e){return this.tabSize===e.tabSize&&this.indentSize===e.indentSize&&this.insertSpaces===e.insertSpaces&&this.defaultEOL===e.defaultEOL&&this.trimAutoWhitespace===e.trimAutoWhitespace&&(0,r.fS)(this.bracketPairColorizationOptions,e.bracketPairColorizationOptions)}createChangeEvent(e){return{tabSize:this.tabSize!==e.tabSize,indentSize:this.indentSize!==e.indentSize,insertSpaces:this.insertSpaces!==e.insertSpaces,trimAutoWhitespace:this.trimAutoWhitespace!==e.trimAutoWhitespace}}}class l{constructor(e,t){this._findMatchBrand=void 0,this.range=e,this.matches=t}}function c(e){return e&&"function"==typeof e.read}class d{constructor(e,t,i,n,o,s){this.identifier=e,this.range=t,this.text=i,this.forceMoveMarkers=n,this.isAutoWhitespaceEdit=o,this._isTracked=s}}class h{constructor(e,t,i){this.regex=e,this.wordSeparators=t,this.simpleSearch=i}}class u{constructor(e,t,i){this.reverseEdits=e,this.changes=t,this.trimAutoWhitespaceLineNumbers=i}}function g(e){return!e.isTooLargeForSyncing()&&!e.isForSimpleWidget}},41720:(e,t,i)=>{"use strict";i.d(t,{BH:()=>m,Dm:()=>_,Kd:()=>a,Y0:()=>l,n2:()=>f});var n=i(7988),o=i(45035),s=i(61761);class r{constructor(e){this._length=e}get length(){return this._length}}class a extends r{constructor(e,t,i,n,o){super(e),this.openingBracket=t,this.child=i,this.closingBracket=n,this.missingOpeningBracketIds=o}static create(e,t,i){let n=e.length;return t&&(n=(0,o.Ii)(n,t.length)),i&&(n=(0,o.Ii)(n,i.length)),new a(n,e,t,i,t?t.missingOpeningBracketIds:s.tS.getEmpty())}get kind(){return 2}get listHeight(){return 0}get childrenLength(){return 3}getChild(e){switch(e){case 0:return this.openingBracket;case 1:return this.child;case 2:return this.closingBracket}throw new Error("Invalid child index")}get children(){const e=new Array;return e.push(this.openingBracket),this.child&&e.push(this.child),this.closingBracket&&e.push(this.closingBracket),e}canBeReused(e){return null!==this.closingBracket&&!e.intersects(this.missingOpeningBracketIds)}deepClone(){return new a(this.length,this.openingBracket.deepClone(),this.child&&this.child.deepClone(),this.closingBracket&&this.closingBracket.deepClone(),this.missingOpeningBracketIds)}computeMinIndentation(e,t){return this.child?this.child.computeMinIndentation((0,o.Ii)(e,this.openingBracket.length),t):Number.MAX_SAFE_INTEGER}}class l extends r{constructor(e,t,i){super(e),this.listHeight=t,this._missingOpeningBracketIds=i,this.cachedMinIndentation=-1}static create23(e,t,i,n=!1){let s=e.length,r=e.missingOpeningBracketIds;if(e.listHeight!==t.listHeight)throw new Error("Invalid list heights");if(s=(0,o.Ii)(s,t.length),r=r.merge(t.missingOpeningBracketIds),i){if(e.listHeight!==i.listHeight)throw new Error("Invalid list heights");s=(0,o.Ii)(s,i.length),r=r.merge(i.missingOpeningBracketIds)}return n?new d(s,e.listHeight+1,e,t,i,r):new c(s,e.listHeight+1,e,t,i,r)}static getEmpty(){return new u(o.xl,0,[],s.tS.getEmpty())}get kind(){return 4}get missingOpeningBracketIds(){return this._missingOpeningBracketIds}throwIfImmutable(){}makeLastElementMutable(){this.throwIfImmutable();const e=this.childrenLength;if(0===e)return;const t=this.getChild(e-1),i=4===t.kind?t.toMutable():t;return t!==i&&this.setChild(e-1,i),i}makeFirstElementMutable(){this.throwIfImmutable();if(0===this.childrenLength)return;const e=this.getChild(0),t=4===e.kind?e.toMutable():e;return e!==t&&this.setChild(0,t),t}canBeReused(e){if(e.intersects(this.missingOpeningBracketIds))return!1;let t,i=this;for(;4===i.kind&&(t=i.childrenLength)>0;)i=i.getChild(t-1);return i.canBeReused(e)}handleChildrenChanged(){this.throwIfImmutable();const e=this.childrenLength;let t=this.getChild(0).length,i=this.getChild(0).missingOpeningBracketIds;for(let n=1;n<e;n++){const e=this.getChild(n);t=(0,o.Ii)(t,e.length),i=i.merge(e.missingOpeningBracketIds)}this._length=t,this._missingOpeningBracketIds=i,this.cachedMinIndentation=-1}computeMinIndentation(e,t){if(-1!==this.cachedMinIndentation)return this.cachedMinIndentation;let i=Number.MAX_SAFE_INTEGER,n=e;for(let s=0;s<this.childrenLength;s++){const e=this.getChild(s);e&&(i=Math.min(i,e.computeMinIndentation(n,t)),n=(0,o.Ii)(n,e.length))}return this.cachedMinIndentation=i,i}}class c extends l{constructor(e,t,i,n,o,s){super(e,t,s),this._item1=i,this._item2=n,this._item3=o}get childrenLength(){return null!==this._item3?3:2}getChild(e){switch(e){case 0:return this._item1;case 1:return this._item2;case 2:return this._item3}throw new Error("Invalid child index")}setChild(e,t){switch(e){case 0:return void(this._item1=t);case 1:return void(this._item2=t);case 2:return void(this._item3=t)}throw new Error("Invalid child index")}get children(){return this._item3?[this._item1,this._item2,this._item3]:[this._item1,this._item2]}get item1(){return this._item1}get item2(){return this._item2}get item3(){return this._item3}deepClone(){return new c(this.length,this.listHeight,this._item1.deepClone(),this._item2.deepClone(),this._item3?this._item3.deepClone():null,this.missingOpeningBracketIds)}appendChildOfSameHeight(e){if(this._item3)throw new Error("Cannot append to a full (2,3) tree node");this.throwIfImmutable(),this._item3=e,this.handleChildrenChanged()}unappendChild(){if(!this._item3)throw new Error("Cannot remove from a non-full (2,3) tree node");this.throwIfImmutable();const e=this._item3;return this._item3=null,this.handleChildrenChanged(),e}prependChildOfSameHeight(e){if(this._item3)throw new Error("Cannot prepend to a full (2,3) tree node");this.throwIfImmutable(),this._item3=this._item2,this._item2=this._item1,this._item1=e,this.handleChildrenChanged()}unprependChild(){if(!this._item3)throw new Error("Cannot remove from a non-full (2,3) tree node");this.throwIfImmutable();const e=this._item1;return this._item1=this._item2,this._item2=this._item3,this._item3=null,this.handleChildrenChanged(),e}toMutable(){return this}}class d extends c{toMutable(){return new c(this.length,this.listHeight,this.item1,this.item2,this.item3,this.missingOpeningBracketIds)}throwIfImmutable(){throw new Error("this instance is immutable")}}class h extends l{constructor(e,t,i,n){super(e,t,n),this._children=i}get childrenLength(){return this._children.length}getChild(e){return this._children[e]}setChild(e,t){this._children[e]=t}get children(){return this._children}deepClone(){const e=new Array(this._children.length);for(let t=0;t<this._children.length;t++)e[t]=this._children[t].deepClone();return new h(this.length,this.listHeight,e,this.missingOpeningBracketIds)}appendChildOfSameHeight(e){this.throwIfImmutable(),this._children.push(e),this.handleChildrenChanged()}unappendChild(){this.throwIfImmutable();const e=this._children.pop();return this.handleChildrenChanged(),e}prependChildOfSameHeight(e){this.throwIfImmutable(),this._children.unshift(e),this.handleChildrenChanged()}unprependChild(){this.throwIfImmutable();const e=this._children.shift();return this.handleChildrenChanged(),e}toMutable(){return this}}class u extends h{toMutable(){return new h(this.length,this.listHeight,[...this.children],this.missingOpeningBracketIds)}throwIfImmutable(){throw new Error("this instance is immutable")}}const g=[];class p extends r{get listHeight(){return 0}get childrenLength(){return 0}getChild(e){return null}get children(){return g}deepClone(){return this}}class m extends p{get kind(){return 0}get missingOpeningBracketIds(){return s.tS.getEmpty()}canBeReused(e){return!0}computeMinIndentation(e,t){const i=(0,o.Hw)(e),s=(0===i.columnCount?i.lineCount:i.lineCount+1)+1,r=(0,o.W9)((0,o.Ii)(e,this.length))+1;let a=Number.MAX_SAFE_INTEGER;for(let o=s;o<=r;o++){const e=t.getLineFirstNonWhitespaceColumn(o),i=t.getLineContent(o);if(0===e)continue;const s=n.i.visibleColumnFromColumn(i,e,t.getOptions().tabSize);a=Math.min(a,s)}return a}}class f extends p{constructor(e,t,i){super(e),this.bracketInfo=t,this.bracketIds=i}static create(e,t,i){return new f(e,t,i)}get kind(){return 1}get missingOpeningBracketIds(){return s.tS.getEmpty()}get text(){return this.bracketInfo.bracketText}get languageId(){return this.bracketInfo.languageId}canBeReused(e){return!1}computeMinIndentation(e,t){return Number.MAX_SAFE_INTEGER}}class _ extends p{constructor(e,t){super(t),this.missingOpeningBracketIds=e}get kind(){return 3}canBeReused(e){return!e.intersects(this.missingOpeningBracketIds)}computeMinIndentation(e,t){return Number.MAX_SAFE_INTEGER}}},2442:(e,t,i)=>{"use strict";i.d(t,{Q:()=>o,Y:()=>s});var n=i(45035);class o{constructor(e,t,i){this.startOffset=e,this.endOffset=t,this.newLength=i}}class s{constructor(e,t){this.documentLength=t,this.nextEditIdx=0,this.deltaOldToNewLineCount=0,this.deltaOldToNewColumnCount=0,this.deltaLineIdxInOld=-1,this.edits=e.map((e=>r.from(e)))}getOffsetBeforeChange(e){return this.adjustNextEdit(e),this.translateCurToOld(e)}getDistanceToNextChange(e){this.adjustNextEdit(e);const t=this.edits[this.nextEditIdx],i=t?this.translateOldToCur(t.offsetObj):this.documentLength;return(0,n.BE)(e,i)}translateOldToCur(e){return e.lineCount===this.deltaLineIdxInOld?(0,n.Hg)(e.lineCount+this.deltaOldToNewLineCount,e.columnCount+this.deltaOldToNewColumnCount):(0,n.Hg)(e.lineCount+this.deltaOldToNewLineCount,e.columnCount)}translateCurToOld(e){const t=(0,n.Hw)(e);return t.lineCount-this.deltaOldToNewLineCount===this.deltaLineIdxInOld?(0,n.Hg)(t.lineCount-this.deltaOldToNewLineCount,t.columnCount-this.deltaOldToNewColumnCount):(0,n.Hg)(t.lineCount-this.deltaOldToNewLineCount,t.columnCount)}adjustNextEdit(e){for(;this.nextEditIdx<this.edits.length;){const t=this.edits[this.nextEditIdx],i=this.translateOldToCur(t.endOffsetAfterObj);if(!(0,n.By)(i,e))break;{this.nextEditIdx++;const e=(0,n.Hw)(i),o=(0,n.Hw)(this.translateOldToCur(t.endOffsetBeforeObj)),s=e.lineCount-o.lineCount;this.deltaOldToNewLineCount+=s;const r=this.deltaLineIdxInOld===t.endOffsetBeforeObj.lineCount?this.deltaOldToNewColumnCount:0,a=e.columnCount-o.columnCount;this.deltaOldToNewColumnCount=r+a,this.deltaLineIdxInOld=t.endOffsetBeforeObj.lineCount}}}}class r{constructor(e,t,i){this.endOffsetBeforeObj=(0,n.Hw)(t),this.endOffsetAfterObj=(0,n.Hw)((0,n.Ii)(e,i)),this.offsetObj=(0,n.Hw)(e)}static from(e){return new r(e.startOffset,e.endOffset,e.newLength)}}},35382:(e,t,i)=>{"use strict";i.d(t,{Z:()=>c});var n=i(97295),o=i(41720),s=i(45035),r=i(61761),a=i(6735);class l{constructor(e){this.map=e,this.hasRegExp=!1,this._regExpGlobal=null}static createFromLanguage(e,t){function i(e){return t.getKey(`${e.languageId}:::${e.bracketText}`)}const n=new Map;for(const l of e.bracketsNew.openingBrackets){const e=(0,s.Hg)(0,l.bracketText.length),t=i(l),c=r.tS.getEmpty().add(t,r.Qw);n.set(l.bracketText,new a.WU(e,1,t,c,o.n2.create(e,l,c)))}for(const l of e.bracketsNew.closingBrackets){const e=(0,s.Hg)(0,l.bracketText.length);let t=r.tS.getEmpty();const c=l.getClosedBrackets();for(const n of c)t=t.add(i(n),r.Qw);n.set(l.bracketText,new a.WU(e,2,i(c[0]),t,o.n2.create(e,l,t)))}return new l(n)}getRegExpStr(){if(this.isEmpty)return null;{const e=[...this.map.keys()];return e.sort(),e.reverse(),e.map((e=>function(e){let t=(0,n.ec)(e);/^[\w ]+/.test(e)&&(t=`\\b${t}`);/[\w ]+$/.test(e)&&(t=`${t}\\b`);return t}(e))).join("|")}}get regExpGlobal(){if(!this.hasRegExp){const e=this.getRegExpStr();this._regExpGlobal=e?new RegExp(e,"gi"):null,this.hasRegExp=!0}return this._regExpGlobal}getToken(e){return this.map.get(e.toLowerCase())}findClosingTokenText(e){for(const[t,i]of this.map)if(2===i.kind&&i.bracketIds.intersects(e))return t}get isEmpty(){return 0===this.map.size}}class c{constructor(e,t){this.denseKeyProvider=e,this.getLanguageConfiguration=t,this.languageIdToBracketTokens=new Map}didLanguageChange(e){return this.languageIdToBracketTokens.has(e)}getSingleLanguageBracketTokens(e){let t=this.languageIdToBracketTokens.get(e);return t||(t=l.createFromLanguage(this.getLanguageConfiguration(e),this.denseKeyProvider),this.languageIdToBracketTokens.set(e,t)),t}}},45035:(e,t,i)=>{"use strict";i.d(t,{BE:()=>m,By:()=>_,F_:()=>g,Hg:()=>d,Hw:()=>h,Ii:()=>p,PZ:()=>b,Qw:()=>C,VR:()=>f,W9:()=>u,Zq:()=>v,av:()=>r,oR:()=>w,xd:()=>l,xl:()=>a});var n=i(97295),o=i(24314);class s{constructor(e,t){this.lineCount=e,this.columnCount=t}toString(){return`${this.lineCount},${this.columnCount}`}}function r(e,t,i,n){return e!==i?d(i-e,n):d(0,n-t)}s.zero=new s(0,0);const a=0;function l(e){return 0===e}const c=Math.pow(2,26);function d(e,t){return e*c+t}function h(e){const t=e,i=Math.floor(t/c);return new s(i,t-i*c)}function u(e){return Math.floor(e/c)}function g(e){return e}function p(e,t){return t<c?e+t:e-e%c+t}function m(e,t){const i=e,n=t;if(n-i<=0)return a;const o=Math.floor(i/c),s=Math.floor(n/c),r=n-s*c;if(o===s){return d(0,r-(i-o*c))}return d(s-o,r)}function f(e,t){return e<t}function _(e,t){return e<=t}function v(e,t){return e>=t}function b(e){return d(e.lineNumber-1,e.column-1)}function C(e,t){const i=e,n=Math.floor(i/c),s=i-n*c,r=t,a=Math.floor(r/c),l=r-a*c;return new o.e(n+1,s+1,a+1,l+1)}function w(e){const t=(0,n.uq)(e);return d(t.length-1,t[t.length-1].length)}},64837:(e,t,i)=>{"use strict";i.d(t,{w:()=>g});var n=i(41720),o=i(2442),s=i(61761),r=i(45035);function a(e,t=!1){if(0===e.length)return null;if(1===e.length)return e[0];let i=e.length;for(;i>3;){const o=i>>1;for(let s=0;s<o;s++){const o=s<<1;e[s]=n.Y0.create23(e[o],e[o+1],o+3===i?e[o+2]:null,t)}i=o}return n.Y0.create23(e[0],e[1],i>=3?e[2]:null,t)}function l(e,t){return Math.abs(e.listHeight-t.listHeight)}function c(e,t){return e.listHeight===t.listHeight?n.Y0.create23(e,t,null,!1):e.listHeight>t.listHeight?function(e,t){let i=e=e.toMutable();const o=new Array;let s;for(;;){if(t.listHeight===i.listHeight){s=t;break}if(4!==i.kind)throw new Error("unexpected");o.push(i),i=i.makeLastElementMutable()}for(let r=o.length-1;r>=0;r--){const e=o[r];s?e.childrenLength>=3?s=n.Y0.create23(e.unappendChild(),s,null,!1):(e.appendChildOfSameHeight(s),s=void 0):e.handleChildrenChanged()}return s?n.Y0.create23(e,s,null,!1):e}(e,t):function(e,t){let i=e=e.toMutable();const o=new Array;for(;t.listHeight!==i.listHeight;){if(4!==i.kind)throw new Error("unexpected");o.push(i),i=i.makeFirstElementMutable()}let s=t;for(let r=o.length-1;r>=0;r--){const e=o[r];s?e.childrenLength>=3?s=n.Y0.create23(s,e.unprependChild(),null,!1):(e.prependChildOfSameHeight(s),s=void 0):e.handleChildrenChanged()}return s?n.Y0.create23(s,e,null,!1):e}(t,e)}class d{constructor(e){this.lastOffset=r.xl,this.nextNodes=[e],this.offsets=[r.xl],this.idxs=[]}readLongestNodeAt(e,t){if((0,r.VR)(e,this.lastOffset))throw new Error("Invalid offset");for(this.lastOffset=e;;){const i=u(this.nextNodes);if(!i)return;const n=u(this.offsets);if((0,r.VR)(e,n))return;if((0,r.VR)(n,e))if((0,r.Ii)(n,i.length)<=e)this.nextNodeAfterCurrent();else{const e=h(i);-1!==e?(this.nextNodes.push(i.getChild(e)),this.offsets.push(n),this.idxs.push(e)):this.nextNodeAfterCurrent()}else{if(t(i))return this.nextNodeAfterCurrent(),i;{const e=h(i);if(-1===e)return void this.nextNodeAfterCurrent();this.nextNodes.push(i.getChild(e)),this.offsets.push(n),this.idxs.push(e)}}}}nextNodeAfterCurrent(){for(;;){const e=u(this.offsets),t=u(this.nextNodes);if(this.nextNodes.pop(),this.offsets.pop(),0===this.idxs.length)break;const i=u(this.nextNodes),n=h(i,this.idxs[this.idxs.length-1]);if(-1!==n){this.nextNodes.push(i.getChild(n)),this.offsets.push((0,r.Ii)(e,t.length)),this.idxs[this.idxs.length-1]=n;break}this.idxs.pop()}}}function h(e,t=-1){for(;;){if(++t>=e.childrenLength)return-1;if(e.getChild(t))return t}}function u(e){return e.length>0?e[e.length-1]:void 0}function g(e,t,i,n){return new p(e,t,i,n).parseDocument()}class p{constructor(e,t,i,n){if(this.tokenizer=e,this.createImmutableLists=n,this._itemsConstructed=0,this._itemsFromCache=0,i&&n)throw new Error("Not supported");this.oldNodeReader=i?new d(i):void 0,this.positionMapper=new o.Y(t,e.length)}parseDocument(){this._itemsConstructed=0,this._itemsFromCache=0;let e=this.parseList(s.tS.getEmpty());return e||(e=n.Y0.getEmpty()),e}parseList(e){const t=new Array;for(;;){const i=this.tokenizer.peek();if(!i||2===i.kind&&i.bracketIds.intersects(e))break;const n=this.parseChild(e);4===n.kind&&0===n.childrenLength||t.push(n)}const i=this.oldNodeReader?function(e){if(0===e.length)return null;if(1===e.length)return e[0];let t=0;function i(){if(t>=e.length)return null;const i=t,n=e[i].listHeight;for(t++;t<e.length&&e[t].listHeight===n;)t++;return t-i>=2?a(0===i&&t===e.length?e:e.slice(i,t),!1):e[i]}let n=i(),o=i();if(!o)return n;for(let s=i();s;s=i())l(n,o)<=l(o,s)?(n=c(n,o),o=s):o=c(o,s);return c(n,o)}(t):a(t,this.createImmutableLists);return i}parseChild(e){if(this.oldNodeReader){const t=this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);if(!(0,r.xd)(t)){const i=this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset),(i=>{if(!(0,r.VR)(i.length,t))return!1;return i.canBeReused(e)}));if(i)return this._itemsFromCache++,this.tokenizer.skip(i.length),i}}this._itemsConstructed++;const t=this.tokenizer.read();switch(t.kind){case 2:return new n.Dm(t.bracketIds,t.length);case 0:return t.astNode;case 1:{const i=e.merge(t.bracketIds),o=this.parseList(i),s=this.tokenizer.peek();return s&&2===s.kind&&(s.bracketId===t.bracketId||s.bracketIds.intersects(t.bracketIds))?(this.tokenizer.read(),n.Kd.create(t.astNode,o,s.astNode)):n.Kd.create(t.astNode,o,null)}default:throw new Error("unexpected")}}}},61761:(e,t,i)=>{"use strict";i.d(t,{FE:()=>r,Qw:()=>s,tS:()=>o});const n=new Array;class o{constructor(e,t){this.items=e,this.additionalItems=t}static create(e,t){if(e<=128&&0===t.length){let i=o.cache[e];return i||(i=new o(e,t),o.cache[e]=i),i}return new o(e,t)}static getEmpty(){return this.empty}add(e,t){const i=t.getKey(e);let n=i>>5;if(0===n){const e=1<<i|this.items;return e===this.items?this:o.create(e,this.additionalItems)}n--;const s=this.additionalItems.slice(0);for(;s.length<n;)s.push(0);return s[n]|=1<<(31&i),o.create(this.items,s)}merge(e){const t=this.items|e.items;if(this.additionalItems===n&&e.additionalItems===n)return t===this.items?this:t===e.items?e:o.create(t,n);const i=new Array;for(let n=0;n<Math.max(this.additionalItems.length,e.additionalItems.length);n++){const t=this.additionalItems[n]||0,o=e.additionalItems[n]||0;i.push(t|o)}return o.create(t,i)}intersects(e){if(0!=(this.items&e.items))return!0;for(let t=0;t<Math.min(this.additionalItems.length,e.additionalItems.length);t++)if(0!=(this.additionalItems[t]&e.additionalItems[t]))return!0;return!1}}o.cache=new Array(129),o.empty=o.create(0,n);const s={getKey:e=>e};class r{constructor(){this.items=new Map}getKey(e){let t=this.items.get(e);return void 0===t&&(t=this.items.size,this.items.set(e,t)),t}}},6735:(e,t,i)=>{"use strict";i.d(t,{WU:()=>l,g:()=>h,xH:()=>c});var n=i(17301),o=i(45797),s=i(41720),r=i(45035),a=i(61761);class l{constructor(e,t,i,n,o){this.length=e,this.kind=t,this.bracketId=i,this.bracketIds=n,this.astNode=o}}class c{constructor(e,t){this.textModel=e,this.bracketTokens=t,this.reader=new d(this.textModel,this.bracketTokens),this._offset=r.xl,this.didPeek=!1,this.peeked=null,this.textBufferLineCount=e.getLineCount(),this.textBufferLastLineLength=e.getLineLength(this.textBufferLineCount)}get offset(){return this._offset}get length(){return(0,r.Hg)(this.textBufferLineCount,this.textBufferLastLineLength)}skip(e){this.didPeek=!1,this._offset=(0,r.Ii)(this._offset,e);const t=(0,r.Hw)(this._offset);this.reader.setPosition(t.lineCount,t.columnCount)}read(){let e;return this.peeked?(this.didPeek=!1,e=this.peeked):e=this.reader.read(),e&&(this._offset=(0,r.Ii)(this._offset,e.length)),e}peek(){return this.didPeek||(this.peeked=this.reader.read(),this.didPeek=!0),this.peeked}}class d{constructor(e,t){this.textModel=e,this.bracketTokens=t,this.lineIdx=0,this.line=null,this.lineCharOffset=0,this.lineTokens=null,this.lineTokenOffset=0,this.peekedToken=null,this.textBufferLineCount=e.getLineCount(),this.textBufferLastLineLength=e.getLineLength(this.textBufferLineCount)}setPosition(e,t){e===this.lineIdx?(this.lineCharOffset=t,this.lineTokenOffset=0===this.lineCharOffset?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset)):(this.lineIdx=e,this.lineCharOffset=t,this.line=null),this.peekedToken=null}read(){if(this.peekedToken){const e=this.peekedToken;return this.peekedToken=null,this.lineCharOffset+=(0,r.F_)(e.length),e}if(this.lineIdx>this.textBufferLineCount-1||this.lineIdx===this.textBufferLineCount-1&&this.lineCharOffset>=this.textBufferLastLineLength)return null;null===this.line&&(this.lineTokens=this.textModel.tokenization.getLineTokens(this.lineIdx+1),this.line=this.lineTokens.getLineContent(),this.lineTokenOffset=0===this.lineCharOffset?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset));const e=this.lineIdx,t=this.lineCharOffset;let i=0;for(;;){const n=this.lineTokens,s=n.getCount();let a=null;if(this.lineTokenOffset<s){const l=n.getMetadata(this.lineTokenOffset);for(;this.lineTokenOffset+1<s&&l===n.getMetadata(this.lineTokenOffset+1);)this.lineTokenOffset++;const c=0===o.N.getTokenType(l),d=o.N.containsBalancedBrackets(l),h=n.getEndOffset(this.lineTokenOffset);if(d&&c&&this.lineCharOffset<h){const e=n.getLanguageId(this.lineTokenOffset),t=this.line.substring(this.lineCharOffset,h),i=this.bracketTokens.getSingleLanguageBracketTokens(e),o=i.regExpGlobal;if(o){o.lastIndex=0;const e=o.exec(t);e&&(a=i.getToken(e[0]),a&&(this.lineCharOffset+=e.index))}}if(i+=h-this.lineCharOffset,a){if(e!==this.lineIdx||t!==this.lineCharOffset){this.peekedToken=a;break}return this.lineCharOffset+=(0,r.F_)(a.length),a}this.lineTokenOffset++,this.lineCharOffset=h}else{if(this.lineIdx===this.textBufferLineCount-1)break;if(this.lineIdx++,this.lineTokens=this.textModel.tokenization.getLineTokens(this.lineIdx+1),this.lineTokenOffset=0,this.line=this.lineTokens.getLineContent(),this.lineCharOffset=0,i+=33,i>1e3)break}if(i>1500)break}const n=(0,r.av)(e,t,this.lineIdx,this.lineCharOffset);return new l(n,0,-1,a.tS.getEmpty(),new s.BH(n))}}class h{constructor(e,t){this.text=e,this._offset=r.xl,this.idx=0;const i=t.getRegExpStr(),n=i?new RegExp(i+"|\n","gi"):null,o=[];let c,d=0,h=0,u=0,g=0;const p=new Array;for(let _=0;_<60;_++)p.push(new l((0,r.Hg)(0,_),0,-1,a.tS.getEmpty(),new s.BH((0,r.Hg)(0,_))));const m=new Array;for(let _=0;_<60;_++)m.push(new l((0,r.Hg)(1,_),0,-1,a.tS.getEmpty(),new s.BH((0,r.Hg)(1,_))));if(n)for(n.lastIndex=0;null!==(c=n.exec(e));){const e=c.index,i=c[0];if("\n"===i)d++,h=e+1;else{if(u!==e){let t;if(g===d){const i=e-u;if(i<p.length)t=p[i];else{const e=(0,r.Hg)(0,i);t=new l(e,0,-1,a.tS.getEmpty(),new s.BH(e))}}else{const i=d-g,n=e-h;if(1===i&&n<m.length)t=m[n];else{const e=(0,r.Hg)(i,n);t=new l(e,0,-1,a.tS.getEmpty(),new s.BH(e))}}o.push(t)}o.push(t.getToken(i)),u=e+i.length,g=d}}const f=e.length;if(u!==f){const e=g===d?(0,r.Hg)(0,f-u):(0,r.Hg)(d-g,f-h);o.push(new l(e,0,-1,a.tS.getEmpty(),new s.BH(e)))}this.length=(0,r.Hg)(d,f-h),this.tokens=o}get offset(){return this._offset}read(){return this.tokens[this.idx++]||null}peek(){return this.tokens[this.idx]||null}skip(e){throw new n.B8}}},95215:(e,t,i)=>{"use strict";i.d(t,{NL:()=>m,e9:()=>p});var n=i(63580),o=i(17301),s=i(3860),r=i(70666),a=i(93033),l=i(53060),c=i(95935);function d(e){return e.toString()}class h{constructor(e,t,i,n,o,s,r){this.beforeVersionId=e,this.afterVersionId=t,this.beforeEOL=i,this.afterEOL=n,this.beforeCursorState=o,this.afterCursorState=s,this.changes=r}static create(e,t){const i=e.getAlternativeVersionId(),n=g(e);return new h(i,i,n,n,t,t,[])}append(e,t,i,n,o){t.length>0&&(this.changes=(0,a.b)(this.changes,t)),this.afterEOL=i,this.afterVersionId=n,this.afterCursorState=o}static _writeSelectionsSize(e){return 4+16*(e?e.length:0)}static _writeSelections(e,t,i){if(l.T4(e,t?t.length:0,i),i+=4,t)for(const n of t)l.T4(e,n.selectionStartLineNumber,i),i+=4,l.T4(e,n.selectionStartColumn,i),i+=4,l.T4(e,n.positionLineNumber,i),i+=4,l.T4(e,n.positionColumn,i),i+=4;return i}static _readSelections(e,t,i){const n=l.Ag(e,t);t+=4;for(let o=0;o<n;o++){const n=l.Ag(e,t);t+=4;const o=l.Ag(e,t);t+=4;const r=l.Ag(e,t);t+=4;const a=l.Ag(e,t);t+=4,i.push(new s.Y(n,o,r,a))}return t}serialize(){let e=10+h._writeSelectionsSize(this.beforeCursorState)+h._writeSelectionsSize(this.afterCursorState)+4;for(const n of this.changes)e+=n.writeSize();const t=new Uint8Array(e);let i=0;l.T4(t,this.beforeVersionId,i),i+=4,l.T4(t,this.afterVersionId,i),i+=4,l.Cg(t,this.beforeEOL,i),i+=1,l.Cg(t,this.afterEOL,i),i+=1,i=h._writeSelections(t,this.beforeCursorState,i),i=h._writeSelections(t,this.afterCursorState,i),l.T4(t,this.changes.length,i),i+=4;for(const n of this.changes)i=n.write(t,i);return t.buffer}static deserialize(e){const t=new Uint8Array(e);let i=0;const n=l.Ag(t,i);i+=4;const o=l.Ag(t,i);i+=4;const s=l.Q$(t,i);i+=1;const r=l.Q$(t,i);i+=1;const c=[];i=h._readSelections(t,i,c);const d=[];i=h._readSelections(t,i,d);const u=l.Ag(t,i);i+=4;const g=[];for(let l=0;l<u;l++)i=a.q.read(t,i,g);return new h(n,o,s,r,c,d,g)}}class u{constructor(e,t,i,n){this.label=e,this.code=t,this.model=i,this._data=h.create(i,n)}get type(){return 0}get resource(){return r.o.isUri(this.model)?this.model:this.model.uri}toString(){return(this._data instanceof h?this._data:h.deserialize(this._data)).changes.map((e=>e.toString())).join(", ")}matchesResource(e){return(r.o.isUri(this.model)?this.model:this.model.uri).toString()===e.toString()}setModel(e){this.model=e}canAppend(e){return this.model===e&&this._data instanceof h}append(e,t,i,n,o){this._data instanceof h&&this._data.append(e,t,i,n,o)}close(){this._data instanceof h&&(this._data=this._data.serialize())}open(){this._data instanceof h||(this._data=h.deserialize(this._data))}undo(){if(r.o.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof h&&(this._data=this._data.serialize());const e=h.deserialize(this._data);this.model._applyUndo(e.changes,e.beforeEOL,e.beforeVersionId,e.beforeCursorState)}redo(){if(r.o.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof h&&(this._data=this._data.serialize());const e=h.deserialize(this._data);this.model._applyRedo(e.changes,e.afterEOL,e.afterVersionId,e.afterCursorState)}heapSize(){return this._data instanceof h&&(this._data=this._data.serialize()),this._data.byteLength+168}}function g(e){return"\n"===e.getEOL()?0:1}function p(e){return!!e&&(e instanceof u||e instanceof class{constructor(e,t,i){this.label=e,this.code=t,this.type=1,this._isOpen=!0,this._editStackElementsArr=i.slice(0),this._editStackElementsMap=new Map;for(const n of this._editStackElementsArr){const e=d(n.resource);this._editStackElementsMap.set(e,n)}this._delegate=null}get resources(){return this._editStackElementsArr.map((e=>e.resource))}prepareUndoRedo(){if(this._delegate)return this._delegate.prepareUndoRedo(this)}matchesResource(e){const t=d(e);return this._editStackElementsMap.has(t)}setModel(e){const t=d(r.o.isUri(e)?e:e.uri);this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).setModel(e)}canAppend(e){if(!this._isOpen)return!1;const t=d(e.uri);return!!this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).canAppend(e)}append(e,t,i,n,o){const s=d(e.uri);this._editStackElementsMap.get(s).append(e,t,i,n,o)}close(){this._isOpen=!1}open(){}undo(){this._isOpen=!1;for(const e of this._editStackElementsArr)e.undo()}redo(){for(const e of this._editStackElementsArr)e.redo()}heapSize(e){const t=d(e);return this._editStackElementsMap.has(t)?this._editStackElementsMap.get(t).heapSize():0}split(){return this._editStackElementsArr}toString(){const e=[];for(const t of this._editStackElementsArr)e.push(`${(0,c.EZ)(t.resource)}: ${t}`);return`{${e.join(", ")}}`}})}class m{constructor(e,t){this._model=e,this._undoRedoService=t}pushStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);p(e)&&e.close()}popStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);p(e)&&e.open()}clear(){this._undoRedoService.removeElements(this._model.uri)}_getOrCreateEditStackElement(e){const t=this._undoRedoService.getLastElement(this._model.uri);if(p(t)&&t.canAppend(this._model))return t;const i=new u(n.NC("edit","Typing"),"undoredo.textBufferEdit",this._model,e);return this._undoRedoService.pushElement(i),i}pushEOL(e){const t=this._getOrCreateEditStackElement(null);this._model.setEOL(e),t.append(this._model,[],g(this._model),this._model.getAlternativeVersionId(),null)}pushEditOperation(e,t,i){const n=this._getOrCreateEditStackElement(e),o=this._model.applyEdits(t,!0),s=m._computeCursorState(i,o),r=o.map(((e,t)=>({index:t,textChange:e.textChange})));return r.sort(((e,t)=>e.textChange.oldPosition===t.textChange.oldPosition?e.index-t.index:e.textChange.oldPosition-t.textChange.oldPosition)),n.append(this._model,r.map((e=>e.textChange)),g(this._model),this._model.getAlternativeVersionId(),s),s}static _computeCursorState(e,t){try{return e?e(t):null}catch(i){return(0,o.dL)(i),null}}}},1516:(e,t,i)=>{"use strict";i.d(t,{W:()=>h,l:()=>d});var n=i(9488),o=i(97295),s=i(7988),r=i(24314),a=i(94954),l=i(59616),c=i(65094);class d extends a.U{constructor(e,t){super(),this.textModel=e,this.languageConfigurationService=t}getLanguageConfiguration(e){return this.languageConfigurationService.getLanguageConfiguration(e)}_computeIndentLevel(e){return(0,l.q)(this.textModel.getLineContent(e+1),this.textModel.getOptions().tabSize)}getActiveIndentGuide(e,t,i){this.assertNotDisposed();const n=this.textModel.getLineCount();if(e<1||e>n)throw new Error("Illegal value for lineNumber");const o=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,s=Boolean(o&&o.offSide);let r=-2,a=-1,l=-2,c=-1;const d=e=>{if(-1!==r&&(-2===r||r>e-1)){r=-1,a=-1;for(let t=e-2;t>=0;t--){const e=this._computeIndentLevel(t);if(e>=0){r=t,a=e;break}}}if(-2===l){l=-1,c=-1;for(let t=e;t<n;t++){const e=this._computeIndentLevel(t);if(e>=0){l=t,c=e;break}}}};let h=-2,u=-1,g=-2,p=-1;const m=e=>{if(-2===h){h=-1,u=-1;for(let t=e-2;t>=0;t--){const e=this._computeIndentLevel(t);if(e>=0){h=t,u=e;break}}}if(-1!==g&&(-2===g||g<e-1)){g=-1,p=-1;for(let t=e;t<n;t++){const e=this._computeIndentLevel(t);if(e>=0){g=t,p=e;break}}}};let f=0,_=!0,v=0,b=!0,C=0,w=0;for(let y=0;_||b;y++){const o=e-y,r=e+y;y>1&&(o<1||o<t)&&(_=!1),y>1&&(r>n||r>i)&&(b=!1),y>5e4&&(_=!1,b=!1);let g=-1;if(_&&o>=1){const e=this._computeIndentLevel(o-1);e>=0?(l=o-1,c=e,g=Math.ceil(e/this.textModel.getOptions().indentSize)):(d(o),g=this._getIndentLevelForWhitespaceLine(s,a,c))}let S=-1;if(b&&r<=n){const e=this._computeIndentLevel(r-1);e>=0?(h=r-1,u=e,S=Math.ceil(e/this.textModel.getOptions().indentSize)):(m(r),S=this._getIndentLevelForWhitespaceLine(s,u,p))}if(0!==y){if(1===y){if(r<=n&&S>=0&&w+1===S){_=!1,f=r,v=r,C=S;continue}if(o>=1&&g>=0&&g-1===w){b=!1,f=o,v=o,C=g;continue}if(f=e,v=e,C=w,0===C)return{startLineNumber:f,endLineNumber:v,indent:C}}_&&(g>=C?f=o:_=!1),b&&(S>=C?v=r:b=!1)}else w=g}return{startLineNumber:f,endLineNumber:v,indent:C}}getLinesBracketGuides(e,t,i,s){var a;const l=[];for(let n=e;n<=t;n++)l.push([]);const d=this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new r.e(e,1,t,this.textModel.getLineMaxColumn(t)));let u;if(i&&d.length>0){const o=(e<=i.lineNumber&&i.lineNumber<=t?d:this.textModel.bracketPairs.getBracketPairsInRange(r.e.fromPositions(i))).filter((e=>r.e.strictContainsPosition(e.range,i)));u=null===(a=(0,n.dF)(o,(e=>true)))||void 0===a?void 0:a.range}const g=this.textModel.getOptions().bracketPairColorizationOptions.independentColorPoolPerBracketType,p=new h;for(const n of d){if(!n.closingBracketRange)continue;const i=u&&n.range.equalsRange(u);if(!i&&!s.includeInactive)continue;const r=p.getInlineClassName(n.nestingLevel,n.nestingLevelOfEqualBracketType,g)+(s.highlightActive&&i?" "+p.activeClassName:""),a=n.openingBracketRange.getStartPosition(),d=n.closingBracketRange.getStartPosition(),h=s.horizontalGuides===c.s6.Enabled||s.horizontalGuides===c.s6.EnabledForActive&&i;if(n.range.startLineNumber===n.range.endLineNumber){h&&l[n.range.startLineNumber-e].push(new c.UO(-1,n.openingBracketRange.getEndPosition().column,r,new c.vW(!1,d.column),-1,-1));continue}const m=this.getVisibleColumnFromPosition(d),f=this.getVisibleColumnFromPosition(n.openingBracketRange.getStartPosition()),_=Math.min(f,m,n.minVisibleColumnIndentation+1);let v=!1;o.LC(this.textModel.getLineContent(n.closingBracketRange.startLineNumber))<n.closingBracketRange.startColumn-1&&(v=!0);const b=Math.max(a.lineNumber,e),C=Math.min(d.lineNumber,t),w=v?1:0;for(let t=b;t<C+w;t++)l[t-e].push(new c.UO(_,-1,r,null,t===a.lineNumber?a.column:-1,t===d.lineNumber?d.column:-1));h&&(a.lineNumber>=e&&f>_&&l[a.lineNumber-e].push(new c.UO(_,-1,r,new c.vW(!1,a.column),-1,-1)),d.lineNumber<=t&&m>_&&l[d.lineNumber-e].push(new c.UO(_,-1,r,new c.vW(!v,d.column),-1,-1)))}for(const n of l)n.sort(((e,t)=>e.visibleColumn-t.visibleColumn));return l}getVisibleColumnFromPosition(e){return s.i.visibleColumnFromColumn(this.textModel.getLineContent(e.lineNumber),e.column,this.textModel.getOptions().tabSize)+1}getLinesIndentGuides(e,t){this.assertNotDisposed();const i=this.textModel.getLineCount();if(e<1||e>i)throw new Error("Illegal value for startLineNumber");if(t<1||t>i)throw new Error("Illegal value for endLineNumber");const n=this.textModel.getOptions(),o=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,s=Boolean(o&&o.offSide),r=new Array(t-e+1);let a=-2,l=-1,c=-2,d=-1;for(let h=e;h<=t;h++){const t=h-e,o=this._computeIndentLevel(h-1);if(o>=0)a=h-1,l=o,r[t]=Math.ceil(o/n.indentSize);else{if(-2===a){a=-1,l=-1;for(let e=h-2;e>=0;e--){const t=this._computeIndentLevel(e);if(t>=0){a=e,l=t;break}}}if(-1!==c&&(-2===c||c<h-1)){c=-1,d=-1;for(let e=h;e<i;e++){const t=this._computeIndentLevel(e);if(t>=0){c=e,d=t;break}}}r[t]=this._getIndentLevelForWhitespaceLine(s,l,d)}}return r}_getIndentLevelForWhitespaceLine(e,t,i){const n=this.textModel.getOptions();return-1===t||-1===i?0:t<i?1+Math.floor(t/n.indentSize):t===i||e?Math.ceil(i/n.indentSize):1+Math.floor(i/n.indentSize)}}class h{constructor(){this.activeClassName="indent-active"}getInlineClassName(e,t,i){return this.getInlineClassNameOfLevel(i?t:e)}getInlineClassNameOfLevel(e){return"bracket-indent-guide lvl-"+e%30}}},90310:(e,t,i)=>{"use strict";i.d(t,{Ck:()=>r,oQ:()=>s});var n=i(9488),o=i(85427);class s{constructor(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(e,t){e=(0,o.A)(e);const i=this.values,n=this.prefixSum,s=t.length;return 0!==s&&(this.values=new Uint32Array(i.length+s),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e),e+s),this.values.set(t,e),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSum=new Uint32Array(this.values.length),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(n.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(e,t){return e=(0,o.A)(e),t=(0,o.A)(t),this.values[e]!==t&&(this.values[e]=t,e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),!0)}removeValues(e,t){e=(0,o.A)(e),t=(0,o.A)(t);const i=this.values,n=this.prefixSum;if(e>=i.length)return!1;const s=i.length-e;return t>=s&&(t=s),0!==t&&(this.values=new Uint32Array(i.length-t),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(n.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return 0===this.values.length?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(e){return e<0?0:(e=(0,o.A)(e),this._getPrefixSum(e))}_getPrefixSum(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];let t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(let i=t;i<=e;i++)this.prefixSum[i]=this.prefixSum[i-1]+this.values[i];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]}getIndexOf(e){e=Math.floor(e),this.getTotalSum();let t=0,i=this.values.length-1,n=0,o=0,s=0;for(;t<=i;)if(n=t+(i-t)/2|0,o=this.prefixSum[n],s=o-this.values[n],e<s)i=n-1;else{if(!(e>=o))break;t=n+1}return new a(n,e-s)}}class r{constructor(e){this._values=e,this._isValid=!1,this._validEndIndex=-1,this._prefixSum=[],this._indexBySum=[]}getTotalSum(){return this._ensureValid(),this._indexBySum.length}getPrefixSum(e){return this._ensureValid(),0===e?0:this._prefixSum[e-1]}getIndexOf(e){this._ensureValid();const t=this._indexBySum[e],i=t>0?this._prefixSum[t-1]:0;return new a(t,e-i)}removeValues(e,t){this._values.splice(e,t),this._invalidate(e)}insertValues(e,t){this._values=(0,n.Zv)(this._values,e,t),this._invalidate(e)}_invalidate(e){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,e-1)}_ensureValid(){if(!this._isValid){for(let e=this._validEndIndex+1,t=this._values.length;e<t;e++){const t=this._values[e],i=e>0?this._prefixSum[e-1]:0;this._prefixSum[e]=i+t;for(let n=0;n<t;n++)this._indexBySum[i+n]=e}this._prefixSum.length=this._values.length,this._indexBySum.length=this._prefixSum[this._prefixSum.length-1],this._isValid=!0,this._validEndIndex=this._values.length-1}}setValue(e,t){this._values[e]!==t&&(this._values[e]=t,this._invalidate(e))}}class a{constructor(e,t){this.index=e,this.remainder=t,this._prefixSumIndexOfResultBrand=void 0,this.index=e,this.remainder=t}}},22529:(e,t,i)=>{"use strict";i.d(t,{HS:()=>Dt,qx:()=>Nt,yO:()=>bt});var n=i(9488),o=i(41264),s=i(17301),r=i(4669),a=i(5976),l=i(97295),c=i(70666),d=i(23795),h=i(83158),u=i(50187),g=i(24314),p=i(3860),m=i(22075),f=i(72042),_=i(4256),v=i(84973);class b{constructor(e,t,i,n){this.range=e,this.nestingLevel=t,this.nestingLevelOfEqualBracketType=i,this.isInvalid=n}}class C extends class{constructor(e,t,i,n,o,s){this.range=e,this.openingBracketRange=t,this.closingBracketRange=i,this.nestingLevel=n,this.nestingLevelOfEqualBracketType=o,this.bracketPairNode=s}get openingBracketInfo(){return this.bracketPairNode.openingBracket.bracketInfo}}{constructor(e,t,i,n,o,s,r){super(e,t,i,n,o,s),this.minVisibleColumnIndentation=r}}var w=i(2442),y=i(35382),S=i(45035),L=i(64837),k=i(61761),x=i(6735);class D extends a.JT{constructor(e,t){if(super(),this.textModel=e,this.getLanguageConfiguration=t,this.didChangeEmitter=new r.Q5,this.denseKeyProvider=new k.FE,this.brackets=new y.Z(this.denseKeyProvider,this.getLanguageConfiguration),this.onDidChange=this.didChangeEmitter.event,0===e.tokenization.backgroundTokenizationState){const e=this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId()),t=new x.g(this.textModel.getValue(),e);this.initialAstWithoutTokens=(0,L.w)(t,[],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens}else 2===e.tokenization.backgroundTokenizationState?(this.initialAstWithoutTokens=void 0,this.astWithTokens=this.parseDocumentFromTextBuffer([],void 0,!1)):1===e.tokenization.backgroundTokenizationState&&(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer([],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens)}didLanguageChange(e){return this.brackets.didLanguageChange(e)}handleDidChangeBackgroundTokenizationState(){if(2===this.textModel.tokenization.backgroundTokenizationState){const e=void 0===this.initialAstWithoutTokens;this.initialAstWithoutTokens=void 0,e||this.didChangeEmitter.fire()}}handleDidChangeTokens({ranges:e}){const t=e.map((e=>new w.Q((0,S.Hg)(e.fromLineNumber-1,0),(0,S.Hg)(e.toLineNumber,0),(0,S.Hg)(e.toLineNumber-e.fromLineNumber+1,0))));this.astWithTokens=this.parseDocumentFromTextBuffer(t,this.astWithTokens,!1),this.initialAstWithoutTokens||this.didChangeEmitter.fire()}handleContentChanged(e){const t=e.changes.map((e=>{const t=g.e.lift(e.range);return new w.Q((0,S.PZ)(t.getStartPosition()),(0,S.PZ)(t.getEndPosition()),(0,S.oR)(e.text))})).reverse();this.astWithTokens=this.parseDocumentFromTextBuffer(t,this.astWithTokens,!1),this.initialAstWithoutTokens&&(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer(t,this.initialAstWithoutTokens,!1))}parseDocumentFromTextBuffer(e,t,i){const n=t,o=new x.xH(this.textModel,this.brackets);return(0,L.w)(o,e,n,i)}getBracketsInRange(e){const t=(0,S.Hg)(e.startLineNumber-1,e.startColumn-1),i=(0,S.Hg)(e.endLineNumber-1,e.endColumn-1),n=new Array,o=this.initialAstWithoutTokens||this.astWithTokens;return I(o,S.xl,o.length,t,i,n,0,new Map),n}getBracketPairsInRange(e,t){const i=new Array,n=(0,S.PZ)(e.getStartPosition()),o=(0,S.PZ)(e.getEndPosition()),s=this.initialAstWithoutTokens||this.astWithTokens,r=new T(i,t,this.textModel);return M(s,S.xl,s.length,n,o,r,0,new Map),i}getFirstBracketAfter(e){const t=this.initialAstWithoutTokens||this.astWithTokens;return E(t,S.xl,t.length,(0,S.PZ)(e))}getFirstBracketBefore(e){const t=this.initialAstWithoutTokens||this.astWithTokens;return N(t,S.xl,t.length,(0,S.PZ)(e))}}function N(e,t,i,n){if(4===e.kind||2===e.kind){const o=[];for(const n of e.children)i=(0,S.Ii)(t,n.length),o.push({nodeOffsetStart:t,nodeOffsetEnd:i}),t=i;for(let t=o.length-1;t>=0;t--){const{nodeOffsetStart:i,nodeOffsetEnd:s}=o[t];if((0,S.VR)(i,n)){const o=N(e.children[t],i,s,n);if(o)return o}}return null}if(3===e.kind)return null;if(1===e.kind){const n=(0,S.Qw)(t,i);return{bracketInfo:e.bracketInfo,range:n}}return null}function E(e,t,i,n){if(4===e.kind||2===e.kind){for(const o of e.children){if(i=(0,S.Ii)(t,o.length),(0,S.VR)(n,i)){const e=E(o,t,i,n);if(e)return e}t=i}return null}if(3===e.kind)return null;if(1===e.kind){const n=(0,S.Qw)(t,i);return{bracketInfo:e.bracketInfo,range:n}}return null}function I(e,t,i,n,o,s,r,a){if(!(r>200))if(4===e.kind)for(const l of e.children)i=(0,S.Ii)(t,l.length),(0,S.By)(t,o)&&(0,S.Zq)(i,n)&&I(l,t,i,n,o,s,r,a),t=i;else if(2===e.kind){let l=0;if(a){let t=a.get(e.openingBracket.text);void 0===t&&(t=0),l=t,t++,a.set(e.openingBracket.text,t)}{const a=e.openingBracket;if(i=(0,S.Ii)(t,a.length),(0,S.By)(t,o)&&(0,S.Zq)(i,n)){const n=(0,S.Qw)(t,i);s.push(new b(n,r,l,!e.closingBracket))}t=i}if(e.child){const l=e.child;i=(0,S.Ii)(t,l.length),(0,S.By)(t,o)&&(0,S.Zq)(i,n)&&I(l,t,i,n,o,s,r+1,a),t=i}if(e.closingBracket){const a=e.closingBracket;if(i=(0,S.Ii)(t,a.length),(0,S.By)(t,o)&&(0,S.Zq)(i,n)){const e=(0,S.Qw)(t,i);s.push(new b(e,r,l,!1))}t=i}null==a||a.set(e.openingBracket.text,l)}else if(3===e.kind){const e=(0,S.Qw)(t,i);s.push(new b(e,r-1,0,!0))}else if(1===e.kind){const e=(0,S.Qw)(t,i);s.push(new b(e,r-1,0,!1))}}class T{constructor(e,t,i){this.result=e,this.includeMinIndentation=t,this.textModel=i}}function M(e,t,i,n,o,s,r,a){var l;if(!(r>200))if(2===e.kind){let c=0;if(a){let t=a.get(e.openingBracket.text);void 0===t&&(t=0),c=t,t++,a.set(e.openingBracket.text,t)}const d=(0,S.Ii)(t,e.openingBracket.length);let h=-1;if(s.includeMinIndentation&&(h=e.computeMinIndentation(t,s.textModel)),s.result.push(new C((0,S.Qw)(t,i),(0,S.Qw)(t,d),e.closingBracket?(0,S.Qw)((0,S.Ii)(d,(null===(l=e.child)||void 0===l?void 0:l.length)||S.xl),i):void 0,r,c,e,h)),t=d,e.child){const l=e.child;i=(0,S.Ii)(t,l.length),(0,S.By)(t,o)&&(0,S.Zq)(i,n)&&M(l,t,i,n,o,s,r+1,a)}null==a||a.set(e.openingBracket.text,c)}else{let i=t;for(const t of e.children){const e=i;i=(0,S.Ii)(i,t.length),(0,S.By)(e,o)&&(0,S.By)(n,i)&&M(t,e,i,n,o,s,r,a)}}}var A=i(19111),R=i(34302);class O extends a.JT{constructor(e,t){super(),this.textModel=e,this.languageConfigurationService=t,this.bracketPairsTree=this._register(new a.XK),this.onDidChangeEmitter=new r.Q5,this.onDidChange=this.onDidChangeEmitter.event,this.bracketsRequested=!1,this._register(this.languageConfigurationService.onDidChange((e=>{var t;e.languageId&&!(null===(t=this.bracketPairsTree.value)||void 0===t?void 0:t.object.didLanguageChange(e.languageId))||(this.bracketPairsTree.clear(),this.updateBracketPairsTree())})))}get canBuildAST(){return this.textModel.getValueLength()<=5e6}handleDidChangeOptions(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeLanguage(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeContent(e){var t;null===(t=this.bracketPairsTree.value)||void 0===t||t.object.handleContentChanged(e)}handleDidChangeBackgroundTokenizationState(){var e;null===(e=this.bracketPairsTree.value)||void 0===e||e.object.handleDidChangeBackgroundTokenizationState()}handleDidChangeTokens(e){var t;null===(t=this.bracketPairsTree.value)||void 0===t||t.object.handleDidChangeTokens(e)}updateBracketPairsTree(){if(this.bracketsRequested&&this.canBuildAST){if(!this.bracketPairsTree.value){const i=new a.SL;this.bracketPairsTree.value=(e=i.add(new D(this.textModel,(e=>this.languageConfigurationService.getLanguageConfiguration(e)))),t=i,{object:e,dispose:()=>null==t?void 0:t.dispose()}),i.add(this.bracketPairsTree.value.object.onDidChange((e=>this.onDidChangeEmitter.fire(e)))),this.onDidChangeEmitter.fire()}}else this.bracketPairsTree.value&&(this.bracketPairsTree.clear(),this.onDidChangeEmitter.fire());var e,t}getBracketPairsInRange(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),(null===(t=this.bracketPairsTree.value)||void 0===t?void 0:t.object.getBracketPairsInRange(e,!1))||[]}getBracketPairsInRangeWithMinIndentation(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),(null===(t=this.bracketPairsTree.value)||void 0===t?void 0:t.object.getBracketPairsInRange(e,!0))||[]}getBracketsInRange(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),(null===(t=this.bracketPairsTree.value)||void 0===t?void 0:t.object.getBracketsInRange(e))||[]}findMatchingBracketUp(e,t,i){const o=this.textModel.validatePosition(t),s=this.textModel.getLanguageIdAtPosition(o.lineNumber,o.column);if(this.canBuildAST){const i=this.languageConfigurationService.getLanguageConfiguration(s).bracketsNew.getClosingBracketInfo(e);if(!i)return null;const o=(0,n.dF)(this.getBracketPairsInRange(g.e.fromPositions(t,t))||[],(e=>i.closes(e.openingBracketInfo)));return o?o.openingBracketRange:null}{const t=e.toLowerCase(),n=this.languageConfigurationService.getLanguageConfiguration(s).brackets;if(!n)return null;const r=n.textIsBracket[t];return r?B(this._findMatchingBracketUp(r,o,P(i))):null}}matchBracket(e,t){if(this.canBuildAST){const t=(0,n.jV)(this.getBracketPairsInRange(g.e.fromPositions(e,e)).filter((t=>void 0!==t.closingBracketRange&&(t.openingBracketRange.containsPosition(e)||t.closingBracketRange.containsPosition(e)))),(0,n.tT)((t=>t.openingBracketRange.containsPosition(e)?t.openingBracketRange:t.closingBracketRange),g.e.compareRangesUsingStarts));return t?[t.openingBracketRange,t.closingBracketRange]:null}{const i=P(t);return this._matchBracket(this.textModel.validatePosition(e),i)}}_establishBracketSearchOffsets(e,t,i,n){const o=t.getCount(),s=t.getLanguageId(n);let r=Math.max(0,e.column-1-i.maxBracketLength);for(let l=n-1;l>=0;l--){const e=t.getEndOffset(l);if(e<=r)break;if((0,A.Bu)(t.getStandardTokenType(l))||t.getLanguageId(l)!==s){r=e;break}}let a=Math.min(t.getLineContent().length,e.column-1+i.maxBracketLength);for(let l=n+1;l<o;l++){const e=t.getStartOffset(l);if(e>=a)break;if((0,A.Bu)(t.getStandardTokenType(l))||t.getLanguageId(l)!==s){a=e;break}}return{searchStartOffset:r,searchEndOffset:a}}_matchBracket(e,t){const i=e.lineNumber,n=this.textModel.tokenization.getLineTokens(i),o=this.textModel.getLineContent(i),s=n.findTokenIndexAtOffset(e.column-1);if(s<0)return null;const r=this.languageConfigurationService.getLanguageConfiguration(n.getLanguageId(s)).brackets;if(r&&!(0,A.Bu)(n.getStandardTokenType(s))){let{searchStartOffset:a,searchEndOffset:l}=this._establishBracketSearchOffsets(e,n,r,s),c=null;for(;;){const n=R.Vr.findNextBracketInRange(r.forwardRegex,i,o,a,l);if(!n)break;if(n.startColumn<=e.column&&e.column<=n.endColumn){const e=o.substring(n.startColumn-1,n.endColumn-1).toLowerCase(),i=this._matchFoundBracket(n,r.textIsBracket[e],r.textIsOpenBracket[e],t);if(i){if(i instanceof F)return null;c=i}}a=n.endColumn-1}if(c)return c}if(s>0&&n.getStartOffset(s)===e.column-1){const r=s-1,a=this.languageConfigurationService.getLanguageConfiguration(n.getLanguageId(r)).brackets;if(a&&!(0,A.Bu)(n.getStandardTokenType(r))){const{searchStartOffset:s,searchEndOffset:l}=this._establishBracketSearchOffsets(e,n,a,r),c=R.Vr.findPrevBracketInRange(a.reversedRegex,i,o,s,l);if(c&&c.startColumn<=e.column&&e.column<=c.endColumn){const e=o.substring(c.startColumn-1,c.endColumn-1).toLowerCase(),i=this._matchFoundBracket(c,a.textIsBracket[e],a.textIsOpenBracket[e],t);if(i)return i instanceof F?null:i}}}return null}_matchFoundBracket(e,t,i,n){if(!t)return null;const o=i?this._findMatchingBracketDown(t,e.getEndPosition(),n):this._findMatchingBracketUp(t,e.getStartPosition(),n);return o?o instanceof F?o:[e,o]:null}_findMatchingBracketUp(e,t,i){const n=e.languageId,o=e.reversedRegex;let s=-1,r=0;const a=(t,n,a,l)=>{for(;;){if(i&&++r%100==0&&!i())return F.INSTANCE;const c=R.Vr.findPrevBracketInRange(o,t,n,a,l);if(!c)break;const d=n.substring(c.startColumn-1,c.endColumn-1).toLowerCase();if(e.isOpen(d)?s++:e.isClose(d)&&s--,0===s)return c;l=c.startColumn-1}return null};for(let l=t.lineNumber;l>=1;l--){const e=this.textModel.tokenization.getLineTokens(l),i=e.getCount(),o=this.textModel.getLineContent(l);let s=i-1,r=o.length,c=o.length;l===t.lineNumber&&(s=e.findTokenIndexAtOffset(t.column-1),r=t.column-1,c=t.column-1);let d=!0;for(;s>=0;s--){const t=e.getLanguageId(s)===n&&!(0,A.Bu)(e.getStandardTokenType(s));if(t)d?r=e.getStartOffset(s):(r=e.getStartOffset(s),c=e.getEndOffset(s));else if(d&&r!==c){const e=a(l,o,r,c);if(e)return e}d=t}if(d&&r!==c){const e=a(l,o,r,c);if(e)return e}}return null}_findMatchingBracketDown(e,t,i){const n=e.languageId,o=e.forwardRegex;let s=1,r=0;const a=(t,n,a,l)=>{for(;;){if(i&&++r%100==0&&!i())return F.INSTANCE;const c=R.Vr.findNextBracketInRange(o,t,n,a,l);if(!c)break;const d=n.substring(c.startColumn-1,c.endColumn-1).toLowerCase();if(e.isOpen(d)?s++:e.isClose(d)&&s--,0===s)return c;a=c.endColumn-1}return null},l=this.textModel.getLineCount();for(let c=t.lineNumber;c<=l;c++){const e=this.textModel.tokenization.getLineTokens(c),i=e.getCount(),o=this.textModel.getLineContent(c);let s=0,r=0,l=0;c===t.lineNumber&&(s=e.findTokenIndexAtOffset(t.column-1),r=t.column-1,l=t.column-1);let d=!0;for(;s<i;s++){const t=e.getLanguageId(s)===n&&!(0,A.Bu)(e.getStandardTokenType(s));if(t)d||(r=e.getStartOffset(s)),l=e.getEndOffset(s);else if(d&&r!==l){const e=a(c,o,r,l);if(e)return e}d=t}if(d&&r!==l){const e=a(c,o,r,l);if(e)return e}}return null}findPrevBracket(e){var t;const i=this.textModel.validatePosition(e);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),(null===(t=this.bracketPairsTree.value)||void 0===t?void 0:t.object.getFirstBracketBefore(i))||null;let n=null,o=null,s=null;for(let r=i.lineNumber;r>=1;r--){const e=this.textModel.tokenization.getLineTokens(r),t=e.getCount(),a=this.textModel.getLineContent(r);let l=t-1,c=a.length,d=a.length;if(r===i.lineNumber){l=e.findTokenIndexAtOffset(i.column-1),c=i.column-1,d=i.column-1;const t=e.getLanguageId(l);n!==t&&(n=t,o=this.languageConfigurationService.getLanguageConfiguration(n).brackets,s=this.languageConfigurationService.getLanguageConfiguration(n).bracketsNew)}let h=!0;for(;l>=0;l--){const t=e.getLanguageId(l);if(n!==t){if(o&&s&&h&&c!==d){const e=R.Vr.findPrevBracketInRange(o.reversedRegex,r,a,c,d);if(e)return this._toFoundBracket(s,e);h=!1}n=t,o=this.languageConfigurationService.getLanguageConfiguration(n).brackets,s=this.languageConfigurationService.getLanguageConfiguration(n).bracketsNew}const i=!!o&&!(0,A.Bu)(e.getStandardTokenType(l));if(i)h?c=e.getStartOffset(l):(c=e.getStartOffset(l),d=e.getEndOffset(l));else if(s&&o&&h&&c!==d){const e=R.Vr.findPrevBracketInRange(o.reversedRegex,r,a,c,d);if(e)return this._toFoundBracket(s,e)}h=i}if(s&&o&&h&&c!==d){const e=R.Vr.findPrevBracketInRange(o.reversedRegex,r,a,c,d);if(e)return this._toFoundBracket(s,e)}}return null}findNextBracket(e){var t;const i=this.textModel.validatePosition(e);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),(null===(t=this.bracketPairsTree.value)||void 0===t?void 0:t.object.getFirstBracketAfter(i))||null;const n=this.textModel.getLineCount();let o=null,s=null,r=null;for(let a=i.lineNumber;a<=n;a++){const e=this.textModel.tokenization.getLineTokens(a),t=e.getCount(),n=this.textModel.getLineContent(a);let l=0,c=0,d=0;if(a===i.lineNumber){l=e.findTokenIndexAtOffset(i.column-1),c=i.column-1,d=i.column-1;const t=e.getLanguageId(l);o!==t&&(o=t,s=this.languageConfigurationService.getLanguageConfiguration(o).brackets,r=this.languageConfigurationService.getLanguageConfiguration(o).bracketsNew)}let h=!0;for(;l<t;l++){const t=e.getLanguageId(l);if(o!==t){if(r&&s&&h&&c!==d){const e=R.Vr.findNextBracketInRange(s.forwardRegex,a,n,c,d);if(e)return this._toFoundBracket(r,e);h=!1}o=t,s=this.languageConfigurationService.getLanguageConfiguration(o).brackets,r=this.languageConfigurationService.getLanguageConfiguration(o).bracketsNew}const i=!!s&&!(0,A.Bu)(e.getStandardTokenType(l));if(i)h||(c=e.getStartOffset(l)),d=e.getEndOffset(l);else if(r&&s&&h&&c!==d){const e=R.Vr.findNextBracketInRange(s.forwardRegex,a,n,c,d);if(e)return this._toFoundBracket(r,e)}h=i}if(r&&s&&h&&c!==d){const e=R.Vr.findNextBracketInRange(s.forwardRegex,a,n,c,d);if(e)return this._toFoundBracket(r,e)}}return null}findEnclosingBrackets(e,t){const i=this.textModel.validatePosition(e);if(this.canBuildAST){const e=g.e.fromPositions(i),t=(0,n.dF)(this.getBracketPairsInRange(g.e.fromPositions(i,i)),(t=>void 0!==t.closingBracketRange&&t.range.strictContainsRange(e)));return t?[t.openingBracketRange,t.closingBracketRange]:null}const o=P(t),s=this.textModel.getLineCount(),r=new Map;let a=[];const l=(e,t)=>{if(!r.has(e)){const i=[];for(let e=0,n=t?t.brackets.length:0;e<n;e++)i[e]=0;r.set(e,i)}a=r.get(e)};let c=0;const d=(e,t,i,n,s)=>{for(;;){if(o&&++c%100==0&&!o())return F.INSTANCE;const r=R.Vr.findNextBracketInRange(e.forwardRegex,t,i,n,s);if(!r)break;const l=i.substring(r.startColumn-1,r.endColumn-1).toLowerCase(),d=e.textIsBracket[l];if(d&&(d.isOpen(l)?a[d.index]++:d.isClose(l)&&a[d.index]--,-1===a[d.index]))return this._matchFoundBracket(r,d,!1,o);n=r.endColumn-1}return null};let h=null,u=null;for(let n=i.lineNumber;n<=s;n++){const e=this.textModel.tokenization.getLineTokens(n),t=e.getCount(),o=this.textModel.getLineContent(n);let s=0,r=0,a=0;if(n===i.lineNumber){s=e.findTokenIndexAtOffset(i.column-1),r=i.column-1,a=i.column-1;const t=e.getLanguageId(s);h!==t&&(h=t,u=this.languageConfigurationService.getLanguageConfiguration(h).brackets,l(h,u))}let c=!0;for(;s<t;s++){const t=e.getLanguageId(s);if(h!==t){if(u&&c&&r!==a){const e=d(u,n,o,r,a);if(e)return B(e);c=!1}h=t,u=this.languageConfigurationService.getLanguageConfiguration(h).brackets,l(h,u)}const i=!!u&&!(0,A.Bu)(e.getStandardTokenType(s));if(i)c||(r=e.getStartOffset(s)),a=e.getEndOffset(s);else if(u&&c&&r!==a){const e=d(u,n,o,r,a);if(e)return B(e)}c=i}if(u&&c&&r!==a){const e=d(u,n,o,r,a);if(e)return B(e)}}return null}_toFoundBracket(e,t){if(!t)return null;let i=this.textModel.getValueInRange(t);i=i.toLowerCase();const n=e.getBracketInfo(i);return n?{range:t,bracketInfo:n}:null}}function P(e){if(void 0===e)return()=>!0;{const t=Date.now();return()=>Date.now()-t<=e}}class F{constructor(){this._searchCanceledBrand=void 0}}function B(e){return e instanceof F?null:e}F.INSTANCE=new F;var V=i(8625),W=i(97781);class H extends a.JT{constructor(e){super(),this.textModel=e,this.colorProvider=new z,this.onDidChangeEmitter=new r.Q5,this.onDidChange=this.onDidChangeEmitter.event,this.colorizationOptions=e.getOptions().bracketPairColorizationOptions,this._register(e.bracketPairs.onDidChange((e=>{this.onDidChangeEmitter.fire()})))}handleDidChangeOptions(e){this.colorizationOptions=this.textModel.getOptions().bracketPairColorizationOptions}getDecorationsInRange(e,t,i){if(void 0===t)return[];if(!this.colorizationOptions.enabled)return[];const n=new Array,o=this.textModel.bracketPairs.getBracketsInRange(e);for(const s of o)n.push({id:`bracket${s.range.toString()}-${s.nestingLevel}`,options:{description:"BracketPairColorization",inlineClassName:this.colorProvider.getInlineClassName(s,this.colorizationOptions.independentColorPoolPerBracketType)},ownerId:0,range:s.range});return n}getAllDecorations(e,t){return void 0===e?[]:this.colorizationOptions.enabled?this.getDecorationsInRange(new g.e(1,1,this.textModel.getLineCount(),1),e,t):[]}}class z{constructor(){this.unexpectedClosingBracketClassName="unexpected-closing-bracket"}getInlineClassName(e,t){return e.isInvalid?this.unexpectedClosingBracketClassName:this.getInlineClassNameOfLevel(t?e.nestingLevelOfEqualBracketType:e.nestingLevel)}getInlineClassNameOfLevel(e){return"bracket-highlighting-"+e%30}}(0,W.Ic)(((e,t)=>{const i=[V.zJ,V.Vs,V.CE,V.UP,V.r0,V.m1],n=new z;t.addRule(`.monaco-editor .${n.unexpectedClosingBracketClassName} { color: ${e.getColor(V.ts)}; }`);const o=i.map((t=>e.getColor(t))).filter((e=>!!e)).filter((e=>!e.isTransparent()));for(let s=0;s<30;s++){const e=o[s%o.length];t.addRule(`.monaco-editor .${n.getInlineClassNameOfLevel(s)} { color: ${e}; }`)}}));var j=i(95215),U=i(1516);class K{constructor(){this.spacesDiff=0,this.looksLikeAlignment=!1}}function $(e,t,i,n,o){let s;for(o.spacesDiff=0,o.looksLikeAlignment=!1,s=0;s<t&&s<n;s++){if(e.charCodeAt(s)!==i.charCodeAt(s))break}let r=0,a=0;for(let u=s;u<t;u++){32===e.charCodeAt(u)?r++:a++}let l=0,c=0;for(let u=s;u<n;u++){32===i.charCodeAt(u)?l++:c++}if(r>0&&a>0)return;if(l>0&&c>0)return;const d=Math.abs(a-c),h=Math.abs(r-l);if(0===d)return o.spacesDiff=h,void(h>0&&0<=l-1&&l-1<e.length&&l<i.length&&32!==i.charCodeAt(l)&&32===e.charCodeAt(l-1)&&44===e.charCodeAt(e.length-1)&&(o.looksLikeAlignment=!0));h%d!=0||(o.spacesDiff=h/d)}function q(e,t,i){const n=Math.min(e.getLineCount(),1e4);let o=0,s=0,r="",a=0;const l=[2,4,6,8,3,5,7],c=[0,0,0,0,0,0,0,0,0],d=new K;for(let g=1;g<=n;g++){const n=e.getLineLength(g),l=e.getLineContent(g),h=n<=65536;let u=!1,p=0,m=0,f=0;for(let t=0,i=n;t<i;t++){const i=h?l.charCodeAt(t):e.getLineCharCode(g,t);if(9===i)f++;else{if(32!==i){u=!0,p=t;break}m++}}if(!u)continue;if(f>0?o++:m>1&&s++,$(r,a,l,p,d),d.looksLikeAlignment&&(!i||t!==d.spacesDiff))continue;const _=d.spacesDiff;_<=8&&c[_]++,r=l,a=p}let h=i;o!==s&&(h=o<s);let u=t;if(h){let e=h?0:.1*n;l.forEach((t=>{const i=c[t];i>e&&(e=i,u=t)})),4===u&&c[4]>0&&c[2]>0&&c[2]>=c[4]/2&&(u=2)}return{insertSpaces:h,tabSize:u}}function G(e){return(1&e.metadata)>>>0}function Q(e,t){e.metadata=254&e.metadata|t<<0}function Z(e){return(2&e.metadata)>>>1==1}function Y(e,t){e.metadata=253&e.metadata|(t?1:0)<<1}function J(e){return(4&e.metadata)>>>2==1}function X(e,t){e.metadata=251&e.metadata|(t?1:0)<<2}function ee(e,t){e.metadata=231&e.metadata|t<<3}function te(e,t){e.metadata=223&e.metadata|(t?1:0)<<5}class ie{constructor(e,t,i){this.metadata=0,this.parent=this,this.left=this,this.right=this,Q(this,1),this.start=t,this.end=i,this.delta=0,this.maxEnd=i,this.id=e,this.ownerId=0,this.options=null,X(this,!1),ee(this,1),te(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i,this.range=null,Y(this,!1)}reset(e,t,i,n){this.start=t,this.end=i,this.maxEnd=i,this.cachedVersionId=e,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i,this.range=n}setOptions(e){this.options=e;const t=this.options.className;X(this,"squiggly-error"===t||"squiggly-warning"===t||"squiggly-info"===t),ee(this,this.options.stickiness),te(this,this.options.collapseOnReplaceEdit)}setCachedOffsets(e,t,i){this.cachedVersionId!==i&&(this.range=null),this.cachedVersionId=i,this.cachedAbsoluteStart=e,this.cachedAbsoluteEnd=t}detach(){this.parent=null,this.left=null,this.right=null}}const ne=new ie(null,0,0);ne.parent=ne,ne.left=ne,ne.right=ne,Q(ne,0);class oe{constructor(){this.root=ne,this.requestNormalizeDelta=!1}intervalSearch(e,t,i,n,o){return this.root===ne?[]:function(e,t,i,n,o,s){let r=e.root,a=0,l=0,c=0,d=0;const h=[];let u=0;for(;r!==ne;)if(Z(r))Y(r.left,!1),Y(r.right,!1),r===r.parent.right&&(a-=r.parent.delta),r=r.parent;else{if(!Z(r.left)){if(l=a+r.maxEnd,l<t){Y(r,!0);continue}if(r.left!==ne){r=r.left;continue}}if(c=a+r.start,c>i)Y(r,!0);else{if(d=a+r.end,d>=t){r.setCachedOffsets(c,d,s);let e=!0;n&&r.ownerId&&r.ownerId!==n&&(e=!1),o&&J(r)&&(e=!1),e&&(h[u++]=r)}Y(r,!0),r.right===ne||Z(r.right)||(a+=r.delta,r=r.right)}}return Y(e.root,!1),h}(this,e,t,i,n,o)}search(e,t,i){return this.root===ne?[]:function(e,t,i,n){let o=e.root,s=0,r=0,a=0;const l=[];let c=0;for(;o!==ne;){if(Z(o)){Y(o.left,!1),Y(o.right,!1),o===o.parent.right&&(s-=o.parent.delta),o=o.parent;continue}if(o.left!==ne&&!Z(o.left)){o=o.left;continue}r=s+o.start,a=s+o.end,o.setCachedOffsets(r,a,n);let e=!0;t&&o.ownerId&&o.ownerId!==t&&(e=!1),i&&J(o)&&(e=!1),e&&(l[c++]=o),Y(o,!0),o.right===ne||Z(o.right)||(s+=o.delta,o=o.right)}return Y(e.root,!1),l}(this,e,t,i)}collectNodesFromOwner(e){return function(e,t){let i=e.root;const n=[];let o=0;for(;i!==ne;)Z(i)?(Y(i.left,!1),Y(i.right,!1),i=i.parent):i.left===ne||Z(i.left)?(i.ownerId===t&&(n[o++]=i),Y(i,!0),i.right===ne||Z(i.right)||(i=i.right)):i=i.left;return Y(e.root,!1),n}(this,e)}collectNodesPostOrder(){return function(e){let t=e.root;const i=[];let n=0;for(;t!==ne;)Z(t)?(Y(t.left,!1),Y(t.right,!1),t=t.parent):t.left===ne||Z(t.left)?t.right===ne||Z(t.right)?(i[n++]=t,Y(t,!0)):t=t.right:t=t.left;return Y(e.root,!1),i}(this)}insert(e){ae(this,e),this._normalizeDeltaIfNecessary()}delete(e){le(this,e),this._normalizeDeltaIfNecessary()}resolveNode(e,t){const i=e;let n=0;for(;e!==this.root;)e===e.parent.right&&(n+=e.parent.delta),e=e.parent;const o=i.start+n,s=i.end+n;i.setCachedOffsets(o,s,t)}acceptReplace(e,t,i,n){const o=function(e,t,i){let n=e.root,o=0,s=0,r=0,a=0;const l=[];let c=0;for(;n!==ne;)if(Z(n))Y(n.left,!1),Y(n.right,!1),n===n.parent.right&&(o-=n.parent.delta),n=n.parent;else{if(!Z(n.left)){if(s=o+n.maxEnd,s<t){Y(n,!0);continue}if(n.left!==ne){n=n.left;continue}}r=o+n.start,r>i?Y(n,!0):(a=o+n.end,a>=t&&(n.setCachedOffsets(r,a,0),l[c++]=n),Y(n,!0),n.right===ne||Z(n.right)||(o+=n.delta,n=n.right))}return Y(e.root,!1),l}(this,e,e+t);for(let s=0,r=o.length;s<r;s++){le(this,o[s])}this._normalizeDeltaIfNecessary(),function(e,t,i,n){let o=e.root,s=0,r=0,a=0;const l=n-(i-t);for(;o!==ne;)if(Z(o))Y(o.left,!1),Y(o.right,!1),o===o.parent.right&&(s-=o.parent.delta),ge(o),o=o.parent;else{if(!Z(o.left)){if(r=s+o.maxEnd,r<t){Y(o,!0);continue}if(o.left!==ne){o=o.left;continue}}a=s+o.start,a>i?(o.start+=l,o.end+=l,o.delta+=l,(o.delta<-1073741824||o.delta>1073741824)&&(e.requestNormalizeDelta=!0),Y(o,!0)):(Y(o,!0),o.right===ne||Z(o.right)||(s+=o.delta,o=o.right))}Y(e.root,!1)}(this,e,e+t,i),this._normalizeDeltaIfNecessary();for(let s=0,r=o.length;s<r;s++){const r=o[s];r.start=r.cachedAbsoluteStart,r.end=r.cachedAbsoluteEnd,re(r,e,e+t,i,n),r.maxEnd=r.end,ae(this,r)}this._normalizeDeltaIfNecessary()}_normalizeDeltaIfNecessary(){this.requestNormalizeDelta&&(this.requestNormalizeDelta=!1,function(e){let t=e.root,i=0;for(;t!==ne;)t.left===ne||Z(t.left)?t.right===ne||Z(t.right)?(t.start=i+t.start,t.end=i+t.end,t.delta=0,ge(t),Y(t,!0),Y(t.left,!1),Y(t.right,!1),t===t.parent.right&&(i-=t.parent.delta),t=t.parent):(i+=t.delta,t=t.right):t=t.left;Y(e.root,!1)}(this))}}function se(e,t,i,n){return e<i||!(e>i)&&(1!==n&&(2===n||t))}function re(e,t,i,n,o){const s=function(e){return(24&e.metadata)>>>3}(e),r=0===s||2===s,a=1===s||2===s,l=i-t,c=n,d=Math.min(l,c),h=e.start;let u=!1;const g=e.end;let p=!1;t<=h&&g<=i&&function(e){return(32&e.metadata)>>>5==1}(e)&&(e.start=t,u=!0,e.end=t,p=!0);{const e=o?1:l>0?2:0;!u&&se(h,r,t,e)&&(u=!0),!p&&se(g,a,t,e)&&(p=!0)}if(d>0&&!o){const e=l>c?2:0;!u&&se(h,r,t+d,e)&&(u=!0),!p&&se(g,a,t+d,e)&&(p=!0)}{const n=o?1:0;!u&&se(h,r,i,n)&&(e.start=t+c,u=!0),!p&&se(g,a,i,n)&&(e.end=t+c,p=!0)}const m=c-l;u||(e.start=Math.max(0,h+m)),p||(e.end=Math.max(0,g+m)),e.start>e.end&&(e.end=e.start)}function ae(e,t){if(e.root===ne)return t.parent=ne,t.left=ne,t.right=ne,Q(t,0),e.root=t,e.root;!function(e,t){let i=0,n=e.root;const o=t.start,s=t.end;for(;;){if(me(o,s,n.start+i,n.end+i)<0){if(n.left===ne){t.start-=i,t.end-=i,t.maxEnd-=i,n.left=t;break}n=n.left}else{if(n.right===ne){t.start-=i+n.delta,t.end-=i+n.delta,t.maxEnd-=i+n.delta,n.right=t;break}i+=n.delta,n=n.right}}t.parent=n,t.left=ne,t.right=ne,Q(t,1)}(e,t),pe(t.parent);let i=t;for(;i!==e.root&&1===G(i.parent);)if(i.parent===i.parent.parent.left){const t=i.parent.parent.right;1===G(t)?(Q(i.parent,0),Q(t,0),Q(i.parent.parent,1),i=i.parent.parent):(i===i.parent.right&&(i=i.parent,de(e,i)),Q(i.parent,0),Q(i.parent.parent,1),he(e,i.parent.parent))}else{const t=i.parent.parent.left;1===G(t)?(Q(i.parent,0),Q(t,0),Q(i.parent.parent,1),i=i.parent.parent):(i===i.parent.left&&(i=i.parent,he(e,i)),Q(i.parent,0),Q(i.parent.parent,1),de(e,i.parent.parent))}return Q(e.root,0),t}function le(e,t){let i,n;if(t.left===ne?(i=t.right,n=t,i.delta+=t.delta,(i.delta<-1073741824||i.delta>1073741824)&&(e.requestNormalizeDelta=!0),i.start+=t.delta,i.end+=t.delta):t.right===ne?(i=t.left,n=t):(n=function(e){for(;e.left!==ne;)e=e.left;return e}(t.right),i=n.right,i.start+=n.delta,i.end+=n.delta,i.delta+=n.delta,(i.delta<-1073741824||i.delta>1073741824)&&(e.requestNormalizeDelta=!0),n.start+=t.delta,n.end+=t.delta,n.delta=t.delta,(n.delta<-1073741824||n.delta>1073741824)&&(e.requestNormalizeDelta=!0)),n===e.root)return e.root=i,Q(i,0),t.detach(),ce(),ge(i),void(e.root.parent=ne);const o=1===G(n);if(n===n.parent.left?n.parent.left=i:n.parent.right=i,n===t?i.parent=n.parent:(n.parent===t?i.parent=n:i.parent=n.parent,n.left=t.left,n.right=t.right,n.parent=t.parent,Q(n,G(t)),t===e.root?e.root=n:t===t.parent.left?t.parent.left=n:t.parent.right=n,n.left!==ne&&(n.left.parent=n),n.right!==ne&&(n.right.parent=n)),t.detach(),o)return pe(i.parent),n!==t&&(pe(n),pe(n.parent)),void ce();let s;for(pe(i),pe(i.parent),n!==t&&(pe(n),pe(n.parent));i!==e.root&&0===G(i);)i===i.parent.left?(s=i.parent.right,1===G(s)&&(Q(s,0),Q(i.parent,1),de(e,i.parent),s=i.parent.right),0===G(s.left)&&0===G(s.right)?(Q(s,1),i=i.parent):(0===G(s.right)&&(Q(s.left,0),Q(s,1),he(e,s),s=i.parent.right),Q(s,G(i.parent)),Q(i.parent,0),Q(s.right,0),de(e,i.parent),i=e.root)):(s=i.parent.left,1===G(s)&&(Q(s,0),Q(i.parent,1),he(e,i.parent),s=i.parent.left),0===G(s.left)&&0===G(s.right)?(Q(s,1),i=i.parent):(0===G(s.left)&&(Q(s.right,0),Q(s,1),de(e,s),s=i.parent.left),Q(s,G(i.parent)),Q(i.parent,0),Q(s.left,0),he(e,i.parent),i=e.root));Q(i,0),ce()}function ce(){ne.parent=ne,ne.delta=0,ne.start=0,ne.end=0}function de(e,t){const i=t.right;i.delta+=t.delta,(i.delta<-1073741824||i.delta>1073741824)&&(e.requestNormalizeDelta=!0),i.start+=t.delta,i.end+=t.delta,t.right=i.left,i.left!==ne&&(i.left.parent=t),i.parent=t.parent,t.parent===ne?e.root=i:t===t.parent.left?t.parent.left=i:t.parent.right=i,i.left=t,t.parent=i,ge(t),ge(i)}function he(e,t){const i=t.left;t.delta-=i.delta,(t.delta<-1073741824||t.delta>1073741824)&&(e.requestNormalizeDelta=!0),t.start-=i.delta,t.end-=i.delta,t.left=i.right,i.right!==ne&&(i.right.parent=t),i.parent=t.parent,t.parent===ne?e.root=i:t===t.parent.right?t.parent.right=i:t.parent.left=i,i.right=t,t.parent=i,ge(t),ge(i)}function ue(e){let t=e.end;if(e.left!==ne){const i=e.left.maxEnd;i>t&&(t=i)}if(e.right!==ne){const i=e.right.maxEnd+e.delta;i>t&&(t=i)}return t}function ge(e){e.maxEnd=ue(e)}function pe(e){for(;e!==ne;){const t=ue(e);if(e.maxEnd===t)return;e.maxEnd=t,e=e.parent}}function me(e,t,i,n){return e===i?t-n:e-i}class fe{constructor(e,t){this.piece=e,this.color=t,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}next(){if(this.right!==_e)return ve(this.right);let e=this;for(;e.parent!==_e&&e.parent.left!==e;)e=e.parent;return e.parent===_e?_e:e.parent}prev(){if(this.left!==_e)return be(this.left);let e=this;for(;e.parent!==_e&&e.parent.right!==e;)e=e.parent;return e.parent===_e?_e:e.parent}detach(){this.parent=null,this.left=null,this.right=null}}const _e=new fe(null,0);function ve(e){for(;e.left!==_e;)e=e.left;return e}function be(e){for(;e.right!==_e;)e=e.right;return e}function Ce(e){return e===_e?0:e.size_left+e.piece.length+Ce(e.right)}function we(e){return e===_e?0:e.lf_left+e.piece.lineFeedCnt+we(e.right)}function ye(){_e.parent=_e}function Se(e,t){const i=t.right;i.size_left+=t.size_left+(t.piece?t.piece.length:0),i.lf_left+=t.lf_left+(t.piece?t.piece.lineFeedCnt:0),t.right=i.left,i.left!==_e&&(i.left.parent=t),i.parent=t.parent,t.parent===_e?e.root=i:t.parent.left===t?t.parent.left=i:t.parent.right=i,i.left=t,t.parent=i}function Le(e,t){const i=t.left;t.left=i.right,i.right!==_e&&(i.right.parent=t),i.parent=t.parent,t.size_left-=i.size_left+(i.piece?i.piece.length:0),t.lf_left-=i.lf_left+(i.piece?i.piece.lineFeedCnt:0),t.parent===_e?e.root=i:t===t.parent.right?t.parent.right=i:t.parent.left=i,i.right=t,t.parent=i}function ke(e,t){let i,n;if(t.left===_e?(n=t,i=n.right):t.right===_e?(n=t,i=n.left):(n=ve(t.right),i=n.right),n===e.root)return e.root=i,i.color=0,t.detach(),ye(),void(e.root.parent=_e);const o=1===n.color;if(n===n.parent.left?n.parent.left=i:n.parent.right=i,n===t?(i.parent=n.parent,Ne(e,i)):(n.parent===t?i.parent=n:i.parent=n.parent,Ne(e,i),n.left=t.left,n.right=t.right,n.parent=t.parent,n.color=t.color,t===e.root?e.root=n:t===t.parent.left?t.parent.left=n:t.parent.right=n,n.left!==_e&&(n.left.parent=n),n.right!==_e&&(n.right.parent=n),n.size_left=t.size_left,n.lf_left=t.lf_left,Ne(e,n)),t.detach(),i.parent.left===i){const t=Ce(i),n=we(i);if(t!==i.parent.size_left||n!==i.parent.lf_left){const o=t-i.parent.size_left,s=n-i.parent.lf_left;i.parent.size_left=t,i.parent.lf_left=n,De(e,i.parent,o,s)}}if(Ne(e,i.parent),o)return void ye();let s;for(;i!==e.root&&0===i.color;)i===i.parent.left?(s=i.parent.right,1===s.color&&(s.color=0,i.parent.color=1,Se(e,i.parent),s=i.parent.right),0===s.left.color&&0===s.right.color?(s.color=1,i=i.parent):(0===s.right.color&&(s.left.color=0,s.color=1,Le(e,s),s=i.parent.right),s.color=i.parent.color,i.parent.color=0,s.right.color=0,Se(e,i.parent),i=e.root)):(s=i.parent.left,1===s.color&&(s.color=0,i.parent.color=1,Le(e,i.parent),s=i.parent.left),0===s.left.color&&0===s.right.color?(s.color=1,i=i.parent):(0===s.left.color&&(s.right.color=0,s.color=1,Se(e,s),s=i.parent.left),s.color=i.parent.color,i.parent.color=0,s.left.color=0,Le(e,i.parent),i=e.root));i.color=0,ye()}function xe(e,t){for(Ne(e,t);t!==e.root&&1===t.parent.color;)if(t.parent===t.parent.parent.left){const i=t.parent.parent.right;1===i.color?(t.parent.color=0,i.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.right&&Se(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,Le(e,t.parent.parent))}else{const i=t.parent.parent.left;1===i.color?(t.parent.color=0,i.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.left&&Le(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,Se(e,t.parent.parent))}e.root.color=0}function De(e,t,i,n){for(;t!==e.root&&t!==_e;)t.parent.left===t&&(t.parent.size_left+=i,t.parent.lf_left+=n),t=t.parent}function Ne(e,t){let i=0,n=0;if(t!==e.root){for(;t!==e.root&&t===t.parent.right;)t=t.parent;if(t!==e.root)for(i=Ce((t=t.parent).left)-t.size_left,n=we(t.left)-t.lf_left,t.size_left+=i,t.lf_left+=n;t!==e.root&&(0!==i||0!==n);)t.parent.left===t&&(t.parent.size_left+=i,t.parent.lf_left+=n),t=t.parent}}_e.parent=_e,_e.left=_e,_e.right=_e,_e.color=0;var Ee=i(77277);const Ie=65535;function Te(e){let t;return t=e[e.length-1]<65536?new Uint16Array(e.length):new Uint32Array(e.length),t.set(e,0),t}class Me{constructor(e,t,i,n,o){this.lineStarts=e,this.cr=t,this.lf=i,this.crlf=n,this.isBasicASCII=o}}function Ae(e,t=!0){const i=[0];let n=1;for(let o=0,s=e.length;o<s;o++){const t=e.charCodeAt(o);13===t?o+1<s&&10===e.charCodeAt(o+1)?(i[n++]=o+2,o++):i[n++]=o+1:10===t&&(i[n++]=o+1)}return t?Te(i):i}class Re{constructor(e,t,i,n,o){this.bufferIndex=e,this.start=t,this.end=i,this.lineFeedCnt=n,this.length=o}}class Oe{constructor(e,t){this.buffer=e,this.lineStarts=t}}class Pe{constructor(e,t){this._pieces=[],this._tree=e,this._BOM=t,this._index=0,e.root!==_e&&e.iterate(e.root,(e=>(e!==_e&&this._pieces.push(e.piece),!0)))}read(){return 0===this._pieces.length?0===this._index?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:0===this._index?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}}class Fe{constructor(e){this._limit=e,this._cache=[]}get(e){for(let t=this._cache.length-1;t>=0;t--){const i=this._cache[t];if(i.nodeStartOffset<=e&&i.nodeStartOffset+i.node.piece.length>=e)return i}return null}get2(e){for(let t=this._cache.length-1;t>=0;t--){const i=this._cache[t];if(i.nodeStartLineNumber&&i.nodeStartLineNumber<e&&i.nodeStartLineNumber+i.node.piece.lineFeedCnt>=e)return i}return null}set(e){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(e)}validate(e){let t=!1;const i=this._cache;for(let n=0;n<i.length;n++){const o=i[n];(null===o.node.parent||o.nodeStartOffset>=e)&&(i[n]=null,t=!0)}if(t){const e=[];for(const t of i)null!==t&&e.push(t);this._cache=e}}}class Be{constructor(e,t,i){this.create(e,t,i)}create(e,t,i){this._buffers=[new Oe("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=_e,this._lineCnt=1,this._length=0,this._EOL=t,this._EOLLength=t.length,this._EOLNormalized=i;let n=null;for(let o=0,s=e.length;o<s;o++)if(e[o].buffer.length>0){e[o].lineStarts||(e[o].lineStarts=Ae(e[o].buffer));const t=new Re(o+1,{line:0,column:0},{line:e[o].lineStarts.length-1,column:e[o].buffer.length-e[o].lineStarts[e[o].lineStarts.length-1]},e[o].lineStarts.length-1,e[o].buffer.length);this._buffers.push(e[o]),n=this.rbInsertRight(n,t)}this._searchCache=new Fe(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(e){const t=65535-Math.floor(21845),i=2*t;let n="",o=0;const s=[];if(this.iterate(this.root,(r=>{const a=this.getNodeContent(r),l=a.length;if(o<=t||o+l<i)return n+=a,o+=l,!0;const c=n.replace(/\r\n|\r|\n/g,e);return s.push(new Oe(c,Ae(c))),n=a,o=l,!0})),o>0){const t=n.replace(/\r\n|\r|\n/g,e);s.push(new Oe(t,Ae(t)))}this.create(s,e,!0)}getEOL(){return this._EOL}setEOL(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)}createSnapshot(e){return new Pe(this,e)}getOffsetAt(e,t){let i=0,n=this.root;for(;n!==_e;)if(n.left!==_e&&n.lf_left+1>=e)n=n.left;else{if(n.lf_left+n.piece.lineFeedCnt+1>=e){i+=n.size_left;return i+(this.getAccumulatedValue(n,e-n.lf_left-2)+t-1)}e-=n.lf_left+n.piece.lineFeedCnt,i+=n.size_left+n.piece.length,n=n.right}return i}getPositionAt(e){e=Math.floor(e),e=Math.max(0,e);let t=this.root,i=0;const n=e;for(;t!==_e;)if(0!==t.size_left&&t.size_left>=e)t=t.left;else{if(t.size_left+t.piece.length>=e){const o=this.getIndexOf(t,e-t.size_left);if(i+=t.lf_left+o.index,0===o.index){const e=n-this.getOffsetAt(i+1,1);return new u.L(i+1,e+1)}return new u.L(i+1,o.remainder+1)}if(e-=t.size_left+t.piece.length,i+=t.lf_left+t.piece.lineFeedCnt,t.right===_e){const t=n-e-this.getOffsetAt(i+1,1);return new u.L(i+1,t+1)}t=t.right}return new u.L(1,1)}getValueInRange(e,t){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return"";const i=this.nodeAt2(e.startLineNumber,e.startColumn),n=this.nodeAt2(e.endLineNumber,e.endColumn),o=this.getValueInRange2(i,n);return t?t===this._EOL&&this._EOLNormalized&&t===this.getEOL()&&this._EOLNormalized?o:o.replace(/\r\n|\r|\n/g,t):o}getValueInRange2(e,t){if(e.node===t.node){const i=e.node,n=this._buffers[i.piece.bufferIndex].buffer,o=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return n.substring(o+e.remainder,o+t.remainder)}let i=e.node;const n=this._buffers[i.piece.bufferIndex].buffer,o=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);let s=n.substring(o+e.remainder,o+i.piece.length);for(i=i.next();i!==_e;){const e=this._buffers[i.piece.bufferIndex].buffer,n=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);if(i===t.node){s+=e.substring(n,n+t.remainder);break}s+=e.substr(n,i.piece.length),i=i.next()}return s}getLinesContent(){const e=[];let t=0,i="",n=!1;return this.iterate(this.root,(o=>{if(o===_e)return!0;const s=o.piece;let r=s.length;if(0===r)return!0;const a=this._buffers[s.bufferIndex].buffer,l=this._buffers[s.bufferIndex].lineStarts,c=s.start.line,d=s.end.line;let h=l[c]+s.start.column;if(n&&(10===a.charCodeAt(h)&&(h++,r--),e[t++]=i,i="",n=!1,0===r))return!0;if(c===d)return this._EOLNormalized||13!==a.charCodeAt(h+r-1)?i+=a.substr(h,r):(n=!0,i+=a.substr(h,r-1)),!0;i+=this._EOLNormalized?a.substring(h,Math.max(h,l[c+1]-this._EOLLength)):a.substring(h,l[c+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=i;for(let n=c+1;n<d;n++)i=this._EOLNormalized?a.substring(l[n],l[n+1]-this._EOLLength):a.substring(l[n],l[n+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=i;return this._EOLNormalized||13!==a.charCodeAt(l[d]+s.end.column-1)?i=a.substr(l[d],s.end.column):(n=!0,0===s.end.column?t--:i=a.substr(l[d],s.end.column-1)),!0})),n&&(e[t++]=i,i=""),e[t++]=i,e}getLength(){return this._length}getLineCount(){return this._lineCnt}getLineContent(e){return this._lastVisitedLine.lineNumber===e||(this._lastVisitedLine.lineNumber=e,e===this._lineCnt?this._lastVisitedLine.value=this.getLineRawContent(e):this._EOLNormalized?this._lastVisitedLine.value=this.getLineRawContent(e,this._EOLLength):this._lastVisitedLine.value=this.getLineRawContent(e).replace(/(\r\n|\r|\n)$/,"")),this._lastVisitedLine.value}_getCharCode(e){if(e.remainder===e.node.piece.length){const t=e.node.next();if(!t)return 0;const i=this._buffers[t.piece.bufferIndex],n=this.offsetInBuffer(t.piece.bufferIndex,t.piece.start);return i.buffer.charCodeAt(n)}{const t=this._buffers[e.node.piece.bufferIndex],i=this.offsetInBuffer(e.node.piece.bufferIndex,e.node.piece.start)+e.remainder;return t.buffer.charCodeAt(i)}}getLineCharCode(e,t){const i=this.nodeAt2(e,t+1);return this._getCharCode(i)}getLineLength(e){if(e===this.getLineCount()){const t=this.getOffsetAt(e,1);return this.getLength()-t}return this.getOffsetAt(e+1,1)-this.getOffsetAt(e,1)-this._EOLLength}findMatchesInNode(e,t,i,n,o,s,r,a,l,c,d){const h=this._buffers[e.piece.bufferIndex],u=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start),p=this.offsetInBuffer(e.piece.bufferIndex,o),m=this.offsetInBuffer(e.piece.bufferIndex,s);let f;const _={line:0,column:0};let v,b;t._wordSeparators?(v=h.buffer.substring(p,m),b=e=>e+p,t.reset(0)):(v=h.buffer,b=e=>e,t.reset(p));do{if(f=t.next(v),f){if(b(f.index)>=m)return c;this.positionInBuffer(e,b(f.index)-u,_);const t=this.getLineFeedCnt(e.piece.bufferIndex,o,_),s=_.line===o.line?_.column-o.column+n:_.column+1,r=s+f[0].length;if(d[c++]=(0,Ee.iE)(new g.e(i+t,s,i+t,r),f,a),b(f.index)+f[0].length>=m)return c;if(c>=l)return c}}while(f);return c}findMatchesLineByLine(e,t,i,n){const o=[];let s=0;const r=new Ee.sz(t.wordSeparators,t.regex);let a=this.nodeAt2(e.startLineNumber,e.startColumn);if(null===a)return[];const l=this.nodeAt2(e.endLineNumber,e.endColumn);if(null===l)return[];let c=this.positionInBuffer(a.node,a.remainder);const d=this.positionInBuffer(l.node,l.remainder);if(a.node===l.node)return this.findMatchesInNode(a.node,r,e.startLineNumber,e.startColumn,c,d,t,i,n,s,o),o;let h=e.startLineNumber,u=a.node;for(;u!==l.node;){const l=this.getLineFeedCnt(u.piece.bufferIndex,c,u.piece.end);if(l>=1){const a=this._buffers[u.piece.bufferIndex].lineStarts,d=this.offsetInBuffer(u.piece.bufferIndex,u.piece.start),g=a[c.line+l],p=h===e.startLineNumber?e.startColumn:1;if(s=this.findMatchesInNode(u,r,h,p,c,this.positionInBuffer(u,g-d),t,i,n,s,o),s>=n)return o;h+=l}const d=h===e.startLineNumber?e.startColumn-1:0;if(h===e.endLineNumber){const a=this.getLineContent(h).substring(d,e.endColumn-1);return s=this._findMatchesInLine(t,r,a,e.endLineNumber,d,s,o,i,n),o}if(s=this._findMatchesInLine(t,r,this.getLineContent(h).substr(d),h,d,s,o,i,n),s>=n)return o;h++,a=this.nodeAt2(h,1),u=a.node,c=this.positionInBuffer(a.node,a.remainder)}if(h===e.endLineNumber){const a=h===e.startLineNumber?e.startColumn-1:0,l=this.getLineContent(h).substring(a,e.endColumn-1);return s=this._findMatchesInLine(t,r,l,e.endLineNumber,a,s,o,i,n),o}const g=h===e.startLineNumber?e.startColumn:1;return s=this.findMatchesInNode(l.node,r,h,g,c,d,t,i,n,s,o),o}_findMatchesInLine(e,t,i,n,o,s,r,a,l){const c=e.wordSeparators;if(!a&&e.simpleSearch){const t=e.simpleSearch,a=t.length,d=i.length;let h=-a;for(;-1!==(h=i.indexOf(t,h+a));)if((!c||(0,Ee.cM)(c,i,d,h,a))&&(r[s++]=new v.tk(new g.e(n,h+1+o,n,h+1+a+o),null),s>=l))return s;return s}let d;t.reset(0);do{if(d=t.next(i),d&&(r[s++]=(0,Ee.iE)(new g.e(n,d.index+1+o,n,d.index+1+d[0].length+o),d,a),s>=l))return s}while(d);return s}insert(e,t,i=!1){if(this._EOLNormalized=this._EOLNormalized&&i,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==_e){const{node:i,remainder:n,nodeStartOffset:o}=this.nodeAt(e),s=i.piece,r=s.bufferIndex,a=this.positionInBuffer(i,n);if(0===i.piece.bufferIndex&&s.end.line===this._lastChangeBufferPos.line&&s.end.column===this._lastChangeBufferPos.column&&o+s.length===e&&t.length<Ie)return this.appendToNode(i,t),void this.computeBufferMetadata();if(o===e)this.insertContentToNodeLeft(t,i),this._searchCache.validate(e);else if(o+i.piece.length>e){const e=[];let o=new Re(s.bufferIndex,a,s.end,this.getLineFeedCnt(s.bufferIndex,a,s.end),this.offsetInBuffer(r,s.end)-this.offsetInBuffer(r,a));if(this.shouldCheckCRLF()&&this.endWithCR(t)){if(10===this.nodeCharCodeAt(i,n)){const e={line:o.start.line+1,column:0};o=new Re(o.bufferIndex,e,o.end,this.getLineFeedCnt(o.bufferIndex,e,o.end),o.length-1),t+="\n"}}if(this.shouldCheckCRLF()&&this.startWithLF(t)){if(13===this.nodeCharCodeAt(i,n-1)){const o=this.positionInBuffer(i,n-1);this.deleteNodeTail(i,o),t="\r"+t,0===i.piece.length&&e.push(i)}else this.deleteNodeTail(i,a)}else this.deleteNodeTail(i,a);const l=this.createNewPieces(t);o.length>0&&this.rbInsertRight(i,o);let c=i;for(let t=0;t<l.length;t++)c=this.rbInsertRight(c,l[t]);this.deleteNodes(e)}else this.insertContentToNodeRight(t,i)}else{const e=this.createNewPieces(t);let i=this.rbInsertLeft(null,e[0]);for(let t=1;t<e.length;t++)i=this.rbInsertRight(i,e[t])}this.computeBufferMetadata()}delete(e,t){if(this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",t<=0||this.root===_e)return;const i=this.nodeAt(e),n=this.nodeAt(e+t),o=i.node,s=n.node;if(o===s){const s=this.positionInBuffer(o,i.remainder),r=this.positionInBuffer(o,n.remainder);if(i.nodeStartOffset===e){if(t===o.piece.length){const e=o.next();return ke(this,o),this.validateCRLFWithPrevNode(e),void this.computeBufferMetadata()}return this.deleteNodeHead(o,r),this._searchCache.validate(e),this.validateCRLFWithPrevNode(o),void this.computeBufferMetadata()}return i.nodeStartOffset+o.piece.length===e+t?(this.deleteNodeTail(o,s),this.validateCRLFWithNextNode(o),void this.computeBufferMetadata()):(this.shrinkNode(o,s,r),void this.computeBufferMetadata())}const r=[],a=this.positionInBuffer(o,i.remainder);this.deleteNodeTail(o,a),this._searchCache.validate(e),0===o.piece.length&&r.push(o);const l=this.positionInBuffer(s,n.remainder);this.deleteNodeHead(s,l),0===s.piece.length&&r.push(s);for(let d=o.next();d!==_e&&d!==s;d=d.next())r.push(d);const c=0===o.piece.length?o.prev():o;this.deleteNodes(r),this.validateCRLFWithNextNode(c),this.computeBufferMetadata()}insertContentToNodeLeft(e,t){const i=[];if(this.shouldCheckCRLF()&&this.endWithCR(e)&&this.startWithLF(t)){const n=t.piece,o={line:n.start.line+1,column:0},s=new Re(n.bufferIndex,o,n.end,this.getLineFeedCnt(n.bufferIndex,o,n.end),n.length-1);t.piece=s,e+="\n",De(this,t,-1,-1),0===t.piece.length&&i.push(t)}const n=this.createNewPieces(e);let o=this.rbInsertLeft(t,n[n.length-1]);for(let s=n.length-2;s>=0;s--)o=this.rbInsertLeft(o,n[s]);this.validateCRLFWithPrevNode(o),this.deleteNodes(i)}insertContentToNodeRight(e,t){this.adjustCarriageReturnFromNext(e,t)&&(e+="\n");const i=this.createNewPieces(e),n=this.rbInsertRight(t,i[0]);let o=n;for(let s=1;s<i.length;s++)o=this.rbInsertRight(o,i[s]);this.validateCRLFWithPrevNode(n)}positionInBuffer(e,t,i){const n=e.piece,o=e.piece.bufferIndex,s=this._buffers[o].lineStarts,r=s[n.start.line]+n.start.column+t;let a=n.start.line,l=n.end.line,c=0,d=0,h=0;for(;a<=l&&(c=a+(l-a)/2|0,h=s[c],c!==l);)if(d=s[c+1],r<h)l=c-1;else{if(!(r>=d))break;a=c+1}return i?(i.line=c,i.column=r-h,null):{line:c,column:r-h}}getLineFeedCnt(e,t,i){if(0===i.column)return i.line-t.line;const n=this._buffers[e].lineStarts;if(i.line===n.length-1)return i.line-t.line;const o=n[i.line+1],s=n[i.line]+i.column;if(o>s+1)return i.line-t.line;const r=s-1;return 13===this._buffers[e].buffer.charCodeAt(r)?i.line-t.line+1:i.line-t.line}offsetInBuffer(e,t){return this._buffers[e].lineStarts[t.line]+t.column}deleteNodes(e){for(let t=0;t<e.length;t++)ke(this,e[t])}createNewPieces(e){if(e.length>Ie){const t=[];for(;e.length>Ie;){const i=e.charCodeAt(65534);let n;13===i||i>=55296&&i<=56319?(n=e.substring(0,65534),e=e.substring(65534)):(n=e.substring(0,Ie),e=e.substring(Ie));const o=Ae(n);t.push(new Re(this._buffers.length,{line:0,column:0},{line:o.length-1,column:n.length-o[o.length-1]},o.length-1,n.length)),this._buffers.push(new Oe(n,o))}const i=Ae(e);return t.push(new Re(this._buffers.length,{line:0,column:0},{line:i.length-1,column:e.length-i[i.length-1]},i.length-1,e.length)),this._buffers.push(new Oe(e,i)),t}let t=this._buffers[0].buffer.length;const i=Ae(e,!1);let n=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===t&&0!==t&&this.startWithLF(e)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},n=this._lastChangeBufferPos;for(let e=0;e<i.length;e++)i[e]+=t+1;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(i.slice(1)),this._buffers[0].buffer+="_"+e,t+=1}else{if(0!==t)for(let e=0;e<i.length;e++)i[e]+=t;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(i.slice(1)),this._buffers[0].buffer+=e}const o=this._buffers[0].buffer.length,s=this._buffers[0].lineStarts.length-1,r={line:s,column:o-this._buffers[0].lineStarts[s]},a=new Re(0,n,r,this.getLineFeedCnt(0,n,r),o-t);return this._lastChangeBufferPos=r,[a]}getLineRawContent(e,t=0){let i=this.root,n="";const o=this._searchCache.get2(e);if(o){i=o.node;const s=this.getAccumulatedValue(i,e-o.nodeStartLineNumber-1),r=this._buffers[i.piece.bufferIndex].buffer,a=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);if(o.nodeStartLineNumber+i.piece.lineFeedCnt!==e){const n=this.getAccumulatedValue(i,e-o.nodeStartLineNumber);return r.substring(a+s,a+n-t)}n=r.substring(a+s,a+i.piece.length)}else{let o=0;const s=e;for(;i!==_e;)if(i.left!==_e&&i.lf_left>=e-1)i=i.left;else{if(i.lf_left+i.piece.lineFeedCnt>e-1){const n=this.getAccumulatedValue(i,e-i.lf_left-2),r=this.getAccumulatedValue(i,e-i.lf_left-1),a=this._buffers[i.piece.bufferIndex].buffer,l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return o+=i.size_left,this._searchCache.set({node:i,nodeStartOffset:o,nodeStartLineNumber:s-(e-1-i.lf_left)}),a.substring(l+n,l+r-t)}if(i.lf_left+i.piece.lineFeedCnt===e-1){const t=this.getAccumulatedValue(i,e-i.lf_left-2),o=this._buffers[i.piece.bufferIndex].buffer,s=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);n=o.substring(s+t,s+i.piece.length);break}e-=i.lf_left+i.piece.lineFeedCnt,o+=i.size_left+i.piece.length,i=i.right}}for(i=i.next();i!==_e;){const e=this._buffers[i.piece.bufferIndex].buffer;if(i.piece.lineFeedCnt>0){const o=this.getAccumulatedValue(i,0),s=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return n+=e.substring(s,s+o-t),n}{const t=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);n+=e.substr(t,i.piece.length)}i=i.next()}return n}computeBufferMetadata(){let e=this.root,t=1,i=0;for(;e!==_e;)t+=e.lf_left+e.piece.lineFeedCnt,i+=e.size_left+e.piece.length,e=e.right;this._lineCnt=t,this._length=i,this._searchCache.validate(this._length)}getIndexOf(e,t){const i=e.piece,n=this.positionInBuffer(e,t),o=n.line-i.start.line;if(this.offsetInBuffer(i.bufferIndex,i.end)-this.offsetInBuffer(i.bufferIndex,i.start)===t){const t=this.getLineFeedCnt(e.piece.bufferIndex,i.start,n);if(t!==o)return{index:t,remainder:0}}return{index:o,remainder:n.column}}getAccumulatedValue(e,t){if(t<0)return 0;const i=e.piece,n=this._buffers[i.bufferIndex].lineStarts,o=i.start.line+t+1;return o>i.end.line?n[i.end.line]+i.end.column-n[i.start.line]-i.start.column:n[o]-n[i.start.line]-i.start.column}deleteNodeTail(e,t){const i=e.piece,n=i.lineFeedCnt,o=this.offsetInBuffer(i.bufferIndex,i.end),s=t,r=this.offsetInBuffer(i.bufferIndex,s),a=this.getLineFeedCnt(i.bufferIndex,i.start,s),l=a-n,c=r-o,d=i.length+c;e.piece=new Re(i.bufferIndex,i.start,s,a,d),De(this,e,c,l)}deleteNodeHead(e,t){const i=e.piece,n=i.lineFeedCnt,o=this.offsetInBuffer(i.bufferIndex,i.start),s=t,r=this.getLineFeedCnt(i.bufferIndex,s,i.end),a=r-n,l=o-this.offsetInBuffer(i.bufferIndex,s),c=i.length+l;e.piece=new Re(i.bufferIndex,s,i.end,r,c),De(this,e,l,a)}shrinkNode(e,t,i){const n=e.piece,o=n.start,s=n.end,r=n.length,a=n.lineFeedCnt,l=t,c=this.getLineFeedCnt(n.bufferIndex,n.start,l),d=this.offsetInBuffer(n.bufferIndex,t)-this.offsetInBuffer(n.bufferIndex,o);e.piece=new Re(n.bufferIndex,n.start,l,c,d),De(this,e,d-r,c-a);const h=new Re(n.bufferIndex,i,s,this.getLineFeedCnt(n.bufferIndex,i,s),this.offsetInBuffer(n.bufferIndex,s)-this.offsetInBuffer(n.bufferIndex,i)),u=this.rbInsertRight(e,h);this.validateCRLFWithPrevNode(u)}appendToNode(e,t){this.adjustCarriageReturnFromNext(t,e)&&(t+="\n");const i=this.shouldCheckCRLF()&&this.startWithLF(t)&&this.endWithCR(e),n=this._buffers[0].buffer.length;this._buffers[0].buffer+=t;const o=Ae(t,!1);for(let h=0;h<o.length;h++)o[h]+=n;if(i){const e=this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-2];this._buffers[0].lineStarts.pop(),this._lastChangeBufferPos={line:this._lastChangeBufferPos.line-1,column:n-e}}this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(o.slice(1));const s=this._buffers[0].lineStarts.length-1,r={line:s,column:this._buffers[0].buffer.length-this._buffers[0].lineStarts[s]},a=e.piece.length+t.length,l=e.piece.lineFeedCnt,c=this.getLineFeedCnt(0,e.piece.start,r),d=c-l;e.piece=new Re(e.piece.bufferIndex,e.piece.start,r,c,a),this._lastChangeBufferPos=r,De(this,e,t.length,d)}nodeAt(e){let t=this.root;const i=this._searchCache.get(e);if(i)return{node:i.node,nodeStartOffset:i.nodeStartOffset,remainder:e-i.nodeStartOffset};let n=0;for(;t!==_e;)if(t.size_left>e)t=t.left;else{if(t.size_left+t.piece.length>=e){n+=t.size_left;const i={node:t,remainder:e-t.size_left,nodeStartOffset:n};return this._searchCache.set(i),i}e-=t.size_left+t.piece.length,n+=t.size_left+t.piece.length,t=t.right}return null}nodeAt2(e,t){let i=this.root,n=0;for(;i!==_e;)if(i.left!==_e&&i.lf_left>=e-1)i=i.left;else{if(i.lf_left+i.piece.lineFeedCnt>e-1){const o=this.getAccumulatedValue(i,e-i.lf_left-2),s=this.getAccumulatedValue(i,e-i.lf_left-1);return n+=i.size_left,{node:i,remainder:Math.min(o+t-1,s),nodeStartOffset:n}}if(i.lf_left+i.piece.lineFeedCnt===e-1){const o=this.getAccumulatedValue(i,e-i.lf_left-2);if(o+t-1<=i.piece.length)return{node:i,remainder:o+t-1,nodeStartOffset:n};t-=i.piece.length-o;break}e-=i.lf_left+i.piece.lineFeedCnt,n+=i.size_left+i.piece.length,i=i.right}for(i=i.next();i!==_e;){if(i.piece.lineFeedCnt>0){const e=this.getAccumulatedValue(i,0),n=this.offsetOfNode(i);return{node:i,remainder:Math.min(t-1,e),nodeStartOffset:n}}if(i.piece.length>=t-1){return{node:i,remainder:t-1,nodeStartOffset:this.offsetOfNode(i)}}t-=i.piece.length,i=i.next()}return null}nodeCharCodeAt(e,t){if(e.piece.lineFeedCnt<1)return-1;const i=this._buffers[e.piece.bufferIndex],n=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start)+t;return i.buffer.charCodeAt(n)}offsetOfNode(e){if(!e)return 0;let t=e.size_left;for(;e!==this.root;)e.parent.right===e&&(t+=e.parent.size_left+e.parent.piece.length),e=e.parent;return t}shouldCheckCRLF(){return!(this._EOLNormalized&&"\n"===this._EOL)}startWithLF(e){if("string"==typeof e)return 10===e.charCodeAt(0);if(e===_e||0===e.piece.lineFeedCnt)return!1;const t=e.piece,i=this._buffers[t.bufferIndex].lineStarts,n=t.start.line,o=i[n]+t.start.column;if(n===i.length-1)return!1;return!(i[n+1]>o+1)&&10===this._buffers[t.bufferIndex].buffer.charCodeAt(o)}endWithCR(e){return"string"==typeof e?13===e.charCodeAt(e.length-1):e!==_e&&0!==e.piece.lineFeedCnt&&13===this.nodeCharCodeAt(e,e.piece.length-1)}validateCRLFWithPrevNode(e){if(this.shouldCheckCRLF()&&this.startWithLF(e)){const t=e.prev();this.endWithCR(t)&&this.fixCRLF(t,e)}}validateCRLFWithNextNode(e){if(this.shouldCheckCRLF()&&this.endWithCR(e)){const t=e.next();this.startWithLF(t)&&this.fixCRLF(e,t)}}fixCRLF(e,t){const i=[],n=this._buffers[e.piece.bufferIndex].lineStarts;let o;o=0===e.piece.end.column?{line:e.piece.end.line-1,column:n[e.piece.end.line]-n[e.piece.end.line-1]-1}:{line:e.piece.end.line,column:e.piece.end.column-1};const s=e.piece.length-1,r=e.piece.lineFeedCnt-1;e.piece=new Re(e.piece.bufferIndex,e.piece.start,o,r,s),De(this,e,-1,-1),0===e.piece.length&&i.push(e);const a={line:t.piece.start.line+1,column:0},l=t.piece.length-1,c=this.getLineFeedCnt(t.piece.bufferIndex,a,t.piece.end);t.piece=new Re(t.piece.bufferIndex,a,t.piece.end,c,l),De(this,t,-1,-1),0===t.piece.length&&i.push(t);const d=this.createNewPieces("\r\n");this.rbInsertRight(e,d[0]);for(let h=0;h<i.length;h++)ke(this,i[h])}adjustCarriageReturnFromNext(e,t){if(this.shouldCheckCRLF()&&this.endWithCR(e)){const i=t.next();if(this.startWithLF(i)){if(e+="\n",1===i.piece.length)ke(this,i);else{const e=i.piece,t={line:e.start.line+1,column:0},n=e.length-1,o=this.getLineFeedCnt(e.bufferIndex,t,e.end);i.piece=new Re(e.bufferIndex,t,e.end,o,n),De(this,i,-1,-1)}return!0}}return!1}iterate(e,t){if(e===_e)return t(_e);const i=this.iterate(e.left,t);return i?t(e)&&this.iterate(e.right,t):i}getNodeContent(e){if(e===_e)return"";const t=this._buffers[e.piece.bufferIndex],i=e.piece,n=this.offsetInBuffer(i.bufferIndex,i.start),o=this.offsetInBuffer(i.bufferIndex,i.end);return t.buffer.substring(n,o)}getPieceContent(e){const t=this._buffers[e.bufferIndex],i=this.offsetInBuffer(e.bufferIndex,e.start),n=this.offsetInBuffer(e.bufferIndex,e.end);return t.buffer.substring(i,n)}rbInsertRight(e,t){const i=new fe(t,1);i.left=_e,i.right=_e,i.parent=_e,i.size_left=0,i.lf_left=0;if(this.root===_e)this.root=i,i.color=0;else if(e.right===_e)e.right=i,i.parent=e;else{const t=ve(e.right);t.left=i,i.parent=t}return xe(this,i),i}rbInsertLeft(e,t){const i=new fe(t,1);if(i.left=_e,i.right=_e,i.parent=_e,i.size_left=0,i.lf_left=0,this.root===_e)this.root=i,i.color=0;else if(e.left===_e)e.left=i,i.parent=e;else{const t=be(e.left);t.right=i,i.parent=t}return xe(this,i),i}}var Ve=i(93033);class We extends a.JT{constructor(e,t,i,n,o,s,a){super(),this._onDidChangeContent=this._register(new r.Q5),this._BOM=t,this._mightContainNonBasicASCII=!s,this._mightContainRTL=n,this._mightContainUnusualLineTerminators=o,this._pieceTree=new Be(e,i,a)}mightContainRTL(){return this._mightContainRTL}mightContainUnusualLineTerminators(){return this._mightContainUnusualLineTerminators}resetMightContainUnusualLineTerminators(){this._mightContainUnusualLineTerminators=!1}mightContainNonBasicASCII(){return this._mightContainNonBasicASCII}getBOM(){return this._BOM}getEOL(){return this._pieceTree.getEOL()}createSnapshot(e){return this._pieceTree.createSnapshot(e?this._BOM:"")}getOffsetAt(e,t){return this._pieceTree.getOffsetAt(e,t)}getPositionAt(e){return this._pieceTree.getPositionAt(e)}getRangeAt(e,t){const i=e+t,n=this.getPositionAt(e),o=this.getPositionAt(i);return new g.e(n.lineNumber,n.column,o.lineNumber,o.column)}getValueInRange(e,t=0){if(e.isEmpty())return"";const i=this._getEndOfLine(t);return this._pieceTree.getValueInRange(e,i)}getValueLengthInRange(e,t=0){if(e.isEmpty())return 0;if(e.startLineNumber===e.endLineNumber)return e.endColumn-e.startColumn;const i=this.getOffsetAt(e.startLineNumber,e.startColumn);return this.getOffsetAt(e.endLineNumber,e.endColumn)-i}getCharacterCountInRange(e,t=0){if(this._mightContainNonBasicASCII){let i=0;const n=e.startLineNumber,o=e.endLineNumber;for(let t=n;t<=o;t++){const s=this.getLineContent(t),r=t===n?e.startColumn-1:0,a=t===o?e.endColumn-1:s.length;for(let e=r;e<a;e++)l.ZG(s.charCodeAt(e))?(i+=1,e+=1):i+=1}return i+=this._getEndOfLine(t).length*(o-n),i}return this.getValueLengthInRange(e,t)}getLength(){return this._pieceTree.getLength()}getLineCount(){return this._pieceTree.getLineCount()}getLinesContent(){return this._pieceTree.getLinesContent()}getLineContent(e){return this._pieceTree.getLineContent(e)}getLineCharCode(e,t){return this._pieceTree.getLineCharCode(e,t)}getLineLength(e){return this._pieceTree.getLineLength(e)}getLineFirstNonWhitespaceColumn(e){const t=l.LC(this.getLineContent(e));return-1===t?0:t+1}getLineLastNonWhitespaceColumn(e){const t=l.ow(this.getLineContent(e));return-1===t?0:t+2}_getEndOfLine(e){switch(e){case 1:return"\n";case 2:return"\r\n";case 0:return this.getEOL();default:throw new Error("Unknown EOL preference")}}setEOL(e){this._pieceTree.setEOL(e)}applyEdits(e,t,i){let n=this._mightContainRTL,o=this._mightContainUnusualLineTerminators,s=this._mightContainNonBasicASCII,r=!0,a=[];for(let f=0;f<e.length;f++){const t=e[f];r&&t._isTracked&&(r=!1);const i=t.range;if(t.text){let e=!0;s||(e=!l.$i(t.text),s=e),!n&&e&&(n=l.Ut(t.text)),!o&&e&&(o=l.ab(t.text))}let c="",h=0,u=0,g=0;if(t.text){let e;[h,u,g,e]=(0,d.Q)(t.text);const i=this.getEOL(),n="\r\n"===i?2:1;c=0===e||e===n?t.text:t.text.replace(/\r\n|\r|\n/g,i)}a[f]={sortIndex:f,identifier:t.identifier||null,range:i,rangeOffset:this.getOffsetAt(i.startLineNumber,i.startColumn),rangeLength:this.getValueLengthInRange(i),text:c,eolCount:h,firstLineLength:u,lastLineLength:g,forceMoveMarkers:Boolean(t.forceMoveMarkers),isAutoWhitespaceEdit:t.isAutoWhitespaceEdit||!1}}a.sort(We._sortOpsAscending);let c=!1;for(let l=0,d=a.length-1;l<d;l++){const e=a[l].range.getEndPosition(),t=a[l+1].range.getStartPosition();if(t.isBeforeOrEqual(e)){if(t.isBefore(e))throw new Error("Overlapping ranges are not allowed!");c=!0}}r&&(a=this._reduceOperations(a));const h=i||t?We._getInverseEditRanges(a):[],u=[];if(t)for(let d=0;d<a.length;d++){const e=a[d],t=h[d];if(e.isAutoWhitespaceEdit&&e.range.isEmpty())for(let i=t.startLineNumber;i<=t.endLineNumber;i++){let n="";i===t.startLineNumber&&(n=this.getLineContent(e.range.startLineNumber),-1!==l.LC(n))||u.push({lineNumber:i,oldContent:n})}}let g=null;if(i){let e=0;g=[];for(let t=0;t<a.length;t++){const i=a[t],n=h[t],o=this.getValueInRange(i.range),s=i.rangeOffset+e;e+=i.text.length-o.length,g[t]={sortIndex:i.sortIndex,identifier:i.identifier,range:n,text:o,textChange:new Ve.q(i.rangeOffset,o,s,i.text)}}c||g.sort(((e,t)=>e.sortIndex-t.sortIndex))}this._mightContainRTL=n,this._mightContainUnusualLineTerminators=o,this._mightContainNonBasicASCII=s;const p=this._doApplyEdits(a);let m=null;if(t&&u.length>0){u.sort(((e,t)=>t.lineNumber-e.lineNumber)),m=[];for(let e=0,t=u.length;e<t;e++){const t=u[e].lineNumber;if(e>0&&u[e-1].lineNumber===t)continue;const i=u[e].oldContent,n=this.getLineContent(t);0!==n.length&&n!==i&&-1===l.LC(n)&&m.push(t)}}return this._onDidChangeContent.fire(),new v.je(g,p,m)}_reduceOperations(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]}_toSingleEditOperation(e){let t=!1;const i=e[0].range,n=e[e.length-1].range,o=new g.e(i.startLineNumber,i.startColumn,n.endLineNumber,n.endColumn);let s=i.startLineNumber,r=i.startColumn;const a=[];for(let d=0,p=e.length;d<p;d++){const i=e[d],n=i.range;t=t||i.forceMoveMarkers,a.push(this.getValueInRange(new g.e(s,r,n.startLineNumber,n.startColumn))),i.text.length>0&&a.push(i.text),s=n.endLineNumber,r=n.endColumn}const l=a.join(""),[c,h,u]=(0,d.Q)(l);return{sortIndex:0,identifier:e[0].identifier,range:o,rangeOffset:this.getOffsetAt(o.startLineNumber,o.startColumn),rangeLength:this.getValueLengthInRange(o,0),text:l,eolCount:c,firstLineLength:h,lastLineLength:u,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}_doApplyEdits(e){e.sort(We._sortOpsDescending);const t=[];for(let i=0;i<e.length;i++){const n=e[i],o=n.range.startLineNumber,s=n.range.startColumn,r=n.range.endLineNumber,a=n.range.endColumn;if(o===r&&s===a&&0===n.text.length)continue;n.text?(this._pieceTree.delete(n.rangeOffset,n.rangeLength),this._pieceTree.insert(n.rangeOffset,n.text,!0)):this._pieceTree.delete(n.rangeOffset,n.rangeLength);const l=new g.e(o,s,r,a);t.push({range:l,rangeLength:n.rangeLength,text:n.text,rangeOffset:n.rangeOffset,forceMoveMarkers:n.forceMoveMarkers})}return t}findMatchesLineByLine(e,t,i,n){return this._pieceTree.findMatchesLineByLine(e,t,i,n)}static _getInverseEditRanges(e){const t=[];let i=0,n=0,o=null;for(let s=0,r=e.length;s<r;s++){const r=e[s];let a,l,c;if(o?o.range.endLineNumber===r.range.startLineNumber?(a=i,l=n+(r.range.startColumn-o.range.endColumn)):(a=i+(r.range.startLineNumber-o.range.endLineNumber),l=r.range.startColumn):(a=r.range.startLineNumber,l=r.range.startColumn),r.text.length>0){const e=r.eolCount+1;c=1===e?new g.e(a,l,a,l+r.firstLineLength):new g.e(a,l,a+e-1,r.lastLineLength+1)}else c=new g.e(a,l,a,l);i=c.endLineNumber,n=c.endColumn,t.push(c),o=r}return t}static _sortOpsAscending(e,t){const i=g.e.compareRangesUsingEnds(e.range,t.range);return 0===i?e.sortIndex-t.sortIndex:i}static _sortOpsDescending(e,t){const i=g.e.compareRangesUsingEnds(e.range,t.range);return 0===i?t.sortIndex-e.sortIndex:-i}}class He{constructor(e,t,i,n,o,s,r,a,l){this._chunks=e,this._bom=t,this._cr=i,this._lf=n,this._crlf=o,this._containsRTL=s,this._containsUnusualLineTerminators=r,this._isBasicASCII=a,this._normalizeEOL=l}_getEOL(e){const t=this._cr+this._lf+this._crlf,i=this._cr+this._crlf;return 0===t?1===e?"\n":"\r\n":i>t/2?"\r\n":"\n"}create(e){const t=this._getEOL(e),i=this._chunks;if(this._normalizeEOL&&("\r\n"===t&&(this._cr>0||this._lf>0)||"\n"===t&&(this._cr>0||this._crlf>0)))for(let o=0,s=i.length;o<s;o++){const e=i[o].buffer.replace(/\r\n|\r|\n/g,t),n=Ae(e);i[o]=new Oe(e,n)}const n=new We(i,this._bom,t,this._containsRTL,this._containsUnusualLineTerminators,this._isBasicASCII,this._normalizeEOL);return{textBuffer:n,disposable:n}}}class ze{constructor(){this.chunks=[],this.BOM="",this._hasPreviousChar=!1,this._previousChar=0,this._tmpLineStarts=[],this.cr=0,this.lf=0,this.crlf=0,this.containsRTL=!1,this.containsUnusualLineTerminators=!1,this.isBasicASCII=!0}acceptChunk(e){if(0===e.length)return;0===this.chunks.length&&l.uS(e)&&(this.BOM=l.c1,e=e.substr(1));const t=e.charCodeAt(e.length-1);13===t||t>=55296&&t<=56319?(this._acceptChunk1(e.substr(0,e.length-1),!1),this._hasPreviousChar=!0,this._previousChar=t):(this._acceptChunk1(e,!1),this._hasPreviousChar=!1,this._previousChar=t)}_acceptChunk1(e,t){(t||0!==e.length)&&(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+e):this._acceptChunk2(e))}_acceptChunk2(e){const t=function(e,t){e.length=0,e[0]=0;let i=1,n=0,o=0,s=0,r=!0;for(let l=0,c=t.length;l<c;l++){const a=t.charCodeAt(l);13===a?l+1<c&&10===t.charCodeAt(l+1)?(s++,e[i++]=l+2,l++):(n++,e[i++]=l+1):10===a?(o++,e[i++]=l+1):r&&9!==a&&(a<32||a>126)&&(r=!1)}const a=new Me(Te(e),n,o,s,r);return e.length=0,a}(this._tmpLineStarts,e);this.chunks.push(new Oe(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,this.isBasicASCII&&(this.isBasicASCII=t.isBasicASCII),this.isBasicASCII||this.containsRTL||(this.containsRTL=l.Ut(e)),this.isBasicASCII||this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=l.ab(e))}finish(e=!0){return this._finish(),new He(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,e)}_finish(){if(0===this.chunks.length&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;const e=this.chunks[this.chunks.length-1];e.buffer+=String.fromCharCode(this._previousChar);const t=Ae(e.buffer);e.lineStarts=t,13===this._previousChar&&this.cr++}}}var je=i(270),Ue=i(94954),Ke=i(77378),$e=i(43155),qe=i(276),Ge=i(84013);class Qe{constructor(e,t){this._startLineNumber=e,this._tokens=t}get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._startLineNumber+this._tokens.length-1}getLineTokens(e){return this._tokens[e-this._startLineNumber]}appendLineTokens(e){this._tokens.push(e)}}class Ze{constructor(){this._tokens=[]}add(e,t){if(this._tokens.length>0){const i=this._tokens[this._tokens.length-1];if(i.endLineNumber+1===e)return void i.appendLineTokens(t)}this._tokens.push(new Qe(e,[t]))}finalize(){return this._tokens}}var Ye=i(15393),Je=i(1432);class Xe{constructor(e){this._default=e,this._store=[]}get(e){return e<this._store.length?this._store[e]:this._default}set(e,t){for(;e>=this._store.length;)this._store[this._store.length]=this._default;this._store[e]=t}delete(e,t){0===t||e>=this._store.length||this._store.splice(e,t)}insert(e,t){if(0===t||e>=this._store.length)return;const i=[];for(let n=0;n<t;n++)i[n]=this._default;this._store=n.Zv(this._store,e,i)}}class et{constructor(e,t){this.tokenizationSupport=e,this.initialState=t,this._lineBeginState=new Xe(null),this._lineNeedsTokenization=new Xe(!0),this._firstLineNeedsTokenization=0,this._lineBeginState.set(0,this.initialState)}get invalidLineStartIndex(){return this._firstLineNeedsTokenization}markMustBeTokenized(e){this._lineNeedsTokenization.set(e,!0),this._firstLineNeedsTokenization=Math.min(this._firstLineNeedsTokenization,e)}getBeginState(e){return this._lineBeginState.get(e)}setEndState(e,t,i){if(this._lineNeedsTokenization.set(t,!1),this._firstLineNeedsTokenization=t+1,t===e-1)return;const n=this._lineBeginState.get(t+1);if(null===n||!i.equals(n))return this._lineBeginState.set(t+1,i),void this.markMustBeTokenized(t+1);let o=t+1;for(;o<e&&!this._lineNeedsTokenization.get(o);)o++;this._firstLineNeedsTokenization=o}applyEdits(e,t){this.markMustBeTokenized(e.startLineNumber-1),this._lineBeginState.delete(e.startLineNumber,e.endLineNumber-e.startLineNumber),this._lineNeedsTokenization.delete(e.startLineNumber,e.endLineNumber-e.startLineNumber),this._lineBeginState.insert(e.startLineNumber,t),this._lineNeedsTokenization.insert(e.startLineNumber,t)}}class tt extends a.JT{constructor(e,t,i){super(),this._textModel=e,this._tokenizationPart=t,this._languageIdCodec=i,this._isScheduled=!1,this._isDisposed=!1,this._tokenizationStateStore=null,this._register($e.RW.onDidChange((e=>{const t=this._textModel.getLanguageId();-1!==e.changedLanguages.indexOf(t)&&(this._resetTokenizationState(),this._tokenizationPart.clearTokens())}))),this._resetTokenizationState()}dispose(){this._isDisposed=!0,super.dispose()}handleDidChangeContent(e){if(e.isFlush)this._resetTokenizationState();else{if(this._tokenizationStateStore)for(let t=0,i=e.changes.length;t<i;t++){const i=e.changes[t],[n]=(0,d.Q)(i.text);this._tokenizationStateStore.applyEdits(i.range,n)}this._beginBackgroundTokenization()}}handleDidChangeAttached(){this._beginBackgroundTokenization()}handleDidChangeLanguage(e){this._resetTokenizationState(),this._tokenizationPart.clearTokens()}_resetTokenizationState(){const[e,t]=function(e,t){if(e.isTooLargeForTokenization())return[null,null];const i=$e.RW.get(t.getLanguageId());if(!i)return[null,null];let n;try{n=i.getInitialState()}catch(o){return(0,s.dL)(o),[null,null]}return[i,n]}(this._textModel,this._tokenizationPart);this._tokenizationStateStore=e&&t?new et(e,t):null,this._beginBackgroundTokenization()}_beginBackgroundTokenization(){!this._isScheduled&&this._textModel.isAttachedToEditor()&&this._hasLinesToTokenize()&&(this._isScheduled=!0,(0,Ye.To)((e=>{this._isScheduled=!1,this._backgroundTokenizeWithDeadline(e)})))}_backgroundTokenizeWithDeadline(e){const t=Date.now()+e.timeRemaining(),i=()=>{!this._isDisposed&&this._textModel.isAttachedToEditor()&&this._hasLinesToTokenize()&&(this._backgroundTokenizeForAtLeast1ms(),Date.now()<t?(0,Je.fn)(i):this._beginBackgroundTokenization())};i()}_backgroundTokenizeForAtLeast1ms(){const e=this._textModel.getLineCount(),t=new Ze,i=Ge.G.create(!1);do{if(i.elapsed()>1)break;if(this._tokenizeOneInvalidLine(t)>=e)break}while(this._hasLinesToTokenize());this._tokenizationPart.setTokens(t.finalize(),this._isTokenizationComplete())}tokenizeViewport(e,t){const i=new Ze;this._tokenizeViewport(i,e,t),this._tokenizationPart.setTokens(i.finalize(),this._isTokenizationComplete())}reset(){this._resetTokenizationState(),this._tokenizationPart.clearTokens()}forceTokenization(e){const t=new Ze;this._updateTokensUntilLine(t,e),this._tokenizationPart.setTokens(t.finalize(),this._isTokenizationComplete())}getTokenTypeIfInsertingCharacter(e,t){if(!this._tokenizationStateStore)return 0;this.forceTokenization(e.lineNumber);const i=this._tokenizationStateStore.getBeginState(e.lineNumber-1);if(!i)return 0;const n=this._textModel.getLanguageId(),o=this._textModel.getLineContent(e.lineNumber),s=o.substring(0,e.column-1)+t+o.substring(e.column-1),r=it(this._languageIdCodec,n,this._tokenizationStateStore.tokenizationSupport,s,!0,i),a=new Ke.A(r.tokens,s,this._languageIdCodec);if(0===a.getCount())return 0;const l=a.findTokenIndexAtOffset(e.column-1);return a.getStandardTokenType(l)}tokenizeLineWithEdit(e,t,i){const n=e.lineNumber,o=e.column;if(!this._tokenizationStateStore)return null;this.forceTokenization(n);const s=this._tokenizationStateStore.getBeginState(n-1);if(!s)return null;const r=this._textModel.getLineContent(n),a=r.substring(0,o-1)+i+r.substring(o-1+t),l=this._textModel.getLanguageIdAtPosition(n,0),c=it(this._languageIdCodec,l,this._tokenizationStateStore.tokenizationSupport,a,!0,s);return new Ke.A(c.tokens,a,this._languageIdCodec)}isCheapToTokenize(e){if(!this._tokenizationStateStore)return!0;const t=this._tokenizationStateStore.invalidLineStartIndex+1;return!(e>t)&&(e<t||this._textModel.getLineLength(e)<2048)}_hasLinesToTokenize(){return!!this._tokenizationStateStore&&this._tokenizationStateStore.invalidLineStartIndex<this._textModel.getLineCount()}_isTokenizationComplete(){return!!this._tokenizationStateStore&&this._tokenizationStateStore.invalidLineStartIndex>=this._textModel.getLineCount()}_tokenizeOneInvalidLine(e){if(!this._tokenizationStateStore||!this._hasLinesToTokenize())return this._textModel.getLineCount()+1;const t=this._tokenizationStateStore.invalidLineStartIndex+1;return this._updateTokensUntilLine(e,t),t}_updateTokensUntilLine(e,t){if(!this._tokenizationStateStore)return;const i=this._textModel.getLanguageId(),n=this._textModel.getLineCount(),o=t-1;for(let s=this._tokenizationStateStore.invalidLineStartIndex;s<=o;s++){const t=this._textModel.getLineContent(s+1),o=this._tokenizationStateStore.getBeginState(s),r=it(this._languageIdCodec,i,this._tokenizationStateStore.tokenizationSupport,t,!0,o);e.add(s+1,r.tokens),this._tokenizationStateStore.setEndState(n,s,r.endState),s=this._tokenizationStateStore.invalidLineStartIndex-1}}_tokenizeViewport(e,t,i){if(!this._tokenizationStateStore)return;if(i<=this._tokenizationStateStore.invalidLineStartIndex)return;if(t<=this._tokenizationStateStore.invalidLineStartIndex)return void this._updateTokensUntilLine(e,i);let n=this._textModel.getLineFirstNonWhitespaceColumn(t);const o=[];let s=null;for(let l=t-1;n>1&&l>=1;l--){const e=this._textModel.getLineFirstNonWhitespaceColumn(l);if(0!==e&&(e<n&&(o.push(this._textModel.getLineContent(l)),n=e,s=this._tokenizationStateStore.getBeginState(l-1),s)))break}s||(s=this._tokenizationStateStore.initialState);const r=this._textModel.getLanguageId();let a=s;for(let l=o.length-1;l>=0;l--){a=it(this._languageIdCodec,r,this._tokenizationStateStore.tokenizationSupport,o[l],!1,a).endState}for(let l=t;l<=i;l++){const t=this._textModel.getLineContent(l),i=it(this._languageIdCodec,r,this._tokenizationStateStore.tokenizationSupport,t,!0,a);e.add(l,i.tokens),this._tokenizationStateStore.markMustBeTokenized(l-1),a=i.endState}}}function it(e,t,i,n,o,r){let a=null;if(i)try{a=i.tokenizeEncoded(n,o,r.clone())}catch(l){(0,s.dL)(l)}return a||(a=(0,qe.Dy)(e.encodeLanguageId(t),r)),Ke.A.convertToEndOffset(a.tokens,n.length),a}const nt=new Uint32Array(0).buffer;class ot{static deleteBeginning(e,t){return null===e||e===nt?e:ot.delete(e,0,t)}static deleteEnding(e,t){if(null===e||e===nt)return e;const i=st(e),n=i[i.length-2];return ot.delete(e,t,n)}static delete(e,t,i){if(null===e||e===nt||t===i)return e;const n=st(e),o=n.length>>>1;if(0===t&&n[n.length-2]===i)return nt;const s=Ke.A.findIndexInTokensArray(n,t),r=s>0?n[s-1<<1]:0;if(i<n[s<<1]){const r=i-t;for(let e=s;e<o;e++)n[e<<1]-=r;return e}let a,l;r!==t?(n[s<<1]=t,a=s+1<<1,l=t):(a=s<<1,l=r);const c=i-t;for(let h=s+1;h<o;h++){const e=n[h<<1]-c;e>l&&(n[a++]=e,n[a++]=n[1+(h<<1)],l=e)}if(a===n.length)return e;const d=new Uint32Array(a);return d.set(n.subarray(0,a),0),d.buffer}static append(e,t){if(t===nt)return e;if(e===nt)return t;if(null===e)return e;if(null===t)return null;const i=st(e),n=st(t),o=n.length>>>1,s=new Uint32Array(i.length+n.length);s.set(i,0);let r=i.length;const a=i[i.length-2];for(let l=0;l<o;l++)s[r++]=n[l<<1]+a,s[r++]=n[1+(l<<1)];return s.buffer}static insert(e,t,i){if(null===e||e===nt)return e;const n=st(e),o=n.length>>>1;let s=Ke.A.findIndexInTokensArray(n,t);if(s>0){n[s-1<<1]===t&&s--}for(let r=s;r<o;r++)n[r<<1]+=i;return e}}function st(e){return e instanceof Uint32Array?e:new Uint32Array(e)}var rt=i(45797);class at{constructor(e){this._lineTokens=[],this._len=0,this._languageIdCodec=e}flush(){this._lineTokens=[],this._len=0}getTokens(e,t,i){let n=null;if(t<this._len&&(n=this._lineTokens[t]),null!==n&&n!==nt)return new Ke.A(st(n),i,this._languageIdCodec);const o=new Uint32Array(2);return o[0]=i.length,o[1]=lt(this._languageIdCodec.encodeLanguageId(e)),new Ke.A(o,i,this._languageIdCodec)}static _massageTokens(e,t,i){const n=i?st(i):null;if(0===t){let t=!1;if(n&&n.length>1&&(t=rt.N.getLanguageId(n[1])!==e),!t)return nt}if(!n||0===n.length){const i=new Uint32Array(2);return i[0]=t,i[1]=lt(e),i.buffer}return n[n.length-2]=t,0===n.byteOffset&&n.byteLength===n.buffer.byteLength?n.buffer:n}_ensureLine(e){for(;e>=this._len;)this._lineTokens[this._len]=null,this._len++}_deleteLines(e,t){0!==t&&(e+t>this._len&&(t=this._len-e),this._lineTokens.splice(e,t),this._len-=t)}_insertLines(e,t){if(0===t)return;const i=[];for(let n=0;n<t;n++)i[n]=null;this._lineTokens=n.Zv(this._lineTokens,e,i),this._len+=t}setTokens(e,t,i,n,o){const s=at._massageTokens(this._languageIdCodec.encodeLanguageId(e),i,n);this._ensureLine(t);const r=this._lineTokens[t];return this._lineTokens[t]=s,!!o&&!at._equals(r,s)}static _equals(e,t){if(!e||!t)return!e&&!t;const i=st(e),n=st(t);if(i.length!==n.length)return!1;for(let o=0,s=i.length;o<s;o++)if(i[o]!==n[o])return!1;return!0}acceptEdit(e,t,i){this._acceptDeleteRange(e),this._acceptInsertText(new u.L(e.startLineNumber,e.startColumn),t,i)}_acceptDeleteRange(e){const t=e.startLineNumber-1;if(t>=this._len)return;if(e.startLineNumber===e.endLineNumber){if(e.startColumn===e.endColumn)return;return void(this._lineTokens[t]=ot.delete(this._lineTokens[t],e.startColumn-1,e.endColumn-1))}this._lineTokens[t]=ot.deleteEnding(this._lineTokens[t],e.startColumn-1);const i=e.endLineNumber-1;let n=null;i<this._len&&(n=ot.deleteBeginning(this._lineTokens[i],e.endColumn-1)),this._lineTokens[t]=ot.append(this._lineTokens[t],n),this._deleteLines(e.startLineNumber,e.endLineNumber-e.startLineNumber)}_acceptInsertText(e,t,i){if(0===t&&0===i)return;const n=e.lineNumber-1;n>=this._len||(0!==t?(this._lineTokens[n]=ot.deleteEnding(this._lineTokens[n],e.column-1),this._lineTokens[n]=ot.insert(this._lineTokens[n],e.column-1,i),this._insertLines(e.lineNumber,t)):this._lineTokens[n]=ot.insert(this._lineTokens[n],e.column-1,i))}}function lt(e){return(32768|e<<0|2<<24|1024)>>>0}class ct{constructor(e){this._pieces=[],this._isComplete=!1,this._languageIdCodec=e}flush(){this._pieces=[],this._isComplete=!1}isEmpty(){return 0===this._pieces.length}set(e,t){this._pieces=e||[],this._isComplete=t}setPartial(e,t){let i=e;if(t.length>0){const n=t[0].getRange(),o=t[t.length-1].getRange();if(!n||!o)return e;i=e.plusRange(n).plusRange(o)}let o=null;for(let n=0,s=this._pieces.length;n<s;n++){const e=this._pieces[n];if(e.endLineNumber<i.startLineNumber)continue;if(e.startLineNumber>i.endLineNumber){o=o||{index:n};break}if(e.removeTokens(i),e.isEmpty()){this._pieces.splice(n,1),n--,s--;continue}if(e.endLineNumber<i.startLineNumber)continue;if(e.startLineNumber>i.endLineNumber){o=o||{index:n};continue}const[t,r]=e.split(i);t.isEmpty()?o=o||{index:n}:r.isEmpty()||(this._pieces.splice(n,1,t,r),n++,s++,o=o||{index:n})}return o=o||{index:this._pieces.length},t.length>0&&(this._pieces=n.Zv(this._pieces,o.index,t)),i}isComplete(){return this._isComplete}addSparseTokens(e,t){if(0===t.getLineContent().length)return t;const i=this._pieces;if(0===i.length)return t;const n=i[ct._findFirstPieceWithLine(i,e)].getLineTokens(e);if(!n)return t;const o=t.getCount(),s=n.getCount();let r=0;const a=[];let l=0,c=0;const d=(e,t)=>{e!==c&&(c=e,a[l++]=e,a[l++]=t)};for(let h=0;h<s;h++){const e=n.getStartCharacter(h),i=n.getEndCharacter(h),s=n.getMetadata(h),a=((1&s?2048:0)|(2&s?4096:0)|(4&s?8192:0)|(8&s?16384:0)|(16&s?16744448:0)|(32&s?4278190080:0))>>>0,l=~a>>>0;for(;r<o&&t.getEndOffset(r)<=e;)d(t.getEndOffset(r),t.getMetadata(r)),r++;for(r<o&&t.getStartOffset(r)<e&&d(e,t.getMetadata(r));r<o&&t.getEndOffset(r)<i;)d(t.getEndOffset(r),t.getMetadata(r)&l|s&a),r++;if(r<o)d(i,t.getMetadata(r)&l|s&a),t.getEndOffset(r)===i&&r++;else{const e=Math.min(Math.max(0,r-1),o-1);d(i,t.getMetadata(e)&l|s&a)}}for(;r<o;)d(t.getEndOffset(r),t.getMetadata(r)),r++;return new Ke.A(new Uint32Array(a),t.getLineContent(),this._languageIdCodec)}static _findFirstPieceWithLine(e,t){let i=0,n=e.length-1;for(;i<n;){let o=i+Math.floor((n-i)/2);if(e[o].endLineNumber<t)i=o+1;else{if(!(e[o].startLineNumber>t)){for(;o>i&&e[o-1].startLineNumber<=t&&t<=e[o-1].endLineNumber;)o--;return o}n=o-1}}return i}acceptEdit(e,t,i,n,o){for(const s of this._pieces)s.acceptEdit(e,t,i,n,o)}}class dt extends Ue.U{constructor(e,t,i,n,o){super(),this._languageService=e,this._languageConfigurationService=t,this._textModel=i,this.bracketPairsTextModelPart=n,this._languageId=o,this._onDidChangeLanguage=this._register(new r.Q5),this.onDidChangeLanguage=this._onDidChangeLanguage.event,this._onDidChangeLanguageConfiguration=this._register(new r.Q5),this.onDidChangeLanguageConfiguration=this._onDidChangeLanguageConfiguration.event,this._onDidChangeTokens=this._register(new r.Q5),this.onDidChangeTokens=this._onDidChangeTokens.event,this._backgroundTokenizationState=0,this._onBackgroundTokenizationStateChanged=this._register(new r.Q5),this._tokens=new at(this._languageService.languageIdCodec),this._semanticTokens=new ct(this._languageService.languageIdCodec),this._tokenization=new tt(i,this,this._languageService.languageIdCodec),this._languageRegistryListener=this._languageConfigurationService.onDidChange((e=>{e.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})}))}acceptEdit(e,t,i,n,o){this._tokens.acceptEdit(e,i,n),this._semanticTokens.acceptEdit(e,i,n,o,t.length>0?t.charCodeAt(0):0)}handleDidChangeAttached(){this._tokenization.handleDidChangeAttached()}flush(){this._tokens.flush(),this._semanticTokens.flush()}handleDidChangeContent(e){this._tokenization.handleDidChangeContent(e)}dispose(){this._languageRegistryListener.dispose(),this._tokenization.dispose(),super.dispose()}get backgroundTokenizationState(){return this._backgroundTokenizationState}handleTokenizationProgress(e){if(2===this._backgroundTokenizationState)return;const t=e?2:1;this._backgroundTokenizationState!==t&&(this._backgroundTokenizationState=t,this.bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState(),this._onBackgroundTokenizationStateChanged.fire())}setTokens(e,t=!1){if(0!==e.length){const t=[];for(let i=0,n=e.length;i<n;i++){const n=e[i];let o=0,s=0,r=!1;for(let e=n.startLineNumber;e<=n.endLineNumber;e++)if(r)this._tokens.setTokens(this._languageId,e-1,this._textModel.getLineLength(e),n.getLineTokens(e),!1),s=e;else{this._tokens.setTokens(this._languageId,e-1,this._textModel.getLineLength(e),n.getLineTokens(e),!0)&&(r=!0,o=e,s=e)}r&&t.push({fromLineNumber:o,toLineNumber:s})}t.length>0&&this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,semanticTokensApplied:!1,ranges:t})}this.handleTokenizationProgress(t)}setSemanticTokens(e,t){this._semanticTokens.set(e,t),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,semanticTokensApplied:null!==e,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]})}hasCompleteSemanticTokens(){return this._semanticTokens.isComplete()}hasSomeSemanticTokens(){return!this._semanticTokens.isEmpty()}setPartialSemanticTokens(e,t){if(this.hasCompleteSemanticTokens())return;const i=this._textModel.validateRange(this._semanticTokens.setPartial(e,t));this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,semanticTokensApplied:!0,ranges:[{fromLineNumber:i.startLineNumber,toLineNumber:i.endLineNumber}]})}tokenizeViewport(e,t){e=Math.max(1,e),t=Math.min(this._textModel.getLineCount(),t),this._tokenization.tokenizeViewport(e,t)}clearTokens(){this._tokens.flush(),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!0,semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]})}_emitModelTokensChangedEvent(e){this._textModel._isDisposing()||(this.bracketPairsTextModelPart.handleDidChangeTokens(e),this._onDidChangeTokens.fire(e))}resetTokenization(){this._tokenization.reset()}forceTokenization(e){if(e<1||e>this._textModel.getLineCount())throw new Error("Illegal value for lineNumber");this._tokenization.forceTokenization(e)}isCheapToTokenize(e){return this._tokenization.isCheapToTokenize(e)}tokenizeIfCheap(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)}getLineTokens(e){if(e<1||e>this._textModel.getLineCount())throw new Error("Illegal value for lineNumber");return this._getLineTokens(e)}_getLineTokens(e){const t=this._textModel.getLineContent(e),i=this._tokens.getTokens(this._languageId,e-1,t);return this._semanticTokens.addSparseTokens(e,i)}getTokenTypeIfInsertingCharacter(e,t,i){const n=this._textModel.validatePosition(new u.L(e,t));return this._tokenization.getTokenTypeIfInsertingCharacter(n,i)}tokenizeLineWithEdit(e,t,i){const n=this._textModel.validatePosition(e);return this._tokenization.tokenizeLineWithEdit(n,t,i)}getLanguageConfiguration(e){return this._languageConfigurationService.getLanguageConfiguration(e)}getWordAtPosition(e){this.assertNotDisposed();const t=this._textModel.validatePosition(e),i=this._textModel.getLineContent(t.lineNumber),n=this._getLineTokens(t.lineNumber),o=n.findTokenIndexAtOffset(t.column-1),[s,r]=dt._findLanguageBoundaries(n,o),a=(0,je.t2)(t.column,this.getLanguageConfiguration(n.getLanguageId(o)).getWordDefinition(),i.substring(s,r),s);if(a&&a.startColumn<=e.column&&e.column<=a.endColumn)return a;if(o>0&&s===t.column-1){const[s,r]=dt._findLanguageBoundaries(n,o-1),a=(0,je.t2)(t.column,this.getLanguageConfiguration(n.getLanguageId(o-1)).getWordDefinition(),i.substring(s,r),s);if(a&&a.startColumn<=e.column&&e.column<=a.endColumn)return a}return null}static _findLanguageBoundaries(e,t){const i=e.getLanguageId(t);let n=0;for(let s=t;s>=0&&e.getLanguageId(s)===i;s--)n=e.getStartOffset(s);let o=e.getLineContent().length;for(let s=t,r=e.getCount();s<r&&e.getLanguageId(s)===i;s++)o=e.getEndOffset(s);return[n,o]}getWordUntilPosition(e){const t=this.getWordAtPosition(e);return t?{word:t.word.substr(0,e.column-t.startColumn),startColumn:t.startColumn,endColumn:e.column}:{word:"",startColumn:e.column,endColumn:e.column}}getLanguageId(){return this._languageId}getLanguageIdAtPosition(e,t){const i=this._textModel.validatePosition(new u.L(e,t)),n=this.getLineTokens(i.lineNumber);return n.getLanguageId(n.findTokenIndexAtOffset(i.column-1))}setLanguageId(e){if(this._languageId===e)return;const t={oldLanguage:this._languageId,newLanguage:e};this._languageId=e,this.bracketPairsTextModelPart.handleDidChangeLanguage(t),this._tokenization.handleDidChangeLanguage(t),this._onDidChangeLanguage.fire(t),this._onDidChangeLanguageConfiguration.fire({})}}var ht=i(14706),ut=i(64862),gt=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},pt=function(e,t){return function(i,n){t(i,n,e)}};function mt(e,t){let i;return i="string"==typeof e?function(e){const t=new ze;return t.acceptChunk(e),t.finish()}(e):v.Hf(e)?function(e){const t=new ze;let i;for(;"string"==typeof(i=e.read());)t.acceptChunk(i);return t.finish()}(e):e,i.create(t)}let ft=0;class _t{constructor(e){this._source=e,this._eos=!1}read(){if(this._eos)return null;const e=[];let t=0,i=0;for(;;){const n=this._source.read();if(null===n)return this._eos=!0,0===t?null:e.join("");if(n.length>0&&(e[t++]=n,i+=n.length),i>=65536)return e.join("")}}}const vt=()=>{throw new Error("Invalid change accessor")};let bt=class e extends a.JT{constructor(t,i,n,o=null,s,a,d){super(),this._undoRedoService=s,this._languageService=a,this._languageConfigurationService=d,this._onWillDispose=this._register(new r.Q5),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new Tt((e=>this.handleBeforeFireDecorationsChangedEvent(e)))),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeOptions=this._register(new r.Q5),this.onDidChangeOptions=this._onDidChangeOptions.event,this._onDidChangeAttached=this._register(new r.Q5),this.onDidChangeAttached=this._onDidChangeAttached.event,this._onDidChangeInjectedText=this._register(new r.Q5),this._eventEmitter=this._register(new Mt),this._deltaDecorationCallCnt=0,ft++,this.id="$model"+ft,this.isForSimpleWidget=n.isForSimpleWidget,this._associatedResource=null==o?c.o.parse("inmemory://model/"+ft):o,this._attachedEditorCount=0;const{textBuffer:h,disposable:u}=mt(t,n.defaultEOL);this._buffer=h,this._bufferDisposable=u,this._options=e.resolveOptions(this._buffer,n),this._bracketPairs=this._register(new O(this,this._languageConfigurationService)),this._guidesTextModelPart=this._register(new U.l(this,this._languageConfigurationService)),this._decorationProvider=this._register(new H(this)),this._tokenizationTextModelPart=new dt(this._languageService,this._languageConfigurationService,this,this._bracketPairs,i);const p=this._buffer.getLineCount(),m=this._buffer.getValueLengthInRange(new g.e(1,1,p,this._buffer.getLineLength(p)+1),0);n.largeFileOptimizations?this._isTooLargeForTokenization=m>e.LARGE_FILE_SIZE_THRESHOLD||p>e.LARGE_FILE_LINE_COUNT_THRESHOLD:this._isTooLargeForTokenization=!1,this._isTooLargeForSyncing=m>e.MODEL_SYNC_LIMIT,this._versionId=1,this._alternativeVersionId=1,this._initialUndoRedoSnapshot=null,this._isDisposed=!1,this.__isDisposing=!1,this._instanceId=l.PJ(ft),this._lastDecorationId=0,this._decorations=Object.create(null),this._decorationsTree=new yt,this._commandManager=new j.NL(this,this._undoRedoService),this._isUndoing=!1,this._isRedoing=!1,this._trimAutoWhitespaceLines=null,this._register(this._decorationProvider.onDidChange((()=>{this._onDidChangeDecorations.beginDeferredEmit(),this._onDidChangeDecorations.fire(),this._onDidChangeDecorations.endDeferredEmit()})))}static resolveOptions(e,t){if(t.detectIndentation){const i=q(e,t.tabSize,t.insertSpaces);return new v.dJ({tabSize:i.tabSize,indentSize:i.tabSize,insertSpaces:i.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL,bracketPairColorizationOptions:t.bracketPairColorizationOptions})}return new v.dJ({tabSize:t.tabSize,indentSize:t.indentSize,insertSpaces:t.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL,bracketPairColorizationOptions:t.bracketPairColorizationOptions})}get onDidChangeLanguage(){return this._tokenizationTextModelPart.onDidChangeLanguage}get onDidChangeLanguageConfiguration(){return this._tokenizationTextModelPart.onDidChangeLanguageConfiguration}get onDidChangeTokens(){return this._tokenizationTextModelPart.onDidChangeTokens}onDidChangeContent(e){return this._eventEmitter.slowEvent((t=>e(t.contentChangedEvent)))}onDidChangeContentOrInjectedText(e){return(0,a.F8)(this._eventEmitter.fastEvent((t=>e(t))),this._onDidChangeInjectedText.event((t=>e(t))))}_isDisposing(){return this.__isDisposing}get tokenization(){return this._tokenizationTextModelPart}get bracketPairs(){return this._bracketPairs}get guides(){return this._guidesTextModelPart}dispose(){this.__isDisposing=!0,this._onWillDispose.fire(),this._tokenizationTextModelPart.dispose(),this._isDisposed=!0,super.dispose(),this._bufferDisposable.dispose(),this.__isDisposing=!1;const e=new We([],"","\n",!1,!1,!0,!0);e.dispose(),this._buffer=e,this._bufferDisposable=a.JT.None}_assertNotDisposed(){if(this._isDisposed)throw new Error("Model is disposed!")}_emitContentChangedEvent(e,t){this.__isDisposing||(this._tokenizationTextModelPart.handleDidChangeContent(t),this._bracketPairs.handleDidChangeContent(t),this._eventEmitter.fire(new ht.fV(e,t)))}setValue(e){if(this._assertNotDisposed(),null===e)return;const{textBuffer:t,disposable:i}=mt(e,this._options.defaultEOL);this._setValueFromTextBuffer(t,i)}_createContentChanged2(e,t,i,n,o,s,r){return{changes:[{range:e,rangeOffset:t,rangeLength:i,text:n}],eol:this._buffer.getEOL(),versionId:this.getVersionId(),isUndoing:o,isRedoing:s,isFlush:r}}_setValueFromTextBuffer(e,t){this._assertNotDisposed();const i=this.getFullModelRange(),n=this.getValueLengthInRange(i),o=this.getLineCount(),s=this.getLineMaxColumn(o);this._buffer=e,this._bufferDisposable.dispose(),this._bufferDisposable=t,this._increaseVersionId(),this._tokenizationTextModelPart.flush(),this._decorations=Object.create(null),this._decorationsTree=new yt,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new ht.dQ([new ht.Jx],this._versionId,!1,!1),this._createContentChanged2(new g.e(1,1,o,s),0,n,this.getValue(),!1,!1,!0))}setEOL(e){this._assertNotDisposed();const t=1===e?"\r\n":"\n";if(this._buffer.getEOL()===t)return;const i=this.getFullModelRange(),n=this.getValueLengthInRange(i),o=this.getLineCount(),s=this.getLineMaxColumn(o);this._onBeforeEOLChange(),this._buffer.setEOL(t),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new ht.dQ([new ht.CZ],this._versionId,!1,!1),this._createContentChanged2(new g.e(1,1,o,s),0,n,this.getValue(),!1,!1,!1))}_onBeforeEOLChange(){this._decorationsTree.ensureAllNodesHaveRanges(this)}_onAfterEOLChange(){const e=this.getVersionId(),t=this._decorationsTree.collectNodesPostOrder();for(let i=0,n=t.length;i<n;i++){const n=t[i],o=n.range,s=n.cachedAbsoluteStart-n.start,r=this._buffer.getOffsetAt(o.startLineNumber,o.startColumn),a=this._buffer.getOffsetAt(o.endLineNumber,o.endColumn);n.cachedAbsoluteStart=r,n.cachedAbsoluteEnd=a,n.cachedVersionId=e,n.start=r-s,n.end=a-s,ge(n)}}onBeforeAttached(){this._attachedEditorCount++,1===this._attachedEditorCount&&(this._tokenizationTextModelPart.handleDidChangeAttached(),this._onDidChangeAttached.fire(void 0))}onBeforeDetached(){this._attachedEditorCount--,0===this._attachedEditorCount&&(this._tokenizationTextModelPart.handleDidChangeAttached(),this._onDidChangeAttached.fire(void 0))}isAttachedToEditor(){return this._attachedEditorCount>0}getAttachedEditorCount(){return this._attachedEditorCount}isTooLargeForSyncing(){return this._isTooLargeForSyncing}isTooLargeForTokenization(){return this._isTooLargeForTokenization}isDisposed(){return this._isDisposed}isDominatedByLongLines(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;let e=0,t=0;const i=this._buffer.getLineCount();for(let n=1;n<=i;n++){const i=this._buffer.getLineLength(n);i>=1e4?t+=i:e+=i}return t>e}get uri(){return this._associatedResource}getOptions(){return this._assertNotDisposed(),this._options}getFormattingOptions(){return{tabSize:this._options.indentSize,insertSpaces:this._options.insertSpaces}}updateOptions(e){this._assertNotDisposed();const t=void 0!==e.tabSize?e.tabSize:this._options.tabSize,i=void 0!==e.indentSize?e.indentSize:this._options.indentSize,n=void 0!==e.insertSpaces?e.insertSpaces:this._options.insertSpaces,o=void 0!==e.trimAutoWhitespace?e.trimAutoWhitespace:this._options.trimAutoWhitespace,s=void 0!==e.bracketColorizationOptions?e.bracketColorizationOptions:this._options.bracketPairColorizationOptions,r=new v.dJ({tabSize:t,indentSize:i,insertSpaces:n,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:o,bracketPairColorizationOptions:s});if(this._options.equals(r))return;const a=this._options.createChangeEvent(r);this._options=r,this._bracketPairs.handleDidChangeOptions(a),this._decorationProvider.handleDidChangeOptions(a),this._onDidChangeOptions.fire(a)}detectIndentation(e,t){this._assertNotDisposed();const i=q(this._buffer,t,e);this.updateOptions({insertSpaces:i.insertSpaces,tabSize:i.tabSize,indentSize:i.tabSize})}normalizeIndentation(e){return this._assertNotDisposed(),(0,h.x)(e,this._options.indentSize,this._options.insertSpaces)}getVersionId(){return this._assertNotDisposed(),this._versionId}mightContainRTL(){return this._buffer.mightContainRTL()}mightContainUnusualLineTerminators(){return this._buffer.mightContainUnusualLineTerminators()}removeUnusualLineTerminators(e=null){const t=this.findMatches(l.Qe.source,!1,!0,!1,null,!1,1073741824);this._buffer.resetMightContainUnusualLineTerminators(),this.pushEditOperations(e,t.map((e=>({range:e.range,text:null}))),(()=>null))}mightContainNonBasicASCII(){return this._buffer.mightContainNonBasicASCII()}getAlternativeVersionId(){return this._assertNotDisposed(),this._alternativeVersionId}getInitialUndoRedoSnapshot(){return this._assertNotDisposed(),this._initialUndoRedoSnapshot}getOffsetAt(e){this._assertNotDisposed();const t=this._validatePosition(e.lineNumber,e.column,0);return this._buffer.getOffsetAt(t.lineNumber,t.column)}getPositionAt(e){this._assertNotDisposed();const t=Math.min(this._buffer.getLength(),Math.max(0,e));return this._buffer.getPositionAt(t)}_increaseVersionId(){this._versionId=this._versionId+1,this._alternativeVersionId=this._versionId}_overwriteVersionId(e){this._versionId=e}_overwriteAlternativeVersionId(e){this._alternativeVersionId=e}_overwriteInitialUndoRedoSnapshot(e){this._initialUndoRedoSnapshot=e}getValue(e,t=!1){this._assertNotDisposed();const i=this.getFullModelRange(),n=this.getValueInRange(i,e);return t?this._buffer.getBOM()+n:n}createSnapshot(e=!1){return new _t(this._buffer.createSnapshot(e))}getValueLength(e,t=!1){this._assertNotDisposed();const i=this.getFullModelRange(),n=this.getValueLengthInRange(i,e);return t?this._buffer.getBOM().length+n:n}getValueInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getValueInRange(this.validateRange(e),t)}getValueLengthInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getValueLengthInRange(this.validateRange(e),t)}getCharacterCountInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getCharacterCountInRange(this.validateRange(e),t)}getLineCount(){return this._assertNotDisposed(),this._buffer.getLineCount()}getLineContent(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineContent(e)}getLineLength(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLength(e)}getLinesContent(){return this._assertNotDisposed(),this._buffer.getLinesContent()}getEOL(){return this._assertNotDisposed(),this._buffer.getEOL()}getEndOfLineSequence(){return this._assertNotDisposed(),"\n"===this._buffer.getEOL()?0:1}getLineMinColumn(e){return this._assertNotDisposed(),1}getLineMaxColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLength(e)+1}getLineFirstNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(e)}getLineLastNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLastNonWhitespaceColumn(e)}_validateRangeRelaxedNoAllocations(e){const t=this._buffer.getLineCount(),i=e.startLineNumber,n=e.startColumn;let o=Math.floor("number"!=typeof i||isNaN(i)?1:i),s=Math.floor("number"!=typeof n||isNaN(n)?1:n);if(o<1)o=1,s=1;else if(o>t)o=t,s=this.getLineMaxColumn(o);else if(s<=1)s=1;else{const e=this.getLineMaxColumn(o);s>=e&&(s=e)}const r=e.endLineNumber,a=e.endColumn;let l=Math.floor("number"!=typeof r||isNaN(r)?1:r),c=Math.floor("number"!=typeof a||isNaN(a)?1:a);if(l<1)l=1,c=1;else if(l>t)l=t,c=this.getLineMaxColumn(l);else if(c<=1)c=1;else{const e=this.getLineMaxColumn(l);c>=e&&(c=e)}return i===o&&n===s&&r===l&&a===c&&e instanceof g.e&&!(e instanceof p.Y)?e:new g.e(o,s,l,c)}_isValidPosition(e,t,i){if("number"!=typeof e||"number"!=typeof t)return!1;if(isNaN(e)||isNaN(t))return!1;if(e<1||t<1)return!1;if((0|e)!==e||(0|t)!==t)return!1;if(e>this._buffer.getLineCount())return!1;if(1===t)return!0;if(t>this.getLineMaxColumn(e))return!1;if(1===i){const i=this._buffer.getLineCharCode(e,t-2);if(l.ZG(i))return!1}return!0}_validatePosition(e,t,i){const n=Math.floor("number"!=typeof e||isNaN(e)?1:e),o=Math.floor("number"!=typeof t||isNaN(t)?1:t),s=this._buffer.getLineCount();if(n<1)return new u.L(1,1);if(n>s)return new u.L(s,this.getLineMaxColumn(s));if(o<=1)return new u.L(n,1);const r=this.getLineMaxColumn(n);if(o>=r)return new u.L(n,r);if(1===i){const e=this._buffer.getLineCharCode(n,o-2);if(l.ZG(e))return new u.L(n,o-1)}return new u.L(n,o)}validatePosition(e){return this._assertNotDisposed(),e instanceof u.L&&this._isValidPosition(e.lineNumber,e.column,1)?e:this._validatePosition(e.lineNumber,e.column,1)}_isValidRange(e,t){const i=e.startLineNumber,n=e.startColumn,o=e.endLineNumber,s=e.endColumn;if(!this._isValidPosition(i,n,0))return!1;if(!this._isValidPosition(o,s,0))return!1;if(1===t){const e=n>1?this._buffer.getLineCharCode(i,n-2):0,t=s>1&&s<=this._buffer.getLineLength(o)?this._buffer.getLineCharCode(o,s-2):0,r=l.ZG(e),a=l.ZG(t);return!r&&!a}return!0}validateRange(e){if(this._assertNotDisposed(),e instanceof g.e&&!(e instanceof p.Y)&&this._isValidRange(e,1))return e;const t=this._validatePosition(e.startLineNumber,e.startColumn,0),i=this._validatePosition(e.endLineNumber,e.endColumn,0),n=t.lineNumber,o=t.column,s=i.lineNumber,r=i.column;{const e=o>1?this._buffer.getLineCharCode(n,o-2):0,t=r>1&&r<=this._buffer.getLineLength(s)?this._buffer.getLineCharCode(s,r-2):0,i=l.ZG(e),a=l.ZG(t);return i||a?n===s&&o===r?new g.e(n,o-1,s,r-1):i&&a?new g.e(n,o-1,s,r+1):i?new g.e(n,o-1,s,r):new g.e(n,o,s,r+1):new g.e(n,o,s,r)}}modifyPosition(e,t){this._assertNotDisposed();const i=this.getOffsetAt(e)+t;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,i)))}getFullModelRange(){this._assertNotDisposed();const e=this.getLineCount();return new g.e(1,1,e,this.getLineMaxColumn(e))}findMatchesLineByLine(e,t,i,n){return this._buffer.findMatchesLineByLine(e,t,i,n)}findMatches(e,t,i,n,o,s,r=999){this._assertNotDisposed();let a=null;null!==t&&(Array.isArray(t)||(t=[t]),t.every((e=>g.e.isIRange(e)))&&(a=t.map((e=>this.validateRange(e))))),null===a&&(a=[this.getFullModelRange()]),a=a.sort(((e,t)=>e.startLineNumber-t.startLineNumber||e.startColumn-t.startColumn));const l=[];let c;if(l.push(a.reduce(((e,t)=>g.e.areIntersecting(e,t)?e.plusRange(t):(l.push(e),t)))),!i&&e.indexOf("\n")<0){const t=new Ee.bc(e,i,n,o).parseSearchRequest();if(!t)return[];c=e=>this.findMatchesLineByLine(e,t,s,r)}else c=t=>Ee.pM.findMatches(this,new Ee.bc(e,i,n,o),t,s,r);return l.map(c).reduce(((e,t)=>e.concat(t)),[])}findNextMatch(e,t,i,n,o,s){this._assertNotDisposed();const r=this.validatePosition(t);if(!i&&e.indexOf("\n")<0){const t=new Ee.bc(e,i,n,o).parseSearchRequest();if(!t)return null;const a=this.getLineCount();let l=new g.e(r.lineNumber,r.column,a,this.getLineMaxColumn(a)),c=this.findMatchesLineByLine(l,t,s,1);return Ee.pM.findNextMatch(this,new Ee.bc(e,i,n,o),r,s),c.length>0?c[0]:(l=new g.e(1,1,r.lineNumber,this.getLineMaxColumn(r.lineNumber)),c=this.findMatchesLineByLine(l,t,s,1),c.length>0?c[0]:null)}return Ee.pM.findNextMatch(this,new Ee.bc(e,i,n,o),r,s)}findPreviousMatch(e,t,i,n,o,s){this._assertNotDisposed();const r=this.validatePosition(t);return Ee.pM.findPreviousMatch(this,new Ee.bc(e,i,n,o),r,s)}pushStackElement(){this._commandManager.pushStackElement()}popStackElement(){this._commandManager.popStackElement()}pushEOL(e){if(("\n"===this.getEOL()?0:1)!==e)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),null===this._initialUndoRedoSnapshot&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEOL(e)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_validateEditOperation(e){return e instanceof v.Qi?e:new v.Qi(e.identifier||null,this.validateRange(e.range),e.text,e.forceMoveMarkers||!1,e.isAutoWhitespaceEdit||!1,e._isTracked||!1)}_validateEditOperations(e){const t=[];for(let i=0,n=e.length;i<n;i++)t[i]=this._validateEditOperation(e[i]);return t}pushEditOperations(e,t,i){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._pushEditOperations(e,this._validateEditOperations(t),i)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_pushEditOperations(e,t,i){if(this._options.trimAutoWhitespace&&this._trimAutoWhitespaceLines){const i=t.map((e=>({range:this.validateRange(e.range),text:e.text})));let n=!0;if(e)for(let t=0,o=e.length;t<o;t++){const o=e[t];let s=!1;for(let e=0,t=i.length;e<t;e++){const t=i[e].range,n=t.startLineNumber>o.endLineNumber,r=o.startLineNumber>t.endLineNumber;if(!n&&!r){s=!0;break}}if(!s){n=!1;break}}if(n)for(let e=0,o=this._trimAutoWhitespaceLines.length;e<o;e++){const n=this._trimAutoWhitespaceLines[e],o=this.getLineMaxColumn(n);let s=!0;for(let e=0,t=i.length;e<t;e++){const t=i[e].range,r=i[e].text;if(!(n<t.startLineNumber||n>t.endLineNumber)&&!(n===t.startLineNumber&&t.startColumn===o&&t.isEmpty()&&r&&r.length>0&&"\n"===r.charAt(0)||n===t.startLineNumber&&1===t.startColumn&&t.isEmpty()&&r&&r.length>0&&"\n"===r.charAt(r.length-1))){s=!1;break}}if(s){const e=new g.e(n,1,n,o);t.push(new v.Qi(null,e,null,!1,!1,!1))}}this._trimAutoWhitespaceLines=null}return null===this._initialUndoRedoSnapshot&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEditOperation(e,t,i)}_applyUndo(e,t,i,n){const o=e.map((e=>{const t=this.getPositionAt(e.newPosition),i=this.getPositionAt(e.newEnd);return{range:new g.e(t.lineNumber,t.column,i.lineNumber,i.column),text:e.oldText}}));this._applyUndoRedoEdits(o,t,!0,!1,i,n)}_applyRedo(e,t,i,n){const o=e.map((e=>{const t=this.getPositionAt(e.oldPosition),i=this.getPositionAt(e.oldEnd);return{range:new g.e(t.lineNumber,t.column,i.lineNumber,i.column),text:e.newText}}));this._applyUndoRedoEdits(o,t,!1,!0,i,n)}_applyUndoRedoEdits(e,t,i,n,o,s){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=i,this._isRedoing=n,this.applyEdits(e,!1),this.setEOL(t),this._overwriteAlternativeVersionId(o)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(s),this._onDidChangeDecorations.endDeferredEmit()}}applyEdits(e,t=!1){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit();const i=this._validateEditOperations(e);return this._doApplyEdits(i,t)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_doApplyEdits(e,t){const i=this._buffer.getLineCount(),o=this._buffer.applyEdits(e,this._options.trimAutoWhitespace,t),s=this._buffer.getLineCount(),r=o.changes;if(this._trimAutoWhitespaceLines=o.trimAutoWhitespaceLineNumbers,0!==r.length){for(let i=0,n=r.length;i<n;i++){const e=r[i],[t,n,o]=(0,d.Q)(e.text);this._tokenizationTextModelPart.acceptEdit(e.range,e.text,t,n,o),this._decorationsTree.acceptReplace(e.rangeOffset,e.rangeLength,e.text.length,e.forceMoveMarkers)}const e=[];this._increaseVersionId();let t=i;for(let i=0,o=r.length;i<o;i++){const o=r[i],[a]=(0,d.Q)(o.text);this._onDidChangeDecorations.fire();const l=o.range.startLineNumber,c=o.range.endLineNumber,h=c-l,g=a,p=Math.min(h,g),m=g-h,f=s-t-m+l,_=f,v=f+g,b=this._decorationsTree.getInjectedTextInInterval(this,this.getOffsetAt(new u.L(_,1)),this.getOffsetAt(new u.L(v,this.getLineMaxColumn(v))),0),C=ht.gk.fromDecorations(b),w=new n.H9(C);for(let t=p;t>=0;t--){const i=l+t,n=f+t;w.takeFromEndWhile((e=>e.lineNumber>n));const o=w.takeFromEndWhile((e=>e.lineNumber===n));e.push(new ht.rU(i,this.getLineContent(n),o))}if(p<h){const t=l+p;e.push(new ht.lN(t+1,c))}if(p<g){const i=new n.H9(C),o=l+p,r=g-p,a=s-t-r+o+1,c=[],d=[];for(let e=0;e<r;e++){const t=a+e;d[e]=this.getLineContent(t),i.takeWhile((e=>e.lineNumber<t)),c[e]=i.takeWhile((e=>e.lineNumber===t))}e.push(new ht.Tx(o+1,l+g,d,c))}t+=m}this._emitContentChangedEvent(new ht.dQ(e,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:r,eol:this._buffer.getEOL(),versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return null===o.reverseEdits?void 0:o.reverseEdits}undo(){return this._undoRedoService.undo(this.uri)}canUndo(){return this._undoRedoService.canUndo(this.uri)}redo(){return this._undoRedoService.redo(this.uri)}canRedo(){return this._undoRedoService.canRedo(this.uri)}handleBeforeFireDecorationsChangedEvent(e){if(null===e||0===e.size)return;const t=Array.from(e).map((e=>new ht.rU(e,this.getLineContent(e),this._getInjectedTextInLine(e))));this._onDidChangeInjectedText.fire(new ht.D8(t))}changeDecorations(e,t=0){this._assertNotDisposed();try{return this._onDidChangeDecorations.beginDeferredEmit(),this._changeDecorations(t,e)}finally{this._onDidChangeDecorations.endDeferredEmit()}}_changeDecorations(e,t){const i={addDecoration:(t,i)=>this._deltaDecorationsImpl(e,[],[{range:t,options:i}])[0],changeDecoration:(e,t)=>{this._changeDecorationImpl(e,t)},changeDecorationOptions:(e,t)=>{this._changeDecorationOptionsImpl(e,It(t))},removeDecoration:t=>{this._deltaDecorationsImpl(e,[t],[])},deltaDecorations:(t,i)=>0===t.length&&0===i.length?[]:this._deltaDecorationsImpl(e,t,i)};let n=null;try{n=t(i)}catch(o){(0,s.dL)(o)}return i.addDecoration=vt,i.changeDecoration=vt,i.changeDecorationOptions=vt,i.removeDecoration=vt,i.deltaDecorations=vt,n}deltaDecorations(e,t,i=0){if(this._assertNotDisposed(),e||(e=[]),0===e.length&&0===t.length)return[];try{return this._deltaDecorationCallCnt++,this._deltaDecorationCallCnt>1&&(console.warn("Invoking deltaDecorations recursively could lead to leaking decorations."),(0,s.dL)(new Error("Invoking deltaDecorations recursively could lead to leaking decorations."))),this._onDidChangeDecorations.beginDeferredEmit(),this._deltaDecorationsImpl(i,e,t)}finally{this._onDidChangeDecorations.endDeferredEmit(),this._deltaDecorationCallCnt--}}_getTrackedRange(e){return this.getDecorationRange(e)}_setTrackedRange(e,t,i){const n=e?this._decorations[e]:null;if(!n)return t?this._deltaDecorationsImpl(0,[],[{range:t,options:Et[i]}])[0]:null;if(!t)return this._decorationsTree.delete(n),delete this._decorations[n.id],null;const o=this._validateRangeRelaxedNoAllocations(t),s=this._buffer.getOffsetAt(o.startLineNumber,o.startColumn),r=this._buffer.getOffsetAt(o.endLineNumber,o.endColumn);return this._decorationsTree.delete(n),n.reset(this.getVersionId(),s,r,o),n.setOptions(Et[i]),this._decorationsTree.insert(n),n.id}removeAllDecorationsWithOwnerId(e){if(this._isDisposed)return;const t=this._decorationsTree.collectNodesFromOwner(e);for(let i=0,n=t.length;i<n;i++){const e=t[i];this._decorationsTree.delete(e),delete this._decorations[e.id]}}getDecorationOptions(e){const t=this._decorations[e];return t?t.options:null}getDecorationRange(e){const t=this._decorations[e];return t?this._decorationsTree.getNodeRange(this,t):null}getLineDecorations(e,t=0,i=!1){return e<1||e>this.getLineCount()?[]:this.getLinesDecorations(e,e,t,i)}getLinesDecorations(e,t,i=0,o=!1){const s=this.getLineCount(),r=Math.min(s,Math.max(1,e)),a=Math.min(s,Math.max(1,t)),l=this.getLineMaxColumn(a),c=new g.e(r,1,a,l),d=this._getDecorationsInRange(c,i,o);return(0,n.vA)(d,this._decorationProvider.getDecorationsInRange(c,i,o)),d}getDecorationsInRange(e,t=0,i=!1){const o=this.validateRange(e),s=this._getDecorationsInRange(o,t,i);return(0,n.vA)(s,this._decorationProvider.getDecorationsInRange(o,t,i)),s}getOverviewRulerDecorations(e=0,t=!1){return this._decorationsTree.getAll(this,e,t,!0)}getInjectedTextDecorations(e=0){return this._decorationsTree.getAllInjectedText(this,e)}_getInjectedTextInLine(e){const t=this._buffer.getOffsetAt(e,1),i=t+this._buffer.getLineLength(e),n=this._decorationsTree.getInjectedTextInInterval(this,t,i,0);return ht.gk.fromDecorations(n).filter((t=>t.lineNumber===e))}getAllDecorations(e=0,t=!1){let i=this._decorationsTree.getAll(this,e,t,!1);return i=i.concat(this._decorationProvider.getAllDecorations(e,t)),i}_getDecorationsInRange(e,t,i){const n=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),o=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn);return this._decorationsTree.getAllInInterval(this,n,o,t,i)}getRangeAt(e,t){return this._buffer.getRangeAt(e,t-e)}_changeDecorationImpl(e,t){const i=this._decorations[e];if(!i)return;if(i.options.after){const t=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(t.endLineNumber)}if(i.options.before){const t=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(t.startLineNumber)}const n=this._validateRangeRelaxedNoAllocations(t),o=this._buffer.getOffsetAt(n.startLineNumber,n.startColumn),s=this._buffer.getOffsetAt(n.endLineNumber,n.endColumn);this._decorationsTree.delete(i),i.reset(this.getVersionId(),o,s,n),this._decorationsTree.insert(i),this._onDidChangeDecorations.checkAffectedAndFire(i.options),i.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(n.endLineNumber),i.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(n.startLineNumber)}_changeDecorationOptionsImpl(e,t){const i=this._decorations[e];if(!i)return;const n=!(!i.options.overviewRuler||!i.options.overviewRuler.color),o=!(!t.overviewRuler||!t.overviewRuler.color);if(this._onDidChangeDecorations.checkAffectedAndFire(i.options),this._onDidChangeDecorations.checkAffectedAndFire(t),i.options.after||t.after){const e=this._decorationsTree.getNodeRange(this,i);this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.endLineNumber)}if(i.options.before||t.before){const e=this._decorationsTree.getNodeRange(this,i);this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.startLineNumber)}n!==o?(this._decorationsTree.delete(i),i.setOptions(t),this._decorationsTree.insert(i)):i.setOptions(t)}_deltaDecorationsImpl(e,t,i){const n=this.getVersionId(),o=t.length;let s=0;const r=i.length;let a=0;const l=new Array(r);for(;s<o||a<r;){let c=null;if(s<o){do{c=this._decorations[t[s++]]}while(!c&&s<o);if(c){if(c.options.after){const e=this._decorationsTree.getNodeRange(this,c);this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.endLineNumber)}if(c.options.before){const e=this._decorationsTree.getNodeRange(this,c);this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.startLineNumber)}this._decorationsTree.delete(c),this._onDidChangeDecorations.checkAffectedAndFire(c.options)}}if(a<r){if(!c){const e=++this._lastDecorationId,t=`${this._instanceId};${e}`;c=new ie(t,0,0),this._decorations[t]=c}const t=i[a],o=this._validateRangeRelaxedNoAllocations(t.range),s=It(t.options),r=this._buffer.getOffsetAt(o.startLineNumber,o.startColumn),d=this._buffer.getOffsetAt(o.endLineNumber,o.endColumn);c.ownerId=e,c.reset(n,r,d,o),c.setOptions(s),c.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(o.endLineNumber),c.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(o.startLineNumber),this._onDidChangeDecorations.checkAffectedAndFire(s),this._decorationsTree.insert(c),l[a]=c.id,a++}else c&&delete this._decorations[c.id]}return l}getLanguageId(){return this.tokenization.getLanguageId()}setMode(e){this.tokenization.setLanguageId(e)}getLanguageIdAtPosition(e,t){return this.tokenization.getLanguageIdAtPosition(e,t)}getWordAtPosition(e){return this._tokenizationTextModelPart.getWordAtPosition(e)}getWordUntilPosition(e){return this._tokenizationTextModelPart.getWordUntilPosition(e)}normalizePosition(e,t){return e}getLineIndentColumn(e){return function(e){let t=0;for(const i of e){if(" "!==i&&"\t"!==i)break;t++}return t}(this.getLineContent(e))+1}};function Ct(e){return!(!e.options.overviewRuler||!e.options.overviewRuler.color)}function wt(e){return!!e.options.after||!!e.options.before}bt.MODEL_SYNC_LIMIT=52428800,bt.LARGE_FILE_SIZE_THRESHOLD=20971520,bt.LARGE_FILE_LINE_COUNT_THRESHOLD=3e5,bt.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:m.D.tabSize,indentSize:m.D.indentSize,insertSpaces:m.D.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:m.D.trimAutoWhitespace,largeFileOptimizations:m.D.largeFileOptimizations,bracketPairColorizationOptions:m.D.bracketPairColorizationOptions},bt=gt([pt(4,ut.tJ),pt(5,f.O),pt(6,_.c_)],bt);class yt{constructor(){this._decorationsTree0=new oe,this._decorationsTree1=new oe,this._injectedTextDecorationsTree=new oe}ensureAllNodesHaveRanges(e){this.getAll(e,0,!1,!1)}_ensureNodesHaveRanges(e,t){for(const i of t)null===i.range&&(i.range=e.getRangeAt(i.cachedAbsoluteStart,i.cachedAbsoluteEnd));return t}getAllInInterval(e,t,i,n,o){const s=e.getVersionId(),r=this._intervalSearch(t,i,n,o,s);return this._ensureNodesHaveRanges(e,r)}_intervalSearch(e,t,i,n,o){const s=this._decorationsTree0.intervalSearch(e,t,i,n,o),r=this._decorationsTree1.intervalSearch(e,t,i,n,o),a=this._injectedTextDecorationsTree.intervalSearch(e,t,i,n,o);return s.concat(r).concat(a)}getInjectedTextInInterval(e,t,i,n){const o=e.getVersionId(),s=this._injectedTextDecorationsTree.intervalSearch(t,i,n,!1,o);return this._ensureNodesHaveRanges(e,s).filter((e=>e.options.showIfCollapsed||!e.range.isEmpty()))}getAllInjectedText(e,t){const i=e.getVersionId(),n=this._injectedTextDecorationsTree.search(t,!1,i);return this._ensureNodesHaveRanges(e,n).filter((e=>e.options.showIfCollapsed||!e.range.isEmpty()))}getAll(e,t,i,n){const o=e.getVersionId(),s=this._search(t,i,n,o);return this._ensureNodesHaveRanges(e,s)}_search(e,t,i,n){if(i)return this._decorationsTree1.search(e,t,n);{const i=this._decorationsTree0.search(e,t,n),o=this._decorationsTree1.search(e,t,n),s=this._injectedTextDecorationsTree.search(e,t,n);return i.concat(o).concat(s)}}collectNodesFromOwner(e){const t=this._decorationsTree0.collectNodesFromOwner(e),i=this._decorationsTree1.collectNodesFromOwner(e),n=this._injectedTextDecorationsTree.collectNodesFromOwner(e);return t.concat(i).concat(n)}collectNodesPostOrder(){const e=this._decorationsTree0.collectNodesPostOrder(),t=this._decorationsTree1.collectNodesPostOrder(),i=this._injectedTextDecorationsTree.collectNodesPostOrder();return e.concat(t).concat(i)}insert(e){wt(e)?this._injectedTextDecorationsTree.insert(e):Ct(e)?this._decorationsTree1.insert(e):this._decorationsTree0.insert(e)}delete(e){wt(e)?this._injectedTextDecorationsTree.delete(e):Ct(e)?this._decorationsTree1.delete(e):this._decorationsTree0.delete(e)}getNodeRange(e,t){const i=e.getVersionId();return t.cachedVersionId!==i&&this._resolveNode(t,i),null===t.range&&(t.range=e.getRangeAt(t.cachedAbsoluteStart,t.cachedAbsoluteEnd)),t.range}_resolveNode(e,t){wt(e)?this._injectedTextDecorationsTree.resolveNode(e,t):Ct(e)?this._decorationsTree1.resolveNode(e,t):this._decorationsTree0.resolveNode(e,t)}acceptReplace(e,t,i,n){this._decorationsTree0.acceptReplace(e,t,i,n),this._decorationsTree1.acceptReplace(e,t,i,n),this._injectedTextDecorationsTree.acceptReplace(e,t,i,n)}}function St(e){return e.replace(/[^a-z0-9\-_]/gi," ")}class Lt{constructor(e){this.color=e.color||"",this.darkColor=e.darkColor||""}}class kt extends Lt{constructor(e){super(e),this._resolvedColor=null,this.position="number"==typeof e.position?e.position:v.sh.Center}getColor(e){return this._resolvedColor||("light"!==e.type&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=null}_resolveColor(e,t){if("string"==typeof e)return e;const i=e?t.getColor(e.id):null;return i?i.toString():""}}class xt extends Lt{constructor(e){super(e),this.position=e.position}getColor(e){return this._resolvedColor||("light"!==e.type&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=void 0}_resolveColor(e,t){return"string"==typeof e?o.Il.fromHex(e):t.getColor(e.id)}}class Dt{constructor(e){this.content=e.content||"",this.inlineClassName=e.inlineClassName||null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.attachedData=e.attachedData||null,this.cursorStops=e.cursorStops||null}static from(e){return e instanceof Dt?e:new Dt(e)}}class Nt{constructor(e){var t,i;this.description=e.description,this.blockClassName=e.blockClassName?St(e.blockClassName):null,this.stickiness=e.stickiness||0,this.zIndex=e.zIndex||0,this.className=e.className?St(e.className):null,this.hoverMessage=e.hoverMessage||null,this.glyphMarginHoverMessage=e.glyphMarginHoverMessage||null,this.isWholeLine=e.isWholeLine||!1,this.showIfCollapsed=e.showIfCollapsed||!1,this.collapseOnReplaceEdit=e.collapseOnReplaceEdit||!1,this.overviewRuler=e.overviewRuler?new kt(e.overviewRuler):null,this.minimap=e.minimap?new xt(e.minimap):null,this.glyphMarginClassName=e.glyphMarginClassName?St(e.glyphMarginClassName):null,this.linesDecorationsClassName=e.linesDecorationsClassName?St(e.linesDecorationsClassName):null,this.firstLineDecorationClassName=e.firstLineDecorationClassName?St(e.firstLineDecorationClassName):null,this.marginClassName=e.marginClassName?St(e.marginClassName):null,this.inlineClassName=e.inlineClassName?St(e.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=e.beforeContentClassName?St(e.beforeContentClassName):null,this.afterContentClassName=e.afterContentClassName?St(e.afterContentClassName):null,this.after=e.after?Dt.from(e.after):null,this.before=e.before?Dt.from(e.before):null,this.hideInCommentTokens=null!==(t=e.hideInCommentTokens)&&void 0!==t&&t,this.hideInStringTokens=null!==(i=e.hideInStringTokens)&&void 0!==i&&i}static register(e){return new Nt(e)}static createDynamic(e){return new Nt(e)}}Nt.EMPTY=Nt.register({description:"empty"});const Et=[Nt.register({description:"tracked-range-always-grows-when-typing-at-edges",stickiness:0}),Nt.register({description:"tracked-range-never-grows-when-typing-at-edges",stickiness:1}),Nt.register({description:"tracked-range-grows-only-when-typing-before",stickiness:2}),Nt.register({description:"tracked-range-grows-only-when-typing-after",stickiness:3})];function It(e){return e instanceof Nt?e:Nt.createDynamic(e)}class Tt extends a.JT{constructor(e){super(),this.handleBeforeFire=e,this._actual=this._register(new r.Q5),this.event=this._actual.event,this._affectedInjectedTextLines=null,this._deferredCnt=0,this._shouldFire=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(){var e;if(this._deferredCnt--,0===this._deferredCnt){if(this._shouldFire){this.handleBeforeFire(this._affectedInjectedTextLines);const e={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler};this._shouldFire=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._actual.fire(e)}null===(e=this._affectedInjectedTextLines)||void 0===e||e.clear(),this._affectedInjectedTextLines=null}}recordLineAffectedByInjectedText(e){this._affectedInjectedTextLines||(this._affectedInjectedTextLines=new Set),this._affectedInjectedTextLines.add(e)}checkAffectedAndFire(e){this._affectsMinimap||(this._affectsMinimap=!(!e.minimap||!e.minimap.position)),this._affectsOverviewRuler||(this._affectsOverviewRuler=!(!e.overviewRuler||!e.overviewRuler.color)),this._shouldFire=!0}fire(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._shouldFire=!0}}class Mt extends a.JT{constructor(){super(),this._fastEmitter=this._register(new r.Q5),this.fastEvent=this._fastEmitter.event,this._slowEmitter=this._register(new r.Q5),this.slowEvent=this._slowEmitter.event,this._deferredCnt=0,this._deferredEvent=null}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(e=null){if(this._deferredCnt--,0===this._deferredCnt&&null!==this._deferredEvent){this._deferredEvent.rawContentChangedEvent.resultingSelection=e;const t=this._deferredEvent;this._deferredEvent=null,this._fastEmitter.fire(t),this._slowEmitter.fire(t)}}fire(e){this._deferredCnt>0?this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(e):this._deferredEvent=e:(this._fastEmitter.fire(e),this._slowEmitter.fire(e))}}},94954:(e,t,i)=>{"use strict";i.d(t,{U:()=>o});var n=i(5976);class o extends n.JT{constructor(){super(...arguments),this._isDisposed=!1}dispose(){super.dispose(),this._isDisposed=!0}assertNotDisposed(){if(this._isDisposed)throw new Error("TextModelPart is disposed!")}}},77277:(e,t,i)=>{"use strict";i.d(t,{bc:()=>l,cM:()=>u,iE:()=>c,pM:()=>h,sz:()=>g});var n=i(97295),o=i(24929),s=i(50187),r=i(24314),a=i(84973);class l{constructor(e,t,i,n){this.searchString=e,this.isRegex=t,this.matchCase=i,this.wordSeparators=n}parseSearchRequest(){if(""===this.searchString)return null;let e;e=this.isRegex?function(e){if(!e||0===e.length)return!1;for(let t=0,i=e.length;t<i;t++){const n=e.charCodeAt(t);if(10===n)return!0;if(92===n){if(t++,t>=i)break;const n=e.charCodeAt(t);if(110===n||114===n||87===n)return!0}}return!1}(this.searchString):this.searchString.indexOf("\n")>=0;let t=null;try{t=n.GF(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:e,global:!0,unicode:!0})}catch(s){return null}if(!t)return null;let i=!this.isRegex&&!e;return i&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(i=this.matchCase),new a.Tx(t,this.wordSeparators?(0,o.u)(this.wordSeparators):null,i?this.searchString:null)}}function c(e,t,i){if(!i)return new a.tk(e,null);const n=[];for(let o=0,s=t.length;o<s;o++)n[o]=t[o];return new a.tk(e,n)}class d{constructor(e){const t=[];let i=0;for(let n=0,o=e.length;n<o;n++)10===e.charCodeAt(n)&&(t[i++]=n);this._lineFeedsOffsets=t}findLineFeedCountBeforeOffset(e){const t=this._lineFeedsOffsets;let i=0,n=t.length-1;if(-1===n)return 0;if(e<=t[0])return 0;for(;i<n;){const o=i+((n-i)/2>>0);t[o]>=e?n=o-1:t[o+1]>=e?(i=o,n=o):i=o+1}return i+1}}class h{static findMatches(e,t,i,n,o){const s=t.parseSearchRequest();return s?s.regex.multiline?this._doFindMatchesMultiline(e,i,new g(s.wordSeparators,s.regex),n,o):this._doFindMatchesLineByLine(e,i,s,n,o):[]}static _getMultilineMatchRange(e,t,i,n,o,s){let a,l,c=0;if(n?(c=n.findLineFeedCountBeforeOffset(o),a=t+o+c):a=t+o,n){const e=n.findLineFeedCountBeforeOffset(o+s.length)-c;l=a+s.length+e}else l=a+s.length;const d=e.getPositionAt(a),h=e.getPositionAt(l);return new r.e(d.lineNumber,d.column,h.lineNumber,h.column)}static _doFindMatchesMultiline(e,t,i,n,o){const s=e.getOffsetAt(t.getStartPosition()),r=e.getValueInRange(t,1),a="\r\n"===e.getEOL()?new d(r):null,l=[];let h,u=0;for(i.reset(0);h=i.next(r);)if(l[u++]=c(this._getMultilineMatchRange(e,s,r,a,h.index,h[0]),h,n),u>=o)return l;return l}static _doFindMatchesLineByLine(e,t,i,n,o){const s=[];let r=0;if(t.startLineNumber===t.endLineNumber){const a=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return r=this._findMatchesInLine(i,a,t.startLineNumber,t.startColumn-1,r,s,n,o),s}const a=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);r=this._findMatchesInLine(i,a,t.startLineNumber,t.startColumn-1,r,s,n,o);for(let l=t.startLineNumber+1;l<t.endLineNumber&&r<o;l++)r=this._findMatchesInLine(i,e.getLineContent(l),l,0,r,s,n,o);if(r<o){const a=e.getLineContent(t.endLineNumber).substring(0,t.endColumn-1);r=this._findMatchesInLine(i,a,t.endLineNumber,0,r,s,n,o)}return s}static _findMatchesInLine(e,t,i,n,o,s,l,d){const h=e.wordSeparators;if(!l&&e.simpleSearch){const l=e.simpleSearch,c=l.length,g=t.length;let p=-c;for(;-1!==(p=t.indexOf(l,p+c));)if((!h||u(h,t,g,p,c))&&(s[o++]=new a.tk(new r.e(i,p+1+n,i,p+1+c+n),null),o>=d))return o;return o}const p=new g(e.wordSeparators,e.regex);let m;p.reset(0);do{if(m=p.next(t),m&&(s[o++]=c(new r.e(i,m.index+1+n,i,m.index+1+m[0].length+n),m,l),o>=d))return o}while(m);return o}static findNextMatch(e,t,i,n){const o=t.parseSearchRequest();if(!o)return null;const s=new g(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindNextMatchMultiline(e,i,s,n):this._doFindNextMatchLineByLine(e,i,s,n)}static _doFindNextMatchMultiline(e,t,i,n){const o=new s.L(t.lineNumber,1),a=e.getOffsetAt(o),l=e.getLineCount(),h=e.getValueInRange(new r.e(o.lineNumber,o.column,l,e.getLineMaxColumn(l)),1),u="\r\n"===e.getEOL()?new d(h):null;i.reset(t.column-1);const g=i.next(h);return g?c(this._getMultilineMatchRange(e,a,h,u,g.index,g[0]),g,n):1!==t.lineNumber||1!==t.column?this._doFindNextMatchMultiline(e,new s.L(1,1),i,n):null}static _doFindNextMatchLineByLine(e,t,i,n){const o=e.getLineCount(),s=t.lineNumber,r=e.getLineContent(s),a=this._findFirstMatchInLine(i,r,s,t.column,n);if(a)return a;for(let l=1;l<=o;l++){const t=(s+l-1)%o,r=e.getLineContent(t+1),a=this._findFirstMatchInLine(i,r,t+1,1,n);if(a)return a}return null}static _findFirstMatchInLine(e,t,i,n,o){e.reset(n-1);const s=e.next(t);return s?c(new r.e(i,s.index+1,i,s.index+1+s[0].length),s,o):null}static findPreviousMatch(e,t,i,n){const o=t.parseSearchRequest();if(!o)return null;const s=new g(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindPreviousMatchMultiline(e,i,s,n):this._doFindPreviousMatchLineByLine(e,i,s,n)}static _doFindPreviousMatchMultiline(e,t,i,n){const o=this._doFindMatchesMultiline(e,new r.e(1,1,t.lineNumber,t.column),i,n,9990);if(o.length>0)return o[o.length-1];const a=e.getLineCount();return t.lineNumber!==a||t.column!==e.getLineMaxColumn(a)?this._doFindPreviousMatchMultiline(e,new s.L(a,e.getLineMaxColumn(a)),i,n):null}static _doFindPreviousMatchLineByLine(e,t,i,n){const o=e.getLineCount(),s=t.lineNumber,r=e.getLineContent(s).substring(0,t.column-1),a=this._findLastMatchInLine(i,r,s,n);if(a)return a;for(let l=1;l<=o;l++){const t=(o+s-l-1)%o,r=e.getLineContent(t+1),a=this._findLastMatchInLine(i,r,t+1,n);if(a)return a}return null}static _findLastMatchInLine(e,t,i,n){let o,s=null;for(e.reset(0);o=e.next(t);)s=c(new r.e(i,o.index+1,i,o.index+1+o[0].length),o,n);return s}}function u(e,t,i,n,o){return function(e,t,i,n,o){if(0===n)return!0;const s=t.charCodeAt(n-1);if(0!==e.get(s))return!0;if(13===s||10===s)return!0;if(o>0){const i=t.charCodeAt(n);if(0!==e.get(i))return!0}return!1}(e,t,0,n,o)&&function(e,t,i,n,o){if(n+o===i)return!0;const s=t.charCodeAt(n+o);if(0!==e.get(s))return!0;if(13===s||10===s)return!0;if(o>0){const i=t.charCodeAt(n+o-1);if(0!==e.get(i))return!0}return!1}(e,t,i,n,o)}class g{constructor(e,t){this._wordSeparators=e,this._searchRegex=t,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(e){this._searchRegex.lastIndex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(e){const t=e.length;let i;do{if(this._prevMatchStartIndex+this._prevMatchLength===t)return null;if(i=this._searchRegex.exec(e),!i)return null;const o=i.index,s=i[0].length;if(o===this._prevMatchStartIndex&&s===this._prevMatchLength){if(0===s){n.ZH(e,t,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=o,this._prevMatchLength=s,!this._wordSeparators||u(this._wordSeparators,e,t,o,s))return i}while(i);return null}}},59616:(e,t,i)=>{"use strict";function n(e,t){let i=0,n=0;const o=e.length;for(;n<o;){const o=e.charCodeAt(n);if(32===o)i++;else{if(9!==o)break;i=i-i%t+t}n++}return n===o?-1:i}i.d(t,{q:()=>n})},85215:(e,t,i)=>{"use strict";i.d(t,{p:()=>n});const n=(0,i(72065).yh)("editorWorkerService")},32670:(e,t,i)=>{"use strict";i.d(t,{OG:()=>S,ML:()=>b,KO:()=>w,Jc:()=>v,Vl:()=>m,Vj:()=>f});var n=i(71050),o=i(17301),s=i(70666),r=i(73733),a=i(94565),l=i(98401),c=i(53060),d=i(1432);function h(e){const t=new Uint32Array(function(e){let t=0;if(t+=2,"full"===e.type)t+=1+e.data.length;else{t+=1,t+=3*e.deltas.length;for(const i of e.deltas)i.data&&(t+=i.data.length)}return t}(e));let i=0;if(t[i++]=e.id,"full"===e.type)t[i++]=1,t[i++]=e.data.length,t.set(e.data,i),i+=e.data.length;else{t[i++]=2,t[i++]=e.deltas.length;for(const n of e.deltas)t[i++]=n.start,t[i++]=n.deleteCount,n.data?(t[i++]=n.data.length,t.set(n.data,i),i+=n.data.length):t[i++]=0}return function(e){const t=new Uint8Array(e.buffer,e.byteOffset,4*e.length);return d.r()||function(e){for(let t=0,i=e.length;t<i;t+=4){const i=e[t+0],n=e[t+1],o=e[t+2],s=e[t+3];e[t+0]=s,e[t+1]=o,e[t+2]=n,e[t+3]=i}}(t),c.KN.wrap(t)}(t)}var u=i(24314),g=i(71922),p=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};function m(e){return e&&!!e.data}function f(e){return e&&Array.isArray(e.edits)}class _{constructor(e,t,i){this.provider=e,this.tokens=t,this.error=i}}function v(e,t){return e.has(t)}function b(e,t,i,n,o){return p(this,void 0,void 0,(function*(){const s=function(e,t){const i=e.orderedGroups(t);return i.length>0?i[0]:[]}(e,t),r=yield Promise.all(s.map((e=>p(this,void 0,void 0,(function*(){let s,r=null;try{s=yield e.provideDocumentSemanticTokens(t,e===i?n:null,o)}catch(a){r=a,s=null}return s&&(m(s)||f(s))||(s=null),new _(e,s,r)})))));for(const e of r){if(e.error)throw e.error;if(e.tokens)return e}return r.length>0?r[0]:null}))}class C{constructor(e,t){this.provider=e,this.tokens=t}}function w(e,t){return e.has(t)}function y(e,t){const i=e.orderedGroups(t);return i.length>0?i[0]:[]}function S(e,t,i,n){return p(this,void 0,void 0,(function*(){const s=y(e,t),r=yield Promise.all(s.map((e=>p(this,void 0,void 0,(function*(){let s;try{s=yield e.provideDocumentRangeSemanticTokens(t,i,n)}catch(r){(0,o.Cp)(r),s=null}return s&&m(s)||(s=null),new C(e,s)})))));for(const e of r)if(e.tokens)return e;return r.length>0?r[0]:null}))}a.P0.registerCommand("_provideDocumentSemanticTokensLegend",((e,...t)=>p(void 0,void 0,void 0,(function*(){const[i]=t;(0,l.p_)(i instanceof s.o);const n=e.get(r.q).getModel(i);if(!n)return;const{documentSemanticTokensProvider:o}=e.get(g.p),c=function(e,t){const i=e.orderedGroups(t);return i.length>0?i[0]:null}(o,n);return c?c[0].getLegend():e.get(a.Hy).executeCommand("_provideDocumentRangeSemanticTokensLegend",i)})))),a.P0.registerCommand("_provideDocumentSemanticTokens",((e,...t)=>p(void 0,void 0,void 0,(function*(){const[i]=t;(0,l.p_)(i instanceof s.o);const o=e.get(r.q).getModel(i);if(!o)return;const{documentSemanticTokensProvider:c}=e.get(g.p);if(!v(c,o))return e.get(a.Hy).executeCommand("_provideDocumentRangeSemanticTokens",i,o.getFullModelRange());const d=yield b(c,o,null,null,n.T.None);if(!d)return;const{provider:u,tokens:p}=d;if(!p||!m(p))return;const f=h({id:0,type:"full",data:p.data});return p.resultId&&u.releaseDocumentSemanticTokens(p.resultId),f})))),a.P0.registerCommand("_provideDocumentRangeSemanticTokensLegend",((e,...t)=>p(void 0,void 0,void 0,(function*(){const[i,o]=t;(0,l.p_)(i instanceof s.o);const a=e.get(r.q).getModel(i);if(!a)return;const{documentRangeSemanticTokensProvider:c}=e.get(g.p),d=y(c,a);if(0===d.length)return;if(1===d.length)return d[0].getLegend();if(!o||!u.e.isIRange(o))return console.warn("provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in"),d[0].getLegend();const h=yield S(c,a,u.e.lift(o),n.T.None);return h?h.provider.getLegend():void 0})))),a.P0.registerCommand("_provideDocumentRangeSemanticTokens",((e,...t)=>p(void 0,void 0,void 0,(function*(){const[i,o]=t;(0,l.p_)(i instanceof s.o),(0,l.p_)(u.e.isIRange(o));const a=e.get(r.q).getModel(i);if(!a)return;const{documentRangeSemanticTokensProvider:c}=e.get(g.p),d=yield S(c,a,u.e.lift(o),n.T.None);return d&&d.tokens?h({id:0,type:"full",data:d.tokens.data}):void 0}))))},88191:(e,t,i)=>{"use strict";i.d(t,{A:()=>u});var n=i(89954),o=i(43702),s=i(59870),r=i(65026),a=i(72065),l=i(43557),c=i(50988),d=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},h=function(e,t){return function(i,n){t(i,n,e)}};const u=(0,a.yh)("ILanguageFeatureDebounceService");var g;!function(e){const t=new WeakMap;let i=0;e.of=function(e){let n=t.get(e);return void 0===n&&(n=++i,t.set(e,n)),n}}(g||(g={}));class p{constructor(e,t,i,n,s,r){this._logService=e,this._name=t,this._registry=i,this._default=n,this._min=s,this._max=r,this._cache=new o.z6(50,.7)}_key(e){return e.id+this._registry.all(e).reduce(((e,t)=>(0,n.SP)(g.of(t),e)),0)}get(e){const t=this._key(e),i=this._cache.get(t);return i?(0,s.uZ)(i.value,this._min,this._max):this.default()}update(e,t){const i=this._key(e);let n=this._cache.get(i);n||(n=new s.N(6),this._cache.set(i,n));const o=(0,s.uZ)(n.update(t),this._min,this._max);return(0,c.xn)(e.uri,"output")||this._logService.trace(`[DEBOUNCE: ${this._name}] for ${e.uri.toString()} is ${o}ms`),o}_overall(){const e=new s.nM;for(const[,t]of this._cache)e.update(t.value);return e.value}default(){const e=0|this._overall()||this._default;return(0,s.uZ)(e,this._min,this._max)}}let m=class{constructor(e){this._logService=e,this._data=new Map}for(e,t,i){var n,o,s;const r=null!==(n=null==i?void 0:i.min)&&void 0!==n?n:50,a=null!==(o=null==i?void 0:i.max)&&void 0!==o?o:Math.pow(r,2),l=null!==(s=null==i?void 0:i.key)&&void 0!==s?s:void 0,c=`${g.of(e)},${r}${l?","+l:""}`;let d=this._data.get(c);return d||(d=new p(this._logService,t,e,0|this._overallAverage()||1.5*r,r,a),this._data.set(c,d)),d}_overallAverage(){const e=new s.nM;for(const t of this._data.values())e.update(t.default());return e.value}};m=d([h(0,l.VZ)],m),(0,r.z)(u,m,!0)},71922:(e,t,i)=>{"use strict";i.d(t,{p:()=>n});const n=(0,i(72065).yh)("ILanguageFeaturesService")},36357:(e,t,i)=>{"use strict";i.d(t,{i:()=>n});const n=(0,i(72065).yh)("markerDecorationsService")},73733:(e,t,i)=>{"use strict";i.d(t,{q:()=>n});const n=(0,i(72065).yh)("modelService")},51200:(e,t,i)=>{"use strict";i.d(t,{b$:()=>P,e3:()=>F,tw:()=>B});var n=i(4669),o=i(5976),s=i(1432),r=i(17301),a=i(22529),l=i(22075),c=i(68801),d=i(72042),h=i(73733),u=i(71765),g=i(33108),p=i(15393),m=i(71050),f=i(97781),_=i(43557),v=i(64862),b=i(89954),C=i(95215),w=i(66663),y=i(68997),S=i(32670),L=i(36248),k=i(4256),x=i(88191),D=i(84013),N=i(71922),E=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},I=function(e,t){return function(i,n){t(i,n,e)}};function T(e){return e.toString()}function M(e){const t=new b.yP,i=e.createSnapshot();let n;for(;n=i.read();)t.update(n);return t.digest()}class A{constructor(e,t,i){this._modelEventListeners=new o.SL,this.model=e,this._languageSelection=null,this._languageSelectionListener=null,this._modelEventListeners.add(e.onWillDispose((()=>t(e)))),this._modelEventListeners.add(e.onDidChangeLanguage((t=>i(e,t))))}_disposeLanguageSelection(){this._languageSelectionListener&&(this._languageSelectionListener.dispose(),this._languageSelectionListener=null)}dispose(){this._modelEventListeners.dispose(),this._disposeLanguageSelection()}setLanguage(e){this._disposeLanguageSelection(),this._languageSelection=e,this._languageSelectionListener=this._languageSelection.onDidChange((()=>this.model.setMode(e.languageId))),this.model.setMode(e.languageId)}}const R=s.IJ||s.dz?1:2;class O{constructor(e,t,i,n,o,s,r,a){this.uri=e,this.initialUndoRedoSnapshot=t,this.time=i,this.sharesUndoRedoStack=n,this.heapSize=o,this.sha1=s,this.versionId=r,this.alternativeVersionId=a}}let P=class e extends o.JT{constructor(e,t,i,o,s,r,a,l,c){super(),this._configurationService=e,this._resourcePropertiesService=t,this._themeService=i,this._logService=o,this._undoRedoService=s,this._languageService=r,this._languageConfigurationService=a,this._languageFeatureDebounceService=l,this._onModelAdded=this._register(new n.Q5),this.onModelAdded=this._onModelAdded.event,this._onModelRemoved=this._register(new n.Q5),this.onModelRemoved=this._onModelRemoved.event,this._onModelModeChanged=this._register(new n.Q5),this.onModelLanguageChanged=this._onModelModeChanged.event,this._modelCreationOptionsByLanguageAndResource=Object.create(null),this._models={},this._disposedModels=new Map,this._disposedModelsHeapSize=0,this._semanticStyling=this._register(new W(this._themeService,this._languageService,this._logService)),this._register(this._configurationService.onDidChangeConfiguration((()=>this._updateModelOptions()))),this._updateModelOptions(),this._register(new V(this._semanticStyling,this,this._themeService,this._configurationService,this._languageFeatureDebounceService,c))}static _readModelOptions(e,t){var i;let n=l.D.tabSize;if(e.editor&&void 0!==e.editor.tabSize){const t=parseInt(e.editor.tabSize,10);isNaN(t)||(n=t),n<1&&(n=1)}let o=n;if(e.editor&&void 0!==e.editor.indentSize&&"tabSize"!==e.editor.indentSize){const t=parseInt(e.editor.indentSize,10);isNaN(t)||(o=t),o<1&&(o=1)}let s=l.D.insertSpaces;e.editor&&void 0!==e.editor.insertSpaces&&(s="false"!==e.editor.insertSpaces&&Boolean(e.editor.insertSpaces));let r=R;const a=e.eol;"\r\n"===a?r=2:"\n"===a&&(r=1);let c=l.D.trimAutoWhitespace;e.editor&&void 0!==e.editor.trimAutoWhitespace&&(c="false"!==e.editor.trimAutoWhitespace&&Boolean(e.editor.trimAutoWhitespace));let d=l.D.detectIndentation;e.editor&&void 0!==e.editor.detectIndentation&&(d="false"!==e.editor.detectIndentation&&Boolean(e.editor.detectIndentation));let h=l.D.largeFileOptimizations;e.editor&&void 0!==e.editor.largeFileOptimizations&&(h="false"!==e.editor.largeFileOptimizations&&Boolean(e.editor.largeFileOptimizations));let u=l.D.bracketPairColorizationOptions;return(null===(i=e.editor)||void 0===i?void 0:i.bracketPairColorization)&&"object"==typeof e.editor.bracketPairColorization&&(u={enabled:!!e.editor.bracketPairColorization.enabled,independentColorPoolPerBracketType:!!e.editor.bracketPairColorization.independentColorPoolPerBracketType}),{isForSimpleWidget:t,tabSize:n,indentSize:o,insertSpaces:s,detectIndentation:d,defaultEOL:r,trimAutoWhitespace:c,largeFileOptimizations:h,bracketPairColorizationOptions:u}}_getEOL(e,t){if(e)return this._resourcePropertiesService.getEOL(e,t);const i=this._configurationService.getValue("files.eol",{overrideIdentifier:t});return i&&"string"==typeof i&&"auto"!==i?i:3===s.OS||2===s.OS?"\n":"\r\n"}_shouldRestoreUndoStack(){const e=this._configurationService.getValue("files.restoreUndoStack");return"boolean"!=typeof e||e}getCreationOptions(t,i,n){let o=this._modelCreationOptionsByLanguageAndResource[t+i];if(!o){const s=this._configurationService.getValue("editor",{overrideIdentifier:t,resource:i}),r=this._getEOL(i,t);o=e._readModelOptions({editor:s,eol:r},n),this._modelCreationOptionsByLanguageAndResource[t+i]=o}return o}_updateModelOptions(){const t=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);const i=Object.keys(this._models);for(let n=0,o=i.length;n<o;n++){const o=i[n],s=this._models[o],r=s.model.getLanguageId(),a=s.model.uri,l=t[r+a],c=this.getCreationOptions(r,a,s.model.isForSimpleWidget);e._setModelOptionsForModel(s.model,c,l)}}static _setModelOptionsForModel(e,t,i){i&&i.defaultEOL!==t.defaultEOL&&1===e.getLineCount()&&e.setEOL(1===t.defaultEOL?0:1),i&&i.detectIndentation===t.detectIndentation&&i.insertSpaces===t.insertSpaces&&i.tabSize===t.tabSize&&i.indentSize===t.indentSize&&i.trimAutoWhitespace===t.trimAutoWhitespace&&(0,L.fS)(i.bracketPairColorizationOptions,t.bracketPairColorizationOptions)||(t.detectIndentation?(e.detectIndentation(t.insertSpaces,t.tabSize),e.updateOptions({trimAutoWhitespace:t.trimAutoWhitespace,bracketColorizationOptions:t.bracketPairColorizationOptions})):e.updateOptions({insertSpaces:t.insertSpaces,tabSize:t.tabSize,indentSize:t.indentSize,trimAutoWhitespace:t.trimAutoWhitespace,bracketColorizationOptions:t.bracketPairColorizationOptions}))}_insertDisposedModel(e){this._disposedModels.set(T(e.uri),e),this._disposedModelsHeapSize+=e.heapSize}_removeDisposedModel(e){const t=this._disposedModels.get(T(e));return t&&(this._disposedModelsHeapSize-=t.heapSize),this._disposedModels.delete(T(e)),t}_ensureDisposedModelsHeapSize(e){if(this._disposedModelsHeapSize>e){const t=[];for(this._disposedModels.forEach((e=>{e.sharesUndoRedoStack||t.push(e)})),t.sort(((e,t)=>e.time-t.time));t.length>0&&this._disposedModelsHeapSize>e;){const e=t.shift();this._removeDisposedModel(e.uri),null!==e.initialUndoRedoSnapshot&&this._undoRedoService.restoreSnapshot(e.initialUndoRedoSnapshot)}}}_createModelData(e,t,i,n){const o=this.getCreationOptions(t,i,n),s=new a.yO(e,t,o,i,this._undoRedoService,this._languageService,this._languageConfigurationService);if(i&&this._disposedModels.has(T(i))){const e=this._removeDisposedModel(i),t=this._undoRedoService.getElements(i),n=M(s)===e.sha1;if(n||e.sharesUndoRedoStack){for(const e of t.past)(0,C.e9)(e)&&e.matchesResource(i)&&e.setModel(s);for(const e of t.future)(0,C.e9)(e)&&e.matchesResource(i)&&e.setModel(s);this._undoRedoService.setElementsValidFlag(i,!0,(e=>(0,C.e9)(e)&&e.matchesResource(i))),n&&(s._overwriteVersionId(e.versionId),s._overwriteAlternativeVersionId(e.alternativeVersionId),s._overwriteInitialUndoRedoSnapshot(e.initialUndoRedoSnapshot))}else null!==e.initialUndoRedoSnapshot&&this._undoRedoService.restoreSnapshot(e.initialUndoRedoSnapshot)}const r=T(s.uri);if(this._models[r])throw new Error("ModelService: Cannot add model because it already exists!");const l=new A(s,(e=>this._onWillDispose(e)),((e,t)=>this._onDidChangeLanguage(e,t)));return this._models[r]=l,l}createModel(e,t,i,n=!1){let o;return t?(o=this._createModelData(e,t.languageId,i,n),this.setMode(o.model,t)):o=this._createModelData(e,c.bd,i,n),this._onModelAdded.fire(o.model),o.model}setMode(e,t){if(!t)return;const i=this._models[T(e.uri)];i&&i.setLanguage(t)}getModels(){const e=[],t=Object.keys(this._models);for(let i=0,n=t.length;i<n;i++){const n=t[i];e.push(this._models[n].model)}return e}getModel(e){const t=T(e),i=this._models[t];return i?i.model:null}getSemanticTokensProviderStyling(e){return this._semanticStyling.get(e)}_schemaShouldMaintainUndoRedoElements(e){return e.scheme===w.lg.file||e.scheme===w.lg.vscodeRemote||e.scheme===w.lg.vscodeUserData||e.scheme===w.lg.vscodeNotebookCell||"fake-fs"===e.scheme}_onWillDispose(t){const i=T(t.uri),n=this._models[i],o=this._undoRedoService.getUriComparisonKey(t.uri)!==t.uri.toString();let s=!1,r=0;if(o||this._shouldRestoreUndoStack()&&this._schemaShouldMaintainUndoRedoElements(t.uri)){const e=this._undoRedoService.getElements(t.uri);if(e.past.length>0||e.future.length>0){for(const i of e.past)(0,C.e9)(i)&&i.matchesResource(t.uri)&&(s=!0,r+=i.heapSize(t.uri),i.setModel(t.uri));for(const i of e.future)(0,C.e9)(i)&&i.matchesResource(t.uri)&&(s=!0,r+=i.heapSize(t.uri),i.setModel(t.uri))}}const a=e.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK;if(s)if(!o&&r>a){const e=n.model.getInitialUndoRedoSnapshot();null!==e&&this._undoRedoService.restoreSnapshot(e)}else this._ensureDisposedModelsHeapSize(a-r),this._undoRedoService.setElementsValidFlag(t.uri,!1,(e=>(0,C.e9)(e)&&e.matchesResource(t.uri))),this._insertDisposedModel(new O(t.uri,n.model.getInitialUndoRedoSnapshot(),Date.now(),o,r,M(t),t.getVersionId(),t.getAlternativeVersionId()));else if(!o){const e=n.model.getInitialUndoRedoSnapshot();null!==e&&this._undoRedoService.restoreSnapshot(e)}delete this._models[i],n.dispose(),delete this._modelCreationOptionsByLanguageAndResource[t.getLanguageId()+t.uri],this._onModelRemoved.fire(t)}_onDidChangeLanguage(t,i){const n=i.oldLanguage,o=t.getLanguageId(),s=this.getCreationOptions(n,t.uri,t.isForSimpleWidget),r=this.getCreationOptions(o,t.uri,t.isForSimpleWidget);e._setModelOptionsForModel(t,r,s),this._onModelModeChanged.fire({model:t,oldLanguageId:n})}};P.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20971520,P=E([I(0,g.Ui),I(1,u.y),I(2,f.XE),I(3,_.VZ),I(4,v.tJ),I(5,d.O),I(6,k.c_),I(7,x.A),I(8,N.p)],P);const F="editor.semanticHighlighting";function B(e,t,i){var n;const o=null===(n=i.getValue(F,{overrideIdentifier:e.getLanguageId(),resource:e.uri}))||void 0===n?void 0:n.enabled;return"boolean"==typeof o?o:t.getColorTheme().semanticHighlighting}let V=class extends o.JT{constructor(e,t,i,n,o,s){super(),this._watchers=Object.create(null),this._semanticStyling=e;const r=e=>{this._watchers[e.uri.toString()]=new z(e,this._semanticStyling,i,o,s)},a=(e,t)=>{t.dispose(),delete this._watchers[e.uri.toString()]},l=()=>{for(const e of t.getModels()){const t=this._watchers[e.uri.toString()];B(e,i,n)?t||r(e):t&&a(e,t)}};this._register(t.onModelAdded((e=>{B(e,i,n)&&r(e)}))),this._register(t.onModelRemoved((e=>{const t=this._watchers[e.uri.toString()];t&&a(e,t)}))),this._register(n.onDidChangeConfiguration((e=>{e.affectsConfiguration(F)&&l()}))),this._register(i.onDidColorThemeChange(l))}dispose(){for(const e of Object.values(this._watchers))e.dispose();super.dispose()}};V=E([I(1,h.q),I(2,f.XE),I(3,g.Ui),I(4,x.A),I(5,N.p)],V);class W extends o.JT{constructor(e,t,i){super(),this._themeService=e,this._languageService=t,this._logService=i,this._caches=new WeakMap,this._register(this._themeService.onDidColorThemeChange((()=>{this._caches=new WeakMap})))}get(e){return this._caches.has(e)||this._caches.set(e,new y.$(e.getLegend(),this._themeService,this._languageService,this._logService)),this._caches.get(e)}}class H{constructor(e,t,i){this.provider=e,this.resultId=t,this.data=i}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}}let z=class e extends o.JT{constructor(t,i,n,s,r){super(),this._isDisposed=!1,this._model=t,this._semanticStyling=i,this._provider=r.documentSemanticTokensProvider,this._debounceInformation=s.for(this._provider,"DocumentSemanticTokens",{min:e.REQUEST_MIN_DELAY,max:e.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new p.pY((()=>this._fetchDocumentSemanticTokensNow()),e.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._register(this._model.onDidChangeContent((()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))}))),this._register(this._model.onDidChangeLanguage((()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)})));const a=()=>{(0,o.B9)(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const e of this._provider.all(t))"function"==typeof e.onDidChange&&this._documentProvidersChangeListeners.push(e.onDidChange((()=>this._fetchDocumentSemanticTokens.schedule(0))))};a(),this._register(this._provider.onDidChange((()=>{a(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))}))),this._register(n.onDidColorThemeChange((e=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))}))),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!(0,S.Jc)(this._provider,this._model))return void(this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1));const e=new m.A,t=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,i=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,n=(0,S.ML)(this._provider,this._model,t,i,e.token);this._currentDocumentRequestCancellationTokenSource=e;const o=[],s=this._model.onDidChangeContent((e=>{o.push(e)})),a=new D.G(!1);n.then((e=>{if(this._debounceInformation.update(this._model,a.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,s.dispose(),e){const{provider:t,tokens:i}=e,n=this._semanticStyling.get(t);this._setDocumentSemanticTokens(t,i||null,n,o)}else this._setDocumentSemanticTokens(null,null,null,o)}),(e=>{e&&(r.n2(e)||"string"==typeof e.message&&-1!==e.message.indexOf("busy"))||r.dL(e),this._currentDocumentRequestCancellationTokenSource=null,s.dispose(),o.length>0&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))}))}static _copy(e,t,i,n,o){o=Math.min(o,i.length-n,e.length-t);for(let s=0;s<o;s++)i[n+s]=e[t+s]}_setDocumentSemanticTokens(t,i,n,o){const s=this._currentDocumentResponse,r=()=>{o.length>0&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed)t&&i&&t.releaseDocumentSemanticTokens(i.resultId);else if(t&&n){if(!i)return this._model.tokenization.setSemanticTokens(null,!0),void r();if((0,S.Vj)(i)){if(!s)return void this._model.tokenization.setSemanticTokens(null,!0);if(0===i.edits.length)i={resultId:i.resultId,data:s.data};else{let t=0;for(const e of i.edits)t+=(e.data?e.data.length:0)-e.deleteCount;const o=s.data,r=new Uint32Array(o.length+t);let a=o.length,l=r.length;for(let c=i.edits.length-1;c>=0;c--){const t=i.edits[c];if(t.start>o.length)return n.warnInvalidEditStart(s.resultId,i.resultId,c,t.start,o.length),void this._model.tokenization.setSemanticTokens(null,!0);const d=a-(t.start+t.deleteCount);d>0&&(e._copy(o,a-d,r,l-d,d),l-=d),t.data&&(e._copy(t.data,0,r,l-t.data.length,t.data.length),l-=t.data.length),a=t.start}a>0&&e._copy(o,0,r,0,a),i={resultId:i.resultId,data:r}}}if((0,S.Vl)(i)){this._currentDocumentResponse=new H(t,i.resultId,i.data);const e=(0,y.h)(i,n,this._model.getLanguageId());if(o.length>0)for(const t of o)for(const i of e)for(const e of t.changes)i.applyEdit(e.range,e.text);this._model.tokenization.setSemanticTokens(e,!0)}else this._model.tokenization.setSemanticTokens(null,!0);r()}else this._model.tokenization.setSemanticTokens(null,!1)}};z.REQUEST_MIN_DELAY=300,z.REQUEST_MAX_DELAY=2e3,z=E([I(2,f.XE),I(3,x.A),I(4,N.p)],z)},88216:(e,t,i)=>{"use strict";i.d(t,{S:()=>n});const n=(0,i(72065).yh)("textModelService")},68997:(e,t,i)=>{"use strict";i.d(t,{$:()=>m,h:()=>f});var n=i(45797),o=i(97781),s=i(43557),r=i(50187),a=i(24314),l=i(23795);class c{constructor(e,t){this._startLineNumber=e,this._tokens=t,this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}static create(e,t){return new c(e,new d(t))}get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._endLineNumber}toString(){return this._tokens.toString(this._startLineNumber)}_updateEndLineNumber(){this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}isEmpty(){return this._tokens.isEmpty()}getLineTokens(e){return this._startLineNumber<=e&&e<=this._endLineNumber?this._tokens.getLineTokens(e-this._startLineNumber):null}getRange(){const e=this._tokens.getRange();return e?new a.e(this._startLineNumber+e.startLineNumber,e.startColumn,this._startLineNumber+e.endLineNumber,e.endColumn):e}removeTokens(e){const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber;this._startLineNumber+=this._tokens.removeTokens(t,e.startColumn-1,i,e.endColumn-1),this._updateEndLineNumber()}split(e){const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber,[n,o,s]=this._tokens.split(t,e.startColumn-1,i,e.endColumn-1);return[new c(this._startLineNumber,n),new c(this._startLineNumber+s,o)]}applyEdit(e,t){const[i,n,o]=(0,l.Q)(t);this.acceptEdit(e,i,n,o,t.length>0?t.charCodeAt(0):0)}acceptEdit(e,t,i,n,o){this._acceptDeleteRange(e),this._acceptInsertText(new r.L(e.startLineNumber,e.startColumn),t,i,n,o),this._updateEndLineNumber()}_acceptDeleteRange(e){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return;const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber;if(i<0){const e=i-t;return void(this._startLineNumber-=e)}const n=this._tokens.getMaxDeltaLine();if(!(t>=n+1)){if(t<0&&i>=n+1)return this._startLineNumber=0,void this._tokens.clear();if(t<0){const n=-t;this._startLineNumber-=n,this._tokens.acceptDeleteRange(e.startColumn-1,0,0,i,e.endColumn-1)}else this._tokens.acceptDeleteRange(0,t,e.startColumn-1,i,e.endColumn-1)}}_acceptInsertText(e,t,i,n,o){if(0===t&&0===i)return;const s=e.lineNumber-this._startLineNumber;if(s<0)return void(this._startLineNumber+=t);s>=this._tokens.getMaxDeltaLine()+1||this._tokens.acceptInsertText(s,e.column-1,t,i,n,o)}}class d{constructor(e){this._tokens=e,this._tokenCount=e.length/4}toString(e){const t=[];for(let i=0;i<this._tokenCount;i++)t.push(`(${this._getDeltaLine(i)+e},${this._getStartCharacter(i)}-${this._getEndCharacter(i)})`);return`[${t.join(",")}]`}getMaxDeltaLine(){const e=this._getTokenCount();return 0===e?-1:this._getDeltaLine(e-1)}getRange(){const e=this._getTokenCount();if(0===e)return null;const t=this._getStartCharacter(0),i=this._getDeltaLine(e-1),n=this._getEndCharacter(e-1);return new a.e(0,t+1,i,n+1)}_getTokenCount(){return this._tokenCount}_getDeltaLine(e){return this._tokens[4*e]}_getStartCharacter(e){return this._tokens[4*e+1]}_getEndCharacter(e){return this._tokens[4*e+2]}isEmpty(){return 0===this._getTokenCount()}getLineTokens(e){let t=0,i=this._getTokenCount()-1;for(;t<i;){const n=t+Math.floor((i-t)/2),o=this._getDeltaLine(n);if(o<e)t=n+1;else{if(!(o>e)){let o=n;for(;o>t&&this._getDeltaLine(o-1)===e;)o--;let s=n;for(;s<i&&this._getDeltaLine(s+1)===e;)s++;return new h(this._tokens.subarray(4*o,4*s+4))}i=n-1}}return this._getDeltaLine(t)===e?new h(this._tokens.subarray(4*t,4*t+4)):null}clear(){this._tokenCount=0}removeTokens(e,t,i,n){const o=this._tokens,s=this._tokenCount;let r=0,a=!1,l=0;for(let c=0;c<s;c++){const s=4*c,d=o[s],h=o[s+1],u=o[s+2],g=o[s+3];if((d>e||d===e&&u>=t)&&(d<i||d===i&&h<=n))a=!0;else{if(0===r&&(l=d),a){const e=4*r;o[e]=d-l,o[e+1]=h,o[e+2]=u,o[e+3]=g}r++}}return this._tokenCount=r,l}split(e,t,i,n){const o=this._tokens,s=this._tokenCount,r=[],a=[];let l=r,c=0,h=0;for(let d=0;d<s;d++){const s=4*d,r=o[s],u=o[s+1],g=o[s+2],p=o[s+3];if(r>e||r===e&&g>=t){if(r<i||r===i&&u<=n)continue;l!==a&&(l=a,c=0,h=r)}l[c++]=r-h,l[c++]=u,l[c++]=g,l[c++]=p}return[new d(new Uint32Array(r)),new d(new Uint32Array(a)),h]}acceptDeleteRange(e,t,i,n,o){const s=this._tokens,r=this._tokenCount,a=n-t;let l=0,c=!1;for(let d=0;d<r;d++){const h=4*d;let u=s[h],g=s[h+1],p=s[h+2];const m=s[h+3];if(u<t||u===t&&p<=i){l++;continue}if(u===t&&g<i)u===n&&p>o?p-=o-i:p=i;else if(u===t&&g===i){if(!(u===n&&p>o)){c=!0;continue}p-=o-i}else if(u<n||u===n&&g<o){if(!(u===n&&p>o)){c=!0;continue}u===t?(g=i,p=g+(p-o)):(g=0,p=g+(p-o))}else if(u>n){if(0===a&&!c){l=r;break}u-=a}else{if(!(u===n&&g>=o))throw new Error("Not possible!");e&&0===u&&(g+=e,p+=e),u-=a,g-=o-i,p-=o-i}const f=4*l;s[f]=u,s[f+1]=g,s[f+2]=p,s[f+3]=m,l++}this._tokenCount=l}acceptInsertText(e,t,i,n,o,s){const r=0===i&&1===n&&(s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122),a=this._tokens,l=this._tokenCount;for(let c=0;c<l;c++){const s=4*c;let l=a[s],d=a[s+1],h=a[s+2];if(!(l<e||l===e&&h<t)){if(l===e&&h===t){if(!r)continue;h+=1}else if(l===e&&d<t&&t<h)0===i?h+=n:h=t;else{if(l===e&&d===t&&r)continue;if(l===e)if(l+=i,0===i)d+=n,h+=n;else{const e=h-d;d=o+(d-t),h=d+e}else l+=i}a[s]=l,a[s+1]=d,a[s+2]=h}}}}class h{constructor(e){this._tokens=e}getCount(){return this._tokens.length/4}getStartCharacter(e){return this._tokens[4*e+1]}getEndCharacter(e){return this._tokens[4*e+2]}getMetadata(e){return this._tokens[4*e+3]}}var u=i(72042),g=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},p=function(e,t){return function(i,n){t(i,n,e)}};let m=class{constructor(e,t,i,n){this._legend=e,this._themeService=t,this._languageService=i,this._logService=n,this._hasWarnedOverlappingTokens=!1,this._hasWarnedInvalidLengthTokens=!1,this._hasWarnedInvalidEditStart=!1,this._hashTable=new v}getMetadata(e,t,i){const o=this._languageService.languageIdCodec.encodeLanguageId(i),r=this._hashTable.get(e,t,o);let a;if(r)a=r.metadata,this._logService.getLevel()===s.in.Trace&&this._logService.trace(`SemanticTokensProviderStyling [CACHED] ${e} / ${t}: foreground ${n.N.getForeground(a)}, fontStyle ${n.N.getFontStyle(a).toString(2)}`);else{let r=this._legend.tokenTypes[e];const l=[];if(r){let e=t;for(let t=0;e>0&&t<this._legend.tokenModifiers.length;t++)1&e&&l.push(this._legend.tokenModifiers[t]),e>>=1;e>0&&this._logService.getLevel()===s.in.Trace&&(this._logService.trace(`SemanticTokensProviderStyling: unknown token modifier index: ${t.toString(2)} for legend: ${JSON.stringify(this._legend.tokenModifiers)}`),l.push("not-in-legend"));const n=this._themeService.getColorTheme().getTokenStyleMetadata(r,l,i);if(void 0===n)a=2147483647;else{if(a=0,void 0!==n.italic){a|=1|(n.italic?1:0)<<11}if(void 0!==n.bold){a|=2|(n.bold?2:0)<<11}if(void 0!==n.underline){a|=4|(n.underline?4:0)<<11}if(void 0!==n.strikethrough){a|=8|(n.strikethrough?8:0)<<11}if(n.foreground){a|=16|n.foreground<<15}0===a&&(a=2147483647)}}else this._logService.getLevel()===s.in.Trace&&this._logService.trace(`SemanticTokensProviderStyling: unknown token type index: ${e} for legend: ${JSON.stringify(this._legend.tokenTypes)}`),a=2147483647,r="not-in-legend";this._hashTable.add(e,t,o,a),this._logService.getLevel()===s.in.Trace&&this._logService.trace(`SemanticTokensProviderStyling ${e} (${r}) / ${t} (${l.join(" ")}): foreground ${n.N.getForeground(a)}, fontStyle ${n.N.getFontStyle(a).toString(2)}`)}return a}warnOverlappingSemanticTokens(e,t){this._hasWarnedOverlappingTokens||(this._hasWarnedOverlappingTokens=!0,console.warn(`Overlapping semantic tokens detected at lineNumber ${e}, column ${t}`))}warnInvalidLengthSemanticTokens(e,t){this._hasWarnedInvalidLengthTokens||(this._hasWarnedInvalidLengthTokens=!0,console.warn(`Semantic token with invalid length detected at lineNumber ${e}, column ${t}`))}warnInvalidEditStart(e,t,i,n,o){this._hasWarnedInvalidEditStart||(this._hasWarnedInvalidEditStart=!0,console.warn(`Invalid semantic tokens edit detected (previousResultId: ${e}, resultId: ${t}) at edit #${i}: The provided start offset ${n} is outside the previous data (length ${o}).`))}};function f(e,t,i){const n=e.data,o=e.data.length/5|0,s=Math.max(Math.ceil(o/1024),400),r=[];let a=0,l=1,d=0;for(;a<o;){const e=a;let h=Math.min(e+s,o);if(h<o){let t=h;for(;t-1>e&&0===n[5*t];)t--;if(t-1===e){let e=h;for(;e+1<o&&0===n[5*e];)e++;h=e}else h=t}let u=new Uint32Array(4*(h-e)),g=0,p=0,m=0,f=0;for(;a<h;){const e=5*a,o=n[e],s=n[e+1],r=l+o|0,c=0===o?d+s|0:s,h=c+n[e+2]|0,_=n[e+3],v=n[e+4];if(h<=c)t.warnInvalidLengthSemanticTokens(r,c+1);else if(m===r&&f>c)t.warnOverlappingSemanticTokens(r,c+1);else{const e=t.getMetadata(_,v,i);2147483647!==e&&(0===p&&(p=r),u[g]=r-p,u[g+1]=c,u[g+2]=h,u[g+3]=e,g+=4,m=r,f=h)}l=r,d=c,a++}g!==u.length&&(u=u.subarray(0,g));const _=c.create(p,u);r.push(_)}return r}m=g([p(1,o.XE),p(2,u.O),p(3,s.VZ)],m);class _{constructor(e,t,i,n){this.tokenTypeIndex=e,this.tokenModifierSet=t,this.languageId=i,this.metadata=n,this.next=null}}class v{constructor(){this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=v._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<v._SIZES.length?2/3*this._currentLength:0),this._elements=[],v._nullOutEntries(this._elements,this._currentLength)}static _nullOutEntries(e,t){for(let i=0;i<t;i++)e[i]=null}_hash2(e,t){return(e<<5)-e+t|0}_hashFunc(e,t,i){return this._hash2(this._hash2(e,t),i)%this._currentLength}get(e,t,i){const n=this._hashFunc(e,t,i);let o=this._elements[n];for(;o;){if(o.tokenTypeIndex===e&&o.tokenModifierSet===t&&o.languageId===i)return o;o=o.next}return null}add(e,t,i,n){if(this._elementsCount++,0!==this._growCount&&this._elementsCount>=this._growCount){const e=this._elements;this._currentLengthIndex++,this._currentLength=v._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<v._SIZES.length?2/3*this._currentLength:0),this._elements=[],v._nullOutEntries(this._elements,this._currentLength);for(const t of e){let e=t;for(;e;){const t=e.next;e.next=null,this._add(e),e=t}}}this._add(new _(e,t,i,n))}_add(e){const t=this._hashFunc(e.tokenTypeIndex,e.tokenModifierSet,e.languageId);e.next=this._elements[t],this._elements[t]=e}}v._SIZES=[3,7,13,31,61,127,251,509,1021,2039,4093,8191,16381,32749,65521,131071,262139,524287,1048573,2097143]},71765:(e,t,i)=>{"use strict";i.d(t,{V:()=>o,y:()=>s});var n=i(72065);const o=(0,n.yh)("textResourceConfigurationService"),s=(0,n.yh)("textResourcePropertiesService")},31446:(e,t,i)=>{"use strict";i.d(t,{a:()=>l});var n=i(24314),o=i(77277),s=i(97295),r=i(98401),a=i(270);class l{static computeUnicodeHighlights(e,t,i){const l=i?i.startLineNumber:1,d=i?i.endLineNumber:e.getLineCount(),h=new c(t),u=h.getCandidateCodePoints();let g;var p;g="allNonBasicAscii"===u?new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):new RegExp(""+(p=Array.from(u),`[${s.ec(p.map((e=>String.fromCodePoint(e))).join(""))}]`),"g");const m=new o.sz(null,g),f=[];let _,v=!1,b=0,C=0,w=0;e:for(let o=l,c=d;o<=c;o++){const t=e.getLineContent(o),i=t.length;m.reset(0);do{if(_=m.next(t),_){let e=_.index,l=_.index+_[0].length;if(e>0){const i=t.charCodeAt(e-1);s.ZG(i)&&e--}if(l+1<i){const e=t.charCodeAt(l-1);s.ZG(e)&&l++}const c=t.substring(e,l),d=(0,a.t2)(e+1,a.Af,t,0),u=h.shouldHighlightNonBasicASCII(c,d?d.word:null);if(0!==u){3===u?b++:2===u?C++:1===u?w++:(0,r.vE)(u);const t=1e3;if(f.length>=t){v=!0;break e}f.push(new n.e(o,e+1,o,l+1))}}}while(_)}return{ranges:f,hasMore:v,ambiguousCharacterCount:b,invisibleCharacterCount:C,nonBasicAsciiCharacterCount:w}}static computeUnicodeHighlightReason(e,t){const i=new c(t);switch(i.shouldHighlightNonBasicASCII(e,null)){case 0:return null;case 2:return{kind:1};case 3:{const n=e.codePointAt(0),o=i.ambiguousCharacters.getPrimaryConfusable(n),r=s.ZK.getLocales().filter((e=>!s.ZK.getInstance(new Set([...t.allowedLocales,e])).isAmbiguous(n)));return{kind:0,confusableWith:String.fromCodePoint(o),notAmbiguousInLocales:r}}case 1:return{kind:2}}}}class c{constructor(e){this.options=e,this.allowedCodePoints=new Set(e.allowedCodePoints),this.ambiguousCharacters=s.ZK.getInstance(new Set(e.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII)return"allNonBasicAscii";const e=new Set;if(this.options.invisibleCharacters)for(const t of s.vU.codePoints)d(String.fromCodePoint(t))||e.add(t);if(this.options.ambiguousCharacters)for(const t of this.ambiguousCharacters.getConfusableCodePoints())e.add(t);for(const t of this.allowedCodePoints)e.delete(t);return e}shouldHighlightNonBasicASCII(e,t){const i=e.codePointAt(0);if(this.allowedCodePoints.has(i))return 0;if(this.options.nonBasicASCII)return 1;let n=!1,o=!1;if(t)for(const r of t){const e=r.codePointAt(0),t=s.$i(r);n=n||t,t||this.ambiguousCharacters.isAmbiguous(e)||s.vU.isInvisibleCharacter(e)||(o=!0)}return!n&&o?0:this.options.invisibleCharacters&&!d(e)&&s.vU.isInvisibleCharacter(i)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(i)?3:0}}function d(e){return" "===e||"\n"===e||"\t"===e}},70902:(e,t,i)=>{"use strict";var n,o,s,r,a,l,c,d,h,u,g,p,m,f,_,v,b,C,w,y,S,L,k,x,D,N,E,I,T,M,A,R,O,P,F,B,V,W;i.d(t,{E$:()=>x,F5:()=>L,Ij:()=>l,In:()=>F,Lu:()=>E,MG:()=>k,MY:()=>u,OI:()=>V,RM:()=>v,VD:()=>w,Vi:()=>d,WW:()=>R,ZL:()=>y,_x:()=>h,a$:()=>A,a7:()=>s,ao:()=>n,bw:()=>C,cR:()=>O,cm:()=>r,d2:()=>B,eB:()=>S,g4:()=>T,g_:()=>M,gl:()=>b,gm:()=>m,jl:()=>f,np:()=>o,py:()=>N,r3:()=>c,r4:()=>P,rf:()=>g,sh:()=>D,up:()=>W,vQ:()=>I,wT:()=>p,wU:()=>_,we:()=>a}),function(e){e[e.Unknown=0]="Unknown",e[e.Disabled=1]="Disabled",e[e.Enabled=2]="Enabled"}(n||(n={})),function(e){e[e.Invoke=1]="Invoke",e[e.Auto=2]="Auto"}(o||(o={})),function(e){e[e.KeepWhitespace=1]="KeepWhitespace",e[e.InsertAsSnippet=4]="InsertAsSnippet"}(s||(s={})),function(e){e[e.Method=0]="Method",e[e.Function=1]="Function",e[e.Constructor=2]="Constructor",e[e.Field=3]="Field",e[e.Variable=4]="Variable",e[e.Class=5]="Class",e[e.Struct=6]="Struct",e[e.Interface=7]="Interface",e[e.Module=8]="Module",e[e.Property=9]="Property",e[e.Event=10]="Event",e[e.Operator=11]="Operator",e[e.Unit=12]="Unit",e[e.Value=13]="Value",e[e.Constant=14]="Constant",e[e.Enum=15]="Enum",e[e.EnumMember=16]="EnumMember",e[e.Keyword=17]="Keyword",e[e.Text=18]="Text",e[e.Color=19]="Color",e[e.File=20]="File",e[e.Reference=21]="Reference",e[e.Customcolor=22]="Customcolor",e[e.Folder=23]="Folder",e[e.TypeParameter=24]="TypeParameter",e[e.User=25]="User",e[e.Issue=26]="Issue",e[e.Snippet=27]="Snippet"}(r||(r={})),function(e){e[e.Deprecated=1]="Deprecated"}(a||(a={})),function(e){e[e.Invoke=0]="Invoke",e[e.TriggerCharacter=1]="TriggerCharacter",e[e.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"}(l||(l={})),function(e){e[e.EXACT=0]="EXACT",e[e.ABOVE=1]="ABOVE",e[e.BELOW=2]="BELOW"}(c||(c={})),function(e){e[e.NotSet=0]="NotSet",e[e.ContentFlush=1]="ContentFlush",e[e.RecoverFromMarkers=2]="RecoverFromMarkers",e[e.Explicit=3]="Explicit",e[e.Paste=4]="Paste",e[e.Undo=5]="Undo",e[e.Redo=6]="Redo"}(d||(d={})),function(e){e[e.LF=1]="LF",e[e.CRLF=2]="CRLF"}(h||(h={})),function(e){e[e.Text=0]="Text",e[e.Read=1]="Read",e[e.Write=2]="Write"}(u||(u={})),function(e){e[e.None=0]="None",e[e.Keep=1]="Keep",e[e.Brackets=2]="Brackets",e[e.Advanced=3]="Advanced",e[e.Full=4]="Full"}(g||(g={})),function(e){e[e.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",e[e.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter",e[e.accessibilitySupport=2]="accessibilitySupport",e[e.accessibilityPageSize=3]="accessibilityPageSize",e[e.ariaLabel=4]="ariaLabel",e[e.autoClosingBrackets=5]="autoClosingBrackets",e[e.autoClosingDelete=6]="autoClosingDelete",e[e.autoClosingOvertype=7]="autoClosingOvertype",e[e.autoClosingQuotes=8]="autoClosingQuotes",e[e.autoIndent=9]="autoIndent",e[e.automaticLayout=10]="automaticLayout",e[e.autoSurround=11]="autoSurround",e[e.bracketPairColorization=12]="bracketPairColorization",e[e.guides=13]="guides",e[e.codeLens=14]="codeLens",e[e.codeLensFontFamily=15]="codeLensFontFamily",e[e.codeLensFontSize=16]="codeLensFontSize",e[e.colorDecorators=17]="colorDecorators",e[e.columnSelection=18]="columnSelection",e[e.comments=19]="comments",e[e.contextmenu=20]="contextmenu",e[e.copyWithSyntaxHighlighting=21]="copyWithSyntaxHighlighting",e[e.cursorBlinking=22]="cursorBlinking",e[e.cursorSmoothCaretAnimation=23]="cursorSmoothCaretAnimation",e[e.cursorStyle=24]="cursorStyle",e[e.cursorSurroundingLines=25]="cursorSurroundingLines",e[e.cursorSurroundingLinesStyle=26]="cursorSurroundingLinesStyle",e[e.cursorWidth=27]="cursorWidth",e[e.disableLayerHinting=28]="disableLayerHinting",e[e.disableMonospaceOptimizations=29]="disableMonospaceOptimizations",e[e.domReadOnly=30]="domReadOnly",e[e.dragAndDrop=31]="dragAndDrop",e[e.dropIntoEditor=32]="dropIntoEditor",e[e.emptySelectionClipboard=33]="emptySelectionClipboard",e[e.experimental=34]="experimental",e[e.extraEditorClassName=35]="extraEditorClassName",e[e.fastScrollSensitivity=36]="fastScrollSensitivity",e[e.find=37]="find",e[e.fixedOverflowWidgets=38]="fixedOverflowWidgets",e[e.folding=39]="folding",e[e.foldingStrategy=40]="foldingStrategy",e[e.foldingHighlight=41]="foldingHighlight",e[e.foldingImportsByDefault=42]="foldingImportsByDefault",e[e.foldingMaximumRegions=43]="foldingMaximumRegions",e[e.unfoldOnClickAfterEndOfLine=44]="unfoldOnClickAfterEndOfLine",e[e.fontFamily=45]="fontFamily",e[e.fontInfo=46]="fontInfo",e[e.fontLigatures=47]="fontLigatures",e[e.fontSize=48]="fontSize",e[e.fontWeight=49]="fontWeight",e[e.formatOnPaste=50]="formatOnPaste",e[e.formatOnType=51]="formatOnType",e[e.glyphMargin=52]="glyphMargin",e[e.gotoLocation=53]="gotoLocation",e[e.hideCursorInOverviewRuler=54]="hideCursorInOverviewRuler",e[e.hover=55]="hover",e[e.inDiffEditor=56]="inDiffEditor",e[e.inlineSuggest=57]="inlineSuggest",e[e.letterSpacing=58]="letterSpacing",e[e.lightbulb=59]="lightbulb",e[e.lineDecorationsWidth=60]="lineDecorationsWidth",e[e.lineHeight=61]="lineHeight",e[e.lineNumbers=62]="lineNumbers",e[e.lineNumbersMinChars=63]="lineNumbersMinChars",e[e.linkedEditing=64]="linkedEditing",e[e.links=65]="links",e[e.matchBrackets=66]="matchBrackets",e[e.minimap=67]="minimap",e[e.mouseStyle=68]="mouseStyle",e[e.mouseWheelScrollSensitivity=69]="mouseWheelScrollSensitivity",e[e.mouseWheelZoom=70]="mouseWheelZoom",e[e.multiCursorMergeOverlapping=71]="multiCursorMergeOverlapping",e[e.multiCursorModifier=72]="multiCursorModifier",e[e.multiCursorPaste=73]="multiCursorPaste",e[e.occurrencesHighlight=74]="occurrencesHighlight",e[e.overviewRulerBorder=75]="overviewRulerBorder",e[e.overviewRulerLanes=76]="overviewRulerLanes",e[e.padding=77]="padding",e[e.parameterHints=78]="parameterHints",e[e.peekWidgetDefaultFocus=79]="peekWidgetDefaultFocus",e[e.definitionLinkOpensInPeek=80]="definitionLinkOpensInPeek",e[e.quickSuggestions=81]="quickSuggestions",e[e.quickSuggestionsDelay=82]="quickSuggestionsDelay",e[e.readOnly=83]="readOnly",e[e.renameOnType=84]="renameOnType",e[e.renderControlCharacters=85]="renderControlCharacters",e[e.renderFinalNewline=86]="renderFinalNewline",e[e.renderLineHighlight=87]="renderLineHighlight",e[e.renderLineHighlightOnlyWhenFocus=88]="renderLineHighlightOnlyWhenFocus",e[e.renderValidationDecorations=89]="renderValidationDecorations",e[e.renderWhitespace=90]="renderWhitespace",e[e.revealHorizontalRightPadding=91]="revealHorizontalRightPadding",e[e.roundedSelection=92]="roundedSelection",e[e.rulers=93]="rulers",e[e.scrollbar=94]="scrollbar",e[e.scrollBeyondLastColumn=95]="scrollBeyondLastColumn",e[e.scrollBeyondLastLine=96]="scrollBeyondLastLine",e[e.scrollPredominantAxis=97]="scrollPredominantAxis",e[e.selectionClipboard=98]="selectionClipboard",e[e.selectionHighlight=99]="selectionHighlight",e[e.selectOnLineNumbers=100]="selectOnLineNumbers",e[e.showFoldingControls=101]="showFoldingControls",e[e.showUnused=102]="showUnused",e[e.snippetSuggestions=103]="snippetSuggestions",e[e.smartSelect=104]="smartSelect",e[e.smoothScrolling=105]="smoothScrolling",e[e.stickyTabStops=106]="stickyTabStops",e[e.stopRenderingLineAfter=107]="stopRenderingLineAfter",e[e.suggest=108]="suggest",e[e.suggestFontSize=109]="suggestFontSize",e[e.suggestLineHeight=110]="suggestLineHeight",e[e.suggestOnTriggerCharacters=111]="suggestOnTriggerCharacters",e[e.suggestSelection=112]="suggestSelection",e[e.tabCompletion=113]="tabCompletion",e[e.tabIndex=114]="tabIndex",e[e.unicodeHighlighting=115]="unicodeHighlighting",e[e.unusualLineTerminators=116]="unusualLineTerminators",e[e.useShadowDOM=117]="useShadowDOM",e[e.useTabStops=118]="useTabStops",e[e.wordSeparators=119]="wordSeparators",e[e.wordWrap=120]="wordWrap",e[e.wordWrapBreakAfterCharacters=121]="wordWrapBreakAfterCharacters",e[e.wordWrapBreakBeforeCharacters=122]="wordWrapBreakBeforeCharacters",e[e.wordWrapColumn=123]="wordWrapColumn",e[e.wordWrapOverride1=124]="wordWrapOverride1",e[e.wordWrapOverride2=125]="wordWrapOverride2",e[e.wrappingIndent=126]="wrappingIndent",e[e.wrappingStrategy=127]="wrappingStrategy",e[e.showDeprecated=128]="showDeprecated",e[e.inlayHints=129]="inlayHints",e[e.editorClassName=130]="editorClassName",e[e.pixelRatio=131]="pixelRatio",e[e.tabFocusMode=132]="tabFocusMode",e[e.layoutInfo=133]="layoutInfo",e[e.wrappingInfo=134]="wrappingInfo"}(p||(p={})),function(e){e[e.TextDefined=0]="TextDefined",e[e.LF=1]="LF",e[e.CRLF=2]="CRLF"}(m||(m={})),function(e){e[e.LF=0]="LF",e[e.CRLF=1]="CRLF"}(f||(f={})),function(e){e[e.None=0]="None",e[e.Indent=1]="Indent",e[e.IndentOutdent=2]="IndentOutdent",e[e.Outdent=3]="Outdent"}(_||(_={})),function(e){e[e.Both=0]="Both",e[e.Right=1]="Right",e[e.Left=2]="Left",e[e.None=3]="None"}(v||(v={})),function(e){e[e.Type=1]="Type",e[e.Parameter=2]="Parameter"}(b||(b={})),function(e){e[e.Automatic=0]="Automatic",e[e.Explicit=1]="Explicit"}(C||(C={})),function(e){e[e.DependsOnKbLayout=-1]="DependsOnKbLayout",e[e.Unknown=0]="Unknown",e[e.Backspace=1]="Backspace",e[e.Tab=2]="Tab",e[e.Enter=3]="Enter",e[e.Shift=4]="Shift",e[e.Ctrl=5]="Ctrl",e[e.Alt=6]="Alt",e[e.PauseBreak=7]="PauseBreak",e[e.CapsLock=8]="CapsLock",e[e.Escape=9]="Escape",e[e.Space=10]="Space",e[e.PageUp=11]="PageUp",e[e.PageDown=12]="PageDown",e[e.End=13]="End",e[e.Home=14]="Home",e[e.LeftArrow=15]="LeftArrow",e[e.UpArrow=16]="UpArrow",e[e.RightArrow=17]="RightArrow",e[e.DownArrow=18]="DownArrow",e[e.Insert=19]="Insert",e[e.Delete=20]="Delete",e[e.Digit0=21]="Digit0",e[e.Digit1=22]="Digit1",e[e.Digit2=23]="Digit2",e[e.Digit3=24]="Digit3",e[e.Digit4=25]="Digit4",e[e.Digit5=26]="Digit5",e[e.Digit6=27]="Digit6",e[e.Digit7=28]="Digit7",e[e.Digit8=29]="Digit8",e[e.Digit9=30]="Digit9",e[e.KeyA=31]="KeyA",e[e.KeyB=32]="KeyB",e[e.KeyC=33]="KeyC",e[e.KeyD=34]="KeyD",e[e.KeyE=35]="KeyE",e[e.KeyF=36]="KeyF",e[e.KeyG=37]="KeyG",e[e.KeyH=38]="KeyH",e[e.KeyI=39]="KeyI",e[e.KeyJ=40]="KeyJ",e[e.KeyK=41]="KeyK",e[e.KeyL=42]="KeyL",e[e.KeyM=43]="KeyM",e[e.KeyN=44]="KeyN",e[e.KeyO=45]="KeyO",e[e.KeyP=46]="KeyP",e[e.KeyQ=47]="KeyQ",e[e.KeyR=48]="KeyR",e[e.KeyS=49]="KeyS",e[e.KeyT=50]="KeyT",e[e.KeyU=51]="KeyU",e[e.KeyV=52]="KeyV",e[e.KeyW=53]="KeyW",e[e.KeyX=54]="KeyX",e[e.KeyY=55]="KeyY",e[e.KeyZ=56]="KeyZ",e[e.Meta=57]="Meta",e[e.ContextMenu=58]="ContextMenu",e[e.F1=59]="F1",e[e.F2=60]="F2",e[e.F3=61]="F3",e[e.F4=62]="F4",e[e.F5=63]="F5",e[e.F6=64]="F6",e[e.F7=65]="F7",e[e.F8=66]="F8",e[e.F9=67]="F9",e[e.F10=68]="F10",e[e.F11=69]="F11",e[e.F12=70]="F12",e[e.F13=71]="F13",e[e.F14=72]="F14",e[e.F15=73]="F15",e[e.F16=74]="F16",e[e.F17=75]="F17",e[e.F18=76]="F18",e[e.F19=77]="F19",e[e.NumLock=78]="NumLock",e[e.ScrollLock=79]="ScrollLock",e[e.Semicolon=80]="Semicolon",e[e.Equal=81]="Equal",e[e.Comma=82]="Comma",e[e.Minus=83]="Minus",e[e.Period=84]="Period",e[e.Slash=85]="Slash",e[e.Backquote=86]="Backquote",e[e.BracketLeft=87]="BracketLeft",e[e.Backslash=88]="Backslash",e[e.BracketRight=89]="BracketRight",e[e.Quote=90]="Quote",e[e.OEM_8=91]="OEM_8",e[e.IntlBackslash=92]="IntlBackslash",e[e.Numpad0=93]="Numpad0",e[e.Numpad1=94]="Numpad1",e[e.Numpad2=95]="Numpad2",e[e.Numpad3=96]="Numpad3",e[e.Numpad4=97]="Numpad4",e[e.Numpad5=98]="Numpad5",e[e.Numpad6=99]="Numpad6",e[e.Numpad7=100]="Numpad7",e[e.Numpad8=101]="Numpad8",e[e.Numpad9=102]="Numpad9",e[e.NumpadMultiply=103]="NumpadMultiply",e[e.NumpadAdd=104]="NumpadAdd",e[e.NUMPAD_SEPARATOR=105]="NUMPAD_SEPARATOR",e[e.NumpadSubtract=106]="NumpadSubtract",e[e.NumpadDecimal=107]="NumpadDecimal",e[e.NumpadDivide=108]="NumpadDivide",e[e.KEY_IN_COMPOSITION=109]="KEY_IN_COMPOSITION",e[e.ABNT_C1=110]="ABNT_C1",e[e.ABNT_C2=111]="ABNT_C2",e[e.AudioVolumeMute=112]="AudioVolumeMute",e[e.AudioVolumeUp=113]="AudioVolumeUp",e[e.AudioVolumeDown=114]="AudioVolumeDown",e[e.BrowserSearch=115]="BrowserSearch",e[e.BrowserHome=116]="BrowserHome",e[e.BrowserBack=117]="BrowserBack",e[e.BrowserForward=118]="BrowserForward",e[e.MediaTrackNext=119]="MediaTrackNext",e[e.MediaTrackPrevious=120]="MediaTrackPrevious",e[e.MediaStop=121]="MediaStop",e[e.MediaPlayPause=122]="MediaPlayPause",e[e.LaunchMediaPlayer=123]="LaunchMediaPlayer",e[e.LaunchMail=124]="LaunchMail",e[e.LaunchApp2=125]="LaunchApp2",e[e.Clear=126]="Clear",e[e.MAX_VALUE=127]="MAX_VALUE"}(w||(w={})),function(e){e[e.Hint=1]="Hint",e[e.Info=2]="Info",e[e.Warning=4]="Warning",e[e.Error=8]="Error"}(y||(y={})),function(e){e[e.Unnecessary=1]="Unnecessary",e[e.Deprecated=2]="Deprecated"}(S||(S={})),function(e){e[e.Inline=1]="Inline",e[e.Gutter=2]="Gutter"}(L||(L={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.TEXTAREA=1]="TEXTAREA",e[e.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",e[e.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS",e[e.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",e[e.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",e[e.CONTENT_TEXT=6]="CONTENT_TEXT",e[e.CONTENT_EMPTY=7]="CONTENT_EMPTY",e[e.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",e[e.CONTENT_WIDGET=9]="CONTENT_WIDGET",e[e.OVERVIEW_RULER=10]="OVERVIEW_RULER",e[e.SCROLLBAR=11]="SCROLLBAR",e[e.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",e[e.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"}(k||(k={})),function(e){e[e.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",e[e.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",e[e.TOP_CENTER=2]="TOP_CENTER"}(x||(x={})),function(e){e[e.Left=1]="Left",e[e.Center=2]="Center",e[e.Right=4]="Right",e[e.Full=7]="Full"}(D||(D={})),function(e){e[e.Left=0]="Left",e[e.Right=1]="Right",e[e.None=2]="None",e[e.LeftOfInjectedText=3]="LeftOfInjectedText",e[e.RightOfInjectedText=4]="RightOfInjectedText"}(N||(N={})),function(e){e[e.Off=0]="Off",e[e.On=1]="On",e[e.Relative=2]="Relative",e[e.Interval=3]="Interval",e[e.Custom=4]="Custom"}(E||(E={})),function(e){e[e.None=0]="None",e[e.Text=1]="Text",e[e.Blocks=2]="Blocks"}(I||(I={})),function(e){e[e.Smooth=0]="Smooth",e[e.Immediate=1]="Immediate"}(T||(T={})),function(e){e[e.Auto=1]="Auto",e[e.Hidden=2]="Hidden",e[e.Visible=3]="Visible"}(M||(M={})),function(e){e[e.LTR=0]="LTR",e[e.RTL=1]="RTL"}(A||(A={})),function(e){e[e.Invoke=1]="Invoke",e[e.TriggerCharacter=2]="TriggerCharacter",e[e.ContentChange=3]="ContentChange"}(R||(R={})),function(e){e[e.File=0]="File",e[e.Module=1]="Module",e[e.Namespace=2]="Namespace",e[e.Package=3]="Package",e[e.Class=4]="Class",e[e.Method=5]="Method",e[e.Property=6]="Property",e[e.Field=7]="Field",e[e.Constructor=8]="Constructor",e[e.Enum=9]="Enum",e[e.Interface=10]="Interface",e[e.Function=11]="Function",e[e.Variable=12]="Variable",e[e.Constant=13]="Constant",e[e.String=14]="String",e[e.Number=15]="Number",e[e.Boolean=16]="Boolean",e[e.Array=17]="Array",e[e.Object=18]="Object",e[e.Key=19]="Key",e[e.Null=20]="Null",e[e.EnumMember=21]="EnumMember",e[e.Struct=22]="Struct",e[e.Event=23]="Event",e[e.Operator=24]="Operator",e[e.TypeParameter=25]="TypeParameter"}(O||(O={})),function(e){e[e.Deprecated=1]="Deprecated"}(P||(P={})),function(e){e[e.Hidden=0]="Hidden",e[e.Blink=1]="Blink",e[e.Smooth=2]="Smooth",e[e.Phase=3]="Phase",e[e.Expand=4]="Expand",e[e.Solid=5]="Solid"}(F||(F={})),function(e){e[e.Line=1]="Line",e[e.Block=2]="Block",e[e.Underline=3]="Underline",e[e.LineThin=4]="LineThin",e[e.BlockOutline=5]="BlockOutline",e[e.UnderlineThin=6]="UnderlineThin"}(B||(B={})),function(e){e[e.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",e[e.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",e[e.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",e[e.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"}(V||(V={})),function(e){e[e.None=0]="None",e[e.Same=1]="Same",e[e.Indent=2]="Indent",e[e.DeepIndent=3]="DeepIndent"}(W||(W={}))},20913:(e,t,i)=>{"use strict";i.d(t,{B8:()=>c,Oe:()=>n,UX:()=>a,aq:()=>l,iN:()=>h,ld:()=>r,qq:()=>s,ug:()=>o,xi:()=>d});var n,o,s,r,a,l,c,d,h,u=i(63580);!function(e){e.noSelection=u.NC("noSelection","No selection"),e.singleSelectionRange=u.NC("singleSelectionRange","Line {0}, Column {1} ({2} selected)"),e.singleSelection=u.NC("singleSelection","Line {0}, Column {1}"),e.multiSelectionRange=u.NC("multiSelectionRange","{0} selections ({1} characters selected)"),e.multiSelection=u.NC("multiSelection","{0} selections"),e.emergencyConfOn=u.NC("emergencyConfOn","Now changing the setting `accessibilitySupport` to 'on'."),e.openingDocs=u.NC("openingDocs","Now opening the Editor Accessibility documentation page."),e.readonlyDiffEditor=u.NC("readonlyDiffEditor"," in a read-only pane of a diff editor."),e.editableDiffEditor=u.NC("editableDiffEditor"," in a pane of a diff editor."),e.readonlyEditor=u.NC("readonlyEditor"," in a read-only code editor"),e.editableEditor=u.NC("editableEditor"," in a code editor"),e.changeConfigToOnMac=u.NC("changeConfigToOnMac","To configure the editor to be optimized for usage with a Screen Reader press Command+E now."),e.changeConfigToOnWinLinux=u.NC("changeConfigToOnWinLinux","To configure the editor to be optimized for usage with a Screen Reader press Control+E now."),e.auto_on=u.NC("auto_on","The editor is configured to be optimized for usage with a Screen Reader."),e.auto_off=u.NC("auto_off","The editor is configured to never be optimized for usage with a Screen Reader, which is not the case at this time."),e.tabFocusModeOnMsg=u.NC("tabFocusModeOnMsg","Pressing Tab in the current editor will move focus to the next focusable element. Toggle this behavior by pressing {0}."),e.tabFocusModeOnMsgNoKb=u.NC("tabFocusModeOnMsgNoKb","Pressing Tab in the current editor will move focus to the next focusable element. The command {0} is currently not triggerable by a keybinding."),e.tabFocusModeOffMsg=u.NC("tabFocusModeOffMsg","Pressing Tab in the current editor will insert the tab character. Toggle this behavior by pressing {0}."),e.tabFocusModeOffMsgNoKb=u.NC("tabFocusModeOffMsgNoKb","Pressing Tab in the current editor will insert the tab character. The command {0} is currently not triggerable by a keybinding."),e.openDocMac=u.NC("openDocMac","Press Command+H now to open a browser window with more information related to editor accessibility."),e.openDocWinLinux=u.NC("openDocWinLinux","Press Control+H now to open a browser window with more information related to editor accessibility."),e.outroMsg=u.NC("outroMsg","You can dismiss this tooltip and return to the editor by pressing Escape or Shift+Escape."),e.showAccessibilityHelpAction=u.NC("showAccessibilityHelpAction","Show Accessibility Help")}(n||(n={})),function(e){e.inspectTokensAction=u.NC("inspectTokens","Developer: Inspect Tokens")}(o||(o={})),function(e){e.gotoLineActionLabel=u.NC("gotoLineActionLabel","Go to Line/Column...")}(s||(s={})),function(e){e.helpQuickAccessActionLabel=u.NC("helpQuickAccess","Show all Quick Access Providers")}(r||(r={})),function(e){e.quickCommandActionLabel=u.NC("quickCommandActionLabel","Command Palette"),e.quickCommandHelp=u.NC("quickCommandActionHelp","Show And Run Commands")}(a||(a={})),function(e){e.quickOutlineActionLabel=u.NC("quickOutlineActionLabel","Go to Symbol..."),e.quickOutlineByCategoryActionLabel=u.NC("quickOutlineByCategoryActionLabel","Go to Symbol by Category...")}(l||(l={})),function(e){e.editorViewAccessibleLabel=u.NC("editorViewAccessibleLabel","Editor content"),e.accessibilityHelpMessage=u.NC("accessibilityHelpMessage","Press Alt+F1 for Accessibility Options.")}(c||(c={})),function(e){e.toggleHighContrast=u.NC("toggleHighContrast","Toggle High Contrast Theme")}(d||(d={})),function(e){e.bulkEditServiceSummary=u.NC("bulkEditServiceSummary","Made {0} edits in {1} files")}(h||(h={}))},14706:(e,t,i)=>{"use strict";i.d(t,{CZ:()=>l,D8:()=>d,Jx:()=>n,Tx:()=>a,dQ:()=>c,fV:()=>h,gk:()=>o,lN:()=>r,rU:()=>s});class n{constructor(){this.changeType=1}}class o{constructor(e,t,i,n,o){this.ownerId=e,this.lineNumber=t,this.column=i,this.options=n,this.order=o}static applyInjectedText(e,t){if(!t||0===t.length)return e;let i="",n=0;for(const o of t)i+=e.substring(n,o.column-1),n=o.column-1,i+=o.options.content;return i+=e.substring(n),i}static fromDecorations(e){const t=[];for(const i of e)i.options.before&&i.options.before.content.length>0&&t.push(new o(i.ownerId,i.range.startLineNumber,i.range.startColumn,i.options.before,0)),i.options.after&&i.options.after.content.length>0&&t.push(new o(i.ownerId,i.range.endLineNumber,i.range.endColumn,i.options.after,1));return t.sort(((e,t)=>e.lineNumber===t.lineNumber?e.column===t.column?e.order-t.order:e.column-t.column:e.lineNumber-t.lineNumber)),t}}class s{constructor(e,t,i){this.changeType=2,this.lineNumber=e,this.detail=t,this.injectedText=i}}class r{constructor(e,t){this.changeType=3,this.fromLineNumber=e,this.toLineNumber=t}}class a{constructor(e,t,i,n){this.changeType=4,this.injectedTexts=n,this.fromLineNumber=e,this.toLineNumber=t,this.detail=i}}class l{constructor(){this.changeType=5}}class c{constructor(e,t,i,n){this.changes=e,this.versionId=t,this.isUndoing=i,this.isRedoing=n,this.resultingSelection=null}containsEvent(e){for(let t=0,i=this.changes.length;t<i;t++){if(this.changes[t].changeType===e)return!0}return!1}static merge(e,t){const i=[].concat(e.changes).concat(t.changes),n=t.versionId,o=e.isUndoing||t.isUndoing,s=e.isRedoing||t.isRedoing;return new c(i,n,o,s)}}class d{constructor(e){this.changes=e}}class h{constructor(e,t){this.rawContentChangedEvent=e,this.contentChangedEvent=t}merge(e){const t=c.merge(this.rawContentChangedEvent,e.rawContentChangedEvent),i=h._mergeChangeEvents(this.contentChangedEvent,e.contentChangedEvent);return new h(t,i)}static _mergeChangeEvents(e,t){return{changes:[].concat(e.changes).concat(t.changes),eol:t.eol,versionId:t.versionId,isUndoing:e.isUndoing||t.isUndoing,isRedoing:e.isRedoing||t.isRedoing,isFlush:e.isFlush||t.isFlush}}}},65094:(e,t,i)=>{"use strict";var n;i.d(t,{UO:()=>o,s6:()=>n,vW:()=>s}),function(e){e[e.Disabled=0]="Disabled",e[e.EnabledForActive=1]="EnabledForActive",e[e.Enabled=2]="Enabled"}(n||(n={}));class o{constructor(e,t,i,n,o,s){if(this.visibleColumn=e,this.column=t,this.className=i,this.horizontalLine=n,this.forWrappedLinesAfterColumn=o,this.forWrappedLinesBeforeOrAtColumn=s,-1!==e==(-1!==t))throw new Error}}class s{constructor(e,t){this.top=e,this.endColumn=t}}},77378:(e,t,i)=>{"use strict";i.d(t,{A:()=>o});var n=i(45797);class o{constructor(e,t,i){this._lineTokensBrand=void 0,this._tokens=e,this._tokensCount=this._tokens.length>>>1,this._text=t,this._languageIdCodec=i}static createEmpty(e,t){const i=o.defaultTokenMetadata,n=new Uint32Array(2);return n[0]=e.length,n[1]=i,new o(n,e,t)}equals(e){return e instanceof o&&this.slicedEquals(e,0,this._tokensCount)}slicedEquals(e,t,i){if(this._text!==e._text)return!1;if(this._tokensCount!==e._tokensCount)return!1;const n=t<<1,o=n+(i<<1);for(let s=n;s<o;s++)if(this._tokens[s]!==e._tokens[s])return!1;return!0}getLineContent(){return this._text}getCount(){return this._tokensCount}getStartOffset(e){return e>0?this._tokens[e-1<<1]:0}getMetadata(e){return this._tokens[1+(e<<1)]}getLanguageId(e){const t=this._tokens[1+(e<<1)],i=n.N.getLanguageId(t);return this._languageIdCodec.decodeLanguageId(i)}getStandardTokenType(e){const t=this._tokens[1+(e<<1)];return n.N.getTokenType(t)}getForeground(e){const t=this._tokens[1+(e<<1)];return n.N.getForeground(t)}getClassName(e){const t=this._tokens[1+(e<<1)];return n.N.getClassNameFromMetadata(t)}getInlineStyle(e,t){const i=this._tokens[1+(e<<1)];return n.N.getInlineStyleFromMetadata(i,t)}getPresentation(e){const t=this._tokens[1+(e<<1)];return n.N.getPresentationFromMetadata(t)}getEndOffset(e){return this._tokens[e<<1]}findTokenIndexAtOffset(e){return o.findIndexInTokensArray(this._tokens,e)}inflate(){return this}sliceAndInflate(e,t,i){return new s(this,e,t,i)}static convertToEndOffset(e,t){const i=(e.length>>>1)-1;for(let n=0;n<i;n++)e[n<<1]=e[n+1<<1];e[i<<1]=t}static findIndexInTokensArray(e,t){if(e.length<=2)return 0;let i=0,n=(e.length>>>1)-1;for(;i<n;){const o=i+Math.floor((n-i)/2),s=e[o<<1];if(s===t)return o+1;s<t?i=o+1:s>t&&(n=o)}return i}withInserted(e){if(0===e.length)return this;let t=0,i=0,n="";const s=new Array;let r=0;for(;;){const o=t<this._tokensCount?this._tokens[t<<1]:-1,a=i<e.length?e[i]:null;if(-1!==o&&(null===a||o<=a.offset)){n+=this._text.substring(r,o);const e=this._tokens[1+(t<<1)];s.push(n.length,e),t++,r=o}else{if(!a)break;if(a.offset>r){n+=this._text.substring(r,a.offset);const e=this._tokens[1+(t<<1)];s.push(n.length,e),r=a.offset}n+=a.text,s.push(n.length,a.tokenMetadata),i++}}return new o(new Uint32Array(s),n,this._languageIdCodec)}}o.defaultTokenMetadata=33587200;class s{constructor(e,t,i,n){this._source=e,this._startOffset=t,this._endOffset=i,this._deltaOffset=n,this._firstTokenIndex=e.findTokenIndexAtOffset(t),this._tokensCount=0;for(let o=this._firstTokenIndex,s=e.getCount();o<s;o++){if(e.getStartOffset(o)>=i)break;this._tokensCount++}}getMetadata(e){return this._source.getMetadata(this._firstTokenIndex+e)}getLanguageId(e){return this._source.getLanguageId(this._firstTokenIndex+e)}getLineContent(){return this._source.getLineContent().substring(this._startOffset,this._endOffset)}equals(e){return e instanceof s&&(this._startOffset===e._startOffset&&this._endOffset===e._endOffset&&this._deltaOffset===e._deltaOffset&&this._source.slicedEquals(e._source,this._firstTokenIndex,this._tokensCount))}getCount(){return this._tokensCount}getForeground(e){return this._source.getForeground(this._firstTokenIndex+e)}getEndOffset(e){const t=this._source.getEndOffset(this._firstTokenIndex+e);return Math.min(this._endOffset,t)-this._startOffset+this._deltaOffset}getClassName(e){return this._source.getClassName(this._firstTokenIndex+e)}getInlineStyle(e,t){return this._source.getInlineStyle(this._firstTokenIndex+e,t)}getPresentation(e){return this._source.getPresentation(this._firstTokenIndex+e)}findTokenIndexAtOffset(e){return this._source.findTokenIndexAtOffset(e+this._startOffset-this._deltaOffset)-this._firstTokenIndex}}},92550:(e,t,i)=>{"use strict";i.d(t,{Kp:()=>o,k:()=>a});var n=i(97295);class o{constructor(e,t,i,n){this.startColumn=e,this.endColumn=t,this.className=i,this.type=n,this._lineDecorationBrand=void 0}static _equals(e,t){return e.startColumn===t.startColumn&&e.endColumn===t.endColumn&&e.className===t.className&&e.type===t.type}static equalsArr(e,t){const i=e.length;if(i!==t.length)return!1;for(let n=0;n<i;n++)if(!o._equals(e[n],t[n]))return!1;return!0}static extractWrapped(e,t,i){if(0===e.length)return e;const n=t+1,s=i+1,r=i-t,a=[];let l=0;for(const c of e)c.endColumn<=n||c.startColumn>=s||(a[l++]=new o(Math.max(1,c.startColumn-n+1),Math.min(r+1,c.endColumn-n+1),c.className,c.type));return a}static filter(e,t,i,n){if(0===e.length)return[];const s=[];let r=0;for(let a=0,l=e.length;a<l;a++){const l=e[a],c=l.range;if(c.endLineNumber<t||c.startLineNumber>t)continue;if(c.isEmpty()&&(0===l.type||3===l.type))continue;const d=c.startLineNumber===t?c.startColumn:i,h=c.endLineNumber===t?c.endColumn:n;s[r++]=new o(d,h,l.inlineClassName,l.type)}return s}static _typeCompare(e,t){const i=[2,0,1,3];return i[e]-i[t]}static compare(e,t){if(e.startColumn!==t.startColumn)return e.startColumn-t.startColumn;if(e.endColumn!==t.endColumn)return e.endColumn-t.endColumn;const i=o._typeCompare(e.type,t.type);return 0!==i?i:e.className!==t.className?e.className<t.className?-1:1:0}}class s{constructor(e,t,i,n){this.startOffset=e,this.endOffset=t,this.className=i,this.metadata=n}}class r{constructor(){this.stopOffsets=[],this.classNames=[],this.metadata=[],this.count=0}static _metadata(e){let t=0;for(let i=0,n=e.length;i<n;i++)t|=e[i];return t}consumeLowerThan(e,t,i){for(;this.count>0&&this.stopOffsets[0]<e;){let e=0;for(;e+1<this.count&&this.stopOffsets[e]===this.stopOffsets[e+1];)e++;i.push(new s(t,this.stopOffsets[e],this.classNames.join(" "),r._metadata(this.metadata))),t=this.stopOffsets[e]+1,this.stopOffsets.splice(0,e+1),this.classNames.splice(0,e+1),this.metadata.splice(0,e+1),this.count-=e+1}return this.count>0&&t<e&&(i.push(new s(t,e-1,this.classNames.join(" "),r._metadata(this.metadata))),t=e),t}insert(e,t,i){if(0===this.count||this.stopOffsets[this.count-1]<=e)this.stopOffsets.push(e),this.classNames.push(t),this.metadata.push(i);else for(let n=0;n<this.count;n++)if(this.stopOffsets[n]>=e){this.stopOffsets.splice(n,0,e),this.classNames.splice(n,0,t),this.metadata.splice(n,0,i);break}this.count++}}class a{static normalize(e,t){if(0===t.length)return[];const i=[],o=new r;let s=0;for(let r=0,a=t.length;r<a;r++){const a=t[r];let l=a.startColumn,c=a.endColumn;const d=a.className,h=1===a.type?2:2===a.type?4:0;if(l>1){const t=e.charCodeAt(l-2);n.ZG(t)&&l--}if(c>1){const t=e.charCodeAt(c-2);n.ZG(t)&&c--}const u=l-1,g=c-2;s=o.consumeLowerThan(u,s,i),0===o.count&&(s=u),o.insert(g,d,h)}return o.consumeLowerThan(1073741824,s,i),i}}},72202:(e,t,i)=>{"use strict";i.d(t,{Nd:()=>c,zG:()=>a,IJ:()=>l,d1:()=>u,tF:()=>p});var n=i(97295),o=i(50072),s=i(92550);class r{constructor(e,t,i,n){this.endIndex=e,this.type=t,this.metadata=i,this.containsRTL=n,this._linePartBrand=void 0}isWhitespace(){return!!(1&this.metadata)}isPseudoAfter(){return!!(4&this.metadata)}}class a{constructor(e,t){this.startOffset=e,this.endOffset=t}equals(e){return this.startOffset===e.startOffset&&this.endOffset===e.endOffset}}class l{constructor(e,t,i,n,o,r,a,l,c,d,h,u,g,p,m,f,_,v,b){this.useMonospaceOptimizations=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=i,this.continuesWithWrappedLine=n,this.isBasicASCII=o,this.containsRTL=r,this.fauxIndentLength=a,this.lineTokens=l,this.lineDecorations=c.sort(s.Kp.compare),this.tabSize=d,this.startVisibleColumn=h,this.spaceWidth=u,this.stopRenderingLineAfter=m,this.renderWhitespace="all"===f?4:"boundary"===f?1:"selection"===f?2:"trailing"===f?3:0,this.renderControlCharacters=_,this.fontLigatures=v,this.selectionsOnLine=b&&b.sort(((e,t)=>e.startOffset<t.startOffset?-1:1));Math.abs(p-u)<Math.abs(g-u)?(this.renderSpaceWidth=p,this.renderSpaceCharCode=11825):(this.renderSpaceWidth=g,this.renderSpaceCharCode=183)}sameSelection(e){if(null===this.selectionsOnLine)return null===e;if(null===e)return!1;if(e.length!==this.selectionsOnLine.length)return!1;for(let t=0;t<this.selectionsOnLine.length;t++)if(!this.selectionsOnLine[t].equals(e[t]))return!1;return!0}equals(e){return this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineContent===e.lineContent&&this.continuesWithWrappedLine===e.continuesWithWrappedLine&&this.isBasicASCII===e.isBasicASCII&&this.containsRTL===e.containsRTL&&this.fauxIndentLength===e.fauxIndentLength&&this.tabSize===e.tabSize&&this.startVisibleColumn===e.startVisibleColumn&&this.spaceWidth===e.spaceWidth&&this.renderSpaceWidth===e.renderSpaceWidth&&this.renderSpaceCharCode===e.renderSpaceCharCode&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.fontLigatures===e.fontLigatures&&s.Kp.equalsArr(this.lineDecorations,e.lineDecorations)&&this.lineTokens.equals(e.lineTokens)&&this.sameSelection(e.selectionsOnLine)}}class c{constructor(e,t){this.partIndex=e,this.charIndex=t}}class d{constructor(e,t){this.length=e,this._data=new Uint32Array(this.length),this._horizontalOffset=new Uint32Array(this.length)}static getPartIndex(e){return(4294901760&e)>>>16}static getCharIndex(e){return(65535&e)>>>0}setColumnInfo(e,t,i,n){const o=(t<<16|i<<0)>>>0;this._data[e-1]=o,this._horizontalOffset[e-1]=n}getHorizontalOffset(e){return 0===this._horizontalOffset.length?0:this._horizontalOffset[e-1]}charOffsetToPartData(e){return 0===this.length?0:e<0?this._data[0]:e>=this.length?this._data[this.length-1]:this._data[e]}getDomPosition(e){const t=this.charOffsetToPartData(e-1),i=d.getPartIndex(t),n=d.getCharIndex(t);return new c(i,n)}getColumn(e,t){return this.partDataToCharOffset(e.partIndex,t,e.charIndex)+1}partDataToCharOffset(e,t,i){if(0===this.length)return 0;const n=(e<<16|i<<0)>>>0;let o=0,s=this.length-1;for(;o+1<s;){const e=o+s>>>1,t=this._data[e];if(t===n)return e;t>n?s=e:o=e}if(o===s)return o;const r=this._data[o],a=this._data[s];if(r===n)return o;if(a===n)return s;const l=d.getPartIndex(r),c=d.getCharIndex(r);let h;h=l!==d.getPartIndex(a)?t:d.getCharIndex(a);return i-c<=h-i?o:s}}class h{constructor(e,t,i){this._renderLineOutputBrand=void 0,this.characterMapping=e,this.containsRTL=t,this.containsForeignElements=i}}function u(e,t){if(0===e.lineContent.length){if(e.lineDecorations.length>0){t.appendASCIIString("<span>");let i=0,n=0,o=0;for(const r of e.lineDecorations)1!==r.type&&2!==r.type||(t.appendASCIIString('<span class="'),t.appendASCIIString(r.className),t.appendASCIIString('"></span>'),1===r.type&&(o|=1,i++),2===r.type&&(o|=2,n++));t.appendASCIIString("</span>");const s=new d(1,i+n);return s.setColumnInfo(1,i,0,0),new h(s,!1,o)}return t.appendASCIIString("<span><span></span></span>"),new h(new d(0,0),!1,0)}return function(e,t){const i=e.fontIsMonospace,o=e.canUseHalfwidthRightwardsArrow,s=e.containsForeignElements,r=e.lineContent,a=e.len,l=e.isOverflowing,c=e.parts,u=e.fauxIndentLength,g=e.tabSize,p=e.startVisibleColumn,m=e.containsRTL,v=e.spaceWidth,b=e.renderSpaceCharCode,C=e.renderWhitespace,w=e.renderControlCharacters,y=new d(a+1,c.length);let S=!1,L=0,k=p,x=0,D=0,N=0;m?t.appendASCIIString('<span dir="ltr">'):t.appendASCIIString("<span>");for(let d=0,h=c.length;d<h;d++){const e=c[d],l=e.endIndex,h=e.type,p=e.containsRTL,m=0!==C&&e.isWhitespace(),E=m&&!i&&("mtkw"===h||!s),I=L===l&&e.isPseudoAfter();if(x=0,t.appendASCIIString("<span "),p&&t.appendASCIIString('style="unicode-bidi:isolate" '),t.appendASCIIString('class="'),t.appendASCIIString(E?"mtkz":h),t.appendASCII(34),m){let e=0;{let t=L,i=k;for(;t<l;t++){const n=0|(9===r.charCodeAt(t)?g-i%g:1);e+=n,t>=u&&(i+=n)}}for(E&&(t.appendASCIIString(' style="width:'),t.appendASCIIString(String(v*e)),t.appendASCIIString('px"')),t.appendASCII(62);L<l;L++){y.setColumnInfo(L+1,d-N,x,D),N=0;let e,i;if(9===r.charCodeAt(L)){e=g-k%g|0,i=e,!o||i>1?t.write1(8594):t.write1(65515);for(let e=2;e<=i;e++)t.write1(160)}else e=2,i=1,t.write1(b),t.write1(8204);x+=e,D+=i,L>=u&&(k+=i)}}else for(t.appendASCII(62);L<l;L++){y.setColumnInfo(L+1,d-N,x,D),N=0;const e=r.charCodeAt(L);let i=1,o=1;switch(e){case 9:i=g-k%g,o=i;for(let e=1;e<=i;e++)t.write1(160);break;case 32:t.write1(160);break;case 60:t.appendASCIIString("<");break;case 62:t.appendASCIIString(">");break;case 38:t.appendASCIIString("&");break;case 0:w?t.write1(9216):t.appendASCIIString("�");break;case 65279:case 8232:case 8233:case 133:t.write1(65533);break;default:n.K7(e)&&o++,w&&e<32?t.write1(9216+e):w&&127===e?t.write1(9249):w&&f(e)?(t.appendASCIIString("[U+"),t.appendASCIIString(_(e)),t.appendASCIIString("]"),i=8,o=i):t.write1(e)}x+=i,D+=o,L>=u&&(k+=o)}I?N++:N=0,L>=a&&!S&&e.isPseudoAfter()&&(S=!0,y.setColumnInfo(L+1,d,x,D)),t.appendASCIIString("</span>")}S||y.setColumnInfo(a+1,c.length-1,x,D);l&&t.appendASCIIString("<span>…</span>");return t.appendASCIIString("</span>"),new h(y,m,s)}(function(e){const t=e.lineContent;let i,o;-1!==e.stopRenderingLineAfter&&e.stopRenderingLineAfter<t.length?(i=!0,o=e.stopRenderingLineAfter):(i=!1,o=t.length);let a=function(e,t,i,o,s){const a=[];let l=0;o>0&&(a[l++]=new r(o,"",0,!1));let c=o;for(let d=0,h=i.getCount();d<h;d++){const h=i.getEndOffset(d);if(h<=o)continue;const u=i.getClassName(d);if(h>=s){const i=!!t&&n.Ut(e.substring(c,s));a[l++]=new r(s,u,0,i);break}const g=!!t&&n.Ut(e.substring(c,h));a[l++]=new r(h,u,0,g),c=h}return a}(t,e.containsRTL,e.lineTokens,e.fauxIndentLength,o);e.renderControlCharacters&&!e.isBasicASCII&&(a=function(e,t){const i=[];let n=new r(0,"",0,!1),o=0;for(const s of t){const t=s.endIndex;for(;o<t;o++){f(e.charCodeAt(o))&&(o>n.endIndex&&(n=new r(o,s.type,s.metadata,s.containsRTL),i.push(n)),n=new r(o+1,"mtkcontrol",s.metadata,!1),i.push(n))}o>n.endIndex&&(n=new r(t,s.type,s.metadata,s.containsRTL),i.push(n))}return i}(t,a));(4===e.renderWhitespace||1===e.renderWhitespace||2===e.renderWhitespace&&e.selectionsOnLine||3===e.renderWhitespace)&&(a=function(e,t,i,o){const s=e.continuesWithWrappedLine,a=e.fauxIndentLength,l=e.tabSize,c=e.startVisibleColumn,d=e.useMonospaceOptimizations,h=e.selectionsOnLine,u=1===e.renderWhitespace,g=3===e.renderWhitespace,p=e.renderSpaceWidth!==e.spaceWidth,m=[];let f=0,_=0,v=o[_].type,b=o[_].containsRTL,C=o[_].endIndex;const w=o.length;let y,S=!1,L=n.LC(t);-1===L?(S=!0,L=i,y=i):y=n.ow(t);let k=!1,x=0,D=h&&h[x],N=c%l;for(let I=a;I<i;I++){const e=t.charCodeAt(I);let s;if(D&&I>=D.endOffset&&(x++,D=h&&h[x]),I<L||I>y)s=!0;else if(9===e)s=!0;else if(32===e)if(u)if(k)s=!0;else{const e=I+1<i?t.charCodeAt(I+1):0;s=32===e||9===e}else s=!0;else s=!1;if(s&&h&&(s=!!D&&D.startOffset<=I&&D.endOffset>I),s&&g&&(s=S||I>y),s&&b&&I>=L&&I<=y&&(s=!1),k){if(!s||!d&&N>=l){if(p){for(let e=(f>0?m[f-1].endIndex:a)+1;e<=I;e++)m[f++]=new r(e,"mtkw",1,!1)}else m[f++]=new r(I,"mtkw",1,!1);N%=l}}else(I===C||s&&I>a)&&(m[f++]=new r(I,v,0,b),N%=l);for(9===e?N=l:n.K7(e)?N+=2:N++,k=s;I===C&&(_++,_<w);)v=o[_].type,b=o[_].containsRTL,C=o[_].endIndex}let E=!1;if(k)if(s&&u){const e=i>0?t.charCodeAt(i-1):0,n=i>1?t.charCodeAt(i-2):0;32===e&&32!==n&&9!==n||(E=!0)}else E=!0;if(E)if(p){for(let e=(f>0?m[f-1].endIndex:a)+1;e<=i;e++)m[f++]=new r(e,"mtkw",1,!1)}else m[f++]=new r(i,"mtkw",1,!1);else m[f++]=new r(i,v,0,b);return m}(e,t,o,a));let l=0;if(e.lineDecorations.length>0){for(let t=0,i=e.lineDecorations.length;t<i;t++){const i=e.lineDecorations[t];3===i.type||1===i.type?l|=1:2===i.type&&(l|=2)}a=function(e,t,i,n){n.sort(s.Kp.compare);const o=s.k.normalize(e,n),a=o.length;let l=0;const c=[];let d=0,h=0;for(let s=0,g=i.length;s<g;s++){const e=i[s],t=e.endIndex,n=e.type,u=e.metadata,g=e.containsRTL;for(;l<a&&o[l].startOffset<t;){const e=o[l];if(e.startOffset>h&&(h=e.startOffset,c[d++]=new r(h,n,u,g)),!(e.endOffset+1<=t)){h=t,c[d++]=new r(h,n+" "+e.className,u|e.metadata,g);break}h=e.endOffset+1,c[d++]=new r(h,n+" "+e.className,u|e.metadata,g),l++}t>h&&(h=t,c[d++]=new r(h,n,u,g))}const u=i[i.length-1].endIndex;if(l<a&&o[l].startOffset===u)for(;l<a&&o[l].startOffset===u;){const e=o[l];c[d++]=new r(h,e.className,e.metadata,!1),l++}return c}(t,0,a,e.lineDecorations)}e.containsRTL||(a=function(e,t,i){let n=0;const o=[];let s=0;if(i)for(let a=0,l=t.length;a<l;a++){const i=t[a],l=i.endIndex;if(n+50<l){const t=i.type,a=i.metadata,c=i.containsRTL;let d=-1,h=n;for(let i=n;i<l;i++)32===e.charCodeAt(i)&&(d=i),-1!==d&&i-h>=50&&(o[s++]=new r(d+1,t,a,c),h=d+1,d=-1);h!==l&&(o[s++]=new r(l,t,a,c))}else o[s++]=i;n=l}else for(let a=0,l=t.length;a<l;a++){const e=t[a],i=e.endIndex,l=i-n;if(l>50){const t=e.type,a=e.metadata,c=e.containsRTL,d=Math.ceil(l/50);for(let e=1;e<d;e++){const i=n+50*e;o[s++]=new r(i,t,a,c)}o[s++]=new r(i,t,a,c)}else o[s++]=e;n=i}return o}(t,a,!e.isBasicASCII||e.fontLigatures));return new m(e.useMonospaceOptimizations,e.canUseHalfwidthRightwardsArrow,t,o,i,a,l,e.fauxIndentLength,e.tabSize,e.startVisibleColumn,e.containsRTL,e.spaceWidth,e.renderSpaceCharCode,e.renderWhitespace,e.renderControlCharacters)}(e),t)}class g{constructor(e,t,i,n){this.characterMapping=e,this.html=t,this.containsRTL=i,this.containsForeignElements=n}}function p(e){const t=(0,o.l$)(1e4),i=u(e,t);return new g(i.characterMapping,t.build(),i.containsRTL,i.containsForeignElements)}class m{constructor(e,t,i,n,o,s,r,a,l,c,d,h,u,g,p){this.fontIsMonospace=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=i,this.len=n,this.isOverflowing=o,this.parts=s,this.containsForeignElements=r,this.fauxIndentLength=a,this.tabSize=l,this.startVisibleColumn=c,this.containsRTL=d,this.spaceWidth=h,this.renderSpaceCharCode=u,this.renderWhitespace=g,this.renderControlCharacters=p}}function f(e){return e<32?9!==e:127===e||(e>=8234&&e<=8238||e>=8294&&e<=8297||e>=8206&&e<=8207||1564===e)}function _(e){return e.toString(16).toUpperCase().padStart(4,"0")}},1118:(e,t,i)=>{"use strict";i.d(t,{$l:()=>h,$t:()=>c,IP:()=>a,SQ:()=>u,Wx:()=>d,l_:()=>s,ud:()=>r,wA:()=>l});var n=i(97295),o=i(24314);class s{constructor(e,t,i,n){this._viewportBrand=void 0,this.top=0|e,this.left=0|t,this.width=0|i,this.height=0|n}}class r{constructor(e,t){this.tabSize=e,this.data=t}}class a{constructor(e,t,i,n,o,s,r){this._viewLineDataBrand=void 0,this.content=e,this.continuesWithWrappedLine=t,this.minColumn=i,this.maxColumn=n,this.startVisibleColumn=o,this.tokens=s,this.inlineDecorations=r}}class l{constructor(e,t,i,n,o,s,r,a,c,d){this.minColumn=e,this.maxColumn=t,this.content=i,this.continuesWithWrappedLine=n,this.isBasicASCII=l.isBasicASCII(i,s),this.containsRTL=l.containsRTL(i,this.isBasicASCII,o),this.tokens=r,this.inlineDecorations=a,this.tabSize=c,this.startVisibleColumn=d}static isBasicASCII(e,t){return!t||n.$i(e)}static containsRTL(e,t,i){return!(t||!i)&&n.Ut(e)}}class c{constructor(e,t,i){this.range=e,this.inlineClassName=t,this.type=i}}class d{constructor(e,t,i,n){this.startOffset=e,this.endOffset=t,this.inlineClassName=i,this.inlineClassNameAffectsLetterSpacing=n}toInlineDecoration(e){return new c(new o.e(e,this.startOffset+1,e,this.endOffset+1),this.inlineClassName,this.inlineClassNameAffectsLetterSpacing?3:0)}}class h{constructor(e,t){this._viewModelDecorationBrand=void 0,this.range=e,this.options=t}}class u{constructor(e,t,i){this.color=e,this.zIndex=t,this.data=i}static cmp(e,t){return e.zIndex===t.zIndex?e.color<t.color?-1:e.color>t.color?1:0:e.zIndex-t.zIndex}}},30665:(e,t,i)=>{"use strict";i.d(t,{EY:()=>o,Tj:()=>s});class n{constructor(e,t,i){this._colorZoneBrand=void 0,this.from=0|e,this.to=0|t,this.colorId=0|i}static compare(e,t){return e.colorId===t.colorId?e.from===t.from?e.to-t.to:e.from-t.from:e.colorId-t.colorId}}class o{constructor(e,t,i,n){this._overviewRulerZoneBrand=void 0,this.startLineNumber=e,this.endLineNumber=t,this.heightInLines=i,this.color=n,this._colorZone=null}static compare(e,t){return e.color===t.color?e.startLineNumber===t.startLineNumber?e.heightInLines===t.heightInLines?e.endLineNumber-t.endLineNumber:e.heightInLines-t.heightInLines:e.startLineNumber-t.startLineNumber:e.color<t.color?-1:1}setColorZone(e){this._colorZone=e}getColorZones(){return this._colorZone}}class s{constructor(e){this._getVerticalOffsetForLine=e,this._zones=[],this._colorZonesInvalid=!1,this._lineHeight=0,this._domWidth=0,this._domHeight=0,this._outerHeight=0,this._pixelRatio=1,this._lastAssignedId=0,this._color2Id=Object.create(null),this._id2Color=[]}getId2Color(){return this._id2Color}setZones(e){this._zones=e,this._zones.sort(o.compare)}setLineHeight(e){return this._lineHeight!==e&&(this._lineHeight=e,this._colorZonesInvalid=!0,!0)}setPixelRatio(e){this._pixelRatio=e,this._colorZonesInvalid=!0}getDOMWidth(){return this._domWidth}getCanvasWidth(){return this._domWidth*this._pixelRatio}setDOMWidth(e){return this._domWidth!==e&&(this._domWidth=e,this._colorZonesInvalid=!0,!0)}getDOMHeight(){return this._domHeight}getCanvasHeight(){return this._domHeight*this._pixelRatio}setDOMHeight(e){return this._domHeight!==e&&(this._domHeight=e,this._colorZonesInvalid=!0,!0)}getOuterHeight(){return this._outerHeight}setOuterHeight(e){return this._outerHeight!==e&&(this._outerHeight=e,this._colorZonesInvalid=!0,!0)}resolveColorZones(){const e=this._colorZonesInvalid,t=Math.floor(this._lineHeight),i=Math.floor(this.getCanvasHeight()),o=i/Math.floor(this._outerHeight),s=Math.floor(4*this._pixelRatio/2),r=[];for(let a=0,l=this._zones.length;a<l;a++){const l=this._zones[a];if(!e){const e=l.getColorZones();if(e){r.push(e);continue}}const c=this._getVerticalOffsetForLine(l.startLineNumber),d=0===l.heightInLines?this._getVerticalOffsetForLine(l.endLineNumber)+t:c+l.heightInLines*t,h=Math.floor(o*c),u=Math.floor(o*d);let g=Math.floor((h+u)/2),p=u-g;p<s&&(p=s),g-p<0&&(g=p),g+p>i&&(g=i-p);const m=l.color;let f=this._color2Id[m];f||(f=++this._lastAssignedId,this._color2Id[m]=f,this._id2Color[f]=m);const _=new n(g-p,g+p,f);l.setColorZone(_),r.push(_)}return this._colorZonesInvalid=!1,r.sort(n.compare),r}}},30168:(e,t,i)=>{"use strict";i.d(t,{$t:()=>c,CU:()=>a,Fd:()=>l,zg:()=>d});var n=i(50187),o=i(24314),s=i(1118),r=i(64141);class a{constructor(e,t,i,n,o){this.editorId=e,this.model=t,this.configuration=i,this._linesCollection=n,this._coordinatesConverter=o,this._decorationsCache=Object.create(null),this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}_clearCachedModelDecorationsResolver(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}dispose(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}reset(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onModelDecorationsChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onLineMappingChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}_getOrCreateViewModelDecoration(e){const t=e.id;let i=this._decorationsCache[t];if(!i){const r=e.range,a=e.options;let l;if(a.isWholeLine){const e=this._coordinatesConverter.convertModelPositionToViewPosition(new n.L(r.startLineNumber,1),0),t=this._coordinatesConverter.convertModelPositionToViewPosition(new n.L(r.endLineNumber,this.model.getLineMaxColumn(r.endLineNumber)),1);l=new o.e(e.lineNumber,e.column,t.lineNumber,t.column)}else l=this._coordinatesConverter.convertModelRangeToViewRange(r,1);i=new s.$l(l,a),this._decorationsCache[t]=i}return i}getDecorationsViewportData(e){let t=null!==this._cachedModelDecorationsResolver;return t=t&&e.equalsRange(this._cachedModelDecorationsResolverViewRange),t||(this._cachedModelDecorationsResolver=this._getDecorationsInRange(e),this._cachedModelDecorationsResolverViewRange=e),this._cachedModelDecorationsResolver}getInlineDecorationsOnLine(e){const t=new o.e(e,this._linesCollection.getViewLineMinColumn(e),e,this._linesCollection.getViewLineMaxColumn(e));return this._getDecorationsInRange(t).inlineDecorations[0]}_getDecorationsInRange(e){const t=this._linesCollection.getDecorationsInRange(e,this.editorId,(0,r.$J)(this.configuration.options)),i=e.startLineNumber,n=e.endLineNumber,a=[];let c=0;const d=[];for(let o=i;o<=n;o++)d[o-i]=[];for(let r=0,h=t.length;r<h;r++){const e=t[r],h=e.options;if(!l(this.model,e))continue;const u=this._getOrCreateViewModelDecoration(e),g=u.range;if(a[c++]=u,h.inlineClassName){const e=new s.$t(g,h.inlineClassName,h.inlineClassNameAffectsLetterSpacing?3:0),t=Math.max(i,g.startLineNumber),o=Math.min(n,g.endLineNumber);for(let n=t;n<=o;n++)d[n-i].push(e)}if(h.beforeContentClassName&&i<=g.startLineNumber&&g.startLineNumber<=n){const e=new s.$t(new o.e(g.startLineNumber,g.startColumn,g.startLineNumber,g.startColumn),h.beforeContentClassName,1);d[g.startLineNumber-i].push(e)}if(h.afterContentClassName&&i<=g.endLineNumber&&g.endLineNumber<=n){const e=new s.$t(new o.e(g.endLineNumber,g.endColumn,g.endLineNumber,g.endColumn),h.afterContentClassName,2);d[g.endLineNumber-i].push(e)}}return{decorations:a,inlineDecorations:d}}}function l(e,t){return(!t.options.hideInCommentTokens||!c(e,t))&&(!t.options.hideInStringTokens||!d(e,t))}function c(e,t){return h(e,t.range,(e=>1===e))}function d(e,t){return h(e,t.range,(e=>2===e))}function h(e,t,i){for(let n=t.startLineNumber;n<=t.endLineNumber;n++){const o=e.tokenization.getLineTokens(n),s=n===t.startLineNumber,r=n===t.endLineNumber;let a=s?o.findTokenIndexAtOffset(t.startColumn-1):0;for(;a<o.getCount();){if(r){if(o.getStartOffset(a)>t.endColumn-1)break}if(!i(o.getStandardTokenType(a)))return!1;a++}}return!0}},90236:(e,t,i)=>{"use strict";var n=i(85152),o=i(59365),s=i(22258),r=i(16830),a=i(3860),l=i(29102),c=i(63580),d=i(38819),h=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},u=function(e,t){return function(i,n){t(i,n,e)}},g=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const p=new d.uy("selectionAnchorSet",!1);let m=class e{constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=p.bindTo(t),this.modelChangeListener=e.onDidChangeModel((()=>this.selectionAnchorSetContextKey.reset()))}static get(t){return t.getContribution(e.ID)}setSelectionAnchor(){if(this.editor.hasModel()){const e=this.editor.getPosition();this.editor.changeDecorations((t=>{this.decorationId&&t.removeDecoration(this.decorationId),this.decorationId=t.addDecoration(a.Y.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:(new o.W5).appendText((0,c.NC)("selectionAnchor","Selection Anchor")),className:"selection-anchor"})})),this.selectionAnchorSetContextKey.set(!!this.decorationId),(0,n.Z9)((0,c.NC)("anchorSet","Anchor set at {0}:{1}",e.lineNumber,e.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);e&&this.editor.setPosition(e.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);if(e){const t=this.editor.getPosition();this.editor.setSelection(a.Y.fromPositions(e.getStartPosition(),t)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const e=this.decorationId;this.editor.changeDecorations((t=>{t.removeDecoration(e),this.decorationId=void 0})),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}};m.ID="editor.contrib.selectionAnchorController",m=h([u(1,d.i6)],m);class f extends r.R6{constructor(){super({id:"editor.action.setSelectionAnchor",label:(0,c.NC)("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:l.u.editorTextFocus,primary:(0,s.gx)(2089,2080),weight:100}})}run(e,t){var i;return g(this,void 0,void 0,(function*(){null===(i=m.get(t))||void 0===i||i.setSelectionAnchor()}))}}class _ extends r.R6{constructor(){super({id:"editor.action.goToSelectionAnchor",label:(0,c.NC)("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:p})}run(e,t){var i;return g(this,void 0,void 0,(function*(){null===(i=m.get(t))||void 0===i||i.goToSelectionAnchor()}))}}class v extends r.R6{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:(0,c.NC)("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:p,kbOpts:{kbExpr:l.u.editorTextFocus,primary:(0,s.gx)(2089,2089),weight:100}})}run(e,t){var i;return g(this,void 0,void 0,(function*(){null===(i=m.get(t))||void 0===i||i.selectFromAnchorToCursor()}))}}class b extends r.R6{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:(0,c.NC)("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:p,kbOpts:{kbExpr:l.u.editorTextFocus,primary:9,weight:100}})}run(e,t){var i;return g(this,void 0,void 0,(function*(){null===(i=m.get(t))||void 0===i||i.cancelSelectionAnchor()}))}}(0,r._K)(m.ID,m),(0,r.Qr)(f),(0,r.Qr)(_),(0,r.Qr)(v),(0,r.Qr)(b)},71387:(e,t,i)=>{"use strict";var n=i(15393),o=i(5976),s=i(16830),r=i(50187),a=i(24314),l=i(3860),c=i(29102),d=i(84973),h=i(22529),u=i(8625),g=i(63580),p=i(84144),m=i(73910),f=i(97781);const _=(0,m.P6G)("editorOverviewRuler.bracketMatchForeground",{dark:"#A0A0A0",light:"#A0A0A0",hcDark:"#A0A0A0",hcLight:"#A0A0A0"},g.NC("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class v extends s.R6{constructor(){super({id:"editor.action.jumpToBracket",label:g.NC("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:c.u.editorTextFocus,primary:3160,weight:100}})}run(e,t){var i;null===(i=w.get(t))||void 0===i||i.jumpToBracket()}}class b extends s.R6{constructor(){super({id:"editor.action.selectToBracket",label:g.NC("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,description:{description:"Select to Bracket",args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(e,t,i){var n;let o=!0;i&&!1===i.selectBrackets&&(o=!1),null===(n=w.get(t))||void 0===n||n.selectToBracket(o)}}class C{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}class w extends o.JT{constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new n.pY((()=>this._updateBrackets()),50)),this._matchBrackets=this._editor.getOption(66),this._updateBracketsSoon.schedule(),this._register(e.onDidChangeCursorPosition((e=>{"never"!==this._matchBrackets&&this._updateBracketsSoon.schedule()}))),this._register(e.onDidChangeModelContent((e=>{this._updateBracketsSoon.schedule()}))),this._register(e.onDidChangeModel((e=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()}))),this._register(e.onDidChangeModelLanguageConfiguration((e=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()}))),this._register(e.onDidChangeConfiguration((e=>{e.hasChanged(66)&&(this._matchBrackets=this._editor.getOption(66),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())}))),this._register(e.onDidBlurEditorWidget((()=>{this._updateBracketsSoon.schedule()}))),this._register(e.onDidFocusEditorWidget((()=>{this._updateBracketsSoon.schedule()})))}static get(e){return e.getContribution(w.ID)}jumpToBracket(){if(!this._editor.hasModel())return;const e=this._editor.getModel(),t=this._editor.getSelections().map((t=>{const i=t.getStartPosition(),n=e.bracketPairs.matchBracket(i);let o=null;if(n)n[0].containsPosition(i)&&!n[1].containsPosition(i)?o=n[1].getStartPosition():n[1].containsPosition(i)&&(o=n[0].getStartPosition());else{const t=e.bracketPairs.findEnclosingBrackets(i);if(t)o=t[1].getStartPosition();else{const t=e.bracketPairs.findNextBracket(i);t&&t.range&&(o=t.range.getStartPosition())}}return o?new l.Y(o.lineNumber,o.column,o.lineNumber,o.column):new l.Y(i.lineNumber,i.column,i.lineNumber,i.column)}));this._editor.setSelections(t),this._editor.revealRange(t[0])}selectToBracket(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=[];this._editor.getSelections().forEach((n=>{const o=n.getStartPosition();let s=t.bracketPairs.matchBracket(o);if(!s&&(s=t.bracketPairs.findEnclosingBrackets(o),!s)){const e=t.bracketPairs.findNextBracket(o);e&&e.range&&(s=t.bracketPairs.matchBracket(e.range.getStartPosition()))}let r=null,c=null;if(s){s.sort(a.e.compareRangesUsingStarts);const[t,i]=s;if(r=e?t.getStartPosition():t.getEndPosition(),c=e?i.getEndPosition():i.getStartPosition(),i.containsPosition(o)){const e=r;r=c,c=e}}r&&c&&i.push(new l.Y(r.lineNumber,r.column,c.lineNumber,c.column))})),i.length>0&&(this._editor.setSelections(i),this._editor.revealRange(i[0]))}_updateBrackets(){if("never"===this._matchBrackets)return;this._recomputeBrackets();const e=[];let t=0;for(const i of this._lastBracketsData){const n=i.brackets;n&&(e[t++]={range:n[0],options:i.options},e[t++]={range:n[1],options:i.options})}this._decorations.set(e)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus())return this._lastBracketsData=[],void(this._lastVersionId=0);const e=this._editor.getSelections();if(e.length>100)return this._lastBracketsData=[],void(this._lastVersionId=0);const t=this._editor.getModel(),i=t.getVersionId();let n=[];this._lastVersionId===i&&(n=this._lastBracketsData);const o=[];let s=0;for(let r=0,h=e.length;r<h;r++){const t=e[r];t.isEmpty()&&(o[s++]=t.getStartPosition())}o.length>1&&o.sort(r.L.compare);const a=[];let l=0,c=0;const d=n.length;for(let r=0,h=o.length;r<h;r++){const e=o[r];for(;c<d&&n[c].position.isBefore(e);)c++;if(c<d&&n[c].position.equals(e))a[l++]=n[c];else{let i=t.bracketPairs.matchBracket(e,20),n=w._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;i||"always"!==this._matchBrackets||(i=t.bracketPairs.findEnclosingBrackets(e,20),n=w._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),a[l++]=new C(e,i,n)}}this._lastBracketsData=a,this._lastVersionId=i}}w.ID="editor.contrib.bracketMatchingController",w._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=h.qx.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:(0,f.EN)(_),position:d.sh.Center}}),w._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=h.qx.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"}),(0,s._K)(w.ID,w),(0,s.Qr)(b),(0,s.Qr)(v),(0,f.Ic)(((e,t)=>{const i=e.getColor(u.TC);i&&t.addRule(`.monaco-editor .bracket-match { background-color: ${i}; }`);const n=e.getColor(u.Dl);n&&t.addRule(`.monaco-editor .bracket-match { border: 1px solid ${n}; }`)})),p.BH.appendMenuItem(p.eH.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:g.NC({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2})},39934:(e,t,i)=>{"use strict";var n=i(16830),o=i(29102),s=i(24314),r=i(3860);class a{constructor(e,t){this._selection=e,this._isMovingLeft=t}getEditOperations(e,t){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;const i=this._selection.startLineNumber,n=this._selection.startColumn,o=this._selection.endColumn;if((!this._isMovingLeft||1!==n)&&(this._isMovingLeft||o!==e.getLineMaxColumn(i)))if(this._isMovingLeft){const r=new s.e(i,n-1,i,n),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new s.e(i,o,i,o),a)}else{const r=new s.e(i,o,i,o+1),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new s.e(i,n,i,n),a)}}computeCursorState(e,t){return this._isMovingLeft?new r.Y(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new r.Y(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}var l=i(63580);class c extends n.R6{constructor(e,t){super(t),this.left=e}run(e,t){if(!t.hasModel())return;const i=[],n=t.getSelections();for(const o of n)i.push(new a(o,this.left));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}(0,n.Qr)(class extends c{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:l.NC("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:o.u.writable})}}),(0,n.Qr)(class extends c{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:l.NC("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:o.u.writable})}})},72102:(e,t,i)=>{"use strict";var n=i(16830),o=i(61329),s=i(10839),r=i(24314),a=i(29102),l=i(63580);class c extends n.R6{constructor(){super({id:"editor.action.transposeLetters",label:l.NC("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:a.u.writable,kbOpts:{kbExpr:a.u.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(e,t){if(!t.hasModel())return;const i=t.getModel(),n=[],a=t.getSelections();for(const l of a){if(!l.isEmpty())continue;const e=l.startLineNumber,t=l.startColumn,a=i.getLineMaxColumn(e);if(1===e&&(1===t||2===t&&2===a))continue;const c=t===a?l.getPosition():s.o.rightPosition(i,l.getPosition().lineNumber,l.getPosition().column),d=s.o.leftPosition(i,c),h=s.o.leftPosition(i,d),u=i.getValueInRange(r.e.fromPositions(h,d)),g=i.getValueInRange(r.e.fromPositions(d,c)),p=r.e.fromPositions(h,c);n.push(new o.T4(p,g+u))}n.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop())}}(0,n.Qr)(c)},55833:(e,t,i)=>{"use strict";var n=i(16268),o=i(1432),s=i(35715),r=i(16830),a=i(11640),l=i(29102),c=i(63580),d=i(84144),h=i(84972),u=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const g="9_cutcopypaste",p=o.tY||document.queryCommandSupported("cut"),m=o.tY||document.queryCommandSupported("copy"),f=void 0!==navigator.clipboard&&!n.isFirefox||document.queryCommandSupported("paste");function _(e){return e.register(),e}const v=p?_(new r.AJ({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:o.tY?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:d.eH.MenubarEditMenu,group:"2_ccp",title:c.NC({key:"miCut",comment:["&& denotes a mnemonic"]},"Cu&&t"),order:1},{menuId:d.eH.EditorContext,group:g,title:c.NC("actions.clipboard.cutLabel","Cut"),when:l.u.writable,order:1},{menuId:d.eH.CommandPalette,group:"",title:c.NC("actions.clipboard.cutLabel","Cut"),order:1},{menuId:d.eH.SimpleEditorContext,group:g,title:c.NC("actions.clipboard.cutLabel","Cut"),when:l.u.writable,order:1}]})):void 0,b=m?_(new r.AJ({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:o.tY?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:d.eH.MenubarEditMenu,group:"2_ccp",title:c.NC({key:"miCopy",comment:["&& denotes a mnemonic"]},"&&Copy"),order:2},{menuId:d.eH.EditorContext,group:g,title:c.NC("actions.clipboard.copyLabel","Copy"),order:2},{menuId:d.eH.CommandPalette,group:"",title:c.NC("actions.clipboard.copyLabel","Copy"),order:1},{menuId:d.eH.SimpleEditorContext,group:g,title:c.NC("actions.clipboard.copyLabel","Copy"),order:2}]})):void 0;d.BH.appendMenuItem(d.eH.MenubarEditMenu,{submenu:d.eH.MenubarCopy,title:{value:c.NC("copy as","Copy As"),original:"Copy As"},group:"2_ccp",order:3}),d.BH.appendMenuItem(d.eH.EditorContext,{submenu:d.eH.EditorContextCopy,title:{value:c.NC("copy as","Copy As"),original:"Copy As"},group:g,order:3}),d.BH.appendMenuItem(d.eH.EditorContext,{submenu:d.eH.EditorContextShare,title:{value:c.NC("share","Share"),original:"Share"},group:"11_share",order:-1});const C=f?_(new r.AJ({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:o.tY?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:d.eH.MenubarEditMenu,group:"2_ccp",title:c.NC({key:"miPaste",comment:["&& denotes a mnemonic"]},"&&Paste"),order:4},{menuId:d.eH.EditorContext,group:g,title:c.NC("actions.clipboard.pasteLabel","Paste"),when:l.u.writable,order:4},{menuId:d.eH.CommandPalette,group:"",title:c.NC("actions.clipboard.pasteLabel","Paste"),order:1},{menuId:d.eH.SimpleEditorContext,group:g,title:c.NC("actions.clipboard.pasteLabel","Paste"),when:l.u.writable,order:4}]})):void 0;class w extends r.R6{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:c.NC("actions.clipboard.copyWithSyntaxHighlightingLabel","Copy With Syntax Highlighting"),alias:"Copy With Syntax Highlighting",precondition:void 0,kbOpts:{kbExpr:l.u.textInputFocus,primary:0,weight:100}})}run(e,t){if(!t.hasModel())return;!t.getOption(33)&&t.getSelection().isEmpty()||(s.RA.forceCopyWithSyntaxHighlighting=!0,t.focus(),document.execCommand("copy"),s.RA.forceCopyWithSyntaxHighlighting=!1)}}function y(e,t){e&&(e.addImplementation(1e4,"code-editor",((e,i)=>{const n=e.get(a.$).getFocusedCodeEditor();if(n&&n.hasTextFocus()){const e=n.getOption(33),i=n.getSelection();return i&&i.isEmpty()&&!e||document.execCommand(t),!0}return!1})),e.addImplementation(0,"generic-dom",((e,i)=>(document.execCommand(t),!0))))}y(v,"cut"),y(b,"copy"),C&&(C.addImplementation(1e4,"code-editor",((e,t)=>{const i=e.get(a.$),n=e.get(h.p),r=i.getFocusedCodeEditor();if(r&&r.hasTextFocus()){return!(!document.execCommand("paste")&&o.$L)||u(void 0,void 0,void 0,(function*(){const e=yield n.readText();if(""!==e){const t=s.Nl.INSTANCE.get(e);let i=!1,n=null,o=null;t&&(i=r.getOption(33)&&!!t.isFromEmptySelection,n=void 0!==t.multicursorText?t.multicursorText:null,o=t.mode),r.trigger("keyboard","paste",{text:e,pasteOnNewLine:i,multicursorText:n,mode:o})}}))}return!1})),C.addImplementation(0,"generic-dom",((e,t)=>(document.execCommand("paste"),!0)))),m&&(0,r.Qr)(w)},75396:(e,t,i)=>{"use strict";i.d(t,{Bb:()=>v,MN:()=>C,RB:()=>_,TM:()=>y,aI:()=>x,bA:()=>S,sh:()=>b,uH:()=>w});var n=i(9488),o=i(71050),s=i(17301),r=i(5976),a=i(70666),l=i(14410),c=i(24314),d=i(3860),h=i(73733),u=i(94565),g=i(90535),p=i(76014),m=i(71922),f=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const _="editor.action.codeAction",v="editor.action.refactor",b="editor.action.refactor.preview",C="editor.action.sourceAction",w="editor.action.organizeImports",y="editor.action.fixAll";class S{constructor(e,t){this.action=e,this.provider=t}resolve(e){var t;return f(this,void 0,void 0,(function*(){if((null===(t=this.provider)||void 0===t?void 0:t.resolveCodeAction)&&!this.action.edit){let t;try{t=yield this.provider.resolveCodeAction(this.action,e)}catch(i){(0,s.Cp)(i)}t&&(this.action.edit=t.edit)}return this}))}}class L extends r.JT{constructor(e,t,i){super(),this.documentation=t,this._register(i),this.allActions=[...e].sort(L.codeActionsComparator),this.validActions=this.allActions.filter((({action:e})=>!e.disabled))}static codeActionsComparator({action:e},{action:t}){return e.isPreferred&&!t.isPreferred?-1:!e.isPreferred&&t.isPreferred?1:(0,n.Of)(e.diagnostics)?(0,n.Of)(t.diagnostics)?e.diagnostics[0].message.localeCompare(t.diagnostics[0].message):-1:(0,n.Of)(t.diagnostics)?1:0}get hasAutoFix(){return this.validActions.some((({action:e})=>!!e.kind&&p.yN.QuickFix.contains(new p.yN(e.kind))&&!!e.isPreferred))}}const k={actions:[],documentation:void 0};function x(e,t,i,o,a,c){var d;const h=o.filter||{},u={only:null===(d=h.include)||void 0===d?void 0:d.value,trigger:o.type},g=new l.YQ(t,c),m=function(e,t,i){return e.all(t).filter((e=>!e.providedCodeActionKinds||e.providedCodeActionKinds.some((e=>(0,p.EU)(i,new p.yN(e))))))}(e,t,h),_=new r.SL,v=m.map((e=>f(this,void 0,void 0,(function*(){try{a.report(e);const n=yield e.provideCodeActions(t,i,u,g.token);if(n&&_.add(n),g.token.isCancellationRequested)return k;const o=((null==n?void 0:n.actions)||[]).filter((e=>e&&(0,p.Yl)(h,e))),s=function(e,t,i){if(!e.documentation)return;const n=e.documentation.map((e=>({kind:new p.yN(e.kind),command:e.command})));if(i){let e;for(const t of n)t.kind.contains(i)&&(e?e.kind.contains(t.kind)&&(e=t):e=t);if(e)return null==e?void 0:e.command}for(const o of t)if(o.kind)for(const e of n)if(e.kind.contains(new p.yN(o.kind)))return e.command;return}(e,o,h.include);return{actions:o.map((t=>new S(t,e))),documentation:s}}catch(n){if((0,s.n2)(n))throw n;return(0,s.Cp)(n),k}})))),b=e.onDidChange((()=>{const i=e.all(t);(0,n.fS)(i,m)||g.cancel()}));return Promise.all(v).then((e=>{const t=e.map((e=>e.actions)).flat(),i=(0,n.kX)(e.map((e=>e.documentation)));return new L(t,i,_)})).finally((()=>{b.dispose(),g.dispose()}))}u.P0.registerCommand("_executeCodeActionProvider",(function(e,t,i,n,r){return f(this,void 0,void 0,(function*(){if(!(t instanceof a.o))throw(0,s.b1)();const{codeActionProvider:l}=e.get(m.p),u=e.get(h.q).getModel(t);if(!u)throw(0,s.b1)();const f=d.Y.isISelection(i)?d.Y.liftSelection(i):c.e.isIRange(i)?u.validateRange(i):void 0;if(!f)throw(0,s.b1)();const _="string"==typeof n?new p.yN(n):void 0,v=yield x(l,u,f,{type:1,triggerAction:p.aQ.Default,filter:{includeSourceActions:!0,include:_}},g.Ex.None,o.T.None),b=[],C=Math.min(v.validActions.length,"number"==typeof r?r:0);for(let e=0;e<C;e++)b.push(v.validActions[e].resolve(o.T.None));try{return yield Promise.all(b),v.validActions.map((e=>e.action))}finally{setTimeout((()=>v.dispose()),100)}}))}))},93412:(e,t,i)=>{"use strict";i.d(t,{S5:()=>Ee,dW:()=>Se,Hv:()=>Ne,o$:()=>De,E7:()=>ye,pY:()=>ve,Eb:()=>Le,UG:()=>ke,VQ:()=>xe});var n=i(71050),o=i(79579),s=i(5976),r=i(97295),a=i(16830),l=i(66007),c=i(29102),d=i(71922),h=i(75396),u=i(17301),g=i(27753),p=i(72065),m=i(65321),f=i(69047),_=i(74741),v=i(50187),b=i(76014),C=i(63580),w=i(33108),y=i(38819),S=i(5606),L=i(91847),k=i(10829),x=i(97781),D=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},N=function(e,t){return function(i,n){t(i,n,e)}},E=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const I={Visible:new y.uy("CodeActionMenuVisible",!1,(0,C.NC)("CodeActionMenuVisible","Whether the code action list widget is visible"))};class T extends _.aU{constructor(e,t){super(e.command?e.command.id:e.title,e.title.replace(/\r\n|\r|\n/g," "),void 0,!e.disabled,t),this.action=e}}let M=class{constructor(e,t){this.acceptKeybindings=e,this.keybindingService=t}get templateId(){return"codeActionWidget"}renderTemplate(e){const t=Object.create(null);return t.disposables=[],t.root=e,t.text=document.createElement("span"),e.append(t.text),t}renderElement(e,t,i){const n=i,o=e.title,s=e.isEnabled,r=e.isSeparator,a=e.isDocumentation;if(n.text.textContent=o,s?n.root.classList.remove("option-disabled"):(n.root.classList.add("option-disabled"),n.root.style.backgroundColor="transparent !important"),r&&(n.root.classList.add("separator"),n.root.style.height="10px"),!a){(()=>{var e,t;const[i,o]=this.acceptKeybindings;n.root.title=(0,C.NC)({key:"label",comment:['placeholders are keybindings, e.g "F2 to Refactor, Shift+F2 to Preview"']},"{0} to Refactor, {1} to Preview",null===(e=this.keybindingService.lookupKeybinding(i))||void 0===e?void 0:e.getLabel(),null===(t=this.keybindingService.lookupKeybinding(o))||void 0===t?void 0:t.getLabel())})()}}disposeTemplate(e){e.disposables=(0,s.B9)(e.disposables)}};M=D([N(1,L.d)],M);let A=class e extends s.JT{constructor(e,t,i,n,o,r,a,l,c,d){super(),this._editor=e,this._delegate=t,this._contextMenuService=i,this._languageFeaturesService=o,this._telemetryService=r,this._configurationService=l,this._contextViewService=c,this._contextKeyService=d,this._showingActions=this._register(new s.XK),this.codeActionList=this._register(new s.XK),this.options=[],this._visible=!1,this.viewItems=[],this.hasSeperator=!1,this._keybindingResolver=new R({getKeybindings:()=>n.getKeybindings()}),this._ctxMenuWidgetVisible=I.Visible.bindTo(this._contextKeyService),this.listRenderer=new M(["onEnterSelectCodeAction","onEnterSelectCodeActionWithPreview"],n)}get isVisible(){return this._visible}isCodeActionWidgetEnabled(e){return this._configurationService.getValue("editor.experimental.useCustomCodeActionMenu",{resource:e.uri})}_onListSelection(e){e.elements.length&&e.elements.forEach((e=>{e.isEnabled&&(e.action.run(),this.hideCodeActionWidget())}))}_onListHover(e){var t,i,n,o;e.element?(null===(i=e.element)||void 0===i?void 0:i.isEnabled)?(null===(n=this.codeActionList.value)||void 0===n||n.setFocus([e.element.index]),this.focusedEnabledItem=this.viewItems.indexOf(e.element),this.currSelectedItem=e.element.index):(this.currSelectedItem=void 0,null===(o=this.codeActionList.value)||void 0===o||o.setFocus([e.element.index])):(this.currSelectedItem=void 0,null===(t=this.codeActionList.value)||void 0===t||t.setFocus([]))}renderCodeActionMenuList(t,i){var n;const o=new s.SL,r=document.createElement("div"),a=document.createElement("div");this.block=t.appendChild(a),this.block.classList.add("context-view-block"),this.block.style.position="fixed",this.block.style.cursor="initial",this.block.style.left="0",this.block.style.top="0",this.block.style.width="100%",this.block.style.height="100%",this.block.style.zIndex="-1",o.add(m.nm(this.block,m.tw.MOUSE_DOWN,(e=>e.stopPropagation()))),r.id="codeActionMenuWidget",r.classList.add("codeActionMenuWidget"),t.appendChild(r),this.codeActionList.value=new f.aV("codeActionWidget",r,{getHeight:e=>e.isSeparator?10:26,getTemplateId:e=>"codeActionWidget"},[this.listRenderer],{keyboardSupport:!1}),o.add(this.codeActionList.value.onMouseOver((e=>this._onListHover(e)))),o.add(this.codeActionList.value.onDidChangeFocus((e=>{var t;return null===(t=this.codeActionList.value)||void 0===t?void 0:t.domFocus()}))),o.add(this.codeActionList.value.onDidChangeSelection((e=>this._onListSelection(e)))),o.add(this._editor.onDidLayoutChange((e=>this.hideCodeActionWidget()))),i.forEach(((t,n)=>{const o="separator"===t.class;let s=!1;t instanceof T&&(s=t.action.kind===e.documentationID),o&&(this.hasSeperator=!0);const r={title:t.label,detail:t.tooltip,action:i[n],isEnabled:t.enabled,isSeparator:o,index:n,isDocumentation:s};t.enabled&&this.viewItems.push(r),this.options.push(r)})),this.codeActionList.value.splice(0,this.codeActionList.value.length,this.options);const l=this.hasSeperator?26*(i.length-1)+10:26*i.length;r.style.height=String(l)+"px",this.codeActionList.value.layout(l);const c=[];this.options.forEach(((e,t)=>{var i,n;if(!this.codeActionList.value)return;const o=null===(n=document.getElementById(null===(i=this.codeActionList.value)||void 0===i?void 0:i.getElementID(t)))||void 0===n?void 0:n.getElementsByTagName("span")[0].offsetWidth;c.push(Number(o))}));const d=Math.max(...c);r.style.width=d+52+"px",null===(n=this.codeActionList.value)||void 0===n||n.layout(l,d),this.viewItems.length<1||this.viewItems.every((e=>e.isDocumentation))?this.currSelectedItem=void 0:(this.focusedEnabledItem=0,this.currSelectedItem=this.viewItems[0].index,this.codeActionList.value.setFocus([this.currSelectedItem])),this.codeActionList.value.domFocus();const h=m.go(t),u=h.onDidBlur((()=>{this.hideCodeActionWidget()}));return o.add(u),o.add(h),this._ctxMenuWidgetVisible.set(!0),o}focusPrevious(){var e;if(void 0===this.focusedEnabledItem)this.focusedEnabledItem=this.viewItems[0].index;else if(this.viewItems.length<1)return!1;const t=this.focusedEnabledItem;let i;do{this.focusedEnabledItem=this.focusedEnabledItem-1,this.focusedEnabledItem<0&&(this.focusedEnabledItem=this.viewItems.length-1),i=this.viewItems[this.focusedEnabledItem],null===(e=this.codeActionList.value)||void 0===e||e.setFocus([i.index]),this.currSelectedItem=i.index}while(this.focusedEnabledItem!==t&&(!i.isEnabled||i.action.id===_.Z0.ID));return!0}focusNext(){var e;if(void 0===this.focusedEnabledItem)this.focusedEnabledItem=this.viewItems.length-1;else if(this.viewItems.length<1)return!1;const t=this.focusedEnabledItem;let i;do{this.focusedEnabledItem=(this.focusedEnabledItem+1)%this.viewItems.length,i=this.viewItems[this.focusedEnabledItem],null===(e=this.codeActionList.value)||void 0===e||e.setFocus([i.index]),this.currSelectedItem=i.index}while(this.focusedEnabledItem!==t&&(!i.isEnabled||i.action.id===_.Z0.ID));return!0}navigateListWithKeysUp(){this.focusPrevious()}navigateListWithKeysDown(){this.focusNext()}onEnterSet(){var e;"number"==typeof this.currSelectedItem&&(null===(e=this.codeActionList.value)||void 0===e||e.setSelection([this.currSelectedItem]))}dispose(){super.dispose()}hideCodeActionWidget(){this._ctxMenuWidgetVisible.reset(),this.options=[],this.viewItems=[],this.focusedEnabledItem=0,this.currSelectedItem=void 0,this.hasSeperator=!1,this._contextViewService.hideContextView({source:this})}codeActionTelemetry(e,t,i){this._telemetryService.publicLog2("codeAction.applyCodeAction",{codeActionFrom:e,validCodeActions:i.validActions.length,cancelled:t})}show(e,t,i,n){return E(this,void 0,void 0,(function*(){const o=this._editor.getModel();if(!o)return;const s=n.includeDisabledActions?t.allActions:t.validActions;if(!s.length)return void(this._visible=!1);if(!this._editor.getDomNode())throw this._visible=!1,(0,u.F0)();this._visible=!0,this._showingActions.value=t;const r=this.getMenuActions(e,s,t.documentation),a=v.L.isIPosition(i)?this._toCoords(i):i||{x:0,y:0},l=this._keybindingResolver.getResolver(),c=this._editor.getOption(117);this.isCodeActionWidgetEnabled(o)?this._contextViewService.showContextView({getAnchor:()=>a,render:e=>this.renderCodeActionMenuList(e,r),onHide:i=>{const o=n.fromLightbulb?b.aQ.Lightbulb:e.triggerAction;this.codeActionTelemetry(o,i,t),this._visible=!1,this._editor.focus()}},this._editor.getDomNode(),!1):this._contextMenuService.showContextMenu({domForShadowRoot:c?this._editor.getDomNode():void 0,getAnchor:()=>a,getActions:()=>r,onHide:i=>{const o=n.fromLightbulb?b.aQ.Lightbulb:e.triggerAction;this.codeActionTelemetry(o,i,t),this._visible=!1,this._editor.focus()},autoSelectFirstItem:!0,getKeyBinding:e=>e instanceof T?l(e.action):void 0})}))}getMenuActions(t,i,n){var o,s;const r=e=>new T(e.action,(()=>this._delegate.onSelectCodeAction(e,t))),a=i.map(r),l=[...n],c=this._editor.getModel();if(c&&a.length)for(const e of this._languageFeaturesService.codeActionProvider.all(c))e._getAdditionalMenuItems&&l.push(...e._getAdditionalMenuItems({trigger:t.type,only:null===(s=null===(o=t.filter)||void 0===o?void 0:o.include)||void 0===s?void 0:s.value},i.map((e=>e.action))));return l.length&&a.push(new _.Z0,...l.map((t=>r(new h.bA({title:t.title,command:t,kind:e.documentationID},void 0))))),a}_toCoords(e){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(e,1),this._editor.render();const t=this._editor.getScrolledVisiblePosition(e),i=m.i(this._editor.getDomNode());return{x:i.left+t.left,y:i.top+t.top+t.height}}};A.documentationID="_documentation",A=D([N(2,S.i),N(3,L.d),N(4,d.p),N(5,k.b),N(6,x.XE),N(7,w.Ui),N(8,S.u),N(9,y.i6)],A);class R{constructor(e){this._keybindingProvider=e}getResolver(){const e=new o.o((()=>this._keybindingProvider.getKeybindings().filter((e=>R.codeActionCommands.indexOf(e.command)>=0)).filter((e=>e.resolvedKeybinding)).map((e=>{let t=e.commandArgs;return e.command===h.uH?t={kind:b.yN.SourceOrganizeImports.value}:e.command===h.TM&&(t={kind:b.yN.SourceFixAll.value}),Object.assign({resolvedKeybinding:e.resolvedKeybinding},b.wZ.fromUser(t,{kind:b.yN.None,apply:"never"}))}))));return t=>{if(t.kind){const i=this.bestKeybindingForCodeAction(t,e.getValue());return null==i?void 0:i.resolvedKeybinding}}}bestKeybindingForCodeAction(e,t){if(!e.kind)return;const i=new b.yN(e.kind);return t.filter((e=>e.kind.contains(i))).filter((t=>!t.preferred||e.isPreferred)).reduceRight(((e,t)=>e?e.kind.contains(t.kind)?t:e:t),void 0)}}R.codeActionCommands=[h.Bb,h.RB,h.MN,h.uH,h.TM];var O,P=i(10553),F=i(73046),B=i(4669),V=i(59616),W=i(73910),H=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},z=function(e,t){return function(i,n){t(i,n,e)}};!function(e){e.Hidden={type:0};e.Showing=class{constructor(e,t,i,n){this.actions=e,this.trigger=t,this.editorPosition=i,this.widgetPosition=n,this.type=1}}}(O||(O={}));let j=class e extends s.JT{constructor(e,t,i,n){super(),this._editor=e,this._quickFixActionId=t,this._preferredFixActionId=i,this._keybindingService=n,this._onClick=this._register(new B.Q5),this.onClick=this._onClick.event,this._state=O.Hidden,this._domNode=document.createElement("div"),this._domNode.className=F.lA.lightBulb.classNames,this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent((e=>{const t=this._editor.getModel();(1!==this.state.type||!t||this.state.editorPosition.lineNumber>=t.getLineCount())&&this.hide()}))),P.o.ignoreTarget(this._domNode),this._register(m.GQ(this._domNode,(e=>{if(1!==this.state.type)return;this._editor.focus(),e.preventDefault();const{top:t,height:i}=m.i(this._domNode),n=this._editor.getOption(61);let o=Math.floor(n/3);null!==this.state.widgetPosition.position&&this.state.widgetPosition.position.lineNumber<this.state.editorPosition.lineNumber&&(o+=n),this._onClick.fire({x:e.posx,y:t+i+o,actions:this.state.actions,trigger:this.state.trigger})}))),this._register(m.nm(this._domNode,"mouseenter",(e=>{1==(1&e.buttons)&&this.hide()}))),this._register(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(59)&&!this._editor.getOption(59).enabled&&this.hide()}))),this._updateLightBulbTitleAndIcon(),this._register(this._keybindingService.onDidUpdateKeybindings(this._updateLightBulbTitleAndIcon,this))}dispose(){super.dispose(),this._editor.removeContentWidget(this)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){return 1===this._state.type?this._state.widgetPosition:null}update(t,i,n){if(t.validActions.length<=0)return this.hide();const o=this._editor.getOptions();if(!o.get(59).enabled)return this.hide();const s=this._editor.getModel();if(!s)return this.hide();const{lineNumber:r,column:a}=s.validatePosition(n),l=s.getOptions().tabSize,c=o.get(46),d=s.getLineContent(r),h=(0,V.q)(d,l),u=e=>e>2&&this._editor.getTopForLineNumber(e)===this._editor.getTopForLineNumber(e-1);let g=r;if(!(c.spaceWidth*h>22))if(r>1&&!u(r-1))g-=1;else if(u(r+1)){if(a*c.spaceWidth<22)return this.hide()}else g+=1;this.state=new O.Showing(t,i,n,{position:{lineNumber:g,column:1},preference:e._posPref}),this._editor.layoutContentWidget(this)}hide(){this.state=O.Hidden,this._editor.layoutContentWidget(this)}get state(){return this._state}set state(e){this._state=e,this._updateLightBulbTitleAndIcon()}_updateLightBulbTitleAndIcon(){if(1===this.state.type&&this.state.actions.hasAutoFix){this._domNode.classList.remove(...F.lA.lightBulb.classNamesArray),this._domNode.classList.add(...F.lA.lightbulbAutofix.classNamesArray);const e=this._keybindingService.lookupKeybinding(this._preferredFixActionId);if(e)return void(this.title=C.NC("preferredcodeActionWithKb","Show Code Actions. Preferred Quick Fix Available ({0})",e.getLabel()))}this._domNode.classList.remove(...F.lA.lightbulbAutofix.classNamesArray),this._domNode.classList.add(...F.lA.lightBulb.classNamesArray);const e=this._keybindingService.lookupKeybinding(this._quickFixActionId);this.title=e?C.NC("codeActionWithKb","Show Code Actions ({0})",e.getLabel()):C.NC("codeAction","Show Code Actions")}set title(e){this._domNode.title=e}};j._posPref=[0],j=H([z(3,L.d)],j),(0,x.Ic)(((e,t)=>{var i;const n=null===(i=e.getColor(W.cvW))||void 0===i?void 0:i.transparent(.7),o=e.getColor(W.Fu1);o&&t.addRule(`\n\t\t.monaco-editor .contentWidgets ${F.lA.lightBulb.cssSelector} {\n\t\t\tcolor: ${o};\n\t\t\tbackground-color: ${n};\n\t\t}`);const s=e.getColor(W.sKV);s&&t.addRule(`\n\t\t.monaco-editor .contentWidgets ${F.lA.lightbulbAutofix.cssSelector} {\n\t\t\tcolor: ${s};\n\t\t\tbackground-color: ${n};\n\t\t}`)}));var U,K=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},$=function(e,t){return function(i,n){t(i,n,e)}},q=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))},G=function(e,t,i,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(e,i):o?o.value=i:t.set(e,i),i},Q=function(e,t,i,n){if("a"===i&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?n:"a"===i?n.call(e):n?n.value:t.get(e)};let Z=class extends s.JT{constructor(e,t,i,n,r){super(),this._editor=e,this.delegate=n,this._activeCodeActions=this._register(new s.XK),this.previewOn=!1,U.set(this,!1),this._codeActionWidget=new o.o((()=>this._register(r.createInstance(A,this._editor,{onSelectCodeAction:(e,t)=>q(this,void 0,void 0,(function*(){this.previewOn?this.delegate.applyCodeAction(e,!0,Boolean(this.previewOn)):this.delegate.applyCodeAction(e,!0,Boolean(t.preview)),this.previewOn=!1}))})))),this._lightBulbWidget=new o.o((()=>{const e=this._register(r.createInstance(j,this._editor,t,i));return this._register(e.onClick((e=>this.showCodeActionList(e.trigger,e.actions,e,{includeDisabledActions:!1,fromLightbulb:!0})))),e}))}dispose(){G(this,U,!0,"f"),super.dispose()}hideCodeActionWidget(){this._codeActionWidget.hasValue()&&this._codeActionWidget.getValue().hideCodeActionWidget()}onEnter(){this._codeActionWidget.hasValue()&&this._codeActionWidget.getValue().onEnterSet()}onPreviewEnter(){this.previewOn=!0,this.onEnter()}navigateList(e){this._codeActionWidget.hasValue()&&(e?this._codeActionWidget.getValue().navigateListWithKeysUp():this._codeActionWidget.getValue().navigateListWithKeysDown())}update(e){var t,i,n,o,s;return q(this,void 0,void 0,(function*(){if(1!==e.type)return void(null===(t=this._lightBulbWidget.rawValue)||void 0===t||t.hide());let r;try{r=yield e.actions}catch(a){return void(0,u.dL)(a)}if(!Q(this,U,"f"))if(this._lightBulbWidget.getValue().update(r,e.trigger,e.position),1===e.trigger.type){if(null===(i=e.trigger.filter)||void 0===i?void 0:i.include){const t=this.tryGetValidActionToApply(e.trigger,r);if(t){try{this._lightBulbWidget.getValue().hide(),yield this.delegate.applyCodeAction(t,!1,!1)}finally{r.dispose()}return}if(e.trigger.context){const t=this.getInvalidActionThatWouldHaveBeenApplied(e.trigger,r);if(t&&t.action.disabled)return null===(n=g.O.get(this._editor))||void 0===n||n.showMessage(t.action.disabled,e.trigger.context.position),void r.dispose()}}const t=!!(null===(o=e.trigger.filter)||void 0===o?void 0:o.include);if(e.trigger.context&&(!r.allActions.length||!t&&!r.validActions.length))return null===(s=g.O.get(this._editor))||void 0===s||s.showMessage(e.trigger.context.notAvailableMessage,e.trigger.context.position),this._activeCodeActions.value=r,void r.dispose();this._activeCodeActions.value=r,this._codeActionWidget.getValue().show(e.trigger,r,e.position,{includeDisabledActions:t,fromLightbulb:!1})}else this._codeActionWidget.getValue().isVisible?r.dispose():this._activeCodeActions.value=r}))}getInvalidActionThatWouldHaveBeenApplied(e,t){if(t.allActions.length)return"first"===e.autoApply&&0===t.validActions.length||"ifSingle"===e.autoApply&&1===t.allActions.length?t.allActions.find((({action:e})=>e.disabled)):void 0}tryGetValidActionToApply(e,t){if(t.validActions.length)return"first"===e.autoApply&&t.validActions.length>0||"ifSingle"===e.autoApply&&1===t.validActions.length?t.validActions[0]:void 0}showCodeActionList(e,t,i,n){return q(this,void 0,void 0,(function*(){this._codeActionWidget.getValue().show(e,t,i,n)}))}};U=new WeakMap,Z=K([$(4,p.TG)],Z);var Y,J=i(94565),X=i(98674),ee=i(90535),te=i(59422),ie=i(15393),ne=i(95935),oe=i(24314),se=function(e,t,i,n){if("a"===i&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?n:"a"===i?n.call(e):n?n.value:t.get(e)},re=function(e,t,i,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(e,i):o?o.value=i:t.set(e,i),i};const ae=new y.uy("supportedCodeAction","");class le extends s.JT{constructor(e,t,i,n=250){super(),this._editor=e,this._markerService=t,this._signalChange=i,this._delay=n,this._autoTriggerTimer=this._register(new ie._F),this._register(this._markerService.onMarkerChanged((e=>this._onMarkerChanges(e)))),this._register(this._editor.onDidChangeCursorPosition((()=>this._onCursorChange())))}trigger(e){const t=this._getRangeOfSelectionUnlessWhitespaceEnclosed(e);return this._createEventAndSignalChange(e,t)}_onMarkerChanges(e){const t=this._editor.getModel();t&&e.some((e=>(0,ne.Xy)(e,t.uri)))&&this._autoTriggerTimer.cancelAndSet((()=>{this.trigger({type:2,triggerAction:b.aQ.Default})}),this._delay)}_onCursorChange(){this._autoTriggerTimer.cancelAndSet((()=>{this.trigger({type:2,triggerAction:b.aQ.Default})}),this._delay)}_getRangeOfMarker(e){const t=this._editor.getModel();if(t)for(const i of this._markerService.read({resource:t.uri})){const n=t.validateRange(i);if(oe.e.intersectRanges(n,e))return oe.e.lift(n)}}_getRangeOfSelectionUnlessWhitespaceEnclosed(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=this._editor.getSelection();if(i.isEmpty()&&2===e.type){const{lineNumber:e,column:n}=i.getPosition(),o=t.getLineContent(e);if(0===o.length)return;if(1===n){if(/\s/.test(o[0]))return}else if(n===t.getLineMaxColumn(e)){if(/\s/.test(o[o.length-1]))return}else if(/\s/.test(o[n-2])&&/\s/.test(o[n-1]))return}return i}_createEventAndSignalChange(e,t){const i=this._editor.getModel();if(!t||!i)return void this._signalChange(void 0);const n=this._getRangeOfMarker(t),o=n?n.getStartPosition():t.getStartPosition(),s={trigger:e,selection:t,position:o};return this._signalChange(s),s}}var ce;!function(e){e.Empty={type:0};e.Triggered=class{constructor(e,t,i,n){this.trigger=e,this.rangeOrSelection=t,this.position=i,this._cancellablePromise=n,this.type=1,this.actions=n.catch((e=>{if((0,u.n2)(e))return de;throw e}))}cancel(){this._cancellablePromise.cancel()}}}(ce||(ce={}));const de={allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1};class he extends s.JT{constructor(e,t,i,n,o){super(),this._editor=e,this._registry=t,this._markerService=i,this._progressService=o,this._codeActionOracle=this._register(new s.XK),this._state=ce.Empty,this._onDidChangeState=this._register(new B.Q5),this.onDidChangeState=this._onDidChangeState.event,Y.set(this,!1),this._supportedCodeActions=ae.bindTo(n),this._register(this._editor.onDidChangeModel((()=>this._update()))),this._register(this._editor.onDidChangeModelLanguage((()=>this._update()))),this._register(this._registry.onDidChange((()=>this._update()))),this._update()}dispose(){se(this,Y,"f")||(re(this,Y,!0,"f"),super.dispose(),this.setState(ce.Empty,!0))}_update(){if(se(this,Y,"f"))return;this._codeActionOracle.value=void 0,this.setState(ce.Empty);const e=this._editor.getModel();if(e&&this._registry.has(e)&&!this._editor.getOption(83)){const t=[];for(const i of this._registry.all(e))Array.isArray(i.providedCodeActionKinds)&&t.push(...i.providedCodeActionKinds);this._supportedCodeActions.set(t.join(" ")),this._codeActionOracle.value=new le(this._editor,this._markerService,(t=>{var i;if(!t)return void this.setState(ce.Empty);const n=(0,ie.PG)((i=>(0,h.aI)(this._registry,e,t.selection,t.trigger,ee.Ex.None,i)));1===t.trigger.type&&(null===(i=this._progressService)||void 0===i||i.showWhile(n,250)),this.setState(new ce.Triggered(t.trigger,t.selection,t.position,n))}),void 0),this._codeActionOracle.value.trigger({type:2,triggerAction:b.aQ.Default})}else this._supportedCodeActions.reset()}trigger(e){var t;null===(t=this._codeActionOracle.value)||void 0===t||t.trigger(e)}setState(e,t){e!==this._state&&(1===this._state.type&&this._state.cancel(),this._state=e,t||se(this,Y,"f")||this._onDidChangeState.fire(e))}}Y=new WeakMap;var ue=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ge=function(e,t){return function(i,n){t(i,n,e)}},pe=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};function me(e){return y.Ao.regex(ae.keys()[0],new RegExp("(\\s|^)"+(0,r.ec)(e.value)+"\\b"))}function fe(e,t,i,n){const o=b.wZ.fromUser(t,{kind:b.yN.Refactor,apply:"never"});return we(e,"string"==typeof(null==t?void 0:t.kind)?o.preferred?C.NC("editor.action.refactor.noneMessage.preferred.kind","No preferred refactorings for '{0}' available",t.kind):C.NC("editor.action.refactor.noneMessage.kind","No refactorings for '{0}' available",t.kind):o.preferred?C.NC("editor.action.refactor.noneMessage.preferred","No preferred refactorings available"):C.NC("editor.action.refactor.noneMessage","No refactorings available"),{include:b.yN.Refactor.contains(o.kind)?o.kind:b.yN.None,onlyIncludePreferredActions:o.preferred},o.apply,i,n)}const _e={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:C.NC("args.schema.kind","Kind of the code action to run.")},apply:{type:"string",description:C.NC("args.schema.apply","Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[C.NC("args.schema.apply.first","Always apply the first returned code action."),C.NC("args.schema.apply.ifSingle","Apply the first returned code action if it is the only one."),C.NC("args.schema.apply.never","Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:C.NC("args.schema.preferred","Controls if only preferred code actions should be returned.")}}};let ve=class e extends s.JT{constructor(e,t,i,n,s,r){super(),this._instantiationService=s,this._editor=e,this._model=this._register(new he(this._editor,r.codeActionProvider,t,i,n)),this._register(this._model.onDidChangeState((e=>this.update(e)))),this._ui=new o.o((()=>this._register(new Z(e,ye.Id,Ee.Id,{applyCodeAction:(e,t,i)=>pe(this,void 0,void 0,(function*(){try{yield this._applyCodeAction(e,i)}finally{t&&this._trigger({type:2,triggerAction:b.aQ.QuickFix,filter:{}})}}))},this._instantiationService))))}static get(t){return t.getContribution(e.ID)}update(e){this._ui.getValue().update(e)}hideCodeActionMenu(){this._ui.hasValue()&&this._ui.getValue().hideCodeActionWidget()}navigateCodeActionList(e){this._ui.hasValue()&&this._ui.getValue().navigateList(e)}selectedOption(){this._ui.hasValue()&&this._ui.getValue().onEnter()}selectedOptionWithPreview(){this._ui.hasValue()&&this._ui.getValue().onPreviewEnter()}showCodeActions(e,t,i){return this._ui.getValue().showCodeActionList(e,t,i,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(e,t,i,n,o){var s;if(!this._editor.hasModel())return;null===(s=g.O.get(this._editor))||void 0===s||s.closeMessage();const r=this._editor.getPosition();this._trigger({type:1,triggerAction:t,filter:i,autoApply:n,context:{notAvailableMessage:e,position:r},preview:o})}_trigger(e){return this._model.trigger(e)}_applyCodeAction(e,t){return this._instantiationService.invokeFunction(Ce,e,be.FromCodeActions,{preview:t,editor:this._editor})}};var be;function Ce(e,t,i,o){return pe(this,void 0,void 0,(function*(){const s=e.get(l.vu),r=e.get(J.Hy),a=e.get(k.b),c=e.get(te.lT);if(a.publicLog2("codeAction.applyCodeAction",{codeActionTitle:t.action.title,codeActionKind:t.action.kind,codeActionIsPreferred:!!t.action.isPreferred,reason:i}),yield t.resolve(n.T.None),t.action.edit&&(yield s.apply(l.fo.convert(t.action.edit),{editor:null==o?void 0:o.editor,label:t.action.title,quotableLabel:t.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:!0,showPreview:null==o?void 0:o.preview})),t.action.command)try{yield r.executeCommand(t.action.command.id,...t.action.command.arguments||[])}catch(d){const e=function(e){return"string"==typeof e?e:e instanceof Error&&"string"==typeof e.message?e.message:void 0}(d);c.error("string"==typeof e?e:C.NC("applyCodeActionFailed","An unknown error occurred while applying the code action"))}}))}function we(e,t,i,n,o=!1,s=b.aQ.Default){if(e.hasModel()){const r=ve.get(e);null==r||r.manualTriggerAtCurrentPosition(t,s,i,n,o)}}ve.ID="editor.contrib.quickFixController",ve=ue([ge(1,X.lT),ge(2,y.i6),ge(3,ee.ek),ge(4,p.TG),ge(5,d.p)],ve),function(e){e.OnSave="onSave",e.FromProblemsView="fromProblemsView",e.FromCodeActions="fromCodeActions"}(be||(be={}));class ye extends a.R6{constructor(){super({id:ye.Id,label:C.NC("quickfix.trigger.label","Quick Fix..."),alias:"Quick Fix...",precondition:y.Ao.and(c.u.writable,c.u.hasCodeActionsProvider),kbOpts:{kbExpr:c.u.editorTextFocus,primary:2132,weight:100}})}run(e,t){return we(t,C.NC("editor.action.quickFix.noneMessage","No code actions available"),void 0,void 0,!1,b.aQ.QuickFix)}}ye.Id="editor.action.quickFix";class Se extends a._l{constructor(){super({id:h.RB,precondition:y.Ao.and(c.u.writable,c.u.hasCodeActionsProvider),description:{description:"Trigger a code action",args:[{name:"args",schema:_e}]}})}runEditorCommand(e,t,i){const n=b.wZ.fromUser(i,{kind:b.yN.Empty,apply:"ifSingle"});return we(t,"string"==typeof(null==i?void 0:i.kind)?n.preferred?C.NC("editor.action.codeAction.noneMessage.preferred.kind","No preferred code actions for '{0}' available",i.kind):C.NC("editor.action.codeAction.noneMessage.kind","No code actions for '{0}' available",i.kind):n.preferred?C.NC("editor.action.codeAction.noneMessage.preferred","No preferred code actions available"):C.NC("editor.action.codeAction.noneMessage","No code actions available"),{include:n.kind,includeSourceActions:!0,onlyIncludePreferredActions:n.preferred},n.apply)}}class Le extends a.R6{constructor(){super({id:h.Bb,label:C.NC("refactor.label","Refactor..."),alias:"Refactor...",precondition:y.Ao.and(c.u.writable,c.u.hasCodeActionsProvider),kbOpts:{kbExpr:c.u.editorTextFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:y.Ao.and(c.u.writable,me(b.yN.Refactor))},description:{description:"Refactor...",args:[{name:"args",schema:_e}]}})}run(e,t,i){return fe(t,i,!1,b.aQ.Refactor)}}class ke extends a.R6{constructor(){super({id:h.sh,label:C.NC("refactor.preview.label","Refactor with Preview..."),alias:"Refactor Preview...",precondition:y.Ao.and(c.u.writable,c.u.hasCodeActionsProvider),description:{description:"Refactor Preview...",args:[{name:"args",schema:_e}]}})}run(e,t,i){return fe(t,i,!0,b.aQ.RefactorPreview)}}class xe extends a.R6{constructor(){super({id:h.MN,label:C.NC("source.label","Source Action..."),alias:"Source Action...",precondition:y.Ao.and(c.u.writable,c.u.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:y.Ao.and(c.u.writable,me(b.yN.Source))},description:{description:"Source Action...",args:[{name:"args",schema:_e}]}})}run(e,t,i){const n=b.wZ.fromUser(i,{kind:b.yN.Source,apply:"never"});return we(t,"string"==typeof(null==i?void 0:i.kind)?n.preferred?C.NC("editor.action.source.noneMessage.preferred.kind","No preferred source actions for '{0}' available",i.kind):C.NC("editor.action.source.noneMessage.kind","No source actions for '{0}' available",i.kind):n.preferred?C.NC("editor.action.source.noneMessage.preferred","No preferred source actions available"):C.NC("editor.action.source.noneMessage","No source actions available"),{include:b.yN.Source.contains(n.kind)?n.kind:b.yN.None,includeSourceActions:!0,onlyIncludePreferredActions:n.preferred},n.apply,void 0,b.aQ.SourceAction)}}class De extends a.R6{constructor(){super({id:h.uH,label:C.NC("organizeImports.label","Organize Imports"),alias:"Organize Imports",precondition:y.Ao.and(c.u.writable,me(b.yN.SourceOrganizeImports)),kbOpts:{kbExpr:c.u.editorTextFocus,primary:1581,weight:100}})}run(e,t){return we(t,C.NC("editor.action.organize.noneMessage","No organize imports action available"),{include:b.yN.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",void 0,b.aQ.OrganizeImports)}}class Ne extends a.R6{constructor(){super({id:h.TM,label:C.NC("fixAll.label","Fix All"),alias:"Fix All",precondition:y.Ao.and(c.u.writable,me(b.yN.SourceFixAll))})}run(e,t){return we(t,C.NC("fixAll.noneMessage","No fix all action available"),{include:b.yN.SourceFixAll,includeSourceActions:!0},"ifSingle",void 0,b.aQ.FixAll)}}class Ee extends a.R6{constructor(){super({id:Ee.Id,label:C.NC("autoFix.label","Auto Fix..."),alias:"Auto Fix...",precondition:y.Ao.and(c.u.writable,me(b.yN.QuickFix)),kbOpts:{kbExpr:c.u.editorTextFocus,primary:1620,mac:{primary:2644},weight:100}})}run(e,t){return we(t,C.NC("editor.action.autoFix.noneMessage","No auto fixes available"),{include:b.yN.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",void 0,b.aQ.AutoFix)}}Ee.Id="editor.action.autoFix";const Ie=a._l.bindToContribution(ve.get),Te=190;(0,a.fK)(new Ie({id:"hideCodeActionMenuWidget",precondition:I.Visible,handler(e){e.hideCodeActionMenu()},kbOpts:{weight:Te,primary:9,secondary:[1033]}})),(0,a.fK)(new Ie({id:"focusPreviousCodeAction",precondition:I.Visible,handler(e){e.navigateCodeActionList(!0)},kbOpts:{weight:100190,primary:16,secondary:[2064]}})),(0,a.fK)(new Ie({id:"focusNextCodeAction",precondition:I.Visible,handler(e){e.navigateCodeActionList(!1)},kbOpts:{weight:100190,primary:18,secondary:[2066]}})),(0,a.fK)(new Ie({id:"onEnterSelectCodeAction",precondition:I.Visible,handler(e){e.selectedOption()},kbOpts:{weight:100190,primary:3,secondary:[1026]}})),(0,a.fK)(new Ie({id:"onEnterSelectCodeActionWithPreview",precondition:I.Visible,handler(e){e.selectedOptionWithPreview()},kbOpts:{weight:100190,primary:2051}}))},34281:(e,t,i)=>{"use strict";var n=i(16830),o=i(93412),s=i(800),r=i(63580),a=i(23193);i(89872).B.as(a.IP.Configuration).registerConfiguration(Object.assign(Object.assign({},s.wk),{properties:{"editor.experimental.useCustomCodeActionMenu":{type:"boolean",tags:["experimental"],scope:5,description:r.NC("codeActionWidget","Enabling this adjusts how the code action menu is rendered."),default:!1}}})),(0,n._K)(o.pY.ID,o.pY),(0,n.Qr)(o.E7),(0,n.Qr)(o.Eb),(0,n.Qr)(o.UG),(0,n.Qr)(o.VQ),(0,n.Qr)(o.o$),(0,n.Qr)(o.S5),(0,n.Qr)(o.Hv),(0,n.fK)(new o.dW)},76014:(e,t,i)=>{"use strict";i.d(t,{EU:()=>s,Yl:()=>r,aQ:()=>o,wZ:()=>l,yN:()=>n});class n{constructor(e){this.value=e}equals(e){return this.value===e.value}contains(e){return this.equals(e)||""===this.value||e.value.startsWith(this.value+n.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(e){return new n(this.value+n.sep+e)}}var o;function s(e,t){return!(e.include&&!e.include.intersects(t))&&((!e.excludes||!e.excludes.some((i=>a(t,i,e.include))))&&!(!e.includeSourceActions&&n.Source.contains(t)))}function r(e,t){const i=t.kind?new n(t.kind):void 0;return!!(!e.include||i&&e.include.contains(i))&&(!(e.excludes&&i&&e.excludes.some((t=>a(i,t,e.include))))&&(!(!e.includeSourceActions&&i&&n.Source.contains(i))&&!(e.onlyIncludePreferredActions&&!t.isPreferred)))}function a(e,t,i){return!!t.contains(e)&&(!i||!t.contains(i))}n.sep=".",n.None=new n("@@none@@"),n.Empty=new n(""),n.QuickFix=new n("quickfix"),n.Refactor=new n("refactor"),n.Source=new n("source"),n.SourceOrganizeImports=n.Source.append("organizeImports"),n.SourceFixAll=n.Source.append("fixAll"),function(e){e.Refactor="refactor",e.RefactorPreview="refactor preview",e.Lightbulb="lightbulb",e.Default="other (default)",e.SourceAction="source action",e.QuickFix="quick fix action",e.FixAll="fix all",e.OrganizeImports="organize imports",e.AutoFix="auto fix",e.QuickFixHover="quick fix hover window",e.OnSave="save participants",e.ProblemsView="problems view"}(o||(o={}));class l{constructor(e,t,i){this.kind=e,this.apply=t,this.preferred=i}static fromUser(e,t){return e&&"object"==typeof e?new l(l.getKindFromUser(e,t.kind),l.getApplyFromUser(e,t.apply),l.getPreferredUser(e)):new l(t.kind,t.apply,!1)}static getApplyFromUser(e,t){switch("string"==typeof e.apply?e.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return t}}static getKindFromUser(e,t){return"string"==typeof e.kind?new n(e.kind):t}static getPreferredUser(e){return"boolean"==typeof e.preferred&&e.preferred}}},87712:(e,t,i)=>{"use strict";var n=i(65321),o=i(15393),s=i(17301),r=i(89954),a=i(5976),l=i(43407),c=i(16830),d=i(64141),h=i(29102),u=i(71050),g=i(98401),p=i(70666),m=i(73733),f=i(94565),_=i(71922),v=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class b{constructor(){this.lenses=[],this._disposables=new a.SL}dispose(){this._disposables.dispose()}get isDisposed(){return this._disposables.isDisposed}add(e,t){this._disposables.add(e);for(const i of e.lenses)this.lenses.push({symbol:i,provider:t})}}function C(e,t,i){return v(this,void 0,void 0,(function*(){const n=e.ordered(t),o=new Map,r=new b,a=n.map(((e,n)=>v(this,void 0,void 0,(function*(){o.set(e,n);try{const n=yield Promise.resolve(e.provideCodeLenses(t,i));n&&r.add(n,e)}catch(a){(0,s.Cp)(a)}}))));return yield Promise.all(a),r.lenses=r.lenses.sort(((e,t)=>e.symbol.range.startLineNumber<t.symbol.range.startLineNumber?-1:e.symbol.range.startLineNumber>t.symbol.range.startLineNumber?1:o.get(e.provider)<o.get(t.provider)?-1:o.get(e.provider)>o.get(t.provider)?1:e.symbol.range.startColumn<t.symbol.range.startColumn?-1:e.symbol.range.startColumn>t.symbol.range.startColumn?1:0)),r}))}f.P0.registerCommand("_executeCodeLensProvider",(function(e,...t){let[i,n]=t;(0,g.p_)(p.o.isUri(i)),(0,g.p_)("number"==typeof n||!n);const{codeLensProvider:o}=e.get(_.p),r=e.get(m.q).getModel(i);if(!r)throw(0,s.b1)();const l=[],c=new a.SL;return C(o,r,u.T.None).then((e=>{c.add(e);const t=[];for(const i of e.lenses)null==n||Boolean(i.symbol.command)?l.push(i.symbol):n-- >0&&i.provider.resolveCodeLens&&t.push(Promise.resolve(i.provider.resolveCodeLens(r,i.symbol,u.T.None)).then((e=>l.push(e||i.symbol))));return Promise.all(t)})).then((()=>l)).finally((()=>{setTimeout((()=>c.dispose()),100)}))}));var w=i(88289),y=i(43702),S=i(24314),L=i(65026),k=i(72065),x=i(87060),D=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},N=function(e,t){return function(i,n){t(i,n,e)}};const E=(0,k.yh)("ICodeLensCache");class I{constructor(e,t){this.lineCount=e,this.data=t}}let T=class{constructor(e){this._fakeProvider=new class{provideCodeLenses(){throw new Error("not supported")}},this._cache=new y.z6(20,.75);(0,o.To)((()=>e.remove("codelens/cache",1)));const t="codelens/cache2",i=e.get(t,1,"{}");this._deserialize(i),(0,w.I)(e.onWillSaveState)((i=>{i.reason===x.fk.SHUTDOWN&&e.store(t,this._serialize(),1,1)}))}put(e,t){const i=t.lenses.map((e=>{var t;return{range:e.symbol.range,command:e.symbol.command&&{id:"",title:null===(t=e.symbol.command)||void 0===t?void 0:t.title}}})),n=new b;n.add({lenses:i,dispose:()=>{}},this._fakeProvider);const o=new I(e.getLineCount(),n);this._cache.set(e.uri.toString(),o)}get(e){const t=this._cache.get(e.uri.toString());return t&&t.lineCount===e.getLineCount()?t.data:void 0}delete(e){this._cache.delete(e.uri.toString())}_serialize(){const e=Object.create(null);for(const[t,i]of this._cache){const n=new Set;for(const e of i.data.lenses)n.add(e.symbol.range.startLineNumber);e[t]={lineCount:i.lineCount,lines:[...n.values()]}}return JSON.stringify(e)}_deserialize(e){try{const t=JSON.parse(e);for(const e in t){const i=t[e],n=[];for(const e of i.lines)n.push({range:new S.e(e,1,e,11)});const o=new b;o.add({lenses:n,dispose(){}},this._fakeProvider),this._cache.set(e,new I(i.lineCount,o))}}catch(t){}}};T=D([N(0,x.Uy)],T),(0,L.z)(E,T);var M=i(56811),A=i(22529);class R{constructor(e,t,i){this.afterColumn=1073741824,this.afterLineNumber=e,this.heightInPx=t,this._onHeight=i,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}onComputedHeight(e){void 0===this._lastHeight?this._lastHeight=e:this._lastHeight!==e&&(this._lastHeight=e,this._onHeight())}isVisible(){return 0!==this._lastHeight&&this.domNode.hasAttribute("monaco-visible-view-zone")}}class O{constructor(e,t,i){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=e,this._id="codelens.widget-"+O._idPool++,this.updatePosition(i),this._domNode=document.createElement("span"),this._domNode.className=`codelens-decoration ${t}`}withCommands(e,t){this._commands.clear();const i=[];let o=!1;for(let s=0;s<e.length;s++){const t=e[s];if(t&&(o=!0,t.command)){const o=(0,M.T)(t.command.title.trim());t.command.id?(i.push(n.$("a",{id:String(s),title:t.command.tooltip,role:"button"},...o)),this._commands.set(String(s),t.command)):i.push(n.$("span",{title:t.command.tooltip},...o)),s+1<e.length&&i.push(n.$("span",void 0,"\xa0|\xa0"))}}o?(n.mc(this._domNode,...i),this._isEmpty&&t&&this._domNode.classList.add("fadein"),this._isEmpty=!1):n.mc(this._domNode,n.$("span",void 0,"no commands"))}getCommand(e){return e.parentElement===this._domNode?this._commands.get(e.id):void 0}getId(){return this._id}getDomNode(){return this._domNode}updatePosition(e){const t=this._editor.getModel().getLineFirstNonWhitespaceColumn(e);this._widgetPosition={position:{lineNumber:e,column:t},preference:[1]}}getPosition(){return this._widgetPosition||null}}O._idPool=0;class P{constructor(){this._removeDecorations=[],this._addDecorations=[],this._addDecorationsCallbacks=[]}addDecoration(e,t){this._addDecorations.push(e),this._addDecorationsCallbacks.push(t)}removeDecoration(e){this._removeDecorations.push(e)}commit(e){const t=e.deltaDecorations(this._removeDecorations,this._addDecorations);for(let i=0,n=t.length;i<n;i++)this._addDecorationsCallbacks[i](t[i])}}class F{constructor(e,t,i,n,o,s,r){let a;this._isDisposed=!1,this._editor=t,this._className=i,this._data=e,this._decorationIds=[];const l=[];this._data.forEach(((e,t)=>{e.symbol.command&&l.push(e.symbol),n.addDecoration({range:e.symbol.range,options:A.qx.EMPTY},(e=>this._decorationIds[t]=e)),a=a?S.e.plusRange(a,e.symbol.range):S.e.lift(e.symbol.range)})),this._viewZone=new R(a.startLineNumber-1,s,r),this._viewZoneId=o.addZone(this._viewZone),l.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(l,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new O(this._editor,this._className,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(e,t){this._decorationIds.forEach(e.removeDecoration,e),this._decorationIds=[],null==t||t.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}isDisposed(){return this._isDisposed}isValid(){return this._decorationIds.some(((e,t)=>{const i=this._editor.getModel().getDecorationRange(e),n=this._data[t].symbol;return!(!i||S.e.isEmpty(n.range)!==i.isEmpty())}))}updateCodeLensSymbols(e,t){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=e,this._data.forEach(((e,i)=>{t.addDecoration({range:e.symbol.range,options:A.qx.EMPTY},(e=>this._decorationIds[i]=e))}))}updateHeight(e,t){this._viewZone.heightInPx=e,t.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(e){if(!this._viewZone.isVisible())return null;for(let t=0;t<this._decorationIds.length;t++){const i=e.getDecorationRange(this._decorationIds[t]);i&&(this._data[t].symbol.range=i)}return this._data}updateCommands(e){this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(e,!0);for(let t=0;t<this._data.length;t++){const i=e[t];if(i){const{symbol:e}=this._data[t];e.command=i.command||e.command}}}getCommand(e){var t;return null===(t=this._contentWidget)||void 0===t?void 0:t.getCommand(e)}getLineNumber(){const e=this._editor.getModel().getDecorationRange(this._decorationIds[0]);return e?e.startLineNumber:-1}update(e){if(this.isValid()){const t=this._editor.getModel().getDecorationRange(this._decorationIds[0]);t&&(this._viewZone.afterLineNumber=t.startLineNumber-1,e.layoutZone(this._viewZoneId),this._contentWidget&&(this._contentWidget.updatePosition(t.startLineNumber),this._editor.layoutContentWidget(this._contentWidget)))}}}var B=i(63580),V=i(59422),W=i(41157),H=i(88191),z=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},j=function(e,t){return function(i,n){t(i,n,e)}},U=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let K=class{constructor(e,t,i,s,l,c){this._editor=e,this._languageFeaturesService=t,this._commandService=s,this._notificationService=l,this._codeLensCache=c,this._disposables=new a.SL,this._localToDispose=new a.SL,this._lenses=[],this._oldCodeLensModels=new a.SL,this._provideCodeLensDebounce=i.for(t.codeLensProvider,"CodeLensProvide",{min:250}),this._resolveCodeLensesDebounce=i.for(t.codeLensProvider,"CodeLensResolve",{min:250,salt:"resolve"}),this._resolveCodeLensesScheduler=new o.pY((()=>this._resolveCodeLensesInViewport()),this._resolveCodeLensesDebounce.default()),this._disposables.add(this._editor.onDidChangeModel((()=>this._onModelChange()))),this._disposables.add(this._editor.onDidChangeModelLanguage((()=>this._onModelChange()))),this._disposables.add(this._editor.onDidChangeConfiguration((e=>{(e.hasChanged(46)||e.hasChanged(16)||e.hasChanged(15))&&this._updateLensStyle(),e.hasChanged(14)&&this._onModelChange()}))),this._disposables.add(t.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._styleClassName="_"+(0,r.vp)(this._editor.getId()).toString(16),this._styleElement=n.dS(n.OO(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0),this._updateLensStyle()}dispose(){var e;this._localDispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),null===(e=this._currentCodeLensModel)||void 0===e||e.dispose(),this._styleElement.remove()}_getLayoutInfo(){const e=Math.max(1.3,this._editor.getOption(61)/this._editor.getOption(48));let t=this._editor.getOption(16);return(!t||t<5)&&(t=.9*this._editor.getOption(48)|0),{fontSize:t,codeLensHeight:t*e|0}}_updateLensStyle(){const{codeLensHeight:e,fontSize:t}=this._getLayoutInfo(),i=this._editor.getOption(15),n=this._editor.getOption(46),o=`--codelens-font-family${this._styleClassName}`,s=`--codelens-font-features${this._styleClassName}`;let r=`\n\t\t.monaco-editor .codelens-decoration.${this._styleClassName} { line-height: ${e}px; font-size: ${t}px; padding-right: ${Math.round(.5*t)}px; font-feature-settings: var(${s}) }\n\t\t.monaco-editor .codelens-decoration.${this._styleClassName} span.codicon { line-height: ${e}px; font-size: ${t}px; }\n\t\t`;i&&(r+=`.monaco-editor .codelens-decoration.${this._styleClassName} { font-family: var(${o}), ${d.hL.fontFamily}}`),this._styleElement.textContent=r,this._editor.getContainerDomNode().style.setProperty(o,null!=i?i:"inherit"),this._editor.getContainerDomNode().style.setProperty(s,n.fontFeatureSettings),this._editor.changeViewZones((t=>{for(const i of this._lenses)i.updateHeight(e,t)}))}_localDispose(){var e,t,i;null===(e=this._getCodeLensModelPromise)||void 0===e||e.cancel(),this._getCodeLensModelPromise=void 0,null===(t=this._resolveCodeLensesPromise)||void 0===t||t.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),null===(i=this._currentCodeLensModel)||void 0===i||i.dispose()}_onModelChange(){this._localDispose();const e=this._editor.getModel();if(!e)return;if(!this._editor.getOption(14))return;const t=this._codeLensCache.get(e);if(t&&this._renderCodeLensSymbols(t),!this._languageFeaturesService.codeLensProvider.has(e))return void(t&&this._localToDispose.add((0,o.Vg)((()=>{const i=this._codeLensCache.get(e);t===i&&(this._codeLensCache.delete(e),this._onModelChange())}),3e4)));for(const n of this._languageFeaturesService.codeLensProvider.all(e))if("function"==typeof n.onDidChange){const e=n.onDidChange((()=>i.schedule()));this._localToDispose.add(e)}const i=new o.pY((()=>{var t;const n=Date.now();null===(t=this._getCodeLensModelPromise)||void 0===t||t.cancel(),this._getCodeLensModelPromise=(0,o.PG)((t=>C(this._languageFeaturesService.codeLensProvider,e,t))),this._getCodeLensModelPromise.then((t=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=t,this._codeLensCache.put(e,t);const o=this._provideCodeLensDebounce.update(e,Date.now()-n);i.delay=o,this._renderCodeLensSymbols(t),this._resolveCodeLensesInViewportSoon()}),s.dL)}),this._provideCodeLensDebounce.get(e));this._localToDispose.add(i),this._localToDispose.add((0,a.OF)((()=>this._resolveCodeLensesScheduler.cancel()))),this._localToDispose.add(this._editor.onDidChangeModelContent((()=>{this._editor.changeDecorations((e=>{this._editor.changeViewZones((t=>{const i=[];let n=-1;this._lenses.forEach((e=>{e.isValid()&&n!==e.getLineNumber()?(e.update(t),n=e.getLineNumber()):i.push(e)}));const o=new P;i.forEach((e=>{e.dispose(o,t),this._lenses.splice(this._lenses.indexOf(e),1)})),o.commit(e)}))})),i.schedule()}))),this._localToDispose.add(this._editor.onDidFocusEditorWidget((()=>{i.schedule()}))),this._localToDispose.add(this._editor.onDidScrollChange((e=>{e.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()}))),this._localToDispose.add(this._editor.onDidLayoutChange((()=>{this._resolveCodeLensesInViewportSoon()}))),this._localToDispose.add((0,a.OF)((()=>{if(this._editor.getModel()){const e=l.Z.capture(this._editor);this._editor.changeDecorations((e=>{this._editor.changeViewZones((t=>{this._disposeAllLenses(e,t)}))})),e.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)}))),this._localToDispose.add(this._editor.onMouseDown((e=>{if(9!==e.target.type)return;let t=e.target.element;if("SPAN"===(null==t?void 0:t.tagName)&&(t=t.parentElement),"A"===(null==t?void 0:t.tagName))for(const i of this._lenses){const e=i.getCommand(t);if(e){this._commandService.executeCommand(e.id,...e.arguments||[]).catch((e=>this._notificationService.error(e)));break}}}))),i.schedule()}_disposeAllLenses(e,t){const i=new P;for(const n of this._lenses)n.dispose(i,t);e&&i.commit(e),this._lenses.length=0}_renderCodeLensSymbols(e){if(!this._editor.hasModel())return;const t=this._editor.getModel().getLineCount(),i=[];let n;for(const r of e.lenses){const e=r.symbol.range.startLineNumber;e<1||e>t||(n&&n[n.length-1].symbol.range.startLineNumber===e?n.push(r):(n=[r],i.push(n)))}const o=l.Z.capture(this._editor),s=this._getLayoutInfo();this._editor.changeDecorations((e=>{this._editor.changeViewZones((t=>{const n=new P;let o=0,r=0;for(;r<i.length&&o<this._lenses.length;){const e=i[r][0].symbol.range.startLineNumber,a=this._lenses[o].getLineNumber();a<e?(this._lenses[o].dispose(n,t),this._lenses.splice(o,1)):a===e?(this._lenses[o].updateCodeLensSymbols(i[r],n),r++,o++):(this._lenses.splice(o,0,new F(i[r],this._editor,this._styleClassName,n,t,s.codeLensHeight,(()=>this._resolveCodeLensesInViewportSoon()))),o++,r++)}for(;o<this._lenses.length;)this._lenses[o].dispose(n,t),this._lenses.splice(o,1);for(;r<i.length;)this._lenses.push(new F(i[r],this._editor,this._styleClassName,n,t,s.codeLensHeight,(()=>this._resolveCodeLensesInViewportSoon()))),r++;n.commit(e)}))})),o.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){var e;null===(e=this._resolveCodeLensesPromise)||void 0===e||e.cancel(),this._resolveCodeLensesPromise=void 0;const t=this._editor.getModel();if(!t)return;const i=[],n=[];if(this._lenses.forEach((e=>{const o=e.computeIfNecessary(t);o&&(i.push(o),n.push(e))})),0===i.length)return;const r=Date.now(),a=(0,o.PG)((e=>{const o=i.map(((i,o)=>{const r=new Array(i.length),a=i.map(((i,n)=>i.symbol.command||"function"!=typeof i.provider.resolveCodeLens?(r[n]=i.symbol,Promise.resolve(void 0)):Promise.resolve(i.provider.resolveCodeLens(t,i.symbol,e)).then((e=>{r[n]=e}),s.Cp)));return Promise.all(a).then((()=>{e.isCancellationRequested||n[o].isDisposed()||n[o].updateCommands(r)}))}));return Promise.all(o)}));this._resolveCodeLensesPromise=a,this._resolveCodeLensesPromise.then((()=>{const e=this._resolveCodeLensesDebounce.update(t,Date.now()-r);this._resolveCodeLensesScheduler.delay=e,this._currentCodeLensModel&&this._codeLensCache.put(t,this._currentCodeLensModel),this._oldCodeLensModels.clear(),a===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)}),(e=>{(0,s.dL)(e),a===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)}))}getModel(){return this._currentCodeLensModel}};K.ID="css.editor.codeLens",K=z([j(1,_.p),j(2,H.A),j(3,f.Hy),j(4,V.lT),j(5,E)],K),(0,c._K)(K.ID,K),(0,c.Qr)(class extends c.R6{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:h.u.hasCodeLensProvider,label:(0,B.NC)("showLensOnLine","Show CodeLens Commands For Current Line"),alias:"Show CodeLens Commands For Current Line"})}run(e,t){return U(this,void 0,void 0,(function*(){if(!t.hasModel())return;const i=e.get(W.eJ),n=e.get(f.Hy),o=e.get(V.lT),s=t.getSelection().positionLineNumber,r=t.getContribution(K.ID);if(!r)return;const a=r.getModel();if(!a)return;const l=[];for(const e of a.lenses)e.symbol.command&&e.symbol.range.startLineNumber===s&&l.push({label:e.symbol.command.title,command:e.symbol.command});if(0===l.length)return;const c=yield i.pick(l,{canPickMany:!1});if(c){if(a.isDisposed)return yield n.executeCommand(this.id);try{yield n.executeCommand(c.command.id,...c.command.arguments||[])}catch(d){o.error(d)}}}))}})},29079:(e,t,i)=>{"use strict";var n=i(5976),o=i(16830),s=i(24314),r=i(15393),a=i(41264),l=i(17301),c=i(84013),d=i(97295),h=i(29994),u=i(22529),g=i(88191),p=i(71922),m=i(71050),f=i(70666),_=i(73733),v=i(94565);function b(e,t,i,n){return Promise.resolve(i.provideColorPresentations(e,t,n))}v.P0.registerCommand("_executeDocumentColorProvider",(function(e,...t){const[i]=t;if(!(i instanceof f.o))throw(0,l.b1)();const{colorProvider:n}=e.get(p.p),o=e.get(_.q).getModel(i);if(!o)throw(0,l.b1)();const s=[],r=n.ordered(o).reverse().map((e=>Promise.resolve(e.provideDocumentColors(o,m.T.None)).then((e=>{if(Array.isArray(e))for(const t of e)s.push({range:t.range,color:[t.color.red,t.color.green,t.color.blue,t.color.alpha]})}))));return Promise.all(r).then((()=>s))})),v.P0.registerCommand("_executeColorPresentationProvider",(function(e,...t){const[i,n]=t,{uri:o,range:r}=n;if(!(o instanceof f.o&&Array.isArray(i)&&4===i.length&&s.e.isIRange(r)))throw(0,l.b1)();const[a,c,d,h]=i,{colorProvider:u}=e.get(p.p),g=e.get(_.q).getModel(o);if(!g)throw(0,l.b1)();const v={range:r,color:{red:a,green:c,blue:d,alpha:h}},b=[],C=u.ordered(g).reverse().map((e=>Promise.resolve(e.provideColorPresentations(g,v,m.T.None)).then((e=>{Array.isArray(e)&&b.push(...e)}))));return Promise.all(C).then((()=>b))}));var C=i(33108),w=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},y=function(e,t){return function(i,n){t(i,n,e)}},S=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const L=Object.create({});let k=class e extends n.JT{constructor(t,i,o,s){super(),this._editor=t,this._configurationService=i,this._languageFeaturesService=o,this._localToDispose=this._register(new n.SL),this._decorationsIds=[],this._colorDatas=new Map,this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=new h.t7(this._editor),this._colorDecorationClassRefs=this._register(new n.SL),this._debounceInformation=s.for(o.colorProvider,"Document Colors",{min:e.RECOMPUTE_TIME}),this._register(t.onDidChangeModel((()=>{this._isEnabled=this.isEnabled(),this.onModelChanged()}))),this._register(t.onDidChangeModelLanguage((()=>this.onModelChanged()))),this._register(o.colorProvider.onDidChange((()=>this.onModelChanged()))),this._register(t.onDidChangeConfiguration((()=>{const e=this._isEnabled;this._isEnabled=this.isEnabled(),e!==this._isEnabled&&(this._isEnabled?this.onModelChanged():this.removeAllDecorations())}))),this._timeoutTimer=null,this._computePromise=null,this._isEnabled=this.isEnabled(),this.onModelChanged()}isEnabled(){const e=this._editor.getModel();if(!e)return!1;const t=e.getLanguageId(),i=this._configurationService.getValue(t);if(i&&"object"==typeof i){const e=i.colorDecorators;if(e&&void 0!==e.enable&&!e.enable)return e.enable}return this._editor.getOption(17)}static get(e){return e.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}onModelChanged(){if(this.stop(),!this._isEnabled)return;const e=this._editor.getModel();e&&this._languageFeaturesService.colorProvider.has(e)&&(this._localToDispose.add(this._editor.onDidChangeModelContent((()=>{this._timeoutTimer||(this._timeoutTimer=new r._F,this._timeoutTimer.cancelAndSet((()=>{this._timeoutTimer=null,this.beginCompute()}),this._debounceInformation.get(e)))}))),this.beginCompute())}beginCompute(){this._computePromise=(0,r.PG)((e=>S(this,void 0,void 0,(function*(){const t=this._editor.getModel();if(!t)return Promise.resolve([]);const i=new c.G(!1),n=yield function(e,t,i){const n=[],o=e.ordered(t).reverse().map((e=>Promise.resolve(e.provideDocumentColors(t,i)).then((t=>{if(Array.isArray(t))for(const i of t)n.push({colorInfo:i,provider:e})}))));return Promise.all(o).then((()=>n))}(this._languageFeaturesService.colorProvider,t,e);return this._debounceInformation.update(t,i.elapsed()),n})))),this._computePromise.then((e=>{this.updateDecorations(e),this.updateColorDecorators(e),this._computePromise=null}),l.dL)}stop(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}updateDecorations(e){const t=e.map((e=>({range:{startLineNumber:e.colorInfo.range.startLineNumber,startColumn:e.colorInfo.range.startColumn,endLineNumber:e.colorInfo.range.endLineNumber,endColumn:e.colorInfo.range.endColumn},options:u.qx.EMPTY})));this._editor.changeDecorations((i=>{this._decorationsIds=i.deltaDecorations(this._decorationsIds,t),this._colorDatas=new Map,this._decorationsIds.forEach(((t,i)=>this._colorDatas.set(t,e[i])))}))}updateColorDecorators(e){this._colorDecorationClassRefs.clear();const t=[];for(let i=0;i<e.length&&t.length<500;i++){const{red:n,green:o,blue:s,alpha:r}=e[i].colorInfo.color,l=new a.VS(Math.round(255*n),Math.round(255*o),Math.round(255*s),r),c=`rgba(${l.r}, ${l.g}, ${l.b}, ${l.a})`,h=this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({backgroundColor:c}));t.push({range:{startLineNumber:e[i].colorInfo.range.startLineNumber,startColumn:e[i].colorInfo.range.startColumn,endLineNumber:e[i].colorInfo.range.endLineNumber,endColumn:e[i].colorInfo.range.endColumn},options:{description:"colorDetector",before:{content:d.B4,inlineClassName:`${h.className} colorpicker-color-decoration`,inlineClassNameAffectsLetterSpacing:!0,attachedData:L}}})}this._colorDecoratorIds.set(t)}removeAllDecorations(){this._editor.removeDecorations(this._decorationsIds),this._decorationsIds=[],this._colorDecoratorIds.clear(),this._colorDecorationClassRefs.clear()}getColorData(e){const t=this._editor.getModel();if(!t)return null;const i=t.getDecorationsInRange(s.e.fromPositions(e,e)).filter((e=>this._colorDatas.has(e.id)));return 0===i.length?null:this._colorDatas.get(i[0].id)}isColorDecoration(e){return this._colorDecoratorIds.has(e)}};k.ID="editor.contrib.colorDetector",k.RECOMPUTE_TIME=1e3,k=w([y(1,C.Ui),y(2,p.p),y(3,g.A)],k),(0,o._K)(k.ID,k);var x=i(4669);class D{constructor(e,t,i){this.presentationIndex=i,this._onColorFlushed=new x.Q5,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new x.Q5,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new x.Q5,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=e,this._color=e,this._colorPresentations=t}get color(){return this._color}set color(e){this._color.equals(e)||(this._color=e,this._onDidChangeColor.fire(e))}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(e){this._colorPresentations=e,this.presentationIndex>e.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(e,t){for(let i=0;i<this.colorPresentations.length;i++)if(t.toLowerCase()===this.colorPresentations[i].label){this.presentationIndex=i,this._onDidChangePresentation.fire(this.presentation);break}}flushColor(){this._onColorFlushed.fire(this._color)}}var N=i(16268),E=i(65321),I=i(93911),T=i(93794),M=i(63580),A=i(73910),R=i(97781);const O=E.$;class P extends n.JT{constructor(e,t,i){super(),this.model=t,this.domNode=O(".colorpicker-header"),E.R3(e,this.domNode),this.pickedColorNode=E.R3(this.domNode,O(".picked-color"));const n=(0,M.NC)("clickToToggleColorOptions","Click to toggle color options (rgb/hsl/hex)");this.pickedColorNode.setAttribute("title",n);const o=E.R3(this.domNode,O(".original-color"));o.style.backgroundColor=a.Il.Format.CSS.format(this.model.originalColor)||"",this.backgroundColor=i.getColorTheme().getColor(A.yJx)||a.Il.white,this._register((0,R.Ic)(((e,t)=>{this.backgroundColor=e.getColor(A.yJx)||a.Il.white}))),this._register(E.nm(this.pickedColorNode,E.tw.CLICK,(()=>this.model.selectNextColorPresentation()))),this._register(E.nm(o,E.tw.CLICK,(()=>{this.model.color=this.model.originalColor,this.model.flushColor()}))),this._register(t.onDidChangeColor(this.onDidChangeColor,this)),this._register(t.onDidChangePresentation(this.onDidChangePresentation,this)),this.pickedColorNode.style.backgroundColor=a.Il.Format.CSS.format(t.color)||"",this.pickedColorNode.classList.toggle("light",t.color.rgba.a<.5?this.backgroundColor.isLighter():t.color.isLighter()),this.onDidChangeColor(this.model.color)}onDidChangeColor(e){this.pickedColorNode.style.backgroundColor=a.Il.Format.CSS.format(e)||"",this.pickedColorNode.classList.toggle("light",e.rgba.a<.5?this.backgroundColor.isLighter():e.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this.pickedColorNode.textContent=this.model.presentation?this.model.presentation.label:"",this.pickedColorNode.prepend(O(".codicon.codicon-color-mode"))}}class F extends n.JT{constructor(e,t,i){super(),this.model=t,this.pixelRatio=i,this.domNode=O(".colorpicker-body"),E.R3(e,this.domNode),this.saturationBox=new B(this.domNode,this.model,this.pixelRatio),this._register(this.saturationBox),this._register(this.saturationBox.onDidChange(this.onDidSaturationValueChange,this)),this._register(this.saturationBox.onColorFlushed(this.flushColor,this)),this.opacityStrip=new W(this.domNode,this.model),this._register(this.opacityStrip),this._register(this.opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this.opacityStrip.onColorFlushed(this.flushColor,this)),this.hueStrip=new H(this.domNode,this.model),this._register(this.hueStrip),this._register(this.hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this.hueStrip.onColorFlushed(this.flushColor,this))}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:e,v:t}){const i=this.model.color.hsva;this.model.color=new a.Il(new a.tx(i.h,e,t,i.a))}onDidOpacityChange(e){const t=this.model.color.hsva;this.model.color=new a.Il(new a.tx(t.h,t.s,t.v,e))}onDidHueChange(e){const t=this.model.color.hsva,i=360*(1-e);this.model.color=new a.Il(new a.tx(360===i?0:i,t.s,t.v,t.a))}layout(){this.saturationBox.layout(),this.opacityStrip.layout(),this.hueStrip.layout()}}class B extends n.JT{constructor(e,t,i){super(),this.model=t,this.pixelRatio=i,this._onDidChange=new x.Q5,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new x.Q5,this.onColorFlushed=this._onColorFlushed.event,this.domNode=O(".saturation-wrap"),E.R3(e,this.domNode),this.canvas=document.createElement("canvas"),this.canvas.className="saturation-box",E.R3(this.domNode,this.canvas),this.selection=O(".saturation-selection"),E.R3(this.domNode,this.selection),this.layout(),this._register(E.nm(this.domNode,E.tw.POINTER_DOWN,(e=>this.onPointerDown(e)))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}onPointerDown(e){if(!(e.target&&e.target instanceof Element))return;this.monitor=this._register(new I.C);const t=E.i(this.domNode);e.target!==this.selection&&this.onDidChangePosition(e.offsetX,e.offsetY),this.monitor.startMonitoring(e.target,e.pointerId,e.buttons,(e=>this.onDidChangePosition(e.pageX-t.left,e.pageY-t.top)),(()=>null));const i=E.nm(document,E.tw.POINTER_UP,(()=>{this._onColorFlushed.fire(),i.dispose(),this.monitor&&(this.monitor.stopMonitoring(!0),this.monitor=null)}),!0)}onDidChangePosition(e,t){const i=Math.max(0,Math.min(1,e/this.width)),n=Math.max(0,Math.min(1,1-t/this.height));this.paintSelection(i,n),this._onDidChange.fire({s:i,v:n})}layout(){this.width=this.domNode.offsetWidth,this.height=this.domNode.offsetHeight,this.canvas.width=this.width*this.pixelRatio,this.canvas.height=this.height*this.pixelRatio,this.paint();const e=this.model.color.hsva;this.paintSelection(e.s,e.v)}paint(){const e=this.model.color.hsva,t=new a.Il(new a.tx(e.h,1,1,1)),i=this.canvas.getContext("2d"),n=i.createLinearGradient(0,0,this.canvas.width,0);n.addColorStop(0,"rgba(255, 255, 255, 1)"),n.addColorStop(.5,"rgba(255, 255, 255, 0.5)"),n.addColorStop(1,"rgba(255, 255, 255, 0)");const o=i.createLinearGradient(0,0,0,this.canvas.height);o.addColorStop(0,"rgba(0, 0, 0, 0)"),o.addColorStop(1,"rgba(0, 0, 0, 1)"),i.rect(0,0,this.canvas.width,this.canvas.height),i.fillStyle=a.Il.Format.CSS.format(t),i.fill(),i.fillStyle=n,i.fill(),i.fillStyle=o,i.fill()}paintSelection(e,t){this.selection.style.left=e*this.width+"px",this.selection.style.top=this.height-t*this.height+"px"}onDidChangeColor(){this.monitor&&this.monitor.isMonitoring()||this.paint()}}class V extends n.JT{constructor(e,t){super(),this.model=t,this._onDidChange=new x.Q5,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new x.Q5,this.onColorFlushed=this._onColorFlushed.event,this.domNode=E.R3(e,O(".strip")),this.overlay=E.R3(this.domNode,O(".overlay")),this.slider=E.R3(this.domNode,O(".slider")),this.slider.style.top="0px",this._register(E.nm(this.domNode,E.tw.POINTER_DOWN,(e=>this.onPointerDown(e)))),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;const e=this.getValue(this.model.color);this.updateSliderPosition(e)}onPointerDown(e){if(!(e.target&&e.target instanceof Element))return;const t=this._register(new I.C),i=E.i(this.domNode);this.domNode.classList.add("grabbing"),e.target!==this.slider&&this.onDidChangeTop(e.offsetY),t.startMonitoring(e.target,e.pointerId,e.buttons,(e=>this.onDidChangeTop(e.pageY-i.top)),(()=>null));const n=E.nm(document,E.tw.POINTER_UP,(()=>{this._onColorFlushed.fire(),n.dispose(),t.stopMonitoring(!0),this.domNode.classList.remove("grabbing")}),!0)}onDidChangeTop(e){const t=Math.max(0,Math.min(1,1-e/this.height));this.updateSliderPosition(t),this._onDidChange.fire(t)}updateSliderPosition(e){this.slider.style.top=(1-e)*this.height+"px"}}class W extends V{constructor(e,t){super(e,t),this.domNode.classList.add("opacity-strip"),this._register(t.onDidChangeColor(this.onDidChangeColor,this)),this.onDidChangeColor(this.model.color)}onDidChangeColor(e){const{r:t,g:i,b:n}=e.rgba,o=new a.Il(new a.VS(t,i,n,1)),s=new a.Il(new a.VS(t,i,n,0));this.overlay.style.background=`linear-gradient(to bottom, ${o} 0%, ${s} 100%)`}getValue(e){return e.hsva.a}}class H extends V{constructor(e,t){super(e,t),this.domNode.classList.add("hue-strip")}getValue(e){return 1-e.hsva.h/360}}class z extends T.${constructor(e,t,i,n){super(),this.model=t,this.pixelRatio=i,this._register(N.PixelRatio.onDidChange((()=>this.layout())));const o=O(".colorpicker-widget");e.appendChild(o);const s=new P(o,this.model,n);this.body=new F(o,this.model,this.pixelRatio),this._register(s),this._register(this.body)}layout(){this.body.layout()}}var j=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},U=function(e,t){return function(i,n){t(i,n,e)}},K=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class ${constructor(e,t,i,n){this.owner=e,this.range=t,this.model=i,this.provider=n,this.forceShowAtRange=!0}isValidForHoverAnchor(e){return 1===e.type&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let q=class{constructor(e,t){this._editor=e,this._themeService=t,this.hoverOrdinal=1}computeSync(e,t){return[]}computeAsync(e,t,i){return r.Aq.fromPromise(this._computeAsync(e,t,i))}_computeAsync(e,t,i){return K(this,void 0,void 0,(function*(){if(!this._editor.hasModel())return[];const e=k.get(this._editor);if(!e)return[];for(const i of t){if(!e.isColorDecoration(i))continue;const t=e.getColorData(i.range.getStartPosition());if(t){return[yield this._createColorHover(this._editor.getModel(),t.colorInfo,t.provider)]}}return[]}))}_createColorHover(e,t,i){return K(this,void 0,void 0,(function*(){const n=e.getValueInRange(t.range),{red:o,green:r,blue:l,alpha:c}=t.color,d=new a.VS(Math.round(255*o),Math.round(255*r),Math.round(255*l),c),h=new a.Il(d),u=yield b(e,t,i,m.T.None),g=new D(h,[],0);return g.colorPresentations=u||[],g.guessColorPresentation(h,n),new $(this,s.e.lift(t.range),g,i)}))}renderHoverParts(e,t){if(0===t.length||!this._editor.hasModel())return n.JT.None;const i=new n.SL,o=t[0],r=this._editor.getModel(),a=o.model,l=i.add(new z(e.fragment,a,this._editor.getOption(131),this._themeService));e.setColorPicker(l);let c=new s.e(o.range.startLineNumber,o.range.startColumn,o.range.endLineNumber,o.range.endColumn);const d=()=>{let t,i;if(a.presentation.textEdit){t=[a.presentation.textEdit],i=new s.e(a.presentation.textEdit.range.startLineNumber,a.presentation.textEdit.range.startColumn,a.presentation.textEdit.range.endLineNumber,a.presentation.textEdit.range.endColumn);const e=this._editor.getModel()._setTrackedRange(null,i,3);this._editor.pushUndoStop(),this._editor.executeEdits("colorpicker",t),i=this._editor.getModel()._getTrackedRange(e)||i}else t=[{range:c,text:a.presentation.label,forceMoveMarkers:!1}],i=c.setEndPosition(c.endLineNumber,c.startColumn+a.presentation.label.length),this._editor.pushUndoStop(),this._editor.executeEdits("colorpicker",t);a.presentation.additionalTextEdits&&(t=[...a.presentation.additionalTextEdits],this._editor.executeEdits("colorpicker",t),e.hide()),this._editor.pushUndoStop(),c=i},h=e=>b(r,{range:c,color:{red:e.rgba.r/255,green:e.rgba.g/255,blue:e.rgba.b/255,alpha:e.rgba.a}},o.provider,m.T.None).then((e=>{a.colorPresentations=e||[]}));return i.add(a.onColorFlushed((e=>{h(e).then(d)}))),i.add(a.onDidChangeColor(h)),i}};q=j([U(1,R.XE)],q);var G=i(66122),Q=i(66520);class Z extends n.JT{constructor(e){super(),this._editor=e,this._register(e.onMouseDown((e=>this.onMouseDown(e))))}dispose(){super.dispose()}onMouseDown(e){const t=e.target;if(6!==t.type)return;if(!t.detail.injectedText)return;if(t.detail.injectedText.options.attachedData!==L)return;if(!t.range)return;const i=this._editor.getContribution(G.E.ID);if(i&&!i.isColorPickerVisible()){const e=new s.e(t.range.startLineNumber,t.range.startColumn+1,t.range.endLineNumber,t.range.endColumn+1);i.showContentHover(e,1,!1)}}}Z.ID="editor.contrib.colorContribution",(0,o._K)(Z.ID,Z),Q.Ae.register(q)},39956:(e,t,i)=>{"use strict";var n=i(22258),o=i(16830),s=i(24314),r=i(29102),a=i(4256),l=i(69386),c=i(50187),d=i(3860);class h{constructor(e,t,i){this.languageConfigurationService=i,this._selection=e,this._insertSpace=t,this._usedEndToken=null}static _haystackHasNeedleAtOffset(e,t,i){if(i<0)return!1;const n=t.length;if(i+n>e.length)return!1;for(let o=0;o<n;o++){const n=e.charCodeAt(i+o),s=t.charCodeAt(o);if(n!==s&&!(n>=65&&n<=90&&n+32===s||s>=65&&s<=90&&s+32===n))return!1}return!0}_createOperationsForBlockComment(e,t,i,n,o,r){const a=e.startLineNumber,l=e.startColumn,c=e.endLineNumber,d=e.endColumn,u=o.getLineContent(a),g=o.getLineContent(c);let p,m=u.lastIndexOf(t,l-1+t.length),f=g.indexOf(i,d-1-i.length);if(-1!==m&&-1!==f)if(a===c){u.substring(m+t.length,f).indexOf(i)>=0&&(m=-1,f=-1)}else{const e=u.substring(m+t.length),n=g.substring(0,f);(e.indexOf(i)>=0||n.indexOf(i)>=0)&&(m=-1,f=-1)}-1!==m&&-1!==f?(n&&m+t.length<u.length&&32===u.charCodeAt(m+t.length)&&(t+=" "),n&&f>0&&32===g.charCodeAt(f-1)&&(i=" "+i,f-=1),p=h._createRemoveBlockCommentOperations(new s.e(a,m+t.length+1,c,f+1),t,i)):(p=h._createAddBlockCommentOperations(e,t,i,this._insertSpace),this._usedEndToken=1===p.length?i:null);for(const s of p)r.addTrackedEditOperation(s.range,s.text)}static _createRemoveBlockCommentOperations(e,t,i){const n=[];return s.e.isEmpty(e)?n.push(l.h.delete(new s.e(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+i.length))):(n.push(l.h.delete(new s.e(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),n.push(l.h.delete(new s.e(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+i.length)))),n}static _createAddBlockCommentOperations(e,t,i,n){const o=[];return s.e.isEmpty(e)?o.push(l.h.replace(new s.e(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+" "+i)):(o.push(l.h.insert(new c.L(e.startLineNumber,e.startColumn),t+(n?" ":""))),o.push(l.h.insert(new c.L(e.endLineNumber,e.endColumn),(n?" ":"")+i))),o}getEditOperations(e,t){const i=this._selection.startLineNumber,n=this._selection.startColumn;e.tokenization.tokenizeIfCheap(i);const o=e.getLanguageIdAtPosition(i,n),s=this.languageConfigurationService.getLanguageConfiguration(o).comments;s&&s.blockCommentStartToken&&s.blockCommentEndToken&&this._createOperationsForBlockComment(this._selection,s.blockCommentStartToken,s.blockCommentEndToken,this._insertSpace,e,t)}computeCursorState(e,t){const i=t.getInverseEditOperations();if(2===i.length){const e=i[0],t=i[1];return new d.Y(e.range.endLineNumber,e.range.endColumn,t.range.startLineNumber,t.range.startColumn)}{const e=i[0].range,t=this._usedEndToken?-this._usedEndToken.length-1:0;return new d.Y(e.endLineNumber,e.endColumn+t,e.endLineNumber,e.endColumn+t)}}}var u=i(97295);class g{constructor(e,t,i,n,o,s,r){this.languageConfigurationService=e,this._selection=t,this._tabSize=i,this._type=n,this._insertSpace=o,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=s,this._ignoreFirstLine=r||!1}static _gatherPreflightCommentStrings(e,t,i,n){e.tokenization.tokenizeIfCheap(t);const o=e.getLanguageIdAtPosition(t,1),s=n.getLanguageConfiguration(o).comments,r=s?s.lineCommentToken:null;if(!r)return null;const a=[];for(let l=0,c=i-t+1;l<c;l++)a[l]={ignore:!1,commentStr:r,commentStrOffset:0,commentStrLength:r.length};return a}static _analyzeLines(e,t,i,n,o,s,r,a){let l,c=!0;l=0===e||1!==e;for(let d=0,g=n.length;d<g;d++){const a=n[d],g=o+d;if(g===o&&r){a.ignore=!0;continue}const p=i.getLineContent(g),m=u.LC(p);if(-1!==m){if(c=!1,a.ignore=!1,a.commentStrOffset=m,l&&!h._haystackHasNeedleAtOffset(p,a.commentStr,m)&&(0===e?l=!1:1===e||(a.ignore=!0)),l&&t){const e=m+a.commentStrLength;e<p.length&&32===p.charCodeAt(e)&&(a.commentStrLength+=1)}}else a.ignore=s,a.commentStrOffset=p.length}if(0===e&&c){l=!1;for(let e=0,t=n.length;e<t;e++)n[e].ignore=!1}return{supported:!0,shouldRemoveComments:l,lines:n}}static _gatherPreflightData(e,t,i,n,o,s,r,a){const l=g._gatherPreflightCommentStrings(i,n,o,a);return null===l?{supported:!1}:g._analyzeLines(e,t,i,l,n,s,r,a)}_executeLineComments(e,t,i,n){let o;i.shouldRemoveComments?o=g._createRemoveLineCommentsOperations(i.lines,n.startLineNumber):(g._normalizeInsertionPoint(e,i.lines,n.startLineNumber,this._tabSize),o=this._createAddLineCommentsOperations(i.lines,n.startLineNumber));const r=new c.L(n.positionLineNumber,n.positionColumn);for(let a=0,l=o.length;a<l;a++)if(t.addEditOperation(o[a].range,o[a].text),s.e.isEmpty(o[a].range)&&s.e.getStartPosition(o[a].range).equals(r)){e.getLineContent(r.lineNumber).length+1===r.column&&(this._deltaColumn=(o[a].text||"").length)}this._selectionId=t.trackSelection(n)}_attemptRemoveBlockComment(e,t,i,n){let o=t.startLineNumber,r=t.endLineNumber;const a=n.length+Math.max(e.getLineFirstNonWhitespaceColumn(t.startLineNumber),t.startColumn);let l=e.getLineContent(o).lastIndexOf(i,a-1),c=e.getLineContent(r).indexOf(n,t.endColumn-1-i.length);return-1!==l&&-1===c&&(c=e.getLineContent(o).indexOf(n,l+i.length),r=o),-1===l&&-1!==c&&(l=e.getLineContent(r).lastIndexOf(i,c),o=r),!t.isEmpty()||-1!==l&&-1!==c||(l=e.getLineContent(o).indexOf(i),-1!==l&&(c=e.getLineContent(o).indexOf(n,l+i.length))),-1!==l&&32===e.getLineContent(o).charCodeAt(l+i.length)&&(i+=" "),-1!==c&&32===e.getLineContent(r).charCodeAt(c-1)&&(n=" "+n,c-=1),-1!==l&&-1!==c?h._createRemoveBlockCommentOperations(new s.e(o,l+i.length+1,r,c+1),i,n):null}_executeBlockComment(e,t,i){e.tokenization.tokenizeIfCheap(i.startLineNumber);const n=e.getLanguageIdAtPosition(i.startLineNumber,1),o=this.languageConfigurationService.getLanguageConfiguration(n).comments;if(!o||!o.blockCommentStartToken||!o.blockCommentEndToken)return;const r=o.blockCommentStartToken,a=o.blockCommentEndToken;let l=this._attemptRemoveBlockComment(e,i,r,a);if(!l){if(i.isEmpty()){const t=e.getLineContent(i.startLineNumber);let n=u.LC(t);-1===n&&(n=t.length),l=h._createAddBlockCommentOperations(new s.e(i.startLineNumber,n+1,i.startLineNumber,t.length+1),r,a,this._insertSpace)}else l=h._createAddBlockCommentOperations(new s.e(i.startLineNumber,e.getLineFirstNonWhitespaceColumn(i.startLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),r,a,this._insertSpace);1===l.length&&(this._deltaColumn=r.length+1)}this._selectionId=t.trackSelection(i);for(const s of l)t.addEditOperation(s.range,s.text)}getEditOperations(e,t){let i=this._selection;if(this._moveEndPositionDown=!1,i.startLineNumber===i.endLineNumber&&this._ignoreFirstLine)return t.addEditOperation(new s.e(i.startLineNumber,e.getLineMaxColumn(i.startLineNumber),i.startLineNumber+1,1),i.startLineNumber===e.getLineCount()?"":"\n"),void(this._selectionId=t.trackSelection(i));i.startLineNumber<i.endLineNumber&&1===i.endColumn&&(this._moveEndPositionDown=!0,i=i.setEndPosition(i.endLineNumber-1,e.getLineMaxColumn(i.endLineNumber-1)));const n=g._gatherPreflightData(this._type,this._insertSpace,e,i.startLineNumber,i.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine,this.languageConfigurationService);return n.supported?this._executeLineComments(e,t,n,i):this._executeBlockComment(e,t,i)}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(i=i.setEndPosition(i.endLineNumber+1,1)),new d.Y(i.selectionStartLineNumber,i.selectionStartColumn+this._deltaColumn,i.positionLineNumber,i.positionColumn+this._deltaColumn)}static _createRemoveLineCommentsOperations(e,t){const i=[];for(let n=0,o=e.length;n<o;n++){const o=e[n];o.ignore||i.push(l.h.delete(new s.e(t+n,o.commentStrOffset+1,t+n,o.commentStrOffset+o.commentStrLength+1)))}return i}_createAddLineCommentsOperations(e,t){const i=[],n=this._insertSpace?" ":"";for(let o=0,s=e.length;o<s;o++){const s=e[o];s.ignore||i.push(l.h.insert(new c.L(t+o,s.commentStrOffset+1),s.commentStr+n))}return i}static nextVisibleColumn(e,t,i,n){return i?e+(t-e%t):e+n}static _normalizeInsertionPoint(e,t,i,n){let o,s,r=1073741824;for(let a=0,l=t.length;a<l;a++){if(t[a].ignore)continue;const o=e.getLineContent(i+a);let s=0;for(let e=0,i=t[a].commentStrOffset;s<r&&e<i;e++)s=g.nextVisibleColumn(s,n,9===o.charCodeAt(e),1);s<r&&(r=s)}r=Math.floor(r/n)*n;for(let a=0,l=t.length;a<l;a++){if(t[a].ignore)continue;const l=e.getLineContent(i+a);let c=0;for(o=0,s=t[a].commentStrOffset;c<r&&o<s;o++)c=g.nextVisibleColumn(c,n,9===l.charCodeAt(o),1);t[a].commentStrOffset=c>r?o-1:o}}}var p=i(63580),m=i(84144);class f extends o.R6{constructor(e,t){super(t),this._type=e}run(e,t){const i=e.get(a.c_);if(!t.hasModel())return;const n=[],o=t.getModel().getOptions(),r=t.getOption(19),l=t.getSelections().map(((e,t)=>({selection:e,index:t,ignoreFirstLine:!1})));l.sort(((e,t)=>s.e.compareRangesUsingStarts(e.selection,t.selection)));let c=l[0];for(let s=1;s<l.length;s++){const e=l[s];c.selection.endLineNumber===e.selection.startLineNumber&&(c.index<e.index?e.ignoreFirstLine=!0:(c.ignoreFirstLine=!0,c=e))}for(const s of l)n.push(new g(i,s.selection,o.tabSize,this._type,r.insertSpace,r.ignoreEmptyLines,s.ignoreFirstLine));t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}}class _ extends o.R6{constructor(){super({id:"editor.action.blockComment",label:p.NC("comment.block","Toggle Block Comment"),alias:"Toggle Block Comment",precondition:r.u.writable,kbOpts:{kbExpr:r.u.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:m.eH.MenubarEditMenu,group:"5_insert",title:p.NC({key:"miToggleBlockComment",comment:["&& denotes a mnemonic"]},"Toggle &&Block Comment"),order:2}})}run(e,t){const i=e.get(a.c_);if(!t.hasModel())return;const n=t.getOption(19),o=[],s=t.getSelections();for(const r of s)o.push(new h(r,n.insertSpace,i));t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}(0,o.Qr)(class extends f{constructor(){super(0,{id:"editor.action.commentLine",label:p.NC("comment.line","Toggle Line Comment"),alias:"Toggle Line Comment",precondition:r.u.writable,kbOpts:{kbExpr:r.u.editorTextFocus,primary:2133,weight:100},menuOpts:{menuId:m.eH.MenubarEditMenu,group:"5_insert",title:p.NC({key:"miToggleLineComment",comment:["&& denotes a mnemonic"]},"&&Toggle Line Comment"),order:1}})}}),(0,o.Qr)(class extends f{constructor(){super(1,{id:"editor.action.addCommentLine",label:p.NC("comment.line.add","Add Line Comment"),alias:"Add Line Comment",precondition:r.u.writable,kbOpts:{kbExpr:r.u.editorTextFocus,primary:(0,n.gx)(2089,2081),weight:100}})}}),(0,o.Qr)(class extends f{constructor(){super(2,{id:"editor.action.removeCommentLine",label:p.NC("comment.line.remove","Remove Line Comment"),alias:"Remove Line Comment",precondition:r.u.writable,kbOpts:{kbExpr:r.u.editorTextFocus,primary:(0,n.gx)(2089,2099),weight:100}})}}),(0,o.Qr)(_)},93740:(e,t,i)=>{"use strict";var n=i(65321),o=i(76033),s=i(74741),r=i(5976),a=i(1432),l=i(16830),c=i(29102),d=i(63580),h=i(84144),u=i(38819),g=i(5606),p=i(91847),m=i(33108),f=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},_=function(e,t){return function(i,n){t(i,n,e)}};let v=class e{constructor(e,t,i,o,s,a,l){this._contextMenuService=t,this._contextViewService=i,this._contextKeyService=o,this._keybindingService=s,this._menuService=a,this._configurationService=l,this._toDispose=new r.SL,this._contextMenuIsBeingShownCount=0,this._editor=e,this._toDispose.add(this._editor.onContextMenu((e=>this._onContextMenu(e)))),this._toDispose.add(this._editor.onMouseWheel((e=>{if(this._contextMenuIsBeingShownCount>0){const t=this._contextViewService.getContextViewElement(),i=e.srcElement;i.shadowRoot&&n.Ay(t)===i.shadowRoot||this._contextViewService.hideContextView()}}))),this._toDispose.add(this._editor.onKeyDown((e=>{this._editor.getOption(20)&&58===e.keyCode&&(e.preventDefault(),e.stopPropagation(),this.showContextMenu())})))}static get(t){return t.getContribution(e.ID)}_onContextMenu(e){if(!this._editor.hasModel())return;if(!this._editor.getOption(20))return this._editor.focus(),void(e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position));if(12===e.target.type)return;if(6===e.target.type&&e.target.detail.injectedText)return;if(e.event.preventDefault(),e.event.stopPropagation(),11===e.target.type)return this._showScrollbarContextMenu({x:e.event.posx-1,width:2,y:e.event.posy-1,height:2});if(6!==e.target.type&&7!==e.target.type&&1!==e.target.type)return;if(this._editor.focus(),e.target.position){let t=!1;for(const i of this._editor.getSelections())if(i.containsPosition(e.target.position)){t=!0;break}t||this._editor.setPosition(e.target.position)}let t=null;1!==e.target.type&&(t={x:e.event.posx-1,width:2,y:e.event.posy-1,height:2}),this.showContextMenu(t)}showContextMenu(e){if(!this._editor.getOption(20))return;if(!this._editor.hasModel())return;const t=this._getMenuActions(this._editor.getModel(),this._editor.isSimpleWidget?h.eH.SimpleEditorContext:h.eH.EditorContext);t.length>0&&this._doShowContextMenu(t,e)}_getMenuActions(e,t){const i=[],n=this._menuService.createMenu(t,this._contextKeyService),o=n.getActions({arg:e.uri});n.dispose();for(const r of o){const[,t]=r;let n=0;for(const o of t)if(o instanceof h.NZ){const t=this._getMenuActions(e,o.item.submenu);t.length>0&&(i.push(new s.wY(o.id,o.label,t)),n++)}else i.push(o),n++;n&&i.push(new s.Z0)}return i.length&&i.pop(),i}_doShowContextMenu(e,t=null){if(!this._editor.hasModel())return;const i=this._editor.getOption(55);if(this._editor.updateOptions({hover:{enabled:!1}}),!t){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();const e=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),i=n.i(this._editor.getDomNode()),o=i.left+e.left,s=i.top+e.top+e.height;t={x:o,y:s}}const s=this._editor.getOption(117)&&!a.gn;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:s?this._editor.getDomNode():void 0,getAnchor:()=>t,getActions:()=>e,getActionViewItem:e=>{const t=this._keybindingFor(e);if(t)return new o.g(e,e,{label:!0,keybinding:t.getLabel(),isMenu:!0});const i=e;return"function"==typeof i.getActionViewItem?i.getActionViewItem():new o.g(e,e,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:e=>this._keybindingFor(e),onHide:e=>{this._contextMenuIsBeingShownCount--,this._editor.focus(),this._editor.updateOptions({hover:i})}})}_showScrollbarContextMenu(e){if(!this._editor.hasModel())return;const t=this._editor.getOption(67);let i=0;const n=e=>({id:"menu-action-"+ ++i,label:e.label,tooltip:"",class:void 0,enabled:void 0===e.enabled||e.enabled,checked:e.checked,run:e.run,dispose:()=>null}),o=(e,t,o,r,a)=>{if(!t)return n({label:e,enabled:t,run:()=>{}});const l=e=>()=>{this._configurationService.updateValue(o,e)},c=[];for(const i of a)c.push(n({label:i.label,checked:r===i.value,run:l(i.value)}));return((e,t)=>new s.wY("menu-action-"+ ++i,e,t,void 0))(e,c)},r=[];r.push(n({label:d.NC("context.minimap.minimap","Minimap"),checked:t.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!t.enabled)}})),r.push(new s.Z0),r.push(n({label:d.NC("context.minimap.renderCharacters","Render Characters"),enabled:t.enabled,checked:t.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!t.renderCharacters)}})),r.push(o(d.NC("context.minimap.size","Vertical size"),t.enabled,"editor.minimap.size",t.size,[{label:d.NC("context.minimap.size.proportional","Proportional"),value:"proportional"},{label:d.NC("context.minimap.size.fill","Fill"),value:"fill"},{label:d.NC("context.minimap.size.fit","Fit"),value:"fit"}])),r.push(o(d.NC("context.minimap.slider","Slider"),t.enabled,"editor.minimap.showSlider",t.showSlider,[{label:d.NC("context.minimap.slider.mouseover","Mouse Over"),value:"mouseover"},{label:d.NC("context.minimap.slider.always","Always"),value:"always"}]));const l=this._editor.getOption(117)&&!a.gn;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:l?this._editor.getDomNode():void 0,getAnchor:()=>e,getActions:()=>r,onHide:e=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(e){return this._keybindingService.lookupKeybinding(e.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}};v.ID="editor.contrib.contextmenu",v=f([_(1,g.i),_(2,g.u),_(3,u.i6),_(4,p.d),_(5,h.co),_(6,m.Ui)],v);class b extends l.R6{constructor(){super({id:"editor.action.showContextMenu",label:d.NC("action.showContextMenu.label","Show Editor Context Menu"),alias:"Show Editor Context Menu",precondition:void 0,kbOpts:{kbExpr:c.u.textInputFocus,primary:1092,weight:100}})}run(e,t){var i;null===(i=v.get(t))||void 0===i||i.showContextMenu()}}(0,l._K)(v.ID,v),(0,l.Qr)(b)},85754:(e,t,i)=>{"use strict";var n=i(16830),o=i(800),s=i(23547),r=i(65321),a=i(15393),l=i(73278),c=i(5976),d=i(81170),h=i(98e3),u=i(53201),g=i(66007),p=i(24314),m=i(71922),f=i(14410),_=i(98762),v=i(35084),b=i(84972),C=i(33108),w=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},y=function(e,t){return function(i,n){t(i,n,e)}},S=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const L="application/vnd.code.copyMetadata";let k=class extends c.JT{constructor(e,t,i,n,o){super(),this._bulkEditService=t,this._clipboardService=i,this._configurationService=n,this._languageFeaturesService=o,this._editor=e;const s=e.getContainerDomNode();this._register((0,r.nm)(s,"copy",(e=>this.handleCopy(e)))),this._register((0,r.nm)(s,"cut",(e=>this.handleCopy(e)))),this._register((0,r.nm)(s,"paste",(e=>this.handlePaste(e)),!0))}arePasteActionsEnabled(e){return this._configurationService.getValue("editor.experimental.pasteActions.enabled",{resource:e.uri})}handleCopy(e){var t;if(!e.clipboardData||!this._editor.hasTextFocus())return;const i=this._editor.getModel(),n=this._editor.getSelections();if(!i||!(null==n?void 0:n.length))return;if(!this.arePasteActionsEnabled(i))return;const o=[...n],s=n[0],r=s.isEmpty();if(r){if(!this._editor.getOption(33))return;o[0]=new p.e(s.startLineNumber,0,s.startLineNumber,i.getLineLength(s.startLineNumber))}const l=this._languageFeaturesService.documentPasteEditProvider.ordered(i).filter((e=>!!e.prepareDocumentPaste));if(!l.length)return void this.setCopyMetadata(e.clipboardData,{wasFromEmptySelection:r});const c=(0,u.Bo)(e.clipboardData),d=(0,h.R)();this.setCopyMetadata(e.clipboardData,{id:d,wasFromEmptySelection:r});const g=(0,a.PG)((e=>S(this,void 0,void 0,(function*(){const t=yield Promise.all(l.map((t=>t.prepareDocumentPaste(i,o,c,e))));for(const e of t)null==e||e.forEach(((e,t)=>{c.replace(t,e)}));return c}))));null===(t=this._currentClipboardItem)||void 0===t||t.dataTransferPromise.cancel(),this._currentClipboardItem={handle:d,dataTransferPromise:g}}setCopyMetadata(e,t){e.setData(L,JSON.stringify(t))}handlePaste(e){var t,i,n;return S(this,void 0,void 0,(function*(){if(!e.clipboardData||!this._editor.hasTextFocus())return;const o=this._editor.getSelections();if(!(null==o?void 0:o.length)||!this._editor.hasModel())return;const r=this._editor.getModel();if(!this.arePasteActionsEnabled(r))return;let a;const c=null===(t=e.clipboardData)||void 0===t?void 0:t.getData(L);c&&"string"==typeof c&&(a=JSON.parse(c));const h=this._languageFeaturesService.documentPasteEditProvider.ordered(r);if(!h.length)return;e.preventDefault(),e.stopImmediatePropagation();const p=r.getVersionId(),m=new f.Dl(this._editor,3);try{const t=(0,u.Bo)(e.clipboardData);if((null==a?void 0:a.id)&&(null===(i=this._currentClipboardItem)||void 0===i?void 0:i.handle)===a.id){(yield this._currentClipboardItem.dataTransferPromise).forEach(((e,i)=>{t.replace(i,e)}))}if(!t.has(d.v.uriList)){const e=yield this._clipboardService.readResources();e.length&&t.append(d.v.uriList,(0,l.ZO)(u.Z0.create(e)))}t.delete(L);for(const e of h){if(!e.pasteMimeTypes.some((e=>e.toLowerCase()===s.g.FILES.toLowerCase()?[...t.values()].some((e=>e.asFile())):t.has(e))))continue;const i=yield e.provideDocumentPasteEdits(r,o,t,m.token);if(p!==r.getVersionId())return;if(i)return(0,_.z)(this._editor,"string"==typeof i.insertText?v.Yj.escape(i.insertText):i.insertText.snippet,o),void(i.additionalEdit&&(yield this._bulkEditService.apply(g.fo.convert(i.additionalEdit),{editor:this._editor})))}const c=null!==(n=t.get(d.v.text))&&void 0!==n?n:t.get("text");if(!c)return;const f=yield c.asString();if(p!==r.getVersionId())return;this._editor.trigger("keyboard","paste",{text:f,pasteOnNewLine:null==a?void 0:a.wasFromEmptySelection,multicursorText:null})}finally{m.dispose()}}))}};k.ID="editor.contrib.copyPasteActionController",k=w([y(1,g.vu),y(2,b.p),y(3,C.Ui),y(4,m.p)],k);var x=i(63580),D=i(23193),N=i(89872);(0,n._K)(k.ID,k),N.B.as(D.IP.Configuration).registerConfiguration(Object.assign(Object.assign({},o.wk),{properties:{"editor.experimental.pasteActions.enabled":{type:"boolean",scope:5,description:x.NC("pasteActions","Enable/disable running edits from extensions on paste."),default:!1}}}))},41895:(e,t,i)=>{"use strict";var n=i(5976),o=i(16830),s=i(29102),r=i(63580);class a{constructor(e){this.selections=e}equals(e){const t=this.selections.length;if(t!==e.selections.length)return!1;for(let i=0;i<t;i++)if(!this.selections[i].equalsSelection(e.selections[i]))return!1;return!0}}class l{constructor(e,t,i){this.cursorState=e,this.scrollTop=t,this.scrollLeft=i}}class c extends n.JT{constructor(e){super(),this._editor=e,this._isCursorUndoRedo=!1,this._undoStack=[],this._redoStack=[],this._register(e.onDidChangeModel((e=>{this._undoStack=[],this._redoStack=[]}))),this._register(e.onDidChangeModelContent((e=>{this._undoStack=[],this._redoStack=[]}))),this._register(e.onDidChangeCursorSelection((t=>{if(this._isCursorUndoRedo)return;if(!t.oldSelections)return;if(t.oldModelVersionId!==t.modelVersionId)return;const i=new a(t.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(i)||(this._undoStack.push(new l(i,e.getScrollTop(),e.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())})))}static get(e){return e.getContribution(c.ID)}cursorUndo(){this._editor.hasModel()&&0!==this._undoStack.length&&(this._redoStack.push(new l(new a(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){this._editor.hasModel()&&0!==this._redoStack.length&&(this._undoStack.push(new l(new a(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}_applyState(e){this._isCursorUndoRedo=!0,this._editor.setSelections(e.cursorState.selections),this._editor.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}),this._isCursorUndoRedo=!1}}c.ID="editor.contrib.cursorUndoRedoController";class d extends o.R6{constructor(){super({id:"cursorUndo",label:r.NC("cursor.undo","Cursor Undo"),alias:"Cursor Undo",precondition:void 0,kbOpts:{kbExpr:s.u.textInputFocus,primary:2099,weight:100}})}run(e,t,i){var n;null===(n=c.get(t))||void 0===n||n.cursorUndo()}}class h extends o.R6{constructor(){super({id:"cursorRedo",label:r.NC("cursor.redo","Cursor Redo"),alias:"Cursor Redo",precondition:void 0})}run(e,t,i){var n;null===(n=c.get(t))||void 0===n||n.cursorRedo()}}(0,o._K)(c.ID,c),(0,o.Qr)(d),(0,o.Qr)(h)},27107:(e,t,i)=>{"use strict";var n=i(5976),o=i(1432),s=i(16830),r=i(50187),a=i(24314),l=i(3860),c=i(22529);class d{constructor(e,t,i){this.selection=e,this.targetPosition=t,this.copy=i,this.targetSelection=null}getEditOperations(e,t){const i=e.getValueInRange(this.selection);this.copy||t.addEditOperation(this.selection,null),t.addEditOperation(new a.e(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),i),!this.selection.containsPosition(this.targetPosition)||this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition))?this.copy?this.targetSelection=new l.Y(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumber>this.selection.endLineNumber?this.targetSelection=new l.Y(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumber<this.selection.endLineNumber?this.targetSelection=new l.Y(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber+this.selection.endLineNumber-this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.selection.endColumn<=this.targetPosition.column?this.targetSelection=new l.Y(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,(this.selection.startLineNumber,this.selection.endLineNumber,this.targetPosition.column-this.selection.endColumn+this.selection.startColumn),this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column:this.selection.endColumn):this.targetSelection=new l.Y(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column+this.selection.endColumn-this.selection.startColumn):this.targetSelection=this.selection}computeCursorState(e,t){return this.targetSelection}}function h(e){return o.dz?e.altKey:e.ctrlKey}class u extends n.JT{constructor(e){super(),this._editor=e,this._dndDecorationIds=this._editor.createDecorationsCollection(),this._register(this._editor.onMouseDown((e=>this._onEditorMouseDown(e)))),this._register(this._editor.onMouseUp((e=>this._onEditorMouseUp(e)))),this._register(this._editor.onMouseDrag((e=>this._onEditorMouseDrag(e)))),this._register(this._editor.onMouseDrop((e=>this._onEditorMouseDrop(e)))),this._register(this._editor.onMouseDropCanceled((()=>this._onEditorMouseDropCanceled()))),this._register(this._editor.onKeyDown((e=>this.onEditorKeyDown(e)))),this._register(this._editor.onKeyUp((e=>this.onEditorKeyUp(e)))),this._register(this._editor.onDidBlurEditorWidget((()=>this.onEditorBlur()))),this._register(this._editor.onDidBlurEditorText((()=>this.onEditorBlur()))),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(e){this._editor.getOption(31)&&!this._editor.getOption(18)&&(h(e)&&(this._modifierPressed=!0),this._mouseDown&&h(e)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(e){this._editor.getOption(31)&&!this._editor.getOption(18)&&(h(e)&&(this._modifierPressed=!1),this._mouseDown&&e.keyCode===u.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:"default"}))}_onEditorMouseDown(e){this._mouseDown=!0}_onEditorMouseUp(e){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(e){const t=e.target;if(null===this._dragSelection){const e=(this._editor.getSelections()||[]).filter((e=>t.position&&e.containsPosition(t.position)));if(1!==e.length)return;this._dragSelection=e[0]}h(e.event)?this._editor.updateOptions({mouseStyle:"copy"}):this._editor.updateOptions({mouseStyle:"default"}),t.position&&(this._dragSelection.containsPosition(t.position)?this._removeDecoration():this.showAt(t.position))}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(e){if(e.target&&(this._hitContent(e.target)||this._hitMargin(e.target))&&e.target.position){const t=new r.L(e.target.position.lineNumber,e.target.position.column);if(null===this._dragSelection){let i=null;if(e.event.shiftKey){const e=this._editor.getSelection();if(e){const{selectionStartLineNumber:n,selectionStartColumn:o}=e;i=[new l.Y(n,o,t.lineNumber,t.column)]}}else i=(this._editor.getSelections()||[]).map((e=>e.containsPosition(t)?new l.Y(t.lineNumber,t.column,t.lineNumber,t.column):e));this._editor.setSelections(i||[],"mouse",3)}else(!this._dragSelection.containsPosition(t)||(h(e.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(t)||this._dragSelection.getStartPosition().equals(t)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(u.ID,new d(this._dragSelection,t,h(e.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}showAt(e){this._dndDecorationIds.set([{range:new a.e(e.lineNumber,e.column,e.lineNumber,e.column),options:u._DECORATION_OPTIONS}]),this._editor.revealPosition(e,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(e){return 6===e.type||7===e.type}_hitMargin(e){return 2===e.type||3===e.type||4===e.type}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}u.ID="editor.contrib.dragAndDrop",u.TRIGGER_KEY_VALUE=o.dz?6:5,u._DECORATION_OPTIONS=c.qx.register({description:"dnd-target",className:"dnd-target"}),(0,s._K)(u.ID,u)},76917:(e,t,i)=>{"use strict";var n=i(71050),o=i(98401),s=i(70666),r=i(88216),a=i(30335),l=i(94565),c=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};l.P0.registerCommand("_executeDocumentSymbolProvider",(function(e,...t){return c(this,void 0,void 0,(function*(){const[i]=t;(0,o.p_)(s.o.isUri(i));const l=e.get(a.Je),c=e.get(r.S),d=yield c.createModelReference(i);try{return(yield l.getOrCreate(d.object.textEditorModel,n.T.None)).getTopLevelSymbols()}finally{d.dispose()}}))}))},30335:(e,t,i)=>{"use strict";i.d(t,{C3:()=>y,Je:()=>S,sT:()=>C});var n=i(9488),o=i(71050),s=i(17301),r=i(53725),a=i(43702),l=i(50187),c=i(24314),d=i(88191),h=i(72065),u=i(65026),g=i(73733),p=i(5976),m=i(71922),f=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},_=function(e,t){return function(i,n){t(i,n,e)}},v=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class b{remove(){var e;null===(e=this.parent)||void 0===e||e.children.delete(this.id)}static findId(e,t){let i;"string"==typeof e?i=`${t.id}/${e}`:(i=`${t.id}/${e.name}`,void 0!==t.children.get(i)&&(i=`${t.id}/${e.name}_${e.range.startLineNumber}_${e.range.startColumn}`));let n=i;for(let o=0;void 0!==t.children.get(n);o++)n=`${i}_${o}`;return n}static empty(e){return 0===e.children.size}}class C extends b{constructor(e,t,i){super(),this.id=e,this.parent=t,this.symbol=i,this.children=new Map}}class w extends b{constructor(e,t,i,n){super(),this.id=e,this.parent=t,this.label=i,this.order=n,this.children=new Map}}class y extends b{constructor(e){super(),this.uri=e,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}static create(e,t,i){const r=new o.A(i),a=new y(t.uri),l=e.ordered(t),c=l.map(((e,i)=>{var n;const o=b.findId(`provider_${i}`,a),l=new w(o,a,null!==(n=e.displayName)&&void 0!==n?n:"Unknown Outline Provider",i);return Promise.resolve(e.provideDocumentSymbols(t,r.token)).then((e=>{for(const t of e||[])y._makeOutlineElement(t,l);return l}),(e=>((0,s.Cp)(e),l))).then((e=>{b.empty(e)?e.remove():a._groups.set(o,e)}))})),d=e.onDidChange((()=>{const i=e.ordered(t);(0,n.fS)(i,l)||r.cancel()}));return Promise.all(c).then((()=>r.token.isCancellationRequested&&!i.isCancellationRequested?y.create(e,t,i):a._compact())).finally((()=>{d.dispose()}))}static _makeOutlineElement(e,t){const i=b.findId(e,t),n=new C(i,t,e);if(e.children)for(const o of e.children)y._makeOutlineElement(o,n);t.children.set(n.id,n)}_compact(){let e=0;for(const[t,i]of this._groups)0===i.children.size?this._groups.delete(t):e+=1;if(1!==e)this.children=this._groups;else{const e=r.$.first(this._groups.values());for(const[,t]of e.children)t.parent=this,this.children.set(t.id,t)}return this}getTopLevelSymbols(){const e=[];for(const t of this.children.values())t instanceof C?e.push(t.symbol):e.push(...r.$.map(t.children.values(),(e=>e.symbol)));return e.sort(((e,t)=>c.e.compareRangesUsingStarts(e.range,t.range)))}asListOfDocumentSymbols(){const e=this.getTopLevelSymbols(),t=[];return y._flattenDocumentSymbols(t,e,""),t.sort(((e,t)=>l.L.compare(c.e.getStartPosition(e.range),c.e.getStartPosition(t.range))||l.L.compare(c.e.getEndPosition(t.range),c.e.getEndPosition(e.range))))}static _flattenDocumentSymbols(e,t,i){for(const n of t)e.push({kind:n.kind,tags:n.tags,name:n.name,detail:n.detail,containerName:n.containerName||i,range:n.range,selectionRange:n.selectionRange,children:void 0}),n.children&&y._flattenDocumentSymbols(e,n.children,n.name)}}const S=(0,h.yh)("IOutlineModelService");let L=class{constructor(e,t,i){this._languageFeaturesService=e,this._disposables=new p.SL,this._cache=new a.z6(10,.7),this._debounceInformation=t.for(e.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(i.onModelRemoved((e=>{this._cache.delete(e.id)})))}dispose(){this._disposables.dispose()}getOrCreate(e,t){return v(this,void 0,void 0,(function*(){const i=this._languageFeaturesService.documentSymbolProvider,s=i.ordered(e);let r=this._cache.get(e.id);if(!r||r.versionId!==e.getVersionId()||!(0,n.fS)(r.provider,s)){const t=new o.A;r={versionId:e.getVersionId(),provider:s,promiseCnt:0,source:t,promise:y.create(i,e,t.token),model:void 0},this._cache.set(e.id,r);const n=Date.now();r.promise.then((t=>{r.model=t,this._debounceInformation.update(e,Date.now()-n)})).catch((t=>{this._cache.delete(e.id)}))}if(r.model)return r.model;r.promiseCnt+=1;const a=t.onCancellationRequested((()=>{0==--r.promiseCnt&&(r.source.cancel(),this._cache.delete(e.id))}));try{return yield r.promise}finally{a.dispose()}}))}};L=f([_(0,m.p),_(1,d.A),_(2,g.q)],L),(0,u.z)(S,L,!0)},22482:(e,t,i)=>{"use strict";var n=i(15393),o=i(73278),s=i(5976),r=i(81170),a=i(95935),l=i(70666),c=i(53201),d=i(16830),h=i(66007),u=i(24314),g=i(3860),p=i(71922),m=i(14410),f=i(98762),_=i(35084),v=i(63580),b=i(90535),C=i(40382),w=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},y=function(e,t){return function(i,n){t(i,n,e)}},S=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let L=class extends s.JT{constructor(e,t,i,n,o){super(),this._bulkEditService=t,this._languageFeaturesService=i,this._progressService=n,this._register(e.onDropIntoEditor((t=>this.onDropIntoEditor(e,t.position,t.event)))),this._languageFeaturesService.documentOnDropEditProvider.register("*",new k(o))}onDropIntoEditor(e,t,i){return S(this,void 0,void 0,(function*(){if(!i.dataTransfer||!e.hasModel())return;const o=e.getModel(),s=o.getVersionId(),r=yield this.extractDataTransferData(i);if(0===r.size)return;if(e.getModel().getVersionId()!==s)return;const a=new m.Dl(e,1);try{const i=this._languageFeaturesService.documentOnDropEditProvider.ordered(o),l=yield this._progressService.withProgress({location:15,delay:750,title:(0,v.NC)("dropProgressTitle","Running drop handlers..."),cancellable:!0},(()=>(0,n.eP)((()=>S(this,void 0,void 0,(function*(){for(const e of i){const i=yield e.provideDocumentOnDropEdits(o,t,r,a.token);if(a.token.isCancellationRequested)return;if(i)return i}})))(),a.token)),(()=>{a.cancel()}));if(a.token.isCancellationRequested||e.getModel().getVersionId()!==s)return;if(l){const i=new u.e(t.lineNumber,t.column,t.lineNumber,t.column);return(0,f.z)(e,"string"==typeof l.insertText?_.Yj.escape(l.insertText):l.insertText.snippet,[g.Y.fromRange(i,0)]),void(l.additionalEdit&&(yield this._bulkEditService.apply(h.fo.convert(l.additionalEdit),{editor:e})))}}finally{a.dispose()}}))}extractDataTransferData(e){return S(this,void 0,void 0,(function*(){if(!e.dataTransfer)return new o.Hl;const t=(0,c.Bo)(e.dataTransfer);return(0,c.dR)(t,e),t}))}};L.ID="editor.contrib.dropIntoEditorController",L=w([y(1,h.vu),y(2,p.p),y(3,b.R9),y(4,C.ec)],L);let k=class{constructor(e){this._workspaceContextService=e}provideDocumentOnDropEdits(e,t,i,n){var o;return S(this,void 0,void 0,(function*(){const e=i.get(r.v.uriList);if(e){const t=yield e.asString(),i=this.getUriListInsertText(t);if(i)return{insertText:i}}const t=null!==(o=i.get("text"))&&void 0!==o?o:i.get(r.v.text);if(t){return{insertText:yield t.asString()}}}))}getUriListInsertText(e){const t=[];for(const n of c.Z0.parse(e))try{t.push(l.o.parse(n))}catch(i){}if(t.length)return t.map((e=>{const t=this._workspaceContextService.getWorkspaceFolder(e);if(t){const i=(0,a.lX)(t.uri,e);if(i)return i}return e.fsPath})).join(" ")}};k=w([y(0,C.ec)],k),(0,d._K)(L.ID,L)},14410:(e,t,i)=>{"use strict";i.d(t,{yy:()=>f,Dl:()=>_,YQ:()=>v});var n=i(97295),o=i(24314),s=i(71050),r=i(5976),a=i(16830),l=i(38819),c=i(91741),d=i(72065),h=i(65026),u=i(63580);const g=(0,d.yh)("IEditorCancelService"),p=new l.uy("cancellableOperation",!1,(0,u.NC)("cancellableOperation","Whether the editor runs a cancellable operation, e.g. like 'Peek References'"));(0,h.z)(g,class{constructor(){this._tokens=new WeakMap}add(e,t){let i,n=this._tokens.get(e);return n||(n=e.invokeWithinContext((e=>({key:p.bindTo(e.get(l.i6)),tokens:new c.S}))),this._tokens.set(e,n)),n.key.set(!0),i=n.tokens.push(t),()=>{i&&(i(),n.key.set(!n.tokens.isEmpty()),i=void 0)}}cancel(e){const t=this._tokens.get(e);if(!t)return;const i=t.tokens.pop();i&&(i.cancel(),t.key.set(!t.tokens.isEmpty()))}},!0);class m extends s.A{constructor(e,t){super(t),this.editor=e,this._unregister=e.invokeWithinContext((t=>t.get(g).add(e,this)))}dispose(){this._unregister(),super.dispose()}}(0,a.fK)(new class extends a._l{constructor(){super({id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:p})}runEditorCommand(e,t){e.get(g).cancel(t)}});class f{constructor(e,t){if(this.flags=t,0!=(1&this.flags)){const t=e.getModel();this.modelVersionId=t?n.WU("{0}#{1}",t.uri.toString(),t.getVersionId()):null}else this.modelVersionId=null;0!=(4&this.flags)?this.position=e.getPosition():this.position=null,0!=(2&this.flags)?this.selection=e.getSelection():this.selection=null,0!=(8&this.flags)?(this.scrollLeft=e.getScrollLeft(),this.scrollTop=e.getScrollTop()):(this.scrollLeft=-1,this.scrollTop=-1)}_equals(e){if(!(e instanceof f))return!1;const t=e;return this.modelVersionId===t.modelVersionId&&(this.scrollLeft===t.scrollLeft&&this.scrollTop===t.scrollTop&&(!(!this.position&&t.position||this.position&&!t.position||this.position&&t.position&&!this.position.equals(t.position))&&!(!this.selection&&t.selection||this.selection&&!t.selection||this.selection&&t.selection&&!this.selection.equalsRange(t.selection))))}validate(e){return this._equals(new f(e,this.flags))}}class _ extends m{constructor(e,t,i,n){super(e,n),this._listener=new r.SL,4&t&&this._listener.add(e.onDidChangeCursorPosition((e=>{i&&o.e.containsPosition(i,e.position)||this.cancel()}))),2&t&&this._listener.add(e.onDidChangeCursorSelection((e=>{i&&o.e.containsRange(i,e.selection)||this.cancel()}))),8&t&&this._listener.add(e.onDidScrollChange((e=>this.cancel()))),1&t&&(this._listener.add(e.onDidChangeModel((e=>this.cancel()))),this._listener.add(e.onDidChangeModelContent((e=>this.cancel()))))}dispose(){this._listener.dispose(),super.dispose()}}class v extends s.A{constructor(e,t){super(t),this._listener=e.onDidChangeContent((()=>this.cancel()))}dispose(){this._listener.dispose(),super.dispose()}}},55826:(e,t,i)=>{"use strict";i.d(t,{pR:()=>at});var n=i(15393),o=i(5976),s=i(97295),r=i(16830),a=i(29102),l=i(9488),c=i(61329),d=i(50187),h=i(24314),u=i(3860),g=i(77277),p=i(84973),m=i(22529),f=i(73910),_=i(97781);class v{constructor(e){this._editor=e,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const e=this._findScopeDecorationIds.map((e=>this._editor.getModel().getDecorationRange(e))).filter((e=>!!e));if(e.length)return e}return null}getStartPosition(){return this._startPosition}setStartPosition(e){this._startPosition=e,this.setCurrentFindMatch(null)}_getDecorationIndex(e){const t=this._decorations.indexOf(e);return t>=0?t+1:1}getCurrentMatchesPosition(e){const t=this._editor.getModel().getDecorationsInRange(e);for(const i of t){const e=i.options;if(e===v._FIND_MATCH_DECORATION||e===v._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(i.id)}return 0}setCurrentFindMatch(e){let t=null,i=0;if(e)for(let n=0,o=this._decorations.length;n<o;n++){const o=this._editor.getModel().getDecorationRange(this._decorations[n]);if(e.equalsRange(o)){t=this._decorations[n],i=n+1;break}}return null===this._highlightedDecorationId&&null===t||this._editor.changeDecorations((e=>{if(null!==this._highlightedDecorationId&&(e.changeDecorationOptions(this._highlightedDecorationId,v._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),null!==t&&(this._highlightedDecorationId=t,e.changeDecorationOptions(this._highlightedDecorationId,v._CURRENT_FIND_MATCH_DECORATION)),null!==this._rangeHighlightDecorationId&&(e.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),null!==t){let i=this._editor.getModel().getDecorationRange(t);if(i.startLineNumber!==i.endLineNumber&&1===i.endColumn){const e=i.endLineNumber-1,t=this._editor.getModel().getLineMaxColumn(e);i=new h.e(i.startLineNumber,i.startColumn,e,t)}this._rangeHighlightDecorationId=e.addDecoration(i,v._RANGE_HIGHLIGHT_DECORATION)}})),i}set(e,t){this._editor.changeDecorations((i=>{let n=v._FIND_MATCH_DECORATION;const o=[];if(e.length>1e3){n=v._FIND_MATCH_NO_OVERVIEW_DECORATION;const t=this._editor.getModel().getLineCount(),i=this._editor.getLayoutInfo().height/t,s=Math.max(2,Math.ceil(3/i));let r=e[0].range.startLineNumber,a=e[0].range.endLineNumber;for(let n=1,l=e.length;n<l;n++){const t=e[n].range;a+s>=t.startLineNumber?t.endLineNumber>a&&(a=t.endLineNumber):(o.push({range:new h.e(r,1,a,1),options:v._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),r=t.startLineNumber,a=t.endLineNumber)}o.push({range:new h.e(r,1,a,1),options:v._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const s=new Array(e.length);for(let t=0,r=e.length;t<r;t++)s[t]={range:e[t].range,options:n};this._decorations=i.deltaDecorations(this._decorations,s),this._overviewRulerApproximateDecorations=i.deltaDecorations(this._overviewRulerApproximateDecorations,o),this._rangeHighlightDecorationId&&(i.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),this._findScopeDecorationIds.length&&(this._findScopeDecorationIds.forEach((e=>i.removeDecoration(e))),this._findScopeDecorationIds=[]),(null==t?void 0:t.length)&&(this._findScopeDecorationIds=t.map((e=>i.addDecoration(e,v._FIND_SCOPE_DECORATION))))}))}matchBeforePosition(e){if(0===this._decorations.length)return null;for(let t=this._decorations.length-1;t>=0;t--){const i=this._decorations[t],n=this._editor.getModel().getDecorationRange(i);if(n&&!(n.endLineNumber>e.lineNumber)){if(n.endLineNumber<e.lineNumber)return n;if(!(n.endColumn>e.column))return n}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(e){if(0===this._decorations.length)return null;for(let t=0,i=this._decorations.length;t<i;t++){const i=this._decorations[t],n=this._editor.getModel().getDecorationRange(i);if(n&&!(n.startLineNumber<e.lineNumber)){if(n.startLineNumber>e.lineNumber)return n;if(!(n.startColumn<e.column))return n}}return this._editor.getModel().getDecorationRange(this._decorations[0])}_allDecorations(){let e=[];return e=e.concat(this._decorations),e=e.concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationIds.length&&e.push(...this._findScopeDecorationIds),this._rangeHighlightDecorationId&&e.push(this._rangeHighlightDecorationId),e}}v._CURRENT_FIND_MATCH_DECORATION=m.qx.register({description:"current-find-match",stickiness:1,zIndex:13,className:"currentFindMatch",showIfCollapsed:!0,overviewRuler:{color:(0,_.EN)(f.Fm_),position:p.sh.Center},minimap:{color:(0,_.EN)(f.SUY),position:p.F5.Inline}}),v._FIND_MATCH_DECORATION=m.qx.register({description:"find-match",stickiness:1,zIndex:10,className:"findMatch",showIfCollapsed:!0,overviewRuler:{color:(0,_.EN)(f.Fm_),position:p.sh.Center},minimap:{color:(0,_.EN)(f.SUY),position:p.F5.Inline}}),v._FIND_MATCH_NO_OVERVIEW_DECORATION=m.qx.register({description:"find-match-no-overview",stickiness:1,className:"findMatch",showIfCollapsed:!0}),v._FIND_MATCH_ONLY_OVERVIEW_DECORATION=m.qx.register({description:"find-match-only-overview",stickiness:1,overviewRuler:{color:(0,_.EN)(f.Fm_),position:p.sh.Center}}),v._RANGE_HIGHLIGHT_DECORATION=m.qx.register({description:"find-range-highlight",stickiness:1,className:"rangeHighlight",isWholeLine:!0}),v._FIND_SCOPE_DECORATION=m.qx.register({description:"find-scope",className:"findScope",isWholeLine:!0});class b{constructor(e,t,i){this._editorSelection=e,this._ranges=t,this._replaceStrings=i,this._trackedEditorSelectionId=null}getEditOperations(e,t){if(this._ranges.length>0){const e=[];for(let t=0;t<this._ranges.length;t++)e.push({range:this._ranges[t],text:this._replaceStrings[t]});e.sort(((e,t)=>h.e.compareRangesUsingStarts(e.range,t.range)));const i=[];let n=e[0];for(let t=1;t<e.length;t++)n.range.endLineNumber===e[t].range.startLineNumber&&n.range.endColumn===e[t].range.startColumn?(n.range=n.range.plusRange(e[t].range),n.text=n.text+e[t].text):(i.push(n),n=e[t]);i.push(n);for(const o of i)t.addEditOperation(o.range,o.text)}this._trackedEditorSelectionId=t.trackSelection(this._editorSelection)}computeCursorState(e,t){return t.getTrackedSelection(this._trackedEditorSelectionId)}}function C(e,t){if(e&&""!==e[0]){const i=w(e,t,"-"),n=w(e,t,"_");return i&&!n?y(e,t,"-"):!i&&n?y(e,t,"_"):e[0].toUpperCase()===e[0]?t.toUpperCase():e[0].toLowerCase()===e[0]?t.toLowerCase():s.Kw(e[0][0])&&t.length>0?t[0].toUpperCase()+t.substr(1):e[0][0].toUpperCase()!==e[0][0]&&t.length>0?t[0].toLowerCase()+t.substr(1):t}return t}function w(e,t,i){return-1!==e[0].indexOf(i)&&-1!==t.indexOf(i)&&e[0].split(i).length===t.split(i).length}function y(e,t,i){const n=t.split(i),o=e[0].split(i);let s="";return n.forEach(((e,t)=>{s+=C([o[t]],e)+i})),s.slice(0,-1)}class S{constructor(e){this.staticValue=e,this.kind=0}}class L{constructor(e){this.pieces=e,this.kind=1}}class k{constructor(e){e&&0!==e.length?1===e.length&&null!==e[0].staticValue?this._state=new S(e[0].staticValue):this._state=new L(e):this._state=new S("")}static fromStaticValue(e){return new k([x.staticValue(e)])}get hasReplacementPatterns(){return 1===this._state.kind}buildReplaceString(e,t){if(0===this._state.kind)return t?C(e,this._state.staticValue):this._state.staticValue;let i="";for(let n=0,o=this._state.pieces.length;n<o;n++){const t=this._state.pieces[n];if(null!==t.staticValue){i+=t.staticValue;continue}let o=k._substitute(t.matchIndex,e);if(null!==t.caseOps&&t.caseOps.length>0){const e=[],i=t.caseOps.length;let n=0;for(let s=0,r=o.length;s<r;s++){if(n>=i){e.push(o.slice(s));break}switch(t.caseOps[n]){case"U":e.push(o[s].toUpperCase());break;case"u":e.push(o[s].toUpperCase()),n++;break;case"L":e.push(o[s].toLowerCase());break;case"l":e.push(o[s].toLowerCase()),n++;break;default:e.push(o[s])}}o=e.join("")}i+=o}return i}static _substitute(e,t){if(null===t)return"";if(0===e)return t[0];let i="";for(;e>0;){if(e<t.length){return(t[e]||"")+i}i=String(e%10)+i,e=Math.floor(e/10)}return"$"+i}}class x{constructor(e,t,i){this.staticValue=e,this.matchIndex=t,i&&0!==i.length?this.caseOps=i.slice(0):this.caseOps=null}static staticValue(e){return new x(e,-1,null)}static caseOps(e,t){return new x(null,e,t)}}class D{constructor(e){this._source=e,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=""}emitUnchanged(e){this._emitStatic(this._source.substring(this._lastCharIndex,e)),this._lastCharIndex=e}emitStatic(e,t){this._emitStatic(e),this._lastCharIndex=t}_emitStatic(e){0!==e.length&&(this._currentStaticPiece+=e)}emitMatchIndex(e,t,i){0!==this._currentStaticPiece.length&&(this._result[this._resultLen++]=x.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),this._result[this._resultLen++]=x.caseOps(e,i),this._lastCharIndex=t}finalize(){return this.emitUnchanged(this._source.length),0!==this._currentStaticPiece.length&&(this._result[this._resultLen++]=x.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),new k(this._result)}}var N=i(38819);const E=new N.uy("findWidgetVisible",!1),I=(E.toNegated(),new N.uy("findInputFocussed",!1)),T=new N.uy("replaceInputFocussed",!1),M={primary:545,mac:{primary:2593}},A={primary:565,mac:{primary:2613}},R={primary:560,mac:{primary:2608}},O={primary:554,mac:{primary:2602}},P={primary:558,mac:{primary:2606}},F="actions.find",B="actions.findWithSelection",V="editor.actions.findWithArgs",W="editor.action.nextMatchFindAction",H="editor.action.previousMatchFindAction",z="editor.action.nextSelectionMatchFindAction",j="editor.action.previousSelectionMatchFindAction",U="editor.action.startFindReplaceAction",K="closeFindWidget",$="toggleFindCaseSensitive",q="toggleFindWholeWord",G="toggleFindRegex",Q="toggleFindInSelection",Z="togglePreserveCase",Y="editor.action.replaceOne",J="editor.action.replaceAll",X="editor.action.selectAllMatches",ee=19999;class te{constructor(e,t){this._toDispose=new o.SL,this._editor=e,this._state=t,this._isDisposed=!1,this._startSearchingTimer=new n._F,this._decorations=new v(e),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new n.pY((()=>this.research(!1)),100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition((e=>{3!==e.reason&&5!==e.reason&&6!==e.reason||this._decorations.setStartPosition(this._editor.getPosition())}))),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent((e=>{this._ignoreModelContentChanged||(e.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())}))),this._toDispose.add(this._state.onFindReplaceStateChange((e=>this._onStateChanged(e)))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,(0,o.B9)(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(e){if(!this._isDisposed&&this._editor.hasModel()&&(e.searchString||e.isReplaceRevealed||e.isRegex||e.wholeWord||e.matchCase||e.searchScope)){this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet((()=>{e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor)}),240)):e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor)}}static _getSearchRange(e,t){return t||e.getFullModelRange()}research(e,t){let i=null;void 0!==t?null!==t&&(i=Array.isArray(t)?t:[t]):i=this._decorations.getFindScopes(),null!==i&&(i=i.map((e=>{if(e.startLineNumber!==e.endLineNumber){let t=e.endLineNumber;return 1===e.endColumn&&(t-=1),new h.e(e.startLineNumber,1,t,this._editor.getModel().getLineMaxColumn(t))}return e})));const n=this._findMatches(i,!1,ee);this._decorations.set(n,i);const o=this._editor.getSelection();let s=this._decorations.getCurrentMatchesPosition(o);if(0===s&&n.length>0){const e=(0,l.lG)(n.map((e=>e.range)),(e=>h.e.compareRangesUsingStarts(e,o)>=0));s=e>0?e-1+1:s}this._state.changeMatchInfo(s,this._decorations.getCount(),void 0),e&&this._editor.getOption(37).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){const e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1}_setCurrentFindMatch(e){const t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)}_prevSearchPosition(e){const t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:i,column:n}=e;const o=this._editor.getModel();return t||1===n?(1===i?i=o.getLineCount():i--,n=o.getLineMaxColumn(i)):n--,new d.L(i,n)}_moveToPrevMatch(e,t=!1){if(!this._state.canNavigateBack()){const t=this._decorations.matchAfterPosition(e);return void(t&&this._setCurrentFindMatch(t))}if(this._decorations.getCount()<ee){let t=this._decorations.matchBeforePosition(e);return t&&t.isEmpty()&&t.getStartPosition().equals(e)&&(e=this._prevSearchPosition(e),t=this._decorations.matchBeforePosition(e)),void(t&&this._setCurrentFindMatch(t))}if(this._cannotFind())return;const i=this._decorations.getFindScope(),n=te._getSearchRange(this._editor.getModel(),i);n.getEndPosition().isBefore(e)&&(e=n.getEndPosition()),e.isBefore(n.getStartPosition())&&(e=n.getEndPosition());const{lineNumber:o,column:s}=e,r=this._editor.getModel();let a=new d.L(o,s),l=r.findPreviousMatch(this._state.searchString,a,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(119):null,!1);return l&&l.range.isEmpty()&&l.range.getStartPosition().equals(a)&&(a=this._prevSearchPosition(a),l=r.findPreviousMatch(this._state.searchString,a,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(119):null,!1)),l?t||n.containsRange(l.range)?void this._setCurrentFindMatch(l.range):this._moveToPrevMatch(l.range.getStartPosition(),!0):void 0}moveToPrevMatch(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())}_nextSearchPosition(e){const t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:i,column:n}=e;const o=this._editor.getModel();return t||n===o.getLineMaxColumn(i)?(i===o.getLineCount()?i=1:i++,n=1):n++,new d.L(i,n)}_moveToNextMatch(e){if(!this._state.canNavigateForward()){const t=this._decorations.matchBeforePosition(e);return void(t&&this._setCurrentFindMatch(t))}if(this._decorations.getCount()<ee){let t=this._decorations.matchAfterPosition(e);return t&&t.isEmpty()&&t.getStartPosition().equals(e)&&(e=this._nextSearchPosition(e),t=this._decorations.matchAfterPosition(e)),void(t&&this._setCurrentFindMatch(t))}const t=this._getNextMatch(e,!1,!0);t&&this._setCurrentFindMatch(t.range)}_getNextMatch(e,t,i,n=!1){if(this._cannotFind())return null;const o=this._decorations.getFindScope(),s=te._getSearchRange(this._editor.getModel(),o);s.getEndPosition().isBefore(e)&&(e=s.getStartPosition()),e.isBefore(s.getStartPosition())&&(e=s.getStartPosition());const{lineNumber:r,column:a}=e,l=this._editor.getModel();let c=new d.L(r,a),h=l.findNextMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(119):null,t);return i&&h&&h.range.isEmpty()&&h.range.getStartPosition().equals(c)&&(c=this._nextSearchPosition(c),h=l.findNextMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(119):null,t)),h?n||s.containsRange(h.range)?h:this._getNextMatch(h.range.getEndPosition(),t,i,!0):null}moveToNextMatch(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())}_getReplacePattern(){return this._state.isRegex?function(e){if(!e||0===e.length)return new k(null);const t=[],i=new D(e);for(let n=0,o=e.length;n<o;n++){const s=e.charCodeAt(n);if(92!==s){if(36===s){if(n++,n>=o)break;const s=e.charCodeAt(n);if(36===s){i.emitUnchanged(n-1),i.emitStatic("$",n+1);continue}if(48===s||38===s){i.emitUnchanged(n-1),i.emitMatchIndex(0,n+1,t),t.length=0;continue}if(49<=s&&s<=57){let r=s-48;if(n+1<o){const o=e.charCodeAt(n+1);if(48<=o&&o<=57){n++,r=10*r+(o-48),i.emitUnchanged(n-2),i.emitMatchIndex(r,n+1,t),t.length=0;continue}}i.emitUnchanged(n-1),i.emitMatchIndex(r,n+1,t),t.length=0;continue}}}else{if(n++,n>=o)break;const s=e.charCodeAt(n);switch(s){case 92:i.emitUnchanged(n-1),i.emitStatic("\\",n+1);break;case 110:i.emitUnchanged(n-1),i.emitStatic("\n",n+1);break;case 116:i.emitUnchanged(n-1),i.emitStatic("\t",n+1);break;case 117:case 85:case 108:case 76:i.emitUnchanged(n-1),i.emitStatic("",n+1),t.push(String.fromCharCode(s))}}}return i.finalize()}(this._state.replaceString):k.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;const e=this._getReplacePattern(),t=this._editor.getSelection(),i=this._getNextMatch(t.getStartPosition(),!0,!1);if(i)if(t.equalsRange(i.range)){const n=e.buildReplaceString(i.matches,this._state.preserveCase),o=new c.T4(t,n);this._executeEditorCommand("replace",o),this._decorations.setStartPosition(new d.L(t.startLineNumber,t.startColumn+n.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(i.range)}_findMatches(e,t,i){const n=(e||[null]).map((e=>te._getSearchRange(this._editor.getModel(),e)));return this._editor.getModel().findMatches(this._state.searchString,n,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(119):null,t,i)}replaceAll(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();null===e&&this._state.matchesCount>=ee?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}_largeReplaceAll(){const e=new g.bc(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(119):null).parseSearchRequest();if(!e)return;let t=e.regex;if(!t.multiline){let e="mu";t.ignoreCase&&(e+="i"),t.global&&(e+="g"),t=new RegExp(t.source,e)}const i=this._editor.getModel(),n=i.getValue(1),o=i.getFullModelRange(),s=this._getReplacePattern();let r;const a=this._state.preserveCase;r=s.hasReplacementPatterns||a?n.replace(t,(function(){return s.buildReplaceString(arguments,a)})):n.replace(t,s.buildReplaceString(null,a));const l=new c.hP(o,r,this._editor.getSelection());this._executeEditorCommand("replaceAll",l)}_regularReplaceAll(e){const t=this._getReplacePattern(),i=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),n=[];for(let s=0,r=i.length;s<r;s++)n[s]=t.buildReplaceString(i[s].matches,this._state.preserveCase);const o=new b(this._editor.getSelection(),i.map((e=>e.range)),n);this._executeEditorCommand("replaceAll",o)}selectAllMatches(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();let t=this._findMatches(e,!1,1073741824).map((e=>new u.Y(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn)));const i=this._editor.getSelection();for(let n=0,o=t.length;n<o;n++){if(t[n].equalsRange(i)){t=[i].concat(t.slice(0,n)).concat(t.slice(n+1));break}}this._editor.setSelections(t)}_executeEditorCommand(e,t){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(e,t),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}}var ie=i(65321),ne=i(51307),oe=i(93794);class se extends oe.${constructor(e,t,i,o){super(),this._hideSoon=this._register(new n.pY((()=>this._hide()),2e3)),this._isVisible=!1,this._editor=e,this._state=t,this._keybindingService=i,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");const s=o.getColorTheme().getColor(f.PRb),r=o.getColorTheme().getColor(f.Pvw),a=o.getColorTheme().getColor(f.XEs);this.caseSensitive=this._register(new ne.rk({appendTitle:this._keybindingLabelFor($),isChecked:this._state.matchCase,inputActiveOptionBorder:s,inputActiveOptionForeground:r,inputActiveOptionBackground:a})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange((()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)}))),this.wholeWords=this._register(new ne.Qx({appendTitle:this._keybindingLabelFor(q),isChecked:this._state.wholeWord,inputActiveOptionBorder:s,inputActiveOptionForeground:r,inputActiveOptionBackground:a})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange((()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)}))),this.regex=this._register(new ne.eH({appendTitle:this._keybindingLabelFor(G),isChecked:this._state.isRegex,inputActiveOptionBorder:s,inputActiveOptionForeground:r,inputActiveOptionBackground:a})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange((()=>{this._state.change({isRegex:this.regex.checked},!1)}))),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange((e=>{let t=!1;e.isRegex&&(this.regex.checked=this._state.isRegex,t=!0),e.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,t=!0),e.matchCase&&(this.caseSensitive.checked=this._state.matchCase,t=!0),!this._state.isRevealed&&t&&this._revealTemporarily()}))),this._register(ie.nm(this._domNode,ie.tw.MOUSE_LEAVE,(e=>this._onMouseLeave()))),this._register(ie.nm(this._domNode,"mouseover",(e=>this._onMouseOver()))),this._applyTheme(o.getColorTheme()),this._register(o.onDidColorThemeChange(this._applyTheme.bind(this)))}_keybindingLabelFor(e){const t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:""}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return se.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}_applyTheme(e){const t={inputActiveOptionBorder:e.getColor(f.PRb),inputActiveOptionForeground:e.getColor(f.Pvw),inputActiveOptionBackground:e.getColor(f.XEs)};this.caseSensitive.style(t),this.wholeWords.style(t),this.regex.style(t)}}se.ID="editor.contrib.findOptionsWidget",(0,_.Ic)(((e,t)=>{const i=e.getColor(f.D0T);i&&t.addRule(`.monaco-editor .findOptionsWidget { background-color: ${i}; }`);const n=e.getColor(f.Hfx);n&&t.addRule(`.monaco-editor .findOptionsWidget { color: ${n}; }`);const o=e.getColor(f.rh);o&&t.addRule(`.monaco-editor .findOptionsWidget { box-shadow: 0 0 8px 2px ${o}; }`);const s=e.getColor(f.lRK);s&&t.addRule(`.monaco-editor .findOptionsWidget { border: 2px solid ${s}; }`)}));var re=i(4669);function ae(e,t){return 1===e||2!==e&&t}class le extends o.JT{constructor(){super(),this._onFindReplaceStateChange=this._register(new re.Q5),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return ae(this._isRegexOverride,this._isRegex)}get wholeWord(){return ae(this._wholeWordOverride,this._wholeWord)}get matchCase(){return ae(this._matchCaseOverride,this._matchCase)}get preserveCase(){return ae(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}changeMatchInfo(e,t,i){const n={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let o=!1;0===t&&(e=0),e>t&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,n.matchesPosition=!0,o=!0),this._matchesCount!==t&&(this._matchesCount=t,n.matchesCount=!0,o=!0),void 0!==i&&(h.e.equalsRange(this._currentMatch,i)||(this._currentMatch=i,n.currentMatch=!0,o=!0)),o&&this._onFindReplaceStateChange.fire(n)}change(e,t,i=!0){var n;const o={moveCursor:t,updateHistory:i,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let s=!1;const r=this.isRegex,a=this.wholeWord,l=this.matchCase,c=this.preserveCase;void 0!==e.searchString&&this._searchString!==e.searchString&&(this._searchString=e.searchString,o.searchString=!0,s=!0),void 0!==e.replaceString&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,o.replaceString=!0,s=!0),void 0!==e.isRevealed&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,o.isRevealed=!0,s=!0),void 0!==e.isReplaceRevealed&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,o.isReplaceRevealed=!0,s=!0),void 0!==e.isRegex&&(this._isRegex=e.isRegex),void 0!==e.wholeWord&&(this._wholeWord=e.wholeWord),void 0!==e.matchCase&&(this._matchCase=e.matchCase),void 0!==e.preserveCase&&(this._preserveCase=e.preserveCase),void 0!==e.searchScope&&((null===(n=e.searchScope)||void 0===n?void 0:n.every((e=>{var t;return null===(t=this._searchScope)||void 0===t?void 0:t.some((t=>!h.e.equalsRange(t,e)))})))||(this._searchScope=e.searchScope,o.searchScope=!0,s=!0)),void 0!==e.loop&&this._loop!==e.loop&&(this._loop=e.loop,o.loop=!0,s=!0),void 0!==e.isSearching&&this._isSearching!==e.isSearching&&(this._isSearching=e.isSearching,o.isSearching=!0,s=!0),void 0!==e.filters&&(this._filters?this._filters.update(e.filters):this._filters=e.filters,o.filters=!0,s=!0),this._isRegexOverride=void 0!==e.isRegexOverride?e.isRegexOverride:0,this._wholeWordOverride=void 0!==e.wholeWordOverride?e.wholeWordOverride:0,this._matchCaseOverride=void 0!==e.matchCaseOverride?e.matchCaseOverride:0,this._preserveCaseOverride=void 0!==e.preserveCaseOverride?e.preserveCaseOverride:0,r!==this.isRegex&&(s=!0,o.isRegex=!0),a!==this.wholeWord&&(s=!0,o.wholeWord=!0),l!==this.matchCase&&(s=!0,o.matchCase=!0),c!==this.preserveCase&&(s=!0,o.preserveCase=!0),s&&this._onFindReplaceStateChange.fire(o)}canNavigateBack(){return this.canNavigateInLoop()||1!==this.matchesPosition}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}canNavigateInLoop(){return this._loop||this.matchesCount>=ee}}var ce=i(85152),de=i(82900),he=i(73098),ue=i(73046),ge=i(17301),pe=i(1432),me=i(63580),fe=i(37726);function _e(e){var t,i;return"Up"===(null===(t=e.lookupKeybinding("history.showPrevious"))||void 0===t?void 0:t.getElectronAccelerator())&&"Down"===(null===(i=e.lookupKeybinding("history.showNext"))||void 0===i?void 0:i.getElectronAccelerator())}var ve=i(59554),be=i(92321),Ce=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const we=(0,ve.q5)("find-selection",ue.lA.selection,me.NC("findSelectionIcon","Icon for 'Find in Selection' in the editor find widget.")),ye=(0,ve.q5)("find-collapsed",ue.lA.chevronRight,me.NC("findCollapsedIcon","Icon to indicate that the editor find widget is collapsed.")),Se=(0,ve.q5)("find-expanded",ue.lA.chevronDown,me.NC("findExpandedIcon","Icon to indicate that the editor find widget is expanded.")),Le=(0,ve.q5)("find-replace",ue.lA.replace,me.NC("findReplaceIcon","Icon for 'Replace' in the editor find widget.")),ke=(0,ve.q5)("find-replace-all",ue.lA.replaceAll,me.NC("findReplaceAllIcon","Icon for 'Replace All' in the editor find widget.")),xe=(0,ve.q5)("find-previous-match",ue.lA.arrowUp,me.NC("findPreviousMatchIcon","Icon for 'Find Previous' in the editor find widget.")),De=(0,ve.q5)("find-next-match",ue.lA.arrowDown,me.NC("findNextMatchIcon","Icon for 'Find Next' in the editor find widget.")),Ne=me.NC("label.find","Find"),Ee=me.NC("placeholder.find","Find"),Ie=me.NC("label.previousMatchButton","Previous Match"),Te=me.NC("label.nextMatchButton","Next Match"),Me=me.NC("label.toggleSelectionFind","Find in Selection"),Ae=me.NC("label.closeButton","Close"),Re=me.NC("label.replace","Replace"),Oe=me.NC("placeholder.replace","Replace"),Pe=me.NC("label.replaceButton","Replace"),Fe=me.NC("label.replaceAllButton","Replace All"),Be=me.NC("label.toggleReplaceButton","Toggle Replace"),Ve=me.NC("title.matchesCountLimit","Only the first {0} results are highlighted, but all find operations work on the entire text.",ee),We=me.NC("label.matchesLocation","{0} of {1}"),He=me.NC("label.noResults","No results"),ze=419;let je=69;const Ue="ctrlEnterReplaceAll.windows.donotask",Ke=pe.dz?256:2048;class $e{constructor(e){this.afterLineNumber=e,this.heightInPx=33,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function qe(e,t,i){const n=!!t.match(/\n/);i&&n&&i.selectionStart>0&&e.stopPropagation()}function Ge(e,t,i){const n=!!t.match(/\n/);i&&n&&i.selectionEnd<i.value.length&&e.stopPropagation()}class Qe extends oe.${constructor(e,t,i,s,r,a,l,c,d){super(),this._cachedHeight=null,this._revealTimeouts=[],this._codeEditor=e,this._controller=t,this._state=i,this._contextViewProvider=s,this._keybindingService=r,this._contextKeyService=a,this._storageService=c,this._notificationService=d,this._ctrlEnterReplaceAllWarningPrompted=!!c.getBoolean(Ue,0),this._isVisible=!1,this._isReplaceVisible=!1,this._ignoreChangeEvent=!1,this._updateHistoryDelayer=new n.vp(500),this._register((0,o.OF)((()=>this._updateHistoryDelayer.cancel()))),this._register(this._state.onFindReplaceStateChange((e=>this._onStateChanged(e)))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration((e=>{if(e.hasChanged(83)&&(this._codeEditor.getOption(83)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),e.hasChanged(133)&&this._tryUpdateWidgetWidth(),e.hasChanged(2)&&this.updateAccessibilitySupport(),e.hasChanged(37)){const e=this._codeEditor.getOption(37).addExtraSpaceOnTop;e&&!this._viewZone&&(this._viewZone=new $e(0),this._showViewZone()),!e&&this._viewZone&&this._removeViewZone()}}))),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection((()=>{this._isVisible&&this._updateToggleSelectionFindButton()}))),this._register(this._codeEditor.onDidFocusEditorWidget((()=>Ce(this,void 0,void 0,(function*(){if(this._isVisible){const e=yield this._controller.getGlobalBufferTerm();e&&e!==this._state.searchString&&(this._state.change({searchString:e},!1),this._findInput.select())}}))))),this._findInputFocused=I.bindTo(a),this._findFocusTracker=this._register(ie.go(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus((()=>{this._findInputFocused.set(!0),this._updateSearchScope()}))),this._register(this._findFocusTracker.onDidBlur((()=>{this._findInputFocused.set(!1)}))),this._replaceInputFocused=T.bindTo(a),this._replaceFocusTracker=this._register(ie.go(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus((()=>{this._replaceInputFocused.set(!0),this._updateSearchScope()}))),this._register(this._replaceFocusTracker.onDidBlur((()=>{this._replaceInputFocused.set(!1)}))),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(37).addExtraSpaceOnTop&&(this._viewZone=new $e(0)),this._applyTheme(l.getColorTheme()),this._register(l.onDidColorThemeChange(this._applyTheme.bind(this))),this._register(this._codeEditor.onDidChangeModel((()=>{this._isVisible&&(this._viewZoneId=void 0)}))),this._register(this._codeEditor.onDidScrollChange((e=>{e.scrollTopChanged?this._layoutViewZone():setTimeout((()=>{this._layoutViewZone()}),0)})))}getId(){return Qe.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(e){if(e.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(e.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),e.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),e.isReplaceRevealed&&(this._state.isReplaceRevealed?this._codeEditor.getOption(83)||this._isReplaceVisible||(this._isReplaceVisible=!0,this._replaceInput.width=ie.w(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(e.isRevealed||e.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),e.isRegex&&this._findInput.setRegex(this._state.isRegex),e.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),e.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),e.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),e.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),e.searchString||e.matchesCount||e.matchesPosition){const e=this._state.searchString.length>0&&0===this._state.matchesCount;this._domNode.classList.toggle("no-results",e),this._updateMatchesCount(),this._updateButtons()}(e.searchString||e.currentMatch)&&this._layoutViewZone(),e.updateHistory&&this._delayedUpdateHistory(),e.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,ge.dL)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){let e;if(this._matchesCount.style.minWidth=je+"px",this._state.matchesCount>=ee?this._matchesCount.title=Ve:this._matchesCount.title="",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild),this._state.matchesCount>0){let t=String(this._state.matchesCount);this._state.matchesCount>=ee&&(t+="+");let i=String(this._state.matchesPosition);"0"===i&&(i="?"),e=s.WU(We,i,t)}else e=He;this._matchesCount.appendChild(document.createTextNode(e)),(0,ce.Z9)(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString)),je=Math.max(je,this._matchesCount.clientWidth)}_getAriaLabel(e,t,i){if(e===He)return""===i?me.NC("ariaSearchNoResultEmpty","{0} found",e):me.NC("ariaSearchNoResult","{0} found for '{1}'",e,i);if(t){const n=me.NC("ariaSearchNoResultWithLineNum","{0} found for '{1}', at {2}",e,i,t.startLineNumber+":"+t.startColumn),o=this._codeEditor.getModel();if(o&&t.startLineNumber<=o.getLineCount()&&t.startLineNumber>=1){return`${o.getLineContent(t.startLineNumber)}, ${n}`}return n}return me.NC("ariaSearchNoResultWithLineNumNoCurrentMatch","{0} found for '{1}'",e,i)}_updateToggleSelectionFindButton(){const e=this._codeEditor.getSelection(),t=!!e&&(e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn),i=this._toggleSelectionFind.checked;this._isVisible&&(i||t)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);const e=this._state.searchString.length>0,t=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);const i=!this._codeEditor.getOption(83);this._toggleReplaceBtn.setEnabled(this._isVisible&&i)}_reveal(){if(this._revealTimeouts.forEach((e=>{clearTimeout(e)})),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;const e=this._codeEditor.getSelection();switch(this._codeEditor.getOption(37).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":{const t=!!e&&e.startLineNumber!==e.endLineNumber;this._toggleSelectionFind.checked=t;break}}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout((()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false")}),0)),this._revealTimeouts.push(setTimeout((()=>{this._findInput.validate()}),200)),this._codeEditor.layoutOverlayWidget(this);let t=!0;if(this._codeEditor.getOption(37).seedSearchStringFromSelection&&e){const i=this._codeEditor.getDomNode();if(i){const n=ie.i(i),o=this._codeEditor.getScrolledVisiblePosition(e.getStartPosition()),s=n.left+(o?o.left:0),r=o?o.top:0;if(this._viewZone&&r<this._viewZone.heightInPx){e.endLineNumber>e.startLineNumber&&(t=!1);const i=ie.xQ(this._domNode).left;s>i&&(t=!1);const o=this._codeEditor.getScrolledVisiblePosition(e.getEndPosition());n.left+(o?o.left:0)>i&&(t=!1)}}}this._showViewZone(t)}}_hide(e){this._revealTimeouts.forEach((e=>{clearTimeout(e)})),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),e&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}_layoutViewZone(e){if(!this._codeEditor.getOption(37).addExtraSpaceOnTop)return void this._removeViewZone();if(!this._isVisible)return;const t=this._viewZone;void 0===this._viewZoneId&&t&&this._codeEditor.changeViewZones((i=>{t.heightInPx=this._getHeight(),this._viewZoneId=i.addZone(t),this._codeEditor.setScrollTop(e||this._codeEditor.getScrollTop()+t.heightInPx)}))}_showViewZone(e=!0){if(!this._isVisible)return;if(!this._codeEditor.getOption(37).addExtraSpaceOnTop)return;void 0===this._viewZone&&(this._viewZone=new $e(0));const t=this._viewZone;this._codeEditor.changeViewZones((i=>{if(void 0!==this._viewZoneId){const n=this._getHeight();if(n===t.heightInPx)return;const o=n-t.heightInPx;return t.heightInPx=n,i.layoutZone(this._viewZoneId),void(e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+o))}{let n=this._getHeight();if(n-=this._codeEditor.getOption(77).top,n<=0)return;t.heightInPx=n,this._viewZoneId=i.addZone(t),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+n)}}))}_removeViewZone(){this._codeEditor.changeViewZones((e=>{void 0!==this._viewZoneId&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0))}))}_applyTheme(e){const t={inputActiveOptionBorder:e.getColor(f.PRb),inputActiveOptionBackground:e.getColor(f.XEs),inputActiveOptionForeground:e.getColor(f.Pvw),inputBackground:e.getColor(f.sEe),inputForeground:e.getColor(f.zJb),inputBorder:e.getColor(f.dt_),inputValidationInfoBackground:e.getColor(f._lC),inputValidationInfoForeground:e.getColor(f.YI3),inputValidationInfoBorder:e.getColor(f.EPQ),inputValidationWarningBackground:e.getColor(f.RV_),inputValidationWarningForeground:e.getColor(f.SUG),inputValidationWarningBorder:e.getColor(f.C3g),inputValidationErrorBackground:e.getColor(f.paE),inputValidationErrorForeground:e.getColor(f._t9),inputValidationErrorBorder:e.getColor(f.OZR)};this._findInput.style(t),this._replaceInput.style(t),this._toggleSelectionFind.style(t)}_tryUpdateWidgetWidth(){if(!this._isVisible)return;if(!ie.Uw(this._domNode))return;const e=this._codeEditor.getLayoutInfo();if(e.contentWidth<=0)return void this._domNode.classList.add("hiddenEditor");this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");const t=e.width,i=e.minimap.minimapWidth;let n=!1,o=!1,s=!1;if(this._resized){if(ie.w(this._domNode)>ze)return this._domNode.style.maxWidth=t-28-i-15+"px",void(this._replaceInput.width=ie.w(this._findInput.domNode))}if(447+i>=t&&(o=!0),447+i-je>=t&&(s=!0),447+i-je>=t+50&&(n=!0),this._domNode.classList.toggle("collapsed-find-widget",n),this._domNode.classList.toggle("narrow-find-widget",s),this._domNode.classList.toggle("reduced-find-widget",o),s||n||(this._domNode.style.maxWidth=t-28-i-15+"px"),this._resized){this._findInput.inputBox.layout();const e=this._findInput.inputBox.element.clientWidth;e>0&&(this._replaceInput.width=e)}else this._isReplaceVisible&&(this._replaceInput.width=ie.w(this._findInput.domNode))}_getHeight(){let e=0;return e+=4,e+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(e+=4,e+=this._replaceInput.inputBox.height+2),e+=4,e}_tryUpdateHeight(){const e=this._getHeight();return(null===this._cachedHeight||this._cachedHeight!==e)&&(this._cachedHeight=e,this._domNode.style.height=`${e}px`,!0)}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){const e=this._codeEditor.getSelections();e.map((e=>{1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(e.endLineNumber-1)));const t=this._state.currentMatch;return e.startLineNumber===e.endLineNumber||h.e.equalsRange(e,t)?null:e})).filter((e=>!!e)),e.length&&this._state.change({searchScope:e},!0)}}_onFindInputMouseDown(e){e.middleButton&&e.stopPropagation()}_onFindInputKeyDown(e){return e.equals(3|Ke)?(this._keybindingService.dispatchEvent(e,e.target)||this._findInput.inputBox.insertAtCursor("\n"),void e.preventDefault()):e.equals(2)?(this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),void e.preventDefault()):e.equals(16)?qe(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):e.equals(18)?Ge(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):void 0}_onReplaceInputKeyDown(e){return e.equals(3|Ke)?(this._keybindingService.dispatchEvent(e,e.target)||(pe.ED&&pe.tY&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(me.NC("ctrlEnter.keybindingChanged","Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.")),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(Ue,!0,0,0)),this._replaceInput.inputBox.insertAtCursor("\n")),void e.preventDefault()):e.equals(2)?(this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(1026)?(this._findInput.focus(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),void e.preventDefault()):e.equals(16)?qe(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea")):e.equals(18)?Ge(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea")):void 0}getVerticalSashLeft(e){return 0}_keybindingLabelFor(e){const t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:""}_buildDomNode(){this._findInput=this._register(new fe.Yb(null,this._contextViewProvider,{width:221,label:Ne,placeholder:Ee,appendCaseSensitiveLabel:this._keybindingLabelFor($),appendWholeWordsLabel:this._keybindingLabelFor(q),appendRegexLabel:this._keybindingLabelFor(G),validation:e=>{if(0===e.length||!this._findInput.getRegex())return null;try{return new RegExp(e,"gu"),null}catch(t){return{content:t.message}}},flexibleHeight:true,flexibleWidth:true,flexibleMaxHeight:118,showHistoryHint:()=>_e(this._keybindingService)},this._contextKeyService,!0)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown((e=>this._onFindInputKeyDown(e)))),this._register(this._findInput.inputBox.onDidChange((()=>{this._ignoreChangeEvent||this._state.change({searchString:this._findInput.getValue()},!0)}))),this._register(this._findInput.onDidOptionChange((()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)}))),this._register(this._findInput.onCaseSensitiveKeyDown((e=>{e.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),e.preventDefault())}))),this._register(this._findInput.onRegexKeyDown((e=>{e.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),e.preventDefault())}))),this._register(this._findInput.inputBox.onDidHeightChange((e=>{this._tryUpdateHeight()&&this._showViewZone()}))),pe.IJ&&this._register(this._findInput.onMouseDown((e=>this._onFindInputMouseDown(e)))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount(),this._prevBtn=this._register(new Ze({label:Ie+this._keybindingLabelFor(H),icon:xe,onTrigger:()=>{this._codeEditor.getAction(H).run().then(void 0,ge.dL)}})),this._nextBtn=this._register(new Ze({label:Te+this._keybindingLabelFor(W),icon:De,onTrigger:()=>{this._codeEditor.getAction(W).run().then(void 0,ge.dL)}}));const e=document.createElement("div");e.className="find-part",e.appendChild(this._findInput.domNode);const t=document.createElement("div");t.className="find-actions",e.appendChild(t),t.appendChild(this._matchesCount),t.appendChild(this._prevBtn.domNode),t.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new de.Z({icon:we,title:Me+this._keybindingLabelFor(Q),isChecked:!1})),this._register(this._toggleSelectionFind.onChange((()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){const e=this._codeEditor.getSelections();e.map((e=>(1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(e.endLineNumber-1))),e.isEmpty()?null:e))).filter((e=>!!e)),e.length&&this._state.change({searchScope:e},!0)}}else this._state.change({searchScope:null},!0)}))),t.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new Ze({label:Ae+this._keybindingLabelFor(K),icon:ve.s_,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:e=>{e.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),e.preventDefault())}})),t.appendChild(this._closeBtn.domNode),this._replaceInput=this._register(new fe.Nq(null,void 0,{label:Re,placeholder:Oe,appendPreserveCaseLabel:this._keybindingLabelFor(Z),history:[],flexibleHeight:true,flexibleWidth:true,flexibleMaxHeight:118,showHistoryHint:()=>_e(this._keybindingService)},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown((e=>this._onReplaceInputKeyDown(e)))),this._register(this._replaceInput.inputBox.onDidChange((()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)}))),this._register(this._replaceInput.inputBox.onDidHeightChange((e=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()}))),this._register(this._replaceInput.onDidOptionChange((()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)}))),this._register(this._replaceInput.onPreserveCaseKeyDown((e=>{e.equals(2)&&(this._prevBtn.isEnabled()?this._prevBtn.focus():this._nextBtn.isEnabled()?this._nextBtn.focus():this._toggleSelectionFind.enabled?this._toggleSelectionFind.focus():this._closeBtn.isEnabled()&&this._closeBtn.focus(),e.preventDefault())}))),this._replaceBtn=this._register(new Ze({label:Pe+this._keybindingLabelFor(Y),icon:Le,onTrigger:()=>{this._controller.replace()},onKeyDown:e=>{e.equals(1026)&&(this._closeBtn.focus(),e.preventDefault())}})),this._replaceAllBtn=this._register(new Ze({label:Fe+this._keybindingLabelFor(J),icon:ke,onTrigger:()=>{this._controller.replaceAll()}}));const i=document.createElement("div");i.className="replace-part",i.appendChild(this._replaceInput.domNode);const n=document.createElement("div");n.className="replace-actions",i.appendChild(n),n.appendChild(this._replaceBtn.domNode),n.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new Ze({label:Be,className:"codicon toggle left",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=ie.w(this._findInput.domNode),this._replaceInput.inputBox.layout()),this._showViewZone()}})),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.style.width="419px",this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(e),this._domNode.appendChild(i),this._resizeSash=new he.g(this._domNode,this,{orientation:0,size:2}),this._resized=!1;let o=ze;this._register(this._resizeSash.onDidStart((()=>{o=ie.w(this._domNode)}))),this._register(this._resizeSash.onDidChange((e=>{this._resized=!0;const t=o+e.startX-e.currentX;if(t<ze)return;t>(parseFloat(ie.Dx(this._domNode).maxWidth)||0)||(this._domNode.style.width=`${t}px`,this._isReplaceVisible&&(this._replaceInput.width=ie.w(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())}))),this._register(this._resizeSash.onDidReset((()=>{const e=ie.w(this._domNode);if(e<ze)return;let t=ze;if(!this._resized||e===ze){const e=this._codeEditor.getLayoutInfo();t=e.width-28-e.minimap.minimapWidth-15,this._resized=!0}this._domNode.style.width=`${t}px`,this._isReplaceVisible&&(this._replaceInput.width=ie.w(this._findInput.domNode)),this._findInput.inputBox.layout()})))}updateAccessibilitySupport(){const e=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(2!==e)}}Qe.ID="editor.contrib.findWidget";class Ze extends oe.${constructor(e){super(),this._opts=e;let t="button";this._opts.className&&(t=t+" "+this._opts.className),this._opts.icon&&(t=t+" "+_.kS.asClassName(this._opts.icon)),this._domNode=document.createElement("div"),this._domNode.title=this._opts.label,this._domNode.tabIndex=0,this._domNode.className=t,this._domNode.setAttribute("role","button"),this._domNode.setAttribute("aria-label",this._opts.label),this.onclick(this._domNode,(e=>{this._opts.onTrigger(),e.preventDefault()})),this.onkeydown(this._domNode,(e=>{var t,i;if(e.equals(10)||e.equals(3))return this._opts.onTrigger(),void e.preventDefault();null===(i=(t=this._opts).onKeyDown)||void 0===i||i.call(t,e)}))}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(e){this._domNode.classList.toggle("disabled",!e),this._domNode.setAttribute("aria-disabled",String(!e)),this._domNode.tabIndex=e?0:-1}setExpanded(e){this._domNode.setAttribute("aria-expanded",String(!!e)),e?(this._domNode.classList.remove(..._.kS.asClassNameArray(ye)),this._domNode.classList.add(..._.kS.asClassNameArray(Se))):(this._domNode.classList.remove(..._.kS.asClassNameArray(Se)),this._domNode.classList.add(..._.kS.asClassNameArray(ye)))}}(0,_.Ic)(((e,t)=>{const i=(e,i)=>{i&&t.addRule(`.monaco-editor ${e} { background-color: ${i}; }`)};i(".findMatch",e.getColor(f.MUv)),i(".currentFindMatch",e.getColor(f.nyM)),i(".findScope",e.getColor(f.jUe));i(".find-widget",e.getColor(f.D0T));const n=e.getColor(f.rh);n&&t.addRule(`.monaco-editor .find-widget { box-shadow: 0 0 8px 2px ${n}; }`);const o=e.getColor(f.EiJ);o&&t.addRule(`.monaco-editor .findMatch { border: 1px ${(0,be.c3)(e.type)?"dotted":"solid"} ${o}; box-sizing: border-box; }`);const s=e.getColor(f.pnM);s&&t.addRule(`.monaco-editor .currentFindMatch { border: 2px solid ${s}; padding: 1px; box-sizing: border-box; }`);const r=e.getColor(f.gkn);r&&t.addRule(`.monaco-editor .findScope { border: 1px ${(0,be.c3)(e.type)?"dashed":"solid"} ${r}; }`);const a=e.getColor(f.lRK);a&&t.addRule(`.monaco-editor .find-widget { border: 1px solid ${a}; }`);const l=e.getColor(f.Hfx);l&&t.addRule(`.monaco-editor .find-widget { color: ${l}; }`);const c=e.getColor(f.Ido);c&&t.addRule(`.monaco-editor .find-widget.no-results .matchesCount { color: ${c}; }`);const d=e.getColor(f.Ng6);if(d)t.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${d}; }`);else{const i=e.getColor(f.D1_);i&&t.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${i}; }`)}const h=e.getColor(f.lUq);h&&t.addRule(`\n\t\t.monaco-editor .find-widget .button:not(.disabled):hover,\n\t\t.monaco-editor .find-widget .codicon-find-selection:hover {\n\t\t\tbackground-color: ${h} !important;\n\t\t}\n\t`);const u=e.getColor(f.R80);u&&t.addRule(`.monaco-editor .find-widget .monaco-inputbox.synthetic-focus { outline-color: ${u}; }`)}));var Ye=i(84144),Je=i(84972),Xe=i(5606),et=i(91847),tt=i(59422),it=i(87060),nt=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ot=function(e,t){return function(i,n){t(i,n,e)}},st=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};function rt(e,t="single",i=!1){if(!e.hasModel())return null;const n=e.getSelection();if("single"===t&&n.startLineNumber===n.endLineNumber||"multiple"===t)if(n.isEmpty()){const t=e.getConfiguredWordAtPosition(n.getStartPosition());if(t&&!1===i)return t.word}else if(e.getModel().getValueLengthInRange(n)<524288)return e.getModel().getValueInRange(n);return null}let at=class e extends o.JT{constructor(e,t,i,o){super(),this._editor=e,this._findWidgetVisible=E.bindTo(t),this._contextKeyService=t,this._storageService=i,this._clipboardService=o,this._updateHistoryDelayer=new n.vp(500),this._state=this._register(new le),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange((e=>this._onStateChanged(e)))),this._model=null,this._register(this._editor.onDidChangeModel((()=>{const e=this._editor.getModel()&&this._state.isRevealed;this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),e&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(37).loop})})))}get editor(){return this._editor}static get(t){return t.getContribution(e.ID)}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(e){this.saveQueryState(e),e.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),e.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(e){e.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,0),e.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,0),e.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,0),e.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,0)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!I.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){const e=this._editor.getSelections();e.map((e=>(1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._editor.getModel().getLineMaxColumn(e.endLineNumber-1))),e.isEmpty()?null:e))).filter((e=>!!e)),e.length&&this._state.change({searchScope:e},!0)}}setSearchString(e){this._state.isRegex&&(e=s.ec(e)),this._state.change({searchString:e},!1)}highlightFindOptions(e=!1){}_start(e,t){return st(this,void 0,void 0,(function*(){if(this.disposeModel(),!this._editor.hasModel())return;const i=Object.assign(Object.assign({},t),{isRevealed:!0});if("single"===e.seedSearchStringFromSelection){const t=rt(this._editor,e.seedSearchStringFromSelection,e.seedSearchStringFromNonEmptySelection);t&&(this._state.isRegex?i.searchString=s.ec(t):i.searchString=t)}else if("multiple"===e.seedSearchStringFromSelection&&!e.updateSearchScope){const t=rt(this._editor,e.seedSearchStringFromSelection);t&&(i.searchString=t)}if(!i.searchString&&e.seedSearchStringFromGlobalClipboard){const e=yield this.getGlobalBufferTerm();if(!this._editor.hasModel())return;e&&(i.searchString=e)}if(e.forceRevealReplace||i.isReplaceRevealed?i.isReplaceRevealed=!0:this._findWidgetVisible.get()||(i.isReplaceRevealed=!1),e.updateSearchScope){const e=this._editor.getSelections();e.some((e=>!e.isEmpty()))&&(i.searchScope=e)}i.loop=e.loop,this._state.change(i,!1),this._model||(this._model=new te(this._editor,this._state))}))}start(e,t){return this._start(e,t)}moveToNextMatch(){return!!this._model&&(this._model.moveToNextMatch(),!0)}moveToPrevMatch(){return!!this._model&&(this._model.moveToPrevMatch(),!0)}replace(){return!!this._model&&(this._model.replace(),!0)}replaceAll(){return!!this._model&&(this._model.replaceAll(),!0)}selectAllMatches(){return!!this._model&&(this._model.selectAllMatches(),this._editor.focus(),!0)}getGlobalBufferTerm(){return st(this,void 0,void 0,(function*(){return this._editor.getOption(37).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""}))}setGlobalBufferTerm(e){this._editor.getOption(37).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)}};at.ID="editor.contrib.findController",at=nt([ot(1,N.i6),ot(2,it.Uy),ot(3,Je.p)],at);let lt=class extends at{constructor(e,t,i,n,o,s,r,a){super(e,i,r,a),this._contextViewService=t,this._keybindingService=n,this._themeService=o,this._notificationService=s,this._widget=null,this._findOptionsWidget=null}_start(e,t){const i=Object.create(null,{_start:{get:()=>super._start}});return st(this,void 0,void 0,(function*(){this._widget||this._createFindWidget();const n=this._editor.getSelection();let o=!1;switch(this._editor.getOption(37).autoFindInSelection){case"always":o=!0;break;case"never":o=!1;break;case"multiline":o=!!n&&n.startLineNumber!==n.endLineNumber;break}e.updateSearchScope=e.updateSearchScope||o,yield i._start.call(this,e,t),this._widget&&(2===e.shouldFocus?this._widget.focusReplaceInput():1===e.shouldFocus&&this._widget.focusFindInput())}))}highlightFindOptions(e=!1){this._widget||this._createFindWidget(),this._state.isRevealed&&!e?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new Qe(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService)),this._findOptionsWidget=this._register(new se(this._editor,this._state,this._keybindingService,this._themeService))}};lt=nt([ot(1,Xe.u),ot(2,N.i6),ot(3,et.d),ot(4,_.XE),ot(5,tt.lT),ot(6,it.Uy),ot(7,Je.p)],lt);(0,r.rn)(new r.jY({id:F,label:me.NC("startFindAction","Find"),alias:"Find",precondition:N.Ao.or(a.u.focus,N.Ao.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:Ye.eH.MenubarEditMenu,group:"3_find",title:me.NC({key:"miFind",comment:["&& denotes a mnemonic"]},"&&Find"),order:1}})).addImplementation(0,((e,t,i)=>{const n=at.get(t);return!!n&&n.start({forceRevealReplace:!1,seedSearchStringFromSelection:"never"!==t.getOption(37).seedSearchStringFromSelection?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===t.getOption(37).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:t.getOption(37).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(37).loop})}));const ct={description:"Open a new In-Editor Find Widget.",args:[{name:"Open a new In-Editor Find Widget args",schema:{properties:{searchString:{type:"string"},replaceString:{type:"string"},regex:{type:"boolean"},regexOverride:{type:"number",description:me.NC("actions.find.isRegexOverride",'Overrides "Use Regular Expression" flag.\nThe flag will not be saved for the future.\n0: Do Nothing\n1: True\n2: False')},wholeWord:{type:"boolean"},wholeWordOverride:{type:"number",description:me.NC("actions.find.wholeWordOverride",'Overrides "Match Whole Word" flag.\nThe flag will not be saved for the future.\n0: Do Nothing\n1: True\n2: False')},matchCase:{type:"boolean"},matchCaseOverride:{type:"number",description:me.NC("actions.find.matchCaseOverride",'Overrides "Math Case" flag.\nThe flag will not be saved for the future.\n0: Do Nothing\n1: True\n2: False')},preserveCase:{type:"boolean"},preserveCaseOverride:{type:"number",description:me.NC("actions.find.preserveCaseOverride",'Overrides "Preserve Case" flag.\nThe flag will not be saved for the future.\n0: Do Nothing\n1: True\n2: False')},findInSelection:{type:"boolean"}}}}]};class dt extends r.R6{constructor(){super({id:V,label:me.NC("startFindWithArgsAction","Find With Arguments"),alias:"Find With Arguments",precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},description:ct})}run(e,t,i){return st(this,void 0,void 0,(function*(){const e=at.get(t);if(e){const n=i?{searchString:i.searchString,replaceString:i.replaceString,isReplaceRevealed:void 0!==i.replaceString,isRegex:i.isRegex,wholeWord:i.matchWholeWord,matchCase:i.isCaseSensitive,preserveCase:i.preserveCase}:{};yield e.start({forceRevealReplace:!1,seedSearchStringFromSelection:0===e.getState().searchString.length&&"never"!==t.getOption(37).seedSearchStringFromSelection?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===t.getOption(37).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:(null==i?void 0:i.findInSelection)||!1,loop:t.getOption(37).loop},n),e.setGlobalBufferTerm(e.getState().searchString)}}))}}class ht extends r.R6{constructor(){super({id:B,label:me.NC("startFindWithSelectionAction","Find With Selection"),alias:"Find With Selection",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}run(e,t){return st(this,void 0,void 0,(function*(){const e=at.get(t);e&&(yield e.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(37).loop}),e.setGlobalBufferTerm(e.getState().searchString))}))}}class ut extends r.R6{run(e,t){return st(this,void 0,void 0,(function*(){const e=at.get(t);e&&!this._run(e)&&(yield e.start({forceRevealReplace:!1,seedSearchStringFromSelection:0===e.getState().searchString.length&&"never"!==t.getOption(37).seedSearchStringFromSelection?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===t.getOption(37).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(37).loop}),this._run(e))}))}}class gt extends r.R6{run(e,t){return st(this,void 0,void 0,(function*(){const e=at.get(t);if(!e)return;const i="selection"===t.getOption(37).seedSearchStringFromSelection;let n=null;"never"!==t.getOption(37).seedSearchStringFromSelection&&(n=rt(t,"single",i)),n&&e.setSearchString(n),this._run(e)||(yield e.start({forceRevealReplace:!1,seedSearchStringFromSelection:"never"!==t.getOption(37).seedSearchStringFromSelection?"single":"none",seedSearchStringFromNonEmptySelection:i,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(37).loop}),this._run(e))}))}}(0,r.rn)(new r.jY({id:U,label:me.NC("startReplace","Replace"),alias:"Replace",precondition:N.Ao.or(a.u.focus,N.Ao.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:Ye.eH.MenubarEditMenu,group:"3_find",title:me.NC({key:"miReplace",comment:["&& denotes a mnemonic"]},"&&Replace"),order:2}})).addImplementation(0,((e,t,i)=>{if(!t.hasModel()||t.getOption(83))return!1;const n=at.get(t);if(!n)return!1;const o=t.getSelection(),s=n.isFindInputFocused(),r=!o.isEmpty()&&o.startLineNumber===o.endLineNumber&&"never"!==t.getOption(37).seedSearchStringFromSelection&&!s,a=s||r?2:1;return n.start({forceRevealReplace:!0,seedSearchStringFromSelection:r?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===t.getOption(37).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:"never"!==t.getOption(37).seedSearchStringFromSelection,shouldFocus:a,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(37).loop})})),(0,r._K)(at.ID,lt),(0,r.Qr)(dt),(0,r.Qr)(ht),(0,r.Qr)(class extends ut{constructor(){super({id:W,label:me.NC("findNextMatchAction","Find Next"),alias:"Find Next",precondition:void 0,kbOpts:[{kbExpr:a.u.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:N.Ao.and(a.u.focus,I),primary:3,weight:100}]})}_run(e){return!!e.moveToNextMatch()&&(e.editor.pushUndoStop(),!0)}}),(0,r.Qr)(class extends ut{constructor(){super({id:H,label:me.NC("findPreviousMatchAction","Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:[{kbExpr:a.u.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:N.Ao.and(a.u.focus,I),primary:1027,weight:100}]})}_run(e){return e.moveToPrevMatch()}}),(0,r.Qr)(class extends gt{constructor(){super({id:z,label:me.NC("nextSelectionMatchFindAction","Find Next Selection"),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:a.u.focus,primary:2109,weight:100}})}_run(e){return e.moveToNextMatch()}}),(0,r.Qr)(class extends gt{constructor(){super({id:j,label:me.NC("previousSelectionMatchFindAction","Find Previous Selection"),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:a.u.focus,primary:3133,weight:100}})}_run(e){return e.moveToPrevMatch()}});const pt=r._l.bindToContribution(at.get);(0,r.fK)(new pt({id:K,precondition:E,handler:e=>e.closeFindWidget(),kbOpts:{weight:105,kbExpr:N.Ao.and(a.u.focus,N.Ao.not("isComposing")),primary:9,secondary:[1033]}})),(0,r.fK)(new pt({id:$,precondition:void 0,handler:e=>e.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:a.u.focus,primary:M.primary,mac:M.mac,win:M.win,linux:M.linux}})),(0,r.fK)(new pt({id:q,precondition:void 0,handler:e=>e.toggleWholeWords(),kbOpts:{weight:105,kbExpr:a.u.focus,primary:A.primary,mac:A.mac,win:A.win,linux:A.linux}})),(0,r.fK)(new pt({id:G,precondition:void 0,handler:e=>e.toggleRegex(),kbOpts:{weight:105,kbExpr:a.u.focus,primary:R.primary,mac:R.mac,win:R.win,linux:R.linux}})),(0,r.fK)(new pt({id:Q,precondition:void 0,handler:e=>e.toggleSearchScope(),kbOpts:{weight:105,kbExpr:a.u.focus,primary:O.primary,mac:O.mac,win:O.win,linux:O.linux}})),(0,r.fK)(new pt({id:Z,precondition:void 0,handler:e=>e.togglePreserveCase(),kbOpts:{weight:105,kbExpr:a.u.focus,primary:P.primary,mac:P.mac,win:P.win,linux:P.linux}})),(0,r.fK)(new pt({id:Y,precondition:E,handler:e=>e.replace(),kbOpts:{weight:105,kbExpr:a.u.focus,primary:3094}})),(0,r.fK)(new pt({id:Y,precondition:E,handler:e=>e.replace(),kbOpts:{weight:105,kbExpr:N.Ao.and(a.u.focus,T),primary:3}})),(0,r.fK)(new pt({id:J,precondition:E,handler:e=>e.replaceAll(),kbOpts:{weight:105,kbExpr:a.u.focus,primary:2563}})),(0,r.fK)(new pt({id:J,precondition:E,handler:e=>e.replaceAll(),kbOpts:{weight:105,kbExpr:N.Ao.and(a.u.focus,T),primary:void 0,mac:{primary:2051}}})),(0,r.fK)(new pt({id:X,precondition:E,handler:e=>e.selectAllMatches(),kbOpts:{weight:105,kbExpr:a.u.focus,primary:515}}))},40714:(e,t,i)=>{"use strict";var n=i(15393),o=i(17301),s=i(22258),r=i(5976),a=i(97295),l=i(98401),c=i(43407),d=i(16830),h=i(29102),u=i(43155),g=i(4256),p=i(4669);const m=16777215,f=4278190080;class _{constructor(e){const t=Math.ceil(e/32);this._states=new Uint32Array(t)}get(e){const t=e/32|0,i=e%32;return 0!=(this._states[t]&1<<i)}set(e,t){const i=e/32|0,n=e%32,o=this._states[i];this._states[i]=t?o|1<<n:o&~(1<<n)}}class v{constructor(e,t,i){if(this.sourceAbbr={0:" ",1:"u",2:"r"},e.length!==t.length||e.length>65535)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=e,this._endIndexes=t,this._collapseStates=new _(e.length),this._userDefinedStates=new _(e.length),this._recoveredStates=new _(e.length),this._types=i,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;const e=[],t=(t,i)=>{const n=e[e.length-1];return this.getStartLineNumber(n)<=t&&this.getEndLineNumber(n)>=i};for(let i=0,n=this._startIndexes.length;i<n;i++){const n=this._startIndexes[i],o=this._endIndexes[i];if(n>m||o>m)throw new Error("startLineNumber or endLineNumber must not exceed 16777215");for(;e.length>0&&!t(n,o);)e.pop();const s=e.length>0?e[e.length-1]:-1;e.push(i),this._startIndexes[i]=n+((255&s)<<24),this._endIndexes[i]=o+((65280&s)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(e){return this._startIndexes[e]&m}getEndLineNumber(e){return this._endIndexes[e]&m}getType(e){return this._types?this._types[e]:void 0}hasTypes(){return!!this._types}isCollapsed(e){return this._collapseStates.get(e)}setCollapsed(e,t){this._collapseStates.set(e,t)}isUserDefined(e){return this._userDefinedStates.get(e)}setUserDefined(e,t){return this._userDefinedStates.set(e,t)}isRecovered(e){return this._recoveredStates.get(e)}setRecovered(e,t){return this._recoveredStates.set(e,t)}getSource(e){return this.isUserDefined(e)?1:this.isRecovered(e)?2:0}setSource(e,t){1===t?(this.setUserDefined(e,!0),this.setRecovered(e,!1)):2===t?(this.setUserDefined(e,!1),this.setRecovered(e,!0)):(this.setUserDefined(e,!1),this.setRecovered(e,!1))}setCollapsedAllOfType(e,t){let i=!1;if(this._types)for(let n=0;n<this._types.length;n++)this._types[n]===e&&(this.setCollapsed(n,t),i=!0);return i}toRegion(e){return new b(this,e)}getParentIndex(e){this.ensureParentIndices();const t=((this._startIndexes[e]&f)>>>24)+((this._endIndexes[e]&f)>>>16);return 65535===t?-1:t}contains(e,t){return this.getStartLineNumber(e)<=t&&this.getEndLineNumber(e)>=t}findIndex(e){let t=0,i=this._startIndexes.length;if(0===i)return-1;for(;t<i;){const n=Math.floor((t+i)/2);e<this.getStartLineNumber(n)?i=n:t=n+1}return t-1}findRange(e){let t=this.findIndex(e);if(t>=0){if(this.getEndLineNumber(t)>=e)return t;for(t=this.getParentIndex(t);-1!==t;){if(this.contains(t,e))return t;t=this.getParentIndex(t)}}return-1}toString(){const e=[];for(let t=0;t<this.length;t++)e[t]=`[${this.sourceAbbr[this.getSource(t)]}${this.isCollapsed(t)?"+":"-"}] ${this.getStartLineNumber(t)}/${this.getEndLineNumber(t)}`;return e.join(", ")}toFoldRange(e){return{startLineNumber:this._startIndexes[e]&m,endLineNumber:this._endIndexes[e]&m,type:this._types?this._types[e]:void 0,isCollapsed:this.isCollapsed(e),source:this.getSource(e)}}static fromFoldRanges(e){const t=e.length,i=new Uint32Array(t),n=new Uint32Array(t);let o=[],s=!1;for(let a=0;a<t;a++){const t=e[a];i[a]=t.startLineNumber,n[a]=t.endLineNumber,o.push(t.type),t.type&&(s=!0)}s||(o=void 0);const r=new v(i,n,o);for(let a=0;a<t;a++)e[a].isCollapsed&&r.setCollapsed(a,!0),r.setSource(a,e[a].source);return r}static sanitizeAndMerge(e,t,i){i=null!=i?i:Number.MAX_VALUE;const n=(e,t)=>Array.isArray(e)?i=>i<t?e[i]:void 0:i=>i<t?e.toFoldRange(i):void 0,o=n(e,e.length),s=n(t,t.length);let r=0,a=0,l=o(0),c=s(0);const d=[];let h,u=0;const g=[];for(;l||c;){let e;if(c&&(!l||l.startLineNumber>=c.startLineNumber))l&&l.startLineNumber===c.startLineNumber?(1===c.source?e=c:(e=l,e.isCollapsed=c.isCollapsed&&l.endLineNumber===c.endLineNumber,e.source=0),l=o(++r)):(e=c,c.isCollapsed&&0===c.source&&(e.source=2)),c=s(++a);else{let t=a,i=c;for(;;){if(!i||i.startLineNumber>l.endLineNumber){e=l;break}if(1===i.source&&i.endLineNumber>l.endLineNumber)break;i=s(++t)}l=o(++r)}if(e){for(;h&&h.endLineNumber<e.startLineNumber;)h=d.pop();e.endLineNumber>e.startLineNumber&&e.startLineNumber>u&&e.endLineNumber<=i&&(!h||h.endLineNumber>=e.endLineNumber)&&(g.push(e),u=e.startLineNumber,h&&d.push(h),h=e)}}return g}}class b{constructor(e,t){this.ranges=e,this.index=t}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(e){return e.startLineNumber<=this.startLineNumber&&e.endLineNumber>=this.endLineNumber}containsLine(e){return this.startLineNumber<=e&&e<=this.endLineNumber}}var C=i(89954);class w{constructor(e,t){this._updateEventEmitter=new p.Q5,this.onDidChange=this._updateEventEmitter.event,this._textModel=e,this._decorationProvider=t,this._regions=new v(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}get regions(){return this._regions}get textModel(){return this._textModel}toggleCollapseState(e){if(!e.length)return;e=e.sort(((e,t)=>e.regionIndex-t.regionIndex));const t={};this._decorationProvider.changeDecorations((i=>{let n=0,o=-1,s=-1;const r=e=>{for(;n<e;){const e=this._regions.getEndLineNumber(n),t=this._regions.isCollapsed(n);if(e<=o){const o=0!==this.regions.getSource(n);i.changeDecorationOptions(this._editorDecorationIds[n],this._decorationProvider.getDecorationOption(t,e<=s,o))}t&&e>s&&(s=e),n++}};for(const a of e){const e=a.regionIndex,i=this._editorDecorationIds[e];if(i&&!t[i]){t[i]=!0,r(e);const n=!this._regions.isCollapsed(e);this._regions.setCollapsed(e,n),o=Math.max(o,this._regions.getEndLineNumber(e))}}r(this._regions.length)})),this._updateEventEmitter.fire({model:this,collapseStateChanged:e})}removeManualRanges(e){const t=new Array,i=t=>{for(const i of e)if(!(i.startLineNumber>t.endLineNumber||t.startLineNumber>i.endLineNumber))return!0;return!1};for(let n=0;n<this._regions.length;n++){const e=this._regions.toFoldRange(n);0!==e.source&&i(e)||t.push(e)}this.updatePost(v.fromFoldRanges(t))}update(e,t=[]){const i=this._currentFoldedOrManualRanges(t),n=v.sanitizeAndMerge(e,i,this._textModel.getLineCount());this.updatePost(v.fromFoldRanges(n))}updatePost(e){const t=[];let i=-1;for(let n=0,o=e.length;n<o;n++){const o=e.getStartLineNumber(n),s=e.getEndLineNumber(n),r=e.isCollapsed(n),a=0!==e.getSource(n),l={startLineNumber:o,startColumn:this._textModel.getLineMaxColumn(o),endLineNumber:s,endColumn:this._textModel.getLineMaxColumn(s)+1};t.push({range:l,options:this._decorationProvider.getDecorationOption(r,s<=i,a)}),r&&s>i&&(i=s)}this._decorationProvider.changeDecorations((e=>this._editorDecorationIds=e.deltaDecorations(this._editorDecorationIds,t))),this._regions=e,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(e=[]){const t=(t,i)=>{for(const n of e)if(t<n&&n<=i)return!0;return!1},i=[];for(let n=0,o=this._regions.length;n<o;n++){let e=this.regions.isCollapsed(n);const o=this.regions.getSource(n);if(e||0!==o){const s=this._regions.toFoldRange(n),r=this._textModel.getDecorationRange(this._editorDecorationIds[n]);r&&(e&&(t(r.startLineNumber,r.endLineNumber)||r.endLineNumber-r.startLineNumber!=s.endLineNumber-s.startLineNumber)&&(e=!1),i.push({startLineNumber:r.startLineNumber,endLineNumber:r.endLineNumber,type:s.type,isCollapsed:e,source:o}))}}return i}getMemento(){const e=this._currentFoldedOrManualRanges(),t=[];for(let i=0,n=e.length;i<n;i++){const n=e[i],o=this._getLinesChecksum(n.startLineNumber+1,n.endLineNumber);t.push({startLineNumber:n.startLineNumber,endLineNumber:n.endLineNumber,isCollapsed:n.isCollapsed,source:n.source,checksum:o})}return t.length>0?t:void 0}applyMemento(e){var t,i;if(!Array.isArray(e))return;const n=[],o=this._textModel.getLineCount();for(const r of e){if(r.startLineNumber>=r.endLineNumber||r.startLineNumber<1||r.endLineNumber>o)continue;const e=this._getLinesChecksum(r.startLineNumber+1,r.endLineNumber);r.checksum&&e!==r.checksum||n.push({startLineNumber:r.startLineNumber,endLineNumber:r.endLineNumber,type:void 0,isCollapsed:null===(t=r.isCollapsed)||void 0===t||t,source:null!==(i=r.source)&&void 0!==i?i:0})}const s=v.sanitizeAndMerge(this._regions,n,o);this.updatePost(v.fromFoldRanges(s))}_getLinesChecksum(e,t){return(0,C.vp)(this._textModel.getLineContent(e)+this._textModel.getLineContent(t))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds)}getAllRegionsAtLine(e,t){const i=[];if(this._regions){let n=this._regions.findRange(e),o=1;for(;n>=0;){const e=this._regions.toRegion(n);t&&!t(e,o)||i.push(e),o++,n=e.parentIndex}}return i}getRegionAtLine(e){if(this._regions){const t=this._regions.findRange(e);if(t>=0)return this._regions.toRegion(t)}return null}getRegionsInside(e,t){const i=[],n=e?e.regionIndex+1:0,o=e?e.endLineNumber:Number.MAX_VALUE;if(t&&2===t.length){const e=[];for(let s=n,r=this._regions.length;s<r;s++){const n=this._regions.toRegion(s);if(!(this._regions.getStartLineNumber(s)<o))break;for(;e.length>0&&!n.containedBy(e[e.length-1]);)e.pop();e.push(n),t(n,e.length)&&i.push(n)}}else for(let s=n,r=this._regions.length;s<r;s++){const e=this._regions.toRegion(s);if(!(this._regions.getStartLineNumber(s)<o))break;t&&!t(e)||i.push(e)}return i}}function y(e,t,i=Number.MAX_VALUE,n){const o=[];if(n&&n.length>0)for(const s of n){const n=e.getRegionAtLine(s);if(n&&(n.isCollapsed!==t&&o.push(n),i>1)){const s=e.getRegionsInside(n,((e,n)=>e.isCollapsed!==t&&n<i));o.push(...s)}}else{const n=e.getRegionsInside(null,((e,n)=>e.isCollapsed!==t&&n<i));o.push(...n)}e.toggleCollapseState(o)}function S(e,t,i,n){const o=[];for(const s of n){const n=e.getAllRegionsAtLine(s,((e,n)=>e.isCollapsed!==t&&n<=i));o.push(...n)}e.toggleCollapseState(o)}function L(e,t,i){const n=[];for(const s of i){const t=e.getAllRegionsAtLine(s,void 0);t.length>0&&n.push(t[0])}const o=e.getRegionsInside(null,(e=>n.every((t=>!t.containedBy(e)&&!e.containedBy(t)))&&e.isCollapsed!==t));e.toggleCollapseState(o)}function k(e,t,i){const n=e.textModel,o=e.regions,s=[];for(let r=o.length-1;r>=0;r--)if(i!==o.isCollapsed(r)){const e=o.getStartLineNumber(r);t.test(n.getLineContent(e))&&s.push(o.toRegion(r))}e.toggleCollapseState(s)}function x(e,t,i){const n=e.regions,o=[];for(let s=n.length-1;s>=0;s--)i!==n.isCollapsed(s)&&t===n.getType(s)&&o.push(n.toRegion(s));e.toggleCollapseState(o)}var D=i(9488),N=i(24314),E=i(23795);class I{constructor(e){this._updateEventEmitter=new p.Q5,this._hasLineChanges=!1,this._foldingModel=e,this._foldingModelListener=e.onDidChange((e=>this.updateHiddenRanges())),this._hiddenRanges=[],e.regions.length&&this.updateHiddenRanges()}get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}notifyChangeModelContent(e){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=e.changes.some((e=>e.range.endLineNumber!==e.range.startLineNumber||0!==(0,E.Q)(e.text)[0])))}updateHiddenRanges(){let e=!1;const t=[];let i=0,n=0,o=Number.MAX_VALUE,s=-1;const r=this._foldingModel.regions;for(;i<r.length;i++){if(!r.isCollapsed(i))continue;const a=r.getStartLineNumber(i)+1,l=r.getEndLineNumber(i);o<=a&&l<=s||(!e&&n<this._hiddenRanges.length&&this._hiddenRanges[n].startLineNumber===a&&this._hiddenRanges[n].endLineNumber===l?(t.push(this._hiddenRanges[n]),n++):(e=!0,t.push(new N.e(a,1,l,1))),o=a,s=l)}(this._hasLineChanges||e||n<this._hiddenRanges.length)&&this.applyHiddenRanges(t)}applyHiddenRanges(e){this._hiddenRanges=e,this._hasLineChanges=!1,this._updateEventEmitter.fire(e)}hasRanges(){return this._hiddenRanges.length>0}isHidden(e){return null!==T(this._hiddenRanges,e)}adjustSelections(e){let t=!1;const i=this._foldingModel.textModel;let n=null;const o=e=>(n&&function(e,t){return e>=t.startLineNumber&&e<=t.endLineNumber}(e,n)||(n=T(this._hiddenRanges,e)),n?n.startLineNumber-1:null);for(let s=0,r=e.length;s<r;s++){let n=e[s];const r=o(n.startLineNumber);r&&(n=n.setStartPosition(r,i.getLineMaxColumn(r)),t=!0);const a=o(n.endLineNumber);a&&(n=n.setEndPosition(a,i.getLineMaxColumn(a)),t=!0),e[s]=n}return t}dispose(){this.hiddenRanges.length>0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}function T(e,t){const i=(0,D.lG)(e,(e=>t<e.startLineNumber))-1;return i>=0&&e[i].endLineNumber>=t?e[i]:null}var M=i(59616);class A{constructor(e,t,i){this.editorModel=e,this.languageConfigurationService=t,this.maxFoldingRegions=i,this.id="indent"}dispose(){}compute(e,t){const i=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,n=i&&!!i.offSide,o=i&&i.markers;return Promise.resolve(function(e,t,i,n,o){const s=e.getOptions().tabSize,r=new R(n=null!=n?n:5e3,o);let a;i&&(a=new RegExp(`(${i.start.source})|(?:${i.end.source})`));const l=[],c=e.getLineCount()+1;l.push({indent:-1,endAbove:c,line:c});for(let d=e.getLineCount();d>0;d--){const i=e.getLineContent(d),n=(0,M.q)(i,s);let o,c=l[l.length-1];if(-1!==n){if(a&&(o=i.match(a))){if(!o[1]){l.push({indent:-2,endAbove:d,line:d});continue}{let e=l.length-1;for(;e>0&&-2!==l[e].indent;)e--;if(e>0){l.length=e+1,c=l[e],r.insertFirst(d,c.line,n),c.line=d,c.indent=n,c.endAbove=d;continue}}}if(c.indent>n){do{l.pop(),c=l[l.length-1]}while(c.indent>n);const e=c.endAbove-1;e-d>=1&&r.insertFirst(d,e,n)}c.indent===n?c.endAbove=d:l.push({indent:n,endAbove:d,line:d})}else t&&(c.endAbove=d)}return r.toIndentRanges(e)}(this.editorModel,n,o,this.maxFoldingRegions,t))}}class R{constructor(e,t){this._notifyTooManyRegions=t,this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=e}insertFirst(e,t,i){if(e>m||t>m)return;const n=this._length;this._startIndexes[n]=e,this._endIndexes[n]=t,this._length++,i<1e3&&(this._indentOccurrences[i]=(this._indentOccurrences[i]||0)+1)}toIndentRanges(e){var t;if(this._length<=this._foldingRangesLimit){const e=new Uint32Array(this._length),t=new Uint32Array(this._length);for(let i=this._length-1,n=0;i>=0;i--,n++)e[n]=this._startIndexes[i],t[n]=this._endIndexes[i];return new v(e,t)}{null===(t=this._notifyTooManyRegions)||void 0===t||t.call(this,this._foldingRangesLimit);let i=0,n=this._indentOccurrences.length;for(let e=0;e<this._indentOccurrences.length;e++){const t=this._indentOccurrences[e];if(t){if(t+i>this._foldingRangesLimit){n=e;break}i+=t}}const o=e.getOptions().tabSize,s=new Uint32Array(this._foldingRangesLimit),r=new Uint32Array(this._foldingRangesLimit);for(let t=this._length-1,a=0;t>=0;t--){const l=this._startIndexes[t],c=e.getLineContent(l),d=(0,M.q)(c,o);(d<n||d===n&&i++<this._foldingRangesLimit)&&(s[a]=l,r[a]=this._endIndexes[t],a++)}return new v(s,r)}}}var O=i(63580),P=i(38819),F=i(73910),B=i(97781),V=i(73046),W=i(22529),H=i(59554);const z=(0,H.q5)("folding-expanded",V.lA.chevronDown,(0,O.NC)("foldingExpandedIcon","Icon for expanded ranges in the editor glyph margin.")),j=(0,H.q5)("folding-collapsed",V.lA.chevronRight,(0,O.NC)("foldingCollapsedIcon","Icon for collapsed ranges in the editor glyph margin.")),U=(0,H.q5)("folding-manual-collapsed",j,(0,O.NC)("foldingManualCollapedIcon","Icon for manually collapsed ranges in the editor glyph margin.")),K=(0,H.q5)("folding-manual-expanded",z,(0,O.NC)("foldingManualExpandedIcon","Icon for manually expanded ranges in the editor glyph margin."));class ${constructor(e){this.editor=e,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(e,t,i){return t||"never"===this.showFoldingControls?$.HIDDEN_RANGE_DECORATION:e?i?this.showFoldingHighlights?$.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:$.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?$.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:$.COLLAPSED_VISUAL_DECORATION:"mouseover"===this.showFoldingControls?i?$.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:$.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:i?$.MANUALLY_EXPANDED_VISUAL_DECORATION:$.EXPANDED_VISUAL_DECORATION}changeDecorations(e){return this.editor.changeDecorations(e)}removeDecorations(e){this.editor.removeDecorations(e)}}$.COLLAPSED_VISUAL_DECORATION=W.qx.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,firstLineDecorationClassName:B.kS.asClassName(j)}),$.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=W.qx.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",isWholeLine:!0,firstLineDecorationClassName:B.kS.asClassName(j)}),$.MANUALLY_COLLAPSED_VISUAL_DECORATION=W.qx.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+B.kS.asClassName(z)}),$.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=W.qx.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",isWholeLine:!0,firstLineDecorationClassName:B.kS.asClassName(U)}),$.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=W.qx.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:B.kS.asClassName(z)}),$.EXPANDED_VISUAL_DECORATION=W.qx.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+B.kS.asClassName(z)}),$.MANUALLY_EXPANDED_VISUAL_DECORATION=W.qx.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+B.kS.asClassName(K)}),$.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=W.qx.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:B.kS.asClassName(K)}),$.HIDDEN_RANGE_DECORATION=W.qx.register({description:"folding-hidden-range-decoration",stickiness:1});const q={};class G{constructor(e,t,i,n){this.editorModel=e,this.providers=t,this.limit=n,this.id="syntax";for(const o of t)"function"==typeof o.onDidChange&&(this.disposables||(this.disposables=new r.SL),this.disposables.add(o.onDidChange(i)))}compute(e,t){return function(e,t,i){let n=null;const s=e.map(((e,s)=>Promise.resolve(e.provideFoldingRanges(t,q,i)).then((e=>{if(!i.isCancellationRequested&&Array.isArray(e)){Array.isArray(n)||(n=[]);const i=t.getLineCount();for(const t of e)t.start>0&&t.end>t.start&&t.end<=i&&n.push({start:t.start,end:t.end,rank:s,kind:t.kind})}}),o.Cp)));return Promise.all(s).then((e=>n))}(this.providers,this.editorModel,e).then((e=>{if(e){const i=function(e,t,i){const n=e.sort(((e,t)=>{let i=e.start-t.start;return 0===i&&(i=e.rank-t.rank),i})),o=new Q(t,i);let s;const r=[];for(const a of n)if(s){if(a.start>s.start)if(a.end<=s.end)r.push(s),s=a,o.add(a.start,a.end,a.kind&&a.kind.value,r.length);else{if(a.start>s.end){do{s=r.pop()}while(s&&a.start>s.end);s&&r.push(s),s=a}o.add(a.start,a.end,a.kind&&a.kind.value,r.length)}}else s=a,o.add(a.start,a.end,a.kind&&a.kind.value,r.length);return o.toIndentRanges()}(e,this.limit,t);return i}return null}))}dispose(){var e;null===(e=this.disposables)||void 0===e||e.dispose()}}class Q{constructor(e,t){this._notifyTooManyRegions=t,this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=e}add(e,t,i,n){if(e>m||t>m)return;const o=this._length;this._startIndexes[o]=e,this._endIndexes[o]=t,this._nestingLevels[o]=n,this._types[o]=i,this._length++,n<30&&(this._nestingLevelCounts[n]=(this._nestingLevelCounts[n]||0)+1)}toIndentRanges(){var e;if(this._length<=this._foldingRangesLimit){const e=new Uint32Array(this._length),t=new Uint32Array(this._length);for(let i=0;i<this._length;i++)e[i]=this._startIndexes[i],t[i]=this._endIndexes[i];return new v(e,t,this._types)}{null===(e=this._notifyTooManyRegions)||void 0===e||e.call(this,this._foldingRangesLimit);let t=0,i=this._nestingLevelCounts.length;for(let e=0;e<this._nestingLevelCounts.length;e++){const n=this._nestingLevelCounts[e];if(n){if(n+t>this._foldingRangesLimit){i=e;break}t+=n}}const n=new Uint32Array(this._foldingRangesLimit),o=new Uint32Array(this._foldingRangesLimit),s=[];for(let e=0,r=0;e<this._length;e++){const a=this._nestingLevels[e];(a<i||a===i&&t++<this._foldingRangesLimit)&&(n[r]=this._startIndexes[e],o[r]=this._endIndexes[e],s[r]=this._types[e],r++)}return new v(n,o,s)}}}var Z=i(59422),Y=i(14603),J=i(88191),X=i(84013),ee=i(71922),te=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ie=function(e,t){return function(i,n){t(i,n,e)}};const ne=new P.uy("foldingEnabled",!1);let oe=class e extends r.JT{constructor(e,t,i,n,o,s){super(),this.contextKeyService=t,this.languageConfigurationService=i,this.languageFeaturesService=s,this._tooManyRegionsNotified=!1,this.localToDispose=this._register(new r.SL),this.editor=e;const a=this.editor.getOptions();this._isEnabled=a.get(39),this._useFoldingProviders="indentation"!==a.get(40),this._unfoldOnClickAfterEndOfLine=a.get(44),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=a.get(42),this._maxFoldingRegions=a.get(43),this.updateDebounceInfo=o.for(s.foldingRangeProvider,"Folding",{min:200}),this.foldingModel=null,this.hiddenRangeModel=null,this.rangeProvider=null,this.foldingRegionPromise=null,this.foldingModelPromise=null,this.updateScheduler=null,this.cursorChangedScheduler=null,this.mouseDownInfo=null,this.foldingDecorationProvider=new $(e),this.foldingDecorationProvider.showFoldingControls=a.get(101),this.foldingDecorationProvider.showFoldingHighlights=a.get(41),this.foldingEnabled=ne.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._notifyTooManyRegions=e=>{this._tooManyRegionsNotified||(n.notify({severity:Y.Z.Warning,sticky:!0,message:O.NC("maximum fold ranges","The number of foldable regions is limited to a maximum of {0}. Increase configuration option ['Folding Maximum Regions'](command:workbench.action.openSettings?[\"editor.foldingMaximumRegions\"]) to enable more.",e)}),this._tooManyRegionsNotified=!0)},this._register(this.editor.onDidChangeModel((()=>this.onModelChanged()))),this._register(this.editor.onDidChangeConfiguration((e=>{if(e.hasChanged(39)&&(this._isEnabled=this.editor.getOptions().get(39),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),e.hasChanged(43)&&(this._maxFoldingRegions=this.editor.getOptions().get(43),this._tooManyRegionsNotified=!1,this.onModelChanged()),e.hasChanged(101)||e.hasChanged(41)){const e=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=e.get(101),this.foldingDecorationProvider.showFoldingHighlights=e.get(41),this.triggerFoldingModelChanged()}e.hasChanged(40)&&(this._useFoldingProviders="indentation"!==this.editor.getOptions().get(40),this.onFoldingStrategyChanged()),e.hasChanged(44)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(44)),e.hasChanged(42)&&(this._foldingImportsByDefault=this.editor.getOptions().get(42))}))),this.onModelChanged()}static get(t){return t.getContribution(e.ID)}saveViewState(){const e=this.editor.getModel();if(!e||!this._isEnabled||e.isTooLargeForTokenization())return{};if(this.foldingModel){const t=this.foldingModel.getMemento(),i=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:t,lineCount:e.getLineCount(),provider:i,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(e){const t=this.editor.getModel();if(t&&this._isEnabled&&!t.isTooLargeForTokenization()&&this.hiddenRangeModel&&e&&e.lineCount===t.getLineCount()&&(this._currentModelHasFoldedImports=!!e.foldedImports,e.collapsedRegions&&e.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(e.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();const e=this.editor.getModel();this._isEnabled&&e&&!e.isTooLargeForTokenization()&&(this._currentModelHasFoldedImports=!1,this.foldingModel=new w(e,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new I(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange((e=>this.onHiddenRangesChanges(e)))),this.updateScheduler=new n.vp(this.updateDebounceInfo.get(e)),this.cursorChangedScheduler=new n.pY((()=>this.revealCursor()),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange((()=>this.onFoldingStrategyChanged()))),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration((()=>this.onFoldingStrategyChanged()))),this.localToDispose.add(this.editor.onDidChangeModelContent((e=>this.onDidChangeModelContent(e)))),this.localToDispose.add(this.editor.onDidChangeCursorPosition((()=>this.onCursorPositionChanged()))),this.localToDispose.add(this.editor.onMouseDown((e=>this.onEditorMouseDown(e)))),this.localToDispose.add(this.editor.onMouseUp((e=>this.onEditorMouseUp(e)))),this.localToDispose.add({dispose:()=>{this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.updateScheduler&&this.updateScheduler.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,this.rangeProvider&&this.rangeProvider.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged())}onFoldingStrategyChanged(){this.rangeProvider&&this.rangeProvider.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(e){if(this.rangeProvider)return this.rangeProvider;if(this.rangeProvider=new A(e,this.languageConfigurationService,this._maxFoldingRegions),this._useFoldingProviders&&this.foldingModel){const t=this.languageFeaturesService.foldingRangeProvider.ordered(this.foldingModel.textModel);t.length>0&&(this.rangeProvider=new G(e,t,(()=>this.triggerFoldingModelChanged()),this._maxFoldingRegions))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(e){var t;null===(t=this.hiddenRangeModel)||void 0===t||t.notifyChangeModelContent(e),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger((()=>{const e=this.foldingModel;if(!e)return null;const t=new X.G(!0),i=this.getRangeProvider(e.textModel),o=this.foldingRegionPromise=(0,n.PG)((e=>i.compute(e,this._notifyTooManyRegions)));return o.then((i=>{if(i&&o===this.foldingRegionPromise){let n;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const e=i.setCollapsedAllOfType(u.AD.Imports.value,!0);e&&(n=c.Z.capture(this.editor),this._currentModelHasFoldedImports=e)}const o=this.editor.getSelections(),s=o?o.map((e=>e.startLineNumber)):[];e.update(i,s),null==n||n.restore(this.editor);const r=this.updateDebounceInfo.update(e.textModel,t.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=r)}return e}))})).then(void 0,(e=>((0,o.dL)(e),null))))}onHiddenRangesChanges(e){if(this.hiddenRangeModel&&e.length&&!this._restoringViewState){const e=this.editor.getSelections();e&&this.hiddenRangeModel.adjustSelections(e)&&this.editor.setSelections(e)}this.editor.setHiddenAreas(e)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){const e=this.getFoldingModel();e&&e.then((e=>{if(e){const t=this.editor.getSelections();if(t&&t.length>0){const i=[];for(const n of t){const t=n.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(t)&&i.push(...e.getAllRegionsAtLine(t,(e=>e.isCollapsed&&t>e.startLineNumber)))}i.length&&(e.toggleCollapseState(i),this.reveal(t[0].getPosition()))}}})).then(void 0,o.dL)}onEditorMouseDown(e){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!e.target||!e.target.range)return;if(!e.event.leftButton&&!e.event.middleButton)return;const t=e.target.range;let i=!1;switch(e.target.type){case 4:{const t=e.target.detail,n=e.target.element.offsetLeft;if(t.offsetX-n<5)return;i=!0;break}case 7:if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()){if(!e.target.detail.isAfterLines)break}return;case 6:if(this.hiddenRangeModel.hasRanges()){const e=this.editor.getModel();if(e&&t.startColumn===e.getLineMaxColumn(t.startLineNumber))break}return;default:return}this.mouseDownInfo={lineNumber:t.startLineNumber,iconClicked:i}}onEditorMouseUp(e){const t=this.foldingModel;if(!t||!this.mouseDownInfo||!e.target)return;const i=this.mouseDownInfo.lineNumber,n=this.mouseDownInfo.iconClicked,o=e.target.range;if(!o||o.startLineNumber!==i)return;if(n){if(4!==e.target.type)return}else{const e=this.editor.getModel();if(!e||o.startColumn!==e.getLineMaxColumn(i))return}const s=t.getRegionAtLine(i);if(s&&s.startLineNumber===i){const o=s.isCollapsed;if(n||o){let n=[];if(e.event.altKey){const e=e=>!e.containedBy(s)&&!s.containedBy(e),i=t.getRegionsInside(null,e);for(const t of i)t.isCollapsed&&n.push(t);0===n.length&&(n=i)}else{const i=e.event.middleButton||e.event.shiftKey;if(i)for(const e of t.getRegionsInside(s))e.isCollapsed===o&&n.push(e);!o&&i&&0!==n.length||n.push(s)}t.toggleCollapseState(n),this.reveal({lineNumber:i,column:1})}}}reveal(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)}};oe.ID="editor.contrib.folding",oe=te([ie(1,P.i6),ie(2,g.c_),ie(3,Z.lT),ie(4,J.A),ie(5,ee.p)],oe);class se extends d.R6{runEditorCommand(e,t,i){const n=e.get(g.c_),o=oe.get(t);if(!o)return;const s=o.getFoldingModel();return s?(this.reportTelemetry(e,t),s.then((e=>{if(e){this.invoke(o,e,t,i,n);const s=t.getSelection();s&&o.reveal(s.getStartPosition())}}))):void 0}getSelectedLines(e){const t=e.getSelections();return t?t.map((e=>e.startLineNumber)):[]}getLineNumbers(e,t){return e&&e.selectionLines?e.selectionLines.map((e=>e+1)):this.getSelectedLines(t)}run(e,t){}}function re(e){if(!l.o8(e)){if(!l.Kn(e))return!1;const t=e;if(!l.o8(t.levels)&&!l.hj(t.levels))return!1;if(!l.o8(t.direction)&&!l.HD(t.direction))return!1;if(!(l.o8(t.selectionLines)||l.kJ(t.selectionLines)&&t.selectionLines.every(l.hj)))return!1}return!0}class ae extends se{getFoldingLevel(){return parseInt(this.id.substr(ae.ID_PREFIX.length))}invoke(e,t,i){!function(e,t,i,n){const o=e.getRegionsInside(null,((e,o)=>o===t&&e.isCollapsed!==i&&!n.some((t=>e.containsLine(t)))));e.toggleCollapseState(o)}(t,this.getFoldingLevel(),!0,this.getSelectedLines(i))}}ae.ID_PREFIX="editor.foldLevel",ae.ID=e=>ae.ID_PREFIX+e;(0,d._K)(oe.ID,oe),(0,d.Qr)(class extends se{constructor(){super({id:"editor.unfold",label:O.NC("unfoldAction.label","Unfold"),alias:"Unfold",precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,primary:3161,mac:{primary:2649},weight:100},description:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t* 'levels': Number of levels to unfold. If not set, defaults to 1.\n\t\t\t\t\t\t* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.\n\t\t\t\t\t\t* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t",constraint:re,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,i,n){const o=n&&n.levels||1,s=this.getLineNumbers(n,i);n&&"up"===n.direction?S(t,!1,o,s):y(t,!1,o,s)}}),(0,d.Qr)(class extends se{constructor(){super({id:"editor.unfoldRecursively",label:O.NC("unFoldRecursivelyAction.label","Unfold Recursively"),alias:"Unfold Recursively",precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,primary:(0,s.gx)(2089,2137),weight:100}})}invoke(e,t,i,n){y(t,!1,Number.MAX_VALUE,this.getSelectedLines(i))}}),(0,d.Qr)(class extends se{constructor(){super({id:"editor.fold",label:O.NC("foldAction.label","Fold"),alias:"Fold",precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,primary:3159,mac:{primary:2647},weight:100},description:{description:"Fold the content in the editor",args:[{name:"Fold editor argument",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t\t* 'levels': Number of levels to fold.\n\t\t\t\t\t\t\t* 'direction': If 'up', folds given number of levels up otherwise folds down.\n\t\t\t\t\t\t\t* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t\tIf no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.\n\t\t\t\t\t\t",constraint:re,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,i,n){const o=this.getLineNumbers(n,i),s=n&&n.levels,r=n&&n.direction;"number"!=typeof s&&"string"!=typeof r?function(e,t,i){const n=[];for(const o of i){const i=e.getAllRegionsAtLine(o,(e=>e.isCollapsed!==t));i.length>0&&n.push(i[0])}e.toggleCollapseState(n)}(t,!0,o):"up"===r?S(t,!0,s||1,o):y(t,!0,s||1,o)}}),(0,d.Qr)(class extends se{constructor(){super({id:"editor.foldRecursively",label:O.NC("foldRecursivelyAction.label","Fold Recursively"),alias:"Fold Recursively",precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,primary:(0,s.gx)(2089,2135),weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);y(t,!0,Number.MAX_VALUE,n)}}),(0,d.Qr)(class extends se{constructor(){super({id:"editor.foldAll",label:O.NC("foldAllAction.label","Fold All"),alias:"Fold All",precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,primary:(0,s.gx)(2089,2069),weight:100}})}invoke(e,t,i){y(t,!0)}}),(0,d.Qr)(class extends se{constructor(){super({id:"editor.unfoldAll",label:O.NC("unfoldAllAction.label","Unfold All"),alias:"Unfold All",precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,primary:(0,s.gx)(2089,2088),weight:100}})}invoke(e,t,i){y(t,!1)}}),(0,d.Qr)(class extends se{constructor(){super({id:"editor.foldAllBlockComments",label:O.NC("foldAllBlockComments.label","Fold All Block Comments"),alias:"Fold All Block Comments",precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,primary:(0,s.gx)(2089,2133),weight:100}})}invoke(e,t,i,n,o){if(t.regions.hasTypes())x(t,u.AD.Comment.value,!0);else{const e=i.getModel();if(!e)return;const n=o.getLanguageConfiguration(e.getLanguageId()).comments;if(n&&n.blockCommentStartToken){k(t,new RegExp("^\\s*"+(0,a.ec)(n.blockCommentStartToken)),!0)}}}}),(0,d.Qr)(class extends se{constructor(){super({id:"editor.foldAllMarkerRegions",label:O.NC("foldAllMarkerRegions.label","Fold All Regions"),alias:"Fold All Regions",precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,primary:(0,s.gx)(2089,2077),weight:100}})}invoke(e,t,i,n,o){if(t.regions.hasTypes())x(t,u.AD.Region.value,!0);else{const e=i.getModel();if(!e)return;const n=o.getLanguageConfiguration(e.getLanguageId()).foldingRules;if(n&&n.markers&&n.markers.start){k(t,new RegExp(n.markers.start),!0)}}}}),(0,d.Qr)(class extends se{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:O.NC("unfoldAllMarkerRegions.label","Unfold All Regions"),alias:"Unfold All Regions",precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,primary:(0,s.gx)(2089,2078),weight:100}})}invoke(e,t,i,n,o){if(t.regions.hasTypes())x(t,u.AD.Region.value,!1);else{const e=i.getModel();if(!e)return;const n=o.getLanguageConfiguration(e.getLanguageId()).foldingRules;if(n&&n.markers&&n.markers.start){k(t,new RegExp(n.markers.start),!1)}}}}),(0,d.Qr)(class extends se{constructor(){super({id:"editor.foldAllExcept",label:O.NC("foldAllExcept.label","Fold All Regions Except Selected"),alias:"Fold All Regions Except Selected",precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,primary:(0,s.gx)(2089,2131),weight:100}})}invoke(e,t,i){L(t,!0,this.getSelectedLines(i))}}),(0,d.Qr)(class extends se{constructor(){super({id:"editor.unfoldAllExcept",label:O.NC("unfoldAllExcept.label","Unfold All Regions Except Selected"),alias:"Unfold All Regions Except Selected",precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,primary:(0,s.gx)(2089,2129),weight:100}})}invoke(e,t,i){L(t,!1,this.getSelectedLines(i))}}),(0,d.Qr)(class extends se{constructor(){super({id:"editor.toggleFold",label:O.NC("toggleFoldAction.label","Toggle Fold"),alias:"Toggle Fold",precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,primary:(0,s.gx)(2089,2090),weight:100}})}invoke(e,t,i){!function(e,t,i){const n=[];for(const o of i){const i=e.getRegionAtLine(o);if(i){const o=!i.isCollapsed;if(n.push(i),t>1){const s=e.getRegionsInside(i,((e,i)=>e.isCollapsed!==o&&i<t));n.push(...s)}}}e.toggleCollapseState(n)}(t,1,this.getSelectedLines(i))}}),(0,d.Qr)(class extends se{constructor(){super({id:"editor.gotoParentFold",label:O.NC("gotoParentFold.label","Go to Parent Fold"),alias:"Go to Parent Fold",precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);if(n.length>0){const e=function(e,t){let i=null;const n=t.getRegionAtLine(e);if(null!==n&&(i=n.startLineNumber,e===i)){const e=n.parentIndex;i=-1!==e?t.regions.getStartLineNumber(e):null}return i}(n[0],t);null!==e&&i.setSelection({startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1})}}}),(0,d.Qr)(class extends se{constructor(){super({id:"editor.gotoPreviousFold",label:O.NC("gotoPreviousFold.label","Go to Previous Folding Range"),alias:"Go to Previous Folding Range",precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);if(n.length>0){const e=function(e,t){let i=t.getRegionAtLine(e);if(null!==i&&i.startLineNumber===e){if(e!==i.startLineNumber)return i.startLineNumber;{const e=i.parentIndex;let n=0;for(-1!==e&&(n=t.regions.getStartLineNumber(i.parentIndex));null!==i;){if(!(i.regionIndex>0))return null;if(i=t.regions.toRegion(i.regionIndex-1),i.startLineNumber<=n)return null;if(i.parentIndex===e)return i.startLineNumber}}}else if(t.regions.length>0)for(i=t.regions.toRegion(t.regions.length-1);null!==i;){if(i.startLineNumber<e)return i.startLineNumber;i=i.regionIndex>0?t.regions.toRegion(i.regionIndex-1):null}return null}(n[0],t);null!==e&&i.setSelection({startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1})}}}),(0,d.Qr)(class extends se{constructor(){super({id:"editor.gotoNextFold",label:O.NC("gotoNextFold.label","Go to Next Folding Range"),alias:"Go to Next Folding Range",precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);if(n.length>0){const e=function(e,t){let i=t.getRegionAtLine(e);if(null!==i&&i.startLineNumber===e){const e=i.parentIndex;let n=0;if(-1!==e)n=t.regions.getEndLineNumber(i.parentIndex);else{if(0===t.regions.length)return null;n=t.regions.getEndLineNumber(t.regions.length-1)}for(;null!==i;){if(!(i.regionIndex<t.regions.length))return null;if(i=t.regions.toRegion(i.regionIndex+1),i.startLineNumber>=n)return null;if(i.parentIndex===e)return i.startLineNumber}}else if(t.regions.length>0)for(i=t.regions.toRegion(0);null!==i;){if(i.startLineNumber>e)return i.startLineNumber;i=i.regionIndex<t.regions.length?t.regions.toRegion(i.regionIndex+1):null}return null}(n[0],t);null!==e&&i.setSelection({startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1})}}}),(0,d.Qr)(class extends se{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:O.NC("createManualFoldRange.label","Create Manual Folding Range from Selection"),alias:"Create Folding Range from Selection",precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,primary:(0,s.gx)(2089,2130),weight:100}})}invoke(e,t,i){var n;const o=[],s=i.getSelections();if(s){for(const e of s){let t=e.endLineNumber;1===e.endColumn&&--t,t>e.startLineNumber&&(o.push({startLineNumber:e.startLineNumber,endLineNumber:t,type:void 0,isCollapsed:!0,source:1}),i.setSelection({startLineNumber:e.startLineNumber,startColumn:1,endLineNumber:e.startLineNumber,endColumn:1}))}if(o.length>0){o.sort(((e,t)=>e.startLineNumber-t.startLineNumber));const e=v.sanitizeAndMerge(t.regions,o,null===(n=i.getModel())||void 0===n?void 0:n.getLineCount());t.updatePost(v.fromFoldRanges(e))}}}}),(0,d.Qr)(class extends se{constructor(){super({id:"editor.removeManualFoldingRanges",label:O.NC("removeManualFoldingRanges.label","Remove Manual Folding Ranges"),alias:"Remove Manual Folding Ranges",precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,primary:(0,s.gx)(2089,2132),weight:100}})}invoke(e,t,i){const n=i.getSelections();if(n){const i=[];for(const e of n){const{startLineNumber:t,endLineNumber:n}=e;i.push(n>=t?{startLineNumber:t,endLineNumber:n}:{endLineNumber:n,startLineNumber:t})}t.removeManualRanges(i),e.triggerFoldingModelChanged()}}});for(let de=1;de<=7;de++)(0,d.QG)(new ae({id:ae.ID(de),label:O.NC("foldLevelAction.label","Fold Level {0}",de),alias:`Fold Level ${de}`,precondition:ne,kbOpts:{kbExpr:h.u.editorTextFocus,primary:(0,s.gx)(2089,2048|21+de),weight:100}}));const le=(0,F.P6G)("editor.foldBackground",{light:(0,F.ZnX)(F.hEj,.3),dark:(0,F.ZnX)(F.hEj,.3),hcDark:null,hcLight:null},O.NC("foldBackgroundBackground","Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0),ce=(0,F.P6G)("editorGutter.foldingControlForeground",{dark:F.XZx,light:F.XZx,hcDark:F.XZx,hcLight:F.XZx},O.NC("editorGutter.foldingControlForeground","Color of the folding control in the editor gutter."));(0,B.Ic)(((e,t)=>{const i=e.getColor(le);i&&t.addRule(`.monaco-editor .folded-background { background-color: ${i}; }`);const n=e.getColor(ce);n&&t.addRule(`\n\t\t.monaco-editor .cldr${B.kS.asCSSSelector(z)},\n\t\t.monaco-editor .cldr${B.kS.asCSSSelector(j)},\n\t\t.monaco-editor .cldr${B.kS.asCSSSelector(K)},\n\t\t.monaco-editor .cldr${B.kS.asCSSSelector(U)} {\n\t\t\tcolor: ${n} !important;\n\t\t}\n\t\t`)}))},44125:(e,t,i)=>{"use strict";var n=i(16830),o=i(82334),s=i(63580);class r extends n.R6{constructor(){super({id:"editor.action.fontZoomIn",label:s.NC("EditorFontZoomIn.label","Editor Font Zoom In"),alias:"Editor Font Zoom In",precondition:void 0})}run(e,t){o.C.setZoomLevel(o.C.getZoomLevel()+1)}}class a extends n.R6{constructor(){super({id:"editor.action.fontZoomOut",label:s.NC("EditorFontZoomOut.label","Editor Font Zoom Out"),alias:"Editor Font Zoom Out",precondition:void 0})}run(e,t){o.C.setZoomLevel(o.C.getZoomLevel()-1)}}class l extends n.R6{constructor(){super({id:"editor.action.fontZoomReset",label:s.NC("EditorFontZoomReset.label","Editor Font Zoom Reset"),alias:"Editor Font Zoom Reset",precondition:void 0})}run(e,t){o.C.setZoomLevel(0)}}(0,n.Qr)(r),(0,n.Qr)(a),(0,n.Qr)(l)},71373:(e,t,i)=>{"use strict";i.d(t,{xC:()=>D,Zg:()=>k,x$:()=>N,Qq:()=>I,Qs:()=>M});var n=i(85152),o=i(9488),s=i(71050),r=i(17301),a=i(53725),l=i(91741),c=i(98401),d=i(70666),h=i(14410),u=i(65520),g=i(50187),p=i(24314),m=i(3860),f=i(85215),_=i(88216),v=i(35120),b=i(63580),C=i(94565);class w{constructor(e){this.value=e,this._lower=e.toLowerCase()}static toKey(e){return"string"==typeof e?e.toLowerCase():e._lower}}var y=i(72065),S=i(71922),L=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};function k(e){if(!(e=e.filter((e=>e.range))).length)return;let{range:t}=e[0];for(let n=1;n<e.length;n++)t=p.e.plusRange(t,e[n].range);const{startLineNumber:i,endLineNumber:o}=t;i===o?1===e.length?(0,n.Z9)(b.NC("hint11","Made 1 formatting edit on line {0}",i)):(0,n.Z9)(b.NC("hintn1","Made {0} formatting edits on line {1}",e.length,i)):1===e.length?(0,n.Z9)(b.NC("hint1n","Made 1 formatting edit between lines {0} and {1}",i,o)):(0,n.Z9)(b.NC("hintnn","Made {0} formatting edits between lines {1} and {2}",e.length,i,o))}function x(e,t,i){const n=[],o=new Set,s=e.ordered(i);for(const a of s)n.push(a),a.extensionId&&o.add(w.toKey(a.extensionId));const r=t.ordered(i);for(const a of r){if(a.extensionId){if(o.has(w.toKey(a.extensionId)))continue;o.add(w.toKey(a.extensionId))}n.push({displayName:a.displayName,extensionId:a.extensionId,provideDocumentFormattingEdits:(e,t,i)=>a.provideDocumentRangeFormattingEdits(e,e.getFullModelRange(),t,i)})}return n}class D{static setFormatterSelector(e){return{dispose:D._selectors.unshift(e)}}static select(e,t,i){return L(this,void 0,void 0,(function*(){if(0===e.length)return;const n=a.$.first(D._selectors);return n?yield n(e,t,i):void 0}))}}function N(e,t,i,n,o,s){return L(this,void 0,void 0,(function*(){const r=e.get(y.TG),{documentRangeFormattingEditProvider:a}=e.get(S.p),l=(0,u.CL)(t)?t.getModel():t,c=a.ordered(l),d=yield D.select(c,l,n);d&&(o.report(d),yield r.invokeFunction(E,d,t,i,s))}))}function E(e,t,i,n,s){return L(this,void 0,void 0,(function*(){const r=e.get(f.p);let a,l;(0,u.CL)(i)?(a=i.getModel(),l=new h.Dl(i,5,void 0,s)):(a=i,l=new h.YQ(i,s));const c=[];let d=0;for(const e of(0,o._2)(n).sort(p.e.compareRangesUsingStarts))d>0&&p.e.areIntersectingOrTouching(c[d-1],e)?c[d-1]=p.e.fromPositions(c[d-1].getStartPosition(),e.getEndPosition()):d=c.push(e);const g=e=>L(this,void 0,void 0,(function*(){return(yield t.provideDocumentRangeFormattingEdits(a,e,a.getFormattingOptions(),l.token))||[]})),_=(e,t)=>{if(!e.length||!t.length)return!1;const i=e.reduce(((e,t)=>p.e.plusRange(e,t.range)),e[0].range);if(!t.some((e=>p.e.intersectRanges(i,e.range))))return!1;for(const n of e)for(const e of t)if(p.e.intersectRanges(n.range,e.range))return!0;return!1},b=[],C=[];try{for(const e of c){if(l.token.isCancellationRequested)return!0;C.push(yield g(e))}for(let e=0;e<c.length;++e)for(let t=e+1;t<c.length;++t){if(l.token.isCancellationRequested)return!0;if(_(C[e],C[t])){const i=p.e.plusRange(c[e],c[t]),n=yield g(i);c.splice(t,1),c.splice(e,1),c.push(i),C.splice(t,1),C.splice(e,1),C.push(n),e=0,t=0}}for(const e of C){if(l.token.isCancellationRequested)return!0;const t=yield r.computeMoreMinimalEdits(a.uri,e);t&&b.push(...t)}}finally{l.dispose()}if(0===b.length)return!1;if((0,u.CL)(i))v.V.execute(i,b,!0),k(b),i.revealPositionInCenterIfOutsideViewport(i.getPosition(),1);else{const[{range:e}]=b,t=new m.Y(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn);a.pushEditOperations([t],b.map((e=>({text:e.text,range:p.e.lift(e.range),forceMoveMarkers:!0}))),(e=>{for(const{range:i}of e)if(p.e.areIntersectingOrTouching(i,t))return[new m.Y(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn)];return null}))}return!0}))}function I(e,t,i,n,o){return L(this,void 0,void 0,(function*(){const s=e.get(y.TG),r=e.get(S.p),a=(0,u.CL)(t)?t.getModel():t,l=x(r.documentFormattingEditProvider,r.documentRangeFormattingEditProvider,a),c=yield D.select(l,a,i);c&&(n.report(c),yield s.invokeFunction(T,c,t,i,o))}))}function T(e,t,i,n,o){return L(this,void 0,void 0,(function*(){const s=e.get(f.p);let r,a,l;(0,u.CL)(i)?(r=i.getModel(),a=new h.Dl(i,5,void 0,o)):(r=i,a=new h.YQ(i,o));try{const e=yield t.provideDocumentFormattingEdits(r,r.getFormattingOptions(),a.token);if(l=yield s.computeMoreMinimalEdits(r.uri,e),a.token.isCancellationRequested)return!0}finally{a.dispose()}if(!l||0===l.length)return!1;if((0,u.CL)(i))v.V.execute(i,l,2!==n),2!==n&&(k(l),i.revealPositionInCenterIfOutsideViewport(i.getPosition(),1));else{const[{range:e}]=l,t=new m.Y(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn);r.pushEditOperations([t],l.map((e=>({text:e.text,range:p.e.lift(e.range),forceMoveMarkers:!0}))),(e=>{for(const{range:i}of e)if(p.e.areIntersectingOrTouching(i,t))return[new m.Y(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn)];return null}))}return!0}))}function M(e,t,i,n,o,s,a){const l=t.onTypeFormattingEditProvider.ordered(i);return 0===l.length||l[0].autoFormatTriggerCharacters.indexOf(o)<0?Promise.resolve(void 0):Promise.resolve(l[0].provideOnTypeFormattingEdits(i,n,o,s,a)).catch(r.Cp).then((t=>e.computeMoreMinimalEdits(i.uri,t)))}D._selectors=new l.S,C.P0.registerCommand("_executeFormatRangeProvider",(function(e,...t){return L(this,void 0,void 0,(function*(){const[i,n,a]=t;(0,c.p_)(d.o.isUri(i)),(0,c.p_)(p.e.isIRange(n));const l=e.get(_.S),h=e.get(f.p),u=e.get(S.p),g=yield l.createModelReference(i);try{return function(e,t,i,n,s,a){return L(this,void 0,void 0,(function*(){const l=t.documentRangeFormattingEditProvider.ordered(i);for(const t of l){const l=yield Promise.resolve(t.provideDocumentRangeFormattingEdits(i,n,s,a)).catch(r.Cp);if((0,o.Of)(l))return yield e.computeMoreMinimalEdits(i.uri,l)}}))}(h,u,g.object.textEditorModel,p.e.lift(n),a,s.T.None)}finally{g.dispose()}}))})),C.P0.registerCommand("_executeFormatDocumentProvider",(function(e,...t){return L(this,void 0,void 0,(function*(){const[i,n]=t;(0,c.p_)(d.o.isUri(i));const a=e.get(_.S),l=e.get(f.p),h=e.get(S.p),u=yield a.createModelReference(i);try{return function(e,t,i,n,s){return L(this,void 0,void 0,(function*(){const a=x(t.documentFormattingEditProvider,t.documentRangeFormattingEditProvider,i);for(const t of a){const a=yield Promise.resolve(t.provideDocumentFormattingEdits(i,n,s)).catch(r.Cp);if((0,o.Of)(a))return yield e.computeMoreMinimalEdits(i.uri,a)}}))}(l,h,u.object.textEditorModel,n,s.T.None)}finally{u.dispose()}}))})),C.P0.registerCommand("_executeFormatOnTypeProvider",(function(e,...t){return L(this,void 0,void 0,(function*(){const[i,n,o,r]=t;(0,c.p_)(d.o.isUri(i)),(0,c.p_)(g.L.isIPosition(n)),(0,c.p_)("string"==typeof o);const a=e.get(_.S),l=e.get(f.p),h=e.get(S.p),u=yield a.createModelReference(i);try{return M(l,h,u.object.textEditorModel,g.L.lift(n),o,r,s.T.None)}finally{u.dispose()}}))}))},61097:(e,t,i)=>{"use strict";var n=i(9488),o=i(71050),s=i(17301),r=i(22258),a=i(5976),l=i(16830),c=i(11640),d=i(44906),h=i(24314),u=i(29102),g=i(85215),p=i(71922),m=i(71373),f=i(35120),_=i(63580),v=i(94565),b=i(38819),C=i(72065),w=i(90535),y=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},S=function(e,t){return function(i,n){t(i,n,e)}},L=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let k=class{constructor(e,t,i){this._editor=e,this._languageFeaturesService=t,this._workerService=i,this._disposables=new a.SL,this._sessionDisposables=new a.SL,this._disposables.add(t.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(e.onDidChangeModel((()=>this._update()))),this._disposables.add(e.onDidChangeModelLanguage((()=>this._update()))),this._disposables.add(e.onDidChangeConfiguration((e=>{e.hasChanged(51)&&this._update()})))}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(51))return;if(!this._editor.hasModel())return;const e=this._editor.getModel(),[t]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(e);if(!t||!t.autoFormatTriggerCharacters)return;const i=new d.q;for(const n of t.autoFormatTriggerCharacters)i.add(n.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType((e=>{const t=e.charCodeAt(e.length-1);i.has(t)&&this._trigger(String.fromCharCode(t))})))}_trigger(e){if(!this._editor.hasModel())return;if(this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;const t=this._editor.getModel(),i=this._editor.getPosition(),s=new o.A,r=this._editor.onDidChangeModelContent((e=>{if(e.isFlush)return s.cancel(),void r.dispose();for(let t=0,n=e.changes.length;t<n;t++){if(e.changes[t].range.endLineNumber<=i.lineNumber)return s.cancel(),void r.dispose()}}));(0,m.Qs)(this._workerService,this._languageFeaturesService,t,i,e,t.getFormattingOptions(),s.token).then((e=>{s.token.isCancellationRequested||(0,n.Of)(e)&&(f.V.execute(this._editor,e,!0),(0,m.Zg)(e))})).finally((()=>{r.dispose()}))}};k.ID="editor.contrib.autoFormat",k=y([S(1,p.p),S(2,g.p)],k);let x=class{constructor(e,t,i){this.editor=e,this._languageFeaturesService=t,this._instantiationService=i,this._callOnDispose=new a.SL,this._callOnModel=new a.SL,this._callOnDispose.add(e.onDidChangeConfiguration((()=>this._update()))),this._callOnDispose.add(e.onDidChangeModel((()=>this._update()))),this._callOnDispose.add(e.onDidChangeModelLanguage((()=>this._update()))),this._callOnDispose.add(t.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(50)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste((({range:e})=>this._trigger(e))))}_trigger(e){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(m.x$,this.editor,e,2,w.Ex.None,o.T.None).catch(s.dL))}};x.ID="editor.contrib.formatOnPaste",x=y([S(1,p.p),S(2,C.TG)],x);class D extends l.R6{constructor(){super({id:"editor.action.formatDocument",label:_.NC("formatDocument.label","Format Document"),alias:"Format Document",precondition:b.Ao.and(u.u.notInCompositeEditor,u.u.writable,u.u.hasDocumentFormattingProvider),kbOpts:{kbExpr:u.u.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}run(e,t){return L(this,void 0,void 0,(function*(){if(t.hasModel()){const i=e.get(C.TG),n=e.get(w.ek);yield n.showWhile(i.invokeFunction(m.Qq,t,1,w.Ex.None,o.T.None),250)}}))}}class N extends l.R6{constructor(){super({id:"editor.action.formatSelection",label:_.NC("formatSelection.label","Format Selection"),alias:"Format Selection",precondition:b.Ao.and(u.u.writable,u.u.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:u.u.editorTextFocus,primary:(0,r.gx)(2089,2084),weight:100},contextMenuOpts:{when:u.u.hasNonEmptySelection,group:"1_modification",order:1.31}})}run(e,t){return L(this,void 0,void 0,(function*(){if(!t.hasModel())return;const i=e.get(C.TG),n=t.getModel(),s=t.getSelections().map((e=>e.isEmpty()?new h.e(e.startLineNumber,1,e.startLineNumber,n.getLineMaxColumn(e.startLineNumber)):e)),r=e.get(w.ek);yield r.showWhile(i.invokeFunction(m.x$,t,s,1,w.Ex.None,o.T.None),250)}))}}(0,l._K)(k.ID,k),(0,l._K)(x.ID,x),(0,l.Qr)(D),(0,l.Qr)(N),v.P0.registerCommand("editor.action.format",(e=>L(void 0,void 0,void 0,(function*(){const t=e.get(c.$).getFocusedCodeEditor();if(!t||!t.hasModel())return;const i=e.get(v.Hy);t.getSelection().isEmpty()?yield i.executeCommand("editor.action.formatDocument"):yield i.executeCommand("editor.action.formatSelection")}))))},35120:(e,t,i)=>{"use strict";i.d(t,{V:()=>s});var n=i(69386),o=i(24314);class s{static _handleEolEdits(e,t){let i;const n=[];for(const o of t)"number"==typeof o.eol&&(i=o.eol),o.range&&"string"==typeof o.text&&n.push(o);return"number"==typeof i&&e.hasModel()&&e.getModel().pushEOL(i),n}static _isFullModelReplaceEdit(e,t){if(!e.hasModel())return!1;const i=e.getModel(),n=i.validateRange(t.range);return i.getFullModelRange().equalsRange(n)}static execute(e,t,i){i&&e.pushUndoStop();const r=s._handleEolEdits(e,t);1===r.length&&s._isFullModelReplaceEdit(e,r[0])?e.executeEdits("formatEditsCommand",r.map((e=>n.h.replace(o.e.lift(e.range),e.text)))):e.executeEdits("formatEditsCommand",r.map((e=>n.h.replaceMove(o.e.lift(e.range),e.text)))),i&&e.pushUndoStop()}}},99803:(e,t,i)=>{"use strict";i.d(t,{c:()=>oe,v:()=>re});var n=i(73046),o=i(5976),s=i(16830),r=i(11640),a=i(50187),l=i(24314),c=i(29102),d=i(9488),h=i(4669),u=i(91741),g=i(97295),p=i(70666),m=i(65026),f=i(72065),_=i(98674),v=i(33108),b=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},C=function(e,t){return function(i,n){t(i,n,e)}};class w{constructor(e,t,i){this.marker=e,this.index=t,this.total=i}}let y=class{constructor(e,t,i){this._markerService=t,this._configService=i,this._onDidChange=new h.Q5,this.onDidChange=this._onDidChange.event,this._dispoables=new o.SL,this._markers=[],this._nextIdx=-1,p.o.isUri(e)?this._resourceFilter=t=>t.toString()===e.toString():e&&(this._resourceFilter=e);const n=this._configService.getValue("problems.sortOrder"),s=(e,t)=>{let i=(0,g.qu)(e.resource.toString(),t.resource.toString());return 0===i&&(i="position"===n?l.e.compareRangesUsingStarts(e,t)||_.ZL.compare(e.severity,t.severity):_.ZL.compare(e.severity,t.severity)||l.e.compareRangesUsingStarts(e,t)),i},r=()=>{this._markers=this._markerService.read({resource:p.o.isUri(e)?e:void 0,severities:_.ZL.Error|_.ZL.Warning|_.ZL.Info}),"function"==typeof e&&(this._markers=this._markers.filter((e=>this._resourceFilter(e.resource)))),this._markers.sort(s)};r(),this._dispoables.add(t.onMarkerChanged((e=>{this._resourceFilter&&!e.some((e=>this._resourceFilter(e)))||(r(),this._nextIdx=-1,this._onDidChange.fire())})))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(e){return!this._resourceFilter&&!e||!(!this._resourceFilter||!e)&&this._resourceFilter(e)}get selected(){const e=this._markers[this._nextIdx];return e&&new w(e,this._nextIdx+1,this._markers.length)}_initIdx(e,t,i){let n=!1,o=this._markers.findIndex((t=>t.resource.toString()===e.uri.toString()));o<0&&(o=(0,d.ry)(this._markers,{resource:e.uri},((e,t)=>(0,g.qu)(e.resource.toString(),t.resource.toString()))),o<0&&(o=~o));for(let s=o;s<this._markers.length;s++){let i=l.e.lift(this._markers[s]);if(i.isEmpty()){const t=e.getWordAtPosition(i.getStartPosition());t&&(i=new l.e(i.startLineNumber,t.startColumn,i.startLineNumber,t.endColumn))}if(t&&(i.containsPosition(t)||t.isBeforeOrEqual(i.getStartPosition()))){this._nextIdx=s,n=!0;break}if(this._markers[s].resource.toString()!==e.uri.toString())break}n||(this._nextIdx=i?0:this._markers.length-1),this._nextIdx<0&&(this._nextIdx=this._markers.length-1)}resetIndex(){this._nextIdx=-1}move(e,t,i){if(0===this._markers.length)return!1;const n=this._nextIdx;return-1===this._nextIdx?this._initIdx(t,i,e):e?this._nextIdx=(this._nextIdx+1)%this._markers.length:e||(this._nextIdx=(this._nextIdx-1+this._markers.length)%this._markers.length),n!==this._nextIdx}find(e,t){let i=this._markers.findIndex((t=>t.resource.toString()===e.toString()));if(!(i<0))for(;i<this._markers.length;i++)if(l.e.containsPosition(this._markers[i],t))return new w(this._markers[i],i+1,this._markers.length)}};y=b([C(1,_.lT),C(2,v.Ui)],y);const S=(0,f.yh)("IMarkerNavigationService");let L=class{constructor(e,t){this._markerService=e,this._configService=t,this._provider=new u.S}getMarkerList(e){for(const t of this._provider){const i=t.getMarkerList(e);if(i)return i}return new y(e,this._markerService,this._configService)}};L=b([C(0,_.lT),C(1,v.Ui)],L),(0,m.z)(S,L,!0);var k,x=i(63580),D=i(84144),N=i(38819),E=i(59554),I=i(65321),T=i(63161),M=i(41264),A=i(95935),R=i(36943),O=i(84167),P=i(44349),F=i(50988),B=i(14603),V=i(73910),W=i(97781);!function(e){e.className=function(e){switch(e){case B.Z.Ignore:return"severity-ignore "+n.lA.info.classNames;case B.Z.Info:return n.lA.info.classNames;case B.Z.Warning:return n.lA.warning.classNames;case B.Z.Error:return n.lA.error.classNames;default:return""}}}(k||(k={})),(0,W.Ic)(((e,t)=>{const i=e.getColor(V.JpG);if(i){const e=n.lA.error.cssSelector;t.addRule(`\n\t\t\t.monaco-editor .zone-widget ${e},\n\t\t\t.markers-panel .marker-icon${e},\n\t\t\t.text-search-provider-messages .providerMessage ${e},\n\t\t\t.extensions-viewlet > .extensions ${e} {\n\t\t\t\tcolor: ${i};\n\t\t\t}\n\t\t`)}const o=e.getColor(V.BOY);if(o){const e=n.lA.warning.cssSelector;t.addRule(`\n\t\t\t.monaco-editor .zone-widget ${e},\n\t\t\t.markers-panel .marker-icon${e},\n\t\t\t.extensions-viewlet > .extensions ${e},\n\t\t\t.extension-editor ${e},\n\t\t\t.text-search-provider-messages .providerMessage ${e},\n\t\t\t.preferences-editor ${e} {\n\t\t\t\tcolor: ${o};\n\t\t\t}\n\t\t`)}const s=e.getColor(V.OLZ);if(s){const e=n.lA.info.cssSelector;t.addRule(`\n\t\t\t.monaco-editor .zone-widget ${e},\n\t\t\t.markers-panel .marker-icon${e},\n\t\t\t.extensions-viewlet > .extensions ${e},\n\t\t\t.text-search-provider-messages .providerMessage ${e},\n\t\t\t.extension-editor ${e} {\n\t\t\t\tcolor: ${s};\n\t\t\t}\n\t\t`)}}));var H=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},z=function(e,t){return function(i,n){t(i,n,e)}};class j{constructor(e,t,i,n,s){this._openerService=n,this._labelService=s,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new o.SL,this._editor=t;const r=document.createElement("div");r.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),r.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),r.appendChild(this._relatedBlock),this._disposables.add(I.mu(this._relatedBlock,"click",(e=>{e.preventDefault();const t=this._relatedDiagnostics.get(e.target);t&&i(t)}))),this._scrollable=new T.NB(r,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),e.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll((e=>{r.style.left=`-${e.scrollLeft}px`,r.style.top=`-${e.scrollTop}px`}))),this._disposables.add(this._scrollable)}dispose(){(0,o.B9)(this._disposables)}update(e){const{source:t,message:i,relatedInformation:n,code:o}=e;let s=((null==t?void 0:t.length)||0)+"()".length;o&&(s+="string"==typeof o?o.length:o.value.length);const r=(0,g.uq)(i);this._lines=r.length,this._longestLineLength=0;for(const d of r)this._longestLineLength=Math.max(d.length+s,this._longestLineLength);I.PO(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(e)),this._editor.applyFontInfo(this._messageBlock);let a=this._messageBlock;for(const d of r)a=document.createElement("div"),a.innerText=d,""===d&&(a.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(a);if(t||o){const e=document.createElement("span");if(e.classList.add("details"),a.appendChild(e),t){const i=document.createElement("span");i.innerText=t,i.classList.add("source"),e.appendChild(i)}if(o)if("string"==typeof o){const t=document.createElement("span");t.innerText=`(${o})`,t.classList.add("code"),e.appendChild(t)}else{this._codeLink=I.$("a.code-link"),this._codeLink.setAttribute("href",`${o.target.toString()}`),this._codeLink.onclick=e=>{this._openerService.open(o.target,{allowCommands:!0}),e.preventDefault(),e.stopPropagation()};I.R3(this._codeLink,I.$("span")).innerText=o.value,e.appendChild(this._codeLink)}}if(I.PO(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),(0,d.Of)(n)){const e=this._relatedBlock.appendChild(document.createElement("div"));e.style.paddingTop=`${Math.floor(.66*this._editor.getOption(61))}px`,this._lines+=1;for(const t of n){const i=document.createElement("div"),n=document.createElement("a");n.classList.add("filename"),n.innerText=`${this._labelService.getUriBasenameLabel(t.resource)}(${t.startLineNumber}, ${t.startColumn}): `,n.title=this._labelService.getUriLabel(t.resource),this._relatedDiagnostics.set(n,t);const o=document.createElement("span");o.innerText=t.message,i.appendChild(n),i.appendChild(o),this._lines+=1,e.appendChild(i)}}const l=this._editor.getOption(46),c=Math.ceil(l.typicalFullwidthCharacterWidth*this._longestLineLength*.75),h=l.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:c,scrollHeight:h})}layout(e,t){this._scrollable.getDomNode().style.height=`${e}px`,this._scrollable.getDomNode().style.width=`${t}px`,this._scrollable.setScrollDimensions({width:t,height:e})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(e){let t="";switch(e.severity){case _.ZL.Error:t=x.NC("Error","Error");break;case _.ZL.Warning:t=x.NC("Warning","Warning");break;case _.ZL.Info:t=x.NC("Info","Info");break;case _.ZL.Hint:t=x.NC("Hint","Hint")}let i=x.NC("marker aria","{0} at {1}. ",t,e.startLineNumber+":"+e.startColumn);const n=this._editor.getModel();if(n&&e.startLineNumber<=n.getLineCount()&&e.startLineNumber>=1){i=`${n.getLineContent(e.startLineNumber)}, ${i}`}return i}}let U=class e extends R.vk{constructor(e,t,i,n,s,r,a){super(e,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},s),this._themeService=t,this._openerService=i,this._menuService=n,this._contextKeyService=r,this._labelService=a,this._callOnDispose=new o.SL,this._onDidSelectRelatedInformation=new h.Q5,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=_.ZL.Warning,this._backgroundColor=M.Il.white,this._applyTheme(t.getColorTheme()),this._callOnDispose.add(t.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(e){this._backgroundColor=e.getColor(ee);let t=G,i=Q;this._severity===_.ZL.Warning?(t=Z,i=Y):this._severity===_.ZL.Info&&(t=J,i=X);const n=e.getColor(t),o=e.getColor(i);this.style({arrowColor:n,frameColor:n,headerBackgroundColor:o,primaryHeadingColor:e.getColor(R.IH),secondaryHeadingColor:e.getColor(R.R7)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),super._applyStyles()}dispose(){this._callOnDispose.dispose(),super.dispose()}_fillHead(t){super._fillHead(t),this._disposables.add(this._actionbarWidget.actionRunner.onBeforeRun((e=>this.editor.focus())));const i=[],n=this._menuService.createMenu(e.TitleMenu,this._contextKeyService);(0,O.vr)(n,void 0,i),this._actionbarWidget.push(i,{label:!1,icon:!0,index:0}),n.dispose()}_fillTitleIcon(e){this._icon=I.R3(e,I.$(""))}_fillBody(e){this._parentContainer=e,e.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),e.appendChild(this._container),this._message=new j(this._container,this.editor,(e=>this._onDidSelectRelatedInformation.fire(e)),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw new Error("call showAtMarker")}showAtMarker(e,t,i){this._container.classList.remove("stale"),this._message.update(e),this._severity=e.severity,this._applyTheme(this._themeService.getColorTheme());const n=l.e.lift(e),o=this.editor.getPosition(),s=o&&n.containsPosition(o)?o:n.getStartPosition();super.show(s,this.computeRequiredHeight());const r=this.editor.getModel();if(r){const e=i>1?x.NC("problems","{0} of {1} problems",t,i):x.NC("change","{0} of {1} problem",t,i);this.setTitle((0,A.EZ)(r.uri),e)}this._icon.className=`codicon ${k.className(_.ZL.toSeverity(this._severity))}`,this.editor.revealPositionNearTop(s,0),this.editor.focus()}updateMarker(e){this._container.classList.remove("stale"),this._message.update(e)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._heightInPixel=e,this._message.layout(e,t),this._container.style.height=`${e}px`}_onWidth(e){this._message.layout(this._heightInPixel,e)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};U.TitleMenu=new D.eH("gotoErrorTitleMenu"),U=H([z(1,W.XE),z(2,F.v4),z(3,D.co),z(4,f.TG),z(5,N.i6),z(6,P.e)],U);const K=(0,V.kwl)(V.lXJ,V.b6y),$=(0,V.kwl)(V.uoC,V.pW3),q=(0,V.kwl)(V.c63,V.T83),G=(0,V.P6G)("editorMarkerNavigationError.background",{dark:K,light:K,hcDark:V.lRK,hcLight:V.lRK},x.NC("editorMarkerNavigationError","Editor marker navigation widget error color.")),Q=(0,V.P6G)("editorMarkerNavigationError.headerBackground",{dark:(0,V.ZnX)(G,.1),light:(0,V.ZnX)(G,.1),hcDark:null,hcLight:null},x.NC("editorMarkerNavigationErrorHeaderBackground","Editor marker navigation widget error heading background.")),Z=(0,V.P6G)("editorMarkerNavigationWarning.background",{dark:$,light:$,hcDark:V.lRK,hcLight:V.lRK},x.NC("editorMarkerNavigationWarning","Editor marker navigation widget warning color.")),Y=(0,V.P6G)("editorMarkerNavigationWarning.headerBackground",{dark:(0,V.ZnX)(Z,.1),light:(0,V.ZnX)(Z,.1),hcDark:"#0C141F",hcLight:(0,V.ZnX)(Z,.2)},x.NC("editorMarkerNavigationWarningBackground","Editor marker navigation widget warning heading background.")),J=(0,V.P6G)("editorMarkerNavigationInfo.background",{dark:q,light:q,hcDark:V.lRK,hcLight:V.lRK},x.NC("editorMarkerNavigationInfo","Editor marker navigation widget info color.")),X=(0,V.P6G)("editorMarkerNavigationInfo.headerBackground",{dark:(0,V.ZnX)(J,.1),light:(0,V.ZnX)(J,.1),hcDark:null,hcLight:null},x.NC("editorMarkerNavigationInfoHeaderBackground","Editor marker navigation widget info heading background.")),ee=(0,V.P6G)("editorMarkerNavigation.background",{dark:V.cvW,light:V.cvW,hcDark:V.cvW,hcLight:V.cvW},x.NC("editorMarkerNavigationBackground","Editor marker navigation widget background."));var te=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ie=function(e,t){return function(i,n){t(i,n,e)}},ne=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let oe=class e{constructor(e,t,i,n,s){this._markerNavigationService=t,this._contextKeyService=i,this._editorService=n,this._instantiationService=s,this._sessionDispoables=new o.SL,this._editor=e,this._widgetVisible=le.bindTo(this._contextKeyService)}static get(t){return t.getContribution(e.ID)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(e){if(this._model&&this._model.matches(e))return this._model;let t=!1;return this._model&&(t=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(e),t&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(U,this._editor),this._widget.onDidClose((()=>this.close()),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition((e=>{var t,i,n;(null===(t=this._model)||void 0===t?void 0:t.selected)&&l.e.containsPosition(null===(i=this._model)||void 0===i?void 0:i.selected.marker,e.position)||null===(n=this._model)||void 0===n||n.resetIndex()}))),this._sessionDispoables.add(this._model.onDidChange((()=>{if(!this._widget||!this._widget.position||!this._model)return;const e=this._model.find(this._editor.getModel().uri,this._widget.position);e?this._widget.updateMarker(e.marker):this._widget.showStale()}))),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation((e=>{this._editorService.openCodeEditor({resource:e.resource,options:{pinned:!0,revealIfOpened:!0,selection:l.e.lift(e).collapseToStart()}},this._editor),this.close(!1)}))),this._sessionDispoables.add(this._editor.onDidChangeModel((()=>this._cleanUp()))),this._model}close(e=!0){this._cleanUp(),e&&this._editor.focus()}showAtMarker(e){if(this._editor.hasModel()){const t=this._getOrCreateModel(this._editor.getModel().uri);t.resetIndex(),t.move(!0,this._editor.getModel(),new a.L(e.startLineNumber,e.startColumn)),t.selected&&this._widget.showAtMarker(t.selected.marker,t.selected.index,t.selected.total)}}nagivate(t,i){var n,o;return ne(this,void 0,void 0,(function*(){if(this._editor.hasModel()){const s=this._getOrCreateModel(i?void 0:this._editor.getModel().uri);if(s.move(t,this._editor.getModel(),this._editor.getPosition()),!s.selected)return;if(s.selected.marker.resource.toString()!==this._editor.getModel().uri.toString()){this._cleanUp();const r=yield this._editorService.openCodeEditor({resource:s.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:s.selected.marker}},this._editor);r&&(null===(n=e.get(r))||void 0===n||n.close(),null===(o=e.get(r))||void 0===o||o.nagivate(t,i))}else this._widget.showAtMarker(s.selected.marker,s.selected.index,s.selected.total)}}))}};oe.ID="editor.contrib.markerController",oe=te([ie(1,S),ie(2,N.i6),ie(3,r.$),ie(4,f.TG)],oe);class se extends s.R6{constructor(e,t,i){super(i),this._next=e,this._multiFile=t}run(e,t){var i;return ne(this,void 0,void 0,(function*(){t.hasModel()&&(null===(i=oe.get(t))||void 0===i||i.nagivate(this._next,this._multiFile))}))}}class re extends se{constructor(){super(!0,!1,{id:re.ID,label:re.LABEL,alias:"Go to Next Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:c.u.focus,primary:578,weight:100},menuOpts:{menuId:U.TitleMenu,title:re.LABEL,icon:(0,E.q5)("marker-navigation-next",n.lA.arrowDown,x.NC("nextMarkerIcon","Icon for goto next marker.")),group:"navigation",order:1}})}}re.ID="editor.action.marker.next",re.LABEL=x.NC("markerAction.next.label","Go to Next Problem (Error, Warning, Info)");class ae extends se{constructor(){super(!1,!1,{id:ae.ID,label:ae.LABEL,alias:"Go to Previous Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:c.u.focus,primary:1602,weight:100},menuOpts:{menuId:U.TitleMenu,title:ae.LABEL,icon:(0,E.q5)("marker-navigation-previous",n.lA.arrowUp,x.NC("previousMarkerIcon","Icon for goto previous marker.")),group:"navigation",order:2}})}}ae.ID="editor.action.marker.prev",ae.LABEL=x.NC("markerAction.previous.label","Go to Previous Problem (Error, Warning, Info)");(0,s._K)(oe.ID,oe),(0,s.Qr)(re),(0,s.Qr)(ae),(0,s.Qr)(class extends se{constructor(){super(!0,!0,{id:"editor.action.marker.nextInFiles",label:x.NC("markerAction.nextInFiles.label","Go to Next Problem in Files (Error, Warning, Info)"),alias:"Go to Next Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:c.u.focus,primary:66,weight:100},menuOpts:{menuId:D.eH.MenubarGoMenu,title:x.NC({key:"miGotoNextProblem",comment:["&& denotes a mnemonic"]},"Next &&Problem"),group:"6_problem_nav",order:1}})}}),(0,s.Qr)(class extends se{constructor(){super(!1,!0,{id:"editor.action.marker.prevInFiles",label:x.NC("markerAction.previousInFiles.label","Go to Previous Problem in Files (Error, Warning, Info)"),alias:"Go to Previous Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:c.u.focus,primary:1090,weight:100},menuOpts:{menuId:D.eH.MenubarGoMenu,title:x.NC({key:"miGotoPreviousProblem",comment:["&& denotes a mnemonic"]},"Previous &&Problem"),group:"6_problem_nav",order:2}})}});const le=new N.uy("markersNavigationVisible",!1),ce=s._l.bindToContribution(oe.get);(0,s.fK)(new ce({id:"closeMarkersNavigation",precondition:le,handler:e=>e.close(),kbOpts:{weight:150,kbExpr:c.u.focus,primary:9,secondary:[1033]}}))},95817:(e,t,i)=>{"use strict";i.d(t,{BT:()=>ne,Bj:()=>ie,_k:()=>te});var n=i(16268),o=i(85152),s=i(15393),r=i(22258),a=i(1432),l=i(98401),c=i(70666),d=i(14410),h=i(65520),u=i(16830),g=i(11640),p=i(84527),m=i(50187),f=i(24314),_=i(29102),v=i(43155),b=i(29010),C=i(1293),w=i(4669),y=i(5976),S=i(95935),L=i(63580),k=i(38819),x=i(65026),D=i(72065),N=i(91847),E=i(49989),I=i(59422),T=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},M=function(e,t){return function(i,n){t(i,n,e)}};const A=new k.uy("hasSymbols",!1,(0,L.NC)("hasSymbols","Whether there are symbol locations that can be navigated via keyboard-only.")),R=(0,D.yh)("ISymbolNavigationService");let O=class{constructor(e,t,i,n){this._editorService=t,this._notificationService=i,this._keybindingService=n,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=A.bindTo(e)}reset(){var e,t;this._ctxHasSymbols.reset(),null===(e=this._currentState)||void 0===e||e.dispose(),null===(t=this._currentMessage)||void 0===t||t.dispose(),this._currentModel=void 0,this._currentIdx=-1}put(e){const t=e.parent.parent;if(t.references.length<=1)return void this.reset();this._currentModel=t,this._currentIdx=t.references.indexOf(e),this._ctxHasSymbols.set(!0),this._showMessage();const i=new P(this._editorService),n=i.onDidChange((e=>{if(this._ignoreEditorChange)return;const i=this._editorService.getActiveCodeEditor();if(!i)return;const n=i.getModel(),o=i.getPosition();if(!n||!o)return;let s=!1,r=!1;for(const a of t.references)if((0,S.Xy)(a.uri,n.uri))s=!0,r=r||f.e.containsPosition(a.range,o);else if(s)break;s&&r||this.reset()}));this._currentState=(0,y.F8)(i,n)}revealNext(e){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;const t=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:t.uri,options:{selection:f.e.collapseToStart(t.range),selectionRevealType:3}},e).finally((()=>{this._ignoreEditorChange=!1}))}_showMessage(){var e;null===(e=this._currentMessage)||void 0===e||e.dispose();const t=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),i=t?(0,L.NC)("location.kb","Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,t.getLabel()):(0,L.NC)("location","Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(i)}};O=T([M(0,k.i6),M(1,g.$),M(2,I.lT),M(3,N.d)],O),(0,x.z)(R,O,!0),(0,u.fK)(new class extends u._l{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:A,kbOpts:{weight:100,primary:70}})}runEditorCommand(e,t){return e.get(R).revealNext(t)}}),E.W.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:A,primary:9,handler(e){e.get(R).reset()}});let P=class{constructor(e){this._listener=new Map,this._disposables=new y.SL,this._onDidChange=new w.Q5,this.onDidChange=this._onDidChange.event,this._disposables.add(e.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(e.onCodeEditorAdd(this._onDidAddEditor,this)),e.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),(0,y.B9)(this._listener.values())}_onDidAddEditor(e){this._listener.set(e,(0,y.F8)(e.onDidChangeCursorPosition((t=>this._onDidChange.fire({editor:e}))),e.onDidChangeModelContent((t=>this._onDidChange.fire({editor:e})))))}_onDidRemoveEditor(e){var t;null===(t=this._listener.get(e))||void 0===t||t.dispose(),this._listener.delete(e)}};P=T([M(0,g.$)],P);var F,B,V,W,H,z,j,U,K=i(27753),$=i(36943),q=i(84144),G=i(94565),Q=i(90535),Z=i(40184),Y=i(71922),J=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};q.BH.appendMenuItem(q.eH.EditorContext,{submenu:q.eH.EditorContextPeek,title:L.NC("peek.submenu","Peek"),group:"navigation",order:100});const X=new Set;function ee(e){const t=new e;return(0,u.QG)(t),X.add(t.id),t}class te{constructor(e,t){this.model=e,this.position=t}static is(e){return!(!e||"object"!=typeof e)&&(e instanceof te||!(!m.L.isIPosition(e.position)||!e.model))}}class ie extends u.R6{constructor(e,t){super(t),this.configuration=e}run(e,t,i){if(!t.hasModel())return Promise.resolve(void 0);const n=e.get(I.lT),r=e.get(g.$),a=e.get(Q.ek),l=e.get(R),c=e.get(Y.p),h=t.getModel(),u=t.getPosition(),p=te.is(i)?i:new te(h,u),m=new d.Dl(t,5),f=(0,s.eP)(this._getLocationModel(c,p.model,p.position,m.token),m.token).then((e=>J(this,void 0,void 0,(function*(){var i;if(!e||m.token.isCancellationRequested)return;let n;if((0,o.Z9)(e.ariaMessage),e.referenceAt(h.uri,u)){const e=this._getAlternativeCommand(t);!ie._activeAlternativeCommands.has(e)&&X.has(e)&&(n=t.getAction(e))}const s=e.references.length;if(0===s){if(!this.configuration.muteMessage){const e=h.getWordAtPosition(u);null===(i=K.O.get(t))||void 0===i||i.showMessage(this._getNoResultFoundMessage(e),u)}}else{if(1!==s||!n)return this._onResult(r,l,t,e);ie._activeAlternativeCommands.add(this.id),n.run().finally((()=>{ie._activeAlternativeCommands.delete(this.id)}))}}))),(e=>{n.error(e)})).finally((()=>{m.dispose()}));return a.showWhile(f,250),f}_onResult(e,t,i,n){return J(this,void 0,void 0,(function*(){const o=this._getGoToPreference(i);if(i instanceof p.H||!(this.configuration.openInPeek||"peek"===o&&n.references.length>1)){const s=n.firstReference(),r=n.references.length>1&&"gotoAndPeek"===o,a=yield this._openReference(i,e,s,this.configuration.openToSide,!r);r&&a?this._openInPeek(a,n):n.dispose(),"goto"===o&&t.put(s)}else this._openInPeek(i,n)}))}_openReference(e,t,i,n,o){return J(this,void 0,void 0,(function*(){let s;if((0,v.vx)(i)&&(s=i.targetSelectionRange),s||(s=i.range),!s)return;const r=yield t.openCodeEditor({resource:i.uri,options:{selection:f.e.collapseToStart(s),selectionRevealType:3,selectionSource:"code.jump"}},e,n);if(r){if(o){const e=r.getModel(),t=r.createDecorationsCollection([{range:s,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout((()=>{r.getModel()===e&&t.clear()}),350)}return r}}))}_openInPeek(e,t){const i=b.J.get(e);i&&e.hasModel()?i.toggleWidget(e.getSelection(),(0,s.PG)((e=>Promise.resolve(t))),this.configuration.openInPeek):t.dispose()}}ie._activeAlternativeCommands=new Set;class ne extends ie{_getLocationModel(e,t,i,n){return J(this,void 0,void 0,(function*(){return new C.oQ(yield(0,Z.nD)(e.definitionProvider,t,i,n),L.NC("def.title","Definitions"))}))}_getNoResultFoundMessage(e){return e&&e.word?L.NC("noResultWord","No definition found for '{0}'",e.word):L.NC("generic.noResults","No definition found")}_getAlternativeCommand(e){return e.getOption(53).alternativeDefinitionCommand}_getGoToPreference(e){return e.getOption(53).multipleDefinitions}}const oe=a.$L&&!(0,n.isStandalone)()?2118:70;ee(((F=class e extends ne{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:e.id,label:L.NC("actions.goToDecl.label","Go to Definition"),alias:"Go to Definition",precondition:k.Ao.and(_.u.hasDefinitionProvider,_.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:_.u.editorTextFocus,primary:oe,weight:100},contextMenuOpts:{group:"navigation",order:1.1}}),G.P0.registerCommandAlias("editor.action.goToDeclaration",e.id)}}).id="editor.action.revealDefinition",F)),ee(((B=class e extends ne{constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:e.id,label:L.NC("actions.goToDeclToSide.label","Open Definition to the Side"),alias:"Open Definition to the Side",precondition:k.Ao.and(_.u.hasDefinitionProvider,_.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:_.u.editorTextFocus,primary:(0,r.gx)(2089,oe),weight:100}}),G.P0.registerCommandAlias("editor.action.openDeclarationToTheSide",e.id)}}).id="editor.action.revealDefinitionAside",B)),ee(((V=class e extends ne{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:e.id,label:L.NC("actions.previewDecl.label","Peek Definition"),alias:"Peek Definition",precondition:k.Ao.and(_.u.hasDefinitionProvider,$.Jy.notInPeekEditor,_.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:_.u.editorTextFocus,primary:582,linux:{primary:3140},weight:100},contextMenuOpts:{menuId:q.eH.EditorContextPeek,group:"peek",order:2}}),G.P0.registerCommandAlias("editor.action.previewDeclaration",e.id)}}).id="editor.action.peekDefinition",V));class se extends ie{_getLocationModel(e,t,i,n){return J(this,void 0,void 0,(function*(){return new C.oQ(yield(0,Z.zq)(e.declarationProvider,t,i,n),L.NC("decl.title","Declarations"))}))}_getNoResultFoundMessage(e){return e&&e.word?L.NC("decl.noResultWord","No declaration found for '{0}'",e.word):L.NC("decl.generic.noResults","No declaration found")}_getAlternativeCommand(e){return e.getOption(53).alternativeDeclarationCommand}_getGoToPreference(e){return e.getOption(53).multipleDeclarations}}ee(((W=class e extends se{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:e.id,label:L.NC("actions.goToDeclaration.label","Go to Declaration"),alias:"Go to Declaration",precondition:k.Ao.and(_.u.hasDeclarationProvider,_.u.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{group:"navigation",order:1.3}})}_getNoResultFoundMessage(e){return e&&e.word?L.NC("decl.noResultWord","No declaration found for '{0}'",e.word):L.NC("decl.generic.noResults","No declaration found")}}).id="editor.action.revealDeclaration",W)),ee(class extends se{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",label:L.NC("actions.peekDecl.label","Peek Declaration"),alias:"Peek Declaration",precondition:k.Ao.and(_.u.hasDeclarationProvider,$.Jy.notInPeekEditor,_.u.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{menuId:q.eH.EditorContextPeek,group:"peek",order:3}})}});class re extends ie{_getLocationModel(e,t,i,n){return J(this,void 0,void 0,(function*(){return new C.oQ(yield(0,Z.L3)(e.typeDefinitionProvider,t,i,n),L.NC("typedef.title","Type Definitions"))}))}_getNoResultFoundMessage(e){return e&&e.word?L.NC("goToTypeDefinition.noResultWord","No type definition found for '{0}'",e.word):L.NC("goToTypeDefinition.generic.noResults","No type definition found")}_getAlternativeCommand(e){return e.getOption(53).alternativeTypeDefinitionCommand}_getGoToPreference(e){return e.getOption(53).multipleTypeDefinitions}}ee(((H=class e extends re{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:e.ID,label:L.NC("actions.goToTypeDefinition.label","Go to Type Definition"),alias:"Go to Type Definition",precondition:k.Ao.and(_.u.hasTypeDefinitionProvider,_.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:_.u.editorTextFocus,primary:0,weight:100},contextMenuOpts:{group:"navigation",order:1.4}})}}).ID="editor.action.goToTypeDefinition",H)),ee(((z=class e extends re{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:e.ID,label:L.NC("actions.peekTypeDefinition.label","Peek Type Definition"),alias:"Peek Type Definition",precondition:k.Ao.and(_.u.hasTypeDefinitionProvider,$.Jy.notInPeekEditor,_.u.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{menuId:q.eH.EditorContextPeek,group:"peek",order:4}})}}).ID="editor.action.peekTypeDefinition",z));class ae extends ie{_getLocationModel(e,t,i,n){return J(this,void 0,void 0,(function*(){return new C.oQ(yield(0,Z.f4)(e.implementationProvider,t,i,n),L.NC("impl.title","Implementations"))}))}_getNoResultFoundMessage(e){return e&&e.word?L.NC("goToImplementation.noResultWord","No implementation found for '{0}'",e.word):L.NC("goToImplementation.generic.noResults","No implementation found")}_getAlternativeCommand(e){return e.getOption(53).alternativeImplementationCommand}_getGoToPreference(e){return e.getOption(53).multipleImplementations}}ee(((j=class e extends ae{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:e.ID,label:L.NC("actions.goToImplementation.label","Go to Implementations"),alias:"Go to Implementations",precondition:k.Ao.and(_.u.hasImplementationProvider,_.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:_.u.editorTextFocus,primary:2118,weight:100},contextMenuOpts:{group:"navigation",order:1.45}})}}).ID="editor.action.goToImplementation",j)),ee(((U=class e extends ae{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:e.ID,label:L.NC("actions.peekImplementation.label","Peek Implementations"),alias:"Peek Implementations",precondition:k.Ao.and(_.u.hasImplementationProvider,$.Jy.notInPeekEditor,_.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:_.u.editorTextFocus,primary:3142,weight:100},contextMenuOpts:{menuId:q.eH.EditorContextPeek,group:"peek",order:5}})}}).ID="editor.action.peekImplementation",U));class le extends ie{_getNoResultFoundMessage(e){return e?L.NC("references.no","No references found for '{0}'",e.word):L.NC("references.noGeneric","No references found")}_getAlternativeCommand(e){return e.getOption(53).alternativeReferenceCommand}_getGoToPreference(e){return e.getOption(53).multipleReferences}}ee(class extends le{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",label:L.NC("goToReferences.label","Go to References"),alias:"Go to References",precondition:k.Ao.and(_.u.hasReferenceProvider,$.Jy.notInPeekEditor,_.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:_.u.editorTextFocus,primary:1094,weight:100},contextMenuOpts:{group:"navigation",order:1.45}})}_getLocationModel(e,t,i,n){return J(this,void 0,void 0,(function*(){return new C.oQ(yield(0,Z.aA)(e.referenceProvider,t,i,!0,n),L.NC("ref.title","References"))}))}}),ee(class extends le{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",label:L.NC("references.action.label","Peek References"),alias:"Peek References",precondition:k.Ao.and(_.u.hasReferenceProvider,$.Jy.notInPeekEditor,_.u.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{menuId:q.eH.EditorContextPeek,group:"peek",order:6}})}_getLocationModel(e,t,i,n){return J(this,void 0,void 0,(function*(){return new C.oQ(yield(0,Z.aA)(e.referenceProvider,t,i,!1,n),L.NC("ref.title","References"))}))}});class ce extends ie{constructor(e,t,i){super(e,{id:"editor.action.goToLocation",label:L.NC("label.generic","Go to Any Symbol"),alias:"Go to Any Symbol",precondition:k.Ao.and($.Jy.notInPeekEditor,_.u.isInWalkThroughSnippet.toNegated())}),this._references=t,this._gotoMultipleBehaviour=i}_getLocationModel(e,t,i,n){return J(this,void 0,void 0,(function*(){return new C.oQ(this._references,L.NC("generic.title","Locations"))}))}_getNoResultFoundMessage(e){return e&&L.NC("generic.noResult","No results for '{0}'",e.word)||""}_getGoToPreference(e){var t;return null!==(t=this._gotoMultipleBehaviour)&&void 0!==t?t:e.getOption(53).multipleReferences}_getAlternativeCommand(){return""}}G.P0.registerCommand({id:"editor.action.goToLocations",description:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:c.o},{name:"position",description:"The position at which to start",constraint:m.L.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:(e,t,i,n,o,s,r)=>J(void 0,void 0,void 0,(function*(){(0,l.p_)(c.o.isUri(t)),(0,l.p_)(m.L.isIPosition(i)),(0,l.p_)(Array.isArray(n)),(0,l.p_)(void 0===o||"string"==typeof o),(0,l.p_)(void 0===r||"boolean"==typeof r);const a=e.get(g.$),d=yield a.openCodeEditor({resource:t},a.getFocusedCodeEditor());if((0,h.CL)(d))return d.setPosition(i),d.revealPositionInCenterIfOutsideViewport(i,0),d.invokeWithinContext((e=>{const t=new class extends ce{_getNoResultFoundMessage(e){return s||super._getNoResultFoundMessage(e)}}({muteMessage:!Boolean(s),openInPeek:Boolean(r),openToSide:!1},n,o);e.get(D.TG).invokeFunction(t.run.bind(t),d)}))}))}),G.P0.registerCommand({id:"editor.action.peekLocations",description:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:c.o},{name:"position",description:"The position at which to start",constraint:m.L.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto"}]},handler:(e,t,i,n,o)=>J(void 0,void 0,void 0,(function*(){e.get(G.Hy).executeCommand("editor.action.goToLocations",t,i,n,o,void 0,!0)}))}),G.P0.registerCommand({id:"editor.action.findReferences",handler:(e,t,i)=>{(0,l.p_)(c.o.isUri(t)),(0,l.p_)(m.L.isIPosition(i));const n=e.get(Y.p),o=e.get(g.$);return o.openCodeEditor({resource:t},o.getFocusedCodeEditor()).then((e=>{if(!(0,h.CL)(e)||!e.hasModel())return;const t=b.J.get(e);if(!t)return;const o=(0,s.PG)((t=>(0,Z.aA)(n.referenceProvider,e.getModel(),m.L.lift(i),!1,t).then((e=>new C.oQ(e,L.NC("ref.title","References")))))),r=new f.e(i.lineNumber,i.column,i.lineNumber,i.column);return Promise.resolve(t.toggleWidget(r,o,!1))}))}}),G.P0.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations"),q.BH.appendMenuItems([{id:q.eH.MenubarGoMenu,item:{command:{id:"editor.action.revealDefinition",title:L.NC({key:"miGotoDefinition",comment:["&& denotes a mnemonic"]},"Go to &&Definition")},group:"4_symbol_nav",order:2}},{id:q.eH.MenubarGoMenu,item:{command:{id:"editor.action.revealDeclaration",title:L.NC({key:"miGotoDeclaration",comment:["&& denotes a mnemonic"]},"Go to &&Declaration")},group:"4_symbol_nav",order:3}},{id:q.eH.MenubarGoMenu,item:{command:{id:"editor.action.goToTypeDefinition",title:L.NC({key:"miGotoTypeDefinition",comment:["&& denotes a mnemonic"]},"Go to &&Type Definition")},group:"4_symbol_nav",order:3}},{id:q.eH.MenubarGoMenu,item:{command:{id:"editor.action.goToImplementation",title:L.NC({key:"miGotoImplementation",comment:["&& denotes a mnemonic"]},"Go to &&Implementations")},group:"4_symbol_nav",order:4}},{id:q.eH.MenubarGoMenu,item:{command:{id:"editor.action.goToReferences",title:L.NC({key:"miGotoReference",comment:["&& denotes a mnemonic"]},"Go to &&References")},group:"4_symbol_nav",order:5}}])},40184:(e,t,i)=>{"use strict";i.d(t,{L3:()=>g,aA:()=>p,f4:()=>u,nD:()=>d,zq:()=>h});var n=i(71050),o=i(17301),s=i(16830),r=i(1293),a=i(71922),l=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};function c(e,t,i,n){const s=i.ordered(e).map((i=>Promise.resolve(n(i,e,t)).then(void 0,(e=>{(0,o.Cp)(e)}))));return Promise.all(s).then((e=>{const t=[];for(const i of e)Array.isArray(i)?t.push(...i):i&&t.push(i);return t}))}function d(e,t,i,n){return c(t,i,e,((e,t,i)=>e.provideDefinition(t,i,n)))}function h(e,t,i,n){return c(t,i,e,((e,t,i)=>e.provideDeclaration(t,i,n)))}function u(e,t,i,n){return c(t,i,e,((e,t,i)=>e.provideImplementation(t,i,n)))}function g(e,t,i,n){return c(t,i,e,((e,t,i)=>e.provideTypeDefinition(t,i,n)))}function p(e,t,i,n,o){return c(t,i,e,((e,t,i)=>l(this,void 0,void 0,(function*(){const s=yield e.provideReferences(t,i,{includeDeclaration:!0},o);if(!n||!s||2!==s.length)return s;const r=yield e.provideReferences(t,i,{includeDeclaration:!1},o);return r&&1===r.length?r:s}))))}function m(e){return l(this,void 0,void 0,(function*(){const t=yield e(),i=new r.oQ(t,""),n=i.references.map((e=>e.link));return i.dispose(),n}))}(0,s.sb)("_executeDefinitionProvider",((e,t,i)=>{const o=d(e.get(a.p).definitionProvider,t,i,n.T.None);return m((()=>o))})),(0,s.sb)("_executeTypeDefinitionProvider",((e,t,i)=>{const o=g(e.get(a.p).typeDefinitionProvider,t,i,n.T.None);return m((()=>o))})),(0,s.sb)("_executeDeclarationProvider",((e,t,i)=>{const o=h(e.get(a.p).declarationProvider,t,i,n.T.None);return m((()=>o))})),(0,s.sb)("_executeReferenceProvider",((e,t,i)=>{const o=p(e.get(a.p).referenceProvider,t,i,!1,n.T.None);return m((()=>o))})),(0,s.sb)("_executeImplementationProvider",((e,t,i)=>{const o=u(e.get(a.p).implementationProvider,t,i,n.T.None);return m((()=>o))}))},82005:(e,t,i)=>{"use strict";i.d(t,{yN:()=>h});var n=i(4669),o=i(5976),s=i(1432);function r(e,t){return!!e[t]}class a{constructor(e,t){this.target=e.target,this.hasTriggerModifier=r(e.event,t.triggerModifier),this.hasSideBySideModifier=r(e.event,t.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=e.event.detail<=1}}class l{constructor(e,t){this.keyCodeIsTriggerKey=e.keyCode===t.triggerKey,this.keyCodeIsSideBySideKey=e.keyCode===t.triggerSideBySideKey,this.hasTriggerModifier=r(e,t.triggerModifier)}}class c{constructor(e,t,i,n){this.triggerKey=e,this.triggerModifier=t,this.triggerSideBySideKey=i,this.triggerSideBySideModifier=n}equals(e){return this.triggerKey===e.triggerKey&&this.triggerModifier===e.triggerModifier&&this.triggerSideBySideKey===e.triggerSideBySideKey&&this.triggerSideBySideModifier===e.triggerSideBySideModifier}}function d(e){return"altKey"===e?s.dz?new c(57,"metaKey",6,"altKey"):new c(5,"ctrlKey",6,"altKey"):s.dz?new c(6,"altKey",57,"metaKey"):new c(6,"altKey",5,"ctrlKey")}class h extends o.JT{constructor(e){super(),this._onMouseMoveOrRelevantKeyDown=this._register(new n.Q5),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new n.Q5),this.onExecute=this._onExecute.event,this._onCancel=this._register(new n.Q5),this.onCancel=this._onCancel.event,this._editor=e,this._opts=d(this._editor.getOption(72)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration((e=>{if(e.hasChanged(72)){const e=d(this._editor.getOption(72));if(this._opts.equals(e))return;this._opts=e,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}}))),this._register(this._editor.onMouseMove((e=>this._onEditorMouseMove(new a(e,this._opts))))),this._register(this._editor.onMouseDown((e=>this._onEditorMouseDown(new a(e,this._opts))))),this._register(this._editor.onMouseUp((e=>this._onEditorMouseUp(new a(e,this._opts))))),this._register(this._editor.onKeyDown((e=>this._onEditorKeyDown(new l(e,this._opts))))),this._register(this._editor.onKeyUp((e=>this._onEditorKeyUp(new l(e,this._opts))))),this._register(this._editor.onMouseDrag((()=>this._resetHandler()))),this._register(this._editor.onDidChangeCursorSelection((e=>this._onDidChangeCursorSelection(e)))),this._register(this._editor.onDidChangeModel((e=>this._resetHandler()))),this._register(this._editor.onDidChangeModelContent((()=>this._resetHandler()))),this._register(this._editor.onDidScrollChange((e=>{(e.scrollTopChanged||e.scrollLeftChanged)&&this._resetHandler()})))}_onDidChangeCursorSelection(e){e.selection&&e.selection.startColumn!==e.selection.endColumn&&this._resetHandler()}_onEditorMouseMove(e){this._lastMouseMoveEvent=e,this._onMouseMoveOrRelevantKeyDown.fire([e,null])}_onEditorMouseDown(e){this._hasTriggerKeyOnMouseDown=e.hasTriggerModifier,this._lineNumberOnMouseDown=e.target.position?e.target.position.lineNumber:0}_onEditorMouseUp(e){const t=e.target.position?e.target.position.lineNumber:0;this._hasTriggerKeyOnMouseDown&&this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===t&&this._onExecute.fire(e)}_onEditorKeyDown(e){this._lastMouseMoveEvent&&(e.keyCodeIsTriggerKey||e.keyCodeIsSideBySideKey&&e.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,e]):e.hasTriggerModifier&&this._onCancel.fire()}_onEditorKeyUp(e){e.keyCodeIsTriggerKey&&this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}},22470:(e,t,i)=>{"use strict";i.d(t,{S:()=>L});var n=i(15393),o=i(17301),s=i(59365),r=i(5976),a=i(98401),l=i(14410),c=i(16830),d=i(24314),h=i(72042),u=i(88216),g=i(82005),p=i(36943),m=i(63580),f=i(38819),_=i(73910),v=i(97781),b=i(95817),C=i(40184),w=i(71922),y=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},S=function(e,t){return function(i,n){t(i,n,e)}};let L=class e{constructor(e,t,i,n){this.textModelResolverService=t,this.languageService=i,this.languageFeaturesService=n,this.toUnhook=new r.SL,this.toUnhookForKeyboard=new r.SL,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=e,this.linkDecorations=this.editor.createDecorationsCollection();const s=new g.yN(e);this.toUnhook.add(s),this.toUnhook.add(s.onMouseMoveOrRelevantKeyDown((([e,t])=>{this.startFindDefinitionFromMouse(e,(0,a.f6)(t))}))),this.toUnhook.add(s.onExecute((e=>{this.isEnabled(e)&&this.gotoDefinition(e.target.position,e.hasSideBySideModifier).then((()=>{this.removeLinkDecorations()}),(e=>{this.removeLinkDecorations(),(0,o.dL)(e)}))}))),this.toUnhook.add(s.onCancel((()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null})))}static get(t){return t.getContribution(e.ID)}startFindDefinitionFromCursor(e){return this.startFindDefinition(e).then((()=>{this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition((()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()}))),this.toUnhookForKeyboard.add(this.editor.onKeyDown((e=>{e&&(this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear())})))}))}startFindDefinitionFromMouse(e,t){if(9===e.target.type&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(e,t))return this.currentWordAtPosition=null,void this.removeLinkDecorations();const i=e.target.position;this.startFindDefinition(i)}startFindDefinition(e){var t;this.toUnhookForKeyboard.clear();const i=e?null===(t=this.editor.getModel())||void 0===t?void 0:t.getWordAtPosition(e):null;if(!i)return this.currentWordAtPosition=null,this.removeLinkDecorations(),Promise.resolve(0);if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===i.startColumn&&this.currentWordAtPosition.endColumn===i.endColumn&&this.currentWordAtPosition.word===i.word)return Promise.resolve(0);this.currentWordAtPosition=i;const r=new l.yy(this.editor,15);return this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=(0,n.PG)((t=>this.findDefinition(e,t))),this.previousPromise.then((t=>{if(t&&t.length&&r.validate(this.editor))if(t.length>1)this.addDecoration(new d.e(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn),(new s.W5).appendText(m.NC("multipleResults","Click to show {0} definitions.",t.length)));else{const n=t[0];if(!n.uri)return;this.textModelResolverService.createModelReference(n.uri).then((t=>{if(!t.object||!t.object.textEditorModel)return void t.dispose();const{object:{textEditorModel:o}}=t,{startLineNumber:r}=n.range;if(r<1||r>o.getLineCount())return void t.dispose();const a=this.getPreviewValue(o,r,n);let l;l=n.originSelectionRange?d.e.lift(n.originSelectionRange):new d.e(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn);const c=this.languageService.guessLanguageIdByFilepathOrFirstLine(o.uri);this.addDecoration(l,(new s.W5).appendCodeblock(c||"",a)),t.dispose()}))}else this.removeLinkDecorations()})).then(void 0,o.dL)}getPreviewValue(t,i,n){let o=n.range;o.endLineNumber-o.startLineNumber>=e.MAX_SOURCE_PREVIEW_LINES&&(o=this.getPreviewRangeBasedOnIndentation(t,i));return this.stripIndentationFromPreviewRange(t,i,o)}stripIndentationFromPreviewRange(e,t,i){let n=e.getLineFirstNonWhitespaceColumn(t);for(let o=t+1;o<i.endLineNumber;o++){const t=e.getLineFirstNonWhitespaceColumn(o);n=Math.min(n,t)}return e.getValueInRange(i).replace(new RegExp(`^\\s{${n-1}}`,"gm"),"").trim()}getPreviewRangeBasedOnIndentation(t,i){const n=t.getLineFirstNonWhitespaceColumn(i),o=Math.min(t.getLineCount(),i+e.MAX_SOURCE_PREVIEW_LINES);let s=i+1;for(;s<o;s++){if(n===t.getLineFirstNonWhitespaceColumn(s))break}return new d.e(i,1,s+1,1)}addDecoration(e,t){const i={range:e,options:{description:"goto-definition-link",inlineClassName:"goto-definition-link",hoverMessage:t}};this.linkDecorations.set([i])}removeLinkDecorations(){this.linkDecorations.clear()}isEnabled(e,t){return this.editor.hasModel()&&e.isNoneOrSingleMouseDown&&6===e.target.type&&(e.hasTriggerModifier||!!t&&t.keyCodeIsTriggerKey)&&this.languageFeaturesService.definitionProvider.has(this.editor.getModel())}findDefinition(e,t){const i=this.editor.getModel();return i?(0,C.nD)(this.languageFeaturesService.definitionProvider,i,e,t):Promise.resolve(null)}gotoDefinition(e,t){return this.editor.setPosition(e),this.editor.invokeWithinContext((e=>{const i=!t&&this.editor.getOption(80)&&!this.isInPeekEditor(e);return new b.BT({openToSide:t,openInPeek:i,muteMessage:!0},{alias:"",label:"",id:"",precondition:void 0}).run(e,this.editor)}))}isInPeekEditor(e){const t=e.get(f.i6);return p.Jy.inPeekEditor.getValue(t)}dispose(){this.toUnhook.dispose()}};L.ID="editor.contrib.gotodefinitionatposition",L.MAX_SOURCE_PREVIEW_LINES=8,L=y([S(1,u.S),S(2,h.O),S(3,w.p)],L),(0,c._K)(L.ID,L),(0,v.Ic)(((e,t)=>{const i=e.getColor(_._Yy);i&&t.addRule(`.monaco-editor .goto-definition-link { color: ${i} !important; }`)}))},29010:(e,t,i)=>{"use strict";i.d(t,{J:()=>ce});var n=i(15393),o=i(17301),s=i(22258),r=i(5976),a=i(11640),l=i(50187),c=i(24314),d=i(36943),h=i(63580),u=i(94565),g=i(33108),p=i(38819),m=i(72065),f=i(49989),_=i(74615),v=i(59422),b=i(87060),C=i(1293),w=i(65321),y=i(23937),S=i(41264),L=i(4669),k=i(66663),x=i(95935),D=i(84527),N=i(22529),E=i(4256),I=i(68801),T=i(72042),M=i(88216),A=i(67488),R=i(34650),O=i(59834),P=i(48357),F=i(91847),B=i(44349),V=i(88810),W=i(97781),H=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},z=function(e,t){return function(i,n){t(i,n,e)}};let j=class{constructor(e){this._resolverService=e}hasChildren(e){return e instanceof C.oQ||e instanceof C.F2}getChildren(e){if(e instanceof C.oQ)return e.groups;if(e instanceof C.F2)return e.resolve(this._resolverService).then((e=>e.children));throw new Error("bad tree")}};j=H([z(0,M.S)],j);class U{getHeight(){return 23}getTemplateId(e){return e instanceof C.F2?G.id:Z.id}}let K=class{constructor(e){this._keybindingService=e}getKeyboardNavigationLabel(e){var t;if(e instanceof C.WX){const i=null===(t=e.parent.getPreview(e))||void 0===t?void 0:t.preview(e.range);if(i)return i.value}return(0,x.EZ)(e.uri)}};K=H([z(0,F.d)],K);class ${getId(e){return e instanceof C.WX?e.id:e.uri}}let q=class extends r.JT{constructor(e,t,i){super(),this._labelService=t;const n=document.createElement("div");n.classList.add("reference-file"),this.file=this._register(new O.g(n,{supportHighlights:!0})),this.badge=new A.Z(w.R3(n,w.$(".count"))),this._register((0,V.WZ)(this.badge,i)),e.appendChild(n)}set(e,t){const i=(0,x.XX)(e.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(e.uri),this._labelService.getUriLabel(i,{relative:!0}),{title:this._labelService.getUriLabel(e.uri),matches:t});const n=e.children.length;this.badge.setCount(n),n>1?this.badge.setTitleFormat((0,h.NC)("referencesCount","{0} references",n)):this.badge.setTitleFormat((0,h.NC)("referenceCount","{0} reference",n))}};q=H([z(1,B.e),z(2,W.XE)],q);let G=class e{constructor(t){this._instantiationService=t,this.templateId=e.id}renderTemplate(e){return this._instantiationService.createInstance(q,e)}renderElement(e,t,i){i.set(e.element,(0,P.mB)(e.filterData))}disposeTemplate(e){e.dispose()}};G.id="FileReferencesRenderer",G=H([z(0,m.TG)],G);class Q{constructor(e){this.label=new R.q(e)}set(e,t){var i;const n=null===(i=e.parent.getPreview(e))||void 0===i?void 0:i.preview(e.range);if(n&&n.value){const{value:e,highlight:i}=n;t&&!P.CL.isDefault(t)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(e,(0,P.mB)(t))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(e,[i]))}else this.label.set(`${(0,x.EZ)(e.uri)}:${e.range.startLineNumber+1}:${e.range.startColumn+1}`)}}class Z{constructor(){this.templateId=Z.id}renderTemplate(e){return new Q(e)}renderElement(e,t,i){i.set(e.element,e.filterData)}disposeTemplate(){}}Z.id="OneReferenceRenderer";class Y{getWidgetAriaLabel(){return(0,h.NC)("treeAriaLabel","References")}getAriaLabel(e){return e.ariaMessage}}var J=i(64862),X=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ee=function(e,t){return function(i,n){t(i,n,e)}},te=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class ie{constructor(e,t){this._editor=e,this._model=t,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new r.SL,this._callOnModelChange=new r.SL,this._callOnDispose.add(this._editor.onDidChangeModel((()=>this._onModelChanged()))),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();const e=this._editor.getModel();if(e)for(const t of this._model.references)if(t.uri.toString()===e.uri.toString())return void this._addDecorations(t.parent)}_addDecorations(e){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations((()=>this._onDecorationChanged())));const t=[],i=[];for(let n=0,o=e.children.length;n<o;n++){const o=e.children[n];this._decorationIgnoreSet.has(o.id)||o.uri.toString()===this._editor.getModel().uri.toString()&&(t.push({range:o.range,options:ie.DecorationOptions}),i.push(n))}this._editor.changeDecorations((n=>{const o=n.deltaDecorations([],t);for(let t=0;t<o.length;t++)this._decorations.set(o[t],e.children[i[t]])}))}_onDecorationChanged(){const e=[],t=this._editor.getModel();if(t){for(const[i,n]of this._decorations){const o=t.getDecorationRange(i);if(!o)continue;let s=!1;if(!c.e.equalsRange(o,n.range)){if(c.e.spansMultipleLines(o))s=!0;else{n.range.endColumn-n.range.startColumn!==o.endColumn-o.startColumn&&(s=!0)}s?(this._decorationIgnoreSet.add(n.id),e.push(i)):n.range=o}}for(let t=0,i=e.length;t<i;t++)this._decorations.delete(e[t]);this._editor.removeDecorations(e)}}removeDecorations(){this._editor.removeDecorations([...this._decorations.keys()]),this._decorations.clear()}}ie.DecorationOptions=N.qx.register({description:"reference-decoration",stickiness:1,className:"reference-decoration"});class ne extends _.ls{}let oe=class extends d.vk{constructor(e,t,i,n,o,s,a,l,c,d,h,u){super(e,{showFrame:!1,showArrow:!0,isResizeable:!0,isAccessible:!0,supportOnTitleClick:!0},s),this._defaultTreeKeyboardSupport=t,this.layoutData=i,this._textModelResolverService=o,this._instantiationService=s,this._peekViewService=a,this._uriLabel=l,this._undoRedoService=c,this._keybindingService=d,this._languageService=h,this._languageConfigurationService=u,this._disposeOnNewModel=new r.SL,this._callOnDispose=new r.SL,this._onDidSelectReference=new L.Q5,this.onDidSelectReference=this._onDidSelectReference.event,this._dim=new w.Ro(0,0),this._applyTheme(n.getColorTheme()),this._callOnDispose.add(n.onDidColorThemeChange(this._applyTheme.bind(this))),this._peekViewService.addExclusiveWidget(e,this),this.create()}dispose(){this.setModel(void 0),this._callOnDispose.dispose(),this._disposeOnNewModel.dispose(),(0,r.B9)(this._preview),(0,r.B9)(this._previewNotAvailableMessage),(0,r.B9)(this._tree),(0,r.B9)(this._previewModelReference),this._splitView.dispose(),super.dispose()}_applyTheme(e){const t=e.getColor(d.SC)||S.Il.transparent;this.style({arrowColor:t,frameColor:t,headerBackgroundColor:e.getColor(d.KY)||S.Il.transparent,primaryHeadingColor:e.getColor(d.IH),secondaryHeadingColor:e.getColor(d.R7)})}show(e){super.show(e,this.layoutData.heightInLines||18)}focusOnReferenceTree(){this._tree.domFocus()}focusOnPreviewEditor(){this._preview.focus()}isPreviewEditorFocused(){return this._preview.hasTextFocus()}_onTitleClick(e){this._preview&&this._preview.getModel()&&this._onDidSelectReference.fire({element:this._getFocusedReference(),kind:e.ctrlKey||e.metaKey||e.altKey?"side":"open",source:"title"})}_fillBody(e){this.setCssClass("reference-zone-widget"),this._messageContainer=w.R3(e,w.$("div.messages")),w.Cp(this._messageContainer),this._splitView=new y.z(e,{orientation:1}),this._previewContainer=w.R3(e,w.$("div.preview.inline"));this._preview=this._instantiationService.createInstance(D.H,this._previewContainer,{scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:14,horizontal:"auto",useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,alwaysConsumeMouseWheel:!1},overviewRulerLanes:2,fixedOverflowWidgets:!0,minimap:{enabled:!1}},this.editor),w.Cp(this._previewContainer),this._previewNotAvailableMessage=new N.yO(h.NC("missingPreviewMessage","no preview available"),I.bd,N.yO.DEFAULT_CREATION_OPTIONS,null,this._undoRedoService,this._languageService,this._languageConfigurationService),this._treeContainer=w.R3(e,w.$("div.ref-tree.inline"));const t={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new Y,keyboardNavigationLabelProvider:this._instantiationService.createInstance(K),identityProvider:new $,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:d.M8}};this._defaultTreeKeyboardSupport&&this._callOnDispose.add(w.mu(this._treeContainer,"keydown",(e=>{e.equals(9)&&(this._keybindingService.dispatchEvent(e,e.target),e.stopPropagation())}),!0)),this._tree=this._instantiationService.createInstance(ne,"ReferencesWidget",this._treeContainer,new U,[this._instantiationService.createInstance(G),this._instantiationService.createInstance(Z)],this._instantiationService.createInstance(j),t),this._splitView.addView({onDidChange:L.ju.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:e=>{this._preview.layout({height:this._dim.height,width:e})}},y.M.Distribute),this._splitView.addView({onDidChange:L.ju.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:e=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${e}px`,this._tree.layout(this._dim.height,e)}},y.M.Distribute),this._disposables.add(this._splitView.onDidSashChange((()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)}),void 0));const i=(e,t)=>{e instanceof C.WX&&("show"===t&&this._revealReference(e,!1),this._onDidSelectReference.fire({element:e,kind:t,source:"tree"}))};this._tree.onDidOpen((e=>{e.sideBySide?i(e.element,"side"):e.editorOptions.pinned?i(e.element,"goto"):i(e.element,"show")})),w.Cp(this._treeContainer)}_onWidth(e){this._dim&&this._doLayoutBody(this._dim.height,e)}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._dim=new w.Ro(t,e),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(t),this._splitView.resizeView(0,t*this.layoutData.ratio)}setSelection(e){return this._revealReference(e,!0).then((()=>{this._model&&(this._tree.setSelection([e]),this._tree.setFocus([e]))}))}setModel(e){return this._disposeOnNewModel.clear(),this._model=e,this._model?this._onNewModel():Promise.resolve()}_onNewModel(){return this._model?this._model.isEmpty?(this.setTitle(""),this._messageContainer.innerText=h.NC("noResults","No results"),w.$Z(this._messageContainer),Promise.resolve(void 0)):(w.Cp(this._messageContainer),this._decorationsManager=new ie(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange((e=>this._tree.rerender(e)))),this._disposeOnNewModel.add(this._preview.onMouseDown((e=>{const{event:t,target:i}=e;if(2!==t.detail)return;const n=this._getFocusedReference();n&&this._onDidSelectReference.fire({element:{uri:n.uri,range:i.range},kind:t.ctrlKey||t.metaKey||t.altKey?"side":"open",source:"editor"})}))),this.container.classList.add("results-loaded"),w.$Z(this._treeContainer),w.$Z(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(1===this._model.groups.length?this._model.groups[0]:this._model)):Promise.resolve(void 0)}_getFocusedReference(){const[e]=this._tree.getFocus();return e instanceof C.WX?e:e instanceof C.F2&&e.children.length>0?e.children[0]:void 0}revealReference(e){return te(this,void 0,void 0,(function*(){yield this._revealReference(e,!1),this._onDidSelectReference.fire({element:e,kind:"goto",source:"tree"})}))}_revealReference(e,t){return te(this,void 0,void 0,(function*(){if(this._revealedReference===e)return;this._revealedReference=e,e.uri.scheme!==k.lg.inMemory?this.setTitle((0,x.Hx)(e.uri),this._uriLabel.getUriLabel((0,x.XX)(e.uri))):this.setTitle(h.NC("peekView.alternateTitle","References"));const i=this._textModelResolverService.createModelReference(e.uri);this._tree.getInput()===e.parent||(t&&this._tree.reveal(e.parent),yield this._tree.expand(e.parent)),this._tree.reveal(e);const n=yield i;if(!this._model)return void n.dispose();(0,r.B9)(this._previewModelReference);const o=n.object;if(o){const t=this._preview.getModel()===o.textEditorModel?0:1,i=c.e.lift(e.range).collapseToStart();this._previewModelReference=n,this._preview.setModel(o.textEditorModel),this._preview.setSelection(i),this._preview.revealRangeInCenter(i,t)}else this._preview.setModel(this._previewNotAvailableMessage),n.dispose()}))}};oe=X([ee(3,W.XE),ee(4,M.S),ee(5,m.TG),ee(6,d.Fw),ee(7,B.e),ee(8,J.tJ),ee(9,F.d),ee(10,T.O),ee(11,E.c_)],oe);var se=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},re=function(e,t){return function(i,n){t(i,n,e)}},ae=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const le=new p.uy("referenceSearchVisible",!1,h.NC("referenceSearchVisible","Whether reference peek is visible, like 'Peek References' or 'Peek Definition'"));let ce=class e{constructor(e,t,i,n,o,s,a,l){this._defaultTreeKeyboardSupport=e,this._editor=t,this._editorService=n,this._notificationService=o,this._instantiationService=s,this._storageService=a,this._configurationService=l,this._disposables=new r.SL,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=le.bindTo(i)}static get(t){return t.getContribution(e.ID)}dispose(){var e,t;this._referenceSearchVisible.reset(),this._disposables.dispose(),null===(e=this._widget)||void 0===e||e.dispose(),null===(t=this._model)||void 0===t||t.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(e,t,i){let n;if(this._widget&&(n=this._widget.position),this.closeWidget(),n&&e.containsPosition(n))return;this._peekMode=i,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage((()=>{this.closeWidget()}))),this._disposables.add(this._editor.onDidChangeModel((()=>{this._ignoreModelChangeEvent||this.closeWidget()})));const o="peekViewLayout",s=class{constructor(){this.ratio=.7,this.heightInLines=18}static fromJSON(e){let t,i;try{const n=JSON.parse(e);t=n.ratio,i=n.heightInLines}catch(n){}return{ratio:t||.7,heightInLines:i||18}}}.fromJSON(this._storageService.get(o,0,"{}"));this._widget=this._instantiationService.createInstance(oe,this._editor,this._defaultTreeKeyboardSupport,s),this._widget.setTitle(h.NC("labelLoading","Loading...")),this._widget.show(e),this._disposables.add(this._widget.onDidClose((()=>{t.cancel(),this._widget&&(this._storageService.store(o,JSON.stringify(this._widget.layoutData),0,1),this._widget=void 0),this.closeWidget()}))),this._disposables.add(this._widget.onDidSelectReference((e=>{const{element:t,kind:n}=e;if(t)switch(n){case"open":"editor"===e.source&&this._configurationService.getValue("editor.stablePeek")||this.openReference(t,!1,!1);break;case"side":this.openReference(t,!0,!1);break;case"goto":i?this._gotoReference(t):this.openReference(t,!1,!0)}})));const r=++this._requestIdPool;t.then((t=>{var i;if(r===this._requestIdPool&&this._widget)return null===(i=this._model)||void 0===i||i.dispose(),this._model=t,this._widget.setModel(this._model).then((()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._model.isEmpty?this._widget.setMetaTitle(""):this._widget.setMetaTitle(h.NC("metaTitle.N","{0} ({1})",this._model.title,this._model.references.length));const t=this._editor.getModel().uri,i=new l.L(e.startLineNumber,e.startColumn),n=this._model.nearestReference(t,i);if(n)return this._widget.setSelection(n).then((()=>{this._widget&&"editor"===this._editor.getOption(79)&&this._widget.focusOnPreviewEditor()}))}}));t.dispose()}),(e=>{this._notificationService.error(e)}))}changeFocusBetweenPreviewAndReferences(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}goToNextOrPreviousReference(e){return ae(this,void 0,void 0,(function*(){if(!this._editor.hasModel()||!this._model||!this._widget)return;const t=this._widget.position;if(!t)return;const i=this._model.nearestReference(this._editor.getModel().uri,t);if(!i)return;const n=this._model.nextOrPreviousReference(i,e),o=this._editor.hasTextFocus(),s=this._widget.isPreviewEditorFocused();yield this._widget.setSelection(n),yield this._gotoReference(n),o?this._editor.focus():this._widget&&s&&this._widget.focusOnPreviewEditor()}))}revealReference(e){return ae(this,void 0,void 0,(function*(){this._editor.hasModel()&&this._model&&this._widget&&(yield this._widget.revealReference(e))}))}closeWidget(e=!0){var t,i;null===(t=this._widget)||void 0===t||t.dispose(),null===(i=this._model)||void 0===i||i.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,e&&this._editor.focus(),this._requestIdPool+=1}_gotoReference(t){this._widget&&this._widget.hide(),this._ignoreModelChangeEvent=!0;const i=c.e.lift(t.range).collapseToStart();return this._editorService.openCodeEditor({resource:t.uri,options:{selection:i,selectionSource:"code.jump"}},this._editor).then((t=>{var o;if(this._ignoreModelChangeEvent=!1,t&&this._widget)if(this._editor===t)this._widget.show(i),this._widget.focusOnReferenceTree();else{const s=e.get(t),r=this._model.clone();this.closeWidget(),t.focus(),null==s||s.toggleWidget(i,(0,n.PG)((e=>Promise.resolve(r))),null!==(o=this._peekMode)&&void 0!==o&&o)}else this.closeWidget()}),(e=>{this._ignoreModelChangeEvent=!1,(0,o.dL)(e)}))}openReference(e,t,i){t||this.closeWidget();const{uri:n,range:o}=e;this._editorService.openCodeEditor({resource:n,options:{selection:o,selectionSource:"code.jump",pinned:i}},this._editor,t)}};function de(e,t){const i=(0,d.rc)(e);if(!i)return;const n=ce.get(i);n&&t(n)}ce.ID="editor.contrib.referencesController",ce=se([re(2,p.i6),re(3,a.$),re(4,v.lT),re(5,m.TG),re(6,b.Uy),re(7,g.Ui)],ce),f.W.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:(0,s.gx)(2089,60),when:p.Ao.or(le,d.Jy.inPeekEditor),handler(e){de(e,(e=>{e.changeFocusBetweenPreviewAndReferences()}))}}),f.W.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:p.Ao.or(le,d.Jy.inPeekEditor),handler(e){de(e,(e=>{e.goToNextOrPreviousReference(!0)}))}}),f.W.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:p.Ao.or(le,d.Jy.inPeekEditor),handler(e){de(e,(e=>{e.goToNextOrPreviousReference(!1)}))}}),u.P0.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference"),u.P0.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference"),u.P0.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch"),u.P0.registerCommand("closeReferenceSearch",(e=>de(e,(e=>e.closeWidget())))),f.W.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:p.Ao.and(d.Jy.inPeekEditor,p.Ao.not("config.editor.stablePeek"))}),f.W.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:p.Ao.and(le,p.Ao.not("config.editor.stablePeek"))}),f.W.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:p.Ao.and(le,_.CQ,_.PS.negate(),_.uJ.negate()),handler(e){var t;const i=null===(t=e.get(_.Lw).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(i)&&i[0]instanceof C.WX&&de(e,(e=>e.revealReference(i[0])))}}),f.W.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:p.Ao.and(le,_.CQ,_.PS.negate(),_.uJ.negate()),handler(e){var t;const i=null===(t=e.get(_.Lw).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(i)&&i[0]instanceof C.WX&&de(e,(e=>e.openReference(i[0],!0,!0)))}}),u.P0.registerCommand("openReference",(e=>{var t;const i=null===(t=e.get(_.Lw).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(i)&&i[0]instanceof C.WX&&de(e,(e=>e.openReference(i[0],!1,!0)))}))},1293:(e,t,i)=>{"use strict";i.d(t,{F2:()=>m,WX:()=>g,oQ:()=>f});var n=i(17301),o=i(4669),s=i(44742),r=i(5976),a=i(43702),l=i(95935),c=i(97295),d=i(24314),h=i(63580),u=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class g{constructor(e,t,i,n){this.isProviderFirst=e,this.parent=t,this.link=i,this._rangeCallback=n,this.id=s.a.nextId()}get uri(){return this.link.uri}get range(){var e,t;return null!==(t=null!==(e=this._range)&&void 0!==e?e:this.link.targetSelectionRange)&&void 0!==t?t:this.link.range}set range(e){this._range=e,this._rangeCallback(this)}get ariaMessage(){var e;const t=null===(e=this.parent.getPreview(this))||void 0===e?void 0:e.preview(this.range);return t?(0,h.NC)({key:"aria.oneReference.preview",comment:["Placeholders are: 0: filename, 1:line number, 2: column number, 3: preview snippet of source code"]},"symbol in {0} on line {1} at column {2}, {3}",(0,l.EZ)(this.uri),this.range.startLineNumber,this.range.startColumn,t.value):(0,h.NC)("aria.oneReference","symbol in {0} on line {1} at column {2}",(0,l.EZ)(this.uri),this.range.startLineNumber,this.range.startColumn)}}class p{constructor(e){this._modelReference=e}dispose(){this._modelReference.dispose()}preview(e,t=8){const i=this._modelReference.object.textEditorModel;if(!i)return;const{startLineNumber:n,startColumn:o,endLineNumber:s,endColumn:r}=e,a=i.getWordUntilPosition({lineNumber:n,column:o-t}),l=new d.e(n,a.startColumn,n,o),c=new d.e(s,r,s,1073741824),h=i.getValueInRange(l).replace(/^\s+/,""),u=i.getValueInRange(e);return{value:h+u+i.getValueInRange(c).replace(/\s+$/,""),highlight:{start:h.length,end:h.length+u.length}}}}class m{constructor(e,t){this.parent=e,this.uri=t,this.children=[],this._previews=new a.Y9}dispose(){(0,r.B9)(this._previews.values()),this._previews.clear()}getPreview(e){return this._previews.get(e.uri)}get ariaMessage(){const e=this.children.length;return 1===e?(0,h.NC)("aria.fileReferences.1","1 symbol in {0}, full path {1}",(0,l.EZ)(this.uri),this.uri.fsPath):(0,h.NC)("aria.fileReferences.N","{0} symbols in {1}, full path {2}",e,(0,l.EZ)(this.uri),this.uri.fsPath)}resolve(e){return u(this,void 0,void 0,(function*(){if(0!==this._previews.size)return this;for(const i of this.children)if(!this._previews.has(i.uri))try{const t=yield e.createModelReference(i.uri);this._previews.set(i.uri,new p(t))}catch(t){(0,n.dL)(t)}return this}))}}class f{constructor(e,t){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new o.Q5,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=e,this._title=t;const[i]=e;let n;e.sort(f._compareReferences);for(const o of e)if(n&&l.SF.isEqual(n.uri,o.uri,!0)||(n=new m(this,o.uri),this.groups.push(n)),0===n.children.length||0!==f._compareReferences(o,n.children[n.children.length-1])){const e=new g(i===o,n,o,(e=>this._onDidChangeReferenceRange.fire(e)));this.references.push(e),n.children.push(e)}}dispose(){(0,r.B9)(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new f(this._links,this._title)}get title(){return this._title}get isEmpty(){return 0===this.groups.length}get ariaMessage(){return this.isEmpty?(0,h.NC)("aria.result.0","No results found"):1===this.references.length?(0,h.NC)("aria.result.1","Found 1 symbol in {0}",this.references[0].uri.fsPath):1===this.groups.length?(0,h.NC)("aria.result.n1","Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath):(0,h.NC)("aria.result.nm","Found {0} symbols in {1} files",this.references.length,this.groups.length)}nextOrPreviousReference(e,t){const{parent:i}=e;let n=i.children.indexOf(e);const o=i.children.length,s=i.parent.groups.length;return 1===s||t&&n+1<o||!t&&n>0?(n=t?(n+1)%o:(n+o-1)%o,i.children[n]):(n=i.parent.groups.indexOf(i),t?(n=(n+1)%s,i.parent.groups[n].children[0]):(n=(n+s-1)%s,i.parent.groups[n].children[i.parent.groups[n].children.length-1]))}nearestReference(e,t){const i=this.references.map(((i,n)=>({idx:n,prefixLen:c.Mh(i.uri.toString(),e.toString()),offsetDist:100*Math.abs(i.range.startLineNumber-t.lineNumber)+Math.abs(i.range.startColumn-t.column)}))).sort(((e,t)=>e.prefixLen>t.prefixLen?-1:e.prefixLen<t.prefixLen?1:e.offsetDist<t.offsetDist?-1:e.offsetDist>t.offsetDist?1:0))[0];if(i)return this.references[i.idx]}referenceAt(e,t){for(const i of this.references)if(i.uri.toString()===e.toString()&&d.e.containsPosition(i.range,t))return i}firstReference(){for(const e of this.references)if(e.isProviderFirst)return e;return this.references[0]}static _compareReferences(e,t){return l.SF.compare(e.uri,t.uri)||d.e.compareRangesUsingStarts(e.range,t.range)}}},41095:(e,t,i)=>{"use strict";i.d(t,{R8:()=>d});var n=i(15393),o=i(71050),s=i(17301),r=i(16830),a=i(71922),l=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class c{constructor(e,t,i){this.provider=e,this.hover=t,this.ordinal=i}}function d(e,t,i,o){const r=e.ordered(t).map(((e,n)=>function(e,t,i,n,o){return l(this,void 0,void 0,(function*(){try{const s=yield Promise.resolve(e.provideHover(i,n,o));if(s&&function(e){const t=void 0!==e.range,i=void 0!==e.contents&&e.contents&&e.contents.length>0;return t&&i}(s))return new c(e,s,t)}catch(r){(0,s.Cp)(r)}}))}(e,n,t,i,o)));return n.Aq.fromPromises(r).coalesce()}(0,r.sb)("_executeHoverProvider",((e,t,i)=>function(e,t,i,n){return d(e,t,i,n).map((e=>e.hover)).toPromise()}(e.get(a.p).hoverProvider,t,i,o.T.None)))},66122:(e,t,i)=>{"use strict";i.d(t,{E:()=>ge});var n=i(22258),o=i(5976),s=i(16830),r=i(24314),a=i(29102),l=i(72042),c=i(22470),d=i(65321),h=i(59069),u=i(63161);const g=d.$;class p extends o.JT{constructor(){super(),this.containerDomNode=document.createElement("div"),this.containerDomNode.className="monaco-hover",this.containerDomNode.tabIndex=0,this.containerDomNode.setAttribute("role","tooltip"),this.contentsDomNode=document.createElement("div"),this.contentsDomNode.className="monaco-hover-content",this.scrollbar=this._register(new u.s$(this.contentsDomNode,{consumeMouseWheelIfScrollbarIsNeeded:!0})),this.containerDomNode.appendChild(this.scrollbar.getDomNode())}onContentsChanged(){this.scrollbar.scanDomNode()}}class m extends o.JT{constructor(e,t,i){super(),this.actionContainer=d.R3(e,g("div.action-container")),this.actionContainer.setAttribute("tabindex","0"),this.action=d.R3(this.actionContainer,g("a.action")),this.action.setAttribute("role","button"),t.iconClass&&d.R3(this.action,g(`span.icon.${t.iconClass}`));d.R3(this.action,g("span")).textContent=i?`${t.label} (${i})`:t.label,this._register(d.nm(this.actionContainer,d.tw.CLICK,(e=>{e.stopPropagation(),e.preventDefault(),t.run(this.actionContainer)}))),this._register(d.nm(this.actionContainer,d.tw.KEY_UP,(e=>{new h.y(e).equals(3)&&(e.stopPropagation(),e.preventDefault(),t.run(this.actionContainer))}))),this.setEnabled(!0)}static render(e,t,i){return new m(e,t,i)}setEnabled(e){e?(this.actionContainer.classList.remove("disabled"),this.actionContainer.removeAttribute("aria-disabled")):(this.actionContainer.classList.add("disabled"),this.actionContainer.setAttribute("aria-disabled","true"))}}var f=i(9488),_=i(50187),v=i(22529),b=i(43155),C=i(15393),w=i(17301),y=i(4669),S=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))},L=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,i=e[Symbol.asyncIterator];return i?i.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(i){t[i]=e[i]&&function(t){return new Promise((function(n,o){(function(e,t,i,n){Promise.resolve(n).then((function(t){e({value:t,done:i})}),t)})(n,o,(t=e[i](t)).done,t.value)}))}}};class k{constructor(e,t,i){this.value=e,this.isComplete=t,this.hasLoadingMessage=i}}class x extends o.JT{constructor(e,t){super(),this._editor=e,this._computer=t,this._onResult=this._register(new y.Q5),this.onResult=this._onResult.event,this._firstWaitScheduler=this._register(new C.pY((()=>this._triggerAsyncComputation()),0)),this._secondWaitScheduler=this._register(new C.pY((()=>this._triggerSyncComputation()),0)),this._loadingMessageScheduler=this._register(new C.pY((()=>this._triggerLoadingMessage()),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),super.dispose()}get _hoverTime(){return this._editor.getOption(55).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(e,t=!0){this._state=e,t&&this._fireResult()}_triggerAsyncComputation(){this._setState(2),this._secondWaitScheduler.schedule(this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=(0,C.zS)((e=>this._computer.computeAsync(e))),(()=>{S(this,void 0,void 0,(function*(){var e,t;try{try{for(var i,n=L(this._asyncIterable);!(i=yield n.next()).done;){const e=i.value;e&&(this._result.push(e),this._fireResult())}}catch(o){e={error:o}}finally{try{i&&!i.done&&(t=n.return)&&(yield t.call(n))}finally{if(e)throw e.error}}this._asyncIterableDone=!0,3!==this._state&&4!==this._state||this._setState(0)}catch(s){(0,w.dL)(s)}}))})()):this._asyncIterableDone=!0}_triggerSyncComputation(){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync())),this._setState(this._asyncIterableDone?0:3)}_triggerLoadingMessage(){3===this._state&&this._setState(4)}_fireResult(){if(1===this._state||2===this._state)return;const e=0===this._state,t=4===this._state;this._onResult.fire(new k(this._result.slice(0),e,t))}start(e){if(0===e)0===this._state&&(this._setState(1),this._firstWaitScheduler.schedule(this._firstWaitTime),this._loadingMessageScheduler.schedule(this._loadingMessageTime));else switch(this._state){case 0:this._triggerAsyncComputation(),this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break;case 2:this._secondWaitScheduler.cancel(),this._triggerSyncComputation()}}cancel(){this._firstWaitScheduler.cancel(),this._secondWaitScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._result=[],this._setState(0,!1)}}var D=i(66520),N=i(38819),E=i(72065),I=i(91847),T=i(55621),M=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},A=function(e,t){return function(i,n){t(i,n,e)}};const R=d.$;let O=class e extends o.JT{constructor(e,t,i){super(),this._editor=e,this._instantiationService=t,this._keybindingService=i,this._widget=this._register(this._instantiationService.createInstance(F,this._editor)),this._isChangingDecorations=!1,this._messages=[],this._messagesAreComplete=!1,this._participants=[];for(const n of D.Ae.getAll())this._participants.push(this._instantiationService.createInstance(n,this._editor));this._participants.sort(((e,t)=>e.hoverOrdinal-t.hoverOrdinal)),this._computer=new V(this._editor,this._participants),this._hoverOperation=this._register(new x(this._editor,this._computer)),this._register(this._hoverOperation.onResult((e=>{this._withResult(e.value,e.isComplete,e.hasLoadingMessage)}))),this._register(this._editor.onDidChangeModelDecorations((()=>{this._isChangingDecorations||this._onModelDecorationsChanged()}))),this._register(d.mu(this._widget.getDomNode(),"keydown",(e=>{e.equals(9)&&this.hide()}))),this._register(b.RW.onDidChange((()=>{this._widget.position&&this._computer.anchor&&this._messages.length>0&&(this._widget.clear(),this._renderMessages(this._computer.anchor,this._messages))})))}_onModelDecorationsChanged(){this._widget.position&&(this._hoverOperation.cancel(),this._widget.isColorPickerVisible||this._hoverOperation.start(0))}maybeShowAt(e){const t=[];for(const n of this._participants)if(n.suggestHoverAnchor){const i=n.suggestHoverAnchor(e);i&&t.push(i)}const i=e.target;if(6===i.type&&t.push(new D.Qj(0,i.range)),7===i.type){const e=this._editor.getOption(46).typicalHalfwidthCharacterWidth/2;!i.detail.isAfterLines&&"number"==typeof i.detail.horizontalDistanceToText&&i.detail.horizontalDistanceToText<e&&t.push(new D.Qj(0,i.range))}return 0!==t.length&&(t.sort(((e,t)=>t.priority-e.priority)),this._startShowingAt(t[0],0,!1),!0)}startShowingAtRange(e,t,i){this._startShowingAt(new D.Qj(0,e),t,i)}_startShowingAt(e,t,i){if(!this._computer.anchor||!this._computer.anchor.equals(e)){if(this._hoverOperation.cancel(),this._widget.position)if(this._computer.anchor&&e.canAdoptVisibleHover(this._computer.anchor,this._widget.position)){const t=this._messages.filter((t=>t.isValidForHoverAnchor(e)));if(0===t.length)this.hide();else{if(t.length===this._messages.length&&this._messagesAreComplete)return;this._renderMessages(e,t)}}else this.hide();this._computer.anchor=e,this._computer.shouldFocus=i,this._hoverOperation.start(t)}}hide(){this._computer.anchor=null,this._hoverOperation.cancel(),this._widget.hide()}isColorPickerVisible(){return this._widget.isColorPickerVisible}containsNode(e){return this._widget.getDomNode().contains(e)}_addLoadingMessage(e){if(this._computer.anchor)for(const t of this._participants)if(t.createLoadingMessage){const i=t.createLoadingMessage(this._computer.anchor);if(i)return e.slice(0).concat([i])}return e}_withResult(e,t,i){this._messages=i?this._addLoadingMessage(e):e,this._messagesAreComplete=t,this._computer.anchor&&this._messages.length>0?this._renderMessages(this._computer.anchor,this._messages):t&&this.hide()}_renderMessages(t,i){const{showAtPosition:n,showAtRange:s,highlightRange:r}=e.computeHoverRanges(t.range,i),a=new o.SL,l=a.add(new B(this._keybindingService)),c=document.createDocumentFragment();let d=null;const h={fragment:c,statusBar:l,setColorPicker:e=>d=e,onContentsChanged:()=>this._widget.onContentsChanged(),hide:()=>this.hide()};for(const e of this._participants){const t=i.filter((t=>t.owner===e));t.length>0&&a.add(e.renderHoverParts(h,t))}if(l.hasContent&&c.appendChild(l.hoverElement),c.hasChildNodes()){if(r){const t=this._editor.createDecorationsCollection();try{this._isChangingDecorations=!0,t.set([{range:r,options:e._DECORATION_OPTIONS}])}finally{this._isChangingDecorations=!1}a.add((0,o.OF)((()=>{try{this._isChangingDecorations=!0,t.clear()}finally{this._isChangingDecorations=!1}})))}this._widget.showAt(c,new P(d,n,s,this._editor.getOption(55).above,this._computer.shouldFocus,a))}else a.dispose()}static computeHoverRanges(e,t){const i=e.startLineNumber;let n=e.startColumn,o=e.endColumn,s=t[0].range,a=null;for(const l of t)s=r.e.plusRange(s,l.range),l.range.startLineNumber===i&&l.range.endLineNumber===i&&(n=Math.min(n,l.range.startColumn),o=Math.max(o,l.range.endColumn)),l.forceShowAtRange&&(a=l.range);return{showAtPosition:a?a.getStartPosition():new _.L(e.startLineNumber,n),showAtRange:a||new r.e(i,n,i,o),highlightRange:s}}};O._DECORATION_OPTIONS=v.qx.register({description:"content-hover-highlight",className:"hoverHighlight"}),O=M([A(1,E.TG),A(2,I.d)],O);class P{constructor(e,t,i,n,o,s){this.colorPicker=e,this.showAtPosition=t,this.showAtRange=i,this.preferAbove=n,this.stoleFocus=o,this.disposables=s}}let F=class e extends o.JT{constructor(e,t){super(),this._editor=e,this._contextKeyService=t,this.allowEditorOverflow=!0,this._hoverVisibleKey=a.u.hoverVisible.bindTo(this._contextKeyService),this._hover=this._register(new p),this._visibleData=null,this._register(this._editor.onDidLayoutChange((()=>this._layout()))),this._register(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(46)&&this._updateFont()}))),this._setVisibleData(null),this._layout(),this._editor.addContentWidget(this)}get position(){var e,t;return null!==(t=null===(e=this._visibleData)||void 0===e?void 0:e.showAtPosition)&&void 0!==t?t:null}get isColorPickerVisible(){var e;return Boolean(null===(e=this._visibleData)||void 0===e?void 0:e.colorPicker)}dispose(){this._editor.removeContentWidget(this),this._visibleData&&this._visibleData.disposables.dispose(),super.dispose()}getId(){return e.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){if(!this._visibleData)return null;let e=this._visibleData.preferAbove;return!e&&this._contextKeyService.getContextKeyValue(T._y.Visible.key)&&(e=!0),{position:this._visibleData.showAtPosition,range:this._visibleData.showAtRange,preference:e?[1,2]:[2,1]}}_setVisibleData(e){this._visibleData&&this._visibleData.disposables.dispose(),this._visibleData=e,this._hoverVisibleKey.set(!!this._visibleData),this._hover.containerDomNode.classList.toggle("hidden",!this._visibleData)}_layout(){const e=Math.max(this._editor.getLayoutInfo().height/4,250),{fontSize:t,lineHeight:i}=this._editor.getOption(46);this._hover.contentsDomNode.style.fontSize=`${t}px`,this._hover.contentsDomNode.style.lineHeight=""+i/t,this._hover.contentsDomNode.style.maxHeight=`${e}px`,this._hover.contentsDomNode.style.maxWidth=`${Math.max(.66*this._editor.getLayoutInfo().width,500)}px`}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((e=>this._editor.applyFontInfo(e)))}showAt(e,t){this._setVisibleData(t),this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(e),this._hover.contentsDomNode.style.paddingBottom="",this._updateFont(),this.onContentsChanged(),this._editor.render(),this.onContentsChanged(),t.stoleFocus&&this._hover.containerDomNode.focus(),t.colorPicker&&t.colorPicker.layout()}hide(){if(this._visibleData){const e=this._visibleData.stoleFocus;this._setVisibleData(null),this._editor.layoutContentWidget(this),e&&this._editor.focus()}}onContentsChanged(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged();const e=this._hover.scrollbar.getScrollDimensions();if(e.scrollWidth>e.width){const e=`${this._hover.scrollbar.options.horizontalScrollbarSize}px`;this._hover.contentsDomNode.style.paddingBottom!==e&&(this._hover.contentsDomNode.style.paddingBottom=e,this._editor.layoutContentWidget(this),this._hover.onContentsChanged())}}clear(){this._hover.contentsDomNode.textContent=""}};F.ID="editor.contrib.contentHoverWidget",F=M([A(1,N.i6)],F);let B=class extends o.JT{constructor(e){super(),this._keybindingService=e,this._hasContent=!1,this.hoverElement=R("div.hover-row.status-bar"),this.actionsElement=d.R3(this.hoverElement,R("div.actions"))}get hasContent(){return this._hasContent}addAction(e){const t=this._keybindingService.lookupKeybinding(e.commandId),i=t?t.getLabel():null;return this._hasContent=!0,this._register(m.render(this.actionsElement,e,i))}append(e){const t=d.R3(this.actionsElement,e);return this._hasContent=!0,t}};B=M([A(0,I.d)],B);class V{constructor(e,t){this._editor=e,this._participants=t,this._anchor=null,this._shouldFocus=!1}get anchor(){return this._anchor}set anchor(e){this._anchor=e}get shouldFocus(){return this._shouldFocus}set shouldFocus(e){this._shouldFocus=e}static _getLineDecorations(e,t){if(1!==t.type)return[];const i=e.getModel(),n=t.range.startLineNumber;if(n>i.getLineCount())return[];const o=i.getLineMaxColumn(n);return e.getLineDecorations(n).filter((e=>{if(e.options.isWholeLine)return!0;const i=e.range.startLineNumber===n?e.range.startColumn:1,s=e.range.endLineNumber===n?e.range.endColumn:o;if(e.options.showIfCollapsed){if(i>t.range.startColumn+1||t.range.endColumn-1>s)return!1}else if(i>t.range.startColumn||t.range.endColumn>s)return!1;return!0}))}computeAsync(e){const t=this._anchor;if(!this._editor.hasModel()||!t)return C.Aq.EMPTY;const i=V._getLineDecorations(this._editor,t);return C.Aq.merge(this._participants.map((n=>n.computeAsync?n.computeAsync(t,i,e):C.Aq.EMPTY)))}computeSync(){if(!this._editor.hasModel()||!this._anchor)return[];const e=V._getLineDecorations(this._editor,this._anchor);let t=[];for(const i of this._participants)t=t.concat(i.computeSync(this._anchor,e));return(0,f.kX)(t)}}var W=i(59365),H=i(51318),z=i(50988);const j=d.$;class U extends o.JT{constructor(e,t,i=z.SW){super(),this._renderDisposeables=this._register(new o.SL),this._editor=e,this._isVisible=!1,this._messages=[],this._hover=this._register(new p),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._markdownRenderer=this._register(new H.$({editor:this._editor},t,i)),this._computer=new K(this._editor),this._hoverOperation=this._register(new x(this._editor,this._computer)),this._register(this._hoverOperation.onResult((e=>{this._withResult(e.value)}))),this._register(this._editor.onDidChangeModelDecorations((()=>this._onModelDecorationsChanged()))),this._register(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(46)&&this._updateFont()}))),this._editor.addOverlayWidget(this)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return U.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((e=>this._editor.applyFontInfo(e)))}_onModelDecorationsChanged(){this._isVisible&&(this._hoverOperation.cancel(),this._hoverOperation.start(0))}startShowingAt(e){this._computer.lineNumber!==e&&(this._hoverOperation.cancel(),this.hide(),this._computer.lineNumber=e,this._hoverOperation.start(0))}hide(){this._computer.lineNumber=-1,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible))}_withResult(e){this._messages=e,this._messages.length>0?this._renderMessages(this._computer.lineNumber,this._messages):this.hide()}_renderMessages(e,t){this._renderDisposeables.clear();const i=document.createDocumentFragment();for(const n of t){const e=j("div.hover-row.markdown-hover"),t=d.R3(e,j("div.hover-contents")),o=this._renderDisposeables.add(this._markdownRenderer.render(n.value));t.appendChild(o.element),i.appendChild(e)}this._updateContents(i),this._showAt(e)}_updateContents(e){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(e),this._updateFont()}_showAt(e){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible));const t=this._editor.getLayoutInfo(),i=this._editor.getTopForLineNumber(e),n=this._editor.getScrollTop(),o=this._editor.getOption(61),s=i-n-(this._hover.containerDomNode.clientHeight-o)/2;this._hover.containerDomNode.style.left=`${t.glyphMarginLeft+t.glyphMarginWidth}px`,this._hover.containerDomNode.style.top=`${Math.max(Math.round(s),0)}px`}}U.ID="editor.contrib.modesGlyphHoverWidget";class K{constructor(e){this._editor=e,this._lineNumber=-1}get lineNumber(){return this._lineNumber}set lineNumber(e){this._lineNumber=e}computeSync(){const e=e=>({value:e}),t=this._editor.getLineDecorations(this._lineNumber),i=[];if(!t)return i;for(const n of t){if(!n.options.glyphMarginClassName)continue;const t=n.options.glyphMarginHoverMessage;t&&!(0,W.CP)(t)&&i.push(...(0,f._2)(t).map(e))}return i}}var $=i(63580),q=i(73910),G=i(97781),Q=i(22374),Z=i(95935),Y=i(36357),J=i(75396),X=i(93412),ee=i(76014),te=i(99803),ie=i(98674),ne=i(90535),oe=i(71922),se=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},re=function(e,t){return function(i,n){t(i,n,e)}};const ae=d.$;class le{constructor(e,t,i){this.owner=e,this.range=t,this.marker=i}isValidForHoverAnchor(e){return 1===e.type&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}const ce={type:1,filter:{include:ee.yN.QuickFix},triggerAction:ee.aQ.QuickFixHover};let de=class{constructor(e,t,i,n){this._editor=e,this._markerDecorationsService=t,this._openerService=i,this._languageFeaturesService=n,this.hoverOrdinal=5,this.recentMarkerCodeActionsInfo=void 0}computeSync(e,t){if(!this._editor.hasModel()||1!==e.type)return[];const i=this._editor.getModel(),n=e.range.startLineNumber,o=i.getLineMaxColumn(n),s=[];for(const a of t){const t=a.range.startLineNumber===n?a.range.startColumn:1,l=a.range.endLineNumber===n?a.range.endColumn:o,c=this._markerDecorationsService.getMarker(i.uri,a);if(!c)continue;const d=new r.e(e.range.startLineNumber,t,e.range.startLineNumber,l);s.push(new le(this,d,c))}return s}renderHoverParts(e,t){if(!t.length)return o.JT.None;const i=new o.SL;t.forEach((t=>e.fragment.appendChild(this.renderMarkerHover(t,i))));const n=1===t.length?t[0]:t.sort(((e,t)=>ie.ZL.compare(e.marker.severity,t.marker.severity)))[0];return this.renderMarkerStatusbar(e,n,i),i}renderMarkerHover(e,t){const i=ae("div.hover-row"),n=d.R3(i,ae("div.marker.hover-contents")),{source:o,message:s,code:r,relatedInformation:a}=e.marker;this._editor.applyFontInfo(n);const l=d.R3(n,ae("span"));if(l.style.whiteSpace="pre-wrap",l.innerText=s,o||r)if(r&&"string"!=typeof r){const e=ae("span");if(o){d.R3(e,ae("span")).innerText=o}const i=d.R3(e,ae("a.code-link"));i.setAttribute("href",r.target.toString()),t.add(d.nm(i,"click",(e=>{this._openerService.open(r.target,{allowCommands:!0}),e.preventDefault(),e.stopPropagation()})));d.R3(i,ae("span")).innerText=r.value;const s=d.R3(n,e);s.style.opacity="0.6",s.style.paddingLeft="6px"}else{const e=d.R3(n,ae("span"));e.style.opacity="0.6",e.style.paddingLeft="6px",e.innerText=o&&r?`${o}(${r})`:o||`(${r})`}if((0,f.Of)(a))for(const{message:c,resource:h,startLineNumber:u,startColumn:g}of a){const e=d.R3(n,ae("div"));e.style.marginTop="8px";const i=d.R3(e,ae("a"));i.innerText=`${(0,Z.EZ)(h)}(${u}, ${g}): `,i.style.cursor="pointer",t.add(d.nm(i,"click",(e=>{e.stopPropagation(),e.preventDefault(),this._openerService&&this._openerService.open(h,{fromUserGesture:!0,editorOptions:{selection:{startLineNumber:u,startColumn:g}}}).catch(w.dL)})));const o=d.R3(e,ae("span"));o.innerText=c,this._editor.applyFontInfo(o)}return i}renderMarkerStatusbar(e,t,i){if(t.marker.severity!==ie.ZL.Error&&t.marker.severity!==ie.ZL.Warning&&t.marker.severity!==ie.ZL.Info||e.statusBar.addAction({label:$.NC("view problem","View Problem"),commandId:te.v.ID,run:()=>{var i;e.hide(),null===(i=te.c.get(this._editor))||void 0===i||i.showAtMarker(t.marker),this._editor.focus()}}),!this._editor.getOption(83)){const n=e.statusBar.append(ae("div"));this.recentMarkerCodeActionsInfo&&(ie.H0.makeKey(this.recentMarkerCodeActionsInfo.marker)===ie.H0.makeKey(t.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(n.textContent=$.NC("noQuickFixes","No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);const s=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?o.JT.None:i.add((0,C.Vg)((()=>n.textContent=$.NC("checkingForQuickFixes","Checking for quick fixes...")),200));n.textContent||(n.textContent=String.fromCharCode(160));const r=this.getCodeActions(t.marker);i.add((0,o.OF)((()=>r.cancel()))),r.then((r=>{if(s.dispose(),this.recentMarkerCodeActionsInfo={marker:t.marker,hasCodeActions:r.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions)return r.dispose(),void(n.textContent=$.NC("noQuickFixes","No quick fixes available"));n.style.display="none";let a=!1;i.add((0,o.OF)((()=>{a||r.dispose()}))),e.statusBar.addAction({label:$.NC("quick fixes","Quick Fix..."),commandId:X.E7.Id,run:t=>{a=!0;const i=X.pY.get(this._editor),n=d.i(t);e.hide(),null==i||i.showCodeActions(ce,r,{x:n.left+6,y:n.top+n.height+6,width:n.width,height:n.height})}})}),w.dL)}}getCodeActions(e){return(0,C.PG)((t=>(0,J.aI)(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new r.e(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),ce,ne.Ex.None,t)))}};de=se([re(1,Y.i),re(2,z.v4),re(3,oe.p)],de),(0,G.Ic)(((e,t)=>{const i=e.getColor(q.url);i&&t.addRule(`.monaco-hover .hover-contents a.code-link span { color: ${i}; }`);const n=e.getColor(q.sgC);n&&t.addRule(`.monaco-hover .hover-contents a.code-link span:hover { color: ${n}; }`)}));var he=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ue=function(e,t){return function(i,n){t(i,n,e)}};let ge=class e{constructor(e,t,i,n,s){this._editor=e,this._instantiationService=t,this._openerService=i,this._languageService=n,this._toUnhook=new o.SL,this._isMouseDown=!1,this._hoverClicked=!1,this._contentWidget=null,this._glyphWidget=null,this._hookEvents(),this._didChangeConfigurationHandler=this._editor.onDidChangeConfiguration((e=>{e.hasChanged(55)&&(this._unhookEvents(),this._hookEvents())}))}static get(t){return t.getContribution(e.ID)}_hookEvents(){const e=this._editor.getOption(55);this._isHoverEnabled=e.enabled,this._isHoverSticky=e.sticky,this._isHoverEnabled?(this._toUnhook.add(this._editor.onMouseDown((e=>this._onEditorMouseDown(e)))),this._toUnhook.add(this._editor.onMouseUp((e=>this._onEditorMouseUp(e)))),this._toUnhook.add(this._editor.onMouseMove((e=>this._onEditorMouseMove(e)))),this._toUnhook.add(this._editor.onKeyDown((e=>this._onKeyDown(e))))):(this._toUnhook.add(this._editor.onMouseMove((e=>this._onEditorMouseMove(e)))),this._toUnhook.add(this._editor.onKeyDown((e=>this._onKeyDown(e))))),this._toUnhook.add(this._editor.onMouseLeave((e=>this._onEditorMouseLeave(e)))),this._toUnhook.add(this._editor.onDidChangeModel((()=>this._hideWidgets()))),this._toUnhook.add(this._editor.onDidScrollChange((e=>this._onEditorScrollChanged(e))))}_unhookEvents(){this._toUnhook.clear()}_onEditorScrollChanged(e){(e.scrollTopChanged||e.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(e){this._isMouseDown=!0;const t=e.target;9!==t.type||t.detail!==F.ID?12===t.type&&t.detail===U.ID||(12!==t.type&&(this._hoverClicked=!1),this._hideWidgets()):this._hoverClicked=!0}_onEditorMouseUp(e){this._isMouseDown=!1}_onEditorMouseLeave(e){var t;const i=e.event.browserEvent.relatedTarget;(null===(t=this._contentWidget)||void 0===t?void 0:t.containsNode(i))||this._hideWidgets()}_onEditorMouseMove(e){var t,i,n,o,s;const r=e.target;if(this._isMouseDown&&this._hoverClicked)return;if(this._isHoverSticky&&9===r.type&&r.detail===F.ID)return;if(this._isHoverSticky&&!(null===(i=null===(t=e.event.browserEvent.view)||void 0===t?void 0:t.getSelection())||void 0===i?void 0:i.isCollapsed))return;if(!this._isHoverSticky&&9===r.type&&r.detail===F.ID&&(null===(n=this._contentWidget)||void 0===n?void 0:n.isColorPickerVisible()))return;if(this._isHoverSticky&&12===r.type&&r.detail===U.ID)return;if(!this._isHoverEnabled)return void this._hideWidgets();if(!this._getOrCreateContentWidget().maybeShowAt(e))return 2===r.type&&r.position?(null===(s=this._contentWidget)||void 0===s||s.hide(),this._glyphWidget||(this._glyphWidget=new U(this._editor,this._languageService,this._openerService)),void this._glyphWidget.startShowingAt(r.position.lineNumber)):void this._hideWidgets();null===(o=this._glyphWidget)||void 0===o||o.hide()}_onKeyDown(e){5!==e.keyCode&&6!==e.keyCode&&57!==e.keyCode&&4!==e.keyCode&&this._hideWidgets()}_hideWidgets(){var e,t,i;this._isMouseDown&&this._hoverClicked&&(null===(e=this._contentWidget)||void 0===e?void 0:e.isColorPickerVisible())||(this._hoverClicked=!1,null===(t=this._glyphWidget)||void 0===t||t.hide(),null===(i=this._contentWidget)||void 0===i||i.hide())}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(O,this._editor)),this._contentWidget}isColorPickerVisible(){var e;return(null===(e=this._contentWidget)||void 0===e?void 0:e.isColorPickerVisible())||!1}showContentHover(e,t,i){this._getOrCreateContentWidget().startShowingAtRange(e,t,i)}dispose(){var e,t;this._unhookEvents(),this._toUnhook.dispose(),this._didChangeConfigurationHandler.dispose(),null===(e=this._glyphWidget)||void 0===e||e.dispose(),null===(t=this._contentWidget)||void 0===t||t.dispose()}};ge.ID="editor.contrib.hover",ge=he([ue(1,E.TG),ue(2,z.v4),ue(3,l.O),ue(4,N.i6)],ge);class pe extends s.R6{constructor(){super({id:"editor.action.showHover",label:$.NC({key:"showHover",comment:["Label for action that will trigger the showing of a hover in the editor.","This allows for users to show the hover without using the mouse."]},"Show Hover"),alias:"Show Hover",precondition:void 0,kbOpts:{kbExpr:a.u.editorTextFocus,primary:(0,n.gx)(2089,2087),weight:100}})}run(e,t){if(!t.hasModel())return;const i=ge.get(t);if(!i)return;const n=t.getPosition(),o=new r.e(n.lineNumber,n.column,n.lineNumber,n.column),s=2===t.getOption(2);i.showContentHover(o,1,s)}}class me extends s.R6{constructor(){super({id:"editor.action.showDefinitionPreviewHover",label:$.NC({key:"showDefinitionPreviewHover",comment:["Label for action that will trigger the showing of definition preview hover in the editor.","This allows for users to show the definition preview hover without using the mouse."]},"Show Definition Preview Hover"),alias:"Show Definition Preview Hover",precondition:void 0})}run(e,t){const i=ge.get(t);if(!i)return;const n=t.getPosition();if(!n)return;const o=new r.e(n.lineNumber,n.column,n.lineNumber,n.column),s=c.S.get(t);if(!s)return;s.startFindDefinitionFromCursor(n).then((()=>{i.showContentHover(o,1,!0)}))}}(0,s._K)(ge.ID,ge),(0,s.Qr)(pe),(0,s.Qr)(me),D.Ae.register(Q.D5),D.Ae.register(de),(0,G.Ic)(((e,t)=>{const i=e.getColor(q.ptc);i&&t.addRule(`.monaco-editor .hoverHighlight { background-color: ${i}; }`);const n=e.getColor(q.yJx);n&&t.addRule(`.monaco-editor .monaco-hover { background-color: ${n}; }`);const o=e.getColor(q.CNo);o&&(t.addRule(`.monaco-editor .monaco-hover { border: 1px solid ${o}; }`),t.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${o.transparent(.5)}; }`),t.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${o.transparent(.5)}; }`),t.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${o.transparent(.5)}; }`));const s=e.getColor(q.url);s&&t.addRule(`.monaco-editor .monaco-hover a { color: ${s}; }`);const r=e.getColor(q.sgC);r&&t.addRule(`.monaco-editor .monaco-hover a:hover { color: ${r}; }`);const a=e.getColor(q.Sbf);a&&t.addRule(`.monaco-editor .monaco-hover { color: ${a}; }`);const l=e.getColor(q.LoV);l&&t.addRule(`.monaco-editor .monaco-hover .hover-row .actions { background-color: ${l}; }`);const c=e.getColor(q.SwI);c&&t.addRule(`.monaco-editor .monaco-hover code { background-color: ${c}; }`)}))},66520:(e,t,i)=>{"use strict";i.d(t,{Ae:()=>s,Qj:()=>n,YM:()=>o});class n{constructor(e,t){this.priority=e,this.range=t,this.type=1}equals(e){return 1===e.type&&this.range.equalsRange(e.range)}canAdoptVisibleHover(e,t){return 1===e.type&&t.lineNumber===this.range.startLineNumber}}class o{constructor(e,t,i){this.priority=e,this.owner=t,this.range=i,this.type=2}equals(e){return 2===e.type&&this.owner===e.owner}canAdoptVisibleHover(e,t){return 2===e.type&&this.owner===e.owner}}const s=new class{constructor(){this._participants=[]}register(e){this._participants.push(e)}getAll(){return this._participants}}},22374:(e,t,i)=>{"use strict";i.d(t,{D5:()=>w,c:()=>y,hU:()=>C});var n=i(65321),o=i(9488),s=i(15393),r=i(59365),a=i(5976),l=i(51318),c=i(50187),d=i(24314),h=i(72042),u=i(41095),g=i(63580),p=i(33108),m=i(50988),f=i(71922),_=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},v=function(e,t){return function(i,n){t(i,n,e)}};const b=n.$;class C{constructor(e,t,i,n){this.owner=e,this.range=t,this.contents=i,this.ordinal=n}isValidForHoverAnchor(e){return 1===e.type&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let w=class{constructor(e,t,i,n,o){this._editor=e,this._languageService=t,this._openerService=i,this._configurationService=n,this._languageFeaturesService=o,this.hoverOrdinal=2}createLoadingMessage(e){return new C(this,e.range,[(new r.W5).appendText(g.NC("modesContentHover.loading","Loading..."))],2e3)}computeSync(e,t){if(!this._editor.hasModel()||1!==e.type)return[];const i=this._editor.getModel(),n=e.range.startLineNumber,s=i.getLineMaxColumn(n),a=[];let l=1e3;const c=i.getLineLength(n),h=i.getLanguageIdAtPosition(e.range.startLineNumber,e.range.startColumn),u=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:h});"number"==typeof u&&c>=u&&a.push(new C(this,e.range,[{value:g.NC("too many characters","Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.")}],l++));for(const g of t){const t=g.range.startLineNumber===n?g.range.startColumn:1,i=g.range.endLineNumber===n?g.range.endColumn:s,c=g.options.hoverMessage;if(!c||(0,r.CP)(c))continue;const h=new d.e(e.range.startLineNumber,t,e.range.startLineNumber,i);a.push(new C(this,h,(0,o._2)(c),l++))}return a}computeAsync(e,t,i){if(!this._editor.hasModel()||1!==e.type)return s.Aq.EMPTY;const n=this._editor.getModel();if(!this._languageFeaturesService.hoverProvider.has(n))return s.Aq.EMPTY;const o=new c.L(e.range.startLineNumber,e.range.startColumn);return(0,u.R8)(this._languageFeaturesService.hoverProvider,n,o,i).filter((e=>!(0,r.CP)(e.hover.contents))).map((t=>{const i=t.hover.range?d.e.lift(t.hover.range):e.range;return new C(this,i,t.hover.contents,t.ordinal)}))}renderHoverParts(e,t){return y(e,t,this._editor,this._languageService,this._openerService)}};function y(e,t,i,o,s){t.sort(((e,t)=>e.ordinal-t.ordinal));const c=new a.SL;for(const a of t)for(const t of a.contents){if((0,r.CP)(t))continue;const a=b("div.hover-row.markdown-hover"),d=n.R3(a,b("div.hover-contents")),h=c.add(new l.$({editor:i},o,s));c.add(h.onDidRenderAsync((()=>{d.className="hover-contents code-hover-contents",e.onContentsChanged()})));const u=c.add(h.render(t));d.appendChild(u.element),e.fragment.appendChild(a)}return c}w=_([v(1,h.O),v(2,m.v4),v(3,p.Ui),v(4,f.p)],w)},68077:(e,t,i)=>{"use strict";var n=i(15393),o=i(17301),s=i(14410),r=i(16830),a=i(24314),l=i(3860),c=i(29102),d=i(22529),h=i(85215),u=i(8625),g=i(63580),p=i(97781);class m{constructor(e,t,i){this._editRange=e,this._originalSelection=t,this._text=i}getEditOperations(e,t){t.addTrackedEditOperation(this._editRange,this._text)}computeCursorState(e,t){const i=t.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new l.Y(i.endLineNumber,Math.min(this._originalSelection.positionColumn,i.endColumn),i.endLineNumber,Math.min(this._originalSelection.positionColumn,i.endColumn)):new l.Y(i.endLineNumber,i.endColumn-this._text.length,i.endLineNumber,i.endColumn)}}var f=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},_=function(e,t){return function(i,n){t(i,n,e)}};let v=class e{constructor(e,t){this.editor=e,this.editorWorkerService=t,this.decorations=this.editor.createDecorationsCollection()}static get(t){return t.getContribution(e.ID)}dispose(){}run(t,i){this.currentRequest&&this.currentRequest.cancel();const r=this.editor.getSelection(),c=this.editor.getModel();if(!c||!r)return;let d=r;if(d.startLineNumber!==d.endLineNumber)return;const h=new s.yy(this.editor,5),u=c.uri;return this.editorWorkerService.canNavigateValueSet(u)?(this.currentRequest=(0,n.PG)((e=>this.editorWorkerService.navigateValueSet(u,d,i))),this.currentRequest.then((i=>{if(!i||!i.range||!i.value)return;if(!h.validate(this.editor))return;const s=a.e.lift(i.range);let r=i.range;const c=i.value.length-(d.endColumn-d.startColumn);r={startLineNumber:r.startLineNumber,startColumn:r.startColumn,endLineNumber:r.endLineNumber,endColumn:r.startColumn+i.value.length},c>1&&(d=new l.Y(d.startLineNumber,d.startColumn,d.endLineNumber,d.endColumn+c-1));const u=new m(s,d,i.value);this.editor.pushUndoStop(),this.editor.executeCommand(t,u),this.editor.pushUndoStop(),this.decorations.set([{range:r,options:e.DECORATION}]),this.decorationRemover&&this.decorationRemover.cancel(),this.decorationRemover=(0,n.Vs)(350),this.decorationRemover.then((()=>this.decorations.clear())).catch(o.dL)})).catch(o.dL)):Promise.resolve(void 0)}};v.ID="editor.contrib.inPlaceReplaceController",v.DECORATION=d.qx.register({description:"in-place-replace",className:"valueSetReplacement"}),v=f([_(1,h.p)],v);class b extends r.R6{constructor(){super({id:"editor.action.inPlaceReplace.up",label:g.NC("InPlaceReplaceAction.previous.label","Replace with Previous Value"),alias:"Replace with Previous Value",precondition:c.u.writable,kbOpts:{kbExpr:c.u.editorTextFocus,primary:3154,weight:100}})}run(e,t){const i=v.get(t);return i?i.run(this.id,!0):Promise.resolve(void 0)}}class C extends r.R6{constructor(){super({id:"editor.action.inPlaceReplace.down",label:g.NC("InPlaceReplaceAction.next.label","Replace with Next Value"),alias:"Replace with Next Value",precondition:c.u.writable,kbOpts:{kbExpr:c.u.editorTextFocus,primary:3156,weight:100}})}run(e,t){const i=v.get(t);return i?i.run(this.id,!1):Promise.resolve(void 0)}}(0,r._K)(v.ID,v),(0,r.Qr)(b),(0,r.Qr)(C),(0,p.Ic)(((e,t)=>{const i=e.getColor(u.Dl);i&&t.addRule(`.monaco-editor.vs .valueSetReplacement { outline: solid 2px ${i}; }`)}))},18279:(e,t,i)=>{"use strict";function n(e,t){let i=0;for(let n=0;n<e.length;n++)"\t"===e.charAt(n)?i+=t:i++;return i}function o(e,t,i){e=e<0?0:e;let n="";if(!i){const i=Math.floor(e/t);e%=t;for(let e=0;e<i;e++)n+="\t"}for(let o=0;o<e;o++)n+=" ";return n}i.d(t,{J:()=>o,Y:()=>n})},84602:(e,t,i)=>{"use strict";var n=i(5976),o=i(97295),s=i(16830),r=i(10291),a=i(69386),l=i(24314),c=i(3860),d=i(29102),h=i(4256),u=i(73733),g=i(18279),p=i(63580),m=i(41157),f=i(83158),_=i(75383),v=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},b=function(e,t){return function(i,n){t(i,n,e)}};function C(e,t,i,n,s){if(1===e.getLineCount()&&1===e.getLineMaxColumn(1))return[];const l=t.getLanguageConfiguration(e.getLanguageId()).indentationRules;if(!l)return[];for(n=Math.min(n,e.getLineCount());i<=n&&l.unIndentedLinePattern;){const t=e.getLineContent(i);if(!l.unIndentedLinePattern.test(t))break;i++}if(i>n-1)return[];const{tabSize:d,indentSize:h,insertSpaces:u}=e.getOptions(),g=(e,t)=>(t=t||1,r.U.shiftIndent(e,e.length+t,d,h,u)),p=(e,t)=>(t=t||1,r.U.unshiftIndent(e,e.length+t,d,h,u)),m=[];let _;const v=e.getLineContent(i);let b=v;if(null!=s){_=s;const e=o.V8(v);b=_+v.substring(e.length),l.decreaseIndentPattern&&l.decreaseIndentPattern.test(b)&&(_=p(_),b=_+v.substring(e.length)),v!==b&&m.push(a.h.replaceMove(new c.Y(i,1,i,e.length+1),(0,f.x)(_,h,u)))}else _=o.V8(v);let C=_;l.increaseIndentPattern&&l.increaseIndentPattern.test(b)?(C=g(C),_=g(_)):l.indentNextLinePattern&&l.indentNextLinePattern.test(b)&&(C=g(C));for(let r=++i;r<=n;r++){const t=e.getLineContent(r),i=o.V8(t),n=C+t.substring(i.length);l.decreaseIndentPattern&&l.decreaseIndentPattern.test(n)&&(C=p(C),_=p(_)),i!==C&&m.push(a.h.replaceMove(new c.Y(r,1,r,i.length+1),(0,f.x)(C,h,u))),l.unIndentedLinePattern&&l.unIndentedLinePattern.test(t)||(l.increaseIndentPattern&&l.increaseIndentPattern.test(n)?(_=g(_),C=_):C=l.indentNextLinePattern&&l.indentNextLinePattern.test(n)?g(C):_)}return m}class w extends s.R6{constructor(){super({id:w.ID,label:p.NC("indentationToSpaces","Convert Indentation to Spaces"),alias:"Convert Indentation to Spaces",precondition:d.u.writable})}run(e,t){const i=t.getModel();if(!i)return;const n=i.getOptions(),o=t.getSelection();if(!o)return;const s=new M(o,n.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop(),i.updateOptions({insertSpaces:!0})}}w.ID="editor.action.indentationToSpaces";class y extends s.R6{constructor(){super({id:y.ID,label:p.NC("indentationToTabs","Convert Indentation to Tabs"),alias:"Convert Indentation to Tabs",precondition:d.u.writable})}run(e,t){const i=t.getModel();if(!i)return;const n=i.getOptions(),o=t.getSelection();if(!o)return;const s=new A(o,n.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop(),i.updateOptions({insertSpaces:!1})}}y.ID="editor.action.indentationToTabs";class S extends s.R6{constructor(e,t){super(t),this.insertSpaces=e}run(e,t){const i=e.get(m.eJ),n=e.get(u.q),o=t.getModel();if(!o)return;const s=n.getCreationOptions(o.getLanguageId(),o.uri,o.isForSimpleWidget),r=[1,2,3,4,5,6,7,8].map((e=>({id:e.toString(),label:e.toString(),description:e===s.tabSize?p.NC("configuredTabSize","Configured Tab Size"):void 0}))),a=Math.min(o.getOptions().tabSize-1,7);setTimeout((()=>{i.pick(r,{placeHolder:p.NC({key:"selectTabWidth",comment:["Tab corresponds to the tab key"]},"Select Tab Size for Current File"),activeItem:r[a]}).then((e=>{e&&o&&!o.isDisposed()&&o.updateOptions({tabSize:parseInt(e.label,10),insertSpaces:this.insertSpaces})}))}),50)}}class L extends S{constructor(){super(!1,{id:L.ID,label:p.NC("indentUsingTabs","Indent Using Tabs"),alias:"Indent Using Tabs",precondition:void 0})}}L.ID="editor.action.indentUsingTabs";class k extends S{constructor(){super(!0,{id:k.ID,label:p.NC("indentUsingSpaces","Indent Using Spaces"),alias:"Indent Using Spaces",precondition:void 0})}}k.ID="editor.action.indentUsingSpaces";class x extends s.R6{constructor(){super({id:x.ID,label:p.NC("detectIndentation","Detect Indentation from Content"),alias:"Detect Indentation from Content",precondition:void 0})}run(e,t){const i=e.get(u.q),n=t.getModel();if(!n)return;const o=i.getCreationOptions(n.getLanguageId(),n.uri,n.isForSimpleWidget);n.detectIndentation(o.insertSpaces,o.tabSize)}}x.ID="editor.action.detectIndentation";class D extends s.R6{constructor(){super({id:"editor.action.reindentlines",label:p.NC("editor.reindentlines","Reindent Lines"),alias:"Reindent Lines",precondition:d.u.writable})}run(e,t){const i=e.get(h.c_),n=t.getModel();if(!n)return;const o=C(n,i,1,n.getLineCount());o.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,o),t.pushUndoStop())}}class N extends s.R6{constructor(){super({id:"editor.action.reindentselectedlines",label:p.NC("editor.reindentselectedlines","Reindent Selected Lines"),alias:"Reindent Selected Lines",precondition:d.u.writable})}run(e,t){const i=e.get(h.c_),n=t.getModel();if(!n)return;const o=t.getSelections();if(null===o)return;const s=[];for(const r of o){let e=r.startLineNumber,t=r.endLineNumber;if(e!==t&&1===r.endColumn&&t--,1===e){if(e===t)continue}else e--;const o=C(n,i,e,t);s.push(...o)}s.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,s),t.pushUndoStop())}}class E{constructor(e,t){this._initialSelection=t,this._edits=[],this._selectionId=null;for(const i of e)i.range&&"string"==typeof i.text&&this._edits.push(i)}getEditOperations(e,t){for(const n of this._edits)t.addEditOperation(l.e.lift(n.range),n.text);let i=!1;Array.isArray(this._edits)&&1===this._edits.length&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!1))),i||(this._selectionId=t.trackSelection(this._initialSelection))}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}let I=class{constructor(e,t){this.editor=e,this._languageConfigurationService=t,this.callOnDispose=new n.SL,this.callOnModel=new n.SL,this.callOnDispose.add(e.onDidChangeConfiguration((()=>this.update()))),this.callOnDispose.add(e.onDidChangeModel((()=>this.update()))),this.callOnDispose.add(e.onDidChangeModelLanguage((()=>this.update())))}update(){this.callOnModel.clear(),this.editor.getOption(9)<4||this.editor.getOption(50)||this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste((({range:e})=>{this.trigger(e)})))}trigger(e){const t=this.editor.getSelections();if(null===t||t.length>1)return;const i=this.editor.getModel();if(!i)return;if(!i.tokenization.isCheapToTokenize(e.getStartPosition().lineNumber))return;const n=this.editor.getOption(9),{tabSize:s,indentSize:a,insertSpaces:c}=i.getOptions(),d=[],h={shiftIndent:e=>r.U.shiftIndent(e,e.length+1,s,a,c),unshiftIndent:e=>r.U.unshiftIndent(e,e.length+1,s,a,c)};let u=e.startLineNumber;for(;u<=e.endLineNumber&&this.shouldIgnoreLine(i,u);)u++;if(u>e.endLineNumber)return;let p=i.getLineContent(u);if(!/\S/.test(p.substring(0,e.startColumn-1))){const e=(0,_.n8)(n,i,i.getLanguageId(),u,h,this._languageConfigurationService);if(null!==e){const t=o.V8(p),n=g.Y(e,s);if(n!==g.Y(t,s)){const e=g.J(n,s,c);d.push({range:new l.e(u,1,u,t.length+1),text:e}),p=e+p.substr(t.length)}else{const e=(0,_.tI)(i,u,this._languageConfigurationService);if(0===e||8===e)return}}}const m=u;for(;u<e.endLineNumber&&!/\S/.test(i.getLineContent(u+1));)u++;if(u!==e.endLineNumber){const t={tokenization:{getLineTokens:e=>i.tokenization.getLineTokens(e),getLanguageId:()=>i.getLanguageId(),getLanguageIdAtPosition:(e,t)=>i.getLanguageIdAtPosition(e,t)},getLineContent:e=>e===m?p:i.getLineContent(e)},r=(0,_.n8)(n,t,i.getLanguageId(),u+1,h,this._languageConfigurationService);if(null!==r){const t=g.Y(r,s),n=g.Y(o.V8(i.getLineContent(u+1)),s);if(t!==n){const r=t-n;for(let t=u+1;t<=e.endLineNumber;t++){const e=i.getLineContent(t),n=o.V8(e),a=g.Y(n,s)+r,h=g.J(a,s,c);h!==n&&d.push({range:new l.e(t,1,t,n.length+1),text:h})}}}}if(d.length>0){this.editor.pushUndoStop();const e=new E(d,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",e),this.editor.pushUndoStop()}}shouldIgnoreLine(e,t){e.tokenization.forceTokenization(t);const i=e.getLineFirstNonWhitespaceColumn(t);if(0===i)return!0;const n=e.tokenization.getLineTokens(t);if(n.getCount()>0){const e=n.findTokenIndexAtOffset(i);if(e>=0&&1===n.getStandardTokenType(e))return!0}return!1}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};function T(e,t,i,n){if(1===e.getLineCount()&&1===e.getLineMaxColumn(1))return;let o="";for(let r=0;r<i;r++)o+=" ";const s=new RegExp(o,"gi");for(let r=1,a=e.getLineCount();r<=a;r++){let i=e.getLineFirstNonWhitespaceColumn(r);if(0===i&&(i=e.getLineMaxColumn(r)),1===i)continue;const a=new l.e(r,1,r,i),c=e.getValueInRange(a),d=n?c.replace(/\t/gi,o):c.replace(s,"\t");t.addEditOperation(a,d)}}I.ID="editor.contrib.autoIndentOnPaste",I=v([b(1,h.c_)],I);class M{constructor(e,t){this.selection=e,this.tabSize=t,this.selectionId=null}getEditOperations(e,t){this.selectionId=t.trackSelection(this.selection),T(e,t,this.tabSize,!0)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}}class A{constructor(e,t){this.selection=e,this.tabSize=t,this.selectionId=null}getEditOperations(e,t){this.selectionId=t.trackSelection(this.selection),T(e,t,this.tabSize,!1)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}}(0,s._K)(I.ID,I),(0,s.Qr)(w),(0,s.Qr)(y),(0,s.Qr)(L),(0,s.Qr)(k),(0,s.Qr)(x),(0,s.Qr)(D),(0,s.Qr)(N)},77563:(e,t,i)=>{"use strict";var n=i(16830),o=i(66520),s=i(65321),r=i(9488),a=i(15393),l=i(71050),c=i(17301),d=i(5976),h=i(43702),u=i(98401),g=i(70666),p=i(29994),m=i(64141),f=i(69386),_=i(24314),v=i(43155),b=i(84973),C=i(22529),w=i(88191),y=i(71922),S=i(88216),L=i(82005),k=i(50187),x=i(66663),D=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class N{constructor(e,t){this.range=e,this.direction=t}}class E{constructor(e,t,i){this.hint=e,this.anchor=t,this.provider=i,this._isResolved=!1}with(e){const t=new E(this.hint,e.anchor,this.provider);return t._isResolved=this._isResolved,t._currentResolve=this._currentResolve,t}resolve(e){return D(this,void 0,void 0,(function*(){if("function"==typeof this.provider.resolveInlayHint){if(this._currentResolve){if(yield this._currentResolve,e.isCancellationRequested)return;return this.resolve(e)}this._isResolved||(this._currentResolve=this._doResolve(e).finally((()=>this._currentResolve=void 0))),yield this._currentResolve}}))}_doResolve(e){var t,i;return D(this,void 0,void 0,(function*(){try{const n=yield Promise.resolve(this.provider.resolveInlayHint(this.hint,e));this.hint.tooltip=null!==(t=null==n?void 0:n.tooltip)&&void 0!==t?t:this.hint.tooltip,this.hint.label=null!==(i=null==n?void 0:n.label)&&void 0!==i?i:this.hint.label,this._isResolved=!0}catch(n){(0,c.Cp)(n),this._isResolved=!1}}))}}class I{constructor(e,t,i){this._disposables=new d.SL,this.ranges=e,this.provider=new Set;const n=[];for(const[o,s]of t){this._disposables.add(o),this.provider.add(s);for(const e of o.hints){const t=i.validatePosition(e.position);let o="before";const r=I._getRangeAtPosition(i,t);let a;r.getStartPosition().isBefore(t)?(a=_.e.fromPositions(r.getStartPosition(),t),o="after"):(a=_.e.fromPositions(t,r.getEndPosition()),o="before"),n.push(new E(e,new N(a,o),s))}}this.items=n.sort(((e,t)=>k.L.compare(e.hint.position,t.hint.position)))}static create(e,t,i,n){return D(this,void 0,void 0,(function*(){const o=[],s=e.ordered(t).reverse().map((e=>i.map((i=>D(this,void 0,void 0,(function*(){try{const s=yield e.provideInlayHints(t,i,n);(null==s?void 0:s.hints.length)&&o.push([s,e])}catch(s){(0,c.Cp)(s)}}))))));if(yield Promise.all(s.flat()),n.isCancellationRequested||t.isDisposed())throw new c.FU;return new I(i,o,t)}))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(e,t){const i=t.lineNumber,n=e.getWordAtPosition(t);if(n)return new _.e(i,n.startColumn,i,n.endColumn);e.tokenization.tokenizeIfCheap(i);const o=e.tokenization.getLineTokens(i),s=t.column-1,r=o.findTokenIndexAtOffset(s);let a=o.getStartOffset(r),l=o.getEndOffset(r);return l-a==1&&(a===s&&r>1?(a=o.getStartOffset(r-1),l=o.getEndOffset(r-1)):l===s&&r<o.getCount()-1&&(a=o.getStartOffset(r+1),l=o.getEndOffset(r+1))),new _.e(i,a+1,i,l+1)}}var T=i(74741),M=i(95817),A=i(36943),R=i(84144),O=i(94565),P=i(38819),F=i(5606),B=i(72065),V=i(59422),W=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};function H(e,t,i,o){var r;return W(this,void 0,void 0,(function*(){const a=e.get(S.S),c=e.get(F.i),d=e.get(O.Hy),h=e.get(B.TG),u=e.get(V.lT);if(yield o.item.resolve(l.T.None),!o.part.location)return;const g=o.part.location,p=[],m=new Set(R.BH.getMenuItems(R.eH.EditorContext).map((e=>(0,R.vr)(e)?e.command.id:"")));for(const e of n.Uc.getEditorActions())e instanceof M.Bj&&m.has(e.id)&&p.push(new T.aU(e.id,e.label,void 0,!0,(()=>W(this,void 0,void 0,(function*(){const i=yield a.createModelReference(g.uri);try{yield h.invokeFunction(e.run.bind(e),t,new M._k(i.object.textEditorModel,_.e.getStartPosition(g.range)))}finally{i.dispose()}})))));if(o.part.command){const{command:e}=o.part;p.push(new T.Z0),p.push(new T.aU(e.id,e.title,void 0,!0,(()=>W(this,void 0,void 0,(function*(){var t;try{yield d.executeCommand(e.id,...null!==(t=e.arguments)&&void 0!==t?t:[])}catch(i){u.notify({severity:V.zb.Error,source:o.item.provider.displayName,message:i})}})))))}const f=t.getOption(117);c.showContextMenu({domForShadowRoot:f&&null!==(r=t.getDomNode())&&void 0!==r?r:void 0,getAnchor:()=>{const e=s.i(i);return{x:e.left,y:e.top+e.height+8}},getActions:()=>p,onHide:()=>{t.focus()},autoSelectFirstItem:!0})}))}function z(e,t,i,n){return W(this,void 0,void 0,(function*(){const o=e.get(S.S),s=yield o.createModelReference(n.uri);yield i.invokeWithinContext((e=>W(this,void 0,void 0,(function*(){const o=t.hasSideBySideModifier,r=e.get(P.i6),a=A.Jy.inPeekEditor.getValue(r),l=!o&&i.getOption(80)&&!a;return new M.BT({openToSide:o,openInPeek:l,muteMessage:!0},{alias:"",label:"",id:"",precondition:void 0}).run(e,i,{model:s.object.textEditorModel,position:_.e.getStartPosition(n.range)})})))),s.dispose()}))}var j=i(65026),U=i(73910),K=i(97781),$=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},q=function(e,t){return function(i,n){t(i,n,e)}},G=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class Q{constructor(){this._entries=new h.z6(50)}get(e){const t=Q._key(e);return this._entries.get(t)}set(e,t){const i=Q._key(e);this._entries.set(i,t)}static _key(e){return`${e.uri.toString()}/${e.getVersionId()}`}}const Z=(0,B.yh)("IInlayHintsCache");(0,j.z)(Z,Q,!0);class Y{constructor(e,t){this.item=e,this.index=t}get part(){const e=this.item.hint.label;return"string"==typeof e?{label:e}:e[this.index]}}class J{constructor(e,t){this.part=e,this.hasTriggerModifier=t}}let X=class e{constructor(e,t,i,n,o,s,r){this._editor=e,this._languageFeaturesService=t,this._inlayHintsCache=n,this._commandService=o,this._notificationService=s,this._instaService=r,this._disposables=new d.SL,this._sessionDisposables=new d.SL,this._decorationsMetadata=new Map,this._ruleFactory=new p.t7(this._editor),this._activeRenderMode=0,this._debounceInfo=i.for(t.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(t.inlayHintsProvider.onDidChange((()=>this._update()))),this._disposables.add(e.onDidChangeModel((()=>this._update()))),this._disposables.add(e.onDidChangeModelLanguage((()=>this._update()))),this._disposables.add(e.onDidChangeConfiguration((e=>{e.hasChanged(129)&&this._update()}))),this._update()}static get(t){var i;return null!==(i=t.getContribution(e.ID))&&void 0!==i?i:void 0}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();const e=this._editor.getOption(129);if("off"===e.enabled)return;const t=this._editor.getModel();if(!t||!this._languageFeaturesService.inlayHintsProvider.has(t))return;const i=this._inlayHintsCache.get(t);let n;i&&this._updateHintsDecorators([t.getFullModelRange()],i),this._sessionDisposables.add((0,d.OF)((()=>{t.isDisposed()||this._cacheHintsForFastRestore(t)})));const o=new Set,r=new a.pY((()=>G(this,void 0,void 0,(function*(){const e=Date.now();null==n||n.dispose(!0),n=new l.A;const i=t.onWillDispose((()=>null==n?void 0:n.cancel()));try{const s=n.token,a=yield I.create(this._languageFeaturesService.inlayHintsProvider,t,this._getHintsRanges(),s);if(r.delay=this._debounceInfo.update(t,Date.now()-e),s.isCancellationRequested)return void a.dispose();for(const e of a.provider)"function"!=typeof e.onDidChangeInlayHints||o.has(e)||(o.add(e),this._sessionDisposables.add(e.onDidChangeInlayHints((()=>{r.isScheduled()||r.schedule()}))));this._sessionDisposables.add(a),this._updateHintsDecorators(a.ranges,a.items),this._cacheHintsForFastRestore(t)}catch(s){(0,c.dL)(s)}finally{n.dispose(),i.dispose()}}))),this._debounceInfo.get(t));if(this._sessionDisposables.add(r),this._sessionDisposables.add((0,d.OF)((()=>null==n?void 0:n.dispose(!0)))),r.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange((e=>{!e.scrollTopChanged&&r.isScheduled()||r.schedule()}))),this._sessionDisposables.add(this._editor.onDidChangeModelContent((e=>{const t=Math.max(r.delay,1250);r.schedule(t)}))),"on"===e.enabled)this._activeRenderMode=0;else{let t,i;"onUnlessPressed"===e.enabled?(t=0,i=1):(t=1,i=0),this._activeRenderMode=t,this._sessionDisposables.add(s._q.getInstance().event((e=>{if(!this._editor.hasModel())return;const n=e.altKey&&e.ctrlKey?i:t;if(n!==this._activeRenderMode){this._activeRenderMode=n;const e=this._editor.getModel(),t=this._copyInlayHintsWithCurrentAnchor(e);this._updateHintsDecorators([e.getFullModelRange()],t),r.schedule(0)}})))}this._sessionDisposables.add(this._installDblClickGesture((()=>r.schedule(0)))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const e=new d.SL,t=e.add(new L.yN(this._editor)),i=new d.SL;return e.add(i),e.add(t.onMouseMoveOrRelevantKeyDown((e=>{const[t]=e,n=this._getInlayHintLabelPart(t),o=this._editor.getModel();if(!n||!o)return void i.clear();const s=new l.A;i.add((0,d.OF)((()=>s.dispose(!0)))),n.item.resolve(s.token),this._activeInlayHintPart=n.part.command||n.part.location?new J(n,t.hasTriggerModifier):void 0;const r=n.item.hint.position.lineNumber,a=new _.e(r,1,r,o.getLineMaxColumn(r)),c=this._getInlineHintsForRange(a);this._updateHintsDecorators([a],c),i.add((0,d.OF)((()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([a],c)})))}))),e.add(t.onCancel((()=>i.clear()))),e.add(t.onExecute((e=>G(this,void 0,void 0,(function*(){const t=this._getInlayHintLabelPart(e);if(t){const i=t.part;i.location?this._instaService.invokeFunction(z,e,this._editor,i.location):v.mY.is(i.command)&&(yield this._invokeCommand(i.command,t.item))}}))))),e}_getInlineHintsForRange(e){const t=new Set;for(const i of this._decorationsMetadata.values())e.containsRange(i.item.anchor.range)&&t.add(i.item);return Array.from(t)}_installDblClickGesture(e){return this._editor.onMouseUp((t=>G(this,void 0,void 0,(function*(){if(2!==t.event.detail)return;const i=this._getInlayHintLabelPart(t);if(i&&(t.event.preventDefault(),yield i.item.resolve(l.T.None),(0,r.Of)(i.item.hint.textEdits))){const t=i.item.hint.textEdits.map((e=>f.h.replace(_.e.lift(e.range),e.text)));this._editor.executeEdits("inlayHint.default",t),e()}}))))}_installContextMenu(){return this._editor.onContextMenu((e=>G(this,void 0,void 0,(function*(){if(!(e.event.target instanceof HTMLElement))return;const t=this._getInlayHintLabelPart(e);t&&(yield this._instaService.invokeFunction(H,this._editor,e.event.target,t))}))))}_getInlayHintLabelPart(e){var t;if(6!==e.target.type)return;const i=null===(t=e.target.detail.injectedText)||void 0===t?void 0:t.options;return i instanceof C.HS&&(null==i?void 0:i.attachedData)instanceof Y?i.attachedData:void 0}_invokeCommand(e,t){var i;return G(this,void 0,void 0,(function*(){try{yield this._commandService.executeCommand(e.id,...null!==(i=e.arguments)&&void 0!==i?i:[])}catch(n){this._notificationService.notify({severity:V.zb.Error,source:t.provider.displayName,message:n})}}))}_cacheHintsForFastRestore(e){const t=this._copyInlayHintsWithCurrentAnchor(e);this._inlayHintsCache.set(e,t)}_copyInlayHintsWithCurrentAnchor(e){const t=new Map;for(const[i,n]of this._decorationsMetadata){if(t.has(n.item))continue;const o=e.getDecorationRange(i);if(o){const e=new N(o,n.item.anchor.direction),i=n.item.with({anchor:e});t.set(n.item,i)}}return Array.from(t.values())}_getHintsRanges(){const e=this._editor.getModel(),t=this._editor.getVisibleRangesPlusViewportAboveBelow(),i=[];for(const n of t.sort(_.e.compareRangesUsingStarts)){const t=e.validateRange(new _.e(n.startLineNumber-30,n.startColumn,n.endLineNumber+30,n.endColumn));0!==i.length&&_.e.areIntersectingOrTouching(i[i.length-1],t)?i[i.length-1]=_.e.plusRange(i[i.length-1],t):i.push(t)}return i}_updateHintsDecorators(t,i){var n,o;const s=[],a=(e,t,i,n,o)=>{const r={content:i,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:t.className,cursorStops:n,attachedData:o};s.push({item:e,classNameRef:t,decoration:{range:e.anchor.range,options:{description:"InlayHint",showIfCollapsed:e.anchor.range.isEmpty(),collapseOnReplaceEdit:!e.anchor.range.isEmpty(),stickiness:0,[e.anchor.direction]:0===this._activeRenderMode?r:void 0}}})},l=(e,t)=>{const i=this._ruleFactory.createClassNameRef({width:(c/3|0)+"px",display:"inline-block"});a(e,i,"\u200a",t?b.RM.Right:b.RM.None)},{fontSize:c,fontFamily:d,padding:h,isUniform:u}=this._getLayoutInfo(),g="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(g,d);for(const f of i){f.hint.paddingLeft&&l(f,!1);const t="string"==typeof f.hint.label?[{label:f.hint.label}]:f.hint.label;for(let e=0;e<t.length;e++){const i=t[e],o=0===e,s=e===t.length-1,l={fontSize:`${c}px`,fontFamily:`var(${g}), ${m.hL.fontFamily}`,verticalAlign:u?"baseline":"middle"};(0,r.Of)(f.hint.textEdits)&&(l.cursor="default"),this._fillInColors(l,f.hint),(i.command||i.location)&&(null===(n=this._activeInlayHintPart)||void 0===n?void 0:n.part.item)===f&&this._activeInlayHintPart.part.index===e&&(l.textDecoration="underline",this._activeInlayHintPart.hasTriggerModifier&&(l.color=(0,K.EN)(U._Yy),l.cursor="pointer")),h&&(o&&s?(l.padding=`1px ${0|Math.max(1,c/4)}px`,l.borderRadius=(c/4|0)+"px"):o?(l.padding=`1px 0 1px ${0|Math.max(1,c/4)}px`,l.borderRadius=`${c/4|0}px 0 0 ${c/4|0}px`):s?(l.padding=`1px ${0|Math.max(1,c/4)}px 1px 0`,l.borderRadius=`0 ${c/4|0}px ${c/4|0}px 0`):l.padding="1px 0 1px 0"),a(f,this._ruleFactory.createClassNameRef(l),ee(i.label),s&&!f.hint.paddingRight?b.RM.Right:b.RM.None,new Y(f,e))}if(f.hint.paddingRight&&l(f,!0),s.length>e._MAX_DECORATORS)break}const p=[];for(const e of t)for(const{id:t}of null!==(o=this._editor.getDecorationsInRange(e))&&void 0!==o?o:[]){const e=this._decorationsMetadata.get(t);e&&(p.push(t),e.classNameRef.dispose(),this._decorationsMetadata.delete(t))}this._editor.changeDecorations((e=>{const t=e.deltaDecorations(p,s.map((e=>e.decoration)));for(let i=0;i<t.length;i++){const e=s[i];this._decorationsMetadata.set(t[i],e)}}))}_fillInColors(e,t){t.kind===v.gl.Parameter?(e.backgroundColor=(0,K.EN)(U.phM),e.color=(0,K.EN)(U.HCL)):t.kind===v.gl.Type?(e.backgroundColor=(0,K.EN)(U.bKB),e.color=(0,K.EN)(U.hX8)):(e.backgroundColor=(0,K.EN)(U.PpC),e.color=(0,K.EN)(U.VVv))}_getLayoutInfo(){const e=this._editor.getOption(129),t=e.padding,i=this._editor.getOption(48),n=this._editor.getOption(45);let o=e.fontSize;(!o||o<5||o>i)&&(o=i);const s=e.fontFamily||n;return{fontSize:o,fontFamily:s,padding:t,isUniform:!t&&s===n&&o===i}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const e of this._decorationsMetadata.values())e.classNameRef.dispose();this._decorationsMetadata.clear()}};function ee(e){return e.replace(/[ \t]/g,"\xa0")}X.ID="editor.contrib.InlayHints",X._MAX_DECORATORS=1500,X=$([q(1,y.p),q(2,w.A),q(3,Z),q(4,O.Hy),q(5,V.lT),q(6,B.TG)],X),O.P0.registerCommand("_executeInlayHintProvider",((e,...t)=>G(void 0,void 0,void 0,(function*(){const[i,n]=t;(0,u.p_)(g.o.isUri(i)),(0,u.p_)(_.e.isIRange(n));const{inlayHintsProvider:o}=e.get(y.p),s=yield e.get(S.S).createModelReference(i);try{const e=yield I.create(o,s.object.textEditorModel,[_.e.lift(n)],l.T.None),t=e.items.map((e=>e.hint));return setTimeout((()=>e.dispose()),0),t}finally{s.dispose()}}))));var te=i(59365),ie=i(72042),ne=i(41095),oe=i(22374),se=i(33108),re=i(50988),ae=i(63580),le=i(1432),ce=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},de=function(e,t){return function(i,n){t(i,n,e)}},he=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))},ue=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,i=e[Symbol.asyncIterator];return i?i.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(i){t[i]=e[i]&&function(t){return new Promise((function(n,o){(function(e,t,i,n){Promise.resolve(n).then((function(t){e({value:t,done:i})}),t)})(n,o,(t=e[i](t)).done,t.value)}))}}};class ge extends o.YM{constructor(e,t){super(10,t,e.item.anchor.range),this.part=e}}let pe=class extends oe.D5{constructor(e,t,i,n,o,s){super(e,t,i,n,s),this._resolverService=o,this.hoverOrdinal=6}suggestHoverAnchor(e){var t;if(!X.get(this._editor))return null;if(6!==e.target.type)return null;const i=null===(t=e.target.detail.injectedText)||void 0===t?void 0:t.options;return i instanceof C.HS&&i.attachedData instanceof Y?new ge(i.attachedData,this):null}computeSync(){return[]}computeAsync(e,t,i){return e instanceof ge?new a.Aq((t=>he(this,void 0,void 0,(function*(){var n,o;const{part:s}=e;if(yield s.item.resolve(i),i.isCancellationRequested)return;let a,l;if("string"==typeof s.item.hint.tooltip?a=(new te.W5).appendText(s.item.hint.tooltip):s.item.hint.tooltip&&(a=s.item.hint.tooltip),a&&t.emitOne(new oe.hU(this,e.range,[a],0)),(0,r.Of)(s.item.hint.textEdits)&&t.emitOne(new oe.hU(this,e.range,[(new te.W5).appendText((0,ae.NC)("hint.dbl","Double click to insert"))],10001)),"string"==typeof s.part.tooltip?l=(new te.W5).appendText(s.part.tooltip):s.part.tooltip&&(l=s.part.tooltip),l&&t.emitOne(new oe.hU(this,e.range,[l],1)),s.part.location||s.part.command){let i;const n="altKey"===this._editor.getOption(72)?le.dz?(0,ae.NC)("links.navigate.kb.meta.mac","cmd + click"):(0,ae.NC)("links.navigate.kb.meta","ctrl + click"):le.dz?(0,ae.NC)("links.navigate.kb.alt.mac","option + click"):(0,ae.NC)("links.navigate.kb.alt","alt + click");s.part.location&&s.part.command?i=(new te.W5).appendText((0,ae.NC)("hint.defAndCommand","Go to Definition ({0}), right click for more",n)):s.part.location?i=(new te.W5).appendText((0,ae.NC)("hint.def","Go to Definition ({0})",n)):s.part.command&&(i=new te.W5(`[${(0,ae.NC)("hint.cmd","Execute Command")}](${c=s.part.command,g.o.from({scheme:x.lg.command,path:c.id,query:c.arguments&&encodeURIComponent(JSON.stringify(c.arguments))}).toString()} "${s.part.command.title}") (${n})`,{isTrusted:!0})),i&&t.emitOne(new oe.hU(this,e.range,[i],1e4))}var c;const d=yield this._resolveInlayHintLabelPartHover(s,i);try{for(var h,u=ue(d);!(h=yield u.next()).done;){const e=h.value;t.emitOne(e)}}catch(p){n={error:p}}finally{try{h&&!h.done&&(o=u.return)&&(yield o.call(u))}finally{if(n)throw n.error}}})))):a.Aq.EMPTY}_resolveInlayHintLabelPartHover(e,t){return he(this,void 0,void 0,(function*(){if(!e.part.location)return a.Aq.EMPTY;const{uri:i,range:n}=e.part.location,o=yield this._resolverService.createModelReference(i);try{const i=o.object.textEditorModel;return this._languageFeaturesService.hoverProvider.has(i)?(0,ne.R8)(this._languageFeaturesService.hoverProvider,i,new k.L(n.startLineNumber,n.startColumn),t).filter((e=>!(0,te.CP)(e.hover.contents))).map((t=>new oe.hU(this,e.item.anchor.range,t.hover.contents,2+t.ordinal))):a.Aq.EMPTY}finally{o.dispose()}}))}};pe=ce([de(1,ie.O),de(2,re.v4),de(3,se.Ui),de(4,S.S),de(5,y.p)],pe),(0,n._K)(X.ID,X),o.Ae.register(pe)},70448:(e,t,i)=>{"use strict";var n=i(16830),o=i(29102),s=i(66520);const r="editor.action.inlineSuggest.commit";var a=i(4669),l=i(5976),c=i(97295),d=i(7988),h=i(50187),u=i(43155),g=i(15393),p=i(71050),m=i(17301),f=i(42549),_=i(69386),v=i(24314);class b{constructor(e){this.lineStartOffsetByLineIdx=[],this.lineStartOffsetByLineIdx.push(0);for(let t=0;t<e.length;t++)"\n"===e.charAt(t)&&this.lineStartOffsetByLineIdx.push(t+1)}getOffset(e){return this.lineStartOffsetByLineIdx[e.lineNumber-1]+e.column-1}}const C=[];class w{constructor(e,t,i=0){this.lineNumber=e,this.parts=t,this.additionalReservedLineCount=i}renderForScreenReader(e){if(0===this.parts.length)return"";const t=this.parts[this.parts.length-1];return function(e,t){const i=new b(e),n=t.map((e=>{const t=v.e.lift(e.range);return{startOffset:i.getOffset(t.getStartPosition()),endOffset:i.getOffset(t.getEndPosition()),text:e.text}}));n.sort(((e,t)=>t.startOffset-e.startOffset));for(const o of n)e=e.substring(0,o.startOffset)+o.text+e.substring(o.endOffset);return e}(e.substr(0,t.column-1),this.parts.map((e=>({range:{startLineNumber:1,endLineNumber:1,startColumn:e.column,endColumn:e.column},text:e.lines.join("\n")})))).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every((e=>0===e.lines.length))}}class y{constructor(e,t,i){this.column=e,this.lines=t,this.preview=i}}class S{constructor(e,t,i,n,o=0){this.lineNumber=e,this.columnStart=t,this.length=i,this.newLines=n,this.additionalReservedLineCount=o,this.parts=[new y(this.columnStart+this.length,this.newLines,!1)]}renderForScreenReader(e){return this.newLines.join("\n")}}class L extends l.JT{constructor(e){super(),this.editor=e,this._expanded=void 0,this.onDidChangeEmitter=new a.Q5,this.onDidChange=this.onDidChangeEmitter.event,this._register(e.onDidChangeConfiguration((e=>{e.hasChanged(108)&&void 0===this._expanded&&this.onDidChangeEmitter.fire()})))}setExpanded(e){this._expanded=!0,this.onDidChangeEmitter.fire()}}var k=i(94565),x=i(22571);function D(e,t){if(!t)return t;const i=e.getValueInRange(t.range),n=c.Mh(i,t.insertText),o=e.getOffsetAt(t.range.getStartPosition())+n,s=e.getPositionAt(o),r=i.substr(n),a=c.P1(r,t.insertText),l=e.getPositionAt(Math.max(o,e.getOffsetAt(t.range.getEndPosition())-a));return{range:v.e.fromPositions(s,l),insertText:t.insertText.substr(n,t.insertText.length-n-a),snippetInfo:t.snippetInfo,filterText:t.filterText,additionalTextEdits:t.additionalTextEdits}}function N(e,t,i,n,o=0){if(e.range.startLineNumber!==e.range.endLineNumber)return;const s=t.getLineContent(e.range.startLineNumber),r=c.V8(s).length;if(e.range.startColumn-1<=r){const t=c.V8(e.insertText).length,i=s.substring(e.range.startColumn-1,r),n=v.e.fromPositions(e.range.getStartPosition().delta(0,i.length),e.range.getEndPosition()),o=e.insertText.startsWith(i)?e.insertText.substring(i.length):e.insertText.substring(t);e={range:n,insertText:o,command:e.command,snippetInfo:void 0,filterText:e.filterText,additionalTextEdits:e.additionalTextEdits}}const a=t.getValueInRange(e.range),l=function(e,t){if((null==E?void 0:E.originalValue)===e&&(null==E?void 0:E.newValue)===t)return null==E?void 0:E.changes;{let i=T(e,t,!0);if(i){const n=I(i);if(n>0){const o=T(e,t,!1);o&&I(o)<n&&(i=o)}}return E={originalValue:e,newValue:t,changes:i},i}}(a,e.insertText);if(!l)return;const d=e.range.startLineNumber,h=new Array;if("prefix"===i){const e=l.filter((e=>0===e.originalLength));if(e.length>1||1===e.length&&e[0].originalStart!==a.length)return}const u=e.insertText.length-o;for(const g of l){const t=e.range.startColumn+g.originalStart+g.originalLength;if("subwordSmart"===i&&n&&n.lineNumber===e.range.startLineNumber&&t<n.column)return;if(g.originalLength>0)return;if(0===g.modifiedLength)continue;const o=g.modifiedStart+g.modifiedLength,s=Math.max(g.modifiedStart,Math.min(o,u)),r=e.insertText.substring(g.modifiedStart,s),a=e.insertText.substring(s,Math.max(g.modifiedStart,o));if(r.length>0){const e=c.uq(r);h.push(new y(t,e,!1))}if(a.length>0){const e=c.uq(a);h.push(new y(t,e,!0))}}return new w(d,h,0)}let E;function I(e){let t=0;for(const i of e)t+=Math.max(i.originalLength-i.modifiedLength,0);return t}function T(e,t,i){if(e.length>5e3||t.length>5e3)return;function n(e){let t=0;for(let i=0,n=e.length;i<n;i++){const n=e.charCodeAt(i);n>t&&(t=n)}return t}const o=Math.max(n(e),n(t));function s(e){if(e<0)throw new Error("unexpected");return o+e+1}function r(e){let t=0,n=0;const o=new Int32Array(e.length);for(let r=0,a=e.length;r<a;r++)if(i&&"("===e[r]){const e=100*n+t;o[r]=s(2*e),t++}else if(i&&")"===e[r]){t=Math.max(t-1,0);const e=100*n+t;o[r]=s(2*e+1),0===t&&n++}else o[r]=e.charCodeAt(r);return o}const a=r(e),l=r(t);return new x.Hs({getElements:()=>a},{getElements:()=>l}).ComputeDiff(!1).changes}var M=i(4256),A=i(35382),R=i(45035),O=i(64837),P=i(61761),F=i(6735);class B{constructor(e){this.lines=e,this.tokenization={getLineTokens:e=>this.lines[e-1]}}getLineCount(){return this.lines.length}getLineLength(e){return this.lines[e-1].getLineContent().length}}var V=i(71922),W=i(88191),H=i(35084),z=i(98762),j=i(98401),U=i(48357),K=i(33108),$=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},q=function(e,t){return function(i,n){t(i,n,e)}},G=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let Q=class extends l.JT{constructor(e,t,i,n,o,s,c){super(),this.editor=e,this.cache=t,this.commandService=i,this.languageConfigurationService=n,this.languageFeaturesService=o,this.debounceService=s,this.onDidChangeEmitter=new a.Q5,this.onDidChange=this.onDidChangeEmitter.event,this.completionSession=this._register(new l.XK),this.active=!1,this.disposed=!1,this.debounceValue=this.debounceService.for(this.languageFeaturesService.inlineCompletionsProvider,"InlineCompletionsDebounce",{min:50,max:50}),this._register(i.onDidExecuteCommand((t=>{new Set([f.wk.Tab.id,f.wk.DeleteLeft.id,f.wk.DeleteRight.id,r,"acceptSelectedSuggestion"]).has(t.commandId)&&e.hasTextFocus()&&this.handleUserInput()}))),this._register(this.editor.onDidType((e=>{this.handleUserInput()}))),this._register(this.editor.onDidChangeCursorPosition((e=>{(3===e.reason||this.session&&!this.session.isValid)&&this.hide()}))),this._register((0,l.OF)((()=>{this.disposed=!0}))),this._register(this.editor.onDidBlurEditorWidget((()=>{c.getValue("editor.inlineSuggest.hideOnBlur")||this.hide()})))}handleUserInput(){this.session&&!this.session.isValid&&this.hide(),setTimeout((()=>{this.disposed||this.startSessionIfTriggered()}),0)}get session(){return this.completionSession.value}get ghostText(){var e;return null===(e=this.session)||void 0===e?void 0:e.ghostText}get minReservedLineCount(){return this.session?this.session.minReservedLineCount:0}setExpanded(e){var t;null===(t=this.session)||void 0===t||t.setExpanded(e)}setActive(e){var t;this.active=e,e&&(null===(t=this.session)||void 0===t||t.scheduleAutomaticUpdate())}startSessionIfTriggered(){this.editor.getOption(57).enabled&&(this.session&&this.session.isValid||this.trigger(u.bw.Automatic))}trigger(e){this.completionSession.value?e===u.bw.Explicit&&this.completionSession.value.ensureUpdateWithExplicitContext():(this.completionSession.value=new Z(this.editor,this.editor.getPosition(),(()=>this.active),this.commandService,this.cache,e,this.languageConfigurationService,this.languageFeaturesService.inlineCompletionsProvider,this.debounceValue),this.completionSession.value.takeOwnership(this.completionSession.value.onDidChange((()=>{this.onDidChangeEmitter.fire()}))))}hide(){this.completionSession.clear(),this.onDidChangeEmitter.fire()}commitCurrentSuggestion(){var e;null===(e=this.session)||void 0===e||e.commitCurrentCompletion()}showNext(){var e;null===(e=this.session)||void 0===e||e.showNextInlineCompletion()}showPrevious(){var e;null===(e=this.session)||void 0===e||e.showPreviousInlineCompletion()}hasMultipleInlineCompletions(){var e;return G(this,void 0,void 0,(function*(){const t=yield null===(e=this.session)||void 0===e?void 0:e.hasMultipleInlineCompletions();return void 0!==t&&t}))}};Q=$([q(2,k.Hy),q(3,M.c_),q(4,V.p),q(5,W.A),q(6,K.Ui)],Q);class Z extends L{constructor(e,t,i,n,o,s,r,a,c){let d;super(e),this.triggerPosition=t,this.shouldUpdate=i,this.commandService=n,this.cache=o,this.initialTriggerKind=s,this.languageConfigurationService=r,this.registry=a,this.debounce=c,this.minReservedLineCount=0,this.updateOperation=this._register(new l.XK),this.updateSoon=this._register(new g.pY((()=>{const e=this.initialTriggerKind;return this.initialTriggerKind=u.bw.Automatic,this.update(e)}),50)),this.filteredCompletions=[],this.currentlySelectedCompletionId=void 0,this._register(this.onDidChange((()=>{var e;const t=this.currentCompletion;if(t&&t.sourceInlineCompletion!==d){d=t.sourceInlineCompletion;const i=t.sourceProvider;null===(e=i.handleItemDidShow)||void 0===e||e.call(i,t.sourceInlineCompletions,d)}}))),this._register((0,l.OF)((()=>{this.cache.clear()}))),this._register(this.editor.onDidChangeCursorPosition((e=>{var t;3!==e.reason&&(null===(t=this.cache.value)||void 0===t||t.updateRanges(),this.cache.value&&(this.updateFilteredInlineCompletions(),this.onDidChangeEmitter.fire()))}))),this._register(this.editor.onDidChangeModelContent((e=>{var t;null===(t=this.cache.value)||void 0===t||t.updateRanges(),this.updateFilteredInlineCompletions(),this.scheduleAutomaticUpdate()}))),this._register(this.registry.onDidChange((()=>{this.updateSoon.schedule(this.debounce.get(this.editor.getModel()))}))),this.scheduleAutomaticUpdate()}updateFilteredInlineCompletions(){if(!this.cache.value)return void(this.filteredCompletions=[]);const e=this.editor.getModel(),t=e.validatePosition(this.editor.getPosition());this.filteredCompletions=this.cache.value.completions.filter((i=>{const n=e.getValueInRange(i.synchronizedRange).toLowerCase(),o=i.inlineCompletion.filterText.toLowerCase(),s=e.getLineIndentColumn(i.synchronizedRange.startLineNumber),r=Math.max(0,t.column-i.synchronizedRange.startColumn);let a=o.substring(0,r),l=o.substring(r),c=n.substring(0,r),d=n.substring(r);return i.synchronizedRange.startColumn<=s&&(c=c.trimStart(),0===c.length&&(d=d.trimStart()),a=a.trimStart(),0===a.length&&(l=l.trimStart())),a.startsWith(c)&&(0,U.Sy)(d,l)}))}fixAndGetIndexOfCurrentSelection(){if(!this.currentlySelectedCompletionId||!this.cache.value)return 0;if(0===this.cache.value.completions.length)return 0;const e=this.filteredCompletions.findIndex((e=>e.semanticId===this.currentlySelectedCompletionId));return-1===e?(this.currentlySelectedCompletionId=void 0,0):e}get currentCachedCompletion(){if(this.cache.value)return this.filteredCompletions[this.fixAndGetIndexOfCurrentSelection()]}showNextInlineCompletion(){return G(this,void 0,void 0,(function*(){yield this.ensureUpdateWithExplicitContext();const e=this.filteredCompletions||[];if(e.length>0){const t=(this.fixAndGetIndexOfCurrentSelection()+1)%e.length;this.currentlySelectedCompletionId=e[t].semanticId}else this.currentlySelectedCompletionId=void 0;this.onDidChangeEmitter.fire()}))}showPreviousInlineCompletion(){return G(this,void 0,void 0,(function*(){yield this.ensureUpdateWithExplicitContext();const e=this.filteredCompletions||[];if(e.length>0){const t=(this.fixAndGetIndexOfCurrentSelection()+e.length-1)%e.length;this.currentlySelectedCompletionId=e[t].semanticId}else this.currentlySelectedCompletionId=void 0;this.onDidChangeEmitter.fire()}))}ensureUpdateWithExplicitContext(){var e;return G(this,void 0,void 0,(function*(){this.updateOperation.value?this.updateOperation.value.triggerKind===u.bw.Explicit?yield this.updateOperation.value.promise:yield this.update(u.bw.Explicit):(null===(e=this.cache.value)||void 0===e?void 0:e.triggerKind)!==u.bw.Explicit&&(yield this.update(u.bw.Explicit))}))}hasMultipleInlineCompletions(){var e;return G(this,void 0,void 0,(function*(){return yield this.ensureUpdateWithExplicitContext(),((null===(e=this.cache.value)||void 0===e?void 0:e.completions.length)||0)>1}))}get ghostText(){const e=this.currentCompletion;if(!e)return;const t=this.editor.getPosition();if(e.range.getEndPosition().isBefore(t))return;const i=this.editor.getOptions().get(57).mode,n=N(e,this.editor.getModel(),i,t);if(n){if(n.isEmpty())return;return n}return new S(e.range.startLineNumber,e.range.startColumn,e.range.endColumn-e.range.startColumn,e.insertText.split("\n"),0)}get currentCompletion(){const e=this.currentCachedCompletion;if(e)return e.toLiveInlineCompletion()}get isValid(){return this.editor.getPosition().lineNumber===this.triggerPosition.lineNumber}scheduleAutomaticUpdate(){this.updateOperation.clear(),this.updateSoon.schedule(this.debounce.get(this.editor.getModel()))}update(e){return G(this,void 0,void 0,(function*(){if(!this.shouldUpdate())return;const t=this.editor.getPosition(),i=new Date,n=(0,g.PG)((n=>G(this,void 0,void 0,(function*(){let o;try{o=yield ee(this.registry,t,this.editor.getModel(),{triggerKind:e,selectedSuggestionInfo:void 0},n,this.languageConfigurationService);const s=new Date;this.debounce.update(this.editor.getModel(),s.getTime()-i.getTime())}catch(s){return void(0,m.dL)(s)}n.isCancellationRequested||(this.cache.setValue(this.editor,o,e),this.updateFilteredInlineCompletions(),this.onDidChangeEmitter.fire())})))),o=new Y(n,e);this.updateOperation.value=o,yield n,this.updateOperation.value===o&&this.updateOperation.clear()}))}takeOwnership(e){this._register(e)}commitCurrentCompletion(){if(!this.ghostText)return;const e=this.currentCompletion;e&&this.commit(e)}commit(e){var t;const i=this.cache.clearAndLeak();e.snippetInfo?(this.editor.executeEdits("inlineSuggestion.accept",[_.h.replaceMove(e.range,""),...e.additionalTextEdits]),this.editor.setPosition(e.snippetInfo.range.getStartPosition()),null===(t=z.f.get(this.editor))||void 0===t||t.insert(e.snippetInfo.snippet)):this.editor.executeEdits("inlineSuggestion.accept",[_.h.replaceMove(e.range,e.insertText),...e.additionalTextEdits]),e.command?this.commandService.executeCommand(e.command.id,...e.command.arguments||[]).finally((()=>{null==i||i.dispose()})).then(void 0,m.Cp):null==i||i.dispose(),this.onDidChangeEmitter.fire()}get commands(){var e;return[...new Set((null===(e=this.cache.value)||void 0===e?void 0:e.completions.map((e=>e.inlineCompletion.sourceInlineCompletions)))||[])].flatMap((e=>e.commands||[]))}}class Y{constructor(e,t){this.promise=e,this.triggerKind=t}dispose(){this.promise.cancel()}}class J extends l.JT{constructor(e,t,i,n){super(),this.editor=t,this.onChange=i,this.triggerKind=n,this.isDisposing=!1;const o=t.changeDecorations((t=>t.deltaDecorations([],e.items.map((e=>({range:e.range,options:{description:"inline-completion-tracking-range"}}))))));this._register((0,l.OF)((()=>{this.isDisposing=!0,t.removeDecorations(o)}))),this.completions=e.items.map(((e,t)=>new X(e,o[t]))),this._register(t.onDidChangeModelContent((()=>{this.updateRanges()}))),this._register(e)}updateRanges(){if(this.isDisposing)return;let e=!1;const t=this.editor.getModel();for(const i of this.completions){const n=t.getDecorationRange(i.decorationId);n?i.synchronizedRange.equalsRange(n)||(e=!0,i.synchronizedRange=n):(0,m.dL)(new Error("Decoration has no range"))}e&&this.onChange()}}class X{constructor(e,t){this.inlineCompletion=e,this.decorationId=t,this.semanticId=JSON.stringify({text:this.inlineCompletion.insertText,abbreviation:this.inlineCompletion.filterText,startLine:this.inlineCompletion.range.startLineNumber,startColumn:this.inlineCompletion.range.startColumn,command:this.inlineCompletion.command}),this.synchronizedRange=e.range}toLiveInlineCompletion(){return{insertText:this.inlineCompletion.insertText,range:this.synchronizedRange,command:this.inlineCompletion.command,sourceProvider:this.inlineCompletion.sourceProvider,sourceInlineCompletions:this.inlineCompletion.sourceInlineCompletions,sourceInlineCompletion:this.inlineCompletion.sourceInlineCompletion,snippetInfo:this.inlineCompletion.snippetInfo,filterText:this.inlineCompletion.filterText,additionalTextEdits:this.inlineCompletion.additionalTextEdits}}}function ee(e,t,i,n,o=p.T.None,s){return G(this,void 0,void 0,(function*(){const r=function(e,t){const i=t.getWordAtPosition(e),n=t.getLineMaxColumn(e.lineNumber);return i?new v.e(e.lineNumber,i.startColumn,e.lineNumber,n):v.e.fromPositions(e,e.with(void 0,n))}(t,i),a=e.all(i),l=yield Promise.all(a.map((e=>G(this,void 0,void 0,(function*(){const s=yield Promise.resolve(e.provideInlineCompletions(i,t,n,o)).catch(m.Cp);return{completions:s,provider:e,dispose:()=>{s&&e.freeInlineCompletions(s)}}}))))),c=new Map;for(const e of l){const t=e.completions;if(t)for(const n of t.items){let o,a,l=n.range?v.e.lift(n.range):r;if(l.startLineNumber!==l.endLineNumber)continue;if("string"==typeof n.insertText){if(o=n.insertText,s&&n.completeBracketPairs){o=te(o,l.getStartPosition(),i,s);const e=o.length-n.insertText.length;0!==e&&(l=new v.e(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn+e))}a=void 0}else if("snippet"in n.insertText){o=(new H.Yj).parse(n.insertText.snippet).toString(),a={snippet:n.insertText.snippet,range:l}}else(0,j.vE)(n.insertText);const d={insertText:o,snippetInfo:a,range:l,command:n.command,sourceProvider:e.provider,sourceInlineCompletions:t,sourceInlineCompletion:n,filterText:n.filterText||o,additionalTextEdits:n.additionalTextEdits||C};c.set(JSON.stringify({insertText:o,range:n.range}),d)}}return{items:[...c.values()],dispose:()=>{for(const e of l)e.dispose()}}}))}function te(e,t,i,n){const o=i.getLineContent(t.lineNumber).substring(0,t.column-1)+e,s=i.tokenization.tokenizeLineWithEdit(t,o.length-(t.column-1),e),r=null==s?void 0:s.sliceAndInflate(t.column-1,o.length,0);if(!r)return e;const a=function(e,t){const i=new P.FE,n=new A.Z(i,(e=>t.getLanguageConfiguration(e))),o=new F.xH(new B([e]),n),s=(0,O.w)(o,[],void 0,!0);let r="";const a=e.getLineContent();return function e(t,i){if(2===t.kind)if(e(t.openingBracket,i),i=(0,R.Ii)(i,t.openingBracket.length),t.child&&(e(t.child,i),i=(0,R.Ii)(i,t.child.length)),t.closingBracket)e(t.closingBracket,i),i=(0,R.Ii)(i,t.closingBracket.length);else{const e=n.getSingleLanguageBracketTokens(t.openingBracket.languageId).findClosingTokenText(t.openingBracket.bracketIds);r+=e}else if(3===t.kind);else if(0===t.kind||1===t.kind)r+=a.substring((0,R.F_)(i),(0,R.F_)((0,R.Ii)(i,t.length)));else if(4===t.kind)for(const n of t.children)e(n,i),i=(0,R.Ii)(i,n.length)}(s,R.xl),r}(r,n);return a}var ie=i(9488),ne=i(7307),oe=i(76092);class se extends l.JT{constructor(e,t){super(),this.editor=e,this.suggestControllerPreselector=t,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this.onDidChangeEmitter=new a.Q5,this.onDidChange=this.onDidChangeEmitter.event,this.setInactiveDelayed=this._register(new g.pY((()=>{this.isSuggestWidgetVisible||this._isActive&&(this._isActive=!1,this.onDidChangeEmitter.fire())}),100)),this._register(e.onKeyDown((e=>{e.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))}))),this._register(e.onKeyUp((e=>{e.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))})));const i=oe.n.get(this.editor);if(i){this._register(i.registerSelector({priority:100,select:(e,t,n)=>{const o=this.editor.getModel(),s=D(o,this.suggestControllerPreselector());if(!s)return-1;const r=h.L.lift(t),a=n.map(((e,t)=>{const n=re(i,r,e,this.isShiftKeyPressed),a=D(o,null==n?void 0:n.normalizedInlineCompletion);if(!a)return;var l,c;return{index:t,valid:(l=s.range,(c=a.range).startLineNumber===l.startLineNumber&&c.startColumn===l.startColumn&&(c.endLineNumber<l.endLineNumber||c.endLineNumber===l.endLineNumber&&c.endColumn<=l.endColumn)&&s.insertText.startsWith(a.insertText)),prefixLength:a.insertText.length,suggestItem:e}})).filter((e=>e&&e.valid)),l=(0,ie.Dc)(a,(0,ie.tT)((e=>e.prefixLength),ie.fv));return l?l.index:-1}}));let e=!1;const t=()=>{e||(e=!0,this._register(i.widget.value.onDidShow((()=>{this.isSuggestWidgetVisible=!0,this.update(!0)}))),this._register(i.widget.value.onDidHide((()=>{this.isSuggestWidgetVisible=!1,this.setInactiveDelayed.schedule(),this.update(this._isActive)}))),this._register(i.widget.value.onDidFocus((()=>{this.isSuggestWidgetVisible=!0,this.update(!0)}))))};this._register(a.ju.once(i.model.onDidTrigger)((e=>{t()})))}this.update(this._isActive)}get state(){if(this._isActive)return{selectedItem:this._currentSuggestItemInfo}}update(e){const t=this.getSuggestItemInfo();let i=!1;(function(e,t){if(e===t)return!0;if(!e||!t)return!1;return e.completionItemKind===t.completionItemKind&&e.isSnippetText===t.isSnippetText&&function(e,t){return e===t||!(!e||!t)&&e.range.equalsRange(t.range)&&e.insertText===t.insertText&&e.command===t.command}(e.normalizedInlineCompletion,t.normalizedInlineCompletion)})(this._currentSuggestItemInfo,t)||(this._currentSuggestItemInfo=t,i=!0),this._isActive!==e&&(this._isActive=e,i=!0),i&&this.onDidChangeEmitter.fire()}getSuggestItemInfo(){const e=oe.n.get(this.editor);if(!e)return;if(!this.isSuggestWidgetVisible)return;const t=e.widget.value.getFocusedItem();return t?re(e,this.editor.getPosition(),t.item,this.isShiftKeyPressed):void 0}stopForceRenderingAbove(){const e=oe.n.get(this.editor);e&&e.stopForceRenderingAbove()}forceRenderingAbove(){const e=oe.n.get(this.editor);e&&e.forceRenderingAbove()}}function re(e,t,i,n){if(Array.isArray(i.completion.additionalTextEdits)&&i.completion.additionalTextEdits.length>0)return{completionItemKind:i.completion.kind,isSnippetText:!1,normalizedInlineCompletion:{range:v.e.fromPositions(t,t),insertText:"",filterText:"",snippetInfo:void 0,additionalTextEdits:[]}};let{insertText:o}=i.completion,s=!1;if(4&i.completion.insertTextRules){const i=(new H.Yj).parse(o),n=e.editor.getModel();if(i.children.length>100)return;ne.l.adjustWhitespace(n,t,i,!0,!0),o=i.toString(),s=!0}const r=e.getOverwriteInfo(i,n);return{isSnippetText:s,completionItemKind:i.completion.kind,normalizedInlineCompletion:{insertText:o,filterText:o,range:v.e.fromPositions(t.delta(0,-r.overwriteBefore),t.delta(0,Math.max(r.overwriteAfter,0))),snippetInfo:void 0,additionalTextEdits:[]}}}var ae=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},le=function(e,t){return function(i,n){t(i,n,e)}},ce=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let de=class extends L{constructor(e,t,i){super(e),this.cache=t,this.languageFeaturesService=i,this.suggestionInlineCompletionSource=this._register(new se(this.editor,(()=>{var e,t;return null===(t=null===(e=this.cache.value)||void 0===e?void 0:e.completions[0])||void 0===t?void 0:t.toLiveInlineCompletion()}))),this.updateOperation=this._register(new l.XK),this.updateCacheSoon=this._register(new g.pY((()=>this.updateCache()),50)),this.minReservedLineCount=0,this._register(this.suggestionInlineCompletionSource.onDidChange((()=>{if(!this.editor.hasModel())return;this.updateCacheSoon.schedule();this.suggestionInlineCompletionSource.state||(this.minReservedLineCount=0);const e=this.ghostText;e&&(this.minReservedLineCount=Math.max(this.minReservedLineCount,e.parts.map((e=>e.lines.length-1)).reduce(((e,t)=>e+t),0))),this.minReservedLineCount>=1?this.suggestionInlineCompletionSource.forceRenderingAbove():this.suggestionInlineCompletionSource.stopForceRenderingAbove(),this.onDidChangeEmitter.fire()}))),this._register(this.cache.onDidChange((()=>{this.onDidChangeEmitter.fire()}))),this._register(this.editor.onDidChangeCursorPosition((e=>{this.minReservedLineCount=0,this.updateCacheSoon.schedule(),this.onDidChangeEmitter.fire()}))),this._register((0,l.OF)((()=>this.suggestionInlineCompletionSource.stopForceRenderingAbove())))}get isActive(){return void 0!==this.suggestionInlineCompletionSource.state}isSuggestionPreviewEnabled(){return this.editor.getOption(108).preview}updateCache(){return ce(this,void 0,void 0,(function*(){const e=this.suggestionInlineCompletionSource.state;if(!e||!e.selectedItem)return;const t={text:e.selectedItem.normalizedInlineCompletion.insertText,range:e.selectedItem.normalizedInlineCompletion.range,isSnippetText:e.selectedItem.isSnippetText,completionKind:e.selectedItem.completionItemKind},i=this.editor.getPosition();if(e.selectedItem.isSnippetText||27===e.selectedItem.completionItemKind||20===e.selectedItem.completionItemKind||23===e.selectedItem.completionItemKind)return void this.cache.clear();const n=(0,g.PG)((e=>ce(this,void 0,void 0,(function*(){let n;try{n=yield ee(this.languageFeaturesService.inlineCompletionsProvider,i,this.editor.getModel(),{triggerKind:u.bw.Automatic,selectedSuggestionInfo:t},e)}catch(o){return void(0,m.dL)(o)}e.isCancellationRequested?n.dispose():(this.cache.setValue(this.editor,n,u.bw.Automatic),this.onDidChangeEmitter.fire())})))),o=new Y(n,u.bw.Automatic);this.updateOperation.value=o,yield n,this.updateOperation.value===o&&this.updateOperation.clear()}))}get ghostText(){var e,t,i;const n=this.isSuggestionPreviewEnabled(),o=this.editor.getModel(),s=D(o,null===(t=null===(e=this.cache.value)||void 0===e?void 0:e.completions[0])||void 0===t?void 0:t.toLiveInlineCompletion()),r=this.suggestionInlineCompletionSource.state,a=D(o,null===(i=null==r?void 0:r.selectedItem)||void 0===i?void 0:i.normalizedInlineCompletion),l=s&&a&&s.insertText.startsWith(a.insertText)&&s.range.equalsRange(a.range);if(!n&&!l)return;const c=l?s:a||s,d=l?c.insertText.length-a.insertText.length:0;return this.toGhostText(c,d)}toGhostText(e,t){const i=this.editor.getOptions().get(108).previewMode;return e?N(e,this.editor.getModel(),i,this.editor.getPosition(),t)||new w(e.range.endLineNumber,[],this.minReservedLineCount):void 0}};de=ae([le(2,V.p)],de);var he=i(72065),ue=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ge=function(e,t){return function(i,n){t(i,n,e)}},pe=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class me extends l.JT{constructor(){super(...arguments),this.onDidChangeEmitter=new a.Q5,this.onDidChange=this.onDidChangeEmitter.event,this.hasCachedGhostText=!1,this.currentModelRef=this._register(new l.XK)}get targetModel(){var e;return null===(e=this.currentModelRef.value)||void 0===e?void 0:e.object}setTargetModel(e){var t,i,n;(null===(t=this.currentModelRef.value)||void 0===t?void 0:t.object)!==e&&(this.currentModelRef.clear(),this.currentModelRef.value=e?(i=e,n=e.onDidChange((()=>{this.hasCachedGhostText=!1,this.onDidChangeEmitter.fire()})),{object:i,dispose:()=>null==n?void 0:n.dispose()}):void 0,this.hasCachedGhostText=!1,this.onDidChangeEmitter.fire())}get ghostText(){var e,t;return this.hasCachedGhostText||(this.cachedGhostText=null===(t=null===(e=this.currentModelRef.value)||void 0===e?void 0:e.object)||void 0===t?void 0:t.ghostText,this.hasCachedGhostText=!0),this.cachedGhostText}setExpanded(e){var t;null===(t=this.targetModel)||void 0===t||t.setExpanded(e)}get minReservedLineCount(){return this.targetModel?this.targetModel.minReservedLineCount:0}}let fe=class extends me{constructor(e,t){super(),this.editor=e,this.instantiationService=t,this.sharedCache=this._register(new _e),this.suggestWidgetAdapterModel=this._register(this.instantiationService.createInstance(de,this.editor,this.sharedCache)),this.inlineCompletionsModel=this._register(this.instantiationService.createInstance(Q,this.editor,this.sharedCache)),this._register(this.suggestWidgetAdapterModel.onDidChange((()=>{this.updateModel()}))),this.updateModel()}get activeInlineCompletionsModel(){if(this.targetModel===this.inlineCompletionsModel)return this.inlineCompletionsModel}updateModel(){this.setTargetModel(this.suggestWidgetAdapterModel.isActive?this.suggestWidgetAdapterModel:this.inlineCompletionsModel),this.inlineCompletionsModel.setActive(this.targetModel===this.inlineCompletionsModel)}shouldShowHoverAt(e){var t;const i=null===(t=this.activeInlineCompletionsModel)||void 0===t?void 0:t.ghostText;return!!i&&i.parts.some((t=>e.containsPosition(new h.L(i.lineNumber,t.column))))}triggerInlineCompletion(){var e;null===(e=this.activeInlineCompletionsModel)||void 0===e||e.trigger(u.bw.Explicit)}commitInlineCompletion(){var e;null===(e=this.activeInlineCompletionsModel)||void 0===e||e.commitCurrentSuggestion()}hideInlineCompletion(){var e;null===(e=this.activeInlineCompletionsModel)||void 0===e||e.hide()}showNextInlineCompletion(){var e;null===(e=this.activeInlineCompletionsModel)||void 0===e||e.showNext()}showPreviousInlineCompletion(){var e;null===(e=this.activeInlineCompletionsModel)||void 0===e||e.showPrevious()}hasMultipleInlineCompletions(){var e;return pe(this,void 0,void 0,(function*(){const t=yield null===(e=this.activeInlineCompletionsModel)||void 0===e?void 0:e.hasMultipleInlineCompletions();return void 0!==t&&t}))}};fe=ue([ge(1,he.TG)],fe);class _e extends l.JT{constructor(){super(...arguments),this.onDidChangeEmitter=new a.Q5,this.onDidChange=this.onDidChangeEmitter.event,this.cache=this._register(new l.XK)}get value(){return this.cache.value}setValue(e,t,i){this.cache.value=new J(t,e,(()=>this.onDidChangeEmitter.fire()),i)}clearAndLeak(){return this.cache.clearAndLeak()}clear(){this.cache.clear()}}var ve,be=i(65321),Ce=i(52136),we=i(64141),ye=i(77378),Se=i(50072),Le=i(84973),ke=i(72042),xe=i(8625),De=i(92550),Ne=i(72202),Ee=i(97781),Ie=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Te=function(e,t){return function(i,n){t(i,n,e)}};const Me=null===(ve=window.trustedTypes)||void 0===ve?void 0:ve.createPolicy("editorGhostText",{createHTML:e=>e});let Ae=class extends l.JT{constructor(e,t,i,n){super(),this.editor=e,this.model=t,this.instantiationService=i,this.languageService=n,this.disposed=!1,this.partsWidget=this._register(this.instantiationService.createInstance(Oe,this.editor)),this.additionalLinesWidget=this._register(new Pe(this.editor,this.languageService.languageIdCodec)),this.viewMoreContentWidget=void 0,this.replacementDecoration=this._register(new Re(this.editor)),this._register(this.editor.onDidChangeConfiguration((e=>{(e.hasChanged(29)||e.hasChanged(107)||e.hasChanged(90)||e.hasChanged(85)||e.hasChanged(47)||e.hasChanged(46)||e.hasChanged(61))&&this.update()}))),this._register((0,l.OF)((()=>{var e;this.disposed=!0,this.update(),null===(e=this.viewMoreContentWidget)||void 0===e||e.dispose(),this.viewMoreContentWidget=void 0}))),this._register(t.onDidChange((()=>{this.update()}))),this.update()}shouldShowHoverAtViewZone(e){return this.additionalLinesWidget.viewZoneId===e}update(){var e;const t=this.model.ghostText;if(!this.editor.hasModel()||!t||this.disposed)return this.partsWidget.clear(),this.additionalLinesWidget.clear(),void this.replacementDecoration.clear();const i=new Array,n=new Array;function o(e,t){if(n.length>0){const i=n[n.length-1];t&&i.decorations.push(new De.Kp(i.content.length+1,i.content.length+1+e[0].length,t,0)),i.content+=e[0],e=e.slice(1)}for(const i of e)n.push({content:i,decorations:t?[new De.Kp(1,i.length+1,t,0)]:[]})}t instanceof S?this.replacementDecoration.setDecorations([{range:new v.e(t.lineNumber,t.columnStart,t.lineNumber,t.columnStart+t.length),options:{inlineClassName:"inline-completion-text-to-replace",description:"GhostTextReplacement"}}]):this.replacementDecoration.setDecorations([]);const s=this.editor.getModel().getLineContent(t.lineNumber);let r,a=0;for(const l of t.parts){let e=l.lines;void 0===r?(i.push({column:l.column,text:e[0],preview:l.preview}),e=e.slice(1)):o([s.substring(a,l.column-1)],void 0),e.length>0&&(o(e,"ghost-text"),void 0===r&&l.column<=s.length&&(r=l.column)),a=l.column-1}void 0!==r&&o([s.substring(a)],void 0),this.partsWidget.setParts(t.lineNumber,i,void 0!==r?{column:r,length:s.length+1-r}:void 0),this.additionalLinesWidget.updateLines(t.lineNumber,n,t.additionalReservedLineCount),null===(e=this.viewMoreContentWidget)||void 0===e||e.dispose(),this.viewMoreContentWidget=void 0}renderViewMoreLines(e,t,i){const n=this.editor.getOption(46),o=document.createElement("div");o.className="suggest-preview-additional-widget",(0,Ce.N)(o,n);const s=document.createElement("span");s.className="content-spacer",s.append(t),o.append(s);const r=document.createElement("span");r.className="content-newline suggest-preview-text",r.append("\u23ce "),o.append(r);const a=new l.SL,c=document.createElement("div");return c.className="button suggest-preview-text",c.append(`+${i} lines\u2026`),a.add(be.mu(c,"mousedown",(e=>{var t;null===(t=this.model)||void 0===t||t.setExpanded(!0),e.preventDefault(),this.editor.focus()}))),o.append(c),new Fe(this.editor,e,o,a)}};Ae=Ie([Te(2,he.TG),Te(3,ke.O)],Ae);class Re{constructor(e){this.editor=e,this.decorationIds=[]}setDecorations(e){this.editor.changeDecorations((t=>{this.decorationIds=t.deltaDecorations(this.decorationIds,e)}))}clear(){this.setDecorations([])}dispose(){this.clear()}}class Oe{constructor(e){this.editor=e,this.decorationIds=[]}dispose(){this.clear()}clear(){this.editor.changeDecorations((e=>{this.decorationIds=e.deltaDecorations(this.decorationIds,[])}))}setParts(e,t,i){if(!this.editor.getModel())return;const n=new Array;i&&n.push({range:v.e.fromPositions(new h.L(e,i.column),new h.L(e,i.column+i.length)),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}}),this.editor.changeDecorations((i=>{this.decorationIds=i.deltaDecorations(this.decorationIds,t.map((t=>({range:v.e.fromPositions(new h.L(e,t.column)),options:{description:"ghost-text",after:{content:t.text,inlineClassName:t.preview?"ghost-text-decoration-preview":"ghost-text-decoration",cursorStops:Le.RM.Left},showIfCollapsed:!0}}))).concat(n))}))}}class Pe{constructor(e,t){this.editor=e,this.languageIdCodec=t,this._viewZoneId=void 0}get viewZoneId(){return this._viewZoneId}dispose(){this.clear()}clear(){this.editor.changeViewZones((e=>{this._viewZoneId&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0)}))}updateLines(e,t,i){const n=this.editor.getModel();if(!n)return;const{tabSize:o}=n.getOptions();this.editor.changeViewZones((n=>{this._viewZoneId&&(n.removeZone(this._viewZoneId),this._viewZoneId=void 0);const s=Math.max(t.length,i);if(s>0){const i=document.createElement("div");!function(e,t,i,n,o){const s=n.get(29),r=n.get(107),a="none",l=n.get(85),d=n.get(47),h=n.get(46),u=n.get(61),g=(0,Se.l$)(1e4);g.appendASCIIString('<div class="suggest-preview-text">');for(let f=0,_=i.length;f<_;f++){const e=i[f],n=e.content;g.appendASCIIString('<div class="view-line'),g.appendASCIIString('" style="top:'),g.appendASCIIString(String(f*u)),g.appendASCIIString('px;width:1000000px;">');const p=c.$i(n),m=c.Ut(n),_=ye.A.createEmpty(n,o);(0,Ne.d1)(new Ne.IJ(h.isMonospace&&!s,h.canUseHalfwidthRightwardsArrow,n,!1,p,m,0,_,e.decorations,t,0,h.spaceWidth,h.middotWidth,h.wsmiddotWidth,r,a,l,d!==we.n0.OFF,null),g),g.appendASCIIString("</div>")}g.appendASCIIString("</div>"),(0,Ce.N)(e,h);const p=g.build(),m=Me?Me.createHTML(p):p;e.innerHTML=m}(i,o,t,this.editor.getOptions(),this.languageIdCodec),this._viewZoneId=n.addZone({afterLineNumber:e,heightInLines:s,domNode:i,afterColumnAffinity:1})}}))}}class Fe extends l.JT{constructor(e,t,i,n){super(),this.editor=e,this.position=t,this.domNode=i,this.allowEditorOverflow=!1,this.suppressMouseDown=!1,this._register(n),this._register((0,l.OF)((()=>{this.editor.removeContentWidget(this)}))),this.editor.addContentWidget(this)}getId(){return"editor.widget.viewMoreLinesWidget"}getDomNode(){return this.domNode}getPosition(){return{position:this.position,preference:[0]}}}(0,Ee.Ic)(((e,t)=>{const i=e.getColor(xe.N5);i&&(t.addRule(`.monaco-editor .ghost-text-decoration { color: ${i.toString()} !important; }`),t.addRule(`.monaco-editor .ghost-text-decoration-preview { color: ${i.toString()} !important; }`),t.addRule(`.monaco-editor .suggest-preview-text .ghost-text { color: ${i.toString()} !important; }`));const n=e.getColor(xe.IO);n&&(t.addRule(`.monaco-editor .ghost-text-decoration { background-color: ${n.toString()}; }`),t.addRule(`.monaco-editor .ghost-text-decoration-preview { background-color: ${n.toString()}; }`),t.addRule(`.monaco-editor .suggest-preview-text .ghost-text { background-color: ${n.toString()}; }`));const o=e.getColor(xe.x3);o&&(t.addRule(`.monaco-editor .suggest-preview-text .ghost-text { border: 1px solid ${o}; }`),t.addRule(`.monaco-editor .ghost-text-decoration { border: 1px solid ${o}; }`),t.addRule(`.monaco-editor .ghost-text-decoration-preview { border: 1px solid ${o}; }`))}));var Be=i(63580),Ve=i(38819),We=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},He=function(e,t){return function(i,n){t(i,n,e)}},ze=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let je=class e extends l.JT{constructor(e,t){super(),this.editor=e,this.instantiationService=t,this.triggeredExplicitly=!1,this.activeController=this._register(new l.XK),this.activeModelDidChangeEmitter=this._register(new a.Q5),this._register(this.editor.onDidChangeModel((()=>{this.updateModelController()}))),this._register(this.editor.onDidChangeConfiguration((e=>{e.hasChanged(108)&&this.updateModelController(),e.hasChanged(57)&&this.updateModelController()}))),this.updateModelController()}static get(t){return t.getContribution(e.ID)}get activeModel(){var e;return null===(e=this.activeController.value)||void 0===e?void 0:e.model}updateModelController(){const e=this.editor.getOption(108),t=this.editor.getOption(57);this.activeController.value=void 0,this.activeController.value=this.editor.hasModel()&&(e.preview||t.enabled||this.triggeredExplicitly)?this.instantiationService.createInstance(Ke,this.editor):void 0,this.activeModelDidChangeEmitter.fire()}shouldShowHoverAt(e){var t;return(null===(t=this.activeModel)||void 0===t?void 0:t.shouldShowHoverAt(e))||!1}shouldShowHoverAtViewZone(e){var t,i;return(null===(i=null===(t=this.activeController.value)||void 0===t?void 0:t.widget)||void 0===i?void 0:i.shouldShowHoverAtViewZone(e))||!1}trigger(){var e;this.triggeredExplicitly=!0,this.activeController.value||this.updateModelController(),null===(e=this.activeModel)||void 0===e||e.triggerInlineCompletion()}commit(){var e;null===(e=this.activeModel)||void 0===e||e.commitInlineCompletion()}hide(){var e;null===(e=this.activeModel)||void 0===e||e.hideInlineCompletion()}showNextInlineCompletion(){var e;null===(e=this.activeModel)||void 0===e||e.showNextInlineCompletion()}showPreviousInlineCompletion(){var e;null===(e=this.activeModel)||void 0===e||e.showPreviousInlineCompletion()}hasMultipleInlineCompletions(){var e;return ze(this,void 0,void 0,(function*(){const t=yield null===(e=this.activeModel)||void 0===e?void 0:e.hasMultipleInlineCompletions();return void 0!==t&&t}))}};je.inlineSuggestionVisible=new Ve.uy("inlineSuggestionVisible",!1,Be.NC("inlineSuggestionVisible","Whether an inline suggestion is visible")),je.inlineSuggestionHasIndentation=new Ve.uy("inlineSuggestionHasIndentation",!1,Be.NC("inlineSuggestionHasIndentation","Whether the inline suggestion starts with whitespace")),je.inlineSuggestionHasIndentationLessThanTabSize=new Ve.uy("inlineSuggestionHasIndentationLessThanTabSize",!0,Be.NC("inlineSuggestionHasIndentationLessThanTabSize","Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab")),je.ID="editor.contrib.ghostTextController",je=We([He(1,he.TG)],je);class Ue{constructor(e){this.contextKeyService=e,this.inlineCompletionVisible=je.inlineSuggestionVisible.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentation=je.inlineSuggestionHasIndentation.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentationLessThanTabSize=je.inlineSuggestionHasIndentationLessThanTabSize.bindTo(this.contextKeyService)}}let Ke=class extends l.JT{constructor(e,t,i){super(),this.editor=e,this.instantiationService=t,this.contextKeyService=i,this.contextKeys=new Ue(this.contextKeyService),this.model=this._register(this.instantiationService.createInstance(fe,this.editor)),this.widget=this._register(this.instantiationService.createInstance(Ae,this.editor,this.model)),this._register((0,l.OF)((()=>{this.contextKeys.inlineCompletionVisible.set(!1),this.contextKeys.inlineCompletionSuggestsIndentation.set(!1),this.contextKeys.inlineCompletionSuggestsIndentationLessThanTabSize.set(!0)}))),this._register(this.model.onDidChange((()=>{this.updateContextKeys()}))),this.updateContextKeys()}updateContextKeys(){var e;this.contextKeys.inlineCompletionVisible.set(void 0!==(null===(e=this.model.activeInlineCompletionsModel)||void 0===e?void 0:e.ghostText));let t=!1,i=!0;const n=this.model.inlineCompletionsModel.ghostText;if(this.model.activeInlineCompletionsModel&&n&&n.parts.length>0){const{column:e,lines:o}=n.parts[0],s=o[0];if(e<=this.editor.getModel().getLineIndentColumn(n.lineNumber)){let e=(0,c.LC)(s);-1===e&&(e=s.length-1),t=e>0;const n=this.editor.getModel().getOptions().tabSize;i=d.i.visibleColumnFromColumn(s,e+1,n)<n}}this.contextKeys.inlineCompletionSuggestsIndentation.set(t),this.contextKeys.inlineCompletionSuggestsIndentationLessThanTabSize.set(i)}};Ke=We([He(1,he.TG),He(2,Ve.i6)],Ke);class $e extends n.R6{constructor(){super({id:$e.ID,label:Be.NC("action.inlineSuggest.showNext","Show Next Inline Suggestion"),alias:"Show Next Inline Suggestion",precondition:Ve.Ao.and(o.u.writable,je.inlineSuggestionVisible),kbOpts:{weight:100,primary:601}})}run(e,t){return ze(this,void 0,void 0,(function*(){const e=je.get(t);e&&(e.showNextInlineCompletion(),t.focus())}))}}$e.ID="editor.action.inlineSuggest.showNext";class qe extends n.R6{constructor(){super({id:qe.ID,label:Be.NC("action.inlineSuggest.showPrevious","Show Previous Inline Suggestion"),alias:"Show Previous Inline Suggestion",precondition:Ve.Ao.and(o.u.writable,je.inlineSuggestionVisible),kbOpts:{weight:100,primary:599}})}run(e,t){return ze(this,void 0,void 0,(function*(){const e=je.get(t);e&&(e.showPreviousInlineCompletion(),t.focus())}))}}qe.ID="editor.action.inlineSuggest.showPrevious";class Ge extends n.R6{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:Be.NC("action.inlineSuggest.trigger","Trigger Inline Suggestion"),alias:"Trigger Inline Suggestion",precondition:o.u.writable})}run(e,t){return ze(this,void 0,void 0,(function*(){const e=je.get(t);e&&e.trigger()}))}}var Qe=i(59365),Ze=i(51318),Ye=i(31106),Je=i(84144),Xe=i(50988),et=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},tt=function(e,t){return function(i,n){t(i,n,e)}};class it{constructor(e,t,i){this.owner=e,this.range=t,this.controller=i}isValidForHoverAnchor(e){return 1===e.type&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}hasMultipleSuggestions(){return this.controller.hasMultipleInlineCompletions()}get commands(){var e,t,i;return(null===(i=null===(t=null===(e=this.controller.activeModel)||void 0===e?void 0:e.activeInlineCompletionsModel)||void 0===t?void 0:t.completionSession.value)||void 0===i?void 0:i.commands)||[]}}let nt=class{constructor(e,t,i,n,o,s,r){this._editor=e,this._commandService=t,this._menuService=i,this._contextKeyService=n,this._languageService=o,this._openerService=s,this.accessibilityService=r,this.hoverOrdinal=3}suggestHoverAnchor(e){const t=je.get(this._editor);if(!t)return null;const i=e.target;if(8===i.type){const e=i.detail;if(t.shouldShowHoverAtViewZone(e.viewZoneId))return new s.YM(1e3,this,v.e.fromPositions(e.positionBefore||e.position,e.positionBefore||e.position))}if(7===i.type&&t.shouldShowHoverAt(i.range))return new s.YM(1e3,this,i.range);if(6===i.type){if(i.detail.mightBeForeignElement&&t.shouldShowHoverAt(i.range))return new s.YM(1e3,this,i.range)}return null}computeSync(e,t){const i=je.get(this._editor);return i&&i.shouldShowHoverAt(e.range)?[new it(this,e.range,i)]:[]}renderHoverParts(e,t){const i=new l.SL,n=t[0];this.accessibilityService.isScreenReaderOptimized()&&this.renderScreenReaderText(e,n,i);const o=i.add(this._menuService.createMenu(Je.eH.InlineCompletionsActions,this._contextKeyService)),s=e.statusBar.addAction({label:Be.NC("showNextInlineSuggestion","Next"),commandId:$e.ID,run:()=>this._commandService.executeCommand($e.ID)}),a=e.statusBar.addAction({label:Be.NC("showPreviousInlineSuggestion","Previous"),commandId:qe.ID,run:()=>this._commandService.executeCommand(qe.ID)});e.statusBar.addAction({label:Be.NC("acceptInlineSuggestion","Accept"),commandId:r,run:()=>this._commandService.executeCommand(r)});const c=[s,a];for(const r of c)r.setEnabled(!1);n.hasMultipleSuggestions().then((e=>{for(const t of c)t.setEnabled(e)}));for(const r of n.commands)e.statusBar.addAction({label:r.title,commandId:r.id,run:()=>this._commandService.executeCommand(r.id,...r.arguments||[])});for(const[r,l]of o.getActions())for(const t of l)t instanceof Je.U8&&e.statusBar.addAction({label:t.label,commandId:t.item.id,run:()=>this._commandService.executeCommand(t.item.id)});return i}renderScreenReaderText(e,t,i){var n,o;const s=be.$,r=s("div.hover-row.markdown-hover"),a=be.R3(r,s("div.hover-contents")),l=i.add(new Ze.$({editor:this._editor},this._languageService,this._openerService)),c=null===(o=null===(n=t.controller.activeModel)||void 0===n?void 0:n.inlineCompletionsModel)||void 0===o?void 0:o.ghostText;if(c){const t=this._editor.getModel().getLineContent(c.lineNumber);(t=>{i.add(l.onDidRenderAsync((()=>{a.className="hover-contents code-hover-contents",e.onContentsChanged()})));const n=Be.NC("inlineSuggestionFollows","Suggestion:"),o=i.add(l.render((new Qe.W5).appendText(n).appendCodeblock("text",t)));a.replaceChildren(o.element)})(c.renderForScreenReader(t))}e.fragment.appendChild(r)}};nt=et([tt(1,k.Hy),tt(2,Je.co),tt(3,Ve.i6),tt(4,ke.O),tt(5,Xe.v4),tt(6,Ye.F)],nt);var ot=i(49989);(0,n._K)(je.ID,je),(0,n.Qr)(Ge),(0,n.Qr)($e),(0,n.Qr)(qe),s.Ae.register(nt);const st=n._l.bindToContribution(je.get),rt=new st({id:r,precondition:je.inlineSuggestionVisible,handler(e){e.commit(),e.editor.focus()}});(0,n.fK)(rt),ot.W.registerKeybindingRule({primary:2,weight:200,id:rt.id,when:Ve.Ao.and(rt.precondition,o.u.tabMovesFocus.toNegated(),je.inlineSuggestionHasIndentationLessThanTabSize)}),(0,n.fK)(new st({id:"editor.action.inlineSuggest.hide",precondition:je.inlineSuggestionVisible,kbOpts:{weight:100,primary:9},handler(e){e.hide()}}))},97615:(e,t,i)=>{"use strict";var n=i(16830),o=i(28108),s=i(29102),r=i(63580);class a extends n.R6{constructor(){super({id:"expandLineSelection",label:r.NC("expandLineSelection","Expand Line Selection"),alias:"Expand Line Selection",precondition:void 0,kbOpts:{weight:0,kbExpr:s.u.textInputFocus,primary:2090}})}run(e,t,i){if(i=i||{},!t.hasModel())return;const n=t._getViewModel();n.model.pushStackElement(),n.setCursorStates(i.source,3,o.P.expandLineSelection(n,n.getCursorStates())),n.revealPrimaryCursor(i.source,!0)}}(0,n.Qr)(a)},49504:(e,t,i)=>{"use strict";var n=i(22258),o=i(42549),s=i(16830),r=i(61329),a=i(97295),l=i(69386),c=i(24314);class d{constructor(e,t){this._selection=e,this._cursors=t,this._selectionId=null}getEditOperations(e,t){const i=function(e,t){t.sort(((e,t)=>e.lineNumber===t.lineNumber?e.column-t.column:e.lineNumber-t.lineNumber));for(let r=t.length-2;r>=0;r--)t[r].lineNumber===t[r+1].lineNumber&&t.splice(r,1);const i=[];let n=0,o=0;const s=t.length;for(let r=1,d=e.getLineCount();r<=d;r++){const d=e.getLineContent(r),h=d.length+1;let u=0;if(o<s&&t[o].lineNumber===r&&(u=t[o].column,o++,u===h))continue;if(0===d.length)continue;const g=a.ow(d);let p=0;if(-1===g)p=1;else{if(g===d.length-1)continue;p=g+2}p=Math.max(u,p),i[n++]=l.h.delete(new c.e(r,p,r,h))}return i}(e,this._cursors);for(let n=0,o=i.length;n<o;n++){const e=i[n];t.addEditOperation(e.range,e.text)}this._selectionId=t.trackSelection(this._selection)}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}var h=i(94729),u=i(50187),g=i(3860),p=i(29102);class m{constructor(e,t,i){this._selection=e,this._isCopyingDown=t,this._noop=i||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(e,t){let i=this._selection;this._startLineNumberDelta=0,this._endLineNumberDelta=0,i.startLineNumber<i.endLineNumber&&1===i.endColumn&&(this._endLineNumberDelta=1,i=i.setEndPosition(i.endLineNumber-1,e.getLineMaxColumn(i.endLineNumber-1)));const n=[];for(let s=i.startLineNumber;s<=i.endLineNumber;s++)n.push(e.getLineContent(s));const o=n.join("\n");""===o&&this._isCopyingDown&&(this._startLineNumberDelta++,this._endLineNumberDelta++),this._noop?t.addEditOperation(new c.e(i.endLineNumber,e.getLineMaxColumn(i.endLineNumber),i.endLineNumber+1,1),i.endLineNumber===e.getLineCount()?"":"\n"):this._isCopyingDown?t.addEditOperation(new c.e(i.startLineNumber,1,i.startLineNumber,1),o+"\n"):t.addEditOperation(new c.e(i.endLineNumber,e.getLineMaxColumn(i.endLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),"\n"+o),this._selectionId=t.trackSelection(i),this._selectionDirection=this._selection.getDirection()}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);if(0!==this._startLineNumberDelta||0!==this._endLineNumberDelta){let e=i.startLineNumber,t=i.startColumn,n=i.endLineNumber,o=i.endColumn;0!==this._startLineNumberDelta&&(e+=this._startLineNumberDelta,t=1),0!==this._endLineNumberDelta&&(n+=this._endLineNumberDelta,o=1),i=g.Y.createWithDirection(e,t,n,o,this._selectionDirection)}return i}}var f=i(10291),_=i(49119),v=i(4256),b=i(18279),C=i(75383),w=i(1615),y=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},S=function(e,t){return function(i,n){t(i,n,e)}};let L=class{constructor(e,t,i,n){this._languageConfigurationService=n,this._selection=e,this._isMovingDown=t,this._autoIndent=i,this._selectionId=null,this._moveEndLineSelectionShrink=!1}getEditOperations(e,t){const i=e.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===i)return void(this._selectionId=t.trackSelection(this._selection));if(!this._isMovingDown&&1===this._selection.startLineNumber)return void(this._selectionId=t.trackSelection(this._selection));this._moveEndPositionDown=!1;let n=this._selection;n.startLineNumber<n.endLineNumber&&1===n.endColumn&&(this._moveEndPositionDown=!0,n=n.setEndPosition(n.endLineNumber-1,e.getLineMaxColumn(n.endLineNumber-1)));const{tabSize:o,indentSize:s,insertSpaces:r}=e.getOptions(),l=this.buildIndentConverter(o,s,r),d={tokenization:{getLineTokens:t=>e.tokenization.getLineTokens(t),getLanguageId:()=>e.getLanguageId(),getLanguageIdAtPosition:(t,i)=>e.getLanguageIdAtPosition(t,i)},getLineContent:null};if(n.startLineNumber===n.endLineNumber&&1===e.getLineMaxColumn(n.startLineNumber)){const i=n.startLineNumber,o=this._isMovingDown?i+1:i-1;1===e.getLineMaxColumn(o)?t.addEditOperation(new c.e(1,1,1,1),null):(t.addEditOperation(new c.e(i,1,i,1),e.getLineContent(o)),t.addEditOperation(new c.e(o,1,o,e.getLineMaxColumn(o)),null)),n=new g.Y(o,1,o,1)}else{let i,s;if(this._isMovingDown){i=n.endLineNumber+1,s=e.getLineContent(i),t.addEditOperation(new c.e(i-1,e.getLineMaxColumn(i-1),i,e.getLineMaxColumn(i)),null);let h=s;if(this.shouldAutoIndent(e,n)){const u=this.matchEnterRule(e,l,o,i,n.startLineNumber-1);if(null!==u){const t=a.V8(e.getLineContent(i)),n=u+b.Y(t,o),l=b.J(n,o,r);h=l+this.trimLeft(s)}else{d.getLineContent=t=>t===n.startLineNumber?e.getLineContent(i):e.getLineContent(t);const t=(0,C.n8)(this._autoIndent,d,e.getLanguageIdAtPosition(i,1),n.startLineNumber,l,this._languageConfigurationService);if(null!==t){const n=a.V8(e.getLineContent(i)),l=b.Y(t,o);if(l!==b.Y(n,o)){const e=b.J(l,o,r);h=e+this.trimLeft(s)}}}t.addEditOperation(new c.e(n.startLineNumber,1,n.startLineNumber,1),h+"\n");const g=this.matchEnterRuleMovingDown(e,l,o,n.startLineNumber,i,h);if(null!==g)0!==g&&this.getIndentEditsOfMovingBlock(e,t,n,o,r,g);else{d.getLineContent=t=>t===n.startLineNumber?h:t>=n.startLineNumber+1&&t<=n.endLineNumber+1?e.getLineContent(t-1):e.getLineContent(t);const s=(0,C.n8)(this._autoIndent,d,e.getLanguageIdAtPosition(i,1),n.startLineNumber+1,l,this._languageConfigurationService);if(null!==s){const i=a.V8(e.getLineContent(n.startLineNumber)),l=b.Y(s,o),c=b.Y(i,o);if(l!==c){const i=l-c;this.getIndentEditsOfMovingBlock(e,t,n,o,r,i)}}}}else t.addEditOperation(new c.e(n.startLineNumber,1,n.startLineNumber,1),h+"\n")}else if(i=n.startLineNumber-1,s=e.getLineContent(i),t.addEditOperation(new c.e(i,1,i+1,1),null),t.addEditOperation(new c.e(n.endLineNumber,e.getLineMaxColumn(n.endLineNumber),n.endLineNumber,e.getLineMaxColumn(n.endLineNumber)),"\n"+s),this.shouldAutoIndent(e,n)){d.getLineContent=t=>t===i?e.getLineContent(n.startLineNumber):e.getLineContent(t);const s=this.matchEnterRule(e,l,o,n.startLineNumber,n.startLineNumber-2);if(null!==s)0!==s&&this.getIndentEditsOfMovingBlock(e,t,n,o,r,s);else{const s=(0,C.n8)(this._autoIndent,d,e.getLanguageIdAtPosition(n.startLineNumber,1),i,l,this._languageConfigurationService);if(null!==s){const i=a.V8(e.getLineContent(n.startLineNumber)),l=b.Y(s,o),c=b.Y(i,o);if(l!==c){const i=l-c;this.getIndentEditsOfMovingBlock(e,t,n,o,r,i)}}}}}this._selectionId=t.trackSelection(n)}buildIndentConverter(e,t,i){return{shiftIndent:n=>f.U.shiftIndent(n,n.length+1,e,t,i),unshiftIndent:n=>f.U.unshiftIndent(n,n.length+1,e,t,i)}}parseEnterResult(e,t,i,n,o){if(o){let s=o.indentation;o.indentAction===_.wU.None||o.indentAction===_.wU.Indent?s=o.indentation+o.appendText:o.indentAction===_.wU.IndentOutdent?s=o.indentation:o.indentAction===_.wU.Outdent&&(s=t.unshiftIndent(o.indentation)+o.appendText);const r=e.getLineContent(n);if(this.trimLeft(r).indexOf(this.trimLeft(s))>=0){const o=a.V8(e.getLineContent(n));let r=a.V8(s);const l=(0,C.tI)(e,n,this._languageConfigurationService);null!==l&&2&l&&(r=t.unshiftIndent(r));return b.Y(r,i)-b.Y(o,i)}}return null}matchEnterRuleMovingDown(e,t,i,n,o,s){if(a.ow(s)>=0){const s=e.getLineMaxColumn(o),r=(0,w.A)(this._autoIndent,e,new c.e(o,s,o,s),this._languageConfigurationService);return this.parseEnterResult(e,t,i,n,r)}{let o=n-1;for(;o>=1;){const t=e.getLineContent(o);if(a.ow(t)>=0)break;o--}if(o<1||n>e.getLineCount())return null;const s=e.getLineMaxColumn(o),r=(0,w.A)(this._autoIndent,e,new c.e(o,s,o,s),this._languageConfigurationService);return this.parseEnterResult(e,t,i,n,r)}}matchEnterRule(e,t,i,n,o,s){let r=o;for(;r>=1;){let t;t=r===o&&void 0!==s?s:e.getLineContent(r);if(a.ow(t)>=0)break;r--}if(r<1||n>e.getLineCount())return null;const l=e.getLineMaxColumn(r),d=(0,w.A)(this._autoIndent,e,new c.e(r,l,r,l),this._languageConfigurationService);return this.parseEnterResult(e,t,i,n,d)}trimLeft(e){return e.replace(/^\s+/,"")}shouldAutoIndent(e,t){if(this._autoIndent<4)return!1;if(!e.tokenization.isCheapToTokenize(t.startLineNumber))return!1;const i=e.getLanguageIdAtPosition(t.startLineNumber,1);return i===e.getLanguageIdAtPosition(t.endLineNumber,1)&&null!==this._languageConfigurationService.getLanguageConfiguration(i).indentRulesSupport}getIndentEditsOfMovingBlock(e,t,i,n,o,s){for(let r=i.startLineNumber;r<=i.endLineNumber;r++){const l=e.getLineContent(r),d=a.V8(l),h=b.Y(d,n)+s,u=b.J(h,n,o);u!==d&&(t.addEditOperation(new c.e(r,1,r,d.length+1),u),r===i.endLineNumber&&i.endColumn<=d.length+1&&""===u&&(this._moveEndLineSelectionShrink=!0))}}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(i=i.setEndPosition(i.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&i.startLineNumber<i.endLineNumber&&(i=i.setEndPosition(i.endLineNumber,2)),i}};L=y([S(3,v.c_)],L);class k{constructor(e,t){this.selection=e,this.descending=t,this.selectionId=null}static getCollator(){return k._COLLATOR||(k._COLLATOR=new Intl.Collator),k._COLLATOR}getEditOperations(e,t){const i=function(e,t,i){const n=x(e,t,i);if(!n)return null;return l.h.replace(new c.e(n.startLineNumber,1,n.endLineNumber,e.getLineMaxColumn(n.endLineNumber)),n.after.join("\n"))}(e,this.selection,this.descending);i&&t.addEditOperation(i.range,i.text),this.selectionId=t.trackSelection(this.selection)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}static canRun(e,t,i){if(null===e)return!1;const n=x(e,t,i);if(!n)return!1;for(let o=0,s=n.before.length;o<s;o++)if(n.before[o]!==n.after[o])return!0;return!1}}function x(e,t,i){const n=t.startLineNumber;let o=t.endLineNumber;if(1===t.endColumn&&o--,n>=o)return null;const s=[];for(let a=n;a<=o;a++)s.push(e.getLineContent(a));let r=s.slice(0);return r.sort(k.getCollator().compare),!0===i&&(r=r.reverse()),{startLineNumber:n,endLineNumber:o,before:s,after:r}}k._COLLATOR=null;var D=i(63580),N=i(84144);class E extends s.R6{constructor(e,t){super(t),this.down=e}run(e,t){if(!t.hasModel())return;const i=t.getSelections().map(((e,t)=>({selection:e,index:t,ignore:!1})));i.sort(((e,t)=>c.e.compareRangesUsingStarts(e.selection,t.selection)));let n=i[0];for(let s=1;s<i.length;s++){const e=i[s];n.selection.endLineNumber===e.selection.startLineNumber&&(n.index<e.index?e.ignore=!0:(n.ignore=!0,n=e))}const o=[];for(const s of i)o.push(new m(s.selection,this.down,s.ignore));t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}class I extends s.R6{constructor(){super({id:"editor.action.duplicateSelection",label:D.NC("duplicateSelection","Duplicate Selection"),alias:"Duplicate Selection",precondition:p.u.writable,menuOpts:{menuId:N.eH.MenubarSelectionMenu,group:"2_line",title:D.NC({key:"miDuplicateSelection",comment:["&& denotes a mnemonic"]},"&&Duplicate Selection"),order:5}})}run(e,t,i){if(!t.hasModel())return;const n=[],o=t.getSelections(),s=t.getModel();for(const a of o)if(a.isEmpty())n.push(new m(a,!0));else{const e=new g.Y(a.endLineNumber,a.endColumn,a.endLineNumber,a.endColumn);n.push(new r.OY(e,s.getValueInRange(a)))}t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}}class T extends s.R6{constructor(e,t){super(t),this.down=e}run(e,t){const i=e.get(v.c_),n=[],o=t.getSelections()||[],s=t.getOption(9);for(const r of o)n.push(new L(r,this.down,s,i));t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}}class M extends s.R6{constructor(e,t){super(t),this.descending=e}run(e,t){const i=t.getSelections()||[];for(const o of i)if(!k.canRun(t.getModel(),o,this.descending))return;const n=[];for(let o=0,s=i.length;o<s;o++)n[o]=new k(i[o],this.descending);t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}}class A extends s.R6{constructor(){super({id:"editor.action.removeDuplicateLines",label:D.NC("lines.deleteDuplicates","Delete Duplicate Lines"),alias:"Delete Duplicate Lines",precondition:p.u.writable})}run(e,t){if(!t.hasModel())return;const i=t.getModel();if(1===i.getLineCount()&&1===i.getLineMaxColumn(1))return;const n=[],o=[];let s=0;for(const r of t.getSelections()){const e=new Set,t=[];for(let n=r.startLineNumber;n<=r.endLineNumber;n++){const o=i.getLineContent(n);e.has(o)||(t.push(o),e.add(o))}const a=new g.Y(r.startLineNumber,1,r.endLineNumber,i.getLineMaxColumn(r.endLineNumber)),c=r.startLineNumber-s,d=new g.Y(c,1,c+t.length-1,t[t.length-1].length);n.push(l.h.replace(a,t.join("\n"))),o.push(d),s+=r.endLineNumber-r.startLineNumber+1-t.length}t.pushUndoStop(),t.executeEdits(this.id,n,o),t.pushUndoStop()}}class R extends s.R6{constructor(){super({id:R.ID,label:D.NC("lines.trimTrailingWhitespace","Trim Trailing Whitespace"),alias:"Trim Trailing Whitespace",precondition:p.u.writable,kbOpts:{kbExpr:p.u.editorTextFocus,primary:(0,n.gx)(2089,2102),weight:100}})}run(e,t,i){let n=[];"auto-save"===i.reason&&(n=(t.getSelections()||[]).map((e=>new u.L(e.positionLineNumber,e.positionColumn))));const o=t.getSelection();if(null===o)return;const s=new d(o,n);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop()}}R.ID="editor.action.trimTrailingWhitespace";class O extends s.R6{constructor(){super({id:"editor.action.deleteLines",label:D.NC("lines.delete","Delete Line"),alias:"Delete Line",precondition:p.u.writable,kbOpts:{kbExpr:p.u.textInputFocus,primary:3113,weight:100}})}run(e,t){if(!t.hasModel())return;const i=this._getLinesToRemove(t),n=t.getModel();if(1===n.getLineCount()&&1===n.getLineMaxColumn(1))return;let o=0;const s=[],r=[];for(let a=0,c=i.length;a<c;a++){const e=i[a];let t=e.startLineNumber,c=e.endLineNumber,d=1,h=n.getLineMaxColumn(c);c<n.getLineCount()?(c+=1,h=1):t>1&&(t-=1,d=n.getLineMaxColumn(t)),s.push(l.h.replace(new g.Y(t,d,c,h),"")),r.push(new g.Y(t-o,e.positionColumn,t-o,e.positionColumn)),o+=e.endLineNumber-e.startLineNumber+1}t.pushUndoStop(),t.executeEdits(this.id,s,r),t.pushUndoStop()}_getLinesToRemove(e){const t=e.getSelections().map((e=>{let t=e.endLineNumber;return e.startLineNumber<e.endLineNumber&&1===e.endColumn&&(t-=1),{startLineNumber:e.startLineNumber,selectionStartColumn:e.selectionStartColumn,endLineNumber:t,positionColumn:e.positionColumn}}));t.sort(((e,t)=>e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber));const i=[];let n=t[0];for(let o=1;o<t.length;o++)n.endLineNumber+1>=t[o].startLineNumber?n.endLineNumber=t[o].endLineNumber:(i.push(n),n=t[o]);return i.push(n),i}}class P extends s.R6{constructor(){super({id:"editor.action.indentLines",label:D.NC("lines.indent","Indent Line"),alias:"Indent Line",precondition:p.u.writable,kbOpts:{kbExpr:p.u.editorTextFocus,primary:2137,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,h.u6.indent(i.cursorConfig,t.getModel(),t.getSelections())),t.pushUndoStop())}}class F extends s.R6{constructor(){super({id:"editor.action.outdentLines",label:D.NC("lines.outdent","Outdent Line"),alias:"Outdent Line",precondition:p.u.writable,kbOpts:{kbExpr:p.u.editorTextFocus,primary:2135,weight:100}})}run(e,t){o.wk.Outdent.runEditorCommand(e,t,null)}}class B extends s.R6{constructor(){super({id:"editor.action.insertLineBefore",label:D.NC("lines.insertBefore","Insert Line Above"),alias:"Insert Line Above",precondition:p.u.writable,kbOpts:{kbExpr:p.u.editorTextFocus,primary:3075,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,h.u6.lineInsertBefore(i.cursorConfig,t.getModel(),t.getSelections())))}}class V extends s.R6{constructor(){super({id:"editor.action.insertLineAfter",label:D.NC("lines.insertAfter","Insert Line Below"),alias:"Insert Line Below",precondition:p.u.writable,kbOpts:{kbExpr:p.u.editorTextFocus,primary:2051,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,h.u6.lineInsertAfter(i.cursorConfig,t.getModel(),t.getSelections())))}}class W extends s.R6{run(e,t){if(!t.hasModel())return;const i=t.getSelection(),n=this._getRangesToDelete(t),o=[];for(let a=0,l=n.length-1;a<l;a++){const e=n[a],t=n[a+1];null===c.e.intersectRanges(e,t)?o.push(e):n[a+1]=c.e.plusRange(e,t)}o.push(n[n.length-1]);const s=this._getEndCursorState(i,o),r=o.map((e=>l.h.replace(e,"")));t.pushUndoStop(),t.executeEdits(this.id,r,s),t.pushUndoStop()}}class H extends s.R6{constructor(){super({id:"editor.action.joinLines",label:D.NC("lines.joinLines","Join Lines"),alias:"Join Lines",precondition:p.u.writable,kbOpts:{kbExpr:p.u.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}run(e,t){const i=t.getSelections();if(null===i)return;let n=t.getSelection();if(null===n)return;i.sort(c.e.compareRangesUsingStarts);const o=[],s=i.reduce(((e,t)=>e.isEmpty()?e.endLineNumber===t.startLineNumber?(n.equalsSelection(e)&&(n=t),t):t.startLineNumber>e.endLineNumber+1?(o.push(e),t):new g.Y(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn):t.startLineNumber>e.endLineNumber?(o.push(e),t):new g.Y(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn)));o.push(s);const r=t.getModel();if(null===r)return;const a=[],d=[];let h=n,u=0;for(let p=0,m=o.length;p<m;p++){const e=o[p],t=e.startLineNumber,i=1;let s,m,f=0;const _=r.getLineContent(e.endLineNumber).length-e.endColumn;if(e.isEmpty()||e.startLineNumber===e.endLineNumber){const i=e.getStartPosition();i.lineNumber<r.getLineCount()?(s=t+1,m=r.getLineMaxColumn(s)):(s=i.lineNumber,m=r.getLineMaxColumn(i.lineNumber))}else s=e.endLineNumber,m=r.getLineMaxColumn(s);let v=r.getLineContent(t);for(let n=t+1;n<=s;n++){const e=r.getLineContent(n),t=r.getLineFirstNonWhitespaceColumn(n);if(t>=1){let i=!0;""===v&&(i=!1),!i||" "!==v.charAt(v.length-1)&&"\t"!==v.charAt(v.length-1)||(i=!1,v=v.replace(/[\s\uFEFF\xA0]+$/g," "));const n=e.substr(t-1);v+=(i?" ":"")+n,f=i?n.length+1:n.length}else f=0}const b=new c.e(t,i,s,m);if(!b.isEmpty()){let i;e.isEmpty()?(a.push(l.h.replace(b,v)),i=new g.Y(b.startLineNumber-u,v.length-f+1,t-u,v.length-f+1)):e.startLineNumber===e.endLineNumber?(a.push(l.h.replace(b,v)),i=new g.Y(e.startLineNumber-u,e.startColumn,e.endLineNumber-u,e.endColumn)):(a.push(l.h.replace(b,v)),i=new g.Y(e.startLineNumber-u,e.startColumn,e.startLineNumber-u,v.length-_)),null!==c.e.intersectRanges(b,n)?h=i:d.push(i)}u+=b.endLineNumber-b.startLineNumber}d.unshift(h),t.pushUndoStop(),t.executeEdits(this.id,a,d),t.pushUndoStop()}}class z extends s.R6{constructor(){super({id:"editor.action.transpose",label:D.NC("editor.transpose","Transpose characters around the cursor"),alias:"Transpose characters around the cursor",precondition:p.u.writable})}run(e,t){const i=t.getSelections();if(null===i)return;const n=t.getModel();if(null===n)return;const o=[];for(let s=0,a=i.length;s<a;s++){const e=i[s];if(!e.isEmpty())continue;const t=e.getStartPosition(),a=n.getLineMaxColumn(t.lineNumber);if(t.column>=a){if(t.lineNumber===n.getLineCount())continue;const e=new c.e(t.lineNumber,Math.max(1,t.column-1),t.lineNumber+1,1),i=n.getValueInRange(e).split("").reverse().join("");o.push(new r.T4(new g.Y(t.lineNumber,Math.max(1,t.column-1),t.lineNumber+1,1),i))}else{const e=new c.e(t.lineNumber,Math.max(1,t.column-1),t.lineNumber,t.column+1),i=n.getValueInRange(e).split("").reverse().join("");o.push(new r.hP(e,i,new g.Y(t.lineNumber,t.column+1,t.lineNumber,t.column+1)))}}t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}class j extends s.R6{run(e,t){const i=t.getSelections();if(null===i)return;const n=t.getModel();if(null===n)return;const o=t.getOption(119),s=[];for(const r of i)if(r.isEmpty()){const e=r.getStartPosition(),i=t.getConfiguredWordAtPosition(e);if(!i)continue;const a=new c.e(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn),d=n.getValueInRange(a);s.push(l.h.replace(a,this._modifyText(d,o)))}else{const e=n.getValueInRange(r);s.push(l.h.replace(r,this._modifyText(e,o)))}t.pushUndoStop(),t.executeEdits(this.id,s),t.pushUndoStop()}}class U{constructor(e,t){this._pattern=e,this._flags=t,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch(e){}}return this._actual}isSupported(){return null!==this.get()}}class K extends j{constructor(){super({id:"editor.action.transformToTitlecase",label:D.NC("editor.transformToTitlecase","Transform to Title Case"),alias:"Transform to Title Case",precondition:p.u.writable})}_modifyText(e,t){const i=K.titleBoundary.get();return i?e.toLocaleLowerCase().replace(i,(e=>e.toLocaleUpperCase())):e}}K.titleBoundary=new U("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu");class $ extends j{constructor(){super({id:"editor.action.transformToSnakecase",label:D.NC("editor.transformToSnakecase","Transform to Snake Case"),alias:"Transform to Snake Case",precondition:p.u.writable})}_modifyText(e,t){const i=$.caseBoundary.get(),n=$.singleLetters.get();return i&&n?e.replace(i,"$1_$2").replace(n,"$1_$2$3").toLocaleLowerCase():e}}$.caseBoundary=new U("(\\p{Ll})(\\p{Lu})","gmu"),$.singleLetters=new U("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu");class q extends j{constructor(){super({id:"editor.action.transformToKebabcase",label:D.NC("editor.transformToKebabcase","Transform to Kebab Case"),alias:"Transform to Kebab Case",precondition:p.u.writable})}static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every((e=>e.isSupported()))}_modifyText(e,t){const i=q.caseBoundary.get(),n=q.singleLetters.get(),o=q.underscoreBoundary.get();return i&&n&&o?e.replace(o,"$1-$3").replace(i,"$1-$2").replace(n,"$1-$2").toLocaleLowerCase():e}}q.caseBoundary=new U("(\\p{Ll})(\\p{Lu})","gmu"),q.singleLetters=new U("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu"),q.underscoreBoundary=new U("(\\S)(_)(\\S)","gm"),(0,s.Qr)(class extends E{constructor(){super(!1,{id:"editor.action.copyLinesUpAction",label:D.NC("lines.copyUp","Copy Line Up"),alias:"Copy Line Up",precondition:p.u.writable,kbOpts:{kbExpr:p.u.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:N.eH.MenubarSelectionMenu,group:"2_line",title:D.NC({key:"miCopyLinesUp",comment:["&& denotes a mnemonic"]},"&&Copy Line Up"),order:1}})}}),(0,s.Qr)(class extends E{constructor(){super(!0,{id:"editor.action.copyLinesDownAction",label:D.NC("lines.copyDown","Copy Line Down"),alias:"Copy Line Down",precondition:p.u.writable,kbOpts:{kbExpr:p.u.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:N.eH.MenubarSelectionMenu,group:"2_line",title:D.NC({key:"miCopyLinesDown",comment:["&& denotes a mnemonic"]},"Co&&py Line Down"),order:2}})}}),(0,s.Qr)(I),(0,s.Qr)(class extends T{constructor(){super(!1,{id:"editor.action.moveLinesUpAction",label:D.NC("lines.moveUp","Move Line Up"),alias:"Move Line Up",precondition:p.u.writable,kbOpts:{kbExpr:p.u.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:N.eH.MenubarSelectionMenu,group:"2_line",title:D.NC({key:"miMoveLinesUp",comment:["&& denotes a mnemonic"]},"Mo&&ve Line Up"),order:3}})}}),(0,s.Qr)(class extends T{constructor(){super(!0,{id:"editor.action.moveLinesDownAction",label:D.NC("lines.moveDown","Move Line Down"),alias:"Move Line Down",precondition:p.u.writable,kbOpts:{kbExpr:p.u.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:N.eH.MenubarSelectionMenu,group:"2_line",title:D.NC({key:"miMoveLinesDown",comment:["&& denotes a mnemonic"]},"Move &&Line Down"),order:4}})}}),(0,s.Qr)(class extends M{constructor(){super(!1,{id:"editor.action.sortLinesAscending",label:D.NC("lines.sortAscending","Sort Lines Ascending"),alias:"Sort Lines Ascending",precondition:p.u.writable})}}),(0,s.Qr)(class extends M{constructor(){super(!0,{id:"editor.action.sortLinesDescending",label:D.NC("lines.sortDescending","Sort Lines Descending"),alias:"Sort Lines Descending",precondition:p.u.writable})}}),(0,s.Qr)(A),(0,s.Qr)(R),(0,s.Qr)(O),(0,s.Qr)(P),(0,s.Qr)(F),(0,s.Qr)(B),(0,s.Qr)(V),(0,s.Qr)(class extends W{constructor(){super({id:"deleteAllLeft",label:D.NC("lines.deleteAllLeft","Delete All Left"),alias:"Delete All Left",precondition:p.u.writable,kbOpts:{kbExpr:p.u.textInputFocus,primary:0,mac:{primary:2049},weight:100}})}_getEndCursorState(e,t){let i=null;const n=[];let o=0;return t.forEach((t=>{let s;if(1===t.endColumn&&o>0){const e=t.startLineNumber-o;s=new g.Y(e,t.startColumn,e,t.startColumn)}else s=new g.Y(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn);o+=t.endLineNumber-t.startLineNumber,t.intersectRanges(e)?i=s:n.push(s)})),i&&n.unshift(i),n}_getRangesToDelete(e){const t=e.getSelections();if(null===t)return[];let i=t;const n=e.getModel();return null===n?[]:(i.sort(c.e.compareRangesUsingStarts),i=i.map((e=>{if(e.isEmpty()){if(1===e.startColumn){const t=Math.max(1,e.startLineNumber-1),i=1===e.startLineNumber?1:n.getLineContent(t).length+1;return new c.e(t,i,e.startLineNumber,1)}return new c.e(e.startLineNumber,1,e.startLineNumber,e.startColumn)}return new c.e(e.startLineNumber,1,e.endLineNumber,e.endColumn)})),i)}}),(0,s.Qr)(class extends W{constructor(){super({id:"deleteAllRight",label:D.NC("lines.deleteAllRight","Delete All Right"),alias:"Delete All Right",precondition:p.u.writable,kbOpts:{kbExpr:p.u.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}_getEndCursorState(e,t){let i=null;const n=[];for(let o=0,s=t.length,r=0;o<s;o++){const s=t[o],a=new g.Y(s.startLineNumber-r,s.startColumn,s.startLineNumber-r,s.startColumn);s.intersectRanges(e)?i=a:n.push(a)}return i&&n.unshift(i),n}_getRangesToDelete(e){const t=e.getModel();if(null===t)return[];const i=e.getSelections();if(null===i)return[];const n=i.map((e=>{if(e.isEmpty()){const i=t.getLineMaxColumn(e.startLineNumber);return e.startColumn===i?new c.e(e.startLineNumber,e.startColumn,e.startLineNumber+1,1):new c.e(e.startLineNumber,e.startColumn,e.startLineNumber,i)}return e}));return n.sort(c.e.compareRangesUsingStarts),n}}),(0,s.Qr)(H),(0,s.Qr)(z),(0,s.Qr)(class extends j{constructor(){super({id:"editor.action.transformToUppercase",label:D.NC("editor.transformToUppercase","Transform to Uppercase"),alias:"Transform to Uppercase",precondition:p.u.writable})}_modifyText(e,t){return e.toLocaleUpperCase()}}),(0,s.Qr)(class extends j{constructor(){super({id:"editor.action.transformToLowercase",label:D.NC("editor.transformToLowercase","Transform to Lowercase"),alias:"Transform to Lowercase",precondition:p.u.writable})}_modifyText(e,t){return e.toLocaleLowerCase()}}),$.caseBoundary.isSupported()&&$.singleLetters.isSupported()&&(0,s.Qr)($),K.titleBoundary.isSupported()&&(0,s.Qr)(K),q.isSupported()&&(0,s.Qr)(q)},76:(e,t,i)=>{"use strict";var n=i(9488),o=i(15393),s=i(71050),r=i(41264),a=i(17301),l=i(4669),c=i(5976),d=i(97295),h=i(70666),u=i(16830),g=i(11640),p=i(50187),m=i(24314),f=i(29102),_=i(22529),v=i(4256),b=i(63580),C=i(38819),w=i(73910),y=i(97781),S=i(71922),L=i(88191),k=i(84013),x=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},D=function(e,t){return function(i,n){t(i,n,e)}},N=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const E=new C.uy("LinkedEditingInputVisible",!1),I="linked-editing-decoration";let T=class e extends c.JT{constructor(e,t,i,n,o){super(),this.languageConfigurationService=n,this._syncRangesToken=0,this._localToDispose=this._register(new c.SL),this._editor=e,this._providers=i.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=E.bindTo(t),this._debounceInformation=o.for(this._providers,"Linked Editing",{min:200}),this._currentDecorations=this._editor.createDecorationsCollection(),this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new c.SL),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequest=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel((()=>this.reinitialize(!0)))),this._register(this._editor.onDidChangeConfiguration((e=>{(e.hasChanged(64)||e.hasChanged(84))&&this.reinitialize(!1)}))),this._register(this._providers.onDidChange((()=>this.reinitialize(!1)))),this._register(this._editor.onDidChangeModelLanguage((()=>this.reinitialize(!0)))),this.reinitialize(!0)}static get(t){return t.getContribution(e.ID)}reinitialize(e){const t=this._editor.getModel(),i=null!==t&&(this._editor.getOption(64)||this._editor.getOption(84))&&this._providers.has(t);if(i===this._enabled&&!e)return;if(this._enabled=i,this.clearRanges(),this._localToDispose.clear(),!i||null===t)return;this._localToDispose.add(l.ju.runAndSubscribe(t.onDidChangeLanguageConfiguration,(()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(t.getLanguageId()).getWordDefinition()})));const n=new o.vp(this._debounceInformation.get(t)),s=()=>{var e;this._rangeUpdateTriggerPromise=n.trigger((()=>this.updateRanges()),null!==(e=this._debounceDuration)&&void 0!==e?e:this._debounceInformation.get(t))},r=new o.vp(0),a=e=>{this._rangeSyncTriggerPromise=r.trigger((()=>this._syncRanges(e)))};this._localToDispose.add(this._editor.onDidChangeCursorPosition((()=>{s()}))),this._localToDispose.add(this._editor.onDidChangeModelContent((e=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const t=this._currentDecorations.getRange(0);if(t&&e.changes.every((e=>t.intersectRanges(e.range))))return void a(this._syncRangesToken)}s()}))),this._localToDispose.add({dispose:()=>{n.dispose(),r.dispose()}}),this.updateRanges()}_syncRanges(e){if(!this._editor.hasModel()||e!==this._syncRangesToken||0===this._currentDecorations.length)return;const t=this._editor.getModel(),i=this._currentDecorations.getRange(0);if(!i||i.startLineNumber!==i.endLineNumber)return this.clearRanges();const n=t.getValueInRange(i);if(this._currentWordPattern){const e=n.match(this._currentWordPattern);if((e?e[0].length:0)!==n.length)return this.clearRanges()}const o=[];for(let s=1,r=this._currentDecorations.length;s<r;s++){const e=this._currentDecorations.getRange(s);if(e)if(e.startLineNumber!==e.endLineNumber)o.push({range:e,text:n});else{let i=t.getValueInRange(e),s=n,r=e.startColumn,a=e.endColumn;const l=d.Mh(i,s);r+=l,i=i.substr(l),s=s.substr(l);const c=d.P1(i,s);a-=c,i=i.substr(0,i.length-c),s=s.substr(0,s.length-c),r===a&&0===s.length||o.push({range:new m.e(e.startLineNumber,r,e.endLineNumber,a),text:s})}}if(0!==o.length)try{this._editor.popUndoStop(),this._ignoreChangeEvent=!0;const e=this._editor._getViewModel().getPrevEditOperationType();this._editor.executeEdits("linkedEditing",o),this._editor._getViewModel().setPrevEditOperationType(e)}finally{this._ignoreChangeEvent=!1}}dispose(){this.clearRanges(),super.dispose()}clearRanges(){this._visibleContextKey.set(!1),this._currentDecorations.clear(),this._currentRequest&&(this._currentRequest.cancel(),this._currentRequest=null,this._currentRequestPosition=null)}updateRanges(t=!1){return N(this,void 0,void 0,(function*(){if(!this._editor.hasModel())return void this.clearRanges();const i=this._editor.getPosition();if(!this._enabled&&!t||this._editor.getSelections().length>1)return void this.clearRanges();const n=this._editor.getModel(),s=n.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===s){if(i.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){const e=this._currentDecorations.getRange(0);if(e&&e.containsPosition(i))return}}this._currentRequestPosition=i,this._currentRequestModelVersion=s;const r=(0,o.PG)((t=>N(this,void 0,void 0,(function*(){try{const o=new k.G(!1),a=yield R(this._providers,n,i,t);if(this._debounceInformation.update(n,o.elapsed()),r!==this._currentRequest)return;if(this._currentRequest=null,s!==n.getVersionId())return;let l=[];(null==a?void 0:a.ranges)&&(l=a.ranges),this._currentWordPattern=(null==a?void 0:a.wordPattern)||this._languageWordPattern;let c=!1;for(let e=0,t=l.length;e<t;e++)if(m.e.containsPosition(l[e],i)){if(c=!0,0!==e){const t=l[e];l.splice(e,1),l.unshift(t)}break}if(!c)return void this.clearRanges();const d=l.map((t=>({range:t,options:e.DECORATION})));this._visibleContextKey.set(!0),this._currentDecorations.set(d),this._syncRangesToken++}catch(o){(0,a.n2)(o)||(0,a.dL)(o),this._currentRequest!==r&&this._currentRequest||this.clearRanges()}}))));return this._currentRequest=r,r}))}};T.ID="editor.contrib.linkedEditing",T.DECORATION=_.qx.register({description:"linked-editing",stickiness:0,className:I}),T=x([D(1,C.i6),D(2,S.p),D(3,v.c_),D(4,L.A)],T);class M extends u.R6{constructor(){super({id:"editor.action.linkedEditing",label:b.NC("linkedEditing.label","Start Linked Editing"),alias:"Start Linked Editing",precondition:C.Ao.and(f.u.writable,f.u.hasRenameProvider),kbOpts:{kbExpr:f.u.editorTextFocus,primary:3132,weight:100}})}runCommand(e,t){const i=e.get(g.$),[n,o]=Array.isArray(t)&&t||[void 0,void 0];return h.o.isUri(n)&&p.L.isIPosition(o)?i.openCodeEditor({resource:n},i.getActiveCodeEditor()).then((e=>{e&&(e.setPosition(o),e.invokeWithinContext((t=>(this.reportTelemetry(t,e),this.run(t,e)))))}),a.dL):super.runCommand(e,t)}run(e,t){const i=T.get(t);return i?Promise.resolve(i.updateRanges(!0)):Promise.resolve()}}const A=u._l.bindToContribution(T.get);function R(e,t,i,s){const r=e.ordered(t);return(0,o.Ps)(r.map((e=>()=>N(this,void 0,void 0,(function*(){try{return yield e.provideLinkedEditingRanges(t,i,s)}catch(n){return void(0,a.Cp)(n)}})))),(e=>!!e&&n.Of(null==e?void 0:e.ranges)))}(0,u.fK)(new A({id:"cancelLinkedEditingInput",precondition:E,handler:e=>e.clearRanges(),kbOpts:{kbExpr:f.u.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));const O=(0,w.P6G)("editor.linkedEditingBackground",{dark:r.Il.fromHex("#f00").transparent(.3),light:r.Il.fromHex("#f00").transparent(.3),hcDark:r.Il.fromHex("#f00").transparent(.3),hcLight:r.Il.white},b.NC("editorLinkedEditingBackground","Background color when the editor auto renames on type."));(0,y.Ic)(((e,t)=>{const i=e.getColor(O);i&&t.addRule(`.monaco-editor .${I} { background: ${i}; border-left-color: ${i}; }`)})),(0,u.sb)("_executeLinkedEditingProvider",((e,t,i)=>{const{linkedEditingRangeProvider:n}=e.get(S.p);return R(n,t,i,s.T.None)})),(0,u._K)(T.ID,T),(0,u.Qr)(M)},18408:(e,t,i)=>{"use strict";var n=i(15393),o=i(71050),s=i(17301),r=i(59365),a=i(5976),l=i(66663),c=i(1432),d=i(95935),h=i(84013),u=i(70666),g=i(16830),p=i(22529),m=i(88191),f=i(71922),_=i(82005),v=i(9488),b=i(98401),C=i(24314),w=i(73733),y=i(94565),S=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class L{constructor(e,t){this._link=e,this._provider=t}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}resolve(e){return S(this,void 0,void 0,(function*(){return this._link.url?this._link.url:"function"==typeof this._provider.resolveLink?Promise.resolve(this._provider.resolveLink(this._link,e)).then((t=>(this._link=t||this._link,this._link.url?this.resolve(e):Promise.reject(new Error("missing"))))):Promise.reject(new Error("missing"))}))}}class k{constructor(e){this._disposables=new a.SL;let t=[];for(const[i,n]of e){const e=i.links.map((e=>new L(e,n)));t=k._union(t,e),(0,a.Wf)(i)&&this._disposables.add(i)}this.links=t}dispose(){this._disposables.dispose(),this.links.length=0}static _union(e,t){const i=[];let n,o,s,r;for(n=0,s=0,o=e.length,r=t.length;n<o&&s<r;){const o=e[n],r=t[s];if(C.e.areIntersectingOrTouching(o.range,r.range)){n++;continue}C.e.compareRangesUsingStarts(o.range,r.range)<0?(i.push(o),n++):(i.push(r),s++)}for(;n<o;n++)i.push(e[n]);for(;s<r;s++)i.push(t[s]);return i}}function x(e,t,i){const n=[],o=e.ordered(t).reverse().map(((e,o)=>Promise.resolve(e.provideLinks(t,i)).then((t=>{t&&(n[o]=[t,e])}),s.Cp)));return Promise.all(o).then((()=>{const e=new k((0,v.kX)(n));return i.isCancellationRequested?(e.dispose(),new k([])):e}))}y.P0.registerCommand("_executeLinkProvider",((e,...t)=>S(void 0,void 0,void 0,(function*(){let[i,n]=t;(0,b.p_)(i instanceof u.o),"number"!=typeof n&&(n=0);const{linkProvider:s}=e.get(f.p),r=e.get(w.q).getModel(i);if(!r)return[];const a=yield x(s,r,o.T.None);if(!a)return[];for(let e=0;e<Math.min(n,a.links.length);e++)yield a.links[e].resolve(o.T.None);const l=a.links.slice(0);return a.dispose(),l}))));var D=i(63580),N=i(59422),E=i(50988),I=i(73910),T=i(97781),M=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},A=function(e,t){return function(i,n){t(i,n,e)}},R=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let O=class e extends a.JT{constructor(e,t,i,o,s){super(),this.editor=e,this.openerService=t,this.notificationService=i,this.languageFeaturesService=o,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=s.for(this.providers,"Links",{min:1e3,max:4e3}),this.computeLinks=this._register(new n.pY((()=>this.computeLinksNow()),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;const r=this._register(new _.yN(e));this._register(r.onMouseMoveOrRelevantKeyDown((([e,t])=>{this._onEditorMouseMove(e,t)}))),this._register(r.onExecute((e=>{this.onEditorMouseUp(e)}))),this._register(r.onCancel((e=>{this.cleanUpActiveLinkDecoration()}))),this._register(e.onDidChangeConfiguration((e=>{e.hasChanged(65)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))}))),this._register(e.onDidChangeModelContent((e=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))}))),this._register(e.onDidChangeModel((e=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)}))),this._register(e.onDidChangeModelLanguage((e=>{this.stop(),this.computeLinks.schedule(0)}))),this._register(this.providers.onDidChange((e=>{this.stop(),this.computeLinks.schedule(0)}))),this.computeLinks.schedule(0)}static get(t){return t.getContribution(e.ID)}computeLinksNow(){return R(this,void 0,void 0,(function*(){if(!this.editor.hasModel()||!this.editor.getOption(65))return;const e=this.editor.getModel();if(this.providers.has(e)){this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=(0,n.PG)((t=>x(this.providers,e,t)));try{const t=new h.G(!1);if(this.activeLinksList=yield this.computePromise,this.debounceInformation.update(e,t.elapsed()),e.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(t){(0,s.dL)(t)}finally{this.computePromise=null}}}))}updateDecorations(e){const t="altKey"===this.editor.getOption(72),i=[],n=Object.keys(this.currentOccurrences);for(const s of n){const e=this.currentOccurrences[s];i.push(e.decorationId)}const o=[];if(e)for(const s of e)o.push(F.decoration(s,t));this.editor.changeDecorations((t=>{const n=t.deltaDecorations(i,o);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let i=0,o=n.length;i<o;i++){const t=new F(e[i],n[i]);this.currentOccurrences[t.decorationId]=t}}))}_onEditorMouseMove(e,t){const i="altKey"===this.editor.getOption(72);if(this.isEnabled(e,t)){this.cleanUpActiveLinkDecoration();const t=this.getLinkOccurrence(e.target.position);t&&this.editor.changeDecorations((e=>{t.activate(e,i),this.activeLinkDecorationId=t.decorationId}))}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const e="altKey"===this.editor.getOption(72);if(this.activeLinkDecorationId){const t=this.currentOccurrences[this.activeLinkDecorationId];t&&this.editor.changeDecorations((i=>{t.deactivate(i,e)})),this.activeLinkDecorationId=null}}onEditorMouseUp(e){if(!this.isEnabled(e))return;const t=this.getLinkOccurrence(e.target.position);t&&this.openLinkOccurrence(t,e.hasSideBySideModifier,!0)}openLinkOccurrence(e,t,i=!1){if(!this.openerService)return;const{link:n}=e;n.resolve(o.T.None).then((e=>{if("string"==typeof e&&this.editor.hasModel()){const t=this.editor.getModel().uri;if(t.scheme===l.lg.file&&e.startsWith(`${l.lg.file}:`)){const i=u.o.parse(e);if(i.scheme===l.lg.file){const n=d.z_(i);let o=null;n.startsWith("/./")?o=`.${n.substr(1)}`:n.startsWith("//./")&&(o=`.${n.substr(2)}`),o&&(e=d.Vo(t,o))}}}return this.openerService.open(e,{openToSide:t,fromUserGesture:i,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})}),(e=>{const t=e instanceof Error?e.message:e;"invalid"===t?this.notificationService.warn(D.NC("invalid.url","Failed to open this link because it is not well-formed: {0}",n.url.toString())):"missing"===t?this.notificationService.warn(D.NC("missing.url","Failed to open this link because its target is missing.")):(0,s.dL)(e)}))}getLinkOccurrence(e){if(!this.editor.hasModel()||!e)return null;const t=this.editor.getModel().getDecorationsInRange({startLineNumber:e.lineNumber,startColumn:e.column,endLineNumber:e.lineNumber,endColumn:e.column},0,!0);for(const i of t){const e=this.currentOccurrences[i.id];if(e)return e}return null}isEnabled(e,t){return Boolean(6===e.target.type&&(e.hasTriggerModifier||t&&t.keyCodeIsTriggerKey))}stop(){var e;this.computeLinks.cancel(),this.activeLinksList&&(null===(e=this.activeLinksList)||void 0===e||e.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop()}};O.ID="editor.linkDetector",O=M([A(1,E.v4),A(2,N.lT),A(3,f.p),A(4,m.A)],O);const P={general:p.qx.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:p.qx.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class F{constructor(e,t){this.link=e,this.decorationId=t}static decoration(e,t){return{range:e.range,options:F._getOptions(e,t,!1)}}static _getOptions(e,t,i){const n=Object.assign({},i?P.active:P.general);return n.hoverMessage=function(e,t){const i=e.url&&/^command:/i.test(e.url.toString()),n=e.tooltip?e.tooltip:i?D.NC("links.navigate.executeCmd","Execute command"):D.NC("links.navigate.follow","Follow link"),o=t?c.dz?D.NC("links.navigate.kb.meta.mac","cmd + click"):D.NC("links.navigate.kb.meta","ctrl + click"):c.dz?D.NC("links.navigate.kb.alt.mac","option + click"):D.NC("links.navigate.kb.alt","alt + click");if(e.url){let t="";if(/^command:/i.test(e.url.toString())){const i=e.url.toString().match(/^command:([^?#]+)/);if(i){const e=i[1];t=D.NC("tooltip.explanation","Execute command {0}",e)}}return new r.W5("",!0).appendLink(e.url.toString(!0).replace(/ /g,"%20"),n,t).appendMarkdown(` (${o})`)}return(new r.W5).appendText(`${n} (${o})`)}(e,t),n}activate(e,t){e.changeDecorationOptions(this.decorationId,F._getOptions(this.link,t,!0))}deactivate(e,t){e.changeDecorationOptions(this.decorationId,F._getOptions(this.link,t,!1))}}class B extends g.R6{constructor(){super({id:"editor.action.openLink",label:D.NC("label","Open Link"),alias:"Open Link",precondition:void 0})}run(e,t){const i=O.get(t);if(!i)return;if(!t.hasModel())return;const n=t.getSelections();for(const o of n){const e=i.getLinkOccurrence(o.getEndPosition());e&&i.openLinkOccurrence(e,!1)}}}(0,g._K)(O.ID,O),(0,g.Qr)(B),(0,T.Ic)(((e,t)=>{const i=e.getColor(I._Yy);i&&t.addRule(`.monaco-editor .detected-link-active { color: ${i} !important; }`)}))},51318:(e,t,i)=>{"use strict";i.d(t,{$:()=>R});var n=i(65321),o=i(70921),s=i(4850),r=i(48764),a=i(7317),l=i(56811),c=i(17301),d=i(4669),h=i(59365),u=i(21212),g=i(44742),p=i(5976);let m={};!function(){function e(e,t){t(m)}var t,i;e.amd=!0,t=this,i=function(e){function t(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}function n(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(){return{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}e.defaults={baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1};var s=/[&<>"']/,r=/[&<>"']/g,a=/[<>"']|&(?!#?\w+;)/,l=/[<>"']|&(?!#?\w+;)/g,c={"&":"&","<":"<",">":">",'"':""","'":"'"},d=function(e){return c[e]};function h(e,t){if(t){if(s.test(e))return e.replace(r,d)}else if(a.test(e))return e.replace(l,d);return e}var u=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function g(e){return e.replace(u,(function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))}var p=/(^|[^\[])\^/g;function m(e,t){e="string"==typeof e?e:e.source,t=t||"";var i={replace:function(t,n){return n=(n=n.source||n).replace(p,"$1"),e=e.replace(t,n),i},getRegex:function(){return new RegExp(e,t)}};return i}var f=/[^\w:]/g,_=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function v(e,t,i){if(e){var n;try{n=decodeURIComponent(g(i)).replace(f,"").toLowerCase()}catch(o){return null}if(0===n.indexOf("javascript:")||0===n.indexOf("vbscript:")||0===n.indexOf("data:"))return null}t&&!_.test(i)&&(i=function(e,t){b[" "+e]||(C.test(e)?b[" "+e]=e+"/":b[" "+e]=x(e,"/",!0));var i=-1===(e=b[" "+e]).indexOf(":");return"//"===t.substring(0,2)?i?t:e.replace(w,"$1")+t:"/"===t.charAt(0)?i?t:e.replace(y,"$1")+t:e+t}(t,i));try{i=encodeURI(i).replace(/%25/g,"%")}catch(o){return null}return i}var b={},C=/^[^:]+:\/*[^/]*$/,w=/^([^:]+:)[\s\S]*$/,y=/^([^:]+:\/*[^/]*)[\s\S]*$/,S={exec:function(){}};function L(e){for(var t,i,n=1;n<arguments.length;n++)for(i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}function k(e,t){var i=e.replace(/\|/g,(function(e,t,i){for(var n=!1,o=t;--o>=0&&"\\"===i[o];)n=!n;return n?"|":" |"})).split(/ \|/),n=0;if(i[0].trim()||i.shift(),i.length>0&&!i[i.length-1].trim()&&i.pop(),i.length>t)i.splice(t);else for(;i.length<t;)i.push("");for(;n<i.length;n++)i[n]=i[n].trim().replace(/\\\|/g,"|");return i}function x(e,t,i){var n=e.length;if(0===n)return"";for(var o=0;o<n;){var s=e.charAt(n-o-1);if(s!==t||i){if(s===t||!i)break;o++}else o++}return e.slice(0,n-o)}function D(e){e&&e.sanitize&&!e.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}function N(e,t){if(t<1)return"";for(var i="";t>1;)1&t&&(i+=e),t>>=1,e+=e;return i+e}function E(e,t,i,n){var o=t.href,s=t.title?h(t.title):null,r=e[1].replace(/\\([\[\]])/g,"$1");if("!"!==e[0].charAt(0)){n.state.inLink=!0;var a={type:"link",raw:i,href:o,title:s,text:r,tokens:n.inlineTokens(r,[])};return n.state.inLink=!1,a}return{type:"image",raw:i,href:o,title:s,text:h(r)}}var I=function(){function t(t){this.options=t||e.defaults}var i=t.prototype;return i.space=function(e){var t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}},i.code=function(e){var t=this.rules.block.code.exec(e);if(t){var i=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?i:x(i,"\n")}}},i.fences=function(e){var t=this.rules.block.fences.exec(e);if(t){var i=t[0],n=function(e,t){var i=e.match(/^(\s+)(?:```)/);if(null===i)return t;var n=i[1];return t.split("\n").map((function(e){var t=e.match(/^\s+/);return null===t?e:t[0].length>=n.length?e.slice(n.length):e})).join("\n")}(i,t[3]||"");return{type:"code",raw:i,lang:t[2]?t[2].trim():t[2],text:n}}},i.heading=function(e){var t=this.rules.block.heading.exec(e);if(t){var i=t[2].trim();if(/#$/.test(i)){var n=x(i,"#");this.options.pedantic?i=n.trim():n&&!/ $/.test(n)||(i=n.trim())}var o={type:"heading",raw:t[0],depth:t[1].length,text:i,tokens:[]};return this.lexer.inline(o.text,o.tokens),o}},i.hr=function(e){var t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}},i.blockquote=function(e){var t=this.rules.block.blockquote.exec(e);if(t){var i=t[0].replace(/^ *>[ \t]?/gm,"");return{type:"blockquote",raw:t[0],tokens:this.lexer.blockTokens(i,[]),text:i}}},i.list=function(e){var t=this.rules.block.list.exec(e);if(t){var i,o,s,r,a,l,c,d,h,u,g,p,m=t[1].trim(),f=m.length>1,_={type:"list",raw:"",ordered:f,start:f?+m.slice(0,-1):"",loose:!1,items:[]};m=f?"\\d{1,9}\\"+m.slice(-1):"\\"+m,this.options.pedantic&&(m=f?m:"[*+-]");for(var v=new RegExp("^( {0,3}"+m+")((?:[\t ][^\\n]*)?(?:\\n|$))");e&&(p=!1,t=v.exec(e))&&!this.rules.block.hr.test(e);){if(i=t[0],e=e.substring(i.length),d=t[2].split("\n",1)[0],h=e.split("\n",1)[0],this.options.pedantic?(r=2,g=d.trimLeft()):(r=(r=t[2].search(/[^ ]/))>4?1:r,g=d.slice(r),r+=t[1].length),l=!1,!d&&/^ *$/.test(h)&&(i+=h+"\n",e=e.substring(h.length+1),p=!0),!p)for(var b=new RegExp("^ {0,"+Math.min(3,r-1)+"}(?:[*+-]|\\d{1,9}[.)])((?: [^\\n]*)?(?:\\n|$))"),C=new RegExp("^ {0,"+Math.min(3,r-1)+"}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)");e&&(d=u=e.split("\n",1)[0],this.options.pedantic&&(d=d.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!b.test(d))&&!C.test(e);){if(d.search(/[^ ]/)>=r||!d.trim())g+="\n"+d.slice(r);else{if(l)break;g+="\n"+d}l||d.trim()||(l=!0),i+=u+"\n",e=e.substring(u.length+1)}_.loose||(c?_.loose=!0:/\n *\n *$/.test(i)&&(c=!0)),this.options.gfm&&(o=/^\[[ xX]\] /.exec(g))&&(s="[ ] "!==o[0],g=g.replace(/^\[[ xX]\] +/,"")),_.items.push({type:"list_item",raw:i,task:!!o,checked:s,loose:!1,text:g}),_.raw+=i}_.items[_.items.length-1].raw=i.trimRight(),_.items[_.items.length-1].text=g.trimRight(),_.raw=_.raw.trimRight();var w=_.items.length;for(a=0;a<w;a++){this.lexer.state.top=!1,_.items[a].tokens=this.lexer.blockTokens(_.items[a].text,[]);var y=_.items[a].tokens.filter((function(e){return"space"===e.type})),S=y.every((function(e){for(var t,i=0,o=n(e.raw.split(""));!(t=o()).done;)if("\n"===t.value&&(i+=1),i>1)return!0;return!1}));!_.loose&&y.length&&S&&(_.loose=!0,_.items[a].loose=!0)}return _}},i.html=function(e){var t=this.rules.block.html.exec(e);if(t){var i={type:"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:t[0]};return this.options.sanitize&&(i.type="paragraph",i.text=this.options.sanitizer?this.options.sanitizer(t[0]):h(t[0]),i.tokens=[],this.lexer.inline(i.text,i.tokens)),i}},i.def=function(e){var t=this.rules.block.def.exec(e);if(t)return t[3]&&(t[3]=t[3].substring(1,t[3].length-1)),{type:"def",tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}},i.table=function(e){var t=this.rules.block.table.exec(e);if(t){var i={type:"table",header:k(t[1]).map((function(e){return{text:e}})),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:t[3]&&t[3].trim()?t[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(i.header.length===i.align.length){i.raw=t[0];var n,o,s,r,a=i.align.length;for(n=0;n<a;n++)/^ *-+: *$/.test(i.align[n])?i.align[n]="right":/^ *:-+: *$/.test(i.align[n])?i.align[n]="center":/^ *:-+ *$/.test(i.align[n])?i.align[n]="left":i.align[n]=null;for(a=i.rows.length,n=0;n<a;n++)i.rows[n]=k(i.rows[n],i.header.length).map((function(e){return{text:e}}));for(a=i.header.length,o=0;o<a;o++)i.header[o].tokens=[],this.lexer.inline(i.header[o].text,i.header[o].tokens);for(a=i.rows.length,o=0;o<a;o++)for(r=i.rows[o],s=0;s<r.length;s++)r[s].tokens=[],this.lexer.inline(r[s].text,r[s].tokens);return i}}},i.lheading=function(e){var t=this.rules.block.lheading.exec(e);if(t){var i={type:"heading",raw:t[0],depth:"="===t[2].charAt(0)?1:2,text:t[1],tokens:[]};return this.lexer.inline(i.text,i.tokens),i}},i.paragraph=function(e){var t=this.rules.block.paragraph.exec(e);if(t){var i={type:"paragraph",raw:t[0],text:"\n"===t[1].charAt(t[1].length-1)?t[1].slice(0,-1):t[1],tokens:[]};return this.lexer.inline(i.text,i.tokens),i}},i.text=function(e){var t=this.rules.block.text.exec(e);if(t){var i={type:"text",raw:t[0],text:t[0],tokens:[]};return this.lexer.inline(i.text,i.tokens),i}},i.escape=function(e){var t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:h(t[1])}},i.tag=function(e){var t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&/^<a /i.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):h(t[0]):t[0]}},i.link=function(e){var t=this.rules.inline.link.exec(e);if(t){var i=t[2].trim();if(!this.options.pedantic&&/^</.test(i)){if(!/>$/.test(i))return;var n=x(i.slice(0,-1),"\\");if((i.length-n.length)%2==0)return}else{var o=function(e,t){if(-1===e.indexOf(t[1]))return-1;for(var i=e.length,n=0,o=0;o<i;o++)if("\\"===e[o])o++;else if(e[o]===t[0])n++;else if(e[o]===t[1]&&--n<0)return o;return-1}(t[2],"()");if(o>-1){var s=(0===t[0].indexOf("!")?5:4)+t[1].length+o;t[2]=t[2].substring(0,o),t[0]=t[0].substring(0,s).trim(),t[3]=""}}var r=t[2],a="";if(this.options.pedantic){var l=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r);l&&(r=l[1],a=l[3])}else a=t[3]?t[3].slice(1,-1):"";return r=r.trim(),/^</.test(r)&&(r=this.options.pedantic&&!/>$/.test(i)?r.slice(1):r.slice(1,-1)),E(t,{href:r?r.replace(this.rules.inline._escapes,"$1"):r,title:a?a.replace(this.rules.inline._escapes,"$1"):a},t[0],this.lexer)}},i.reflink=function(e,t){var i;if((i=this.rules.inline.reflink.exec(e))||(i=this.rules.inline.nolink.exec(e))){var n=(i[2]||i[1]).replace(/\s+/g," ");if(!(n=t[n.toLowerCase()])||!n.href){var o=i[0].charAt(0);return{type:"text",raw:o,text:o}}return E(i,n,i[0],this.lexer)}},i.emStrong=function(e,t,i){void 0===i&&(i="");var n=this.rules.inline.emStrong.lDelim.exec(e);if(n&&(!n[3]||!i.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\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\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\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\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\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-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\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\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var o=n[1]||n[2]||"";if(!o||o&&(""===i||this.rules.inline.punctuation.exec(i))){var s,r,a=n[0].length-1,l=a,c=0,d="*"===n[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(d.lastIndex=0,t=t.slice(-1*e.length+a);null!=(n=d.exec(t));)if(s=n[1]||n[2]||n[3]||n[4]||n[5]||n[6])if(r=s.length,n[3]||n[4])l+=r;else if(!((n[5]||n[6])&&a%3)||(a+r)%3){if(!((l-=r)>0)){if(r=Math.min(r,r+l+c),Math.min(a,r)%2){var h=e.slice(1,a+n.index+r);return{type:"em",raw:e.slice(0,a+n.index+r+1),text:h,tokens:this.lexer.inlineTokens(h,[])}}var u=e.slice(2,a+n.index+r-1);return{type:"strong",raw:e.slice(0,a+n.index+r+1),text:u,tokens:this.lexer.inlineTokens(u,[])}}}else c+=r}}},i.codespan=function(e){var t=this.rules.inline.code.exec(e);if(t){var i=t[2].replace(/\n/g," "),n=/[^ ]/.test(i),o=/^ /.test(i)&&/ $/.test(i);return n&&o&&(i=i.substring(1,i.length-1)),i=h(i,!0),{type:"codespan",raw:t[0],text:i}}},i.br=function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}},i.del=function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2],[])}},i.autolink=function(e,t){var i,n,o=this.rules.inline.autolink.exec(e);if(o)return n="@"===o[2]?"mailto:"+(i=h(this.options.mangle?t(o[1]):o[1])):i=h(o[1]),{type:"link",raw:o[0],text:i,href:n,tokens:[{type:"text",raw:i,text:i}]}},i.url=function(e,t){var i;if(i=this.rules.inline.url.exec(e)){var n,o;if("@"===i[2])o="mailto:"+(n=h(this.options.mangle?t(i[0]):i[0]));else{var s;do{s=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0]}while(s!==i[0]);n=h(i[0]),o="www."===i[1]?"http://"+n:n}return{type:"link",raw:i[0],text:n,href:o,tokens:[{type:"text",raw:n,text:n}]}}},i.inlineText=function(e,t){var i,n=this.rules.inline.text.exec(e);if(n)return i=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):h(n[0]):n[0]:h(this.options.smartypants?t(n[0]):n[0]),{type:"text",raw:n[0],text:i}},t}(),T={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?<?([^\s>]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:S,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};T.def=m(T.def).replace("label",T._label).replace("title",T._title).getRegex(),T.bullet=/(?:[*+-]|\d{1,9}[.)])/,T.listItemStart=m(/^( *)(bull) */).replace("bull",T.bullet).getRegex(),T.list=m(T.list).replace(/bull/g,T.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+T.def.source+")").getRegex(),T._tag="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|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",T._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/,T.html=m(T.html,"i").replace("comment",T._comment).replace("tag",T._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),T.paragraph=m(T._paragraph).replace("hr",T.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",T._tag).getRegex(),T.blockquote=m(T.blockquote).replace("paragraph",T.paragraph).getRegex(),T.normal=L({},T),T.gfm=L({},T.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),T.gfm.table=m(T.gfm.table).replace("hr",T.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",T._tag).getRegex(),T.gfm.paragraph=m(T._paragraph).replace("hr",T.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",T.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",T._tag).getRegex(),T.pedantic=L({},T.normal,{html:m("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",T._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:S,paragraph:m(T.normal._paragraph).replace("hr",T.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",T.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var M={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:S,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[^*]+(?=[^*])|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:S,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/};function A(e){return e.replace(/---/g,"\u2014").replace(/--/g,"\u2013").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1\u2018").replace(/'/g,"\u2019").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1\u201c").replace(/"/g,"\u201d").replace(/\.{3}/g,"\u2026")}function R(e){var t,i,n="",o=e.length;for(t=0;t<o;t++)i=e.charCodeAt(t),Math.random()>.5&&(i="x"+i.toString(16)),n+="&#"+i+";";return n}M._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",M.punctuation=m(M.punctuation).replace(/punctuation/g,M._punctuation).getRegex(),M.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,M.escapedEmSt=/\\\*|\\_/g,M._comment=m(T._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),M.emStrong.lDelim=m(M.emStrong.lDelim).replace(/punct/g,M._punctuation).getRegex(),M.emStrong.rDelimAst=m(M.emStrong.rDelimAst,"g").replace(/punct/g,M._punctuation).getRegex(),M.emStrong.rDelimUnd=m(M.emStrong.rDelimUnd,"g").replace(/punct/g,M._punctuation).getRegex(),M._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,M._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,M._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,M.autolink=m(M.autolink).replace("scheme",M._scheme).replace("email",M._email).getRegex(),M._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,M.tag=m(M.tag).replace("comment",M._comment).replace("attribute",M._attribute).getRegex(),M._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,M._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,M._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,M.link=m(M.link).replace("label",M._label).replace("href",M._href).replace("title",M._title).getRegex(),M.reflink=m(M.reflink).replace("label",M._label).replace("ref",T._label).getRegex(),M.nolink=m(M.nolink).replace("ref",T._label).getRegex(),M.reflinkSearch=m(M.reflinkSearch,"g").replace("reflink",M.reflink).replace("nolink",M.nolink).getRegex(),M.normal=L({},M),M.pedantic=L({},M.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:m(/^!?\[(label)\]\((.*?)\)/).replace("label",M._label).getRegex(),reflink:m(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",M._label).getRegex()}),M.gfm=L({},M.normal,{escape:m(M.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/}),M.gfm.url=m(M.gfm.url,"i").replace("email",M.gfm._extended_email).getRegex(),M.breaks=L({},M.gfm,{br:m(M.br).replace("{2,}","*").getRegex(),text:m(M.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});var O=function(){function i(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||e.defaults,this.options.tokenizer=this.options.tokenizer||new I,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};var i={block:T.normal,inline:M.normal};this.options.pedantic?(i.block=T.pedantic,i.inline=M.pedantic):this.options.gfm&&(i.block=T.gfm,this.options.breaks?i.inline=M.breaks:i.inline=M.gfm),this.tokenizer.rules=i}i.lex=function(e,t){return new i(t).lex(e)},i.lexInline=function(e,t){return new i(t).inlineTokens(e)};var n,o,s,r=i.prototype;return r.lex=function(e){var t;for(e=e.replace(/\r\n|\r/g,"\n"),this.blockTokens(e,this.tokens);t=this.inlineQueue.shift();)this.inlineTokens(t.src,t.tokens);return this.tokens},r.blockTokens=function(e,t){var i,n,o,s,r=this;for(void 0===t&&(t=[]),e=this.options.pedantic?e.replace(/\t/g," ").replace(/^ +$/gm,""):e.replace(/^( *)(\t+)/gm,(function(e,t,i){return t+" ".repeat(i.length)}));e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some((function(n){return!!(i=n.call({lexer:r},e,t))&&(e=e.substring(i.raw.length),t.push(i),!0)}))))if(i=this.tokenizer.space(e))e=e.substring(i.raw.length),1===i.raw.length&&t.length>0?t[t.length-1].raw+="\n":t.push(i);else if(i=this.tokenizer.code(e))e=e.substring(i.raw.length),!(n=t[t.length-1])||"paragraph"!==n.type&&"text"!==n.type?t.push(i):(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(i=this.tokenizer.fences(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.heading(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.hr(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.blockquote(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.list(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.html(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.def(e))e=e.substring(i.raw.length),!(n=t[t.length-1])||"paragraph"!==n.type&&"text"!==n.type?this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title}):(n.raw+="\n"+i.raw,n.text+="\n"+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(i=this.tokenizer.table(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.lheading(e))e=e.substring(i.raw.length),t.push(i);else if(o=e,this.options.extensions&&this.options.extensions.startBlock&&function(){var t=1/0,i=e.slice(1),n=void 0;r.options.extensions.startBlock.forEach((function(e){"number"==typeof(n=e.call({lexer:this},i))&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(o=e.substring(0,t+1))}(),this.state.top&&(i=this.tokenizer.paragraph(o)))n=t[t.length-1],s&&"paragraph"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(i),s=o.length!==e.length,e=e.substring(i.raw.length);else if(i=this.tokenizer.text(e))e=e.substring(i.raw.length),(n=t[t.length-1])&&"text"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(i);else if(e){var a="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(a);break}throw new Error(a)}return this.state.top=!0,t},r.inline=function(e,t){this.inlineQueue.push({src:e,tokens:t})},r.inlineTokens=function(e,t){var i,n,o,s=this;void 0===t&&(t=[]);var r,a,l,c=e;if(this.tokens.links){var d=Object.keys(this.tokens.links);if(d.length>0)for(;null!=(r=this.tokenizer.rules.inline.reflinkSearch.exec(c));)d.includes(r[0].slice(r[0].lastIndexOf("[")+1,-1))&&(c=c.slice(0,r.index)+"["+N("a",r[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(r=this.tokenizer.rules.inline.blockSkip.exec(c));)c=c.slice(0,r.index)+"["+N("a",r[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(r=this.tokenizer.rules.inline.escapedEmSt.exec(c));)c=c.slice(0,r.index)+"++"+c.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(a||(l=""),a=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((function(n){return!!(i=n.call({lexer:s},e,t))&&(e=e.substring(i.raw.length),t.push(i),!0)}))))if(i=this.tokenizer.escape(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.tag(e))e=e.substring(i.raw.length),(n=t[t.length-1])&&"text"===i.type&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(i=this.tokenizer.link(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(i.raw.length),(n=t[t.length-1])&&"text"===i.type&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(i=this.tokenizer.emStrong(e,c,l))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.codespan(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.br(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.del(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.autolink(e,R))e=e.substring(i.raw.length),t.push(i);else if(this.state.inLink||!(i=this.tokenizer.url(e,R))){if(o=e,this.options.extensions&&this.options.extensions.startInline&&function(){var t=1/0,i=e.slice(1),n=void 0;s.options.extensions.startInline.forEach((function(e){"number"==typeof(n=e.call({lexer:this},i))&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(o=e.substring(0,t+1))}(),i=this.tokenizer.inlineText(o,A))e=e.substring(i.raw.length),"_"!==i.raw.slice(-1)&&(l=i.raw.slice(-1)),a=!0,(n=t[t.length-1])&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(e){var h="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(h);break}throw new Error(h)}}else e=e.substring(i.raw.length),t.push(i);return t},n=i,s=[{key:"rules",get:function(){return{block:T,inline:M}}}],(o=null)&&t(n.prototype,o),s&&t(n,s),Object.defineProperty(n,"prototype",{writable:!1}),i}(),P=function(){function t(t){this.options=t||e.defaults}var i=t.prototype;return i.code=function(e,t,i){var n=(t||"").match(/\S*/)[0];if(this.options.highlight){var o=this.options.highlight(e,n);null!=o&&o!==e&&(i=!0,e=o)}return e=e.replace(/\n$/,"")+"\n",n?'<pre><code class="'+this.options.langPrefix+h(n,!0)+'">'+(i?e:h(e,!0))+"</code></pre>\n":"<pre><code>"+(i?e:h(e,!0))+"</code></pre>\n"},i.blockquote=function(e){return"<blockquote>\n"+e+"</blockquote>\n"},i.html=function(e){return e},i.heading=function(e,t,i,n){return this.options.headerIds?"<h"+t+' id="'+(this.options.headerPrefix+n.slug(i))+'">'+e+"</h"+t+">\n":"<h"+t+">"+e+"</h"+t+">\n"},i.hr=function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"},i.list=function(e,t,i){var n=t?"ol":"ul";return"<"+n+(t&&1!==i?' start="'+i+'"':"")+">\n"+e+"</"+n+">\n"},i.listitem=function(e){return"<li>"+e+"</li>\n"},i.checkbox=function(e){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "},i.paragraph=function(e){return"<p>"+e+"</p>\n"},i.table=function(e,t){return t&&(t="<tbody>"+t+"</tbody>"),"<table>\n<thead>\n"+e+"</thead>\n"+t+"</table>\n"},i.tablerow=function(e){return"<tr>\n"+e+"</tr>\n"},i.tablecell=function(e,t){var i=t.header?"th":"td";return(t.align?"<"+i+' align="'+t.align+'">':"<"+i+">")+e+"</"+i+">\n"},i.strong=function(e){return"<strong>"+e+"</strong>"},i.em=function(e){return"<em>"+e+"</em>"},i.codespan=function(e){return"<code>"+e+"</code>"},i.br=function(){return this.options.xhtml?"<br/>":"<br>"},i.del=function(e){return"<del>"+e+"</del>"},i.link=function(e,t,i){if(null===(e=v(this.options.sanitize,this.options.baseUrl,e)))return i;var n='<a href="'+h(e)+'"';return t&&(n+=' title="'+t+'"'),n+=">"+i+"</a>"},i.image=function(e,t,i){if(null===(e=v(this.options.sanitize,this.options.baseUrl,e)))return i;var n='<img src="'+e+'" alt="'+i+'"';return t&&(n+=' title="'+t+'"'),n+=this.options.xhtml?"/>":">"},i.text=function(e){return e},t}(),F=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,i){return""+i},t.image=function(e,t,i){return""+i},t.br=function(){return""},e}(),B=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},t.getNextSafeSlug=function(e,t){var i=e,n=0;if(this.seen.hasOwnProperty(i)){n=this.seen[e];do{i=e+"-"+ ++n}while(this.seen.hasOwnProperty(i))}return t||(this.seen[e]=n,this.seen[i]=0),i},t.slug=function(e,t){void 0===t&&(t={});var i=this.serialize(e);return this.getNextSafeSlug(i,t.dryrun)},e}(),V=function(){function t(t){this.options=t||e.defaults,this.options.renderer=this.options.renderer||new P,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new F,this.slugger=new B}t.parse=function(e,i){return new t(i).parse(e)},t.parseInline=function(e,i){return new t(i).parseInline(e)};var i=t.prototype;return i.parse=function(e,t){void 0===t&&(t=!0);var i,n,o,s,r,a,l,c,d,h,u,p,m,f,_,v,b,C,w,y="",S=e.length;for(i=0;i<S;i++)if(h=e[i],!(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[h.type])||!1===(w=this.options.extensions.renderers[h.type].call({parser:this},h))&&["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(h.type))switch(h.type){case"space":continue;case"hr":y+=this.renderer.hr();continue;case"heading":y+=this.renderer.heading(this.parseInline(h.tokens),h.depth,g(this.parseInline(h.tokens,this.textRenderer)),this.slugger);continue;case"code":y+=this.renderer.code(h.text,h.lang,h.escaped);continue;case"table":for(c="",l="",s=h.header.length,n=0;n<s;n++)l+=this.renderer.tablecell(this.parseInline(h.header[n].tokens),{header:!0,align:h.align[n]});for(c+=this.renderer.tablerow(l),d="",s=h.rows.length,n=0;n<s;n++){for(l="",r=(a=h.rows[n]).length,o=0;o<r;o++)l+=this.renderer.tablecell(this.parseInline(a[o].tokens),{header:!1,align:h.align[o]});d+=this.renderer.tablerow(l)}y+=this.renderer.table(c,d);continue;case"blockquote":d=this.parse(h.tokens),y+=this.renderer.blockquote(d);continue;case"list":for(u=h.ordered,p=h.start,m=h.loose,s=h.items.length,d="",n=0;n<s;n++)v=(_=h.items[n]).checked,b=_.task,f="",_.task&&(C=this.renderer.checkbox(v),m?_.tokens.length>0&&"paragraph"===_.tokens[0].type?(_.tokens[0].text=C+" "+_.tokens[0].text,_.tokens[0].tokens&&_.tokens[0].tokens.length>0&&"text"===_.tokens[0].tokens[0].type&&(_.tokens[0].tokens[0].text=C+" "+_.tokens[0].tokens[0].text)):_.tokens.unshift({type:"text",text:C}):f+=C),f+=this.parse(_.tokens,m),d+=this.renderer.listitem(f,b,v);y+=this.renderer.list(d,u,p);continue;case"html":y+=this.renderer.html(h.text);continue;case"paragraph":y+=this.renderer.paragraph(this.parseInline(h.tokens));continue;case"text":for(d=h.tokens?this.parseInline(h.tokens):h.text;i+1<S&&"text"===e[i+1].type;)d+="\n"+((h=e[++i]).tokens?this.parseInline(h.tokens):h.text);y+=t?this.renderer.paragraph(d):d;continue;default:var L='Token with "'+h.type+'" type was not found.';if(this.options.silent)return void console.error(L);throw new Error(L)}else y+=w||"";return y},i.parseInline=function(e,t){t=t||this.renderer;var i,n,o,s="",r=e.length;for(i=0;i<r;i++)if(n=e[i],!(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[n.type])||!1===(o=this.options.extensions.renderers[n.type].call({parser:this},n))&&["escape","html","link","image","strong","em","codespan","br","del","text"].includes(n.type))switch(n.type){case"escape":case"text":s+=t.text(n.text);break;case"html":s+=t.html(n.text);break;case"link":s+=t.link(n.href,n.title,this.parseInline(n.tokens,t));break;case"image":s+=t.image(n.href,n.title,n.text);break;case"strong":s+=t.strong(this.parseInline(n.tokens,t));break;case"em":s+=t.em(this.parseInline(n.tokens,t));break;case"codespan":s+=t.codespan(n.text);break;case"br":s+=t.br();break;case"del":s+=t.del(this.parseInline(n.tokens,t));break;default:var a='Token with "'+n.type+'" type was not found.';if(this.options.silent)return void console.error(a);throw new Error(a)}else s+=o||"";return s},t}();function W(e,t,i){if(null==e)throw new Error("marked(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");if("function"==typeof t&&(i=t,t=null),D(t=L({},W.defaults,t||{})),i){var n,o=t.highlight;try{n=O.lex(e,t)}catch(l){return i(l)}var s=function(e){var s;if(!e)try{t.walkTokens&&W.walkTokens(n,t.walkTokens),s=V.parse(n,t)}catch(l){e=l}return t.highlight=o,e?i(e):i(null,s)};if(!o||o.length<3)return s();if(delete t.highlight,!n.length)return s();var r=0;return W.walkTokens(n,(function(e){"code"===e.type&&(r++,setTimeout((function(){o(e.text,e.lang,(function(t,i){if(t)return s(t);null!=i&&i!==e.text&&(e.text=i,e.escaped=!0),0==--r&&s()}))}),0))})),void(0===r&&s())}try{var a=O.lex(e,t);return t.walkTokens&&W.walkTokens(a,t.walkTokens),V.parse(a,t)}catch(l){if(l.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"<p>An error occurred:</p><pre>"+h(l.message+"",!0)+"</pre>";throw l}}W.options=W.setOptions=function(t){var i;return L(W.defaults,t),i=W.defaults,e.defaults=i,W},W.getDefaults=o,W.defaults=e.defaults,W.use=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var n,o=L.apply(void 0,[{}].concat(t)),s=W.defaults.extensions||{renderers:{},childTokens:{}};t.forEach((function(e){if(e.extensions&&(n=!0,e.extensions.forEach((function(e){if(!e.name)throw new Error("extension name required");if(e.renderer){var t=s.renderers?s.renderers[e.name]:null;s.renderers[e.name]=t?function(){for(var i=arguments.length,n=new Array(i),o=0;o<i;o++)n[o]=arguments[o];var s=e.renderer.apply(this,n);return!1===s&&(s=t.apply(this,n)),s}:e.renderer}if(e.tokenizer){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw new Error("extension level must be 'block' or 'inline'");s[e.level]?s[e.level].unshift(e.tokenizer):s[e.level]=[e.tokenizer],e.start&&("block"===e.level?s.startBlock?s.startBlock.push(e.start):s.startBlock=[e.start]:"inline"===e.level&&(s.startInline?s.startInline.push(e.start):s.startInline=[e.start]))}e.childTokens&&(s.childTokens[e.name]=e.childTokens)}))),e.renderer&&function(){var t=W.defaults.renderer||new P,i=function(i){var n=t[i];t[i]=function(){for(var o=arguments.length,s=new Array(o),r=0;r<o;r++)s[r]=arguments[r];var a=e.renderer[i].apply(t,s);return!1===a&&(a=n.apply(t,s)),a}};for(var n in e.renderer)i(n);o.renderer=t}(),e.tokenizer&&function(){var t=W.defaults.tokenizer||new I,i=function(i){var n=t[i];t[i]=function(){for(var o=arguments.length,s=new Array(o),r=0;r<o;r++)s[r]=arguments[r];var a=e.tokenizer[i].apply(t,s);return!1===a&&(a=n.apply(t,s)),a}};for(var n in e.tokenizer)i(n);o.tokenizer=t}(),e.walkTokens){var t=W.defaults.walkTokens;o.walkTokens=function(i){e.walkTokens.call(this,i),t&&t.call(this,i)}}n&&(o.extensions=s),W.setOptions(o)}))},W.walkTokens=function(e,t){for(var i,o=function(){var e=i.value;switch(t.call(W,e),e.type){case"table":for(var o,s=n(e.header);!(o=s()).done;){var r=o.value;W.walkTokens(r.tokens,t)}for(var a,l=n(e.rows);!(a=l()).done;)for(var c,d=n(a.value);!(c=d()).done;){var h=c.value;W.walkTokens(h.tokens,t)}break;case"list":W.walkTokens(e.items,t);break;default:W.defaults.extensions&&W.defaults.extensions.childTokens&&W.defaults.extensions.childTokens[e.type]?W.defaults.extensions.childTokens[e.type].forEach((function(i){W.walkTokens(e[i],t)})):e.tokens&&W.walkTokens(e.tokens,t)}},s=n(e);!(i=s()).done;)o()},W.parseInline=function(e,t){if(null==e)throw new Error("marked.parseInline(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");D(t=L({},W.defaults,t||{}));try{var i=O.lexInline(e,t);return t.walkTokens&&W.walkTokens(i,t.walkTokens),V.parseInline(i,t)}catch(n){if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"<p>An error occurred:</p><pre>"+h(n.message+"",!0)+"</pre>";throw n}},W.Parser=V,W.parser=V.parse,W.Renderer=P,W.TextRenderer=F,W.Lexer=O,W.lexer=O.lex,W.Tokenizer=I,W.Slugger=B,W.parse=W;var H=W.options,z=W.setOptions,j=W.use,U=W.walkTokens,K=W.parseInline,$=W,q=V.parse,G=O.lex;e.Lexer=O,e.Parser=V,e.Renderer=P,e.Slugger=B,e.TextRenderer=F,e.Tokenizer=I,e.getDefaults=o,e.lexer=G,e.marked=W,e.options=H,e.parse=$,e.parseInline=K,e.parser=q,e.setOptions=z,e.use=j,e.walkTokens=U,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports?i(exports):e.amd?e(0,i):i((t="undefined"!=typeof globalThis?globalThis:t||self).marked={})}();var f=m||exports,_=i(23897),v=i(66663),b=i(36248),C=i(95935),w=i(97295),y=i(70666);function S(e,t){return/^\w[\w\d+.-]*:/.test(t)?t:e.path.endsWith("/")?(0,C.i3)(e,t).toString():(0,C.i3)((0,C.XX)(e),t).toString()}function L(e,t){const{config:i,allowedSchemes:s}=function(e){const t=[v.lg.http,v.lg.https,v.lg.mailto,v.lg.data,v.lg.file,v.lg.vscodeFileResource,v.lg.vscodeRemote,v.lg.vscodeRemoteResource];e.isTrusted&&t.push(v.lg.command);return{config:{ALLOWED_TAGS:["ul","li","p","b","i","code","blockquote","ol","h1","h2","h3","h4","h5","h6","hr","em","pre","table","thead","tbody","tr","th","td","div","del","a","strong","br","img","span"],ALLOWED_ATTR:["href","data-href","target","title","src","alt","class","style","data-code","width","height","align"],ALLOW_UNKNOWN_PROTOCOLS:!0},allowedSchemes:t}}(e);o.v5("uponSanitizeAttribute",((e,t)=>{if("style"!==t.attrName&&"class"!==t.attrName);else{if("SPAN"===e.tagName){if("style"===t.attrName)return void(t.keepAttr=/^(color\:#[0-9a-fA-F]+;)?(background-color\:#[0-9a-fA-F]+;)?$/.test(t.attrValue));if("class"===t.attrName)return void(t.keepAttr=/^codicon codicon-[a-z\-]+( codicon-modifier-[a-z\-]+)?$/.test(t.attrValue))}t.keepAttr=!1}}));const r=n._F(s);try{return o.Nw(t,Object.assign(Object.assign({},i),{RETURN_TRUSTED_TYPE:!0}))}finally{o.ok("uponSanitizeAttribute"),r.dispose()}}var k,x=i(50988),D=i(72042),N=i(82963),E=i(52136),I=i(68801),T=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},M=function(e,t){return function(i,n){t(i,n,e)}},A=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let R=class e{constructor(e,t,i){this._options=e,this._languageService=t,this._openerService=i,this._onDidRenderAsync=new d.Q5,this.onDidRenderAsync=this._onDidRenderAsync.event}dispose(){this._onDidRenderAsync.dispose()}render(e,t,i){if(!e){return{element:document.createElement("span"),dispose:()=>{}}}const o=new p.SL,m=o.add(function(e,t={},i={}){var o;const m=new p.SL;let C=!1;const k=(0,r.az)(t),x=function(t){let i;try{i=(0,_.Q)(decodeURIComponent(t))}catch(n){}return i?(i=(0,b.rs)(i,(t=>e.uris&&e.uris[t]?y.o.revive(e.uris[t]):void 0)),encodeURIComponent(JSON.stringify(i))):t},D=function(t,i){const n=e.uris&&e.uris[t];let o=y.o.revive(n);return i?t.startsWith(v.lg.data+":")?t:(o||(o=y.o.parse(t)),v.Gi.asBrowserUri(o).toString(!0)):o?y.o.parse(t).toString()===o.toString()?t:(o.query&&(o=o.with({query:x(o.query)})),o.toString()):t},N=new f.Renderer;N.image=(e,t,i)=>{let n=[],o=[];return e&&(({href:e,dimensions:n}=(0,h.v1)(e)),o.push(`src="${(0,h.d9)(e)}"`)),i&&o.push(`alt="${(0,h.d9)(i)}"`),t&&o.push(`title="${(0,h.d9)(t)}"`),n.length&&(o=o.concat(n)),"<img "+o.join(" ")+">"},N.link=(e,t,i)=>"string"!=typeof e?"":(e===i&&(i=(0,h.oR)(i)),t="string"==typeof t?(0,h.d9)((0,h.oR)(t)):"",`<a href="${e=(e=(0,h.oR)(e)).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}" title="${t||e}">${i}</a>`),N.paragraph=e=>`<p>${e}</p>`;const E=[];if(t.codeBlockRenderer&&(N.code=(e,i)=>{const n=g.a.nextId(),o=t.codeBlockRenderer(null!=i?i:"",e);return E.push(o.then((e=>[n,e]))),`<div class="code" data-code="${n}">${(0,w.YU)(e)}</div>`}),t.actionHandler){const i=t.actionHandler.disposables.add(new s.Y(k,"click")),n=t.actionHandler.disposables.add(new s.Y(k,"auxclick"));t.actionHandler.disposables.add(d.ju.any(i.event,n.event)((i=>{const n=new a.n(i);if(!n.leftButton&&!n.middleButton)return;let o=n.target;if("A"===o.tagName||(o=o.parentElement,o&&"A"===o.tagName))try{let i=o.dataset.href;i&&(e.baseUri&&(i=S(y.o.from(e.baseUri),i)),t.actionHandler.callback(i,n))}catch(s){(0,c.dL)(s)}finally{n.preventDefault()}})))}e.supportHtml||(i.sanitizer=t=>(e.isTrusted?t.match(/^(<span[^>]+>)|(<\/\s*span>)$/):void 0)?t:"",i.sanitize=!0,i.silent=!0),i.renderer=N;let I=null!==(o=e.value)&&void 0!==o?o:"";I.length>1e5&&(I=`${I.substr(0,1e5)}\u2026`),e.supportThemeIcons&&(I=(0,u.f$)(I));let T=f.parse(I,i);e.supportThemeIcons&&(T=(0,l.T)(T).map((e=>"string"==typeof e?e:e.outerHTML)).join(""));const M=(new DOMParser).parseFromString(L(e,T),"text/html");if(M.body.querySelectorAll("img").forEach((t=>{const i=t.getAttribute("src");if(i){let o=i;try{e.baseUri&&(o=S(y.o.from(e.baseUri),o))}catch(n){}t.src=D(o,!0)}})),M.body.querySelectorAll("a").forEach((t=>{const i=t.getAttribute("href");if(t.setAttribute("href",""),!i||/^data:|javascript:/i.test(i)||/^command:/i.test(i)&&!e.isTrusted||/^command:(\/\/\/)?_workbench\.downloadResource/i.test(i))t.replaceWith(...t.childNodes);else{let n=D(i,!1);e.baseUri&&(n=S(y.o.from(e.baseUri),i)),t.dataset.href=n}})),k.innerHTML=L(e,M.body.innerHTML),E.length>0&&Promise.all(E).then((e=>{var i,o;if(C)return;const s=new Map(e),r=k.querySelectorAll("div[data-code]");for(const t of r){const e=s.get(null!==(i=t.dataset.code)&&void 0!==i?i:"");e&&n.mc(t,e)}null===(o=t.asyncRenderCallback)||void 0===o||o.call(t)})),t.asyncRenderCallback)for(const s of k.getElementsByTagName("img")){const e=m.add(n.nm(s,"load",(()=>{e.dispose(),t.asyncRenderCallback()})))}return{element:k,dispose:()=>{C=!0,m.dispose()}}}(e,Object.assign(Object.assign({},this._getRenderOptions(e,o)),t),i));return{element:m.element,dispose:()=>o.dispose()}}_getRenderOptions(t,i){return{codeBlockRenderer:(t,i)=>A(this,void 0,void 0,(function*(){var n,o,s;let r;t?r=this._languageService.getLanguageIdByLanguageName(t):this._options.editor&&(r=null===(n=this._options.editor.getModel())||void 0===n?void 0:n.getLanguageId()),r||(r=I.bd);const a=yield(0,N.C2)(this._languageService,i,r),l=document.createElement("span");if(l.innerHTML=null!==(s=null===(o=e._ttpTokenizer)||void 0===o?void 0:o.createHTML(a))&&void 0!==s?s:a,this._options.editor){const e=this._options.editor.getOption(46);(0,E.N)(l,e)}else this._options.codeBlockFontFamily&&(l.style.fontFamily=this._options.codeBlockFontFamily);return void 0!==this._options.codeBlockFontSize&&(l.style.fontSize=this._options.codeBlockFontSize),l})),asyncRenderCallback:()=>this._onDidRenderAsync.fire(),actionHandler:{callback:e=>this._openerService.open(e,{fromUserGesture:!0,allowContributedOpeners:!0,allowCommands:t.isTrusted}).catch(c.dL),disposables:i}}}};R._ttpTokenizer=null===(k=window.trustedTypes)||void 0===k?void 0:k.createPolicy("tokenizeToString",{createHTML:e=>e}),R=T([M(1,D.O),M(2,x.v4)],R)},27753:(e,t,i)=>{"use strict";i.d(t,{O:()=>u});var n=i(85152),o=i(15393),s=i(5976),r=i(16830),a=i(24314),l=i(63580),c=i(38819),d=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},h=function(e,t){return function(i,n){t(i,n,e)}};let u=class e{constructor(t,i){this._messageWidget=new s.XK,this._messageListeners=new s.SL,this._editor=t,this._visible=e.MESSAGE_VISIBLE.bindTo(i)}static get(t){return t.getContribution(e.ID)}dispose(){this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(e,t){let i;(0,n.Z9)(e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._messageWidget.value=new p(this._editor,t,e),this._messageListeners.add(this._editor.onDidBlurEditorText((()=>this.closeMessage()))),this._messageListeners.add(this._editor.onDidChangeCursorPosition((()=>this.closeMessage()))),this._messageListeners.add(this._editor.onDidDispose((()=>this.closeMessage()))),this._messageListeners.add(this._editor.onDidChangeModel((()=>this.closeMessage()))),this._messageListeners.add(new o._F((()=>this.closeMessage()),3e3)),this._messageListeners.add(this._editor.onMouseMove((e=>{e.target.position&&(i?i.containsPosition(e.target.position)||this.closeMessage():i=new a.e(t.lineNumber-3,1,e.target.position.lineNumber+3,1))})))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(p.fadeOut(this._messageWidget.value))}};u.ID="editor.contrib.messageController",u.MESSAGE_VISIBLE=new c.uy("messageVisible",!1,l.NC("messageVisible","Whether the editor is currently showing an inline message")),u=d([h(1,c.i6)],u);const g=r._l.bindToContribution(u.get);(0,r.fK)(new g({id:"leaveEditorMessage",precondition:u.MESSAGE_VISIBLE,handler:e=>e.closeMessage(),kbOpts:{weight:130,primary:9}}));class p{constructor(e,{lineNumber:t,column:i},n){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=e,this._editor.revealLinesInCenterIfOutsideViewport(t,t,0),this._position={lineNumber:t,column:i},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";const o=document.createElement("div");o.classList.add("anchor","top"),this._domNode.appendChild(o);const s=document.createElement("div");s.classList.add("message"),s.textContent=n,this._domNode.appendChild(s);const r=document.createElement("div");r.classList.add("anchor","below"),this._domNode.appendChild(r),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}static fadeOut(e){const t=()=>{e.dispose(),clearTimeout(i),e.getDomNode().removeEventListener("animationend",t)},i=setTimeout(t,110);return e.getDomNode().addEventListener("animationend",t),e.getDomNode().classList.add("fadeOut"),{dispose:t}}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(e){this._domNode.classList.toggle("below",2===e)}}(0,r._K)(u.ID,u)},77061:(e,t,i)=>{"use strict";var n=i(85152),o=i(15393),s=i(22258),r=i(5976),a=i(16830),l=i(28108),c=i(24314),d=i(3860),h=i(29102),u=i(84973),g=i(22529),p=i(55826),m=i(63580),f=i(84144),_=i(38819),v=i(73910),b=i(97781),C=i(71922),w=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},y=function(e,t){return function(i,n){t(i,n,e)}};function S(e,t){const i=t.filter((t=>!e.find((e=>e.equals(t)))));if(i.length>=1){const e=i.map((e=>`line ${e.viewState.position.lineNumber} column ${e.viewState.position.column}`)).join(", "),t=1===i.length?m.NC("cursorAdded","Cursor added: {0}",e):m.NC("cursorsAdded","Cursors added: {0}",e);(0,n.i7)(t)}}class L extends a.R6{constructor(){super({id:"editor.action.insertCursorAbove",label:m.NC("mutlicursor.insertAbove","Add Cursor Above"),alias:"Add Cursor Above",precondition:void 0,kbOpts:{kbExpr:h.u.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:f.eH.MenubarSelectionMenu,group:"3_multi",title:m.NC({key:"miInsertCursorAbove",comment:["&& denotes a mnemonic"]},"&&Add Cursor Above"),order:2}})}run(e,t,i){if(!t.hasModel())return;let n=!0;i&&!1===i.logicalLine&&(n=!1);const o=t._getViewModel();if(o.cursorConfig.readOnly)return;o.model.pushStackElement();const s=o.getCursorStates();o.setCursorStates(i.source,3,l.P.addCursorUp(o,s,n)),o.revealTopMostCursor(i.source),S(s,o.getCursorStates())}}class k extends a.R6{constructor(){super({id:"editor.action.insertCursorBelow",label:m.NC("mutlicursor.insertBelow","Add Cursor Below"),alias:"Add Cursor Below",precondition:void 0,kbOpts:{kbExpr:h.u.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:f.eH.MenubarSelectionMenu,group:"3_multi",title:m.NC({key:"miInsertCursorBelow",comment:["&& denotes a mnemonic"]},"A&&dd Cursor Below"),order:3}})}run(e,t,i){if(!t.hasModel())return;let n=!0;i&&!1===i.logicalLine&&(n=!1);const o=t._getViewModel();if(o.cursorConfig.readOnly)return;o.model.pushStackElement();const s=o.getCursorStates();o.setCursorStates(i.source,3,l.P.addCursorDown(o,s,n)),o.revealBottomMostCursor(i.source),S(s,o.getCursorStates())}}class x extends a.R6{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:m.NC("mutlicursor.insertAtEndOfEachLineSelected","Add Cursors to Line Ends"),alias:"Add Cursors to Line Ends",precondition:void 0,kbOpts:{kbExpr:h.u.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:f.eH.MenubarSelectionMenu,group:"3_multi",title:m.NC({key:"miInsertCursorAtEndOfEachLineSelected",comment:["&& denotes a mnemonic"]},"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(e,t,i){if(!e.isEmpty()){for(let n=e.startLineNumber;n<e.endLineNumber;n++){const e=t.getLineMaxColumn(n);i.push(new d.Y(n,e,n,e))}e.endColumn>1&&i.push(new d.Y(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn))}}run(e,t){if(!t.hasModel())return;const i=t.getModel(),n=t.getSelections(),o=t._getViewModel(),s=o.getCursorStates(),r=[];n.forEach((e=>this.getCursorsForSelection(e,i,r))),r.length>0&&t.setSelections(r),S(s,o.getCursorStates())}}class D extends a.R6{constructor(){super({id:"editor.action.addCursorsToBottom",label:m.NC("mutlicursor.addCursorsToBottom","Add Cursors To Bottom"),alias:"Add Cursors To Bottom",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getSelections(),n=t.getModel().getLineCount(),o=[];for(let a=i[0].startLineNumber;a<=n;a++)o.push(new d.Y(a,i[0].startColumn,a,i[0].endColumn));const s=t._getViewModel(),r=s.getCursorStates();o.length>0&&t.setSelections(o),S(r,s.getCursorStates())}}class N extends a.R6{constructor(){super({id:"editor.action.addCursorsToTop",label:m.NC("mutlicursor.addCursorsToTop","Add Cursors To Top"),alias:"Add Cursors To Top",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getSelections(),n=[];for(let r=i[0].startLineNumber;r>=1;r--)n.push(new d.Y(r,i[0].startColumn,r,i[0].endColumn));const o=t._getViewModel(),s=o.getCursorStates();n.length>0&&t.setSelections(n),S(s,o.getCursorStates())}}class E{constructor(e,t,i){this.selections=e,this.revealRange=t,this.revealScrollType=i}}class I{constructor(e,t,i,n,o,s,r){this._editor=e,this.findController=t,this.isDisconnectedFromFindController=i,this.searchText=n,this.wholeWord=o,this.matchCase=s,this.currentMatch=r}static create(e,t){if(!e.hasModel())return null;const i=t.getState();if(!e.hasTextFocus()&&i.isRevealed&&i.searchString.length>0)return new I(e,t,!1,i.searchString,i.wholeWord,i.matchCase,null);let n,o,s=!1;const r=e.getSelections();1===r.length&&r[0].isEmpty()?(s=!0,n=!0,o=!0):(n=i.wholeWord,o=i.matchCase);const a=e.getSelection();let l,c=null;if(a.isEmpty()){const t=e.getConfiguredWordAtPosition(a.getStartPosition());if(!t)return null;l=t.word,c=new d.Y(a.startLineNumber,t.startColumn,a.startLineNumber,t.endColumn)}else l=e.getModel().getValueInRange(a).replace(/\r\n/g,"\n");return new I(e,t,s,l,n,o,c)}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new E(t.concat(e),e,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new E(t.slice(0,t.length-1).concat(e),e,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findNextMatch(this.searchText,t.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(119):null,!1);return i?new d.Y(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new E(t.concat(e),e,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new E(t.slice(0,t.length-1).concat(e),e,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findPreviousMatch(this.searchText,t.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(119):null,!1);return i?new d.Y(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}selectAll(e){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();const t=this._editor.getModel();return e?t.findMatches(this.searchText,e,!1,this.matchCase,this.wholeWord?this._editor.getOption(119):null,!1,1073741824):t.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(119):null,!1,1073741824)}}class T extends r.JT{constructor(e){super(),this._sessionDispose=this._register(new r.SL),this._editor=e,this._ignoreSelectionChange=!1,this._session=null}static get(e){return e.getContribution(T.ID)}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(e){if(!this._session){const t=I.create(this._editor,e);if(!t)return;this._session=t;const i={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(i.wholeWordOverride=1,i.matchCaseOverride=1,i.isRegexOverride=2),e.getState().change(i,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection((e=>{this._ignoreSelectionChange||this._endSession()}))),this._sessionDispose.add(this._editor.onDidBlurEditorText((()=>{this._endSession()}))),this._sessionDispose.add(e.getState().onFindReplaceStateChange((e=>{(e.matchCase||e.wholeWord)&&this._endSession()})))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){const e={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(e,!1)}this._session=null}_setSelections(e){this._ignoreSelectionChange=!0,this._editor.setSelections(e),this._ignoreSelectionChange=!1}_expandEmptyToWord(e,t){if(!t.isEmpty())return t;const i=this._editor.getConfiguredWordAtPosition(t.getStartPosition());return i?new d.Y(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):t}_applySessionResult(e){e&&(this._setSelections(e.selections),e.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(e.revealRange,e.revealScrollType))}getSession(e){return this._session}addSelectionToNextFindMatch(e){if(this._editor.hasModel()){if(!this._session){const t=this._editor.getSelections();if(t.length>1){const i=e.getState().matchCase;if(!O(this._editor.getModel(),t,i)){const e=this._editor.getModel(),i=[];for(let n=0,o=t.length;n<o;n++)i[n]=this._expandEmptyToWord(e,t[n]);return void this._editor.setSelections(i)}}}this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToNextFindMatch())}}addSelectionToPreviousFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToPreviousFindMatch())}moveSelectionToNextFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToNextFindMatch())}moveSelectionToPreviousFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())}selectAll(e){if(!this._editor.hasModel())return;let t=null;const i=e.getState();if(i.isRevealed&&i.searchString.length>0&&i.isRegex){const e=this._editor.getModel();t=i.searchScope?e.findMatches(i.searchString,i.searchScope,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(119):null,!1,1073741824):e.findMatches(i.searchString,!0,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(119):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(e),!this._session)return;t=this._session.selectAll(i.searchScope)}if(t.length>0){const e=this._editor.getSelection();for(let i=0,n=t.length;i<n;i++){const n=t[i];if(n.range.intersectRanges(e)){t[i]=t[0],t[0]=n;break}}this._setSelections(t.map((e=>new d.Y(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn))))}}}T.ID="editor.contrib.multiCursorController";class M extends a.R6{run(e,t){const i=T.get(t);if(!i)return;const n=p.pR.get(t);if(!n)return;const o=t._getViewModel();if(o){const e=o.getCursorStates();this._run(i,n),S(e,o.getCursorStates())}}}class A{constructor(e,t,i,n,o){this._model=e,this._searchText=t,this._matchCase=i,this._wordSeparators=n,this._modelVersionId=this._model.getVersionId(),this._cachedFindMatches=null,o&&this._model===o._model&&this._searchText===o._searchText&&this._matchCase===o._matchCase&&this._wordSeparators===o._wordSeparators&&this._modelVersionId===o._modelVersionId&&(this._cachedFindMatches=o._cachedFindMatches)}findMatches(){return null===this._cachedFindMatches&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map((e=>e.range)),this._cachedFindMatches.sort(c.e.compareRangesUsingStarts)),this._cachedFindMatches}}let R=class e extends r.JT{constructor(e,t){super(),this._languageFeaturesService=t,this.editor=e,this._isEnabled=e.getOption(99),this._decorations=e.createDecorationsCollection(),this.updateSoon=this._register(new o.pY((()=>this._update()),300)),this.state=null,this._register(e.onDidChangeConfiguration((t=>{this._isEnabled=e.getOption(99)}))),this._register(e.onDidChangeCursorSelection((e=>{this._isEnabled&&(e.selection.isEmpty()?3===e.reason?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())}))),this._register(e.onDidChangeModel((e=>{this._setState(null)}))),this._register(e.onDidChangeModelContent((e=>{this._isEnabled&&this.updateSoon.schedule()})));const i=p.pR.get(e);i&&this._register(i.getState().onFindReplaceStateChange((e=>{this._update()})))}_update(){this._setState(e._createState(this.state,this._isEnabled,this.editor))}static _createState(e,t,i){if(!t)return null;if(!i.hasModel())return null;const n=i.getSelection();if(n.startLineNumber!==n.endLineNumber)return null;const o=T.get(i);if(!o)return null;const s=p.pR.get(i);if(!s)return null;let r=o.getSession(s);if(!r){const e=i.getSelections();if(e.length>1){const t=s.getState().matchCase;if(!O(i.getModel(),e,t))return null}r=I.create(i,s)}if(!r)return null;if(r.currentMatch)return null;if(/^[ \t]+$/.test(r.searchText))return null;if(r.searchText.length>200)return null;const a=s.getState(),l=a.matchCase;if(a.isRevealed){let e=a.searchString;l||(e=e.toLowerCase());let t=r.searchText;if(l||(t=t.toLowerCase()),e===t&&r.matchCase===a.matchCase&&r.wholeWord===a.wholeWord&&!a.isRegex)return null}return new A(i.getModel(),r.searchText,r.matchCase,r.wholeWord?i.getOption(119):null,e)}_setState(t){if(this.state=t,!this.state)return void this._decorations.clear();if(!this.editor.hasModel())return;const i=this.editor.getModel();if(i.isTooLargeForTokenization())return;const n=this.state.findMatches(),o=this.editor.getSelections();o.sort(c.e.compareRangesUsingStarts);const s=[];for(let e=0,l=0,d=n.length,h=o.length;e<d;){const t=n[e];if(l>=h)s.push(t),e++;else{const i=c.e.compareRangesUsingStarts(t,o[l]);i<0?(!o[l].isEmpty()&&c.e.areIntersecting(t,o[l])||s.push(t),e++):(i>0||e++,l++)}}const r=this._languageFeaturesService.documentHighlightProvider.has(i)&&this.editor.getOption(74),a=s.map((t=>({range:t,options:r?e._SELECTION_HIGHLIGHT:e._SELECTION_HIGHLIGHT_OVERVIEW})));this._decorations.set(a)}dispose(){this._setState(null),super.dispose()}};function O(e,t,i){const n=P(e,t[0],!i);for(let o=1,s=t.length;o<s;o++){const s=t[o];if(s.isEmpty())return!1;if(n!==P(e,s,!i))return!1}return!0}function P(e,t,i){const n=e.getValueInRange(t);return i?n.toLowerCase():n}R.ID="editor.contrib.selectionHighlighter",R._SELECTION_HIGHLIGHT_OVERVIEW=g.qx.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",minimap:{color:(0,b.EN)(v.IYc),position:u.F5.Inline},overviewRuler:{color:(0,b.EN)(v.SPM),position:u.sh.Center}}),R._SELECTION_HIGHLIGHT=g.qx.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),R=w([y(1,C.p)],R);class F extends a.R6{constructor(){super({id:"editor.action.focusNextCursor",label:m.NC("mutlicursor.focusNextCursor","Focus Next Cursor"),description:{description:m.NC("mutlicursor.focusNextCursor.description","Focuses the next cursor"),args:[]},alias:"Focus Next Cursor",precondition:void 0})}run(e,t,i){if(!t.hasModel())return;const n=t._getViewModel();if(n.cursorConfig.readOnly)return;n.model.pushStackElement();const o=Array.from(n.getCursorStates()),s=o.shift();s&&(o.push(s),n.setCursorStates(i.source,3,o),n.revealPrimaryCursor(i.source,!0),S(o,n.getCursorStates()))}}class B extends a.R6{constructor(){super({id:"editor.action.focusPreviousCursor",label:m.NC("mutlicursor.focusPreviousCursor","Focus Previous Cursor"),description:{description:m.NC("mutlicursor.focusPreviousCursor.description","Focuses the previous cursor"),args:[]},alias:"Focus Previous Cursor",precondition:void 0})}run(e,t,i){if(!t.hasModel())return;const n=t._getViewModel();if(n.cursorConfig.readOnly)return;n.model.pushStackElement();const o=Array.from(n.getCursorStates()),s=o.pop();s&&(o.unshift(s),n.setCursorStates(i.source,3,o),n.revealPrimaryCursor(i.source,!0),S(o,n.getCursorStates()))}}(0,a._K)(T.ID,T),(0,a._K)(R.ID,R),(0,a.Qr)(L),(0,a.Qr)(k),(0,a.Qr)(x),(0,a.Qr)(class extends M{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:m.NC("addSelectionToNextFindMatch","Add Selection To Next Find Match"),alias:"Add Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:h.u.focus,primary:2082,weight:100},menuOpts:{menuId:f.eH.MenubarSelectionMenu,group:"3_multi",title:m.NC({key:"miAddSelectionToNextFindMatch",comment:["&& denotes a mnemonic"]},"Add &&Next Occurrence"),order:5}})}_run(e,t){e.addSelectionToNextFindMatch(t)}}),(0,a.Qr)(class extends M{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:m.NC("addSelectionToPreviousFindMatch","Add Selection To Previous Find Match"),alias:"Add Selection To Previous Find Match",precondition:void 0,menuOpts:{menuId:f.eH.MenubarSelectionMenu,group:"3_multi",title:m.NC({key:"miAddSelectionToPreviousFindMatch",comment:["&& denotes a mnemonic"]},"Add P&&revious Occurrence"),order:6}})}_run(e,t){e.addSelectionToPreviousFindMatch(t)}}),(0,a.Qr)(class extends M{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:m.NC("moveSelectionToNextFindMatch","Move Last Selection To Next Find Match"),alias:"Move Last Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:h.u.focus,primary:(0,s.gx)(2089,2082),weight:100}})}_run(e,t){e.moveSelectionToNextFindMatch(t)}}),(0,a.Qr)(class extends M{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:m.NC("moveSelectionToPreviousFindMatch","Move Last Selection To Previous Find Match"),alias:"Move Last Selection To Previous Find Match",precondition:void 0})}_run(e,t){e.moveSelectionToPreviousFindMatch(t)}}),(0,a.Qr)(class extends M{constructor(){super({id:"editor.action.selectHighlights",label:m.NC("selectAllOccurrencesOfFindMatch","Select All Occurrences of Find Match"),alias:"Select All Occurrences of Find Match",precondition:void 0,kbOpts:{kbExpr:h.u.focus,primary:3114,weight:100},menuOpts:{menuId:f.eH.MenubarSelectionMenu,group:"3_multi",title:m.NC({key:"miSelectHighlights",comment:["&& denotes a mnemonic"]},"Select All &&Occurrences"),order:7}})}_run(e,t){e.selectAll(t)}}),(0,a.Qr)(class extends M{constructor(){super({id:"editor.action.changeAll",label:m.NC("changeAll.label","Change All Occurrences"),alias:"Change All Occurrences",precondition:_.Ao.and(h.u.writable,h.u.editorTextFocus),kbOpts:{kbExpr:h.u.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(e,t){e.selectAll(t)}}),(0,a.Qr)(D),(0,a.Qr)(N),(0,a.Qr)(F),(0,a.Qr)(B)},97660:(e,t,i)=>{"use strict";var n=i(5976),o=i(16830),s=i(29102),r=i(43155),a=i(71050),l=i(17301),c=i(98401),d=i(70666),h=i(50187),u=i(71922),g=i(88216),p=i(94565),m=i(38819),f=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const _={Visible:new m.uy("parameterHintsVisible",!1),MultipleSignatures:new m.uy("parameterHintsMultipleSignatures",!1)};function v(e,t,i,n,o){return f(this,void 0,void 0,(function*(){const s=e.ordered(t);for(const e of s)try{const s=yield e.provideSignatureHelp(t,i,o,n);if(s)return s}catch(r){(0,l.Cp)(r)}}))}p.P0.registerCommand("_executeSignatureHelpProvider",((e,...t)=>f(void 0,void 0,void 0,(function*(){const[i,n,o]=t;(0,c.p_)(d.o.isUri(i)),(0,c.p_)(h.L.isIPosition(n)),(0,c.p_)("string"==typeof o||!o);const s=e.get(u.p),l=yield e.get(g.S).createModelReference(i);try{const e=yield v(s.signatureHelpProvider,l.object.textEditorModel,h.L.lift(n),{triggerKind:r.WW.Invoke,isRetrigger:!1,triggerCharacter:o},a.T.None);if(!e)return;return setTimeout((()=>e.dispose()),0),e.value}finally{l.dispose()}}))));var b,C=i(63580),w=i(72065),y=i(65321),S=i(85152),L=i(63161),k=i(73046),x=i(4669),D=i(97295),N=i(72042),E=i(51318),I=i(15393),T=i(44906),M=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};!function(e){e.Default={type:0};e.Pending=class{constructor(e,t){this.request=e,this.previouslyActiveHints=t,this.type=2}};e.Active=class{constructor(e){this.hints=e,this.type=1}}}(b||(b={}));class A extends n.JT{constructor(e,t,i=A.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new x.Q5),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=b.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new n.XK),this.triggerChars=new T.q,this.retriggerChars=new T.q,this.triggerId=0,this.editor=e,this.providers=t,this.throttledDelayer=new I.vp(i),this._register(this.editor.onDidBlurEditorWidget((()=>this.cancel()))),this._register(this.editor.onDidChangeConfiguration((()=>this.onEditorConfigurationChange()))),this._register(this.editor.onDidChangeModel((e=>this.onModelChanged()))),this._register(this.editor.onDidChangeModelLanguage((e=>this.onModelChanged()))),this._register(this.editor.onDidChangeCursorSelection((e=>this.onCursorChange(e)))),this._register(this.editor.onDidChangeModelContent((e=>this.onModelContentChange()))),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType((e=>this.onDidType(e)))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(e){2===this._state.type&&this._state.request.cancel(),this._state=e}cancel(e=!1){this.state=b.Default,this.throttledDelayer.cancel(),e||this._onChangedHints.fire(void 0)}trigger(e,t){const i=this.editor.getModel();if(!i||!this.providers.has(i))return;const n=++this.triggerId;this._pendingTriggers.push(e),this.throttledDelayer.trigger((()=>this.doTrigger(n)),t).catch(l.dL)}next(){if(1!==this.state.type)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=t%e==e-1,n=this.editor.getOption(78).cycle;!(e<2||i)||n?this.updateActiveSignature(i&&n?0:t+1):this.cancel()}previous(){if(1!==this.state.type)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=0===t,n=this.editor.getOption(78).cycle;!(e<2||i)||n?this.updateActiveSignature(i&&n?e-1:t-1):this.cancel()}updateActiveSignature(e){1===this.state.type&&(this.state=new b.Active(Object.assign(Object.assign({},this.state.hints),{activeSignature:e})),this._onChangedHints.fire(this.state.hints))}doTrigger(e){return M(this,void 0,void 0,(function*(){const t=1===this.state.type||2===this.state.type,i=this.getLastActiveHints();if(this.cancel(!0),0===this._pendingTriggers.length)return!1;const n=this._pendingTriggers.reduce(R);this._pendingTriggers=[];const o={triggerKind:n.triggerKind,triggerCharacter:n.triggerCharacter,isRetrigger:t,activeSignatureHelp:i};if(!this.editor.hasModel())return!1;const s=this.editor.getModel(),r=this.editor.getPosition();this.state=new b.Pending((0,I.PG)((e=>v(this.providers,s,r,o,e))),i);try{const t=yield this.state.request;return e!==this.triggerId?(null==t||t.dispose(),!1):t&&t.value.signatures&&0!==t.value.signatures.length?(this.state=new b.Active(t.value),this._lastSignatureHelpResult.value=t,this._onChangedHints.fire(this.state.hints),!0):(null==t||t.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1)}catch(a){return e===this.triggerId&&(this.state=b.Default),(0,l.dL)(a),!1}}))}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return 1===this.state.type||2===this.state.type||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars=new T.q,this.retriggerChars=new T.q;const e=this.editor.getModel();if(e)for(const t of this.providers.ordered(e)){for(const e of t.signatureHelpTriggerCharacters||[])this.triggerChars.add(e.charCodeAt(0)),this.retriggerChars.add(e.charCodeAt(0));for(const e of t.signatureHelpRetriggerCharacters||[])this.retriggerChars.add(e.charCodeAt(0))}}onDidType(e){if(!this.triggerOnType)return;const t=e.length-1,i=e.charCodeAt(t);(this.triggerChars.has(i)||this.isTriggered&&this.retriggerChars.has(i))&&this.trigger({triggerKind:r.WW.TriggerCharacter,triggerCharacter:e.charAt(t)})}onCursorChange(e){"mouse"===e.source?this.cancel():this.isTriggered&&this.trigger({triggerKind:r.WW.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:r.WW.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(78).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}}function R(e,t){switch(t.triggerKind){case r.WW.Invoke:return t;case r.WW.ContentChange:return e;case r.WW.TriggerCharacter:default:return t}}A.DEFAULT_DELAY=120;var O=i(50988),P=i(73910),F=i(59554),B=i(92321),V=i(97781),W=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},H=function(e,t){return function(i,n){t(i,n,e)}};const z=y.$,j=(0,F.q5)("parameter-hints-next",k.lA.chevronDown,C.NC("parameterHintsNextIcon","Icon for show next parameter hint.")),U=(0,F.q5)("parameter-hints-previous",k.lA.chevronUp,C.NC("parameterHintsPreviousIcon","Icon for show previous parameter hint."));let K=class e extends n.JT{constructor(e,t,i,o,s){super(),this.editor=e,this.renderDisposeables=this._register(new n.SL),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.markdownRenderer=this._register(new E.$({editor:e},o,i)),this.model=this._register(new A(e,s.signatureHelpProvider)),this.keyVisible=_.Visible.bindTo(t),this.keyMultipleSignatures=_.MultipleSignatures.bindTo(t),this._register(this.model.onChangedHints((e=>{e?(this.show(),this.render(e)):this.hide()})))}createParameterHintDOMNodes(){const e=z(".editor-widget.parameter-hints-widget"),t=y.R3(e,z(".phwrapper"));t.tabIndex=-1;const i=y.R3(t,z(".controls")),n=y.R3(i,z(".button"+V.kS.asCSSSelector(U))),o=y.R3(i,z(".overloads")),s=y.R3(i,z(".button"+V.kS.asCSSSelector(j)));this._register(y.nm(n,"click",(e=>{y.zB.stop(e),this.previous()}))),this._register(y.nm(s,"click",(e=>{y.zB.stop(e),this.next()})));const r=z(".body"),a=new L.s$(r,{alwaysConsumeMouseWheel:!0});this._register(a),t.appendChild(a.getDomNode());const l=y.R3(r,z(".signature")),c=y.R3(r,z(".docs"));e.style.userSelect="text",this.domNodes={element:e,signature:l,overloads:o,docs:c,scrollbar:a},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection((e=>{this.visible&&this.editor.layoutContentWidget(this)})));const d=()=>{if(!this.domNodes)return;const e=this.editor.getOption(46);this.domNodes.element.style.fontSize=`${e.fontSize}px`,this.domNodes.element.style.lineHeight=""+e.lineHeight/e.fontSize};d(),this._register(x.ju.chain(this.editor.onDidChangeConfiguration.bind(this.editor)).filter((e=>e.hasChanged(46))).on(d,null)),this._register(this.editor.onDidLayoutChange((e=>this.updateMaxHeight()))),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout((()=>{var e;null===(e=this.domNodes)||void 0===e||e.element.classList.add("visible")}),100),this.editor.layoutContentWidget(this))}hide(){var e;this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,null===(e=this.domNodes)||void 0===e||e.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(e){var t;if(this.renderDisposeables.clear(),!this.domNodes)return;const i=e.signatures.length>1;this.domNodes.element.classList.toggle("multiple",i),this.keyMultipleSignatures.set(i),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";const n=e.signatures[e.activeSignature];if(!n)return;const o=y.R3(this.domNodes.signature,z(".code")),s=this.editor.getOption(46);o.style.fontSize=`${s.fontSize}px`,o.style.fontFamily=s.fontFamily;const r=n.parameters.length>0,a=null!==(t=n.activeParameter)&&void 0!==t?t:e.activeParameter;if(r)this.renderParameters(o,n,a);else{y.R3(o,z("span")).textContent=n.label}const l=n.parameters[a];if(null==l?void 0:l.documentation){const e=z("span.documentation");if("string"==typeof l.documentation)e.textContent=l.documentation;else{const t=this.renderMarkdownDocs(l.documentation);e.appendChild(t.element)}y.R3(this.domNodes.docs,z("p",{},e))}if(void 0===n.documentation);else if("string"==typeof n.documentation)y.R3(this.domNodes.docs,z("p",{},n.documentation));else{const e=this.renderMarkdownDocs(n.documentation);y.R3(this.domNodes.docs,e.element)}const c=this.hasDocs(n,l);if(this.domNodes.signature.classList.toggle("has-docs",c),this.domNodes.docs.classList.toggle("empty",!c),this.domNodes.overloads.textContent=String(e.activeSignature+1).padStart(e.signatures.length.toString().length,"0")+"/"+e.signatures.length,l){let e="";const t=n.parameters[a];e=Array.isArray(t.label)?n.label.substring(t.label[0],t.label[1]):t.label,t.documentation&&(e+="string"==typeof t.documentation?`, ${t.documentation}`:`, ${t.documentation.value}`),n.documentation&&(e+="string"==typeof n.documentation?`, ${n.documentation}`:`, ${n.documentation.value}`),this.announcedLabel!==e&&(S.Z9(C.NC("hint","{0}, hint",e)),this.announcedLabel=e)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(e){const t=this.renderDisposeables.add(this.markdownRenderer.render(e,{asyncRenderCallback:()=>{var e;null===(e=this.domNodes)||void 0===e||e.scrollbar.scanDomNode()}}));return t.element.classList.add("markdown-docs"),t}hasDocs(e,t){return!!(t&&"string"==typeof t.documentation&&(0,c.cW)(t.documentation).length>0)||(!!(t&&"object"==typeof t.documentation&&(0,c.cW)(t.documentation).value.length>0)||(!!(e.documentation&&"string"==typeof e.documentation&&(0,c.cW)(e.documentation).length>0)||!!(e.documentation&&"object"==typeof e.documentation&&(0,c.cW)(e.documentation.value).length>0)))}renderParameters(e,t,i){const[n,o]=this.getParameterLabelOffsets(t,i),s=document.createElement("span");s.textContent=t.label.substring(0,n);const r=document.createElement("span");r.textContent=t.label.substring(n,o),r.className="parameter active";const a=document.createElement("span");a.textContent=t.label.substring(o),y.R3(e,s,r,a)}getParameterLabelOffsets(e,t){const i=e.parameters[t];if(i){if(Array.isArray(i.label))return i.label;if(i.label.length){const t=new RegExp(`(\\W|^)${(0,D.ec)(i.label)}(?=\\W|$)`,"g");t.test(e.label);const n=t.lastIndex-i.label.length;return n>=0?[n,t.lastIndex]:[0,0]}return[0,0]}return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}cancel(){this.model.cancel()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return e.ID}trigger(e){this.model.trigger(e,0)}updateMaxHeight(){if(!this.domNodes)return;const e=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=e;const t=this.domNodes.element.getElementsByClassName("phwrapper");t.length&&(t[0].style.maxHeight=e)}};K.ID="editor.widget.parameterHintsWidget",K=W([H(1,m.i6),H(2,O.v4),H(3,N.O),H(4,u.p)],K);const $=(0,P.P6G)("editorHoverWidget.highlightForeground",{dark:P.Gwp,light:P.Gwp,hcDark:P.Gwp,hcLight:P.Gwp},C.NC("editorHoverWidgetHighlightForeground","Foreground color of the active item in the parameter hint."));(0,V.Ic)(((e,t)=>{const i=e.getColor(P.CNo);if(i){const n=(0,B.c3)(e.type)?2:1;t.addRule(`.monaco-editor .parameter-hints-widget { border: ${n}px solid ${i}; }`),t.addRule(`.monaco-editor .parameter-hints-widget.multiple .body { border-left: 1px solid ${i.transparent(.5)}; }`),t.addRule(`.monaco-editor .parameter-hints-widget .signature.has-docs { border-bottom: 1px solid ${i.transparent(.5)}; }`)}const n=e.getColor(P.yJx);n&&t.addRule(`.monaco-editor .parameter-hints-widget { background-color: ${n}; }`);const o=e.getColor(P.url);o&&t.addRule(`.monaco-editor .parameter-hints-widget a { color: ${o}; }`);const s=e.getColor(P.sgC);s&&t.addRule(`.monaco-editor .parameter-hints-widget a:hover { color: ${s}; }`);const r=e.getColor(P.Sbf);r&&t.addRule(`.monaco-editor .parameter-hints-widget { color: ${r}; }`);const a=e.getColor(P.SwI);a&&t.addRule(`.monaco-editor .parameter-hints-widget code { background-color: ${a}; }`);const l=e.getColor($);l&&t.addRule(`.monaco-editor .parameter-hints-widget .parameter.active { color: ${l}}`)}));var q=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},G=function(e,t){return function(i,n){t(i,n,e)}};let Q=class e extends n.JT{constructor(e,t){super(),this.editor=e,this.widget=this._register(t.createInstance(K,this.editor))}static get(t){return t.getContribution(e.ID)}cancel(){this.widget.cancel()}previous(){this.widget.previous()}next(){this.widget.next()}trigger(e){this.widget.trigger(e)}};Q.ID="editor.controller.parameterHints",Q=q([G(1,w.TG)],Q);class Z extends o.R6{constructor(){super({id:"editor.action.triggerParameterHints",label:C.NC("parameterHints.trigger.label","Trigger Parameter Hints"),alias:"Trigger Parameter Hints",precondition:s.u.hasSignatureHelpProvider,kbOpts:{kbExpr:s.u.editorTextFocus,primary:3082,weight:100}})}run(e,t){const i=Q.get(t);i&&i.trigger({triggerKind:r.WW.Invoke})}}(0,o._K)(Q.ID,Q),(0,o.Qr)(Z);const Y=o._l.bindToContribution(Q.get);(0,o.fK)(new Y({id:"closeParameterHints",precondition:_.Visible,handler:e=>e.cancel(),kbOpts:{weight:175,kbExpr:s.u.focus,primary:9,secondary:[1033]}})),(0,o.fK)(new Y({id:"showPrevParameterHint",precondition:m.Ao.and(_.Visible,_.MultipleSignatures),handler:e=>e.previous(),kbOpts:{weight:175,kbExpr:s.u.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}})),(0,o.fK)(new Y({id:"showNextParameterHint",precondition:m.Ao.and(_.Visible,_.MultipleSignatures),handler:e=>e.next(),kbOpts:{weight:175,kbExpr:s.u.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}))},36943:(e,t,i)=>{"use strict";i.d(t,{Fw:()=>T,Jy:()=>M,vk:()=>P,rc:()=>R,SC:()=>W,M8:()=>H,KY:()=>F,IH:()=>B,R7:()=>V});var n=i(65321),o=i(90317),s=i(74741),r=i(73046),a=i(41264),l=i(4669),c=i(36248),d=i(16830),h=i(11640),u=i(84527),g=i(73098),p=i(44742),m=i(5976),f=i(24314),_=i(22529);const v=new a.Il(new a.VS(0,122,204)),b={showArrow:!0,showFrame:!0,className:"",frameColor:v,arrowColor:v,keepEditorSelection:!1};class C{constructor(e,t,i,n,o,s){this.id="",this.domNode=e,this.afterLineNumber=t,this.afterColumn=i,this.heightInLines=n,this._onDomNodeTop=o,this._onComputedHeight=s}onDomNodeTop(e){this._onDomNodeTop(e)}onComputedHeight(e){this._onComputedHeight(e)}}class w{constructor(e,t){this._id=e,this._domNode=t}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}class y{constructor(e){this._editor=e,this._ruleName=y._IdGenerator.nextId(),this._decorations=this._editor.createDecorationsCollection(),this._color=null,this._height=-1}dispose(){this.hide(),n.uN(this._ruleName)}set color(e){this._color!==e&&(this._color=e,this._updateStyle())}set height(e){this._height!==e&&(this._height=e,this._updateStyle())}_updateStyle(){n.uN(this._ruleName),n.fk(`.monaco-editor ${this._ruleName}`,`border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px; margin-left: -${this._height}px; `)}show(e){1===e.column&&(e={lineNumber:e.lineNumber,column:2}),this._decorations.set([{range:f.e.fromPositions(e),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}}y._IdGenerator=new p.R(".arrow-decoration-");var S=i(63580),L=i(84167),k=i(38819),x=i(65026),D=i(72065),N=i(73910),E=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},I=function(e,t){return function(i,n){t(i,n,e)}};const T=(0,D.yh)("IPeekViewService");var M;(0,x.z)(T,class{constructor(){this._widgets=new Map}addExclusiveWidget(e,t){const i=this._widgets.get(e);i&&(i.listener.dispose(),i.widget.dispose());this._widgets.set(e,{widget:t,listener:t.onDidClose((()=>{const i=this._widgets.get(e);i&&i.widget===t&&(i.listener.dispose(),this._widgets.delete(e))}))})}}),function(e){e.inPeekEditor=new k.uy("inReferenceSearchEditor",!0,S.NC("inReferenceSearchEditor","Whether the current code editor is embedded inside peek")),e.notInPeekEditor=e.inPeekEditor.toNegated()}(M||(M={}));let A=class{constructor(e,t){e instanceof u.H&&M.inPeekEditor.bindTo(t)}dispose(){}};function R(e){const t=e.get(h.$).getFocusedCodeEditor();return t instanceof u.H?t.getParentEditor():t}A.ID="editor.contrib.referenceController",A=E([I(1,k.i6)],A),(0,d._K)(A.ID,A);const O={headerBackgroundColor:a.Il.white,primaryHeadingColor:a.Il.fromHex("#333333"),secondaryHeadingColor:a.Il.fromHex("#6c6c6cb3")};let P=class extends class{constructor(e,t={}){this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._viewZone=null,this._disposables=new m.SL,this.container=null,this._isShowing=!1,this.editor=e,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=c.I8(t),c.jB(this.options,b,!1),this.domNode=document.createElement("div"),this.options.isAccessible||(this.domNode.setAttribute("aria-hidden","true"),this.domNode.setAttribute("role","presentation")),this._disposables.add(this.editor.onDidLayoutChange((e=>{const t=this._getWidth(e);this.domNode.style.width=t+"px",this.domNode.style.left=this._getLeft(e)+"px",this._onWidth(t)})))}dispose(){this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones((e=>{this._viewZone&&e.removeZone(this._viewZone.id),this._viewZone=null})),this._positionMarkerId.clear(),this._disposables.dispose()}create(){this.domNode.classList.add("zone-widget"),this.options.className&&this.domNode.classList.add(this.options.className),this.container=document.createElement("div"),this.container.classList.add("zone-widget-container"),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new y(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(e){e.frameColor&&(this.options.frameColor=e.frameColor),e.arrowColor&&(this.options.arrowColor=e.arrowColor),this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){const e=this.options.frameColor.toString();this.container.style.borderTopColor=e,this.container.style.borderBottomColor=e}if(this._arrow&&this.options.arrowColor){const e=this.options.arrowColor.toString();this._arrow.color=e}}_getWidth(e){return e.width-e.minimap.minimapWidth-e.verticalScrollbarWidth}_getLeft(e){return e.minimap.minimapWidth>0&&0===e.minimap.minimapLeft?e.minimap.minimapWidth:0}_onViewZoneTop(e){this.domNode.style.top=e+"px"}_onViewZoneHeight(e){if(this.domNode.style.height=`${e}px`,this.container){const t=e-this._decoratingElementsHeight();this.container.style.height=`${t}px`;const i=this.editor.getLayoutInfo();this._doLayout(t,this._getWidth(i))}this._resizeSash&&this._resizeSash.layout()}get position(){const e=this._positionMarkerId.getRange(0);if(e)return e.getStartPosition()}show(e,t){const i=f.e.isIRange(e)?f.e.lift(e):f.e.fromPositions(e);this._isShowing=!0,this._showImpl(i,t),this._isShowing=!1,this._positionMarkerId.set([{range:i,options:_.qx.EMPTY}])}hide(){this._viewZone&&(this.editor.changeViewZones((e=>{this._viewZone&&e.removeZone(this._viewZone.id)})),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._arrow&&this._arrow.hide()}_decoratingElementsHeight(){const e=this.editor.getOption(61);let t=0;if(this.options.showArrow){t+=2*Math.round(e/3)}if(this.options.showFrame){t+=2*Math.round(e/9)}return t}_showImpl(e,t){const i=e.getStartPosition(),n=this.editor.getLayoutInfo(),o=this._getWidth(n);this.domNode.style.width=`${o}px`,this.domNode.style.left=this._getLeft(n)+"px";const s=document.createElement("div");s.style.overflow="hidden";const r=this.editor.getOption(61),a=Math.max(12,this.editor.getLayoutInfo().height/r*.8);t=Math.min(t,a);let l=0,c=0;if(this._arrow&&this.options.showArrow&&(l=Math.round(r/3),this._arrow.height=l,this._arrow.show(i)),this.options.showFrame&&(c=Math.round(r/9)),this.editor.changeViewZones((e=>{this._viewZone&&e.removeZone(this._viewZone.id),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this.domNode.style.top="-1000px",this._viewZone=new C(s,i.lineNumber,i.column,t,(e=>this._onViewZoneTop(e)),(e=>this._onViewZoneHeight(e))),this._viewZone.id=e.addZone(this._viewZone),this._overlayWidget=new w("vs.editor.contrib.zoneWidget"+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)})),this.container&&this.options.showFrame){const e=this.options.frameWidth?this.options.frameWidth:c;this.container.style.borderTopWidth=e+"px",this.container.style.borderBottomWidth=e+"px"}const d=t*r-this._decoratingElementsHeight();this.container&&(this.container.style.top=l+"px",this.container.style.height=d+"px",this.container.style.overflow="hidden"),this._doLayout(d,o),this.options.keepEditorSelection||this.editor.setSelection(e);const h=this.editor.getModel();if(h){const t=e.endLineNumber+1;t<=h.getLineCount()?this.revealLine(t,!1):this.revealLine(h.getLineCount(),!0)}}revealLine(e,t){t?this.editor.revealLineInCenter(e,0):this.editor.revealLine(e,0)}setCssClass(e,t){this.container&&(t&&this.container.classList.remove(t),this.container.classList.add(e))}_onWidth(e){}_doLayout(e,t){}_relayout(e){this._viewZone&&this._viewZone.heightInLines!==e&&this.editor.changeViewZones((t=>{this._viewZone&&(this._viewZone.heightInLines=e,t.layoutZone(this._viewZone.id))}))}_initSash(){if(this._resizeSash)return;let e;this._resizeSash=this._disposables.add(new g.g(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.state=0),this._disposables.add(this._resizeSash.onDidStart((t=>{this._viewZone&&(e={startY:t.startY,heightInLines:this._viewZone.heightInLines})}))),this._disposables.add(this._resizeSash.onDidEnd((()=>{e=void 0}))),this._disposables.add(this._resizeSash.onDidChange((t=>{if(e){const i=(t.currentY-e.startY)/this.editor.getOption(61),n=i<0?Math.ceil(i):Math.floor(i),o=e.heightInLines+n;o>5&&o<35&&this._relayout(o)}})))}getHorizontalSashLeft(){return 0}getHorizontalSashTop(){return(null===this.domNode.style.height?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}getHorizontalSashWidth(){const e=this.editor.getLayoutInfo();return e.width-e.minimap.minimapWidth}}{constructor(e,t,i){super(e,t),this.instantiationService=i,this._onDidClose=new l.Q5,this.onDidClose=this._onDidClose.event,c.jB(this.options,O,!1)}dispose(){this.disposed||(this.disposed=!0,super.dispose(),this._onDidClose.fire(this))}style(e){const t=this.options;e.headerBackgroundColor&&(t.headerBackgroundColor=e.headerBackgroundColor),e.primaryHeadingColor&&(t.primaryHeadingColor=e.primaryHeadingColor),e.secondaryHeadingColor&&(t.secondaryHeadingColor=e.secondaryHeadingColor),super.style(e)}_applyStyles(){super._applyStyles();const e=this.options;this._headElement&&e.headerBackgroundColor&&(this._headElement.style.backgroundColor=e.headerBackgroundColor.toString()),this._primaryHeading&&e.primaryHeadingColor&&(this._primaryHeading.style.color=e.primaryHeadingColor.toString()),this._secondaryHeading&&e.secondaryHeadingColor&&(this._secondaryHeading.style.color=e.secondaryHeadingColor.toString()),this._bodyElement&&e.frameColor&&(this._bodyElement.style.borderColor=e.frameColor.toString())}_fillContainer(e){this.setCssClass("peekview-widget"),this._headElement=n.$(".head"),this._bodyElement=n.$(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),e.appendChild(this._headElement),e.appendChild(this._bodyElement)}_fillHead(e,t){const i=n.$(".peekview-title");this.options.supportOnTitleClick&&(i.classList.add("clickable"),n.mu(i,"click",(e=>this._onTitleClick(e)))),n.R3(this._headElement,i),this._fillTitleIcon(i),this._primaryHeading=n.$("span.filename"),this._secondaryHeading=n.$("span.dirname"),this._metaHeading=n.$("span.meta"),n.R3(i,this._primaryHeading,this._secondaryHeading,this._metaHeading);const a=n.$(".peekview-actions");n.R3(this._headElement,a);const l=this._getActionBarOptions();this._actionbarWidget=new o.o(a,l),this._disposables.add(this._actionbarWidget),t||this._actionbarWidget.push(new s.aU("peekview.close",S.NC("label.close","Close"),r.lA.close.classNames,!0,(()=>(this.dispose(),Promise.resolve()))),{label:!1,icon:!0})}_fillTitleIcon(e){}_getActionBarOptions(){return{actionViewItemProvider:L.Id.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(e){}setTitle(e,t){this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerText=e,this._primaryHeading.setAttribute("title",e),t?this._secondaryHeading.innerText=t:n.PO(this._secondaryHeading))}setMetaTitle(e){this._metaHeading&&(e?(this._metaHeading.innerText=e,n.$Z(this._metaHeading)):n.Cp(this._metaHeading))}_doLayout(e,t){if(!this._isShowing&&e<0)return void this.dispose();const i=Math.ceil(1.2*this.editor.getOption(61)),n=Math.round(e-(i+2));this._doLayoutHead(i,t),this._doLayoutBody(n,t)}_doLayoutHead(e,t){this._headElement&&(this._headElement.style.height=`${e}px`,this._headElement.style.lineHeight=this._headElement.style.height)}_doLayoutBody(e,t){this._bodyElement&&(this._bodyElement.style.height=`${e}px`)}};P=E([I(2,D.TG)],P);const F=(0,N.P6G)("peekViewTitle.background",{dark:(0,N.ZnX)(N.c63,.1),light:(0,N.ZnX)(N.c63,.1),hcDark:null,hcLight:null},S.NC("peekViewTitleBackground","Background color of the peek view title area.")),B=(0,N.P6G)("peekViewTitleLabel.foreground",{dark:a.Il.white,light:a.Il.black,hcDark:a.Il.white,hcLight:N.NOs},S.NC("peekViewTitleForeground","Color of the peek view title.")),V=(0,N.P6G)("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},S.NC("peekViewTitleInfoForeground","Color of the peek view title info.")),W=(0,N.P6G)("peekView.border",{dark:N.c63,light:N.c63,hcDark:N.lRK,hcLight:N.lRK},S.NC("peekViewBorder","Color of the peek view borders and arrow.")),H=(0,N.P6G)("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:a.Il.black,hcLight:a.Il.white},S.NC("peekViewResultsBackground","Background color of the peek view result list.")),z=((0,N.P6G)("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:a.Il.white,hcLight:N.NOs},S.NC("peekViewResultsMatchForeground","Foreground color for line nodes in the peek view result list.")),(0,N.P6G)("peekViewResult.fileForeground",{dark:a.Il.white,light:"#1E1E1E",hcDark:a.Il.white,hcLight:N.NOs},S.NC("peekViewResultsFileForeground","Foreground color for file nodes in the peek view result list.")),(0,N.P6G)("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},S.NC("peekViewResultsSelectionBackground","Background color of the selected entry in the peek view result list.")),(0,N.P6G)("peekViewResult.selectionForeground",{dark:a.Il.white,light:"#6C6C6C",hcDark:a.Il.white,hcLight:N.NOs},S.NC("peekViewResultsSelectionForeground","Foreground color of the selected entry in the peek view result list.")),(0,N.P6G)("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:a.Il.black,hcLight:a.Il.white},S.NC("peekViewEditorBackground","Background color of the peek view editor.")));(0,N.P6G)("peekViewEditorGutter.background",{dark:z,light:z,hcDark:z,hcLight:z},S.NC("peekViewEditorGutterBackground","Background color of the gutter in the peek view editor.")),(0,N.P6G)("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},S.NC("peekViewResultsMatchHighlight","Match highlight color in the peek view result list.")),(0,N.P6G)("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},S.NC("peekViewEditorMatchHighlight","Match highlight color in the peek view editor.")),(0,N.P6G)("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:N.xL1,hcLight:N.xL1},S.NC("peekViewEditorMatchHighlightBorder","Match highlight border in the peek view editor."))},83943:(e,t,i)=>{"use strict";i.d(t,{X:()=>d});var n=i(88289),o=i(5976),s=i(98401),r=i(65520),a=i(84973),l=i(8625),c=i(97781);class d{constructor(e){this.options=e,this.rangeHighlightDecorationId=void 0}provide(e,t){var i;const n=new o.SL;e.canAcceptInBackground=!!(null===(i=this.options)||void 0===i?void 0:i.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;const s=n.add(new o.XK);return s.value=this.doProvide(e,t),n.add(this.onDidActiveTextEditorControlChange((()=>{s.value=void 0,s.value=this.doProvide(e,t)}))),n}doProvide(e,t){const i=new o.SL,a=this.activeTextEditorControl;if(a&&this.canProvideWithTextEditor(a)){const l={editor:a},c=(0,r.Pi)(a);if(c){let e=(0,s.f6)(a.saveViewState());i.add(c.onDidChangeCursorPosition((()=>{e=(0,s.f6)(a.saveViewState())}))),l.restoreViewState=()=>{e&&a===this.activeTextEditorControl&&a.restoreViewState(e)},i.add((0,n.I)(t.onCancellationRequested)((()=>{var e;return null===(e=l.restoreViewState)||void 0===e?void 0:e.call(l)})))}i.add((0,o.OF)((()=>this.clearDecorations(a)))),i.add(this.provideWithTextEditor(l,e,t))}else i.add(this.provideWithoutTextEditor(e,t));return i}canProvideWithTextEditor(e){return!0}gotoLocation({editor:e},t){e.setSelection(t.range),e.revealRangeInCenter(t.range,0),t.preserveFocus||e.focus()}getModel(e){var t;return(0,r.QI)(e)?null===(t=e.getModel())||void 0===t?void 0:t.modified:e.getModel()}addDecorations(e,t){e.changeDecorations((e=>{const i=[];this.rangeHighlightDecorationId&&(i.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),i.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const n=[{range:t,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:t,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:(0,c.EN)(l.m9),position:a.sh.Full}}}],[o,s]=e.deltaDecorations(i,n);this.rangeHighlightDecorationId={rangeHighlightId:o,overviewRulerDecorationId:s}}))}clearDecorations(e){const t=this.rangeHighlightDecorationId;t&&(e.changeDecorations((e=>{e.deltaDecorations([t.overviewRulerDecorationId,t.rangeHighlightId],[])})),this.rangeHighlightDecorationId=void 0)}}},73945:(e,t,i)=>{"use strict";var n=i(5976),o=i(16830),s=i(27753),r=i(63580);class a extends n.JT{constructor(e){super(),this.editor=e,this._register(this.editor.onDidAttemptReadOnlyEdit((()=>this._onDidAttemptReadOnlyEdit())))}_onDidAttemptReadOnlyEdit(){const e=s.O.get(this.editor);e&&this.editor.hasModel()&&(this.editor.isSimpleWidget?e.showMessage(r.NC("editor.simple.readonly","Cannot edit in read-only input"),this.editor.getPosition()):e.showMessage(r.NC("editor.readonly","Cannot edit in read-only editor"),this.editor.getPosition()))}}a.ID="editor.contrib.readOnlyMessageController",(0,o._K)(a.ID,a)},82379:(e,t,i)=>{"use strict";var n=i(85152),o=i(15393),s=i(71050),r=i(17301),a=i(5976),l=i(98401),c=i(70666),d=i(14410),h=i(16830),u=i(66007),g=i(11640),p=i(50187),m=i(24314),f=i(29102),_=i(71765),v=i(27753),b=i(63580),C=i(23193),w=i(38819),y=i(72065),S=i(43557),L=i(59422),k=i(90535),x=i(89872),D=i(91847),N=i(73910),E=i(97781),I=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},T=function(e,t){return function(i,n){t(i,n,e)}};const M=new w.uy("renameInputVisible",!1,(0,b.NC)("renameInputVisible","Whether the rename input widget is visible"));let A=class{constructor(e,t,i,n,o){this._editor=e,this._acceptKeybindings=t,this._themeService=i,this._keybindingService=n,this._disposables=new a.SL,this.allowEditorOverflow=!0,this._visibleContextKey=M.bindTo(o),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(46)&&this._updateFont()}))),this._disposables.add(i.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){if(!this._domNode){this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._input=document.createElement("input"),this._input.className="rename-input",this._input.type="text",this._input.setAttribute("aria-label",(0,b.NC)("renameAriaLabel","Rename input. Type new name and press Enter to commit.")),this._domNode.appendChild(this._input),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label);const e=()=>{var e,t;const[i,n]=this._acceptKeybindings;this._keybindingService.lookupKeybinding(i),this._label.innerText=(0,b.NC)({key:"label",comment:['placeholders are keybindings, e.g "F2 to Rename, Shift+F2 to Preview"']},"{0} to Rename, {1} to Preview",null===(e=this._keybindingService.lookupKeybinding(i))||void 0===e?void 0:e.getLabel(),null===(t=this._keybindingService.lookupKeybinding(n))||void 0===t?void 0:t.getLabel())};e(),this._disposables.add(this._keybindingService.onDidUpdateKeybindings(e)),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())}return this._domNode}_updateStyles(e){var t,i,n,o;if(!this._input||!this._domNode)return;const s=e.getColor(N.rh);this._domNode.style.backgroundColor=String(null!==(t=e.getColor(N.D0T))&&void 0!==t?t:""),this._domNode.style.boxShadow=s?` 0 0 8px 2px ${s}`:"",this._domNode.style.color=String(null!==(i=e.getColor(N.zJb))&&void 0!==i?i:""),this._input.style.backgroundColor=String(null!==(n=e.getColor(N.sEe))&&void 0!==n?n:"");const r=e.getColor(N.dt_);this._input.style.borderWidth=r?"1px":"0px",this._input.style.borderStyle=r?"solid":"none",this._input.style.borderColor=null!==(o=null==r?void 0:r.toString())&&void 0!==o?o:"none"}_updateFont(){if(!this._input||!this._label)return;const e=this._editor.getOption(46);this._input.style.fontFamily=e.fontFamily,this._input.style.fontWeight=e.fontWeight,this._input.style.fontSize=`${e.fontSize}px`,this._label.style.fontSize=.8*e.fontSize+"px"}getPosition(){return this._visible?{position:this._position,preference:[2,1]}:null}afterRender(e){e||this.cancelInput(!0)}acceptInput(e){var t;null===(t=this._currentAcceptInput)||void 0===t||t.call(this,e)}cancelInput(e){var t;null===(t=this._currentCancelInput)||void 0===t||t.call(this,e)}getInput(e,t,i,n,o,s){this._domNode.classList.toggle("preview",o),this._position=new p.L(e.startLineNumber,e.startColumn),this._input.value=t,this._input.setAttribute("selectionStart",i.toString()),this._input.setAttribute("selectionEnd",n.toString()),this._input.size=Math.max(1.1*(e.endColumn-e.startColumn),20);const r=new a.SL;return new Promise((e=>{this._currentCancelInput=t=>(this._currentAcceptInput=void 0,this._currentCancelInput=void 0,e(t),!0),this._currentAcceptInput=i=>{0!==this._input.value.trim().length&&this._input.value!==t?(this._currentAcceptInput=void 0,this._currentCancelInput=void 0,e({newName:this._input.value,wantsPreview:o&&i})):this.cancelInput(!0)},r.add(s.onCancellationRequested((()=>this.cancelInput(!0)))),r.add(this._editor.onDidBlurEditorWidget((()=>this.cancelInput(!1)))),this._show()})).finally((()=>{r.dispose(),this._hide()}))}_show(){this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout((()=>{this._input.focus(),this._input.setSelectionRange(parseInt(this._input.getAttribute("selectionStart")),parseInt(this._input.getAttribute("selectionEnd")))}),100)}_hide(){this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}};A=I([T(2,E.XE),T(3,D.d),T(4,w.i6)],A);var R=i(71922),O=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},P=function(e,t){return function(i,n){t(i,n,e)}},F=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class B{constructor(e,t,i){this.model=e,this.position=t,this._providerRenameIdx=0,this._providers=i.ordered(e)}hasProvider(){return this._providers.length>0}resolveRenameLocation(e){return F(this,void 0,void 0,(function*(){const t=[];for(this._providerRenameIdx=0;this._providerRenameIdx<this._providers.length;this._providerRenameIdx++){const i=this._providers[this._providerRenameIdx];if(!i.resolveRenameLocation)break;const n=yield i.resolveRenameLocation(this.model,this.position,e);if(n){if(!n.rejectReason)return n;t.push(n.rejectReason)}}const i=this.model.getWordAtPosition(this.position);return i?{range:new m.e(this.position.lineNumber,i.startColumn,this.position.lineNumber,i.endColumn),text:i.word,rejectReason:t.length>0?t.join("\n"):void 0}:{range:m.e.fromPositions(this.position),text:"",rejectReason:t.length>0?t.join("\n"):void 0}}))}provideRenameEdits(e,t){return F(this,void 0,void 0,(function*(){return this._provideRenameEdits(e,this._providerRenameIdx,[],t)}))}_provideRenameEdits(e,t,i,n){return F(this,void 0,void 0,(function*(){const o=this._providers[t];if(!o)return{edits:[],rejectReason:i.join("\n")};const s=yield o.provideRenameEdits(this.model,this.position,e,n);return s?s.rejectReason?this._provideRenameEdits(e,t+1,i.concat(s.rejectReason),n):s:this._provideRenameEdits(e,t+1,i.concat(b.NC("no result","No result.")),n)}))}}let V=class e{constructor(e,t,i,n,r,l,c,d){this.editor=e,this._instaService=t,this._notificationService=i,this._bulkEditService=n,this._progressService=r,this._logService=l,this._configService=c,this._languageFeaturesService=d,this._disposableStore=new a.SL,this._cts=new s.A,this._renameInputField=this._disposableStore.add(new o.Ue((()=>this._disposableStore.add(this._instaService.createInstance(A,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"])))))}static get(t){return t.getContribution(e.ID)}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}run(){var e,t;return F(this,void 0,void 0,(function*(){if(this._cts.dispose(!0),!this.editor.hasModel())return;const i=this.editor.getPosition(),s=new B(this.editor.getModel(),i,this._languageFeaturesService.renameProvider);if(!s.hasProvider())return;let r;this._cts=new d.Dl(this.editor,5);try{const e=s.resolveRenameLocation(this._cts.token);this._progressService.showWhile(e,250),r=yield e}catch(f){return void(null===(e=v.O.get(this.editor))||void 0===e||e.showMessage(f||b.NC("resolveRenameLocationFailed","An unknown error occurred while resolving rename location"),i))}if(!r)return;if(r.rejectReason)return void(null===(t=v.O.get(this.editor))||void 0===t||t.showMessage(r.rejectReason,i));if(this._cts.token.isCancellationRequested)return;this._cts.dispose(),this._cts=new d.Dl(this.editor,5,r.range);const a=this.editor.getSelection();let l=0,c=r.text.length;m.e.isEmpty(a)||m.e.spansMultipleLines(a)||!m.e.containsRange(r.range,a)||(l=Math.max(0,a.startColumn-r.range.startColumn),c=Math.min(r.range.endColumn,a.endColumn)-r.range.startColumn);const h=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),g=yield this._renameInputField.value.getInput(r.range,r.text,l,c,h,this._cts.token);if("boolean"==typeof g)return void(g&&this.editor.focus());this.editor.focus();const p=(0,o.eP)(s.provideRenameEdits(g.newName,this._cts.token),this._cts.token).then((e=>F(this,void 0,void 0,(function*(){e&&this.editor.hasModel()&&(e.rejectReason?this._notificationService.info(e.rejectReason):(this.editor.setSelection(m.e.fromPositions(this.editor.getSelection().getPosition())),this._bulkEditService.apply(u.fo.convert(e),{editor:this.editor,showPreview:g.wantsPreview,label:b.NC("label","Renaming '{0}' to '{1}'",null==r?void 0:r.text,g.newName),code:"undoredo.rename",quotableLabel:b.NC("quotableLabel","Renaming {0} to {1}",null==r?void 0:r.text,g.newName),respectAutoSaveConfig:!0}).then((e=>{e.ariaSummary&&(0,n.Z9)(b.NC("aria","Successfully renamed '{0}' to '{1}'. Summary: {2}",r.text,g.newName,e.ariaSummary))})).catch((e=>{this._notificationService.error(b.NC("rename.failedApply","Rename failed to apply edits")),this._logService.error(e)}))))}))),(e=>{this._notificationService.error(b.NC("rename.failed","Rename failed to compute edits")),this._logService.error(e)}));return this._progressService.showWhile(p,250),p}))}acceptRenameInput(e){this._renameInputField.value.acceptInput(e)}cancelRenameInput(){this._renameInputField.value.cancelInput(!0)}};V.ID="editor.contrib.renameController",V=O([P(1,y.TG),P(2,L.lT),P(3,u.vu),P(4,k.ek),P(5,S.VZ),P(6,_.V),P(7,R.p)],V);class W extends h.R6{constructor(){super({id:"editor.action.rename",label:b.NC("rename.label","Rename Symbol"),alias:"Rename Symbol",precondition:w.Ao.and(f.u.writable,f.u.hasRenameProvider),kbOpts:{kbExpr:f.u.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}runCommand(e,t){const i=e.get(g.$),[n,o]=Array.isArray(t)&&t||[void 0,void 0];return c.o.isUri(n)&&p.L.isIPosition(o)?i.openCodeEditor({resource:n},i.getActiveCodeEditor()).then((e=>{e&&(e.setPosition(o),e.invokeWithinContext((t=>(this.reportTelemetry(t,e),this.run(t,e)))))}),r.dL):super.runCommand(e,t)}run(e,t){const i=V.get(t);return i?i.run():Promise.resolve()}}(0,h._K)(V.ID,V),(0,h.Qr)(W);const H=h._l.bindToContribution(V.get);(0,h.fK)(new H({id:"acceptRenameInput",precondition:M,handler:e=>e.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:f.u.focus,primary:3}})),(0,h.fK)(new H({id:"acceptRenameInputWithPreview",precondition:w.Ao.and(M,w.Ao.has("config.editor.rename.enablePreview")),handler:e=>e.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:f.u.focus,primary:1027}})),(0,h.fK)(new H({id:"cancelRenameInput",precondition:M,handler:e=>e.cancelRenameInput(),kbOpts:{weight:199,kbExpr:f.u.focus,primary:9,secondary:[1033]}})),(0,h.sb)("_executeDocumentRenameProvider",(function(e,t,i,...n){const[o]=n;(0,l.p_)("string"==typeof o);const{renameProvider:r}=e.get(R.p);return function(e,t,i,n){return F(this,void 0,void 0,(function*(){const o=new B(t,i,e),r=yield o.resolveRenameLocation(s.T.None);return(null==r?void 0:r.rejectReason)?{edits:[],rejectReason:r.rejectReason}:o.provideRenameEdits(n,s.T.None)}))}(r,t,i,o)})),(0,h.sb)("_executePrepareRename",(function(e,t,i){return F(this,void 0,void 0,(function*(){const{renameProvider:n}=e.get(R.p),o=new B(t,i,n),r=yield o.resolveRenameLocation(s.T.None);if(null==r?void 0:r.rejectReason)throw new Error(r.rejectReason);return r}))})),x.B.as(C.IP.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:b.NC("enablePreview","Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}})},79694:(e,t,i)=>{"use strict";i.d(t,{x:()=>a});var n=i(91741),o=i(50187),s=i(24314),r=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class a{provideSelectionRanges(e,t){return r(this,void 0,void 0,(function*(){const i=[];for(const n of t){const t=[];i.push(t);const o=new Map;yield new Promise((t=>a._bracketsRightYield(t,0,e,n,o))),yield new Promise((i=>a._bracketsLeftYield(i,0,e,n,o,t)))}return i}))}static _bracketsRightYield(e,t,i,o,s){const r=new Map,l=Date.now();for(;;){if(t>=a._maxRounds){e();break}if(!o){e();break}const c=i.bracketPairs.findNextBracket(o);if(!c){e();break}if(Date.now()-l>a._maxDuration){setTimeout((()=>a._bracketsRightYield(e,t+1,i,o,s)));break}if(c.bracketInfo.isOpeningBracket){const e=c.bracketInfo.bracketText,t=r.has(e)?r.get(e):0;r.set(e,t+1)}else{const e=c.bracketInfo.getClosedBrackets()[0].bracketText;let t=r.has(e)?r.get(e):0;if(t-=1,r.set(e,Math.max(0,t)),t<0){let t=s.get(e);t||(t=new n.S,s.set(e,t)),t.push(c.range)}}o=c.range.getEndPosition()}}static _bracketsLeftYield(e,t,i,n,o,r){const l=new Map,c=Date.now();for(;;){if(t>=a._maxRounds&&0===o.size){e();break}if(!n){e();break}const d=i.bracketPairs.findPrevBracket(n);if(!d){e();break}if(Date.now()-c>a._maxDuration){setTimeout((()=>a._bracketsLeftYield(e,t+1,i,n,o,r)));break}if(d.bracketInfo.isOpeningBracket){const e=d.bracketInfo.bracketText;let t=l.has(e)?l.get(e):0;if(t-=1,l.set(e,Math.max(0,t)),t<0){const t=o.get(e);if(t){const n=t.shift();0===t.size&&o.delete(e);const l=s.e.fromPositions(d.range.getEndPosition(),n.getStartPosition()),c=s.e.fromPositions(d.range.getStartPosition(),n.getEndPosition());r.push({range:l}),r.push({range:c}),a._addBracketLeading(i,c,r)}}}else{const e=d.bracketInfo.getClosedBrackets()[0].bracketText,t=l.has(e)?l.get(e):0;l.set(e,t+1)}n=d.range.getStartPosition()}}static _addBracketLeading(e,t,i){if(t.startLineNumber===t.endLineNumber)return;const n=t.startLineNumber,r=e.getLineFirstNonWhitespaceColumn(n);0!==r&&r!==t.startColumn&&(i.push({range:s.e.fromPositions(new o.L(n,r),t.getEndPosition())}),i.push({range:s.e.fromPositions(new o.L(n,1),t.getEndPosition())}));const a=n-1;if(a>0){const n=e.getLineFirstNonWhitespaceColumn(a);n===t.startColumn&&n!==e.getLineLastNonWhitespaceColumn(a)&&(i.push({range:s.e.fromPositions(new o.L(a,n),t.getEndPosition())}),i.push({range:s.e.fromPositions(new o.L(a,1),t.getEndPosition())}))}}}a._maxDuration=30,a._maxRounds=2},47721:(e,t,i)=>{"use strict";var n=i(9488),o=i(71050),s=i(17301),r=i(16830),a=i(50187),l=i(24314),c=i(3860),d=i(29102),h=i(79694),u=i(97295);class g{provideSelectionRanges(e,t){const i=[];for(const n of t){const t=[];i.push(t),this._addInWordRanges(t,e,n),this._addWordRanges(t,e,n),this._addWhitespaceLine(t,e,n),t.push({range:e.getFullModelRange()})}return i}_addInWordRanges(e,t,i){const n=t.getWordAtPosition(i);if(!n)return;const{word:o,startColumn:s}=n,r=i.column-s;let a=r,c=r,d=0;for(;a>=0;a--){const e=o.charCodeAt(a);if(a!==r&&(95===e||45===e))break;if((0,u.mK)(e)&&(0,u.df)(d))break;d=e}for(a+=1;c<o.length;c++){const e=o.charCodeAt(c);if((0,u.df)(e)&&(0,u.mK)(d))break;if(95===e||45===e)break;d=e}a<c&&e.push({range:new l.e(i.lineNumber,s+a,i.lineNumber,s+c)})}_addWordRanges(e,t,i){const n=t.getWordAtPosition(i);n&&e.push({range:new l.e(i.lineNumber,n.startColumn,i.lineNumber,n.endColumn)})}_addWhitespaceLine(e,t,i){t.getLineLength(i.lineNumber)>0&&0===t.getLineFirstNonWhitespaceColumn(i.lineNumber)&&0===t.getLineLastNonWhitespaceColumn(i.lineNumber)&&e.push({range:new l.e(i.lineNumber,1,i.lineNumber,t.getLineMaxColumn(i.lineNumber))})}}var p=i(63580),m=i(84144),f=i(94565),_=i(71922),v=i(88216),b=i(98401),C=i(70666),w=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},y=function(e,t){return function(i,n){t(i,n,e)}},S=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class L{constructor(e,t){this.index=e,this.ranges=t}mov(e){const t=this.index+(e?1:-1);if(t<0||t>=this.ranges.length)return this;const i=new L(t,this.ranges);return i.ranges[t].equalsRange(this.ranges[this.index])?i.mov(e):i}}let k=class e{constructor(e,t){this._editor=e,this._languageFeaturesService=t,this._ignoreSelection=!1}static get(t){return t.getContribution(e.ID)}dispose(){var e;null===(e=this._selectionListener)||void 0===e||e.dispose()}run(e){return S(this,void 0,void 0,(function*(){if(!this._editor.hasModel())return;const t=this._editor.getSelections(),i=this._editor.getModel();if(this._state||(yield D(this._languageFeaturesService.selectionRangeProvider,i,t.map((e=>e.getPosition())),this._editor.getOption(104),o.T.None).then((e=>{var i;if(n.Of(e)&&e.length===t.length&&this._editor.hasModel()&&n.fS(this._editor.getSelections(),t,((e,t)=>e.equalsSelection(t)))){for(let i=0;i<e.length;i++)e[i]=e[i].filter((e=>e.containsPosition(t[i].getStartPosition())&&e.containsPosition(t[i].getEndPosition()))),e[i].unshift(t[i]);this._state=e.map((e=>new L(0,e))),null===(i=this._selectionListener)||void 0===i||i.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition((()=>{var e;this._ignoreSelection||(null===(e=this._selectionListener)||void 0===e||e.dispose(),this._state=void 0)}))}}))),!this._state)return;this._state=this._state.map((t=>t.mov(e)));const s=this._state.map((e=>c.Y.fromPositions(e.ranges[e.index].getStartPosition(),e.ranges[e.index].getEndPosition())));this._ignoreSelection=!0;try{this._editor.setSelections(s)}finally{this._ignoreSelection=!1}}))}};k.ID="editor.contrib.smartSelectController",k=w([y(1,_.p)],k);class x extends r.R6{constructor(e,t){super(t),this._forward=e}run(e,t){return S(this,void 0,void 0,(function*(){const e=k.get(t);e&&(yield e.run(this._forward))}))}}f.P0.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");function D(e,t,i,o,r){return S(this,void 0,void 0,(function*(){const c=e.all(t).concat(new g);1===c.length&&c.unshift(new h.x);const d=[],u=[];for(const e of c)d.push(Promise.resolve(e.provideSelectionRanges(t,i,r)).then((e=>{if(n.Of(e)&&e.length===i.length)for(let t=0;t<i.length;t++){u[t]||(u[t]=[]);for(const n of e[t])l.e.isIRange(n.range)&&l.e.containsPosition(n.range,i[t])&&u[t].push(l.e.lift(n.range))}}),s.Cp));return yield Promise.all(d),u.map((e=>{if(0===e.length)return[];e.sort(((e,t)=>a.L.isBefore(e.getStartPosition(),t.getStartPosition())?1:a.L.isBefore(t.getStartPosition(),e.getStartPosition())||a.L.isBefore(e.getEndPosition(),t.getEndPosition())?-1:a.L.isBefore(t.getEndPosition(),e.getEndPosition())?1:0));const i=[];let n;for(const t of e)(!n||l.e.containsRange(t,n)&&!l.e.equalsRange(t,n))&&(i.push(t),n=t);if(!o.selectLeadingAndTrailingWhitespace)return i;const s=[i[0]];for(let o=1;o<i.length;o++){const e=i[o-1],n=i[o];if(n.startLineNumber!==e.startLineNumber||n.endLineNumber!==e.endLineNumber){const i=new l.e(e.startLineNumber,t.getLineFirstNonWhitespaceColumn(e.startLineNumber),e.endLineNumber,t.getLineLastNonWhitespaceColumn(e.endLineNumber));i.containsRange(e)&&!i.equalsRange(e)&&n.containsRange(i)&&!n.equalsRange(i)&&s.push(i);const o=new l.e(e.startLineNumber,1,e.endLineNumber,t.getLineMaxColumn(e.endLineNumber));o.containsRange(e)&&!o.equalsRange(i)&&n.containsRange(o)&&!n.equalsRange(o)&&s.push(o)}s.push(n)}return s}))}))}(0,r._K)(k.ID,k),(0,r.Qr)(class extends x{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:p.NC("smartSelect.expand","Expand Selection"),alias:"Expand Selection",precondition:void 0,kbOpts:{kbExpr:d.u.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:m.eH.MenubarSelectionMenu,group:"1_basic",title:p.NC({key:"miSmartSelectGrow",comment:["&& denotes a mnemonic"]},"&&Expand Selection"),order:2}})}}),(0,r.Qr)(class extends x{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:p.NC("smartSelect.shrink","Shrink Selection"),alias:"Shrink Selection",precondition:void 0,kbOpts:{kbExpr:d.u.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:m.eH.MenubarSelectionMenu,group:"1_basic",title:p.NC({key:"miSmartSelectShrink",comment:["&& denotes a mnemonic"]},"&&Shrink Selection"),order:3}})}}),f.P0.registerCommand("_executeSelectionRangeProvider",(function(e,...t){return S(this,void 0,void 0,(function*(){const[i,n]=t;(0,b.p_)(C.o.isUri(i));const s=e.get(_.p).selectionRangeProvider,r=yield e.get(v.S).createModelReference(i);try{return D(s,r.object.textEditorModel,n,{selectLeadingAndTrailingWhitespace:!0},o.T.None)}finally{r.dispose()}}))}))},98762:(e,t,i)=>{"use strict";i.d(t,{f:()=>b,z:()=>w});var n=i(5976),o=i(98401),s=i(16830),r=i(50187),a=i(3860),l=i(29102),c=i(4256),d=i(71922),h=i(55621),u=i(63580),g=i(38819),p=i(43557),m=i(7307),f=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},_=function(e,t){return function(i,n){t(i,n,e)}};const v={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let b=class e{constructor(t,i,o,s,r){this._editor=t,this._logService=i,this._languageFeaturesService=o,this._languageConfigurationService=r,this._snippetListener=new n.SL,this._modelVersionId=-1,this._inSnippet=e.InSnippetMode.bindTo(s),this._hasNextTabstop=e.HasNextTabstop.bindTo(s),this._hasPrevTabstop=e.HasPrevTabstop.bindTo(s)}static get(t){return t.getContribution(e.ID)}dispose(){var e;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),null===(e=this._session)||void 0===e||e.dispose(),this._snippetListener.dispose()}apply(e,t){try{this._doInsert(e,void 0===t?v:Object.assign(Object.assign({},v),t))}catch(i){this.cancel(),this._logService.error(i),this._logService.error("snippet_error"),this._logService.error("insert_edits=",e),this._logService.error("existing_template=",this._session?this._session._logInfo():"<no_session>")}}insert(e,t){try{this._doInsert(e,void 0===t?v:Object.assign(Object.assign({},v),t))}catch(i){this.cancel(),this._logService.error(i),this._logService.error("snippet_error"),this._logService.error("insert_template=",e),this._logService.error("existing_template=",this._session?this._session._logInfo():"<no_session>")}}_doInsert(e,t){var i;if(this._editor.hasModel()){if(this._snippetListener.clear(),t.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session&&"string"!=typeof e&&this.cancel(),this._session?((0,o.p_)("string"==typeof e),this._session.merge(e,t)):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new m.l(this._editor,e,t,this._languageConfigurationService),this._session.insert()),t.undoStopAfter&&this._editor.getModel().pushStackElement(),null===(i=this._session)||void 0===i?void 0:i.hasChoice){this._choiceCompletionItemProvider={provideCompletionItems:(e,t)=>{if(!this._session||e!==this._editor.getModel()||!r.L.equals(this._editor.getPosition(),t))return;const{activeChoice:i}=this._session;if(!i||0===i.choice.options.length)return;const n=e.getValueInRange(i.range),o=Boolean(i.choice.options.find((e=>e.value===n))),s=[];for(let r=0;r<i.choice.options.length;r++){const e=i.choice.options[r];s.push({kind:13,label:e.value,insertText:e.value,sortText:"a".repeat(r+1),range:i.range,filterText:o?`${n}_${e.value}`:void 0,command:{id:"jumpToNextSnippetPlaceholder",title:(0,u.NC)("next","Go to next placeholder...")}})}return{suggestions:s}}};const e=this._languageFeaturesService.completionProvider.register({language:this._editor.getModel().getLanguageId(),pattern:this._editor.getModel().uri.fsPath,scheme:this._editor.getModel().uri.scheme},this._choiceCompletionItemProvider);this._snippetListener.add(e)}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent((e=>e.isFlush&&this.cancel()))),this._snippetListener.add(this._editor.onDidChangeModel((()=>this.cancel()))),this._snippetListener.add(this._editor.onDidChangeCursorSelection((()=>this._updateState())))}}_updateState(){if(this._session&&this._editor.hasModel()){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}_handleChoice(){if(!this._session||!this._editor.hasModel())return void(this._currentChoice=void 0);const{activeChoice:e}=this._session;e&&this._choiceCompletionItemProvider?this._currentChoice!==e.choice&&(this._currentChoice=e.choice,queueMicrotask((()=>{(0,h.i5)(this._editor,this._choiceCompletionItemProvider)}))):this._currentChoice=void 0}finish(){for(;this._inSnippet.get();)this.next()}cancel(e=!1){var t;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),this._currentChoice=void 0,null===(t=this._session)||void 0===t||t.dispose(),this._session=void 0,this._modelVersionId=-1,e&&this._editor.setSelections([this._editor.getSelection()])}prev(){this._session&&this._session.prev(),this._updateState()}next(){this._session&&this._session.next(),this._updateState()}isInSnippet(){return Boolean(this._inSnippet.get())}};b.ID="snippetController2",b.InSnippetMode=new g.uy("inSnippetMode",!1,(0,u.NC)("inSnippetMode","Whether the editor in current in snippet mode")),b.HasNextTabstop=new g.uy("hasNextTabstop",!1,(0,u.NC)("hasNextTabstop","Whether there is a next tab stop when in snippet mode")),b.HasPrevTabstop=new g.uy("hasPrevTabstop",!1,(0,u.NC)("hasPrevTabstop","Whether there is a previous tab stop when in snippet mode")),b=f([_(1,p.VZ),_(2,d.p),_(3,g.i6),_(4,c.c_)],b),(0,s._K)(b.ID,b);const C=s._l.bindToContribution(b.get);function w(e,t,i){const n=b.get(e);return!!n&&(e.focus(),n.apply(i.map((e=>({range:a.Y.liftSelection(e),template:t})))),n.isInSnippet())}(0,s.fK)(new C({id:"jumpToNextSnippetPlaceholder",precondition:g.Ao.and(b.InSnippetMode,b.HasNextTabstop),handler:e=>e.next(),kbOpts:{weight:130,kbExpr:l.u.editorTextFocus,primary:2}})),(0,s.fK)(new C({id:"jumpToPrevSnippetPlaceholder",precondition:g.Ao.and(b.InSnippetMode,b.HasPrevTabstop),handler:e=>e.prev(),kbOpts:{weight:130,kbExpr:l.u.editorTextFocus,primary:1026}})),(0,s.fK)(new C({id:"leaveSnippet",precondition:b.InSnippetMode,handler:e=>e.cancel(!0),kbOpts:{weight:130,kbExpr:l.u.editorTextFocus,primary:9,secondary:[1033]}})),(0,s.fK)(new C({id:"acceptSnippet",precondition:b.InSnippetMode,handler:e=>e.finish()}))},35084:(e,t,i)=>{"use strict";i.d(t,{Lv:()=>l,Vm:()=>a,Yj:()=>p,xv:()=>s,y1:()=>g});class n{constructor(){this.value="",this.pos=0}static isDigitCharacter(e){return e>=48&&e<=57}static isVariableCharacter(e){return 95===e||e>=97&&e<=122||e>=65&&e<=90}text(e){this.value=e,this.pos=0}tokenText(e){return this.value.substr(e.pos,e.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};const e=this.pos;let t,i=0,o=this.value.charCodeAt(e);if(t=n._table[o],"number"==typeof t)return this.pos+=1,{type:t,pos:e,len:1};if(n.isDigitCharacter(o)){t=8;do{i+=1,o=this.value.charCodeAt(e+i)}while(n.isDigitCharacter(o));return this.pos+=i,{type:t,pos:e,len:i}}if(n.isVariableCharacter(o)){t=9;do{o=this.value.charCodeAt(e+ ++i)}while(n.isVariableCharacter(o)||n.isDigitCharacter(o));return this.pos+=i,{type:t,pos:e,len:i}}t=10;do{i+=1,o=this.value.charCodeAt(e+i)}while(!isNaN(o)&&void 0===n._table[o]&&!n.isDigitCharacter(o)&&!n.isVariableCharacter(o));return this.pos+=i,{type:t,pos:e,len:i}}}n._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};class o{constructor(){this._children=[]}appendChild(e){return e instanceof s&&this._children[this._children.length-1]instanceof s?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this}replace(e,t){const{parent:i}=e,n=i.children.indexOf(e),o=i.children.slice(0);o.splice(n,1,...t),i._children=o,function e(t,i){for(const n of t)n.parent=i,e(n.children,n)}(t,i)}get children(){return this._children}get snippet(){let e=this;for(;;){if(!e)return;if(e instanceof g)return e;e=e.parent}}toString(){return this.children.reduce(((e,t)=>e+t.toString()),"")}len(){return 0}}class s extends o{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new s(this.value)}}class r extends o{}class a extends r{constructor(e){super(),this.index=e}static compareByIndex(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop||e.index<t.index?-1:e.index>t.index?1:0}get isFinalTabstop(){return 0===this.index}get choice(){return 1===this._children.length&&this._children[0]instanceof l?this._children[0]:void 0}clone(){const e=new a(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map((e=>e.clone())),e}}class l extends o{constructor(){super(...arguments),this.options=[]}appendChild(e){return e instanceof s&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const e=new l;return this.options.forEach(e.appendChild,e),e}}class c extends o{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(e){const t=this;let i=!1,n=e.replace(this.regexp,(function(){return i=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))}));return!i&&this._children.some((e=>e instanceof d&&Boolean(e.elseValue)))&&(n=this._replace([])),n}_replace(e){let t="";for(const i of this._children)if(i instanceof d){let n=e[i.index]||"";n=i.resolve(n),t+=n}else t+=i.toString();return t}toString(){return""}clone(){const e=new c;return e.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),e._children=this.children.map((e=>e.clone())),e}}class d extends o{constructor(e,t,i,n){super(),this.index=e,this.shorthandName=t,this.ifValue=i,this.elseValue=n}resolve(e){return"upcase"===this.shorthandName?e?e.toLocaleUpperCase():"":"downcase"===this.shorthandName?e?e.toLocaleLowerCase():"":"capitalize"===this.shorthandName?e?e[0].toLocaleUpperCase()+e.substr(1):"":"pascalcase"===this.shorthandName?e?this._toPascalCase(e):"":"camelcase"===this.shorthandName?e?this._toCamelCase(e):"":Boolean(e)&&"string"==typeof this.ifValue?this.ifValue:Boolean(e)||"string"!=typeof this.elseValue?e||"":this.elseValue}_toPascalCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map((e=>e.charAt(0).toUpperCase()+e.substr(1))).join(""):e}_toCamelCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map(((e,t)=>0===t?e.charAt(0).toLowerCase()+e.substr(1):e.charAt(0).toUpperCase()+e.substr(1))).join(""):e}clone(){return new d(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class h extends r{constructor(e){super(),this.name=e}resolve(e){let t=e.resolve(this);return this.transform&&(t=this.transform.resolve(t||"")),void 0!==t&&(this._children=[new s(t)],!0)}clone(){const e=new h(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map((e=>e.clone())),e}}function u(e,t){const i=[...e];for(;i.length>0;){const e=i.shift();if(!t(e))break;i.unshift(...e.children)}}class g extends o{get placeholderInfo(){if(!this._placeholders){const e=[];let t;this.walk((function(i){return i instanceof a&&(e.push(i),t=!t||t.index<i.index?i:t),!0})),this._placeholders={all:e,last:t}}return this._placeholders}get placeholders(){const{all:e}=this.placeholderInfo;return e}offset(e){let t=0,i=!1;return this.walk((n=>n===e?(i=!0,!1):(t+=n.len(),!0))),i?t:-1}fullLen(e){let t=0;return u([e],(e=>(t+=e.len(),!0))),t}enclosingPlaceholders(e){const t=[];let{parent:i}=e;for(;i;)i instanceof a&&t.push(i),i=i.parent;return t}resolveVariables(e){return this.walk((t=>(t instanceof h&&t.resolve(e)&&(this._placeholders=void 0),!0))),this}appendChild(e){return this._placeholders=void 0,super.appendChild(e)}replace(e,t){return this._placeholders=void 0,super.replace(e,t)}clone(){const e=new g;return this._children=this.children.map((e=>e.clone())),e}walk(e){u(this.children,e)}}class p{constructor(){this._scanner=new n,this._token={type:14,pos:0,len:0}}static escape(e){return e.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(e){return/\${?CLIPBOARD/.test(e)}parse(e,t,i){const n=new g;return this.parseFragment(e,n),this.ensureFinalTabstop(n,null!=i&&i,null!=t&&t),n}parseFragment(e,t){const i=t.children.length;for(this._scanner.text(e),this._token=this._scanner.next();this._parse(t););const n=new Map,o=[];t.walk((e=>(e instanceof a&&(e.isFinalTabstop?n.set(0,void 0):!n.has(e.index)&&e.children.length>0?n.set(e.index,e.children):o.push(e)),!0)));for(const s of o){const e=n.get(s.index);if(e){const i=new a(s.index);i.transform=s.transform;for(const t of e)i.appendChild(t.clone());t.replace(s,[i])}}return t.children.slice(i)}ensureFinalTabstop(e,t,i){if(t||i&&e.placeholders.length>0){e.placeholders.find((e=>0===e.index))||e.appendChild(new a(0))}}_accept(e,t){if(void 0===e||this._token.type===e){const e=!t||this._scanner.tokenText(this._token);return this._token=this._scanner.next(),e}return!1}_backTo(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1}_until(e){const t=this._token;for(;this._token.type!==e;){if(14===this._token.type)return!1;if(5===this._token.type){const e=this._scanner.next();if(0!==e.type&&4!==e.type&&5!==e.type)return!1}this._token=this._scanner.next()}const i=this._scanner.value.substring(t.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),i}_parse(e){return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)}_parseEscaped(e){let t;return!!(t=this._accept(5,!0))&&(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new s(t)),!0)}_parseTabstopOrVariableName(e){let t;const i=this._token;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\d+$/.test(t)?new a(Number(t)):new h(t)),!0):this._backTo(i)}_parseComplexPlaceholder(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(i);const n=new a(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(n),!0;if(!this._parse(n))return e.appendChild(new s("${"+t+":")),n.children.forEach(e.appendChild,e),!0}else{if(!(n.index>0&&this._accept(7)))return this._accept(6)?this._parseTransform(n)?(e.appendChild(n),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(n),!0):this._backTo(i);{const t=new l;for(;;){if(this._parseChoiceElement(t)){if(this._accept(2))continue;if(this._accept(7)&&(n.appendChild(t),this._accept(4)))return e.appendChild(n),!0}return this._backTo(i),!1}}}}_parseChoiceElement(e){const t=this._token,i=[];for(;2!==this._token.type&&7!==this._token.type;){let e;if(e=(e=this._accept(5,!0))?this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||e:this._accept(void 0,!0),!e)return this._backTo(t),!1;i.push(e)}return 0===i.length?(this._backTo(t),!1):(e.appendChild(new s(i.join(""))),!0)}_parseComplexVariable(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(i);const n=new h(t);if(!this._accept(1))return this._accept(6)?this._parseTransform(n)?(e.appendChild(n),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(n),!0):this._backTo(i);for(;;){if(this._accept(4))return e.appendChild(n),!0;if(!this._parse(n))return e.appendChild(new s("${"+t+":")),n.children.forEach(e.appendChild,e),!0}}_parseTransform(e){const t=new c;let i="",n="";for(;!this._accept(6);){let e;if(e=this._accept(5,!0))e=this._accept(6,!0)||e,i+=e;else{if(14===this._token.type)return!1;i+=this._accept(void 0,!0)}}for(;!this._accept(6);){let e;if(e=this._accept(5,!0))e=this._accept(5,!0)||this._accept(6,!0)||e,t.appendChild(new s(e));else if(!this._parseFormatString(t)&&!this._parseAnything(t))return!1}for(;!this._accept(4);){if(14===this._token.type)return!1;n+=this._accept(void 0,!0)}try{t.regexp=new RegExp(i,n)}catch(o){return!1}return e.transform=t,!0}_parseFormatString(e){const t=this._token;if(!this._accept(0))return!1;let i=!1;this._accept(3)&&(i=!0);const n=this._accept(8,!0);if(!n)return this._backTo(t),!1;if(!i)return e.appendChild(new d(Number(n))),!0;if(this._accept(4))return e.appendChild(new d(Number(n))),!0;if(!this._accept(1))return this._backTo(t),!1;if(this._accept(6)){const i=this._accept(9,!0);return i&&this._accept(4)?(e.appendChild(new d(Number(n),i)),!0):(this._backTo(t),!1)}if(this._accept(11)){const t=this._until(4);if(t)return e.appendChild(new d(Number(n),void 0,t,void 0)),!0}else if(this._accept(12)){const t=this._until(4);if(t)return e.appendChild(new d(Number(n),void 0,void 0,t)),!0}else if(this._accept(13)){const t=this._until(1);if(t){const i=this._until(4);if(i)return e.appendChild(new d(Number(n),void 0,t,i)),!0}}else{const t=this._until(4);if(t)return e.appendChild(new d(Number(n),void 0,void 0,t)),!0}return this._backTo(t),!1}_parseAnything(e){return 14!==this._token.type&&(e.appendChild(new s(this._scanner.tokenText(this._token))),this._accept(void 0),!0)}}},7307:(e,t,i)=>{"use strict";i.d(t,{l:()=>O});var n=i(9488),o=i(5976),s=i(97295),r=i(69386),a=i(24314),l=i(3860),c=i(4256),d=i(22529),h=i(44349),u=i(40382),g=i(35084),p=i(15527),m=i(1432);function f(e,t=m.ED){return(0,p.oP)(e,t)?e.charAt(0).toUpperCase()+e.slice(1):e}Object.create(null);var _=i(55336),v=i(95935),b=i(98e3),C=i(63580),w=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},y=function(e,t){return function(i,n){t(i,n,e)}};Object.freeze({CURRENT_YEAR:!0,CURRENT_YEAR_SHORT:!0,CURRENT_MONTH:!0,CURRENT_DATE:!0,CURRENT_HOUR:!0,CURRENT_MINUTE:!0,CURRENT_SECOND:!0,CURRENT_DAY_NAME:!0,CURRENT_DAY_NAME_SHORT:!0,CURRENT_MONTH_NAME:!0,CURRENT_MONTH_NAME_SHORT:!0,CURRENT_SECONDS_UNIX:!0,SELECTION:!0,CLIPBOARD:!0,TM_SELECTED_TEXT:!0,TM_CURRENT_LINE:!0,TM_CURRENT_WORD:!0,TM_LINE_INDEX:!0,TM_LINE_NUMBER:!0,TM_FILENAME:!0,TM_FILENAME_BASE:!0,TM_DIRECTORY:!0,TM_FILEPATH:!0,CURSOR_INDEX:!0,CURSOR_NUMBER:!0,RELATIVE_FILEPATH:!0,BLOCK_COMMENT_START:!0,BLOCK_COMMENT_END:!0,LINE_COMMENT:!0,WORKSPACE_NAME:!0,WORKSPACE_FOLDER:!0,RANDOM:!0,RANDOM_HEX:!0,UUID:!0});class S{constructor(e){this._delegates=e}resolve(e){for(const t of this._delegates){const i=t.resolve(e);if(void 0!==i)return i}}}class L{constructor(e,t,i,n){this._model=e,this._selection=t,this._selectionIdx=i,this._overtypingCapturer=n}resolve(e){const{name:t}=e;if("SELECTION"===t||"TM_SELECTED_TEXT"===t){let t=this._model.getValueInRange(this._selection)||void 0,i=this._selection.startLineNumber!==this._selection.endLineNumber;if(!t&&this._overtypingCapturer){const e=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);e&&(t=e.value,i=e.multiline)}if(t&&i&&e.snippet){const i=this._model.getLineContent(this._selection.startLineNumber),n=(0,s.V8)(i,0,this._selection.startColumn-1);let o=n;e.snippet.walk((t=>t!==e&&(t instanceof g.xv&&(o=(0,s.V8)((0,s.uq)(t.value).pop())),!0)));const r=(0,s.Mh)(o,n);t=t.replace(/(\r\n|\r|\n)(.*)/g,((e,t,i)=>`${t}${o.substr(r)}${i}`))}return t}if("TM_CURRENT_LINE"===t)return this._model.getLineContent(this._selection.positionLineNumber);if("TM_CURRENT_WORD"===t){const e=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return e&&e.word||void 0}return"TM_LINE_INDEX"===t?String(this._selection.positionLineNumber-1):"TM_LINE_NUMBER"===t?String(this._selection.positionLineNumber):"CURSOR_INDEX"===t?String(this._selectionIdx):"CURSOR_NUMBER"===t?String(this._selectionIdx+1):void 0}}class k{constructor(e,t){this._labelService=e,this._model=t}resolve(e){const{name:t}=e;if("TM_FILENAME"===t)return _.EZ(this._model.uri.fsPath);if("TM_FILENAME_BASE"===t){const e=_.EZ(this._model.uri.fsPath),t=e.lastIndexOf(".");return t<=0?e:e.slice(0,t)}return"TM_DIRECTORY"===t?"."===_.XX(this._model.uri.fsPath)?"":this._labelService.getUriLabel((0,v.XX)(this._model.uri)):"TM_FILEPATH"===t?this._labelService.getUriLabel(this._model.uri):"RELATIVE_FILEPATH"===t?this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0}):void 0}}class x{constructor(e,t,i,n){this._readClipboardText=e,this._selectionIdx=t,this._selectionCount=i,this._spread=n}resolve(e){if("CLIPBOARD"!==e.name)return;const t=this._readClipboardText();if(t){if(this._spread){const e=t.split(/\r\n|\n|\r/).filter((e=>!(0,s.m5)(e)));if(e.length===this._selectionCount)return e[this._selectionIdx]}return t}}}let D=class{constructor(e,t,i){this._model=e,this._selection=t,this._languageConfigurationService=i}resolve(e){const{name:t}=e,i=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),n=this._languageConfigurationService.getLanguageConfiguration(i).comments;if(n)return"LINE_COMMENT"===t?n.lineCommentToken||void 0:"BLOCK_COMMENT_START"===t?n.blockCommentStartToken||void 0:"BLOCK_COMMENT_END"===t&&n.blockCommentEndToken||void 0}};D=w([y(2,c.c_)],D);class N{constructor(){this._date=new Date}resolve(e){const{name:t}=e;return"CURRENT_YEAR"===t?String(this._date.getFullYear()):"CURRENT_YEAR_SHORT"===t?String(this._date.getFullYear()).slice(-2):"CURRENT_MONTH"===t?String(this._date.getMonth().valueOf()+1).padStart(2,"0"):"CURRENT_DATE"===t?String(this._date.getDate().valueOf()).padStart(2,"0"):"CURRENT_HOUR"===t?String(this._date.getHours().valueOf()).padStart(2,"0"):"CURRENT_MINUTE"===t?String(this._date.getMinutes().valueOf()).padStart(2,"0"):"CURRENT_SECOND"===t?String(this._date.getSeconds().valueOf()).padStart(2,"0"):"CURRENT_DAY_NAME"===t?N.dayNames[this._date.getDay()]:"CURRENT_DAY_NAME_SHORT"===t?N.dayNamesShort[this._date.getDay()]:"CURRENT_MONTH_NAME"===t?N.monthNames[this._date.getMonth()]:"CURRENT_MONTH_NAME_SHORT"===t?N.monthNamesShort[this._date.getMonth()]:"CURRENT_SECONDS_UNIX"===t?String(Math.floor(this._date.getTime()/1e3)):void 0}}N.dayNames=[C.NC("Sunday","Sunday"),C.NC("Monday","Monday"),C.NC("Tuesday","Tuesday"),C.NC("Wednesday","Wednesday"),C.NC("Thursday","Thursday"),C.NC("Friday","Friday"),C.NC("Saturday","Saturday")],N.dayNamesShort=[C.NC("SundayShort","Sun"),C.NC("MondayShort","Mon"),C.NC("TuesdayShort","Tue"),C.NC("WednesdayShort","Wed"),C.NC("ThursdayShort","Thu"),C.NC("FridayShort","Fri"),C.NC("SaturdayShort","Sat")],N.monthNames=[C.NC("January","January"),C.NC("February","February"),C.NC("March","March"),C.NC("April","April"),C.NC("May","May"),C.NC("June","June"),C.NC("July","July"),C.NC("August","August"),C.NC("September","September"),C.NC("October","October"),C.NC("November","November"),C.NC("December","December")],N.monthNamesShort=[C.NC("JanuaryShort","Jan"),C.NC("FebruaryShort","Feb"),C.NC("MarchShort","Mar"),C.NC("AprilShort","Apr"),C.NC("MayShort","May"),C.NC("JuneShort","Jun"),C.NC("JulyShort","Jul"),C.NC("AugustShort","Aug"),C.NC("SeptemberShort","Sep"),C.NC("OctoberShort","Oct"),C.NC("NovemberShort","Nov"),C.NC("DecemberShort","Dec")];class E{constructor(e){this._workspaceService=e}resolve(e){if(!this._workspaceService)return;const t=(0,u.uT)(this._workspaceService.getWorkspace());return t?"WORKSPACE_NAME"===e.name?this._resolveWorkspaceName(t):"WORKSPACE_FOLDER"===e.name?this._resoveWorkspacePath(t):void 0:void 0}_resolveWorkspaceName(e){if((0,u.eb)(e))return _.EZ(e.uri.path);let t=_.EZ(e.configPath.path);return t.endsWith(u.A6)&&(t=t.substr(0,t.length-u.A6.length-1)),t}_resoveWorkspacePath(e){if((0,u.eb)(e))return f(e.uri.fsPath);const t=_.EZ(e.configPath.path);let i=e.configPath.fsPath;return i.endsWith(t)&&(i=i.substr(0,i.length-t.length-1)),i?f(i):"/"}}class I{resolve(e){const{name:t}=e;return"RANDOM"===t?Math.random().toString().slice(-6):"RANDOM_HEX"===t?Math.random().toString(16).slice(-6):"UUID"===t?(0,b.R)():void 0}}var T=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},M=function(e,t){return function(i,n){t(i,n,e)}};class A{constructor(e,t,i){this._editor=e,this._snippet=t,this._snippetLineLeadingWhitespace=i,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=(0,n.vM)(t.placeholders,g.Vm.compareByIndex),this._placeholderGroupsIdx=-1}initialize(e){this._offset=e.newPosition}dispose(){this._placeholderDecorations&&this._editor.removeDecorations([...this._placeholderDecorations.values()]),this._placeholderGroups.length=0}_initDecorations(){if(-1===this._offset)throw new Error("Snippet not initialized!");if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;const e=this._editor.getModel();this._editor.changeDecorations((t=>{for(const i of this._snippet.placeholders){const n=this._snippet.offset(i),o=this._snippet.fullLen(i),s=a.e.fromPositions(e.getPositionAt(this._offset+n),e.getPositionAt(this._offset+n+o)),r=i.isFinalTabstop?A._decor.inactiveFinal:A._decor.inactive,l=t.addDecoration(s,r);this._placeholderDecorations.set(i,l)}}))}move(e){if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){const e=[];for(const t of this._placeholderGroups[this._placeholderGroupsIdx])if(t.transform){const i=this._placeholderDecorations.get(t),n=this._editor.getModel().getDecorationRange(i),o=this._editor.getModel().getValueInRange(n),s=t.transform.resolve(o).split(/\r\n|\r|\n/);for(let e=1;e<s.length;e++)s[e]=this._editor.getModel().normalizeIndentation(this._snippetLineLeadingWhitespace+s[e]);e.push(r.h.replace(n,s.join(this._editor.getModel().getEOL())))}e.length>0&&this._editor.executeEdits("snippet.placeholderTransform",e)}let t=!1;!0===e&&this._placeholderGroupsIdx<this._placeholderGroups.length-1?(this._placeholderGroupsIdx+=1,t=!0):!1===e&&this._placeholderGroupsIdx>0&&(this._placeholderGroupsIdx-=1,t=!0);const i=this._editor.getModel().changeDecorations((e=>{const i=new Set,n=[];for(const o of this._placeholderGroups[this._placeholderGroupsIdx]){const s=this._placeholderDecorations.get(o),r=this._editor.getModel().getDecorationRange(s);n.push(new l.Y(r.startLineNumber,r.startColumn,r.endLineNumber,r.endColumn)),t=t&&this._hasPlaceholderBeenCollapsed(o),e.changeDecorationOptions(s,o.isFinalTabstop?A._decor.activeFinal:A._decor.active),i.add(o);for(const t of this._snippet.enclosingPlaceholders(o)){const n=this._placeholderDecorations.get(t);e.changeDecorationOptions(n,t.isFinalTabstop?A._decor.activeFinal:A._decor.active),i.add(t)}}for(const[t,o]of this._placeholderDecorations)i.has(t)||e.changeDecorationOptions(o,t.isFinalTabstop?A._decor.inactiveFinal:A._decor.inactive);return n}));return t?this.move(e):null!=i?i:[]}_hasPlaceholderBeenCollapsed(e){let t=e;for(;t;){if(t instanceof g.Vm){const e=this._placeholderDecorations.get(t);if(this._editor.getModel().getDecorationRange(e).isEmpty()&&t.toString().length>0)return!0}t=t.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||0===this._placeholderGroups.length}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){return 0===this._snippet.placeholders.length||1===this._snippet.placeholders.length&&this._snippet.placeholders[0].isFinalTabstop}computePossibleSelections(){const e=new Map;for(const t of this._placeholderGroups){let i;for(const n of t){if(n.isFinalTabstop)break;i||(i=[],e.set(n.index,i));const t=this._placeholderDecorations.get(n),o=this._editor.getModel().getDecorationRange(t);if(!o){e.delete(n.index);break}i.push(o)}}return e}get activeChoice(){if(!this._placeholderDecorations)return;const e=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!(null==e?void 0:e.choice))return;const t=this._placeholderDecorations.get(e);if(!t)return;const i=this._editor.getModel().getDecorationRange(t);return i?{range:i,choice:e.choice}:void 0}get hasChoice(){let e=!1;return this._snippet.walk((t=>(e=t instanceof g.Lv,!e))),e}merge(e){const t=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations((i=>{for(const n of this._placeholderGroups[this._placeholderGroupsIdx]){const o=e.shift();console.assert(-1!==o._offset),console.assert(!o._placeholderDecorations);const s=o._snippet.placeholderInfo.last.index;for(const e of o._snippet.placeholderInfo.all)e.isFinalTabstop?e.index=n.index+(s+1)/this._nestingLevel:e.index=n.index+e.index/this._nestingLevel;this._snippet.replace(n,o._snippet.children);const r=this._placeholderDecorations.get(n);i.removeDecoration(r),this._placeholderDecorations.delete(n);for(const e of o._snippet.placeholders){const n=o._snippet.offset(e),s=o._snippet.fullLen(e),r=a.e.fromPositions(t.getPositionAt(o._offset+n),t.getPositionAt(o._offset+n+s)),l=i.addDecoration(r,A._decor.inactive);this._placeholderDecorations.set(e,l)}}this._placeholderGroups=(0,n.vM)(this._snippet.placeholders,g.Vm.compareByIndex)}))}}A._decor={active:d.qx.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:d.qx.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:d.qx.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:d.qx.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})};const R={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let O=class e{constructor(e,t,i=R,n){this._editor=e,this._template=t,this._options=i,this._languageConfigurationService=n,this._templateMerges=[],this._snippets=[]}static adjustWhitespace(e,t,i,n,o){const r=e.getLineContent(t.lineNumber),a=(0,s.V8)(r,0,t.column-1);let l;return i.walk((t=>{if(!(t instanceof g.xv)||t.parent instanceof g.Lv)return!0;const o=t.value.split(/\r\n|\r|\n/);if(n){const n=i.offset(t);if(0===n)o[0]=e.normalizeIndentation(o[0]);else{l=null!=l?l:i.toString();const t=l.charCodeAt(n-1);10!==t&&13!==t||(o[0]=e.normalizeIndentation(a+o[0]))}for(let t=1;t<o.length;t++)o[t]=e.normalizeIndentation(a+o[t])}const s=o.join(e.getEOL());return s!==t.value&&(t.parent.replace(t,[new g.xv(s)]),l=void 0),!0})),a}static adjustSelection(e,t,i,n){if(0!==i||0!==n){const{positionLineNumber:o,positionColumn:s}=t,r=s-i,a=s+n,c=e.validateRange({startLineNumber:o,startColumn:r,endLineNumber:o,endColumn:a});t=l.Y.createWithDirection(c.startLineNumber,c.startColumn,c.endLineNumber,c.endColumn,t.getDirection())}return t}static createEditsAndSnippetsFromSelections(t,i,n,o,s,l,c,d,p){const m=[],f=[];if(!t.hasModel())return{edits:m,snippets:f};const _=t.getModel(),v=t.invokeWithinContext((e=>e.get(u.ec))),b=t.invokeWithinContext((e=>new k(e.get(h.e),_))),C=()=>c,w=_.getValueInRange(e.adjustSelection(_,t.getSelection(),n,0)),y=_.getValueInRange(e.adjustSelection(_,t.getSelection(),0,o)),T=_.getLineFirstNonWhitespaceColumn(t.getSelection().positionLineNumber),M=t.getSelections().map(((e,t)=>({selection:e,idx:t}))).sort(((e,t)=>a.e.compareRangesUsingStarts(e.selection,t.selection)));for(const{selection:a,idx:h}of M){let c=e.adjustSelection(_,a,n,0),u=e.adjustSelection(_,a,0,o);w!==_.getValueInRange(c)&&(c=a),y!==_.getValueInRange(u)&&(u=a);const k=a.setStartPosition(c.startLineNumber,c.startColumn).setEndPosition(u.endLineNumber,u.endColumn),R=(new g.Yj).parse(i,!0,s),O=k.getStartPosition(),P=e.adjustWhitespace(_,O,R,l||h>0&&T!==_.getLineFirstNonWhitespaceColumn(a.positionLineNumber),!0);R.resolveVariables(new S([b,new x(C,h,M.length,"spread"===t.getOption(73)),new L(_,a,h,d),new D(_,a,p),new N,new E(v),new I])),m[h]=r.h.replace(k,R.toString()),m[h].identifier={major:h,minor:0},m[h]._isTracked=!0,f[h]=new A(t,R,P)}return{edits:m,snippets:f}}static createEditsAndSnippetsFromEdits(e,t,i,n,o,s,l){if(!e.hasModel()||0===t.length)return{edits:[],snippets:[]};const c=[],d=e.getModel(),p=new g.Yj,m=new g.y1,f=new S([e.invokeWithinContext((e=>new k(e.get(h.e),d))),new x((()=>o),0,e.getSelections().length,"spread"===e.getOption(73)),new L(d,e.getSelection(),0,s),new D(d,e.getSelection(),l),new N,new E(e.invokeWithinContext((e=>e.get(u.ec)))),new I]);t=t.sort(((e,t)=>a.e.compareRangesUsingStarts(e.range,t.range)));let _=0;for(let h=0;h<t.length;h++){const{range:e,template:i}=t[h];if(h>0){const i=t[h-1].range,n=a.e.fromPositions(i.getEndPosition(),e.getStartPosition()),o=new g.xv(d.getValueInRange(n));m.appendChild(o),_+=o.value.length}p.parseFragment(i,m),m.resolveVariables(f);const n=m.toString(),o=n.slice(_);_=n.length;const s=r.h.replace(e,o);s.identifier={major:h,minor:0},s._isTracked=!0,c.push(s)}return p.ensureFinalTabstop(m,i,!0),{edits:c,snippets:[new A(e,m,"")]}}dispose(){(0,o.B9)(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(){if(!this._editor.hasModel())return;const{edits:t,snippets:i}="string"==typeof this._template?e.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):e.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=i,this._editor.executeEdits("snippet",t,(e=>{const t=e.filter((e=>!!e.identifier));for(let n=0;n<i.length;n++)i[n].initialize(t[n].textChange);return this._snippets[0].hasPlaceholder?this._move(!0):t.map((e=>l.Y.fromPositions(e.range.getEndPosition())))})),this._editor.revealRange(this._editor.getSelections()[0])}merge(t,i=R){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,t]);const{edits:n,snippets:o}=e.createEditsAndSnippetsFromSelections(this._editor,t,i.overwriteBefore,i.overwriteAfter,!0,i.adjustWhitespace,i.clipboardText,i.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",n,(e=>{const t=e.filter((e=>!!e.identifier));for(let n=0;n<o.length;n++)o[n].initialize(t[n].textChange);const i=o[0].isTrivialSnippet;if(!i){for(const e of this._snippets)e.merge(o);console.assert(0===o.length)}return this._snippets[0].hasPlaceholder&&!i?this._move(void 0):t.map((e=>l.Y.fromPositions(e.range.getEndPosition())))}))}next(){const e=this._move(!0);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}prev(){const e=this._move(!1);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}_move(e){const t=[];for(const i of this._snippets){const n=i.move(e);t.push(...n)}return t}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;const e=this._editor.getSelections();if(e.length<this._snippets.length)return!1;const t=new Map;for(const i of this._snippets){const n=i.computePossibleSelections();if(0===t.size)for(const[i,o]of n){o.sort(a.e.compareRangesUsingStarts);for(const n of e)if(o[0].containsRange(n)){t.set(i,[]);break}}if(0===t.size)return!1;t.forEach(((e,t)=>{e.push(...n.get(t))}))}e.sort(a.e.compareRangesUsingStarts);for(const[i,n]of t)if(n.length===e.length){n.sort(a.e.compareRangesUsingStarts);for(let o=0;o<n.length;o++)n[o].containsRange(e[o])||t.delete(i)}else t.delete(i);return t.size>0}};O=T([M(3,c.c_)],O)},61984:(e,t,i)=>{"use strict";var n,o=i(5976),s=i(16830),r=i(71922),a=i(30335),l=i(71050),c=i(65321),d=i(50072),h=i(72202),u=i(92550),g=i(15393),p=i(50187),m=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},f=function(e,t){return function(i,n){t(i,n,e)}},_=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let v=class extends o.JT{constructor(e,t){super(),this._sessionStore=new o.SL,this._ranges=[],this._rangesVersionId=0,this._editor=e,this._languageFeaturesService=t,this.stickyScrollWidget=new w(this._editor),this._register(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(34)&&this.onConfigurationChange()}))),this._updateSoon=this._register(new g.pY((()=>this._update(!0)),50)),this.onConfigurationChange()}onConfigurationChange(){if(!1===this._editor.getOption(34).stickyScroll.enabled)return this.stickyScrollWidget.emptyRootNode(),this._editor.removeOverlayWidget(this.stickyScrollWidget),void this._sessionStore.clear();this._editor.addOverlayWidget(this.stickyScrollWidget),this._sessionStore.add(this._editor.onDidChangeModel((()=>this._update(!0)))),this._sessionStore.add(this._editor.onDidScrollChange((()=>this._update(!1)))),this._sessionStore.add(this._editor.onDidChangeHiddenAreas((()=>this._update(!0)))),this._sessionStore.add(this._editor.onDidChangeModelTokens((e=>this._onTokensChange(e)))),this._sessionStore.add(this._editor.onDidChangeModelContent((()=>this._updateSoon.schedule()))),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange((()=>this._update(!0)))),this._update(!0)}_needsUpdate(e){const t=this.stickyScrollWidget.getCurrentLines();for(const i of t)for(const t of e.ranges)if(i>=t.fromLineNumber&&i<=t.toLineNumber)return!0;return!1}_onTokensChange(e){this._needsUpdate(e)&&this._update(!1)}_update(e=!1){var t,i;return _(this,void 0,void 0,(function*(){e&&(null===(t=this._cts)||void 0===t||t.dispose(!0),this._cts=new l.A,yield this._updateOutlineModel(this._cts.token));const n=null===(i=this._editor._getViewModel())||void 0===i?void 0:i.getHiddenAreas();if(n)for(const e of n)this._ranges=this._ranges.filter((t=>!(t[0]>=e.startLineNumber&&t[1]<=e.endLineNumber+1)));this._renderStickyScroll()}))}_findLineRanges(e,t){if(null==e?void 0:e.children.size){let i=!1;for(const n of null==e?void 0:e.children.values()){const e=n.symbol.kind;4!==e&&8!==e&&11!==e&&10!==e&&5!==e&&1!==e||(i=!0,this._findLineRanges(n,t+1))}i||this._addOutlineRanges(e,t)}else this._addOutlineRanges(e,t)}_addOutlineRanges(e,t){let i=0,n=0;for(;e;){const o=e.symbol.kind;if(4!==o&&8!==o&&11!==o&&10!==o&&5!==o&&1!==o||(i=null==e?void 0:e.symbol.range.startLineNumber,n=null==e?void 0:e.symbol.range.endLineNumber,this._ranges.push([i,n,t]),t--),!(e.parent instanceof a.sT))break;e=e.parent}}_updateOutlineModel(e){return _(this,void 0,void 0,(function*(){if(this._editor.hasModel()){const t=this._editor.getModel(),i=t.getVersionId(),n=yield a.C3.create(this._languageFeaturesService.documentSymbolProvider,t,e);if(e.isCancellationRequested)return;this._ranges=[],this._rangesVersionId=i;for(const e of n.children.values()){if(e instanceof a.sT){const t=e.symbol.kind;4===t||8===t||11===t||10===t||5===t||1===t?this._findLineRanges(e,1):this._findLineRanges(e,0)}this._ranges=this._ranges.sort((function(e,t){return e[0]!==t[0]?e[0]-t[0]:e[1]!==t[1]?t[1]-e[1]:e[2]-t[2]}));let t=[];for(const[e,i]of this._ranges.entries()){const[n,o,s]=i;t[0]===n&&t[1]===o?this._ranges.splice(e,1):t=i}}}}))}_renderStickyScroll(){if(!this._editor.hasModel())return;const e=this._editor.getOption(61),t=this._editor.getModel();if(this._rangesVersionId!==t.getVersionId())return;const i=this._editor.getScrollTop();this.stickyScrollWidget.emptyRootNode();const n=new Set;for(const[o,s]of this._ranges.entries()){const[r,a,l]=s;if(a-r>0&&""!==t.getLineContent(r)){const t=(l-1)*e,s=l*e,c=this._editor.getBottomForLineNumber(r)-i,d=this._editor.getTopForLineNumber(a)-i,h=this._editor.getBottomForLineNumber(a)-i;if(n.has(r))this._ranges.splice(o,1);else{if(t>=d-1&&t<h-2){n.add(r),this.stickyScrollWidget.pushCodeLine(new C(r,l,this._editor,-1,h-s));break}s>c&&s<h-1&&(n.add(r),this.stickyScrollWidget.pushCodeLine(new C(r,l,this._editor,0,0)))}}}this.stickyScrollWidget.updateRootNode()}dispose(){super.dispose(),this._sessionStore.dispose()}};v.ID="store.contrib.stickyScrollController",v=m([f(1,r.p)],v);const b=null===(n=window.trustedTypes)||void 0===n?void 0:n.createPolicy("stickyScrollViewLayer",{createHTML:e=>e});class C{constructor(e,t,i,n,o){this._lineNumber=e,this._depth=t,this._editor=i,this._zIndex=n,this._relativePosition=o,this.effectiveLineHeight=0,this.effectiveLineHeight=this._editor.getOption(61)+this._relativePosition}get lineNumber(){return this._lineNumber}getDomNode(){const e=document.createElement("div"),t=this._editor._getViewModel(),i=t.coordinatesConverter.convertModelPositionToViewPosition(new p.L(this._lineNumber,1)).lineNumber,n=t.getViewLineRenderingData(i);let o;try{o=u.Kp.filter(n.inlineDecorations,i,n.minColumn,n.maxColumn)}catch(m){o=[]}const s=new h.IJ(!0,!0,n.content,n.continuesWithWrappedLine,n.isBasicASCII,n.containsRTL,0,n.tokens,o,n.tabSize,n.startVisibleColumn,1,1,1,100,"none",!0,!0,null),r=(0,d.l$)(400);let a;(0,h.d1)(s,r),a=b?b.createHTML(r.build()):r.build();const l=document.createElement("span");l.style.backgroundColor="var(--vscode-editorStickyScroll-background)",l.style.overflow="hidden",l.style.whiteSpace="nowrap",l.style.display="inline-block",l.style.lineHeight=this._editor.getOption(61).toString()+"px",l.innerHTML=a;const c=document.createElement("span");c.style.width=this._editor.getLayoutInfo().contentLeft.toString()+"px",c.style.backgroundColor="var(--vscode-editorStickyScroll-background)",c.style.color="var(--vscode-editorLineNumber-foreground)",c.style.display="inline-block",c.style.lineHeight=this._editor.getOption(61).toString()+"px";const g=document.createElement("span");return g.innerText=this._lineNumber.toString(),g.style.paddingLeft=this._editor.getLayoutInfo().lineNumbersLeft.toString()+"px",g.style.width=this._editor.getLayoutInfo().lineNumbersWidth.toString()+"px",g.style.backgroundColor="var(--vscode-editorStickyScroll-background)",g.style.textAlign="right",g.style.float="left",g.style.lineHeight=this._editor.getOption(61).toString()+"px",c.appendChild(g),e.onclick=e=>{e.stopPropagation(),e.preventDefault(),this._editor.revealPosition({lineNumber:this._lineNumber-this._depth+1,column:1})},e.onmouseover=t=>{g.style.background="var(--vscode-editorStickyScrollHover-background)",l.style.backgroundColor="var(--vscode-editorStickyScrollHover-background)",c.style.backgroundColor="var(--vscode-editorStickyScrollHover-background)",e.style.backgroundColor="var(--vscode-editorStickyScrollHover-background)",g.style.cursor="pointer",l.style.cursor="pointer",e.style.cursor="pointer",c.style.cursor="pointer"},e.onmouseleave=t=>{g.style.background="var(--vscode-editorStickyScroll-background)",l.style.backgroundColor="var(--vscode-editorStickyScroll-background)",c.style.backgroundColor="var(--vscode-editorStickyScroll-background)",e.style.backgroundColor="var(--vscode-editorStickyScroll-background)"},this._editor.applyFontInfo(l),this._editor.applyFontInfo(g),e.appendChild(c),e.appendChild(l),e.style.zIndex=this._zIndex.toString(),e.style.backgroundColor="var(--vscode-editorStickyScroll-background)",e.style.overflow="hidden",e.style.whiteSpace="nowrap",e.style.width="100%",e.style.lineHeight=this._editor.getOption(61).toString()+"px",e.style.height=this._editor.getOption(61).toString()+"px",this._relativePosition&&(e.style.position="relative",e.style.top=this._relativePosition+"px",e.style.width="100%"),e}}class w{constructor(e){this._editor=e,this.arrayOfCodeLines=[],this.rootDomNode=document.createElement("div"),this.rootDomNode=document.createElement("div"),this.rootDomNode.style.width="100%",this.rootDomNode.style.boxShadow="var(--vscode-scrollbar-shadow) 0 6px 6px -6px"}getCurrentLines(){const e=[];for(const t of this.arrayOfCodeLines)e.push(t.lineNumber);return e}pushCodeLine(e){this.arrayOfCodeLines.push(e)}updateRootNode(){let e=0;for(const t of this.arrayOfCodeLines)e+=t.effectiveLineHeight,this.rootDomNode.appendChild(t.getDomNode());this.rootDomNode.style.height=e.toString()+"px"}emptyRootNode(){this.arrayOfCodeLines.length=0,c.PO(this.rootDomNode)}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this.rootDomNode.style.zIndex="2",this.rootDomNode.style.backgroundColor="var(--vscode-editorStickyScroll-background)",this.rootDomNode}getPosition(){return{preference:null}}}(0,s._K)(v.ID,v)},74961:(e,t,i)=>{"use strict";i.d(t,{_:()=>a,t:()=>r});var n=i(9488),o=i(48357),s=i(97295);class r{constructor(e,t){this.leadingLineContent=e,this.characterCountDelta=t}}class a{constructor(e,t,i,n,s,r,l=o.mX.default,c){this.clipboardText=c,this._snippetCompareFn=a._compareCompletionItems,this._items=e,this._column=t,this._wordDistance=n,this._options=s,this._refilterKind=1,this._lineContext=i,this._fuzzyScoreOptions=l,"top"===r?this._snippetCompareFn=a._compareCompletionItemsSnippetsUp:"bottom"===r&&(this._snippetCompareFn=a._compareCompletionItemsSnippetsDown)}get lineContext(){return this._lineContext}set lineContext(e){this._lineContext.leadingLineContent===e.leadingLineContent&&this._lineContext.characterCountDelta===e.characterCountDelta||(this._refilterKind=this._lineContext.characterCountDelta<e.characterCountDelta&&this._filteredItems?2:1,this._lineContext=e)}get items(){return this._ensureCachedState(),this._filteredItems}get allProvider(){return this._ensureCachedState(),this._providerInfo.keys()}get incomplete(){this._ensureCachedState();const e=new Set;for(const[t,i]of this._providerInfo)i&&e.add(t);return e}adopt(e){const t=[];for(let i=0;i<this._items.length;)e.has(this._items[i].provider)?i++:(t.push(this._items[i]),this._items[i]=this._items[this._items.length-1],this._items.pop());return this._refilterKind=1,t}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){0!==this._refilterKind&&this._createCachedState()}_createCachedState(){this._providerInfo=new Map;const e=[],{leadingLineContent:t,characterCountDelta:i}=this._lineContext;let r="",a="";const l=1===this._refilterKind?this._items:this._filteredItems,c=[],d=!this._options.filterGraceful||l.length>2e3?o.EW:o.l7;for(let n=0;n<l.length;n++){const h=l[n];if(h.isInvalid)continue;this._providerInfo.set(h.provider,Boolean(h.container.incomplete));const u=h.position.column-h.editStart.column,g=u+i-(h.position.column-this._column);if(r.length!==g&&(r=0===g?"":t.slice(-g),a=r.toLowerCase()),h.word=r,0===g)h.score=o.CL.Default;else{let e=0;for(;e<u;){const t=r.charCodeAt(e);if(32!==t&&9!==t)break;e+=1}if(e>=g)h.score=o.CL.Default;else if("string"==typeof h.completion.filterText){const t=d(r,a,e,h.completion.filterText,h.filterTextLow,0,this._fuzzyScoreOptions);if(!t)continue;0===(0,s.zY)(h.completion.filterText,h.textLabel)?h.score=t:(h.score=(0,o.jB)(r,a,e,h.textLabel,h.labelLow,0),h.score[0]=t[0])}else{const t=d(r,a,e,h.textLabel,h.labelLow,0,this._fuzzyScoreOptions);if(!t)continue;h.score=t}}h.idx=n,h.distance=this._wordDistance.distance(h.position,h.completion),c.push(h),e.push(h.textLabel.length)}this._filteredItems=c.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:e.length?(0,n.HW)(e.length-.85,e,((e,t)=>e-t)):0}}static _compareCompletionItems(e,t){return e.score[0]>t.score[0]?-1:e.score[0]<t.score[0]?1:e.distance<t.distance?-1:e.distance>t.distance?1:e.idx<t.idx?-1:e.idx>t.idx?1:0}static _compareCompletionItemsSnippetsDown(e,t){if(e.completion.kind!==t.completion.kind){if(27===e.completion.kind)return 1;if(27===t.completion.kind)return-1}return a._compareCompletionItems(e,t)}static _compareCompletionItemsSnippetsUp(e,t){if(e.completion.kind!==t.completion.kind){if(27===e.completion.kind)return-1;if(27===t.completion.kind)return 1}return a._compareCompletionItems(e,t)}}},55621:(e,t,i)=>{"use strict";i.d(t,{A9:()=>L,GI:()=>y,ZJ:()=>x,_y:()=>w,i5:()=>M,kL:()=>N,tG:()=>A,wg:()=>T});var n=i(71050),o=i(17301),s=i(48357),r=i(5976),a=i(84013),l=i(98401),c=i(70666),d=i(50187),h=i(24314),u=i(88216),g=i(35084),p=i(63580),m=i(84144),f=i(94565),_=i(38819),v=i(71922),b=i(37726),C=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const w={Visible:b.iX,HasFocusedSuggestion:new _.uy("suggestWidgetHasFocusedSuggestion",!1,(0,p.NC)("suggestWidgetHasSelection","Whether any suggestion is focused")),DetailsVisible:new _.uy("suggestWidgetDetailsVisible",!1,(0,p.NC)("suggestWidgetDetailsVisible","Whether suggestion details are visible")),MultipleSuggestions:new _.uy("suggestWidgetMultipleSuggestions",!1,(0,p.NC)("suggestWidgetMultipleSuggestions","Whether there are multiple suggestions to pick from")),MakesTextEdit:new _.uy("suggestionMakesTextEdit",!0,(0,p.NC)("suggestionMakesTextEdit","Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new _.uy("acceptSuggestionOnEnter",!0,(0,p.NC)("acceptSuggestionOnEnter","Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new _.uy("suggestionHasInsertAndReplaceRange",!1,(0,p.NC)("suggestionHasInsertAndReplaceRange","Whether the current suggestion has insert and replace behaviour")),InsertMode:new _.uy("suggestionInsertMode",void 0,{type:"string",description:(0,p.NC)("suggestionInsertMode","Whether the default behaviour is to insert or replace")}),CanResolve:new _.uy("suggestionCanResolve",!1,(0,p.NC)("suggestionCanResolve","Whether the current suggestion supports to resolve further details"))},y=new m.eH("suggestWidgetStatusBar");class S{constructor(e,t,i,n){this.position=e,this.completion=t,this.container=i,this.provider=n,this.isInvalid=!1,this.score=s.CL.Default,this.distance=0,this.textLabel="string"==typeof t.label?t.label:t.label.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=t.sortText&&t.sortText.toLowerCase(),this.filterTextLow=t.filterText&&t.filterText.toLowerCase(),this.extensionId=t.extensionId,h.e.isIRange(t.range)?(this.editStart=new d.L(t.range.startLineNumber,t.range.startColumn),this.editInsertEnd=new d.L(t.range.endLineNumber,t.range.endColumn),this.editReplaceEnd=new d.L(t.range.endLineNumber,t.range.endColumn),this.isInvalid=this.isInvalid||h.e.spansMultipleLines(t.range)||t.range.startLineNumber!==e.lineNumber):(this.editStart=new d.L(t.range.insert.startLineNumber,t.range.insert.startColumn),this.editInsertEnd=new d.L(t.range.insert.endLineNumber,t.range.insert.endColumn),this.editReplaceEnd=new d.L(t.range.replace.endLineNumber,t.range.replace.endColumn),this.isInvalid=this.isInvalid||h.e.spansMultipleLines(t.range.insert)||h.e.spansMultipleLines(t.range.replace)||t.range.insert.startLineNumber!==e.lineNumber||t.range.replace.startLineNumber!==e.lineNumber||t.range.insert.startColumn!==t.range.replace.startColumn),"function"!=typeof n.resolveCompletionItem&&(this._resolveCache=Promise.resolve(),this._isResolved=!0)}get isResolved(){return!!this._isResolved}resolve(e){return C(this,void 0,void 0,(function*(){if(!this._resolveCache){const t=e.onCancellationRequested((()=>{this._resolveCache=void 0,this._isResolved=!1}));this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,e)).then((e=>{Object.assign(this.completion,e),this._isResolved=!0,t.dispose()}),(e=>{(0,o.n2)(e)&&(this._resolveCache=void 0,this._isResolved=!1)}))}return this._resolveCache}))}}class L{constructor(e=2,t=new Set,i=new Set,n=!0){this.snippetSortOrder=e,this.kindFilter=t,this.providerFilter=i,this.showDeprecated=n}}let k;function x(){return k}L.default=new L;class D{constructor(e,t,i,n){this.items=e,this.needsClipboard=t,this.durations=i,this.disposable=n}}function N(e,t,i,s=L.default,l={triggerKind:0},c=n.T.None){return C(this,void 0,void 0,(function*(){const n=new a.G(!0);i=i.clone();const d=t.getWordAtPosition(i),u=d?new h.e(i.lineNumber,d.startColumn,i.lineNumber,d.endColumn):h.e.fromPositions(i),p={replace:u,insert:u.setEndPosition(i.lineNumber,i.column)},m=[],f=new r.SL,_=[];let v=!1;const b=(e,t,n)=>{var o,a,l;let c=!1;if(!t)return c;for(const r of t.suggestions)if(!s.kindFilter.has(r.kind)){if(!s.showDeprecated&&(null===(o=null==r?void 0:r.tags)||void 0===o?void 0:o.includes(1)))continue;r.range||(r.range=p),r.sortText||(r.sortText="string"==typeof r.label?r.label:r.label.label),!v&&r.insertTextRules&&4&r.insertTextRules&&(v=g.Yj.guessNeedsClipboard(r.insertText)),m.push(new S(i,r,t,e)),c=!0}return(0,r.Wf)(t)&&f.add(t),_.push({providerName:null!==(a=e._debugDisplayName)&&void 0!==a?a:"unknown_provider",elapsedProvider:null!==(l=t.duration)&&void 0!==l?l:-1,elapsedOverall:n.elapsed()}),c},w=(()=>C(this,void 0,void 0,(function*(){})))();for(const r of e.orderedGroups(t)){let e=!1;if(yield Promise.all(r.map((n=>C(this,void 0,void 0,(function*(){if(!(s.providerFilter.size>0)||s.providerFilter.has(n))try{const o=new a.G(!0),s=yield n.provideCompletionItems(t,i,l,c);e=b(n,s,o)||e}catch(r){(0,o.Cp)(r)}}))))),e||c.isCancellationRequested)break}return yield w,c.isCancellationRequested?(f.dispose(),Promise.reject(new o.FU)):new D(m.sort(T(s.snippetSortOrder)),v,{entries:_,elapsed:n.elapsed()},f)}))}function E(e,t){if(e.sortTextLow&&t.sortTextLow){if(e.sortTextLow<t.sortTextLow)return-1;if(e.sortTextLow>t.sortTextLow)return 1}return e.textLabel<t.textLabel?-1:e.textLabel>t.textLabel?1:e.completion.kind-t.completion.kind}const I=new Map;function T(e){return I.get(e)}function M(e,t){var i;null===(i=e.getContribution("editor.contrib.suggestController"))||void 0===i||i.triggerSuggest((new Set).add(t),void 0,!0)}I.set(0,(function(e,t){if(e.completion.kind!==t.completion.kind){if(27===e.completion.kind)return-1;if(27===t.completion.kind)return 1}return E(e,t)})),I.set(2,(function(e,t){if(e.completion.kind!==t.completion.kind){if(27===e.completion.kind)return 1;if(27===t.completion.kind)return-1}return E(e,t)})),I.set(1,E),f.P0.registerCommand("_executeCompletionItemProvider",((e,...t)=>C(void 0,void 0,void 0,(function*(){const[i,o,s,r]=t;(0,l.p_)(c.o.isUri(i)),(0,l.p_)(d.L.isIPosition(o)),(0,l.p_)("string"==typeof s||!s),(0,l.p_)("number"==typeof r||!r);const{completionProvider:a}=e.get(v.p),h=yield e.get(u.S).createModelReference(i);try{const e={incomplete:!1,suggestions:[]},t=[],i=yield N(a,h.object.textEditorModel,d.L.lift(o),void 0,{triggerCharacter:s,triggerKind:s?1:0});for(const o of i.items)t.length<(null!=r?r:0)&&t.push(o.resolve(n.T.None)),e.incomplete=e.incomplete||o.container.incomplete,e.suggestions.push(o.completion);try{return yield Promise.all(t),e}finally{setTimeout((()=>i.disposable.dispose()),100)}}finally{h.dispose()}}))));class A{static isAllOff(e){return"off"===e.other&&"off"===e.comments&&"off"===e.strings}static isAllOn(e){return"on"===e.other&&"on"===e.comments&&"on"===e.strings}static valueFor(e,t){switch(t){case 1:return e.comments;case 2:return e.strings;default:return e.other}}}},76092:(e,t,i)=>{"use strict";i.d(t,{n:()=>ot});var n=i(85152),o=i(9488),s=i(15393),r=i(71050),a=i(17301),l=i(4669),c=i(8313),d=i(5976),h=i(1432),u=i(84013),g=i(98401),p=i(43407),m=i(16830),f=i(69386),_=i(50187),v=i(24314),b=i(29102),C=i(98762),w=i(35084),y=i(80378),S=i(38819),L=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},k=function(e,t){return function(i,n){t(i,n,e)}};let x=class e{constructor(t,i){this._editor=t,this._enabled=!1,this._ckAtEnd=e.AtEnd.bindTo(i),this._configListener=this._editor.onDidChangeConfiguration((e=>e.hasChanged(113)&&this._update())),this._update()}dispose(){var e;this._configListener.dispose(),null===(e=this._selectionListener)||void 0===e||e.dispose(),this._ckAtEnd.reset()}_update(){const e="on"===this._editor.getOption(113);if(this._enabled!==e)if(this._enabled=e,this._enabled){const e=()=>{if(!this._editor.hasModel())return void this._ckAtEnd.set(!1);const e=this._editor.getModel(),t=this._editor.getSelection(),i=e.getWordAtPosition(t.getStartPosition());i?this._ckAtEnd.set(i.endColumn===t.getStartPosition().column):this._ckAtEnd.set(!1)};this._selectionListener=this._editor.onDidChangeCursorSelection(e),e()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}};x.AtEnd=new S.uy("atEndOfWord",!1),x=L([k(1,S.i6)],x);var D=i(63580),N=i(94565),E=i(72065),I=i(43557),T=i(55621),M=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},A=function(e,t){return function(i,n){t(i,n,e)}};let R=class e{constructor(t,i){this._editor=t,this._index=0,this._ckOtherSuggestions=e.OtherSuggestions.bindTo(i)}dispose(){this.reset()}reset(){var e;this._ckOtherSuggestions.reset(),null===(e=this._listener)||void 0===e||e.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:t,index:i},n){if(0===t.items.length)return void this.reset();e._moveIndex(!0,t,i)!==i?(this._acceptNext=n,this._model=t,this._index=i,this._listener=this._editor.onDidChangeCursorPosition((()=>{this._ignore||this.reset()})),this._ckOtherSuggestions.set(!0)):this.reset()}static _moveIndex(e,t,i){let n=i;for(;n=(n+t.items.length+(e?1:-1))%t.items.length,n!==i&&t.items[n].completion.additionalTextEdits;);return n}next(){this._move(!0)}prev(){this._move(!1)}_move(t){if(this._model)try{this._ignore=!0,this._index=e._moveIndex(t,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};R.OtherSuggestions=new S.uy("hasOtherSuggestions",!1),R=M([A(1,S.i6)],R);var O=i(44906);class P{constructor(e,t,i){this._disposables=new d.SL,this._disposables.add(t.onDidShow((()=>this._onItem(t.getFocusedItem())))),this._disposables.add(t.onDidFocus(this._onItem,this)),this._disposables.add(t.onDidHide(this.reset,this)),this._disposables.add(e.onWillType((n=>{if(this._active&&!t.isFrozen()){const t=n.charCodeAt(n.length-1);this._active.acceptCharacters.has(t)&&e.getOption(0)&&i(this._active.item)}})))}_onItem(e){if(!e||!(0,o.Of)(e.item.completion.commitCharacters))return void this.reset();if(this._active&&this._active.item.item===e.item)return;const t=new O.q;for(const i of e.item.completion.commitCharacters)i.length>0&&t.add(i.charCodeAt(0));this._active={acceptCharacters:t,item:e}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}var F=i(97295),B=i(3860),V=i(85215),W=i(24477),H=i(84972),z=i(33108),j=i(10829),U=i(74961),K=i(71922),$=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},q=function(e,t){return function(i,n){t(i,n,e)}},G=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class Q{constructor(e,t,i,n,o){this.leadingLineContent=e.getLineContent(t.lineNumber).substr(0,t.column-1),this.leadingWord=e.getWordUntilPosition(t),this.lineNumber=t.lineNumber,this.column=t.column,this.auto=i,this.shy=n,this.noSelect=o}static shouldAutoTrigger(e){if(!e.hasModel())return!1;const t=e.getModel(),i=e.getPosition();t.tokenization.tokenizeIfCheap(i.lineNumber);const n=t.getWordAtPosition(i);return!!n&&(n.endColumn===i.column&&!!isNaN(Number(n.word)))}}let Z=class e{constructor(e,t,i,n,o,r,a,c){this._editor=e,this._editorWorkerService=t,this._clipboardService=i,this._telemetryService=n,this._logService=o,this._contextKeyService=r,this._configurationService=a,this._languageFeaturesService=c,this._toDispose=new d.SL,this._triggerCharacterListener=new d.SL,this._triggerQuickSuggest=new s._F,this._state=0,this._completionDisposables=new d.SL,this._onDidCancel=new l.Q5,this._onDidTrigger=new l.Q5,this._onDidSuggest=new l.Q5,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._telemetryGate=0,this._currentSelection=this._editor.getSelection()||new B.Y(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel((()=>{this._updateTriggerCharacters(),this.cancel()}))),this._toDispose.add(this._editor.onDidChangeModelLanguage((()=>{this._updateTriggerCharacters(),this.cancel()}))),this._toDispose.add(this._editor.onDidChangeConfiguration((()=>{this._updateTriggerCharacters()}))),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange((()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()})));let h=!1;this._toDispose.add(this._editor.onDidCompositionStart((()=>{h=!0}))),this._toDispose.add(this._editor.onDidCompositionEnd((()=>{h=!1,this._onCompositionEnd()}))),this._toDispose.add(this._editor.onDidChangeCursorSelection((e=>{h||this._onCursorChange(e)}))),this._toDispose.add(this._editor.onDidChangeModelContent((()=>{h||this._refilterCompletionItems()}))),this._updateTriggerCharacters()}dispose(){(0,d.B9)(this._triggerCharacterListener),(0,d.B9)([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(83)||!this._editor.hasModel()||!this._editor.getOption(111))return;const e=new Map;for(const i of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(const t of i.triggerCharacters||[]){let n=e.get(t);n||(n=new Set,n.add((0,T.ZJ)()),e.set(t,n)),n.add(i)}const t=t=>{if(!function(e,t,i){if(!Boolean(t.getContextKeyValue("inlineSuggestionVisible")))return!0;const n=i.getValue("editor.inlineSuggest.allowSuggestOnTriggerCharacters");return void 0!==n&&Boolean(n)}(this._editor,this._contextKeyService,this._configurationService))return;if(Q.shouldAutoTrigger(this._editor))return;if(!t){const e=this._editor.getPosition();t=this._editor.getModel().getLineContent(e.lineNumber).substr(0,e.column-1)}let i="";(0,F.YK)(t.charCodeAt(t.length-1))?(0,F.ZG)(t.charCodeAt(t.length-2))&&(i=t.substr(t.length-2)):i=t.charAt(t.length-1);const n=e.get(i);if(n){const e=this._completionModel?{items:this._completionModel.adopt(n),clipboardText:this._completionModel.clipboardText}:void 0;this.trigger({auto:!0,shy:!1,noSelect:!1,triggerCharacter:i},Boolean(this._completionModel),n,e)}};this._triggerCharacterListener.add(this._editor.onDidType(t)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd((()=>t())))}get state(){return this._state}cancel(e=!1){var t;0!==this._state&&(this._triggerQuickSuggest.cancel(),null===(t=this._requestToken)||void 0===t||t.cancel(),this._requestToken=void 0,this._state=0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:e}))}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){0!==this._state&&(this._editor.hasModel()&&this._languageFeaturesService.completionProvider.has(this._editor.getModel())?this.trigger({auto:2===this._state,shy:!1,noSelect:!1},!0):this.cancel())}_onCursorChange(e){if(!this._editor.hasModel())return;const t=this._currentSelection;this._currentSelection=this._editor.getSelection(),!e.selection.isEmpty()||0!==e.reason&&3!==e.reason||"keyboard"!==e.source&&"deleteLeft"!==e.source?this.cancel():0===this._state&&0===e.reason?(t.containsRange(this._currentSelection)||t.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))&&this._doTriggerQuickSuggest():0!==this._state&&3===e.reason&&this._refilterCompletionItems()}_onCompositionEnd(){0===this._state?this._doTriggerQuickSuggest():this._refilterCompletionItems()}_doTriggerQuickSuggest(){var e;T.tG.isAllOff(this._editor.getOption(81))||this._editor.getOption(108).snippetsPreventQuickSuggestions&&(null===(e=C.f.get(this._editor))||void 0===e?void 0:e.isInSnippet())||(this.cancel(),this._triggerQuickSuggest.cancelAndSet((()=>{if(0!==this._state)return;if(!Q.shouldAutoTrigger(this._editor))return;if(!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;const e=this._editor.getModel(),t=this._editor.getPosition(),i=this._editor.getOption(81);if(!T.tG.isAllOff(i)){if(!T.tG.isAllOn(i)){e.tokenization.tokenizeIfCheap(t.lineNumber);const n=e.tokenization.getLineTokens(t.lineNumber),o=n.getStandardTokenType(n.findTokenIndexAtOffset(Math.max(t.column-1-1,0)));if("on"!==T.tG.valueFor(i,o))return}(function(e,t,i){if(!Boolean(t.getContextKeyValue("inlineSuggestionVisible")))return!0;const n=i.getValue("editor.inlineSuggest.allowQuickSuggestions");return void 0!==n&&Boolean(n)})(this._editor,this._contextKeyService,this._configurationService)&&this._languageFeaturesService.completionProvider.has(e)&&this.trigger({auto:!0,shy:!1,noSelect:!1})}}),this._editor.getOption(82)))}_refilterCompletionItems(){Promise.resolve().then((()=>{if(0===this._state)return;if(!this._editor.hasModel())return;const e=this._editor.getModel(),t=this._editor.getPosition(),i=new Q(e,t,2===this._state,!1,!1);this._onNewContext(i)}))}trigger(t,i=!1,n,o,s){var l;if(!this._editor.hasModel())return;const c=this._editor.getModel(),d=t.auto,h=new Q(c,this._editor.getPosition(),d,t.shy,t.noSelect);this.cancel(i),this._state=d?2:1,this._onDidTrigger.fire({auto:d,shy:t.shy,position:this._editor.getPosition()}),this._context=h;let u={triggerKind:null!==(l=t.triggerKind)&&void 0!==l?l:0};t.triggerCharacter&&(u={triggerKind:1,triggerCharacter:t.triggerCharacter}),this._requestToken=new r.A;const g=this._editor.getOption(103);let p=1;switch(g){case"top":p=0;break;case"bottom":p=2}const{itemKind:m,showDeprecated:f}=e._createSuggestFilter(this._editor),_=new T.A9(p,s?new Set:m,n,f),v=W.K.create(this._editorWorkerService,this._editor),b=(0,T.kL)(this._languageFeaturesService.completionProvider,c,this._editor.getPosition(),_,u,this._requestToken.token);Promise.all([b,v]).then((([e,i])=>G(this,void 0,void 0,(function*(){var n;if(null===(n=this._requestToken)||void 0===n||n.dispose(),!this._editor.hasModel())return;let s=null==o?void 0:o.clipboardText;if(!s&&e.needsClipboard&&(s=yield this._clipboardService.readText()),0===this._state)return;const r=this._editor.getModel();let a=e.items;if(o){const e=(0,T.wg)(p);a=a.concat(o.items).sort(e)}const l=new Q(r,this._editor.getPosition(),d,t.shy,t.noSelect);this._completionModel=new U._(a,this._context.column,{leadingLineContent:l.leadingLineContent,characterCountDelta:l.column-this._context.column},i,this._editor.getOption(108),this._editor.getOption(103),void 0,s),this._completionDisposables.add(e.disposable),this._onNewContext(l),this._reportDurationsTelemetry(e.durations)})))).catch(a.dL)}_reportDurationsTelemetry(e){this._telemetryGate++%230==0&&setTimeout((()=>{this._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(e)}),this._logService.debug("suggest.durations.json",e)}))}static _createSuggestFilter(e){const t=new Set;"none"===e.getOption(103)&&t.add(27);const i=e.getOption(108);return i.showMethods||t.add(0),i.showFunctions||t.add(1),i.showConstructors||t.add(2),i.showFields||t.add(3),i.showVariables||t.add(4),i.showClasses||t.add(5),i.showStructs||t.add(6),i.showInterfaces||t.add(7),i.showModules||t.add(8),i.showProperties||t.add(9),i.showEvents||t.add(10),i.showOperators||t.add(11),i.showUnits||t.add(12),i.showValues||t.add(13),i.showConstants||t.add(14),i.showEnums||t.add(15),i.showEnumMembers||t.add(16),i.showKeywords||t.add(17),i.showWords||t.add(18),i.showColors||t.add(19),i.showFiles||t.add(20),i.showReferences||t.add(21),i.showColors||t.add(22),i.showFolders||t.add(23),i.showTypeParameters||t.add(24),i.showSnippets||t.add(27),i.showUsers||t.add(25),i.showIssues||t.add(26),{itemKind:t,showDeprecated:i.showDeprecated}}_onNewContext(e){if(this._context)if(e.lineNumber===this._context.lineNumber)if((0,F.V8)(e.leadingLineContent)===(0,F.V8)(this._context.leadingLineContent)){if(e.column<this._context.column)e.leadingWord.word?this.trigger({auto:this._context.auto,shy:!1,noSelect:!1},!0):this.cancel();else if(this._completionModel)if(0!==e.leadingWord.word.length&&e.leadingWord.startColumn>this._context.leadingWord.startColumn){const e=new Set(this._languageFeaturesService.completionProvider.all(this._editor.getModel()));for(const i of this._completionModel.allProvider)e.delete(i);const t=this._completionModel.adopt(new Set);this.trigger({auto:this._context.auto,shy:!1,noSelect:!1},!0,e,{items:t,clipboardText:this._completionModel.clipboardText})}else if(e.column>this._context.column&&this._completionModel.incomplete.size>0&&0!==e.leadingWord.word.length){const{incomplete:e}=this._completionModel,t=this._completionModel.adopt(e);this.trigger({auto:2===this._state,shy:!1,noSelect:!1,triggerKind:2},!0,e,{items:t,clipboardText:this._completionModel.clipboardText})}else{const t=this._completionModel.lineContext;let i=!1;if(this._completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this._context.column},0===this._completionModel.items.length){if(Q.shouldAutoTrigger(this._editor)&&this._context.leadingWord.endColumn<e.leadingWord.startColumn)return void this.trigger({auto:this._context.auto,shy:!1,noSelect:!1},!0);if(this._context.auto)return void this.cancel();if(this._completionModel.lineContext=t,i=this._completionModel.items.length>0,i&&0===e.leadingWord.word.length)return void this.cancel()}this._onDidSuggest.fire({completionModel:this._completionModel,auto:this._context.auto,shy:this._context.shy,noSelect:this._context.noSelect,isFrozen:i})}}else this.cancel();else this.cancel()}};Z=$([q(1,V.p),q(2,H.p),q(3,j.b),q(4,I.VZ),q(5,S.i6),q(6,z.Ui),q(7,K.p)],Z);class Y{constructor(e,t){this._disposables=new d.SL,this._lastOvertyped=[],this._empty=!0,this._disposables.add(e.onWillType((()=>{if(!this._empty)return;if(!e.hasModel())return;const t=e.getSelections(),i=t.length;let n=!1;for(let e=0;e<i;e++)if(!t[e].isEmpty()){n=!0;break}if(!n)return;this._lastOvertyped=[];const o=e.getModel();for(let e=0;e<i;e++){const i=t[e];if(o.getValueLengthInRange(i)>Y._maxSelectionLength)return;this._lastOvertyped[e]={value:o.getValueInRange(i),multiline:i.startLineNumber!==i.endLineNumber}}this._empty=!1}))),this._disposables.add(t.onDidCancel((e=>{this._empty||e.retrigger||(this._empty=!0)})))}getLastOvertypedInfo(e){if(!this._empty&&e>=0&&e<this._lastOvertyped.length)return this._lastOvertyped[e]}dispose(){this._disposables.dispose()}}Y._maxSelectionLength=51200;var J=i(65321),X=(i(28609),i(69047)),ee=i(59870),te=i(84527),ie=i(90317),ne=i(84167),oe=i(84144),se=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},re=function(e,t){return function(i,n){t(i,n,e)}};class ae extends ne.Mm{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();this.label&&(this.label.textContent=(0,D.NC)("ddd","{0} ({1})",this._action.label,ae.symbolPrintEnter(e)))}static symbolPrintEnter(e){var t;return null===(t=e.getLabel())||void 0===t?void 0:t.replace(/\benter\b/gi,"\u23ce")}}let le=class{constructor(e,t,i,n){this._menuService=i,this._contextKeyService=n,this._menuDisposables=new d.SL,this.element=J.R3(e,J.$(".suggest-status-bar"));const o=e=>e instanceof oe.U8?t.createInstance(ae,e,void 0):void 0;this._leftActions=new ie.o(this.element,{actionViewItemProvider:o}),this._rightActions=new ie.o(this.element,{actionViewItemProvider:o}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}dispose(){this._menuDisposables.dispose(),this.element.remove()}show(){const e=this._menuService.createMenu(T.GI,this._contextKeyService),t=()=>{const t=[],i=[];for(const[n,o]of e.getActions())"left"===n?t.push(...o):i.push(...o);this._leftActions.clear(),this._leftActions.push(t),this._rightActions.clear(),this._rightActions.push(i)};this._menuDisposables.add(e.onDidChange((()=>t()))),this._menuDisposables.add(e)}hide(){this._menuDisposables.clear()}};le=se([re(1,E.TG),re(2,oe.co),re(3,S.i6)],le);i(71713);var ce=i(87060),de=i(73910),he=i(88810),ue=i(92321),ge=i(97781),pe=i(73098);class me{constructor(){let e;this._onDidWillResize=new l.Q5,this.onDidWillResize=this._onDidWillResize.event,this._onDidResize=new l.Q5,this.onDidResize=this._onDidResize.event,this._sashListener=new d.SL,this._size=new J.Ro(0,0),this._minSize=new J.Ro(0,0),this._maxSize=new J.Ro(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new pe.g(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new pe.g(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new pe.g(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:pe.l.North}),this._southSash=new pe.g(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:pe.l.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let t=0,i=0;this._sashListener.add(l.ju.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)((()=>{void 0===e&&(this._onDidWillResize.fire(),e=this._size,t=0,i=0)}))),this._sashListener.add(l.ju.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)((()=>{void 0!==e&&(e=void 0,t=0,i=0,this._onDidResize.fire({dimension:this._size,done:!0}))}))),this._sashListener.add(this._eastSash.onDidChange((n=>{e&&(i=n.currentX-n.startX,this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))}))),this._sashListener.add(this._westSash.onDidChange((n=>{e&&(i=-(n.currentX-n.startX),this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))}))),this._sashListener.add(this._northSash.onDidChange((n=>{e&&(t=-(n.currentY-n.startY),this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))}))),this._sashListener.add(this._southSash.onDidChange((n=>{e&&(t=n.currentY-n.startY,this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))}))),this._sashListener.add(l.ju.any(this._eastSash.onDidReset,this._westSash.onDidReset)((e=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))}))),this._sashListener.add(l.ju.any(this._northSash.onDidReset,this._southSash.onDidReset)((e=>{this._preferredSize&&(this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0}))})))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(e,t,i,n){this._northSash.state=e?3:0,this._eastSash.state=t?3:0,this._southSash.state=i?3:0,this._westSash.state=n?3:0}layout(e=this.size.height,t=this.size.width){const{height:i,width:n}=this._minSize,{height:o,width:s}=this._maxSize;e=Math.max(i,Math.min(o,e)),t=Math.max(n,Math.min(s,t));const r=new J.Ro(t,e);J.Ro.equals(r,this._size)||(this.domNode.style.height=e+"px",this.domNode.style.width=t+"px",this._size=r,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(e){this._maxSize=e}get maxSize(){return this._maxSize}set minSize(e){this._minSize=e}get minSize(){return this._minSize}set preferredSize(e){this._preferredSize=e}get preferredSize(){return this._preferredSize}}var fe=i(63161),_e=i(73046),ve=i(59365),be=i(51318),Ce=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},we=function(e,t){return function(i,n){t(i,n,e)}};function ye(e){return!!e&&Boolean(e.completion.documentation||e.completion.detail&&e.completion.detail!==e.completion.label)}let Se=class{constructor(e,t){this._editor=e,this._onDidClose=new l.Q5,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new l.Q5,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new d.SL,this._renderDisposeable=new d.SL,this._borderWidth=1,this._size=new J.Ro(330,0),this.domNode=J.$(".suggest-details"),this.domNode.classList.add("no-docs"),this._markdownRenderer=t.createInstance(be.$,{editor:e}),this._body=J.$(".body"),this._scrollbar=new fe.s$(this._body,{alwaysConsumeMouseWheel:!0}),J.R3(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=J.R3(this._body,J.$(".header")),this._close=J.R3(this._header,J.$("span"+_e.lA.close.cssSelector)),this._close.title=D.NC("details.close","Close"),this._type=J.R3(this._header,J.$("p.type")),this._docs=J.R3(this._body,J.$("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(46)&&this._configureFont()})))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose()}_configureFont(){const e=this._editor.getOptions(),t=e.get(46),i=t.getMassagedFontFamily(),n=e.get(109)||t.fontSize,o=e.get(110)||t.lineHeight,s=t.fontWeight,r=`${n}px`,a=`${o}px`;this.domNode.style.fontSize=r,this.domNode.style.lineHeight=""+o/n,this.domNode.style.fontWeight=s,this.domNode.style.fontFeatureSettings=t.fontFeatureSettings,this._type.style.fontFamily=i,this._close.style.height=a,this._close.style.width=a}getLayoutInfo(){const e=this._editor.getOption(110)||this._editor.getOption(46).lineHeight,t=this._borderWidth;return{lineHeight:e,borderWidth:t,borderHeight:2*t,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=D.NC("loading","Loading..."),this._docs.textContent="",this.domNode.classList.remove("no-docs","no-type"),this.layout(this.size.width,2*this.getLayoutInfo().lineHeight),this._onDidChangeContents.fire(this)}renderItem(e,t){var i,n;this._renderDisposeable.clear();let{detail:o,documentation:s}=e.completion;if(t){let t="";t+=`score: ${e.score[0]}\n`,t+=`prefix: ${null!==(i=e.word)&&void 0!==i?i:"(no prefix)"}\n`,t+=`word: ${e.completion.filterText?e.completion.filterText+" (filterText)":e.textLabel}\n`,t+=`distance: ${e.distance} (localityBonus-setting)\n`,t+=`index: ${e.idx}, based on ${e.completion.sortText&&`sortText: "${e.completion.sortText}"`||"label"}\n`,t+=`commit_chars: ${null===(n=e.completion.commitCharacters)||void 0===n?void 0:n.join("")}\n`,s=(new ve.W5).appendCodeblock("empty",t),o=`Provider: ${e.provider._debugDisplayName}`}if(t||ye(e)){if(this.domNode.classList.remove("no-docs","no-type"),o){const e=o.length>1e5?`${o.substr(0,1e5)}\u2026`:o;this._type.textContent=e,this._type.title=e,J.$Z(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gim.test(e))}else J.PO(this._type),this._type.title="",J.Cp(this._type),this.domNode.classList.add("no-type");if(J.PO(this._docs),"string"==typeof s)this._docs.classList.remove("markdown-docs"),this._docs.textContent=s;else if(s){this._docs.classList.add("markdown-docs"),J.PO(this._docs);const e=this._markdownRenderer.render(s);this._docs.appendChild(e.element),this._renderDisposeable.add(e),this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync((()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)})))}this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=e=>{e.preventDefault(),e.stopPropagation()},this._close.onclick=e=>{e.preventDefault(),e.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}else this.clearContents()}clearContents(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}get size(){return this._size}layout(e,t){const i=new J.Ro(e,t);J.Ro.equals(i,this._size)||(this._size=i,J.dp(this.domNode,e,t)),this._scrollbar.scanDomNode()}scrollDown(e=8){this._body.scrollTop+=e}scrollUp(e=8){this._body.scrollTop-=e}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}set borderWidth(e){this._borderWidth=e}get borderWidth(){return this._borderWidth}};Se=Ce([we(1,E.TG)],Se);class Le{constructor(e,t){let i,n;this.widget=e,this._editor=t,this._disposables=new d.SL,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new me,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(e.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let o=0,s=0;this._disposables.add(this._resizable.onDidWillResize((()=>{i=this._topLeft,n=this._resizable.size}))),this._disposables.add(this._resizable.onDidResize((e=>{if(i&&n){this.widget.layout(e.dimension.width,e.dimension.height);let t=!1;e.west&&(s=n.width-e.dimension.width,t=!0),e.north&&(o=n.height-e.dimension.height,t=!0),t&&this._applyTopLeft({top:i.top+o,left:i.left+s})}e.done&&(i=void 0,n=void 0,o=0,s=0,this._userSize=e.dimension)}))),this._disposables.add(this.widget.onDidChangeContents((()=>{var e;this._anchorBox&&this._placeAtAnchor(this._anchorBox,null!==(e=this._userSize)&&void 0!==e?e:this.widget.size,this._preferAlignAtTop)})))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return null}show(){this._added||(this._editor.addOverlayWidget(this),this.getDomNode().style.position="fixed",this._added=!0)}hide(e=!1){this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),e&&(this._userSize=void 0,this.widget.clearContents())}placeAtAnchor(e,t){var i;const n=e.getBoundingClientRect();this._anchorBox=n,this._preferAlignAtTop=t,this._placeAtAnchor(this._anchorBox,null!==(i=this._userSize)&&void 0!==i?i:this.widget.size,t)}_placeAtAnchor(e,t,i){var n;const o=J.D6(document.body),s=this.widget.getLayoutInfo(),r=new J.Ro(220,2*s.lineHeight),a=e.top,l=function(){const i=o.width-(e.left+e.width+s.borderWidth+s.horizontalPadding),n=-s.borderWidth+e.left+e.width,l=new J.Ro(i,o.height-e.top-s.borderHeight-s.verticalPadding),c=l.with(void 0,e.top+e.height-s.borderHeight-s.verticalPadding);return{top:a,left:n,fit:i-t.width,maxSizeTop:l,maxSizeBottom:c,minSize:r.with(Math.min(i,r.width))}}(),c=[l,function(){const i=e.left-s.borderWidth-s.horizontalPadding,n=Math.max(s.horizontalPadding,e.left-t.width-s.borderWidth),l=new J.Ro(i,o.height-e.top-s.borderHeight-s.verticalPadding),c=l.with(void 0,e.top+e.height-s.borderHeight-s.verticalPadding);return{top:a,left:n,fit:i-t.width,maxSizeTop:l,maxSizeBottom:c,minSize:r.with(Math.min(i,r.width))}}(),function(){const i=e.left,n=-s.borderWidth+e.top+e.height,a=new J.Ro(e.width-s.borderHeight,o.height-e.top-e.height-s.verticalPadding);return{top:n,left:i,fit:a.height-t.height,maxSizeBottom:a,maxSizeTop:a,minSize:r.with(a.width)}}()],d=null!==(n=c.find((e=>e.fit>=0)))&&void 0!==n?n:c.sort(((e,t)=>t.fit-e.fit))[0],h=e.top+e.height-s.borderHeight;let u,g=t.height;const p=Math.max(d.maxSizeTop.height,d.maxSizeBottom.height);let m;g>p&&(g=p),i?g<=d.maxSizeTop.height?(u=!0,m=d.maxSizeTop):(u=!1,m=d.maxSizeBottom):g<=d.maxSizeBottom.height?(u=!1,m=d.maxSizeBottom):(u=!0,m=d.maxSizeTop),this._applyTopLeft({left:d.left,top:u?d.top:h-g}),this.getDomNode().style.position="fixed",this._resizable.enableSashes(!u,d===l,u,d!==l),this._resizable.minSize=d.minSize,this._resizable.maxSize=m,this._resizable.layout(g,Math.min(m.width,t.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(e){this._topLeft=e,this.getDomNode().style.left=`${this._topLeft.left}px`,this.getDomNode().style.top=`${this._topLeft.top}px`}}var ke,xe=i(59834),De=i(48357),Ne=i(70666),Ee=i(43155),Ie=i(66663),Te=i(95935),Me=i(68801);!function(e){e[e.FILE=0]="FILE",e[e.FOLDER=1]="FOLDER",e[e.ROOT_FOLDER=2]="ROOT_FOLDER"}(ke||(ke={}));const Ae=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function Re(e,t,i,n){const o=n===ke.ROOT_FOLDER?["rootfolder-icon"]:n===ke.FOLDER?["folder-icon"]:["file-icon"];if(i){let s;if(i.scheme===Ie.lg.data){s=Te.Vb.parseMetaData(i).get(Te.Vb.META_DATA_LABEL)}else{const e=i.path.match(Ae);e?(s=Oe(e[2].toLowerCase()),e[1]&&o.push(`${Oe(e[1].toLowerCase())}-name-dir-icon`)):s=Oe(i.authority.toLowerCase())}if(n===ke.FOLDER)o.push(`${s}-name-folder-icon`);else{if(s){if(o.push(`${s}-name-file-icon`),o.push("name-file-icon"),s.length<=255){const e=s.split(".");for(let t=1;t<e.length;t++)o.push(`${e.slice(t).join(".")}-ext-file-icon`)}o.push("ext-file-icon")}const n=function(e,t,i){if(!i)return null;let n=null;if(i.scheme===Ie.lg.data){const e=Te.Vb.parseMetaData(i).get(Te.Vb.META_DATA_MIME);e&&(n=t.getLanguageIdByMimeType(e))}else{const t=e.getModel(i);t&&(n=t.getLanguageId())}if(n&&n!==Me.bd)return n;return t.guessLanguageIdByFilepathOrFirstLine(i)}(e,t,i);n&&o.push(`${Oe(n)}-lang-file-icon`)}}return o}function Oe(e){return e.replace(/[\11\12\14\15\40]/g,"/")}var Pe,Fe=i(73733),Be=i(72042),Ve=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},We=function(e,t){return function(i,n){t(i,n,e)}};function He(e){return`suggest-aria-id:${e}`}const ze=(0,i(59554).q5)("suggest-more-info",_e.lA.chevronRight,D.NC("suggestMoreInfoIcon","Icon for more information in the suggest widget.")),je=new((Pe=class e{extract(t,i){if(t.textLabel.match(e._regexStrict))return i[0]=t.textLabel,!0;if(t.completion.detail&&t.completion.detail.match(e._regexStrict))return i[0]=t.completion.detail,!0;if("string"==typeof t.completion.documentation){const n=e._regexRelaxed.exec(t.completion.documentation);if(n&&(0===n.index||n.index+n[0].length===t.completion.documentation.length))return i[0]=n[0],!0}return!1}})._regexRelaxed=/(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/,Pe._regexStrict=new RegExp(`^${Pe._regexRelaxed.source}$`,"i"),Pe);let Ue=class{constructor(e,t,i,n){this._editor=e,this._modelService=t,this._languageService=i,this._themeService=n,this._onDidToggleDetails=new l.Q5,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(e){const t=Object.create(null);t.disposables=new d.SL,t.root=e,t.root.classList.add("show-file-icons"),t.icon=(0,J.R3)(e,(0,J.$)(".icon")),t.colorspan=(0,J.R3)(t.icon,(0,J.$)("span.colorspan"));const i=(0,J.R3)(e,(0,J.$)(".contents")),n=(0,J.R3)(i,(0,J.$)(".main"));t.iconContainer=(0,J.R3)(n,(0,J.$)(".icon-label.codicon")),t.left=(0,J.R3)(n,(0,J.$)("span.left")),t.right=(0,J.R3)(n,(0,J.$)("span.right")),t.iconLabel=new xe.g(t.left,{supportHighlights:!0,supportIcons:!0}),t.disposables.add(t.iconLabel),t.parametersLabel=(0,J.R3)(t.left,(0,J.$)("span.signature-label")),t.qualifierLabel=(0,J.R3)(t.left,(0,J.$)("span.qualifier-label")),t.detailsLabel=(0,J.R3)(t.right,(0,J.$)("span.details-label")),t.readMore=(0,J.R3)(t.right,(0,J.$)("span.readMore"+ge.kS.asCSSSelector(ze))),t.readMore.title=D.NC("readMore","Read More");const o=()=>{const e=this._editor.getOptions(),i=e.get(46),o=i.getMassagedFontFamily(),s=i.fontFeatureSettings,r=e.get(109)||i.fontSize,a=e.get(110)||i.lineHeight,l=i.fontWeight,c=`${r}px`,d=`${a}px`,h=`${i.letterSpacing}px`;t.root.style.fontSize=c,t.root.style.fontWeight=l,t.root.style.letterSpacing=h,n.style.fontFamily=o,n.style.fontFeatureSettings=s,n.style.lineHeight=d,t.icon.style.height=d,t.icon.style.width=d,t.readMore.style.height=d,t.readMore.style.width=d};return o(),t.disposables.add(this._editor.onDidChangeConfiguration((e=>{(e.hasChanged(46)||e.hasChanged(109)||e.hasChanged(110))&&o()}))),t}renderElement(e,t,i){const{completion:n}=e;i.root.id=He(t),i.colorspan.style.backgroundColor="";const o={labelEscapeNewLines:!0,matches:(0,De.mB)(e.score)},s=[];if(19===n.kind&&je.extract(e,s))i.icon.className="icon customcolor",i.iconContainer.className="icon hide",i.colorspan.style.backgroundColor=s[0];else if(20===n.kind&&this._themeService.getFileIconTheme().hasFileIcons){i.icon.className="icon hide",i.iconContainer.className="icon hide";const t=Re(this._modelService,this._languageService,Ne.o.from({scheme:"fake",path:e.textLabel}),ke.FILE),s=Re(this._modelService,this._languageService,Ne.o.from({scheme:"fake",path:n.detail}),ke.FILE);o.extraClasses=t.length>s.length?t:s}else 23===n.kind&&this._themeService.getFileIconTheme().hasFolderIcons?(i.icon.className="icon hide",i.iconContainer.className="icon hide",o.extraClasses=[Re(this._modelService,this._languageService,Ne.o.from({scheme:"fake",path:e.textLabel}),ke.FOLDER),Re(this._modelService,this._languageService,Ne.o.from({scheme:"fake",path:n.detail}),ke.FOLDER)].flat()):(i.icon.className="icon hide",i.iconContainer.className="",i.iconContainer.classList.add("suggest-icon",..._e.dT.asClassNameArray(Ee.gX.toIcon(n.kind))));n.tags&&n.tags.indexOf(1)>=0&&(o.extraClasses=(o.extraClasses||[]).concat(["deprecated"]),o.matches=[]),i.iconLabel.setLabel(e.textLabel,void 0,o),"string"==typeof n.label?(i.parametersLabel.textContent="",i.detailsLabel.textContent=Ke(n.detail||""),i.root.classList.add("string-label")):(i.parametersLabel.textContent=Ke(n.label.detail||""),i.detailsLabel.textContent=Ke(n.label.description||""),i.root.classList.remove("string-label")),this._editor.getOption(108).showInlineDetails?(0,J.$Z)(i.detailsLabel):(0,J.Cp)(i.detailsLabel),ye(e)?(i.right.classList.add("can-expand-details"),(0,J.$Z)(i.readMore),i.readMore.onmousedown=e=>{e.stopPropagation(),e.preventDefault()},i.readMore.onclick=e=>{e.stopPropagation(),e.preventDefault(),this._onDidToggleDetails.fire()}):(i.right.classList.remove("can-expand-details"),(0,J.Cp)(i.readMore),i.readMore.onmousedown=null,i.readMore.onclick=null)}disposeTemplate(e){e.disposables.dispose()}};function Ke(e){return e.replace(/\r\n|\r|\n/g,"")}Ue=Ve([We(1,Fe.q),We(2,Be.O),We(3,ge.XE)],Ue);var $e=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},qe=function(e,t){return function(i,n){t(i,n,e)}},Ge=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};(0,de.P6G)("editorSuggestWidget.background",{dark:de.D0T,light:de.D0T,hcDark:de.D0T,hcLight:de.D0T},D.NC("editorSuggestWidgetBackground","Background color of the suggest widget.")),(0,de.P6G)("editorSuggestWidget.border",{dark:de.D1_,light:de.D1_,hcDark:de.D1_,hcLight:de.D1_},D.NC("editorSuggestWidgetBorder","Border color of the suggest widget."));const Qe=(0,de.P6G)("editorSuggestWidget.foreground",{dark:de.NOs,light:de.NOs,hcDark:de.NOs,hcLight:de.NOs},D.NC("editorSuggestWidgetForeground","Foreground color of the suggest widget.")),Ze=((0,de.P6G)("editorSuggestWidget.selectedForeground",{dark:de.NPS,light:de.NPS,hcDark:de.NPS,hcLight:de.NPS},D.NC("editorSuggestWidgetSelectedForeground","Foreground color of the selected entry in the suggest widget.")),(0,de.P6G)("editorSuggestWidget.selectedIconForeground",{dark:de.cbQ,light:de.cbQ,hcDark:de.cbQ,hcLight:de.cbQ},D.NC("editorSuggestWidgetSelectedIconForeground","Icon foreground color of the selected entry in the suggest widget.")),(0,de.P6G)("editorSuggestWidget.selectedBackground",{dark:de.Vqd,light:de.Vqd,hcDark:de.Vqd,hcLight:de.Vqd},D.NC("editorSuggestWidgetSelectedBackground","Background color of the selected entry in the suggest widget.")));(0,de.P6G)("editorSuggestWidget.highlightForeground",{dark:de.Gwp,light:de.Gwp,hcDark:de.Gwp,hcLight:de.Gwp},D.NC("editorSuggestWidgetHighlightForeground","Color of the match highlights in the suggest widget.")),(0,de.P6G)("editorSuggestWidget.focusHighlightForeground",{dark:de.PX0,light:de.PX0,hcDark:de.PX0,hcLight:de.PX0},D.NC("editorSuggestWidgetFocusHighlightForeground","Color of the match highlights in the suggest widget when an item is focused.")),(0,de.P6G)("editorSuggestWidgetStatus.foreground",{dark:(0,de.ZnX)(Qe,.5),light:(0,de.ZnX)(Qe,.5),hcDark:(0,de.ZnX)(Qe,.5),hcLight:(0,de.ZnX)(Qe,.5)},D.NC("editorSuggestWidgetStatusForeground","Foreground color of the suggest widget status."));class Ye{constructor(e,t){this._service=e,this._key=`suggestWidget.size/${t.getEditorType()}/${t instanceof te.H}`}restore(){var e;const t=null!==(e=this._service.get(this._key,0))&&void 0!==e?e:"";try{const e=JSON.parse(t);if(J.Ro.is(e))return J.Ro.lift(e)}catch(i){}}store(e){this._service.store(this._key,JSON.stringify(e),0,1)}reset(){this._service.remove(this._key,0)}}let Je=class e{constructor(e,t,i,n,o){this.editor=e,this._storageService=t,this._state=0,this._isAuto=!1,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new s._F,this._disposables=new d.SL,this._onDidSelect=new l.Q5,this._onDidFocus=new l.Q5,this._onDidHide=new l.Q5,this._onDidShow=new l.Q5,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new l.Q5,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new me,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new Xe(this,e),this._persistedSize=new Ye(t,e);class r{constructor(e,t,i=!1,n=!1){this.persistedSize=e,this.currentSize=t,this.persistHeight=i,this.persistWidth=n}}let a;this._disposables.add(this.element.onDidWillResize((()=>{this._contentWidget.lockPreference(),a=new r(this._persistedSize.restore(),this.element.size)}))),this._disposables.add(this.element.onDidResize((e=>{var t,i,n,o;if(this._resize(e.dimension.width,e.dimension.height),a&&(a.persistHeight=a.persistHeight||!!e.north||!!e.south,a.persistWidth=a.persistWidth||!!e.east||!!e.west),e.done){if(a){const{itemHeight:e,defaultSize:s}=this.getLayoutInfo(),r=Math.round(e/2);let{width:l,height:c}=this.element.size;(!a.persistHeight||Math.abs(a.currentSize.height-c)<=r)&&(c=null!==(i=null===(t=a.persistedSize)||void 0===t?void 0:t.height)&&void 0!==i?i:s.height),(!a.persistWidth||Math.abs(a.currentSize.width-l)<=r)&&(l=null!==(o=null===(n=a.persistedSize)||void 0===n?void 0:n.width)&&void 0!==o?o:s.width),this._persistedSize.store(new J.Ro(l,c))}this._contentWidget.unlockPreference(),a=void 0}}))),this._messageElement=J.R3(this.element.domNode,J.$(".message")),this._listElement=J.R3(this.element.domNode,J.$(".tree"));const c=o.createInstance(Se,this.editor);c.onDidClose(this.toggleDetails,this,this._disposables),this._details=new Le(c,this.editor);const h=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(108).showIcons);h();const u=o.createInstance(Ue,this.editor);this._disposables.add(u),this._disposables.add(u.onDidToggleDetails((()=>this.toggleDetails()))),this._list=new X.aV("SuggestWidget",this._listElement,{getHeight:e=>this.getLayoutInfo().itemHeight,getTemplateId:e=>"suggestion"},[u],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>"option",getWidgetAriaLabel:()=>D.NC("suggest","Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:e=>{let t=e.textLabel;if("string"!=typeof e.completion.label){const{detail:i,description:n}=e.completion.label;i&&n?t=D.NC("label.full","{0}{1}, {2}",t,i,n):i?t=D.NC("label.detail","{0}{1}",t,i):n&&(t=D.NC("label.desc","{0}, {1}",t,n))}if(!e.isResolved||!this._isDetailsVisible())return t;const{documentation:i,detail:n}=e.completion,o=F.WU("{0}{1}",n||"",i?"string"==typeof i?i:i.value:"");return D.NC("ariaCurrenttSuggestionReadDetails","{0}, docs: {1}",t,o)}}}),this._status=o.createInstance(le,this.element.domNode);const g=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(108).showStatusBar);g(),this._disposables.add((0,he.Jl)(this._list,n,{listInactiveFocusBackground:Ze,listInactiveFocusOutline:de.xL1})),this._disposables.add(n.onDidColorThemeChange((e=>this._onThemeChange(e)))),this._onThemeChange(n.getColorTheme()),this._disposables.add(this._list.onMouseDown((e=>this._onListMouseDownOrTap(e)))),this._disposables.add(this._list.onTap((e=>this._onListMouseDownOrTap(e)))),this._disposables.add(this._list.onDidChangeSelection((e=>this._onListSelection(e)))),this._disposables.add(this._list.onDidChangeFocus((e=>this._onListFocus(e)))),this._disposables.add(this.editor.onDidChangeCursorSelection((()=>this._onCursorSelectionChanged()))),this._disposables.add(this.editor.onDidChangeConfiguration((e=>{e.hasChanged(108)&&(g(),h())}))),this._ctxSuggestWidgetVisible=T._y.Visible.bindTo(i),this._ctxSuggestWidgetDetailsVisible=T._y.DetailsVisible.bindTo(i),this._ctxSuggestWidgetMultipleSuggestions=T._y.MultipleSuggestions.bindTo(i),this._ctxSuggestWidgetHasFocusedSuggestion=T._y.HasFocusedSuggestion.bindTo(i),this._disposables.add(J.mu(this._details.widget.domNode,"keydown",(e=>{this._onDetailsKeydown.fire(e)}))),this._disposables.add(this.editor.onMouseDown((e=>this._onEditorMouseDown(e))))}dispose(){var e;this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),null===(e=this._loadingTimeout)||void 0===e||e.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose()}_onEditorMouseDown(e){this._details.widget.domNode.contains(e.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(e.target.element)&&this.editor.focus()}_onCursorSelectionChanged(){0!==this._state&&this._contentWidget.layout()}_onListMouseDownOrTap(e){void 0!==e.element&&void 0!==e.index&&(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation(),this._select(e.element,e.index))}_onListSelection(e){e.elements.length&&this._select(e.elements[0],e.indexes[0])}_select(e,t){const i=this._completionModel;i&&(this._onDidSelect.fire({item:e,index:t,model:i}),this.editor.focus())}_onThemeChange(e){this._details.widget.borderWidth=(0,ue.c3)(e.type)?2:1}_onListFocus(e){var t;if(this._ignoreFocusEvents)return;if(!e.elements.length)return this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),this.editor.setAriaOptions({activeDescendant:void 0}),void this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);const i=e.elements[0],n=e.indexes[0];i!==this._focusedItem&&(null===(t=this._currentSuggestionDetails)||void 0===t||t.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=i,this._list.reveal(n),this._currentSuggestionDetails=(0,s.PG)((e=>Ge(this,void 0,void 0,(function*(){const t=(0,s.Vg)((()=>{this._isDetailsVisible()&&this.showDetails(!0)}),250),n=e.onCancellationRequested((()=>t.dispose())),o=yield i.resolve(e);return t.dispose(),n.dispose(),o})))),this._currentSuggestionDetails.then((()=>{n>=this._list.length||i!==this._list.element(n)||(this._ignoreFocusEvents=!0,this._list.splice(n,1,[i]),this._list.setFocus([n]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this.showDetails(!1):this.element.domNode.classList.remove("docs-side"),this.editor.setAriaOptions({activeDescendant:He(n)}))})).catch(a.dL)),this._onDidFocus.fire({item:i,index:n,model:this._completionModel})}_setState(t){if(this._state!==t)switch(this._state=t,this.element.domNode.classList.toggle("frozen",4===t),this.element.domNode.classList.remove("message"),t){case 0:J.Cp(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove("visible"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add("message"),this._messageElement.textContent=e.LOADING_MESSAGE,J.Cp(this._listElement,this._status.element),J.$Z(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0;break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=e.NO_SUGGESTIONS_MESSAGE,J.Cp(this._listElement,this._status.element),J.$Z(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0;break;case 3:case 4:J.Cp(this._messageElement),J.$Z(this._listElement,this._status.element),this._show();break;case 5:J.Cp(this._messageElement),J.$Z(this._listElement,this._status.element),this._details.show(),this._show()}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet((()=>{this.element.domNode.classList.add("visible"),this._onDidShow.fire(this)}),100)}showTriggered(e,t){0===this._state&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!e,this._isAuto||(this._loadingTimeout=(0,s.Vg)((()=>this._setState(1)),t)))}showSuggestions(e,t,i,n){var o,s;if(this._contentWidget.setPosition(this.editor.getPosition()),null===(o=this._loadingTimeout)||void 0===o||o.dispose(),null===(s=this._currentSuggestionDetails)||void 0===s||s.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==e&&(this._completionModel=e),i&&2!==this._state&&0!==this._state)return void this._setState(4);const r=this._completionModel.items.length,a=0===r;if(this._ctxSuggestWidgetMultipleSuggestions.set(r>1),a)return this._setState(n?0:2),void(this._completionModel=void 0);this._focusedItem=void 0,this._list.splice(0,this._list.length,this._completionModel.items),this._setState(i?4:3),t>=0&&(this._list.reveal(t,0),this._list.setFocus([t])),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(0!==this._state&&2!==this._state&&1!==this._state&&this._completionModel)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){5===this._state?(this._setState(3),this._details.widget.domNode.classList.remove("focused")):3===this._state&&this._isDetailsVisible()&&(this._setState(5),this._details.widget.domNode.classList.add("focused"))}toggleDetails(){this._isDetailsVisible()?(this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details")):!ye(this._list.getFocusedElements()[0])&&!this._explainMode||3!==this._state&&5!==this._state&&4!==this._state||(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this.showDetails(!1))}showDetails(e){this._details.show(),e?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._positionDetails(),this.editor.focus(),this.element.domNode.classList.add("shows-details")}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this.showDetails(!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){var e;null===(e=this._loadingTimeout)||void 0===e||e.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();const t=this._persistedSize.restore(),i=Math.ceil(4.3*this.getLayoutInfo().itemHeight);t&&t.height<i&&this._persistedSize.store(t.with(void 0,i))}isFrozen(){return 4===this._state}_afterRender(e){null!==e?2!==this._state&&1!==this._state&&(this._isDetailsVisible()&&this._details.show(),this._positionDetails()):this._isDetailsVisible()&&this._details.hide()}_layout(e){var t,i,n;if(!this.editor.hasModel())return;if(!this.editor.getDomNode())return;const o=J.D6(document.body),s=this.getLayoutInfo();e||(e=s.defaultSize);let r=e.height,a=e.width;if(this._status.element.style.lineHeight=`${s.itemHeight}px`,2===this._state||1===this._state)r=s.itemHeight+s.borderHeight,a=s.defaultSize.width/2,this.element.enableSashes(!1,!1,!1,!1),this.element.minSize=this.element.maxSize=new J.Ro(a,r),this._contentWidget.setPreference(2);else{const l=o.width-s.borderHeight-2*s.horizontalPadding;a>l&&(a=l);const c=this._completionModel?this._completionModel.stats.pLabelLen*s.typicalHalfwidthCharacterWidth:a,d=s.statusBarHeight+this._list.contentHeight+s.borderHeight,h=s.itemHeight+s.statusBarHeight,u=J.i(this.editor.getDomNode()),g=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),p=u.top+g.top+g.height,m=Math.min(o.height-p-s.verticalPadding,d),f=u.top+g.top-s.verticalPadding,_=Math.min(f,d);let v=Math.min(Math.max(_,m)+s.borderHeight,d);r===(null===(t=this._cappedHeight)||void 0===t?void 0:t.capped)&&(r=this._cappedHeight.wanted),r<h&&(r=h),r>v&&(r=v);const b=150;r>m||this._forceRenderingAbove&&f>b?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),v=_):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),v=m),this.element.preferredSize=new J.Ro(c,s.defaultSize.height),this.element.maxSize=new J.Ro(l,v),this.element.minSize=new J.Ro(220,h),this._cappedHeight=r===d?{wanted:null!==(n=null===(i=this._cappedHeight)||void 0===i?void 0:i.wanted)&&void 0!==n?n:e.height,capped:r}:void 0}this._resize(a,r)}_resize(e,t){const{width:i,height:n}=this.element.maxSize;e=Math.min(i,e),t=Math.min(n,t);const{statusBarHeight:o}=this.getLayoutInfo();this._list.layout(t-o,e),this._listElement.style.height=t-o+"px",this.element.layout(t,e),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){var e;this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,2===(null===(e=this._contentWidget.getPosition())||void 0===e?void 0:e.preference[0]))}getLayoutInfo(){const e=this.editor.getOption(46),t=(0,ee.uZ)(this.editor.getOption(110)||e.lineHeight,8,1e3),i=this.editor.getOption(108).showStatusBar&&2!==this._state&&1!==this._state?t:0,n=this._details.widget.borderWidth,o=2*n;return{itemHeight:t,statusBarHeight:i,borderWidth:n,borderHeight:o,typicalHalfwidthCharacterWidth:e.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new J.Ro(430,i+12*t+o)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(e){this._storageService.store("expandSuggestionDocs",e,0,0)}forceRenderingAbove(){this._forceRenderingAbove||(this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore()))}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};Je.LOADING_MESSAGE=D.NC("suggestWidget.loading","Loading..."),Je.NO_SUGGESTIONS_MESSAGE=D.NC("suggestWidget.noSuggestions","No suggestions."),Je=$e([qe(1,ce.Uy),qe(2,S.i6),qe(3,ge.XE),qe(4,E.TG)],Je);class Xe{constructor(e,t){this._widget=e,this._editor=t,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}getId(){return"editor.widget.suggestWidget"}getDomNode(){return this._widget.element.domNode}show(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}hide(){this._hidden||(this._hidden=!0,this.layout())}layout(){this._editor.layoutContentWidget(this)}getPosition(){return!this._hidden&&this._position&&this._preference?{position:this._position,preference:[this._preference]}:null}beforeRender(){const{height:e,width:t}=this._widget.element.size,{borderWidth:i,horizontalPadding:n}=this._widget.getLayoutInfo();return new J.Ro(t+2*i+n,e+2*i)}afterRender(e){this._widget._afterRender(e)}setPreference(e){this._preferenceLocked||(this._preference=e)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(e){this._position=e}}var et=i(89954),tt=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},it=function(e,t){return function(i,n){t(i,n,e)}};class nt{constructor(e,t){this._model=e,this._position=t;if(e.getLineMaxColumn(t.lineNumber)!==t.column){const i=e.getOffsetAt(t),n=e.getPositionAt(i+1);this._marker=e.deltaDecorations([],[{range:v.e.fromPositions(t,n),options:{description:"suggest-line-suffix",stickiness:1}}])}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.deltaDecorations(this._marker,[])}delta(e){if(this._model.isDisposed()||this._position.lineNumber!==e.lineNumber)return 0;if(this._marker){const t=this._model.getDecorationRange(this._marker[0]);return this._model.getOffsetAt(t.getStartPosition())-this._model.getOffsetAt(e)}return this._model.getLineMaxColumn(e.lineNumber)-e.column}}let ot=class e{constructor(e,t,i,n,o,r,a){this._memoryService=t,this._commandService=i,this._contextKeyService=n,this._instantiationService=o,this._logService=r,this._telemetryService=a,this._lineSuffix=new d.XK,this._toDispose=new d.SL,this._selectors=new st((e=>e.priority)),this._telemetryGate=0,this.editor=e,this.model=o.createInstance(Z,this.editor);const l=T._y.InsertMode.bindTo(n);l.set(e.getOption(108).insertMode),this.model.onDidTrigger((()=>l.set(e.getOption(108).insertMode))),this.widget=this._toDispose.add(new s.Ue((()=>{const e=this._instantiationService.createInstance(Je,this.editor);this._toDispose.add(e),this._toDispose.add(e.onDidSelect((e=>this._insertSuggestion(e,0)),this));const t=new P(this.editor,e,(e=>this._insertSuggestion(e,2)));this._toDispose.add(t),this._toDispose.add(this.model.onDidSuggest((e=>{0===e.completionModel.items.length&&t.reset()})));const i=T._y.MakesTextEdit.bindTo(this._contextKeyService),n=T._y.HasInsertAndReplaceRange.bindTo(this._contextKeyService),o=T._y.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add((0,d.OF)((()=>{i.reset(),n.reset(),o.reset()}))),this._toDispose.add(e.onDidFocus((({item:e})=>{const t=this.editor.getPosition(),s=e.editStart.column,r=t.column;let a=!0;if(!("smart"!==this.editor.getOption(1)||2!==this.model.state||e.completion.additionalTextEdits||4&e.completion.insertTextRules||r-s!==e.completion.insertText.length)){a=this.editor.getModel().getValueInRange({startLineNumber:t.lineNumber,startColumn:s,endLineNumber:t.lineNumber,endColumn:r})!==e.completion.insertText}i.set(a),n.set(!_.L.equals(e.editInsertEnd,e.editReplaceEnd)),o.set(Boolean(e.provider.resolveCompletionItem)||Boolean(e.completion.documentation)||e.completion.detail!==e.completion.label)}))),this._toDispose.add(e.onDetailsKeyDown((e=>{e.toKeybinding().equals(new c.QC(!0,!1,!1,!1,33))||h.dz&&e.toKeybinding().equals(new c.QC(!1,!1,!1,!0,33))?e.stopPropagation():e.toKeybinding().isModifierKey()||this.editor.focus()}))),e}))),this._overtypingCapturer=this._toDispose.add(new s.Ue((()=>this._toDispose.add(new Y(this.editor,this.model))))),this._alternatives=this._toDispose.add(new s.Ue((()=>this._toDispose.add(new R(this.editor,this._contextKeyService))))),this._toDispose.add(o.createInstance(x,e)),this._toDispose.add(this.model.onDidTrigger((e=>{this.widget.value.showTriggered(e.auto,e.shy?250:50),this._lineSuffix.value=new nt(this.editor.getModel(),e.position)}))),this._toDispose.add(this.model.onDidSuggest((e=>{if(e.shy)return;let t=-1;if(!e.noSelect){for(const i of this._selectors.itemsOrderedByPriorityDesc)if(t=i.select(this.editor.getModel(),this.editor.getPosition(),e.completionModel.items),-1!==t)break;-1===t&&(t=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),e.completionModel.items))}this.widget.value.showSuggestions(e.completionModel,t,e.isFrozen,e.auto)}))),this._toDispose.add(this.model.onDidCancel((e=>{e.retrigger||this.widget.value.hideWidget()}))),this._toDispose.add(this.editor.onDidBlurEditorWidget((()=>{this.model.cancel(),this.model.clear()})));const u=T._y.AcceptSuggestionsOnEnter.bindTo(n),g=()=>{const e=this.editor.getOption(1);u.set("on"===e||"smart"===e)};this._toDispose.add(this.editor.onDidChangeConfiguration((()=>g()))),g()}static get(t){return t.getContribution(e.ID)}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose()}_insertSuggestion(e,t){if(!e||!e.item)return this._alternatives.value.reset(),this.model.cancel(),void this.model.clear();if(!this.editor.hasModel())return;const i=C.f.get(this.editor);if(!i)return;const n=this.editor.getModel(),o=n.getAlternativeVersionId(),{item:s}=e,l=[],c=new r.A;1&t||this.editor.pushUndoStop();const d=this.getOverwriteInfo(s,Boolean(8&t));if(this._memoryService.memorize(n,this.editor.getPosition(),s),Array.isArray(s.completion.additionalTextEdits)){const e=p.Z.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",s.completion.additionalTextEdits.map((e=>f.h.replaceMove(v.e.lift(e.range),e.text)))),e.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!s.isResolved){const e=new u.G(!0);let i;const o=n.onDidChangeContent((e=>{if(e.isFlush)return c.cancel(),void o.dispose();for(const t of e.changes){const e=v.e.getEndPosition(t.range);i&&!_.L.isBefore(e,i)||(i=e)}})),r=t;t|=2;let a=!1;const d=this.editor.onWillType((()=>{d.dispose(),a=!0,2&r||this.editor.pushUndoStop()}));l.push(s.resolve(c.token).then((()=>{if(!s.completion.additionalTextEdits||c.token.isCancellationRequested)return!1;if(i&&s.completion.additionalTextEdits.some((e=>_.L.isBefore(i,v.e.getStartPosition(e.range)))))return!1;a&&this.editor.pushUndoStop();const e=p.Z.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",s.completion.additionalTextEdits.map((e=>f.h.replaceMove(v.e.lift(e.range),e.text)))),e.restoreRelativeVerticalPositionOfCursor(this.editor),!a&&2&r||this.editor.pushUndoStop(),!0})).then((t=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",e.elapsed(),t),o.dispose(),d.dispose()})))}let{insertText:h}=s.completion;4&s.completion.insertTextRules||(h=w.Yj.escape(h)),i.insert(h,{overwriteBefore:d.overwriteBefore,overwriteAfter:d.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(1&s.completion.insertTextRules),clipboardText:e.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value}),2&t||this.editor.pushUndoStop(),s.completion.command?s.completion.command.id===rt.id?this.model.trigger({auto:!0,shy:!1,noSelect:!1},!0):(l.push(this._commandService.executeCommand(s.completion.command.id,...s.completion.command.arguments?[...s.completion.command.arguments]:[]).catch(a.dL)),this.model.cancel()):this.model.cancel(),4&t&&this._alternatives.value.set(e,(e=>{for(c.cancel();n.canUndo();){o!==n.getAlternativeVersionId()&&n.undo(),this._insertSuggestion(e,3|(8&t?8:0));break}})),this._alertCompletionItem(s),Promise.all(l).finally((()=>{this._reportSuggestionAcceptedTelemetry(s,n,e),this.model.clear(),c.dispose()}))}_reportSuggestionAcceptedTelemetry(e,t,i){var n;if(this._telemetryGate++%100!=0)return;const o=e.extensionId?e.extensionId.value:(null!==(n=i.item.provider._debugDisplayName)&&void 0!==n?n:"unknown").split("(",1)[0].toLowerCase();this._telemetryService.publicLog2("suggest.acceptedSuggestion",{providerId:o,kind:e.completion.kind,basenameHash:(0,et.vp)((0,Te.EZ)(t.uri)).toString(16),languageId:t.getLanguageId(),fileExtension:(0,Te.DZ)(t.uri)})}getOverwriteInfo(e,t){(0,g.p_)(this.editor.hasModel());let i="replace"===this.editor.getOption(108).insertMode;t&&(i=!i);const n=e.position.column-e.editStart.column,o=(i?e.editReplaceEnd.column:e.editInsertEnd.column)-e.position.column;return{overwriteBefore:n+(this.editor.getPosition().column-e.position.column),overwriteAfter:o+(this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0)}}_alertCompletionItem(e){if((0,o.Of)(e.completion.additionalTextEdits)){const t=D.NC("aria.alert.snippet","Accepting '{0}' made {1} additional edits",e.textLabel,e.completion.additionalTextEdits.length);(0,n.Z9)(t)}}triggerSuggest(e,t,i,n){this.editor.hasModel()&&(this.model.trigger({auto:null!=t&&t,shy:!1,noSelect:null!=n&&n},!1,e,void 0,i),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus())}triggerSuggestAndAcceptBest(e){if(!this.editor.hasModel())return;const t=this.editor.getPosition(),i=()=>{t.equals(this.editor.getPosition())&&this._commandService.executeCommand(e.fallback)},n=e=>{if(4&e.completion.insertTextRules||e.completion.additionalTextEdits)return!0;const t=this.editor.getPosition(),i=e.editStart.column,n=t.column;if(n-i!==e.completion.insertText.length)return!0;return this.editor.getModel().getValueInRange({startLineNumber:t.lineNumber,startColumn:i,endLineNumber:t.lineNumber,endColumn:n})!==e.completion.insertText};l.ju.once(this.model.onDidTrigger)((e=>{const t=[];l.ju.any(this.model.onDidTrigger,this.model.onDidCancel)((()=>{(0,d.B9)(t),i()}),void 0,t),this.model.onDidSuggest((({completionModel:e})=>{if((0,d.B9)(t),0===e.items.length)return void i();const o=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),e.items),s=e.items[o];n(s)?(this.editor.pushUndoStop(),this._insertSuggestion({index:o,item:s,model:e},7)):i()}),void 0,t)})),this.model.trigger({auto:!1,shy:!0,noSelect:!1}),this.editor.revealPosition(t,0),this.editor.focus()}acceptSelectedSuggestion(e,t){const i=this.widget.value.getFocusedItem();let n=0;e&&(n|=4),t&&(n|=8),this._insertSuggestion(i,n)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){this.widget.value.forceRenderingAbove()}stopForceRenderingAbove(){this.widget.isInitialized&&this.widget.value.stopForceRenderingAbove()}registerSelector(e){return this._selectors.register(e)}};ot.ID="editor.contrib.suggestController",ot=tt([it(1,y.Fh),it(2,N.Hy),it(3,S.i6),it(4,E.TG),it(5,I.VZ),it(6,j.b)],ot);class st{constructor(e){this.prioritySelector=e,this._items=new Array}register(e){if(-1!==this._items.indexOf(e))throw new Error("Value is already registered");return this._items.push(e),this._items.sort(((e,t)=>this.prioritySelector(t)-this.prioritySelector(e))),{dispose:()=>{const t=this._items.indexOf(e);t>=0&&this._items.splice(t,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}class rt extends m.R6{constructor(){super({id:rt.id,label:D.NC("suggest.trigger.label","Trigger Suggest"),alias:"Trigger Suggest",precondition:S.Ao.and(b.u.writable,b.u.hasCompletionItemProvider),kbOpts:{kbExpr:b.u.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(e,t,i){const n=ot.get(t);if(!n)return;let o,s;i&&"object"==typeof i&&(!0===i.auto&&(o=!0),!0===i.noSelection&&(s=!0)),n.triggerSuggest(void 0,o,void 0,s)}}rt.id="editor.action.triggerSuggest",(0,m._K)(ot.ID,ot),(0,m.Qr)(rt);const at=190,lt=m._l.bindToContribution(ot.get);(0,m.fK)(new lt({id:"acceptSelectedSuggestion",precondition:S.Ao.and(T._y.Visible,T._y.HasFocusedSuggestion),handler(e){e.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:S.Ao.and(T._y.Visible,b.u.textInputFocus),weight:at},{primary:3,kbExpr:S.Ao.and(T._y.Visible,b.u.textInputFocus,T._y.AcceptSuggestionsOnEnter,T._y.MakesTextEdit),weight:at}],menuOpts:[{menuId:T.GI,title:D.NC("accept.insert","Insert"),group:"left",order:1,when:T._y.HasInsertAndReplaceRange.toNegated()},{menuId:T.GI,title:D.NC("accept.insert","Insert"),group:"left",order:1,when:S.Ao.and(T._y.HasInsertAndReplaceRange,T._y.InsertMode.isEqualTo("insert"))},{menuId:T.GI,title:D.NC("accept.replace","Replace"),group:"left",order:1,when:S.Ao.and(T._y.HasInsertAndReplaceRange,T._y.InsertMode.isEqualTo("replace"))}]})),(0,m.fK)(new lt({id:"acceptAlternativeSelectedSuggestion",precondition:S.Ao.and(T._y.Visible,b.u.textInputFocus,T._y.HasFocusedSuggestion),kbOpts:{weight:at,kbExpr:b.u.textInputFocus,primary:1027,secondary:[1026]},handler(e){e.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:T.GI,group:"left",order:2,when:S.Ao.and(T._y.HasInsertAndReplaceRange,T._y.InsertMode.isEqualTo("insert")),title:D.NC("accept.replace","Replace")},{menuId:T.GI,group:"left",order:2,when:S.Ao.and(T._y.HasInsertAndReplaceRange,T._y.InsertMode.isEqualTo("replace")),title:D.NC("accept.insert","Insert")}]})),N.P0.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion"),(0,m.fK)(new lt({id:"hideSuggestWidget",precondition:T._y.Visible,handler:e=>e.cancelSuggestWidget(),kbOpts:{weight:at,kbExpr:b.u.textInputFocus,primary:9,secondary:[1033]}})),(0,m.fK)(new lt({id:"selectNextSuggestion",precondition:S.Ao.and(T._y.Visible,T._y.MultipleSuggestions),handler:e=>e.selectNextSuggestion(),kbOpts:{weight:at,kbExpr:b.u.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),(0,m.fK)(new lt({id:"selectNextPageSuggestion",precondition:S.Ao.and(T._y.Visible,T._y.MultipleSuggestions),handler:e=>e.selectNextPageSuggestion(),kbOpts:{weight:at,kbExpr:b.u.textInputFocus,primary:12,secondary:[2060]}})),(0,m.fK)(new lt({id:"selectLastSuggestion",precondition:S.Ao.and(T._y.Visible,T._y.MultipleSuggestions),handler:e=>e.selectLastSuggestion()})),(0,m.fK)(new lt({id:"selectPrevSuggestion",precondition:S.Ao.and(T._y.Visible,T._y.MultipleSuggestions),handler:e=>e.selectPrevSuggestion(),kbOpts:{weight:at,kbExpr:b.u.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),(0,m.fK)(new lt({id:"selectPrevPageSuggestion",precondition:S.Ao.and(T._y.Visible,T._y.MultipleSuggestions),handler:e=>e.selectPrevPageSuggestion(),kbOpts:{weight:at,kbExpr:b.u.textInputFocus,primary:11,secondary:[2059]}})),(0,m.fK)(new lt({id:"selectFirstSuggestion",precondition:S.Ao.and(T._y.Visible,T._y.MultipleSuggestions),handler:e=>e.selectFirstSuggestion()})),(0,m.fK)(new lt({id:"toggleSuggestionDetails",precondition:T._y.Visible,handler:e=>e.toggleSuggestionDetails(),kbOpts:{weight:at,kbExpr:b.u.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:T.GI,group:"right",order:1,when:S.Ao.and(T._y.DetailsVisible,T._y.CanResolve),title:D.NC("detail.more","show less")},{menuId:T.GI,group:"right",order:1,when:S.Ao.and(T._y.DetailsVisible.toNegated(),T._y.CanResolve),title:D.NC("detail.less","show more")}]})),(0,m.fK)(new lt({id:"toggleExplainMode",precondition:T._y.Visible,handler:e=>e.toggleExplainMode(),kbOpts:{weight:100,primary:2133}})),(0,m.fK)(new lt({id:"toggleSuggestionFocus",precondition:T._y.Visible,handler:e=>e.toggleSuggestionFocus(),kbOpts:{weight:at,kbExpr:b.u.textInputFocus,primary:2570,mac:{primary:778}}})),(0,m.fK)(new lt({id:"insertBestCompletion",precondition:S.Ao.and(b.u.textInputFocus,S.Ao.equals("config.editor.tabCompletion","on"),x.AtEnd,T._y.Visible.toNegated(),R.OtherSuggestions.toNegated(),C.f.InSnippetMode.toNegated()),handler:(e,t)=>{e.triggerSuggestAndAcceptBest((0,g.Kn)(t)?Object.assign({fallback:"tab"},t):{fallback:"tab"})},kbOpts:{weight:at,primary:2}})),(0,m.fK)(new lt({id:"insertNextSuggestion",precondition:S.Ao.and(b.u.textInputFocus,S.Ao.equals("config.editor.tabCompletion","on"),R.OtherSuggestions,T._y.Visible.toNegated(),C.f.InSnippetMode.toNegated()),handler:e=>e.acceptNextSuggestion(),kbOpts:{weight:at,kbExpr:b.u.textInputFocus,primary:2}})),(0,m.fK)(new lt({id:"insertPrevSuggestion",precondition:S.Ao.and(b.u.textInputFocus,S.Ao.equals("config.editor.tabCompletion","on"),R.OtherSuggestions,T._y.Visible.toNegated(),C.f.InSnippetMode.toNegated()),handler:e=>e.acceptPrevSuggestion(),kbOpts:{weight:at,kbExpr:b.u.textInputFocus,primary:1026}})),(0,m.Qr)(class extends m.R6{constructor(){super({id:"editor.action.resetSuggestSize",label:D.NC("suggest.reset.label","Reset Suggest Widget Size"),alias:"Reset Suggest Widget Size",precondition:void 0})}run(e,t){var i;null===(i=ot.get(t))||void 0===i||i.resetWidgetSize()}})},88088:(e,t,i)=>{"use strict";var n=i(71050),o=i(48357),s=i(53725),r=i(5976),a=i(16830),l=i(11640),c=i(24314),d=i(71922),h=i(70902),u=i(74961),g=i(55621),p=i(80378),m=i(24477),f=i(84972),_=i(72065),v=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},b=function(e,t){return function(i,n){t(i,n,e)}},C=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class w{constructor(e,t,i,n,o,s){this.range=e,this.insertText=t,this.filterText=i,this.additionalTextEdits=n,this.command=o,this.completion=s}}let y=class extends r.L6{constructor(e,t,i,n,o,s){super(o.disposable),this.model=e,this.line=t,this.word=i,this.completionModel=n,this._suggestMemoryService=s}canBeReused(e,t,i){return this.model===e&&this.line===t&&this.word.word.length>0&&this.word.startColumn===i.startColumn&&this.word.endColumn<i.endColumn&&0===this.completionModel.incomplete.size}get items(){var e;const t=[],{items:i}=this.completionModel,r=this._suggestMemoryService.select(this.model,{lineNumber:this.line,column:this.word.endColumn+this.completionModel.lineContext.characterCountDelta},i),a=s.$.slice(i,r),l=s.$.slice(i,0,r);let d=5;for(const u of s.$.concat(a,l)){if(u.score===o.CL.Default)continue;const i=new c.e(u.editStart.lineNumber,u.editStart.column,u.editInsertEnd.lineNumber,u.editInsertEnd.column+this.completionModel.lineContext.characterCountDelta),s=u.completion.insertTextRules&&u.completion.insertTextRules&h.a7.InsertAsSnippet?{snippet:u.completion.insertText}:u.completion.insertText;t.push(new w(i,s,null!==(e=u.filterTextLow)&&void 0!==e?e:u.labelLow,u.completion.additionalTextEdits,u.completion.command,u)),d-- >=0&&u.resolve(n.T.None)}return t}};y=v([b(5,p.Fh)],y);let S=class{constructor(e,t,i,n){this._getEditorOption=e,this._languageFeatureService=t,this._clipboardService=i,this._suggestMemoryService=n}provideInlineCompletions(e,t,i,n){var o;return C(this,void 0,void 0,(function*(){if(i.selectedSuggestionInfo)return;const s=this._getEditorOption(81,e);if(g.tG.isAllOff(s))return;e.tokenization.tokenizeIfCheap(t.lineNumber);const r=e.tokenization.getLineTokens(t.lineNumber),a=r.getStandardTokenType(r.findTokenIndexAtOffset(Math.max(t.column-1-1,0)));if("inline"!==g.tG.valueFor(s,a))return;let l,d,h=e.getWordAtPosition(t);if((null==h?void 0:h.word)||(l=this._getTriggerCharacterInfo(e,t)),!(null==h?void 0:h.word)&&!l)return;if(h||(h=e.getWordUntilPosition(t)),h.endColumn!==t.column)return;const p=e.getValueInRange(new c.e(t.lineNumber,1,t.lineNumber,t.column));if(!l&&(null===(o=this._lastResult)||void 0===o?void 0:o.canBeReused(e,t.lineNumber,h))){const e=new u.t(p,t.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=e,this._lastResult.acquire(),d=this._lastResult}else{const i=yield(0,g.kL)(this._languageFeatureService.completionProvider,e,t,new g.A9(void 0,void 0,null==l?void 0:l.providers),l&&{triggerKind:1,triggerCharacter:l.ch},n);let o;i.needsClipboard&&(o=yield this._clipboardService.readText());const s=new u._(i.items,t.column,new u.t(p,0),m.K.None,this._getEditorOption(108,e),this._getEditorOption(103,e),{boostFullMatch:!1,firstMatchCanBeWeak:!1},o);d=new y(e,t.lineNumber,h,s,i,this._suggestMemoryService)}return this._lastResult=d,d}))}handleItemDidShow(e,t){t.completion.resolve(n.T.None)}freeInlineCompletions(e){e.release()}_getTriggerCharacterInfo(e,t){var i;const n=e.getValueInRange(c.e.fromPositions({lineNumber:t.lineNumber,column:t.column-1},t)),o=new Set;for(const s of this._languageFeatureService.completionProvider.all(e))(null===(i=s.triggerCharacters)||void 0===i?void 0:i.includes(n))&&o.add(s);if(0!==o.size)return{providers:o,ch:n}}};S=v([b(1,d.p),b(2,f.p),b(3,p.Fh)],S);let L=class e{constructor(t,i,n,o){if(1==++e._counter){const s=o.createInstance(S,((e,i)=>{var o;return(null!==(o=n.listCodeEditors().find((e=>e.getModel()===i)))&&void 0!==o?o:t).getOption(e)}));e._disposable=i.inlineCompletionsProvider.register("*",s)}}dispose(){var t;0==--e._counter&&(null===(t=e._disposable)||void 0===t||t.dispose(),e._disposable=void 0)}};L._counter=0,L=v([b(1,d.p),b(2,l.$),b(3,_.TG)],L),(0,a._K)("suggest.inlineCompletionsProvider",L)},80378:(e,t,i)=>{"use strict";i.d(t,{Fh:()=>f});var n=i(15393),o=i(5976),s=i(43702),r=i(43155),a=i(33108),l=i(65026),c=i(72065),d=i(87060),h=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},u=function(e,t){return function(i,n){t(i,n,e)}};class g{constructor(e){this.name=e}select(e,t,i){if(0===i.length)return 0;const n=i[0].score[0];for(let o=0;o<i.length;o++){const{score:e,completion:t}=i[o];if(e[0]!==n)break;if(t.preselect)return o}return 0}}class p extends g{constructor(){super("first")}memorize(e,t,i){}toJSON(){}fromJSON(){}}let m=class e{constructor(e,t){this._storageService=e,this._configService=t,this._disposables=new o.SL,this._persistSoon=new n.pY((()=>this._saveState()),500),this._disposables.add(e.onWillSaveState((e=>{e.reason===d.fk.SHUTDOWN&&this._saveState()})))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(e,t,i){this._withStrategy(e,t).memorize(e,t,i),this._persistSoon.schedule()}select(e,t,i){return this._withStrategy(e,t).select(e,t,i)}_withStrategy(t,i){var n;const o=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:t.getLanguageIdAtPosition(i.lineNumber,i.column),resource:t.uri});if((null===(n=this._strategy)||void 0===n?void 0:n.name)!==o){this._saveState();const t=e._strategyCtors.get(o)||p;this._strategy=new t;try{const t=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,i=this._storageService.get(`${e._storagePrefix}/${o}`,t);i&&this._strategy.fromJSON(JSON.parse(i))}catch(s){}}return this._strategy}_saveState(){if(this._strategy){const t=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,i=JSON.stringify(this._strategy);this._storageService.store(`${e._storagePrefix}/${this._strategy.name}`,i,t,1)}}};m._strategyCtors=new Map([["recentlyUsedByPrefix",class extends g{constructor(){super("recentlyUsedByPrefix"),this._trie=s.Id.forStrings(),this._seq=0}memorize(e,t,i){const{word:n}=e.getWordUntilPosition(t),o=`${e.getLanguageId()}/${n}`;this._trie.set(o,{type:i.completion.kind,insertText:i.completion.insertText,touch:this._seq++})}select(e,t,i){const{word:n}=e.getWordUntilPosition(t);if(!n)return super.select(e,t,i);const o=`${e.getLanguageId()}/${n}`;let s=this._trie.get(o);if(s||(s=this._trie.findSubstr(o)),s)for(let r=0;r<i.length;r++){const{kind:e,insertText:t}=i[r].completion;if(e===s.type&&t===s.insertText)return r}return super.select(e,t,i)}toJSON(){const e=[];return this._trie.forEach(((t,i)=>e.push([i,t]))),e.sort(((e,t)=>-(e[1].touch-t[1].touch))).forEach(((e,t)=>e[1].touch=t)),e.slice(0,200)}fromJSON(e){if(this._trie.clear(),e.length>0){this._seq=e[0][1].touch+1;for(const[t,i]of e)i.type="number"==typeof i.type?i.type:r.gX.fromString(i.type),this._trie.set(t,i)}}}],["recentlyUsed",class extends g{constructor(){super("recentlyUsed"),this._cache=new s.z6(300,.66),this._seq=0}memorize(e,t,i){const n=`${e.getLanguageId()}/${i.textLabel}`;this._cache.set(n,{touch:this._seq++,type:i.completion.kind,insertText:i.completion.insertText})}select(e,t,i){if(0===i.length)return 0;const n=e.getLineContent(t.lineNumber).substr(t.column-10,t.column-1);if(/\s$/.test(n))return super.select(e,t,i);const o=i[0].score[0];let s=-1,r=-1,a=-1;for(let l=0;l<i.length&&i[l].score[0]===o;l++){const t=`${e.getLanguageId()}/${i[l].textLabel}`,n=this._cache.peek(t);if(n&&n.touch>a&&n.type===i[l].completion.kind&&n.insertText===i[l].completion.insertText&&(a=n.touch,r=l),i[l].completion.preselect&&-1===s)return l}return-1!==r?r:-1!==s?s:0}toJSON(){return this._cache.toJSON()}fromJSON(e){this._cache.clear();for(const[t,i]of e)i.touch=0,i.type="number"==typeof i.type?i.type:r.gX.fromString(i.type),this._cache.set(t,i);this._seq=this._cache.size}}],["first",p]]),m._storagePrefix="suggest/memories",m=h([u(0,d.Uy),u(1,a.Ui)],m);const f=(0,c.yh)("ISuggestMemories");(0,l.z)(f,m,!0)},24477:(e,t,i)=>{"use strict";i.d(t,{K:()=>a});var n=i(9488),o=i(24314),s=i(79694),r=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class a{static create(e,t){return r(this,void 0,void 0,(function*(){if(!t.getOption(108).localityBonus)return a.None;if(!t.hasModel())return a.None;const i=t.getModel(),r=t.getPosition();if(!e.canComputeWordRanges(i.uri))return a.None;const[l]=yield(new s.x).provideSelectionRanges(i,[r]);if(0===l.length)return a.None;const c=yield e.computeWordRanges(i.uri,l[0].range);if(!c)return a.None;const d=i.getWordUntilPosition(r);return delete c[d.word],new class extends a{distance(e,i){if(!r.equals(t.getPosition()))return 0;if(17===i.kind)return 2<<20;const s="string"==typeof i.label?i.label:i.label.label,a=c[s];if((0,n.XY)(a))return 2<<20;const d=(0,n.ry)(a,o.e.fromPositions(e),o.e.compareRangesUsingStarts),h=d>=0?a[d]:a[Math.max(0,~d-1)];let u=l.length;for(const t of l){if(!o.e.containsRange(t.range,h))break;u-=1}return u}}}))}}a.None=new class extends a{distance(){return 0}}},71713:(e,t,i)=>{"use strict";var n=i(73046),o=i(63580),s=i(73910),r=i(97781);const a=(0,s.P6G)("symbolIcon.arrayForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.arrayForeground","The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),l=(0,s.P6G)("symbolIcon.booleanForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.booleanForeground","The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),c=(0,s.P6G)("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,o.NC)("symbolIcon.classForeground","The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),d=(0,s.P6G)("symbolIcon.colorForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.colorForeground","The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),h=(0,s.P6G)("symbolIcon.constantForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.constantForeground","The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),u=(0,s.P6G)("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,o.NC)("symbolIcon.constructorForeground","The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),g=(0,s.P6G)("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,o.NC)("symbolIcon.enumeratorForeground","The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),p=(0,s.P6G)("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,o.NC)("symbolIcon.enumeratorMemberForeground","The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),m=(0,s.P6G)("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,o.NC)("symbolIcon.eventForeground","The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),f=(0,s.P6G)("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,o.NC)("symbolIcon.fieldForeground","The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),_=(0,s.P6G)("symbolIcon.fileForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.fileForeground","The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),v=(0,s.P6G)("symbolIcon.folderForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.folderForeground","The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),b=(0,s.P6G)("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,o.NC)("symbolIcon.functionForeground","The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),C=(0,s.P6G)("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,o.NC)("symbolIcon.interfaceForeground","The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),w=(0,s.P6G)("symbolIcon.keyForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.keyForeground","The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),y=(0,s.P6G)("symbolIcon.keywordForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.keywordForeground","The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),S=(0,s.P6G)("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,o.NC)("symbolIcon.methodForeground","The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),L=(0,s.P6G)("symbolIcon.moduleForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.moduleForeground","The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),k=(0,s.P6G)("symbolIcon.namespaceForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.namespaceForeground","The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),x=(0,s.P6G)("symbolIcon.nullForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.nullForeground","The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),D=(0,s.P6G)("symbolIcon.numberForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.numberForeground","The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),N=(0,s.P6G)("symbolIcon.objectForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.objectForeground","The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),E=(0,s.P6G)("symbolIcon.operatorForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.operatorForeground","The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),I=(0,s.P6G)("symbolIcon.packageForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.packageForeground","The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),T=(0,s.P6G)("symbolIcon.propertyForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.propertyForeground","The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),M=(0,s.P6G)("symbolIcon.referenceForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.referenceForeground","The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),A=(0,s.P6G)("symbolIcon.snippetForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.snippetForeground","The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),R=(0,s.P6G)("symbolIcon.stringForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.stringForeground","The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),O=(0,s.P6G)("symbolIcon.structForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.structForeground","The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),P=(0,s.P6G)("symbolIcon.textForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.textForeground","The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),F=(0,s.P6G)("symbolIcon.typeParameterForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.typeParameterForeground","The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),B=(0,s.P6G)("symbolIcon.unitForeground",{dark:s.dRz,light:s.dRz,hcDark:s.dRz,hcLight:s.dRz},(0,o.NC)("symbolIcon.unitForeground","The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),V=(0,s.P6G)("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,o.NC)("symbolIcon.variableForeground","The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));(0,r.Ic)(((e,t)=>{const i=e.getColor(a);i&&t.addRule(`${n.lA.symbolArray.cssSelector} { color: ${i}; }`);const o=e.getColor(l);o&&t.addRule(`${n.lA.symbolBoolean.cssSelector} { color: ${o}; }`);const s=e.getColor(c);s&&t.addRule(`${n.lA.symbolClass.cssSelector} { color: ${s}; }`);const r=e.getColor(S);r&&t.addRule(`${n.lA.symbolMethod.cssSelector} { color: ${r}; }`);const W=e.getColor(d);W&&t.addRule(`${n.lA.symbolColor.cssSelector} { color: ${W}; }`);const H=e.getColor(h);H&&t.addRule(`${n.lA.symbolConstant.cssSelector} { color: ${H}; }`);const z=e.getColor(u);z&&t.addRule(`${n.lA.symbolConstructor.cssSelector} { color: ${z}; }`);const j=e.getColor(g);j&&t.addRule(`\n\t\t\t${n.lA.symbolValue.cssSelector},${n.lA.symbolEnum.cssSelector} { color: ${j}; }`);const U=e.getColor(p);U&&t.addRule(`${n.lA.symbolEnumMember.cssSelector} { color: ${U}; }`);const K=e.getColor(m);K&&t.addRule(`${n.lA.symbolEvent.cssSelector} { color: ${K}; }`);const $=e.getColor(f);$&&t.addRule(`${n.lA.symbolField.cssSelector} { color: ${$}; }`);const q=e.getColor(_);q&&t.addRule(`${n.lA.symbolFile.cssSelector} { color: ${q}; }`);const G=e.getColor(v);G&&t.addRule(`${n.lA.symbolFolder.cssSelector} { color: ${G}; }`);const Q=e.getColor(b);Q&&t.addRule(`${n.lA.symbolFunction.cssSelector} { color: ${Q}; }`);const Z=e.getColor(C);Z&&t.addRule(`${n.lA.symbolInterface.cssSelector} { color: ${Z}; }`);const Y=e.getColor(w);Y&&t.addRule(`${n.lA.symbolKey.cssSelector} { color: ${Y}; }`);const J=e.getColor(y);J&&t.addRule(`${n.lA.symbolKeyword.cssSelector} { color: ${J}; }`);const X=e.getColor(L);X&&t.addRule(`${n.lA.symbolModule.cssSelector} { color: ${X}; }`);const ee=e.getColor(k);ee&&t.addRule(`${n.lA.symbolNamespace.cssSelector} { color: ${ee}; }`);const te=e.getColor(x);te&&t.addRule(`${n.lA.symbolNull.cssSelector} { color: ${te}; }`);const ie=e.getColor(D);ie&&t.addRule(`${n.lA.symbolNumber.cssSelector} { color: ${ie}; }`);const ne=e.getColor(N);ne&&t.addRule(`${n.lA.symbolObject.cssSelector} { color: ${ne}; }`);const oe=e.getColor(E);oe&&t.addRule(`${n.lA.symbolOperator.cssSelector} { color: ${oe}; }`);const se=e.getColor(I);se&&t.addRule(`${n.lA.symbolPackage.cssSelector} { color: ${se}; }`);const re=e.getColor(T);re&&t.addRule(`${n.lA.symbolProperty.cssSelector} { color: ${re}; }`);const ae=e.getColor(M);ae&&t.addRule(`${n.lA.symbolReference.cssSelector} { color: ${ae}; }`);const le=e.getColor(A);le&&t.addRule(`${n.lA.symbolSnippet.cssSelector} { color: ${le}; }`);const ce=e.getColor(R);ce&&t.addRule(`${n.lA.symbolString.cssSelector} { color: ${ce}; }`);const de=e.getColor(O);de&&t.addRule(`${n.lA.symbolStruct.cssSelector} { color: ${de}; }`);const he=e.getColor(P);he&&t.addRule(`${n.lA.symbolText.cssSelector} { color: ${he}; }`);const ue=e.getColor(F);ue&&t.addRule(`${n.lA.symbolTypeParameter.cssSelector} { color: ${ue}; }`);const ge=e.getColor(B);ge&&t.addRule(`${n.lA.symbolUnit.cssSelector} { color: ${ge}; }`);const pe=e.getColor(V);pe&&t.addRule(`${n.lA.symbolVariable.cssSelector} { color: ${pe}; }`)}))},64662:(e,t,i)=>{"use strict";i.d(t,{R:()=>a});var n=i(85152),o=i(37940),s=i(16830),r=i(63580);class a extends s.R6{constructor(){super({id:a.ID,label:r.NC({key:"toggle.tabMovesFocus",comment:["Turn on/off use of tab key for moving focus around VS Code"]},"Toggle Tab Key Moves Focus"),alias:"Toggle Tab Key Moves Focus",precondition:void 0,kbOpts:{kbExpr:null,primary:2091,mac:{primary:1323},weight:100}})}run(e,t){const i=!o.n.getTabFocusMode();o.n.setTabFocusMode(i),i?(0,n.Z9)(r.NC("toggle.tabMovesFocus.on","Pressing Tab will now move focus to the next focusable element")):(0,n.Z9)(r.NC("toggle.tabMovesFocus.off","Pressing Tab will now insert the tab character"))}}a.ID="editor.action.toggleTabFocusMode",(0,s.Qr)(a)},52614:(e,t,i)=>{"use strict";var n=i(84013),o=i(16830),s=i(63580);class r extends o.R6{constructor(){super({id:"editor.action.forceRetokenize",label:s.NC("forceRetokenize","Developer: Force Retokenize"),alias:"Developer: Force Retokenize",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getModel();i.tokenization.resetTokenization();const o=new n.G(!0);i.tokenization.forceTokenization(i.getLineCount()),o.stop(),console.log(`tokenization took ${o.elapsed()}`)}}(0,o.Qr)(r)},95180:(e,t,i)=>{"use strict";var n=i(15393),o=i(73046),s=i(59365),r=i(5976),a=i(1432),l=i(97295),c=i(16830),d=i(64141),h=i(22529),u=i(31446),g=i(85215),p=i(72042),m=i(30168),f=i(66520),_=i(22374),v=i(65321),b=i(90317),C=i(74741),w=i(51318),y=i(72065),S=i(4850),L=i(59069),k=i(10553),x=i(4669),D=i(50988),N=i(73910),E=i(97781),I=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},T=function(e,t){return function(i,n){t(i,n,e)}};let M=class extends r.JT{constructor(e,t,i={},n){var o;super(),this._link=t,this._enabled=!0,this.el=(0,v.R3)(e,(0,v.$)("a.monaco-link",{tabIndex:null!==(o=t.tabIndex)&&void 0!==o?o:0,href:t.href,title:t.title},t.label)),this.el.setAttribute("role","button");const s=this._register(new S.Y(this.el,"click")),r=this._register(new S.Y(this.el,"keypress")),a=x.ju.chain(r.event).map((e=>new L.y(e))).filter((e=>3===e.keyCode)).event,l=this._register(new S.Y(this.el,k.t.Tap)).event;this._register(k.o.addTarget(this.el));const c=x.ju.any(s.event,a,l);this._register(c((e=>{this.enabled&&(v.zB.stop(e,!0),(null==i?void 0:i.opener)?i.opener(this._link.href):n.open(this._link.href,{allowCommands:!0}))}))),this.enabled=!0}get enabled(){return this._enabled}set enabled(e){e?(this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1):(this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0),this._enabled=e}};M=I([T(3,D.v4)],M),(0,E.Ic)(((e,t)=>{const i=e.getColor(N.url);i&&t.addRule(`.monaco-link { color: ${i}; }`);const n=e.getColor(N.sgC);n&&t.addRule(`.monaco-link:hover { color: ${n}; }`)}));var A=i(59554),R=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},O=function(e,t){return function(i,n){t(i,n,e)}};let P=class extends r.JT{constructor(e,t){super(),this._editor=e,this.instantiationService=t,this.banner=this._register(this.instantiationService.createInstance(F))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(e){this.banner.show(Object.assign(Object.assign({},e),{onClose:()=>{var t;this.hide(),null===(t=e.onClose)||void 0===t||t.call(e)}})),this._editor.setBanner(this.banner.element,26)}};P=R([O(1,y.TG)],P);let F=class extends r.JT{constructor(e){super(),this.instantiationService=e,this.markdownRenderer=this.instantiationService.createInstance(w.$,{}),this.element=(0,v.$)("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(e){return e.ariaLabel?e.ariaLabel:"string"==typeof e.message?e.message:void 0}getBannerMessage(e){if("string"==typeof e){const t=(0,v.$)("span");return t.innerText=e,t}return this.markdownRenderer.render(e).element}clear(){(0,v.PO)(this.element)}show(e){(0,v.PO)(this.element);const t=this.getAriaLabel(e);t&&this.element.setAttribute("aria-label",t);const i=(0,v.R3)(this.element,(0,v.$)("div.icon-container"));i.setAttribute("aria-hidden","true"),e.icon&&i.appendChild((0,v.$)(`div${E.kS.asCSSSelector(e.icon)}`));const n=(0,v.R3)(this.element,(0,v.$)("div.message-container"));if(n.setAttribute("aria-hidden","true"),n.appendChild(this.getBannerMessage(e.message)),this.messageActionsContainer=(0,v.R3)(this.element,(0,v.$)("div.message-actions-container")),e.actions)for(const s of e.actions)this._register(this.instantiationService.createInstance(M,this.messageActionsContainer,Object.assign(Object.assign({},s),{tabIndex:-1}),{}));const o=(0,v.R3)(this.element,(0,v.$)("div.action-container"));this.actionBar=this._register(new b.o(o)),this.actionBar.push(this._register(new C.aU("banner.close","Close Banner",E.kS.asClassName(A.s_),!0,(()=>{"function"==typeof e.onClose&&e.onClose()}))),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};F=R([O(0,y.TG)],F);var B=i(63580),V=i(33108),W=i(41157),H=i(33425),z=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},j=function(e,t){return function(i,n){t(i,n,e)}},U=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const K=(0,A.q5)("extensions-warning-message",o.lA.warning,B.NC("warningIcon","Icon shown with a warning message in the extensions editor."));let $=class extends r.JT{constructor(e,t,i,n){super(),this._editor=e,this._editorWorkerService=t,this._workspaceTrustService=i,this._highlighter=null,this._bannerClosed=!1,this._updateState=e=>{if(e&&e.hasMore){if(this._bannerClosed)return;const t=Math.max(e.ambiguousCharacterCount,e.nonBasicAsciiCharacterCount,e.invisibleCharacterCount);let i;if(e.nonBasicAsciiCharacterCount>=t)i={message:B.NC("unicodeHighlighting.thisDocumentHasManyNonBasicAsciiUnicodeCharacters","This document contains many non-basic ASCII unicode characters"),command:new oe};else if(e.ambiguousCharacterCount>=t)i={message:B.NC("unicodeHighlighting.thisDocumentHasManyAmbiguousUnicodeCharacters","This document contains many ambiguous unicode characters"),command:new ie};else{if(!(e.invisibleCharacterCount>=t))throw new Error("Unreachable");i={message:B.NC("unicodeHighlighting.thisDocumentHasManyInvisibleUnicodeCharacters","This document contains many invisible unicode characters"),command:new ne}}this._bannerController.show({id:"unicodeHighlightBanner",message:i.message,icon:K,actions:[{label:i.command.shortLabel,href:`command:${i.command.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(n.createInstance(P,e)),this._register(this._editor.onDidChangeModel((()=>{this._bannerClosed=!1,this._updateHighlighter()}))),this._options=e.getOption(115),this._register(i.onDidChangeTrust((e=>{this._updateHighlighter()}))),this._register(e.onDidChangeConfiguration((t=>{t.hasChanged(115)&&(this._options=e.getOption(115),this._updateHighlighter())}))),this._updateHighlighter()}dispose(){this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),!this._editor.hasModel())return;const e=function(e,t){return{nonBasicASCII:t.nonBasicASCII===d.Av?!e:t.nonBasicASCII,ambiguousCharacters:t.ambiguousCharacters,invisibleCharacters:t.invisibleCharacters,includeComments:t.includeComments===d.Av?!e:t.includeComments,includeStrings:t.includeStrings===d.Av?!e:t.includeStrings,allowedCharacters:t.allowedCharacters,allowedLocales:t.allowedLocales}}(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([e.nonBasicASCII,e.ambiguousCharacters,e.invisibleCharacters].every((e=>!1===e)))return;const t={nonBasicASCII:e.nonBasicASCII,ambiguousCharacters:e.ambiguousCharacters,invisibleCharacters:e.invisibleCharacters,includeComments:e.includeComments,includeStrings:e.includeStrings,allowedCodePoints:Object.keys(e.allowedCharacters).map((e=>e.codePointAt(0))),allowedLocales:Object.keys(e.allowedLocales).map((e=>{if("_os"===e){return(new Intl.NumberFormat).resolvedOptions().locale}return"_vscode"===e?a.dK:e}))};this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?this._highlighter=new q(this._editor,t,this._updateState,this._editorWorkerService):this._highlighter=new G(this._editor,t,this._updateState)}getDecorationInfo(e){return this._highlighter?this._highlighter.getDecorationInfo(e):null}};$.ID="editor.contrib.unicodeHighlighter",$=z([j(1,g.p),j(2,H.Y),j(3,y.TG)],$);let q=class extends r.JT{constructor(e,t,i,o){super(),this._editor=e,this._options=t,this._updateState=i,this._editorWorkerService=o,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new n.pY((()=>this._update()),250)),this._register(this._editor.onDidChangeModelContent((()=>{this._updateSoon.schedule()}))),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII())return void this._decorations.clear();const e=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then((t=>{if(this._model.isDisposed())return;if(this._model.getVersionId()!==e)return;this._updateState(t);const i=[];if(!t.hasMore)for(const e of t.ranges)i.push({range:e,options:X.instance.getDecorationFromOptions(this._options)});this._decorations.set(i)}))}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel();if(!(0,m.Fd)(t,e))return null;return{reason:J(t.getValueInRange(e.range),this._options),inComment:(0,m.$t)(t,e),inString:(0,m.zg)(t,e)}}};q=z([j(3,g.p)],q);class G extends r.JT{constructor(e,t,i){super(),this._editor=e,this._options=t,this._updateState=i,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new n.pY((()=>this._update()),250)),this._register(this._editor.onDidLayoutChange((()=>{this._updateSoon.schedule()}))),this._register(this._editor.onDidScrollChange((()=>{this._updateSoon.schedule()}))),this._register(this._editor.onDidChangeHiddenAreas((()=>{this._updateSoon.schedule()}))),this._register(this._editor.onDidChangeModelContent((()=>{this._updateSoon.schedule()}))),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII())return void this._decorations.clear();const e=this._editor.getVisibleRanges(),t=[],i={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const n of e){const e=u.a.computeUnicodeHighlights(this._model,this._options,n);for(const t of e.ranges)i.ranges.push(t);i.ambiguousCharacterCount+=i.ambiguousCharacterCount,i.invisibleCharacterCount+=i.invisibleCharacterCount,i.nonBasicAsciiCharacterCount+=i.nonBasicAsciiCharacterCount,i.hasMore=i.hasMore||e.hasMore}if(!i.hasMore)for(const n of i.ranges)t.push({range:n,options:X.instance.getDecorationFromOptions(this._options)});this._updateState(i),this._decorations.set(t)}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel(),i=t.getValueInRange(e.range);return(0,m.Fd)(t,e)?{reason:J(i,this._options),inComment:(0,m.$t)(t,e),inString:(0,m.zg)(t,e)}:null}}let Q=class{constructor(e,t,i){this._editor=e,this._languageService=t,this._openerService=i,this.hoverOrdinal=4}computeSync(e,t){if(!this._editor.hasModel()||1!==e.type)return[];const i=this._editor.getModel(),n=this._editor.getContribution($.ID);if(!n)return[];const o=[];let r=300;for(const a of t){const e=n.getDecorationInfo(a);if(!e)continue;const t=i.getValueInRange(a.range).codePointAt(0),l=Y(t);let c;switch(e.reason.kind){case 0:c=B.NC("unicodeHighlight.characterIsAmbiguous","The character {0} could be confused with the character {1}, which is more common in source code.",l,Y(e.reason.confusableWith.codePointAt(0)));break;case 1:c=B.NC("unicodeHighlight.characterIsInvisible","The character {0} is invisible.",l);break;case 2:c=B.NC("unicodeHighlight.characterIsNonBasicAscii","The character {0} is not a basic ASCII character.",l)}const d={codePoint:t,reason:e.reason,inComment:e.inComment,inString:e.inString},h=B.NC("unicodeHighlight.adjustSettings","Adjust settings"),u=`command:${se.ID}?${encodeURIComponent(JSON.stringify(d))}`,g=new s.W5("",!0).appendMarkdown(c).appendText(" ").appendLink(u,h);o.push(new _.hU(this,a.range,[g],r++))}return o}renderHoverParts(e,t){return(0,_.c)(e,t,this._editor,this._languageService,this._openerService)}};function Z(e){return`U+${e.toString(16).padStart(4,"0")}`}function Y(e){let t=`\`${Z(e)}\``;return l.vU.isInvisibleCharacter(e)||(t+=` "${function(e){if(96===e)return"`` ` ``";return"`"+String.fromCodePoint(e)+"`"}(e)}"`),t}function J(e,t){return u.a.computeUnicodeHighlightReason(e,t)}Q=z([j(1,p.O),j(2,D.v4)],Q);class X{constructor(){this.map=new Map}getDecorationFromOptions(e){return this.getDecoration(!e.includeComments,!e.includeStrings)}getDecoration(e,t){const i=`${e}${t}`;let n=this.map.get(i);return n||(n=h.qx.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:e,hideInStringTokens:t}),this.map.set(i,n)),n}}X.instance=new X;class ee extends c.R6{constructor(){super({id:ie.ID,label:B.NC("action.unicodeHighlight.disableHighlightingInComments","Disable highlighting of characters in comments"),alias:"Disable highlighting of characters in comments",precondition:void 0}),this.shortLabel=B.NC("unicodeHighlight.disableHighlightingInComments.shortLabel","Disable Highlight In Comments")}run(e,t,i){return U(this,void 0,void 0,(function*(){const t=null==e?void 0:e.get(V.Ui);t&&this.runAction(t)}))}runAction(e){return U(this,void 0,void 0,(function*(){yield e.updateValue(d.qt.includeComments,!1,2)}))}}class te extends c.R6{constructor(){super({id:ie.ID,label:B.NC("action.unicodeHighlight.disableHighlightingInStrings","Disable highlighting of characters in strings"),alias:"Disable highlighting of characters in strings",precondition:void 0}),this.shortLabel=B.NC("unicodeHighlight.disableHighlightingInStrings.shortLabel","Disable Highlight In Strings")}run(e,t,i){return U(this,void 0,void 0,(function*(){const t=null==e?void 0:e.get(V.Ui);t&&this.runAction(t)}))}runAction(e){return U(this,void 0,void 0,(function*(){yield e.updateValue(d.qt.includeStrings,!1,2)}))}}class ie extends c.R6{constructor(){super({id:ie.ID,label:B.NC("action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters","Disable highlighting of ambiguous characters"),alias:"Disable highlighting of ambiguous characters",precondition:void 0}),this.shortLabel=B.NC("unicodeHighlight.disableHighlightingOfAmbiguousCharacters.shortLabel","Disable Ambiguous Highlight")}run(e,t,i){return U(this,void 0,void 0,(function*(){const t=null==e?void 0:e.get(V.Ui);t&&this.runAction(t)}))}runAction(e){return U(this,void 0,void 0,(function*(){yield e.updateValue(d.qt.ambiguousCharacters,!1,2)}))}}ie.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters";class ne extends c.R6{constructor(){super({id:ne.ID,label:B.NC("action.unicodeHighlight.disableHighlightingOfInvisibleCharacters","Disable highlighting of invisible characters"),alias:"Disable highlighting of invisible characters",precondition:void 0}),this.shortLabel=B.NC("unicodeHighlight.disableHighlightingOfInvisibleCharacters.shortLabel","Disable Invisible Highlight")}run(e,t,i){return U(this,void 0,void 0,(function*(){const t=null==e?void 0:e.get(V.Ui);t&&this.runAction(t)}))}runAction(e){return U(this,void 0,void 0,(function*(){yield e.updateValue(d.qt.invisibleCharacters,!1,2)}))}}ne.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters";class oe extends c.R6{constructor(){super({id:oe.ID,label:B.NC("action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters","Disable highlighting of non basic ASCII characters"),alias:"Disable highlighting of non basic ASCII characters",precondition:void 0}),this.shortLabel=B.NC("unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters.shortLabel","Disable Non ASCII Highlight")}run(e,t,i){return U(this,void 0,void 0,(function*(){const t=null==e?void 0:e.get(V.Ui);t&&this.runAction(t)}))}runAction(e){return U(this,void 0,void 0,(function*(){yield e.updateValue(d.qt.nonBasicASCII,!1,2)}))}}oe.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters";class se extends c.R6{constructor(){super({id:se.ID,label:B.NC("action.unicodeHighlight.showExcludeOptions","Show Exclude Options"),alias:"Show Exclude Options",precondition:void 0})}run(e,t,i){return U(this,void 0,void 0,(function*(){const{codePoint:t,reason:n,inString:o,inComment:s}=i,r=String.fromCodePoint(t),a=e.get(W.eJ),c=e.get(V.Ui);const h=[];if(0===n.kind)for(const e of n.notAmbiguousInLocales)h.push({label:B.NC("unicodeHighlight.allowCommonCharactersInLanguage",'Allow unicode characters that are more common in the language "{0}".',e),run:()=>U(this,void 0,void 0,(function*(){re(c,[e])}))});if(h.push({label:function(e){return l.vU.isInvisibleCharacter(e)?B.NC("unicodeHighlight.excludeInvisibleCharFromBeingHighlighted","Exclude {0} (invisible character) from being highlighted",Z(e)):B.NC("unicodeHighlight.excludeCharFromBeingHighlighted","Exclude {0} from being highlighted",`${Z(e)} "${r}"`)}(t),run:()=>function(e,t){return U(this,void 0,void 0,(function*(){const i=e.getValue(d.qt.allowedCharacters);let n;n="object"==typeof i&&i?i:{};for(const e of t)n[String.fromCodePoint(e)]=!0;yield e.updateValue(d.qt.allowedCharacters,n,2)}))}(c,[t])}),s){const e=new ee;h.push({label:e.label,run:()=>U(this,void 0,void 0,(function*(){return e.runAction(c)}))})}else if(o){const e=new te;h.push({label:e.label,run:()=>U(this,void 0,void 0,(function*(){return e.runAction(c)}))})}if(0===n.kind){const e=new ie;h.push({label:e.label,run:()=>U(this,void 0,void 0,(function*(){return e.runAction(c)}))})}else if(1===n.kind){const e=new ne;h.push({label:e.label,run:()=>U(this,void 0,void 0,(function*(){return e.runAction(c)}))})}else if(2===n.kind){const e=new oe;h.push({label:e.label,run:()=>U(this,void 0,void 0,(function*(){return e.runAction(c)}))})}else!function(e){throw new Error(`Unexpected value: ${e}`)}(n);const u=yield a.pick(h,{title:B.NC("unicodeHighlight.configureUnicodeHighlightOptions","Configure Unicode Highlight Options")});u&&(yield u.run())}))}}function re(e,t){var i;return U(this,void 0,void 0,(function*(){const n=null===(i=e.inspect(d.qt.allowedLocales).user)||void 0===i?void 0:i.value;let o;o="object"==typeof n&&n?Object.assign({},n):{};for(const e of t)o[e]=!0;yield e.updateValue(d.qt.allowedLocales,o,2)}))}se.ID="editor.action.unicodeHighlight.showExcludeOptions",(0,c.Qr)(ie),(0,c.Qr)(ne),(0,c.Qr)(oe),(0,c.Qr)(se),(0,c._K)($.ID,$),f.Ae.register(Q)},79607:(e,t,i)=>{"use strict";var n=i(5976),o=i(95935),s=i(16830),r=i(11640),a=i(63580),l=i(28820),c=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},d=function(e,t){return function(i,n){t(i,n,e)}},h=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const u="ignoreUnusualLineTerminators";let g=class extends n.JT{constructor(e,t,i){super(),this._editor=e,this._dialogService=t,this._codeEditorService=i,this._config=this._editor.getOption(116),this._register(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(116)&&(this._config=this._editor.getOption(116),this._checkForUnusualLineTerminators())}))),this._register(this._editor.onDidChangeModel((()=>{this._checkForUnusualLineTerminators()}))),this._register(this._editor.onDidChangeModelContent((e=>{e.isUndoing||this._checkForUnusualLineTerminators()})))}_checkForUnusualLineTerminators(){return h(this,void 0,void 0,(function*(){if("off"===this._config)return;if(!this._editor.hasModel())return;const e=this._editor.getModel();if(!e.mightContainUnusualLineTerminators())return;const t=function(e,t){return e.getModelProperty(t.uri,u)}(this._codeEditorService,e);if(!0===t)return;if(this._editor.getOption(83))return;if("auto"===this._config)return void e.removeUnusualLineTerminators(this._editor.getSelections());(yield this._dialogService.confirm({title:a.NC("unusualLineTerminators.title","Unusual Line Terminators"),message:a.NC("unusualLineTerminators.message","Detected unusual line terminators"),detail:a.NC("unusualLineTerminators.detail","The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.",(0,o.EZ)(e.uri)),primaryButton:a.NC("unusualLineTerminators.fix","Remove Unusual Line Terminators"),secondaryButton:a.NC("unusualLineTerminators.ignore","Ignore")})).confirmed?e.removeUnusualLineTerminators(this._editor.getSelections()):function(e,t,i){e.setModelProperty(t.uri,u,i)}(this._codeEditorService,e,!0)}))}};g.ID="editor.contrib.unusualLineTerminatorsDetector",g=c([d(1,l.S),d(2,r.$)],g),(0,s._K)(g.ID,g)},61271:(e,t,i)=>{"use strict";var n=i(15393),o=i(5976),s=i(16830),r=i(32670),a=i(73733),l=i(51200),c=i(68997),d=i(33108),h=i(97781),u=i(88191),g=i(84013),p=i(71922),m=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},f=function(e,t){return function(i,n){t(i,n,e)}};let _=class extends o.JT{constructor(e,t,i,o,s,r){super(),this._modelService=t,this._themeService=i,this._configurationService=o,this._editor=e,this._provider=r.documentRangeSemanticTokensProvider,this._debounceInformation=s.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new n.pY((()=>this._tokenizeViewportNow()),100)),this._outstandingRequests=[];const a=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))};this._register(this._editor.onDidScrollChange((()=>{a()}))),this._register(this._editor.onDidChangeModel((()=>{this._cancelAll(),a()}))),this._register(this._editor.onDidChangeModelContent((e=>{this._cancelAll(),a()}))),this._register(this._provider.onDidChange((()=>{this._cancelAll(),a()}))),this._register(this._configurationService.onDidChangeConfiguration((e=>{e.affectsConfiguration(l.e3)&&(this._cancelAll(),a())}))),this._register(this._themeService.onDidColorThemeChange((()=>{this._cancelAll(),a()})))}_cancelAll(){for(const e of this._outstandingRequests)e.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(e){for(let t=0,i=this._outstandingRequests.length;t<i;t++)if(this._outstandingRequests[t]===e)return void this._outstandingRequests.splice(t,1)}_tokenizeViewportNow(){if(!this._editor.hasModel())return;const e=this._editor.getModel();if(e.tokenization.hasCompleteSemanticTokens())return;if(!(0,l.tw)(e,this._themeService,this._configurationService))return void(e.tokenization.hasSomeSemanticTokens()&&e.tokenization.setSemanticTokens(null,!1));if(!(0,r.KO)(this._provider,e))return void(e.tokenization.hasSomeSemanticTokens()&&e.tokenization.setSemanticTokens(null,!1));const t=this._editor.getVisibleRangesPlusViewportAboveBelow();this._outstandingRequests=this._outstandingRequests.concat(t.map((t=>this._requestRange(e,t))))}_requestRange(e,t){const i=e.getVersionId(),o=(0,n.PG)((i=>Promise.resolve((0,r.OG)(this._provider,e,t,i)))),s=new g.G(!1);return o.then((n=>{if(this._debounceInformation.update(e,s.elapsed()),!n||!n.tokens||e.isDisposed()||e.getVersionId()!==i)return;const{provider:o,tokens:r}=n,a=this._modelService.getSemanticTokensProviderStyling(o);e.tokenization.setPartialSemanticTokens(t,(0,c.h)(r,a,e.getLanguageId()))})).then((()=>this._removeOutstandingRequest(o)),(()=>this._removeOutstandingRequest(o))),o}};_.ID="editor.contrib.viewportSemanticTokens",_=m([f(1,a.q),f(2,h.XE),f(3,d.Ui),f(4,u.A),f(5,p.p)],_),(0,s._K)(_.ID,_)},70943:(e,t,i)=>{"use strict";var n=i(85152),o=i(9488),s=i(15393),r=i(71050),a=i(17301),l=i(5976),c=i(16830),d=i(24314),h=i(29102),u=i(84973),g=i(22529),p=i(43155),m=i(63580),f=i(38819),_=i(73910),v=i(97781),b=i(71922),C=i(92321),w=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},y=function(e,t){return function(i,n){t(i,n,e)}};const S=(0,_.P6G)("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},m.NC("wordHighlight","Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations."),!0),L=(0,_.P6G)("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},m.NC("wordHighlightStrong","Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations."),!0),k=(0,_.P6G)("editor.wordHighlightBorder",{light:null,dark:null,hcDark:_.xL1,hcLight:_.xL1},m.NC("wordHighlightBorder","Border color of a symbol during read-access, like reading a variable.")),x=(0,_.P6G)("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:_.xL1,hcLight:_.xL1},m.NC("wordHighlightStrongBorder","Border color of a symbol during write-access, like writing to a variable.")),D=(0,_.P6G)("editorOverviewRuler.wordHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},m.NC("overviewRulerWordHighlightForeground","Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),N=(0,_.P6G)("editorOverviewRuler.wordHighlightStrongForeground",{dark:"#C0A0C0CC",light:"#C0A0C0CC",hcDark:"#C0A0C0CC",hcLight:"#C0A0C0CC"},m.NC("overviewRulerWordHighlightStrongForeground","Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),E=new f.uy("hasWordHighlights",!1);function I(e,t,i,n){const r=e.ordered(t);return(0,s.Ps)(r.map((e=>()=>Promise.resolve(e.provideDocumentHighlights(t,i,n)).then(void 0,a.Cp))),o.Of)}class T{constructor(e,t,i){this._model=e,this._selection=t,this._wordSeparators=i,this._wordRange=this._getCurrentWordRange(e,t),this._result=null}get result(){return this._result||(this._result=(0,s.PG)((e=>this._compute(this._model,this._selection,this._wordSeparators,e)))),this._result}_getCurrentWordRange(e,t){const i=e.getWordAtPosition(t.getPosition());return i?new d.e(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):null}isValid(e,t,i){const n=t.startLineNumber,o=t.startColumn,s=t.endColumn,r=this._getCurrentWordRange(e,t);let a=Boolean(this._wordRange&&this._wordRange.equalsRange(r));for(let l=0,c=i.length;!a&&l<c;l++){const e=i.getRange(l);e&&e.startLineNumber===n&&e.startColumn<=o&&e.endColumn>=s&&(a=!0)}return a}cancel(){this.result.cancel()}}class M extends T{constructor(e,t,i,n){super(e,t,i),this._providers=n}_compute(e,t,i,n){return I(this._providers,e,t.getPosition(),n).then((e=>e||[]))}}class A extends T{constructor(e,t,i){super(e,t,i),this._selectionIsEmpty=t.isEmpty()}_compute(e,t,i,n){return(0,s.Vs)(250,n).then((()=>{if(!t.isEmpty())return[];const n=e.getWordAtPosition(t.getPosition());if(!n||n.word.length>1e3)return[];return e.findMatches(n.word,!0,!1,!0,i,!1).map((e=>({range:e.range,kind:p.MY.Text})))}))}isValid(e,t,i){const n=t.isEmpty();return this._selectionIsEmpty===n&&super.isValid(e,t,i)}}(0,c.sb)("_executeDocumentHighlights",((e,t,i)=>I(e.get(b.p).documentHighlightProvider,t,i,r.T.None)));class R{constructor(e,t,i){this.toUnhook=new l.SL,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=[],this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=e,this.providers=t,this._hasWordHighlights=E.bindTo(i),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(74),this.model=this.editor.getModel(),this.toUnhook.add(e.onDidChangeCursorPosition((e=>{this._ignorePositionChangeEvent||this.occurrencesHighlight&&this._onPositionChanged(e)}))),this.toUnhook.add(e.onDidChangeModelContent((e=>{this._stopAll()}))),this.toUnhook.add(e.onDidChangeConfiguration((e=>{const t=this.editor.getOption(74);this.occurrencesHighlight!==t&&(this.occurrencesHighlight=t,this._stopAll())}))),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1}hasDecorations(){return this.decorations.length>0}restore(){this.occurrencesHighlight&&this._run()}_getSortedHighlights(){return this.decorations.getRanges().sort(d.e.compareRangesUsingStarts)}moveNext(){const e=this._getSortedHighlights(),t=(e.findIndex((e=>e.containsPosition(this.editor.getPosition())))+1)%e.length,i=e[t];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(i.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(i);const o=this._getWord();if(o){const s=this.editor.getModel().getLineContent(i.startLineNumber);(0,n.Z9)(`${s}, ${t+1} of ${e.length} for '${o.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const e=this._getSortedHighlights(),t=(e.findIndex((e=>e.containsPosition(this.editor.getPosition())))-1+e.length)%e.length,i=e[t];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(i.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(i);const o=this._getWord();if(o){const s=this.editor.getModel().getLineContent(i.startLineNumber);(0,n.Z9)(`${s}, ${t+1} of ${e.length} for '${o.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeDecorations(){this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1))}_stopAll(){this._removeDecorations(),-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),null!==this.workerRequest&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(e){this.occurrencesHighlight&&3===e.reason?this._run():this._stopAll()}_getWord(){const e=this.editor.getSelection(),t=e.startLineNumber,i=e.startColumn;return this.model.getWordAtPosition({lineNumber:t,column:i})}_run(){const e=this.editor.getSelection();if(e.startLineNumber!==e.endLineNumber)return void this._stopAll();const t=e.startColumn,i=e.endColumn,n=this._getWord();if(!n||n.startColumn>t||n.endColumn<i)return void this._stopAll();const o=this.workerRequest&&this.workerRequest.isValid(this.model,e,this.decorations);if(this.lastCursorPositionChangeTime=(new Date).getTime(),o)this.workerRequestCompleted&&-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1,this._beginRenderDecorations());else{this._stopAll();const e=++this.workerRequestTokenId;this.workerRequestCompleted=!1,this.workerRequest=(s=this.providers,r=this.model,l=this.editor.getSelection(),c=this.editor.getOption(119),s.has(r)?new M(r,l,c,s):new A(r,l,c)),this.workerRequest.result.then((t=>{e===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=t||[],this._beginRenderDecorations())}),a.dL)}var s,r,l,c}_beginRenderDecorations(){const e=(new Date).getTime(),t=this.lastCursorPositionChangeTime+250;e>=t?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout((()=>{this.renderDecorations()}),t-e)}renderDecorations(){this.renderDecorationsTimer=-1;const e=[];for(const t of this.workerRequestValue)t.range&&e.push({range:t.range,options:R._getDecorationOptions(t.kind)});this.decorations.set(e),this._hasWordHighlights.set(this.hasDecorations())}static _getDecorationOptions(e){return e===p.MY.Write?this._WRITE_OPTIONS:e===p.MY.Text?this._TEXT_OPTIONS:this._REGULAR_OPTIONS}dispose(){this._stopAll(),this.toUnhook.dispose()}}R._WRITE_OPTIONS=g.qx.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:(0,v.EN)(N),position:u.sh.Center},minimap:{color:(0,v.EN)(_.IYc),position:u.F5.Inline}}),R._TEXT_OPTIONS=g.qx.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight",overviewRuler:{color:(0,v.EN)(_.SPM),position:u.sh.Center},minimap:{color:(0,v.EN)(_.IYc),position:u.F5.Inline}}),R._REGULAR_OPTIONS=g.qx.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:(0,v.EN)(D),position:u.sh.Center},minimap:{color:(0,v.EN)(_.IYc),position:u.F5.Inline}});let O=class e extends l.JT{constructor(e,t,i){super(),this.wordHighlighter=null;const n=()=>{e.hasModel()&&(this.wordHighlighter=new R(e,i.documentHighlightProvider,t))};this._register(e.onDidChangeModel((e=>{this.wordHighlighter&&(this.wordHighlighter.dispose(),this.wordHighlighter=null),n()}))),n()}static get(t){return t.getContribution(e.ID)}saveViewState(){return!(!this.wordHighlighter||!this.wordHighlighter.hasDecorations())}moveNext(){this.wordHighlighter&&this.wordHighlighter.moveNext()}moveBack(){this.wordHighlighter&&this.wordHighlighter.moveBack()}restoreViewState(e){this.wordHighlighter&&e&&this.wordHighlighter.restore()}dispose(){this.wordHighlighter&&(this.wordHighlighter.dispose(),this.wordHighlighter=null),super.dispose()}};O.ID="editor.contrib.wordHighlighter",O=w([y(1,f.i6),y(2,b.p)],O);class P extends c.R6{constructor(e,t){super(t),this._isNext=e}run(e,t){const i=O.get(t);i&&(this._isNext?i.moveNext():i.moveBack())}}class F extends c.R6{constructor(){super({id:"editor.action.wordHighlight.trigger",label:m.NC("wordHighlight.trigger.label","Trigger Symbol Highlight"),alias:"Trigger Symbol Highlight",precondition:E.toNegated(),kbOpts:{kbExpr:h.u.editorTextFocus,primary:0,weight:100}})}run(e,t,i){const n=O.get(t);n&&n.restoreViewState(!0)}}(0,c._K)(O.ID,O),(0,c.Qr)(class extends P{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:m.NC("wordHighlight.next.label","Go to Next Symbol Highlight"),alias:"Go to Next Symbol Highlight",precondition:E,kbOpts:{kbExpr:h.u.editorTextFocus,primary:65,weight:100}})}}),(0,c.Qr)(class extends P{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:m.NC("wordHighlight.previous.label","Go to Previous Symbol Highlight"),alias:"Go to Previous Symbol Highlight",precondition:E,kbOpts:{kbExpr:h.u.editorTextFocus,primary:1089,weight:100}})}}),(0,c.Qr)(F),(0,v.Ic)(((e,t)=>{const i=e.getColor(_.Rzx);i&&(t.addRule(`.monaco-editor .focused .selectionHighlight { background-color: ${i}; }`),t.addRule(`.monaco-editor .selectionHighlight { background-color: ${i.transparent(.5)}; }`));const n=e.getColor(S);n&&t.addRule(`.monaco-editor .wordHighlight { background-color: ${n}; }`);const o=e.getColor(L);o&&t.addRule(`.monaco-editor .wordHighlightStrong { background-color: ${o}; }`);const s=e.getColor(_.g_n);s&&t.addRule(`.monaco-editor .selectionHighlight { border: 1px ${(0,C.c3)(e.type)?"dotted":"solid"} ${s}; box-sizing: border-box; }`);const r=e.getColor(k);r&&t.addRule(`.monaco-editor .wordHighlight { border: 1px ${(0,C.c3)(e.type)?"dashed":"solid"} ${r}; box-sizing: border-box; }`);const a=e.getColor(x);a&&t.addRule(`.monaco-editor .wordHighlightStrong { border: 1px ${(0,C.c3)(e.type)?"dashed":"solid"} ${a}; box-sizing: border-box; }`)}))},37181:(e,t,i)=>{"use strict";i.d(t,{IA:()=>v,t8:()=>w});var n=i(16830),o=i(61329),s=i(64141),r=i(55343),a=i(92896),l=i(24929),c=i(50187),d=i(24314),h=i(3860),u=i(29102),g=i(4256),p=i(63580),m=i(31106),f=i(38819),_=i(39282);class v extends n._l{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){if(!t.hasModel())return;const n=(0,l.u)(t.getOption(119)),o=t.getModel(),s=t.getSelections().map((e=>{const t=new c.L(e.positionLineNumber,e.positionColumn),i=this._move(n,o,t,this._wordNavigationType);return this._moveTo(e,i,this._inSelectionMode)}));if(o.pushStackElement(),t._getViewModel().setCursorStates("moveWordCommand",3,s.map((e=>r.Vi.fromModelSelection(e)))),1===s.length){const e=new c.L(s[0].positionLineNumber,s[0].positionColumn);t.revealPosition(e,0)}}_moveTo(e,t,i){return i?new h.Y(e.selectionStartLineNumber,e.selectionStartColumn,t.lineNumber,t.column):new h.Y(t.lineNumber,t.column,t.lineNumber,t.column)}}class b extends v{_move(e,t,i,n){return a.w.moveWordLeft(e,t,i,n)}}class C extends v{_move(e,t,i,n){return a.w.moveWordRight(e,t,i,n)}}class w extends n._l{constructor(e){super(e),this._whitespaceHeuristics=e.whitespaceHeuristics,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){const n=e.get(g.c_);if(!t.hasModel())return;const s=(0,l.u)(t.getOption(119)),r=t.getModel(),a=t.getSelections(),c=t.getOption(5),d=t.getOption(8),h=n.getLanguageConfiguration(r.getLanguageId()).getAutoClosingPairs(),u=t._getViewModel(),p=a.map((e=>{const i=this._delete({wordSeparators:s,model:r,selection:e,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:t.getOption(6),autoClosingBrackets:c,autoClosingQuotes:d,autoClosingPairs:h,autoClosedCharacters:u.getCursorAutoClosedCharacters()},this._wordNavigationType);return new o.T4(i,"")}));t.pushUndoStop(),t.executeCommands(this.id,p),t.pushUndoStop()}}class y extends w{_delete(e,t){const i=a.w.deleteWordLeft(e,t);return i||new d.e(1,1,1,1)}}class S extends w{_delete(e,t){const i=a.w.deleteWordRight(e,t);if(i)return i;const n=e.model.getLineCount(),o=e.model.getLineMaxColumn(n);return new d.e(n,o,n,o)}}class L extends n.R6{constructor(){super({id:"deleteInsideWord",precondition:u.u.writable,label:p.NC("deleteInsideWord","Delete Word"),alias:"Delete Word"})}run(e,t,i){if(!t.hasModel())return;const n=(0,l.u)(t.getOption(119)),s=t.getModel(),r=t.getSelections().map((e=>{const t=a.w.deleteInsideWord(n,s,e);return new o.T4(t,"")}));t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}(0,n.fK)(new class extends b{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}),(0,n.fK)(new class extends b{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}),(0,n.fK)(new class extends b{constructor(){var e;super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:f.Ao.and(u.u.textInputFocus,null===(e=f.Ao.and(m.U,_.cv))||void 0===e?void 0:e.negate()),primary:2063,mac:{primary:527},weight:100}})}}),(0,n.fK)(new class extends b{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}),(0,n.fK)(new class extends b{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}),(0,n.fK)(new class extends b{constructor(){var e;super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:f.Ao.and(u.u.textInputFocus,null===(e=f.Ao.and(m.U,_.cv))||void 0===e?void 0:e.negate()),primary:3087,mac:{primary:1551},weight:100}})}}),(0,n.fK)(new class extends C{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}),(0,n.fK)(new class extends C{constructor(){var e;super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:f.Ao.and(u.u.textInputFocus,null===(e=f.Ao.and(m.U,_.cv))||void 0===e?void 0:e.negate()),primary:2065,mac:{primary:529},weight:100}})}}),(0,n.fK)(new class extends C{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}),(0,n.fK)(new class extends C{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}),(0,n.fK)(new class extends C{constructor(){var e;super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:f.Ao.and(u.u.textInputFocus,null===(e=f.Ao.and(m.U,_.cv))||void 0===e?void 0:e.negate()),primary:3089,mac:{primary:1553},weight:100}})}}),(0,n.fK)(new class extends C{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}),(0,n.fK)(new class extends b{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(e,t,i,n){return super._move((0,l.u)(s.BH.wordSeparators.defaultValue),t,i,n)}}),(0,n.fK)(new class extends b{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(e,t,i,n){return super._move((0,l.u)(s.BH.wordSeparators.defaultValue),t,i,n)}}),(0,n.fK)(new class extends C{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(e,t,i,n){return super._move((0,l.u)(s.BH.wordSeparators.defaultValue),t,i,n)}}),(0,n.fK)(new class extends C{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(e,t,i,n){return super._move((0,l.u)(s.BH.wordSeparators.defaultValue),t,i,n)}}),(0,n.fK)(new class extends y{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:u.u.writable})}}),(0,n.fK)(new class extends y{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:u.u.writable})}}),(0,n.fK)(new class extends y{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:u.u.writable,kbOpts:{kbExpr:u.u.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}),(0,n.fK)(new class extends S{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:u.u.writable})}}),(0,n.fK)(new class extends S{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:u.u.writable})}}),(0,n.fK)(new class extends S{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:u.u.writable,kbOpts:{kbExpr:u.u.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}),(0,n.Qr)(L)},86709:(e,t,i)=>{"use strict";var n=i(16830),o=i(92896),s=i(24314),r=i(29102),a=i(37181),l=i(94565);class c extends a.t8{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:r.u.writable,kbOpts:{kbExpr:r.u.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(e,t){const i=o.L.deleteWordPartLeft(e);return i||new s.e(1,1,1,1)}}class d extends a.t8{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:r.u.writable,kbOpts:{kbExpr:r.u.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(e,t){const i=o.L.deleteWordPartRight(e);if(i)return i;const n=e.model.getLineCount(),r=e.model.getLineMaxColumn(n);return new s.e(n,r,n,r)}}class h extends a.IA{_move(e,t,i,n){return o.L.moveWordPartLeft(e,t,i)}}l.P0.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");l.P0.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class u extends a.IA{_move(e,t,i,n){return o.L.moveWordPartRight(e,t,i)}}(0,n.fK)(new c),(0,n.fK)(new d),(0,n.fK)(new class extends h{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:r.u.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}),(0,n.fK)(new class extends h{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:r.u.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}),(0,n.fK)(new class extends u{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:r.u.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}),(0,n.fK)(new class extends u{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:r.u.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}})},29477:(e,t,i)=>{"use strict";var n=i(65321),o=i(38626),s=i(48764),r=i(85152),a=i(93794),l=i(5976),c=i(1432),d=i(97295),h=i(70666),u=i(16830),g=i(29102),p=i(64662),m=i(38819),f=i(72065),_=i(91847),v=i(50988),b=i(73910),C=i(97781),w=i(20913),y=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},S=function(e,t){return function(i,n){t(i,n,e)}};const L=new m.uy("accessibilityHelpWidgetVisible",!1);let k=class e extends l.JT{constructor(e,t){super(),this._editor=e,this._widget=this._register(t.createInstance(x,this._editor))}static get(t){return t.getContribution(e.ID)}show(){this._widget.show()}hide(){this._widget.hide()}};k.ID="editor.contrib.accessibilityHelpController",k=y([S(1,f.TG)],k);let x=class e extends a.${constructor(e,t,i,s){super(),this._contextKeyService=t,this._keybindingService=i,this._openerService=s,this._editor=e,this._isVisibleKey=L.bindTo(this._contextKeyService),this._domNode=(0,o.X)(document.createElement("div")),this._domNode.setClassName("accessibilityHelpWidget"),this._domNode.setDisplay("none"),this._domNode.setAttribute("role","dialog"),this._domNode.setAttribute("aria-hidden","true"),this._contentDomNode=(0,o.X)(document.createElement("div")),this._contentDomNode.setAttribute("role","document"),this._domNode.appendChild(this._contentDomNode),this._isVisible=!1,this._register(this._editor.onDidLayoutChange((()=>{this._isVisible&&this._layout()}))),this._register(n.mu(this._contentDomNode.domNode,"keydown",(e=>{if(this._isVisible&&(e.equals(2083)&&((0,r.Z9)(w.Oe.emergencyConfOn),this._editor.updateOptions({accessibilitySupport:"on"}),n.PO(this._contentDomNode.domNode),this._buildContent(),this._contentDomNode.domNode.focus(),e.preventDefault(),e.stopPropagation()),e.equals(2086))){(0,r.Z9)(w.Oe.openingDocs);let t=this._editor.getRawOptions().accessibilityHelpUrl;void 0===t&&(t="https://go.microsoft.com/fwlink/?linkid=852450"),this._openerService.open(h.o.parse(t)),e.preventDefault(),e.stopPropagation()}}))),this.onblur(this._contentDomNode.domNode,(()=>{this.hide()})),this._editor.addOverlayWidget(this)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return e.ID}getDomNode(){return this._domNode.domNode}getPosition(){return{preference:null}}show(){this._isVisible||(this._isVisible=!0,this._isVisibleKey.set(!0),this._layout(),this._domNode.setDisplay("block"),this._domNode.setAttribute("aria-hidden","false"),this._contentDomNode.domNode.tabIndex=0,this._buildContent(),this._contentDomNode.domNode.focus())}_descriptionForCommand(e,t,i){const n=this._keybindingService.lookupKeybinding(e);return n?d.WU(t,n.getAriaLabel()):d.WU(i,e)}_buildContent(){const e=this._editor.getOptions(),t=this._editor.getSelections();let i=0;if(t){const e=this._editor.getModel();e&&t.forEach((t=>{i+=e.getValueLengthInRange(t)}))}let n=function(e,t){return e&&0!==e.length?1===e.length?t?d.WU(w.Oe.singleSelectionRange,e[0].positionLineNumber,e[0].positionColumn,t):d.WU(w.Oe.singleSelection,e[0].positionLineNumber,e[0].positionColumn):t?d.WU(w.Oe.multiSelectionRange,e.length,t):e.length>0?d.WU(w.Oe.multiSelection,e.length):"":w.Oe.noSelection}(t,i);e.get(56)?e.get(83)?n+=w.Oe.readonlyDiffEditor:n+=w.Oe.editableDiffEditor:e.get(83)?n+=w.Oe.readonlyEditor:n+=w.Oe.editableEditor;const o=c.dz?w.Oe.changeConfigToOnMac:w.Oe.changeConfigToOnWinLinux;switch(e.get(2)){case 0:n+="\n\n - "+o;break;case 2:n+="\n\n - "+w.Oe.auto_on;break;case 1:n+="\n\n - "+w.Oe.auto_off,n+=" "+o}e.get(132)?n+="\n\n - "+this._descriptionForCommand(p.R.ID,w.Oe.tabFocusModeOnMsg,w.Oe.tabFocusModeOnMsgNoKb):n+="\n\n - "+this._descriptionForCommand(p.R.ID,w.Oe.tabFocusModeOffMsg,w.Oe.tabFocusModeOffMsgNoKb);n+="\n\n - "+(c.dz?w.Oe.openDocMac:w.Oe.openDocWinLinux),n+="\n\n"+w.Oe.outroMsg,this._contentDomNode.domNode.appendChild((0,s.BO)(n)),this._contentDomNode.domNode.setAttribute("aria-label",n)}hide(){this._isVisible&&(this._isVisible=!1,this._isVisibleKey.reset(),this._domNode.setDisplay("none"),this._domNode.setAttribute("aria-hidden","true"),this._contentDomNode.domNode.tabIndex=-1,n.PO(this._contentDomNode.domNode),this._editor.focus())}_layout(){const t=this._editor.getLayoutInfo(),i=Math.max(5,Math.min(e.WIDTH,t.width-40)),n=Math.max(5,Math.min(e.HEIGHT,t.height-40));this._domNode.setWidth(i),this._domNode.setHeight(n);const o=Math.round((t.height-n)/2);this._domNode.setTop(o);const s=Math.round((t.width-i)/2);this._domNode.setLeft(s)}};x.ID="editor.contrib.accessibilityHelpWidget",x.WIDTH=500,x.HEIGHT=300,x=y([S(1,m.i6),S(2,_.d),S(3,v.v4)],x);class D extends u.R6{constructor(){super({id:"editor.action.showAccessibilityHelp",label:w.Oe.showAccessibilityHelpAction,alias:"Show Accessibility Help",precondition:void 0,kbOpts:{primary:571,weight:100,linux:{primary:1595,secondary:[571]}}})}run(e,t){const i=k.get(t);i&&i.show()}}(0,u._K)(k.ID,k),(0,u.Qr)(D);const N=u._l.bindToContribution(k.get);(0,u.fK)(new N({id:"closeAccessibilityHelp",precondition:L,handler:e=>e.hide(),kbOpts:{weight:200,kbExpr:g.u.focus,primary:9,secondary:[1033]}})),(0,C.Ic)(((e,t)=>{const i=e.getColor(b.D0T);i&&t.addRule(`.monaco-editor .accessibilityHelpWidget { background-color: ${i}; }`);const n=e.getColor(b.Hfx);n&&t.addRule(`.monaco-editor .accessibilityHelpWidget { color: ${n}; }`);const o=e.getColor(b.rh);o&&t.addRule(`.monaco-editor .accessibilityHelpWidget { box-shadow: 0 2px 8px ${o}; }`);const s=e.getColor(b.lRK);s&&t.addRule(`.monaco-editor .accessibilityHelpWidget { border: 2px solid ${s}; }`)}))},19646:(e,t,i)=>{"use strict";var n=i(65321),o=i(5976),s=i(16830),r=i(1432);class a extends o.JT{constructor(e){super(),this.editor=e,this.widget=null,r.gn&&(this._register(e.onDidChangeConfiguration((()=>this.update()))),this.update())}update(){const e=!this.editor.getOption(83);!this.widget&&e?this.widget=new l(this.editor):this.widget&&!e&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}}a.ID="editor.contrib.iPadShowKeyboard";class l extends o.JT{constructor(e){super(),this.editor=e,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._register(n.nm(this._domNode,"touchstart",(e=>{this.editor.focus()}))),this._register(n.nm(this._domNode,"focus",(e=>{this.editor.focus()}))),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return l.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}}l.ID="editor.contrib.ShowKeyboardWidget",(0,s._K)(a.ID,a)},97830:(e,t,i)=>{"use strict";var n=i(65321),o=i(41264),s=i(5976),r=i(16830),a=i(43155),l=i(45797),c=i(276),d=i(72042),h=i(44156),u=i(73910),g=i(97781),p=i(20913),m=i(92321),f=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},_=function(e,t){return function(i,n){t(i,n,e)}};let v=class e extends s.JT{constructor(e,t,i){super(),this._editor=e,this._languageService=i,this._widget=null,this._register(this._editor.onDidChangeModel((e=>this.stop()))),this._register(this._editor.onDidChangeModelLanguage((e=>this.stop()))),this._register(a.RW.onDidChange((e=>this.stop()))),this._register(this._editor.onKeyUp((e=>9===e.keyCode&&this.stop())))}static get(t){return t.getContribution(e.ID)}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new C(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}};v.ID="editor.contrib.inspectTokens",v=f([_(1,h.Z),_(2,d.O)],v);class b extends r.R6{constructor(){super({id:"editor.action.inspectTokens",label:p.ug.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}run(e,t){const i=v.get(t);i&&i.launch()}}class C extends s.JT{constructor(e,t){super(),this.allowEditorOverflow=!0,this._editor=e,this._languageService=t,this._model=this._editor.getModel(),this._domNode=document.createElement("div"),this._domNode.className="tokens-inspect-widget",this._tokenizationSupport=function(e,t){const i=a.RW.get(t);if(i)return i;const n=e.encodeLanguageId(t);return{getInitialState:()=>c.TJ,tokenize:(e,i,n)=>(0,c.Ri)(t,n),tokenizeEncoded:(e,t,i)=>(0,c.Dy)(n,i)}}(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition((e=>this._compute(this._editor.getPosition())))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return C._ID}_compute(e){const t=this._getTokensAtLine(e.lineNumber);let i=0;for(let n=t.tokens1.length-1;n>=0;n--){const o=t.tokens1[n];if(e.column-1>=o.offset){i=n;break}}let s=0;for(let n=t.tokens2.length>>>1;n>=0;n--)if(e.column-1>=t.tokens2[n<<1]){s=n;break}const r=this._model.getLineContent(e.lineNumber);let a="";if(i<t.tokens1.length){const e=t.tokens1[i].offset,n=i+1<t.tokens1.length?t.tokens1[i+1].offset:r.length;a=r.substring(e,n)}(0,n.mc)(this._domNode,(0,n.$)("h2.tm-token",void 0,function(e){let t="";for(let i=0,n=e.length;i<n;i++){const n=e.charCodeAt(i);switch(n){case 9:t+="\u2192";break;case 32:t+="\xb7";break;default:t+=String.fromCharCode(n)}}return t}(a),(0,n.$)("span.tm-token-length",void 0,`${a.length} ${1===a.length?"char":"chars"}`))),(0,n.R3)(this._domNode,(0,n.$)("hr.tokens-inspect-separator",{style:"clear:both"}));const l=1+(s<<1)<t.tokens2.length?this._decodeMetadata(t.tokens2[1+(s<<1)]):null;(0,n.R3)(this._domNode,(0,n.$)("table.tm-metadata-table",void 0,(0,n.$)("tbody",void 0,(0,n.$)("tr",void 0,(0,n.$)("td.tm-metadata-key",void 0,"language"),(0,n.$)("td.tm-metadata-value",void 0,`${l?l.languageId:"-?-"}`)),(0,n.$)("tr",void 0,(0,n.$)("td.tm-metadata-key",void 0,"token type"),(0,n.$)("td.tm-metadata-value",void 0,`${l?this._tokenTypeToString(l.tokenType):"-?-"}`)),(0,n.$)("tr",void 0,(0,n.$)("td.tm-metadata-key",void 0,"font style"),(0,n.$)("td.tm-metadata-value",void 0,`${l?this._fontStyleToString(l.fontStyle):"-?-"}`)),(0,n.$)("tr",void 0,(0,n.$)("td.tm-metadata-key",void 0,"foreground"),(0,n.$)("td.tm-metadata-value",void 0,`${l?o.Il.Format.CSS.formatHex(l.foreground):"-?-"}`)),(0,n.$)("tr",void 0,(0,n.$)("td.tm-metadata-key",void 0,"background"),(0,n.$)("td.tm-metadata-value",void 0,`${l?o.Il.Format.CSS.formatHex(l.background):"-?-"}`))))),(0,n.R3)(this._domNode,(0,n.$)("hr.tokens-inspect-separator")),i<t.tokens1.length&&(0,n.R3)(this._domNode,(0,n.$)("span.tm-token-type",void 0,t.tokens1[i].type)),this._editor.layoutContentWidget(this)}_decodeMetadata(e){const t=a.RW.getColorMap(),i=l.N.getLanguageId(e),n=l.N.getTokenType(e),o=l.N.getFontStyle(e),s=l.N.getForeground(e),r=l.N.getBackground(e);return{languageId:this._languageService.languageIdCodec.decodeLanguageId(i),tokenType:n,fontStyle:o,foreground:t[s],background:t[r]}}_tokenTypeToString(e){switch(e){case 0:return"Other";case 1:return"Comment";case 2:return"String";case 3:return"RegEx";default:return"??"}}_fontStyleToString(e){let t="";return 1&e&&(t+="italic "),2&e&&(t+="bold "),4&e&&(t+="underline "),8&e&&(t+="strikethrough "),0===t.length&&(t="---"),t}_getTokensAtLine(e){const t=this._getStateBeforeLine(e),i=this._tokenizationSupport.tokenize(this._model.getLineContent(e),!0,t),n=this._tokenizationSupport.tokenizeEncoded(this._model.getLineContent(e),!0,t);return{startState:t,tokens1:i.tokens,tokens2:n.tokens,endState:i.endState}}_getStateBeforeLine(e){let t=this._tokenizationSupport.getInitialState();for(let i=1;i<e;i++){t=this._tokenizationSupport.tokenize(this._model.getLineContent(i),!0,t).endState}return t}getDomNode(){return this._domNode}getPosition(){return{position:this._editor.getPosition(),preference:[2,1]}}}C._ID="editor.contrib.inspectTokensWidget",(0,r._K)(v.ID,v),(0,r.Qr)(b),(0,g.Ic)(((e,t)=>{const i=e.getColor(u.CNo);if(i){const n=(0,m.c3)(e.type)?2:1;t.addRule(`.monaco-editor .tokens-inspect-widget { border: ${n}px solid ${i}; }`),t.addRule(`.monaco-editor .tokens-inspect-widget .tokens-inspect-separator { background-color: ${i}; }`)}const n=e.getColor(u.yJx);n&&t.addRule(`.monaco-editor .tokens-inspect-widget { background-color: ${n}; }`);const o=e.getColor(u.Sbf);o&&t.addRule(`.monaco-editor .tokens-inspect-widget { color: ${o}; }`)}))},91732:(e,t,i)=>{"use strict";var n=i(89872),o=i(90725),s=i(20913),r=i(11640),a=i(21212),l=i(9488),c=i(98401),d=i(63580);function h(e,t){return t&&(e.stack||e.stacktrace)?d.NC("stackTrace.format","{0}: {1}",g(e),u(e.stack)||u(e.stacktrace)):g(e)}function u(e){return Array.isArray(e)?e.join("\n"):e}function g(e){return"string"==typeof e.code&&"number"==typeof e.errno&&"string"==typeof e.syscall?d.NC("nodeExceptionMessage","A system error occurred ({0})",e.message):e.message||d.NC("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}function p(e=null,t=!1){if(!e)return d.NC("error.defaultMessage","An unknown error occurred. Please consult the log for more details.");if(Array.isArray(e)){const i=l.kX(e),n=p(i[0],t);return i.length>1?d.NC("error.moreErrors","{0} ({1} errors in total)",n,i.length):n}if(c.HD(e))return e;if(e.detail){const i=e.detail;if(i.error)return h(i.error,t);if(i.exception)return h(i.exception,t)}return e.stack?h(e,t):e.message?e.message:d.NC("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}var m,f=i(17301),_=i(48357),v=i(5976),b=i(43702),C=i(14603),w=i(94565),y=i(33108),S=i(28820),L=i(72065),k=i(91847),x=i(15393),D=i(71050),N=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};function E(e){const t=e;return Array.isArray(t.items)}!function(e){e[e.NO_ACTION=0]="NO_ACTION",e[e.CLOSE_PICKER=1]="CLOSE_PICKER",e[e.REFRESH_PICKER=2]="REFRESH_PICKER",e[e.REMOVE_ITEM=3]="REMOVE_ITEM"}(m||(m={}));class I extends v.JT{constructor(e,t){super(),this.prefix=e,this.options=t}provide(e,t){var i;const n=new v.SL;let o;e.canAcceptInBackground=!!(null===(i=this.options)||void 0===i?void 0:i.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;const s=n.add(new v.XK),r=()=>N(this,void 0,void 0,(function*(){const i=s.value=new v.SL;null==o||o.dispose(!0),e.busy=!1,o=new D.A(t);const n=o.token,r=e.value.substr(this.prefix.length).trim(),a=this._getPicks(r,i,n),l=(t,i)=>{var n;let o,s;if(E(t)?(o=t.items,s=t.active):o=t,0===o.length){if(i)return!1;r.length>0&&(null===(n=this.options)||void 0===n?void 0:n.noResultsPick)&&(o=[this.options.noResultsPick])}return e.items=o,s&&(e.activeItems=[s]),!0};if(null===a);else if(function(e){const t=e;return!!t.picks&&t.additionalPicks instanceof Promise}(a)){let t=!1,i=!1;yield Promise.all([(()=>N(this,void 0,void 0,(function*(){yield(0,x.Vs)(I.FAST_PICKS_RACE_DELAY),n.isCancellationRequested||i||(t=l(a.picks,!0))})))(),(()=>N(this,void 0,void 0,(function*(){e.busy=!0;try{const o=yield a.additionalPicks;if(n.isCancellationRequested)return;let s,r,c,d;if(E(a.picks)?(s=a.picks.items,r=a.picks.active):s=a.picks,E(o)?(c=o.items,d=o.active):c=o,c.length>0||!t){let t;if(!r&&!d){const i=e.activeItems[0];i&&-1!==s.indexOf(i)&&(t=i)}l({items:[...s,...c],active:r||d||t})}}finally{n.isCancellationRequested||(e.busy=!1),i=!0}})))()])}else if(a instanceof Promise){e.busy=!0;try{const t=yield a;if(n.isCancellationRequested)return;l(t)}finally{n.isCancellationRequested||(e.busy=!1)}}else l(a)}));return n.add(e.onDidChangeValue((()=>r()))),r(),n.add(e.onDidAccept((t=>{const[i]=e.selectedItems;"function"==typeof(null==i?void 0:i.accept)&&(t.inBackground||e.hide(),i.accept(e.keyMods,t))}))),n.add(e.onDidTriggerItemButton((({button:i,item:n})=>N(this,void 0,void 0,(function*(){var o,s;if("function"==typeof n.trigger){const a=null!==(s=null===(o=n.buttons)||void 0===o?void 0:o.indexOf(i))&&void 0!==s?s:-1;if(a>=0){const i=n.trigger(a,e.keyMods),o="number"==typeof i?i:yield i;if(t.isCancellationRequested)return;switch(o){case m.NO_ACTION:break;case m.CLOSE_PICKER:e.hide();break;case m.REFRESH_PICKER:r();break;case m.REMOVE_ITEM:{const t=e.items.indexOf(n);if(-1!==t){const i=e.items.slice(),n=i.splice(t,1),o=e.activeItems.filter((e=>e!==n[0])),s=e.keepScrollPosition;e.keepScrollPosition=!0,e.items=i,o&&(e.activeItems=o),e.keepScrollPosition=s}break}}}}}))))),n}}I.FAST_PICKS_RACE_DELAY=200;var T=i(87060),M=i(10829),A=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},R=function(e,t){return function(i,n){t(i,n,e)}},O=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let P=class e extends I{constructor(t,i,n,o,s,r){super(e.PREFIX,t),this.instantiationService=i,this.keybindingService=n,this.commandService=o,this.telemetryService=s,this.dialogService=r,this.commandsHistory=this._register(this.instantiationService.createInstance(F)),this.options=t}_getPicks(t,i,n){return O(this,void 0,void 0,(function*(){const o=yield this.getCommandPicks(i,n);if(n.isCancellationRequested)return[];const s=[];for(const i of o){const n=(0,c.f6)(e.WORD_FILTER(t,i.label)),o=i.commandAlias?(0,c.f6)(e.WORD_FILTER(t,i.commandAlias)):void 0;n||o?(i.highlights={label:n,detail:this.options.showAlias?o:void 0},s.push(i)):t===i.commandId&&s.push(i)}const r=new Map;for(const e of s){const t=r.get(e.label);t?(e.description=e.commandId,t.description=t.commandId):r.set(e.label,e)}s.sort(((e,t)=>{const i=this.commandsHistory.peek(e.commandId),n=this.commandsHistory.peek(t.commandId);return i&&n?i>n?-1:1:i?-1:n?1:e.label.localeCompare(t.label)}));const a=[];let l=!1;for(let e=0;e<s.length;e++){const t=s[e],i=this.keybindingService.lookupKeybinding(t.commandId),n=i?(0,d.NC)("commandPickAriaLabelWithKeybinding","{0}, {1}",t.label,i.getAriaLabel()):t.label;0===e&&this.commandsHistory.peek(t.commandId)&&(a.push({type:"separator",label:(0,d.NC)("recentlyUsed","recently used")}),l=!0),0!==e&&l&&!this.commandsHistory.peek(t.commandId)&&(a.push({type:"separator",label:(0,d.NC)("morecCommands","other commands")}),l=!1),a.push(Object.assign(Object.assign({},t),{ariaLabel:n,detail:this.options.showAlias&&t.commandAlias!==t.label?t.commandAlias:void 0,keybinding:i,accept:()=>O(this,void 0,void 0,(function*(){this.commandsHistory.push(t.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:t.commandId,from:"quick open"});try{yield this.commandService.executeCommand(t.commandId)}catch(e){(0,f.n2)(e)||this.dialogService.show(C.Z.Error,(0,d.NC)("canNotRun","Command '{0}' resulted in an error ({1})",t.label,p(e)))}}))}))}return a}))}};P.PREFIX=">",P.WORD_FILTER=(0,_.or)(_.Ji,_.KZ,_.ir),P=A([R(1,L.TG),R(2,k.d),R(3,w.Hy),R(4,M.b),R(5,S.S)],P);let F=class e extends v.JT{constructor(e,t){super(),this.storageService=e,this.configurationService=t,this.configuredCommandsHistoryLength=0,this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration((()=>this.updateConfiguration())))}updateConfiguration(){this.configuredCommandsHistoryLength=e.getConfiguredCommandHistoryLength(this.configurationService),e.cache&&e.cache.limit!==this.configuredCommandsHistoryLength&&(e.cache.limit=this.configuredCommandsHistoryLength,e.saveState(this.storageService))}load(){const t=this.storageService.get(e.PREF_KEY_CACHE,0);let i;if(t)try{i=JSON.parse(t)}catch(o){}const n=e.cache=new b.z6(this.configuredCommandsHistoryLength,1);if(i){let e;e=i.usesLRU?i.entries:i.entries.sort(((e,t)=>e.value-t.value)),e.forEach((e=>n.set(e.key,e.value)))}e.counter=this.storageService.getNumber(e.PREF_KEY_COUNTER,0,e.counter)}push(t){e.cache&&(e.cache.set(t,e.counter++),e.saveState(this.storageService))}peek(t){var i;return null===(i=e.cache)||void 0===i?void 0:i.peek(t)}static saveState(t){if(!e.cache)return;const i={usesLRU:!0,entries:[]};e.cache.forEach(((e,t)=>i.entries.push({key:t,value:e}))),t.store(e.PREF_KEY_CACHE,JSON.stringify(i),0,0),t.store(e.PREF_KEY_COUNTER,e.counter,0,0)}static getConfiguredCommandHistoryLength(t){var i,n;const o=null===(n=null===(i=t.getValue().workbench)||void 0===i?void 0:i.commandPalette)||void 0===n?void 0:n.history;return"number"==typeof o?o:e.DEFAULT_COMMANDS_HISTORY_LENGTH}};F.DEFAULT_COMMANDS_HISTORY_LENGTH=50,F.PREF_KEY_CACHE="commandPalette.mru.cache",F.PREF_KEY_COUNTER="commandPalette.mru.counter",F.counter=1,F=A([R(0,T.Uy),R(1,y.Ui)],F);class B extends P{constructor(e,t,i,n,o,s){super(e,t,i,n,o,s)}getCodeEditorCommandPicks(){const e=this.activeTextEditorControl;if(!e)return[];const t=[];for(const i of e.getSupportedActions())t.push({commandId:i.id,commandAlias:i.alias,label:(0,a.x$)(i.label)||i.id});return t}}var V=i(16830),W=i(29102),H=i(41157),z=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},j=function(e,t){return function(i,n){t(i,n,e)}},U=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let K=class extends B{constructor(e,t,i,n,o,s){super({showAlias:!1},e,i,n,o,s),this.codeEditorService=t}get activeTextEditorControl(){return(0,c.f6)(this.codeEditorService.getFocusedCodeEditor())}getCommandPicks(){return U(this,void 0,void 0,(function*(){return this.getCodeEditorCommandPicks()}))}};K=z([j(0,L.TG),j(1,r.$),j(2,k.d),j(3,w.Hy),j(4,M.b),j(5,S.S)],K);class $ extends V.R6{constructor(){super({id:$.ID,label:s.UX.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:W.u.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(e){e.get(H.eJ).quickAccess.show(K.PREFIX)}}$.ID="editor.action.quickCommand",(0,V.Qr)($),n.B.as(o.IP.Quickaccess).registerQuickAccessProvider({ctor:K,prefix:K.PREFIX,helpEntries:[{description:s.UX.quickCommandHelp,commandId:$.ID}]})},62078:(e,t,i)=>{"use strict";var n=i(5976),o=i(65520),s=i(83943),r=i(63580);class a extends s.X{constructor(){super({canAcceptInBackground:!0})}provideWithoutTextEditor(e){const t=(0,r.NC)("cannotRunGotoLine","Open a text editor first to go to a line.");return e.items=[{label:t}],e.ariaLabel=t,n.JT.None}provideWithTextEditor(e,t,i){const s=e.editor,r=new n.SL;r.add(t.onDidAccept((i=>{const[n]=t.selectedItems;if(n){if(!this.isValidLineNumber(s,n.lineNumber))return;this.gotoLocation(e,{range:this.toRange(n.lineNumber,n.column),keyMods:t.keyMods,preserveFocus:i.inBackground}),i.inBackground||t.hide()}})));const l=()=>{const e=this.parsePosition(s,t.value.trim().substr(a.PREFIX.length)),i=this.getPickLabel(s,e.lineNumber,e.column);if(t.items=[{lineNumber:e.lineNumber,column:e.column,label:i}],t.ariaLabel=i,!this.isValidLineNumber(s,e.lineNumber))return void this.clearDecorations(s);const n=this.toRange(e.lineNumber,e.column);s.revealRangeInCenter(n,0),this.addDecorations(s,n)};l(),r.add(t.onDidChangeValue((()=>l())));const c=(0,o.Pi)(s);if(c){2===c.getOptions().get(62).renderType&&(c.updateOptions({lineNumbers:"on"}),r.add((0,n.OF)((()=>c.updateOptions({lineNumbers:"relative"})))))}return r}toRange(e=1,t=1){return{startLineNumber:e,startColumn:t,endLineNumber:e,endColumn:t}}parsePosition(e,t){const i=t.split(/,|:|#/).map((e=>parseInt(e,10))).filter((e=>!isNaN(e))),n=this.lineCount(e)+1;return{lineNumber:i[0]>0?i[0]:n+i[0],column:i[1]}}getPickLabel(e,t,i){if(this.isValidLineNumber(e,t))return this.isValidColumn(e,t,i)?(0,r.NC)("gotoLineColumnLabel","Go to line {0} and character {1}.",t,i):(0,r.NC)("gotoLineLabel","Go to line {0}.",t);const n=e.getPosition()||{lineNumber:1,column:1},o=this.lineCount(e);return o>1?(0,r.NC)("gotoLineLabelEmptyWithLimit","Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.",n.lineNumber,n.column,o):(0,r.NC)("gotoLineLabelEmpty","Current Line: {0}, Character: {1}. Type a line number to navigate to.",n.lineNumber,n.column)}isValidLineNumber(e,t){return!(!t||"number"!=typeof t)&&(t>0&&t<=this.lineCount(e))}isValidColumn(e,t,i){if(!i||"number"!=typeof i)return!1;const n=this.getModel(e);if(!n)return!1;const o={lineNumber:t,column:i};return n.validatePosition(o).equals(o)}lineCount(e){var t,i;return null!==(i=null===(t=this.getModel(e))||void 0===t?void 0:t.getLineCount())&&void 0!==i?i:0}}a.PREFIX=":";var l=i(89872),c=i(90725),d=i(11640),h=i(98401),u=i(20913),g=i(4669),p=i(16830),m=i(29102),f=i(41157),_=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},v=function(e,t){return function(i,n){t(i,n,e)}};let b=class extends a{constructor(e){super(),this.editorService=e,this.onDidActiveTextEditorControlChange=g.ju.None}get activeTextEditorControl(){return(0,h.f6)(this.editorService.getFocusedCodeEditor())}};b=_([v(0,d.$)],b);class C extends p.R6{constructor(){super({id:C.ID,label:u.qq.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:m.u.focus,primary:2085,mac:{primary:293},weight:100}})}run(e){e.get(f.eJ).quickAccess.show(b.PREFIX)}}C.ID="editor.action.gotoLine",(0,p.Qr)(C),l.B.as(c.IP.Quickaccess).registerQuickAccessProvider({ctor:b,prefix:b.PREFIX,helpEntries:[{description:u.qq.gotoLineActionLabel,commandId:C.ID}]})},96816:(e,t,i)=>{"use strict";i(28609),i(71713);var n=i(15393),o=i(71050),s=i(73046),r=i(48357),a=i(55336),l=i(1432),c=i(97295);const d=[void 0,[]];function h(e,t,i=0,n=0){const o=t;return o.values&&o.values.length>1?function(e,t,i,n){let o=0;const s=[];for(const r of t){const[t,a]=u(e,r,i,n);if("number"!=typeof t)return d;o+=t,s.push(...a)}return[o,g(s)]}(e,o.values,i,n):u(e,t,i,n)}function u(e,t,i,n){const o=(0,r.EW)(t.original,t.originalLowercase,i,e,e.toLowerCase(),n,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return o?[o[0],(0,r.mB)(o)]:d}Object.freeze({score:0});function g(e){const t=e.sort(((e,t)=>e.start-t.start)),i=[];let n;for(const o of t)n&&p(n,o)?(n.start=Math.min(n.start,o.start),n.end=Math.max(n.end,o.end)):(n=o,i.push(o));return i}function p(e,t){return!(e.end<t.start)&&!(t.end<e.start)}function m(e){return e.startsWith('"')&&e.endsWith('"')}function f(e){"string"!=typeof e&&(e="");const t=e.toLowerCase(),{pathNormalized:i,normalized:n,normalizedLowercase:o}=_(e),s=i.indexOf(a.ir)>=0,r=m(e);let l;const c=e.split(" ");if(c.length>1)for(const a of c){const e=m(a),{pathNormalized:t,normalized:i,normalizedLowercase:n}=_(a);i&&(l||(l=[]),l.push({original:a,originalLowercase:a.toLowerCase(),pathNormalized:t,normalized:i,normalizedLowercase:n,expectContiguousMatch:e}))}return{original:e,originalLowercase:t,pathNormalized:i,normalized:n,normalizedLowercase:o,values:l,containsPathSeparator:s,expectContiguousMatch:r}}function _(e){let t;t=l.ED?e.replace(/\//g,a.ir):e.replace(/\\/g,a.ir);const i=(0,c.R1)(t).replace(/\s|"/g,"");return{pathNormalized:t,normalized:i,normalizedLowercase:i.toLowerCase()}}function v(e){return Array.isArray(e)?f(e.map((e=>e.original)).join(" ")):f(e.original)}var b=i(5976),C=i(24314),w=i(43155),y=i(30335),S=i(83943),L=i(63580),k=i(71922),x=i(9488),D=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},N=function(e,t){return function(i,n){t(i,n,e)}},E=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let I=class e extends S.X{constructor(e,t,i=Object.create(null)){super(i),this._languageFeaturesService=e,this._outlineModelService=t,this.options=i,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(e){return this.provideLabelPick(e,(0,L.NC)("cannotRunGotoSymbolWithoutEditor","To go to a symbol, first open a text editor with symbol information.")),b.JT.None}provideWithTextEditor(e,t,i){const n=e.editor,o=this.getModel(n);return o?this._languageFeaturesService.documentSymbolProvider.has(o)?this.doProvideWithEditorSymbols(e,o,t,i):this.doProvideWithoutEditorSymbols(e,o,t,i):b.JT.None}doProvideWithoutEditorSymbols(e,t,i,n){const o=new b.SL;return this.provideLabelPick(i,(0,L.NC)("cannotRunGotoSymbolWithoutSymbolProvider","The active text editor does not provide symbol information.")),(()=>{E(this,void 0,void 0,(function*(){(yield this.waitForLanguageSymbolRegistry(t,o))&&!n.isCancellationRequested&&o.add(this.doProvideWithEditorSymbols(e,t,i,n))}))})(),o}provideLabelPick(e,t){e.items=[{label:t,index:0,kind:14}],e.ariaLabel=t}waitForLanguageSymbolRegistry(e,t){return E(this,void 0,void 0,(function*(){if(this._languageFeaturesService.documentSymbolProvider.has(e))return!0;const i=new n.CR,o=t.add(this._languageFeaturesService.documentSymbolProvider.onDidChange((()=>{this._languageFeaturesService.documentSymbolProvider.has(e)&&(o.dispose(),i.complete(!0))})));return t.add((0,b.OF)((()=>i.complete(!1)))),i.p}))}doProvideWithEditorSymbols(t,i,n,s){var r;const a=t.editor,l=new b.SL;l.add(n.onDidAccept((e=>{const[i]=n.selectedItems;i&&i.range&&(this.gotoLocation(t,{range:i.range.selection,keyMods:n.keyMods,preserveFocus:e.inBackground}),e.inBackground||n.hide())}))),l.add(n.onDidTriggerItemButton((({item:e})=>{e&&e.range&&(this.gotoLocation(t,{range:e.range.selection,keyMods:n.keyMods,forceSideBySide:!0}),n.hide())})));const c=this.getDocumentSymbols(i,s);let d;const h=t=>E(this,void 0,void 0,(function*(){null==d||d.dispose(!0),n.busy=!1,d=new o.A(s),n.busy=!0;try{const i=f(n.value.substr(e.PREFIX.length).trim()),o=yield this.doGetSymbolPicks(c,i,void 0,d.token);if(s.isCancellationRequested)return;if(o.length>0){if(n.items=o,t&&0===i.original.length){const e=(0,x.dF)(o,(e=>Boolean("separator"!==e.type&&e.range&&C.e.containsPosition(e.range.decoration,t))));e&&(n.activeItems=[e])}}else i.original.length>0?this.provideLabelPick(n,(0,L.NC)("noMatchingSymbolResults","No matching editor symbols")):this.provideLabelPick(n,(0,L.NC)("noSymbolResults","No editor symbols"))}finally{s.isCancellationRequested||(n.busy=!1)}}));l.add(n.onDidChangeValue((()=>h(void 0)))),h(null===(r=a.getSelection())||void 0===r?void 0:r.getPosition());let u=2;return l.add(n.onDidChangeActive((()=>{const[e]=n.activeItems;if(e&&e.range){if(u-- >0)return;a.revealRangeInCenter(e.range.selection,0),this.addDecorations(a,e.range.decoration)}}))),l}doGetSymbolPicks(t,i,n,o){return E(this,void 0,void 0,(function*(){const r=yield t;if(o.isCancellationRequested)return[];const a=0===i.original.indexOf(e.SCOPE_PREFIX),l=a?1:0;let d,u;i.values&&i.values.length>1?(d=v(i.values[0]),u=v(i.values.slice(1))):d=i;const g=[];for(let f=0;f<r.length;f++){const _=r[f],b=(0,c.fy)(_.name),y=`$(${w.uZ.toIcon(_.kind).id}) ${b}`,S=y.length-b.length;let k,x,D,N,E=_.containerName;if((null==n?void 0:n.extraContainerLabel)&&(E=E?`${n.extraContainerLabel} \u2022 ${E}`:n.extraContainerLabel),i.original.length>l){let A=!1;if(d!==i&&([k,x]=h(y,Object.assign(Object.assign({},i),{values:void 0}),l,S),"number"==typeof k&&(A=!0)),"number"!=typeof k&&([k,x]=h(y,d,l,S),"number"!=typeof k))continue;if(!A&&u){if(E&&u.original.length>0&&([D,N]=h(E,u)),"number"!=typeof D)continue;"number"==typeof k&&(k+=D)}}const I=_.tags&&_.tags.indexOf(1)>=0;g.push({index:f,kind:_.kind,score:k,label:y,ariaLabel:b,description:E,highlights:I?void 0:{label:x,description:N},range:{selection:C.e.collapseToStart(_.selectionRange),decoration:_.range},strikethrough:I,buttons:(()=>{var e,t;const i=(null===(e=this.options)||void 0===e?void 0:e.openSideBySideDirection)?null===(t=this.options)||void 0===t?void 0:t.openSideBySideDirection():void 0;if(i)return[{iconClass:"right"===i?s.lA.splitHorizontal.classNames:s.lA.splitVertical.classNames,tooltip:"right"===i?(0,L.NC)("openToSide","Open to the Side"):(0,L.NC)("openToBottom","Open to the Bottom")}]})()})}const p=g.sort(((e,t)=>a?this.compareByKindAndScore(e,t):this.compareByScore(e,t)));let m=[];if(a){let R,O,P=0;function F(){O&&"number"==typeof R&&P>0&&(O.label=(0,c.WU)(M[R]||T,P))}for(const B of p)R!==B.kind?(F(),R=B.kind,P=1,O={type:"separator"},m.push(O)):P++,m.push(B);F()}else p.length>0&&(m=[{label:(0,L.NC)("symbols","symbols ({0})",g.length),type:"separator"},...p]);return m}))}compareByScore(e,t){if("number"!=typeof e.score&&"number"==typeof t.score)return 1;if("number"==typeof e.score&&"number"!=typeof t.score)return-1;if("number"==typeof e.score&&"number"==typeof t.score){if(e.score>t.score)return-1;if(e.score<t.score)return 1}return e.index<t.index?-1:e.index>t.index?1:0}compareByKindAndScore(e,t){const i=M[e.kind]||T,n=M[t.kind]||T,o=i.localeCompare(n);return 0===o?this.compareByScore(e,t):o}getDocumentSymbols(e,t){return E(this,void 0,void 0,(function*(){const i=yield this._outlineModelService.getOrCreate(e,t);return t.isCancellationRequested?[]:i.asListOfDocumentSymbols()}))}};I.PREFIX="@",I.SCOPE_PREFIX=":",I.PREFIX_BY_CATEGORY=`${I.PREFIX}${I.SCOPE_PREFIX}`,I=D([N(0,k.p),N(1,y.Je)],I);const T=(0,L.NC)("property","properties ({0})"),M={5:(0,L.NC)("method","methods ({0})"),11:(0,L.NC)("function","functions ({0})"),8:(0,L.NC)("_constructor","constructors ({0})"),12:(0,L.NC)("variable","variables ({0})"),4:(0,L.NC)("class","classes ({0})"),22:(0,L.NC)("struct","structs ({0})"),23:(0,L.NC)("event","events ({0})"),24:(0,L.NC)("operator","operators ({0})"),10:(0,L.NC)("interface","interfaces ({0})"),2:(0,L.NC)("namespace","namespaces ({0})"),3:(0,L.NC)("package","packages ({0})"),25:(0,L.NC)("typeParameter","type parameters ({0})"),1:(0,L.NC)("modules","modules ({0})"),6:(0,L.NC)("property","properties ({0})"),9:(0,L.NC)("enum","enumerations ({0})"),21:(0,L.NC)("enumMember","enumeration members ({0})"),14:(0,L.NC)("string","strings ({0})"),0:(0,L.NC)("file","files ({0})"),17:(0,L.NC)("array","arrays ({0})"),15:(0,L.NC)("number","numbers ({0})"),16:(0,L.NC)("boolean","booleans ({0})"),18:(0,L.NC)("object","objects ({0})"),19:(0,L.NC)("key","keys ({0})"),7:(0,L.NC)("field","fields ({0})"),13:(0,L.NC)("constant","constants ({0})")};var A=i(89872),R=i(90725),O=i(11640),P=i(98401),F=i(20913),B=i(4669),V=i(16830),W=i(29102),H=i(41157),z=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},j=function(e,t){return function(i,n){t(i,n,e)}};let U=class extends I{constructor(e,t,i){super(t,i),this.editorService=e,this.onDidActiveTextEditorControlChange=B.ju.None}get activeTextEditorControl(){return(0,P.f6)(this.editorService.getFocusedCodeEditor())}};U=z([j(0,O.$),j(1,k.p),j(2,y.Je)],U);class K extends V.R6{constructor(){super({id:K.ID,label:F.aq.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:W.u.hasDocumentSymbolProvider,kbOpts:{kbExpr:W.u.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(e){e.get(H.eJ).quickAccess.show(I.PREFIX)}}K.ID="editor.action.quickOutline",(0,V.Qr)(K),A.B.as(R.IP.Quickaccess).registerQuickAccessProvider({ctor:U,prefix:I.PREFIX,helpEntries:[{description:F.aq.quickOutlineActionLabel,prefix:I.PREFIX,commandId:K.ID},{description:F.aq.quickOutlineByCategoryActionLabel,prefix:I.PREFIX_BY_CATEGORY}]})},60669:(e,t,i)=>{"use strict";var n=i(89872),o=i(90725),s=i(20913),r=i(63580),a=i(5976),l=i(91847),c=i(41157),d=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},h=function(e,t){return function(i,n){t(i,n,e)}};let u=class e{constructor(e,t){this.quickInputService=e,this.keybindingService=t,this.registry=n.B.as(o.IP.Quickaccess)}provide(t){const i=new a.SL;return i.add(t.onDidAccept((()=>{const[e]=t.selectedItems;e&&this.quickInputService.quickAccess.show(e.prefix,{preserveValue:!0})}))),i.add(t.onDidChangeValue((t=>{const i=this.registry.getQuickAccessProvider(t.substr(e.PREFIX.length));i&&i.prefix&&i.prefix!==e.PREFIX&&this.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})}))),t.items=this.getQuickAccessProviders(),i}getQuickAccessProviders(){const t=[];for(const i of this.registry.getQuickAccessProviders().sort(((e,t)=>e.prefix.localeCompare(t.prefix))))if(i.prefix!==e.PREFIX)for(const e of i.helpEntries){const n=e.prefix||i.prefix,o=n||"\u2026";t.push({prefix:n,label:o,keybinding:e.commandId?this.keybindingService.lookupKeybinding(e.commandId):void 0,ariaLabel:(0,r.NC)("helpPickAriaLabel","{0}, {1}",o,e.description),description:e.description})}return t}};u.PREFIX="?",u=d([h(0,c.eJ),h(1,l.d)],u),n.B.as(o.IP.Quickaccess).registerQuickAccessProvider({ctor:u,prefix:"",helpEntries:[{description:s.ld.helpQuickAccessActionLabel}]})},45048:(e,t,i)=>{"use strict";var n=i(16830),o=i(11640),s=i(29010),r=i(33108),a=i(38819),l=i(72065),c=i(59422),d=i(87060),h=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},u=function(e,t){return function(i,n){t(i,n,e)}};let g=class extends s.J{constructor(e,t,i,n,o,s,r){super(!0,e,t,i,n,o,s,r)}};g=h([u(1,a.i6),u(2,o.$),u(3,c.lT),u(4,l.TG),u(5,d.Uy),u(6,r.Ui)],g),(0,n._K)(s.J.ID,g)},88542:(e,t,i)=>{"use strict";i.d(t,{kR:()=>I,MU:()=>T,nI:()=>B,rW:()=>E,TG:()=>N});var n=i(65321),o=i(16268),s=i(41264),r=i(4669),a=i(43155),l=i(45797);class c{constructor(e,t,i,n,o){this._parsedThemeRuleBrand=void 0,this.token=e,this.index=t,this.fontStyle=i,this.foreground=n,this.background=o}}const d=/^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;class h{constructor(){this._lastColorId=0,this._id2color=[],this._color2id=new Map}getId(e){if(null===e)return 0;const t=e.match(d);if(!t)throw new Error("Illegal value for token color: "+e);e=t[1].toUpperCase();let i=this._color2id.get(e);return i||(i=++this._lastColorId,this._color2id.set(e,i),this._id2color[i]=s.Il.fromHex("#"+e),i)}getColorMap(){return this._id2color.slice(0)}}class u{constructor(e,t){this._colorMap=e,this._root=t,this._cache=new Map}static createFromRawTokenTheme(e,t){return this.createFromParsedTokenTheme(function(e){if(!e||!Array.isArray(e))return[];const t=[];let i=0;for(let n=0,o=e.length;n<o;n++){const o=e[n];let s=-1;if("string"==typeof o.fontStyle){s=0;const e=o.fontStyle.split(" ");for(let t=0,i=e.length;t<i;t++)switch(e[t]){case"italic":s|=1;break;case"bold":s|=2;break;case"underline":s|=4;break;case"strikethrough":s|=8}}let r=null;"string"==typeof o.foreground&&(r=o.foreground);let a=null;"string"==typeof o.background&&(a=o.background),t[i++]=new c(o.token||"",n,s,r,a)}return t}(e),t)}static createFromParsedTokenTheme(e,t){return function(e,t){e.sort(((e,t)=>{const i=function(e,t){return e<t?-1:e>t?1:0}(e.token,t.token);return 0!==i?i:e.index-t.index}));let i=0,n="000000",o="ffffff";for(;e.length>=1&&""===e[0].token;){const t=e.shift();-1!==t.fontStyle&&(i=t.fontStyle),null!==t.foreground&&(n=t.foreground),null!==t.background&&(o=t.background)}const s=new h;for(const d of t)s.getId(d);const r=s.getId(n),a=s.getId(o),l=new p(i,r,a),c=new m(l);for(let d=0,h=e.length;d<h;d++){const t=e[d];c.insert(t.token,t.fontStyle,s.getId(t.foreground),s.getId(t.background))}return new u(s,c)}(e,t)}getColorMap(){return this._colorMap.getColorMap()}_match(e){return this._root.match(e)}match(e,t){let i=this._cache.get(t);if(void 0===i){const e=this._match(t),n=function(e){const t=e.match(g);if(!t)return 0;switch(t[1]){case"comment":return 1;case"string":return 2;case"regex":case"regexp":return 3}throw new Error("Unexpected match for standard token type!")}(t);i=(e.metadata|n<<8)>>>0,this._cache.set(t,i)}return(i|e<<0)>>>0}}const g=/\b(comment|string|regex|regexp)\b/;class p{constructor(e,t,i){this._themeTrieElementRuleBrand=void 0,this._fontStyle=e,this._foreground=t,this._background=i,this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}clone(){return new p(this._fontStyle,this._foreground,this._background)}acceptOverwrite(e,t,i){-1!==e&&(this._fontStyle=e),0!==t&&(this._foreground=t),0!==i&&(this._background=i),this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}}class m{constructor(e){this._themeTrieElementBrand=void 0,this._mainRule=e,this._children=new Map}match(e){if(""===e)return this._mainRule;const t=e.indexOf(".");let i,n;-1===t?(i=e,n=""):(i=e.substring(0,t),n=e.substring(t+1));const o=this._children.get(i);return void 0!==o?o.match(n):this._mainRule}insert(e,t,i,n){if(""===e)return void this._mainRule.acceptOverwrite(t,i,n);const o=e.indexOf(".");let s,r;-1===o?(s=e,r=""):(s=e.substring(0,o),r=e.substring(o+1));let a=this._children.get(s);void 0===a&&(a=new m(this._mainRule.clone()),this._children.set(s,a)),a.insert(r,t,i,n)}}var f=i(8625),_=i(73910);const v={base:"vs",inherit:!1,rules:[{token:"",foreground:"000000",background:"fffffe"},{token:"invalid",foreground:"cd3131"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"001188"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"delimiter.xml",foreground:"0000FF"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"FF0000"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"FF0000"},{token:"attribute.value",foreground:"0451A5"},{token:"attribute.value.number",foreground:"098658"},{token:"attribute.value.unit",foreground:"098658"},{token:"attribute.value.html",foreground:"0000FF"},{token:"attribute.value.xml",foreground:"0000FF"},{token:"string",foreground:"A31515"},{token:"string.html",foreground:"0000FF"},{token:"string.sql",foreground:"FF0000"},{token:"string.yaml",foreground:"0451A5"},{token:"keyword",foreground:"0000FF"},{token:"keyword.json",foreground:"0451A5"},{token:"keyword.flow",foreground:"AF00DB"},{token:"keyword.flow.scss",foreground:"0000FF"},{token:"operator.scss",foreground:"666666"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:{[_.cvW]:"#FFFFFE",[_.NOs]:"#000000",[_.ES4]:"#E5EBF1",[f.tR]:"#D3D3D3",[f.Ym]:"#939393",[_.Rzx]:"#ADD6FF4D"}},b={base:"vs-dark",inherit:!1,rules:[{token:"",foreground:"D4D4D4",background:"1E1E1E"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"74B0DF"},{token:"variable.predefined",foreground:"4864AA"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"B5CEA8"},{token:"number.hex",foreground:"5BB498"},{token:"regexp",foreground:"B46695"},{token:"annotation",foreground:"cc6666"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"DCDCDC"},{token:"delimiter.html",foreground:"808080"},{token:"delimiter.xml",foreground:"808080"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"A79873"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"DD6A6F"},{token:"metatag.content.html",foreground:"9CDCFE"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key.json",foreground:"9CDCFE"},{token:"string.value.json",foreground:"CE9178"},{token:"attribute.name",foreground:"9CDCFE"},{token:"attribute.value",foreground:"CE9178"},{token:"attribute.value.number.css",foreground:"B5CEA8"},{token:"attribute.value.unit.css",foreground:"B5CEA8"},{token:"attribute.value.hex.css",foreground:"D4D4D4"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"keyword.json",foreground:"CE9178"},{token:"keyword.flow.scss",foreground:"569CD6"},{token:"operator.scss",foreground:"909090"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[_.cvW]:"#1E1E1E",[_.NOs]:"#D4D4D4",[_.ES4]:"#3A3D41",[f.tR]:"#404040",[f.Ym]:"#707070",[_.Rzx]:"#ADD6FF26"}},C={base:"hc-black",inherit:!1,rules:[{token:"",foreground:"FFFFFF",background:"000000"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"1AEBFF"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"FFFFFF"},{token:"regexp",foreground:"C0C0C0"},{token:"annotation",foreground:"569CD6"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"FFFF00"},{token:"delimiter.html",foreground:"FFFF00"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta",foreground:"D4D4D4"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"569CD6"},{token:"metatag.content.html",foreground:"1AEBFF"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key",foreground:"9CDCFE"},{token:"string.value",foreground:"CE9178"},{token:"attribute.name",foreground:"569CD6"},{token:"attribute.value",foreground:"3FF23F"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[_.cvW]:"#000000",[_.NOs]:"#FFFFFF",[f.tR]:"#FFFFFF",[f.Ym]:"#FFFFFF"}},w={base:"hc-light",inherit:!1,rules:[{token:"",foreground:"292929",background:"FFFFFF"},{token:"invalid",foreground:"B5200D"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"264F70"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"B5200D"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"264F78"},{token:"attribute.value",foreground:"0451A5"},{token:"string",foreground:"A31515"},{token:"string.sql",foreground:"B5200D"},{token:"keyword",foreground:"0000FF"},{token:"keyword.flow",foreground:"AF00DB"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:{[_.cvW]:"#FFFFFF",[_.NOs]:"#292929",[f.tR]:"#292929",[f.Ym]:"#292929"}};var y=i(89872),S=i(97781),L=i(5976),k=i(92321),x=i(59554);class D{getIcon(e){const t=(0,x.Ks)();let i=e.defaults;for(;S.kS.isThemeIcon(i);){const e=t.getIcon(i.id);if(!e)return;i=e.defaults}return i}}const N="vs",E="vs-dark",I="hc-black",T="hc-light",M=y.B.as(_.IPX.ColorContribution),A=y.B.as(S.IP.ThemingContribution);class R{constructor(e,t){this.semanticHighlighting=!1,this.themeData=t;const i=t.base;e.length>0?(O(e)?this.id=e:this.id=i+" "+e,this.themeName=e):(this.id=i,this.themeName=i),this.colors=null,this.defaultColors=Object.create(null),this._tokenTheme=null}get base(){return this.themeData.base}notifyBaseUpdated(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)}getColors(){if(!this.colors){const e=new Map;for(const t in this.themeData.colors)e.set(t,s.Il.fromHex(this.themeData.colors[t]));if(this.themeData.inherit){const t=P(this.themeData.base);for(const i in t.colors)e.has(i)||e.set(i,s.Il.fromHex(t.colors[i]))}this.colors=e}return this.colors}getColor(e,t){const i=this.getColors().get(e);return i||(!1!==t?this.getDefault(e):void 0)}getDefault(e){let t=this.defaultColors[e];return t||(t=M.resolveDefaultColor(e,this),this.defaultColors[e]=t,t)}defines(e){return Object.prototype.hasOwnProperty.call(this.getColors(),e)}get type(){switch(this.base){case N:return k.eL.LIGHT;case I:return k.eL.HIGH_CONTRAST_DARK;case T:return k.eL.HIGH_CONTRAST_LIGHT;default:return k.eL.DARK}}get tokenTheme(){if(!this._tokenTheme){let e=[],t=[];if(this.themeData.inherit){const i=P(this.themeData.base);e=i.rules,i.encodedTokensColors&&(t=i.encodedTokensColors)}const i=this.themeData.colors["editor.foreground"],n=this.themeData.colors["editor.background"];if(i||n){const t={token:""};i&&(t.foreground=i),n&&(t.background=n),e.push(t)}e=e.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(t=this.themeData.encodedTokensColors),this._tokenTheme=u.createFromRawTokenTheme(e,t)}return this._tokenTheme}getTokenStyleMetadata(e,t,i){const n=this.tokenTheme._match([e].concat(t).join(".")).metadata,o=l.N.getForeground(n),s=l.N.getFontStyle(n);return{foreground:o,italic:Boolean(1&s),bold:Boolean(2&s),underline:Boolean(4&s),strikethrough:Boolean(8&s)}}}function O(e){return e===N||e===E||e===I||e===T}function P(e){switch(e){case N:return v;case E:return b;case I:return C;case T:return w}}function F(e){const t=P(e);return new R(e,t)}class B extends L.JT{constructor(){super(),this._onColorThemeChange=this._register(new r.Q5),this.onDidColorThemeChange=this._onColorThemeChange.event,this._onProductIconThemeChange=this._register(new r.Q5),this.onDidProductIconThemeChange=this._onProductIconThemeChange.event,this._environment=Object.create(null),this._builtInProductIconTheme=new D,this._autoDetectHighContrast=!0,this._knownThemes=new Map,this._knownThemes.set(N,F(N)),this._knownThemes.set(E,F(E)),this._knownThemes.set(I,F(I)),this._knownThemes.set(T,F(T));const e=function(e){const t=new r.Q5,i=(0,x.Ks)();return i.onDidChange((()=>t.fire())),null==e||e.onDidProductIconThemeChange((()=>t.fire())),{onDidChange:t.event,getCSS(){const t=e?e.getProductIconTheme():new D,o={},s=e=>{const i=t.getIcon(e);if(!i)return;const s=i.font;return s?(o[s.id]=s.definition,`.codicon-${e.id}:before { content: '${i.fontCharacter}'; font-family: ${(0,n._h)(s.id)}; }`):`.codicon-${e.id}:before { content: '${i.fontCharacter}'; }`},r=[];for(const e of i.getIcons()){const t=s(e);t&&r.push(t)}for(const e in o){const t=o[e],i=t.weight?`font-weight: ${t.weight};`:"",s=t.style?`font-style: ${t.style};`:"",a=t.src.map((e=>`${(0,n.wY)(e.location)} format('${e.format}')`)).join(", ");r.push(`@font-face { src: ${a}; font-family: ${(0,n._h)(e)};${i}${s} font-display: block; }`)}return r.join("\n")}}}(this);this._codiconCSS=e.getCSS(),this._themeCSS="",this._allCSS=`${this._codiconCSS}\n${this._themeCSS}`,this._globalStyleElement=null,this._styleElements=[],this._colorMapOverride=null,this.setTheme(N),this._onOSSchemeChanged(),e.onDidChange((()=>{this._codiconCSS=e.getCSS(),this._updateCSS()})),(0,o.addMatchMediaChangeListener)("(forced-colors: active)",(()=>{this._onOSSchemeChanged()}))}registerEditorContainer(e){return n.OO(e)?this._registerShadowDomContainer(e):this._registerRegularEditorContainer()}_registerRegularEditorContainer(){return this._globalStyleElement||(this._globalStyleElement=n.dS(),this._globalStyleElement.className="monaco-colors",this._globalStyleElement.textContent=this._allCSS,this._styleElements.push(this._globalStyleElement)),L.JT.None}_registerShadowDomContainer(e){const t=n.dS(e);return t.className="monaco-colors",t.textContent=this._allCSS,this._styleElements.push(t),{dispose:()=>{for(let e=0;e<this._styleElements.length;e++)if(this._styleElements[e]===t)return void this._styleElements.splice(e,1)}}}defineTheme(e,t){if(!/^[a-z0-9\-]+$/i.test(e))throw new Error("Illegal theme name!");if(!O(t.base)&&!O(e))throw new Error("Illegal theme base!");this._knownThemes.set(e,new R(e,t)),O(e)&&this._knownThemes.forEach((t=>{t.base===e&&t.notifyBaseUpdated()})),this._theme.themeName===e&&this.setTheme(e)}getColorTheme(){return this._theme}setColorMapOverride(e){this._colorMapOverride=e,this._updateThemeOrColorMap()}setTheme(e){let t;t=this._knownThemes.has(e)?this._knownThemes.get(e):this._knownThemes.get(N),this._updateActualTheme(t)}_updateActualTheme(e){e&&this._theme!==e&&(this._theme=e,this._updateThemeOrColorMap())}_onOSSchemeChanged(){if(this._autoDetectHighContrast){const e=window.matchMedia("(forced-colors: active)").matches;if(e!==(0,k.c3)(this._theme.type)){let t;t=(0,k._T)(this._theme.type)?e?I:E:e?T:N,this._updateActualTheme(this._knownThemes.get(t))}}}setAutoDetectHighContrast(e){this._autoDetectHighContrast=e,this._onOSSchemeChanged()}_updateThemeOrColorMap(){const e=[],t={},i={addRule:i=>{t[i]||(e.push(i),t[i]=!0)}};A.getThemingParticipants().forEach((e=>e(this._theme,i,this._environment)));const n=[];for(const s of M.getColors()){const e=this._theme.getColor(s.id,!0);e&&n.push(`${(0,_.QO2)(s.id)}: ${e.toString()};`)}i.addRule(`.monaco-editor { ${n.join("\n")} }`);const o=this._colorMapOverride||this._theme.tokenTheme.getColorMap();i.addRule(function(e){const t=[];for(let i=1,n=e.length;i<n;i++){const n=e[i];t[i]=`.mtk${i} { color: ${n}; }`}return t.push(".mtki { font-style: italic; }"),t.push(".mtkb { font-weight: bold; }"),t.push(".mtku { text-decoration: underline; text-underline-position: under; }"),t.push(".mtks { text-decoration: line-through; }"),t.push(".mtks.mtku { text-decoration: underline line-through; text-underline-position: under; }"),t.join("\n")}(o)),this._themeCSS=e.join("\n"),this._updateCSS(),a.RW.setColorMap(o),this._onColorThemeChange.fire(this._theme)}_updateCSS(){this._allCSS=`${this._codiconCSS}\n${this._themeCSS}`,this._styleElements.forEach((e=>e.textContent=this._allCSS))}getFileIconTheme(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}}getProductIconTheme(){return this._builtInProductIconTheme}}},15662:(e,t,i)=>{"use strict";var n=i(16830),o=i(44156),s=i(20913),r=i(92321),a=i(88542);class l extends n.R6{constructor(){super({id:"editor.action.toggleHighContrast",label:s.xi.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}),this._originalThemeName=null}run(e,t){const i=e.get(o.Z),n=i.getColorTheme();(0,r.c3)(n.type)?(i.setTheme(this._originalThemeName||((0,r._T)(n.type)?a.rW:a.TG)),this._originalThemeName=null):(i.setTheme((0,r._T)(n.type)?a.kR:a.MU),this._originalThemeName=n.themeName)}}(0,n.Qr)(l)},44156:(e,t,i)=>{"use strict";i.d(t,{Z:()=>n});const n=(0,i(72065).yh)("themeService")},40605:(e,t,i)=>{"use strict";var n,o,s=i(38139),r=Object.defineProperty,a=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,d=(e,t,i,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of l(t))c.call(e,o)||o===i||r(e,o,{get:()=>t[o],enumerable:!(n=a(t,o))||n.enumerable});return e},h={};d(h,n=s,"default"),o&&d(o,n,"default");var u=class{_onDidChange=new h.Emitter;_options;_modeConfiguration;_languageId;constructor(e,t,i){this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},g={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},p={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},m=new u("css",g,p),f=new u("scss",g,p),_=new u("less",g,p);function v(){return i.e(5288).then(i.bind(i,45288))}h.languages.css={cssDefaults:m,lessDefaults:_,scssDefaults:f},h.languages.onLanguage("less",(()=>{v().then((e=>e.setupMode(_)))})),h.languages.onLanguage("scss",(()=>{v().then((e=>e.setupMode(f)))})),h.languages.onLanguage("css",(()=>{v().then((e=>e.setupMode(m)))}))},68423:(e,t,i)=>{"use strict";var n,o,s=i(38139),r=Object.defineProperty,a=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,d=(e,t,i,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of l(t))c.call(e,o)||o===i||r(e,o,{get:()=>t[o],enumerable:!(n=a(t,o))||n.enumerable});return e},h={};d(h,n=s,"default"),o&&d(o,n,"default");var u={format:{tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},suggest:{},data:{useDefaultDataProvider:!0}};function g(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===p,documentFormattingEdits:e===p,documentRangeFormattingEdits:e===p}}var p="html",m="handlebars",f="razor",_=S(p,u,g(p)),v=_.defaults,b=S(m,u,g(m)),C=b.defaults,w=S(f,u,g(f)),y=w.defaults;function S(e,t=u,n=g(e)){const o=new class{_onDidChange=new h.Emitter;_options;_modeConfiguration;_languageId;constructor(e,t,i){this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}}(e,t,n);let s;const r=h.languages.onLanguage(e,(async()=>{s=(await i.e(5377).then(i.bind(i,15377))).setupMode(o)}));return{defaults:o,dispose(){r.dispose(),s?.dispose(),s=void 0}}}h.languages.html={htmlDefaults:v,razorDefaults:y,handlebarDefaults:C,htmlLanguageService:_,handlebarLanguageService:b,razorLanguageService:w,registerHTMLLanguageService:S}},72323:(e,t,i)=>{"use strict";var n,o,s=i(38139),r=Object.defineProperty,a=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,d=(e,t,i,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of l(t))c.call(e,o)||o===i||r(e,o,{get:()=>t[o],enumerable:!(n=a(t,o))||n.enumerable});return e},h={};d(h,n=s,"default"),o&&d(o,n,"default");var u=new class{_onDidChange=new h.Emitter;_diagnosticsOptions;_modeConfiguration;_languageId;constructor(e,t,i){this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}}("json",{validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},{documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0});h.languages.json={jsonDefaults:u},h.languages.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]}),h.languages.onLanguage("json",(()=>{i.e(665).then(i.bind(i,90665)).then((e=>e.setupMode(u)))}))},39585:(e,t,i)=>{"use strict";i.d(t,{TG:()=>v});var n,o,s=i(38139),r=Object.defineProperty,a=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,d=(e,t,i,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of l(t))c.call(e,o)||o===i||r(e,o,{get:()=>t[o],enumerable:!(n=a(t,o))||n.enumerable});return e},h={};d(h,n=s,"default"),o&&d(o,n,"default");var u=(e=>(e[e.None=0]="None",e[e.CommonJS=1]="CommonJS",e[e.AMD=2]="AMD",e[e.UMD=3]="UMD",e[e.System=4]="System",e[e.ES2015=5]="ES2015",e[e.ESNext=99]="ESNext",e))(u||{}),g=(e=>(e[e.None=0]="None",e[e.Preserve=1]="Preserve",e[e.React=2]="React",e[e.ReactNative=3]="ReactNative",e[e.ReactJSX=4]="ReactJSX",e[e.ReactJSXDev=5]="ReactJSXDev",e))(g||{}),p=(e=>(e[e.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",e[e.LineFeed=1]="LineFeed",e))(p||{}),m=(e=>(e[e.ES3=0]="ES3",e[e.ES5=1]="ES5",e[e.ES2015=2]="ES2015",e[e.ES2016=3]="ES2016",e[e.ES2017=4]="ES2017",e[e.ES2018=5]="ES2018",e[e.ES2019=6]="ES2019",e[e.ES2020=7]="ES2020",e[e.ESNext=99]="ESNext",e[e.JSON=100]="JSON",e[e.Latest=99]="Latest",e))(m||{}),f=(e=>(e[e.Classic=1]="Classic",e[e.NodeJs=2]="NodeJs",e))(f||{}),_=class{_onDidChange=new h.Emitter;_onDidExtraLibsChange=new h.Emitter;_extraLibs;_removedExtraLibs;_eagerModelSync;_compilerOptions;_diagnosticsOptions;_workerOptions;_onDidExtraLibsChangeTimeout;_inlayHintsOptions;constructor(e,t,i,n){this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(i),this.setInlayHintsOptions(n),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(e,t){let i;if(i=void 0===t?`ts:extralib-${Math.random().toString(36).substring(2,15)}`:t,this._extraLibs[i]&&this._extraLibs[i].content===e)return{dispose:()=>{}};let n=1;return this._removedExtraLibs[i]&&(n=this._removedExtraLibs[i]+1),this._extraLibs[i]&&(n=this._extraLibs[i].version+1),this._extraLibs[i]={content:e,version:n},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let e=this._extraLibs[i];e&&e.version===n&&(delete this._extraLibs[i],this._removedExtraLibs[i]=n,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(e){for(const t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(const t of e){const e=t.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,i=t.content;let n=1;this._removedExtraLibs[e]&&(n=this._removedExtraLibs[e]+1),this._extraLibs[e]={content:i,version:n}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){-1===this._onDidExtraLibsChangeTimeout&&(this._onDidExtraLibsChangeTimeout=window.setTimeout((()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)}),0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(e){this._inlayHintsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(e){}setEagerModelSync(e){this._eagerModelSync=e}getEagerModelSync(){return this._eagerModelSync}},v=new _({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{}),b=new _({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{});function C(){return i.e(8401).then(i.bind(i,78401))}h.languages.typescript={ModuleKind:u,JsxEmit:g,NewLineKind:p,ScriptTarget:m,ModuleResolutionKind:f,typescriptVersion:"4.5.5",typescriptDefaults:v,javascriptDefaults:b,getTypeScriptWorker:()=>C().then((e=>e.getTypeScriptWorker())),getJavaScriptWorker:()=>C().then((e=>e.getJavaScriptWorker()))},h.languages.onLanguage("typescript",(()=>C().then((e=>e.setupTypeScript(v))))),h.languages.onLanguage("javascript",(()=>C().then((e=>e.setupJavaScript(b)))))},63580:(e,t,i)=>{"use strict";i.d(t,{NC:()=>s,aj:()=>r});let n="undefined"!=typeof document&&document.location&&document.location.hash.indexOf("pseudo=true")>=0;function o(e,t){let i;return i=0===t.length?e:e.replace(/\{(\d+)\}/g,((e,i)=>{const n=i[0],o=t[n];let s=e;return"string"==typeof o?s=o:"number"!=typeof o&&"boolean"!=typeof o&&null!=o||(s=String(o)),s})),n&&(i="\uff3b"+i.replace(/[aouei]/g,"$&$&")+"\uff3d"),i}function s(e,t,...i){return o(t,i)}function r(e){}},31106:(e,t,i)=>{"use strict";i.d(t,{F:()=>o,U:()=>s});var n=i(38819);const o=(0,i(72065).yh)("accessibilityService"),s=new n.uy("accessibilityModeEnabled",!1)},84167:(e,t,i)=>{"use strict";i.d(t,{Mm:()=>I,Id:()=>A,vr:()=>E});var n=i(65321),o=i(59069),s=i(76033),r=i(10553),a=i(74741),l=i(4669);class c extends a.Wi{constructor(e,t){super(),this._onDidChangeVisibility=this._register(new l.Q5),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this._element=(0,n.R3)(e,(0,n.$)(".monaco-dropdown")),this._label=(0,n.R3)(this._element,(0,n.$)(".dropdown-label"));let i=t.labelRenderer;i||(i=e=>(e.textContent=t.label||"",null));for(const o of[n.tw.CLICK,n.tw.MOUSE_DOWN,r.t.Tap])this._register((0,n.nm)(this.element,o,(e=>n.zB.stop(e,!0))));for(const o of[n.tw.MOUSE_DOWN,r.t.Tap])this._register((0,n.nm)(this._label,o,(e=>{e instanceof MouseEvent&&(e.detail>1||0!==e.button)||(this.visible?this.hide():this.show())})));this._register((0,n.nm)(this._label,n.tw.KEY_UP,(e=>{const t=new o.y(e);(t.equals(3)||t.equals(10))&&(n.zB.stop(e,!0),this.visible?this.hide():this.show())})));const s=i(this._label);s&&this._register(s),this._register(r.o.addTarget(this._label))}get element(){return this._element}show(){this.visible||(this.visible=!0,this._onDidChangeVisibility.fire(!0))}hide(){this.visible&&(this.visible=!1,this._onDidChangeVisibility.fire(!1))}dispose(){super.dispose(),this.hide(),this.boxContainer&&(this.boxContainer.remove(),this.boxContainer=void 0),this.contents&&(this.contents.remove(),this.contents=void 0),this._label&&(this._label.remove(),this._label=void 0)}}class d extends c{constructor(e,t){super(e,t),this._actions=[],this._contextMenuProvider=t.contextMenuProvider,this.actions=t.actions||[],this.actionProvider=t.actionProvider,this.menuClassName=t.menuClassName||"",this.menuAsChild=!!t.menuAsChild}set menuOptions(e){this._menuOptions=e}get menuOptions(){return this._menuOptions}get actions(){return this.actionProvider?this.actionProvider.getActions():this._actions}set actions(e){this._actions=e}show(){super.show(),this.element.classList.add("active"),this._contextMenuProvider.showContextMenu({getAnchor:()=>this.element,getActions:()=>this.actions,getActionsContext:()=>this.menuOptions?this.menuOptions.context:null,getActionViewItem:e=>this.menuOptions&&this.menuOptions.actionViewItemProvider?this.menuOptions.actionViewItemProvider(e):void 0,getKeyBinding:e=>this.menuOptions&&this.menuOptions.getKeyBinding?this.menuOptions.getKeyBinding(e):void 0,getMenuClassName:()=>this.menuClassName,onHide:()=>this.onHide(),actionRunner:this.menuOptions?this.menuOptions.actionRunner:void 0,anchorAlignment:this.menuOptions?this.menuOptions.anchorAlignment:0,domForShadowRoot:this.menuAsChild?this.element:void 0})}hide(){super.hide()}onHide(){this.hide(),this.element.classList.remove("active")}}class h extends s.Y{constructor(e,t,i,n=Object.create(null)){super(null,e,n),this.actionItem=null,this._onDidChangeVisibility=this._register(new l.Q5),this.menuActionsOrProvider=t,this.contextMenuProvider=i,this.options=n,this.options.actionRunner&&(this.actionRunner=this.options.actionRunner)}render(e){this.actionItem=e;const t=Array.isArray(this.menuActionsOrProvider),i={contextMenuProvider:this.contextMenuProvider,labelRenderer:e=>{this.element=(0,n.R3)(e,(0,n.$)("a.action-label"));let t=[];return"string"==typeof this.options.classNames?t=this.options.classNames.split(/\s+/g).filter((e=>!!e)):this.options.classNames&&(t=this.options.classNames),t.find((e=>"icon"===e))||t.push("codicon"),this.element.classList.add(...t),this.element.setAttribute("role","button"),this.element.setAttribute("aria-haspopup","true"),this.element.setAttribute("aria-expanded","false"),this.element.title=this._action.label||"",this.element.ariaLabel=this._action.label||"",null},menuAsChild:this.options.menuAsChild,actions:t?this.menuActionsOrProvider:void 0,actionProvider:t?void 0:this.menuActionsOrProvider};if(this.dropdownMenu=this._register(new d(e,i)),this._register(this.dropdownMenu.onDidChangeVisibility((e=>{var t;null===(t=this.element)||void 0===t||t.setAttribute("aria-expanded",`${e}`),this._onDidChangeVisibility.fire(e)}))),this.dropdownMenu.menuOptions={actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,getKeyBinding:this.options.keybindingProvider,context:this._context},this.options.anchorAlignmentProvider){const e=this;this.dropdownMenu.menuOptions=Object.assign(Object.assign({},this.dropdownMenu.menuOptions),{get anchorAlignment(){return e.options.anchorAlignmentProvider()}})}this.updateTooltip(),this.updateEnabled()}getTooltip(){let e=null;return this.getAction().tooltip?e=this.getAction().tooltip:this.getAction().label&&(e=this.getAction().label),null!=e?e:void 0}setActionContext(e){super.setActionContext(e),this.dropdownMenu&&(this.dropdownMenu.menuOptions?this.dropdownMenu.menuOptions.context=e:this.dropdownMenu.menuOptions={context:e})}updateEnabled(){var e,t;const i=!this.getAction().enabled;null===(e=this.actionItem)||void 0===e||e.classList.toggle("disabled",i),null===(t=this.element)||void 0===t||t.classList.toggle("disabled",i)}}var u=i(8030),g=i(5976),p=i(1432),m=i(63580),f=i(84144),_=i(38819),v=i(5606),b=i(72065),C=i(91847),w=i(59422),y=i(87060),S=i(97781),L=i(92321),k=i(98401),x=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},D=function(e,t){return function(i,n){t(i,n,e)}},N=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};function E(e,t,i,n,o,s,r){const l=e.getActions(t);return function(e,t,i,n=(e=>"navigation"===e),o=Number.MAX_SAFE_INTEGER,s=(()=>!1),r=!1){let l,c;Array.isArray(t)?(l=t,c=t):(l=t.primary,c=t.secondary);const d=new Set;for(const[h,u]of e){let e;n(h)?(e=l,e.length>0&&r&&e.push(new a.Z0)):(e=c,e.length>0&&e.push(new a.Z0));for(let t of u){i&&(t=t instanceof f.U8&&t.alt?t.alt:t);const n=e.push(t);t instanceof a.wY&&d.add({group:h,action:t,index:n-1})}}for(const{group:a,action:h,index:u}of d){const e=n(a)?l:c,t=h.actions;(t.length<=1||e.length+t.length-2<=o)&&s(h,a,e.length)&&e.splice(u,1,...t)}if(l!==c&&l.length>o){const e=l.splice(o,l.length-o);c.unshift(...e,new a.Z0)}}(l,i,!1,"string"==typeof n?e=>e===n:n,o,s,r),function(e){const t=new g.SL;for(const[,i]of e)for(const e of i)t.add(e);return t}(l)}let I=class extends s.g{constructor(e,t,i,o,s,r,a){super(void 0,e,{icon:!(!e.class&&!e.item.icon),label:!e.class&&!e.item.icon,draggable:null==t?void 0:t.draggable,keybinding:null==t?void 0:t.keybinding,hoverDelegate:null==t?void 0:t.hoverDelegate}),this._keybindingService=i,this._notificationService=o,this._contextKeyService=s,this._themeService=r,this._contextMenuService=a,this._wantsAltCommand=!1,this._itemClassDispose=this._register(new g.XK),this._altKey=n._q.getInstance()}get _menuItemAction(){return this._action}get _commandAction(){return this._wantsAltCommand&&this._menuItemAction.alt||this._menuItemAction}onClick(e){return N(this,void 0,void 0,(function*(){e.preventDefault(),e.stopPropagation();try{yield this.actionRunner.run(this._commandAction,this._context)}catch(t){this._notificationService.error(t)}}))}render(e){super.render(e),e.classList.add("menu-entry"),this._updateItemClass(this._menuItemAction.item);let t=!1,i=this._altKey.keyStatus.altKey||(p.ED||p.IJ)&&this._altKey.keyStatus.shiftKey;const o=()=>{var e;const n=t&&i&&!!(null===(e=this._commandAction.alt)||void 0===e?void 0:e.enabled);n!==this._wantsAltCommand&&(this._wantsAltCommand=n,this.updateLabel(),this.updateTooltip(),this.updateClass())};this._menuItemAction.alt&&this._register(this._altKey.event((e=>{i=e.altKey||(p.ED||p.IJ)&&e.shiftKey,o()}))),this._register((0,n.nm)(e,"mouseleave",(e=>{t=!1,o()}))),this._register((0,n.nm)(e,"mouseenter",(e=>{t=!0,o()})))}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this._commandAction.label)}getTooltip(){var e;const t=this._keybindingService.lookupKeybinding(this._commandAction.id,this._contextKeyService),i=t&&t.getLabel(),n=this._commandAction.tooltip||this._commandAction.label;let o=i?(0,m.NC)("titleAndKb","{0} ({1})",n,i):n;if(!this._wantsAltCommand&&(null===(e=this._menuItemAction.alt)||void 0===e?void 0:e.enabled)){const e=this._menuItemAction.alt.tooltip||this._menuItemAction.alt.label,t=this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id,this._contextKeyService),i=t&&t.getLabel(),n=i?(0,m.NC)("titleAndKb","{0} ({1})",e,i):e;o=(0,m.NC)("titleAndKbAndAlt","{0}\n[{1}] {2}",o,u.xo.modifierLabels[p.OS].altKey,n)}return o}updateClass(){this.options.icon&&(this._commandAction!==this._menuItemAction?this._menuItemAction.alt&&this._updateItemClass(this._menuItemAction.alt.item):this._updateItemClass(this._menuItemAction.item))}_updateItemClass(e){var t;this._itemClassDispose.value=void 0;const{element:i,label:o}=this;if(!i||!o)return;const s=this._commandAction.checked&&(null===(t=e.toggled)||void 0===t?void 0:t.icon)?e.toggled.icon:e.icon;if(s)if(S.kS.isThemeIcon(s)){const e=S.kS.asClassNameArray(s);o.classList.add(...e),this._itemClassDispose.value=(0,g.OF)((()=>{o.classList.remove(...e)}))}else o.style.backgroundImage=(0,L._T)(this._themeService.getColorTheme().type)?(0,n.wY)(s.dark):(0,n.wY)(s.light),o.classList.add("icon"),this._itemClassDispose.value=(0,g.F8)((0,g.OF)((()=>{o.style.backgroundImage="",o.classList.remove("icon")})),this._themeService.onDidColorThemeChange((()=>{this.updateClass()})))}};I=x([D(2,C.d),D(3,w.lT),D(4,_.i6),D(5,S.XE),D(6,v.i)],I);let T=class extends h{constructor(e,t,i,n){var o,s;const r=Object.assign({},null!=t?t:Object.create(null),{menuAsChild:null!==(o=null==t?void 0:t.menuAsChild)&&void 0!==o&&o,classNames:null!==(s=null==t?void 0:t.classNames)&&void 0!==s?s:S.kS.isThemeIcon(e.item.icon)?S.kS.asClassName(e.item.icon):void 0});super(e,{getActions:()=>e.actions},i,r),this._contextMenuService=i,this._themeService=n}render(e){super.render(e),(0,k.p_)(this.element),e.classList.add("menu-entry");const t=this._action,{icon:i}=t.item;if(i&&!S.kS.isThemeIcon(i)){this.element.classList.add("icon");const e=()=>{this.element&&(this.element.style.backgroundImage=(0,L._T)(this._themeService.getColorTheme().type)?(0,n.wY)(i.dark):(0,n.wY)(i.light))};e(),this._register(this._themeService.onDidColorThemeChange((()=>{e()})))}}};T=x([D(2,v.i),D(3,S.XE)],T);let M=class extends s.Y{constructor(e,t,i,n,o,s,r,l){var c,d,u;let g;super(null,e),this._keybindingService=i,this._notificationService=n,this._contextMenuService=o,this._menuService=s,this._instaService=r,this._storageService=l,this._container=null,this._options=t,this._storageKey=`${e.item.submenu.id}_lastActionId`;const p=l.get(this._storageKey,1);p&&(g=e.actions.find((e=>p===e.id))),g||(g=e.actions[0]),this._defaultAction=this._instaService.createInstance(I,g,{keybinding:this._getDefaultActionKeybindingLabel(g)});const m=Object.assign({},null!=t?t:Object.create(null),{menuAsChild:null===(c=null==t?void 0:t.menuAsChild)||void 0===c||c,classNames:null!==(d=null==t?void 0:t.classNames)&&void 0!==d?d:["codicon","codicon-chevron-down"],actionRunner:null!==(u=null==t?void 0:t.actionRunner)&&void 0!==u?u:new a.Wi});this._dropdown=new h(e,e.actions,this._contextMenuService,m),this._dropdown.actionRunner.onDidRun((e=>{e.action instanceof f.U8&&this.update(e.action)}))}update(e){this._storageService.store(this._storageKey,e.id,1,0),this._defaultAction.dispose(),this._defaultAction=this._instaService.createInstance(I,e,{keybinding:this._getDefaultActionKeybindingLabel(e)}),this._defaultAction.actionRunner=new class extends a.Wi{runAction(e,t){return N(this,void 0,void 0,(function*(){yield e.run(void 0)}))}},this._container&&this._defaultAction.render((0,n.Ce)(this._container,(0,n.$)(".action-container")))}_getDefaultActionKeybindingLabel(e){var t;let i;if(null===(t=this._options)||void 0===t?void 0:t.renderKeybindingWithDefaultActionLabel){const t=this._keybindingService.lookupKeybinding(e.id);t&&(i=`(${t.getLabel()})`)}return i}setActionContext(e){super.setActionContext(e),this._defaultAction.setActionContext(e),this._dropdown.setActionContext(e)}render(e){this._container=e,super.render(this._container),this._container.classList.add("monaco-dropdown-with-default");const t=(0,n.$)(".action-container");this._defaultAction.render((0,n.R3)(this._container,t)),this._register((0,n.nm)(t,n.tw.KEY_DOWN,(e=>{const t=new o.y(e);t.equals(17)&&(this._defaultAction.element.tabIndex=-1,this._dropdown.focus(),t.stopPropagation())})));const i=(0,n.$)(".dropdown-action-container");this._dropdown.render((0,n.R3)(this._container,i)),this._register((0,n.nm)(i,n.tw.KEY_DOWN,(e=>{var t;const i=new o.y(e);i.equals(15)&&(this._defaultAction.element.tabIndex=0,this._dropdown.setFocusable(!1),null===(t=this._defaultAction.element)||void 0===t||t.focus(),i.stopPropagation())})))}focus(e){e?this._dropdown.focus():(this._defaultAction.element.tabIndex=0,this._defaultAction.element.focus())}blur(){this._defaultAction.element.tabIndex=-1,this._dropdown.blur(),this._container.blur()}setFocusable(e){e?this._defaultAction.element.tabIndex=0:(this._defaultAction.element.tabIndex=-1,this._dropdown.setFocusable(!1))}dispose(){this._defaultAction.dispose(),this._dropdown.dispose(),super.dispose()}};function A(e,t,i){return t instanceof f.U8?e.createInstance(I,t,i):t instanceof f.NZ?t.item.rememberDefaultAction?e.createInstance(M,t,i):e.createInstance(T,t,i):void 0}M=x([D(2,C.d),D(3,w.lT),D(4,v.i),D(5,f.co),D(6,b.TG),D(7,y.Uy)],M)},84144:(e,t,i)=>{"use strict";i.d(t,{BH:()=>v,NZ:()=>b,U8:()=>C,co:()=>_,eH:()=>f,vr:()=>m});var n=i(74741),o=i(73046),s=i(4669),r=i(53725),a=i(5976),l=i(91741),c=i(94565),d=i(38819),h=i(72065),u=i(97781),g=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},p=function(e,t){return function(i,n){t(i,n,e)}};function m(e){return void 0!==e.command}class f{constructor(e){if(f._instances.has(e))throw new TypeError(`MenuId with identifier '${e}' already exists. Use MenuId.for(ident) or a unique identifier`);f._instances.set(e,this),this.id=e}}f._instances=new Map,f.CommandPalette=new f("CommandPalette"),f.DebugBreakpointsContext=new f("DebugBreakpointsContext"),f.DebugCallStackContext=new f("DebugCallStackContext"),f.DebugConsoleContext=new f("DebugConsoleContext"),f.DebugVariablesContext=new f("DebugVariablesContext"),f.DebugWatchContext=new f("DebugWatchContext"),f.DebugToolBar=new f("DebugToolBar"),f.DebugToolBarStop=new f("DebugToolBarStop"),f.EditorContext=new f("EditorContext"),f.SimpleEditorContext=new f("SimpleEditorContext"),f.EditorContextCopy=new f("EditorContextCopy"),f.EditorContextPeek=new f("EditorContextPeek"),f.EditorContextShare=new f("EditorContextShare"),f.EditorTitle=new f("EditorTitle"),f.EditorTitleRun=new f("EditorTitleRun"),f.EditorTitleContext=new f("EditorTitleContext"),f.EmptyEditorGroup=new f("EmptyEditorGroup"),f.EmptyEditorGroupContext=new f("EmptyEditorGroupContext"),f.ExplorerContext=new f("ExplorerContext"),f.ExtensionContext=new f("ExtensionContext"),f.GlobalActivity=new f("GlobalActivity"),f.CommandCenter=new f("CommandCenter"),f.LayoutControlMenuSubmenu=new f("LayoutControlMenuSubmenu"),f.LayoutControlMenu=new f("LayoutControlMenu"),f.MenubarMainMenu=new f("MenubarMainMenu"),f.MenubarAppearanceMenu=new f("MenubarAppearanceMenu"),f.MenubarDebugMenu=new f("MenubarDebugMenu"),f.MenubarEditMenu=new f("MenubarEditMenu"),f.MenubarCopy=new f("MenubarCopy"),f.MenubarFileMenu=new f("MenubarFileMenu"),f.MenubarGoMenu=new f("MenubarGoMenu"),f.MenubarHelpMenu=new f("MenubarHelpMenu"),f.MenubarLayoutMenu=new f("MenubarLayoutMenu"),f.MenubarNewBreakpointMenu=new f("MenubarNewBreakpointMenu"),f.MenubarPanelAlignmentMenu=new f("MenubarPanelAlignmentMenu"),f.MenubarPanelPositionMenu=new f("MenubarPanelPositionMenu"),f.MenubarPreferencesMenu=new f("MenubarPreferencesMenu"),f.MenubarRecentMenu=new f("MenubarRecentMenu"),f.MenubarSelectionMenu=new f("MenubarSelectionMenu"),f.MenubarShare=new f("MenubarShare"),f.MenubarSwitchEditorMenu=new f("MenubarSwitchEditorMenu"),f.MenubarSwitchGroupMenu=new f("MenubarSwitchGroupMenu"),f.MenubarTerminalMenu=new f("MenubarTerminalMenu"),f.MenubarViewMenu=new f("MenubarViewMenu"),f.MenubarHomeMenu=new f("MenubarHomeMenu"),f.OpenEditorsContext=new f("OpenEditorsContext"),f.ProblemsPanelContext=new f("ProblemsPanelContext"),f.SCMChangeContext=new f("SCMChangeContext"),f.SCMResourceContext=new f("SCMResourceContext"),f.SCMResourceFolderContext=new f("SCMResourceFolderContext"),f.SCMResourceGroupContext=new f("SCMResourceGroupContext"),f.SCMSourceControl=new f("SCMSourceControl"),f.SCMTitle=new f("SCMTitle"),f.SearchContext=new f("SearchContext"),f.StatusBarWindowIndicatorMenu=new f("StatusBarWindowIndicatorMenu"),f.StatusBarRemoteIndicatorMenu=new f("StatusBarRemoteIndicatorMenu"),f.TestItem=new f("TestItem"),f.TestItemGutter=new f("TestItemGutter"),f.TestPeekElement=new f("TestPeekElement"),f.TestPeekTitle=new f("TestPeekTitle"),f.TouchBarContext=new f("TouchBarContext"),f.TitleBarContext=new f("TitleBarContext"),f.TitleBarTitleContext=new f("TitleBarTitleContext"),f.TunnelContext=new f("TunnelContext"),f.TunnelPrivacy=new f("TunnelPrivacy"),f.TunnelProtocol=new f("TunnelProtocol"),f.TunnelPortInline=new f("TunnelInline"),f.TunnelTitle=new f("TunnelTitle"),f.TunnelLocalAddressInline=new f("TunnelLocalAddressInline"),f.TunnelOriginInline=new f("TunnelOriginInline"),f.ViewItemContext=new f("ViewItemContext"),f.ViewContainerTitle=new f("ViewContainerTitle"),f.ViewContainerTitleContext=new f("ViewContainerTitleContext"),f.ViewTitle=new f("ViewTitle"),f.ViewTitleContext=new f("ViewTitleContext"),f.CommentThreadTitle=new f("CommentThreadTitle"),f.CommentThreadActions=new f("CommentThreadActions"),f.CommentTitle=new f("CommentTitle"),f.CommentActions=new f("CommentActions"),f.InteractiveToolbar=new f("InteractiveToolbar"),f.InteractiveCellTitle=new f("InteractiveCellTitle"),f.InteractiveCellDelete=new f("InteractiveCellDelete"),f.InteractiveCellExecute=new f("InteractiveCellExecute"),f.InteractiveInputExecute=new f("InteractiveInputExecute"),f.NotebookToolbar=new f("NotebookToolbar"),f.NotebookCellTitle=new f("NotebookCellTitle"),f.NotebookCellDelete=new f("NotebookCellDelete"),f.NotebookCellInsert=new f("NotebookCellInsert"),f.NotebookCellBetween=new f("NotebookCellBetween"),f.NotebookCellListTop=new f("NotebookCellTop"),f.NotebookCellExecute=new f("NotebookCellExecute"),f.NotebookCellExecutePrimary=new f("NotebookCellExecutePrimary"),f.NotebookDiffCellInputTitle=new f("NotebookDiffCellInputTitle"),f.NotebookDiffCellMetadataTitle=new f("NotebookDiffCellMetadataTitle"),f.NotebookDiffCellOutputsTitle=new f("NotebookDiffCellOutputsTitle"),f.NotebookOutputToolbar=new f("NotebookOutputToolbar"),f.NotebookEditorLayoutConfigure=new f("NotebookEditorLayoutConfigure"),f.NotebookKernelSource=new f("NotebookKernelSource"),f.BulkEditTitle=new f("BulkEditTitle"),f.BulkEditContext=new f("BulkEditContext"),f.TimelineItemContext=new f("TimelineItemContext"),f.TimelineTitle=new f("TimelineTitle"),f.TimelineTitleContext=new f("TimelineTitleContext"),f.TimelineFilterSubMenu=new f("TimelineFilterSubMenu"),f.AccountsContext=new f("AccountsContext"),f.PanelTitle=new f("PanelTitle"),f.AuxiliaryBarTitle=new f("AuxiliaryBarTitle"),f.TerminalInstanceContext=new f("TerminalInstanceContext"),f.TerminalEditorInstanceContext=new f("TerminalEditorInstanceContext"),f.TerminalNewDropdownContext=new f("TerminalNewDropdownContext"),f.TerminalTabContext=new f("TerminalTabContext"),f.TerminalTabEmptyAreaContext=new f("TerminalTabEmptyAreaContext"),f.TerminalInlineTabContext=new f("TerminalInlineTabContext"),f.WebviewContext=new f("WebviewContext"),f.InlineCompletionsActions=new f("InlineCompletionsActions"),f.NewFile=new f("NewFile"),f.MergeToolbar=new f("MergeToolbar"),f.MergeInput1Toolbar=new f("MergeToolbar1Toolbar"),f.MergeInput2Toolbar=new f("MergeToolbar2Toolbar");const _=(0,h.yh)("menuService"),v=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new s.Q5,this.onDidChangeMenu=this._onDidChangeMenu.event,this._commandPaletteChangeEvent={has:e=>e===f.CommandPalette}}addCommand(e){return this.addCommands(r.$.single(e))}addCommands(e){for(const t of e)this._commands.set(t.id,t);return this._onDidChangeMenu.fire(this._commandPaletteChangeEvent),(0,a.OF)((()=>{let t=!1;for(const i of e)t=this._commands.delete(i.id)||t;t&&this._onDidChangeMenu.fire(this._commandPaletteChangeEvent)}))}getCommand(e){return this._commands.get(e)}getCommands(){const e=new Map;return this._commands.forEach(((t,i)=>e.set(i,t))),e}appendMenuItem(e,t){return this.appendMenuItems(r.$.single({id:e,item:t}))}appendMenuItems(e){const t=new Set,i=new l.S;for(const{id:n,item:o}of e){let e=this._menuItems.get(n);e||(e=new l.S,this._menuItems.set(n,e)),i.push(e.push(o)),t.add(n)}return this._onDidChangeMenu.fire(t),(0,a.OF)((()=>{if(i.size>0){for(const e of i)e();this._onDidChangeMenu.fire(t),i.clear()}}))}getMenuItems(e){let t;return t=this._menuItems.has(e)?[...this._menuItems.get(e)]:[],e===f.CommandPalette&&this._appendImplicitItems(t),t}_appendImplicitItems(e){const t=new Set;for(const i of e)m(i)&&(t.add(i.command.id),i.alt&&t.add(i.alt.id));this._commands.forEach(((i,n)=>{t.has(n)||e.push({command:i})}))}};class b extends n.wY{constructor(e,t,i,n){super(`submenuitem.${e.submenu.id}`,"string"==typeof e.title?e.title:e.title.value,[],"submenu"),this.item=e,this._menuService=t,this._contextKeyService=i,this._options=n}get actions(){const e=[],t=this._menuService.createMenu(this.item.submenu,this._contextKeyService),i=t.getActions(this._options);t.dispose();for(const[,o]of i)o.length>0&&(e.push(...o),e.push(new n.Z0));return e.length&&e.pop(),e}}let C=class e{constructor(t,i,n,s,r,a){var l,c;if(this.hideActions=s,this._commandService=a,this.id=t.id,this.label=(null==n?void 0:n.renderShortTitle)&&t.shortTitle?"string"==typeof t.shortTitle?t.shortTitle:t.shortTitle.value:"string"==typeof t.title?t.title:t.title.value,this.tooltip=null!==(c="string"==typeof t.tooltip?t.tooltip:null===(l=t.tooltip)||void 0===l?void 0:l.value)&&void 0!==c?c:"",this.enabled=!t.precondition||r.contextMatchesRules(t.precondition),this.checked=void 0,t.toggled){const e=t.toggled.condition?t.toggled:{condition:t.toggled};this.checked=r.contextMatchesRules(e.condition),this.checked&&e.tooltip&&(this.tooltip="string"==typeof e.tooltip?e.tooltip:e.tooltip.value),e.title&&(this.label="string"==typeof e.title?e.title:e.title.value)}this.item=t,this.alt=i?new e(i,void 0,n,s,r,a):void 0,this._options=n,u.kS.isThemeIcon(t.icon)&&(this.class=o.dT.asClassName(t.icon))}dispose(){}run(...e){var t,i;let n=[];return(null===(t=this._options)||void 0===t?void 0:t.arg)&&(n=[...n,this._options.arg]),(null===(i=this._options)||void 0===i?void 0:i.shouldForwardArgs)&&(n=[...n,...e]),this._commandService.executeCommand(this.id,...n)}};C=g([p(4,d.i6),p(5,c.Hy)],C)},84972:(e,t,i)=>{"use strict";i.d(t,{p:()=>n});const n=(0,i(72065).yh)("clipboardService")},94565:(e,t,i)=>{"use strict";i.d(t,{Hy:()=>l,P0:()=>c});var n=i(4669),o=i(53725),s=i(5976),r=i(91741),a=i(98401);const l=(0,i(72065).yh)("commandService"),c=new class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new n.Q5,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(e,t){if(!e)throw new Error("invalid command");if("string"==typeof e){if(!t)throw new Error("invalid command");return this.registerCommand({id:e,handler:t})}if(e.description){const t=[];for(const n of e.description.args)t.push(n.constraint);const i=e.handler;e.handler=function(e,...n){return(0,a.D8)(n,t),i(e,...n)}}const{id:i}=e;let n=this._commands.get(i);n||(n=new r.S,this._commands.set(i,n));const o=n.unshift(e),l=(0,s.OF)((()=>{o();const e=this._commands.get(i);(null==e?void 0:e.isEmpty())&&this._commands.delete(i)}));return this._onDidRegisterCommand.fire(i),l}registerCommandAlias(e,t){return c.registerCommand(e,((e,...i)=>e.get(l).executeCommand(t,...i)))}getCommand(e){const t=this._commands.get(e);if(t&&!t.isEmpty())return o.$.first(t)}getCommands(){const e=new Map;for(const t of this._commands.keys()){const i=this.getCommand(t);i&&e.set(t,i)}return e}};c.registerCommand("noop",(()=>{}))},33108:(e,t,i)=>{"use strict";i.d(t,{KV:()=>s,Mt:()=>l,Od:()=>o,UI:()=>c,Ui:()=>n,xL:()=>r});const n=(0,i(72065).yh)("configurationService");function o(e,t){const i=Object.create(null);for(const n in e)s(i,n,e[n],t);return i}function s(e,t,i,n){const o=t.split("."),s=o.pop();let r=e;for(let l=0;l<o.length;l++){const e=o[l];let i=r[e];switch(typeof i){case"undefined":i=r[e]=Object.create(null);break;case"object":break;default:return void n(`Ignoring ${t} as ${o.slice(0,l+1).join(".")} is ${JSON.stringify(i)}`)}r=i}if("object"==typeof r&&null!==r)try{r[s]=i}catch(a){n(`Ignoring ${t} as ${o.join(".")} is ${JSON.stringify(r)}`)}else n(`Ignoring ${t} as ${o.join(".")} is ${JSON.stringify(r)}`)}function r(e,t){a(e,t.split("."))}function a(e,t){const i=t.shift();if(0!==t.length){if(-1!==Object.keys(e).indexOf(i)){const n=e[i];"object"!=typeof n||Array.isArray(n)||(a(n,t),0===Object.keys(n).length&&delete e[i])}}else delete e[i]}function l(e,t,i){const n=function(e,t){let i=e;for(const n of t){if("object"!=typeof i||null===i)return;i=i[n]}return i}(e,t.split("."));return void 0===n?i:n}function c(e){return e.replace(/[\[\]]/g,"")}},23193:(e,t,i)=>{"use strict";i.d(t,{IP:()=>d,eU:()=>y,ny:()=>S});var n=i(9488),o=i(4669),s=i(98401),r=i(63580),a=i(33108),l=i(81294),c=i(89872);const d={Configuration:"base.contributions.configuration"},h={properties:{},patternProperties:{}},u={properties:{},patternProperties:{}},g={properties:{},patternProperties:{}},p={properties:{},patternProperties:{}},m={properties:{},patternProperties:{}},f={properties:{},patternProperties:{}},_="vscode://schemas/settings/resourceLanguage",v=c.B.as(l.I.JSONContribution);const b="\\[([^\\]]+)\\]",C=new RegExp(b,"g"),w="^(\\[([^\\]]+)\\])+$",y=new RegExp(w);function S(e){const t=[];if(y.test(e)){let i=C.exec(e);for(;null==i?void 0:i.length;){const n=i[1].trim();n&&t.push(n),i=C.exec(e)}}return(0,n.EB)(t)}const L=new class{constructor(){this.overrideIdentifiers=new Set,this._onDidSchemaChange=new o.Q5,this._onDidUpdateConfiguration=new o.Q5,this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:r.NC("defaultLanguageConfigurationOverrides.title","Default Language Configuration Overrides"),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!1,errorMessage:"Unknown editor configuration setting",allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},v.registerSchema(_,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(e,t=!0){this.registerConfigurations([e],t)}registerConfigurations(e,t=!0){const i=this.doRegisterConfigurations(e,t);v.registerSchema(_,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:i})}registerDefaultConfigurations(e){var t;const i=[],n=[];for(const{overrides:o,source:l}of e)for(const e in o)if(i.push(e),y.test(e)){const i=this.configurationDefaultsOverrides.get(e),c=null!==(t=null==i?void 0:i.valuesSources)&&void 0!==t?t:new Map;if(l)for(const t of Object.keys(o[e]))c.set(t,l);const d=Object.assign(Object.assign({},(null==i?void 0:i.value)||{}),o[e]);this.configurationDefaultsOverrides.set(e,{source:l,value:d,valuesSources:c});const h=(0,a.UI)(e),u={type:"object",default:d,description:r.NC("defaultLanguageConfiguration.description","Configure settings to be overridden for the {0} language.",h),$ref:_,defaultDefaultValue:d,source:s.HD(l)?void 0:l,defaultValueSource:l};n.push(...S(e)),this.configurationProperties[e]=u,this.defaultLanguageConfigurationOverridesNode.properties[e]=u}else{this.configurationDefaultsOverrides.set(e,{value:o[e],source:l});const t=this.configurationProperties[e];t&&(this.updatePropertyDefaultValue(e,t),this.updateSchema(e,t))}this.registerOverrideIdentifiers(n),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:i,defaultsOverrides:!0})}registerOverrideIdentifiers(e){for(const t of e)this.overrideIdentifiers.add(t);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(e,t){const i=[];return e.forEach((e=>{i.push(...this.validateAndRegisterProperties(e,t,e.extensionInfo,e.restrictedProperties)),this.configurationContributors.push(e),this.registerJSONConfiguration(e)})),i}validateAndRegisterProperties(e,t=!0,i,n,o=3){var r;o=s.Jp(e.scope)?o:e.scope;const a=[],l=e.properties;if(l)for(const d in l){const e=l[d];t&&k(d,e)?delete l[d]:(e.source=i,e.defaultDefaultValue=l[d].default,this.updatePropertyDefaultValue(d,e),y.test(d)?e.scope=void 0:(e.scope=s.Jp(e.scope)?o:e.scope,e.restricted=s.Jp(e.restricted)?!!(null==n?void 0:n.includes(d)):e.restricted),!l[d].hasOwnProperty("included")||l[d].included?(this.configurationProperties[d]=l[d],(null===(r=l[d].policy)||void 0===r?void 0:r.name)&&this.policyConfigurations.set(l[d].policy.name,d),!l[d].deprecationMessage&&l[d].markdownDeprecationMessage&&(l[d].deprecationMessage=l[d].markdownDeprecationMessage),a.push(d)):(this.excludedConfigurationProperties[d]=l[d],delete l[d]))}const c=e.allOf;if(c)for(const s of c)a.push(...this.validateAndRegisterProperties(s,t,i,n,o));return a}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}registerJSONConfiguration(e){const t=e=>{const i=e.properties;if(i)for(const t in i)this.updateSchema(t,i[t]);const n=e.allOf;null==n||n.forEach(t)};t(e)}updateSchema(e,t){switch(h.properties[e]=t,t.scope){case 1:u.properties[e]=t;break;case 2:g.properties[e]=t;break;case 6:p.properties[e]=t;break;case 3:m.properties[e]=t;break;case 4:f.properties[e]=t;break;case 5:f.properties[e]=t,this.resourceLanguageSettingsSchema.properties[e]=t}}updateOverridePropertyPatternKey(){for(const e of this.overrideIdentifiers.values()){const t=`[${e}]`,i={type:"object",description:r.NC("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),errorMessage:r.NC("overrideSettings.errorMessage","This setting does not support per-language configuration."),$ref:_};this.updatePropertyDefaultValue(t,i),h.properties[t]=i,u.properties[t]=i,g.properties[t]=i,p.properties[t]=i,m.properties[t]=i,f.properties[t]=i}this._onDidSchemaChange.fire()}registerOverridePropertyPatternKey(){const e={type:"object",description:r.NC("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),errorMessage:r.NC("overrideSettings.errorMessage","This setting does not support per-language configuration."),$ref:_};h.patternProperties[w]=e,u.patternProperties[w]=e,g.patternProperties[w]=e,p.patternProperties[w]=e,m.patternProperties[w]=e,f.patternProperties[w]=e,this._onDidSchemaChange.fire()}updatePropertyDefaultValue(e,t){const i=this.configurationDefaultsOverrides.get(e);let n=null==i?void 0:i.value,o=null==i?void 0:i.source;s.o8(n)&&(n=t.defaultDefaultValue,o=void 0),s.o8(n)&&(n=function(e){switch(Array.isArray(e)?e[0]:e){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}(t.type)),t.default=n,t.defaultValueSource=o}};function k(e,t){var i,n,o,s;return e.trim()?y.test(e)?r.NC("config.property.languageDefault","Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.",e):void 0!==L.getConfigurationProperties()[e]?r.NC("config.property.duplicate","Cannot register '{0}'. This property is already registered.",e):(null===(i=t.policy)||void 0===i?void 0:i.name)&&void 0!==L.getPolicyConfigurations().get(null===(n=t.policy)||void 0===n?void 0:n.name)?r.NC("config.policy.duplicate","Cannot register '{0}'. The associated policy {1} is already registered with {2}.",e,null===(o=t.policy)||void 0===o?void 0:o.name,L.getPolicyConfigurations().get(null===(s=t.policy)||void 0===s?void 0:s.name)):null:r.NC("config.property.empty","Cannot register an empty property")}c.B.add(d.Configuration,L)},38819:(e,t,i)=>{"use strict";i.d(t,{Ao:()=>l,Eq:()=>T,Fb:()=>c,K8:()=>R,i6:()=>I,uy:()=>E});var n=i(1432),o=i(97295),s=i(72065);const r=new Map;r.set("false",!1),r.set("true",!0),r.set("isMac",n.dz),r.set("isLinux",n.IJ),r.set("isWindows",n.ED),r.set("isWeb",n.$L),r.set("isMacNative",n.dz&&!n.$L),r.set("isEdge",n.un),r.set("isFirefox",n.vU),r.set("isChrome",n.i7),r.set("isSafari",n.G6);const a=Object.prototype.hasOwnProperty;class l{static has(e){return g.create(e)}static equals(e,t){return p.create(e,t)}static regex(e,t){return L.create(e,t)}static not(e){return v.create(e)}static and(...e){return D.create(e,null)}static or(...e){return N.create(e,null,!0)}static deserialize(e,t=!1){if(e)return this._deserializeOrExpression(e,t)}static _deserializeOrExpression(e,t){const i=e.split("||");return N.create(i.map((e=>this._deserializeAndExpression(e,t))),null,!0)}static _deserializeAndExpression(e,t){const i=e.split("&&");return D.create(i.map((e=>this._deserializeOne(e,t))),null)}static _deserializeOne(e,t){if((e=e.trim()).indexOf("!=")>=0){const i=e.split("!=");return _.create(i[0].trim(),this._deserializeValue(i[1],t))}if(e.indexOf("==")>=0){const i=e.split("==");return p.create(i[0].trim(),this._deserializeValue(i[1],t))}if(e.indexOf("=~")>=0){const i=e.split("=~");return L.create(i[0].trim(),this._deserializeRegexValue(i[1],t))}if(e.indexOf(" not in ")>=0){const t=e.split(" not in ");return f.create(t[0].trim(),t[1].trim())}if(e.indexOf(" in ")>=0){const t=e.split(" in ");return m.create(t[0].trim(),t[1].trim())}if(/^[^<=>]+>=[^<=>]+$/.test(e)){const t=e.split(">=");return w.create(t[0].trim(),t[1].trim())}if(/^[^<=>]+>[^<=>]+$/.test(e)){const t=e.split(">");return C.create(t[0].trim(),t[1].trim())}if(/^[^<=>]+<=[^<=>]+$/.test(e)){const t=e.split("<=");return S.create(t[0].trim(),t[1].trim())}if(/^[^<=>]+<[^<=>]+$/.test(e)){const t=e.split("<");return y.create(t[0].trim(),t[1].trim())}return/^\!\s*/.test(e)?v.create(e.substr(1).trim()):g.create(e)}static _deserializeValue(e,t){if("true"===(e=e.trim()))return!0;if("false"===e)return!1;const i=/^'([^']*)'$/.exec(e);return i?i[1].trim():e}static _deserializeRegexValue(e,t){if((0,o.m5)(e)){if(t)throw new Error("missing regexp-value for =~-expression");return console.warn("missing regexp-value for =~-expression"),null}const i=e.indexOf("/"),n=e.lastIndexOf("/");if(i===n||i<0){if(t)throw new Error(`bad regexp-value '${e}', missing /-enclosure`);return console.warn(`bad regexp-value '${e}', missing /-enclosure`),null}const s=e.slice(i+1,n),r="i"===e[n+1]?"i":"";try{return new RegExp(s,r)}catch(a){if(t)throw new Error(`bad regexp-value '${e}', parse error: ${a}`);return console.warn(`bad regexp-value '${e}', parse error: ${a}`),null}}}function c(e,t){const i=e?e.substituteConstants():void 0,n=t?t.substituteConstants():void 0;return!i&&!n||!(!i||!n)&&i.equals(n)}function d(e,t){return e.cmp(t)}class h{constructor(){this.type=0}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!1}serialize(){return"false"}keys(){return[]}negate(){return u.INSTANCE}}h.INSTANCE=new h;class u{constructor(){this.type=1}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!0}serialize(){return"true"}keys(){return[]}negate(){return h.INSTANCE}}u.INSTANCE=new u;class g{constructor(e,t){this.key=e,this.negated=t,this.type=2}static create(e,t=null){const i=r.get(e);return"boolean"==typeof i?i?u.INSTANCE:h.INSTANCE:new g(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:M(this.key,e.key)}equals(e){return e.type===this.type&&this.key===e.key}substituteConstants(){const e=r.get(this.key);return"boolean"==typeof e?e?u.INSTANCE:h.INSTANCE:this}evaluate(e){return!!e.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return this.negated||(this.negated=v.create(this.key,this)),this.negated}}class p{constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=4}static create(e,t,i=null){if("boolean"==typeof t)return t?g.create(e,i):v.create(e,i);const n=r.get(e);if("boolean"==typeof n){return t===(n?"true":"false")?u.INSTANCE:h.INSTANCE}return new p(e,t,i)}cmp(e){return e.type!==this.type?this.type-e.type:A(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){const e=r.get(this.key);if("boolean"==typeof e){const t=e?"true":"false";return this.value===t?u.INSTANCE:h.INSTANCE}return this}evaluate(e){return e.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=_.create(this.key,this.value,this)),this.negated}}class m{constructor(e,t){this.key=e,this.valueKey=t,this.type=10,this.negated=null}static create(e,t){return new m(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:A(this.key,this.valueKey,e.key,e.valueKey)}equals(e){return e.type===this.type&&(this.key===e.key&&this.valueKey===e.valueKey)}substituteConstants(){return this}evaluate(e){const t=e.getValue(this.valueKey),i=e.getValue(this.key);return Array.isArray(t)?t.includes(i):"string"==typeof i&&"object"==typeof t&&null!==t&&a.call(t,i)}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}negate(){return this.negated||(this.negated=f.create(this.key,this.valueKey)),this.negated}}class f{constructor(e,t){this.key=e,this.valueKey=t,this.type=11,this._negated=m.create(e,t)}static create(e,t){return new f(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:this._negated.cmp(e._negated)}equals(e){return e.type===this.type&&this._negated.equals(e._negated)}substituteConstants(){return this}evaluate(e){return!this._negated.evaluate(e)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}negate(){return this._negated}}class _{constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=5}static create(e,t,i=null){if("boolean"==typeof t)return t?v.create(e,i):g.create(e,i);const n=r.get(e);if("boolean"==typeof n){return t===(n?"true":"false")?h.INSTANCE:u.INSTANCE}return new _(e,t,i)}cmp(e){return e.type!==this.type?this.type-e.type:A(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){const e=r.get(this.key);if("boolean"==typeof e){const t=e?"true":"false";return this.value===t?h.INSTANCE:u.INSTANCE}return this}evaluate(e){return e.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=p.create(this.key,this.value,this)),this.negated}}class v{constructor(e,t){this.key=e,this.negated=t,this.type=3}static create(e,t=null){const i=r.get(e);return"boolean"==typeof i?i?h.INSTANCE:u.INSTANCE:new v(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:M(this.key,e.key)}equals(e){return e.type===this.type&&this.key===e.key}substituteConstants(){const e=r.get(this.key);return"boolean"==typeof e?e?h.INSTANCE:u.INSTANCE:this}evaluate(e){return!e.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=g.create(this.key,this)),this.negated}}function b(e,t){if("string"==typeof e){const t=parseFloat(e);isNaN(t)||(e=t)}return"string"==typeof e||"number"==typeof e?t(e):h.INSTANCE}class C{constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=12}static create(e,t,i=null){return b(t,(t=>new C(e,t,i)))}cmp(e){return e.type!==this.type?this.type-e.type:A(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){return this}evaluate(e){return"string"!=typeof this.value&&parseFloat(e.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=S.create(this.key,this.value,this)),this.negated}}class w{constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=13}static create(e,t,i=null){return b(t,(t=>new w(e,t,i)))}cmp(e){return e.type!==this.type?this.type-e.type:A(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){return this}evaluate(e){return"string"!=typeof this.value&&parseFloat(e.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=y.create(this.key,this.value,this)),this.negated}}class y{constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=14}static create(e,t,i=null){return b(t,(t=>new y(e,t,i)))}cmp(e){return e.type!==this.type?this.type-e.type:A(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){return this}evaluate(e){return"string"!=typeof this.value&&parseFloat(e.getValue(this.key))<this.value}serialize(){return`${this.key} < ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=w.create(this.key,this.value,this)),this.negated}}class S{constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=15}static create(e,t,i=null){return b(t,(t=>new S(e,t,i)))}cmp(e){return e.type!==this.type?this.type-e.type:A(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){return this}evaluate(e){return"string"!=typeof this.value&&parseFloat(e.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=C.create(this.key,this.value,this)),this.negated}}class L{constructor(e,t){this.key=e,this.regexp=t,this.type=7,this.negated=null}static create(e,t){return new L(e,t)}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.key<e.key)return-1;if(this.key>e.key)return 1;const t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return t<i?-1:t>i?1:0}equals(e){if(e.type===this.type){const t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return this.key===e.key&&t===i}return!1}substituteConstants(){return this}evaluate(e){const t=e.getValue(this.key);return!!this.regexp&&this.regexp.test(t)}serialize(){const e=this.regexp?`/${this.regexp.source}/${this.regexp.ignoreCase?"i":""}`:"/invalid/";return`${this.key} =~ ${e}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=k.create(this)),this.negated}}class k{constructor(e){this._actual=e,this.type=8}static create(e){return new k(e)}cmp(e){return e.type!==this.type?this.type-e.type:this._actual.cmp(e._actual)}equals(e){return e.type===this.type&&this._actual.equals(e._actual)}substituteConstants(){return this}evaluate(e){return!this._actual.evaluate(e)}serialize(){throw new Error("Method not implemented.")}keys(){return this._actual.keys()}negate(){return this._actual}}function x(e){let t=null;for(let i=0,n=e.length;i<n;i++){const n=e[i].substituteConstants();if(e[i]!==n&&null===t){t=[];for(let n=0;n<i;n++)t[n]=e[n]}null!==t&&(t[i]=n)}return null===t?e:t}class D{constructor(e,t){this.expr=e,this.negated=t,this.type=6}static create(e,t){return D._normalizeArr(e,t)}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.length<e.expr.length)return-1;if(this.expr.length>e.expr.length)return 1;for(let t=0,i=this.expr.length;t<i;t++){const i=d(this.expr[t],e.expr[t]);if(0!==i)return i}return 0}equals(e){if(e.type===this.type){if(this.expr.length!==e.expr.length)return!1;for(let t=0,i=this.expr.length;t<i;t++)if(!this.expr[t].equals(e.expr[t]))return!1;return!0}return!1}substituteConstants(){const e=x(this.expr);return e===this.expr?this:D.create(e,this.negated)}evaluate(e){for(let t=0,i=this.expr.length;t<i;t++)if(!this.expr[t].evaluate(e))return!1;return!0}static _normalizeArr(e,t){const i=[];let n=!1;for(const o of e)if(o)if(1!==o.type){if(0===o.type)return h.INSTANCE;6!==o.type?i.push(o):i.push(...o.expr)}else n=!0;if(0===i.length&&n)return u.INSTANCE;if(0!==i.length){if(1===i.length)return i[0];i.sort(d);for(let e=1;e<i.length;e++)i[e-1].equals(i[e])&&(i.splice(e,1),e--);if(1===i.length)return i[0];for(;i.length>1;){const e=i[i.length-1];if(9!==e.type)break;i.pop();const t=i.pop(),n=0===i.length,o=N.create(e.expr.map((e=>D.create([e,t],null))),null,n);o&&(i.push(o),i.sort(d))}return 1===i.length?i[0]:new D(i,t)}}serialize(){return this.expr.map((e=>e.serialize())).join(" && ")}keys(){const e=[];for(const t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){const e=[];for(const t of this.expr)e.push(t.negate());this.negated=N.create(e,this,!0)}return this.negated}}class N{constructor(e,t){this.expr=e,this.negated=t,this.type=9}static create(e,t,i){return N._normalizeArr(e,t,i)}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.length<e.expr.length)return-1;if(this.expr.length>e.expr.length)return 1;for(let t=0,i=this.expr.length;t<i;t++){const i=d(this.expr[t],e.expr[t]);if(0!==i)return i}return 0}equals(e){if(e.type===this.type){if(this.expr.length!==e.expr.length)return!1;for(let t=0,i=this.expr.length;t<i;t++)if(!this.expr[t].equals(e.expr[t]))return!1;return!0}return!1}substituteConstants(){const e=x(this.expr);return e===this.expr?this:N.create(e,this.negated,!1)}evaluate(e){for(let t=0,i=this.expr.length;t<i;t++)if(this.expr[t].evaluate(e))return!0;return!1}static _normalizeArr(e,t,i){let n=[],o=!1;if(e){for(let t=0,i=e.length;t<i;t++){const i=e[t];if(i)if(0!==i.type){if(1===i.type)return u.INSTANCE;9!==i.type?n.push(i):n=n.concat(i.expr)}else o=!0}if(0===n.length&&o)return h.INSTANCE;n.sort(d)}if(0!==n.length){if(1===n.length)return n[0];for(let e=1;e<n.length;e++)n[e-1].equals(n[e])&&(n.splice(e,1),e--);if(1===n.length)return n[0];if(i){for(let e=0;e<n.length;e++)for(let t=e+1;t<n.length;t++)R(n[e],n[t])&&(n.splice(t,1),t--);if(1===n.length)return n[0]}return new N(n,t)}}serialize(){return this.expr.map((e=>e.serialize())).join(" || ")}keys(){const e=[];for(const t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){const e=[];for(const t of this.expr)e.push(t.negate());for(;e.length>1;){const t=e.shift(),i=e.shift(),n=[];for(const e of O(t))for(const t of O(i))n.push(D.create([e,t],null));const o=0===e.length;e.unshift(N.create(n,null,o))}this.negated=e[0]}return this.negated}}class E extends g{constructor(e,t,i){super(e,null),this._defaultValue=t,"object"==typeof i?E._info.push(Object.assign(Object.assign({},i),{key:e})):!0!==i&&E._info.push({key:e,description:i,type:null!=t?typeof t:void 0})}static all(){return E._info.values()}bindTo(e){return e.createKey(this.key,this._defaultValue)}getValue(e){return e.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(e){return p.create(this.key,e)}}E._info=[];const I=(0,s.yh)("contextKeyService"),T="setContext";function M(e,t){return e<t?-1:e>t?1:0}function A(e,t,i,n){return e<i?-1:e>i?1:t<n?-1:t>n?1:0}function R(e,t){if(6===t.type&&9!==e.type&&6!==e.type)for(const n of t.expr)if(e.equals(n))return!0;const i=O(e.negate()).concat(O(t));i.sort(d);for(let n=0;n<i.length;n++){const e=i[n].negate();for(let t=n+1;t<i.length;t++){const n=i[t];if(e.equals(n))return!0}}return!1}function O(e){return 9===e.type?e.expr:[e]}},39282:(e,t,i)=>{"use strict";i.d(t,{cv:()=>r,d0:()=>a});var n=i(1432),o=i(63580),s=i(38819);new s.uy("isMac",n.dz,(0,o.NC)("isMac","Whether the operating system is macOS")),new s.uy("isLinux",n.IJ,(0,o.NC)("isLinux","Whether the operating system is Linux"));const r=new s.uy("isWindows",n.ED,(0,o.NC)("isWindows","Whether the operating system is Windows")),a=(new s.uy("isWeb",n.$L,(0,o.NC)("isWeb","Whether the platform is a web browser")),new s.uy("isMacNative",n.dz&&!n.$L,(0,o.NC)("isMacNative","Whether the operating system is macOS on a non-browser platform")),new s.uy("isIOS",n.gn,(0,o.NC)("isIOS","Whether the operating system is iOS")),new s.uy("isDevelopment",!1,!0),new s.uy("productQualityType","",(0,o.NC)("productQualityType","Quality type of VS Code")),"inputFocus");new s.uy(a,!1,(0,o.NC)("inputFocus","Whether keyboard focus is inside an input box"))},5606:(e,t,i)=>{"use strict";i.d(t,{i:()=>s,u:()=>o});var n=i(72065);const o=(0,n.yh)("contextViewService"),s=(0,n.yh)("contextMenuService")},28820:(e,t,i)=>{"use strict";i.d(t,{S:()=>n});const n=(0,i(72065).yh)("dialogService")},37726:(e,t,i)=>{"use strict";i.d(t,{Yb:()=>D,Nq:()=>N,iX:()=>C});var n=i(3070),o=i(65321),s=i(82900),r=i(31338),a=i(93794),l=i(73046),c=i(4669),d=i(63580);const h=d.NC("defaultLabel","input"),u=d.NC("label.preserveCaseToggle","Preserve Case");class g extends s.Z{constructor(e){super({icon:l.lA.preserveCase,title:u+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class p extends a.${constructor(e,t,i,n){super(),this._showOptionButtons=i,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new c.Q5),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new c.Q5),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new c.Q5),this._onInput=this._register(new c.Q5),this._onKeyUp=this._register(new c.Q5),this._onPreserveCaseKeyDown=this._register(new c.Q5),this.onPreserveCaseKeyDown=this._onPreserveCaseKeyDown.event,this.contextViewProvider=t,this.placeholder=n.placeholder||"",this.validation=n.validation,this.label=n.label||h,this.inputActiveOptionBorder=n.inputActiveOptionBorder,this.inputActiveOptionForeground=n.inputActiveOptionForeground,this.inputActiveOptionBackground=n.inputActiveOptionBackground,this.inputBackground=n.inputBackground,this.inputForeground=n.inputForeground,this.inputBorder=n.inputBorder,this.inputValidationInfoBorder=n.inputValidationInfoBorder,this.inputValidationInfoBackground=n.inputValidationInfoBackground,this.inputValidationInfoForeground=n.inputValidationInfoForeground,this.inputValidationWarningBorder=n.inputValidationWarningBorder,this.inputValidationWarningBackground=n.inputValidationWarningBackground,this.inputValidationWarningForeground=n.inputValidationWarningForeground,this.inputValidationErrorBorder=n.inputValidationErrorBorder,this.inputValidationErrorBackground=n.inputValidationErrorBackground,this.inputValidationErrorForeground=n.inputValidationErrorForeground;const s=n.appendPreserveCaseLabel||"",a=n.history||[],l=!!n.flexibleHeight,d=!!n.flexibleWidth,u=n.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new r.p(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder,history:a,showHistoryHint:n.showHistoryHint,flexibleHeight:l,flexibleWidth:d,flexibleMaxHeight:u})),this.preserveCase=this._register(new g({appendTitle:s,isChecked:!1,inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground})),this._register(this.preserveCase.onChange((e=>{this._onDidOptionChange.fire(e),!e&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()}))),this._register(this.preserveCase.onKeyDown((e=>{this._onPreserveCaseKeyDown.fire(e)}))),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;const p=[this.preserveCase.domNode];this.onkeydown(this.domNode,(e=>{if(e.equals(15)||e.equals(17)||e.equals(9)){const t=p.indexOf(document.activeElement);if(t>=0){let i=-1;e.equals(17)?i=(t+1)%p.length:e.equals(15)&&(i=0===t?p.length-1:t-1),e.equals(9)?(p[t].blur(),this.inputBox.focus()):i>=0&&p[i].focus(),o.zB.stop(e,!0)}}}));const m=document.createElement("div");m.className="controls",m.style.display=this._showOptionButtons?"block":"none",m.appendChild(this.preserveCase.domNode),this.domNode.appendChild(m),null==e||e.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,(e=>this._onKeyDown.fire(e))),this.onkeyup(this.inputBox.inputElement,(e=>this._onKeyUp.fire(e))),this.oninput(this.inputBox.inputElement,(e=>this._onInput.fire())),this.onmousedown(this.inputBox.inputElement,(e=>this._onMouseDown.fire(e)))}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(e){e?this.enable():this.disable()}style(e){this.inputActiveOptionBorder=e.inputActiveOptionBorder,this.inputActiveOptionForeground=e.inputActiveOptionForeground,this.inputActiveOptionBackground=e.inputActiveOptionBackground,this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()}applyStyles(){if(this.domNode){const e={inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionForeground:this.inputActiveOptionForeground,inputActiveOptionBackground:this.inputActiveOptionBackground};this.preserveCase.style(e);const t={inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder};this.inputBox.style(t)}}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(e){this.preserveCase.checked=e}focusOnPreserve(){this.preserveCase.focus()}validate(){this.inputBox&&this.inputBox.validate()}set width(e){this.inputBox.paddingRight=this.cachedOptionsWidth,this.inputBox.width=e,this.domNode.style.width=e+"px"}dispose(){super.dispose()}}var m=i(38819),f=i(49989),_=i(5976),v=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},b=function(e,t){return function(i,n){t(i,n,e)}};const C=new m.uy("suggestWidgetVisible",!1,(0,d.NC)("suggestWidgetVisible","Whether suggestion are visible")),w="historyNavigationWidgetFocus",y="historyNavigationForwardsEnabled",S="historyNavigationBackwardsEnabled";let L;const k=[];function x(e,t){if(k.includes(t))throw new Error("Cannot register the same widget multiple times");k.push(t);const i=new _.SL,n=i.add(e.createScoped(t.element)),o=new m.uy(w,!1).bindTo(n),s=new m.uy(y,!0).bindTo(n),r=new m.uy(S,!0).bindTo(n),a=()=>{o.set(!0),L=t},l=()=>{o.set(!1),L===t&&(L=void 0)};return t.element===document.activeElement&&a(),i.add(t.onDidFocus((()=>a()))),i.add(t.onDidBlur((()=>l()))),i.add((0,_.OF)((()=>{k.splice(k.indexOf(t),1),l()}))),{scopedContextKeyService:n,historyNavigationForwardsEnablement:s,historyNavigationBackwardsEnablement:r,dispose(){i.dispose()}}}let D=class extends n.V{constructor(e,t,i,n,o=!1){super(e,t,o,i),this._register(x(n,this.inputBox))}};D=v([b(3,m.i6)],D);let N=class extends p{constructor(e,t,i,n,o=!1){super(e,t,o,i),this._register(x(n,this.inputBox))}};N=v([b(3,m.i6)],N),f.W.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:m.Ao.and(m.Ao.has(w),m.Ao.equals(S,!0),C.isEqualTo(!1)),primary:16,secondary:[528],handler:e=>{L&&L.showPreviousValue()}}),f.W.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:m.Ao.and(m.Ao.has(w),m.Ao.equals(y,!0),C.isEqualTo(!1)),primary:18,secondary:[530],handler:e=>{L&&L.showNextValue()}})},97108:(e,t,i)=>{"use strict";i.d(t,{M:()=>n});class n{constructor(e,t=[],i=!1){this.ctor=e,this.staticArguments=t,this.supportsDelayedInstantiation=i}}},65026:(e,t,i)=>{"use strict";i.d(t,{d:()=>r,z:()=>s});var n=i(97108);const o=[];function s(e,t,i){t instanceof n.M||(t=new n.M(t,[],i)),o.push([e,t])}function r(){return o}},72065:(e,t,i)=>{"use strict";var n;i.d(t,{I8:()=>n,TG:()=>o,yh:()=>r}),function(e){e.serviceIds=new Map,e.DI_TARGET="$di$target",e.DI_DEPENDENCIES="$di$dependencies",e.getServiceDependencies=function(t){return t[e.DI_DEPENDENCIES]||[]}}(n||(n={}));const o=r("instantiationService");function s(e,t,i){t[n.DI_TARGET]===t?t[n.DI_DEPENDENCIES].push({id:e,index:i}):(t[n.DI_DEPENDENCIES]=[{id:e,index:i}],t[n.DI_TARGET]=t)}function r(e){if(n.serviceIds.has(e))return n.serviceIds.get(e);const t=function(e,i,n){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");s(t,e,n)};return t.toString=()=>e,n.serviceIds.set(e,t),t}},60972:(e,t,i)=>{"use strict";i.d(t,{y:()=>n});class n{constructor(...e){this._entries=new Map;for(const[t,i]of e)this.set(t,i)}set(e,t){const i=this._entries.get(e);return this._entries.set(e,t),i}get(e){return this._entries.get(e)}}},81294:(e,t,i)=>{"use strict";i.d(t,{I:()=>s});var n=i(4669),o=i(89872);const s={JSONContribution:"base.contributions.json"};const r=new class{constructor(){this._onDidChangeSchema=new n.Q5,this.schemasById={}}registerSchema(e,t){var i;this.schemasById[(i=e,i.length>0&&"#"===i.charAt(i.length-1)?i.substring(0,i.length-1):i)]=t,this._onDidChangeSchema.fire(e)}notifySchemaChanged(e){this._onDidChangeSchema.fire(e)}};o.B.add(s.JSONContribution,r)},91847:(e,t,i)=>{"use strict";i.d(t,{d:()=>n});const n=(0,i(72065).yh)("keybindingService")},49989:(e,t,i)=>{"use strict";i.d(t,{W:()=>l});var n=i(8313),o=i(1432),s=i(94565),r=i(89872);class a{constructor(){this._coreKeybindings=[],this._extensionKeybindings=[],this._cachedMergedKeybindings=null}static bindToCurrentPlatform(e){if(1===o.OS){if(e&&e.win)return e.win}else if(2===o.OS){if(e&&e.mac)return e.mac}else if(e&&e.linux)return e.linux;return e}registerKeybindingRule(e){const t=a.bindToCurrentPlatform(e);if(t&&t.primary){const i=(0,n.gm)(t.primary,o.OS);i&&this._registerDefaultKeybinding(i,e.id,e.args,e.weight,0,e.when)}if(t&&Array.isArray(t.secondary))for(let i=0,s=t.secondary.length;i<s;i++){const s=t.secondary[i],r=(0,n.gm)(s,o.OS);r&&this._registerDefaultKeybinding(r,e.id,e.args,e.weight,-i-1,e.when)}}registerCommandAndKeybindingRule(e){this.registerKeybindingRule(e),s.P0.registerCommand(e)}static _mightProduceChar(e){return e>=21&&e<=30||(e>=31&&e<=56||(80===e||81===e||82===e||83===e||84===e||85===e||86===e||110===e||111===e||87===e||88===e||89===e||90===e||91===e||92===e))}_assertNoCtrlAlt(e,t){e.ctrlKey&&e.altKey&&!e.metaKey&&a._mightProduceChar(e.keyCode)&&console.warn("Ctrl+Alt+ keybindings should not be used by default under Windows. Offender: ",e," for ",t)}_registerDefaultKeybinding(e,t,i,n,s,r){1===o.OS&&this._assertNoCtrlAlt(e.parts[0],t),this._coreKeybindings.push({keybinding:e.parts,command:t,commandArgs:i,when:r,weight1:n,weight2:s,extensionId:null,isBuiltinExtension:!1}),this._cachedMergedKeybindings=null}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=[].concat(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(c)),this._cachedMergedKeybindings.slice(0)}}const l=new a;function c(e,t){return e.weight1!==t.weight1?e.weight1-t.weight1:e.command<t.command?-1:e.command>t.command?1:e.weight2-t.weight2}r.B.add("platform.keybindingsRegistry",l)},44349:(e,t,i)=>{"use strict";i.d(t,{e:()=>n});const n=(0,i(72065).yh)("labelService")},74615:(e,t,i)=>{"use strict";i.d(t,{Lw:()=>We,XN:()=>He,ls:()=>Et,ev:()=>vt,CQ:()=>Ue,PS:()=>Ze,uJ:()=>Je});var n=i(65321),o=i(9488),s=i(71050),r=i(4669),a=i(5976),l=i(69047);class c{constructor(e,t){this.renderer=e,this.modelProvider=t}get templateId(){return this.renderer.templateId}renderTemplate(e){return{data:this.renderer.renderTemplate(e),disposable:a.JT.None}}renderElement(e,t,i,n){if(i.disposable&&i.disposable.dispose(),!i.data)return;const o=this.modelProvider();if(o.isResolved(e))return this.renderer.renderElement(o.get(e),e,i.data,n);const r=new s.A,a=o.resolve(e,r.token);i.disposable={dispose:()=>r.cancel()},this.renderer.renderPlaceholder(e,i.data),a.then((t=>this.renderer.renderElement(t,e,i.data,n)))}disposeTemplate(e){e.disposable&&(e.disposable.dispose(),e.disposable=void 0),e.data&&(this.renderer.disposeTemplate(e.data),e.data=void 0)}}class d{constructor(e,t){this.modelProvider=e,this.accessibilityProvider=t}getWidgetAriaLabel(){return this.accessibilityProvider.getWidgetAriaLabel()}getAriaLabel(e){const t=this.modelProvider();return t.isResolved(e)?this.accessibilityProvider.getAriaLabel(t.get(e)):null}}var h=i(23937);class u{constructor(e,t,i){this.columns=e,this.getColumnSize=i,this.templateId=u.TemplateId,this.renderedTemplates=new Set;const n=new Map(t.map((e=>[e.templateId,e])));this.renderers=[];for(const o of e){const e=n.get(o.templateId);if(!e)throw new Error(`Table cell renderer for template id ${o.templateId} not found.`);this.renderers.push(e)}}renderTemplate(e){const t=(0,n.R3)(e,(0,n.$)(".monaco-table-tr")),i=[],o=[];for(let r=0;r<this.columns.length;r++){const e=this.renderers[r],s=(0,n.R3)(t,(0,n.$)(".monaco-table-td",{"data-col-index":r}));s.style.width=`${this.getColumnSize(r)}px`,i.push(s),o.push(e.renderTemplate(s))}const s={container:e,cellContainers:i,cellTemplateData:o};return this.renderedTemplates.add(s),s}renderElement(e,t,i,n){for(let o=0;o<this.columns.length;o++){const s=this.columns[o].project(e);this.renderers[o].renderElement(s,t,i.cellTemplateData[o],n)}}disposeElement(e,t,i,n){for(let o=0;o<this.columns.length;o++){const s=this.renderers[o];if(s.disposeElement){const r=this.columns[o].project(e);s.disposeElement(r,t,i.cellTemplateData[o],n)}}}disposeTemplate(e){for(let t=0;t<this.columns.length;t++){this.renderers[t].disposeTemplate(e.cellTemplateData[t])}(0,n.PO)(e.container),this.renderedTemplates.delete(e)}layoutColumn(e,t){for(const{cellContainers:i}of this.renderedTemplates)i[e].style.width=`${t}px`}}u.TemplateId="row";class g{constructor(e,t){this.column=e,this.index=t,this._onDidLayout=new r.Q5,this.onDidLayout=this._onDidLayout.event,this.element=(0,n.$)(".monaco-table-th",{"data-col-index":t,title:e.tooltip},e.label)}get minimumSize(){var e;return null!==(e=this.column.minimumWidth)&&void 0!==e?e:120}get maximumSize(){var e;return null!==(e=this.column.maximumWidth)&&void 0!==e?e:Number.POSITIVE_INFINITY}get onDidChange(){var e;return null!==(e=this.column.onDidChangeWidthConstraints)&&void 0!==e?e:r.ju.None}layout(e){this._onDidLayout.fire([this.index,e])}}class p{constructor(e,t,i,o,s,c){this.virtualDelegate=i,this.domId="table_id_"+ ++p.InstanceCount,this.disposables=new a.SL,this.cachedWidth=0,this.cachedHeight=0,this.domNode=(0,n.R3)(t,(0,n.$)(`.monaco-table.${this.domId}`));const d=o.map(((e,t)=>new g(e,t))),m={size:d.reduce(((e,t)=>e+t.column.weight),0),views:d.map((e=>({size:e.column.weight,view:e})))};this.splitview=this.disposables.add(new h.z(this.domNode,{orientation:1,scrollbarVisibility:2,getSashOrthogonalSize:()=>this.cachedHeight,descriptor:m})),this.splitview.el.style.height=`${i.headerRowHeight}px`,this.splitview.el.style.lineHeight=`${i.headerRowHeight}px`;const f=new u(o,s,(e=>this.splitview.getViewSize(e)));var _;this.list=this.disposables.add(new l.aV(e,this.domNode,(_=i,{getHeight:e=>_.getHeight(e),getTemplateId:()=>u.TemplateId}),[f],c)),r.ju.any(...d.map((e=>e.onDidLayout)))((([e,t])=>f.layoutColumn(e,t)),null,this.disposables),this.splitview.onDidSashReset((e=>{const t=o.reduce(((e,t)=>e+t.weight),0),i=o[e].weight/t*this.cachedWidth;this.splitview.resizeView(e,i)}),null,this.disposables),this.styleElement=(0,n.dS)(this.domNode),this.style({})}get onDidChangeFocus(){return this.list.onDidChangeFocus}get onDidChangeSelection(){return this.list.onDidChangeSelection}get onMouseDblClick(){return this.list.onMouseDblClick}get onPointer(){return this.list.onPointer}get onDidFocus(){return this.list.onDidFocus}get onDidDispose(){return this.list.onDidDispose}updateOptions(e){this.list.updateOptions(e)}splice(e,t,i=[]){this.list.splice(e,t,i)}getHTMLElement(){return this.domNode}style(e){const t=[];t.push(`.monaco-table.${this.domId} > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\ttop: ${this.virtualDelegate.headerRowHeight+1}px;\n\t\t\theight: calc(100% - ${this.virtualDelegate.headerRowHeight}px);\n\t\t}`),this.styleElement.textContent=t.join("\n"),this.list.style(e)}getSelectedElements(){return this.list.getSelectedElements()}getSelection(){return this.list.getSelection()}getFocus(){return this.list.getFocus()}dispose(){this.disposables.dispose()}}p.InstanceCount=0;i(4850);var m,f=i(59069),_=(i(90317),i(3070),i(72010));i(82900);!function(e){e[e.Unknown=0]="Unknown",e[e.Twistie=1]="Twistie",e[e.Element=2]="Element",e[e.Filter=3]="Filter"}(m||(m={}));class v extends Error{constructor(e,t){super(`TreeError [${e}] ${t}`)}}class b{constructor(e){this.fn=e,this._map=new WeakMap}map(e){let t=this._map.get(e);return t||(t=this.fn(e),this._map.set(e,t)),t}}var C=i(15393),w=i(22571),y=i(53725);function S(e){return"object"==typeof e&&"visibility"in e&&"data"in e}function L(e){switch(e){case!0:return 1;case!1:return 0;default:return e}}function k(e){return"boolean"==typeof e.collapsible}class x{constructor(e,t,i,n={}){this.user=e,this.list=t,this.rootRef=[],this.eventBufferer=new r.E7,this._onDidChangeCollapseState=new r.Q5,this.onDidChangeCollapseState=this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event),this._onDidChangeRenderNodeCount=new r.Q5,this.onDidChangeRenderNodeCount=this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event),this._onDidSplice=new r.Q5,this.onDidSplice=this._onDidSplice.event,this.refilterDelayer=new C.vp(C.ne),this.collapseByDefault=void 0!==n.collapseByDefault&&n.collapseByDefault,this.filter=n.filter,this.autoExpandSingleChildren=void 0!==n.autoExpandSingleChildren&&n.autoExpandSingleChildren,this.root={parent:void 0,element:i,children:[],depth:0,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:!1,collapsed:!1,renderNodeCount:0,visibility:1,visible:!0,filterData:void 0}}splice(e,t,i=y.$.empty(),n={}){if(0===e.length)throw new v(this.user,"Invalid tree location");n.diffIdentityProvider?this.spliceSmart(n.diffIdentityProvider,e,t,i,n):this.spliceSimple(e,t,i,n)}spliceSmart(e,t,i,n,o,s){var r;void 0===n&&(n=y.$.empty()),void 0===s&&(s=null!==(r=o.diffDepth)&&void 0!==r?r:0);const{parentNode:a}=this.getParentNodeWithListIndex(t);if(!a.lastDiffIds)return this.spliceSimple(t,i,n,o);const l=[...n],c=t[t.length-1],d=new w.Hs({getElements:()=>a.lastDiffIds},{getElements:()=>[...a.children.slice(0,c),...l,...a.children.slice(c+i)].map((t=>e.getId(t.element).toString()))}).ComputeDiff(!1);if(d.quitEarly)return a.lastDiffIds=void 0,this.spliceSimple(t,i,l,o);const h=t.slice(0,-1),u=(t,i,n)=>{if(s>0)for(let r=0;r<n;r++)t--,i--,this.spliceSmart(e,[...h,t,0],Number.MAX_SAFE_INTEGER,l[i].children,o,s-1)};let g=Math.min(a.children.length,c+i),p=l.length;for(const m of d.changes.sort(((e,t)=>t.originalStart-e.originalStart)))u(g,p,g-(m.originalStart+m.originalLength)),g=m.originalStart,p=m.modifiedStart-c,this.spliceSimple([...h,g],m.originalLength,y.$.slice(l,p,p+m.modifiedLength),o);u(g,p,g)}spliceSimple(e,t,i=y.$.empty(),{onDidCreateNode:n,onDidDeleteNode:s,diffIdentityProvider:r}){const{parentNode:a,listIndex:l,revealed:c,visible:d}=this.getParentNodeWithListIndex(e),h=[],u=y.$.map(i,(e=>this.createTreeNode(e,a,a.visible?1:0,c,h,n))),g=e[e.length-1],p=a.children.length>0;let m=0;for(let o=g;o>=0&&o<a.children.length;o--){const e=a.children[o];if(e.visible){m=e.visibleChildIndex;break}}const f=[];let _=0,v=0;for(const o of u)f.push(o),v+=o.renderNodeCount,o.visible&&(o.visibleChildIndex=m+_++);const b=(0,o.db)(a.children,g,t,f);r?a.lastDiffIds?(0,o.db)(a.lastDiffIds,g,t,f.map((e=>r.getId(e.element).toString()))):a.lastDiffIds=a.children.map((e=>r.getId(e.element).toString())):a.lastDiffIds=void 0;let C=0;for(const o of b)o.visible&&C++;if(0!==C)for(let o=g+f.length;o<a.children.length;o++){const e=a.children[o];e.visible&&(e.visibleChildIndex-=C)}if(a.visibleChildrenCount+=_-C,c&&d){const e=b.reduce(((e,t)=>e+(t.visible?t.renderNodeCount:0)),0);this._updateAncestorsRenderNodeCount(a,v-e),this.list.splice(l,e,h)}if(b.length>0&&s){const e=t=>{s(t),t.children.forEach(e)};b.forEach(e)}this._onDidSplice.fire({insertedNodes:f,deletedNodes:b});const w=a.children.length>0;p!==w&&this.setCollapsible(e.slice(0,-1),w);let S=a;for(;S;){if(2===S.visibility){this.refilterDelayer.trigger((()=>this.refilter()));break}S=S.parent}}rerender(e){if(0===e.length)throw new v(this.user,"Invalid tree location");const{node:t,listIndex:i,revealed:n}=this.getTreeNodeWithListIndex(e);t.visible&&n&&this.list.splice(i,1,[t])}has(e){return this.hasTreeNode(e)}getListIndex(e){const{listIndex:t,visible:i,revealed:n}=this.getTreeNodeWithListIndex(e);return i&&n?t:-1}getListRenderCount(e){return this.getTreeNode(e).renderNodeCount}isCollapsible(e){return this.getTreeNode(e).collapsible}setCollapsible(e,t){const i=this.getTreeNode(e);void 0===t&&(t=!i.collapsible);const n={collapsible:t};return this.eventBufferer.bufferEvents((()=>this._setCollapseState(e,n)))}isCollapsed(e){return this.getTreeNode(e).collapsed}setCollapsed(e,t,i){const n=this.getTreeNode(e);void 0===t&&(t=!n.collapsed);const o={collapsed:t,recursive:i||!1};return this.eventBufferer.bufferEvents((()=>this._setCollapseState(e,o)))}_setCollapseState(e,t){const{node:i,listIndex:n,revealed:o}=this.getTreeNodeWithListIndex(e),s=this._setListNodeCollapseState(i,n,o,t);if(i!==this.root&&this.autoExpandSingleChildren&&s&&!k(t)&&i.collapsible&&!i.collapsed&&!t.recursive){let n=-1;for(let e=0;e<i.children.length;e++){if(i.children[e].visible){if(n>-1){n=-1;break}n=e}}n>-1&&this._setCollapseState([...e,n],t)}return s}_setListNodeCollapseState(e,t,i,n){const o=this._setNodeCollapseState(e,n,!1);if(!i||!e.visible||!o)return o;const s=e.renderNodeCount,r=this.updateNodeAfterCollapseChange(e),a=s-(-1===t?0:1);return this.list.splice(t+1,a,r.slice(1)),o}_setNodeCollapseState(e,t,i){let n;if(e===this.root?n=!1:(k(t)?(n=e.collapsible!==t.collapsible,e.collapsible=t.collapsible):e.collapsible?(n=e.collapsed!==t.collapsed,e.collapsed=t.collapsed):n=!1,n&&this._onDidChangeCollapseState.fire({node:e,deep:i})),!k(t)&&t.recursive)for(const o of e.children)n=this._setNodeCollapseState(o,t,!0)||n;return n}expandTo(e){this.eventBufferer.bufferEvents((()=>{let t=this.getTreeNode(e);for(;t.parent;)t=t.parent,e=e.slice(0,e.length-1),t.collapsed&&this._setCollapseState(e,{collapsed:!1,recursive:!1})}))}refilter(){const e=this.root.renderNodeCount,t=this.updateNodeAfterFilterChange(this.root);this.list.splice(0,e,t),this.refilterDelayer.cancel()}createTreeNode(e,t,i,n,o,s){const r={parent:t,element:e.element,children:[],depth:t.depth+1,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:"boolean"==typeof e.collapsible?e.collapsible:void 0!==e.collapsed,collapsed:void 0===e.collapsed?this.collapseByDefault:e.collapsed,renderNodeCount:1,visibility:1,visible:!0,filterData:void 0},a=this._filterNode(r,i);r.visibility=a,n&&o.push(r);const l=e.children||y.$.empty(),c=n&&0!==a&&!r.collapsed,d=y.$.map(l,(e=>this.createTreeNode(e,r,a,c,o,s)));let h=0,u=1;for(const g of d)r.children.push(g),u+=g.renderNodeCount,g.visible&&(g.visibleChildIndex=h++);return r.collapsible=r.collapsible||r.children.length>0,r.visibleChildrenCount=h,r.visible=2===a?h>0:1===a,r.visible?r.collapsed||(r.renderNodeCount=u):(r.renderNodeCount=0,n&&o.pop()),null==s||s(r),r}updateNodeAfterCollapseChange(e){const t=e.renderNodeCount,i=[];return this._updateNodeAfterCollapseChange(e,i),this._updateAncestorsRenderNodeCount(e.parent,i.length-t),i}_updateNodeAfterCollapseChange(e,t){if(!1===e.visible)return 0;if(t.push(e),e.renderNodeCount=1,!e.collapsed)for(const i of e.children)e.renderNodeCount+=this._updateNodeAfterCollapseChange(i,t);return this._onDidChangeRenderNodeCount.fire(e),e.renderNodeCount}updateNodeAfterFilterChange(e){const t=e.renderNodeCount,i=[];return this._updateNodeAfterFilterChange(e,e.visible?1:0,i),this._updateAncestorsRenderNodeCount(e.parent,i.length-t),i}_updateNodeAfterFilterChange(e,t,i,n=!0){let o;if(e!==this.root){if(o=this._filterNode(e,t),0===o)return e.visible=!1,e.renderNodeCount=0,!1;n&&i.push(e)}const s=i.length;e.renderNodeCount=e===this.root?0:1;let r=!1;if(e.collapsed&&0===o)e.visibleChildrenCount=0;else{let t=0;for(const s of e.children)r=this._updateNodeAfterFilterChange(s,o,i,n&&!e.collapsed)||r,s.visible&&(s.visibleChildIndex=t++);e.visibleChildrenCount=t}return e!==this.root&&(e.visible=2===o?r:1===o,e.visibility=o),e.visible?e.collapsed||(e.renderNodeCount+=i.length-s):(e.renderNodeCount=0,n&&i.pop()),this._onDidChangeRenderNodeCount.fire(e),e.visible}_updateAncestorsRenderNodeCount(e,t){if(0!==t)for(;e;)e.renderNodeCount+=t,this._onDidChangeRenderNodeCount.fire(e),e=e.parent}_filterNode(e,t){const i=this.filter?this.filter.filter(e.element,t):1;return"boolean"==typeof i?(e.filterData=void 0,i?1:0):S(i)?(e.filterData=i.data,L(i.visibility)):(e.filterData=void 0,L(i))}hasTreeNode(e,t=this.root){if(!e||0===e.length)return!0;const[i,...n]=e;return!(i<0||i>t.children.length)&&this.hasTreeNode(n,t.children[i])}getTreeNode(e,t=this.root){if(!e||0===e.length)return t;const[i,...n]=e;if(i<0||i>t.children.length)throw new v(this.user,"Invalid tree location");return this.getTreeNode(n,t.children[i])}getTreeNodeWithListIndex(e){if(0===e.length)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};const{parentNode:t,listIndex:i,revealed:n,visible:o}=this.getParentNodeWithListIndex(e),s=e[e.length-1];if(s<0||s>t.children.length)throw new v(this.user,"Invalid tree location");const r=t.children[s];return{node:r,listIndex:i,revealed:n,visible:o&&r.visible}}getParentNodeWithListIndex(e,t=this.root,i=0,n=!0,o=!0){const[s,...r]=e;if(s<0||s>t.children.length)throw new v(this.user,"Invalid tree location");for(let a=0;a<s;a++)i+=t.children[a].renderNodeCount;return n=n&&!t.collapsed,o=o&&t.visible,0===r.length?{parentNode:t,listIndex:i,revealed:n,visible:o}:this.getParentNodeWithListIndex(r,t.children[s],i+1,n,o)}getNode(e=[]){return this.getTreeNode(e)}getNodeLocation(e){const t=[];let i=e;for(;i.parent;)t.push(i.parent.children.indexOf(i)),i=i.parent;return t.reverse()}getParentNodeLocation(e){return 0===e.length?void 0:1===e.length?[]:(0,o.JH)(e)[0]}getFirstElementChild(e){const t=this.getTreeNode(e);if(0!==t.children.length)return t.children[0].element}}i(74741);var D=i(73046);class N{constructor(){this.map=new Map}add(e,t){let i=this.map.get(e);i||(i=new Set,this.map.set(e,i)),i.add(t)}delete(e,t){const i=this.map.get(e);i&&(i.delete(t),0===i.size&&this.map.delete(e))}forEach(e,t){const i=this.map.get(e);i&&i.forEach(t)}}var E,I,T=i(48357),M=i(59870),A=i(98401),R=i(63580);class O extends _.kX{constructor(e){super(e.elements.map((e=>e.element))),this.data=e}}function P(e){return e instanceof _.kX?new O(e):e}class F{constructor(e,t){this.modelProvider=e,this.dnd=t,this.autoExpandDisposable=a.JT.None}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map((e=>e.element)),t)}onDragStart(e,t){var i,n;null===(n=(i=this.dnd).onDragStart)||void 0===n||n.call(i,P(e),t)}onDragOver(e,t,i,n,s=!0){const r=this.dnd.onDragOver(P(e),t&&t.element,i,n),a=this.autoExpandNode!==t;if(a&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=t),void 0===t)return r;if(a&&"boolean"!=typeof r&&r.autoExpand&&(this.autoExpandDisposable=(0,C.Vg)((()=>{const e=this.modelProvider(),i=e.getNodeLocation(t);e.isCollapsed(i)&&e.setCollapsed(i,!1),this.autoExpandNode=void 0}),500)),"boolean"==typeof r||!r.accept||void 0===r.bubble||r.feedback){if(!s){return{accept:"boolean"==typeof r?r:r.accept,effect:"boolean"==typeof r?void 0:r.effect,feedback:[i]}}return r}if(1===r.bubble){const i=this.modelProvider(),o=i.getNodeLocation(t),s=i.getParentNodeLocation(o),r=i.getNode(s),a=s&&i.getListIndex(s);return this.onDragOver(e,r,a,n,!1)}const l=this.modelProvider(),c=l.getNodeLocation(t),d=l.getListIndex(c),h=l.getListRenderCount(c);return Object.assign(Object.assign({},r),{feedback:(0,o.w6)(d,d+h)})}drop(e,t,i,n){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(P(e),t&&t.element,i,n)}onDragEnd(e){var t,i;null===(i=(t=this.dnd).onDragEnd)||void 0===i||i.call(t,e)}}class B{constructor(e){this.delegate=e}getHeight(e){return this.delegate.getHeight(e.element)}getTemplateId(e){return this.delegate.getTemplateId(e.element)}hasDynamicHeight(e){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(e.element)}setDynamicHeight(e,t){var i,n;null===(n=(i=this.delegate).setDynamicHeight)||void 0===n||n.call(i,e.element,t)}}!function(e){e.None="none",e.OnHover="onHover",e.Always="always"}(E||(E={}));class V{constructor(e,t=[]){this._elements=t,this.disposables=new a.SL,this.onDidChange=r.ju.forEach(e,(e=>this._elements=e),this.disposables)}get elements(){return this._elements}dispose(){this.disposables.dispose()}}class W{constructor(e,t,i,n,o={}){var s;this.renderer=e,this.modelProvider=t,this.activeNodes=n,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=W.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.renderedIndentGuides=new N,this.activeIndentNodes=new Set,this.indentGuidesDisposable=a.JT.None,this.disposables=new a.SL,this.templateId=e.templateId,this.updateOptions(o),r.ju.map(i,(e=>e.node))(this.onDidChangeNodeTwistieState,this,this.disposables),null===(s=e.onDidChangeTwistieState)||void 0===s||s.call(e,this.onDidChangeTwistieState,this,this.disposables)}updateOptions(e={}){if(void 0!==e.indent&&(this.indent=(0,M.uZ)(e.indent,0,40)),void 0!==e.renderIndentGuides){const t=e.renderIndentGuides!==E.None;if(t!==this.shouldRenderIndentGuides&&(this.shouldRenderIndentGuides=t,this.indentGuidesDisposable.dispose(),t)){const e=new a.SL;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,e),this.indentGuidesDisposable=e,this._onDidChangeActiveNodes(this.activeNodes.elements)}}void 0!==e.hideTwistiesOfChildlessElements&&(this.hideTwistiesOfChildlessElements=e.hideTwistiesOfChildlessElements)}renderTemplate(e){const t=(0,n.R3)(e,(0,n.$)(".monaco-tl-row")),i=(0,n.R3)(t,(0,n.$)(".monaco-tl-indent")),o=(0,n.R3)(t,(0,n.$)(".monaco-tl-twistie")),s=(0,n.R3)(t,(0,n.$)(".monaco-tl-contents")),r=this.renderer.renderTemplate(s);return{container:e,indent:i,twistie:o,indentGuidesDisposable:a.JT.None,templateData:r}}renderElement(e,t,i,n){"number"==typeof n&&(this.renderedNodes.set(e,{templateData:i,height:n}),this.renderedElements.set(e.element,e));const o=W.DefaultIndent+(e.depth-1)*this.indent;i.twistie.style.paddingLeft=`${o}px`,i.indent.style.width=o+this.indent-16+"px",this.renderTwistie(e,i),"number"==typeof n&&this.renderIndentGuides(e,i),this.renderer.renderElement(e,t,i.templateData,n)}disposeElement(e,t,i,n){var o,s;i.indentGuidesDisposable.dispose(),null===(s=(o=this.renderer).disposeElement)||void 0===s||s.call(o,e,t,i.templateData,n),"number"==typeof n&&(this.renderedNodes.delete(e),this.renderedElements.delete(e.element))}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}onDidChangeTwistieState(e){const t=this.renderedElements.get(e);t&&this.onDidChangeNodeTwistieState(t)}onDidChangeNodeTwistieState(e){const t=this.renderedNodes.get(e);t&&(this.renderTwistie(e,t.templateData),this._onDidChangeActiveNodes(this.activeNodes.elements),this.renderIndentGuides(e,t.templateData))}renderTwistie(e,t){t.twistie.classList.remove(...D.lA.treeItemExpanded.classNamesArray);let i=!1;this.renderer.renderTwistie&&(i=this.renderer.renderTwistie(e.element,t.twistie)),e.collapsible&&(!this.hideTwistiesOfChildlessElements||e.visibleChildrenCount>0)?(i||t.twistie.classList.add(...D.lA.treeItemExpanded.classNamesArray),t.twistie.classList.add("collapsible"),t.twistie.classList.toggle("collapsed",e.collapsed)):t.twistie.classList.remove("collapsible","collapsed"),e.collapsible?t.container.setAttribute("aria-expanded",String(!e.collapsed)):t.container.removeAttribute("aria-expanded")}renderIndentGuides(e,t){if((0,n.PO)(t.indent),t.indentGuidesDisposable.dispose(),!this.shouldRenderIndentGuides)return;const i=new a.SL,o=this.modelProvider();let s=e;for(;;){const e=o.getNodeLocation(s),r=o.getParentNodeLocation(e);if(!r)break;const l=o.getNode(r),c=(0,n.$)(".indent-guide",{style:`width: ${this.indent}px`});this.activeIndentNodes.has(l)&&c.classList.add("active"),0===t.indent.childElementCount?t.indent.appendChild(c):t.indent.insertBefore(c,t.indent.firstElementChild),this.renderedIndentGuides.add(l,c),i.add((0,a.OF)((()=>this.renderedIndentGuides.delete(l,c)))),s=l}t.indentGuidesDisposable=i}_onDidChangeActiveNodes(e){if(!this.shouldRenderIndentGuides)return;const t=new Set,i=this.modelProvider();e.forEach((e=>{const n=i.getNodeLocation(e);try{const o=i.getParentNodeLocation(n);e.collapsible&&e.children.length>0&&!e.collapsed?t.add(e):o&&t.add(i.getNode(o))}catch(o){}})),this.activeIndentNodes.forEach((e=>{t.has(e)||this.renderedIndentGuides.forEach(e,(e=>e.classList.remove("active")))})),t.forEach((e=>{this.activeIndentNodes.has(e)||this.renderedIndentGuides.forEach(e,(e=>e.classList.add("active")))})),this.activeIndentNodes=t}dispose(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),(0,a.B9)(this.disposables)}}W.DefaultIndent=8;class H{constructor(e,t,i){this.tree=e,this.keyboardNavigationLabelProvider=t,this._filter=i,this._totalCount=0,this._matchCount=0,this._pattern="",this._lowercasePattern="",this.disposables=new a.SL,e.onWillRefilter(this.reset,this,this.disposables)}get totalCount(){return this._totalCount}get matchCount(){return this._matchCount}filter(e,t){let i=1;if(this._filter){const n=this._filter.filter(e,t);if(i="boolean"==typeof n?n?1:0:S(n)?L(n.visibility):n,0===i)return!1}if(this._totalCount++,!this._pattern)return this._matchCount++,{data:T.CL.Default,visibility:i};const n=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e),o=Array.isArray(n)?n:[n];for(const s of o){const e=s&&s.toString();if(void 0===e)return{data:T.CL.Default,visibility:i};const t=(0,T.EW)(this._pattern,this._lowercasePattern,0,e,e.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});if(t)return this._matchCount++,1===o.length?{data:t,visibility:i}:{data:{label:e,score:t},visibility:i}}return this.tree.findMode===I.Filter?2:{data:T.CL.Default,visibility:i}}reset(){this._totalCount=0,this._matchCount=0}dispose(){(0,a.B9)(this.disposables)}}!function(e){e[e.Highlight=0]="Highlight",e[e.Filter=1]="Filter"}(I||(I={}));class z{constructor(e,t,i,n,o){var s;this.tree=e,this.view=i,this.filter=n,this.contextViewProvider=o,this._pattern="",this.width=0,this._onDidChangeMode=new r.Q5,this.onDidChangeMode=this._onDidChangeMode.event,this._onDidChangePattern=new r.Q5,this._onDidChangeOpenState=new r.Q5,this.onDidChangeOpenState=this._onDidChangeOpenState.event,this.enabledDisposables=new a.SL,this.disposables=new a.SL,this._mode=null!==(s=e.options.defaultFindMode)&&void 0!==s?s:I.Highlight,t.onDidSplice(this.onDidSpliceModel,this,this.disposables)}get pattern(){return this._pattern}get mode(){return this._mode}set mode(e){e!==this._mode&&(this._mode=e,this.widget&&(this.widget.mode=this._mode),this.tree.refilter(),this.render(),this._onDidChangeMode.fire(e))}onDidSpliceModel(){this.widget&&0!==this.pattern.length&&(this.tree.refilter(),this.render())}render(){var e,t;const i=this.filter.totalCount>0&&0===this.filter.matchCount;this.pattern&&i?null===(e=this.widget)||void 0===e||e.showMessage({type:2,content:(0,R.NC)("not found","No elements found.")}):null===(t=this.widget)||void 0===t||t.clearMessage()}shouldAllowFocus(e){return!this.widget||!this.pattern||this._mode===I.Filter||(this.filter.totalCount>0&&this.filter.matchCount<=1||!T.CL.isDefault(e.filterData))}style(e){var t;this.styles=e,null===(t=this.widget)||void 0===t||t.style(e)}layout(e){var t;this.width=e,null===(t=this.widget)||void 0===t||t.layout(e)}dispose(){this._onDidChangePattern.dispose(),this.enabledDisposables.dispose(),this.disposables.dispose()}}function j(e){let t=m.Unknown;return(0,n.uU)(e.browserEvent.target,"monaco-tl-twistie","monaco-tl-row")?t=m.Twistie:(0,n.uU)(e.browserEvent.target,"monaco-tl-contents","monaco-tl-row")?t=m.Element:(0,n.uU)(e.browserEvent.target,"monaco-tree-type-filter","monaco-list")&&(t=m.Filter),{browserEvent:e.browserEvent,element:e.element?e.element.element:null,target:t}}function U(e,t){t(e),e.children.forEach((e=>U(e,t)))}class K{constructor(e,t){this.getFirstViewElementWithTrait=e,this.identityProvider=t,this.nodes=[],this._onDidChange=new r.Q5,this.onDidChange=this._onDidChange.event}get nodeSet(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}set(e,t){!(null==t?void 0:t.__forceEvent)&&(0,o.fS)(this.nodes,e)||this._set(e,!1,t)}_set(e,t,i){if(this.nodes=[...e],this.elements=void 0,this._nodeSet=void 0,!t){const e=this;this._onDidChange.fire({get elements(){return e.get()},browserEvent:i})}}get(){return this.elements||(this.elements=this.nodes.map((e=>e.element))),[...this.elements]}getNodes(){return this.nodes}has(e){return this.nodeSet.has(e)}onDidModelSplice({insertedNodes:e,deletedNodes:t}){if(!this.identityProvider){const e=this.createNodeSet(),i=t=>e.delete(t);return t.forEach((e=>U(e,i))),void this.set([...e.values()])}const i=new Set,n=e=>i.add(this.identityProvider.getId(e.element).toString());t.forEach((e=>U(e,n)));const o=new Map,s=e=>o.set(this.identityProvider.getId(e.element).toString(),e);e.forEach((e=>U(e,s)));const r=[];for(const a of this.nodes){const e=this.identityProvider.getId(a.element).toString();if(i.has(e)){const t=o.get(e);t&&r.push(t)}else r.push(a)}if(this.nodes.length>0&&0===r.length){const e=this.getFirstViewElementWithTrait();e&&r.push(e)}this._set(r,!0)}createNodeSet(){const e=new Set;for(const t of this.nodes)e.add(t);return e}}class $ extends l.sx{constructor(e,t){super(e),this.tree=t}onViewPointer(e){if((0,l.iK)(e.browserEvent.target)||(0,l.cK)(e.browserEvent.target)||(0,l.hD)(e.browserEvent.target))return;const t=e.element;if(!t)return super.onViewPointer(e);if(this.isSelectionRangeChangeEvent(e)||this.isSelectionSingleChangeEvent(e))return super.onViewPointer(e);const i=e.browserEvent.target,n=i.classList.contains("monaco-tl-twistie")||i.classList.contains("monaco-icon-label")&&i.classList.contains("folder-icon")&&e.browserEvent.offsetX<16;let o=!1;if(o="function"==typeof this.tree.expandOnlyOnTwistieClick?this.tree.expandOnlyOnTwistieClick(t.element):!!this.tree.expandOnlyOnTwistieClick,o&&!n&&2!==e.browserEvent.detail)return super.onViewPointer(e);if(!this.tree.expandOnDoubleClick&&2===e.browserEvent.detail)return super.onViewPointer(e);if(t.collapsible){const i=this.tree.model,s=i.getNodeLocation(t),r=e.browserEvent.altKey;if(this.tree.setFocus([s]),i.setCollapsed(s,void 0,r),o&&n)return}super.onViewPointer(e)}onDoubleClick(e){!e.browserEvent.target.classList.contains("monaco-tl-twistie")&&this.tree.expandOnDoubleClick&&super.onDoubleClick(e)}}class q extends l.aV{constructor(e,t,i,n,o,s,r,a){super(e,t,i,n,a),this.focusTrait=o,this.selectionTrait=s,this.anchorTrait=r}createMouseController(e){return new $(this,e.tree)}splice(e,t,i=[]){if(super.splice(e,t,i),0===i.length)return;const n=[],s=[];let r;i.forEach(((t,i)=>{this.focusTrait.has(t)&&n.push(e+i),this.selectionTrait.has(t)&&s.push(e+i),this.anchorTrait.has(t)&&(r=e+i)})),n.length>0&&super.setFocus((0,o.EB)([...super.getFocus(),...n])),s.length>0&&super.setSelection((0,o.EB)([...super.getSelection(),...s])),"number"==typeof r&&super.setAnchor(r)}setFocus(e,t,i=!1){super.setFocus(e,t),i||this.focusTrait.set(e.map((e=>this.element(e))),t)}setSelection(e,t,i=!1){super.setSelection(e,t),i||this.selectionTrait.set(e.map((e=>this.element(e))),t)}setAnchor(e,t=!1){super.setAnchor(e),t||(void 0===e?this.anchorTrait.set([]):this.anchorTrait.set([this.element(e)]))}}class G{constructor(e,t,i,o,s={}){var c;this._user=e,this._options=s,this.eventBufferer=new r.E7,this.onDidChangeFindOpenState=r.ju.None,this.disposables=new a.SL,this._onWillRefilter=new r.Q5,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new r.Q5;const d=new B(i),h=new r.ZD,u=new r.ZD,g=this.disposables.add(new V(u.event));this.renderers=o.map((e=>new W(e,(()=>this.model),h.event,g,s)));for(const n of this.renderers)this.disposables.add(n);let p;var m,_;s.keyboardNavigationLabelProvider&&(p=new H(this,s.keyboardNavigationLabelProvider,s.filter),s=Object.assign(Object.assign({},s),{filter:p}),this.disposables.add(p)),this.focus=new K((()=>this.view.getFocusedElements()[0]),s.identityProvider),this.selection=new K((()=>this.view.getSelectedElements()[0]),s.identityProvider),this.anchor=new K((()=>this.view.getAnchorElement()),s.identityProvider),this.view=new q(e,t,d,this.renderers,this.focus,this.selection,this.anchor,Object.assign(Object.assign({},(m=()=>this.model,(_=s)&&Object.assign(Object.assign({},_),{identityProvider:_.identityProvider&&{getId:e=>_.identityProvider.getId(e.element)},dnd:_.dnd&&new F(m,_.dnd),multipleSelectionController:_.multipleSelectionController&&{isSelectionSingleChangeEvent:e=>_.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({},e),{element:e.element})),isSelectionRangeChangeEvent:e=>_.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({},e),{element:e.element}))},accessibilityProvider:_.accessibilityProvider&&Object.assign(Object.assign({},_.accessibilityProvider),{getSetSize(e){const t=m(),i=t.getNodeLocation(e),n=t.getParentNodeLocation(i);return t.getNode(n).visibleChildrenCount},getPosInSet:e=>e.visibleChildIndex+1,isChecked:_.accessibilityProvider&&_.accessibilityProvider.isChecked?e=>_.accessibilityProvider.isChecked(e.element):void 0,getRole:_.accessibilityProvider&&_.accessibilityProvider.getRole?e=>_.accessibilityProvider.getRole(e.element):()=>"treeitem",getAriaLabel:e=>_.accessibilityProvider.getAriaLabel(e.element),getWidgetAriaLabel:()=>_.accessibilityProvider.getWidgetAriaLabel(),getWidgetRole:_.accessibilityProvider&&_.accessibilityProvider.getWidgetRole?()=>_.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:_.accessibilityProvider&&_.accessibilityProvider.getAriaLevel?e=>_.accessibilityProvider.getAriaLevel(e.element):e=>e.depth,getActiveDescendantId:_.accessibilityProvider.getActiveDescendantId&&(e=>_.accessibilityProvider.getActiveDescendantId(e.element))}),keyboardNavigationLabelProvider:_.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},_.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel:e=>_.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element)})}))),{tree:this})),this.model=this.createModel(e,this.view,s),h.input=this.model.onDidChangeCollapseState;const v=r.ju.forEach(this.model.onDidSplice,(e=>{this.eventBufferer.bufferEvents((()=>{this.focus.onDidModelSplice(e),this.selection.onDidModelSplice(e)}))}),this.disposables);if(v((()=>null),null,this.disposables),u.input=r.ju.chain(r.ju.any(v,this.focus.onDidChange,this.selection.onDidChange)).debounce((()=>null),0).map((()=>{const e=new Set;for(const t of this.focus.getNodes())e.add(t);for(const t of this.selection.getNodes())e.add(t);return[...e.values()]})).event,!1!==s.keyboardSupport){const e=r.ju.chain(this.view.onKeyDown).filter((e=>!(0,l.cK)(e.target))).map((e=>new f.y(e)));e.filter((e=>15===e.keyCode)).on(this.onLeftArrow,this,this.disposables),e.filter((e=>17===e.keyCode)).on(this.onRightArrow,this,this.disposables),e.filter((e=>10===e.keyCode)).on(this.onSpace,this,this.disposables)}(null===(c=s.findWidgetEnabled)||void 0===c||c)&&s.keyboardNavigationLabelProvider&&s.contextViewProvider?(this.findController=new z(this,this.model,this.view,p,s.contextViewProvider),this.focusNavigationFilter=e=>this.findController.shouldAllowFocus(e),this.onDidChangeFindOpenState=this.findController.onDidChangeOpenState,this.disposables.add(this.findController),this.onDidChangeFindMode=this.findController.onDidChangeMode):this.onDidChangeFindMode=r.ju.None,this.styleElement=(0,n.dS)(this.view.getHTMLElement()),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===E.Always)}get onDidChangeFocus(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)}get onDidChangeSelection(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}get onMouseDblClick(){return r.ju.filter(r.ju.map(this.view.onMouseDblClick,j),(e=>e.target!==m.Filter))}get onPointer(){return r.ju.map(this.view.onPointer,j)}get onDidFocus(){return this.view.onDidFocus}get onDidChangeModel(){return r.ju.signal(this.model.onDidSplice)}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get findMode(){var e,t;return null!==(t=null===(e=this.findController)||void 0===e?void 0:e.mode)&&void 0!==t?t:I.Highlight}set findMode(e){this.findController&&(this.findController.mode=e)}get expandOnDoubleClick(){return void 0===this._options.expandOnDoubleClick||this._options.expandOnDoubleClick}get expandOnlyOnTwistieClick(){return void 0===this._options.expandOnlyOnTwistieClick||this._options.expandOnlyOnTwistieClick}get onDidDispose(){return this.view.onDidDispose}updateOptions(e={}){this._options=Object.assign(Object.assign({},this._options),e);for(const t of this.renderers)t.updateOptions(e);this.view.updateOptions(this._options),this._onDidUpdateOptions.fire(this._options),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===E.Always)}get options(){return this._options}getHTMLElement(){return this.view.getHTMLElement()}get scrollTop(){return this.view.scrollTop}set scrollTop(e){this.view.scrollTop=e}domFocus(){this.view.domFocus()}layout(e,t){var i;this.view.layout(e,t),(0,A.hj)(t)&&(null===(i=this.findController)||void 0===i||i.layout(t))}style(e){var t;const i=`.${this.view.domId}`,n=[];e.treeIndentGuidesStroke&&(n.push(`.monaco-list${i}:hover .monaco-tl-indent > .indent-guide, .monaco-list${i}.always .monaco-tl-indent > .indent-guide { border-color: ${e.treeIndentGuidesStroke.transparent(.4)}; }`),n.push(`.monaco-list${i} .monaco-tl-indent > .indent-guide.active { border-color: ${e.treeIndentGuidesStroke}; }`)),this.styleElement.textContent=n.join("\n"),null===(t=this.findController)||void 0===t||t.style(e),this.view.style(e)}getParentElement(e){const t=this.model.getParentNodeLocation(e);return this.model.getNode(t).element}getFirstElementChild(e){return this.model.getFirstElementChild(e)}getNode(e){return this.model.getNode(e)}collapse(e,t=!1){return this.model.setCollapsed(e,!0,t)}expand(e,t=!1){return this.model.setCollapsed(e,!1,t)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}refilter(){this._onWillRefilter.fire(void 0),this.model.refilter()}setSelection(e,t){const i=e.map((e=>this.model.getNode(e)));this.selection.set(i,t);const n=e.map((e=>this.model.getListIndex(e))).filter((e=>e>-1));this.view.setSelection(n,t,!0)}getSelection(){return this.selection.get()}setFocus(e,t){const i=e.map((e=>this.model.getNode(e)));this.focus.set(i,t);const n=e.map((e=>this.model.getListIndex(e))).filter((e=>e>-1));this.view.setFocus(n,t,!0)}getFocus(){return this.focus.get()}reveal(e,t){this.model.expandTo(e);const i=this.model.getListIndex(e);-1!==i&&this.view.reveal(i,t)}onLeftArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(0===t.length)return;const i=t[0],n=this.model.getNodeLocation(i);if(!this.model.setCollapsed(n,!0)){const e=this.model.getParentNodeLocation(n);if(!e)return;const t=this.model.getListIndex(e);this.view.reveal(t),this.view.setFocus([t])}}onRightArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(0===t.length)return;const i=t[0],n=this.model.getNodeLocation(i);if(!this.model.setCollapsed(n,!1)){if(!i.children.some((e=>e.visible)))return;const[e]=this.view.getFocus(),t=e+1;this.view.reveal(t),this.view.setFocus([t])}}onSpace(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(0===t.length)return;const i=t[0],n=this.model.getNodeLocation(i),o=e.browserEvent.altKey;this.model.setCollapsed(n,void 0,o)}dispose(){(0,a.B9)(this.disposables),this.view.dispose()}}class Q{constructor(e,t,i={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.nodesByIdentity=new Map,this.model=new x(e,t,null,i),this.onDidSplice=this.model.onDidSplice,this.onDidChangeCollapseState=this.model.onDidChangeCollapseState,this.onDidChangeRenderNodeCount=this.model.onDidChangeRenderNodeCount,i.sorter&&(this.sorter={compare:(e,t)=>i.sorter.compare(e.element,t.element)}),this.identityProvider=i.identityProvider}setChildren(e,t=y.$.empty(),i={}){const n=this.getElementLocation(e);this._setChildren(n,this.preserveCollapseState(t),i)}_setChildren(e,t=y.$.empty(),i){const n=new Set,o=new Set;this.model.splice([...e,0],Number.MAX_VALUE,t,Object.assign(Object.assign({},i),{onDidCreateNode:e=>{var t;if(null===e.element)return;const s=e;if(n.add(s.element),this.nodes.set(s.element,s),this.identityProvider){const e=this.identityProvider.getId(s.element).toString();o.add(e),this.nodesByIdentity.set(e,s)}null===(t=i.onDidCreateNode)||void 0===t||t.call(i,s)},onDidDeleteNode:e=>{var t;if(null===e.element)return;const s=e;if(n.has(s.element)||this.nodes.delete(s.element),this.identityProvider){const e=this.identityProvider.getId(s.element).toString();o.has(e)||this.nodesByIdentity.delete(e)}null===(t=i.onDidDeleteNode)||void 0===t||t.call(i,s)}}))}preserveCollapseState(e=y.$.empty()){return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),y.$.map(e,(e=>{let t=this.nodes.get(e.element);if(!t&&this.identityProvider){const i=this.identityProvider.getId(e.element).toString();t=this.nodesByIdentity.get(i)}if(!t)return Object.assign(Object.assign({},e),{children:this.preserveCollapseState(e.children)});const i="boolean"==typeof e.collapsible?e.collapsible:t.collapsible,n=void 0!==e.collapsed?e.collapsed:t.collapsed;return Object.assign(Object.assign({},e),{collapsible:i,collapsed:n,children:this.preserveCollapseState(e.children)})}))}rerender(e){const t=this.getElementLocation(e);this.model.rerender(t)}getFirstElementChild(e=null){const t=this.getElementLocation(e);return this.model.getFirstElementChild(t)}has(e){return this.nodes.has(e)}getListIndex(e){const t=this.getElementLocation(e);return this.model.getListIndex(t)}getListRenderCount(e){const t=this.getElementLocation(e);return this.model.getListRenderCount(t)}isCollapsible(e){const t=this.getElementLocation(e);return this.model.isCollapsible(t)}setCollapsible(e,t){const i=this.getElementLocation(e);return this.model.setCollapsible(i,t)}isCollapsed(e){const t=this.getElementLocation(e);return this.model.isCollapsed(t)}setCollapsed(e,t,i){const n=this.getElementLocation(e);return this.model.setCollapsed(n,t,i)}expandTo(e){const t=this.getElementLocation(e);this.model.expandTo(t)}refilter(){this.model.refilter()}getNode(e=null){if(null===e)return this.model.getNode(this.model.rootRef);const t=this.nodes.get(e);if(!t)throw new v(this.user,`Tree element not found: ${e}`);return t}getNodeLocation(e){return e.element}getParentNodeLocation(e){if(null===e)throw new v(this.user,"Invalid getParentNodeLocation call");const t=this.nodes.get(e);if(!t)throw new v(this.user,`Tree element not found: ${e}`);const i=this.model.getNodeLocation(t),n=this.model.getParentNodeLocation(i);return this.model.getNode(n).element}getElementLocation(e){if(null===e)return[];const t=this.nodes.get(e);if(!t)throw new v(this.user,`Tree element not found: ${e}`);return this.model.getNodeLocation(t)}}function Z(e){return{element:{elements:[e.element],incompressible:e.incompressible||!1},children:y.$.map(y.$.from(e.children),Z),collapsible:e.collapsible,collapsed:e.collapsed}}function Y(e){const t=[e.element],i=e.incompressible||!1;let n,o;for(;[o,n]=y.$.consume(y.$.from(e.children),2),1===o.length&&!o[0].incompressible;)e=o[0],t.push(e.element);return{element:{elements:t,incompressible:i},children:y.$.map(y.$.concat(o,n),Y),collapsible:e.collapsible,collapsed:e.collapsed}}function J(e,t=0){let i;return i=t<e.element.elements.length-1?[J(e,t+1)]:y.$.map(y.$.from(e.children),(e=>J(e,0))),0===t&&e.element.incompressible?{element:e.element.elements[t],children:i,incompressible:!0,collapsible:e.collapsible,collapsed:e.collapsed}:{element:e.element.elements[t],children:i,collapsible:e.collapsible,collapsed:e.collapsed}}function X(e){return J(e,0)}function ee(e,t,i){return e.element===t?Object.assign(Object.assign({},e),{children:i}):Object.assign(Object.assign({},e),{children:y.$.map(y.$.from(e.children),(e=>ee(e,t,i)))})}class te{constructor(e,t,i={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.model=new Q(e,t,i),this.enabled=void 0===i.compressionEnabled||i.compressionEnabled,this.identityProvider=i.identityProvider}get onDidSplice(){return this.model.onDidSplice}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get onDidChangeRenderNodeCount(){return this.model.onDidChangeRenderNodeCount}setChildren(e,t=y.$.empty(),i){const n=i.diffIdentityProvider&&(o=i.diffIdentityProvider,{getId:e=>e.elements.map((e=>o.getId(e).toString())).join("\0")});var o;if(null===e){const e=y.$.map(t,this.enabled?Y:Z);return void this._setChildren(null,e,{diffIdentityProvider:n,diffDepth:1/0})}const s=this.nodes.get(e);if(!s)throw new Error("Unknown compressed tree node");const r=this.model.getNode(s),a=this.model.getParentNodeLocation(s),l=this.model.getNode(a),c=ee(X(r),e,t),d=(this.enabled?Y:Z)(c),h=l.children.map((e=>e===r?d:e));this._setChildren(l.element,h,{diffIdentityProvider:n,diffDepth:r.depth-l.depth})}setCompressionEnabled(e){if(e===this.enabled)return;this.enabled=e;const t=this.model.getNode().children,i=y.$.map(t,X),n=y.$.map(i,e?Y:Z);this._setChildren(null,n,{diffIdentityProvider:this.identityProvider,diffDepth:1/0})}_setChildren(e,t,i){const n=new Set;this.model.setChildren(e,t,Object.assign(Object.assign({},i),{onDidCreateNode:e=>{for(const t of e.element.elements)n.add(t),this.nodes.set(t,e.element)},onDidDeleteNode:e=>{for(const t of e.element.elements)n.has(t)||this.nodes.delete(t)}}))}has(e){return this.nodes.has(e)}getListIndex(e){const t=this.getCompressedNode(e);return this.model.getListIndex(t)}getListRenderCount(e){const t=this.getCompressedNode(e);return this.model.getListRenderCount(t)}getNode(e){if(void 0===e)return this.model.getNode();const t=this.getCompressedNode(e);return this.model.getNode(t)}getNodeLocation(e){const t=this.model.getNodeLocation(e);return null===t?null:t.elements[t.elements.length-1]}getParentNodeLocation(e){const t=this.getCompressedNode(e),i=this.model.getParentNodeLocation(t);return null===i?null:i.elements[i.elements.length-1]}getFirstElementChild(e){const t=this.getCompressedNode(e);return this.model.getFirstElementChild(t)}isCollapsible(e){const t=this.getCompressedNode(e);return this.model.isCollapsible(t)}setCollapsible(e,t){const i=this.getCompressedNode(e);return this.model.setCollapsible(i,t)}isCollapsed(e){const t=this.getCompressedNode(e);return this.model.isCollapsed(t)}setCollapsed(e,t,i){const n=this.getCompressedNode(e);return this.model.setCollapsed(n,t,i)}expandTo(e){const t=this.getCompressedNode(e);this.model.expandTo(t)}rerender(e){const t=this.getCompressedNode(e);this.model.rerender(t)}refilter(){this.model.refilter()}getCompressedNode(e){if(null===e)return null;const t=this.nodes.get(e);if(!t)throw new v(this.user,`Tree element not found: ${e}`);return t}}const ie=e=>e[e.length-1];class ne{constructor(e,t){this.unwrapper=e,this.node=t}get element(){return null===this.node.element?null:this.unwrapper(this.node.element)}get children(){return this.node.children.map((e=>new ne(this.unwrapper,e)))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}}class oe{constructor(e,t,i={}){this.rootRef=null,this.elementMapper=i.elementMapper||ie;const n=e=>this.elementMapper(e.elements);this.nodeMapper=new b((e=>new ne(n,e))),this.model=new te(e,function(e,t){return{splice(i,n,o){t.splice(i,n,o.map((t=>e.map(t))))},updateElementHeight(e,i){t.updateElementHeight(e,i)}}}(this.nodeMapper,t),function(e,t){return Object.assign(Object.assign({},t),{identityProvider:t.identityProvider&&{getId:i=>t.identityProvider.getId(e(i))},sorter:t.sorter&&{compare:(e,i)=>t.sorter.compare(e.elements[0],i.elements[0])},filter:t.filter&&{filter:(i,n)=>t.filter.filter(e(i),n)}})}(n,i))}get onDidSplice(){return r.ju.map(this.model.onDidSplice,(({insertedNodes:e,deletedNodes:t})=>({insertedNodes:e.map((e=>this.nodeMapper.map(e))),deletedNodes:t.map((e=>this.nodeMapper.map(e)))})))}get onDidChangeCollapseState(){return r.ju.map(this.model.onDidChangeCollapseState,(({node:e,deep:t})=>({node:this.nodeMapper.map(e),deep:t})))}get onDidChangeRenderNodeCount(){return r.ju.map(this.model.onDidChangeRenderNodeCount,(e=>this.nodeMapper.map(e)))}setChildren(e,t=y.$.empty(),i={}){this.model.setChildren(e,t,i)}setCompressionEnabled(e){this.model.setCompressionEnabled(e)}has(e){return this.model.has(e)}getListIndex(e){return this.model.getListIndex(e)}getListRenderCount(e){return this.model.getListRenderCount(e)}getNode(e){return this.nodeMapper.map(this.model.getNode(e))}getNodeLocation(e){return e.element}getParentNodeLocation(e){return this.model.getParentNodeLocation(e)}getFirstElementChild(e){const t=this.model.getFirstElementChild(e);return null==t?t:this.elementMapper(t.elements)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}setCollapsed(e,t,i){return this.model.setCollapsed(e,t,i)}expandTo(e){return this.model.expandTo(e)}rerender(e){return this.model.rerender(e)}refilter(){return this.model.refilter()}getCompressedTreeNode(e=null){return this.model.getNode(e)}}var se=i(49898),re=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r};class ae extends G{constructor(e,t,i,n,o={}){super(e,t,i,n,o),this.user=e}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}setChildren(e,t=y.$.empty(),i){this.model.setChildren(e,t,i)}rerender(e){void 0!==e?this.model.rerender(e):this.view.rerender()}hasElement(e){return this.model.has(e)}createModel(e,t,i){return new Q(e,t,i)}}class le{constructor(e,t){this._compressedTreeNodeProvider=e,this.renderer=t,this.templateId=t.templateId,t.onDidChangeTwistieState&&(this.onDidChangeTwistieState=t.onDidChangeTwistieState)}get compressedTreeNodeProvider(){return this._compressedTreeNodeProvider()}renderTemplate(e){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){const o=this.compressedTreeNodeProvider.getCompressedTreeNode(e.element);1===o.element.elements.length?(i.compressedTreeNode=void 0,this.renderer.renderElement(e,t,i.data,n)):(i.compressedTreeNode=o,this.renderer.renderCompressedElements(o,t,i.data,n))}disposeElement(e,t,i,n){var o,s,r,a;i.compressedTreeNode?null===(s=(o=this.renderer).disposeCompressedElements)||void 0===s||s.call(o,i.compressedTreeNode,t,i.data,n):null===(a=(r=this.renderer).disposeElement)||void 0===a||a.call(r,e,t,i.data,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.data)}renderTwistie(e,t){return!!this.renderer.renderTwistie&&this.renderer.renderTwistie(e,t)}}re([se.H],le.prototype,"compressedTreeNodeProvider",null);class ce extends ae{constructor(e,t,i,n,o={}){const s=()=>this;super(e,t,i,n.map((e=>new le(s,e))),function(e,t){return t&&Object.assign(Object.assign({},t),{keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&{getKeyboardNavigationLabel(i){let n;try{n=e().getCompressedTreeNode(i)}catch(o){return t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(i)}return 1===n.element.elements.length?t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(i):t.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(n.element.elements)}}})}(s,o))}setChildren(e,t=y.$.empty(),i){this.model.setChildren(e,t,i)}createModel(e,t,i){return new oe(e,t,i)}updateOptions(e={}){super.updateOptions(e),void 0!==e.compressionEnabled&&this.model.setCompressionEnabled(e.compressionEnabled)}getCompressedTreeNode(e=null){return this.model.getCompressedTreeNode(e)}}var de=i(17301),he=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};function ue(e){return Object.assign(Object.assign({},e),{children:[],refreshPromise:void 0,stale:!0,slow:!1,collapsedByDefault:void 0})}function ge(e,t){return!!t.parent&&(t.parent===e||ge(e,t.parent))}class pe{constructor(e){this.node=e}get element(){return this.node.element.element}get children(){return this.node.children.map((e=>new pe(e)))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}}class me{constructor(e,t,i){this.renderer=e,this.nodeMapper=t,this.onDidChangeTwistieState=i,this.renderedNodes=new Map,this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,n)}renderTwistie(e,t){return e.slow?(t.classList.add(...D.lA.treeItemLoading.classNamesArray),!0):(t.classList.remove(...D.lA.treeItemLoading.classNamesArray),!1)}disposeElement(e,t,i,n){var o,s;null===(s=(o=this.renderer).disposeElement)||void 0===s||s.call(o,this.nodeMapper.map(e),t,i.templateData,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear()}}function fe(e){return{browserEvent:e.browserEvent,elements:e.elements.map((e=>e.element))}}function _e(e){return{browserEvent:e.browserEvent,element:e.element&&e.element.element,target:e.target}}class ve extends _.kX{constructor(e){super(e.elements.map((e=>e.element))),this.data=e}}function be(e){return e instanceof _.kX?new ve(e):e}class Ce{constructor(e){this.dnd=e}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map((e=>e.element)),t)}onDragStart(e,t){var i,n;null===(n=(i=this.dnd).onDragStart)||void 0===n||n.call(i,be(e),t)}onDragOver(e,t,i,n,o=!0){return this.dnd.onDragOver(be(e),t&&t.element,i,n)}drop(e,t,i,n){this.dnd.drop(be(e),t&&t.element,i,n)}onDragEnd(e){var t,i;null===(i=(t=this.dnd).onDragEnd)||void 0===i||i.call(t,e)}}function we(e){return e&&Object.assign(Object.assign({},e),{collapseByDefault:!0,identityProvider:e.identityProvider&&{getId:t=>e.identityProvider.getId(t.element)},dnd:e.dnd&&new Ce(e.dnd),multipleSelectionController:e.multipleSelectionController&&{isSelectionSingleChangeEvent:t=>e.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({},t),{element:t.element})),isSelectionRangeChangeEvent:t=>e.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({},t),{element:t.element}))},accessibilityProvider:e.accessibilityProvider&&Object.assign(Object.assign({},e.accessibilityProvider),{getPosInSet:void 0,getSetSize:void 0,getRole:e.accessibilityProvider.getRole?t=>e.accessibilityProvider.getRole(t.element):()=>"treeitem",isChecked:e.accessibilityProvider.isChecked?t=>{var i;return!!(null===(i=e.accessibilityProvider)||void 0===i?void 0:i.isChecked(t.element))}:void 0,getAriaLabel:t=>e.accessibilityProvider.getAriaLabel(t.element),getWidgetAriaLabel:()=>e.accessibilityProvider.getWidgetAriaLabel(),getWidgetRole:e.accessibilityProvider.getWidgetRole?()=>e.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:e.accessibilityProvider.getAriaLevel&&(t=>e.accessibilityProvider.getAriaLevel(t.element)),getActiveDescendantId:e.accessibilityProvider.getActiveDescendantId&&(t=>e.accessibilityProvider.getActiveDescendantId(t.element))}),filter:e.filter&&{filter:(t,i)=>e.filter.filter(t.element,i)},keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},e.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel:t=>e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)}),sorter:void 0,expandOnlyOnTwistieClick:void 0===e.expandOnlyOnTwistieClick?void 0:"function"!=typeof e.expandOnlyOnTwistieClick?e.expandOnlyOnTwistieClick:t=>e.expandOnlyOnTwistieClick(t.element),additionalScrollHeight:e.additionalScrollHeight})}function ye(e,t){t(e),e.children.forEach((e=>ye(e,t)))}class Se{constructor(e,t,i,n,o,s={}){this.user=e,this.dataSource=o,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new r.Q5,this._onDidChangeNodeSlowState=new r.Q5,this.nodeMapper=new b((e=>new pe(e))),this.disposables=new a.SL,this.identityProvider=s.identityProvider,this.autoExpandSingleChildren=void 0!==s.autoExpandSingleChildren&&s.autoExpandSingleChildren,this.sorter=s.sorter,this.collapseByDefault=s.collapseByDefault,this.tree=this.createTree(e,t,i,n,s),this.onDidChangeFindMode=this.tree.onDidChangeFindMode,this.root=ue({element:void 0,parent:null,hasChildren:!0}),this.identityProvider&&(this.root=Object.assign(Object.assign({},this.root),{id:null})),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}get onDidChangeFocus(){return r.ju.map(this.tree.onDidChangeFocus,fe)}get onDidChangeSelection(){return r.ju.map(this.tree.onDidChangeSelection,fe)}get onMouseDblClick(){return r.ju.map(this.tree.onMouseDblClick,_e)}get onPointer(){return r.ju.map(this.tree.onPointer,_e)}get onDidFocus(){return this.tree.onDidFocus}get onDidChangeModel(){return this.tree.onDidChangeModel}get onDidChangeCollapseState(){return this.tree.onDidChangeCollapseState}get onDidChangeFindOpenState(){return this.tree.onDidChangeFindOpenState}get onDidDispose(){return this.tree.onDidDispose}createTree(e,t,i,n,o){const s=new B(i),r=n.map((e=>new me(e,this.nodeMapper,this._onDidChangeNodeSlowState.event))),a=we(o)||{};return new ae(e,t,s,r,a)}updateOptions(e={}){this.tree.updateOptions(e)}getHTMLElement(){return this.tree.getHTMLElement()}get scrollTop(){return this.tree.scrollTop}set scrollTop(e){this.tree.scrollTop=e}domFocus(){this.tree.domFocus()}layout(e,t){this.tree.layout(e,t)}style(e){this.tree.style(e)}getInput(){return this.root.element}setInput(e,t){return he(this,void 0,void 0,(function*(){this.refreshPromises.forEach((e=>e.cancel())),this.refreshPromises.clear(),this.root.element=e;const i=t&&{viewState:t,focus:[],selection:[]};yield this._updateChildren(e,!0,!1,i),i&&(this.tree.setFocus(i.focus),this.tree.setSelection(i.selection)),t&&"number"==typeof t.scrollTop&&(this.scrollTop=t.scrollTop)}))}_updateChildren(e=this.root.element,t=!0,i=!1,n,o){return he(this,void 0,void 0,(function*(){if(void 0===this.root.element)throw new v(this.user,"Tree input not set");this.root.refreshPromise&&(yield this.root.refreshPromise,yield r.ju.toPromise(this._onDidRender.event));const s=this.getDataNode(e);if(yield this.refreshAndRenderNode(s,t,n,o),i)try{this.tree.rerender(s)}catch(a){}}))}rerender(e){if(void 0===e||e===this.root.element)return void this.tree.rerender();const t=this.getDataNode(e);this.tree.rerender(t)}getNode(e=this.root.element){const t=this.getDataNode(e),i=this.tree.getNode(t===this.root?null:t);return this.nodeMapper.map(i)}collapse(e,t=!1){const i=this.getDataNode(e);return this.tree.collapse(i===this.root?null:i,t)}expand(e,t=!1){return he(this,void 0,void 0,(function*(){if(void 0===this.root.element)throw new v(this.user,"Tree input not set");this.root.refreshPromise&&(yield this.root.refreshPromise,yield r.ju.toPromise(this._onDidRender.event));const i=this.getDataNode(e);if(this.tree.hasElement(i)&&!this.tree.isCollapsible(i))return!1;if(i.refreshPromise&&(yield this.root.refreshPromise,yield r.ju.toPromise(this._onDidRender.event)),i!==this.root&&!i.refreshPromise&&!this.tree.isCollapsed(i))return!1;const n=this.tree.expand(i===this.root?null:i,t);return i.refreshPromise&&(yield this.root.refreshPromise,yield r.ju.toPromise(this._onDidRender.event)),n}))}setSelection(e,t){const i=e.map((e=>this.getDataNode(e)));this.tree.setSelection(i,t)}getSelection(){return this.tree.getSelection().map((e=>e.element))}setFocus(e,t){const i=e.map((e=>this.getDataNode(e)));this.tree.setFocus(i,t)}getFocus(){return this.tree.getFocus().map((e=>e.element))}reveal(e,t){this.tree.reveal(this.getDataNode(e),t)}getParentElement(e){const t=this.tree.getParentElement(this.getDataNode(e));return t&&t.element}getFirstElementChild(e=this.root.element){const t=this.getDataNode(e),i=this.tree.getFirstElementChild(t===this.root?null:t);return i&&i.element}getDataNode(e){const t=this.nodes.get(e===this.root.element?null:e);if(!t)throw new v(this.user,`Data tree node not found: ${e}`);return t}refreshAndRenderNode(e,t,i,n){return he(this,void 0,void 0,(function*(){yield this.refreshNode(e,t,i),this.render(e,i,n)}))}refreshNode(e,t,i){return he(this,void 0,void 0,(function*(){let n;if(this.subTreeRefreshPromises.forEach(((o,s)=>{!n&&function(e,t){return e===t||ge(e,t)||ge(t,e)}(s,e)&&(n=o.then((()=>this.refreshNode(e,t,i))))})),n)return n;if(e!==this.root){if(this.tree.getNode(e).collapsed)return e.hasChildren=!!this.dataSource.hasChildren(e.element),void(e.stale=!0)}return this.doRefreshSubTree(e,t,i)}))}doRefreshSubTree(e,t,i){return he(this,void 0,void 0,(function*(){let n;e.refreshPromise=new Promise((e=>n=e)),this.subTreeRefreshPromises.set(e,e.refreshPromise),e.refreshPromise.finally((()=>{e.refreshPromise=void 0,this.subTreeRefreshPromises.delete(e)}));try{const o=yield this.doRefreshNode(e,t,i);e.stale=!1,yield C.jT.settled(o.map((e=>this.doRefreshSubTree(e,t,i))))}finally{n()}}))}doRefreshNode(e,t,i){return he(this,void 0,void 0,(function*(){let n;if(e.hasChildren=!!this.dataSource.hasChildren(e.element),e.hasChildren){const t=this.doGetChildren(e);if((0,A.TW)(t))n=Promise.resolve(t);else{const i=(0,C.Vs)(800);i.then((()=>{e.slow=!0,this._onDidChangeNodeSlowState.fire(e)}),(e=>null)),n=t.finally((()=>i.cancel()))}}else n=Promise.resolve(y.$.empty());try{const o=yield n;return this.setChildren(e,o,t,i)}catch(o){if(e!==this.root&&this.tree.hasElement(e)&&this.tree.collapse(e),(0,de.n2)(o))return[];throw o}finally{e.slow&&(e.slow=!1,this._onDidChangeNodeSlowState.fire(e))}}))}doGetChildren(e){let t=this.refreshPromises.get(e);if(t)return t;const i=this.dataSource.getChildren(e.element);return(0,A.TW)(i)?this.processChildren(i):(t=(0,C.PG)((()=>he(this,void 0,void 0,(function*(){return this.processChildren(yield i)})))),this.refreshPromises.set(e,t),t.finally((()=>{this.refreshPromises.delete(e)})))}_onDidChangeCollapseState({node:e,deep:t}){null!==e.element&&!e.collapsed&&e.element.stale&&(t?this.collapse(e.element.element):this.refreshAndRenderNode(e.element,!1).catch(de.dL))}setChildren(e,t,i,n){const o=[...t];if(0===e.children.length&&0===o.length)return[];const s=new Map,r=new Map;for(const c of e.children)if(s.set(c.element,c),this.identityProvider){const e=this.tree.isCollapsed(c);r.set(c.id,{node:c,collapsed:e})}const a=[],l=o.map((t=>{const o=!!this.dataSource.hasChildren(t);if(!this.identityProvider){const i=ue({element:t,parent:e,hasChildren:o});return o&&this.collapseByDefault&&!this.collapseByDefault(t)&&(i.collapsedByDefault=!1,a.push(i)),i}const l=this.identityProvider.getId(t).toString(),c=r.get(l);if(c){const e=c.node;return s.delete(e.element),this.nodes.delete(e.element),this.nodes.set(t,e),e.element=t,e.hasChildren=o,i?c.collapsed?(e.children.forEach((e=>ye(e,(e=>this.nodes.delete(e.element))))),e.children.splice(0,e.children.length),e.stale=!0):a.push(e):o&&this.collapseByDefault&&!this.collapseByDefault(t)&&(e.collapsedByDefault=!1,a.push(e)),e}const d=ue({element:t,parent:e,id:l,hasChildren:o});return n&&n.viewState.focus&&n.viewState.focus.indexOf(l)>-1&&n.focus.push(d),n&&n.viewState.selection&&n.viewState.selection.indexOf(l)>-1&&n.selection.push(d),n&&n.viewState.expanded&&n.viewState.expanded.indexOf(l)>-1?a.push(d):o&&this.collapseByDefault&&!this.collapseByDefault(t)&&(d.collapsedByDefault=!1,a.push(d)),d}));for(const c of s.values())ye(c,(e=>this.nodes.delete(e.element)));for(const c of l)this.nodes.set(c.element,c);return e.children.splice(0,e.children.length,...l),e!==this.root&&this.autoExpandSingleChildren&&1===l.length&&0===a.length&&(l[0].collapsedByDefault=!1,a.push(l[0])),a}render(e,t,i){const n=e.children.map((e=>this.asTreeElement(e,t))),o=i&&Object.assign(Object.assign({},i),{diffIdentityProvider:i.diffIdentityProvider&&{getId:e=>i.diffIdentityProvider.getId(e.element)}});this.tree.setChildren(e===this.root?null:e,n,o),e!==this.root&&this.tree.setCollapsible(e,e.hasChildren),this._onDidRender.fire()}asTreeElement(e,t){if(e.stale)return{element:e,collapsible:e.hasChildren,collapsed:!0};let i;return i=!(t&&t.viewState.expanded&&e.id&&t.viewState.expanded.indexOf(e.id)>-1)&&e.collapsedByDefault,e.collapsedByDefault=void 0,{element:e,children:e.hasChildren?y.$.map(e.children,(e=>this.asTreeElement(e,t))):[],collapsible:e.hasChildren,collapsed:i}}processChildren(e){return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),e}dispose(){this.disposables.dispose()}}class Le{constructor(e){this.node=e}get element(){return{elements:this.node.element.elements.map((e=>e.element)),incompressible:this.node.element.incompressible}}get children(){return this.node.children.map((e=>new Le(e)))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}}class ke{constructor(e,t,i,n){this.renderer=e,this.nodeMapper=t,this.compressibleNodeMapperProvider=i,this.onDidChangeTwistieState=n,this.renderedNodes=new Map,this.disposables=[],this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,n)}renderCompressedElements(e,t,i,n){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(e),t,i.templateData,n)}renderTwistie(e,t){return e.slow?(t.classList.add(...D.lA.treeItemLoading.classNamesArray),!0):(t.classList.remove(...D.lA.treeItemLoading.classNamesArray),!1)}disposeElement(e,t,i,n){var o,s;null===(s=(o=this.renderer).disposeElement)||void 0===s||s.call(o,this.nodeMapper.map(e),t,i.templateData,n)}disposeCompressedElements(e,t,i,n){var o,s;null===(s=(o=this.renderer).disposeCompressedElements)||void 0===s||s.call(o,this.compressibleNodeMapperProvider().map(e),t,i.templateData,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear(),this.disposables=(0,a.B9)(this.disposables)}}class xe extends Se{constructor(e,t,i,n,o,s,r={}){super(e,t,i,o,s,r),this.compressionDelegate=n,this.compressibleNodeMapper=new b((e=>new Le(e))),this.filter=r.filter}createTree(e,t,i,n,o){const s=new B(i),r=n.map((e=>new ke(e,this.nodeMapper,(()=>this.compressibleNodeMapper),this._onDidChangeNodeSlowState.event))),a=function(e){const t=e&&we(e);return t&&Object.assign(Object.assign({},t),{keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},t.keyboardNavigationLabelProvider),{getCompressedNodeKeyboardNavigationLabel:t=>e.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.map((e=>e.element)))})})}(o)||{};return new ce(e,t,s,r,a)}asTreeElement(e,t){return Object.assign({incompressible:this.compressionDelegate.isIncompressible(e.element)},super.asTreeElement(e,t))}updateOptions(e={}){this.tree.updateOptions(e)}render(e,t){if(!this.identityProvider)return super.render(e,t);const i=e=>this.identityProvider.getId(e).toString(),n=e=>{const t=new Set;for(const n of e){const e=this.tree.getCompressedTreeNode(n===this.root?null:n);if(e.element)for(const n of e.element.elements)t.add(i(n.element))}return t},o=n(this.tree.getSelection()),s=n(this.tree.getFocus());super.render(e,t);const r=this.getSelection();let a=!1;const l=this.getFocus();let c=!1;const d=e=>{const t=e.element;if(t)for(let n=0;n<t.elements.length;n++){const e=i(t.elements[n].element),d=t.elements[t.elements.length-1].element;o.has(e)&&-1===r.indexOf(d)&&(r.push(d),a=!0),s.has(e)&&-1===l.indexOf(d)&&(l.push(d),c=!0)}e.children.forEach(d)};d(this.tree.getCompressedTreeNode(e===this.root?null:e)),a&&this.setSelection(r),c&&this.setFocus(l)}processChildren(e){return this.filter&&(e=y.$.filter(e,(e=>{const t=this.filter.filter(e,1),i="boolean"==typeof(n=t)?n?1:0:S(n)?L(n.visibility):L(n);var n;if(2===i)throw new Error("Recursive tree visibility not supported in async data compressed trees");return 1===i}))),super.processChildren(e)}}class De extends G{constructor(e,t,i,n,o,s={}){super(e,t,i,n,s),this.user=e,this.dataSource=o,this.identityProvider=s.identityProvider}createModel(e,t,i){return new Q(e,t,i)}}var Ne=i(33108),Ee=i(23193),Ie=i(38819),Te=i(39282),Me=i(5606),Ae=i(72065),Re=i(91847),Oe=i(89872),Pe=i(88810),Fe=i(97781),Be=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ve=function(e,t){return function(i,n){t(i,n,e)}};const We=(0,Ae.yh)("listService");let He=class{constructor(e){this._themeService=e,this.disposables=new a.SL,this.lists=[],this._lastFocusedWidget=void 0,this._hasCreatedStyleController=!1}get lastFocusedList(){return this._lastFocusedWidget}setLastFocusedList(e){var t,i;e!==this._lastFocusedWidget&&(null===(t=this._lastFocusedWidget)||void 0===t||t.getHTMLElement().classList.remove("last-focused"),this._lastFocusedWidget=e,null===(i=this._lastFocusedWidget)||void 0===i||i.getHTMLElement().classList.add("last-focused"))}register(e,t){if(!this._hasCreatedStyleController){this._hasCreatedStyleController=!0;const e=new l.wD((0,n.dS)(),"");this.disposables.add((0,Pe.Jl)(e,this._themeService))}if(this.lists.some((t=>t.widget===e)))throw new Error("Cannot register the same widget multiple times");const i={widget:e,extraContextKeys:t};return this.lists.push(i),e.getHTMLElement()===document.activeElement&&this.setLastFocusedList(e),(0,a.F8)(e.onDidFocus((()=>this.setLastFocusedList(e))),(0,a.OF)((()=>this.lists.splice(this.lists.indexOf(i),1))),e.onDidDispose((()=>{this.lists=this.lists.filter((e=>e!==i)),this._lastFocusedWidget===e&&this.setLastFocusedList(void 0)})))}dispose(){this.disposables.dispose()}};He=Be([Ve(0,Fe.XE)],He);const ze=new Ie.uy("listFocus",!0),je=new Ie.uy("listSupportsMultiselect",!0),Ue=Ie.Ao.and(ze,Ie.Ao.not(Te.d0)),Ke=new Ie.uy("listHasSelectionOrFocus",!1),$e=new Ie.uy("listDoubleSelection",!1),qe=new Ie.uy("listMultiSelection",!1),Ge=new Ie.uy("listSelectionNavigation",!1),Qe=new Ie.uy("listSupportsFind",!0),Ze=new Ie.uy("treeElementCanCollapse",!1),Ye=new Ie.uy("treeElementHasParent",!1),Je=new Ie.uy("treeElementCanExpand",!1),Xe=new Ie.uy("treeElementHasChild",!1),et=new Ie.uy("treeFindOpen",!1),tt="listTypeNavigationMode",it="listAutomaticKeyboardNavigation";function nt(e,t){const i=e.createScoped(t.getHTMLElement());return ze.bindTo(i),i}const ot="workbench.list.multiSelectModifier",st="workbench.list.openMode",rt="workbench.list.horizontalScrolling",at="workbench.list.defaultFindMode",lt="workbench.list.keyboardNavigation",ct="workbench.tree.indent",dt="workbench.tree.renderIndentGuides",ht="workbench.list.smoothScrolling",ut="workbench.list.mouseWheelScrollSensitivity",gt="workbench.list.fastScrollSensitivity",pt="workbench.tree.expandMode";function mt(e){return"alt"===e.getValue(ot)}class ft extends a.JT{constructor(e){super(),this.configurationService=e,this.useAltAsMultipleSelectionModifier=mt(e),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration((e=>{e.affectsConfiguration(ot)&&(this.useAltAsMultipleSelectionModifier=mt(this.configurationService))})))}isSelectionSingleChangeEvent(e){return this.useAltAsMultipleSelectionModifier?e.browserEvent.altKey:(0,l.Zo)(e)}isSelectionRangeChangeEvent(e){return(0,l.wn)(e)}}function _t(e,t){var i;const n=e.get(Ne.Ui),o=e.get(Re.d),s=new a.SL;return[Object.assign(Object.assign({},t),{keyboardNavigationDelegate:{mightProducePrintableCharacter:e=>o.mightProducePrintableCharacter(e)},smoothScrolling:Boolean(n.getValue(ht)),mouseWheelScrollSensitivity:n.getValue(ut),fastScrollSensitivity:n.getValue(gt),multipleSelectionController:null!==(i=t.multipleSelectionController)&&void 0!==i?i:s.add(new ft(n)),keyboardNavigationEventFilter:kt(o)}),s]}let vt=class extends l.aV{constructor(e,t,i,n,o,s,r,a,l,c){const d=void 0!==o.horizontalScrolling?o.horizontalScrolling:Boolean(l.getValue(rt)),[h,u]=c.invokeFunction(_t,o);super(e,t,i,n,Object.assign(Object.assign(Object.assign({keyboardSupport:!1},(0,Pe.o)(a.getColorTheme(),Pe.O2)),h),{horizontalScrolling:d})),this.disposables.add(u),this.contextKeyService=nt(s,this),this.themeService=a,this.listSupportsMultiSelect=je.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(!1!==o.multipleSelectionSupport);Ge.bindTo(this.contextKeyService).set(Boolean(o.selectionNavigation)),this.listHasSelectionOrFocus=Ke.bindTo(this.contextKeyService),this.listDoubleSelection=$e.bindTo(this.contextKeyService),this.listMultiSelection=qe.bindTo(this.contextKeyService),this.horizontalScrolling=o.horizontalScrolling,this._useAltAsMultipleSelectionModifier=mt(l),this.disposables.add(this.contextKeyService),this.disposables.add(r.register(this)),o.overrideStyles&&this.updateStyles(o.overrideStyles),this.disposables.add(this.onDidChangeSelection((()=>{const e=this.getSelection(),t=this.getFocus();this.contextKeyService.bufferChangeEvents((()=>{this.listHasSelectionOrFocus.set(e.length>0||t.length>0),this.listMultiSelection.set(e.length>1),this.listDoubleSelection.set(2===e.length)}))}))),this.disposables.add(this.onDidChangeFocus((()=>{const e=this.getSelection(),t=this.getFocus();this.listHasSelectionOrFocus.set(e.length>0||t.length>0)}))),this.disposables.add(l.onDidChangeConfiguration((e=>{e.affectsConfiguration(ot)&&(this._useAltAsMultipleSelectionModifier=mt(l));let t={};if(e.affectsConfiguration(rt)&&void 0===this.horizontalScrolling){const e=Boolean(l.getValue(rt));t=Object.assign(Object.assign({},t),{horizontalScrolling:e})}if(e.affectsConfiguration(ht)){const e=Boolean(l.getValue(ht));t=Object.assign(Object.assign({},t),{smoothScrolling:e})}if(e.affectsConfiguration(ut)){const e=l.getValue(ut);t=Object.assign(Object.assign({},t),{mouseWheelScrollSensitivity:e})}if(e.affectsConfiguration(gt)){const e=l.getValue(gt);t=Object.assign(Object.assign({},t),{fastScrollSensitivity:e})}Object.keys(t).length>0&&this.updateOptions(t)}))),this.navigator=new yt(this,Object.assign({configurationService:l},o)),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles&&this.updateStyles(e.overrideStyles),void 0!==e.multipleSelectionSupport&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){var t;null===(t=this._styler)||void 0===t||t.dispose(),this._styler=(0,Pe.Jl)(this,this.themeService,e)}dispose(){var e;null===(e=this._styler)||void 0===e||e.dispose(),super.dispose()}};vt=Be([Ve(5,Ie.i6),Ve(6,We),Ve(7,Fe.XE),Ve(8,Ne.Ui),Ve(9,Ae.TG)],vt);let bt=class extends class{constructor(e,t,i,n,o={}){const s=()=>this.model,r=n.map((e=>new c(e,s)));this.list=new l.aV(e,t,i,r,function(e,t){return Object.assign(Object.assign({},t),{accessibilityProvider:t.accessibilityProvider&&new d(e,t.accessibilityProvider)})}(s,o))}updateOptions(e){this.list.updateOptions(e)}getHTMLElement(){return this.list.getHTMLElement()}get onDidFocus(){return this.list.onDidFocus}get onDidDispose(){return this.list.onDidDispose}get onMouseDblClick(){return r.ju.map(this.list.onMouseDblClick,(({element:e,index:t,browserEvent:i})=>({element:void 0===e?void 0:this._model.get(e),index:t,browserEvent:i})))}get onPointer(){return r.ju.map(this.list.onPointer,(({element:e,index:t,browserEvent:i})=>({element:void 0===e?void 0:this._model.get(e),index:t,browserEvent:i})))}get onDidChangeSelection(){return r.ju.map(this.list.onDidChangeSelection,(({elements:e,indexes:t,browserEvent:i})=>({elements:e.map((e=>this._model.get(e))),indexes:t,browserEvent:i})))}get model(){return this._model}set model(e){this._model=e,this.list.splice(0,this.list.length,(0,o.w6)(e.length))}getFocus(){return this.list.getFocus()}getSelection(){return this.list.getSelection()}getSelectedElements(){return this.getSelection().map((e=>this.model.get(e)))}style(e){this.list.style(e)}dispose(){this.list.dispose()}}{constructor(e,t,i,n,o,s,r,l,c,d){const h=void 0!==o.horizontalScrolling?o.horizontalScrolling:Boolean(c.getValue(rt)),[u,g]=d.invokeFunction(_t,o);super(e,t,i,n,Object.assign(Object.assign(Object.assign({keyboardSupport:!1},(0,Pe.o)(l.getColorTheme(),Pe.O2)),u),{horizontalScrolling:h})),this.disposables=new a.SL,this.disposables.add(g),this.contextKeyService=nt(s,this),this.themeService=l,this.horizontalScrolling=o.horizontalScrolling,this.listSupportsMultiSelect=je.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(!1!==o.multipleSelectionSupport);Ge.bindTo(this.contextKeyService).set(Boolean(o.selectionNavigation)),this._useAltAsMultipleSelectionModifier=mt(c),this.disposables.add(this.contextKeyService),this.disposables.add(r.register(this)),o.overrideStyles&&this.updateStyles(o.overrideStyles),o.overrideStyles&&this.disposables.add((0,Pe.Jl)(this,l,o.overrideStyles)),this.disposables.add(c.onDidChangeConfiguration((e=>{e.affectsConfiguration(ot)&&(this._useAltAsMultipleSelectionModifier=mt(c));let t={};if(e.affectsConfiguration(rt)&&void 0===this.horizontalScrolling){const e=Boolean(c.getValue(rt));t=Object.assign(Object.assign({},t),{horizontalScrolling:e})}if(e.affectsConfiguration(ht)){const e=Boolean(c.getValue(ht));t=Object.assign(Object.assign({},t),{smoothScrolling:e})}if(e.affectsConfiguration(ut)){const e=c.getValue(ut);t=Object.assign(Object.assign({},t),{mouseWheelScrollSensitivity:e})}if(e.affectsConfiguration(gt)){const e=c.getValue(gt);t=Object.assign(Object.assign({},t),{fastScrollSensitivity:e})}Object.keys(t).length>0&&this.updateOptions(t)}))),this.navigator=new yt(this,Object.assign({configurationService:c},o)),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles&&this.updateStyles(e.overrideStyles),void 0!==e.multipleSelectionSupport&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){var t;null===(t=this._styler)||void 0===t||t.dispose(),this._styler=(0,Pe.Jl)(this,this.themeService,e)}dispose(){var e;null===(e=this._styler)||void 0===e||e.dispose(),this.disposables.dispose(),super.dispose()}};bt=Be([Ve(5,Ie.i6),Ve(6,We),Ve(7,Fe.XE),Ve(8,Ne.Ui),Ve(9,Ae.TG)],bt);let Ct=class extends p{constructor(e,t,i,n,o,s,r,a,l,c,d){const h=void 0!==s.horizontalScrolling?s.horizontalScrolling:Boolean(c.getValue(rt)),[u,g]=d.invokeFunction(_t,s);super(e,t,i,n,o,Object.assign(Object.assign(Object.assign({keyboardSupport:!1},(0,Pe.o)(l.getColorTheme(),Pe.O2)),u),{horizontalScrolling:h})),this.disposables.add(g),this.contextKeyService=nt(r,this),this.themeService=l,this.listSupportsMultiSelect=je.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(!1!==s.multipleSelectionSupport);Ge.bindTo(this.contextKeyService).set(Boolean(s.selectionNavigation)),this.listHasSelectionOrFocus=Ke.bindTo(this.contextKeyService),this.listDoubleSelection=$e.bindTo(this.contextKeyService),this.listMultiSelection=qe.bindTo(this.contextKeyService),this.horizontalScrolling=s.horizontalScrolling,this._useAltAsMultipleSelectionModifier=mt(c),this.disposables.add(this.contextKeyService),this.disposables.add(a.register(this)),s.overrideStyles&&this.updateStyles(s.overrideStyles),this.disposables.add(this.onDidChangeSelection((()=>{const e=this.getSelection(),t=this.getFocus();this.contextKeyService.bufferChangeEvents((()=>{this.listHasSelectionOrFocus.set(e.length>0||t.length>0),this.listMultiSelection.set(e.length>1),this.listDoubleSelection.set(2===e.length)}))}))),this.disposables.add(this.onDidChangeFocus((()=>{const e=this.getSelection(),t=this.getFocus();this.listHasSelectionOrFocus.set(e.length>0||t.length>0)}))),this.disposables.add(c.onDidChangeConfiguration((e=>{e.affectsConfiguration(ot)&&(this._useAltAsMultipleSelectionModifier=mt(c));let t={};if(e.affectsConfiguration(rt)&&void 0===this.horizontalScrolling){const e=Boolean(c.getValue(rt));t=Object.assign(Object.assign({},t),{horizontalScrolling:e})}if(e.affectsConfiguration(ht)){const e=Boolean(c.getValue(ht));t=Object.assign(Object.assign({},t),{smoothScrolling:e})}if(e.affectsConfiguration(ut)){const e=c.getValue(ut);t=Object.assign(Object.assign({},t),{mouseWheelScrollSensitivity:e})}if(e.affectsConfiguration(gt)){const e=c.getValue(gt);t=Object.assign(Object.assign({},t),{fastScrollSensitivity:e})}Object.keys(t).length>0&&this.updateOptions(t)}))),this.navigator=new St(this,Object.assign({configurationService:c},s)),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles&&this.updateStyles(e.overrideStyles),void 0!==e.multipleSelectionSupport&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){var t;null===(t=this._styler)||void 0===t||t.dispose(),this._styler=(0,Pe.Jl)(this,this.themeService,e)}dispose(){var e;null===(e=this._styler)||void 0===e||e.dispose(),this.disposables.dispose(),super.dispose()}};Ct=Be([Ve(6,Ie.i6),Ve(7,We),Ve(8,Fe.XE),Ve(9,Ne.Ui),Ve(10,Ae.TG)],Ct);class wt extends a.JT{constructor(e,t){var i;super(),this.widget=e,this._onDidOpen=this._register(new r.Q5),this.onDidOpen=this._onDidOpen.event,this._register(r.ju.filter(this.widget.onDidChangeSelection,(e=>e.browserEvent instanceof KeyboardEvent))((e=>this.onSelectionFromKeyboard(e)))),this._register(this.widget.onPointer((e=>this.onPointer(e.element,e.browserEvent)))),this._register(this.widget.onMouseDblClick((e=>this.onMouseDblClick(e.element,e.browserEvent)))),"boolean"!=typeof(null==t?void 0:t.openOnSingleClick)&&(null==t?void 0:t.configurationService)?(this.openOnSingleClick="doubleClick"!==(null==t?void 0:t.configurationService.getValue(st)),this._register(null==t?void 0:t.configurationService.onDidChangeConfiguration((()=>{this.openOnSingleClick="doubleClick"!==(null==t?void 0:t.configurationService.getValue(st))})))):this.openOnSingleClick=null===(i=null==t?void 0:t.openOnSingleClick)||void 0===i||i}onSelectionFromKeyboard(e){if(1!==e.elements.length)return;const t=e.browserEvent,i="boolean"!=typeof t.preserveFocus||t.preserveFocus,n="boolean"==typeof t.pinned?t.pinned:!i;this._open(this.getSelectedElement(),i,n,!1,e.browserEvent)}onPointer(e,t){if(!this.openOnSingleClick)return;if(2===t.detail)return;const i=1===t.button,n=t.ctrlKey||t.metaKey||t.altKey;this._open(e,!0,i,n,t)}onMouseDblClick(e,t){if(!t)return;const i=t.target;if(i.classList.contains("monaco-tl-twistie")||i.classList.contains("monaco-icon-label")&&i.classList.contains("folder-icon")&&t.offsetX<16)return;const n=t.ctrlKey||t.metaKey||t.altKey;this._open(e,!1,!0,n,t)}_open(e,t,i,n,o){e&&this._onDidOpen.fire({editorOptions:{preserveFocus:t,pinned:i,revealIfVisible:!0},sideBySide:n,element:e,browserEvent:o})}}class yt extends wt{constructor(e,t){super(e,t),this.widget=e}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class St extends wt{constructor(e,t){super(e,t)}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class Lt extends wt{constructor(e,t){super(e,t)}getSelectedElement(){var e;return null!==(e=this.widget.getSelection()[0])&&void 0!==e?e:void 0}}function kt(e){let t=!1;return i=>{if(i.toKeybinding().isModifierKey())return!1;if(t)return t=!1,!1;const n=e.softDispatch(i,i.target);return(null==n?void 0:n.enterChord)?(t=!0,!1):(t=!1,!n)}}let xt=class extends ae{constructor(e,t,i,n,o,s,r,a,l,c){const{options:d,getTypeNavigationMode:h,disposable:u}=s.invokeFunction(Mt,o);super(e,t,i,n,d),this.disposables.add(u),this.internals=new At(this,o,h,o.overrideStyles,r,a,l,c),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};xt=Be([Ve(5,Ae.TG),Ve(6,Ie.i6),Ve(7,We),Ve(8,Fe.XE),Ve(9,Ne.Ui)],xt);let Dt=class extends ce{constructor(e,t,i,n,o,s,r,a,l,c){const{options:d,getTypeNavigationMode:h,disposable:u}=s.invokeFunction(Mt,o);super(e,t,i,n,d),this.disposables.add(u),this.internals=new At(this,o,h,o.overrideStyles,r,a,l,c),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};Dt=Be([Ve(5,Ae.TG),Ve(6,Ie.i6),Ve(7,We),Ve(8,Fe.XE),Ve(9,Ne.Ui)],Dt);let Nt=class extends De{constructor(e,t,i,n,o,s,r,a,l,c,d){const{options:h,getTypeNavigationMode:u,disposable:g}=r.invokeFunction(Mt,s);super(e,t,i,n,o,h),this.disposables.add(g),this.internals=new At(this,s,u,s.overrideStyles,a,l,c,d),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};Nt=Be([Ve(6,Ae.TG),Ve(7,Ie.i6),Ve(8,We),Ve(9,Fe.XE),Ve(10,Ne.Ui)],Nt);let Et=class extends Se{constructor(e,t,i,n,o,s,r,a,l,c,d){const{options:h,getTypeNavigationMode:u,disposable:g}=r.invokeFunction(Mt,s);super(e,t,i,n,o,h),this.disposables.add(g),this.internals=new At(this,s,u,s.overrideStyles,a,l,c,d),this.disposables.add(this.internals)}get onDidOpen(){return this.internals.onDidOpen}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};Et=Be([Ve(6,Ae.TG),Ve(7,Ie.i6),Ve(8,We),Ve(9,Fe.XE),Ve(10,Ne.Ui)],Et);let It=class extends xe{constructor(e,t,i,n,o,s,r,a,l,c,d,h){const{options:u,getTypeNavigationMode:g,disposable:p}=a.invokeFunction(Mt,r);super(e,t,i,n,o,s,u),this.disposables.add(p),this.internals=new At(this,r,g,r.overrideStyles,l,c,d,h),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};function Tt(e){const t=e.getValue(at);if("highlight"===t)return I.Highlight;if("filter"===t)return I.Filter;const i=e.getValue(lt);return"simple"===i||"highlight"===i?I.Highlight:"filter"===i?I.Filter:void 0}function Mt(e,t){var i;const n=e.get(Ne.Ui),o=e.get(Me.u),s=e.get(Ie.i6),r=e.get(Ae.TG),a=void 0!==t.horizontalScrolling?t.horizontalScrolling:Boolean(n.getValue(rt)),[c,d]=r.invokeFunction(_t,t),h=t.additionalScrollHeight;return{getTypeNavigationMode:()=>{const e=s.getContextKeyValue(tt);if("automatic"===e)return l.AA.Automatic;if("trigger"===e)return l.AA.Trigger;return!1===s.getContextKeyValue(it)?l.AA.Trigger:void 0},disposable:d,options:Object.assign(Object.assign({keyboardSupport:!1},c),{indent:"number"==typeof n.getValue(ct)?n.getValue(ct):void 0,renderIndentGuides:n.getValue(dt),smoothScrolling:Boolean(n.getValue(ht)),defaultFindMode:Tt(n),horizontalScrolling:a,additionalScrollHeight:h,hideTwistiesOfChildlessElements:t.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:null!==(i=t.expandOnlyOnTwistieClick)&&void 0!==i?i:"doubleClick"===n.getValue(pt),contextViewProvider:o})}}It=Be([Ve(7,Ae.TG),Ve(8,Ie.i6),Ve(9,We),Ve(10,Fe.XE),Ve(11,Ne.Ui)],It);let At=class{constructor(e,t,i,n,o,s,r,a){var l;this.tree=e,this.themeService=r,this.disposables=[],this.contextKeyService=nt(o,e),this.listSupportsMultiSelect=je.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(!1!==t.multipleSelectionSupport);Ge.bindTo(this.contextKeyService).set(Boolean(t.selectionNavigation)),this.listSupportFindWidget=Qe.bindTo(this.contextKeyService),this.listSupportFindWidget.set(null===(l=t.findWidgetEnabled)||void 0===l||l),this.hasSelectionOrFocus=Ke.bindTo(this.contextKeyService),this.hasDoubleSelection=$e.bindTo(this.contextKeyService),this.hasMultiSelection=qe.bindTo(this.contextKeyService),this.treeElementCanCollapse=Ze.bindTo(this.contextKeyService),this.treeElementHasParent=Ye.bindTo(this.contextKeyService),this.treeElementCanExpand=Je.bindTo(this.contextKeyService),this.treeElementHasChild=Xe.bindTo(this.contextKeyService),this.treeFindOpen=et.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=mt(a),this.updateStyleOverrides(n);const c=()=>{const t=e.getFocus()[0];if(!t)return;const i=e.getNode(t);this.treeElementCanCollapse.set(i.collapsible&&!i.collapsed),this.treeElementHasParent.set(!!e.getParentElement(t)),this.treeElementCanExpand.set(i.collapsible&&i.collapsed),this.treeElementHasChild.set(!!e.getFirstElementChild(t))},d=new Set;d.add(tt),d.add(it),this.disposables.push(this.contextKeyService,s.register(e),e.onDidChangeSelection((()=>{const t=e.getSelection(),i=e.getFocus();this.contextKeyService.bufferChangeEvents((()=>{this.hasSelectionOrFocus.set(t.length>0||i.length>0),this.hasMultiSelection.set(t.length>1),this.hasDoubleSelection.set(2===t.length)}))})),e.onDidChangeFocus((()=>{const t=e.getSelection(),i=e.getFocus();this.hasSelectionOrFocus.set(t.length>0||i.length>0),c()})),e.onDidChangeCollapseState(c),e.onDidChangeModel(c),e.onDidChangeFindOpenState((e=>this.treeFindOpen.set(e))),a.onDidChangeConfiguration((i=>{let n={};if(i.affectsConfiguration(ot)&&(this._useAltAsMultipleSelectionModifier=mt(a)),i.affectsConfiguration(ct)){const e=a.getValue(ct);n=Object.assign(Object.assign({},n),{indent:e})}if(i.affectsConfiguration(dt)){const e=a.getValue(dt);n=Object.assign(Object.assign({},n),{renderIndentGuides:e})}if(i.affectsConfiguration(ht)){const e=Boolean(a.getValue(ht));n=Object.assign(Object.assign({},n),{smoothScrolling:e})}if((i.affectsConfiguration(at)||i.affectsConfiguration(lt))&&e.updateOptions({defaultFindMode:Tt(a)}),i.affectsConfiguration(rt)&&void 0===t.horizontalScrolling){const e=Boolean(a.getValue(rt));n=Object.assign(Object.assign({},n),{horizontalScrolling:e})}if(i.affectsConfiguration(pt)&&void 0===t.expandOnlyOnTwistieClick&&(n=Object.assign(Object.assign({},n),{expandOnlyOnTwistieClick:"doubleClick"===a.getValue(pt)})),i.affectsConfiguration(ut)){const e=a.getValue(ut);n=Object.assign(Object.assign({},n),{mouseWheelScrollSensitivity:e})}if(i.affectsConfiguration(gt)){const e=a.getValue(gt);n=Object.assign(Object.assign({},n),{fastScrollSensitivity:e})}Object.keys(n).length>0&&e.updateOptions(n)})),this.contextKeyService.onDidChangeContext((t=>{t.affectsSome(d)&&e.updateOptions({typeNavigationMode:i()})}))),this.navigator=new Lt(e,Object.assign({configurationService:a},t)),this.disposables.push(this.navigator)}get onDidOpen(){return this.navigator.onDidOpen}updateOptions(e){void 0!==e.multipleSelectionSupport&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyleOverrides(e){(0,a.B9)(this.styler),this.styler=e?(0,Pe.Jl)(this.tree,this.themeService,e):a.JT.None}dispose(){this.disposables=(0,a.B9)(this.disposables),(0,a.B9)(this.styler),this.styler=void 0}};At=Be([Ve(4,Ie.i6),Ve(5,We),Ve(6,Fe.XE),Ve(7,Ne.Ui)],At);Oe.B.as(Ee.IP.Configuration).registerConfiguration({id:"workbench",order:7,title:(0,R.NC)("workbenchConfigurationTitle","Workbench"),type:"object",properties:{[ot]:{type:"string",enum:["ctrlCmd","alt"],markdownEnumDescriptions:[(0,R.NC)("multiSelectModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),(0,R.NC)("multiSelectModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],default:"ctrlCmd",description:(0,R.NC)({key:"multiSelectModifier",comment:["- `ctrlCmd` refers to a value the setting can take and should not be localized.","- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized."]},"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.")},[st]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:(0,R.NC)({key:"openModeModifier",comment:["`singleClick` and `doubleClick` refers to a value the setting can take and should not be localized."]},"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.")},[rt]:{type:"boolean",default:!1,description:(0,R.NC)("horizontalScrolling setting","Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.")},[ct]:{type:"number",default:8,minimum:4,maximum:40,description:(0,R.NC)("tree indent setting","Controls tree indentation in pixels.")},[dt]:{type:"string",enum:["none","onHover","always"],default:"onHover",description:(0,R.NC)("render tree indent guides","Controls whether the tree should render indent guides.")},[ht]:{type:"boolean",default:!1,description:(0,R.NC)("list smoothScrolling setting","Controls whether lists and trees have smooth scrolling.")},[ut]:{type:"number",default:1,markdownDescription:(0,R.NC)("Mouse Wheel Scroll Sensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")},[gt]:{type:"number",default:5,description:(0,R.NC)("Fast Scroll Sensitivity","Scrolling speed multiplier when pressing `Alt`.")},[at]:{type:"string",enum:["highlight","filter"],enumDescriptions:[(0,R.NC)("defaultFindModeSettingKey.highlight","Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements."),(0,R.NC)("defaultFindModeSettingKey.filter","Filter elements when searching.")],default:"highlight",description:(0,R.NC)("defaultFindModeSettingKey","Controls the default find mode for lists and trees in the workbench.")},[lt]:{type:"string",enum:["simple","highlight","filter"],enumDescriptions:[(0,R.NC)("keyboardNavigationSettingKey.simple","Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes."),(0,R.NC)("keyboardNavigationSettingKey.highlight","Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements."),(0,R.NC)("keyboardNavigationSettingKey.filter","Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.")],default:"highlight",description:(0,R.NC)("keyboardNavigationSettingKey","Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter."),deprecated:!0,deprecationMessage:(0,R.NC)("keyboardNavigationSettingKeyDeprecated","Please use 'workbench.list.defaultFindMode' instead.")},[pt]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:(0,R.NC)("expand mode","Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.")}}})},43557:(e,t,i)=>{"use strict";i.d(t,{$V:()=>d,VZ:()=>s,in:()=>r,kw:()=>c});var n=i(4669),o=i(5976);const s=(0,i(72065).yh)("logService");var r;!function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Info=2]="Info",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.Off=6]="Off"}(r||(r={}));const a=r.Info;class l extends o.JT{constructor(){super(...arguments),this.level=a,this._onDidChangeLogLevel=this._register(new n.Q5)}setLevel(e){this.level!==e&&(this.level=e,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}}class c extends l{constructor(e=a){super(),this.setLevel(e)}trace(e,...t){this.getLevel()<=r.Trace&&console.log("%cTRACE","color: #888",e,...t)}debug(e,...t){this.getLevel()<=r.Debug&&console.log("%cDEBUG","background: #eee; color: #888",e,...t)}info(e,...t){this.getLevel()<=r.Info&&console.log("%c INFO","color: #33f",e,...t)}error(e,...t){this.getLevel()<=r.Error&&console.log("%c ERR","color: #f33",e,...t)}dispose(){}}class d extends o.JT{constructor(e){super(),this.logger=e,this._register(e)}getLevel(){return this.logger.getLevel()}trace(e,...t){this.logger.trace(e,...t)}debug(e,...t){this.logger.debug(e,...t)}info(e,...t){this.logger.info(e,...t)}error(e,...t){this.logger.error(e,...t)}}},98674:(e,t,i)=>{"use strict";i.d(t,{H0:()=>o,ZL:()=>n,lT:()=>l});var n,o,s=i(14603),r=i(63580),a=i(72065);!function(e){e[e.Hint=1]="Hint",e[e.Info=2]="Info",e[e.Warning=4]="Warning",e[e.Error=8]="Error"}(n||(n={})),function(e){e.compare=function(e,t){return t-e};const t=Object.create(null);t[e.Error]=(0,r.NC)("sev.error","Error"),t[e.Warning]=(0,r.NC)("sev.warning","Warning"),t[e.Info]=(0,r.NC)("sev.info","Info"),e.toString=function(e){return t[e]||""},e.fromSeverity=function(t){switch(t){case s.Z.Error:return e.Error;case s.Z.Warning:return e.Warning;case s.Z.Info:return e.Info;case s.Z.Ignore:return e.Hint}},e.toSeverity=function(t){switch(t){case e.Error:return s.Z.Error;case e.Warning:return s.Z.Warning;case e.Info:return s.Z.Info;case e.Hint:return s.Z.Ignore}}}(n||(n={})),function(e){const t="";function i(e,i){const o=[t];return e.source?o.push(e.source.replace("\xa6","\\\xa6")):o.push(t),e.code?"string"==typeof e.code?o.push(e.code.replace("\xa6","\\\xa6")):o.push(e.code.value.replace("\xa6","\\\xa6")):o.push(t),void 0!==e.severity&&null!==e.severity?o.push(n.toString(e.severity)):o.push(t),e.message&&i?o.push(e.message.replace("\xa6","\\\xa6")):o.push(t),void 0!==e.startLineNumber&&null!==e.startLineNumber?o.push(e.startLineNumber.toString()):o.push(t),void 0!==e.startColumn&&null!==e.startColumn?o.push(e.startColumn.toString()):o.push(t),void 0!==e.endLineNumber&&null!==e.endLineNumber?o.push(e.endLineNumber.toString()):o.push(t),void 0!==e.endColumn&&null!==e.endColumn?o.push(e.endColumn.toString()):o.push(t),o.push(t),o.join("\xa6")}e.makeKey=function(e){return i(e,!0)},e.makeKeyOptionalMessage=i}(o||(o={}));const l=(0,a.yh)("markerService")},59422:(e,t,i)=>{"use strict";i.d(t,{EO:()=>a,lT:()=>r,zb:()=>s});var n=i(14603),o=i(72065),s=n.Z;const r=(0,o.yh)("notificationService");class a{}},50988:(e,t,i)=>{"use strict";i.d(t,{Gs:()=>h,SW:()=>c,v4:()=>l,xI:()=>u,xn:()=>d});var n=i(5976),o=i(97295),s=i(70666),r=i(72065),a=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const l=(0,r.yh)("openerService"),c=Object.freeze({_serviceBrand:void 0,registerOpener:()=>n.JT.None,registerValidator:()=>n.JT.None,registerExternalUriResolver:()=>n.JT.None,setDefaultExternalOpener(){},registerExternalOpener:()=>n.JT.None,open(){return a(this,void 0,void 0,(function*(){return!1}))},resolveExternalUri(e){return a(this,void 0,void 0,(function*(){return{resolved:e,dispose(){}}}))}});function d(e,t){return s.o.isUri(e)?(0,o.qq)(e.scheme,t):(0,o.ok)(e,t+":")}function h(e,...t){return t.some((t=>d(e,t)))}function u(e){let t;const i=/^L?(\d+)(?:,(\d+))?(-L?(\d+)(?:,(\d+))?)?/.exec(e.fragment);return i&&(t={startLineNumber:parseInt(i[1]),startColumn:i[2]?parseInt(i[2]):1,endLineNumber:i[4]?parseInt(i[4]):void 0,endColumn:i[4]?i[5]?parseInt(i[5]):1:void 0},e=e.with({fragment:""})),{selection:t,uri:e}}},90535:(e,t,i)=>{"use strict";i.d(t,{Ex:()=>s,R9:()=>o,ek:()=>r});var n=i(72065);const o=(0,n.yh)("progressService");Object.freeze({total(){},worked(){},done(){}});class s{constructor(e){this.callback=e}report(e){this._value=e,this.callback(this._value)}}s.None=Object.freeze({report(){}});const r=(0,n.yh)("editorProgressService")},90725:(e,t,i)=>{"use strict";i.d(t,{IP:()=>a,Ry:()=>n});var n,o=i(9488),s=i(5976),r=i(89872);!function(e){e[e.PRESERVE=0]="PRESERVE",e[e.LAST=1]="LAST"}(n||(n={}));const a={Quickaccess:"workbench.contributions.quickaccess"};r.B.add(a.Quickaccess,new class{constructor(){this.providers=[],this.defaultProvider=void 0}registerQuickAccessProvider(e){return 0===e.prefix.length?this.defaultProvider=e:this.providers.push(e),this.providers.sort(((e,t)=>t.prefix.length-e.prefix.length)),(0,s.OF)((()=>{this.providers.splice(this.providers.indexOf(e),1),this.defaultProvider===e&&(this.defaultProvider=void 0)}))}getQuickAccessProviders(){return(0,o.kX)([this.defaultProvider,...this.providers])}getQuickAccessProvider(e){return e&&this.providers.find((t=>e.startsWith(t.prefix)))||void 0||this.defaultProvider}})},41157:(e,t,i)=>{"use strict";i.d(t,{eJ:()=>s,jG:()=>o.jG});var n=i(72065),o=i(67746);const s=(0,n.yh)("quickInputService")},89872:(e,t,i)=>{"use strict";i.d(t,{B:()=>s});var n=i(35146),o=i(98401);const s=new class{constructor(){this.data=new Map}add(e,t){n.ok(o.HD(e)),n.ok(o.Kn(t)),n.ok(!this.data.has(e),"There is already an extension with this id"),this.data.set(e,t)}as(e){return this.data.get(e)||null}}},87060:(e,t,i)=>{"use strict";i.d(t,{Uy:()=>g,vm:()=>f,fk:()=>p});var n,o=i(4669),s=i(5976),r=i(98401),a=i(15393),l=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};!function(e){e[e.None=0]="None",e[e.Initialized=1]="Initialized",e[e.Closed=2]="Closed"}(n||(n={}));class c extends s.JT{constructor(e,t=Object.create(null)){super(),this.database=e,this.options=t,this._onDidChangeStorage=this._register(new o.Q5),this.onDidChangeStorage=this._onDidChangeStorage.event,this.state=n.None,this.cache=new Map,this.flushDelayer=new a.rH(c.DEFAULT_FLUSH_DELAY),this.pendingDeletes=new Set,this.pendingInserts=new Map,this.whenFlushedCallbacks=[],this.registerListeners()}registerListeners(){this._register(this.database.onDidChangeItemsExternal((e=>this.onDidChangeItemsExternal(e))))}onDidChangeItemsExternal(e){var t,i;null===(t=e.changed)||void 0===t||t.forEach(((e,t)=>this.accept(t,e))),null===(i=e.deleted)||void 0===i||i.forEach((e=>this.accept(e,void 0)))}accept(e,t){if(this.state===n.Closed)return;let i=!1;if((0,r.Jp)(t))i=this.cache.delete(e);else{this.cache.get(e)!==t&&(this.cache.set(e,t),i=!0)}i&&this._onDidChangeStorage.fire(e)}get(e,t){const i=this.cache.get(e);return(0,r.Jp)(i)?t:i}getBoolean(e,t){const i=this.get(e);return(0,r.Jp)(i)?t:"true"===i}getNumber(e,t){const i=this.get(e);return(0,r.Jp)(i)?t:parseInt(i,10)}set(e,t){return l(this,void 0,void 0,(function*(){if(this.state===n.Closed)return;if((0,r.Jp)(t))return this.delete(e);const i=String(t);return this.cache.get(e)!==i?(this.cache.set(e,i),this.pendingInserts.set(e,i),this.pendingDeletes.delete(e),this._onDidChangeStorage.fire(e),this.doFlush()):void 0}))}delete(e){return l(this,void 0,void 0,(function*(){if(this.state===n.Closed)return;return this.cache.delete(e)?(this.pendingDeletes.has(e)||this.pendingDeletes.add(e),this.pendingInserts.delete(e),this._onDidChangeStorage.fire(e),this.doFlush()):void 0}))}get hasPending(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}flushPending(){return l(this,void 0,void 0,(function*(){if(!this.hasPending)return;const e={insert:this.pendingInserts,delete:this.pendingDeletes};return this.pendingDeletes=new Set,this.pendingInserts=new Map,this.database.updateItems(e).finally((()=>{var e;if(!this.hasPending)for(;this.whenFlushedCallbacks.length;)null===(e=this.whenFlushedCallbacks.pop())||void 0===e||e()}))}))}doFlush(e){return l(this,void 0,void 0,(function*(){return this.flushDelayer.trigger((()=>this.flushPending()),e)}))}dispose(){this.flushDelayer.dispose(),super.dispose()}}c.DEFAULT_FLUSH_DELAY=100;class d{constructor(){this.onDidChangeItemsExternal=o.ju.None,this.items=new Map}updateItems(e){var t,i;return l(this,void 0,void 0,(function*(){null===(t=e.insert)||void 0===t||t.forEach(((e,t)=>this.items.set(t,e))),null===(i=e.delete)||void 0===i||i.forEach((e=>this.items.delete(e)))}))}}var h=i(72065);const u="__$__targetStorageMarker",g=(0,h.yh)("storageService");var p;!function(e){e[e.NONE=0]="NONE",e[e.SHUTDOWN=1]="SHUTDOWN"}(p||(p={}));class m extends s.JT{constructor(e={flushInterval:m.DEFAULT_FLUSH_INTERVAL}){super(),this.options=e,this._onDidChangeValue=this._register(new o.K3),this.onDidChangeValue=this._onDidChangeValue.event,this._onDidChangeTarget=this._register(new o.K3),this._onWillSaveState=this._register(new o.Q5),this.onWillSaveState=this._onWillSaveState.event,this._workspaceKeyTargets=void 0,this._profileKeyTargets=void 0,this._applicationKeyTargets=void 0}emitDidChangeValue(e,t){if(t===u){switch(e){case-1:this._applicationKeyTargets=void 0;break;case 0:this._profileKeyTargets=void 0;break;case 1:this._workspaceKeyTargets=void 0}this._onDidChangeTarget.fire({scope:e})}else this._onDidChangeValue.fire({scope:e,key:t,target:this.getKeyTargets(e)[t]})}get(e,t,i){var n;return null===(n=this.getStorage(t))||void 0===n?void 0:n.get(e,i)}getBoolean(e,t,i){var n;return null===(n=this.getStorage(t))||void 0===n?void 0:n.getBoolean(e,i)}getNumber(e,t,i){var n;return null===(n=this.getStorage(t))||void 0===n?void 0:n.getNumber(e,i)}store(e,t,i,n){(0,r.Jp)(t)?this.remove(e,i):this.withPausedEmitters((()=>{var o;this.updateKeyTarget(e,i,n),null===(o=this.getStorage(i))||void 0===o||o.set(e,t)}))}remove(e,t){this.withPausedEmitters((()=>{var i;this.updateKeyTarget(e,t,void 0),null===(i=this.getStorage(t))||void 0===i||i.delete(e)}))}withPausedEmitters(e){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{e()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}updateKeyTarget(e,t,i){var n,o;const s=this.getKeyTargets(t);"number"==typeof i?s[e]!==i&&(s[e]=i,null===(n=this.getStorage(t))||void 0===n||n.set(u,JSON.stringify(s))):"number"==typeof s[e]&&(delete s[e],null===(o=this.getStorage(t))||void 0===o||o.set(u,JSON.stringify(s)))}get workspaceKeyTargets(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}get profileKeyTargets(){return this._profileKeyTargets||(this._profileKeyTargets=this.loadKeyTargets(0)),this._profileKeyTargets}get applicationKeyTargets(){return this._applicationKeyTargets||(this._applicationKeyTargets=this.loadKeyTargets(-1)),this._applicationKeyTargets}getKeyTargets(e){switch(e){case-1:return this.applicationKeyTargets;case 0:return this.profileKeyTargets;default:return this.workspaceKeyTargets}}loadKeyTargets(e){const t=this.get(u,e);if(t)try{return JSON.parse(t)}catch(i){}return Object.create(null)}}m.DEFAULT_FLUSH_INTERVAL=6e4;class f extends m{constructor(){super(),this.applicationStorage=this._register(new c(new d)),this.profileStorage=this._register(new c(new d)),this.workspaceStorage=this._register(new c(new d)),this._register(this.workspaceStorage.onDidChangeStorage((e=>this.emitDidChangeValue(1,e)))),this._register(this.profileStorage.onDidChangeStorage((e=>this.emitDidChangeValue(0,e)))),this._register(this.applicationStorage.onDidChangeStorage((e=>this.emitDidChangeValue(-1,e))))}getStorage(e){switch(e){case-1:return this.applicationStorage;case 0:return this.profileStorage;default:return this.workspaceStorage}}}},10829:(e,t,i)=>{"use strict";i.d(t,{b:()=>n});const n=(0,i(72065).yh)("telemetryService")},73910:(e,t,i)=>{"use strict";i.d(t,{$DX:()=>Kt,$d5:()=>St,ABB:()=>Z,AS1:()=>Lt,AWI:()=>Se,BOY:()=>fi,Bqu:()=>gt,C3g:()=>O,CA6:()=>ui,CNo:()=>Ve,Cdg:()=>Ht,CzK:()=>Ze,D0T:()=>ue,D1_:()=>pe,DEr:()=>zt,Dut:()=>le,E3h:()=>$t,EPQ:()=>M,EQn:()=>Pt,ES4:()=>De,EiJ:()=>Re,F3d:()=>wt,F9q:()=>st,Fm_:()=>ni,Fu1:()=>Ge,GO4:()=>U,Gj_:()=>li,Gwp:()=>kt,HCL:()=>$e,Hfx:()=>ge,Hz8:()=>jt,IPX:()=>h,IYc:()=>ri,Ido:()=>m,Itd:()=>hi,Ivo:()=>ci,JpG:()=>mi,K19:()=>Le,LLc:()=>lt,L_H:()=>X,L_t:()=>ct,LoV:()=>We,M6C:()=>mt,MUv:()=>Te,NOs:()=>he,NPS:()=>Bt,Ng6:()=>me,OLZ:()=>_i,OZR:()=>B,Oop:()=>ut,P4M:()=>Xe,P6G:()=>g,P6Y:()=>ot,PRb:()=>D,PX0:()=>xt,PpC:()=>je,Pvw:()=>E,QO2:()=>d,R80:()=>_,RV_:()=>A,Rzx:()=>Ne,SPM:()=>oi,SUG:()=>R,SUY:()=>si,Saq:()=>Mt,Sbf:()=>Be,Snq:()=>Si,SwI:()=>y,T83:()=>ae,Tnx:()=>ft,UnT:()=>Rt,VVv:()=>ze,Vqd:()=>Wt,XEs:()=>N,XL$:()=>rt,XZx:()=>f,Xy4:()=>gi,YI3:()=>T,ZGJ:()=>qt,ZnX:()=>Ci,_2n:()=>ht,_Yy:()=>He,_bK:()=>dt,_lC:()=>I,_t9:()=>F,_wn:()=>G,b6y:()=>te,b7$:()=>j,bKB:()=>Ke,brw:()=>pi,c63:()=>re,cbQ:()=>Vt,cvW:()=>de,dCr:()=>pt,dRz:()=>p,dt_:()=>x,etL:()=>Q,fEB:()=>ce,few:()=>se,g8u:()=>$,g_n:()=>Ee,gkn:()=>Oe,gpD:()=>ie,hEj:()=>ke,hX8:()=>Ue,hzo:()=>et,j51:()=>it,j5u:()=>z,jUe:()=>Me,jbW:()=>Ut,kJk:()=>be,kVY:()=>di,keg:()=>Ye,kvU:()=>bt,kwl:()=>wi,lRK:()=>v,lUq:()=>Gt,lWp:()=>ye,lXJ:()=>ee,loF:()=>ve,mHy:()=>at,mV1:()=>yt,nyM:()=>Ie,oQ$:()=>we,oSI:()=>Tt,opG:()=>Ce,ov3:()=>ai,pW3:()=>oe,paE:()=>P,phM:()=>qe,pnM:()=>Ae,ptc:()=>Pe,qeD:()=>q,rg2:()=>_t,rh:()=>S,s$:()=>Ct,sEe:()=>L,sKV:()=>Qe,sgC:()=>w,tZ6:()=>_e,uoC:()=>ne,url:()=>C,uxu:()=>Ot,vGG:()=>It,xL1:()=>b,xi6:()=>tt,y65:()=>At,yJx:()=>Fe,yb5:()=>xe,ynu:()=>Y,ypS:()=>Je,ytC:()=>vt,zJb:()=>k,zKr:()=>fe,zOm:()=>nt,zRJ:()=>J});var n=i(15393),o=i(41264),s=i(4669),r=i(98401),a=i(63580),l=i(81294),c=i(89872);function d(e){return`--vscode-${e.replace(/\./g,"-")}`}const h={ColorContribution:"base.contributions.colors"};const u=new class{constructor(){this._onDidChangeSchema=new s.Q5,this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:"object",properties:{}},this.colorReferenceSchema={type:"string",enum:[],enumDescriptions:[]},this.colorsById={}}registerColor(e,t,i,n=!1,o){const s={id:e,description:i,defaults:t,needsTransparency:n,deprecationMessage:o};this.colorsById[e]=s;const r={type:"string",description:i,format:"color-hex",defaultSnippets:[{body:"${1:#ff0000}"}]};return o&&(r.deprecationMessage=o),this.colorSchema.properties[e]=r,this.colorReferenceSchema.enum.push(e),this.colorReferenceSchema.enumDescriptions.push(i),this._onDidChangeSchema.fire(),e}getColors(){return Object.keys(this.colorsById).map((e=>this.colorsById[e]))}resolveDefaultColor(e,t){const i=this.colorsById[e];if(i&&i.defaults){return Si(i.defaults[t.type],t)}}getColorSchema(){return this.colorSchema}toString(){return Object.keys(this.colorsById).sort(((e,t)=>{const i=-1===e.indexOf(".")?0:1,n=-1===t.indexOf(".")?0:1;return i!==n?i-n:e.localeCompare(t)})).map((e=>`- \`${e}\`: ${this.colorsById[e].description}`)).join("\n")}};function g(e,t,i,n,o){return u.registerColor(e,(null===(s=t)||void 0===s.hcLight&&(null===s.hcDark||"string"==typeof s.hcDark?s.hcLight=s.hcDark:s.hcLight=s.light),s),i,n,o);var s}c.B.add(h.ColorContribution,u);const p=g("foreground",{dark:"#CCCCCC",light:"#616161",hcDark:"#FFFFFF",hcLight:"#292929"},a.NC("foreground","Overall foreground color. This color is only used if not overridden by a component.")),m=(g("disabledForeground",{dark:"#CCCCCC80",light:"#61616180",hcDark:"#A5A5A5",hcLight:"#7F7F7F"},a.NC("disabledForeground","Overall foreground for disabled elements. This color is only used if not overridden by a component.")),g("errorForeground",{dark:"#F48771",light:"#A1260D",hcDark:"#F48771",hcLight:"#B5200D"},a.NC("errorForeground","Overall foreground color for error messages. This color is only used if not overridden by a component."))),f=(g("descriptionForeground",{light:"#717171",dark:Ci(p,.7),hcDark:Ci(p,.7),hcLight:Ci(p,.7)},a.NC("descriptionForeground","Foreground color for description text providing additional information, for example for a label.")),g("icon.foreground",{dark:"#C5C5C5",light:"#424242",hcDark:"#FFFFFF",hcLight:"#292929"},a.NC("iconForeground","The default color for icons in the workbench."))),_=g("focusBorder",{dark:"#007FD4",light:"#0090F1",hcDark:"#F38518",hcLight:"#0F4A85"},a.NC("focusBorder","Overall border color for focused elements. This color is only used if not overridden by a component.")),v=g("contrastBorder",{light:null,dark:null,hcDark:"#6FC3DF",hcLight:"#0F4A85"},a.NC("contrastBorder","An extra border around elements to separate them from others for greater contrast.")),b=g("contrastActiveBorder",{light:null,dark:null,hcDark:_,hcLight:_},a.NC("activeContrastBorder","An extra border around active elements to separate them from others for greater contrast.")),C=(g("selection.background",{light:null,dark:null,hcDark:null,hcLight:null},a.NC("selectionBackground","The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor.")),g("textSeparator.foreground",{light:"#0000002e",dark:"#ffffff2e",hcDark:o.Il.black,hcLight:"#292929"},a.NC("textSeparatorForeground","Color for text separators.")),g("textLink.foreground",{light:"#006AB1",dark:"#3794FF",hcDark:"#3794FF",hcLight:"#0F4A85"},a.NC("textLinkForeground","Foreground color for links in text."))),w=g("textLink.activeForeground",{light:"#006AB1",dark:"#3794FF",hcDark:"#3794FF",hcLight:"#0F4A85"},a.NC("textLinkActiveForeground","Foreground color for links in text when clicked on and on mouse hover.")),y=(g("textPreformat.foreground",{light:"#A31515",dark:"#D7BA7D",hcDark:"#D7BA7D",hcLight:"#292929"},a.NC("textPreformatForeground","Foreground color for preformatted text segments.")),g("textBlockQuote.background",{light:"#7f7f7f1a",dark:"#7f7f7f1a",hcDark:null,hcLight:"#F2F2F2"},a.NC("textBlockQuoteBackground","Background color for block quotes in text.")),g("textBlockQuote.border",{light:"#007acc80",dark:"#007acc80",hcDark:o.Il.white,hcLight:"#292929"},a.NC("textBlockQuoteBorder","Border color for block quotes in text.")),g("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hcDark:o.Il.black,hcLight:"#F2F2F2"},a.NC("textCodeBlockBackground","Background color for code blocks in text."))),S=g("widget.shadow",{dark:Ci(o.Il.black,.36),light:Ci(o.Il.black,.16),hcDark:null,hcLight:null},a.NC("widgetShadow","Shadow color of widgets such as find/replace inside the editor.")),L=g("input.background",{dark:"#3C3C3C",light:o.Il.white,hcDark:o.Il.black,hcLight:o.Il.white},a.NC("inputBoxBackground","Input box background.")),k=g("input.foreground",{dark:p,light:p,hcDark:p,hcLight:p},a.NC("inputBoxForeground","Input box foreground.")),x=g("input.border",{dark:null,light:null,hcDark:v,hcLight:v},a.NC("inputBoxBorder","Input box border.")),D=g("inputOption.activeBorder",{dark:"#007ACC00",light:"#007ACC00",hcDark:v,hcLight:v},a.NC("inputBoxActiveOptionBorder","Border color of activated options in input fields.")),N=(g("inputOption.hoverBackground",{dark:"#5a5d5e80",light:"#b8b8b850",hcDark:null,hcLight:null},a.NC("inputOption.hoverBackground","Background color of activated options in input fields.")),g("inputOption.activeBackground",{dark:Ci(_,.4),light:Ci(_,.2),hcDark:o.Il.transparent,hcLight:o.Il.transparent},a.NC("inputOption.activeBackground","Background hover color of options in input fields."))),E=g("inputOption.activeForeground",{dark:o.Il.white,light:o.Il.black,hcDark:null,hcLight:p},a.NC("inputOption.activeForeground","Foreground color of activated options in input fields.")),I=(g("input.placeholderForeground",{light:Ci(p,.5),dark:Ci(p,.5),hcDark:Ci(p,.7),hcLight:Ci(p,.7)},a.NC("inputPlaceholderForeground","Input box foreground color for placeholder text.")),g("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hcDark:o.Il.black,hcLight:o.Il.white},a.NC("inputValidationInfoBackground","Input validation background color for information severity."))),T=g("inputValidation.infoForeground",{dark:null,light:null,hcDark:null,hcLight:p},a.NC("inputValidationInfoForeground","Input validation foreground color for information severity.")),M=g("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hcDark:v,hcLight:v},a.NC("inputValidationInfoBorder","Input validation border color for information severity.")),A=g("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hcDark:o.Il.black,hcLight:o.Il.white},a.NC("inputValidationWarningBackground","Input validation background color for warning severity.")),R=g("inputValidation.warningForeground",{dark:null,light:null,hcDark:null,hcLight:p},a.NC("inputValidationWarningForeground","Input validation foreground color for warning severity.")),O=g("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hcDark:v,hcLight:v},a.NC("inputValidationWarningBorder","Input validation border color for warning severity.")),P=g("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hcDark:o.Il.black,hcLight:o.Il.white},a.NC("inputValidationErrorBackground","Input validation background color for error severity.")),F=g("inputValidation.errorForeground",{dark:null,light:null,hcDark:null,hcLight:p},a.NC("inputValidationErrorForeground","Input validation foreground color for error severity.")),B=g("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hcDark:v,hcLight:v},a.NC("inputValidationErrorBorder","Input validation border color for error severity.")),V=g("dropdown.background",{dark:"#3C3C3C",light:o.Il.white,hcDark:o.Il.black,hcLight:o.Il.white},a.NC("dropdownBackground","Dropdown background.")),W=(g("dropdown.listBackground",{dark:null,light:null,hcDark:o.Il.black,hcLight:o.Il.white},a.NC("dropdownListBackground","Dropdown list background.")),g("dropdown.foreground",{dark:"#F0F0F0",light:null,hcDark:o.Il.white,hcLight:p},a.NC("dropdownForeground","Dropdown foreground."))),H=g("dropdown.border",{dark:V,light:"#CECECE",hcDark:v,hcLight:v},a.NC("dropdownBorder","Dropdown border.")),z=(g("checkbox.background",{dark:V,light:V,hcDark:V,hcLight:V},a.NC("checkbox.background","Background color of checkbox widget.")),g("checkbox.foreground",{dark:W,light:W,hcDark:W,hcLight:W},a.NC("checkbox.foreground","Foreground color of checkbox widget.")),g("checkbox.border",{dark:H,light:H,hcDark:H,hcLight:H},a.NC("checkbox.border","Border color of checkbox widget.")),g("button.foreground",{dark:o.Il.white,light:o.Il.white,hcDark:o.Il.white,hcLight:o.Il.white},a.NC("buttonForeground","Button foreground color."))),j=(g("button.separator",{dark:Ci(z,.4),light:Ci(z,.4),hcDark:Ci(z,.4),hcLight:Ci(z,.4)},a.NC("buttonSeparator","Button separator color.")),g("button.background",{dark:"#0E639C",light:"#007ACC",hcDark:null,hcLight:"#0F4A85"},a.NC("buttonBackground","Button background color."))),U=g("button.hoverBackground",{dark:bi(j,.2),light:vi(j,.2),hcDark:null,hcLight:null},a.NC("buttonHoverBackground","Button background color when hovering.")),K=(g("button.border",{dark:v,light:v,hcDark:v,hcLight:v},a.NC("buttonBorder","Button border color.")),g("button.secondaryForeground",{dark:o.Il.white,light:o.Il.white,hcDark:o.Il.white,hcLight:p},a.NC("buttonSecondaryForeground","Secondary button foreground color.")),g("button.secondaryBackground",{dark:"#3A3D41",light:"#5F6A79",hcDark:null,hcLight:o.Il.white},a.NC("buttonSecondaryBackground","Secondary button background color."))),$=(g("button.secondaryHoverBackground",{dark:bi(K,.2),light:vi(K,.2),hcDark:null,hcLight:null},a.NC("buttonSecondaryHoverBackground","Secondary button background color when hovering.")),g("badge.background",{dark:"#4D4D4D",light:"#C4C4C4",hcDark:o.Il.black,hcLight:"#0F4A85"},a.NC("badgeBackground","Badge background color. Badges are small information labels, e.g. for search results count."))),q=g("badge.foreground",{dark:o.Il.white,light:"#333",hcDark:o.Il.white,hcLight:o.Il.white},a.NC("badgeForeground","Badge foreground color. Badges are small information labels, e.g. for search results count.")),G=g("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hcDark:null,hcLight:null},a.NC("scrollbarShadow","Scrollbar shadow to indicate that the view is scrolled.")),Q=g("scrollbarSlider.background",{dark:o.Il.fromHex("#797979").transparent(.4),light:o.Il.fromHex("#646464").transparent(.4),hcDark:Ci(v,.6),hcLight:Ci(v,.4)},a.NC("scrollbarSliderBackground","Scrollbar slider background color.")),Z=g("scrollbarSlider.hoverBackground",{dark:o.Il.fromHex("#646464").transparent(.7),light:o.Il.fromHex("#646464").transparent(.7),hcDark:Ci(v,.8),hcLight:Ci(v,.8)},a.NC("scrollbarSliderHoverBackground","Scrollbar slider background color when hovering.")),Y=g("scrollbarSlider.activeBackground",{dark:o.Il.fromHex("#BFBFBF").transparent(.4),light:o.Il.fromHex("#000000").transparent(.6),hcDark:v,hcLight:v},a.NC("scrollbarSliderActiveBackground","Scrollbar slider background color when clicked on.")),J=g("progressBar.background",{dark:o.Il.fromHex("#0E70C0"),light:o.Il.fromHex("#0E70C0"),hcDark:v,hcLight:v},a.NC("progressBarBackground","Background color of the progress bar that can show for long running operations.")),X=g("editorError.background",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("editorError.background","Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),ee=g("editorError.foreground",{dark:"#F14C4C",light:"#E51400",hcDark:"#F48771",hcLight:"#B5200D"},a.NC("editorError.foreground","Foreground color of error squigglies in the editor.")),te=g("editorError.border",{dark:null,light:null,hcDark:o.Il.fromHex("#E47777").transparent(.8),hcLight:"#B5200D"},a.NC("errorBorder","Border color of error boxes in the editor.")),ie=g("editorWarning.background",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("editorWarning.background","Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),ne=g("editorWarning.foreground",{dark:"#CCA700",light:"#BF8803",hcDark:"#FFD37",hcLight:"#895503"},a.NC("editorWarning.foreground","Foreground color of warning squigglies in the editor.")),oe=g("editorWarning.border",{dark:null,light:null,hcDark:o.Il.fromHex("#FFCC00").transparent(.8),hcLight:"#"},a.NC("warningBorder","Border color of warning boxes in the editor.")),se=g("editorInfo.background",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("editorInfo.background","Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),re=g("editorInfo.foreground",{dark:"#3794FF",light:"#1a85ff",hcDark:"#3794FF",hcLight:"#1a85ff"},a.NC("editorInfo.foreground","Foreground color of info squigglies in the editor.")),ae=g("editorInfo.border",{dark:null,light:null,hcDark:o.Il.fromHex("#3794FF").transparent(.8),hcLight:"#292929"},a.NC("infoBorder","Border color of info boxes in the editor.")),le=g("editorHint.foreground",{dark:o.Il.fromHex("#eeeeee").transparent(.7),light:"#6c6c6c",hcDark:null,hcLight:null},a.NC("editorHint.foreground","Foreground color of hint squigglies in the editor.")),ce=g("editorHint.border",{dark:null,light:null,hcDark:o.Il.fromHex("#eeeeee").transparent(.8),hcLight:"#292929"},a.NC("hintBorder","Border color of hint boxes in the editor.")),de=(g("sash.hoverBorder",{dark:_,light:_,hcDark:_,hcLight:_},a.NC("sashActiveBorder","Border color of active sashes.")),g("editor.background",{light:"#ffffff",dark:"#1E1E1E",hcDark:o.Il.black,hcLight:o.Il.white},a.NC("editorBackground","Editor background color."))),he=g("editor.foreground",{light:"#333333",dark:"#BBBBBB",hcDark:o.Il.white,hcLight:p},a.NC("editorForeground","Editor default foreground color.")),ue=(g("editorStickyScroll.background",{light:de,dark:de,hcDark:de,hcLight:de},a.NC("editorStickyScrollBackground","Sticky scroll background color for the editor")),g("editorStickyScrollHover.background",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:null,hcLight:o.Il.fromHex("#0F4A85").transparent(.1)},a.NC("editorStickyScrollHoverBackground","Sticky scroll on hover background color for the editor")),g("editorWidget.background",{dark:"#252526",light:"#F3F3F3",hcDark:"#0C141F",hcLight:o.Il.white},a.NC("editorWidgetBackground","Background color of editor widgets, such as find/replace."))),ge=g("editorWidget.foreground",{dark:p,light:p,hcDark:p,hcLight:p},a.NC("editorWidgetForeground","Foreground color of editor widgets, such as find/replace.")),pe=g("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hcDark:v,hcLight:v},a.NC("editorWidgetBorder","Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.")),me=g("editorWidget.resizeBorder",{light:null,dark:null,hcDark:null,hcLight:null},a.NC("editorWidgetResizeBorder","Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.")),fe=g("quickInput.background",{dark:ue,light:ue,hcDark:ue,hcLight:ue},a.NC("pickerBackground","Quick picker background color. The quick picker widget is the container for pickers like the command palette.")),_e=g("quickInput.foreground",{dark:ge,light:ge,hcDark:ge,hcLight:ge},a.NC("pickerForeground","Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.")),ve=g("quickInputTitle.background",{dark:new o.Il(new o.VS(255,255,255,.105)),light:new o.Il(new o.VS(0,0,0,.06)),hcDark:"#000000",hcLight:o.Il.white},a.NC("pickerTitleBackground","Quick picker title background color. The quick picker widget is the container for pickers like the command palette.")),be=g("pickerGroup.foreground",{dark:"#3794FF",light:"#0066BF",hcDark:o.Il.white,hcLight:"#0F4A85"},a.NC("pickerGroupForeground","Quick picker color for grouping labels.")),Ce=g("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hcDark:o.Il.white,hcLight:"#0F4A85"},a.NC("pickerGroupBorder","Quick picker color for grouping borders.")),we=g("keybindingLabel.background",{dark:new o.Il(new o.VS(128,128,128,.17)),light:new o.Il(new o.VS(221,221,221,.4)),hcDark:o.Il.transparent,hcLight:o.Il.transparent},a.NC("keybindingLabelBackground","Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.")),ye=g("keybindingLabel.foreground",{dark:o.Il.fromHex("#CCCCCC"),light:o.Il.fromHex("#555555"),hcDark:o.Il.white,hcLight:p},a.NC("keybindingLabelForeground","Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.")),Se=g("keybindingLabel.border",{dark:new o.Il(new o.VS(51,51,51,.6)),light:new o.Il(new o.VS(204,204,204,.4)),hcDark:new o.Il(new o.VS(111,195,223)),hcLight:v},a.NC("keybindingLabelBorder","Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.")),Le=g("keybindingLabel.bottomBorder",{dark:new o.Il(new o.VS(68,68,68,.6)),light:new o.Il(new o.VS(187,187,187,.4)),hcDark:new o.Il(new o.VS(111,195,223)),hcLight:p},a.NC("keybindingLabelBottomBorder","Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.")),ke=g("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hcDark:"#f3f518",hcLight:"#0F4A85"},a.NC("editorSelectionBackground","Color of the editor selection.")),xe=g("editor.selectionForeground",{light:null,dark:null,hcDark:"#000000",hcLight:o.Il.white},a.NC("editorSelectionForeground","Color of the selected text for high contrast.")),De=g("editor.inactiveSelectionBackground",{light:Ci(ke,.5),dark:Ci(ke,.5),hcDark:Ci(ke,.7),hcLight:Ci(ke,.5)},a.NC("editorInactiveSelection","Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations."),!0),Ne=g("editor.selectionHighlightBackground",{light:yi(ke,de,.3,.6),dark:yi(ke,de,.3,.6),hcDark:null,hcLight:null},a.NC("editorSelectionHighlight","Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations."),!0),Ee=g("editor.selectionHighlightBorder",{light:null,dark:null,hcDark:b,hcLight:b},a.NC("editorSelectionHighlightBorder","Border color for regions with the same content as the selection.")),Ie=g("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hcDark:null,hcLight:null},a.NC("editorFindMatch","Color of the current search match.")),Te=g("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hcDark:null,hcLight:null},a.NC("findMatchHighlight","Color of the other search matches. The color must not be opaque so as not to hide underlying decorations."),!0),Me=g("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hcDark:null,hcLight:null},a.NC("findRangeHighlight","Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),Ae=g("editor.findMatchBorder",{light:null,dark:null,hcDark:b,hcLight:b},a.NC("editorFindMatchBorder","Border color of the current search match.")),Re=g("editor.findMatchHighlightBorder",{light:null,dark:null,hcDark:b,hcLight:b},a.NC("findMatchHighlightBorder","Border color of the other search matches.")),Oe=g("editor.findRangeHighlightBorder",{dark:null,light:null,hcDark:Ci(b,.4),hcLight:Ci(b,.4)},a.NC("findRangeHighlightBorder","Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),Pe=(g("searchEditor.findMatchBackground",{light:Ci(Te,.66),dark:Ci(Te,.66),hcDark:Te,hcLight:Te},a.NC("searchEditor.queryMatch","Color of the Search Editor query matches.")),g("searchEditor.findMatchBorder",{light:Ci(Re,.66),dark:Ci(Re,.66),hcDark:Re,hcLight:Re},a.NC("searchEditor.editorFindMatchBorder","Border color of the Search Editor query matches.")),g("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hcDark:"#ADD6FF26",hcLight:null},a.NC("hoverHighlight","Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations."),!0)),Fe=g("editorHoverWidget.background",{light:ue,dark:ue,hcDark:ue,hcLight:ue},a.NC("hoverBackground","Background color of the editor hover.")),Be=g("editorHoverWidget.foreground",{light:ge,dark:ge,hcDark:ge,hcLight:ge},a.NC("hoverForeground","Foreground color of the editor hover.")),Ve=g("editorHoverWidget.border",{light:pe,dark:pe,hcDark:pe,hcLight:pe},a.NC("hoverBorder","Border color of the editor hover.")),We=g("editorHoverWidget.statusBarBackground",{dark:bi(Fe,.2),light:vi(Fe,.05),hcDark:ue,hcLight:ue},a.NC("statusBarBackground","Background color of the editor hover status bar.")),He=g("editorLink.activeForeground",{dark:"#4E94CE",light:o.Il.blue,hcDark:o.Il.cyan,hcLight:"#292929"},a.NC("activeLinkForeground","Color of active links.")),ze=g("editorInlayHint.foreground",{dark:Ci(q,.8),light:Ci(q,.8),hcDark:q,hcLight:q},a.NC("editorInlayHintForeground","Foreground color of inline hints")),je=g("editorInlayHint.background",{dark:Ci($,.6),light:Ci($,.3),hcDark:$,hcLight:$},a.NC("editorInlayHintBackground","Background color of inline hints")),Ue=g("editorInlayHint.typeForeground",{dark:ze,light:ze,hcDark:ze,hcLight:ze},a.NC("editorInlayHintForegroundTypes","Foreground color of inline hints for types")),Ke=g("editorInlayHint.typeBackground",{dark:je,light:je,hcDark:je,hcLight:je},a.NC("editorInlayHintBackgroundTypes","Background color of inline hints for types")),$e=g("editorInlayHint.parameterForeground",{dark:ze,light:ze,hcDark:ze,hcLight:ze},a.NC("editorInlayHintForegroundParameter","Foreground color of inline hints for parameters")),qe=g("editorInlayHint.parameterBackground",{dark:je,light:je,hcDark:je,hcLight:je},a.NC("editorInlayHintBackgroundParameter","Background color of inline hints for parameters")),Ge=g("editorLightBulb.foreground",{dark:"#FFCC00",light:"#DDB100",hcDark:"#FFCC00",hcLight:"#007ACC"},a.NC("editorLightBulbForeground","The color used for the lightbulb actions icon.")),Qe=g("editorLightBulbAutoFix.foreground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},a.NC("editorLightBulbAutoFixForeground","The color used for the lightbulb auto fix actions icon.")),Ze=new o.Il(new o.VS(155,185,85,.2)),Ye=new o.Il(new o.VS(255,0,0,.2)),Je=g("diffEditor.insertedTextBackground",{dark:"#9ccc2c33",light:"#9ccc2c66",hcDark:null,hcLight:null},a.NC("diffEditorInserted","Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),Xe=g("diffEditor.removedTextBackground",{dark:"#ff000066",light:"#ff00004d",hcDark:null,hcLight:null},a.NC("diffEditorRemoved","Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations."),!0),et=g("diffEditor.insertedLineBackground",{dark:Ze,light:Ze,hcDark:null,hcLight:null},a.NC("diffEditorInsertedLines","Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),tt=g("diffEditor.removedLineBackground",{dark:Ye,light:Ye,hcDark:null,hcLight:null},a.NC("diffEditorRemovedLines","Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations."),!0),it=g("diffEditorGutter.insertedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("diffEditorInsertedLineGutter","Background color for the margin where lines got inserted.")),nt=g("diffEditorGutter.removedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("diffEditorRemovedLineGutter","Background color for the margin where lines got removed.")),ot=g("diffEditorOverview.insertedForeground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("diffEditorOverviewInserted","Diff overview ruler foreground for inserted content.")),st=g("diffEditorOverview.removedForeground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("diffEditorOverviewRemoved","Diff overview ruler foreground for removed content.")),rt=g("diffEditor.insertedTextBorder",{dark:null,light:null,hcDark:"#33ff2eff",hcLight:"#374E06"},a.NC("diffEditorInsertedOutline","Outline color for the text that got inserted.")),at=g("diffEditor.removedTextBorder",{dark:null,light:null,hcDark:"#FF008F",hcLight:"#AD0707"},a.NC("diffEditorRemovedOutline","Outline color for text that got removed.")),lt=g("diffEditor.border",{dark:null,light:null,hcDark:v,hcLight:v},a.NC("diffEditorBorder","Border color between the two text editors.")),ct=g("diffEditor.diagonalFill",{dark:"#cccccc33",light:"#22222233",hcDark:null,hcLight:null},a.NC("diffDiagonalFill","Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.")),dt=g("list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listFocusBackground","List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),ht=g("list.focusForeground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listFocusForeground","List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),ut=g("list.focusOutline",{dark:_,light:_,hcDark:b,hcLight:b},a.NC("listFocusOutline","List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),gt=g("list.focusAndSelectionOutline",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listFocusAndSelectionOutline","List/Tree outline color for the focused item when the list/tree is active and selected. An active list/tree has keyboard focus, an inactive does not.")),pt=g("list.activeSelectionBackground",{dark:"#04395E",light:"#0060C0",hcDark:null,hcLight:o.Il.fromHex("#0F4A85").transparent(.1)},a.NC("listActiveSelectionBackground","List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),mt=g("list.activeSelectionForeground",{dark:o.Il.white,light:o.Il.white,hcDark:null,hcLight:null},a.NC("listActiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),ft=g("list.activeSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listActiveSelectionIconForeground","List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),_t=g("list.inactiveSelectionBackground",{dark:"#37373D",light:"#E4E6F1",hcDark:null,hcLight:o.Il.fromHex("#0F4A85").transparent(.1)},a.NC("listInactiveSelectionBackground","List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),vt=g("list.inactiveSelectionForeground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listInactiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),bt=g("list.inactiveSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listInactiveSelectionIconForeground","List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),Ct=g("list.inactiveFocusBackground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listInactiveFocusBackground","List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),wt=g("list.inactiveFocusOutline",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listInactiveFocusOutline","List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),yt=g("list.hoverBackground",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:null,hcLight:o.Il.fromHex("#0F4A85").transparent(.1)},a.NC("listHoverBackground","List/Tree background when hovering over items using the mouse.")),St=g("list.hoverForeground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listHoverForeground","List/Tree foreground when hovering over items using the mouse.")),Lt=g("list.dropBackground",{dark:"#062F4A",light:"#D6EBFF",hcDark:null,hcLight:null},a.NC("listDropBackground","List/Tree drag and drop background when moving items around using the mouse.")),kt=g("list.highlightForeground",{dark:"#2AAAFF",light:"#0066BF",hcDark:_,hcLight:_},a.NC("highlight","List/Tree foreground color of the match highlights when searching inside the list/tree.")),xt=g("list.focusHighlightForeground",{dark:kt,light:(Dt=pt,Nt=kt,Et="#BBE7FF",{op:5,if:Dt,then:Nt,else:Et}),hcDark:kt,hcLight:kt},a.NC("listFocusHighlightForeground","List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree."));var Dt,Nt,Et;g("list.invalidItemForeground",{dark:"#B89500",light:"#B89500",hcDark:"#B89500",hcLight:"#B5200D"},a.NC("invalidItemForeground","List/Tree foreground color for invalid items, for example an unresolved root in explorer.")),g("list.errorForeground",{dark:"#F88070",light:"#B01011",hcDark:null,hcLight:null},a.NC("listErrorForeground","Foreground color of list items containing errors.")),g("list.warningForeground",{dark:"#CCA700",light:"#855F00",hcDark:null,hcLight:null},a.NC("listWarningForeground","Foreground color of list items containing warnings."));const It=g("listFilterWidget.background",{light:vi(ue,0),dark:bi(ue,0),hcDark:ue,hcLight:ue},a.NC("listFilterWidgetBackground","Background color of the type filter widget in lists and trees.")),Tt=g("listFilterWidget.outline",{dark:o.Il.transparent,light:o.Il.transparent,hcDark:"#f38518",hcLight:"#007ACC"},a.NC("listFilterWidgetOutline","Outline color of the type filter widget in lists and trees.")),Mt=g("listFilterWidget.noMatchesOutline",{dark:"#BE1100",light:"#BE1100",hcDark:v,hcLight:v},a.NC("listFilterWidgetNoMatchesOutline","Outline color of the type filter widget in lists and trees, when there are no matches.")),At=g("listFilterWidget.shadow",{dark:S,light:S,hcDark:S,hcLight:S},a.NC("listFilterWidgetShadow","Shadown color of the type filter widget in lists and trees.")),Rt=(g("list.filterMatchBackground",{dark:Te,light:Te,hcDark:null,hcLight:null},a.NC("listFilterMatchHighlight","Background color of the filtered match.")),g("list.filterMatchBorder",{dark:Re,light:Re,hcDark:v,hcLight:b},a.NC("listFilterMatchHighlightBorder","Border color of the filtered match.")),g("tree.indentGuidesStroke",{dark:"#585858",light:"#a9a9a9",hcDark:"#a9a9a9",hcLight:"#a5a5a5"},a.NC("treeIndentGuidesStroke","Tree stroke color for the indentation guides."))),Ot=g("tree.tableColumnsBorder",{dark:"#CCCCCC20",light:"#61616120",hcDark:null,hcLight:null},a.NC("tableColumnsBorder","Table border color between columns.")),Pt=g("tree.tableOddRowsBackground",{dark:Ci(p,.04),light:Ci(p,.04),hcDark:null,hcLight:null},a.NC("tableOddRowsBackgroundColor","Background color for odd table rows.")),Ft=(g("list.deemphasizedForeground",{dark:"#8C8C8C",light:"#8E8E90",hcDark:"#A7A8A9",hcLight:"#666666"},a.NC("listDeemphasizedForeground","List/Tree foreground color for items that are deemphasized. ")),g("quickInput.list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},"",void 0,a.NC("quickInput.list.focusBackground deprecation","Please use quickInputList.focusBackground instead"))),Bt=g("quickInputList.focusForeground",{dark:mt,light:mt,hcDark:mt,hcLight:mt},a.NC("quickInput.listFocusForeground","Quick picker foreground color for the focused item.")),Vt=g("quickInputList.focusIconForeground",{dark:ft,light:ft,hcDark:ft,hcLight:ft},a.NC("quickInput.listFocusIconForeground","Quick picker icon foreground color for the focused item.")),Wt=g("quickInputList.focusBackground",{dark:wi(Ft,pt),light:wi(Ft,pt),hcDark:null,hcLight:null},a.NC("quickInput.listFocusBackground","Quick picker background color for the focused item.")),Ht=g("menu.border",{dark:null,light:null,hcDark:v,hcLight:v},a.NC("menuBorder","Border color of menus.")),zt=g("menu.foreground",{dark:W,light:p,hcDark:W,hcLight:W},a.NC("menuForeground","Foreground color of menu items.")),jt=g("menu.background",{dark:V,light:V,hcDark:V,hcLight:V},a.NC("menuBackground","Background color of menu items.")),Ut=g("menu.selectionForeground",{dark:mt,light:mt,hcDark:mt,hcLight:mt},a.NC("menuSelectionForeground","Foreground color of the selected menu item in menus.")),Kt=g("menu.selectionBackground",{dark:pt,light:pt,hcDark:pt,hcLight:pt},a.NC("menuSelectionBackground","Background color of the selected menu item in menus.")),$t=g("menu.selectionBorder",{dark:null,light:null,hcDark:b,hcLight:b},a.NC("menuSelectionBorder","Border color of the selected menu item in menus.")),qt=g("menu.separatorBackground",{dark:"#606060",light:"#D4D4D4",hcDark:v,hcLight:v},a.NC("menuSeparatorBackground","Color of a separator menu item in menus.")),Gt=g("toolbar.hoverBackground",{dark:"#5a5d5e50",light:"#b8b8b850",hcDark:null,hcLight:null},a.NC("toolbarHoverBackground","Toolbar background when hovering over actions using the mouse")),Qt=(g("toolbar.hoverOutline",{dark:null,light:null,hcDark:b,hcLight:b},a.NC("toolbarHoverOutline","Toolbar outline when hovering over actions using the mouse")),g("toolbar.activeBackground",{dark:bi(Gt,.1),light:vi(Gt,.1),hcDark:null,hcLight:null},a.NC("toolbarActiveBackground","Toolbar background when holding the mouse over actions")),g("editor.snippetTabstopHighlightBackground",{dark:new o.Il(new o.VS(124,124,124,.3)),light:new o.Il(new o.VS(10,50,100,.2)),hcDark:new o.Il(new o.VS(124,124,124,.3)),hcLight:new o.Il(new o.VS(10,50,100,.2))},a.NC("snippetTabstopHighlightBackground","Highlight background color of a snippet tabstop.")),g("editor.snippetTabstopHighlightBorder",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("snippetTabstopHighlightBorder","Highlight border color of a snippet tabstop.")),g("editor.snippetFinalTabstopHighlightBackground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("snippetFinalTabstopHighlightBackground","Highlight background color of the final tabstop of a snippet.")),g("editor.snippetFinalTabstopHighlightBorder",{dark:"#525252",light:new o.Il(new o.VS(10,50,100,.5)),hcDark:"#525252",hcLight:"#292929"},a.NC("snippetFinalTabstopHighlightBorder","Highlight border color of the final tabstop of a snippet.")),g("breadcrumb.foreground",{light:Ci(p,.8),dark:Ci(p,.8),hcDark:Ci(p,.8),hcLight:Ci(p,.8)},a.NC("breadcrumbsFocusForeground","Color of focused breadcrumb items.")),g("breadcrumb.background",{light:de,dark:de,hcDark:de,hcLight:de},a.NC("breadcrumbsBackground","Background color of breadcrumb items.")),g("breadcrumb.focusForeground",{light:vi(p,.2),dark:bi(p,.1),hcDark:bi(p,.1),hcLight:bi(p,.1)},a.NC("breadcrumbsFocusForeground","Color of focused breadcrumb items.")),g("breadcrumb.activeSelectionForeground",{light:vi(p,.2),dark:bi(p,.1),hcDark:bi(p,.1),hcLight:bi(p,.1)},a.NC("breadcrumbsSelectedForeground","Color of selected breadcrumb items.")),g("breadcrumbPicker.background",{light:ue,dark:ue,hcDark:ue,hcLight:ue},a.NC("breadcrumbsSelectedBackground","Background color of breadcrumb item picker.")),o.Il.fromHex("#40C8AE").transparent(.5)),Zt=o.Il.fromHex("#40A6FF").transparent(.5),Yt=o.Il.fromHex("#606060").transparent(.4),Jt=.4,Xt=g("merge.currentHeaderBackground",{dark:Qt,light:Qt,hcDark:null,hcLight:null},a.NC("mergeCurrentHeaderBackground","Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),ei=(g("merge.currentContentBackground",{dark:Ci(Xt,Jt),light:Ci(Xt,Jt),hcDark:Ci(Xt,Jt),hcLight:Ci(Xt,Jt)},a.NC("mergeCurrentContentBackground","Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),g("merge.incomingHeaderBackground",{dark:Zt,light:Zt,hcDark:null,hcLight:null},a.NC("mergeIncomingHeaderBackground","Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0)),ti=(g("merge.incomingContentBackground",{dark:Ci(ei,Jt),light:Ci(ei,Jt),hcDark:Ci(ei,Jt),hcLight:Ci(ei,Jt)},a.NC("mergeIncomingContentBackground","Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),g("merge.commonHeaderBackground",{dark:Yt,light:Yt,hcDark:null,hcLight:null},a.NC("mergeCommonHeaderBackground","Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0)),ii=(g("merge.commonContentBackground",{dark:Ci(ti,Jt),light:Ci(ti,Jt),hcDark:Ci(ti,Jt),hcLight:Ci(ti,Jt)},a.NC("mergeCommonContentBackground","Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),g("merge.border",{dark:null,light:null,hcDark:"#C3DF6F",hcLight:"#007ACC"},a.NC("mergeBorder","Border color on headers and the splitter in inline merge-conflicts."))),ni=(g("editorOverviewRuler.currentContentForeground",{dark:Ci(Xt,1),light:Ci(Xt,1),hcDark:ii,hcLight:ii},a.NC("overviewRulerCurrentContentForeground","Current overview ruler foreground for inline merge-conflicts.")),g("editorOverviewRuler.incomingContentForeground",{dark:Ci(ei,1),light:Ci(ei,1),hcDark:ii,hcLight:ii},a.NC("overviewRulerIncomingContentForeground","Incoming overview ruler foreground for inline merge-conflicts.")),g("editorOverviewRuler.commonContentForeground",{dark:Ci(ti,1),light:Ci(ti,1),hcDark:ii,hcLight:ii},a.NC("overviewRulerCommonContentForeground","Common ancestor overview ruler foreground for inline merge-conflicts.")),g("editorOverviewRuler.findMatchForeground",{dark:"#d186167e",light:"#d186167e",hcDark:"#AB5A00",hcLight:""},a.NC("overviewRulerFindMatchForeground","Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations."),!0)),oi=g("editorOverviewRuler.selectionHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},a.NC("overviewRulerSelectionHighlightForeground","Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations."),!0),si=g("minimap.findMatchHighlight",{light:"#d18616",dark:"#d18616",hcDark:"#AB5A00",hcLight:"#0F4A85"},a.NC("minimapFindMatchHighlight","Minimap marker color for find matches."),!0),ri=g("minimap.selectionOccurrenceHighlight",{light:"#c9c9c9",dark:"#676767",hcDark:"#ffffff",hcLight:"#0F4A85"},a.NC("minimapSelectionOccurrenceHighlight","Minimap marker color for repeating editor selections."),!0),ai=g("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hcDark:"#ffffff",hcLight:"#0F4A85"},a.NC("minimapSelectionHighlight","Minimap marker color for the editor selection."),!0),li=g("minimap.errorHighlight",{dark:new o.Il(new o.VS(255,18,18,.7)),light:new o.Il(new o.VS(255,18,18,.7)),hcDark:new o.Il(new o.VS(255,50,50,1)),hcLight:"#B5200D"},a.NC("minimapError","Minimap marker color for errors.")),ci=g("minimap.warningHighlight",{dark:ne,light:ne,hcDark:oe,hcLight:oe},a.NC("overviewRuleWarning","Minimap marker color for warnings.")),di=g("minimap.background",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("minimapBackground","Minimap background color.")),hi=g("minimap.foregroundOpacity",{dark:o.Il.fromHex("#000f"),light:o.Il.fromHex("#000f"),hcDark:o.Il.fromHex("#000f"),hcLight:o.Il.fromHex("#000f")},a.NC("minimapForegroundOpacity",'Opacity of foreground elements rendered in the minimap. For example, "#000000c0" will render the elements with 75% opacity.')),ui=g("minimapSlider.background",{light:Ci(Q,.5),dark:Ci(Q,.5),hcDark:Ci(Q,.5),hcLight:Ci(Q,.5)},a.NC("minimapSliderBackground","Minimap slider background color.")),gi=g("minimapSlider.hoverBackground",{light:Ci(Z,.5),dark:Ci(Z,.5),hcDark:Ci(Z,.5),hcLight:Ci(Z,.5)},a.NC("minimapSliderHoverBackground","Minimap slider background color when hovering.")),pi=g("minimapSlider.activeBackground",{light:Ci(Y,.5),dark:Ci(Y,.5),hcDark:Ci(Y,.5),hcLight:Ci(Y,.5)},a.NC("minimapSliderActiveBackground","Minimap slider background color when clicked on.")),mi=g("problemsErrorIcon.foreground",{dark:ee,light:ee,hcDark:ee,hcLight:ee},a.NC("problemsErrorIconForeground","The color used for the problems error icon.")),fi=g("problemsWarningIcon.foreground",{dark:ne,light:ne,hcDark:ne,hcLight:ne},a.NC("problemsWarningIconForeground","The color used for the problems warning icon.")),_i=g("problemsInfoIcon.foreground",{dark:re,light:re,hcDark:re,hcLight:re},a.NC("problemsInfoIconForeground","The color used for the problems info icon."));g("charts.foreground",{dark:p,light:p,hcDark:p,hcLight:p},a.NC("chartsForeground","The foreground color used in charts.")),g("charts.lines",{dark:Ci(p,.5),light:Ci(p,.5),hcDark:Ci(p,.5),hcLight:Ci(p,.5)},a.NC("chartsLines","The color used for horizontal lines in charts.")),g("charts.red",{dark:ee,light:ee,hcDark:ee,hcLight:ee},a.NC("chartsRed","The red color used in chart visualizations.")),g("charts.blue",{dark:re,light:re,hcDark:re,hcLight:re},a.NC("chartsBlue","The blue color used in chart visualizations.")),g("charts.yellow",{dark:ne,light:ne,hcDark:ne,hcLight:ne},a.NC("chartsYellow","The yellow color used in chart visualizations.")),g("charts.orange",{dark:si,light:si,hcDark:si,hcLight:si},a.NC("chartsOrange","The orange color used in chart visualizations.")),g("charts.green",{dark:"#89D185",light:"#388A34",hcDark:"#89D185",hcLight:"#374e06"},a.NC("chartsGreen","The green color used in chart visualizations.")),g("charts.purple",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},a.NC("chartsPurple","The purple color used in chart visualizations."));function vi(e,t){return{op:0,value:e,factor:t}}function bi(e,t){return{op:1,value:e,factor:t}}function Ci(e,t){return{op:2,value:e,factor:t}}function wi(...e){return{op:3,values:e}}function yi(e,t,i,n){return{op:4,value:e,background:t,factor:i,transparency:n}}function Si(e,t){if(null!==e)return"string"==typeof e?"#"===e[0]?o.Il.fromHex(e):t.getColor(e):e instanceof o.Il?e:"object"==typeof e?function(e,t){var i,n,s;switch(e.op){case 0:return null===(i=Si(e.value,t))||void 0===i?void 0:i.darken(e.factor);case 1:return null===(n=Si(e.value,t))||void 0===n?void 0:n.lighten(e.factor);case 2:return null===(s=Si(e.value,t))||void 0===s?void 0:s.transparent(e.factor);case 3:for(const i of e.values){const e=Si(i,t);if(e)return e}return;case 5:return Si(t.defines(e.if)?e.then:e.else,t);case 4:{const i=Si(e.value,t);if(!i)return;const n=Si(e.background,t);return n?i.isDarkerThan(n)?o.Il.getLighterColor(i,n,e.factor).transparent(e.transparency):o.Il.getDarkerColor(i,n,e.factor).transparent(e.transparency):i.transparent(e.factor*e.transparency)}default:throw(0,r.vE)(e)}}(e,t):void 0}const Li="vscode://schemas/workbench-colors",ki=c.B.as(l.I.JSONContribution);ki.registerSchema(Li,u.getColorSchema());const xi=new n.pY((()=>ki.notifySchemaChanged(Li)),200);u.onDidChangeSchema((()=>{xi.isScheduled()||xi.schedule()}))},59554:(e,t,i)=>{"use strict";i.d(t,{Ks:()=>f,q5:()=>m,s_:()=>C});var n=i(15393),o=i(73046),s=i(4669),r=i(98401),a=i(70666),l=i(63580),c=i(81294),d=i(89872),h=i(97781);var u,g;!function(e){e.getDefinition=function(e,t){let i=e.defaults;for(;h.kS.isThemeIcon(i);){const e=p.getIcon(i.id);if(!e)return;i=e.defaults}return i}}(u||(u={})),function(e){e.toJSONObject=function(e){return{weight:e.weight,style:e.style,src:e.src.map((e=>({format:e.format,location:e.location.toString()})))}},e.fromJSONObject=function(e){const t=e=>(0,r.HD)(e)?e:void 0;if(e&&Array.isArray(e.src)&&e.src.every((e=>(0,r.HD)(e.format)&&(0,r.HD)(e.location))))return{weight:t(e.weight),style:t(e.style),src:e.src.map((e=>({format:e.format,location:a.o.parse(e.location)})))}}}(g||(g={}));const p=new class{constructor(){this._onDidChange=new s.Q5,this.onDidChange=this._onDidChange.event,this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:(0,l.NC)("iconDefinition.fontId","The id of the font to use. If not set, the font that is defined first is used.")},fontCharacter:{type:"string",description:(0,l.NC)("iconDefinition.fontCharacter","The font character associated with the icon definition.")}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}},this.iconReferenceSchema={type:"string",pattern:`^${o.dT.iconNameExpression}$`,enum:[],enumDescriptions:[]},this.iconsById={},this.iconFontsById={}}registerIcon(e,t,i,n){const o=this.iconsById[e];if(o){if(i&&!o.description){o.description=i,this.iconSchema.properties[e].markdownDescription=`${i} $(${e})`;const t=this.iconReferenceSchema.enum.indexOf(e);-1!==t&&(this.iconReferenceSchema.enumDescriptions[t]=i),this._onDidChange.fire()}return o}const s={id:e,description:i,defaults:t,deprecationMessage:n};this.iconsById[e]=s;const r={$ref:"#/definitions/icons"};return n&&(r.deprecationMessage=n),i&&(r.markdownDescription=`${i}: $(${e})`),this.iconSchema.properties[e]=r,this.iconReferenceSchema.enum.push(e),this.iconReferenceSchema.enumDescriptions.push(i||""),this._onDidChange.fire(),{id:e}}getIcons(){return Object.keys(this.iconsById).map((e=>this.iconsById[e]))}getIcon(e){return this.iconsById[e]}getIconSchema(){return this.iconSchema}toString(){const e=(e,t)=>e.id.localeCompare(t.id),t=e=>{for(;h.kS.isThemeIcon(e.defaults);)e=this.iconsById[e.defaults.id];return`codicon codicon-${e?e.id:""}`},i=[];i.push("| preview | identifier | default codicon ID | description"),i.push("| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |");const n=Object.keys(this.iconsById).map((e=>this.iconsById[e]));for(const o of n.filter((e=>!!e.description)).sort(e))i.push(`|<i class="${t(o)}"></i>|${o.id}|${h.kS.isThemeIcon(o.defaults)?o.defaults.id:o.id}|${o.description||""}|`);i.push("| preview | identifier "),i.push("| ----------- | --------------------------------- |");for(const o of n.filter((e=>!h.kS.isThemeIcon(e.defaults))).sort(e))i.push(`|<i class="${t(o)}"></i>|${o.id}|`);return i.join("\n")}};function m(e,t,i,n){return p.registerIcon(e,t,i,n)}function f(){return p}d.B.add("base.contributions.icons",p),function(){for(const e of o.lA.getAll())p.registerIcon(e.id,e.definition,e.description)}();const _="vscode://schemas/icons",v=d.B.as(c.I.JSONContribution);v.registerSchema(_,p.getIconSchema());const b=new n.pY((()=>v.notifySchemaChanged(_)),200);p.onDidChange((()=>{b.isScheduled()||b.schedule()}));const C=m("widget-close",o.lA.close,(0,l.NC)("widgetClose","Icon for the close action in widgets."));m("goto-previous-location",o.lA.arrowUp,(0,l.NC)("previousChangeIcon","Icon for goto previous editor location.")),m("goto-next-location",o.lA.arrowDown,(0,l.NC)("nextChangeIcon","Icon for goto next editor location.")),h.kS.modify(o.lA.sync,"spin"),h.kS.modify(o.lA.loading,"spin")},88810:(e,t,i)=>{"use strict";i.d(t,{Jl:()=>a,O2:()=>l,WZ:()=>r,o:()=>o,tj:()=>d});var n=i(73910);function o(e,t){const i=Object.create(null);for(const o in t){const s=t[o];s&&(i[o]=(0,n.Snq)(s,e))}return i}function s(e,t,i){function n(){const n=o(e.getColorTheme(),t);"function"==typeof i?i(n):i.style(n)}return n(),e.onDidColorThemeChange(n)}function r(e,t,i){return s(t,{badgeBackground:(null==i?void 0:i.badgeBackground)||n.g8u,badgeForeground:(null==i?void 0:i.badgeForeground)||n.qeD,badgeBorder:n.lRK},e)}function a(e,t,i){return s(t,Object.assign(Object.assign({},l),i||{}),e)}const l={listFocusBackground:n._bK,listFocusForeground:n._2n,listFocusOutline:n.Oop,listActiveSelectionBackground:n.dCr,listActiveSelectionForeground:n.M6C,listActiveSelectionIconForeground:n.Tnx,listFocusAndSelectionOutline:n.Bqu,listFocusAndSelectionBackground:n.dCr,listFocusAndSelectionForeground:n.M6C,listInactiveSelectionBackground:n.rg2,listInactiveSelectionIconForeground:n.kvU,listInactiveSelectionForeground:n.ytC,listInactiveFocusBackground:n.s$,listInactiveFocusOutline:n.F3d,listHoverBackground:n.mV1,listHoverForeground:n.$d5,listDropBackground:n.AS1,listSelectionOutline:n.xL1,listHoverOutline:n.xL1,listFilterWidgetBackground:n.vGG,listFilterWidgetOutline:n.oSI,listFilterWidgetNoMatchesOutline:n.Saq,listFilterWidgetShadow:n.y65,treeIndentGuidesStroke:n.UnT,tableColumnsBorder:n.uxu,tableOddRowsBackgroundColor:n.EQn,inputActiveOptionBorder:n.PRb,inputActiveOptionForeground:n.Pvw,inputActiveOptionBackground:n.XEs,inputBackground:n.sEe,inputForeground:n.zJb,inputBorder:n.dt_,inputValidationInfoBackground:n._lC,inputValidationInfoForeground:n.YI3,inputValidationInfoBorder:n.EPQ,inputValidationWarningBackground:n.RV_,inputValidationWarningForeground:n.SUG,inputValidationWarningBorder:n.C3g,inputValidationErrorBackground:n.paE,inputValidationErrorForeground:n._t9,inputValidationErrorBorder:n.OZR},c={shadowColor:n.rh,borderColor:n.Cdg,foregroundColor:n.DEr,backgroundColor:n.Hz8,selectionForegroundColor:n.jbW,selectionBackgroundColor:n.$DX,selectionBorderColor:n.E3h,separatorColor:n.ZGJ,scrollbarShadow:n._wn,scrollbarSliderBackground:n.etL,scrollbarSliderHoverBackground:n.ABB,scrollbarSliderActiveBackground:n.ynu};function d(e,t,i){return s(t,Object.assign(Object.assign({},c),i),e)}},92321:(e,t,i)=>{"use strict";var n;function o(e){return e===n.HIGH_CONTRAST_DARK||e===n.HIGH_CONTRAST_LIGHT}function s(e){return e===n.DARK||e===n.HIGH_CONTRAST_DARK}i.d(t,{_T:()=>s,c3:()=>o,eL:()=>n}),function(e){e.DARK="dark",e.LIGHT="light",e.HIGH_CONTRAST_DARK="hcDark",e.HIGH_CONTRAST_LIGHT="hcLight"}(n||(n={}))},97781:(e,t,i)=>{"use strict";i.d(t,{EN:()=>u,IP:()=>p,Ic:()=>f,XE:()=>c,bB:()=>_,kS:()=>h,m6:()=>g});var n=i(73046),o=i(4669),s=i(5976),r=i(72065),a=i(89872),l=i(92321);const c=(0,r.yh)("themeService");var d,h;function u(e){return{id:e}}function g(e){switch(e){case l.eL.DARK:return"vs-dark";case l.eL.HIGH_CONTRAST_DARK:return"hc-black";case l.eL.HIGH_CONTRAST_LIGHT:return"hc-light";default:return"vs"}}!function(e){e.isThemeColor=function(e){return e&&"object"==typeof e&&"string"==typeof e.id}}(d||(d={})),function(e){e.isThemeIcon=function(e){return e&&"object"==typeof e&&"string"==typeof e.id&&(void 0===e.color||d.isThemeColor(e.color))};const t=new RegExp(`^\\$\\((${n.dT.iconNameExpression}(?:${n.dT.iconModifierExpression})?)\\)$`);e.fromString=function(e){const i=t.exec(e);if(!i)return;const[,n]=i;return{id:n}},e.fromId=function(e){return{id:e}},e.modify=function(e,t){let i=e.id;const n=i.lastIndexOf("~");return-1!==n&&(i=i.substring(0,n)),t&&(i=`${i}~${t}`),{id:i}},e.getModifier=function(e){const t=e.id.lastIndexOf("~");if(-1!==t)return e.id.substring(t+1)},e.isEqual=function(e,t){var i,n;return e.id===t.id&&(null===(i=e.color)||void 0===i?void 0:i.id)===(null===(n=t.color)||void 0===n?void 0:n.id)},e.asThemeIcon=function(e,t){return{id:e.id,color:t?u(t):void 0}},e.asClassNameArray=n.dT.asClassNameArray,e.asClassName=n.dT.asClassName,e.asCSSSelector=n.dT.asCSSSelector}(h||(h={}));const p={ThemingContribution:"base.contributions.theming"};const m=new class{constructor(){this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=new o.Q5}onColorThemeChange(e){return this.themingParticipants.push(e),this.onThemingParticipantAddedEmitter.fire(e),(0,s.OF)((()=>{const t=this.themingParticipants.indexOf(e);this.themingParticipants.splice(t,1)}))}getThemingParticipants(){return this.themingParticipants}};function f(e){return m.onColorThemeChange(e)}a.B.add(p.ThemingContribution,m);class _ extends s.JT{constructor(e){super(),this.themeService=e,this.theme=e.getColorTheme(),this._register(this.themeService.onDidColorThemeChange((e=>this.onThemeChange(e))))}onThemeChange(e){this.theme=e,this.updateStyles()}updateStyles(){}}},64862:(e,t,i)=>{"use strict";i.d(t,{Xt:()=>s,YO:()=>o,gJ:()=>r,tJ:()=>n});const n=(0,i(72065).yh)("undoRedoService");class o{constructor(e,t){this.resource=e,this.elements=t}}class s{constructor(){this.id=s._ID++,this.order=1}nextOrder(){return 0===this.id?0:this.order++}}s._ID=0,s.None=new s;class r{constructor(){this.id=r._ID++,this.order=1}nextOrder(){return 0===this.id?0:this.order++}}r._ID=0,r.None=new r},40382:(e,t,i)=>{"use strict";i.d(t,{A6:()=>c,eb:()=>r,ec:()=>s,md:()=>l,uT:()=>a});var n=i(63580),o=(i(43702),i(70666));const s=(0,i(72065).yh)("contextService");function r(e){const t=e;return"string"==typeof(null==t?void 0:t.id)&&o.o.isUri(t.uri)}function a(e){return e.configuration?{id:e.id,configPath:e.configuration}:1===e.folders.length?{id:e.id,uri:e.folders[0].uri}:void 0}class l{constructor(e,t){this.raw=t,this.uri=e.uri,this.index=e.index,this.name=e.name}toJSON(){return{uri:this.uri,name:this.name,index:this.index}}}const c="code-workspace";(0,n.NC)("codeWorkspace","Code Workspace")},33425:(e,t,i)=>{"use strict";i.d(t,{Y:()=>n});const n=(0,i(72065).yh)("workspaceTrustManagementService")},55171:function(e,t,i){var n;e.exports=(n=i(67294),function(e){var t={};function i(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,i),o.l=!0,o.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)i.d(n,o,function(t){return e[t]}.bind(null,o));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=48)}([function(e,t){e.exports=n},function(e,t){var i=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=i)},function(e,t,i){var n=i(26)("wks"),o=i(17),s=i(3).Symbol,r="function"==typeof s;(e.exports=function(e){return n[e]||(n[e]=r&&s[e]||(r?s:o)("Symbol."+e))}).store=n},function(e,t){var i=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=i)},function(e,t,i){e.exports=!i(8)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t){var i={}.hasOwnProperty;e.exports=function(e,t){return i.call(e,t)}},function(e,t,i){var n=i(7),o=i(16);e.exports=i(4)?function(e,t,i){return n.f(e,t,o(1,i))}:function(e,t,i){return e[t]=i,e}},function(e,t,i){var n=i(10),o=i(35),s=i(23),r=Object.defineProperty;t.f=i(4)?Object.defineProperty:function(e,t,i){if(n(e),t=s(t,!0),n(i),o)try{return r(e,t,i)}catch(e){}if("get"in i||"set"in i)throw TypeError("Accessors not supported!");return"value"in i&&(e[t]=i.value),e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,i){var n=i(40),o=i(22);e.exports=function(e){return n(o(e))}},function(e,t,i){var n=i(11);e.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){e.exports={}},function(e,t,i){var n=i(39),o=i(27);e.exports=Object.keys||function(e){return n(e,o)}},function(e,t){e.exports=!0},function(e,t,i){var n=i(3),o=i(1),s=i(53),r=i(6),a=i(5),l=function(e,t,i){var c,d,h,u=e&l.F,g=e&l.G,p=e&l.S,m=e&l.P,f=e&l.B,_=e&l.W,v=g?o:o[t]||(o[t]={}),b=v.prototype,C=g?n:p?n[t]:(n[t]||{}).prototype;for(c in g&&(i=t),i)(d=!u&&C&&void 0!==C[c])&&a(v,c)||(h=d?C[c]:i[c],v[c]=g&&"function"!=typeof C[c]?i[c]:f&&d?s(h,n):_&&C[c]==h?function(e){var t=function(t,i,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,i)}return new e(t,i,n)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(h):m&&"function"==typeof h?s(Function.call,h):h,m&&((v.virtual||(v.virtual={}))[c]=h,e&l.R&&b&&!b[c]&&r(b,c,h)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,e.exports=l},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){var i=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++i+n).toString(36))}},function(e,t,i){var n=i(22);e.exports=function(e){return Object(n(e))}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,i){"use strict";var n=i(52)(!0);i(34)(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,i=this._i;return i>=t.length?{value:void 0,done:!0}:(e=n(t,i),this._i+=e.length,{value:e,done:!1})}))},function(e,t){var i=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:i)(e)}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,i){var n=i(11);e.exports=function(e,t){if(!n(e))return e;var i,o;if(t&&"function"==typeof(i=e.toString)&&!n(o=i.call(e)))return o;if("function"==typeof(i=e.valueOf)&&!n(o=i.call(e)))return o;if(!t&&"function"==typeof(i=e.toString)&&!n(o=i.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t){var i={}.toString;e.exports=function(e){return i.call(e).slice(8,-1)}},function(e,t,i){var n=i(26)("keys"),o=i(17);e.exports=function(e){return n[e]||(n[e]=o(e))}},function(e,t,i){var n=i(1),o=i(3),s=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return s[e]||(s[e]=void 0!==t?t:{})})("versions",[]).push({version:n.version,mode:i(14)?"pure":"global",copyright:"\xa9 2020 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,i){var n=i(7).f,o=i(5),s=i(2)("toStringTag");e.exports=function(e,t,i){e&&!o(e=i?e:e.prototype,s)&&n(e,s,{configurable:!0,value:t})}},function(e,t,i){i(62);for(var n=i(3),o=i(6),s=i(12),r=i(2)("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),l=0;l<a.length;l++){var c=a[l],d=n[c],h=d&&d.prototype;h&&!h[r]&&o(h,r,c),s[c]=s.Array}},function(e,t,i){t.f=i(2)},function(e,t,i){var n=i(3),o=i(1),s=i(14),r=i(30),a=i(7).f;e.exports=function(e){var t=o.Symbol||(o.Symbol=s?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||a(t,e,{value:r.f(e)})}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){e.exports=function(e,t,i){return Math.min(Math.max(e,t),i)}},function(e,t,i){"use strict";var n=i(14),o=i(15),s=i(37),r=i(6),a=i(12),l=i(55),c=i(28),d=i(61),h=i(2)("iterator"),u=!([].keys&&"next"in[].keys()),g=function(){return this};e.exports=function(e,t,i,p,m,f,_){l(i,t,p);var v,b,C,w=function(e){if(!u&&e in k)return k[e];switch(e){case"keys":case"values":return function(){return new i(this,e)}}return function(){return new i(this,e)}},y=t+" Iterator",S="values"==m,L=!1,k=e.prototype,x=k[h]||k["@@iterator"]||m&&k[m],D=x||w(m),N=m?S?w("entries"):D:void 0,E="Array"==t&&k.entries||x;if(E&&(C=d(E.call(new e)))!==Object.prototype&&C.next&&(c(C,y,!0),n||"function"==typeof C[h]||r(C,h,g)),S&&x&&"values"!==x.name&&(L=!0,D=function(){return x.call(this)}),n&&!_||!u&&!L&&k[h]||r(k,h,D),a[t]=D,a[y]=g,m)if(v={values:S?D:w("values"),keys:f?D:w("keys"),entries:N},_)for(b in v)b in k||s(k,b,v[b]);else o(o.P+o.F*(u||L),t,v);return v}},function(e,t,i){e.exports=!i(4)&&!i(8)((function(){return 7!=Object.defineProperty(i(36)("div"),"a",{get:function(){return 7}}).a}))},function(e,t,i){var n=i(11),o=i(3).document,s=n(o)&&n(o.createElement);e.exports=function(e){return s?o.createElement(e):{}}},function(e,t,i){e.exports=i(6)},function(e,t,i){var n=i(10),o=i(56),s=i(27),r=i(25)("IE_PROTO"),a=function(){},l=function(){var e,t=i(36)("iframe"),n=s.length;for(t.style.display="none",i(60).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),l=e.F;n--;)delete l.prototype[s[n]];return l()};e.exports=Object.create||function(e,t){var i;return null!==e?(a.prototype=n(e),i=new a,a.prototype=null,i[r]=e):i=l(),void 0===t?i:o(i,t)}},function(e,t,i){var n=i(5),o=i(9),s=i(57)(!1),r=i(25)("IE_PROTO");e.exports=function(e,t){var i,a=o(e),l=0,c=[];for(i in a)i!=r&&n(a,i)&&c.push(i);for(;t.length>l;)n(a,i=t[l++])&&(~s(c,i)||c.push(i));return c}},function(e,t,i){var n=i(24);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},function(e,t,i){var n=i(39),o=i(27).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,o)}},function(e,t,i){var n=i(24),o=i(2)("toStringTag"),s="Arguments"==n(function(){return arguments}());e.exports=function(e){var t,i,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(i=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?i:s?n(t):"Object"==(r=n(t))&&"function"==typeof t.callee?"Arguments":r}},function(e,t){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch(e){"object"==typeof window&&(i=window)}e.exports=i},function(e,t){var i=/-?\d+(\.\d+)?%?/g;e.exports=function(e){return e.match(i)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getBase16Theme=t.createStyling=t.invertTheme=void 0;var n=g(i(49)),o=g(i(76)),s=g(i(81)),r=g(i(89)),a=g(i(93)),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(i(94)),c=g(i(132)),d=g(i(133)),h=g(i(138)),u=i(139);function g(e){return e&&e.__esModule?e:{default:e}}var p=l.default,m=(0,r.default)(p),f=(0,h.default)(d.default,u.rgb2yuv,(function(e){var t,i=(0,s.default)(e,3);return[(t=i[0],t<.25?1:t<.5?.9-t:1.1-t),i[1],i[2]]}),u.yuv2rgb,c.default),_=function(e){return function(t){return{className:[t.className,e.className].filter(Boolean).join(" "),style:(0,o.default)({},t.style||{},e.style||{})}}},v=function(e,t){var i=(0,r.default)(t);for(var s in e)-1===i.indexOf(s)&&i.push(s);return i.reduce((function(i,s){return i[s]=function(e,t){if(void 0===e)return t;if(void 0===t)return e;var i=void 0===e?"undefined":(0,n.default)(e),s=void 0===t?"undefined":(0,n.default)(t);switch(i){case"string":switch(s){case"string":return[t,e].filter(Boolean).join(" ");case"object":return _({className:e,style:t});case"function":return function(i){for(var n=arguments.length,o=Array(n>1?n-1:0),s=1;s<n;s++)o[s-1]=arguments[s];return _({className:e})(t.apply(void 0,[i].concat(o)))}}case"object":switch(s){case"string":return _({className:t,style:e});case"object":return(0,o.default)({},t,e);case"function":return function(i){for(var n=arguments.length,o=Array(n>1?n-1:0),s=1;s<n;s++)o[s-1]=arguments[s];return _({style:e})(t.apply(void 0,[i].concat(o)))}}case"function":switch(s){case"string":return function(i){for(var n=arguments.length,o=Array(n>1?n-1:0),s=1;s<n;s++)o[s-1]=arguments[s];return e.apply(void 0,[_(i)({className:t})].concat(o))};case"object":return function(i){for(var n=arguments.length,o=Array(n>1?n-1:0),s=1;s<n;s++)o[s-1]=arguments[s];return e.apply(void 0,[_(i)({style:t})].concat(o))};case"function":return function(i){for(var n=arguments.length,o=Array(n>1?n-1:0),s=1;s<n;s++)o[s-1]=arguments[s];return e.apply(void 0,[t.apply(void 0,[i].concat(o))].concat(o))}}}}(e[s],t[s]),i}),{})},b=function(e,t){for(var i=arguments.length,s=Array(i>2?i-2:0),a=2;a<i;a++)s[a-2]=arguments[a];if(null===t)return e;Array.isArray(t)||(t=[t]);var l=t.map((function(t){return e[t]})).filter(Boolean).reduce((function(e,t){return"string"==typeof t?e.className=[e.className,t].filter(Boolean).join(" "):"object"===(void 0===t?"undefined":(0,n.default)(t))?e.style=(0,o.default)({},e.style,t):"function"==typeof t&&(e=(0,o.default)({},e,t.apply(void 0,[e].concat(s)))),e}),{className:"",style:{}});return l.className||delete l.className,0===(0,r.default)(l.style).length&&delete l.style,l},C=t.invertTheme=function(e){return(0,r.default)(e).reduce((function(t,i){return t[i]=/^base/.test(i)?f(e[i]):"scheme"===i?e[i]+":inverted":e[i],t}),{})},w=(t.createStyling=(0,a.default)((function(e){for(var t=arguments.length,i=Array(t>3?t-3:0),n=3;n<t;n++)i[n-3]=arguments[n];var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},c=s.defaultBase16,d=void 0===c?p:c,h=s.base16Themes,u=w(l,void 0===h?null:h);u&&(l=(0,o.default)({},u,l));var g=m.reduce((function(e,t){return e[t]=l[t]||d[t],e}),{}),f=(0,r.default)(l).reduce((function(e,t){return-1===m.indexOf(t)?(e[t]=l[t],e):e}),{}),_=e(g),C=v(f,_);return(0,a.default)(b,2).apply(void 0,[C].concat(i))}),3),t.getBase16Theme=function(e,t){if(e&&e.extend&&(e=e.extend),"string"==typeof e){var i=e.split(":"),n=(0,s.default)(i,2),o=n[0],r=n[1];e=(t||{})[o]||l[o],"inverted"===r&&(e=C(e))}return e&&e.hasOwnProperty("base00")?e:void 0})},function(e,t,i){"use strict";var n,o="object"==typeof Reflect?Reflect:null,s=o&&"function"==typeof o.apply?o.apply:function(e,t,i){return Function.prototype.apply.call(e,t,i)};n=o&&"function"==typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var r=Number.isNaN||function(e){return e!=e};function a(){a.init.call(this)}e.exports=a,e.exports.once=function(e,t){return new Promise((function(i,n){function o(){void 0!==s&&e.removeListener("error",s),i([].slice.call(arguments))}var s;"error"!==t&&(s=function(i){e.removeListener(t,o),n(i)},e.once("error",s)),e.once(t,o)}))},a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var l=10;function c(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function d(e){return void 0===e._maxListeners?a.defaultMaxListeners:e._maxListeners}function h(e,t,i,n){var o,s,r,a;if(c(i),void 0===(s=e._events)?(s=e._events=Object.create(null),e._eventsCount=0):(void 0!==s.newListener&&(e.emit("newListener",t,i.listener?i.listener:i),s=e._events),r=s[t]),void 0===r)r=s[t]=i,++e._eventsCount;else if("function"==typeof r?r=s[t]=n?[i,r]:[r,i]:n?r.unshift(i):r.push(i),(o=d(e))>0&&r.length>o&&!r.warned){r.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+r.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=r.length,a=l,console&&console.warn&&console.warn(a)}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function g(e,t,i){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:i},o=u.bind(n);return o.listener=i,n.wrapFn=o,o}function p(e,t,i){var n=e._events;if(void 0===n)return[];var o=n[t];return void 0===o?[]:"function"==typeof o?i?[o.listener||o]:[o]:i?function(e){for(var t=new Array(e.length),i=0;i<t.length;++i)t[i]=e[i].listener||e[i];return t}(o):f(o,o.length)}function m(e){var t=this._events;if(void 0!==t){var i=t[e];if("function"==typeof i)return 1;if(void 0!==i)return i.length}return 0}function f(e,t){for(var i=new Array(t),n=0;n<t;++n)i[n]=e[n];return i}Object.defineProperty(a,"defaultMaxListeners",{enumerable:!0,get:function(){return l},set:function(e){if("number"!=typeof e||e<0||r(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");l=e}}),a.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},a.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||r(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},a.prototype.getMaxListeners=function(){return d(this)},a.prototype.emit=function(e){for(var t=[],i=1;i<arguments.length;i++)t.push(arguments[i]);var n="error"===e,o=this._events;if(void 0!==o)n=n&&void 0===o.error;else if(!n)return!1;if(n){var r;if(t.length>0&&(r=t[0]),r instanceof Error)throw r;var a=new Error("Unhandled error."+(r?" ("+r.message+")":""));throw a.context=r,a}var l=o[e];if(void 0===l)return!1;if("function"==typeof l)s(l,this,t);else{var c=l.length,d=f(l,c);for(i=0;i<c;++i)s(d[i],this,t)}return!0},a.prototype.addListener=function(e,t){return h(this,e,t,!1)},a.prototype.on=a.prototype.addListener,a.prototype.prependListener=function(e,t){return h(this,e,t,!0)},a.prototype.once=function(e,t){return c(t),this.on(e,g(this,e,t)),this},a.prototype.prependOnceListener=function(e,t){return c(t),this.prependListener(e,g(this,e,t)),this},a.prototype.removeListener=function(e,t){var i,n,o,s,r;if(c(t),void 0===(n=this._events))return this;if(void 0===(i=n[e]))return this;if(i===t||i.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete n[e],n.removeListener&&this.emit("removeListener",e,i.listener||t));else if("function"!=typeof i){for(o=-1,s=i.length-1;s>=0;s--)if(i[s]===t||i[s].listener===t){r=i[s].listener,o=s;break}if(o<0)return this;0===o?i.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(i,o),1===i.length&&(n[e]=i[0]),void 0!==n.removeListener&&this.emit("removeListener",e,r||t)}return this},a.prototype.off=a.prototype.removeListener,a.prototype.removeAllListeners=function(e){var t,i,n;if(void 0===(i=this._events))return this;if(void 0===i.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==i[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete i[e]),this;if(0===arguments.length){var o,s=Object.keys(i);for(n=0;n<s.length;++n)"removeListener"!==(o=s[n])&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=i[e]))this.removeListener(e,t);else if(void 0!==t)for(n=t.length-1;n>=0;n--)this.removeListener(e,t[n]);return this},a.prototype.listeners=function(e){return p(this,e,!0)},a.prototype.rawListeners=function(e){return p(this,e,!1)},a.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},a.prototype.listenerCount=m,a.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(e,t,i){e.exports.Dispatcher=i(140)},function(e,t,i){e.exports=i(142)},function(e,t,i){"use strict";t.__esModule=!0;var n=r(i(50)),o=r(i(65)),s="function"==typeof o.default&&"symbol"==typeof n.default?function(e){return typeof e}:function(e){return e&&"function"==typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":typeof e};function r(e){return e&&e.__esModule?e:{default:e}}t.default="function"==typeof o.default&&"symbol"===s(n.default)?function(e){return void 0===e?"undefined":s(e)}:function(e){return e&&"function"==typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":void 0===e?"undefined":s(e)}},function(e,t,i){e.exports={default:i(51),__esModule:!0}},function(e,t,i){i(20),i(29),e.exports=i(30).f("iterator")},function(e,t,i){var n=i(21),o=i(22);e.exports=function(e){return function(t,i){var s,r,a=String(o(t)),l=n(i),c=a.length;return l<0||l>=c?e?"":void 0:(s=a.charCodeAt(l))<55296||s>56319||l+1===c||(r=a.charCodeAt(l+1))<56320||r>57343?e?a.charAt(l):s:e?a.slice(l,l+2):r-56320+(s-55296<<10)+65536}}},function(e,t,i){var n=i(54);e.exports=function(e,t,i){if(n(e),void 0===t)return e;switch(i){case 1:return function(i){return e.call(t,i)};case 2:return function(i,n){return e.call(t,i,n)};case 3:return function(i,n,o){return e.call(t,i,n,o)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,i){"use strict";var n=i(38),o=i(16),s=i(28),r={};i(6)(r,i(2)("iterator"),(function(){return this})),e.exports=function(e,t,i){e.prototype=n(r,{next:o(1,i)}),s(e,t+" Iterator")}},function(e,t,i){var n=i(7),o=i(10),s=i(13);e.exports=i(4)?Object.defineProperties:function(e,t){o(e);for(var i,r=s(t),a=r.length,l=0;a>l;)n.f(e,i=r[l++],t[i]);return e}},function(e,t,i){var n=i(9),o=i(58),s=i(59);e.exports=function(e){return function(t,i,r){var a,l=n(t),c=o(l.length),d=s(r,c);if(e&&i!=i){for(;c>d;)if((a=l[d++])!=a)return!0}else for(;c>d;d++)if((e||d in l)&&l[d]===i)return e||d||0;return!e&&-1}}},function(e,t,i){var n=i(21),o=Math.min;e.exports=function(e){return e>0?o(n(e),9007199254740991):0}},function(e,t,i){var n=i(21),o=Math.max,s=Math.min;e.exports=function(e,t){return(e=n(e))<0?o(e+t,0):s(e,t)}},function(e,t,i){var n=i(3).document;e.exports=n&&n.documentElement},function(e,t,i){var n=i(5),o=i(18),s=i(25)("IE_PROTO"),r=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),n(e,s)?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?r:null}},function(e,t,i){"use strict";var n=i(63),o=i(64),s=i(12),r=i(9);e.exports=i(34)(Array,"Array",(function(e,t){this._t=r(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,i=this._i++;return!e||i>=e.length?(this._t=void 0,o(1)):o(0,"keys"==t?i:"values"==t?e[i]:[i,e[i]])}),"values"),s.Arguments=s.Array,n("keys"),n("values"),n("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,i){e.exports={default:i(66),__esModule:!0}},function(e,t,i){i(67),i(73),i(74),i(75),e.exports=i(1).Symbol},function(e,t,i){"use strict";var n=i(3),o=i(5),s=i(4),r=i(15),a=i(37),l=i(68).KEY,c=i(8),d=i(26),h=i(28),u=i(17),g=i(2),p=i(30),m=i(31),f=i(69),_=i(70),v=i(10),b=i(11),C=i(18),w=i(9),y=i(23),S=i(16),L=i(38),k=i(71),x=i(72),D=i(32),N=i(7),E=i(13),I=x.f,T=N.f,M=k.f,A=n.Symbol,R=n.JSON,O=R&&R.stringify,P=g("_hidden"),F=g("toPrimitive"),B={}.propertyIsEnumerable,V=d("symbol-registry"),W=d("symbols"),H=d("op-symbols"),z=Object.prototype,j="function"==typeof A&&!!D.f,U=n.QObject,K=!U||!U.prototype||!U.prototype.findChild,$=s&&c((function(){return 7!=L(T({},"a",{get:function(){return T(this,"a",{value:7}).a}})).a}))?function(e,t,i){var n=I(z,t);n&&delete z[t],T(e,t,i),n&&e!==z&&T(z,t,n)}:T,q=function(e){var t=W[e]=L(A.prototype);return t._k=e,t},G=j&&"symbol"==typeof A.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof A},Q=function(e,t,i){return e===z&&Q(H,t,i),v(e),t=y(t,!0),v(i),o(W,t)?(i.enumerable?(o(e,P)&&e[P][t]&&(e[P][t]=!1),i=L(i,{enumerable:S(0,!1)})):(o(e,P)||T(e,P,S(1,{})),e[P][t]=!0),$(e,t,i)):T(e,t,i)},Z=function(e,t){v(e);for(var i,n=f(t=w(t)),o=0,s=n.length;s>o;)Q(e,i=n[o++],t[i]);return e},Y=function(e){var t=B.call(this,e=y(e,!0));return!(this===z&&o(W,e)&&!o(H,e))&&(!(t||!o(this,e)||!o(W,e)||o(this,P)&&this[P][e])||t)},J=function(e,t){if(e=w(e),t=y(t,!0),e!==z||!o(W,t)||o(H,t)){var i=I(e,t);return!i||!o(W,t)||o(e,P)&&e[P][t]||(i.enumerable=!0),i}},X=function(e){for(var t,i=M(w(e)),n=[],s=0;i.length>s;)o(W,t=i[s++])||t==P||t==l||n.push(t);return n},ee=function(e){for(var t,i=e===z,n=M(i?H:w(e)),s=[],r=0;n.length>r;)!o(W,t=n[r++])||i&&!o(z,t)||s.push(W[t]);return s};j||(a((A=function(){if(this instanceof A)throw TypeError("Symbol is not a constructor!");var e=u(arguments.length>0?arguments[0]:void 0),t=function(i){this===z&&t.call(H,i),o(this,P)&&o(this[P],e)&&(this[P][e]=!1),$(this,e,S(1,i))};return s&&K&&$(z,e,{configurable:!0,set:t}),q(e)}).prototype,"toString",(function(){return this._k})),x.f=J,N.f=Q,i(41).f=k.f=X,i(19).f=Y,D.f=ee,s&&!i(14)&&a(z,"propertyIsEnumerable",Y,!0),p.f=function(e){return q(g(e))}),r(r.G+r.W+r.F*!j,{Symbol:A});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ie=0;te.length>ie;)g(te[ie++]);for(var ne=E(g.store),oe=0;ne.length>oe;)m(ne[oe++]);r(r.S+r.F*!j,"Symbol",{for:function(e){return o(V,e+="")?V[e]:V[e]=A(e)},keyFor:function(e){if(!G(e))throw TypeError(e+" is not a symbol!");for(var t in V)if(V[t]===e)return t},useSetter:function(){K=!0},useSimple:function(){K=!1}}),r(r.S+r.F*!j,"Object",{create:function(e,t){return void 0===t?L(e):Z(L(e),t)},defineProperty:Q,defineProperties:Z,getOwnPropertyDescriptor:J,getOwnPropertyNames:X,getOwnPropertySymbols:ee});var se=c((function(){D.f(1)}));r(r.S+r.F*se,"Object",{getOwnPropertySymbols:function(e){return D.f(C(e))}}),R&&r(r.S+r.F*(!j||c((function(){var e=A();return"[null]"!=O([e])||"{}"!=O({a:e})||"{}"!=O(Object(e))}))),"JSON",{stringify:function(e){for(var t,i,n=[e],o=1;arguments.length>o;)n.push(arguments[o++]);if(i=t=n[1],(b(t)||void 0!==e)&&!G(e))return _(t)||(t=function(e,t){if("function"==typeof i&&(t=i.call(this,e,t)),!G(t))return t}),n[1]=t,O.apply(R,n)}}),A.prototype[F]||i(6)(A.prototype,F,A.prototype.valueOf),h(A,"Symbol"),h(Math,"Math",!0),h(n.JSON,"JSON",!0)},function(e,t,i){var n=i(17)("meta"),o=i(11),s=i(5),r=i(7).f,a=0,l=Object.isExtensible||function(){return!0},c=!i(8)((function(){return l(Object.preventExtensions({}))})),d=function(e){r(e,n,{value:{i:"O"+ ++a,w:{}}})},h=e.exports={KEY:n,NEED:!1,fastKey:function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!s(e,n)){if(!l(e))return"F";if(!t)return"E";d(e)}return e[n].i},getWeak:function(e,t){if(!s(e,n)){if(!l(e))return!0;if(!t)return!1;d(e)}return e[n].w},onFreeze:function(e){return c&&h.NEED&&l(e)&&!s(e,n)&&d(e),e}}},function(e,t,i){var n=i(13),o=i(32),s=i(19);e.exports=function(e){var t=n(e),i=o.f;if(i)for(var r,a=i(e),l=s.f,c=0;a.length>c;)l.call(e,r=a[c++])&&t.push(r);return t}},function(e,t,i){var n=i(24);e.exports=Array.isArray||function(e){return"Array"==n(e)}},function(e,t,i){var n=i(9),o=i(41).f,s={}.toString,r="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return r&&"[object Window]"==s.call(e)?function(e){try{return o(e)}catch(e){return r.slice()}}(e):o(n(e))}},function(e,t,i){var n=i(19),o=i(16),s=i(9),r=i(23),a=i(5),l=i(35),c=Object.getOwnPropertyDescriptor;t.f=i(4)?c:function(e,t){if(e=s(e),t=r(t,!0),l)try{return c(e,t)}catch(e){}if(a(e,t))return o(!n.f.call(e,t),e[t])}},function(e,t){},function(e,t,i){i(31)("asyncIterator")},function(e,t,i){i(31)("observable")},function(e,t,i){"use strict";t.__esModule=!0;var n,o=(n=i(77))&&n.__esModule?n:{default:n};t.default=o.default||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}},function(e,t,i){e.exports={default:i(78),__esModule:!0}},function(e,t,i){i(79),e.exports=i(1).Object.assign},function(e,t,i){var n=i(15);n(n.S+n.F,"Object",{assign:i(80)})},function(e,t,i){"use strict";var n=i(4),o=i(13),s=i(32),r=i(19),a=i(18),l=i(40),c=Object.assign;e.exports=!c||i(8)((function(){var e={},t={},i=Symbol(),n="abcdefghijklmnopqrst";return e[i]=7,n.split("").forEach((function(e){t[e]=e})),7!=c({},e)[i]||Object.keys(c({},t)).join("")!=n}))?function(e,t){for(var i=a(e),c=arguments.length,d=1,h=s.f,u=r.f;c>d;)for(var g,p=l(arguments[d++]),m=h?o(p).concat(h(p)):o(p),f=m.length,_=0;f>_;)g=m[_++],n&&!u.call(p,g)||(i[g]=p[g]);return i}:c},function(e,t,i){"use strict";t.__esModule=!0;var n=s(i(82)),o=s(i(85));function s(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t){if(Array.isArray(e))return e;if((0,n.default)(Object(e)))return function(e,t){var i=[],n=!0,s=!1,r=void 0;try{for(var a,l=(0,o.default)(e);!(n=(a=l.next()).done)&&(i.push(a.value),!t||i.length!==t);n=!0);}catch(e){s=!0,r=e}finally{try{!n&&l.return&&l.return()}finally{if(s)throw r}}return i}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t,i){e.exports={default:i(83),__esModule:!0}},function(e,t,i){i(29),i(20),e.exports=i(84)},function(e,t,i){var n=i(42),o=i(2)("iterator"),s=i(12);e.exports=i(1).isIterable=function(e){var t=Object(e);return void 0!==t[o]||"@@iterator"in t||s.hasOwnProperty(n(t))}},function(e,t,i){e.exports={default:i(86),__esModule:!0}},function(e,t,i){i(29),i(20),e.exports=i(87)},function(e,t,i){var n=i(10),o=i(88);e.exports=i(1).getIterator=function(e){var t=o(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return n(t.call(e))}},function(e,t,i){var n=i(42),o=i(2)("iterator"),s=i(12);e.exports=i(1).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||s[n(e)]}},function(e,t,i){e.exports={default:i(90),__esModule:!0}},function(e,t,i){i(91),e.exports=i(1).Object.keys},function(e,t,i){var n=i(18),o=i(13);i(92)("keys",(function(){return function(e){return o(n(e))}}))},function(e,t,i){var n=i(15),o=i(1),s=i(8);e.exports=function(e,t){var i=(o.Object||{})[e]||Object[e],r={};r[e]=t(i),n(n.S+n.F*s((function(){i(1)})),"Object",r)}},function(e,t,i){(function(t){var i=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],n=/^\s+|\s+$/g,o=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,s=/\{\n\/\* \[wrapped with (.+)\] \*/,r=/,? & /,a=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^\[object .+?Constructor\]$/,d=/^0o[0-7]+$/i,h=/^(?:0|[1-9]\d*)$/,u=parseInt,g="object"==typeof t&&t&&t.Object===Object&&t,p="object"==typeof self&&self&&self.Object===Object&&self,m=g||p||Function("return this")();function f(e,t,i){switch(i.length){case 0:return e.call(t);case 1:return e.call(t,i[0]);case 2:return e.call(t,i[0],i[1]);case 3:return e.call(t,i[0],i[1],i[2])}return e.apply(t,i)}function _(e,t){return!(!e||!e.length)&&function(e,t,i){if(t!=t)return function(e,t,i,n){for(var o=e.length,s=i+(n?1:-1);n?s--:++s<o;)if(t(e[s],s,e))return s;return-1}(e,v,i);for(var n=i-1,o=e.length;++n<o;)if(e[n]===t)return n;return-1}(e,t,0)>-1}function v(e){return e!=e}function b(e,t){for(var i=e.length,n=0;i--;)e[i]===t&&n++;return n}function C(e,t){for(var i=-1,n=e.length,o=0,s=[];++i<n;){var r=e[i];r!==t&&"__lodash_placeholder__"!==r||(e[i]="__lodash_placeholder__",s[o++]=i)}return s}var w,y,S,L=Function.prototype,k=Object.prototype,x=m["__core-js_shared__"],D=(w=/[^.]+$/.exec(x&&x.keys&&x.keys.IE_PROTO||""))?"Symbol(src)_1."+w:"",N=L.toString,E=k.hasOwnProperty,I=k.toString,T=RegExp("^"+N.call(E).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),M=Object.create,A=Math.max,R=Math.min,O=(y=K(Object,"defineProperty"),(S=K.name)&&S.length>2?y:void 0);function P(e){return X(e)?M(e):{}}function F(e){return!(!X(e)||function(e){return!!D&&D in e}(e))&&(function(e){var t=X(e)?I.call(e):"";return"[object Function]"==t||"[object GeneratorFunction]"==t}(e)||function(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}(e)?T:c).test(function(e){if(null!=e){try{return N.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}function B(e,t,i,n){for(var o=-1,s=e.length,r=i.length,a=-1,l=t.length,c=A(s-r,0),d=Array(l+c),h=!n;++a<l;)d[a]=t[a];for(;++o<r;)(h||o<s)&&(d[i[o]]=e[o]);for(;c--;)d[a++]=e[o++];return d}function V(e,t,i,n){for(var o=-1,s=e.length,r=-1,a=i.length,l=-1,c=t.length,d=A(s-a,0),h=Array(d+c),u=!n;++o<d;)h[o]=e[o];for(var g=o;++l<c;)h[g+l]=t[l];for(;++r<a;)(u||o<s)&&(h[g+i[r]]=e[o++]);return h}function W(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var i=P(e.prototype),n=e.apply(i,t);return X(n)?n:i}}function H(e,t,i,n,o,s,r,a,l,c){var d=128&t,h=1&t,u=2&t,g=24&t,p=512&t,f=u?void 0:W(e);return function _(){for(var v=arguments.length,w=Array(v),y=v;y--;)w[y]=arguments[y];if(g)var S=U(_),L=b(w,S);if(n&&(w=B(w,n,o,g)),s&&(w=V(w,s,r,g)),v-=L,g&&v<c){var k=C(w,S);return z(e,t,H,_.placeholder,i,w,k,a,l,c-v)}var x=h?i:this,D=u?x[e]:e;return v=w.length,a?w=Q(w,a):p&&v>1&&w.reverse(),d&&l<v&&(w.length=l),this&&this!==m&&this instanceof _&&(D=f||W(D)),D.apply(x,w)}}function z(e,t,i,n,o,s,r,a,l,c){var d=8&t;t|=d?32:64,4&(t&=~(d?64:32))||(t&=-4);var h=i(e,t,o,d?s:void 0,d?r:void 0,d?void 0:s,d?void 0:r,a,l,c);return h.placeholder=n,Z(h,e,t)}function j(e,t,i,n,o,s,r,a){var l=2&t;if(!l&&"function"!=typeof e)throw new TypeError("Expected a function");var c=n?n.length:0;if(c||(t&=-97,n=o=void 0),r=void 0===r?r:A(te(r),0),a=void 0===a?a:te(a),c-=o?o.length:0,64&t){var d=n,h=o;n=o=void 0}var u=[e,t,i,n,o,d,h,s,r,a];if(e=u[0],t=u[1],i=u[2],n=u[3],o=u[4],!(a=u[9]=null==u[9]?l?0:e.length:A(u[9]-c,0))&&24&t&&(t&=-25),t&&1!=t)g=8==t||16==t?function(e,t,i){var n=W(e);return function o(){for(var s=arguments.length,r=Array(s),a=s,l=U(o);a--;)r[a]=arguments[a];var c=s<3&&r[0]!==l&&r[s-1]!==l?[]:C(r,l);return(s-=c.length)<i?z(e,t,H,o.placeholder,void 0,r,c,void 0,void 0,i-s):f(this&&this!==m&&this instanceof o?n:e,this,r)}}(e,t,a):32!=t&&33!=t||o.length?H.apply(void 0,u):function(e,t,i,n){var o=1&t,s=W(e);return function t(){for(var r=-1,a=arguments.length,l=-1,c=n.length,d=Array(c+a),h=this&&this!==m&&this instanceof t?s:e;++l<c;)d[l]=n[l];for(;a--;)d[l++]=arguments[++r];return f(h,o?i:this,d)}}(e,t,i,n);else var g=function(e,t,i){var n=1&t,o=W(e);return function t(){return(this&&this!==m&&this instanceof t?o:e).apply(n?i:this,arguments)}}(e,t,i);return Z(g,e,t)}function U(e){return e.placeholder}function K(e,t){var i=function(e,t){return null==e?void 0:e[t]}(e,t);return F(i)?i:void 0}function $(e){var t=e.match(s);return t?t[1].split(r):[]}function q(e,t){var i=t.length,n=i-1;return t[n]=(i>1?"& ":"")+t[n],t=t.join(i>2?", ":" "),e.replace(o,"{\n/* [wrapped with "+t+"] */\n")}function G(e,t){return!!(t=null==t?9007199254740991:t)&&("number"==typeof e||h.test(e))&&e>-1&&e%1==0&&e<t}function Q(e,t){for(var i=e.length,n=R(t.length,i),o=function(e,t){var i=-1,n=e.length;for(t||(t=Array(n));++i<n;)t[i]=e[i];return t}(e);n--;){var s=t[n];e[n]=G(s,i)?o[s]:void 0}return e}var Z=O?function(e,t,i){var n,o=t+"";return O(e,"toString",{configurable:!0,enumerable:!1,value:(n=q(o,Y($(o),i)),function(){return n})})}:function(e){return e};function Y(e,t){return function(e,t){for(var i=-1,n=e?e.length:0;++i<n&&!1!==t(e[i],i,e););}(i,(function(i){var n="_."+i[0];t&i[1]&&!_(e,n)&&e.push(n)})),e.sort()}function J(e,t,i){var n=j(e,8,void 0,void 0,void 0,void 0,void 0,t=i?void 0:t);return n.placeholder=J.placeholder,n}function X(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function ee(e){return e?(e=function(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==I.call(e)}(e))return NaN;if(X(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=X(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(n,"");var i=l.test(e);return i||d.test(e)?u(e.slice(2),i?2:8):a.test(e)?NaN:+e}(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function te(e){var t=ee(e),i=t%1;return t==t?i?t-i:t:0}J.placeholder={},e.exports=J}).call(this,i(43))},function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e.default:e}t.__esModule=!0;var o=i(95);t.threezerotwofour=n(o);var s=i(96);t.apathy=n(s);var r=i(97);t.ashes=n(r);var a=i(98);t.atelierDune=n(a);var l=i(99);t.atelierForest=n(l);var c=i(100);t.atelierHeath=n(c);var d=i(101);t.atelierLakeside=n(d);var h=i(102);t.atelierSeaside=n(h);var u=i(103);t.bespin=n(u);var g=i(104);t.brewer=n(g);var p=i(105);t.bright=n(p);var m=i(106);t.chalk=n(m);var f=i(107);t.codeschool=n(f);var _=i(108);t.colors=n(_);var v=i(109);t.default=n(v);var b=i(110);t.eighties=n(b);var C=i(111);t.embers=n(C);var w=i(112);t.flat=n(w);var y=i(113);t.google=n(y);var S=i(114);t.grayscale=n(S);var L=i(115);t.greenscreen=n(L);var k=i(116);t.harmonic=n(k);var x=i(117);t.hopscotch=n(x);var D=i(118);t.isotope=n(D);var N=i(119);t.marrakesh=n(N);var E=i(120);t.mocha=n(E);var I=i(121);t.monokai=n(I);var T=i(122);t.ocean=n(T);var M=i(123);t.paraiso=n(M);var A=i(124);t.pop=n(A);var R=i(125);t.railscasts=n(R);var O=i(126);t.shapeshifter=n(O);var P=i(127);t.solarized=n(P);var F=i(128);t.summerfruit=n(F);var B=i(129);t.tomorrow=n(B);var V=i(130);t.tube=n(V);var W=i(131);t.twilight=n(W)},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"threezerotwofour",author:"jan t. sott (http://github.com/idleberg)",base00:"#090300",base01:"#3a3432",base02:"#4a4543",base03:"#5c5855",base04:"#807d7c",base05:"#a5a2a2",base06:"#d6d5d4",base07:"#f7f7f7",base08:"#db2d20",base09:"#e8bbd0",base0A:"#fded02",base0B:"#01a252",base0C:"#b5e4f4",base0D:"#01a0e4",base0E:"#a16a94",base0F:"#cdab53"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"apathy",author:"jannik siebert (https://github.com/janniks)",base00:"#031A16",base01:"#0B342D",base02:"#184E45",base03:"#2B685E",base04:"#5F9C92",base05:"#81B5AC",base06:"#A7CEC8",base07:"#D2E7E4",base08:"#3E9688",base09:"#3E7996",base0A:"#3E4C96",base0B:"#883E96",base0C:"#963E4C",base0D:"#96883E",base0E:"#4C963E",base0F:"#3E965B"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"ashes",author:"jannik siebert (https://github.com/janniks)",base00:"#1C2023",base01:"#393F45",base02:"#565E65",base03:"#747C84",base04:"#ADB3BA",base05:"#C7CCD1",base06:"#DFE2E5",base07:"#F3F4F5",base08:"#C7AE95",base09:"#C7C795",base0A:"#AEC795",base0B:"#95C7AE",base0C:"#95AEC7",base0D:"#AE95C7",base0E:"#C795AE",base0F:"#C79595"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"atelier dune",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune)",base00:"#20201d",base01:"#292824",base02:"#6e6b5e",base03:"#7d7a68",base04:"#999580",base05:"#a6a28c",base06:"#e8e4cf",base07:"#fefbec",base08:"#d73737",base09:"#b65611",base0A:"#cfb017",base0B:"#60ac39",base0C:"#1fad83",base0D:"#6684e1",base0E:"#b854d4",base0F:"#d43552"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"atelier forest",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest)",base00:"#1b1918",base01:"#2c2421",base02:"#68615e",base03:"#766e6b",base04:"#9c9491",base05:"#a8a19f",base06:"#e6e2e0",base07:"#f1efee",base08:"#f22c40",base09:"#df5320",base0A:"#d5911a",base0B:"#5ab738",base0C:"#00ad9c",base0D:"#407ee7",base0E:"#6666ea",base0F:"#c33ff3"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"atelier heath",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath)",base00:"#1b181b",base01:"#292329",base02:"#695d69",base03:"#776977",base04:"#9e8f9e",base05:"#ab9bab",base06:"#d8cad8",base07:"#f7f3f7",base08:"#ca402b",base09:"#a65926",base0A:"#bb8a35",base0B:"#379a37",base0C:"#159393",base0D:"#516aec",base0E:"#7b59c0",base0F:"#cc33cc"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"atelier lakeside",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/)",base00:"#161b1d",base01:"#1f292e",base02:"#516d7b",base03:"#5a7b8c",base04:"#7195a8",base05:"#7ea2b4",base06:"#c1e4f6",base07:"#ebf8ff",base08:"#d22d72",base09:"#935c25",base0A:"#8a8a0f",base0B:"#568c3b",base0C:"#2d8f6f",base0D:"#257fad",base0E:"#5d5db1",base0F:"#b72dd2"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"atelier seaside",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/)",base00:"#131513",base01:"#242924",base02:"#5e6e5e",base03:"#687d68",base04:"#809980",base05:"#8ca68c",base06:"#cfe8cf",base07:"#f0fff0",base08:"#e6193c",base09:"#87711d",base0A:"#c3c322",base0B:"#29a329",base0C:"#1999b3",base0D:"#3d62f5",base0E:"#ad2bee",base0F:"#e619c3"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"bespin",author:"jan t. sott",base00:"#28211c",base01:"#36312e",base02:"#5e5d5c",base03:"#666666",base04:"#797977",base05:"#8a8986",base06:"#9d9b97",base07:"#baae9e",base08:"#cf6a4c",base09:"#cf7d34",base0A:"#f9ee98",base0B:"#54be0d",base0C:"#afc4db",base0D:"#5ea6ea",base0E:"#9b859d",base0F:"#937121"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"brewer",author:"timoth\xe9e poisot (http://github.com/tpoisot)",base00:"#0c0d0e",base01:"#2e2f30",base02:"#515253",base03:"#737475",base04:"#959697",base05:"#b7b8b9",base06:"#dadbdc",base07:"#fcfdfe",base08:"#e31a1c",base09:"#e6550d",base0A:"#dca060",base0B:"#31a354",base0C:"#80b1d3",base0D:"#3182bd",base0E:"#756bb1",base0F:"#b15928"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"bright",author:"chris kempson (http://chriskempson.com)",base00:"#000000",base01:"#303030",base02:"#505050",base03:"#b0b0b0",base04:"#d0d0d0",base05:"#e0e0e0",base06:"#f5f5f5",base07:"#ffffff",base08:"#fb0120",base09:"#fc6d24",base0A:"#fda331",base0B:"#a1c659",base0C:"#76c7b7",base0D:"#6fb3d2",base0E:"#d381c3",base0F:"#be643c"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"chalk",author:"chris kempson (http://chriskempson.com)",base00:"#151515",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#b0b0b0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#f5f5f5",base08:"#fb9fb1",base09:"#eda987",base0A:"#ddb26f",base0B:"#acc267",base0C:"#12cfc0",base0D:"#6fc2ef",base0E:"#e1a3ee",base0F:"#deaf8f"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"codeschool",author:"brettof86",base00:"#232c31",base01:"#1c3657",base02:"#2a343a",base03:"#3f4944",base04:"#84898c",base05:"#9ea7a6",base06:"#a7cfa3",base07:"#b5d8f6",base08:"#2a5491",base09:"#43820d",base0A:"#a03b1e",base0B:"#237986",base0C:"#b02f30",base0D:"#484d79",base0E:"#c59820",base0F:"#c98344"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"colors",author:"mrmrs (http://clrs.cc)",base00:"#111111",base01:"#333333",base02:"#555555",base03:"#777777",base04:"#999999",base05:"#bbbbbb",base06:"#dddddd",base07:"#ffffff",base08:"#ff4136",base09:"#ff851b",base0A:"#ffdc00",base0B:"#2ecc40",base0C:"#7fdbff",base0D:"#0074d9",base0E:"#b10dc9",base0F:"#85144b"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"default",author:"chris kempson (http://chriskempson.com)",base00:"#181818",base01:"#282828",base02:"#383838",base03:"#585858",base04:"#b8b8b8",base05:"#d8d8d8",base06:"#e8e8e8",base07:"#f8f8f8",base08:"#ab4642",base09:"#dc9656",base0A:"#f7ca88",base0B:"#a1b56c",base0C:"#86c1b9",base0D:"#7cafc2",base0E:"#ba8baf",base0F:"#a16946"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"eighties",author:"chris kempson (http://chriskempson.com)",base00:"#2d2d2d",base01:"#393939",base02:"#515151",base03:"#747369",base04:"#a09f93",base05:"#d3d0c8",base06:"#e8e6df",base07:"#f2f0ec",base08:"#f2777a",base09:"#f99157",base0A:"#ffcc66",base0B:"#99cc99",base0C:"#66cccc",base0D:"#6699cc",base0E:"#cc99cc",base0F:"#d27b53"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"embers",author:"jannik siebert (https://github.com/janniks)",base00:"#16130F",base01:"#2C2620",base02:"#433B32",base03:"#5A5047",base04:"#8A8075",base05:"#A39A90",base06:"#BEB6AE",base07:"#DBD6D1",base08:"#826D57",base09:"#828257",base0A:"#6D8257",base0B:"#57826D",base0C:"#576D82",base0D:"#6D5782",base0E:"#82576D",base0F:"#825757"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"flat",author:"chris kempson (http://chriskempson.com)",base00:"#2C3E50",base01:"#34495E",base02:"#7F8C8D",base03:"#95A5A6",base04:"#BDC3C7",base05:"#e0e0e0",base06:"#f5f5f5",base07:"#ECF0F1",base08:"#E74C3C",base09:"#E67E22",base0A:"#F1C40F",base0B:"#2ECC71",base0C:"#1ABC9C",base0D:"#3498DB",base0E:"#9B59B6",base0F:"#be643c"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"google",author:"seth wright (http://sethawright.com)",base00:"#1d1f21",base01:"#282a2e",base02:"#373b41",base03:"#969896",base04:"#b4b7b4",base05:"#c5c8c6",base06:"#e0e0e0",base07:"#ffffff",base08:"#CC342B",base09:"#F96A38",base0A:"#FBA922",base0B:"#198844",base0C:"#3971ED",base0D:"#3971ED",base0E:"#A36AC7",base0F:"#3971ED"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"grayscale",author:"alexandre gavioli (https://github.com/alexx2/)",base00:"#101010",base01:"#252525",base02:"#464646",base03:"#525252",base04:"#ababab",base05:"#b9b9b9",base06:"#e3e3e3",base07:"#f7f7f7",base08:"#7c7c7c",base09:"#999999",base0A:"#a0a0a0",base0B:"#8e8e8e",base0C:"#868686",base0D:"#686868",base0E:"#747474",base0F:"#5e5e5e"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"green screen",author:"chris kempson (http://chriskempson.com)",base00:"#001100",base01:"#003300",base02:"#005500",base03:"#007700",base04:"#009900",base05:"#00bb00",base06:"#00dd00",base07:"#00ff00",base08:"#007700",base09:"#009900",base0A:"#007700",base0B:"#00bb00",base0C:"#005500",base0D:"#009900",base0E:"#00bb00",base0F:"#005500"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"harmonic16",author:"jannik siebert (https://github.com/janniks)",base00:"#0b1c2c",base01:"#223b54",base02:"#405c79",base03:"#627e99",base04:"#aabcce",base05:"#cbd6e2",base06:"#e5ebf1",base07:"#f7f9fb",base08:"#bf8b56",base09:"#bfbf56",base0A:"#8bbf56",base0B:"#56bf8b",base0C:"#568bbf",base0D:"#8b56bf",base0E:"#bf568b",base0F:"#bf5656"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"hopscotch",author:"jan t. sott",base00:"#322931",base01:"#433b42",base02:"#5c545b",base03:"#797379",base04:"#989498",base05:"#b9b5b8",base06:"#d5d3d5",base07:"#ffffff",base08:"#dd464c",base09:"#fd8b19",base0A:"#fdcc59",base0B:"#8fc13e",base0C:"#149b93",base0D:"#1290bf",base0E:"#c85e7c",base0F:"#b33508"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"isotope",author:"jan t. sott",base00:"#000000",base01:"#404040",base02:"#606060",base03:"#808080",base04:"#c0c0c0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#ffffff",base08:"#ff0000",base09:"#ff9900",base0A:"#ff0099",base0B:"#33ff00",base0C:"#00ffff",base0D:"#0066ff",base0E:"#cc00ff",base0F:"#3300ff"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"marrakesh",author:"alexandre gavioli (http://github.com/alexx2/)",base00:"#201602",base01:"#302e00",base02:"#5f5b17",base03:"#6c6823",base04:"#86813b",base05:"#948e48",base06:"#ccc37a",base07:"#faf0a5",base08:"#c35359",base09:"#b36144",base0A:"#a88339",base0B:"#18974e",base0C:"#75a738",base0D:"#477ca1",base0E:"#8868b3",base0F:"#b3588e"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"mocha",author:"chris kempson (http://chriskempson.com)",base00:"#3B3228",base01:"#534636",base02:"#645240",base03:"#7e705a",base04:"#b8afad",base05:"#d0c8c6",base06:"#e9e1dd",base07:"#f5eeeb",base08:"#cb6077",base09:"#d28b71",base0A:"#f4bc87",base0B:"#beb55b",base0C:"#7bbda4",base0D:"#8ab3b5",base0E:"#a89bb9",base0F:"#bb9584"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"monokai",author:"wimer hazenberg (http://www.monokai.nl)",base00:"#272822",base01:"#383830",base02:"#49483e",base03:"#75715e",base04:"#a59f85",base05:"#f8f8f2",base06:"#f5f4f1",base07:"#f9f8f5",base08:"#f92672",base09:"#fd971f",base0A:"#f4bf75",base0B:"#a6e22e",base0C:"#a1efe4",base0D:"#66d9ef",base0E:"#ae81ff",base0F:"#cc6633"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"ocean",author:"chris kempson (http://chriskempson.com)",base00:"#2b303b",base01:"#343d46",base02:"#4f5b66",base03:"#65737e",base04:"#a7adba",base05:"#c0c5ce",base06:"#dfe1e8",base07:"#eff1f5",base08:"#bf616a",base09:"#d08770",base0A:"#ebcb8b",base0B:"#a3be8c",base0C:"#96b5b4",base0D:"#8fa1b3",base0E:"#b48ead",base0F:"#ab7967"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"paraiso",author:"jan t. sott",base00:"#2f1e2e",base01:"#41323f",base02:"#4f424c",base03:"#776e71",base04:"#8d8687",base05:"#a39e9b",base06:"#b9b6b0",base07:"#e7e9db",base08:"#ef6155",base09:"#f99b15",base0A:"#fec418",base0B:"#48b685",base0C:"#5bc4bf",base0D:"#06b6ef",base0E:"#815ba4",base0F:"#e96ba8"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"pop",author:"chris kempson (http://chriskempson.com)",base00:"#000000",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#b0b0b0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#ffffff",base08:"#eb008a",base09:"#f29333",base0A:"#f8ca12",base0B:"#37b349",base0C:"#00aabb",base0D:"#0e5a94",base0E:"#b31e8d",base0F:"#7a2d00"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"railscasts",author:"ryan bates (http://railscasts.com)",base00:"#2b2b2b",base01:"#272935",base02:"#3a4055",base03:"#5a647e",base04:"#d4cfc9",base05:"#e6e1dc",base06:"#f4f1ed",base07:"#f9f7f3",base08:"#da4939",base09:"#cc7833",base0A:"#ffc66d",base0B:"#a5c261",base0C:"#519f50",base0D:"#6d9cbe",base0E:"#b6b3eb",base0F:"#bc9458"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"shapeshifter",author:"tyler benziger (http://tybenz.com)",base00:"#000000",base01:"#040404",base02:"#102015",base03:"#343434",base04:"#555555",base05:"#ababab",base06:"#e0e0e0",base07:"#f9f9f9",base08:"#e92f2f",base09:"#e09448",base0A:"#dddd13",base0B:"#0ed839",base0C:"#23edda",base0D:"#3b48e3",base0E:"#f996e2",base0F:"#69542d"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"solarized",author:"ethan schoonover (http://ethanschoonover.com/solarized)",base00:"#002b36",base01:"#073642",base02:"#586e75",base03:"#657b83",base04:"#839496",base05:"#93a1a1",base06:"#eee8d5",base07:"#fdf6e3",base08:"#dc322f",base09:"#cb4b16",base0A:"#b58900",base0B:"#859900",base0C:"#2aa198",base0D:"#268bd2",base0E:"#6c71c4",base0F:"#d33682"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"summerfruit",author:"christopher corley (http://cscorley.github.io/)",base00:"#151515",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#B0B0B0",base05:"#D0D0D0",base06:"#E0E0E0",base07:"#FFFFFF",base08:"#FF0086",base09:"#FD8900",base0A:"#ABA800",base0B:"#00C918",base0C:"#1faaaa",base0D:"#3777E6",base0E:"#AD00A1",base0F:"#cc6633"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"tomorrow",author:"chris kempson (http://chriskempson.com)",base00:"#1d1f21",base01:"#282a2e",base02:"#373b41",base03:"#969896",base04:"#b4b7b4",base05:"#c5c8c6",base06:"#e0e0e0",base07:"#ffffff",base08:"#cc6666",base09:"#de935f",base0A:"#f0c674",base0B:"#b5bd68",base0C:"#8abeb7",base0D:"#81a2be",base0E:"#b294bb",base0F:"#a3685a"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"london tube",author:"jan t. sott",base00:"#231f20",base01:"#1c3f95",base02:"#5a5758",base03:"#737171",base04:"#959ca1",base05:"#d9d8d8",base06:"#e7e7e8",base07:"#ffffff",base08:"#ee2e24",base09:"#f386a1",base0A:"#ffd204",base0B:"#00853e",base0C:"#85cebc",base0D:"#009ddc",base0E:"#98005d",base0F:"#b06110"},e.exports=t.default},function(e,t,i){"use strict";t.__esModule=!0,t.default={scheme:"twilight",author:"david hart (http://hart-dev.com)",base00:"#1e1e1e",base01:"#323537",base02:"#464b50",base03:"#5f5a60",base04:"#838184",base05:"#a7a7a7",base06:"#c3c3c3",base07:"#ffffff",base08:"#cf6a4c",base09:"#cda869",base0A:"#f9ee98",base0B:"#8f9d6a",base0C:"#afc4db",base0D:"#7587a6",base0E:"#9b859d",base0F:"#9b703f"},e.exports=t.default},function(e,t,i){var n=i(33);function o(e){var t=Math.round(n(e,0,255)).toString(16);return 1==t.length?"0"+t:t}e.exports=function(e){var t=4===e.length?o(255*e[3]):"";return"#"+o(e[0])+o(e[1])+o(e[2])+t}},function(e,t,i){var n=i(134),o=i(135),s=i(136),r=i(137),a={"#":o,hsl:function(e){var t=n(e),i=r(t);return 4===t.length&&i.push(t[3]),i},rgb:s};function l(e){for(var t in a)if(0===e.indexOf(t))return a[t](e)}l.rgb=s,l.hsl=n,l.hex=o,e.exports=l},function(e,t,i){var n=i(44),o=i(33);function s(e,t){switch(e=parseFloat(e),t){case 0:return o(e,0,360);case 1:case 2:return o(e,0,100);case 3:return o(e,0,1)}}e.exports=function(e){return n(e).map(s)}},function(e,t){e.exports=function(e){4!==e.length&&5!==e.length||(e=function(e){for(var t="#",i=1;i<e.length;i++){var n=e.charAt(i);t+=n+n}return t}(e));var t=[parseInt(e.substring(1,3),16),parseInt(e.substring(3,5),16),parseInt(e.substring(5,7),16)];if(9===e.length){var i=parseFloat((parseInt(e.substring(7,9),16)/255).toFixed(2));t.push(i)}return t}},function(e,t,i){var n=i(44),o=i(33);function s(e,t){return t<3?-1!=e.indexOf("%")?Math.round(255*o(parseInt(e,10),0,100)/100):o(parseInt(e,10),0,255):o(parseFloat(e),0,1)}e.exports=function(e){return n(e).map(s)}},function(e,t){e.exports=function(e){var t,i,n,o,s,r=e[0]/360,a=e[1]/100,l=e[2]/100;if(0==a)return[s=255*l,s,s];t=2*l-(i=l<.5?l*(1+a):l+a-l*a),o=[0,0,0];for(var c=0;c<3;c++)(n=r+1/3*-(c-1))<0&&n++,n>1&&n--,s=6*n<1?t+6*(i-t)*n:2*n<1?i:3*n<2?t+(i-t)*(2/3-n)*6:t,o[c]=255*s;return o}},function(e,t,i){(function(t){var i="object"==typeof t&&t&&t.Object===Object&&t,n="object"==typeof self&&self&&self.Object===Object&&self,o=i||n||Function("return this")();function s(e,t,i){switch(i.length){case 0:return e.call(t);case 1:return e.call(t,i[0]);case 2:return e.call(t,i[0],i[1]);case 3:return e.call(t,i[0],i[1],i[2])}return e.apply(t,i)}function r(e,t){for(var i=-1,n=t.length,o=e.length;++i<n;)e[o+i]=t[i];return e}var a=Object.prototype,l=a.hasOwnProperty,c=a.toString,d=o.Symbol,h=a.propertyIsEnumerable,u=d?d.isConcatSpreadable:void 0,g=Math.max;function p(e){return v(e)||function(e){return function(e){return function(e){return!!e&&"object"==typeof e}(e)&&function(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}(e.length)&&!function(e){var t=function(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}(e)?c.call(e):"";return"[object Function]"==t||"[object GeneratorFunction]"==t}(e)}(e)}(e)&&l.call(e,"callee")&&(!h.call(e,"callee")||"[object Arguments]"==c.call(e))}(e)||!!(u&&e&&e[u])}var m,f,_,v=Array.isArray,b=(f=function(e){var t=(e=function e(t,i,n,o,s){var a=-1,l=t.length;for(n||(n=p),s||(s=[]);++a<l;){var c=t[a];i>0&&n(c)?i>1?e(c,i-1,n,o,s):r(s,c):o||(s[s.length]=c)}return s}(e,1)).length,i=t;for(m&&e.reverse();i--;)if("function"!=typeof e[i])throw new TypeError("Expected a function");return function(){for(var i=0,n=t?e[i].apply(this,arguments):arguments[0];++i<t;)n=e[i].call(this,n);return n}},_=g(void 0===_?f.length-1:_,0),function(){for(var e=arguments,t=-1,i=g(e.length-_,0),n=Array(i);++t<i;)n[t]=e[_+t];t=-1;for(var o=Array(_+1);++t<_;)o[t]=e[t];return o[_]=n,s(f,this,o)});e.exports=b}).call(this,i(43))},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.yuv2rgb=function(e){var t,i,n,o=e[0],s=e[1],r=e[2];return t=1*o+0*s+1.13983*r,i=1*o+-.39465*s+-.5806*r,n=1*o+2.02311*s+0*r,[255*(t=Math.min(Math.max(0,t),1)),255*(i=Math.min(Math.max(0,i),1)),255*(n=Math.min(Math.max(0,n),1))]},t.rgb2yuv=function(e){var t=e[0]/255,i=e[1]/255,n=e[2]/255;return[.299*t+.587*i+.114*n,-.14713*t+-.28886*i+.436*n,.615*t+-.51499*i+-.10001*n]}},function(e,t,i){"use strict";function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var o=i(141),s=function(){function e(){n(this,"_callbacks",void 0),n(this,"_isDispatching",void 0),n(this,"_isHandled",void 0),n(this,"_isPending",void 0),n(this,"_lastID",void 0),n(this,"_pendingPayload",void 0),this._callbacks={},this._isDispatching=!1,this._isHandled={},this._isPending={},this._lastID=1}var t=e.prototype;return t.register=function(e){var t="ID_"+this._lastID++;return this._callbacks[t]=e,t},t.unregister=function(e){this._callbacks[e]||o(!1),delete this._callbacks[e]},t.waitFor=function(e){this._isDispatching||o(!1);for(var t=0;t<e.length;t++){var i=e[t];this._isPending[i]?this._isHandled[i]||o(!1):(this._callbacks[i]||o(!1),this._invokeCallback(i))}},t.dispatch=function(e){this._isDispatching&&o(!1),this._startDispatching(e);try{for(var t in this._callbacks)this._isPending[t]||this._invokeCallback(t)}finally{this._stopDispatching()}},t.isDispatching=function(){return this._isDispatching},t._invokeCallback=function(e){this._isPending[e]=!0,this._callbacks[e](this._pendingPayload),this._isHandled[e]=!0},t._startDispatching=function(e){for(var t in this._callbacks)this._isPending[t]=!1,this._isHandled[t]=!1;this._pendingPayload=e,this._isDispatching=!0},t._stopDispatching=function(){delete this._pendingPayload,this._isDispatching=!1},e}();e.exports=s},function(e,t,i){"use strict";var n=function(e){};e.exports=function(e,t){for(var i=arguments.length,o=new Array(i>2?i-2:0),s=2;s<i;s++)o[s-2]=arguments[s];if(n(t),!e){var r;if(void 0===t)r=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var a=0;(r=new Error(t.replace(/%s/g,(function(){return String(o[a++])})))).name="Invariant Violation"}throw r.framesToPop=1,r}}},function(e,t,i){"use strict";function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function s(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?o(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):o(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function d(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function g(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function p(e,t){return!t||"object"!==u(t)&&"function"!=typeof t?g(e):t}function m(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var i,n=h(e);if(t){var o=h(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return p(this,i)}}i.r(t);var f=i(0),_=i.n(f);function v(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!=e&&this.setState(e)}function b(e){this.setState(function(t){var i=this.constructor.getDerivedStateFromProps(e,t);return null!=i?i:null}.bind(this))}function C(e,t){try{var i=this.props,n=this.state;this.props=e,this.state=t,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(i,n)}finally{this.props=i,this.state=n}}function w(e){var t=e.prototype;if(!t||!t.isReactComponent)throw new Error("Can only polyfill class components");if("function"!=typeof e.getDerivedStateFromProps&&"function"!=typeof t.getSnapshotBeforeUpdate)return e;var i=null,n=null,o=null;if("function"==typeof t.componentWillMount?i="componentWillMount":"function"==typeof t.UNSAFE_componentWillMount&&(i="UNSAFE_componentWillMount"),"function"==typeof t.componentWillReceiveProps?n="componentWillReceiveProps":"function"==typeof t.UNSAFE_componentWillReceiveProps&&(n="UNSAFE_componentWillReceiveProps"),"function"==typeof t.componentWillUpdate?o="componentWillUpdate":"function"==typeof t.UNSAFE_componentWillUpdate&&(o="UNSAFE_componentWillUpdate"),null!==i||null!==n||null!==o){var s=e.displayName||e.name,r="function"==typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+s+" uses "+r+" but also contains the following legacy lifecycles:"+(null!==i?"\n "+i:"")+(null!==n?"\n "+n:"")+(null!==o?"\n "+o:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"==typeof e.getDerivedStateFromProps&&(t.componentWillMount=v,t.componentWillReceiveProps=b),"function"==typeof t.getSnapshotBeforeUpdate){if("function"!=typeof t.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");t.componentWillUpdate=C;var a=t.componentDidUpdate;t.componentDidUpdate=function(e,t,i){var n=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:i;a.call(this,e,t,n)}}return e}function y(e,t){if(null==e)return{};var i,n,o=function(e,t){if(null==e)return{};var i,n,o={},s=Object.keys(e);for(n=0;n<s.length;n++)i=s[n],t.indexOf(i)>=0||(o[i]=e[i]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)i=s[n],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i])}return o}function S(e){var t=function(e){return{}.toString.call(e).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}(e);return"number"===t&&(t=isNaN(e)?"nan":(0|e)!=e?"float":"integer"),t}v.__suppressDeprecationWarning=!0,b.__suppressDeprecationWarning=!0,C.__suppressDeprecationWarning=!0;var L={scheme:"rjv-default",author:"mac gainor",base00:"rgba(0, 0, 0, 0)",base01:"rgb(245, 245, 245)",base02:"rgb(235, 235, 235)",base03:"#93a1a1",base04:"rgba(0, 0, 0, 0.3)",base05:"#586e75",base06:"#073642",base07:"#002b36",base08:"#d33682",base09:"#cb4b16",base0A:"#dc322f",base0B:"#859900",base0C:"#6c71c4",base0D:"#586e75",base0E:"#2aa198",base0F:"#268bd2"},k={scheme:"rjv-grey",author:"mac gainor",base00:"rgba(1, 1, 1, 0)",base01:"rgba(1, 1, 1, 0.1)",base02:"rgba(0, 0, 0, 0.2)",base03:"rgba(1, 1, 1, 0.3)",base04:"rgba(0, 0, 0, 0.4)",base05:"rgba(1, 1, 1, 0.5)",base06:"rgba(1, 1, 1, 0.6)",base07:"rgba(1, 1, 1, 0.7)",base08:"rgba(1, 1, 1, 0.8)",base09:"rgba(1, 1, 1, 0.8)",base0A:"rgba(1, 1, 1, 0.8)",base0B:"rgba(1, 1, 1, 0.8)",base0C:"rgba(1, 1, 1, 0.8)",base0D:"rgba(1, 1, 1, 0.8)",base0E:"rgba(1, 1, 1, 0.8)",base0F:"rgba(1, 1, 1, 0.8)"},x={white:"#fff",black:"#000",transparent:"rgba(1, 1, 1, 0)",globalFontFamily:"monospace",globalCursor:"default",indentBlockWidth:"5px",braceFontWeight:"bold",braceCursor:"pointer",ellipsisFontSize:"18px",ellipsisLineHeight:"10px",ellipsisCursor:"pointer",keyMargin:"0px 5px",keyLetterSpacing:"0.5px",keyFontStyle:"none",keyBorderRadius:"3px",keyColonWeight:"bold",keyVerticalAlign:"top",keyOpacity:"0.85",keyOpacityHover:"1",keyValPaddingTop:"3px",keyValPaddingBottom:"3px",keyValPaddingRight:"5px",keyValBorderLeft:"1px solid",keyValBorderHover:"2px solid",keyValPaddingHover:"3px 5px 3px 4px",pushedContentMarginLeft:"6px",variableValuePaddingRight:"6px",nullFontSize:"11px",nullFontWeight:"bold",nullPadding:"1px 2px",nullBorderRadius:"3px",nanFontSize:"11px",nanFontWeight:"bold",nanPadding:"1px 2px",nanBorderRadius:"3px",undefinedFontSize:"11px",undefinedFontWeight:"bold",undefinedPadding:"1px 2px",undefinedBorderRadius:"3px",dataTypeFontSize:"11px",dataTypeMarginRight:"4px",datatypeOpacity:"0.8",objectSizeBorderRadius:"3px",objectSizeFontStyle:"italic",objectSizeMargin:"0px 6px 0px 0px",clipboardCursor:"pointer",clipboardCheckMarginLeft:"-12px",metaDataPadding:"0px 0px 0px 10px",arrayGroupMetaPadding:"0px 0px 0px 4px",iconContainerWidth:"17px",tooltipPadding:"4px",editInputMinWidth:"130px",editInputBorderRadius:"2px",editInputPadding:"5px",editInputMarginRight:"4px",editInputFontFamily:"monospace",iconCursor:"pointer",iconFontSize:"15px",iconPaddingRight:"1px",dateValueMarginLeft:"2px",iconMarginRight:"3px",detectedRowPaddingTop:"3px",addKeyCoverBackground:"rgba(255, 255, 255, 0.3)",addKeyCoverPosition:"absolute",addKeyCoverPositionPx:"0px",addKeyModalWidth:"200px",addKeyModalMargin:"auto",addKeyModalPadding:"10px",addKeyModalRadius:"3px"},D=i(45),N=function(e){var t=function(e){return{backgroundColor:e.base00,ellipsisColor:e.base09,braceColor:e.base07,expandedIcon:e.base0D,collapsedIcon:e.base0E,keyColor:e.base07,arrayKeyColor:e.base0C,objectSize:e.base04,copyToClipboard:e.base0F,copyToClipboardCheck:e.base0D,objectBorder:e.base02,dataTypes:{boolean:e.base0E,date:e.base0D,float:e.base0B,function:e.base0D,integer:e.base0F,string:e.base09,nan:e.base08,null:e.base0A,undefined:e.base05,regexp:e.base0A,background:e.base02},editVariable:{editIcon:e.base0E,cancelIcon:e.base09,removeIcon:e.base09,addIcon:e.base0E,checkIcon:e.base0E,background:e.base01,color:e.base0A,border:e.base07},addKeyModal:{background:e.base05,border:e.base04,color:e.base0A,labelColor:e.base01},validationFailure:{background:e.base09,iconColor:e.base01,fontColor:e.base01}}}(e);return{"app-container":{fontFamily:x.globalFontFamily,cursor:x.globalCursor,backgroundColor:t.backgroundColor,position:"relative"},ellipsis:{display:"inline-block",color:t.ellipsisColor,fontSize:x.ellipsisFontSize,lineHeight:x.ellipsisLineHeight,cursor:x.ellipsisCursor},"brace-row":{display:"inline-block",cursor:"pointer"},brace:{display:"inline-block",cursor:x.braceCursor,fontWeight:x.braceFontWeight,color:t.braceColor},"expanded-icon":{color:t.expandedIcon},"collapsed-icon":{color:t.collapsedIcon},colon:{display:"inline-block",margin:x.keyMargin,color:t.keyColor,verticalAlign:"top"},objectKeyVal:function(e,i){return{style:s({paddingTop:x.keyValPaddingTop,paddingRight:x.keyValPaddingRight,paddingBottom:x.keyValPaddingBottom,borderLeft:x.keyValBorderLeft+" "+t.objectBorder,":hover":{paddingLeft:i.paddingLeft-1+"px",borderLeft:x.keyValBorderHover+" "+t.objectBorder}},i)}},"object-key-val-no-border":{padding:x.keyValPadding},"pushed-content":{marginLeft:x.pushedContentMarginLeft},variableValue:function(e,t){return{style:s({display:"inline-block",paddingRight:x.variableValuePaddingRight,position:"relative"},t)}},"object-name":{display:"inline-block",color:t.keyColor,letterSpacing:x.keyLetterSpacing,fontStyle:x.keyFontStyle,verticalAlign:x.keyVerticalAlign,opacity:x.keyOpacity,":hover":{opacity:x.keyOpacityHover}},"array-key":{display:"inline-block",color:t.arrayKeyColor,letterSpacing:x.keyLetterSpacing,fontStyle:x.keyFontStyle,verticalAlign:x.keyVerticalAlign,opacity:x.keyOpacity,":hover":{opacity:x.keyOpacityHover}},"object-size":{color:t.objectSize,borderRadius:x.objectSizeBorderRadius,fontStyle:x.objectSizeFontStyle,margin:x.objectSizeMargin,cursor:"default"},"data-type-label":{fontSize:x.dataTypeFontSize,marginRight:x.dataTypeMarginRight,opacity:x.datatypeOpacity},boolean:{display:"inline-block",color:t.dataTypes.boolean},date:{display:"inline-block",color:t.dataTypes.date},"date-value":{marginLeft:x.dateValueMarginLeft},float:{display:"inline-block",color:t.dataTypes.float},function:{display:"inline-block",color:t.dataTypes.function,cursor:"pointer",whiteSpace:"pre-line"},"function-value":{fontStyle:"italic"},integer:{display:"inline-block",color:t.dataTypes.integer},string:{display:"inline-block",color:t.dataTypes.string},nan:{display:"inline-block",color:t.dataTypes.nan,fontSize:x.nanFontSize,fontWeight:x.nanFontWeight,backgroundColor:t.dataTypes.background,padding:x.nanPadding,borderRadius:x.nanBorderRadius},null:{display:"inline-block",color:t.dataTypes.null,fontSize:x.nullFontSize,fontWeight:x.nullFontWeight,backgroundColor:t.dataTypes.background,padding:x.nullPadding,borderRadius:x.nullBorderRadius},undefined:{display:"inline-block",color:t.dataTypes.undefined,fontSize:x.undefinedFontSize,padding:x.undefinedPadding,borderRadius:x.undefinedBorderRadius,backgroundColor:t.dataTypes.background},regexp:{display:"inline-block",color:t.dataTypes.regexp},"copy-to-clipboard":{cursor:x.clipboardCursor},"copy-icon":{color:t.copyToClipboard,fontSize:x.iconFontSize,marginRight:x.iconMarginRight,verticalAlign:"top"},"copy-icon-copied":{color:t.copyToClipboardCheck,marginLeft:x.clipboardCheckMarginLeft},"array-group-meta-data":{display:"inline-block",padding:x.arrayGroupMetaPadding},"object-meta-data":{display:"inline-block",padding:x.metaDataPadding},"icon-container":{display:"inline-block",width:x.iconContainerWidth},tooltip:{padding:x.tooltipPadding},removeVarIcon:{verticalAlign:"top",display:"inline-block",color:t.editVariable.removeIcon,cursor:x.iconCursor,fontSize:x.iconFontSize,marginRight:x.iconMarginRight},addVarIcon:{verticalAlign:"top",display:"inline-block",color:t.editVariable.addIcon,cursor:x.iconCursor,fontSize:x.iconFontSize,marginRight:x.iconMarginRight},editVarIcon:{verticalAlign:"top",display:"inline-block",color:t.editVariable.editIcon,cursor:x.iconCursor,fontSize:x.iconFontSize,marginRight:x.iconMarginRight},"edit-icon-container":{display:"inline-block",verticalAlign:"top"},"check-icon":{display:"inline-block",cursor:x.iconCursor,color:t.editVariable.checkIcon,fontSize:x.iconFontSize,paddingRight:x.iconPaddingRight},"cancel-icon":{display:"inline-block",cursor:x.iconCursor,color:t.editVariable.cancelIcon,fontSize:x.iconFontSize,paddingRight:x.iconPaddingRight},"edit-input":{display:"inline-block",minWidth:x.editInputMinWidth,borderRadius:x.editInputBorderRadius,backgroundColor:t.editVariable.background,color:t.editVariable.color,padding:x.editInputPadding,marginRight:x.editInputMarginRight,fontFamily:x.editInputFontFamily},"detected-row":{paddingTop:x.detectedRowPaddingTop},"key-modal-request":{position:x.addKeyCoverPosition,top:x.addKeyCoverPositionPx,left:x.addKeyCoverPositionPx,right:x.addKeyCoverPositionPx,bottom:x.addKeyCoverPositionPx,backgroundColor:x.addKeyCoverBackground},"key-modal":{width:x.addKeyModalWidth,backgroundColor:t.addKeyModal.background,marginLeft:x.addKeyModalMargin,marginRight:x.addKeyModalMargin,padding:x.addKeyModalPadding,borderRadius:x.addKeyModalRadius,marginTop:"15px",position:"relative"},"key-modal-label":{color:t.addKeyModal.labelColor,marginLeft:"2px",marginBottom:"5px",fontSize:"11px"},"key-modal-input-container":{overflow:"hidden"},"key-modal-input":{width:"100%",padding:"3px 6px",fontFamily:"monospace",color:t.addKeyModal.color,border:"none",boxSizing:"border-box",borderRadius:"2px"},"key-modal-cancel":{backgroundColor:t.editVariable.removeIcon,position:"absolute",top:"0px",right:"0px",borderRadius:"0px 3px 0px 3px",cursor:"pointer"},"key-modal-cancel-icon":{color:t.addKeyModal.labelColor,fontSize:x.iconFontSize,transform:"rotate(45deg)"},"key-modal-submit":{color:t.editVariable.addIcon,fontSize:x.iconFontSize,position:"absolute",right:"2px",top:"3px",cursor:"pointer"},"function-ellipsis":{display:"inline-block",color:t.ellipsisColor,fontSize:x.ellipsisFontSize,lineHeight:x.ellipsisLineHeight,cursor:x.ellipsisCursor},"validation-failure":{float:"right",padding:"3px 6px",borderRadius:"2px",cursor:"pointer",color:t.validationFailure.fontColor,backgroundColor:t.validationFailure.background},"validation-failure-label":{marginRight:"6px"},"validation-failure-clear":{position:"relative",verticalAlign:"top",cursor:"pointer",color:t.validationFailure.iconColor,fontSize:x.iconFontSize,transform:"rotate(45deg)"}}};function E(e,t,i){return e||console.error("theme has not been set"),function(e){var t=L;return!1!==e&&"none"!==e||(t=k),Object(D.createStyling)(N,{defaultBase16:t})(e)}(e)(t,i)}var I=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=(e.rjvId,e.type_name),i=e.displayDataTypes,n=e.theme;return i?_.a.createElement("span",Object.assign({className:"data-type-label"},E(n,"data-type-label")),t):null}}]),i}(_.a.PureComponent),T=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props;return _.a.createElement("div",E(e.theme,"boolean"),_.a.createElement(I,Object.assign({type_name:"bool"},e)),e.value?"true":"false")}}]),i}(_.a.PureComponent),M=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props;return _.a.createElement("div",E(e.theme,"date"),_.a.createElement(I,Object.assign({type_name:"date"},e)),_.a.createElement("span",Object.assign({className:"date-value"},E(e.theme,"date-value")),e.value.toLocaleTimeString("en-us",{weekday:"short",year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})))}}]),i}(_.a.PureComponent),A=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props;return _.a.createElement("div",E(e.theme,"float"),_.a.createElement(I,Object.assign({type_name:"float"},e)),this.props.value)}}]),i}(_.a.PureComponent);function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}function O(e,t){if(e){if("string"==typeof e)return R(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?R(e,t):void 0}}function P(e,t){var i;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(i=O(e))||t&&e&&"number"==typeof e.length){i&&(e=i);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,r=!0,a=!1;return{s:function(){i=e[Symbol.iterator]()},n:function(){var e=i.next();return r=e.done,e},e:function(e){a=!0,s=e},f:function(){try{r||null==i.return||i.return()}finally{if(a)throw s}}}}function F(e){return function(e){if(Array.isArray(e))return R(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||O(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var B=i(46),V=new(i(47).Dispatcher),W=new(function(e){d(i,e);var t=m(i);function i(){var e;r(this,i);for(var n=arguments.length,o=new Array(n),a=0;a<n;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).objects={},e.set=function(t,i,n,o){void 0===e.objects[t]&&(e.objects[t]={}),void 0===e.objects[t][i]&&(e.objects[t][i]={}),e.objects[t][i][n]=o},e.get=function(t,i,n,o){return void 0===e.objects[t]||void 0===e.objects[t][i]||null==e.objects[t][i][n]?o:e.objects[t][i][n]},e.handleAction=function(t){var i=t.rjvId,n=t.data;switch(t.name){case"RESET":e.emit("reset-"+i);break;case"VARIABLE_UPDATED":t.data.updated_src=e.updateSrc(i,n),e.set(i,"action","variable-update",s(s({},n),{},{type:"variable-edited"})),e.emit("variable-update-"+i);break;case"VARIABLE_REMOVED":t.data.updated_src=e.updateSrc(i,n),e.set(i,"action","variable-update",s(s({},n),{},{type:"variable-removed"})),e.emit("variable-update-"+i);break;case"VARIABLE_ADDED":t.data.updated_src=e.updateSrc(i,n),e.set(i,"action","variable-update",s(s({},n),{},{type:"variable-added"})),e.emit("variable-update-"+i);break;case"ADD_VARIABLE_KEY_REQUEST":e.set(i,"action","new-key-request",n),e.emit("add-key-request-"+i)}},e.updateSrc=function(t,i){var n=i.name,o=i.namespace,s=i.new_value,r=(i.existing_value,i.variable_removed);o.shift();var a,l=e.get(t,"global","src"),c=e.deepCopy(l,F(o)),d=c,h=P(o);try{for(h.s();!(a=h.n()).done;)d=d[a.value]}catch(e){h.e(e)}finally{h.f()}return r?"array"==S(d)?d.splice(n,1):delete d[n]:null!==n?d[n]=s:c=s,e.set(t,"global","src",c),c},e.deepCopy=function(t,i){var n,o=S(t),r=i.shift();return"array"==o?n=F(t):"object"==o&&(n=s({},t)),void 0!==r&&(n[r]=e.deepCopy(t[r],i)),n},e}return i}(B.EventEmitter));V.register(W.handleAction.bind(W));var H=W,z=function(e){d(i,e);var t=m(i);function i(e){var n;return r(this,i),(n=t.call(this,e)).toggleCollapsed=function(){n.setState({collapsed:!n.state.collapsed},(function(){H.set(n.props.rjvId,n.props.namespace,"collapsed",n.state.collapsed)}))},n.getFunctionDisplay=function(e){var t=g(n).props;return e?_.a.createElement("span",null,n.props.value.toString().slice(9,-1).replace(/\{[\s\S]+/,""),_.a.createElement("span",{className:"function-collapsed",style:{fontWeight:"bold"}},_.a.createElement("span",null,"{"),_.a.createElement("span",E(t.theme,"ellipsis"),"..."),_.a.createElement("span",null,"}"))):n.props.value.toString().slice(9,-1)},n.state={collapsed:H.get(e.rjvId,e.namespace,"collapsed",!0)},n}return l(i,[{key:"render",value:function(){var e=this.props,t=this.state.collapsed;return _.a.createElement("div",E(e.theme,"function"),_.a.createElement(I,Object.assign({type_name:"function"},e)),_.a.createElement("span",Object.assign({},E(e.theme,"function-value"),{className:"rjv-function-container",onClick:this.toggleCollapsed}),this.getFunctionDisplay(t)))}}]),i}(_.a.PureComponent),j=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){return _.a.createElement("div",E(this.props.theme,"nan"),"NaN")}}]),i}(_.a.PureComponent),U=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){return _.a.createElement("div",E(this.props.theme,"null"),"NULL")}}]),i}(_.a.PureComponent),K=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props;return _.a.createElement("div",E(e.theme,"integer"),_.a.createElement(I,Object.assign({type_name:"int"},e)),this.props.value)}}]),i}(_.a.PureComponent),$=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props;return _.a.createElement("div",E(e.theme,"regexp"),_.a.createElement(I,Object.assign({type_name:"regexp"},e)),this.props.value.toString())}}]),i}(_.a.PureComponent),q=function(e){d(i,e);var t=m(i);function i(e){var n;return r(this,i),(n=t.call(this,e)).toggleCollapsed=function(){n.setState({collapsed:!n.state.collapsed},(function(){H.set(n.props.rjvId,n.props.namespace,"collapsed",n.state.collapsed)}))},n.state={collapsed:H.get(e.rjvId,e.namespace,"collapsed",!0)},n}return l(i,[{key:"render",value:function(){this.state.collapsed;var e=this.props,t=e.collapseStringsAfterLength,i=e.theme,n=e.value,o={style:{cursor:"default"}};return"integer"===S(t)&&n.length>t&&(o.style.cursor="pointer",this.state.collapsed&&(n=_.a.createElement("span",null,n.substring(0,t),_.a.createElement("span",E(i,"ellipsis")," ...")))),_.a.createElement("div",E(i,"string"),_.a.createElement(I,Object.assign({type_name:"string"},e)),_.a.createElement("span",Object.assign({className:"string-value"},o,{onClick:this.toggleCollapsed}),'"',n,'"'))}}]),i}(_.a.PureComponent),G=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){return _.a.createElement("div",E(this.props.theme,"undefined"),"undefined")}}]),i}(_.a.PureComponent);function Q(){return(Q=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}var Z=f.useLayoutEffect,Y=function(e){var t=Object(f.useRef)(e);return Z((function(){t.current=e})),t},J=function(e,t){"function"!=typeof e?e.current=t:e(t)},X=function(e,t){var i=Object(f.useRef)();return Object(f.useCallback)((function(n){e.current=n,i.current&&J(i.current,null),i.current=t,t&&J(t,n)}),[t])},ee={"min-height":"0","max-height":"none",height:"0",visibility:"hidden",overflow:"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0"},te=function(e){Object.keys(ee).forEach((function(t){e.style.setProperty(t,ee[t],"important")}))},ie=null,ne=function(){},oe=["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","boxSizing","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","lineHeight","paddingBottom","paddingLeft","paddingRight","paddingTop","tabSize","textIndent","textRendering","textTransform","width"],se=!!document.documentElement.currentStyle,re=function(e,t){var i,n=e.cacheMeasurements,o=e.maxRows,s=e.minRows,r=e.onChange,a=void 0===r?ne:r,l=e.onHeightChange,c=void 0===l?ne:l,d=function(e,t){if(null==e)return{};var i,n,o={},s=Object.keys(e);for(n=0;n<s.length;n++)i=s[n],t.indexOf(i)>=0||(o[i]=e[i]);return o}(e,["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"]),h=void 0!==d.value,u=Object(f.useRef)(null),g=X(u,t),p=Object(f.useRef)(0),m=Object(f.useRef)(),_=function(){var e=u.current,t=n&&m.current?m.current:function(e){var t=window.getComputedStyle(e);if(null===t)return null;var i,n=(i=t,oe.reduce((function(e,t){return e[t]=i[t],e}),{})),o=n.boxSizing;return""===o?null:(se&&"border-box"===o&&(n.width=parseFloat(n.width)+parseFloat(n.borderRightWidth)+parseFloat(n.borderLeftWidth)+parseFloat(n.paddingRight)+parseFloat(n.paddingLeft)+"px"),{sizingStyle:n,paddingSize:parseFloat(n.paddingBottom)+parseFloat(n.paddingTop),borderSize:parseFloat(n.borderBottomWidth)+parseFloat(n.borderTopWidth)})}(e);if(t){m.current=t;var i=function(e,t,i,n){void 0===i&&(i=1),void 0===n&&(n=1/0),ie||((ie=document.createElement("textarea")).setAttribute("tab-index","-1"),ie.setAttribute("aria-hidden","true"),te(ie)),null===ie.parentNode&&document.body.appendChild(ie);var o=e.paddingSize,s=e.borderSize,r=e.sizingStyle,a=r.boxSizing;Object.keys(r).forEach((function(e){var t=e;ie.style[t]=r[t]})),te(ie),ie.value=t;var l=function(e,t){var i=e.scrollHeight;return"border-box"===t.sizingStyle.boxSizing?i+t.borderSize:i-t.paddingSize}(ie,e);ie.value="x";var c=ie.scrollHeight-o,d=c*i;"border-box"===a&&(d=d+o+s),l=Math.max(d,l);var h=c*n;return"border-box"===a&&(h=h+o+s),[l=Math.min(h,l),c]}(t,e.value||e.placeholder||"x",s,o),r=i[0],a=i[1];p.current!==r&&(p.current=r,e.style.setProperty("height",r+"px","important"),c(r,{rowHeight:a}))}};return Object(f.useLayoutEffect)(_),i=Y(_),Object(f.useLayoutEffect)((function(){var e=function(e){i.current(e)};return window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),Object(f.createElement)("textarea",Q({},d,{onChange:function(e){h||_(),a(e)},ref:g}))},ae=Object(f.forwardRef)(re);function le(e){e=e.trim();try{if("["===(e=JSON.stringify(JSON.parse(e)))[0])return ce("array",JSON.parse(e));if("{"===e[0])return ce("object",JSON.parse(e));if(e.match(/\-?\d+\.\d+/)&&e.match(/\-?\d+\.\d+/)[0]===e)return ce("float",parseFloat(e));if(e.match(/\-?\d+e-\d+/)&&e.match(/\-?\d+e-\d+/)[0]===e)return ce("float",Number(e));if(e.match(/\-?\d+/)&&e.match(/\-?\d+/)[0]===e)return ce("integer",parseInt(e));if(e.match(/\-?\d+e\+\d+/)&&e.match(/\-?\d+e\+\d+/)[0]===e)return ce("integer",Number(e))}catch(e){}switch(e=e.toLowerCase()){case"undefined":return ce("undefined",void 0);case"nan":return ce("nan",NaN);case"null":return ce("null",null);case"true":return ce("boolean",!0);case"false":return ce("boolean",!1);default:if(e=Date.parse(e))return ce("date",new Date(e))}return ce(!1,null)}function ce(e,t){return{type:e,value:t}}var de=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",Object.assign({},ye(t),{viewBox:"0 0 24 24",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),_.a.createElement("path",{d:"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7,13H17V11H7"})))}}]),i}(_.a.PureComponent),he=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",Object.assign({},ye(t),{viewBox:"0 0 24 24",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),_.a.createElement("path",{d:"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M13,7H11V11H7V13H11V17H13V13H17V11H13V7Z"})))}}]),i}(_.a.PureComponent),ue=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]),n=ye(t).style;return _.a.createElement("span",i,_.a.createElement("svg",{fill:n.color,width:n.height,height:n.width,style:n,viewBox:"0 0 1792 1792"},_.a.createElement("path",{d:"M1344 800v64q0 14-9 23t-23 9h-832q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h832q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z"})))}}]),i}(_.a.PureComponent),ge=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]),n=ye(t).style;return _.a.createElement("span",i,_.a.createElement("svg",{fill:n.color,width:n.height,height:n.width,style:n,viewBox:"0 0 1792 1792"},_.a.createElement("path",{d:"M1344 800v64q0 14-9 23t-23 9h-352v352q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23v-352h-352q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h352v-352q0-14 9-23t23-9h64q14 0 23 9t9 23v352h352q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z"})))}}]),i}(_.a.PureComponent),pe=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",{style:s(s({},ye(t).style),{},{paddingLeft:"2px",verticalAlign:"top"}),viewBox:"0 0 15 15",fill:"currentColor"},_.a.createElement("path",{d:"M0 14l6-6-6-6z"})))}}]),i}(_.a.PureComponent),me=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",{style:s(s({},ye(t).style),{},{paddingLeft:"2px",verticalAlign:"top"}),viewBox:"0 0 15 15",fill:"currentColor"},_.a.createElement("path",{d:"M0 5l6 6 6-6z"})))}}]),i}(_.a.PureComponent),fe=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",Object.assign({},ye(t),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),_.a.createElement("g",null,_.a.createElement("path",{d:"m30 35h-25v-22.5h25v7.5h2.5v-12.5c0-1.4-1.1-2.5-2.5-2.5h-7.5c0-2.8-2.2-5-5-5s-5 2.2-5 5h-7.5c-1.4 0-2.5 1.1-2.5 2.5v27.5c0 1.4 1.1 2.5 2.5 2.5h25c1.4 0 2.5-1.1 2.5-2.5v-5h-2.5v5z m-20-27.5h2.5s2.5-1.1 2.5-2.5 1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5 1.3 2.5 2.5 2.5h2.5s2.5 1.1 2.5 2.5h-20c0-1.5 1.1-2.5 2.5-2.5z m-2.5 20h5v-2.5h-5v2.5z m17.5-5v-5l-10 7.5 10 7.5v-5h12.5v-5h-12.5z m-17.5 10h7.5v-2.5h-7.5v2.5z m12.5-17.5h-12.5v2.5h12.5v-2.5z m-7.5 5h-5v2.5h5v-2.5z"}))))}}]),i}(_.a.PureComponent),_e=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",Object.assign({},ye(t),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),_.a.createElement("g",null,_.a.createElement("path",{d:"m28.6 25q0-0.5-0.4-1l-4-4 4-4q0.4-0.5 0.4-1 0-0.6-0.4-1.1l-2-2q-0.4-0.4-1-0.4-0.6 0-1 0.4l-4.1 4.1-4-4.1q-0.4-0.4-1-0.4-0.6 0-1 0.4l-2 2q-0.5 0.5-0.5 1.1 0 0.5 0.5 1l4 4-4 4q-0.5 0.5-0.5 1 0 0.7 0.5 1.1l2 2q0.4 0.4 1 0.4 0.6 0 1-0.4l4-4.1 4.1 4.1q0.4 0.4 1 0.4 0.6 0 1-0.4l2-2q0.4-0.4 0.4-1z m8.7-5q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),i}(_.a.PureComponent),ve=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",Object.assign({},ye(t),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),_.a.createElement("g",null,_.a.createElement("path",{d:"m30.1 21.4v-2.8q0-0.6-0.4-1t-1-0.5h-5.7v-5.7q0-0.6-0.4-1t-1-0.4h-2.9q-0.6 0-1 0.4t-0.4 1v5.7h-5.7q-0.6 0-1 0.5t-0.5 1v2.8q0 0.6 0.5 1t1 0.5h5.7v5.7q0 0.5 0.4 1t1 0.4h2.9q0.6 0 1-0.4t0.4-1v-5.7h5.7q0.6 0 1-0.5t0.4-1z m7.2-1.4q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),i}(_.a.PureComponent),be=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",Object.assign({},ye(t),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),_.a.createElement("g",null,_.a.createElement("path",{d:"m31.6 21.6h-10v10h-3.2v-10h-10v-3.2h10v-10h3.2v10h10v3.2z"}))))}}]),i}(_.a.PureComponent),Ce=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",Object.assign({},ye(t),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),_.a.createElement("g",null,_.a.createElement("path",{d:"m19.8 26.4l2.6-2.6-3.4-3.4-2.6 2.6v1.3h2.2v2.1h1.2z m9.8-16q-0.3-0.4-0.7 0l-7.8 7.8q-0.4 0.4 0 0.7t0.7 0l7.8-7.8q0.4-0.4 0-0.7z m1.8 13.2v4.3q0 2.6-1.9 4.5t-4.5 1.9h-18.6q-2.6 0-4.5-1.9t-1.9-4.5v-18.6q0-2.7 1.9-4.6t4.5-1.8h18.6q1.4 0 2.6 0.5 0.3 0.2 0.4 0.5 0.1 0.4-0.2 0.7l-1.1 1.1q-0.3 0.3-0.7 0.1-0.5-0.1-1-0.1h-18.6q-1.4 0-2.5 1.1t-1 2.5v18.6q0 1.4 1 2.5t2.5 1h18.6q1.5 0 2.5-1t1.1-2.5v-2.9q0-0.2 0.2-0.4l1.4-1.5q0.3-0.3 0.8-0.1t0.4 0.6z m-2.1-16.5l6.4 6.5-15 15h-6.4v-6.5z m9.9 3l-2.1 2-6.4-6.4 2.1-2q0.6-0.7 1.5-0.7t1.5 0.7l3.4 3.4q0.6 0.6 0.6 1.5t-0.6 1.5z"}))))}}]),i}(_.a.PureComponent),we=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",Object.assign({},ye(t),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),_.a.createElement("g",null,_.a.createElement("path",{d:"m31.7 16.4q0-0.6-0.4-1l-2.1-2.1q-0.4-0.4-1-0.4t-1 0.4l-9.1 9.1-5-5q-0.5-0.4-1-0.4t-1 0.4l-2.1 2q-0.4 0.4-0.4 1 0 0.6 0.4 1l8.1 8.1q0.4 0.4 1 0.4 0.6 0 1-0.4l12.2-12.1q0.4-0.4 0.4-1z m5.6 3.6q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),i}(_.a.PureComponent);function ye(e){return e||(e={}),{style:s(s({verticalAlign:"middle"},e),{},{color:e.color?e.color:"#000000",height:"1em",width:"1em"})}}var Se=function(e){d(i,e);var t=m(i);function i(e){var n;return r(this,i),(n=t.call(this,e)).copiedTimer=null,n.handleCopy=function(){var e=document.createElement("textarea"),t=n.props,i=t.clickCallback,o=t.src,s=t.namespace;e.innerHTML=JSON.stringify(n.clipboardValue(o),null," "),document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e),n.copiedTimer=setTimeout((function(){n.setState({copied:!1})}),5500),n.setState({copied:!0},(function(){"function"==typeof i&&i({src:o,namespace:s,name:s[s.length-1]})}))},n.getClippyIcon=function(){var e=n.props.theme;return n.state.copied?_.a.createElement("span",null,_.a.createElement(fe,Object.assign({className:"copy-icon"},E(e,"copy-icon"))),_.a.createElement("span",E(e,"copy-icon-copied"),"\u2714")):_.a.createElement(fe,Object.assign({className:"copy-icon"},E(e,"copy-icon")))},n.clipboardValue=function(e){switch(S(e)){case"function":case"regexp":return e.toString();default:return e}},n.state={copied:!1},n}return l(i,[{key:"componentWillUnmount",value:function(){this.copiedTimer&&(clearTimeout(this.copiedTimer),this.copiedTimer=null)}},{key:"render",value:function(){var e=this.props,t=(e.src,e.theme),i=e.hidden,n=e.rowHovered,o=E(t,"copy-to-clipboard").style,r="inline";return i&&(r="none"),_.a.createElement("span",{className:"copy-to-clipboard-container",title:"Copy to clipboard",style:{verticalAlign:"top",display:n?"inline-block":"none"}},_.a.createElement("span",{style:s(s({},o),{},{display:r}),onClick:this.handleCopy},this.getClippyIcon()))}}]),i}(_.a.PureComponent),Le=function(e){d(i,e);var t=m(i);function i(e){var n;return r(this,i),(n=t.call(this,e)).getEditIcon=function(){var e=n.props,t=e.variable,i=e.theme;return _.a.createElement("div",{className:"click-to-edit",style:{verticalAlign:"top",display:n.state.hovered?"inline-block":"none"}},_.a.createElement(Ce,Object.assign({className:"click-to-edit-icon"},E(i,"editVarIcon"),{onClick:function(){n.prepopInput(t)}})))},n.prepopInput=function(e){if(!1!==n.props.onEdit){var t=function(e){var t;switch(S(e)){case"undefined":t="undefined";break;case"nan":t="NaN";break;case"string":t=e;break;case"date":case"function":case"regexp":t=e.toString();break;default:try{t=JSON.stringify(e,null," ")}catch(e){t=""}}return t}(e.value),i=le(t);n.setState({editMode:!0,editValue:t,parsedInput:{type:i.type,value:i.value}})}},n.getRemoveIcon=function(){var e=n.props,t=e.variable,i=e.namespace,o=e.theme,s=e.rjvId;return _.a.createElement("div",{className:"click-to-remove",style:{verticalAlign:"top",display:n.state.hovered?"inline-block":"none"}},_.a.createElement(_e,Object.assign({className:"click-to-remove-icon"},E(o,"removeVarIcon"),{onClick:function(){V.dispatch({name:"VARIABLE_REMOVED",rjvId:s,data:{name:t.name,namespace:i,existing_value:t.value,variable_removed:!0}})}})))},n.getValue=function(e,t){var i=!t&&e.type,o=g(n).props;switch(i){case!1:return n.getEditInput();case"string":return _.a.createElement(q,Object.assign({value:e.value},o));case"integer":return _.a.createElement(K,Object.assign({value:e.value},o));case"float":return _.a.createElement(A,Object.assign({value:e.value},o));case"boolean":return _.a.createElement(T,Object.assign({value:e.value},o));case"function":return _.a.createElement(z,Object.assign({value:e.value},o));case"null":return _.a.createElement(U,o);case"nan":return _.a.createElement(j,o);case"undefined":return _.a.createElement(G,o);case"date":return _.a.createElement(M,Object.assign({value:e.value},o));case"regexp":return _.a.createElement($,Object.assign({value:e.value},o));default:return _.a.createElement("div",{className:"object-value"},JSON.stringify(e.value))}},n.getEditInput=function(){var e=n.props.theme,t=n.state.editValue;return _.a.createElement("div",null,_.a.createElement(ae,Object.assign({type:"text",inputRef:function(e){return e&&e.focus()},value:t,className:"variable-editor",onChange:function(e){var t=e.target.value,i=le(t);n.setState({editValue:t,parsedInput:{type:i.type,value:i.value}})},onKeyDown:function(e){switch(e.key){case"Escape":n.setState({editMode:!1,editValue:""});break;case"Enter":(e.ctrlKey||e.metaKey)&&n.submitEdit(!0)}e.stopPropagation()},placeholder:"update this value",minRows:2},E(e,"edit-input"))),_.a.createElement("div",E(e,"edit-icon-container"),_.a.createElement(_e,Object.assign({className:"edit-cancel"},E(e,"cancel-icon"),{onClick:function(){n.setState({editMode:!1,editValue:""})}})),_.a.createElement(we,Object.assign({className:"edit-check string-value"},E(e,"check-icon"),{onClick:function(){n.submitEdit()}})),_.a.createElement("div",null,n.showDetected())))},n.submitEdit=function(e){var t=n.props,i=t.variable,o=t.namespace,s=t.rjvId,r=n.state,a=r.editValue,l=r.parsedInput,c=a;e&&l.type&&(c=l.value),n.setState({editMode:!1}),V.dispatch({name:"VARIABLE_UPDATED",rjvId:s,data:{name:i.name,namespace:o,existing_value:i.value,new_value:c,variable_removed:!1}})},n.showDetected=function(){var e=n.props,t=e.theme,i=(e.variable,e.namespace,e.rjvId,n.state.parsedInput),o=(i.type,i.value,n.getDetectedInput());if(o)return _.a.createElement("div",null,_.a.createElement("div",E(t,"detected-row"),o,_.a.createElement(we,{className:"edit-check detected",style:s({verticalAlign:"top",paddingLeft:"3px"},E(t,"check-icon").style),onClick:function(){n.submitEdit(!0)}})))},n.getDetectedInput=function(){var e=n.state.parsedInput,t=e.type,i=e.value,o=g(n).props,r=o.theme;if(!1!==t)switch(t.toLowerCase()){case"object":return _.a.createElement("span",null,_.a.createElement("span",{style:s(s({},E(r,"brace").style),{},{cursor:"default"})},"{"),_.a.createElement("span",{style:s(s({},E(r,"ellipsis").style),{},{cursor:"default"})},"..."),_.a.createElement("span",{style:s(s({},E(r,"brace").style),{},{cursor:"default"})},"}"));case"array":return _.a.createElement("span",null,_.a.createElement("span",{style:s(s({},E(r,"brace").style),{},{cursor:"default"})},"["),_.a.createElement("span",{style:s(s({},E(r,"ellipsis").style),{},{cursor:"default"})},"..."),_.a.createElement("span",{style:s(s({},E(r,"brace").style),{},{cursor:"default"})},"]"));case"string":return _.a.createElement(q,Object.assign({value:i},o));case"integer":return _.a.createElement(K,Object.assign({value:i},o));case"float":return _.a.createElement(A,Object.assign({value:i},o));case"boolean":return _.a.createElement(T,Object.assign({value:i},o));case"function":return _.a.createElement(z,Object.assign({value:i},o));case"null":return _.a.createElement(U,o);case"nan":return _.a.createElement(j,o);case"undefined":return _.a.createElement(G,o);case"date":return _.a.createElement(M,Object.assign({value:new Date(i)},o))}},n.state={editMode:!1,editValue:"",hovered:!1,renameKey:!1,parsedInput:{type:!1,value:null}},n}return l(i,[{key:"render",value:function(){var e=this,t=this.props,i=t.variable,n=t.singleIndent,o=t.type,r=t.theme,a=t.namespace,l=t.indentWidth,c=t.enableClipboard,d=t.onEdit,h=t.onDelete,u=t.onSelect,g=t.displayArrayKey,p=t.quotesOnKeys,m=this.state.editMode;return _.a.createElement("div",Object.assign({},E(r,"objectKeyVal",{paddingLeft:l*n}),{onMouseEnter:function(){return e.setState(s(s({},e.state),{},{hovered:!0}))},onMouseLeave:function(){return e.setState(s(s({},e.state),{},{hovered:!1}))},className:"variable-row",key:i.name}),"array"==o?g?_.a.createElement("span",Object.assign({},E(r,"array-key"),{key:i.name+"_"+a}),i.name,_.a.createElement("div",E(r,"colon"),":")):null:_.a.createElement("span",null,_.a.createElement("span",Object.assign({},E(r,"object-name"),{className:"object-key",key:i.name+"_"+a}),!!p&&_.a.createElement("span",{style:{verticalAlign:"top"}},'"'),_.a.createElement("span",{style:{display:"inline-block"}},i.name),!!p&&_.a.createElement("span",{style:{verticalAlign:"top"}},'"')),_.a.createElement("span",E(r,"colon"),":")),_.a.createElement("div",Object.assign({className:"variable-value",onClick:!1===u&&!1===d?null:function(t){var n=F(a);(t.ctrlKey||t.metaKey)&&!1!==d?e.prepopInput(i):!1!==u&&(n.shift(),u(s(s({},i),{},{namespace:n})))}},E(r,"variableValue",{cursor:!1===u?"default":"pointer"})),this.getValue(i,m)),c?_.a.createElement(Se,{rowHovered:this.state.hovered,hidden:m,src:i.value,clickCallback:c,theme:r,namespace:[].concat(F(a),[i.name])}):null,!1!==d&&0==m?this.getEditIcon():null,!1!==h&&0==m?this.getRemoveIcon():null)}}]),i}(_.a.PureComponent),ke=function(e){d(i,e);var t=m(i);function i(){var e;r(this,i);for(var n=arguments.length,o=new Array(n),a=0;a<n;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).getObjectSize=function(){var t=e.props,i=t.size,n=t.theme;if(t.displayObjectSize)return _.a.createElement("span",Object.assign({className:"object-size"},E(n,"object-size")),i," item",1===i?"":"s")},e.getAddAttribute=function(t){var i=e.props,n=i.theme,o=i.namespace,r=i.name,a=i.src,l=i.rjvId,c=i.depth;return _.a.createElement("span",{className:"click-to-add",style:{verticalAlign:"top",display:t?"inline-block":"none"}},_.a.createElement(ve,Object.assign({className:"click-to-add-icon"},E(n,"addVarIcon"),{onClick:function(){var e={name:c>0?r:null,namespace:o.splice(0,o.length-1),existing_value:a,variable_removed:!1,key_name:null};"object"===S(a)?V.dispatch({name:"ADD_VARIABLE_KEY_REQUEST",rjvId:l,data:e}):V.dispatch({name:"VARIABLE_ADDED",rjvId:l,data:s(s({},e),{},{new_value:[].concat(F(a),[null])})})}})))},e.getRemoveObject=function(t){var i=e.props,n=i.theme,o=(i.hover,i.namespace),s=i.name,r=i.src,a=i.rjvId;if(1!==o.length)return _.a.createElement("span",{className:"click-to-remove",style:{display:t?"inline-block":"none"}},_.a.createElement(_e,Object.assign({className:"click-to-remove-icon"},E(n,"removeVarIcon"),{onClick:function(){V.dispatch({name:"VARIABLE_REMOVED",rjvId:a,data:{name:s,namespace:o.splice(0,o.length-1),existing_value:r,variable_removed:!0}})}})))},e.render=function(){var t=e.props,i=t.theme,n=t.onDelete,o=t.onAdd,s=t.enableClipboard,r=t.src,a=t.namespace,l=t.rowHovered;return _.a.createElement("div",Object.assign({},E(i,"object-meta-data"),{className:"object-meta-data",onClick:function(e){e.stopPropagation()}}),e.getObjectSize(),s?_.a.createElement(Se,{rowHovered:l,clickCallback:s,src:r,theme:i,namespace:a}):null,!1!==o?e.getAddAttribute(l):null,!1!==n?e.getRemoveObject(l):null)},e}return i}(_.a.PureComponent);function xe(e){var t=e.parent_type,i=e.namespace,n=e.quotesOnKeys,o=e.theme,s=e.jsvRoot,r=e.name,a=e.displayArrayKey,l=e.name?e.name:"";return!s||!1!==r&&null!==r?"array"==t?a?_.a.createElement("span",Object.assign({},E(o,"array-key"),{key:i}),_.a.createElement("span",{className:"array-key"},l),_.a.createElement("span",E(o,"colon"),":")):_.a.createElement("span",null):_.a.createElement("span",Object.assign({},E(o,"object-name"),{key:i}),_.a.createElement("span",{className:"object-key"},n&&_.a.createElement("span",{style:{verticalAlign:"top"}},'"'),_.a.createElement("span",null,l),n&&_.a.createElement("span",{style:{verticalAlign:"top"}},'"')),_.a.createElement("span",E(o,"colon"),":")):_.a.createElement("span",null)}function De(e){var t=e.theme;switch(e.iconStyle){case"triangle":return _.a.createElement(me,Object.assign({},E(t,"expanded-icon"),{className:"expanded-icon"}));case"square":return _.a.createElement(ue,Object.assign({},E(t,"expanded-icon"),{className:"expanded-icon"}));default:return _.a.createElement(de,Object.assign({},E(t,"expanded-icon"),{className:"expanded-icon"}))}}function Ne(e){var t=e.theme;switch(e.iconStyle){case"triangle":return _.a.createElement(pe,Object.assign({},E(t,"collapsed-icon"),{className:"collapsed-icon"}));case"square":return _.a.createElement(ge,Object.assign({},E(t,"collapsed-icon"),{className:"collapsed-icon"}));default:return _.a.createElement(he,Object.assign({},E(t,"collapsed-icon"),{className:"collapsed-icon"}))}}var Ee=function(e){d(i,e);var t=m(i);function i(e){var n;return r(this,i),(n=t.call(this,e)).toggleCollapsed=function(e){var t=[];for(var i in n.state.expanded)t.push(n.state.expanded[i]);t[e]=!t[e],n.setState({expanded:t})},n.state={expanded:[]},n}return l(i,[{key:"getExpandedIcon",value:function(e){var t=this.props,i=t.theme,n=t.iconStyle;return this.state.expanded[e]?_.a.createElement(De,{theme:i,iconStyle:n}):_.a.createElement(Ne,{theme:i,iconStyle:n})}},{key:"render",value:function(){var e=this,t=this.props,i=t.src,n=t.groupArraysAfterLength,o=(t.depth,t.name),s=t.theme,r=t.jsvRoot,a=t.namespace,l=(t.parent_type,y(t,["src","groupArraysAfterLength","depth","name","theme","jsvRoot","namespace","parent_type"])),c=0,d=5*this.props.indentWidth;r||(c=5*this.props.indentWidth);var h=n,u=Math.ceil(i.length/h);return _.a.createElement("div",Object.assign({className:"object-key-val"},E(s,r?"jsv-root":"objectKeyVal",{paddingLeft:c})),_.a.createElement(xe,this.props),_.a.createElement("span",null,_.a.createElement(ke,Object.assign({size:i.length},this.props))),F(Array(u)).map((function(t,n){return _.a.createElement("div",Object.assign({key:n,className:"object-key-val array-group"},E(s,"objectKeyVal",{marginLeft:6,paddingLeft:d})),_.a.createElement("span",E(s,"brace-row"),_.a.createElement("div",Object.assign({className:"icon-container"},E(s,"icon-container"),{onClick:function(t){e.toggleCollapsed(n)}}),e.getExpandedIcon(n)),e.state.expanded[n]?_.a.createElement(Me,Object.assign({key:o+n,depth:0,name:!1,collapsed:!1,groupArraysAfterLength:h,index_offset:n*h,src:i.slice(n*h,n*h+h),namespace:a,type:"array",parent_type:"array_group",theme:s},l)):_.a.createElement("span",Object.assign({},E(s,"brace"),{onClick:function(t){e.toggleCollapsed(n)},className:"array-group-brace"}),"[",_.a.createElement("div",Object.assign({},E(s,"array-group-meta-data"),{className:"array-group-meta-data"}),_.a.createElement("span",Object.assign({className:"object-size"},E(s,"object-size")),n*h," - ",n*h+h>i.length?i.length:n*h+h)),"]")))})))}}]),i}(_.a.PureComponent),Ie=function(e){d(i,e);var t=m(i);function i(e){var n;r(this,i),(n=t.call(this,e)).toggleCollapsed=function(){n.setState({expanded:!n.state.expanded},(function(){H.set(n.props.rjvId,n.props.namespace,"expanded",n.state.expanded)}))},n.getObjectContent=function(e,t,i){return _.a.createElement("div",{className:"pushed-content object-container"},_.a.createElement("div",Object.assign({className:"object-content"},E(n.props.theme,"pushed-content")),n.renderObjectContents(t,i)))},n.getEllipsis=function(){return 0===n.state.size?null:_.a.createElement("div",Object.assign({},E(n.props.theme,"ellipsis"),{className:"node-ellipsis",onClick:n.toggleCollapsed}),"...")},n.getObjectMetaData=function(e){var t=n.props,i=(t.rjvId,t.theme,n.state),o=i.size,s=i.hovered;return _.a.createElement(ke,Object.assign({rowHovered:s,size:o},n.props))},n.renderObjectContents=function(e,t){var i,o=n.props,s=o.depth,r=o.parent_type,a=o.index_offset,l=o.groupArraysAfterLength,c=o.namespace,d=n.state.object_type,h=[],u=Object.keys(e||{});return n.props.sortKeys&&"array"!==d&&(u=u.sort()),u.forEach((function(o){if(i=new Te(o,e[o]),"array_group"===r&&a&&(i.name=parseInt(i.name)+a),e.hasOwnProperty(o))if("object"===i.type)h.push(_.a.createElement(Me,Object.assign({key:i.name,depth:s+1,name:i.name,src:i.value,namespace:c.concat(i.name),parent_type:d},t)));else if("array"===i.type){var u=Me;l&&i.value.length>l&&(u=Ee),h.push(_.a.createElement(u,Object.assign({key:i.name,depth:s+1,name:i.name,src:i.value,namespace:c.concat(i.name),type:"array",parent_type:d},t)))}else h.push(_.a.createElement(Le,Object.assign({key:i.name+"_"+c,variable:i,singleIndent:5,namespace:c,type:n.props.type},t)))})),h};var o=i.getState(e);return n.state=s(s({},o),{},{prevProps:{}}),n}return l(i,[{key:"getBraceStart",value:function(e,t){var i=this,n=this.props,o=n.src,s=n.theme,r=n.iconStyle;if("array_group"===n.parent_type)return _.a.createElement("span",null,_.a.createElement("span",E(s,"brace"),"array"===e?"[":"{"),t?this.getObjectMetaData(o):null);var a=t?De:Ne;return _.a.createElement("span",null,_.a.createElement("span",Object.assign({onClick:function(e){i.toggleCollapsed()}},E(s,"brace-row")),_.a.createElement("div",Object.assign({className:"icon-container"},E(s,"icon-container")),_.a.createElement(a,{theme:s,iconStyle:r})),_.a.createElement(xe,this.props),_.a.createElement("span",E(s,"brace"),"array"===e?"[":"{")),t?this.getObjectMetaData(o):null)}},{key:"render",value:function(){var e=this,t=this.props,i=t.depth,n=t.src,o=(t.namespace,t.name,t.type,t.parent_type),r=t.theme,a=t.jsvRoot,l=t.iconStyle,c=y(t,["depth","src","namespace","name","type","parent_type","theme","jsvRoot","iconStyle"]),d=this.state,h=d.object_type,u=d.expanded,g={};return a||"array_group"===o?"array_group"===o&&(g.borderLeft=0,g.display="inline"):g.paddingLeft=5*this.props.indentWidth,_.a.createElement("div",Object.assign({className:"object-key-val",onMouseEnter:function(){return e.setState(s(s({},e.state),{},{hovered:!0}))},onMouseLeave:function(){return e.setState(s(s({},e.state),{},{hovered:!1}))}},E(r,a?"jsv-root":"objectKeyVal",g)),this.getBraceStart(h,u),u?this.getObjectContent(i,n,s({theme:r,iconStyle:l},c)):this.getEllipsis(),_.a.createElement("span",{className:"brace-row"},_.a.createElement("span",{style:s(s({},E(r,"brace").style),{},{paddingLeft:u?"3px":"0px"})},"array"===h?"]":"}"),u?null:this.getObjectMetaData(n)))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps;return e.src!==n.src||e.collapsed!==n.collapsed||e.name!==n.name||e.namespace!==n.namespace||e.rjvId!==n.rjvId?s(s({},i.getState(e)),{},{prevProps:e}):null}}]),i}(_.a.PureComponent);Ie.getState=function(e){var t=Object.keys(e.src).length,i=(!1===e.collapsed||!0!==e.collapsed&&e.collapsed>e.depth)&&(!e.shouldCollapse||!1===e.shouldCollapse({name:e.name,src:e.src,type:S(e.src),namespace:e.namespace}))&&0!==t;return{expanded:H.get(e.rjvId,e.namespace,"expanded",i),object_type:"array"===e.type?"array":"object",parent_type:"array"===e.type?"array":"object",size:t,hovered:!1}};var Te=function e(t,i){r(this,e),this.name=t,this.value=i,this.type=S(i)};w(Ie);var Me=Ie,Ae=function(e){d(i,e);var t=m(i);function i(){var e;r(this,i);for(var n=arguments.length,o=new Array(n),s=0;s<n;s++)o[s]=arguments[s];return(e=t.call.apply(t,[this].concat(o))).render=function(){var t=g(e).props,i=[t.name],n=Me;return Array.isArray(t.src)&&t.groupArraysAfterLength&&t.src.length>t.groupArraysAfterLength&&(n=Ee),_.a.createElement("div",{className:"pretty-json-container object-container"},_.a.createElement("div",{className:"object-content"},_.a.createElement(n,Object.assign({namespace:i,depth:0,jsvRoot:!0},t))))},e}return i}(_.a.PureComponent),Re=function(e){d(i,e);var t=m(i);function i(e){var n;return r(this,i),(n=t.call(this,e)).closeModal=function(){V.dispatch({rjvId:n.props.rjvId,name:"RESET"})},n.submit=function(){n.props.submit(n.state.input)},n.state={input:e.input?e.input:""},n}return l(i,[{key:"render",value:function(){var e=this,t=this.props,i=t.theme,n=t.rjvId,o=t.isValid,s=this.state.input,r=o(s);return _.a.createElement("div",Object.assign({className:"key-modal-request"},E(i,"key-modal-request"),{onClick:this.closeModal}),_.a.createElement("div",Object.assign({},E(i,"key-modal"),{onClick:function(e){e.stopPropagation()}}),_.a.createElement("div",E(i,"key-modal-label"),"Key Name:"),_.a.createElement("div",{style:{position:"relative"}},_.a.createElement("input",Object.assign({},E(i,"key-modal-input"),{className:"key-modal-input",ref:function(e){return e&&e.focus()},spellCheck:!1,value:s,placeholder:"...",onChange:function(t){e.setState({input:t.target.value})},onKeyPress:function(t){r&&"Enter"===t.key?e.submit():"Escape"===t.key&&e.closeModal()}})),r?_.a.createElement(we,Object.assign({},E(i,"key-modal-submit"),{className:"key-modal-submit",onClick:function(t){return e.submit()}})):null),_.a.createElement("span",E(i,"key-modal-cancel"),_.a.createElement(be,Object.assign({},E(i,"key-modal-cancel-icon"),{className:"key-modal-cancel",onClick:function(){V.dispatch({rjvId:n,name:"RESET"})}})))))}}]),i}(_.a.PureComponent),Oe=function(e){d(i,e);var t=m(i);function i(){var e;r(this,i);for(var n=arguments.length,o=new Array(n),a=0;a<n;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).isValid=function(t){var i=e.props.rjvId,n=H.get(i,"action","new-key-request");return""!=t&&-1===Object.keys(n.existing_value).indexOf(t)},e.submit=function(t){var i=e.props.rjvId,n=H.get(i,"action","new-key-request");n.new_value=s({},n.existing_value),n.new_value[t]=e.props.defaultValue,V.dispatch({name:"VARIABLE_ADDED",rjvId:i,data:n})},e}return l(i,[{key:"render",value:function(){var e=this.props,t=e.active,i=e.theme,n=e.rjvId;return t?_.a.createElement(Re,{rjvId:n,theme:i,isValid:this.isValid,submit:this.submit}):null}}]),i}(_.a.PureComponent),Pe=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.message,i=e.active,n=e.theme,o=e.rjvId;return i?_.a.createElement("div",Object.assign({className:"validation-failure"},E(n,"validation-failure"),{onClick:function(){V.dispatch({rjvId:o,name:"RESET"})}}),_.a.createElement("span",E(n,"validation-failure-label"),t),_.a.createElement(be,E(n,"validation-failure-clear"))):null}}]),i}(_.a.PureComponent),Fe=function(e){d(i,e);var t=m(i);function i(e){var n;return r(this,i),(n=t.call(this,e)).rjvId=Date.now().toString(),n.getListeners=function(){return{reset:n.resetState,"variable-update":n.updateSrc,"add-key-request":n.addKeyRequest}},n.updateSrc=function(){var e,t=H.get(n.rjvId,"action","variable-update"),i=t.name,o=t.namespace,s=t.new_value,r=t.existing_value,a=(t.variable_removed,t.updated_src),l=t.type,c=n.props,d=c.onEdit,h=c.onDelete,u=c.onAdd,g={existing_src:n.state.src,new_value:s,updated_src:a,name:i,namespace:o,existing_value:r};switch(l){case"variable-added":e=u(g);break;case"variable-edited":e=d(g);break;case"variable-removed":e=h(g)}!1!==e?(H.set(n.rjvId,"global","src",a),n.setState({src:a})):n.setState({validationFailure:!0})},n.addKeyRequest=function(){n.setState({addKeyRequest:!0})},n.resetState=function(){n.setState({validationFailure:!1,addKeyRequest:!1})},n.state={addKeyRequest:!1,editKeyRequest:!1,validationFailure:!1,src:i.defaultProps.src,name:i.defaultProps.name,theme:i.defaultProps.theme,validationMessage:i.defaultProps.validationMessage,prevSrc:i.defaultProps.src,prevName:i.defaultProps.name,prevTheme:i.defaultProps.theme},n}return l(i,[{key:"componentDidMount",value:function(){H.set(this.rjvId,"global","src",this.state.src);var e=this.getListeners();for(var t in e)H.on(t+"-"+this.rjvId,e[t]);this.setState({addKeyRequest:!1,editKeyRequest:!1})}},{key:"componentDidUpdate",value:function(e,t){!1!==t.addKeyRequest&&this.setState({addKeyRequest:!1}),!1!==t.editKeyRequest&&this.setState({editKeyRequest:!1}),e.src!==this.state.src&&H.set(this.rjvId,"global","src",this.state.src)}},{key:"componentWillUnmount",value:function(){var e=this.getListeners();for(var t in e)H.removeListener(t+"-"+this.rjvId,e[t])}},{key:"render",value:function(){var e=this.state,t=e.validationFailure,i=e.validationMessage,n=e.addKeyRequest,o=e.theme,r=e.src,a=e.name,l=this.props,c=l.style,d=l.defaultValue;return _.a.createElement("div",{className:"react-json-view",style:s(s({},E(o,"app-container").style),c)},_.a.createElement(Pe,{message:i,active:t,theme:o,rjvId:this.rjvId}),_.a.createElement(Ae,Object.assign({},this.props,{src:r,name:a,theme:o,type:S(r),rjvId:this.rjvId})),_.a.createElement(Oe,{active:n,theme:o,rjvId:this.rjvId,defaultValue:d}))}}],[{key:"getDerivedStateFromProps",value:function(e,t){if(e.src!==t.prevSrc||e.name!==t.prevName||e.theme!==t.prevTheme){var n={src:e.src,name:e.name,theme:e.theme,validationMessage:e.validationMessage,prevSrc:e.src,prevName:e.name,prevTheme:e.theme};return i.validateState(n)}return null}}]),i}(_.a.PureComponent);Fe.defaultProps={src:{},name:"root",theme:"rjv-default",collapsed:!1,collapseStringsAfterLength:!1,shouldCollapse:!1,sortKeys:!1,quotesOnKeys:!0,groupArraysAfterLength:100,indentWidth:4,enableClipboard:!0,displayObjectSize:!0,displayDataTypes:!0,onEdit:!1,onDelete:!1,onAdd:!1,onSelect:!1,iconStyle:"triangle",style:{},validationMessage:"Validation Error",defaultValue:null,displayArrayKey:!0},Fe.validateState=function(e){var t={};return"object"!==S(e.theme)||function(e){var t=["base00","base01","base02","base03","base04","base05","base06","base07","base08","base09","base0A","base0B","base0C","base0D","base0E","base0F"];if("object"===S(e)){for(var i=0;i<t.length;i++)if(!(t[i]in e))return!1;return!0}return!1}(e.theme)||(console.error("react-json-view error:","theme prop must be a theme name or valid base-16 theme object.",'defaulting to "rjv-default" theme'),t.theme="rjv-default"),"object"!==S(e.src)&&"array"!==S(e.src)&&(console.error("react-json-view error:","src property must be a valid json object"),t.name="ERROR",t.src={message:"src property must be a valid json object"}),s(s({},e),t)},w(Fe),t.default=Fe}]))},35930:function(e){var t,i;e.exports=(t={770:function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.setDefaultDebugCall=t.createOnigScanner=t.createOnigString=t.loadWASM=t.OnigScanner=t.OnigString=void 0;const o=n(i(418));let s=null,r=!1;class a{constructor(e){const t=e.length,i=a._utf8ByteLength(e),n=i!==t,o=n?new Uint32Array(t+1):null;n&&(o[t]=i);const s=n?new Uint32Array(i+1):null;n&&(s[i]=t);const r=new Uint8Array(i);let l=0;for(let a=0;a<t;a++){const i=e.charCodeAt(a);let c=i,d=!1;if(i>=55296&&i<=56319&&a+1<t){const t=e.charCodeAt(a+1);t>=56320&&t<=57343&&(c=65536+(i-55296<<10)|t-56320,d=!0)}n&&(o[a]=l,d&&(o[a+1]=l),c<=127?s[l+0]=a:c<=2047?(s[l+0]=a,s[l+1]=a):c<=65535?(s[l+0]=a,s[l+1]=a,s[l+2]=a):(s[l+0]=a,s[l+1]=a,s[l+2]=a,s[l+3]=a)),c<=127?r[l++]=c:c<=2047?(r[l++]=192|(1984&c)>>>6,r[l++]=128|(63&c)>>>0):c<=65535?(r[l++]=224|(61440&c)>>>12,r[l++]=128|(4032&c)>>>6,r[l++]=128|(63&c)>>>0):(r[l++]=240|(1835008&c)>>>18,r[l++]=128|(258048&c)>>>12,r[l++]=128|(4032&c)>>>6,r[l++]=128|(63&c)>>>0),d&&a++}this.utf16Length=t,this.utf8Length=i,this.utf16Value=e,this.utf8Value=r,this.utf16OffsetToUtf8=o,this.utf8OffsetToUtf16=s}static _utf8ByteLength(e){let t=0;for(let i=0,n=e.length;i<n;i++){const o=e.charCodeAt(i);let s=o,r=!1;if(o>=55296&&o<=56319&&i+1<n){const t=e.charCodeAt(i+1);t>=56320&&t<=57343&&(s=65536+(o-55296<<10)|t-56320,r=!0)}t+=s<=127?1:s<=2047?2:s<=65535?3:4,r&&i++}return t}createString(e){const t=e._omalloc(this.utf8Length);return e.HEAPU8.set(this.utf8Value,t),t}}class l{constructor(e){if(this.id=++l.LAST_ID,!s)throw new Error("Must invoke loadWASM first.");this._onigBinding=s,this.content=e;const t=new a(e);this.utf16Length=t.utf16Length,this.utf8Length=t.utf8Length,this.utf16OffsetToUtf8=t.utf16OffsetToUtf8,this.utf8OffsetToUtf16=t.utf8OffsetToUtf16,this.utf8Length<1e4&&!l._sharedPtrInUse?(l._sharedPtr||(l._sharedPtr=s._omalloc(1e4)),l._sharedPtrInUse=!0,s.HEAPU8.set(t.utf8Value,l._sharedPtr),this.ptr=l._sharedPtr):this.ptr=t.createString(s)}convertUtf8OffsetToUtf16(e){return this.utf8OffsetToUtf16?e<0?0:e>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[e]:e}convertUtf16OffsetToUtf8(e){return this.utf16OffsetToUtf8?e<0?0:e>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[e]:e}dispose(){this.ptr===l._sharedPtr?l._sharedPtrInUse=!1:this._onigBinding._ofree(this.ptr)}}t.OnigString=l,l.LAST_ID=0,l._sharedPtr=0,l._sharedPtrInUse=!1;class c{constructor(e){if(!s)throw new Error("Must invoke loadWASM first.");const t=[],i=[];for(let l=0,c=e.length;l<c;l++){const n=new a(e[l]);t[l]=n.createString(s),i[l]=n.utf8Length}const n=s._omalloc(4*e.length);s.HEAPU32.set(t,n/4);const o=s._omalloc(4*e.length);s.HEAPU32.set(i,o/4);const r=s._createOnigScanner(n,o,e.length);for(let a=0,l=e.length;a<l;a++)s._ofree(t[a]);s._ofree(o),s._ofree(n),0===r&&function(e){throw new Error(e.UTF8ToString(e._getLastOnigError()))}(s),this._onigBinding=s,this._ptr=r}dispose(){this._onigBinding._freeOnigScanner(this._ptr)}findNextMatchSync(e,t,i){let n=r,o=0;if("number"==typeof i?(8&i&&(n=!0),o=i):"boolean"==typeof i&&(n=i),"string"==typeof e){e=new l(e);const i=this._findNextMatchSync(e,t,n,o);return e.dispose(),i}return this._findNextMatchSync(e,t,n,o)}_findNextMatchSync(e,t,i,n){const o=this._onigBinding;let s;if(s=i?o._findNextOnigScannerMatchDbg(this._ptr,e.id,e.ptr,e.utf8Length,e.convertUtf16OffsetToUtf8(t),n):o._findNextOnigScannerMatch(this._ptr,e.id,e.ptr,e.utf8Length,e.convertUtf16OffsetToUtf8(t),n),0===s)return null;const r=o.HEAPU32;let a=s/4;const l=r[a++],c=r[a++];let d=[];for(let h=0;h<c;h++){const t=e.convertUtf8OffsetToUtf16(r[a++]),i=e.convertUtf8OffsetToUtf16(r[a++]);d[h]={start:t,end:i,length:i-t}}return{index:l,captureIndices:d}}}t.OnigScanner=c;let d=!1,h=null;t.loadWASM=function(e){if(d)return h;let t,i,n,r;if(d=!0,function(e){return"function"==typeof e.instantiator}(e))t=e.instantiator,i=e.print;else{let n;!function(e){return void 0!==e.data}(e)?n=e:(n=e.data,i=e.print),t=function(e){return"undefined"!=typeof Response&&e instanceof Response}(n)?"function"==typeof WebAssembly.instantiateStreaming?function(e){return t=>WebAssembly.instantiateStreaming(e,t)}(n):function(e){return async t=>{const i=await e.arrayBuffer();return WebAssembly.instantiate(i,t)}}(n):function(e){return t=>WebAssembly.instantiate(e,t)}(n)}return h=new Promise(((e,t)=>{n=e,r=t})),function(e,t,i,n){o.default({print:t,instantiateWasm:(t,i)=>{if("undefined"==typeof performance){const e=()=>Date.now();t.env.emscripten_get_now=e,t.wasi_snapshot_preview1.emscripten_get_now=e}return e(t).then((e=>i(e.instance)),n),{}}}).then((e=>{s=e,i()}))}(t,i,n,r),h},t.createOnigString=function(e){return new l(e)},t.createOnigScanner=function(e){return new c(e)},t.setDefaultDebugCall=function(e){r=e}},418:e=>{var t=("undefined"!=typeof document&&document.currentScript&&document.currentScript.src,function(e){var t,i,n=void 0!==(e=e||{})?e:{};n.ready=new Promise((function(e,n){t=e,i=n}));var o,s={};for(o in n)n.hasOwnProperty(o)&&(s[o]=n[o]);var r,a=[],l=!1,c=!1,d="";function h(e){return n.locateFile?n.locateFile(e,d):d+e}r=function(e){var t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(v("object"==typeof(t=read(e,"binary"))),t)},"undefined"!=typeof scriptArgs?a=scriptArgs:void 0!==arguments&&(a=arguments),"undefined"!=typeof onig_print&&("undefined"==typeof console&&(console={}),console.log=onig_print,console.warn=console.error="undefined"!=typeof printErr?printErr:onig_print);var u=n.print||console.log.bind(console),g=n.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(n[o]=s[o]);s=null,n.arguments&&(a=n.arguments),n.thisProgram&&n.thisProgram,n.quit&&n.quit;var p,m,f=function(e){};n.wasmBinary&&(p=n.wasmBinary),n.noExitRuntime,"object"!=typeof WebAssembly&&j("no native wasm support detected");var _=!1;function v(e,t){e||j("Assertion failed: "+t)}var b,C,w,y="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function S(e,t,i){for(var n=t+i,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.subarray&&y)return y.decode(e.subarray(t,o));for(var s="";t<o;){var r=e[t++];if(128&r){var a=63&e[t++];if(192!=(224&r)){var l=63&e[t++];if((r=224==(240&r)?(15&r)<<12|a<<6|l:(7&r)<<18|a<<12|l<<6|63&e[t++])<65536)s+=String.fromCharCode(r);else{var c=r-65536;s+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else s+=String.fromCharCode((31&r)<<6|a)}else s+=String.fromCharCode(r)}return s}function L(e,t){return e?S(C,e,t):""}function k(e,t){return e%t>0&&(e+=t-e%t),e}function x(e){b=e,n.HEAP8=new Int8Array(e),n.HEAP16=new Int16Array(e),n.HEAP32=w=new Int32Array(e),n.HEAPU8=C=new Uint8Array(e),n.HEAPU16=new Uint16Array(e),n.HEAPU32=new Uint32Array(e),n.HEAPF32=new Float32Array(e),n.HEAPF64=new Float64Array(e)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le"),n.INITIAL_MEMORY;var D,N=[],E=[],I=[],T=[];function M(){if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)P(n.preRun.shift());J(N)}function A(){J(E)}function R(){J(I)}function O(){if(n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)F(n.postRun.shift());J(T)}function P(e){N.unshift(e)}function F(e){T.unshift(e)}E.push({func:function(){le()}});var B=0,V=null,W=null;function H(e){B++,n.monitorRunDependencies&&n.monitorRunDependencies(B)}function z(e){if(B--,n.monitorRunDependencies&&n.monitorRunDependencies(B),0==B&&(null!==V&&(clearInterval(V),V=null),W)){var t=W;W=null,t()}}function j(e){n.onAbort&&n.onAbort(e),g(e+=""),_=!0,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.";var t=new WebAssembly.RuntimeError(e);throw i(t),t}function U(e,t){return String.prototype.startsWith?e.startsWith(t):0===e.indexOf(t)}n.preloadedImages={},n.preloadedAudios={};var K="data:application/octet-stream;base64,";function $(e){return U(e,K)}var q,G="onig.wasm";function Q(e){try{if(e==G&&p)return new Uint8Array(p);if(r)return r(e);throw"both async and sync fetching of the wasm failed"}catch(e){j(e)}}function Z(){return p||!l&&!c||"function"!=typeof fetch?Promise.resolve().then((function(){return Q(G)})):fetch(G,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+G+"'";return e.arrayBuffer()})).catch((function(){return Q(G)}))}function Y(){var e={env:ae,wasi_snapshot_preview1:ae};function t(e,t){var i=e.exports;n.asm=i,x((m=n.asm.memory).buffer),D=n.asm.__indirect_function_table,z()}function o(e){t(e.instance)}function s(t){return Z().then((function(t){return WebAssembly.instantiate(t,e)})).then(t,(function(e){g("failed to asynchronously prepare wasm: "+e),j(e)}))}if(H(),n.instantiateWasm)try{return n.instantiateWasm(e,t)}catch(e){return g("Module.instantiateWasm callback failed with error: "+e),!1}return(p||"function"!=typeof WebAssembly.instantiateStreaming||$(G)||"function"!=typeof fetch?s(o):fetch(G,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(o,(function(e){return g("wasm streaming compile failed: "+e),g("falling back to ArrayBuffer instantiation"),s(o)}))}))).catch(i),{}}function J(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var i=t.func;"number"==typeof i?void 0===t.arg?D.get(i)():D.get(i)(t.arg):i(void 0===t.arg?null:t.arg)}else t(n)}}function X(e,t,i){C.copyWithin(e,t,t+i)}function ee(){return C.length}function te(e){try{return m.grow(e-b.byteLength+65535>>>16),x(m.buffer),1}catch(e){}}function ie(e){var t=ee(),i=2147483648;if(e>i)return!1;for(var n=1;n<=4;n*=2){var o=t*(1+.2/n);if(o=Math.min(o,e+100663296),te(Math.min(i,k(Math.max(e,o),65536))))return!0}return!1}$(G)||(G=h(G)),q="undefined"!=typeof dateNow?dateNow:function(){return performance.now()};var ne={mappings:{},buffers:[null,[],[]],printChar:function(e,t){var i=ne.buffers[e];0===t||10===t?((1===e?u:g)(S(i,0)),i.length=0):i.push(t)},varargs:void 0,get:function(){return ne.varargs+=4,w[ne.varargs-4>>2]},getStr:function(e){return L(e)},get64:function(e,t){return e}};function oe(e,t,i,n){for(var o=0,s=0;s<i;s++){for(var r=w[t+8*s>>2],a=w[t+(8*s+4)>>2],l=0;l<a;l++)ne.printChar(e,C[r+l]);o+=a}return w[n>>2]=o,0}function se(e){f(0|e)}var re,ae={emscripten_get_now:q,emscripten_memcpy_big:X,emscripten_resize_heap:ie,fd_write:oe,setTempRet0:se},le=(Y(),n.___wasm_call_ctors=function(){return(le=n.___wasm_call_ctors=n.asm.__wasm_call_ctors).apply(null,arguments)});function ce(e){function i(){re||(re=!0,n.calledRun=!0,_||(A(),R(),t(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),O()))}e=e||a,B>0||(M(),B>0||(n.setStatus?(n.setStatus("Running..."),setTimeout((function(){setTimeout((function(){n.setStatus("")}),1),i()}),1)):i()))}if(n.___errno_location=function(){return(n.___errno_location=n.asm.__errno_location).apply(null,arguments)},n._omalloc=function(){return(n._omalloc=n.asm.omalloc).apply(null,arguments)},n._ofree=function(){return(n._ofree=n.asm.ofree).apply(null,arguments)},n._getLastOnigError=function(){return(n._getLastOnigError=n.asm.getLastOnigError).apply(null,arguments)},n._createOnigScanner=function(){return(n._createOnigScanner=n.asm.createOnigScanner).apply(null,arguments)},n._freeOnigScanner=function(){return(n._freeOnigScanner=n.asm.freeOnigScanner).apply(null,arguments)},n._findNextOnigScannerMatch=function(){return(n._findNextOnigScannerMatch=n.asm.findNextOnigScannerMatch).apply(null,arguments)},n._findNextOnigScannerMatchDbg=function(){return(n._findNextOnigScannerMatchDbg=n.asm.findNextOnigScannerMatchDbg).apply(null,arguments)},n.stackSave=function(){return(n.stackSave=n.asm.stackSave).apply(null,arguments)},n.stackRestore=function(){return(n.stackRestore=n.asm.stackRestore).apply(null,arguments)},n.stackAlloc=function(){return(n.stackAlloc=n.asm.stackAlloc).apply(null,arguments)},n.dynCall_jiji=function(){return(n.dynCall_jiji=n.asm.dynCall_jiji).apply(null,arguments)},n.UTF8ToString=L,W=function e(){re||ce(),re||(W=e)},n.run=ce,n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return ce(),e.ready});e.exports=t}},i={},function e(n){var o=i[n];if(void 0!==o)return o.exports;var s=i[n]={exports:{}};return t[n].call(s.exports,s,s.exports,e),s.exports}(770))},22190:function(e){e.exports=(()=>{"use strict";var e={350:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UseOnigurumaFindOptions=t.DebugFlags=void 0,t.DebugFlags={InDebugMode:"undefined"!=typeof process&&!!process.env.VSCODE_TEXTMATE_DEBUG},t.UseOnigurumaFindOptions=!1},527:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BalancedBracketSelectors=t.LocalStackElement=t.StackElement=t.ScopeListElement=t.StackElementMetadata=t.Grammar=t.ScopeMetadata=t.ScopeDependencyProcessor=t.ScopeDependencyCollector=t.PartialScopeDependency=t.FullScopeDependency=t.createGrammar=void 0;var n=i(878),o=i(792),s=i(736),r=i(350),a="undefined"==typeof performance?function(){return Date.now()}:function(){return performance.now()};t.createGrammar=function(e,t,i,n,o,s,r,a){return new w(e,t,i,n,o,s,r,a)};var l=function(e){this.scopeName=e};t.FullScopeDependency=l;var c=function(){function e(e,t){this.scopeName=e,this.include=t}return e.prototype.toKey=function(){return"".concat(this.scopeName,"#").concat(this.include)},e}();t.PartialScopeDependency=c;var d=function(){function e(){this.full=[],this.partial=[],this.visitedRule=new Set,this._seenFull=new Set,this._seenPartial=new Set}return e.prototype.add=function(e){e instanceof l?this._seenFull.has(e.scopeName)||(this._seenFull.add(e.scopeName),this.full.push(e)):this._seenPartial.has(e.toKey())||(this._seenPartial.add(e.toKey()),this.partial.push(e))},e}();function h(e,t,i,o,s){for(var r=0,a=o;r<a.length;r++){var d=a[r];if(!e.visitedRule.has(d)){e.visitedRule.add(d);var u=d.repository?(0,n.mergeObjects)({},s,d.repository):s;Array.isArray(d.patterns)&&h(e,t,i,d.patterns,u);var g=d.include;if(g)if("$base"===g||g===t.scopeName)m(e,t,t);else if("$self"===g||g===i.scopeName)m(e,t,i);else if("#"===g.charAt(0))p(e,t,i,g.substring(1),u);else{var f=g.indexOf("#");if(f>=0){var _=g.substring(0,f),v=g.substring(f+1);_===t.scopeName?p(e,t,t,v,u):_===i.scopeName?p(e,t,i,v,u):e.add(new c(_,g.substring(f+1)))}else e.add(new l(g))}}}}t.ScopeDependencyCollector=d;var u=function(){function e(e,t){this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests=new Set,this.seenPartialScopeRequests=new Set,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new l(this.initialScopeName)]}return e.prototype.processQueue=function(){var e=this.Q;this.Q=[];for(var t=new d,i=0,n=e;i<n.length;i++){var o=n[i];g(this.repo,this.initialScopeName,t,o)}for(var s=0,r=t.full;s<r.length;s++)o=r[s],this.seenFullScopeRequests.has(o.scopeName)||(this.seenFullScopeRequests.add(o.scopeName),this.Q.push(o));for(var a=0,l=t.partial;a<l.length;a++)o=l[a],this.seenFullScopeRequests.has(o.scopeName)||this.seenPartialScopeRequests.has(o.toKey())||(this.seenPartialScopeRequests.add(o.toKey()),this.Q.push(o))},e}();function g(e,t,i,n){var o=e.lookup(n.scopeName);if(o){n instanceof l?m(i,e.lookup(t),o):p(i,e.lookup(t),o,n.include);var s=e.injections(n.scopeName);if(s)for(var r=0,a=s;r<a.length;r++){var c=a[r];i.add(new l(c))}}else if(n.scopeName===t)throw new Error("No grammar provided for <".concat(t,">"))}function p(e,t,i,n,o){void 0===o&&(o=i.repository),o&&o[n]&&h(e,t,i,[o[n]],o)}function m(e,t,i){if(i.patterns&&Array.isArray(i.patterns)&&h(e,t,i,i.patterns,i.repository),i.injections){var n=[];for(var o in i.injections)n.push(i.injections[o]);h(e,t,i,n,i.repository)}}function f(e,t){if(!e)return!1;if(e===t)return!0;var i=t.length;return e.length>i&&e.substr(0,i)===t&&"."===e[i]}function _(e,t){if(t.length<e.length)return!1;var i=0;return e.every((function(e){for(var n=i;n<t.length;n++)if(f(t[n],e))return i=n+1,!0;return!1}))}function v(e,t,i,n,r){for(var a=(0,s.createMatchers)(t,_),l=o.RuleFactory.getCompiledRuleId(i,n,r.repository),c=0,d=a;c<d.length;c++){var h=d[c];e.push({debugSelector:t,matcher:h.matcher,ruleId:l,grammar:r,priority:h.priority})}}t.ScopeDependencyProcessor=u;var b=function(e,t,i,n){this.scopeName=e,this.languageId=t,this.tokenType=i,this.themeData=n};t.ScopeMetadata=b;var C=function(){function e(t,i,n){if(this._initialLanguage=t,this._themeProvider=i,this._cache=new Map,this._defaultMetaData=new b("",this._initialLanguage,8,[this._themeProvider.getDefaults()]),this._embeddedLanguages=Object.create(null),n)for(var o=Object.keys(n),s=0,r=o.length;s<r;s++){var a=o[s],l=n[a];"number"==typeof l&&0!==l?this._embeddedLanguages[a]=l:console.warn("Invalid embedded language found at scope "+a+": <<"+l+">>")}var c=Object.keys(this._embeddedLanguages).map((function(t){return e._escapeRegExpCharacters(t)}));0===c.length?this._embeddedLanguagesRegex=null:(c.sort(),c.reverse(),this._embeddedLanguagesRegex=new RegExp("^((".concat(c.join(")|("),"))($|\\.)"),""))}return e.prototype.onDidChangeTheme=function(){this._cache=new Map,this._defaultMetaData=new b("",this._initialLanguage,8,[this._themeProvider.getDefaults()])},e.prototype.getDefaultMetadata=function(){return this._defaultMetaData},e._escapeRegExpCharacters=function(e){return e.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&")},e.prototype.getMetadataForScope=function(t){if(null===t)return e._NULL_SCOPE_METADATA;var i=this._cache.get(t);return i||(i=this._doGetMetadataForScope(t),this._cache.set(t,i),i)},e.prototype._doGetMetadataForScope=function(e){var t=this._scopeToLanguage(e),i=this._toStandardTokenType(e),n=this._themeProvider.themeMatch(e);return new b(e,t,i,n)},e.prototype._scopeToLanguage=function(e){if(!e)return 0;if(!this._embeddedLanguagesRegex)return 0;var t=e.match(this._embeddedLanguagesRegex);return t&&(this._embeddedLanguages[t[1]]||0)||0},e.prototype._toStandardTokenType=function(t){var i=t.match(e.STANDARD_TOKEN_TYPE_REGEXP);if(!i)return 8;switch(i[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")},e._NULL_SCOPE_METADATA=new b("",0,0,null),e.STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/,e}(),w=function(){function e(e,t,i,n,o,r,a,l){if(this.balancedBracketSelectors=r,this._scopeName=e,this._scopeMetadataProvider=new C(i,a,n),this._onigLib=l,this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=a,this._grammar=S(t,null),this._injections=null,this._tokenTypeMatchers=[],o)for(var c=0,d=Object.keys(o);c<d.length;c++)for(var h=d[c],u=0,g=(0,s.createMatchers)(h,_);u<g.length;u++){var p=g[u];this._tokenTypeMatchers.push({matcher:p.matcher,type:o[h]})}}return e.prototype.dispose=function(){for(var e=0,t=this._ruleId2desc;e<t.length;e++){var i=t[e];i&&i.dispose()}},e.prototype.createOnigScanner=function(e){return this._onigLib.createOnigScanner(e)},e.prototype.createOnigString=function(e){return this._onigLib.createOnigString(e)},e.prototype.onDidChangeTheme=function(){this._scopeMetadataProvider.onDidChangeTheme()},e.prototype.getMetadataForScope=function(e){return this._scopeMetadataProvider.getMetadataForScope(e)},e.prototype._collectInjections=function(){var e=this,t={lookup:function(t){return t===e._scopeName?e._grammar:e.getExternalGrammar(t)},injections:function(t){return e._grammarRepository.injections(t)}},i=new u(t,this._scopeName),n=[];return i.seenFullScopeRequests.forEach((function(i){var o=t.lookup(i);if(o){var s=o.injections;if(s)for(var r in s)v(n,r,s[r],e,o);if(e._grammarRepository){var a=e._grammarRepository.injections(i);a&&a.forEach((function(t){var i=e.getExternalGrammar(t);if(i){var o=i.injectionSelector;o&&v(n,o,i,e,i)}}))}}})),n.sort((function(e,t){return e.priority-t.priority})),n},e.prototype.getInjections=function(){if(null===this._injections&&(this._injections=this._collectInjections(),r.DebugFlags.InDebugMode&&this._injections.length>0)){console.log("Grammar ".concat(this._scopeName," contains the following injections:"));for(var e=0,t=this._injections;e<t.length;e++){var i=t[e];console.log(" - ".concat(i.debugSelector))}}return this._injections},e.prototype.registerRule=function(e){var t=++this._lastRuleId,i=e(t);return this._ruleId2desc[t]=i,i},e.prototype.getRule=function(e){return this._ruleId2desc[e]},e.prototype.getExternalGrammar=function(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){var i=this._grammarRepository.lookup(e);if(i)return this._includedGrammars[e]=S(i,t&&t.$base),this._includedGrammars[e]}},e.prototype.tokenizeLine=function(e,t,i){void 0===i&&(i=0);var n=this._tokenize(e,t,!1,i);return{tokens:n.lineTokens.getResult(n.ruleStack,n.lineLength),ruleStack:n.ruleStack,stoppedEarly:n.stoppedEarly}},e.prototype.tokenizeLine2=function(e,t,i){void 0===i&&(i=0);var n=this._tokenize(e,t,!0,i);return{tokens:n.lineTokens.getBinaryResult(n.ruleStack,n.lineLength),ruleStack:n.ruleStack,stoppedEarly:n.stoppedEarly}},e.prototype._tokenize=function(e,t,i,n){var s;if(-1===this._rootId&&(this._rootId=o.RuleFactory.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository)),t&&t!==A.NULL)s=!1,t.reset();else{s=!0;var r=this._scopeMetadataProvider.getDefaultMetadata(),a=r.themeData[0],l=T.set(0,r.languageId,r.tokenType,null,a.fontStyle,a.foreground,a.background),c=this.getRule(this._rootId).getName(null,null),d=this._scopeMetadataProvider.getMetadataForScope(c),h=M.mergeMetadata(l,null,d),u=new M(null,null===c?"unknown":c,h);t=new A(null,this._rootId,-1,-1,!1,null,u,u)}e+="\n";var g=this.createOnigString(e),p=g.content.length,m=new P(i,e,this._tokenTypeMatchers,this.balancedBracketSelectors),f=I(this,g,s,0,t,m,!0,n);return y(g),{lineLength:p,lineTokens:m,ruleStack:f.stack,stoppedEarly:f.stoppedEarly}},e}();function y(e){"function"==typeof e.dispose&&e.dispose()}function S(e,t){return(e=(0,n.clone)(e)).repository=e.repository||{},e.repository.$self={$vscodeTextmateLocation:e.$vscodeTextmateLocation,patterns:e.patterns,name:e.scopeName},e.repository.$base=t||e.repository.$self,e}function L(e,t,i,n,o,s,r){if(0!==s.length){for(var a=t.content,l=Math.min(s.length,r.length),c=[],d=r[0].end,h=0;h<l;h++){var u=s[h];if(null!==u){var g=r[h];if(0!==g.length){if(g.start>d)break;for(;c.length>0&&c[c.length-1].endPos<=g.start;)o.produceFromScopes(c[c.length-1].scopes,c[c.length-1].endPos),c.pop();if(c.length>0?o.produceFromScopes(c[c.length-1].scopes,g.start):o.produce(n,g.start),u.retokenizeCapturedWithRuleId){var p=u.getName(a,r),m=n.contentNameScopesList.push(e,p),f=u.getContentName(a,r),_=m.push(e,f),v=n.push(u.retokenizeCapturedWithRuleId,g.start,-1,!1,null,m,_),b=e.createOnigString(a.substring(0,g.end));I(e,b,i&&0===g.start,g.start,v,o,!1,0),y(b)}else{var C=u.getName(a,r);if(null!==C){var w=(c.length>0?c[c.length-1].scopes:n.contentNameScopesList).push(e,C);c.push(new R(w,g.end))}}}}}for(;c.length>0;)o.produceFromScopes(c[c.length-1].scopes,c[c.length-1].endPos),c.pop()}}function k(e){for(var t=[],i=0,n=e.rules.length;i<n;i++)t.push(" - "+e.rules[i]+": "+e.debugRegExps[i]);return t.join("\n")}function x(e,t){var i=0;return e||(i|=1),t||(i|=4),i}function D(e,t,i,n,o){return r.UseOnigurumaFindOptions?{ruleScanner:e.compile(t,i),findOptions:x(n,o)}:{ruleScanner:e.compileAG(t,i,n,o),findOptions:0}}function N(e,t,i,n,o){return r.UseOnigurumaFindOptions?{ruleScanner:e.compileWhile(t,i),findOptions:x(n,o)}:{ruleScanner:e.compileWhileAG(t,i,n,o),findOptions:0}}t.Grammar=w;var E=function(e,t){this.stack=e,this.stoppedEarly=t};function I(e,t,i,n,s,l,c,d){var h=t.content.length,u=!1,g=-1;if(c){var p=function(e,t,i,n,s,a){for(var l=s.beginRuleCapturedEOL?0:-1,c=[],d=s;d;d=d.pop()){var h=d.getRule(e);h instanceof o.BeginWhileRule&&c.push({rule:h,stack:d})}for(var u=c.pop();u;u=c.pop()){var g=N(u.rule,e,u.stack.endRule,i,n===l),p=g.ruleScanner,m=g.findOptions,f=p.scanner.findNextMatchSync(t,n,m);if(r.DebugFlags.InDebugMode&&(console.log(" scanning for while rule"),console.log(k(p))),!f){r.DebugFlags.InDebugMode&&console.log(" popping "+u.rule.debugName+" - "+u.rule.debugWhileRegExp),s=u.stack.pop();break}if(-2!==p.rules[f.index]){s=u.stack.pop();break}f.captureIndices&&f.captureIndices.length&&(a.produce(u.stack,f.captureIndices[0].start),L(e,t,i,u.stack,a,u.rule.whileCaptures,f.captureIndices),a.produce(u.stack,f.captureIndices[0].end),l=f.captureIndices[0].end,f.captureIndices[0].end>n&&(n=f.captureIndices[0].end,i=!1))}return{stack:s,linePos:n,anchorPosition:l,isFirstLine:i}}(e,t,i,n,s,l);s=p.stack,n=p.linePos,i=p.isFirstLine,g=p.anchorPosition}for(var m=Date.now();!u;){if(0!==d&&Date.now()-m>d)return new E(s,!0);f()}return new E(s,!1);function f(){r.DebugFlags.InDebugMode&&(console.log(""),console.log("@@scanNext ".concat(n,": |").concat(t.content.substr(n).replace(/\n$/,"\\n"),"|")));var c=function(e,t,i,n,o,s){var l=function(e,t,i,n,o,s){var l=o.getRule(e),c=D(l,e,o.endRule,i,n===s),d=c.ruleScanner,h=c.findOptions,u=0;r.DebugFlags.InDebugMode&&(u=a());var g=d.scanner.findNextMatchSync(t,n,h);if(r.DebugFlags.InDebugMode){var p=a()-u;p>5&&console.warn("Rule ".concat(l.debugName," (").concat(l.id,") matching took ").concat(p," against '").concat(t,"'")),console.log(" scanning for (linePos: ".concat(n,", anchorPosition: ").concat(s,")")),console.log(k(d)),g&&console.log("matched rule id: ".concat(d.rules[g.index]," from ").concat(g.captureIndices[0].start," to ").concat(g.captureIndices[0].end))}return g?{captureIndices:g.captureIndices,matchedRuleId:d.rules[g.index]}:null}(e,t,i,n,o,s),c=e.getInjections();if(0===c.length)return l;var d=function(e,t,i,n,o,s,a){for(var l,c=Number.MAX_VALUE,d=null,h=0,u=s.contentNameScopesList.generateScopes(),g=0,p=e.length;g<p;g++){var m=e[g];if(m.matcher(u)){var f=D(t.getRule(m.ruleId),t,null,n,o===a),_=f.ruleScanner,v=f.findOptions,b=_.scanner.findNextMatchSync(i,o,v);if(b){r.DebugFlags.InDebugMode&&(console.log(" matched injection: ".concat(m.debugSelector)),console.log(k(_)));var C=b.captureIndices[0].start;if(!(C>=c)&&(c=C,d=b.captureIndices,l=_.rules[b.index],h=m.priority,c===o))break}}}return d?{priorityMatch:-1===h,captureIndices:d,matchedRuleId:l}:null}(c,e,t,i,n,o,s);if(!d)return l;if(!l)return d;var h=l.captureIndices[0].start,u=d.captureIndices[0].start;return u<h||d.priorityMatch&&u===h?d:l}(e,t,i,n,s,g);if(!c)return r.DebugFlags.InDebugMode&&console.log(" no more matches."),l.produce(s,h),void(u=!0);var d=c.captureIndices,p=c.matchedRuleId,m=!!(d&&d.length>0)&&d[0].end>n;if(-1===p){var f=s.getRule(e);r.DebugFlags.InDebugMode&&console.log(" popping "+f.debugName+" - "+f.debugEndRegExp),l.produce(s,d[0].start),s=s.setContentNameScopesList(s.nameScopesList),L(e,t,i,s,l,f.endCaptures,d),l.produce(s,d[0].end);var _=s;if(s=s.pop(),g=_.getAnchorPos(),!m&&_.getEnterPos()===n)return r.DebugFlags.InDebugMode&&console.error("[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing"),s=_,l.produce(s,h),void(u=!0)}else{var v=e.getRule(p);l.produce(s,d[0].start);var b=s,C=v.getName(t.content,d),w=s.contentNameScopesList.push(e,C);if(s=s.push(p,n,g,d[0].end===h,null,w,w),v instanceof o.BeginEndRule){var y=v;r.DebugFlags.InDebugMode&&console.log(" pushing "+y.debugName+" - "+y.debugBeginRegExp),L(e,t,i,s,l,y.beginCaptures,d),l.produce(s,d[0].end),g=d[0].end;var S=y.getContentName(t.content,d),x=w.push(e,S);if(s=s.setContentNameScopesList(x),y.endHasBackReferences&&(s=s.setEndRule(y.getEndWithResolvedBackReferences(t.content,d))),!m&&b.hasSameRuleAs(s))return r.DebugFlags.InDebugMode&&console.error("[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),s=s.pop(),l.produce(s,h),void(u=!0)}else if(v instanceof o.BeginWhileRule){if(y=v,r.DebugFlags.InDebugMode&&console.log(" pushing "+y.debugName),L(e,t,i,s,l,y.beginCaptures,d),l.produce(s,d[0].end),g=d[0].end,S=y.getContentName(t.content,d),x=w.push(e,S),s=s.setContentNameScopesList(x),y.whileHasBackReferences&&(s=s.setEndRule(y.getWhileWithResolvedBackReferences(t.content,d))),!m&&b.hasSameRuleAs(s))return r.DebugFlags.InDebugMode&&console.error("[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),s=s.pop(),l.produce(s,h),void(u=!0)}else{var N=v;if(r.DebugFlags.InDebugMode&&console.log(" matched "+N.debugName+" - "+N.debugMatchRegExp),L(e,t,i,s,l,N.captures,d),l.produce(s,d[0].end),s=s.pop(),!m)return r.DebugFlags.InDebugMode&&console.error("[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping"),s=s.safePop(),l.produce(s,h),void(u=!0)}}d[0].end>n&&(n=d[0].end,i=!1)}}var T=function(){function e(){}return e.toBinaryStr=function(e){for(var t=e.toString(2);t.length<32;)t="0"+t;return t},e.printMetadata=function(t){var i=e.getLanguageId(t),n=e.getTokenType(t),o=e.getFontStyle(t),s=e.getForeground(t),r=e.getBackground(t);console.log({languageId:i,tokenType:n,fontStyle:o,foreground:s,background:r})},e.getLanguageId=function(e){return(255&e)>>>0},e.getTokenType=function(e){return(768&e)>>>8},e.containsBalancedBrackets=function(e){return 0!=(1024&e)},e.getFontStyle=function(e){return(30720&e)>>>11},e.getForeground=function(e){return(16744448&e)>>>15},e.getBackground=function(e){return(4278190080&e)>>>24},e.set=function(t,i,n,o,s,r,a){var l=e.getLanguageId(t),c=e.getTokenType(t),d=e.containsBalancedBrackets(t)?1:0,h=e.getFontStyle(t),u=e.getForeground(t),g=e.getBackground(t);return 0!==i&&(l=i),8!==n&&(c=n),null!==o&&(d=o?1:0),-1!==s&&(h=s),0!==r&&(u=r),0!==a&&(g=a),(l<<0|c<<8|d<<10|h<<11|u<<15|g<<24)>>>0},e}();t.StackElementMetadata=T;var M=function(){function e(e,t,i){this.parent=e,this.scope=t,this.metadata=i}return e._equals=function(e,t){for(;;){if(e===t)return!0;if(!e&&!t)return!0;if(!e||!t)return!1;if(e.scope!==t.scope||e.metadata!==t.metadata)return!1;e=e.parent,t=t.parent}},e.prototype.equals=function(t){return e._equals(this,t)},e._matchesScope=function(e,t,i){return t===e||e.substring(0,i.length)===i},e._matches=function(e,t){if(null===t)return!0;for(var i=t.length,n=0,o=t[n],s=o+".";e;){if(this._matchesScope(e.scope,o,s)){if(++n===i)return!0;s=(o=t[n])+"."}e=e.parent}return!1},e.mergeMetadata=function(e,t,i){if(null===i)return e;var n=-1,o=0,s=0;if(null!==i.themeData)for(var r=0,a=i.themeData.length;r<a;r++){var l=i.themeData[r];if(this._matches(t,l.parentScopes)){n=l.fontStyle,o=l.foreground,s=l.background;break}}return T.set(e,i.languageId,i.tokenType,null,n,o,s)},e._push=function(t,i,n){for(var o=0,s=n.length;o<s;o++){var r=n[o],a=i.getMetadataForScope(r),l=e.mergeMetadata(t.metadata,t,a);t=new e(t,r,l)}return t},e.prototype.push=function(t,i){return null===i?this:i.indexOf(" ")>=0?e._push(this,t,i.split(/ /g)):e._push(this,t,[i])},e._generateScopes=function(e){for(var t=[],i=0;e;)t[i++]=e.scope,e=e.parent;return t.reverse(),t},e.prototype.generateScopes=function(){return e._generateScopes(this)},e}();t.ScopeListElement=M;var A=function(){function e(e,t,i,n,o,s,r,a){this._stackElementBrand=void 0,this.parent=e,this.depth=this.parent?this.parent.depth+1:1,this.ruleId=t,this._enterPos=i,this._anchorPos=n,this.beginRuleCapturedEOL=o,this.endRule=s,this.nameScopesList=r,this.contentNameScopesList=a}return e._structuralEquals=function(e,t){for(;;){if(e===t)return!0;if(!e&&!t)return!0;if(!e||!t)return!1;if(e.depth!==t.depth||e.ruleId!==t.ruleId||e.endRule!==t.endRule)return!1;e=e.parent,t=t.parent}},e._equals=function(e,t){return e===t||!!this._structuralEquals(e,t)&&e.contentNameScopesList.equals(t.contentNameScopesList)},e.prototype.clone=function(){return this},e.prototype.equals=function(t){return null!==t&&e._equals(this,t)},e._reset=function(e){for(;e;)e._enterPos=-1,e._anchorPos=-1,e=e.parent},e.prototype.reset=function(){e._reset(this)},e.prototype.pop=function(){return this.parent},e.prototype.safePop=function(){return this.parent?this.parent:this},e.prototype.push=function(t,i,n,o,s,r,a){return new e(this,t,i,n,o,s,r,a)},e.prototype.getEnterPos=function(){return this._enterPos},e.prototype.getAnchorPos=function(){return this._anchorPos},e.prototype.getRule=function(e){return e.getRule(this.ruleId)},e.prototype._writeString=function(e,t){return this.parent&&(t=this.parent._writeString(e,t)),e[t++]="(".concat(this.ruleId,", TODO-").concat(this.nameScopesList,", TODO-").concat(this.contentNameScopesList,")"),t},e.prototype.toString=function(){var e=[];return this._writeString(e,0),"["+e.join(",")+"]"},e.prototype.setContentNameScopesList=function(e){return this.contentNameScopesList===e?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,e)},e.prototype.setEndRule=function(t){return this.endRule===t?this:new e(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,t,this.nameScopesList,this.contentNameScopesList)},e.prototype.hasSameRuleAs=function(e){for(var t=this;t&&t._enterPos===e._enterPos;){if(t.ruleId===e.ruleId)return!0;t=t.parent}return!1},e.NULL=new e(null,0,0,0,!1,null,null,null),e}();t.StackElement=A;var R=function(e,t){this.scopes=e,this.endPos=t};t.LocalStackElement=R;var O=function(){function e(e,t){var i=this;this.allowAny=!1,this.balancedBracketScopes=e.flatMap((function(e){return"*"===e?(i.allowAny=!0,[]):(0,s.createMatchers)(e,_).map((function(e){return e.matcher}))})),this.unbalancedBracketScopes=t.flatMap((function(e){return(0,s.createMatchers)(e,_).map((function(e){return e.matcher}))}))}return Object.defineProperty(e.prototype,"matchesAlways",{get:function(){return this.allowAny&&0===this.unbalancedBracketScopes.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"matchesNever",{get:function(){return 0===this.balancedBracketScopes.length&&!this.allowAny},enumerable:!1,configurable:!0}),e.prototype.match=function(e){for(var t=0,i=this.unbalancedBracketScopes;t<i.length;t++)if((0,i[t])(e))return!1;for(var n=0,o=this.balancedBracketScopes;n<o.length;n++)if((0,o[n])(e))return!0;return this.allowAny},e}();t.BalancedBracketSelectors=O;var P=function(){function e(e,t,i,n){this.balancedBracketSelectors=n,this._emitBinaryTokens=e,this._tokenTypeOverrides=i,r.DebugFlags.InDebugMode?this._lineText=t:this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}return e.prototype.produce=function(e,t){this.produceFromScopes(e.contentNameScopesList,t)},e.prototype.produceFromScopes=function(e,t){var i;if(!(this._lastTokenEndIndex>=t)){if(this._emitBinaryTokens){var n=e.metadata,o=!1;if((null===(i=this.balancedBracketSelectors)||void 0===i?void 0:i.matchesAlways)&&(o=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){for(var s=e.generateScopes(),a=0,l=this._tokenTypeOverrides;a<l.length;a++){var c=l[a];c.matcher(s)&&(n=T.set(n,0,c.type,null,-1,0,0))}this.balancedBracketSelectors&&(o=this.balancedBracketSelectors.match(s))}if(o&&(n=T.set(n,0,8,o,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===n)return void(this._lastTokenEndIndex=t);if(r.DebugFlags.InDebugMode){var d=e.generateScopes();console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,t).replace(/\n$/,"\\n")+"|");for(var h=0;h<d.length;h++)console.log(" * "+d[h])}return this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(n),void(this._lastTokenEndIndex=t)}var u=e.generateScopes();if(r.DebugFlags.InDebugMode)for(console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,t).replace(/\n$/,"\\n")+"|"),h=0;h<u.length;h++)console.log(" * "+u[h]);this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:t,scopes:u}),this._lastTokenEndIndex=t}},e.prototype.getResult=function(e,t){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),0===this._tokens.length&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens},e.prototype.getBinaryResult=function(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),0===this._binaryTokens.length&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);for(var i=new Uint32Array(this._binaryTokens.length),n=0,o=this._binaryTokens.length;n<o;n++)i[n]=this._binaryTokens[n];return i},e}()},25:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.parseRawGrammar=void 0;var n=i(69),o=i(350),s=i(974);t.parseRawGrammar=function(e,t){return void 0===t&&(t=null),null!==t&&/\.json$/.test(t)?(i=e,r=t,o.DebugFlags.InDebugMode?(0,s.parse)(i,r,!0):JSON.parse(i)):function(e,t){return o.DebugFlags.InDebugMode?n.parseWithLocation(e,t,"$vscodeTextmateLocation"):n.parse(e)}(e,t);var i,r}},974:(e,t)=>{function i(e,t){throw new Error("Near offset "+e.pos+": "+t+" ~~~"+e.source.substr(e.pos,50)+"~~~")}Object.defineProperty(t,"__esModule",{value:!0}),t.parse=void 0,t.parse=function(e,t,r){var a=new n(e),l=new o,c=0,d=null,h=[],u=[];function g(){h.push(c),u.push(d)}function p(){c=h.pop(),d=u.pop()}function m(e){i(a,e)}for(;s(a,l);){if(0===c){if(null!==d&&m("too many constructs in root"),3===l.type){d={},r&&(d.$vscodeTextmateLocation=l.toLocation(t)),g(),c=1;continue}if(2===l.type){d=[],g(),c=4;continue}m("unexpected token in root")}if(2===c){if(5===l.type){p();continue}if(7===l.type){c=3;continue}m("expected , or }")}if(1===c||3===c){if(1===c&&5===l.type){p();continue}if(1===l.type){var f=l.value;if(s(a,l)&&6===l.type||m("expected colon"),s(a,l)||m("expected value"),c=2,1===l.type){d[f]=l.value;continue}if(8===l.type){d[f]=null;continue}if(9===l.type){d[f]=!0;continue}if(10===l.type){d[f]=!1;continue}if(11===l.type){d[f]=parseFloat(l.value);continue}if(2===l.type){var _=[];d[f]=_,g(),c=4,d=_;continue}if(3===l.type){var v={};r&&(v.$vscodeTextmateLocation=l.toLocation(t)),d[f]=v,g(),c=1,d=v;continue}}m("unexpected token in dict")}if(5===c){if(4===l.type){p();continue}if(7===l.type){c=6;continue}m("expected , or ]")}if(4===c||6===c){if(4===c&&4===l.type){p();continue}if(c=5,1===l.type){d.push(l.value);continue}if(8===l.type){d.push(null);continue}if(9===l.type){d.push(!0);continue}if(10===l.type){d.push(!1);continue}if(11===l.type){d.push(parseFloat(l.value));continue}if(2===l.type){_=[],d.push(_),g(),c=4,d=_;continue}if(3===l.type){v={},r&&(v.$vscodeTextmateLocation=l.toLocation(t)),d.push(v),g(),c=1,d=v;continue}m("unexpected token in array")}m("unknown state")}return 0!==u.length&&m("unclosed constructs"),d};var n=function(e){this.source=e,this.pos=0,this.len=e.length,this.line=1,this.char=0},o=function(){function e(){this.value=null,this.type=0,this.offset=-1,this.len=-1,this.line=-1,this.char=-1}return e.prototype.toLocation=function(e){return{filename:e,line:this.line,char:this.char}},e}();function s(e,t){t.value=null,t.type=0,t.offset=-1,t.len=-1,t.line=-1,t.char=-1;for(var n,o=e.source,s=e.pos,r=e.len,a=e.line,l=e.char;;){if(s>=r)return!1;if(32!==(n=o.charCodeAt(s))&&9!==n&&13!==n){if(10!==n)break;s++,a++,l=0}else s++,l++}if(t.offset=s,t.line=a,t.char=l,34===n){for(t.type=1,s++,l++;;){if(s>=r)return!1;if(n=o.charCodeAt(s),s++,l++,92!==n){if(34===n)break}else s++,l++}t.value=o.substring(t.offset+1,s-1).replace(/\\u([0-9A-Fa-f]{4})/g,(function(e,t){return String.fromCodePoint(parseInt(t,16))})).replace(/\\(.)/g,(function(t,n){switch(n){case'"':return'"';case"\\":return"\\";case"/":return"/";case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";default:i(e,"invalid escape sequence")}throw new Error("unreachable")}))}else if(91===n)t.type=2,s++,l++;else if(123===n)t.type=3,s++,l++;else if(93===n)t.type=4,s++,l++;else if(125===n)t.type=5,s++,l++;else if(58===n)t.type=6,s++,l++;else if(44===n)t.type=7,s++,l++;else if(110===n){if(t.type=8,s++,l++,117!==(n=o.charCodeAt(s)))return!1;if(s++,l++,108!==(n=o.charCodeAt(s)))return!1;if(s++,l++,108!==(n=o.charCodeAt(s)))return!1;s++,l++}else if(116===n){if(t.type=9,s++,l++,114!==(n=o.charCodeAt(s)))return!1;if(s++,l++,117!==(n=o.charCodeAt(s)))return!1;if(s++,l++,101!==(n=o.charCodeAt(s)))return!1;s++,l++}else if(102===n){if(t.type=10,s++,l++,97!==(n=o.charCodeAt(s)))return!1;if(s++,l++,108!==(n=o.charCodeAt(s)))return!1;if(s++,l++,115!==(n=o.charCodeAt(s)))return!1;if(s++,l++,101!==(n=o.charCodeAt(s)))return!1;s++,l++}else for(t.type=11;;){if(s>=r)return!1;if(!(46===(n=o.charCodeAt(s))||n>=48&&n<=57||101===n||69===n||45===n||43===n))break;s++,l++}return t.len=s-t.offset,null===t.value&&(t.value=o.substr(t.offset,t.len)),e.pos=s,e.line=a,e.char=l,!0}},787:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var o=Object.getOwnPropertyDescriptor(t,i);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,o)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),o=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||n(t,e,i)},s=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(e){s(e)}}function a(e){try{l(n.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))},r=this&&this.__generator||function(e,t){var i,n,o,s,r={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return s={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(s){return function(a){return function(s){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return r.label++,{value:s[1],done:!1};case 5:r.label++,n=s[1],s=[0];continue;case 7:s=r.ops.pop(),r.trys.pop();continue;default:if(!((o=(o=r.trys).length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){r=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){r.label=s[1];break}if(6===s[0]&&r.label<o[1]){r.label=o[1],o=s;break}if(o&&r.label<o[2]){r.label=o[2],r.ops.push(s);break}o[2]&&r.ops.pop(),r.trys.pop();continue}s=t.call(e,r)}catch(e){s=[6,e],n=0}finally{i=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,a])}}};Object.defineProperty(t,"__esModule",{value:!0}),t.parseRawGrammar=t.INITIAL=t.Registry=void 0;var a=i(652),l=i(25),c=i(583),d=i(527);o(i(42),t);var h=function(){function e(e){this._options=e,this._syncRegistry=new a.SyncRegistry(c.Theme.createFromRawTheme(e.theme,e.colorMap),e.onigLib),this._ensureGrammarCache=new Map}return e.prototype.dispose=function(){this._syncRegistry.dispose()},e.prototype.setTheme=function(e,t){this._syncRegistry.setTheme(c.Theme.createFromRawTheme(e,t))},e.prototype.getColorMap=function(){return this._syncRegistry.getColorMap()},e.prototype.loadGrammarWithEmbeddedLanguages=function(e,t,i){return this.loadGrammarWithConfiguration(e,t,{embeddedLanguages:i})},e.prototype.loadGrammarWithConfiguration=function(e,t,i){return this._loadGrammar(e,t,i.embeddedLanguages,i.tokenTypes,new d.BalancedBracketSelectors(i.balancedBracketSelectors||[],i.unbalancedBracketSelectors||[]))},e.prototype.loadGrammar=function(e){return this._loadGrammar(e,0,null,null,null)},e.prototype._doLoadSingleGrammar=function(e){return s(this,void 0,void 0,(function(){var t,i;return r(this,(function(n){switch(n.label){case 0:return[4,this._options.loadGrammar(e)];case 1:return(t=n.sent())&&(i="function"==typeof this._options.getInjections?this._options.getInjections(e):void 0,this._syncRegistry.addGrammar(t,i)),[2]}}))}))},e.prototype._loadSingleGrammar=function(e){return s(this,void 0,void 0,(function(){return r(this,(function(t){return this._ensureGrammarCache.has(e)||this._ensureGrammarCache.set(e,this._doLoadSingleGrammar(e)),[2,this._ensureGrammarCache.get(e)]}))}))},e.prototype._loadGrammar=function(e,t,i,n,o){return s(this,void 0,void 0,(function(){var s,a=this;return r(this,(function(r){switch(r.label){case 0:s=new d.ScopeDependencyProcessor(this._syncRegistry,e),r.label=1;case 1:return s.Q.length>0?[4,Promise.all(s.Q.map((function(e){return a._loadSingleGrammar(e.scopeName)})))]:[3,3];case 2:return r.sent(),s.processQueue(),[3,1];case 3:return[2,this._grammarForScopeName(e,t,i,n,o)]}}))}))},e.prototype.addGrammar=function(e,t,i,n){return void 0===t&&(t=[]),void 0===i&&(i=0),void 0===n&&(n=null),s(this,void 0,void 0,(function(){return r(this,(function(o){switch(o.label){case 0:return this._syncRegistry.addGrammar(e,t),[4,this._grammarForScopeName(e.scopeName,i,n)];case 1:return[2,o.sent()]}}))}))},e.prototype._grammarForScopeName=function(e,t,i,n,o){return void 0===t&&(t=0),void 0===i&&(i=null),void 0===n&&(n=null),void 0===o&&(o=null),this._syncRegistry.grammarForScopeName(e,t,i,n,o)},e}();t.Registry=h,t.INITIAL=d.StackElement.NULL,t.parseRawGrammar=l.parseRawGrammar},736:(e,t)=>{function i(e){return!!e&&!!e.match(/[\w\.:]+/)}Object.defineProperty(t,"__esModule",{value:!0}),t.createMatchers=void 0,t.createMatchers=function(e,t){for(var n,o,s,r=[],a=(s=(o=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g).exec(n=e),{next:function(){if(!s)return null;var e=s[0];return s=o.exec(n),e}}),l=a.next();null!==l;){var c=0;if(2===l.length&&":"===l.charAt(1)){switch(l.charAt(0)){case"R":c=1;break;case"L":c=-1;break;default:console.log("Unknown priority ".concat(l," in scope selector"))}l=a.next()}var d=u();if(r.push({matcher:d,priority:c}),","!==l)break;l=a.next()}return r;function h(){if("-"===l){l=a.next();var e=h();return function(t){return!!e&&!e(t)}}if("("===l){l=a.next();var n=function(){for(var e=[],t=u();t&&(e.push(t),"|"===l||","===l);){do{l=a.next()}while("|"===l||","===l);t=u()}return function(t){return e.some((function(e){return e(t)}))}}();return")"===l&&(l=a.next()),n}if(i(l)){var o=[];do{o.push(l),l=a.next()}while(i(l));return function(e){return t(o,e)}}return null}function u(){for(var e=[],t=h();t;)e.push(t),t=h();return function(t){return e.every((function(e){return e(t)}))}}}},69:(e,t)=>{function i(e,t,i){var n=e.length,o=0,s=1,r=0;function a(t){if(null===i)o+=t;else for(;t>0;)10===e.charCodeAt(o)?(o++,s++,r=0):(o++,r++),t--}function l(e){null===i?o=e:a(e-o)}function c(){for(;o<n;){var t=e.charCodeAt(o);if(32!==t&&9!==t&&13!==t&&10!==t)break;a(1)}}function d(t){return e.substr(o,t.length)===t&&(a(t.length),!0)}function h(t){var i=e.indexOf(t,o);l(-1!==i?i+t.length:n)}function u(t){var i=e.indexOf(t,o);if(-1!==i){var s=e.substring(o,i);return l(i+t.length),s}return s=e.substr(o),l(n),s}n>0&&65279===e.charCodeAt(0)&&(o=1);var g=0,p=null,m=[],f=[],_=null;function v(e,t){m.push(g),f.push(p),g=e,p=t}function b(){if(0===m.length)return C("illegal state stack");g=m.pop(),p=f.pop()}function C(t){throw new Error("Near offset "+o+": "+t+" ~~~"+e.substr(o,50)+"~~~")}var w,y,S,L,k,x=function(){if(null===_)return C("missing <key>");var e={};null!==i&&(e[i]={filename:t,line:s,char:r}),p[_]=e,_=null,v(1,e)},D=function(){if(null===_)return C("missing <key>");var e=[];p[_]=e,_=null,v(2,e)};function N(){if(1!==g)return C("unexpected </dict>");b()}function E(){return 1===g||2!==g?C("unexpected </array>"):void b()}function I(e){if(1===g){if(null===_)return C("missing <key>");p[_]=e,_=null}else 2===g?p.push(e):p=e}function T(e){if(isNaN(e))return C("cannot parse float");if(1===g){if(null===_)return C("missing <key>");p[_]=e,_=null}else 2===g?p.push(e):p=e}function M(e){if(isNaN(e))return C("cannot parse integer");if(1===g){if(null===_)return C("missing <key>");p[_]=e,_=null}else 2===g?p.push(e):p=e}function A(e){if(1===g){if(null===_)return C("missing <key>");p[_]=e,_=null}else 2===g?p.push(e):p=e}function R(e){if(1===g){if(null===_)return C("missing <key>");p[_]=e,_=null}else 2===g?p.push(e):p=e}function O(e){if(1===g){if(null===_)return C("missing <key>");p[_]=e,_=null}else 2===g?p.push(e):p=e}function P(e){if(e.isClosed)return"";var t=u("</");return h(">"),t.replace(/&#([0-9]+);/g,(function(e,t){return String.fromCodePoint(parseInt(t,10))})).replace(/&#x([0-9a-f]+);/g,(function(e,t){return String.fromCodePoint(parseInt(t,16))})).replace(/&|<|>|"|'/g,(function(e){switch(e){case"&":return"&";case"<":return"<";case">":return">";case""":return'"';case"'":return"'"}return e}))}for(;o<n&&(c(),!(o>=n));){var F=e.charCodeAt(o);if(a(1),60!==F)return C("expected <");if(o>=n)return C("unexpected end of input");var B=e.charCodeAt(o);if(63!==B)if(33!==B){if(47===B){if(a(1),c(),d("plist")){h(">");continue}if(d("dict")){h(">"),N();continue}if(d("array")){h(">"),E();continue}return C("unexpected closed tag")}var V=(y=void 0,S=void 0,S=!1,47===(y=u(">")).charCodeAt(y.length-1)&&(S=!0,y=y.substring(0,y.length-1)),{name:y.trim(),isClosed:S});switch(V.name){case"dict":1===g?x():2===g?(k=void 0,k={},null!==i&&(k[i]={filename:t,line:s,char:r}),p.push(k),v(1,k)):(p={},null!==i&&(p[i]={filename:t,line:s,char:r}),v(1,p)),V.isClosed&&N();continue;case"array":1===g?D():2===g?(L=void 0,L=[],p.push(L),v(2,L)):v(2,p=[]),V.isClosed&&E();continue;case"key":w=P(V),1!==g?C("unexpected <key>"):null!==_?C("too many <key>"):_=w;continue;case"string":I(P(V));continue;case"real":T(parseFloat(P(V)));continue;case"integer":M(parseInt(P(V),10));continue;case"date":A(new Date(P(V)));continue;case"data":R(P(V));continue;case"true":P(V),O(!0);continue;case"false":P(V),O(!1);continue}if(!/^plist/.test(V.name))return C("unexpected opened tag "+V.name)}else{if(a(1),d("--")){h("--\x3e");continue}h(">")}else a(1),h("?>")}return p}Object.defineProperty(t,"__esModule",{value:!0}),t.parse=t.parseWithLocation=void 0,t.parseWithLocation=function(e,t,n){return i(e,t,n)},t.parse=function(e){return i(e,null,null)}},652:function(e,t,i){var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(e){s(e)}}function a(e){try{l(n.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var i,n,o,s,r={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return s={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(s){return function(a){return function(s){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return r.label++,{value:s[1],done:!1};case 5:r.label++,n=s[1],s=[0];continue;case 7:s=r.ops.pop(),r.trys.pop();continue;default:if(!((o=(o=r.trys).length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){r=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){r.label=s[1];break}if(6===s[0]&&r.label<o[1]){r.label=o[1],o=s;break}if(o&&r.label<o[2]){r.label=o[2],r.ops.push(s);break}o[2]&&r.ops.pop(),r.trys.pop();continue}s=t.call(e,r)}catch(e){s=[6,e],n=0}finally{i=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,a])}}};Object.defineProperty(t,"__esModule",{value:!0}),t.SyncRegistry=void 0;var s=i(527),r=function(){function e(e,t){this._theme=e,this._grammars={},this._rawGrammars={},this._injectionGrammars={},this._onigLibPromise=t}return e.prototype.dispose=function(){for(var e in this._grammars)this._grammars.hasOwnProperty(e)&&this._grammars[e].dispose()},e.prototype.setTheme=function(e){var t=this;this._theme=e,Object.keys(this._grammars).forEach((function(e){t._grammars[e].onDidChangeTheme()}))},e.prototype.getColorMap=function(){return this._theme.getColorMap()},e.prototype.addGrammar=function(e,t){this._rawGrammars[e.scopeName]=e,t&&(this._injectionGrammars[e.scopeName]=t)},e.prototype.lookup=function(e){return this._rawGrammars[e]},e.prototype.injections=function(e){return this._injectionGrammars[e]},e.prototype.getDefaults=function(){return this._theme.getDefaults()},e.prototype.themeMatch=function(e){return this._theme.match(e)},e.prototype.grammarForScopeName=function(e,t,i,r,a){return n(this,void 0,void 0,(function(){var n,l,c,d,h;return o(this,(function(o){switch(o.label){case 0:return this._grammars[e]?[3,2]:(n=this._rawGrammars[e])?(l=this._grammars,c=e,d=s.createGrammar,h=[e,n,t,i,r,a,this],[4,this._onigLibPromise]):[2,null];case 1:l[c]=d.apply(void 0,h.concat([o.sent()])),o.label=2;case 2:return[2,this._grammars[e]]}}))}))},e}();t.SyncRegistry=r},792:function(e,t,i){var n,o=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0}),t.RuleFactory=t.BeginWhileRule=t.BeginEndRule=t.IncludeOnlyRule=t.MatchRule=t.RegExpSourceList=t.RegExpSource=t.CaptureRule=t.Rule=t.CompiledRule=void 0;var s=i(878),r=/\\(\d+)/,a=/\\(\d+)/g,l=function(){function e(e,t,i){this.debugRegExps=t,this.rules=i,this.scanner=e.createOnigScanner(t)}return e.prototype.dispose=function(){"function"==typeof this.scanner.dispose&&this.scanner.dispose()},e}();t.CompiledRule=l;var c=function(){function e(e,t,i,n){this.$location=e,this.id=t,this._name=i||null,this._nameIsCapturing=s.RegexSource.hasCaptures(this._name),this._contentName=n||null,this._contentNameIsCapturing=s.RegexSource.hasCaptures(this._contentName)}return Object.defineProperty(e.prototype,"debugName",{get:function(){var e=this.$location?"".concat((0,s.basename)(this.$location.filename),":").concat(this.$location.line):"unknown";return"".concat(this.constructor.name,"#").concat(this.id," @ ").concat(e)},enumerable:!1,configurable:!0}),e.prototype.getName=function(e,t){return this._nameIsCapturing&&null!==this._name&&null!==e&&null!==t?s.RegexSource.replaceCaptures(this._name,e,t):this._name},e.prototype.getContentName=function(e,t){return this._contentNameIsCapturing&&null!==this._contentName?s.RegexSource.replaceCaptures(this._contentName,e,t):this._contentName},e}();t.Rule=c;var d=function(e){function t(t,i,n,o,s){var r=e.call(this,t,i,n,o)||this;return r.retokenizeCapturedWithRuleId=s,r}return o(t,e),t.prototype.dispose=function(){},t.prototype.collectPatternsRecursive=function(e,t,i){throw new Error("Not supported!")},t.prototype.compile=function(e,t){throw new Error("Not supported!")},t.prototype.compileAG=function(e,t,i,n){throw new Error("Not supported!")},t}(c);t.CaptureRule=d;var h=function(){function e(e,t,i){if(void 0===i&&(i=!0),i)if(e){for(var n=e.length,o=0,s=[],a=!1,l=0;l<n;l++)if("\\"===e.charAt(l)&&l+1<n){var c=e.charAt(l+1);"z"===c?(s.push(e.substring(o,l)),s.push("$(?!\\n)(?<!\\n)"),o=l+2):"A"!==c&&"G"!==c||(a=!0),l++}this.hasAnchor=a,0===o?this.source=e:(s.push(e.substring(o,n)),this.source=s.join(""))}else this.hasAnchor=!1,this.source=e;else this.hasAnchor=!1,this.source=e;this.hasAnchor?this._anchorCache=this._buildAnchorCache():this._anchorCache=null,this.ruleId=t,this.hasBackReferences=r.test(this.source)}return e.prototype.clone=function(){return new e(this.source,this.ruleId,!0)},e.prototype.setSource=function(e){this.source!==e&&(this.source=e,this.hasAnchor&&(this._anchorCache=this._buildAnchorCache()))},e.prototype.resolveBackReferences=function(e,t){var i=t.map((function(t){return e.substring(t.start,t.end)}));return a.lastIndex=0,this.source.replace(a,(function(e,t){return(i[parseInt(t,10)]||"").replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&")}))},e.prototype._buildAnchorCache=function(){var e,t,i,n,o=[],s=[],r=[],a=[];for(e=0,t=this.source.length;e<t;e++)i=this.source.charAt(e),o[e]=i,s[e]=i,r[e]=i,a[e]=i,"\\"===i&&e+1<t&&("A"===(n=this.source.charAt(e+1))?(o[e+1]="\uffff",s[e+1]="\uffff",r[e+1]="A",a[e+1]="A"):"G"===n?(o[e+1]="\uffff",s[e+1]="G",r[e+1]="\uffff",a[e+1]="G"):(o[e+1]=n,s[e+1]=n,r[e+1]=n,a[e+1]=n),e++);return{A0_G0:o.join(""),A0_G1:s.join(""),A1_G0:r.join(""),A1_G1:a.join("")}},e.prototype.resolveAnchors=function(e,t){return this.hasAnchor&&this._anchorCache?e?t?this._anchorCache.A1_G1:this._anchorCache.A1_G0:t?this._anchorCache.A0_G1:this._anchorCache.A0_G0:this.source},e}();t.RegExpSource=h;var u=function(){function e(){this._items=[],this._hasAnchors=!1,this._cached=null,this._anchorCache={A0_G0:null,A0_G1:null,A1_G0:null,A1_G1:null}}return e.prototype.dispose=function(){this._disposeCaches()},e.prototype._disposeCaches=function(){this._cached&&(this._cached.dispose(),this._cached=null),this._anchorCache.A0_G0&&(this._anchorCache.A0_G0.dispose(),this._anchorCache.A0_G0=null),this._anchorCache.A0_G1&&(this._anchorCache.A0_G1.dispose(),this._anchorCache.A0_G1=null),this._anchorCache.A1_G0&&(this._anchorCache.A1_G0.dispose(),this._anchorCache.A1_G0=null),this._anchorCache.A1_G1&&(this._anchorCache.A1_G1.dispose(),this._anchorCache.A1_G1=null)},e.prototype.push=function(e){this._items.push(e),this._hasAnchors=this._hasAnchors||e.hasAnchor},e.prototype.unshift=function(e){this._items.unshift(e),this._hasAnchors=this._hasAnchors||e.hasAnchor},e.prototype.length=function(){return this._items.length},e.prototype.setSource=function(e,t){this._items[e].source!==t&&(this._disposeCaches(),this._items[e].setSource(t))},e.prototype.compile=function(e){if(!this._cached){var t=this._items.map((function(e){return e.source}));this._cached=new l(e,t,this._items.map((function(e){return e.ruleId})))}return this._cached},e.prototype.compileAG=function(e,t,i){return this._hasAnchors?t?i?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,i)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,i)),this._anchorCache.A1_G0):i?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,i)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,i)),this._anchorCache.A0_G0):this.compile(e)},e.prototype._resolveAnchors=function(e,t,i){var n=this._items.map((function(e){return e.resolveAnchors(t,i)}));return new l(e,n,this._items.map((function(e){return e.ruleId})))},e}();t.RegExpSourceList=u;var g=function(e){function t(t,i,n,o,s){var r=e.call(this,t,i,n,null)||this;return r._match=new h(o,r.id),r.captures=s,r._cachedCompiledPatterns=null,r}return o(t,e),t.prototype.dispose=function(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)},Object.defineProperty(t.prototype,"debugMatchRegExp",{get:function(){return"".concat(this._match.source)},enumerable:!1,configurable:!0}),t.prototype.collectPatternsRecursive=function(e,t,i){t.push(this._match)},t.prototype.compile=function(e,t){return this._getCachedCompiledPatterns(e).compile(e)},t.prototype.compileAG=function(e,t,i,n){return this._getCachedCompiledPatterns(e).compileAG(e,i,n)},t.prototype._getCachedCompiledPatterns=function(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new u,this.collectPatternsRecursive(e,this._cachedCompiledPatterns,!0)),this._cachedCompiledPatterns},t}(c);t.MatchRule=g;var p=function(e){function t(t,i,n,o,s){var r=e.call(this,t,i,n,o)||this;return r.patterns=s.patterns,r.hasMissingPatterns=s.hasMissingPatterns,r._cachedCompiledPatterns=null,r}return o(t,e),t.prototype.dispose=function(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)},t.prototype.collectPatternsRecursive=function(e,t,i){var n,o;for(n=0,o=this.patterns.length;n<o;n++)e.getRule(this.patterns[n]).collectPatternsRecursive(e,t,!1)},t.prototype.compile=function(e,t){return this._getCachedCompiledPatterns(e).compile(e)},t.prototype.compileAG=function(e,t,i,n){return this._getCachedCompiledPatterns(e).compileAG(e,i,n)},t.prototype._getCachedCompiledPatterns=function(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new u,this.collectPatternsRecursive(e,this._cachedCompiledPatterns,!0)),this._cachedCompiledPatterns},t}(c);t.IncludeOnlyRule=p;var m=function(e){function t(t,i,n,o,s,r,a,l,c,d){var u=e.call(this,t,i,n,o)||this;return u._begin=new h(s,u.id),u.beginCaptures=r,u._end=new h(a||"\uffff",-1),u.endHasBackReferences=u._end.hasBackReferences,u.endCaptures=l,u.applyEndPatternLast=c||!1,u.patterns=d.patterns,u.hasMissingPatterns=d.hasMissingPatterns,u._cachedCompiledPatterns=null,u}return o(t,e),t.prototype.dispose=function(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)},Object.defineProperty(t.prototype,"debugBeginRegExp",{get:function(){return"".concat(this._begin.source)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"debugEndRegExp",{get:function(){return"".concat(this._end.source)},enumerable:!1,configurable:!0}),t.prototype.getEndWithResolvedBackReferences=function(e,t){return this._end.resolveBackReferences(e,t)},t.prototype.collectPatternsRecursive=function(e,t,i){if(i){var n,o=void 0;for(o=0,n=this.patterns.length;o<n;o++)e.getRule(this.patterns[o]).collectPatternsRecursive(e,t,!1)}else t.push(this._begin)},t.prototype.compile=function(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)},t.prototype.compileAG=function(e,t,i,n){return this._getCachedCompiledPatterns(e,t).compileAG(e,i,n)},t.prototype._getCachedCompiledPatterns=function(e,t){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new u,this.collectPatternsRecursive(e,this._cachedCompiledPatterns,!0),this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)),this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,t):this._cachedCompiledPatterns.setSource(0,t)),this._cachedCompiledPatterns},t}(c);t.BeginEndRule=m;var f=function(e){function t(t,i,n,o,s,r,a,l,c){var d=e.call(this,t,i,n,o)||this;return d._begin=new h(s,d.id),d.beginCaptures=r,d.whileCaptures=l,d._while=new h(a,-2),d.whileHasBackReferences=d._while.hasBackReferences,d.patterns=c.patterns,d.hasMissingPatterns=c.hasMissingPatterns,d._cachedCompiledPatterns=null,d._cachedCompiledWhilePatterns=null,d}return o(t,e),t.prototype.dispose=function(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)},Object.defineProperty(t.prototype,"debugBeginRegExp",{get:function(){return"".concat(this._begin.source)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"debugWhileRegExp",{get:function(){return"".concat(this._while.source)},enumerable:!1,configurable:!0}),t.prototype.getWhileWithResolvedBackReferences=function(e,t){return this._while.resolveBackReferences(e,t)},t.prototype.collectPatternsRecursive=function(e,t,i){if(i){var n,o=void 0;for(o=0,n=this.patterns.length;o<n;o++)e.getRule(this.patterns[o]).collectPatternsRecursive(e,t,!1)}else t.push(this._begin)},t.prototype.compile=function(e,t){return this._getCachedCompiledPatterns(e).compile(e)},t.prototype.compileAG=function(e,t,i,n){return this._getCachedCompiledPatterns(e).compileAG(e,i,n)},t.prototype._getCachedCompiledPatterns=function(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new u,this.collectPatternsRecursive(e,this._cachedCompiledPatterns,!0)),this._cachedCompiledPatterns},t.prototype.compileWhile=function(e,t){return this._getCachedCompiledWhilePatterns(e,t).compile(e)},t.prototype.compileWhileAG=function(e,t,i,n){return this._getCachedCompiledWhilePatterns(e,t).compileAG(e,i,n)},t.prototype._getCachedCompiledWhilePatterns=function(e,t){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new u,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,t||"\uffff"),this._cachedCompiledWhilePatterns},t}(c);t.BeginWhileRule=f;var _=function(){function e(){}return e.createCaptureRule=function(e,t,i,n,o){return e.registerRule((function(e){return new d(t,e,i,n,o)}))},e.getCompiledRuleId=function(t,i,n){return t.id||i.registerRule((function(o){if(t.id=o,t.match)return new g(t.$vscodeTextmateLocation,t.id,t.name,t.match,e._compileCaptures(t.captures,i,n));if(void 0===t.begin){t.repository&&(n=(0,s.mergeObjects)({},n,t.repository));var r=t.patterns;return void 0===r&&t.include&&(r=[{include:t.include}]),new p(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,e._compilePatterns(r,i,n))}return t.while?new f(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,e._compileCaptures(t.beginCaptures||t.captures,i,n),t.while,e._compileCaptures(t.whileCaptures||t.captures,i,n),e._compilePatterns(t.patterns,i,n)):new m(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,e._compileCaptures(t.beginCaptures||t.captures,i,n),t.end,e._compileCaptures(t.endCaptures||t.captures,i,n),t.applyEndPatternLast,e._compilePatterns(t.patterns,i,n))})),t.id},e._compileCaptures=function(t,i,n){var o=[];if(t){var s=0;for(var r in t)"$vscodeTextmateLocation"!==r&&(l=parseInt(r,10))>s&&(s=l);for(var a=0;a<=s;a++)o[a]=null;for(var r in t)if("$vscodeTextmateLocation"!==r){var l=parseInt(r,10),c=0;t[r].patterns&&(c=e.getCompiledRuleId(t[r],i,n)),o[l]=e.createCaptureRule(i,t[r].$vscodeTextmateLocation,t[r].name,t[r].contentName,c)}}return o},e._compilePatterns=function(t,i,n){var o=[];if(t)for(var s=0,r=t.length;s<r;s++){var a=t[s],l=-1;if(a.include)if("#"===a.include.charAt(0)){var c=n[a.include.substr(1)];c&&(l=e.getCompiledRuleId(c,i,n))}else if("$base"===a.include||"$self"===a.include)l=e.getCompiledRuleId(n[a.include],i,n);else{var d=null,h=null,u=a.include.indexOf("#");u>=0?(d=a.include.substring(0,u),h=a.include.substring(u+1)):d=a.include;var g=i.getExternalGrammar(d,n);if(g)if(h){var _=g.repository[h];_&&(l=e.getCompiledRuleId(_,i,g.repository))}else l=e.getCompiledRuleId(g.repository.$self,i,g.repository)}else l=e.getCompiledRuleId(a,i,n);if(-1!==l){var v=i.getRule(l),b=!1;if((v instanceof p||v instanceof m||v instanceof f)&&v.hasMissingPatterns&&0===v.patterns.length&&(b=!0),b)continue;o.push(l)}}return{patterns:o,hasMissingPatterns:(t?t.length:0)!==o.length}},e}();t.RuleFactory=_},583:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeTrieElement=t.ThemeTrieElementRule=t.strArrCmp=t.strcmp=t.Theme=t.ColorMap=t.parseTheme=t.ParsedThemeRule=void 0;var i=function(e,t,i,n,o,s){this.scope=e,this.parentScopes=t,this.index=i,this.fontStyle=n,this.foreground=o,this.background=s};function n(e){return!!(/^#[0-9a-f]{6}$/i.test(e)||/^#[0-9a-f]{8}$/i.test(e)||/^#[0-9a-f]{3}$/i.test(e)||/^#[0-9a-f]{4}$/i.test(e))}function o(e){if(!e)return[];if(!e.settings||!Array.isArray(e.settings))return[];for(var t=e.settings,o=[],s=0,r=0,a=t.length;r<a;r++){var l=t[r];if(l.settings){var c=void 0;c="string"==typeof l.scope?l.scope.replace(/^[,]+/,"").replace(/[,]+$/,"").split(","):Array.isArray(l.scope)?l.scope:[""];var d=-1;if("string"==typeof l.settings.fontStyle){d=0;for(var h=0,u=(m=l.settings.fontStyle.split(" ")).length;h<u;h++)switch(m[h]){case"italic":d|=1;break;case"bold":d|=2;break;case"underline":d|=4;break;case"strikethrough":d|=8}}var g=null;"string"==typeof l.settings.foreground&&n(l.settings.foreground)&&(g=l.settings.foreground);var p=null;for("string"==typeof l.settings.background&&n(l.settings.background)&&(p=l.settings.background),h=0,u=c.length;h<u;h++){var m,f=(m=c[h].trim().split(" "))[m.length-1],_=null;m.length>1&&(_=m.slice(0,m.length-1)).reverse(),o[s++]=new i(f,_,r,d,g,p)}}}return o}function s(e,t){e.sort((function(e,t){var i=l(e.scope,t.scope);return 0!==i||0!==(i=c(e.parentScopes,t.parentScopes))?i:e.index-t.index}));for(var i=0,n="#000000",o="#ffffff";e.length>=1&&""===e[0].scope;){var s=e.shift();-1!==s.fontStyle&&(i=s.fontStyle),null!==s.foreground&&(n=s.foreground),null!==s.background&&(o=s.background)}for(var u=new r(t),g=new d(0,null,i,u.getId(n),u.getId(o)),p=new h(new d(0,null,-1,0,0),[]),m=0,f=e.length;m<f;m++){var _=e[m];p.insert(0,_.scope,_.parentScopes,_.fontStyle,u.getId(_.foreground),u.getId(_.background))}return new a(u,g,p)}t.ParsedThemeRule=i,t.parseTheme=o;var r=function(){function e(e){if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(e)){this._isFrozen=!0;for(var t=0,i=e.length;t<i;t++)this._color2id[e[t]]=t,this._id2color[t]=e[t]}else this._isFrozen=!1}return e.prototype.getId=function(e){if(null===e)return 0;e=e.toUpperCase();var t=this._color2id[e];if(t)return t;if(this._isFrozen)throw new Error("Missing color in color map - ".concat(e));return t=++this._lastColorId,this._color2id[e]=t,this._id2color[t]=e,t},e.prototype.getColorMap=function(){return this._id2color.slice(0)},e}();t.ColorMap=r;var a=function(){function e(e,t,i){this._colorMap=e,this._root=i,this._defaults=t,this._cache={}}return e.createFromRawTheme=function(e,t){return this.createFromParsedTheme(o(e),t)},e.createFromParsedTheme=function(e,t){return s(e,t)},e.prototype.getColorMap=function(){return this._colorMap.getColorMap()},e.prototype.getDefaults=function(){return this._defaults},e.prototype.match=function(e){return this._cache.hasOwnProperty(e)||(this._cache[e]=this._root.match(e)),this._cache[e]},e}();function l(e,t){return e<t?-1:e>t?1:0}function c(e,t){if(null===e&&null===t)return 0;if(!e)return-1;if(!t)return 1;var i=e.length,n=t.length;if(i===n){for(var o=0;o<i;o++){var s=l(e[o],t[o]);if(0!==s)return s}return 0}return i-n}t.Theme=a,t.strcmp=l,t.strArrCmp=c;var d=function(){function e(e,t,i,n,o){this.scopeDepth=e,this.parentScopes=t,this.fontStyle=i,this.foreground=n,this.background=o}return e.prototype.clone=function(){return new e(this.scopeDepth,this.parentScopes,this.fontStyle,this.foreground,this.background)},e.cloneArr=function(e){for(var t=[],i=0,n=e.length;i<n;i++)t[i]=e[i].clone();return t},e.prototype.acceptOverwrite=function(e,t,i,n){this.scopeDepth>e?console.log("how did this happen?"):this.scopeDepth=e,-1!==t&&(this.fontStyle=t),0!==i&&(this.foreground=i),0!==n&&(this.background=n)},e}();t.ThemeTrieElementRule=d;var h=function(){function e(e,t,i){void 0===t&&(t=[]),void 0===i&&(i={}),this._mainRule=e,this._rulesWithParentScopes=t,this._children=i}return e._sortBySpecificity=function(e){return 1===e.length||e.sort(this._cmpBySpecificity),e},e._cmpBySpecificity=function(e,t){if(e.scopeDepth===t.scopeDepth){var i=e.parentScopes,n=t.parentScopes,o=null===i?0:i.length,s=null===n?0:n.length;if(o===s)for(var r=0;r<o;r++){var a=i[r].length,l=n[r].length;if(a!==l)return l-a}return s-o}return t.scopeDepth-e.scopeDepth},e.prototype.match=function(t){if(""===t)return e._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));var i,n,o=t.indexOf(".");return-1===o?(i=t,n=""):(i=t.substring(0,o),n=t.substring(o+1)),this._children.hasOwnProperty(i)?this._children[i].match(n):e._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes))},e.prototype.insert=function(t,i,n,o,s,r){if(""!==i){var a,l,c,h=i.indexOf(".");-1===h?(a=i,l=""):(a=i.substring(0,h),l=i.substring(h+1)),this._children.hasOwnProperty(a)?c=this._children[a]:(c=new e(this._mainRule.clone(),d.cloneArr(this._rulesWithParentScopes)),this._children[a]=c),c.insert(t+1,l,n,o,s,r)}else this._doInsertHere(t,n,o,s,r)},e.prototype._doInsertHere=function(e,t,i,n,o){if(null!==t){for(var s=0,r=this._rulesWithParentScopes.length;s<r;s++){var a=this._rulesWithParentScopes[s];if(0===c(a.parentScopes,t))return void a.acceptOverwrite(e,i,n,o)}-1===i&&(i=this._mainRule.fontStyle),0===n&&(n=this._mainRule.foreground),0===o&&(o=this._mainRule.background),this._rulesWithParentScopes.push(new d(e,t,i,n,o))}else this._mainRule.acceptOverwrite(e,i,n,o)},e}();t.ThemeTrieElement=h},42:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},878:(e,t)=>{function i(e){return Array.isArray(e)?function(e){for(var t=[],n=0,o=e.length;n<o;n++)t[n]=i(e[n]);return t}(e):"object"==typeof e?function(e){var t={};for(var n in e)t[n]=i(e[n]);return t}(e):e}Object.defineProperty(t,"__esModule",{value:!0}),t.RegexSource=t.basename=t.mergeObjects=t.clone=void 0,t.clone=function(e){return i(e)},t.mergeObjects=function(e){for(var t=[],i=1;i<arguments.length;i++)t[i-1]=arguments[i];return t.forEach((function(t){for(var i in t)e[i]=t[i]})),e},t.basename=function e(t){var i=~t.lastIndexOf("/")||~t.lastIndexOf("\\");return 0===i?t:~i==t.length-1?e(t.substring(0,t.length-1)):t.substr(1+~i)};var n=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,o=function(){function e(){}return e.hasCaptures=function(e){return null!==e&&(n.lastIndex=0,n.test(e))},e.replaceCaptures=function(e,t,i){return e.replace(n,(function(e,n,o,s){var r=i[parseInt(n||o,10)];if(!r)return e;for(var a=t.substring(r.start,r.end);"."===a[0];)a=a.substring(1);switch(s){case"downcase":return a.toLowerCase();case"upcase":return a.toUpperCase();default:return a}}))},e}();t.RegexSource=o}},t={};return function i(n){var o=t[n];if(void 0!==o)return o.exports;var s=t[n]={exports:{}};return e[n].call(s.exports,s,s.exports,i),s.exports}(787)})()}}]); \ No newline at end of file diff --git a/assets/js/8002.799b71bc.js.LICENSE.txt b/assets/js/8002.799b71bc.js.LICENSE.txt new file mode 100644 index 00000000000..08066d8d3a7 --- /dev/null +++ b/assets/js/8002.799b71bc.js.LICENSE.txt @@ -0,0 +1,8 @@ +/*! @license DOMPurify 2.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.1/LICENSE */ + +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/8017.5a10ad1f.js b/assets/js/8017.5a10ad1f.js new file mode 100644 index 00000000000..f6f341168da --- /dev/null +++ b/assets/js/8017.5a10ad1f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8017],{28017:e=>{e.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":50,"totalPages":2,"totalCount":54,"nextPage":"/blog/page/2","blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/8027.0a3be280.js b/assets/js/8027.0a3be280.js new file mode 100644 index 00000000000..3cf3826f5da --- /dev/null +++ b/assets/js/8027.0a3be280.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8027],{38027:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>n,default:()=>c,frontMatter:()=>i,metadata:()=>m,toc:()=>d});var o=s(87462),r=(s(67294),s(3905));s(45475);const i={title:"WebStorm",slug:"/editors/webstorm"},n=void 0,m={unversionedId:"editors/webstorm",id:"editors/webstorm",title:"WebStorm",description:"Webstorm installation instructions can be found here:",source:"@site/docs/editors/webstorm.md",sourceDirName:"editors",slug:"/editors/webstorm",permalink:"/en/docs/editors/webstorm",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/editors/webstorm.md",tags:[],version:"current",frontMatter:{title:"WebStorm",slug:"/editors/webstorm"},sidebar:"docsSidebar",previous:{title:"Emacs",permalink:"/en/docs/editors/emacs"}},a={},d=[],l={toc:d};function c(e){let{components:t,...s}=e;return(0,r.mdx)("wrapper",(0,o.Z)({},l,s,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Webstorm installation instructions can be found here:"),(0,r.mdx)("ul",null,(0,r.mdx)("li",{parentName:"ul"},(0,r.mdx)("a",{parentName:"li",href:"https://www.jetbrains.com/help/webstorm/2016.3/using-the-flow-type-checker.html"},"WebStorm 2016.3")),(0,r.mdx)("li",{parentName:"ul"},(0,r.mdx)("a",{parentName:"li",href:"https://www.jetbrains.com/help/webstorm/2017.1/flow-type-checker.html"},"WebStorm 2017.1"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8063.96e4bd2b.js b/assets/js/8063.96e4bd2b.js new file mode 100644 index 00000000000..1c860a9c30b --- /dev/null +++ b/assets/js/8063.96e4bd2b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8063],{78063:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>a,contentTitle:()=>s,default:()=>f,frontMatter:()=>l,metadata:()=>r,toc:()=>c});var n=t(87462),o=(t(67294),t(3905));t(45475);const l={title:".flowconfig [libs]",slug:"/config/libs"},s=void 0,r={unversionedId:"config/libs",id:"config/libs",title:".flowconfig [libs]",description:"The [libs] section in a .flowconfig file tells Flow to include the",source:"@site/docs/config/libs.md",sourceDirName:"config",slug:"/config/libs",permalink:"/en/docs/config/libs",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/config/libs.md",tags:[],version:"current",frontMatter:{title:".flowconfig [libs]",slug:"/config/libs"},sidebar:"docsSidebar",previous:{title:".flowconfig [declarations]",permalink:"/en/docs/config/declarations"},next:{title:".flowconfig [lints]",permalink:"/en/docs/config/lints"}},a={},c=[],d={toc:c};function f(e){let{components:i,...t}=e;return(0,o.mdx)("wrapper",(0,n.Z)({},d,t,{components:i,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"The ",(0,o.mdx)("inlineCode",{parentName:"p"},"[libs]")," section in a ",(0,o.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file tells Flow to include the\nspecified ",(0,o.mdx)("a",{parentName:"p",href:"../../libdefs/"},"library definitions")," when type\nchecking your code. Multiple libraries can be specified. By default, the\n",(0,o.mdx)("inlineCode",{parentName:"p"},"flow-typed")," folder in your project root directory is included as a library\ndirectory. This default allows you to use\n",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/flowtype/flow-typed"},(0,o.mdx)("inlineCode",{parentName:"a"},"flow-typed"))," to install library\ndefinitions without additional configuration."),(0,o.mdx)("p",null,"Each line in the ",(0,o.mdx)("inlineCode",{parentName:"p"},"[libs]")," section is a path to the library file or directory\nwhich you would like to include. These paths can be relative to the project\nroot directory or absolute. Including a directory recursively includes all the\nfiles under that directory as library files."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8070.b2932ef2.js b/assets/js/8070.b2932ef2.js new file mode 100644 index 00000000000..37591fd4f68 --- /dev/null +++ b/assets/js/8070.b2932ef2.js @@ -0,0 +1,2 @@ +/*! For license information please see 8070.b2932ef2.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8070],{8070:(e,t,s)=>{s.r(t),s.d(t,{conf:()=>n,language:()=>r});var n={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},r={defaultToken:"",tokenPostfix:".perl",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["__DATA__","else","lock","__END__","elsif","lt","__FILE__","eq","__LINE__","exp","ne","sub","__PACKAGE__","for","no","and","foreach","or","unless","cmp","ge","package","until","continue","gt","while","CORE","if","xor","do","le","__DIE__","__WARN__"],builtinFunctions:["-A","END","length","setpgrp","-B","endgrent","link","setpriority","-b","endhostent","listen","setprotoent","-C","endnetent","local","setpwent","-c","endprotoent","localtime","setservent","-d","endpwent","log","setsockopt","-e","endservent","lstat","shift","-f","eof","map","shmctl","-g","eval","mkdir","shmget","-k","exec","msgctl","shmread","-l","exists","msgget","shmwrite","-M","exit","msgrcv","shutdown","-O","fcntl","msgsnd","sin","-o","fileno","my","sleep","-p","flock","next","socket","-r","fork","not","socketpair","-R","format","oct","sort","-S","formline","open","splice","-s","getc","opendir","split","-T","getgrent","ord","sprintf","-t","getgrgid","our","sqrt","-u","getgrnam","pack","srand","-w","gethostbyaddr","pipe","stat","-W","gethostbyname","pop","state","-X","gethostent","pos","study","-x","getlogin","print","substr","-z","getnetbyaddr","printf","symlink","abs","getnetbyname","prototype","syscall","accept","getnetent","push","sysopen","alarm","getpeername","quotemeta","sysread","atan2","getpgrp","rand","sysseek","AUTOLOAD","getppid","read","system","BEGIN","getpriority","readdir","syswrite","bind","getprotobyname","readline","tell","binmode","getprotobynumber","readlink","telldir","bless","getprotoent","readpipe","tie","break","getpwent","recv","tied","caller","getpwnam","redo","time","chdir","getpwuid","ref","times","CHECK","getservbyname","rename","truncate","chmod","getservbyport","require","uc","chomp","getservent","reset","ucfirst","chop","getsockname","return","umask","chown","getsockopt","reverse","undef","chr","glob","rewinddir","UNITCHECK","chroot","gmtime","rindex","unlink","close","goto","rmdir","unpack","closedir","grep","say","unshift","connect","hex","scalar","untie","cos","index","seek","use","crypt","INIT","seekdir","utime","dbmclose","int","select","values","dbmopen","ioctl","semctl","vec","defined","join","semget","wait","delete","keys","semop","waitpid","DESTROY","kill","send","wantarray","die","last","setgrent","warn","dump","lc","sethostent","write","each","lcfirst","setnetent"],builtinFileHandlers:["ARGV","STDERR","STDOUT","ARGVOUT","STDIN","ENV"],builtinVariables:["$!","$^RE_TRIE_MAXBUF","$LAST_REGEXP_CODE_RESULT",'$"',"$^S","$LIST_SEPARATOR","$#","$^T","$MATCH","$$","$^TAINT","$MULTILINE_MATCHING","$%","$^UNICODE","$NR","$&","$^UTF8LOCALE","$OFMT","$'","$^V","$OFS","$(","$^W","$ORS","$)","$^WARNING_BITS","$OS_ERROR","$*","$^WIDE_SYSTEM_CALLS","$OSNAME","$+","$^X","$OUTPUT_AUTO_FLUSH","$,","$_","$OUTPUT_FIELD_SEPARATOR","$-","$`","$OUTPUT_RECORD_SEPARATOR","$.","$a","$PERL_VERSION","$/","$ACCUMULATOR","$PERLDB","$0","$ARG","$PID","$:","$ARGV","$POSTMATCH","$;","$b","$PREMATCH","$<","$BASETIME","$PROCESS_ID","$=","$CHILD_ERROR","$PROGRAM_NAME","$>","$COMPILING","$REAL_GROUP_ID","$?","$DEBUGGING","$REAL_USER_ID","$@","$EFFECTIVE_GROUP_ID","$RS","$[","$EFFECTIVE_USER_ID","$SUBSCRIPT_SEPARATOR","$\\","$EGID","$SUBSEP","$]","$ERRNO","$SYSTEM_FD_MAX","$^","$EUID","$UID","$^A","$EVAL_ERROR","$WARNING","$^C","$EXCEPTIONS_BEING_CAUGHT","$|","$^CHILD_ERROR_NATIVE","$EXECUTABLE_NAME","$~","$^D","$EXTENDED_OS_ERROR","%!","$^E","$FORMAT_FORMFEED","%^H","$^ENCODING","$FORMAT_LINE_BREAK_CHARACTERS","%ENV","$^F","$FORMAT_LINES_LEFT","%INC","$^H","$FORMAT_LINES_PER_PAGE","%OVERLOAD","$^I","$FORMAT_NAME","%SIG","$^L","$FORMAT_PAGE_NUMBER","@+","$^M","$FORMAT_TOP_NAME","@-","$^N","$GID","@_","$^O","$INPLACE_EDIT","@ARGV","$^OPEN","$INPUT_LINE_NUMBER","@INC","$^P","$INPUT_RECORD_SEPARATOR","@LAST_MATCH_START","$^R","$LAST_MATCH_END","$^RE_DEBUG_FLAGS","$LAST_PAREN_MATCH"],symbols:/[:+\-\^*$&%@=<>!?|\/~\.]/,quoteLikeOps:["qr","m","s","q","qq","qx","qw","tr","y"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:"@whitespace"},[/[a-zA-Z\-_][\w\-_]*/,{cases:{"@keywords":"keyword","@builtinFunctions":"type.identifier","@builtinFileHandlers":"variable.predefined","@quoteLikeOps":{token:"@rematch",next:"quotedConstructs"},"@default":""}}],[/[\$@%][*@#?\+\-\$!\w\\\^><~:;\.]+/,{cases:{"@builtinVariables":"variable.predefined","@default":"variable"}}],{include:"@strings"},{include:"@dblStrings"},{include:"@perldoc"},{include:"@heredoc"},[/[{}\[\]()]/,"@brackets"],[/[\/](?:(?:\[(?:\\]|[^\]])+\])|(?:\\\/|[^\]\/]))*[\/]\w*\s*(?=[).,;]|$)/,"regexp"],[/@symbols/,"operators"],{include:"@numbers"},[/[,;]/,"delimiter"]],whitespace:[[/\s+/,"white"],[/(^#!.*$)/,"metatag"],[/(^#.*$)/,"comment"]],numbers:[[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+/,"number"]],strings:[[/'/,"string","@stringBody"]],stringBody:[[/'/,"string","@popall"],[/\\'/,"string.escape"],[/./,"string"]],dblStrings:[[/"/,"string","@dblStringBody"]],dblStringBody:[[/"/,"string","@popall"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],{include:"@variables"},[/./,"string"]],quotedConstructs:[[/(q|qw|tr|y)\s*\(/,{token:"string.delim",switchTo:"@qstring.(.)"}],[/(q|qw|tr|y)\s*\[/,{token:"string.delim",switchTo:"@qstring.[.]"}],[/(q|qw|tr|y)\s*\{/,{token:"string.delim",switchTo:"@qstring.{.}"}],[/(q|qw|tr|y)\s*</,{token:"string.delim",switchTo:"@qstring.<.>"}],[/(q|qw|tr|y)#/,{token:"string.delim",switchTo:"@qstring.#.#"}],[/(q|qw|tr|y)\s*([^A-Za-z0-9#\s])/,{token:"string.delim",switchTo:"@qstring.$2.$2"}],[/(q|qw|tr|y)\s+(\w)/,{token:"string.delim",switchTo:"@qstring.$2.$2"}],[/(qr|m|s)\s*\(/,{token:"regexp.delim",switchTo:"@qregexp.(.)"}],[/(qr|m|s)\s*\[/,{token:"regexp.delim",switchTo:"@qregexp.[.]"}],[/(qr|m|s)\s*\{/,{token:"regexp.delim",switchTo:"@qregexp.{.}"}],[/(qr|m|s)\s*</,{token:"regexp.delim",switchTo:"@qregexp.<.>"}],[/(qr|m|s)#/,{token:"regexp.delim",switchTo:"@qregexp.#.#"}],[/(qr|m|s)\s*([^A-Za-z0-9_#\s])/,{token:"regexp.delim",switchTo:"@qregexp.$2.$2"}],[/(qr|m|s)\s+(\w)/,{token:"regexp.delim",switchTo:"@qregexp.$2.$2"}],[/(qq|qx)\s*\(/,{token:"string.delim",switchTo:"@qqstring.(.)"}],[/(qq|qx)\s*\[/,{token:"string.delim",switchTo:"@qqstring.[.]"}],[/(qq|qx)\s*\{/,{token:"string.delim",switchTo:"@qqstring.{.}"}],[/(qq|qx)\s*</,{token:"string.delim",switchTo:"@qqstring.<.>"}],[/(qq|qx)#/,{token:"string.delim",switchTo:"@qqstring.#.#"}],[/(qq|qx)\s*([^A-Za-z0-9#\s])/,{token:"string.delim",switchTo:"@qqstring.$2.$2"}],[/(qq|qx)\s+(\w)/,{token:"string.delim",switchTo:"@qqstring.$2.$2"}]],qstring:[[/\\./,"string.escape"],[/./,{cases:{"$#==$S3":{token:"string.delim",next:"@pop"},"$#==$S2":{token:"string.delim",next:"@push"},"@default":"string"}}]],qregexp:[{include:"@variables"},[/\\./,"regexp.escape"],[/./,{cases:{"$#==$S3":{token:"regexp.delim",next:"@regexpModifiers"},"$#==$S2":{token:"regexp.delim",next:"@push"},"@default":"regexp"}}]],regexpModifiers:[[/[msixpodualngcer]+/,{token:"regexp.modifier",next:"@popall"}]],qqstring:[{include:"@variables"},{include:"@qstring"}],heredoc:[[/<<\s*['"`]?([\w\-]+)['"`]?/,{token:"string.heredoc.delimiter",next:"@heredocBody.$1"}]],heredocBody:[[/^([\w\-]+)$/,{cases:{"$1==$S2":[{token:"string.heredoc.delimiter",next:"@popall"}],"@default":"string.heredoc"}}],[/./,"string.heredoc"]],perldoc:[[/^=\w/,"comment.doc","@perldocBody"]],perldocBody:[[/^=cut\b/,"type.identifier","@popall"],[/./,"comment.doc"]],variables:[[/\$\w+/,"variable"],[/@\w+/,"variable"],[/%\w+/,"variable"]]}}}}]); \ No newline at end of file diff --git a/assets/js/8070.b2932ef2.js.LICENSE.txt b/assets/js/8070.b2932ef2.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8070.b2932ef2.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/8070.e9befa07.js b/assets/js/8070.e9befa07.js new file mode 100644 index 00000000000..c04b2dab540 --- /dev/null +++ b/assets/js/8070.e9befa07.js @@ -0,0 +1,618 @@ +"use strict"; +exports.id = 8070; +exports.ids = [8070]; +exports.modules = { + +/***/ 8070: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/perl/perl.ts +var conf = { + comments: { + lineComment: "#" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "`", close: "`" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "`", close: "`" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".perl", + brackets: [ + { token: "delimiter.bracket", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" } + ], + keywords: [ + "__DATA__", + "else", + "lock", + "__END__", + "elsif", + "lt", + "__FILE__", + "eq", + "__LINE__", + "exp", + "ne", + "sub", + "__PACKAGE__", + "for", + "no", + "and", + "foreach", + "or", + "unless", + "cmp", + "ge", + "package", + "until", + "continue", + "gt", + "while", + "CORE", + "if", + "xor", + "do", + "le", + "__DIE__", + "__WARN__" + ], + builtinFunctions: [ + "-A", + "END", + "length", + "setpgrp", + "-B", + "endgrent", + "link", + "setpriority", + "-b", + "endhostent", + "listen", + "setprotoent", + "-C", + "endnetent", + "local", + "setpwent", + "-c", + "endprotoent", + "localtime", + "setservent", + "-d", + "endpwent", + "log", + "setsockopt", + "-e", + "endservent", + "lstat", + "shift", + "-f", + "eof", + "map", + "shmctl", + "-g", + "eval", + "mkdir", + "shmget", + "-k", + "exec", + "msgctl", + "shmread", + "-l", + "exists", + "msgget", + "shmwrite", + "-M", + "exit", + "msgrcv", + "shutdown", + "-O", + "fcntl", + "msgsnd", + "sin", + "-o", + "fileno", + "my", + "sleep", + "-p", + "flock", + "next", + "socket", + "-r", + "fork", + "not", + "socketpair", + "-R", + "format", + "oct", + "sort", + "-S", + "formline", + "open", + "splice", + "-s", + "getc", + "opendir", + "split", + "-T", + "getgrent", + "ord", + "sprintf", + "-t", + "getgrgid", + "our", + "sqrt", + "-u", + "getgrnam", + "pack", + "srand", + "-w", + "gethostbyaddr", + "pipe", + "stat", + "-W", + "gethostbyname", + "pop", + "state", + "-X", + "gethostent", + "pos", + "study", + "-x", + "getlogin", + "print", + "substr", + "-z", + "getnetbyaddr", + "printf", + "symlink", + "abs", + "getnetbyname", + "prototype", + "syscall", + "accept", + "getnetent", + "push", + "sysopen", + "alarm", + "getpeername", + "quotemeta", + "sysread", + "atan2", + "getpgrp", + "rand", + "sysseek", + "AUTOLOAD", + "getppid", + "read", + "system", + "BEGIN", + "getpriority", + "readdir", + "syswrite", + "bind", + "getprotobyname", + "readline", + "tell", + "binmode", + "getprotobynumber", + "readlink", + "telldir", + "bless", + "getprotoent", + "readpipe", + "tie", + "break", + "getpwent", + "recv", + "tied", + "caller", + "getpwnam", + "redo", + "time", + "chdir", + "getpwuid", + "ref", + "times", + "CHECK", + "getservbyname", + "rename", + "truncate", + "chmod", + "getservbyport", + "require", + "uc", + "chomp", + "getservent", + "reset", + "ucfirst", + "chop", + "getsockname", + "return", + "umask", + "chown", + "getsockopt", + "reverse", + "undef", + "chr", + "glob", + "rewinddir", + "UNITCHECK", + "chroot", + "gmtime", + "rindex", + "unlink", + "close", + "goto", + "rmdir", + "unpack", + "closedir", + "grep", + "say", + "unshift", + "connect", + "hex", + "scalar", + "untie", + "cos", + "index", + "seek", + "use", + "crypt", + "INIT", + "seekdir", + "utime", + "dbmclose", + "int", + "select", + "values", + "dbmopen", + "ioctl", + "semctl", + "vec", + "defined", + "join", + "semget", + "wait", + "delete", + "keys", + "semop", + "waitpid", + "DESTROY", + "kill", + "send", + "wantarray", + "die", + "last", + "setgrent", + "warn", + "dump", + "lc", + "sethostent", + "write", + "each", + "lcfirst", + "setnetent" + ], + builtinFileHandlers: ["ARGV", "STDERR", "STDOUT", "ARGVOUT", "STDIN", "ENV"], + builtinVariables: [ + "$!", + "$^RE_TRIE_MAXBUF", + "$LAST_REGEXP_CODE_RESULT", + '$"', + "$^S", + "$LIST_SEPARATOR", + "$#", + "$^T", + "$MATCH", + "$$", + "$^TAINT", + "$MULTILINE_MATCHING", + "$%", + "$^UNICODE", + "$NR", + "$&", + "$^UTF8LOCALE", + "$OFMT", + "$'", + "$^V", + "$OFS", + "$(", + "$^W", + "$ORS", + "$)", + "$^WARNING_BITS", + "$OS_ERROR", + "$*", + "$^WIDE_SYSTEM_CALLS", + "$OSNAME", + "$+", + "$^X", + "$OUTPUT_AUTO_FLUSH", + "$,", + "$_", + "$OUTPUT_FIELD_SEPARATOR", + "$-", + "$`", + "$OUTPUT_RECORD_SEPARATOR", + "$.", + "$a", + "$PERL_VERSION", + "$/", + "$ACCUMULATOR", + "$PERLDB", + "$0", + "$ARG", + "$PID", + "$:", + "$ARGV", + "$POSTMATCH", + "$;", + "$b", + "$PREMATCH", + "$<", + "$BASETIME", + "$PROCESS_ID", + "$=", + "$CHILD_ERROR", + "$PROGRAM_NAME", + "$>", + "$COMPILING", + "$REAL_GROUP_ID", + "$?", + "$DEBUGGING", + "$REAL_USER_ID", + "$@", + "$EFFECTIVE_GROUP_ID", + "$RS", + "$[", + "$EFFECTIVE_USER_ID", + "$SUBSCRIPT_SEPARATOR", + "$\\", + "$EGID", + "$SUBSEP", + "$]", + "$ERRNO", + "$SYSTEM_FD_MAX", + "$^", + "$EUID", + "$UID", + "$^A", + "$EVAL_ERROR", + "$WARNING", + "$^C", + "$EXCEPTIONS_BEING_CAUGHT", + "$|", + "$^CHILD_ERROR_NATIVE", + "$EXECUTABLE_NAME", + "$~", + "$^D", + "$EXTENDED_OS_ERROR", + "%!", + "$^E", + "$FORMAT_FORMFEED", + "%^H", + "$^ENCODING", + "$FORMAT_LINE_BREAK_CHARACTERS", + "%ENV", + "$^F", + "$FORMAT_LINES_LEFT", + "%INC", + "$^H", + "$FORMAT_LINES_PER_PAGE", + "%OVERLOAD", + "$^I", + "$FORMAT_NAME", + "%SIG", + "$^L", + "$FORMAT_PAGE_NUMBER", + "@+", + "$^M", + "$FORMAT_TOP_NAME", + "@-", + "$^N", + "$GID", + "@_", + "$^O", + "$INPLACE_EDIT", + "@ARGV", + "$^OPEN", + "$INPUT_LINE_NUMBER", + "@INC", + "$^P", + "$INPUT_RECORD_SEPARATOR", + "@LAST_MATCH_START", + "$^R", + "$LAST_MATCH_END", + "$^RE_DEBUG_FLAGS", + "$LAST_PAREN_MATCH" + ], + symbols: /[:+\-\^*$&%@=<>!?|\/~\.]/, + quoteLikeOps: ["qr", "m", "s", "q", "qq", "qx", "qw", "tr", "y"], + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + tokenizer: { + root: [ + { include: "@whitespace" }, + [ + /[a-zA-Z\-_][\w\-_]*/, + { + cases: { + "@keywords": "keyword", + "@builtinFunctions": "type.identifier", + "@builtinFileHandlers": "variable.predefined", + "@quoteLikeOps": { + token: "@rematch", + next: "quotedConstructs" + }, + "@default": "" + } + } + ], + [ + /[\$@%][*@#?\+\-\$!\w\\\^><~:;\.]+/, + { + cases: { + "@builtinVariables": "variable.predefined", + "@default": "variable" + } + } + ], + { include: "@strings" }, + { include: "@dblStrings" }, + { include: "@perldoc" }, + { include: "@heredoc" }, + [/[{}\[\]()]/, "@brackets"], + [/[\/](?:(?:\[(?:\\]|[^\]])+\])|(?:\\\/|[^\]\/]))*[\/]\w*\s*(?=[).,;]|$)/, "regexp"], + [/@symbols/, "operators"], + { include: "@numbers" }, + [/[,;]/, "delimiter"] + ], + whitespace: [ + [/\s+/, "white"], + [/(^#!.*$)/, "metatag"], + [/(^#.*$)/, "comment"] + ], + numbers: [ + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, "number.hex"], + [/\d+/, "number"] + ], + strings: [[/'/, "string", "@stringBody"]], + stringBody: [ + [/'/, "string", "@popall"], + [/\\'/, "string.escape"], + [/./, "string"] + ], + dblStrings: [[/"/, "string", "@dblStringBody"]], + dblStringBody: [ + [/"/, "string", "@popall"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + { include: "@variables" }, + [/./, "string"] + ], + quotedConstructs: [ + [/(q|qw|tr|y)\s*\(/, { token: "string.delim", switchTo: "@qstring.(.)" }], + [/(q|qw|tr|y)\s*\[/, { token: "string.delim", switchTo: "@qstring.[.]" }], + [/(q|qw|tr|y)\s*\{/, { token: "string.delim", switchTo: "@qstring.{.}" }], + [/(q|qw|tr|y)\s*</, { token: "string.delim", switchTo: "@qstring.<.>" }], + [/(q|qw|tr|y)#/, { token: "string.delim", switchTo: "@qstring.#.#" }], + [/(q|qw|tr|y)\s*([^A-Za-z0-9#\s])/, { token: "string.delim", switchTo: "@qstring.$2.$2" }], + [/(q|qw|tr|y)\s+(\w)/, { token: "string.delim", switchTo: "@qstring.$2.$2" }], + [/(qr|m|s)\s*\(/, { token: "regexp.delim", switchTo: "@qregexp.(.)" }], + [/(qr|m|s)\s*\[/, { token: "regexp.delim", switchTo: "@qregexp.[.]" }], + [/(qr|m|s)\s*\{/, { token: "regexp.delim", switchTo: "@qregexp.{.}" }], + [/(qr|m|s)\s*</, { token: "regexp.delim", switchTo: "@qregexp.<.>" }], + [/(qr|m|s)#/, { token: "regexp.delim", switchTo: "@qregexp.#.#" }], + [/(qr|m|s)\s*([^A-Za-z0-9_#\s])/, { token: "regexp.delim", switchTo: "@qregexp.$2.$2" }], + [/(qr|m|s)\s+(\w)/, { token: "regexp.delim", switchTo: "@qregexp.$2.$2" }], + [/(qq|qx)\s*\(/, { token: "string.delim", switchTo: "@qqstring.(.)" }], + [/(qq|qx)\s*\[/, { token: "string.delim", switchTo: "@qqstring.[.]" }], + [/(qq|qx)\s*\{/, { token: "string.delim", switchTo: "@qqstring.{.}" }], + [/(qq|qx)\s*</, { token: "string.delim", switchTo: "@qqstring.<.>" }], + [/(qq|qx)#/, { token: "string.delim", switchTo: "@qqstring.#.#" }], + [/(qq|qx)\s*([^A-Za-z0-9#\s])/, { token: "string.delim", switchTo: "@qqstring.$2.$2" }], + [/(qq|qx)\s+(\w)/, { token: "string.delim", switchTo: "@qqstring.$2.$2" }] + ], + qstring: [ + [/\\./, "string.escape"], + [ + /./, + { + cases: { + "$#==$S3": { token: "string.delim", next: "@pop" }, + "$#==$S2": { token: "string.delim", next: "@push" }, + "@default": "string" + } + } + ] + ], + qregexp: [ + { include: "@variables" }, + [/\\./, "regexp.escape"], + [ + /./, + { + cases: { + "$#==$S3": { + token: "regexp.delim", + next: "@regexpModifiers" + }, + "$#==$S2": { token: "regexp.delim", next: "@push" }, + "@default": "regexp" + } + } + ] + ], + regexpModifiers: [[/[msixpodualngcer]+/, { token: "regexp.modifier", next: "@popall" }]], + qqstring: [{ include: "@variables" }, { include: "@qstring" }], + heredoc: [ + [/<<\s*['"`]?([\w\-]+)['"`]?/, { token: "string.heredoc.delimiter", next: "@heredocBody.$1" }] + ], + heredocBody: [ + [ + /^([\w\-]+)$/, + { + cases: { + "$1==$S2": [ + { + token: "string.heredoc.delimiter", + next: "@popall" + } + ], + "@default": "string.heredoc" + } + } + ], + [/./, "string.heredoc"] + ], + perldoc: [[/^=\w/, "comment.doc", "@perldocBody"]], + perldocBody: [ + [/^=cut\b/, "type.identifier", "@popall"], + [/./, "comment.doc"] + ], + variables: [ + [/\$\w+/, "variable"], + [/@\w+/, "variable"], + [/%\w+/, "variable"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8071.e0b453f4.js b/assets/js/8071.e0b453f4.js new file mode 100644 index 00000000000..db26ff26d29 --- /dev/null +++ b/assets/js/8071.e0b453f4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8071],{68071:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>m});var o=n(87462),a=(n(67294),n(3905));const i={title:"New Implementation of Unions and Intersections","short-title":"New Unions and Intersections",author:"Sam Goldman",hide_table_of_contents:!0},s=void 0,r={permalink:"/blog/2016/07/01/New-Unions-Intersections",source:"@site/blog/2016-07-01-New-Unions-Intersections.md",title:"New Implementation of Unions and Intersections",description:"Summary",date:"2016-07-01T00:00:00.000Z",formattedDate:"July 1, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Sam Goldman"}],frontMatter:{title:"New Implementation of Unions and Intersections","short-title":"New Unions and Intersections",author:"Sam Goldman",hide_table_of_contents:!0},prevItem:{title:"Windows Support is Here!",permalink:"/blog/2016/08/01/Windows-Support"},nextItem:{title:"Version 0.21.0",permalink:"/blog/2016/02/02/Version-0.21.0"}},l={authorsImageUrls:[void 0]},m=[{value:"Summary",id:"summary",level:3},{value:"New Error Messages",id:"new-error-messages",level:3},{value:"Actions Needed",id:"actions-needed",level:3},{value:"Problem",id:"problem",level:3},{value:"Solution",id:"solution",level:3}],d={toc:m};function h(e){let{components:t,...n}=e;return(0,a.mdx)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("h3",{id:"summary"},"Summary"),(0,a.mdx)("p",null,"Before Flow 0.28, the implementation of union/intersection types had serious\nbugs and was ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/1759"},"the")," ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/1664"},"root")," ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/1663"},"cause")," ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/1462"},"of"),"\n",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/1455"},"a")," ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/1371"},"lot")," ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/1349"},"of")," ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/824"},"weird")," ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/815"},"behaviors")," you\nmay have run into with Flow in the past. These bugs have now been addressed in\n",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/commit/2df7671e7bda770b95e6b1eaede96d7a8ab1f2ac"},"a diff landing in 0.28"),"."),(0,a.mdx)("p",null,"As you might expect after a major rewrite of a tricky part of the type system\nimplementation, there will be a short period of adjustment: you may run into\nkinks that we will try to iron out promptly, and you may run into some\nunfamiliar error messages."),(0,a.mdx)("h3",{id:"new-error-messages"},"New Error Messages"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre"},"<error location> Could not decide which case to select\n<location of union/intersection type>\n\n Case 1 may work:\n <location of 1st case of union/intersection type>\n\n But if it doesn't, case 2 looks promising too:\n <location of 2nd case of union/intersection type>\n\n Please provide additional annotation(s) to determine whether case 1 works\n (or consider merging it with case 2):\n <location to annotate>\n <location to annotate>\n ...\n")),(0,a.mdx)("p",null,"What this means is that at ",(0,a.mdx)("inlineCode",{parentName:"p"},"<error location>"),", Flow needs to make a choice: one\nof the members of the union/intersection type at\n",(0,a.mdx)("inlineCode",{parentName:"p"},"<location of union/intersection type>")," must be applied, but Flow can't choose\nsafely based on available information. In particular, it cannot decide between\ncase ",(0,a.mdx)("inlineCode",{parentName:"p"},"1")," and ",(0,a.mdx)("inlineCode",{parentName:"p"},"2"),", so Flow lists a bunch of annotations that can help it\ndisambiguate the two cases."),(0,a.mdx)("h3",{id:"actions-needed"},"Actions Needed"),(0,a.mdx)("p",null,"You can fix the errors in two ways:"),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},"Actually go and annotate the listed locations. This should be by far the most\ncommon fix."),(0,a.mdx)("li",{parentName:"ul"},"Discover that there is real, unintentional ambiguity between case 1 and 2,\nand rewrite the two cases in the union type to remove the ambiguity. When\nthis happens, typically it will fix a large number of errors.")),(0,a.mdx)("p",null,"There are two more possibilities, however:"),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},"There's no real ambiguity and Flow is being too conservative / dumb. In this\ncase, go ahead and do the annotations anyway and file an issue on GitHub. We\nplan to do a lot of short-term follow-up work to disambiguate more cases\nautomatically, so over time you should see less of (3)."),(0,a.mdx)("li",{parentName:"ul"},"You have no idea what's going on. The cases being pointed to don't make sense.\nThey don't correspond to what you have at ",(0,a.mdx)("inlineCode",{parentName:"li"},"<error location>"),". Hopefully you\nwon't run into (4) too often, but if you do ",(0,a.mdx)("strong",{parentName:"li"},"please file an issue"),", since\nthis means there are still latent bugs in the implementation.")),(0,a.mdx)("p",null,"If you file an issue on GitHub, please include code to reproduce the issue. You\ncan use ",(0,a.mdx)("a",{parentName:"p",href:"https://flowtype.org/try/"},"Try Flow")," to share your repro case easily."),(0,a.mdx)("p",null,"If you're curious about the whys and hows of these new error messages, here's\nan excerpt from the commit message of the \"fate of the union\" diff:"),(0,a.mdx)("h3",{id:"problem"},"Problem"),(0,a.mdx)("p",null,"Flow's inference engine is designed to find more errors over time as\nconstraints are added...but it is not designed to backtrack. Unfortunately,\nchecking the type of an expression against a union type does need backtracking:\nif some branch of the union doesn't work out, the next branch must be tried,\nand so on. (The same is true for checks that involve intersection types.)"),(0,a.mdx)("p",null,"The situation is further complicated by the fact that the type of the\nexpression may not be completely known at the point of checking, so that a\nbranch that looks promising now might turn out to be incorrect later."),(0,a.mdx)("h3",{id:"solution"},"Solution"),(0,a.mdx)("p",null,"The basic idea is to delay trying a branch until a point where we can decide\nwhether the branch will definitely fail or succeed, without further\ninformation. If trying a branch results in failure, we can move on to the next\nbranch without needing to backtrack. If a branch succeeds, we are done. The\nfinal case is where the branch looks promising, but we cannot be sure without\nadding constraints: in this case we try other branches, and ",(0,a.mdx)("em",{parentName:"p"},"bail")," when we run\ninto ambiguities...requesting additional annotations to decide which branch to\nselect. Overall, this means that (1) we never commit to a branch that might\nturn out to be incorrect and (2) can always select a correct branch (if such\nexists) given enough annotations."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8073.856ade5f.js b/assets/js/8073.856ade5f.js new file mode 100644 index 00000000000..33f83e5e44b --- /dev/null +++ b/assets/js/8073.856ade5f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8073],{88073:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>m});var a=t(87462),s=(t(67294),t(3905));t(45475);const l={title:"Enabling enums in your project",slug:"/enums/enabling-enums"},i=void 0,o={unversionedId:"enums/enabling-enums",id:"enums/enabling-enums",title:"Enabling enums in your project",description:"Upgrade tooling",source:"@site/docs/enums/enabling-enums.md",sourceDirName:"enums",slug:"/enums/enabling-enums",permalink:"/en/docs/enums/enabling-enums",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/enums/enabling-enums.md",tags:[],version:"current",frontMatter:{title:"Enabling enums in your project",slug:"/enums/enabling-enums"},sidebar:"docsSidebar",previous:{title:"Flow Enums",permalink:"/en/docs/enums"},next:{title:"Defining enums",permalink:"/en/docs/enums/defining-enums"}},r={},m=[{value:"Upgrade tooling",id:"toc-upgrade-tooling",level:2},{value:"Enable enums",id:"toc-enable-enums",level:2},{value:"Enable suggested ESLint rules",id:"toc-enable-suggested-eslint-rules",level:2}],u={toc:m};function d(e){let{components:n,...t}=e;return(0,s.mdx)("wrapper",(0,a.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,s.mdx)("h2",{id:"toc-upgrade-tooling"},"Upgrade tooling"),(0,s.mdx)("p",null,"To enable Flow Enums in your repo, you must first update the following packages:"),(0,s.mdx)("ul",null,(0,s.mdx)("li",{parentName:"ul"},"Upgrade to at least Flow 0.159",(0,s.mdx)("ul",{parentName:"li"},(0,s.mdx)("li",{parentName:"ul"},"Flow needs to have some configuration set to enable enums - see below."))),(0,s.mdx)("li",{parentName:"ul"},"Upgrade ",(0,s.mdx)("a",{parentName:"li",href:"https://prettier.io/"},"Prettier")," to at least version 2.2",(0,s.mdx)("ul",{parentName:"li"},(0,s.mdx)("li",{parentName:"ul"},"As of that version, Prettier can handle parsing and pretty printing Flow Enums out of the box."),(0,s.mdx)("li",{parentName:"ul"},"You must use the ",(0,s.mdx)("inlineCode",{parentName:"li"},"flow")," ",(0,s.mdx)("a",{parentName:"li",href:"https://prettier.io/docs/en/options.html#parser"},"parser option")," for JavaScript files to be able to format Flow Enums."))),(0,s.mdx)("li",{parentName:"ul"},"Upgrade ",(0,s.mdx)("a",{parentName:"li",href:"https://babeljs.io/"},"Babel")," to at least version 7.13.0",(0,s.mdx)("ul",{parentName:"li"},(0,s.mdx)("li",{parentName:"ul"},"As of that version, Babel can parse Flow Enums. However, to enable this parsing some configuration needs to be supplied,\nand additionally it does not include the transform required - see below."))),(0,s.mdx)("li",{parentName:"ul"},"Upgrade ",(0,s.mdx)("a",{parentName:"li",href:"https://github.com/facebook/jscodeshift"},"jscodeshift")," to at least version 0.11.0"),(0,s.mdx)("li",{parentName:"ul"},"Upgrade ",(0,s.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/hermes-parser"},"hermes-parser")," to at least version 0.4.8"),(0,s.mdx)("li",{parentName:"ul"},"For ESLint, either:",(0,s.mdx)("ul",{parentName:"li"},(0,s.mdx)("li",{parentName:"ul"},"Use ",(0,s.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/hermes-eslint"},"hermes-eslint")," as your ESLint parser, at least version 0.4.8"),(0,s.mdx)("li",{parentName:"ul"},"Or upgrade ",(0,s.mdx)("a",{parentName:"li",href:"https://github.com/babel/babel-eslint"},"babel-eslint")," to version 10.1.0",(0,s.mdx)("ul",{parentName:"li"},(0,s.mdx)("li",{parentName:"ul"},"As of that version, ",(0,s.mdx)("inlineCode",{parentName:"li"},"babel-eslint")," can handle Flow Enums out of the box."),(0,s.mdx)("li",{parentName:"ul"},"Do not upgrade to 11.x, this branch does not support Flow Enums."))),(0,s.mdx)("li",{parentName:"ul"},"Or use another solution using Babel 7.13.0 or later, with Flow enabled - this may also work")))),(0,s.mdx)("p",null,"If you have any other tool which examines your code, you need to update it as well. If it uses ",(0,s.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/package/flow-parser"},"flow-parser"),",\n",(0,s.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/package/hermes-parser"},"hermes-parser")," or ",(0,s.mdx)("inlineCode",{parentName:"p"},"@babel/parser"),", upgrade those as per the instructions above.\nIf it uses some other parser, you will need to implement parsing Flow Enums in that parser. You can look at the existing code in Babel, Flow, and Hermes parsers to guide your work."),(0,s.mdx)("h2",{id:"toc-enable-enums"},"Enable enums"),(0,s.mdx)("ul",null,(0,s.mdx)("li",{parentName:"ul"},"In your ",(0,s.mdx)("inlineCode",{parentName:"li"},".flowconfig"),", under the ",(0,s.mdx)("inlineCode",{parentName:"li"},"[options]")," heading, add ",(0,s.mdx)("inlineCode",{parentName:"li"},"enums=true")),(0,s.mdx)("li",{parentName:"ul"},"Add the Flow Enums Babel transform. It turns enum declaration AST nodes into calls to the runtime:\n",(0,s.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/babel-plugin-transform-flow-enums"},"babel-plugin-transform-flow-enums"),".\nAdd it to your development dependencies and adjust your Babel configuration to use the transform.\nThe transform by default requires the runtime package directly (below), but you can configure this."),(0,s.mdx)("li",{parentName:"ul"},"Add the Flow Enum runtime package to your production dependencies.\nThis will be required and used at runtime to create Flow Enums: ",(0,s.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/flow-enums-runtime"},"flow-enums-runtime"))),(0,s.mdx)("h2",{id:"toc-enable-suggested-eslint-rules"},"Enable suggested ESLint rules"),(0,s.mdx)("p",null,"Enums can be exhaustively checked in ",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," statements, so may increase the use of ",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," statements compared to before.\nTo prevent common issues with ",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," statements, we suggest you enable these ESLint rules (at least as warnings):"),(0,s.mdx)("ul",null,(0,s.mdx)("li",{parentName:"ul"},(0,s.mdx)("a",{parentName:"li",href:"https://eslint.org/docs/rules/no-fallthrough"},"no-fallthrough"),":\nThis prevents the user from accidentally forgetting a ",(0,s.mdx)("inlineCode",{parentName:"li"},"break")," statement at the end of their switch case, while supporting common use-cases."),(0,s.mdx)("li",{parentName:"ul"},(0,s.mdx)("a",{parentName:"li",href:"https://eslint.org/docs/rules/no-case-declarations"},"no-case-declarations"),":\nThis prevents lexicaly scoped declarations (",(0,s.mdx)("inlineCode",{parentName:"li"},"let"),", ",(0,s.mdx)("inlineCode",{parentName:"li"},"const"),") from being introduced in a switch case, without wrapping that case in a new block.\nOtherwise, declarations in different cases could conflict.")),(0,s.mdx)("p",null,"We also have some Flow Enums specific rules as part of ",(0,s.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/package/eslint-plugin-fb-flow"},"eslint-plugin-fb-flow"),":"),(0,s.mdx)("ul",null,(0,s.mdx)("li",{parentName:"ul"},(0,s.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/eslint-plugin-fb-flow#use-flow-enums"},"use-flow-enums"),":\nSuggests that enum-like ",(0,s.mdx)("inlineCode",{parentName:"li"},"Object.freeze")," and ",(0,s.mdx)("inlineCode",{parentName:"li"},"keyMirror")," usage be turned into Flow Enums instead."),(0,s.mdx)("li",{parentName:"ul"},(0,s.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/eslint-plugin-fb-flow#flow-enums-default-if-possible"},"flow-enums-default-if-possible"),":\nAuto-fixes string enums with specified values identical to the member names to defaulted enums."),(0,s.mdx)("li",{parentName:"ul"},(0,s.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/eslint-plugin-fb-flow#no-flow-enums-object-mapping"},"no-flow-enums-object-mapping"),":\nSuggests using a function with a switch to map enum values to other values, instead of an object literal.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8084.1629b62c.js b/assets/js/8084.1629b62c.js new file mode 100644 index 00000000000..092731053d4 --- /dev/null +++ b/assets/js/8084.1629b62c.js @@ -0,0 +1,2 @@ +/*! For license information please see 8084.1629b62c.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8084],{98084:(e,o,n)=>{n.r(o),n.d(o,{conf:()=>t,language:()=>s});var t={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}]},s={defaultToken:"",tokenPostfix:".pascaligo",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["begin","block","case","const","else","end","fail","for","from","function","if","is","nil","of","remove","return","skip","then","type","var","while","with","option","None","transaction"],typeKeywords:["bool","int","list","map","nat","record","string","unit","address","map","mtz","xtz"],operators:["=",">","<","<=",">=","<>",":",":=","and","mod","or","+","-","*","/","@","&","^","%"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\(\*]+/,"comment"],[/\*\)/,"comment","@pop"],[/\(\*/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/8084.1629b62c.js.LICENSE.txt b/assets/js/8084.1629b62c.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8084.1629b62c.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/8084.1c54978e.js b/assets/js/8084.1c54978e.js new file mode 100644 index 00000000000..e916281f22a --- /dev/null +++ b/assets/js/8084.1c54978e.js @@ -0,0 +1,177 @@ +"use strict"; +exports.id = 8084; +exports.ids = [8084]; +exports.modules = { + +/***/ 98084: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/pascaligo/pascaligo.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["(*", "*)"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["<", ">"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".pascaligo", + ignoreCase: true, + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + keywords: [ + "begin", + "block", + "case", + "const", + "else", + "end", + "fail", + "for", + "from", + "function", + "if", + "is", + "nil", + "of", + "remove", + "return", + "skip", + "then", + "type", + "var", + "while", + "with", + "option", + "None", + "transaction" + ], + typeKeywords: [ + "bool", + "int", + "list", + "map", + "nat", + "record", + "string", + "unit", + "address", + "map", + "mtz", + "xtz" + ], + operators: [ + "=", + ">", + "<", + "<=", + ">=", + "<>", + ":", + ":=", + "and", + "mod", + "or", + "+", + "-", + "*", + "/", + "@", + "&", + "^", + "%" + ], + symbols: /[=><:@\^&|+\-*\/\^%]+/, + tokenizer: { + root: [ + [ + /[a-zA-Z_][\w]*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "identifier" + } + } + ], + { include: "@whitespace" }, + [/[{}()\[\]]/, "@brackets"], + [/[<>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/\$[0-9a-fA-F]{1,16}/, "number.hex"], + [/\d+/, "number"], + [/[;,.]/, "delimiter"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/'/, "string", "@string"], + [/'[^\\']'/, "string"], + [/'/, "string.invalid"], + [/\#\d+/, "string"] + ], + comment: [ + [/[^\(\*]+/, "comment"], + [/\*\)/, "comment", "@pop"], + [/\(\*/, "comment"] + ], + string: [ + [/[^\\']+/, "string"], + [/\\./, "string.escape.invalid"], + [/'/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/\(\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8118.3febc31b.js b/assets/js/8118.3febc31b.js new file mode 100644 index 00000000000..140811e1dcd --- /dev/null +++ b/assets/js/8118.3febc31b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8118],{48118:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>l,contentTitle:()=>d,default:()=>u,frontMatter:()=>n,metadata:()=>s,toc:()=>p});var a=o(87462),r=(o(67294),o(3905));const n={title:"How to upgrade to exact-by-default object type syntax","short-title":"Upgrade to exact-by-default",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/how-to-upgrade-to-exact-by-default-object-type-syntax-7aa44b4d08ab"},d=void 0,s={permalink:"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax",source:"@site/blog/2020-01-29-How-to-Upgrade-to-exact-by-default-object-type-syntax.md",title:"How to upgrade to exact-by-default object type syntax",description:"Object types will become exact-by-default. Read this post to learn how to get your code ready!",date:"2020-01-29T00:00:00.000Z",formattedDate:"January 29, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"How to upgrade to exact-by-default object type syntax","short-title":"Upgrade to exact-by-default",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/how-to-upgrade-to-exact-by-default-object-type-syntax-7aa44b4d08ab"},prevItem:{title:"Improvements to Flow in 2019",permalink:"/blog/2020/02/19/Improvements-to-Flow-in-2019"},nextItem:{title:"Spreads: Common Errors & Fixes",permalink:"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes"}},l={authorsImageUrls:[void 0]},p=[],c={toc:p};function u(t){let{components:e,...o}=t;return(0,r.mdx)("wrapper",(0,a.Z)({},c,o,{components:e,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Object types will become exact-by-default. Read this post to learn how to get your code ready!"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/813.efa2999f.js b/assets/js/813.efa2999f.js new file mode 100644 index 00000000000..2ed54b476be --- /dev/null +++ b/assets/js/813.efa2999f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[813],{10813:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>r,toc:()=>m});var i=t(87462),a=(t(67294),t(3905));t(45475);const l={title:"Vim",slug:"/editors/vim"},o=void 0,r={unversionedId:"editors/vim",id:"editors/vim",title:"Vim",description:"Flow's editor integration is primarily via the Language Server Protocol. There are many vim LSP clients to choose from, such as ALE.",source:"@site/docs/editors/vim.md",sourceDirName:"editors",slug:"/editors/vim",permalink:"/en/docs/editors/vim",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/editors/vim.md",tags:[],version:"current",frontMatter:{title:"Vim",slug:"/editors/vim"},sidebar:"docsSidebar",previous:{title:"Sublime Text",permalink:"/en/docs/editors/sublime-text"},next:{title:"Emacs",permalink:"/en/docs/editors/emacs"}},s={},m=[{value:"ALE",id:"toc-ale",level:2},{value:"Installation",id:"toc-installation",level:3},{value:"coc.nvim-neovim",id:"toc-coc-nvim-neovim",level:2},{value:"Setup",id:"toc-setup",level:3},{value:"LanguageClient-neovim",id:"toc-languageclient-neovim",level:2},{value:"Requirements",id:"toc-requirements",level:3},{value:"Pathogen",id:"toc-pathogen",level:3},{value:"NeoBundle",id:"toc-neobundle",level:3},{value:"VimPlug",id:"toc-vimplug",level:3},{value:"Setup",id:"toc-setup",level:3}],u={toc:m};function d(e){let{components:n,...t}=e;return(0,a.mdx)("wrapper",(0,i.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Flow's editor integration is primarily via the ",(0,a.mdx)("a",{parentName:"p",href:"https://microsoft.github.io/language-server-protocol/"},"Language Server Protocol"),". There are ",(0,a.mdx)("a",{parentName:"p",href:"https://microsoft.github.io/language-server-protocol/implementors/tools/"},"many vim LSP clients")," to choose from, such as ",(0,a.mdx)("a",{parentName:"p",href:"#toc-ale"},"ALE"),"."),(0,a.mdx)("h2",{id:"toc-ale"},"ALE"),(0,a.mdx)("p",null,"The Asynchronous Lint Engine (ALE) plugin for Vim 8+ and NeoVim, ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/w0rp/ale"},"vim-ale"),", is a generalized linting engine with support for Flow and many other tools."),(0,a.mdx)("h3",{id:"toc-installation"},"Installation"),(0,a.mdx)("p",null,"Follow the ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/w0rp/ale#3-installation"},"instructions")," in the ALE README."),(0,a.mdx)("p",null,"Configure ALE to use the ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow-language-server")," linter for JavaScript files:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-vim"},"\" In ~/.vim/ftplugin/javascript.vim, or somewhere similar.\n\n\" Enables only Flow for JavaScript. See :ALEInfo for a list of other available\n\" linters. NOTE: the `flow` linter uses an old API; prefer `flow-language-server`.\nlet b:ale_linters = ['flow-language-server']\n\n\" Or in ~/.vim/vimrc:\nlet g:ale_linters = {\n\\ 'javascript': ['flow-language-server'],\n\\}\n")),(0,a.mdx)("h2",{id:"toc-coc-nvim-neovim"},"coc.nvim-neovim"),(0,a.mdx)("p",null,(0,a.mdx)("a",{parentName:"p",href:"https://github.com/neoclide/coc.nvim"},"Coc")," is an intellisense engine for vim8 & neovim."),(0,a.mdx)("h3",{id:"toc-setup"},"Setup"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-vim"},"set nocompatible\nfiletype off\n\n\" install coc.nvim using Plug or preffered plugin manager\ncall plug#begin('~/.vim/plugged')\nPlug 'neoclide/coc.nvim', {'branch': 'release'}\ncall plug#end()\n\nfiletype plugin indent on\n\n\" ======= coc settings\nset updatetime=300\nset shortmess+=c\n\n\" Use leader T to show documentation in preview window\nnnoremap <leader>t :call <SID>show_documentation()<CR>\n\n\nfunction! s:show_documentation()\n if (index(['vim','help'], &filetype) >= 0)\n execute 'h '.expand('<cword>')\n else\n call CocAction('doHover')\n endif\nendfunction\n\n\" instead of having ~/.vim/coc-settings.json\nlet s:LSP_CONFIG = {\n\\ 'flow': {\n\\ 'command': exepath('flow'),\n\\ 'args': ['lsp'],\n\\ 'filetypes': ['javascript', 'javascriptreact'],\n\\ 'initializationOptions': {},\n\\ 'requireRootPattern': 1,\n\\ 'settings': {},\n\\ 'rootPatterns': ['.flowconfig']\n\\ }\n\\}\n\nlet s:languageservers = {}\nfor [lsp, config] in items(s:LSP_CONFIG)\n let s:not_empty_cmd = !empty(get(config, 'command'))\n if s:not_empty_cmd | let s:languageservers[lsp] = config | endif\nendfor\n\nif !empty(s:languageservers)\n call coc#config('languageserver', s:languageservers)\n endif\n")),(0,a.mdx)("h2",{id:"toc-languageclient-neovim"},"LanguageClient-neovim"),(0,a.mdx)("p",null,"Another way to add support for Flow in Vim is to use ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/autozimu/LanguageClient-neovim"},"LanguageClient-neovim"),"."),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},"Suports vim 8 and neovim"),(0,a.mdx)("li",{parentName:"ul"},"Adds completions to omnifunc"),(0,a.mdx)("li",{parentName:"ul"},"Checks JavaScript files for type errors on save"),(0,a.mdx)("li",{parentName:"ul"},"Look up types under cursor")),(0,a.mdx)("h3",{id:"toc-requirements"},"Requirements"),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},"Requires Flow to be installed and available on your path."),(0,a.mdx)("li",{parentName:"ul"},"Requires projects containing JavaScript files to be initialised with flow init."),(0,a.mdx)("li",{parentName:"ul"},"Requires JavaScript files to be marked with /",(0,a.mdx)("em",{parentName:"li"}," @flow "),"/ at the top.")),(0,a.mdx)("h3",{id:"toc-pathogen"},"Pathogen"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-sh"},"cd ~/.vim/bundle\ngit clone git://github.com/autozimu/LanguageClient-neovim.git\n")),(0,a.mdx)("h3",{id:"toc-neobundle"},"NeoBundle"),(0,a.mdx)("p",null,"Add this to your ~/.vimrc"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-vim"}," NeoBundleLazy 'autozimu/LanguageClient-neovim', {\n \\ 'autoload': {\n \\ 'filetypes': 'javascript'\n \\ }}\n")),(0,a.mdx)("p",null,"With Flow build step, using flow-bin"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-vim"}," NeoBundleLazy 'autozimu/LanguageClient-neovim', {\n \\ 'autoload': {\n \\ 'filetypes': 'javascript'\n \\ },\n \\ 'build': {\n \\ 'mac': 'npm install -g flow-bin',\n \\ 'unix': 'npm install -g flow-bin'\n \\ }}\n")),(0,a.mdx)("h3",{id:"toc-vimplug"},"VimPlug"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-vim"}," Plug 'autozimu/LanguageClient-neovim', {\n \\ 'branch': 'next',\n \\ 'do': 'bash install.sh && npm install -g flow-bin',\n \\ }\n")),(0,a.mdx)("h3",{id:"toc-setup"},"Setup"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-vim"},"let g:LanguageClient_rootMarkers = {\n\\ 'javascript': ['.flowconfig', 'package.json']\n\\ }\nlet g:LanguageClient_serverCommands={\n\\ 'javascript': ['flow', 'lsp'],\n\\ 'javascript.jsx': ['flow', 'lsp']\n\\}\n\n\" check the type under cursor w/ leader T\nnnoremap <leader>t :call LanguageClient_textDocument_hover()<CR>\nnnoremap <leader>y :call LanguageClient_textDocument_definition()<CR>\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8180.71c4e4e9.js b/assets/js/8180.71c4e4e9.js new file mode 100644 index 00000000000..bd2846f5c5b --- /dev/null +++ b/assets/js/8180.71c4e4e9.js @@ -0,0 +1,563 @@ +"use strict"; +exports.id = 8180; +exports.ids = [8180]; +exports.modules = { + +/***/ 48180: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/postiats/postiats.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["(*", "*)"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["<", ">"] + ], + autoClosingPairs: [ + { open: '"', close: '"', notIn: ["string", "comment"] }, + { open: "{", close: "}", notIn: ["string", "comment"] }, + { open: "[", close: "]", notIn: ["string", "comment"] }, + { open: "(", close: ")", notIn: ["string", "comment"] } + ] +}; +var language = { + tokenPostfix: ".pats", + defaultToken: "invalid", + keywords: [ + "abstype", + "abst0ype", + "absprop", + "absview", + "absvtype", + "absviewtype", + "absvt0ype", + "absviewt0ype", + "as", + "and", + "assume", + "begin", + "classdec", + "datasort", + "datatype", + "dataprop", + "dataview", + "datavtype", + "dataviewtype", + "do", + "end", + "extern", + "extype", + "extvar", + "exception", + "fn", + "fnx", + "fun", + "prfn", + "prfun", + "praxi", + "castfn", + "if", + "then", + "else", + "ifcase", + "in", + "infix", + "infixl", + "infixr", + "prefix", + "postfix", + "implmnt", + "implement", + "primplmnt", + "primplement", + "import", + "let", + "local", + "macdef", + "macrodef", + "nonfix", + "symelim", + "symintr", + "overload", + "of", + "op", + "rec", + "sif", + "scase", + "sortdef", + "sta", + "stacst", + "stadef", + "static", + "staload", + "dynload", + "try", + "tkindef", + "typedef", + "propdef", + "viewdef", + "vtypedef", + "viewtypedef", + "prval", + "var", + "prvar", + "when", + "where", + "with", + "withtype", + "withprop", + "withview", + "withvtype", + "withviewtype" + ], + keywords_dlr: [ + "$delay", + "$ldelay", + "$arrpsz", + "$arrptrsize", + "$d2ctype", + "$effmask", + "$effmask_ntm", + "$effmask_exn", + "$effmask_ref", + "$effmask_wrt", + "$effmask_all", + "$extern", + "$extkind", + "$extype", + "$extype_struct", + "$extval", + "$extfcall", + "$extmcall", + "$literal", + "$myfilename", + "$mylocation", + "$myfunction", + "$lst", + "$lst_t", + "$lst_vt", + "$list", + "$list_t", + "$list_vt", + "$rec", + "$rec_t", + "$rec_vt", + "$record", + "$record_t", + "$record_vt", + "$tup", + "$tup_t", + "$tup_vt", + "$tuple", + "$tuple_t", + "$tuple_vt", + "$break", + "$continue", + "$raise", + "$showtype", + "$vcopyenv_v", + "$vcopyenv_vt", + "$tempenver", + "$solver_assert", + "$solver_verify" + ], + keywords_srp: [ + "#if", + "#ifdef", + "#ifndef", + "#then", + "#elif", + "#elifdef", + "#elifndef", + "#else", + "#endif", + "#error", + "#prerr", + "#print", + "#assert", + "#undef", + "#define", + "#include", + "#require", + "#pragma", + "#codegen2", + "#codegen3" + ], + irregular_keyword_list: [ + "val+", + "val-", + "val", + "case+", + "case-", + "case", + "addr@", + "addr", + "fold@", + "free@", + "fix@", + "fix", + "lam@", + "lam", + "llam@", + "llam", + "viewt@ype+", + "viewt@ype-", + "viewt@ype", + "viewtype+", + "viewtype-", + "viewtype", + "view+", + "view-", + "view@", + "view", + "type+", + "type-", + "type", + "vtype+", + "vtype-", + "vtype", + "vt@ype+", + "vt@ype-", + "vt@ype", + "viewt@ype+", + "viewt@ype-", + "viewt@ype", + "viewtype+", + "viewtype-", + "viewtype", + "prop+", + "prop-", + "prop", + "type+", + "type-", + "type", + "t@ype", + "t@ype+", + "t@ype-", + "abst@ype", + "abstype", + "absviewt@ype", + "absvt@ype", + "for*", + "for", + "while*", + "while" + ], + keywords_types: [ + "bool", + "double", + "byte", + "int", + "short", + "char", + "void", + "unit", + "long", + "float", + "string", + "strptr" + ], + keywords_effects: [ + "0", + "fun", + "clo", + "prf", + "funclo", + "cloptr", + "cloref", + "ref", + "ntm", + "1" + ], + operators: [ + "@", + "!", + "|", + "`", + ":", + "$", + ".", + "=", + "#", + "~", + "..", + "...", + "=>", + "=<>", + "=/=>", + "=>>", + "=/=>>", + "<", + ">", + "><", + ".<", + ">.", + ".<>.", + "->", + "-<>" + ], + brackets: [ + { open: ",(", close: ")", token: "delimiter.parenthesis" }, + { open: "`(", close: ")", token: "delimiter.parenthesis" }, + { open: "%(", close: ")", token: "delimiter.parenthesis" }, + { open: "'(", close: ")", token: "delimiter.parenthesis" }, + { open: "'{", close: "}", token: "delimiter.parenthesis" }, + { open: "@(", close: ")", token: "delimiter.parenthesis" }, + { open: "@{", close: "}", token: "delimiter.brace" }, + { open: "@[", close: "]", token: "delimiter.square" }, + { open: "#[", close: "]", token: "delimiter.square" }, + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + symbols: /[=><!~?:&|+\-*\/\^%]+/, + IDENTFST: /[a-zA-Z_]/, + IDENTRST: /[a-zA-Z0-9_'$]/, + symbolic: /[%&+-./:=@~`^|*!$#?<>]/, + digit: /[0-9]/, + digitseq0: /@digit*/, + xdigit: /[0-9A-Za-z]/, + xdigitseq0: /@xdigit*/, + INTSP: /[lLuU]/, + FLOATSP: /[fFlL]/, + fexponent: /[eE][+-]?[0-9]+/, + fexponent_bin: /[pP][+-]?[0-9]+/, + deciexp: /\.[0-9]*@fexponent?/, + hexiexp: /\.[0-9a-zA-Z]*@fexponent_bin?/, + irregular_keywords: /val[+-]?|case[+-]?|addr\@?|fold\@|free\@|fix\@?|lam\@?|llam\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\*?|while\*?/, + ESCHAR: /[ntvbrfa\\\?'"\(\[\{]/, + start: "root", + tokenizer: { + root: [ + { regex: /[ \t\r\n]+/, action: { token: "" } }, + { regex: /\(\*\)/, action: { token: "invalid" } }, + { + regex: /\(\*/, + action: { token: "comment", next: "lexing_COMMENT_block_ml" } + }, + { + regex: /\(/, + action: "@brackets" + }, + { + regex: /\)/, + action: "@brackets" + }, + { + regex: /\[/, + action: "@brackets" + }, + { + regex: /\]/, + action: "@brackets" + }, + { + regex: /\{/, + action: "@brackets" + }, + { + regex: /\}/, + action: "@brackets" + }, + { + regex: /,\(/, + action: "@brackets" + }, + { regex: /,/, action: { token: "delimiter.comma" } }, + { regex: /;/, action: { token: "delimiter.semicolon" } }, + { + regex: /@\(/, + action: "@brackets" + }, + { + regex: /@\[/, + action: "@brackets" + }, + { + regex: /@\{/, + action: "@brackets" + }, + { + regex: /:</, + action: { token: "keyword", next: "@lexing_EFFECT_commaseq0" } + }, + { regex: /\.@symbolic+/, action: { token: "identifier.sym" } }, + { + regex: /\.@digit*@fexponent@FLOATSP*/, + action: { token: "number.float" } + }, + { regex: /\.@digit+/, action: { token: "number.float" } }, + { + regex: /\$@IDENTFST@IDENTRST*/, + action: { + cases: { + "@keywords_dlr": { token: "keyword.dlr" }, + "@default": { token: "namespace" } + } + } + }, + { + regex: /\#@IDENTFST@IDENTRST*/, + action: { + cases: { + "@keywords_srp": { token: "keyword.srp" }, + "@default": { token: "identifier" } + } + } + }, + { regex: /%\(/, action: { token: "delimiter.parenthesis" } }, + { + regex: /^%{(#|\^|\$)?/, + action: { + token: "keyword", + next: "@lexing_EXTCODE", + nextEmbedded: "text/javascript" + } + }, + { regex: /^%}/, action: { token: "keyword" } }, + { regex: /'\(/, action: { token: "delimiter.parenthesis" } }, + { regex: /'\[/, action: { token: "delimiter.bracket" } }, + { regex: /'\{/, action: { token: "delimiter.brace" } }, + [/(')(\\@ESCHAR|\\[xX]@xdigit+|\\@digit+)(')/, ["string", "string.escape", "string"]], + [/'[^\\']'/, "string"], + [/"/, "string.quote", "@lexing_DQUOTE"], + { + regex: /`\(/, + action: "@brackets" + }, + { regex: /\\/, action: { token: "punctuation" } }, + { + regex: /@irregular_keywords(?!@IDENTRST)/, + action: { token: "keyword" } + }, + { + regex: /@IDENTFST@IDENTRST*[<!\[]?/, + action: { + cases: { + "@keywords": { token: "keyword" }, + "@keywords_types": { token: "type" }, + "@default": { token: "identifier" } + } + } + }, + { + regex: /\/\/\/\//, + action: { token: "comment", next: "@lexing_COMMENT_rest" } + }, + { regex: /\/\/.*$/, action: { token: "comment" } }, + { + regex: /\/\*/, + action: { token: "comment", next: "@lexing_COMMENT_block_c" } + }, + { + regex: /-<|=</, + action: { token: "keyword", next: "@lexing_EFFECT_commaseq0" } + }, + { + regex: /@symbolic+/, + action: { + cases: { + "@operators": "keyword", + "@default": "operator" + } + } + }, + { + regex: /0[xX]@xdigit+(@hexiexp|@fexponent_bin)@FLOATSP*/, + action: { token: "number.float" } + }, + { regex: /0[xX]@xdigit+@INTSP*/, action: { token: "number.hex" } }, + { + regex: /0[0-7]+(?![0-9])@INTSP*/, + action: { token: "number.octal" } + }, + { + regex: /@digit+(@fexponent|@deciexp)@FLOATSP*/, + action: { token: "number.float" } + }, + { + regex: /@digit@digitseq0@INTSP*/, + action: { token: "number.decimal" } + }, + { regex: /@digit+@INTSP*/, action: { token: "number" } } + ], + lexing_COMMENT_block_ml: [ + [/[^\(\*]+/, "comment"], + [/\(\*/, "comment", "@push"], + [/\(\*/, "comment.invalid"], + [/\*\)/, "comment", "@pop"], + [/\*/, "comment"] + ], + lexing_COMMENT_block_c: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + lexing_COMMENT_rest: [ + [/$/, "comment", "@pop"], + [/.*/, "comment"] + ], + lexing_EFFECT_commaseq0: [ + { + regex: /@IDENTFST@IDENTRST+|@digit+/, + action: { + cases: { + "@keywords_effects": { token: "type.effect" }, + "@default": { token: "identifier" } + } + } + }, + { regex: /,/, action: { token: "punctuation" } }, + { regex: />/, action: { token: "@rematch", next: "@pop" } } + ], + lexing_EXTCODE: [ + { + regex: /^%}/, + action: { + token: "@rematch", + next: "@pop", + nextEmbedded: "@pop" + } + }, + { regex: /[^%]+/, action: "" } + ], + lexing_DQUOTE: [ + { regex: /"/, action: { token: "string.quote", next: "@pop" } }, + { + regex: /(\{\$)(@IDENTFST@IDENTRST*)(\})/, + action: [{ token: "string.escape" }, { token: "identifier" }, { token: "string.escape" }] + }, + { regex: /\\$/, action: { token: "string.escape" } }, + { + regex: /\\(@ESCHAR|[xX]@xdigit+|@digit+)/, + action: { token: "string.escape" } + }, + { regex: /[^\\"]+/, action: { token: "string" } } + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8180.b2381f36.js b/assets/js/8180.b2381f36.js new file mode 100644 index 00000000000..146f46fc168 --- /dev/null +++ b/assets/js/8180.b2381f36.js @@ -0,0 +1,2 @@ +/*! For license information please see 8180.b2381f36.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8180],{48180:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>i,language:()=>o});var i={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},o={tokenPostfix:".pats",defaultToken:"invalid",keywords:["abstype","abst0ype","absprop","absview","absvtype","absviewtype","absvt0ype","absviewt0ype","as","and","assume","begin","classdec","datasort","datatype","dataprop","dataview","datavtype","dataviewtype","do","end","extern","extype","extvar","exception","fn","fnx","fun","prfn","prfun","praxi","castfn","if","then","else","ifcase","in","infix","infixl","infixr","prefix","postfix","implmnt","implement","primplmnt","primplement","import","let","local","macdef","macrodef","nonfix","symelim","symintr","overload","of","op","rec","sif","scase","sortdef","sta","stacst","stadef","static","staload","dynload","try","tkindef","typedef","propdef","viewdef","vtypedef","viewtypedef","prval","var","prvar","when","where","with","withtype","withprop","withview","withvtype","withviewtype"],keywords_dlr:["$delay","$ldelay","$arrpsz","$arrptrsize","$d2ctype","$effmask","$effmask_ntm","$effmask_exn","$effmask_ref","$effmask_wrt","$effmask_all","$extern","$extkind","$extype","$extype_struct","$extval","$extfcall","$extmcall","$literal","$myfilename","$mylocation","$myfunction","$lst","$lst_t","$lst_vt","$list","$list_t","$list_vt","$rec","$rec_t","$rec_vt","$record","$record_t","$record_vt","$tup","$tup_t","$tup_vt","$tuple","$tuple_t","$tuple_vt","$break","$continue","$raise","$showtype","$vcopyenv_v","$vcopyenv_vt","$tempenver","$solver_assert","$solver_verify"],keywords_srp:["#if","#ifdef","#ifndef","#then","#elif","#elifdef","#elifndef","#else","#endif","#error","#prerr","#print","#assert","#undef","#define","#include","#require","#pragma","#codegen2","#codegen3"],irregular_keyword_list:["val+","val-","val","case+","case-","case","addr@","addr","fold@","free@","fix@","fix","lam@","lam","llam@","llam","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","view+","view-","view@","view","type+","type-","type","vtype+","vtype-","vtype","vt@ype+","vt@ype-","vt@ype","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","prop+","prop-","prop","type+","type-","type","t@ype","t@ype+","t@ype-","abst@ype","abstype","absviewt@ype","absvt@ype","for*","for","while*","while"],keywords_types:["bool","double","byte","int","short","char","void","unit","long","float","string","strptr"],keywords_effects:["0","fun","clo","prf","funclo","cloptr","cloref","ref","ntm","1"],operators:["@","!","|","`",":","$",".","=","#","~","..","...","=>","=<>","=/=>","=>>","=/=>>","<",">","><",".<",">.",".<>.","->","-<>"],brackets:[{open:",(",close:")",token:"delimiter.parenthesis"},{open:"`(",close:")",token:"delimiter.parenthesis"},{open:"%(",close:")",token:"delimiter.parenthesis"},{open:"'(",close:")",token:"delimiter.parenthesis"},{open:"'{",close:"}",token:"delimiter.parenthesis"},{open:"@(",close:")",token:"delimiter.parenthesis"},{open:"@{",close:"}",token:"delimiter.brace"},{open:"@[",close:"]",token:"delimiter.square"},{open:"#[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],symbols:/[=><!~?:&|+\-*\/\^%]+/,IDENTFST:/[a-zA-Z_]/,IDENTRST:/[a-zA-Z0-9_'$]/,symbolic:/[%&+-./:=@~`^|*!$#?<>]/,digit:/[0-9]/,digitseq0:/@digit*/,xdigit:/[0-9A-Za-z]/,xdigitseq0:/@xdigit*/,INTSP:/[lLuU]/,FLOATSP:/[fFlL]/,fexponent:/[eE][+-]?[0-9]+/,fexponent_bin:/[pP][+-]?[0-9]+/,deciexp:/\.[0-9]*@fexponent?/,hexiexp:/\.[0-9a-zA-Z]*@fexponent_bin?/,irregular_keywords:/val[+-]?|case[+-]?|addr\@?|fold\@|free\@|fix\@?|lam\@?|llam\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\*?|while\*?/,ESCHAR:/[ntvbrfa\\\?'"\(\[\{]/,start:"root",tokenizer:{root:[{regex:/[ \t\r\n]+/,action:{token:""}},{regex:/\(\*\)/,action:{token:"invalid"}},{regex:/\(\*/,action:{token:"comment",next:"lexing_COMMENT_block_ml"}},{regex:/\(/,action:"@brackets"},{regex:/\)/,action:"@brackets"},{regex:/\[/,action:"@brackets"},{regex:/\]/,action:"@brackets"},{regex:/\{/,action:"@brackets"},{regex:/\}/,action:"@brackets"},{regex:/,\(/,action:"@brackets"},{regex:/,/,action:{token:"delimiter.comma"}},{regex:/;/,action:{token:"delimiter.semicolon"}},{regex:/@\(/,action:"@brackets"},{regex:/@\[/,action:"@brackets"},{regex:/@\{/,action:"@brackets"},{regex:/:</,action:{token:"keyword",next:"@lexing_EFFECT_commaseq0"}},{regex:/\.@symbolic+/,action:{token:"identifier.sym"}},{regex:/\.@digit*@fexponent@FLOATSP*/,action:{token:"number.float"}},{regex:/\.@digit+/,action:{token:"number.float"}},{regex:/\$@IDENTFST@IDENTRST*/,action:{cases:{"@keywords_dlr":{token:"keyword.dlr"},"@default":{token:"namespace"}}}},{regex:/\#@IDENTFST@IDENTRST*/,action:{cases:{"@keywords_srp":{token:"keyword.srp"},"@default":{token:"identifier"}}}},{regex:/%\(/,action:{token:"delimiter.parenthesis"}},{regex:/^%{(#|\^|\$)?/,action:{token:"keyword",next:"@lexing_EXTCODE",nextEmbedded:"text/javascript"}},{regex:/^%}/,action:{token:"keyword"}},{regex:/'\(/,action:{token:"delimiter.parenthesis"}},{regex:/'\[/,action:{token:"delimiter.bracket"}},{regex:/'\{/,action:{token:"delimiter.brace"}},[/(')(\\@ESCHAR|\\[xX]@xdigit+|\\@digit+)(')/,["string","string.escape","string"]],[/'[^\\']'/,"string"],[/"/,"string.quote","@lexing_DQUOTE"],{regex:/`\(/,action:"@brackets"},{regex:/\\/,action:{token:"punctuation"}},{regex:/@irregular_keywords(?!@IDENTRST)/,action:{token:"keyword"}},{regex:/@IDENTFST@IDENTRST*[<!\[]?/,action:{cases:{"@keywords":{token:"keyword"},"@keywords_types":{token:"type"},"@default":{token:"identifier"}}}},{regex:/\/\/\/\//,action:{token:"comment",next:"@lexing_COMMENT_rest"}},{regex:/\/\/.*$/,action:{token:"comment"}},{regex:/\/\*/,action:{token:"comment",next:"@lexing_COMMENT_block_c"}},{regex:/-<|=</,action:{token:"keyword",next:"@lexing_EFFECT_commaseq0"}},{regex:/@symbolic+/,action:{cases:{"@operators":"keyword","@default":"operator"}}},{regex:/0[xX]@xdigit+(@hexiexp|@fexponent_bin)@FLOATSP*/,action:{token:"number.float"}},{regex:/0[xX]@xdigit+@INTSP*/,action:{token:"number.hex"}},{regex:/0[0-7]+(?![0-9])@INTSP*/,action:{token:"number.octal"}},{regex:/@digit+(@fexponent|@deciexp)@FLOATSP*/,action:{token:"number.float"}},{regex:/@digit@digitseq0@INTSP*/,action:{token:"number.decimal"}},{regex:/@digit+@INTSP*/,action:{token:"number"}}],lexing_COMMENT_block_ml:[[/[^\(\*]+/,"comment"],[/\(\*/,"comment","@push"],[/\(\*/,"comment.invalid"],[/\*\)/,"comment","@pop"],[/\*/,"comment"]],lexing_COMMENT_block_c:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],lexing_COMMENT_rest:[[/$/,"comment","@pop"],[/.*/,"comment"]],lexing_EFFECT_commaseq0:[{regex:/@IDENTFST@IDENTRST+|@digit+/,action:{cases:{"@keywords_effects":{token:"type.effect"},"@default":{token:"identifier"}}}},{regex:/,/,action:{token:"punctuation"}},{regex:/>/,action:{token:"@rematch",next:"@pop"}}],lexing_EXTCODE:[{regex:/^%}/,action:{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}},{regex:/[^%]+/,action:""}],lexing_DQUOTE:[{regex:/"/,action:{token:"string.quote",next:"@pop"}},{regex:/(\{\$)(@IDENTFST@IDENTRST*)(\})/,action:[{token:"string.escape"},{token:"identifier"},{token:"string.escape"}]},{regex:/\\$/,action:{token:"string.escape"}},{regex:/\\(@ESCHAR|[xX]@xdigit+|@digit+)/,action:{token:"string.escape"}},{regex:/[^\\"]+/,action:{token:"string"}}]}}}}]); \ No newline at end of file diff --git a/assets/js/8180.b2381f36.js.LICENSE.txt b/assets/js/8180.b2381f36.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8180.b2381f36.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/836.b690b489.js b/assets/js/836.b690b489.js new file mode 100644 index 00000000000..142106a9ac7 --- /dev/null +++ b/assets/js/836.b690b489.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[836],{80836:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>r,default:()=>m,frontMatter:()=>s,metadata:()=>l,toc:()=>a});var n=o(87462),i=(o(67294),o(3905));const s={title:"Types-First the only supported mode in Flow (Jan 2021)","short-title":"Types-First only supported mode",author:"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-the-only-supported-mode-in-flow-jan-2021-3c4cb14d7b6c"},r=void 0,l={permalink:"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow",source:"@site/blog/2020-12-01-Types-first-the-only-supported-mode-in-flow.md",title:"Types-First the only supported mode in Flow (Jan 2021)",description:"Types-First will become the only mode in Flow in v0.143 (mid Jan 2021).",date:"2020-12-01T00:00:00.000Z",formattedDate:"December 1, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Panagiotis Vekris"}],frontMatter:{title:"Types-First the only supported mode in Flow (Jan 2021)","short-title":"Types-First only supported mode",author:"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-the-only-supported-mode-in-flow-jan-2021-3c4cb14d7b6c"},prevItem:{title:"Clarity on Flow's Direction and Open Source Engagement",permalink:"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement"},nextItem:{title:"Flow's Improved Handling of Generic Types",permalink:"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types"}},p={authorsImageUrls:[void 0]},a=[],d={toc:a};function m(e){let{components:t,...o}=e;return(0,i.mdx)("wrapper",(0,n.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Types-First will become the only mode in Flow in v0.143 (mid Jan 2021)."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8396.b75cac9d.js b/assets/js/8396.b75cac9d.js new file mode 100644 index 00000000000..abafc69e9be --- /dev/null +++ b/assets/js/8396.b75cac9d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8396],{88396:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>m});var a=t(87462),i=(t(67294),t(3905));t(45475);const r={title:"Generics",slug:"/types/generics"},o=void 0,s={unversionedId:"types/generics",id:"types/generics",title:"Generics",description:"Generics (sometimes referred to as polymorphic types) are a way of abstracting",source:"@site/docs/types/generics.md",sourceDirName:"types",slug:"/types/generics",permalink:"/en/docs/types/generics",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/generics.md",tags:[],version:"current",frontMatter:{title:"Generics",slug:"/types/generics"},sidebar:"docsSidebar",previous:{title:"Interfaces",permalink:"/en/docs/types/interfaces"},next:{title:"Unions",permalink:"/en/docs/types/unions"}},l={},m=[{value:"Syntax of generics",id:"toc-syntax-of-generics",level:3},{value:"Functions with generics",id:"toc-functions-with-generics",level:3},{value:"Function types with generics",id:"toc-function-types-with-generics",level:3},{value:"Classes with generics",id:"toc-classes-with-generics",level:3},{value:"Type aliases with generics",id:"toc-type-aliases-with-generics",level:3},{value:"Interfaces with generics",id:"toc-interfaces-with-generics",level:3},{value:"Supplying Type Arguments to Callables",id:"toc-supplying-type-arguments-to-callables",level:3},{value:"Behavior of generics",id:"toc-behavior-of-generics",level:2},{value:"Generics act like variables",id:"toc-generics-act-like-variables",level:3},{value:"Create as many generics as you need",id:"toc-create-as-many-generics-as-you-need",level:3},{value:"Generics track values around",id:"toc-generics-track-values-around",level:3},{value:"Adding types to generics",id:"toc-adding-types-to-generics",level:3},{value:"Generic types act as bounds",id:"toc-generic-types-act-as-bounds",level:3},{value:"Parameterized generics",id:"toc-parameterized-generics",level:3},{value:"Adding defaults to parameterized generics",id:"toc-adding-defaults-to-parameterized-generics",level:3},{value:"Variance Sigils",id:"toc-variance-sigils",level:3}],c={toc:m};function p(e){let{components:n,...t}=e;return(0,i.mdx)("wrapper",(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Generics (sometimes referred to as polymorphic types) are a way of abstracting\na type away."),(0,i.mdx)("p",null,"Imagine writing the following ",(0,i.mdx)("inlineCode",{parentName:"p"},"identity")," function which returns whatever value\nwas passed."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"function identity(value) {\n return value;\n}\n")),(0,i.mdx)("p",null,"We would have a lot of trouble trying to write specific types for this function\nsince it could be anything."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function identity(value: string): string {\n return value;\n}\n")),(0,i.mdx)("p",null,"Instead we can create a generic (or polymorphic type) in our function and use\nit in place of other types."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function identity<T>(value: T): T {\n return value;\n}\n")),(0,i.mdx)("p",null,"Generics can be used within functions, function types, classes, type aliases,\nand interfaces."),(0,i.mdx)("blockquote",null,(0,i.mdx)("p",{parentName:"blockquote"},(0,i.mdx)("strong",{parentName:"p"},"Warning:")," Flow does not infer generic types. If you want something to have a\ngeneric type, ",(0,i.mdx)("strong",{parentName:"p"},"annotate it"),". Otherwise, Flow may infer a type that is less\npolymorphic than you expect.")),(0,i.mdx)("h3",{id:"toc-syntax-of-generics"},"Syntax of generics"),(0,i.mdx)("p",null,"There are a number of different places where generic types appear in syntax."),(0,i.mdx)("h3",{id:"toc-functions-with-generics"},"Functions with generics"),(0,i.mdx)("p",null,"Functions can create generics by adding the type parameter list ",(0,i.mdx)("inlineCode",{parentName:"p"},"<T>")," before\nthe function parameter list."),(0,i.mdx)("p",null,"You can use generics in the same places you'd add any other type in a function\n(parameter or return types)."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function method<T>(param: T): T {\n return param;\n}\n\nconst f = function<T>(param: T): T {\n return param;\n}\n")),(0,i.mdx)("h3",{id:"toc-function-types-with-generics"},"Function types with generics"),(0,i.mdx)("p",null,"Function types can create generics in the same way as normal functions, by\nadding the type parameter list ",(0,i.mdx)("inlineCode",{parentName:"p"},"<T>")," before the function type parameter list."),(0,i.mdx)("p",null,"You can use generics in the same places you'd add any other type in a function\ntype (parameter or return types)."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"<T>(param: T) => T\n")),(0,i.mdx)("p",null,"Which then gets used as its own type."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function method(func: <T>(param: T) => T) {\n // ...\n}\n")),(0,i.mdx)("h3",{id:"toc-classes-with-generics"},"Classes with generics"),(0,i.mdx)("p",null,"Classes can create generics by placing the type parameter list before the body\nof the class."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class Item<T> {\n // ...\n}\n")),(0,i.mdx)("p",null,"You can use generics in the same places you'd add any other type in a class\n(property types and method parameter/return types)."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class Item<T> {\n prop: T;\n\n constructor(param: T) {\n this.prop = param;\n }\n\n method(): T {\n return this.prop;\n }\n}\n")),(0,i.mdx)("h3",{id:"toc-type-aliases-with-generics"},"Type aliases with generics"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Item<T> = {\n foo: T,\n bar: T,\n};\n")),(0,i.mdx)("h3",{id:"toc-interfaces-with-generics"},"Interfaces with generics"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface Item<T> {\n foo: T,\n bar: T,\n}\n")),(0,i.mdx)("h3",{id:"toc-supplying-type-arguments-to-callables"},"Supplying Type Arguments to Callables"),(0,i.mdx)("p",null,"You can give callable entities type arguments for their generics directly in the call:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function doSomething<T>(param: T): T {\n // ...\n return param;\n}\n\ndoSomething<number>(3);\n")),(0,i.mdx)("p",null,"You can also give generic classes type arguments directly in the ",(0,i.mdx)("inlineCode",{parentName:"p"},"new")," expression:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class GenericClass<T> {}\nconst c = new GenericClass<number>();\n")),(0,i.mdx)("p",null,"If you only want to specify some of the type arguments, you can use ",(0,i.mdx)("inlineCode",{parentName:"p"},"_")," to let flow infer a type for you:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class GenericClass<T, U=string, V=number>{}\nconst c = new GenericClass<boolean, _, string>();\n")),(0,i.mdx)("blockquote",null,(0,i.mdx)("p",{parentName:"blockquote"},(0,i.mdx)("strong",{parentName:"p"},"Warning:")," For performance purposes, we always recommend you annotate with\nconcrete arguments when you can. ",(0,i.mdx)("inlineCode",{parentName:"p"},"_")," is not unsafe, but it is slower than explicitly\nspecifying the type arguments.")),(0,i.mdx)("h2",{id:"toc-behavior-of-generics"},"Behavior of generics"),(0,i.mdx)("h3",{id:"toc-generics-act-like-variables"},"Generics act like variables"),(0,i.mdx)("p",null,"Generic types work a lot like variables or function parameters except that they\nare used for types. You can use them whenever they are in scope."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function constant<T>(value: T): () => T {\n return function(): T {\n return value;\n };\n}\n")),(0,i.mdx)("h3",{id:"toc-create-as-many-generics-as-you-need"},"Create as many generics as you need"),(0,i.mdx)("p",null,"You can have as many of these generics as you need in the type parameter list,\nnaming them whatever you want:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function identity<One, Two, Three>(one: One, two: Two, three: Three) {\n // ...\n}\n")),(0,i.mdx)("h3",{id:"toc-generics-track-values-around"},"Generics track values around"),(0,i.mdx)("p",null,"When using a generic type for a value, Flow will track the value and make sure\nthat you aren't replacing it with something else."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":10,"endLine":2,"endColumn":14,"description":"Cannot return `\\"foo\\"` because string [1] is incompatible with `T` [2]. [incompatible-return]"},{"startLine":5,"startColumn":10,"endLine":5,"endColumn":17,"description":"Cannot declare `identity` [1] because the name is already bound. [name-already-bound]"},{"startLine":6,"startColumn":11,"endLine":6,"endColumn":15,"description":"Cannot assign `\\"foo\\"` to `value` because string [1] is incompatible with `T` [2]. [incompatible-type]"},{"startLine":7,"startColumn":10,"endLine":7,"endColumn":14,"description":"Cannot return `value` because string [1] is incompatible with `T` [2]. [incompatible-return]"}]','[{"startLine":2,"startColumn":10,"endLine":2,"endColumn":14,"description":"Cannot':!0,return:!0,'`\\"foo\\"`':!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"`T`":!0,"[2].":!0,'[incompatible-return]"},{"startLine":5,"startColumn":10,"endLine":5,"endColumn":17,"description":"Cannot':!0,declare:!0,"`identity`":!0,the:!0,name:!0,already:!0,"bound.":!0,'[name-already-bound]"},{"startLine":6,"startColumn":11,"endLine":6,"endColumn":15,"description":"Cannot':!0,assign:!0,to:!0,"`value`":!0,'[incompatible-type]"},{"startLine":7,"startColumn":10,"endLine":7,"endColumn":14,"description":"Cannot':!0,'[incompatible-return]"}]':!0},'function identity<T>(value: T): T {\n return "foo"; // Error!\n}\n\nfunction identity<T>(value: T): T {\n value = "foo"; // Error!\n return value; // Error!\n}\n')),(0,i.mdx)("p",null,"Flow tracks the specific type of the value you pass through a generic, letting\nyou use it later."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":16,"endLine":7,"endColumn":27,"description":"Cannot assign `identity(...)` to `three` because number [1] is incompatible with number literal `3` [2]. [incompatible-type]"}]','[{"startLine":7,"startColumn":16,"endLine":7,"endColumn":27,"description":"Cannot':!0,assign:!0,"`identity(...)`":!0,to:!0,"`three`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,literal:!0,"`3`":!0,"[2].":!0,'[incompatible-type]"}]':!0},"function identity<T>(value: T): T {\n return value;\n}\n\nlet one: 1 = identity(1);\nlet two: 2 = identity(2);\nlet three: 3 = identity(42); // Error\n")),(0,i.mdx)("h3",{id:"toc-adding-types-to-generics"},"Adding types to generics"),(0,i.mdx)("p",null,"Similar to ",(0,i.mdx)("inlineCode",{parentName:"p"},"mixed"),', generics have an "unknown" type. You\'re not allowed to use\na generic as if it were a specific type.'),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":19,"endLine":2,"endColumn":21,"description":"Cannot get `obj.foo` because property `foo` is missing in mixed [1]. [incompatible-use]"}]','[{"startLine":2,"startColumn":19,"endLine":2,"endColumn":21,"description":"Cannot':!0,get:!0,"`obj.foo`":!0,because:!0,property:!0,"`foo`":!0,is:!0,missing:!0,in:!0,mixed:!0,"[1].":!0,'[incompatible-use]"}]':!0},"function logFoo<T>(obj: T): T {\n console.log(obj.foo); // Error!\n return obj;\n}\n")),(0,i.mdx)("p",null,"You could refine the type, but the generic will still allow any type to be\npassed in."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function logFoo<T>(obj: T): T {\n if (obj && obj.foo) {\n console.log(obj.foo); // Works.\n }\n return obj;\n}\n\nlogFoo({ foo: 'foo', bar: 'bar' }); // Works.\nlogFoo({ bar: 'bar' }); // Works. :(\n")),(0,i.mdx)("p",null,"Instead, you could add a type to your generic like you would with a function\nparameter."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":8,"endLine":7,"endColumn":21,"description":"Cannot call `logFoo` because property `foo` is missing in object literal [1] but exists in object type [2] in type argument `T`. [prop-missing]"}]','[{"startLine":7,"startColumn":8,"endLine":7,"endColumn":21,"description":"Cannot':!0,call:!0,"`logFoo`":!0,because:!0,property:!0,"`foo`":!0,is:!0,missing:!0,in:!0,object:!0,literal:!0,"[1]":!0,but:!0,exists:!0,type:!0,"[2]":!0,argument:!0,"`T`.":!0,'[prop-missing]"}]':!0},"function logFoo<T: {foo: string, ...}>(obj: T): T {\n console.log(obj.foo); // Works!\n return obj;\n}\n\nlogFoo({ foo: 'foo', bar: 'bar' }); // Works!\nlogFoo({ bar: 'bar' }); // Error!\n")),(0,i.mdx)("p",null,"This way you can keep the behavior of generics while only allowing certain\ntypes to be used."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":8,"startColumn":31,"endLine":8,"endColumn":37,"description":"Cannot call `identity` because string [1] is incompatible with number [2] in type argument `T`. [incompatible-call]"}]','[{"startLine":8,"startColumn":31,"endLine":8,"endColumn":37,"description":"Cannot':!0,call:!0,"`identity`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2]":!0,in:!0,type:!0,argument:!0,"`T`.":!0,'[incompatible-call]"}]':!0},'function identity<T: number>(value: T): T {\n return value;\n}\n\nlet one: 1 = identity(1);\nlet two: 2 = identity(2);\n// $ExpectError\nlet three: "three" = identity("three");\n')),(0,i.mdx)("h3",{id:"toc-generic-types-act-as-bounds"},"Generic types act as bounds"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function identity<T>(val: T): T {\n return val;\n}\n\nlet foo: 'foo' = 'foo'; // Works!\nlet bar: 'bar' = identity('bar'); // Works!\n")),(0,i.mdx)("p",null,'In Flow, most of the time when you pass one type into another you lose the\noriginal type. So that when you pass a specific type into a less specific one\nFlow "forgets" it was once something more specific.'),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":18,"endLine":7,"endColumn":32,"description":"Cannot assign `identity(...)` to `bar` because string [1] is incompatible with string literal `bar` [2]. [incompatible-type]"}]','[{"startLine":7,"startColumn":18,"endLine":7,"endColumn":32,"description":"Cannot':!0,assign:!0,"`identity(...)`":!0,to:!0,"`bar`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,literal:!0,"[2].":!0,'[incompatible-type]"}]':!0},"function identity(val: string): string {\n return val;\n}\n\nlet foo: 'foo' = 'foo'; // Works!\n// $ExpectError\nlet bar: 'bar' = identity('bar'); // Error!\n")),(0,i.mdx)("p",null,'Generics allow you to hold onto the more specific type while adding a\nconstraint. In this way types on generics act as "bounds".'),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function identity<T: string>(val: T): T {\n return val;\n}\n\nlet foo: 'foo' = 'foo'; // Works!\nlet bar: 'bar' = identity('bar'); // Works!\n")),(0,i.mdx)("p",null,"Note that when you have a value with a bound generic type, you can't use it as\nif it were a more specific type."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":21,"endLine":3,"endColumn":23,"description":"Cannot assign `val` to `bar` because string [1] is incompatible with string literal `bar` [2]. [incompatible-type]"}]','[{"startLine":3,"startColumn":21,"endLine":3,"endColumn":23,"description":"Cannot':!0,assign:!0,"`val`":!0,to:!0,"`bar`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,literal:!0,"[2].":!0,'[incompatible-type]"}]':!0},"function identity<T: string>(val: T): T {\n let str: string = val; // Works!\n let bar: 'bar' = val; // Error!\n return val;\n}\n\nidentity('bar');\n")),(0,i.mdx)("h3",{id:"toc-parameterized-generics"},"Parameterized generics"),(0,i.mdx)("p",null,"Generics sometimes allow you to pass types in like arguments to a function.\nThese are known as parameterized generics (or parametric polymorphism)."),(0,i.mdx)("p",null,"For example, a type alias with a generic is parameterized. When you go to use\nit you will have to provide a type argument."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'type Item<T> = {\n prop: T,\n}\n\nlet item: Item<string> = {\n prop: "value"\n};\n')),(0,i.mdx)("p",null,"You can think of this like passing arguments to a function, only the return\nvalue is a type that you can use."),(0,i.mdx)("p",null,"Classes (when being used as a type), type aliases, and interfaces all require\nthat you pass type arguments. Functions and function types do not have\nparameterized generics."),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},(0,i.mdx)("em",{parentName:"strong"},"Classes"))),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",1:!0,className:"language-flow",metastring:'[{"startLine":9,"startColumn":12,"endLine":9,"endColumn":15,"description":"Cannot use `Item` [1] without 1 type argument. [missing-type-arg]"}]','[{"startLine":9,"startColumn":12,"endLine":9,"endColumn":15,"description":"Cannot':!0,use:!0,"`Item`":!0,"[1]":!0,without:!0,type:!0,"argument.":!0,'[missing-type-arg]"}]':!0},"class Item<T> {\n prop: T;\n constructor(param: T) {\n this.prop = param;\n }\n}\n\nlet item1: Item<number> = new Item(42); // Works!\nlet item2: Item = new Item(42); // Error!\n")),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},(0,i.mdx)("em",{parentName:"strong"},"Type Aliases"))),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",1:!0,className:"language-flow",metastring:'[{"startLine":6,"startColumn":12,"endLine":6,"endColumn":15,"description":"Cannot use `Item` [1] without 1 type argument. [missing-type-arg]"}]','[{"startLine":6,"startColumn":12,"endLine":6,"endColumn":15,"description":"Cannot':!0,use:!0,"`Item`":!0,"[1]":!0,without:!0,type:!0,"argument.":!0,'[missing-type-arg]"}]':!0},"type Item<T> = {\n prop: T,\n};\n\nlet item1: Item<number> = { prop: 42 }; // Works!\nlet item2: Item = { prop: 42 }; // Error!\n")),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},(0,i.mdx)("em",{parentName:"strong"},"Interfaces"))),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",1:!0,className:"language-flow",metastring:'[{"startLine":10,"startColumn":18,"endLine":10,"endColumn":24,"description":"Cannot use `HasProp` [1] without 1 type argument. [missing-type-arg]"}]','[{"startLine":10,"startColumn":18,"endLine":10,"endColumn":24,"description":"Cannot':!0,use:!0,"`HasProp`":!0,"[1]":!0,without:!0,type:!0,"argument.":!0,'[missing-type-arg]"}]':!0},"interface HasProp<T> {\n prop: T,\n}\n\nclass Item {\n prop: string;\n}\n\n(Item.prototype: HasProp<string>); // Works!\n(Item.prototype: HasProp); // Error!\n")),(0,i.mdx)("h3",{id:"toc-adding-defaults-to-parameterized-generics"},"Adding defaults to parameterized generics"),(0,i.mdx)("p",null,"You can also provide defaults for parameterized generics just like parameters\nof a function."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Item<T: number = 1> = {\n prop: T,\n};\n\nlet foo: Item<> = { prop: 1 };\nlet bar: Item<2> = { prop: 2 };\n")),(0,i.mdx)("p",null,"You must always include the brackets ",(0,i.mdx)("inlineCode",{parentName:"p"},"<>")," when using the type (just like\nparentheses for a function call)."),(0,i.mdx)("h3",{id:"toc-variance-sigils"},"Variance Sigils"),(0,i.mdx)("p",null,"You can also specify the subtyping behavior of a generic via variance sigils.\nBy default, generics behave invariantly, but you may add a ",(0,i.mdx)("inlineCode",{parentName:"p"},"+")," to their\ndeclaration to make them behave covariantly, or a ",(0,i.mdx)("inlineCode",{parentName:"p"},"-")," to their declaration to\nmake them behave contravariantly. See ",(0,i.mdx)("a",{parentName:"p",href:"../../lang/variance"},"our docs on variance"),"\nfor a more information on variance in Flow."),(0,i.mdx)("p",null,"Variance sigils allow you to be more specific about how you intend to\nuse your generics, giving Flow the power to do more precise type checking.\nFor example, you may want this relationship to hold:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type GenericBox<+T> = T;\n\nvar x: GenericBox<number> = 3;\n(x: GenericBox<number| string>);\n")),(0,i.mdx)("p",null,"The example above could not be accomplished without the ",(0,i.mdx)("inlineCode",{parentName:"p"},"+")," variance sigil:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":2,"endLine":4,"endColumn":2,"description":"Cannot cast `x` to `GenericBoxError` because string [1] is incompatible with number [2] in type argument `T` [3]. [incompatible-cast]"}]','[{"startLine":4,"startColumn":2,"endLine":4,"endColumn":2,"description":"Cannot':!0,cast:!0,"`x`":!0,to:!0,"`GenericBoxError`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2]":!0,in:!0,type:!0,argument:!0,"`T`":!0,"[3].":!0,'[incompatible-cast]"}]':!0},"type GenericBoxError<T> = T;\n\nvar x: GenericBoxError<number> = 3;\n(x: GenericBoxError<number| string>); // number | string is not compatible with number.\n")),(0,i.mdx)("p",null,"Note that if you annotate your generic with variance sigils then Flow will\ncheck to make sure those types only appear in positions that make sense for\nthat variance sigil. For example, you cannot declare a generic type parameter\nto behave covariantly and use it in a contravariant position:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":34,"endLine":1,"endColumn":34,"description":"Cannot use `T` [1] in an input position because `T` [1] is expected to occur only in output positions. [incompatible-variance]"}]','[{"startLine":1,"startColumn":34,"endLine":1,"endColumn":34,"description":"Cannot':!0,use:!0,"`T`":!0,"[1]":!0,in:!0,an:!0,input:!0,position:!0,because:!0,is:!0,expected:!0,to:!0,occur:!0,only:!0,output:!0,"positions.":!0,'[incompatible-variance]"}]':!0},"type NotActuallyCovariant<+T> = (T) => void;\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8401.8631a32b.js b/assets/js/8401.8631a32b.js new file mode 100644 index 00000000000..ab40154ccfa --- /dev/null +++ b/assets/js/8401.8631a32b.js @@ -0,0 +1,1130 @@ +"use strict"; +exports.id = 8401; +exports.ids = [8401]; +exports.modules = { + +/***/ 78401: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Adapter": () => (/* binding */ Adapter), +/* harmony export */ "CodeActionAdaptor": () => (/* binding */ CodeActionAdaptor), +/* harmony export */ "DefinitionAdapter": () => (/* binding */ DefinitionAdapter), +/* harmony export */ "DiagnosticsAdapter": () => (/* binding */ DiagnosticsAdapter), +/* harmony export */ "FormatAdapter": () => (/* binding */ FormatAdapter), +/* harmony export */ "FormatHelper": () => (/* binding */ FormatHelper), +/* harmony export */ "FormatOnTypeAdapter": () => (/* binding */ FormatOnTypeAdapter), +/* harmony export */ "InlayHintsAdapter": () => (/* binding */ InlayHintsAdapter), +/* harmony export */ "Kind": () => (/* binding */ Kind), +/* harmony export */ "LibFiles": () => (/* binding */ LibFiles), +/* harmony export */ "OccurrencesAdapter": () => (/* binding */ OccurrencesAdapter), +/* harmony export */ "OutlineAdapter": () => (/* binding */ OutlineAdapter), +/* harmony export */ "QuickInfoAdapter": () => (/* binding */ QuickInfoAdapter), +/* harmony export */ "ReferenceAdapter": () => (/* binding */ ReferenceAdapter), +/* harmony export */ "RenameAdapter": () => (/* binding */ RenameAdapter), +/* harmony export */ "SignatureHelpAdapter": () => (/* binding */ SignatureHelpAdapter), +/* harmony export */ "SuggestAdapter": () => (/* binding */ SuggestAdapter), +/* harmony export */ "WorkerManager": () => (/* binding */ WorkerManager), +/* harmony export */ "flattenDiagnosticMessageText": () => (/* binding */ flattenDiagnosticMessageText), +/* harmony export */ "getJavaScriptWorker": () => (/* binding */ getJavaScriptWorker), +/* harmony export */ "getTypeScriptWorker": () => (/* binding */ getTypeScriptWorker), +/* harmony export */ "setupJavaScript": () => (/* binding */ setupJavaScript), +/* harmony export */ "setupTypeScript": () => (/* binding */ setupTypeScript) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38139); +/* harmony import */ var _monaco_contribution_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39585); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/language/typescript/workerManager.ts +var WorkerManager = class { + constructor(_modeId, _defaults) { + this._modeId = _modeId; + this._defaults = _defaults; + this._worker = null; + this._client = null; + this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker()); + this._updateExtraLibsToken = 0; + this._extraLibsChangeListener = this._defaults.onDidExtraLibsChange(() => this._updateExtraLibs()); + } + _configChangeListener; + _updateExtraLibsToken; + _extraLibsChangeListener; + _worker; + _client; + dispose() { + this._configChangeListener.dispose(); + this._extraLibsChangeListener.dispose(); + this._stopWorker(); + } + _stopWorker() { + if (this._worker) { + this._worker.dispose(); + this._worker = null; + } + this._client = null; + } + async _updateExtraLibs() { + if (!this._worker) { + return; + } + const myToken = ++this._updateExtraLibsToken; + const proxy = await this._worker.getProxy(); + if (this._updateExtraLibsToken !== myToken) { + return; + } + proxy.updateExtraLibs(this._defaults.getExtraLibs()); + } + _getClient() { + if (!this._client) { + this._client = (async () => { + this._worker = monaco_editor_core_exports.editor.createWebWorker({ + moduleId: "vs/language/typescript/tsWorker", + label: this._modeId, + keepIdleModels: true, + createData: { + compilerOptions: this._defaults.getCompilerOptions(), + extraLibs: this._defaults.getExtraLibs(), + customWorkerPath: this._defaults.workerOptions.customWorkerPath, + inlayHintsOptions: this._defaults.inlayHintsOptions + } + }); + if (this._defaults.getEagerModelSync()) { + return await this._worker.withSyncedResources(monaco_editor_core_exports.editor.getModels().filter((model) => model.getLanguageId() === this._modeId).map((model) => model.uri)); + } + return await this._worker.getProxy(); + })(); + } + return this._client; + } + async getLanguageServiceWorker(...resources) { + const client = await this._getClient(); + if (this._worker) { + await this._worker.withSyncedResources(resources); + } + return client; + } +}; + +// src/language/typescript/languageFeatures.ts + + +// src/language/typescript/lib/lib.index.ts +var libFileSet = {}; +libFileSet["lib.d.ts"] = true; +libFileSet["lib.dom.d.ts"] = true; +libFileSet["lib.dom.iterable.d.ts"] = true; +libFileSet["lib.es2015.collection.d.ts"] = true; +libFileSet["lib.es2015.core.d.ts"] = true; +libFileSet["lib.es2015.d.ts"] = true; +libFileSet["lib.es2015.generator.d.ts"] = true; +libFileSet["lib.es2015.iterable.d.ts"] = true; +libFileSet["lib.es2015.promise.d.ts"] = true; +libFileSet["lib.es2015.proxy.d.ts"] = true; +libFileSet["lib.es2015.reflect.d.ts"] = true; +libFileSet["lib.es2015.symbol.d.ts"] = true; +libFileSet["lib.es2015.symbol.wellknown.d.ts"] = true; +libFileSet["lib.es2016.array.include.d.ts"] = true; +libFileSet["lib.es2016.d.ts"] = true; +libFileSet["lib.es2016.full.d.ts"] = true; +libFileSet["lib.es2017.d.ts"] = true; +libFileSet["lib.es2017.full.d.ts"] = true; +libFileSet["lib.es2017.intl.d.ts"] = true; +libFileSet["lib.es2017.object.d.ts"] = true; +libFileSet["lib.es2017.sharedmemory.d.ts"] = true; +libFileSet["lib.es2017.string.d.ts"] = true; +libFileSet["lib.es2017.typedarrays.d.ts"] = true; +libFileSet["lib.es2018.asyncgenerator.d.ts"] = true; +libFileSet["lib.es2018.asynciterable.d.ts"] = true; +libFileSet["lib.es2018.d.ts"] = true; +libFileSet["lib.es2018.full.d.ts"] = true; +libFileSet["lib.es2018.intl.d.ts"] = true; +libFileSet["lib.es2018.promise.d.ts"] = true; +libFileSet["lib.es2018.regexp.d.ts"] = true; +libFileSet["lib.es2019.array.d.ts"] = true; +libFileSet["lib.es2019.d.ts"] = true; +libFileSet["lib.es2019.full.d.ts"] = true; +libFileSet["lib.es2019.object.d.ts"] = true; +libFileSet["lib.es2019.string.d.ts"] = true; +libFileSet["lib.es2019.symbol.d.ts"] = true; +libFileSet["lib.es2020.bigint.d.ts"] = true; +libFileSet["lib.es2020.d.ts"] = true; +libFileSet["lib.es2020.full.d.ts"] = true; +libFileSet["lib.es2020.intl.d.ts"] = true; +libFileSet["lib.es2020.promise.d.ts"] = true; +libFileSet["lib.es2020.sharedmemory.d.ts"] = true; +libFileSet["lib.es2020.string.d.ts"] = true; +libFileSet["lib.es2020.symbol.wellknown.d.ts"] = true; +libFileSet["lib.es2021.d.ts"] = true; +libFileSet["lib.es2021.full.d.ts"] = true; +libFileSet["lib.es2021.intl.d.ts"] = true; +libFileSet["lib.es2021.promise.d.ts"] = true; +libFileSet["lib.es2021.string.d.ts"] = true; +libFileSet["lib.es2021.weakref.d.ts"] = true; +libFileSet["lib.es5.d.ts"] = true; +libFileSet["lib.es6.d.ts"] = true; +libFileSet["lib.esnext.d.ts"] = true; +libFileSet["lib.esnext.full.d.ts"] = true; +libFileSet["lib.esnext.intl.d.ts"] = true; +libFileSet["lib.esnext.promise.d.ts"] = true; +libFileSet["lib.esnext.string.d.ts"] = true; +libFileSet["lib.esnext.weakref.d.ts"] = true; +libFileSet["lib.scripthost.d.ts"] = true; +libFileSet["lib.webworker.d.ts"] = true; +libFileSet["lib.webworker.importscripts.d.ts"] = true; +libFileSet["lib.webworker.iterable.d.ts"] = true; + +// src/language/typescript/languageFeatures.ts +function flattenDiagnosticMessageText(diag, newLine, indent = 0) { + if (typeof diag === "string") { + return diag; + } else if (diag === void 0) { + return ""; + } + let result = ""; + if (indent) { + result += newLine; + for (let i = 0; i < indent; i++) { + result += " "; + } + } + result += diag.messageText; + indent++; + if (diag.next) { + for (const kid of diag.next) { + result += flattenDiagnosticMessageText(kid, newLine, indent); + } + } + return result; +} +function displayPartsToString(displayParts) { + if (displayParts) { + return displayParts.map((displayPart) => displayPart.text).join(""); + } + return ""; +} +var Adapter = class { + constructor(_worker) { + this._worker = _worker; + } + _textSpanToRange(model, span) { + let p1 = model.getPositionAt(span.start); + let p2 = model.getPositionAt(span.start + span.length); + let { lineNumber: startLineNumber, column: startColumn } = p1; + let { lineNumber: endLineNumber, column: endColumn } = p2; + return { startLineNumber, startColumn, endLineNumber, endColumn }; + } +}; +var LibFiles = class { + constructor(_worker) { + this._worker = _worker; + this._libFiles = {}; + this._hasFetchedLibFiles = false; + this._fetchLibFilesPromise = null; + } + _libFiles; + _hasFetchedLibFiles; + _fetchLibFilesPromise; + isLibFile(uri) { + if (!uri) { + return false; + } + if (uri.path.indexOf("/lib.") === 0) { + return !!libFileSet[uri.path.slice(1)]; + } + return false; + } + getOrCreateModel(fileName) { + const uri = monaco_editor_core_exports.Uri.parse(fileName); + const model = monaco_editor_core_exports.editor.getModel(uri); + if (model) { + return model; + } + if (this.isLibFile(uri) && this._hasFetchedLibFiles) { + return monaco_editor_core_exports.editor.createModel(this._libFiles[uri.path.slice(1)], "typescript", uri); + } + const matchedLibFile = _monaco_contribution_js__WEBPACK_IMPORTED_MODULE_1__/* .typescriptDefaults.getExtraLibs */ .TG.getExtraLibs()[fileName]; + if (matchedLibFile) { + return monaco_editor_core_exports.editor.createModel(matchedLibFile.content, "typescript", uri); + } + return null; + } + _containsLibFile(uris) { + for (let uri of uris) { + if (this.isLibFile(uri)) { + return true; + } + } + return false; + } + async fetchLibFilesIfNecessary(uris) { + if (!this._containsLibFile(uris)) { + return; + } + await this._fetchLibFiles(); + } + _fetchLibFiles() { + if (!this._fetchLibFilesPromise) { + this._fetchLibFilesPromise = this._worker().then((w) => w.getLibFiles()).then((libFiles) => { + this._hasFetchedLibFiles = true; + this._libFiles = libFiles; + }); + } + return this._fetchLibFilesPromise; + } +}; +var DiagnosticsAdapter = class extends Adapter { + constructor(_libFiles, _defaults, _selector, worker) { + super(worker); + this._libFiles = _libFiles; + this._defaults = _defaults; + this._selector = _selector; + const onModelAdd = (model) => { + if (model.getLanguageId() !== _selector) { + return; + } + const maybeValidate = () => { + const { onlyVisible } = this._defaults.getDiagnosticsOptions(); + if (onlyVisible) { + if (model.isAttachedToEditor()) { + this._doValidate(model); + } + } else { + this._doValidate(model); + } + }; + let handle; + const changeSubscription = model.onDidChangeContent(() => { + clearTimeout(handle); + handle = window.setTimeout(maybeValidate, 500); + }); + const visibleSubscription = model.onDidChangeAttached(() => { + const { onlyVisible } = this._defaults.getDiagnosticsOptions(); + if (onlyVisible) { + if (model.isAttachedToEditor()) { + maybeValidate(); + } else { + monaco_editor_core_exports.editor.setModelMarkers(model, this._selector, []); + } + } + }); + this._listener[model.uri.toString()] = { + dispose() { + changeSubscription.dispose(); + visibleSubscription.dispose(); + clearTimeout(handle); + } + }; + maybeValidate(); + }; + const onModelRemoved = (model) => { + monaco_editor_core_exports.editor.setModelMarkers(model, this._selector, []); + const key = model.uri.toString(); + if (this._listener[key]) { + this._listener[key].dispose(); + delete this._listener[key]; + } + }; + this._disposables.push(monaco_editor_core_exports.editor.onDidCreateModel((model) => onModelAdd(model))); + this._disposables.push(monaco_editor_core_exports.editor.onWillDisposeModel(onModelRemoved)); + this._disposables.push(monaco_editor_core_exports.editor.onDidChangeModelLanguage((event) => { + onModelRemoved(event.model); + onModelAdd(event.model); + })); + this._disposables.push({ + dispose() { + for (const model of monaco_editor_core_exports.editor.getModels()) { + onModelRemoved(model); + } + } + }); + const recomputeDiagostics = () => { + for (const model of monaco_editor_core_exports.editor.getModels()) { + onModelRemoved(model); + onModelAdd(model); + } + }; + this._disposables.push(this._defaults.onDidChange(recomputeDiagostics)); + this._disposables.push(this._defaults.onDidExtraLibsChange(recomputeDiagostics)); + monaco_editor_core_exports.editor.getModels().forEach((model) => onModelAdd(model)); + } + _disposables = []; + _listener = /* @__PURE__ */ Object.create(null); + dispose() { + this._disposables.forEach((d) => d && d.dispose()); + this._disposables = []; + } + async _doValidate(model) { + const worker = await this._worker(model.uri); + if (model.isDisposed()) { + return; + } + const promises = []; + const { noSyntaxValidation, noSemanticValidation, noSuggestionDiagnostics } = this._defaults.getDiagnosticsOptions(); + if (!noSyntaxValidation) { + promises.push(worker.getSyntacticDiagnostics(model.uri.toString())); + } + if (!noSemanticValidation) { + promises.push(worker.getSemanticDiagnostics(model.uri.toString())); + } + if (!noSuggestionDiagnostics) { + promises.push(worker.getSuggestionDiagnostics(model.uri.toString())); + } + const allDiagnostics = await Promise.all(promises); + if (!allDiagnostics || model.isDisposed()) { + return; + } + const diagnostics = allDiagnostics.reduce((p, c) => c.concat(p), []).filter((d) => (this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore || []).indexOf(d.code) === -1); + const relatedUris = diagnostics.map((d) => d.relatedInformation || []).reduce((p, c) => c.concat(p), []).map((relatedInformation) => relatedInformation.file ? monaco_editor_core_exports.Uri.parse(relatedInformation.file.fileName) : null); + await this._libFiles.fetchLibFilesIfNecessary(relatedUris); + if (model.isDisposed()) { + return; + } + monaco_editor_core_exports.editor.setModelMarkers(model, this._selector, diagnostics.map((d) => this._convertDiagnostics(model, d))); + } + _convertDiagnostics(model, diag) { + const diagStart = diag.start || 0; + const diagLength = diag.length || 1; + const { lineNumber: startLineNumber, column: startColumn } = model.getPositionAt(diagStart); + const { lineNumber: endLineNumber, column: endColumn } = model.getPositionAt(diagStart + diagLength); + const tags = []; + if (diag.reportsUnnecessary) { + tags.push(monaco_editor_core_exports.MarkerTag.Unnecessary); + } + if (diag.reportsDeprecated) { + tags.push(monaco_editor_core_exports.MarkerTag.Deprecated); + } + return { + severity: this._tsDiagnosticCategoryToMarkerSeverity(diag.category), + startLineNumber, + startColumn, + endLineNumber, + endColumn, + message: flattenDiagnosticMessageText(diag.messageText, "\n"), + code: diag.code.toString(), + tags, + relatedInformation: this._convertRelatedInformation(model, diag.relatedInformation) + }; + } + _convertRelatedInformation(model, relatedInformation) { + if (!relatedInformation) { + return []; + } + const result = []; + relatedInformation.forEach((info) => { + let relatedResource = model; + if (info.file) { + relatedResource = this._libFiles.getOrCreateModel(info.file.fileName); + } + if (!relatedResource) { + return; + } + const infoStart = info.start || 0; + const infoLength = info.length || 1; + const { lineNumber: startLineNumber, column: startColumn } = relatedResource.getPositionAt(infoStart); + const { lineNumber: endLineNumber, column: endColumn } = relatedResource.getPositionAt(infoStart + infoLength); + result.push({ + resource: relatedResource.uri, + startLineNumber, + startColumn, + endLineNumber, + endColumn, + message: flattenDiagnosticMessageText(info.messageText, "\n") + }); + }); + return result; + } + _tsDiagnosticCategoryToMarkerSeverity(category) { + switch (category) { + case 1 /* Error */: + return monaco_editor_core_exports.MarkerSeverity.Error; + case 3 /* Message */: + return monaco_editor_core_exports.MarkerSeverity.Info; + case 0 /* Warning */: + return monaco_editor_core_exports.MarkerSeverity.Warning; + case 2 /* Suggestion */: + return monaco_editor_core_exports.MarkerSeverity.Hint; + } + return monaco_editor_core_exports.MarkerSeverity.Info; + } +}; +var SuggestAdapter = class extends Adapter { + get triggerCharacters() { + return ["."]; + } + async provideCompletionItems(model, position, _context, token) { + const wordInfo = model.getWordUntilPosition(position); + const wordRange = new monaco_editor_core_exports.Range(position.lineNumber, wordInfo.startColumn, position.lineNumber, wordInfo.endColumn); + const resource = model.uri; + const offset = model.getOffsetAt(position); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const info = await worker.getCompletionsAtPosition(resource.toString(), offset); + if (!info || model.isDisposed()) { + return; + } + const suggestions = info.entries.map((entry) => { + let range = wordRange; + if (entry.replacementSpan) { + const p1 = model.getPositionAt(entry.replacementSpan.start); + const p2 = model.getPositionAt(entry.replacementSpan.start + entry.replacementSpan.length); + range = new monaco_editor_core_exports.Range(p1.lineNumber, p1.column, p2.lineNumber, p2.column); + } + const tags = []; + if (entry.kindModifiers?.indexOf("deprecated") !== -1) { + tags.push(monaco_editor_core_exports.languages.CompletionItemTag.Deprecated); + } + return { + uri: resource, + position, + offset, + range, + label: entry.name, + insertText: entry.name, + sortText: entry.sortText, + kind: SuggestAdapter.convertKind(entry.kind), + tags + }; + }); + return { + suggestions + }; + } + async resolveCompletionItem(item, token) { + const myItem = item; + const resource = myItem.uri; + const position = myItem.position; + const offset = myItem.offset; + const worker = await this._worker(resource); + const details = await worker.getCompletionEntryDetails(resource.toString(), offset, myItem.label); + if (!details) { + return myItem; + } + return { + uri: resource, + position, + label: details.name, + kind: SuggestAdapter.convertKind(details.kind), + detail: displayPartsToString(details.displayParts), + documentation: { + value: SuggestAdapter.createDocumentationString(details) + } + }; + } + static convertKind(kind) { + switch (kind) { + case Kind.primitiveType: + case Kind.keyword: + return monaco_editor_core_exports.languages.CompletionItemKind.Keyword; + case Kind.variable: + case Kind.localVariable: + return monaco_editor_core_exports.languages.CompletionItemKind.Variable; + case Kind.memberVariable: + case Kind.memberGetAccessor: + case Kind.memberSetAccessor: + return monaco_editor_core_exports.languages.CompletionItemKind.Field; + case Kind.function: + case Kind.memberFunction: + case Kind.constructSignature: + case Kind.callSignature: + case Kind.indexSignature: + return monaco_editor_core_exports.languages.CompletionItemKind.Function; + case Kind.enum: + return monaco_editor_core_exports.languages.CompletionItemKind.Enum; + case Kind.module: + return monaco_editor_core_exports.languages.CompletionItemKind.Module; + case Kind.class: + return monaco_editor_core_exports.languages.CompletionItemKind.Class; + case Kind.interface: + return monaco_editor_core_exports.languages.CompletionItemKind.Interface; + case Kind.warning: + return monaco_editor_core_exports.languages.CompletionItemKind.File; + } + return monaco_editor_core_exports.languages.CompletionItemKind.Property; + } + static createDocumentationString(details) { + let documentationString = displayPartsToString(details.documentation); + if (details.tags) { + for (const tag of details.tags) { + documentationString += ` + +${tagToString(tag)}`; + } + } + return documentationString; + } +}; +function tagToString(tag) { + let tagLabel = `*@${tag.name}*`; + if (tag.name === "param" && tag.text) { + const [paramName, ...rest] = tag.text; + tagLabel += `\`${paramName.text}\``; + if (rest.length > 0) + tagLabel += ` \u2014 ${rest.map((r) => r.text).join(" ")}`; + } else if (Array.isArray(tag.text)) { + tagLabel += ` \u2014 ${tag.text.map((r) => r.text).join(" ")}`; + } else if (tag.text) { + tagLabel += ` \u2014 ${tag.text}`; + } + return tagLabel; +} +var SignatureHelpAdapter = class extends Adapter { + signatureHelpTriggerCharacters = ["(", ","]; + static _toSignatureHelpTriggerReason(context) { + switch (context.triggerKind) { + case monaco_editor_core_exports.languages.SignatureHelpTriggerKind.TriggerCharacter: + if (context.triggerCharacter) { + if (context.isRetrigger) { + return { kind: "retrigger", triggerCharacter: context.triggerCharacter }; + } else { + return { kind: "characterTyped", triggerCharacter: context.triggerCharacter }; + } + } else { + return { kind: "invoked" }; + } + case monaco_editor_core_exports.languages.SignatureHelpTriggerKind.ContentChange: + return context.isRetrigger ? { kind: "retrigger" } : { kind: "invoked" }; + case monaco_editor_core_exports.languages.SignatureHelpTriggerKind.Invoke: + default: + return { kind: "invoked" }; + } + } + async provideSignatureHelp(model, position, token, context) { + const resource = model.uri; + const offset = model.getOffsetAt(position); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const info = await worker.getSignatureHelpItems(resource.toString(), offset, { + triggerReason: SignatureHelpAdapter._toSignatureHelpTriggerReason(context) + }); + if (!info || model.isDisposed()) { + return; + } + const ret = { + activeSignature: info.selectedItemIndex, + activeParameter: info.argumentIndex, + signatures: [] + }; + info.items.forEach((item) => { + const signature = { + label: "", + parameters: [] + }; + signature.documentation = { + value: displayPartsToString(item.documentation) + }; + signature.label += displayPartsToString(item.prefixDisplayParts); + item.parameters.forEach((p, i, a) => { + const label = displayPartsToString(p.displayParts); + const parameter = { + label, + documentation: { + value: displayPartsToString(p.documentation) + } + }; + signature.label += label; + signature.parameters.push(parameter); + if (i < a.length - 1) { + signature.label += displayPartsToString(item.separatorDisplayParts); + } + }); + signature.label += displayPartsToString(item.suffixDisplayParts); + ret.signatures.push(signature); + }); + return { + value: ret, + dispose() { + } + }; + } +}; +var QuickInfoAdapter = class extends Adapter { + async provideHover(model, position, token) { + const resource = model.uri; + const offset = model.getOffsetAt(position); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const info = await worker.getQuickInfoAtPosition(resource.toString(), offset); + if (!info || model.isDisposed()) { + return; + } + const documentation = displayPartsToString(info.documentation); + const tags = info.tags ? info.tags.map((tag) => tagToString(tag)).join(" \n\n") : ""; + const contents = displayPartsToString(info.displayParts); + return { + range: this._textSpanToRange(model, info.textSpan), + contents: [ + { + value: "```typescript\n" + contents + "\n```\n" + }, + { + value: documentation + (tags ? "\n\n" + tags : "") + } + ] + }; + } +}; +var OccurrencesAdapter = class extends Adapter { + async provideDocumentHighlights(model, position, token) { + const resource = model.uri; + const offset = model.getOffsetAt(position); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const entries = await worker.getOccurrencesAtPosition(resource.toString(), offset); + if (!entries || model.isDisposed()) { + return; + } + return entries.map((entry) => { + return { + range: this._textSpanToRange(model, entry.textSpan), + kind: entry.isWriteAccess ? monaco_editor_core_exports.languages.DocumentHighlightKind.Write : monaco_editor_core_exports.languages.DocumentHighlightKind.Text + }; + }); + } +}; +var DefinitionAdapter = class extends Adapter { + constructor(_libFiles, worker) { + super(worker); + this._libFiles = _libFiles; + } + async provideDefinition(model, position, token) { + const resource = model.uri; + const offset = model.getOffsetAt(position); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const entries = await worker.getDefinitionAtPosition(resource.toString(), offset); + if (!entries || model.isDisposed()) { + return; + } + await this._libFiles.fetchLibFilesIfNecessary(entries.map((entry) => monaco_editor_core_exports.Uri.parse(entry.fileName))); + if (model.isDisposed()) { + return; + } + const result = []; + for (let entry of entries) { + const refModel = this._libFiles.getOrCreateModel(entry.fileName); + if (refModel) { + result.push({ + uri: refModel.uri, + range: this._textSpanToRange(refModel, entry.textSpan) + }); + } + } + return result; + } +}; +var ReferenceAdapter = class extends Adapter { + constructor(_libFiles, worker) { + super(worker); + this._libFiles = _libFiles; + } + async provideReferences(model, position, context, token) { + const resource = model.uri; + const offset = model.getOffsetAt(position); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const entries = await worker.getReferencesAtPosition(resource.toString(), offset); + if (!entries || model.isDisposed()) { + return; + } + await this._libFiles.fetchLibFilesIfNecessary(entries.map((entry) => monaco_editor_core_exports.Uri.parse(entry.fileName))); + if (model.isDisposed()) { + return; + } + const result = []; + for (let entry of entries) { + const refModel = this._libFiles.getOrCreateModel(entry.fileName); + if (refModel) { + result.push({ + uri: refModel.uri, + range: this._textSpanToRange(refModel, entry.textSpan) + }); + } + } + return result; + } +}; +var OutlineAdapter = class extends Adapter { + async provideDocumentSymbols(model, token) { + const resource = model.uri; + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const items = await worker.getNavigationBarItems(resource.toString()); + if (!items || model.isDisposed()) { + return; + } + const convert = (bucket, item, containerLabel) => { + let result2 = { + name: item.text, + detail: "", + kind: outlineTypeTable[item.kind] || monaco_editor_core_exports.languages.SymbolKind.Variable, + range: this._textSpanToRange(model, item.spans[0]), + selectionRange: this._textSpanToRange(model, item.spans[0]), + tags: [] + }; + if (containerLabel) + result2.containerName = containerLabel; + if (item.childItems && item.childItems.length > 0) { + for (let child of item.childItems) { + convert(bucket, child, result2.name); + } + } + bucket.push(result2); + }; + let result = []; + items.forEach((item) => convert(result, item)); + return result; + } +}; +var Kind = class { +}; +__publicField(Kind, "unknown", ""); +__publicField(Kind, "keyword", "keyword"); +__publicField(Kind, "script", "script"); +__publicField(Kind, "module", "module"); +__publicField(Kind, "class", "class"); +__publicField(Kind, "interface", "interface"); +__publicField(Kind, "type", "type"); +__publicField(Kind, "enum", "enum"); +__publicField(Kind, "variable", "var"); +__publicField(Kind, "localVariable", "local var"); +__publicField(Kind, "function", "function"); +__publicField(Kind, "localFunction", "local function"); +__publicField(Kind, "memberFunction", "method"); +__publicField(Kind, "memberGetAccessor", "getter"); +__publicField(Kind, "memberSetAccessor", "setter"); +__publicField(Kind, "memberVariable", "property"); +__publicField(Kind, "constructorImplementation", "constructor"); +__publicField(Kind, "callSignature", "call"); +__publicField(Kind, "indexSignature", "index"); +__publicField(Kind, "constructSignature", "construct"); +__publicField(Kind, "parameter", "parameter"); +__publicField(Kind, "typeParameter", "type parameter"); +__publicField(Kind, "primitiveType", "primitive type"); +__publicField(Kind, "label", "label"); +__publicField(Kind, "alias", "alias"); +__publicField(Kind, "const", "const"); +__publicField(Kind, "let", "let"); +__publicField(Kind, "warning", "warning"); +var outlineTypeTable = /* @__PURE__ */ Object.create(null); +outlineTypeTable[Kind.module] = monaco_editor_core_exports.languages.SymbolKind.Module; +outlineTypeTable[Kind.class] = monaco_editor_core_exports.languages.SymbolKind.Class; +outlineTypeTable[Kind.enum] = monaco_editor_core_exports.languages.SymbolKind.Enum; +outlineTypeTable[Kind.interface] = monaco_editor_core_exports.languages.SymbolKind.Interface; +outlineTypeTable[Kind.memberFunction] = monaco_editor_core_exports.languages.SymbolKind.Method; +outlineTypeTable[Kind.memberVariable] = monaco_editor_core_exports.languages.SymbolKind.Property; +outlineTypeTable[Kind.memberGetAccessor] = monaco_editor_core_exports.languages.SymbolKind.Property; +outlineTypeTable[Kind.memberSetAccessor] = monaco_editor_core_exports.languages.SymbolKind.Property; +outlineTypeTable[Kind.variable] = monaco_editor_core_exports.languages.SymbolKind.Variable; +outlineTypeTable[Kind.const] = monaco_editor_core_exports.languages.SymbolKind.Variable; +outlineTypeTable[Kind.localVariable] = monaco_editor_core_exports.languages.SymbolKind.Variable; +outlineTypeTable[Kind.variable] = monaco_editor_core_exports.languages.SymbolKind.Variable; +outlineTypeTable[Kind.function] = monaco_editor_core_exports.languages.SymbolKind.Function; +outlineTypeTable[Kind.localFunction] = monaco_editor_core_exports.languages.SymbolKind.Function; +var FormatHelper = class extends Adapter { + static _convertOptions(options) { + return { + ConvertTabsToSpaces: options.insertSpaces, + TabSize: options.tabSize, + IndentSize: options.tabSize, + IndentStyle: 2 /* Smart */, + NewLineCharacter: "\n", + InsertSpaceAfterCommaDelimiter: true, + InsertSpaceAfterSemicolonInForStatements: true, + InsertSpaceBeforeAndAfterBinaryOperators: true, + InsertSpaceAfterKeywordsInControlFlowStatements: true, + InsertSpaceAfterFunctionKeywordForAnonymousFunctions: true, + InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: false, + InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: false, + InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: false, + PlaceOpenBraceOnNewLineForControlBlocks: false, + PlaceOpenBraceOnNewLineForFunctions: false + }; + } + _convertTextChanges(model, change) { + return { + text: change.newText, + range: this._textSpanToRange(model, change.span) + }; + } +}; +var FormatAdapter = class extends FormatHelper { + async provideDocumentRangeFormattingEdits(model, range, options, token) { + const resource = model.uri; + const startOffset = model.getOffsetAt({ + lineNumber: range.startLineNumber, + column: range.startColumn + }); + const endOffset = model.getOffsetAt({ + lineNumber: range.endLineNumber, + column: range.endColumn + }); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const edits = await worker.getFormattingEditsForRange(resource.toString(), startOffset, endOffset, FormatHelper._convertOptions(options)); + if (!edits || model.isDisposed()) { + return; + } + return edits.map((edit) => this._convertTextChanges(model, edit)); + } +}; +var FormatOnTypeAdapter = class extends FormatHelper { + get autoFormatTriggerCharacters() { + return [";", "}", "\n"]; + } + async provideOnTypeFormattingEdits(model, position, ch, options, token) { + const resource = model.uri; + const offset = model.getOffsetAt(position); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const edits = await worker.getFormattingEditsAfterKeystroke(resource.toString(), offset, ch, FormatHelper._convertOptions(options)); + if (!edits || model.isDisposed()) { + return; + } + return edits.map((edit) => this._convertTextChanges(model, edit)); + } +}; +var CodeActionAdaptor = class extends FormatHelper { + async provideCodeActions(model, range, context, token) { + const resource = model.uri; + const start = model.getOffsetAt({ + lineNumber: range.startLineNumber, + column: range.startColumn + }); + const end = model.getOffsetAt({ + lineNumber: range.endLineNumber, + column: range.endColumn + }); + const formatOptions = FormatHelper._convertOptions(model.getOptions()); + const errorCodes = context.markers.filter((m) => m.code).map((m) => m.code).map(Number); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const codeFixes = await worker.getCodeFixesAtPosition(resource.toString(), start, end, errorCodes, formatOptions); + if (!codeFixes || model.isDisposed()) { + return { actions: [], dispose: () => { + } }; + } + const actions = codeFixes.filter((fix) => { + return fix.changes.filter((change) => change.isNewFile).length === 0; + }).map((fix) => { + return this._tsCodeFixActionToMonacoCodeAction(model, context, fix); + }); + return { + actions, + dispose: () => { + } + }; + } + _tsCodeFixActionToMonacoCodeAction(model, context, codeFix) { + const edits = []; + for (const change of codeFix.changes) { + for (const textChange of change.textChanges) { + edits.push({ + resource: model.uri, + versionId: void 0, + textEdit: { + range: this._textSpanToRange(model, textChange.span), + text: textChange.newText + } + }); + } + } + const action = { + title: codeFix.description, + edit: { edits }, + diagnostics: context.markers, + kind: "quickfix" + }; + return action; + } +}; +var RenameAdapter = class extends Adapter { + constructor(_libFiles, worker) { + super(worker); + this._libFiles = _libFiles; + } + async provideRenameEdits(model, position, newName, token) { + const resource = model.uri; + const fileName = resource.toString(); + const offset = model.getOffsetAt(position); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const renameInfo = await worker.getRenameInfo(fileName, offset, { + allowRenameOfImportPath: false + }); + if (renameInfo.canRename === false) { + return { + edits: [], + rejectReason: renameInfo.localizedErrorMessage + }; + } + if (renameInfo.fileToRename !== void 0) { + throw new Error("Renaming files is not supported."); + } + const renameLocations = await worker.findRenameLocations(fileName, offset, false, false, false); + if (!renameLocations || model.isDisposed()) { + return; + } + const edits = []; + for (const renameLocation of renameLocations) { + const model2 = this._libFiles.getOrCreateModel(renameLocation.fileName); + if (model2) { + edits.push({ + resource: model2.uri, + versionId: void 0, + textEdit: { + range: this._textSpanToRange(model2, renameLocation.textSpan), + text: newName + } + }); + } else { + throw new Error(`Unknown file ${renameLocation.fileName}.`); + } + } + return { edits }; + } +}; +var InlayHintsAdapter = class extends Adapter { + async provideInlayHints(model, range, token) { + const resource = model.uri; + const fileName = resource.toString(); + const start = model.getOffsetAt({ + lineNumber: range.startLineNumber, + column: range.startColumn + }); + const end = model.getOffsetAt({ + lineNumber: range.endLineNumber, + column: range.endColumn + }); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return null; + } + const tsHints = await worker.provideInlayHints(fileName, start, end); + const hints = tsHints.map((hint) => { + return { + ...hint, + label: hint.text, + position: model.getPositionAt(hint.position), + kind: this._convertHintKind(hint.kind) + }; + }); + return { hints, dispose: () => { + } }; + } + _convertHintKind(kind) { + switch (kind) { + case "Parameter": + return monaco_editor_core_exports.languages.InlayHintKind.Parameter; + case "Type": + return monaco_editor_core_exports.languages.InlayHintKind.Type; + default: + return monaco_editor_core_exports.languages.InlayHintKind.Type; + } + } +}; + +// src/language/typescript/tsMode.ts +var javaScriptWorker; +var typeScriptWorker; +function setupTypeScript(defaults) { + typeScriptWorker = setupMode(defaults, "typescript"); +} +function setupJavaScript(defaults) { + javaScriptWorker = setupMode(defaults, "javascript"); +} +function getJavaScriptWorker() { + return new Promise((resolve, reject) => { + if (!javaScriptWorker) { + return reject("JavaScript not registered!"); + } + resolve(javaScriptWorker); + }); +} +function getTypeScriptWorker() { + return new Promise((resolve, reject) => { + if (!typeScriptWorker) { + return reject("TypeScript not registered!"); + } + resolve(typeScriptWorker); + }); +} +function setupMode(defaults, modeId) { + const client = new WorkerManager(modeId, defaults); + const worker = (...uris) => { + return client.getLanguageServiceWorker(...uris); + }; + const libFiles = new LibFiles(worker); + monaco_editor_core_exports.languages.registerCompletionItemProvider(modeId, new SuggestAdapter(worker)); + monaco_editor_core_exports.languages.registerSignatureHelpProvider(modeId, new SignatureHelpAdapter(worker)); + monaco_editor_core_exports.languages.registerHoverProvider(modeId, new QuickInfoAdapter(worker)); + monaco_editor_core_exports.languages.registerDocumentHighlightProvider(modeId, new OccurrencesAdapter(worker)); + monaco_editor_core_exports.languages.registerDefinitionProvider(modeId, new DefinitionAdapter(libFiles, worker)); + monaco_editor_core_exports.languages.registerReferenceProvider(modeId, new ReferenceAdapter(libFiles, worker)); + monaco_editor_core_exports.languages.registerDocumentSymbolProvider(modeId, new OutlineAdapter(worker)); + monaco_editor_core_exports.languages.registerDocumentRangeFormattingEditProvider(modeId, new FormatAdapter(worker)); + monaco_editor_core_exports.languages.registerOnTypeFormattingEditProvider(modeId, new FormatOnTypeAdapter(worker)); + monaco_editor_core_exports.languages.registerCodeActionProvider(modeId, new CodeActionAdaptor(worker)); + monaco_editor_core_exports.languages.registerRenameProvider(modeId, new RenameAdapter(libFiles, worker)); + monaco_editor_core_exports.languages.registerInlayHintsProvider(modeId, new InlayHintsAdapter(worker)); + new DiagnosticsAdapter(libFiles, defaults, modeId, worker); + return worker; +} + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8401.ba60f1a3.js b/assets/js/8401.ba60f1a3.js new file mode 100644 index 00000000000..a41300117e5 --- /dev/null +++ b/assets/js/8401.ba60f1a3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8401],{78401:(e,t,i)=>{i.r(t),i.d(t,{Adapter:()=>_,CodeActionAdaptor:()=>M,DefinitionAdapter:()=>A,DiagnosticsAdapter:()=>y,FormatAdapter:()=>N,FormatHelper:()=>O,FormatOnTypeAdapter:()=>K,InlayHintsAdapter:()=>E,Kind:()=>I,LibFiles:()=>w,OccurrencesAdapter:()=>C,OutlineAdapter:()=>F,QuickInfoAdapter:()=>v,ReferenceAdapter:()=>D,RenameAdapter:()=>R,SignatureHelpAdapter:()=>x,SuggestAdapter:()=>S,WorkerManager:()=>m,flattenDiagnosticMessageText:()=>h,getJavaScriptWorker:()=>W,getTypeScriptWorker:()=>j,setupJavaScript:()=>V,setupTypeScript:()=>H});var s,r,n=i(38139),a=i(39585),o=Object.defineProperty,l=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,d=Object.prototype.hasOwnProperty,u=(e,t,i,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of c(t))d.call(e,r)||r===i||o(e,r,{get:()=>t[r],enumerable:!(s=l(t,r))||s.enumerable});return e},g=(e,t,i)=>(((e,t,i)=>{t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i})(e,"symbol"!=typeof t?t+"":t,i),i),p={};u(p,s=n,"default"),r&&u(r,s,"default");var m=class{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange((()=>this._stopWorker())),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange((()=>this._updateExtraLibs()))}_configChangeListener;_updateExtraLibsToken;_extraLibsChangeListener;_worker;_client;dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;const e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||(this._client=(async()=>(this._worker=p.editor.createWebWorker({moduleId:"vs/language/typescript/tsWorker",label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(p.editor.getModels().filter((e=>e.getLanguageId()===this._modeId)).map((e=>e.uri))):await this._worker.getProxy()))()),this._client}async getLanguageServiceWorker(...e){const t=await this._getClient();return this._worker&&await this._worker.withSyncedResources(e),t}},b={};function h(e,t,i=0){if("string"==typeof e)return e;if(void 0===e)return"";let s="";if(i){s+=t;for(let e=0;e<i;e++)s+=" "}if(s+=e.messageText,i++,e.next)for(const r of e.next)s+=h(r,t,i);return s}function f(e){return e?e.map((e=>e.text)).join(""):""}b["lib.d.ts"]=!0,b["lib.dom.d.ts"]=!0,b["lib.dom.iterable.d.ts"]=!0,b["lib.es2015.collection.d.ts"]=!0,b["lib.es2015.core.d.ts"]=!0,b["lib.es2015.d.ts"]=!0,b["lib.es2015.generator.d.ts"]=!0,b["lib.es2015.iterable.d.ts"]=!0,b["lib.es2015.promise.d.ts"]=!0,b["lib.es2015.proxy.d.ts"]=!0,b["lib.es2015.reflect.d.ts"]=!0,b["lib.es2015.symbol.d.ts"]=!0,b["lib.es2015.symbol.wellknown.d.ts"]=!0,b["lib.es2016.array.include.d.ts"]=!0,b["lib.es2016.d.ts"]=!0,b["lib.es2016.full.d.ts"]=!0,b["lib.es2017.d.ts"]=!0,b["lib.es2017.full.d.ts"]=!0,b["lib.es2017.intl.d.ts"]=!0,b["lib.es2017.object.d.ts"]=!0,b["lib.es2017.sharedmemory.d.ts"]=!0,b["lib.es2017.string.d.ts"]=!0,b["lib.es2017.typedarrays.d.ts"]=!0,b["lib.es2018.asyncgenerator.d.ts"]=!0,b["lib.es2018.asynciterable.d.ts"]=!0,b["lib.es2018.d.ts"]=!0,b["lib.es2018.full.d.ts"]=!0,b["lib.es2018.intl.d.ts"]=!0,b["lib.es2018.promise.d.ts"]=!0,b["lib.es2018.regexp.d.ts"]=!0,b["lib.es2019.array.d.ts"]=!0,b["lib.es2019.d.ts"]=!0,b["lib.es2019.full.d.ts"]=!0,b["lib.es2019.object.d.ts"]=!0,b["lib.es2019.string.d.ts"]=!0,b["lib.es2019.symbol.d.ts"]=!0,b["lib.es2020.bigint.d.ts"]=!0,b["lib.es2020.d.ts"]=!0,b["lib.es2020.full.d.ts"]=!0,b["lib.es2020.intl.d.ts"]=!0,b["lib.es2020.promise.d.ts"]=!0,b["lib.es2020.sharedmemory.d.ts"]=!0,b["lib.es2020.string.d.ts"]=!0,b["lib.es2020.symbol.wellknown.d.ts"]=!0,b["lib.es2021.d.ts"]=!0,b["lib.es2021.full.d.ts"]=!0,b["lib.es2021.intl.d.ts"]=!0,b["lib.es2021.promise.d.ts"]=!0,b["lib.es2021.string.d.ts"]=!0,b["lib.es2021.weakref.d.ts"]=!0,b["lib.es5.d.ts"]=!0,b["lib.es6.d.ts"]=!0,b["lib.esnext.d.ts"]=!0,b["lib.esnext.full.d.ts"]=!0,b["lib.esnext.intl.d.ts"]=!0,b["lib.esnext.promise.d.ts"]=!0,b["lib.esnext.string.d.ts"]=!0,b["lib.esnext.weakref.d.ts"]=!0,b["lib.scripthost.d.ts"]=!0,b["lib.webworker.d.ts"]=!0,b["lib.webworker.importscripts.d.ts"]=!0,b["lib.webworker.iterable.d.ts"]=!0;var _=class{constructor(e){this._worker=e}_textSpanToRange(e,t){let i=e.getPositionAt(t.start),s=e.getPositionAt(t.start+t.length),{lineNumber:r,column:n}=i,{lineNumber:a,column:o}=s;return{startLineNumber:r,startColumn:n,endLineNumber:a,endColumn:o}}},w=class{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}_libFiles;_hasFetchedLibFiles;_fetchLibFilesPromise;isLibFile(e){return!!e&&(0===e.path.indexOf("/lib.")&&!!b[e.path.slice(1)])}getOrCreateModel(e){const t=p.Uri.parse(e),i=p.editor.getModel(t);if(i)return i;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return p.editor.createModel(this._libFiles[t.path.slice(1)],"typescript",t);const s=a.TG.getExtraLibs()[e];return s?p.editor.createModel(s.content,"typescript",t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){this._containsLibFile(e)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||(this._fetchLibFilesPromise=this._worker().then((e=>e.getLibFiles())).then((e=>{this._hasFetchedLibFiles=!0,this._libFiles=e}))),this._fetchLibFilesPromise}},y=class extends _{constructor(e,t,i,s){super(s),this._libFiles=e,this._defaults=t,this._selector=i;const r=e=>{if(e.getLanguageId()!==i)return;const t=()=>{const{onlyVisible:t}=this._defaults.getDiagnosticsOptions();t?e.isAttachedToEditor()&&this._doValidate(e):this._doValidate(e)};let s;const r=e.onDidChangeContent((()=>{clearTimeout(s),s=window.setTimeout(t,500)})),n=e.onDidChangeAttached((()=>{const{onlyVisible:i}=this._defaults.getDiagnosticsOptions();i&&(e.isAttachedToEditor()?t():p.editor.setModelMarkers(e,this._selector,[]))}));this._listener[e.uri.toString()]={dispose(){r.dispose(),n.dispose(),clearTimeout(s)}},t()},n=e=>{p.editor.setModelMarkers(e,this._selector,[]);const t=e.uri.toString();this._listener[t]&&(this._listener[t].dispose(),delete this._listener[t])};this._disposables.push(p.editor.onDidCreateModel((e=>r(e)))),this._disposables.push(p.editor.onWillDisposeModel(n)),this._disposables.push(p.editor.onDidChangeModelLanguage((e=>{n(e.model),r(e.model)}))),this._disposables.push({dispose(){for(const e of p.editor.getModels())n(e)}});const a=()=>{for(const e of p.editor.getModels())n(e),r(e)};this._disposables.push(this._defaults.onDidChange(a)),this._disposables.push(this._defaults.onDidExtraLibsChange(a)),p.editor.getModels().forEach((e=>r(e)))}_disposables=[];_listener=Object.create(null);dispose(){this._disposables.forEach((e=>e&&e.dispose())),this._disposables=[]}async _doValidate(e){const t=await this._worker(e.uri);if(e.isDisposed())return;const i=[],{noSyntaxValidation:s,noSemanticValidation:r,noSuggestionDiagnostics:n}=this._defaults.getDiagnosticsOptions();s||i.push(t.getSyntacticDiagnostics(e.uri.toString())),r||i.push(t.getSemanticDiagnostics(e.uri.toString())),n||i.push(t.getSuggestionDiagnostics(e.uri.toString()));const a=await Promise.all(i);if(!a||e.isDisposed())return;const o=a.reduce(((e,t)=>t.concat(e)),[]).filter((e=>-1===(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(e.code))),l=o.map((e=>e.relatedInformation||[])).reduce(((e,t)=>t.concat(e)),[]).map((e=>e.file?p.Uri.parse(e.file.fileName):null));await this._libFiles.fetchLibFilesIfNecessary(l),e.isDisposed()||p.editor.setModelMarkers(e,this._selector,o.map((t=>this._convertDiagnostics(e,t))))}_convertDiagnostics(e,t){const i=t.start||0,s=t.length||1,{lineNumber:r,column:n}=e.getPositionAt(i),{lineNumber:a,column:o}=e.getPositionAt(i+s),l=[];return t.reportsUnnecessary&&l.push(p.MarkerTag.Unnecessary),t.reportsDeprecated&&l.push(p.MarkerTag.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:r,startColumn:n,endLineNumber:a,endColumn:o,message:h(t.messageText,"\n"),code:t.code.toString(),tags:l,relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}}_convertRelatedInformation(e,t){if(!t)return[];const i=[];return t.forEach((t=>{let s=e;if(t.file&&(s=this._libFiles.getOrCreateModel(t.file.fileName)),!s)return;const r=t.start||0,n=t.length||1,{lineNumber:a,column:o}=s.getPositionAt(r),{lineNumber:l,column:c}=s.getPositionAt(r+n);i.push({resource:s.uri,startLineNumber:a,startColumn:o,endLineNumber:l,endColumn:c,message:h(t.messageText,"\n")})})),i}_tsDiagnosticCategoryToMarkerSeverity(e){switch(e){case 1:return p.MarkerSeverity.Error;case 3:return p.MarkerSeverity.Info;case 0:return p.MarkerSeverity.Warning;case 2:return p.MarkerSeverity.Hint}return p.MarkerSeverity.Info}},S=class extends _{get triggerCharacters(){return["."]}async provideCompletionItems(e,t,i,s){const r=e.getWordUntilPosition(t),n=new p.Range(t.lineNumber,r.startColumn,t.lineNumber,r.endColumn),a=e.uri,o=e.getOffsetAt(t),l=await this._worker(a);if(e.isDisposed())return;const c=await l.getCompletionsAtPosition(a.toString(),o);if(!c||e.isDisposed())return;return{suggestions:c.entries.map((i=>{let s=n;if(i.replacementSpan){const t=e.getPositionAt(i.replacementSpan.start),r=e.getPositionAt(i.replacementSpan.start+i.replacementSpan.length);s=new p.Range(t.lineNumber,t.column,r.lineNumber,r.column)}const r=[];return-1!==i.kindModifiers?.indexOf("deprecated")&&r.push(p.languages.CompletionItemTag.Deprecated),{uri:a,position:t,offset:o,range:s,label:i.name,insertText:i.name,sortText:i.sortText,kind:S.convertKind(i.kind),tags:r}}))}}async resolveCompletionItem(e,t){const i=e,s=i.uri,r=i.position,n=i.offset,a=await this._worker(s),o=await a.getCompletionEntryDetails(s.toString(),n,i.label);return o?{uri:s,position:r,label:o.name,kind:S.convertKind(o.kind),detail:f(o.displayParts),documentation:{value:S.createDocumentationString(o)}}:i}static convertKind(e){switch(e){case I.primitiveType:case I.keyword:return p.languages.CompletionItemKind.Keyword;case I.variable:case I.localVariable:return p.languages.CompletionItemKind.Variable;case I.memberVariable:case I.memberGetAccessor:case I.memberSetAccessor:return p.languages.CompletionItemKind.Field;case I.function:case I.memberFunction:case I.constructSignature:case I.callSignature:case I.indexSignature:return p.languages.CompletionItemKind.Function;case I.enum:return p.languages.CompletionItemKind.Enum;case I.module:return p.languages.CompletionItemKind.Module;case I.class:return p.languages.CompletionItemKind.Class;case I.interface:return p.languages.CompletionItemKind.Interface;case I.warning:return p.languages.CompletionItemKind.File}return p.languages.CompletionItemKind.Property}static createDocumentationString(e){let t=f(e.documentation);if(e.tags)for(const i of e.tags)t+=`\n\n${k(i)}`;return t}};function k(e){let t=`*@${e.name}*`;if("param"===e.name&&e.text){const[i,...s]=e.text;t+=`\`${i.text}\``,s.length>0&&(t+=` \u2014 ${s.map((e=>e.text)).join(" ")}`)}else Array.isArray(e.text)?t+=` \u2014 ${e.text.map((e=>e.text)).join(" ")}`:e.text&&(t+=` \u2014 ${e.text}`);return t}var x=class extends _{signatureHelpTriggerCharacters=["(",","];static _toSignatureHelpTriggerReason(e){switch(e.triggerKind){case p.languages.SignatureHelpTriggerKind.TriggerCharacter:return e.triggerCharacter?e.isRetrigger?{kind:"retrigger",triggerCharacter:e.triggerCharacter}:{kind:"characterTyped",triggerCharacter:e.triggerCharacter}:{kind:"invoked"};case p.languages.SignatureHelpTriggerKind.ContentChange:return e.isRetrigger?{kind:"retrigger"}:{kind:"invoked"};case p.languages.SignatureHelpTriggerKind.Invoke:default:return{kind:"invoked"}}}async provideSignatureHelp(e,t,i,s){const r=e.uri,n=e.getOffsetAt(t),a=await this._worker(r);if(e.isDisposed())return;const o=await a.getSignatureHelpItems(r.toString(),n,{triggerReason:x._toSignatureHelpTriggerReason(s)});if(!o||e.isDisposed())return;const l={activeSignature:o.selectedItemIndex,activeParameter:o.argumentIndex,signatures:[]};return o.items.forEach((e=>{const t={label:"",parameters:[]};t.documentation={value:f(e.documentation)},t.label+=f(e.prefixDisplayParts),e.parameters.forEach(((i,s,r)=>{const n=f(i.displayParts),a={label:n,documentation:{value:f(i.documentation)}};t.label+=n,t.parameters.push(a),s<r.length-1&&(t.label+=f(e.separatorDisplayParts))})),t.label+=f(e.suffixDisplayParts),l.signatures.push(t)})),{value:l,dispose(){}}}},v=class extends _{async provideHover(e,t,i){const s=e.uri,r=e.getOffsetAt(t),n=await this._worker(s);if(e.isDisposed())return;const a=await n.getQuickInfoAtPosition(s.toString(),r);if(!a||e.isDisposed())return;const o=f(a.documentation),l=a.tags?a.tags.map((e=>k(e))).join(" \n\n"):"",c=f(a.displayParts);return{range:this._textSpanToRange(e,a.textSpan),contents:[{value:"```typescript\n"+c+"\n```\n"},{value:o+(l?"\n\n"+l:"")}]}}},C=class extends _{async provideDocumentHighlights(e,t,i){const s=e.uri,r=e.getOffsetAt(t),n=await this._worker(s);if(e.isDisposed())return;const a=await n.getOccurrencesAtPosition(s.toString(),r);return a&&!e.isDisposed()?a.map((t=>({range:this._textSpanToRange(e,t.textSpan),kind:t.isWriteAccess?p.languages.DocumentHighlightKind.Write:p.languages.DocumentHighlightKind.Text}))):void 0}},A=class extends _{constructor(e,t){super(t),this._libFiles=e}async provideDefinition(e,t,i){const s=e.uri,r=e.getOffsetAt(t),n=await this._worker(s);if(e.isDisposed())return;const a=await n.getDefinitionAtPosition(s.toString(),r);if(!a||e.isDisposed())return;if(await this._libFiles.fetchLibFilesIfNecessary(a.map((e=>p.Uri.parse(e.fileName)))),e.isDisposed())return;const o=[];for(let l of a){const e=this._libFiles.getOrCreateModel(l.fileName);e&&o.push({uri:e.uri,range:this._textSpanToRange(e,l.textSpan)})}return o}},D=class extends _{constructor(e,t){super(t),this._libFiles=e}async provideReferences(e,t,i,s){const r=e.uri,n=e.getOffsetAt(t),a=await this._worker(r);if(e.isDisposed())return;const o=await a.getReferencesAtPosition(r.toString(),n);if(!o||e.isDisposed())return;if(await this._libFiles.fetchLibFilesIfNecessary(o.map((e=>p.Uri.parse(e.fileName)))),e.isDisposed())return;const l=[];for(let c of o){const e=this._libFiles.getOrCreateModel(c.fileName);e&&l.push({uri:e.uri,range:this._textSpanToRange(e,c.textSpan)})}return l}},F=class extends _{async provideDocumentSymbols(e,t){const i=e.uri,s=await this._worker(i);if(e.isDisposed())return;const r=await s.getNavigationBarItems(i.toString());if(!r||e.isDisposed())return;const n=(t,i,s)=>{let r={name:i.text,detail:"",kind:L[i.kind]||p.languages.SymbolKind.Variable,range:this._textSpanToRange(e,i.spans[0]),selectionRange:this._textSpanToRange(e,i.spans[0]),tags:[]};if(s&&(r.containerName=s),i.childItems&&i.childItems.length>0)for(let e of i.childItems)n(t,e,r.name);t.push(r)};let a=[];return r.forEach((e=>n(a,e))),a}},I=class{};g(I,"unknown",""),g(I,"keyword","keyword"),g(I,"script","script"),g(I,"module","module"),g(I,"class","class"),g(I,"interface","interface"),g(I,"type","type"),g(I,"enum","enum"),g(I,"variable","var"),g(I,"localVariable","local var"),g(I,"function","function"),g(I,"localFunction","local function"),g(I,"memberFunction","method"),g(I,"memberGetAccessor","getter"),g(I,"memberSetAccessor","setter"),g(I,"memberVariable","property"),g(I,"constructorImplementation","constructor"),g(I,"callSignature","call"),g(I,"indexSignature","index"),g(I,"constructSignature","construct"),g(I,"parameter","parameter"),g(I,"typeParameter","type parameter"),g(I,"primitiveType","primitive type"),g(I,"label","label"),g(I,"alias","alias"),g(I,"const","const"),g(I,"let","let"),g(I,"warning","warning");var L=Object.create(null);L[I.module]=p.languages.SymbolKind.Module,L[I.class]=p.languages.SymbolKind.Class,L[I.enum]=p.languages.SymbolKind.Enum,L[I.interface]=p.languages.SymbolKind.Interface,L[I.memberFunction]=p.languages.SymbolKind.Method,L[I.memberVariable]=p.languages.SymbolKind.Property,L[I.memberGetAccessor]=p.languages.SymbolKind.Property,L[I.memberSetAccessor]=p.languages.SymbolKind.Property,L[I.variable]=p.languages.SymbolKind.Variable,L[I.const]=p.languages.SymbolKind.Variable,L[I.localVariable]=p.languages.SymbolKind.Variable,L[I.variable]=p.languages.SymbolKind.Variable,L[I.function]=p.languages.SymbolKind.Function,L[I.localFunction]=p.languages.SymbolKind.Function;var T,P,O=class extends _{static _convertOptions(e){return{ConvertTabsToSpaces:e.insertSpaces,TabSize:e.tabSize,IndentSize:e.tabSize,IndentStyle:2,NewLineCharacter:"\n",InsertSpaceAfterCommaDelimiter:!0,InsertSpaceAfterSemicolonInForStatements:!0,InsertSpaceBeforeAndAfterBinaryOperators:!0,InsertSpaceAfterKeywordsInControlFlowStatements:!0,InsertSpaceAfterFunctionKeywordForAnonymousFunctions:!0,InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,PlaceOpenBraceOnNewLineForControlBlocks:!1,PlaceOpenBraceOnNewLineForFunctions:!1}}_convertTextChanges(e,t){return{text:t.newText,range:this._textSpanToRange(e,t.span)}}},N=class extends O{async provideDocumentRangeFormattingEdits(e,t,i,s){const r=e.uri,n=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),a=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),o=await this._worker(r);if(e.isDisposed())return;const l=await o.getFormattingEditsForRange(r.toString(),n,a,O._convertOptions(i));return l&&!e.isDisposed()?l.map((t=>this._convertTextChanges(e,t))):void 0}},K=class extends O{get autoFormatTriggerCharacters(){return[";","}","\n"]}async provideOnTypeFormattingEdits(e,t,i,s,r){const n=e.uri,a=e.getOffsetAt(t),o=await this._worker(n);if(e.isDisposed())return;const l=await o.getFormattingEditsAfterKeystroke(n.toString(),a,i,O._convertOptions(s));return l&&!e.isDisposed()?l.map((t=>this._convertTextChanges(e,t))):void 0}},M=class extends O{async provideCodeActions(e,t,i,s){const r=e.uri,n=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),a=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),o=O._convertOptions(e.getOptions()),l=i.markers.filter((e=>e.code)).map((e=>e.code)).map(Number),c=await this._worker(r);if(e.isDisposed())return;const d=await c.getCodeFixesAtPosition(r.toString(),n,a,l,o);if(!d||e.isDisposed())return{actions:[],dispose:()=>{}};return{actions:d.filter((e=>0===e.changes.filter((e=>e.isNewFile)).length)).map((t=>this._tsCodeFixActionToMonacoCodeAction(e,i,t))),dispose:()=>{}}}_tsCodeFixActionToMonacoCodeAction(e,t,i){const s=[];for(const r of i.changes)for(const t of r.textChanges)s.push({resource:e.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(e,t.span),text:t.newText}});return{title:i.description,edit:{edits:s},diagnostics:t.markers,kind:"quickfix"}}},R=class extends _{constructor(e,t){super(t),this._libFiles=e}async provideRenameEdits(e,t,i,s){const r=e.uri,n=r.toString(),a=e.getOffsetAt(t),o=await this._worker(r);if(e.isDisposed())return;const l=await o.getRenameInfo(n,a,{allowRenameOfImportPath:!1});if(!1===l.canRename)return{edits:[],rejectReason:l.localizedErrorMessage};if(void 0!==l.fileToRename)throw new Error("Renaming files is not supported.");const c=await o.findRenameLocations(n,a,!1,!1,!1);if(!c||e.isDisposed())return;const d=[];for(const u of c){const e=this._libFiles.getOrCreateModel(u.fileName);if(!e)throw new Error(`Unknown file ${u.fileName}.`);d.push({resource:e.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(e,u.textSpan),text:i}})}return{edits:d}}},E=class extends _{async provideInlayHints(e,t,i){const s=e.uri,r=s.toString(),n=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),a=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),o=await this._worker(s);if(e.isDisposed())return null;return{hints:(await o.provideInlayHints(r,n,a)).map((t=>({...t,label:t.text,position:e.getPositionAt(t.position),kind:this._convertHintKind(t.kind)}))),dispose:()=>{}}}_convertHintKind(e){return"Parameter"===e?p.languages.InlayHintKind.Parameter:p.languages.InlayHintKind.Type}};function H(e){P=B(e,"typescript")}function V(e){T=B(e,"javascript")}function W(){return new Promise(((e,t)=>{if(!T)return t("JavaScript not registered!");e(T)}))}function j(){return new Promise(((e,t)=>{if(!P)return t("TypeScript not registered!");e(P)}))}function B(e,t){const i=new m(t,e),s=(...e)=>i.getLanguageServiceWorker(...e),r=new w(s);return p.languages.registerCompletionItemProvider(t,new S(s)),p.languages.registerSignatureHelpProvider(t,new x(s)),p.languages.registerHoverProvider(t,new v(s)),p.languages.registerDocumentHighlightProvider(t,new C(s)),p.languages.registerDefinitionProvider(t,new A(r,s)),p.languages.registerReferenceProvider(t,new D(r,s)),p.languages.registerDocumentSymbolProvider(t,new F(s)),p.languages.registerDocumentRangeFormattingEditProvider(t,new N(s)),p.languages.registerOnTypeFormattingEditProvider(t,new K(s)),p.languages.registerCodeActionProvider(t,new M(s)),p.languages.registerRenameProvider(t,new R(r,s)),p.languages.registerInlayHintsProvider(t,new E(s)),new y(r,e,t,s),s}}}]); \ No newline at end of file diff --git a/assets/js/8424.591b7eae.js b/assets/js/8424.591b7eae.js new file mode 100644 index 00000000000..277ca98c7c3 --- /dev/null +++ b/assets/js/8424.591b7eae.js @@ -0,0 +1,342 @@ +"use strict"; +exports.id = 8424; +exports.ids = [8424]; +exports.modules = { + +/***/ 98424: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/twig/twig.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g, + comments: { + blockComment: ["{#", "#}"] + }, + brackets: [ + ["{#", "#}"], + ["{%", "%}"], + ["{{", "}}"], + ["(", ")"], + ["[", "]"], + ["<!--", "-->"], + ["<", ">"] + ], + autoClosingPairs: [ + { open: "{# ", close: " #}" }, + { open: "{% ", close: " %}" }, + { open: "{{ ", close: " }}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "<", close: ">" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: "", + ignoreCase: true, + keywords: [ + "apply", + "autoescape", + "block", + "deprecated", + "do", + "embed", + "extends", + "flush", + "for", + "from", + "if", + "import", + "include", + "macro", + "sandbox", + "set", + "use", + "verbatim", + "with", + "endapply", + "endautoescape", + "endblock", + "endembed", + "endfor", + "endif", + "endmacro", + "endsandbox", + "endset", + "endwith", + "true", + "false" + ], + tokenizer: { + root: [ + [/\s+/], + [/{#/, "comment.twig", "@commentState"], + [/{%[-~]?/, "delimiter.twig", "@blockState"], + [/{{[-~]?/, "delimiter.twig", "@variableState"], + [/<!DOCTYPE/, "metatag.html", "@doctype"], + [/<!--/, "comment.html", "@comment"], + [/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/, ["delimiter.html", "tag.html", "", "delimiter.html"]], + [/(<)(script)/, ["delimiter.html", { token: "tag.html", next: "@script" }]], + [/(<)(style)/, ["delimiter.html", { token: "tag.html", next: "@style" }]], + [/(<)((?:[\w\-]+:)?[\w\-]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/(<\/)((?:[\w\-]+:)?[\w\-]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/</, "delimiter.html"], + [/[^<]+/] + ], + commentState: [ + [/#}/, "comment.twig", "@pop"], + [/./, "comment.twig"] + ], + blockState: [ + [/[-~]?%}/, "delimiter.twig", "@pop"], + [/\s+/], + [ + /(verbatim)(\s*)([-~]?%})/, + ["keyword.twig", "", { token: "delimiter.twig", next: "@rawDataState" }] + ], + { include: "expression" } + ], + rawDataState: [ + [ + /({%[-~]?)(\s*)(endverbatim)(\s*)([-~]?%})/, + ["delimiter.twig", "", "keyword.twig", "", { token: "delimiter.twig", next: "@popall" }] + ], + [/./, "string.twig"] + ], + variableState: [[/[-~]?}}/, "delimiter.twig", "@pop"], { include: "expression" }], + stringState: [ + [/"/, "string.twig", "@pop"], + [/#{\s*/, "string.twig", "@interpolationState"], + [/[^#"\\]*(?:(?:\\.|#(?!\{))[^#"\\]*)*/, "string.twig"] + ], + interpolationState: [ + [/}/, "string.twig", "@pop"], + { include: "expression" } + ], + expression: [ + [/\s+/], + [/\+|-|\/{1,2}|%|\*{1,2}/, "operators.twig"], + [/(and|or|not|b-and|b-xor|b-or)(\s+)/, ["operators.twig", ""]], + [/==|!=|<|>|>=|<=/, "operators.twig"], + [/(starts with|ends with|matches)(\s+)/, ["operators.twig", ""]], + [/(in)(\s+)/, ["operators.twig", ""]], + [/(is)(\s+)/, ["operators.twig", ""]], + [/\||~|:|\.{1,2}|\?{1,2}/, "operators.twig"], + [ + /[^\W\d][\w]*/, + { + cases: { + "@keywords": "keyword.twig", + "@default": "variable.twig" + } + } + ], + [/\d+(\.\d+)?/, "number.twig"], + [/\(|\)|\[|\]|{|}|,/, "delimiter.twig"], + [/"([^#"\\]*(?:\\.[^#"\\]*)*)"|\'([^\'\\]*(?:\\.[^\'\\]*)*)\'/, "string.twig"], + [/"/, "string.twig", "@stringState"], + [/=>/, "operators.twig"], + [/=/, "operators.twig"] + ], + doctype: [ + [/[^>]+/, "metatag.content.html"], + [/>/, "metatag.html", "@pop"] + ], + comment: [ + [/-->/, "comment.html", "@pop"], + [/[^-]+/, "comment.content.html"], + [/./, "comment.content.html"] + ], + otherTag: [ + [/\/?>/, "delimiter.html", "@pop"], + [/"([^"]*)"/, "attribute.value.html"], + [/'([^']*)'/, "attribute.value.html"], + [/[\w\-]+/, "attribute.name.html"], + [/=/, "delimiter.html"], + [/[ \t\r\n]+/] + ], + script: [ + [/type/, "attribute.name.html", "@scriptAfterType"], + [/"([^"]*)"/, "attribute.value.html"], + [/'([^']*)'/, "attribute.value.html"], + [/[\w\-]+/, "attribute.name.html"], + [/=/, "delimiter.html"], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [ + /(<\/)(script\s*)(>)/, + ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }] + ] + ], + scriptAfterType: [ + [/=/, "delimiter.html", "@scriptAfterTypeEquals"], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptAfterTypeEquals: [ + [ + /"([^"]*)"/, + { + token: "attribute.value.html", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value.html", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptWithCustomType: [ + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value.html"], + [/'([^']*)'/, "attribute.value.html"], + [/[\w\-]+/, "attribute.name.html"], + [/=/, "delimiter.html"], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptEmbedded: [ + [/<\/script/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }], + [/[^<]+/, ""] + ], + style: [ + [/type/, "attribute.name.html", "@styleAfterType"], + [/"([^"]*)"/, "attribute.value.html"], + [/'([^']*)'/, "attribute.value.html"], + [/[\w\-]+/, "attribute.name.html"], + [/=/, "delimiter.html"], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [ + /(<\/)(style\s*)(>)/, + ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }] + ] + ], + styleAfterType: [ + [/=/, "delimiter.html", "@styleAfterTypeEquals"], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleAfterTypeEquals: [ + [ + /"([^"]*)"/, + { + token: "attribute.value.html", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value.html", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleWithCustomType: [ + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value.html"], + [/'([^']*)'/, "attribute.value.html"], + [/[\w\-]+/, "attribute.name.html"], + [/=/, "delimiter.html"], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleEmbedded: [ + [/<\/style/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }], + [/[^<]+/, ""] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8424.b47120a1.js b/assets/js/8424.b47120a1.js new file mode 100644 index 00000000000..62823b5881f --- /dev/null +++ b/assets/js/8424.b47120a1.js @@ -0,0 +1,2 @@ +/*! For license information please see 8424.b47120a1.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8424],{98424:(t,e,i)=>{i.r(e),i.d(e,{conf:()=>r,language:()=>m});var r={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{#","#}"]},brackets:[["{#","#}"],["{%","%}"],["{{","}}"],["(",")"],["[","]"],["\x3c!--","--\x3e"],["<",">"]],autoClosingPairs:[{open:"{# ",close:" #}"},{open:"{% ",close:" %}"},{open:"{{ ",close:" }}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}]},m={defaultToken:"",tokenPostfix:"",ignoreCase:!0,keywords:["apply","autoescape","block","deprecated","do","embed","extends","flush","for","from","if","import","include","macro","sandbox","set","use","verbatim","with","endapply","endautoescape","endblock","endembed","endfor","endif","endmacro","endsandbox","endset","endwith","true","false"],tokenizer:{root:[[/\s+/],[/{#/,"comment.twig","@commentState"],[/{%[-~]?/,"delimiter.twig","@blockState"],[/{{[-~]?/,"delimiter.twig","@variableState"],[/<!DOCTYPE/,"metatag.html","@doctype"],[/<!--/,"comment.html","@comment"],[/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/,["delimiter.html","tag.html","","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/</,"delimiter.html"],[/[^<]+/]],commentState:[[/#}/,"comment.twig","@pop"],[/./,"comment.twig"]],blockState:[[/[-~]?%}/,"delimiter.twig","@pop"],[/\s+/],[/(verbatim)(\s*)([-~]?%})/,["keyword.twig","",{token:"delimiter.twig",next:"@rawDataState"}]],{include:"expression"}],rawDataState:[[/({%[-~]?)(\s*)(endverbatim)(\s*)([-~]?%})/,["delimiter.twig","","keyword.twig","",{token:"delimiter.twig",next:"@popall"}]],[/./,"string.twig"]],variableState:[[/[-~]?}}/,"delimiter.twig","@pop"],{include:"expression"}],stringState:[[/"/,"string.twig","@pop"],[/#{\s*/,"string.twig","@interpolationState"],[/[^#"\\]*(?:(?:\\.|#(?!\{))[^#"\\]*)*/,"string.twig"]],interpolationState:[[/}/,"string.twig","@pop"],{include:"expression"}],expression:[[/\s+/],[/\+|-|\/{1,2}|%|\*{1,2}/,"operators.twig"],[/(and|or|not|b-and|b-xor|b-or)(\s+)/,["operators.twig",""]],[/==|!=|<|>|>=|<=/,"operators.twig"],[/(starts with|ends with|matches)(\s+)/,["operators.twig",""]],[/(in)(\s+)/,["operators.twig",""]],[/(is)(\s+)/,["operators.twig",""]],[/\||~|:|\.{1,2}|\?{1,2}/,"operators.twig"],[/[^\W\d][\w]*/,{cases:{"@keywords":"keyword.twig","@default":"variable.twig"}}],[/\d+(\.\d+)?/,"number.twig"],[/\(|\)|\[|\]|{|}|,/,"delimiter.twig"],[/"([^#"\\]*(?:\\.[^#"\\]*)*)"|\'([^\'\\]*(?:\\.[^\'\\]*)*)\'/,"string.twig"],[/"/,"string.twig","@stringState"],[/=>/,"operators.twig"],[/=/,"operators.twig"]],doctype:[[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name.html","@scriptAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter.html","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name.html","@styleAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter.html","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}}}}]); \ No newline at end of file diff --git a/assets/js/8424.b47120a1.js.LICENSE.txt b/assets/js/8424.b47120a1.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8424.b47120a1.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/848.6ccac2fb.js b/assets/js/848.6ccac2fb.js new file mode 100644 index 00000000000..6afe50aa33c --- /dev/null +++ b/assets/js/848.6ccac2fb.js @@ -0,0 +1,2 @@ +/*! For license information please see 848.6ccac2fb.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[848],{40848:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>i,language:()=>s});var i={comments:{lineComment:"*"},brackets:[["[","]"],["(",")"]]},s={defaultToken:"invalid",ignoreCase:!0,tokenPostfix:".abap",keywords:["abap-source","abbreviated","abstract","accept","accepting","according","activation","actual","add","add-corresponding","adjacent","after","alias","aliases","align","all","allocate","alpha","analysis","analyzer","and","append","appendage","appending","application","archive","area","arithmetic","as","ascending","aspect","assert","assign","assigned","assigning","association","asynchronous","at","attributes","authority","authority-check","avg","back","background","backup","backward","badi","base","before","begin","between","big","binary","bintohex","bit","black","blank","blanks","blob","block","blocks","blue","bound","boundaries","bounds","boxed","break-point","buffer","by","bypassing","byte","byte-order","call","calling","case","cast","casting","catch","center","centered","chain","chain-input","chain-request","change","changing","channels","character","char-to-hex","check","checkbox","ci_","circular","class","class-coding","class-data","class-events","class-methods","class-pool","cleanup","clear","client","clob","clock","close","coalesce","code","coding","col_background","col_group","col_heading","col_key","col_negative","col_normal","col_positive","col_total","collect","color","column","columns","comment","comments","commit","common","communication","comparing","component","components","compression","compute","concat","concat_with_space","concatenate","cond","condense","condition","connect","connection","constants","context","contexts","continue","control","controls","conv","conversion","convert","copies","copy","corresponding","country","cover","cpi","create","creating","critical","currency","currency_conversion","current","cursor","cursor-selection","customer","customer-function","dangerous","data","database","datainfo","dataset","date","dats_add_days","dats_add_months","dats_days_between","dats_is_valid","daylight","dd/mm/yy","dd/mm/yyyy","ddmmyy","deallocate","decimal_shift","decimals","declarations","deep","default","deferred","define","defining","definition","delete","deleting","demand","department","descending","describe","destination","detail","dialog","directory","disconnect","display","display-mode","distinct","divide","divide-corresponding","division","do","dummy","duplicate","duplicates","duration","during","dynamic","dynpro","edit","editor-call","else","elseif","empty","enabled","enabling","encoding","end","endat","endcase","endcatch","endchain","endclass","enddo","endenhancement","end-enhancement-section","endexec","endform","endfunction","endian","endif","ending","endinterface","end-lines","endloop","endmethod","endmodule","end-of-definition","end-of-editing","end-of-file","end-of-page","end-of-selection","endon","endprovide","endselect","end-test-injection","end-test-seam","endtry","endwhile","endwith","engineering","enhancement","enhancement-point","enhancements","enhancement-section","entries","entry","enum","environment","equiv","errormessage","errors","escaping","event","events","exact","except","exception","exceptions","exception-table","exclude","excluding","exec","execute","exists","exit","exit-command","expand","expanding","expiration","explicit","exponent","export","exporting","extend","extended","extension","extract","fail","fetch","field","field-groups","fields","field-symbol","field-symbols","file","filter","filters","filter-table","final","find","first","first-line","fixed-point","fkeq","fkge","flush","font","for","form","format","forward","found","frame","frames","free","friends","from","function","functionality","function-pool","further","gaps","generate","get","giving","gkeq","gkge","global","grant","green","group","groups","handle","handler","harmless","hashed","having","hdb","header","headers","heading","head-lines","help-id","help-request","hextobin","hide","high","hint","hold","hotspot","icon","id","identification","identifier","ids","if","ignore","ignoring","immediately","implementation","implementations","implemented","implicit","import","importing","in","inactive","incl","include","includes","including","increment","index","index-line","infotypes","inheriting","init","initial","initialization","inner","inout","input","insert","instance","instances","instr","intensified","interface","interface-pool","interfaces","internal","intervals","into","inverse","inverted-date","is","iso","job","join","keep","keeping","kernel","key","keys","keywords","kind","language","last","late","layout","leading","leave","left","left-justified","leftplus","leftspace","legacy","length","let","level","levels","like","line","lines","line-count","linefeed","line-selection","line-size","list","listbox","list-processing","little","llang","load","load-of-program","lob","local","locale","locator","logfile","logical","log-point","long","loop","low","lower","lpad","lpi","ltrim","mail","main","major-id","mapping","margin","mark","mask","match","matchcode","max","maximum","medium","members","memory","mesh","message","message-id","messages","messaging","method","methods","min","minimum","minor-id","mm/dd/yy","mm/dd/yyyy","mmddyy","mode","modif","modifier","modify","module","move","move-corresponding","multiply","multiply-corresponding","name","nametab","native","nested","nesting","new","new-line","new-page","new-section","next","no","no-display","no-extension","no-gap","no-gaps","no-grouping","no-heading","no-scrolling","no-sign","no-title","no-topofpage","no-zero","node","nodes","non-unicode","non-unique","not","null","number","object","objects","obligatory","occurrence","occurrences","occurs","of","off","offset","ole","on","only","open","option","optional","options","or","order","other","others","out","outer","output","output-length","overflow","overlay","pack","package","pad","padding","page","pages","parameter","parameters","parameter-table","part","partially","pattern","percentage","perform","performing","person","pf1","pf10","pf11","pf12","pf13","pf14","pf15","pf2","pf3","pf4","pf5","pf6","pf7","pf8","pf9","pf-status","pink","places","pool","pos_high","pos_low","position","pragmas","precompiled","preferred","preserving","primary","print","print-control","priority","private","procedure","process","program","property","protected","provide","public","push","pushbutton","put","queue-only","quickinfo","radiobutton","raise","raising","range","ranges","read","reader","read-only","receive","received","receiver","receiving","red","redefinition","reduce","reduced","ref","reference","refresh","regex","reject","remote","renaming","replace","replacement","replacing","report","request","requested","reserve","reset","resolution","respecting","responsible","result","results","resumable","resume","retry","return","returncode","returning","returns","right","right-justified","rightplus","rightspace","risk","rmc_communication_failure","rmc_invalid_status","rmc_system_failure","role","rollback","rows","rpad","rtrim","run","sap","sap-spool","saving","scale_preserving","scale_preserving_scientific","scan","scientific","scientific_with_leading_zero","scroll","scroll-boundary","scrolling","search","secondary","seconds","section","select","selection","selections","selection-screen","selection-set","selection-sets","selection-table","select-options","send","separate","separated","set","shared","shift","short","shortdump-id","sign_as_postfix","single","size","skip","skipping","smart","some","sort","sortable","sorted","source","specified","split","spool","spots","sql","sqlscript","stable","stamp","standard","starting","start-of-editing","start-of-selection","state","statement","statements","static","statics","statusinfo","step-loop","stop","structure","structures","style","subkey","submatches","submit","subroutine","subscreen","subtract","subtract-corresponding","suffix","sum","summary","summing","supplied","supply","suppress","switch","switchstates","symbol","syncpoints","syntax","syntax-check","syntax-trace","system-call","system-exceptions","system-exit","tab","tabbed","table","tables","tableview","tabstrip","target","task","tasks","test","testing","test-injection","test-seam","text","textpool","then","throw","time","times","timestamp","timezone","tims_is_valid","title","titlebar","title-lines","to","tokenization","tokens","top-lines","top-of-page","trace-file","trace-table","trailing","transaction","transfer","transformation","translate","transporting","trmac","truncate","truncation","try","tstmp_add_seconds","tstmp_current_utctimestamp","tstmp_is_valid","tstmp_seconds_between","type","type-pool","type-pools","types","uline","unassign","under","unicode","union","unique","unit_conversion","unix","unpack","until","unwind","up","update","upper","user","user-command","using","utf-8","valid","value","value-request","values","vary","varying","verification-message","version","via","view","visible","wait","warning","when","whenever","where","while","width","window","windows","with","with-heading","without","with-title","word","work","write","writer","xml","xsd","yellow","yes","yymmdd","zero","zone","abap_system_timezone","abap_user_timezone","access","action","adabas","adjust_numbers","allow_precision_loss","allowed","amdp","applicationuser","as_geo_json","as400","associations","balance","behavior","breakup","bulk","cds","cds_client","check_before_save","child","clients","corr","corr_spearman","cross","cycles","datn_add_days","datn_add_months","datn_days_between","dats_from_datn","dats_tims_to_tstmp","dats_to_datn","db2","db6","ddl","dense_rank","depth","deterministic","discarding","entities","entity","error","failed","finalize","first_value","fltp_to_dec","following","fractional","full","graph","grouping","hierarchy","hierarchy_ancestors","hierarchy_ancestors_aggregate","hierarchy_descendants","hierarchy_descendants_aggregate","hierarchy_siblings","incremental","indicators","lag","last_value","lead","leaves","like_regexpr","link","locale_sap","lock","locks","many","mapped","matched","measures","median","mssqlnt","multiple","nodetype","ntile","nulls","occurrences_regexpr","one","operations","oracle","orphans","over","parent","parents","partition","pcre","period","pfcg_mapping","preceding","privileged","product","projection","rank","redirected","replace_regexpr","reported","response","responses","root","row","row_number","sap_system_date","save","schema","session","sets","shortdump","siblings","spantree","start","stddev","string_agg","subtotal","sybase","tims_from_timn","tims_to_timn","to_blob","to_clob","total","trace-entry","tstmp_to_dats","tstmp_to_dst","tstmp_to_tims","tstmpl_from_utcl","tstmpl_to_utcl","unbounded","utcl_add_seconds","utcl_current","utcl_seconds_between","uuid","var","verbatim"],builtinFunctions:["abs","acos","asin","atan","bit-set","boolc","boolx","ceil","char_off","charlen","cmax","cmin","concat_lines_of","contains","contains_any_not_of","contains_any_of","cos","cosh","count","count_any_not_of","count_any_of","dbmaxlen","distance","escape","exp","find_any_not_of","find_any_of","find_end","floor","frac","from_mixed","ipow","line_exists","line_index","log","log10","matches","nmax","nmin","numofchar","repeat","rescale","reverse","round","segment","shift_left","shift_right","sign","sin","sinh","sqrt","strlen","substring","substring_after","substring_before","substring_from","substring_to","tan","tanh","to_lower","to_mixed","to_upper","trunc","utclong_add","utclong_current","utclong_diff","xsdbool","xstrlen"],typeKeywords:["b","c","d","decfloat16","decfloat34","f","i","int8","n","p","s","string","t","utclong","x","xstring","any","clike","csequence","decfloat","numeric","simple","xsequence","accp","char","clnt","cuky","curr","datn","dats","d16d","d16n","d16r","d34d","d34n","d34r","dec","df16_dec","df16_raw","df34_dec","df34_raw","fltp","geom_ewkb","int1","int2","int4","lang","lchr","lraw","numc","quan","raw","rawstring","sstring","timn","tims","unit","utcl","df16_scl","df34_scl","prec","varc","abap_bool","abap_false","abap_true","abap_undefined","me","screen","space","super","sy","syst","table_line","*sys*"],builtinMethods:["class_constructor","constructor"],derivedTypes:["%CID","%CID_REF","%CONTROL","%DATA","%ELEMENT","%FAIL","%KEY","%MSG","%PARAM","%PID","%PID_ASSOC","%PID_PARENT","%_HINTS"],cdsLanguage:["@AbapAnnotation","@AbapCatalog","@AccessControl","@API","@ClientDependent","@ClientHandling","@CompatibilityContract","@DataAging","@EndUserText","@Environment","@LanguageDependency","@MappingRole","@Metadata","@MetadataExtension","@ObjectModel","@Scope","@Semantics","$EXTENSION","$SELF"],selectors:["->","->*","=>","~","~*"],operators:[" +"," -","/","*","**","div","mod","=","#","@","+=","-=","*=","/=","**=","&&=","?=","&","&&","bit-and","bit-not","bit-or","bit-xor","m","o","z","<"," >","<=",">=","<>","><","=<","=>","bt","byte-ca","byte-cn","byte-co","byte-cs","byte-na","byte-ns","ca","cn","co","cp","cs","eq","ge","gt","le","lt","na","nb","ne","np","ns","*/","*:","--","/*","//"],symbols:/[=><!~?&+\-*\/\^%#@]+/,tokenizer:{root:[[/[a-z_\/$%@]([\w\/$%]|-(?!>))*/,{cases:{"@typeKeywords":"type","@keywords":"keyword","@cdsLanguage":"annotation","@derivedTypes":"type","@builtinFunctions":"type","@builtinMethods":"type","@operators":"key","@default":"identifier"}}],[/<[\w]+>/,"identifier"],[/##[\w|_]+/,"comment"],{include:"@whitespace"},[/[:,.]/,"delimiter"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@selectors":"tag","@operators":"key","@default":""}}],[/'/,{token:"string",bracket:"@open",next:"@stringquote"}],[/`/,{token:"string",bracket:"@open",next:"@stringping"}],[/\|/,{token:"string",bracket:"@open",next:"@stringtemplate"}],[/\d+/,"number"]],stringtemplate:[[/[^\\\|]+/,"string"],[/\\\|/,"string"],[/\|/,{token:"string",bracket:"@close",next:"@pop"}]],stringping:[[/[^\\`]+/,"string"],[/`/,{token:"string",bracket:"@close",next:"@pop"}]],stringquote:[[/[^\\']+/,"string"],[/'/,{token:"string",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/^\*.*$/,"comment"],[/\".*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/848.6ccac2fb.js.LICENSE.txt b/assets/js/848.6ccac2fb.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/848.6ccac2fb.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/848.78fe8e26.js b/assets/js/848.78fe8e26.js new file mode 100644 index 00000000000..240414a70e1 --- /dev/null +++ b/assets/js/848.78fe8e26.js @@ -0,0 +1,1333 @@ +"use strict"; +exports.id = 848; +exports.ids = [848]; +exports.modules = { + +/***/ 40848: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/abap/abap.ts +var conf = { + comments: { + lineComment: "*" + }, + brackets: [ + ["[", "]"], + ["(", ")"] + ] +}; +var language = { + defaultToken: "invalid", + ignoreCase: true, + tokenPostfix: ".abap", + keywords: [ + "abap-source", + "abbreviated", + "abstract", + "accept", + "accepting", + "according", + "activation", + "actual", + "add", + "add-corresponding", + "adjacent", + "after", + "alias", + "aliases", + "align", + "all", + "allocate", + "alpha", + "analysis", + "analyzer", + "and", + "append", + "appendage", + "appending", + "application", + "archive", + "area", + "arithmetic", + "as", + "ascending", + "aspect", + "assert", + "assign", + "assigned", + "assigning", + "association", + "asynchronous", + "at", + "attributes", + "authority", + "authority-check", + "avg", + "back", + "background", + "backup", + "backward", + "badi", + "base", + "before", + "begin", + "between", + "big", + "binary", + "bintohex", + "bit", + "black", + "blank", + "blanks", + "blob", + "block", + "blocks", + "blue", + "bound", + "boundaries", + "bounds", + "boxed", + "break-point", + "buffer", + "by", + "bypassing", + "byte", + "byte-order", + "call", + "calling", + "case", + "cast", + "casting", + "catch", + "center", + "centered", + "chain", + "chain-input", + "chain-request", + "change", + "changing", + "channels", + "character", + "char-to-hex", + "check", + "checkbox", + "ci_", + "circular", + "class", + "class-coding", + "class-data", + "class-events", + "class-methods", + "class-pool", + "cleanup", + "clear", + "client", + "clob", + "clock", + "close", + "coalesce", + "code", + "coding", + "col_background", + "col_group", + "col_heading", + "col_key", + "col_negative", + "col_normal", + "col_positive", + "col_total", + "collect", + "color", + "column", + "columns", + "comment", + "comments", + "commit", + "common", + "communication", + "comparing", + "component", + "components", + "compression", + "compute", + "concat", + "concat_with_space", + "concatenate", + "cond", + "condense", + "condition", + "connect", + "connection", + "constants", + "context", + "contexts", + "continue", + "control", + "controls", + "conv", + "conversion", + "convert", + "copies", + "copy", + "corresponding", + "country", + "cover", + "cpi", + "create", + "creating", + "critical", + "currency", + "currency_conversion", + "current", + "cursor", + "cursor-selection", + "customer", + "customer-function", + "dangerous", + "data", + "database", + "datainfo", + "dataset", + "date", + "dats_add_days", + "dats_add_months", + "dats_days_between", + "dats_is_valid", + "daylight", + "dd/mm/yy", + "dd/mm/yyyy", + "ddmmyy", + "deallocate", + "decimal_shift", + "decimals", + "declarations", + "deep", + "default", + "deferred", + "define", + "defining", + "definition", + "delete", + "deleting", + "demand", + "department", + "descending", + "describe", + "destination", + "detail", + "dialog", + "directory", + "disconnect", + "display", + "display-mode", + "distinct", + "divide", + "divide-corresponding", + "division", + "do", + "dummy", + "duplicate", + "duplicates", + "duration", + "during", + "dynamic", + "dynpro", + "edit", + "editor-call", + "else", + "elseif", + "empty", + "enabled", + "enabling", + "encoding", + "end", + "endat", + "endcase", + "endcatch", + "endchain", + "endclass", + "enddo", + "endenhancement", + "end-enhancement-section", + "endexec", + "endform", + "endfunction", + "endian", + "endif", + "ending", + "endinterface", + "end-lines", + "endloop", + "endmethod", + "endmodule", + "end-of-definition", + "end-of-editing", + "end-of-file", + "end-of-page", + "end-of-selection", + "endon", + "endprovide", + "endselect", + "end-test-injection", + "end-test-seam", + "endtry", + "endwhile", + "endwith", + "engineering", + "enhancement", + "enhancement-point", + "enhancements", + "enhancement-section", + "entries", + "entry", + "enum", + "environment", + "equiv", + "errormessage", + "errors", + "escaping", + "event", + "events", + "exact", + "except", + "exception", + "exceptions", + "exception-table", + "exclude", + "excluding", + "exec", + "execute", + "exists", + "exit", + "exit-command", + "expand", + "expanding", + "expiration", + "explicit", + "exponent", + "export", + "exporting", + "extend", + "extended", + "extension", + "extract", + "fail", + "fetch", + "field", + "field-groups", + "fields", + "field-symbol", + "field-symbols", + "file", + "filter", + "filters", + "filter-table", + "final", + "find", + "first", + "first-line", + "fixed-point", + "fkeq", + "fkge", + "flush", + "font", + "for", + "form", + "format", + "forward", + "found", + "frame", + "frames", + "free", + "friends", + "from", + "function", + "functionality", + "function-pool", + "further", + "gaps", + "generate", + "get", + "giving", + "gkeq", + "gkge", + "global", + "grant", + "green", + "group", + "groups", + "handle", + "handler", + "harmless", + "hashed", + "having", + "hdb", + "header", + "headers", + "heading", + "head-lines", + "help-id", + "help-request", + "hextobin", + "hide", + "high", + "hint", + "hold", + "hotspot", + "icon", + "id", + "identification", + "identifier", + "ids", + "if", + "ignore", + "ignoring", + "immediately", + "implementation", + "implementations", + "implemented", + "implicit", + "import", + "importing", + "in", + "inactive", + "incl", + "include", + "includes", + "including", + "increment", + "index", + "index-line", + "infotypes", + "inheriting", + "init", + "initial", + "initialization", + "inner", + "inout", + "input", + "insert", + "instance", + "instances", + "instr", + "intensified", + "interface", + "interface-pool", + "interfaces", + "internal", + "intervals", + "into", + "inverse", + "inverted-date", + "is", + "iso", + "job", + "join", + "keep", + "keeping", + "kernel", + "key", + "keys", + "keywords", + "kind", + "language", + "last", + "late", + "layout", + "leading", + "leave", + "left", + "left-justified", + "leftplus", + "leftspace", + "legacy", + "length", + "let", + "level", + "levels", + "like", + "line", + "lines", + "line-count", + "linefeed", + "line-selection", + "line-size", + "list", + "listbox", + "list-processing", + "little", + "llang", + "load", + "load-of-program", + "lob", + "local", + "locale", + "locator", + "logfile", + "logical", + "log-point", + "long", + "loop", + "low", + "lower", + "lpad", + "lpi", + "ltrim", + "mail", + "main", + "major-id", + "mapping", + "margin", + "mark", + "mask", + "match", + "matchcode", + "max", + "maximum", + "medium", + "members", + "memory", + "mesh", + "message", + "message-id", + "messages", + "messaging", + "method", + "methods", + "min", + "minimum", + "minor-id", + "mm/dd/yy", + "mm/dd/yyyy", + "mmddyy", + "mode", + "modif", + "modifier", + "modify", + "module", + "move", + "move-corresponding", + "multiply", + "multiply-corresponding", + "name", + "nametab", + "native", + "nested", + "nesting", + "new", + "new-line", + "new-page", + "new-section", + "next", + "no", + "no-display", + "no-extension", + "no-gap", + "no-gaps", + "no-grouping", + "no-heading", + "no-scrolling", + "no-sign", + "no-title", + "no-topofpage", + "no-zero", + "node", + "nodes", + "non-unicode", + "non-unique", + "not", + "null", + "number", + "object", + "objects", + "obligatory", + "occurrence", + "occurrences", + "occurs", + "of", + "off", + "offset", + "ole", + "on", + "only", + "open", + "option", + "optional", + "options", + "or", + "order", + "other", + "others", + "out", + "outer", + "output", + "output-length", + "overflow", + "overlay", + "pack", + "package", + "pad", + "padding", + "page", + "pages", + "parameter", + "parameters", + "parameter-table", + "part", + "partially", + "pattern", + "percentage", + "perform", + "performing", + "person", + "pf1", + "pf10", + "pf11", + "pf12", + "pf13", + "pf14", + "pf15", + "pf2", + "pf3", + "pf4", + "pf5", + "pf6", + "pf7", + "pf8", + "pf9", + "pf-status", + "pink", + "places", + "pool", + "pos_high", + "pos_low", + "position", + "pragmas", + "precompiled", + "preferred", + "preserving", + "primary", + "print", + "print-control", + "priority", + "private", + "procedure", + "process", + "program", + "property", + "protected", + "provide", + "public", + "push", + "pushbutton", + "put", + "queue-only", + "quickinfo", + "radiobutton", + "raise", + "raising", + "range", + "ranges", + "read", + "reader", + "read-only", + "receive", + "received", + "receiver", + "receiving", + "red", + "redefinition", + "reduce", + "reduced", + "ref", + "reference", + "refresh", + "regex", + "reject", + "remote", + "renaming", + "replace", + "replacement", + "replacing", + "report", + "request", + "requested", + "reserve", + "reset", + "resolution", + "respecting", + "responsible", + "result", + "results", + "resumable", + "resume", + "retry", + "return", + "returncode", + "returning", + "returns", + "right", + "right-justified", + "rightplus", + "rightspace", + "risk", + "rmc_communication_failure", + "rmc_invalid_status", + "rmc_system_failure", + "role", + "rollback", + "rows", + "rpad", + "rtrim", + "run", + "sap", + "sap-spool", + "saving", + "scale_preserving", + "scale_preserving_scientific", + "scan", + "scientific", + "scientific_with_leading_zero", + "scroll", + "scroll-boundary", + "scrolling", + "search", + "secondary", + "seconds", + "section", + "select", + "selection", + "selections", + "selection-screen", + "selection-set", + "selection-sets", + "selection-table", + "select-options", + "send", + "separate", + "separated", + "set", + "shared", + "shift", + "short", + "shortdump-id", + "sign_as_postfix", + "single", + "size", + "skip", + "skipping", + "smart", + "some", + "sort", + "sortable", + "sorted", + "source", + "specified", + "split", + "spool", + "spots", + "sql", + "sqlscript", + "stable", + "stamp", + "standard", + "starting", + "start-of-editing", + "start-of-selection", + "state", + "statement", + "statements", + "static", + "statics", + "statusinfo", + "step-loop", + "stop", + "structure", + "structures", + "style", + "subkey", + "submatches", + "submit", + "subroutine", + "subscreen", + "subtract", + "subtract-corresponding", + "suffix", + "sum", + "summary", + "summing", + "supplied", + "supply", + "suppress", + "switch", + "switchstates", + "symbol", + "syncpoints", + "syntax", + "syntax-check", + "syntax-trace", + "system-call", + "system-exceptions", + "system-exit", + "tab", + "tabbed", + "table", + "tables", + "tableview", + "tabstrip", + "target", + "task", + "tasks", + "test", + "testing", + "test-injection", + "test-seam", + "text", + "textpool", + "then", + "throw", + "time", + "times", + "timestamp", + "timezone", + "tims_is_valid", + "title", + "titlebar", + "title-lines", + "to", + "tokenization", + "tokens", + "top-lines", + "top-of-page", + "trace-file", + "trace-table", + "trailing", + "transaction", + "transfer", + "transformation", + "translate", + "transporting", + "trmac", + "truncate", + "truncation", + "try", + "tstmp_add_seconds", + "tstmp_current_utctimestamp", + "tstmp_is_valid", + "tstmp_seconds_between", + "type", + "type-pool", + "type-pools", + "types", + "uline", + "unassign", + "under", + "unicode", + "union", + "unique", + "unit_conversion", + "unix", + "unpack", + "until", + "unwind", + "up", + "update", + "upper", + "user", + "user-command", + "using", + "utf-8", + "valid", + "value", + "value-request", + "values", + "vary", + "varying", + "verification-message", + "version", + "via", + "view", + "visible", + "wait", + "warning", + "when", + "whenever", + "where", + "while", + "width", + "window", + "windows", + "with", + "with-heading", + "without", + "with-title", + "word", + "work", + "write", + "writer", + "xml", + "xsd", + "yellow", + "yes", + "yymmdd", + "zero", + "zone", + "abap_system_timezone", + "abap_user_timezone", + "access", + "action", + "adabas", + "adjust_numbers", + "allow_precision_loss", + "allowed", + "amdp", + "applicationuser", + "as_geo_json", + "as400", + "associations", + "balance", + "behavior", + "breakup", + "bulk", + "cds", + "cds_client", + "check_before_save", + "child", + "clients", + "corr", + "corr_spearman", + "cross", + "cycles", + "datn_add_days", + "datn_add_months", + "datn_days_between", + "dats_from_datn", + "dats_tims_to_tstmp", + "dats_to_datn", + "db2", + "db6", + "ddl", + "dense_rank", + "depth", + "deterministic", + "discarding", + "entities", + "entity", + "error", + "failed", + "finalize", + "first_value", + "fltp_to_dec", + "following", + "fractional", + "full", + "graph", + "grouping", + "hierarchy", + "hierarchy_ancestors", + "hierarchy_ancestors_aggregate", + "hierarchy_descendants", + "hierarchy_descendants_aggregate", + "hierarchy_siblings", + "incremental", + "indicators", + "lag", + "last_value", + "lead", + "leaves", + "like_regexpr", + "link", + "locale_sap", + "lock", + "locks", + "many", + "mapped", + "matched", + "measures", + "median", + "mssqlnt", + "multiple", + "nodetype", + "ntile", + "nulls", + "occurrences_regexpr", + "one", + "operations", + "oracle", + "orphans", + "over", + "parent", + "parents", + "partition", + "pcre", + "period", + "pfcg_mapping", + "preceding", + "privileged", + "product", + "projection", + "rank", + "redirected", + "replace_regexpr", + "reported", + "response", + "responses", + "root", + "row", + "row_number", + "sap_system_date", + "save", + "schema", + "session", + "sets", + "shortdump", + "siblings", + "spantree", + "start", + "stddev", + "string_agg", + "subtotal", + "sybase", + "tims_from_timn", + "tims_to_timn", + "to_blob", + "to_clob", + "total", + "trace-entry", + "tstmp_to_dats", + "tstmp_to_dst", + "tstmp_to_tims", + "tstmpl_from_utcl", + "tstmpl_to_utcl", + "unbounded", + "utcl_add_seconds", + "utcl_current", + "utcl_seconds_between", + "uuid", + "var", + "verbatim" + ], + builtinFunctions: [ + "abs", + "acos", + "asin", + "atan", + "bit-set", + "boolc", + "boolx", + "ceil", + "char_off", + "charlen", + "cmax", + "cmin", + "concat_lines_of", + "contains", + "contains_any_not_of", + "contains_any_of", + "cos", + "cosh", + "count", + "count_any_not_of", + "count_any_of", + "dbmaxlen", + "distance", + "escape", + "exp", + "find_any_not_of", + "find_any_of", + "find_end", + "floor", + "frac", + "from_mixed", + "ipow", + "line_exists", + "line_index", + "log", + "log10", + "matches", + "nmax", + "nmin", + "numofchar", + "repeat", + "rescale", + "reverse", + "round", + "segment", + "shift_left", + "shift_right", + "sign", + "sin", + "sinh", + "sqrt", + "strlen", + "substring", + "substring_after", + "substring_before", + "substring_from", + "substring_to", + "tan", + "tanh", + "to_lower", + "to_mixed", + "to_upper", + "trunc", + "utclong_add", + "utclong_current", + "utclong_diff", + "xsdbool", + "xstrlen" + ], + typeKeywords: [ + "b", + "c", + "d", + "decfloat16", + "decfloat34", + "f", + "i", + "int8", + "n", + "p", + "s", + "string", + "t", + "utclong", + "x", + "xstring", + "any", + "clike", + "csequence", + "decfloat", + "numeric", + "simple", + "xsequence", + "accp", + "char", + "clnt", + "cuky", + "curr", + "datn", + "dats", + "d16d", + "d16n", + "d16r", + "d34d", + "d34n", + "d34r", + "dec", + "df16_dec", + "df16_raw", + "df34_dec", + "df34_raw", + "fltp", + "geom_ewkb", + "int1", + "int2", + "int4", + "lang", + "lchr", + "lraw", + "numc", + "quan", + "raw", + "rawstring", + "sstring", + "timn", + "tims", + "unit", + "utcl", + "df16_scl", + "df34_scl", + "prec", + "varc", + "abap_bool", + "abap_false", + "abap_true", + "abap_undefined", + "me", + "screen", + "space", + "super", + "sy", + "syst", + "table_line", + "*sys*" + ], + builtinMethods: ["class_constructor", "constructor"], + derivedTypes: [ + "%CID", + "%CID_REF", + "%CONTROL", + "%DATA", + "%ELEMENT", + "%FAIL", + "%KEY", + "%MSG", + "%PARAM", + "%PID", + "%PID_ASSOC", + "%PID_PARENT", + "%_HINTS" + ], + cdsLanguage: [ + "@AbapAnnotation", + "@AbapCatalog", + "@AccessControl", + "@API", + "@ClientDependent", + "@ClientHandling", + "@CompatibilityContract", + "@DataAging", + "@EndUserText", + "@Environment", + "@LanguageDependency", + "@MappingRole", + "@Metadata", + "@MetadataExtension", + "@ObjectModel", + "@Scope", + "@Semantics", + "$EXTENSION", + "$SELF" + ], + selectors: ["->", "->*", "=>", "~", "~*"], + operators: [ + " +", + " -", + "/", + "*", + "**", + "div", + "mod", + "=", + "#", + "@", + "+=", + "-=", + "*=", + "/=", + "**=", + "&&=", + "?=", + "&", + "&&", + "bit-and", + "bit-not", + "bit-or", + "bit-xor", + "m", + "o", + "z", + "<", + " >", + "<=", + ">=", + "<>", + "><", + "=<", + "=>", + "bt", + "byte-ca", + "byte-cn", + "byte-co", + "byte-cs", + "byte-na", + "byte-ns", + "ca", + "cn", + "co", + "cp", + "cs", + "eq", + "ge", + "gt", + "le", + "lt", + "na", + "nb", + "ne", + "np", + "ns", + "*/", + "*:", + "--", + "/*", + "//" + ], + symbols: /[=><!~?&+\-*\/\^%#@]+/, + tokenizer: { + root: [ + [ + /[a-z_\/$%@]([\w\/$%]|-(?!>))*/, + { + cases: { + "@typeKeywords": "type", + "@keywords": "keyword", + "@cdsLanguage": "annotation", + "@derivedTypes": "type", + "@builtinFunctions": "type", + "@builtinMethods": "type", + "@operators": "key", + "@default": "identifier" + } + } + ], + [/<[\w]+>/, "identifier"], + [/##[\w|_]+/, "comment"], + { include: "@whitespace" }, + [/[:,.]/, "delimiter"], + [/[{}()\[\]]/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@selectors": "tag", + "@operators": "key", + "@default": "" + } + } + ], + [/'/, { token: "string", bracket: "@open", next: "@stringquote" }], + [/`/, { token: "string", bracket: "@open", next: "@stringping" }], + [/\|/, { token: "string", bracket: "@open", next: "@stringtemplate" }], + [/\d+/, "number"] + ], + stringtemplate: [ + [/[^\\\|]+/, "string"], + [/\\\|/, "string"], + [/\|/, { token: "string", bracket: "@close", next: "@pop" }] + ], + stringping: [ + [/[^\\`]+/, "string"], + [/`/, { token: "string", bracket: "@close", next: "@pop" }] + ], + stringquote: [ + [/[^\\']+/, "string"], + [/'/, { token: "string", bracket: "@close", next: "@pop" }] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/^\*.*$/, "comment"], + [/\".*$/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8480.07b41f57.js b/assets/js/8480.07b41f57.js new file mode 100644 index 00000000000..a7675dac016 --- /dev/null +++ b/assets/js/8480.07b41f57.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8480],{78480:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>s,default:()=>d,frontMatter:()=>p,metadata:()=>i,toc:()=>r});var a=n(87462),o=(n(67294),n(3905));n(45475);const p={title:"Empty",slug:"/types/empty"},s=void 0,i={unversionedId:"types/empty",id:"types/empty",title:"Empty",description:"The empty type has no values. It is the subtype of all other types (i.e. the bottom type).",source:"@site/docs/types/empty.md",sourceDirName:"types",slug:"/types/empty",permalink:"/en/docs/types/empty",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/empty.md",tags:[],version:"current",frontMatter:{title:"Empty",slug:"/types/empty"},sidebar:"docsSidebar",previous:{title:"Mixed",permalink:"/en/docs/types/mixed"},next:{title:"Any",permalink:"/en/docs/types/any"}},m={},r=[],l={toc:r};function d(e){let{components:t,...n}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"The ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty")," type has no values. It is the ",(0,o.mdx)("a",{parentName:"p",href:"../../lang/type-hierarchy"},"subtype of all other types")," (i.e. the ",(0,o.mdx)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Bottom_type"},"bottom type"),").\nIn this way it is the opposite of ",(0,o.mdx)("a",{parentName:"p",href:"../mixed"},(0,o.mdx)("inlineCode",{parentName:"a"},"mixed")),", which is the supertype of all types."),(0,o.mdx)("p",null,"It is not common to annotate your code using ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty"),". However, there are a couple of situations that it might be useful:"),(0,o.mdx)("p",null,"If you have a function that always throws, you can annotate the return as ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty"),", as the function never returns:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function throwIt(msg: string): empty {\n throw new Error(msg);\n}\n")),(0,o.mdx)("p",null,"You can use a cast to ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty")," to assert that you have refined away all members of a union:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function f(x: 'a' | 'b'): number {\n switch (x) {\n case 'a':\n return 1;\n case 'b':\n return 2;\n default:\n return (x: empty);\n }\n}\n")),(0,o.mdx)("p",null,"If you had not checked for all members of the union (for example, changed ",(0,o.mdx)("inlineCode",{parentName:"p"},"x")," to be of type ",(0,o.mdx)("inlineCode",{parentName:"p"},"'a' | 'b' | 'c'"),"),\nthen ",(0,o.mdx)("inlineCode",{parentName:"p"},"x")," would no longer be ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty")," in the ",(0,o.mdx)("inlineCode",{parentName:"p"},"default"),", and Flow would error."),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},"Note: If you want exhaustively checked enums by defualt, without having to cast to ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty"),",\nyou could enable and use ",(0,o.mdx)("a",{parentName:"p",href:"../../enums"},"Flow Enums")," in your project.")),(0,o.mdx)("p",null,"Since ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty")," is the subtype of all types, all operations are permitted on something that has the ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty")," type.\nHowever since no values can be ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty"),', this is "safe", unlike with ',(0,o.mdx)("a",{parentName:"p",href:"../any"},(0,o.mdx)("inlineCode",{parentName:"a"},"any")),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'const str = "hello";\n\nif (typeof str === "string") {\n (str: string); // Yes it\'s a string\n} else {\n // Works! Since we will never enter this branch\n (str: empty);\n const n: number = str + 1;\n}\n')),(0,o.mdx)("p",null,'We put "safe" in quotes above, as due type safety holes in your code or bugs within Flow itself,\nit is possible to get values which are ',(0,o.mdx)("inlineCode",{parentName:"p"},"empty")," typed."),(0,o.mdx)("p",null,"You can use the ",(0,o.mdx)("a",{parentName:"p",href:"../../cli/coverage/"},"coverage")," command to identify code typed as ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8506.dc7fd971.js b/assets/js/8506.dc7fd971.js new file mode 100644 index 00000000000..bfe6119ba03 --- /dev/null +++ b/assets/js/8506.dc7fd971.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8506],{18506:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>m,contentTitle:()=>d,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>i});var a=o(87462),n=(o(67294),o(3905));const r={title:"Supporting React.forwardRef and Beyond","short-title":"Supporting React.forwardRef",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/supporting-react-forwardref-and-beyond-f8dd88f35544"},d=void 0,s={permalink:"/blog/2018/12/13/React-Abstract-Component",source:"@site/blog/2018-12-13-React-Abstract-Component.md",title:"Supporting React.forwardRef and Beyond",description:"We made some major changes to our React model to better model new React components. Let's",date:"2018-12-13T00:00:00.000Z",formattedDate:"December 13, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Supporting React.forwardRef and Beyond","short-title":"Supporting React.forwardRef",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/supporting-react-forwardref-and-beyond-f8dd88f35544"},prevItem:{title:"What the Flow Team Has Been Up To",permalink:"/blog/2019/1/28/What-the-flow-team-has-been-up-to"},nextItem:{title:"Asking for Required Annotations",permalink:"/blog/2018/10/29/Asking-for-Required-Annotations"}},m={authorsImageUrls:[void 0]},i=[],p={toc:i};function c(e){let{components:t,...o}=e;return(0,n.mdx)("wrapper",(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"We made some major changes to our React model to better model new React components. Let's\ntalk about React.AbstractComponent!"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8528.45e71d7f.js b/assets/js/8528.45e71d7f.js new file mode 100644 index 00000000000..ceabfa451e5 --- /dev/null +++ b/assets/js/8528.45e71d7f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8528],{98528:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>r,toc:()=>m});var i=o(87462),t=(o(67294),o(3905));o(45475);const a={title:".flowconfig",slug:"/config",description:"Flow tries to work out of the box as much as possible, but can be configured to work with any codebase."},l=void 0,r={unversionedId:"config/index",id:"config/index",title:".flowconfig",description:"Flow tries to work out of the box as much as possible, but can be configured to work with any codebase.",source:"@site/docs/config/index.md",sourceDirName:"config",slug:"/config",permalink:"/en/docs/config",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/config/index.md",tags:[],version:"current",frontMatter:{title:".flowconfig",slug:"/config",description:"Flow tries to work out of the box as much as possible, but can be configured to work with any codebase."},sidebar:"docsSidebar",previous:{title:"Flow Annotate-Exports",permalink:"/en/docs/cli/annotate-exports"},next:{title:".flowconfig [version]",permalink:"/en/docs/config/version"}},d={},m=[{value:"<code>.flowconfig</code> format",id:"toc-flowconfig-format",level:3},{value:"Comments",id:"toc-comments",level:3},{value:"Where to put the <code>.flowconfig</code>",id:"toc-where-to-put-the-flowconfig",level:3},{value:"Example",id:"toc-example",level:3}],c={toc:m};function p(e){let{components:n,...o}=e;return(0,t.mdx)("wrapper",(0,i.Z)({},c,o,{components:n,mdxType:"MDXLayout"}),(0,t.mdx)("p",null,"Every Flow project contains a ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file. You can configure Flow by\nmodifying ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig"),". New projects or projects that are starting to use Flow\ncan generate a default ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," by running ",(0,t.mdx)("inlineCode",{parentName:"p"},"flow init"),"."),(0,t.mdx)("h3",{id:"toc-flowconfig-format"},(0,t.mdx)("inlineCode",{parentName:"h3"},".flowconfig")," format"),(0,t.mdx)("p",null,"The ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," uses a custom format that vaguely resembles INI files."),(0,t.mdx)("p",null,"The ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," consists of different sections:"),(0,t.mdx)("ul",null,(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"./version"},(0,t.mdx)("inlineCode",{parentName:"a"},"[version]"))),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"./options"},(0,t.mdx)("inlineCode",{parentName:"a"},"[options]"))),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"./include"},(0,t.mdx)("inlineCode",{parentName:"a"},"[include]"))),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"./ignore"},(0,t.mdx)("inlineCode",{parentName:"a"},"[ignore]"))),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"./untyped"},(0,t.mdx)("inlineCode",{parentName:"a"},"[untyped]"))),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"./declarations"},(0,t.mdx)("inlineCode",{parentName:"a"},"[declarations]"))),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"./libs"},(0,t.mdx)("inlineCode",{parentName:"a"},"[libs]"))),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"./lints"},(0,t.mdx)("inlineCode",{parentName:"a"},"[lints]"))),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"../strict/#toc-enabling-flow-strict-in-a-flowconfig"},(0,t.mdx)("inlineCode",{parentName:"a"},"[strict]")))),(0,t.mdx)("h3",{id:"toc-comments"},"Comments"),(0,t.mdx)("p",null,"Lines beginning with zero or more spaces followed by an ",(0,t.mdx)("inlineCode",{parentName:"p"},"#")," or ",(0,t.mdx)("inlineCode",{parentName:"p"},";")," or ",(0,t.mdx)("inlineCode",{parentName:"p"},"\ud83d\udca9")," are\nignored. For example:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"# This is a comment\n # This is a comment\n; This is a comment\n ; This is a comment\n\ud83d\udca9 This is a comment\n \ud83d\udca9 This is a comment\n")),(0,t.mdx)("h3",{id:"toc-where-to-put-the-flowconfig"},"Where to put the ",(0,t.mdx)("inlineCode",{parentName:"h3"},".flowconfig")),(0,t.mdx)("p",null,"The location of the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," is significant. Flow treats the directory that\ncontains the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," as the ",(0,t.mdx)("em",{parentName:"p"},"project root"),". By default Flow includes all\nthe source code under the project root. The paths in the\n",(0,t.mdx)("a",{parentName:"p",href:"./include"},"[include] section")," are relative to the project root. Some other\nconfiguration also lets you reference the project root via the macro\n",(0,t.mdx)("inlineCode",{parentName:"p"},"<PROJECT_ROOT>"),"."),(0,t.mdx)("p",null,"Most people put the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," in the root of their project (i.e. next to the\n",(0,t.mdx)("inlineCode",{parentName:"p"},"package.json"),"). Some people put all their code in a ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/")," directory and\ntherefore put the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," at ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/.flowconfig"),"."),(0,t.mdx)("h3",{id:"toc-example"},"Example"),(0,t.mdx)("p",null,"Say you have the following directory structure, with your ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," in\n",(0,t.mdx)("inlineCode",{parentName:"p"},"mydir"),":"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-text"},"otherdir\n\u2514\u2500\u2500 src\n \u251c\u2500\u2500 othercode.js\nmydir\n\u251c\u2500\u2500 .flowconfig\n\u251c\u2500\u2500 build\n\u2502 \u251c\u2500\u2500 first.js\n\u2502 \u2514\u2500\u2500 shim.js\n\u251c\u2500\u2500 lib\n\u2502 \u2514\u2500\u2500 flow\n\u251c\u2500\u2500 node_modules\n\u2502 \u2514\u2500\u2500 es6-shim\n\u2514\u2500\u2500 src\n \u251c\u2500\u2500 first.js\n \u2514\u2500\u2500 shim.js\n")),(0,t.mdx)("p",null,"Here is an example of how you could use the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," directives."),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-text"},"[include]\n../otherdir/src\n\n[ignore]\n.*/build/.*\n\n[libs]\n./lib\n")),(0,t.mdx)("p",null,"Now ",(0,t.mdx)("inlineCode",{parentName:"p"},"flow")," will include a directory outside the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," path in its\ncheck, ignore the ",(0,t.mdx)("inlineCode",{parentName:"p"},"build")," directory and use the declarations in ",(0,t.mdx)("inlineCode",{parentName:"p"},"lib"),"."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/854.8e35156d.js b/assets/js/854.8e35156d.js new file mode 100644 index 00000000000..b51493f2349 --- /dev/null +++ b/assets/js/854.8e35156d.js @@ -0,0 +1,2 @@ +/*! For license information please see 854.8e35156d.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[854],{60854:(e,t,s)=>{s.r(t),s.d(t,{conf:()=>r,language:()=>n});var r={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{blockComment:["###","###"],lineComment:"#"},folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},n={defaultToken:"",ignoreCase:!1,tokenPostfix:".mips",regEx:/\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/,keywords:[".data",".text","syscall","trap","add","addu","addi","addiu","and","andi","div","divu","mult","multu","nor","or","ori","sll","slv","sra","srav","srl","srlv","sub","subu","xor","xori","lhi","lho","lhi","llo","slt","slti","sltu","sltiu","beq","bgtz","blez","bne","j","jal","jalr","jr","lb","lbu","lh","lhu","lw","li","la","sb","sh","sw","mfhi","mflo","mthi","mtlo","move"],symbols:/[\.,\:]+/,escapes:/\\(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\$[a-zA-Z_]\w*/,"variable.predefined"],[/[.a-zA-Z_]\w*/,{cases:{this:"variable.predefined","@keywords":{token:"keyword.$0"},"@default":""}}],[/[ \t\r\n]+/,""],[/#.*$/,"comment"],["///",{token:"regexp",next:"@hereregexp"}],[/^(\s*)(@regEx)/,["","regexp"]],[/(\,)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\:)(\s*)(@regEx)/,["delimiter","","regexp"]],[/@symbols/,"delimiter"],[/\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d+\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/0[0-7]+(?!\d)/,"number.octal"],[/\d+/,"number"],[/[,.]/,"delimiter"],[/"""/,"string",'@herestring."""'],[/'''/,"string","@herestring.'''"],[/"/,{cases:{"@eos":"string","@default":{token:"string",next:'@string."'}}}],[/'/,{cases:{"@eos":"string","@default":{token:"string",next:"@string.'"}}}]],string:[[/[^"'\#\\]+/,"string"],[/@escapes/,"string.escape"],[/\./,"string.escape.invalid"],[/\./,"string.escape.invalid"],[/#{/,{cases:{'$S2=="':{token:"string",next:"root.interpolatedstring"},"@default":"string"}}],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/#/,"string"]],herestring:[[/("""|''')/,{cases:{"$1==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/[^#\\'"]+/,"string"],[/['"]+/,"string"],[/@escapes/,"string.escape"],[/\./,"string.escape.invalid"],[/#{/,{token:"string.quote",next:"root.interpolatedstring"}],[/#/,"string"]],comment:[[/[^#]+/,"comment"],[/#/,"comment"]],hereregexp:[[/[^\\\/#]+/,"regexp"],[/\\./,"regexp"],[/#.*$/,"comment"],["///[igm]*",{token:"regexp",next:"@pop"}],[/\//,"regexp"]]}}}}]); \ No newline at end of file diff --git a/assets/js/854.8e35156d.js.LICENSE.txt b/assets/js/854.8e35156d.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/854.8e35156d.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/854.9020f381.js b/assets/js/854.9020f381.js new file mode 100644 index 00000000000..bcc780766e7 --- /dev/null +++ b/assets/js/854.9020f381.js @@ -0,0 +1,213 @@ +"use strict"; +exports.id = 854; +exports.ids = [854]; +exports.modules = { + +/***/ 60854: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/mips/mips.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + blockComment: ["###", "###"], + lineComment: "#" + }, + folding: { + markers: { + start: new RegExp("^\\s*#region\\b"), + end: new RegExp("^\\s*#endregion\\b") + } + } +}; +var language = { + defaultToken: "", + ignoreCase: false, + tokenPostfix: ".mips", + regEx: /\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/, + keywords: [ + ".data", + ".text", + "syscall", + "trap", + "add", + "addu", + "addi", + "addiu", + "and", + "andi", + "div", + "divu", + "mult", + "multu", + "nor", + "or", + "ori", + "sll", + "slv", + "sra", + "srav", + "srl", + "srlv", + "sub", + "subu", + "xor", + "xori", + "lhi", + "lho", + "lhi", + "llo", + "slt", + "slti", + "sltu", + "sltiu", + "beq", + "bgtz", + "blez", + "bne", + "j", + "jal", + "jalr", + "jr", + "lb", + "lbu", + "lh", + "lhu", + "lw", + "li", + "la", + "sb", + "sh", + "sw", + "mfhi", + "mflo", + "mthi", + "mtlo", + "move" + ], + symbols: /[\.,\:]+/, + escapes: /\\(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + tokenizer: { + root: [ + [/\$[a-zA-Z_]\w*/, "variable.predefined"], + [ + /[.a-zA-Z_]\w*/, + { + cases: { + this: "variable.predefined", + "@keywords": { token: "keyword.$0" }, + "@default": "" + } + } + ], + [/[ \t\r\n]+/, ""], + [/#.*$/, "comment"], + ["///", { token: "regexp", next: "@hereregexp" }], + [/^(\s*)(@regEx)/, ["", "regexp"]], + [/(\,)(\s*)(@regEx)/, ["delimiter", "", "regexp"]], + [/(\:)(\s*)(@regEx)/, ["delimiter", "", "regexp"]], + [/@symbols/, "delimiter"], + [/\d+[eE]([\-+]?\d+)?/, "number.float"], + [/\d+\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F]+/, "number.hex"], + [/0[0-7]+(?!\d)/, "number.octal"], + [/\d+/, "number"], + [/[,.]/, "delimiter"], + [/"""/, "string", '@herestring."""'], + [/'''/, "string", "@herestring.'''"], + [ + /"/, + { + cases: { + "@eos": "string", + "@default": { token: "string", next: '@string."' } + } + } + ], + [ + /'/, + { + cases: { + "@eos": "string", + "@default": { token: "string", next: "@string.'" } + } + } + ] + ], + string: [ + [/[^"'\#\\]+/, "string"], + [/@escapes/, "string.escape"], + [/\./, "string.escape.invalid"], + [/\./, "string.escape.invalid"], + [ + /#{/, + { + cases: { + '$S2=="': { + token: "string", + next: "root.interpolatedstring" + }, + "@default": "string" + } + } + ], + [ + /["']/, + { + cases: { + "$#==$S2": { token: "string", next: "@pop" }, + "@default": "string" + } + } + ], + [/#/, "string"] + ], + herestring: [ + [ + /("""|''')/, + { + cases: { + "$1==$S2": { token: "string", next: "@pop" }, + "@default": "string" + } + } + ], + [/[^#\\'"]+/, "string"], + [/['"]+/, "string"], + [/@escapes/, "string.escape"], + [/\./, "string.escape.invalid"], + [/#{/, { token: "string.quote", next: "root.interpolatedstring" }], + [/#/, "string"] + ], + comment: [ + [/[^#]+/, "comment"], + [/#/, "comment"] + ], + hereregexp: [ + [/[^\\\/#]+/, "regexp"], + [/\\./, "regexp"], + [/#.*$/, "comment"], + ["///[igm]*", { token: "regexp", next: "@pop" }], + [/\//, "regexp"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8641.3df11c4b.js b/assets/js/8641.3df11c4b.js new file mode 100644 index 00000000000..0d97c2e43bb --- /dev/null +++ b/assets/js/8641.3df11c4b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8641],{58641:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>u,contentTitle:()=>m,default:()=>l,frontMatter:()=>r,metadata:()=>i,toc:()=>a});var n=s(87462),o=(s(67294),s(3905));const r={title:"TypeScript Enums vs. Flow Enums","short-title":"TypeScript Enums vs. Flow Enums",author:"George Zahariev","medium-link":"https://medium.com/flow-type/typescript-enums-vs-flow-enums-83da2ca4a9b4"},m=void 0,i={permalink:"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums",source:"@site/blog/2021-09-13-TypeScript-Enums-vs-Flow-Enums.md",title:"TypeScript Enums vs. Flow Enums",description:"A comparison of the enums features of TypeScript and Flow.",date:"2021-09-13T00:00:00.000Z",formattedDate:"September 13, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"TypeScript Enums vs. Flow Enums","short-title":"TypeScript Enums vs. Flow Enums",author:"George Zahariev","medium-link":"https://medium.com/flow-type/typescript-enums-vs-flow-enums-83da2ca4a9b4"},prevItem:{title:"Introducing Flow Enums",permalink:"/blog/2021/09/13/Introducing-Flow-Enums"},nextItem:{title:"Introducing Flow Indexed Access Types",permalink:"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types"}},u={authorsImageUrls:[void 0]},a=[],p={toc:a};function l(e){let{components:t,...s}=e;return(0,o.mdx)("wrapper",(0,n.Z)({},p,s,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"A comparison of the enums features of TypeScript and Flow."))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8670.266e1bf4.js b/assets/js/8670.266e1bf4.js new file mode 100644 index 00000000000..8659c82091d --- /dev/null +++ b/assets/js/8670.266e1bf4.js @@ -0,0 +1,243 @@ +"use strict"; +exports.id = 8670; +exports.ids = [8670]; +exports.modules = { + +/***/ 88670: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/shell/shell.ts +var conf = { + comments: { + lineComment: "#" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "`", close: "`" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "`", close: "`" } + ] +}; +var language = { + defaultToken: "", + ignoreCase: true, + tokenPostfix: ".shell", + brackets: [ + { token: "delimiter.bracket", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" } + ], + keywords: [ + "if", + "then", + "do", + "else", + "elif", + "while", + "until", + "for", + "in", + "esac", + "fi", + "fin", + "fil", + "done", + "exit", + "set", + "unset", + "export", + "function" + ], + builtins: [ + "ab", + "awk", + "bash", + "beep", + "cat", + "cc", + "cd", + "chown", + "chmod", + "chroot", + "clear", + "cp", + "curl", + "cut", + "diff", + "echo", + "find", + "gawk", + "gcc", + "get", + "git", + "grep", + "hg", + "kill", + "killall", + "ln", + "ls", + "make", + "mkdir", + "openssl", + "mv", + "nc", + "node", + "npm", + "ping", + "ps", + "restart", + "rm", + "rmdir", + "sed", + "service", + "sh", + "shopt", + "shred", + "source", + "sort", + "sleep", + "ssh", + "start", + "stop", + "su", + "sudo", + "svn", + "tee", + "telnet", + "top", + "touch", + "vi", + "vim", + "wall", + "wc", + "wget", + "who", + "write", + "yes", + "zsh" + ], + startingWithDash: /\-+\w+/, + identifiersWithDashes: /[a-zA-Z]\w+(?:@startingWithDash)+/, + symbols: /[=><!~?&|+\-*\/\^;\.,]+/, + tokenizer: { + root: [ + [/@identifiersWithDashes/, ""], + [/(\s)((?:@startingWithDash)+)/, ["white", "attribute.name"]], + [ + /[a-zA-Z]\w*/, + { + cases: { + "@keywords": "keyword", + "@builtins": "type.identifier", + "@default": "" + } + } + ], + { include: "@whitespace" }, + { include: "@strings" }, + { include: "@parameters" }, + { include: "@heredoc" }, + [/[{}\[\]()]/, "@brackets"], + [/@symbols/, "delimiter"], + { include: "@numbers" }, + [/[,;]/, "delimiter"] + ], + whitespace: [ + [/\s+/, "white"], + [/(^#!.*$)/, "metatag"], + [/(^#.*$)/, "comment"] + ], + numbers: [ + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, "number.hex"], + [/\d+/, "number"] + ], + strings: [ + [/'/, "string", "@stringBody"], + [/"/, "string", "@dblStringBody"] + ], + stringBody: [ + [/'/, "string", "@popall"], + [/./, "string"] + ], + dblStringBody: [ + [/"/, "string", "@popall"], + [/./, "string"] + ], + heredoc: [ + [ + /(<<[-<]?)(\s*)(['"`]?)([\w\-]+)(['"`]?)/, + [ + "constants", + "white", + "string.heredoc.delimiter", + "string.heredoc", + "string.heredoc.delimiter" + ] + ] + ], + parameters: [ + [/\$\d+/, "variable.predefined"], + [/\$\w+/, "variable"], + [/\$[*@#?\-$!0_]/, "variable"], + [/\$'/, "variable", "@parameterBodyQuote"], + [/\$"/, "variable", "@parameterBodyDoubleQuote"], + [/\$\(/, "variable", "@parameterBodyParen"], + [/\$\{/, "variable", "@parameterBodyCurlyBrace"] + ], + parameterBodyQuote: [ + [/[^#:%*@\-!_']+/, "variable"], + [/[#:%*@\-!_]/, "delimiter"], + [/[']/, "variable", "@pop"] + ], + parameterBodyDoubleQuote: [ + [/[^#:%*@\-!_"]+/, "variable"], + [/[#:%*@\-!_]/, "delimiter"], + [/["]/, "variable", "@pop"] + ], + parameterBodyParen: [ + [/[^#:%*@\-!_)]+/, "variable"], + [/[#:%*@\-!_]/, "delimiter"], + [/[)]/, "variable", "@pop"] + ], + parameterBodyCurlyBrace: [ + [/[^#:%*@\-!_}]+/, "variable"], + [/[#:%*@\-!_]/, "delimiter"], + [/[}]/, "variable", "@pop"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8670.522cc23d.js b/assets/js/8670.522cc23d.js new file mode 100644 index 00000000000..ee38a73372f --- /dev/null +++ b/assets/js/8670.522cc23d.js @@ -0,0 +1,2 @@ +/*! For license information please see 8670.522cc23d.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8670],{88670:(e,r,i)=>{i.r(r),i.d(r,{conf:()=>t,language:()=>s});var t={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".shell",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["if","then","do","else","elif","while","until","for","in","esac","fi","fin","fil","done","exit","set","unset","export","function"],builtins:["ab","awk","bash","beep","cat","cc","cd","chown","chmod","chroot","clear","cp","curl","cut","diff","echo","find","gawk","gcc","get","git","grep","hg","kill","killall","ln","ls","make","mkdir","openssl","mv","nc","node","npm","ping","ps","restart","rm","rmdir","sed","service","sh","shopt","shred","source","sort","sleep","ssh","start","stop","su","sudo","svn","tee","telnet","top","touch","vi","vim","wall","wc","wget","who","write","yes","zsh"],startingWithDash:/\-+\w+/,identifiersWithDashes:/[a-zA-Z]\w+(?:@startingWithDash)+/,symbols:/[=><!~?&|+\-*\/\^;\.,]+/,tokenizer:{root:[[/@identifiersWithDashes/,""],[/(\s)((?:@startingWithDash)+)/,["white","attribute.name"]],[/[a-zA-Z]\w*/,{cases:{"@keywords":"keyword","@builtins":"type.identifier","@default":""}}],{include:"@whitespace"},{include:"@strings"},{include:"@parameters"},{include:"@heredoc"},[/[{}\[\]()]/,"@brackets"],[/@symbols/,"delimiter"],{include:"@numbers"},[/[,;]/,"delimiter"]],whitespace:[[/\s+/,"white"],[/(^#!.*$)/,"metatag"],[/(^#.*$)/,"comment"]],numbers:[[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+/,"number"]],strings:[[/'/,"string","@stringBody"],[/"/,"string","@dblStringBody"]],stringBody:[[/'/,"string","@popall"],[/./,"string"]],dblStringBody:[[/"/,"string","@popall"],[/./,"string"]],heredoc:[[/(<<[-<]?)(\s*)(['"`]?)([\w\-]+)(['"`]?)/,["constants","white","string.heredoc.delimiter","string.heredoc","string.heredoc.delimiter"]]],parameters:[[/\$\d+/,"variable.predefined"],[/\$\w+/,"variable"],[/\$[*@#?\-$!0_]/,"variable"],[/\$'/,"variable","@parameterBodyQuote"],[/\$"/,"variable","@parameterBodyDoubleQuote"],[/\$\(/,"variable","@parameterBodyParen"],[/\$\{/,"variable","@parameterBodyCurlyBrace"]],parameterBodyQuote:[[/[^#:%*@\-!_']+/,"variable"],[/[#:%*@\-!_]/,"delimiter"],[/[']/,"variable","@pop"]],parameterBodyDoubleQuote:[[/[^#:%*@\-!_"]+/,"variable"],[/[#:%*@\-!_]/,"delimiter"],[/["]/,"variable","@pop"]],parameterBodyParen:[[/[^#:%*@\-!_)]+/,"variable"],[/[#:%*@\-!_]/,"delimiter"],[/[)]/,"variable","@pop"]],parameterBodyCurlyBrace:[[/[^#:%*@\-!_}]+/,"variable"],[/[#:%*@\-!_]/,"delimiter"],[/[}]/,"variable","@pop"]]}}}}]); \ No newline at end of file diff --git a/assets/js/8670.522cc23d.js.LICENSE.txt b/assets/js/8670.522cc23d.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8670.522cc23d.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/8712.1d41ff09.js b/assets/js/8712.1d41ff09.js new file mode 100644 index 00000000000..fb950feeaf0 --- /dev/null +++ b/assets/js/8712.1d41ff09.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8712],{68712:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>n,contentTitle:()=>i,default:()=>w,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var s=t(87462),r=(t(67294),t(3905));const a={title:"A More Responsive Flow","short-title":"A More Responsive Flow",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/a-more-responsive-flow-1a8cb01aec11"},i=void 0,l={permalink:"/blog/2019/2/8/A-More-Responsive-Flow",source:"@site/blog/2019-2-8-A-More-Responsive-Flow.md",title:"A More Responsive Flow",description:"Flow 0.92 improves on the Flow developer experience.",date:"2019-02-08T00:00:00.000Z",formattedDate:"February 8, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{title:"A More Responsive Flow","short-title":"A More Responsive Flow",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/a-more-responsive-flow-1a8cb01aec11"},prevItem:{title:"Upgrading Flow Codebases",permalink:"/blog/2019/4/9/Upgrading-Flow-Codebases"},nextItem:{title:"What the Flow Team Has Been Up To",permalink:"/blog/2019/1/28/What-the-flow-team-has-been-up-to"}},n={authorsImageUrls:[void 0]},p=[],m={toc:p};function w(e){let{components:o,...t}=e;return(0,r.mdx)("wrapper",(0,s.Z)({},m,t,{components:o,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Flow 0.92 improves on the Flow developer experience."))}w.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8713.c204a0f9.js b/assets/js/8713.c204a0f9.js new file mode 100644 index 00000000000..817adf6641a --- /dev/null +++ b/assets/js/8713.c204a0f9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8713],{40974:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>a,default:()=>c,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var o=n(87462),r=(n(67294),n(3905));const i={title:"Introducing Flow Enums","short-title":"Introducing Flow Enums",author:"George Zahariev","medium-link":"https://medium.com/flow-type/introducing-flow-enums-16d4239b3180"},a=void 0,s={permalink:"/blog/2021/09/13/Introducing-Flow-Enums",source:"@site/blog/2021-09-13-Introducing-Flow-Enums.md",title:"Introducing Flow Enums",description:"Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type.",date:"2021-09-13T00:00:00.000Z",formattedDate:"September 13, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Introducing Flow Enums","short-title":"Introducing Flow Enums",author:"George Zahariev","medium-link":"https://medium.com/flow-type/introducing-flow-enums-16d4239b3180"},prevItem:{title:"Introducing: Local Type Inference for Flow",permalink:"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow"},nextItem:{title:"TypeScript Enums vs. Flow Enums",permalink:"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums"}},u={authorsImageUrls:[void 0]},l=[],m={toc:l};function c(e){let{components:t,...n}=e;return(0,r.mdx)("wrapper",(0,o.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8715.172094c4.js b/assets/js/8715.172094c4.js new file mode 100644 index 00000000000..8c208275a04 --- /dev/null +++ b/assets/js/8715.172094c4.js @@ -0,0 +1,2 @@ +/*! For license information please see 8715.172094c4.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8715],{8715:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>o,language:()=>s});var o={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},s={tokenPostfix:".rust",defaultToken:"invalid",keywords:["as","async","await","box","break","const","continue","crate","dyn","else","enum","extern","false","fn","for","if","impl","in","let","loop","match","mod","move","mut","pub","ref","return","self","static","struct","super","trait","true","try","type","unsafe","use","where","while","catch","default","union","static","abstract","alignof","become","do","final","macro","offsetof","override","priv","proc","pure","sizeof","typeof","unsized","virtual","yield"],typeKeywords:["Self","m32","m64","m128","f80","f16","f128","int","uint","float","char","bool","u8","u16","u32","u64","f32","f64","i8","i16","i32","i64","str","Option","Either","c_float","c_double","c_void","FILE","fpos_t","DIR","dirent","c_char","c_schar","c_uchar","c_short","c_ushort","c_int","c_uint","c_long","c_ulong","size_t","ptrdiff_t","clock_t","time_t","c_longlong","c_ulonglong","intptr_t","uintptr_t","off_t","dev_t","ino_t","pid_t","mode_t","ssize_t"],constants:["true","false","Some","None","Left","Right","Ok","Err"],supportConstants:["EXIT_FAILURE","EXIT_SUCCESS","RAND_MAX","EOF","SEEK_SET","SEEK_CUR","SEEK_END","_IOFBF","_IONBF","_IOLBF","BUFSIZ","FOPEN_MAX","FILENAME_MAX","L_tmpnam","TMP_MAX","O_RDONLY","O_WRONLY","O_RDWR","O_APPEND","O_CREAT","O_EXCL","O_TRUNC","S_IFIFO","S_IFCHR","S_IFBLK","S_IFDIR","S_IFREG","S_IFMT","S_IEXEC","S_IWRITE","S_IREAD","S_IRWXU","S_IXUSR","S_IWUSR","S_IRUSR","F_OK","R_OK","W_OK","X_OK","STDIN_FILENO","STDOUT_FILENO","STDERR_FILENO"],supportMacros:["format!","print!","println!","panic!","format_args!","unreachable!","write!","writeln!"],operators:["!","!=","%","%=","&","&=","&&","*","*=","+","+=","-","-=","->",".","..","...","/","/=",":",";","<<","<<=","<","<=","=","==","=>",">",">=",">>",">>=","@","^","^=","|","|=","||","_","?","#"],escapes:/\\([nrt0\"''\\]|x\h{2}|u\{\h{1,6}\})/,delimiters:/[,]/,symbols:/[\#\!\%\&\*\+\-\.\/\:\;\<\=\>\@\^\|_\?]+/,intSuffixes:/[iu](8|16|32|64|128|size)/,floatSuffixes:/f(32|64)/,tokenizer:{root:[[/r(#*)"/,{token:"string.quote",bracket:"@open",next:"@stringraw.$1"}],[/[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/,{cases:{"@typeKeywords":"keyword.type","@keywords":"keyword","@supportConstants":"keyword","@supportMacros":"keyword","@constants":"keyword","@default":"identifier"}}],[/\$/,"identifier"],[/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\'])/,"identifier"],[/'(\S|@escapes)'/,"string.byteliteral"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],{include:"@numbers"},{include:"@whitespace"},[/@delimiters/,{cases:{"@keywords":"keyword","@default":"delimiter"}}],[/[{}()\[\]<>]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],stringraw:[[/[^"#]+/,{token:"string"}],[/"(#*)/,{cases:{"$1==$S2":{token:"string.quote",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/["#]/,{token:"string"}]],numbers:[[/(0o[0-7_]+)(@intSuffixes)?/,{token:"number"}],[/(0b[0-1_]+)(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(\.[\d][\d_]*)?[eE][+-][\d_]+(@floatSuffixes)?/,{token:"number"}],[/\b(\d\.?[\d_]*)(@floatSuffixes)?\b/,{token:"number"}],[/(0x[\da-fA-F]+)_?(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(@intSuffixes?)?/,{token:"number"}]]}}}}]); \ No newline at end of file diff --git a/assets/js/8715.172094c4.js.LICENSE.txt b/assets/js/8715.172094c4.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8715.172094c4.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/8715.8b394ad8.js b/assets/js/8715.8b394ad8.js new file mode 100644 index 00000000000..d058a5e9d5d --- /dev/null +++ b/assets/js/8715.8b394ad8.js @@ -0,0 +1,356 @@ +"use strict"; +exports.id = 8715; +exports.ids = [8715]; +exports.modules = { + +/***/ 8715: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/rust/rust.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "[", close: "]" }, + { open: "{", close: "}" }, + { open: "(", close: ")" }, + { open: '"', close: '"', notIn: ["string"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + folding: { + markers: { + start: new RegExp("^\\s*#pragma\\s+region\\b"), + end: new RegExp("^\\s*#pragma\\s+endregion\\b") + } + } +}; +var language = { + tokenPostfix: ".rust", + defaultToken: "invalid", + keywords: [ + "as", + "async", + "await", + "box", + "break", + "const", + "continue", + "crate", + "dyn", + "else", + "enum", + "extern", + "false", + "fn", + "for", + "if", + "impl", + "in", + "let", + "loop", + "match", + "mod", + "move", + "mut", + "pub", + "ref", + "return", + "self", + "static", + "struct", + "super", + "trait", + "true", + "try", + "type", + "unsafe", + "use", + "where", + "while", + "catch", + "default", + "union", + "static", + "abstract", + "alignof", + "become", + "do", + "final", + "macro", + "offsetof", + "override", + "priv", + "proc", + "pure", + "sizeof", + "typeof", + "unsized", + "virtual", + "yield" + ], + typeKeywords: [ + "Self", + "m32", + "m64", + "m128", + "f80", + "f16", + "f128", + "int", + "uint", + "float", + "char", + "bool", + "u8", + "u16", + "u32", + "u64", + "f32", + "f64", + "i8", + "i16", + "i32", + "i64", + "str", + "Option", + "Either", + "c_float", + "c_double", + "c_void", + "FILE", + "fpos_t", + "DIR", + "dirent", + "c_char", + "c_schar", + "c_uchar", + "c_short", + "c_ushort", + "c_int", + "c_uint", + "c_long", + "c_ulong", + "size_t", + "ptrdiff_t", + "clock_t", + "time_t", + "c_longlong", + "c_ulonglong", + "intptr_t", + "uintptr_t", + "off_t", + "dev_t", + "ino_t", + "pid_t", + "mode_t", + "ssize_t" + ], + constants: ["true", "false", "Some", "None", "Left", "Right", "Ok", "Err"], + supportConstants: [ + "EXIT_FAILURE", + "EXIT_SUCCESS", + "RAND_MAX", + "EOF", + "SEEK_SET", + "SEEK_CUR", + "SEEK_END", + "_IOFBF", + "_IONBF", + "_IOLBF", + "BUFSIZ", + "FOPEN_MAX", + "FILENAME_MAX", + "L_tmpnam", + "TMP_MAX", + "O_RDONLY", + "O_WRONLY", + "O_RDWR", + "O_APPEND", + "O_CREAT", + "O_EXCL", + "O_TRUNC", + "S_IFIFO", + "S_IFCHR", + "S_IFBLK", + "S_IFDIR", + "S_IFREG", + "S_IFMT", + "S_IEXEC", + "S_IWRITE", + "S_IREAD", + "S_IRWXU", + "S_IXUSR", + "S_IWUSR", + "S_IRUSR", + "F_OK", + "R_OK", + "W_OK", + "X_OK", + "STDIN_FILENO", + "STDOUT_FILENO", + "STDERR_FILENO" + ], + supportMacros: [ + "format!", + "print!", + "println!", + "panic!", + "format_args!", + "unreachable!", + "write!", + "writeln!" + ], + operators: [ + "!", + "!=", + "%", + "%=", + "&", + "&=", + "&&", + "*", + "*=", + "+", + "+=", + "-", + "-=", + "->", + ".", + "..", + "...", + "/", + "/=", + ":", + ";", + "<<", + "<<=", + "<", + "<=", + "=", + "==", + "=>", + ">", + ">=", + ">>", + ">>=", + "@", + "^", + "^=", + "|", + "|=", + "||", + "_", + "?", + "#" + ], + escapes: /\\([nrt0\"''\\]|x\h{2}|u\{\h{1,6}\})/, + delimiters: /[,]/, + symbols: /[\#\!\%\&\*\+\-\.\/\:\;\<\=\>\@\^\|_\?]+/, + intSuffixes: /[iu](8|16|32|64|128|size)/, + floatSuffixes: /f(32|64)/, + tokenizer: { + root: [ + [/r(#*)"/, { token: "string.quote", bracket: "@open", next: "@stringraw.$1" }], + [ + /[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/, + { + cases: { + "@typeKeywords": "keyword.type", + "@keywords": "keyword", + "@supportConstants": "keyword", + "@supportMacros": "keyword", + "@constants": "keyword", + "@default": "identifier" + } + } + ], + [/\$/, "identifier"], + [/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\'])/, "identifier"], + [/'(\S|@escapes)'/, "string.byteliteral"], + [/"/, { token: "string.quote", bracket: "@open", next: "@string" }], + { include: "@numbers" }, + { include: "@whitespace" }, + [ + /@delimiters/, + { + cases: { + "@keywords": "keyword", + "@default": "delimiter" + } + } + ], + [/[{}()\[\]<>]/, "@brackets"], + [/@symbols/, { cases: { "@operators": "operator", "@default": "" } }] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\/\*/, "comment", "@push"], + ["\\*/", "comment", "@pop"], + [/[\/*]/, "comment"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + stringraw: [ + [/[^"#]+/, { token: "string" }], + [ + /"(#*)/, + { + cases: { + "$1==$S2": { token: "string.quote", bracket: "@close", next: "@pop" }, + "@default": { token: "string" } + } + } + ], + [/["#]/, { token: "string" }] + ], + numbers: [ + [/(0o[0-7_]+)(@intSuffixes)?/, { token: "number" }], + [/(0b[0-1_]+)(@intSuffixes)?/, { token: "number" }], + [/[\d][\d_]*(\.[\d][\d_]*)?[eE][+-][\d_]+(@floatSuffixes)?/, { token: "number" }], + [/\b(\d\.?[\d_]*)(@floatSuffixes)?\b/, { token: "number" }], + [/(0x[\da-fA-F]+)_?(@intSuffixes)?/, { token: "number" }], + [/[\d][\d_]*(@intSuffixes?)?/, { token: "number" }] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8719.644b750e.js b/assets/js/8719.644b750e.js new file mode 100644 index 00000000000..6806b1777d7 --- /dev/null +++ b/assets/js/8719.644b750e.js @@ -0,0 +1,2 @@ +/*! For license information please see 8719.644b750e.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8719],{18719:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>s,language:()=>o});var s={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},o={defaultToken:"",tokenPostfix:".cs",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["extern","alias","using","bool","decimal","sbyte","byte","short","ushort","int","uint","long","ulong","char","float","double","object","dynamic","string","assembly","is","as","ref","out","this","base","new","typeof","void","checked","unchecked","default","delegate","var","const","if","else","switch","case","while","do","for","foreach","in","break","continue","goto","return","throw","try","catch","finally","lock","yield","from","let","where","join","on","equals","into","orderby","ascending","descending","select","group","by","namespace","partial","class","field","event","method","param","public","protected","internal","private","abstract","sealed","static","struct","readonly","volatile","virtual","override","params","get","set","add","remove","operator","true","false","implicit","explicit","interface","enum","null","async","await","fixed","sizeof","stackalloc","unsafe","nameof","when"],namespaceFollows:["namespace","using"],parenFollows:["if","for","while","switch","foreach","using","catch","when"],operators:["=","??","||","&&","|","^","&","==","!=","<=",">=","<<","+","-","*","/","%","!","~","++","--","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=",">>","=>"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\@?[a-zA-Z_]\w*/,{cases:{"@namespaceFollows":{token:"keyword.$0",next:"@namespace"},"@keywords":{token:"keyword.$0",next:"@qualified"},"@default":{token:"identifier",next:"@qualified"}}}],{include:"@whitespace"},[/}/,{cases:{"$S2==interpolatedstring":{token:"string.quote",next:"@pop"},"$S2==litinterpstring":{token:"string.quote",next:"@pop"},"@default":"@brackets"}}],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01_]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",next:"@string"}],[/\$\@"/,{token:"string.quote",next:"@litinterpstring"}],[/\@"/,{token:"string.quote",next:"@litstring"}],[/\$"/,{token:"string.quote",next:"@interpolatedstring"}],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],qualified:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/\./,"delimiter"],["","","@pop"]],namespace:[{include:"@whitespace"},[/[A-Z]\w*/,"namespace"],[/[\.=]/,"delimiter"],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]],litinterpstring:[[/[^"{]+/,"string"],[/""/,"string.escape"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.litinterpstring"}],[/"/,{token:"string.quote",next:"@pop"}]],interpolatedstring:[[/[^\\"{]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.interpolatedstring"}],[/"/,{token:"string.quote",next:"@pop"}]],whitespace:[[/^[ \t\v\f]*#((r)|(load))(?=\s)/,"directive.csx"],[/^[ \t\v\f]*#\w.*$/,"namespace.cpp"],[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/8719.644b750e.js.LICENSE.txt b/assets/js/8719.644b750e.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8719.644b750e.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/8719.ec1724e6.js b/assets/js/8719.ec1724e6.js new file mode 100644 index 00000000000..e757e03d15c --- /dev/null +++ b/assets/js/8719.ec1724e6.js @@ -0,0 +1,339 @@ +"use strict"; +exports.id = 8719; +exports.ids = [8719]; +exports.modules = { + +/***/ 18719: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/csharp/csharp.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string", "comment"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" }, + { open: '"', close: '"' } + ], + folding: { + markers: { + start: new RegExp("^\\s*#region\\b"), + end: new RegExp("^\\s*#endregion\\b") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".cs", + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + keywords: [ + "extern", + "alias", + "using", + "bool", + "decimal", + "sbyte", + "byte", + "short", + "ushort", + "int", + "uint", + "long", + "ulong", + "char", + "float", + "double", + "object", + "dynamic", + "string", + "assembly", + "is", + "as", + "ref", + "out", + "this", + "base", + "new", + "typeof", + "void", + "checked", + "unchecked", + "default", + "delegate", + "var", + "const", + "if", + "else", + "switch", + "case", + "while", + "do", + "for", + "foreach", + "in", + "break", + "continue", + "goto", + "return", + "throw", + "try", + "catch", + "finally", + "lock", + "yield", + "from", + "let", + "where", + "join", + "on", + "equals", + "into", + "orderby", + "ascending", + "descending", + "select", + "group", + "by", + "namespace", + "partial", + "class", + "field", + "event", + "method", + "param", + "public", + "protected", + "internal", + "private", + "abstract", + "sealed", + "static", + "struct", + "readonly", + "volatile", + "virtual", + "override", + "params", + "get", + "set", + "add", + "remove", + "operator", + "true", + "false", + "implicit", + "explicit", + "interface", + "enum", + "null", + "async", + "await", + "fixed", + "sizeof", + "stackalloc", + "unsafe", + "nameof", + "when" + ], + namespaceFollows: ["namespace", "using"], + parenFollows: ["if", "for", "while", "switch", "foreach", "using", "catch", "when"], + operators: [ + "=", + "??", + "||", + "&&", + "|", + "^", + "&", + "==", + "!=", + "<=", + ">=", + "<<", + "+", + "-", + "*", + "/", + "%", + "!", + "~", + "++", + "--", + "+=", + "-=", + "*=", + "/=", + "%=", + "&=", + "|=", + "^=", + "<<=", + ">>=", + ">>", + "=>" + ], + symbols: /[=><!~?:&|+\-*\/\^%]+/, + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + tokenizer: { + root: [ + [ + /\@?[a-zA-Z_]\w*/, + { + cases: { + "@namespaceFollows": { + token: "keyword.$0", + next: "@namespace" + }, + "@keywords": { + token: "keyword.$0", + next: "@qualified" + }, + "@default": { token: "identifier", next: "@qualified" } + } + } + ], + { include: "@whitespace" }, + [ + /}/, + { + cases: { + "$S2==interpolatedstring": { + token: "string.quote", + next: "@pop" + }, + "$S2==litinterpstring": { + token: "string.quote", + next: "@pop" + }, + "@default": "@brackets" + } + } + ], + [/[{}()\[\]]/, "@brackets"], + [/[<>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/, "number.float"], + [/0[xX][0-9a-fA-F_]+/, "number.hex"], + [/0[bB][01_]+/, "number.hex"], + [/[0-9_]+/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"/, { token: "string.quote", next: "@string" }], + [/\$\@"/, { token: "string.quote", next: "@litinterpstring" }], + [/\@"/, { token: "string.quote", next: "@litstring" }], + [/\$"/, { token: "string.quote", next: "@interpolatedstring" }], + [/'[^\\']'/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + qualified: [ + [ + /[a-zA-Z_][\w]*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "identifier" + } + } + ], + [/\./, "delimiter"], + ["", "", "@pop"] + ], + namespace: [ + { include: "@whitespace" }, + [/[A-Z]\w*/, "namespace"], + [/[\.=]/, "delimiter"], + ["", "", "@pop"] + ], + comment: [ + [/[^\/*]+/, "comment"], + ["\\*/", "comment", "@pop"], + [/[\/*]/, "comment"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, { token: "string.quote", next: "@pop" }] + ], + litstring: [ + [/[^"]+/, "string"], + [/""/, "string.escape"], + [/"/, { token: "string.quote", next: "@pop" }] + ], + litinterpstring: [ + [/[^"{]+/, "string"], + [/""/, "string.escape"], + [/{{/, "string.escape"], + [/}}/, "string.escape"], + [/{/, { token: "string.quote", next: "root.litinterpstring" }], + [/"/, { token: "string.quote", next: "@pop" }] + ], + interpolatedstring: [ + [/[^\\"{]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/{{/, "string.escape"], + [/}}/, "string.escape"], + [/{/, { token: "string.quote", next: "root.interpolatedstring" }], + [/"/, { token: "string.quote", next: "@pop" }] + ], + whitespace: [ + [/^[ \t\v\f]*#((r)|(load))(?=\s)/, "directive.csx"], + [/^[ \t\v\f]*#\w.*$/, "namespace.cpp"], + [/[ \t\v\f\r\n]+/, ""], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8748.af6aff9f.js b/assets/js/8748.af6aff9f.js new file mode 100644 index 00000000000..f39b5e3fcbe --- /dev/null +++ b/assets/js/8748.af6aff9f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8748],{28748:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>s,metadata:()=>r,toc:()=>d});var o=t(87462),i=(t(67294),t(3905));const s={title:"Version 0.21.0","short-title":"Version 0.21.0",author:"Gabe Levi",hide_table_of_contents:!0},a=void 0,r={permalink:"/blog/2016/02/02/Version-0.21.0",source:"@site/blog/2016-02-02-Version-0.21.0.md",title:"Version 0.21.0",description:"Yesterday we deployed Flow v0.21.0! As always, we've listed out the most",date:"2016-02-02T00:00:00.000Z",formattedDate:"February 2, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Version 0.21.0","short-title":"Version 0.21.0",author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"New Implementation of Unions and Intersections",permalink:"/blog/2016/07/01/New-Unions-Intersections"},nextItem:{title:"Version-0.19.0",permalink:"/blog/2015/12/01/Version-0.19.0"}},l={authorsImageUrls:[void 0]},d=[{value:"JSX Intrinsics",id:"jsx-intrinsics",level:3}],m={toc:d};function p(e){let{components:n,...t}=e;return(0,i.mdx)("wrapper",(0,o.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Yesterday we deployed Flow v0.21.0! As always, we've listed out the most\ninteresting changes in the\n",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/master/Changelog.md#v0210"},"Changelog"),".\nHowever, since I'm on a plane and can't sleep, I thought it might be fun to\ndive into a couple of the changes! Hope this blog post turns out interesting\nand legible!"),(0,i.mdx)("h3",{id:"jsx-intrinsics"},"JSX Intrinsics"),(0,i.mdx)("p",null,"If you're writing JSX, it's probably a mix of your own React Components and\nsome intrinsics. For example, you might write"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},'render() {\n return <div><FluffyBunny name="Fifi" /></div>;\n}\n')),(0,i.mdx)("p",null,"In this example, ",(0,i.mdx)("inlineCode",{parentName:"p"},"FluffyBunny")," is a React Component you wrote and ",(0,i.mdx)("inlineCode",{parentName:"p"},"div")," is a\nJSX intrinsic. Lower-cased JSX elements are assumed to be intrinsics by React\nand by Flow. Up until Flow v0.21.0, Flow ignored intrinsics and gave them the\ntype ",(0,i.mdx)("inlineCode",{parentName:"p"},"any"),". This meant Flow let you set any property on JSX intrinsics. Flow\nv0.21.0 will, by default, do the same thing as v0.20.0, However now you can\nalso configure Flow to properly type your JSX intrinsics!"))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8757.e063498f.js b/assets/js/8757.e063498f.js new file mode 100644 index 00000000000..677723740e9 --- /dev/null +++ b/assets/js/8757.e063498f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8757],{28757:(n,t,e)=>{e.r(t),e.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>u});var o=e(87462),s=(e(67294),e(3905));const i={title:"Requiring More Annotations to Functions and Classes in Flow","short-title":"Functions and Classes Annotation Requirements",author:"Sam Zhou","medium-link":"https://medium.com/flow-type/requiring-more-annotations-to-functions-and-classes-in-flow-e8aa9b1d76bd"},a=void 0,r={permalink:"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes",source:"@site/blog/2022-09-30-Requiring-More-Annotations-on-Functions-and-Classes.md",title:"Requiring More Annotations to Functions and Classes in Flow",description:"Flow will now require more annotations to functions and classes.",date:"2022-09-30T00:00:00.000Z",formattedDate:"September 30, 2022",tags:[],hasTruncateMarker:!1,authors:[{name:"Sam Zhou"}],frontMatter:{title:"Requiring More Annotations to Functions and Classes in Flow","short-title":"Functions and Classes Annotation Requirements",author:"Sam Zhou","medium-link":"https://medium.com/flow-type/requiring-more-annotations-to-functions-and-classes-in-flow-e8aa9b1d76bd"},prevItem:{title:"Improved handling of the empty object in Flow",permalink:"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow"},nextItem:{title:"New Flow Language Rule: Constrained Writes",permalink:"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes"}},l={authorsImageUrls:[void 0]},u=[],m={toc:u};function d(n){let{components:t,...e}=n;return(0,s.mdx)("wrapper",(0,o.Z)({},m,e,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Flow will now require more annotations to functions and classes."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8819.8f01a10a.js b/assets/js/8819.8f01a10a.js new file mode 100644 index 00000000000..b6a2d147250 --- /dev/null +++ b/assets/js/8819.8f01a10a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8819],{98819:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>d,contentTitle:()=>t,default:()=>p,frontMatter:()=>l,metadata:()=>r,toc:()=>s});var i=n(87462),a=(n(67294),n(3905));const l={author:"Gabe Levi",hide_table_of_contents:!0},t=void 0,r={permalink:"/blog/2015/12/01/Version-0.19.0",source:"@site/blog/2015-12-01-Version-0.19.0.md",title:"Version-0.19.0",description:"Flow v0.19.0 was deployed today! It has a ton of changes, which the",date:"2015-12-01T00:00:00.000Z",formattedDate:"December 1, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Version 0.21.0",permalink:"/blog/2016/02/02/Version-0.21.0"},nextItem:{title:"Typing Generators with Flow",permalink:"/blog/2015/11/09/Generators"}},d={authorsImageUrls:[void 0]},s=[{value:"<code>@noflow</code>",id:"noflow",level:3},{value:"Declaration files",id:"declaration-files",level:3},{value:"Order of precedence for lib files",id:"order-of-precedence-for-lib-files",level:3},{value:"Deferred initialization",id:"deferred-initialization",level:3}],m={toc:s};function p(e){let{components:o,...n}=e;return(0,a.mdx)("wrapper",(0,i.Z)({},m,n,{components:o,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Flow v0.19.0 was deployed today! It has a ton of changes, which the\n",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/master/Changelog.md#v0190"},"Changelog"),"\nsummarizes. The Changelog can be a little concise, though, so here are some\nlonger explanations for some of the changes. Hope this helps!"),(0,a.mdx)("h3",{id:"noflow"},(0,a.mdx)("inlineCode",{parentName:"h3"},"@noflow")),(0,a.mdx)("p",null,"Flow is opt-in by default (you add ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow")," to a file). However we noticed that\nsometimes people would add Flow annotations to files that were missing ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow"),".\nOften, these people didn't notice that the file was being ignored by Flow. So\nwe decided to stop allowing Flow syntax in non-Flow files. This is easily fixed\nby adding either ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow")," or ",(0,a.mdx)("inlineCode",{parentName:"p"},"@noflow")," to your file. The former will make the\nfile a Flow file. The latter will tell Flow to completely ignore the file."),(0,a.mdx)("h3",{id:"declaration-files"},"Declaration files"),(0,a.mdx)("p",null,"Files that end with ",(0,a.mdx)("inlineCode",{parentName:"p"},".flow")," are now treated specially. They are the preferred\nprovider of modules. That is if both ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js")," and ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js.flow")," exist, then\nwhen you write ",(0,a.mdx)("inlineCode",{parentName:"p"},"import Foo from './foo'"),", Flow will use the type exported from\n",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js.flow")," rather than ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js"),"."),(0,a.mdx)("p",null,"We imagine two main ways people will use ",(0,a.mdx)("inlineCode",{parentName:"p"},".flow")," files."),(0,a.mdx)("ol",null,(0,a.mdx)("li",{parentName:"ol"},(0,a.mdx)("p",{parentName:"li"},"As interface files. Maybe you have some library ",(0,a.mdx)("inlineCode",{parentName:"p"},"coolLibrary.js")," that is\nreally hard to type with inline Flow types. You could put\n",(0,a.mdx)("inlineCode",{parentName:"p"},"coolLibrary.js.flow")," next to it and declare the types that ",(0,a.mdx)("inlineCode",{parentName:"p"},"coolLibrary.js"),"\nexports."),(0,a.mdx)("pre",{parentName:"li"},(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"// coolLibrary.js.flow\ndeclare export var coolVar: number;\ndeclare export function coolFunction(): void;\ndeclare export class coolClass {}\n"))),(0,a.mdx)("li",{parentName:"ol"},(0,a.mdx)("p",{parentName:"li"},"As the original source. Maybe you want to ship the minified, transformed\nversion of ",(0,a.mdx)("inlineCode",{parentName:"p"},"awesomeLibrary.js"),", but people who use ",(0,a.mdx)("inlineCode",{parentName:"p"},"awesomeLibrary.js")," also\nuse Flow. Well you could do something like"),(0,a.mdx)("pre",{parentName:"li"},(0,a.mdx)("code",{parentName:"pre",className:"language-bash"},"cp awesomeLibraryOriginalCode.js awesomeLibrary.js.flow\nbabel awesomeLibraryOriginalCode --out-file awesomeLibrary.js\n")))),(0,a.mdx)("h3",{id:"order-of-precedence-for-lib-files"},"Order of precedence for lib files"),(0,a.mdx)("p",null,"Now your local lib files will override the builtin lib files. Is one of the\nbuiltin flow libs wrong? Send a pull request! But then while you're waiting for\nthe next release, you can use your own definition! The order of precedence is\nas follows:"),(0,a.mdx)("ol",null,(0,a.mdx)("li",{parentName:"ol"},"Any paths supplied on the command line via --lib"),(0,a.mdx)("li",{parentName:"ol"},"The files found in the paths specified in the .flowconfig ",(0,a.mdx)("inlineCode",{parentName:"li"},"[libs]")," (in\nlisting order)"),(0,a.mdx)("li",{parentName:"ol"},"The Flow core library files")),(0,a.mdx)("p",null,"For example, if I want to override the builtin definition of Array and instead\nuse my own version, I could update my ",(0,a.mdx)("inlineCode",{parentName:"p"},".flowconfig")," to contain"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre"},"// .flowconfig\n[libs]\nmyArray.js\n")),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"// myArray.js\ndeclare class Array<T> {\n // Put whatever you like in here!\n}\n")),(0,a.mdx)("h3",{id:"deferred-initialization"},"Deferred initialization"),(0,a.mdx)("p",null,"Previously the following code was an error, because the initialization of\n",(0,a.mdx)("inlineCode",{parentName:"p"},"myString")," happens later. Now Flow is fine with it."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},'function foo(someFlag: boolean): string {\n var myString:string;\n if (someFlag) {\n myString = "yup";\n } else {\n myString = "nope";\n }\n return myString;\n}\n')))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8880.0e52c112.js b/assets/js/8880.0e52c112.js new file mode 100644 index 00000000000..4857d03847a --- /dev/null +++ b/assets/js/8880.0e52c112.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8880],{18880:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>r,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var a=t(87462),l=(t(67294),t(3905));t(45475);const o={title:"Tuples",slug:"/types/tuples"},r=void 0,i={unversionedId:"types/tuples",id:"types/tuples",title:"Tuples",description:"Tuple types represent a fixed length list, where the elements can have different types.",source:"@site/docs/types/tuples.md",sourceDirName:"types",slug:"/types/tuples",permalink:"/en/docs/types/tuples",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/tuples.md",tags:[],version:"current",frontMatter:{title:"Tuples",slug:"/types/tuples"},sidebar:"docsSidebar",previous:{title:"Arrays",permalink:"/en/docs/types/arrays"},next:{title:"Classes",permalink:"/en/docs/types/classes"}},s={},p=[{value:"Tuple Basics",id:"tuple-basics",level:2},{value:"Strictly enforced tuple length (arity)",id:"toc-strictly-enforced-tuple-length-arity",level:2},{value:"Tuples don't match array types",id:"toc-tuples-don-t-match-array-types",level:2},{value:"Cannot use mutating array methods on tuples",id:"toc-cannot-use-mutating-array-methods-on-tuples",level:2},{value:"Length refinement",id:"length-refinement",level:2},{value:"Tuple element labels",id:"tuple-element-labels",level:2},{value:"Variance annotations and read-only tuples",id:"variance-annotations-and-read-only-tuples",level:2},{value:"Optional tuple elements",id:"optional-tuple-elements",level:2},{value:"Tuple spread",id:"tuple-spread",level:2},{value:"Adoption",id:"adoption",level:2}],u={toc:p};function m(e){let{components:n,...t}=e;return(0,l.mdx)("wrapper",(0,a.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,l.mdx)("p",null,"Tuple types represent a ",(0,l.mdx)("strong",{parentName:"p"},"fixed length")," list, where the elements can have ",(0,l.mdx)("strong",{parentName:"p"},"different types"),".\nThis is in contrast to ",(0,l.mdx)("a",{parentName:"p",href:"../arrays"},"array types"),", which have an unknown length and all elements have the same type."),(0,l.mdx)("h2",{id:"tuple-basics"},"Tuple Basics"),(0,l.mdx)("p",null,"JavaScript array literal values can be used to create both tuple and array types:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const arr: Array<number> = [1, 2, 3]; // As an array type\nconst tup: [number, number, number] = [1, 2, 3]; // As a tuple type\n")),(0,l.mdx)("p",null,"In Flow you can create tuple types using the ",(0,l.mdx)("inlineCode",{parentName:"p"},"[type1, type2, type3]")," syntax:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'const tuple1: [number] = [1];\nconst tuple2: [number, boolean] = [1, true];\nconst tuple3: [number, boolean, string] = [1, true, "three"];\n')),(0,l.mdx)("p",null,"When you get a value from a tuple at a specific index, it will return the\ntype at that index:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'const tuple: [number, boolean, string] = [1, true, "three"];\n\nconst num: number = tuple[0]; // Works!\nconst bool: boolean = tuple[1]; // Works!\nconst str: string = tuple[2]; // Works!\n')),(0,l.mdx)("p",null,"Trying to access an index that does not exist results in an index-out-of-bounds error:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",3:!0,className:"language-flow",metastring:'[{"startLine":3,"startColumn":14,"endLine":3,"endColumn":21,"description":"Cannot get `tuple[3]` because tuple type [1] only has 3 elements, so index 3 is out of bounds. [invalid-tuple-index]"}]','[{"startLine":3,"startColumn":14,"endLine":3,"endColumn":21,"description":"Cannot':!0,get:!0,"`tuple[3]`":!0,because:!0,tuple:!0,type:!0,"[1]":!0,only:!0,has:!0,"elements,":!0,so:!0,index:!0,is:!0,out:!0,of:!0,"bounds.":!0,'[invalid-tuple-index]"}]':!0},'const tuple: [number, boolean, string] = [1, true, "three"];\n\nconst none = tuple[3]; // Error!\n')),(0,l.mdx)("p",null,"If Flow doesn't know which index you are trying to access it will return all\npossible types:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'const tuple: [number, boolean, string] = [1, true, "three"];\n\nfunction getItem(n: number) {\n const val: number | boolean | string = tuple[n];\n // ...\n}\n')),(0,l.mdx)("p",null,"When setting a new value inside a tuple, the new value must match the type at\nthat index:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":12,"endLine":7,"endColumn":16,"description":"Cannot assign `\\"bar\\"` to `tuple[0]` because string [1] is incompatible with number [2]. [incompatible-type]"},{"startLine":8,"startColumn":12,"endLine":8,"endColumn":13,"description":"Cannot assign `42` to `tuple[1]` because number [1] is incompatible with boolean [2]. [incompatible-type]"},{"startLine":9,"startColumn":12,"endLine":9,"endColumn":16,"description":"Cannot assign `false` to `tuple[2]` because boolean [1] is incompatible with string [2]. [incompatible-type]"}]','[{"startLine":7,"startColumn":12,"endLine":7,"endColumn":16,"description":"Cannot':!0,assign:!0,'`\\"bar\\"`':!0,to:!0,"`tuple[0]`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,'[incompatible-type]"},{"startLine":8,"startColumn":12,"endLine":8,"endColumn":13,"description":"Cannot':!0,"`42`":!0,"`tuple[1]`":!0,boolean:!0,'[incompatible-type]"},{"startLine":9,"startColumn":12,"endLine":9,"endColumn":16,"description":"Cannot':!0,"`false`":!0,"`tuple[2]`":!0,'[incompatible-type]"}]':!0},'const tuple: [number, boolean, string] = [1, true, "three"];\n\ntuple[0] = 2; // Works!\ntuple[1] = false; // Works!\ntuple[2] = "foo"; // Works!\n\ntuple[0] = "bar"; // Error!\ntuple[1] = 42; // Error!\ntuple[2] = false; // Error!\n')),(0,l.mdx)("h2",{id:"toc-strictly-enforced-tuple-length-arity"},"Strictly enforced tuple length (arity)"),(0,l.mdx)("p",null,'The length of the tuple is known as the "arity". The length of a tuple is\nstrictly enforced in Flow.'),(0,l.mdx)("p",null,"This means that a shorter tuple can't be used in place of a longer one:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",2:!0,3:!0,className:"language-flow",metastring:'[{"startLine":3,"startColumn":41,"endLine":3,"endColumn":46,"description":"Cannot assign `tuple1` to `tuple2` because tuple type [1] has 2 elements but tuple type [2] has 3 elements. [invalid-tuple-arity]"}]','[{"startLine":3,"startColumn":41,"endLine":3,"endColumn":46,"description":"Cannot':!0,assign:!0,"`tuple1`":!0,to:!0,"`tuple2`":!0,because:!0,tuple:!0,type:!0,"[1]":!0,has:!0,elements:!0,but:!0,"[2]":!0,"elements.":!0,'[invalid-tuple-arity]"}]':!0},"const tuple1: [number, boolean] = [1, true];\n\nconst tuple2: [number, boolean, void] = tuple1; // Error!\n")),(0,l.mdx)("p",null,"Also, a longer tuple can't be used in place of a shorter one:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",2:!0,3:!0,className:"language-flow",metastring:'[{"startLine":3,"startColumn":35,"endLine":3,"endColumn":40,"description":"Cannot assign `tuple1` to `tuple2` because tuple type [1] has 3 elements but tuple type [2] has 2 elements. [invalid-tuple-arity]"}]','[{"startLine":3,"startColumn":35,"endLine":3,"endColumn":40,"description":"Cannot':!0,assign:!0,"`tuple1`":!0,to:!0,"`tuple2`":!0,because:!0,tuple:!0,type:!0,"[1]":!0,has:!0,elements:!0,but:!0,"[2]":!0,"elements.":!0,'[invalid-tuple-arity]"}]':!0},"const tuple1: [number, boolean, void] = [1, true, undefined];\n\nconst tuple2: [number, boolean] = tuple1; // Error!\n")),(0,l.mdx)("p",null,(0,l.mdx)("a",{parentName:"p",href:"#optional-tuple-elements"},"Optional elements")," make the arity into a range."),(0,l.mdx)("h2",{id:"toc-tuples-don-t-match-array-types"},"Tuples don't match array types"),(0,l.mdx)("p",null,"Since Flow does not know the length of an array, an ",(0,l.mdx)("inlineCode",{parentName:"p"},"Array<T>")," type cannot be\npassed into a tuple:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":33,"endLine":3,"endColumn":37,"description":"Cannot assign `array` to `tuple` because array type [1] has an unknown number of elements, so is incompatible with tuple type [2]. [invalid-tuple-arity]"}]','[{"startLine":3,"startColumn":33,"endLine":3,"endColumn":37,"description":"Cannot':!0,assign:!0,"`array`":!0,to:!0,"`tuple`":!0,because:!0,array:!0,type:!0,"[1]":!0,has:!0,an:!0,unknown:!0,number:!0,of:!0,"elements,":!0,so:!0,is:!0,incompatible:!0,with:!0,tuple:!0,"[2].":!0,'[invalid-tuple-arity]"}]':!0},"const array: Array<number> = [1, 2];\n\nconst tuple: [number, number] = array; // Error!\n")),(0,l.mdx)("p",null,"Also a tuple type cannot be passed into to an ",(0,l.mdx)("inlineCode",{parentName:"p"},"Array<T>")," type, since then you\ncould mutate the tuple in an unsafe way (for example, ",(0,l.mdx)("inlineCode",{parentName:"p"},"push"),"ing a third item onto it):"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":30,"endLine":3,"endColumn":34,"description":"Cannot assign `tuple` to `array` because tuple type [1] is incompatible with array type [2]. [incompatible-type]"}]','[{"startLine":3,"startColumn":30,"endLine":3,"endColumn":34,"description":"Cannot':!0,assign:!0,"`tuple`":!0,to:!0,"`array`":!0,because:!0,tuple:!0,type:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,array:!0,"[2].":!0,'[incompatible-type]"}]':!0},"const tuple: [number, number] = [1, 2];\n\nconst array: Array<number> = tuple; // Error!\n")),(0,l.mdx)("p",null,"However, you can pass it to a ",(0,l.mdx)("a",{parentName:"p",href:"../arrays/#toc-readonlyarray"},(0,l.mdx)("inlineCode",{parentName:"a"},"$ReadOnlyArray"))," type, since mutation is disallowed:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const tuple: [number, number] = [1, 2];\n\nconst array: $ReadOnlyArray<number> = tuple; // Works!\n")),(0,l.mdx)("h2",{id:"toc-cannot-use-mutating-array-methods-on-tuples"},"Cannot use mutating array methods on tuples"),(0,l.mdx)("p",null,"You cannot use ",(0,l.mdx)("inlineCode",{parentName:"p"},"Array.prototype")," methods that mutate the tuple, only ones that do not:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":7,"endLine":4,"endColumn":10,"description":"Cannot call `tuple.push` because property `push` is missing in `$ReadOnlyArray` [1]. [prop-missing]"}]','[{"startLine":4,"startColumn":7,"endLine":4,"endColumn":10,"description":"Cannot':!0,call:!0,"`tuple.push`":!0,because:!0,property:!0,"`push`":!0,is:!0,missing:!0,in:!0,"`$ReadOnlyArray`":!0,"[1].":!0,'[prop-missing]"}]':!0},"const tuple: [number, number] = [1, 2];\ntuple.join(', '); // Works!\n\ntuple.push(3); // Error!\n")),(0,l.mdx)("h2",{id:"length-refinement"},"Length refinement"),(0,l.mdx)("p",null,"You can refine a ",(0,l.mdx)("a",{parentName:"p",href:"../unions"},"union")," of tuples by their length:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Union = [number, string] | [boolean];\nfunction f(x: Union) {\n if (x.length === 2) {\n // `x` is `[number, string]`\n const n: number = x[0]; // OK\n const s: string = x[1]; // OK\n } else {\n // `x` is `[boolean]`\n const b: boolean = x[0];\n }\n}\n")),(0,l.mdx)("h2",{id:"tuple-element-labels"},"Tuple element labels"),(0,l.mdx)("blockquote",null,(0,l.mdx)("p",{parentName:"blockquote"},'NOTE: This and the following sections require your tooling to be updated as described in the "Adoption" section at the end of this page.')),(0,l.mdx)("p",null,"You can add a label to tuple elements. This label does not affect the type of the tuple element,\nbut is useful in self-documenting the purpose of the tuple elements, especially when multiple elements have the same type."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Range = [x: number, y: number];\n")),(0,l.mdx)("p",null,"The label is also necessary to add a variance annotation or optionality modifier to an element (as without the label we would have parsing ambiguities)."),(0,l.mdx)("h2",{id:"variance-annotations-and-read-only-tuples"},"Variance annotations and read-only tuples"),(0,l.mdx)("p",null,"You can add ",(0,l.mdx)("a",{parentName:"p",href:"../../lang/variance"},"variance")," annotations (to denote read-only/write-only) on labeled tuple elements, just like on object properties:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type T = [+foo: number, -bar: string];\n")),(0,l.mdx)("p",null,"This allows you to mark elements as read-only or write-only. For example:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":3,"endLine":3,"endColumn":18,"description":"Cannot assign `1` to `readOnlyTuple[1]` because tuple element at index `1` [1] labeled `bar` is not writable. [cannot-write]"},{"startLine":3,"startColumn":22,"endLine":3,"endColumn":22,"description":"Cannot assign `1` to `readOnlyTuple[1]` because number [1] is incompatible with string [2]. [incompatible-type]"}]','[{"startLine":3,"startColumn":3,"endLine":3,"endColumn":18,"description":"Cannot':!0,assign:!0,"`1`":!0,to:!0,"`readOnlyTuple[1]`":!0,because:!0,tuple:!0,element:!0,at:!0,index:!0,"[1]":!0,labeled:!0,"`bar`":!0,is:!0,not:!0,"writable.":!0,'[cannot-write]"},{"startLine":3,"startColumn":22,"endLine":3,"endColumn":22,"description":"Cannot':!0,number:!0,incompatible:!0,with:!0,string:!0,"[2].":!0,'[incompatible-type]"}]':!0},"function f(readOnlyTuple: [+foo: number, +bar: string]) {\n const n: number = readOnlyTuple[0]; // OK to read\n readOnlyTuple[1] = 1; // ERROR! Cannot write\n}\n")),(0,l.mdx)("p",null,"You can also use the ",(0,l.mdx)("a",{parentName:"p",href:"../utilities/#toc-readonly"},(0,l.mdx)("inlineCode",{parentName:"a"},"$ReadOnly"))," on tuple types as a shorthand for marking each property as read-only:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type T = $ReadOnly<[number, string]>; // Same as `[+a: number, +b: string]`\n")),(0,l.mdx)("h2",{id:"optional-tuple-elements"},"Optional tuple elements"),(0,l.mdx)("p",null,"You can mark tuple elements as optional with ",(0,l.mdx)("inlineCode",{parentName:"p"},"?")," after an element\u2019s label. This allows you to omit the optional elements.\nOptional elements must be at the end of the tuple type, after all required elements."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'type T = [foo: number, bar?: string];\n([1, "s"]: T); // OK: has all elements\n([1]: T); // OK: skipping optional element\n')),(0,l.mdx)("p",null,"You cannot write ",(0,l.mdx)("inlineCode",{parentName:"p"},"undefined")," to the optional element - add ",(0,l.mdx)("inlineCode",{parentName:"p"},"| void")," to the element type if you want to do so:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":8,"endLine":3,"endColumn":16,"description":"Cannot assign `undefined` to `x[0]` because you cannot assign undefined [1] to optional tuple element [2] (to do so, add `| void` to the tuple element type). [incompatible-type]"},{"startLine":4,"startColumn":3,"endLine":4,"endColumn":11,"description":"Cannot cast array literal to `T` because you cannot assign undefined [1] to optional tuple element [2] (to do so, add `| void` to the tuple element type) in index 0. [incompatible-cast]"}]','[{"startLine":3,"startColumn":8,"endLine":3,"endColumn":16,"description":"Cannot':!0,assign:!0,"`undefined`":!0,to:!0,"`x[0]`":!0,because:!0,you:!0,cannot:!0,undefined:!0,"[1]":!0,optional:!0,tuple:!0,element:!0,"[2]":!0,"(to":!0,do:!0,"so,":!0,add:!0,"`|":!0,"void`":!0,the:!0,"type).":!0,'[incompatible-type]"},{"startLine":4,"startColumn":3,"endLine":4,"endColumn":11,"description":"Cannot':!0,cast:!0,array:!0,literal:!0,"`T`":!0,"type)":!0,in:!0,index:!0,"0.":!0,'[incompatible-cast]"}]':!0},"type T = [foo?: number, bar?: number | void];\ndeclare const x: T;\nx[0] = undefined; // ERROR\n([undefined]: T); // ERROR\n\nx[1] = undefined; // OK: we've added `| void` to the element type\n")),(0,l.mdx)("p",null,"You can also use the ",(0,l.mdx)("a",{parentName:"p",href:"../utilities/#toc-partial"},(0,l.mdx)("inlineCode",{parentName:"a"},"Partial"))," and ",(0,l.mdx)("a",{parentName:"p",href:"../utilities/#toc-required"},(0,l.mdx)("inlineCode",{parentName:"a"},"Required"))," utility types to make all elements optional or required respectively:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",0:!0,2:!0,className:"language-flow",metastring:'[{"startLine":5,"startColumn":2,"endLine":5,"endColumn":3,"description":"Cannot cast array literal to required of `AllOptional` because empty array literal [1] has 0 elements but `AllOptional` [2] has 2 elements. [invalid-tuple-arity]"}]','[{"startLine":5,"startColumn":2,"endLine":5,"endColumn":3,"description":"Cannot':!0,cast:!0,array:!0,literal:!0,to:!0,required:!0,of:!0,"`AllOptional`":!0,because:!0,empty:!0,"[1]":!0,has:!0,elements:!0,but:!0,"[2]":!0,"elements.":!0,'[invalid-tuple-arity]"}]':!0},"type AllRequired = [number, string];\n([]: Partial<AllRequired>); // OK: like `[a?: number, b?: string]` now\n\ntype AllOptional = [a?: number, b?: string];\n([]: Required<AllOptional>); // ERROR: like `[a: number, b: string]` now\n")),(0,l.mdx)("p",null,"Tuples with optional elements have an arity (length) that is a range rather than a single number. For example, ",(0,l.mdx)("inlineCode",{parentName:"p"},"[number, b?: string]")," has an length of 1-2."),(0,l.mdx)("h2",{id:"tuple-spread"},"Tuple spread"),(0,l.mdx)("p",null,"You can spread a tuple type into another tuple type to make a longer tuple type:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'type A = [number, string];\ntype T = [...A, boolean]; // Same as `[number, string, boolean]`\n([1, "s", true]: T); // OK\n')),(0,l.mdx)("p",null,"Tuple spreads preserve labels, variance, and optionality. You cannot spread arrays into tuples, only other tuples."),(0,l.mdx)("p",null,"At the value level, if you spread a tuple with optional elements into an array literal, then you cannot have anything after that spread and retain the tuple view of the array value.\nThat is because a tuple with optional elements has a length that's a range, so we don't know at what index any subsequent values would be at.\nYou can still type this value as the appropriate ",(0,l.mdx)("inlineCode",{parentName:"p"},"Array<T>")," type - only the tuple view of the value is affected."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":2,"endLine":3,"endColumn":2,"description":"Cannot cast `b` to tuple type because array literal [1] has an unknown number of elements, so is incompatible with tuple type [2]. [invalid-tuple-arity]"},{"startLine":9,"startColumn":2,"endLine":9,"endColumn":2,"description":"Cannot cast `e` to tuple type because array literal [1] has an unknown number of elements, so is incompatible with tuple type [2]. [invalid-tuple-arity]"}]','[{"startLine":3,"startColumn":2,"endLine":3,"endColumn":2,"description":"Cannot':!0,cast:!0,"`b`":!0,to:!0,tuple:!0,type:!0,because:!0,array:!0,literal:!0,"[1]":!0,has:!0,an:!0,unknown:!0,number:!0,of:!0,"elements,":!0,so:!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[invalid-tuple-arity]"},{"startLine":9,"startColumn":2,"endLine":9,"endColumn":2,"description":"Cannot':!0,"`e`":!0,'[invalid-tuple-arity]"}]':!0},"const a: [foo?: 1] = [];\nconst b = [0, ...a, 2]; // At runtime this is `[0, 2]`\n(b: [0, 1 | void, 2]); // ERROR\n(b: Array<number | void>); // OK\n\nconst c: [0, foo?: 1] = [0];\nconst d: [bar?: 2] = [2];\nconst e = [...c, ...d]; // At runtime this is `[0, 2]`\n(e: [0, foo?: 1, bar?: 2]); // ERROR\n(e: Array<number | void>); // OK\n")),(0,l.mdx)("h2",{id:"adoption"},"Adoption"),(0,l.mdx)("p",null,"To use labeled tuple elements (including optional elements and variance annotations on elements) and tuple spread elements,\nyou need to upgrade your infrastructure so that it supports the syntax:"),(0,l.mdx)("ul",null,(0,l.mdx)("li",{parentName:"ul"},(0,l.mdx)("inlineCode",{parentName:"li"},"flow")," and ",(0,l.mdx)("inlineCode",{parentName:"li"},"flow-parser"),": 0.212.0"),(0,l.mdx)("li",{parentName:"ul"},(0,l.mdx)("inlineCode",{parentName:"li"},"prettier"),": 3"),(0,l.mdx)("li",{parentName:"ul"},(0,l.mdx)("inlineCode",{parentName:"li"},"babel")," with ",(0,l.mdx)("inlineCode",{parentName:"li"},"babel-plugin-syntax-hermes-parser"),". See ",(0,l.mdx)("a",{parentName:"li",href:"../../tools/babel/"},"our Babel guide")," for setup instructions."),(0,l.mdx)("li",{parentName:"ul"},(0,l.mdx)("inlineCode",{parentName:"li"},"eslint")," with ",(0,l.mdx)("inlineCode",{parentName:"li"},"hermes-eslint"),". See ",(0,l.mdx)("a",{parentName:"li",href:"../../tools/eslint/"},"our ESLint guide")," for setup instructions.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8894.52aa9cfa.js b/assets/js/8894.52aa9cfa.js new file mode 100644 index 00000000000..7f5998153a3 --- /dev/null +++ b/assets/js/8894.52aa9cfa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8894],{18894:(e,s,w)=>{w.r(s)}}]); \ No newline at end of file diff --git a/assets/js/8899.b1fe8204.js b/assets/js/8899.b1fe8204.js new file mode 100644 index 00000000000..b4cbad836d8 --- /dev/null +++ b/assets/js/8899.b1fe8204.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8899],{68899:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>p,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var n=o(87462),s=(o(67294),o(3905));const r={title:"Introducing Flow Indexed Access Types","short-title":"Flow Indexed Access Types",author:"George Zahariev","medium-link":"https://medium.com/flow-type/introducing-flow-indexed-access-types-b27175251fd0"},a=void 0,i={permalink:"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types",source:"@site/blog/2021-07-21-Introducing-Flow-Indexed-Access-Types.md",title:"Introducing Flow Indexed Access Types",description:"Flow\u2019s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type.",date:"2021-07-21T00:00:00.000Z",formattedDate:"July 21, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Introducing Flow Indexed Access Types","short-title":"Flow Indexed Access Types",author:"George Zahariev","medium-link":"https://medium.com/flow-type/introducing-flow-indexed-access-types-b27175251fd0"},prevItem:{title:"TypeScript Enums vs. Flow Enums",permalink:"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums"},nextItem:{title:"Sound Typing for 'this' in Flow",permalink:"/blog/2021/06/02/Sound-Typing-for-this-in-Flow"}},d={authorsImageUrls:[void 0]},c=[],l={toc:c};function p(e){let{components:t,...o}=e;return(0,s.mdx)("wrapper",(0,n.Z)({},l,o,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Flow\u2019s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8906.90c5de7a.js b/assets/js/8906.90c5de7a.js new file mode 100644 index 00000000000..276cc06af87 --- /dev/null +++ b/assets/js/8906.90c5de7a.js @@ -0,0 +1,2 @@ +/*! For license information please see 8906.90c5de7a.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8906],{38906:(e,s,t)=>{t.r(s),t.d(s,{conf:()=>o,language:()=>E});var o={comments:{blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"(*",close:"*)"},{open:"<*",close:"*>"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}]},E={defaultToken:"",tokenPostfix:".m3",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["AND","ANY","ARRAY","AS","BEGIN","BITS","BRANDED","BY","CASE","CONST","DIV","DO","ELSE","ELSIF","END","EVAL","EXCEPT","EXCEPTION","EXIT","EXPORTS","FINALLY","FOR","FROM","GENERIC","IF","IMPORT","IN","INTERFACE","LOCK","LOOP","METHODS","MOD","MODULE","NOT","OBJECT","OF","OR","OVERRIDES","PROCEDURE","RAISE","RAISES","READONLY","RECORD","REF","REPEAT","RETURN","REVEAL","SET","THEN","TO","TRY","TYPE","TYPECASE","UNSAFE","UNTIL","UNTRACED","VALUE","VAR","WHILE","WITH"],reservedConstNames:["ABS","ADR","ADRSIZE","BITSIZE","BYTESIZE","CEILING","DEC","DISPOSE","FALSE","FIRST","FLOAT","FLOOR","INC","ISTYPE","LAST","LOOPHOLE","MAX","MIN","NARROW","NEW","NIL","NUMBER","ORD","ROUND","SUBARRAY","TRUE","TRUNC","TYPECODE","VAL"],reservedTypeNames:["ADDRESS","ANY","BOOLEAN","CARDINAL","CHAR","EXTENDED","INTEGER","LONGCARD","LONGINT","LONGREAL","MUTEX","NULL","REAL","REFANY","ROOT","TEXT"],operators:["+","-","*","/","&","^","."],relations:["=","#","<","<=",">",">=","<:",":"],delimiters:["|","..","=>",",",";",":="],symbols:/[>=<#.,:;+\-*/&^]+/,escapes:/\\(?:[\\fnrt"']|[0-7]{3})/,tokenizer:{root:[[/_\w*/,"invalid"],[/[a-zA-Z][a-zA-Z0-9_]*/,{cases:{"@keywords":{token:"keyword.$0"},"@reservedConstNames":{token:"constant.reserved.$0"},"@reservedTypeNames":{token:"type.reserved.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[0-9]+\.[0-9]+(?:[DdEeXx][\+\-]?[0-9]+)?/,"number.float"],[/[0-9]+(?:\_[0-9a-fA-F]+)?L?/,"number"],[/@symbols/,{cases:{"@operators":"operators","@relations":"operators","@delimiters":"delimiter","@default":"invalid"}}],[/'[^\\']'/,"string.char"],[/(')(@escapes)(')/,["string.char","string.escape","string.char"]],[/'/,"invalid"],[/"([^"\\]|\\.)*$/,"invalid"],[/"/,"string.text","@text"]],text:[[/[^\\"]+/,"string.text"],[/@escapes/,"string.escape"],[/\\./,"invalid"],[/"/,"string.text","@pop"]],comment:[[/\(\*/,"comment","@push"],[/\*\)/,"comment","@pop"],[/./,"comment"]],pragma:[[/<\*/,"keyword.pragma","@push"],[/\*>/,"keyword.pragma","@pop"],[/./,"keyword.pragma"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/<\*/,"keyword.pragma","@pragma"]]}}}}]); \ No newline at end of file diff --git a/assets/js/8906.90c5de7a.js.LICENSE.txt b/assets/js/8906.90c5de7a.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8906.90c5de7a.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/8906.ef7cf848.js b/assets/js/8906.ef7cf848.js new file mode 100644 index 00000000000..48debf3aef7 --- /dev/null +++ b/assets/js/8906.ef7cf848.js @@ -0,0 +1,229 @@ +"use strict"; +exports.id = 8906; +exports.ids = [8906]; +exports.modules = { + +/***/ 43994: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/m3/m3.ts +var conf = { + comments: { + blockComment: ["(*", "*)"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "[", close: "]" }, + { open: "{", close: "}" }, + { open: "(", close: ")" }, + { open: "(*", close: "*)" }, + { open: "<*", close: "*>" }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string", "comment"] } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".m3", + brackets: [ + { token: "delimiter.curly", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" } + ], + keywords: [ + "AND", + "ANY", + "ARRAY", + "AS", + "BEGIN", + "BITS", + "BRANDED", + "BY", + "CASE", + "CONST", + "DIV", + "DO", + "ELSE", + "ELSIF", + "END", + "EVAL", + "EXCEPT", + "EXCEPTION", + "EXIT", + "EXPORTS", + "FINALLY", + "FOR", + "FROM", + "GENERIC", + "IF", + "IMPORT", + "IN", + "INTERFACE", + "LOCK", + "LOOP", + "METHODS", + "MOD", + "MODULE", + "NOT", + "OBJECT", + "OF", + "OR", + "OVERRIDES", + "PROCEDURE", + "RAISE", + "RAISES", + "READONLY", + "RECORD", + "REF", + "REPEAT", + "RETURN", + "REVEAL", + "SET", + "THEN", + "TO", + "TRY", + "TYPE", + "TYPECASE", + "UNSAFE", + "UNTIL", + "UNTRACED", + "VALUE", + "VAR", + "WHILE", + "WITH" + ], + reservedConstNames: [ + "ABS", + "ADR", + "ADRSIZE", + "BITSIZE", + "BYTESIZE", + "CEILING", + "DEC", + "DISPOSE", + "FALSE", + "FIRST", + "FLOAT", + "FLOOR", + "INC", + "ISTYPE", + "LAST", + "LOOPHOLE", + "MAX", + "MIN", + "NARROW", + "NEW", + "NIL", + "NUMBER", + "ORD", + "ROUND", + "SUBARRAY", + "TRUE", + "TRUNC", + "TYPECODE", + "VAL" + ], + reservedTypeNames: [ + "ADDRESS", + "ANY", + "BOOLEAN", + "CARDINAL", + "CHAR", + "EXTENDED", + "INTEGER", + "LONGCARD", + "LONGINT", + "LONGREAL", + "MUTEX", + "NULL", + "REAL", + "REFANY", + "ROOT", + "TEXT" + ], + operators: ["+", "-", "*", "/", "&", "^", "."], + relations: ["=", "#", "<", "<=", ">", ">=", "<:", ":"], + delimiters: ["|", "..", "=>", ",", ";", ":="], + symbols: /[>=<#.,:;+\-*/&^]+/, + escapes: /\\(?:[\\fnrt"']|[0-7]{3})/, + tokenizer: { + root: [ + [/_\w*/, "invalid"], + [ + /[a-zA-Z][a-zA-Z0-9_]*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@reservedConstNames": { token: "constant.reserved.$0" }, + "@reservedTypeNames": { token: "type.reserved.$0" }, + "@default": "identifier" + } + } + ], + { include: "@whitespace" }, + [/[{}()\[\]]/, "@brackets"], + [/[0-9]+\.[0-9]+(?:[DdEeXx][\+\-]?[0-9]+)?/, "number.float"], + [/[0-9]+(?:\_[0-9a-fA-F]+)?L?/, "number"], + [ + /@symbols/, + { + cases: { + "@operators": "operators", + "@relations": "operators", + "@delimiters": "delimiter", + "@default": "invalid" + } + } + ], + [/'[^\\']'/, "string.char"], + [/(')(@escapes)(')/, ["string.char", "string.escape", "string.char"]], + [/'/, "invalid"], + [/"([^"\\]|\\.)*$/, "invalid"], + [/"/, "string.text", "@text"] + ], + text: [ + [/[^\\"]+/, "string.text"], + [/@escapes/, "string.escape"], + [/\\./, "invalid"], + [/"/, "string.text", "@pop"] + ], + comment: [ + [/\(\*/, "comment", "@push"], + [/\*\)/, "comment", "@pop"], + [/./, "comment"] + ], + pragma: [ + [/<\*/, "keyword.pragma", "@push"], + [/\*>/, "keyword.pragma", "@pop"], + [/./, "keyword.pragma"] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/\(\*/, "comment", "@comment"], + [/<\*/, "keyword.pragma", "@pragma"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8946.a7036c9d.js b/assets/js/8946.a7036c9d.js new file mode 100644 index 00000000000..e07ea282f95 --- /dev/null +++ b/assets/js/8946.a7036c9d.js @@ -0,0 +1,2 @@ +/*! For license information please see 8946.a7036c9d.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8946],{68946:(t,e,r)=>{r.r(e),r.d(e,{conf:()=>s,language:()=>n});var s={brackets:[],autoClosingPairs:[],surroundingPairs:[]},n={keywords:[],typeKeywords:[],tokenPostfix:".csp",operators:[],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/child-src/,"string.quote"],[/connect-src/,"string.quote"],[/default-src/,"string.quote"],[/font-src/,"string.quote"],[/frame-src/,"string.quote"],[/img-src/,"string.quote"],[/manifest-src/,"string.quote"],[/media-src/,"string.quote"],[/object-src/,"string.quote"],[/script-src/,"string.quote"],[/style-src/,"string.quote"],[/worker-src/,"string.quote"],[/base-uri/,"string.quote"],[/plugin-types/,"string.quote"],[/sandbox/,"string.quote"],[/disown-opener/,"string.quote"],[/form-action/,"string.quote"],[/frame-ancestors/,"string.quote"],[/report-uri/,"string.quote"],[/report-to/,"string.quote"],[/upgrade-insecure-requests/,"string.quote"],[/block-all-mixed-content/,"string.quote"],[/require-sri-for/,"string.quote"],[/reflected-xss/,"string.quote"],[/referrer/,"string.quote"],[/policy-uri/,"string.quote"],[/'self'/,"string.quote"],[/'unsafe-inline'/,"string.quote"],[/'unsafe-eval'/,"string.quote"],[/'strict-dynamic'/,"string.quote"],[/'unsafe-hashed-attributes'/,"string.quote"]]}}}}]); \ No newline at end of file diff --git a/assets/js/8946.a7036c9d.js.LICENSE.txt b/assets/js/8946.a7036c9d.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8946.a7036c9d.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/8946.a960f7e2.js b/assets/js/8946.a960f7e2.js new file mode 100644 index 00000000000..0f50ccc43af --- /dev/null +++ b/assets/js/8946.a960f7e2.js @@ -0,0 +1,76 @@ +"use strict"; +exports.id = 8946; +exports.ids = [8946]; +exports.modules = { + +/***/ 68946: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/csp/csp.ts +var conf = { + brackets: [], + autoClosingPairs: [], + surroundingPairs: [] +}; +var language = { + keywords: [], + typeKeywords: [], + tokenPostfix: ".csp", + operators: [], + symbols: /[=><!~?:&|+\-*\/\^%]+/, + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + tokenizer: { + root: [ + [/child-src/, "string.quote"], + [/connect-src/, "string.quote"], + [/default-src/, "string.quote"], + [/font-src/, "string.quote"], + [/frame-src/, "string.quote"], + [/img-src/, "string.quote"], + [/manifest-src/, "string.quote"], + [/media-src/, "string.quote"], + [/object-src/, "string.quote"], + [/script-src/, "string.quote"], + [/style-src/, "string.quote"], + [/worker-src/, "string.quote"], + [/base-uri/, "string.quote"], + [/plugin-types/, "string.quote"], + [/sandbox/, "string.quote"], + [/disown-opener/, "string.quote"], + [/form-action/, "string.quote"], + [/frame-ancestors/, "string.quote"], + [/report-uri/, "string.quote"], + [/report-to/, "string.quote"], + [/upgrade-insecure-requests/, "string.quote"], + [/block-all-mixed-content/, "string.quote"], + [/require-sri-for/, "string.quote"], + [/reflected-xss/, "string.quote"], + [/referrer/, "string.quote"], + [/policy-uri/, "string.quote"], + [/'self'/, "string.quote"], + [/'unsafe-inline'/, "string.quote"], + [/'unsafe-eval'/, "string.quote"], + [/'strict-dynamic'/, "string.quote"], + [/'unsafe-hashed-attributes'/, "string.quote"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8985.e67ce2b4.js b/assets/js/8985.e67ce2b4.js new file mode 100644 index 00000000000..ac2849999f9 --- /dev/null +++ b/assets/js/8985.e67ce2b4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8985],{48985:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>m,frontMatter:()=>o,metadata:()=>p,toc:()=>l});var t=a(87462),i=(a(67294),a(3905));a(45475);const o={title:"Type Variance",slug:"/lang/variance"},r=void 0,p={unversionedId:"lang/variance",id:"lang/variance",title:"Type Variance",description:"Variance is a topic that comes up fairly often in type systems. It is used to determine",source:"@site/docs/lang/variance.md",sourceDirName:"lang",slug:"/lang/variance",permalink:"/en/docs/lang/variance",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/variance.md",tags:[],version:"current",frontMatter:{title:"Type Variance",slug:"/lang/variance"},sidebar:"docsSidebar",previous:{title:"Type Hierarchy",permalink:"/en/docs/lang/type-hierarchy"},next:{title:"Nominal & Structural Typing",permalink:"/en/docs/lang/nominal-structural"}},d={},l=[{value:"Covariance",id:"toc-covariance",level:2},{value:"Invariance",id:"toc-invariance",level:2},{value:"Contravariance",id:"toc-contravariance",level:2}],s={toc:l};function m(e){let{components:n,...a}=e;return(0,i.mdx)("wrapper",(0,t.Z)({},s,a,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Variance is a topic that comes up fairly often in type systems. It is used to determine\nhow type parameters behave with respect to subtyping."),(0,i.mdx)("p",null,"First we'll setup a couple of classes that extend one another."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"class Noun {}\nclass City extends Noun {}\nclass SanFrancisco extends City {}\n")),(0,i.mdx)("p",null,"We saw in the section on ",(0,i.mdx)("a",{parentName:"p",href:"../../types/generics/#toc-variance-sigils"},"generic types"),"\nthat it is possible to\nuse variance sigils to describe when a type parameter is used in an output position,\nwhen it is used in an input position, and when it is used in either one."),(0,i.mdx)("p",null,"Here we'll dive deeper into each one of these cases."),(0,i.mdx)("h2",{id:"toc-covariance"},"Covariance"),(0,i.mdx)("p",null,"Consider for example the type"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"type CovariantOf<X> = {\n +prop: X;\n getter(): X;\n}\n")),(0,i.mdx)("p",null,"Here, ",(0,i.mdx)("inlineCode",{parentName:"p"},"X")," appears strictly in ",(0,i.mdx)("em",{parentName:"p"},"output")," positions: it is used to read out information\nfrom objects ",(0,i.mdx)("inlineCode",{parentName:"p"},"o")," of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf<X>"),", either through property accesses ",(0,i.mdx)("inlineCode",{parentName:"p"},"o.prop"),",\nor through calls to ",(0,i.mdx)("inlineCode",{parentName:"p"},"o.getter()"),"."),(0,i.mdx)("p",null,"Notably, there is no way to input data through the reference to the object ",(0,i.mdx)("inlineCode",{parentName:"p"},"o"),",\ngiven that ",(0,i.mdx)("inlineCode",{parentName:"p"},"prop")," is a readonly property."),(0,i.mdx)("p",null,"When these conditions hold, we can use the sigil ",(0,i.mdx)("inlineCode",{parentName:"p"},"+")," to annotate ",(0,i.mdx)("inlineCode",{parentName:"p"},"X")," in the definition\nof ",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"type CovariantOf<+X> = {\n +prop: X;\n getter(): X;\n}\n")),(0,i.mdx)("p",null,"These conditions have important implications on the way that we can treat an object\nof type ",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf<T>"),' with respect to subtyping. As a reminder, subtyping rules\nhelp us answer the question: "given some context that expects values of type\n',(0,i.mdx)("inlineCode",{parentName:"p"},"T"),", is it safe to pass in values of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"S"),'?" If this is the case, then ',(0,i.mdx)("inlineCode",{parentName:"p"},"S")," is a\nsubtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"T"),"."),(0,i.mdx)("p",null,"Using our ",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf")," definition, and given that ",(0,i.mdx)("inlineCode",{parentName:"p"},"City")," is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"Noun"),", it is\nalso the case that ",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf<City>")," is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf<Noun>"),". Indeed"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},"it is safe to ",(0,i.mdx)("em",{parentName:"li"},"read")," a property ",(0,i.mdx)("inlineCode",{parentName:"li"},"prop")," of type ",(0,i.mdx)("inlineCode",{parentName:"li"},"City")," when a property\nof type ",(0,i.mdx)("inlineCode",{parentName:"li"},"Noun")," is expected, and"),(0,i.mdx)("li",{parentName:"ul"},"it is safe to ",(0,i.mdx)("em",{parentName:"li"},"return")," values of type ",(0,i.mdx)("inlineCode",{parentName:"li"},"City")," when calling ",(0,i.mdx)("inlineCode",{parentName:"li"},"getter()"),", when\nvalues of type ",(0,i.mdx)("inlineCode",{parentName:"li"},"Noun")," are expected.")),(0,i.mdx)("p",null,"Combining these two, it will always be safe to use ",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf<City>")," whenever a\n",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf<Noun>")," is expected."),(0,i.mdx)("p",null,"A commonly used example where covariance is used is ",(0,i.mdx)("a",{parentName:"p",href:"../../types/arrays/#toc-readonlyarray"},(0,i.mdx)("inlineCode",{parentName:"a"},"$ReadOnlyArray<T>")),".\nJust like with the ",(0,i.mdx)("inlineCode",{parentName:"p"},"prop")," property, one cannot use a ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray")," reference to write data\nto an array. This allows more flexible subtyping rules: Flow only needs to prove that\n",(0,i.mdx)("inlineCode",{parentName:"p"},"S")," is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," to determine that ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray<S>")," is also a subtype\nof ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray<T>"),"."),(0,i.mdx)("h2",{id:"toc-invariance"},"Invariance"),(0,i.mdx)("p",null,"Let's see what happens if we try to relax the restrictions on the use of ",(0,i.mdx)("inlineCode",{parentName:"p"},"X")," and make,\nfor example, ",(0,i.mdx)("inlineCode",{parentName:"p"},"prop")," be a read-write property. We arrive at the type definition"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"type NonCovariantOf<X> = {\n prop: X;\n getter(): X;\n};\n")),(0,i.mdx)("p",null,"Let's also declare a variable ",(0,i.mdx)("inlineCode",{parentName:"p"},"nonCovariantCity")," of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"NonCovariantOf<City>")),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"declare var nonCovariantCity: NonCovariantOf<City>;\n")),(0,i.mdx)("p",null,"Now, it is not safe to consider ",(0,i.mdx)("inlineCode",{parentName:"p"},"nonCovariantCity")," as an object of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"NonCovariantOf<Noun>"),".\nWere we allowed to do this, we could have the following declaration:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"const nonCovariantNoun: NonCovariantOf<Noun> = nonCovariantCity;\n")),(0,i.mdx)("p",null,"This type permits the following assignment:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"nonCovariantNoun.prop = new Noun;\n")),(0,i.mdx)("p",null,"which would invalidate the original type for ",(0,i.mdx)("inlineCode",{parentName:"p"},"nonCovariantCity")," as it would now be storing\na ",(0,i.mdx)("inlineCode",{parentName:"p"},"Noun")," in its ",(0,i.mdx)("inlineCode",{parentName:"p"},"prop")," field."),(0,i.mdx)("p",null,"What distinguishes ",(0,i.mdx)("inlineCode",{parentName:"p"},"NonCovariantOf")," from the ",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf")," definition is that type parameter ",(0,i.mdx)("inlineCode",{parentName:"p"},"X")," is used both\nin input and output positions, as it is being used to both read and write to\nproperty ",(0,i.mdx)("inlineCode",{parentName:"p"},"prop"),". Such a type parameter is called ",(0,i.mdx)("em",{parentName:"p"},"invariant")," and is the default case\nof variance, thus requiring no prepending sigil:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"type InvariantOf<X> = {\n prop: X;\n getter(): X;\n setter(X): void;\n};\n")),(0,i.mdx)("p",null,"Assuming a variable"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"declare var invariantCity: InvariantOf<City>;\n")),(0,i.mdx)("p",null,"it is ",(0,i.mdx)("em",{parentName:"p"},"not")," safe to use ",(0,i.mdx)("inlineCode",{parentName:"p"},"invariantCity")," in a context where:"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},"an ",(0,i.mdx)("inlineCode",{parentName:"li"},"InvariantOf<Noun>")," is needed, because we should not be able to write a ",(0,i.mdx)("inlineCode",{parentName:"li"},"Noun")," to property\n",(0,i.mdx)("inlineCode",{parentName:"li"},"prop"),"."),(0,i.mdx)("li",{parentName:"ul"},"an ",(0,i.mdx)("inlineCode",{parentName:"li"},"InvariantOf<SanFrancisco>")," is needed, because reading ",(0,i.mdx)("inlineCode",{parentName:"li"},"prop")," could return a ",(0,i.mdx)("inlineCode",{parentName:"li"},"City")," which\nmay not be ",(0,i.mdx)("inlineCode",{parentName:"li"},"SanFrancisco"),".")),(0,i.mdx)("p",null,"In orther words, ",(0,i.mdx)("inlineCode",{parentName:"p"},"InvariantOf<City>")," is neither a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"InvariantOf<Noun>")," nor\na subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"InvariantOf<SanFrancisco>"),"."),(0,i.mdx)("h2",{id:"toc-contravariance"},"Contravariance"),(0,i.mdx)("p",null,"When a type parameter is only used in ",(0,i.mdx)("em",{parentName:"p"},"input")," positions, we say that it is used in\na ",(0,i.mdx)("em",{parentName:"p"},"contravariant")," way. This means that it only appears in positions through which\nwe write data to the structure. We use the sigil ",(0,i.mdx)("inlineCode",{parentName:"p"},"-")," to describe this kind of type\nparameters:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"type ContravariantOf<-X> = {\n -prop: X;\n setter(X): void;\n};\n")),(0,i.mdx)("p",null,'Common contravariant positions are write-only properties and "setter" functions.'),(0,i.mdx)("p",null,"An object of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"ContravariantOf<City>")," can be used whenever an object of type\n",(0,i.mdx)("inlineCode",{parentName:"p"},"ContravariantOf<SanFrancisco>")," is expected, but not when a ",(0,i.mdx)("inlineCode",{parentName:"p"},"ContravariantOf<Noun>")," is.\nIn other words, ",(0,i.mdx)("inlineCode",{parentName:"p"},"ContravariantOf<City>")," is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"ContravariantOf<SanFrancisco>"),", but not\n",(0,i.mdx)("inlineCode",{parentName:"p"},"ContravariantOf<Noun>"),".\nThis is because it is fine to write ",(0,i.mdx)("inlineCode",{parentName:"p"},"SanFrancisco")," into a property that can have any ",(0,i.mdx)("inlineCode",{parentName:"p"},"City")," written\nto, but it is not safe to write just any ",(0,i.mdx)("inlineCode",{parentName:"p"},"Noun"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/908.7a4eb83a.js b/assets/js/908.7a4eb83a.js new file mode 100644 index 00000000000..8b16826ab3b --- /dev/null +++ b/assets/js/908.7a4eb83a.js @@ -0,0 +1 @@ +(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[908],{93269:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>d});var i=r(67294),s=r(86010),a=r(52263),n=r(10833),o=r(35281),c=r(62524),l=r(95999),p=r(32244);function _(e){const{metadata:t}=e,{previousPage:r,nextPage:s}=t;return i.createElement("nav",{className:"pagination-nav","aria-label":(0,l.translate)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"})},r&&i.createElement(p.Z,{permalink:r,title:i.createElement(l.default,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)"},"Newer Entries")}),s&&i.createElement(p.Z,{permalink:s,title:i.createElement(l.default,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)"},"Older Entries"),isNext:!0}))}var j=r(90197),S=r(9460),m=r(30677);function u(e){let{items:t,component:r=m.Z}=e;return i.createElement(i.Fragment,null,t.map((e=>{let{content:t}=e;return i.createElement(S.n,{key:t.metadata.permalink,content:t},i.createElement(r,null,i.createElement(t,null)))})))}function E(e){const{metadata:t}=e,{siteConfig:{title:r}}=(0,a.default)(),{blogDescription:s,blogTitle:o,permalink:c}=t,l="/"===c?r:o;return i.createElement(i.Fragment,null,i.createElement(n.d,{title:l,description:s}),i.createElement(j.Z,{tag:"blog_posts_list"}))}function g(e){const{metadata:t,items:r,sidebar:s}=e;return i.createElement(c.Z,{sidebar:s},i.createElement(u,{items:r}),i.createElement(_,{metadata:t}))}function d(e){return i.createElement(n.FG,{className:(0,s.default)(o.k.wrapper.blogPages,o.k.page.blogListPage)},i.createElement(E,e),i.createElement(g,e))}},30677:(e,t,r)=>{"use strict";r.d(t,{Z:()=>D});var i=r(67294),s=r(86010),a=r(9460),n=r(44996);function o(e){var t;let{children:r,className:s}=e;const{frontMatter:o,assets:c}=(0,a.C)(),{withBaseUrl:l}=(0,n.useBaseUrlUtils)(),p=null!=(t=c.image)?t:o.image;return i.createElement("article",{className:s,itemProp:"blogPost",itemScope:!0,itemType:"http://schema.org/BlogPosting"},p&&i.createElement("meta",{itemProp:"image",content:l(p,{absolute:!0})}),r)}var c=r(39960);const l="title_xvU1";function p(e){let{className:t}=e;const{metadata:r}=(0,a.C)(),{permalink:n,title:o,frontMatter:p}=r,_=p["medium-link"],j=null==_,S=j?"h1":"h2";return i.createElement(S,{className:(0,s.default)(l,t),itemProp:"headline"},j?o:i.createElement(c.default,{itemProp:"url",to:_},o))}var _=r(95999),j=r(88824);const S="container_mt6G";function m(e){let{readingTime:t}=e;const r=function(){const{selectMessage:e}=(0,j.c)();return t=>{const r=Math.ceil(t);return e(r,(0,_.translate)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:r}))}}();return i.createElement(i.Fragment,null,r(t))}function u(e){let{date:t,formattedDate:r}=e;return i.createElement("time",{dateTime:t,itemProp:"datePublished"},r)}function E(){return i.createElement(i.Fragment,null," \xb7 ")}function g(e){let{className:t}=e;const{metadata:r}=(0,a.C)(),{date:n,formattedDate:o,readingTime:c}=r;return i.createElement("div",{className:(0,s.default)(S,"margin-vert--md",t)},i.createElement(u,{date:n,formattedDate:o}),void 0!==c&&i.createElement(i.Fragment,null,i.createElement(E,null),i.createElement(m,{readingTime:c})))}function d(e){return e.href?i.createElement(c.default,e):i.createElement(i.Fragment,null,e.children)}function y(e){let{author:t,className:r}=e;const{name:a,title:n,url:o,imageURL:c,email:l}=t,p=o||l&&"mailto:"+l||void 0;return i.createElement("div",{className:(0,s.default)("avatar margin-bottom--sm",r)},c&&i.createElement(d,{href:p,className:"avatar__photo-link"},i.createElement("img",{className:"avatar__photo",src:c,alt:a})),a&&i.createElement("div",{className:"avatar__intro",itemProp:"author",itemScope:!0,itemType:"https://schema.org/Person"},i.createElement("div",{className:"avatar__name"},i.createElement(d,{href:p,itemProp:"url"},i.createElement("span",{itemProp:"name"},a))),n&&i.createElement("small",{className:"avatar__subtitle",itemProp:"description"},n)))}const h="authorCol_Hf19",x="imageOnlyAuthorRow_pa_O",P="imageOnlyAuthorCol_G86a";function C(e){let{className:t}=e;const{metadata:{authors:r},assets:n}=(0,a.C)();if(0===r.length)return null;const o=r.every((e=>{let{name:t}=e;return!t}));return i.createElement("div",{className:(0,s.default)("margin-top--md margin-bottom--sm",o?x:"row",t)},r.map(((e,t)=>{var r;return i.createElement("div",{className:(0,s.default)(!o&&"col col--6",o?P:h),key:t},i.createElement(y,{author:{...e,imageURL:null!=(r=n.authorsImageUrls[t])?r:e.imageURL}}))})))}function f(){return i.createElement("header",null,i.createElement(p,null),i.createElement(g,null),i.createElement(C,null))}var B=r(18780),b=r(51788),v=r.n(b);function k(e){let{children:t,className:r}=e;const{isBlogPostPage:n}=(0,a.C)();return i.createElement("div",{id:n?B.blogPostContainerID:void 0,className:(0,s.default)("markdown",r),itemProp:"articleBody"},i.createElement(v(),null,t))}var M=r(86121),G=r.n(M),N=r(86233),T=r(87462);function O(){return i.createElement("b",null,i.createElement(_.default,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts"},"Read More"))}function L(e){const{blogPostTitle:t,...r}=e;return i.createElement(c.default,(0,T.Z)({"aria-label":(0,_.translate)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t})},r),i.createElement(O,null))}const w="blogPostFooterDetailsFull_mRVl";function A(){const{metadata:e,isBlogPostPage:t}=(0,a.C)(),{tags:r,title:n,editUrl:o,hasTruncateMarker:c}=e,l=!t&&c,p=r.length>0;return p||l||o?i.createElement("footer",{className:(0,s.default)("row docusaurus-mt-lg",t&&w)},p&&i.createElement("div",{className:(0,s.default)("col",{"col--9":l})},i.createElement(N.Z,{tags:r})),t&&o&&i.createElement("div",{className:"col margin-top--sm"},i.createElement(G(),{editUrl:o})),l&&i.createElement("div",{className:(0,s.default)("col text--right",{"col--3":p})},i.createElement(L,{blogPostTitle:n,to:e.permalink}))):null}function D(e){let{children:t,className:r}=e;const n=function(){const{isBlogPostPage:e}=(0,a.C)();return e?void 0:"margin-bottom--xl"}();return i.createElement(o,{className:(0,s.default)(n,r)},i.createElement(f,null),i.createElement(k,null,t),i.createElement(A,null))}},9460:(e,t,r)=>{"use strict";r.d(t,{C:()=>o,n:()=>n});var i=r(67294),s=r(902);const a=i.createContext(null);function n(e){let{children:t,content:r,isBlogPostPage:s=!1}=e;const n=function(e){let{content:t,isBlogPostPage:r}=e;return(0,i.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:r})),[t,r])}({content:r,isBlogPostPage:s});return i.createElement(a.Provider,{value:n},t)}function o(){const e=(0,i.useContext)(a);if(null===e)throw new s.i6("BlogPostProvider");return e}},62524:(e,t,r)=>{"use strict";r.d(t,{Z:()=>n});var i=r(67294),s=r(89007);r(39960),r(95999);var a=r(39407);const n=function(e){const{toc:t,children:r,...n}=e;return i.createElement(s.Z,n,i.createElement("div",{className:"container margin-vert--lg"},i.createElement("div",{className:"row"},i.createElement("main",{className:"col col--9 col--offset-1"},r),t&&i.createElement("div",{className:"col col--2"},i.createElement(a.Z,{toc:t})))))}},18573:(e,t,r)=>{"use strict";r.d(t,{Z:()=>c});var i=r(87462),s=r(67294),a=r(20625),n=r.n(a),o=r(45475);function c(e){return"language-flow"===e.className?s.createElement(o.Z,e):"language-js"===e.className||"language-jsx"===e.className?s.createElement(n(),(0,i.Z)({},e,{className:"language-tsx"})):s.createElement(n(),e)}},7771:(e,t,r)=>{var i={"./Binary_Property/ASCII.js":46962,"./Binary_Property/ASCII_Hex_Digit.js":60270,"./Binary_Property/Alphabetic.js":26969,"./Binary_Property/Any.js":22499,"./Binary_Property/Assigned.js":9213,"./Binary_Property/Bidi_Control.js":38838,"./Binary_Property/Bidi_Mirrored.js":5720,"./Binary_Property/Case_Ignorable.js":49965,"./Binary_Property/Cased.js":32948,"./Binary_Property/Changes_When_Casefolded.js":65314,"./Binary_Property/Changes_When_Casemapped.js":78562,"./Binary_Property/Changes_When_Lowercased.js":12104,"./Binary_Property/Changes_When_NFKC_Casefolded.js":41347,"./Binary_Property/Changes_When_Titlecased.js":50589,"./Binary_Property/Changes_When_Uppercased.js":50046,"./Binary_Property/Dash.js":77336,"./Binary_Property/Default_Ignorable_Code_Point.js":32016,"./Binary_Property/Deprecated.js":42339,"./Binary_Property/Diacritic.js":97707,"./Binary_Property/Emoji.js":23694,"./Binary_Property/Emoji_Component.js":94007,"./Binary_Property/Emoji_Modifier.js":13916,"./Binary_Property/Emoji_Modifier_Base.js":98053,"./Binary_Property/Emoji_Presentation.js":10906,"./Binary_Property/Extended_Pictographic.js":66359,"./Binary_Property/Extender.js":17743,"./Binary_Property/Grapheme_Base.js":75530,"./Binary_Property/Grapheme_Extend.js":38693,"./Binary_Property/Hex_Digit.js":91556,"./Binary_Property/IDS_Binary_Operator.js":2103,"./Binary_Property/IDS_Trinary_Operator.js":18502,"./Binary_Property/ID_Continue.js":19494,"./Binary_Property/ID_Start.js":20567,"./Binary_Property/Ideographic.js":19586,"./Binary_Property/Join_Control.js":36983,"./Binary_Property/Logical_Order_Exception.js":72947,"./Binary_Property/Lowercase.js":49111,"./Binary_Property/Math.js":65667,"./Binary_Property/Noncharacter_Code_Point.js":20052,"./Binary_Property/Pattern_Syntax.js":60514,"./Binary_Property/Pattern_White_Space.js":78588,"./Binary_Property/Quotation_Mark.js":1053,"./Binary_Property/Radical.js":25361,"./Binary_Property/Regional_Indicator.js":94375,"./Binary_Property/Sentence_Terminal.js":89697,"./Binary_Property/Soft_Dotted.js":35514,"./Binary_Property/Terminal_Punctuation.js":21043,"./Binary_Property/Unified_Ideograph.js":75771,"./Binary_Property/Uppercase.js":28368,"./Binary_Property/Variation_Selector.js":27186,"./Binary_Property/White_Space.js":61846,"./Binary_Property/XID_Continue.js":74003,"./Binary_Property/XID_Start.js":3468,"./General_Category/Cased_Letter.js":13090,"./General_Category/Close_Punctuation.js":8526,"./General_Category/Connector_Punctuation.js":26100,"./General_Category/Control.js":80282,"./General_Category/Currency_Symbol.js":15352,"./General_Category/Dash_Punctuation.js":45647,"./General_Category/Decimal_Number.js":98349,"./General_Category/Enclosing_Mark.js":18220,"./General_Category/Final_Punctuation.js":88482,"./General_Category/Format.js":87586,"./General_Category/Initial_Punctuation.js":88147,"./General_Category/Letter.js":65964,"./General_Category/Letter_Number.js":66793,"./General_Category/Line_Separator.js":63061,"./General_Category/Lowercase_Letter.js":19340,"./General_Category/Mark.js":93748,"./General_Category/Math_Symbol.js":32895,"./General_Category/Modifier_Letter.js":66710,"./General_Category/Modifier_Symbol.js":43026,"./General_Category/Nonspacing_Mark.js":95580,"./General_Category/Number.js":90055,"./General_Category/Open_Punctuation.js":25622,"./General_Category/Other.js":76288,"./General_Category/Other_Letter.js":61453,"./General_Category/Other_Number.js":88795,"./General_Category/Other_Punctuation.js":47221,"./General_Category/Other_Symbol.js":66733,"./General_Category/Paragraph_Separator.js":12600,"./General_Category/Private_Use.js":61704,"./General_Category/Punctuation.js":36290,"./General_Category/Separator.js":64661,"./General_Category/Space_Separator.js":54343,"./General_Category/Spacing_Mark.js":11276,"./General_Category/Surrogate.js":93474,"./General_Category/Symbol.js":54581,"./General_Category/Titlecase_Letter.js":8550,"./General_Category/Unassigned.js":22525,"./General_Category/Uppercase_Letter.js":28829,"./Script/Adlam.js":56129,"./Script/Ahom.js":50147,"./Script/Anatolian_Hieroglyphs.js":50926,"./Script/Arabic.js":56820,"./Script/Armenian.js":14899,"./Script/Avestan.js":69929,"./Script/Balinese.js":30706,"./Script/Bamum.js":15533,"./Script/Bassa_Vah.js":89979,"./Script/Batak.js":83765,"./Script/Bengali.js":72693,"./Script/Bhaiksuki.js":10236,"./Script/Bopomofo.js":30468,"./Script/Brahmi.js":45770,"./Script/Braille.js":65529,"./Script/Buginese.js":74206,"./Script/Buhid.js":96208,"./Script/Canadian_Aboriginal.js":66700,"./Script/Carian.js":93961,"./Script/Caucasian_Albanian.js":74121,"./Script/Chakma.js":12128,"./Script/Cham.js":52189,"./Script/Cherokee.js":75033,"./Script/Chorasmian.js":73507,"./Script/Common.js":85998,"./Script/Coptic.js":56036,"./Script/Cuneiform.js":13563,"./Script/Cypriot.js":49182,"./Script/Cypro_Minoan.js":80084,"./Script/Cyrillic.js":84087,"./Script/Deseret.js":48844,"./Script/Devanagari.js":35690,"./Script/Dives_Akuru.js":57201,"./Script/Dogra.js":71932,"./Script/Duployan.js":95187,"./Script/Egyptian_Hieroglyphs.js":49778,"./Script/Elbasan.js":42781,"./Script/Elymaic.js":83103,"./Script/Ethiopic.js":26672,"./Script/Georgian.js":73661,"./Script/Glagolitic.js":85857,"./Script/Gothic.js":32096,"./Script/Grantha.js":71742,"./Script/Greek.js":62199,"./Script/Gujarati.js":11931,"./Script/Gunjala_Gondi.js":27600,"./Script/Gurmukhi.js":76482,"./Script/Han.js":26294,"./Script/Hangul.js":38858,"./Script/Hanifi_Rohingya.js":50043,"./Script/Hanunoo.js":95307,"./Script/Hatran.js":20280,"./Script/Hebrew.js":12674,"./Script/Hiragana.js":54058,"./Script/Imperial_Aramaic.js":70521,"./Script/Inherited.js":21448,"./Script/Inscriptional_Pahlavi.js":64086,"./Script/Inscriptional_Parthian.js":35772,"./Script/Javanese.js":98272,"./Script/Kaithi.js":52764,"./Script/Kannada.js":98276,"./Script/Katakana.js":98285,"./Script/Kayah_Li.js":10821,"./Script/Kharoshthi.js":67559,"./Script/Khitan_Small_Script.js":48304,"./Script/Khmer.js":39834,"./Script/Khojki.js":42593,"./Script/Khudawadi.js":64415,"./Script/Lao.js":37740,"./Script/Latin.js":46818,"./Script/Lepcha.js":7647,"./Script/Limbu.js":92627,"./Script/Linear_A.js":16193,"./Script/Linear_B.js":71901,"./Script/Lisu.js":25734,"./Script/Lycian.js":6450,"./Script/Lydian.js":28293,"./Script/Mahajani.js":48193,"./Script/Makasar.js":50865,"./Script/Malayalam.js":24789,"./Script/Mandaic.js":9535,"./Script/Manichaean.js":83061,"./Script/Marchen.js":76528,"./Script/Masaram_Gondi.js":9921,"./Script/Medefaidrin.js":93378,"./Script/Meetei_Mayek.js":6940,"./Script/Mende_Kikakui.js":3897,"./Script/Meroitic_Cursive.js":65999,"./Script/Meroitic_Hieroglyphs.js":59758,"./Script/Miao.js":65484,"./Script/Modi.js":34575,"./Script/Mongolian.js":75392,"./Script/Mro.js":36388,"./Script/Multani.js":60556,"./Script/Myanmar.js":15837,"./Script/Nabataean.js":6820,"./Script/Nandinagari.js":51892,"./Script/New_Tai_Lue.js":32003,"./Script/Newa.js":15297,"./Script/Nko.js":17594,"./Script/Nushu.js":7493,"./Script/Nyiakeng_Puachue_Hmong.js":14406,"./Script/Ogham.js":75847,"./Script/Ol_Chiki.js":88416,"./Script/Old_Hungarian.js":40115,"./Script/Old_Italic.js":29109,"./Script/Old_North_Arabian.js":96840,"./Script/Old_Permic.js":39291,"./Script/Old_Persian.js":24678,"./Script/Old_Sogdian.js":78647,"./Script/Old_South_Arabian.js":70744,"./Script/Old_Turkic.js":59527,"./Script/Old_Uyghur.js":11791,"./Script/Oriya.js":23761,"./Script/Osage.js":39384,"./Script/Osmanya.js":90237,"./Script/Pahawh_Hmong.js":62976,"./Script/Palmyrene.js":60351,"./Script/Pau_Cin_Hau.js":19767,"./Script/Phags_Pa.js":25712,"./Script/Phoenician.js":86458,"./Script/Psalter_Pahlavi.js":74874,"./Script/Rejang.js":27603,"./Script/Runic.js":84788,"./Script/Samaritan.js":45810,"./Script/Saurashtra.js":37632,"./Script/Sharada.js":15058,"./Script/Shavian.js":76250,"./Script/Siddham.js":39573,"./Script/SignWriting.js":54039,"./Script/Sinhala.js":1611,"./Script/Sogdian.js":34250,"./Script/Sora_Sompeng.js":43065,"./Script/Soyombo.js":18135,"./Script/Sundanese.js":95849,"./Script/Syloti_Nagri.js":46566,"./Script/Syriac.js":7810,"./Script/Tagalog.js":67833,"./Script/Tagbanwa.js":58009,"./Script/Tai_Le.js":1187,"./Script/Tai_Tham.js":40377,"./Script/Tai_Viet.js":99e3,"./Script/Takri.js":72294,"./Script/Tamil.js":98682,"./Script/Tangsa.js":77808,"./Script/Tangut.js":75540,"./Script/Telugu.js":65084,"./Script/Thaana.js":6867,"./Script/Thai.js":49907,"./Script/Tibetan.js":29341,"./Script/Tifinagh.js":81261,"./Script/Tirhuta.js":57954,"./Script/Toto.js":68196,"./Script/Ugaritic.js":29097,"./Script/Vai.js":5767,"./Script/Vithkuqi.js":45785,"./Script/Wancho.js":27172,"./Script/Warang_Citi.js":17315,"./Script/Yezidi.js":34961,"./Script/Yi.js":90923,"./Script/Zanabazar_Square.js":92108,"./Script_Extensions/Adlam.js":99614,"./Script_Extensions/Ahom.js":24915,"./Script_Extensions/Anatolian_Hieroglyphs.js":8983,"./Script_Extensions/Arabic.js":75627,"./Script_Extensions/Armenian.js":13585,"./Script_Extensions/Avestan.js":79384,"./Script_Extensions/Balinese.js":47072,"./Script_Extensions/Bamum.js":31856,"./Script_Extensions/Bassa_Vah.js":24945,"./Script_Extensions/Batak.js":92147,"./Script_Extensions/Bengali.js":61530,"./Script_Extensions/Bhaiksuki.js":64063,"./Script_Extensions/Bopomofo.js":29962,"./Script_Extensions/Brahmi.js":61752,"./Script_Extensions/Braille.js":28434,"./Script_Extensions/Buginese.js":15148,"./Script_Extensions/Buhid.js":78881,"./Script_Extensions/Canadian_Aboriginal.js":55254,"./Script_Extensions/Carian.js":79110,"./Script_Extensions/Caucasian_Albanian.js":76550,"./Script_Extensions/Chakma.js":88753,"./Script_Extensions/Cham.js":98451,"./Script_Extensions/Cherokee.js":80196,"./Script_Extensions/Chorasmian.js":38676,"./Script_Extensions/Common.js":46921,"./Script_Extensions/Coptic.js":44141,"./Script_Extensions/Cuneiform.js":30286,"./Script_Extensions/Cypriot.js":73326,"./Script_Extensions/Cypro_Minoan.js":82300,"./Script_Extensions/Cyrillic.js":77115,"./Script_Extensions/Deseret.js":59108,"./Script_Extensions/Devanagari.js":59426,"./Script_Extensions/Dives_Akuru.js":44660,"./Script_Extensions/Dogra.js":41422,"./Script_Extensions/Duployan.js":66667,"./Script_Extensions/Egyptian_Hieroglyphs.js":20449,"./Script_Extensions/Elbasan.js":25810,"./Script_Extensions/Elymaic.js":83509,"./Script_Extensions/Ethiopic.js":37837,"./Script_Extensions/Georgian.js":77680,"./Script_Extensions/Glagolitic.js":97772,"./Script_Extensions/Gothic.js":60674,"./Script_Extensions/Grantha.js":52336,"./Script_Extensions/Greek.js":86310,"./Script_Extensions/Gujarati.js":92436,"./Script_Extensions/Gunjala_Gondi.js":20642,"./Script_Extensions/Gurmukhi.js":33831,"./Script_Extensions/Han.js":16613,"./Script_Extensions/Hangul.js":87001,"./Script_Extensions/Hanifi_Rohingya.js":88583,"./Script_Extensions/Hanunoo.js":82758,"./Script_Extensions/Hatran.js":66416,"./Script_Extensions/Hebrew.js":85222,"./Script_Extensions/Hiragana.js":60191,"./Script_Extensions/Imperial_Aramaic.js":57632,"./Script_Extensions/Inherited.js":96988,"./Script_Extensions/Inscriptional_Pahlavi.js":52121,"./Script_Extensions/Inscriptional_Parthian.js":82809,"./Script_Extensions/Javanese.js":55081,"./Script_Extensions/Kaithi.js":57574,"./Script_Extensions/Kannada.js":81868,"./Script_Extensions/Katakana.js":10774,"./Script_Extensions/Kayah_Li.js":76701,"./Script_Extensions/Kharoshthi.js":81466,"./Script_Extensions/Khitan_Small_Script.js":21325,"./Script_Extensions/Khmer.js":6068,"./Script_Extensions/Khojki.js":77706,"./Script_Extensions/Khudawadi.js":54258,"./Script_Extensions/Lao.js":77149,"./Script_Extensions/Latin.js":38334,"./Script_Extensions/Lepcha.js":12299,"./Script_Extensions/Limbu.js":25476,"./Script_Extensions/Linear_A.js":54625,"./Script_Extensions/Linear_B.js":38810,"./Script_Extensions/Lisu.js":90845,"./Script_Extensions/Lycian.js":68978,"./Script_Extensions/Lydian.js":67905,"./Script_Extensions/Mahajani.js":89576,"./Script_Extensions/Makasar.js":3405,"./Script_Extensions/Malayalam.js":974,"./Script_Extensions/Mandaic.js":28940,"./Script_Extensions/Manichaean.js":6677,"./Script_Extensions/Marchen.js":14740,"./Script_Extensions/Masaram_Gondi.js":82278,"./Script_Extensions/Medefaidrin.js":55949,"./Script_Extensions/Meetei_Mayek.js":13329,"./Script_Extensions/Mende_Kikakui.js":97146,"./Script_Extensions/Meroitic_Cursive.js":23715,"./Script_Extensions/Meroitic_Hieroglyphs.js":43199,"./Script_Extensions/Miao.js":26499,"./Script_Extensions/Modi.js":36995,"./Script_Extensions/Mongolian.js":98606,"./Script_Extensions/Mro.js":11462,"./Script_Extensions/Multani.js":45402,"./Script_Extensions/Myanmar.js":76318,"./Script_Extensions/Nabataean.js":34924,"./Script_Extensions/Nandinagari.js":8236,"./Script_Extensions/New_Tai_Lue.js":14575,"./Script_Extensions/Newa.js":71314,"./Script_Extensions/Nko.js":40577,"./Script_Extensions/Nushu.js":44432,"./Script_Extensions/Nyiakeng_Puachue_Hmong.js":53612,"./Script_Extensions/Ogham.js":19298,"./Script_Extensions/Ol_Chiki.js":55285,"./Script_Extensions/Old_Hungarian.js":16737,"./Script_Extensions/Old_Italic.js":73023,"./Script_Extensions/Old_North_Arabian.js":35723,"./Script_Extensions/Old_Permic.js":56370,"./Script_Extensions/Old_Persian.js":1402,"./Script_Extensions/Old_Sogdian.js":14718,"./Script_Extensions/Old_South_Arabian.js":40316,"./Script_Extensions/Old_Turkic.js":5462,"./Script_Extensions/Old_Uyghur.js":2280,"./Script_Extensions/Oriya.js":29434,"./Script_Extensions/Osage.js":77045,"./Script_Extensions/Osmanya.js":82301,"./Script_Extensions/Pahawh_Hmong.js":84766,"./Script_Extensions/Palmyrene.js":72685,"./Script_Extensions/Pau_Cin_Hau.js":34107,"./Script_Extensions/Phags_Pa.js":66506,"./Script_Extensions/Phoenician.js":42186,"./Script_Extensions/Psalter_Pahlavi.js":55507,"./Script_Extensions/Rejang.js":35435,"./Script_Extensions/Runic.js":76355,"./Script_Extensions/Samaritan.js":1509,"./Script_Extensions/Saurashtra.js":23386,"./Script_Extensions/Sharada.js":86116,"./Script_Extensions/Shavian.js":51826,"./Script_Extensions/Siddham.js":22026,"./Script_Extensions/SignWriting.js":96007,"./Script_Extensions/Sinhala.js":51104,"./Script_Extensions/Sogdian.js":82401,"./Script_Extensions/Sora_Sompeng.js":44399,"./Script_Extensions/Soyombo.js":37415,"./Script_Extensions/Sundanese.js":3894,"./Script_Extensions/Syloti_Nagri.js":5419,"./Script_Extensions/Syriac.js":21038,"./Script_Extensions/Tagalog.js":1744,"./Script_Extensions/Tagbanwa.js":54217,"./Script_Extensions/Tai_Le.js":63153,"./Script_Extensions/Tai_Tham.js":4926,"./Script_Extensions/Tai_Viet.js":39311,"./Script_Extensions/Takri.js":55970,"./Script_Extensions/Tamil.js":80882,"./Script_Extensions/Tangsa.js":92138,"./Script_Extensions/Tangut.js":46776,"./Script_Extensions/Telugu.js":40444,"./Script_Extensions/Thaana.js":23431,"./Script_Extensions/Thai.js":94846,"./Script_Extensions/Tibetan.js":137,"./Script_Extensions/Tifinagh.js":67065,"./Script_Extensions/Tirhuta.js":98082,"./Script_Extensions/Toto.js":6715,"./Script_Extensions/Ugaritic.js":29213,"./Script_Extensions/Vai.js":85388,"./Script_Extensions/Vithkuqi.js":97706,"./Script_Extensions/Wancho.js":68659,"./Script_Extensions/Warang_Citi.js":27900,"./Script_Extensions/Yezidi.js":8051,"./Script_Extensions/Yi.js":99799,"./Script_Extensions/Zanabazar_Square.js":25904,"./index.js":94274,"./unicode-version.js":47993};function s(e){var t=a(e);return r(t)}function a(e){if(!r.o(i,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return i[e]}s.keys=function(){return Object.keys(i)},s.resolve=a,e.exports=s,s.id=7771}}]); \ No newline at end of file diff --git a/assets/js/911.8605976d.js b/assets/js/911.8605976d.js new file mode 100644 index 00000000000..d261d7001f2 --- /dev/null +++ b/assets/js/911.8605976d.js @@ -0,0 +1,176 @@ +"use strict"; +exports.id = 911; +exports.ids = [911]; +exports.modules = { + +/***/ 20911: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/lua/lua.ts +var conf = { + comments: { + lineComment: "--", + blockComment: ["--[[", "]]"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".lua", + keywords: [ + "and", + "break", + "do", + "else", + "elseif", + "end", + "false", + "for", + "function", + "goto", + "if", + "in", + "local", + "nil", + "not", + "or", + "repeat", + "return", + "then", + "true", + "until", + "while" + ], + brackets: [ + { token: "delimiter.bracket", open: "{", close: "}" }, + { token: "delimiter.array", open: "[", close: "]" }, + { token: "delimiter.parenthesis", open: "(", close: ")" } + ], + operators: [ + "+", + "-", + "*", + "/", + "%", + "^", + "#", + "==", + "~=", + "<=", + ">=", + "<", + ">", + "=", + ";", + ":", + ",", + ".", + "..", + "..." + ], + symbols: /[=><!~?:&|+\-*\/\^%]+/, + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + tokenizer: { + root: [ + [ + /[a-zA-Z_]\w*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "identifier" + } + } + ], + { include: "@whitespace" }, + [/(,)(\s*)([a-zA-Z_]\w*)(\s*)(:)(?!:)/, ["delimiter", "", "key", "", "delimiter"]], + [/({)(\s*)([a-zA-Z_]\w*)(\s*)(:)(?!:)/, ["@brackets", "", "key", "", "delimiter"]], + [/[{}()\[\]]/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, "number.hex"], + [/\d+?/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/"/, "string", '@string."'], + [/'/, "string", "@string.'"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/--\[([=]*)\[/, "comment", "@comment.$1"], + [/--.*$/, "comment"] + ], + comment: [ + [/[^\]]+/, "comment"], + [ + /\]([=]*)\]/, + { + cases: { + "$1==$S2": { token: "comment", next: "@pop" }, + "@default": "comment" + } + } + ], + [/./, "comment"] + ], + string: [ + [/[^\\"']+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [ + /["']/, + { + cases: { + "$#==$S2": { token: "string", next: "@pop" }, + "@default": "string" + } + } + ] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/911.cb5ea3c2.js b/assets/js/911.cb5ea3c2.js new file mode 100644 index 00000000000..4febeabbc63 --- /dev/null +++ b/assets/js/911.cb5ea3c2.js @@ -0,0 +1,2 @@ +/*! For license information please see 911.cb5ea3c2.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[911],{20911:(e,n,s)=>{s.r(n),s.d(n,{conf:()=>t,language:()=>o});var t={comments:{lineComment:"--",blockComment:["--[[","]]"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},o={defaultToken:"",tokenPostfix:".lua",keywords:["and","break","do","else","elseif","end","false","for","function","goto","if","in","local","nil","not","or","repeat","return","then","true","until","while"],brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],operators:["+","-","*","/","%","^","#","==","~=","<=",">=","<",">","=",";",":",",",".","..","..."],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_]\w*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/(,)(\s*)([a-zA-Z_]\w*)(\s*)(:)(?!:)/,["delimiter","","key","","delimiter"]],[/({)(\s*)([a-zA-Z_]\w*)(\s*)(:)(?!:)/,["@brackets","","key","","delimiter"]],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,""],[/--\[([=]*)\[/,"comment","@comment.$1"],[/--.*$/,"comment"]],comment:[[/[^\]]+/,"comment"],[/\]([=]*)\]/,{cases:{"$1==$S2":{token:"comment",next:"@pop"},"@default":"comment"}}],[/./,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}}}}]); \ No newline at end of file diff --git a/assets/js/911.cb5ea3c2.js.LICENSE.txt b/assets/js/911.cb5ea3c2.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/911.cb5ea3c2.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/9172.7f698d9b.js b/assets/js/9172.7f698d9b.js new file mode 100644 index 00000000000..3d4a766c3fc --- /dev/null +++ b/assets/js/9172.7f698d9b.js @@ -0,0 +1,2 @@ +/*! For license information please see 9172.7f698d9b.js.LICENSE.txt */ +(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9172],{17331:e=>{function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(e){return"function"==typeof e}function n(e){return"object"==typeof e&&null!==e}function i(e){return void 0===e}e.exports=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},t.prototype.emit=function(e){var t,a,s,c,u,o;if(this._events||(this._events={}),"error"===e&&(!this._events.error||n(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var h=new Error('Uncaught, unspecified "error" event. ('+t+")");throw h.context=t,h}if(i(a=this._events[e]))return!1;if(r(a))switch(arguments.length){case 1:a.call(this);break;case 2:a.call(this,arguments[1]);break;case 3:a.call(this,arguments[1],arguments[2]);break;default:c=Array.prototype.slice.call(arguments,1),a.apply(this,c)}else if(n(a))for(c=Array.prototype.slice.call(arguments,1),s=(o=a.slice()).length,u=0;u<s;u++)o[u].apply(this,c);return!0},t.prototype.addListener=function(e,a){var s;if(!r(a))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,r(a.listener)?a.listener:a),this._events[e]?n(this._events[e])?this._events[e].push(a):this._events[e]=[this._events[e],a]:this._events[e]=a,n(this._events[e])&&!this._events[e].warned&&(s=i(this._maxListeners)?t.defaultMaxListeners:this._maxListeners)&&s>0&&this._events[e].length>s&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(e,t){if(!r(t))throw TypeError("listener must be a function");var n=!1;function i(){this.removeListener(e,i),n||(n=!0,t.apply(this,arguments))}return i.listener=t,this.on(e,i),this},t.prototype.removeListener=function(e,t){var i,a,s,c;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(s=(i=this._events[e]).length,a=-1,i===t||r(i.listener)&&i.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(n(i)){for(c=s;c-- >0;)if(i[c]===t||i[c].listener&&i[c].listener===t){a=c;break}if(a<0)return this;1===i.length?(i.length=0,delete this._events[e]):i.splice(a,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},t.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r(n=this._events[e]))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},t.prototype.listeners=function(e){return this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},t.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},t.listenerCount=function(e,t){return e.listenerCount(t)}},8131:(e,t,r)=>{"use strict";var n=r(49374),i=r(17775),a=r(23076);function s(e,t,r){return new n(e,t,r)}s.version=r(24336),s.AlgoliaSearchHelper=n,s.SearchParameters=i,s.SearchResults=a,e.exports=s},68078:(e,t,r)=>{"use strict";var n=r(17331);function i(e,t){this.main=e,this.fn=t,this.lastResults=null}r(14853)(i,n),i.prototype.detach=function(){this.removeAllListeners(),this.main.detachDerivedHelper(this)},i.prototype.getModifiedState=function(e){return this.fn(e)},e.exports=i},82437:(e,t,r)=>{"use strict";var n=r(52344),i=r(49803),a=r(90116),s={addRefinement:function(e,t,r){if(s.isRefined(e,t,r))return e;var i=""+r,a=e[t]?e[t].concat(i):[i],c={};return c[t]=a,n({},c,e)},removeRefinement:function(e,t,r){if(void 0===r)return s.clearRefinement(e,(function(e,r){return t===r}));var n=""+r;return s.clearRefinement(e,(function(e,r){return t===r&&n===e}))},toggleRefinement:function(e,t,r){if(void 0===r)throw new Error("toggleRefinement should be used with a value");return s.isRefined(e,t,r)?s.removeRefinement(e,t,r):s.addRefinement(e,t,r)},clearRefinement:function(e,t,r){if(void 0===t)return a(e)?{}:e;if("string"==typeof t)return i(e,[t]);if("function"==typeof t){var n=!1,s=Object.keys(e).reduce((function(i,a){var s=e[a]||[],c=s.filter((function(e){return!t(e,a,r)}));return c.length!==s.length&&(n=!0),i[a]=c,i}),{});return n?s:e}},isRefined:function(e,t,r){var n=!!e[t]&&e[t].length>0;if(void 0===r||!n)return n;var i=""+r;return-1!==e[t].indexOf(i)}};e.exports=s},17775:(e,t,r)=>{"use strict";var n=r(60185),i=r(52344),a=r(22686),s=r(7888),c=r(28023),u=r(49803),o=r(90116),h=r(46801),f=r(82437);function l(e,t){return Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((function(e,r){return l(t[r],e)})):e===t}function m(e){var t=e?m._parseNumbers(e):{};void 0===t.userToken||h(t.userToken)||console.warn("[algoliasearch-helper] The `userToken` parameter is invalid. This can lead to wrong analytics.\n - Format: [a-zA-Z0-9_-]{1,64}"),this.facets=t.facets||[],this.disjunctiveFacets=t.disjunctiveFacets||[],this.hierarchicalFacets=t.hierarchicalFacets||[],this.facetsRefinements=t.facetsRefinements||{},this.facetsExcludes=t.facetsExcludes||{},this.disjunctiveFacetsRefinements=t.disjunctiveFacetsRefinements||{},this.numericRefinements=t.numericRefinements||{},this.tagRefinements=t.tagRefinements||[],this.hierarchicalFacetsRefinements=t.hierarchicalFacetsRefinements||{};var r=this;Object.keys(t).forEach((function(e){var n=-1!==m.PARAMETERS.indexOf(e),i=void 0!==t[e];!n&&i&&(r[e]=t[e])}))}m.PARAMETERS=Object.keys(new m),m._parseNumbers=function(e){if(e instanceof m)return e;var t={};if(["aroundPrecision","aroundRadius","getRankingInfo","minWordSizefor2Typos","minWordSizefor1Typo","page","maxValuesPerFacet","distinct","minimumAroundRadius","hitsPerPage","minProximity"].forEach((function(r){var n=e[r];if("string"==typeof n){var i=parseFloat(n);t[r]=isNaN(i)?n:i}})),Array.isArray(e.insideBoundingBox)&&(t.insideBoundingBox=e.insideBoundingBox.map((function(e){return Array.isArray(e)?e.map((function(e){return parseFloat(e)})):e}))),e.numericRefinements){var r={};Object.keys(e.numericRefinements).forEach((function(t){var n=e.numericRefinements[t]||{};r[t]={},Object.keys(n).forEach((function(e){var i=n[e].map((function(e){return Array.isArray(e)?e.map((function(e){return"string"==typeof e?parseFloat(e):e})):"string"==typeof e?parseFloat(e):e}));r[t][e]=i}))})),t.numericRefinements=r}return n({},e,t)},m.make=function(e){var t=new m(e);return(e.hierarchicalFacets||[]).forEach((function(e){if(e.rootPath){var r=t.getHierarchicalRefinement(e.name);r.length>0&&0!==r[0].indexOf(e.rootPath)&&(t=t.clearRefinements(e.name)),0===(r=t.getHierarchicalRefinement(e.name)).length&&(t=t.toggleHierarchicalFacetRefinement(e.name,e.rootPath))}})),t},m.validate=function(e,t){var r=t||{};return e.tagFilters&&r.tagRefinements&&r.tagRefinements.length>0?new Error("[Tags] Cannot switch from the managed tag API to the advanced API. It is probably an error, if it is really what you want, you should first clear the tags with clearTags method."):e.tagRefinements.length>0&&r.tagFilters?new Error("[Tags] Cannot switch from the advanced tag API to the managed API. It is probably an error, if it is not, you should first clear the tags with clearTags method."):e.numericFilters&&r.numericRefinements&&o(r.numericRefinements)?new Error("[Numeric filters] Can't switch from the advanced to the managed API. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):o(e.numericRefinements)&&r.numericFilters?new Error("[Numeric filters] Can't switch from the managed API to the advanced. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):null},m.prototype={constructor:m,clearRefinements:function(e){var t={numericRefinements:this._clearNumericRefinements(e),facetsRefinements:f.clearRefinement(this.facetsRefinements,e,"conjunctiveFacet"),facetsExcludes:f.clearRefinement(this.facetsExcludes,e,"exclude"),disjunctiveFacetsRefinements:f.clearRefinement(this.disjunctiveFacetsRefinements,e,"disjunctiveFacet"),hierarchicalFacetsRefinements:f.clearRefinement(this.hierarchicalFacetsRefinements,e,"hierarchicalFacet")};return t.numericRefinements===this.numericRefinements&&t.facetsRefinements===this.facetsRefinements&&t.facetsExcludes===this.facetsExcludes&&t.disjunctiveFacetsRefinements===this.disjunctiveFacetsRefinements&&t.hierarchicalFacetsRefinements===this.hierarchicalFacetsRefinements?this:this.setQueryParameters(t)},clearTags:function(){return void 0===this.tagFilters&&0===this.tagRefinements.length?this:this.setQueryParameters({tagFilters:void 0,tagRefinements:[]})},setIndex:function(e){return e===this.index?this:this.setQueryParameters({index:e})},setQuery:function(e){return e===this.query?this:this.setQueryParameters({query:e})},setPage:function(e){return e===this.page?this:this.setQueryParameters({page:e})},setFacets:function(e){return this.setQueryParameters({facets:e})},setDisjunctiveFacets:function(e){return this.setQueryParameters({disjunctiveFacets:e})},setHitsPerPage:function(e){return this.hitsPerPage===e?this:this.setQueryParameters({hitsPerPage:e})},setTypoTolerance:function(e){return this.typoTolerance===e?this:this.setQueryParameters({typoTolerance:e})},addNumericRefinement:function(e,t,r){var i=c(r);if(this.isNumericRefined(e,t,i))return this;var a=n({},this.numericRefinements);return a[e]=n({},a[e]),a[e][t]?(a[e][t]=a[e][t].slice(),a[e][t].push(i)):a[e][t]=[i],this.setQueryParameters({numericRefinements:a})},getConjunctiveRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsRefinements[e]||[]},getDisjunctiveRefinements:function(e){return this.isDisjunctiveFacet(e)&&this.disjunctiveFacetsRefinements[e]||[]},getHierarchicalRefinement:function(e){return this.hierarchicalFacetsRefinements[e]||[]},getExcludeRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsExcludes[e]||[]},removeNumericRefinement:function(e,t,r){return void 0!==r?this.isNumericRefined(e,t,r)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(n,i){return i===e&&n.op===t&&l(n.val,c(r))}))}):this:void 0!==t?this.isNumericRefined(e,t)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(r,n){return n===e&&r.op===t}))}):this:this.isNumericRefined(e)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(t,r){return r===e}))}):this},getNumericRefinements:function(e){return this.numericRefinements[e]||{}},getNumericRefinement:function(e,t){return this.numericRefinements[e]&&this.numericRefinements[e][t]},_clearNumericRefinements:function(e){if(void 0===e)return o(this.numericRefinements)?{}:this.numericRefinements;if("string"==typeof e)return u(this.numericRefinements,[e]);if("function"==typeof e){var t=!1,r=this.numericRefinements,n=Object.keys(r).reduce((function(n,i){var a=r[i],s={};return a=a||{},Object.keys(a).forEach((function(r){var n=a[r]||[],c=[];n.forEach((function(t){e({val:t,op:r},i,"numeric")||c.push(t)})),c.length!==n.length&&(t=!0),s[r]=c})),n[i]=s,n}),{});return t?n:this.numericRefinements}},addFacet:function(e){return this.isConjunctiveFacet(e)?this:this.setQueryParameters({facets:this.facets.concat([e])})},addDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this:this.setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.concat([e])})},addHierarchicalFacet:function(e){if(this.isHierarchicalFacet(e.name))throw new Error("Cannot declare two hierarchical facets with the same name: `"+e.name+"`");return this.setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.concat([e])})},addFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsRefinements,e,t)?this:this.setQueryParameters({facetsRefinements:f.addRefinement(this.facetsRefinements,e,t)})},addExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsExcludes,e,t)?this:this.setQueryParameters({facetsExcludes:f.addRefinement(this.facetsExcludes,e,t)})},addDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return f.isRefined(this.disjunctiveFacetsRefinements,e,t)?this:this.setQueryParameters({disjunctiveFacetsRefinements:f.addRefinement(this.disjunctiveFacetsRefinements,e,t)})},addTagRefinement:function(e){if(this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.concat(e)};return this.setQueryParameters(t)},removeFacet:function(e){return this.isConjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({facets:this.facets.filter((function(t){return t!==e}))}):this},removeDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.filter((function(t){return t!==e}))}):this},removeHierarchicalFacet:function(e){return this.isHierarchicalFacet(e)?this.clearRefinements(e).setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.filter((function(t){return t.name!==e}))}):this},removeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsRefinements,e,t)?this.setQueryParameters({facetsRefinements:f.removeRefinement(this.facetsRefinements,e,t)}):this},removeExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsExcludes,e,t)?this.setQueryParameters({facetsExcludes:f.removeRefinement(this.facetsExcludes,e,t)}):this},removeDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return f.isRefined(this.disjunctiveFacetsRefinements,e,t)?this.setQueryParameters({disjunctiveFacetsRefinements:f.removeRefinement(this.disjunctiveFacetsRefinements,e,t)}):this},removeTagRefinement:function(e){if(!this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.filter((function(t){return t!==e}))};return this.setQueryParameters(t)},toggleRefinement:function(e,t){return this.toggleFacetRefinement(e,t)},toggleFacetRefinement:function(e,t){if(this.isHierarchicalFacet(e))return this.toggleHierarchicalFacetRefinement(e,t);if(this.isConjunctiveFacet(e))return this.toggleConjunctiveFacetRefinement(e,t);if(this.isDisjunctiveFacet(e))return this.toggleDisjunctiveFacetRefinement(e,t);throw new Error("Cannot refine the undeclared facet "+e+"; it should be added to the helper options facets, disjunctiveFacets or hierarchicalFacets")},toggleConjunctiveFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsRefinements:f.toggleRefinement(this.facetsRefinements,e,t)})},toggleExcludeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsExcludes:f.toggleRefinement(this.facetsExcludes,e,t)})},toggleDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return this.setQueryParameters({disjunctiveFacetsRefinements:f.toggleRefinement(this.disjunctiveFacetsRefinements,e,t)})},toggleHierarchicalFacetRefinement:function(e,t){if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration");var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e)),n={};return void 0!==this.hierarchicalFacetsRefinements[e]&&this.hierarchicalFacetsRefinements[e].length>0&&(this.hierarchicalFacetsRefinements[e][0]===t||0===this.hierarchicalFacetsRefinements[e][0].indexOf(t+r))?-1===t.indexOf(r)?n[e]=[]:n[e]=[t.slice(0,t.lastIndexOf(r))]:n[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:i({},n,this.hierarchicalFacetsRefinements)})},addHierarchicalFacetRefinement:function(e,t){if(this.isHierarchicalFacetRefined(e))throw new Error(e+" is already refined.");if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration.");var r={};return r[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:i({},r,this.hierarchicalFacetsRefinements)})},removeHierarchicalFacetRefinement:function(e){if(!this.isHierarchicalFacetRefined(e))return this;var t={};return t[e]=[],this.setQueryParameters({hierarchicalFacetsRefinements:i({},t,this.hierarchicalFacetsRefinements)})},toggleTagRefinement:function(e){return this.isTagRefined(e)?this.removeTagRefinement(e):this.addTagRefinement(e)},isDisjunctiveFacet:function(e){return this.disjunctiveFacets.indexOf(e)>-1},isHierarchicalFacet:function(e){return void 0!==this.getHierarchicalFacetByName(e)},isConjunctiveFacet:function(e){return this.facets.indexOf(e)>-1},isFacetRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&f.isRefined(this.facetsRefinements,e,t)},isExcludeRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&f.isRefined(this.facetsExcludes,e,t)},isDisjunctiveFacetRefined:function(e,t){return!!this.isDisjunctiveFacet(e)&&f.isRefined(this.disjunctiveFacetsRefinements,e,t)},isHierarchicalFacetRefined:function(e,t){if(!this.isHierarchicalFacet(e))return!1;var r=this.getHierarchicalRefinement(e);return t?-1!==r.indexOf(t):r.length>0},isNumericRefined:function(e,t,r){if(void 0===r&&void 0===t)return!!this.numericRefinements[e];var n=this.numericRefinements[e]&&void 0!==this.numericRefinements[e][t];if(void 0===r||!n)return n;var i,a,u=c(r),o=void 0!==(i=this.numericRefinements[e][t],a=u,s(i,(function(e){return l(e,a)})));return n&&o},isTagRefined:function(e){return-1!==this.tagRefinements.indexOf(e)},getRefinedDisjunctiveFacets:function(){var e=this,t=a(Object.keys(this.numericRefinements).filter((function(t){return Object.keys(e.numericRefinements[t]).length>0})),this.disjunctiveFacets);return Object.keys(this.disjunctiveFacetsRefinements).filter((function(t){return e.disjunctiveFacetsRefinements[t].length>0})).concat(t).concat(this.getRefinedHierarchicalFacets())},getRefinedHierarchicalFacets:function(){var e=this;return a(this.hierarchicalFacets.map((function(e){return e.name})),Object.keys(this.hierarchicalFacetsRefinements).filter((function(t){return e.hierarchicalFacetsRefinements[t].length>0})))},getUnrefinedDisjunctiveFacets:function(){var e=this.getRefinedDisjunctiveFacets();return this.disjunctiveFacets.filter((function(t){return-1===e.indexOf(t)}))},managedParameters:["index","facets","disjunctiveFacets","facetsRefinements","hierarchicalFacets","facetsExcludes","disjunctiveFacetsRefinements","numericRefinements","tagRefinements","hierarchicalFacetsRefinements"],getQueryParams:function(){var e=this.managedParameters,t={},r=this;return Object.keys(this).forEach((function(n){var i=r[n];-1===e.indexOf(n)&&void 0!==i&&(t[n]=i)})),t},setQueryParameter:function(e,t){if(this[e]===t)return this;var r={};return r[e]=t,this.setQueryParameters(r)},setQueryParameters:function(e){if(!e)return this;var t=m.validate(this,e);if(t)throw t;var r=this,n=m._parseNumbers(e),i=Object.keys(this).reduce((function(e,t){return e[t]=r[t],e}),{}),a=Object.keys(n).reduce((function(e,t){var r=void 0!==e[t],i=void 0!==n[t];return r&&!i?u(e,[t]):(i&&(e[t]=n[t]),e)}),i);return new this.constructor(a)},resetPage:function(){return void 0===this.page?this:this.setPage(0)},_getHierarchicalFacetSortBy:function(e){return e.sortBy||["isRefined:desc","name:asc"]},_getHierarchicalFacetSeparator:function(e){return e.separator||" > "},_getHierarchicalRootPath:function(e){return e.rootPath||null},_getHierarchicalShowParentLevel:function(e){return"boolean"!=typeof e.showParentLevel||e.showParentLevel},getHierarchicalFacetByName:function(e){return s(this.hierarchicalFacets,(function(t){return t.name===e}))},getHierarchicalFacetBreadcrumb:function(e){if(!this.isHierarchicalFacet(e))return[];var t=this.getHierarchicalRefinement(e)[0];if(!t)return[];var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e));return t.split(r).map((function(e){return e.trim()}))},toString:function(){return JSON.stringify(this,null,2)}},e.exports=m},10210:(e,t,r)=>{"use strict";e.exports=function(e){return function(t,r){var s=e.hierarchicalFacets[r],o=e.hierarchicalFacetsRefinements[s.name]&&e.hierarchicalFacetsRefinements[s.name][0]||"",h=e._getHierarchicalFacetSeparator(s),f=e._getHierarchicalRootPath(s),l=e._getHierarchicalShowParentLevel(s),m=a(e._getHierarchicalFacetSortBy(s)),d=t.every((function(e){return e.exhaustive})),p=function(e,t,r,a,s){return function(o,h,f){var l=o;if(f>0){var m=0;for(l=o;m<f;){var d=l&&Array.isArray(l.data)?l.data:[];l=i(d,(function(e){return e.isRefined})),m++}}if(l){var p=Object.keys(h.data).map((function(e){return[e,h.data[e]]})).filter((function(e){return function(e,t,r,n,i,a){if(i&&(0!==e.indexOf(i)||i===e))return!1;return!i&&-1===e.indexOf(n)||i&&e.split(n).length-i.split(n).length==1||-1===e.indexOf(n)&&-1===r.indexOf(n)||0===r.indexOf(e)||0===e.indexOf(t+n)&&(a||0===e.indexOf(r))}(e[0],l.path||r,s,t,r,a)}));l.data=n(p.map((function(e){var r=e[0];return function(e,t,r,n,i){var a=t.split(r);return{name:a[a.length-1].trim(),path:t,escapedValue:c(t),count:e,isRefined:n===t||0===n.indexOf(t+r),exhaustive:i,data:null}}(e[1],r,t,u(s),h.exhaustive)})),e[0],e[1])}return o}}(m,h,f,l,o),v=t;return f&&(v=t.slice(f.split(h).length)),v.reduce(p,{name:e.hierarchicalFacets[r].name,count:null,isRefined:!0,path:null,escapedValue:null,exhaustive:d,data:null})}};var n=r(42148),i=r(7888),a=r(82293),s=r(94039),c=s.escapeFacetValue,u=s.unescapeFacetValue},23076:(e,t,r)=>{"use strict";var n=r(60185),i=r(52344),a=r(42148),s=r(74587),c=r(7888),u=r(69725),o=r(82293),h=r(94039),f=h.escapeFacetValue,l=h.unescapeFacetValue,m=r(10210);function d(e){var t={};return e.forEach((function(e,r){t[e]=r})),t}function p(e,t,r){t&&t[r]&&(e.stats=t[r])}function v(e,t,r){var a=t[0];this._rawResults=t;var o=this;Object.keys(a).forEach((function(e){o[e]=a[e]})),Object.keys(r||{}).forEach((function(e){o[e]=r[e]})),this.processingTimeMS=t.reduce((function(e,t){return void 0===t.processingTimeMS?e:e+t.processingTimeMS}),0),this.disjunctiveFacets=[],this.hierarchicalFacets=e.hierarchicalFacets.map((function(){return[]})),this.facets=[];var h=e.getRefinedDisjunctiveFacets(),f=d(e.facets),v=d(e.disjunctiveFacets),g=1,y=a.facets||{};Object.keys(y).forEach((function(t){var r,n,i=y[t],s=(r=e.hierarchicalFacets,n=t,c(r,(function(e){return(e.attributes||[]).indexOf(n)>-1})));if(s){var h=s.attributes.indexOf(t),l=u(e.hierarchicalFacets,(function(e){return e.name===s.name}));o.hierarchicalFacets[l][h]={attribute:t,data:i,exhaustive:a.exhaustiveFacetsCount}}else{var m,d=-1!==e.disjunctiveFacets.indexOf(t),g=-1!==e.facets.indexOf(t);d&&(m=v[t],o.disjunctiveFacets[m]={name:t,data:i,exhaustive:a.exhaustiveFacetsCount},p(o.disjunctiveFacets[m],a.facets_stats,t)),g&&(m=f[t],o.facets[m]={name:t,data:i,exhaustive:a.exhaustiveFacetsCount},p(o.facets[m],a.facets_stats,t))}})),this.hierarchicalFacets=s(this.hierarchicalFacets),h.forEach((function(r){var s=t[g],c=s&&s.facets?s.facets:{},h=e.getHierarchicalFacetByName(r);Object.keys(c).forEach((function(t){var r,f=c[t];if(h){r=u(e.hierarchicalFacets,(function(e){return e.name===h.name}));var m=u(o.hierarchicalFacets[r],(function(e){return e.attribute===t}));if(-1===m)return;o.hierarchicalFacets[r][m].data=n({},o.hierarchicalFacets[r][m].data,f)}else{r=v[t];var d=a.facets&&a.facets[t]||{};o.disjunctiveFacets[r]={name:t,data:i({},f,d),exhaustive:s.exhaustiveFacetsCount},p(o.disjunctiveFacets[r],s.facets_stats,t),e.disjunctiveFacetsRefinements[t]&&e.disjunctiveFacetsRefinements[t].forEach((function(n){!o.disjunctiveFacets[r].data[n]&&e.disjunctiveFacetsRefinements[t].indexOf(l(n))>-1&&(o.disjunctiveFacets[r].data[n]=0)}))}})),g++})),e.getRefinedHierarchicalFacets().forEach((function(r){var n=e.getHierarchicalFacetByName(r),a=e._getHierarchicalFacetSeparator(n),s=e.getHierarchicalRefinement(r);0===s.length||s[0].split(a).length<2||t.slice(g).forEach((function(t){var r=t&&t.facets?t.facets:{};Object.keys(r).forEach((function(t){var c=r[t],h=u(e.hierarchicalFacets,(function(e){return e.name===n.name})),f=u(o.hierarchicalFacets[h],(function(e){return e.attribute===t}));if(-1!==f){var l={};if(s.length>0){var m=s[0].split(a)[0];l[m]=o.hierarchicalFacets[h][f].data[m]}o.hierarchicalFacets[h][f].data=i(l,c,o.hierarchicalFacets[h][f].data)}})),g++}))})),Object.keys(e.facetsExcludes).forEach((function(t){var r=e.facetsExcludes[t],n=f[t];o.facets[n]={name:t,data:a.facets[t],exhaustive:a.exhaustiveFacetsCount},r.forEach((function(e){o.facets[n]=o.facets[n]||{name:t},o.facets[n].data=o.facets[n].data||{},o.facets[n].data[e]=0}))})),this.hierarchicalFacets=this.hierarchicalFacets.map(m(e)),this.facets=s(this.facets),this.disjunctiveFacets=s(this.disjunctiveFacets),this._state=e}function g(e,t,r,n){if(n=n||0,Array.isArray(t))return e(t,r[n]);if(!t.data||0===t.data.length)return t;var a=t.data.map((function(t){return g(e,t,r,n+1)})),s=e(a,r[n]);return i({data:s},t)}function y(e,t){var r=c(e,(function(e){return e.name===t}));return r&&r.stats}function R(e,t,r,n,i){var a=c(i,(function(e){return e.name===r})),s=a&&a.data&&a.data[n]?a.data[n]:0,u=a&&a.exhaustive||!1;return{type:t,attributeName:r,name:n,count:s,exhaustive:u}}v.prototype.getFacetByName=function(e){function t(t){return t.name===e}return c(this.facets,t)||c(this.disjunctiveFacets,t)||c(this.hierarchicalFacets,t)},v.DEFAULT_SORT=["isRefined:desc","count:desc","name:asc"],v.prototype.getFacetValues=function(e,t){var r=function(e,t){function r(e){return e.name===t}if(e._state.isConjunctiveFacet(t)){var n=c(e.facets,r);return n?Object.keys(n.data).map((function(r){var i=f(r);return{name:r,escapedValue:i,count:n.data[r],isRefined:e._state.isFacetRefined(t,i),isExcluded:e._state.isExcludeRefined(t,r)}})):[]}if(e._state.isDisjunctiveFacet(t)){var i=c(e.disjunctiveFacets,r);return i?Object.keys(i.data).map((function(r){var n=f(r);return{name:r,escapedValue:n,count:i.data[r],isRefined:e._state.isDisjunctiveFacetRefined(t,n)}})):[]}if(e._state.isHierarchicalFacet(t))return c(e.hierarchicalFacets,r)}(this,e);if(r){var n,s=i({},t,{sortBy:v.DEFAULT_SORT,facetOrdering:!(t&&t.sortBy)}),u=this;if(Array.isArray(r))n=[e];else n=u._state.getHierarchicalFacetByName(r.name).attributes;return g((function(e,t){if(s.facetOrdering){var r=function(e,t){return e.renderingContent&&e.renderingContent.facetOrdering&&e.renderingContent.facetOrdering.values&&e.renderingContent.facetOrdering.values[t]}(u,t);if(Boolean(r))return function(e,t){var r=[],n=[],i=(t.order||[]).reduce((function(e,t,r){return e[t]=r,e}),{});e.forEach((function(e){var t=e.path||e.name;void 0!==i[t]?r[i[t]]=e:n.push(e)})),r=r.filter((function(e){return e}));var s,c=t.sortRemainingBy;return"hidden"===c?r:(s="alpha"===c?[["path","name"],["asc","asc"]]:[["count"],["desc"]],r.concat(a(n,s[0],s[1])))}(e,r)}if(Array.isArray(s.sortBy)){var n=o(s.sortBy,v.DEFAULT_SORT);return a(e,n[0],n[1])}if("function"==typeof s.sortBy)return function(e,t){return t.sort(e)}(s.sortBy,e);throw new Error("options.sortBy is optional but if defined it must be either an array of string (predicates) or a sorting function")}),r,n)}},v.prototype.getFacetStats=function(e){return this._state.isConjunctiveFacet(e)?y(this.facets,e):this._state.isDisjunctiveFacet(e)?y(this.disjunctiveFacets,e):void 0},v.prototype.getRefinements=function(){var e=this._state,t=this,r=[];return Object.keys(e.facetsRefinements).forEach((function(n){e.facetsRefinements[n].forEach((function(i){r.push(R(e,"facet",n,i,t.facets))}))})),Object.keys(e.facetsExcludes).forEach((function(n){e.facetsExcludes[n].forEach((function(i){r.push(R(e,"exclude",n,i,t.facets))}))})),Object.keys(e.disjunctiveFacetsRefinements).forEach((function(n){e.disjunctiveFacetsRefinements[n].forEach((function(i){r.push(R(e,"disjunctive",n,i,t.disjunctiveFacets))}))})),Object.keys(e.hierarchicalFacetsRefinements).forEach((function(n){e.hierarchicalFacetsRefinements[n].forEach((function(i){r.push(function(e,t,r,n){var i=e.getHierarchicalFacetByName(t),a=e._getHierarchicalFacetSeparator(i),s=r.split(a),u=c(n,(function(e){return e.name===t})),o=s.reduce((function(e,t){var r=e&&c(e.data,(function(e){return e.name===t}));return void 0!==r?r:e}),u),h=o&&o.count||0,f=o&&o.exhaustive||!1,l=o&&o.path||"";return{type:"hierarchical",attributeName:t,name:l,count:h,exhaustive:f}}(e,n,i,t.hierarchicalFacets))}))})),Object.keys(e.numericRefinements).forEach((function(t){var n=e.numericRefinements[t];Object.keys(n).forEach((function(e){n[e].forEach((function(n){r.push({type:"numeric",attributeName:t,name:n,numericValue:n,operator:e})}))}))})),e.tagRefinements.forEach((function(e){r.push({type:"tag",attributeName:"_tags",name:e})})),r},e.exports=v},49374:(e,t,r)=>{"use strict";var n=r(17775),i=r(23076),a=r(68078),s=r(96394),c=r(17331),u=r(14853),o=r(90116),h=r(49803),f=r(60185),l=r(24336),m=r(94039).escapeFacetValue;function d(e,t,r){"function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+l+")"),this.setClient(e);var i=r||{};i.index=t,this.state=n.make(i),this.lastResults=null,this._queryId=0,this._lastQueryIdReceived=-1,this.derivedHelpers=[],this._currentNbQueries=0}function p(e){if(e<0)throw new Error("Page requested below 0.");return this._change({state:this.state.setPage(e),isPageReset:!1}),this}function v(){return this.state.page}u(d,c),d.prototype.search=function(){return this._search({onlyWithDerivedHelpers:!1}),this},d.prototype.searchOnlyWithDerivedHelpers=function(){return this._search({onlyWithDerivedHelpers:!0}),this},d.prototype.getQuery=function(){var e=this.state;return s._getHitsSearchParams(e)},d.prototype.searchOnce=function(e,t){var r=e?this.state.setQueryParameters(e):this.state,n=s._getQueries(r.index,r),a=this;if(this._currentNbQueries++,this.emit("searchOnce",{state:r}),!t)return this.client.search(n).then((function(e){return a._currentNbQueries--,0===a._currentNbQueries&&a.emit("searchQueueEmpty"),{content:new i(r,e.results),state:r,_originalResponse:e}}),(function(e){throw a._currentNbQueries--,0===a._currentNbQueries&&a.emit("searchQueueEmpty"),e}));this.client.search(n).then((function(e){a._currentNbQueries--,0===a._currentNbQueries&&a.emit("searchQueueEmpty"),t(null,new i(r,e.results),r)})).catch((function(e){a._currentNbQueries--,0===a._currentNbQueries&&a.emit("searchQueueEmpty"),t(e,null,r)}))},d.prototype.findAnswers=function(e){var t=this.state,r=this.derivedHelpers[0];if(!r)return Promise.resolve([]);var n=r.getModifiedState(t),i=f({attributesForPrediction:e.attributesForPrediction,nbHits:e.nbHits},{params:h(s._getHitsSearchParams(n),["attributesToSnippet","hitsPerPage","restrictSearchableAttributes","snippetEllipsisText"])}),a="search for answers was called, but this client does not have a function client.initIndex(index).findAnswers";if("function"!=typeof this.client.initIndex)throw new Error(a);var c=this.client.initIndex(n.index);if("function"!=typeof c.findAnswers)throw new Error(a);return c.findAnswers(n.query,e.queryLanguages,i)},d.prototype.searchForFacetValues=function(e,t,r,n){var i="function"==typeof this.client.searchForFacetValues,a="function"==typeof this.client.initIndex;if(!i&&!a&&"function"!=typeof this.client.search)throw new Error("search for facet values (searchable) was called, but this client does not have a function client.searchForFacetValues or client.initIndex(index).searchForFacetValues");var c=this.state.setQueryParameters(n||{}),u=c.isDisjunctiveFacet(e),o=s.getSearchForFacetQuery(e,t,r,c);this._currentNbQueries++;var h,f=this;return i?h=this.client.searchForFacetValues([{indexName:c.index,params:o}]):a?h=this.client.initIndex(c.index).searchForFacetValues(o):(delete o.facetName,h=this.client.search([{type:"facet",facet:e,indexName:c.index,params:o}]).then((function(e){return e.results[0]}))),this.emit("searchForFacetValues",{state:c,facet:e,query:t}),h.then((function(t){return f._currentNbQueries--,0===f._currentNbQueries&&f.emit("searchQueueEmpty"),(t=Array.isArray(t)?t[0]:t).facetHits.forEach((function(t){t.escapedValue=m(t.value),t.isRefined=u?c.isDisjunctiveFacetRefined(e,t.escapedValue):c.isFacetRefined(e,t.escapedValue)})),t}),(function(e){throw f._currentNbQueries--,0===f._currentNbQueries&&f.emit("searchQueueEmpty"),e}))},d.prototype.setQuery=function(e){return this._change({state:this.state.resetPage().setQuery(e),isPageReset:!0}),this},d.prototype.clearRefinements=function(e){return this._change({state:this.state.resetPage().clearRefinements(e),isPageReset:!0}),this},d.prototype.clearTags=function(){return this._change({state:this.state.resetPage().clearTags(),isPageReset:!0}),this},d.prototype.addDisjunctiveFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addDisjunctiveFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addDisjunctiveRefine=function(){return this.addDisjunctiveFacetRefinement.apply(this,arguments)},d.prototype.addHierarchicalFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addHierarchicalFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addNumericRefinement=function(e,t,r){return this._change({state:this.state.resetPage().addNumericRefinement(e,t,r),isPageReset:!0}),this},d.prototype.addFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addRefine=function(){return this.addFacetRefinement.apply(this,arguments)},d.prototype.addFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().addExcludeRefinement(e,t),isPageReset:!0}),this},d.prototype.addExclude=function(){return this.addFacetExclusion.apply(this,arguments)},d.prototype.addTag=function(e){return this._change({state:this.state.resetPage().addTagRefinement(e),isPageReset:!0}),this},d.prototype.removeNumericRefinement=function(e,t,r){return this._change({state:this.state.resetPage().removeNumericRefinement(e,t,r),isPageReset:!0}),this},d.prototype.removeDisjunctiveFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().removeDisjunctiveFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.removeDisjunctiveRefine=function(){return this.removeDisjunctiveFacetRefinement.apply(this,arguments)},d.prototype.removeHierarchicalFacetRefinement=function(e){return this._change({state:this.state.resetPage().removeHierarchicalFacetRefinement(e),isPageReset:!0}),this},d.prototype.removeFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().removeFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.removeRefine=function(){return this.removeFacetRefinement.apply(this,arguments)},d.prototype.removeFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().removeExcludeRefinement(e,t),isPageReset:!0}),this},d.prototype.removeExclude=function(){return this.removeFacetExclusion.apply(this,arguments)},d.prototype.removeTag=function(e){return this._change({state:this.state.resetPage().removeTagRefinement(e),isPageReset:!0}),this},d.prototype.toggleFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().toggleExcludeFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.toggleExclude=function(){return this.toggleFacetExclusion.apply(this,arguments)},d.prototype.toggleRefinement=function(e,t){return this.toggleFacetRefinement(e,t)},d.prototype.toggleFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().toggleFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.toggleRefine=function(){return this.toggleFacetRefinement.apply(this,arguments)},d.prototype.toggleTag=function(e){return this._change({state:this.state.resetPage().toggleTagRefinement(e),isPageReset:!0}),this},d.prototype.nextPage=function(){var e=this.state.page||0;return this.setPage(e+1)},d.prototype.previousPage=function(){var e=this.state.page||0;return this.setPage(e-1)},d.prototype.setCurrentPage=p,d.prototype.setPage=p,d.prototype.setIndex=function(e){return this._change({state:this.state.resetPage().setIndex(e),isPageReset:!0}),this},d.prototype.setQueryParameter=function(e,t){return this._change({state:this.state.resetPage().setQueryParameter(e,t),isPageReset:!0}),this},d.prototype.setState=function(e){return this._change({state:n.make(e),isPageReset:!1}),this},d.prototype.overrideStateWithoutTriggeringChangeEvent=function(e){return this.state=new n(e),this},d.prototype.hasRefinements=function(e){return!!o(this.state.getNumericRefinements(e))||(this.state.isConjunctiveFacet(e)?this.state.isFacetRefined(e):this.state.isDisjunctiveFacet(e)?this.state.isDisjunctiveFacetRefined(e):!!this.state.isHierarchicalFacet(e)&&this.state.isHierarchicalFacetRefined(e))},d.prototype.isExcluded=function(e,t){return this.state.isExcludeRefined(e,t)},d.prototype.isDisjunctiveRefined=function(e,t){return this.state.isDisjunctiveFacetRefined(e,t)},d.prototype.hasTag=function(e){return this.state.isTagRefined(e)},d.prototype.isTagRefined=function(){return this.hasTagRefinements.apply(this,arguments)},d.prototype.getIndex=function(){return this.state.index},d.prototype.getCurrentPage=v,d.prototype.getPage=v,d.prototype.getTags=function(){return this.state.tagRefinements},d.prototype.getRefinements=function(e){var t=[];if(this.state.isConjunctiveFacet(e))this.state.getConjunctiveRefinements(e).forEach((function(e){t.push({value:e,type:"conjunctive"})})),this.state.getExcludeRefinements(e).forEach((function(e){t.push({value:e,type:"exclude"})}));else if(this.state.isDisjunctiveFacet(e)){this.state.getDisjunctiveRefinements(e).forEach((function(e){t.push({value:e,type:"disjunctive"})}))}var r=this.state.getNumericRefinements(e);return Object.keys(r).forEach((function(e){var n=r[e];t.push({value:n,operator:e,type:"numeric"})})),t},d.prototype.getNumericRefinement=function(e,t){return this.state.getNumericRefinement(e,t)},d.prototype.getHierarchicalFacetBreadcrumb=function(e){return this.state.getHierarchicalFacetBreadcrumb(e)},d.prototype._search=function(e){var t=this.state,r=[],n=[];e.onlyWithDerivedHelpers||(n=s._getQueries(t.index,t),r.push({state:t,queriesCount:n.length,helper:this}),this.emit("search",{state:t,results:this.lastResults}));var i=this.derivedHelpers.map((function(e){var n=e.getModifiedState(t),i=s._getQueries(n.index,n);return r.push({state:n,queriesCount:i.length,helper:e}),e.emit("search",{state:n,results:e.lastResults}),i})),a=Array.prototype.concat.apply(n,i),c=this._queryId++;this._currentNbQueries++;try{this.client.search(a).then(this._dispatchAlgoliaResponse.bind(this,r,c)).catch(this._dispatchAlgoliaError.bind(this,c))}catch(u){this.emit("error",{error:u})}},d.prototype._dispatchAlgoliaResponse=function(e,t,r){if(!(t<this._lastQueryIdReceived)){this._currentNbQueries-=t-this._lastQueryIdReceived,this._lastQueryIdReceived=t,0===this._currentNbQueries&&this.emit("searchQueueEmpty");var n=r.results.slice();e.forEach((function(e){var t=e.state,r=e.queriesCount,a=e.helper,s=n.splice(0,r),c=a.lastResults=new i(t,s);a.emit("result",{results:c,state:t})}))}},d.prototype._dispatchAlgoliaError=function(e,t){e<this._lastQueryIdReceived||(this._currentNbQueries-=e-this._lastQueryIdReceived,this._lastQueryIdReceived=e,this.emit("error",{error:t}),0===this._currentNbQueries&&this.emit("searchQueueEmpty"))},d.prototype.containsRefinement=function(e,t,r,n){return e||0!==t.length||0!==r.length||0!==n.length},d.prototype._hasDisjunctiveRefinements=function(e){return this.state.disjunctiveRefinements[e]&&this.state.disjunctiveRefinements[e].length>0},d.prototype._change=function(e){var t=e.state,r=e.isPageReset;t!==this.state&&(this.state=t,this.emit("change",{state:this.state,results:this.lastResults,isPageReset:r}))},d.prototype.clearCache=function(){return this.client.clearCache&&this.client.clearCache(),this},d.prototype.setClient=function(e){return this.client===e||("function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+l+")"),this.client=e),this},d.prototype.getClient=function(){return this.client},d.prototype.derive=function(e){var t=new a(this,e);return this.derivedHelpers.push(t),t},d.prototype.detachDerivedHelper=function(e){var t=this.derivedHelpers.indexOf(e);if(-1===t)throw new Error("Derived helper already detached");this.derivedHelpers.splice(t,1)},d.prototype.hasPendingRequests=function(){return this._currentNbQueries>0},e.exports=d},74587:e=>{"use strict";e.exports=function(e){return Array.isArray(e)?e.filter(Boolean):[]}},52344:e=>{"use strict";e.exports=function(){var e=Array.prototype.slice.call(arguments);return e.reduceRight((function(e,t){return Object.keys(Object(t)).forEach((function(r){void 0!==t[r]&&(void 0!==e[r]&&delete e[r],e[r]=t[r])})),e}),{})}},94039:e=>{"use strict";e.exports={escapeFacetValue:function(e){return"string"!=typeof e?e:String(e).replace(/^-/,"\\-")},unescapeFacetValue:function(e){return"string"!=typeof e?e:e.replace(/^\\-/,"-")}}},7888:e=>{"use strict";e.exports=function(e,t){if(Array.isArray(e))for(var r=0;r<e.length;r++)if(t(e[r]))return e[r]}},69725:e=>{"use strict";e.exports=function(e,t){if(!Array.isArray(e))return-1;for(var r=0;r<e.length;r++)if(t(e[r]))return r;return-1}},82293:(e,t,r)=>{"use strict";var n=r(7888);e.exports=function(e,t){var r=(t||[]).map((function(e){return e.split(":")}));return e.reduce((function(e,t){var i=t.split(":"),a=n(r,(function(e){return e[0]===i[0]}));return i.length>1||!a?(e[0].push(i[0]),e[1].push(i[1]),e):(e[0].push(a[0]),e[1].push(a[1]),e)}),[[],[]])}},14853:e=>{"use strict";e.exports=function(e,t){e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}},22686:e=>{"use strict";e.exports=function(e,t){return e.filter((function(r,n){return t.indexOf(r)>-1&&e.indexOf(r)===n}))}},60185:e=>{"use strict";function t(e){return"function"==typeof e||Array.isArray(e)||"[object Object]"===Object.prototype.toString.call(e)}function r(e,n){if(e===n)return e;for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)&&"__proto__"!==i){var a=n[i],s=e[i];void 0!==s&&void 0===a||(t(s)&&t(a)?e[i]=r(s,a):e[i]="object"==typeof(c=a)&&null!==c?r(Array.isArray(c)?[]:{},c):c)}var c;return e}e.exports=function(e){t(e)||(e={});for(var n=1,i=arguments.length;n<i;n++){var a=arguments[n];t(a)&&r(e,a)}return e}},90116:e=>{"use strict";e.exports=function(e){return e&&Object.keys(e).length>0}},49803:e=>{"use strict";e.exports=function(e,t){if(null===e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}},42148:e=>{"use strict";function t(e,t){if(e!==t){var r=void 0!==e,n=null===e,i=void 0!==t,a=null===t;if(!a&&e>t||n&&i||!r)return 1;if(!n&&e<t||a&&r||!i)return-1}return 0}e.exports=function(e,r,n){if(!Array.isArray(e))return[];Array.isArray(n)||(n=[]);var i=e.map((function(e,t){return{criteria:r.map((function(t){return e[t]})),index:t,value:e}}));return i.sort((function(e,r){for(var i=-1;++i<e.criteria.length;){var a=t(e.criteria[i],r.criteria[i]);if(a)return i>=n.length?a:"desc"===n[i]?-a:a}return e.index-r.index})),i.map((function(e){return e.value}))}},28023:e=>{"use strict";e.exports=function e(t){if("number"==typeof t)return t;if("string"==typeof t)return parseFloat(t);if(Array.isArray(t))return t.map(e);throw new Error("The value should be a number, a parsable string or an array of those.")}},96394:(e,t,r)=>{"use strict";var n=r(60185);function i(e){return Object.keys(e).sort((function(e,t){return e.localeCompare(t)})).reduce((function(t,r){return t[r]=e[r],t}),{})}var a={_getQueries:function(e,t){var r=[];return r.push({indexName:e,params:a._getHitsSearchParams(t)}),t.getRefinedDisjunctiveFacets().forEach((function(n){r.push({indexName:e,params:a._getDisjunctiveFacetSearchParams(t,n)})})),t.getRefinedHierarchicalFacets().forEach((function(n){var i=t.getHierarchicalFacetByName(n),s=t.getHierarchicalRefinement(n),c=t._getHierarchicalFacetSeparator(i);if(s.length>0&&s[0].split(c).length>1){var u=s[0].split(c).slice(0,-1).reduce((function(e,t,r){return e.concat({attribute:i.attributes[r],value:0===r?t:[e[e.length-1].value,t].join(c)})}),[]);u.forEach((function(n,i){var s=a._getDisjunctiveFacetSearchParams(t,n.attribute,0===i),c=u[i-1];s.facetFilters=i>0?[c.attribute+":"+c.value]:void 0,r.push({indexName:e,params:s})}))}})),r},_getHitsSearchParams:function(e){var t=e.facets.concat(e.disjunctiveFacets).concat(a._getHitsHierarchicalFacetsAttributes(e)),r=a._getFacetFilters(e),s=a._getNumericFilters(e),c=a._getTagFilters(e),u={facets:t.indexOf("*")>-1?["*"]:t,tagFilters:c};return r.length>0&&(u.facetFilters=r),s.length>0&&(u.numericFilters=s),i(n({},e.getQueryParams(),u))},_getDisjunctiveFacetSearchParams:function(e,t,r){var s=a._getFacetFilters(e,t,r),c=a._getNumericFilters(e,t),u=a._getTagFilters(e),o={hitsPerPage:0,page:0,analytics:!1,clickAnalytics:!1};u.length>0&&(o.tagFilters=u);var h=e.getHierarchicalFacetByName(t);return o.facets=h?a._getDisjunctiveHierarchicalFacetAttribute(e,h,r):t,c.length>0&&(o.numericFilters=c),s.length>0&&(o.facetFilters=s),i(n({},e.getQueryParams(),o))},_getNumericFilters:function(e,t){if(e.numericFilters)return e.numericFilters;var r=[];return Object.keys(e.numericRefinements).forEach((function(n){var i=e.numericRefinements[n]||{};Object.keys(i).forEach((function(e){var a=i[e]||[];t!==n&&a.forEach((function(t){if(Array.isArray(t)){var i=t.map((function(t){return n+e+t}));r.push(i)}else r.push(n+e+t)}))}))})),r},_getTagFilters:function(e){return e.tagFilters?e.tagFilters:e.tagRefinements.join(",")},_getFacetFilters:function(e,t,r){var n=[],i=e.facetsRefinements||{};Object.keys(i).forEach((function(e){(i[e]||[]).forEach((function(t){n.push(e+":"+t)}))}));var a=e.facetsExcludes||{};Object.keys(a).forEach((function(e){(a[e]||[]).forEach((function(t){n.push(e+":-"+t)}))}));var s=e.disjunctiveFacetsRefinements||{};Object.keys(s).forEach((function(e){var r=s[e]||[];if(e!==t&&r&&0!==r.length){var i=[];r.forEach((function(t){i.push(e+":"+t)})),n.push(i)}}));var c=e.hierarchicalFacetsRefinements||{};return Object.keys(c).forEach((function(i){var a=(c[i]||[])[0];if(void 0!==a){var s,u,o=e.getHierarchicalFacetByName(i),h=e._getHierarchicalFacetSeparator(o),f=e._getHierarchicalRootPath(o);if(t===i){if(-1===a.indexOf(h)||!f&&!0===r||f&&f.split(h).length===a.split(h).length)return;f?(u=f.split(h).length-1,a=f):(u=a.split(h).length-2,a=a.slice(0,a.lastIndexOf(h))),s=o.attributes[u]}else u=a.split(h).length-1,s=o.attributes[u];s&&n.push([s+":"+a])}})),n},_getHitsHierarchicalFacetsAttributes:function(e){return e.hierarchicalFacets.reduce((function(t,r){var n=e.getHierarchicalRefinement(r.name)[0];if(!n)return t.push(r.attributes[0]),t;var i=e._getHierarchicalFacetSeparator(r),a=n.split(i).length,s=r.attributes.slice(0,a+1);return t.concat(s)}),[])},_getDisjunctiveHierarchicalFacetAttribute:function(e,t,r){var n=e._getHierarchicalFacetSeparator(t);if(!0===r){var i=e._getHierarchicalRootPath(t),a=0;return i&&(a=i.split(n).length),[t.attributes[a]]}var s=(e.getHierarchicalRefinement(t.name)[0]||"").split(n).length-1;return t.attributes.slice(0,s+1)},getSearchForFacetQuery:function(e,t,r,s){var c=s.isDisjunctiveFacet(e)?s.clearRefinements(e):s,u={facetQuery:t,facetName:e};return"number"==typeof r&&(u.maxFacetHits=r),i(n({},a._getHitsSearchParams(c),u))}};e.exports=a},46801:e=>{"use strict";e.exports=function(e){return null!==e&&/^[a-zA-Z0-9_-]{1,64}$/.test(e)}},24336:e=>{"use strict";e.exports="3.11.0"},70290:function(e){e.exports=function(){"use strict";function e(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function r(r){for(var n=1;n<arguments.length;n++){var i=null!=arguments[n]?arguments[n]:{};n%2?t(Object(i),!0).forEach((function(t){e(r,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(i)):t(Object(i)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(i,e))}))}return r}function n(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var r=[],n=!0,i=!1,a=void 0;try{for(var s,c=e[Symbol.iterator]();!(n=(s=c.next()).done)&&(r.push(s.value),!t||r.length!==t);n=!0);}catch(e){i=!0,a=e}finally{try{n||null==c.return||c.return()}finally{if(i)throw a}}return r}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function a(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function s(e){var t,r="algoliasearch-client-js-".concat(e.key),n=function(){return void 0===t&&(t=e.localStorage||window.localStorage),t},a=function(){return JSON.parse(n().getItem(r)||"{}")};return{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){var r=JSON.stringify(e),n=a()[r];return Promise.all([n||t(),void 0!==n])})).then((function(e){var t=i(e,2),n=t[0],a=t[1];return Promise.all([n,a||r.miss(n)])})).then((function(e){return i(e,1)[0]}))},set:function(e,t){return Promise.resolve().then((function(){var i=a();return i[JSON.stringify(e)]=t,n().setItem(r,JSON.stringify(i)),t}))},delete:function(e){return Promise.resolve().then((function(){var t=a();delete t[JSON.stringify(e)],n().setItem(r,JSON.stringify(t))}))},clear:function(){return Promise.resolve().then((function(){n().removeItem(r)}))}}}function c(e){var t=a(e.caches),r=t.shift();return void 0===r?{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return t().then((function(e){return Promise.all([e,r.miss(e)])})).then((function(e){return i(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(e,n,i).catch((function(){return c({caches:t}).get(e,n,i)}))},set:function(e,n){return r.set(e,n).catch((function(){return c({caches:t}).set(e,n)}))},delete:function(e){return r.delete(e).catch((function(){return c({caches:t}).delete(e)}))},clear:function(){return r.clear().catch((function(){return c({caches:t}).clear()}))}}}function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},a=JSON.stringify(r);if(a in t)return Promise.resolve(e.serializable?JSON.parse(t[a]):t[a]);var s=n(),c=i&&i.miss||function(){return Promise.resolve()};return s.then((function(e){return c(e)})).then((function(){return s}))},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function o(e){for(var t=e.length-1;t>0;t--){var r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function h(e,t){return t?(Object.keys(t).forEach((function(r){e[r]=t[r](e)})),e):e}function f(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var i=0;return e.replace(/%s/g,(function(){return encodeURIComponent(r[i++])}))}var l={WithinQueryParameters:0,WithinHeaders:1};function m(e,t){var r=e||{},n=r.data||{};return Object.keys(r).forEach((function(e){-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(n[e]=r[e])})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var d={Read:1,Write:2,Any:3},p=1,v=2,g=3;function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p;return r(r({},e),{},{status:t,lastUpdate:Date.now()})}function R(e){return"string"==typeof e?{protocol:"https",url:e,accept:d.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||d.Any}}var F="GET",b="POST";function P(e,t){return Promise.all(t.map((function(t){return e.get(t,(function(){return Promise.resolve(y(t))}))}))).then((function(e){var r=e.filter((function(e){return function(e){return e.status===p||Date.now()-e.lastUpdate>12e4}(e)})),n=e.filter((function(e){return function(e){return e.status===g&&Date.now()-e.lastUpdate<=12e4}(e)})),i=[].concat(a(r),a(n));return{getTimeout:function(e,t){return(0===n.length&&0===e?1:n.length+3+e)*t},statelessHosts:i.length>0?i.map((function(e){return R(e)})):t}}))}function j(e,t,n,i){var s=[],c=function(e,t){if(e.method!==F&&(void 0!==e.data||void 0!==t.data)){var n=Array.isArray(e.data)?e.data:r(r({},e.data),t.data);return JSON.stringify(n)}}(n,i),u=function(e,t){var n=r(r({},e.headers),t.headers),i={};return Object.keys(n).forEach((function(e){var t=n[e];i[e.toLowerCase()]=t})),i}(e,i),o=n.method,h=n.method!==F?{}:r(r({},n.data),i.data),f=r(r(r({"x-algolia-agent":e.userAgent.value},e.queryParameters),h),i.queryParameters),l=0,m=function t(r,a){var h=r.pop();if(void 0===h)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:w(s)};var m={data:c,headers:u,method:o,url:E(h,n.path,f),connectTimeout:a(l,e.timeouts.connect),responseTimeout:a(l,i.timeout)},d=function(e){var t={request:m,response:e,host:h,triesLeft:r.length};return s.push(t),t},p={onSuccess:function(e){return function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e)},onRetry:function(n){var i=d(n);return n.isTimedOut&&l++,Promise.all([e.logger.info("Retryable failure",O(i)),e.hostsCache.set(h,y(h,n.isTimedOut?g:v))]).then((function(){return t(r,a)}))},onFail:function(e){throw d(e),function(e,t){var r=e.content,n=e.status,i=r;try{i=JSON.parse(r).message}catch(e){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(i,n,t)}(e,w(s))}};return e.requester.send(m).then((function(e){return function(e,t){return function(e){var t=e.status;return e.isTimedOut||function(e){var t=e.isTimedOut,r=e.status;return!t&&0==~~r}(e)||2!=~~(t/100)&&4!=~~(t/100)}(e)?t.onRetry(e):2==~~(e.status/100)?t.onSuccess(e):t.onFail(e)}(e,p)}))};return P(e.hostsCache,t).then((function(e){return m(a(e.statelessHosts).reverse(),e.getTimeout)}))}function _(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var r="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(r)&&(t.value="".concat(t.value).concat(r)),t}};return t}function E(e,t,r){var n=x(r),i="".concat(e.protocol,"://").concat(e.url,"/").concat("/"===t.charAt(0)?t.substr(1):t);return n.length&&(i+="?".concat(n)),i}function x(e){return Object.keys(e).map((function(t){return f("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function w(e){return e.map((function(e){return O(e)}))}function O(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return r(r({},e),{},{request:r(r({},e.request),{},{headers:r(r({},e.request.headers),t)})})}var N=function(e){var t=e.appId,n=function(e,t,r){var n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:function(){return e===l.WithinHeaders?n:{}},queryParameters:function(){return e===l.WithinQueryParameters?n:{}}}}(void 0!==e.authMode?e.authMode:l.WithinHeaders,t,e.apiKey),a=function(e){var t=e.hostsCache,r=e.logger,n=e.requester,a=e.requestsCache,s=e.responsesCache,c=e.timeouts,u=e.userAgent,o=e.hosts,h=e.queryParameters,f={hostsCache:t,logger:r,requester:n,requestsCache:a,responsesCache:s,timeouts:c,userAgent:u,headers:e.headers,queryParameters:h,hosts:o.map((function(e){return R(e)})),read:function(e,t){var r=m(t,f.timeouts.read),n=function(){return j(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Read)})),e,r)};if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();var a={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(a,(function(){return f.requestsCache.get(a,(function(){return f.requestsCache.set(a,n()).then((function(e){return Promise.all([f.requestsCache.delete(a),e])}),(function(e){return Promise.all([f.requestsCache.delete(a),Promise.reject(e)])})).then((function(e){var t=i(e,2);return t[0],t[1]}))}))}),{miss:function(e){return f.responsesCache.set(a,e)}})},write:function(e,t){return j(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Write)})),e,m(t,f.timeouts.write))}};return f}(r(r({hosts:[{url:"".concat(t,"-dsn.algolia.net"),accept:d.Read},{url:"".concat(t,".algolia.net"),accept:d.Write}].concat(o([{url:"".concat(t,"-1.algolianet.com")},{url:"".concat(t,"-2.algolianet.com")},{url:"".concat(t,"-3.algolianet.com")}]))},e),{},{headers:r(r(r({},n.headers()),{"content-type":"application/x-www-form-urlencoded"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return h({transporter:a,appId:t,addAlgoliaAgent:function(e,t){a.userAgent.add({segment:e,version:t})},clearCache:function(){return Promise.all([a.requestsCache.clear(),a.responsesCache.clear()]).then((function(){}))}},e.methods)},A=function(e){return function(t,r){return t.method===F?e.transporter.read(t,r):e.transporter.write(t,r)}},H=function(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return h({transporter:e.transporter,appId:e.appId,indexName:t},r.methods)}},S=function(e){return function(t,n){var i=t.map((function(e){return r(r({},e),{},{params:x(e.params||{})})}));return e.transporter.read({method:b,path:"1/indexes/*/queries",data:{requests:i},cacheable:!0},n)}},T=function(e){return function(t,i){return Promise.all(t.map((function(t){var a=t.params,s=a.facetName,c=a.facetQuery,u=n(a,["facetName","facetQuery"]);return H(e)(t.indexName,{methods:{searchForFacetValues:k}}).searchForFacetValues(s,c,r(r({},i),u))})))}},Q=function(e){return function(t,r,n){return e.transporter.read({method:b,path:f("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n)}},C=function(e){return function(t,r){return e.transporter.read({method:b,path:f("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r)}},k=function(e){return function(t,r,n){return e.transporter.read({method:b,path:f("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n)}},D=1,I=2,q=3;function V(e,t,n){var i,a={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:function(e){return new Promise((function(t){var r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return r.setRequestHeader(t,e.headers[t])}));var n,i=function(e,n){return setTimeout((function(){r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e)},a=i(e.connectTimeout,"Connection timeout");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(a),n=i(e.responseTimeout,"Socket timeout"))},r.onerror=function(){0===r.status&&(clearTimeout(a),clearTimeout(n),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(a),clearTimeout(n),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},logger:(i=q,{debug:function(e,t){return D>=i&&console.debug(e,t),Promise.resolve()},info:function(e,t){return I>=i&&console.info(e,t),Promise.resolve()},error:function(e,t){return console.error(e,t),Promise.resolve()}}),responsesCache:u(),requestsCache:u({serializable:!1}),hostsCache:c({caches:[s({key:"".concat("4.14.2","-").concat(e)}),u()]}),userAgent:_("4.14.2").add({segment:"Browser",version:"lite"}),authMode:l.WithinQueryParameters};return N(r(r(r({},a),n),{},{methods:{search:S,searchForFacetValues:T,multipleQueries:S,multipleSearchForFacetValues:T,customRequest:A,initIndex:function(e){return function(t){return H(e)(t,{methods:{search:C,searchForFacetValues:k,findAnswers:Q}})}}}}))}return V.version="4.14.2",V}()},88824:(e,t,r)=>{"use strict";r.d(t,{c:()=>o});var n=r(67294),i=r(52263);const a=["zero","one","two","few","many","other"];function s(e){return a.filter((t=>e.includes(t)))}const c={locale:"en",pluralForms:s(["one","other"]),select:e=>1===e?"one":"other"};function u(){const{i18n:{currentLocale:e}}=(0,i.default)();return(0,n.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:s(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error('Failed to use Intl.PluralRules for locale "'+e+'".\nDocusaurus will fallback to the default (English) implementation.\nError: '+t.message+"\n"),c}}),[e])}function o(){const e=u();return{selectMessage:(t,r)=>function(e,t,r){const n=e.split("|");if(1===n.length)return n[0];n.length>r.pluralForms.length&&console.error("For locale="+r.locale+", a maximum of "+r.pluralForms.length+" plural forms are expected ("+r.pluralForms.join(",")+"), but the message contains "+n.length+": "+e);const i=r.select(t),a=r.pluralForms.indexOf(i);return n[Math.min(a,n.length-1)]}(r,t,e)}}},39172:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>q});var n=r(67294),i=r(86010),a=r(8131),s=r.n(a),c=r(70290),u=r.n(c),o=r(10412),h=r(35742),f=r(39960),l=r(94104),m=r(88824),d=r(66177),p=r(902),v=r(10833),g=r(82128),y=r(95999),R=r(52263),F=r(6278),b=r(239),P=r(89007);const j="searchQueryInput_u2C7",_="searchVersionInput_m0Ui",E="searchResultsColumn_JPFH",x="algoliaLogo_rT1R",w="algoliaLogoPathFill_WdUC",O="searchResultItem_Tv2o",N="searchResultItemHeading_KbCB",A="searchResultItemPath_lhe1",H="searchResultItemSummary_AEaO",S="searchQueryColumn_RTkw",T="searchVersionColumn_ypXd",Q="searchLogoColumn_rJIA",C="loadingSpinner_XVxU",k="loader_vvXV";function D(e){let{docsSearchVersionsHelpers:t}=e;const r=Object.entries(t.allDocsData).filter((e=>{let[,t]=e;return t.versions.length>1}));return n.createElement("div",{className:(0,i.default)("col","col--3","padding-left--none",T)},r.map((e=>{let[i,a]=e;const s=r.length>1?i+": ":"";return n.createElement("select",{key:i,onChange:e=>t.setSearchVersion(i,e.target.value),defaultValue:t.searchVersions[i],className:_},a.versions.map(((e,t)=>n.createElement("option",{key:t,label:""+s+e.label,value:e.name}))))})))}function I(){const{i18n:{currentLocale:e}}=(0,R.default)(),{algolia:{appId:t,apiKey:r,indexName:a}}=(0,F.L)(),c=(0,b.l)(),v=function(){const{selectMessage:e}=(0,m.c)();return t=>e(t,(0,y.translate)({id:"theme.SearchPage.documentsFound.plurals",description:'Pluralized label for "{count} documents found". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One document found|{count} documents found"},{count:t}))}(),_=function(){const e=(0,l._r)(),[t,r]=(0,n.useState)((()=>Object.entries(e).reduce(((e,t)=>{let[r,n]=t;return{...e,[r]:n.versions[0].name}}),{}))),i=Object.values(e).some((e=>e.versions.length>1));return{allDocsData:e,versioningEnabled:i,searchVersions:t,setSearchVersion:(e,t)=>r((r=>({...r,[e]:t})))}}(),[T,I]=(0,d.K)(),q={items:[],query:null,totalResults:null,totalPages:null,lastPage:null,hasMore:null,loading:null},[V,L]=(0,n.useReducer)(((e,t)=>{switch(t.type){case"reset":return q;case"loading":return{...e,loading:!0};case"update":return T!==t.value.query?e:{...t.value,items:0===t.value.lastPage?t.value.items:e.items.concat(t.value.items)};case"advance":{const t=e.totalPages>e.lastPage+1;return{...e,lastPage:t?e.lastPage+1:e.lastPage,hasMore:t}}default:return e}}),q),B=u()(t,r),z=s()(B,a,{hitsPerPage:15,advancedSyntax:!0,disjunctiveFacets:["language","docusaurus_tag"]});z.on("result",(e=>{let{results:{query:t,hits:r,page:n,nbHits:i,nbPages:a}}=e;if(""===t||!Array.isArray(r))return void L({type:"reset"});const s=e=>e.replace(/algolia-docsearch-suggestion--highlight/g,"search-result-match"),u=r.map((e=>{let{url:t,_highlightResult:{hierarchy:r},_snippetResult:n={}}=e;const i=Object.keys(r).map((e=>s(r[e].value)));return{title:i.pop(),url:c(t),summary:n.content?s(n.content.value)+"...":"",breadcrumbs:i}}));L({type:"update",value:{items:u,query:t,totalResults:i,totalPages:a,lastPage:n,hasMore:a>n+1,loading:!1}})}));const[M,J]=(0,n.useState)(null),W=(0,n.useRef)(0),U=(0,n.useRef)(o.default.canUseIntersectionObserver&&new IntersectionObserver((e=>{const{isIntersecting:t,boundingClientRect:{y:r}}=e[0];t&&W.current>r&&L({type:"advance"}),W.current=r}),{threshold:1})),K=()=>T?(0,y.translate)({id:"theme.SearchPage.existingResultsTitle",message:'Search results for "{query}"',description:"The search page title for non-empty query"},{query:T}):(0,y.translate)({id:"theme.SearchPage.emptyResultsTitle",message:"Search the documentation",description:"The search page title for empty query"}),X=(0,p.zX)((function(t){void 0===t&&(t=0),z.addDisjunctiveFacetRefinement("docusaurus_tag","default"),z.addDisjunctiveFacetRefinement("language",e),Object.entries(_.searchVersions).forEach((e=>{let[t,r]=e;z.addDisjunctiveFacetRefinement("docusaurus_tag","docs-"+t+"-"+r)})),z.setQuery(T).setPage(t).search()}));return(0,n.useEffect)((()=>{if(!M)return;const e=U.current;return e?(e.observe(M),()=>e.unobserve(M)):()=>!0}),[M]),(0,n.useEffect)((()=>{L({type:"reset"}),T&&(L({type:"loading"}),setTimeout((()=>{X()}),300))}),[T,_.searchVersions,X]),(0,n.useEffect)((()=>{V.lastPage&&0!==V.lastPage&&X(V.lastPage)}),[X,V.lastPage]),n.createElement(P.Z,null,n.createElement(h.Z,null,n.createElement("title",null,(0,g.p)(K())),n.createElement("meta",{property:"robots",content:"noindex, follow"})),n.createElement("div",{className:"container margin-vert--lg"},n.createElement("h1",null,K()),n.createElement("form",{className:"row",onSubmit:e=>e.preventDefault()},n.createElement("div",{className:(0,i.default)("col",S,{"col--9":_.versioningEnabled,"col--12":!_.versioningEnabled})},n.createElement("input",{type:"search",name:"q",className:j,placeholder:(0,y.translate)({id:"theme.SearchPage.inputPlaceholder",message:"Type your search here",description:"The placeholder for search page input"}),"aria-label":(0,y.translate)({id:"theme.SearchPage.inputLabel",message:"Search",description:"The ARIA label for search page input"}),onChange:e=>I(e.target.value),value:T,autoComplete:"off",autoFocus:!0})),_.versioningEnabled&&n.createElement(D,{docsSearchVersionsHelpers:_})),n.createElement("div",{className:"row"},n.createElement("div",{className:(0,i.default)("col","col--8",E)},!!V.totalResults&&v(V.totalResults)),n.createElement("div",{className:(0,i.default)("col","col--4","text--right",Q)},n.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.algolia.com/","aria-label":(0,y.translate)({id:"theme.SearchPage.algoliaLabel",message:"Search by Algolia",description:"The ARIA label for Algolia mention"})},n.createElement("svg",{viewBox:"0 0 168 24",className:x},n.createElement("g",{fill:"none"},n.createElement("path",{className:w,d:"M120.925 18.804c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199 5.7 5.7 0 0 0-.897.069 2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874a32.5 32.5 0 0 1-1.868.314c-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525a3.24 3.24 0 0 1 1.047-1.106c.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483a6.8 6.8 0 0 1 .233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.75 7.75 0 0 0-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423a4.88 4.88 0 0 1 1.753 1.216 5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17zM6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503a61.27 61.27 0 0 1-.582-.271 13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z"}),n.createElement("path",{fill:"#5468FF",d:"M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938z"}),n.createElement("path",{fill:"white",d:"M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729 6.37 6.37 0 0 0 6.372-6.368 6.358 6.358 0 0 0-6.371-6.36"})))))),V.items.length>0?n.createElement("main",null,V.items.map(((e,t)=>{let{title:r,url:a,summary:s,breadcrumbs:c}=e;return n.createElement("article",{key:t,className:O},n.createElement("h2",{className:N},n.createElement(f.default,{to:a,dangerouslySetInnerHTML:{__html:r}})),c.length>0&&n.createElement("nav",{"aria-label":"breadcrumbs"},n.createElement("ul",{className:(0,i.default)("breadcrumbs",A)},c.map(((e,t)=>n.createElement("li",{key:t,className:"breadcrumbs__item",dangerouslySetInnerHTML:{__html:e}}))))),s&&n.createElement("p",{className:H,dangerouslySetInnerHTML:{__html:s}}))}))):[T&&!V.loading&&n.createElement("p",{key:"no-results"},n.createElement(y.default,{id:"theme.SearchPage.noResultsText",description:"The paragraph for empty search result"},"No results were found")),!!V.loading&&n.createElement("div",{key:"spinner",className:C})],V.hasMore&&n.createElement("div",{className:k,ref:J},n.createElement(y.default,{id:"theme.SearchPage.fetchingNewResults",description:"The paragraph for fetching new search results"},"Fetching new results..."))))}function q(){return n.createElement(v.FG,{className:"search-page-wrapper"},n.createElement(I,null))}}}]); \ No newline at end of file diff --git a/assets/js/9172.7f698d9b.js.LICENSE.txt b/assets/js/9172.7f698d9b.js.LICENSE.txt new file mode 100644 index 00000000000..1d9697b998c --- /dev/null +++ b/assets/js/9172.7f698d9b.js.LICENSE.txt @@ -0,0 +1 @@ +/*! algoliasearch-lite.umd.js | 4.14.2 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */ diff --git a/assets/js/9206.16398572.js b/assets/js/9206.16398572.js new file mode 100644 index 00000000000..e2d6c40ab73 --- /dev/null +++ b/assets/js/9206.16398572.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9206],{89206:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var a=t(87462),o=(t(67294),t(3905));t(45475);const r={title:"Ref Functions",slug:"/react/refs"},s=void 0,i={unversionedId:"react/refs",id:"react/refs",title:"Ref Functions",description:"React allows you to grab the instance of an element or component with refs.",source:"@site/docs/react/refs.md",sourceDirName:"react",slug:"/react/refs",permalink:"/en/docs/react/refs",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/react/refs.md",tags:[],version:"current",frontMatter:{title:"Ref Functions",slug:"/react/refs"},sidebar:"docsSidebar",previous:{title:"Event Handling",permalink:"/en/docs/react/events"},next:{title:"Higher-order Components",permalink:"/en/docs/react/hoc"}},l={},c=[{value:"Refs in Functional Components",id:"toc-refs-in-functional-components",level:2},{value:"Refs in Class Components",id:"toc-refs-in-class-components",level:2}],m={toc:c};function u(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"React allows you to grab the instance of an element or component with ",(0,o.mdx)("a",{parentName:"p",href:"https://react.dev/learn/manipulating-the-dom-with-refs"},"refs"),"."),(0,o.mdx)("h2",{id:"toc-refs-in-functional-components"},"Refs in Functional Components"),(0,o.mdx)("p",null,"Inside a functional component, refs are accessed with the ",(0,o.mdx)("inlineCode",{parentName:"p"},"useRef")," hook:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"import {useRef} from 'react';\nimport * as React from 'react';\n\nfunction MyComponent() {\n const buttonRef = useRef<null | HTMLButtonElement>(null);\n (buttonRef: {current: null | HTMLButtonElement}); // useRef wraps the ref value in an object\n return <button ref={buttonRef}>Toggle</button>;\n}\n")),(0,o.mdx)("p",null,"Note that ",(0,o.mdx)("inlineCode",{parentName:"p"},"useRef")," wraps the ref value in an object with a ",(0,o.mdx)("inlineCode",{parentName:"p"},"current")," property. This must be\nreflected in the type of anything accepting the ref value."),(0,o.mdx)("h2",{id:"toc-refs-in-class-components"},"Refs in Class Components"),(0,o.mdx)("p",null,"Refs in class components are similar to function components. To create one, add a\nproperty to your class and assign the result of ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.createRef")," to it."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"import * as React from 'react';\n\nclass MyComponent extends React.Component<{}> {\n // The `null` here is important because you may not always have the instance.\n buttonRef: {current: null | HTMLButtonElement};\n\n constructor() {\n super();\n this.buttonRef = React.createRef<HTMLButtonElement>();\n }\n\n render(): React.Node {\n return <button ref={this.buttonRef}>Toggle</button>;\n }\n}\n")),(0,o.mdx)("p",null,"One notable difference between ",(0,o.mdx)("inlineCode",{parentName:"p"},"useRef")," and ",(0,o.mdx)("inlineCode",{parentName:"p"},"createRef")," is that ",(0,o.mdx)("inlineCode",{parentName:"p"},"createRef")," does not accept\na default value. It will initialize the ref with the value ",(0,o.mdx)("inlineCode",{parentName:"p"},"null"),". This is because\nDOM elements will not exist until the first render of ",(0,o.mdx)("inlineCode",{parentName:"p"},"MyComponent")," and so a ",(0,o.mdx)("inlineCode",{parentName:"p"},"null")," value\nmust be used."),(0,o.mdx)("p",null,"Again, note that the ref value is wrapped in an object with a ",(0,o.mdx)("inlineCode",{parentName:"p"},"current")," property."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9225.872a1216.js b/assets/js/9225.872a1216.js new file mode 100644 index 00000000000..363dd95b471 --- /dev/null +++ b/assets/js/9225.872a1216.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9225],{79225:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>a,metadata:()=>r,toc:()=>p});var i=t(87462),o=(t(67294),t(3905));t(45475);const a={title:"Intersections",slug:"/types/intersections"},s=void 0,r={unversionedId:"types/intersections",id:"types/intersections",title:"Intersections",description:"Sometimes it is useful to create a type which is all of a set of other",source:"@site/docs/types/intersections.md",sourceDirName:"types",slug:"/types/intersections",permalink:"/en/docs/types/intersections",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/intersections.md",tags:[],version:"current",frontMatter:{title:"Intersections",slug:"/types/intersections"},sidebar:"docsSidebar",previous:{title:"Unions",permalink:"/en/docs/types/unions"},next:{title:"Indexed Access Types",permalink:"/en/docs/types/indexed-access"}},l={},p=[{value:"Intersection type syntax",id:"toc-intersection-type-syntax",level:2},{value:"Intersection types require all in, but one out",id:"intersection-types-require-all-in-but-one-out",level:2},{value:"Intersection of function types",id:"toc-intersection-of-function-types",level:2},{value:"Calling an overloaded function",id:"calling-an-overloaded-function",level:3},{value:"Declaring overloaded functions",id:"declaring-overloaded-functions",level:3},{value:"Intersections of object types",id:"toc-intersections-of-object-types",level:2},{value:"Impossible intersection types",id:"toc-impossible-intersection-types",level:2}],c={toc:p};function m(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,i.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Sometimes it is useful to create a type which is ",(0,o.mdx)("strong",{parentName:"p"},(0,o.mdx)("em",{parentName:"strong"},"all of"))," a set of other\ntypes. For example, you might want to write a function which accepts a value that\nimplements two different ",(0,o.mdx)("a",{parentName:"p",href:"../interfaces"},"interfaces"),":"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":20,"startColumn":6,"endLine":20,"endColumn":16,"description":"Cannot call `func` with object literal bound to `value` because property `serialize` is missing in object literal [1] but exists in `Serializable` [2]. [prop-missing]"}]','[{"startLine":20,"startColumn":6,"endLine":20,"endColumn":16,"description":"Cannot':!0,call:!0,"`func`":!0,with:!0,object:!0,literal:!0,bound:!0,to:!0,"`value`":!0,because:!0,property:!0,"`serialize`":!0,is:!0,missing:!0,in:!0,"[1]":!0,but:!0,exists:!0,"`Serializable`":!0,"[2].":!0,'[prop-missing]"}]':!0},"interface Serializable {\n serialize(): string;\n}\n\ninterface HasLength {\n length: number;\n}\n\nfunction func(value: Serializable & HasLength) {\n // ...\n}\n\nfunc({\n length: 3,\n serialize() {\n return '3';\n },\n}); // Works\n\nfunc({length: 3}); // Error! Doesn't implement both interfaces\n")),(0,o.mdx)("h2",{id:"toc-intersection-type-syntax"},"Intersection type syntax"),(0,o.mdx)("p",null,"Intersection types are any number of types which are joined by an ampersand ",(0,o.mdx)("inlineCode",{parentName:"p"},"&"),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"Type1 & Type2 & ... & TypeN\n")),(0,o.mdx)("p",null,"You may also add a leading ampersand which is useful when breaking intersection\ntypes onto multiple lines."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"type Foo =\n & Type1\n & Type2\n & ...\n & TypeN\n")),(0,o.mdx)("p",null,"Each of the members of a intersection type can be any type, even another\nintersection type."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"type Foo = Type1 & Type2;\ntype Bar = Type3 & Type4;\n\ntype Baz = Foo & Bar;\n")),(0,o.mdx)("h2",{id:"intersection-types-require-all-in-but-one-out"},"Intersection types require all in, but one out"),(0,o.mdx)("p",null,"Intersection types are the opposite of union types. When calling a function\nthat accepts an intersection type, we must pass in ",(0,o.mdx)("strong",{parentName:"p"},(0,o.mdx)("em",{parentName:"strong"},"all of those types")),". But\ninside of our function we only have to treat it as ",(0,o.mdx)("strong",{parentName:"p"},(0,o.mdx)("em",{parentName:"strong"},"any one of those\ntypes")),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type A = {a: number, ...};\ntype B = {b: boolean, ...};\ntype C = {c: string, ...};\n\nfunction func(value: A & B & C) {\n const a: A = value;\n const b: B = value;\n const c: C = value;\n}\n")),(0,o.mdx)("p",null,"Even as we treat our value as just one of the types, we do not get an error\nbecause it satisfies all of them."),(0,o.mdx)("h2",{id:"toc-intersection-of-function-types"},"Intersection of function types"),(0,o.mdx)("p",null,"A common use of intersection types is to express functions that return\ndifferent results based on the input we pass in. Suppose for example\nthat we want to write the type of a function that:"),(0,o.mdx)("ul",null,(0,o.mdx)("li",{parentName:"ul"},"returns a string, when we pass in the value ",(0,o.mdx)("inlineCode",{parentName:"li"},'"string"'),","),(0,o.mdx)("li",{parentName:"ul"},"returns a number, when we pass in the value ",(0,o.mdx)("inlineCode",{parentName:"li"},'"number"'),", and"),(0,o.mdx)("li",{parentName:"ul"},"returns any possible type (",(0,o.mdx)("inlineCode",{parentName:"li"},"mixed"),"), when we pass in any other string.")),(0,o.mdx)("p",null,"The type of this function will be"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'type Fn =\n & ((x: "string") => string)\n & ((x: "number") => number)\n & ((x: string) => mixed);\n')),(0,o.mdx)("p",null,"Each line in the above definition is called an ",(0,o.mdx)("em",{parentName:"p"},"overload"),", and we say that functions\nof type ",(0,o.mdx)("inlineCode",{parentName:"p"},"Fn")," are ",(0,o.mdx)("em",{parentName:"p"},"overloaded"),"."),(0,o.mdx)("p",null,'Note the use of parentheses around the arrow types. These are necessary to override\nthe precedence of the "arrow" constructor over the intersection.'),(0,o.mdx)("h3",{id:"calling-an-overloaded-function"},"Calling an overloaded function"),(0,o.mdx)("p",null,"Using the above definition we can declare a function ",(0,o.mdx)("inlineCode",{parentName:"p"},"fn")," that has the following behavior:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":8,"startColumn":20,"endLine":8,"endColumn":32,"description":"Cannot assign `fn(...)` to `b` because mixed [1] is incompatible with boolean [2]. [incompatible-type]"}]','[{"startLine":8,"startColumn":20,"endLine":8,"endColumn":32,"description":"Cannot':!0,assign:!0,"`fn(...)`":!0,to:!0,"`b`":!0,because:!0,mixed:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,boolean:!0,"[2].":!0,'[incompatible-type]"}]':!0},'declare const fn:\n & ((x: "string") => string)\n & ((x: "number") => number)\n & ((x: string) => mixed);\n\nconst s: string = fn("string"); // Works\nconst n: number = fn("number"); // Works\nconst b: boolean = fn("boolean"); // Error!\n')),(0,o.mdx)("p",null,"Flow achieves this behavior by matching the type of the argument to the ",(0,o.mdx)("em",{parentName:"p"},"first"),"\noverload with a compatible parameter type. Notice for example that the argument\n",(0,o.mdx)("inlineCode",{parentName:"p"},'"string"')," matches both the first and the last overload. Flow will\njust pick the first one. If no overload matches, Flow will raise an error at the\ncall site."),(0,o.mdx)("h3",{id:"declaring-overloaded-functions"},"Declaring overloaded functions"),(0,o.mdx)("p",null,"An equivalent way to declare the same function ",(0,o.mdx)("inlineCode",{parentName:"p"},"fn"),' would be by using consecutive\n"declare function" statements'),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'declare function fn(x: "string"): string;\ndeclare function fn(x: "number"): number;\ndeclare function fn(x: string): mixed;\n')),(0,o.mdx)("p",null,"A limitation in Flow is that it can't ",(0,o.mdx)("em",{parentName:"p"},"check")," the body of a function against\nan intersection type. In other words, if we provided the following implementation\nfor ",(0,o.mdx)("inlineCode",{parentName:"p"},"fn")," right after the above declarations"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function fn(x: mixed) {\n if (x === "string") { return ""; }\n else if (x === "number") { return 0; }\n else { return null; }\n}\n')),(0,o.mdx)("p",null,"Flow silently accepts it (and uses ",(0,o.mdx)("inlineCode",{parentName:"p"},"Fn")," as the inferred type), but does not check\nthe implementation against this signature. This makes this kind of declaration\na better suited candidate for ",(0,o.mdx)("a",{parentName:"p",href:"../../libdefs/"},"library definitions"),", where implementations are omitted."),(0,o.mdx)("h2",{id:"toc-intersections-of-object-types"},"Intersections of object types"),(0,o.mdx)("p",null,"When you create an intersection of ",(0,o.mdx)("a",{parentName:"p",href:"../objects/#exact-and-inexact-object-types"},"inexact object types"),",\nyou are saying that your object satisfies each member of the intersection."),(0,o.mdx)("p",null,"For example, when you create an intersection of two inexact objects with different sets\nof properties, it will result in an object with all of the properties."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type One = {foo: number, ...};\ntype Two = {bar: boolean, ...};\n\ntype Both = One & Two;\n\nconst value: Both = {\n foo: 1,\n bar: true\n};\n")),(0,o.mdx)("p",null,"When you have properties that overlap by having the same name, Flow follows the same\nstrategy as with overloaded functions: it will return the type of the first property\nthat matches this name."),(0,o.mdx)("p",null,"For example, if you merge two inexact objects with a property named ",(0,o.mdx)("inlineCode",{parentName:"p"},"prop"),", first with a\ntype of ",(0,o.mdx)("inlineCode",{parentName:"p"},"number")," and second with a type of ",(0,o.mdx)("inlineCode",{parentName:"p"},"boolean"),", accessing ",(0,o.mdx)("inlineCode",{parentName:"p"},"prop")," will return\n",(0,o.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":24,"endLine":7,"endColumn":32,"description":"Cannot assign `both.prop` to `prop2` because number [1] is incompatible with boolean [2]. [incompatible-type]"}]','[{"startLine":7,"startColumn":24,"endLine":7,"endColumn":32,"description":"Cannot':!0,assign:!0,"`both.prop`":!0,to:!0,"`prop2`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,boolean:!0,"[2].":!0,'[incompatible-type]"}]':!0},"type One = {prop: number, ...};\ntype Two = {prop: boolean, ...};\n\ndeclare const both: One & Two;\n\nconst prop1: number = both.prop; // Works\nconst prop2: boolean = both.prop; // Error!\n")),(0,o.mdx)("p",null,"To combine exact object types, you should use ",(0,o.mdx)("a",{parentName:"p",href:"../objects/#object-type-spread"},"object type spread")," instead:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type One = {foo: number};\ntype Two = {bar: boolean};\n\ntype Both = {\n ...One,\n ...Two,\n};\n\nconst value: Both = {\n foo: 1,\n bar: true\n};\n")),(0,o.mdx)("p",null,(0,o.mdx)("strong",{parentName:"p"},"Note:")," When it comes to objects, the order-specific way in which intersection\ntypes are implemented in Flow, may often seem counter-intuitive from a set theoretic\npoint of view. In sets, the operands of intersection can change order arbitrarily\n(commutative property). For this reason, it is a better practice to define this\nkind of operation over object types using object type spread where the ordering\nsemantics are better specified."),(0,o.mdx)("h2",{id:"toc-impossible-intersection-types"},"Impossible intersection types"),(0,o.mdx)("p",null,"Using intersection types, it is possible to create types which are impossible\nto create at runtime. Intersection types will allow you to combine any set of\ntypes, even ones that conflict with one another."),(0,o.mdx)("p",null,"For example, you can create an intersection of a number and a string."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":6,"endLine":5,"endColumn":9,"description":"Cannot call `func` with `3.14` bound to `value` because number [1] is incompatible with string [2]. [incompatible-call]"},{"startLine":6,"startColumn":6,"endLine":6,"endColumn":9,"description":"Cannot call `func` with `\'hi\'` bound to `value` because string [1] is incompatible with number [2]. [incompatible-call]"}]','[{"startLine":5,"startColumn":6,"endLine":5,"endColumn":9,"description":"Cannot':!0,call:!0,"`func`":!0,with:!0,"`3.14`":!0,bound:!0,to:!0,"`value`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2].":!0,'[incompatible-call]"},{"startLine":6,"startColumn":6,"endLine":6,"endColumn":9,"description":"Cannot':!0,"`'hi'`":!0,'[incompatible-call]"}]':!0},"type NumberAndString = number & string;\n\nfunction func(value: NumberAndString) { /* ... */ }\n\nfunc(3.14); // Error!\nfunc('hi'); // Error!\n")),(0,o.mdx)("p",null,"But you can't possibly create a value which is both a ",(0,o.mdx)("em",{parentName:"p"},"number and a string"),",\nbut you can create a type for it. There's no practical use for creating types\nlike this, but it's a side effect of how intersection types work."),(0,o.mdx)("p",null,"An accidental way to create an impossible type is to create an intersection of\n",(0,o.mdx)("a",{parentName:"p",href:"../objects/#exact-and-inexact-object-types"},"exact object types"),". For example:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":6,"endLine":3,"endColumn":11,"description":"Cannot call `func` with object literal bound to `obj` because property `a` is missing in object type [1] but exists in object literal [2]. [prop-missing]"},{"startLine":3,"startColumn":6,"endLine":3,"endColumn":11,"description":"Cannot call `func` with object literal bound to `obj` because property `b` is missing in object literal [1] but exists in object type [2]. [prop-missing]"},{"startLine":4,"startColumn":6,"endLine":4,"endColumn":14,"description":"Cannot call `func` with object literal bound to `obj` because property `a` is missing in object literal [1] but exists in object type [2]. [prop-missing]"},{"startLine":4,"startColumn":6,"endLine":4,"endColumn":14,"description":"Cannot call `func` with object literal bound to `obj` because property `b` is missing in object type [1] but exists in object literal [2]. [prop-missing]"},{"startLine":5,"startColumn":6,"endLine":5,"endColumn":20,"description":"Cannot call `func` with object literal bound to `obj` because property `a` is missing in object type [1] but exists in object literal [2]. [prop-missing]"},{"startLine":5,"startColumn":6,"endLine":5,"endColumn":20,"description":"Cannot call `func` with object literal bound to `obj` because property `b` is missing in object type [1] but exists in object literal [2]. [prop-missing]"}]','[{"startLine":3,"startColumn":6,"endLine":3,"endColumn":11,"description":"Cannot':!0,call:!0,"`func`":!0,with:!0,object:!0,literal:!0,bound:!0,to:!0,"`obj`":!0,because:!0,property:!0,"`a`":!0,is:!0,missing:!0,in:!0,type:!0,"[1]":!0,but:!0,exists:!0,"[2].":!0,'[prop-missing]"},{"startLine":3,"startColumn":6,"endLine":3,"endColumn":11,"description":"Cannot':!0,"`b`":!0,'[prop-missing]"},{"startLine":4,"startColumn":6,"endLine":4,"endColumn":14,"description":"Cannot':!0,'[prop-missing]"},{"startLine":5,"startColumn":6,"endLine":5,"endColumn":20,"description":"Cannot':!0,'[prop-missing]"}]':!0},"function func(obj: {a: number} & {b: string}) { /* ... */ }\n\nfunc({a: 1}); // Error!\nfunc({b: 'hi'}); // Error!\nfunc({a: 1, b: 'hi'}); // Error!\n")),(0,o.mdx)("p",null,"It's not possible for an object to have exactly the property ",(0,o.mdx)("inlineCode",{parentName:"p"},"a")," and no other\nproperties, and simultaneously exactly the property ",(0,o.mdx)("inlineCode",{parentName:"p"},"b")," and no other properties."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9277.9908b298.js b/assets/js/9277.9908b298.js new file mode 100644 index 00000000000..df356f3ed7f --- /dev/null +++ b/assets/js/9277.9908b298.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9277],{69277:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>p,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var o=t(87462),r=(t(67294),t(3905));t(45475);const a={title:"Higher-order Components",slug:"/react/hoc"},p=void 0,i={unversionedId:"react/hoc",id:"react/hoc",title:"Higher-order Components",description:"A popular pattern in React is the higher-order component pattern, so it's",source:"@site/docs/react/hoc.md",sourceDirName:"react",slug:"/react/hoc",permalink:"/en/docs/react/hoc",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/react/hoc.md",tags:[],version:"current",frontMatter:{title:"Higher-order Components",slug:"/react/hoc"},sidebar:"docsSidebar",previous:{title:"Ref Functions",permalink:"/en/docs/react/refs"},next:{title:"Type Reference",permalink:"/en/docs/react/types"}},s={},c=[{value:"The Trivial HOC",id:"toc-the-trivial-hoc",level:3},{value:"Injecting Props",id:"toc-injecting-props",level:3},{value:"Preserving the Instance Type of a Component",id:"toc-preserving-the-instance-type-of-a-component",level:3},{value:"Exporting Wrapped Components",id:"toc-exporting-wrapped-components",level:3}],m={toc:c};function d(e){let{components:n,...t}=e;return(0,r.mdx)("wrapper",(0,o.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"A popular pattern in React is the ",(0,r.mdx)("a",{parentName:"p",href:"https://facebook.github.io/react/docs/higher-order-components.html"},"higher-order component pattern"),", so it's\nimportant that we can provide effective types for higher-order components in\nFlow. If you don't already know what a higher-order component is then make sure\nto read the ",(0,r.mdx)("a",{parentName:"p",href:"https://facebook.github.io/react/docs/higher-order-components.html"},"React documentation on higher-order components")," before\ncontinuing."),(0,r.mdx)("p",null,"You can make use of the ",(0,r.mdx)("a",{parentName:"p",href:"../types/#toc-react-abstractcomponent"},(0,r.mdx)("inlineCode",{parentName:"a"},"React.AbstractComponent"))," type to annotate your higher order components."),(0,r.mdx)("h3",{id:"toc-the-trivial-hoc"},"The Trivial HOC"),(0,r.mdx)("p",null,"Let's start with the simplest HOC:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"import * as React from 'react';\n\nfunction trivialHOC<Config: {...}>(\n Component: React.AbstractComponent<Config>\n): React.AbstractComponent<Config> {\n return Component;\n}\n")),(0,r.mdx)("p",null,"This is a basic template for what your HOCs might look like. At runtime, this HOC doesn't\ndo anything at all. Let's take a look at some more complex examples."),(0,r.mdx)("h3",{id:"toc-injecting-props"},"Injecting Props"),(0,r.mdx)("p",null,"A common use case for higher-order components is to inject a prop.\nThe HOC automatically sets a prop and returns a component which no longer requires\nthat prop. For example, consider a navigation prop. How would one type this?"),(0,r.mdx)("p",null,"To remove a prop from the config, we can take a component that includes the\nprop and return a component that does not. It's best to construct these\ntypes using object type spread."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":27,"startColumn":2,"endLine":27,"endColumn":20,"description":"Cannot create `MyEnhancedComponent` element because property `b` is missing in props [1] but exists in object type [2]. [prop-missing]"}]','[{"startLine":27,"startColumn":2,"endLine":27,"endColumn":20,"description":"Cannot':!0,create:!0,"`MyEnhancedComponent`":!0,element:!0,because:!0,property:!0,"`b`":!0,is:!0,missing:!0,in:!0,props:!0,"[1]":!0,but:!0,exists:!0,object:!0,type:!0,"[2].":!0,'[prop-missing]"}]':!0},"import * as React from 'react';\n\ntype InjectedProps = {foo: number}\n\nfunction injectProp<Config>(\n Component: React.AbstractComponent<{...Config, ...InjectedProps}>\n): React.AbstractComponent<Config> {\n return function WrapperComponent(\n props: Config,\n ) {\n return <Component {...props} foo={42} />;\n };\n}\n\nfunction MyComponent(props: {\n a: number,\n b: number,\n ...InjectedProps,\n}): React.Node {}\n\nconst MyEnhancedComponent = injectProp(MyComponent);\n\n// We don't need to pass in `foo` even though `MyComponent` requires it:\n<MyEnhancedComponent a={1} b={2} />; // OK\n\n// We still require `a` and `b`:\n<MyEnhancedComponent a={1} />; // ERROR\n")),(0,r.mdx)("h3",{id:"toc-preserving-the-instance-type-of-a-component"},"Preserving the Instance Type of a Component"),(0,r.mdx)("p",null,"Recall that the instance type of a function component is ",(0,r.mdx)("inlineCode",{parentName:"p"},"void"),". Our example\nabove wraps a component in a function, so the returned component has the instance\ntype ",(0,r.mdx)("inlineCode",{parentName:"p"},"void"),"."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":29,"startColumn":27,"endLine":29,"endColumn":29,"description":"Cannot create `MyEnhancedComponent` element because in property `ref`: [incompatible-type] Either mixed [1] is incompatible with `MyComponent` [2] in property `current`. Or a call signature declaring the expected parameter / return type is missing in object type [3] but exists in function type [4]."}]','[{"startLine":29,"startColumn":27,"endLine":29,"endColumn":29,"description":"Cannot':!0,create:!0,"`MyEnhancedComponent`":!0,element:!0,because:!0,in:!0,property:!0,"`ref`:":!0,"[incompatible-type]":!0,Either:!0,mixed:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"`MyComponent`":!0,"[2]":!0,"`current`.":!0,Or:!0,a:!0,call:!0,signature:!0,declaring:!0,the:!0,expected:!0,parameter:!0,"/":!0,return:!0,type:!0,missing:!0,object:!0,"[3]":!0,but:!0,exists:!0,function:!0,'[4]."}]':!0},"import * as React from 'react';\n\ntype InjectedProps = {foo: number}\n\nfunction injectProp<Config>(\n Component: React.AbstractComponent<{...Config, ...InjectedProps}>\n): React.AbstractComponent<Config> {\n return function WrapperComponent(\n props: Config,\n ) {\n return <Component {...props} foo={42} />;\n };\n}\n\n// A class component in this example\nclass MyComponent extends React.Component<{\n a: number,\n b: number,\n ...InjectedProps,\n}> {}\n\nconst MyEnhancedComponent = injectProp(MyComponent);\n\n// If we create a ref object for the component, it will never be assigned\n// an instance of MyComponent!\nconst ref = React.createRef<MyComponent>();\n\n// Error, mixed is incompatible with MyComponent.\n<MyEnhancedComponent ref={ref} a={1} b={2} />;\n")),(0,r.mdx)("p",null,"We get this error message because ",(0,r.mdx)("inlineCode",{parentName:"p"},"React.AbstractComponent<Config>")," doesn't set the ",(0,r.mdx)("inlineCode",{parentName:"p"},"Instance")," type\nparameter, so it is automatically set to ",(0,r.mdx)("inlineCode",{parentName:"p"},"mixed"),". If we wanted to preserve the instance type\nof the component, we can use ",(0,r.mdx)("a",{parentName:"p",href:"https://reactjs.org/docs/forwarding-refs.html"},(0,r.mdx)("inlineCode",{parentName:"a"},"React.forwardRef")),":"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"import * as React from 'react';\n\ntype InjectedProps = {foo: number}\n\nfunction injectAndPreserveInstance<Config, Instance>(\n Component: React.AbstractComponent<{...Config, ...InjectedProps}, Instance>\n): React.AbstractComponent<Config, Instance> {\n return React.forwardRef<Config, Instance>((props, ref) =>\n <Component ref={ref} foo={3} {...props} />\n );\n}\n\nclass MyComponent extends React.Component<{\n a: number,\n b: number,\n ...InjectedProps,\n}> {}\n\nconst MyEnhancedComponent = injectAndPreserveInstance(MyComponent);\n\nconst ref = React.createRef<MyComponent>();\n\n// All good! The ref is forwarded.\n<MyEnhancedComponent ref={ref} a={1} b={2} />;\n")),(0,r.mdx)("h3",{id:"toc-exporting-wrapped-components"},"Exporting Wrapped Components"),(0,r.mdx)("p",null,"If you try to export a wrapped component, chances are that you'll run into a missing annotation error:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":13,"startColumn":36,"endLine":13,"endColumn":58,"description":"Cannot build a typed interface for this module. You should annotate the exports of this module with types. Cannot determine the type of this call expression. Please provide an annotation, e.g., by adding a type cast around this expression. [signature-verification-failure]"}]','[{"startLine":13,"startColumn":36,"endLine":13,"endColumn":58,"description":"Cannot':!0,build:!0,a:!0,typed:!0,interface:!0,for:!0,this:!0,"module.":!0,You:!0,should:!0,annotate:!0,the:!0,exports:!0,of:!0,module:!0,with:!0,"types.":!0,Cannot:!0,determine:!0,type:!0,call:!0,"expression.":!0,Please:!0,provide:!0,an:!0,"annotation,":!0,"e.g.,":!0,by:!0,adding:!0,cast:!0,around:!0,'[signature-verification-failure]"}]':!0},"import * as React from 'react';\n\nfunction trivialHOC<Config: {...}>(\n Component: React.AbstractComponent<Config>,\n): React.AbstractComponent<Config> {\n return Component;\n}\n\ntype Props = $ReadOnly<{bar: number, foo?: number}>;\n\nfunction MyComponent({bar, foo = 3}: Props): React.Node {}\n\nexport const MyEnhancedComponent = trivialHOC(MyComponent); // ERROR\n")),(0,r.mdx)("p",null,"You can add an annotation to your exported component using ",(0,r.mdx)("inlineCode",{parentName:"p"},"React.AbstractComponent"),":"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"import * as React from 'react';\n\nfunction trivialHOC<Config: {...}>(\n Component: React.AbstractComponent<Config>,\n): React.AbstractComponent<Config> {\n return Component;\n}\n\ntype Props = $ReadOnly<{bar: number, foo?: number}>;\n\nfunction MyComponent({bar, foo = 3}: Props): React.Node {}\n\nexport const MyEnhancedComponent: React.AbstractComponent<Props> = trivialHOC(MyComponent); // OK\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9307.228f79a3.js b/assets/js/9307.228f79a3.js new file mode 100644 index 00000000000..2537b5396d8 --- /dev/null +++ b/assets/js/9307.228f79a3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9307],{19307:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>r,contentTitle:()=>c,default:()=>d,frontMatter:()=>l,metadata:()=>u,toc:()=>i});var o=a(87462),n=(a(67294),a(3905));const l={title:"Exact object types by default, by default","short-title":"Exact object types by default, by default",author:"George Zahariev","medium-link":"https://medium.com/flow-type/exact-object-types-by-default-by-default-cc559af6f69"},c=void 0,u={permalink:"/blog/2023/02/16/Exact-object-types-by-default-by-default",source:"@site/blog/2023-02-16-Exact-object-types-by-default-by-default.md",title:"Exact object types by default, by default",description:"We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan.",date:"2023-02-16T00:00:00.000Z",formattedDate:"February 16, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Exact object types by default, by default","short-title":"Exact object types by default, by default",author:"George Zahariev","medium-link":"https://medium.com/flow-type/exact-object-types-by-default-by-default-cc559af6f69"},prevItem:{title:"Announcing Partial & Required Flow utility types + catch annotations",permalink:"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations"},nextItem:{title:"Local Type Inference for Flow",permalink:"/blog/2023/01/17/Local-Type-Inference"}},r={authorsImageUrls:[void 0]},i=[],s={toc:i};function d(e){let{components:t,...a}=e;return(0,n.mdx)("wrapper",(0,o.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/931.d69b8a0f.js b/assets/js/931.d69b8a0f.js new file mode 100644 index 00000000000..e694fdfcc51 --- /dev/null +++ b/assets/js/931.d69b8a0f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[931],{40931:(e,s,c)=>{c.r(s),c.d(s,{default:()=>f});const f=c.p+"cd3c4b260f85aac6f600f3c017046ef9.wasm"}}]); \ No newline at end of file diff --git a/assets/js/9337.6c20da2f.js b/assets/js/9337.6c20da2f.js new file mode 100644 index 00000000000..8308c014224 --- /dev/null +++ b/assets/js/9337.6c20da2f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9337],{89337:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>u,toc:()=>r});var a=t(87462),m=(t(67294),t(3905));t(45475);const s={title:"Defining enums",slug:"/enums/defining-enums"},i=void 0,u={unversionedId:"enums/defining-enums",id:"enums/defining-enums",title:"Defining enums",description:"Learn how to define a Flow Enum. Looking for a quick overview? Check out the Quickstart Guide.",source:"@site/docs/enums/defining-enums.md",sourceDirName:"enums",slug:"/enums/defining-enums",permalink:"/en/docs/enums/defining-enums",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/enums/defining-enums.md",tags:[],version:"current",frontMatter:{title:"Defining enums",slug:"/enums/defining-enums"},sidebar:"docsSidebar",previous:{title:"Enabling enums in your project",permalink:"/en/docs/enums/enabling-enums"},next:{title:"Using enums",permalink:"/en/docs/enums/using-enums"}},o={},r=[{value:"Consistent member type",id:"toc-consistent-member-type",level:4},{value:"Member name starting character",id:"toc-member-name-starting-character",level:4},{value:"Unique member names",id:"toc-unique-member-names",level:4},{value:"Literal member values",id:"toc-literal-member-values",level:4},{value:"Unique member values",id:"toc-unique-member-values",level:4},{value:"Fixed at declaration",id:"toc-fixed-at-declaration",level:4},{value:"String enums",id:"toc-string-enums",level:2},{value:"Number enums",id:"toc-number-enums",level:2},{value:"Boolean enums",id:"toc-boolean-enums",level:2},{value:"Symbol enums",id:"toc-symbol-enums",level:2},{value:"Flow Enums with Unknown Members",id:"toc-flow-enums-with-unknown-members",level:2},{value:"Enums at runtime",id:"toc-enums-at-runtime",level:2},{value:"Style guide",id:"toc-style-guide",level:2},{value:"Naming enums",id:"toc-naming-enums",level:4},{value:"Naming enum members",id:"toc-naming-enum-members",level:4},{value:"Don't create a separate type",id:"toc-don-t-create-a-separate-type",level:4},{value:"Use dot access for accessing members",id:"toc-use-dot-access-for-accessing-members",level:4}],l={toc:r};function d(e){let{components:n,...t}=e;return(0,m.mdx)("wrapper",(0,a.Z)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,m.mdx)("p",null,"Learn how to define a Flow Enum. Looking for a quick overview? Check out the ",(0,m.mdx)("a",{parentName:"p",href:"../#toc-quickstart"},"Quickstart Guide"),"."),(0,m.mdx)("p",null,"An enum declaration is a statement. Its name defines both a value (from which to ",(0,m.mdx)("a",{parentName:"p",href:"../using-enums/#toc-accessing-enum-members"},"access its members"),",\nand call its ",(0,m.mdx)("a",{parentName:"p",href:"../using-enums/#toc-methods"},"methods"),"), and a type (which can be ",(0,m.mdx)("a",{parentName:"p",href:"../using-enums/#toc-using-as-a-type-annotation"},"used as an annotation")," for the type of its members)."),(0,m.mdx)("p",null,"Enum members must all be of the same type, and those members can be one of four types:\n",(0,m.mdx)("a",{parentName:"p",href:"#toc-string-enums"},"string"),", ",(0,m.mdx)("a",{parentName:"p",href:"#toc-number-enums"},"number"),", ",(0,m.mdx)("a",{parentName:"p",href:"#toc-boolean-enums"},"boolean"),", and ",(0,m.mdx)("a",{parentName:"p",href:"#toc-symbol-enums"},"symbol"),"."),(0,m.mdx)("p",null,"Every enum has some common properties:"),(0,m.mdx)("h4",{id:"toc-consistent-member-type"},"Consistent member type"),(0,m.mdx)("p",null,"The type of the enum members must be consistent. For example, you can\u2019t mix ",(0,m.mdx)("inlineCode",{parentName:"p"},"string")," and ",(0,m.mdx)("inlineCode",{parentName:"p"},"number")," members in one enum.\nThey must all be strings, numbers, or booleans (you do not provide values for ",(0,m.mdx)("inlineCode",{parentName:"p"},"symbol")," based enums)."),(0,m.mdx)("h4",{id:"toc-member-name-starting-character"},"Member name starting character"),(0,m.mdx)("p",null,"Member names must be valid identifiers (e.g. not start with numbers), and must not start with lowercase ",(0,m.mdx)("inlineCode",{parentName:"p"},"a")," through ",(0,m.mdx)("inlineCode",{parentName:"p"},"z"),".\nNames starting with those letters are reserved for enum ",(0,m.mdx)("a",{parentName:"p",href:"../using-enums/#toc-methods"},"methods")," (e.g. ",(0,m.mdx)("inlineCode",{parentName:"p"},"Status.cast(...)"),")."),(0,m.mdx)("p",null,"This is not allowed:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":3,"endLine":2,"endColumn":8,"description":"Enum member names cannot start with lowercase \'a\' through \'z\'. Instead of using `active`, consider using `Active`, in enum `Status`."}]','[{"startLine":2,"startColumn":3,"endLine":2,"endColumn":8,"description":"Enum':!0,member:!0,names:!0,cannot:!0,start:!0,with:!0,lowercase:!0,"'a'":!0,through:!0,"'z'.":!0,Instead:!0,of:!0,using:!0,"`active`,":!0,consider:!0,"`Active`,":!0,in:!0,enum:!0,'`Status`."}]':!0},"enum Status {\n active, // Error: names can't start with lowercase 'a' through 'z'\n}\n")),(0,m.mdx)("h4",{id:"toc-unique-member-names"},"Unique member names"),(0,m.mdx)("p",null,"Member names must be unique. This is not allowed:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":3,"endLine":3,"endColumn":8,"description":"Enum member names need to be unique, but the name `Active` has already been used before in enum `Status`."}]','[{"startLine":3,"startColumn":3,"endLine":3,"endColumn":8,"description":"Enum':!0,member:!0,names:!0,need:!0,to:!0,be:!0,"unique,":!0,but:!0,the:!0,name:!0,"`Active`":!0,has:!0,already:!0,been:!0,used:!0,before:!0,in:!0,enum:!0,'`Status`."}]':!0},"enum Status {\n Active,\n Active, // Error: the name 'Active` was already used above\n}\n")),(0,m.mdx)("h4",{id:"toc-literal-member-values"},"Literal member values"),(0,m.mdx)("p",null,"If you specify a value for an enum member, it must be a literal (string, number, or boolean), not a computed value. This is not allowed:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":12,"endLine":2,"endColumn":12,"description":"The enum member initializer for `Active` needs to be a literal (either a boolean, number, or string) in enum `Status`."}]','[{"startLine":2,"startColumn":12,"endLine":2,"endColumn":12,"description":"The':!0,enum:!0,member:!0,initializer:!0,for:!0,"`Active`":!0,needs:!0,to:!0,be:!0,a:!0,literal:!0,"(either":!0,"boolean,":!0,"number,":!0,or:!0,"string)":!0,in:!0,'`Status`."}]':!0},"enum Status {\n Active = 1 + 2, // Error: the value must be a literal\n}\n")),(0,m.mdx)("h4",{id:"toc-unique-member-values"},"Unique member values"),(0,m.mdx)("p",null,"Member values must be unique. This is not allowed:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":12,"endLine":3,"endColumn":12,"description":"Invalid enum member initializer. Initializers need to be unique, but this one has already been used for a previous member [1] of enum `Status` [2]. [duplicate-enum-init]"}]','[{"startLine":3,"startColumn":12,"endLine":3,"endColumn":12,"description":"Invalid':!0,enum:!0,member:!0,"initializer.":!0,Initializers:!0,need:!0,to:!0,be:!0,"unique,":!0,but:!0,this:!0,one:!0,has:!0,already:!0,been:!0,used:!0,for:!0,a:!0,previous:!0,"[1]":!0,of:!0,"`Status`":!0,"[2].":!0,'[duplicate-enum-init]"}]':!0},"enum Status {\n Active = 1,\n Paused = 1, // Error: the value has already been used above\n}\n")),(0,m.mdx)("h4",{id:"toc-fixed-at-declaration"},"Fixed at declaration"),(0,m.mdx)("p",null,"An enum is not extendable, so you can\u2019t add new members after the fact while your code is running.\nAt runtime, enum member values can\u2019t change and the members can\u2019t be deleted. In this way they act like a frozen object."),(0,m.mdx)("h2",{id:"toc-string-enums"},"String enums"),(0,m.mdx)("p",null,"String enums are the default. If you don\u2019t specify an ",(0,m.mdx)("inlineCode",{parentName:"p"},"of")," clause (e.g. ",(0,m.mdx)("inlineCode",{parentName:"p"},"enum Status of number {}"),", ",(0,m.mdx)("inlineCode",{parentName:"p"},"enum Status of symbol {}"),", etc.),\nand do not specify any values (e.g. ",(0,m.mdx)("inlineCode",{parentName:"p"},"enum Status {Active = 1}"),") then the definition will default to be a string enum."),(0,m.mdx)("p",null,"Unlike the other types of enums (e.g. number enums), you can either specify values for the enum members, or not specify values and allow them to be defaulted."),(0,m.mdx)("p",null,"If you don\u2019t specify values for your enum members, they default to strings which are the same as the name of your members."),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status {\n Active,\n Paused,\n Off,\n}\n")),(0,m.mdx)("p",null,"Is the same as:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status {\n Active = 'Active',\n Paused = 'Paused',\n Off = 'Off',\n}\n")),(0,m.mdx)("p",null,"You must consistently either specify the value for all members, or none of the members. This is not allowed:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":3,"endLine":4,"endColumn":5,"description":"String enum members need to consistently either all use initializers, or use no initializers, in enum Status."}]','[{"startLine":4,"startColumn":3,"endLine":4,"endColumn":5,"description":"String':!0,enum:!0,members:!0,need:!0,to:!0,consistently:!0,either:!0,all:!0,use:!0,"initializers,":!0,or:!0,no:!0,in:!0,'Status."}]':!0},"enum Status {\n Active = 'active',\n Paused = 'paused',\n Off, // Error: you must specify a value for all members (or none of the members)\n}\n")),(0,m.mdx)("p",null,"Optionally, you can use an ",(0,m.mdx)("inlineCode",{parentName:"p"},"of")," clause:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status of string {\n Active,\n Paused,\n Off,\n}\n")),(0,m.mdx)("p",null,"We infer the type of the enum based on its values if there is no ",(0,m.mdx)("inlineCode",{parentName:"p"},"of")," clause.\nUsing an ",(0,m.mdx)("inlineCode",{parentName:"p"},"of")," clause will ensure that if you use incorrect values, the error message will always interpret it as an enum of that type."),(0,m.mdx)("h2",{id:"toc-number-enums"},"Number enums"),(0,m.mdx)("p",null,"Number enums must have their values specified."),(0,m.mdx)("p",null,"You can specify a number enum like this:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status {\n Active = 1,\n Paused = 2,\n Off = 3,\n}\n")),(0,m.mdx)("p",null,"Optionally, you can use an ",(0,m.mdx)("inlineCode",{parentName:"p"},"of")," clause.\nThis does not affect the type-checking behavior of a valid Flow Enum,\nit just ensures that all enum members are ",(0,m.mdx)("inlineCode",{parentName:"p"},"number"),"s as the definition site."),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status of number {\n Active = 1,\n Paused = 2,\n Off = 3,\n}\n")),(0,m.mdx)("p",null,"We do not allow defaulting of number enums (unlike some other languages), because if a member from the middle of such an enum is added or removed,\nall subsequent member values would be changed. This can be unsafe (e.g. push safety, serialization, logging).\nRequiring the user to be explicit about the renumbering makes them think about the consequences of doing so."),(0,m.mdx)("p",null,"The value provided must be a number literal. (Note: there is no literal for negative numbers in JavaScript, they are the application of a unary ",(0,m.mdx)("inlineCode",{parentName:"p"},"-")," operation on a number literal.)\nWe could expand allowed values in the future to include certain non-literals, if requests to do so arise."),(0,m.mdx)("h2",{id:"toc-boolean-enums"},"Boolean enums"),(0,m.mdx)("p",null,"Boolean enums must have their values specified. Boolean enums can only have two members."),(0,m.mdx)("p",null,"You can specify a boolean enum like this:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status {\n Active = true,\n Off = false,\n}\n")),(0,m.mdx)("p",null,"Optionally, you can use an ",(0,m.mdx)("inlineCode",{parentName:"p"},"of")," clause.\nThis does not affect the type-checking behavior of a valid Flow Enum,\nit just ensures that all enum members are ",(0,m.mdx)("inlineCode",{parentName:"p"},"boolean"),"s as the definition site."),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status of boolean {\n Active = true,\n Off = false,\n}\n")),(0,m.mdx)("h2",{id:"toc-symbol-enums"},"Symbol enums"),(0,m.mdx)("p",null,"Symbol enums can\u2019t have their values specified. Each member is a new symbol, with the symbol description set to the name of the member.\nYou must use the ",(0,m.mdx)("inlineCode",{parentName:"p"},"of")," clause with symbol enums, to distinguish them from string enums, which are the default when omitting values."),(0,m.mdx)("p",null,"You can specify a symbol enum like this:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status of symbol {\n Active,\n Paused,\n Off,\n}\n")),(0,m.mdx)("h2",{id:"toc-flow-enums-with-unknown-members"},"Flow Enums with Unknown Members"),(0,m.mdx)("p",null,'You can specify that your enum contains "unknown members" by adding a ',(0,m.mdx)("inlineCode",{parentName:"p"},"...")," to the end of the declaration:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":9,"endLine":9,"endColumn":14,"description":"Missing `default` case in the check of `status`. `Status` [1] has unknown members (specified using `...`) so checking it requires the use of a `default` case to cover those members. [invalid-exhaustive-check]"}]','[{"startLine":9,"startColumn":9,"endLine":9,"endColumn":14,"description":"Missing':!0,"`default`":!0,case:!0,in:!0,the:!0,check:!0,of:!0,"`status`.":!0,"`Status`":!0,"[1]":!0,has:!0,unknown:!0,members:!0,"(specified":!0,using:!0,"`...`)":!0,so:!0,checking:!0,it:!0,requires:!0,use:!0,a:!0,to:!0,cover:!0,those:!0,"members.":!0,'[invalid-exhaustive-check]"}]':!0},"enum Status {\n Active,\n Paused,\n Off,\n ...\n}\nconst status: Status = Status.Active;\n\nswitch (status) {\n case Status.Active: break;\n case Status.Paused: break;\n case Status.Off: break;\n}\n")),(0,m.mdx)("p",null,"When this is used, Flow will always require a ",(0,m.mdx)("inlineCode",{parentName:"p"},"default")," when ",(0,m.mdx)("a",{parentName:"p",href:"../using-enums/#toc-exhaustive-checking-with-unknown-members"},"switching over the enum"),",\neven if all known enum members are checked. The ",(0,m.mdx)("inlineCode",{parentName:"p"},"default"),' checks for "unknown" members you haven\'t explicitly listed.'),(0,m.mdx)("p",null,"This feature is useful when an enum value crosses some boundary and the enum declaration on each side may have different memebers.\nFor example, an enum definition which is used on both the client and the server: an enum member could be added, which would be immediately seen by the server,\nbut could be sent to an outdated client which isn't yet aware of the new member."),(0,m.mdx)("p",null,"One use case for this would be the JS output of ",(0,m.mdx)("a",{parentName:"p",href:"https://graphql.org/learn/schema/#enumeration-types"},"GraphQL Enums"),":\nFlow Enums with unknown members could be used instead of the added ",(0,m.mdx)("inlineCode",{parentName:"p"},"'%future added value'")," member."),(0,m.mdx)("h2",{id:"toc-enums-at-runtime"},"Enums at runtime"),(0,m.mdx)("p",null,"Enums exist as values at runtime. We use a ",(0,m.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/package/babel-plugin-transform-flow-enums"},"Babel transform")," to transform\nFlow Enum declarations into calls to the ",(0,m.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/package/flow-enums-runtime"},"enums runtime")," (read more in the ",(0,m.mdx)("a",{parentName:"p",href:"../enabling-enums/"},"enabling enums documentation"),").\nWe use a runtime so all enums can share an implementation of the enum ",(0,m.mdx)("a",{parentName:"p",href:"../using-enums/#toc-methods"},"methods"),"."),(0,m.mdx)("p",null,"We use ",(0,m.mdx)("inlineCode",{parentName:"p"},"Object.create(null)")," for enums' prototype (which has the enum methods), so properties in ",(0,m.mdx)("inlineCode",{parentName:"p"},"Object.prototype")," will not pollute enums.\nThe only own properties of the enum object are the enum members. The members are non-enumerable (use the ",(0,m.mdx)("a",{parentName:"p",href:"../using-enums/#toc-members"},(0,m.mdx)("inlineCode",{parentName:"a"},".members()")," method")," for that).\nThe entire enum object is frozen, so it cannot be modified."),(0,m.mdx)("h2",{id:"toc-style-guide"},"Style guide"),(0,m.mdx)("h4",{id:"toc-naming-enums"},"Naming enums"),(0,m.mdx)("p",null,"We encourage you to define enum names in ",(0,m.mdx)("inlineCode",{parentName:"p"},"PascalCase"),", following the naming conventions of other types. All caps names (e.g. ",(0,m.mdx)("inlineCode",{parentName:"p"},"STATUS"),") are harder to read and discouraged."),(0,m.mdx)("p",null,"We encourage you to name enums in the singular. E.g. ",(0,m.mdx)("inlineCode",{parentName:"p"},"Status"),", not ",(0,m.mdx)("inlineCode",{parentName:"p"},"Statuses"),". Just like the type of ",(0,m.mdx)("inlineCode",{parentName:"p"},"true")," and ",(0,m.mdx)("inlineCode",{parentName:"p"},"false")," is ",(0,m.mdx)("inlineCode",{parentName:"p"},"boolean"),", not ",(0,m.mdx)("inlineCode",{parentName:"p"},"booleans"),"."),(0,m.mdx)("p",null,"Don't append ",(0,m.mdx)("inlineCode",{parentName:"p"},"Enum")," to the name (e.g. don't name your enum ",(0,m.mdx)("inlineCode",{parentName:"p"},"StatusEnum"),"). This is unnecessary, just like we don't append ",(0,m.mdx)("inlineCode",{parentName:"p"},"Class")," to every class name, and ",(0,m.mdx)("inlineCode",{parentName:"p"},"Type")," to every type alias."),(0,m.mdx)("h4",{id:"toc-naming-enum-members"},"Naming enum members"),(0,m.mdx)("p",null,"We encourage you to define enum member names in ",(0,m.mdx)("inlineCode",{parentName:"p"},"PascalCase"),". All caps names (e.g. ",(0,m.mdx)("inlineCode",{parentName:"p"},"ACTIVE"),") are harder to read and discouraged.\nAdditionally, since Flow enforces that these are constants, you don't need to use the name to signal that intent to the programmer."),(0,m.mdx)("p",null,"See also: the rule about ",(0,m.mdx)("a",{parentName:"p",href:"#toc-member-name-starting-character"},"enum member name starting characters"),"."),(0,m.mdx)("h4",{id:"toc-don-t-create-a-separate-type"},"Don't create a separate type"),(0,m.mdx)("p",null,"A Flow Enum, like a class, is both a type and a value. You don't need to create a separate type alias, you can use the enum name."),(0,m.mdx)("h4",{id:"toc-use-dot-access-for-accessing-members"},"Use dot access for accessing members"),(0,m.mdx)("p",null,"Prefer ",(0,m.mdx)("inlineCode",{parentName:"p"},"Status.Active")," vs. ",(0,m.mdx)("inlineCode",{parentName:"p"},"const {Active} = Status;"),". This makes it easier find uses of the enum with text search, and makes it clearer to the reader what enum is involved.\nAdditionally, this is required for ",(0,m.mdx)("a",{parentName:"p",href:"../using-enums/#toc-exhaustively-checking-enums-with-a-switch"},"switch statements involving enums"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9343.60b6adf7.js b/assets/js/9343.60b6adf7.js new file mode 100644 index 00000000000..f79f7df7e51 --- /dev/null +++ b/assets/js/9343.60b6adf7.js @@ -0,0 +1,289 @@ +"use strict"; +exports.id = 9343; +exports.ids = [9343]; +exports.modules = { + +/***/ 39343: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/dart/dart.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "`", close: "`", notIn: ["string", "comment"] }, + { open: "/**", close: " */", notIn: ["string"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "`", close: "`" } + ], + folding: { + markers: { + start: /^\s*\s*#?region\b/, + end: /^\s*\s*#?endregion\b/ + } + } +}; +var language = { + defaultToken: "invalid", + tokenPostfix: ".dart", + keywords: [ + "abstract", + "dynamic", + "implements", + "show", + "as", + "else", + "import", + "static", + "assert", + "enum", + "in", + "super", + "async", + "export", + "interface", + "switch", + "await", + "extends", + "is", + "sync", + "break", + "external", + "library", + "this", + "case", + "factory", + "mixin", + "throw", + "catch", + "false", + "new", + "true", + "class", + "final", + "null", + "try", + "const", + "finally", + "on", + "typedef", + "continue", + "for", + "operator", + "var", + "covariant", + "Function", + "part", + "void", + "default", + "get", + "rethrow", + "while", + "deferred", + "hide", + "return", + "with", + "do", + "if", + "set", + "yield" + ], + typeKeywords: ["int", "double", "String", "bool"], + operators: [ + "+", + "-", + "*", + "/", + "~/", + "%", + "++", + "--", + "==", + "!=", + ">", + "<", + ">=", + "<=", + "=", + "-=", + "/=", + "%=", + ">>=", + "^=", + "+=", + "*=", + "~/=", + "<<=", + "&=", + "!=", + "||", + "&&", + "&", + "|", + "^", + "~", + "<<", + ">>", + "!", + ">>>", + "??", + "?", + ":", + "|=" + ], + symbols: /[=><!~?:&|+\-*\/\^%]+/, + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + digits: /\d+(_+\d+)*/, + octaldigits: /[0-7]+(_+[0-7]+)*/, + binarydigits: /[0-1]+(_+[0-1]+)*/, + hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/, + regexpctl: /[(){}\[\]\$\^|\-*+?\.]/, + regexpesc: /\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/, + tokenizer: { + root: [[/[{}]/, "delimiter.bracket"], { include: "common" }], + common: [ + [ + /[a-z_$][\w$]*/, + { + cases: { + "@typeKeywords": "type.identifier", + "@keywords": "keyword", + "@default": "identifier" + } + } + ], + [/[A-Z_$][\w\$]*/, "type.identifier"], + { include: "@whitespace" }, + [ + /\/(?=([^\\\/]|\\.)+\/([gimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/, + { token: "regexp", bracket: "@open", next: "@regexp" } + ], + [/@[a-zA-Z]+/, "annotation"], + [/[()\[\]]/, "@brackets"], + [/[<>](?!@symbols)/, "@brackets"], + [/!(?=([^=]|$))/, "delimiter"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/(@digits)[eE]([\-+]?(@digits))?/, "number.float"], + [/(@digits)\.(@digits)([eE][\-+]?(@digits))?/, "number.float"], + [/0[xX](@hexdigits)n?/, "number.hex"], + [/0[oO]?(@octaldigits)n?/, "number.octal"], + [/0[bB](@binarydigits)n?/, "number.binary"], + [/(@digits)n?/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string_double"], + [/'/, "string", "@string_single"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@jsdoc"], + [/\/\*/, "comment", "@comment"], + [/\/\/\/.*$/, "comment.doc"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + jsdoc: [ + [/[^\/*]+/, "comment.doc"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + regexp: [ + [ + /(\{)(\d+(?:,\d*)?)(\})/, + ["regexp.escape.control", "regexp.escape.control", "regexp.escape.control"] + ], + [ + /(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/, + ["regexp.escape.control", { token: "regexp.escape.control", next: "@regexrange" }] + ], + [/(\()(\?:|\?=|\?!)/, ["regexp.escape.control", "regexp.escape.control"]], + [/[()]/, "regexp.escape.control"], + [/@regexpctl/, "regexp.escape.control"], + [/[^\\\/]/, "regexp"], + [/@regexpesc/, "regexp.escape"], + [/\\\./, "regexp.invalid"], + [/(\/)([gimsuy]*)/, [{ token: "regexp", bracket: "@close", next: "@pop" }, "keyword.other"]] + ], + regexrange: [ + [/-/, "regexp.escape.control"], + [/\^/, "regexp.invalid"], + [/@regexpesc/, "regexp.escape"], + [/[^\]]/, "regexp"], + [ + /\]/, + { + token: "regexp.escape.control", + next: "@pop", + bracket: "@close" + } + ] + ], + string_double: [ + [/[^\\"\$]+/, "string"], + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"], + [/\$\w+/, "identifier"] + ], + string_single: [ + [/[^\\'\$]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/'/, "string", "@pop"], + [/\$\w+/, "identifier"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/9343.bdc8d465.js b/assets/js/9343.bdc8d465.js new file mode 100644 index 00000000000..5896d351f05 --- /dev/null +++ b/assets/js/9343.bdc8d465.js @@ -0,0 +1,2 @@ +/*! For license information please see 9343.bdc8d465.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9343],{39343:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>o,language:()=>s});var o={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:"(",close:")"},{open:'"',close:'"'},{open:"`",close:"`"}],folding:{markers:{start:/^\s*\s*#?region\b/,end:/^\s*\s*#?endregion\b/}}},s={defaultToken:"invalid",tokenPostfix:".dart",keywords:["abstract","dynamic","implements","show","as","else","import","static","assert","enum","in","super","async","export","interface","switch","await","extends","is","sync","break","external","library","this","case","factory","mixin","throw","catch","false","new","true","class","final","null","try","const","finally","on","typedef","continue","for","operator","var","covariant","Function","part","void","default","get","rethrow","while","deferred","hide","return","with","do","if","set","yield"],typeKeywords:["int","double","String","bool"],operators:["+","-","*","/","~/","%","++","--","==","!=",">","<",">=","<=","=","-=","/=","%=",">>=","^=","+=","*=","~/=","<<=","&=","!=","||","&&","&","|","^","~","<<",">>","!",">>>","??","?",":","|="],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,"delimiter.bracket"],{include:"common"}],common:[[/[a-z_$][\w$]*/,{cases:{"@typeKeywords":"type.identifier","@keywords":"keyword","@default":"identifier"}}],[/[A-Z_$][\w\$]*/,"type.identifier"],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/([gimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/,{token:"regexp",bracket:"@open",next:"@regexp"}],[/@[a-zA-Z]+/,"annotation"],[/[()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/\/.*$/,"comment.doc"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([gimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"\$]+/,"string"],[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"],[/\$\w+/,"identifier"]],string_single:[[/[^\\'\$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"],[/\$\w+/,"identifier"]]}}}}]); \ No newline at end of file diff --git a/assets/js/9343.bdc8d465.js.LICENSE.txt b/assets/js/9343.bdc8d465.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/9343.bdc8d465.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/9390.f01d7d65.js b/assets/js/9390.f01d7d65.js new file mode 100644 index 00000000000..83cdbb2509e --- /dev/null +++ b/assets/js/9390.f01d7d65.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9390],{99390:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var o=n(87462),r=(n(67294),n(3905));n(45475);const a={title:"Getting Started",slug:"/getting-started",description:"Never used a type system before or just new to Flow? Let's get you up and running in a few minutes."},s=void 0,i={unversionedId:"getting-started",id:"getting-started",title:"Getting Started",description:"Never used a type system before or just new to Flow? Let's get you up and running in a few minutes.",source:"@site/docs/getting-started.md",sourceDirName:".",slug:"/getting-started",permalink:"/en/docs/getting-started",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/getting-started.md",tags:[],version:"current",frontMatter:{title:"Getting Started",slug:"/getting-started",description:"Never used a type system before or just new to Flow? Let's get you up and running in a few minutes."},sidebar:"docsSidebar",next:{title:"Installation",permalink:"/en/docs/install"}},d={},l=[],u={toc:l};function c(e){let{components:t,...n}=e;return(0,r.mdx)("wrapper",(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Flow is a static type checker for your JavaScript code. It does a lot of work\nto make you more productive. Making you code faster, smarter, more confidently,\nand to a bigger scale."),(0,r.mdx)("p",null,"Flow checks your code for errors through ",(0,r.mdx)("strong",{parentName:"p"},"static type annotations"),". These\n",(0,r.mdx)("em",{parentName:"p"},"types")," allow you to tell Flow how you want your code to work, and Flow will\nmake sure it does work that way."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":8,"endLine":5,"endColumn":10,"description":"Cannot call `square` with `\\"2\\"` bound to `n` because string [1] is incompatible with number [2]. [incompatible-call]"}]','[{"startLine":5,"startColumn":8,"endLine":5,"endColumn":10,"description":"Cannot':!0,call:!0,"`square`":!0,with:!0,'`\\"2\\"`':!0,bound:!0,to:!0,"`n`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,number:!0,"[2].":!0,'[incompatible-call]"}]':!0},'function square(n: number): number {\n return n * n;\n}\n\nsquare("2"); // Error!\n')),(0,r.mdx)("p",null,"First step: ",(0,r.mdx)("a",{parentName:"p",href:"../install"},"install Flow"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9398.016daacb.js b/assets/js/9398.016daacb.js new file mode 100644 index 00000000000..9d2472a4c17 --- /dev/null +++ b/assets/js/9398.016daacb.js @@ -0,0 +1,396 @@ +"use strict"; +exports.id = 9398; +exports.ids = [9398]; +exports.modules = { + +/***/ 79398: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/msdax/msdax.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["[", "]"], + ["(", ")"], + ["{", "}"] + ], + autoClosingPairs: [ + { open: '"', close: '"', notIn: ["string", "comment"] }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: "[", close: "]", notIn: ["string", "comment"] }, + { open: "(", close: ")", notIn: ["string", "comment"] }, + { open: "{", close: "}", notIn: ["string", "comment"] } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".msdax", + ignoreCase: true, + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "{", close: "}", token: "delimiter.brackets" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + keywords: [ + "VAR", + "RETURN", + "NOT", + "EVALUATE", + "DATATABLE", + "ORDER", + "BY", + "START", + "AT", + "DEFINE", + "MEASURE", + "ASC", + "DESC", + "IN", + "BOOLEAN", + "DOUBLE", + "INTEGER", + "DATETIME", + "CURRENCY", + "STRING" + ], + functions: [ + "CLOSINGBALANCEMONTH", + "CLOSINGBALANCEQUARTER", + "CLOSINGBALANCEYEAR", + "DATEADD", + "DATESBETWEEN", + "DATESINPERIOD", + "DATESMTD", + "DATESQTD", + "DATESYTD", + "ENDOFMONTH", + "ENDOFQUARTER", + "ENDOFYEAR", + "FIRSTDATE", + "FIRSTNONBLANK", + "LASTDATE", + "LASTNONBLANK", + "NEXTDAY", + "NEXTMONTH", + "NEXTQUARTER", + "NEXTYEAR", + "OPENINGBALANCEMONTH", + "OPENINGBALANCEQUARTER", + "OPENINGBALANCEYEAR", + "PARALLELPERIOD", + "PREVIOUSDAY", + "PREVIOUSMONTH", + "PREVIOUSQUARTER", + "PREVIOUSYEAR", + "SAMEPERIODLASTYEAR", + "STARTOFMONTH", + "STARTOFQUARTER", + "STARTOFYEAR", + "TOTALMTD", + "TOTALQTD", + "TOTALYTD", + "ADDCOLUMNS", + "ADDMISSINGITEMS", + "ALL", + "ALLEXCEPT", + "ALLNOBLANKROW", + "ALLSELECTED", + "CALCULATE", + "CALCULATETABLE", + "CALENDAR", + "CALENDARAUTO", + "CROSSFILTER", + "CROSSJOIN", + "CURRENTGROUP", + "DATATABLE", + "DETAILROWS", + "DISTINCT", + "EARLIER", + "EARLIEST", + "EXCEPT", + "FILTER", + "FILTERS", + "GENERATE", + "GENERATEALL", + "GROUPBY", + "IGNORE", + "INTERSECT", + "ISONORAFTER", + "KEEPFILTERS", + "LOOKUPVALUE", + "NATURALINNERJOIN", + "NATURALLEFTOUTERJOIN", + "RELATED", + "RELATEDTABLE", + "ROLLUP", + "ROLLUPADDISSUBTOTAL", + "ROLLUPGROUP", + "ROLLUPISSUBTOTAL", + "ROW", + "SAMPLE", + "SELECTCOLUMNS", + "SUBSTITUTEWITHINDEX", + "SUMMARIZE", + "SUMMARIZECOLUMNS", + "TOPN", + "TREATAS", + "UNION", + "USERELATIONSHIP", + "VALUES", + "SUM", + "SUMX", + "PATH", + "PATHCONTAINS", + "PATHITEM", + "PATHITEMREVERSE", + "PATHLENGTH", + "AVERAGE", + "AVERAGEA", + "AVERAGEX", + "COUNT", + "COUNTA", + "COUNTAX", + "COUNTBLANK", + "COUNTROWS", + "COUNTX", + "DISTINCTCOUNT", + "DIVIDE", + "GEOMEAN", + "GEOMEANX", + "MAX", + "MAXA", + "MAXX", + "MEDIAN", + "MEDIANX", + "MIN", + "MINA", + "MINX", + "PERCENTILE.EXC", + "PERCENTILE.INC", + "PERCENTILEX.EXC", + "PERCENTILEX.INC", + "PRODUCT", + "PRODUCTX", + "RANK.EQ", + "RANKX", + "STDEV.P", + "STDEV.S", + "STDEVX.P", + "STDEVX.S", + "VAR.P", + "VAR.S", + "VARX.P", + "VARX.S", + "XIRR", + "XNPV", + "DATE", + "DATEDIFF", + "DATEVALUE", + "DAY", + "EDATE", + "EOMONTH", + "HOUR", + "MINUTE", + "MONTH", + "NOW", + "SECOND", + "TIME", + "TIMEVALUE", + "TODAY", + "WEEKDAY", + "WEEKNUM", + "YEAR", + "YEARFRAC", + "CONTAINS", + "CONTAINSROW", + "CUSTOMDATA", + "ERROR", + "HASONEFILTER", + "HASONEVALUE", + "ISBLANK", + "ISCROSSFILTERED", + "ISEMPTY", + "ISERROR", + "ISEVEN", + "ISFILTERED", + "ISLOGICAL", + "ISNONTEXT", + "ISNUMBER", + "ISODD", + "ISSUBTOTAL", + "ISTEXT", + "USERNAME", + "USERPRINCIPALNAME", + "AND", + "FALSE", + "IF", + "IFERROR", + "NOT", + "OR", + "SWITCH", + "TRUE", + "ABS", + "ACOS", + "ACOSH", + "ACOT", + "ACOTH", + "ASIN", + "ASINH", + "ATAN", + "ATANH", + "BETA.DIST", + "BETA.INV", + "CEILING", + "CHISQ.DIST", + "CHISQ.DIST.RT", + "CHISQ.INV", + "CHISQ.INV.RT", + "COMBIN", + "COMBINA", + "CONFIDENCE.NORM", + "CONFIDENCE.T", + "COS", + "COSH", + "COT", + "COTH", + "CURRENCY", + "DEGREES", + "EVEN", + "EXP", + "EXPON.DIST", + "FACT", + "FLOOR", + "GCD", + "INT", + "ISO.CEILING", + "LCM", + "LN", + "LOG", + "LOG10", + "MOD", + "MROUND", + "ODD", + "PERMUT", + "PI", + "POISSON.DIST", + "POWER", + "QUOTIENT", + "RADIANS", + "RAND", + "RANDBETWEEN", + "ROUND", + "ROUNDDOWN", + "ROUNDUP", + "SIGN", + "SIN", + "SINH", + "SQRT", + "SQRTPI", + "TAN", + "TANH", + "TRUNC", + "BLANK", + "CONCATENATE", + "CONCATENATEX", + "EXACT", + "FIND", + "FIXED", + "FORMAT", + "LEFT", + "LEN", + "LOWER", + "MID", + "REPLACE", + "REPT", + "RIGHT", + "SEARCH", + "SUBSTITUTE", + "TRIM", + "UNICHAR", + "UNICODE", + "UPPER", + "VALUE" + ], + tokenizer: { + root: [ + { include: "@comments" }, + { include: "@whitespace" }, + { include: "@numbers" }, + { include: "@strings" }, + { include: "@complexIdentifiers" }, + [/[;,.]/, "delimiter"], + [/[({})]/, "@brackets"], + [ + /[a-z_][a-zA-Z0-9_]*/, + { + cases: { + "@keywords": "keyword", + "@functions": "keyword", + "@default": "identifier" + } + } + ], + [/[<>=!%&+\-*/|~^]/, "operator"] + ], + whitespace: [[/\s+/, "white"]], + comments: [ + [/\/\/+.*/, "comment"], + [/\/\*/, { token: "comment.quote", next: "@comment" }] + ], + comment: [ + [/[^*/]+/, "comment"], + [/\*\//, { token: "comment.quote", next: "@pop" }], + [/./, "comment"] + ], + numbers: [ + [/0[xX][0-9a-fA-F]*/, "number"], + [/[$][+-]*\d*(\.\d*)?/, "number"], + [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, "number"] + ], + strings: [ + [/N"/, { token: "string", next: "@string" }], + [/"/, { token: "string", next: "@string" }] + ], + string: [ + [/[^"]+/, "string"], + [/""/, "string"], + [/"/, { token: "string", next: "@pop" }] + ], + complexIdentifiers: [ + [/\[/, { token: "identifier.quote", next: "@bracketedIdentifier" }], + [/'/, { token: "identifier.quote", next: "@quotedIdentifier" }] + ], + bracketedIdentifier: [ + [/[^\]]+/, "identifier"], + [/]]/, "identifier"], + [/]/, { token: "identifier.quote", next: "@pop" }] + ], + quotedIdentifier: [ + [/[^']+/, "identifier"], + [/''/, "identifier"], + [/'/, { token: "identifier.quote", next: "@pop" }] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/9398.a4b8a2d7.js b/assets/js/9398.a4b8a2d7.js new file mode 100644 index 00000000000..04000cac0fe --- /dev/null +++ b/assets/js/9398.a4b8a2d7.js @@ -0,0 +1,2 @@ +/*! For license information please see 9398.a4b8a2d7.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9398],{79398:(E,T,A)=>{A.r(T),A.d(T,{conf:()=>N,language:()=>e});var N={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]}]},e={defaultToken:"",tokenPostfix:".msdax",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.brackets"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["VAR","RETURN","NOT","EVALUATE","DATATABLE","ORDER","BY","START","AT","DEFINE","MEASURE","ASC","DESC","IN","BOOLEAN","DOUBLE","INTEGER","DATETIME","CURRENCY","STRING"],functions:["CLOSINGBALANCEMONTH","CLOSINGBALANCEQUARTER","CLOSINGBALANCEYEAR","DATEADD","DATESBETWEEN","DATESINPERIOD","DATESMTD","DATESQTD","DATESYTD","ENDOFMONTH","ENDOFQUARTER","ENDOFYEAR","FIRSTDATE","FIRSTNONBLANK","LASTDATE","LASTNONBLANK","NEXTDAY","NEXTMONTH","NEXTQUARTER","NEXTYEAR","OPENINGBALANCEMONTH","OPENINGBALANCEQUARTER","OPENINGBALANCEYEAR","PARALLELPERIOD","PREVIOUSDAY","PREVIOUSMONTH","PREVIOUSQUARTER","PREVIOUSYEAR","SAMEPERIODLASTYEAR","STARTOFMONTH","STARTOFQUARTER","STARTOFYEAR","TOTALMTD","TOTALQTD","TOTALYTD","ADDCOLUMNS","ADDMISSINGITEMS","ALL","ALLEXCEPT","ALLNOBLANKROW","ALLSELECTED","CALCULATE","CALCULATETABLE","CALENDAR","CALENDARAUTO","CROSSFILTER","CROSSJOIN","CURRENTGROUP","DATATABLE","DETAILROWS","DISTINCT","EARLIER","EARLIEST","EXCEPT","FILTER","FILTERS","GENERATE","GENERATEALL","GROUPBY","IGNORE","INTERSECT","ISONORAFTER","KEEPFILTERS","LOOKUPVALUE","NATURALINNERJOIN","NATURALLEFTOUTERJOIN","RELATED","RELATEDTABLE","ROLLUP","ROLLUPADDISSUBTOTAL","ROLLUPGROUP","ROLLUPISSUBTOTAL","ROW","SAMPLE","SELECTCOLUMNS","SUBSTITUTEWITHINDEX","SUMMARIZE","SUMMARIZECOLUMNS","TOPN","TREATAS","UNION","USERELATIONSHIP","VALUES","SUM","SUMX","PATH","PATHCONTAINS","PATHITEM","PATHITEMREVERSE","PATHLENGTH","AVERAGE","AVERAGEA","AVERAGEX","COUNT","COUNTA","COUNTAX","COUNTBLANK","COUNTROWS","COUNTX","DISTINCTCOUNT","DIVIDE","GEOMEAN","GEOMEANX","MAX","MAXA","MAXX","MEDIAN","MEDIANX","MIN","MINA","MINX","PERCENTILE.EXC","PERCENTILE.INC","PERCENTILEX.EXC","PERCENTILEX.INC","PRODUCT","PRODUCTX","RANK.EQ","RANKX","STDEV.P","STDEV.S","STDEVX.P","STDEVX.S","VAR.P","VAR.S","VARX.P","VARX.S","XIRR","XNPV","DATE","DATEDIFF","DATEVALUE","DAY","EDATE","EOMONTH","HOUR","MINUTE","MONTH","NOW","SECOND","TIME","TIMEVALUE","TODAY","WEEKDAY","WEEKNUM","YEAR","YEARFRAC","CONTAINS","CONTAINSROW","CUSTOMDATA","ERROR","HASONEFILTER","HASONEVALUE","ISBLANK","ISCROSSFILTERED","ISEMPTY","ISERROR","ISEVEN","ISFILTERED","ISLOGICAL","ISNONTEXT","ISNUMBER","ISODD","ISSUBTOTAL","ISTEXT","USERNAME","USERPRINCIPALNAME","AND","FALSE","IF","IFERROR","NOT","OR","SWITCH","TRUE","ABS","ACOS","ACOSH","ACOT","ACOTH","ASIN","ASINH","ATAN","ATANH","BETA.DIST","BETA.INV","CEILING","CHISQ.DIST","CHISQ.DIST.RT","CHISQ.INV","CHISQ.INV.RT","COMBIN","COMBINA","CONFIDENCE.NORM","CONFIDENCE.T","COS","COSH","COT","COTH","CURRENCY","DEGREES","EVEN","EXP","EXPON.DIST","FACT","FLOOR","GCD","INT","ISO.CEILING","LCM","LN","LOG","LOG10","MOD","MROUND","ODD","PERMUT","PI","POISSON.DIST","POWER","QUOTIENT","RADIANS","RAND","RANDBETWEEN","ROUND","ROUNDDOWN","ROUNDUP","SIGN","SIN","SINH","SQRT","SQRTPI","TAN","TANH","TRUNC","BLANK","CONCATENATE","CONCATENATEX","EXACT","FIND","FIXED","FORMAT","LEFT","LEN","LOWER","MID","REPLACE","REPT","RIGHT","SEARCH","SUBSTITUTE","TRIM","UNICHAR","UNICODE","UPPER","VALUE"],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},[/[;,.]/,"delimiter"],[/[({})]/,"@brackets"],[/[a-z_][a-zA-Z0-9_]*/,{cases:{"@keywords":"keyword","@functions":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/\/\/+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/N"/,{token:"string",next:"@string"}],[/"/,{token:"string",next:"@string"}]],string:[[/[^"]+/,"string"],[/""/,"string"],[/"/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/\[/,{token:"identifier.quote",next:"@bracketedIdentifier"}],[/'/,{token:"identifier.quote",next:"@quotedIdentifier"}]],bracketedIdentifier:[[/[^\]]+/,"identifier"],[/]]/,"identifier"],[/]/,{token:"identifier.quote",next:"@pop"}]],quotedIdentifier:[[/[^']+/,"identifier"],[/''/,"identifier"],[/'/,{token:"identifier.quote",next:"@pop"}]]}}}}]); \ No newline at end of file diff --git a/assets/js/9398.a4b8a2d7.js.LICENSE.txt b/assets/js/9398.a4b8a2d7.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/9398.a4b8a2d7.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/9400.16453223.js b/assets/js/9400.16453223.js new file mode 100644 index 00000000000..f0c215d8c21 --- /dev/null +++ b/assets/js/9400.16453223.js @@ -0,0 +1,301 @@ +"use strict"; +exports.id = 9400; +exports.ids = [9400]; +exports.modules = { + +/***/ 69400: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/qsharp/qsharp.ts +var conf = { + comments: { + lineComment: "//" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"', notIn: ["string", "comment"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' } + ] +}; +var language = { + keywords: [ + "namespace", + "open", + "as", + "operation", + "function", + "body", + "adjoint", + "newtype", + "controlled", + "if", + "elif", + "else", + "repeat", + "until", + "fixup", + "for", + "in", + "while", + "return", + "fail", + "within", + "apply", + "Adjoint", + "Controlled", + "Adj", + "Ctl", + "is", + "self", + "auto", + "distribute", + "invert", + "intrinsic", + "let", + "set", + "w/", + "new", + "not", + "and", + "or", + "use", + "borrow", + "using", + "borrowing", + "mutable", + "internal" + ], + typeKeywords: [ + "Unit", + "Int", + "BigInt", + "Double", + "Bool", + "String", + "Qubit", + "Result", + "Pauli", + "Range" + ], + invalidKeywords: [ + "abstract", + "base", + "bool", + "break", + "byte", + "case", + "catch", + "char", + "checked", + "class", + "const", + "continue", + "decimal", + "default", + "delegate", + "do", + "double", + "enum", + "event", + "explicit", + "extern", + "finally", + "fixed", + "float", + "foreach", + "goto", + "implicit", + "int", + "interface", + "lock", + "long", + "null", + "object", + "operator", + "out", + "override", + "params", + "private", + "protected", + "public", + "readonly", + "ref", + "sbyte", + "sealed", + "short", + "sizeof", + "stackalloc", + "static", + "string", + "struct", + "switch", + "this", + "throw", + "try", + "typeof", + "unit", + "ulong", + "unchecked", + "unsafe", + "ushort", + "virtual", + "void", + "volatile" + ], + constants: ["true", "false", "PauliI", "PauliX", "PauliY", "PauliZ", "One", "Zero"], + builtin: [ + "X", + "Y", + "Z", + "H", + "HY", + "S", + "T", + "SWAP", + "CNOT", + "CCNOT", + "MultiX", + "R", + "RFrac", + "Rx", + "Ry", + "Rz", + "R1", + "R1Frac", + "Exp", + "ExpFrac", + "Measure", + "M", + "MultiM", + "Message", + "Length", + "Assert", + "AssertProb", + "AssertEqual" + ], + operators: [ + "and=", + "<-", + "->", + "*", + "*=", + "@", + "!", + "^", + "^=", + ":", + "::", + "..", + "==", + "...", + "=", + "=>", + ">", + ">=", + "<", + "<=", + "-", + "-=", + "!=", + "or=", + "%", + "%=", + "|", + "+", + "+=", + "?", + "/", + "/=", + "&&&", + "&&&=", + "^^^", + "^^^=", + ">>>", + ">>>=", + "<<<", + "<<<=", + "|||", + "|||=", + "~~~", + "_", + "w/", + "w/=" + ], + namespaceFollows: ["namespace", "open"], + symbols: /[=><!~?:&|+\-*\/\^%@._]+/, + escapes: /\\[\s\S]/, + tokenizer: { + root: [ + [ + /[a-zA-Z_$][\w$]*/, + { + cases: { + "@namespaceFollows": { + token: "keyword.$0", + next: "@namespace" + }, + "@typeKeywords": "type", + "@keywords": "keyword", + "@constants": "constant", + "@builtin": "keyword", + "@invalidKeywords": "invalid", + "@default": "identifier" + } + } + ], + { include: "@whitespace" }, + [/[{}()\[\]]/, "@brackets"], + [/@symbols/, { cases: { "@operators": "operator", "@default": "" } }], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/\d+/, "number"], + [/[;,.]/, "delimiter"], + [/"/, { token: "string.quote", bracket: "@open", next: "@string" }] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/"/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + namespace: [ + { include: "@whitespace" }, + [/[A-Za-z]\w*/, "namespace"], + [/[\.=]/, "delimiter"], + ["", "", "@pop"] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/(\/\/).*/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/9400.1d5fbae2.js b/assets/js/9400.1d5fbae2.js new file mode 100644 index 00000000000..b40aadd2a96 --- /dev/null +++ b/assets/js/9400.1d5fbae2.js @@ -0,0 +1,2 @@ +/*! For license information please see 9400.1d5fbae2.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9400],{69400:(e,t,o)=>{o.r(t),o.d(t,{conf:()=>n,language:()=>s});var n={comments:{lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},s={keywords:["namespace","open","as","operation","function","body","adjoint","newtype","controlled","if","elif","else","repeat","until","fixup","for","in","while","return","fail","within","apply","Adjoint","Controlled","Adj","Ctl","is","self","auto","distribute","invert","intrinsic","let","set","w/","new","not","and","or","use","borrow","using","borrowing","mutable","internal"],typeKeywords:["Unit","Int","BigInt","Double","Bool","String","Qubit","Result","Pauli","Range"],invalidKeywords:["abstract","base","bool","break","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","do","double","enum","event","explicit","extern","finally","fixed","float","foreach","goto","implicit","int","interface","lock","long","null","object","operator","out","override","params","private","protected","public","readonly","ref","sbyte","sealed","short","sizeof","stackalloc","static","string","struct","switch","this","throw","try","typeof","unit","ulong","unchecked","unsafe","ushort","virtual","void","volatile"],constants:["true","false","PauliI","PauliX","PauliY","PauliZ","One","Zero"],builtin:["X","Y","Z","H","HY","S","T","SWAP","CNOT","CCNOT","MultiX","R","RFrac","Rx","Ry","Rz","R1","R1Frac","Exp","ExpFrac","Measure","M","MultiM","Message","Length","Assert","AssertProb","AssertEqual"],operators:["and=","<-","->","*","*=","@","!","^","^=",":","::","..","==","...","=","=>",">",">=","<","<=","-","-=","!=","or=","%","%=","|","+","+=","?","/","/=","&&&","&&&=","^^^","^^^=",">>>",">>>=","<<<","<<<=","|||","|||=","~~~","_","w/","w/="],namespaceFollows:["namespace","open"],symbols:/[=><!~?:&|+\-*\/\^%@._]+/,escapes:/\\[\s\S]/,tokenizer:{root:[[/[a-zA-Z_$][\w$]*/,{cases:{"@namespaceFollows":{token:"keyword.$0",next:"@namespace"},"@typeKeywords":"type","@keywords":"keyword","@constants":"constant","@builtin":"keyword","@invalidKeywords":"invalid","@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],namespace:[{include:"@whitespace"},[/[A-Za-z]\w*/,"namespace"],[/[\.=]/,"delimiter"],["","","@pop"]],whitespace:[[/[ \t\r\n]+/,"white"],[/(\/\/).*/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/9400.1d5fbae2.js.LICENSE.txt b/assets/js/9400.1d5fbae2.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/9400.1d5fbae2.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/9466.2e6a88ec.js b/assets/js/9466.2e6a88ec.js new file mode 100644 index 00000000000..e253f4a9c8c --- /dev/null +++ b/assets/js/9466.2e6a88ec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9466],{29466:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>p,default:()=>i,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var o=n(87462),s=(n(67294),n(3905));n(45475);const r={title:"Module Types",slug:"/types/modules"},p=void 0,a={unversionedId:"types/modules",id:"types/modules",title:"Module Types",description:"Importing and exporting types",source:"@site/docs/types/modules.md",sourceDirName:"types",slug:"/types/modules",permalink:"/en/docs/types/modules",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/modules.md",tags:[],version:"current",frontMatter:{title:"Module Types",slug:"/types/modules"},sidebar:"docsSidebar",previous:{title:"Utility Types",permalink:"/en/docs/types/utilities"},next:{title:"Comment Types",permalink:"/en/docs/types/comments"}},m={},l=[{value:"Importing and exporting types",id:"toc-importing-and-exporting-types",level:2},{value:"Importing and exporting values as types",id:"toc-importing-and-exporting-values",level:2}],d={toc:l};function i(e){let{components:t,...n}=e;return(0,s.mdx)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("h2",{id:"toc-importing-and-exporting-types"},"Importing and exporting types"),(0,s.mdx)("p",null,"It is often useful to share types between modules (files).\nIn Flow, you can export type aliases, interfaces, and classes from one file and import them in another."),(0,s.mdx)("p",null,(0,s.mdx)("strong",{parentName:"p"},(0,s.mdx)("inlineCode",{parentName:"strong"},"exports.js"))),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"export default class MyClass {};\nexport type MyObject = { /* ... */ };\nexport interface MyInterface { /* ... */ };\n")),(0,s.mdx)("p",null,(0,s.mdx)("strong",{parentName:"p"},(0,s.mdx)("inlineCode",{parentName:"strong"},"imports.js"))),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"import type MyClass, {MyObject, MyInterface} from './exports';\n")),(0,s.mdx)("blockquote",null,(0,s.mdx)("p",{parentName:"blockquote"},(0,s.mdx)("strong",{parentName:"p"},(0,s.mdx)("em",{parentName:"strong"},"Don't forget to add ",(0,s.mdx)("inlineCode",{parentName:"em"},"@flow")," at the top of your file, otherwise Flow won't report errors")),".")),(0,s.mdx)("h2",{id:"toc-importing-and-exporting-values"},"Importing and exporting values as types"),(0,s.mdx)("p",null,"Flow also supports importing the type of values exported by other modules using ",(0,s.mdx)("a",{parentName:"p",href:"../typeof/"},(0,s.mdx)("inlineCode",{parentName:"a"},"typeof")),"."),(0,s.mdx)("p",null,(0,s.mdx)("strong",{parentName:"p"},(0,s.mdx)("inlineCode",{parentName:"strong"},"exports.js"))),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const myNumber = 42;\nexport default myNumber;\nexport class MyClass { /* ... */ };\n")),(0,s.mdx)("p",null,(0,s.mdx)("strong",{parentName:"p"},(0,s.mdx)("inlineCode",{parentName:"strong"},"imports.js"))),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"import typeof MyNumber from './exports';\nimport typeof {MyClass} from './exports';\n\nconst x: MyNumber = 1; // Works: like using `number`\n")),(0,s.mdx)("p",null,"Just like other type imports, this code can be stripped away by a compiler so\nthat it does not add a runtime dependency on the other module."))}i.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9487.c37004d9.js b/assets/js/9487.c37004d9.js new file mode 100644 index 00000000000..5b545e10678 --- /dev/null +++ b/assets/js/9487.c37004d9.js @@ -0,0 +1,7371 @@ +exports.id = 9487; +exports.ids = [9487]; +exports.modules = { + +/***/ 17295: +/***/ ((module) => { + +(function(f){if(true){module.exports=f()}else { var g; }})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=undefined;if(!f&&c)return require(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=undefined,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/******************************************************************************* + * Copyright (c) 2017 Kiel University and others. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +var ELK = function () { + function ELK() { + var _this = this; + + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, + defaultLayoutOptions = _ref$defaultLayoutOpt === undefined ? {} : _ref$defaultLayoutOpt, + _ref$algorithms = _ref.algorithms, + algorithms = _ref$algorithms === undefined ? ['layered', 'stress', 'mrtree', 'radial', 'force', 'disco', 'sporeOverlap', 'sporeCompaction', 'rectpacking'] : _ref$algorithms, + workerFactory = _ref.workerFactory, + workerUrl = _ref.workerUrl; + + _classCallCheck(this, ELK); + + this.defaultLayoutOptions = defaultLayoutOptions; + this.initialized = false; + + // check valid worker construction possible + if (typeof workerUrl === 'undefined' && typeof workerFactory === 'undefined') { + throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'."); + } + var factory = workerFactory; + if (typeof workerUrl !== 'undefined' && typeof workerFactory === 'undefined') { + // use default Web Worker + factory = function factory(url) { + return new Worker(url); + }; + } + + // create the worker + var worker = factory(workerUrl); + if (typeof worker.postMessage !== 'function') { + throw new TypeError("Created worker does not provide" + " the required 'postMessage' function."); + } + + // wrap the worker to return promises + this.worker = new PromisedWorker(worker); + + // initially register algorithms + this.worker.postMessage({ + cmd: 'register', + algorithms: algorithms + }).then(function (r) { + return _this.initialized = true; + }).catch(console.err); + } + + _createClass(ELK, [{ + key: 'layout', + value: function layout(graph) { + var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref2$layoutOptions = _ref2.layoutOptions, + layoutOptions = _ref2$layoutOptions === undefined ? this.defaultLayoutOptions : _ref2$layoutOptions, + _ref2$logging = _ref2.logging, + logging = _ref2$logging === undefined ? false : _ref2$logging, + _ref2$measureExecutio = _ref2.measureExecutionTime, + measureExecutionTime = _ref2$measureExecutio === undefined ? false : _ref2$measureExecutio; + + if (!graph) { + return Promise.reject(new Error("Missing mandatory parameter 'graph'.")); + } + return this.worker.postMessage({ + cmd: 'layout', + graph: graph, + layoutOptions: layoutOptions, + options: { + logging: logging, + measureExecutionTime: measureExecutionTime + } + }); + } + }, { + key: 'knownLayoutAlgorithms', + value: function knownLayoutAlgorithms() { + return this.worker.postMessage({ cmd: 'algorithms' }); + } + }, { + key: 'knownLayoutOptions', + value: function knownLayoutOptions() { + return this.worker.postMessage({ cmd: 'options' }); + } + }, { + key: 'knownLayoutCategories', + value: function knownLayoutCategories() { + return this.worker.postMessage({ cmd: 'categories' }); + } + }, { + key: 'terminateWorker', + value: function terminateWorker() { + this.worker.terminate(); + } + }]); + + return ELK; +}(); + +exports.default = ELK; + +var PromisedWorker = function () { + function PromisedWorker(worker) { + var _this2 = this; + + _classCallCheck(this, PromisedWorker); + + if (worker === undefined) { + throw new Error("Missing mandatory parameter 'worker'."); + } + this.resolvers = {}; + this.worker = worker; + this.worker.onmessage = function (answer) { + // why is this necessary? + setTimeout(function () { + _this2.receive(_this2, answer); + }, 0); + }; + } + + _createClass(PromisedWorker, [{ + key: 'postMessage', + value: function postMessage(msg) { + var id = this.id || 0; + this.id = id + 1; + msg.id = id; + var self = this; + return new Promise(function (resolve, reject) { + // prepare the resolver + self.resolvers[id] = function (err, res) { + if (err) { + self.convertGwtStyleError(err); + reject(err); + } else { + resolve(res); + } + }; + // post the message + self.worker.postMessage(msg); + }); + } + }, { + key: 'receive', + value: function receive(self, answer) { + var json = answer.data; + var resolver = self.resolvers[json.id]; + if (resolver) { + delete self.resolvers[json.id]; + if (json.error) { + resolver(json.error); + } else { + resolver(null, json.data); + } + } + } + }, { + key: 'terminate', + value: function terminate() { + if (this.worker.terminate) { + this.worker.terminate(); + } + } + }, { + key: 'convertGwtStyleError', + value: function convertGwtStyleError(err) { + if (!err) { + return; + } + // Somewhat flatten the way GWT stores nested exception(s) + var javaException = err['__java$exception']; + if (javaException) { + // Note that the property name of the nested exception is different + // in the non-minified ('cause') and the minified (not deterministic) version. + // Hence, the version below only works for the non-minified version. + // However, as the minified stack trace is not of much use anyway, one + // should switch the used version for debugging in such a case. + if (javaException.cause && javaException.cause.backingJsObject) { + err.cause = javaException.cause.backingJsObject; + this.convertGwtStyleError(err.cause); + } + delete err['__java$exception']; + } + } + }]); + + return PromisedWorker; +}(); +},{}],2:[function(require,module,exports){ +(function (global){(function (){ +'use strict'; + +// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- +var $wnd; +if (typeof window !== 'undefined') + $wnd = window +else if (typeof global !== 'undefined') + $wnd = global // nodejs +else if (typeof self !== 'undefined') + $wnd = self // web worker + +var $moduleName, + $moduleBase; + +// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- +var g, i, o; + +// -------------- GENERATED CODE -------------- +function nb(){} +function xb(){} +function Fd(){} +function $g(){} +function _p(){} +function yq(){} +function Sq(){} +function Es(){} +function Jw(){} +function Vw(){} +function VA(){} +function dA(){} +function MA(){} +function PA(){} +function PB(){} +function bx(){} +function cx(){} +function vy(){} +function Nz(){} +function Yz(){} +function Ylb(){} +function Ymb(){} +function xmb(){} +function Fmb(){} +function Qmb(){} +function gcb(){} +function ccb(){} +function jcb(){} +function jtb(){} +function otb(){} +function qtb(){} +function _fb(){} +function bpb(){} +function kpb(){} +function ppb(){} +function Gpb(){} +function drb(){} +function dzb(){} +function fzb(){} +function fxb(){} +function Vxb(){} +function Ovb(){} +function byb(){} +function zyb(){} +function Zyb(){} +function _yb(){} +function hzb(){} +function jzb(){} +function lzb(){} +function nzb(){} +function rzb(){} +function zzb(){} +function Czb(){} +function Ezb(){} +function Gzb(){} +function Izb(){} +function Mzb(){} +function bBb(){} +function NBb(){} +function PBb(){} +function RBb(){} +function iCb(){} +function OCb(){} +function SCb(){} +function GDb(){} +function JDb(){} +function fEb(){} +function xEb(){} +function CEb(){} +function GEb(){} +function yFb(){} +function KGb(){} +function tIb(){} +function vIb(){} +function xIb(){} +function zIb(){} +function OIb(){} +function SIb(){} +function TJb(){} +function VJb(){} +function XJb(){} +function XKb(){} +function fKb(){} +function VKb(){} +function VLb(){} +function jLb(){} +function nLb(){} +function GLb(){} +function KLb(){} +function MLb(){} +function OLb(){} +function RLb(){} +function YLb(){} +function bMb(){} +function gMb(){} +function lMb(){} +function pMb(){} +function wMb(){} +function zMb(){} +function CMb(){} +function FMb(){} +function LMb(){} +function zNb(){} +function PNb(){} +function kOb(){} +function pOb(){} +function tOb(){} +function yOb(){} +function FOb(){} +function GPb(){} +function aQb(){} +function cQb(){} +function eQb(){} +function gQb(){} +function iQb(){} +function CQb(){} +function MQb(){} +function OQb(){} +function ASb(){} +function fTb(){} +function kTb(){} +function STb(){} +function fUb(){} +function DUb(){} +function VUb(){} +function YUb(){} +function _Ub(){} +function _Wb(){} +function QWb(){} +function XWb(){} +function jVb(){} +function DVb(){} +function VVb(){} +function $Vb(){} +function dXb(){} +function hXb(){} +function lXb(){} +function gYb(){} +function HYb(){} +function SYb(){} +function VYb(){} +function dZb(){} +function P$b(){} +function T$b(){} +function h1b(){} +function m1b(){} +function q1b(){} +function u1b(){} +function y1b(){} +function C1b(){} +function e2b(){} +function g2b(){} +function m2b(){} +function q2b(){} +function u2b(){} +function S2b(){} +function U2b(){} +function W2b(){} +function _2b(){} +function e3b(){} +function h3b(){} +function p3b(){} +function t3b(){} +function w3b(){} +function y3b(){} +function A3b(){} +function M3b(){} +function Q3b(){} +function U3b(){} +function Y3b(){} +function l4b(){} +function q4b(){} +function s4b(){} +function u4b(){} +function w4b(){} +function y4b(){} +function L4b(){} +function N4b(){} +function P4b(){} +function R4b(){} +function T4b(){} +function X4b(){} +function I5b(){} +function Q5b(){} +function T5b(){} +function Z5b(){} +function l6b(){} +function o6b(){} +function t6b(){} +function z6b(){} +function L6b(){} +function M6b(){} +function P6b(){} +function X6b(){} +function $6b(){} +function a7b(){} +function c7b(){} +function g7b(){} +function j7b(){} +function m7b(){} +function r7b(){} +function x7b(){} +function D7b(){} +function D9b(){} +function b9b(){} +function h9b(){} +function j9b(){} +function l9b(){} +function w9b(){} +function F9b(){} +function hac(){} +function jac(){} +function pac(){} +function uac(){} +function Iac(){} +function Kac(){} +function Sac(){} +function obc(){} +function rbc(){} +function vbc(){} +function Fbc(){} +function Jbc(){} +function Xbc(){} +function ccc(){} +function fcc(){} +function lcc(){} +function occ(){} +function tcc(){} +function ycc(){} +function Acc(){} +function Ccc(){} +function Ecc(){} +function Gcc(){} +function Zcc(){} +function _cc(){} +function bdc(){} +function fdc(){} +function jdc(){} +function pdc(){} +function sdc(){} +function ydc(){} +function Adc(){} +function Cdc(){} +function Edc(){} +function Idc(){} +function Ndc(){} +function Qdc(){} +function Sdc(){} +function Udc(){} +function Wdc(){} +function Ydc(){} +function aec(){} +function hec(){} +function jec(){} +function lec(){} +function nec(){} +function uec(){} +function wec(){} +function yec(){} +function Aec(){} +function Fec(){} +function Jec(){} +function Lec(){} +function Nec(){} +function Rec(){} +function Uec(){} +function Zec(){} +function Zfc(){} +function lfc(){} +function tfc(){} +function xfc(){} +function zfc(){} +function Ffc(){} +function Jfc(){} +function Nfc(){} +function Pfc(){} +function Vfc(){} +function _fc(){} +function fgc(){} +function jgc(){} +function lgc(){} +function Bgc(){} +function ehc(){} +function ghc(){} +function ihc(){} +function khc(){} +function mhc(){} +function ohc(){} +function qhc(){} +function yhc(){} +function Ahc(){} +function Ghc(){} +function Ihc(){} +function Khc(){} +function Mhc(){} +function Shc(){} +function Uhc(){} +function Whc(){} +function dic(){} +function dlc(){} +function blc(){} +function flc(){} +function hlc(){} +function jlc(){} +function Glc(){} +function Ilc(){} +function Klc(){} +function Mlc(){} +function Mjc(){} +function Qjc(){} +function Qlc(){} +function Ulc(){} +function Ylc(){} +function Lkc(){} +function Nkc(){} +function Pkc(){} +function Rkc(){} +function Xkc(){} +function _kc(){} +function gmc(){} +function kmc(){} +function zmc(){} +function Fmc(){} +function Wmc(){} +function $mc(){} +function anc(){} +function mnc(){} +function wnc(){} +function Hnc(){} +function Jnc(){} +function Lnc(){} +function Nnc(){} +function Pnc(){} +function Ync(){} +function eoc(){} +function Aoc(){} +function Coc(){} +function Eoc(){} +function Joc(){} +function Loc(){} +function Zoc(){} +function _oc(){} +function bpc(){} +function hpc(){} +function kpc(){} +function ppc(){} +function pFc(){} +function Ryc(){} +function QCc(){} +function PDc(){} +function xGc(){} +function HGc(){} +function JGc(){} +function NGc(){} +function GIc(){} +function iKc(){} +function mKc(){} +function wKc(){} +function yKc(){} +function AKc(){} +function EKc(){} +function KKc(){} +function OKc(){} +function QKc(){} +function SKc(){} +function UKc(){} +function YKc(){} +function aLc(){} +function fLc(){} +function hLc(){} +function nLc(){} +function pLc(){} +function tLc(){} +function vLc(){} +function zLc(){} +function BLc(){} +function DLc(){} +function FLc(){} +function sMc(){} +function JMc(){} +function hNc(){} +function RNc(){} +function ZNc(){} +function _Nc(){} +function bOc(){} +function dOc(){} +function fOc(){} +function hOc(){} +function hRc(){} +function jRc(){} +function KRc(){} +function NRc(){} +function NQc(){} +function LQc(){} +function _Qc(){} +function cPc(){} +function iPc(){} +function kPc(){} +function mPc(){} +function xPc(){} +function zPc(){} +function zSc(){} +function BSc(){} +function GSc(){} +function ISc(){} +function NSc(){} +function TSc(){} +function NTc(){} +function NVc(){} +function oVc(){} +function SVc(){} +function VVc(){} +function XVc(){} +function ZVc(){} +function bWc(){} +function bXc(){} +function CXc(){} +function FXc(){} +function IXc(){} +function MXc(){} +function UXc(){} +function bYc(){} +function fYc(){} +function oYc(){} +function qYc(){} +function uYc(){} +function pZc(){} +function G$c(){} +function h0c(){} +function N0c(){} +function k1c(){} +function I1c(){} +function Q1c(){} +function f2c(){} +function i2c(){} +function k2c(){} +function w2c(){} +function O2c(){} +function S2c(){} +function Z2c(){} +function v3c(){} +function x3c(){} +function R3c(){} +function U3c(){} +function e4c(){} +function w4c(){} +function x4c(){} +function z4c(){} +function B4c(){} +function D4c(){} +function F4c(){} +function H4c(){} +function J4c(){} +function L4c(){} +function N4c(){} +function P4c(){} +function R4c(){} +function T4c(){} +function V4c(){} +function X4c(){} +function Z4c(){} +function _4c(){} +function _7c(){} +function b5c(){} +function d5c(){} +function f5c(){} +function h5c(){} +function H5c(){} +function Hfd(){} +function Zfd(){} +function Zed(){} +function ged(){} +function Jed(){} +function Ned(){} +function Red(){} +function Ved(){} +function bbd(){} +function mdd(){} +function _fd(){} +function fgd(){} +function kgd(){} +function Mgd(){} +function Ahd(){} +function Ald(){} +function Tld(){} +function xkd(){} +function rmd(){} +function knd(){} +function Jod(){} +function JCd(){} +function Bpd(){} +function BFd(){} +function oFd(){} +function bqd(){} +function bvd(){} +function jvd(){} +function yud(){} +function Hxd(){} +function EBd(){} +function aDd(){} +function MGd(){} +function vHd(){} +function RHd(){} +function wNd(){} +function zNd(){} +function CNd(){} +function KNd(){} +function XNd(){} +function $Nd(){} +function HPd(){} +function lUd(){} +function XUd(){} +function DWd(){} +function GWd(){} +function JWd(){} +function MWd(){} +function PWd(){} +function SWd(){} +function VWd(){} +function YWd(){} +function _Wd(){} +function xYd(){} +function BYd(){} +function mZd(){} +function EZd(){} +function GZd(){} +function JZd(){} +function MZd(){} +function PZd(){} +function SZd(){} +function VZd(){} +function YZd(){} +function _Zd(){} +function c$d(){} +function f$d(){} +function i$d(){} +function l$d(){} +function o$d(){} +function r$d(){} +function u$d(){} +function x$d(){} +function A$d(){} +function D$d(){} +function G$d(){} +function J$d(){} +function M$d(){} +function P$d(){} +function S$d(){} +function V$d(){} +function Y$d(){} +function _$d(){} +function c_d(){} +function f_d(){} +function i_d(){} +function l_d(){} +function o_d(){} +function r_d(){} +function u_d(){} +function x_d(){} +function A_d(){} +function D_d(){} +function G_d(){} +function J_d(){} +function M_d(){} +function P_d(){} +function S_d(){} +function V_d(){} +function Y_d(){} +function h5d(){} +function U6d(){} +function U9d(){} +function _8d(){} +function fae(){} +function hae(){} +function kae(){} +function nae(){} +function qae(){} +function tae(){} +function wae(){} +function zae(){} +function Cae(){} +function Fae(){} +function Iae(){} +function Lae(){} +function Oae(){} +function Rae(){} +function Uae(){} +function Xae(){} +function $ae(){} +function bbe(){} +function ebe(){} +function hbe(){} +function kbe(){} +function nbe(){} +function qbe(){} +function tbe(){} +function wbe(){} +function zbe(){} +function Cbe(){} +function Fbe(){} +function Ibe(){} +function Lbe(){} +function Obe(){} +function Rbe(){} +function Ube(){} +function Xbe(){} +function $be(){} +function bce(){} +function ece(){} +function hce(){} +function kce(){} +function nce(){} +function qce(){} +function tce(){} +function wce(){} +function zce(){} +function Cce(){} +function Fce(){} +function Ice(){} +function Lce(){} +function Oce(){} +function Rce(){} +function Uce(){} +function Xce(){} +function ude(){} +function Vge(){} +function dhe(){} +function s_b(a){} +function jSd(a){} +function ol(){wb()} +function oPb(){nPb()} +function EPb(){CPb()} +function gFb(){fFb()} +function TRb(){SRb()} +function ySb(){wSb()} +function PSb(){OSb()} +function dTb(){bTb()} +function i4b(){b4b()} +function D2b(){x2b()} +function J6b(){D6b()} +function u9b(){q9b()} +function $9b(){I9b()} +function Umc(){Imc()} +function abc(){Vac()} +function ZCc(){VCc()} +function kCc(){hCc()} +function rCc(){oCc()} +function Tcc(){Occ()} +function xkc(){gkc()} +function xDc(){rDc()} +function iDc(){cDc()} +function kwc(){jwc()} +function tJc(){jJc()} +function dJc(){aJc()} +function Pyc(){Nyc()} +function VBc(){SBc()} +function CFc(){yFc()} +function CUc(){wUc()} +function lUc(){fUc()} +function sUc(){pUc()} +function IUc(){GUc()} +function IWc(){HWc()} +function _Wc(){ZWc()} +function fHc(){dHc()} +function f0c(){d0c()} +function B0c(){A0c()} +function L0c(){J0c()} +function LTc(){JTc()} +function sTc(){rTc()} +function KLc(){ILc()} +function wNc(){tNc()} +function PYc(){OYc()} +function nZc(){lZc()} +function q3c(){p3c()} +function Z7c(){X7c()} +function Z9c(){Y9c()} +function _ad(){Zad()} +function kdd(){idd()} +function $md(){Smd()} +function HGd(){tGd()} +function hLd(){NKd()} +function J6d(){Uge()} +function Mvb(a){uCb(a)} +function Yb(a){this.a=a} +function cc(a){this.a=a} +function cj(a){this.a=a} +function ij(a){this.a=a} +function Dj(a){this.a=a} +function df(a){this.a=a} +function kf(a){this.a=a} +function ah(a){this.a=a} +function lh(a){this.a=a} +function th(a){this.a=a} +function Ph(a){this.a=a} +function vi(a){this.a=a} +function Ci(a){this.a=a} +function Fk(a){this.a=a} +function Ln(a){this.a=a} +function ap(a){this.a=a} +function zp(a){this.a=a} +function Yp(a){this.a=a} +function qq(a){this.a=a} +function Dq(a){this.a=a} +function wr(a){this.a=a} +function Ir(a){this.b=a} +function sj(a){this.c=a} +function sw(a){this.a=a} +function fw(a){this.a=a} +function xw(a){this.a=a} +function Cw(a){this.a=a} +function Qw(a){this.a=a} +function Rw(a){this.a=a} +function Xw(a){this.a=a} +function Xv(a){this.a=a} +function Sv(a){this.a=a} +function eu(a){this.a=a} +function Zx(a){this.a=a} +function _x(a){this.a=a} +function xy(a){this.a=a} +function xB(a){this.a=a} +function HB(a){this.a=a} +function TB(a){this.a=a} +function fC(a){this.a=a} +function wB(){this.a=[]} +function MBb(a,b){a.a=b} +function w_b(a,b){a.a=b} +function x_b(a,b){a.b=b} +function YOb(a,b){a.b=b} +function $Ob(a,b){a.b=b} +function ZGb(a,b){a.j=b} +function qNb(a,b){a.g=b} +function rNb(a,b){a.i=b} +function dRb(a,b){a.c=b} +function eRb(a,b){a.d=b} +function z_b(a,b){a.d=b} +function y_b(a,b){a.c=b} +function __b(a,b){a.k=b} +function E0b(a,b){a.c=b} +function njc(a,b){a.c=b} +function mjc(a,b){a.a=b} +function dFc(a,b){a.a=b} +function eFc(a,b){a.f=b} +function nOc(a,b){a.a=b} +function oOc(a,b){a.b=b} +function pOc(a,b){a.d=b} +function qOc(a,b){a.i=b} +function rOc(a,b){a.o=b} +function sOc(a,b){a.r=b} +function $Pc(a,b){a.a=b} +function _Pc(a,b){a.b=b} +function DVc(a,b){a.e=b} +function EVc(a,b){a.f=b} +function FVc(a,b){a.g=b} +function SZc(a,b){a.e=b} +function TZc(a,b){a.f=b} +function c$c(a,b){a.f=b} +function bJd(a,b){a.n=b} +function A1d(a,b){a.a=b} +function J1d(a,b){a.a=b} +function B1d(a,b){a.c=b} +function K1d(a,b){a.c=b} +function L1d(a,b){a.d=b} +function M1d(a,b){a.e=b} +function N1d(a,b){a.g=b} +function d2d(a,b){a.a=b} +function e2d(a,b){a.c=b} +function f2d(a,b){a.d=b} +function g2d(a,b){a.e=b} +function h2d(a,b){a.f=b} +function i2d(a,b){a.j=b} +function Z8d(a,b){a.a=b} +function $8d(a,b){a.b=b} +function g9d(a,b){a.a=b} +function Cic(a){a.b=a.a} +function Dg(a){a.c=a.d.d} +function vib(a){this.d=a} +function eib(a){this.a=a} +function Pib(a){this.a=a} +function Vib(a){this.a=a} +function $ib(a){this.a=a} +function mcb(a){this.a=a} +function Mcb(a){this.a=a} +function Xcb(a){this.a=a} +function Ndb(a){this.a=a} +function _db(a){this.a=a} +function teb(a){this.a=a} +function Qeb(a){this.a=a} +function djb(a){this.a=a} +function Gjb(a){this.a=a} +function Njb(a){this.a=a} +function Bjb(a){this.b=a} +function lnb(a){this.b=a} +function Dnb(a){this.b=a} +function anb(a){this.a=a} +function Mob(a){this.a=a} +function Rob(a){this.a=a} +function iob(a){this.c=a} +function olb(a){this.c=a} +function qub(a){this.c=a} +function Tub(a){this.a=a} +function Vub(a){this.a=a} +function Xub(a){this.a=a} +function Zub(a){this.a=a} +function tpb(a){this.a=a} +function _pb(a){this.a=a} +function Wqb(a){this.a=a} +function nsb(a){this.a=a} +function Rxb(a){this.a=a} +function Txb(a){this.a=a} +function Xxb(a){this.a=a} +function bzb(a){this.a=a} +function tzb(a){this.a=a} +function vzb(a){this.a=a} +function xzb(a){this.a=a} +function Kzb(a){this.a=a} +function Ozb(a){this.a=a} +function iAb(a){this.a=a} +function kAb(a){this.a=a} +function mAb(a){this.a=a} +function BAb(a){this.a=a} +function hBb(a){this.a=a} +function jBb(a){this.a=a} +function nBb(a){this.a=a} +function TBb(a){this.a=a} +function XBb(a){this.a=a} +function QCb(a){this.a=a} +function WCb(a){this.a=a} +function _Cb(a){this.a=a} +function dEb(a){this.a=a} +function QGb(a){this.a=a} +function YGb(a){this.a=a} +function tKb(a){this.a=a} +function CLb(a){this.a=a} +function JMb(a){this.a=a} +function RNb(a){this.a=a} +function kQb(a){this.a=a} +function mQb(a){this.a=a} +function FQb(a){this.a=a} +function ETb(a){this.a=a} +function UTb(a){this.a=a} +function dUb(a){this.a=a} +function hUb(a){this.a=a} +function EZb(a){this.a=a} +function j$b(a){this.a=a} +function v$b(a){this.e=a} +function J0b(a){this.a=a} +function M0b(a){this.a=a} +function R0b(a){this.a=a} +function U0b(a){this.a=a} +function i2b(a){this.a=a} +function k2b(a){this.a=a} +function o2b(a){this.a=a} +function s2b(a){this.a=a} +function G2b(a){this.a=a} +function I2b(a){this.a=a} +function K2b(a){this.a=a} +function M2b(a){this.a=a} +function W3b(a){this.a=a} +function $3b(a){this.a=a} +function V4b(a){this.a=a} +function u5b(a){this.a=a} +function A7b(a){this.a=a} +function G7b(a){this.a=a} +function J7b(a){this.a=a} +function M7b(a){this.a=a} +function Mbc(a){this.a=a} +function Pbc(a){this.a=a} +function lac(a){this.a=a} +function nac(a){this.a=a} +function qcc(a){this.a=a} +function Gdc(a){this.a=a} +function $dc(a){this.a=a} +function cec(a){this.a=a} +function _ec(a){this.a=a} +function pfc(a){this.a=a} +function Bfc(a){this.a=a} +function Lfc(a){this.a=a} +function ygc(a){this.a=a} +function Dgc(a){this.a=a} +function shc(a){this.a=a} +function uhc(a){this.a=a} +function whc(a){this.a=a} +function Chc(a){this.a=a} +function Ehc(a){this.a=a} +function Ohc(a){this.a=a} +function Yhc(a){this.a=a} +function Tkc(a){this.a=a} +function Vkc(a){this.a=a} +function Olc(a){this.a=a} +function pnc(a){this.a=a} +function rnc(a){this.a=a} +function dpc(a){this.a=a} +function fpc(a){this.a=a} +function GCc(a){this.a=a} +function KCc(a){this.a=a} +function mDc(a){this.a=a} +function jEc(a){this.a=a} +function HEc(a){this.a=a} +function FEc(a){this.c=a} +function qoc(a){this.b=a} +function bFc(a){this.a=a} +function GFc(a){this.a=a} +function iGc(a){this.a=a} +function kGc(a){this.a=a} +function mGc(a){this.a=a} +function $Gc(a){this.a=a} +function hIc(a){this.a=a} +function lIc(a){this.a=a} +function pIc(a){this.a=a} +function tIc(a){this.a=a} +function xIc(a){this.a=a} +function zIc(a){this.a=a} +function CIc(a){this.a=a} +function LIc(a){this.a=a} +function CKc(a){this.a=a} +function IKc(a){this.a=a} +function MKc(a){this.a=a} +function $Kc(a){this.a=a} +function cLc(a){this.a=a} +function jLc(a){this.a=a} +function rLc(a){this.a=a} +function xLc(a){this.a=a} +function OMc(a){this.a=a} +function ZOc(a){this.a=a} +function ZRc(a){this.a=a} +function aSc(a){this.a=a} +function I$c(a){this.a=a} +function K$c(a){this.a=a} +function M$c(a){this.a=a} +function O$c(a){this.a=a} +function U$c(a){this.a=a} +function n1c(a){this.a=a} +function z1c(a){this.a=a} +function B1c(a){this.a=a} +function Q2c(a){this.a=a} +function U2c(a){this.a=a} +function z3c(a){this.a=a} +function med(a){this.a=a} +function Xed(a){this.a=a} +function _ed(a){this.a=a} +function Qfd(a){this.a=a} +function Bgd(a){this.a=a} +function $gd(a){this.a=a} +function lrd(a){this.a=a} +function urd(a){this.a=a} +function vrd(a){this.a=a} +function wrd(a){this.a=a} +function xrd(a){this.a=a} +function yrd(a){this.a=a} +function zrd(a){this.a=a} +function Ard(a){this.a=a} +function Brd(a){this.a=a} +function Crd(a){this.a=a} +function Ird(a){this.a=a} +function Krd(a){this.a=a} +function Lrd(a){this.a=a} +function Mrd(a){this.a=a} +function Nrd(a){this.a=a} +function Prd(a){this.a=a} +function Srd(a){this.a=a} +function Yrd(a){this.a=a} +function Zrd(a){this.a=a} +function _rd(a){this.a=a} +function asd(a){this.a=a} +function bsd(a){this.a=a} +function csd(a){this.a=a} +function dsd(a){this.a=a} +function msd(a){this.a=a} +function osd(a){this.a=a} +function qsd(a){this.a=a} +function ssd(a){this.a=a} +function Wsd(a){this.a=a} +function Lsd(a){this.b=a} +function thd(a){this.f=a} +function qtd(a){this.a=a} +function yBd(a){this.a=a} +function GBd(a){this.a=a} +function MBd(a){this.a=a} +function SBd(a){this.a=a} +function iCd(a){this.a=a} +function YMd(a){this.a=a} +function GNd(a){this.a=a} +function EPd(a){this.a=a} +function EQd(a){this.a=a} +function NTd(a){this.a=a} +function qOd(a){this.b=a} +function lVd(a){this.c=a} +function VVd(a){this.e=a} +function iYd(a){this.a=a} +function RYd(a){this.a=a} +function ZYd(a){this.a=a} +function z0d(a){this.a=a} +function O0d(a){this.a=a} +function s0d(a){this.d=a} +function W5d(a){this.a=a} +function cge(a){this.a=a} +function xfe(a){this.e=a} +function Tfd(){this.a=0} +function jkb(){Vjb(this)} +function Rkb(){Ckb(this)} +function Lqb(){Uhb(this)} +function lEb(){kEb(this)} +function A_b(){s_b(this)} +function UQd(){this.c=FQd} +function v6d(a,b){b.Wb(a)} +function moc(a,b){a.b+=b} +function yXb(a){a.b=new Ji} +function vbb(a){return a.e} +function DB(a){return a.a} +function LB(a){return a.a} +function ZB(a){return a.a} +function lC(a){return a.a} +function EC(a){return a.a} +function wC(){return null} +function SB(){return null} +function hcb(){mvd();ovd()} +function zJb(a){a.b.tf(a.e)} +function j5b(a,b){a.b=b-a.b} +function g5b(a,b){a.a=b-a.a} +function PXc(a,b){b.ad(a.a)} +function plc(a,b){G0b(b,a)} +function hp(a,b,c){a.Od(c,b)} +function As(a,b){a.e=b;b.b=a} +function Zl(a){Ql();this.a=a} +function jq(a){Ql();this.a=a} +function sq(a){Ql();this.a=a} +function Fq(a){im();this.a=a} +function Sz(a){Rz();Qz.be(a)} +function gz(){Xy.call(this)} +function xcb(){Xy.call(this)} +function pcb(){gz.call(this)} +function tcb(){gz.call(this)} +function Bdb(){gz.call(this)} +function Vdb(){gz.call(this)} +function Ydb(){gz.call(this)} +function Geb(){gz.call(this)} +function bgb(){gz.call(this)} +function Apb(){gz.call(this)} +function Jpb(){gz.call(this)} +function utb(){gz.call(this)} +function x2c(){gz.call(this)} +function rQd(){this.a=this} +function MPd(){this.Bb|=256} +function tTb(){this.b=new mt} +function fA(){fA=ccb;new Lqb} +function rcb(){pcb.call(this)} +function dCb(a,b){a.length=b} +function Tvb(a,b){Ekb(a.a,b)} +function sKb(a,b){UHb(a.c,b)} +function SMc(a,b){Qqb(a.b,b)} +function vBd(a,b){uAd(a.a,b)} +function wBd(a,b){vAd(a.a,b)} +function GLd(a,b){Uhd(a.e,b)} +function d7d(a){D2d(a.c,a.b)} +function mj(a,b){a.kc().Nb(b)} +function Odb(a){this.a=Tdb(a)} +function Tqb(){this.a=new Lqb} +function gyb(){this.a=new Lqb} +function Wvb(){this.a=new Rkb} +function KFb(){this.a=new Rkb} +function PFb(){this.a=new Rkb} +function FFb(){this.a=new yFb} +function pGb(){this.a=new MFb} +function ZQb(){this.a=new MQb} +function Gxb(){this.a=new Pwb} +function jUb(){this.a=new PTb} +function sDb(){this.a=new oDb} +function zDb(){this.a=new tDb} +function CWb(){this.a=new Rkb} +function HXb(){this.a=new Rkb} +function nYb(){this.a=new Rkb} +function BYb(){this.a=new Rkb} +function fLb(){this.d=new Rkb} +function vYb(){this.a=new Tqb} +function a2b(){this.a=new Lqb} +function wZb(){this.b=new Lqb} +function TCc(){this.b=new Rkb} +function zJc(){this.e=new Rkb} +function uMc(){this.d=new Rkb} +function wdc(){this.a=new xkc} +function vKc(){Rkb.call(this)} +function twb(){Wvb.call(this)} +function oHb(){$Gb.call(this)} +function LXb(){HXb.call(this)} +function L_b(){H_b.call(this)} +function H_b(){A_b.call(this)} +function p0b(){A_b.call(this)} +function s0b(){p0b.call(this)} +function WMc(){VMc.call(this)} +function bNc(){VMc.call(this)} +function EPc(){CPc.call(this)} +function JPc(){CPc.call(this)} +function OPc(){CPc.call(this)} +function w1c(){s1c.call(this)} +function s7c(){Psb.call(this)} +function apd(){Ald.call(this)} +function ppd(){Ald.call(this)} +function lDd(){YCd.call(this)} +function NDd(){YCd.call(this)} +function mFd(){Lqb.call(this)} +function vFd(){Lqb.call(this)} +function GFd(){Lqb.call(this)} +function KPd(){Tqb.call(this)} +function OJd(){hJd.call(this)} +function aQd(){MPd.call(this)} +function SSd(){FId.call(this)} +function rUd(){FId.call(this)} +function oUd(){Lqb.call(this)} +function NYd(){Lqb.call(this)} +function cZd(){Lqb.call(this)} +function R8d(){MGd.call(this)} +function o9d(){MGd.call(this)} +function i9d(){R8d.call(this)} +function hee(){ude.call(this)} +function Dd(a){yd.call(this,a)} +function Hd(a){yd.call(this,a)} +function ph(a){lh.call(this,a)} +function Sh(a){Wc.call(this,a)} +function oi(a){Sh.call(this,a)} +function Ii(a){Wc.call(this,a)} +function Zdd(){this.a=new Psb} +function CPc(){this.a=new Tqb} +function s1c(){this.a=new Lqb} +function QSc(){this.a=new Rkb} +function D2c(){this.j=new Rkb} +function QXc(){this.a=new UXc} +function e_c(){this.a=new d_c} +function YCd(){this.a=new aDd} +function _k(){_k=ccb;$k=new al} +function Lk(){Lk=ccb;Kk=new Mk} +function wb(){wb=ccb;vb=new xb} +function hs(){hs=ccb;gs=new is} +function rs(a){Sh.call(this,a)} +function Gp(a){Sh.call(this,a)} +function xp(a){Lo.call(this,a)} +function Ep(a){Lo.call(this,a)} +function Tp(a){Wn.call(this,a)} +function wx(a){un.call(this,a)} +function ov(a){dv.call(this,a)} +function Mv(a){Br.call(this,a)} +function Ov(a){Br.call(this,a)} +function Lw(a){Br.call(this,a)} +function hz(a){Yy.call(this,a)} +function MB(a){hz.call(this,a)} +function eC(){fC.call(this,{})} +function Ftb(a){Atb();this.a=a} +function zwb(a){a.b=null;a.c=0} +function Vy(a,b){a.e=b;Sy(a,b)} +function LVb(a,b){a.a=b;NVb(a)} +function lIb(a,b,c){a.a[b.g]=c} +function vfd(a,b,c){Dfd(c,a,b)} +function Odc(a,b){rjc(b.i,a.n)} +function Wyc(a,b){Xyc(a).td(b)} +function ERb(a,b){return a*a/b} +function Xr(a,b){return a.g-b.g} +function tC(a){return new TB(a)} +function vC(a){return new yC(a)} +function ocb(a){hz.call(this,a)} +function qcb(a){hz.call(this,a)} +function ucb(a){hz.call(this,a)} +function vcb(a){Yy.call(this,a)} +function fGc(a){LFc();this.a=a} +function c0d(a){kzd();this.a=a} +function bhd(a){Rgd();this.f=a} +function dhd(a){Rgd();this.f=a} +function Cdb(a){hz.call(this,a)} +function Wdb(a){hz.call(this,a)} +function Zdb(a){hz.call(this,a)} +function Feb(a){hz.call(this,a)} +function Heb(a){hz.call(this,a)} +function Ccb(a){return uCb(a),a} +function Edb(a){return uCb(a),a} +function Gdb(a){return uCb(a),a} +function jfb(a){return uCb(a),a} +function tfb(a){return uCb(a),a} +function akb(a){return a.b==a.c} +function Hwb(a){return !!a&&a.b} +function pIb(a){return !!a&&a.k} +function qIb(a){return !!a&&a.j} +function amb(a){uCb(a);this.a=a} +function wVb(a){qVb(a);return a} +function Blb(a){Glb(a,a.length)} +function cgb(a){hz.call(this,a)} +function cqd(a){hz.call(this,a)} +function n8d(a){hz.call(this,a)} +function y2c(a){hz.call(this,a)} +function z2c(a){hz.call(this,a)} +function mde(a){hz.call(this,a)} +function pc(a){qc.call(this,a,0)} +function Ji(){Ki.call(this,12,3)} +function Kz(){Kz=ccb;Jz=new Nz} +function jz(){jz=ccb;iz=new nb} +function KA(){KA=ccb;JA=new MA} +function OB(){OB=ccb;NB=new PB} +function jc(){throw vbb(new bgb)} +function zh(){throw vbb(new bgb)} +function Pi(){throw vbb(new bgb)} +function Pj(){throw vbb(new bgb)} +function Qj(){throw vbb(new bgb)} +function Ym(){throw vbb(new bgb)} +function Gb(){this.a=GD(Qb(She))} +function oy(a){Ql();this.a=Qb(a)} +function Bs(a,b){a.Td(b);b.Sd(a)} +function iw(a,b){a.a.ec().Mc(b)} +function CYb(a,b,c){a.c.lf(b,c)} +function scb(a){qcb.call(this,a)} +function Oeb(a){Wdb.call(this,a)} +function Hfb(){mcb.call(this,'')} +function Ifb(){mcb.call(this,'')} +function Ufb(){mcb.call(this,'')} +function Vfb(){mcb.call(this,'')} +function Xfb(a){qcb.call(this,a)} +function zob(a){lnb.call(this,a)} +function Yob(a){Inb.call(this,a)} +function Gob(a){zob.call(this,a)} +function Mk(){Fk.call(this,null)} +function al(){Fk.call(this,null)} +function Az(){Az=ccb;!!(Rz(),Qz)} +function wrb(){wrb=ccb;vrb=yrb()} +function Mtb(a){return a.a?a.b:0} +function Vtb(a){return a.a?a.b:0} +function Lcb(a,b){return a.a-b.a} +function Wcb(a,b){return a.a-b.a} +function Peb(a,b){return a.a-b.a} +function eCb(a,b){return PC(a,b)} +function GC(a,b){return rdb(a,b)} +function _B(b,a){return a in b.a} +function _Db(a,b){a.f=b;return a} +function ZDb(a,b){a.b=b;return a} +function $Db(a,b){a.c=b;return a} +function aEb(a,b){a.g=b;return a} +function HGb(a,b){a.a=b;return a} +function IGb(a,b){a.f=b;return a} +function JGb(a,b){a.k=b;return a} +function dLb(a,b){a.a=b;return a} +function eLb(a,b){a.e=b;return a} +function zVb(a,b){a.e=b;return a} +function AVb(a,b){a.f=b;return a} +function KOb(a,b){a.b=true;a.d=b} +function DHb(a,b){a.b=new g7c(b)} +function uvb(a,b,c){b.td(a.a[c])} +function zvb(a,b,c){b.we(a.a[c])} +function wJc(a,b){return a.b-b.b} +function kOc(a,b){return a.g-b.g} +function WQc(a,b){return a.s-b.s} +function Lic(a,b){return a?0:b-1} +function SFc(a,b){return a?0:b-1} +function RFc(a,b){return a?b-1:0} +function M2c(a,b){return b.Yf(a)} +function M3c(a,b){a.b=b;return a} +function L3c(a,b){a.a=b;return a} +function N3c(a,b){a.c=b;return a} +function O3c(a,b){a.d=b;return a} +function P3c(a,b){a.e=b;return a} +function Q3c(a,b){a.f=b;return a} +function b4c(a,b){a.a=b;return a} +function c4c(a,b){a.b=b;return a} +function d4c(a,b){a.c=b;return a} +function z5c(a,b){a.c=b;return a} +function y5c(a,b){a.b=b;return a} +function A5c(a,b){a.d=b;return a} +function B5c(a,b){a.e=b;return a} +function C5c(a,b){a.f=b;return a} +function D5c(a,b){a.g=b;return a} +function E5c(a,b){a.a=b;return a} +function F5c(a,b){a.i=b;return a} +function G5c(a,b){a.j=b;return a} +function Vdd(a,b){a.k=b;return a} +function Wdd(a,b){a.j=b;return a} +function ykc(a,b){gkc();F0b(b,a)} +function T$c(a,b,c){R$c(a.a,b,c)} +function RGc(a){cEc.call(this,a)} +function iHc(a){cEc.call(this,a)} +function t7c(a){Qsb.call(this,a)} +function aPb(a){_Ob.call(this,a)} +function Ixd(a){zud.call(this,a)} +function dCd(a){ZBd.call(this,a)} +function fCd(a){ZBd.call(this,a)} +function p_b(){q_b.call(this,'')} +function d7c(){this.a=0;this.b=0} +function aPc(){this.b=0;this.a=0} +function NJd(a,b){a.b=0;DId(a,b)} +function X1d(a,b){a.c=b;a.b=true} +function Oc(a,b){return a.c._b(b)} +function gdb(a){return a.e&&a.e()} +function Vd(a){return !a?null:a.d} +function sn(a,b){return Gv(a.b,b)} +function Fv(a){return !a?null:a.g} +function Kv(a){return !a?null:a.i} +function hdb(a){fdb(a);return a.o} +function Fhd(){Fhd=ccb;Ehd=ond()} +function Hhd(){Hhd=ccb;Ghd=Cod()} +function LFd(){LFd=ccb;KFd=qZd()} +function p8d(){p8d=ccb;o8d=Y9d()} +function r8d(){r8d=ccb;q8d=dae()} +function mvd(){mvd=ccb;lvd=n4c()} +function Srb(){throw vbb(new bgb)} +function enb(){throw vbb(new bgb)} +function fnb(){throw vbb(new bgb)} +function gnb(){throw vbb(new bgb)} +function jnb(){throw vbb(new bgb)} +function Cnb(){throw vbb(new bgb)} +function Uqb(a){this.a=new Mqb(a)} +function tgb(a){lgb();ngb(this,a)} +function Hxb(a){this.a=new Qwb(a)} +function _ub(a,b){while(a.ye(b));} +function Sub(a,b){while(a.sd(b));} +function Bfb(a,b){a.a+=b;return a} +function Cfb(a,b){a.a+=b;return a} +function Ffb(a,b){a.a+=b;return a} +function Lfb(a,b){a.a+=b;return a} +function WAb(a){Tzb(a);return a.a} +function Wsb(a){return a.b!=a.d.c} +function pD(a){return a.l|a.m<<22} +function aIc(a,b){return a.d[b.p]} +function h2c(a,b){return c2c(a,b)} +function cCb(a,b,c){a.splice(b,c)} +function WHb(a){a.c?VHb(a):XHb(a)} +function jVc(a){this.a=0;this.b=a} +function ZUc(){this.a=new L2c(K$)} +function tRc(){this.b=new L2c(h$)} +function Q$c(){this.b=new L2c(J_)} +function d_c(){this.b=new L2c(J_)} +function OCd(){throw vbb(new bgb)} +function PCd(){throw vbb(new bgb)} +function QCd(){throw vbb(new bgb)} +function RCd(){throw vbb(new bgb)} +function SCd(){throw vbb(new bgb)} +function TCd(){throw vbb(new bgb)} +function UCd(){throw vbb(new bgb)} +function VCd(){throw vbb(new bgb)} +function WCd(){throw vbb(new bgb)} +function XCd(){throw vbb(new bgb)} +function ahe(){throw vbb(new utb)} +function bhe(){throw vbb(new utb)} +function Rge(a){this.a=new ege(a)} +function ege(a){dge(this,a,Vee())} +function Fhe(a){return !a||Ehe(a)} +function dde(a){return $ce[a]!=-1} +function Iz(){xz!=0&&(xz=0);zz=-1} +function Ybb(){Wbb==null&&(Wbb=[])} +function ONd(a,b){Rxd(ZKd(a.a),b)} +function TNd(a,b){Rxd(ZKd(a.a),b)} +function Yf(a,b){zf.call(this,a,b)} +function $f(a,b){Yf.call(this,a,b)} +function Hf(a,b){this.b=a;this.c=b} +function rk(a,b){this.b=a;this.a=b} +function ek(a,b){this.a=a;this.b=b} +function gk(a,b){this.a=a;this.b=b} +function pk(a,b){this.a=a;this.b=b} +function yk(a,b){this.a=a;this.b=b} +function Ak(a,b){this.a=a;this.b=b} +function Fj(a,b){this.a=a;this.b=b} +function _j(a,b){this.a=a;this.b=b} +function dr(a,b){this.a=a;this.b=b} +function zr(a,b){this.b=a;this.a=b} +function So(a,b){this.b=a;this.a=b} +function qp(a,b){this.b=a;this.a=b} +function $q(a,b){this.b=a;this.a=b} +function $r(a,b){this.f=a;this.g=b} +function ne(a,b){this.e=a;this.d=b} +function Wo(a,b){this.g=a;this.i=b} +function bu(a,b){this.a=a;this.b=b} +function qu(a,b){this.a=a;this.f=b} +function qv(a,b){this.b=a;this.c=b} +function ox(a,b){this.a=a;this.b=b} +function Px(a,b){this.a=a;this.b=b} +function mC(a,b){this.a=a;this.b=b} +function Wc(a){Lb(a.dc());this.c=a} +function rf(a){this.b=BD(Qb(a),83)} +function Zv(a){this.a=BD(Qb(a),83)} +function dv(a){this.a=BD(Qb(a),15)} +function $u(a){this.a=BD(Qb(a),15)} +function Br(a){this.b=BD(Qb(a),47)} +function eB(){this.q=new $wnd.Date} +function Zfb(){Zfb=ccb;Yfb=new jcb} +function Emb(){Emb=ccb;Dmb=new Fmb} +function Vhb(a){return a.f.c+a.g.c} +function hnb(a,b){return a.b.Hc(b)} +function inb(a,b){return a.b.Ic(b)} +function knb(a,b){return a.b.Qc(b)} +function Dob(a,b){return a.b.Hc(b)} +function dob(a,b){return a.c.uc(b)} +function Rqb(a,b){return a.a._b(b)} +function fob(a,b){return pb(a.c,b)} +function jt(a,b){return Mhb(a.b,b)} +function Lp(a,b){return a>b&&b<Iie} +function Ryb(a,b){return a.Gc(b),a} +function Syb(a,b){return ye(a,b),a} +function sC(a){return GB(),a?FB:EB} +function Mqb(a){Whb.call(this,a,0)} +function Pwb(){Qwb.call(this,null)} +function yAb(){Vzb.call(this,null)} +function Gqb(a){this.c=a;Dqb(this)} +function Psb(){Csb(this);Osb(this)} +function MAb(a,b){Tzb(a);a.a.Nb(b)} +function Myb(a,b){a.Gc(b);return a} +function qDb(a,b){a.a.f=b;return a} +function wDb(a,b){a.a.d=b;return a} +function xDb(a,b){a.a.g=b;return a} +function yDb(a,b){a.a.j=b;return a} +function BFb(a,b){a.a.a=b;return a} +function CFb(a,b){a.a.d=b;return a} +function DFb(a,b){a.a.e=b;return a} +function EFb(a,b){a.a.g=b;return a} +function oGb(a,b){a.a.f=b;return a} +function TGb(a){a.b=false;return a} +function Ltb(){Ltb=ccb;Ktb=new Otb} +function Utb(){Utb=ccb;Ttb=new Wtb} +function $xb(){$xb=ccb;Zxb=new byb} +function $Yb(){$Yb=ccb;ZYb=new dZb} +function cPb(){cPb=ccb;bPb=new dPb} +function EAb(){EAb=ccb;DAb=new PBb} +function a$b(){a$b=ccb;_Zb=new P$b} +function FDb(){FDb=ccb;EDb=new GDb} +function xUb(){xUb=ccb;wUb=new DUb} +function x2b(){x2b=ccb;w2b=new d7c} +function iVb(){iVb=ccb;hVb=new jVb} +function nVb(){nVb=ccb;mVb=new OVb} +function LWb(){LWb=ccb;KWb=new QWb} +function b4b(){b4b=ccb;a4b=new l4b} +function q9b(){q9b=ccb;p9b=new w9b} +function qgc(){qgc=ccb;pgc=new dic} +function Imc(){Imc=ccb;Hmc=new Wmc} +function GUc(){GUc=ccb;FUc=new j3c} +function i_c(){i_c=ccb;h_c=new k_c} +function s_c(){s_c=ccb;r_c=new t_c} +function R0c(){R0c=ccb;Q0c=new T0c} +function Vyc(){Vyc=ccb;Uyc=new Ved} +function DCc(){vCc();this.c=new Ji} +function k_c(){$r.call(this,Une,0)} +function r4c(a,b){Xrb(a.c.b,b.c,b)} +function s4c(a,b){Xrb(a.c.c,b.b,b)} +function B3c(a,b,c){Shb(a.d,b.f,c)} +function kKb(a,b,c,d){jKb(a,d,b,c)} +function E3b(a,b,c,d){J3b(d,a,b,c)} +function e9b(a,b,c,d){f9b(d,a,b,c)} +function g3c(a,b){a.a=b.g;return a} +function DQd(a,b){return qA(a.a,b)} +function nQd(a){return a.b?a.b:a.a} +function $Oc(a){return (a.c+a.a)/2} +function Pgd(){Pgd=ccb;Ogd=new Ahd} +function AFd(){AFd=ccb;zFd=new BFd} +function tFd(){tFd=ccb;sFd=new vFd} +function EFd(){EFd=ccb;DFd=new GFd} +function yFd(){yFd=ccb;xFd=new oUd} +function JFd(){JFd=ccb;IFd=new cZd} +function nRd(){nRd=ccb;mRd=new u4d} +function LRd(){LRd=ccb;KRd=new y4d} +function g5d(){g5d=ccb;f5d=new h5d} +function Q6d(){Q6d=ccb;P6d=new U6d} +function pEd(){pEd=ccb;oEd=new Lqb} +function tZd(){tZd=ccb;rZd=new Rkb} +function Xge(){Xge=ccb;Wge=new dhe} +function Hz(a){$wnd.clearTimeout(a)} +function jw(a){this.a=BD(Qb(a),224)} +function Lv(a){return BD(a,42).cd()} +function sib(a){return a.b<a.d.gc()} +function Lpb(a,b){return tqb(a.a,b)} +function Dbb(a,b){return ybb(a,b)>0} +function Gbb(a,b){return ybb(a,b)<0} +function Crb(a,b){return a.a.get(b)} +function icb(b,a){return a.split(b)} +function Vrb(a,b){return Mhb(a.e,b)} +function Nvb(a){return uCb(a),false} +function Rub(a){Kub.call(this,a,21)} +function wcb(a,b){Zy.call(this,a,b)} +function mxb(a,b){$r.call(this,a,b)} +function Gyb(a,b){$r.call(this,a,b)} +function zx(a){yx();Wn.call(this,a)} +function zlb(a,b){Dlb(a,a.length,b)} +function Alb(a,b){Flb(a,a.length,b)} +function ABb(a,b,c){b.ud(a.a.Ge(c))} +function uBb(a,b,c){b.we(a.a.Fe(c))} +function GBb(a,b,c){b.td(a.a.Kb(c))} +function Zq(a,b,c){a.Mb(c)&&b.td(c)} +function aCb(a,b,c){a.splice(b,0,c)} +function lDb(a,b){return uqb(a.e,b)} +function pjb(a,b){this.d=a;this.e=b} +function kqb(a,b){this.b=a;this.a=b} +function VBb(a,b){this.b=a;this.a=b} +function BEb(a,b){this.b=a;this.a=b} +function sBb(a,b){this.a=a;this.b=b} +function yBb(a,b){this.a=a;this.b=b} +function EBb(a,b){this.a=a;this.b=b} +function KBb(a,b){this.a=a;this.b=b} +function aDb(a,b){this.a=a;this.b=b} +function tMb(a,b){this.b=a;this.a=b} +function oOb(a,b){this.b=a;this.a=b} +function SOb(a,b){$r.call(this,a,b)} +function SMb(a,b){$r.call(this,a,b)} +function NEb(a,b){$r.call(this,a,b)} +function VEb(a,b){$r.call(this,a,b)} +function sFb(a,b){$r.call(this,a,b)} +function hHb(a,b){$r.call(this,a,b)} +function OHb(a,b){$r.call(this,a,b)} +function FIb(a,b){$r.call(this,a,b)} +function wLb(a,b){$r.call(this,a,b)} +function YRb(a,b){$r.call(this,a,b)} +function zTb(a,b){$r.call(this,a,b)} +function rUb(a,b){$r.call(this,a,b)} +function oWb(a,b){$r.call(this,a,b)} +function SXb(a,b){$r.call(this,a,b)} +function k0b(a,b){$r.call(this,a,b)} +function z5b(a,b){$r.call(this,a,b)} +function T8b(a,b){$r.call(this,a,b)} +function ibc(a,b){$r.call(this,a,b)} +function Cec(a,b){this.a=a;this.b=b} +function rfc(a,b){this.a=a;this.b=b} +function Rfc(a,b){this.a=a;this.b=b} +function Tfc(a,b){this.a=a;this.b=b} +function bgc(a,b){this.a=a;this.b=b} +function ngc(a,b){this.a=a;this.b=b} +function Qhc(a,b){this.a=a;this.b=b} +function $hc(a,b){this.a=a;this.b=b} +function Z0b(a,b){this.a=a;this.b=b} +function ZVb(a,b){this.b=a;this.a=b} +function Dfc(a,b){this.b=a;this.a=b} +function dgc(a,b){this.b=a;this.a=b} +function Bmc(a,b){this.b=a;this.a=b} +function cWb(a,b){this.c=a;this.d=b} +function I$b(a,b){this.e=a;this.d=b} +function Unc(a,b){this.a=a;this.b=b} +function Oic(a,b){this.b=b;this.c=a} +function Bjc(a,b){$r.call(this,a,b)} +function Yjc(a,b){$r.call(this,a,b)} +function Gkc(a,b){$r.call(this,a,b)} +function Bpc(a,b){$r.call(this,a,b)} +function Jpc(a,b){$r.call(this,a,b)} +function Tpc(a,b){$r.call(this,a,b)} +function cqc(a,b){$r.call(this,a,b)} +function oqc(a,b){$r.call(this,a,b)} +function yqc(a,b){$r.call(this,a,b)} +function Hqc(a,b){$r.call(this,a,b)} +function Uqc(a,b){$r.call(this,a,b)} +function arc(a,b){$r.call(this,a,b)} +function mrc(a,b){$r.call(this,a,b)} +function zrc(a,b){$r.call(this,a,b)} +function Prc(a,b){$r.call(this,a,b)} +function Yrc(a,b){$r.call(this,a,b)} +function fsc(a,b){$r.call(this,a,b)} +function nsc(a,b){$r.call(this,a,b)} +function nzc(a,b){$r.call(this,a,b)} +function zzc(a,b){$r.call(this,a,b)} +function Kzc(a,b){$r.call(this,a,b)} +function Xzc(a,b){$r.call(this,a,b)} +function Dtc(a,b){$r.call(this,a,b)} +function lAc(a,b){$r.call(this,a,b)} +function uAc(a,b){$r.call(this,a,b)} +function CAc(a,b){$r.call(this,a,b)} +function LAc(a,b){$r.call(this,a,b)} +function UAc(a,b){$r.call(this,a,b)} +function aBc(a,b){$r.call(this,a,b)} +function uBc(a,b){$r.call(this,a,b)} +function DBc(a,b){$r.call(this,a,b)} +function MBc(a,b){$r.call(this,a,b)} +function sGc(a,b){$r.call(this,a,b)} +function VIc(a,b){$r.call(this,a,b)} +function EIc(a,b){this.b=a;this.a=b} +function qKc(a,b){this.a=a;this.b=b} +function GKc(a,b){this.a=a;this.b=b} +function lLc(a,b){this.a=a;this.b=b} +function mMc(a,b){this.a=a;this.b=b} +function fMc(a,b){$r.call(this,a,b)} +function ZLc(a,b){$r.call(this,a,b)} +function ZMc(a,b){this.b=a;this.d=b} +function IOc(a,b){$r.call(this,a,b)} +function GQc(a,b){$r.call(this,a,b)} +function PQc(a,b){this.a=a;this.b=b} +function RQc(a,b){this.a=a;this.b=b} +function ARc(a,b){$r.call(this,a,b)} +function rSc(a,b){$r.call(this,a,b)} +function TTc(a,b){$r.call(this,a,b)} +function _Tc(a,b){$r.call(this,a,b)} +function RUc(a,b){$r.call(this,a,b)} +function uVc(a,b){$r.call(this,a,b)} +function hWc(a,b){$r.call(this,a,b)} +function rWc(a,b){$r.call(this,a,b)} +function kXc(a,b){$r.call(this,a,b)} +function uXc(a,b){$r.call(this,a,b)} +function AYc(a,b){$r.call(this,a,b)} +function l$c(a,b){$r.call(this,a,b)} +function Z$c(a,b){$r.call(this,a,b)} +function D_c(a,b){$r.call(this,a,b)} +function O_c(a,b){$r.call(this,a,b)} +function c1c(a,b){$r.call(this,a,b)} +function cVb(a,b){return uqb(a.c,b)} +function nnc(a,b){return uqb(b.b,a)} +function x1c(a,b){return -a.b.Je(b)} +function D3c(a,b){return uqb(a.g,b)} +function O5c(a,b){$r.call(this,a,b)} +function a6c(a,b){$r.call(this,a,b)} +function m2c(a,b){this.a=a;this.b=b} +function W2c(a,b){this.a=a;this.b=b} +function f7c(a,b){this.a=a;this.b=b} +function G7c(a,b){$r.call(this,a,b)} +function j8c(a,b){$r.call(this,a,b)} +function iad(a,b){$r.call(this,a,b)} +function rad(a,b){$r.call(this,a,b)} +function Bad(a,b){$r.call(this,a,b)} +function Nad(a,b){$r.call(this,a,b)} +function ibd(a,b){$r.call(this,a,b)} +function tbd(a,b){$r.call(this,a,b)} +function Ibd(a,b){$r.call(this,a,b)} +function Ubd(a,b){$r.call(this,a,b)} +function gcd(a,b){$r.call(this,a,b)} +function scd(a,b){$r.call(this,a,b)} +function Ycd(a,b){$r.call(this,a,b)} +function udd(a,b){$r.call(this,a,b)} +function Jdd(a,b){$r.call(this,a,b)} +function Eed(a,b){$r.call(this,a,b)} +function bfd(a,b){this.a=a;this.b=b} +function dfd(a,b){this.a=a;this.b=b} +function ffd(a,b){this.a=a;this.b=b} +function Kfd(a,b){this.a=a;this.b=b} +function Mfd(a,b){this.a=a;this.b=b} +function Ofd(a,b){this.a=a;this.b=b} +function vgd(a,b){this.a=a;this.b=b} +function qgd(a,b){$r.call(this,a,b)} +function jrd(a,b){this.a=a;this.b=b} +function krd(a,b){this.a=a;this.b=b} +function mrd(a,b){this.a=a;this.b=b} +function nrd(a,b){this.a=a;this.b=b} +function qrd(a,b){this.a=a;this.b=b} +function rrd(a,b){this.a=a;this.b=b} +function srd(a,b){this.b=a;this.a=b} +function trd(a,b){this.b=a;this.a=b} +function Drd(a,b){this.b=a;this.a=b} +function Frd(a,b){this.b=a;this.a=b} +function Hrd(a,b){this.a=a;this.b=b} +function Jrd(a,b){this.a=a;this.b=b} +function Ord(a,b){Xqd(a.a,BD(b,56))} +function BIc(a,b){gIc(a.a,BD(b,11))} +function fIc(a,b){FHc();return b!=a} +function Arb(){wrb();return new vrb} +function CMc(){wMc();this.b=new Tqb} +function NNc(){FNc();this.a=new Tqb} +function eCc(){ZBc();aCc.call(this)} +function Dsd(a,b){$r.call(this,a,b)} +function Urd(a,b){this.a=a;this.b=b} +function Wrd(a,b){this.a=a;this.b=b} +function kGd(a,b){this.a=a;this.b=b} +function nGd(a,b){this.a=a;this.b=b} +function bUd(a,b){this.a=a;this.b=b} +function zVd(a,b){this.a=a;this.b=b} +function C1d(a,b){this.d=a;this.b=b} +function MLd(a,b){this.d=a;this.e=b} +function Wud(a,b){this.f=a;this.c=b} +function f7d(a,b){this.b=a;this.c=b} +function _zd(a,b){this.i=a;this.g=b} +function Y1d(a,b){this.e=a;this.a=b} +function c8d(a,b){this.a=a;this.b=b} +function $Id(a,b){a.i=null;_Id(a,b)} +function ivd(a,b){!!a&&Rhb(cvd,a,b)} +function hCd(a,b){return qAd(a.a,b)} +function e7d(a){return R2d(a.c,a.b)} +function Wd(a){return !a?null:a.dd()} +function PD(a){return a==null?null:a} +function KD(a){return typeof a===Khe} +function LD(a){return typeof a===Lhe} +function ND(a){return typeof a===Mhe} +function Em(a,b){return a.Hd().Xb(b)} +function Kq(a,b){return hr(a.Kc(),b)} +function Bbb(a,b){return ybb(a,b)==0} +function Ebb(a,b){return ybb(a,b)>=0} +function Kbb(a,b){return ybb(a,b)!=0} +function Jdb(a){return ''+(uCb(a),a)} +function pfb(a,b){return a.substr(b)} +function cg(a){ag(a);return a.d.gc()} +function oVb(a){pVb(a,a.c);return a} +function RD(a){CCb(a==null);return a} +function Dfb(a,b){a.a+=''+b;return a} +function Efb(a,b){a.a+=''+b;return a} +function Nfb(a,b){a.a+=''+b;return a} +function Pfb(a,b){a.a+=''+b;return a} +function Qfb(a,b){a.a+=''+b;return a} +function Mfb(a,b){return a.a+=''+b,a} +function Esb(a,b){Gsb(a,b,a.a,a.a.a)} +function Fsb(a,b){Gsb(a,b,a.c.b,a.c)} +function Mqd(a,b,c){Rpd(b,kqd(a,c))} +function Nqd(a,b,c){Rpd(b,kqd(a,c))} +function Dhe(a,b){Hhe(new Fyd(a),b)} +function cB(a,b){a.q.setTime(Sbb(b))} +function fvb(a,b){bvb.call(this,a,b)} +function jvb(a,b){bvb.call(this,a,b)} +function nvb(a,b){bvb.call(this,a,b)} +function Nqb(a){Uhb(this);Ld(this,a)} +function wmb(a){tCb(a,0);return null} +function X6c(a){a.a=0;a.b=0;return a} +function f3c(a,b){a.a=b.g+1;return a} +function PJc(a,b){return a.j[b.p]==2} +function _Pb(a){return VPb(BD(a,79))} +function yJb(){yJb=ccb;xJb=as(wJb())} +function Y8b(){Y8b=ccb;X8b=as(W8b())} +function mt(){this.b=new Mqb(Cv(12))} +function Otb(){this.b=0;this.a=false} +function Wtb(){this.b=0;this.a=false} +function sl(a){this.a=a;ol.call(this)} +function vl(a){this.a=a;ol.call(this)} +function Nsd(a,b){Msd.call(this,a,b)} +function $zd(a,b){Cyd.call(this,a,b)} +function nNd(a,b){_zd.call(this,a,b)} +function s4d(a,b){p4d.call(this,a,b)} +function w4d(a,b){qRd.call(this,a,b)} +function rEd(a,b){pEd();Rhb(oEd,a,b)} +function lcb(a,b){return qfb(a.a,0,b)} +function ww(a,b){return a.a.a.a.cc(b)} +function mb(a,b){return PD(a)===PD(b)} +function Mdb(a,b){return Kdb(a.a,b.a)} +function $db(a,b){return beb(a.a,b.a)} +function seb(a,b){return ueb(a.a,b.a)} +function hfb(a,b){return a.indexOf(b)} +function Ny(a,b){return a==b?0:a?1:-1} +function kB(a){return a<10?'0'+a:''+a} +function Mq(a){return Qb(a),new sl(a)} +function SC(a){return TC(a.l,a.m,a.h)} +function Hdb(a){return QD((uCb(a),a))} +function Idb(a){return QD((uCb(a),a))} +function NIb(a,b){return beb(a.g,b.g)} +function Fbb(a){return typeof a===Lhe} +function mWb(a){return a==hWb||a==kWb} +function nWb(a){return a==hWb||a==iWb} +function G1b(a){return Jkb(a.b.b,a,0)} +function lrb(a){this.a=Arb();this.b=a} +function Frb(a){this.a=Arb();this.b=a} +function swb(a,b){Ekb(a.a,b);return b} +function Z1c(a,b){Ekb(a.c,b);return a} +function E2c(a,b){d3c(a.a,b);return a} +function _gc(a,b){Hgc();return b.a+=a} +function bhc(a,b){Hgc();return b.a+=a} +function ahc(a,b){Hgc();return b.c+=a} +function Nlb(a,b){Klb(a,0,a.length,b)} +function zsb(){Wqb.call(this,new $rb)} +function I_b(){B_b.call(this,0,0,0,0)} +function I6c(){J6c.call(this,0,0,0,0)} +function g7c(a){this.a=a.a;this.b=a.b} +function fad(a){return a==aad||a==bad} +function gad(a){return a==dad||a==_9c} +function Jzc(a){return a==Fzc||a==Ezc} +function fcd(a){return a!=bcd&&a!=ccd} +function oid(a){return a.Lg()&&a.Mg()} +function Gfd(a){return Kkd(BD(a,118))} +function k3c(a){return d3c(new j3c,a)} +function y2d(a,b){return new p4d(b,a)} +function z2d(a,b){return new p4d(b,a)} +function ukd(a,b,c){vkd(a,b);wkd(a,c)} +function _kd(a,b,c){cld(a,b);ald(a,c)} +function bld(a,b,c){dld(a,b);eld(a,c)} +function gmd(a,b,c){hmd(a,b);imd(a,c)} +function nmd(a,b,c){omd(a,b);pmd(a,c)} +function iKd(a,b){$Jd(a,b);_Jd(a,a.D)} +function _ud(a){Wud.call(this,a,true)} +function Xg(a,b,c){Vg.call(this,a,b,c)} +function Ygb(a){Hgb();Zgb.call(this,a)} +function rxb(){mxb.call(this,'Head',1)} +function wxb(){mxb.call(this,'Tail',3)} +function Ckb(a){a.c=KC(SI,Uhe,1,0,5,1)} +function Vjb(a){a.a=KC(SI,Uhe,1,8,5,1)} +function MGb(a){Hkb(a.xf(),new QGb(a))} +function xtb(a){return a!=null?tb(a):0} +function b2b(a,b){return ntd(b,mpd(a))} +function c2b(a,b){return ntd(b,mpd(a))} +function dAb(a,b){return a[a.length]=b} +function gAb(a,b){return a[a.length]=b} +function Vq(a){return lr(a.b.Kc(),a.a)} +function dqd(a,b){return _o(qo(a.d),b)} +function eqd(a,b){return _o(qo(a.g),b)} +function fqd(a,b){return _o(qo(a.j),b)} +function Osd(a,b){Msd.call(this,a.b,b)} +function q0b(a){B_b.call(this,a,a,a,a)} +function HOb(a){a.b&&LOb(a);return a.a} +function IOb(a){a.b&&LOb(a);return a.c} +function uyb(a,b){if(lyb){return}a.b=b} +function lzd(a,b,c){NC(a,b,c);return c} +function mBc(a,b,c){NC(a.c[b.g],b.g,c)} +function _Hd(a,b,c){BD(a.c,69).Xh(b,c)} +function wfd(a,b,c){bld(c,c.i+a,c.j+b)} +function UOd(a,b){wtd(VKd(a.a),XOd(b))} +function bTd(a,b){wtd(QSd(a.a),eTd(b))} +function Lge(a){wfe();xfe.call(this,a)} +function CAd(a){return a==null?0:tb(a)} +function fNc(){fNc=ccb;eNc=new Rpb(v1)} +function h0d(){h0d=ccb;new i0d;new Rkb} +function i0d(){new Lqb;new Lqb;new Lqb} +function GA(){GA=ccb;fA();FA=new Lqb} +function Iy(){Iy=ccb;$wnd.Math.log(2)} +function UVd(){UVd=ccb;TVd=(AFd(),zFd)} +function _ge(){throw vbb(new cgb(Cxe))} +function ohe(){throw vbb(new cgb(Cxe))} +function che(){throw vbb(new cgb(Dxe))} +function rhe(){throw vbb(new cgb(Dxe))} +function Mg(a){this.a=a;Gg.call(this,a)} +function up(a){this.a=a;rf.call(this,a)} +function Bp(a){this.a=a;rf.call(this,a)} +function Okb(a,b){Mlb(a.c,a.c.length,b)} +function llb(a){return a.a<a.c.c.length} +function Eqb(a){return a.a<a.c.a.length} +function Ntb(a,b){return a.a?a.b:b.De()} +function beb(a,b){return a<b?-1:a>b?1:0} +function Deb(a,b){return ybb(a,b)>0?a:b} +function TC(a,b,c){return {l:a,m:b,h:c}} +function Ctb(a,b){a.a!=null&&BIc(b,a.a)} +function Csb(a){a.a=new jtb;a.c=new jtb} +function hDb(a){this.b=a;this.a=new Rkb} +function dOb(a){this.b=new pOb;this.a=a} +function q_b(a){n_b.call(this);this.a=a} +function txb(){mxb.call(this,'Range',2)} +function bUb(){ZTb();this.a=new L2c(zP)} +function Bh(a,b){Qb(b);Ah(a).Jc(new Vw)} +function fKc(a,b){FJc();return b.n.b+=a} +function Tgc(a,b,c){return Rhb(a.g,c,b)} +function LJc(a,b,c){return Rhb(a.k,c,b)} +function r1c(a,b){return Rhb(a.a,b.a,b)} +function jBc(a,b,c){return hBc(b,c,a.c)} +function E6c(a){return new f7c(a.c,a.d)} +function F6c(a){return new f7c(a.c,a.d)} +function R6c(a){return new f7c(a.a,a.b)} +function CQd(a,b){return hA(a.a,b,null)} +function fec(a){QZb(a,null);RZb(a,null)} +function AOc(a){BOc(a,null);COc(a,null)} +function u4d(){qRd.call(this,null,null)} +function y4d(){RRd.call(this,null,null)} +function a7d(a){this.a=a;Lqb.call(this)} +function Pp(a){this.b=(mmb(),new iob(a))} +function Py(a){a.j=KC(VI,nie,310,0,0,1)} +function oAd(a,b,c){a.c.Vc(b,BD(c,133))} +function GAd(a,b,c){a.c.ji(b,BD(c,133))} +function JLd(a,b){Uxd(a);a.Gc(BD(b,15))} +function b7d(a,b){return t2d(a.c,a.b,b)} +function Bv(a,b){return new Qv(a.Kc(),b)} +function Lq(a,b){return rr(a.Kc(),b)!=-1} +function Sqb(a,b){return a.a.Bc(b)!=null} +function pr(a){return a.Ob()?a.Pb():null} +function yfb(a){return zfb(a,0,a.length)} +function JD(a,b){return a!=null&&AD(a,b)} +function $A(a,b){a.q.setHours(b);YA(a,b)} +function Yrb(a,b){if(a.c){jsb(b);isb(b)}} +function nk(a,b,c){BD(a.Kb(c),164).Nb(b)} +function RJc(a,b,c){SJc(a,b,c);return c} +function Eub(a,b,c){a.a=b^1502;a.b=c^kke} +function xHb(a,b,c){return a.a[b.g][c.g]} +function REc(a,b){return a.a[b.c.p][b.p]} +function aEc(a,b){return a.e[b.c.p][b.p]} +function tEc(a,b){return a.c[b.c.p][b.p]} +function OJc(a,b){return a.j[b.p]=aKc(b)} +function k5c(a,b){return cfb(a.f,b.tg())} +function Isd(a,b){return cfb(a.b,b.tg())} +function Sfd(a,b){return a.a<Kcb(b)?-1:1} +function ZDc(a,b,c){return c?b!=0:b!=a-1} +function _6c(a,b,c){a.a=b;a.b=c;return a} +function Y6c(a,b){a.a*=b;a.b*=b;return a} +function mud(a,b,c){NC(a.g,b,c);return c} +function CHb(a,b,c,d){NC(a.a[b.g],c.g,d)} +function EQb(a,b){O6c(b,a.a.a.a,a.a.a.b)} +function Ozd(a){a.a=BD(Ajd(a.b.a,4),126)} +function Wzd(a){a.a=BD(Ajd(a.b.a,4),126)} +function otd(a){ytb(a,hue);Rld(a,gtd(a))} +function Atb(){Atb=ccb;ztb=new Ftb(null)} +function Ivb(){Ivb=ccb;Ivb();Hvb=new Ovb} +function FId(){this.Bb|=256;this.Bb|=512} +function Fyd(a){this.i=a;this.f=this.i.j} +function xMd(a,b,c){pMd.call(this,a,b,c)} +function BMd(a,b,c){xMd.call(this,a,b,c)} +function K4d(a,b,c){xMd.call(this,a,b,c)} +function N4d(a,b,c){BMd.call(this,a,b,c)} +function X4d(a,b,c){pMd.call(this,a,b,c)} +function _4d(a,b,c){pMd.call(this,a,b,c)} +function C4d(a,b,c){k2d.call(this,a,b,c)} +function G4d(a,b,c){k2d.call(this,a,b,c)} +function I4d(a,b,c){C4d.call(this,a,b,c)} +function c5d(a,b,c){X4d.call(this,a,b,c)} +function zf(a,b){this.a=a;rf.call(this,b)} +function aj(a,b){this.a=a;pc.call(this,b)} +function kj(a,b){this.a=a;pc.call(this,b)} +function Jj(a,b){this.a=a;pc.call(this,b)} +function Rj(a){this.a=a;sj.call(this,a.d)} +function she(a){this.c=a;this.a=this.c.a} +function xl(a,b){this.a=b;pc.call(this,a)} +function Qo(a,b){this.a=b;Lo.call(this,a)} +function op(a,b){this.a=a;Lo.call(this,b)} +function rj(a,b){return Rl(Xm(a.c)).Xb(b)} +function Eb(a,b){return Db(a,new Ufb,b).a} +function ur(a,b){Qb(b);return new Gr(a,b)} +function Gr(a,b){this.a=b;Br.call(this,a)} +function Hs(a){this.b=a;this.a=this.b.a.e} +function Eg(a){a.b.Qb();--a.d.f.d;bg(a.d)} +function Uk(a){Fk.call(this,BD(Qb(a),35))} +function il(a){Fk.call(this,BD(Qb(a),35))} +function is(){$r.call(this,'INSTANCE',0)} +function Lb(a){if(!a){throw vbb(new Vdb)}} +function Ub(a){if(!a){throw vbb(new Ydb)}} +function ot(a){if(!a){throw vbb(new utb)}} +function I6d(){I6d=ccb;g5d();H6d=new J6d} +function Bcb(){Bcb=ccb;zcb=false;Acb=true} +function Jfb(a){mcb.call(this,(uCb(a),a))} +function Wfb(a){mcb.call(this,(uCb(a),a))} +function Inb(a){lnb.call(this,a);this.a=a} +function Xnb(a){Dnb.call(this,a);this.a=a} +function Zob(a){zob.call(this,a);this.a=a} +function Xy(){Py(this);Ry(this);this._d()} +function Qv(a,b){this.a=b;Br.call(this,a)} +function au(a,b){return new xu(a.a,a.b,b)} +function kfb(a,b){return a.lastIndexOf(b)} +function ifb(a,b,c){return a.indexOf(b,c)} +function xfb(a){return a==null?Xhe:fcb(a)} +function nz(a){return a==null?null:a.name} +function Etb(a){return a.a!=null?a.a:null} +function or(a){return Wsb(a.a)?nr(a):null} +function Fxb(a,b){return Jwb(a.a,b)!=null} +function uqb(a,b){return !!b&&a.b[b.g]==b} +function FCb(a){return a.$H||(a.$H=++ECb)} +function aD(a){return a.l+a.m*Hje+a.h*Ije} +function pDb(a,b){Ekb(b.a,a.a);return a.a} +function vDb(a,b){Ekb(b.b,a.a);return a.a} +function nGb(a,b){Ekb(b.a,a.a);return a.a} +function Btb(a){sCb(a.a!=null);return a.a} +function Asb(a){Wqb.call(this,new _rb(a))} +function GUb(a,b){HUb.call(this,a,b,null)} +function cxb(a){this.a=a;Bjb.call(this,a)} +function CKb(){CKb=ccb;BKb=new Msd(tle,0)} +function NFb(a,b){++a.b;return Ekb(a.a,b)} +function OFb(a,b){++a.b;return Lkb(a.a,b)} +function n6b(a,b){return Kdb(a.n.a,b.n.a)} +function WKb(a,b){return Kdb(a.c.d,b.c.d)} +function gLb(a,b){return Kdb(a.c.c,b.c.c)} +function zXb(a,b){return BD(Qc(a.b,b),15)} +function s7b(a,b){return a.n.b=(uCb(b),b)} +function t7b(a,b){return a.n.b=(uCb(b),b)} +function a1b(a){return llb(a.a)||llb(a.b)} +function fBc(a,b,c){return gBc(a,b,c,a.b)} +function iBc(a,b,c){return gBc(a,b,c,a.c)} +function i3c(a,b,c){BD(B2c(a,b),21).Fc(c)} +function xBd(a,b,c){vAd(a.a,c);uAd(a.a,b)} +function qRd(a,b){nRd();this.a=a;this.b=b} +function RRd(a,b){LRd();this.b=a;this.c=b} +function hhd(a,b){Rgd();this.f=b;this.d=a} +function qc(a,b){Sb(b,a);this.d=a;this.c=b} +function n5b(a){var b;b=a.a;a.a=a.b;a.b=b} +function chc(a){Hgc();return !!a&&!a.dc()} +function Afe(a){++vfe;return new lge(3,a)} +function jm(a,b){return new Vp(a,a.gc(),b)} +function ns(a){hs();return es((qs(),ps),a)} +function Oyd(a){this.d=a;Fyd.call(this,a)} +function $yd(a){this.c=a;Fyd.call(this,a)} +function bzd(a){this.c=a;Oyd.call(this,a)} +function sgc(){qgc();this.b=new ygc(this)} +function Pu(a){Xj(a,Jie);return new Skb(a)} +function Vz(a){Rz();return parseInt(a)||-1} +function qfb(a,b,c){return a.substr(b,c-b)} +function gfb(a,b,c){return ifb(a,wfb(b),c)} +function Pkb(a){return ZBb(a.c,a.c.length)} +function Yr(a){return a.f!=null?a.f:''+a.g} +function Zr(a){return a.f!=null?a.f:''+a.g} +function Hsb(a){sCb(a.b!=0);return a.a.a.c} +function Isb(a){sCb(a.b!=0);return a.c.b.c} +function Cmd(a){JD(a,150)&&BD(a,150).Gh()} +function Wwb(a){return a.b=BD(tib(a.a),42)} +function Ptb(a){Ltb();this.b=a;this.a=true} +function Xtb(a){Utb();this.b=a;this.a=true} +function Trb(a){a.d=new ksb(a);a.e=new Lqb} +function mkb(a){if(!a){throw vbb(new Apb)}} +function lCb(a){if(!a){throw vbb(new Vdb)}} +function yCb(a){if(!a){throw vbb(new Ydb)}} +function qCb(a){if(!a){throw vbb(new tcb)}} +function sCb(a){if(!a){throw vbb(new utb)}} +function ksb(a){lsb.call(this,a,null,null)} +function dPb(){$r.call(this,'POLYOMINO',0)} +function Cg(a,b,c,d){qg.call(this,a,b,c,d)} +function zkc(a,b){gkc();return Rc(a,b.e,b)} +function azc(a,b,c){Vyc();return c.qg(a,b)} +function wNb(a,b){return !!a.q&&Mhb(a.q,b)} +function JRb(a,b){return a>0?b*b/a:b*b*100} +function CRb(a,b){return a>0?b/(a*a):b*100} +function G2c(a,b,c){return Ekb(b,I2c(a,c))} +function t3c(a,b,c){p3c();a.Xe(b)&&c.td(a)} +function St(a,b,c){var d;d=a.Zc(b);d.Rb(c)} +function O6c(a,b,c){a.a+=b;a.b+=c;return a} +function Z6c(a,b,c){a.a*=b;a.b*=c;return a} +function b7c(a,b,c){a.a-=b;a.b-=c;return a} +function a7c(a,b){a.a=b.a;a.b=b.b;return a} +function V6c(a){a.a=-a.a;a.b=-a.b;return a} +function Dic(a){this.c=a;this.a=1;this.b=1} +function xed(a){this.c=a;dld(a,0);eld(a,0)} +function u7c(a){Psb.call(this);n7c(this,a)} +function AXb(a){xXb();yXb(this);this.mf(a)} +function GRd(a,b){nRd();qRd.call(this,a,b)} +function dSd(a,b){LRd();RRd.call(this,a,b)} +function hSd(a,b){LRd();RRd.call(this,a,b)} +function fSd(a,b){LRd();dSd.call(this,a,b)} +function sId(a,b,c){dId.call(this,a,b,c,2)} +function zXd(a,b){UVd();nXd.call(this,a,b)} +function BXd(a,b){UVd();zXd.call(this,a,b)} +function DXd(a,b){UVd();zXd.call(this,a,b)} +function FXd(a,b){UVd();DXd.call(this,a,b)} +function PXd(a,b){UVd();nXd.call(this,a,b)} +function RXd(a,b){UVd();PXd.call(this,a,b)} +function XXd(a,b){UVd();nXd.call(this,a,b)} +function pAd(a,b){return a.c.Fc(BD(b,133))} +function w1d(a,b,c){return V1d(p1d(a,b),c)} +function N2d(a,b,c){return b.Qk(a.e,a.c,c)} +function P2d(a,b,c){return b.Rk(a.e,a.c,c)} +function a3d(a,b){return xid(a.e,BD(b,49))} +function aTd(a,b,c){vtd(QSd(a.a),b,eTd(c))} +function TOd(a,b,c){vtd(VKd(a.a),b,XOd(c))} +function ypb(a,b){b.$modCount=a.$modCount} +function MUc(){MUc=ccb;LUc=new Lsd('root')} +function LCd(){LCd=ccb;KCd=new lDd;new NDd} +function KVc(){this.a=new Hp;this.b=new Hp} +function FUd(){hJd.call(this);this.Bb|=Tje} +function t_c(){$r.call(this,'GROW_TREE',0)} +function C9d(a){return a==null?null:cde(a)} +function G9d(a){return a==null?null:jde(a)} +function J9d(a){return a==null?null:fcb(a)} +function K9d(a){return a==null?null:fcb(a)} +function fdb(a){if(a.o!=null){return}vdb(a)} +function DD(a){CCb(a==null||KD(a));return a} +function ED(a){CCb(a==null||LD(a));return a} +function GD(a){CCb(a==null||ND(a));return a} +function gB(a){this.q=new $wnd.Date(Sbb(a))} +function Mf(a,b){this.c=a;ne.call(this,a,b)} +function Sf(a,b){this.a=a;Mf.call(this,a,b)} +function Hg(a,b){this.d=a;Dg(this);this.b=b} +function bAb(a,b){Vzb.call(this,a);this.a=b} +function vAb(a,b){Vzb.call(this,a);this.a=b} +function sNb(a){pNb.call(this,0,0);this.f=a} +function Vg(a,b,c){dg.call(this,a,b,c,null)} +function Yg(a,b,c){dg.call(this,a,b,c,null)} +function Pxb(a,b,c){return a.ue(b,c)<=0?c:b} +function Qxb(a,b,c){return a.ue(b,c)<=0?b:c} +function g4c(a,b){return BD(Wrb(a.b,b),149)} +function i4c(a,b){return BD(Wrb(a.c,b),229)} +function wic(a){return BD(Ikb(a.a,a.b),287)} +function B6c(a){return new f7c(a.c,a.d+a.a)} +function eLc(a){return FJc(),Jzc(BD(a,197))} +function $Jb(){$Jb=ccb;ZJb=pqb((tdd(),sdd))} +function fOb(a,b){b.a?gOb(a,b):Fxb(a.a,b.b)} +function qyb(a,b){if(lyb){return}Ekb(a.a,b)} +function F2b(a,b){x2b();return f_b(b.d.i,a)} +function _9b(a,b){I9b();return new gac(b,a)} +function _Hb(a,b){ytb(b,lle);a.f=b;return a} +function Kld(a,b,c){c=_hd(a,b,3,c);return c} +function bmd(a,b,c){c=_hd(a,b,6,c);return c} +function kpd(a,b,c){c=_hd(a,b,9,c);return c} +function Cvd(a,b,c){++a.j;a.Ki();Atd(a,b,c)} +function Avd(a,b,c){++a.j;a.Hi(b,a.oi(b,c))} +function bRd(a,b,c){var d;d=a.Zc(b);d.Rb(c)} +function c7d(a,b,c){return C2d(a.c,a.b,b,c)} +function DAd(a,b){return (b&Ohe)%a.d.length} +function Msd(a,b){Lsd.call(this,a);this.a=b} +function uVd(a,b){lVd.call(this,a);this.a=b} +function sYd(a,b){lVd.call(this,a);this.a=b} +function zyd(a,b){this.c=a;zud.call(this,b)} +function YOd(a,b){this.a=a;qOd.call(this,b)} +function fTd(a,b){this.a=a;qOd.call(this,b)} +function Xp(a){this.a=(Xj(a,Jie),new Skb(a))} +function cq(a){this.a=(Xj(a,Jie),new Skb(a))} +function LA(a){!a.a&&(a.a=new VA);return a.a} +function XMb(a){if(a>8){return 0}return a+1} +function Ecb(a,b){Bcb();return a==b?0:a?1:-1} +function Opb(a,b,c){return Npb(a,BD(b,22),c)} +function Bz(a,b,c){return a.apply(b,c);var d} +function Sfb(a,b,c){a.a+=zfb(b,0,c);return a} +function ijb(a,b){var c;c=a.e;a.e=b;return c} +function trb(a,b){var c;c=a[hke];c.call(a,b)} +function urb(a,b){var c;c=a[hke];c.call(a,b)} +function Aib(a,b){a.a.Vc(a.b,b);++a.b;a.c=-1} +function Urb(a){Uhb(a.e);a.d.b=a.d;a.d.a=a.d} +function _f(a){a.b?_f(a.b):a.f.c.zc(a.e,a.d)} +function _Ab(a,b,c){EAb();MBb(a,b.Ce(a.a,c))} +function Bxb(a,b){return Vd(Cwb(a.a,b,true))} +function Cxb(a,b){return Vd(Dwb(a.a,b,true))} +function _Bb(a,b){return eCb(new Array(b),a)} +function HD(a){return String.fromCharCode(a)} +function mz(a){return a==null?null:a.message} +function gRb(){this.a=new Rkb;this.b=new Rkb} +function iTb(){this.a=new MQb;this.b=new tTb} +function tDb(){this.b=new d7c;this.c=new Rkb} +function _Qb(){this.d=new d7c;this.e=new d7c} +function n_b(){this.n=new d7c;this.o=new d7c} +function $Gb(){this.n=new p0b;this.i=new I6c} +function sec(){this.a=new Umc;this.b=new mnc} +function NIc(){this.a=new Rkb;this.d=new Rkb} +function LDc(){this.b=new Tqb;this.a=new Tqb} +function hSc(){this.b=new Lqb;this.a=new Lqb} +function HRc(){this.b=new tRc;this.a=new hRc} +function aHb(){$Gb.call(this);this.a=new d7c} +function Ywb(a){Zwb.call(this,a,(lxb(),hxb))} +function J_b(a,b,c,d){B_b.call(this,a,b,c,d)} +function sqd(a,b,c){c!=null&&kmd(b,Wqd(a,c))} +function tqd(a,b,c){c!=null&&lmd(b,Wqd(a,c))} +function Tod(a,b,c){c=_hd(a,b,11,c);return c} +function P6c(a,b){a.a+=b.a;a.b+=b.b;return a} +function c7c(a,b){a.a-=b.a;a.b-=b.b;return a} +function u7b(a,b){return a.n.a=(uCb(b),b)+10} +function v7b(a,b){return a.n.a=(uCb(b),b)+10} +function dLd(a,b){return b==a||pud(UKd(b),a)} +function PYd(a,b){return Rhb(a.a,b,'')==null} +function E2b(a,b){x2b();return !f_b(b.d.i,a)} +function rjc(a,b){fad(a.f)?sjc(a,b):tjc(a,b)} +function h1d(a,b){var c;c=b.Hh(a.a);return c} +function Cyd(a,b){qcb.call(this,gve+a+mue+b)} +function gUd(a,b,c,d){cUd.call(this,a,b,c,d)} +function Q4d(a,b,c,d){cUd.call(this,a,b,c,d)} +function U4d(a,b,c,d){Q4d.call(this,a,b,c,d)} +function n5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function p5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function v5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function t5d(a,b,c,d){p5d.call(this,a,b,c,d)} +function A5d(a,b,c,d){p5d.call(this,a,b,c,d)} +function y5d(a,b,c,d){v5d.call(this,a,b,c,d)} +function D5d(a,b,c,d){A5d.call(this,a,b,c,d)} +function d6d(a,b,c,d){Y5d.call(this,a,b,c,d)} +function Vp(a,b,c){this.a=a;qc.call(this,b,c)} +function tk(a,b,c){this.c=b;this.b=c;this.a=a} +function ik(a,b,c){return a.d=BD(b.Kb(c),164)} +function j6d(a,b){return a.Aj().Nh().Kh(a,b)} +function h6d(a,b){return a.Aj().Nh().Ih(a,b)} +function Fdb(a,b){return uCb(a),PD(a)===PD(b)} +function dfb(a,b){return uCb(a),PD(a)===PD(b)} +function Dxb(a,b){return Vd(Cwb(a.a,b,false))} +function Exb(a,b){return Vd(Dwb(a.a,b,false))} +function vBb(a,b){return a.b.sd(new yBb(a,b))} +function BBb(a,b){return a.b.sd(new EBb(a,b))} +function HBb(a,b){return a.b.sd(new KBb(a,b))} +function lfb(a,b,c){return a.lastIndexOf(b,c)} +function uTb(a,b,c){return Kdb(a[b.b],a[c.b])} +function RTb(a,b){return yNb(b,(Nyc(),Cwc),a)} +function fmc(a,b){return beb(b.a.d.p,a.a.d.p)} +function emc(a,b){return beb(a.a.d.p,b.a.d.p)} +function _Oc(a,b){return Kdb(a.c-a.s,b.c-b.s)} +function S_b(a){return !a.c?-1:Jkb(a.c.a,a,0)} +function Vxd(a){return a<100?null:new Ixd(a)} +function ecd(a){return a==Zbd||a==_bd||a==$bd} +function zAd(a,b){return JD(b,15)&&Btd(a.c,b)} +function vyb(a,b){if(lyb){return}!!b&&(a.d=b)} +function ujb(a,b){var c;c=b;return !!Awb(a,c)} +function czd(a,b){this.c=a;Pyd.call(this,a,b)} +function fBb(a){this.c=a;nvb.call(this,rie,0)} +function Avb(a,b){Bvb.call(this,a,a.length,b)} +function aId(a,b,c){return BD(a.c,69).lk(b,c)} +function bId(a,b,c){return BD(a.c,69).mk(b,c)} +function O2d(a,b,c){return N2d(a,BD(b,332),c)} +function Q2d(a,b,c){return P2d(a,BD(b,332),c)} +function i3d(a,b,c){return h3d(a,BD(b,332),c)} +function k3d(a,b,c){return j3d(a,BD(b,332),c)} +function tn(a,b){return b==null?null:Hv(a.b,b)} +function Kcb(a){return LD(a)?(uCb(a),a):a.ke()} +function Ldb(a){return !isNaN(a)&&!isFinite(a)} +function Wn(a){Ql();this.a=(mmb(),new zob(a))} +function dIc(a){FHc();this.d=a;this.a=new jkb} +function xqb(a,b,c){this.a=a;this.b=b;this.c=c} +function Nrb(a,b,c){this.a=a;this.b=b;this.c=c} +function $sb(a,b,c){this.d=a;this.b=c;this.a=b} +function Qsb(a){Csb(this);Osb(this);ye(this,a)} +function Tkb(a){Ckb(this);bCb(this.c,0,a.Pc())} +function Xwb(a){uib(a.a);Kwb(a.c,a.b);a.b=null} +function iyb(a){this.a=a;Zfb();Cbb(Date.now())} +function JCb(){JCb=ccb;GCb=new nb;ICb=new nb} +function ntb(){ntb=ccb;ltb=new otb;mtb=new qtb} +function kzd(){kzd=ccb;jzd=KC(SI,Uhe,1,0,5,1)} +function tGd(){tGd=ccb;sGd=KC(SI,Uhe,1,0,5,1)} +function $Gd(){$Gd=ccb;ZGd=KC(SI,Uhe,1,0,5,1)} +function Ql(){Ql=ccb;new Zl((mmb(),mmb(),jmb))} +function pxb(a){lxb();return es((zxb(),yxb),a)} +function Hyb(a){Fyb();return es((Kyb(),Jyb),a)} +function OEb(a){MEb();return es((REb(),QEb),a)} +function WEb(a){UEb();return es((ZEb(),YEb),a)} +function tFb(a){rFb();return es((wFb(),vFb),a)} +function iHb(a){gHb();return es((lHb(),kHb),a)} +function PHb(a){NHb();return es((SHb(),RHb),a)} +function GIb(a){EIb();return es((JIb(),IIb),a)} +function vJb(a){qJb();return es((yJb(),xJb),a)} +function xLb(a){vLb();return es((ALb(),zLb),a)} +function TMb(a){RMb();return es((WMb(),VMb),a)} +function TOb(a){ROb();return es((WOb(),VOb),a)} +function ePb(a){cPb();return es((hPb(),gPb),a)} +function ZRb(a){XRb();return es((aSb(),_Rb),a)} +function ATb(a){yTb();return es((DTb(),CTb),a)} +function sUb(a){qUb();return es((vUb(),uUb),a)} +function rWb(a){lWb();return es((uWb(),tWb),a)} +function TXb(a){RXb();return es((WXb(),VXb),a)} +function Mb(a,b){if(!a){throw vbb(new Wdb(b))}} +function l0b(a){j0b();return es((o0b(),n0b),a)} +function r0b(a){B_b.call(this,a.d,a.c,a.a,a.b)} +function K_b(a){B_b.call(this,a.d,a.c,a.a,a.b)} +function mKb(a,b,c){this.b=a;this.c=b;this.a=c} +function BZb(a,b,c){this.b=a;this.a=b;this.c=c} +function TNb(a,b,c){this.a=a;this.b=b;this.c=c} +function uOb(a,b,c){this.a=a;this.b=b;this.c=c} +function S3b(a,b,c){this.a=a;this.b=b;this.c=c} +function Z6b(a,b,c){this.a=a;this.b=b;this.c=c} +function n9b(a,b,c){this.b=a;this.a=b;this.c=c} +function x$b(a,b,c){this.e=b;this.b=a;this.d=c} +function $Ab(a,b,c){EAb();a.a.Od(b,c);return b} +function LGb(a){var b;b=new KGb;b.e=a;return b} +function iLb(a){var b;b=new fLb;b.b=a;return b} +function D6b(){D6b=ccb;B6b=new M6b;C6b=new P6b} +function Hgc(){Hgc=ccb;Fgc=new ghc;Ggc=new ihc} +function jbc(a){gbc();return es((mbc(),lbc),a)} +function Cjc(a){Ajc();return es((Fjc(),Ejc),a)} +function Clc(a){Alc();return es((Flc(),Elc),a)} +function Cpc(a){Apc();return es((Fpc(),Epc),a)} +function Kpc(a){Ipc();return es((Npc(),Mpc),a)} +function Wpc(a){Rpc();return es((Zpc(),Ypc),a)} +function $jc(a){Xjc();return es((bkc(),akc),a)} +function Hkc(a){Fkc();return es((Kkc(),Jkc),a)} +function dqc(a){bqc();return es((gqc(),fqc),a)} +function rqc(a){mqc();return es((uqc(),tqc),a)} +function zqc(a){xqc();return es((Cqc(),Bqc),a)} +function Iqc(a){Gqc();return es((Lqc(),Kqc),a)} +function Vqc(a){Sqc();return es((Yqc(),Xqc),a)} +function brc(a){_qc();return es((erc(),drc),a)} +function nrc(a){lrc();return es((qrc(),prc),a)} +function Arc(a){yrc();return es((Drc(),Crc),a)} +function Qrc(a){Orc();return es((Trc(),Src),a)} +function Zrc(a){Xrc();return es((asc(),_rc),a)} +function gsc(a){esc();return es((jsc(),isc),a)} +function osc(a){msc();return es((rsc(),qsc),a)} +function Etc(a){Ctc();return es((Htc(),Gtc),a)} +function qzc(a){lzc();return es((tzc(),szc),a)} +function Azc(a){xzc();return es((Dzc(),Czc),a)} +function Mzc(a){Izc();return es((Pzc(),Ozc),a)} +function MAc(a){KAc();return es((PAc(),OAc),a)} +function mAc(a){kAc();return es((pAc(),oAc),a)} +function vAc(a){tAc();return es((yAc(),xAc),a)} +function DAc(a){BAc();return es((GAc(),FAc),a)} +function VAc(a){TAc();return es((YAc(),XAc),a)} +function $zc(a){Vzc();return es((bAc(),aAc),a)} +function bBc(a){_Ac();return es((eBc(),dBc),a)} +function vBc(a){tBc();return es((yBc(),xBc),a)} +function EBc(a){CBc();return es((HBc(),GBc),a)} +function NBc(a){LBc();return es((QBc(),PBc),a)} +function tGc(a){rGc();return es((wGc(),vGc),a)} +function WIc(a){UIc();return es((ZIc(),YIc),a)} +function $Lc(a){YLc();return es((bMc(),aMc),a)} +function gMc(a){eMc();return es((jMc(),iMc),a)} +function JOc(a){HOc();return es((MOc(),LOc),a)} +function HQc(a){FQc();return es((KQc(),JQc),a)} +function DRc(a){yRc();return es((GRc(),FRc),a)} +function tSc(a){qSc();return es((wSc(),vSc),a)} +function UTc(a){STc();return es((XTc(),WTc),a)} +function UUc(a){PUc();return es((XUc(),WUc),a)} +function aUc(a){$Tc();return es((dUc(),cUc),a)} +function wVc(a){tVc();return es((zVc(),yVc),a)} +function iWc(a){fWc();return es((lWc(),kWc),a)} +function sWc(a){pWc();return es((vWc(),uWc),a)} +function lXc(a){iXc();return es((oXc(),nXc),a)} +function vXc(a){sXc();return es((yXc(),xXc),a)} +function BYc(a){zYc();return es((EYc(),DYc),a)} +function m$c(a){k$c();return es((p$c(),o$c),a)} +function $$c(a){Y$c();return es((b_c(),a_c),a)} +function n_c(a){i_c();return es((q_c(),p_c),a)} +function w_c(a){s_c();return es((z_c(),y_c),a)} +function E_c(a){C_c();return es((H_c(),G_c),a)} +function P_c(a){N_c();return es((S_c(),R_c),a)} +function W0c(a){R0c();return es((Z0c(),Y0c),a)} +function f1c(a){a1c();return es((i1c(),h1c),a)} +function P5c(a){N5c();return es((S5c(),R5c),a)} +function b6c(a){_5c();return es((e6c(),d6c),a)} +function H7c(a){F7c();return es((K7c(),J7c),a)} +function k8c(a){i8c();return es((n8c(),m8c),a)} +function V8b(a){S8b();return es((Y8b(),X8b),a)} +function A5b(a){y5b();return es((D5b(),C5b),a)} +function jad(a){ead();return es((mad(),lad),a)} +function sad(a){qad();return es((vad(),uad),a)} +function Cad(a){Aad();return es((Fad(),Ead),a)} +function Oad(a){Mad();return es((Rad(),Qad),a)} +function jbd(a){hbd();return es((mbd(),lbd),a)} +function ubd(a){rbd();return es((xbd(),wbd),a)} +function Kbd(a){Hbd();return es((Nbd(),Mbd),a)} +function Vbd(a){Tbd();return es((Ybd(),Xbd),a)} +function hcd(a){dcd();return es((kcd(),jcd),a)} +function vcd(a){rcd();return es((ycd(),xcd),a)} +function vdd(a){tdd();return es((ydd(),xdd),a)} +function Kdd(a){Idd();return es((Ndd(),Mdd),a)} +function $cd(a){Ucd();return es((cdd(),bdd),a)} +function Fed(a){Ded();return es((Ied(),Hed),a)} +function rgd(a){pgd();return es((ugd(),tgd),a)} +function Esd(a){Csd();return es((Hsd(),Gsd),a)} +function Yoc(a,b){return (uCb(a),a)+(uCb(b),b)} +function NNd(a,b){Zfb();return wtd(ZKd(a.a),b)} +function SNd(a,b){Zfb();return wtd(ZKd(a.a),b)} +function bPc(a,b){this.c=a;this.a=b;this.b=b-a} +function nYc(a,b,c){this.a=a;this.b=b;this.c=c} +function L1c(a,b,c){this.a=a;this.b=b;this.c=c} +function T1c(a,b,c){this.a=a;this.b=b;this.c=c} +function Rrd(a,b,c){this.a=a;this.b=b;this.c=c} +function zCd(a,b,c){this.a=a;this.b=b;this.c=c} +function IVd(a,b,c){this.e=a;this.a=b;this.c=c} +function kWd(a,b,c){UVd();cWd.call(this,a,b,c)} +function HXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function TXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function ZXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function JXd(a,b,c){UVd();HXd.call(this,a,b,c)} +function LXd(a,b,c){UVd();HXd.call(this,a,b,c)} +function NXd(a,b,c){UVd();LXd.call(this,a,b,c)} +function VXd(a,b,c){UVd();TXd.call(this,a,b,c)} +function _Xd(a,b,c){UVd();ZXd.call(this,a,b,c)} +function $j(a,b){Qb(a);Qb(b);return new _j(a,b)} +function Nq(a,b){Qb(a);Qb(b);return new Wq(a,b)} +function Rq(a,b){Qb(a);Qb(b);return new ar(a,b)} +function lr(a,b){Qb(a);Qb(b);return new zr(a,b)} +function BD(a,b){CCb(a==null||AD(a,b));return a} +function Nu(a){var b;b=new Rkb;fr(b,a);return b} +function Ex(a){var b;b=new Tqb;fr(b,a);return b} +function Hx(a){var b;b=new Gxb;Jq(b,a);return b} +function Ru(a){var b;b=new Psb;Jq(b,a);return b} +function YEc(a){!a.e&&(a.e=new Rkb);return a.e} +function SMd(a){!a.c&&(a.c=new xYd);return a.c} +function Ekb(a,b){a.c[a.c.length]=b;return true} +function WA(a,b){this.c=a;this.b=b;this.a=false} +function Gg(a){this.d=a;Dg(this);this.b=ed(a.d)} +function pzb(){this.a=';,;';this.b='';this.c=''} +function Bvb(a,b,c){qvb.call(this,b,c);this.a=a} +function fAb(a,b,c){this.b=a;fvb.call(this,b,c)} +function lsb(a,b,c){this.c=a;pjb.call(this,b,c)} +function bCb(a,b,c){$Bb(c,0,a,b,c.length,false)} +function HVb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e} +function eBb(a,b){if(b){a.b=b;a.a=(Tzb(b),b.a)}} +function v_b(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e} +function h5b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b} +function k5b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c} +function Lbb(a){return zbb(iD(Fbb(a)?Rbb(a):a))} +function rlc(a,b){return beb(D0b(a.d),D0b(b.d))} +function uic(a,b){return b==(Ucd(),Tcd)?a.c:a.d} +function FHc(){FHc=ccb;DHc=(Ucd(),Tcd);EHc=zcd} +function DRb(){this.b=Edb(ED(Ksd((wSb(),vSb))))} +function aBb(a){return EAb(),KC(SI,Uhe,1,a,5,1)} +function C6c(a){return new f7c(a.c+a.b,a.d+a.a)} +function Vmc(a,b){Imc();return beb(a.d.p,b.d.p)} +function Lsb(a){sCb(a.b!=0);return Nsb(a,a.a.a)} +function Msb(a){sCb(a.b!=0);return Nsb(a,a.c.b)} +function rCb(a,b){if(!a){throw vbb(new ucb(b))}} +function mCb(a,b){if(!a){throw vbb(new Wdb(b))}} +function dWb(a,b,c){cWb.call(this,a,b);this.b=c} +function pMd(a,b,c){MLd.call(this,a,b);this.c=c} +function Dnc(a,b,c){Cnc.call(this,b,c);this.d=a} +function _Gd(a){$Gd();MGd.call(this);this.th(a)} +function PNd(a,b,c){this.a=a;nNd.call(this,b,c)} +function UNd(a,b,c){this.a=a;nNd.call(this,b,c)} +function k2d(a,b,c){MLd.call(this,a,b);this.c=c} +function y1d(){T0d();z1d.call(this,(yFd(),xFd))} +function gFd(a){return a!=null&&!OEd(a,CEd,DEd)} +function dFd(a,b){return (jFd(a)<<4|jFd(b))&aje} +function ln(a,b){return Vm(),Wj(a,b),new iy(a,b)} +function Sdd(a,b){var c;if(a.n){c=b;Ekb(a.f,c)}} +function Upd(a,b,c){var d;d=new yC(c);cC(a,b,d)} +function WUd(a,b){var c;c=a.c;VUd(a,b);return c} +function Ydd(a,b){b<0?(a.g=-1):(a.g=b);return a} +function $6c(a,b){W6c(a);a.a*=b;a.b*=b;return a} +function G6c(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e} +function Dsb(a,b){Gsb(a,b,a.c.b,a.c);return true} +function jsb(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null} +function Aq(a){this.b=a;this.a=Wm(this.b.a).Ed()} +function Wq(a,b){this.b=a;this.a=b;ol.call(this)} +function ar(a,b){this.a=a;this.b=b;ol.call(this)} +function vvb(a,b){qvb.call(this,b,1040);this.a=a} +function Eeb(a){return a==0||isNaN(a)?a:a<0?-1:1} +function WPb(a){QPb();return jtd(a)==Xod(ltd(a))} +function XPb(a){QPb();return ltd(a)==Xod(jtd(a))} +function iYb(a,b){return hYb(a,new cWb(b.a,b.b))} +function NZb(a){return !OZb(a)&&a.c.i.c==a.d.i.c} +function _Gb(a){var b;b=a.n;return a.a.b+b.d+b.a} +function YHb(a){var b;b=a.n;return a.e.b+b.d+b.a} +function ZHb(a){var b;b=a.n;return a.e.a+b.b+b.c} +function zfe(a){wfe();++vfe;return new ige(0,a)} +function o_b(a){if(a.a){return a.a}return JZb(a)} +function CCb(a){if(!a){throw vbb(new Cdb(null))}} +function X6d(){X6d=ccb;W6d=(mmb(),new anb(Fwe))} +function ex(){ex=ccb;new gx((_k(),$k),(Lk(),Kk))} +function oeb(){oeb=ccb;neb=KC(JI,nie,19,256,0,1)} +function d$c(a,b,c,d){e$c.call(this,a,b,c,d,0,0)} +function sQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} +function tQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} +function xfd(a,b){return Ekb(a,new f7c(b.a,b.b))} +function Bic(a,b){return a.c<b.c?-1:a.c==b.c?0:1} +function B0b(a){return a.e.c.length+a.g.c.length} +function D0b(a){return a.e.c.length-a.g.c.length} +function Ojc(a){return a.b.c.length-a.e.c.length} +function dKc(a){FJc();return (Ucd(),Ecd).Hc(a.j)} +function lHd(a){$Gd();_Gd.call(this,a);this.a=-1} +function R7d(a,b){f7d.call(this,a,b);this.a=this} +function odb(a,b){var c;c=ldb(a,b);c.i=2;return c} +function Evd(a,b){var c;++a.j;c=a.Ti(b);return c} +function e3c(a,b,c){a.a=-1;i3c(a,b.g,c);return a} +function Qrd(a,b,c){Kqd(a.a,a.b,a.c,BD(b,202),c)} +function OHd(a,b){PHd(a,b==null?null:(uCb(b),b))} +function SUd(a,b){UUd(a,b==null?null:(uCb(b),b))} +function TUd(a,b){UUd(a,b==null?null:(uCb(b),b))} +function Zj(a,b,c){return new tk(oAb(a).Ie(),c,b)} +function IC(a,b,c,d,e,f){return JC(a,b,c,d,e,0,f)} +function Ucb(){Ucb=ccb;Tcb=KC(xI,nie,217,256,0,1)} +function Ceb(){Ceb=ccb;Beb=KC(MI,nie,162,256,0,1)} +function Yeb(){Yeb=ccb;Xeb=KC(UI,nie,184,256,0,1)} +function ddb(){ddb=ccb;cdb=KC(yI,nie,172,128,0,1)} +function IVb(){HVb(this,false,false,false,false)} +function my(a){im();this.a=(mmb(),new anb(Qb(a)))} +function ir(a){Qb(a);while(a.Ob()){a.Pb();a.Qb()}} +function Tw(a){a.a.cd();BD(a.a.dd(),14).gc();zh()} +function mf(a){this.c=a;this.b=this.c.d.vc().Kc()} +function fqb(a){this.c=a;this.a=new Gqb(this.c.a)} +function Vqb(a){this.a=new Mqb(a.gc());ye(this,a)} +function Bsb(a){Wqb.call(this,new $rb);ye(this,a)} +function Rfb(a,b){a.a+=zfb(b,0,b.length);return a} +function Ikb(a,b){tCb(b,a.c.length);return a.c[b]} +function $lb(a,b){tCb(b,a.a.length);return a.a[b]} +function YAb(a,b){EAb();Vzb.call(this,a);this.a=b} +function Qyb(a,b){return Aeb(wbb(Aeb(a.a).a,b.a))} +function jpb(a,b){return uCb(a),Fcb(a,(uCb(b),b))} +function opb(a,b){return uCb(b),Fcb(b,(uCb(a),a))} +function Oyb(a,b){return NC(b,0,Bzb(b[0],Aeb(1)))} +function Bzb(a,b){return Qyb(BD(a,162),BD(b,162))} +function vic(a){return a.c-BD(Ikb(a.a,a.b),287).b} +function uNb(a){return !a.q?(mmb(),mmb(),kmb):a.q} +function Xi(a){return a.e.Hd().gc()*a.c.Hd().gc()} +function onc(a,b,c){return beb(b.d[a.g],c.d[a.g])} +function YHc(a,b,c){return beb(a.d[b.p],a.d[c.p])} +function ZHc(a,b,c){return beb(a.d[b.p],a.d[c.p])} +function $Hc(a,b,c){return beb(a.d[b.p],a.d[c.p])} +function _Hc(a,b,c){return beb(a.d[b.p],a.d[c.p])} +function q$c(a,b,c){return $wnd.Math.min(c/a,1/b)} +function sEc(a,b){return a?0:$wnd.Math.max(0,b-1)} +function Elb(a,b){var c;for(c=0;c<b;++c){a[c]=-1}} +function bVc(a){var b;b=hVc(a);return !b?a:bVc(b)} +function Voc(a,b){a.a==null&&Toc(a);return a.a[b]} +function qed(a){if(a.c){return a.c.f}return a.e.b} +function red(a){if(a.c){return a.c.g}return a.e.a} +function pFd(a){zud.call(this,a.gc());ytd(this,a)} +function nXd(a,b){UVd();VVd.call(this,b);this.a=a} +function KYd(a,b,c){this.a=a;xMd.call(this,b,c,2)} +function B_b(a,b,c,d){s_b(this);v_b(this,a,b,c,d)} +function ige(a,b){wfe();xfe.call(this,a);this.a=b} +function jgd(a){this.b=new Psb;this.a=a;this.c=-1} +function MOb(){this.d=new f7c(0,0);this.e=new Tqb} +function Nr(a){qc.call(this,0,0);this.a=a;this.b=0} +function ejc(a){this.a=a;this.c=new Lqb;$ic(this)} +function ju(a){if(a.e.c!=a.b){throw vbb(new Apb)}} +function bt(a){if(a.c.e!=a.a){throw vbb(new Apb)}} +function Tbb(a){if(Fbb(a)){return a|0}return pD(a)} +function Bfe(a,b){wfe();++vfe;return new rge(a,b)} +function SEd(a,b){return a==null?b==null:dfb(a,b)} +function TEd(a,b){return a==null?b==null:efb(a,b)} +function Npb(a,b,c){rqb(a.a,b);return Qpb(a,b.g,c)} +function Mlb(a,b,c){oCb(0,b,a.length);Klb(a,0,b,c)} +function Dkb(a,b,c){wCb(b,a.c.length);aCb(a.c,b,c)} +function Dlb(a,b,c){var d;for(d=0;d<b;++d){a[d]=c}} +function qqb(a,b){var c;c=pqb(a);nmb(c,b);return c} +function Oz(a,b){!a&&(a=[]);a[a.length]=b;return a} +function Brb(a,b){return !(a.a.get(b)===undefined)} +function Wyb(a,b){return Nyb(new rzb,new bzb(a),b)} +function Itb(a){return a==null?ztb:new Ftb(uCb(a))} +function tqb(a,b){return JD(b,22)&&uqb(a,BD(b,22))} +function vqb(a,b){return JD(b,22)&&wqb(a,BD(b,22))} +function Aub(a){return Cub(a,26)*ike+Cub(a,27)*jke} +function MC(a){return Array.isArray(a)&&a.im===gcb} +function bg(a){a.b?bg(a.b):a.d.dc()&&a.f.c.Bc(a.e)} +function $Nb(a,b){P6c(a.c,b);a.b.c+=b.a;a.b.d+=b.b} +function ZNb(a,b){$Nb(a,c7c(new f7c(b.a,b.b),a.c))} +function BLb(a,b){this.b=new Psb;this.a=a;this.c=b} +function OVb(){this.b=new $Vb;this.c=new SVb(this)} +function oEb(){this.d=new CEb;this.e=new uEb(this)} +function aCc(){ZBc();this.f=new Psb;this.e=new Psb} +function $Jc(){FJc();this.k=new Lqb;this.d=new Tqb} +function Rgd(){Rgd=ccb;Qgd=new Osd((Y9c(),s9c),0)} +function Mr(){Mr=ccb;Lr=new Nr(KC(SI,Uhe,1,0,5,1))} +function gfc(a,b,c){bfc(c,a,1);Ekb(b,new Tfc(c,a))} +function hfc(a,b,c){cfc(c,a,1);Ekb(b,new dgc(c,a))} +function R$c(a,b,c){return Qqb(a,new aDb(b.a,c.a))} +function ACc(a,b,c){return -beb(a.f[b.p],a.f[c.p])} +function mHb(a,b,c){var d;if(a){d=a.i;d.c=b;d.b=c}} +function nHb(a,b,c){var d;if(a){d=a.i;d.d=b;d.a=c}} +function c3c(a,b,c){a.a=-1;i3c(a,b.g+1,c);return a} +function Dod(a,b,c){c=_hd(a,BD(b,49),7,c);return c} +function JHd(a,b,c){c=_hd(a,BD(b,49),3,c);return c} +function JMd(a,b,c){this.a=a;BMd.call(this,b,c,22)} +function UTd(a,b,c){this.a=a;BMd.call(this,b,c,14)} +function eXd(a,b,c,d){UVd();nWd.call(this,a,b,c,d)} +function lXd(a,b,c,d){UVd();nWd.call(this,a,b,c,d)} +function FNd(a,b){(b.Bb&ote)!=0&&!a.a.o&&(a.a.o=b)} +function MD(a){return a!=null&&OD(a)&&!(a.im===gcb)} +function ID(a){return !Array.isArray(a)&&a.im===gcb} +function ed(a){return JD(a,15)?BD(a,15).Yc():a.Kc()} +function De(a){return a.Qc(KC(SI,Uhe,1,a.gc(),5,1))} +function u1d(a,b){return W1d(p1d(a,b))?b.Qh():null} +function uvd(a){a?Ty(a,(Zfb(),Yfb),''):(Zfb(),Yfb)} +function Sr(a){this.a=(Mr(),Lr);this.d=BD(Qb(a),47)} +function qg(a,b,c,d){this.a=a;dg.call(this,a,b,c,d)} +function Yge(a){Xge();this.a=0;this.b=a-1;this.c=1} +function Yy(a){Py(this);this.g=a;Ry(this);this._d()} +function Wm(a){if(a.c){return a.c}return a.c=a.Id()} +function Xm(a){if(a.d){return a.d}return a.d=a.Jd()} +function Rl(a){var b;b=a.c;return !b?(a.c=a.Dd()):b} +function fe(a){var b;b=a.f;return !b?(a.f=a.Dc()):b} +function Ec(a){var b;b=a.i;return !b?(a.i=a.bc()):b} +function Ffe(a){wfe();++vfe;return new Hge(10,a,0)} +function Ubb(a){if(Fbb(a)){return ''+a}return qD(a)} +function a4d(a){if(a.e.j!=a.d){throw vbb(new Apb)}} +function Nbb(a,b){return zbb(kD(Fbb(a)?Rbb(a):a,b))} +function Obb(a,b){return zbb(lD(Fbb(a)?Rbb(a):a,b))} +function Pbb(a,b){return zbb(mD(Fbb(a)?Rbb(a):a,b))} +function Dcb(a,b){return Ecb((uCb(a),a),(uCb(b),b))} +function Ddb(a,b){return Kdb((uCb(a),a),(uCb(b),b))} +function fx(a,b){return Qb(b),a.a.Ad(b)&&!a.b.Ad(b)} +function dD(a,b){return TC(a.l&b.l,a.m&b.m,a.h&b.h)} +function jD(a,b){return TC(a.l|b.l,a.m|b.m,a.h|b.h)} +function rD(a,b){return TC(a.l^b.l,a.m^b.m,a.h^b.h)} +function QAb(a,b){return TAb(a,(uCb(b),new Rxb(b)))} +function RAb(a,b){return TAb(a,(uCb(b),new Txb(b)))} +function g1b(a){return z0b(),BD(a,11).e.c.length!=0} +function l1b(a){return z0b(),BD(a,11).g.c.length!=0} +function bac(a,b){I9b();return Kdb(b.a.o.a,a.a.o.a)} +function Rnc(a,b,c){return Snc(a,BD(b,11),BD(c,11))} +function koc(a){if(a.e){return poc(a.e)}return null} +function Iub(a){if(!a.d){a.d=a.b.Kc();a.c=a.b.gc()}} +function pBb(a,b,c){if(a.a.Mb(c)){a.b=true;b.td(c)}} +function _vb(a,b){if(a<0||a>=b){throw vbb(new rcb)}} +function Pyb(a,b,c){NC(b,0,Bzb(b[0],c[0]));return b} +function _yc(a,b,c){b.Ye(c,Edb(ED(Ohb(a.b,c)))*a.a)} +function n6c(a,b,c){i6c();return m6c(a,b)&&m6c(a,c)} +function tcd(a){rcd();return !a.Hc(ncd)&&!a.Hc(pcd)} +function D6c(a){return new f7c(a.c+a.b/2,a.d+a.a/2)} +function oOd(a,b){return b.kh()?xid(a.b,BD(b,49)):b} +function bvb(a,b){this.e=a;this.d=(b&64)!=0?b|oie:b} +function qvb(a,b){this.c=0;this.d=a;this.b=b|64|oie} +function gub(a){this.b=new Skb(11);this.a=(ipb(),a)} +function Qwb(a){this.b=null;this.a=(ipb(),!a?fpb:a)} +function nHc(a){this.a=lHc(a.a);this.b=new Tkb(a.b)} +function Pzd(a){this.b=a;Oyd.call(this,a);Ozd(this)} +function Xzd(a){this.b=a;bzd.call(this,a);Wzd(this)} +function jUd(a,b,c){this.a=a;gUd.call(this,b,c,5,6)} +function Y5d(a,b,c,d){this.b=a;xMd.call(this,b,c,d)} +function nSd(a,b,c,d,e){oSd.call(this,a,b,c,d,e,-1)} +function DSd(a,b,c,d,e){ESd.call(this,a,b,c,d,e,-1)} +function cUd(a,b,c,d){xMd.call(this,a,b,c);this.b=d} +function i5d(a,b,c,d){pMd.call(this,a,b,c);this.b=d} +function x0d(a){Wud.call(this,a,false);this.a=false} +function Lj(a,b){this.b=a;sj.call(this,a.b);this.a=b} +function px(a,b){im();ox.call(this,a,Dm(new amb(b)))} +function Cfe(a,b){wfe();++vfe;return new Dge(a,b,0)} +function Efe(a,b){wfe();++vfe;return new Dge(6,a,b)} +function nfb(a,b){return dfb(a.substr(0,b.length),b)} +function Mhb(a,b){return ND(b)?Qhb(a,b):!!irb(a.f,b)} +function Rrb(a,b){uCb(b);while(a.Ob()){b.td(a.Pb())}} +function Vgb(a,b,c){Hgb();this.e=a;this.d=b;this.a=c} +function amc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d} +function xJc(a){var b;b=a;while(b.f){b=b.f}return b} +function fkb(a){var b;b=bkb(a);sCb(b!=null);return b} +function gkb(a){var b;b=ckb(a);sCb(b!=null);return b} +function cv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b} +function Glb(a,b){var c;for(c=0;c<b;++c){a[c]=false}} +function Clb(a,b,c,d){var e;for(e=b;e<c;++e){a[e]=d}} +function ylb(a,b,c,d){oCb(b,c,a.length);Clb(a,b,c,d)} +function Vvb(a,b,c){_vb(c,a.a.c.length);Nkb(a.a,c,b)} +function Lyb(a,b,c){this.c=a;this.a=b;mmb();this.b=c} +function Qpb(a,b,c){var d;d=a.b[b];a.b[b]=c;return d} +function Qqb(a,b){var c;c=a.a.zc(b,a);return c==null} +function zjb(a){if(!a){throw vbb(new utb)}return a.d} +function vCb(a,b){if(a==null){throw vbb(new Heb(b))}} +function Goc(a,b){if(!b){return false}return ye(a,b)} +function K2c(a,b,c){C2c(a,b.g,c);rqb(a.c,b);return a} +function vVb(a){tVb(a,(ead(),aad));a.d=true;return a} +function c2d(a){!a.j&&i2d(a,d1d(a.g,a.b));return a.j} +function nlb(a){yCb(a.b!=-1);Kkb(a.c,a.a=a.b);a.b=-1} +function Uhb(a){a.f=new lrb(a);a.g=new Frb(a);zpb(a)} +function Plb(a){return new YAb(null,Olb(a,a.length))} +function ul(a){return new Sr(new xl(a.a.length,a.a))} +function iD(a){return TC(~a.l&Eje,~a.m&Eje,~a.h&Fje)} +function OD(a){return typeof a===Jhe||typeof a===Nhe} +function D9d(a){return a==Pje?Nwe:a==Qje?'-INF':''+a} +function F9d(a){return a==Pje?Nwe:a==Qje?'-INF':''+a} +function yRb(a,b){return a>0?$wnd.Math.log(a/b):-100} +function ueb(a,b){return ybb(a,b)<0?-1:ybb(a,b)>0?1:0} +function HMb(a,b,c){return IMb(a,BD(b,46),BD(c,167))} +function iq(a,b){return BD(Rl(Wm(a.a)).Xb(b),42).cd()} +function Olb(a,b){return avb(b,a.length),new vvb(a,b)} +function Pyd(a,b){this.d=a;Fyd.call(this,a);this.e=b} +function Lub(a){this.d=(uCb(a),a);this.a=0;this.c=rie} +function rge(a,b){xfe.call(this,1);this.a=a;this.b=b} +function Rzb(a,b){!a.c?Ekb(a.b,b):Rzb(a.c,b);return a} +function uB(a,b,c){var d;d=tB(a,b);vB(a,b,c);return d} +function ZBb(a,b){var c;c=a.slice(0,b);return PC(c,a)} +function Flb(a,b,c){var d;for(d=0;d<b;++d){NC(a,d,c)}} +function ffb(a,b,c,d,e){while(b<c){d[e++]=bfb(a,b++)}} +function hLb(a,b){return Kdb(a.c.c+a.c.b,b.c.c+b.c.b)} +function Axb(a,b){return Iwb(a.a,b,(Bcb(),zcb))==null} +function Vsb(a,b){Gsb(a.d,b,a.b.b,a.b);++a.a;a.c=null} +function d3d(a,b){JLd(a,JD(b,153)?b:BD(b,1937).gl())} +function hkc(a,b){MAb(NAb(a.Oc(),new Rkc),new Tkc(b))} +function kkc(a,b,c,d,e){jkc(a,BD(Qc(b.k,c),15),c,d,e)} +function lOc(a){a.s=NaN;a.c=NaN;mOc(a,a.e);mOc(a,a.j)} +function it(a){a.a=null;a.e=null;Uhb(a.b);a.d=0;++a.c} +function gKc(a){return $wnd.Math.abs(a.d.e-a.e.e)-a.a} +function MAd(a,b,c){return BD(a.c._c(b,BD(c,133)),42)} +function os(){hs();return OC(GC(yG,1),Kie,538,0,[gs])} +function VPb(a){QPb();return Xod(jtd(a))==Xod(ltd(a))} +function aRb(a){_Qb.call(this);this.a=a;Ekb(a.a,this)} +function tPc(a,b){this.d=DPc(a);this.c=b;this.a=0.5*b} +function A6d(){$rb.call(this);this.a=true;this.b=true} +function aLd(a){return (a.i==null&&TKd(a),a.i).length} +function oRd(a){return JD(a,99)&&(BD(a,18).Bb&ote)!=0} +function w2d(a,b){++a.j;t3d(a,a.i,b);v2d(a,BD(b,332))} +function vId(a,b){b=a.nk(null,b);return uId(a,null,b)} +function ytd(a,b){a.hi()&&(b=Dtd(a,b));return a.Wh(b)} +function mdb(a,b,c){var d;d=ldb(a,b);zdb(c,d);return d} +function ldb(a,b){var c;c=new jdb;c.j=a;c.d=b;return c} +function Qb(a){if(a==null){throw vbb(new Geb)}return a} +function Fc(a){var b;b=a.j;return !b?(a.j=new Cw(a)):b} +function Vi(a){var b;b=a.f;return !b?(a.f=new Rj(a)):b} +function ci(a){var b;return b=a.k,!b?(a.k=new th(a)):b} +function Uc(a){var b;return b=a.k,!b?(a.k=new th(a)):b} +function Pc(a){var b;return b=a.g,!b?(a.g=new lh(a)):b} +function Yi(a){var b;return b=a.i,!b?(a.i=new Ci(a)):b} +function qo(a){var b;b=a.d;return !b?(a.d=new ap(a)):b} +function Fb(a){Qb(a);return JD(a,475)?BD(a,475):fcb(a)} +function Ix(a){if(JD(a,607)){return a}return new by(a)} +function qj(a,b){Pb(b,a.c.b.c.gc());return new Fj(a,b)} +function Dfe(a,b,c){wfe();++vfe;return new zge(a,b,c)} +function NC(a,b,c){qCb(c==null||FC(a,c));return a[b]=c} +function bv(a,b){var c;c=a.a.gc();Pb(b,c);return c-1-b} +function Afb(a,b){a.a+=String.fromCharCode(b);return a} +function Kfb(a,b){a.a+=String.fromCharCode(b);return a} +function ovb(a,b){uCb(b);while(a.c<a.d){a.ze(b,a.c++)}} +function Ohb(a,b){return ND(b)?Phb(a,b):Wd(irb(a.f,b))} +function ZPb(a,b){QPb();return a==jtd(b)?ltd(b):jtd(b)} +function isd(a,b){Qpd(a,new yC(b.f!=null?b.f:''+b.g))} +function ksd(a,b){Qpd(a,new yC(b.f!=null?b.f:''+b.g))} +function dVb(a){this.b=new Rkb;this.a=new Rkb;this.c=a} +function H1b(a){this.c=new d7c;this.a=new Rkb;this.b=a} +function pRb(a){_Qb.call(this);this.a=new d7c;this.c=a} +function yC(a){if(a==null){throw vbb(new Geb)}this.a=a} +function HA(a){fA();this.b=new Rkb;this.a=a;sA(this,a)} +function v4c(a){this.c=a;this.a=new Psb;this.b=new Psb} +function GB(){GB=ccb;EB=new HB(false);FB=new HB(true)} +function im(){im=ccb;Ql();hm=new ux((mmb(),mmb(),jmb))} +function yx(){yx=ccb;Ql();xx=new zx((mmb(),mmb(),lmb))} +function NFd(){NFd=ccb;MFd=BZd();!!(jGd(),PFd)&&DZd()} +function aac(a,b){I9b();return BD(Mpb(a,b.d),15).Fc(b)} +function pTb(a,b,c,d){return c==0||(c-d)/c<a.e||b>=a.g} +function NHc(a,b,c){var d;d=THc(a,b,c);return MHc(a,d)} +function Qpd(a,b){var c;c=a.a.length;tB(a,c);vB(a,c,b)} +function gCb(a,b){var c;c=console[a];c.call(console,b)} +function Bvd(a,b){var c;++a.j;c=a.Vi();a.Ii(a.oi(c,b))} +function E1c(a,b,c){BD(b.b,65);Hkb(b.a,new L1c(a,c,b))} +function oXd(a,b,c){VVd.call(this,b);this.a=a;this.b=c} +function Dge(a,b,c){xfe.call(this,a);this.a=b;this.b=c} +function dYd(a,b,c){this.a=a;lVd.call(this,b);this.b=c} +function f0d(a,b,c){this.a=a;mxd.call(this,8,b,null,c)} +function z1d(a){this.a=(uCb(Rve),Rve);this.b=a;new oUd} +function ct(a){this.c=a;this.b=this.c.a;this.a=this.c.e} +function usb(a){this.c=a;this.b=a.a.d.a;ypb(a.a.e,this)} +function uib(a){yCb(a.c!=-1);a.d.$c(a.c);a.b=a.c;a.c=-1} +function U6c(a){return $wnd.Math.sqrt(a.a*a.a+a.b*a.b)} +function Uvb(a,b){return _vb(b,a.a.c.length),Ikb(a.a,b)} +function Hb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} +function oAb(a){if(0>=a){return new yAb}return pAb(a-1)} +function Nfe(a){if(!bfe)return false;return Qhb(bfe,a)} +function Ehe(a){if(a)return a.dc();return !a.Kc().Ob()} +function Q_b(a){if(!a.a&&!!a.c){return a.c.b}return a.a} +function LHd(a){!a.a&&(a.a=new xMd(m5,a,4));return a.a} +function LQd(a){!a.d&&(a.d=new xMd(j5,a,1));return a.d} +function uCb(a){if(a==null){throw vbb(new Geb)}return a} +function Qzb(a){if(!a.c){a.d=true;Szb(a)}else{a.c.He()}} +function Tzb(a){if(!a.c){Uzb(a);a.d=true}else{Tzb(a.c)}} +function Kpb(a){Ae(a.a);a.b=KC(SI,Uhe,1,a.b.length,5,1)} +function qlc(a,b){return beb(b.j.c.length,a.j.c.length)} +function igd(a,b){a.c<0||a.b.b<a.c?Fsb(a.b,b):a.a._e(b)} +function Did(a,b){var c;c=a.Yg(b);c>=0?a.Bh(c):vid(a,b)} +function WHc(a){var b,c;b=a.c.i.c;c=a.d.i.c;return b==c} +function Wwd(a){if(a.p!=4)throw vbb(new Ydb);return a.e} +function Vwd(a){if(a.p!=3)throw vbb(new Ydb);return a.e} +function Ywd(a){if(a.p!=6)throw vbb(new Ydb);return a.f} +function fxd(a){if(a.p!=6)throw vbb(new Ydb);return a.k} +function cxd(a){if(a.p!=3)throw vbb(new Ydb);return a.j} +function dxd(a){if(a.p!=4)throw vbb(new Ydb);return a.j} +function AYd(a){!a.b&&(a.b=new RYd(new NYd));return a.b} +function $1d(a){a.c==-2&&e2d(a,X0d(a.g,a.b));return a.c} +function pdb(a,b){var c;c=ldb('',a);c.n=b;c.i=1;return c} +function MNb(a,b){$Nb(BD(b.b,65),a);Hkb(b.a,new RNb(a))} +function Cnd(a,b){wtd((!a.a&&(a.a=new fTd(a,a)),a.a),b)} +function Qzd(a,b){this.b=a;Pyd.call(this,a,b);Ozd(this)} +function Yzd(a,b){this.b=a;czd.call(this,a,b);Wzd(this)} +function Ms(a,b,c,d){Wo.call(this,a,b);this.d=c;this.a=d} +function $o(a,b,c,d){Wo.call(this,a,c);this.a=b;this.f=d} +function iy(a,b){Pp.call(this,umb(Qb(a),Qb(b)));this.a=b} +function cae(){fod.call(this,Ewe,(p8d(),o8d));$9d(this)} +function AZd(){fod.call(this,_ve,(LFd(),KFd));uZd(this)} +function T0c(){$r.call(this,'DELAUNAY_TRIANGULATION',0)} +function vfb(a){return String.fromCharCode.apply(null,a)} +function Rhb(a,b,c){return ND(b)?Shb(a,b,c):jrb(a.f,b,c)} +function tmb(a){mmb();return !a?(ipb(),ipb(),hpb):a.ve()} +function d2c(a,b,c){Y1c();return c.pg(a,BD(b.cd(),146))} +function ix(a,b){ex();return new gx(new il(a),new Uk(b))} +function Iu(a){Xj(a,Mie);return Oy(wbb(wbb(5,a),a/10|0))} +function Vm(){Vm=ccb;Um=new wx(OC(GC(CK,1),zie,42,0,[]))} +function hob(a){!a.d&&(a.d=new lnb(a.c.Cc()));return a.d} +function eob(a){!a.a&&(a.a=new Gob(a.c.vc()));return a.a} +function gob(a){!a.b&&(a.b=new zob(a.c.ec()));return a.b} +function keb(a,b){while(b-->0){a=a<<1|(a<0?1:0)}return a} +function wtb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} +function Gbc(a,b){return Bcb(),BD(b.b,19).a<a?true:false} +function Hbc(a,b){return Bcb(),BD(b.a,19).a<a?true:false} +function Mpb(a,b){return tqb(a.a,b)?a.b[BD(b,22).g]:null} +function kcb(a,b,c,d){a.a=qfb(a.a,0,b)+(''+d)+pfb(a.a,c)} +function OJb(a,b){a.u.Hc((rcd(),ncd))&&MJb(a,b);QJb(a,b)} +function bfb(a,b){BCb(b,a.length);return a.charCodeAt(b)} +function vtb(){hz.call(this,'There is no more element.')} +function xkb(a){this.d=a;this.a=this.d.b;this.b=this.d.c} +function kEb(a){a.b=false;a.c=false;a.d=false;a.a=false} +function Znd(a,b,c,d){Ynd(a,b,c,false);LPd(a,d);return a} +function h3c(a){a.j.c=KC(SI,Uhe,1,0,5,1);a.a=-1;return a} +function Old(a){!a.c&&(a.c=new y5d(z2,a,5,8));return a.c} +function Nld(a){!a.b&&(a.b=new y5d(z2,a,4,7));return a.b} +function Kkd(a){!a.n&&(a.n=new cUd(D2,a,1,7));return a.n} +function Yod(a){!a.c&&(a.c=new cUd(F2,a,9,9));return a.c} +function a2d(a){a.e==Gwe&&g2d(a,a1d(a.g,a.b));return a.e} +function b2d(a){a.f==Gwe&&h2d(a,b1d(a.g,a.b));return a.f} +function Ah(a){var b;b=a.b;!b&&(a.b=b=new Ph(a));return b} +function Ae(a){var b;for(b=a.Kc();b.Ob();){b.Pb();b.Qb()}} +function Fg(a){ag(a.d);if(a.d.d!=a.c){throw vbb(new Apb)}} +function Xx(a,b){this.b=a;this.c=b;this.a=new Gqb(this.b)} +function Zeb(a,b,c){this.a=Zie;this.d=a;this.b=b;this.c=c} +function Mub(a,b){this.d=(uCb(a),a);this.a=16449;this.c=b} +function nqd(a,b){ctd(a,Edb(Xpd(b,'x')),Edb(Xpd(b,'y')))} +function Aqd(a,b){ctd(a,Edb(Xpd(b,'x')),Edb(Xpd(b,'y')))} +function JAb(a,b){Uzb(a);return new YAb(a,new qBb(b,a.a))} +function NAb(a,b){Uzb(a);return new YAb(a,new IBb(b,a.a))} +function OAb(a,b){Uzb(a);return new bAb(a,new wBb(b,a.a))} +function PAb(a,b){Uzb(a);return new vAb(a,new CBb(b,a.a))} +function Cy(a,b){return new Ay(BD(Qb(a),62),BD(Qb(b),62))} +function PWb(a,b){LWb();return Kdb((uCb(a),a),(uCb(b),b))} +function fPb(){cPb();return OC(GC(GO,1),Kie,481,0,[bPb])} +function o_c(){i_c();return OC(GC(N_,1),Kie,482,0,[h_c])} +function x_c(){s_c();return OC(GC(O_,1),Kie,551,0,[r_c])} +function X0c(){R0c();return OC(GC(W_,1),Kie,530,0,[Q0c])} +function cEc(a){this.a=new Rkb;this.e=KC(WD,nie,48,a,0,2)} +function l$b(a,b,c,d){this.a=a;this.e=b;this.d=c;this.c=d} +function QIc(a,b,c,d){this.a=a;this.c=b;this.b=c;this.d=d} +function rKc(a,b,c,d){this.c=a;this.b=b;this.a=c;this.d=d} +function WKc(a,b,c,d){this.c=a;this.b=b;this.d=c;this.a=d} +function J6c(a,b,c,d){this.c=a;this.d=b;this.b=c;this.a=d} +function gPc(a,b,c,d){this.a=a;this.d=b;this.c=c;this.b=d} +function Blc(a,b,c,d){$r.call(this,a,b);this.a=c;this.b=d} +function Ggd(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} +function pec(a,b,c){Pmc(a.a,c);dmc(c);enc(a.b,c);xmc(b,c)} +function Pid(a,b,c){var d,e;d=QEd(a);e=b.Kh(c,d);return e} +function KPb(a,b){var c,d;c=a/b;d=QD(c);c>d&&++d;return d} +function Nnd(a){var b,c;c=(b=new UQd,b);NQd(c,a);return c} +function Ond(a){var b,c;c=(b=new UQd,b);RQd(c,a);return c} +function hqd(a,b){var c;c=Ohb(a.f,b);Yqd(b,c);return null} +function JZb(a){var b;b=P2b(a);if(b){return b}return null} +function Wod(a){!a.b&&(a.b=new cUd(B2,a,12,3));return a.b} +function YEd(a){return a!=null&&hnb(GEd,a.toLowerCase())} +function ied(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} +function jed(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} +function wEb(a,b){return Kdb(a.d.c+a.d.b/2,b.d.c+b.d.b/2)} +function UVb(a,b){return Kdb(a.g.c+a.g.b/2,b.g.c+b.g.b/2)} +function pQb(a,b,c){c.a?eld(a,b.b-a.f/2):dld(a,b.a-a.g/2)} +function prd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function ord(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function JVd(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d} +function ZVd(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} +function cXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} +function jXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} +function Ng(a,b){this.a=a;Hg.call(this,a,BD(a.d,15).Zc(b))} +function ZBd(a){this.f=a;this.c=this.f.e;a.f>0&&YBd(this)} +function lBb(a,b,c,d){this.b=a;this.c=d;nvb.call(this,b,c)} +function tib(a){sCb(a.b<a.d.gc());return a.d.Xb(a.c=a.b++)} +function Osb(a){a.a.a=a.c;a.c.b=a.a;a.a.b=a.c.a=null;a.b=0} +function u_b(a,b){a.b=b.b;a.c=b.c;a.d=b.d;a.a=b.a;return a} +function Ry(a){if(a.n){a.e!==Sie&&a._d();a.j=null}return a} +function FD(a){CCb(a==null||OD(a)&&!(a.im===gcb));return a} +function p4b(a){this.b=new Rkb;Gkb(this.b,this.b);this.a=a} +function QPb(){QPb=ccb;PPb=new Rkb;OPb=new Lqb;NPb=new Rkb} +function mmb(){mmb=ccb;jmb=new xmb;kmb=new Qmb;lmb=new Ymb} +function ipb(){ipb=ccb;fpb=new kpb;gpb=new kpb;hpb=new ppb} +function ODb(){ODb=ccb;LDb=new JDb;NDb=new oEb;MDb=new fEb} +function MCb(){if(HCb==256){GCb=ICb;ICb=new nb;HCb=0}++HCb} +function nd(a){var b;return b=a.f,!b?(a.f=new ne(a,a.c)):b} +function d2b(a){return Qld(a)&&Ccb(DD(hkd(a,(Nyc(),gxc))))} +function mcc(a,b){return Rc(a,BD(vNb(b,(Nyc(),Nxc)),19),b)} +function POc(a,b){return vPc(a.j,b.s,b.c)+vPc(b.e,a.s,a.c)} +function ooc(a,b){if(!!a.e&&!a.e.a){moc(a.e,b);ooc(a.e,b)}} +function noc(a,b){if(!!a.d&&!a.d.a){moc(a.d,b);noc(a.d,b)}} +function hed(a,b){return -Kdb(red(a)*qed(a),red(b)*qed(b))} +function cgd(a){return BD(a.cd(),146).tg()+':'+fcb(a.dd())} +function Zgc(a){Hgc();var b;b=BD(a.g,10);b.n.a=a.d.c+b.d.b} +function wgc(a,b,c){qgc();return iEb(BD(Ohb(a.e,b),522),c)} +function Y2c(a,b){rb(a);rb(b);return Xr(BD(a,22),BD(b,22))} +function oic(a,b,c){a.i=0;a.e=0;if(b==c){return}kic(a,b,c)} +function pic(a,b,c){a.i=0;a.e=0;if(b==c){return}lic(a,b,c)} +function Spd(a,b,c){var d,e;d=Kcb(c);e=new TB(d);cC(a,b,e)} +function FSd(a,b,c,d,e,f){ESd.call(this,a,b,c,d,e,f?-2:-1)} +function U5d(a,b,c,d){MLd.call(this,b,c);this.b=a;this.a=d} +function QRc(a,b){new Psb;this.a=new s7c;this.b=a;this.c=b} +function Hec(a,b){BD(vNb(a,(wtc(),Qsc)),15).Fc(b);return b} +function Rb(a,b){if(a==null){throw vbb(new Heb(b))}return a} +function WKd(a){!a.q&&(a.q=new cUd(n5,a,11,10));return a.q} +function ZKd(a){!a.s&&(a.s=new cUd(t5,a,21,17));return a.s} +function Vod(a){!a.a&&(a.a=new cUd(E2,a,10,11));return a.a} +function Dx(a){return JD(a,14)?new Vqb(BD(a,14)):Ex(a.Kc())} +function Ni(a){return new aj(a,a.e.Hd().gc()*a.c.Hd().gc())} +function Zi(a){return new kj(a,a.e.Hd().gc()*a.c.Hd().gc())} +function rz(a){return !!a&&!!a.hashCode?a.hashCode():FCb(a)} +function Qhb(a,b){return b==null?!!irb(a.f,null):Brb(a.g,b)} +function Oq(a){Qb(a);return mr(new Sr(ur(a.a.Kc(),new Sq)))} +function vmb(a){mmb();return JD(a,54)?new Yob(a):new Inb(a)} +function VDb(a,b,c){if(a.f){return a.f.Ne(b,c)}return false} +function Gfb(a,b){a.a=qfb(a.a,0,b)+''+pfb(a.a,b+1);return a} +function fVb(a,b){var c;c=Sqb(a.a,b);c&&(b.d=null);return c} +function zpb(a){var b,c;c=a;b=c.$modCount|0;c.$modCount=b+1} +function pu(a){this.b=a;this.c=a;a.e=null;a.c=null;this.a=1} +function hOb(a){this.b=a;this.a=new Hxb(BD(Qb(new kOb),62))} +function uEb(a){this.c=a;this.b=new Hxb(BD(Qb(new xEb),62))} +function SVb(a){this.c=a;this.b=new Hxb(BD(Qb(new VVb),62))} +function FYb(){this.a=new HXb;this.b=new LXb;this.d=new SYb} +function UZb(){this.a=new s7c;this.b=(Xj(3,Jie),new Skb(3))} +function VMc(){this.b=new Tqb;this.d=new Psb;this.e=new twb} +function K6c(a){this.c=a.c;this.d=a.d;this.b=a.b;this.a=a.a} +function Ay(a,b){oi.call(this,new Qwb(a));this.a=a;this.b=b} +function eod(){bod(this,new $md);this.wb=(NFd(),MFd);LFd()} +function eHc(a){Odd(a,'No crossing minimization',1);Qdd(a)} +function Gz(a){Az();$wnd.setTimeout(function(){throw a},0)} +function _Kd(a){if(!a.u){$Kd(a);a.u=new YOd(a,a)}return a.u} +function wjd(a){var b;b=BD(Ajd(a,16),26);return !b?a.zh():b} +function Jsd(a,b){return JD(b,146)&&dfb(a.b,BD(b,146).tg())} +function t0d(a,b){return a.a?b.Wg().Kc():BD(b.Wg(),69).Zh()} +function u3b(a){return a.k==(j0b(),h0b)&&wNb(a,(wtc(),Csc))} +function ux(a){this.a=(mmb(),JD(a,54)?new Yob(a):new Inb(a))} +function Rz(){Rz=ccb;var a,b;b=!Xz();a=new dA;Qz=b?new Yz:a} +function Wy(a,b){var c;c=hdb(a.gm);return b==null?c:c+': '+b} +function Eob(a,b){var c;c=a.b.Qc(b);Fob(c,a.b.gc());return c} +function ytb(a,b){if(a==null){throw vbb(new Heb(b))}return a} +function irb(a,b){return grb(a,b,hrb(a,b==null?0:a.b.se(b)))} +function ofb(a,b,c){return c>=0&&dfb(a.substr(c,b.length),b)} +function H2d(a,b,c,d,e,f,g){return new O7d(a.e,b,c,d,e,f,g)} +function Cxd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} +function vyd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} +function $Ec(a,b){this.g=a;this.d=OC(GC(OQ,1),kne,10,0,[b])} +function KVd(a,b){this.e=a;this.a=SI;this.b=R5d(b);this.c=b} +function cIb(a,b){$Gb.call(this);THb(this);this.a=a;this.c=b} +function kBc(a,b,c,d){NC(a.c[b.g],c.g,d);NC(a.c[c.g],b.g,d)} +function nBc(a,b,c,d){NC(a.c[b.g],b.g,c);NC(a.b[b.g],b.g,d)} +function cBc(){_Ac();return OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])} +function crc(){_qc();return OC(GC(MW,1),Kie,479,0,[$qc,Zqc])} +function Aqc(){xqc();return OC(GC(JW,1),Kie,419,0,[vqc,wqc])} +function Lpc(){Ipc();return OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])} +function psc(){msc();return OC(GC(SW,1),Kie,420,0,[ksc,lsc])} +function EAc(){BAc();return OC(GC(cX,1),Kie,421,0,[zAc,AAc])} +function XIc(){UIc();return OC(GC(mY,1),Kie,523,0,[TIc,SIc])} +function KOc(){HOc();return OC(GC(DZ,1),Kie,520,0,[GOc,FOc])} +function _Lc(){YLc();return OC(GC(fZ,1),Kie,516,0,[XLc,WLc])} +function hMc(){eMc();return OC(GC(gZ,1),Kie,515,0,[cMc,dMc])} +function IQc(){FQc();return OC(GC(YZ,1),Kie,455,0,[DQc,EQc])} +function bUc(){$Tc();return OC(GC(F$,1),Kie,425,0,[ZTc,YTc])} +function VTc(){STc();return OC(GC(E$,1),Kie,480,0,[QTc,RTc])} +function VUc(){PUc();return OC(GC(K$,1),Kie,495,0,[NUc,OUc])} +function jWc(){fWc();return OC(GC(X$,1),Kie,426,0,[dWc,eWc])} +function g1c(){a1c();return OC(GC(X_,1),Kie,429,0,[_0c,$0c])} +function F_c(){C_c();return OC(GC(P_,1),Kie,430,0,[B_c,A_c])} +function PEb(){MEb();return OC(GC(aN,1),Kie,428,0,[LEb,KEb])} +function XEb(){UEb();return OC(GC(bN,1),Kie,427,0,[SEb,TEb])} +function $Rb(){XRb();return OC(GC(gP,1),Kie,424,0,[VRb,WRb])} +function B5b(){y5b();return OC(GC(ZR,1),Kie,511,0,[x5b,w5b])} +function lid(a,b,c,d){return c>=0?a.jh(b,c,d):a.Sg(null,c,d)} +function hgd(a){if(a.b.b==0){return a.a.$e()}return Lsb(a.b)} +function Xwd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.f)} +function exd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.k)} +function pNd(a){PD(a.a)===PD((NKd(),MKd))&&qNd(a);return a.a} +function by(a){this.a=BD(Qb(a),271);this.b=(mmb(),new Zob(a))} +function bQc(a,b){$Pc(this,new f7c(a.a,a.b));_Pc(this,Ru(b))} +function FQc(){FQc=ccb;DQc=new GQc(jle,0);EQc=new GQc(kle,1)} +function YLc(){YLc=ccb;XLc=new ZLc(kle,0);WLc=new ZLc(jle,1)} +function Hp(){Gp.call(this,new Mqb(Cv(12)));Lb(true);this.a=2} +function Hge(a,b,c){wfe();xfe.call(this,a);this.b=b;this.a=c} +function cWd(a,b,c){UVd();VVd.call(this,b);this.a=a;this.b=c} +function aIb(a){$Gb.call(this);THb(this);this.a=a;this.c=true} +function isb(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a} +function $Cb(a){var b;NGb(a.a);MGb(a.a);b=new YGb(a.a);UGb(b)} +function iKb(a,b){hKb(a,true);Hkb(a.e.wf(),new mKb(a,true,b))} +function tlb(a,b){pCb(b);return vlb(a,KC(WD,oje,25,b,15,1),b)} +function YPb(a,b){QPb();return a==Xod(jtd(b))||a==Xod(ltd(b))} +function Phb(a,b){return b==null?Wd(irb(a.f,null)):Crb(a.g,b)} +function Ksb(a){return a.b==0?null:(sCb(a.b!=0),Nsb(a,a.a.a))} +function QD(a){return Math.max(Math.min(a,Ohe),-2147483648)|0} +function uz(a,b){var c=tz[a.charCodeAt(0)];return c==null?a:c} +function Cx(a,b){Rb(a,'set1');Rb(b,'set2');return new Px(a,b)} +function QUb(a,b){var c;c=zUb(a.f,b);return P6c(V6c(c),a.f.d)} +function Jwb(a,b){var c,d;c=b;d=new fxb;Lwb(a,c,d);return d.d} +function NJb(a,b,c,d){var e;e=new aHb;b.a[c.g]=e;Npb(a.b,d,e)} +function zid(a,b,c){var d;d=a.Yg(b);d>=0?a.sh(d,c):uid(a,b,c)} +function hvd(a,b,c){evd();!!a&&Rhb(dvd,a,b);!!a&&Rhb(cvd,a,c)} +function g_c(a,b,c){this.i=new Rkb;this.b=a;this.g=b;this.a=c} +function VZc(a,b,c){this.c=new Rkb;this.e=a;this.f=b;this.b=c} +function b$c(a,b,c){this.a=new Rkb;this.e=a;this.f=b;this.c=c} +function Zy(a,b){Py(this);this.f=b;this.g=a;Ry(this);this._d()} +function ZA(a,b){var c;c=a.q.getHours();a.q.setDate(b);YA(a,c)} +function no(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Od(c.g,c.i)}} +function Fx(a){var b;b=new Uqb(Cv(a.length));nmb(b,a);return b} +function ecb(a){function b(){} +;b.prototype=a||{};return new b} +function dkb(a,b){if(Zjb(a,b)){wkb(a);return true}return false} +function aC(a,b){if(b==null){throw vbb(new Geb)}return bC(a,b)} +function tdb(a){if(a.qe()){return null}var b=a.n;return _bb[b]} +function Mld(a){if(a.Db>>16!=3)return null;return BD(a.Cb,33)} +function mpd(a){if(a.Db>>16!=9)return null;return BD(a.Cb,33)} +function fmd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,79)} +function Ind(a){if(a.Db>>16!=7)return null;return BD(a.Cb,235)} +function Fod(a){if(a.Db>>16!=7)return null;return BD(a.Cb,160)} +function Xod(a){if(a.Db>>16!=11)return null;return BD(a.Cb,33)} +function nid(a,b){var c;c=a.Yg(b);return c>=0?a.lh(c):tid(a,b)} +function Dtd(a,b){var c;c=new Bsb(b);Ve(c,a);return new Tkb(c)} +function Uud(a){var b;b=a.d;b=a.si(a.f);wtd(a,b);return b.Ob()} +function t_b(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a} +function A4b(a,b){return $wnd.Math.abs(a)<$wnd.Math.abs(b)?a:b} +function Zod(a){return !a.a&&(a.a=new cUd(E2,a,10,11)),a.a.i>0} +function oDb(){this.a=new zsb;this.e=new Tqb;this.g=0;this.i=0} +function BGc(a){this.a=a;this.b=KC(SX,nie,1944,a.e.length,0,2)} +function RHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length)} +function eMc(){eMc=ccb;cMc=new fMc(vle,0);dMc=new fMc('UP',1)} +function STc(){STc=ccb;QTc=new TTc(Yqe,0);RTc=new TTc('FAN',1)} +function evd(){evd=ccb;dvd=new Lqb;cvd=new Lqb;ivd(hK,new jvd)} +function Swd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.f,0)} +function _wd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.k,0)} +function MHd(a){if(a.Db>>16!=3)return null;return BD(a.Cb,147)} +function ZJd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,235)} +function WId(a){if(a.Db>>16!=17)return null;return BD(a.Cb,26)} +function rdb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.le(b))} +function hrb(a,b){var c;c=a.a.get(b);return c==null?new Array:c} +function aB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);YA(a,c)} +function Shb(a,b,c){return b==null?jrb(a.f,null,c):Drb(a.g,b,c)} +function FLd(a,b,c,d,e,f){return new pSd(a.e,b,a.aj(),c,d,e,f)} +function Tfb(a,b,c){a.a=qfb(a.a,0,b)+(''+c)+pfb(a.a,b);return a} +function bq(a,b,c){Ekb(a.a,(Vm(),Wj(b,c),new Wo(b,c)));return a} +function uu(a){ot(a.c);a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f} +function vu(a){ot(a.e);a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f} +function RZb(a,b){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Ekb(a.d.e,a)} +function QZb(a,b){!!a.c&&Lkb(a.c.g,a);a.c=b;!!a.c&&Ekb(a.c.g,a)} +function $_b(a,b){!!a.c&&Lkb(a.c.a,a);a.c=b;!!a.c&&Ekb(a.c.a,a)} +function F0b(a,b){!!a.i&&Lkb(a.i.j,a);a.i=b;!!a.i&&Ekb(a.i.j,a)} +function jDb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} +function qXb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} +function aOb(a,b){this.a=a;this.c=R6c(this.a);this.b=new K6c(b)} +function IAb(a){var b;Uzb(a);b=new Tqb;return JAb(a,new jBb(b))} +function wCb(a,b){if(a<0||a>b){throw vbb(new qcb(Ake+a+Bke+b))}} +function Ppb(a,b){return vqb(a.a,b)?Qpb(a,BD(b,22).g,null):null} +function WUb(a){LUb();return Bcb(),BD(a.a,81).d.e!=0?true:false} +function qs(){qs=ccb;ps=as((hs(),OC(GC(yG,1),Kie,538,0,[gs])))} +function SBc(){SBc=ccb;RBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function ZBc(){ZBc=ccb;YBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function oCc(){oCc=ccb;nCc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function aJc(){aJc=ccb;_Ic=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function FJc(){FJc=ccb;EJc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function ILc(){ILc=ccb;HLc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function wMc(){wMc=ccb;vMc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function fUc(){fUc=ccb;eUc=c3c(new j3c,(yRc(),xRc),(qSc(),kSc))} +function DOc(a,b,c,d){this.c=a;this.d=d;BOc(this,b);COc(this,c)} +function W3c(a){this.c=new Psb;this.b=a.b;this.d=a.c;this.a=a.a} +function e7c(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)} +function BOc(a,b){!!a.a&&Lkb(a.a.k,a);a.a=b;!!a.a&&Ekb(a.a.k,a)} +function COc(a,b){!!a.b&&Lkb(a.b.f,a);a.b=b;!!a.b&&Ekb(a.b.f,a)} +function D1c(a,b){E1c(a,a.b,a.c);BD(a.b.b,65);!!b&&BD(b.b,65).b} +function BUd(a,b){CUd(a,b);JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),2)} +function cJd(a,b){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,b)} +function lKd(a,b){JD(a.Cb,179)&&(BD(a.Cb,179).tb=null);pnd(a,b)} +function T2d(a,b){return Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)} +function jsd(a,b){var c,d;c=b.c;d=c!=null;d&&Qpd(a,new yC(b.c))} +function XOd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} +function eTd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} +function yCc(a,b){var c;c=new H1b(a);b.c[b.c.length]=c;return c} +function Aw(a,b){var c;c=BD(Hv(nd(a.a),b),14);return !c?0:c.gc()} +function UAb(a){var b;Uzb(a);b=(ipb(),ipb(),gpb);return VAb(a,b)} +function nr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}} +function Ki(a,b){Ii.call(this,new Mqb(Cv(a)));Xj(b,mie);this.a=b} +function Jib(a,b,c){xCb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b} +function Mkb(a,b,c){var d;xCb(b,c,a.c.length);d=c-b;cCb(a.c,b,d)} +function Fub(a,b){Eub(a,Tbb(xbb(Obb(b,24),nke)),Tbb(xbb(b,nke)))} +function tCb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ake+a+Bke+b))}} +function BCb(a,b){if(a<0||a>=b){throw vbb(new Xfb(Ake+a+Bke+b))}} +function Kub(a,b){this.b=(uCb(a),a);this.a=(b&Rje)==0?b|64|oie:b} +function kkb(a){Vjb(this);dCb(this.a,geb($wnd.Math.max(8,a))<<1)} +function A0b(a){return l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a]))} +function Iyb(){Fyb();return OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])} +function jHb(){gHb();return OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])} +function QHb(){NHb();return OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])} +function HIb(){EIb();return OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])} +function UXb(){RXb();return OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])} +function BTb(){yTb();return OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])} +function Bzc(){xzc();return OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])} +function Xpc(){Rpc();return OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])} +function eqc(){bqc();return OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])} +function Jqc(){Gqc();return OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])} +function Ikc(){Fkc();return OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])} +function hsc(){esc();return OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])} +function $rc(){Xrc();return OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])} +function NAc(){KAc();return OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])} +function wAc(){tAc();return OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])} +function WAc(){TAc();return OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])} +function OBc(){LBc();return OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])} +function wBc(){tBc();return OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])} +function FBc(){CBc();return OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])} +function uGc(){rGc();return OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])} +function xVc(){tVc();return OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])} +function tWc(){pWc();return OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])} +function CYc(){zYc();return OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])} +function wXc(){sXc();return OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])} +function _$c(){Y$c();return OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])} +function kbd(){hbd();return OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])} +function tad(){qad();return OC(GC(u1,1),Kie,272,0,[nad,oad,pad])} +function o3d(a,b){return p3d(a,b,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function LZc(a,b,c){var d;d=MZc(a,b,false);return d.b<=b&&d.a<=c} +function tMc(a,b,c){var d;d=new sMc;d.b=b;d.a=c;++b.b;Ekb(a.d,d)} +function fs(a,b){var c;c=(uCb(a),a).g;lCb(!!c);uCb(b);return c(b)} +function av(a,b){var c,d;d=cv(a,b);c=a.a.Zc(d);return new qv(a,c)} +function cKd(a){if(a.Db>>16!=6)return null;return BD(aid(a),235)} +function Uwd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.f)&aje} +function bxd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.k)&aje} +function Z1d(a){a.a==(T0d(),S0d)&&d2d(a,U0d(a.g,a.b));return a.a} +function _1d(a){a.d==(T0d(),S0d)&&f2d(a,Y0d(a.g,a.b));return a.d} +function mlb(a){sCb(a.a<a.c.c.length);a.b=a.a++;return a.c.c[a.b]} +function hEb(a,b){a.b=a.b|b.b;a.c=a.c|b.c;a.d=a.d|b.d;a.a=a.a|b.a} +function xbb(a,b){return zbb(dD(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b))} +function Mbb(a,b){return zbb(jD(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b))} +function Vbb(a,b){return zbb(rD(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b))} +function Dub(a){return wbb(Nbb(Cbb(Cub(a,32)),32),Cbb(Cub(a,32)))} +function Mu(a){Qb(a);return JD(a,14)?new Tkb(BD(a,14)):Nu(a.Kc())} +function EWb(a,b){AWb();return a.c==b.c?Kdb(b.d,a.d):Kdb(a.c,b.c)} +function FWb(a,b){AWb();return a.c==b.c?Kdb(a.d,b.d):Kdb(a.c,b.c)} +function HWb(a,b){AWb();return a.c==b.c?Kdb(a.d,b.d):Kdb(b.c,a.c)} +function GWb(a,b){AWb();return a.c==b.c?Kdb(b.d,a.d):Kdb(b.c,a.c)} +function WGb(a,b){var c;c=Edb(ED(a.a.We((Y9c(),Q9c))));XGb(a,b,c)} +function Rgc(a,b){var c;c=BD(Ohb(a.g,b),57);Hkb(b.d,new Qhc(a,c))} +function GYb(a,b){var c,d;c=d_b(a);d=d_b(b);return c<d?-1:c>d?1:0} +function bjc(a,b){var c,d;c=ajc(b);d=c;return BD(Ohb(a.c,d),19).a} +function iSc(a,b){var c;c=a+'';while(c.length<b){c='0'+c}return c} +function WRc(a){return a.c==null||a.c.length==0?'n_'+a.g:'n_'+a.c} +function oRb(a){return a.c==null||a.c.length==0?'n_'+a.b:'n_'+a.c} +function qz(a,b){return !!a&&!!a.equals?a.equals(b):PD(a)===PD(b)} +function dkd(a,b){if(b==0){return !!a.o&&a.o.f!=0}return mid(a,b)} +function Tdd(a,b,c){var d;if(a.n&&!!b&&!!c){d=new kgd;Ekb(a.e,d)}} +function cIc(a,b,c){var d;d=a.d[b.p];a.d[b.p]=a.d[c.p];a.d[c.p]=d} +function kxd(a,b,c){this.d=a;this.j=b;this.e=c;this.o=-1;this.p=3} +function lxd(a,b,c){this.d=a;this.k=b;this.f=c;this.o=-1;this.p=5} +function zge(a,b,c){xfe.call(this,25);this.b=a;this.a=b;this.c=c} +function $fe(a){wfe();xfe.call(this,a);this.c=false;this.a=false} +function sSd(a,b,c,d,e,f){rSd.call(this,a,b,c,d,e);f&&(this.o=-2)} +function uSd(a,b,c,d,e,f){tSd.call(this,a,b,c,d,e);f&&(this.o=-2)} +function wSd(a,b,c,d,e,f){vSd.call(this,a,b,c,d,e);f&&(this.o=-2)} +function ySd(a,b,c,d,e,f){xSd.call(this,a,b,c,d,e);f&&(this.o=-2)} +function ASd(a,b,c,d,e,f){zSd.call(this,a,b,c,d,e);f&&(this.o=-2)} +function CSd(a,b,c,d,e,f){BSd.call(this,a,b,c,d,e);f&&(this.o=-2)} +function HSd(a,b,c,d,e,f){GSd.call(this,a,b,c,d,e);f&&(this.o=-2)} +function JSd(a,b,c,d,e,f){ISd.call(this,a,b,c,d,e);f&&(this.o=-2)} +function nWd(a,b,c,d){VVd.call(this,c);this.b=a;this.c=b;this.d=d} +function x$c(a,b){this.a=new Rkb;this.d=new Rkb;this.f=a;this.c=b} +function PTb(){this.c=new bUb;this.a=new FYb;this.b=new wZb;$Yb()} +function b2c(){Y1c();this.b=new Lqb;this.a=new Lqb;this.c=new Rkb} +function j2d(a,b){this.g=a;this.d=(T0d(),S0d);this.a=S0d;this.b=b} +function O1d(a,b){this.f=a;this.a=(T0d(),R0d);this.c=R0d;this.b=b} +function h9d(a,b){!a.c&&(a.c=new u3d(a,0));f3d(a.c,(Q8d(),I8d),b)} +function $Tc(){$Tc=ccb;ZTc=new _Tc('DFS',0);YTc=new _Tc('BFS',1)} +function Cc(a,b,c){var d;d=BD(a.Zb().xc(b),14);return !!d&&d.Hc(c)} +function Gc(a,b,c){var d;d=BD(a.Zb().xc(b),14);return !!d&&d.Mc(c)} +function Ofb(a,b,c,d){a.a+=''+qfb(b==null?Xhe:fcb(b),c,d);return a} +function Xnd(a,b,c,d,e,f){Ynd(a,b,c,f);eLd(a,d);fLd(a,e);return a} +function Ysb(a){sCb(a.b.b!=a.d.a);a.c=a.b=a.b.b;--a.a;return a.c.c} +function Jgb(a){while(a.d>0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)} +function wwb(a){return !a.a?a.c:a.e.length==0?a.a.a:a.a.a+(''+a.e)} +function RSd(a){return !!a.a&&QSd(a.a.a).i!=0&&!(!!a.b&&QTd(a.b))} +function cLd(a){return !!a.u&&VKd(a.u.a).i!=0&&!(!!a.n&&FMd(a.n))} +function $i(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),16,new ij(a))} +function XA(a,b){return ueb(Cbb(a.q.getTime()),Cbb(b.q.getTime()))} +function k_b(a){return BD(Qkb(a,KC(AQ,jne,17,a.c.length,0,1)),474)} +function l_b(a){return BD(Qkb(a,KC(OQ,kne,10,a.c.length,0,1)),193)} +function cKc(a){FJc();return !OZb(a)&&!(!OZb(a)&&a.c.i.c==a.d.i.c)} +function kDb(a,b,c){var d;d=(Qb(a),new Tkb(a));iDb(new jDb(d,b,c))} +function rXb(a,b,c){var d;d=(Qb(a),new Tkb(a));pXb(new qXb(d,b,c))} +function Nwb(a,b){var c;c=1-b;a.a[c]=Owb(a.a[c],c);return Owb(a,b)} +function YXc(a,b){var c;a.e=new QXc;c=gVc(b);Okb(c,a.c);ZXc(a,c,0)} +function o4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.a,e)} +function p4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.b,e)} +function i6d(a){var b,c,d;b=new A6d;c=s6d(b,a);z6d(b);d=c;return d} +function vZd(){var a,b,c;b=(c=(a=new UQd,a),c);Ekb(rZd,b);return b} +function H2c(a){a.j.c=KC(SI,Uhe,1,0,5,1);Ae(a.c);h3c(a.a);return a} +function tgc(a){qgc();if(JD(a.g,10)){return BD(a.g,10)}return null} +function Zw(a){if(Ah(a).dc()){return false}Bh(a,new bx);return true} +function _y(b){if(!('stack' in b)){try{throw b}catch(a){}}return b} +function Pb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ib(a,b)))}return a} +function Tb(a,b,c){if(a<0||b<a||b>c){throw vbb(new qcb(Kb(a,b,c)))}} +function eVb(a,b){Qqb(a.a,b);if(b.d){throw vbb(new hz(Hke))}b.d=a} +function xpb(a,b){if(b.$modCount!=a.$modCount){throw vbb(new Apb)}} +function $pb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function dib(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function msb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function qAb(a,b){if(a.a<=a.b){b.ud(a.a++);return true}return false} +function Sbb(a){var b;if(Fbb(a)){b=a;return b==-0.?0:b}return oD(a)} +function tAb(a){var b;Tzb(a);b=new drb;_ub(a.a,new BAb(b));return b} +function Yzb(a){var b;Tzb(a);b=new Gpb;_ub(a.a,new mAb(b));return b} +function Bib(a,b){this.a=a;vib.call(this,a);wCb(b,a.gc());this.b=b} +function orb(a){this.e=a;this.b=this.e.a.entries();this.a=new Array} +function Oi(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),273,new cj(a))} +function Qu(a){return new Skb((Xj(a,Mie),Oy(wbb(wbb(5,a),a/10|0))))} +function m_b(a){return BD(Qkb(a,KC(aR,lne,11,a.c.length,0,1)),1943)} +function sMb(a,b,c){return c.f.c.length>0?HMb(a.a,b,c):HMb(a.b,b,c)} +function SZb(a,b,c){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Dkb(a.d.e,c,a)} +function a5b(a,b){i5b(b,a);k5b(a.d);k5b(BD(vNb(a,(Nyc(),wxc)),207))} +function _4b(a,b){f5b(b,a);h5b(a.d);h5b(BD(vNb(a,(Nyc(),wxc)),207))} +function Ypd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.fe());return d} +function Zpd(a,b){var c,d;c=tB(a,b);d=null;!!c&&(d=c.ie());return d} +function $pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.ie());return d} +function _pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=aqd(c));return d} +function Tqd(a,b,c){var d;d=Wpd(c);ro(a.g,d,b);ro(a.i,b,c);return b} +function Ez(a,b,c){var d;d=Cz();try{return Bz(a,b,c)}finally{Fz(d)}} +function C6d(a){var b;b=a.Wg();this.a=JD(b,69)?BD(b,69).Zh():b.Kc()} +function j3c(){D2c.call(this);this.j.c=KC(SI,Uhe,1,0,5,1);this.a=-1} +function mxd(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1} +function jk(a,b,c,d){this.e=d;this.d=null;this.c=a;this.a=b;this.b=c} +function uEc(a,b,c){this.d=new HEc(this);this.e=a;this.i=b;this.f=c} +function msc(){msc=ccb;ksc=new nsc(gle,0);lsc=new nsc('TOP_LEFT',1)} +function cDc(){cDc=ccb;bDc=ix(meb(1),meb(4));aDc=ix(meb(1),meb(2))} +function z_c(){z_c=ccb;y_c=as((s_c(),OC(GC(O_,1),Kie,551,0,[r_c])))} +function q_c(){q_c=ccb;p_c=as((i_c(),OC(GC(N_,1),Kie,482,0,[h_c])))} +function Z0c(){Z0c=ccb;Y0c=as((R0c(),OC(GC(W_,1),Kie,530,0,[Q0c])))} +function hPb(){hPb=ccb;gPb=as((cPb(),OC(GC(GO,1),Kie,481,0,[bPb])))} +function yLb(){vLb();return OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])} +function qxb(){lxb();return OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])} +function UOb(){ROb();return OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])} +function UMb(){RMb();return OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])} +function sWb(){lWb();return OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])} +function kbc(){gbc();return OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])} +function Vc(a,b,c,d){return JD(c,54)?new Cg(a,b,c,d):new qg(a,b,c,d)} +function Djc(){Ajc();return OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])} +function okc(a){var b;return a.j==(Ucd(),Rcd)&&(b=pkc(a),uqb(b,zcd))} +function Mdc(a,b){var c;c=b.a;QZb(c,b.c.d);RZb(c,b.d.d);q7c(c.a,a.n)} +function Smc(a,b){return BD(Btb(QAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} +function Tmc(a,b){return BD(Btb(RAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} +function _w(a){return new Kub(rmb(BD(a.a.dd(),14).gc(),a.a.cd()),16)} +function Qq(a){if(JD(a,14)){return BD(a,14).dc()}return !a.Kc().Ob()} +function ugc(a){qgc();if(JD(a.g,145)){return BD(a.g,145)}return null} +function Ko(a){if(a.e.g!=a.b){throw vbb(new Apb)}return !!a.c&&a.d>0} +function Xsb(a){sCb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c} +function Xjb(a,b){uCb(b);NC(a.a,a.c,b);a.c=a.c+1&a.a.length-1;_jb(a)} +function Wjb(a,b){uCb(b);a.b=a.b-1&a.a.length-1;NC(a.a,a.b,b);_jb(a)} +function A2c(a,b){var c;for(c=a.j.c.length;c<b;c++){Ekb(a.j,a.rg())}} +function gBc(a,b,c,d){var e;e=d[b.g][c.g];return Edb(ED(vNb(a.a,e)))} +function goc(a,b,c,d,e){this.i=a;this.a=b;this.e=c;this.j=d;this.f=e} +function DZc(a,b,c,d,e){this.a=a;this.e=b;this.f=c;this.b=d;this.g=e} +function Fz(a){a&&Mz((Kz(),Jz));--xz;if(a){if(zz!=-1){Hz(zz);zz=-1}}} +function Nzc(){Izc();return OC(GC($W,1),Kie,197,0,[Gzc,Hzc,Fzc,Ezc])} +function ERc(){yRc();return OC(GC(h$,1),Kie,393,0,[uRc,vRc,wRc,xRc])} +function mXc(){iXc();return OC(GC(a_,1),Kie,340,0,[hXc,fXc,gXc,eXc])} +function wdd(){tdd();return OC(GC(I1,1),Kie,374,0,[rdd,sdd,qdd,pdd])} +function vbd(){rbd();return OC(GC(A1,1),Kie,285,0,[qbd,nbd,obd,pbd])} +function Dad(){Aad();return OC(GC(v1,1),Kie,218,0,[zad,xad,wad,yad])} +function Ged(){Ded();return OC(GC(O1,1),Kie,311,0,[Ced,zed,Bed,Aed])} +function sgd(){pgd();return OC(GC(k2,1),Kie,396,0,[mgd,ngd,lgd,ogd])} +function gvd(a){evd();return Mhb(dvd,a)?BD(Ohb(dvd,a),331).ug():null} +function cid(a,b,c){return b<0?tid(a,c):BD(c,66).Nj().Sj(a,a.yh(),b)} +function Sqd(a,b,c){var d;d=Wpd(c);ro(a.d,d,b);Rhb(a.e,b,c);return b} +function Uqd(a,b,c){var d;d=Wpd(c);ro(a.j,d,b);Rhb(a.k,b,c);return b} +function dtd(a){var b,c;b=(Fhd(),c=new Tld,c);!!a&&Rld(b,a);return b} +function wud(a){var b;b=a.ri(a.i);a.i>0&&$fb(a.g,0,b,0,a.i);return b} +function qEd(a,b){pEd();var c;c=BD(Ohb(oEd,a),55);return !c||c.wj(b)} +function Twd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.f)<<24>>24} +function axd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.k)<<24>>24} +function gxd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.k)<<16>>16} +function Zwd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.f)<<16>>16} +function sr(a){var b;b=0;while(a.Ob()){a.Pb();b=wbb(b,1)}return Oy(b)} +function nx(a,b){var c;c=new Vfb;a.xd(c);c.a+='..';b.yd(c);return c.a} +function Sgc(a,b,c){var d;d=BD(Ohb(a.g,c),57);Ekb(a.a.c,new vgd(b,d))} +function VCb(a,b,c){return Ddb(ED(Wd(irb(a.f,b))),ED(Wd(irb(a.f,c))))} +function E2d(a,b,c){return F2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function L2d(a,b,c){return M2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function q3d(a,b,c){return r3d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function JJc(a,b){return a==(j0b(),h0b)&&b==h0b?4:a==h0b||b==h0b?8:32} +function Nd(a,b){return PD(b)===PD(a)?'(this Map)':b==null?Xhe:fcb(b)} +function kFd(a,b){return BD(b==null?Wd(irb(a.f,null)):Crb(a.g,b),281)} +function Rqd(a,b,c){var d;d=Wpd(c);Rhb(a.b,d,b);Rhb(a.c,b,c);return b} +function Bfd(a,b){var c;c=b;while(c){O6c(a,c.i,c.j);c=Xod(c)}return a} +function kt(a,b){var c;c=vmb(Nu(new wu(a,b)));ir(new wu(a,b));return c} +function R6d(a,b){Q6d();var c;c=BD(a,66).Mj();kVd(c,b);return c.Ok(b)} +function TOc(a,b,c,d,e){var f;f=OOc(e,c,d);Ekb(b,tOc(e,f));XOc(a,e,b)} +function mic(a,b,c){a.i=0;a.e=0;if(b==c){return}lic(a,b,c);kic(a,b,c)} +function dB(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+nje);YA(a,c)} +function dC(d,a,b){if(b){var c=b.ee();d.a[a]=c(b)}else{delete d.a[a]}} +function vB(d,a,b){if(b){var c=b.ee();b=c(b)}else{b=undefined}d.a[a]=b} +function pCb(a){if(a<0){throw vbb(new Feb('Negative array size: '+a))}} +function VKd(a){if(!a.n){$Kd(a);a.n=new JMd(a,j5,a);_Kd(a)}return a.n} +function Fqb(a){sCb(a.a<a.c.a.length);a.b=a.a;Dqb(a);return a.c.b[a.b]} +function Yjb(a){if(a.b==a.c){return}a.a=KC(SI,Uhe,1,8,5,1);a.b=0;a.c=0} +function AQb(a){this.b=new Lqb;this.c=new Lqb;this.d=new Lqb;this.a=a} +function lge(a,b){wfe();xfe.call(this,a);this.a=b;this.c=-1;this.b=-1} +function lSd(a,b,c,d){kxd.call(this,1,c,d);jSd(this);this.c=a;this.b=b} +function mSd(a,b,c,d){lxd.call(this,1,c,d);jSd(this);this.c=a;this.b=b} +function O7d(a,b,c,d,e,f,g){nxd.call(this,b,d,e,f,g);this.c=a;this.a=c} +function LVd(a,b,c){this.e=a;this.a=SI;this.b=R5d(b);this.c=b;this.d=c} +function Lo(a){this.e=a;this.c=this.e.a;this.b=this.e.g;this.d=this.e.i} +function nYd(a){this.c=a;this.a=BD(wId(a),148);this.b=this.a.Aj().Nh()} +function Irb(a){this.d=a;this.b=this.d.a.entries();this.a=this.b.next()} +function $rb(){Lqb.call(this);Trb(this);this.d.b=this.d;this.d.a=this.d} +function mRb(a,b){_Qb.call(this);this.a=a;this.b=b;Ekb(this.a.b,this)} +function uFd(a,b){var c;return c=b!=null?Phb(a,b):Wd(irb(a.f,b)),RD(c)} +function FFd(a,b){var c;return c=b!=null?Phb(a,b):Wd(irb(a.f,b)),RD(c)} +function Fob(a,b){var c;for(c=0;c<b;++c){NC(a,c,new Rob(BD(a[c],42)))}} +function Lgb(a,b){var c;for(c=a.d-1;c>=0&&a.a[c]===b[c];c--);return c<0} +function Ucc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return c}return 0} +function Dtb(a,b){uCb(b);if(a.a!=null){return Itb(b.Kb(a.a))}return ztb} +function Gx(a){var b;if(a){return new Bsb(a)}b=new zsb;Jq(b,a);return b} +function GAb(a,b){var c;return b.b.Kb(SAb(a,b.c.Ee(),(c=new TBb(b),c)))} +function Hub(a){zub();Eub(this,Tbb(xbb(Obb(a,24),nke)),Tbb(xbb(a,nke)))} +function REb(){REb=ccb;QEb=as((MEb(),OC(GC(aN,1),Kie,428,0,[LEb,KEb])))} +function ZEb(){ZEb=ccb;YEb=as((UEb(),OC(GC(bN,1),Kie,427,0,[SEb,TEb])))} +function aSb(){aSb=ccb;_Rb=as((XRb(),OC(GC(gP,1),Kie,424,0,[VRb,WRb])))} +function D5b(){D5b=ccb;C5b=as((y5b(),OC(GC(ZR,1),Kie,511,0,[x5b,w5b])))} +function Cqc(){Cqc=ccb;Bqc=as((xqc(),OC(GC(JW,1),Kie,419,0,[vqc,wqc])))} +function erc(){erc=ccb;drc=as((_qc(),OC(GC(MW,1),Kie,479,0,[$qc,Zqc])))} +function eBc(){eBc=ccb;dBc=as((_Ac(),OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])))} +function GAc(){GAc=ccb;FAc=as((BAc(),OC(GC(cX,1),Kie,421,0,[zAc,AAc])))} +function Npc(){Npc=ccb;Mpc=as((Ipc(),OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])))} +function rsc(){rsc=ccb;qsc=as((msc(),OC(GC(SW,1),Kie,420,0,[ksc,lsc])))} +function MOc(){MOc=ccb;LOc=as((HOc(),OC(GC(DZ,1),Kie,520,0,[GOc,FOc])))} +function ZIc(){ZIc=ccb;YIc=as((UIc(),OC(GC(mY,1),Kie,523,0,[TIc,SIc])))} +function bMc(){bMc=ccb;aMc=as((YLc(),OC(GC(fZ,1),Kie,516,0,[XLc,WLc])))} +function jMc(){jMc=ccb;iMc=as((eMc(),OC(GC(gZ,1),Kie,515,0,[cMc,dMc])))} +function KQc(){KQc=ccb;JQc=as((FQc(),OC(GC(YZ,1),Kie,455,0,[DQc,EQc])))} +function dUc(){dUc=ccb;cUc=as(($Tc(),OC(GC(F$,1),Kie,425,0,[ZTc,YTc])))} +function XUc(){XUc=ccb;WUc=as((PUc(),OC(GC(K$,1),Kie,495,0,[NUc,OUc])))} +function XTc(){XTc=ccb;WTc=as((STc(),OC(GC(E$,1),Kie,480,0,[QTc,RTc])))} +function lWc(){lWc=ccb;kWc=as((fWc(),OC(GC(X$,1),Kie,426,0,[dWc,eWc])))} +function i1c(){i1c=ccb;h1c=as((a1c(),OC(GC(X_,1),Kie,429,0,[_0c,$0c])))} +function H_c(){H_c=ccb;G_c=as((C_c(),OC(GC(P_,1),Kie,430,0,[B_c,A_c])))} +function UIc(){UIc=ccb;TIc=new VIc('UPPER',0);SIc=new VIc('LOWER',1)} +function Lqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} +function Oqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} +function Jic(a,b){var c,d;d=false;do{c=Mic(a,b);d=d|c}while(c);return d} +function zHc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d} +function Cfd(a,b){var c;c=b;while(c){O6c(a,-c.i,-c.j);c=Xod(c)}return a} +function reb(a,b){var c,d;uCb(b);for(d=a.Kc();d.Ob();){c=d.Pb();b.td(c)}} +function me(a,b){var c;c=b.cd();return new Wo(c,a.e.pc(c,BD(b.dd(),14)))} +function Gsb(a,b,c,d){var e;e=new jtb;e.c=b;e.b=c;e.a=d;d.b=c.a=e;++a.b} +function Nkb(a,b,c){var d;d=(tCb(b,a.c.length),a.c[b]);a.c[b]=c;return d} +function lFd(a,b,c){return BD(b==null?jrb(a.f,null,c):Drb(a.g,b,c),281)} +function fRb(a){return !!a.c&&!!a.d?oRb(a.c)+'->'+oRb(a.d):'e_'+FCb(a)} +function FAb(a,b){return (Uzb(a),WAb(new YAb(a,new qBb(b,a.a)))).sd(DAb)} +function tUb(){qUb();return OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])} +function _cd(){Ucd();return OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])} +function Dz(b){Az();return function(){return Ez(b,this,arguments);var a}} +function sz(){if(Date.now){return Date.now()}return (new Date).getTime()} +function OZb(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i} +function pv(a){if(!a.c.Sb()){throw vbb(new utb)}a.a=true;return a.c.Ub()} +function ko(a){a.i=0;Alb(a.b,null);Alb(a.c,null);a.a=null;a.e=null;++a.g} +function ycb(a){wcb.call(this,a==null?Xhe:fcb(a),JD(a,78)?BD(a,78):null)} +function PYb(a){MYb();yXb(this);this.a=new Psb;NYb(this,a);Dsb(this.a,a)} +function jYb(){Ckb(this);this.b=new f7c(Pje,Pje);this.a=new f7c(Qje,Qje)} +function rAb(a,b){this.c=0;this.b=b;jvb.call(this,a,17493);this.a=this.c} +function wyb(a){oyb();if(lyb){return}this.c=a;this.e=true;this.a=new Rkb} +function oyb(){oyb=ccb;lyb=true;jyb=false;kyb=false;nyb=false;myb=false} +function C3c(a,b){if(JD(b,149)){return dfb(a.c,BD(b,149).c)}return false} +function zUc(a,b){var c;c=0;!!a&&(c+=a.f.a/2);!!b&&(c+=b.f.a/2);return c} +function j4c(a,b){var c;c=BD(Wrb(a.d,b),23);return c?c:BD(Wrb(a.e,b),23)} +function Lzd(a){this.b=a;Fyd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} +function Uzd(a){this.b=a;$yd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} +function $Kd(a){if(!a.t){a.t=new YMd(a);vtd(new c0d(a),0,a.t)}return a.t} +function kad(){ead();return OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])} +function Wbd(){Tbd();return OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])} +function Q5c(){N5c();return OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])} +function Q_c(){N_c();return OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])} +function _zc(){Vzc();return OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])} +function sqc(){mqc();return OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])} +function n$c(){k$c();return OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])} +function _jc(){Xjc();return OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])} +function Ftc(){Ctc();return OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])} +function T0d(){T0d=ccb;var a,b;R0d=(LFd(),b=new MPd,b);S0d=(a=new OJd,a)} +function yUd(a){var b;if(!a.c){b=a.r;JD(b,88)&&(a.c=BD(b,26))}return a.c} +function zc(a){a.e=3;a.d=a.Yb();if(a.e!=2){a.e=0;return true}return false} +function RC(a){var b,c,d;b=a&Eje;c=a>>22&Eje;d=a<0?Fje:0;return TC(b,c,d)} +function uy(a){var b,c,d,e;for(c=a,d=0,e=c.length;d<e;++d){b=c[d];Qzb(b)}} +function Tc(a,b){var c,d;c=BD(Iv(a.c,b),14);if(c){d=c.gc();c.$b();a.d-=d}} +function tjb(a,b){var c,d;c=b.cd();d=Awb(a,c);return !!d&&wtb(d.e,b.dd())} +function Qgb(a,b){if(b==0||a.e==0){return a}return b>0?ihb(a,b):lhb(a,-b)} +function Rgb(a,b){if(b==0||a.e==0){return a}return b>0?lhb(a,b):ihb(a,-b)} +function Rr(a){if(Qr(a)){a.c=a.a;return a.a.Pb()}else{throw vbb(new utb)}} +function Yac(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(j0b(),e0b)&&c.k==e0b} +function kZb(a){var b;b=new UZb;tNb(b,a);yNb(b,(Nyc(),jxc),null);return b} +function hid(a,b,c){var d;return d=a.Yg(b),d>=0?a._g(d,c,true):sid(a,b,c)} +function uHb(a,b,c,d){var e;for(e=0;e<rHb;e++){nHb(a.a[b.g][e],c,d[b.g])}} +function vHb(a,b,c,d){var e;for(e=0;e<sHb;e++){mHb(a.a[e][b.g],c,d[b.g])}} +function vSd(a,b,c,d,e){kxd.call(this,b,d,e);jSd(this);this.c=a;this.a=c} +function zSd(a,b,c,d,e){lxd.call(this,b,d,e);jSd(this);this.c=a;this.a=c} +function ISd(a,b,c,d,e){oxd.call(this,b,d,e);jSd(this);this.c=a;this.a=c} +function qSd(a,b,c,d,e){oxd.call(this,b,d,e);jSd(this);this.c=a;this.b=c} +function mWd(a,b,c){VVd.call(this,c);this.b=a;this.c=b;this.d=(CWd(),AWd)} +function oxd(a,b,c){this.d=a;this.k=b?1:0;this.f=c?1:0;this.o=-1;this.p=0} +function _6d(a,b,c){var d;d=new a7d(a.a);Ld(d,a.a.a);jrb(d.f,b,c);a.a.a=d} +function lud(a,b){a.qi(a.i+1);mud(a,a.i,a.oi(a.i,b));a.bi(a.i++,b);a.ci()} +function oud(a){var b,c;++a.j;b=a.g;c=a.i;a.g=null;a.i=0;a.di(c,b);a.ci()} +function Ou(a){var b,c;Qb(a);b=Iu(a.length);c=new Skb(b);nmb(c,a);return c} +function km(a){var b;b=(Qb(a),a?new Tkb(a):Nu(a.Kc()));smb(b);return Dm(b)} +function Kkb(a,b){var c;c=(tCb(b,a.c.length),a.c[b]);cCb(a.c,b,1);return c} +function Qc(a,b){var c;c=BD(a.c.xc(b),14);!c&&(c=a.ic(b));return a.pc(b,c)} +function cfb(a,b){var c,d;c=(uCb(a),a);d=(uCb(b),b);return c==d?0:c<d?-1:1} +function Fpb(a){var b;b=a.e+a.f;if(isNaN(b)&&Ldb(a.d)){return a.d}return b} +function uwb(a,b){!a.a?(a.a=new Wfb(a.d)):Qfb(a.a,a.b);Nfb(a.a,b);return a} +function Sb(a,b){if(a<0||a>b){throw vbb(new qcb(Jb(a,b,'index')))}return a} +function zhb(a,b,c,d){var e;e=KC(WD,oje,25,b,15,1);Ahb(e,a,b,c,d);return e} +function _A(a,b){var c;c=a.q.getHours()+(b/60|0);a.q.setMinutes(b);YA(a,c)} +function A$c(a,b){return $wnd.Math.min(S6c(b.a,a.d.d.c),S6c(b.b,a.d.d.c))} +function Thb(a,b){return ND(b)?b==null?krb(a.f,null):Erb(a.g,b):krb(a.f,b)} +function b1b(a){this.c=a;this.a=new olb(this.c.a);this.b=new olb(this.c.b)} +function kRb(){this.e=new Rkb;this.c=new Rkb;this.d=new Rkb;this.b=new Rkb} +function MFb(){this.g=new PFb;this.b=new PFb;this.a=new Rkb;this.k=new Rkb} +function Gjc(a,b,c){this.a=a;this.c=b;this.d=c;Ekb(b.e,this);Ekb(c.b,this)} +function wBb(a,b){fvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function CBb(a,b){jvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function IBb(a,b){nvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function BQc(a,b,c){this.a=a;this.b=b;this.c=c;Ekb(a.t,this);Ekb(b.i,this)} +function SRc(){this.b=new Psb;this.a=new Psb;this.b=new Psb;this.a=new Psb} +function g6c(){g6c=ccb;f6c=new Lsd('org.eclipse.elk.labels.labelManager')} +function Vac(){Vac=ccb;Uac=new Msd('separateLayerConnections',(gbc(),fbc))} +function HOc(){HOc=ccb;GOc=new IOc('REGULAR',0);FOc=new IOc('CRITICAL',1)} +function _Ac(){_Ac=ccb;$Ac=new aBc('STACKED',0);ZAc=new aBc('SEQUENCED',1)} +function C_c(){C_c=ccb;B_c=new D_c('FIXED',0);A_c=new D_c('CENTER_NODE',1)} +function PHc(a,b){var c;c=VHc(a,b);a.b=new BHc(c.c.length);return OHc(a,c)} +function KAd(a,b,c){var d;++a.e;--a.f;d=BD(a.d[b].$c(c),133);return d.dd()} +function JJd(a){var b;if(!a.a){b=a.r;JD(b,148)&&(a.a=BD(b,148))}return a.a} +function poc(a){if(a.a){if(a.e){return poc(a.e)}}else{return a}return null} +function ODc(a,b){if(a.p<b.p){return 1}else if(a.p>b.p){return -1}return 0} +function pvb(a,b){uCb(b);if(a.c<a.d){a.ze(b,a.c++);return true}return false} +function QYd(a,b){if(Mhb(a.a,b)){Thb(a.a,b);return true}else{return false}} +function fd(a){var b,c;b=a.cd();c=BD(a.dd(),14);return $j(c.Nc(),new ah(b))} +function sqb(a){var b;b=BD(ZBb(a.b,a.b.length),9);return new xqb(a.a,b,a.c)} +function _zb(a){var b;Uzb(a);b=new fAb(a,a.a.e,a.a.d|4);return new bAb(a,b)} +function HAb(a){var b;Tzb(a);b=0;while(a.a.sd(new RBb)){b=wbb(b,1)}return b} +function UDc(a,b,c){var d,e;d=0;for(e=0;e<b.length;e++){d+=a.$f(b[e],d,c)}} +function QJb(a,b){var c;if(a.C){c=BD(Mpb(a.b,b),124).n;c.d=a.C.d;c.a=a.C.a}} +function Mi(a,b,c){Pb(b,a.e.Hd().gc());Pb(c,a.c.Hd().gc());return a.a[b][c]} +function Ugb(a,b){Hgb();this.e=a;this.d=1;this.a=OC(GC(WD,1),oje,25,15,[b])} +function dg(a,b,c,d){this.f=a;this.e=b;this.d=c;this.b=d;this.c=!d?null:d.d} +function o5b(a){var b,c,d,e;e=a.d;b=a.a;c=a.b;d=a.c;a.d=c;a.a=d;a.b=e;a.c=b} +function Y2d(a,b,c,d){X2d(a,b,c,M2d(a,b,d,JD(b,99)&&(BD(b,18).Bb&Tje)!=0))} +function tac(a,b){Odd(b,'Label management',1);RD(vNb(a,(g6c(),f6c)));Qdd(b)} +function Skb(a){Ckb(this);mCb(a>=0,'Initial capacity must not be negative')} +function lHb(){lHb=ccb;kHb=as((gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])))} +function SHb(){SHb=ccb;RHb=as((NHb(),OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])))} +function JIb(){JIb=ccb;IIb=as((EIb(),OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])))} +function Kyb(){Kyb=ccb;Jyb=as((Fyb(),OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])))} +function DTb(){DTb=ccb;CTb=as((yTb(),OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])))} +function WXb(){WXb=ccb;VXb=as((RXb(),OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])))} +function Zpc(){Zpc=ccb;Ypc=as((Rpc(),OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])))} +function gqc(){gqc=ccb;fqc=as((bqc(),OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])))} +function Lqc(){Lqc=ccb;Kqc=as((Gqc(),OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])))} +function Kkc(){Kkc=ccb;Jkc=as((Fkc(),OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])))} +function jsc(){jsc=ccb;isc=as((esc(),OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])))} +function asc(){asc=ccb;_rc=as((Xrc(),OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])))} +function Dzc(){Dzc=ccb;Czc=as((xzc(),OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])))} +function YAc(){YAc=ccb;XAc=as((TAc(),OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])))} +function yAc(){yAc=ccb;xAc=as((tAc(),OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])))} +function PAc(){PAc=ccb;OAc=as((KAc(),OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])))} +function QBc(){QBc=ccb;PBc=as((LBc(),OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])))} +function yBc(){yBc=ccb;xBc=as((tBc(),OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])))} +function HBc(){HBc=ccb;GBc=as((CBc(),OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])))} +function wGc(){wGc=ccb;vGc=as((rGc(),OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])))} +function zVc(){zVc=ccb;yVc=as((tVc(),OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])))} +function vWc(){vWc=ccb;uWc=as((pWc(),OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])))} +function EYc(){EYc=ccb;DYc=as((zYc(),OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])))} +function yXc(){yXc=ccb;xXc=as((sXc(),OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])))} +function b_c(){b_c=ccb;a_c=as((Y$c(),OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])))} +function mbd(){mbd=ccb;lbd=as((hbd(),OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])))} +function vad(){vad=ccb;uad=as((qad(),OC(GC(u1,1),Kie,272,0,[nad,oad,pad])))} +function icd(){dcd();return OC(GC(D1,1),Kie,98,0,[ccd,bcd,acd,Zbd,_bd,$bd])} +function ikd(a,b){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),qAd(a.o,b)} +function NAd(a){!a.g&&(a.g=new JCd);!a.g.d&&(a.g.d=new MBd(a));return a.g.d} +function yAd(a){!a.g&&(a.g=new JCd);!a.g.a&&(a.g.a=new SBd(a));return a.g.a} +function EAd(a){!a.g&&(a.g=new JCd);!a.g.b&&(a.g.b=new GBd(a));return a.g.b} +function FAd(a){!a.g&&(a.g=new JCd);!a.g.c&&(a.g.c=new iCd(a));return a.g.c} +function A2d(a,b,c){var d,e;e=new p4d(b,a);for(d=0;d<c;++d){d4d(e)}return e} +function Atd(a,b,c){var d,e;if(c!=null){for(d=0;d<b;++d){e=c[d];a.fi(d,e)}}} +function uhb(a,b,c,d){var e;e=KC(WD,oje,25,b+1,15,1);vhb(e,a,b,c,d);return e} +function KC(a,b,c,d,e,f){var g;g=LC(e,d);e!=10&&OC(GC(a,f),b,c,e,g);return g} +function bYd(a,b,c,d){!!c&&(d=c.gh(b,bLd(c.Tg(),a.c.Lj()),null,d));return d} +function cYd(a,b,c,d){!!c&&(d=c.ih(b,bLd(c.Tg(),a.c.Lj()),null,d));return d} +function KNb(a,b,c){BD(a.b,65);BD(a.b,65);BD(a.b,65);Hkb(a.a,new TNb(c,b,a))} +function ACb(a,b,c){if(a<0||b>c||b<a){throw vbb(new Xfb(xke+a+zke+b+oke+c))}} +function zCb(a){if(!a){throw vbb(new Zdb('Unable to add element to queue'))}} +function Vzb(a){if(!a){this.c=null;this.b=new Rkb}else{this.c=a;this.b=null}} +function exb(a,b){pjb.call(this,a,b);this.a=KC(dL,zie,436,2,0,1);this.b=true} +function _rb(a){Whb.call(this,a,0);Trb(this);this.d.b=this.d;this.d.a=this.d} +function VRc(a){var b;b=a.b;if(b.b==0){return null}return BD(Ut(b,0),188).b} +function Kwb(a,b){var c;c=new fxb;c.c=true;c.d=b.dd();return Lwb(a,b.cd(),c)} +function bB(a,b){var c;c=a.q.getHours()+(b/3600|0);a.q.setSeconds(b);YA(a,c)} +function zGc(a,b,c){var d;d=a.b[c.c.p][c.p];d.b+=b.b;d.c+=b.c;d.a+=b.a;++d.a} +function S6c(a,b){var c,d;c=a.a-b.a;d=a.b-b.b;return $wnd.Math.sqrt(c*c+d*d)} +function Ipc(){Ipc=ccb;Gpc=new Jpc('QUADRATIC',0);Hpc=new Jpc('SCANLINE',1)} +function hCc(){hCc=ccb;gCc=c3c(e3c(new j3c,(qUb(),lUb),(S8b(),n8b)),pUb,J8b)} +function l8c(){i8c();return OC(GC(r1,1),Kie,291,0,[h8c,g8c,f8c,d8c,c8c,e8c])} +function I7c(){F7c();return OC(GC(o1,1),Kie,248,0,[z7c,C7c,D7c,E7c,A7c,B7c])} +function Dpc(){Apc();return OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])} +function Brc(){yrc();return OC(GC(OW,1),Kie,275,0,[wrc,trc,xrc,vrc,urc,rrc])} +function orc(){lrc();return OC(GC(NW,1),Kie,274,0,[irc,hrc,krc,grc,jrc,frc])} +function rzc(){lzc();return OC(GC(YW,1),Kie,313,0,[jzc,hzc,fzc,gzc,kzc,izc])} +function Wqc(){Sqc();return OC(GC(LW,1),Kie,276,0,[Nqc,Mqc,Pqc,Oqc,Rqc,Qqc])} +function uSc(){qSc();return OC(GC(t$,1),Kie,327,0,[pSc,lSc,nSc,mSc,oSc,kSc])} +function wcd(){rcd();return OC(GC(E1,1),Kie,273,0,[pcd,ncd,ocd,mcd,lcd,qcd])} +function Pad(){Mad();return OC(GC(w1,1),Kie,312,0,[Kad,Iad,Lad,Gad,Jad,Had])} +function m0b(){j0b();return OC(GC(NQ,1),Kie,267,0,[h0b,g0b,e0b,i0b,f0b,d0b])} +function mib(a){yCb(!!a.c);xpb(a.e,a);a.c.Qb();a.c=null;a.b=kib(a);ypb(a.e,a)} +function tsb(a){xpb(a.c.a.e,a);sCb(a.b!=a.c.a.d);a.a=a.b;a.b=a.b.a;return a.a} +function kSd(a){var b;if(!a.a&&a.b!=-1){b=a.c.Tg();a.a=XKd(b,a.b)}return a.a} +function wtd(a,b){if(a.hi()&&a.Hc(b)){return false}else{a.Yh(b);return true}} +function $Hb(a,b){ytb(b,'Horizontal alignment cannot be null');a.b=b;return a} +function Lfe(a,b,c){wfe();var d;d=Kfe(a,b);c&&!!d&&Nfe(a)&&(d=null);return d} +function vXb(a,b,c){var d,e;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);uXb(d,b,c)}} +function tXb(a,b){var c,d;for(d=b.Kc();d.Ob();){c=BD(d.Pb(),37);sXb(a,c,0,0)}} +function ojc(a,b,c){var d;a.d[b.g]=c;d=a.g.c;d[b.g]=$wnd.Math.max(d[b.g],c+1)} +function KZc(a,b){var c,d,e;e=a.r;d=a.d;c=MZc(a,b,true);return c.b!=e||c.a!=d} +function Jjc(a,b){Vrb(a.e,b)||Xrb(a.e,b,new Pjc(b));return BD(Wrb(a.e,b),113)} +function Byb(a,b,c,d){uCb(a);uCb(b);uCb(c);uCb(d);return new Lyb(a,b,new Vxb)} +function dId(a,b,c,d){this.rj();this.a=b;this.b=a;this.c=new Y5d(this,b,c,d)} +function oSd(a,b,c,d,e,f){mxd.call(this,b,d,e,f);jSd(this);this.c=a;this.b=c} +function ESd(a,b,c,d,e,f){mxd.call(this,b,d,e,f);jSd(this);this.c=a;this.a=c} +function Bqd(a,b,c){var d,e,f;d=aC(a,c);e=null;!!d&&(e=aqd(d));f=e;Vqd(b,c,f)} +function Cqd(a,b,c){var d,e,f;d=aC(a,c);e=null;!!d&&(e=aqd(d));f=e;Vqd(b,c,f)} +function v1d(a,b,c){var d,e;e=(d=nUd(a.b,b),d);return !e?null:V1d(p1d(a,e),c)} +function gid(a,b){var c;return c=a.Yg(b),c>=0?a._g(c,true,true):sid(a,b,true)} +function s6b(a,b){return Kdb(Edb(ED(vNb(a,(wtc(),htc)))),Edb(ED(vNb(b,htc))))} +function pUc(){pUc=ccb;oUc=b3c(b3c(g3c(new j3c,(yRc(),vRc)),(qSc(),pSc)),lSc)} +function IHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length);return KHc(a,d)} +function qhe(a){if(a.b<=0)throw vbb(new utb);--a.b;a.a-=a.c.c;return meb(a.a)} +function ptd(a){var b;if(!a.a){throw vbb(new vtb)}b=a.a;a.a=Xod(a.a);return b} +function dBb(a){while(!a.a){if(!HBb(a.c,new hBb(a))){return false}}return true} +function vr(a){var b;Qb(a);if(JD(a,198)){b=BD(a,198);return b}return new wr(a)} +function r3c(a){p3c();BD(a.We((Y9c(),x9c)),174).Fc((rcd(),ocd));a.Ye(w9c,null)} +function p3c(){p3c=ccb;m3c=new v3c;o3c=new x3c;n3c=mn((Y9c(),w9c),m3c,b9c,o3c)} +function fWc(){fWc=ccb;dWc=new hWc('LEAF_NUMBER',0);eWc=new hWc('NODE_SIZE',1)} +function UMc(a,b,c){a.a=b;a.c=c;a.b.a.$b();Osb(a.d);a.e.a.c=KC(SI,Uhe,1,0,5,1)} +function yHc(a){a.a=KC(WD,oje,25,a.b+1,15,1);a.c=KC(WD,oje,25,a.b,15,1);a.d=0} +function MWb(a,b){if(a.a.ue(b.d,a.b)>0){Ekb(a.c,new dWb(b.c,b.d,a.d));a.b=b.d}} +function nud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.g[b]} +function pOd(a,b,c){Itd(a,c);if(c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} +function KLd(a){var b;if(a.Ek()){for(b=a.i-1;b>=0;--b){qud(a,b)}}return wud(a)} +function Bwb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c} +function ulb(a,b){var c,d;pCb(b);return c=(d=a.slice(0,b),PC(d,a)),c.length=b,c} +function Klb(a,b,c,d){var e;d=(ipb(),!d?fpb:d);e=a.slice(b,c);Llb(e,a,b,c,-b,d)} +function bid(a,b,c,d,e){return b<0?sid(a,c,d):BD(c,66).Nj().Pj(a,a.yh(),b,d,e)} +function hZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} +function iZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} +function nDb(a,b){if(b.a){throw vbb(new hz(Hke))}Qqb(a.a,b);b.a=a;!a.j&&(a.j=b)} +function qBb(a,b){nvb.call(this,b.rd(),b.qd()&-16449);uCb(a);this.a=a;this.c=b} +function Ti(a,b){var c,d;d=b/a.c.Hd().gc()|0;c=b%a.c.Hd().gc();return Mi(a,d,c)} +function NHb(){NHb=ccb;LHb=new OHb(jle,0);KHb=new OHb(gle,1);MHb=new OHb(kle,2)} +function lxb(){lxb=ccb;hxb=new mxb('All',0);ixb=new rxb;jxb=new txb;kxb=new wxb} +function zxb(){zxb=ccb;yxb=as((lxb(),OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])))} +function uWb(){uWb=ccb;tWb=as((lWb(),OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])))} +function ALb(){ALb=ccb;zLb=as((vLb(),OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])))} +function WMb(){WMb=ccb;VMb=as((RMb(),OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])))} +function WOb(){WOb=ccb;VOb=as((ROb(),OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])))} +function GRc(){GRc=ccb;FRc=as((yRc(),OC(GC(h$,1),Kie,393,0,[uRc,vRc,wRc,xRc])))} +function mbc(){mbc=ccb;lbc=as((gbc(),OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])))} +function oXc(){oXc=ccb;nXc=as((iXc(),OC(GC(a_,1),Kie,340,0,[hXc,fXc,gXc,eXc])))} +function Fjc(){Fjc=ccb;Ejc=as((Ajc(),OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])))} +function Pzc(){Pzc=ccb;Ozc=as((Izc(),OC(GC($W,1),Kie,197,0,[Gzc,Hzc,Fzc,Ezc])))} +function ugd(){ugd=ccb;tgd=as((pgd(),OC(GC(k2,1),Kie,396,0,[mgd,ngd,lgd,ogd])))} +function xbd(){xbd=ccb;wbd=as((rbd(),OC(GC(A1,1),Kie,285,0,[qbd,nbd,obd,pbd])))} +function Fad(){Fad=ccb;Ead=as((Aad(),OC(GC(v1,1),Kie,218,0,[zad,xad,wad,yad])))} +function Ied(){Ied=ccb;Hed=as((Ded(),OC(GC(O1,1),Kie,311,0,[Ced,zed,Bed,Aed])))} +function ydd(){ydd=ccb;xdd=as((tdd(),OC(GC(I1,1),Kie,374,0,[rdd,sdd,qdd,pdd])))} +function A9d(){A9d=ccb;Smd();x9d=Pje;w9d=Qje;z9d=new Ndb(Pje);y9d=new Ndb(Qje)} +function _qc(){_qc=ccb;$qc=new arc(ane,0);Zqc=new arc('IMPROVE_STRAIGHTNESS',1)} +function eIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} +function gIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} +function PC(a,b){HC(b)!=10&&OC(rb(b),b.hm,b.__elementTypeId$,HC(b),a);return a} +function Lkb(a,b){var c;c=Jkb(a,b,0);if(c==-1){return false}Kkb(a,c);return true} +function Zrb(a,b){var c;c=BD(Thb(a.e,b),387);if(c){jsb(c);return c.e}return null} +function Jbb(a){var b;if(Fbb(a)){b=0-a;if(!isNaN(b)){return b}}return zbb(hD(a))} +function Jkb(a,b,c){for(;c<a.c.length;++c){if(wtb(b,a.c[c])){return c}}return -1} +function SAb(a,b,c){var d;Tzb(a);d=new NBb;d.a=b;a.a.Nb(new VBb(d,c));return d.a} +function aAb(a){var b;Tzb(a);b=KC(UD,Vje,25,0,15,1);_ub(a.a,new kAb(b));return b} +function ajc(a){var b,c;c=BD(Ikb(a.j,0),11);b=BD(vNb(c,(wtc(),$sc)),11);return b} +function yc(a){var b;if(!xc(a)){throw vbb(new utb)}a.e=1;b=a.d;a.d=null;return b} +function wu(a,b){var c;this.f=a;this.b=b;c=BD(Ohb(a.b,b),283);this.c=!c?null:c.b} +function Ygc(){Hgc();this.b=new Lqb;this.f=new Lqb;this.g=new Lqb;this.e=new Lqb} +function Tnc(a,b){this.a=KC(OQ,kne,10,a.a.c.length,0,1);Qkb(a.a,this.a);this.b=b} +function zoc(a){var b;for(b=a.p+1;b<a.c.a.c.length;++b){--BD(Ikb(a.c.a,b),10).p}} +function Rwd(a){var b;b=a.Ai();b!=null&&a.d!=-1&&BD(b,92).Ng(a);!!a.i&&a.i.Fi()} +function rFd(a){Py(this);this.g=!a?null:Wy(a,a.$d());this.f=a;Ry(this);this._d()} +function pSd(a,b,c,d,e,f,g){nxd.call(this,b,d,e,f,g);jSd(this);this.c=a;this.b=c} +function Ayb(a,b,c,d,e){uCb(a);uCb(b);uCb(c);uCb(d);uCb(e);return new Lyb(a,b,d)} +function B2c(a,b){if(b<0){throw vbb(new qcb(ese+b))}A2c(a,b+1);return Ikb(a.j,b)} +function Ob(a,b,c,d){if(!a){throw vbb(new Wdb(hc(b,OC(GC(SI,1),Uhe,1,5,[c,d]))))}} +function dDb(a,b){return wtb(b,Ikb(a.f,0))||wtb(b,Ikb(a.f,1))||wtb(b,Ikb(a.f,2))} +function ghd(a,b){ecd(BD(BD(a.f,33).We((Y9c(),t9c)),98))&&NCd(Yod(BD(a.f,33)),b)} +function p1d(a,b){var c,d;c=BD(b,675);d=c.Oh();!d&&c.Rh(d=new Y1d(a,b));return d} +function q1d(a,b){var c,d;c=BD(b,677);d=c.pk();!d&&c.tk(d=new j2d(a,b));return d} +function QSd(a){if(!a.b){a.b=new UTd(a,j5,a);!a.a&&(a.a=new fTd(a,a))}return a.b} +function yTb(){yTb=ccb;wTb=new zTb('XY',0);vTb=new zTb('X',1);xTb=new zTb('Y',2)} +function EIb(){EIb=ccb;DIb=new FIb('TOP',0);CIb=new FIb(gle,1);BIb=new FIb(mle,2)} +function esc(){esc=ccb;csc=new fsc(ane,0);dsc=new fsc('TOP',1);bsc=new fsc(mle,2)} +function BAc(){BAc=ccb;zAc=new CAc('INPUT_ORDER',0);AAc=new CAc('PORT_DEGREE',1)} +function wD(){wD=ccb;sD=TC(Eje,Eje,524287);tD=TC(0,0,Gje);uD=RC(1);RC(2);vD=RC(0)} +function WDc(a,b,c){a.a.c=KC(SI,Uhe,1,0,5,1);$Dc(a,b,c);a.a.c.length==0||TDc(a,b)} +function rfb(a){var b,c;c=a.length;b=KC(TD,$ie,25,c,15,1);ffb(a,0,c,b,0);return b} +function Aid(a){var b;if(!a.dh()){b=aLd(a.Tg())-a.Ah();a.ph().bk(b)}return a.Pg()} +function xjd(a){var b;b=CD(Ajd(a,32));if(b==null){yjd(a);b=CD(Ajd(a,32))}return b} +function iid(a,b){var c;c=bLd(a.d,b);return c>=0?fid(a,c,true,true):sid(a,b,true)} +function vgc(a,b){qgc();var c,d;c=ugc(a);d=ugc(b);return !!c&&!!d&&!omb(c.k,d.k)} +function Gqd(a,b){dld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Hqd(a,b){eld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Iqd(a,b){cld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Jqd(a,b){ald(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function agd(a){(!this.q?(mmb(),mmb(),kmb):this.q).Ac(!a.q?(mmb(),mmb(),kmb):a.q)} +function S2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} +function U2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} +function INb(a,b){HNb=new tOb;FNb=b;GNb=a;BD(GNb.b,65);KNb(GNb,HNb,null);JNb(GNb)} +function uud(a,b,c){var d;d=a.g[b];mud(a,b,a.oi(b,c));a.gi(b,c,d);a.ci();return d} +function Ftd(a,b){var c;c=a.Xc(b);if(c>=0){a.$c(c);return true}else{return false}} +function YId(a){var b;if(a.d!=a.r){b=wId(a);a.e=!!b&&b.Cj()==Bve;a.d=b}return a.e} +function fr(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Fc(b.Pb())}return c} +function Wrb(a,b){var c;c=BD(Ohb(a.e,b),387);if(c){Yrb(a,c);return c.e}return null} +function UA(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)} +function LAb(a,b){var c,d;Uzb(a);d=new IBb(b,a.a);c=new fBb(d);return new YAb(a,c)} +function tB(d,a){var b=d.a[a];var c=(rC(),qC)[typeof b];return c?c(b):xC(typeof b)} +function yzc(a){switch(a.g){case 0:return Ohe;case 1:return -1;default:return 0;}} +function oD(a){if(eD(a,(wD(),vD))<0){return -aD(hD(a))}return a.l+a.m*Hje+a.h*Ije} +function HC(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$} +function dub(a){var b;b=a.b.c.length==0?null:Ikb(a.b,0);b!=null&&fub(a,0);return b} +function uA(a,b){while(b[0]<a.length&&hfb(' \t\r\n',wfb(bfb(a,b[0])))>=0){++b[0]}} +function sgb(a,b){this.e=b;this.a=vgb(a);this.a<54?(this.f=Sbb(a)):(this.c=ghb(a))} +function vge(a,b,c,d){wfe();xfe.call(this,26);this.c=a;this.a=b;this.d=c;this.b=d} +function EA(a,b,c){var d,e;d=10;for(e=0;e<c-1;e++){b<d&&(a.a+='0',a);d*=10}a.a+=b} +function Hhe(a,b){var c;c=0;while(a.e!=a.i.gc()){Qrd(b,Dyd(a),meb(c));c!=Ohe&&++c}} +function xHc(a,b){var c;++a.d;++a.c[b];c=b+1;while(c<a.a.length){++a.a[c];c+=c&-c}} +function Qgc(a,b){var c,d,e;e=b.c.i;c=BD(Ohb(a.f,e),57);d=c.d.c-c.e.c;p7c(b.a,d,0)} +function Scb(a){var b,c;b=a+128;c=(Ucb(),Tcb)[b];!c&&(c=Tcb[b]=new Mcb(a));return c} +function es(a,b){var c;uCb(b);c=a[':'+b];nCb(!!c,OC(GC(SI,1),Uhe,1,5,[b]));return c} +function Mz(a){var b,c;if(a.b){c=null;do{b=a.b;a.b=null;c=Pz(b,c)}while(a.b);a.b=c}} +function Lz(a){var b,c;if(a.a){c=null;do{b=a.a;a.a=null;c=Pz(b,c)}while(a.a);a.a=c}} +function Dqb(a){var b;++a.a;for(b=a.c.a.length;a.a<b;++a.a){if(a.c.b[a.a]){return}}} +function S9b(a,b){var c,d;d=b.c;for(c=d+1;c<=b.f;c++){a.a[c]>a.a[d]&&(d=c)}return d} +function fic(a,b){var c;c=Jy(a.e.c,b.e.c);if(c==0){return Kdb(a.e.d,b.e.d)}return c} +function Ogb(a,b){if(b.e==0){return Ggb}if(a.e==0){return Ggb}return Dhb(),Ehb(a,b)} +function nCb(a,b){if(!a){throw vbb(new Wdb(DCb('Enum constant undefined: %s',b)))}} +function AWb(){AWb=ccb;xWb=new XWb;yWb=new _Wb;vWb=new dXb;wWb=new hXb;zWb=new lXb} +function UEb(){UEb=ccb;SEb=new VEb('BY_SIZE',0);TEb=new VEb('BY_SIZE_AND_SHAPE',1)} +function XRb(){XRb=ccb;VRb=new YRb('EADES',0);WRb=new YRb('FRUCHTERMAN_REINGOLD',1)} +function xqc(){xqc=ccb;vqc=new yqc('READING_DIRECTION',0);wqc=new yqc('ROTATION',1)} +function uqc(){uqc=ccb;tqc=as((mqc(),OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])))} +function bAc(){bAc=ccb;aAc=as((Vzc(),OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])))} +function bkc(){bkc=ccb;akc=as((Xjc(),OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])))} +function Htc(){Htc=ccb;Gtc=as((Ctc(),OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])))} +function S_c(){S_c=ccb;R_c=as((N_c(),OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])))} +function S5c(){S5c=ccb;R5c=as((N5c(),OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])))} +function p$c(){p$c=ccb;o$c=as((k$c(),OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])))} +function vUb(){vUb=ccb;uUb=as((qUb(),OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])))} +function mad(){mad=ccb;lad=as((ead(),OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])))} +function Ybd(){Ybd=ccb;Xbd=as((Tbd(),OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])))} +function cdd(){cdd=ccb;bdd=as((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])))} +function _1c(a,b){var c;c=BD(Ohb(a.a,b),134);if(!c){c=new zNb;Rhb(a.a,b,c)}return c} +function hoc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.a==a}return false} +function ioc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.i==a}return false} +function Jub(a,b){uCb(b);Iub(a);if(a.d.Ob()){b.td(a.d.Pb());return true}return false} +function Oy(a){if(ybb(a,Ohe)>0){return Ohe}if(ybb(a,Rie)<0){return Rie}return Tbb(a)} +function Cv(a){if(a<3){Xj(a,Hie);return a+1}if(a<Iie){return QD(a/0.75+1)}return Ohe} +function XKd(a,b){var c;c=(a.i==null&&TKd(a),a.i);return b>=0&&b<c.length?c[b]:null} +function cC(a,b,c){var d;if(b==null){throw vbb(new Geb)}d=aC(a,b);dC(a,b,c);return d} +function Emc(a){a.a>=-0.01&&a.a<=ple&&(a.a=0);a.b>=-0.01&&a.b<=ple&&(a.b=0);return a} +function sfb(a,b){return b==(ntb(),ntb(),mtb)?a.toLocaleLowerCase():a.toLowerCase()} +function idb(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(fdb(a),a.o)} +function Pnd(a){var b,c;c=(b=new SSd,b);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),c)} +function Pdd(a,b){var c;c=b>0?b-1:b;return Vdd(Wdd(Xdd(Ydd(new Zdd,c),a.n),a.j),a.k)} +function u2d(a,b,c,d){var e;a.j=-1;Qxd(a,I2d(a,b,c),(Q6d(),e=BD(b,66).Mj(),e.Ok(d)))} +function VWb(a){this.g=a;this.f=new Rkb;this.a=$wnd.Math.min(this.g.c.c,this.g.d.c)} +function mDb(a){this.b=new Rkb;this.a=new Rkb;this.c=new Rkb;this.d=new Rkb;this.e=a} +function Cnc(a,b){this.a=new Lqb;this.e=new Lqb;this.b=(xzc(),wzc);this.c=a;this.b=b} +function bIb(a,b,c){$Gb.call(this);THb(this);this.a=a;this.c=c;this.b=b.d;this.f=b.e} +function yd(a){this.d=a;this.c=a.c.vc().Kc();this.b=null;this.a=null;this.e=(hs(),gs)} +function zud(a){if(a<0){throw vbb(new Wdb('Illegal Capacity: '+a))}this.g=this.ri(a)} +function avb(a,b){if(0>a||a>b){throw vbb(new scb('fromIndex: 0, toIndex: '+a+oke+b))}} +function Gs(a){var b;if(a.a==a.b.a){throw vbb(new utb)}b=a.a;a.c=b;a.a=a.a.e;return b} +function Zsb(a){var b;yCb(!!a.c);b=a.c.a;Nsb(a.d,a.c);a.b==a.c?(a.b=b):--a.a;a.c=null} +function VAb(a,b){var c;Uzb(a);c=new lBb(a,a.a.rd(),a.a.qd()|4,b);return new YAb(a,c)} +function ke(a,b){var c,d;c=BD(Hv(a.d,b),14);if(!c){return null}d=b;return a.e.pc(d,c)} +function xac(a,b){var c,d;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),70);yNb(c,(wtc(),Ssc),b)}} +function t9b(a){var b;b=Edb(ED(vNb(a,(Nyc(),Zwc))));if(b<0){b=0;yNb(a,Zwc,b)}return b} +function ifc(a,b,c){var d;d=$wnd.Math.max(0,a.b/2-0.5);cfc(c,d,1);Ekb(b,new rfc(c,d))} +function NMc(a,b,c){var d;d=a.a.e[BD(b.a,10).p]-a.a.e[BD(c.a,10).p];return QD(Eeb(d))} +function iZb(a,b,c,d,e,f){var g;g=kZb(d);QZb(g,e);RZb(g,f);Rc(a.a,d,new BZb(g,b,c.f))} +function Bid(a,b){var c;c=YKd(a.Tg(),b);if(!c){throw vbb(new Wdb(ite+b+lte))}return c} +function ntd(a,b){var c;c=a;while(Xod(c)){c=Xod(c);if(c==b){return true}}return false} +function Uw(a,b){var c,d,e;d=b.a.cd();c=BD(b.a.dd(),14).gc();for(e=0;e<c;e++){a.td(d)}} +function Hkb(a,b){var c,d,e,f;uCb(b);for(d=a.c,e=0,f=d.length;e<f;++e){c=d[e];b.td(c)}} +function Nsb(a,b){var c;c=b.c;b.a.b=b.b;b.b.a=b.a;b.a=b.b=null;b.c=null;--a.b;return c} +function wqb(a,b){if(!!b&&a.b[b.g]==b){NC(a.b,b.g,null);--a.c;return true}return false} +function lo(a,b){return !!vo(a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15))))} +function w$b(a,b){ecd(BD(vNb(BD(a.e,10),(Nyc(),Vxc)),98))&&(mmb(),Okb(BD(a.e,10).j,b))} +function THb(a){a.b=(NHb(),KHb);a.f=(EIb(),CIb);a.d=(Xj(2,Jie),new Skb(2));a.e=new d7c} +function gHb(){gHb=ccb;dHb=new hHb('BEGIN',0);eHb=new hHb(gle,1);fHb=new hHb('END',2)} +function qad(){qad=ccb;nad=new rad(gle,0);oad=new rad('HEAD',1);pad=new rad('TAIL',2)} +function Fsd(){Csd();return OC(GC(O3,1),Kie,237,0,[Bsd,ysd,zsd,xsd,Asd,vsd,usd,wsd])} +function c6c(){_5c();return OC(GC(f1,1),Kie,277,0,[$5c,T5c,X5c,Z5c,U5c,V5c,W5c,Y5c])} +function Dlc(){Alc();return OC(GC(KV,1),Kie,270,0,[tlc,wlc,slc,zlc,vlc,ulc,ylc,xlc])} +function nAc(){kAc();return OC(GC(aX,1),Kie,260,0,[iAc,dAc,gAc,eAc,fAc,cAc,hAc,jAc])} +function kcd(){kcd=ccb;jcd=as((dcd(),OC(GC(D1,1),Kie,98,0,[ccd,bcd,acd,Zbd,_bd,$bd])))} +function tHb(){tHb=ccb;sHb=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])).length;rHb=sHb} +function wed(a){this.b=(Qb(a),new Tkb(a));this.a=new Rkb;this.d=new Rkb;this.e=new d7c} +function W6c(a){var b;b=$wnd.Math.sqrt(a.a*a.a+a.b*a.b);if(b>0){a.a/=b;a.b/=b}return a} +function bKd(a){var b;if(a.w){return a.w}else{b=cKd(a);!!b&&!b.kh()&&(a.w=b);return b}} +function gZd(a){var b;if(a==null){return null}else{b=BD(a,190);return Umd(b,b.length)}} +function qud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.li(b,a.g[b])} +function Mmc(a){var b,c;b=a.a.d.j;c=a.c.d.j;while(b!=c){rqb(a.b,b);b=Xcd(b)}rqb(a.b,b)} +function Jmc(a){var b;for(b=0;b<a.c.length;b++){(tCb(b,a.c.length),BD(a.c[b],11)).p=b}} +function bEc(a,b,c){var d,e,f;e=b[c];for(d=0;d<e.length;d++){f=e[d];a.e[f.c.p][f.p]=d}} +function ZEc(a,b){var c,d,e,f;for(d=a.d,e=0,f=d.length;e<f;++e){c=d[e];REc(a.g,c).a=b}} +function q7c(a,b){var c,d;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);P6c(c,b)}return a} +function zUb(a,b){var c;c=c7c(R6c(BD(Ohb(a.g,b),8)),E6c(BD(Ohb(a.f,b),460).b));return c} +function lib(a){var b;xpb(a.e,a);sCb(a.b);a.c=a.a;b=BD(a.a.Pb(),42);a.b=kib(a);return b} +function CD(a){var b;CCb(a==null||Array.isArray(a)&&(b=HC(a),!(b>=14&&b<=16)));return a} +function dcb(a,b,c){var d=function(){return a.apply(d,arguments)};b.apply(d,c);return d} +function TLc(a,b,c){var d,e;d=b;do{e=Edb(a.p[d.p])+c;a.p[d.p]=e;d=a.a[d.p]}while(d!=b)} +function NQd(a,b){var c,d;d=a.a;c=OQd(a,b,null);d!=b&&!a.e&&(c=QQd(a,b,c));!!c&&c.Fi()} +function ADb(a,b){return Iy(),My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} +function Ky(a,b){Iy();My(Qie);return $wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} +function Akc(a,b){gkc();return beb(a.b.c.length-a.e.c.length,b.b.c.length-b.e.c.length)} +function oo(a,b){return Kv(uo(a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} +function o0b(){o0b=ccb;n0b=as((j0b(),OC(GC(NQ,1),Kie,267,0,[h0b,g0b,e0b,i0b,f0b,d0b])))} +function n8c(){n8c=ccb;m8c=as((i8c(),OC(GC(r1,1),Kie,291,0,[h8c,g8c,f8c,d8c,c8c,e8c])))} +function K7c(){K7c=ccb;J7c=as((F7c(),OC(GC(o1,1),Kie,248,0,[z7c,C7c,D7c,E7c,A7c,B7c])))} +function Fpc(){Fpc=ccb;Epc=as((Apc(),OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])))} +function Drc(){Drc=ccb;Crc=as((yrc(),OC(GC(OW,1),Kie,275,0,[wrc,trc,xrc,vrc,urc,rrc])))} +function qrc(){qrc=ccb;prc=as((lrc(),OC(GC(NW,1),Kie,274,0,[irc,hrc,krc,grc,jrc,frc])))} +function tzc(){tzc=ccb;szc=as((lzc(),OC(GC(YW,1),Kie,313,0,[jzc,hzc,fzc,gzc,kzc,izc])))} +function Yqc(){Yqc=ccb;Xqc=as((Sqc(),OC(GC(LW,1),Kie,276,0,[Nqc,Mqc,Pqc,Oqc,Rqc,Qqc])))} +function wSc(){wSc=ccb;vSc=as((qSc(),OC(GC(t$,1),Kie,327,0,[pSc,lSc,nSc,mSc,oSc,kSc])))} +function ycd(){ycd=ccb;xcd=as((rcd(),OC(GC(E1,1),Kie,273,0,[pcd,ncd,ocd,mcd,lcd,qcd])))} +function Rad(){Rad=ccb;Qad=as((Mad(),OC(GC(w1,1),Kie,312,0,[Kad,Iad,Lad,Gad,Jad,Had])))} +function Lbd(){Hbd();return OC(GC(B1,1),Kie,93,0,[zbd,ybd,Bbd,Gbd,Fbd,Ebd,Cbd,Dbd,Abd])} +function vkd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,0,c,a.a))} +function wkd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.b))} +function hmd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.b))} +function ald(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.f))} +function cld(a,b){var c;c=a.g;a.g=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.g))} +function dld(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,5,c,a.i))} +function eld(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,6,c,a.j))} +function omd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.j))} +function imd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.c))} +function pmd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,2,c,a.k))} +function qQd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,2,c,a.d))} +function AId(a,b){var c;c=a.s;a.s=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,4,c,a.s))} +function DId(a,b){var c;c=a.t;a.t=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,5,c,a.t))} +function _Jd(a,b){var c;c=a.F;a.F=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,c,b))} +function izd(a,b){var c;c=BD(Ohb((pEd(),oEd),a),55);return c?c.xj(b):KC(SI,Uhe,1,b,5,1)} +function Xpd(a,b){var c,d;c=b in a.a;if(c){d=aC(a,b).he();if(d){return d.a}}return null} +function ftd(a,b){var c,d,e;c=(d=(Fhd(),e=new Jod,e),!!b&&God(d,b),d);Hod(c,a);return c} +function LLd(a,b,c){Itd(a,c);if(!a.Bk()&&c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} +function Xdd(a,b){a.n=b;if(a.n){a.f=new Rkb;a.e=new Rkb}else{a.f=null;a.e=null}return a} +function ndb(a,b,c,d,e,f){var g;g=ldb(a,b);zdb(c,g);g.i=e?8:0;g.f=d;g.e=e;g.g=f;return g} +function rSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=1;this.c=a;this.a=c} +function tSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=2;this.c=a;this.a=c} +function BSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=6;this.c=a;this.a=c} +function GSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=7;this.c=a;this.a=c} +function xSd(a,b,c,d,e){this.d=b;this.j=d;this.e=e;this.o=-1;this.p=4;this.c=a;this.a=c} +function rDb(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e<f;++e){c=d[e];nDb(a.a,c)}return a} +function pl(a){var b,c,d,e;for(c=a,d=0,e=c.length;d<e;++d){b=c[d];Qb(b)}return new vl(a)} +function Uz(a){var b=/function(?:\s+([\w$]+))?\s*\(/;var c=b.exec(a);return c&&c[1]||Xie} +function zdb(a,b){var c;if(!a){return}b.n=a;var d=tdb(b);if(!d){_bb[a]=[b];return}d.gm=b} +function vlb(a,b,c){var d,e;e=a.length;d=$wnd.Math.min(c,e);$Bb(a,0,b,0,d,true);return b} +function RPb(a,b,c){var d,e;for(e=b.Kc();e.Ob();){d=BD(e.Pb(),79);Qqb(a,BD(c.Kb(d),33))}} +function Xbb(){Ybb();var a=Wbb;for(var b=0;b<arguments.length;b++){a.push(arguments[b])}} +function n7c(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e<f;++e){c=d[e];Gsb(a,c,a.c.b,a.c)}} +function s$c(a,b){a.b=$wnd.Math.max(a.b,b.d);a.e+=b.r+(a.a.c.length==0?0:a.c);Ekb(a.a,b)} +function wkb(a){yCb(a.c>=0);if(ekb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1} +function pgb(a){if(a.a<54){return a.f<0?-1:a.f>0?1:0}return (!a.c&&(a.c=fhb(a.f)),a.c).e} +function My(a){if(!(a>=0)){throw vbb(new Wdb('tolerance ('+a+') must be >= 0'))}return a} +function n4c(){if(!f4c){f4c=new m4c;l4c(f4c,OC(GC(C0,1),Uhe,130,0,[new Z9c]))}return f4c} +function KAc(){KAc=ccb;JAc=new LAc(ole,0);HAc=new LAc('INPUT',1);IAc=new LAc('OUTPUT',2)} +function bqc(){bqc=ccb;$pc=new cqc('ARD',0);aqc=new cqc('MSD',1);_pc=new cqc('MANUAL',2)} +function rGc(){rGc=ccb;oGc=new sGc('BARYCENTER',0);pGc=new sGc(Bne,1);qGc=new sGc(Cne,2)} +function ztd(a,b){var c;c=a.gc();if(b<0||b>c)throw vbb(new Cyd(b,c));return new czd(a,b)} +function JAd(a,b){var c;if(JD(b,42)){return a.c.Mc(b)}else{c=qAd(a,b);LAd(a,b);return c}} +function $nd(a,b,c){yId(a,b);pnd(a,c);AId(a,0);DId(a,1);CId(a,true);BId(a,true);return a} +function Xj(a,b){if(a<0){throw vbb(new Wdb(b+' cannot be negative but was: '+a))}return a} +function Bt(a,b){var c,d;for(c=0,d=a.gc();c<d;++c){if(wtb(b,a.Xb(c))){return c}}return -1} +function Nc(a){var b,c;for(c=a.c.Cc().Kc();c.Ob();){b=BD(c.Pb(),14);b.$b()}a.c.$b();a.d=0} +function Ri(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;d<e;++d){b=c[d];Flb(b,b.length,null)}} +function ieb(a){var b,c;if(a==0){return 32}else{c=0;for(b=1;(b&a)==0;b<<=1){++c}return c}} +function NGb(a){var b,c;for(c=new olb(ahd(a));c.a<c.c.c.length;){b=BD(mlb(c),680);b.Gf()}} +function CUb(a){xUb();this.g=new Lqb;this.f=new Lqb;this.b=new Lqb;this.c=new Hp;this.i=a} +function XZb(){this.f=new d7c;this.d=new s0b;this.c=new d7c;this.a=new Rkb;this.b=new Rkb} +function c6d(a,b,c,d){this.rj();this.a=b;this.b=a;this.c=null;this.c=new d6d(this,b,c,d)} +function nxd(a,b,c,d,e){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1;e||(this.o=-2-d-1)} +function hJd(){FId.call(this);this.n=-1;this.g=null;this.i=null;this.j=null;this.Bb|=zte} +function Ldd(){Idd();return OC(GC(J1,1),Kie,259,0,[Bdd,Ddd,Add,Edd,Fdd,Hdd,Gdd,Cdd,zdd])} +function uFb(){rFb();return OC(GC(dN,1),Kie,250,0,[qFb,lFb,mFb,kFb,oFb,pFb,nFb,jFb,iFb])} +function qeb(){qeb=ccb;peb=OC(GC(WD,1),oje,25,15,[0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15])} +function vCc(){vCc=ccb;uCc=e3c(e3c(e3c(new j3c,(qUb(),lUb),(S8b(),Z7b)),mUb,w8b),nUb,v8b)} +function VCc(){VCc=ccb;UCc=e3c(e3c(e3c(new j3c,(qUb(),lUb),(S8b(),Z7b)),mUb,w8b),nUb,v8b)} +function rDc(){rDc=ccb;qDc=e3c(e3c(e3c(new j3c,(qUb(),lUb),(S8b(),Z7b)),mUb,w8b),nUb,v8b)} +function yFc(){yFc=ccb;xFc=c3c(e3c(e3c(new j3c,(qUb(),nUb),(S8b(),z8b)),oUb,p8b),pUb,y8b)} +function Rpc(){Rpc=ccb;Ppc=new Tpc('LAYER_SWEEP',0);Opc=new Tpc(Tne,1);Qpc=new Tpc(ane,2)} +function RLc(a,b){var c,d;c=a.c;d=b.e[a.p];if(d>0){return BD(Ikb(c.a,d-1),10)}return null} +function Lkd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.k))} +function kmd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.f))} +function lmd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,c,a.i))} +function Hod(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.a))} +function zpd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} +function UUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} +function VUd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} +function Apd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} +function pQd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,c,a.c))} +function PHd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.d))} +function jKd(a,b){var c;c=a.D;a.D=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.D))} +function Rdd(a,b){if(a.r>0&&a.c<a.r){a.c+=b;!!a.i&&a.i.d>0&&a.g!=0&&Rdd(a.i,b/a.r*a.i.d)}} +function dge(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new hee:new ude;a.c=ode(d,a.b,a.a)} +function g3d(a,b){return T6d(a.e,b)?(Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)):new c8d(b,a)} +function _o(a,b){return Fv(vo(a.a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} +function Nyb(a,b,c){return Ayb(a,new Kzb(b),new Mzb,new Ozb(c),OC(GC(xL,1),Kie,132,0,[]))} +function pAb(a){var b,c;if(0>a){return new yAb}b=a+1;c=new rAb(b,a);return new vAb(null,c)} +function umb(a,b){mmb();var c;c=new Mqb(1);ND(a)?Shb(c,a,b):jrb(c.f,a,b);return new iob(c)} +function aMb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(c<d){return -1}if(c==d){return 0}return 1} +function P2b(a){var b;b=vNb(a,(wtc(),$sc));if(JD(b,160)){return O2b(BD(b,160))}return null} +function Kp(a){var b;a=$wnd.Math.max(a,2);b=geb(a);if(a>b){b<<=1;return b>0?b:Iie}return b} +function xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)} +function T6c(a,b){var c;if(JD(b,8)){c=BD(b,8);return a.a==c.a&&a.b==c.b}else{return false}} +function _Mb(a,b,c){var d,e,f;f=b>>5;e=b&31;d=xbb(Pbb(a.n[c][f],Tbb(Nbb(e,1))),3);return d} +function IAd(a,b){var c,d;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);HAd(a,c.cd(),c.dd())}} +function N1c(a,b){var c;c=new tOb;BD(b.b,65);BD(b.b,65);BD(b.b,65);Hkb(b.a,new T1c(a,c,b))} +function DUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,21,c,a.b))} +function jmd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,c,a.d))} +function _Id(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,13,c,a.j))} +function $jb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d<c;e=e+1&f,++d){NC(b,d,a.a[e])}} +function rqb(a,b){var c;uCb(b);c=b.g;if(!a.b[c]){NC(a.b,c,b);++a.c;return true}return false} +function eub(a,b){var c;c=b==null?-1:Jkb(a.b,b,0);if(c<0){return false}fub(a,c);return true} +function fub(a,b){var c;c=Kkb(a.b,a.b.c.length-1);if(b<a.b.c.length){Nkb(a.b,b,c);bub(a,b)}} +function eyb(a,b){((oyb(),lyb)?null:b.c).length==0&&qyb(b,new zyb);Shb(a.a,lyb?null:b.c,b)} +function M5b(a,b){Odd(b,'Hierarchical port constraint processing',1);N5b(a);P5b(a);Qdd(b)} +function GOb(a,b){var c,d;for(d=b.Kc();d.Ob();){c=BD(d.Pb(),266);a.b=true;Qqb(a.e,c);c.b=a}} +function Owb(a,b){var c,d;c=1-b;d=a.a[c];a.a[c]=d.a[b];d.a[b]=a;a.b=true;d.b=false;return d} +function Gec(a,b){var c,d;c=BD(vNb(a,(Nyc(),ayc)),8);d=BD(vNb(b,ayc),8);return Kdb(c.b,d.b)} +function jfc(a){oEb.call(this);this.b=Edb(ED(vNb(a,(Nyc(),lyc))));this.a=BD(vNb(a,Swc),218)} +function XGc(a,b,c){uEc.call(this,a,b,c);this.a=new Lqb;this.b=new Lqb;this.d=new $Gc(this)} +function ku(a){this.e=a;this.d=new Uqb(Cv(Ec(this.e).gc()));this.c=this.e.a;this.b=this.e.c} +function BHc(a){this.b=a;this.a=KC(WD,oje,25,a+1,15,1);this.c=KC(WD,oje,25,a,15,1);this.d=0} +function THc(a,b,c){var d;d=new Rkb;UHc(a,b,d,c,true,true);a.b=new BHc(d.c.length);return d} +function nMc(a,b){var c;c=BD(Ohb(a.c,b),458);if(!c){c=new uMc;c.c=b;Rhb(a.c,c.c,c)}return c} +function $B(e,a){var b=e.a;var c=0;for(var d in b){b.hasOwnProperty(d)&&(a[c++]=d)}return a} +function pRd(a){var b;if(a.b==null){return LRd(),LRd(),KRd}b=a.Lk()?a.Kk():a.Jk();return b} +function r$c(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),33);dld(b,0);eld(b,0)}} +function HSb(){HSb=ccb;FSb=new Lsd(Ime);GSb=new Lsd(Jme);ESb=new Lsd(Kme);DSb=new Lsd(Lme)} +function y5b(){y5b=ccb;x5b=new z5b('TO_INTERNAL_LTR',0);w5b=new z5b('TO_INPUT_DIRECTION',1)} +function PUc(){PUc=ccb;NUc=new RUc('P1_NODE_PLACEMENT',0);OUc=new RUc('P2_EDGE_ROUTING',1)} +function Fkc(){Fkc=ccb;Ekc=new Gkc('START',0);Dkc=new Gkc('MIDDLE',1);Ckc=new Gkc('END',2)} +function I9b(){I9b=ccb;H9b=new Msd('edgelabelcenterednessanalysis.includelabel',(Bcb(),zcb))} +function Zyc(a,b){MAb(JAb(new YAb(null,new Kub(new Pib(a.b),1)),new bfd(a,b)),new ffd(a,b))} +function $Xc(){this.c=new jVc(0);this.b=new jVc(Tqe);this.d=new jVc(Sqe);this.a=new jVc(cme)} +function $Fc(a){var b,c;for(c=a.c.a.ec().Kc();c.Ob();){b=BD(c.Pb(),214);eFc(b,new oHc(b.e))}} +function ZFc(a){var b,c;for(c=a.c.a.ec().Kc();c.Ob();){b=BD(c.Pb(),214);dFc(b,new nHc(b.f))}} +function pnd(a,b){var c;c=a.zb;a.zb=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.zb))} +function cod(a,b){var c;c=a.xb;a.xb=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,c,a.xb))} +function dod(a,b){var c;c=a.yb;a.yb=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.yb))} +function Knd(a,b){var c,d;c=(d=new OJd,d);c.n=b;wtd((!a.s&&(a.s=new cUd(t5,a,21,17)),a.s),c)} +function Qnd(a,b){var c,d;d=(c=new FUd,c);d.n=b;wtd((!a.s&&(a.s=new cUd(t5,a,21,17)),a.s),d)} +function ktb(a,b){var c,d;c=a.Pc();Klb(c,0,c.length,b);for(d=0;d<c.length;d++){a._c(d,c[d])}} +function ye(a,b){var c,d,e;uCb(b);c=false;for(e=b.Kc();e.Ob();){d=e.Pb();c=c|a.Fc(d)}return c} +function Bx(a){var b,c,d;b=0;for(d=a.Kc();d.Ob();){c=d.Pb();b+=c!=null?tb(c):0;b=~~b}return b} +function SA(a){var b;if(a==0){return 'UTC'}if(a<0){a=-a;b='UTC+'}else{b='UTC-'}return b+UA(a)} +function Jq(a,b){var c;if(JD(b,14)){c=BD(b,14);return a.Gc(c)}return fr(a,BD(Qb(b),20).Kc())} +function Bnc(a,b,c){Cnc.call(this,b,c);this.d=KC(OQ,kne,10,a.a.c.length,0,1);Qkb(a.a,this.d)} +function IMc(a){a.a=null;a.e=null;a.b.c=KC(SI,Uhe,1,0,5,1);a.f.c=KC(SI,Uhe,1,0,5,1);a.c=null} +function gKd(a,b){if(b){if(a.B==null){a.B=a.D;a.D=null}}else if(a.B!=null){a.D=a.B;a.B=null}} +function Poc(a,b){return Edb(ED(Btb(TAb(NAb(new YAb(null,new Kub(a.c.b,16)),new fpc(a)),b))))} +function Soc(a,b){return Edb(ED(Btb(TAb(NAb(new YAb(null,new Kub(a.c.b,16)),new dpc(a)),b))))} +function Q2b(a,b){Odd(b,zne,1);MAb(LAb(new YAb(null,new Kub(a.b,16)),new U2b),new W2b);Qdd(b)} +function SXc(a,b){var c,d;c=BD(hkd(a,(ZWc(),SWc)),19);d=BD(hkd(b,SWc),19);return beb(c.a,d.a)} +function p7c(a,b,c){var d,e;for(e=Jsb(a,0);e.b!=e.d.c;){d=BD(Xsb(e),8);d.a+=b;d.b+=c}return a} +function uo(a,b,c){var d;for(d=a.b[c&a.f];d;d=d.b){if(c==d.a&&Hb(b,d.g)){return d}}return null} +function vo(a,b,c){var d;for(d=a.c[c&a.f];d;d=d.d){if(c==d.f&&Hb(b,d.i)){return d}}return null} +function khb(a,b,c){var d,e,f;d=0;for(e=0;e<c;e++){f=b[e];a[e]=f<<1|d;d=f>>>31}d!=0&&(a[c]=d)} +function rmb(a,b){mmb();var c,d;d=new Rkb;for(c=0;c<a;++c){d.c[d.c.length]=b}return new Yob(d)} +function Zzb(a){var b;b=Yzb(a);if(Bbb(b.a,0)){return Ltb(),Ltb(),Ktb}return Ltb(),new Ptb(b.b)} +function $zb(a){var b;b=Yzb(a);if(Bbb(b.a,0)){return Ltb(),Ltb(),Ktb}return Ltb(),new Ptb(b.c)} +function uAb(a){var b;b=tAb(a);if(Bbb(b.a,0)){return Utb(),Utb(),Ttb}return Utb(),new Xtb(b.b)} +function zZb(a){if(a.b.c.i.k==(j0b(),e0b)){return BD(vNb(a.b.c.i,(wtc(),$sc)),11)}return a.b.c} +function AZb(a){if(a.b.d.i.k==(j0b(),e0b)){return BD(vNb(a.b.d.i,(wtc(),$sc)),11)}return a.b.d} +function Vnd(a,b,c,d,e,f,g,h,i,j,k,l,m){aod(a,b,c,d,e,f,g,h,i,j,k,l,m);MJd(a,false);return a} +function tJb(a,b,c,d,e,f,g){$r.call(this,a,b);this.d=c;this.e=d;this.c=e;this.b=f;this.a=Ou(g)} +function $bb(a,b){typeof window===Jhe&&typeof window['$gwt']===Jhe&&(window['$gwt'][a]=b)} +function pWb(a,b){lWb();return a==hWb&&b==kWb||a==kWb&&b==hWb||a==jWb&&b==iWb||a==iWb&&b==jWb} +function qWb(a,b){lWb();return a==hWb&&b==iWb||a==hWb&&b==jWb||a==kWb&&b==jWb||a==kWb&&b==iWb} +function IJb(a,b){return Iy(),My(ple),$wnd.Math.abs(0-b)<=ple||0==b||isNaN(0)&&isNaN(b)?0:a/b} +function Rrc(){Orc();return OC(GC(PW,1),Kie,256,0,[Frc,Hrc,Irc,Jrc,Krc,Lrc,Nrc,Erc,Grc,Mrc])} +function NKd(){NKd=ccb;KKd=new KPd;MKd=OC(GC(t5,1),Mve,170,0,[]);LKd=OC(GC(n5,1),Nve,59,0,[])} +function CBc(){CBc=ccb;BBc=new DBc('NO',0);zBc=new DBc('GREEDY',1);ABc=new DBc('LOOK_BACK',2)} +function z0b(){z0b=ccb;w0b=new m1b;u0b=new h1b;v0b=new q1b;t0b=new u1b;x0b=new y1b;y0b=new C1b} +function J9b(a){var b,c,d;d=0;for(c=new olb(a.b);c.a<c.c.c.length;){b=BD(mlb(c),29);b.p=d;++d}} +function nfd(a,b){var c;c=sfd(a);return mfd(new f7c(c.c,c.d),new f7c(c.b,c.a),a.rf(),b,a.Hf())} +function Udd(a,b){var c;if(a.b){return null}else{c=Pdd(a,a.g);Dsb(a.a,c);c.i=a;a.d=b;return c}} +function kUc(a,b,c){Odd(c,'DFS Treeifying phase',1);jUc(a,b);hUc(a,b);a.a=null;a.b=null;Qdd(c)} +function zic(a,b,c){this.g=a;this.d=b;this.e=c;this.a=new Rkb;xic(this);mmb();Okb(this.a,null)} +function Aud(a){this.i=a.gc();if(this.i>0){this.g=this.ri(this.i+(this.i/8|0)+1);a.Qc(this.g)}} +function u3d(a,b){k2d.call(this,D9,a,b);this.b=this;this.a=S6d(a.Tg(),XKd(this.e.Tg(),this.c))} +function Ld(a,b){var c,d;uCb(b);for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);a.zc(c.cd(),c.dd())}} +function G2d(a,b,c){var d;for(d=c.Kc();d.Ob();){if(!E2d(a,b,d.Pb())){return false}}return true} +function sVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.gh(b,-1-(f==-1?d:f),null,e)}return e} +function tVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.ih(b,-1-(f==-1?d:f),null,e)}return e} +function Mgb(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b} +function Z4b(a){switch(a.g){case 2:return Ucd(),Tcd;case 4:return Ucd(),zcd;default:return a;}} +function $4b(a){switch(a.g){case 1:return Ucd(),Rcd;case 3:return Ucd(),Acd;default:return a;}} +function nkc(a){var b,c,d;return a.j==(Ucd(),Acd)&&(b=pkc(a),c=uqb(b,zcd),d=uqb(b,Tcd),d||d&&c)} +function oqb(a){var b,c;b=BD(a.e&&a.e(),9);c=BD(ZBb(b,b.length),9);return new xqb(b,c,b.length)} +function l7b(a,b){Odd(b,zne,1);UGb(TGb(new YGb((a$b(),new l$b(a,false,false,new T$b)))));Qdd(b)} +function Fcb(a,b){Bcb();return ND(a)?cfb(a,GD(b)):LD(a)?Ddb(a,ED(b)):KD(a)?Dcb(a,DD(b)):a.wd(b)} +function WZc(a,b){b.q=a;a.d=$wnd.Math.max(a.d,b.r);a.b+=b.d+(a.a.c.length==0?0:a.c);Ekb(a.a,b)} +function m6c(a,b){var c,d,e,f;e=a.c;c=a.c+a.b;f=a.d;d=a.d+a.a;return b.a>e&&b.a<c&&b.b>f&&b.b<d} +function Ynd(a,b,c,d){JD(a.Cb,179)&&(BD(a.Cb,179).tb=null);pnd(a,c);!!b&&hKd(a,b);d&&a.xk(true)} +function Yqd(a,b){var c;c=BD(b,183);Spd(c,'x',a.i);Spd(c,'y',a.j);Spd(c,Gte,a.g);Spd(c,Fte,a.f)} +function LFc(){LFc=ccb;KFc=b3c(f3c(e3c(e3c(new j3c,(qUb(),nUb),(S8b(),z8b)),oUb,p8b),pUb),y8b)} +function dHc(){dHc=ccb;cHc=b3c(f3c(e3c(e3c(new j3c,(qUb(),nUb),(S8b(),z8b)),oUb,p8b),pUb),y8b)} +function sXc(){sXc=ccb;qXc=new uXc(ane,0);rXc=new uXc('POLAR_COORDINATE',1);pXc=new uXc('ID',2)} +function TAc(){TAc=ccb;QAc=new UAc('EQUALLY',0);RAc=new UAc(xle,1);SAc=new UAc('NORTH_SOUTH',2)} +function pAc(){pAc=ccb;oAc=as((kAc(),OC(GC(aX,1),Kie,260,0,[iAc,dAc,gAc,eAc,fAc,cAc,hAc,jAc])))} +function Flc(){Flc=ccb;Elc=as((Alc(),OC(GC(KV,1),Kie,270,0,[tlc,wlc,slc,zlc,vlc,ulc,ylc,xlc])))} +function e6c(){e6c=ccb;d6c=as((_5c(),OC(GC(f1,1),Kie,277,0,[$5c,T5c,X5c,Z5c,U5c,V5c,W5c,Y5c])))} +function Hsd(){Hsd=ccb;Gsd=as((Csd(),OC(GC(O3,1),Kie,237,0,[Bsd,ysd,zsd,xsd,Asd,vsd,usd,wsd])))} +function XNb(){XNb=ccb;VNb=new Msd('debugSVG',(Bcb(),false));WNb=new Msd('overlapsExisted',true)} +function Xyb(a,b){return Ayb(new tzb(a),new vzb(b),new xzb(b),new zzb,OC(GC(xL,1),Kie,132,0,[]))} +function hyb(){var a;if(!dyb){dyb=new gyb;a=new wyb('');uyb(a,($xb(),Zxb));eyb(dyb,a)}return dyb} +function hr(a,b){var c;Qb(b);while(a.Ob()){c=a.Pb();if(!QNc(BD(c,10))){return false}}return true} +function T3c(a,b){var c;c=h4c(n4c(),a);if(c){jkd(b,(Y9c(),F9c),c);return true}else{return false}} +function d3c(a,b){var c;for(c=0;c<b.j.c.length;c++){BD(B2c(a,c),21).Gc(BD(B2c(b,c),14))}return a} +function M9b(a,b){var c,d;for(d=new olb(b.b);d.a<d.c.c.length;){c=BD(mlb(d),29);a.a[c.p]=_$b(c)}} +function stb(a,b){var c,d;uCb(b);for(d=a.vc().Kc();d.Ob();){c=BD(d.Pb(),42);b.Od(c.cd(),c.dd())}} +function cId(a,b){var c;if(JD(b,83)){BD(a.c,76).Xj();c=BD(b,83);IAd(a,c)}else{BD(a.c,76).Wb(b)}} +function Su(a){return JD(a,152)?km(BD(a,152)):JD(a,131)?BD(a,131).a:JD(a,54)?new ov(a):new dv(a)} +function fac(a,b){return b<a.b.gc()?BD(a.b.Xb(b),10):b==a.b.gc()?a.a:BD(Ikb(a.e,b-a.b.gc()-1),10)} +function crb(a,b){a.a=wbb(a.a,1);a.c=$wnd.Math.min(a.c,b);a.b=$wnd.Math.max(a.b,b);a.d=wbb(a.d,b)} +function n3b(a,b){var c;Odd(b,'Edge and layer constraint edge reversal',1);c=m3b(a);l3b(c);Qdd(b)} +function tAd(a){var b;if(a.d==null){++a.e;a.f=0;sAd(null)}else{++a.e;b=a.d;a.d=null;a.f=0;sAd(b)}} +function zbb(a){var b;b=a.h;if(b==0){return a.l+a.m*Hje}if(b==Fje){return a.l+a.m*Hje-Ije}return a} +function aKb(a){$Jb();if(a.A.Hc((tdd(),pdd))){if(!a.B.Hc((Idd(),Ddd))){return _Jb(a)}}return null} +function Zgb(a){uCb(a);if(a.length==0){throw vbb(new Oeb('Zero length BigInteger'))}dhb(this,a)} +function Vb(a){if(!a){throw vbb(new Zdb('no calls to next() since the last call to remove()'))}} +function Cbb(a){if(Kje<a&&a<Ije){return a<0?$wnd.Math.ceil(a):$wnd.Math.floor(a)}return zbb(fD(a))} +function Yyb(a,b){var c,d,e;c=a.c.Ee();for(e=b.Kc();e.Ob();){d=e.Pb();a.a.Od(c,d)}return a.b.Kb(c)} +function Uhd(a,b){var c,d,e;c=a.Jg();if(c!=null&&a.Mg()){for(d=0,e=c.length;d<e;++d){c[d].ui(b)}}} +function f_b(a,b){var c,d;c=a;d=Q_b(c).e;while(d){c=d;if(c==b){return true}d=Q_b(c).e}return false} +function lDc(a,b,c){var d,e;d=a.a.f[b.p];e=a.a.f[c.p];if(d<e){return -1}if(d==e){return 0}return 1} +function Si(a,b,c){var d,e;e=BD(tn(a.d,b),19);d=BD(tn(a.b,c),19);return !e||!d?null:Mi(a,e.a,d.a)} +function cYc(a,b){var c,d;for(d=new Fyd(a);d.e!=d.i.gc();){c=BD(Dyd(d),33);bld(c,c.i+b.b,c.j+b.d)}} +function qjc(a,b){var c,d;for(d=new olb(b);d.a<d.c.c.length;){c=BD(mlb(d),70);Ekb(a.d,c);ujc(a,c)}} +function pQc(a,b){var c,d;d=new Rkb;c=b;do{d.c[d.c.length]=c;c=BD(Ohb(a.k,c),17)}while(c);return d} +function Ajd(a,b){var c;if((a.Db&b)!=0){c=zjd(a,b);return c==-1?a.Eb:CD(a.Eb)[c]}else{return null}} +function Lnd(a,b){var c,d;c=(d=new hLd,d);c.G=b;!a.rb&&(a.rb=new jUd(a,d5,a));wtd(a.rb,c);return c} +function Mnd(a,b){var c,d;c=(d=new MPd,d);c.G=b;!a.rb&&(a.rb=new jUd(a,d5,a));wtd(a.rb,c);return c} +function Hkd(a,b){switch(b){case 1:return !!a.n&&a.n.i!=0;case 2:return a.k!=null;}return dkd(a,b)} +function gNc(a){switch(a.a.g){case 1:return new NNc;case 3:return new vQc;default:return new wNc;}} +function MRd(a){var b;if(a.g>1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw vbb(new utb)}} +function kNc(a){fNc();var b;if(!Lpb(eNc,a)){b=new hNc;b.a=a;Opb(eNc,a,b)}return BD(Mpb(eNc,a),635)} +function Rbb(a){var b,c,d,e;e=a;d=0;if(e<0){e+=Ije;d=Fje}c=QD(e/Hje);b=QD(e-c*Hje);return TC(b,c,d)} +function Ox(a){var b,c,d;d=0;for(c=new Gqb(a.a);c.a<c.c.a.length;){b=Fqb(c);a.b.Hc(b)&&++d}return d} +function Ku(a){var b,c,d;b=1;for(d=a.Kc();d.Ob();){c=d.Pb();b=31*b+(c==null?0:tb(c));b=~~b}return b} +function Zwb(a,b){var c;this.c=a;c=new Rkb;Ewb(a,c,b,a.b,null,false,null,false);this.a=new Bib(c,0)} +function p4d(a,b){this.b=a;this.e=b;this.d=b.j;this.f=(Q6d(),BD(a,66).Oj());this.k=S6d(b.e.Tg(),a)} +function xwb(a,b,c){this.b=(uCb(a),a);this.d=(uCb(b),b);this.e=(uCb(c),c);this.c=this.d+(''+this.e)} +function xRb(){this.a=BD(Ksd((wSb(),eSb)),19).a;this.c=Edb(ED(Ksd(uSb)));this.b=Edb(ED(Ksd(qSb)))} +function Nbd(){Nbd=ccb;Mbd=as((Hbd(),OC(GC(B1,1),Kie,93,0,[zbd,ybd,Bbd,Gbd,Fbd,Ebd,Cbd,Dbd,Abd])))} +function wFb(){wFb=ccb;vFb=as((rFb(),OC(GC(dN,1),Kie,250,0,[qFb,lFb,mFb,kFb,oFb,pFb,nFb,jFb,iFb])))} +function vLb(){vLb=ccb;uLb=new wLb('UP',0);rLb=new wLb(vle,1);sLb=new wLb(jle,2);tLb=new wLb(kle,3)} +function rTc(){rTc=ccb;qTc=(STc(),QTc);pTc=new Nsd(Zqe,qTc);oTc=($Tc(),ZTc);nTc=new Nsd($qe,oTc)} +function Xrc(){Xrc=ccb;Vrc=new Yrc('ONE_SIDED',0);Wrc=new Yrc('TWO_SIDED',1);Urc=new Yrc('OFF',2)} +function TQc(a){a.r=new Tqb;a.w=new Tqb;a.t=new Rkb;a.i=new Rkb;a.d=new Tqb;a.a=new I6c;a.c=new Lqb} +function uOc(a){this.n=new Rkb;this.e=new Psb;this.j=new Psb;this.k=new Rkb;this.f=new Rkb;this.p=a} +function PEc(a,b){if(a.c){QEc(a,b,true);MAb(new YAb(null,new Kub(b,16)),new bFc(a))}QEc(a,b,false)} +function wFc(a,b,c){return a==(rGc(),qGc)?new pFc:Cub(b,1)!=0?new iHc(c.length):new RGc(c.length)} +function tNb(a,b){var c;if(!b){return a}c=b.Ve();c.dc()||(!a.q?(a.q=new Nqb(c)):Ld(a.q,c));return a} +function Erb(a,b){var c;c=a.a.get(b);if(c===undefined){++a.d}else{urb(a.a,b);--a.c;zpb(a.b)}return c} +function UYb(a,b){var c,d,e;c=b.p-a.p;if(c==0){d=a.f.a*a.f.b;e=b.f.a*b.f.b;return Kdb(d,e)}return c} +function XLb(a,b){var c,d;c=a.f.c.length;d=b.f.c.length;if(c<d){return -1}if(c==d){return 0}return 1} +function KZb(a){if(a.b.c.length!=0&&!!BD(Ikb(a.b,0),70).a){return BD(Ikb(a.b,0),70).a}return JZb(a)} +function Pq(a){var b;if(a){b=a;if(b.dc()){throw vbb(new utb)}return b.Xb(b.gc()-1)}return nr(a.Kc())} +function vgb(a){var b;ybb(a,0)<0&&(a=Lbb(a));return b=Tbb(Obb(a,32)),64-(b!=0?heb(b):heb(Tbb(a))+32)} +function QNc(a){var b;b=BD(vNb(a,(wtc(),Hsc)),61);return a.k==(j0b(),e0b)&&(b==(Ucd(),Tcd)||b==zcd)} +function bZb(a,b,c){var d,e;e=BD(vNb(a,(Nyc(),jxc)),74);if(e){d=new s7c;o7c(d,0,e);q7c(d,c);ye(b,d)}} +function M_b(a,b,c){var d,e,f,g;g=Q_b(a);d=g.d;e=g.c;f=a.n;b&&(f.a=f.a-d.b-e.a);c&&(f.b=f.b-d.d-e.b)} +function dcc(a,b){var c,d;c=a.j;d=b.j;return c!=d?c.g-d.g:a.p==b.p?0:c==(Ucd(),Acd)?a.p-b.p:b.p-a.p} +function dmc(a){var b,c;bmc(a);for(c=new olb(a.d);c.a<c.c.c.length;){b=BD(mlb(c),101);!!b.i&&cmc(b)}} +function lBc(a,b,c,d,e){NC(a.c[b.g],c.g,d);NC(a.c[c.g],b.g,d);NC(a.b[b.g],c.g,e);NC(a.b[c.g],b.g,e)} +function G1c(a,b,c,d){BD(c.b,65);BD(c.b,65);BD(d.b,65);BD(d.b,65);BD(d.b,65);Hkb(d.a,new L1c(a,b,d))} +function WDb(a,b){a.d==(ead(),aad)||a.d==dad?BD(b.a,57).c.Fc(BD(b.b,57)):BD(b.b,57).c.Fc(BD(b.a,57))} +function Gkd(a,b,c,d){if(c==1){return !a.n&&(a.n=new cUd(D2,a,1,7)),Txd(a.n,b,d)}return ckd(a,b,c,d)} +function Gnd(a,b){var c,d;d=(c=new BYd,c);pnd(d,b);wtd((!a.A&&(a.A=new K4d(u5,a,7)),a.A),d);return d} +function Zqd(a,b,c){var d,e,f,g;f=null;g=b;e=Ypd(g,Jte);d=new jrd(a,c);f=(lqd(d.a,d.b,e),e);return f} +function KJd(a){var b;if(!a.a||(a.Bb&1)==0&&a.a.kh()){b=wId(a);JD(b,148)&&(a.a=BD(b,148))}return a.a} +function Be(a,b){var c,d;uCb(b);for(d=b.Kc();d.Ob();){c=d.Pb();if(!a.Hc(c)){return false}}return true} +function cD(a,b){var c,d,e;c=a.l+b.l;d=a.m+b.m+(c>>22);e=a.h+b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} +function nD(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} +function bdb(a){var b;if(a<128){b=(ddb(),cdb)[a];!b&&(b=cdb[a]=new Xcb(a));return b}return new Xcb(a)} +function ubb(a){var b;if(JD(a,78)){return a}b=a&&a.__java$exception;if(!b){b=new lz(a);Sz(b)}return b} +function btd(a){if(JD(a,186)){return BD(a,118)}else if(!a){throw vbb(new Heb(gue))}else{return null}} +function Zjb(a,b){if(b==null){return false}while(a.a!=a.b){if(pb(b,vkb(a))){return true}}return false} +function kib(a){if(a.a.Ob()){return true}if(a.a!=a.d){return false}a.a=new orb(a.e.f);return a.a.Ob()} +function Gkb(a,b){var c,d;c=b.Pc();d=c.length;if(d==0){return false}bCb(a.c,a.c.length,c);return true} +function Vyb(a,b,c){var d,e;for(e=b.vc().Kc();e.Ob();){d=BD(e.Pb(),42);a.yc(d.cd(),d.dd(),c)}return a} +function yac(a,b){var c,d;for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),70);yNb(c,(wtc(),Ssc),b)}} +function FZc(a,b,c){var d,e;for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),33);bld(d,d.i+b,d.j+c)}} +function Nb(a,b){if(!a){throw vbb(new Wdb(hc('value already present: %s',OC(GC(SI,1),Uhe,1,5,[b]))))}} +function mEb(a,b){if(!a||!b||a==b){return false}return CDb(a.d.c,b.d.c+b.d.b)&&CDb(b.d.c,a.d.c+a.d.b)} +function xyb(){oyb();if(lyb){return new wyb(null)}return fyb(hyb(),'com.google.common.base.Strings')} +function J2c(a,b){var c;c=Pu(b.a.gc());MAb(VAb(new YAb(null,new Kub(b,1)),a.i),new W2c(a,c));return c} +function Hnd(a){var b,c;c=(b=new BYd,b);pnd(c,'T');wtd((!a.d&&(a.d=new K4d(u5,a,11)),a.d),c);return c} +function Etd(a){var b,c,d,e;b=1;for(c=0,e=a.gc();c<e;++c){d=a.ki(c);b=31*b+(d==null?0:tb(d))}return b} +function Wi(a,b,c,d){var e;Pb(b,a.e.Hd().gc());Pb(c,a.c.Hd().gc());e=a.a[b][c];NC(a.a[b],c,d);return e} +function OC(a,b,c,d,e){e.gm=a;e.hm=b;e.im=gcb;e.__elementTypeId$=c;e.__elementTypeCategory$=d;return e} +function p6c(a,b,c,d,e){i6c();return $wnd.Math.min(A6c(a,b,c,d,e),A6c(c,d,a,b,V6c(new f7c(e.a,e.b))))} +function gbc(){gbc=ccb;fbc=new ibc(ane,0);dbc=new ibc(Gne,1);ebc=new ibc(Hne,2);cbc=new ibc('BOTH',3)} +function Ajc(){Ajc=ccb;wjc=new Bjc(gle,0);xjc=new Bjc(jle,1);yjc=new Bjc(kle,2);zjc=new Bjc('TOP',3)} +function lWb(){lWb=ccb;hWb=new oWb('Q1',0);kWb=new oWb('Q4',1);iWb=new oWb('Q2',2);jWb=new oWb('Q3',3)} +function LBc(){LBc=ccb;JBc=new MBc('OFF',0);KBc=new MBc('SINGLE_EDGE',1);IBc=new MBc('MULTI_EDGE',2)} +function a1c(){a1c=ccb;_0c=new c1c('MINIMUM_SPANNING_TREE',0);$0c=new c1c('MAXIMUM_SPANNING_TREE',1)} +function Y1c(){Y1c=ccb;new Lsd('org.eclipse.elk.addLayoutConfig');W1c=new k2c;V1c=new f2c;X1c=new i2c} +function URc(a){var b,c,d;b=new Psb;for(d=Jsb(a.d,0);d.b!=d.d.c;){c=BD(Xsb(d),188);Dsb(b,c.c)}return b} +function dVc(a){var b,c,d,e;e=new Rkb;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),33);b=gVc(c);Gkb(e,b)}return e} +function xcc(a){var b;PZb(a,true);b=_ie;wNb(a,(Nyc(),cyc))&&(b+=BD(vNb(a,cyc),19).a);yNb(a,cyc,meb(b))} +function q1c(a,b,c){var d;Uhb(a.a);Hkb(c.i,new B1c(a));d=new hDb(BD(Ohb(a.a,b.b),65));p1c(a,d,b);c.f=d} +function QLc(a,b){var c,d;c=a.c;d=b.e[a.p];if(d<c.a.c.length-1){return BD(Ikb(c.a,d+1),10)}return null} +function rr(a,b){var c,d;Rb(b,'predicate');for(d=0;a.Ob();d++){c=a.Pb();if(b.Lb(c)){return d}}return -1} +function ZEd(a,b){var c,d;d=0;if(a<64&&a<=b){b=b<64?b:63;for(c=a;c<=b;c++){d=Mbb(d,Nbb(1,c))}}return d} +function pmb(a){mmb();var b,c,d;d=0;for(c=a.Kc();c.Ob();){b=c.Pb();d=d+(b!=null?tb(b):0);d=d|0}return d} +function etd(a){var b,c;c=(Fhd(),b=new rmd,b);!!a&&wtd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),c);return c} +function TA(a){var b;b=new PA;b.a=a;b.b=RA(a);b.c=KC(ZI,nie,2,2,6,1);b.c[0]=SA(a);b.c[1]=SA(a);return b} +function fkd(a,b){switch(b){case 0:!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0));a.o.c.$b();return;}Cid(a,b)} +function jEb(a,b,c){switch(c.g){case 2:a.b=b;break;case 1:a.c=b;break;case 4:a.d=b;break;case 3:a.a=b;}} +function sbd(a){switch(a.g){case 1:return obd;case 2:return nbd;case 3:return pbd;default:return qbd;}} +function Zac(a){switch(BD(vNb(a,(Nyc(),mxc)),163).g){case 2:case 4:return true;default:return false;}} +function Trc(){Trc=ccb;Src=as((Orc(),OC(GC(PW,1),Kie,256,0,[Frc,Hrc,Irc,Jrc,Krc,Lrc,Nrc,Erc,Grc,Mrc])))} +function Ndd(){Ndd=ccb;Mdd=as((Idd(),OC(GC(J1,1),Kie,259,0,[Bdd,Ddd,Add,Edd,Fdd,Hdd,Gdd,Cdd,zdd])))} +function wUc(){wUc=ccb;vUc=e3c(b3c(b3c(g3c(e3c(new j3c,(yRc(),vRc),(qSc(),pSc)),wRc),mSc),nSc),xRc,oSc)} +function Gqc(){Gqc=ccb;Eqc=new Hqc(ane,0);Dqc=new Hqc('INCOMING_ONLY',1);Fqc=new Hqc('OUTGOING_ONLY',2)} +function rC(){rC=ccb;qC={'boolean':sC,'number':tC,'string':vC,'object':uC,'function':uC,'undefined':wC}} +function Whb(a,b){mCb(a>=0,'Negative initial capacity');mCb(b>=0,'Non-positive load factor');Uhb(this)} +function _Ed(a,b,c){if(a>=128)return false;return a<64?Kbb(xbb(Nbb(1,a),c),0):Kbb(xbb(Nbb(1,a-64),b),0)} +function bOb(a,b){if(!a||!b||a==b){return false}return Jy(a.b.c,b.b.c+b.b.b)<0&&Jy(b.b.c,a.b.c+a.b.b)<0} +function I4b(a){var b,c,d;c=a.n;d=a.o;b=a.d;return new J6c(c.a-b.b,c.b-b.d,d.a+(b.b+b.c),d.b+(b.d+b.a))} +function $ic(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;d<e;++d){b=c[d];djc(a,b,(Ucd(),Rcd));djc(a,b,Acd)}} +function Uy(a){var b,c,d,e;for(b=(a.j==null&&(a.j=(Rz(),e=Qz.ce(a),Tz(e))),a.j),c=0,d=b.length;c<d;++c);} +function hD(a){var b,c,d;b=~a.l+1&Eje;c=~a.m+(b==0?1:0)&Eje;d=~a.h+(b==0&&c==0?1:0)&Fje;return TC(b,c,d)} +function C$c(a,b){var c,d;c=BD(BD(Ohb(a.g,b.a),46).a,65);d=BD(BD(Ohb(a.g,b.b),46).a,65);return _Nb(c,d)} +function xtd(a,b,c){var d;d=a.gc();if(b>d)throw vbb(new Cyd(b,d));a.hi()&&(c=Dtd(a,c));return a.Vh(b,c)} +function xNb(a,b,c){return c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a} +function yNb(a,b,c){c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c));return a} +function TQb(a){var b,c;c=new kRb;tNb(c,a);yNb(c,(HSb(),FSb),a);b=new Lqb;VQb(a,c,b);UQb(a,c,b);return c} +function j6c(a){i6c();var b,c,d;c=KC(m1,nie,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=r6c(d,a)}return c} +function Mic(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;f<d-1;f++){e=f+1;c=c|Nic(a,b,f,e)}return c} +function nNb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){YMb(a,f,g)||aNb(a,f,g,true,false)}}} +function rNd(a,b){this.b=a;nNd.call(this,(BD(qud(ZKd((NFd(),MFd).o),10),18),b.i),b.g);this.a=(NKd(),MKd)} +function hj(a,b){this.c=a;this.d=b;this.b=this.d/this.c.c.Hd().gc()|0;this.a=this.d%this.c.c.Hd().gc()} +function jdb(){++edb;this.o=null;this.k=null;this.j=null;this.d=null;this.b=null;this.n=null;this.a=null} +function fB(a,b,c){this.q=new $wnd.Date;this.q.setFullYear(a+nje,b,c);this.q.setHours(0,0,0,0);YA(this,0)} +function tAc(){tAc=ccb;rAc=new uAc(ane,0);qAc=new uAc('NODES_AND_EDGES',1);sAc=new uAc('PREFER_EDGES',2)} +function RA(a){var b;if(a==0){return 'Etc/GMT'}if(a<0){a=-a;b='Etc/GMT-'}else{b='Etc/GMT+'}return b+UA(a)} +function geb(a){var b;if(a<0){return Rie}else if(a==0){return 0}else{for(b=Iie;(b&a)==0;b>>=1);return b}} +function $C(a){var b,c;c=heb(a.h);if(c==32){b=heb(a.m);return b==32?heb(a.l)+32:b+20-10}else{return c-12}} +function bkb(a){var b;b=a.a[a.b];if(b==null){return null}NC(a.a,a.b,null);a.b=a.b+1&a.a.length-1;return b} +function EDc(a){var b,c;b=a.t-a.k[a.o.p]*a.d+a.j[a.o.p]>a.f;c=a.u+a.e[a.o.p]*a.d>a.f*a.s*a.d;return b||c} +function Iwb(a,b,c){var d,e;d=new exb(b,c);e=new fxb;a.b=Gwb(a,a.b,d,e);e.b||++a.c;a.b.b=false;return e.d} +function djc(a,b,c){var d,e,f,g;g=CHc(b,c);f=0;for(e=g.Kc();e.Ob();){d=BD(e.Pb(),11);Rhb(a.c,d,meb(f++))}} +function xVb(a){var b,c;for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),81);b.g.c=-b.g.c-b.g.b}sVb(a)} +function XDb(a){var b,c;for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),57);b.d.c=-b.d.c-b.d.b}RDb(a)} +function AUd(a){var b;if(!a.c||(a.Bb&1)==0&&(a.c.Db&64)!=0){b=wId(a);JD(b,88)&&(a.c=BD(b,26))}return a.c} +function ZC(a){var b,c,d;b=~a.l+1&Eje;c=~a.m+(b==0?1:0)&Eje;d=~a.h+(b==0&&c==0?1:0)&Fje;a.l=b;a.m=c;a.h=d} +function l7c(a){var b,c,d,e,f;b=new d7c;for(d=a,e=0,f=d.length;e<f;++e){c=d[e];b.a+=c.a;b.b+=c.b}return b} +function nmb(a,b){mmb();var c,d,e,f,g;g=false;for(d=b,e=0,f=d.length;e<f;++e){c=d[e];g=g|a.Fc(c)}return g} +function w6c(a){i6c();var b,c;c=-1.7976931348623157E308;for(b=0;b<a.length;b++){a[b]>c&&(c=a[b])}return c} +function SHc(a,b,c){var d;d=new Rkb;UHc(a,b,d,(Ucd(),zcd),true,false);UHc(a,c,d,Tcd,false,false);return d} +function crd(a,b,c){var d,e,f,g;f=null;g=b;e=Ypd(g,'labels');d=new Hrd(a,c);f=(Dqd(d.a,d.b,e),e);return f} +function j1d(a,b,c,d){var e;e=r1d(a,b,c,d);if(!e){e=i1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} +function m1d(a,b,c,d){var e;e=s1d(a,b,c,d);if(!e){e=l1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} +function Xb(a,b){var c;for(c=0;c<a.a.a.length;c++){if(!BD($lb(a.a,c),169).Lb(b)){return false}}return true} +function Cb(a,b,c){Qb(b);if(c.Ob()){Mfb(b,Fb(c.Pb()));while(c.Ob()){Mfb(b,a.a);Mfb(b,Fb(c.Pb()))}}return b} +function qmb(a){mmb();var b,c,d;d=1;for(c=a.Kc();c.Ob();){b=c.Pb();d=31*d+(b!=null?tb(b):0);d=d|0}return d} +function WC(a,b,c,d,e){var f;f=lD(a,b);c&&ZC(f);if(e){a=YC(a,b);d?(QC=hD(a)):(QC=TC(a.l,a.m,a.h))}return f} +function Xzb(b,c){var d;try{c.Vd()}catch(a){a=ubb(a);if(JD(a,78)){d=a;b.c[b.c.length]=d}else throw vbb(a)}} +function jRb(a,b,c){var d,e;if(JD(b,144)&&!!c){d=BD(b,144);e=c;return a.a[d.b][e.b]+a.a[e.b][d.b]}return 0} +function xld(a,b){switch(b){case 7:return !!a.e&&a.e.i!=0;case 8:return !!a.d&&a.d.i!=0;}return Ykd(a,b)} +function YQb(a,b){switch(b.g){case 0:JD(a.b,631)||(a.b=new xRb);break;case 1:JD(a.b,632)||(a.b=new DRb);}} +function Ghe(a,b){while(a.g==null&&!a.c?Uud(a):a.g==null||a.i!=0&&BD(a.g[a.i-1],47).Ob()){Ord(b,Vud(a))}} +function kic(a,b,c){a.g=qic(a,b,(Ucd(),zcd),a.b);a.d=qic(a,c,zcd,a.b);if(a.g.c==0||a.d.c==0){return}nic(a)} +function lic(a,b,c){a.g=qic(a,b,(Ucd(),Tcd),a.j);a.d=qic(a,c,Tcd,a.j);if(a.g.c==0||a.d.c==0){return}nic(a)} +function $yc(a,b,c){return !WAb(JAb(new YAb(null,new Kub(a.c,16)),new Xxb(new dfd(b,c)))).sd((EAb(),DAb))} +function KAb(a){var b;Tzb(a);b=new NBb;if(a.a.sd(b)){return Atb(),new Ftb(uCb(b.a))}return Atb(),Atb(),ztb} +function nA(a){var b;if(a.b<=0){return false}b=hfb('MLydhHmsSDkK',wfb(bfb(a.c,0)));return b>1||b>=0&&a.b<3} +function w7c(a){var b,c,d;b=new s7c;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);St(b,0,new g7c(c))}return b} +function qVb(a){var b,c;for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),81);b.f.$b()}LVb(a.b,a);rVb(a)} +function tb(a){return ND(a)?LCb(a):LD(a)?Hdb(a):KD(a)?(uCb(a),a)?1231:1237:ID(a)?a.Hb():MC(a)?FCb(a):rz(a)} +function rb(a){return ND(a)?ZI:LD(a)?BI:KD(a)?wI:ID(a)?a.gm:MC(a)?a.gm:a.gm||Array.isArray(a)&&GC(PH,1)||PH} +function j_c(a){switch(a.g){case 0:return new Q1c;default:throw vbb(new Wdb(Mre+(a.f!=null?a.f:''+a.g)));}} +function S0c(a){switch(a.g){case 0:return new k1c;default:throw vbb(new Wdb(Mre+(a.f!=null?a.f:''+a.g)));}} +function ekd(a,b,c){switch(b){case 0:!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0));cId(a.o,c);return;}yid(a,b,c)} +function XRc(a,b,c){this.g=a;this.e=new d7c;this.f=new d7c;this.d=new Psb;this.b=new Psb;this.a=b;this.c=c} +function PZc(a,b,c,d){this.b=new Rkb;this.n=new Rkb;this.i=d;this.j=c;this.s=a;this.t=b;this.r=0;this.d=0} +function nib(a){this.e=a;this.d=new Irb(this.e.g);this.a=this.d;this.b=kib(this);this.$modCount=a.$modCount} +function Pr(a){while(!a.d||!a.d.Ob()){if(!!a.b&&!akb(a.b)){a.d=BD(fkb(a.b),47)}else{return null}}return a.d} +function Xyc(a){Ekb(a.c,(Y1c(),W1c));if(Ky(a.a,Edb(ED(Ksd((dzc(),bzc)))))){return new Zed}return new _ed(a)} +function bRc(a){switch(a.g){case 1:return Sqe;default:case 2:return 0;case 3:return cme;case 4:return Tqe;}} +function Ife(){wfe();var a;if(dfe)return dfe;a=Afe(Kfe('M',true));a=Bfe(Kfe('M',false),a);dfe=a;return dfe} +function Awb(a,b){var c,d,e;e=a.b;while(e){c=a.a.ue(b,e.d);if(c==0){return e}d=c<0?0:1;e=e.a[d]}return null} +function Tyb(a,b,c){var d,e;d=(Bcb(),_Pb(c)?true:false);e=BD(b.xc(d),15);if(!e){e=new Rkb;b.zc(d,e)}e.Fc(c)} +function dYc(a,b){var c,d;c=BD(hkd(a,(lZc(),UYc)),19).a;d=BD(hkd(b,UYc),19).a;return c==d?-1:c<d?-1:c>d?1:0} +function NYb(a,b){if(OYb(a,b)){Rc(a.b,BD(vNb(b,(wtc(),Esc)),21),b);Dsb(a.a,b);return true}else{return false}} +function d3b(a){var b,c;b=BD(vNb(a,(wtc(),gtc)),10);if(b){c=b.c;Lkb(c.a,b);c.a.c.length==0&&Lkb(Q_b(b).b,c)}} +function syb(a){if(lyb){return KC(qL,tke,572,0,0,1)}return BD(Qkb(a.a,KC(qL,tke,572,a.a.c.length,0,1)),842)} +function mn(a,b,c,d){Vm();return new wx(OC(GC(CK,1),zie,42,0,[(Wj(a,b),new Wo(a,b)),(Wj(c,d),new Wo(c,d))]))} +function Dnd(a,b,c){var d,e;e=(d=new SSd,d);$nd(e,b,c);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),e);return e} +function Zmd(a){var b,c,d,e;e=icb(Rmd,a);c=e.length;d=KC(ZI,nie,2,c,6,1);for(b=0;b<c;++b){d[b]=e[b]}return d} +function l4c(a,b){var c,d,e,f,g;for(d=b,e=0,f=d.length;e<f;++e){c=d[e];g=new v4c(a);c.Qe(g);q4c(g)}Uhb(a.f)} +function hw(a,b){var c;if(b===a){return true}if(JD(b,224)){c=BD(b,224);return pb(a.Zb(),c.Zb())}return false} +function aub(a,b){var c;if(b*2+1>=a.b.c.length){return}aub(a,2*b+1);c=2*b+2;c<a.b.c.length&&aub(a,c);bub(a,b)} +function Ss(a,b,c){var d,e;this.g=a;this.c=b;this.a=this;this.d=this;e=Kp(c);d=KC(BG,Gie,330,e,0,1);this.b=d} +function whb(a,b,c){var d;for(d=c-1;d>=0&&a[d]===b[d];d--);return d<0?0:Gbb(xbb(a[d],Yje),xbb(b[d],Yje))?-1:1} +function UFc(a,b){var c,d;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),214);if(c.e.length>0){b.td(c);c.i&&_Fc(c)}}} +function nzd(a,b){var c,d;d=BD(Ajd(a.a,4),126);c=KC($3,hve,415,b,0,1);d!=null&&$fb(d,0,c,0,d.length);return c} +function JEd(a,b){var c;c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,b);a.e!=null||(c.c=a);return c} +function Dc(a,b){var c,d;for(d=a.Zb().Cc().Kc();d.Ob();){c=BD(d.Pb(),14);if(c.Hc(b)){return true}}return false} +function oNb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){if(YMb(a,f,g)){return true}}}return false} +function Tt(a,b,c){var d,e,f,g;uCb(c);g=false;f=a.Zc(b);for(e=c.Kc();e.Ob();){d=e.Pb();f.Rb(d);g=true}return g} +function Dv(a,b){var c;if(a===b){return true}else if(JD(b,83)){c=BD(b,83);return Ax(Wm(a),c.vc())}return false} +function Nhb(a,b,c){var d,e;for(e=c.Kc();e.Ob();){d=BD(e.Pb(),42);if(a.re(b,d.dd())){return true}}return false} +function Hic(a,b,c){if(!a.d[b.p][c.p]){Gic(a,b,c);a.d[b.p][c.p]=true;a.d[c.p][b.p]=true}return a.a[b.p][c.p]} +function Itd(a,b){if(!a.ai()&&b==null){throw vbb(new Wdb("The 'no null' constraint is violated"))}return b} +function $Jd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}jKd(a,b==null?null:(uCb(b),b));!!a.C&&a.yk(null)} +function XHc(a,b){var c;if(!a||a==b||!wNb(b,(wtc(),Psc))){return false}c=BD(vNb(b,(wtc(),Psc)),10);return c!=a} +function b4d(a){switch(a.i){case 2:{return true}case 1:{return false}case -1:{++a.c}default:{return a.pl()}}} +function c4d(a){switch(a.i){case -2:{return true}case -1:{return false}case 1:{--a.c}default:{return a.ql()}}} +function Xdb(a){Zy.call(this,'The given string does not match the expected format for individual spacings.',a)} +function pgd(){pgd=ccb;mgd=new qgd('ELK',0);ngd=new qgd('JSON',1);lgd=new qgd('DOT',2);ogd=new qgd('SVG',3)} +function pWc(){pWc=ccb;mWc=new rWc(ane,0);nWc=new rWc('RADIAL_COMPACTION',1);oWc=new rWc('WEDGE_COMPACTION',2)} +function Fyb(){Fyb=ccb;Cyb=new Gyb('CONCURRENT',0);Dyb=new Gyb('IDENTITY_FINISH',1);Eyb=new Gyb('UNORDERED',2)} +function nPb(){nPb=ccb;kPb=(cPb(),bPb);jPb=new Nsd(Tle,kPb);iPb=new Lsd(Ule);lPb=new Lsd(Vle);mPb=new Lsd(Wle)} +function Occ(){Occ=ccb;Mcc=new Zcc;Ncc=new _cc;Lcc=new bdc;Kcc=new fdc;Jcc=new jdc;Icc=(uCb(Jcc),new bpb)} +function tBc(){tBc=ccb;qBc=new uBc('CONSERVATIVE',0);rBc=new uBc('CONSERVATIVE_SOFT',1);sBc=new uBc('SLOPPY',2)} +function Zad(){Zad=ccb;Xad=new q0b(15);Wad=new Osd((Y9c(),f9c),Xad);Yad=C9c;Sad=s8c;Tad=Y8c;Vad=_8c;Uad=$8c} +function o7c(a,b,c){var d,e,f;d=new Psb;for(f=Jsb(c,0);f.b!=f.d.c;){e=BD(Xsb(f),8);Dsb(d,new g7c(e))}Tt(a,b,d)} +function r7c(a){var b,c,d;b=0;d=KC(m1,nie,8,a.b,0,1);c=Jsb(a,0);while(c.b!=c.d.c){d[b++]=BD(Xsb(c),8)}return d} +function $Pd(a){var b;b=(!a.a&&(a.a=new cUd(g5,a,9,5)),a.a);if(b.i!=0){return nQd(BD(qud(b,0),678))}return null} +function Ly(a,b){var c;c=wbb(a,b);if(Gbb(Vbb(a,b),0)|Ebb(Vbb(a,c),0)){return c}return wbb(rie,Vbb(Pbb(c,63),1))} +function Yyc(a,b){var c;c=Ksd((dzc(),bzc))!=null&&b.wg()!=null?Edb(ED(b.wg()))/Edb(ED(Ksd(bzc))):1;Rhb(a.b,b,c)} +function le(a,b){var c,d;c=BD(a.d.Bc(b),14);if(!c){return null}d=a.e.hc();d.Gc(c);a.e.d-=c.gc();c.$b();return d} +function AHc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(c<a.a.length){a.a[c]-=d;c+=c&-c}} +function rwb(a){var b;b=a.a.c.length;if(b>0){return _vb(b-1,a.a.c.length),Kkb(a.a,b-1)}else{throw vbb(new Jpb)}} +function C2c(a,b,c){if(b<0){throw vbb(new qcb(ese+b))}if(b<a.j.c.length){Nkb(a.j,b,c)}else{A2c(a,b);Ekb(a.j,c)}} +function oCb(a,b,c){if(a>b){throw vbb(new Wdb(xke+a+yke+b))}if(a<0||b>c){throw vbb(new scb(xke+a+zke+b+oke+c))}} +function j5c(a){if(!a.a||(a.a.i&8)==0){throw vbb(new Zdb('Enumeration class expected for layout option '+a.f))}} +function vud(a){var b;++a.j;if(a.i==0){a.g=null}else if(a.i<a.g.length){b=a.g;a.g=a.ri(a.i);$fb(b,0,a.g,0,a.i)}} +function hkb(a,b){var c,d;c=a.a.length-1;a.c=a.c-1&c;while(b!=a.c){d=b+1&c;NC(a.a,b,a.a[d]);b=d}NC(a.a,a.c,null)} +function ikb(a,b){var c,d;c=a.a.length-1;while(b!=a.b){d=b-1&c;NC(a.a,b,a.a[d]);b=d}NC(a.a,a.b,null);a.b=a.b+1&c} +function Fkb(a,b,c){var d,e;wCb(b,a.c.length);d=c.Pc();e=d.length;if(e==0){return false}bCb(a.c,b,d);return true} +function VEd(a){var b,c;if(a==null)return null;for(b=0,c=a.length;b<c;b++){if(!gFd(a[b]))return a[b]}return null} +function grb(a,b,c){var d,e,f,g;for(e=c,f=0,g=e.length;f<g;++f){d=e[f];if(a.b.re(b,d.cd())){return d}}return null} +function Hlb(a){var b,c,d,e,f;f=1;for(c=a,d=0,e=c.length;d<e;++d){b=c[d];f=31*f+(b!=null?tb(b):0);f=f|0}return f} +function as(a){var b,c,d,e,f;b={};for(d=a,e=0,f=d.length;e<f;++e){c=d[e];b[':'+(c.f!=null?c.f:''+c.g)]=c}return b} +function gr(a){var b;Qb(a);Mb(true,'numberToAdvance must be nonnegative');for(b=0;b<0&&Qr(a);b++){Rr(a)}return b} +function eDc(a){var b,c,d;d=0;for(c=new Sr(ur(a.a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);b.c.i==b.d.i||++d}return d} +function HZb(a,b){var c,d,e;c=a;e=0;do{if(c==b){return e}d=c.e;if(!d){throw vbb(new Vdb)}c=Q_b(d);++e}while(true)} +function w$c(a,b){var c,d,e;e=b-a.f;for(d=new olb(a.d);d.a<d.c.c.length;){c=BD(mlb(d),443);_Zc(c,c.e,c.f+e)}a.f=b} +function aRc(a,b,c){if($wnd.Math.abs(b-a)<Rqe||$wnd.Math.abs(c-a)<Rqe){return true}return b-a>Rqe?a-c>Rqe:c-a>Rqe} +function pHb(a,b){if(!a){return 0}if(b&&!a.j){return 0}if(JD(a,124)){if(BD(a,124).a.b==0){return 0}}return a.Re()} +function qHb(a,b){if(!a){return 0}if(b&&!a.k){return 0}if(JD(a,124)){if(BD(a,124).a.a==0){return 0}}return a.Se()} +function fhb(a){Hgb();if(a<0){if(a!=-1){return new Tgb(-1,-a)}return Bgb}else return a<=10?Dgb[QD(a)]:new Tgb(1,a)} +function xC(a){rC();throw vbb(new MB("Unexpected typeof result '"+a+"'; please report this bug to the GWT team"))} +function lz(a){jz();Py(this);Ry(this);this.e=a;Sy(this,a);this.g=a==null?Xhe:fcb(a);this.a='';this.b=a;this.a=''} +function F$c(){this.a=new G$c;this.f=new I$c(this);this.b=new K$c(this);this.i=new M$c(this);this.e=new O$c(this)} +function ss(){rs.call(this,new _rb(Cv(16)));Xj(2,mie);this.b=2;this.a=new Ms(null,null,0,null);As(this.a,this.a)} +function xzc(){xzc=ccb;uzc=new zzc('DUMMY_NODE_OVER',0);vzc=new zzc('DUMMY_NODE_UNDER',1);wzc=new zzc('EQUAL',2)} +function LUb(){LUb=ccb;JUb=Fx(OC(GC(t1,1),Kie,103,0,[(ead(),aad),bad]));KUb=Fx(OC(GC(t1,1),Kie,103,0,[dad,_9c]))} +function VQc(a){return (Ucd(),Lcd).Hc(a.j)?Edb(ED(vNb(a,(wtc(),qtc)))):l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a])).b} +function DOb(a){var b,c,d,e;d=a.b.a;for(c=d.a.ec().Kc();c.Ob();){b=BD(c.Pb(),561);e=new MPb(b,a.e,a.f);Ekb(a.g,e)}} +function yId(a,b){var c,d,e;d=a.nk(b,null);e=null;if(b){e=(LFd(),c=new UQd,c);NQd(e,a.r)}d=xId(a,e,d);!!d&&d.Fi()} +function VFc(a,b){var c,d;d=Cub(a.d,1)!=0;c=true;while(c){c=false;c=b.c.Tf(b.e,d);c=c|dGc(a,b,d,false);d=!d}$Fc(a)} +function wZc(a,b){var c,d,e;d=false;c=b.q.d;if(b.d<a.b){e=ZZc(b.q,a.b);if(b.q.d>e){$Zc(b.q,e);d=c!=b.q.d}}return d} +function PVc(a,b){var c,d,e,f,g,h,i,j;i=b.i;j=b.j;d=a.f;e=d.i;f=d.j;g=i-e;h=j-f;c=$wnd.Math.sqrt(g*g+h*h);return c} +function Rnd(a,b){var c,d;d=jid(a);if(!d){!And&&(And=new lUd);c=(IEd(),PEd(b));d=new s0d(c);wtd(d.Vk(),a)}return d} +function Sc(a,b){var c,d;c=BD(a.c.Bc(b),14);if(!c){return a.jc()}d=a.hc();d.Gc(c);a.d-=c.gc();c.$b();return a.mc(d)} +function j7c(a,b){var c;for(c=0;c<b.length;c++){if(a==(BCb(c,b.length),b.charCodeAt(c))){return true}}return false} +function E_b(a,b){var c;for(c=0;c<b.length;c++){if(a==(BCb(c,b.length),b.charCodeAt(c))){return true}}return false} +function hFd(a){var b,c;if(a==null)return false;for(b=0,c=a.length;b<c;b++){if(!gFd(a[b]))return false}return true} +function Ngb(a){var b;if(a.c!=0){return a.c}for(b=0;b<a.a.length;b++){a.c=a.c*33+(a.a[b]&-1)}a.c=a.c*a.e;return a.c} +function vkb(a){var b;sCb(a.a!=a.b);b=a.d.a[a.a];mkb(a.b==a.d.c&&b!=null);a.c=a.a;a.a=a.a+1&a.d.a.length-1;return b} +function phe(a){var b;if(!(a.c.c<0?a.a>=a.c.b:a.a<=a.c.b)){throw vbb(new utb)}b=a.a;a.a+=a.c.c;++a.b;return meb(b)} +function BWb(a){var b;b=new VWb(a);rXb(a.a,zWb,new amb(OC(GC(bQ,1),Uhe,369,0,[b])));!!b.d&&Ekb(b.f,b.d);return b.f} +function Z1b(a){var b;b=new q_b(a.a);tNb(b,a);yNb(b,(wtc(),$sc),a);b.o.a=a.g;b.o.b=a.f;b.n.a=a.i;b.n.b=a.j;return b} +function A9b(a,b,c,d){var e,f;for(f=a.Kc();f.Ob();){e=BD(f.Pb(),70);e.n.a=b.a+(d.a-e.o.a)/2;e.n.b=b.b;b.b+=e.o.b+c}} +function UDb(a,b,c){var d,e;for(e=b.a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),57);if(VDb(a,d,c)){return true}}return false} +function JDc(a){var b,c;for(c=new olb(a.r);c.a<c.c.c.length;){b=BD(mlb(c),10);if(a.n[b.p]<=0){return b}}return null} +function cVc(a){var b,c,d,e;e=new Tqb;for(d=new olb(a);d.a<d.c.c.length;){c=BD(mlb(d),33);b=fVc(c);ye(e,b)}return e} +function zFc(a){var b;b=k3c(xFc);BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Krc))&&e3c(b,(qUb(),nUb),(S8b(),H8b));return b} +function qKb(a,b,c){var d;d=new AJb(a,b);Rc(a.r,b.Hf(),d);if(c&&!tcd(a.u)){d.c=new aIb(a.d);Hkb(b.wf(),new tKb(d))}} +function ybb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a-b;if(!isNaN(c)){return c}}return eD(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b)} +function bFd(a,b){return b<a.length&&(BCb(b,a.length),a.charCodeAt(b)!=63)&&(BCb(b,a.length),a.charCodeAt(b)!=35)} +function Kic(a,b,c,d){var e,f;a.a=b;f=d?0:1;a.f=(e=new Iic(a.c,a.a,c,f),new jjc(c,a.a,e,a.e,a.b,a.c==(rGc(),pGc)))} +function Tmd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,1,e,b);!c?(c=d):c.Ei(d)}return c} +function GQd(a,b,c){var d,e;e=a.b;a.b=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,3,e,b);!c?(c=d):c.Ei(d)}return c} +function IQd(a,b,c){var d,e;e=a.f;a.f=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,0,e,b);!c?(c=d):c.Ei(d)}return c} +function xid(a,b){var c,d,e,f;f=(e=a?jid(a):null,q6d((d=b,e?e.Xk():null,d)));if(f==b){c=jid(a);!!c&&c.Xk()}return f} +function x6c(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function y6c(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function sAd(a){var b,c,d,e;if(a!=null){for(c=0;c<a.length;++c){b=a[c];if(b){BD(b.g,367);e=b.i;for(d=0;d<e;++d);}}}} +function YZc(a){var b,c,d;d=0;for(c=new olb(a.a);c.a<c.c.c.length;){b=BD(mlb(c),187);d=$wnd.Math.max(d,b.g)}return d} +function eGc(a){var b,c,d;for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),214);b=c.c.Rf()?c.f:c.a;!!b&&mHc(b,c.j)}} +function hbd(){hbd=ccb;fbd=new ibd('INHERIT',0);ebd=new ibd('INCLUDE_CHILDREN',1);gbd=new ibd('SEPARATE_CHILDREN',2)} +function Jkd(a,b){switch(b){case 1:!a.n&&(a.n=new cUd(D2,a,1,7));Uxd(a.n);return;case 2:Lkd(a,null);return;}fkd(a,b)} +function Dm(a){var b;switch(a.gc()){case 0:return hm;case 1:return new my(Qb(a.Xb(0)));default:b=a;return new ux(b);}} +function Vn(a){Ql();switch(a.gc()){case 0:return yx(),xx;case 1:return new oy(a.Kc().Pb());default:return new zx(a);}} +function Up(a){Ql();switch(a.c){case 0:return yx(),xx;case 1:return new oy(qr(new Gqb(a)));default:return new Tp(a);}} +function Hv(b,c){Qb(b);try{return b.xc(c)}catch(a){a=ubb(a);if(JD(a,205)||JD(a,173)){return null}else throw vbb(a)}} +function Iv(b,c){Qb(b);try{return b.Bc(c)}catch(a){a=ubb(a);if(JD(a,205)||JD(a,173)){return null}else throw vbb(a)}} +function Ck(b,c){Qb(b);try{return b.Hc(c)}catch(a){a=ubb(a);if(JD(a,205)||JD(a,173)){return false}else throw vbb(a)}} +function Dk(b,c){Qb(b);try{return b.Mc(c)}catch(a){a=ubb(a);if(JD(a,205)||JD(a,173)){return false}else throw vbb(a)}} +function Gv(b,c){Qb(b);try{return b._b(c)}catch(a){a=ubb(a);if(JD(a,205)||JD(a,173)){return false}else throw vbb(a)}} +function KXb(a,b){var c;if(a.a.c.length>0){c=BD(Ikb(a.a,a.a.c.length-1),570);if(NYb(c,b)){return}}Ekb(a.a,new PYb(b))} +function $gc(a){Hgc();var b,c;b=a.d.c-a.e.c;c=BD(a.g,145);Hkb(c.b,new shc(b));Hkb(c.c,new uhc(b));reb(c.i,new whc(b))} +function gic(a){var b;b=new Ufb;b.a+='VerticalSegment ';Pfb(b,a.e);b.a+=' ';Qfb(b,Eb(new Gb,new olb(a.k)));return b.a} +function u4c(a){var b;b=BD(Wrb(a.c.c,''),229);if(!b){b=new W3c(d4c(c4c(new e4c,''),'Other'));Xrb(a.c.c,'',b)}return b} +function qnd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (name: ';Efb(b,a.zb);b.a+=')';return b.a} +function Jnd(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}return c} +function _ic(a,b){var c,d,e;c=0;for(e=V_b(a,b).Kc();e.Ob();){d=BD(e.Pb(),11);c+=vNb(d,(wtc(),gtc))!=null?1:0}return c} +function vPc(a,b,c){var d,e,f;d=0;for(f=Jsb(a,0);f.b!=f.d.c;){e=Edb(ED(Xsb(f)));if(e>c){break}else e>=b&&++d}return d} +function RTd(a,b,c){var d,e;d=new pSd(a.e,3,13,null,(e=b.c,e?e:(jGd(),YFd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function STd(a,b,c){var d,e;d=new pSd(a.e,4,13,(e=b.c,e?e:(jGd(),YFd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function zId(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,8,e,a.r);!c?(c=d):c.Ei(d)}return c} +function o1d(a,b){var c,d;c=BD(b,676);d=c.vk();!d&&c.wk(d=JD(b,88)?new C1d(a,BD(b,26)):new O1d(a,BD(b,148)));return d} +function kud(a,b,c){var d;a.qi(a.i+1);d=a.oi(b,c);b!=a.i&&$fb(a.g,b,a.g,b+1,a.i-b);NC(a.g,b,d);++a.i;a.bi(b,c);a.ci()} +function vwb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new Wfb(a.d)):Qfb(a.a,a.b);Ofb(a.a,b.a,b.d.length,c)}return a} +function __d(a,b){var c,d,e,f;b.vi(a.a);f=BD(Ajd(a.a,8),1936);if(f!=null){for(c=f,d=0,e=c.length;d<e;++d){null.jm()}}} +function TAb(a,b){var c;c=new NBb;if(!a.a.sd(c)){Tzb(a);return Atb(),Atb(),ztb}return Atb(),new Ftb(uCb(SAb(a,c.a,b)))} +function CHc(a,b){switch(b.g){case 2:case 1:return V_b(a,b);case 3:case 4:return Su(V_b(a,b));}return mmb(),mmb(),jmb} +function pb(a,b){return ND(a)?dfb(a,b):LD(a)?Fdb(a,b):KD(a)?(uCb(a),PD(a)===PD(b)):ID(a)?a.Fb(b):MC(a)?mb(a,b):qz(a,b)} +function r6d(a){return !a?null:(a.i&1)!=0?a==sbb?wI:a==WD?JI:a==VD?FI:a==UD?BI:a==XD?MI:a==rbb?UI:a==SD?xI:yI:a} +function Fhb(a,b,c,d,e){if(b==0||d==0){return}b==1?(e[d]=Hhb(e,c,d,a[0])):d==1?(e[b]=Hhb(e,a,b,c[0])):Ghb(a,c,e,b,d)} +function c6b(a,b){var c;if(a.c.length==0){return}c=BD(Qkb(a,KC(OQ,kne,10,a.c.length,0,1)),193);Nlb(c,new o6b);_5b(c,b)} +function i6b(a,b){var c;if(a.c.length==0){return}c=BD(Qkb(a,KC(OQ,kne,10,a.c.length,0,1)),193);Nlb(c,new t6b);_5b(c,b)} +function Ekd(a,b,c,d){switch(b){case 1:return !a.n&&(a.n=new cUd(D2,a,1,7)),a.n;case 2:return a.k;}return bkd(a,b,c,d)} +function ead(){ead=ccb;cad=new iad(ole,0);bad=new iad(kle,1);aad=new iad(jle,2);_9c=new iad(vle,3);dad=new iad('UP',4)} +function RXb(){RXb=ccb;QXb=new SXb(ane,0);PXb=new SXb('INSIDE_PORT_SIDE_GROUPS',1);OXb=new SXb('FORCE_MODEL_ORDER',2)} +function xCb(a,b,c){if(a<0||b>c){throw vbb(new qcb(xke+a+zke+b+', size: '+c))}if(a>b){throw vbb(new Wdb(xke+a+yke+b))}} +function eid(a,b,c){if(b<0){vid(a,c)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Vj(a,a.yh(),b)}} +function Jlb(a,b,c,d,e,f,g,h){var i;i=c;while(f<g){i>=d||b<c&&h.ue(a[b],a[i])<=0?NC(e,f++,a[b++]):NC(e,f++,a[i++])}} +function yZb(a,b,c,d,e,f){this.e=new Rkb;this.f=(KAc(),JAc);Ekb(this.e,a);this.d=b;this.a=c;this.b=d;this.f=e;this.c=f} +function VOd(a,b){var c,d;for(d=new Fyd(a);d.e!=d.i.gc();){c=BD(Dyd(d),26);if(PD(b)===PD(c)){return true}}return false} +function uJb(a){qJb();var b,c,d,e;for(c=wJb(),d=0,e=c.length;d<e;++d){b=c[d];if(Jkb(b.a,a,0)!=-1){return b}}return pJb} +function jFd(a){if(a>=65&&a<=70){return a-65+10}if(a>=97&&a<=102){return a-97+10}if(a>=48&&a<=57){return a-48}return 0} +function QHd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (source: ';Efb(b,a.d);b.a+=')';return b.a} +function OQd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,5,e,a.a);!c?(c=d):Qwd(c,d)}return c} +function BId(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,2,c,b))} +function eLd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} +function LPd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} +function CId(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,3,c,b))} +function fLd(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,9,c,b))} +function N7d(a,b){var c;if(a.b==-1&&!!a.a){c=a.a.Gj();a.b=!c?bLd(a.c.Tg(),a.a):a.c.Xg(a.a.aj(),c)}return a.c.Og(a.b,b)} +function meb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(oeb(),neb)[b];!c&&(c=neb[b]=new _db(a));return c}return new _db(a)} +function Web(a){var b,c;if(a>-129&&a<128){b=a+128;c=(Yeb(),Xeb)[b];!c&&(c=Xeb[b]=new Qeb(a));return c}return new Qeb(a)} +function L5b(a){var b,c;b=a.k;if(b==(j0b(),e0b)){c=BD(vNb(a,(wtc(),Hsc)),61);return c==(Ucd(),Acd)||c==Rcd}return false} +function i1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return r1d(a,d,b,c)}}return null} +function l1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return s1d(a,d,b,c)}}return null} +function cTd(a,b){var c,d;for(d=new Fyd(a);d.e!=d.i.gc();){c=BD(Dyd(d),138);if(PD(b)===PD(c)){return true}}return false} +function vtd(a,b,c){var d;d=a.gc();if(b>d)throw vbb(new Cyd(b,d));if(a.hi()&&a.Hc(c)){throw vbb(new Wdb(kue))}a.Xh(b,c)} +function iqd(a,b){var c;c=oo(a.i,b);if(c==null){throw vbb(new cqd('Node did not exist in input.'))}Yqd(b,c);return null} +function $hd(a,b){var c;c=YKd(a,b);if(JD(c,322)){return BD(c,34)}throw vbb(new Wdb(ite+b+"' is not a valid attribute"))} +function V2d(a,b,c){var d,e;e=JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a);for(d=0;d<c;++d){d4d(e)}return e} +function ede(a){var b,c,d;d=0;c=a.length;for(b=0;b<c;b++){a[b]==32||a[b]==13||a[b]==10||a[b]==9||(a[d++]=a[b])}return d} +function lYb(a){var b,c,d;b=new Rkb;for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),594);Gkb(b,BD(c.jf(),14))}return b} +function SSc(a){var b,c,d;b=BD(vNb(a,(mTc(),gTc)),15);for(d=b.Kc();d.Ob();){c=BD(d.Pb(),188);Dsb(c.b.d,c);Dsb(c.c.b,c)}} +function b5b(a){switch(BD(vNb(a,(wtc(),Osc)),303).g){case 1:yNb(a,Osc,(esc(),bsc));break;case 2:yNb(a,Osc,(esc(),dsc));}} +function _Fc(a){var b;if(a.g){b=a.c.Rf()?a.f:a.a;bGc(b.a,a.o,true);bGc(b.a,a.o,false);yNb(a.o,(Nyc(),Vxc),(dcd(),Zbd))}} +function loc(a){var b;if(!a.a){throw vbb(new Zdb('Cannot offset an unassigned cut.'))}b=a.c-a.b;a.b+=b;noc(a,b);ooc(a,b)} +function ckb(a){var b;b=a.a[a.c-1&a.a.length-1];if(b==null){return null}a.c=a.c-1&a.a.length-1;NC(a.a,a.c,null);return b} +function zGb(a){var b,c;for(c=a.p.a.ec().Kc();c.Ob();){b=BD(c.Pb(),213);if(b.f&&a.b[b.c]<-1.0E-10){return b}}return null} +function bLb(a,b){switch(a.b.g){case 0:case 1:return b;case 2:case 3:return new J6c(b.d,0,b.a,b.b);default:return null;}} +function had(a){switch(a.g){case 2:return bad;case 1:return aad;case 4:return _9c;case 3:return dad;default:return cad;}} +function Vcd(a){switch(a.g){case 1:return Tcd;case 2:return Acd;case 3:return zcd;case 4:return Rcd;default:return Scd;}} +function Wcd(a){switch(a.g){case 1:return Rcd;case 2:return Tcd;case 3:return Acd;case 4:return zcd;default:return Scd;}} +function Xcd(a){switch(a.g){case 1:return zcd;case 2:return Rcd;case 3:return Tcd;case 4:return Acd;default:return Scd;}} +function DPc(a){switch(a){case 0:return new OPc;case 1:return new EPc;case 2:return new JPc;default:throw vbb(new Vdb);}} +function Kdb(a,b){if(a<b){return -1}if(a>b){return 1}if(a==b){return a==0?Kdb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1} +function f4b(a,b){Odd(b,'Sort end labels',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new q4b),new s4b),new u4b);Qdd(b)} +function Wxd(a,b,c){var d,e;if(a.ej()){e=a.fj();d=sud(a,b,c);a.$i(a.Zi(7,meb(c),d,b,e));return d}else{return sud(a,b,c)}} +function vAd(a,b){var c,d,e;if(a.d==null){++a.e;--a.f}else{e=b.cd();c=b.Sh();d=(c&Ohe)%a.d.length;KAd(a,d,xAd(a,d,c,e))}} +function ZId(a,b){var c;c=(a.Bb&zte)!=0;b?(a.Bb|=zte):(a.Bb&=-1025);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,10,c,b))} +function dJd(a,b){var c;c=(a.Bb&Rje)!=0;b?(a.Bb|=Rje):(a.Bb&=-4097);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,12,c,b))} +function eJd(a,b){var c;c=(a.Bb&Cve)!=0;b?(a.Bb|=Cve):(a.Bb&=-8193);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,15,c,b))} +function fJd(a,b){var c;c=(a.Bb&Dve)!=0;b?(a.Bb|=Dve):(a.Bb&=-2049);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,11,c,b))} +function jOb(a,b){var c;c=Kdb(a.b.c,b.b.c);if(c!=0){return c}c=Kdb(a.a.a,b.a.a);if(c!=0){return c}return Kdb(a.a.b,b.a.b)} +function jqd(a,b){var c;c=Ohb(a.k,b);if(c==null){throw vbb(new cqd('Port did not exist in input.'))}Yqd(b,c);return null} +function k6d(a){var b,c;for(c=l6d(bKd(a)).Kc();c.Ob();){b=GD(c.Pb());if(Dmd(a,b)){return uFd((tFd(),sFd),b)}}return null} +function n3d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);f=0;c=BD(a.g,119);for(e=0;e<a.i;++e){d=c[e];g.rl(d.ak())&&++f}return f} +function Vsd(a,b,c){var d,e;d=BD(b.We(a.a),35);e=BD(c.We(a.a),35);return d!=null&&e!=null?Fcb(d,e):d!=null?-1:e!=null?1:0} +function ved(a,b,c){var d,e;if(a.c){Efd(a.c,b,c)}else{for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),157);ved(d,b,c)}}} +function RUb(a,b){var c,d;for(d=new olb(b);d.a<d.c.c.length;){c=BD(mlb(d),46);Lkb(a.b.b,c.b);fVb(BD(c.a,189),BD(c.b,81))}} +function tr(a){var b,c;c=Kfb(new Ufb,91);b=true;while(a.Ob()){b||(c.a+=She,c);b=false;Pfb(c,a.Pb())}return (c.a+=']',c).a} +function aJd(a,b){var c;c=(a.Bb&oie)!=0;b?(a.Bb|=oie):(a.Bb&=-16385);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,16,c,b))} +function MJd(a,b){var c;c=(a.Bb&ote)!=0;b?(a.Bb|=ote):(a.Bb&=-32769);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,18,c,b))} +function CUd(a,b){var c;c=(a.Bb&ote)!=0;b?(a.Bb|=ote):(a.Bb&=-32769);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,18,c,b))} +function EUd(a,b){var c;c=(a.Bb&Tje)!=0;b?(a.Bb|=Tje):(a.Bb&=-65537);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,20,c,b))} +function Tee(a){var b;b=KC(TD,$ie,25,2,15,1);a-=Tje;b[0]=(a>>10)+Uje&aje;b[1]=(a&1023)+56320&aje;return zfb(b,0,b.length)} +function a_b(a){var b,c;c=BD(vNb(a,(Nyc(),Lwc)),103);if(c==(ead(),cad)){b=Edb(ED(vNb(a,owc)));return b>=1?bad:_9c}return c} +function rec(a){switch(BD(vNb(a,(Nyc(),Swc)),218).g){case 1:return new Fmc;case 3:return new wnc;default:return new zmc;}} +function Uzb(a){if(a.c){Uzb(a.c)}else if(a.d){throw vbb(new Zdb("Stream already terminated, can't be modified or used"))}} +function Mkd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (identifier: ';Efb(b,a.k);b.a+=')';return b.a} +function ctd(a,b,c){var d,e;d=(Fhd(),e=new xkd,e);vkd(d,b);wkd(d,c);!!a&&wtd((!a.a&&(a.a=new xMd(y2,a,5)),a.a),d);return d} +function ttb(a,b,c,d){var e,f;uCb(d);uCb(c);e=a.xc(b);f=e==null?c:Myb(BD(e,15),BD(c,14));f==null?a.Bc(b):a.zc(b,f);return f} +function pqb(a){var b,c,d,e;c=(b=BD(gdb((d=a.gm,e=d.f,e==CI?d:e)),9),new xqb(b,BD(_Bb(b,b.length),9),0));rqb(c,a);return c} +function hDc(a,b,c){var d,e;for(e=a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),10);if(Be(c,BD(Ikb(b,d.p),14))){return d}}return null} +function Db(b,c,d){var e;try{Cb(b,c,d)}catch(a){a=ubb(a);if(JD(a,597)){e=a;throw vbb(new ycb(e))}else throw vbb(a)}return c} +function Qbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a-b;if(Kje<c&&c<Ije){return c}}return zbb(nD(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b))} +function wbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a+b;if(Kje<c&&c<Ije){return c}}return zbb(cD(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b))} +function Ibb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a*b;if(Kje<c&&c<Ije){return c}}return zbb(gD(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b))} +function V_b(a,b){var c;a.i||N_b(a);c=BD(Mpb(a.g,b),46);return !c?(mmb(),mmb(),jmb):new Jib(a.j,BD(c.a,19).a,BD(c.b,19).a)} +function Drb(a,b,c){var d;d=a.a.get(b);a.a.set(b,c===undefined?null:c);if(d===undefined){++a.c;zpb(a.b)}else{++a.d}return d} +function kNb(a,b,c){a.n=IC(XD,[nie,Sje],[364,25],14,[c,QD($wnd.Math.ceil(b/32))],2);a.o=b;a.p=c;a.j=b-1>>1;a.k=c-1>>1} +function Gub(){zub();var a,b,c;c=yub+++Date.now();a=QD($wnd.Math.floor(c*lke))&nke;b=QD(c-a*mke);this.a=a^1502;this.b=b^kke} +function O_b(a){var b,c,d;b=new Rkb;for(d=new olb(a.j);d.a<d.c.c.length;){c=BD(mlb(d),11);Ekb(b,c.b)}return Qb(b),new sl(b)} +function R_b(a){var b,c,d;b=new Rkb;for(d=new olb(a.j);d.a<d.c.c.length;){c=BD(mlb(d),11);Ekb(b,c.e)}return Qb(b),new sl(b)} +function U_b(a){var b,c,d;b=new Rkb;for(d=new olb(a.j);d.a<d.c.c.length;){c=BD(mlb(d),11);Ekb(b,c.g)}return Qb(b),new sl(b)} +function n6d(a){var b,c;for(c=o6d(bKd(WId(a))).Kc();c.Ob();){b=GD(c.Pb());if(Dmd(a,b))return FFd((EFd(),DFd),b)}return null} +function wm(a){var b,c,d;for(c=0,d=a.length;c<d;c++){if(a[c]==null){throw vbb(new Heb('at index '+c))}}b=a;return new amb(b)} +function wid(a,b){var c;c=YKd(a.Tg(),b);if(JD(c,99)){return BD(c,18)}throw vbb(new Wdb(ite+b+"' is not a valid reference"))} +function Tdb(a){var b;b=Hcb(a);if(b>3.4028234663852886E38){return Pje}else if(b<-3.4028234663852886E38){return Qje}return b} +function aeb(a){a-=a>>1&1431655765;a=(a>>2&858993459)+(a&858993459);a=(a>>4)+a&252645135;a+=a>>8;a+=a>>16;return a&63} +function Ev(a){var b,c,d,e;b=new cq(a.Hd().gc());e=0;for(d=vr(a.Hd().Kc());d.Ob();){c=d.Pb();bq(b,c,meb(e++))}return fn(b.a)} +function Uyb(a,b){var c,d,e;e=new Lqb;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);Rhb(e,c.cd(),Yyb(a,BD(c.dd(),15)))}return e} +function EZc(a,b){a.n.c.length==0&&Ekb(a.n,new VZc(a.s,a.t,a.i));Ekb(a.b,b);QZc(BD(Ikb(a.n,a.n.c.length-1),211),b);GZc(a,b)} +function LFb(a){if(a.c!=a.b.b||a.i!=a.g.b){a.a.c=KC(SI,Uhe,1,0,5,1);Gkb(a.a,a.b);Gkb(a.a,a.g);a.c=a.b.b;a.i=a.g.b}return a.a} +function Ycc(a,b){var c,d,e;e=0;for(d=BD(b.Kb(a),20).Kc();d.Ob();){c=BD(d.Pb(),17);Ccb(DD(vNb(c,(wtc(),ltc))))||++e}return e} +function efc(a,b){var c,d,e;d=tgc(b);e=Edb(ED(pBc(d,(Nyc(),lyc))));c=$wnd.Math.max(0,e/2-0.5);cfc(b,c,1);Ekb(a,new Dfc(b,c))} +function Ctc(){Ctc=ccb;Btc=new Dtc(ane,0);xtc=new Dtc('FIRST',1);ytc=new Dtc(Gne,2);ztc=new Dtc('LAST',3);Atc=new Dtc(Hne,4)} +function Aad(){Aad=ccb;zad=new Bad(ole,0);xad=new Bad('POLYLINE',1);wad=new Bad('ORTHOGONAL',2);yad=new Bad('SPLINES',3)} +function zYc(){zYc=ccb;xYc=new AYc('ASPECT_RATIO_DRIVEN',0);yYc=new AYc('MAX_SCALE_DRIVEN',1);wYc=new AYc('AREA_DRIVEN',2)} +function Y$c(){Y$c=ccb;V$c=new Z$c('P1_STRUCTURE',0);W$c=new Z$c('P2_PROCESSING_ORDER',1);X$c=new Z$c('P3_EXECUTION',2)} +function tVc(){tVc=ccb;sVc=new uVc('OVERLAP_REMOVAL',0);qVc=new uVc('COMPACTION',1);rVc=new uVc('GRAPH_SIZE_CALCULATION',2)} +function Jy(a,b){Iy();return My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:a<b?-1:a>b?1:Ny(isNaN(a),isNaN(b))} +function yOc(a,b){var c,d;c=Jsb(a,0);while(c.b!=c.d.c){d=Gdb(ED(Xsb(c)));if(d==b){return}else if(d>b){Ysb(c);break}}Vsb(c,b)} +function t4c(a,b){var c,d,e,f,g;c=b.f;Xrb(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;f<g;++f){d=e[f];Xrb(a.c.e,d,b)}}} +function Ilb(a,b,c,d){var e,f,g;for(e=b+1;e<c;++e){for(f=e;f>b&&d.ue(a[f-1],a[f])>0;--f){g=a[f];NC(a,f,a[f-1]);NC(a,f-1,g)}}} +function did(a,b,c,d){if(b<0){uid(a,c,d)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Tj(a,a.yh(),b,d)}} +function xFb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw vbb(new Wdb('Node '+b+' not part of edge '+a))}} +function iEb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} +function GVb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} +function Xkd(a,b,c,d){switch(b){case 3:return a.f;case 4:return a.g;case 5:return a.i;case 6:return a.j;}return Ekd(a,b,c,d)} +function Ljc(a){if(a.k!=(j0b(),h0b)){return false}return FAb(new YAb(null,new Lub(new Sr(ur(U_b(a).a.Kc(),new Sq)))),new Mjc)} +function MEd(a){if(a.e==null){return a}else !a.c&&(a.c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,null));return a.c} +function VC(a,b){if(a.h==Gje&&a.m==0&&a.l==0){b&&(QC=TC(0,0,0));return SC((wD(),uD))}b&&(QC=TC(a.l,a.m,a.h));return TC(0,0,0)} +function fcb(a){var b;if(Array.isArray(a)&&a.im===gcb){return hdb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()} +function Rpb(a){var b;this.a=(b=BD(a.e&&a.e(),9),new xqb(b,BD(_Bb(b,b.length),9),0));this.b=KC(SI,Uhe,1,this.a.a.length,5,1)} +function _Ob(a){var b,c,d;this.a=new zsb;for(d=new olb(a);d.a<d.c.c.length;){c=BD(mlb(d),14);b=new MOb;GOb(b,c);Qqb(this.a,b)}} +function cKb(a){$Jb();var b,c,d,e;b=a.o.b;for(d=BD(BD(Qc(a.r,(Ucd(),Rcd)),21),84).Kc();d.Ob();){c=BD(d.Pb(),111);e=c.e;e.b+=b}} +function ag(a){var b;if(a.b){ag(a.b);if(a.b.d!=a.c){throw vbb(new Apb)}}else if(a.d.dc()){b=BD(a.f.c.xc(a.e),14);!!b&&(a.d=b)}} +function fFd(a){var b;if(a==null)return true;b=a.length;return b>0&&(BCb(b-1,a.length),a.charCodeAt(b-1)==58)&&!OEd(a,CEd,DEd)} +function OEd(a,b,c){var d,e;for(d=0,e=a.length;d<e;d++){if(_Ed((BCb(d,a.length),a.charCodeAt(d)),b,c))return true}return false} +function JOb(a,b){var c,d;for(d=a.e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),266);if(t6c(b,c.d)||o6c(b,c.d)){return true}}return false} +function Q9b(a,b){var c,d,e;d=N9b(a,b);e=d[d.length-1]/2;for(c=0;c<d.length;c++){if(d[c]>=e){return b.c+c}}return b.c+b.b.gc()} +function NCd(a,b){LCd();var c,d,e,f;d=KLd(a);e=b;Klb(d,0,d.length,e);for(c=0;c<d.length;c++){f=MCd(a,d[c],c);c!=f&&Wxd(a,c,f)}} +function EHb(a,b){var c,d,e,f,g,h;d=0;c=0;for(f=b,g=0,h=f.length;g<h;++g){e=f[g];if(e>0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d} +function Htd(a){var b,c,d;d=new Hfb;d.a+='[';for(b=0,c=a.gc();b<c;){Efb(d,xfb(a.ki(b)));++b<c&&(d.a+=She,d)}d.a+=']';return d.a} +function fsd(a){var b,c,d,e,f;f=hsd(a);c=Fhe(a.c);d=!c;if(d){e=new wB;cC(f,'knownLayouters',e);b=new qsd(e);reb(a.c,b)}return f} +function Ce(a,b){var c,d,e;uCb(b);c=false;for(d=new olb(a);d.a<d.c.c.length;){e=mlb(d);if(ze(b,e,false)){nlb(d);c=true}}return c} +function UGb(a){var b,c,d;d=Edb(ED(a.a.We((Y9c(),Q9c))));for(c=new olb(a.a.xf());c.a<c.c.c.length;){b=BD(mlb(c),680);XGb(a,b,d)}} +function MUb(a,b){var c,d;for(d=new olb(b);d.a<d.c.c.length;){c=BD(mlb(d),46);Ekb(a.b.b,BD(c.b,81));eVb(BD(c.a,189),BD(c.b,81))}} +function XCc(a,b,c){var d,e;e=a.a.b;for(d=e.c.length;d<c;d++){Dkb(e,0,new H1b(a.a))}$_b(b,BD(Ikb(e,e.c.length-c),29));a.b[b.p]=c} +function JTb(a,b,c){var d;d=c;!d&&(d=Ydd(new Zdd,0));Odd(d,Vme,2);qZb(a.b,b,Udd(d,1));LTb(a,b,Udd(d,1));_Yb(b,Udd(d,1));Qdd(d)} +function eKc(a,b,c,d,e){FJc();AFb(DFb(CFb(BFb(EFb(new FFb,0),e.d.e-a),b),e.d));AFb(DFb(CFb(BFb(EFb(new FFb,0),c-e.a.e),e.a),d))} +function e$c(a,b,c,d,e,f){this.a=a;this.c=b;this.b=c;this.f=d;this.d=e;this.e=f;this.c>0&&this.b>0&&q$c(this.c,this.b,this.a)} +function ezc(a){dzc();this.c=Ou(OC(GC(h0,1),Uhe,831,0,[Uyc]));this.b=new Lqb;this.a=a;Rhb(this.b,bzc,1);Hkb(czc,new Xed(this))} +function I2c(a,b){var c;if(a.d){if(Mhb(a.b,b)){return BD(Ohb(a.b,b),51)}else{c=b.Kf();Rhb(a.b,b,c);return c}}else{return b.Kf()}} +function Kgb(a,b){var c;if(PD(a)===PD(b)){return true}if(JD(b,91)){c=BD(b,91);return a.e==c.e&&a.d==c.d&&Lgb(a,c.a)}return false} +function Zcd(a){Ucd();switch(a.g){case 4:return Acd;case 1:return zcd;case 3:return Rcd;case 2:return Tcd;default:return Scd;}} +function Ykd(a,b){switch(b){case 3:return a.f!=0;case 4:return a.g!=0;case 5:return a.i!=0;case 6:return a.j!=0;}return Hkd(a,b)} +function gWc(a){switch(a.g){case 0:return new FXc;case 1:return new IXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function QUc(a){switch(a.g){case 0:return new CXc;case 1:return new MXc;default:throw vbb(new Wdb(Dne+(a.f!=null?a.f:''+a.g)));}} +function b1c(a){switch(a.g){case 0:return new s1c;case 1:return new w1c;default:throw vbb(new Wdb(Mre+(a.f!=null?a.f:''+a.g)));}} +function qWc(a){switch(a.g){case 1:return new SVc;case 2:return new KVc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function ryb(a){var b,c;if(a.b){return a.b}c=lyb?null:a.d;while(c){b=lyb?null:c.b;if(b){return b}c=lyb?null:c.d}return $xb(),Zxb} +function hhb(a){var b,c,d;if(a.e==0){return 0}b=a.d<<5;c=a.a[a.d-1];if(a.e<0){d=Mgb(a);if(d==a.d-1){--c;c=c|0}}b-=heb(c);return b} +function bhb(a){var b,c,d;if(a<Fgb.length){return Fgb[a]}c=a>>5;b=a&31;d=KC(WD,oje,25,c+1,15,1);d[c]=1<<b;return new Vgb(1,c+1,d)} +function O2b(a){var b,c,d;c=a.zg();if(c){b=a.Ug();if(JD(b,160)){d=O2b(BD(b,160));if(d!=null){return d+'.'+c}}return c}return null} +function ze(a,b,c){var d,e;for(e=a.Kc();e.Ob();){d=e.Pb();if(PD(b)===PD(d)||b!=null&&pb(b,d)){c&&e.Qb();return true}}return false} +function zvd(a,b,c){var d,e;++a.j;if(c.dc()){return false}else{for(e=c.Kc();e.Ob();){d=e.Pb();a.Hi(b,a.oi(b,d));++b}return true}} +function yA(a,b,c,d){var e,f;f=c-b;if(f<3){while(f<3){a*=10;++f}}else{e=1;while(f>3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true} +function XUb(a){LUb();return Bcb(),GVb(BD(a.a,81).j,BD(a.b,103))||BD(a.a,81).d.e!=0&&GVb(BD(a.a,81).j,BD(a.b,103))?true:false} +function s3c(a){p3c();if(BD(a.We((Y9c(),b9c)),174).Hc((Idd(),Gdd))){BD(a.We(x9c),174).Fc((rcd(),qcd));BD(a.We(b9c),174).Mc(Gdd)}} +function Gxd(a,b){var c,d;if(!b){return false}else{for(c=0;c<a.i;++c){d=BD(a.g[c],366);if(d.Di(b)){return false}}return wtd(a,b)}} +function pvd(a){var b,c,d,e;b=new wB;for(e=new Dnb(a.b.Kc());e.b.Ob();){d=BD(e.b.Pb(),686);c=lsd(d);uB(b,b.a.length,c)}return b.a} +function cLb(a){var b;!a.c&&(a.c=new VKb);Okb(a.d,new jLb);_Kb(a);b=UKb(a);MAb(new YAb(null,new Kub(a.d,16)),new CLb(a));return b} +function mKd(a){var b;if((a.Db&64)!=0)return qnd(a);b=new Jfb(qnd(a));b.a+=' (instanceClassName: ';Efb(b,a.D);b.a+=')';return b.a} +function Pqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new bsd(a);hmd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new csd(a);imd(d.a,(uCb(f),f))}} +function Eqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new Yrd(a);omd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new _rd(a);pmd(d.a,(uCb(f),f))}} +function bLd(a,b){var c,d,e;c=(a.i==null&&TKd(a),a.i);d=b.aj();if(d!=-1){for(e=c.length;d<e;++d){if(c[d]==b){return d}}}return -1} +function tNd(a){var b,c,d,e,f;c=BD(a.g,674);for(d=a.i-1;d>=0;--d){b=c[d];for(e=0;e<d;++e){f=c[e];if(uNd(a,b,f)){tud(a,d);break}}}} +function jCb(b){var c=b.e;function d(a){if(!a||a.length==0){return ''}return '\t'+a.join('\n\t')} +return c&&(c.stack||d(b[Yie]))} +function nm(a){im();var b;b=a.Pc();switch(b.length){case 0:return hm;case 1:return new my(Qb(b[0]));default:return new ux(wm(b));}} +function W_b(a,b){switch(b.g){case 1:return Nq(a.j,(z0b(),u0b));case 2:return Nq(a.j,(z0b(),w0b));default:return mmb(),mmb(),jmb;}} +function $kd(a,b){switch(b){case 3:ald(a,0);return;case 4:cld(a,0);return;case 5:dld(a,0);return;case 6:eld(a,0);return;}Jkd(a,b)} +function dzc(){dzc=ccb;Vyc();bzc=(Nyc(),vyc);czc=Ou(OC(GC(Q3,1),zqe,146,0,[kyc,lyc,nyc,oyc,ryc,syc,tyc,uyc,xyc,zyc,myc,pyc,wyc]))} +function Y9b(a){var b,c;b=a.d==(Apc(),vpc);c=U9b(a);b&&!c||!b&&c?yNb(a.a,(Nyc(),mwc),(F7c(),D7c)):yNb(a.a,(Nyc(),mwc),(F7c(),C7c))} +function XAb(a,b){var c;c=BD(GAb(a,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);return c.Qc(aBb(c.gc()))} +function Ded(){Ded=ccb;Ced=new Eed('SIMPLE',0);zed=new Eed('GROUP_DEC',1);Bed=new Eed('GROUP_MIXED',2);Aed=new Eed('GROUP_INC',3)} +function CWd(){CWd=ccb;AWd=new DWd;tWd=new GWd;uWd=new JWd;vWd=new MWd;wWd=new PWd;xWd=new SWd;yWd=new VWd;zWd=new YWd;BWd=new _Wd} +function FHb(a,b,c){tHb();oHb.call(this);this.a=IC(oN,[nie,ile],[595,212],0,[sHb,rHb],2);this.c=new I6c;this.g=a;this.f=b;this.d=c} +function pNb(a,b){this.n=IC(XD,[nie,Sje],[364,25],14,[b,QD($wnd.Math.ceil(a/32))],2);this.o=a;this.p=b;this.j=a-1>>1;this.k=b-1>>1} +function r3b(a,b){Odd(b,'End label post-processing',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new w3b),new y3b),new A3b);Qdd(b)} +function NLc(a,b,c){var d,e;d=Edb(a.p[b.i.p])+Edb(a.d[b.i.p])+b.n.b+b.a.b;e=Edb(a.p[c.i.p])+Edb(a.d[c.i.p])+c.n.b+c.a.b;return e-d} +function xhb(a,b,c){var d,e;d=xbb(c,Yje);for(e=0;ybb(d,0)!=0&&e<b;e++){d=wbb(d,xbb(a[e],Yje));a[e]=Tbb(d);d=Obb(d,32)}return Tbb(d)} +function $Ed(a){var b,c,d,e;e=0;for(c=0,d=a.length;c<d;c++){b=(BCb(c,a.length),a.charCodeAt(c));b<64&&(e=Mbb(e,Nbb(1,b)))}return e} +function S9d(a){var b;return a==null?null:new Ygb((b=Qge(a,true),b.length>0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} +function T9d(a){var b;return a==null?null:new Ygb((b=Qge(a,true),b.length>0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} +function xud(a,b){var c;if(a.i>0){if(b.length<a.i){c=izd(rb(b).c,a.i);b=c}$fb(a.g,0,b,0,a.i)}b.length>a.i&&NC(b,a.i,null);return b} +function Sxd(a,b,c){var d,e,f;if(a.ej()){d=a.i;f=a.fj();kud(a,d,b);e=a.Zi(3,null,b,d,f);!c?(c=e):c.Ei(e)}else{kud(a,a.i,b)}return c} +function HMd(a,b,c){var d,e;d=new pSd(a.e,4,10,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function GMd(a,b,c){var d,e;d=new pSd(a.e,3,10,null,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function _Jb(a){$Jb();var b;b=new g7c(BD(a.e.We((Y9c(),_8c)),8));if(a.B.Hc((Idd(),Bdd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b} +function Lzc(a){Izc();var b;(!a.q?(mmb(),mmb(),kmb):a.q)._b((Nyc(),Cxc))?(b=BD(vNb(a,Cxc),197)):(b=BD(vNb(Q_b(a),Dxc),197));return b} +function pBc(a,b){var c,d;d=null;if(wNb(a,(Nyc(),qyc))){c=BD(vNb(a,qyc),94);c.Xe(b)&&(d=c.We(b))}d==null&&(d=vNb(Q_b(a),b));return d} +function Ze(a,b){var c,d,e;if(JD(b,42)){c=BD(b,42);d=c.cd();e=Hv(a.Rc(),d);return Hb(e,c.dd())&&(e!=null||a.Rc()._b(d))}return false} +function qAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=xAd(a,e,d,b);return c!=-1}else{return false}} +function AAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=wAd(a,e,d,b);if(c){return c.dd()}}return null} +function R2d(a,b){var c,d,e,f;f=S6d(a.e.Tg(),b);c=BD(a.g,119);for(e=0;e<a.i;++e){d=c[e];if(f.rl(d.ak())){return false}}return true} +function B6d(a){if(a.b==null){while(a.a.Ob()){a.b=a.a.Pb();if(!BD(a.b,49).Zg()){return true}}a.b=null;return false}else{return true}} +function Myd(b,c){b.mj();try{b.d.Vc(b.e++,c);b.f=b.d.j;b.g=-1}catch(a){a=ubb(a);if(JD(a,73)){throw vbb(new Apb)}else throw vbb(a)}} +function IA(a,b){GA();var c,d;c=LA((KA(),KA(),JA));d=null;b==c&&(d=BD(Phb(FA,a),615));if(!d){d=new HA(a);b==c&&Shb(FA,a,d)}return d} +function Epb(a,b){var c,d;a.a=wbb(a.a,1);a.c=$wnd.Math.min(a.c,b);a.b=$wnd.Math.max(a.b,b);a.d+=b;c=b-a.f;d=a.e+c;a.f=d-a.e-c;a.e=d} +function ogb(a,b){var c;a.c=b;a.a=hhb(b);a.a<54&&(a.f=(c=b.d>1?Mbb(Nbb(b.a[1],32),xbb(b.a[0],Yje)):xbb(b.a[0],Yje),Sbb(Ibb(b.e,c))))} +function Hbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a%b;if(Kje<c&&c<Ije){return c}}return zbb((UC(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b,true),QC))} +function p5b(a,b){var c;m5b(b);c=BD(vNb(a,(Nyc(),Rwc)),276);!!c&&yNb(a,Rwc,Tqc(c));n5b(a.c);n5b(a.f);o5b(a.d);o5b(BD(vNb(a,wxc),207))} +function rHc(a){this.e=KC(WD,oje,25,a.length,15,1);this.c=KC(sbb,dle,25,a.length,16,1);this.b=KC(sbb,dle,25,a.length,16,1);this.f=0} +function BDc(a){var b,c;a.j=KC(UD,Vje,25,a.p.c.length,15,1);for(c=new olb(a.p);c.a<c.c.c.length;){b=BD(mlb(c),10);a.j[b.p]=b.o.b/a.i}} +function yic(a){var b;if(a.c==0){return}b=BD(Ikb(a.a,a.b),287);b.b==1?(++a.b,a.b<a.a.c.length&&Cic(BD(Ikb(a.a,a.b),287))):--b.b;--a.c} +function eac(a){var b;b=a.a;do{b=BD(Rr(new Sr(ur(U_b(b).a.Kc(),new Sq))),17).d.i;b.k==(j0b(),g0b)&&Ekb(a.e,b)}while(b.k==(j0b(),g0b))} +function idd(){idd=ccb;fdd=new q0b(15);edd=new Osd((Y9c(),f9c),fdd);hdd=new Osd(T9c,15);gdd=new Osd(E9c,meb(0));ddd=new Osd(r8c,tme)} +function tdd(){tdd=ccb;rdd=new udd('PORTS',0);sdd=new udd('PORT_LABELS',1);qdd=new udd('NODE_LABELS',2);pdd=new udd('MINIMUM_SIZE',3)} +function Ree(a,b){var c,d;d=b.length;for(c=0;c<d;c+=2)Ufe(a,(BCb(c,b.length),b.charCodeAt(c)),(BCb(c+1,b.length),b.charCodeAt(c+1)))} +function _Zc(a,b,c){var d,e,f,g;f=b-a.e;g=c-a.f;for(e=new olb(a.a);e.a<e.c.c.length;){d=BD(mlb(e),187);OZc(d,d.s+f,d.t+g)}a.e=b;a.f=c} +function jUc(a,b){var c,d,e,f;f=b.b.b;a.a=new Psb;a.b=KC(WD,oje,25,f,15,1);c=0;for(e=Jsb(b.b,0);e.b!=e.d.c;){d=BD(Xsb(e),86);d.g=c++}} +function ihb(a,b){var c,d,e,f;c=b>>5;b&=31;e=a.d+c+(b==0?0:1);d=KC(WD,oje,25,e,15,1);jhb(d,a.a,c,b);f=new Vgb(a.e,e,d);Jgb(f);return f} +function Ofe(a,b,c){var d,e;d=BD(Phb(Zee,b),117);e=BD(Phb($ee,b),117);if(c){Shb(Zee,a,d);Shb($ee,a,e)}else{Shb($ee,a,d);Shb(Zee,a,e)}} +function Cwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d>=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e} +function Dwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d<=0){f=f.a[0]}else{e=f;f=f.a[1]}}return e} +function Nic(a,b,c,d){var e,f,g;e=false;if(fjc(a.f,c,d)){ijc(a.f,a.a[b][c],a.a[b][d]);f=a.a[b];g=f[d];f[d]=f[c];f[c]=g;e=true}return e} +function QHc(a,b,c,d,e){var f,g,h;g=e;while(b.b!=b.c){f=BD(fkb(b),10);h=BD(V_b(f,d).Xb(0),11);a.d[h.p]=g++;c.c[c.c.length]=h}return g} +function hBc(a,b,c){var d,e,f,g,h;g=a.k;h=b.k;d=c[g.g][h.g];e=ED(pBc(a,d));f=ED(pBc(b,d));return $wnd.Math.max((uCb(e),e),(uCb(f),f))} +function zZc(a,b,c){var d,e,f,g;d=c/a.c.length;e=0;for(g=new olb(a);g.a<g.c.c.length;){f=BD(mlb(g),200);w$c(f,f.f+d*e);t$c(f,b,d);++e}} +function hnc(a,b,c){var d,e,f,g;e=BD(Ohb(a.b,c),177);d=0;for(g=new olb(b.j);g.a<g.c.c.length;){f=BD(mlb(g),113);e[f.d.p]&&++d}return d} +function mzd(a){var b,c;b=BD(Ajd(a.a,4),126);if(b!=null){c=KC($3,hve,415,b.length,0,1);$fb(b,0,c,0,b.length);return c}else{return jzd}} +function Cz(){var a;if(xz!=0){a=sz();if(a-yz>2000){yz=a;zz=$wnd.setTimeout(Iz,10)}}if(xz++==0){Lz((Kz(),Jz));return true}return false} +function wCc(a,b){var c,d,e;for(d=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=c.d.i;if(e.c==b){return false}}return true} +function Ek(b,c){var d,e;if(JD(c,245)){e=BD(c,245);try{d=b.vd(e);return d==0}catch(a){a=ubb(a);if(!JD(a,205))throw vbb(a)}}return false} +function Xz(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error} +function BDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:a<b?-1:a>b?1:Ny(isNaN(a),isNaN(b)))>0} +function DDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:a<b?-1:a>b?1:Ny(isNaN(a),isNaN(b)))<0} +function CDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:a<b?-1:a>b?1:Ny(isNaN(a),isNaN(b)))<=0} +function ydb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;c<b.length;c++){if(!b[c]||b[c]==''){continue}d+=a+b[c]}return d} +function zfb(a,b,c){var d,e,f,g;f=b+c;ACb(b,f,a.length);g='';for(e=b;e<f;){d=$wnd.Math.min(e+10000,f);g+=vfb(a.slice(e,d));e=d}return g} +function N9d(a){var b,c,d,e,f;if(a==null)return null;f=new Rkb;for(c=Zmd(a),d=0,e=c.length;d<e;++d){b=c[d];Ekb(f,Qge(b,true))}return f} +function Q9d(a){var b,c,d,e,f;if(a==null)return null;f=new Rkb;for(c=Zmd(a),d=0,e=c.length;d<e;++d){b=c[d];Ekb(f,Qge(b,true))}return f} +function R9d(a){var b,c,d,e,f;if(a==null)return null;f=new Rkb;for(c=Zmd(a),d=0,e=c.length;d<e;++d){b=c[d];Ekb(f,Qge(b,true))}return f} +function ted(a,b){var c,d,e;if(a.c){cld(a.c,b)}else{c=b-red(a);for(e=new olb(a.d);e.a<e.c.c.length;){d=BD(mlb(e),157);ted(d,red(d)+c)}}} +function sed(a,b){var c,d,e;if(a.c){ald(a.c,b)}else{c=b-qed(a);for(e=new olb(a.a);e.a<e.c.c.length;){d=BD(mlb(e),157);sed(d,qed(d)+c)}}} +function t6d(a,b){var c,d,e,f;e=new Skb(b.gc());for(d=b.Kc();d.Ob();){c=d.Pb();f=s6d(a,BD(c,56));!!f&&(e.c[e.c.length]=f,true)}return e} +function LAd(a,b){var c,d,e;a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=wAd(a,e,d,b);if(c){JAd(a,c);return c.dd()}else{return null}} +function rde(a){var b,c;c=sde(a);b=null;while(a.c==2){nde(a);if(!b){b=(wfe(),wfe(),++vfe,new Lge(2));Kge(b,c);c=b}c.$l(sde(a))}return c} +function Wpd(a){var b,c,d;d=null;b=Vte in a.a;c=!b;if(c){throw vbb(new cqd('Every element must have an id.'))}d=Vpd(aC(a,Vte));return d} +function jid(a){var b,c,d;d=a.Zg();if(!d){b=0;for(c=a.eh();c;c=c.eh()){if(++b>Wje){return c.fh()}d=c.Zg();if(!!d||c==a){break}}}return d} +function fvd(a){evd();if(JD(a,156)){return BD(Ohb(cvd,hK),288).vg(a)}if(Mhb(cvd,rb(a))){return BD(Ohb(cvd,rb(a)),288).vg(a)}return null} +function fZd(a){if(efb(kse,a)){return Bcb(),Acb}else if(efb(lse,a)){return Bcb(),zcb}else{throw vbb(new Wdb('Expecting true or false'))}} +function uDc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw vbb(new Wdb('Input edge is not connected to the input port.'))} +function Igb(a,b){if(a.e>b.e){return 1}if(a.e<b.e){return -1}if(a.d>b.d){return a.e}if(a.d<b.d){return -b.e}return a.e*whb(a.a,b.a,a.d)} +function Zcb(a){if(a>=48&&a<48+$wnd.Math.min(10,10)){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1} +function Ue(a,b){var c;if(PD(b)===PD(a)){return true}if(!JD(b,21)){return false}c=BD(b,21);if(c.gc()!=a.gc()){return false}return a.Ic(c)} +function ekb(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;mkb(c<e);if(c>=f){hkb(a,b);return -1}else{ikb(a,b);return 1}} +function lA(a,b){var c,d;c=(BCb(b,a.length),a.charCodeAt(b));d=b+1;while(d<a.length&&(BCb(d,a.length),a.charCodeAt(d)==c)){++d}return d-b} +function sJb(a){switch(a.g){case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:return true;default:return false;}} +function bC(f,a){var b=f.a;var c;a=String(a);b.hasOwnProperty(a)&&(c=b[a]);var d=(rC(),qC)[typeof c];var e=d?d(c):xC(typeof c);return e} +function b3c(a,b){if(a.a<0){throw vbb(new Zdb('Did not call before(...) or after(...) before calling add(...).'))}i3c(a,a.a,b);return a} +function VOc(a,b,c,d){var e,f;if(b.c.length==0){return}e=ROc(c,d);f=QOc(b);MAb(VAb(new YAb(null,new Kub(f,1)),new cPc),new gPc(a,c,e,d))} +function Cjd(a,b,c){var d;if((a.Db&b)!=0){if(c==null){Bjd(a,b)}else{d=zjd(a,b);d==-1?(a.Eb=c):NC(CD(a.Eb),d,c)}}else c!=null&&vjd(a,b,c)} +function yjd(a){var b,c;if((a.Db&32)==0){c=(b=BD(Ajd(a,16),26),aLd(!b?a.zh():b)-aLd(a.zh()));c!=0&&Cjd(a,32,KC(SI,Uhe,1,c,5,1))}return a} +function W1d(a){var b;a.b||X1d(a,(b=h1d(a.e,a.a),!b||!dfb(lse,AAd((!b.b&&(b.b=new sId((jGd(),fGd),x6,b)),b.b),'qualified'))));return a.c} +function dTd(a,b,c){var d,e,f;d=BD(qud(QSd(a.a),b),87);f=(e=d.c,e?e:(jGd(),YFd));(f.kh()?xid(a.b,BD(f,49)):f)==c?KQd(d):NQd(d,c);return f} +function fCb(a,b){(!b&&console.groupCollapsed!=null?console.groupCollapsed:console.group!=null?console.group:console.log).call(console,a)} +function NNb(a,b,c,d){d==a?(BD(c.b,65),BD(c.b,65),BD(d.b,65),BD(d.b,65).c.b):(BD(c.b,65),BD(c.b,65),BD(d.b,65),BD(d.b,65).c.b);KNb(d,b,a)} +function EOb(a){var b,c,d;b=0;for(c=new olb(a.g);c.a<c.c.c.length;){BD(mlb(c),562);++b}d=new ENb(a.g,Edb(a.a),a.c);ELb(d);a.g=d.b;a.d=d.a} +function ymc(a,b,c){b.b=$wnd.Math.max(b.b,-c.a);b.c=$wnd.Math.max(b.c,c.a-a.a);b.d=$wnd.Math.max(b.d,-c.b);b.a=$wnd.Math.max(b.a,c.b-a.b)} +function MIc(a,b){if(a.e<b.e){return -1}else if(a.e>b.e){return 1}else if(a.f<b.f){return -1}else if(a.f>b.f){return 1}return tb(a)-tb(b)} +function efb(a,b){uCb(a);if(b==null){return false}if(dfb(a,b)){return true}return a.length==b.length&&dfb(a.toLowerCase(),b.toLowerCase())} +function x6d(a,b){var c,d,e,f;for(d=0,e=b.gc();d<e;++d){c=b.il(d);if(JD(c,99)&&(BD(c,18).Bb&ote)!=0){f=b.jl(d);f!=null&&s6d(a,BD(f,56))}}} +function p1c(a,b,c){var d,e,f;for(f=new olb(c.a);f.a<f.c.c.length;){e=BD(mlb(f),221);d=new hDb(BD(Ohb(a.a,e.b),65));Ekb(b.a,d);p1c(a,d,e)}} +function Aeb(a){var b,c;if(ybb(a,-129)>0&&ybb(a,128)<0){b=Tbb(a)+128;c=(Ceb(),Beb)[b];!c&&(c=Beb[b]=new teb(a));return c}return new teb(a)} +function _0d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} +function a1d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} +function FMc(a,b){wMc();var c,d;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(c.d.i==b||c.c.i==b){return c}}return null} +function HUb(a,b,c){this.c=a;this.f=new Rkb;this.e=new d7c;this.j=new IVb;this.n=new IVb;this.b=b;this.g=new J6c(b.c,b.d,b.b,b.a);this.a=c} +function gVb(a){var b,c,d,e;this.a=new zsb;this.d=new Tqb;this.e=0;for(c=a,d=0,e=c.length;d<e;++d){b=c[d];!this.f&&(this.f=b);eVb(this,b)}} +function Xgb(a){Hgb();if(a.length==0){this.e=0;this.d=1;this.a=OC(GC(WD,1),oje,25,15,[0])}else{this.e=1;this.d=a.length;this.a=a;Jgb(this)}} +function mIb(a,b,c){oHb.call(this);this.a=KC(oN,ile,212,(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])).length,0,1);this.b=a;this.d=b;this.c=c} +function Kjc(a){this.d=new Rkb;this.e=new $rb;this.c=KC(WD,oje,25,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,15,1);this.b=a} +function Vbc(a){var b,c,d,e,f,g;g=BD(vNb(a,(wtc(),$sc)),11);yNb(g,qtc,a.i.n.b);b=k_b(a.e);for(d=b,e=0,f=d.length;e<f;++e){c=d[e];RZb(c,g)}} +function Wbc(a){var b,c,d,e,f,g;c=BD(vNb(a,(wtc(),$sc)),11);yNb(c,qtc,a.i.n.b);b=k_b(a.g);for(e=b,f=0,g=e.length;f<g;++f){d=e[f];QZb(d,c)}} +function vcc(a){var b,c;if(wNb(a.d.i,(Nyc(),Nxc))){b=BD(vNb(a.c.i,Nxc),19);c=BD(vNb(a.d.i,Nxc),19);return beb(b.a,c.a)>0}else{return false}} +function q2c(a){var b;if(PD(hkd(a,(Y9c(),J8c)))===PD((hbd(),fbd))){if(!Xod(a)){jkd(a,J8c,gbd)}else{b=BD(hkd(Xod(a),J8c),334);jkd(a,J8c,b)}}} +function ijc(a,b,c){var d,e;bIc(a.e,b,c,(Ucd(),Tcd));bIc(a.i,b,c,zcd);if(a.a){e=BD(vNb(b,(wtc(),$sc)),11);d=BD(vNb(c,$sc),11);cIc(a.g,e,d)}} +function OEc(a,b,c){var d,e,f;d=b.c.p;f=b.p;a.b[d][f]=new $Ec(a,b);if(c){a.a[d][f]=new FEc(b);e=BD(vNb(b,(wtc(),Psc)),10);!!e&&Rc(a.d,e,b)}} +function TPb(a,b){var c,d,e;Ekb(PPb,a);b.Fc(a);c=BD(Ohb(OPb,a),21);if(c){for(e=c.Kc();e.Ob();){d=BD(e.Pb(),33);Jkb(PPb,d,0)!=-1||TPb(d,b)}}} +function tyb(a,b,c){var d;(jyb?(ryb(a),true):kyb?($xb(),true):nyb?($xb(),true):myb&&($xb(),false))&&(d=new iyb(b),d.b=c,pyb(a,d),undefined)} +function xKb(a,b){var c;c=!a.A.Hc((tdd(),sdd))||a.q==(dcd(),$bd);a.u.Hc((rcd(),ncd))?c?vKb(a,b):zKb(a,b):a.u.Hc(pcd)&&(c?wKb(a,b):AKb(a,b))} +function b0d(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,JD(d,97)?BD(d,97).Jg():null);if(xlb(b,c)){Cjd(a.a,4,c);return}}Cjd(a.a,4,BD(b,126))} +function dYb(a,b,c){return new J6c($wnd.Math.min(a.a,b.a)-c/2,$wnd.Math.min(a.b,b.b)-c/2,$wnd.Math.abs(a.a-b.a)+c,$wnd.Math.abs(a.b-b.b)+c)} +function k4b(a,b){var c,d;c=beb(a.a.c.p,b.a.c.p);if(c!=0){return c}d=beb(a.a.d.i.p,b.a.d.i.p);if(d!=0){return d}return beb(b.a.d.p,a.a.d.p)} +function _Dc(a,b,c){var d,e,f,g;f=b.j;g=c.j;if(f!=g){return f.g-g.g}else{d=a.f[b.p];e=a.f[c.p];return d==0&&e==0?0:d==0?-1:e==0?1:Kdb(d,e)}} +function HFb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new olb(LFb(b));e.a<e.c.c.length;){d=BD(mlb(e),213);f=xFb(d,b);HFb(a,f,c)}} +function umc(a,b,c){var d;d=c[a.g][b];switch(a.g){case 1:case 3:return new f7c(0,d);case 2:case 4:return new f7c(d,0);default:return null;}} +function r2c(b,c,d){var e,f;f=BD(hgd(c.f),209);try{f.Ze(b,d);igd(c.f,f)}catch(a){a=ubb(a);if(JD(a,102)){e=a;throw vbb(e)}else throw vbb(a)}} +function Vqd(a,b,c){var d,e,f,g,h,i;d=null;h=k4c(n4c(),b);f=null;if(h){e=null;i=o5c(h,c);g=null;i!=null&&(g=a.Ye(h,i));e=g;f=e}d=f;return d} +function TTd(a,b,c,d){var e,f,g;e=new pSd(a.e,1,13,(g=b.c,g?g:(jGd(),YFd)),(f=c.c,f?f:(jGd(),YFd)),HLd(a,b),false);!d?(d=e):d.Ei(e);return d} +function UEd(a,b,c,d){var e;e=a.length;if(b>=e)return e;for(b=b>0?b:0;b<e;b++){if(_Ed((BCb(b,a.length),a.charCodeAt(b)),c,d))break}return b} +function Qkb(a,b){var c,d;d=a.c.length;b.length<d&&(b=eCb(new Array(d),b));for(c=0;c<d;++c){NC(b,c,a.c[c])}b.length>d&&NC(b,d,null);return b} +function _lb(a,b){var c,d;d=a.a.length;b.length<d&&(b=eCb(new Array(d),b));for(c=0;c<d;++c){NC(b,c,a.a[c])}b.length>d&&NC(b,d,null);return b} +function Xrb(a,b,c){var d,e,f;e=BD(Ohb(a.e,b),387);if(!e){d=new lsb(a,b,c);Rhb(a.e,b,d);isb(d);return null}else{f=ijb(e,c);Yrb(a,e);return f}} +function P9d(a){var b;if(a==null)return null;b=ide(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid hexBinary value: '"+a+"'"))}return b} +function ghb(a){Hgb();if(ybb(a,0)<0){if(ybb(a,-1)!=0){return new Wgb(-1,Jbb(a))}return Bgb}else return ybb(a,10)<=0?Dgb[Tbb(a)]:new Wgb(1,a)} +function wJb(){qJb();return OC(GC(DN,1),Kie,159,0,[nJb,mJb,oJb,eJb,dJb,fJb,iJb,hJb,gJb,lJb,kJb,jJb,bJb,aJb,cJb,$Ib,ZIb,_Ib,XIb,WIb,YIb,pJb])} +function vjc(a){var b;this.d=new Rkb;this.j=new d7c;this.g=new d7c;b=a.g.b;this.f=BD(vNb(Q_b(b),(Nyc(),Lwc)),103);this.e=Edb(ED(c_b(b,ryc)))} +function Pjc(a){this.b=new Rkb;this.e=new Rkb;this.d=a;this.a=!WAb(JAb(new YAb(null,new Lub(new b1b(a.b))),new Xxb(new Qjc))).sd((EAb(),DAb))} +function N5c(){N5c=ccb;L5c=new O5c('PARENTS',0);K5c=new O5c('NODES',1);I5c=new O5c('EDGES',2);M5c=new O5c('PORTS',3);J5c=new O5c('LABELS',4)} +function Tbd(){Tbd=ccb;Qbd=new Ubd('DISTRIBUTED',0);Sbd=new Ubd('JUSTIFIED',1);Obd=new Ubd('BEGIN',2);Pbd=new Ubd(gle,3);Rbd=new Ubd('END',4)} +function UMd(a){var b;b=a.yi(null);switch(b){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4;}return -1} +function cYb(a){switch(a.g){case 1:return ead(),dad;case 4:return ead(),aad;case 2:return ead(),bad;case 3:return ead(),_9c;}return ead(),cad} +function kA(a,b,c){var d;d=c.q.getFullYear()-nje+nje;d<0&&(d=-d);switch(b){case 1:a.a+=d;break;case 2:EA(a,d%100,2);break;default:EA(a,d,b);}} +function Jsb(a,b){var c,d;wCb(b,a.b);if(b>=a.b>>1){d=a.c;for(c=a.b;c>b;--c){d=d.b}}else{d=a.a.a;for(c=0;c<b;++c){d=d.a}}return new $sb(a,b,d)} +function MEb(){MEb=ccb;LEb=new NEb('NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST',0);KEb=new NEb('CORNER_CASES_THAN_SINGLE_SIDE_LAST',1)} +function h4b(a){var b,c,d,e;d=c4b(a);Okb(d,a4b);e=a.d;e.c=KC(SI,Uhe,1,0,5,1);for(c=new olb(d);c.a<c.c.c.length;){b=BD(mlb(c),456);Gkb(e,b.b)}} +function gkd(a){var b,c,d;d=(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),a.o);for(c=d.c.Kc();c.e!=c.i.gc();){b=BD(c.nj(),42);b.dd()}return FAd(d)} +function N5b(a){var b;if(!ecd(BD(vNb(a,(Nyc(),Vxc)),98))){return}b=a.b;O5b((tCb(0,b.c.length),BD(b.c[0],29)));O5b(BD(Ikb(b,b.c.length-1),29))} +function Roc(a,b){var c,d,e,f;c=0;for(e=new olb(b.a);e.a<e.c.c.length;){d=BD(mlb(e),10);f=d.o.a+d.d.c+d.d.b+a.j;c=$wnd.Math.max(c,f)}return c} +function XEd(a){var b,c,d,e;e=0;for(c=0,d=a.length;c<d;c++){b=(BCb(c,a.length),a.charCodeAt(c));b>=64&&b<128&&(e=Mbb(e,Nbb(1,b-64)))}return e} +function c_b(a,b){var c,d;d=null;if(wNb(a,(Y9c(),O9c))){c=BD(vNb(a,O9c),94);c.Xe(b)&&(d=c.We(b))}d==null&&!!Q_b(a)&&(d=vNb(Q_b(a),b));return d} +function oQc(a,b){var c,d,e;e=b.d.i;d=e.k;if(d==(j0b(),h0b)||d==d0b){return}c=new Sr(ur(U_b(e).a.Kc(),new Sq));Qr(c)&&Rhb(a.k,b,BD(Rr(c),17))} +function mid(a,b){var c,d,e;d=XKd(a.Tg(),b);c=b-a.Ah();return c<0?(e=a.Yg(d),e>=0?a.lh(e):tid(a,d)):c<0?tid(a,d):BD(d,66).Nj().Sj(a,a.yh(),c)} +function Ksd(a){var b;if(JD(a.a,4)){b=fvd(a.a);if(b==null){throw vbb(new Zdb(mse+a.b+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return b}else{return a.a}} +function L9d(a){var b;if(a==null)return null;b=bde(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid base64Binary value: '"+a+"'"))}return b} +function Dyd(b){var c;try{c=b.i.Xb(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} +function Zyd(b){var c;try{c=b.c.ki(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} +function CPb(){CPb=ccb;BPb=(Y9c(),K9c);vPb=G8c;qPb=r8c;wPb=f9c;zPb=(fFb(),bFb);yPb=_Eb;APb=dFb;xPb=$Eb;sPb=(nPb(),jPb);rPb=iPb;tPb=lPb;uPb=mPb} +function NWb(a){LWb();this.c=new Rkb;this.d=a;switch(a.g){case 0:case 2:this.a=tmb(KWb);this.b=Pje;break;case 3:case 1:this.a=KWb;this.b=Qje;}} +function ued(a,b,c){var d,e;if(a.c){dld(a.c,a.c.i+b);eld(a.c,a.c.j+c)}else{for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),157);ued(d,b,c)}}} +function KEd(a,b){var c,d;if(a.j.length!=b.j.length)return false;for(c=0,d=a.j.length;c<d;c++){if(!dfb(a.j[c],b.j[c]))return false}return true} +function gA(a,b,c){var d;if(b.a.length>0){Ekb(a.b,new WA(b.a,c));d=b.a.length;0<d?(b.a=b.a.substr(0,0)):0>d&&(b.a+=yfb(KC(TD,$ie,25,-d,15,1)))}} +function JKb(a,b){var c,d,e;c=a.o;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);d.e.a=DKb(d,c.a);d.e.b=c.b*Edb(ED(d.b.We(BKb)))}} +function S5b(a,b){var c,d,e,f;e=a.k;c=Edb(ED(vNb(a,(wtc(),htc))));f=b.k;d=Edb(ED(vNb(b,htc)));return f!=(j0b(),e0b)?-1:e!=e0b?1:c==d?0:c<d?-1:1} +function B$c(a,b){var c,d;c=BD(BD(Ohb(a.g,b.a),46).a,65);d=BD(BD(Ohb(a.g,b.b),46).a,65);return S6c(b.a,b.b)-S6c(b.a,E6c(c.b))-S6c(b.b,E6c(d.b))} +function aZb(a,b){var c;c=BD(vNb(a,(Nyc(),jxc)),74);if(Lq(b,ZYb)){if(!c){c=new s7c;yNb(a,jxc,c)}else{Osb(c)}}else !!c&&yNb(a,jxc,null);return c} +function a0b(a){var b;b=new Ufb;b.a+='n';a.k!=(j0b(),h0b)&&Qfb(Qfb((b.a+='(',b),Zr(a.k).toLowerCase()),')');Qfb((b.a+='_',b),P_b(a));return b.a} +function Kdc(a,b){Odd(b,'Self-Loop post-processing',1);MAb(JAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new Qdc),new Sdc),new Udc),new Wdc);Qdd(b)} +function kid(a,b,c,d){var e;if(c>=0){return a.hh(b,c,d)}else{!!a.eh()&&(d=(e=a.Vg(),e>=0?a.Qg(d):a.eh().ih(a,-1-e,null,d)));return a.Sg(b,c,d)}} +function zld(a,b){switch(b){case 7:!a.e&&(a.e=new y5d(B2,a,7,4));Uxd(a.e);return;case 8:!a.d&&(a.d=new y5d(B2,a,8,5));Uxd(a.d);return;}$kd(a,b)} +function Ut(b,c){var d;d=b.Zc(c);try{return d.Pb()}catch(a){a=ubb(a);if(JD(a,109)){throw vbb(new qcb("Can't get element "+c))}else throw vbb(a)}} +function Tgb(a,b){this.e=a;if(b<Zje){this.d=1;this.a=OC(GC(WD,1),oje,25,15,[b|0])}else{this.d=2;this.a=OC(GC(WD,1),oje,25,15,[b%Zje|0,b/Zje|0])}} +function omb(a,b){mmb();var c,d,e,f;c=a;f=b;if(JD(a,21)&&!JD(b,21)){c=b;f=a}for(e=c.Kc();e.Ob();){d=e.Pb();if(f.Hc(d)){return false}}return true} +function Txd(a,b,c){var d,e,f,g;d=a.Xc(b);if(d!=-1){if(a.ej()){f=a.fj();g=tud(a,d);e=a.Zi(4,g,null,d,f);!c?(c=e):c.Ei(e)}else{tud(a,d)}}return c} +function uwd(a,b,c){var d,e,f,g;d=a.Xc(b);if(d!=-1){if(a.ej()){f=a.fj();g=Evd(a,d);e=a.Zi(4,g,null,d,f);!c?(c=e):c.Ei(e)}else{Evd(a,d)}}return c} +function PJb(a,b){var c;c=BD(Mpb(a.b,b),124).n;switch(b.g){case 1:a.t>=0&&(c.d=a.t);break;case 3:a.t>=0&&(c.a=a.t);}if(a.C){c.b=a.C.b;c.c=a.C.c}} +function RMb(){RMb=ccb;OMb=new SMb(xle,0);NMb=new SMb(yle,1);PMb=new SMb(zle,2);QMb=new SMb(Ale,3);OMb.a=false;NMb.a=true;PMb.a=false;QMb.a=true} +function ROb(){ROb=ccb;OOb=new SOb(xle,0);NOb=new SOb(yle,1);POb=new SOb(zle,2);QOb=new SOb(Ale,3);OOb.a=false;NOb.a=true;POb.a=false;QOb.a=true} +function dac(a){var b;b=a.a;do{b=BD(Rr(new Sr(ur(R_b(b).a.Kc(),new Sq))),17).c.i;b.k==(j0b(),g0b)&&a.b.Fc(b)}while(b.k==(j0b(),g0b));a.b=Su(a.b)} +function CDc(a){var b,c,d;d=a.c.a;a.p=(Qb(d),new Tkb(d));for(c=new olb(d);c.a<c.c.c.length;){b=BD(mlb(c),10);b.p=GDc(b).a}mmb();Okb(a.p,new PDc)} +function eVc(a){var b,c,d,e;d=0;e=gVc(a);if(e.c.length==0){return 1}else{for(c=new olb(e);c.a<c.c.c.length;){b=BD(mlb(c),33);d+=eVc(b)}}return d} +function JJb(a,b){var c,d,e;e=0;d=BD(BD(Qc(a.r,b),21),84).Kc();while(d.Ob()){c=BD(d.Pb(),111);e+=c.d.b+c.b.rf().a+c.d.c;d.Ob()&&(e+=a.w)}return e} +function RKb(a,b){var c,d,e;e=0;d=BD(BD(Qc(a.r,b),21),84).Kc();while(d.Ob()){c=BD(d.Pb(),111);e+=c.d.d+c.b.rf().b+c.d.a;d.Ob()&&(e+=a.w)}return e} +function SOc(a,b,c,d){if(b.a<d.a){return true}else if(b.a==d.a){if(b.b<d.b){return true}else if(b.b==d.b){if(a.b>c.b){return true}}}return false} +function AD(a,b){if(ND(a)){return !!zD[b]}else if(a.hm){return !!a.hm[b]}else if(LD(a)){return !!yD[b]}else if(KD(a)){return !!xD[b]}return false} +function jkd(a,b,c){c==null?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),LAd(a.o,b)):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),HAd(a.o,b,c));return a} +function jKb(a,b,c,d){var e,f;f=b.Xe((Y9c(),W8c))?BD(b.We(W8c),21):a.j;e=uJb(f);if(e==(qJb(),pJb)){return}if(c&&!sJb(e)){return}UHb(lKb(a,e,d),b)} +function fid(a,b,c,d){var e,f,g;f=XKd(a.Tg(),b);e=b-a.Ah();return e<0?(g=a.Yg(f),g>=0?a._g(g,c,true):sid(a,f,c)):BD(f,66).Nj().Pj(a,a.yh(),e,c,d)} +function u6d(a,b,c,d){var e,f,g;if(c.mh(b)){Q6d();if(YId(b)){e=BD(c.ah(b),153);x6d(a,e)}else{f=(g=b,!g?null:BD(d,49).xh(g));!!f&&v6d(c.ah(b),f)}}} +function H3b(a){switch(a.g){case 1:return vLb(),uLb;case 3:return vLb(),rLb;case 2:return vLb(),tLb;case 4:return vLb(),sLb;default:return null;}} +function kCb(a){switch(typeof(a)){case Mhe:return LCb(a);case Lhe:return QD(a);case Khe:return Bcb(),a?1231:1237;default:return a==null?0:FCb(a);}} +function Gic(a,b,c){if(a.e){switch(a.b){case 1:oic(a.c,b,c);break;case 0:pic(a.c,b,c);}}else{mic(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e} +function lHc(a){var b,c;if(a==null){return null}c=KC(OQ,nie,193,a.length,0,2);for(b=0;b<c.length;b++){c[b]=BD(ulb(a[b],a[b].length),193)}return c} +function d4d(a){var b;if(b4d(a)){a4d(a);if(a.Lk()){b=b3d(a.e,a.b,a.c,a.a,a.j);a.j=b}a.g=a.a;++a.a;++a.c;a.i=0;return a.j}else{throw vbb(new utb)}} +function fMb(a,b){var c,d,e,f;f=a.o;c=a.p;f<c?(f*=f):(c*=c);d=f+c;f=b.o;c=b.p;f<c?(f*=f):(c*=c);e=f+c;if(d<e){return -1}if(d==e){return 0}return 1} +function HLd(a,b){var c,d,e;e=rud(a,b);if(e>=0)return e;if(a.Fk()){for(d=0;d<a.i;++d){c=a.Gk(BD(a.g[d],56));if(PD(c)===PD(b)){return d}}}return -1} +function Gtd(a,b,c){var d,e;e=a.gc();if(b>=e)throw vbb(new Cyd(b,e));if(a.hi()){d=a.Xc(c);if(d>=0&&d!=b){throw vbb(new Wdb(kue))}}return a.mi(b,c)} +function gx(a,b){this.a=BD(Qb(a),245);this.b=BD(Qb(b),245);if(a.vd(b)>0||a==(Lk(),Kk)||b==(_k(),$k)){throw vbb(new Wdb('Invalid range: '+nx(a,b)))}} +function mYb(a){var b,c;this.b=new Rkb;this.c=a;this.a=false;for(c=new olb(a.a);c.a<c.c.c.length;){b=BD(mlb(c),10);this.a=this.a|b.k==(j0b(),h0b)}} +function GFb(a,b){var c,d,e;c=nGb(new pGb,a);for(e=new olb(b);e.a<e.c.c.length;){d=BD(mlb(e),121);AFb(DFb(CFb(EFb(BFb(new FFb,0),0),c),d))}return c} +function Nac(a,b,c){var d,e,f;for(e=new Sr(ur((b?R_b(a):U_b(a)).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);f=b?d.c.i:d.d.i;f.k==(j0b(),f0b)&&$_b(f,c)}} +function Izc(){Izc=ccb;Gzc=new Kzc(ane,0);Hzc=new Kzc('PORT_POSITION',1);Fzc=new Kzc('NODE_SIZE_WHERE_SPACE_PERMITS',2);Ezc=new Kzc('NODE_SIZE',3)} +function F7c(){F7c=ccb;z7c=new G7c('AUTOMATIC',0);C7c=new G7c(jle,1);D7c=new G7c(kle,2);E7c=new G7c('TOP',3);A7c=new G7c(mle,4);B7c=new G7c(gle,5)} +function Hhb(a,b,c,d){Dhb();var e,f;e=0;for(f=0;f<c;f++){e=wbb(Ibb(xbb(b[f],Yje),xbb(d,Yje)),xbb(Tbb(e),Yje));a[f]=Tbb(e);e=Pbb(e,32)}return Tbb(e)} +function zHb(a,b,c){var d,e;e=0;for(d=0;d<rHb;d++){e=$wnd.Math.max(e,pHb(a.a[b.g][d],c))}b==(gHb(),eHb)&&!!a.b&&(e=$wnd.Math.max(e,a.b.b));return e} +function Bub(a,b){var c,d;lCb(b>0);if((b&-b)==b){return QD(b*Cub(a,31)*4.6566128730773926E-10)}do{c=Cub(a,31);d=c%b}while(c-d+(b-1)<0);return QD(d)} +function LCb(a){JCb();var b,c,d;c=':'+a;d=ICb[c];if(d!=null){return QD((uCb(d),d))}d=GCb[c];b=d==null?KCb(a):QD((uCb(d),d));MCb();ICb[c]=b;return b} +function qZb(a,b,c){Odd(c,'Compound graph preprocessor',1);a.a=new Hp;vZb(a,b,null);pZb(a,b);uZb(a);yNb(b,(wtc(),zsc),a.a);a.a=null;Uhb(a.b);Qdd(c)} +function X$b(a,b,c){switch(c.g){case 1:a.a=b.a/2;a.b=0;break;case 2:a.a=b.a;a.b=b.b/2;break;case 3:a.a=b.a/2;a.b=b.b;break;case 4:a.a=0;a.b=b.b/2;}} +function tkc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Vjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} +function ukc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Wjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} +function tXc(a){switch(a.g){case 0:return null;case 1:return new $Xc;case 2:return new QXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function OZc(a,b,c){var d,e;FZc(a,b-a.s,c-a.t);for(e=new olb(a.n);e.a<e.c.c.length;){d=BD(mlb(e),211);SZc(d,d.e+b-a.s);TZc(d,d.f+c-a.t)}a.s=b;a.t=c} +function JFb(a){var b,c,d,e,f;c=0;for(e=new olb(a.a);e.a<e.c.c.length;){d=BD(mlb(e),121);d.d=c++}b=IFb(a);f=null;b.c.length>1&&(f=GFb(a,b));return f} +function dmd(a){var b;if(!!a.f&&a.f.kh()){b=BD(a.f,49);a.f=BD(xid(a,b),82);a.f!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.f))}return a.f} +function emd(a){var b;if(!!a.i&&a.i.kh()){b=BD(a.i,49);a.i=BD(xid(a,b),82);a.i!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,7,b,a.i))}return a.i} +function zUd(a){var b;if(!!a.b&&(a.b.Db&64)!=0){b=a.b;a.b=BD(xid(a,b),18);a.b!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,21,b,a.b))}return a.b} +function uAd(a,b){var c,d,e;if(a.d==null){++a.e;++a.f}else{d=b.Sh();BAd(a,a.f+1);e=(d&Ohe)%a.d.length;c=a.d[e];!c&&(c=a.d[e]=a.uj());c.Fc(b);++a.f}} +function m3d(a,b,c){var d;if(b.Kj()){return false}else if(b.Zj()!=-2){d=b.zj();return d==null?c==null:pb(d,c)}else return b.Hj()==a.e.Tg()&&c==null} +function wo(){var a;Xj(16,Hie);a=Kp(16);this.b=KC(GF,Gie,317,a,0,1);this.c=KC(GF,Gie,317,a,0,1);this.a=null;this.e=null;this.i=0;this.f=a-1;this.g=0} +function b0b(a){n_b.call(this);this.k=(j0b(),h0b);this.j=(Xj(6,Jie),new Skb(6));this.b=(Xj(2,Jie),new Skb(2));this.d=new L_b;this.f=new s0b;this.a=a} +function Scc(a){var b,c;if(a.c.length<=1){return}b=Pcc(a,(Ucd(),Rcd));Rcc(a,BD(b.a,19).a,BD(b.b,19).a);c=Pcc(a,Tcd);Rcc(a,BD(c.a,19).a,BD(c.b,19).a)} +function Vzc(){Vzc=ccb;Uzc=new Xzc('SIMPLE',0);Rzc=new Xzc(Tne,1);Szc=new Xzc('LINEAR_SEGMENTS',2);Qzc=new Xzc('BRANDES_KOEPF',3);Tzc=new Xzc(Aqe,4)} +function XDc(a,b,c){if(!ecd(BD(vNb(b,(Nyc(),Vxc)),98))){WDc(a,b,Y_b(b,c));WDc(a,b,Y_b(b,(Ucd(),Rcd)));WDc(a,b,Y_b(b,Acd));mmb();Okb(b.j,new jEc(a))}} +function HVc(a,b,c,d){var e,f,g;e=d?BD(Qc(a.a,b),21):BD(Qc(a.b,b),21);for(g=e.Kc();g.Ob();){f=BD(g.Pb(),33);if(BVc(a,c,f)){return true}}return false} +function FMd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} +function QTd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} +function FDc(a){var b,c,d;b=0;for(d=new olb(a.c.a);d.a<d.c.c.length;){c=BD(mlb(d),10);b+=sr(new Sr(ur(U_b(c).a.Kc(),new Sq)))}return b/a.c.a.c.length} +function UPc(a){var b,c;a.c||XPc(a);c=new s7c;b=new olb(a.a);mlb(b);while(b.a<b.c.c.length){Dsb(c,BD(mlb(b),407).a)}sCb(c.b!=0);Nsb(c,c.c.b);return c} +function J0c(){J0c=ccb;I0c=(A0c(),z0c);G0c=new q0b(8);new Osd((Y9c(),f9c),G0c);new Osd(T9c,8);H0c=x0c;E0c=n0c;F0c=o0c;D0c=new Osd(y8c,(Bcb(),false))} +function uld(a,b,c,d){switch(b){case 7:return !a.e&&(a.e=new y5d(B2,a,7,4)),a.e;case 8:return !a.d&&(a.d=new y5d(B2,a,8,5)),a.d;}return Xkd(a,b,c,d)} +function JQd(a){var b;if(!!a.a&&a.a.kh()){b=BD(a.a,49);a.a=BD(xid(a,b),138);a.a!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,5,b,a.a))}return a.a} +function yde(a){if(a<48)return -1;if(a>102)return -1;if(a<=57)return a-48;if(a<65)return -1;if(a<=70)return a-65+10;if(a<97)return -1;return a-97+10} +function Wj(a,b){if(a==null){throw vbb(new Heb('null key in entry: null='+b))}else if(b==null){throw vbb(new Heb('null value in entry: '+a+'=null'))}} +function kr(a,b){var c,d;while(a.Ob()){if(!b.Ob()){return false}c=a.Pb();d=b.Pb();if(!(PD(c)===PD(d)||c!=null&&pb(c,d))){return false}}return !b.Ob()} +function jIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[pHb(a.a[0],b),pHb(a.a[1],b),pHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function kIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[qHb(a.a[0],b),qHb(a.a[1],b),qHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function mqc(){mqc=ccb;iqc=new oqc('GREEDY',0);hqc=new oqc(Une,1);kqc=new oqc(Tne,2);lqc=new oqc('MODEL_ORDER',3);jqc=new oqc('GREEDY_MODEL_ORDER',4)} +function iUc(a,b){var c,d,e;a.b[b.g]=1;for(d=Jsb(b.d,0);d.b!=d.d.c;){c=BD(Xsb(d),188);e=c.c;a.b[e.g]==1?Dsb(a.a,c):a.b[e.g]==2?(a.b[e.g]=1):iUc(a,e)}} +function V9b(a,b){var c,d,e;e=new Skb(b.gc());for(d=b.Kc();d.Ob();){c=BD(d.Pb(),286);c.c==c.f?K9b(a,c,c.c):L9b(a,c)||(e.c[e.c.length]=c,true)}return e} +function IZc(a,b,c){var d,e,f,g,h;h=a.r+b;a.r+=b;a.d+=c;d=c/a.n.c.length;e=0;for(g=new olb(a.n);g.a<g.c.c.length;){f=BD(mlb(g),211);RZc(f,h,d,e);++e}} +function tEb(a){var b,c,d;zwb(a.b.a);a.a=KC(PM,Uhe,57,a.c.c.a.b.c.length,0,1);b=0;for(d=new olb(a.c.c.a.b);d.a<d.c.c.length;){c=BD(mlb(d),57);c.f=b++}} +function RVb(a){var b,c,d;zwb(a.b.a);a.a=KC(IP,Uhe,81,a.c.a.a.b.c.length,0,1);b=0;for(d=new olb(a.c.a.a.b);d.a<d.c.c.length;){c=BD(mlb(d),81);c.i=b++}} +function P1c(a,b,c){var d;Odd(c,'Shrinking tree compaction',1);if(Ccb(DD(vNb(b,(XNb(),VNb))))){N1c(a,b.f);INb(b.f,(d=b.c,d))}else{INb(b.f,b.c)}Qdd(c)} +function mr(a){var b;b=gr(a);if(!Qr(a)){throw vbb(new qcb('position (0) must be less than the number of elements that remained ('+b+')'))}return Rr(a)} +function hNb(b,c,d){var e;try{return YMb(b,c+b.j,d+b.k)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function iNb(b,c,d){var e;try{return ZMb(b,c+b.j,d+b.k)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function jNb(b,c,d){var e;try{return $Mb(b,c+b.j,d+b.k)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function s5b(a){switch(a.g){case 1:return Ucd(),Tcd;case 4:return Ucd(),Acd;case 3:return Ucd(),zcd;case 2:return Ucd(),Rcd;default:return Ucd(),Scd;}} +function cjc(a,b,c){if(b.k==(j0b(),h0b)&&c.k==g0b){a.d=_ic(b,(Ucd(),Rcd));a.b=_ic(b,Acd)}if(c.k==h0b&&b.k==g0b){a.d=_ic(c,(Ucd(),Acd));a.b=_ic(c,Rcd)}} +function gjc(a,b){var c,d,e;e=V_b(a,b);for(d=e.Kc();d.Ob();){c=BD(d.Pb(),11);if(vNb(c,(wtc(),gtc))!=null||a1b(new b1b(c.b))){return true}}return false} +function QZc(a,b){dld(b,a.e+a.d+(a.c.c.length==0?0:a.b));eld(b,a.f);a.a=$wnd.Math.max(a.a,b.f);a.d+=b.g+(a.c.c.length==0?0:a.b);Ekb(a.c,b);return true} +function XZc(a,b,c){var d,e,f,g;g=0;d=c/a.a.c.length;for(f=new olb(a.a);f.a<f.c.c.length;){e=BD(mlb(f),187);OZc(e,e.s,e.t+g*d);IZc(e,a.d-e.r+b,d);++g}} +function H4b(a){var b,c,d,e,f;for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),29);b=0;for(f=new olb(c.a);f.a<f.c.c.length;){e=BD(mlb(f),10);e.p=b++}}} +function r6c(a,b){var c,d,e,f,g,h;e=b.length-1;g=0;h=0;for(d=0;d<=e;d++){f=b[d];c=k6c(e,d)*x6c(1-a,e-d)*x6c(a,d);g+=f.a*c;h+=f.b*c}return new f7c(g,h)} +function jud(a,b){var c,d,e,f,g;c=b.gc();a.qi(a.i+c);f=b.Kc();g=a.i;a.i+=c;for(d=g;d<a.i;++d){e=f.Pb();mud(a,d,a.oi(d,e));a.bi(d,e);a.ci()}return c!=0} +function twd(a,b,c){var d,e,f;if(a.ej()){d=a.Vi();f=a.fj();++a.j;a.Hi(d,a.oi(d,b));e=a.Zi(3,null,b,d,f);!c?(c=e):c.Ei(e)}else{Avd(a,a.Vi(),b)}return c} +function WOd(a,b,c){var d,e,f;d=BD(qud(VKd(a.a),b),87);f=(e=d.c,JD(e,88)?BD(e,26):(jGd(),_Fd));((f.Db&64)!=0?xid(a.b,f):f)==c?KQd(d):NQd(d,c);return f} +function Ewb(a,b,c,d,e,f,g,h){var i,j;if(!d){return}i=d.a[0];!!i&&Ewb(a,b,c,i,e,f,g,h);Fwb(a,c,d.d,e,f,g,h)&&b.Fc(d);j=d.a[1];!!j&&Ewb(a,b,c,j,e,f,g,h)} +function eAb(a,b){var c;if(!a.a){c=KC(UD,Vje,25,0,15,1);_ub(a.b.a,new iAb(c));c.sort(dcb(Ylb.prototype.te,Ylb,[]));a.a=new Avb(c,a.d)}return pvb(a.a,b)} +function YMb(b,c,d){try{return Bbb(_Mb(b,c,d),1)}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}} +function ZMb(b,c,d){try{return Bbb(_Mb(b,c,d),0)}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}} +function $Mb(b,c,d){try{return Bbb(_Mb(b,c,d),2)}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}} +function Nyd(b,c){if(b.g==-1){throw vbb(new Ydb)}b.mj();try{b.d._c(b.g,c);b.f=b.d.j}catch(a){a=ubb(a);if(JD(a,73)){throw vbb(new Apb)}else throw vbb(a)}} +function rJc(a,b,c){Odd(c,'Linear segments node placement',1);a.b=BD(vNb(b,(wtc(),otc)),304);sJc(a,b);nJc(a,b);kJc(a,b);qJc(a);a.a=null;a.b=null;Qdd(c)} +function Ee(a,b){var c,d,e,f;f=a.gc();b.length<f&&(b=eCb(new Array(f),b));e=b;d=a.Kc();for(c=0;c<f;++c){NC(e,c,d.Pb())}b.length>f&&NC(b,f,null);return b} +function Lu(a,b){var c,d;d=a.gc();if(b==null){for(c=0;c<d;c++){if(a.Xb(c)==null){return c}}}else{for(c=0;c<d;c++){if(pb(b,a.Xb(c))){return c}}}return -1} +function Jd(a,b){var c,d,e;c=b.cd();e=b.dd();d=a.xc(c);if(!(PD(e)===PD(d)||e!=null&&pb(e,d))){return false}if(d==null&&!a._b(c)){return false}return true} +function YC(a,b){var c,d,e;if(b<=22){c=a.l&(1<<b)-1;d=e=0}else if(b<=44){c=a.l;d=a.m&(1<<b-22)-1;e=0}else{c=a.l;d=a.m;e=a.h&(1<<b-44)-1}return TC(c,d,e)} +function yKb(a,b){switch(b.g){case 1:return a.f.n.d+a.t;case 3:return a.f.n.a+a.t;case 2:return a.f.n.c+a.s;case 4:return a.f.n.b+a.s;default:return 0;}} +function aLb(a,b){var c,d;d=b.c;c=b.a;switch(a.b.g){case 0:c.d=a.e-d.a-d.d;break;case 1:c.d+=a.e;break;case 2:c.c=a.e-d.a-d.d;break;case 3:c.c=a.e+d.d;}} +function ZOb(a,b,c,d){var e,f;this.a=b;this.c=d;e=a.a;YOb(this,new f7c(-e.c,-e.d));P6c(this.b,c);f=d/2;b.a?b7c(this.b,0,f):b7c(this.b,f,0);Ekb(a.c,this)} +function iXc(){iXc=ccb;hXc=new kXc(ane,0);fXc=new kXc(Vne,1);gXc=new kXc('EDGE_LENGTH_BY_POSITION',2);eXc=new kXc('CROSSING_MINIMIZATION_BY_POSITION',3)} +function Wqd(a,b){var c,d;c=BD(oo(a.g,b),33);if(c){return c}d=BD(oo(a.j,b),118);if(d){return d}throw vbb(new cqd('Referenced shape does not exist: '+b))} +function rTb(a,b){if(a.c==b){return a.d}else if(a.d==b){return a.c}else{throw vbb(new Wdb("Node 'one' must be either source or target of edge 'edge'."))}} +function TMc(a,b){if(a.c.i==b){return a.d.i}else if(a.d.i==b){return a.c.i}else{throw vbb(new Wdb('Node '+b+' is neither source nor target of edge '+a))}} +function _lc(a,b){var c;switch(b.g){case 2:case 4:c=a.a;a.c.d.n.b<c.d.n.b&&(c=a.c);amc(a,b,(Ajc(),zjc),c);break;case 1:case 3:amc(a,b,(Ajc(),wjc),null);}} +function smc(a,b,c,d,e,f){var g,h,i,j,k;g=qmc(b,c,f);h=c==(Ucd(),Acd)||c==Tcd?-1:1;j=a[c.g];for(k=0;k<j.length;k++){i=j[k];i>0&&(i+=e);j[k]=g;g+=h*(i+d)}} +function Uoc(a){var b,c,d;d=a.f;a.n=KC(UD,Vje,25,d,15,1);a.d=KC(UD,Vje,25,d,15,1);for(b=0;b<d;b++){c=BD(Ikb(a.c.b,b),29);a.n[b]=Roc(a,c);a.d[b]=Qoc(a,c)}} +function zjd(a,b){var c,d,e;e=0;for(d=2;d<b;d<<=1){(a.Db&d)!=0&&++e}if(e==0){for(c=b<<=1;c<=128;c<<=1){if((a.Db&c)!=0){return 0}}return -1}else{return e}} +function s3d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);f=null;c=BD(a.g,119);for(e=0;e<a.i;++e){d=c[e];if(g.rl(d.ak())){!f&&(f=new yud);wtd(f,d)}}!!f&&Yxd(a,f)} +function H9d(a){var b,c,d;if(!a)return null;if(a.dc())return '';d=new Hfb;for(c=a.Kc();c.Ob();){b=c.Pb();Efb(d,GD(b));d.a+=' '}return lcb(d,d.a.length-1)} +function Ty(a,b,c){var d,e,f,g,h;Uy(a);for(e=(a.k==null&&(a.k=KC(_I,nie,78,0,0,1)),a.k),f=0,g=e.length;f<g;++f){d=e[f];Ty(d,b,'\t'+c)}h=a.f;!!h&&Ty(h,b,c)} +function LC(a,b){var c=new Array(b);var d;switch(a){case 14:case 15:d=0;break;case 16:d=false;break;default:return c;}for(var e=0;e<b;++e){c[e]=d}return c} +function PDb(a){var b,c,d;for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),57);b.c.$b()}fad(a.d)?(d=a.a.c):(d=a.a.d);Hkb(d,new dEb(a));a.c.Me(a);QDb(a)} +function sRb(a){var b,c,d,e;for(c=new olb(a.e.c);c.a<c.c.c.length;){b=BD(mlb(c),282);for(e=new olb(b.b);e.a<e.c.c.length;){d=BD(mlb(e),447);lRb(d)}cRb(b)}} +function a$c(a){var b,c,d,e,f;d=0;f=0;e=0;for(c=new olb(a.a);c.a<c.c.c.length;){b=BD(mlb(c),187);f=$wnd.Math.max(f,b.r);d+=b.d+(e>0?a.c:0);++e}a.b=d;a.d=f} +function BZc(a,b){var c,d,e,f,g;d=0;e=0;c=0;for(g=new olb(b);g.a<g.c.c.length;){f=BD(mlb(g),200);d=$wnd.Math.max(d,f.e);e+=f.b+(c>0?a.g:0);++c}a.c=e;a.d=d} +function AHb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[zHb(a,(gHb(),dHb),b),zHb(a,eHb,b),zHb(a,fHb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function lNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,false,true)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function mNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,true,false)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function d5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),zbd))){b.Mc(zbd);b.Fc(Bbd)}else if(b.Hc(Bbd)){b.Mc(Bbd);b.Fc(zbd)}} +function e5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),Gbd))){b.Mc(Gbd);b.Fc(Ebd)}else if(b.Hc(Ebd)){b.Mc(Ebd);b.Fc(Gbd)}} +function udc(a,b,c){Odd(c,'Self-Loop ordering',1);MAb(NAb(JAb(JAb(LAb(new YAb(null,new Kub(b.b,16)),new ydc),new Adc),new Cdc),new Edc),new Gdc(a));Qdd(c)} +function ikc(a,b,c,d){var e,f;for(e=b;e<a.c.length;e++){f=(tCb(e,a.c.length),BD(a.c[e],11));if(c.Mb(f)){d.c[d.c.length]=f}else{return e}}return a.c.length} +function Kmc(a,b,c,d){var e,f,g,h;a.a==null&&Nmc(a,b);g=b.b.j.c.length;f=c.d.p;h=d.d.p;e=h-1;e<0&&(e=g-1);return f<=e?a.a[e]-a.a[f]:a.a[g-1]-a.a[f]+a.a[e]} +function ehd(a){var b,c;if(!a.b){a.b=Qu(BD(a.f,33).Ag().i);for(c=new Fyd(BD(a.f,33).Ag());c.e!=c.i.gc();){b=BD(Dyd(c),137);Ekb(a.b,new dhd(b))}}return a.b} +function fhd(a){var b,c;if(!a.e){a.e=Qu(Yod(BD(a.f,33)).i);for(c=new Fyd(Yod(BD(a.f,33)));c.e!=c.i.gc();){b=BD(Dyd(c),118);Ekb(a.e,new thd(b))}}return a.e} +function ahd(a){var b,c;if(!a.a){a.a=Qu(Vod(BD(a.f,33)).i);for(c=new Fyd(Vod(BD(a.f,33)));c.e!=c.i.gc();){b=BD(Dyd(c),33);Ekb(a.a,new hhd(a,b))}}return a.a} +function dKd(b){var c;if(!b.C&&(b.D!=null||b.B!=null)){c=eKd(b);if(c){b.yk(c)}else{try{b.yk(null)}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}}return b.C} +function GJb(a){switch(a.q.g){case 5:DJb(a,(Ucd(),Acd));DJb(a,Rcd);break;case 4:EJb(a,(Ucd(),Acd));EJb(a,Rcd);break;default:FJb(a,(Ucd(),Acd));FJb(a,Rcd);}} +function PKb(a){switch(a.q.g){case 5:MKb(a,(Ucd(),zcd));MKb(a,Tcd);break;case 4:NKb(a,(Ucd(),zcd));NKb(a,Tcd);break;default:OKb(a,(Ucd(),zcd));OKb(a,Tcd);}} +function EXb(a,b){var c,d,e;e=new d7c;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),37);uXb(c,e.a,0);e.a+=c.f.a+b;e.b=$wnd.Math.max(e.b,c.f.b)}e.b>0&&(e.b+=b);return e} +function GXb(a,b){var c,d,e;e=new d7c;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),37);uXb(c,0,e.b);e.b+=c.f.b+b;e.a=$wnd.Math.max(e.a,c.f.a)}e.a>0&&(e.a+=b);return e} +function d_b(a){var b,c,d;d=Ohe;for(c=new olb(a.a);c.a<c.c.c.length;){b=BD(mlb(c),10);wNb(b,(wtc(),Zsc))&&(d=$wnd.Math.min(d,BD(vNb(b,Zsc),19).a))}return d} +function pHc(a,b){var c,d;if(b.length==0){return 0}c=NHc(a.a,b[0],(Ucd(),Tcd));c+=NHc(a.a,b[b.length-1],zcd);for(d=0;d<b.length;d++){c+=qHc(a,d,b)}return c} +function vQc(){hQc();this.c=new Rkb;this.i=new Rkb;this.e=new zsb;this.f=new zsb;this.g=new zsb;this.j=new Rkb;this.a=new Rkb;this.b=new Lqb;this.k=new Lqb} +function aKd(a,b){var c,d;if(a.Db>>16==6){return a.Cb.ih(a,5,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Wz(a){Rz();var b=a.e;if(b&&b.stack){var c=b.stack;var d=b+'\n';c.substring(0,d.length)==d&&(c=c.substring(d.length));return c.split('\n')}return []} +function jeb(a){var b;b=(qeb(),peb);return b[a>>>28]|b[a>>24&15]<<4|b[a>>20&15]<<8|b[a>>16&15]<<12|b[a>>12&15]<<16|b[a>>8&15]<<20|b[a>>4&15]<<24|b[a&15]<<28} +function _jb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=geb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=_Bb(a.a,c);$jb(a,b,d);a.a=b;a.b=0}else{dCb(a.a,c)}a.c=d} +function DKb(a,b){var c;c=a.b;return c.Xe((Y9c(),s9c))?c.Hf()==(Ucd(),Tcd)?-c.rf().a-Edb(ED(c.We(s9c))):b+Edb(ED(c.We(s9c))):c.Hf()==(Ucd(),Tcd)?-c.rf().a:b} +function P_b(a){var b;if(a.b.c.length!=0&&!!BD(Ikb(a.b,0),70).a){return BD(Ikb(a.b,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.c?-1:Jkb(a.c.a,a,0))} +function C0b(a){var b;if(a.f.c.length!=0&&!!BD(Ikb(a.f,0),70).a){return BD(Ikb(a.f,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.i?-1:Jkb(a.i.j,a,0))} +function Ogc(a,b){var c,d;if(b<0||b>=a.gc()){return null}for(c=b;c<a.gc();++c){d=BD(a.Xb(c),128);if(c==a.gc()-1||!d.o){return new vgd(meb(c),d)}}return null} +function uoc(a,b,c){var d,e,f,g,h;f=a.c;h=c?b:a;d=c?a:b;for(e=h.p+1;e<d.p;++e){g=BD(Ikb(f.a,e),10);if(!(g.k==(j0b(),d0b)||voc(g))){return false}}return true} +function u$c(a){var b,c,d,e,f;f=0;e=Qje;d=0;for(c=new olb(a.a);c.a<c.c.c.length;){b=BD(mlb(c),187);f+=b.r+(d>0?a.c:0);e=$wnd.Math.max(e,b.d);++d}a.e=f;a.b=e} +function shd(a){var b,c;if(!a.b){a.b=Qu(BD(a.f,118).Ag().i);for(c=new Fyd(BD(a.f,118).Ag());c.e!=c.i.gc();){b=BD(Dyd(c),137);Ekb(a.b,new dhd(b))}}return a.b} +function Ctd(a,b){var c,d,e;if(b.dc()){return LCd(),LCd(),KCd}else{c=new zyd(a,b.gc());for(e=new Fyd(a);e.e!=e.i.gc();){d=Dyd(e);b.Hc(d)&&wtd(c,d)}return c}} +function bkd(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),a.o):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),FAd(a.o))}return fid(a,b,c,d)} +function Tnd(a){var b,c;if(a.rb){for(b=0,c=a.rb.i;b<c;++b){Cmd(qud(a.rb,b))}}if(a.vb){for(b=0,c=a.vb.i;b<c;++b){Cmd(qud(a.vb,b))}}u1d((O6d(),M6d),a);a.Bb|=1} +function _nd(a,b,c,d,e,f,g,h,i,j,k,l,m,n){aod(a,b,d,null,e,f,g,h,i,j,m,true,n);CUd(a,k);JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),2);!!c&&DUd(a,c);EUd(a,l);return a} +function jZd(b){var c,d;if(b==null){return null}d=0;try{d=Icb(b,Rie,Ohe)&aje}catch(a){a=ubb(a);if(JD(a,127)){c=rfb(b);d=c[0]}else throw vbb(a)}return bdb(d)} +function kZd(b){var c,d;if(b==null){return null}d=0;try{d=Icb(b,Rie,Ohe)&aje}catch(a){a=ubb(a);if(JD(a,127)){c=rfb(b);d=c[0]}else throw vbb(a)}return bdb(d)} +function bD(a,b){var c,d,e;e=a.h-b.h;if(e<0){return false}c=a.l-b.l;d=a.m-b.m+(c>>22);e+=d>>22;if(e<0){return false}a.l=c&Eje;a.m=d&Eje;a.h=e&Fje;return true} +function Fwb(a,b,c,d,e,f,g){var h,i;if(b.Ae()&&(i=a.a.ue(c,d),i<0||!e&&i==0)){return false}if(b.Be()&&(h=a.a.ue(c,f),h>0||!g&&h==0)){return false}return true} +function Vcc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return Ycc(b,Ncc)-Ycc(a,Ncc);case 4:return Ycc(a,Mcc)-Ycc(b,Mcc);}return 0} +function Tqc(a){switch(a.g){case 0:return Mqc;case 1:return Nqc;case 2:return Oqc;case 3:return Pqc;case 4:return Qqc;case 5:return Rqc;default:return null;}} +function End(a,b,c){var d,e;d=(e=new rUd,yId(e,b),pnd(e,c),wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),e),e);AId(d,0);DId(d,1);CId(d,true);BId(d,true);return d} +function tud(a,b){var c,d;if(b>=a.i)throw vbb(new $zd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&$fb(a.g,b+1,a.g,b,d);NC(a.g,--a.i,null);a.fi(b,c);a.ci();return c} +function UId(a,b){var c,d;if(a.Db>>16==17){return a.Cb.ih(a,21,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function iDb(a){var b,c,d,e;mmb();Okb(a.c,a.a);for(e=new olb(a.c);e.a<e.c.c.length;){d=mlb(e);for(c=new olb(a.b);c.a<c.c.c.length;){b=BD(mlb(c),679);b.Ke(d)}}} +function pXb(a){var b,c,d,e;mmb();Okb(a.c,a.a);for(e=new olb(a.c);e.a<e.c.c.length;){d=mlb(e);for(c=new olb(a.b);c.a<c.c.c.length;){b=BD(mlb(c),369);b.Ke(d)}}} +function AGb(a){var b,c,d,e,f;e=Ohe;f=null;for(d=new olb(a.d);d.a<d.c.c.length;){c=BD(mlb(d),213);if(c.d.j^c.e.j){b=c.e.e-c.d.e-c.a;if(b<e){e=b;f=c}}}return f} +function OSb(){OSb=ccb;MSb=new Nsd(Mme,(Bcb(),false));ISb=new Nsd(Nme,100);KSb=(yTb(),wTb);JSb=new Nsd(Ome,KSb);LSb=new Nsd(Pme,qme);NSb=new Nsd(Qme,meb(Ohe))} +function ric(a,b,c){var d,e,f,g,h,i,j,k;j=0;for(e=a.a[b],f=0,g=e.length;f<g;++f){d=e[f];k=CHc(d,c);for(i=k.Kc();i.Ob();){h=BD(i.Pb(),11);Rhb(a.f,h,meb(j++))}}} +function uqd(a,b,c){var d,e,f,g;if(c){e=c.a.length;d=new Yge(e);for(g=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);g.Ob();){f=BD(g.Pb(),19);Rc(a,b,Vpd(tB(c,f.a)))}}} +function vqd(a,b,c){var d,e,f,g;if(c){e=c.a.length;d=new Yge(e);for(g=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);g.Ob();){f=BD(g.Pb(),19);Rc(a,b,Vpd(tB(c,f.a)))}}} +function Bkc(a){gkc();var b;b=BD(Ee(Ec(a.k),KC(F1,bne,61,2,0,1)),122);Klb(b,0,b.length,null);if(b[0]==(Ucd(),Acd)&&b[1]==Tcd){NC(b,0,Tcd);NC(b,1,Acd)}return b} +function JHc(a,b,c){var d,e,f;e=HHc(a,b,c);f=KHc(a,e);yHc(a.b);cIc(a,b,c);mmb();Okb(e,new hIc(a));d=KHc(a,e);yHc(a.b);cIc(a,c,b);return new vgd(meb(f),meb(d))} +function jJc(){jJc=ccb;gJc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b));hJc=new Msd('linearSegments.inputPrio',meb(0));iJc=new Msd('linearSegments.outputPrio',meb(0))} +function yRc(){yRc=ccb;uRc=new ARc('P1_TREEIFICATION',0);vRc=new ARc('P2_NODE_ORDERING',1);wRc=new ARc('P3_NODE_PLACEMENT',2);xRc=new ARc('P4_EDGE_ROUTING',3)} +function ZWc(){ZWc=ccb;UWc=(Y9c(),C9c);XWc=T9c;NWc=Y8c;OWc=_8c;PWc=b9c;MWc=W8c;QWc=e9c;TWc=x9c;KWc=(HWc(),wWc);LWc=xWc;RWc=zWc;SWc=BWc;VWc=CWc;WWc=DWc;YWc=FWc} +function rbd(){rbd=ccb;qbd=new tbd('UNKNOWN',0);nbd=new tbd('ABOVE',1);obd=new tbd('BELOW',2);pbd=new tbd('INLINE',3);new Msd('org.eclipse.elk.labelSide',qbd)} +function rud(a,b){var c;if(a.ni()&&b!=null){for(c=0;c<a.i;++c){if(pb(b,a.g[c])){return c}}}else{for(c=0;c<a.i;++c){if(PD(a.g[c])===PD(b)){return c}}}return -1} +function DZb(a,b,c){var d,e;if(b.c==(KAc(),IAc)&&c.c==HAc){return -1}else if(b.c==HAc&&c.c==IAc){return 1}d=HZb(b.a,a.a);e=HZb(c.a,a.a);return b.c==IAc?e-d:d-e} +function Z_b(a,b,c){if(!!c&&(b<0||b>c.a.c.length)){throw vbb(new Wdb('index must be >= 0 and <= layer node count'))}!!a.c&&Lkb(a.c.a,a);a.c=c;!!c&&Dkb(c.a,b,a)} +function p7b(a,b){var c,d,e;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=BD(b.Kb(c),10);return new cc(Qb(e.n.b+e.o.b/2))}return wb(),wb(),vb} +function rMc(a,b){this.c=new Lqb;this.a=a;this.b=b;this.d=BD(vNb(a,(wtc(),otc)),304);PD(vNb(a,(Nyc(),yxc)))===PD((_qc(),Zqc))?(this.e=new bNc):(this.e=new WMc)} +function $dd(a,b){var c,d,e,f;f=0;for(d=new olb(a);d.a<d.c.c.length;){c=BD(mlb(d),33);f+=$wnd.Math.pow(c.g*c.f-b,2)}e=$wnd.Math.sqrt(f/(a.c.length-1));return e} +function bgd(a,b){var c,d;d=null;if(a.Xe((Y9c(),O9c))){c=BD(a.We(O9c),94);c.Xe(b)&&(d=c.We(b))}d==null&&!!a.yf()&&(d=a.yf().We(b));d==null&&(d=Ksd(b));return d} +function Vt(b,c){var d,e;d=b.Zc(c);try{e=d.Pb();d.Qb();return e}catch(a){a=ubb(a);if(JD(a,109)){throw vbb(new qcb("Can't remove element "+c))}else throw vbb(a)}} +function qA(a,b){var c,d,e;d=new eB;e=new fB(d.q.getFullYear()-nje,d.q.getMonth(),d.q.getDate());c=pA(a,b,e);if(c==0||c<b.length){throw vbb(new Wdb(b))}return e} +function _tb(a,b){var c,d,e;uCb(b);lCb(b!=a);e=a.b.c.length;for(d=b.Kc();d.Ob();){c=d.Pb();Ekb(a.b,uCb(c))}if(e!=a.b.c.length){aub(a,0);return true}return false} +function bTb(){bTb=ccb;VSb=(Y9c(),O8c);new Osd(B8c,(Bcb(),true));YSb=Y8c;ZSb=_8c;$Sb=b9c;XSb=W8c;_Sb=e9c;aTb=x9c;USb=(OSb(),MSb);SSb=JSb;TSb=LSb;WSb=NSb;RSb=ISb} +function MZb(a,b){if(b==a.c){return a.d}else if(b==a.d){return a.c}else{throw vbb(new Wdb("'port' must be either the source port or target port of the edge."))}} +function C3b(a,b,c){var d,e;e=a.o;d=a.d;switch(b.g){case 1:return -d.d-c;case 3:return e.b+d.a+c;case 2:return e.a+d.c+c;case 4:return -d.b-c;default:return 0;}} +function H6b(a,b,c,d){var e,f,g,h;$_b(b,BD(d.Xb(0),29));h=d.bd(1,d.gc());for(f=BD(c.Kb(b),20).Kc();f.Ob();){e=BD(f.Pb(),17);g=e.c.i==b?e.d.i:e.c.i;H6b(a,g,c,h)}} +function Xec(a){var b;b=new Lqb;if(wNb(a,(wtc(),ttc))){return BD(vNb(a,ttc),83)}MAb(JAb(new YAb(null,new Kub(a.j,16)),new Zec),new _ec(b));yNb(a,ttc,b);return b} +function cmd(a,b){var c,d;if(a.Db>>16==6){return a.Cb.ih(a,6,B2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Lhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Eod(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,1,C2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Nhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function lpd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.ih(a,9,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Phd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function mQd(a,b){var c,d;if(a.Db>>16==5){return a.Cb.ih(a,9,h5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),VFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function KHd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.ih(a,0,k5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),OFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Snd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,6,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),cGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function ird(){this.a=new bqd;this.g=new wo;this.j=new wo;this.b=new Lqb;this.d=new wo;this.i=new wo;this.k=new Lqb;this.c=new Lqb;this.e=new Lqb;this.f=new Lqb} +function MCd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;e<f;e++){d=qud(a,e);if(b==null){if(d==null){return e}}else if(PD(b)===PD(d)||pb(b,d)){return e}}return -1} +function b1d(a,b){var c,d;c=b.Hh(a.a);if(!c){return null}else{d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Awe));return dfb(Bwe,d)?u1d(a,bKd(b.Hj())):d}} +function p6d(a,b){var c,d;if(b){if(b==a){return true}c=0;for(d=BD(b,49).eh();!!d&&d!=b;d=d.eh()){if(++c>Wje){return p6d(a,d)}if(d==a){return true}}}return false} +function HKb(a){CKb();switch(a.q.g){case 5:EKb(a,(Ucd(),Acd));EKb(a,Rcd);break;case 4:FKb(a,(Ucd(),Acd));FKb(a,Rcd);break;default:GKb(a,(Ucd(),Acd));GKb(a,Rcd);}} +function LKb(a){CKb();switch(a.q.g){case 5:IKb(a,(Ucd(),zcd));IKb(a,Tcd);break;case 4:JKb(a,(Ucd(),zcd));JKb(a,Tcd);break;default:KKb(a,(Ucd(),zcd));KKb(a,Tcd);}} +function XQb(a){var b,c;b=BD(vNb(a,(wSb(),pSb)),19);if(b){c=b.a;c==0?yNb(a,(HSb(),GSb),new Gub):yNb(a,(HSb(),GSb),new Hub(c))}else{yNb(a,(HSb(),GSb),new Hub(1))}} +function V$b(a,b){var c;c=a.i;switch(b.g){case 1:return -(a.n.b+a.o.b);case 2:return a.n.a-c.o.a;case 3:return a.n.b-c.o.b;case 4:return -(a.n.a+a.o.a);}return 0} +function hbc(a,b){switch(a.g){case 0:return b==(Ctc(),ytc)?dbc:ebc;case 1:return b==(Ctc(),ytc)?dbc:cbc;case 2:return b==(Ctc(),ytc)?cbc:ebc;default:return cbc;}} +function v$c(a,b){var c,d,e;Lkb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=ere;for(d=new olb(a.a);d.a<d.c.c.length;){c=BD(mlb(d),187);e=$wnd.Math.max(e,c.d)}a.b=e} +function Lld(a,b){var c,d;if(a.Db>>16==3){return a.Cb.ih(a,12,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Khd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Uod(a,b){var c,d;if(a.Db>>16==11){return a.Cb.ih(a,10,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Ohd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function PSd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,11,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),aGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function qUd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,12,n5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),dGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function wId(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.kh()){b=BD(a.r,49);a.r=BD(xid(a,b),138);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.r))}return a.r} +function yHb(a,b,c){var d;d=OC(GC(UD,1),Vje,25,15,[BHb(a,(gHb(),dHb),b,c),BHb(a,eHb,b,c),BHb(a,fHb,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d} +function O9b(a,b){var c,d,e;e=V9b(a,b);if(e.c.length==0){return}Okb(e,new pac);c=e.c.length;for(d=0;d<c;d++){K9b(a,(tCb(d,e.c.length),BD(e.c[d],286)),R9b(a,e,d))}} +function qkc(a){var b,c,d,e;for(e=BD(Qc(a.a,(Xjc(),Sjc)),15).Kc();e.Ob();){d=BD(e.Pb(),101);for(c=Ec(d.k).Kc();c.Ob();){b=BD(c.Pb(),61);kkc(a,d,b,(Fkc(),Dkc),1)}}} +function voc(a){var b,c;if(a.k==(j0b(),g0b)){for(c=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!OZb(b)&&a.c==LZb(b,a).c){return true}}}return false} +function JNc(a){var b,c;if(a.k==(j0b(),g0b)){for(c=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!OZb(b)&&b.c.i.c==b.d.i.c){return true}}}return false} +function HUc(a,b){var c,d,e,f;Odd(b,'Dull edge routing',1);for(f=Jsb(a.b,0);f.b!=f.d.c;){e=BD(Xsb(f),86);for(d=Jsb(e.d,0);d.b!=d.d.c;){c=BD(Xsb(d),188);Osb(c.a)}}} +function xqd(a,b){var c,d,e,f,g;if(b){e=b.a.length;c=new Yge(e);for(g=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);g.Ob();){f=BD(g.Pb(),19);d=Zpd(b,f.a);!!d&&ard(a,d)}}} +function DZd(){tZd();var a,b;xZd((NFd(),MFd));wZd(MFd);Tnd(MFd);FQd=(jGd(),YFd);for(b=new olb(rZd);b.a<b.c.c.length;){a=BD(mlb(b),241);QQd(a,YFd,null)}return true} +function eD(a,b){var c,d,e,f,g,h,i,j;i=a.h>>19;j=b.h>>19;if(i!=j){return j-i}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f} +function fFb(){fFb=ccb;eFb=(rFb(),oFb);dFb=new Nsd(Yke,eFb);cFb=(UEb(),TEb);bFb=new Nsd(Zke,cFb);aFb=(MEb(),LEb);_Eb=new Nsd($ke,aFb);$Eb=new Nsd(_ke,(Bcb(),true))} +function cfc(a,b,c){var d,e;d=b*c;if(JD(a.g,145)){e=ugc(a);if(e.f.d){e.f.a||(a.d.a+=d+ple)}else{a.d.d-=d+ple;a.d.a+=d+ple}}else if(JD(a.g,10)){a.d.d-=d;a.d.a+=2*d}} +function vmc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new olb(b.d);h.a<h.c.c.length;){g=BD(mlb(h),101);f=g.i;if(!!f&&f.i==c){d=g.d[c.g];e[d]=$wnd.Math.max(e[d],f.j.b)}}} +function AZc(a,b){var c,d,e,f,g;d=0;e=0;c=0;for(g=new olb(b.d);g.a<g.c.c.length;){f=BD(mlb(g),443);a$c(f);d=$wnd.Math.max(d,f.b);e+=f.d+(c>0?a.g:0);++c}b.b=d;b.e=e} +function to(a){var b,c,d;d=a.b;if(Lp(a.i,d.length)){c=d.length*2;a.b=KC(GF,Gie,317,c,0,1);a.c=KC(GF,Gie,317,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){po(a,b,b)}++a.g}} +function cNb(a,b,c,d){var e,f,g,h;for(e=0;e<b.o;e++){f=e-b.j+c;for(g=0;g<b.p;g++){h=g-b.k+d;YMb(b,e,g)?jNb(a,f,h)||lNb(a,f,h):$Mb(b,e,g)&&(hNb(a,f,h)||mNb(a,f,h))}}} +function Ooc(a,b,c){var d;d=b.c.i;if(d.k==(j0b(),g0b)){yNb(a,(wtc(),Vsc),BD(vNb(d,Vsc),11));yNb(a,Wsc,BD(vNb(d,Wsc),11))}else{yNb(a,(wtc(),Vsc),b.c);yNb(a,Wsc,c.d)}} +function l6c(a,b,c){i6c();var d,e,f,g,h,i;g=b/2;f=c/2;d=$wnd.Math.abs(a.a);e=$wnd.Math.abs(a.b);h=1;i=1;d>g&&(h=g/d);e>f&&(i=f/e);Y6c(a,$wnd.Math.min(h,i));return a} +function ond(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),yte),2014);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new knd} +function Y9d(){A9d();var b,c;try{c=BD(mUd((yFd(),xFd),Ewe),2024);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new U9d} +function qZd(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),_ve),1941);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new mZd} +function HQd(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}e!=b&&(b?(c=QQd(a,MQd(a,b),c)):(c=QQd(a,a.a,c)));return c} +function nB(){eB.call(this);this.e=-1;this.a=false;this.p=Rie;this.k=-1;this.c=-1;this.b=-1;this.g=false;this.f=-1;this.j=-1;this.n=-1;this.i=-1;this.d=-1;this.o=Rie} +function qEb(a,b){var c,d,e;d=a.b.d.d;a.a||(d+=a.b.d.a);e=b.b.d.d;b.a||(e+=b.b.d.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function eOb(a,b){var c,d,e;d=a.b.b.d;a.a||(d+=a.b.b.a);e=b.b.b.d;b.a||(e+=b.b.b.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function PVb(a,b){var c,d,e;d=a.b.g.d;a.a||(d+=a.b.g.a);e=b.b.g.d;b.a||(e+=b.b.g.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function ZTb(){ZTb=ccb;WTb=c3c(e3c(e3c(e3c(new j3c,(qUb(),oUb),(S8b(),m8b)),oUb,q8b),pUb,x8b),pUb,a8b);YTb=e3c(e3c(new j3c,oUb,S7b),oUb,b8b);XTb=c3c(new j3c,pUb,d8b)} +function s3b(a){var b,c,d,e,f;b=BD(vNb(a,(wtc(),Csc)),83);f=a.n;for(d=b.Cc().Kc();d.Ob();){c=BD(d.Pb(),306);e=c.i;e.c+=f.a;e.d+=f.b;c.c?VHb(c):XHb(c)}yNb(a,Csc,null)} +function qmc(a,b,c){var d,e;e=a.b;d=e.d;switch(b.g){case 1:return -d.d-c;case 2:return e.o.a+d.c+c;case 3:return e.o.b+d.a+c;case 4:return -d.b-c;default:return -1;}} +function BXc(a){var b,c,d,e,f;d=0;e=dme;if(a.b){for(b=0;b<360;b++){c=b*0.017453292519943295;zXc(a,a.d,0,0,dre,c);f=a.b.ig(a.d);if(f<e){d=c;e=f}}}zXc(a,a.d,0,0,dre,d)} +function E$c(a,b){var c,d,e,f;f=new Lqb;b.e=null;b.f=null;for(d=new olb(b.i);d.a<d.c.c.length;){c=BD(mlb(d),65);e=BD(Ohb(a.g,c.a),46);c.a=D6c(c.b);Rhb(f,c.a,e)}a.g=f} +function t$c(a,b,c){var d,e,f,g,h,i;e=b-a.e;f=e/a.d.c.length;g=0;for(i=new olb(a.d);i.a<i.c.c.length;){h=BD(mlb(i),443);d=a.b-h.b+c;_Zc(h,h.e+g*f,h.f);XZc(h,f,d);++g}} +function YBd(a){var b;a.f.qj();if(a.b!=-1){++a.b;b=a.f.d[a.a];if(a.b<b.i){return}++a.a}for(;a.a<a.f.d.length;++a.a){b=a.f.d[a.a];if(!!b&&b.i!=0){a.b=0;return}}a.b=-1} +function j0d(a,b){var c,d,e;e=b.c.length;c=l0d(a,e==0?'':(tCb(0,b.c.length),GD(b.c[0])));for(d=1;d<e&&!!c;++d){c=BD(c,49).oh((tCb(d,b.c.length),GD(b.c[d])))}return c} +function rEc(a,b){var c,d;for(d=new olb(b);d.a<d.c.c.length;){c=BD(mlb(d),10);a.c[c.c.p][c.p].a=Aub(a.i);a.c[c.c.p][c.p].d=Edb(a.c[c.c.p][c.p].a);a.c[c.c.p][c.p].b=1}} +function _dd(a,b){var c,d,e,f;f=0;for(d=new olb(a);d.a<d.c.c.length;){c=BD(mlb(d),157);f+=$wnd.Math.pow(red(c)*qed(c)-b,2)}e=$wnd.Math.sqrt(f/(a.c.length-1));return e} +function LHc(a,b,c,d){var e,f,g;f=GHc(a,b,c,d);g=MHc(a,f);bIc(a,b,c,d);yHc(a.b);mmb();Okb(f,new lIc(a));e=MHc(a,f);bIc(a,c,b,d);yHc(a.b);return new vgd(meb(g),meb(e))} +function cJc(a,b,c){var d,e;Odd(c,'Interactive node placement',1);a.a=BD(vNb(b,(wtc(),otc)),304);for(e=new olb(b.b);e.a<e.c.c.length;){d=BD(mlb(e),29);bJc(a,d)}Qdd(c)} +function MVc(a,b){var c;Odd(b,'General Compactor',1);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));c=qWc(BD(hkd(a,(ZWc(),LWc)),380));c.hg(a);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd))} +function Dfd(a,b,c){var d,e;nmd(a,a.j+b,a.k+c);for(e=new Fyd((!a.a&&(a.a=new xMd(y2,a,5)),a.a));e.e!=e.i.gc();){d=BD(Dyd(e),469);ukd(d,d.a+b,d.b+c)}gmd(a,a.b+b,a.c+c)} +function vld(a,b,c,d){switch(c){case 7:return !a.e&&(a.e=new y5d(B2,a,7,4)),Sxd(a.e,b,d);case 8:return !a.d&&(a.d=new y5d(B2,a,8,5)),Sxd(a.d,b,d);}return Fkd(a,b,c,d)} +function wld(a,b,c,d){switch(c){case 7:return !a.e&&(a.e=new y5d(B2,a,7,4)),Txd(a.e,b,d);case 8:return !a.d&&(a.d=new y5d(B2,a,8,5)),Txd(a.d,b,d);}return Gkd(a,b,c,d)} +function lqd(a,b,c){var d,e,f,g,h;if(c){f=c.a.length;d=new Yge(f);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);e=Zpd(c,g.a);!!e&&drd(a,e,b)}}} +function HAd(a,b,c){var d,e,f,g,h;a.qj();f=b==null?0:tb(b);if(a.f>0){g=(f&Ohe)%a.d.length;e=wAd(a,g,f,b);if(e){h=e.ed(c);return h}}d=a.tj(f,b,c);a.c.Fc(d);return null} +function t1d(a,b){var c,d,e,f;switch(o1d(a,b)._k()){case 3:case 2:{c=OKd(b);for(e=0,f=c.i;e<f;++e){d=BD(qud(c,e),34);if($1d(q1d(a,d))==5){return d}}break}}return null} +function Qs(a){var b,c,d,e,f;if(Lp(a.f,a.b.length)){d=KC(BG,Gie,330,a.b.length*2,0,1);a.b=d;e=d.length-1;for(c=a.a;c!=a;c=c.Rd()){f=BD(c,330);b=f.d&e;f.a=d[b];d[b]=f}}} +function DJb(a,b){var c,d,e,f;f=0;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);f=$wnd.Math.max(f,d.e.a+d.b.rf().a)}c=BD(Mpb(a.b,b),124);c.n.b=0;c.a.a=f} +function MKb(a,b){var c,d,e,f;c=0;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);c=$wnd.Math.max(c,e.e.b+e.b.rf().b)}d=BD(Mpb(a.b,b),124);d.n.d=0;d.a.b=c} +function INc(a){var b,c;c=BD(vNb(a,(wtc(),Ksc)),21);b=k3c(zNc);c.Hc((Orc(),Lrc))&&d3c(b,CNc);c.Hc(Nrc)&&d3c(b,ENc);c.Hc(Erc)&&d3c(b,ANc);c.Hc(Grc)&&d3c(b,BNc);return b} +function j1c(a,b){var c;Odd(b,'Delaunay triangulation',1);c=new Rkb;Hkb(a.i,new n1c(c));Ccb(DD(vNb(a,(XNb(),VNb))))&&'null10bw';!a.e?(a.e=NCb(c)):ye(a.e,NCb(c));Qdd(b)} +function q6c(a){if(a<0){throw vbb(new Wdb('The input must be positive'))}else return a<h6c.length?Sbb(h6c[a]):$wnd.Math.sqrt(dre*a)*(y6c(a,a)/x6c(2.718281828459045,a))} +function pud(a,b){var c;if(a.ni()&&b!=null){for(c=0;c<a.i;++c){if(pb(b,a.g[c])){return true}}}else{for(c=0;c<a.i;++c){if(PD(a.g[c])===PD(b)){return true}}}return false} +function jr(a,b){if(b==null){while(a.a.Ob()){if(BD(a.a.Pb(),42).dd()==null){return true}}}else{while(a.a.Ob()){if(pb(b,BD(a.a.Pb(),42).dd())){return true}}}return false} +function zy(a,b){var c,d,e;if(b===a){return true}else if(JD(b,664)){e=BD(b,1947);return Ue((d=a.g,!d?(a.g=new vi(a)):d),(c=e.g,!c?(e.g=new vi(e)):c))}else{return false}} +function Tz(a){var b,c,d,e;b='Sz';c='ez';e=$wnd.Math.min(a.length,5);for(d=e-1;d>=0;d--){if(dfb(a[d].d,b)||dfb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a} +function Abb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a/b;if(Kje<c&&c<Ije){return c<0?$wnd.Math.ceil(c):$wnd.Math.floor(c)}}return zbb(UC(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b,false))} +function LZb(a,b){if(b==a.c.i){return a.d.i}else if(b==a.d.i){return a.c.i}else{throw vbb(new Wdb("'node' must either be the source node or target node of the edge."))}} +function C2b(a){var b,c,d,e;e=BD(vNb(a,(wtc(),xsc)),37);if(e){d=new d7c;b=Q_b(a.c.i);while(b!=e){c=b.e;b=Q_b(c);O6c(P6c(P6c(d,c.n),b.c),b.d.b,b.d.d)}return d}return w2b} +function Ldc(a){var b;b=BD(vNb(a,(wtc(),ntc)),403);MAb(LAb(new YAb(null,new Kub(b.d,16)),new Ydc),new $dc(a));MAb(JAb(new YAb(null,new Kub(b.d,16)),new aec),new cec(a))} +function woc(a,b){var c,d,e,f;e=b?U_b(a):R_b(a);for(d=new Sr(ur(e.a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);f=LZb(c,a);if(f.k==(j0b(),g0b)&&f.c!=a.c){return f}}return null} +function HDc(a){var b,c,d;for(c=new olb(a.p);c.a<c.c.c.length;){b=BD(mlb(c),10);if(b.k!=(j0b(),h0b)){continue}d=b.o.b;a.i=$wnd.Math.min(a.i,d);a.g=$wnd.Math.max(a.g,d)}} +function oEc(a,b,c){var d,e,f;for(f=new olb(b);f.a<f.c.c.length;){d=BD(mlb(f),10);a.c[d.c.p][d.p].e=false}for(e=new olb(b);e.a<e.c.c.length;){d=BD(mlb(e),10);nEc(a,d,c)}} +function WOc(a,b,c){var d,e;d=vPc(b.j,c.s,c.c)+vPc(c.e,b.s,b.c);e=vPc(c.j,b.s,b.c)+vPc(b.e,c.s,c.c);if(d==e){if(d>0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}} +function Rpd(a,b){var c,d;d=false;if(ND(b)){d=true;Qpd(a,new yC(GD(b)))}if(!d){if(JD(b,236)){d=true;Qpd(a,(c=Kcb(BD(b,236)),new TB(c)))}}if(!d){throw vbb(new vcb(Ute))}} +function IMd(a,b,c,d){var e,f,g;e=new pSd(a.e,1,10,(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd)),(f=c.c,JD(f,88)?BD(f,26):(jGd(),_Fd)),HLd(a,b),false);!d?(d=e):d.Ei(e);return d} +function T_b(a){var b,c;switch(BD(vNb(Q_b(a),(Nyc(),ixc)),420).g){case 0:b=a.n;c=a.o;return new f7c(b.a+c.a/2,b.b+c.b/2);case 1:return new g7c(a.n);default:return null;}} +function lrc(){lrc=ccb;irc=new mrc(ane,0);hrc=new mrc('LEFTUP',1);krc=new mrc('RIGHTUP',2);grc=new mrc('LEFTDOWN',3);jrc=new mrc('RIGHTDOWN',4);frc=new mrc('BALANCED',5)} +function FFc(a,b,c){var d,e,f;d=Kdb(a.a[b.p],a.a[c.p]);if(d==0){e=BD(vNb(b,(wtc(),Qsc)),15);f=BD(vNb(c,Qsc),15);if(e.Hc(c)){return -1}else if(f.Hc(b)){return 1}}return d} +function jXc(a){switch(a.g){case 1:return new XVc;case 2:return new ZVc;case 3:return new VVc;case 0:return null;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function Ikd(a,b,c){switch(b){case 1:!a.n&&(a.n=new cUd(D2,a,1,7));Uxd(a.n);!a.n&&(a.n=new cUd(D2,a,1,7));ytd(a.n,BD(c,14));return;case 2:Lkd(a,GD(c));return;}ekd(a,b,c)} +function Zkd(a,b,c){switch(b){case 3:ald(a,Edb(ED(c)));return;case 4:cld(a,Edb(ED(c)));return;case 5:dld(a,Edb(ED(c)));return;case 6:eld(a,Edb(ED(c)));return;}Ikd(a,b,c)} +function Fnd(a,b,c){var d,e,f;f=(d=new rUd,d);e=xId(f,b,null);!!e&&e.Fi();pnd(f,c);wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),f);AId(f,0);DId(f,1);CId(f,true);BId(f,true)} +function mUd(a,b){var c,d,e;c=Crb(a.g,b);if(JD(c,235)){e=BD(c,235);e.Qh()==null&&undefined;return e.Nh()}else if(JD(c,498)){d=BD(c,1938);e=d.b;return e}else{return null}} +function Ui(a,b,c,d){var e,f;Qb(b);Qb(c);f=BD(tn(a.d,b),19);Ob(!!f,'Row %s not in %s',b,a.e);e=BD(tn(a.b,c),19);Ob(!!e,'Column %s not in %s',c,a.c);return Wi(a,f.a,e.a,d)} +function JC(a,b,c,d,e,f,g){var h,i,j,k,l;k=e[f];j=f==g-1;h=j?d:0;l=LC(h,k);d!=10&&OC(GC(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i<k;++i){l[i]=JC(a,b,c,d,e,f,g)}}return l} +function Eyd(b){if(b.g==-1){throw vbb(new Ydb)}b.mj();try{b.i.$c(b.g);b.f=b.i.j;b.g<b.e&&--b.e;b.g=-1}catch(a){a=ubb(a);if(JD(a,73)){throw vbb(new Apb)}else throw vbb(a)}} +function hYb(a,b){a.b.a=$wnd.Math.min(a.b.a,b.c);a.b.b=$wnd.Math.min(a.b.b,b.d);a.a.a=$wnd.Math.max(a.a.a,b.c);a.a.b=$wnd.Math.max(a.a.b,b.d);return a.c[a.c.length]=b,true} +function nZb(a){var b,c,d,e;e=-1;d=0;for(c=new olb(a);c.a<c.c.c.length;){b=BD(mlb(c),243);if(b.c==(KAc(),HAc)){e=d==0?0:d-1;break}else d==a.c.length-1&&(e=d);d+=1}return e} +function UZc(a){var b,c,d,e;e=0;b=0;for(d=new olb(a.c);d.a<d.c.c.length;){c=BD(mlb(d),33);dld(c,a.e+e);eld(c,a.f);e+=c.g+a.b;b=$wnd.Math.max(b,c.f+a.b)}a.d=e-a.b;a.a=b-a.b} +function bEb(a){var b,c,d;for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),57);d=b.d.c;b.d.c=b.d.d;b.d.d=d;d=b.d.b;b.d.b=b.d.a;b.d.a=d;d=b.b.a;b.b.a=b.b.b;b.b.b=d}RDb(a)} +function BVb(a){var b,c,d;for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),81);d=b.g.c;b.g.c=b.g.d;b.g.d=d;d=b.g.b;b.g.b=b.g.a;b.g.a=d;d=b.e.a;b.e.a=b.e.b;b.e.b=d}sVb(a)} +function Lmc(a){var b,c,d,e,f;f=Ec(a.k);for(c=(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])),d=0,e=c.length;d<e;++d){b=c[d];if(b!=Scd&&!f.Hc(b)){return b}}return null} +function znc(a,b){var c,d;d=BD(Etb(KAb(JAb(new YAb(null,new Kub(b.j,16)),new Pnc))),11);if(d){c=BD(Ikb(d.e,0),17);if(c){return BD(vNb(c,(wtc(),Zsc)),19).a}}return yzc(a.b)} +function CCc(a,b){var c,d,e,f;for(f=new olb(b.a);f.a<f.c.c.length;){e=BD(mlb(f),10);Blb(a.d);for(d=new Sr(ur(U_b(e).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);zCc(a,e,c.d.i)}}} +function NZc(a,b){var c,d;Lkb(a.b,b);for(d=new olb(a.n);d.a<d.c.c.length;){c=BD(mlb(d),211);if(Jkb(c.c,b,0)!=-1){Lkb(c.c,b);UZc(c);c.c.c.length==0&&Lkb(a.n,c);break}}HZc(a)} +function $Zc(a,b){var c,d,e,f,g;g=a.f;e=0;f=0;for(d=new olb(a.a);d.a<d.c.c.length;){c=BD(mlb(d),187);OZc(c,a.e,g);KZc(c,b);f=$wnd.Math.max(f,c.r);g+=c.d+a.c;e=g}a.d=f;a.b=e} +function hVc(a){var b,c;c=$sd(a);if(Qq(c)){return null}else{b=(Qb(c),BD(mr(new Sr(ur(c.a.Kc(),new Sq))),79));return atd(BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82))}} +function XId(a){var b;if(!a.o){b=a.Lj();b?(a.o=new dYd(a,a,null)):a.rk()?(a.o=new uVd(a,null)):$1d(q1d((O6d(),M6d),a))==1?(a.o=new nYd(a)):(a.o=new sYd(a,null))}return a.o} +function w6d(a,b,c,d){var e,f,g,h,i;if(c.mh(b)){e=(g=b,!g?null:BD(d,49).xh(g));if(e){i=c.ah(b);h=b.t;if(h>1||h==-1){f=BD(i,15);e.Wb(t6d(a,f))}else{e.Wb(s6d(a,BD(i,56)))}}}} +function Zbb(b,c,d,e){Ybb();var f=Wbb;$moduleName=c;$moduleBase=d;tbb=e;function g(){for(var a=0;a<f.length;a++){f[a]()}} +if(b){try{Ihe(g)()}catch(a){b(c,a)}}else{Ihe(g)()}} +function Kgc(a){var b,c,d,e,f;for(d=new nib((new eib(a.b)).a);d.b;){c=lib(d);b=BD(c.cd(),10);f=BD(BD(c.dd(),46).a,10);e=BD(BD(c.dd(),46).b,8);P6c(X6c(b.n),P6c(R6c(f.n),e))}} +function llc(a){switch(BD(vNb(a.b,(Nyc(),Vwc)),375).g){case 1:MAb(NAb(LAb(new YAb(null,new Kub(a.d,16)),new Glc),new Ilc),new Klc);break;case 2:nlc(a);break;case 0:mlc(a);}} +function KXc(a,b,c){var d;Odd(c,'Straight Line Edge Routing',1);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd));d=BD(hkd(b,(MUc(),LUc)),33);LXc(a,d);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd))} +function i8c(){i8c=ccb;h8c=new j8c('V_TOP',0);g8c=new j8c('V_CENTER',1);f8c=new j8c('V_BOTTOM',2);d8c=new j8c('H_LEFT',3);c8c=new j8c('H_CENTER',4);e8c=new j8c('H_RIGHT',5)} +function gLd(a){var b;if((a.Db&64)!=0)return mKd(a);b=new Jfb(mKd(a));b.a+=' (abstract: ';Ffb(b,(a.Bb&256)!=0);b.a+=', interface: ';Ffb(b,(a.Bb&512)!=0);b.a+=')';return b.a} +function l3d(a,b,c,d){var e,f,g,h;if(oid(a.e)){e=b.ak();h=b.dd();f=c.dd();g=H2d(a,1,e,h,f,e.$j()?M2d(a,e,f,JD(e,99)&&(BD(e,18).Bb&Tje)!=0):-1,true);d?d.Ei(g):(d=g)}return d} +function kz(a){var b;if(a.c==null){b=PD(a.b)===PD(iz)?null:a.b;a.d=b==null?Xhe:MD(b)?nz(FD(b)):ND(b)?Vie:hdb(rb(b));a.a=a.a+': '+(MD(b)?mz(FD(b)):b+'');a.c='('+a.d+') '+a.a}} +function Wgb(a,b){this.e=a;if(Bbb(xbb(b,-4294967296),0)){this.d=1;this.a=OC(GC(WD,1),oje,25,15,[Tbb(b)])}else{this.d=2;this.a=OC(GC(WD,1),oje,25,15,[Tbb(b),Tbb(Obb(b,32))])}} +function yrb(){function b(){try{return (new Map).entries().next().done}catch(a){return false}} +if(typeof Map===Nhe&&Map.prototype.entries&&b()){return Map}else{return zrb()}} +function VPc(a,b){var c,d,e,f;f=new Bib(a.e,0);c=0;while(f.b<f.d.gc()){d=Edb((sCb(f.b<f.d.gc()),ED(f.d.Xb(f.c=f.b++))));e=d-b;if(e>Oqe){return c}else e>-1.0E-6&&++c}return c} +function PQd(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=lid(a.b,a,-4,c));!!b&&(c=kid(b,a,-4,c));c=GQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function SQd(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=lid(a.f,a,-1,c));!!b&&(c=kid(b,a,-1,c));c=IQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,b,b))} +function E9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} +function I9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} +function qEc(a,b,c){var d,e;d=a.c[b.c.p][b.p];e=a.c[c.c.p][c.p];if(d.a!=null&&e.a!=null){return Ddb(d.a,e.a)}else if(d.a!=null){return -1}else if(e.a!=null){return 1}return 0} +function zqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new Crd(a);Aqd(d.a,e)}}} +function Qqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new lrd(a);nqd(d.a,e)}}} +function eFd(b){var c;if(b!=null&&b.length>0&&bfb(b,b.length-1)==33){try{c=PEd(qfb(b,0,b.length-1));return c.e==null}catch(a){a=ubb(a);if(!JD(a,32))throw vbb(a)}}return false} +function h3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,3,d,null,f,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,1,d,d.zj(),f,-1,true);c?c.Ei(e):(c=e);return c} +function Vee(){var a,b,c;b=0;for(a=0;a<'X'.length;a++){c=Uee((BCb(a,'X'.length),'X'.charCodeAt(a)));if(c==0)throw vbb(new mde('Unknown Option: '+'X'.substr(a)));b|=c}return b} +function mZb(a,b,c){var d,e,f;d=Q_b(b);e=a_b(d);f=new H0b;F0b(f,b);switch(c.g){case 1:G0b(f,Wcd(Zcd(e)));break;case 2:G0b(f,Zcd(e));}yNb(f,(Nyc(),Uxc),ED(vNb(a,Uxc)));return f} +function U9b(a){var b,c;b=BD(Rr(new Sr(ur(R_b(a.a).a.Kc(),new Sq))),17);c=BD(Rr(new Sr(ur(U_b(a.a).a.Kc(),new Sq))),17);return Ccb(DD(vNb(b,(wtc(),ltc))))||Ccb(DD(vNb(c,ltc)))} +function Xjc(){Xjc=ccb;Tjc=new Yjc('ONE_SIDE',0);Vjc=new Yjc('TWO_SIDES_CORNER',1);Wjc=new Yjc('TWO_SIDES_OPPOSING',2);Ujc=new Yjc('THREE_SIDES',3);Sjc=new Yjc('FOUR_SIDES',4)} +function jkc(a,b,c,d,e){var f,g;f=BD(GAb(JAb(b.Oc(),new _kc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);g=BD(Si(a.b,c,d),15);e==0?g.Wc(0,f):g.Gc(f)} +function KDc(a,b){var c,d,e,f,g;for(f=new olb(b.a);f.a<f.c.c.length;){e=BD(mlb(f),10);for(d=new Sr(ur(R_b(e).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);g=c.c.i.p;a.n[g]=a.n[g]-1}}} +function cnc(a,b){var c,d,e,f,g;for(f=new olb(b.d);f.a<f.c.c.length;){e=BD(mlb(f),101);g=BD(Ohb(a.c,e),112).o;for(d=new Gqb(e.b);d.a<d.c.a.length;){c=BD(Fqb(d),61);ojc(e,c,g)}}} +function HJc(a){var b,c;for(c=new olb(a.e.b);c.a<c.c.c.length;){b=BD(mlb(c),29);YJc(a,b)}MAb(JAb(LAb(LAb(new YAb(null,new Kub(a.e.b,16)),new YKc),new tLc),new vLc),new xLc(a))} +function Qwd(a,b){if(!b){return false}else{if(a.Di(b)){return false}if(!a.i){if(JD(b,143)){a.i=BD(b,143);return true}else{a.i=new Hxd;return a.i.Ei(b)}}else{return a.i.Ei(b)}}} +function B9d(a){a=Qge(a,true);if(dfb(kse,a)||dfb('1',a)){return Bcb(),Acb}else if(dfb(lse,a)||dfb('0',a)){return Bcb(),zcb}throw vbb(new n8d("Invalid boolean value: '"+a+"'"))} +function Kd(a,b,c){var d,e,f;for(e=a.vc().Kc();e.Ob();){d=BD(e.Pb(),42);f=d.cd();if(PD(b)===PD(f)||b!=null&&pb(b,f)){if(c){d=new pjb(d.cd(),d.dd());e.Qb()}return d}}return null} +function dKb(a){$Jb();var b,c,d;if(!a.B.Hc((Idd(),Add))){return}d=a.f.i;b=new K6c(a.a.c);c=new p0b;c.b=b.c-d.c;c.d=b.d-d.d;c.c=d.c+d.b-(b.c+b.b);c.a=d.d+d.a-(b.d+b.a);a.e.Ff(c)} +function LNb(a,b,c,d){var e,f,g;g=$wnd.Math.min(c,ONb(BD(a.b,65),b,c,d));for(f=new olb(a.a);f.a<f.c.c.length;){e=BD(mlb(f),221);e!=b&&(g=$wnd.Math.min(g,LNb(e,b,g,d)))}return g} +function WZb(a){var b,c,d,e;e=KC(OQ,nie,193,a.b.c.length,0,2);d=new Bib(a.b,0);while(d.b<d.d.gc()){b=(sCb(d.b<d.d.gc()),BD(d.d.Xb(d.c=d.b++),29));c=d.b-1;e[c]=l_b(b.a)}return e} +function K3b(a,b,c,d,e){var f,g,h,i;g=eLb(dLb(iLb(H3b(c)),d),C3b(a,c,e));for(i=Y_b(a,c).Kc();i.Ob();){h=BD(i.Pb(),11);if(b[h.p]){f=b[h.p].i;Ekb(g.d,new BLb(f,bLb(g,f)))}}cLb(g)} +function sic(a,b){this.f=new Lqb;this.b=new Lqb;this.j=new Lqb;this.a=a;this.c=b;this.c>0&&ric(this,this.c-1,(Ucd(),zcd));this.c<this.a.length-1&&ric(this,this.c+1,(Ucd(),Tcd))} +function SEc(a){a.length>0&&a[0].length>0&&(this.c=Ccb(DD(vNb(Q_b(a[0][0]),(wtc(),Rsc)))));this.a=KC(CX,nie,2018,a.length,0,2);this.b=KC(FX,nie,2019,a.length,0,2);this.d=new ss} +function tKc(a){if(a.c.length==0){return false}if((tCb(0,a.c.length),BD(a.c[0],17)).c.i.k==(j0b(),g0b)){return true}return FAb(NAb(new YAb(null,new Kub(a,16)),new wKc),new yKc)} +function rRc(a,b,c){Odd(c,'Tree layout',1);H2c(a.b);K2c(a.b,(yRc(),uRc),uRc);K2c(a.b,vRc,vRc);K2c(a.b,wRc,wRc);K2c(a.b,xRc,xRc);a.a=F2c(a.b,b);sRc(a,b,Udd(c,1));Qdd(c);return b} +function HXc(a,b){var c,d,e,f,g,h,i;h=gVc(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new olb(h);d.a<d.c.c.length;){c=BD(mlb(d),33);e+=HXc(a,c)}return $wnd.Math.max(e,g)} +function dcd(){dcd=ccb;ccd=new gcd(ole,0);bcd=new gcd('FREE',1);acd=new gcd('FIXED_SIDE',2);Zbd=new gcd('FIXED_ORDER',3);_bd=new gcd('FIXED_RATIO',4);$bd=new gcd('FIXED_POS',5)} +function c1d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Cwe));for(d=1;d<(O6d(),N6d).length;++d){if(dfb(N6d[d],e)){return d}}}return 0} +function Qlb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d<e;++d){b=c[d];uwb(f,''+b)}return !f.a?f.c:f.e.length==0?f.a.a:f.a.a+(''+f.e)} +function Wlb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d<e;++d){b=c[d];uwb(f,''+b)}return !f.a?f.c:f.e.length==0?f.a.a:f.a.a+(''+f.e)} +function Md(a){var b,c,d;d=new xwb(She,'{','}');for(c=a.vc().Kc();c.Ob();){b=BD(c.Pb(),42);uwb(d,Nd(a,b.cd())+'='+Nd(a,b.dd()))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)} +function EGb(a){var b,c,d,e;while(!akb(a.o)){c=BD(fkb(a.o),46);d=BD(c.a,121);b=BD(c.b,213);e=xFb(b,d);if(b.e==d){NFb(e.g,b);d.e=e.e+b.a}else{NFb(e.b,b);d.e=e.e-b.a}Ekb(a.e.a,d)}} +function F6b(a,b){var c,d,e;c=null;for(e=BD(b.Kb(a),20).Kc();e.Ob();){d=BD(e.Pb(),17);if(!c){c=d.c.i==a?d.d.i:d.c.i}else{if((d.c.i==a?d.d.i:d.c.i)!=c){return false}}}return true} +function uPc(a,b){var c,d,e,f,g;c=WNc(a,false,b);for(e=new olb(c);e.a<e.c.c.length;){d=BD(mlb(e),129);d.d==0?(BOc(d,null),COc(d,null)):(f=d.a,g=d.b,BOc(d,g),COc(d,f),undefined)}} +function qQc(a){var b,c;b=new j3c;d3c(b,cQc);c=BD(vNb(a,(wtc(),Ksc)),21);c.Hc((Orc(),Nrc))&&d3c(b,gQc);c.Hc(Erc)&&d3c(b,dQc);c.Hc(Lrc)&&d3c(b,fQc);c.Hc(Grc)&&d3c(b,eQc);return b} +function Xac(a){var b,c,d,e;Wac(a);for(c=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);d=b.c.i==a;e=d?b.d:b.c;d?RZb(b,null):QZb(b,null);yNb(b,(wtc(),ctc),e);_ac(a,e.i)}} +function wmc(a,b,c,d){var e,f;f=b.i;e=c[f.g][a.d[f.g]];switch(f.g){case 1:e-=d+b.j.b;b.g.b=e;break;case 3:e+=d;b.g.b=e;break;case 4:e-=d+b.j.a;b.g.a=e;break;case 2:e+=d;b.g.a=e;}} +function aVc(a){var b,c,d;for(c=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));c.e!=c.i.gc();){b=BD(Dyd(c),33);d=$sd(b);if(!Qr(new Sr(ur(d.a.Kc(),new Sq)))){return b}}return null} +function Cod(){var a;if(yod)return BD(nUd((yFd(),xFd),yte),2016);a=BD(JD(Phb((yFd(),xFd),yte),555)?Phb(xFd,yte):new Bod,555);yod=true;zod(a);Aod(a);Tnd(a);Shb(xFd,yte,a);return a} +function t3d(a,b,c){var d,e;if(a.j==0)return c;e=BD(LLd(a,b,c),72);d=c.ak();if(!d.Ij()||!a.a.rl(d)){throw vbb(new hz("Invalid entry feature '"+d.Hj().zb+'.'+d.ne()+"'"))}return e} +function Qi(a,b){var c,d,e,f,g,h,i,j;for(h=a.a,i=0,j=h.length;i<j;++i){g=h[i];for(d=g,e=0,f=d.length;e<f;++e){c=d[e];if(PD(b)===PD(c)||b!=null&&pb(b,c)){return true}}}return false} +function qhb(a){var b,c,d;if(ybb(a,0)>=0){c=Abb(a,Jje);d=Hbb(a,Jje)}else{b=Pbb(a,1);c=Abb(b,500000000);d=Hbb(b,500000000);d=wbb(Nbb(d,1),xbb(a,1))}return Mbb(Nbb(d,32),xbb(c,Yje))} +function oQb(a,b,c){var d,e;d=(sCb(b.b!=0),BD(Nsb(b,b.a.a),8));switch(c.g){case 0:d.b=0;break;case 2:d.b=a.f;break;case 3:d.a=0;break;default:d.a=a.g;}e=Jsb(b,0);Vsb(e,d);return b} +function pmc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=umc(g,i.d[g.g],c);e=P6c(R6c(f.n),f.a);switch(f.j.g){case 1:case 3:h.a+=e.a;break;case 2:case 4:h.b+=e.b;}Gsb(d,h,d.c.b,d.c)} +function yJc(a,b,c){var d,e,f,g;g=Jkb(a.e,b,0);f=new zJc;f.b=c;d=new Bib(a.e,g);while(d.b<d.d.gc()){e=(sCb(d.b<d.d.gc()),BD(d.d.Xb(d.c=d.b++),10));e.p=c;Ekb(f.e,e);uib(d)}return f} +function sYc(a,b,c,d){var e,f,g,h,i;e=null;f=0;for(h=new olb(b);h.a<h.c.c.length;){g=BD(mlb(h),33);i=g.i+g.g;if(a<g.j+g.f+d){!e?(e=g):c.i-i<c.i-f&&(e=g);f=e.i+e.g}}return !e?0:f+d} +function tYc(a,b,c,d){var e,f,g,h,i;f=null;e=0;for(h=new olb(b);h.a<h.c.c.length;){g=BD(mlb(h),33);i=g.j+g.f;if(a<g.i+g.g+d){!f?(f=g):c.j-i<c.j-e&&(f=g);e=f.j+f.f}}return !f?0:e+d} +function mA(a){var b,c,d;b=false;d=a.b.c.length;for(c=0;c<d;c++){if(nA(BD(Ikb(a.b,c),434))){if(!b&&c+1<d&&nA(BD(Ikb(a.b,c+1),434))){b=true;BD(Ikb(a.b,c),434).a=true}}else{b=false}}} +function Ahb(a,b,c,d,e){var f,g;f=0;for(g=0;g<e;g++){f=wbb(f,Qbb(xbb(b[g],Yje),xbb(d[g],Yje)));a[g]=Tbb(f);f=Obb(f,32)}for(;g<c;g++){f=wbb(f,xbb(b[g],Yje));a[g]=Tbb(f);f=Obb(f,32)}} +function Jhb(a,b){Dhb();var c,d;d=(Hgb(),Cgb);c=a;for(;b>1;b>>=1){(b&1)!=0&&(d=Ogb(d,c));c.d==1?(c=Ogb(c,c)):(c=new Xgb(Lhb(c.a,c.d,KC(WD,oje,25,c.d<<1,15,1))))}d=Ogb(d,c);return d} +function zub(){zub=ccb;var a,b,c,d;wub=KC(UD,Vje,25,25,15,1);xub=KC(UD,Vje,25,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){xub[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){wub[a]=c;c*=0.5}} +function S1b(a){var b,c;if(Ccb(DD(hkd(a,(Nyc(),fxc))))){for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);if(Qld(b)){if(Ccb(DD(hkd(b,gxc)))){return true}}}}return false} +function kjc(a,b){var c,d,e;if(Qqb(a.f,b)){b.b=a;d=b.c;Jkb(a.j,d,0)!=-1||Ekb(a.j,d);e=b.d;Jkb(a.j,e,0)!=-1||Ekb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new vjc(a));qjc(a.i,c)}}} +function rmc(a){var b,c,d,e,f;c=a.c.d;d=c.j;e=a.d.d;f=e.j;if(d==f){return c.p<e.p?0:1}else if(Xcd(d)==f){return 0}else if(Vcd(d)==f){return 1}else{b=a.b;return uqb(b.b,Xcd(d))?0:1}} +function lzc(){lzc=ccb;jzc=new nzc(Aqe,0);hzc=new nzc('LONGEST_PATH',1);fzc=new nzc('COFFMAN_GRAHAM',2);gzc=new nzc(Tne,3);kzc=new nzc('STRETCH_WIDTH',4);izc=new nzc('MIN_WIDTH',5)} +function E3c(a){var b;this.d=new Lqb;this.c=a.c;this.e=a.d;this.b=a.b;this.f=new jgd(a.e);this.a=a.a;!a.f?(this.g=(b=BD(gdb(O3),9),new xqb(b,BD(_Bb(b,b.length),9),0))):(this.g=a.f)} +function grd(a,b){var c,d,e,f,g,h;e=a;g=$pd(e,'layoutOptions');!g&&(g=$pd(e,Dte));if(g){h=g;d=null;!!h&&(d=(f=$B(h,KC(ZI,nie,2,0,6,1)),new mC(h,f)));if(d){c=new Drd(h,b);reb(d,c)}}} +function atd(a){if(JD(a,239)){return BD(a,33)}else if(JD(a,186)){return mpd(BD(a,118))}else if(!a){throw vbb(new Heb(gue))}else{throw vbb(new cgb('Only support nodes and ports.'))}} +function CA(a,b,c,d){if(b>=0&&dfb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return tA(a,c,d)}if(b>=0&&dfb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return tA(a,c,d)}return tA(a,c,d)} +function tjc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new olb(a.d);d.a<d.c.c.length;){c=BD(mlb(d),70);e=c.n;e.a=f;a.i==(Ucd(),Acd)?(e.b=g+a.j.b-c.o.b):(e.b=g);P6c(e,b);f+=c.o.a+a.e}} +function Odd(a,b,c){if(a.b){throw vbb(new Zdb('The task is already done.'))}else if(a.p!=null){return false}else{a.p=b;a.r=c;a.k&&(a.o=(Zfb(),Ibb(Cbb(Date.now()),_ie)));return true}} +function hsd(a){var b,c,d,e,f,g,h;h=new eC;c=a.tg();e=c!=null;e&&Upd(h,Vte,a.tg());d=a.ne();f=d!=null;f&&Upd(h,fue,a.ne());b=a.sg();g=b!=null;g&&Upd(h,'description',a.sg());return h} +function uId(a,b,c){var d,e,f;f=a.q;a.q=b;if((a.Db&4)!=0&&(a.Db&1)==0){e=new nSd(a,1,9,f,b);!c?(c=e):c.Ei(e)}if(!b){!!a.r&&(c=a.nk(null,c))}else{d=b.c;d!=a.r&&(c=a.nk(d,c))}return c} +function IYd(a,b,c){var d,e,f,g,h;c=(h=b,kid(h,a.e,-1-a.c,c));g=AYd(a.a);for(f=(d=new nib((new eib(g.a)).a),new ZYd(d));f.a.b;){e=BD(lib(f.a).cd(),87);c=QQd(e,MQd(e,a.a),c)}return c} +function JYd(a,b,c){var d,e,f,g,h;c=(h=b,lid(h,a.e,-1-a.c,c));g=AYd(a.a);for(f=(d=new nib((new eib(g.a)).a),new ZYd(d));f.a.b;){e=BD(lib(f.a).cd(),87);c=QQd(e,MQd(e,a.a),c)}return c} +function jhb(a,b,c,d){var e,f,g;if(d==0){$fb(b,0,a,c,a.length-c)}else{g=32-d;a[a.length-1]=0;for(f=a.length-1;f>c;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<<d}}for(e=0;e<c;e++){a[e]=0}} +function LJb(a){var b,c,d,e,f;b=0;c=0;for(f=a.Kc();f.Ob();){d=BD(f.Pb(),111);b=$wnd.Math.max(b,d.d.b);c=$wnd.Math.max(c,d.d.c)}for(e=a.Kc();e.Ob();){d=BD(e.Pb(),111);d.d.b=b;d.d.c=c}} +function TKb(a){var b,c,d,e,f;c=0;b=0;for(f=a.Kc();f.Ob();){d=BD(f.Pb(),111);c=$wnd.Math.max(c,d.d.d);b=$wnd.Math.max(b,d.d.a)}for(e=a.Kc();e.Ob();){d=BD(e.Pb(),111);d.d.d=c;d.d.a=b}} +function rpc(a,b){var c,d,e,f;f=new Rkb;e=0;d=b.Kc();while(d.Ob()){c=meb(BD(d.Pb(),19).a+e);while(c.a<a.f&&!Voc(a,c.a)){c=meb(c.a+1);++e}if(c.a>=a.f){break}f.c[f.c.length]=c}return f} +function sfd(a){var b,c,d,e;b=null;for(e=new olb(a.wf());e.a<e.c.c.length;){d=BD(mlb(e),181);c=new J6c(d.qf().a,d.qf().b,d.rf().a,d.rf().b);!b?(b=c):H6c(b,c)}!b&&(b=new I6c);return b} +function Fkd(a,b,c,d){var e,f;if(c==1){return !a.n&&(a.n=new cUd(D2,a,1,7)),Sxd(a.n,b,d)}return f=BD(XKd((e=BD(Ajd(a,16),26),!e?a.zh():e),c),66),f.Nj().Qj(a,yjd(a),c-aLd(a.zh()),b,d)} +function iud(a,b,c){var d,e,f,g,h;d=c.gc();a.qi(a.i+d);h=a.i-b;h>0&&$fb(a.g,b,a.g,b+d,h);g=c.Kc();a.i+=d;for(e=0;e<d;++e){f=g.Pb();mud(a,b,a.oi(b,f));a.bi(b,f);a.ci();++b}return d!=0} +function xId(a,b,c){var d;if(b!=a.q){!!a.q&&(c=lid(a.q,a,-10,c));!!b&&(c=kid(b,a,-10,c));c=uId(a,b,c)}else if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,9,b,b);!c?(c=d):c.Ei(d)}return c} +function Yj(a,b,c,d){Mb((c&oie)==0,'flatMap does not support SUBSIZED characteristic');Mb((c&4)==0,'flatMap does not support SORTED characteristic');Qb(a);Qb(b);return new jk(a,c,d,b)} +function Qy(a,b){vCb(b,'Cannot suppress a null exception.');mCb(b!=a,'Exception can not suppress itself.');if(a.i){return}a.k==null?(a.k=OC(GC(_I,1),nie,78,0,[b])):(a.k[a.k.length]=b)} +function oA(a,b,c,d){var e,f,g,h,i,j;g=c.length;f=0;e=-1;j=sfb(a.substr(b),(ntb(),ltb));for(h=0;h<g;++h){i=c[h].length;if(i>f&&nfb(j,sfb(c[h],ltb))){e=h;f=i}}e>=0&&(d[0]=b+f);return e} +function MIb(a,b){var c;c=NIb(a.b.Hf(),b.b.Hf());if(c!=0){return c}switch(a.b.Hf().g){case 1:case 2:return beb(a.b.sf(),b.b.sf());case 3:case 4:return beb(b.b.sf(),a.b.sf());}return 0} +function iRb(a){var b,c,d;d=a.e.c.length;a.a=IC(WD,[nie,oje],[48,25],15,[d,d],2);for(c=new olb(a.c);c.a<c.c.c.length;){b=BD(mlb(c),282);a.a[b.c.b][b.d.b]+=BD(vNb(b,(wSb(),oSb)),19).a}} +function H1c(a,b,c){Odd(c,'Grow Tree',1);a.b=b.f;if(Ccb(DD(vNb(b,(XNb(),VNb))))){a.c=new tOb;D1c(a,null)}else{a.c=new tOb}a.a=false;F1c(a,b.f);yNb(b,WNb,(Bcb(),a.a?true:false));Qdd(c)} +function Umd(a,b){var c,d,e,f,g;if(a==null){return null}else{g=KC(TD,$ie,25,2*b,15,1);for(d=0,e=0;d<b;++d){c=a[d]>>4&15;f=a[d]&15;g[e++]=Qmd[c];g[e++]=Qmd[f]}return zfb(g,0,g.length)}} +function j3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,4,d,f,null,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,d.Kj()?2:1,d,f,d.zj(),-1,true);c?c.Ei(e):(c=e);return c} +function wfb(a){var b,c;if(a>=Tje){b=Uje+(a-Tje>>10&1023)&aje;c=56320+(a-Tje&1023)&aje;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&aje)}} +function bKb(a,b){$Jb();var c,d,e,f;e=BD(BD(Qc(a.r,b),21),84);if(e.gc()>=2){d=BD(e.Kc().Pb(),111);c=a.u.Hc((rcd(),mcd));f=a.u.Hc(qcd);return !d.a&&!c&&(e.gc()==2||f)}else{return false}} +function IVc(a,b,c,d,e){var f,g,h;f=JVc(a,b,c,d,e);h=false;while(!f){AVc(a,e,true);h=true;f=JVc(a,b,c,d,e)}h&&AVc(a,e,false);g=dVc(e);if(g.c.length!=0){!!a.d&&a.d.lg(g);IVc(a,e,c,d,g)}} +function Mad(){Mad=ccb;Kad=new Nad(ane,0);Iad=new Nad('DIRECTED',1);Lad=new Nad('UNDIRECTED',2);Gad=new Nad('ASSOCIATION',3);Jad=new Nad('GENERALIZATION',4);Had=new Nad('DEPENDENCY',5)} +function kfd(a,b){var c;if(!mpd(a)){throw vbb(new Zdb(Sse))}c=mpd(a);switch(b.g){case 1:return -(a.j+a.f);case 2:return a.i-c.g;case 3:return a.j-c.f;case 4:return -(a.i+a.g);}return 0} +function cub(a,b){var c,d;uCb(b);d=a.b.c.length;Ekb(a.b,b);while(d>0){c=d;d=(d-1)/2|0;if(a.a.ue(Ikb(a.b,d),b)<=0){Nkb(a.b,c,b);return true}Nkb(a.b,c,Ikb(a.b,d))}Nkb(a.b,d,b);return true} +function BHb(a,b,c,d){var e,f;e=0;if(!c){for(f=0;f<sHb;f++){e=$wnd.Math.max(e,qHb(a.a[f][b.g],d))}}else{e=qHb(a.a[c.g][b.g],d)}b==(gHb(),eHb)&&!!a.b&&(e=$wnd.Math.max(e,a.b.a));return e} +function knc(a,b){var c,d,e,f,g,h;e=a.i;f=b.i;if(!e||!f){return false}if(e.i!=f.i||e.i==(Ucd(),zcd)||e.i==(Ucd(),Tcd)){return false}g=e.g.a;c=g+e.j.a;h=f.g.a;d=h+f.j.a;return g<=d&&c>=h} +function Tpd(a,b,c,d){var e;e=false;if(ND(d)){e=true;Upd(b,c,GD(d))}if(!e){if(KD(d)){e=true;Tpd(a,b,c,d)}}if(!e){if(JD(d,236)){e=true;Spd(b,c,BD(d,236))}}if(!e){throw vbb(new vcb(Ute))}} +function W0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),K6d).length;++d){if(dfb(K6d[d],e)){return d}}}}return 0} +function X0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),L6d).length;++d){if(dfb(L6d[d],e)){return d}}}}return 0} +function Ve(a,b){var c,d,e,f;uCb(b);f=a.a.gc();if(f<b.gc()){for(c=a.a.ec().Kc();c.Ob();){d=c.Pb();b.Hc(d)&&c.Qb()}}else{for(e=b.Kc();e.Ob();){d=e.Pb();a.a.Bc(d)!=null}}return f!=a.a.gc()} +function bYb(a){var b,c;c=R6c(l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a])));b=a.i.d;switch(a.j.g){case 1:c.b-=b.d;break;case 2:c.a+=b.c;break;case 3:c.b+=b.a;break;case 4:c.a-=b.b;}return c} +function P9b(a){var b;b=(I9b(),BD(Rr(new Sr(ur(R_b(a).a.Kc(),new Sq))),17).c.i);while(b.k==(j0b(),g0b)){yNb(b,(wtc(),Tsc),(Bcb(),true));b=BD(Rr(new Sr(ur(R_b(b).a.Kc(),new Sq))),17).c.i}} +function bIc(a,b,c,d){var e,f,g,h;h=CHc(b,d);for(g=h.Kc();g.Ob();){e=BD(g.Pb(),11);a.d[e.p]=a.d[e.p]+a.c[c.p]}h=CHc(c,d);for(f=h.Kc();f.Ob();){e=BD(f.Pb(),11);a.d[e.p]=a.d[e.p]-a.c[b.p]}} +function Efd(a,b,c){var d,e;for(e=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);bld(d,d.i+b,d.j+c)}reb((!a.b&&(a.b=new cUd(B2,a,12,3)),a.b),new Kfd(b,c))} +function Mwb(a,b,c,d){var e,f;f=b;e=f.d==null||a.a.ue(c.d,f.d)>0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.ue(c.d,f.d)>0?1:0}f.a[e]=d;d.b=c.b;d.a[0]=c.a[0];d.a[1]=c.a[1];c.a[0]=null;c.a[1]=null} +function ucd(a){rcd();var b,c;b=qqb(ncd,OC(GC(E1,1),Kie,273,0,[pcd]));if(Ox(Cx(b,a))>1){return false}c=qqb(mcd,OC(GC(E1,1),Kie,273,0,[lcd,qcd]));if(Ox(Cx(c,a))>1){return false}return true} +function fod(a,b){var c;c=Phb((yFd(),xFd),a);JD(c,498)?Shb(xFd,a,new bUd(this,b)):Shb(xFd,a,this);bod(this,b);if(b==(LFd(),KFd)){this.wb=BD(this,1939);BD(b,1941)}else{this.wb=(NFd(),MFd)}} +function lZd(b){var c,d,e;if(b==null){return null}c=null;for(d=0;d<Pmd.length;++d){try{return DQd(Pmd[d],b)}catch(a){a=ubb(a);if(JD(a,32)){e=a;c=e}else throw vbb(a)}}throw vbb(new rFd(c))} +function Dpb(){Dpb=ccb;Bpb=OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat']);Cpb=OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])} +function yyb(a){var b,c,d;b=dfb(typeof(b),uke)?null:new iCb;if(!b){return}$xb();c=(d=900,d>=_ie?'error':d>=900?'warn':d>=800?'info':'log');gCb(c,a.a);!!a.b&&hCb(b,c,a.b,'Exception: ',true)} +function vNb(a,b){var c,d;d=(!a.q&&(a.q=new Lqb),Ohb(a.q,b));if(d!=null){return d}c=b.wg();JD(c,4)&&(c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a);return c} +function qUb(){qUb=ccb;lUb=new rUb('P1_CYCLE_BREAKING',0);mUb=new rUb('P2_LAYERING',1);nUb=new rUb('P3_NODE_ORDERING',2);oUb=new rUb('P4_NODE_PLACEMENT',3);pUb=new rUb('P5_EDGE_ROUTING',4)} +function SUb(a,b){var c,d,e,f,g;e=b==1?KUb:JUb;for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),103);for(g=BD(Qc(a.f.c,c),21).Kc();g.Ob();){f=BD(g.Pb(),46);Lkb(a.b.b,f.b);Lkb(a.b.a,BD(f.b,81).d)}}} +function IWb(a,b){AWb();var c;if(a.c==b.c){if(a.b==b.b||pWb(a.b,b.b)){c=mWb(a.b)?1:-1;if(a.a&&!b.a){return c}else if(!a.a&&b.a){return -c}}return beb(a.b.g,b.b.g)}else{return Kdb(a.c,b.c)}} +function y6b(a,b){var c;Odd(b,'Hierarchical port position processing',1);c=a.b;c.c.length>0&&x6b((tCb(0,c.c.length),BD(c.c[0],29)),a);c.c.length>1&&x6b(BD(Ikb(c,c.c.length-1),29),a);Qdd(b)} +function RVc(a,b){var c,d,e;if(CVc(a,b)){return true}for(d=new olb(b);d.a<d.c.c.length;){c=BD(mlb(d),33);e=hVc(c);if(BVc(a,c,e)){return true}if(PVc(a,c)-a.g<=a.a){return true}}return false} +function d0c(){d0c=ccb;c0c=(A0c(),z0c);__c=v0c;$_c=t0c;Y_c=p0c;Z_c=r0c;X_c=new q0b(8);W_c=new Osd((Y9c(),f9c),X_c);a0c=new Osd(T9c,8);b0c=x0c;T_c=k0c;U_c=m0c;V_c=new Osd(y8c,(Bcb(),false))} +function X7c(){X7c=ccb;U7c=new q0b(15);T7c=new Osd((Y9c(),f9c),U7c);W7c=new Osd(T9c,15);V7c=new Osd(D9c,meb(0));O7c=I8c;Q7c=Y8c;S7c=b9c;L7c=new Osd(r8c,pse);P7c=O8c;R7c=_8c;M7c=t8c;N7c=w8c} +function jtd(a){if((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b).i!=1||(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c).i!=1){throw vbb(new Wdb(iue))}return atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82))} +function ktd(a){if((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b).i!=1||(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c).i!=1){throw vbb(new Wdb(iue))}return btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82))} +function mtd(a){if((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b).i!=1||(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c).i!=1){throw vbb(new Wdb(iue))}return btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))} +function ltd(a){if((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b).i!=1||(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c).i!=1){throw vbb(new Wdb(iue))}return atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))} +function Dvd(a,b,c){var d,e,f;++a.j;e=a.Vi();if(b>=e||b<0)throw vbb(new qcb(lue+b+mue+e));if(c>=e||c<0)throw vbb(new qcb(nue+c+mue+e));b!=c?(d=(f=a.Ti(c),a.Hi(b,f),f)):(d=a.Oi(c));return d} +function m6d(a){var b,c,d;d=a;if(a){b=0;for(c=a.Ug();c;c=c.Ug()){if(++b>Wje){return m6d(c)}d=c;if(c==a){throw vbb(new Zdb('There is a cycle in the containment hierarchy of '+a))}}}return d} +function Fe(a){var b,c,d;d=new xwb(She,'[',']');for(c=a.Kc();c.Ob();){b=c.Pb();uwb(d,PD(b)===PD(a)?'(this Collection)':b==null?Xhe:fcb(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)} +function CVc(a,b){var c,d;d=false;if(b.gc()<2){return false}for(c=0;c<b.gc();c++){c<b.gc()-1?(d=d|BVc(a,BD(b.Xb(c),33),BD(b.Xb(c+1),33))):(d=d|BVc(a,BD(b.Xb(c),33),BD(b.Xb(0),33)))}return d} +function Ymd(a,b){var c;if(b!=a.a){c=null;!!a.a&&(c=BD(a.a,49).ih(a,4,o5,c));!!b&&(c=BD(b,49).gh(a,4,o5,c));c=Tmd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,b,b))} +function RQd(a,b){var c;if(b!=a.e){!!a.e&&QYd(AYd(a.e),a);!!b&&(!b.b&&(b.b=new RYd(new NYd)),PYd(b.b,a));c=HQd(a,b,null);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,b,b))} +function ufb(a){var b,c,d;c=a.length;d=0;while(d<c&&(BCb(d,a.length),a.charCodeAt(d)<=32)){++d}b=c;while(b>d&&(BCb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||b<c?a.substr(d,b-d):a} +function ujc(a,b){var c;c=b.o;if(fad(a.f)){a.j.a=$wnd.Math.max(a.j.a,c.a);a.j.b+=c.b;a.d.c.length>1&&(a.j.b+=a.e)}else{a.j.a+=c.a;a.j.b=$wnd.Math.max(a.j.b,c.b);a.d.c.length>1&&(a.j.a+=a.e)}} +function gkc(){gkc=ccb;dkc=OC(GC(F1,1),bne,61,0,[(Ucd(),Acd),zcd,Rcd]);ckc=OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd]);ekc=OC(GC(F1,1),bne,61,0,[Rcd,Tcd,Acd]);fkc=OC(GC(F1,1),bne,61,0,[Tcd,Acd,zcd])} +function omc(a,b,c,d){var e,f,g,h,i,j,k;g=a.c.d;h=a.d.d;if(g.j==h.j){return}k=a.b;e=g.j;i=null;while(e!=h.j){i=b==0?Xcd(e):Vcd(e);f=umc(e,k.d[e.g],c);j=umc(i,k.d[i.g],c);Dsb(d,P6c(f,j));e=i}} +function oFc(a,b,c,d){var e,f,g,h,i;g=JHc(a.a,b,c);h=BD(g.a,19).a;f=BD(g.b,19).a;if(d){i=BD(vNb(b,(wtc(),gtc)),10);e=BD(vNb(c,gtc),10);if(!!i&&!!e){mic(a.b,i,e);h+=a.b.i;f+=a.b.e}}return h>f} +function oHc(a){var b,c,d,e,f,g,h,i,j;this.a=lHc(a);this.b=new Rkb;for(c=a,d=0,e=c.length;d<e;++d){b=c[d];f=new Rkb;Ekb(this.b,f);for(h=b,i=0,j=h.length;i<j;++i){g=h[i];Ekb(f,new Tkb(g.j))}}} +function qHc(a,b,c){var d,e,f;f=0;d=c[b];if(b<c.length-1){e=c[b+1];if(a.b[b]){f=KIc(a.d,d,e);f+=NHc(a.a,d,(Ucd(),zcd));f+=NHc(a.a,e,Tcd)}else{f=IHc(a.a,d,e)}}a.c[b]&&(f+=PHc(a.a,d));return f} +function jZb(a,b,c,d,e){var f,g,h,i;i=null;for(h=new olb(d);h.a<h.c.c.length;){g=BD(mlb(h),441);if(g!=c&&Jkb(g.e,e,0)!=-1){i=g;break}}f=kZb(e);QZb(f,c.b);RZb(f,i.b);Rc(a.a,e,new BZb(f,b,c.f))} +function nic(a){while(a.g.c!=0&&a.d.c!=0){if(wic(a.g).c>wic(a.d).c){a.i+=a.g.c;yic(a.d)}else if(wic(a.d).c>wic(a.g).c){a.e+=a.d.c;yic(a.g)}else{a.i+=vic(a.g);a.e+=vic(a.d);yic(a.g);yic(a.d)}}} +function XOc(a,b,c){var d,e,f,g;f=b.q;g=b.r;new DOc((HOc(),FOc),b,f,1);new DOc(FOc,f,g,1);for(e=new olb(c);e.a<e.c.c.length;){d=BD(mlb(e),112);if(d!=f&&d!=b&&d!=g){pPc(a.a,d,b);pPc(a.a,d,g)}}} +function XQc(a,b,c,d){a.a.d=$wnd.Math.min(b,c);a.a.a=$wnd.Math.max(b,d)-a.a.d;if(b<c){a.b=0.5*(b+c);a.g=Qqe*a.b+0.9*b;a.f=Qqe*a.b+0.9*c}else{a.b=0.5*(b+d);a.g=Qqe*a.b+0.9*d;a.f=Qqe*a.b+0.9*b}} +function acb(){_bb={};!Array.isArray&&(Array.isArray=function(a){return Object.prototype.toString.call(a)==='[object Array]'});function b(){return (new Date).getTime()} +!Date.now&&(Date.now=b)} +function $Tb(a,b){var c,d;d=BD(vNb(b,(Nyc(),Vxc)),98);yNb(b,(wtc(),dtc),d);c=b.e;!!c&&(MAb(new YAb(null,new Kub(c.a,16)),new dUb(a)),MAb(LAb(new YAb(null,new Kub(c.b,16)),new fUb),new hUb(a)))} +function _$b(a){var b,c,d,e;if(gad(BD(vNb(a.b,(Nyc(),Lwc)),103))){return 0}b=0;for(d=new olb(a.a);d.a<d.c.c.length;){c=BD(mlb(d),10);if(c.k==(j0b(),h0b)){e=c.o.a;b=$wnd.Math.max(b,e)}}return b} +function c5b(a){switch(BD(vNb(a,(Nyc(),mxc)),163).g){case 1:yNb(a,mxc,(Ctc(),ztc));break;case 2:yNb(a,mxc,(Ctc(),Atc));break;case 3:yNb(a,mxc,(Ctc(),xtc));break;case 4:yNb(a,mxc,(Ctc(),ytc));}} +function yrc(){yrc=ccb;wrc=new zrc(ane,0);trc=new zrc(jle,1);xrc=new zrc(kle,2);vrc=new zrc('LEFT_RIGHT_CONSTRAINT_LOCKING',3);urc=new zrc('LEFT_RIGHT_CONNECTION_LOCKING',4);rrc=new zrc(Vne,5)} +function qRc(a,b,c){var d,e,f,g,h,i,j;h=c.a/2;f=c.b/2;d=$wnd.Math.abs(b.a-a.a);e=$wnd.Math.abs(b.b-a.b);i=1;j=1;d>h&&(i=h/d);e>f&&(j=f/e);g=$wnd.Math.min(i,j);a.a+=g*(b.a-a.a);a.b+=g*(b.b-a.b)} +function sZc(a,b,c,d,e){var f,g;g=false;f=BD(Ikb(c.b,0),33);while(yZc(a,b,f,d,e)){g=true;NZc(c,f);if(c.b.c.length==0){break}f=BD(Ikb(c.b,0),33)}c.b.c.length==0&&v$c(c.j,c);g&&a$c(b.q);return g} +function t6c(a,b){i6c();var c,d,e,f;if(b.b<2){return false}f=Jsb(b,0);c=BD(Xsb(f),8);d=c;while(f.b!=f.d.c){e=BD(Xsb(f),8);if(s6c(a,d,e)){return true}d=e}if(s6c(a,d,c)){return true}return false} +function ckd(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),bId(a.o,b,d)}return f=BD(XKd((e=BD(Ajd(a,16),26),!e?a.zh():e),c),66),f.Nj().Rj(a,yjd(a),c-aLd(a.zh()),b,d)} +function bod(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=BD(a.sb,49).ih(a,1,i5,c));!!b&&(c=BD(b,49).gh(a,1,i5,c));c=Jnd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,b,b))} +function yqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new zrd(a);hmd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new Ard(a);imd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need an end point.'))}} +function wqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new wrd(a);omd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new xrd(a);pmd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need a start point.'))}} +function pyb(a,b){var c,d,e,f,g,h,i;for(d=syb(a),f=0,h=d.length;f<h;++f){yyb(b)}i=!lyb&&a.e?lyb?null:a.d:null;while(i){for(c=syb(i),e=0,g=c.length;e<g;++e){yyb(b)}i=!lyb&&i.e?lyb?null:i.d:null}} +function j0b(){j0b=ccb;h0b=new k0b('NORMAL',0);g0b=new k0b('LONG_EDGE',1);e0b=new k0b('EXTERNAL_PORT',2);i0b=new k0b('NORTH_SOUTH_PORT',3);f0b=new k0b('LABEL',4);d0b=new k0b('BREAKING_POINT',5)} +function g4b(a){var b,c,d,e;b=false;if(wNb(a,(wtc(),Csc))){c=BD(vNb(a,Csc),83);for(e=new olb(a.j);e.a<e.c.c.length;){d=BD(mlb(e),11);if(e4b(d)){if(!b){d4b(Q_b(a));b=true}h4b(BD(c.xc(d),306))}}}} +function qec(a,b,c){var d;Odd(c,'Self-Loop routing',1);d=rec(b);RD(vNb(b,(g6c(),f6c)));MAb(NAb(JAb(JAb(LAb(new YAb(null,new Kub(b.b,16)),new uec),new wec),new yec),new Aec),new Cec(a,d));Qdd(c)} +function gsd(a){var b,c,d,e,f,g,h,i,j;j=hsd(a);c=a.e;f=c!=null;f&&Upd(j,eue,a.e);h=a.k;g=!!h;g&&Upd(j,'type',Zr(a.k));d=Fhe(a.j);e=!d;if(e){i=new wB;cC(j,Mte,i);b=new ssd(i);reb(a.j,b)}return j} +function Jv(a){var b,c,d,e;e=Kfb((Xj(a.gc(),'size'),new Vfb),123);d=true;for(c=Wm(a).Kc();c.Ob();){b=BD(c.Pb(),42);d||(e.a+=She,e);d=false;Pfb(Kfb(Pfb(e,b.cd()),61),b.dd())}return (e.a+='}',e).a} +function kD(a,b){var c,d,e;b&=63;if(b<22){c=a.l<<b;d=a.m<<b|a.l>>22-b;e=a.h<<b|a.m>>22-b}else if(b<44){c=0;d=a.l<<b-22;e=a.m<<b-22|a.l>>44-b}else{c=0;d=0;e=a.l<<b-44}return TC(c&Eje,d&Eje,e&Fje)} +function Hcb(a){Gcb==null&&(Gcb=new RegExp('^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$'));if(!Gcb.test(a)){throw vbb(new Oeb(Oje+a+'"'))}return parseFloat(a)} +function IFb(a){var b,c,d,e;b=new Rkb;c=KC(sbb,dle,25,a.a.c.length,16,1);Glb(c,c.length);for(e=new olb(a.a);e.a<e.c.c.length;){d=BD(mlb(e),121);if(!c[d.d]){b.c[b.c.length]=d;HFb(a,d,c)}}return b} +function Nmc(a,b){var c,d,e,f;f=b.b.j;a.a=KC(WD,oje,25,f.c.length,15,1);e=0;for(d=0;d<f.c.length;d++){c=(tCb(d,f.c.length),BD(f.c[d],11));c.e.c.length==0&&c.g.c.length==0?(e+=1):(e+=3);a.a[d]=e}} +function Sqc(){Sqc=ccb;Nqc=new Uqc('ALWAYS_UP',0);Mqc=new Uqc('ALWAYS_DOWN',1);Pqc=new Uqc('DIRECTION_UP',2);Oqc=new Uqc('DIRECTION_DOWN',3);Rqc=new Uqc('SMART_UP',4);Qqc=new Uqc('SMART_DOWN',5)} +function k6c(a,b){if(a<0||b<0){throw vbb(new Wdb('k and n must be positive'))}else if(b>a){throw vbb(new Wdb('k must be smaller than n'))}else return b==0||b==a?1:a==0?0:q6c(a)/(q6c(b)*q6c(a-b))} +function jfd(a,b){var c,d,e,f;c=new _ud(a);while(c.g==null&&!c.c?Uud(c):c.g==null||c.i!=0&&BD(c.g[c.i-1],47).Ob()){f=BD(Vud(c),56);if(JD(f,160)){d=BD(f,160);for(e=0;e<b.length;e++){b[e].og(d)}}}} +function fld(a){var b;if((a.Db&64)!=0)return Mkd(a);b=new Jfb(Mkd(a));b.a+=' (height: ';Bfb(b,a.f);b.a+=', width: ';Bfb(b,a.g);b.a+=', x: ';Bfb(b,a.i);b.a+=', y: ';Bfb(b,a.j);b.a+=')';return b.a} +function un(a){var b,c,d,e,f,g,h;b=new $rb;for(d=a,e=0,f=d.length;e<f;++e){c=d[e];g=Qb(c.cd());h=Xrb(b,g,Qb(c.dd()));if(h!=null){throw vbb(new Wdb('duplicate key: '+g))}}this.b=(mmb(),new iob(b))} +function Rlb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d<e;++d){b=c[d];uwb(f,String.fromCharCode(b))}return !f.a?f.c:f.e.length==0?f.a.a:f.a.a+(''+f.e)} +function SRb(){SRb=ccb;MRb=(XRb(),WRb);LRb=new Nsd(mme,MRb);meb(1);KRb=new Nsd(nme,meb(300));meb(0);PRb=new Nsd(ome,meb(0));new Tfd;QRb=new Nsd(pme,qme);new Tfd;NRb=new Nsd(rme,5);RRb=WRb;ORb=VRb} +function NUb(a,b){var c,d,e,f,g;e=b==1?KUb:JUb;for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),103);for(g=BD(Qc(a.f.c,c),21).Kc();g.Ob();){f=BD(g.Pb(),46);Ekb(a.b.b,BD(f.b,81));Ekb(a.b.a,BD(f.b,81).d)}}} +function kVd(a,b){var c;if(b!=null&&!a.c.Yj().wj(b)){c=JD(b,56)?BD(b,56).Tg().zb:hdb(rb(b));throw vbb(new Cdb(ite+a.c.ne()+"'s type '"+a.c.Yj().ne()+"' does not permit a value of type '"+c+"'"))}} +function cZb(a,b,c){var d,e;e=new Bib(a.b,0);while(e.b<e.d.gc()){d=(sCb(e.b<e.d.gc()),BD(e.d.Xb(e.c=e.b++),70));if(PD(vNb(d,(wtc(),btc)))!==PD(b)){continue}Y$b(d.n,Q_b(a.c.i),c);uib(e);Ekb(b.b,d)}} +function vdc(a,b){if(b.a){switch(BD(vNb(b.b,(wtc(),dtc)),98).g){case 0:case 1:llc(b);case 2:MAb(new YAb(null,new Kub(b.d,16)),new Idc);wkc(a.a,b);}}else{MAb(new YAb(null,new Kub(b.d,16)),new Idc)}} +function Znc(a){var b,c;c=$wnd.Math.sqrt((a.k==null&&(a.k=Soc(a,new bpc)),Edb(a.k)/(a.b*(a.g==null&&(a.g=Poc(a,new _oc)),Edb(a.g)))));b=Tbb(Cbb($wnd.Math.round(c)));b=$wnd.Math.min(b,a.f);return b} +function H0b(){z0b();n_b.call(this);this.j=(Ucd(),Scd);this.a=new d7c;new L_b;this.f=(Xj(2,Jie),new Skb(2));this.e=(Xj(4,Jie),new Skb(4));this.g=(Xj(4,Jie),new Skb(4));this.b=new Z0b(this.e,this.g)} +function j3b(a,b){var c,d;if(Ccb(DD(vNb(b,(wtc(),ltc))))){return false}d=b.c.i;if(a==(Ctc(),xtc)){if(d.k==(j0b(),f0b)){return false}}c=BD(vNb(d,(Nyc(),mxc)),163);if(c==ytc){return false}return true} +function k3b(a,b){var c,d;if(Ccb(DD(vNb(b,(wtc(),ltc))))){return false}d=b.d.i;if(a==(Ctc(),ztc)){if(d.k==(j0b(),f0b)){return false}}c=BD(vNb(d,(Nyc(),mxc)),163);if(c==Atc){return false}return true} +function L3b(a,b){var c,d,e,f,g,h,i;g=a.d;i=a.o;h=new J6c(-g.b,-g.d,g.b+i.a+g.c,g.d+i.b+g.a);for(d=b,e=0,f=d.length;e<f;++e){c=d[e];!!c&&H6c(h,c.i)}g.b=-h.c;g.d=-h.d;g.c=h.b-g.b-i.a;g.a=h.a-g.d-i.b} +function N_c(){N_c=ccb;I_c=new O_c('CENTER_DISTANCE',0);J_c=new O_c('CIRCLE_UNDERLAP',1);M_c=new O_c('RECTANGLE_UNDERLAP',2);K_c=new O_c('INVERTED_OVERLAP',3);L_c=new O_c('MINIMUM_ROOT_DISTANCE',4)} +function jde(a){hde();var b,c,d,e,f;if(a==null)return null;d=a.length;e=d*2;b=KC(TD,$ie,25,e,15,1);for(c=0;c<d;c++){f=a[c];f<0&&(f+=256);b[c*2]=gde[f>>4];b[c*2+1]=gde[f&15]}return zfb(b,0,b.length)} +function fn(a){Vm();var b,c,d;d=a.c.length;switch(d){case 0:return Um;case 1:b=BD(qr(new olb(a)),42);return ln(b.cd(),b.dd());default:c=BD(Qkb(a,KC(CK,zie,42,a.c.length,0,1)),165);return new wx(c);}} +function ITb(a){var b,c,d,e,f,g;b=new jkb;c=new jkb;Wjb(b,a);Wjb(c,a);while(c.b!=c.c){e=BD(fkb(c),37);for(g=new olb(e.a);g.a<g.c.c.length;){f=BD(mlb(g),10);if(f.e){d=f.e;Wjb(b,d);Wjb(c,d)}}}return b} +function Y_b(a,b){switch(b.g){case 1:return Nq(a.j,(z0b(),v0b));case 2:return Nq(a.j,(z0b(),t0b));case 3:return Nq(a.j,(z0b(),x0b));case 4:return Nq(a.j,(z0b(),y0b));default:return mmb(),mmb(),jmb;}} +function tic(a,b){var c,d,e;c=uic(b,a.e);d=BD(Ohb(a.g.f,c),19).a;e=a.a.c.length-1;if(a.a.c.length!=0&&BD(Ikb(a.a,e),287).c==d){++BD(Ikb(a.a,e),287).a;++BD(Ikb(a.a,e),287).b}else{Ekb(a.a,new Dic(d))}} +function VGc(a,b,c){var d,e;d=UGc(a,b,c);if(d!=0){return d}if(wNb(b,(wtc(),Zsc))&&wNb(c,Zsc)){e=beb(BD(vNb(b,Zsc),19).a,BD(vNb(c,Zsc),19).a);e<0?WGc(a,b,c):e>0&&WGc(a,c,b);return e}return TGc(a,b,c)} +function MSc(a,b,c){var d,e,f,g;if(b.b!=0){d=new Psb;for(g=Jsb(b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);ye(d,URc(f));e=f.e;e.a=BD(vNb(f,(mTc(),kTc)),19).a;e.b=BD(vNb(f,lTc),19).a}MSc(a,d,Udd(c,d.b/a.a|0))}} +function JZc(a,b){var c,d,e,f,g;if(a.e<=b){return a.g}if(LZc(a,a.g,b)){return a.g}f=a.r;d=a.g;g=a.r;e=(f-d)/2+d;while(d+1<f){c=MZc(a,e,false);if(c.b<=e&&c.a<=b){g=e;f=e}else{d=e}e=(f-d)/2+d}return g} +function t2c(a,b,c){var d;d=o2c(a,b,true);Odd(c,'Recursive Graph Layout',d);jfd(b,OC(GC(g2,1),Uhe,527,0,[new q3c]));ikd(b,(Y9c(),F9c))||jfd(b,OC(GC(g2,1),Uhe,527,0,[new U3c]));u2c(a,b,null,c);Qdd(c)} +function Qdd(a){var b;if(a.p==null){throw vbb(new Zdb('The task has not begun yet.'))}if(!a.b){if(a.k){b=(Zfb(),Ibb(Cbb(Date.now()),_ie));a.q=Sbb(Qbb(b,a.o))*1.0E-9}a.c<a.r&&Rdd(a,a.r-a.c);a.b=true}} +function ofd(a){var b,c,d;d=new s7c;Dsb(d,new f7c(a.j,a.k));for(c=new Fyd((!a.a&&(a.a=new xMd(y2,a,5)),a.a));c.e!=c.i.gc();){b=BD(Dyd(c),469);Dsb(d,new f7c(b.a,b.b))}Dsb(d,new f7c(a.b,a.c));return d} +function qqd(a,b,c,d,e){var f,g,h,i,j,k;if(e){i=e.a.length;f=new Yge(i);for(k=(f.b-f.a)*f.c<0?(Xge(),Wge):new she(f);k.Ob();){j=BD(k.Pb(),19);h=Zpd(e,j.a);g=new prd(a,b,c,d);rqd(g.a,g.b,g.c,g.d,h)}}} +function Ax(b,c){var d;if(PD(b)===PD(c)){return true}if(JD(c,21)){d=BD(c,21);try{return b.gc()==d.gc()&&b.Ic(d)}catch(a){a=ubb(a);if(JD(a,173)||JD(a,205)){return false}else throw vbb(a)}}return false} +function UHb(a,b){var c;Ekb(a.d,b);c=b.rf();if(a.c){a.e.a=$wnd.Math.max(a.e.a,c.a);a.e.b+=c.b;a.d.c.length>1&&(a.e.b+=a.a)}else{a.e.a+=c.a;a.e.b=$wnd.Math.max(a.e.b,c.b);a.d.c.length>1&&(a.e.a+=a.a)}} +function cmc(a){var b,c,d,e;e=a.i;b=e.b;d=e.j;c=e.g;switch(e.a.g){case 0:c.a=(a.g.b.o.a-d.a)/2;break;case 1:c.a=b.d.n.a+b.d.a.a;break;case 2:c.a=b.d.n.a+b.d.a.a-d.a;break;case 3:c.b=b.d.n.b+b.d.a.b;}} +function Q6c(a,b,c,d,e){if(d<b||e<c){throw vbb(new Wdb('The highx must be bigger then lowx and the highy must be bigger then lowy'))}a.a<b?(a.a=b):a.a>d&&(a.a=d);a.b<c?(a.b=c):a.b>e&&(a.b=e);return a} +function lsd(a){if(JD(a,149)){return esd(BD(a,149))}else if(JD(a,229)){return fsd(BD(a,229))}else if(JD(a,23)){return gsd(BD(a,23))}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[a])))))}} +function mhb(a,b,c,d,e){var f,g,h;f=true;for(g=0;g<d;g++){f=f&c[g]==0}if(e==0){$fb(c,d,a,0,b);g=b}else{h=32-e;f=f&c[g]<<h==0;for(g=0;g<b-1;g++){a[g]=c[g+d]>>>e|c[g+d+1]<<h}a[g]=c[g+d]>>>e;++g}return f} +function zMc(a,b,c,d){var e,f,g;if(b.k==(j0b(),g0b)){for(f=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);g=e.c.i.k;if(g==g0b&&a.c.a[e.c.i.c.p]==d&&a.c.a[b.c.p]==c){return true}}}return false} +function mD(a,b){var c,d,e,f;b&=63;c=a.h&Fje;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return TC(d&Eje,e&Eje,f&Fje)} +function Iic(a,b,c,d){var e;this.b=d;this.e=a==(rGc(),pGc);e=b[c];this.d=IC(sbb,[nie,dle],[177,25],16,[e.length,e.length],2);this.a=IC(WD,[nie,oje],[48,25],15,[e.length,e.length],2);this.c=new sic(b,c)} +function ljc(a){var b,c,d;a.k=new Ki((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,a.j.c.length);for(d=new olb(a.j);d.a<d.c.c.length;){c=BD(mlb(d),113);b=c.d.j;Rc(a.k,b,c)}a.e=Zjc(Ec(a.k))} +function UQc(a,b){var c,d,e;Qqb(a.d,b);c=new _Qc;Rhb(a.c,b,c);c.f=VQc(b.c);c.a=VQc(b.d);c.d=(hQc(),e=b.c.i.k,e==(j0b(),h0b)||e==d0b);c.e=(d=b.d.i.k,d==h0b||d==d0b);c.b=b.c.j==(Ucd(),Tcd);c.c=b.d.j==zcd} +function BGb(a){var b,c,d,e,f;f=Ohe;e=Ohe;for(d=new olb(LFb(a));d.a<d.c.c.length;){c=BD(mlb(d),213);b=c.e.e-c.d.e;c.e==a&&b<e?(e=b):b<f&&(f=b)}e==Ohe&&(e=-1);f==Ohe&&(f=-1);return new vgd(meb(e),meb(f))} +function zQb(a,b){var c,d,e;e=dme;d=(ROb(),OOb);e=$wnd.Math.abs(a.b);c=$wnd.Math.abs(b.f-a.b);if(c<e){e=c;d=POb}c=$wnd.Math.abs(a.a);if(c<e){e=c;d=QOb}c=$wnd.Math.abs(b.g-a.a);if(c<e){e=c;d=NOb}return d} +function L9b(a,b){var c,d,e,f;c=b.a.o.a;f=new Jib(Q_b(b.a).b,b.c,b.f+1);for(e=new vib(f);e.b<e.d.gc();){d=(sCb(e.b<e.d.gc()),BD(e.d.Xb(e.c=e.b++),29));if(d.c.a>=c){K9b(a,b,d.p);return true}}return false} +function Iod(a){var b;if((a.Db&64)!=0)return fld(a);b=new Wfb(dte);!a.a||Qfb(Qfb((b.a+=' "',b),a.a),'"');Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function Z2d(a,b,c){var d,e,f,g,h;h=S6d(a.e.Tg(),b);e=BD(a.g,119);d=0;for(g=0;g<a.i;++g){f=e[g];if(h.rl(f.ak())){if(d==c){Xxd(a,g);return Q6d(),BD(b,66).Oj()?f:f.dd()}++d}}throw vbb(new qcb(gve+c+mue+d))} +function sde(a){var b,c,d;b=a.c;if(b==2||b==7||b==1){return wfe(),wfe(),ffe}else{d=qde(a);c=null;while((b=a.c)!=2&&b!=7&&b!=1){if(!c){c=(wfe(),wfe(),++vfe,new Lge(1));Kge(c,d);d=c}Kge(c,qde(a))}return d}} +function Kb(a,b,c){if(a<0||a>c){return Jb(a,c,'start index')}if(b<0||b>c){return Jb(b,c,'end index')}return hc('end index (%s) must not be less than start index (%s)',OC(GC(SI,1),Uhe,1,5,[meb(b),meb(a)]))} +function Pz(b,c){var d,e,f,g;for(e=0,f=b.length;e<f;e++){g=b[e];try{g[1]?g[0].jm()&&(c=Oz(c,g)):g[0].jm()}catch(a){a=ubb(a);if(JD(a,78)){d=a;Az();Gz(JD(d,477)?BD(d,477).ae():d)}else throw vbb(a)}}return c} +function K9b(a,b,c){var d,e,f;c!=b.c+b.b.gc()&&Z9b(b.a,fac(b,c-b.c));f=b.a.c.p;a.a[f]=$wnd.Math.max(a.a[f],b.a.o.a);for(e=BD(vNb(b.a,(wtc(),ktc)),15).Kc();e.Ob();){d=BD(e.Pb(),70);yNb(d,H9b,(Bcb(),true))}} +function Wec(a,b){var c,d,e;e=Vec(b);yNb(b,(wtc(),Xsc),e);if(e){d=Ohe;!!irb(a.f,e)&&(d=BD(Wd(irb(a.f,e)),19).a);c=BD(Ikb(b.g,0),17);Ccb(DD(vNb(c,ltc)))||Rhb(a,e,meb($wnd.Math.min(BD(vNb(c,Zsc),19).a,d)))}} +function iCc(a,b,c){var d,e,f,g,h;b.p=-1;for(h=W_b(b,(KAc(),IAc)).Kc();h.Ob();){g=BD(h.Pb(),11);for(e=new olb(g.g);e.a<e.c.c.length;){d=BD(mlb(e),17);f=d.d.i;b!=f&&(f.p<0?c.Fc(d):f.p>0&&iCc(a,f,c))}}b.p=0} +function p5c(a){var b;this.c=new Psb;this.f=a.e;this.e=a.d;this.i=a.g;this.d=a.c;this.b=a.b;this.k=a.j;this.a=a.a;!a.i?(this.j=(b=BD(gdb(e1),9),new xqb(b,BD(_Bb(b,b.length),9),0))):(this.j=a.i);this.g=a.f} +function Wb(a){var b,c,d,e;b=Kfb(Qfb(new Wfb('Predicates.'),'and'),40);c=true;for(e=new vib(a);e.b<e.d.gc();){d=(sCb(e.b<e.d.gc()),e.d.Xb(e.c=e.b++));c||(b.a+=',',b);b.a+=''+d;c=false}return (b.a+=')',b).a} +function Rcc(a,b,c){var d,e,f;if(c<=b+2){return}e=(c-b)/2|0;for(d=0;d<e;++d){f=(tCb(b+d,a.c.length),BD(a.c[b+d],11));Nkb(a,b+d,(tCb(c-d-1,a.c.length),BD(a.c[c-d-1],11)));tCb(c-d-1,a.c.length);a.c[c-d-1]=f}} +function hjc(a,b,c){var d,e,f,g,h,i,j,k;f=a.d.p;h=f.e;i=f.r;a.g=new dIc(i);g=a.d.o.c.p;d=g>0?h[g-1]:KC(OQ,kne,10,0,0,1);e=h[g];j=g<h.length-1?h[g+1]:KC(OQ,kne,10,0,0,1);k=b==c-1;k?RHc(a.g,e,j):RHc(a.g,d,e)} +function pjc(a){var b;this.j=new Rkb;this.f=new Tqb;this.b=(b=BD(gdb(F1),9),new xqb(b,BD(_Bb(b,b.length),9),0));this.d=KC(WD,oje,25,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,15,1);this.g=a} +function QVc(a,b){var c,d,e;if(b.c.length!=0){c=RVc(a,b);e=false;while(!c){AVc(a,b,true);e=true;c=RVc(a,b)}e&&AVc(a,b,false);d=dVc(b);!!a.b&&a.b.lg(d);a.a=PVc(a,(tCb(0,b.c.length),BD(b.c[0],33)));QVc(a,d)}} +function Cid(a,b){var c,d,e;d=XKd(a.Tg(),b);c=b-a.Ah();if(c<0){if(!d){throw vbb(new Wdb(mte+b+nte))}else if(d.Ij()){e=a.Yg(d);e>=0?a.Bh(e):vid(a,d)}else{throw vbb(new Wdb(ite+d.ne()+jte))}}else{eid(a,c,d)}} +function aqd(a){var b,c;c=null;b=false;if(JD(a,204)){b=true;c=BD(a,204).a}if(!b){if(JD(a,258)){b=true;c=''+BD(a,258).a}}if(!b){if(JD(a,483)){b=true;c=''+BD(a,483).a}}if(!b){throw vbb(new vcb(Ute))}return c} +function ORd(a,b){var c,d;if(a.f){while(b.Ob()){c=BD(b.Pb(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Ub();return true}}return false}else{return b.Ob()}} +function QRd(a,b){var c,d;if(a.f){while(b.Sb()){c=BD(b.Ub(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Pb();return true}}return false}else{return b.Sb()}} +function I2d(a,b,c){var d,e,f,g,h,i;i=S6d(a.e.Tg(),b);d=0;h=a.i;e=BD(a.g,119);for(g=0;g<a.i;++g){f=e[g];if(i.rl(f.ak())){if(c==d){return g}++d;h=g+1}}if(c==d){return h}else{throw vbb(new qcb(gve+c+mue+d))}} +function d9b(a,b){var c,d,e,f;if(a.f.c.length==0){return null}else{f=new I6c;for(d=new olb(a.f);d.a<d.c.c.length;){c=BD(mlb(d),70);e=c.o;f.b=$wnd.Math.max(f.b,e.a);f.a+=e.b}f.a+=(a.f.c.length-1)*b;return f}} +function QJc(a,b,c){var d,e,f;for(e=new Sr(ur(O_b(c).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(!(!OZb(d)&&!(!OZb(d)&&d.c.i.c==d.d.i.c))){continue}f=IJc(a,d,c,new vKc);f.c.length>1&&(b.c[b.c.length]=f,true)}} +function TJc(a){var b,c,d,e;c=new Psb;ye(c,a.o);d=new twb;while(c.b!=0){b=BD(c.b==0?null:(sCb(c.b!=0),Nsb(c,c.a.a)),508);e=KJc(a,b,true);e&&Ekb(d.a,b)}while(d.a.c.length!=0){b=BD(rwb(d),508);KJc(a,b,false)}} +function _5c(){_5c=ccb;$5c=new a6c(ole,0);T5c=new a6c('BOOLEAN',1);X5c=new a6c('INT',2);Z5c=new a6c('STRING',3);U5c=new a6c('DOUBLE',4);V5c=new a6c('ENUM',5);W5c=new a6c('ENUMSET',6);Y5c=new a6c('OBJECT',7)} +function H6c(a,b){var c,d,e,f,g;d=$wnd.Math.min(a.c,b.c);f=$wnd.Math.min(a.d,b.d);e=$wnd.Math.max(a.c+a.b,b.c+b.b);g=$wnd.Math.max(a.d+a.a,b.d+b.a);if(e<d){c=d;d=e;e=c}if(g<f){c=f;f=g;g=c}G6c(a,d,f,e-d,g-f)} +function O6d(){O6d=ccb;L6d=OC(GC(ZI,1),nie,2,6,[swe,twe,uwe,vwe,wwe,xwe,eue]);K6d=OC(GC(ZI,1),nie,2,6,[swe,'empty',twe,Qve,'elementOnly']);N6d=OC(GC(ZI,1),nie,2,6,[swe,'preserve','replace',ywe]);M6d=new y1d} +function Y$b(a,b,c){var d,e,f;if(b==c){return}d=b;do{P6c(a,d.c);e=d.e;if(e){f=d.d;O6c(a,f.b,f.d);P6c(a,e.n);d=Q_b(e)}}while(e);d=c;do{c7c(a,d.c);e=d.e;if(e){f=d.d;b7c(a,f.b,f.d);c7c(a,e.n);d=Q_b(e)}}while(e)} +function qic(a,b,c,d){var e,f,g,h,i;if(d.f.c+d.g.c==0){for(g=a.a[a.c],h=0,i=g.length;h<i;++h){f=g[h];Rhb(d,f,new zic(a,f,c))}}e=BD(Wd(irb(d.f,b)),663);e.b=0;e.c=e.f;e.c==0||Cic(BD(Ikb(e.a,e.b),287));return e} +function Apc(){Apc=ccb;wpc=new Bpc('MEDIAN_LAYER',0);ypc=new Bpc('TAIL_LAYER',1);vpc=new Bpc('HEAD_LAYER',2);xpc=new Bpc('SPACE_EFFICIENT_LAYER',3);zpc=new Bpc('WIDEST_LAYER',4);upc=new Bpc('CENTER_LAYER',5)} +function rJb(a){switch(a.g){case 0:case 1:case 2:return Ucd(),Acd;case 3:case 4:case 5:return Ucd(),Rcd;case 6:case 7:case 8:return Ucd(),Tcd;case 9:case 10:case 11:return Ucd(),zcd;default:return Ucd(),Scd;}} +function sKc(a,b){var c;if(a.c.length==0){return false}c=Lzc((tCb(0,a.c.length),BD(a.c[0],17)).c.i);FJc();if(c==(Izc(),Fzc)||c==Ezc){return true}return FAb(NAb(new YAb(null,new Kub(a,16)),new AKc),new CKc(b))} +function cRc(a,b,c){var d,e,f;if(!a.b[b.g]){a.b[b.g]=true;d=c;!d&&(d=new SRc);Dsb(d.b,b);for(f=a.a[b.g].Kc();f.Ob();){e=BD(f.Pb(),188);e.b!=b&&cRc(a,e.b,d);e.c!=b&&cRc(a,e.c,d);Dsb(d.a,e)}return d}return null} +function qSc(){qSc=ccb;pSc=new rSc('ROOT_PROC',0);lSc=new rSc('FAN_PROC',1);nSc=new rSc('NEIGHBORS_PROC',2);mSc=new rSc('LEVEL_HEIGHT',3);oSc=new rSc('NODE_POSITION_PROC',4);kSc=new rSc('DETREEIFYING_PROC',5)} +function kqd(a,b){if(JD(b,239)){return eqd(a,BD(b,33))}else if(JD(b,186)){return fqd(a,BD(b,118))}else if(JD(b,439)){return dqd(a,BD(b,202))}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[b])))))}} +function xu(a,b,c){var d,e;this.f=a;d=BD(Ohb(a.b,b),283);e=!d?0:d.a;Sb(c,e);if(c>=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++<e){vu(this)}}else{this.c=!d?null:d.b;while(c-->0){uu(this)}}this.b=b;this.a=null} +function rEb(a,b){var c,d;b.a?sEb(a,b):(c=BD(Exb(a.b,b.b),57),!!c&&c==a.a[b.b.f]&&!!c.a&&c.a!=b.b.a&&c.c.Fc(b.b),d=BD(Dxb(a.b,b.b),57),!!d&&a.a[d.f]==b.b&&!!d.a&&d.a!=b.b.a&&b.b.c.Fc(d),Fxb(a.b,b.b),undefined)} +function FJb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.b=0;c.n.c=0;return}c.n.b=a.C.b;c.n.c=a.C.c;a.A.Hc((tdd(),sdd))&&KJb(a,b);d=JJb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.a=d} +function OKb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.d=0;c.n.a=0;return}c.n.d=a.C.d;c.n.a=a.C.a;a.A.Hc((tdd(),sdd))&&SKb(a,b);d=RKb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.b=d} +function cOb(a,b){var c,d,e,f;f=new Rkb;for(d=new olb(b);d.a<d.c.c.length;){c=BD(mlb(d),65);Ekb(f,new oOb(c,true));Ekb(f,new oOb(c,false))}e=new hOb(a);zwb(e.a.a);kDb(f,a.b,new amb(OC(GC(JM,1),Uhe,679,0,[e])))} +function rQb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;i=a.a;n=a.b;j=b.a;o=b.b;k=c.a;p=c.b;l=d.a;q=d.b;f=i*o-n*j;g=k*q-p*l;e=(i-j)*(p-q)-(n-o)*(k-l);h=(f*(k-l)-g*(i-j))/e;m=(f*(p-q)-g*(n-o))/e;return new f7c(h,m)} +function TBc(a,b){var c,d,e;if(a.d[b.p]){return}a.d[b.p]=true;a.a[b.p]=true;for(d=new Sr(ur(U_b(b).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(OZb(c)){continue}e=c.d.i;a.a[e.p]?Ekb(a.b,c):TBc(a,e)}a.a[b.p]=false} +function pCc(a,b,c){var d;d=0;switch(BD(vNb(b,(Nyc(),mxc)),163).g){case 2:d=2*-c+a.a;++a.a;break;case 1:d=-c;break;case 3:d=c;break;case 4:d=2*c+a.b;++a.b;}wNb(b,(wtc(),Zsc))&&(d+=BD(vNb(b,Zsc),19).a);return d} +function jOc(a,b,c){var d,e,f;c.zc(b,a);Ekb(a.n,b);f=a.p.eg(b);b.j==a.p.fg()?yOc(a.e,f):yOc(a.j,f);lOc(a);for(e=ul(pl(OC(GC(KI,1),Uhe,20,0,[new J0b(b),new R0b(b)])));Qr(e);){d=BD(Rr(e),11);c._b(d)||jOc(a,d,c)}} +function rfd(a){var b,c,d;c=BD(hkd(a,(Y9c(),Y8c)),21);if(c.Hc((tdd(),pdd))){d=BD(hkd(a,b9c),21);b=new g7c(BD(hkd(a,_8c),8));if(d.Hc((Idd(),Bdd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b}else{return new d7c}} +function PKd(a){var b,c,d;if(!a.b){d=new $Nd;for(c=new $yd(SKd(a));c.e!=c.i.gc();){b=BD(Zyd(c),18);(b.Bb&ote)!=0&&wtd(d,b)}vud(d);a.b=new nNd((BD(qud(ZKd((NFd(),MFd).o),8),18),d.i),d.g);$Kd(a).b&=-9}return a.b} +function Rmc(a,b){var c,d,e,f,g,h,i,j;i=BD(Ee(Ec(b.k),KC(F1,bne,61,2,0,1)),122);j=b.g;c=Tmc(b,i[0]);e=Smc(b,i[1]);d=Kmc(a,j,c,e);f=Tmc(b,i[1]);h=Smc(b,i[0]);g=Kmc(a,j,f,h);if(d<=g){b.a=c;b.c=e}else{b.a=f;b.c=h}} +function ESc(a,b,c){var d,e,f;Odd(c,'Processor set neighbors',1);a.a=b.b.b==0?1:b.b.b;e=null;d=Jsb(b.b,0);while(!e&&d.b!=d.d.c){f=BD(Xsb(d),86);Ccb(DD(vNb(f,(mTc(),jTc))))&&(e=f)}!!e&&FSc(a,new ZRc(e),c);Qdd(c)} +function PEd(a){IEd();var b,c,d,e;d=hfb(a,wfb(35));b=d==-1?a:a.substr(0,d);c=d==-1?null:a.substr(d+1);e=kFd(HEd,b);if(!e){e=aFd(b);lFd(HEd,b,e);c!=null&&(e=JEd(e,c))}else c!=null&&(e=JEd(e,(uCb(c),c)));return e} +function smb(a){var h;mmb();var b,c,d,e,f,g;if(JD(a,54)){for(e=0,d=a.gc()-1;e<d;++e,--d){h=a.Xb(e);a._c(e,a.Xb(d));a._c(d,h)}}else{b=a.Yc();f=a.Zc(a.gc());while(b.Tb()<f.Vb()){c=b.Pb();g=f.Ub();b.Wb(g);f.Wb(c)}}} +function I3b(a,b){var c,d,e;Odd(b,'End label pre-processing',1);c=Edb(ED(vNb(a,(Nyc(),nyc))));d=Edb(ED(vNb(a,ryc)));e=gad(BD(vNb(a,Lwc),103));MAb(LAb(new YAb(null,new Kub(a.b,16)),new Q3b),new S3b(c,d,e));Qdd(b)} +function NFc(a,b){var c,d,e,f,g,h;h=0;f=new jkb;Wjb(f,b);while(f.b!=f.c){g=BD(fkb(f),214);h+=pHc(g.d,g.e);for(e=new olb(g.b);e.a<e.c.c.length;){d=BD(mlb(e),37);c=BD(Ikb(a.b,d.p),214);c.s||(h+=NFc(a,c))}}return h} +function YQc(a,b,c){var d,e;TQc(this);b==(FQc(),DQc)?Qqb(this.r,a.c):Qqb(this.w,a.c);c==DQc?Qqb(this.r,a.d):Qqb(this.w,a.d);UQc(this,a);d=VQc(a.c);e=VQc(a.d);XQc(this,d,e,e);this.o=(hQc(),$wnd.Math.abs(d-e)<0.2)} +function a0d(a,b,c){var d,e,f,g,h,i;h=BD(Ajd(a.a,8),1936);if(h!=null){for(e=h,f=0,g=e.length;f<g;++f){null.jm()}}d=c;if((a.a.Db&1)==0){i=new f0d(a,c,b);d.ui(i)}JD(d,672)?BD(d,672).wi(a.a):d.ti()==a.a&&d.vi(null)} +function dae(){var a;if(Z9d)return BD(nUd((yFd(),xFd),Ewe),1945);eae();a=BD(JD(Phb((yFd(),xFd),Ewe),586)?Phb(xFd,Ewe):new cae,586);Z9d=true;aae(a);bae(a);Rhb((JFd(),IFd),a,new fae);Tnd(a);Shb(xFd,Ewe,a);return a} +function xA(a,b,c,d){var e;e=oA(a,c,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje]),b);e<0&&(e=oA(a,c,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat']),b));if(e<0){return false}d.d=e;return true} +function AA(a,b,c,d){var e;e=oA(a,c,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje]),b);e<0&&(e=oA(a,c,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat']),b));if(e<0){return false}d.d=e;return true} +function NVb(a){var b,c,d;KVb(a);d=new Rkb;for(c=new olb(a.a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),81);Ekb(d,new ZVb(b,true));Ekb(d,new ZVb(b,false))}RVb(a.c);rXb(d,a.b,new amb(OC(GC(bQ,1),Uhe,369,0,[a.c])));MVb(a)} +function c4b(a){var b,c,d,e;c=new Lqb;for(e=new olb(a.d);e.a<e.c.c.length;){d=BD(mlb(e),181);b=BD(d.We((wtc(),Dsc)),17);!!irb(c.f,b)||Rhb(c,b,new p4b(b));Ekb(BD(Wd(irb(c.f,b)),456).b,d)}return new Tkb(new $ib(c))} +function Gac(a,b){var c,d,e,f,g;d=new kkb(a.j.c.length);c=null;for(f=new olb(a.j);f.a<f.c.c.length;){e=BD(mlb(f),11);if(e.j!=c){d.b==d.c||Hac(d,c,b);Yjb(d);c=e.j}g=N3b(e);!!g&&(Xjb(d,g),true)}d.b==d.c||Hac(d,c,b)} +function wbc(a,b){var c,d,e;d=new Bib(a.b,0);while(d.b<d.d.gc()){c=(sCb(d.b<d.d.gc()),BD(d.d.Xb(d.c=d.b++),70));e=BD(vNb(c,(Nyc(),Qwc)),272);if(e==(qad(),oad)){uib(d);Ekb(b.b,c);wNb(c,(wtc(),Dsc))||yNb(c,Dsc,a)}}} +function GDc(a){var b,c,d,e,f;b=sr(new Sr(ur(U_b(a).a.Kc(),new Sq)));for(e=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);c=d.c.i;f=sr(new Sr(ur(U_b(c).a.Kc(),new Sq)));b=$wnd.Math.max(b,f)}return meb(b)} +function rUc(a,b,c){var d,e,f,g;Odd(c,'Processor arrange node',1);e=null;f=new Psb;d=Jsb(b.b,0);while(!e&&d.b!=d.d.c){g=BD(Xsb(d),86);Ccb(DD(vNb(g,(mTc(),jTc))))&&(e=g)}Gsb(f,e,f.c.b,f.c);qUc(a,f,Udd(c,1));Qdd(c)} +function Ffd(a,b,c){var d,e,f;d=BD(hkd(a,(Y9c(),w8c)),21);e=0;f=0;b.a>c.a&&(d.Hc((i8c(),c8c))?(e=(b.a-c.a)/2):d.Hc(e8c)&&(e=b.a-c.a));b.b>c.b&&(d.Hc((i8c(),g8c))?(f=(b.b-c.b)/2):d.Hc(f8c)&&(f=b.b-c.b));Efd(a,e,f)} +function aod(a,b,c,d,e,f,g,h,i,j,k,l,m){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,c);a.f=g;dJd(a,h);fJd(a,i);ZId(a,j);eJd(a,k);CId(a,l);aJd(a,m);BId(a,true);AId(a,e);a.ok(f);yId(a,b);d!=null&&(a.i=null,_Id(a,d))} +function PRd(a){var b,c;if(a.f){while(a.n>0){b=BD(a.k.Xb(a.n-1),72);c=b.ak();if(JD(c,99)&&(BD(c,18).Bb&ote)!=0&&(!a.e||c.Gj()!=x2||c.aj()!=0)&&b.dd()!=null){return true}else{--a.n}}return false}else{return a.n>0}} +function Jb(a,b,c){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,[c,meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must not be greater than size (%s)',OC(GC(SI,1),Uhe,1,5,[c,meb(a),meb(b)]))}} +function Llb(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){Ilb(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);Llb(b,a,i,j,-e,f);Llb(b,a,j,h,-e,f);if(f.ue(a[j-1],a[j])<=0){while(c<d){NC(b,c++,a[i++])}return}Jlb(a,i,j,h,b,c,d,f)} +function nEb(a,b){var c,d,e;e=new Rkb;for(d=new olb(a.c.a.b);d.a<d.c.c.length;){c=BD(mlb(d),57);if(b.Lb(c)){Ekb(e,new BEb(c,true));Ekb(e,new BEb(c,false))}}tEb(a.e);kDb(e,a.d,new amb(OC(GC(JM,1),Uhe,679,0,[a.e])))} +function gnc(a,b){var c,d,e,f,g,h,i;i=b.d;e=b.b.j;for(h=new olb(i);h.a<h.c.c.length;){g=BD(mlb(h),101);f=KC(sbb,dle,25,e.c.length,16,1);Rhb(a.b,g,f);c=g.a.d.p-1;d=g.c.d.p;while(c!=d){c=(c+1)%e.c.length;f[c]=true}}} +function tOc(a,b){a.r=new uOc(a.p);sOc(a.r,a);ye(a.r.j,a.j);Osb(a.j);Dsb(a.j,b);Dsb(a.r.e,b);lOc(a);lOc(a.r);while(a.f.c.length!=0){AOc(BD(Ikb(a.f,0),129))}while(a.k.c.length!=0){AOc(BD(Ikb(a.k,0),129))}return a.r} +function yid(a,b,c){var d,e,f;e=XKd(a.Tg(),b);d=b-a.Ah();if(d<0){if(!e){throw vbb(new Wdb(mte+b+nte))}else if(e.Ij()){f=a.Yg(e);f>=0?a.sh(f,c):uid(a,e,c)}else{throw vbb(new Wdb(ite+e.ne()+jte))}}else{did(a,d,e,c)}} +function q6d(b){var c,d,e,f;d=BD(b,49).qh();if(d){try{e=null;c=nUd((yFd(),xFd),LEd(MEd(d)));if(c){f=c.rh();!!f&&(e=f.Wk(tfb(d.e)))}if(!!e&&e!=b){return q6d(e)}}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}return b} +function jrb(a,b,c){var d,e,f,g;g=b==null?0:a.b.se(b);e=(d=a.a.get(g),d==null?new Array:d);if(e.length==0){a.a.set(g,e)}else{f=grb(a,b,e);if(f){return f.ed(c)}}NC(e,e.length,new pjb(b,c));++a.c;zpb(a.b);return null} +function YUc(a,b){var c,d;H2c(a.a);K2c(a.a,(PUc(),NUc),NUc);K2c(a.a,OUc,OUc);d=new j3c;e3c(d,OUc,(tVc(),sVc));PD(hkd(b,(ZWc(),LWc)))!==PD((pWc(),mWc))&&e3c(d,OUc,qVc);e3c(d,OUc,rVc);E2c(a.a,d);c=F2c(a.a,b);return c} +function uC(a){if(!a){return OB(),NB}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=qC[typeof b];return c?c(b):xC(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new xB(a)}else{return new fC(a)}} +function RJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.b=$wnd.Math.max(e.b,f.a);e.b>f.a&&!b&&(e.b=f.a);e.c=-(e.b-f.a)/2;switch(c.g){case 1:e.d=-e.a;break;case 3:e.d=f.b;}hIb(d);iIb(d)} +function SJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.a=$wnd.Math.max(e.a,f.b);e.a>f.b&&!b&&(e.a=f.b);e.d=-(e.a-f.b)/2;switch(c.g){case 4:e.c=-e.b;break;case 2:e.c=f.a;}hIb(d);iIb(d)} +function Jgc(a,b){var c,d,e,f,g;if(b.dc()){return}e=BD(b.Xb(0),128);if(b.gc()==1){Igc(a,e,e,1,0,b);return}c=1;while(c<b.gc()){if(e.j||!e.o){f=Ogc(b,c);if(f){d=BD(f.a,19).a;g=BD(f.b,128);Igc(a,e,g,c,d,b);c=d+1;e=g}}}} +function mlc(a){var b,c,d,e,f,g;g=new Tkb(a.d);Okb(g,new Qlc);b=(Alc(),OC(GC(KV,1),Kie,270,0,[tlc,wlc,slc,zlc,vlc,ulc,ylc,xlc]));c=0;for(f=new olb(g);f.a<f.c.c.length;){e=BD(mlb(f),101);d=b[c%b.length];olc(e,d);++c}} +function o6c(a,b){i6c();var c,d,e,f;if(b.b<2){return false}f=Jsb(b,0);c=BD(Xsb(f),8);d=c;while(f.b!=f.d.c){e=BD(Xsb(f),8);if(!(m6c(a,d)&&m6c(a,e))){return false}d=e}if(!(m6c(a,d)&&m6c(a,c))){return false}return true} +function hrd(a,b){var c,d,e,f,g,h,i,j,k,l;k=null;l=a;g=Xpd(l,'x');c=new Krd(b);Gqd(c.a,g);h=Xpd(l,'y');d=new Lrd(b);Hqd(d.a,h);i=Xpd(l,Gte);e=new Mrd(b);Iqd(e.a,i);j=Xpd(l,Fte);f=new Nrd(b);k=(Jqd(f.a,j),j);return k} +function XMd(a,b){TMd(a,b);(a.b&1)!=0&&(a.a.a=null);(a.b&2)!=0&&(a.a.f=null);if((a.b&4)!=0){a.a.g=null;a.a.i=null}if((a.b&16)!=0){a.a.d=null;a.a.e=null}(a.b&8)!=0&&(a.a.b=null);if((a.b&32)!=0){a.a.j=null;a.a.c=null}} +function l0d(b,c){var d,e,f;f=0;if(c.length>0){try{f=Icb(c,Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){e=a;throw vbb(new rFd(e))}else throw vbb(a)}}d=(!b.a&&(b.a=new z0d(b)),b.a);return f<d.i&&f>=0?BD(qud(d,f),56):null} +function Ib(a,b){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,['index',meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must be less than size (%s)',OC(GC(SI,1),Uhe,1,5,['index',meb(a),meb(b)]))}} +function Slb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d<e;++d){b=c[d];!f.a?(f.a=new Wfb(f.d)):Qfb(f.a,f.b);Nfb(f.a,''+b)}return !f.a?f.c:f.e.length==0?f.a.a:f.a.a+(''+f.e)} +function Tlb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d<e;++d){b=c[d];!f.a?(f.a=new Wfb(f.d)):Qfb(f.a,f.b);Nfb(f.a,''+b)}return !f.a?f.c:f.e.length==0?f.a.a:f.a.a+(''+f.e)} +function Ulb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d<e;++d){b=c[d];!f.a?(f.a=new Wfb(f.d)):Qfb(f.a,f.b);Nfb(f.a,''+b)}return !f.a?f.c:f.e.length==0?f.a.a:f.a.a+(''+f.e)} +function Xlb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d<e;++d){b=c[d];!f.a?(f.a=new Wfb(f.d)):Qfb(f.a,f.b);Nfb(f.a,''+b)}return !f.a?f.c:f.e.length==0?f.a.a:f.a.a+(''+f.e)} +function bub(a,b){var c,d,e,f,g,h;c=a.b.c.length;e=Ikb(a.b,b);while(b*2+1<c){d=(f=2*b+1,g=f+1,h=f,g<c&&a.a.ue(Ikb(a.b,g),Ikb(a.b,f))<0&&(h=g),h);if(a.a.ue(e,Ikb(a.b,d))<0){break}Nkb(a.b,b,Ikb(a.b,d));b=d}Nkb(a.b,b,e)} +function $Bb(a,b,c,d,e,f){var g,h,i,j,k;if(PD(a)===PD(c)){a=a.slice(b,b+e);b=0}i=c;for(h=b,j=b+e;h<j;){g=$wnd.Math.min(h+10000,j);e=g-h;k=a.slice(h,g);k.splice(0,0,d,f?e:0);Array.prototype.splice.apply(i,k);h=g;d+=e}} +function xGb(a,b,c){var d,e;d=c.d;e=c.e;if(a.g[d.d]<=a.i[b.d]&&a.i[b.d]<=a.i[d.d]&&a.g[e.d]<=a.i[b.d]&&a.i[b.d]<=a.i[e.d]){if(a.i[d.d]<a.i[e.d]){return false}return true}if(a.i[d.d]<a.i[e.d]){return true}return false} +function cRb(a){var b,c,d,e,f,g,h;d=a.a.c.length;if(d>0){g=a.c.d;h=a.d.d;e=Y6c(c7c(new f7c(h.a,h.b),g),1/(d+1));f=new f7c(g.a,g.b);for(c=new olb(a.a);c.a<c.c.c.length;){b=BD(mlb(c),559);b.d.a=f.a;b.d.b=f.b;P6c(f,e)}}} +function YNb(a,b,c){var d,e,f,g,h,i;i=Pje;for(f=new olb(wOb(a.b));f.a<f.c.c.length;){e=BD(mlb(f),168);for(h=new olb(wOb(b.b));h.a<h.c.c.length;){g=BD(mlb(h),168);d=p6c(e.a,e.b,g.a,g.b,c);i=$wnd.Math.min(i,d)}}return i} +function G0b(a,b){if(!b){throw vbb(new Geb)}a.j=b;if(!a.d){switch(a.j.g){case 1:a.a.a=a.o.a/2;a.a.b=0;break;case 2:a.a.a=a.o.a;a.a.b=a.o.b/2;break;case 3:a.a.a=a.o.a/2;a.a.b=a.o.b;break;case 4:a.a.a=0;a.a.b=a.o.b/2;}}} +function dfc(a,b){var c,d,e;if(JD(b.g,10)&&BD(b.g,10).k==(j0b(),e0b)){return Pje}e=ugc(b);if(e){return $wnd.Math.max(0,a.b/2-0.5)}c=tgc(b);if(c){d=Edb(ED(pBc(c,(Nyc(),vyc))));return $wnd.Math.max(0,d/2-0.5)}return Pje} +function ffc(a,b){var c,d,e;if(JD(b.g,10)&&BD(b.g,10).k==(j0b(),e0b)){return Pje}e=ugc(b);if(e){return $wnd.Math.max(0,a.b/2-0.5)}c=tgc(b);if(c){d=Edb(ED(pBc(c,(Nyc(),vyc))));return $wnd.Math.max(0,d/2-0.5)}return Pje} +function xic(a){var b,c,d,e,f,g;g=CHc(a.d,a.e);for(f=g.Kc();f.Ob();){e=BD(f.Pb(),11);d=a.e==(Ucd(),Tcd)?e.e:e.g;for(c=new olb(d);c.a<c.c.c.length;){b=BD(mlb(c),17);if(!OZb(b)&&b.c.i.c!=b.d.i.c){tic(a,b);++a.f;++a.c}}}} +function tpc(a,b){var c,d;if(b.dc()){return mmb(),mmb(),jmb}d=new Rkb;Ekb(d,meb(Rie));for(c=1;c<a.f;++c){a.a==null&&Toc(a);a.a[c]&&Ekb(d,meb(c))}if(d.c.length==1){return mmb(),mmb(),jmb}Ekb(d,meb(Ohe));return spc(b,d)} +function MJc(a,b){var c,d,e,f,g,h,i;g=b.c.i.k!=(j0b(),h0b);i=g?b.d:b.c;c=MZb(b,i).i;e=BD(Ohb(a.k,i),121);d=a.i[c.p].a;if(S_b(i.i)<(!c.c?-1:Jkb(c.c.a,c,0))){f=e;h=d}else{f=d;h=e}AFb(DFb(CFb(EFb(BFb(new FFb,0),4),f),h))} +function oqd(a,b,c){var d,e,f,g,h,i;if(c){e=c.a.length;d=new Yge(e);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);i=Wqd(a,Vpd(tB(c,g.a)));if(i){f=(!b.b&&(b.b=new y5d(z2,b,4,7)),b.b);wtd(f,i)}}}} +function pqd(a,b,c){var d,e,f,g,h,i;if(c){e=c.a.length;d=new Yge(e);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);i=Wqd(a,Vpd(tB(c,g.a)));if(i){f=(!b.c&&(b.c=new y5d(z2,b,5,8)),b.c);wtd(f,i)}}}} +function po(a,b,c){var d,e;d=b.a&a.f;b.b=a.b[d];a.b[d]=b;e=b.f&a.f;b.d=a.c[e];a.c[e]=b;if(!c){b.e=a.e;b.c=null;!a.e?(a.a=b):(a.e.c=b);a.e=b}else{b.e=c.e;!b.e?(a.a=b):(b.e.c=b);b.c=c.c;!b.c?(a.e=b):(b.c.e=b)}++a.i;++a.g} +function qr(a){var b,c,d;b=a.Pb();if(!a.Ob()){return b}d=Pfb(Qfb(new Ufb,'expected one element but was: <'),b);for(c=0;c<4&&a.Ob();c++){Pfb((d.a+=She,d),a.Pb())}a.Ob()&&(d.a+=', ...',d);d.a+='>';throw vbb(new Wdb(d.a))} +function lt(a,b){var c;b.d?(b.d.b=b.b):(a.a=b.b);b.b?(b.b.d=b.d):(a.e=b.d);if(!b.e&&!b.c){c=BD(Thb(a.b,b.a),283);c.a=0;++a.c}else{c=BD(Ohb(a.b,b.a),283);--c.a;!b.e?(c.b=b.c):(b.e.c=b.c);!b.c?(c.c=b.e):(b.c.e=b.e)}--a.d} +function OA(a){var b,c;c=-a.a;b=OC(GC(TD,1),$ie,25,15,[43,48,48,48,48]);if(c<0){b[0]=45;c=-c}b[1]=b[1]+((c/60|0)/10|0)&aje;b[2]=b[2]+(c/60|0)%10&aje;b[3]=b[3]+(c%60/10|0)&aje;b[4]=b[4]+c%10&aje;return zfb(b,0,b.length)} +function uRb(a,b,c){var d,e;d=b.d;e=c.d;while(d.a-e.a==0&&d.b-e.b==0){d.a+=Cub(a,26)*ike+Cub(a,27)*jke-0.5;d.b+=Cub(a,26)*ike+Cub(a,27)*jke-0.5;e.a+=Cub(a,26)*ike+Cub(a,27)*jke-0.5;e.b+=Cub(a,26)*ike+Cub(a,27)*jke-0.5}} +function N_b(a){var b,c,d,e;a.g=new Rpb(BD(Qb(F1),290));d=0;c=(Ucd(),Acd);b=0;for(;b<a.j.c.length;b++){e=BD(Ikb(a.j,b),11);if(e.j!=c){d!=b&&Npb(a.g,c,new vgd(meb(d),meb(b)));c=e.j;d=b}}Npb(a.g,c,new vgd(meb(d),meb(b)))} +function d4b(a){var b,c,d,e,f,g,h;d=0;for(c=new olb(a.b);c.a<c.c.c.length;){b=BD(mlb(c),29);for(f=new olb(b.a);f.a<f.c.c.length;){e=BD(mlb(f),10);e.p=d++;for(h=new olb(e.j);h.a<h.c.c.length;){g=BD(mlb(h),11);g.p=d++}}}} +function qPc(a,b,c,d,e){var f,g,h,i,j;if(b){for(h=b.Kc();h.Ob();){g=BD(h.Pb(),10);for(j=X_b(g,(KAc(),IAc),c).Kc();j.Ob();){i=BD(j.Pb(),11);f=BD(Wd(irb(e.f,i)),112);if(!f){f=new uOc(a.d);d.c[d.c.length]=f;jOc(f,i,e)}}}}} +function vid(a,b){var c,d,e;e=e1d((O6d(),M6d),a.Tg(),b);if(e){Q6d();BD(e,66).Oj()||(e=_1d(q1d(M6d,e)));d=(c=a.Yg(e),BD(c>=0?a._g(c,true,true):sid(a,e,true),153));BD(d,215).ol(b)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} +function ugb(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=QD($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return vgb(Cbb(a))} +function QOc(a){var b,c,d,e,f,g,h;f=new zsb;for(c=new olb(a);c.a<c.c.c.length;){b=BD(mlb(c),129);g=b.a;h=b.b;if(f.a._b(g)||f.a._b(h)){continue}e=g;d=h;if(g.e.b+g.j.b>2&&h.e.b+h.j.b<=2){e=h;d=g}f.a.zc(e,f);e.q=d}return f} +function K5b(a,b){var c,d,e;d=new b0b(a);tNb(d,b);yNb(d,(wtc(),Gsc),b);yNb(d,(Nyc(),Vxc),(dcd(),$bd));yNb(d,mwc,(F7c(),B7c));__b(d,(j0b(),e0b));c=new H0b;F0b(c,d);G0b(c,(Ucd(),Tcd));e=new H0b;F0b(e,d);G0b(e,zcd);return d} +function Spc(a){switch(a.g){case 0:return new fGc((rGc(),oGc));case 1:return new CFc;case 2:return new fHc;default:throw vbb(new Wdb('No implementation is available for the crossing minimizer '+(a.f!=null?a.f:''+a.g)));}} +function tDc(a,b){var c,d,e,f,g;a.c[b.p]=true;Ekb(a.a,b);for(g=new olb(b.j);g.a<g.c.c.length;){f=BD(mlb(g),11);for(d=new b1b(f.b);llb(d.a)||llb(d.b);){c=BD(llb(d.a)?mlb(d.a):mlb(d.b),17);e=uDc(f,c).i;a.c[e.p]||tDc(a,e)}}} +function _Uc(a){var b,c,d,e,f,g,h;g=0;for(c=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));c.e!=c.i.gc();){b=BD(Dyd(c),33);h=b.g;e=b.f;d=$wnd.Math.sqrt(h*h+e*e);g=$wnd.Math.max(d,g);f=_Uc(b);g=$wnd.Math.max(f,g)}return g} +function rcd(){rcd=ccb;pcd=new scd('OUTSIDE',0);ncd=new scd('INSIDE',1);ocd=new scd('NEXT_TO_PORT_IF_POSSIBLE',2);mcd=new scd('ALWAYS_SAME_SIDE',3);lcd=new scd('ALWAYS_OTHER_SAME_SIDE',4);qcd=new scd('SPACE_EFFICIENT',5)} +function drd(a,b,c){var d,e,f,h,i,j;d=Tqd(a,(e=(Fhd(),f=new apd,f),!!c&&$od(e,c),e),b);Lkd(d,_pd(b,Vte));grd(b,d);brd(b,d);hrd(b,d);g=null;h=b;i=Ypd(h,'ports');j=new Jrd(a,d);Fqd(j.a,j.b,i);crd(a,b,d);Zqd(a,b,d);return d} +function NA(a){var b,c;c=-a.a;b=OC(GC(TD,1),$ie,25,15,[43,48,48,58,48,48]);if(c<0){b[0]=45;c=-c}b[1]=b[1]+((c/60|0)/10|0)&aje;b[2]=b[2]+(c/60|0)%10&aje;b[4]=b[4]+(c%60/10|0)&aje;b[5]=b[5]+c%10&aje;return zfb(b,0,b.length)} +function QA(a){var b;b=OC(GC(TD,1),$ie,25,15,[71,77,84,45,48,48,58,48,48]);if(a<=0){b[3]=43;a=-a}b[4]=b[4]+((a/60|0)/10|0)&aje;b[5]=b[5]+(a/60|0)%10&aje;b[7]=b[7]+(a%60/10|0)&aje;b[8]=b[8]+a%10&aje;return zfb(b,0,b.length)} +function Vlb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d<e;++d){b=c[d];!f.a?(f.a=new Wfb(f.d)):Qfb(f.a,f.b);Nfb(f.a,''+Ubb(b))}return !f.a?f.c:f.e.length==0?f.a.a:f.a.a+(''+f.e)} +function DGb(a,b){var c,d,e;e=Ohe;for(d=new olb(LFb(b));d.a<d.c.c.length;){c=BD(mlb(d),213);if(c.f&&!a.c[c.c]){a.c[c.c]=true;e=$wnd.Math.min(e,DGb(a,xFb(c,b)))}}a.i[b.d]=a.j;a.g[b.d]=$wnd.Math.min(e,a.j++);return a.g[b.d]} +function EKb(a,b){var c,d,e;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);d.e.b=(c=d.b,c.Xe((Y9c(),s9c))?c.Hf()==(Ucd(),Acd)?-c.rf().b-Edb(ED(c.We(s9c))):Edb(ED(c.We(s9c))):c.Hf()==(Ucd(),Acd)?-c.rf().b:0)}} +function LPb(a){var b,c,d,e,f,g,h;c=IOb(a.e);f=Y6c(b7c(R6c(HOb(a.e)),a.d*a.a,a.c*a.b),-0.5);b=c.a-f.a;e=c.b-f.b;for(h=0;h<a.c;h++){d=b;for(g=0;g<a.d;g++){JOb(a.e,new J6c(d,e,a.a,a.b))&&aNb(a,g,h,false,true);d+=a.a}e+=a.b}} +function s2c(a){var b,c,d;if(Ccb(DD(hkd(a,(Y9c(),M8c))))){d=new Rkb;for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);Qld(b)&&Ccb(DD(hkd(b,N8c)))&&(d.c[d.c.length]=b,true)}return d}else{return mmb(),mmb(),jmb}} +function Vpd(a){var b,c;c=false;if(JD(a,204)){c=true;return BD(a,204).a}if(!c){if(JD(a,258)){b=BD(a,258).a%1==0;if(b){c=true;return meb(Idb(BD(a,258).a))}}}throw vbb(new cqd("Id must be a string or an integer: '"+a+"'."))} +function k0d(a,b){var c,d,e,f,g,h;f=null;for(e=new x0d((!a.a&&(a.a=new z0d(a)),a.a));u0d(e);){c=BD(Vud(e),56);d=(g=c.Tg(),h=(OKd(g),g.o),!h||!c.mh(h)?null:h6d(KJd(h),c.ah(h)));if(d!=null){if(dfb(d,b)){f=c;break}}}return f} +function Bw(a,b,c){var d,e,f,g,h;Xj(c,'occurrences');if(c==0){return h=BD(Hv(nd(a.a),b),14),!h?0:h.gc()}g=BD(Hv(nd(a.a),b),14);if(!g){return 0}f=g.gc();if(c>=f){g.$b()}else{e=g.Kc();for(d=0;d<c;d++){e.Pb();e.Qb()}}return f} +function ax(a,b,c){var d,e,f,g;Xj(c,'oldCount');Xj(0,'newCount');d=BD(Hv(nd(a.a),b),14);if((!d?0:d.gc())==c){Xj(0,'count');e=(f=BD(Hv(nd(a.a),b),14),!f?0:f.gc());g=-e;g>0?zh():g<0&&Bw(a,b,-g);return true}else{return false}} +function fIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){g=jIb(a,true);b=0;for(d=g,e=0,f=d.length;e<f;++e){c=d[e];if(c>0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}else{h=Mtb(Zzb(OAb(JAb(Plb(a.a),new xIb),new zIb)))}return h>0?h+a.n.d+a.n.a:0} +function gIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){h=Mtb(Zzb(OAb(JAb(Plb(a.a),new tIb),new vIb)))}else{g=kIb(a,true);b=0;for(d=g,e=0,f=d.length;e<f;++e){c=d[e];if(c>0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}return h>0?h+a.n.b+a.n.c:0} +function MJb(a,b){var c,d,e,f;f=BD(Mpb(a.b,b),124);c=f.a;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);!!d.c&&(c.a=$wnd.Math.max(c.a,ZHb(d.c)))}if(c.a>0){switch(b.g){case 2:f.n.c=a.s;break;case 4:f.n.b=a.s;}}} +function NQb(a,b){var c,d,e;c=BD(vNb(b,(wSb(),oSb)),19).a-BD(vNb(a,oSb),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(HSb(),DSb)),8)),BD(vNb(a,ESb),8));e=c7c(R6c(BD(vNb(b,DSb),8)),BD(vNb(b,ESb),8));return Kdb(d.a*d.b,e.a*e.b)}return c} +function iRc(a,b){var c,d,e;c=BD(vNb(b,(JTc(),ETc)),19).a-BD(vNb(a,ETc),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(mTc(),VSc)),8)),BD(vNb(a,WSc),8));e=c7c(R6c(BD(vNb(b,VSc),8)),BD(vNb(b,WSc),8));return Kdb(d.a*d.b,e.a*e.b)}return c} +function TZb(a){var b,c;c=new Ufb;c.a+='e_';b=KZb(a);b!=null&&(c.a+=''+b,c);if(!!a.c&&!!a.d){Qfb((c.a+=' ',c),C0b(a.c));Qfb(Pfb((c.a+='[',c),a.c.i),']');Qfb((c.a+=gne,c),C0b(a.d));Qfb(Pfb((c.a+='[',c),a.d.i),']')}return c.a} +function zRc(a){switch(a.g){case 0:return new lUc;case 1:return new sUc;case 2:return new CUc;case 3:return new IUc;default:throw vbb(new Wdb('No implementation is available for the layout phase '+(a.f!=null?a.f:''+a.g)));}} +function mfd(a,b,c,d,e){var f;f=0;switch(e.g){case 1:f=$wnd.Math.max(0,b.b+a.b-(c.b+d));break;case 3:f=$wnd.Math.max(0,-a.b-d);break;case 2:f=$wnd.Math.max(0,-a.a-d);break;case 4:f=$wnd.Math.max(0,b.a+a.a-(c.a+d));}return f} +function mqd(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new Yge(e);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);f=Zpd(c,g.a);Lte in f.a||Mte in f.a?$qd(a,f,b):erd(a,f,b);otd(BD(Ohb(a.b,Wpd(f)),79))}}} +function LJd(a){var b,c;switch(a.b){case -1:{return true}case 0:{c=a.t;if(c>1||c==-1){a.b=-1;return true}else{b=wId(a);if(!!b&&(Q6d(),b.Cj()==Bve)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}} +function k1d(a,b){var c,d,e,f,g;d=(!b.s&&(b.s=new cUd(t5,b,21,17)),b.s);f=null;for(e=0,g=d.i;e<g;++e){c=BD(qud(d,e),170);switch($1d(q1d(a,c))){case 2:case 3:{!f&&(f=new Rkb);f.c[f.c.length]=c}}}return !f?(mmb(),mmb(),jmb):f} +function tde(a,b){var c,d,e,f;nde(a);if(a.c!=0||a.a!=123)throw vbb(new mde(tvd((h0d(),Fue))));f=b==112;d=a.d;c=gfb(a.i,125,d);if(c<0)throw vbb(new mde(tvd((h0d(),Gue))));e=qfb(a.i,d,c);a.d=c+1;return Lfe(e,f,(a.e&512)==512)} +function QTb(a){var b;b=BD(vNb(a,(Nyc(),Iwc)),314);if(b==(Rpc(),Ppc)){throw vbb(new z2c('The hierarchy aware processor '+b+' in child node '+a+' is only allowed if the root node specifies the same hierarchical processor.'))}} +function dhc(a,b){Hgc();var c,d,e,f,g,h;c=null;for(g=b.Kc();g.Ob();){f=BD(g.Pb(),128);if(f.o){continue}d=F6c(f.a);e=C6c(f.a);h=new hic(d,e,null,BD(f.d.a.ec().Kc().Pb(),17));Ekb(h.c,f.a);a.c[a.c.length]=h;!!c&&Ekb(c.d,h);c=h}} +function hKd(a,b){var c,d,e;if(!b){jKd(a,null);_Jd(a,null)}else if((b.i&4)!=0){d='[]';for(c=b.c;;c=c.c){if((c.i&4)==0){e=jfb((fdb(c),c.o+d));jKd(a,e);_Jd(a,e);break}d+='[]'}}else{e=jfb((fdb(b),b.o));jKd(a,e);_Jd(a,e)}a.yk(b)} +function b3d(a,b,c,d,e){var f,g,h,i;i=a3d(a,BD(e,56));if(PD(i)!==PD(e)){h=BD(a.g[c],72);f=R6d(b,i);mud(a,c,t3d(a,c,f));if(oid(a.e)){g=H2d(a,9,f.ak(),e,i,d,false);Qwd(g,new pSd(a.e,9,a.c,h,f,d,false));Rwd(g)}return i}return e} +function xCc(a,b,c){var d,e,f,g,h,i;d=BD(Qc(a.c,b),15);e=BD(Qc(a.c,c),15);f=d.Zc(d.gc());g=e.Zc(e.gc());while(f.Sb()&&g.Sb()){h=BD(f.Ub(),19);i=BD(g.Ub(),19);if(h!=i){return beb(h.a,i.a)}}return !f.Ob()&&!g.Ob()?0:f.Ob()?1:-1} +function m5c(c,d){var e,f,g;try{g=fs(c.a,d);return g}catch(b){b=ubb(b);if(JD(b,32)){try{f=Icb(d,Rie,Ohe);e=gdb(c.a);if(f>=0&&f<e.length){return e[f]}}catch(a){a=ubb(a);if(!JD(a,127))throw vbb(a)}return null}else throw vbb(b)}} +function tid(a,b){var c,d,e;e=e1d((O6d(),M6d),a.Tg(),b);if(e){Q6d();BD(e,66).Oj()||(e=_1d(q1d(M6d,e)));d=(c=a.Yg(e),BD(c>=0?a._g(c,true,true):sid(a,e,true),153));return BD(d,215).ll(b)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} +function BZd(){tZd();var a;if(sZd)return BD(nUd((yFd(),xFd),_ve),1939);rEd(CK,new J_d);CZd();a=BD(JD(Phb((yFd(),xFd),_ve),547)?Phb(xFd,_ve):new AZd,547);sZd=true;yZd(a);zZd(a);Rhb((JFd(),IFd),a,new EZd);Shb(xFd,_ve,a);return a} +function v2d(a,b){var c,d,e,f;a.j=-1;if(oid(a.e)){c=a.i;f=a.i!=0;lud(a,b);d=new pSd(a.e,3,a.c,null,b,c,f);e=b.Qk(a.e,a.c,null);e=h3d(a,b,e);if(!e){Uhd(a.e,d)}else{e.Ei(d);e.Fi()}}else{lud(a,b);e=b.Qk(a.e,a.c,null);!!e&&e.Fi()}} +function rA(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=(BCb(d,a.length),a.charCodeAt(d));while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=(BCb(d,a.length),a.charCodeAt(d))}d>b[0]?(b[0]=d):(e=-1);return e} +function vMb(a){var b,c,d,e,f;e=BD(a.a,19).a;f=BD(a.b,19).a;c=e;d=f;b=$wnd.Math.max($wnd.Math.abs(e),$wnd.Math.abs(f));if(e<=0&&e==f){c=0;d=f-1}else{if(e==-b&&f!=b){c=f;d=e;f>=0&&++c}else{c=-f;d=e}}return new vgd(meb(c),meb(d))} +function fNb(a,b,c,d){var e,f,g,h,i,j;for(e=0;e<b.o;e++){f=e-b.j+c;for(g=0;g<b.p;g++){h=g-b.k+d;if((i=f,j=h,i+=a.j,j+=a.k,i>=0&&j>=0&&i<a.o&&j<a.p)&&(!ZMb(b,e,g)&&hNb(a,f,h)||YMb(b,e,g)&&!iNb(a,f,h))){return true}}}return false} +function LNc(a,b,c){var d,e,f,g,h;g=a.c;h=a.d;f=l7c(OC(GC(m1,1),nie,8,0,[g.i.n,g.n,g.a])).b;e=(f+l7c(OC(GC(m1,1),nie,8,0,[h.i.n,h.n,h.a])).b)/2;d=null;g.j==(Ucd(),zcd)?(d=new f7c(b+g.i.c.c.a+c,e)):(d=new f7c(b-c,e));St(a.a,0,d)} +function Qld(a){var b,c,d,e;b=null;for(d=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c)])));Qr(d);){c=BD(Rr(d),82);e=atd(c);if(!b){b=e}else if(b!=e){return false}}return true} +function sud(a,b,c){var d;++a.j;if(b>=a.i)throw vbb(new qcb(lue+b+mue+a.i));if(c>=a.i)throw vbb(new qcb(nue+c+mue+a.i));d=a.g[c];if(b!=c){b<c?$fb(a.g,b,a.g,b+1,c-b):$fb(a.g,c+1,a.g,c,b-c);NC(a.g,b,d);a.ei(b,d,c);a.ci()}return d} +function Rc(a,b,c){var d;d=BD(a.c.xc(b),14);if(!d){d=a.ic(b);if(d.Fc(c)){++a.d;a.c.zc(b,d);return true}else{throw vbb(new ycb('New Collection violated the Collection spec'))}}else if(d.Fc(c)){++a.d;return true}else{return false}} +function heb(a){var b,c,d;if(a<0){return 0}else if(a==0){return 32}else{d=-(a>>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-Rje;b=d>>16&4;c+=b;a<<=b;d=a-oie;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}} +function $Pb(a){QPb();var b,c,d,e;PPb=new Rkb;OPb=new Lqb;NPb=new Rkb;b=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a);SPb(b);for(e=new Fyd(b);e.e!=e.i.gc();){d=BD(Dyd(e),33);if(Jkb(PPb,d,0)==-1){c=new Rkb;Ekb(NPb,c);TPb(d,c)}}return NPb} +function BQb(a,b,c){var d,e,f,g;a.a=c.b.d;if(JD(b,352)){e=itd(BD(b,79),false,false);f=ofd(e);d=new FQb(a);reb(f,d);ifd(f,e);b.We((Y9c(),Q8c))!=null&&reb(BD(b.We(Q8c),74),d)}else{g=BD(b,470);g.Hg(g.Dg()+a.a.a);g.Ig(g.Eg()+a.a.b)}} +function _5b(a,b){var c,d,e,f,g,h,i,j;j=Edb(ED(vNb(b,(Nyc(),zyc))));i=a[0].n.a+a[0].o.a+a[0].d.c+j;for(h=1;h<a.length;h++){d=a[h].n;e=a[h].o;c=a[h].d;f=d.a-c.b-i;f<0&&(d.a-=f);g=b.f;g.a=$wnd.Math.max(g.a,d.a+e.a);i=d.a+e.a+c.c+j}} +function D$c(a,b){var c,d,e,f,g,h;d=BD(BD(Ohb(a.g,b.a),46).a,65);e=BD(BD(Ohb(a.g,b.b),46).a,65);f=d.b;g=e.b;c=z6c(f,g);if(c>=0){return c}h=U6c(c7c(new f7c(g.c+g.b/2,g.d+g.a/2),new f7c(f.c+f.b/2,f.d+f.a/2)));return -(xOb(f,g)-1)*h} +function ufd(a,b,c){var d;MAb(new YAb(null,(!c.a&&(c.a=new cUd(A2,c,6,6)),new Kub(c.a,16))),new Mfd(a,b));MAb(new YAb(null,(!c.n&&(c.n=new cUd(D2,c,1,7)),new Kub(c.n,16))),new Ofd(a,b));d=BD(hkd(c,(Y9c(),Q8c)),74);!!d&&p7c(d,a,b)} +function sid(a,b,c){var d,e,f;f=e1d((O6d(),M6d),a.Tg(),b);if(f){Q6d();BD(f,66).Oj()||(f=_1d(q1d(M6d,f)));e=(d=a.Yg(f),BD(d>=0?a._g(d,true,true):sid(a,f,true),153));return BD(e,215).hl(b,c)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} +function wAd(a,b,c,d){var e,f,g,h,i;e=a.d[b];if(e){f=e.g;i=e.i;if(d!=null){for(h=0;h<i;++h){g=BD(f[h],133);if(g.Sh()==c&&pb(d,g.cd())){return g}}}else{for(h=0;h<i;++h){g=BD(f[h],133);if(PD(g.cd())===PD(d)){return g}}}}return null} +function Pgb(a,b){var c;if(b<0){throw vbb(new ocb('Negative exponent'))}if(b==0){return Cgb}else if(b==1||Kgb(a,Cgb)||Kgb(a,Ggb)){return a}if(!Sgb(a,0)){c=1;while(!Sgb(a,c)){++c}return Ogb(bhb(c*b),Pgb(Rgb(a,c),b))}return Jhb(a,b)} +function xlb(a,b){var c,d,e;if(PD(a)===PD(b)){return true}if(a==null||b==null){return false}if(a.length!=b.length){return false}for(c=0;c<a.length;++c){d=a[c];e=b[c];if(!(PD(d)===PD(e)||d!=null&&pb(d,e))){return false}}return true} +function CVb(a){nVb();var b,c,d;this.b=mVb;this.c=(ead(),cad);this.f=(iVb(),hVb);this.a=a;zVb(this,new DVb);sVb(this);for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),81);if(!c.d){b=new gVb(OC(GC(IP,1),Uhe,81,0,[c]));Ekb(a.a,b)}}} +function D3b(a,b,c){var d,e,f,g,h,i;if(!a||a.c.length==0){return null}f=new cIb(b,!c);for(e=new olb(a);e.a<e.c.c.length;){d=BD(mlb(e),70);UHb(f,(a$b(),new v$b(d)))}g=f.i;g.a=(i=f.n,f.e.b+i.d+i.a);g.b=(h=f.n,f.e.a+h.b+h.c);return f} +function O5b(a){var b,c,d,e,f,g,h;h=l_b(a.a);Nlb(h,new T5b);c=null;for(e=h,f=0,g=e.length;f<g;++f){d=e[f];if(d.k!=(j0b(),e0b)){break}b=BD(vNb(d,(wtc(),Hsc)),61);if(b!=(Ucd(),Tcd)&&b!=zcd){continue}!!c&&BD(vNb(c,Qsc),15).Fc(d);c=d}} +function YOc(a,b,c){var d,e,f,g,h,i,j;i=(tCb(b,a.c.length),BD(a.c[b],329));Kkb(a,b);if(i.b/2>=c){d=b;j=(i.c+i.a)/2;g=j-c;if(i.c<=j-c){e=new bPc(i.c,g);Dkb(a,d++,e)}h=j+c;if(h<=i.a){f=new bPc(h,i.a);wCb(d,a.c.length);aCb(a.c,d,f)}}} +function u0d(a){var b;if(!a.c&&a.g==null){a.d=a.si(a.f);wtd(a,a.d);b=a.d}else{if(a.g==null){return true}else if(a.i==0){return false}else{b=BD(a.g[a.i-1],47)}}if(b==a.b&&null.km>=null.jm()){Vud(a);return u0d(a)}else{return b.Ob()}} +function KTb(a,b,c){var d,e,f,g,h;h=c;!h&&(h=Ydd(new Zdd,0));Odd(h,Vme,1);aUb(a.c,b);g=EYb(a.a,b);if(g.gc()==1){MTb(BD(g.Xb(0),37),h)}else{f=1/g.gc();for(e=g.Kc();e.Ob();){d=BD(e.Pb(),37);MTb(d,Udd(h,f))}}CYb(a.a,g,b);NTb(b);Qdd(h)} +function qYb(a){this.a=a;if(a.c.i.k==(j0b(),e0b)){this.c=a.c;this.d=BD(vNb(a.c.i,(wtc(),Hsc)),61)}else if(a.d.i.k==e0b){this.c=a.d;this.d=BD(vNb(a.d.i,(wtc(),Hsc)),61)}else{throw vbb(new Wdb('Edge '+a+' is not an external edge.'))}} +function oQd(a,b){var c,d,e;e=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,e,a.b));if(!b){pnd(a,null);qQd(a,0);pQd(a,null)}else if(b!=a){pnd(a,b.zb);qQd(a,b.d);c=(d=b.c,d==null?b.zb:d);pQd(a,c==null||dfb(c,b.zb)?null:c)}} +function NRd(a){var b,c;if(a.f){while(a.n<a.o){b=BD(!a.j?a.k.Xb(a.n):a.j.pi(a.n),72);c=b.ak();if(JD(c,99)&&(BD(c,18).Bb&ote)!=0&&(!a.e||c.Gj()!=x2||c.aj()!=0)&&b.dd()!=null){return true}else{++a.n}}return false}else{return a.n<a.o}} +function _i(a,b){var c;this.e=(im(),Qb(a),im(),nm(a));this.c=(Qb(b),nm(b));Lb(this.e.Hd().dc()==this.c.Hd().dc());this.d=Ev(this.e);this.b=Ev(this.c);c=IC(SI,[nie,Uhe],[5,1],5,[this.e.Hd().gc(),this.c.Hd().gc()],2);this.a=c;Ri(this)} +function vz(b){var c=(!tz&&(tz=wz()),tz);var d=b.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,function(a){return uz(a,c)});return '"'+d+'"'} +function cEb(a){ODb();var b,c;this.b=LDb;this.c=NDb;this.g=(FDb(),EDb);this.d=(ead(),cad);this.a=a;RDb(this);for(c=new olb(a.b);c.a<c.c.c.length;){b=BD(mlb(c),57);!b.a&&pDb(rDb(new sDb,OC(GC(PM,1),Uhe,57,0,[b])),a);b.e=new K6c(b.d)}} +function HQb(a){var b,c,d,e,f,g;e=a.e.c.length;d=KC(yK,eme,15,e,0,1);for(g=new olb(a.e);g.a<g.c.c.length;){f=BD(mlb(g),144);d[f.b]=new Psb}for(c=new olb(a.c);c.a<c.c.c.length;){b=BD(mlb(c),282);d[b.c.b].Fc(b);d[b.d.b].Fc(b)}return d} +function fDc(a){var b,c,d,e,f,g,h;h=Pu(a.c.length);for(e=new olb(a);e.a<e.c.c.length;){d=BD(mlb(e),10);g=new Tqb;f=U_b(d);for(c=new Sr(ur(f.a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);b.c.i==b.d.i||Qqb(g,b.d.i)}h.c[h.c.length]=g}return h} +function ozd(a,b){var c,d,e,f,g;c=BD(Ajd(a.a,4),126);g=c==null?0:c.length;if(b>=g)throw vbb(new Cyd(b,g));e=c[b];if(g==1){d=null}else{d=KC($3,hve,415,g-1,0,1);$fb(c,0,d,0,b);f=g-b-1;f>0&&$fb(c,b+1,d,b,f)}b0d(a,d);a0d(a,b,e);return e} +function m8d(){m8d=ccb;k8d=BD(qud(ZKd((r8d(),q8d).qb),6),34);h8d=BD(qud(ZKd(q8d.qb),3),34);i8d=BD(qud(ZKd(q8d.qb),4),34);j8d=BD(qud(ZKd(q8d.qb),5),18);XId(k8d);XId(h8d);XId(i8d);XId(j8d);l8d=new amb(OC(GC(t5,1),Mve,170,0,[k8d,h8d]))} +function AJb(a,b){var c;this.d=new H_b;this.b=b;this.e=new g7c(b.qf());c=a.u.Hc((rcd(),ocd));a.u.Hc(ncd)?a.D?(this.a=c&&!b.If()):(this.a=true):a.u.Hc(pcd)?c?(this.a=!(b.zf().Kc().Ob()||b.Bf().Kc().Ob())):(this.a=false):(this.a=false)} +function IKb(a,b){var c,d,e,f;c=a.o.a;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);e.e.a=(d=e.b,d.Xe((Y9c(),s9c))?d.Hf()==(Ucd(),Tcd)?-d.rf().a-Edb(ED(d.We(s9c))):c+Edb(ED(d.We(s9c))):d.Hf()==(Ucd(),Tcd)?-d.rf().a:c)}} +function Q1b(a,b){var c,d,e,f;c=BD(vNb(a,(Nyc(),Lwc)),103);f=BD(hkd(b,$xc),61);e=BD(vNb(a,Vxc),98);if(e!=(dcd(),bcd)&&e!=ccd){if(f==(Ucd(),Scd)){f=lfd(b,c);f==Scd&&(f=Zcd(c))}}else{d=M1b(b);d>0?(f=Zcd(c)):(f=Wcd(Zcd(c)))}jkd(b,$xc,f)} +function olc(a,b){var c,d,e,f,g;g=a.j;b.a!=b.b&&Okb(g,new Ulc);e=g.c.length/2|0;for(d=0;d<e;d++){f=(tCb(d,g.c.length),BD(g.c[d],113));f.c&&G0b(f.d,b.a)}for(c=e;c<g.c.length;c++){f=(tCb(c,g.c.length),BD(g.c[c],113));f.c&&G0b(f.d,b.b)}} +function TGc(a,b,c){var d,e,f;d=a.c[b.c.p][b.p];e=a.c[c.c.p][c.p];if(d.a!=null&&e.a!=null){f=Ddb(d.a,e.a);f<0?WGc(a,b,c):f>0&&WGc(a,c,b);return f}else if(d.a!=null){WGc(a,b,c);return -1}else if(e.a!=null){WGc(a,c,b);return 1}return 0} +function swd(a,b){var c,d,e,f;if(a.ej()){c=a.Vi();f=a.fj();++a.j;a.Hi(c,a.oi(c,b));d=a.Zi(3,null,b,c,f);if(a.bj()){e=a.cj(b,null);if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{Bvd(a,b);if(a.bj()){e=a.cj(b,null);!!e&&e.Fi()}}} +function D2d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);e=new yud;c=BD(a.g,119);for(f=a.i;--f>=0;){d=c[f];g.rl(d.ak())&&wtd(e,d)}!Yxd(a,e)&&oid(a.e)&&GLd(a,b.$j()?H2d(a,6,b,(mmb(),jmb),null,-1,false):H2d(a,b.Kj()?2:1,b,null,null,-1,false))} +function Dhb(){Dhb=ccb;var a,b;Bhb=KC(cJ,nie,91,32,0,1);Chb=KC(cJ,nie,91,32,0,1);a=1;for(b=0;b<=18;b++){Bhb[b]=ghb(a);Chb[b]=ghb(Nbb(a,b));a=Ibb(a,5)}for(;b<Chb.length;b++){Bhb[b]=Ogb(Bhb[b-1],Bhb[1]);Chb[b]=Ogb(Chb[b-1],(Hgb(),Egb))}} +function K4b(a,b){var c,d,e,f,g;if(a.a==(yrc(),wrc)){return true}f=b.a.c;c=b.a.c+b.a.b;if(b.j){d=b.A;g=d.c.c.a-d.o.a/2;e=f-(d.n.a+d.o.a);if(e>g){return false}}if(b.q){d=b.C;g=d.c.c.a-d.o.a/2;e=d.n.a-c;if(e>g){return false}}return true} +function wcc(a,b){var c;Odd(b,'Partition preprocessing',1);c=BD(GAb(JAb(LAb(JAb(new YAb(null,new Kub(a.a,16)),new Acc),new Ccc),new Ecc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);MAb(c.Oc(),new Gcc);Qdd(b)} +function DMc(a){wMc();var b,c,d,e,f,g,h;c=new $rb;for(e=new olb(a.e.b);e.a<e.c.c.length;){d=BD(mlb(e),29);for(g=new olb(d.a);g.a<g.c.c.length;){f=BD(mlb(g),10);h=a.g[f.p];b=BD(Wrb(c,h),15);if(!b){b=new Rkb;Xrb(c,h,b)}b.Fc(f)}}return c} +function dRc(a,b){var c,d,e,f,g;e=b.b.b;a.a=KC(yK,eme,15,e,0,1);a.b=KC(sbb,dle,25,e,16,1);for(g=Jsb(b.b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);a.a[f.g]=new Psb}for(d=Jsb(b.a,0);d.b!=d.d.c;){c=BD(Xsb(d),188);a.a[c.b.g].Fc(c);a.a[c.c.g].Fc(c)}} +function qmd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (startX: ';Bfb(b,a.j);b.a+=', startY: ';Bfb(b,a.k);b.a+=', endX: ';Bfb(b,a.b);b.a+=', endY: ';Bfb(b,a.c);b.a+=', identifier: ';Efb(b,a.d);b.a+=')';return b.a} +function EId(a){var b;if((a.Db&64)!=0)return qnd(a);b=new Jfb(qnd(a));b.a+=' (ordered: ';Ffb(b,(a.Bb&256)!=0);b.a+=', unique: ';Ffb(b,(a.Bb&512)!=0);b.a+=', lowerBound: ';Cfb(b,a.s);b.a+=', upperBound: ';Cfb(b,a.t);b.a+=')';return b.a} +function Wnd(a,b,c,d,e,f,g,h){var i;JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,c);a.f=d;dJd(a,e);fJd(a,f);ZId(a,g);eJd(a,false);CId(a,true);aJd(a,h);BId(a,true);AId(a,0);a.b=0;DId(a,1);i=xId(a,b,null);!!i&&i.Fi();MJd(a,false);return a} +function fyb(a,b){var c,d,e,f;c=BD(Phb(a.a,b),512);if(!c){d=new wyb(b);e=(oyb(),lyb)?null:d.c;f=qfb(e,0,$wnd.Math.max(0,kfb(e,wfb(46))));vyb(d,fyb(a,f));(lyb?null:d.c).length==0&&qyb(d,new zyb);Shb(a.a,lyb?null:d.c,d);return d}return c} +function BOb(a,b){var c;a.b=b;a.g=new Rkb;c=COb(a.b);a.e=c;a.f=c;a.c=Ccb(DD(vNb(a.b,(fFb(),$Eb))));a.a=ED(vNb(a.b,(Y9c(),r8c)));a.a==null&&(a.a=1);Edb(a.a)>1?(a.e*=Edb(a.a)):(a.f/=Edb(a.a));DOb(a);EOb(a);AOb(a);yNb(a.b,(CPb(),uPb),a.g)} +function Y5b(a,b,c){var d,e,f,g,h,i;d=0;i=c;if(!b){d=c*(a.c.length-1);i*=-1}for(f=new olb(a);f.a<f.c.c.length;){e=BD(mlb(f),10);yNb(e,(Nyc(),mwc),(F7c(),B7c));e.o.a=d;for(h=Y_b(e,(Ucd(),zcd)).Kc();h.Ob();){g=BD(h.Pb(),11);g.n.a=d}d+=i}} +function Qxd(a,b,c){var d,e,f;if(a.ej()){f=a.fj();kud(a,b,c);d=a.Zi(3,null,c,b,f);if(a.bj()){e=a.cj(c,null);a.ij()&&(e=a.jj(c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{kud(a,b,c);if(a.bj()){e=a.cj(c,null);!!e&&e.Fi()}}} +function ILd(a,b,c){var d,e,f,g,h,i;h=a.Gk(c);if(h!=c){g=a.g[b];i=h;mud(a,b,a.oi(b,i));f=g;a.gi(b,i,f);if(a.rk()){d=c;e=a.dj(d,null);!BD(h,49).eh()&&(e=a.cj(i,e));!!e&&e.Fi()}oid(a.e)&&GLd(a,a.Zi(9,c,h,b,false));return h}else{return c}} +function pVb(a,b){var c,d,e,f;for(d=new olb(a.a.a);d.a<d.c.c.length;){c=BD(mlb(d),189);c.g=true}for(f=new olb(a.a.b);f.a<f.c.c.length;){e=BD(mlb(f),81);e.k=Ccb(DD(a.e.Kb(new vgd(e,b))));e.d.g=e.d.g&Ccb(DD(a.e.Kb(new vgd(e,b))))}return a} +function pkc(a){var b,c,d,e,f;c=(b=BD(gdb(F1),9),new xqb(b,BD(_Bb(b,b.length),9),0));f=BD(vNb(a,(wtc(),gtc)),10);if(f){for(e=new olb(f.j);e.a<e.c.c.length;){d=BD(mlb(e),11);PD(vNb(d,$sc))===PD(a)&&a1b(new b1b(d.b))&&rqb(c,d.j)}}return c} +function zCc(a,b,c){var d,e,f,g,h;if(a.d[c.p]){return}for(e=new Sr(ur(U_b(c).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);h=d.d.i;for(g=new Sr(ur(R_b(h).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);f.c.i==b&&(a.a[f.p]=true)}zCc(a,b,h)}a.d[c.p]=true} +function Bjd(a,b){var c,d,e,f,g,h,i;d=aeb(a.Db&254);if(d==1){a.Eb=null}else{f=CD(a.Eb);if(d==2){e=zjd(a,b);a.Eb=f[e==0?1:0]}else{g=KC(SI,Uhe,1,d-1,5,1);for(c=2,h=0,i=0;c<=128;c<<=1){c==b?++h:(a.Db&c)!=0&&(g[i++]=f[h++])}a.Eb=g}}a.Db&=~b} +function n1d(a,b){var c,d,e,f,g;d=(!b.s&&(b.s=new cUd(t5,b,21,17)),b.s);f=null;for(e=0,g=d.i;e<g;++e){c=BD(qud(d,e),170);switch($1d(q1d(a,c))){case 4:case 5:case 6:{!f&&(f=new Rkb);f.c[f.c.length]=c;break}}}return !f?(mmb(),mmb(),jmb):f} +function Uee(a){var b;b=0;switch(a){case 105:b=2;break;case 109:b=8;break;case 115:b=4;break;case 120:b=16;break;case 117:b=32;break;case 119:b=64;break;case 70:b=256;break;case 72:b=128;break;case 88:b=512;break;case 44:b=zte;}return b} +function Ghb(a,b,c,d,e){var f,g,h,i;if(PD(a)===PD(b)&&d==e){Lhb(a,d,c);return}for(h=0;h<d;h++){g=0;f=a[h];for(i=0;i<e;i++){g=wbb(wbb(Ibb(xbb(f,Yje),xbb(b[i],Yje)),xbb(c[h+i],Yje)),xbb(Tbb(g),Yje));c[h+i]=Tbb(g);g=Pbb(g,32)}c[h+e]=Tbb(g)}} +function COb(a){var b,c,d,e,f,g,h,i,j,k,l;k=0;j=0;e=a.a;h=e.a.gc();for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),561);b=(c.b&&LOb(c),c.a);l=b.a;g=b.b;k+=l+g;j+=l*g}i=$wnd.Math.sqrt(400*h*j-4*j+k*k)+k;f=2*(100*h-1);if(f==0){return i}return i/f} +function mOc(a,b){if(b.b!=0){isNaN(a.s)?(a.s=Edb((sCb(b.b!=0),ED(b.a.a.c)))):(a.s=$wnd.Math.min(a.s,Edb((sCb(b.b!=0),ED(b.a.a.c)))));isNaN(a.c)?(a.c=Edb((sCb(b.b!=0),ED(b.c.b.c)))):(a.c=$wnd.Math.max(a.c,Edb((sCb(b.b!=0),ED(b.c.b.c)))))}} +function Pld(a){var b,c,d,e;b=null;for(d=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c)])));Qr(d);){c=BD(Rr(d),82);e=atd(c);if(!b){b=Xod(e)}else if(b!=Xod(e)){return true}}return false} +function Rxd(a,b){var c,d,e,f;if(a.ej()){c=a.i;f=a.fj();lud(a,b);d=a.Zi(3,null,b,c,f);if(a.bj()){e=a.cj(b,null);a.ij()&&(e=a.jj(b,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{lud(a,b);if(a.bj()){e=a.cj(b,null);!!e&&e.Fi()}}} +function rwd(a,b,c){var d,e,f;if(a.ej()){f=a.fj();++a.j;a.Hi(b,a.oi(b,c));d=a.Zi(3,null,c,b,f);if(a.bj()){e=a.cj(c,null);if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{++a.j;a.Hi(b,a.oi(b,c));if(a.bj()){e=a.cj(c,null);!!e&&e.Fi()}}} +function Wee(a){var b,c,d,e;e=a.length;b=null;for(d=0;d<e;d++){c=(BCb(d,a.length),a.charCodeAt(d));if(hfb('.*+?{[()|\\^$',wfb(c))>=0){if(!b){b=new Ifb;d>0&&Efb(b,a.substr(0,d))}b.a+='\\';Afb(b,c&aje)}else !!b&&Afb(b,c&aje)}return b?b.a:a} +function l5c(a){var b;if(!a.a){throw vbb(new Zdb('IDataType class expected for layout option '+a.f))}b=gvd(a.a);if(b==null){throw vbb(new Zdb("Couldn't create new instance of property '"+a.f+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return BD(b,414)} +function aid(a){var b,c,d,e,f;f=a.eh();if(f){if(f.kh()){e=xid(a,f);if(e!=f){c=a.Vg();d=(b=a.Vg(),b>=0?a.Qg(null):a.eh().ih(a,-1-b,null,null));a.Rg(BD(e,49),c);!!d&&d.Fi();a.Lg()&&a.Mg()&&c>-1&&Uhd(a,new nSd(a,9,c,f,e));return e}}}return f} +function nTb(a){var b,c,d,e,f,g,h,i;g=0;f=a.f.e;for(d=0;d<f.c.length;++d){h=(tCb(d,f.c.length),BD(f.c[d],144));for(e=d+1;e<f.c.length;++e){i=(tCb(e,f.c.length),BD(f.c[e],144));c=S6c(h.d,i.d);b=c-a.a[h.b][i.b];g+=a.i[h.b][i.b]*b*b}}return g} +function _ac(a,b){var c;if(wNb(b,(Nyc(),mxc))){return}c=hbc(BD(vNb(b,Uac),360),BD(vNb(a,mxc),163));yNb(b,Uac,c);if(Qr(new Sr(ur(O_b(b).a.Kc(),new Sq)))){return}switch(c.g){case 1:yNb(b,mxc,(Ctc(),xtc));break;case 2:yNb(b,mxc,(Ctc(),ztc));}} +function wkc(a,b){var c;mkc(a);a.a=(c=new Ji,MAb(new YAb(null,new Kub(b.d,16)),new Vkc(c)),c);rkc(a,BD(vNb(b.b,(Nyc(),Wwc)),376));tkc(a);skc(a);qkc(a);ukc(a);vkc(a,b);MAb(LAb(new YAb(null,$i(Yi(a.b).a)),new Lkc),new Nkc);b.a=false;a.a=null} +function Bod(){fod.call(this,yte,(Fhd(),Ehd));this.p=null;this.a=null;this.f=null;this.n=null;this.g=null;this.c=null;this.i=null;this.j=null;this.d=null;this.b=null;this.e=null;this.k=null;this.o=null;this.s=null;this.q=false;this.r=false} +function Csd(){Csd=ccb;Bsd=new Dsd(Wne,0);ysd=new Dsd('INSIDE_SELF_LOOPS',1);zsd=new Dsd('MULTI_EDGES',2);xsd=new Dsd('EDGE_LABELS',3);Asd=new Dsd('PORTS',4);vsd=new Dsd('COMPOUND',5);usd=new Dsd('CLUSTERS',6);wsd=new Dsd('DISCONNECTED',7)} +function Sgb(a,b){var c,d,e;if(b==0){return (a.a[0]&1)!=0}if(b<0){throw vbb(new ocb('Negative bit address'))}e=b>>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=Mgb(a);if(e<d){return false}else d==e?(c=-c):(c=~c)}return (c&b)!=0} +function O1c(a,b,c,d){var e;BD(c.b,65);BD(c.b,65);BD(d.b,65);BD(d.b,65);e=c7c(R6c(BD(c.b,65).c),BD(d.b,65).c);$6c(e,YNb(BD(c.b,65),BD(d.b,65),e));BD(d.b,65);BD(d.b,65);BD(d.b,65).c.a+e.a;BD(d.b,65).c.b+e.b;BD(d.b,65);Hkb(d.a,new T1c(a,b,d))} +function vNd(a,b){var c,d,e,f,g,h,i;f=b.e;if(f){c=aid(f);d=BD(a.g,674);for(g=0;g<a.i;++g){i=d[g];if(JQd(i)==c){e=(!i.d&&(i.d=new xMd(j5,i,1)),i.d);h=BD(c.ah(Nid(f,f.Cb,f.Db>>16)),15).Xc(f);if(h<e.i){return vNd(a,BD(qud(e,h),87))}}}}return b} +function bcb(a,b,c){var d=_bb,h;var e=d[a];var f=e instanceof Array?e[0]:null;if(e&&!f){_=e}else{_=(h=b&&b.prototype,!h&&(h=_bb[b]),ecb(h));_.hm=c;!b&&(_.im=gcb);d[a]=_}for(var g=3;g<arguments.length;++g){arguments[g].prototype=_}f&&(_.gm=f)} +function Qr(a){var b;while(!BD(Qb(a.a),47).Ob()){a.d=Pr(a);if(!a.d){return false}a.a=BD(a.d.Pb(),47);if(JD(a.a,39)){b=BD(a.a,39);a.a=b.a;!a.b&&(a.b=new jkb);Wjb(a.b,a.d);if(b.b){while(!akb(b.b)){Wjb(a.b,BD(gkb(b.b),47))}}a.d=b.d}}return true} +function krb(a,b){var c,d,e,f,g;f=b==null?0:a.b.se(b);d=(c=a.a.get(f),c==null?new Array:c);for(g=0;g<d.length;g++){e=d[g];if(a.b.re(b,e.cd())){if(d.length==1){d.length=0;trb(a.a,f)}else{d.splice(g,1)}--a.c;zpb(a.b);return e.dd()}}return null} +function GGb(a,b){var c,d,e,f;e=1;b.j=true;f=null;for(d=new olb(LFb(b));d.a<d.c.c.length;){c=BD(mlb(d),213);if(!a.c[c.c]){a.c[c.c]=true;f=xFb(c,b);if(c.f){e+=GGb(a,f)}else if(!f.j&&c.a==c.e.e-c.d.e){c.f=true;Qqb(a.p,c);e+=GGb(a,f)}}}return e} +function MVb(a){var b,c,d;for(c=new olb(a.a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),81);d=(uCb(0),0);if(d>0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}} +function N3b(a){var b,c,d,e,f;e=new Rkb;f=O3b(a,e);b=BD(vNb(a,(wtc(),gtc)),10);if(b){for(d=new olb(b.j);d.a<d.c.c.length;){c=BD(mlb(d),11);PD(vNb(c,$sc))===PD(a)&&(f=$wnd.Math.max(f,O3b(c,e)))}}e.c.length==0||yNb(a,Ysc,f);return f!=-1?e:null} +function a9b(a,b,c){var d,e,f,g,h,i;f=BD(Ikb(b.e,0),17).c;d=f.i;e=d.k;i=BD(Ikb(c.g,0),17).d;g=i.i;h=g.k;e==(j0b(),g0b)?yNb(a,(wtc(),Vsc),BD(vNb(d,Vsc),11)):yNb(a,(wtc(),Vsc),f);h==g0b?yNb(a,(wtc(),Wsc),BD(vNb(g,Wsc),11)):yNb(a,(wtc(),Wsc),i)} +function Rs(a,b){var c,d,e,f;f=Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)));c=f&a.b.length-1;e=null;for(d=a.b[c];d;e=d,d=d.a){if(d.d==f&&Hb(d.i,b)){!e?(a.b[c]=d.a):(e.a=d.a);Bs(d.c,d.f);As(d.b,d.e);--a.f;++a.e;return true}}return false} +function lD(a,b){var c,d,e,f,g;b&=63;c=a.h;d=(c&Gje)!=0;d&&(c|=-1048576);if(b<22){g=c>>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?Fje:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?Fje:0;f=d?Eje:0;e=c>>b-44}return TC(e&Eje,f&Eje,g&Fje)} +function XOb(a){var b,c,d,e,f,g;this.c=new Rkb;this.d=a;d=Pje;e=Pje;b=Qje;c=Qje;for(g=Jsb(a,0);g.b!=g.d.c;){f=BD(Xsb(g),8);d=$wnd.Math.min(d,f.a);e=$wnd.Math.min(e,f.b);b=$wnd.Math.max(b,f.a);c=$wnd.Math.max(c,f.b)}this.a=new J6c(d,e,b-d,c-e)} +function Dac(a,b){var c,d,e,f,g,h;for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);for(h=new olb(e.a);h.a<h.c.c.length;){g=BD(mlb(h),10);g.k==(j0b(),f0b)&&zac(g,b);for(d=new Sr(ur(U_b(g).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);yac(c,b)}}}} +function Xoc(a){var b,c,d;this.c=a;d=BD(vNb(a,(Nyc(),Lwc)),103);b=Edb(ED(vNb(a,owc)));c=Edb(ED(vNb(a,Dyc)));d==(ead(),aad)||d==bad||d==cad?(this.b=b*c):(this.b=1/(b*c));this.j=Edb(ED(vNb(a,wyc)));this.e=Edb(ED(vNb(a,vyc)));this.f=a.b.c.length} +function ADc(a){var b,c;a.e=KC(WD,oje,25,a.p.c.length,15,1);a.k=KC(WD,oje,25,a.p.c.length,15,1);for(c=new olb(a.p);c.a<c.c.c.length;){b=BD(mlb(c),10);a.e[b.p]=sr(new Sr(ur(R_b(b).a.Kc(),new Sq)));a.k[b.p]=sr(new Sr(ur(U_b(b).a.Kc(),new Sq)))}} +function DDc(a){var b,c,d,e,f,g;e=0;a.q=new Rkb;b=new Tqb;for(g=new olb(a.p);g.a<g.c.c.length;){f=BD(mlb(g),10);f.p=e;for(d=new Sr(ur(U_b(f).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);Qqb(b,c.d.i)}b.a.Bc(f)!=null;Ekb(a.q,new Vqb(b));b.a.$b();++e}} +function JTc(){JTc=ccb;CTc=new q0b(20);BTc=new Osd((Y9c(),f9c),CTc);HTc=new Osd(T9c,20);uTc=new Osd(r8c,tme);ETc=new Osd(D9c,meb(1));GTc=new Osd(H9c,(Bcb(),true));vTc=y8c;xTc=Y8c;yTc=_8c;zTc=b9c;wTc=W8c;ATc=e9c;DTc=x9c;ITc=(rTc(),pTc);FTc=nTc} +function RBd(a,b){var c,d,e,f,g,h,i,j,k;if(a.a.f>0&&JD(b,42)){a.a.qj();j=BD(b,42);i=j.cd();f=i==null?0:tb(i);g=DAd(a.a,f);c=a.a.d[g];if(c){d=BD(c.g,367);k=c.i;for(h=0;h<k;++h){e=d[h];if(e.Sh()==f&&e.Fb(j)){RBd(a,j);return true}}}}return false} +function skc(a){var b,c,d,e;for(e=BD(Qc(a.a,(Xjc(),Ujc)),15).Kc();e.Ob();){d=BD(e.Pb(),101);c=(b=Ec(d.k),b.Hc((Ucd(),Acd))?b.Hc(zcd)?b.Hc(Rcd)?b.Hc(Tcd)?null:dkc:fkc:ekc:ckc);kkc(a,d,c[0],(Fkc(),Ckc),0);kkc(a,d,c[1],Dkc,1);kkc(a,d,c[2],Ekc,1)}} +function enc(a,b){var c,d;c=fnc(b);inc(a,b,c);uPc(a.a,BD(vNb(Q_b(b.b),(wtc(),jtc)),230));dnc(a);cnc(a,b);d=KC(WD,oje,25,b.b.j.c.length,15,1);lnc(a,b,(Ucd(),Acd),d,c);lnc(a,b,zcd,d,c);lnc(a,b,Rcd,d,c);lnc(a,b,Tcd,d,c);a.a=null;a.c=null;a.b=null} +function OYc(){OYc=ccb;LYc=(zYc(),yYc);KYc=new Nsd(Bre,LYc);IYc=new Nsd(Cre,(Bcb(),true));meb(-1);FYc=new Nsd(Dre,meb(-1));meb(-1);GYc=new Nsd(Ere,meb(-1));JYc=new Nsd(Fre,false);MYc=new Nsd(Gre,true);HYc=new Nsd(Hre,false);NYc=new Nsd(Ire,-1)} +function yld(a,b,c){switch(b){case 7:!a.e&&(a.e=new y5d(B2,a,7,4));Uxd(a.e);!a.e&&(a.e=new y5d(B2,a,7,4));ytd(a.e,BD(c,14));return;case 8:!a.d&&(a.d=new y5d(B2,a,8,5));Uxd(a.d);!a.d&&(a.d=new y5d(B2,a,8,5));ytd(a.d,BD(c,14));return;}Zkd(a,b,c)} +function At(a,b){var c,d,e,f,g;if(PD(b)===PD(a)){return true}if(!JD(b,15)){return false}g=BD(b,15);if(a.gc()!=g.gc()){return false}f=g.Kc();for(d=a.Kc();d.Ob();){c=d.Pb();e=f.Pb();if(!(PD(c)===PD(e)||c!=null&&pb(c,e))){return false}}return true} +function U6b(a,b){var c,d,e,f;f=BD(GAb(LAb(LAb(new YAb(null,new Kub(b.b,16)),new $6b),new a7b),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);f.Jc(new c7b);c=0;for(e=f.Kc();e.Ob();){d=BD(e.Pb(),11);d.p==-1&&T6b(a,d,c++)}} +function Wzc(a){switch(a.g){case 0:return new KLc;case 1:return new dJc;case 2:return new tJc;case 3:return new CMc;case 4:return new $Jc;default:throw vbb(new Wdb('No implementation is available for the node placer '+(a.f!=null?a.f:''+a.g)));}} +function nqc(a){switch(a.g){case 0:return new aCc;case 1:return new VBc;case 2:return new kCc;case 3:return new rCc;case 4:return new eCc;default:throw vbb(new Wdb('No implementation is available for the cycle breaker '+(a.f!=null?a.f:''+a.g)));}} +function HWc(){HWc=ccb;BWc=new Nsd(lre,meb(0));CWc=new Nsd(mre,0);yWc=(pWc(),mWc);xWc=new Nsd(nre,yWc);meb(0);wWc=new Nsd(ore,meb(1));EWc=(sXc(),qXc);DWc=new Nsd(pre,EWc);GWc=(fWc(),eWc);FWc=new Nsd(qre,GWc);AWc=(iXc(),hXc);zWc=new Nsd(rre,AWc)} +function XXb(a,b,c){var d;d=null;!!b&&(d=b.d);hYb(a,new cWb(b.n.a-d.b+c.a,b.n.b-d.d+c.b));hYb(a,new cWb(b.n.a-d.b+c.a,b.n.b+b.o.b+d.a+c.b));hYb(a,new cWb(b.n.a+b.o.a+d.c+c.a,b.n.b-d.d+c.b));hYb(a,new cWb(b.n.a+b.o.a+d.c+c.a,b.n.b+b.o.b+d.a+c.b))} +function T6b(a,b,c){var d,e,f;b.p=c;for(f=ul(pl(OC(GC(KI,1),Uhe,20,0,[new J0b(b),new R0b(b)])));Qr(f);){d=BD(Rr(f),11);d.p==-1&&T6b(a,d,c)}if(b.i.k==(j0b(),g0b)){for(e=new olb(b.i.j);e.a<e.c.c.length;){d=BD(mlb(e),11);d!=b&&d.p==-1&&T6b(a,d,c)}}} +function rPc(a){var b,c,d,e,f;e=BD(GAb(IAb(UAb(a)),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);d=dme;if(e.gc()>=2){c=e.Kc();b=ED(c.Pb());while(c.Ob()){f=b;b=ED(c.Pb());d=$wnd.Math.min(d,(uCb(b),b)-(uCb(f),f))}}return d} +function gUc(a,b){var c,d,e,f,g;d=new Psb;Gsb(d,b,d.c.b,d.c);do{c=(sCb(d.b!=0),BD(Nsb(d,d.a.a),86));a.b[c.g]=1;for(f=Jsb(c.d,0);f.b!=f.d.c;){e=BD(Xsb(f),188);g=e.c;a.b[g.g]==1?Dsb(a.a,e):a.b[g.g]==2?(a.b[g.g]=1):Gsb(d,g,d.c.b,d.c)}}while(d.b!=0)} +function Ju(a,b){var c,d,e;if(PD(b)===PD(Qb(a))){return true}if(!JD(b,15)){return false}d=BD(b,15);e=a.gc();if(e!=d.gc()){return false}if(JD(d,54)){for(c=0;c<e;c++){if(!Hb(a.Xb(c),d.Xb(c))){return false}}return true}else{return kr(a.Kc(),d.Kc())}} +function Aac(a,b){var c,d;if(a.c.length!=0){if(a.c.length==2){zac((tCb(0,a.c.length),BD(a.c[0],10)),(rbd(),nbd));zac((tCb(1,a.c.length),BD(a.c[1],10)),obd)}else{for(d=new olb(a);d.a<d.c.c.length;){c=BD(mlb(d),10);zac(c,b)}}a.c=KC(SI,Uhe,1,0,5,1)}} +function uKc(a){var b,c;if(a.c.length!=2){throw vbb(new Zdb('Order only allowed for two paths.'))}b=(tCb(0,a.c.length),BD(a.c[0],17));c=(tCb(1,a.c.length),BD(a.c[1],17));if(b.d.i!=c.c.i){a.c=KC(SI,Uhe,1,0,5,1);a.c[a.c.length]=c;a.c[a.c.length]=b}} +function EMc(a,b){var c,d,e,f,g,h;d=new $rb;g=Gx(new amb(a.g));for(f=g.a.ec().Kc();f.Ob();){e=BD(f.Pb(),10);if(!e){Sdd(b,'There are no classes in a balanced layout.');break}h=a.j[e.p];c=BD(Wrb(d,h),15);if(!c){c=new Rkb;Xrb(d,h,c)}c.Fc(e)}return d} +function Dqd(a,b,c){var d,e,f,g,h,i,j;if(c){f=c.a.length;d=new Yge(f);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);i=Zpd(c,g.a);if(i){j=ftd(_pd(i,Ite),b);Rhb(a.f,j,i);e=Vte in i.a;e&&Lkd(j,_pd(i,Vte));grd(i,j);hrd(i,j)}}}} +function ndc(a,b){var c,d,e,f,g;Odd(b,'Port side processing',1);for(g=new olb(a.a);g.a<g.c.c.length;){e=BD(mlb(g),10);odc(e)}for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),29);for(f=new olb(c.a);f.a<f.c.c.length;){e=BD(mlb(f),10);odc(e)}}Qdd(b)} +function bfc(a,b,c){var d,e,f,g,h;e=a.f;!e&&(e=BD(a.a.a.ec().Kc().Pb(),57));cfc(e,b,c);if(a.a.a.gc()==1){return}d=b*c;for(g=a.a.a.ec().Kc();g.Ob();){f=BD(g.Pb(),57);if(f!=e){h=ugc(f);if(h.f.d){f.d.d+=d+ple;f.d.a-=d+ple}else h.f.a&&(f.d.a-=d+ple)}}} +function tQb(a,b,c,d,e){var f,g,h,i,j,k,l,m,n;g=c-a;h=d-b;f=$wnd.Math.atan2(g,h);i=f+cme;j=f-cme;k=e*$wnd.Math.sin(i)+a;m=e*$wnd.Math.cos(i)+b;l=e*$wnd.Math.sin(j)+a;n=e*$wnd.Math.cos(j)+b;return Ou(OC(GC(m1,1),nie,8,0,[new f7c(k,m),new f7c(l,n)]))} +function OLc(a,b,c,d){var e,f,g,h,i,j,k,l;e=c;k=b;f=k;do{f=a.a[f.p];h=(l=a.g[f.p],Edb(a.p[l.p])+Edb(a.d[f.p])-f.d.d);i=RLc(f,d);if(i){g=(j=a.g[i.p],Edb(a.p[j.p])+Edb(a.d[i.p])+i.o.b+i.d.a);e=$wnd.Math.min(e,h-(g+jBc(a.k,f,i)))}}while(k!=f);return e} +function PLc(a,b,c,d){var e,f,g,h,i,j,k,l;e=c;k=b;f=k;do{f=a.a[f.p];g=(l=a.g[f.p],Edb(a.p[l.p])+Edb(a.d[f.p])+f.o.b+f.d.a);i=QLc(f,d);if(i){h=(j=a.g[i.p],Edb(a.p[j.p])+Edb(a.d[i.p])-i.d.d);e=$wnd.Math.min(e,h-(g+jBc(a.k,f,i)))}}while(k!=f);return e} +function hkd(a,b){var c,d;d=(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),AAd(a.o,b));if(d!=null){return d}c=b.wg();JD(c,4)&&(c==null?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),LAd(a.o,b)):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),HAd(a.o,b,c)),a);return c} +function Hbd(){Hbd=ccb;zbd=new Ibd('H_LEFT',0);ybd=new Ibd('H_CENTER',1);Bbd=new Ibd('H_RIGHT',2);Gbd=new Ibd('V_TOP',3);Fbd=new Ibd('V_CENTER',4);Ebd=new Ibd('V_BOTTOM',5);Cbd=new Ibd('INSIDE',6);Dbd=new Ibd('OUTSIDE',7);Abd=new Ibd('H_PRIORITY',8)} +function o6d(a){var b,c,d,e,f,g,h;b=a.Hh(_ve);if(b){h=GD(AAd((!b.b&&(b.b=new sId((jGd(),fGd),x6,b)),b.b),'settingDelegates'));if(h!=null){c=new Rkb;for(e=mfb(h,'\\w+'),f=0,g=e.length;f<g;++f){d=e[f];c.c[c.c.length]=d}return c}}return mmb(),mmb(),jmb} +function sGb(a,b){var c,d,e,f,g,h,i;if(!b.f){throw vbb(new Wdb('The input edge is not a tree edge.'))}f=null;e=Ohe;for(d=new olb(a.d);d.a<d.c.c.length;){c=BD(mlb(d),213);h=c.d;i=c.e;if(xGb(a,h,b)&&!xGb(a,i,b)){g=i.e-h.e-c.a;if(g<e){e=g;f=c}}}return f} +function qTb(a){var b,c,d,e,f,g;if(a.f.e.c.length<=1){return}b=0;e=nTb(a);c=Pje;do{b>0&&(e=c);for(g=new olb(a.f.e);g.a<g.c.c.length;){f=BD(mlb(g),144);if(Ccb(DD(vNb(f,(bTb(),USb))))){continue}d=mTb(a,f);P6c(X6c(f.d),d)}c=nTb(a)}while(!pTb(a,b++,e,c))} +function $ac(a,b){var c,d,e;Odd(b,'Layer constraint preprocessing',1);c=new Rkb;e=new Bib(a.a,0);while(e.b<e.d.gc()){d=(sCb(e.b<e.d.gc()),BD(e.d.Xb(e.c=e.b++),10));if(Zac(d)){Xac(d);c.c[c.c.length]=d;uib(e)}}c.c.length==0||yNb(a,(wtc(),Lsc),c);Qdd(b)} +function sjc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new olb(a.d);d.a<d.c.c.length;){c=BD(mlb(d),70);e=c.n;a.a==(Ajc(),xjc)||a.i==(Ucd(),zcd)?(e.a=f):a.a==yjc||a.i==(Ucd(),Tcd)?(e.a=f+a.j.a-c.o.a):(e.a=f+(a.j.a-c.o.a)/2);e.b=g;P6c(e,b);g+=c.o.b+a.e}} +function LSc(a,b,c){var d,e,f,g;Odd(c,'Processor set coordinates',1);a.a=b.b.b==0?1:b.b.b;f=null;d=Jsb(b.b,0);while(!f&&d.b!=d.d.c){g=BD(Xsb(d),86);if(Ccb(DD(vNb(g,(mTc(),jTc))))){f=g;e=g.e;e.a=BD(vNb(g,kTc),19).a;e.b=0}}MSc(a,URc(f),Udd(c,1));Qdd(c)} +function xSc(a,b,c){var d,e,f;Odd(c,'Processor determine the height for each level',1);a.a=b.b.b==0?1:b.b.b;e=null;d=Jsb(b.b,0);while(!e&&d.b!=d.d.c){f=BD(Xsb(d),86);Ccb(DD(vNb(f,(mTc(),jTc))))&&(e=f)}!!e&&ySc(a,Ou(OC(GC(q$,1),fme,86,0,[e])),c);Qdd(c)} +function brd(a,b){var c,d,e,f,g,h,i,j,k,l;j=a;i=$pd(j,'individualSpacings');if(i){d=ikd(b,(Y9c(),O9c));g=!d;if(g){e=new _fd;jkd(b,O9c,e)}h=BD(hkd(b,O9c),373);l=i;f=null;!!l&&(f=(k=$B(l,KC(ZI,nie,2,0,6,1)),new mC(l,k)));if(f){c=new Frd(l,h);reb(f,c)}}} +function frd(a,b){var c,d,e,f,g,h,i,j,k,l,m;i=null;l=a;k=null;if(cue in l.a||due in l.a||Ote in l.a){j=null;m=etd(b);g=$pd(l,cue);c=new Ird(m);Eqd(c.a,g);h=$pd(l,due);d=new asd(m);Pqd(d.a,h);f=Ypd(l,Ote);e=new dsd(m);j=(Qqd(e.a,f),f);k=j}i=k;return i} +function $w(a,b){var c,d,e;if(b===a){return true}if(JD(b,543)){e=BD(b,835);if(a.a.d!=e.a.d||Ah(a).gc()!=Ah(e).gc()){return false}for(d=Ah(e).Kc();d.Ob();){c=BD(d.Pb(),416);if(Aw(a,c.a.cd())!=BD(c.a.dd(),14).gc()){return false}}return true}return false} +function BMb(a){var b,c,d,e;d=BD(a.a,19).a;e=BD(a.b,19).a;b=d;c=e;if(d==0&&e==0){c-=1}else{if(d==-1&&e<=0){b=0;c-=2}else{if(d<=0&&e>0){b-=1;c-=1}else{if(d>=0&&e<0){b+=1;c+=1}else{if(d>0&&e>=0){b-=1;c+=1}else{b+=1;c-=1}}}}}return new vgd(meb(b),meb(c))} +function PIc(a,b){if(a.c<b.c){return -1}else if(a.c>b.c){return 1}else if(a.b<b.b){return -1}else if(a.b>b.b){return 1}else if(a.a!=b.a){return tb(a.a)-tb(b.a)}else if(a.d==(UIc(),TIc)&&b.d==SIc){return -1}else if(a.d==SIc&&b.d==TIc){return 1}return 0} +function aNc(a,b){var c,d,e,f,g;f=b.a;f.c.i==b.b?(g=f.d):(g=f.c);f.c.i==b.b?(d=f.c):(d=f.d);e=NLc(a.a,g,d);if(e>0&&e<dme){c=OLc(a.a,d.i,e,a.c);TLc(a.a,d.i,-c);return c>0}else if(e<0&&-e<dme){c=PLc(a.a,d.i,-e,a.c);TLc(a.a,d.i,c);return c>0}return false} +function RZc(a,b,c,d){var e,f,g,h,i,j,k,l;e=(b-a.d)/a.c.c.length;f=0;a.a+=c;a.d=b;for(l=new olb(a.c);l.a<l.c.c.length;){k=BD(mlb(l),33);j=k.g;i=k.f;dld(k,k.i+f*e);eld(k,k.j+d*c);cld(k,k.g+e);ald(k,a.a);++f;h=k.g;g=k.f;Ffd(k,new f7c(h,g),new f7c(j,i))}} +function Xmd(a){var b,c,d,e,f,g,h;if(a==null){return null}h=a.length;e=(h+1)/2|0;g=KC(SD,wte,25,e,15,1);h%2!=0&&(g[--e]=jnd((BCb(h-1,a.length),a.charCodeAt(h-1))));for(c=0,d=0;c<e;++c){b=jnd(bfb(a,d++));f=jnd(bfb(a,d++));g[c]=(b<<4|f)<<24>>24}return g} +function vdb(a){if(a.pe()){var b=a.c;b.qe()?(a.o='['+b.n):!b.pe()?(a.o='[L'+b.ne()+';'):(a.o='['+b.ne());a.b=b.me()+'[]';a.k=b.oe()+'[]';return}var c=a.j;var d=a.d;d=d.split('/');a.o=ydb('.',[c,ydb('$',d)]);a.b=ydb('.',[c,ydb('.',d)]);a.k=d[d.length-1]} +function qGb(a,b){var c,d,e,f,g;g=null;for(f=new olb(a.e.a);f.a<f.c.c.length;){e=BD(mlb(f),121);if(e.b.a.c.length==e.g.a.c.length){d=e.e;g=BGb(e);for(c=e.e-BD(g.a,19).a+1;c<e.e+BD(g.b,19).a;c++){b[c]<b[d]&&(d=c)}if(b[d]<b[e.e]){--b[e.e];++b[d];e.e=d}}}} +function SLc(a){var b,c,d,e,f,g,h,i;e=Pje;d=Qje;for(c=new olb(a.e.b);c.a<c.c.c.length;){b=BD(mlb(c),29);for(g=new olb(b.a);g.a<g.c.c.length;){f=BD(mlb(g),10);i=Edb(a.p[f.p]);h=i+Edb(a.b[a.g[f.p].p]);e=$wnd.Math.min(e,i);d=$wnd.Math.max(d,h)}}return d-e} +function r1d(a,b,c,d){var e,f,g,h,i,j;i=null;e=f1d(a,b);for(h=0,j=e.gc();h<j;++h){f=BD(e.Xb(h),170);if(dfb(d,a2d(q1d(a,f)))){g=b2d(q1d(a,f));if(c==null){if(g==null){return f}else !i&&(i=f)}else if(dfb(c,g)){return f}else g==null&&!i&&(i=f)}}return null} +function s1d(a,b,c,d){var e,f,g,h,i,j;i=null;e=g1d(a,b);for(h=0,j=e.gc();h<j;++h){f=BD(e.Xb(h),170);if(dfb(d,a2d(q1d(a,f)))){g=b2d(q1d(a,f));if(c==null){if(g==null){return f}else !i&&(i=f)}else if(dfb(c,g)){return f}else g==null&&!i&&(i=f)}}return null} +function p3d(a,b,c){var d,e,f,g,h,i;g=new yud;h=S6d(a.e.Tg(),b);d=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(f=0;f<a.i;++f){e=d[f];h.rl(e.ak())&&wtd(g,e)}}else{for(f=0;f<a.i;++f){e=d[f];if(h.rl(e.ak())){i=e.dd();wtd(g,c?b3d(a,b,f,g.i,i):i)}}}return wud(g)} +function T9b(a,b){var c,d,e,f,g;c=new Rpb(EW);for(e=(Apc(),OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])),f=0,g=e.length;f<g;++f){d=e[f];Opb(c,d,new Rkb)}MAb(NAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new hac),new jac),new lac(b)),new nac(c));return c} +function AVc(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(f=b.Kc();f.Ob();){e=BD(f.Pb(),33);k=e.i+e.g/2;m=e.j+e.f/2;i=a.f;g=i.i+i.g/2;h=i.j+i.f/2;j=k-g;l=m-h;d=$wnd.Math.sqrt(j*j+l*l);j*=a.e/d;l*=a.e/d;if(c){k-=j;m-=l}else{k+=j;m+=l}dld(e,k-e.g/2);eld(e,m-e.f/2)}} +function Yfe(a){var b,c,d;if(a.c)return;if(a.b==null)return;for(b=a.b.length-4;b>=0;b-=2){for(c=0;c<=b;c+=2){if(a.b[c]>a.b[c+2]||a.b[c]===a.b[c+2]&&a.b[c+1]>a.b[c+3]){d=a.b[c+2];a.b[c+2]=a.b[c];a.b[c]=d;d=a.b[c+3];a.b[c+3]=a.b[c+1];a.b[c+1]=d}}}a.c=true} +function UUb(a,b){var c,d,e,f,g,h,i,j;g=b==1?KUb:JUb;for(f=g.a.ec().Kc();f.Ob();){e=BD(f.Pb(),103);for(i=BD(Qc(a.f.c,e),21).Kc();i.Ob();){h=BD(i.Pb(),46);d=BD(h.b,81);j=BD(h.a,189);c=j.c;switch(e.g){case 2:case 1:d.g.d+=c;break;case 4:case 3:d.g.c+=c;}}}} +function PFc(a,b){var c,d,e,f,g,h,i,j,k;j=-1;k=0;for(g=a,h=0,i=g.length;h<i;++h){f=g[h];c=new Dnc(j==-1?a[0]:a[j],b,(xzc(),wzc));for(d=0;d<f.length;d++){for(e=d+1;e<f.length;e++){wNb(f[d],(wtc(),Zsc))&&wNb(f[e],Zsc)&&ync(c,f[d],f[e])>0&&++k}}++j}return k} +function Eid(a){var b,c;c=new Wfb(hdb(a.gm));c.a+='@';Qfb(c,(b=tb(a)>>>0,b.toString(16)));if(a.kh()){c.a+=' (eProxyURI: ';Pfb(c,a.qh());if(a.$g()){c.a+=' eClass: ';Pfb(c,a.$g())}c.a+=')'}else if(a.$g()){c.a+=' (eClass: ';Pfb(c,a.$g());c.a+=')'}return c.a} +function TDb(a){var b,c,d,e;if(a.e){throw vbb(new Zdb((fdb(TM),Jke+TM.k+Kke)))}a.d==(ead(),cad)&&SDb(a,aad);for(c=new olb(a.a.a);c.a<c.c.c.length;){b=BD(mlb(c),307);b.g=b.i}for(e=new olb(a.a.b);e.a<e.c.c.length;){d=BD(mlb(e),57);d.i=Qje}a.b.Le(a);return a} +function TPc(a,b){var c,d,e,f,g;if(b<2*a.b){throw vbb(new Wdb('The knot vector must have at least two time the dimension elements.'))}a.f=1;for(e=0;e<a.b;e++){Ekb(a.e,0)}g=b+1-2*a.b;c=g;for(f=1;f<g;f++){Ekb(a.e,f/c)}if(a.d){for(d=0;d<a.b;d++){Ekb(a.e,1)}}} +function ard(a,b){var c,d,e,f,g,h,i,j,k;j=b;k=BD(_o(qo(a.i),j),33);if(!k){e=_pd(j,Vte);h="Unable to find elk node for json object '"+e;i=h+"' Panic!";throw vbb(new cqd(i))}f=Ypd(j,'edges');c=new krd(a,k);mqd(c.a,c.b,f);g=Ypd(j,Jte);d=new vrd(a);xqd(d.a,g)} +function xAd(a,b,c,d){var e,f,g,h,i;if(d!=null){e=a.d[b];if(e){f=e.g;i=e.i;for(h=0;h<i;++h){g=BD(f[h],133);if(g.Sh()==c&&pb(d,g.cd())){return h}}}}else{e=a.d[b];if(e){f=e.g;i=e.i;for(h=0;h<i;++h){g=BD(f[h],133);if(PD(g.cd())===PD(d)){return h}}}}return -1} +function nUd(a,b){var c,d,e;c=b==null?Wd(irb(a.f,null)):Crb(a.g,b);if(JD(c,235)){e=BD(c,235);e.Qh()==null&&undefined;return e}else if(JD(c,498)){d=BD(c,1938);e=d.a;!!e&&(e.yb==null?undefined:b==null?jrb(a.f,null,e):Drb(a.g,b,e));return e}else{return null}} +function ide(a){hde();var b,c,d,e,f,g,h;if(a==null)return null;e=a.length;if(e%2!=0)return null;b=rfb(a);f=e/2|0;c=KC(SD,wte,25,f,15,1);for(d=0;d<f;d++){g=fde[b[d*2]];if(g==-1)return null;h=fde[b[d*2+1]];if(h==-1)return null;c[d]=(g<<4|h)<<24>>24}return c} +function lKb(a,b,c){var d,e,f;e=BD(Mpb(a.i,b),306);if(!e){e=new bIb(a.d,b,c);Npb(a.i,b,e);if(sJb(b)){CHb(a.a,b.c,b.b,e)}else{f=rJb(b);d=BD(Mpb(a.p,f),244);switch(f.g){case 1:case 3:e.j=true;lIb(d,b.b,e);break;case 4:case 2:e.k=true;lIb(d,b.c,e);}}}return e} +function r3d(a,b,c,d){var e,f,g,h,i,j;h=new yud;i=S6d(a.e.Tg(),b);e=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(g=0;g<a.i;++g){f=e[g];i.rl(f.ak())&&wtd(h,f)}}else{for(g=0;g<a.i;++g){f=e[g];if(i.rl(f.ak())){j=f.dd();wtd(h,d?b3d(a,b,g,h.i,j):j)}}}return xud(h,c)} +function YCc(a,b){var c,d,e,f,g,h,i,j;e=a.b[b.p];if(e>=0){return e}else{f=1;for(h=new olb(b.j);h.a<h.c.c.length;){g=BD(mlb(h),11);for(d=new olb(g.g);d.a<d.c.c.length;){c=BD(mlb(d),17);j=c.d.i;if(b!=j){i=YCc(a,j);f=$wnd.Math.max(f,i+1)}}}XCc(a,b,f);return f}} +function YGc(a,b,c){var d,e,f;for(d=1;d<a.c.length;d++){f=(tCb(d,a.c.length),BD(a.c[d],10));e=d;while(e>0&&b.ue((tCb(e-1,a.c.length),BD(a.c[e-1],10)),f)>0){Nkb(a,e,(tCb(e-1,a.c.length),BD(a.c[e-1],10)));--e}tCb(e,a.c.length);a.c[e]=f}c.a=new Lqb;c.b=new Lqb} +function n5c(a,b,c){var d,e,f,g,h,i,j,k;k=(d=BD(b.e&&b.e(),9),new xqb(d,BD(_Bb(d,d.length),9),0));i=mfb(c,'[\\[\\]\\s,]+');for(f=i,g=0,h=f.length;g<h;++g){e=f[g];if(ufb(e).length==0){continue}j=m5c(a,e);if(j==null){return null}else{rqb(k,BD(j,22))}}return k} +function KVb(a){var b,c,d;for(c=new olb(a.a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),81);d=(uCb(0),0);if(d>0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}} +function Hac(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(Ucd(),Acd)||b==zcd){xac(BD(bkb(a),15),(rbd(),nbd));xac(BD(bkb(a),15),obd)}else{xac(BD(bkb(a),15),(rbd(),obd));xac(BD(bkb(a),15),nbd)}}else{for(e=new xkb(a);e.a!=e.b;){d=BD(vkb(e),15);xac(d,c)}}} +function htd(a,b){var c,d,e,f,g,h,i;e=Nu(new qtd(a));h=new Bib(e,e.c.length);f=Nu(new qtd(b));i=new Bib(f,f.c.length);g=null;while(h.b>0&&i.b>0){c=(sCb(h.b>0),BD(h.a.Xb(h.c=--h.b),33));d=(sCb(i.b>0),BD(i.a.Xb(i.c=--i.b),33));if(c==d){g=c}else{break}}return g} +function Cub(a,b){var c,d,e,f,g,h;f=a.a*kke+a.b*1502;h=a.b*kke+11;c=$wnd.Math.floor(h*lke);f+=c;h-=c*mke;f%=mke;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*wub[b])}else{e=a.a*(1<<b-24);g=$wnd.Math.floor(a.b*xub[b]);d=e+g;d>=2147483648&&(d-=Zje);return d}} +function Zic(a,b,c){var d,e,f,g;if(bjc(a,b)>bjc(a,c)){d=V_b(c,(Ucd(),zcd));a.d=d.dc()?0:B0b(BD(d.Xb(0),11));g=V_b(b,Tcd);a.b=g.dc()?0:B0b(BD(g.Xb(0),11))}else{e=V_b(c,(Ucd(),Tcd));a.d=e.dc()?0:B0b(BD(e.Xb(0),11));f=V_b(b,zcd);a.b=f.dc()?0:B0b(BD(f.Xb(0),11))}} +function l6d(a){var b,c,d,e,f,g,h;if(a){b=a.Hh(_ve);if(b){g=GD(AAd((!b.b&&(b.b=new sId((jGd(),fGd),x6,b)),b.b),'conversionDelegates'));if(g!=null){h=new Rkb;for(d=mfb(g,'\\w+'),e=0,f=d.length;e<f;++e){c=d[e];h.c[h.c.length]=c}return h}}}return mmb(),mmb(),jmb} +function FKb(a,b){var c,d,e,f;c=a.o.a;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);e.e.a=c*Edb(ED(e.b.We(BKb)));e.e.b=(d=e.b,d.Xe((Y9c(),s9c))?d.Hf()==(Ucd(),Acd)?-d.rf().b-Edb(ED(d.We(s9c))):Edb(ED(d.We(s9c))):d.Hf()==(Ucd(),Acd)?-d.rf().b:0)}} +function Woc(a){var b,c,d,e,f,g,h,i;b=true;e=null;f=null;j:for(i=new olb(a.a);i.a<i.c.c.length;){h=BD(mlb(i),10);for(d=new Sr(ur(R_b(h).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(!!e&&e!=h){b=false;break j}e=h;g=c.c.i;if(!!f&&f!=g){b=false;break j}f=g}}return b} +function OOc(a,b,c){var d,e,f,g,h,i;f=-1;h=-1;for(g=0;g<b.c.length;g++){e=(tCb(g,b.c.length),BD(b.c[g],329));if(e.c>a.c){break}else if(e.a>=a.s){f<0&&(f=g);h=g}}i=(a.s+a.c)/2;if(f>=0){d=NOc(a,b,f,h);i=$Oc((tCb(d,b.c.length),BD(b.c[d],329)));YOc(b,d,c)}return i} +function lZc(){lZc=ccb;RYc=new Osd((Y9c(),r8c),1.3);VYc=I8c;gZc=new q0b(15);fZc=new Osd(f9c,gZc);jZc=new Osd(T9c,15);SYc=w8c;_Yc=Y8c;aZc=_8c;bZc=b9c;$Yc=W8c;cZc=e9c;hZc=x9c;eZc=(OYc(),KYc);ZYc=IYc;dZc=JYc;iZc=MYc;WYc=HYc;XYc=O8c;YYc=P8c;UYc=GYc;TYc=FYc;kZc=NYc} +function Bnd(a,b,c){var d,e,f,g,h,i,j;g=(f=new RHd,f);PHd(g,(uCb(b),b));j=(!g.b&&(g.b=new sId((jGd(),fGd),x6,g)),g.b);for(i=1;i<c.length;i+=2){HAd(j,c[i-1],c[i])}d=(!a.Ab&&(a.Ab=new cUd(a5,a,0,3)),a.Ab);for(h=0;h<0;++h){e=LHd(BD(qud(d,d.i-1),590));d=e}wtd(d,g)} +function MPb(a,b,c){var d,e,f;sNb.call(this,new Rkb);this.a=b;this.b=c;this.e=a;d=(a.b&&LOb(a),a.a);this.d=KPb(d.a,this.a);this.c=KPb(d.b,this.b);kNb(this,this.d,this.c);LPb(this);for(f=this.e.e.a.ec().Kc();f.Ob();){e=BD(f.Pb(),266);e.c.c.length>0&&JPb(this,e)}} +function IQb(a,b,c,d,e,f){var g,h,i;if(!e[b.b]){e[b.b]=true;g=d;!g&&(g=new kRb);Ekb(g.e,b);for(i=f[b.b].Kc();i.Ob();){h=BD(i.Pb(),282);if(h.d==c||h.c==c){continue}h.c!=b&&IQb(a,h.c,b,g,e,f);h.d!=b&&IQb(a,h.d,b,g,e,f);Ekb(g.c,h);Gkb(g.d,h.b)}return g}return null} +function e4b(a){var b,c,d,e,f,g,h;b=0;for(e=new olb(a.e);e.a<e.c.c.length;){d=BD(mlb(e),17);c=FAb(new YAb(null,new Kub(d.b,16)),new w4b);c&&++b}for(g=new olb(a.g);g.a<g.c.c.length;){f=BD(mlb(g),17);h=FAb(new YAb(null,new Kub(f.b,16)),new y4b);h&&++b}return b>=2} +function gec(a,b){var c,d,e,f;Odd(b,'Self-Loop pre-processing',1);for(d=new olb(a.a);d.a<d.c.c.length;){c=BD(mlb(d),10);if(Ljc(c)){e=(f=new Kjc(c),yNb(c,(wtc(),ntc),f),Hjc(f),f);MAb(NAb(LAb(new YAb(null,new Kub(e.d,16)),new jec),new lec),new nec);eec(e)}}Qdd(b)} +function vnc(a,b,c,d,e){var f,g,h,i,j,k;f=a.c.d.j;g=BD(Ut(c,0),8);for(k=1;k<c.b;k++){j=BD(Ut(c,k),8);Gsb(d,g,d.c.b,d.c);h=Y6c(P6c(new g7c(g),j),0.5);i=Y6c(new e7c(bRc(f)),e);P6c(h,i);Gsb(d,h,d.c.b,d.c);g=j;f=b==0?Xcd(f):Vcd(f)}Dsb(d,(sCb(c.b!=0),BD(c.c.b.c,8)))} +function Jbd(a){Hbd();var b,c,d;c=qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Dbd]));if(Ox(Cx(c,a))>1){return false}b=qqb(zbd,OC(GC(B1,1),Kie,93,0,[ybd,Bbd]));if(Ox(Cx(b,a))>1){return false}d=qqb(Gbd,OC(GC(B1,1),Kie,93,0,[Fbd,Ebd]));if(Ox(Cx(d,a))>1){return false}return true} +function U0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),'affiliation'));if(e!=null){d=kfb(e,wfb(35));return d==-1?l1d(a,u1d(a,bKd(b.Hj())),e):d==0?l1d(a,null,e.substr(1)):l1d(a,e.substr(0,d),e.substr(d+1))}}return null} +function ic(b){var c,d,e;try{return b==null?Xhe:fcb(b)}catch(a){a=ubb(a);if(JD(a,102)){c=a;e=hdb(rb(b))+'@'+(d=(Zfb(),kCb(b))>>>0,d.toString(16));tyb(xyb(),($xb(),'Exception during lenientFormat for '+e),c);return '<'+e+' threw '+hdb(c.gm)+'>'}else throw vbb(a)}} +function mzc(a){switch(a.g){case 0:return new xDc;case 1:return new ZCc;case 2:return new DCc;case 3:return new QCc;case 4:return new LDc;case 5:return new iDc;default:throw vbb(new Wdb('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}} +function AQc(a,b,c){var d,e,f;for(f=new olb(a.t);f.a<f.c.c.length;){d=BD(mlb(f),268);if(d.b.s<0&&d.c>0){d.b.n-=d.c;d.b.n<=0&&d.b.u>0&&Dsb(b,d.b)}}for(e=new olb(a.i);e.a<e.c.c.length;){d=BD(mlb(e),268);if(d.a.s<0&&d.c>0){d.a.u-=d.c;d.a.u<=0&&d.a.n>0&&Dsb(c,d.a)}}} +function Vud(a){var b,c,d,e,f;if(a.g==null){a.d=a.si(a.f);wtd(a,a.d);if(a.c){f=a.f;return f}}b=BD(a.g[a.i-1],47);e=b.Pb();a.e=b;c=a.si(e);if(c.Ob()){a.d=c;wtd(a,c)}else{a.d=null;while(!b.Ob()){NC(a.g,--a.i,null);if(a.i==0){break}d=BD(a.g[a.i-1],47);b=d}}return e} +function r2d(a,b){var c,d,e,f,g,h;d=b;e=d.ak();if(T6d(a.e,e)){if(e.hi()&&E2d(a,e,d.dd())){return false}}else{h=S6d(a.e.Tg(),e);c=BD(a.g,119);for(f=0;f<a.i;++f){g=c[f];if(h.rl(g.ak())){if(pb(g,d)){return false}else{BD(Gtd(a,f,b),72);return true}}}}return wtd(a,b)} +function r9b(a,b,c,d){var e,f,g,h;e=new b0b(a);__b(e,(j0b(),f0b));yNb(e,(wtc(),$sc),b);yNb(e,ktc,d);yNb(e,(Nyc(),Vxc),(dcd(),$bd));yNb(e,Vsc,b.c);yNb(e,Wsc,b.d);zbc(b,e);h=$wnd.Math.floor(c/2);for(g=new olb(e.j);g.a<g.c.c.length;){f=BD(mlb(g),11);f.n.b=h}return e} +function wac(a,b){var c,d,e,f,g,h,i,j,k;i=Pu(a.c-a.b&a.a.length-1);j=null;k=null;for(f=new xkb(a);f.a!=f.b;){e=BD(vkb(f),10);c=(h=BD(vNb(e,(wtc(),Vsc)),11),!h?null:h.i);d=(g=BD(vNb(e,Wsc),11),!g?null:g.i);if(j!=c||k!=d){Aac(i,b);j=c;k=d}i.c[i.c.length]=e}Aac(i,b)} +function HNc(a){var b,c,d,e,f,g,h;b=0;for(d=new olb(a.a);d.a<d.c.c.length;){c=BD(mlb(d),10);for(f=new Sr(ur(U_b(c).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a==e.d.i.c&&e.c.j==(Ucd(),Tcd)){g=A0b(e.c).b;h=A0b(e.d).b;b=$wnd.Math.max(b,$wnd.Math.abs(h-g))}}}return b} +function aWc(a,b,c){var d,e,f;Odd(c,'Remove overlaps',1);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd));d=BD(hkd(b,(MUc(),LUc)),33);a.f=d;a.a=tXc(BD(hkd(b,(ZWc(),WWc)),293));e=ED(hkd(b,(Y9c(),T9c)));FVc(a,(uCb(e),e));f=gVc(d);_Vc(a,b,f,c);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd))} +function aYb(a,b,c){switch(c.g){case 1:return new f7c(b.a,$wnd.Math.min(a.d.b,b.b));case 2:return new f7c($wnd.Math.max(a.c.a,b.a),b.b);case 3:return new f7c(b.a,$wnd.Math.max(a.c.b,b.b));case 4:return new f7c($wnd.Math.min(b.a,a.d.a),b.b);}return new f7c(b.a,b.b)} +function mFc(a,b,c,d){var e,f,g,h,i,j,k,l,m;l=d?(Ucd(),Tcd):(Ucd(),zcd);e=false;for(i=b[c],j=0,k=i.length;j<k;++j){h=i[j];if(ecd(BD(vNb(h,(Nyc(),Vxc)),98))){continue}g=h.e;m=!V_b(h,l).dc()&&!!g;if(m){f=WZb(g);a.b=new sic(f,d?0:f.length-1)}e=e|nFc(a,h,l,m)}return e} +function $sd(a){var b,c,d;b=Pu(1+(!a.c&&(a.c=new cUd(F2,a,9,9)),a.c).i);Ekb(b,(!a.d&&(a.d=new y5d(B2,a,8,5)),a.d));for(d=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));d.e!=d.i.gc();){c=BD(Dyd(d),118);Ekb(b,(!c.d&&(c.d=new y5d(B2,c,8,5)),c.d))}return Qb(b),new sl(b)} +function _sd(a){var b,c,d;b=Pu(1+(!a.c&&(a.c=new cUd(F2,a,9,9)),a.c).i);Ekb(b,(!a.e&&(a.e=new y5d(B2,a,7,4)),a.e));for(d=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));d.e!=d.i.gc();){c=BD(Dyd(d),118);Ekb(b,(!c.e&&(c.e=new y5d(B2,c,7,4)),c.e))}return Qb(b),new sl(b)} +function M9d(a){var b,c,d,e;if(a==null){return null}else{d=Qge(a,true);e=Nwe.length;if(dfb(d.substr(d.length-e,e),Nwe)){c=d.length;if(c==4){b=(BCb(0,d.length),d.charCodeAt(0));if(b==43){return x9d}else if(b==45){return w9d}}else if(c==3){return x9d}}return Hcb(d)}} +function aKc(a){var b,c,d,e;b=0;c=0;for(e=new olb(a.j);e.a<e.c.c.length;){d=BD(mlb(e),11);b=Tbb(wbb(b,HAb(JAb(new YAb(null,new Kub(d.e,16)),new nLc))));c=Tbb(wbb(c,HAb(JAb(new YAb(null,new Kub(d.g,16)),new pLc))));if(b>1||c>1){return 2}}if(b+c==1){return 2}return 0} +function WQb(a,b,c){var d,e,f,g,h;Odd(c,'ELK Force',1);Ccb(DD(hkd(b,(wSb(),jSb))))||$Cb((d=new _Cb((Pgd(),new bhd(b))),d));h=TQb(b);XQb(h);YQb(a,BD(vNb(h,fSb),424));g=LQb(a.a,h);for(f=g.Kc();f.Ob();){e=BD(f.Pb(),231);tRb(a.b,e,Udd(c,1/g.gc()))}h=KQb(g);SQb(h);Qdd(c)} +function yoc(a,b){var c,d,e,f,g;Odd(b,'Breaking Point Processor',1);xoc(a);if(Ccb(DD(vNb(a,(Nyc(),Jyc))))){for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),29);c=0;for(g=new olb(d.a);g.a<g.c.c.length;){f=BD(mlb(g),10);f.p=c++}}soc(a);toc(a,true);toc(a,false)}Qdd(b)} +function $1c(a,b,c){var d,e,f,g,h,i;h=a.c;for(g=(!c.q?(mmb(),mmb(),kmb):c.q).vc().Kc();g.Ob();){f=BD(g.Pb(),42);d=!WAb(JAb(new YAb(null,new Kub(h,16)),new Xxb(new m2c(b,f)))).sd((EAb(),DAb));if(d){i=f.dd();if(JD(i,4)){e=fvd(i);e!=null&&(i=e)}b.Ye(BD(f.cd(),146),i)}}} +function MQd(a,b){var c,d,e,f,g;if(!b){return null}else{f=JD(a.Cb,88)||JD(a.Cb,99);g=!f&&JD(a.Cb,322);for(d=new Fyd((!b.a&&(b.a=new KYd(b,j5,b)),b.a));d.e!=d.i.gc();){c=BD(Dyd(d),87);e=KQd(c);if(f?JD(e,88):g?JD(e,148):!!e){return e}}return f?(jGd(),_Fd):(jGd(),YFd)}} +function g3b(a,b){var c,d,e,f,g,h;Odd(b,'Constraints Postprocessor',1);g=0;for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);h=0;for(d=new olb(e.a);d.a<d.c.c.length;){c=BD(mlb(d),10);if(c.k==(j0b(),h0b)){yNb(c,(Nyc(),nxc),meb(g));yNb(c,Gwc,meb(h));++h}}++g}Qdd(b)} +function eRc(a,b,c,d){var e,f,g,h,i,j,k;i=new f7c(c,d);c7c(i,BD(vNb(b,(mTc(),WSc)),8));for(k=Jsb(b.b,0);k.b!=k.d.c;){j=BD(Xsb(k),86);P6c(j.e,i);Dsb(a.b,j)}for(h=Jsb(b.a,0);h.b!=h.d.c;){g=BD(Xsb(h),188);for(f=Jsb(g.a,0);f.b!=f.d.c;){e=BD(Xsb(f),8);P6c(e,i)}Dsb(a.a,g)}} +function uid(a,b,c){var d,e,f;f=e1d((O6d(),M6d),a.Tg(),b);if(f){Q6d();if(!BD(f,66).Oj()){f=_1d(q1d(M6d,f));if(!f){throw vbb(new Wdb(ite+b.ne()+jte))}}e=(d=a.Yg(f),BD(d>=0?a._g(d,true,true):sid(a,f,true),153));BD(e,215).ml(b,c)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} +function ROc(a,b){var c,d,e,f,g;c=new Rkb;e=LAb(new YAb(null,new Kub(a,16)),new iPc);f=LAb(new YAb(null,new Kub(a,16)),new kPc);g=aAb(_zb(OAb(ty(OC(GC(xM,1),Uhe,833,0,[e,f])),new mPc)));for(d=1;d<g.length;d++){g[d]-g[d-1]>=2*b&&Ekb(c,new bPc(g[d-1]+b,g[d]-b))}return c} +function AXc(a,b,c){Odd(c,'Eades radial',1);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd));a.d=BD(hkd(b,(MUc(),LUc)),33);a.c=Edb(ED(hkd(b,(ZWc(),VWc))));a.e=tXc(BD(hkd(b,WWc),293));a.a=gWc(BD(hkd(b,YWc),426));a.b=jXc(BD(hkd(b,RWc),340));BXc(a);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd))} +function Fqd(a,b,c){var d,e,f,g,h,j,k,l;if(c){f=c.a.length;d=new Yge(f);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);e=Zpd(c,g.a);!!e&&(i=null,j=Uqd(a,(k=(Fhd(),l=new ppd,l),!!b&&npd(k,b),k),e),Lkd(j,_pd(e,Vte)),grd(e,j),hrd(e,j),crd(a,e,j))}}} +function UKd(a){var b,c,d,e,f,g;if(!a.j){g=new HPd;b=KKd;f=b.a.zc(a,b);if(f==null){for(d=new Fyd(_Kd(a));d.e!=d.i.gc();){c=BD(Dyd(d),26);e=UKd(c);ytd(g,e);wtd(g,c)}b.a.Bc(a)!=null}vud(g);a.j=new nNd((BD(qud(ZKd((NFd(),MFd).o),11),18),g.i),g.g);$Kd(a).b&=-33}return a.j} +function O9d(a){var b,c,d,e;if(a==null){return null}else{d=Qge(a,true);e=Nwe.length;if(dfb(d.substr(d.length-e,e),Nwe)){c=d.length;if(c==4){b=(BCb(0,d.length),d.charCodeAt(0));if(b==43){return z9d}else if(b==45){return y9d}}else if(c==3){return z9d}}return new Odb(d)}} +function _C(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return ieb(c)}if(b==0&&d!=0&&c==0){return ieb(d)+22}if(b!=0&&d==0&&c==0){return ieb(b)+44}return -1} +function qbc(a,b){var c,d,e,f,g;Odd(b,'Edge joining',1);c=Ccb(DD(vNb(a,(Nyc(),Byc))));for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),29);g=new Bib(d.a,0);while(g.b<g.d.gc()){f=(sCb(g.b<g.d.gc()),BD(g.d.Xb(g.c=g.b++),10));if(f.k==(j0b(),g0b)){sbc(f,c);uib(g)}}}Qdd(b)} +function c_c(a,b,c){var d,e;H2c(a.b);K2c(a.b,(Y$c(),V$c),(R0c(),Q0c));K2c(a.b,W$c,b.g);K2c(a.b,X$c,b.a);a.a=F2c(a.b,b);Odd(c,'Compaction by shrinking a tree',a.a.c.length);if(b.i.c.length>1){for(e=new olb(a.a);e.a<e.c.c.length;){d=BD(mlb(e),51);d.pf(b,Udd(c,1))}}Qdd(c)} +function mo(a,b){var c,d,e,f,g;e=b.a&a.f;f=null;for(d=a.b[e];true;d=d.b){if(d==b){!f?(a.b[e]=b.b):(f.b=b.b);break}f=d}g=b.f&a.f;f=null;for(c=a.c[g];true;c=c.d){if(c==b){!f?(a.c[g]=b.d):(f.d=b.d);break}f=c}!b.e?(a.a=b.c):(b.e.c=b.c);!b.c?(a.e=b.e):(b.c.e=b.e);--a.i;++a.g} +function eNb(a){var b,c,d,e,f,g,h,i,j,k;c=a.o;b=a.p;g=Ohe;e=Rie;h=Ohe;f=Rie;for(j=0;j<c;++j){for(k=0;k<b;++k){if(YMb(a,j,k)){g=$wnd.Math.min(g,j);e=$wnd.Math.max(e,j);h=$wnd.Math.min(h,k);f=$wnd.Math.max(f,k)}}}i=e-g+1;d=f-h+1;return new Ggd(meb(g),meb(h),meb(i),meb(d))} +function DWb(a,b){var c,d,e,f;f=new Bib(a,0);c=(sCb(f.b<f.d.gc()),BD(f.d.Xb(f.c=f.b++),140));while(f.b<f.d.gc()){d=(sCb(f.b<f.d.gc()),BD(f.d.Xb(f.c=f.b++),140));e=new dWb(d.c,c.d,b);sCb(f.b>0);f.a.Xb(f.c=--f.b);Aib(f,e);sCb(f.b<f.d.gc());f.d.Xb(f.c=f.b++);e.a=false;c=d}} +function Y2b(a){var b,c,d,e,f,g;e=BD(vNb(a,(wtc(),vsc)),11);for(g=new olb(a.j);g.a<g.c.c.length;){f=BD(mlb(g),11);for(d=new olb(f.g);d.a<d.c.c.length;){b=BD(mlb(d),17);RZb(b,e);return f}for(c=new olb(f.e);c.a<c.c.c.length;){b=BD(mlb(c),17);QZb(b,e);return f}}return null} +function iA(a,b,c){var d,e;d=Cbb(c.q.getTime());if(ybb(d,0)<0){e=_ie-Tbb(Hbb(Jbb(d),_ie));e==_ie&&(e=0)}else{e=Tbb(Hbb(d,_ie))}if(b==1){e=$wnd.Math.min((e+50)/100|0,9);Kfb(a,48+e&aje)}else if(b==2){e=$wnd.Math.min((e+5)/10|0,99);EA(a,e,2)}else{EA(a,e,3);b>3&&EA(a,0,b-3)}} +function cUb(a){var b,c,d,e;if(PD(vNb(a,(Nyc(),axc)))===PD((hbd(),ebd))){return !a.e&&PD(vNb(a,Cwc))!==PD((Xrc(),Urc))}d=BD(vNb(a,Dwc),292);e=Ccb(DD(vNb(a,Hwc)))||PD(vNb(a,Iwc))===PD((Rpc(),Opc));b=BD(vNb(a,Bwc),19).a;c=a.a.c.length;return !e&&d!=(Xrc(),Urc)&&(b==0||b>c)} +function lkc(a){var b,c;c=0;for(;c<a.c.length;c++){if(Ojc((tCb(c,a.c.length),BD(a.c[c],113)))>0){break}}if(c>0&&c<a.c.length-1){return c}b=0;for(;b<a.c.length;b++){if(Ojc((tCb(b,a.c.length),BD(a.c[b],113)))>0){break}}if(b>0&&c<a.c.length-1){return b}return a.c.length/2|0} +function mmd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=6&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+qmd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?cmd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,6,d));d=bmd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,6,b,b))} +function npd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+opd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?lpd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,9,d));d=kpd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,9,b,b))} +function Rld(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Sld(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Lld(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,12,d));d=Kld(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function VId(b){var c,d,e,f,g;e=wId(b);g=b.j;if(g==null&&!!e){return b.$j()?null:e.zj()}else if(JD(e,148)){d=e.Aj();if(d){f=d.Nh();if(f!=b.i){c=BD(e,148);if(c.Ej()){try{b.g=f.Kh(c,g)}catch(a){a=ubb(a);if(JD(a,78)){b.g=null}else throw vbb(a)}}b.i=f}}return b.g}return null} +function wOb(a){var b;b=new Rkb;Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c,a.d+a.a)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c,a.d+a.a)));return b} +function IJc(a,b,c,d){var e,f,g;g=LZb(b,c);d.c[d.c.length]=b;if(a.j[g.p]==-1||a.j[g.p]==2||a.a[b.p]){return d}a.j[g.p]=-1;for(f=new Sr(ur(O_b(g).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!(!OZb(e)&&!(!OZb(e)&&e.c.i.c==e.d.i.c))||e==b){continue}return IJc(a,e,g,d)}return d} +function vQb(a,b,c){var d,e,f;for(f=b.a.ec().Kc();f.Ob();){e=BD(f.Pb(),79);d=BD(Ohb(a.b,e),266);!d&&(Xod(jtd(e))==Xod(ltd(e))?uQb(a,e,c):jtd(e)==Xod(ltd(e))?Ohb(a.c,e)==null&&Ohb(a.b,ltd(e))!=null&&xQb(a,e,c,false):Ohb(a.d,e)==null&&Ohb(a.b,jtd(e))!=null&&xQb(a,e,c,true))}} +function jcc(a,b){var c,d,e,f,g,h,i;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),10);h=new H0b;F0b(h,d);G0b(h,(Ucd(),zcd));yNb(h,(wtc(),ftc),(Bcb(),true));for(g=b.Kc();g.Ob();){f=BD(g.Pb(),10);i=new H0b;F0b(i,f);G0b(i,Tcd);yNb(i,ftc,true);c=new UZb;yNb(c,ftc,true);QZb(c,h);RZb(c,i)}}} +function jnc(a,b,c,d){var e,f,g,h;e=hnc(a,b,c);f=hnc(a,c,b);g=BD(Ohb(a.c,b),112);h=BD(Ohb(a.c,c),112);if(e<f){new DOc((HOc(),GOc),g,h,f-e)}else if(f<e){new DOc((HOc(),GOc),h,g,e-f)}else if(e!=0||!(!b.i||!c.i)&&d[b.i.c][c.i.c]){new DOc((HOc(),GOc),g,h,0);new DOc(GOc,h,g,0)}} +function Qoc(a,b){var c,d,e,f,g,h,i;e=0;for(g=new olb(b.a);g.a<g.c.c.length;){f=BD(mlb(g),10);e+=f.o.b+f.d.a+f.d.d+a.e;for(d=new Sr(ur(R_b(f).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(c.c.i.k==(j0b(),i0b)){i=c.c.i;h=BD(vNb(i,(wtc(),$sc)),10);e+=h.o.b+h.d.a+h.d.d}}}return e} +function WNc(a,b,c){var d,e,f,g,h,i,j;f=new Rkb;j=new Psb;g=new Psb;XNc(a,j,g,b);VNc(a,j,g,b,c);for(i=new olb(a);i.a<i.c.c.length;){h=BD(mlb(i),112);for(e=new olb(h.k);e.a<e.c.c.length;){d=BD(mlb(e),129);(!b||d.c==(HOc(),FOc))&&h.g>d.b.g&&(f.c[f.c.length]=d,true)}}return f} +function k$c(){k$c=ccb;g$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_RIGHT',0);f$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_BELOW',1);i$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT',2);h$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW',3);j$c=new l$c('WHOLE_DRAWING',4)} +function Xqd(a,b){if(JD(b,239)){return iqd(a,BD(b,33))}else if(JD(b,186)){return jqd(a,BD(b,118))}else if(JD(b,354)){return hqd(a,BD(b,137))}else if(JD(b,352)){return gqd(a,BD(b,79))}else if(b){return null}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[b])))))}} +function aic(a){var b,c,d,e,f,g,h;f=new Psb;for(e=new olb(a.d.a);e.a<e.c.c.length;){d=BD(mlb(e),121);d.b.a.c.length==0&&(Gsb(f,d,f.c.b,f.c),true)}if(f.b>1){b=nGb((c=new pGb,++a.b,c),a.d);for(h=Jsb(f,0);h.b!=h.d.c;){g=BD(Xsb(h),121);AFb(DFb(CFb(EFb(BFb(new FFb,1),0),b),g))}}} +function $od(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=11&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+_od(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Uod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,10,d));d=Tod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,b,b))} +function uZb(a){var b,c,d,e;for(d=new nib((new eib(a.b)).a);d.b;){c=lib(d);e=BD(c.cd(),11);b=BD(c.dd(),10);yNb(b,(wtc(),$sc),e);yNb(e,gtc,b);yNb(e,Nsc,(Bcb(),true));G0b(e,BD(vNb(b,Hsc),61));vNb(b,Hsc);yNb(e.i,(Nyc(),Vxc),(dcd(),acd));BD(vNb(Q_b(e.i),Ksc),21).Fc((Orc(),Krc))}} +function G4b(a,b,c){var d,e,f,g,h,i;f=0;g=0;if(a.c){for(i=new olb(a.d.i.j);i.a<i.c.c.length;){h=BD(mlb(i),11);f+=h.e.c.length}}else{f=1}if(a.d){for(i=new olb(a.c.i.j);i.a<i.c.c.length;){h=BD(mlb(i),11);g+=h.g.c.length}}else{g=1}e=QD(Eeb(g-f));d=(c+b)/2+(c-b)*(0.4*e);return d} +function Zjc(a){Xjc();var b,c;if(a.Hc((Ucd(),Scd))){throw vbb(new Wdb('Port sides must not contain UNDEFINED'))}switch(a.gc()){case 1:return Tjc;case 2:b=a.Hc(zcd)&&a.Hc(Tcd);c=a.Hc(Acd)&&a.Hc(Rcd);return b||c?Wjc:Vjc;case 3:return Ujc;case 4:return Sjc;default:return null;}} +function Hoc(a,b,c){var d,e,f,g,h;Odd(c,'Breaking Point Removing',1);a.a=BD(vNb(b,(Nyc(),Swc)),218);for(f=new olb(b.b);f.a<f.c.c.length;){e=BD(mlb(f),29);for(h=new olb(Mu(e.a));h.a<h.c.c.length;){g=BD(mlb(h),10);if(hoc(g)){d=BD(vNb(g,(wtc(),usc)),305);!d.d&&Ioc(a,d)}}}Qdd(c)} +function s6c(a,b,c){i6c();if(m6c(a,b)&&m6c(a,c)){return false}return u6c(new f7c(a.c,a.d),new f7c(a.c+a.b,a.d),b,c)||u6c(new f7c(a.c+a.b,a.d),new f7c(a.c+a.b,a.d+a.a),b,c)||u6c(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c,a.d+a.a),b,c)||u6c(new f7c(a.c,a.d+a.a),new f7c(a.c,a.d),b,c)} +function x1d(a,b){var c,d,e,f;if(!a.dc()){for(c=0,d=a.gc();c<d;++c){f=GD(a.Xb(c));if(f==null?b==null:dfb(f.substr(0,3),'!##')?b!=null&&(e=b.length,!dfb(f.substr(f.length-e,e),b)||f.length!=b.length+3)&&!dfb(Ewe,b):dfb(f,Fwe)&&!dfb(Ewe,b)||dfb(f,b)){return true}}}return false} +function J3b(a,b,c,d){var e,f,g,h,i,j;g=a.j.c.length;i=KC(tN,ile,306,g,0,1);for(h=0;h<g;h++){f=BD(Ikb(a.j,h),11);f.p=h;i[h]=D3b(N3b(f),c,d)}F3b(a,i,c,b,d);j=new Lqb;for(e=0;e<i.length;e++){!!i[e]&&Rhb(j,BD(Ikb(a.j,e),11),i[e])}if(j.f.c+j.g.c!=0){yNb(a,(wtc(),Csc),j);L3b(a,i)}} +function Lgc(a,b,c){var d,e,f;for(e=new olb(a.a.b);e.a<e.c.c.length;){d=BD(mlb(e),57);f=tgc(d);if(f){if(f.k==(j0b(),e0b)){switch(BD(vNb(f,(wtc(),Hsc)),61).g){case 4:f.n.a=b.a;break;case 2:f.n.a=c.a-(f.o.a+f.d.c);break;case 1:f.n.b=b.b;break;case 3:f.n.b=c.b-(f.o.b+f.d.a);}}}}} +function kAc(){kAc=ccb;iAc=new lAc(ane,0);dAc=new lAc('NIKOLOV',1);gAc=new lAc('NIKOLOV_PIXEL',2);eAc=new lAc('NIKOLOV_IMPROVED',3);fAc=new lAc('NIKOLOV_IMPROVED_PIXEL',4);cAc=new lAc('DUMMYNODE_PERCENTAGE',5);hAc=new lAc('NODECOUNT_PERCENTAGE',6);jAc=new lAc('NO_BOUNDARY',7)} +function led(a,b,c){var d,e,f,g,h;e=BD(hkd(b,(X7c(),V7c)),19);!e&&(e=meb(0));f=BD(hkd(c,V7c),19);!f&&(f=meb(0));if(e.a>f.a){return -1}else if(e.a<f.a){return 1}else{if(a.a){d=Kdb(b.j,c.j);if(d!=0){return d}d=Kdb(b.i,c.i);if(d!=0){return d}}g=b.g*b.f;h=c.g*c.f;return Kdb(g,h)}} +function BAd(a,b){var c,d,e,f,g,h,i,j,k,l;++a.e;i=a.d==null?0:a.d.length;if(b>i){k=a.d;a.d=KC(y4,jve,63,2*i+4,0,1);for(f=0;f<i;++f){j=k[f];if(j){d=j.g;l=j.i;for(h=0;h<l;++h){e=BD(d[h],133);g=DAd(a,e.Sh());c=a.d[g];!c&&(c=a.d[g]=a.uj());c.Fc(e)}}}return true}else{return false}} +function o2d(a,b,c){var d,e,f,g,h,i;e=c;f=e.ak();if(T6d(a.e,f)){if(f.hi()){d=BD(a.g,119);for(g=0;g<a.i;++g){h=d[g];if(pb(h,e)&&g!=b){throw vbb(new Wdb(kue))}}}}else{i=S6d(a.e.Tg(),f);d=BD(a.g,119);for(g=0;g<a.i;++g){h=d[g];if(i.rl(h.ak())){throw vbb(new Wdb(Hwe))}}}vtd(a,b,c)} +function OYb(a,b){var c,d,e,f,g,h;c=BD(vNb(b,(wtc(),Esc)),21);g=BD(Qc((xXb(),wXb),c),21);h=BD(Qc(LYb,c),21);for(f=g.Kc();f.Ob();){d=BD(f.Pb(),21);if(!BD(Qc(a.b,d),15).dc()){return false}}for(e=h.Kc();e.Ob();){d=BD(e.Pb(),21);if(!BD(Qc(a.b,d),15).dc()){return false}}return true} +function scc(a,b){var c,d,e,f,g,h;Odd(b,'Partition postprocessing',1);for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),29);for(f=new olb(c.a);f.a<f.c.c.length;){e=BD(mlb(f),10);h=new olb(e.j);while(h.a<h.c.c.length){g=BD(mlb(h),11);Ccb(DD(vNb(g,(wtc(),ftc))))&&nlb(h)}}}Qdd(b)} +function ZZc(a,b){var c,d,e,f,g,h,i,j,k;if(a.a.c.length==1){return JZc(BD(Ikb(a.a,0),187),b)}g=YZc(a);i=0;j=a.d;f=g;k=a.d;h=(j-f)/2+f;while(f+1<j){i=0;for(d=new olb(a.a);d.a<d.c.c.length;){c=BD(mlb(d),187);i+=(e=MZc(c,h,false),e.a)}if(i<b){k=h;j=h}else{f=h}h=(j-f)/2+f}return k} +function fD(a){var b,c,d,e,f;if(isNaN(a)){return wD(),vD}if(a<-9223372036854775808){return wD(),tD}if(a>=9223372036854775807){return wD(),sD}e=false;if(a<0){e=true;a=-a}d=0;if(a>=Ije){d=QD(a/Ije);a-=d*Ije}c=0;if(a>=Hje){c=QD(a/Hje);a-=c*Hje}b=QD(a);f=TC(b,c,d);e&&ZC(f);return f} +function rKb(a,b){var c,d,e,f;c=!b||!a.u.Hc((rcd(),ncd));f=0;for(e=new olb(a.e.Cf());e.a<e.c.c.length;){d=BD(mlb(e),838);if(d.Hf()==(Ucd(),Scd)){throw vbb(new Wdb('Label and node size calculator can only be used with ports that have port sides assigned.'))}d.vf(f++);qKb(a,d,c)}} +function V0d(a,b){var c,d,e,f,g;e=b.Hh(a.a);if(e){d=(!e.b&&(e.b=new sId((jGd(),fGd),x6,e)),e.b);c=GD(AAd(d,cwe));if(c!=null){f=c.lastIndexOf('#');g=f==-1?w1d(a,b.Aj(),c):f==0?v1d(a,null,c.substr(1)):v1d(a,c.substr(0,f),c.substr(f+1));if(JD(g,148)){return BD(g,148)}}}return null} +function Z0d(a,b){var c,d,e,f,g;d=b.Hh(a.a);if(d){c=(!d.b&&(d.b=new sId((jGd(),fGd),x6,d)),d.b);f=GD(AAd(c,zwe));if(f!=null){e=f.lastIndexOf('#');g=e==-1?w1d(a,b.Aj(),f):e==0?v1d(a,null,f.substr(1)):v1d(a,f.substr(0,e),f.substr(e+1));if(JD(g,148)){return BD(g,148)}}}return null} +function RDb(a){var b,c,d,e,f;for(c=new olb(a.a.a);c.a<c.c.c.length;){b=BD(mlb(c),307);b.j=null;for(f=b.a.a.ec().Kc();f.Ob();){d=BD(f.Pb(),57);X6c(d.b);(!b.j||d.d.c<b.j.d.c)&&(b.j=d)}for(e=b.a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),57);d.b.a=d.d.c-b.j.d.c;d.b.b=d.d.d-b.j.d.d}}return a} +function sVb(a){var b,c,d,e,f;for(c=new olb(a.a.a);c.a<c.c.c.length;){b=BD(mlb(c),189);b.f=null;for(f=b.a.a.ec().Kc();f.Ob();){d=BD(f.Pb(),81);X6c(d.e);(!b.f||d.g.c<b.f.g.c)&&(b.f=d)}for(e=b.a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),81);d.e.a=d.g.c-b.f.g.c;d.e.b=d.g.d-b.f.g.d}}return a} +function EMb(a){var b,c,d;c=BD(a.a,19).a;d=BD(a.b,19).a;b=$wnd.Math.max($wnd.Math.abs(c),$wnd.Math.abs(d));if(c<b&&d==-b){return new vgd(meb(c+1),meb(d))}if(c==b&&d<b){return new vgd(meb(c),meb(d+1))}if(c>=-b&&d==b){return new vgd(meb(c-1),meb(d))}return new vgd(meb(c),meb(d-1))} +function W8b(){S8b();return OC(GC(AS,1),Kie,77,0,[Y7b,V7b,Z7b,n8b,G8b,r8b,M8b,w8b,E8b,i8b,A8b,v8b,F8b,e8b,O8b,P7b,z8b,I8b,o8b,H8b,Q8b,C8b,Q7b,D8b,R8b,K8b,P8b,p8b,b8b,q8b,m8b,N8b,T7b,_7b,t8b,S7b,u8b,k8b,f8b,x8b,h8b,W7b,U7b,l8b,g8b,y8b,L8b,R7b,B8b,j8b,s8b,c8b,a8b,J8b,$7b,d8b,X7b])} +function Yic(a,b,c){a.d=0;a.b=0;b.k==(j0b(),i0b)&&c.k==i0b&&BD(vNb(b,(wtc(),$sc)),10)==BD(vNb(c,$sc),10)&&(ajc(b).j==(Ucd(),Acd)?Zic(a,b,c):Zic(a,c,b));b.k==i0b&&c.k==g0b?ajc(b).j==(Ucd(),Acd)?(a.d=1):(a.b=1):c.k==i0b&&b.k==g0b&&(ajc(c).j==(Ucd(),Acd)?(a.b=1):(a.d=1));cjc(a,b,c)} +function esd(a){var b,c,d,e,f,g,h,i,j,k,l;l=hsd(a);b=a.a;i=b!=null;i&&Upd(l,'category',a.a);e=Fhe(new Pib(a.d));g=!e;if(g){j=new wB;cC(l,'knownOptions',j);c=new msd(j);reb(new Pib(a.d),c)}f=Fhe(a.g);h=!f;if(h){k=new wB;cC(l,'supportedFeatures',k);d=new osd(k);reb(a.g,d)}return l} +function ty(a){var b,c,d,e,f,g,h,i,j;d=false;b=336;c=0;f=new Xp(a.length);for(h=a,i=0,j=h.length;i<j;++i){g=h[i];d=d|(Uzb(g),false);e=(Tzb(g),g.a);Ekb(f.a,Qb(e));b&=e.qd();c=Ly(c,e.rd())}return BD(BD(Rzb(new YAb(null,Yj(new Kub((im(),nm(f.a)),16),new vy,b,c)),new xy(a)),670),833)} +function UWb(a,b){var c;if(!!a.d&&(b.c!=a.e.c||qWb(a.e.b,b.b))){Ekb(a.f,a.d);a.a=a.d.c+a.d.b;a.d=null;a.e=null}nWb(b.b)?(a.c=b):(a.b=b);if(b.b==(lWb(),hWb)&&!b.a||b.b==iWb&&b.a||b.b==jWb&&b.a||b.b==kWb&&!b.a){if(!!a.c&&!!a.b){c=new J6c(a.a,a.c.d,b.c-a.a,a.b.d-a.c.d);a.d=c;a.e=b}}} +function L2c(a){var b;D2c.call(this);this.i=new Z2c;this.g=a;this.f=BD(a.e&&a.e(),9).length;if(this.f==0){throw vbb(new Wdb('There must be at least one phase in the phase enumeration.'))}this.c=(b=BD(gdb(this.g),9),new xqb(b,BD(_Bb(b,b.length),9),0));this.a=new j3c;this.b=new Lqb} +function God(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=7&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Iod(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Eod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,1,C2,d));d=Dod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,b,b))} +function NHd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+QHd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?KHd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,0,k5,d));d=JHd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function Ehb(a,b){Dhb();var c,d,e,f,g,h,i,j,k;if(b.d>a.d){h=a;a=b;b=h}if(b.d<63){return Ihb(a,b)}g=(a.d&-2)<<4;j=Rgb(a,g);k=Rgb(b,g);d=yhb(a,Qgb(j,g));e=yhb(b,Qgb(k,g));i=Ehb(j,k);c=Ehb(d,e);f=Ehb(yhb(j,d),yhb(e,k));f=thb(thb(f,i),c);f=Qgb(f,g);i=Qgb(i,g<<1);return thb(thb(i,f),c)} +function aGc(a,b,c){var d,e,f,g,h;g=CHc(a,c);h=KC(OQ,kne,10,b.length,0,1);d=0;for(f=g.Kc();f.Ob();){e=BD(f.Pb(),11);Ccb(DD(vNb(e,(wtc(),Nsc))))&&(h[d++]=BD(vNb(e,gtc),10))}if(d<b.length){throw vbb(new Zdb('Expected '+b.length+' hierarchical ports, but found only '+d+'.'))}return h} +function Und(a,b){var c,d,e,f,g,h;if(!a.tb){f=(!a.rb&&(a.rb=new jUd(a,d5,a)),a.rb);h=new Mqb(f.i);for(e=new Fyd(f);e.e!=e.i.gc();){d=BD(Dyd(e),138);g=d.ne();c=BD(g==null?jrb(h.f,null,d):Drb(h.g,g,d),138);!!c&&(g==null?jrb(h.f,null,c):Drb(h.g,g,c))}a.tb=h}return BD(Phb(a.tb,b),138)} +function YKd(a,b){var c,d,e,f,g;(a.i==null&&TKd(a),a.i).length;if(!a.p){g=new Mqb((3*a.g.i/2|0)+1);for(e=new $yd(a.g);e.e!=e.i.gc();){d=BD(Zyd(e),170);f=d.ne();c=BD(f==null?jrb(g.f,null,d):Drb(g.g,f,d),170);!!c&&(f==null?jrb(g.f,null,c):Drb(g.g,f,c))}a.p=g}return BD(Phb(a.p,b),170)} +function hCb(a,b,c,d,e){var f,g,h,i,j;fCb(d+Wy(c,c.$d()),e);gCb(b,jCb(c));f=c.f;!!f&&hCb(a,b,f,'Caused by: ',false);for(h=(c.k==null&&(c.k=KC(_I,nie,78,0,0,1)),c.k),i=0,j=h.length;i<j;++i){g=h[i];hCb(a,b,g,'Suppressed: ',false)}console.groupEnd!=null&&console.groupEnd.call(console)} +function dGc(a,b,c,d){var e,f,g,h,i;i=b.e;h=i.length;g=b.q._f(i,c?0:h-1,c);e=i[c?0:h-1];g=g|cGc(a,e,c,d);for(f=c?1:h-2;c?f<h:f>=0;f+=c?1:-1){g=g|b.c.Sf(i,f,c,d&&!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,(wtc(),mtc)))));g=g|b.q._f(i,f,c);g=g|cGc(a,i[f],c,d)}Qqb(a.c,b);return g} +function o3b(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(k=m_b(a.j),l=0,m=k.length;l<m;++l){j=k[l];if(c==(KAc(),HAc)||c==JAc){i=k_b(j.g);for(e=i,f=0,g=e.length;f<g;++f){d=e[f];k3b(b,d)&&PZb(d,true)}}if(c==IAc||c==JAc){h=k_b(j.e);for(e=h,f=0,g=e.length;f<g;++f){d=e[f];j3b(b,d)&&PZb(d,true)}}}} +function Qmc(a){var b,c;b=null;c=null;switch(Lmc(a).g){case 1:b=(Ucd(),zcd);c=Tcd;break;case 2:b=(Ucd(),Rcd);c=Acd;break;case 3:b=(Ucd(),Tcd);c=zcd;break;case 4:b=(Ucd(),Acd);c=Rcd;}mjc(a,BD(Btb(RAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113));njc(a,BD(Btb(QAb(BD(Qc(a.k,c),15).Oc(),Hmc)),113))} +function a6b(a){var b,c,d,e,f,g;e=BD(Ikb(a.j,0),11);if(e.e.c.length+e.g.c.length==0){a.n.a=0}else{g=0;for(d=ul(pl(OC(GC(KI,1),Uhe,20,0,[new J0b(e),new R0b(e)])));Qr(d);){c=BD(Rr(d),11);g+=c.i.n.a+c.n.a+c.a.a}b=BD(vNb(a,(Nyc(),Txc)),8);f=!b?0:b.a;a.n.a=g/(e.e.c.length+e.g.c.length)-f}} +function F1c(a,b){var c,d,e;for(d=new olb(b.a);d.a<d.c.c.length;){c=BD(mlb(d),221);$Nb(BD(c.b,65),c7c(R6c(BD(b.b,65).c),BD(b.b,65).a));e=xOb(BD(b.b,65).b,BD(c.b,65).b);e>1&&(a.a=true);ZNb(BD(c.b,65),P6c(R6c(BD(b.b,65).c),Y6c(c7c(R6c(BD(c.b,65).a),BD(b.b,65).a),e)));D1c(a,b);F1c(a,c)}} +function rVb(a){var b,c,d,e,f,g,h;for(f=new olb(a.a.a);f.a<f.c.c.length;){d=BD(mlb(f),189);d.e=0;d.d.a.$b()}for(e=new olb(a.a.a);e.a<e.c.c.length;){d=BD(mlb(e),189);for(c=d.a.a.ec().Kc();c.Ob();){b=BD(c.Pb(),81);for(h=b.f.Kc();h.Ob();){g=BD(h.Pb(),81);if(g.d!=d){Qqb(d.d,g);++g.d.e}}}}} +function bcc(a){var b,c,d,e,f,g,h,i;i=a.j.c.length;c=0;b=i;e=2*i;for(h=new olb(a.j);h.a<h.c.c.length;){g=BD(mlb(h),11);switch(g.j.g){case 2:case 4:g.p=-1;break;case 1:case 3:d=g.e.c.length;f=g.g.c.length;d>0&&f>0?(g.p=b++):d>0?(g.p=c++):f>0?(g.p=e++):(g.p=c++);}}mmb();Okb(a.j,new fcc)} +function Vec(a){var b,c;c=null;b=BD(Ikb(a.g,0),17);do{c=b.d.i;if(wNb(c,(wtc(),Wsc))){return BD(vNb(c,Wsc),11).i}if(c.k!=(j0b(),h0b)&&Qr(new Sr(ur(U_b(c).a.Kc(),new Sq)))){b=BD(Rr(new Sr(ur(U_b(c).a.Kc(),new Sq))),17)}else if(c.k!=h0b){return null}}while(!!c&&c.k!=(j0b(),h0b));return c} +function Omc(a,b){var c,d,e,f,g,h,i,j,k;h=b.j;g=b.g;i=BD(Ikb(h,h.c.length-1),113);k=(tCb(0,h.c.length),BD(h.c[0],113));j=Kmc(a,g,i,k);for(f=1;f<h.c.length;f++){c=(tCb(f-1,h.c.length),BD(h.c[f-1],113));e=(tCb(f,h.c.length),BD(h.c[f],113));d=Kmc(a,g,c,e);if(d>j){i=c;k=e;j=d}}b.a=k;b.c=i} +function sEb(a,b){var c,d;d=Axb(a.b,b.b);if(!d){throw vbb(new Zdb('Invalid hitboxes for scanline constraint calculation.'))}(mEb(b.b,BD(Cxb(a.b,b.b),57))||mEb(b.b,BD(Bxb(a.b,b.b),57)))&&(Zfb(),b.b+' has overlap.');a.a[b.b.f]=BD(Exb(a.b,b.b),57);c=BD(Dxb(a.b,b.b),57);!!c&&(a.a[c.f]=b.b)} +function AFb(a){if(!a.a.d||!a.a.e){throw vbb(new Zdb((fdb(fN),fN.k+' must have a source and target '+(fdb(jN),jN.k)+' specified.')))}if(a.a.d==a.a.e){throw vbb(new Zdb('Network simplex does not support self-loops: '+a.a+' '+a.a.d+' '+a.a.e))}NFb(a.a.d.g,a.a);NFb(a.a.e.b,a.a);return a.a} +function HHc(a,b,c){var d,e,f,g,h,i,j;j=new Hxb(new tIc(a));for(g=OC(GC(aR,1),lne,11,0,[b,c]),h=0,i=g.length;h<i;++h){f=g[h];Iwb(j.a,f,(Bcb(),zcb))==null;for(e=new b1b(f.b);llb(e.a)||llb(e.b);){d=BD(llb(e.a)?mlb(e.a):mlb(e.b),17);d.c==d.d||Axb(j,f==d.c?d.d:d.c)}}return Qb(j),new Tkb(j)} +function oPc(a,b,c){var d,e,f,g,h,i;d=0;if(b.b!=0&&c.b!=0){f=Jsb(b,0);g=Jsb(c,0);h=Edb(ED(Xsb(f)));i=Edb(ED(Xsb(g)));e=true;do{if(h>i-a.b&&h<i+a.b){return -1}else h>i-a.a&&h<i+a.a&&++d;h<=i&&f.b!=f.d.c?(h=Edb(ED(Xsb(f)))):i<=h&&g.b!=g.d.c?(i=Edb(ED(Xsb(g)))):(e=false)}while(e)}return d} +function F3b(a,b,c,d,e){var f,g,h,i;i=(f=BD(gdb(F1),9),new xqb(f,BD(_Bb(f,f.length),9),0));for(h=new olb(a.j);h.a<h.c.c.length;){g=BD(mlb(h),11);if(b[g.p]){G3b(g,b[g.p],d);rqb(i,g.j)}}if(e){K3b(a,b,(Ucd(),zcd),2*c,d);K3b(a,b,Tcd,2*c,d)}else{K3b(a,b,(Ucd(),Acd),2*c,d);K3b(a,b,Rcd,2*c,d)}} +function Szb(a){var b,c,d,e,f;f=new Rkb;Hkb(a.b,new XBb(f));a.b.c=KC(SI,Uhe,1,0,5,1);if(f.c.length!=0){b=(tCb(0,f.c.length),BD(f.c[0],78));for(c=1,d=f.c.length;c<d;++c){e=(tCb(c,f.c.length),BD(f.c[c],78));e!=b&&Qy(b,e)}if(JD(b,60)){throw vbb(BD(b,60))}if(JD(b,289)){throw vbb(BD(b,289))}}} +function DCb(a,b){var c,d,e,f;a=a==null?Xhe:(uCb(a),a);c=new Vfb;f=0;d=0;while(d<b.length){e=a.indexOf('%s',f);if(e==-1){break}Qfb(c,a.substr(f,e-f));Pfb(c,b[d++]);f=e+2}Qfb(c,a.substr(f));if(d<b.length){c.a+=' [';Pfb(c,b[d++]);while(d<b.length){c.a+=She;Pfb(c,b[d++])}c.a+=']'}return c.a} +function KCb(a){var b,c,d,e;b=0;d=a.length;e=d-4;c=0;while(c<e){b=(BCb(c+3,a.length),a.charCodeAt(c+3)+(BCb(c+2,a.length),31*(a.charCodeAt(c+2)+(BCb(c+1,a.length),31*(a.charCodeAt(c+1)+(BCb(c,a.length),31*(a.charCodeAt(c)+31*b)))))));b=b|0;c+=4}while(c<d){b=b*31+bfb(a,c++)}b=b|0;return b} +function Rac(a){var b,c;for(c=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(b.d.i.k!=(j0b(),f0b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to LAST, but has at least one outgoing edge that "+' does not go to a LAST_SEPARATE node. That must not happen.'))}}} +function jQc(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=0;for(k=new olb(a.a);k.a<k.c.c.length;){j=BD(mlb(k),10);h=0;for(f=new Sr(ur(R_b(j).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);l=A0b(e.c).b;m=A0b(e.d).b;h=$wnd.Math.max(h,$wnd.Math.abs(m-l))}i=$wnd.Math.max(i,h)}g=d*$wnd.Math.min(1,b/c)*i;return g} +function See(a){var b;b=new Ifb;(a&256)!=0&&(b.a+='F',b);(a&128)!=0&&(b.a+='H',b);(a&512)!=0&&(b.a+='X',b);(a&2)!=0&&(b.a+='i',b);(a&8)!=0&&(b.a+='m',b);(a&4)!=0&&(b.a+='s',b);(a&32)!=0&&(b.a+='u',b);(a&64)!=0&&(b.a+='w',b);(a&16)!=0&&(b.a+='x',b);(a&zte)!=0&&(b.a+=',',b);return jfb(b.a)} +function F5b(a,b){var c,d,e,f;Odd(b,'Resize child graph to fit parent.',1);for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),29);Gkb(a.a,c.a);c.a.c=KC(SI,Uhe,1,0,5,1)}for(f=new olb(a.a);f.a<f.c.c.length;){e=BD(mlb(f),10);$_b(e,null)}a.b.c=KC(SI,Uhe,1,0,5,1);G5b(a);!!a.e&&E5b(a.e,a);Qdd(b)} +function eec(a){var b,c,d,e,f,g,h,i,j;d=a.b;f=d.e;g=ecd(BD(vNb(d,(Nyc(),Vxc)),98));c=!!f&&BD(vNb(f,(wtc(),Ksc)),21).Hc((Orc(),Hrc));if(g||c){return}for(j=(h=(new $ib(a.e)).a.vc().Kc(),new djb(h));j.a.Ob();){i=(b=BD(j.a.Pb(),42),BD(b.dd(),113));if(i.a){e=i.d;F0b(e,null);i.c=true;a.a=true}}} +function QFc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;m=-1;n=0;for(j=a,k=0,l=j.length;k<l;++k){i=j[k];for(f=i,g=0,h=f.length;g<h;++g){e=f[g];b=new Unc(m==-1?a[0]:a[m],Xec(e));for(c=0;c<e.j.c.length;c++){for(d=c+1;d<e.j.c.length;d++){Rnc(b,BD(Ikb(e.j,c),11),BD(Ikb(e.j,d),11))>0&&++n}}}++m}return n} +function hUc(a,b){var c,d,e,f,g;g=BD(vNb(b,(JTc(),FTc)),425);for(f=Jsb(b.b,0);f.b!=f.d.c;){e=BD(Xsb(f),86);if(a.b[e.g]==0){switch(g.g){case 0:iUc(a,e);break;case 1:gUc(a,e);}a.b[e.g]=2}}for(d=Jsb(a.a,0);d.b!=d.d.c;){c=BD(Xsb(d),188);ze(c.b.d,c,true);ze(c.c.b,c,true)}yNb(b,(mTc(),gTc),a.a)} +function S6d(a,b){Q6d();var c,d,e,f;if(!b){return P6d}else if(b==(Q8d(),N8d)||(b==v8d||b==t8d||b==u8d)&&a!=s8d){return new Z6d(a,b)}else{d=BD(b,677);c=d.pk();if(!c){a2d(q1d((O6d(),M6d),b));c=d.pk()}f=(!c.i&&(c.i=new Lqb),c.i);e=BD(Wd(irb(f.f,a)),1942);!e&&Rhb(f,a,e=new Z6d(a,b));return e}} +function Tbc(a,b){var c,d,e,f,g,h,i,j,k;i=BD(vNb(a,(wtc(),$sc)),11);j=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).a;k=a.i.n.b;c=k_b(a.e);for(e=c,f=0,g=e.length;f<g;++f){d=e[f];RZb(d,i);Fsb(d.a,new f7c(j,k));if(b){h=BD(vNb(d,(Nyc(),jxc)),74);if(!h){h=new s7c;yNb(d,jxc,h)}Dsb(h,new f7c(j,k))}}} +function Ubc(a,b){var c,d,e,f,g,h,i,j,k;e=BD(vNb(a,(wtc(),$sc)),11);j=l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).a;k=a.i.n.b;c=k_b(a.g);for(g=c,h=0,i=g.length;h<i;++h){f=g[h];QZb(f,e);Esb(f.a,new f7c(j,k));if(b){d=BD(vNb(f,(Nyc(),jxc)),74);if(!d){d=new s7c;yNb(f,jxc,d)}Dsb(d,new f7c(j,k))}}} +function TFc(a,b){var c,d,e,f,g,h;a.b=new Rkb;a.d=BD(vNb(b,(wtc(),jtc)),230);a.e=Dub(a.d);f=new Psb;e=Ou(OC(GC(KQ,1),cne,37,0,[b]));g=0;while(g<e.c.length){d=(tCb(g,e.c.length),BD(e.c[g],37));d.p=g++;c=new fFc(d,a.a,a.b);Gkb(e,c.b);Ekb(a.b,c);c.s&&(h=Jsb(f,0),Vsb(h,c))}a.c=new Tqb;return f} +function HJb(a,b){var c,d,e,f,g,h;for(g=BD(BD(Qc(a.r,b),21),84).Kc();g.Ob();){f=BD(g.Pb(),111);c=f.c?ZHb(f.c):0;if(c>0){if(f.a){h=f.b.rf().a;if(c>h){e=(c-h)/2;f.d.b=e;f.d.c=e}}else{f.d.c=a.s+c}}else if(tcd(a.u)){d=sfd(f.b);d.c<0&&(f.d.b=-d.c);d.c+d.b>f.b.rf().a&&(f.d.c=d.c+d.b-f.b.rf().a)}}} +function Eec(a,b){var c,d,e,f;Odd(b,'Semi-Interactive Crossing Minimization Processor',1);c=false;for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),29);f=TAb(VAb(JAb(JAb(new YAb(null,new Kub(d.a,16)),new Jec),new Lec),new Nec),new Rec);c=c|f.a!=null}c&&yNb(a,(wtc(),Rsc),(Bcb(),true));Qdd(b)} +function sRc(a,b,c){var d,e,f,g,h;e=c;!e&&(e=new Zdd);Odd(e,'Layout',a.a.c.length);if(Ccb(DD(vNb(b,(JTc(),vTc))))){Zfb();for(d=0;d<a.a.c.length;d++){h=(d<10?'0':'')+d++;' Slot '+h+': '+hdb(rb(BD(Ikb(a.a,d),51)))}}for(g=new olb(a.a);g.a<g.c.c.length;){f=BD(mlb(g),51);f.pf(b,Udd(e,1))}Qdd(e)} +function yMb(a){var b,c;b=BD(a.a,19).a;c=BD(a.b,19).a;if(b>=0){if(b==c){return new vgd(meb(-b-1),meb(-b-1))}if(b==-c){return new vgd(meb(-b),meb(c+1))}}if($wnd.Math.abs(b)>$wnd.Math.abs(c)){if(b<0){return new vgd(meb(-b),meb(c))}return new vgd(meb(-b),meb(c+1))}return new vgd(meb(b+1),meb(c))} +function q5b(a){var b,c;c=BD(vNb(a,(Nyc(),mxc)),163);b=BD(vNb(a,(wtc(),Osc)),303);if(c==(Ctc(),ytc)){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),dsc))}else if(c==Atc){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),bsc))}else if(b==(esc(),dsc)){yNb(a,mxc,ytc);yNb(a,Osc,csc)}else if(b==bsc){yNb(a,mxc,Atc);yNb(a,Osc,csc)}} +function FNc(){FNc=ccb;DNc=new RNc;zNc=e3c(new j3c,(qUb(),nUb),(S8b(),o8b));CNc=c3c(e3c(new j3c,nUb,C8b),pUb,B8b);ENc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);ANc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);BNc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} +function hQc(){hQc=ccb;cQc=e3c(c3c(new j3c,(qUb(),pUb),(S8b(),c8b)),nUb,o8b);gQc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);dQc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);fQc=e3c(e3c(new j3c,nUb,C8b),pUb,B8b);eQc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} +function GNc(a,b,c,d,e){var f,g;if((!OZb(b)&&b.c.i.c==b.d.i.c||!T6c(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])),c))&&!OZb(b)){b.c==e?St(b.a,0,new g7c(c)):Dsb(b.a,new g7c(c));if(d&&!Rqb(a.a,c)){g=BD(vNb(b,(Nyc(),jxc)),74);if(!g){g=new s7c;yNb(b,jxc,g)}f=new g7c(c);Gsb(g,f,g.c.b,g.c);Qqb(a.a,f)}}} +function Qac(a){var b,c;for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(b.c.i.k!=(j0b(),f0b)){throw vbb(new y2c(Fne+P_b(a)+"' 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 vjd(a,b,c){var d,e,f,g,h,i,j;e=aeb(a.Db&254);if(e==0){a.Eb=c}else{if(e==1){h=KC(SI,Uhe,1,2,5,1);f=zjd(a,b);if(f==0){h[0]=c;h[1]=a.Eb}else{h[0]=a.Eb;h[1]=c}}else{h=KC(SI,Uhe,1,e+1,5,1);g=CD(a.Eb);for(d=2,i=0,j=0;d<=128;d<<=1){d==b?(h[j++]=c):(a.Db&d)!=0&&(h[j++]=g[i++])}}a.Eb=h}a.Db|=b} +function ENb(a,b,c){var d,e,f,g;this.b=new Rkb;e=0;d=0;for(g=new olb(a);g.a<g.c.c.length;){f=BD(mlb(g),167);c&&rMb(f);Ekb(this.b,f);e+=f.o;d+=f.p}if(this.b.c.length>0){f=BD(Ikb(this.b,0),167);e+=f.o;d+=f.p}e*=2;d*=2;b>1?(e=QD($wnd.Math.ceil(e*b))):(d=QD($wnd.Math.ceil(d/b)));this.a=new pNb(e,d)} +function Igc(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;k=d;if(b.j&&b.o){n=BD(Ohb(a.f,b.A),57);p=n.d.c+n.d.b;--k}else{p=b.a.c+b.a.b}l=e;if(c.q&&c.o){n=BD(Ohb(a.f,c.C),57);j=n.d.c;++l}else{j=c.a.c}q=j-p;i=$wnd.Math.max(2,l-k);h=q/i;o=p+h;for(m=k;m<l;++m){g=BD(f.Xb(m),128);r=g.a.b;g.a.c=o-r/2;o+=h}} +function UHc(a,b,c,d,e,f){var g,h,i,j,k,l;j=c.c.length;f&&(a.c=KC(WD,oje,25,b.length,15,1));for(g=e?0:b.length-1;e?g<b.length:g>=0;g+=e?1:-1){h=b[g];i=d==(Ucd(),zcd)?e?V_b(h,d):Su(V_b(h,d)):e?Su(V_b(h,d)):V_b(h,d);f&&(a.c[h.p]=i.gc());for(l=i.Kc();l.Ob();){k=BD(l.Pb(),11);a.d[k.p]=j++}Gkb(c,i)}} +function aQc(a,b,c){var d,e,f,g,h,i,j,k;f=Edb(ED(a.b.Kc().Pb()));j=Edb(ED(Pq(b.b)));d=Y6c(R6c(a.a),j-c);e=Y6c(R6c(b.a),c-f);k=P6c(d,e);Y6c(k,1/(j-f));this.a=k;this.b=new Rkb;h=true;g=a.b.Kc();g.Pb();while(g.Ob()){i=Edb(ED(g.Pb()));if(h&&i-c>Oqe){this.b.Fc(c);h=false}this.b.Fc(i)}h&&this.b.Fc(c)} +function vGb(a){var b,c,d,e;yGb(a,a.n);if(a.d.c.length>0){Blb(a.c);while(GGb(a,BD(mlb(new olb(a.e.a)),121))<a.e.a.c.length){b=AGb(a);e=b.e.e-b.d.e-b.a;b.e.j&&(e=-e);for(d=new olb(a.e.a);d.a<d.c.c.length;){c=BD(mlb(d),121);c.j&&(c.e+=e)}Blb(a.c)}Blb(a.c);DGb(a,BD(mlb(new olb(a.e.a)),121));rGb(a)}} +function rkc(a,b){var c,d,e,f,g;for(e=BD(Qc(a.a,(Xjc(),Tjc)),15).Kc();e.Ob();){d=BD(e.Pb(),101);c=BD(Ikb(d.j,0),113).d.j;f=new Tkb(d.j);Okb(f,new Xkc);switch(b.g){case 1:jkc(a,f,c,(Fkc(),Dkc),1);break;case 0:g=lkc(f);jkc(a,new Jib(f,0,g),c,(Fkc(),Dkc),0);jkc(a,new Jib(f,g,f.c.length),c,Dkc,1);}}} +function c2c(a,b){Y1c();var c,d;c=j4c(n4c(),b.tg());if(c){d=c.j;if(JD(a,239)){return Zod(BD(a,33))?uqb(d,(N5c(),K5c))||uqb(d,L5c):uqb(d,(N5c(),K5c))}else if(JD(a,352)){return uqb(d,(N5c(),I5c))}else if(JD(a,186)){return uqb(d,(N5c(),M5c))}else if(JD(a,354)){return uqb(d,(N5c(),J5c))}}return true} +function c3d(a,b,c){var d,e,f,g,h,i;e=c;f=e.ak();if(T6d(a.e,f)){if(f.hi()){d=BD(a.g,119);for(g=0;g<a.i;++g){h=d[g];if(pb(h,e)&&g!=b){throw vbb(new Wdb(kue))}}}}else{i=S6d(a.e.Tg(),f);d=BD(a.g,119);for(g=0;g<a.i;++g){h=d[g];if(i.rl(h.ak())&&g!=b){throw vbb(new Wdb(Hwe))}}}return BD(Gtd(a,b,c),72)} +function Sy(d,b){if(b instanceof Object){try{b.__java$exception=d;if(navigator.userAgent.toLowerCase().indexOf('msie')!=-1&&$doc.documentMode<9){return}var c=d;Object.defineProperties(b,{cause:{get:function(){var a=c.Zd();return a&&a.Xd()}},suppressed:{get:function(){return c.Yd()}}})}catch(a){}}} +function lhb(a,b){var c,d,e,f,g;d=b>>5;b&=31;if(d>=a.d){return a.e<0?(Hgb(),Bgb):(Hgb(),Ggb)}f=a.d-d;e=KC(WD,oje,25,f+1,15,1);mhb(e,f,a.a,d,b);if(a.e<0){for(c=0;c<d&&a.a[c]==0;c++);if(c<d||b>0&&a.a[c]<<32-b!=0){for(c=0;c<f&&e[c]==-1;c++){e[c]=0}c==f&&++f;++e[c]}}g=new Vgb(a.e,f,e);Jgb(g);return g} +function UPb(a){var b,c,d,e;e=mpd(a);c=new kQb(e);d=new mQb(e);b=new Rkb;Gkb(b,(!a.d&&(a.d=new y5d(B2,a,8,5)),a.d));Gkb(b,(!a.e&&(a.e=new y5d(B2,a,7,4)),a.e));return BD(GAb(NAb(JAb(new YAb(null,new Kub(b,16)),c),d),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21)} +function p2d(a,b,c,d){var e,f,g,h,i;h=(Q6d(),BD(b,66).Oj());if(T6d(a.e,b)){if(b.hi()&&F2d(a,b,d,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)){throw vbb(new Wdb(kue))}}else{i=S6d(a.e.Tg(),b);e=BD(a.g,119);for(g=0;g<a.i;++g){f=e[g];if(i.rl(f.ak())){throw vbb(new Wdb(Hwe))}}}vtd(a,I2d(a,b,c),h?BD(d,72):R6d(b,d))} +function T6d(a,b){Q6d();var c,d,e;if(b.$j()){return true}else if(b.Zj()==-2){if(b==(m8d(),k8d)||b==h8d||b==i8d||b==j8d){return true}else{e=a.Tg();if(bLd(e,b)>=0){return false}else{c=e1d((O6d(),M6d),e,b);if(!c){return true}else{d=c.Zj();return (d>1||d==-1)&&$1d(q1d(M6d,c))!=3}}}}else{return false}} +function R1b(a,b,c,d){var e,f,g,h,i;h=atd(BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82));i=atd(BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82));if(Xod(h)==Xod(i)){return null}if(ntd(i,h)){return null}g=Mld(b);if(g==c){return d}else{f=BD(Ohb(a.a,g),10);if(f){e=f.e;if(e){return e}}}return null} +function Cac(a,b){var c;c=BD(vNb(a,(Nyc(),Rwc)),276);Odd(b,'Label side selection ('+c+')',1);switch(c.g){case 0:Dac(a,(rbd(),nbd));break;case 1:Dac(a,(rbd(),obd));break;case 2:Bac(a,(rbd(),nbd));break;case 3:Bac(a,(rbd(),obd));break;case 4:Eac(a,(rbd(),nbd));break;case 5:Eac(a,(rbd(),obd));}Qdd(b)} +function bGc(a,b,c){var d,e,f,g,h,i;d=RFc(c,a.length);g=a[d];if(g[0].k!=(j0b(),e0b)){return}f=SFc(c,g.length);i=b.j;for(e=0;e<i.c.length;e++){h=(tCb(e,i.c.length),BD(i.c[e],11));if((c?h.j==(Ucd(),zcd):h.j==(Ucd(),Tcd))&&Ccb(DD(vNb(h,(wtc(),Nsc))))){Nkb(i,e,BD(vNb(g[f],(wtc(),$sc)),11));f+=c?1:-1}}} +function rQc(a,b){var c,d,e,f,g;g=new Rkb;c=b;do{f=BD(Ohb(a.b,c),128);f.B=c.c;f.D=c.d;g.c[g.c.length]=f;c=BD(Ohb(a.k,c),17)}while(c);d=(tCb(0,g.c.length),BD(g.c[0],128));d.j=true;d.A=BD(d.d.a.ec().Kc().Pb(),17).c.i;e=BD(Ikb(g,g.c.length-1),128);e.q=true;e.C=BD(e.d.a.ec().Kc().Pb(),17).d.i;return g} +function $wd(a){if(a.g==null){switch(a.p){case 0:a.g=Swd(a)?(Bcb(),Acb):(Bcb(),zcb);break;case 1:a.g=Scb(Twd(a));break;case 2:a.g=bdb(Uwd(a));break;case 3:a.g=Vwd(a);break;case 4:a.g=new Ndb(Wwd(a));break;case 6:a.g=Aeb(Ywd(a));break;case 5:a.g=meb(Xwd(a));break;case 7:a.g=Web(Zwd(a));}}return a.g} +function hxd(a){if(a.n==null){switch(a.p){case 0:a.n=_wd(a)?(Bcb(),Acb):(Bcb(),zcb);break;case 1:a.n=Scb(axd(a));break;case 2:a.n=bdb(bxd(a));break;case 3:a.n=cxd(a);break;case 4:a.n=new Ndb(dxd(a));break;case 6:a.n=Aeb(fxd(a));break;case 5:a.n=meb(exd(a));break;case 7:a.n=Web(gxd(a));}}return a.n} +function QDb(a){var b,c,d,e,f,g,h;for(f=new olb(a.a.a);f.a<f.c.c.length;){d=BD(mlb(f),307);d.g=0;d.i=0;d.e.a.$b()}for(e=new olb(a.a.a);e.a<e.c.c.length;){d=BD(mlb(e),307);for(c=d.a.a.ec().Kc();c.Ob();){b=BD(c.Pb(),57);for(h=b.c.Kc();h.Ob();){g=BD(h.Pb(),57);if(g.a!=d){Qqb(d.e,g);++g.a.g;++g.a.i}}}}} +function gOb(a,b){var c,d,e,f,g,h;h=Axb(a.a,b.b);if(!h){throw vbb(new Zdb('Invalid hitboxes for scanline overlap calculation.'))}g=false;for(f=(d=new Ywb((new cxb((new Gjb(a.a.a)).a)).b),new Njb(d));sib(f.a.a);){e=(c=Wwb(f.a),BD(c.cd(),65));if(bOb(b.b,e)){T$c(a.b.a,b.b,e);g=true}else{if(g){break}}}} +function G5b(a){var b,c,d,e,f;e=BD(vNb(a,(Nyc(),Fxc)),21);f=BD(vNb(a,Ixc),21);c=new f7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);b=new g7c(c);if(e.Hc((tdd(),pdd))){d=BD(vNb(a,Hxc),8);if(f.Hc((Idd(),Bdd))){d.a<=0&&(d.a=20);d.b<=0&&(d.b=20)}b.a=$wnd.Math.max(c.a,d.a);b.b=$wnd.Math.max(c.b,d.b)}H5b(a,c,b)} +function toc(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b?new Coc:new Eoc;f=false;do{f=false;j=b?Su(a.b):a.b;for(i=j.Kc();i.Ob();){h=BD(i.Pb(),29);m=Mu(h.a);b||new ov(m);for(l=new olb(m);l.a<l.c.c.length;){k=BD(mlb(l),10);if(e.Mb(k)){d=k;c=BD(vNb(k,(wtc(),usc)),305);g=b?c.b:c.k;f=roc(d,g,b,false)}}}}while(f)} +function WCc(a,b,c){var d,e,f,g,h;Odd(c,'Longest path layering',1);a.a=b;h=a.a.a;a.b=KC(WD,oje,25,h.c.length,15,1);d=0;for(g=new olb(h);g.a<g.c.c.length;){e=BD(mlb(g),10);e.p=d;a.b[d]=-1;++d}for(f=new olb(h);f.a<f.c.c.length;){e=BD(mlb(f),10);YCc(a,e)}h.c=KC(SI,Uhe,1,0,5,1);a.a=null;a.b=null;Qdd(c)} +function QVb(a,b){var c,d,e;b.a?(Axb(a.b,b.b),a.a[b.b.i]=BD(Exb(a.b,b.b),81),c=BD(Dxb(a.b,b.b),81),!!c&&(a.a[c.i]=b.b),undefined):(d=BD(Exb(a.b,b.b),81),!!d&&d==a.a[b.b.i]&&!!d.d&&d.d!=b.b.d&&d.f.Fc(b.b),e=BD(Dxb(a.b,b.b),81),!!e&&a.a[e.i]==b.b&&!!e.d&&e.d!=b.b.d&&b.b.f.Fc(e),Fxb(a.b,b.b),undefined)} +function zbc(a,b){var c,d,e,f,g,h;f=a.d;h=Edb(ED(vNb(a,(Nyc(),Zwc))));if(h<0){h=0;yNb(a,Zwc,h)}b.o.b=h;g=$wnd.Math.floor(h/2);d=new H0b;G0b(d,(Ucd(),Tcd));F0b(d,b);d.n.b=g;e=new H0b;G0b(e,zcd);F0b(e,b);e.n.b=g;RZb(a,d);c=new UZb;tNb(c,a);yNb(c,jxc,null);QZb(c,e);RZb(c,f);ybc(b,a,c);wbc(a,c);return c} +function uNc(a){var b,c;c=BD(vNb(a,(wtc(),Ksc)),21);b=new j3c;if(c.Hc((Orc(),Irc))){d3c(b,oNc);d3c(b,qNc)}if(c.Hc(Krc)||Ccb(DD(vNb(a,(Nyc(),$wc))))){d3c(b,qNc);c.Hc(Lrc)&&d3c(b,rNc)}c.Hc(Hrc)&&d3c(b,nNc);c.Hc(Nrc)&&d3c(b,sNc);c.Hc(Jrc)&&d3c(b,pNc);c.Hc(Erc)&&d3c(b,lNc);c.Hc(Grc)&&d3c(b,mNc);return b} +function Ihb(a,b){var c,d,e,f,g,h,i,j,k,l,m;d=a.d;f=b.d;h=d+f;i=a.e!=b.e?-1:1;if(h==2){k=Ibb(xbb(a.a[0],Yje),xbb(b.a[0],Yje));m=Tbb(k);l=Tbb(Pbb(k,32));return l==0?new Ugb(i,m):new Vgb(i,2,OC(GC(WD,1),oje,25,15,[m,l]))}c=a.a;e=b.a;g=KC(WD,oje,25,h,15,1);Fhb(c,d,e,f,g);j=new Vgb(i,h,g);Jgb(j);return j} +function Gwb(a,b,c,d){var e,f;if(!b){return c}else{e=a.a.ue(c.d,b.d);if(e==0){d.d=ijb(b,c.e);d.b=true;return b}f=e<0?0:1;b.a[f]=Gwb(a,b.a[f],c,d);if(Hwb(b.a[f])){if(Hwb(b.a[1-f])){b.b=true;b.a[0].b=false;b.a[1].b=false}else{Hwb(b.a[f].a[f])?(b=Owb(b,1-f)):Hwb(b.a[f].a[1-f])&&(b=Nwb(b,1-f))}}}return b} +function wHb(a,b,c){var d,e,f,g;e=a.i;d=a.n;vHb(a,(gHb(),dHb),e.c+d.b,c);vHb(a,fHb,e.c+e.b-d.c-c[2],c);g=e.b-d.b-d.c;if(c[0]>0){c[0]+=a.d;g-=c[0]}if(c[2]>0){c[2]+=a.d;g-=c[2]}f=$wnd.Math.max(0,g);c[1]=$wnd.Math.max(c[1],g);vHb(a,eHb,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==eHb){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}} +function AYb(){this.c=KC(UD,Vje,25,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,15,1);this.b=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);this.a=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);zlb(this.c,Pje);zlb(this.b,Qje);zlb(this.a,Qje)} +function Ufe(a,b,c){var d,e,f,g;if(b<=c){e=b;f=c}else{e=c;f=b}d=0;if(a.b==null){a.b=KC(WD,oje,25,2,15,1);a.b[0]=e;a.b[1]=f;a.c=true}else{d=a.b.length;if(a.b[d-1]+1==e){a.b[d-1]=f;return}g=KC(WD,oje,25,d+2,15,1);$fb(a.b,0,g,0,d);a.b=g;a.b[d-1]>=e&&(a.c=false,a.a=false);a.b[d++]=e;a.b[d]=f;a.c||Yfe(a)}} +function inc(a,b,c){var d,e,f,g,h,i,j;j=b.d;a.a=new Skb(j.c.length);a.c=new Lqb;for(h=new olb(j);h.a<h.c.c.length;){g=BD(mlb(h),101);f=new uOc(null);Ekb(a.a,f);Rhb(a.c,g,f)}a.b=new Lqb;gnc(a,b);for(d=0;d<j.c.length-1;d++){i=BD(Ikb(b.d,d),101);for(e=d+1;e<j.c.length;e++){jnc(a,i,BD(Ikb(b.d,e),101),c)}}} +function ySc(a,b,c){var d,e,f,g,h,i;if(!Qq(b)){i=Udd(c,(JD(b,14)?BD(b,14).gc():sr(b.Kc()))/a.a|0);Odd(i,Xqe,1);h=new BSc;g=0;for(f=b.Kc();f.Ob();){d=BD(f.Pb(),86);h=pl(OC(GC(KI,1),Uhe,20,0,[h,new ZRc(d)]));g<d.f.b&&(g=d.f.b)}for(e=b.Kc();e.Ob();){d=BD(e.Pb(),86);yNb(d,(mTc(),bTc),g)}Qdd(i);ySc(a,h,c)}} +function bJc(a,b){var c,d,e,f,g,h,i;c=Qje;h=(j0b(),h0b);for(e=new olb(b.a);e.a<e.c.c.length;){d=BD(mlb(e),10);f=d.k;if(f!=h0b){g=ED(vNb(d,(wtc(),atc)));if(g==null){c=$wnd.Math.max(c,0);d.n.b=c+iBc(a.a,f,h)}else{d.n.b=(uCb(g),g)}}i=iBc(a.a,f,h);d.n.b<c+i+d.d.d&&(d.n.b=c+i+d.d.d);c=d.n.b+d.o.b+d.d.a;h=f}} +function uQb(a,b,c){var d,e,f,g,h,i,j,k,l;f=itd(b,false,false);j=ofd(f);l=Edb(ED(hkd(b,(CPb(),vPb))));e=sQb(j,l+a.a);k=new XOb(e);tNb(k,b);Rhb(a.b,b,k);c.c[c.c.length]=k;i=(!b.n&&(b.n=new cUd(D2,b,1,7)),b.n);for(h=new Fyd(i);h.e!=h.i.gc();){g=BD(Dyd(h),137);d=wQb(a,g,true,0,0);c.c[c.c.length]=d}return k} +function JVc(a,b,c,d,e){var f,g,h,i,j,k;!!a.d&&a.d.lg(e);f=BD(e.Xb(0),33);if(HVc(a,c,f,false)){return true}g=BD(e.Xb(e.gc()-1),33);if(HVc(a,d,g,true)){return true}if(CVc(a,e)){return true}for(k=e.Kc();k.Ob();){j=BD(k.Pb(),33);for(i=b.Kc();i.Ob();){h=BD(i.Pb(),33);if(BVc(a,j,h)){return true}}}return false} +function qid(a,b,c){var d,e,f,g,h,i,j,k,l,m;m=b.c.length;l=(j=a.Yg(c),BD(j>=0?a._g(j,false,true):sid(a,c,false),58));n:for(f=l.Kc();f.Ob();){e=BD(f.Pb(),56);for(k=0;k<m;++k){g=(tCb(k,b.c.length),BD(b.c[k],72));i=g.dd();h=g.ak();d=e.bh(h,false);if(i==null?d!=null:!pb(i,d)){continue n}}return e}return null} +function V6b(a,b,c,d){var e,f,g,h;e=BD(Y_b(b,(Ucd(),Tcd)).Kc().Pb(),11);f=BD(Y_b(b,zcd).Kc().Pb(),11);for(h=new olb(a.j);h.a<h.c.c.length;){g=BD(mlb(h),11);while(g.e.c.length!=0){RZb(BD(Ikb(g.e,0),17),e)}while(g.g.c.length!=0){QZb(BD(Ikb(g.g,0),17),f)}}c||yNb(b,(wtc(),Vsc),null);d||yNb(b,(wtc(),Wsc),null)} +function itd(a,b,c){var d,e;if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i==0){return etd(a)}else{d=BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202);if(b){Uxd((!d.a&&(d.a=new xMd(y2,d,5)),d.a));omd(d,0);pmd(d,0);hmd(d,0);imd(d,0)}if(c){e=(!a.a&&(a.a=new cUd(A2,a,6,6)),a.a);while(e.i>1){Xxd(e,e.i-1)}}return d}} +function Z2b(a,b){var c,d,e,f,g,h,i;Odd(b,'Comment post-processing',1);for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);d=new Rkb;for(h=new olb(e.a);h.a<h.c.c.length;){g=BD(mlb(h),10);i=BD(vNb(g,(wtc(),vtc)),15);c=BD(vNb(g,tsc),15);if(!!i||!!c){$2b(g,i,c);!!i&&Gkb(d,i);!!c&&Gkb(d,c)}}Gkb(e.a,d)}Qdd(b)} +function Eac(a,b){var c,d,e,f,g,h,i;c=new jkb;for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);i=true;d=0;for(h=new olb(e.a);h.a<h.c.c.length;){g=BD(mlb(h),10);switch(g.k.g){case 4:++d;case 1:Xjb(c,g);break;case 0:Gac(g,b);default:c.b==c.c||Fac(c,d,i,false,b);i=false;d=0;}}c.b==c.c||Fac(c,d,i,true,b)}} +function Ebc(a,b){var c,d,e,f,g,h,i;e=new Rkb;for(c=0;c<=a.i;c++){d=new H1b(b);d.p=a.i-c;e.c[e.c.length]=d}for(h=new olb(a.o);h.a<h.c.c.length;){g=BD(mlb(h),10);$_b(g,BD(Ikb(e,a.i-a.f[g.p]),29))}f=new olb(e);while(f.a<f.c.c.length){i=BD(mlb(f),29);i.a.c.length==0&&nlb(f)}b.b.c=KC(SI,Uhe,1,0,5,1);Gkb(b.b,e)} +function KHc(a,b){var c,d,e,f,g,h;c=0;for(h=new olb(b);h.a<h.c.c.length;){g=BD(mlb(h),11);AHc(a.b,a.d[g.p]);for(e=new b1b(g.b);llb(e.a)||llb(e.b);){d=BD(llb(e.a)?mlb(e.a):mlb(e.b),17);f=aIc(a,g==d.c?d.d:d.c);if(f>a.d[g.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function o2c(a,b,c){var d,e,f,g;f=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(e=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);(!d.a&&(d.a=new cUd(E2,d,10,11)),d.a).i==0||(f+=o2c(a,d,false))}if(c){g=Xod(b);while(g){f+=(!g.a&&(g.a=new cUd(E2,g,10,11)),g.a).i;g=Xod(g)}}return f} +function Xxd(a,b){var c,d,e,f;if(a.ej()){d=null;e=a.fj();a.ij()&&(d=a.kj(a.pi(b),null));c=a.Zi(4,f=tud(a,b),null,b,e);if(a.bj()&&f!=null){d=a.dj(f,d);if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}else{if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}return f}else{f=tud(a,b);if(a.bj()&&f!=null){d=a.dj(f,null);!!d&&d.Fi()}return f}} +function UKb(a){var b,c,d,e,f,g,h,i,j,k;j=a.a;b=new Tqb;i=0;for(d=new olb(a.d);d.a<d.c.c.length;){c=BD(mlb(d),222);k=0;ktb(c.b,new XKb);for(g=Jsb(c.b,0);g.b!=g.d.c;){f=BD(Xsb(g),222);if(b.a._b(f)){e=c.c;h=f.c;k<h.d+h.a+j&&k+e.a+j>h.d&&(k=h.d+h.a+j)}}c.c.d=k;b.a.zc(c,b);i=$wnd.Math.max(i,c.c.d+c.c.a)}return i} +function Orc(){Orc=ccb;Frc=new Prc('COMMENTS',0);Hrc=new Prc('EXTERNAL_PORTS',1);Irc=new Prc('HYPEREDGES',2);Jrc=new Prc('HYPERNODES',3);Krc=new Prc('NON_FREE_PORTS',4);Lrc=new Prc('NORTH_SOUTH_PORTS',5);Nrc=new Prc(Wne,6);Erc=new Prc('CENTER_LABELS',7);Grc=new Prc('END_LABELS',8);Mrc=new Prc('PARTITIONS',9)} +function gVc(a){var b,c,d,e,f;e=new Rkb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(d=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(!JD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),186)){f=atd(BD(qud((!c.c&&(c.c=new y5d(z2,c,5,8)),c.c),0),82));b.a._b(f)||(e.c[e.c.length]=f,true)}}return e} +function fVc(a){var b,c,d,e,f,g;f=new Tqb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(e=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);if(!JD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),186)){g=atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82));b.a._b(g)||(c=f.a.zc(g,f),c==null)}}return f} +function zA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function BA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function DA(a,b,c,d,e,f){var g,h,i,j;h=32;if(d<0){if(b[0]>=a.length){return false}h=bfb(a,b[0]);if(h!=43&&h!=45){return false}++b[0];d=rA(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new eB;j=i.q.getFullYear()-nje+nje-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d<g?100:0)}f.p=d;return true} +function L1b(a,b){var c,d,e,f,g;if(!Xod(a)){return}g=BD(vNb(b,(Nyc(),Fxc)),174);PD(hkd(a,Vxc))===PD((dcd(),ccd))&&jkd(a,Vxc,bcd);d=(Pgd(),new bhd(Xod(a)));f=new hhd(!Xod(a)?null:new bhd(Xod(a)),a);e=PGb(d,f,false,true);rqb(g,(tdd(),pdd));c=BD(vNb(b,Hxc),8);c.a=$wnd.Math.max(e.a,c.a);c.b=$wnd.Math.max(e.b,c.b)} +function Pac(a,b,c){var d,e,f,g,h,i;for(g=BD(vNb(a,(wtc(),Lsc)),15).Kc();g.Ob();){f=BD(g.Pb(),10);switch(BD(vNb(f,(Nyc(),mxc)),163).g){case 2:$_b(f,b);break;case 4:$_b(f,c);}for(e=new Sr(ur(O_b(f).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(!!d.c&&!!d.d){continue}h=!d.d;i=BD(vNb(d,ctc),11);h?RZb(d,i):QZb(d,i)}}} +function Alc(){Alc=ccb;tlc=new Blc(xle,0,(Ucd(),Acd),Acd);wlc=new Blc(zle,1,Rcd,Rcd);slc=new Blc(yle,2,zcd,zcd);zlc=new Blc(Ale,3,Tcd,Tcd);vlc=new Blc('NORTH_WEST_CORNER',4,Tcd,Acd);ulc=new Blc('NORTH_EAST_CORNER',5,Acd,zcd);ylc=new Blc('SOUTH_WEST_CORNER',6,Rcd,Tcd);xlc=new Blc('SOUTH_EAST_CORNER',7,zcd,Rcd)} +function i6c(){i6c=ccb;h6c=OC(GC(XD,1),Sje,25,14,[1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368000,{l:3506176,m:794077,h:1},{l:884736,m:916411,h:20},{l:3342336,m:3912489,h:363},{l:589824,m:3034138,h:6914},{l:3407872,m:1962506,h:138294}]);$wnd.Math.pow(2,-65)} +function Pcc(a,b){var c,d,e,f,g;if(a.c.length==0){return new vgd(meb(0),meb(0))}c=(tCb(0,a.c.length),BD(a.c[0],11)).j;g=0;f=b.g;d=b.g+1;while(g<a.c.length-1&&c.g<f){++g;c=(tCb(g,a.c.length),BD(a.c[g],11)).j}e=g;while(e<a.c.length-1&&c.g<d){++e;c=(tCb(g,a.c.length),BD(a.c[g],11)).j}return new vgd(meb(g),meb(e))} +function R9b(a,b,c){var d,e,f,g,h,i,j,k,l,m;f=b.c.length;g=(tCb(c,b.c.length),BD(b.c[c],286));h=g.a.o.a;l=g.c;m=0;for(j=g.c;j<=g.f;j++){if(h<=a.a[j]){return j}k=a.a[j];i=null;for(e=c+1;e<f;e++){d=(tCb(e,b.c.length),BD(b.c[e],286));d.c<=j&&d.f>=j&&(i=d)}!!i&&(k=$wnd.Math.max(k,i.a.o.a));if(k>m){l=j;m=k}}return l} +function ode(a,b,c){var d,e,f;a.e=c;a.d=0;a.b=0;a.f=1;a.i=b;(a.e&16)==16&&(a.i=Xee(a.i));a.j=a.i.length;nde(a);f=rde(a);if(a.d!=a.j)throw vbb(new mde(tvd((h0d(),sue))));if(a.g){for(d=0;d<a.g.a.c.length;d++){e=BD(Uvb(a.g,d),584);if(a.f<=e.a)throw vbb(new mde(tvd((h0d(),tue))))}a.g.a.c=KC(SI,Uhe,1,0,5,1)}return f} +function _Pd(a,b){var c,d,e;if(b==null){for(d=(!a.a&&(a.a=new cUd(g5,a,9,5)),new Fyd(a.a));d.e!=d.i.gc();){c=BD(Dyd(d),678);e=c.c;if((e==null?c.zb:e)==null){return c}}}else{for(d=(!a.a&&(a.a=new cUd(g5,a,9,5)),new Fyd(a.a));d.e!=d.i.gc();){c=BD(Dyd(d),678);if(dfb(b,(e=c.c,e==null?c.zb:e))){return c}}}return null} +function KIb(a,b){var c;c=null;switch(b.g){case 1:a.e.Xe((Y9c(),o9c))&&(c=BD(a.e.We(o9c),249));break;case 3:a.e.Xe((Y9c(),p9c))&&(c=BD(a.e.We(p9c),249));break;case 2:a.e.Xe((Y9c(),n9c))&&(c=BD(a.e.We(n9c),249));break;case 4:a.e.Xe((Y9c(),q9c))&&(c=BD(a.e.We(q9c),249));}!c&&(c=BD(a.e.We((Y9c(),l9c)),249));return c} +function OCc(a,b,c){var d,e,f,g,h,i,j,k,l;b.p=1;f=b.c;for(l=W_b(b,(KAc(),IAc)).Kc();l.Ob();){k=BD(l.Pb(),11);for(e=new olb(k.g);e.a<e.c.c.length;){d=BD(mlb(e),17);j=d.d.i;if(b!=j){g=j.c;if(g.p<=f.p){h=f.p+1;if(h==c.b.c.length){i=new H1b(c);i.p=h;Ekb(c.b,i);$_b(j,i)}else{i=BD(Ikb(c.b,h),29);$_b(j,i)}OCc(a,j,c)}}}}} +function ZXc(a,b,c){var d,e,f,g,h,i;e=c;f=0;for(h=new olb(b);h.a<h.c.c.length;){g=BD(mlb(h),33);jkd(g,(ZWc(),SWc),meb(e++));i=gVc(g);d=$wnd.Math.atan2(g.j+g.f/2,g.i+g.g/2);d+=d<0?dre:0;d<0.7853981633974483||d>vre?Okb(i,a.b):d<=vre&&d>wre?Okb(i,a.d):d<=wre&&d>xre?Okb(i,a.c):d<=xre&&Okb(i,a.a);f=ZXc(a,i,f)}return e} +function Hgb(){Hgb=ccb;var a;Cgb=new Ugb(1,1);Egb=new Ugb(1,10);Ggb=new Ugb(0,0);Bgb=new Ugb(-1,1);Dgb=OC(GC(cJ,1),nie,91,0,[Ggb,Cgb,new Ugb(1,2),new Ugb(1,3),new Ugb(1,4),new Ugb(1,5),new Ugb(1,6),new Ugb(1,7),new Ugb(1,8),new Ugb(1,9),Egb]);Fgb=KC(cJ,nie,91,32,0,1);for(a=0;a<Fgb.length;a++){Fgb[a]=ghb(Nbb(1,a))}} +function B9b(a,b,c,d,e,f){var g,h,i,j;h=!WAb(JAb(a.Oc(),new Xxb(new F9b))).sd((EAb(),DAb));g=a;f==(ead(),dad)&&(g=JD(g,152)?km(BD(g,152)):JD(g,131)?BD(g,131).a:JD(g,54)?new ov(g):new dv(g));for(j=g.Kc();j.Ob();){i=BD(j.Pb(),70);i.n.a=b.a;h?(i.n.b=b.b+(d.b-i.o.b)/2):e?(i.n.b=b.b):(i.n.b=b.b+d.b-i.o.b);b.a+=i.o.a+c}} +function UOc(a,b,c,d){var e,f,g,h,i,j;e=(d.c+d.a)/2;Osb(b.j);Dsb(b.j,e);Osb(c.e);Dsb(c.e,e);j=new aPc;for(h=new olb(a.f);h.a<h.c.c.length;){f=BD(mlb(h),129);i=f.a;WOc(j,b,i);WOc(j,c,i)}for(g=new olb(a.k);g.a<g.c.c.length;){f=BD(mlb(g),129);i=f.b;WOc(j,b,i);WOc(j,c,i)}j.b+=2;j.a+=POc(b,a.q);j.a+=POc(a.q,c);return j} +function FSc(a,b,c){var d,e,f,g,h;if(!Qq(b)){h=Udd(c,(JD(b,14)?BD(b,14).gc():sr(b.Kc()))/a.a|0);Odd(h,Xqe,1);g=new ISc;f=null;for(e=b.Kc();e.Ob();){d=BD(e.Pb(),86);g=pl(OC(GC(KI,1),Uhe,20,0,[g,new ZRc(d)]));if(f){yNb(f,(mTc(),hTc),d);yNb(d,_Sc,f);if(VRc(d)==VRc(f)){yNb(f,iTc,d);yNb(d,aTc,f)}}f=d}Qdd(h);FSc(a,g,c)}} +function VHb(a){var b,c,d,e,f,g,h;c=a.i;b=a.n;h=c.d;a.f==(EIb(),CIb)?(h+=(c.a-a.e.b)/2):a.f==BIb&&(h+=c.a-a.e.b);for(e=new olb(a.d);e.a<e.c.c.length;){d=BD(mlb(e),181);g=d.rf();f=new d7c;f.b=h;h+=g.b+a.a;switch(a.b.g){case 0:f.a=c.c+b.b;break;case 1:f.a=c.c+b.b+(c.b-g.a)/2;break;case 2:f.a=c.c+c.b-b.c-g.a;}d.tf(f)}} +function XHb(a){var b,c,d,e,f,g,h;c=a.i;b=a.n;h=c.c;a.b==(NHb(),KHb)?(h+=(c.b-a.e.a)/2):a.b==MHb&&(h+=c.b-a.e.a);for(e=new olb(a.d);e.a<e.c.c.length;){d=BD(mlb(e),181);g=d.rf();f=new d7c;f.a=h;h+=g.a+a.a;switch(a.f.g){case 0:f.b=c.d+b.d;break;case 1:f.b=c.d+b.d+(c.a-g.b)/2;break;case 2:f.b=c.d+c.a-b.a-g.b;}d.tf(f)}} +function D4b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;k=c.a.c;g=c.a.c+c.a.b;f=BD(Ohb(c.c,b),459);n=f.f;o=f.a;i=new f7c(k,n);l=new f7c(g,o);e=k;c.p||(e+=a.c);e+=c.F+c.v*a.b;j=new f7c(e,n);m=new f7c(e,o);n7c(b.a,OC(GC(m1,1),nie,8,0,[i,j]));h=c.d.a.gc()>1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} +function jdd(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Rse),'ELK Randomizer'),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new mdd)));p4c(a,Rse,ame,fdd);p4c(a,Rse,wme,15);p4c(a,Rse,yme,meb(0));p4c(a,Rse,_le,tme)} +function hde(){hde=ccb;var a,b,c,d,e,f;fde=KC(SD,wte,25,255,15,1);gde=KC(TD,$ie,25,16,15,1);for(b=0;b<255;b++){fde[b]=-1}for(c=57;c>=48;c--){fde[c]=c-48<<24>>24}for(d=70;d>=65;d--){fde[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){fde[e]=e-97+10<<24>>24}for(f=0;f<10;f++)gde[f]=48+f&aje;for(a=10;a<=15;a++)gde[a]=65+a-10&aje} +function BVc(a,b,c){var d,e,f,g,h,i,j,k;h=b.i-a.g/2;i=c.i-a.g/2;j=b.j-a.g/2;k=c.j-a.g/2;f=b.g+a.g/2;g=c.g+a.g/2;d=b.f+a.g/2;e=c.f+a.g/2;if(h<i+g&&i<h&&j<k+e&&k<j){return true}else if(i<h+f&&h<i&&k<j+d&&j<k){return true}else if(h<i+g&&i<h&&j<k&&k<j+d){return true}else if(i<h+f&&h<i&&j<k+e&&k<j){return true}return false} +function NTb(a){var b,c,d,e,f;e=BD(vNb(a,(Nyc(),Fxc)),21);f=BD(vNb(a,Ixc),21);c=new f7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);b=new g7c(c);if(e.Hc((tdd(),pdd))){d=BD(vNb(a,Hxc),8);if(f.Hc((Idd(),Bdd))){d.a<=0&&(d.a=20);d.b<=0&&(d.b=20)}b.a=$wnd.Math.max(c.a,d.a);b.b=$wnd.Math.max(c.b,d.b)}Ccb(DD(vNb(a,Gxc)))||OTb(a,c,b)} +function NJc(a,b){var c,d,e,f;for(f=V_b(b,(Ucd(),Rcd)).Kc();f.Ob();){d=BD(f.Pb(),11);c=BD(vNb(d,(wtc(),gtc)),10);!!c&&AFb(DFb(CFb(EFb(BFb(new FFb,0),0.1),a.i[b.p].d),a.i[c.p].a))}for(e=V_b(b,Acd).Kc();e.Ob();){d=BD(e.Pb(),11);c=BD(vNb(d,(wtc(),gtc)),10);!!c&&AFb(DFb(CFb(EFb(BFb(new FFb,0),0.1),a.i[c.p].d),a.i[b.p].a))}} +function QKd(a){var b,c,d,e,f,g;if(!a.c){g=new wNd;b=KKd;f=b.a.zc(a,b);if(f==null){for(d=new Fyd(VKd(a));d.e!=d.i.gc();){c=BD(Dyd(d),87);e=KQd(c);JD(e,88)&&ytd(g,QKd(BD(e,26)));wtd(g,c)}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}tNd(g);vud(g);a.c=new nNd((BD(qud(ZKd((NFd(),MFd).o),15),18),g.i),g.g);$Kd(a).b&=-33}return a.c} +function eee(a){var b;if(a.c!=10)throw vbb(new mde(tvd((h0d(),uue))));b=a.a;switch(b){case 110:b=10;break;case 114:b=13;break;case 116:b=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 vbb(new mde(tvd((h0d(),Yue))));}return b} +function qD(a){var b,c,d,e,f;if(a.l==0&&a.m==0&&a.h==0){return '0'}if(a.h==Gje&&a.m==0&&a.l==0){return '-9223372036854775808'}if(a.h>>19!=0){return '-'+qD(hD(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=RC(Jje);c=UC(c,e,true);b=''+pD(QC);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;f--){b='0'+b}}d=b+d}return d} +function xrb(){if(!Object.create||!Object.getOwnPropertyNames){return false}var a='__proto__';var b=Object.create(null);if(b[a]!==undefined){return false}var c=Object.getOwnPropertyNames(b);if(c.length!=0){return false}b[a]=42;if(b[a]!==42){return false}if(Object.getOwnPropertyNames(b).length==0){return false}return true} +function Pgc(a){var b,c,d,e,f,g,h;b=false;c=0;for(e=new olb(a.d.b);e.a<e.c.c.length;){d=BD(mlb(e),29);d.p=c++;for(g=new olb(d.a);g.a<g.c.c.length;){f=BD(mlb(g),10);!b&&!Qq(O_b(f))&&(b=true)}}h=qqb((ead(),cad),OC(GC(t1,1),Kie,103,0,[aad,bad]));if(!b){rqb(h,dad);rqb(h,_9c)}a.a=new mDb(h);Uhb(a.f);Uhb(a.b);Uhb(a.e);Uhb(a.g)} +function _Xb(a,b,c){var d,e,f,g,h,i,j,k,l;d=c.c;e=c.d;h=A0b(b.c);i=A0b(b.d);if(d==b.c){h=aYb(a,h,e);i=bYb(b.d)}else{h=bYb(b.c);i=aYb(a,i,e)}j=new t7c(b.a);Gsb(j,h,j.a,j.a.a);Gsb(j,i,j.c.b,j.c);g=b.c==d;l=new BYb;for(f=0;f<j.b-1;++f){k=new vgd(BD(Ut(j,f),8),BD(Ut(j,f+1),8));g&&f==0||!g&&f==j.b-2?(l.b=k):Ekb(l.a,k)}return l} +function O$b(a,b){var c,d,e,f;f=a.j.g-b.j.g;if(f!=0){return f}c=BD(vNb(a,(Nyc(),Wxc)),19);d=BD(vNb(b,Wxc),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}switch(a.j.g){case 1:return Kdb(a.n.a,b.n.a);case 2:return Kdb(a.n.b,b.n.b);case 3:return Kdb(b.n.a,a.n.a);case 4:return Kdb(b.n.b,a.n.b);default:throw vbb(new Zdb(ine));}} +function G6b(a,b,c,d){var e,f,g,h,i;if(sr((D6b(),new Sr(ur(O_b(b).a.Kc(),new Sq))))>=a.a){return -1}if(!F6b(b,c)){return -1}if(Qq(BD(d.Kb(b),20))){return 1}e=0;for(g=BD(d.Kb(b),20).Kc();g.Ob();){f=BD(g.Pb(),17);i=f.c.i==b?f.d.i:f.c.i;h=G6b(a,i,c,d);if(h==-1){return -1}e=$wnd.Math.max(e,h);if(e>a.c-1){return -1}}return e+1} +function Btd(a,b){var c,d,e,f,g,h;if(PD(b)===PD(a)){return true}if(!JD(b,15)){return false}d=BD(b,15);h=a.gc();if(d.gc()!=h){return false}g=d.Kc();if(a.ni()){for(c=0;c<h;++c){e=a.ki(c);f=g.Pb();if(e==null?f!=null:!pb(e,f)){return false}}}else{for(c=0;c<h;++c){e=a.ki(c);f=g.Pb();if(PD(e)!==PD(f)){return false}}}return true} +function rAd(a,b){var c,d,e,f,g,h;if(a.f>0){a.qj();if(b!=null){for(f=0;f<a.d.length;++f){c=a.d[f];if(c){d=BD(c.g,367);h=c.i;for(g=0;g<h;++g){e=d[g];if(pb(b,e.dd())){return true}}}}}else{for(f=0;f<a.d.length;++f){c=a.d[f];if(c){d=BD(c.g,367);h=c.i;for(g=0;g<h;++g){e=d[g];if(PD(b)===PD(e.dd())){return true}}}}}}return false} +function e6b(a,b,c){var d,e,f,g;Odd(c,'Orthogonally routing hierarchical port edges',1);a.a=0;d=h6b(b);k6b(b,d);j6b(a,b,d);f6b(b);e=BD(vNb(b,(Nyc(),Vxc)),98);f=b.b;d6b((tCb(0,f.c.length),BD(f.c[0],29)),e,b);d6b(BD(Ikb(f,f.c.length-1),29),e,b);g=b.b;b6b((tCb(0,g.c.length),BD(g.c[0],29)));b6b(BD(Ikb(g,g.c.length-1),29));Qdd(c)} +function jnd(a){switch(a){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:{return a-48<<24>>24}case 97:case 98:case 99:case 100:case 101:case 102:{return a-97+10<<24>>24}case 65:case 66:case 67:case 68:case 69:case 70:{return a-65+10<<24>>24}default:{throw vbb(new Oeb('Invalid hexadecimal'))}}} +function AUc(a,b,c){var d,e,f,g;Odd(c,'Processor order nodes',2);a.a=Edb(ED(vNb(b,(JTc(),HTc))));e=new Psb;for(g=Jsb(b.b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);Ccb(DD(vNb(f,(mTc(),jTc))))&&(Gsb(e,f,e.c.b,e.c),true)}d=(sCb(e.b!=0),BD(e.a.a.c,86));yUc(a,d);!c.b&&Rdd(c,1);BUc(a,d,0-Edb(ED(vNb(d,(mTc(),bTc))))/2,0);!c.b&&Rdd(c,1);Qdd(c)} +function rFb(){rFb=ccb;qFb=new sFb('SPIRAL',0);lFb=new sFb('LINE_BY_LINE',1);mFb=new sFb('MANHATTAN',2);kFb=new sFb('JITTER',3);oFb=new sFb('QUADRANTS_LINE_BY_LINE',4);pFb=new sFb('QUADRANTS_MANHATTAN',5);nFb=new sFb('QUADRANTS_JITTER',6);jFb=new sFb('COMBINE_LINE_BY_LINE_MANHATTAN',7);iFb=new sFb('COMBINE_JITTER_MANHATTAN',8)} +function roc(a,b,c,d){var e,f,g,h,i,j;i=woc(a,c);j=woc(b,c);e=false;while(!!i&&!!j){if(d||uoc(i,j,c)){g=woc(i,c);h=woc(j,c);zoc(b);zoc(a);f=i.c;sbc(i,false);sbc(j,false);if(c){Z_b(b,j.p,f);b.p=j.p;Z_b(a,i.p+1,f);a.p=i.p}else{Z_b(a,i.p,f);a.p=i.p;Z_b(b,j.p+1,f);b.p=j.p}$_b(i,null);$_b(j,null);i=g;j=h;e=true}else{break}}return e} +function VDc(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new olb(d.j);h.a<h.c.c.length;){g=BD(mlb(h),11);PD(vNb(g,(wtc(),$sc)))===PD(c)&&(g.g.c.length==0?g.e.c.length==0||(e=true):(f=true))}i=0;e&&e^f?(i=c.j==(Ucd(),Acd)?-a.e[d.c.p][d.p]:b-a.e[d.c.p][d.p]):f&&e^f?(i=a.e[d.c.p][d.p]+1):e&&f&&(i=c.j==(Ucd(),Acd)?0:b/2);return i} +function NEd(a,b,c,d,e,f,g,h){var i,j,k;i=0;b!=null&&(i^=LCb(b.toLowerCase()));c!=null&&(i^=LCb(c));d!=null&&(i^=LCb(d));g!=null&&(i^=LCb(g));h!=null&&(i^=LCb(h));for(j=0,k=f.length;j<k;j++){i^=LCb(f[j])}a?(i|=256):(i&=-257);e?(i|=16):(i&=-17);this.f=i;this.i=b==null?null:(uCb(b),b);this.a=c;this.d=d;this.j=f;this.g=g;this.e=h} +function X_b(a,b,c){var d,e;e=null;switch(b.g){case 1:e=(z0b(),u0b);break;case 2:e=(z0b(),w0b);}d=null;switch(c.g){case 1:d=(z0b(),v0b);break;case 2:d=(z0b(),t0b);break;case 3:d=(z0b(),x0b);break;case 4:d=(z0b(),y0b);}return !!e&&!!d?Nq(a.j,new Yb(new amb(OC(GC(_D,1),Uhe,169,0,[BD(Qb(e),169),BD(Qb(d),169)])))):(mmb(),mmb(),jmb)} +function t5b(a){var b,c,d;b=BD(vNb(a,(Nyc(),Hxc)),8);yNb(a,Hxc,new f7c(b.b,b.a));switch(BD(vNb(a,mwc),248).g){case 1:yNb(a,mwc,(F7c(),E7c));break;case 2:yNb(a,mwc,(F7c(),A7c));break;case 3:yNb(a,mwc,(F7c(),C7c));break;case 4:yNb(a,mwc,(F7c(),D7c));}if((!a.q?(mmb(),mmb(),kmb):a.q)._b(ayc)){c=BD(vNb(a,ayc),8);d=c.a;c.a=c.b;c.b=d}} +function jjc(a,b,c,d,e,f){this.b=c;this.d=e;if(a>=b.length){throw vbb(new qcb('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new dIc(d);THc(this.e,this.c,(Ucd(),Tcd));this.i=new dIc(d);THc(this.i,this.c,zcd);this.f=new ejc(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].k==(j0b(),e0b);this.a&&hjc(this,a,b.length)} +function hKb(a,b){var c,d,e,f,g,h;f=!a.B.Hc((Idd(),zdd));g=a.B.Hc(Cdd);a.a=new FHb(g,f,a.c);!!a.n&&u_b(a.a.n,a.n);lIb(a.g,(gHb(),eHb),a.a);if(!b){d=new mIb(1,f,a.c);d.n.a=a.k;Npb(a.p,(Ucd(),Acd),d);e=new mIb(1,f,a.c);e.n.d=a.k;Npb(a.p,Rcd,e);h=new mIb(0,f,a.c);h.n.c=a.k;Npb(a.p,Tcd,h);c=new mIb(0,f,a.c);c.n.b=a.k;Npb(a.p,zcd,c)}} +function Vgc(a){var b,c,d;b=BD(vNb(a.d,(Nyc(),Swc)),218);switch(b.g){case 2:c=Ngc(a);break;case 3:c=(d=new Rkb,MAb(JAb(NAb(LAb(LAb(new YAb(null,new Kub(a.d.b,16)),new Shc),new Uhc),new Whc),new ehc),new Yhc(d)),d);break;default:throw vbb(new Zdb('Compaction not supported for '+b+' edges.'));}Ugc(a,c);reb(new Pib(a.g),new Ehc(a))} +function a2c(a,b){var c;c=new zNb;!!b&&tNb(c,BD(Ohb(a.a,C2),94));JD(b,470)&&tNb(c,BD(Ohb(a.a,G2),94));if(JD(b,354)){tNb(c,BD(Ohb(a.a,D2),94));return c}JD(b,82)&&tNb(c,BD(Ohb(a.a,z2),94));if(JD(b,239)){tNb(c,BD(Ohb(a.a,E2),94));return c}if(JD(b,186)){tNb(c,BD(Ohb(a.a,F2),94));return c}JD(b,352)&&tNb(c,BD(Ohb(a.a,B2),94));return c} +function wSb(){wSb=ccb;oSb=new Osd((Y9c(),D9c),meb(1));uSb=new Osd(T9c,80);tSb=new Osd(M9c,5);bSb=new Osd(r8c,tme);pSb=new Osd(E9c,meb(1));sSb=new Osd(H9c,(Bcb(),true));lSb=new q0b(50);kSb=new Osd(f9c,lSb);dSb=O8c;mSb=t9c;cSb=new Osd(B8c,false);jSb=e9c;iSb=b9c;hSb=Y8c;gSb=W8c;nSb=x9c;fSb=(SRb(),LRb);vSb=QRb;eSb=KRb;qSb=NRb;rSb=PRb} +function ZXb(a){var b,c,d,e,f,g,h,i;i=new jYb;for(h=new olb(a.a);h.a<h.c.c.length;){g=BD(mlb(h),10);if(g.k==(j0b(),e0b)){continue}XXb(i,g,new d7c);for(f=new Sr(ur(U_b(g).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(e.c.i.k==e0b||e.d.i.k==e0b){continue}for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);b=c;hYb(i,new cWb(b.a,b.b))}}}return i} +function A0c(){A0c=ccb;z0c=new Lsd(Qre);y0c=(R0c(),Q0c);x0c=new Nsd(Vre,y0c);w0c=(a1c(),_0c);v0c=new Nsd(Rre,w0c);u0c=(N_c(),J_c);t0c=new Nsd(Sre,u0c);p0c=new Nsd(Tre,null);s0c=(C_c(),A_c);r0c=new Nsd(Ure,s0c);l0c=(i_c(),h_c);k0c=new Nsd(Wre,l0c);m0c=new Nsd(Xre,(Bcb(),false));n0c=new Nsd(Yre,meb(64));o0c=new Nsd(Zre,true);q0c=B_c} +function Toc(a){var b,c,d,e,f,g;if(a.a!=null){return}a.a=KC(sbb,dle,25,a.c.b.c.length,16,1);a.a[0]=false;if(wNb(a.c,(Nyc(),Lyc))){d=BD(vNb(a.c,Lyc),15);for(c=d.Kc();c.Ob();){b=BD(c.Pb(),19).a;b>0&&b<a.a.length&&(a.a[b]=false)}}else{g=new olb(a.c.b);g.a<g.c.c.length&&mlb(g);e=1;while(g.a<g.c.c.length){f=BD(mlb(g),29);a.a[e++]=Woc(f)}}} +function TMd(a,b){var c,d,e,f;e=a.b;switch(b){case 1:{a.b|=1;a.b|=4;a.b|=8;break}case 2:{a.b|=2;a.b|=4;a.b|=8;break}case 4:{a.b|=1;a.b|=2;a.b|=4;a.b|=8;break}case 3:{a.b|=16;a.b|=8;break}case 0:{a.b|=32;a.b|=16;a.b|=8;a.b|=1;a.b|=2;a.b|=4;break}}if(a.b!=e&&!!a.c){for(d=new Fyd(a.c);d.e!=d.i.gc();){f=BD(Dyd(d),473);c=$Kd(f);XMd(c,b)}}} +function cGc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;e=false;for(g=b,h=0,i=g.length;h<i;++h){f=g[h];Ccb((Bcb(),f.e?true:false))&&!BD(Ikb(a.b,f.e.p),214).s&&(e=e|(j=f.e,k=BD(Ikb(a.b,j.p),214),l=k.e,m=SFc(c,l.length),n=l[m][0],n.k==(j0b(),e0b)?(l[m]=aGc(f,l[m],c?(Ucd(),Tcd):(Ucd(),zcd))):k.c.Tf(l,c),o=dGc(a,k,c,d),bGc(k.e,k.o,c),o))}return e} +function p2c(a,b){var c,d,e,f,g;f=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(e=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);if(PD(hkd(d,(Y9c(),J8c)))!==PD((hbd(),gbd))){g=BD(hkd(b,F9c),149);c=BD(hkd(d,F9c),149);(g==c||!!g&&C3c(g,c))&&(!d.a&&(d.a=new cUd(E2,d,10,11)),d.a).i!=0&&(f+=p2c(a,d))}}return f} +function nlc(a){var b,c,d,e,f,g,h;d=0;h=0;for(g=new olb(a.d);g.a<g.c.c.length;){f=BD(mlb(g),101);e=BD(GAb(JAb(new YAb(null,new Kub(f.j,16)),new Ylc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);c=null;if(d<=h){c=(Ucd(),Acd);d+=e.gc()}else if(h<d){c=(Ucd(),Rcd);h+=e.gc()}b=c;MAb(NAb(e.Oc(),new Mlc),new Olc(b))}} +function mkc(a){var b,c,d,e,f,g,h,i;a.b=new _i(new amb((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]))),new amb((Fkc(),OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc]))));for(g=OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]),h=0,i=g.length;h<i;++h){f=g[h];for(c=OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc]),d=0,e=c.length;d<e;++d){b=c[d];Ui(a.b,f,b,new Rkb)}}} +function KJb(a,b){var c,d,e,f,g,h,i,j,k,l;g=BD(BD(Qc(a.r,b),21),84);h=a.u.Hc((rcd(),pcd));c=a.u.Hc(mcd);d=a.u.Hc(lcd);j=a.u.Hc(qcd);l=a.B.Hc((Idd(),Hdd));k=!c&&!d&&(j||g.gc()==2);HJb(a,b);e=null;i=null;if(h){f=g.Kc();e=BD(f.Pb(),111);i=e;while(f.Ob()){i=BD(f.Pb(),111)}e.d.b=0;i.d.c=0;k&&!e.a&&(e.d.c=0)}if(l){LJb(g);if(h){e.d.b=0;i.d.c=0}}} +function SKb(a,b){var c,d,e,f,g,h,i,j,k,l;g=BD(BD(Qc(a.r,b),21),84);h=a.u.Hc((rcd(),pcd));c=a.u.Hc(mcd);d=a.u.Hc(lcd);i=a.u.Hc(qcd);l=a.B.Hc((Idd(),Hdd));j=!c&&!d&&(i||g.gc()==2);QKb(a,b);k=null;e=null;if(h){f=g.Kc();k=BD(f.Pb(),111);e=k;while(f.Ob()){e=BD(f.Pb(),111)}k.d.d=0;e.d.a=0;j&&!k.a&&(k.d.a=0)}if(l){TKb(g);if(h){k.d.d=0;e.d.a=0}}} +function oJc(a,b,c){var d,e,f,g,h,i,j,k;e=b.k;if(b.p>=0){return false}else{b.p=c.b;Ekb(c.e,b)}if(e==(j0b(),g0b)||e==i0b){for(g=new olb(b.j);g.a<g.c.c.length;){f=BD(mlb(g),11);for(k=(d=new olb((new R0b(f)).a.g),new U0b(d));llb(k.a);){j=BD(mlb(k.a),17).d;h=j.i;i=h.k;if(b.c!=h.c){if(i==g0b||i==i0b){if(oJc(a,h,c)){return true}}}}}}return true} +function gJd(a){var b;if((a.Db&64)!=0)return EId(a);b=new Jfb(EId(a));b.a+=' (changeable: ';Ffb(b,(a.Bb&zte)!=0);b.a+=', volatile: ';Ffb(b,(a.Bb&Dve)!=0);b.a+=', transient: ';Ffb(b,(a.Bb&Rje)!=0);b.a+=', defaultValueLiteral: ';Efb(b,a.j);b.a+=', unsettable: ';Ffb(b,(a.Bb&Cve)!=0);b.a+=', derived: ';Ffb(b,(a.Bb&oie)!=0);b.a+=')';return b.a} +function AOb(a){var b,c,d,e,f,g,h,i,j,k,l,m;e=eNb(a.d);g=BD(vNb(a.b,(CPb(),wPb)),116);h=g.b+g.c;i=g.d+g.a;k=e.d.a*a.e+h;j=e.b.a*a.f+i;$Ob(a.b,new f7c(k,j));for(m=new olb(a.g);m.a<m.c.c.length;){l=BD(mlb(m),562);b=l.g-e.a.a;c=l.i-e.c.a;d=P6c(Z6c(new f7c(b,c),l.a,l.b),Y6c(b7c(R6c(HOb(l.e)),l.d*l.a,l.c*l.b),-0.5));f=IOb(l.e);KOb(l.e,c7c(d,f))}} +function tmc(a,b,c,d){var e,f,g,h,i;i=KC(UD,nie,104,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,0,2);for(f=OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]),g=0,h=f.length;g<h;++g){e=f[g];i[e.g]=KC(UD,Vje,25,a.c[e.g],15,1)}vmc(i,a,Acd);vmc(i,a,Rcd);smc(i,a,Acd,b,c,d);smc(i,a,zcd,b,c,d);smc(i,a,Rcd,b,c,d);smc(i,a,Tcd,b,c,d);return i} +function UGc(a,b,c){if(Mhb(a.a,b)){if(Rqb(BD(Ohb(a.a,b),53),c)){return 1}}else{Rhb(a.a,b,new Tqb)}if(Mhb(a.a,c)){if(Rqb(BD(Ohb(a.a,c),53),b)){return -1}}else{Rhb(a.a,c,new Tqb)}if(Mhb(a.b,b)){if(Rqb(BD(Ohb(a.b,b),53),c)){return -1}}else{Rhb(a.b,b,new Tqb)}if(Mhb(a.b,c)){if(Rqb(BD(Ohb(a.b,c),53),b)){return 1}}else{Rhb(a.b,c,new Tqb)}return 0} +function x2d(a,b,c,d){var e,f,g,h,i,j;if(c==null){e=BD(a.g,119);for(h=0;h<a.i;++h){g=e[h];if(g.ak()==b){return Txd(a,g,d)}}}f=(Q6d(),BD(b,66).Oj()?BD(c,72):R6d(b,c));if(oid(a.e)){j=!R2d(a,b);d=Sxd(a,f,d);i=b.$j()?H2d(a,3,b,null,c,M2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0),j):H2d(a,1,b,b.zj(),c,-1,j);d?d.Ei(i):(d=i)}else{d=Sxd(a,f,d)}return d} +function CJb(a){var b,c,d,e,f,g;if(a.q==(dcd(),_bd)||a.q==$bd){return}e=a.f.n.d+_Gb(BD(Mpb(a.b,(Ucd(),Acd)),124))+a.c;b=a.f.n.a+_Gb(BD(Mpb(a.b,Rcd),124))+a.c;d=BD(Mpb(a.b,zcd),124);g=BD(Mpb(a.b,Tcd),124);f=$wnd.Math.max(0,d.n.d-e);f=$wnd.Math.max(f,g.n.d-e);c=$wnd.Math.max(0,d.n.a-b);c=$wnd.Math.max(c,g.n.a-b);d.n.d=f;g.n.d=f;d.n.a=c;g.n.a=c} +function rdc(a,b){var c,d,e,f,g,h,i,j,k,l,m;Odd(b,'Restoring reversed edges',1);for(i=new olb(a.b);i.a<i.c.c.length;){h=BD(mlb(i),29);for(k=new olb(h.a);k.a<k.c.c.length;){j=BD(mlb(k),10);for(m=new olb(j.j);m.a<m.c.c.length;){l=BD(mlb(m),11);g=k_b(l.g);for(d=g,e=0,f=d.length;e<f;++e){c=d[e];Ccb(DD(vNb(c,(wtc(),ltc))))&&PZb(c,false)}}}}Qdd(b)} +function m4c(){this.b=new $rb;this.d=new $rb;this.e=new $rb;this.c=new $rb;this.a=new Lqb;this.f=new Lqb;hvd(m1,new x4c,new z4c);hvd(l1,new V4c,new X4c);hvd(i1,new Z4c,new _4c);hvd(j1,new b5c,new d5c);hvd(i2,new f5c,new h5c);hvd(DJ,new B4c,new D4c);hvd(xK,new F4c,new H4c);hvd(jK,new J4c,new L4c);hvd(uK,new N4c,new P4c);hvd(kL,new R4c,new T4c)} +function R5d(a){var b,c,d,e,f,g;f=0;b=wId(a);!!b.Bj()&&(f|=4);(a.Bb&Cve)!=0&&(f|=2);if(JD(a,99)){c=BD(a,18);e=zUd(c);(c.Bb&ote)!=0&&(f|=32);if(e){aLd(WId(e));f|=8;g=e.t;(g>1||g==-1)&&(f|=16);(e.Bb&ote)!=0&&(f|=64)}(c.Bb&Tje)!=0&&(f|=Dve);f|=zte}else{if(JD(b,457)){f|=512}else{d=b.Bj();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f} +function hc(a,b){var c,d,e,f,g;a=a==null?Xhe:(uCb(a),a);for(e=0;e<b.length;e++){b[e]=ic(b[e])}c=new Vfb;g=0;d=0;while(d<b.length){f=a.indexOf('%s',g);if(f==-1){break}c.a+=''+qfb(a==null?Xhe:(uCb(a),a),g,f);Pfb(c,b[d++]);g=f+2}Ofb(c,a,g,a.length);if(d<b.length){c.a+=' [';Pfb(c,b[d++]);while(d<b.length){c.a+=She;Pfb(c,b[d++])}c.a+=']'}return c.a} +function m3b(a){var b,c,d,e,f;f=new Skb(a.a.c.length);for(e=new olb(a.a);e.a<e.c.c.length;){d=BD(mlb(e),10);c=BD(vNb(d,(Nyc(),mxc)),163);b=null;switch(c.g){case 1:case 2:b=(Gqc(),Fqc);break;case 3:case 4:b=(Gqc(),Dqc);}if(b){yNb(d,(wtc(),Bsc),(Gqc(),Fqc));b==Dqc?o3b(d,c,(KAc(),HAc)):b==Fqc&&o3b(d,c,(KAc(),IAc))}else{f.c[f.c.length]=d}}return f} +function MHc(a,b){var c,d,e,f,g,h,i;c=0;for(i=new olb(b);i.a<i.c.c.length;){h=BD(mlb(i),11);AHc(a.b,a.d[h.p]);g=0;for(e=new b1b(h.b);llb(e.a)||llb(e.b);){d=BD(llb(e.a)?mlb(e.a):mlb(e.b),17);if(WHc(d)){f=aIc(a,h==d.c?d.d:d.c);if(f>a.d[h.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}else{++g}}c+=a.b.d*g;while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function Y6d(a,b){var c;if(a.f==W6d){c=$1d(q1d((O6d(),M6d),b));return a.e?c==4&&b!=(m8d(),k8d)&&b!=(m8d(),h8d)&&b!=(m8d(),i8d)&&b!=(m8d(),j8d):c==2}if(!!a.d&&(a.d.Hc(b)||a.d.Hc(_1d(q1d((O6d(),M6d),b)))||a.d.Hc(e1d((O6d(),M6d),a.b,b)))){return true}if(a.f){if(x1d((O6d(),a.f),b2d(q1d(M6d,b)))){c=$1d(q1d(M6d,b));return a.e?c==4:c==2}}return false} +function iVc(a,b,c,d){var e,f,g,h,i,j,k,l;g=BD(hkd(c,(Y9c(),C9c)),8);i=g.a;k=g.b+a;e=$wnd.Math.atan2(k,i);e<0&&(e+=dre);e+=b;e>dre&&(e-=dre);h=BD(hkd(d,C9c),8);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=dre);f+=b;f>dre&&(f-=dre);return Iy(),My(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:e<f?-1:e>f?1:Ny(isNaN(e),isNaN(f))} +function YDb(a){var b,c,d,e,f,g,h;h=new Lqb;for(d=new olb(a.a.b);d.a<d.c.c.length;){b=BD(mlb(d),57);Rhb(h,b,new Rkb)}for(e=new olb(a.a.b);e.a<e.c.c.length;){b=BD(mlb(e),57);b.i=Qje;for(g=b.c.Kc();g.Ob();){f=BD(g.Pb(),57);BD(Wd(irb(h.f,f)),15).Fc(b)}}for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),57);b.c.$b();b.c=BD(Wd(irb(h.f,b)),15)}QDb(a)} +function yVb(a){var b,c,d,e,f,g,h;h=new Lqb;for(d=new olb(a.a.b);d.a<d.c.c.length;){b=BD(mlb(d),81);Rhb(h,b,new Rkb)}for(e=new olb(a.a.b);e.a<e.c.c.length;){b=BD(mlb(e),81);b.o=Qje;for(g=b.f.Kc();g.Ob();){f=BD(g.Pb(),81);BD(Wd(irb(h.f,f)),15).Fc(b)}}for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),81);b.f.$b();b.f=BD(Wd(irb(h.f,b)),15)}rVb(a)} +function dNb(a,b,c,d){var e,f;cNb(a,b,c,d);qNb(b,a.j-b.j+c);rNb(b,a.k-b.k+d);for(f=new olb(b.f);f.a<f.c.c.length;){e=BD(mlb(f),324);switch(e.a.g){case 0:nNb(a,b.g+e.b.a,0,b.g+e.c.a,b.i-1);break;case 1:nNb(a,b.g+b.o,b.i+e.b.a,a.o-1,b.i+e.c.a);break;case 2:nNb(a,b.g+e.b.a,b.i+b.p,b.g+e.c.a,a.p-1);break;default:nNb(a,0,b.i+e.b.a,b.g-1,b.i+e.c.a);}}} +function aNb(b,c,d,e,f){var g,h,i;try{if(c>=b.o){throw vbb(new rcb)}i=c>>5;h=c&31;g=Nbb(1,Tbb(Nbb(h,1)));f?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)));g=Nbb(g,1);e?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)))}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}} +function BUc(a,b,c,d){var e,f,g;if(b){f=Edb(ED(vNb(b,(mTc(),fTc))))+d;g=c+Edb(ED(vNb(b,bTc)))/2;yNb(b,kTc,meb(Tbb(Cbb($wnd.Math.round(f)))));yNb(b,lTc,meb(Tbb(Cbb($wnd.Math.round(g)))));b.d.b==0||BUc(a,BD(pr((e=Jsb((new ZRc(b)).a.d,0),new aSc(e))),86),c+Edb(ED(vNb(b,bTc)))+a.a,d+Edb(ED(vNb(b,cTc))));vNb(b,iTc)!=null&&BUc(a,BD(vNb(b,iTc),86),c,d)}} +function N9b(a,b){var c,d,e,f,g,h,i,j,k,l,m;i=Q_b(b.a);e=Edb(ED(vNb(i,(Nyc(),pyc))))*2;k=Edb(ED(vNb(i,wyc)));j=$wnd.Math.max(e,k);f=KC(UD,Vje,25,b.f-b.c+1,15,1);d=-j;c=0;for(h=b.b.Kc();h.Ob();){g=BD(h.Pb(),10);d+=a.a[g.c.p]+j;f[c++]=d}d+=a.a[b.a.c.p]+j;f[c++]=d;for(m=new olb(b.e);m.a<m.c.c.length;){l=BD(mlb(m),10);d+=a.a[l.c.p]+j;f[c++]=d}return f} +function GHc(a,b,c,d){var e,f,g,h,i,j,k,l,m;m=new Hxb(new pIc(a));for(h=OC(GC(OQ,1),kne,10,0,[b,c]),i=0,j=h.length;i<j;++i){g=h[i];for(l=CHc(g,d).Kc();l.Ob();){k=BD(l.Pb(),11);for(f=new b1b(k.b);llb(f.a)||llb(f.b);){e=BD(llb(f.a)?mlb(f.a):mlb(f.b),17);if(!OZb(e)){Iwb(m.a,k,(Bcb(),zcb))==null;WHc(e)&&Axb(m,k==e.c?e.d:e.c)}}}}return Qb(m),new Tkb(m)} +function zhd(a,b){var c,d,e,f;f=BD(hkd(a,(Y9c(),A9c)),61).g-BD(hkd(b,A9c),61).g;if(f!=0){return f}c=BD(hkd(a,v9c),19);d=BD(hkd(b,v9c),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}switch(BD(hkd(a,A9c),61).g){case 1:return Kdb(a.i,b.i);case 2:return Kdb(a.j,b.j);case 3:return Kdb(b.i,a.i);case 4:return Kdb(b.j,a.j);default:throw vbb(new Zdb(ine));}} +function _od(a){var b,c,d;if((a.Db&64)!=0)return fld(a);b=new Wfb(ete);c=a.k;if(!c){!a.n&&(a.n=new cUd(D2,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function opd(a){var b,c,d;if((a.Db&64)!=0)return fld(a);b=new Wfb(fte);c=a.k;if(!c){!a.n&&(a.n=new cUd(D2,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function h4c(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=BD(Phb(a.a,b),149);if(!e){for(d=(h=(new $ib(a.b)).a.vc().Kc(),new djb(h));d.a.Ob();){c=(f=BD(d.a.Pb(),42),BD(f.dd(),149));g=c.c;i=b.length;if(dfb(g.substr(g.length-i,i),b)&&(b.length==g.length||bfb(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&Shb(a.a,b,e)}return e} +function QLb(a,b){var c,d,e,f;c=new VLb;d=BD(GAb(NAb(new YAb(null,new Kub(a.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);e=d.gc();d=BD(GAb(NAb(new YAb(null,new Kub(b.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[Eyb,Dyb]))),21);f=d.gc();if(e<f){return -1}if(e==f){return 0}return 1} +function r5b(a){var b,c,d;if(!wNb(a,(Nyc(),xxc))){return}d=BD(vNb(a,xxc),21);if(d.dc()){return}c=(b=BD(gdb(B1),9),new xqb(b,BD(_Bb(b,b.length),9),0));d.Hc((Hbd(),Cbd))?rqb(c,Cbd):rqb(c,Dbd);d.Hc(Abd)||rqb(c,Abd);d.Hc(zbd)?rqb(c,Gbd):d.Hc(ybd)?rqb(c,Fbd):d.Hc(Bbd)&&rqb(c,Ebd);d.Hc(Gbd)?rqb(c,zbd):d.Hc(Fbd)?rqb(c,ybd):d.Hc(Ebd)&&rqb(c,Bbd);yNb(a,xxc,c)} +function kHc(a){var b,c,d,e,f,g,h;e=BD(vNb(a,(wtc(),Psc)),10);d=a.j;c=(tCb(0,d.c.length),BD(d.c[0],11));for(g=new olb(e.j);g.a<g.c.c.length;){f=BD(mlb(g),11);if(PD(f)===PD(vNb(c,$sc))){if(f.j==(Ucd(),Acd)&&a.p>e.p){G0b(f,Rcd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=h-b}}else if(f.j==Rcd&&e.p>a.p){G0b(f,Acd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=-(h-b)}}break}}return e} +function NOc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;f=c;if(c<d){m=(n=new uOc(a.p),o=new uOc(a.p),ye(n.e,a.e),n.q=a.q,n.r=o,lOc(n),ye(o.j,a.j),o.r=n,lOc(o),new vgd(n,o));l=BD(m.a,112);k=BD(m.b,112);e=(tCb(f,b.c.length),BD(b.c[f],329));g=UOc(a,l,k,e);for(j=c+1;j<=d;j++){h=(tCb(j,b.c.length),BD(b.c[j],329));i=UOc(a,l,k,h);if(SOc(h,i,e,g)){e=h;g=i}}}return f} +function wQb(a,b,c,d,e){var f,g,h,i,j,k,l;if(!(JD(b,239)||JD(b,354)||JD(b,186))){throw vbb(new Wdb('Method only works for ElkNode-, ElkLabel and ElkPort-objects.'))}g=a.a/2;i=b.i+d-g;k=b.j+e-g;j=i+b.g+a.a;l=k+b.f+a.a;f=new s7c;Dsb(f,new f7c(i,k));Dsb(f,new f7c(i,l));Dsb(f,new f7c(j,l));Dsb(f,new f7c(j,k));h=new XOb(f);tNb(h,b);c&&Rhb(a.b,b,h);return h} +function uXb(a,b,c){var d,e,f,g,h,i,j,k,l,m;f=new f7c(b,c);for(k=new olb(a.a);k.a<k.c.c.length;){j=BD(mlb(k),10);P6c(j.n,f);for(m=new olb(j.j);m.a<m.c.c.length;){l=BD(mlb(m),11);for(e=new olb(l.g);e.a<e.c.c.length;){d=BD(mlb(e),17);q7c(d.a,f);g=BD(vNb(d,(Nyc(),jxc)),74);!!g&&q7c(g,f);for(i=new olb(d.b);i.a<i.c.c.length;){h=BD(mlb(i),70);P6c(h.n,f)}}}}} +function g_b(a,b,c){var d,e,f,g,h,i,j,k,l,m;f=new f7c(b,c);for(k=new olb(a.a);k.a<k.c.c.length;){j=BD(mlb(k),10);P6c(j.n,f);for(m=new olb(j.j);m.a<m.c.c.length;){l=BD(mlb(m),11);for(e=new olb(l.g);e.a<e.c.c.length;){d=BD(mlb(e),17);q7c(d.a,f);g=BD(vNb(d,(Nyc(),jxc)),74);!!g&&q7c(g,f);for(i=new olb(d.b);i.a<i.c.c.length;){h=BD(mlb(i),70);P6c(h.n,f)}}}}} +function N1b(a){if((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b).i==0){throw vbb(new z2c('Edges must have a source.'))}else if((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c).i==0){throw vbb(new z2c('Edges must have a target.'))}else{!a.b&&(a.b=new y5d(z2,a,4,7));if(!(a.b.i<=1&&(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c.i<=1))){throw vbb(new z2c('Hyperedges are not supported.'))}}} +function OFc(a,b){var c,d,e,f,g,h,i,j,k,l;l=0;f=new jkb;Wjb(f,b);while(f.b!=f.c){i=BD(fkb(f),214);j=0;k=BD(vNb(b.j,(Nyc(),ywc)),339);g=Edb(ED(vNb(b.j,uwc)));h=Edb(ED(vNb(b.j,vwc)));if(k!=(tAc(),rAc)){j+=g*PFc(i.e,k);j+=h*QFc(i.e)}l+=pHc(i.d,i.e)+j;for(e=new olb(i.b);e.a<e.c.c.length;){d=BD(mlb(e),37);c=BD(Ikb(a.b,d.p),214);c.s||(l+=NFc(a,c))}}return l} +function dhb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;n=b.length;i=n;BCb(0,b.length);if(b.charCodeAt(0)==45){l=-1;m=1;--n}else{l=1;m=0}f=(phb(),ohb)[10];e=n/f|0;q=n%f;q!=0&&++e;h=KC(WD,oje,25,e,15,1);c=nhb[8];g=0;o=m+(q==0?f:q);for(p=m;p<i;p=o,o=p+f){d=Icb(b.substr(p,o-p),Rie,Ohe);j=(Dhb(),Hhb(h,h,g,c));j+=xhb(h,g,d);h[g++]=j}k=g;a.e=l;a.d=k;a.a=h;Jgb(a)} +function SGb(a,b,c,d,e,f,g){a.c=d.qf().a;a.d=d.qf().b;if(e){a.c+=e.qf().a;a.d+=e.qf().b}a.b=b.rf().a;a.a=b.rf().b;if(!e){c?(a.c-=g+b.rf().a):(a.c+=d.rf().a+g)}else{switch(e.Hf().g){case 0:case 2:a.c+=e.rf().a+g+f.a+g;break;case 4:a.c-=g+f.a+g+b.rf().a;break;case 1:a.c+=e.rf().a+g;a.d-=g+f.b+g+b.rf().b;break;case 3:a.c+=e.rf().a+g;a.d+=e.rf().b+g+f.b+g;}}} +function gac(a,b){var c,d;this.b=new Rkb;this.e=new Rkb;this.a=a;this.d=b;dac(this);eac(this);this.b.dc()?(this.c=a.c.p):(this.c=BD(this.b.Xb(0),10).c.p);this.e.c.length==0?(this.f=a.c.p):(this.f=BD(Ikb(this.e,this.e.c.length-1),10).c.p);for(d=BD(vNb(a,(wtc(),ktc)),15).Kc();d.Ob();){c=BD(d.Pb(),70);if(wNb(c,(Nyc(),Owc))){this.d=BD(vNb(c,Owc),227);break}}} +function Anc(a,b,c){var d,e,f,g,h,i,j,k;d=BD(Ohb(a.a,b),53);f=BD(Ohb(a.a,c),53);e=BD(Ohb(a.e,b),53);g=BD(Ohb(a.e,c),53);d.a.zc(c,d);g.a.zc(b,g);for(k=f.a.ec().Kc();k.Ob();){j=BD(k.Pb(),10);d.a.zc(j,d);Qqb(BD(Ohb(a.e,j),53),b);ye(BD(Ohb(a.e,j),53),e)}for(i=e.a.ec().Kc();i.Ob();){h=BD(i.Pb(),10);g.a.zc(h,g);Qqb(BD(Ohb(a.a,h),53),c);ye(BD(Ohb(a.a,h),53),f)}} +function WGc(a,b,c){var d,e,f,g,h,i,j,k;d=BD(Ohb(a.a,b),53);f=BD(Ohb(a.a,c),53);e=BD(Ohb(a.b,b),53);g=BD(Ohb(a.b,c),53);d.a.zc(c,d);g.a.zc(b,g);for(k=f.a.ec().Kc();k.Ob();){j=BD(k.Pb(),10);d.a.zc(j,d);Qqb(BD(Ohb(a.b,j),53),b);ye(BD(Ohb(a.b,j),53),e)}for(i=e.a.ec().Kc();i.Ob();){h=BD(i.Pb(),10);g.a.zc(h,g);Qqb(BD(Ohb(a.a,h),53),c);ye(BD(Ohb(a.a,h),53),f)}} +function doc(a,b){var c,d,e;Odd(b,'Breaking Point Insertion',1);d=new Xoc(a);switch(BD(vNb(a,(Nyc(),Gyc)),337).g){case 2:e=new hpc;case 0:e=new Ync;break;default:e=new kpc;}c=e.Vf(a,d);Ccb(DD(vNb(a,Iyc)))&&(c=coc(a,c));if(!e.Wf()&&wNb(a,Myc)){switch(BD(vNb(a,Myc),338).g){case 2:c=tpc(d,c);break;case 1:c=rpc(d,c);}}if(c.dc()){Qdd(b);return}aoc(a,c);Qdd(b)} +function $qd(a,b,c){var d,e,f,g,h,i,j,k,l,m;k=null;m=b;l=Rqd(a,dtd(c),m);Lkd(l,_pd(m,Vte));g=Ypd(m,Lte);d=new mrd(a,l);oqd(d.a,d.b,g);h=Ypd(m,Mte);e=new nrd(a,l);pqd(e.a,e.b,h);if((!l.b&&(l.b=new y5d(z2,l,4,7)),l.b).i==0||(!l.c&&(l.c=new y5d(z2,l,5,8)),l.c).i==0){f=_pd(m,Vte);i=Zte+f;j=i+$te;throw vbb(new cqd(j))}grd(m,l);_qd(a,m,l);k=crd(a,m,l);return k} +function yGb(a,b){var c,d,e,f,g,h,i;e=KC(WD,oje,25,a.e.a.c.length,15,1);for(g=new olb(a.e.a);g.a<g.c.c.length;){f=BD(mlb(g),121);e[f.d]+=f.b.a.c.length}h=Ru(b);while(h.b!=0){f=BD(h.b==0?null:(sCb(h.b!=0),Nsb(h,h.a.a)),121);for(d=vr(new olb(f.g.a));d.Ob();){c=BD(d.Pb(),213);i=c.e;i.e=$wnd.Math.max(i.e,f.e+c.a);--e[i.d];e[i.d]==0&&(Gsb(h,i,h.c.b,h.c),true)}}} +function CGb(a){var b,c,d,e,f,g,h,i,j,k,l;c=Rie;e=Ohe;for(h=new olb(a.e.a);h.a<h.c.c.length;){f=BD(mlb(h),121);e=$wnd.Math.min(e,f.e);c=$wnd.Math.max(c,f.e)}b=KC(WD,oje,25,c-e+1,15,1);for(g=new olb(a.e.a);g.a<g.c.c.length;){f=BD(mlb(g),121);f.e-=e;++b[f.e]}d=0;if(a.k!=null){for(j=a.k,k=0,l=j.length;k<l;++k){i=j[k];b[d++]+=i;if(b.length==d){break}}}return b} +function ixd(a){switch(a.d){case 9:case 8:{return true}case 3:case 5:case 4:case 6:{return false}case 7:{return BD(hxd(a),19).a==a.o}case 1:case 2:{if(a.o==-2){return false}else{switch(a.p){case 0:case 1:case 2:case 6:case 5:case 7:{return Bbb(a.k,a.f)}case 3:case 4:{return a.j==a.e}default:{return a.n==null?a.g==null:pb(a.n,a.g)}}}}default:{return false}}} +function $ad(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Qse),'ELK Fixed'),'Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points.'),new bbd)));p4c(a,Qse,ame,Xad);p4c(a,Qse,uqe,Ksd(Yad));p4c(a,Qse,use,Ksd(Sad));p4c(a,Qse,Fme,Ksd(Tad));p4c(a,Qse,Tme,Ksd(Vad));p4c(a,Qse,bqe,Ksd(Uad))} +function ro(a,b,c){var d,e,f,g,h;d=Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)));h=Tbb(Ibb(Eie,keb(Tbb(Ibb(c==null?0:tb(c),Fie)),15)));f=uo(a,b,d);if(!!f&&h==f.f&&Hb(c,f.i)){return c}g=vo(a,c,h);if(g){throw vbb(new Wdb('value already present: '+c))}e=new $o(b,d,c,h);if(f){mo(a,f);po(a,e,f);f.e=null;f.c=null;return f.i}else{po(a,e,null);to(a);return null}} +function E4b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;k=c.a.c;g=c.a.c+c.a.b;f=BD(Ohb(c.c,b),459);n=f.f;o=f.a;f.b?(i=new f7c(g,n)):(i=new f7c(k,n));f.c?(l=new f7c(k,o)):(l=new f7c(g,o));e=k;c.p||(e+=a.c);e+=c.F+c.v*a.b;j=new f7c(e,n);m=new f7c(e,o);n7c(b.a,OC(GC(m1,1),nie,8,0,[i,j]));h=c.d.a.gc()>1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} +function Nid(a,b,c){var d,e,f,g,h,i;if(!b){return null}else{if(c<=-1){d=XKd(b.Tg(),-1-c);if(JD(d,99)){return BD(d,18)}else{g=BD(b.ah(d),153);for(h=0,i=g.gc();h<i;++h){if(PD(g.jl(h))===PD(a)){e=g.il(h);if(JD(e,99)){f=BD(e,18);if((f.Bb&ote)!=0){return f}}}}throw vbb(new Zdb('The containment feature could not be located'))}}else{return zUd(BD(XKd(a.Tg(),c),18))}}} +function Xee(a){var b,c,d,e,f;d=a.length;b=new Ifb;f=0;while(f<d){c=bfb(a,f++);if(c==9||c==10||c==12||c==13||c==32)continue;if(c==35){while(f<d){c=bfb(a,f++);if(c==13||c==10)break}continue}if(c==92&&f<d){if((e=(BCb(f,a.length),a.charCodeAt(f)))==35||e==9||e==10||e==12||e==13||e==32){Afb(b,e&aje);++f}else{b.a+='\\';Afb(b,e&aje);++f}}else Afb(b,c&aje)}return b.a} +function GVc(a,b){var c,d,e;for(d=new olb(b);d.a<d.c.c.length;){c=BD(mlb(d),33);Rc(a.a,c,c);Rc(a.b,c,c);e=gVc(c);if(e.c.length!=0){!!a.d&&a.d.lg(e);Rc(a.a,c,(tCb(0,e.c.length),BD(e.c[0],33)));Rc(a.b,c,BD(Ikb(e,e.c.length-1),33));while(dVc(e).c.length!=0){e=dVc(e);!!a.d&&a.d.lg(e);Rc(a.a,c,(tCb(0,e.c.length),BD(e.c[0],33)));Rc(a.b,c,BD(Ikb(e,e.c.length-1),33))}}}} +function fnc(a){var b,c,d,e,f,g,h,i,j,k;c=0;for(h=new olb(a.d);h.a<h.c.c.length;){g=BD(mlb(h),101);!!g.i&&(g.i.c=c++)}b=IC(sbb,[nie,dle],[177,25],16,[c,c],2);k=a.d;for(e=0;e<k.c.length;e++){i=(tCb(e,k.c.length),BD(k.c[e],101));if(i.i){for(f=e+1;f<k.c.length;f++){j=(tCb(f,k.c.length),BD(k.c[f],101));if(j.i){d=knc(i,j);b[i.i.c][j.i.c]=d;b[j.i.c][i.i.c]=d}}}}return b} +function ht(a,b,c,d){var e,f,g;g=new qu(b,c);if(!a.a){a.a=a.e=g;Rhb(a.b,b,new pu(g));++a.c}else if(!d){a.e.b=g;g.d=a.e;a.e=g;e=BD(Ohb(a.b,b),283);if(!e){Rhb(a.b,b,e=new pu(g));++a.c}else{++e.a;f=e.c;f.c=g;g.e=f;e.c=g}}else{e=BD(Ohb(a.b,b),283);++e.a;g.d=d.d;g.e=d.e;g.b=d;g.c=d;!d.e?(BD(Ohb(a.b,b),283).b=g):(d.e.c=g);!d.d?(a.a=g):(d.d.b=g);d.d=g;d.e=g}++a.d;return g} +function mfb(a,b){var c,d,e,f,g,h,i,j;c=new RegExp(b,'g');i=KC(ZI,nie,2,0,6,1);d=0;j=a;f=null;while(true){h=c.exec(j);if(h==null||j==''){i[d]=j;break}else{g=h.index;i[d]=j.substr(0,g);j=qfb(j,g+h[0].length,j.length);c.lastIndex=0;if(f==j){i[d]=j.substr(0,1);j=j.substr(1)}f=j;++d}}if(a.length>0){e=i.length;while(e>0&&i[e-1]==''){--e}e<i.length&&(i.length=e)}return i} +function f1d(a,b){var c,d,e,f,g,h,i,j,k,l;l=_Kd(b);j=null;e=false;for(h=0,k=VKd(l.a).i;h<k;++h){g=BD(nOd(l,h,(f=BD(qud(VKd(l.a),h),87),i=f.c,JD(i,88)?BD(i,26):(jGd(),_Fd))),26);c=f1d(a,g);if(!c.dc()){if(!j){j=c}else{if(!e){e=true;j=new pFd(j)}j.Gc(c)}}}d=k1d(a,b);if(d.dc()){return !j?(mmb(),mmb(),jmb):j}else{if(!j){return d}else{e||(j=new pFd(j));j.Gc(d);return j}}} +function g1d(a,b){var c,d,e,f,g,h,i,j,k,l;l=_Kd(b);j=null;d=false;for(h=0,k=VKd(l.a).i;h<k;++h){f=BD(nOd(l,h,(e=BD(qud(VKd(l.a),h),87),i=e.c,JD(i,88)?BD(i,26):(jGd(),_Fd))),26);c=g1d(a,f);if(!c.dc()){if(!j){j=c}else{if(!d){d=true;j=new pFd(j)}j.Gc(c)}}}g=n1d(a,b);if(g.dc()){return !j?(mmb(),mmb(),jmb):j}else{if(!j){return g}else{d||(j=new pFd(j));j.Gc(g);return j}}} +function B2d(a,b,c){var d,e,f,g,h,i;if(JD(b,72)){return Txd(a,b,c)}else{h=null;f=null;d=BD(a.g,119);for(g=0;g<a.i;++g){e=d[g];if(pb(b,e.dd())){f=e.ak();if(JD(f,99)&&(BD(f,18).Bb&ote)!=0){h=e;break}}}if(h){if(oid(a.e)){i=f.$j()?H2d(a,4,f,b,null,M2d(a,f,b,JD(f,99)&&(BD(f,18).Bb&Tje)!=0),true):H2d(a,f.Kj()?2:1,f,b,f.zj(),-1,true);c?c.Ei(i):(c=i)}c=B2d(a,h,c)}return c}} +function pKb(a){var b,c,d,e;d=a.o;$Jb();if(a.A.dc()||pb(a.A,ZJb)){e=d.a}else{e=gIb(a.f);if(a.A.Hc((tdd(),qdd))&&!a.B.Hc((Idd(),Edd))){e=$wnd.Math.max(e,gIb(BD(Mpb(a.p,(Ucd(),Acd)),244)));e=$wnd.Math.max(e,gIb(BD(Mpb(a.p,Rcd),244)))}b=aKb(a);!!b&&(e=$wnd.Math.max(e,b.a))}Ccb(DD(a.e.yf().We((Y9c(),$8c))))?(d.a=$wnd.Math.max(d.a,e)):(d.a=e);c=a.f.i;c.c=0;c.b=e;hIb(a.f)} +function $0d(a,b){var c,d,e,f,g,h,i,j,k;c=b.Hh(a.a);if(c){i=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),'memberTypes'));if(i!=null){j=new Rkb;for(f=mfb(i,'\\w'),g=0,h=f.length;g<h;++g){e=f[g];d=e.lastIndexOf('#');k=d==-1?w1d(a,b.Aj(),e):d==0?v1d(a,null,e.substr(1)):v1d(a,e.substr(0,d),e.substr(d+1));JD(k,148)&&Ekb(j,BD(k,148))}return j}}return mmb(),mmb(),jmb} +function tRb(a,b,c){var d,e,f,g,h,i,j,k;Odd(c,kme,1);a.bf(b);f=0;while(a.df(f)){for(k=new olb(b.e);k.a<k.c.c.length;){i=BD(mlb(k),144);for(h=ul(pl(OC(GC(KI,1),Uhe,20,0,[b.e,b.d,b.b])));Qr(h);){g=BD(Rr(h),357);if(g!=i){e=a.af(g,i);!!e&&P6c(i.a,e)}}}for(j=new olb(b.e);j.a<j.c.c.length;){i=BD(mlb(j),144);d=i.a;Q6c(d,-a.d,-a.d,a.d,a.d);P6c(i.d,d);X6c(d)}a.cf();++f}Qdd(c)} +function $2d(a,b,c){var d,e,f,g;g=S6d(a.e.Tg(),b);d=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(f=0;f<a.i;++f){e=d[f];if(g.rl(e.ak())){if(pb(e,c)){Xxd(a,f);return true}}}}else if(c!=null){for(f=0;f<a.i;++f){e=d[f];if(g.rl(e.ak())){if(pb(c,e.dd())){Xxd(a,f);return true}}}}else{for(f=0;f<a.i;++f){e=d[f];if(g.rl(e.ak())){if(e.dd()==null){Xxd(a,f);return true}}}}return false} +function sDc(a,b){var c,d,e,f,g;a.c==null||a.c.length<b.c.length?(a.c=KC(sbb,dle,25,b.c.length,16,1)):Blb(a.c);a.a=new Rkb;d=0;for(g=new olb(b);g.a<g.c.c.length;){e=BD(mlb(g),10);e.p=d++}c=new Psb;for(f=new olb(b);f.a<f.c.c.length;){e=BD(mlb(f),10);if(!a.c[e.p]){tDc(a,e);c.b==0||(sCb(c.b!=0),BD(c.a.a.c,15)).gc()<a.a.c.length?Esb(c,a.a):Fsb(c,a.a);a.a=new Rkb}}return c} +function jYc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;g=BD(qud(b,0),33);dld(g,0);eld(g,0);m=new Rkb;m.c[m.c.length]=g;h=g;f=new d$c(a.a,g.g,g.f,(k$c(),j$c));for(n=1;n<b.i;n++){o=BD(qud(b,n),33);i=kYc(a,g$c,o,h,f,m,c);j=kYc(a,f$c,o,h,f,m,c);k=kYc(a,i$c,o,h,f,m,c);l=kYc(a,h$c,o,h,f,m,c);e=mYc(a,i,j,k,l,o,h,d);dld(o,e.d);eld(o,e.e);c$c(e,j$c);f=e;h=o;m.c[m.c.length]=o}return f} +function K0c(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,ase),'ELK SPOrE Overlap Removal'),'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'),new N0c)));p4c(a,ase,Qre,Ksd(I0c));p4c(a,ase,ame,G0c);p4c(a,ase,wme,8);p4c(a,ase,Vre,Ksd(H0c));p4c(a,ase,Yre,Ksd(E0c));p4c(a,ase,Zre,Ksd(F0c));p4c(a,ase,Zpe,(Bcb(),false))} +function sXb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n;g=O6c(b.c,c,d);for(l=new olb(b.a);l.a<l.c.c.length;){k=BD(mlb(l),10);P6c(k.n,g);for(n=new olb(k.j);n.a<n.c.c.length;){m=BD(mlb(n),11);for(f=new olb(m.g);f.a<f.c.c.length;){e=BD(mlb(f),17);q7c(e.a,g);h=BD(vNb(e,(Nyc(),jxc)),74);!!h&&q7c(h,g);for(j=new olb(e.b);j.a<j.c.c.length;){i=BD(mlb(j),70);P6c(i.n,g)}}}Ekb(a.a,k);k.a=a}} +function g9b(a,b){var c,d,e,f,g;Odd(b,'Node and Port Label Placement and Node Sizing',1);MGb((a$b(),new l$b(a,true,true,new j9b)));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))){f=BD(vNb(a,(Nyc(),Yxc)),21);e=f.Hc((rcd(),ocd));g=Ccb(DD(vNb(a,Zxc)));for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),29);MAb(JAb(new YAb(null,new Kub(c.a,16)),new l9b),new n9b(f,e,g))}}Qdd(b)} +function Y0d(a,b){var c,d,e,f,g,h;c=b.Hh(a.a);if(c){h=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),eue));if(h!=null){e=kfb(h,wfb(35));d=b.Hj();if(e==-1){g=u1d(a,bKd(d));f=h}else if(e==0){g=null;f=h.substr(1)}else{g=h.substr(0,e);f=h.substr(e+1)}switch($1d(q1d(a,b))){case 2:case 3:{return j1d(a,d,g,f)}case 0:case 4:case 5:case 6:{return m1d(a,d,g,f)}}}}return null} +function q2d(a,b,c){var d,e,f,g,h;g=(Q6d(),BD(b,66).Oj());if(T6d(a.e,b)){if(b.hi()&&F2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)){return false}}else{h=S6d(a.e.Tg(),b);d=BD(a.g,119);for(f=0;f<a.i;++f){e=d[f];if(h.rl(e.ak())){if(g?pb(e,c):c==null?e.dd()==null:pb(c,e.dd())){return false}else{BD(Gtd(a,f,g?BD(c,72):R6d(b,c)),72);return true}}}}return wtd(a,g?BD(c,72):R6d(b,c))} +function uVb(a){var b,c,d,e,f,g,h,i;if(a.d){throw vbb(new Zdb((fdb(LP),Jke+LP.k+Kke)))}a.c==(ead(),cad)&&tVb(a,aad);for(c=new olb(a.a.a);c.a<c.c.c.length;){b=BD(mlb(c),189);b.e=0}for(g=new olb(a.a.b);g.a<g.c.c.length;){f=BD(mlb(g),81);f.o=Qje;for(e=f.f.Kc();e.Ob();){d=BD(e.Pb(),81);++d.d.e}}JVb(a);for(i=new olb(a.a.b);i.a<i.c.c.length;){h=BD(mlb(i),81);h.k=true}return a} +function Ijc(a,b){var c,d,e,f,g,h,i,j;h=new pjc(a);c=new Psb;Gsb(c,b,c.c.b,c.c);while(c.b!=0){d=BD(c.b==0?null:(sCb(c.b!=0),Nsb(c,c.a.a)),113);d.d.p=1;for(g=new olb(d.e);g.a<g.c.c.length;){e=BD(mlb(g),409);kjc(h,e);j=e.d;j.d.p==0&&(Gsb(c,j,c.c.b,c.c),true)}for(f=new olb(d.b);f.a<f.c.c.length;){e=BD(mlb(f),409);kjc(h,e);i=e.c;i.d.p==0&&(Gsb(c,i,c.c.b,c.c),true)}}return h} +function hfd(a){var b,c,d,e,f;d=Edb(ED(hkd(a,(Y9c(),G9c))));if(d==1){return}_kd(a,d*a.g,d*a.f);c=Mq(Rq((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c),new Hfd));for(f=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!a.n&&(a.n=new cUd(D2,a,1,7)),a.n),(!a.c&&(a.c=new cUd(F2,a,9,9)),a.c),c])));Qr(f);){e=BD(Rr(f),470);e.Gg(d*e.Dg(),d*e.Eg());e.Fg(d*e.Cg(),d*e.Bg());b=BD(e.We(r9c),8);if(b){b.a*=d;b.b*=d}}} +function Mac(a,b,c,d,e){var f,g,h,i,j,k,l,m;for(g=new olb(a.b);g.a<g.c.c.length;){f=BD(mlb(g),29);m=l_b(f.a);for(j=m,k=0,l=j.length;k<l;++k){i=j[k];switch(BD(vNb(i,(Nyc(),mxc)),163).g){case 1:Qac(i);$_b(i,b);Nac(i,true,d);break;case 3:Rac(i);$_b(i,c);Nac(i,false,e);}}}h=new Bib(a.b,0);while(h.b<h.d.gc()){(sCb(h.b<h.d.gc()),BD(h.d.Xb(h.c=h.b++),29)).a.c.length==0&&uib(h)}} +function d1d(a,b){var c,d,e,f,g,h,i;c=b.Hh(a.a);if(c){i=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Dwe));if(i!=null){d=new Rkb;for(f=mfb(i,'\\w'),g=0,h=f.length;g<h;++g){e=f[g];dfb(e,'##other')?Ekb(d,'!##'+u1d(a,bKd(b.Hj()))):dfb(e,'##local')?(d.c[d.c.length]=null,true):dfb(e,Bwe)?Ekb(d,u1d(a,bKd(b.Hj()))):(d.c[d.c.length]=e,true)}return d}}return mmb(),mmb(),jmb} +function kMb(a,b){var c,d,e,f;c=new pMb;d=BD(GAb(NAb(new YAb(null,new Kub(a.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);e=d.gc();d=BD(GAb(NAb(new YAb(null,new Kub(b.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[Eyb,Dyb]))),21);f=d.gc();e=e==1?1:0;f=f==1?1:0;if(e<f){return -1}if(e==f){return 0}return 1} +function hZb(a){var b,c,d,e,f,g,h,i,j,k,l,m;h=a.i;e=Ccb(DD(vNb(h,(Nyc(),fxc))));k=0;d=0;for(j=new olb(a.g);j.a<j.c.c.length;){i=BD(mlb(j),17);g=OZb(i);f=g&&e&&Ccb(DD(vNb(i,gxc)));m=i.d.i;g&&f?++d:g&&!f?++k:Q_b(m).e==h?++d:++k}for(c=new olb(a.e);c.a<c.c.c.length;){b=BD(mlb(c),17);g=OZb(b);f=g&&e&&Ccb(DD(vNb(b,gxc)));l=b.c.i;g&&f?++k:g&&!f?++d:Q_b(l).e==h?++k:++d}return k-d} +function ULc(a,b,c,d){this.e=a;this.k=BD(vNb(a,(wtc(),otc)),304);this.g=KC(OQ,kne,10,b,0,1);this.b=KC(BI,nie,333,b,7,1);this.a=KC(OQ,kne,10,b,0,1);this.d=KC(BI,nie,333,b,7,1);this.j=KC(OQ,kne,10,b,0,1);this.i=KC(BI,nie,333,b,7,1);this.p=KC(BI,nie,333,b,7,1);this.n=KC(wI,nie,476,b,8,1);Alb(this.n,(Bcb(),false));this.f=KC(wI,nie,476,b,8,1);Alb(this.f,true);this.o=c;this.c=d} +function X9b(a,b){var c,d,e,f,g,h;if(b.dc()){return}if(BD(b.Xb(0),286).d==(Apc(),xpc)){O9b(a,b)}else{for(d=b.Kc();d.Ob();){c=BD(d.Pb(),286);switch(c.d.g){case 5:K9b(a,c,Q9b(a,c));break;case 0:K9b(a,c,(g=c.f-c.c+1,h=(g-1)/2|0,c.c+h));break;case 4:K9b(a,c,S9b(a,c));break;case 2:Y9b(c);K9b(a,c,(f=U9b(c),f?c.c:c.f));break;case 1:Y9b(c);K9b(a,c,(e=U9b(c),e?c.f:c.c));}P9b(c.a)}}} +function C4b(a,b){var c,d,e,f,g,h,i;if(b.e){return}b.e=true;for(d=b.d.a.ec().Kc();d.Ob();){c=BD(d.Pb(),17);if(b.o&&b.d.a.gc()<=1){g=b.a.c;h=b.a.c+b.a.b;i=new f7c(g+(h-g)/2,b.b);Dsb(BD(b.d.a.ec().Kc().Pb(),17).a,i);continue}e=BD(Ohb(b.c,c),459);if(e.b||e.c){E4b(a,c,b);continue}f=a.d==(tBc(),sBc)&&(e.d||e.e)&&K4b(a,b)&&b.d.a.gc()<=1;f?F4b(c,b):D4b(a,c,b)}b.k&&reb(b.d,new X4b)} +function zXc(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t;m=f;h=(d+e)/2+m;q=c*$wnd.Math.cos(h);r=c*$wnd.Math.sin(h);s=q-b.g/2;t=r-b.f/2;dld(b,s);eld(b,t);l=a.a.jg(b);p=2*$wnd.Math.acos(c/c+a.c);if(p<e-d){n=p/l;g=(d+e-p)/2}else{n=(e-d)/l;g=d}o=gVc(b);if(a.e){a.e.kg(a.d);a.e.lg(o)}for(j=new olb(o);j.a<j.c.c.length;){i=BD(mlb(j),33);k=a.a.jg(i);zXc(a,i,c+a.c,g,g+n*k,f);g+=n*k}} +function jA(a,b,c){var d;d=c.q.getMonth();switch(b){case 5:Qfb(a,OC(GC(ZI,1),nie,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[d]);break;case 4:Qfb(a,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje])[d]);break;case 3:Qfb(a,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[d]);break;default:EA(a,d+1,b);}} +function uGb(a,b){var c,d,e,f,g;Odd(b,'Network simplex',1);if(a.e.a.c.length<1){Qdd(b);return}for(f=new olb(a.e.a);f.a<f.c.c.length;){e=BD(mlb(f),121);e.e=0}g=a.e.a.c.length>=40;g&&FGb(a);wGb(a);vGb(a);c=zGb(a);d=0;while(!!c&&d<a.f){tGb(a,c,sGb(a,c));c=zGb(a);++d}g&&EGb(a);a.a?qGb(a,CGb(a)):CGb(a);a.b=null;a.d=null;a.p=null;a.c=null;a.g=null;a.i=null;a.n=null;a.o=null;Qdd(b)} +function JQb(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=new f7c(c,d);c7c(i,BD(vNb(b,(HSb(),ESb)),8));for(m=new olb(b.e);m.a<m.c.c.length;){l=BD(mlb(m),144);P6c(l.d,i);Ekb(a.e,l)}for(h=new olb(b.c);h.a<h.c.c.length;){g=BD(mlb(h),282);for(f=new olb(g.a);f.a<f.c.c.length;){e=BD(mlb(f),559);P6c(e.d,i)}Ekb(a.c,g)}for(k=new olb(b.d);k.a<k.c.c.length;){j=BD(mlb(k),447);P6c(j.d,i);Ekb(a.d,j)}} +function _Bc(a,b){var c,d,e,f,g,h,i,j;for(i=new olb(b.j);i.a<i.c.c.length;){h=BD(mlb(i),11);for(e=new b1b(h.b);llb(e.a)||llb(e.b);){d=BD(llb(e.a)?mlb(e.a):mlb(e.b),17);c=d.c==h?d.d:d.c;f=c.i;if(b==f){continue}j=BD(vNb(d,(Nyc(),cyc)),19).a;j<0&&(j=0);g=f.p;if(a.b[g]==0){if(d.d==c){a.a[g]-=j+1;a.a[g]<=0&&a.c[g]>0&&Dsb(a.f,f)}else{a.c[g]-=j+1;a.c[g]<=0&&a.a[g]>0&&Dsb(a.e,f)}}}}} +function _Kb(a){var b,c,d,e,f,g,h,i,j;h=new Hxb(BD(Qb(new nLb),62));j=Qje;for(c=new olb(a.d);c.a<c.c.c.length;){b=BD(mlb(c),222);j=b.c.c;while(h.a.c!=0){i=BD(zjb(Bwb(h.a)),222);if(i.c.c+i.c.b<j){Jwb(h.a,i)!=null}else{break}}for(g=(e=new Ywb((new cxb((new Gjb(h.a)).a)).b),new Njb(e));sib(g.a.a);){f=(d=Wwb(g.a),BD(d.cd(),222));Dsb(f.b,b);Dsb(b.b,f)}Iwb(h.a,b,(Bcb(),zcb))==null}} +function QEc(a,b,c){var d,e,f,g,h,i,j,k,l;f=new Skb(b.c.length);for(j=new olb(b);j.a<j.c.c.length;){g=BD(mlb(j),10);Ekb(f,a.b[g.c.p][g.p])}LEc(a,f,c);l=null;while(l=MEc(f)){NEc(a,BD(l.a,233),BD(l.b,233),f)}b.c=KC(SI,Uhe,1,0,5,1);for(e=new olb(f);e.a<e.c.c.length;){d=BD(mlb(e),233);for(h=d.d,i=0,k=h.length;i<k;++i){g=h[i];b.c[b.c.length]=g;a.a[g.c.p][g.p].a=REc(d.g,d.d[0]).a}}} +function JRc(a,b){var c,d,e,f;if(0<(JD(a,14)?BD(a,14).gc():sr(a.Kc()))){e=b;if(1<e){--e;f=new KRc;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),86);f=pl(OC(GC(KI,1),Uhe,20,0,[f,new ZRc(c)]))}return JRc(f,e)}if(e<0){f=new NRc;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),86);f=pl(OC(GC(KI,1),Uhe,20,0,[f,new ZRc(c)]))}if(0<(JD(f,14)?BD(f,14).gc():sr(f.Kc()))){return JRc(f,e)}}}return BD(pr(a.Kc()),86)} +function Idd(){Idd=ccb;Bdd=new Jdd('DEFAULT_MINIMUM_SIZE',0);Ddd=new Jdd('MINIMUM_SIZE_ACCOUNTS_FOR_PADDING',1);Add=new Jdd('COMPUTE_PADDING',2);Edd=new Jdd('OUTSIDE_NODE_LABELS_OVERHANG',3);Fdd=new Jdd('PORTS_OVERHANG',4);Hdd=new Jdd('UNIFORM_PORT_SPACING',5);Gdd=new Jdd('SPACE_EFFICIENT_PORT_LABELS',6);Cdd=new Jdd('FORCE_TABULAR_NODE_LABELS',7);zdd=new Jdd('ASYMMETRICAL',8)} +function s6d(a,b){var c,d,e,f,g,h,i,j;if(!b){return null}else{c=(f=b.Tg(),!f?null:bKd(f).Nh().Jh(f));if(c){Xrb(a,b,c);e=b.Tg();for(i=0,j=(e.i==null&&TKd(e),e.i).length;i<j;++i){h=(d=(e.i==null&&TKd(e),e.i),i>=0&&i<d.length?d[i]:null);if(h.Ij()&&!h.Jj()){if(JD(h,322)){u6d(a,BD(h,34),b,c)}else{g=BD(h,18);(g.Bb&ote)!=0&&w6d(a,g,b,c)}}}b.kh()&&BD(c,49).vh(BD(b,49).qh())}return c}} +function tGb(a,b,c){var d,e,f;if(!b.f){throw vbb(new Wdb('Given leave edge is no tree edge.'))}if(c.f){throw vbb(new Wdb('Given enter edge is a tree edge already.'))}b.f=false;Sqb(a.p,b);c.f=true;Qqb(a.p,c);d=c.e.e-c.d.e-c.a;xGb(a,c.e,b)||(d=-d);for(f=new olb(a.e.a);f.a<f.c.c.length;){e=BD(mlb(f),121);xGb(a,e,b)||(e.e+=d)}a.j=1;Blb(a.c);DGb(a,BD(mlb(new olb(a.e.a)),121));rGb(a)} +function x6b(a,b){var c,d,e,f,g,h;h=BD(vNb(b,(Nyc(),Vxc)),98);if(!(h==(dcd(),_bd)||h==$bd)){return}e=(new f7c(b.f.a+b.d.b+b.d.c,b.f.b+b.d.d+b.d.a)).b;for(g=new olb(a.a);g.a<g.c.c.length;){f=BD(mlb(g),10);if(f.k!=(j0b(),e0b)){continue}c=BD(vNb(f,(wtc(),Hsc)),61);if(c!=(Ucd(),zcd)&&c!=Tcd){continue}d=Edb(ED(vNb(f,htc)));h==_bd&&(d*=e);f.n.b=d-BD(vNb(f,Txc),8).b;M_b(f,false,true)}} +function YDc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n;bEc(a,b,c);f=b[c];n=d?(Ucd(),Tcd):(Ucd(),zcd);if(ZDc(b.length,c,d)){e=b[d?c-1:c+1];UDc(a,e,d?(KAc(),IAc):(KAc(),HAc));for(i=f,k=0,m=i.length;k<m;++k){g=i[k];XDc(a,g,n)}UDc(a,f,d?(KAc(),HAc):(KAc(),IAc));for(h=e,j=0,l=h.length;j<l;++j){g=h[j];!!g.e||XDc(a,g,Wcd(n))}}else{for(h=f,j=0,l=h.length;j<l;++j){g=h[j];XDc(a,g,n)}}return false} +function nFc(a,b,c,d){var e,f,g,h,i,j,k;i=V_b(b,c);(c==(Ucd(),Rcd)||c==Tcd)&&(i=JD(i,152)?km(BD(i,152)):JD(i,131)?BD(i,131).a:JD(i,54)?new ov(i):new dv(i));g=false;do{e=false;for(f=0;f<i.gc()-1;f++){j=BD(i.Xb(f),11);h=BD(i.Xb(f+1),11);if(oFc(a,j,h,d)){g=true;cIc(a.a,BD(i.Xb(f),11),BD(i.Xb(f+1),11));k=BD(i.Xb(f+1),11);i._c(f+1,BD(i.Xb(f),11));i._c(f,k);e=true}}}while(e);return g} +function W2d(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(oid(a.e)){if(b!=c){e=BD(a.g,119);n=e[c];g=n.ak();if(T6d(a.e,g)){o=S6d(a.e.Tg(),g);i=-1;h=-1;d=0;for(j=0,l=b>c?b:c;j<=l;++j){if(j==c){h=d++}else{f=e[j];k=o.rl(f.ak());j==b&&(i=j==l&&!k?d-1:d);k&&++d}}m=BD(Wxd(a,b,c),72);h!=i&&GLd(a,new ESd(a.e,7,g,meb(h),n.dd(),i));return m}}}else{return BD(sud(a,b,c),72)}return BD(Wxd(a,b,c),72)} +function Qcc(a,b){var c,d,e,f,g,h,i;Odd(b,'Port order processing',1);i=BD(vNb(a,(Nyc(),_xc)),421);for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),29);for(f=new olb(c.a);f.a<f.c.c.length;){e=BD(mlb(f),10);g=BD(vNb(e,Vxc),98);h=e.j;if(g==(dcd(),Zbd)||g==_bd||g==$bd){mmb();Okb(h,Icc)}else if(g!=bcd&&g!=ccd){mmb();Okb(h,Lcc);Scc(h);i==(BAc(),AAc)&&Okb(h,Kcc)}e.i=true;N_b(e)}}Qdd(b)} +function vDc(a){var b,c,d,e,f,g,h,i;i=new Lqb;b=new KFb;for(g=a.Kc();g.Ob();){e=BD(g.Pb(),10);h=nGb(oGb(new pGb,e),b);jrb(i.f,e,h)}for(f=a.Kc();f.Ob();){e=BD(f.Pb(),10);for(d=new Sr(ur(U_b(e).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(OZb(c)){continue}AFb(DFb(CFb(BFb(EFb(new FFb,$wnd.Math.max(1,BD(vNb(c,(Nyc(),dyc)),19).a)),1),BD(Ohb(i,c.c.i),121)),BD(Ohb(i,c.d.i),121)))}}return b} +function tNc(){tNc=ccb;oNc=e3c(new j3c,(qUb(),oUb),(S8b(),k8b));qNc=e3c(new j3c,nUb,o8b);rNc=c3c(e3c(new j3c,nUb,C8b),pUb,B8b);nNc=c3c(e3c(e3c(new j3c,nUb,e8b),oUb,f8b),pUb,g8b);sNc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);pNc=c3c(new j3c,pUb,l8b);lNc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);mNc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} +function XC(a,b,c,d,e,f){var g,h,i,j,k,l,m;j=$C(b)-$C(a);g=kD(b,j);i=TC(0,0,0);while(j>=0){h=bD(a,g);if(h){j<22?(i.l|=1<<j,undefined):j<44?(i.m|=1<<j-22,undefined):(i.h|=1<<j-44,undefined);if(a.l==0&&a.m==0&&a.h==0){break}}k=g.m;l=g.h;m=g.l;g.h=l>>>1;g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&ZC(i);if(f){if(d){QC=hD(a);e&&(QC=nD(QC,(wD(),uD)))}else{QC=TC(a.l,a.m,a.h)}}return i} +function TDc(a,b){var c,d,e,f,g,h,i,j,k,l;j=a.e[b.c.p][b.p]+1;i=b.c.a.c.length+1;for(h=new olb(a.a);h.a<h.c.c.length;){g=BD(mlb(h),11);l=0;f=0;for(e=ul(pl(OC(GC(KI,1),Uhe,20,0,[new J0b(g),new R0b(g)])));Qr(e);){d=BD(Rr(e),11);if(d.i.c==b.c){l+=aEc(a,d.i)+1;++f}}c=l/f;k=g.j;k==(Ucd(),zcd)?c<j?(a.f[g.p]=a.c-c):(a.f[g.p]=a.b+(i-c)):k==Tcd&&(c<j?(a.f[g.p]=a.b+c):(a.f[g.p]=a.c-(i-c)))}} +function Icb(a,b,c){var d,e,f,g,h;if(a==null){throw vbb(new Oeb(Xhe))}f=a.length;g=f>0&&(BCb(0,a.length),a.charCodeAt(0)==45||(BCb(0,a.length),a.charCodeAt(0)==43))?1:0;for(d=g;d<f;d++){if(Zcb((BCb(d,a.length),a.charCodeAt(d)))==-1){throw vbb(new Oeb(Oje+a+'"'))}}h=parseInt(a,10);e=h<b;if(isNaN(h)){throw vbb(new Oeb(Oje+a+'"'))}else if(e||h>c){throw vbb(new Oeb(Oje+a+'"'))}return h} +function dnc(a){var b,c,d,e,f,g,h;g=new Psb;for(f=new olb(a.a);f.a<f.c.c.length;){e=BD(mlb(f),112);pOc(e,e.f.c.length);qOc(e,e.k.c.length);if(e.i==0){e.o=0;Gsb(g,e,g.c.b,g.c)}}while(g.b!=0){e=BD(g.b==0?null:(sCb(g.b!=0),Nsb(g,g.a.a)),112);d=e.o+1;for(c=new olb(e.f);c.a<c.c.c.length;){b=BD(mlb(c),129);h=b.a;rOc(h,$wnd.Math.max(h.o,d));qOc(h,h.i-1);h.i==0&&(Gsb(g,h,g.c.b,g.c),true)}}} +function v2c(a){var b,c,d,e,f,g,h,i;for(g=new olb(a);g.a<g.c.c.length;){f=BD(mlb(g),79);d=atd(BD(qud((!f.b&&(f.b=new y5d(z2,f,4,7)),f.b),0),82));h=d.i;i=d.j;e=BD(qud((!f.a&&(f.a=new cUd(A2,f,6,6)),f.a),0),202);nmd(e,e.j+h,e.k+i);gmd(e,e.b+h,e.c+i);for(c=new Fyd((!e.a&&(e.a=new xMd(y2,e,5)),e.a));c.e!=c.i.gc();){b=BD(Dyd(c),469);ukd(b,b.a+h,b.b+i)}p7c(BD(hkd(f,(Y9c(),Q8c)),74),h,i)}} +function fee(a){var b;switch(a){case 100:return kee(nxe,true);case 68:return kee(nxe,false);case 119:return kee(oxe,true);case 87:return kee(oxe,false);case 115:return kee(pxe,true);case 83:return kee(pxe,false);case 99:return kee(qxe,true);case 67:return kee(qxe,false);case 105:return kee(rxe,true);case 73:return kee(rxe,false);default:throw vbb(new hz((b=a,mxe+b.toString(16))));}} +function $Xb(a){var b,c,d,e,f;e=BD(Ikb(a.a,0),10);b=new b0b(a);Ekb(a.a,b);b.o.a=$wnd.Math.max(1,e.o.a);b.o.b=$wnd.Math.max(1,e.o.b);b.n.a=e.n.a;b.n.b=e.n.b;switch(BD(vNb(e,(wtc(),Hsc)),61).g){case 4:b.n.a+=2;break;case 1:b.n.b+=2;break;case 2:b.n.a-=2;break;case 3:b.n.b-=2;}d=new H0b;F0b(d,b);c=new UZb;f=BD(Ikb(e.j,0),11);QZb(c,f);RZb(c,d);P6c(X6c(d.n),f.n);P6c(X6c(d.a),f.a);return b} +function Fac(a,b,c,d,e){if(c&&(!d||(a.c-a.b&a.a.length-1)>1)&&b==1&&BD(a.a[a.b],10).k==(j0b(),f0b)){zac(BD(a.a[a.b],10),(rbd(),nbd))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&BD(a.a[a.c-1&a.a.length-1],10).k==(j0b(),f0b)){zac(BD(a.a[a.c-1&a.a.length-1],10),(rbd(),obd))}else if((a.c-a.b&a.a.length-1)==2){zac(BD(bkb(a),10),(rbd(),nbd));zac(BD(bkb(a),10),obd)}else{wac(a,e)}Yjb(a)} +function pRc(a,b,c){var d,e,f,g,h;f=0;for(e=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);g='';(!d.n&&(d.n=new cUd(D2,d,1,7)),d.n).i==0||(g=BD(qud((!d.n&&(d.n=new cUd(D2,d,1,7)),d.n),0),137).a);h=new XRc(f++,b,g);tNb(h,d);yNb(h,(mTc(),dTc),d);h.e.b=d.j+d.f/2;h.f.a=$wnd.Math.max(d.g,1);h.e.a=d.i+d.g/2;h.f.b=$wnd.Math.max(d.f,1);Dsb(b.b,h);jrb(c.f,d,h)}} +function B2b(a){var b,c,d,e,f;d=BD(vNb(a,(wtc(),$sc)),33);f=BD(hkd(d,(Nyc(),Fxc)),174).Hc((tdd(),sdd));if(!a.e){e=BD(vNb(a,Ksc),21);b=new f7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);if(e.Hc((Orc(),Hrc))){jkd(d,Vxc,(dcd(),$bd));Afd(d,b.a,b.b,false,true)}else{Ccb(DD(hkd(d,Gxc)))||Afd(d,b.a,b.b,true,true)}}f?jkd(d,Fxc,pqb(sdd)):jkd(d,Fxc,(c=BD(gdb(I1),9),new xqb(c,BD(_Bb(c,c.length),9),0)))} +function tA(a,b,c){var d,e,f,g;if(b[0]>=a.length){c.o=0;return true}switch(bfb(a,b[0])){case 43:e=1;break;case 45:e=-1;break;default:c.o=0;return true;}++b[0];f=b[0];g=rA(a,b);if(g==0&&b[0]==f){return false}if(b[0]<a.length&&bfb(a,b[0])==58){d=g*60;++b[0];f=b[0];g=rA(a,b);if(g==0&&b[0]==f){return false}d+=g}else{d=g;d<24&&b[0]-f<=2?(d*=60):(d=d%100+(d/100|0)*60)}d*=e;c.o=-d;return true} +function Hjc(a){var b,c,d,e,f,g,h,i,j;g=new Rkb;for(d=new Sr(ur(U_b(a.b).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);OZb(c)&&Ekb(g,new Gjc(c,Jjc(a,c.c),Jjc(a,c.d)))}for(j=(f=(new $ib(a.e)).a.vc().Kc(),new djb(f));j.a.Ob();){h=(b=BD(j.a.Pb(),42),BD(b.dd(),113));h.d.p=0}for(i=(e=(new $ib(a.e)).a.vc().Kc(),new djb(e));i.a.Ob();){h=(b=BD(i.a.Pb(),42),BD(b.dd(),113));h.d.p==0&&Ekb(a.d,Ijc(a,h))}} +function W1b(a){var b,c,d,e,f,g,h;f=mpd(a);for(e=new Fyd((!a.e&&(a.e=new y5d(B2,a,7,4)),a.e));e.e!=e.i.gc();){d=BD(Dyd(e),79);h=atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82));if(!ntd(h,f)){return true}}for(c=new Fyd((!a.d&&(a.d=new y5d(B2,a,8,5)),a.d));c.e!=c.i.gc();){b=BD(Dyd(c),79);g=atd(BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82));if(!ntd(g,f)){return true}}return false} +function Dmc(a){var b,c,d,e,f,g,h,i;i=new s7c;b=Jsb(a,0);h=null;c=BD(Xsb(b),8);e=BD(Xsb(b),8);while(b.b!=b.d.c){h=c;c=e;e=BD(Xsb(b),8);f=Emc(c7c(new f7c(h.a,h.b),c));g=Emc(c7c(new f7c(e.a,e.b),c));d=10;d=$wnd.Math.min(d,$wnd.Math.abs(f.a+f.b)/2);d=$wnd.Math.min(d,$wnd.Math.abs(g.a+g.b)/2);f.a=Eeb(f.a)*d;f.b=Eeb(f.b)*d;g.a=Eeb(g.a)*d;g.b=Eeb(g.b)*d;Dsb(i,P6c(f,c));Dsb(i,P6c(g,c))}return i} +function _hd(a,b,c,d){var e,f,g,h,i;g=a.eh();i=a.Zg();e=null;if(i){if(!!b&&(Nid(a,b,c).Bb&Tje)==0){d=Txd(i.Vk(),a,d);a.uh(null);e=b.fh()}else{i=null}}else{!!g&&(i=g.fh());!!b&&(e=b.fh())}i!=e&&!!i&&i.Zk(a);h=a.Vg();a.Rg(b,c);i!=e&&!!e&&e.Yk(a);if(a.Lg()&&a.Mg()){if(!!g&&h>=0&&h!=c){f=new nSd(a,1,h,g,null);!d?(d=f):d.Ei(f)}if(c>=0){f=new nSd(a,1,c,h==c?g:null,b);!d?(d=f):d.Ei(f)}}return d} +function LEd(a){var b,c,d;if(a.b==null){d=new Hfb;if(a.i!=null){Efb(d,a.i);d.a+=':'}if((a.f&256)!=0){if((a.f&256)!=0&&a.a!=null){YEd(a.i)||(d.a+='//',d);Efb(d,a.a)}if(a.d!=null){d.a+='/';Efb(d,a.d)}(a.f&16)!=0&&(d.a+='/',d);for(b=0,c=a.j.length;b<c;b++){b!=0&&(d.a+='/',d);Efb(d,a.j[b])}if(a.g!=null){d.a+='?';Efb(d,a.g)}}else{Efb(d,a.a)}if(a.e!=null){d.a+='#';Efb(d,a.e)}a.b=d.a}return a.b} +function E5b(a,b){var c,d,e,f,g,h;for(e=new olb(b.a);e.a<e.c.c.length;){d=BD(mlb(e),10);f=vNb(d,(wtc(),$sc));if(JD(f,11)){g=BD(f,11);h=b_b(b,d,g.o.a,g.o.b);g.n.a=h.a;g.n.b=h.b;G0b(g,BD(vNb(d,Hsc),61))}}c=new f7c(b.f.a+b.d.b+b.d.c,b.f.b+b.d.d+b.d.a);if(BD(vNb(b,(wtc(),Ksc)),21).Hc((Orc(),Hrc))){yNb(a,(Nyc(),Vxc),(dcd(),$bd));BD(vNb(Q_b(a),Ksc),21).Fc(Krc);j_b(a,c,false)}else{j_b(a,c,true)}} +function YFc(a,b,c){var d,e,f,g,h,i;Odd(c,'Minimize Crossings '+a.a,1);d=b.b.c.length==0||!WAb(JAb(new YAb(null,new Kub(b.b,16)),new Xxb(new xGc))).sd((EAb(),DAb));i=b.b.c.length==1&&BD(Ikb(b.b,0),29).a.c.length==1;f=PD(vNb(b,(Nyc(),axc)))===PD((hbd(),ebd));if(d||i&&!f){Qdd(c);return}e=TFc(a,b);g=(h=BD(Ut(e,0),214),h.c.Rf()?h.c.Lf()?new kGc(a):new mGc(a):new iGc(a));UFc(e,g);eGc(a);Qdd(c)} +function so(a,b,c,d){var e,f,g,h,i;i=Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)));e=Tbb(Ibb(Eie,keb(Tbb(Ibb(c==null?0:tb(c),Fie)),15)));h=vo(a,b,i);g=uo(a,c,e);if(!!h&&e==h.a&&Hb(c,h.g)){return c}else if(!!g&&!d){throw vbb(new Wdb('key already present: '+c))}!!h&&mo(a,h);!!g&&mo(a,g);f=new $o(c,e,b,i);po(a,f,g);if(g){g.e=null;g.c=null}if(h){h.e=null;h.c=null}to(a);return !h?null:h.g} +function Lhb(a,b,c){var d,e,f,g,h;for(f=0;f<b;f++){d=0;for(h=f+1;h<b;h++){d=wbb(wbb(Ibb(xbb(a[f],Yje),xbb(a[h],Yje)),xbb(c[f+h],Yje)),xbb(Tbb(d),Yje));c[f+h]=Tbb(d);d=Pbb(d,32)}c[f+b]=Tbb(d)}khb(c,c,b<<1);d=0;for(e=0,g=0;e<b;++e,g++){d=wbb(wbb(Ibb(xbb(a[e],Yje),xbb(a[e],Yje)),xbb(c[g],Yje)),xbb(Tbb(d),Yje));c[g]=Tbb(d);d=Pbb(d,32);++g;d=wbb(d,xbb(c[g],Yje));c[g]=Tbb(d);d=Pbb(d,32)}return c} +function ZJc(a,b,c){var d,e,f,g,h,i,j,k;if(Qq(b)){return}i=Edb(ED(pBc(c.c,(Nyc(),zyc))));j=BD(pBc(c.c,yyc),142);!j&&(j=new H_b);d=c.a;e=null;for(h=b.Kc();h.Ob();){g=BD(h.Pb(),11);k=0;if(!e){k=j.d}else{k=i;k+=e.o.b}f=nGb(oGb(new pGb,g),a.f);Rhb(a.k,g,f);AFb(DFb(CFb(BFb(EFb(new FFb,0),QD($wnd.Math.ceil(k))),d),f));e=g;d=f}AFb(DFb(CFb(BFb(EFb(new FFb,0),QD($wnd.Math.ceil(j.a+e.o.b))),d),c.d))} +function uZc(a,b,c,d,e,f,g,h){var i,j,k,l,m,n;n=false;m=f-c.s;k=c.t-b.f+(j=MZc(c,m,false),j.a);if(d.g+h>m){return false}l=(i=MZc(d,m,false),i.a);if(k+h+l<=b.b){KZc(c,f-c.s);c.c=true;KZc(d,f-c.s);OZc(d,c.s,c.t+c.d+h);d.k=true;WZc(c.q,d);n=true;if(e){s$c(b,d);d.j=b;if(a.c.length>g){v$c((tCb(g,a.c.length),BD(a.c[g],200)),d);(tCb(g,a.c.length),BD(a.c[g],200)).a.c.length==0&&Kkb(a,g)}}}return n} +function kcc(a,b){var c,d,e,f,g,h;Odd(b,'Partition midprocessing',1);e=new Hp;MAb(JAb(new YAb(null,new Kub(a.a,16)),new occ),new qcc(e));if(e.d==0){return}h=BD(GAb(UAb((f=e.i,new YAb(null,(!f?(e.i=new zf(e,e.c)):f).Nc()))),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);d=h.Kc();c=BD(d.Pb(),19);while(d.Ob()){g=BD(d.Pb(),19);jcc(BD(Qc(e,c),21),BD(Qc(e,g),21));c=g}Qdd(b)} +function DYb(a,b,c){var d,e,f,g,h,i,j,k;if(b.p==0){b.p=1;g=c;if(!g){e=new Rkb;f=(d=BD(gdb(F1),9),new xqb(d,BD(_Bb(d,d.length),9),0));g=new vgd(e,f)}BD(g.a,15).Fc(b);b.k==(j0b(),e0b)&&BD(g.b,21).Fc(BD(vNb(b,(wtc(),Hsc)),61));for(i=new olb(b.j);i.a<i.c.c.length;){h=BD(mlb(i),11);for(k=ul(pl(OC(GC(KI,1),Uhe,20,0,[new J0b(h),new R0b(h)])));Qr(k);){j=BD(Rr(k),11);DYb(a,j.i,g)}}return g}return null} +function Dmd(a,b){var c,d,e,f,g;if(a.Ab){if(a.Ab){g=a.Ab.i;if(g>0){e=BD(a.Ab.g,1934);if(b==null){for(f=0;f<g;++f){c=e[f];if(c.d==null){return c}}}else{for(f=0;f<g;++f){c=e[f];if(dfb(b,c.d)){return c}}}}}else{if(b==null){for(d=new Fyd(a.Ab);d.e!=d.i.gc();){c=BD(Dyd(d),590);if(c.d==null){return c}}}else{for(d=new Fyd(a.Ab);d.e!=d.i.gc();){c=BD(Dyd(d),590);if(dfb(b,c.d)){return c}}}}}return null} +function gRc(a,b){var c,d,e,f,g,h,i,j;j=DD(vNb(b,(JTc(),GTc)));if(j==null||(uCb(j),j)){dRc(a,b);e=new Rkb;for(i=Jsb(b.b,0);i.b!=i.d.c;){g=BD(Xsb(i),86);c=cRc(a,g,null);if(c){tNb(c,b);e.c[e.c.length]=c}}a.a=null;a.b=null;if(e.c.length>1){for(d=new olb(e);d.a<d.c.c.length;){c=BD(mlb(d),135);f=0;for(h=Jsb(c.b,0);h.b!=h.d.c;){g=BD(Xsb(h),86);g.g=f++}}}return e}return Ou(OC(GC(n$,1),fme,135,0,[b]))} +function rqd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,p,q,r,s,t,u,v;n=Sqd(a,etd(b),e);jmd(n,_pd(e,Vte));o=null;p=e;q=$pd(p,Yte);r=new urd(n);wqd(r.a,q);s=$pd(p,'endPoint');t=new yrd(n);yqd(t.a,s);u=Ypd(p,Ote);v=new Brd(n);zqd(v.a,u);l=_pd(e,Qte);f=new qrd(a,n);sqd(f.a,f.b,l);m=_pd(e,Pte);g=new rrd(a,n);tqd(g.a,g.b,m);j=Ypd(e,Ste);h=new srd(c,n);uqd(h.b,h.a,j);k=Ypd(e,Rte);i=new trd(d,n);vqd(i.b,i.a,k)} +function i_b(a,b,c){var d,e,f,g,h;h=null;switch(b.g){case 1:for(e=new olb(a.j);e.a<e.c.c.length;){d=BD(mlb(e),11);if(Ccb(DD(vNb(d,(wtc(),Msc))))){return d}}h=new H0b;yNb(h,(wtc(),Msc),(Bcb(),true));break;case 2:for(g=new olb(a.j);g.a<g.c.c.length;){f=BD(mlb(g),11);if(Ccb(DD(vNb(f,(wtc(),etc))))){return f}}h=new H0b;yNb(h,(wtc(),etc),(Bcb(),true));}if(h){F0b(h,a);G0b(h,c);X$b(h.n,a.o,c)}return h} +function O3b(a,b){var c,d,e,f,g,h;h=-1;g=new Psb;for(d=new b1b(a.b);llb(d.a)||llb(d.b);){c=BD(llb(d.a)?mlb(d.a):mlb(d.b),17);h=$wnd.Math.max(h,Edb(ED(vNb(c,(Nyc(),Zwc)))));c.c==a?MAb(JAb(new YAb(null,new Kub(c.b,16)),new U3b),new W3b(g)):MAb(JAb(new YAb(null,new Kub(c.b,16)),new Y3b),new $3b(g));for(f=Jsb(g,0);f.b!=f.d.c;){e=BD(Xsb(f),70);wNb(e,(wtc(),Dsc))||yNb(e,Dsc,c)}Gkb(b,g);Osb(g)}return h} +function _bc(a,b,c,d,e){var f,g,h,i;f=new b0b(a);__b(f,(j0b(),i0b));yNb(f,(Nyc(),Vxc),(dcd(),$bd));yNb(f,(wtc(),$sc),b.c.i);g=new H0b;yNb(g,$sc,b.c);G0b(g,e);F0b(g,f);yNb(b.c,gtc,f);h=new b0b(a);__b(h,i0b);yNb(h,Vxc,$bd);yNb(h,$sc,b.d.i);i=new H0b;yNb(i,$sc,b.d);G0b(i,e);F0b(i,h);yNb(b.d,gtc,h);QZb(b,g);RZb(b,i);wCb(0,c.c.length);aCb(c.c,0,f);d.c[d.c.length]=h;yNb(f,ysc,meb(1));yNb(h,ysc,meb(1))} +function BPc(a,b,c,d,e){var f,g,h,i,j;h=e?d.b:d.a;if(Rqb(a.a,d)){return}j=h>c.s&&h<c.c;i=false;if(c.e.b!=0&&c.j.b!=0){i=i|($wnd.Math.abs(h-Edb(ED(Hsb(c.e))))<qme&&$wnd.Math.abs(h-Edb(ED(Hsb(c.j))))<qme);i=i|($wnd.Math.abs(h-Edb(ED(Isb(c.e))))<qme&&$wnd.Math.abs(h-Edb(ED(Isb(c.j))))<qme)}if(j||i){g=BD(vNb(b,(Nyc(),jxc)),74);if(!g){g=new s7c;yNb(b,jxc,g)}f=new g7c(d);Gsb(g,f,g.c.b,g.c);Qqb(a.a,f)}} +function gNb(a,b,c,d){var e,f,g,h,i,j,k;if(fNb(a,b,c,d)){return true}else{for(g=new olb(b.f);g.a<g.c.c.length;){f=BD(mlb(g),324);h=false;i=a.j-b.j+c;j=i+b.o;k=a.k-b.k+d;e=k+b.p;switch(f.a.g){case 0:h=oNb(a,i+f.b.a,0,i+f.c.a,k-1);break;case 1:h=oNb(a,j,k+f.b.a,a.o-1,k+f.c.a);break;case 2:h=oNb(a,i+f.b.a,e,i+f.c.a,a.p-1);break;default:h=oNb(a,0,k+f.b.a,i-1,k+f.c.a);}if(h){return true}}}return false} +function LMc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new olb(b.b);g.a<g.c.c.length;){f=BD(mlb(g),29);for(j=new olb(f.a);j.a<j.c.c.length;){i=BD(mlb(j),10);k=new Rkb;h=0;for(d=new Sr(ur(R_b(i).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(OZb(c)||!OZb(c)&&c.c.i.c==c.d.i.c){continue}e=BD(vNb(c,(Nyc(),eyc)),19).a;if(e>h){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.c.i,c))}mmb();Okb(k,a.c);Dkb(a.b,i.p,k)}}} +function MMc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new olb(b.b);g.a<g.c.c.length;){f=BD(mlb(g),29);for(j=new olb(f.a);j.a<j.c.c.length;){i=BD(mlb(j),10);k=new Rkb;h=0;for(d=new Sr(ur(U_b(i).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(OZb(c)||!OZb(c)&&c.c.i.c==c.d.i.c){continue}e=BD(vNb(c,(Nyc(),eyc)),19).a;if(e>h){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.d.i,c))}mmb();Okb(k,a.c);Dkb(a.f,i.p,k)}}} +function Y7c(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,qse),'ELK Box'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'),new _7c)));p4c(a,qse,ame,U7c);p4c(a,qse,wme,15);p4c(a,qse,vme,meb(0));p4c(a,qse,Jre,Ksd(O7c));p4c(a,qse,Fme,Ksd(Q7c));p4c(a,qse,Eme,Ksd(S7c));p4c(a,qse,_le,pse);p4c(a,qse,Ame,Ksd(P7c));p4c(a,qse,Tme,Ksd(R7c));p4c(a,qse,rse,Ksd(M7c));p4c(a,qse,lqe,Ksd(N7c))} +function W$b(a,b){var c,d,e,f,g,h,i,j,k;e=a.i;g=e.o.a;f=e.o.b;if(g<=0&&f<=0){return Ucd(),Scd}j=a.n.a;k=a.n.b;h=a.o.a;c=a.o.b;switch(b.g){case 2:case 1:if(j<0){return Ucd(),Tcd}else if(j+h>g){return Ucd(),zcd}break;case 4:case 3:if(k<0){return Ucd(),Acd}else if(k+c>f){return Ucd(),Rcd}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(Ucd(),Tcd):i+d>=1&&i-d>=0?(Ucd(),zcd):d<0.5?(Ucd(),Acd):(Ucd(),Rcd)} +function pJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=false;k=Edb(ED(vNb(b,(Nyc(),vyc))));o=Qie*k;for(e=new olb(b.b);e.a<e.c.c.length;){d=BD(mlb(e),29);j=new olb(d.a);f=BD(mlb(j),10);l=xJc(a.a[f.p]);while(j.a<j.c.c.length){h=BD(mlb(j),10);m=xJc(a.a[h.p]);if(l!=m){n=jBc(a.b,f,h);g=f.n.b+f.o.b+f.d.a+l.a+n;i=h.n.b-h.d.d+m.a;if(g>i+o){p=l.g+m.g;m.a=(m.g*m.a+l.g*l.a)/p;m.g=p;l.f=m;c=true}}f=h;l=m}}return c} +function VGb(a,b,c,d,e,f,g){var h,i,j,k,l,m;m=new I6c;for(j=b.Kc();j.Ob();){h=BD(j.Pb(),839);for(l=new olb(h.wf());l.a<l.c.c.length;){k=BD(mlb(l),181);if(PD(k.We((Y9c(),C8c)))===PD((qad(),pad))){SGb(m,k,false,d,e,f,g);H6c(a,m)}}}for(i=c.Kc();i.Ob();){h=BD(i.Pb(),839);for(l=new olb(h.wf());l.a<l.c.c.length;){k=BD(mlb(l),181);if(PD(k.We((Y9c(),C8c)))===PD((qad(),oad))){SGb(m,k,true,d,e,f,g);H6c(a,m)}}}} +function oRc(a,b,c){var d,e,f,g,h,i,j;for(g=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));g.e!=g.i.gc();){f=BD(Dyd(g),33);for(e=new Sr(ur(_sd(f).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);if(!Pld(d)&&!Pld(d)&&!Qld(d)){i=BD(Wd(irb(c.f,f)),86);j=BD(Ohb(c,atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))),86);if(!!i&&!!j){h=new QRc(i,j);yNb(h,(mTc(),dTc),d);tNb(h,d);Dsb(i.d,h);Dsb(j.b,h);Dsb(b.a,h)}}}}} +function QKb(a,b){var c,d,e,f,g,h,i,j;for(i=BD(BD(Qc(a.r,b),21),84).Kc();i.Ob();){h=BD(i.Pb(),111);e=h.c?YHb(h.c):0;if(e>0){if(h.a){j=h.b.rf().b;if(e>j){if(a.v||h.c.d.c.length==1){g=(e-j)/2;h.d.d=g;h.d.a=g}else{c=BD(Ikb(h.c.d,0),181).rf().b;d=(c-j)/2;h.d.d=$wnd.Math.max(0,d);h.d.a=e-d-j}}}else{h.d.a=a.t+e}}else if(tcd(a.u)){f=sfd(h.b);f.d<0&&(h.d.d=-f.d);f.d+f.a>h.b.rf().b&&(h.d.a=f.d+f.a-h.b.rf().b)}}} +function FC(a,b){var c;switch(HC(a)){case 6:return ND(b);case 7:return LD(b);case 8:return KD(b);case 3:return Array.isArray(b)&&(c=HC(b),!(c>=14&&c<=16));case 11:return b!=null&&typeof b===Nhe;case 12:return b!=null&&(typeof b===Jhe||typeof b==Nhe);case 0:return AD(b,a.__elementTypeId$);case 2:return OD(b)&&!(b.im===gcb);case 1:return OD(b)&&!(b.im===gcb)||AD(b,a.__elementTypeId$);default:return true;}} +function xOb(a,b){var c,d,e,f;d=$wnd.Math.min($wnd.Math.abs(a.c-(b.c+b.b)),$wnd.Math.abs(a.c+a.b-b.c));f=$wnd.Math.min($wnd.Math.abs(a.d-(b.d+b.a)),$wnd.Math.abs(a.d+a.a-b.d));c=$wnd.Math.abs(a.c+a.b/2-(b.c+b.b/2));if(c>a.b/2+b.b/2){return 1}e=$wnd.Math.abs(a.d+a.a/2-(b.d+b.a/2));if(e>a.a/2+b.a/2){return 1}if(c==0&&e==0){return 0}if(c==0){return f/e+1}if(e==0){return d/c+1}return $wnd.Math.min(d/c,f/e)+1} +function mgb(a,b){var c,d,e,f,g,h;e=pgb(a);h=pgb(b);if(e==h){if(a.e==b.e&&a.a<54&&b.a<54){return a.f<b.f?-1:a.f>b.f?1:0}d=a.e-b.e;c=(a.d>0?a.d:$wnd.Math.floor((a.a-1)*Xje)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*Xje)+1);if(c>d+1){return e}else if(c<d-1){return -e}else{f=(!a.c&&(a.c=fhb(a.f)),a.c);g=(!b.c&&(b.c=fhb(b.f)),b.c);d<0?(f=Ogb(f,Khb(-d))):d>0&&(g=Ogb(g,Khb(d)));return Igb(f,g)}}else return e<h?-1:1} +function mTb(a,b){var c,d,e,f,g,h,i;f=0;h=0;i=0;for(e=new olb(a.f.e);e.a<e.c.c.length;){d=BD(mlb(e),144);if(b==d){continue}g=a.i[b.b][d.b];f+=g;c=S6c(b.d,d.d);c>0&&a.d!=(yTb(),xTb)&&(h+=g*(d.d.a+a.a[b.b][d.b]*(b.d.a-d.d.a)/c));c>0&&a.d!=(yTb(),vTb)&&(i+=g*(d.d.b+a.a[b.b][d.b]*(b.d.b-d.d.b)/c))}switch(a.d.g){case 1:return new f7c(h/f,b.d.b);case 2:return new f7c(b.d.a,i/f);default:return new f7c(h/f,i/f);}} +function Wcc(a,b){Occ();var c,d,e,f,g;g=BD(vNb(a.i,(Nyc(),Vxc)),98);f=a.j.g-b.j.g;if(f!=0||!(g==(dcd(),Zbd)||g==_bd||g==$bd)){return 0}if(g==(dcd(),Zbd)){c=BD(vNb(a,Wxc),19);d=BD(vNb(b,Wxc),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}}switch(a.j.g){case 1:return Kdb(a.n.a,b.n.a);case 2:return Kdb(a.n.b,b.n.b);case 3:return Kdb(b.n.a,a.n.a);case 4:return Kdb(b.n.b,a.n.b);default:throw vbb(new Zdb(ine));}} +function tfd(a){var b,c,d,e,f,g;c=(!a.a&&(a.a=new xMd(y2,a,5)),a.a).i+2;g=new Skb(c);Ekb(g,new f7c(a.j,a.k));MAb(new YAb(null,(!a.a&&(a.a=new xMd(y2,a,5)),new Kub(a.a,16))),new Qfd(g));Ekb(g,new f7c(a.b,a.c));b=1;while(b<g.c.length-1){d=(tCb(b-1,g.c.length),BD(g.c[b-1],8));e=(tCb(b,g.c.length),BD(g.c[b],8));f=(tCb(b+1,g.c.length),BD(g.c[b+1],8));d.a==e.a&&e.a==f.a||d.b==e.b&&e.b==f.b?Kkb(g,b):++b}return g} +function Xgc(a,b){var c,d,e,f,g,h,i;c=vDb(yDb(wDb(xDb(new zDb,b),new K6c(b.e)),Ggc),a.a);b.j.c.length==0||nDb(BD(Ikb(b.j,0),57).a,c);i=new lEb;Rhb(a.e,c,i);g=new Tqb;h=new Tqb;for(f=new olb(b.k);f.a<f.c.c.length;){e=BD(mlb(f),17);Qqb(g,e.c);Qqb(h,e.d)}d=g.a.gc()-h.a.gc();if(d<0){jEb(i,true,(ead(),aad));jEb(i,false,bad)}else if(d>0){jEb(i,false,(ead(),aad));jEb(i,true,bad)}Hkb(b.g,new $hc(a,c));Rhb(a.g,b,c)} +function Neb(){Neb=ccb;var a;Jeb=OC(GC(WD,1),oje,25,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]);Keb=KC(WD,oje,25,37,15,1);Leb=OC(GC(WD,1),oje,25,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]);Meb=KC(XD,Sje,25,37,14,1);for(a=2;a<=36;a++){Keb[a]=QD($wnd.Math.pow(a,Jeb[a]));Meb[a]=Abb(rie,Keb[a])}} +function pfd(a){var b;if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i!=1){throw vbb(new Wdb(Tse+(!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i))}b=new s7c;!!btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)),false));!!btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)),true));return b} +function _Mc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(YLc(),XLc)?R_b(b.b):U_b(b.b)):(e=a.a.c==(YLc(),WLc)?R_b(b.b):U_b(b.b));f=false;for(d=new Sr(ur(e.a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);g=Ccb(a.a.f[a.a.g[b.b.p].p]);if(!g&&!OZb(c)&&c.c.i.c==c.d.i.c){continue}if(Ccb(a.a.n[a.a.g[b.b.p].p])||Ccb(a.a.n[a.a.g[b.b.p].p])){continue}f=true;if(Rqb(a.b,a.a.g[TMc(c,b.b).p])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b} +function bed(a,b,c,d,e){var f,g,h,i,j,k,l;mmb();Okb(a,new Red);h=new Bib(a,0);l=new Rkb;f=0;while(h.b<h.d.gc()){g=(sCb(h.b<h.d.gc()),BD(h.d.Xb(h.c=h.b++),157));if(l.c.length!=0&&red(g)*qed(g)>f*2){k=new wed(l);j=red(g)/qed(g);i=fed(k,b,new p0b,c,d,e,j);P6c(X6c(k.e),i);l.c=KC(SI,Uhe,1,0,5,1);f=0;l.c[l.c.length]=k;l.c[l.c.length]=g;f=red(k)*qed(k)+red(g)*qed(g)}else{l.c[l.c.length]=g;f+=red(g)*qed(g)}}return l} +function qwd(a,b,c){var d,e,f,g,h,i,j;d=c.gc();if(d==0){return false}else{if(a.ej()){i=a.fj();zvd(a,b,c);g=d==1?a.Zi(3,null,c.Kc().Pb(),b,i):a.Zi(5,null,c,b,i);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e<f;++e){j=a.Oi(e);h=a.cj(j,h);h=h}if(!h){a.$i(g)}else{h.Ei(g);h.Fi()}}else{a.$i(g)}}else{zvd(a,b,c);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e<f;++e){h=a.cj(a.Oi(e),h)}!!h&&h.Fi()}}return true}} +function wwd(a,b,c){var d,e,f,g,h;if(a.ej()){e=null;f=a.fj();d=a.Zi(1,h=(g=a.Ui(b,a.oi(b,c)),g),c,b,f);if(a.bj()&&!(a.ni()&&!!h?pb(h,c):PD(h)===PD(c))){!!h&&(e=a.dj(h,e));e=a.cj(c,e);if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}return h}else{h=(g=a.Ui(b,a.oi(b,c)),g);if(a.bj()&&!(a.ni()&&!!h?pb(h,c):PD(h)===PD(c))){e=null;!!h&&(e=a.dj(h,null));e=a.cj(c,e);!!e&&e.Fi()}return h}} +function rRb(a,b){var c,d,e,f,g,h,i,j,k;a.e=b;a.f=BD(vNb(b,(HSb(),GSb)),230);iRb(b);a.d=$wnd.Math.max(b.e.c.length*16+b.c.c.length,256);if(!Ccb(DD(vNb(b,(wSb(),dSb))))){k=a.e.e.c.length;for(i=new olb(b.e);i.a<i.c.c.length;){h=BD(mlb(i),144);j=h.d;j.a=Aub(a.f)*k;j.b=Aub(a.f)*k}}c=b.b;for(f=new olb(b.c);f.a<f.c.c.length;){e=BD(mlb(f),282);d=BD(vNb(e,rSb),19).a;if(d>0){for(g=0;g<d;g++){Ekb(c,new aRb(e))}cRb(e)}}} +function zac(a,b){var c,d,e,f,g,h;if(a.k==(j0b(),f0b)){c=WAb(JAb(BD(vNb(a,(wtc(),ktc)),15).Oc(),new Xxb(new Kac))).sd((EAb(),DAb))?b:(rbd(),pbd);yNb(a,Ssc,c);if(c!=(rbd(),obd)){d=BD(vNb(a,$sc),17);h=Edb(ED(vNb(d,(Nyc(),Zwc))));g=0;if(c==nbd){g=a.o.b-$wnd.Math.ceil(h/2)}else if(c==pbd){a.o.b-=Edb(ED(vNb(Q_b(a),nyc)));g=(a.o.b-$wnd.Math.ceil(h))/2}for(f=new olb(a.j);f.a<f.c.c.length;){e=BD(mlb(f),11);e.n.b=g}}}} +function Uge(){Uge=ccb;g5d();Tge=new Vge;OC(GC(w5,2),nie,368,0,[OC(GC(w5,1),Axe,592,0,[new Rge(Xwe)])]);OC(GC(w5,2),nie,368,0,[OC(GC(w5,1),Axe,592,0,[new Rge(Ywe)])]);OC(GC(w5,2),nie,368,0,[OC(GC(w5,1),Axe,592,0,[new Rge(Zwe)]),OC(GC(w5,1),Axe,592,0,[new Rge(Ywe)])]);new Ygb('-1');OC(GC(w5,2),nie,368,0,[OC(GC(w5,1),Axe,592,0,[new Rge('\\c+')])]);new Ygb('0');new Ygb('0');new Ygb('1');new Ygb('0');new Ygb(hxe)} +function KQd(a){var b,c;if(!!a.c&&a.c.kh()){c=BD(a.c,49);a.c=BD(xid(a,c),138);if(a.c!=c){(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,2,c,a.c));if(JD(a.Cb,399)){a.Db>>16==-15&&a.Cb.nh()&&Rwd(new oSd(a.Cb,9,13,c,a.c,HLd(QSd(BD(a.Cb,59)),a)))}else if(JD(a.Cb,88)){if(a.Db>>16==-23&&a.Cb.nh()){b=a.c;JD(b,88)||(b=(jGd(),_Fd));JD(c,88)||(c=(jGd(),_Fd));Rwd(new oSd(a.Cb,9,10,c,b,HLd(VKd(BD(a.Cb,26)),a)))}}}}return a.c} +function f7b(a,b){var c,d,e,f,g,h,i,j,k,l;Odd(b,'Hypernodes processing',1);for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),29);for(h=new olb(d.a);h.a<h.c.c.length;){g=BD(mlb(h),10);if(Ccb(DD(vNb(g,(Nyc(),exc))))&&g.j.c.length<=2){l=0;k=0;c=0;f=0;for(j=new olb(g.j);j.a<j.c.c.length;){i=BD(mlb(j),11);switch(i.j.g){case 1:++l;break;case 2:++k;break;case 3:++c;break;case 4:++f;}}l==0&&c==0&&e7b(a,g,f<=k)}}}Qdd(b)} +function i7b(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Layer constraint edge reversal',1);for(g=new olb(a.b);g.a<g.c.c.length;){f=BD(mlb(g),29);k=-1;c=new Rkb;j=l_b(f.a);for(e=0;e<j.length;e++){d=BD(vNb(j[e],(wtc(),Osc)),303);if(k==-1){d!=(esc(),dsc)&&(k=e)}else{if(d==(esc(),dsc)){$_b(j[e],null);Z_b(j[e],k++,f)}}d==(esc(),bsc)&&Ekb(c,j[e])}for(i=new olb(c);i.a<i.c.c.length;){h=BD(mlb(i),10);$_b(h,null);$_b(h,f)}}Qdd(b)} +function W6b(a,b,c){var d,e,f,g,h,i,j,k,l;Odd(c,'Hyperedge merging',1);U6b(a,b);i=new Bib(b.b,0);while(i.b<i.d.gc()){h=(sCb(i.b<i.d.gc()),BD(i.d.Xb(i.c=i.b++),29));k=h.a;if(k.c.length==0){continue}d=null;e=null;f=null;g=null;for(j=0;j<k.c.length;j++){d=(tCb(j,k.c.length),BD(k.c[j],10));e=d.k;if(e==(j0b(),g0b)&&g==g0b){l=S6b(d,f);if(l.a){V6b(d,f,l.b,l.c);tCb(j,k.c.length);cCb(k.c,j,1);--j;d=f;e=g}}f=d;g=e}}Qdd(c)} +function WFc(a,b){var c,d,e;d=Cub(a.d,1)!=0;!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,mtc)))||PD(vNb(b.j,(Nyc(),ywc)))===PD((tAc(),rAc))?b.c.Tf(b.e,d):(d=Ccb(DD(vNb(b.j,Jsc))));dGc(a,b,d,true);Ccb(DD(vNb(b.j,mtc)))&&yNb(b.j,mtc,(Bcb(),false));if(Ccb(DD(vNb(b.j,Jsc)))){yNb(b.j,Jsc,(Bcb(),false));yNb(b.j,mtc,true)}c=OFc(a,b);do{$Fc(a);if(c==0){return 0}d=!d;e=c;dGc(a,b,d,false);c=OFc(a,b)}while(e>c);return e} +function XFc(a,b){var c,d,e;d=Cub(a.d,1)!=0;!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,mtc)))||PD(vNb(b.j,(Nyc(),ywc)))===PD((tAc(),rAc))?b.c.Tf(b.e,d):(d=Ccb(DD(vNb(b.j,Jsc))));dGc(a,b,d,true);Ccb(DD(vNb(b.j,mtc)))&&yNb(b.j,mtc,(Bcb(),false));if(Ccb(DD(vNb(b.j,Jsc)))){yNb(b.j,Jsc,(Bcb(),false));yNb(b.j,mtc,true)}c=NFc(a,b);do{$Fc(a);if(c==0){return 0}d=!d;e=c;dGc(a,b,d,false);c=NFc(a,b)}while(e>c);return e} +function uNd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(b==c){return true}else{b=vNd(a,b);c=vNd(a,c);d=JQd(b);if(d){k=JQd(c);if(k!=d){if(!k){return false}else{i=d.Dj();o=k.Dj();return i==o&&i!=null}}else{g=(!b.d&&(b.d=new xMd(j5,b,1)),b.d);f=g.i;m=(!c.d&&(c.d=new xMd(j5,c,1)),c.d);if(f==m.i){for(j=0;j<f;++j){e=BD(qud(g,j),87);l=BD(qud(m,j),87);if(!uNd(a,e,l)){return false}}}return true}}else{h=b.e;n=c.e;return h==n}}} +function X2d(a,b,c,d){var e,f,g,h,i,j,k,l;if(T6d(a.e,b)){l=S6d(a.e.Tg(),b);f=BD(a.g,119);k=null;i=-1;h=-1;e=0;for(j=0;j<a.i;++j){g=f[j];if(l.rl(g.ak())){e==c&&(i=j);if(e==d){h=j;k=g.dd()}++e}}if(i==-1){throw vbb(new qcb(lue+c+mue+e))}if(h==-1){throw vbb(new qcb(nue+d+mue+e))}Wxd(a,i,h);oid(a.e)&&GLd(a,H2d(a,7,b,meb(d),k,c,true));return k}else{throw vbb(new Wdb('The feature must be many-valued to support move'))}} +function b_b(a,b,c,d){var e,f,g,h,i;i=new g7c(b.n);i.a+=b.o.a/2;i.b+=b.o.b/2;h=Edb(ED(vNb(b,(Nyc(),Uxc))));f=a.f;g=a.d;e=a.c;switch(BD(vNb(b,(wtc(),Hsc)),61).g){case 1:i.a+=g.b+e.a-c/2;i.b=-d-h;b.n.b=-(g.d+h+e.b);break;case 2:i.a=f.a+g.b+g.c+h;i.b+=g.d+e.b-d/2;b.n.a=f.a+g.c+h-e.a;break;case 3:i.a+=g.b+e.a-c/2;i.b=f.b+g.d+g.a+h;b.n.b=f.b+g.a+h-e.b;break;case 4:i.a=-c-h;i.b+=g.d+e.b-d/2;b.n.a=-(g.b+h+e.a);}return i} +function P1b(a){var b,c,d,e,f,g;d=new XZb;tNb(d,a);PD(vNb(d,(Nyc(),Lwc)))===PD((ead(),cad))&&yNb(d,Lwc,a_b(d));if(vNb(d,(g6c(),f6c))==null){g=BD(m6d(a),160);yNb(d,f6c,RD(g.We(f6c)))}yNb(d,(wtc(),$sc),a);yNb(d,Ksc,(b=BD(gdb(PW),9),new xqb(b,BD(_Bb(b,b.length),9),0)));e=OGb((!Xod(a)?null:(Pgd(),new bhd(Xod(a))),Pgd(),new hhd(!Xod(a)?null:new bhd(Xod(a)),a)),bad);f=BD(vNb(d,Kxc),116);c=d.d;t_b(c,f);t_b(c,e);return d} +function ybc(a,b,c){var d,e;d=b.c.i;e=c.d.i;if(d.k==(j0b(),g0b)){yNb(a,(wtc(),Vsc),BD(vNb(d,Vsc),11));yNb(a,Wsc,BD(vNb(d,Wsc),11));yNb(a,Usc,DD(vNb(d,Usc)))}else if(d.k==f0b){yNb(a,(wtc(),Vsc),BD(vNb(d,Vsc),11));yNb(a,Wsc,BD(vNb(d,Wsc),11));yNb(a,Usc,(Bcb(),true))}else if(e.k==f0b){yNb(a,(wtc(),Vsc),BD(vNb(e,Vsc),11));yNb(a,Wsc,BD(vNb(e,Wsc),11));yNb(a,Usc,(Bcb(),true))}else{yNb(a,(wtc(),Vsc),b.c);yNb(a,Wsc,c.d)}} +function FGb(a){var b,c,d,e,f,g,h;a.o=new jkb;d=new Psb;for(g=new olb(a.e.a);g.a<g.c.c.length;){f=BD(mlb(g),121);LFb(f).c.length==1&&(Gsb(d,f,d.c.b,d.c),true)}while(d.b!=0){f=BD(d.b==0?null:(sCb(d.b!=0),Nsb(d,d.a.a)),121);if(LFb(f).c.length==0){continue}b=BD(Ikb(LFb(f),0),213);c=f.g.a.c.length>0;h=xFb(b,f);c?OFb(h.b,b):OFb(h.g,b);LFb(h).c.length==1&&(Gsb(d,h,d.c.b,d.c),true);e=new vgd(f,b);Wjb(a.o,e);Lkb(a.e.a,f)}} +function _Nb(a,b){var c,d,e,f,g,h,i;d=$wnd.Math.abs(D6c(a.b).a-D6c(b.b).a);h=$wnd.Math.abs(D6c(a.b).b-D6c(b.b).b);e=0;i=0;c=1;g=1;if(d>a.b.b/2+b.b.b/2){e=$wnd.Math.min($wnd.Math.abs(a.b.c-(b.b.c+b.b.b)),$wnd.Math.abs(a.b.c+a.b.b-b.b.c));c=1-e/d}if(h>a.b.a/2+b.b.a/2){i=$wnd.Math.min($wnd.Math.abs(a.b.d-(b.b.d+b.b.a)),$wnd.Math.abs(a.b.d+a.b.a-b.b.d));g=1-i/h}f=$wnd.Math.min(c,g);return (1-f)*$wnd.Math.sqrt(d*d+h*h)} +function lQc(a){var b,c,d,e;nQc(a,a.e,a.f,(FQc(),DQc),true,a.c,a.i);nQc(a,a.e,a.f,DQc,false,a.c,a.i);nQc(a,a.e,a.f,EQc,true,a.c,a.i);nQc(a,a.e,a.f,EQc,false,a.c,a.i);mQc(a,a.c,a.e,a.f,a.i);d=new Bib(a.i,0);while(d.b<d.d.gc()){b=(sCb(d.b<d.d.gc()),BD(d.d.Xb(d.c=d.b++),128));e=new Bib(a.i,d.b);while(e.b<e.d.gc()){c=(sCb(e.b<e.d.gc()),BD(e.d.Xb(e.c=e.b++),128));kQc(b,c)}}wQc(a.i,BD(vNb(a.d,(wtc(),jtc)),230));zQc(a.i)} +function fKd(a,b){var c,d;if(b!=null){d=dKd(a);if(d){if((d.i&1)!=0){if(d==sbb){return KD(b)}else if(d==WD){return JD(b,19)}else if(d==VD){return JD(b,155)}else if(d==SD){return JD(b,217)}else if(d==TD){return JD(b,172)}else if(d==UD){return LD(b)}else if(d==rbb){return JD(b,184)}else if(d==XD){return JD(b,162)}}else{return pEd(),c=BD(Ohb(oEd,d),55),!c||c.wj(b)}}else if(JD(b,56)){return a.uk(BD(b,56))}}return false} +function ade(){ade=ccb;var a,b,c,d,e,f,g,h,i;$ce=KC(SD,wte,25,255,15,1);_ce=KC(TD,$ie,25,64,15,1);for(b=0;b<255;b++){$ce[b]=-1}for(c=90;c>=65;c--){$ce[c]=c-65<<24>>24}for(d=122;d>=97;d--){$ce[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){$ce[e]=e-48+52<<24>>24}$ce[43]=62;$ce[47]=63;for(f=0;f<=25;f++)_ce[f]=65+f&aje;for(g=26,i=0;g<=51;++g,i++)_ce[g]=97+i&aje;for(a=52,h=0;a<=61;++a,h++)_ce[a]=48+h&aje;_ce[62]=43;_ce[63]=47} +function FXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.dc()){return new d7c}j=0;l=0;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);f=d.f;j=$wnd.Math.max(j,f.a);l+=f.a*f.b}j=$wnd.Math.max(j,$wnd.Math.sqrt(l)*Edb(ED(vNb(BD(a.Kc().Pb(),37),(Nyc(),owc)))));m=0;n=0;i=0;c=b;for(h=a.Kc();h.Ob();){g=BD(h.Pb(),37);k=g.f;if(m+k.a>j){m=0;n+=i+b;i=0}uXb(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new f7c(c+b,n+i+b)} +function mQc(a,b,c,d,e){var f,g,h,i,j,k,l;for(g=new olb(b);g.a<g.c.c.length;){f=BD(mlb(g),17);i=f.c;if(c.a._b(i)){j=(FQc(),DQc)}else if(d.a._b(i)){j=(FQc(),EQc)}else{throw vbb(new Wdb('Source port must be in one of the port sets.'))}k=f.d;if(c.a._b(k)){l=(FQc(),DQc)}else if(d.a._b(k)){l=(FQc(),EQc)}else{throw vbb(new Wdb('Target port must be in one of the port sets.'))}h=new YQc(f,j,l);Rhb(a.b,f,h);e.c[e.c.length]=h}} +function lfd(a,b){var c,d,e,f,g,h,i;if(!mpd(a)){throw vbb(new Zdb(Sse))}d=mpd(a);f=d.g;e=d.f;if(f<=0&&e<=0){return Ucd(),Scd}h=a.i;i=a.j;switch(b.g){case 2:case 1:if(h<0){return Ucd(),Tcd}else if(h+a.g>f){return Ucd(),zcd}break;case 4:case 3:if(i<0){return Ucd(),Acd}else if(i+a.f>e){return Ucd(),Rcd}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(Ucd(),Tcd):g+c>=1&&g-c>=0?(Ucd(),zcd):c<0.5?(Ucd(),Acd):(Ucd(),Rcd)} +function vhb(a,b,c,d,e){var f,g;f=wbb(xbb(b[0],Yje),xbb(d[0],Yje));a[0]=Tbb(f);f=Obb(f,32);if(c>=e){for(g=1;g<e;g++){f=wbb(f,wbb(xbb(b[g],Yje),xbb(d[g],Yje)));a[g]=Tbb(f);f=Obb(f,32)}for(;g<c;g++){f=wbb(f,xbb(b[g],Yje));a[g]=Tbb(f);f=Obb(f,32)}}else{for(g=1;g<c;g++){f=wbb(f,wbb(xbb(b[g],Yje),xbb(d[g],Yje)));a[g]=Tbb(f);f=Obb(f,32)}for(;g<e;g++){f=wbb(f,xbb(d[g],Yje));a[g]=Tbb(f);f=Obb(f,32)}}ybb(f,0)!=0&&(a[g]=Tbb(f))} +function _fe(a){wfe();var b,c,d,e,f,g;if(a.e!=4&&a.e!=5)throw vbb(new Wdb('Token#complementRanges(): must be RANGE: '+a.e));f=a;Yfe(f);Vfe(f);d=f.b.length+2;f.b[0]==0&&(d-=2);c=f.b[f.b.length-1];c==lxe&&(d-=2);e=(++vfe,new $fe(4));e.b=KC(WD,oje,25,d,15,1);g=0;if(f.b[0]>0){e.b[g++]=0;e.b[g++]=f.b[0]-1}for(b=1;b<f.b.length-2;b+=2){e.b[g++]=f.b[b]+1;e.b[g++]=f.b[b+1]-1}if(c!=lxe){e.b[g++]=c+1;e.b[g]=lxe}e.a=true;return e} +function Pxd(a,b,c){var d,e,f,g,h,i,j,k;d=c.gc();if(d==0){return false}else{if(a.ej()){j=a.fj();iud(a,b,c);g=d==1?a.Zi(3,null,c.Kc().Pb(),b,j):a.Zi(5,null,c,b,j);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e<f;++e){k=a.g[e];h=a.cj(k,h);h=a.jj(k,h)}if(!h){a.$i(g)}else{h.Ei(g);h.Fi()}}else{a.$i(g)}}else{iud(a,b,c);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e<f;++e){i=a.g[e];h=a.cj(i,h)}!!h&&h.Fi()}}return true}} +function YNc(a,b,c,d){var e,f,g,h,i;for(g=new olb(a.k);g.a<g.c.c.length;){e=BD(mlb(g),129);if(!d||e.c==(HOc(),FOc)){i=e.b;if(i.g<0&&e.d>0){pOc(i,i.d-e.d);e.c==(HOc(),FOc)&&nOc(i,i.a-e.d);i.d<=0&&i.i>0&&(Gsb(b,i,b.c.b,b.c),true)}}}for(f=new olb(a.f);f.a<f.c.c.length;){e=BD(mlb(f),129);if(!d||e.c==(HOc(),FOc)){h=e.a;if(h.g<0&&e.d>0){qOc(h,h.i-e.d);e.c==(HOc(),FOc)&&oOc(h,h.b-e.d);h.i<=0&&h.d>0&&(Gsb(c,h,c.c.b,c.c),true)}}}} +function gSc(a,b,c){var d,e,f,g,h,i,j,k;Odd(c,'Processor compute fanout',1);Uhb(a.b);Uhb(a.a);h=null;f=Jsb(b.b,0);while(!h&&f.b!=f.d.c){j=BD(Xsb(f),86);Ccb(DD(vNb(j,(mTc(),jTc))))&&(h=j)}i=new Psb;Gsb(i,h,i.c.b,i.c);fSc(a,i);for(k=Jsb(b.b,0);k.b!=k.d.c;){j=BD(Xsb(k),86);g=GD(vNb(j,(mTc(),$Sc)));e=Phb(a.b,g)!=null?BD(Phb(a.b,g),19).a:0;yNb(j,ZSc,meb(e));d=1+(Phb(a.a,g)!=null?BD(Phb(a.a,g),19).a:0);yNb(j,XSc,meb(d))}Qdd(c)} +function WPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o;m=VPc(a,c);for(i=0;i<b;i++){Aib(e,c);n=new Rkb;o=(sCb(d.b<d.d.gc()),BD(d.d.Xb(d.c=d.b++),407));for(k=m+i;k<a.b;k++){h=o;o=(sCb(d.b<d.d.gc()),BD(d.d.Xb(d.c=d.b++),407));Ekb(n,new aQc(h,o,c))}for(l=m+i;l<a.b;l++){sCb(d.b>0);d.a.Xb(d.c=--d.b);l>m+i&&uib(d)}for(g=new olb(n);g.a<g.c.c.length;){f=BD(mlb(g),407);Aib(d,f)}if(i<b-1){for(j=m+i;j<a.b;j++){sCb(d.b>0);d.a.Xb(d.c=--d.b)}}}} +function Jfe(){wfe();var a,b,c,d,e,f;if(gfe)return gfe;a=(++vfe,new $fe(4));Xfe(a,Kfe(vxe,true));Zfe(a,Kfe('M',true));Zfe(a,Kfe('C',true));f=(++vfe,new $fe(4));for(d=0;d<11;d++){Ufe(f,d,d)}b=(++vfe,new $fe(4));Xfe(b,Kfe('M',true));Ufe(b,4448,4607);Ufe(b,65438,65439);e=(++vfe,new Lge(2));Kge(e,a);Kge(e,ffe);c=(++vfe,new Lge(2));c.$l(Bfe(f,Kfe('L',true)));c.$l(b);c=(++vfe,new lge(3,c));c=(++vfe,new rge(e,c));gfe=c;return gfe} +function S3c(a){var b,c;b=GD(hkd(a,(Y9c(),o8c)));if(T3c(b,a)){return}if(!ikd(a,F9c)&&((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i!=0||Ccb(DD(hkd(a,M8c))))){if(b==null||ufb(b).length==0){if(!T3c(sne,a)){c=Qfb(Qfb(new Wfb('Unable to load default layout algorithm '),sne),' for unconfigured node ');yfd(a,c);throw vbb(new y2c(c.a))}}else{c=Qfb(Qfb(new Wfb("Layout algorithm '"),b),"' not found for ");yfd(a,c);throw vbb(new y2c(c.a))}}} +function hIb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;c=a.i;b=a.n;if(a.b==0){n=c.c+b.b;m=c.b-b.b-b.c;for(g=a.a,i=0,k=g.length;i<k;++i){e=g[i];mHb(e,n,m)}}else{d=kIb(a,false);mHb(a.a[0],c.c+b.b,d[0]);mHb(a.a[2],c.c+c.b-b.c-d[2],d[2]);l=c.b-b.b-b.c;if(d[0]>0){l-=d[0]+a.c;d[0]+=a.c}d[2]>0&&(l-=d[2]+a.c);d[1]=$wnd.Math.max(d[1],l);mHb(a.a[1],c.c+b.b+d[0]-(d[1]-l)/2,d[1])}for(f=a.a,h=0,j=f.length;h<j;++h){e=f[h];JD(e,326)&&BD(e,326).Te()}} +function KMc(a){var b,c,d,e,f,g,h,i,j,k,l;l=new JMc;l.d=0;for(g=new olb(a.b);g.a<g.c.c.length;){f=BD(mlb(g),29);l.d+=f.a.c.length}d=0;e=0;l.a=KC(WD,oje,25,a.b.c.length,15,1);j=0;k=0;l.e=KC(WD,oje,25,l.d,15,1);for(c=new olb(a.b);c.a<c.c.c.length;){b=BD(mlb(c),29);b.p=d++;l.a[b.p]=e++;k=0;for(i=new olb(b.a);i.a<i.c.c.length;){h=BD(mlb(i),10);h.p=j++;l.e[h.p]=k++}}l.c=new OMc(l);l.b=Pu(l.d);LMc(l,a);l.f=Pu(l.d);MMc(l,a);return l} +function GZc(a,b){var c,d,e,f;f=BD(Ikb(a.n,a.n.c.length-1),211).d;a.p=$wnd.Math.min(a.p,b.g);a.r=$wnd.Math.max(a.r,f);a.g=$wnd.Math.max(a.g,b.g+(a.b.c.length==1?0:a.i));a.o=$wnd.Math.min(a.o,b.f);a.e+=b.f+(a.b.c.length==1?0:a.i);a.f=$wnd.Math.max(a.f,b.f);e=a.n.c.length>0?(a.n.c.length-1)*a.i:0;for(d=new olb(a.n);d.a<d.c.c.length;){c=BD(mlb(d),211);e+=c.a}a.d=e;a.a=a.e/a.b.c.length-a.i*((a.b.c.length-1)/a.b.c.length);u$c(a.j)} +function LQb(a,b){var c,d,e,f,g,h,i,j,k,l;k=DD(vNb(b,(wSb(),sSb)));if(k==null||(uCb(k),k)){l=KC(sbb,dle,25,b.e.c.length,16,1);g=HQb(b);e=new Psb;for(j=new olb(b.e);j.a<j.c.c.length;){h=BD(mlb(j),144);c=IQb(a,h,null,null,l,g);if(c){tNb(c,b);Gsb(e,c,e.c.b,e.c)}}if(e.b>1){for(d=Jsb(e,0);d.b!=d.d.c;){c=BD(Xsb(d),231);f=0;for(i=new olb(c.e);i.a<i.c.c.length;){h=BD(mlb(i),144);h.b=f++}}}return e}return Ou(OC(GC($O,1),fme,231,0,[b]))} +function TKd(a){var b,c,d,e,f,g,h;if(!a.g){h=new zNd;b=KKd;g=b.a.zc(a,b);if(g==null){for(d=new Fyd(_Kd(a));d.e!=d.i.gc();){c=BD(Dyd(d),26);ytd(h,TKd(c))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}e=h.i;for(f=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));f.e!=f.i.gc();++e){bJd(BD(Dyd(f),449),e)}ytd(h,(!a.s&&(a.s=new cUd(t5,a,21,17)),a.s));vud(h);a.g=new rNd(a,h);a.i=BD(h.g,247);a.i==null&&(a.i=MKd);a.p=null;$Kd(a).b&=-5}return a.g} +function iIb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;d=a.i;c=a.n;if(a.b==0){b=jIb(a,false);nHb(a.a[0],d.d+c.d,b[0]);nHb(a.a[2],d.d+d.a-c.a-b[2],b[2]);m=d.a-c.d-c.a;l=m;if(b[0]>0){b[0]+=a.c;l-=b[0]}b[2]>0&&(l-=b[2]+a.c);b[1]=$wnd.Math.max(b[1],l);nHb(a.a[1],d.d+c.d+b[0]-(b[1]-l)/2,b[1])}else{o=d.d+c.d;n=d.a-c.d-c.a;for(g=a.a,i=0,k=g.length;i<k;++i){e=g[i];nHb(e,o,n)}}for(f=a.a,h=0,j=f.length;h<j;++h){e=f[h];JD(e,326)&&BD(e,326).Ue()}} +function boc(a){var b,c,d,e,f,g,h,i,j,k;k=KC(WD,oje,25,a.b.c.length+1,15,1);j=new Tqb;d=0;for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);k[d++]=j.a.gc();for(i=new olb(e.a);i.a<i.c.c.length;){g=BD(mlb(i),10);for(c=new Sr(ur(U_b(g).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);j.a.zc(b,j)}}for(h=new olb(e.a);h.a<h.c.c.length;){g=BD(mlb(h),10);for(c=new Sr(ur(R_b(g).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);j.a.Bc(b)!=null}}}return k} +function F2d(a,b,c,d){var e,f,g,h,i;i=S6d(a.e.Tg(),b);e=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(g=0;g<a.i;++g){f=e[g];if(i.rl(f.ak())&&pb(f,c)){return true}}}else if(c!=null){for(h=0;h<a.i;++h){f=e[h];if(i.rl(f.ak())&&pb(c,f.dd())){return true}}if(d){for(g=0;g<a.i;++g){f=e[g];if(i.rl(f.ak())&&PD(c)===PD(a3d(a,BD(f.dd(),56)))){return true}}}}else{for(g=0;g<a.i;++g){f=e[g];if(i.rl(f.ak())&&f.dd()==null){return false}}}return false} +function e3d(a,b,c,d){var e,f,g,h,i,j;j=S6d(a.e.Tg(),b);g=BD(a.g,119);if(T6d(a.e,b)){if(b.hi()){f=M2d(a,b,d,JD(b,99)&&(BD(b,18).Bb&Tje)!=0);if(f>=0&&f!=c){throw vbb(new Wdb(kue))}}e=0;for(i=0;i<a.i;++i){h=g[i];if(j.rl(h.ak())){if(e==c){return BD(Gtd(a,i,(Q6d(),BD(b,66).Oj()?BD(d,72):R6d(b,d))),72)}++e}}throw vbb(new qcb(gve+c+mue+e))}else{for(i=0;i<a.i;++i){h=g[i];if(j.rl(h.ak())){return Q6d(),BD(b,66).Oj()?h:h.dd()}}return null}} +function ONb(a,b,c,d){var e,f,g,h;h=c;for(g=new olb(b.a);g.a<g.c.c.length;){f=BD(mlb(g),221);e=BD(f.b,65);if(Jy(a.b.c,e.b.c+e.b.b)<=0&&Jy(e.b.c,a.b.c+a.b.b)<=0&&Jy(a.b.d,e.b.d+e.b.a)<=0&&Jy(e.b.d,a.b.d+a.b.a)<=0){if(Jy(e.b.c,a.b.c+a.b.b)==0&&d.a<0||Jy(e.b.c+e.b.b,a.b.c)==0&&d.a>0||Jy(e.b.d,a.b.d+a.b.a)==0&&d.b<0||Jy(e.b.d+e.b.a,a.b.d)==0&&d.b>0){h=0;break}}else{h=$wnd.Math.min(h,YNb(a,e,d))}h=$wnd.Math.min(h,ONb(a,f,h,d))}return h} +function ifd(a,b){var c,d,e,f,g,h,i;if(a.b<2){throw vbb(new Wdb('The vector chain must contain at least a source and a target point.'))}e=(sCb(a.b!=0),BD(a.a.a.c,8));nmd(b,e.a,e.b);i=new Oyd((!b.a&&(b.a=new xMd(y2,b,5)),b.a));g=Jsb(a,1);while(g.a<a.b-1){h=BD(Xsb(g),8);if(i.e!=i.i.gc()){c=BD(Dyd(i),469)}else{c=(Fhd(),d=new xkd,d);Myd(i,c)}ukd(c,h.a,h.b)}while(i.e!=i.i.gc()){Dyd(i);Eyd(i)}f=(sCb(a.b!=0),BD(a.c.b.c,8));gmd(b,f.a,f.b)} +function $lc(a,b){var c,d,e,f,g,h,i,j,k;c=0;for(e=new olb((tCb(0,a.c.length),BD(a.c[0],101)).g.b.j);e.a<e.c.c.length;){d=BD(mlb(e),11);d.p=c++}b==(Ucd(),Acd)?Okb(a,new gmc):Okb(a,new kmc);h=0;k=a.c.length-1;while(h<k){g=(tCb(h,a.c.length),BD(a.c[h],101));j=(tCb(k,a.c.length),BD(a.c[k],101));f=b==Acd?g.c:g.a;i=b==Acd?j.a:j.c;amc(g,b,(Ajc(),yjc),f);amc(j,b,xjc,i);++h;--k}h==k&&amc((tCb(h,a.c.length),BD(a.c[h],101)),b,(Ajc(),wjc),null)} +function UVc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;l=a.a.i+a.a.g/2;m=a.a.i+a.a.g/2;o=b.i+b.g/2;q=b.j+b.f/2;h=new f7c(o,q);j=BD(hkd(b,(Y9c(),C9c)),8);j.a=j.a+l;j.b=j.b+m;f=(h.b-j.b)/(h.a-j.a);d=h.b-f*h.a;p=c.i+c.g/2;r=c.j+c.f/2;i=new f7c(p,r);k=BD(hkd(c,C9c),8);k.a=k.a+l;k.b=k.b+m;g=(i.b-k.b)/(i.a-k.a);e=i.b-g*i.a;n=(d-e)/(g-f);if(j.a<n&&h.a<n||n<j.a&&n<h.a){return false}else if(k.a<n&&i.a<n||n<k.a&&n<i.a){return false}return true} +function gqd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;m=BD(Ohb(a.c,b),183);if(!m){throw vbb(new cqd('Edge did not exist in input.'))}j=Wpd(m);f=Fhe((!b.a&&(b.a=new cUd(A2,b,6,6)),b.a));h=!f;if(h){n=new wB;c=new Rrd(a,j,n);Dhe((!b.a&&(b.a=new cUd(A2,b,6,6)),b.a),c);cC(m,Nte,n)}e=ikd(b,(Y9c(),Q8c));if(e){k=BD(hkd(b,Q8c),74);g=!k||Ehe(k);i=!g;if(i){l=new wB;d=new Zrd(l);reb(k,d);cC(m,'junctionPoints',l)}}Upd(m,'container',Mld(b).k);return null} +function eDb(a,b,c){var d,e,f,g,h,i,j,k;this.a=a;this.b=b;this.c=c;this.e=Ou(OC(GC(GM,1),Uhe,168,0,[new aDb(a,b),new aDb(b,c),new aDb(c,a)]));this.f=Ou(OC(GC(m1,1),nie,8,0,[a,b,c]));this.d=(d=c7c(R6c(this.b),this.a),e=c7c(R6c(this.c),this.a),f=c7c(R6c(this.c),this.b),g=d.a*(this.a.a+this.b.a)+d.b*(this.a.b+this.b.b),h=e.a*(this.a.a+this.c.a)+e.b*(this.a.b+this.c.b),i=2*(d.a*f.b-d.b*f.a),j=(e.b*g-d.b*h)/i,k=(d.a*h-e.a*g)/i,new f7c(j,k))} +function nvd(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;m=new yC(a.p);cC(b,fue,m);if(c&&!(!a.f?null:vmb(a.f)).a.dc()){k=new wB;cC(b,'logs',k);h=0;for(o=new Dnb((!a.f?null:vmb(a.f)).b.Kc());o.b.Ob();){n=GD(o.b.Pb());l=new yC(n);tB(k,h);vB(k,h,l);++h}}if(d){j=new TB(a.q);cC(b,'executionTime',j)}if(!vmb(a.a).a.dc()){g=new wB;cC(b,Jte,g);h=0;for(f=new Dnb(vmb(a.a).b.Kc());f.b.Ob();){e=BD(f.b.Pb(),1949);i=new eC;tB(g,h);vB(g,h,i);nvd(e,i,c,d);++h}}} +function PZb(a,b){var c,d,e,f,g,h;f=a.c;g=a.d;QZb(a,null);RZb(a,null);b&&Ccb(DD(vNb(g,(wtc(),Msc))))?QZb(a,i_b(g.i,(KAc(),IAc),(Ucd(),zcd))):QZb(a,g);b&&Ccb(DD(vNb(f,(wtc(),etc))))?RZb(a,i_b(f.i,(KAc(),HAc),(Ucd(),Tcd))):RZb(a,f);for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),70);e=BD(vNb(c,(Nyc(),Qwc)),272);e==(qad(),pad)?yNb(c,Qwc,oad):e==oad&&yNb(c,Qwc,pad)}h=Ccb(DD(vNb(a,(wtc(),ltc))));yNb(a,ltc,(Bcb(),h?false:true));a.a=w7c(a.a)} +function VQb(a,b,c){var d,e,f,g,h,i;d=0;for(f=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));f.e!=f.i.gc();){e=BD(Dyd(f),33);g='';(!e.n&&(e.n=new cUd(D2,e,1,7)),e.n).i==0||(g=BD(qud((!e.n&&(e.n=new cUd(D2,e,1,7)),e.n),0),137).a);h=new pRb(g);tNb(h,e);yNb(h,(HSb(),FSb),e);h.b=d++;h.d.a=e.i+e.g/2;h.d.b=e.j+e.f/2;h.e.a=$wnd.Math.max(e.g,1);h.e.b=$wnd.Math.max(e.f,1);Ekb(b.e,h);jrb(c.f,e,h);i=BD(hkd(e,(wSb(),mSb)),98);i==(dcd(),ccd)&&(i=bcd)}} +function XJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;c=nGb(new pGb,a.f);j=a.i[b.c.i.p];n=a.i[b.d.i.p];i=b.c;m=b.d;h=i.a.b;l=m.a.b;j.b||(h+=i.n.b);n.b||(l+=m.n.b);k=QD($wnd.Math.max(0,h-l));g=QD($wnd.Math.max(0,l-h));o=(p=$wnd.Math.max(1,BD(vNb(b,(Nyc(),eyc)),19).a),q=JJc(b.c.i.k,b.d.i.k),p*q);e=AFb(DFb(CFb(BFb(EFb(new FFb,o),g),c),BD(Ohb(a.k,b.c),121)));f=AFb(DFb(CFb(BFb(EFb(new FFb,o),k),c),BD(Ohb(a.k,b.d),121)));d=new qKc(e,f);a.c[b.p]=d} +function NEc(a,b,c,d){var e,f,g,h,i,j;g=new _Ec(a,b,c);i=new Bib(d,0);e=false;while(i.b<i.d.gc()){h=(sCb(i.b<i.d.gc()),BD(i.d.Xb(i.c=i.b++),233));if(h==b||h==c){uib(i)}else if(!e&&Edb(REc(h.g,h.d[0]).a)>Edb(REc(g.g,g.d[0]).a)){sCb(i.b>0);i.a.Xb(i.c=--i.b);Aib(i,g);e=true}else if(!!h.e&&h.e.gc()>0){f=(!h.e&&(h.e=new Rkb),h.e).Mc(b);j=(!h.e&&(h.e=new Rkb),h.e).Mc(c);if(f||j){(!h.e&&(h.e=new Rkb),h.e).Fc(g);++g.c}}}e||(d.c[d.c.length]=g,true)} +function odc(a){var b,c,d;if(fcd(BD(vNb(a,(Nyc(),Vxc)),98))){for(c=new olb(a.j);c.a<c.c.c.length;){b=BD(mlb(c),11);b.j==(Ucd(),Scd)&&(d=BD(vNb(b,(wtc(),gtc)),10),d?G0b(b,BD(vNb(d,Hsc),61)):b.e.c.length-b.g.c.length<0?G0b(b,zcd):G0b(b,Tcd))}}else{for(c=new olb(a.j);c.a<c.c.c.length;){b=BD(mlb(c),11);d=BD(vNb(b,(wtc(),gtc)),10);d?G0b(b,BD(vNb(d,Hsc),61)):b.e.c.length-b.g.c.length<0?G0b(b,(Ucd(),zcd)):G0b(b,(Ucd(),Tcd))}yNb(a,Vxc,(dcd(),acd))}} +function age(a){var b,c,d;switch(a){case 91:case 93:case 45:case 94:case 44:case 92:d='\\'+String.fromCharCode(a&aje);break;case 12:d='\\f';break;case 10:d='\\n';break;case 13:d='\\r';break;case 9:d='\\t';break;case 27:d='\\e';break;default:if(a<32){c=(b=a>>>0,'0'+b.toString(16));d='\\x'+qfb(c,c.length-2,c.length)}else if(a>=Tje){c=(b=a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+String.fromCharCode(a&aje);}return d} +function yhb(a,b){var c,d,e,f,g,h,i,j,k,l;g=a.e;i=b.e;if(i==0){return a}if(g==0){return b.e==0?b:new Vgb(-b.e,b.d,b.a)}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);g<0&&(c=Jbb(c));i<0&&(d=Jbb(d));return ghb(Qbb(c,d))}e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==-1){l=-i;k=g==i?zhb(b.a,h,a.a,f):uhb(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return Hgb(),Ggb}k=zhb(a.a,f,b.a,h)}else{k=uhb(a.a,f,b.a,h)}}j=new Vgb(l,k.length,k);Jgb(j);return j} +function YPc(a){var b,c,d,e,f,g;this.e=new Rkb;this.a=new Rkb;for(c=a.b-1;c<3;c++){St(a,0,BD(Ut(a,0),8))}if(a.b<4){throw vbb(new Wdb('At (least dimension + 1) control points are necessary!'))}else{this.b=3;this.d=true;this.c=false;TPc(this,a.b+this.b-1);g=new Rkb;f=new olb(this.e);for(b=0;b<this.b-1;b++){Ekb(g,ED(mlb(f)))}for(e=Jsb(a,0);e.b!=e.d.c;){d=BD(Xsb(e),8);Ekb(g,ED(mlb(f)));Ekb(this.a,new bQc(d,g));tCb(0,g.c.length);g.c.splice(0,1)}}} +function Bac(a,b){var c,d,e,f,g,h,i,j,k;for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);for(h=new olb(e.a);h.a<h.c.c.length;){g=BD(mlb(h),10);if(g.k==(j0b(),f0b)){i=(j=BD(Rr(new Sr(ur(R_b(g).a.Kc(),new Sq))),17),k=BD(Rr(new Sr(ur(U_b(g).a.Kc(),new Sq))),17),!Ccb(DD(vNb(j,(wtc(),ltc))))||!Ccb(DD(vNb(k,ltc))))?b:sbd(b);zac(g,i)}for(d=new Sr(ur(U_b(g).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);i=Ccb(DD(vNb(c,(wtc(),ltc))))?sbd(b):b;yac(c,i)}}}} +function yZc(a,b,c,d,e){var f,g,h;if(c.f>=b.o&&c.f<=b.f||b.a*0.5<=c.f&&b.a*1.5>=c.f){g=BD(Ikb(b.n,b.n.c.length-1),211);if(g.e+g.d+c.g+e<=d&&(f=BD(Ikb(b.n,b.n.c.length-1),211),f.f-a.f+c.f<=a.b||a.a.c.length==1)){EZc(b,c);return true}else if(b.s+c.g<=d&&(b.t+b.d+c.f+e<=a.b||a.a.c.length==1)){Ekb(b.b,c);h=BD(Ikb(b.n,b.n.c.length-1),211);Ekb(b.n,new VZc(b.s,h.f+h.a+b.i,b.i));QZc(BD(Ikb(b.n,b.n.c.length-1),211),c);GZc(b,c);return true}}return false} +function Zxd(a,b,c){var d,e,f,g;if(a.ej()){e=null;f=a.fj();d=a.Zi(1,g=uud(a,b,c),c,b,f);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){g!=null&&(e=a.dj(g,e));e=a.cj(c,e);a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}return g}else{g=uud(a,b,c);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){e=null;g!=null&&(e=a.dj(g,null));e=a.cj(c,e);!!e&&e.Fi()}return g}} +function YA(a,b){var c,d,e,f,g,h,i,j;b%=24;if(a.q.getHours()!=b){d=new $wnd.Date(a.q.getTime());d.setDate(d.getDate()+1);h=a.q.getTimezoneOffset()-d.getTimezoneOffset();if(h>0){i=h/60|0;j=h%60;e=a.q.getDate();c=a.q.getHours();c+i>=24&&++e;f=new $wnd.Date(a.q.getFullYear(),a.q.getMonth(),e,b+i,a.q.getMinutes()+j,a.q.getSeconds(),a.q.getMilliseconds());a.q.setTime(f.getTime())}}g=a.q.getTime();a.q.setTime(g+3600000);a.q.getHours()!=b&&a.q.setTime(g)} +function opc(a,b){var c,d,e,f,g;Odd(b,'Path-Like Graph Wrapping',1);if(a.b.c.length==0){Qdd(b);return}e=new Xoc(a);g=(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i)*e.f);c=g/(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i));if(e.b>c){Qdd(b);return}switch(BD(vNb(a,(Nyc(),Gyc)),337).g){case 2:f=new hpc;break;case 0:f=new Ync;break;default:f=new kpc;}d=f.Vf(a,e);if(!f.Wf()){switch(BD(vNb(a,Myc),338).g){case 2:d=tpc(e,d);break;case 1:d=rpc(e,d);}}npc(a,e,d);Qdd(b)} +function MFc(a,b){var c,d,e,f;Fub(a.d,a.e);a.c.a.$b();if(Edb(ED(vNb(b.j,(Nyc(),uwc))))!=0||Edb(ED(vNb(b.j,uwc)))!=0){c=dme;PD(vNb(b.j,ywc))!==PD((tAc(),rAc))&&yNb(b.j,(wtc(),Jsc),(Bcb(),true));f=BD(vNb(b.j,Ayc),19).a;for(e=0;e<f;e++){d=WFc(a,b);if(d<c){c=d;ZFc(a);if(c==0){break}}}}else{c=Ohe;PD(vNb(b.j,ywc))!==PD((tAc(),rAc))&&yNb(b.j,(wtc(),Jsc),(Bcb(),true));f=BD(vNb(b.j,Ayc),19).a;for(e=0;e<f;e++){d=XFc(a,b);if(d<c){c=d;ZFc(a);if(c==0){break}}}}} +function spc(a,b){var c,d,e,f,g,h,i,j;g=new Rkb;h=0;c=0;i=0;while(h<b.c.length-1&&c<a.gc()){d=BD(a.Xb(c),19).a+i;while((tCb(h+1,b.c.length),BD(b.c[h+1],19)).a<d){++h}j=0;f=d-(tCb(h,b.c.length),BD(b.c[h],19)).a;e=(tCb(h+1,b.c.length),BD(b.c[h+1],19)).a-d;f>e&&++j;Ekb(g,(tCb(h+j,b.c.length),BD(b.c[h+j],19)));i+=(tCb(h+j,b.c.length),BD(b.c[h+j],19)).a-d;++c;while(c<a.gc()&&BD(a.Xb(c),19).a+i<=(tCb(h+j,b.c.length),BD(b.c[h+j],19)).a){++c}h+=1+j}return g} +function RKd(a){var b,c,d,e,f,g,h;if(!a.d){h=new XNd;b=KKd;f=b.a.zc(a,b);if(f==null){for(d=new Fyd(_Kd(a));d.e!=d.i.gc();){c=BD(Dyd(d),26);ytd(h,RKd(c))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}g=h.i;for(e=(!a.q&&(a.q=new cUd(n5,a,11,10)),new Fyd(a.q));e.e!=e.i.gc();++g){BD(Dyd(e),399)}ytd(h,(!a.q&&(a.q=new cUd(n5,a,11,10)),a.q));vud(h);a.d=new nNd((BD(qud(ZKd((NFd(),MFd).o),9),18),h.i),h.g);a.e=BD(h.g,673);a.e==null&&(a.e=LKd);$Kd(a).b&=-17}return a.d} +function M2d(a,b,c,d){var e,f,g,h,i,j;j=S6d(a.e.Tg(),b);i=0;e=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(g=0;g<a.i;++g){f=e[g];if(j.rl(f.ak())){if(pb(f,c)){return i}++i}}}else if(c!=null){for(h=0;h<a.i;++h){f=e[h];if(j.rl(f.ak())){if(pb(c,f.dd())){return i}++i}}if(d){i=0;for(g=0;g<a.i;++g){f=e[g];if(j.rl(f.ak())){if(PD(c)===PD(a3d(a,BD(f.dd(),56)))){return i}++i}}}}else{for(g=0;g<a.i;++g){f=e[g];if(j.rl(f.ak())){if(f.dd()==null){return i}++i}}}return -1} +function aed(a,b,c,d,e){var f,g,h,i,j,k,l,m,n;mmb();Okb(a,new Jed);g=Ru(a);n=new Rkb;m=new Rkb;h=null;i=0;while(g.b!=0){f=BD(g.b==0?null:(sCb(g.b!=0),Nsb(g,g.a.a)),157);if(!h||red(h)*qed(h)/2<red(f)*qed(f)){h=f;n.c[n.c.length]=f}else{i+=red(f)*qed(f);m.c[m.c.length]=f;if(m.c.length>1&&(i>red(h)*qed(h)/2||g.b==0)){l=new wed(m);k=red(h)/qed(h);j=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),j);h=l;n.c[n.c.length]=l;i=0;m.c=KC(SI,Uhe,1,0,5,1)}}}Gkb(n,m);return n} +function y6d(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;if(c.mh(b)){k=(n=b,!n?null:BD(d,49).xh(n));if(k){p=c.bh(b,a.a);o=b.t;if(o>1||o==-1){l=BD(p,69);m=BD(k,69);if(l.dc()){m.$b()}else{g=!!zUd(b);f=0;for(h=a.a?l.Kc():l.Zh();h.Ob();){j=BD(h.Pb(),56);e=BD(Wrb(a,j),56);if(!e){if(a.b&&!g){m.Xh(f,j);++f}}else{if(g){i=m.Xc(e);i==-1?m.Xh(f,e):f!=i&&m.ji(f,e)}else{m.Xh(f,e)}++f}}}}else{if(p==null){k.Wb(null)}else{e=Wrb(a,p);e==null?a.b&&!zUd(b)&&k.Wb(p):k.Wb(e)}}}}} +function E6b(a,b){var c,d,e,f,g,h,i,j;c=new L6b;for(e=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(OZb(d)){continue}h=d.c.i;if(F6b(h,C6b)){j=G6b(a,h,C6b,B6b);if(j==-1){continue}c.b=$wnd.Math.max(c.b,j);!c.a&&(c.a=new Rkb);Ekb(c.a,h)}}for(g=new Sr(ur(U_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);if(OZb(f)){continue}i=f.d.i;if(F6b(i,B6b)){j=G6b(a,i,B6b,C6b);if(j==-1){continue}c.d=$wnd.Math.max(c.d,j);!c.c&&(c.c=new Rkb);Ekb(c.c,i)}}return c} +function Khb(a){Dhb();var b,c,d,e;b=QD(a);if(a<Chb.length){return Chb[b]}else if(a<=50){return Pgb((Hgb(),Egb),b)}else if(a<=_ie){return Qgb(Pgb(Bhb[1],b),b)}if(a>1000000){throw vbb(new ocb('power of ten too big'))}if(a<=Ohe){return Qgb(Pgb(Bhb[1],b),b)}d=Pgb(Bhb[1],Ohe);e=d;c=Cbb(a-Ohe);b=QD(a%Ohe);while(ybb(c,Ohe)>0){e=Ogb(e,d);c=Qbb(c,Ohe)}e=Ogb(e,Pgb(Bhb[1],b));e=Qgb(e,Ohe);c=Cbb(a-Ohe);while(ybb(c,Ohe)>0){e=Qgb(e,Ohe);c=Qbb(c,Ohe)}e=Qgb(e,b);return e} +function X5b(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Hierarchical port dummy size processing',1);i=new Rkb;k=new Rkb;d=Edb(ED(vNb(a,(Nyc(),myc))));c=d*2;for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);i.c=KC(SI,Uhe,1,0,5,1);k.c=KC(SI,Uhe,1,0,5,1);for(h=new olb(e.a);h.a<h.c.c.length;){g=BD(mlb(h),10);if(g.k==(j0b(),e0b)){j=BD(vNb(g,(wtc(),Hsc)),61);j==(Ucd(),Acd)?(i.c[i.c.length]=g,true):j==Rcd&&(k.c[k.c.length]=g,true)}}Y5b(i,true,c);Y5b(k,false,c)}Qdd(b)} +function Oac(a,b){var c,d,e,f,g,h,i;Odd(b,'Layer constraint postprocessing',1);i=a.b;if(i.c.length!=0){d=(tCb(0,i.c.length),BD(i.c[0],29));g=BD(Ikb(i,i.c.length-1),29);c=new H1b(a);f=new H1b(a);Mac(a,d,g,c,f);c.a.c.length==0||(wCb(0,i.c.length),aCb(i.c,0,c));f.a.c.length==0||(i.c[i.c.length]=f,true)}if(wNb(a,(wtc(),Lsc))){e=new H1b(a);h=new H1b(a);Pac(a,e,h);e.a.c.length==0||(wCb(0,i.c.length),aCb(i.c,0,e));h.a.c.length==0||(i.c[i.c.length]=h,true)}Qdd(b)} +function b6b(a){var b,c,d,e,f,g,h,i,j,k;for(i=new olb(a.a);i.a<i.c.c.length;){h=BD(mlb(i),10);if(h.k!=(j0b(),e0b)){continue}e=BD(vNb(h,(wtc(),Hsc)),61);if(e==(Ucd(),zcd)||e==Tcd){for(d=new Sr(ur(O_b(h).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);b=c.a;if(b.b==0){continue}j=c.c;if(j.i==h){f=(sCb(b.b!=0),BD(b.a.a.c,8));f.b=l7c(OC(GC(m1,1),nie,8,0,[j.i.n,j.n,j.a])).b}k=c.d;if(k.i==h){g=(sCb(b.b!=0),BD(b.c.b.c,8));g.b=l7c(OC(GC(m1,1),nie,8,0,[k.i.n,k.n,k.a])).b}}}}} +function Tec(a,b){var c,d,e,f,g,h,i;Odd(b,'Sort By Input Model '+vNb(a,(Nyc(),ywc)),1);e=0;for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),29);i=e==0?0:e-1;h=BD(Ikb(a.b,i),29);for(g=new olb(c.a);g.a<g.c.c.length;){f=BD(mlb(g),10);if(PD(vNb(f,Vxc))!==PD((dcd(),Zbd))&&PD(vNb(f,Vxc))!==PD($bd)){mmb();Okb(f.j,new Tnc(h,Xec(f)));Sdd(b,'Node '+f+' ports: '+f.j)}}mmb();Okb(c.a,new Bnc(h,BD(vNb(a,ywc),339),BD(vNb(a,wwc),378)));Sdd(b,'Layer '+e+': '+c);++e}Qdd(b)} +function U1b(a,b){var c,d,e,f;f=P1b(b);MAb(new YAb(null,(!b.c&&(b.c=new cUd(F2,b,9,9)),new Kub(b.c,16))),new i2b(f));e=BD(vNb(f,(wtc(),Ksc)),21);O1b(b,e);if(e.Hc((Orc(),Hrc))){for(d=new Fyd((!b.c&&(b.c=new cUd(F2,b,9,9)),b.c));d.e!=d.i.gc();){c=BD(Dyd(d),118);Y1b(a,b,f,c)}}BD(hkd(b,(Nyc(),Fxc)),174).gc()!=0&&L1b(b,f);Ccb(DD(vNb(f,Mxc)))&&e.Fc(Mrc);wNb(f,hyc)&&Wyc(new ezc(Edb(ED(vNb(f,hyc)))),f);PD(hkd(b,axc))===PD((hbd(),ebd))?V1b(a,b,f):T1b(a,b,f);return f} +function hic(a,b,c,d){var e,f,g;this.j=new Rkb;this.k=new Rkb;this.b=new Rkb;this.c=new Rkb;this.e=new I6c;this.i=new s7c;this.f=new lEb;this.d=new Rkb;this.g=new Rkb;Ekb(this.b,a);Ekb(this.b,b);this.e.c=$wnd.Math.min(a.a,b.a);this.e.d=$wnd.Math.min(a.b,b.b);this.e.b=$wnd.Math.abs(a.a-b.a);this.e.a=$wnd.Math.abs(a.b-b.b);e=BD(vNb(d,(Nyc(),jxc)),74);if(e){for(g=Jsb(e,0);g.b!=g.d.c;){f=BD(Xsb(g),8);ADb(f.a,a.a)&&Dsb(this.i,f)}}!!c&&Ekb(this.j,c);Ekb(this.k,d)} +function oTb(a,b,c){var d,e,f,g,h,i,j,k,l,m;k=new gub(new ETb(c));h=KC(sbb,dle,25,a.f.e.c.length,16,1);Glb(h,h.length);c[b.b]=0;for(j=new olb(a.f.e);j.a<j.c.c.length;){i=BD(mlb(j),144);i.b!=b.b&&(c[i.b]=Ohe);zCb(cub(k,i))}while(k.b.c.length!=0){l=BD(dub(k),144);h[l.b]=true;for(f=au(new bu(a.b,l),0);f.c;){e=BD(uu(f),282);m=rTb(e,l);if(h[m.b]){continue}wNb(e,(bTb(),RSb))?(g=Edb(ED(vNb(e,RSb)))):(g=a.c);d=c[l.b]+g;if(d<c[m.b]){c[m.b]=d;eub(k,m);zCb(cub(k,m))}}}} +function xMc(a,b,c){var d,e,f,g,h,i,j,k,l;e=true;for(g=new olb(a.b);g.a<g.c.c.length;){f=BD(mlb(g),29);j=Qje;k=null;for(i=new olb(f.a);i.a<i.c.c.length;){h=BD(mlb(i),10);l=Edb(b.p[h.p])+Edb(b.d[h.p])-h.d.d;d=Edb(b.p[h.p])+Edb(b.d[h.p])+h.o.b+h.d.a;if(l>j&&d>j){k=h;j=Edb(b.p[h.p])+Edb(b.d[h.p])+h.o.b+h.d.a}else{e=false;c.n&&Sdd(c,'bk node placement breaks on '+h+' which should have been after '+k);break}}if(!e){break}}c.n&&Sdd(c,b+' is feasible: '+e);return e} +function XNc(a,b,c,d){var e,f,g,h,i,j,k;h=-1;for(k=new olb(a);k.a<k.c.c.length;){j=BD(mlb(k),112);j.g=h--;e=Tbb(tAb(PAb(JAb(new YAb(null,new Kub(j.f,16)),new ZNc),new _Nc)).d);f=Tbb(tAb(PAb(JAb(new YAb(null,new Kub(j.k,16)),new bOc),new dOc)).d);g=e;i=f;if(!d){g=Tbb(tAb(PAb(new YAb(null,new Kub(j.f,16)),new fOc)).d);i=Tbb(tAb(PAb(new YAb(null,new Kub(j.k,16)),new hOc)).d)}j.d=g;j.a=e;j.i=i;j.b=f;i==0?(Gsb(c,j,c.c.b,c.c),true):g==0&&(Gsb(b,j,b.c.b,b.c),true)}} +function $8b(a,b,c,d){var e,f,g,h,i,j,k;if(c.d.i==b.i){return}e=new b0b(a);__b(e,(j0b(),g0b));yNb(e,(wtc(),$sc),c);yNb(e,(Nyc(),Vxc),(dcd(),$bd));d.c[d.c.length]=e;g=new H0b;F0b(g,e);G0b(g,(Ucd(),Tcd));h=new H0b;F0b(h,e);G0b(h,zcd);k=c.d;RZb(c,g);f=new UZb;tNb(f,c);yNb(f,jxc,null);QZb(f,h);RZb(f,k);j=new Bib(c.b,0);while(j.b<j.d.gc()){i=(sCb(j.b<j.d.gc()),BD(j.d.Xb(j.c=j.b++),70));if(PD(vNb(i,Qwc))===PD((qad(),oad))){yNb(i,Dsc,c);uib(j);Ekb(f.b,i)}}a9b(e,g,h)} +function Z8b(a,b,c,d){var e,f,g,h,i,j,k;if(c.c.i==b.i){return}e=new b0b(a);__b(e,(j0b(),g0b));yNb(e,(wtc(),$sc),c);yNb(e,(Nyc(),Vxc),(dcd(),$bd));d.c[d.c.length]=e;g=new H0b;F0b(g,e);G0b(g,(Ucd(),Tcd));h=new H0b;F0b(h,e);G0b(h,zcd);RZb(c,g);f=new UZb;tNb(f,c);yNb(f,jxc,null);QZb(f,h);RZb(f,b);a9b(e,g,h);j=new Bib(c.b,0);while(j.b<j.d.gc()){i=(sCb(j.b<j.d.gc()),BD(j.d.Xb(j.c=j.b++),70));k=BD(vNb(i,Qwc),272);if(k==(qad(),oad)){wNb(i,Dsc)||yNb(i,Dsc,c);uib(j);Ekb(f.b,i)}}} +function dDc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;m=new Rkb;r=Gx(d);q=b*a.a;l=0;o=0;f=new Tqb;g=new Tqb;h=new Rkb;s=0;t=0;n=0;p=0;j=0;k=0;while(r.a.gc()!=0){i=hDc(r,e,g);if(i){r.a.Bc(i)!=null;h.c[h.c.length]=i;f.a.zc(i,f);o=a.f[i.p];s+=a.e[i.p]-o*a.b;l=a.c[i.p];t+=l*a.b;k+=o*a.b;p+=a.e[i.p]}if(!i||r.a.gc()==0||s>=q&&a.e[i.p]>o*a.b||t>=c*q){m.c[m.c.length]=h;h=new Rkb;ye(g,f);f.a.$b();j-=k;n=$wnd.Math.max(n,j*a.b+p);j+=t;s=t;t=0;k=0;p=0}}return new vgd(n,m)} +function q4c(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;for(c=(j=(new $ib(a.c.b)).a.vc().Kc(),new djb(j));c.a.Ob();){b=(h=BD(c.a.Pb(),42),BD(h.dd(),149));e=b.a;e==null&&(e='');d=i4c(a.c,e);!d&&e.length==0&&(d=u4c(a));!!d&&!ze(d.c,b,false)&&Dsb(d.c,b)}for(g=Jsb(a.a,0);g.b!=g.d.c;){f=BD(Xsb(g),478);k=j4c(a.c,f.a);n=j4c(a.c,f.b);!!k&&!!n&&Dsb(k.c,new vgd(n,f.c))}Osb(a.a);for(m=Jsb(a.b,0);m.b!=m.d.c;){l=BD(Xsb(m),478);b=g4c(a.c,l.a);i=j4c(a.c,l.b);!!b&&!!i&&B3c(b,i,l.c)}Osb(a.b)} +function qvd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=new fC(a);g=new ird;e=(ko(g.g),ko(g.j),Uhb(g.b),ko(g.d),ko(g.i),Uhb(g.k),Uhb(g.c),Uhb(g.e),n=drd(g,f,null),ard(g,f),n);if(b){j=new fC(b);h=rvd(j);jfd(e,OC(GC(g2,1),Uhe,527,0,[h]))}m=false;l=false;if(c){j=new fC(c);que in j.a&&(m=aC(j,que).ge().a);rue in j.a&&(l=aC(j,rue).ge().a)}k=Vdd(Xdd(new Zdd,m),l);t2c(new w2c,e,k);que in f.a&&cC(f,que,null);if(m||l){i=new eC;nvd(k,i,m,l);cC(f,que,i)}d=new Prd(g);Ghe(new _ud(e),d)} +function pA(a,b,c){var d,e,f,g,h,i,j,k,l;g=new nB;j=OC(GC(WD,1),oje,25,15,[0]);e=-1;f=0;d=0;for(i=0;i<a.b.c.length;++i){k=BD(Ikb(a.b,i),434);if(k.b>0){if(e<0&&k.a){e=i;f=j[0];d=0}if(e>=0){h=k.b;if(i==e){h-=d++;if(h==0){return 0}}if(!wA(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!wA(b,j,k,0,g)){return 0}}}else{e=-1;if(bfb(k.c,0)==32){l=j[0];uA(b,j);if(j[0]>l){continue}}else if(ofb(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!mB(g,c)){return 0}return j[0]} +function SKd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new CNd;h=new CNd;b=KKd;g=b.a.zc(a,b);if(g==null){for(f=new Fyd(_Kd(a));f.e!=f.i.gc();){e=BD(Dyd(f),26);ytd(i,SKd(e))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}for(d=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));d.e!=d.i.gc();){c=BD(Dyd(d),170);JD(c,99)&&wtd(h,BD(c,18))}vud(h);a.r=new UNd(a,(BD(qud(ZKd((NFd(),MFd).o),6),18),h.i),h.g);ytd(i,a.r);vud(i);a.f=new nNd((BD(qud(ZKd(MFd.o),5),18),i.i),i.g);$Kd(a).b&=-3}return a.f} +function rMb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.o;d=KC(WD,oje,25,g,15,1);e=KC(WD,oje,25,g,15,1);c=a.p;b=KC(WD,oje,25,c,15,1);f=KC(WD,oje,25,c,15,1);for(j=0;j<g;j++){l=0;while(l<c&&!YMb(a,j,l)){++l}d[j]=l}for(k=0;k<g;k++){l=c-1;while(l>=0&&!YMb(a,k,l)){--l}e[k]=l}for(n=0;n<c;n++){h=0;while(h<g&&!YMb(a,h,n)){++h}b[n]=h}for(o=0;o<c;o++){h=g-1;while(h>=0&&!YMb(a,h,o)){--h}f[o]=h}for(i=0;i<g;i++){for(m=0;m<c;m++){i<f[m]&&i>b[m]&&m<e[i]&&m>d[i]&&aNb(a,i,m,false,true)}}} +function lRb(a){var b,c,d,e,f,g,h,i;c=Ccb(DD(vNb(a,(wSb(),cSb))));f=a.a.c.d;h=a.a.d.d;if(c){g=Y6c(c7c(new f7c(h.a,h.b),f),0.5);i=Y6c(R6c(a.e),0.5);b=c7c(P6c(new f7c(f.a,f.b),g),i);a7c(a.d,b)}else{e=Edb(ED(vNb(a.a,tSb)));d=a.d;if(f.a>=h.a){if(f.b>=h.b){d.a=h.a+(f.a-h.a)/2+e;d.b=h.b+(f.b-h.b)/2-e-a.e.b}else{d.a=h.a+(f.a-h.a)/2+e;d.b=f.b+(h.b-f.b)/2+e}}else{if(f.b>=h.b){d.a=f.a+(h.a-f.a)/2+e;d.b=h.b+(f.b-h.b)/2+e}else{d.a=f.a+(h.a-f.a)/2+e;d.b=f.b+(h.b-f.b)/2-e-a.e.b}}}} +function Qge(a,b){var c,d,e,f,g,h,i;if(a==null){return null}f=a.length;if(f==0){return ''}i=KC(TD,$ie,25,f,15,1);ACb(0,f,a.length);ACb(0,f,i.length);ffb(a,0,f,i,0);c=null;h=b;for(e=0,g=0;e<f;e++){d=i[e];lde();if(d<=32&&(kde[d]&2)!=0){if(h){!c&&(c=new Jfb(a));Gfb(c,e-g++)}else{h=b;if(d!=32){!c&&(c=new Jfb(a));kcb(c,e-g,e-g+1,String.fromCharCode(32))}}}else{h=false}}if(h){if(!c){return a.substr(0,f-1)}else{f=c.a.length;return f>0?qfb(c.a,0,f-1):''}}else{return !c?a:c.a}} +function DPb(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Yle),'ELK DisCo'),'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'),new GPb)));p4c(a,Yle,Zle,Ksd(BPb));p4c(a,Yle,$le,Ksd(vPb));p4c(a,Yle,_le,Ksd(qPb));p4c(a,Yle,ame,Ksd(wPb));p4c(a,Yle,Zke,Ksd(zPb));p4c(a,Yle,$ke,Ksd(yPb));p4c(a,Yle,Yke,Ksd(APb));p4c(a,Yle,_ke,Ksd(xPb));p4c(a,Yle,Tle,Ksd(sPb));p4c(a,Yle,Ule,Ksd(rPb));p4c(a,Yle,Vle,Ksd(tPb));p4c(a,Yle,Wle,Ksd(uPb))} +function Zbc(a,b,c,d){var e,f,g,h,i,j,k,l,m;f=new b0b(a);__b(f,(j0b(),i0b));yNb(f,(Nyc(),Vxc),(dcd(),$bd));e=0;if(b){g=new H0b;yNb(g,(wtc(),$sc),b);yNb(f,$sc,b.i);G0b(g,(Ucd(),Tcd));F0b(g,f);m=k_b(b.e);for(j=m,k=0,l=j.length;k<l;++k){i=j[k];RZb(i,g)}yNb(b,gtc,f);++e}if(c){h=new H0b;yNb(f,(wtc(),$sc),c.i);yNb(h,$sc,c);G0b(h,(Ucd(),zcd));F0b(h,f);m=k_b(c.g);for(j=m,k=0,l=j.length;k<l;++k){i=j[k];QZb(i,h)}yNb(c,gtc,f);++e}yNb(f,(wtc(),ysc),meb(e));d.c[d.c.length]=f;return f} +function Smd(){Smd=ccb;Qmd=OC(GC(TD,1),$ie,25,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]);Rmd=new RegExp('[ \t\n\r\f]+');try{Pmd=OC(GC(c6,1),Uhe,2015,0,[new EQd((GA(),IA("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",LA((KA(),KA(),JA))))),new EQd(IA("yyyy-MM-dd'T'HH:mm:ss'.'SSS",LA((null,JA)))),new EQd(IA("yyyy-MM-dd'T'HH:mm:ss",LA((null,JA)))),new EQd(IA("yyyy-MM-dd'T'HH:mm",LA((null,JA)))),new EQd(IA('yyyy-MM-dd',LA((null,JA))))])}catch(a){a=ubb(a);if(!JD(a,78))throw vbb(a)}} +function qgb(a){var b,c,d,e;d=shb((!a.c&&(a.c=fhb(a.f)),a.c),0);if(a.e==0||a.a==0&&a.f!=-1&&a.e<0){return d}b=pgb(a)<0?1:0;c=a.e;e=(d.length+1+$wnd.Math.abs(QD(a.e)),new Vfb);b==1&&(e.a+='-',e);if(a.e>0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>egb.length;c-=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(c));Qfb(e,d.substr(b))}else{c=b-c;Qfb(e,qfb(d,b,QD(c)));e.a+='.';Qfb(e,pfb(d,QD(c)))}}else{Qfb(e,d.substr(b));for(;c<-egb.length;c+=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(-c))}return e.a} +function v6c(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=c7c(new f7c(c.a,c.b),a);j=i.a*b.b-i.b*b.a;k=b.a*d.b-b.b*d.a;l=(i.a*d.b-i.b*d.a)/k;m=j/k;if(k==0){if(j==0){e=P6c(new f7c(c.a,c.b),Y6c(new f7c(d.a,d.b),0.5));f=S6c(a,e);g=S6c(P6c(new f7c(a.a,a.b),b),e);h=$wnd.Math.sqrt(d.a*d.a+d.b*d.b)*0.5;if(f<g&&f<=h){return new f7c(a.a,a.b)}if(g<=h){return P6c(new f7c(a.a,a.b),b)}return null}else{return null}}else{return l>=0&&l<=1&&m>=0&&m<=1?P6c(new f7c(a.a,a.b),Y6c(new f7c(b.a,b.b),l)):null}} +function OTb(a,b,c){var d,e,f,g,h;d=BD(vNb(a,(Nyc(),zwc)),21);c.a>b.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(h=new olb(a.a);h.a<h.c.c.length;){g=BD(mlb(h),10);if(g.k==(j0b(),e0b)){e=BD(vNb(g,Hsc),61);e==(Ucd(),zcd)?(g.n.a+=c.a-b.a):e==Rcd&&(g.n.b+=c.b-b.b)}}}f=a.d;a.f.a=c.a-f.b-f.c;a.f.b=c.b-f.d-f.a} +function H5b(a,b,c){var d,e,f,g,h;d=BD(vNb(a,(Nyc(),zwc)),21);c.a>b.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(g=new olb(a.a);g.a<g.c.c.length;){f=BD(mlb(g),10);if(f.k==(j0b(),e0b)){e=BD(vNb(f,Hsc),61);e==(Ucd(),zcd)?(f.n.a+=c.a-b.a):e==Rcd&&(f.n.b+=c.b-b.b)}}}h=a.d;a.f.a=c.a-h.b-h.c;a.f.b=c.b-h.d-h.a} +function kMc(a){var b,c,d,e,f,g,h,i,j,k,l,m;b=DMc(a);for(k=(h=(new Pib(b)).a.vc().Kc(),new Vib(h));k.a.Ob();){j=(e=BD(k.a.Pb(),42),BD(e.cd(),10));l=0;m=0;l=j.d.d;m=j.o.b+j.d.a;a.d[j.p]=0;c=j;while((f=a.a[c.p])!=j){d=FMc(c,f);i=0;a.c==(YLc(),WLc)?(i=d.d.n.b+d.d.a.b-d.c.n.b-d.c.a.b):(i=d.c.n.b+d.c.a.b-d.d.n.b-d.d.a.b);g=Edb(a.d[c.p])+i;a.d[f.p]=g;l=$wnd.Math.max(l,f.d.d-g);m=$wnd.Math.max(m,g+f.o.b+f.d.a);c=f}c=j;do{a.d[c.p]=Edb(a.d[c.p])+l;c=a.a[c.p]}while(c!=j);a.b[j.p]=l+m}} +function LOb(a){var b,c,d,e,f,g,h,i,j,k,l,m;a.b=false;l=Pje;i=Qje;m=Pje;j=Qje;for(d=a.e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),266);e=c.a;l=$wnd.Math.min(l,e.c);i=$wnd.Math.max(i,e.c+e.b);m=$wnd.Math.min(m,e.d);j=$wnd.Math.max(j,e.d+e.a);for(g=new olb(c.c);g.a<g.c.c.length;){f=BD(mlb(g),395);b=f.a;if(b.a){k=e.d+f.b.b;h=k+f.c;m=$wnd.Math.min(m,k);j=$wnd.Math.max(j,h)}else{k=e.c+f.b.a;h=k+f.c;l=$wnd.Math.min(l,k);i=$wnd.Math.max(i,h)}}}a.a=new f7c(i-l,j-m);a.c=new f7c(l+a.d.a,m+a.d.b)} +function xZc(a,b,c){var d,e,f,g,h,i,j,k,l;l=new Rkb;k=new x$c(0,c);f=0;s$c(k,new PZc(0,0,k,c));e=0;for(j=new Fyd(a);j.e!=j.i.gc();){i=BD(Dyd(j),33);d=BD(Ikb(k.a,k.a.c.length-1),187);h=e+i.g+(BD(Ikb(k.a,0),187).b.c.length==0?0:c);if(h>b){e=0;f+=k.b+c;l.c[l.c.length]=k;k=new x$c(f,c);d=new PZc(0,k.f,k,c);s$c(k,d);e=0}if(d.b.c.length==0||i.f>=d.o&&i.f<=d.f||d.a*0.5<=i.f&&d.a*1.5>=i.f){EZc(d,i)}else{g=new PZc(d.s+d.r+c,k.f,k,c);s$c(k,g);EZc(g,i)}e=i.i+i.g}l.c[l.c.length]=k;return l} +function OKd(a){var b,c,d,e,f,g,h,i;if(!a.a){a.o=null;i=new GNd(a);b=new KNd;c=KKd;h=c.a.zc(a,c);if(h==null){for(g=new Fyd(_Kd(a));g.e!=g.i.gc();){f=BD(Dyd(g),26);ytd(i,OKd(f))}c.a.Bc(a)!=null;c.a.gc()==0&&undefined}for(e=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));e.e!=e.i.gc();){d=BD(Dyd(e),170);JD(d,322)&&wtd(b,BD(d,34))}vud(b);a.k=new PNd(a,(BD(qud(ZKd((NFd(),MFd).o),7),18),b.i),b.g);ytd(i,a.k);vud(i);a.a=new nNd((BD(qud(ZKd(MFd.o),4),18),i.i),i.g);$Kd(a).b&=-2}return a.a} +function vZc(a,b,c,d,e,f,g){var h,i,j,k,l,m;l=false;i=ZZc(c.q,b.f+b.b-c.q.f);m=e-(c.q.e+i-g);if(m<d.g){return false}j=f==a.c.length-1&&m>=(tCb(f,a.c.length),BD(a.c[f],200)).e;k=(h=MZc(d,m,false),h.a);if(k>b.b&&!j){return false}if(j||k<=b.b){if(j&&k>b.b){c.d=k;KZc(c,JZc(c,k))}else{$Zc(c.q,i);c.c=true}KZc(d,e-(c.s+c.r));OZc(d,c.q.e+c.q.d,b.f);s$c(b,d);if(a.c.length>f){v$c((tCb(f,a.c.length),BD(a.c[f],200)),d);(tCb(f,a.c.length),BD(a.c[f],200)).a.c.length==0&&Kkb(a,f)}l=true}return l} +function C2d(a,b,c,d){var e,f,g,h,i,j,k;k=S6d(a.e.Tg(),b);e=0;f=BD(a.g,119);i=null;Q6d();if(BD(b,66).Oj()){for(h=0;h<a.i;++h){g=f[h];if(k.rl(g.ak())){if(pb(g,c)){i=g;break}++e}}}else if(c!=null){for(h=0;h<a.i;++h){g=f[h];if(k.rl(g.ak())){if(pb(c,g.dd())){i=g;break}++e}}}else{for(h=0;h<a.i;++h){g=f[h];if(k.rl(g.ak())){if(g.dd()==null){i=g;break}++e}}}if(i){if(oid(a.e)){j=b.$j()?new O7d(a.e,4,b,c,null,e,true):H2d(a,b.Kj()?2:1,b,c,b.zj(),-1,true);d?d.Ei(j):(d=j)}d=B2d(a,i,d)}return d} +function kYc(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p;o=0;p=0;i=e.c;h=e.b;k=c.f;n=c.g;switch(b.g){case 0:o=d.i+d.g+g;a.c?(p=tYc(o,f,d,g)):(p=d.j);m=$wnd.Math.max(i,o+n);j=$wnd.Math.max(h,p+k);break;case 1:p=d.j+d.f+g;a.c?(o=sYc(p,f,d,g)):(o=d.i);m=$wnd.Math.max(i,o+n);j=$wnd.Math.max(h,p+k);break;case 2:o=i+g;p=0;m=i+g+n;j=$wnd.Math.max(h,k);break;case 3:o=0;p=h+g;m=$wnd.Math.max(i,n);j=h+g+k;break;default:throw vbb(new Wdb('IllegalPlacementOption.'));}l=new e$c(a.a,m,j,b,o,p);return l} +function R2b(a){var b,c,d,e,f,g,h,i,j,k,l,m;h=a.d;l=BD(vNb(a,(wtc(),vtc)),15);b=BD(vNb(a,tsc),15);if(!l&&!b){return}f=Edb(ED(pBc(a,(Nyc(),iyc))));g=Edb(ED(pBc(a,jyc)));m=0;if(l){j=0;for(e=l.Kc();e.Ob();){d=BD(e.Pb(),10);j=$wnd.Math.max(j,d.o.b);m+=d.o.a}m+=f*(l.gc()-1);h.d+=j+g}c=0;if(b){j=0;for(e=b.Kc();e.Ob();){d=BD(e.Pb(),10);j=$wnd.Math.max(j,d.o.b);c+=d.o.a}c+=f*(b.gc()-1);h.a+=j+g}i=$wnd.Math.max(m,c);if(i>a.o.a){k=(i-a.o.a)/2;h.b=$wnd.Math.max(h.b,k);h.c=$wnd.Math.max(h.c,k)}} +function rvd(a){var b,c,d,e,f,g,h,i;f=new b2c;Z1c(f,(Y1c(),V1c));for(d=(e=$B(a,KC(ZI,nie,2,0,6,1)),new vib(new amb((new mC(a,e)).b)));d.b<d.d.gc();){c=(sCb(d.b<d.d.gc()),GD(d.d.Xb(d.c=d.b++)));g=k4c(lvd,c);if(g){b=aC(a,c);b.je()?(h=b.je().a):b.ge()?(h=''+b.ge().a):b.he()?(h=''+b.he().a):(h=b.Ib());i=o5c(g,h);if(i!=null){(uqb(g.j,(N5c(),K5c))||uqb(g.j,L5c))&&xNb(_1c(f,E2),g,i);uqb(g.j,I5c)&&xNb(_1c(f,B2),g,i);uqb(g.j,M5c)&&xNb(_1c(f,F2),g,i);uqb(g.j,J5c)&&xNb(_1c(f,D2),g,i)}}}return f} +function J2d(a,b,c,d){var e,f,g,h,i,j;i=S6d(a.e.Tg(),b);f=BD(a.g,119);if(T6d(a.e,b)){e=0;for(h=0;h<a.i;++h){g=f[h];if(i.rl(g.ak())){if(e==c){Q6d();if(BD(b,66).Oj()){return g}else{j=g.dd();j!=null&&d&&JD(b,99)&&(BD(b,18).Bb&Tje)!=0&&(j=b3d(a,b,h,e,j));return j}}++e}}throw vbb(new qcb(gve+c+mue+e))}else{e=0;for(h=0;h<a.i;++h){g=f[h];if(i.rl(g.ak())){Q6d();if(BD(b,66).Oj()){return g}else{j=g.dd();j!=null&&d&&JD(b,99)&&(BD(b,18).Bb&Tje)!=0&&(j=b3d(a,b,h,e,j));return j}}++e}return b.zj()}} +function K2d(a,b,c){var d,e,f,g,h,i,j,k;e=BD(a.g,119);if(T6d(a.e,b)){return Q6d(),BD(b,66).Oj()?new R7d(b,a):new f7d(b,a)}else{j=S6d(a.e.Tg(),b);d=0;for(h=0;h<a.i;++h){f=e[h];g=f.ak();if(j.rl(g)){Q6d();if(BD(b,66).Oj()){return f}else if(g==(m8d(),k8d)||g==h8d){i=new Wfb(fcb(f.dd()));while(++h<a.i){f=e[h];g=f.ak();(g==k8d||g==h8d)&&Qfb(i,fcb(f.dd()))}return j6d(BD(b.Yj(),148),i.a)}else{k=f.dd();k!=null&&c&&JD(b,99)&&(BD(b,18).Bb&Tje)!=0&&(k=b3d(a,b,h,d,k));return k}}++d}return b.zj()}} +function MZc(a,b,c){var d,e,f,g,h,i,j,k,l,m;f=0;g=a.t;e=0;d=0;i=0;m=0;l=0;if(c){a.n.c=KC(SI,Uhe,1,0,5,1);Ekb(a.n,new VZc(a.s,a.t,a.i))}h=0;for(k=new olb(a.b);k.a<k.c.c.length;){j=BD(mlb(k),33);if(f+j.g+(h>0?a.i:0)>b&&i>0){f=0;g+=i+a.i;e=$wnd.Math.max(e,m);d+=i+a.i;i=0;m=0;if(c){++l;Ekb(a.n,new VZc(a.s,g,a.i))}h=0}m+=j.g+(h>0?a.i:0);i=$wnd.Math.max(i,j.f);c&&QZc(BD(Ikb(a.n,l),211),j);f+=j.g+(h>0?a.i:0);++h}e=$wnd.Math.max(e,m);d+=i;if(c){a.r=e;a.d=d;u$c(a.j)}return new J6c(a.s,a.t,e,d)} +function $fb(a,b,c,d,e){Zfb();var f,g,h,i,j,k,l,m,n;vCb(a,'src');vCb(c,'dest');m=rb(a);i=rb(c);rCb((m.i&4)!=0,'srcType is not an array');rCb((i.i&4)!=0,'destType is not an array');l=m.c;g=i.c;rCb((l.i&1)!=0?l==g:(g.i&1)==0,"Array types don't match");n=a.length;j=c.length;if(b<0||d<0||e<0||b+e>n||d+e>j){throw vbb(new pcb)}if((l.i&1)==0&&m!=i){k=CD(a);f=CD(c);if(PD(a)===PD(c)&&b<d){b+=e;for(h=d+e;h-->d;){NC(f,h,k[--b])}}else{for(h=d+e;d<h;){NC(f,d++,k[b++])}}}else e>0&&$Bb(a,b,c,d,e,true)} +function phb(){phb=ccb;nhb=OC(GC(WD,1),oje,25,15,[Rie,1162261467,Iie,1220703125,362797056,1977326743,Iie,387420489,Jje,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,1280000000,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729000000,887503681,Iie,1291467969,1544804416,1838265625,60466176]);ohb=OC(GC(WD,1),oje,25,15,[-1,-1,31,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])} +function soc(a){var b,c,d,e,f,g,h,i;for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),29);for(g=new olb(Mu(d.a));g.a<g.c.c.length;){f=BD(mlb(g),10);if(ioc(f)){c=BD(vNb(f,(wtc(),usc)),305);if(!c.g&&!!c.d){b=c;i=c.d;while(i){roc(i.i,i.k,false,true);zoc(b.a);zoc(i.i);zoc(i.k);zoc(i.b);RZb(i.c,b.c.d);RZb(b.c,null);$_b(b.a,null);$_b(i.i,null);$_b(i.k,null);$_b(i.b,null);h=new goc(b.i,i.a,b.e,i.j,i.f);h.k=b.k;h.n=b.n;h.b=b.b;h.c=i.c;h.g=b.g;h.d=i.d;yNb(b.i,usc,h);yNb(i.a,usc,h);i=i.d;b=h}}}}}} +function Xfe(a,b){var c,d,e,f,g;g=BD(b,136);Yfe(a);Yfe(g);if(g.b==null)return;a.c=true;if(a.b==null){a.b=KC(WD,oje,25,g.b.length,15,1);$fb(g.b,0,a.b,0,g.b.length);return}f=KC(WD,oje,25,a.b.length+g.b.length,15,1);for(c=0,d=0,e=0;c<a.b.length||d<g.b.length;){if(c>=a.b.length){f[e++]=g.b[d++];f[e++]=g.b[d++]}else if(d>=g.b.length){f[e++]=a.b[c++];f[e++]=a.b[c++]}else if(g.b[d]<a.b[c]||g.b[d]===a.b[c]&&g.b[d+1]<a.b[c+1]){f[e++]=g.b[d++];f[e++]=g.b[d++]}else{f[e++]=a.b[c++];f[e++]=a.b[c++]}}a.b=f} +function S6b(a,b){var c,d,e,f,g,h,i,j,k,l;c=Ccb(DD(vNb(a,(wtc(),Usc))));h=Ccb(DD(vNb(b,Usc)));d=BD(vNb(a,Vsc),11);i=BD(vNb(b,Vsc),11);e=BD(vNb(a,Wsc),11);j=BD(vNb(b,Wsc),11);k=!!d&&d==i;l=!!e&&e==j;if(!c&&!h){return new Z6b(BD(mlb(new olb(a.j)),11).p==BD(mlb(new olb(b.j)),11).p,k,l)}f=(!Ccb(DD(vNb(a,Usc)))||Ccb(DD(vNb(a,Tsc))))&&(!Ccb(DD(vNb(b,Usc)))||Ccb(DD(vNb(b,Tsc))));g=(!Ccb(DD(vNb(a,Usc)))||!Ccb(DD(vNb(a,Tsc))))&&(!Ccb(DD(vNb(b,Usc)))||!Ccb(DD(vNb(b,Tsc))));return new Z6b(k&&f||l&&g,k,l)} +function HZc(a){var b,c,d,e,f,g,h,i;d=0;c=0;i=new Psb;b=0;for(h=new olb(a.n);h.a<h.c.c.length;){g=BD(mlb(h),211);if(g.c.c.length==0){Gsb(i,g,i.c.b,i.c)}else{d=$wnd.Math.max(d,g.d);c+=g.a+(b>0?a.i:0)}++b}Ce(a.n,i);a.d=c;a.r=d;a.g=0;a.f=0;a.e=0;a.o=Pje;a.p=Pje;for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),33);a.p=$wnd.Math.min(a.p,e.g);a.g=$wnd.Math.max(a.g,e.g);a.f=$wnd.Math.max(a.f,e.f);a.o=$wnd.Math.min(a.o,e.f);a.e+=e.f+a.i}a.a=a.e/a.b.c.length-a.i*((a.b.c.length-1)/a.b.c.length);u$c(a.j)} +function Sld(a){var b,c,d,e;if((a.Db&64)!=0)return Mkd(a);b=new Wfb(_se);d=a.k;if(!d){!a.n&&(a.n=new cUd(D2,a,1,7));if(a.n.i>0){e=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!e||Qfb(Qfb((b.a+=' "',b),e),'"')}}else{Qfb(Qfb((b.a+=' "',b),d),'"')}c=(!a.b&&(a.b=new y5d(z2,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);Qfb(b,Eb(new Gb,new Fyd(a.b)));c&&(b.a+=']',b);b.a+=gne;c&&(b.a+='[',b);Qfb(b,Eb(new Gb,new Fyd(a.c)));c&&(b.a+=']',b);return b.a} +function TQd(a,b){var c,d,e,f,g,h,i;if(a.a){h=a.a.ne();i=null;if(h!=null){b.a+=''+h}else{g=a.a.Dj();if(g!=null){f=hfb(g,wfb(91));if(f!=-1){i=g.substr(f);b.a+=''+qfb(g==null?Xhe:(uCb(g),g),0,f)}else{b.a+=''+g}}}if(!!a.d&&a.d.i!=0){e=true;b.a+='<';for(d=new Fyd(a.d);d.e!=d.i.gc();){c=BD(Dyd(d),87);e?(e=false):(b.a+=She,b);TQd(c,b)}b.a+='>'}i!=null&&(b.a+=''+i,b)}else if(a.e){h=a.e.zb;h!=null&&(b.a+=''+h,b)}else{b.a+='?';if(a.b){b.a+=' super ';TQd(a.b,b)}else{if(a.f){b.a+=' extends ';TQd(a.f,b)}}}} +function Z9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;v=a.c;w=b.c;c=Jkb(v.a,a,0);d=Jkb(w.a,b,0);t=BD(W_b(a,(KAc(),HAc)).Kc().Pb(),11);C=BD(W_b(a,IAc).Kc().Pb(),11);u=BD(W_b(b,HAc).Kc().Pb(),11);D=BD(W_b(b,IAc).Kc().Pb(),11);r=k_b(t.e);A=k_b(C.g);s=k_b(u.e);B=k_b(D.g);Z_b(a,d,w);for(g=s,k=0,o=g.length;k<o;++k){e=g[k];RZb(e,t)}for(h=B,l=0,p=h.length;l<p;++l){e=h[l];QZb(e,C)}Z_b(b,c,v);for(i=r,m=0,q=i.length;m<q;++m){e=i[m];RZb(e,u)}for(f=A,j=0,n=f.length;j<n;++j){e=f[j];QZb(e,D)}} +function $$b(a,b,c,d){var e,f,g,h,i,j,k;f=a_b(d);h=Ccb(DD(vNb(d,(Nyc(),uxc))));if((h||Ccb(DD(vNb(a,exc))))&&!fcd(BD(vNb(a,Vxc),98))){e=Zcd(f);i=i_b(a,c,c==(KAc(),IAc)?e:Wcd(e))}else{i=new H0b;F0b(i,a);if(b){k=i.n;k.a=b.a-a.n.a;k.b=b.b-a.n.b;Q6c(k,0,0,a.o.a,a.o.b);G0b(i,W$b(i,f))}else{e=Zcd(f);G0b(i,c==(KAc(),IAc)?e:Wcd(e))}g=BD(vNb(d,(wtc(),Ksc)),21);j=i.j;switch(f.g){case 2:case 1:(j==(Ucd(),Acd)||j==Rcd)&&g.Fc((Orc(),Lrc));break;case 4:case 3:(j==(Ucd(),zcd)||j==Tcd)&&g.Fc((Orc(),Lrc));}}return i} +function pPc(a,b,c){var d,e,f,g,h,i,j,k;if($wnd.Math.abs(b.s-b.c)<qme||$wnd.Math.abs(c.s-c.c)<qme){return 0}d=oPc(a,b.j,c.e);e=oPc(a,c.j,b.e);f=d==-1||e==-1;g=0;if(f){if(d==-1){new DOc((HOc(),FOc),c,b,1);++g}if(e==-1){new DOc((HOc(),FOc),b,c,1);++g}}else{h=vPc(b.j,c.s,c.c);h+=vPc(c.e,b.s,b.c);i=vPc(c.j,b.s,b.c);i+=vPc(b.e,c.s,c.c);j=d+16*h;k=e+16*i;if(j<k){new DOc((HOc(),GOc),b,c,k-j)}else if(j>k){new DOc((HOc(),GOc),c,b,j-k)}else if(j>0&&k>0){new DOc((HOc(),GOc),b,c,0);new DOc(GOc,c,b,0)}}return g} +function TUb(a,b){var c,d,e,f,g,h;for(g=new nib((new eib(a.f.b)).a);g.b;){f=lib(g);e=BD(f.cd(),594);if(b==1){if(e.gf()!=(ead(),dad)&&e.gf()!=_9c){continue}}else{if(e.gf()!=(ead(),aad)&&e.gf()!=bad){continue}}d=BD(BD(f.dd(),46).b,81);h=BD(BD(f.dd(),46).a,189);c=h.c;switch(e.gf().g){case 2:d.g.c=a.e.a;d.g.b=$wnd.Math.max(1,d.g.b+c);break;case 1:d.g.c=d.g.c+c;d.g.b=$wnd.Math.max(1,d.g.b-c);break;case 4:d.g.d=a.e.b;d.g.a=$wnd.Math.max(1,d.g.a+c);break;case 3:d.g.d=d.g.d+c;d.g.a=$wnd.Math.max(1,d.g.a-c);}}} +function nJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;h=KC(WD,oje,25,b.b.c.length,15,1);j=KC(NQ,Kie,267,b.b.c.length,0,1);i=KC(OQ,kne,10,b.b.c.length,0,1);for(l=a.a,m=0,n=l.length;m<n;++m){k=l[m];p=0;for(g=new olb(k.e);g.a<g.c.c.length;){e=BD(mlb(g),10);d=G1b(e.c);++h[d];o=Edb(ED(vNb(b,(Nyc(),lyc))));h[d]>0&&!!i[d]&&(o=jBc(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new olb(k.e);f.a<f.c.c.length;){e=BD(mlb(f),10);e.n.b=p+e.d.d;c=e.c;c.c.b=p+e.d.d+e.o.b+e.d.a;j[Jkb(c.b.b,c,0)]=e.k;i[Jkb(c.b.b,c,0)]=e}}} +function LXc(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(d=new Sr(ur(_sd(b).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(!JD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),186)){i=atd(BD(qud((!c.c&&(c.c=new y5d(z2,c,5,8)),c.c),0),82));if(!Pld(c)){g=b.i+b.g/2;h=b.j+b.f/2;k=i.i+i.g/2;l=i.j+i.f/2;m=new d7c;m.a=k-g;m.b=l-h;f=new f7c(m.a,m.b);l6c(f,b.g,b.f);m.a-=f.a;m.b-=f.b;g=k-m.a;h=l-m.b;j=new f7c(m.a,m.b);l6c(j,i.g,i.f);m.a-=j.a;m.b-=j.b;k=g+m.a;l=h+m.b;e=itd(c,true,true);omd(e,g);pmd(e,h);hmd(e,k);imd(e,l);LXc(a,i)}}}} +function e0c(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Pre),'ELK SPOrE Compaction'),'ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree.'),new h0c)));p4c(a,Pre,Qre,Ksd(c0c));p4c(a,Pre,Rre,Ksd(__c));p4c(a,Pre,Sre,Ksd($_c));p4c(a,Pre,Tre,Ksd(Y_c));p4c(a,Pre,Ure,Ksd(Z_c));p4c(a,Pre,ame,X_c);p4c(a,Pre,wme,8);p4c(a,Pre,Vre,Ksd(b0c));p4c(a,Pre,Wre,Ksd(T_c));p4c(a,Pre,Xre,Ksd(U_c));p4c(a,Pre,Zpe,(Bcb(),false))} +function JLc(a,b){var c,d,e,f,g,h,i,j,k,l;Odd(b,'Simple node placement',1);l=BD(vNb(a,(wtc(),otc)),304);h=0;for(f=new olb(a.b);f.a<f.c.c.length;){d=BD(mlb(f),29);g=d.c;g.b=0;c=null;for(j=new olb(d.a);j.a<j.c.c.length;){i=BD(mlb(j),10);!!c&&(g.b+=hBc(i,c,l.c));g.b+=i.d.d+i.o.b+i.d.a;c=i}h=$wnd.Math.max(h,g.b)}for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),29);g=d.c;k=(h-g.b)/2;c=null;for(j=new olb(d.a);j.a<j.c.c.length;){i=BD(mlb(j),10);!!c&&(k+=hBc(i,c,l.c));k+=i.d.d;i.n.b=k;k+=i.o.b+i.d.a;c=i}}Qdd(b)} +function s2d(a,b,c,d){var e,f,g,h,i,j,k,l;if(d.gc()==0){return false}i=(Q6d(),BD(b,66).Oj());g=i?d:new zud(d.gc());if(T6d(a.e,b)){if(b.hi()){for(k=d.Kc();k.Ob();){j=k.Pb();if(!F2d(a,b,j,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)){f=R6d(b,j);g.Fc(f)}}}else if(!i){for(k=d.Kc();k.Ob();){j=k.Pb();f=R6d(b,j);g.Fc(f)}}}else{l=S6d(a.e.Tg(),b);e=BD(a.g,119);for(h=0;h<a.i;++h){f=e[h];if(l.rl(f.ak())){throw vbb(new Wdb(Hwe))}}if(d.gc()>1){throw vbb(new Wdb(Hwe))}if(!i){f=R6d(b,d.Kc().Pb());g.Fc(f)}}return xtd(a,I2d(a,b,c),g)} +function Pmc(a,b){var c,d,e,f;Jmc(b.b.j);MAb(NAb(new YAb(null,new Kub(b.d,16)),new $mc),new anc);for(f=new olb(b.d);f.a<f.c.c.length;){e=BD(mlb(f),101);switch(e.e.g){case 0:c=BD(Ikb(e.j,0),113).d.j;mjc(e,BD(Btb(RAb(BD(Qc(e.k,c),15).Oc(),Hmc)),113));njc(e,BD(Btb(QAb(BD(Qc(e.k,c),15).Oc(),Hmc)),113));break;case 1:d=Bkc(e);mjc(e,BD(Btb(RAb(BD(Qc(e.k,d[0]),15).Oc(),Hmc)),113));njc(e,BD(Btb(QAb(BD(Qc(e.k,d[1]),15).Oc(),Hmc)),113));break;case 2:Rmc(a,e);break;case 3:Qmc(e);break;case 4:Omc(a,e);}Mmc(e)}a.a=null} +function $Mc(a,b,c){var d,e,f,g,h,i,j,k;d=a.a.o==(eMc(),dMc)?Pje:Qje;h=_Mc(a,new ZMc(b,c));if(!h.a&&h.c){Dsb(a.d,h);return d}else if(h.a){e=h.a.c;i=h.a.d;if(c){j=a.a.c==(YLc(),XLc)?i:e;f=a.a.c==XLc?e:i;g=a.a.g[f.i.p];k=Edb(a.a.p[g.p])+Edb(a.a.d[f.i.p])+f.n.b+f.a.b-Edb(a.a.d[j.i.p])-j.n.b-j.a.b}else{j=a.a.c==(YLc(),WLc)?i:e;f=a.a.c==WLc?e:i;k=Edb(a.a.p[a.a.g[f.i.p].p])+Edb(a.a.d[f.i.p])+f.n.b+f.a.b-Edb(a.a.d[j.i.p])-j.n.b-j.a.b}a.a.n[a.a.g[e.i.p].p]=(Bcb(),true);a.a.n[a.a.g[i.i.p].p]=true;return k}return d} +function f3d(a,b,c){var d,e,f,g,h,i,j,k;if(T6d(a.e,b)){i=(Q6d(),BD(b,66).Oj()?new R7d(b,a):new f7d(b,a));D2d(i.c,i.b);b7d(i,BD(c,14))}else{k=S6d(a.e.Tg(),b);d=BD(a.g,119);for(g=0;g<a.i;++g){e=d[g];f=e.ak();if(k.rl(f)){if(f==(m8d(),k8d)||f==h8d){j=m3d(a,b,c);h=g;j?Xxd(a,g):++g;while(g<a.i){e=d[g];f=e.ak();f==k8d||f==h8d?Xxd(a,g):++g}j||BD(Gtd(a,h,R6d(b,c)),72)}else m3d(a,b,c)?Xxd(a,g):BD(Gtd(a,g,(Q6d(),BD(b,66).Oj()?BD(c,72):R6d(b,c))),72);return}}m3d(a,b,c)||wtd(a,(Q6d(),BD(b,66).Oj()?BD(c,72):R6d(b,c)))}} +function IMb(a,b,c){var d,e,f,g,h,i,j,k;if(!pb(c,a.b)){a.b=c;f=new LMb;g=BD(GAb(NAb(new YAb(null,new Kub(c.f,16)),f),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);a.e=true;a.f=true;a.c=true;a.d=true;e=g.Hc((RMb(),OMb));d=g.Hc(PMb);e&&!d&&(a.f=false);!e&&d&&(a.d=false);e=g.Hc(NMb);d=g.Hc(QMb);e&&!d&&(a.c=false);!e&&d&&(a.e=false)}k=BD(a.a.Ce(b,c),46);i=BD(k.a,19).a;j=BD(k.b,19).a;h=false;i<0?a.c||(h=true):a.e||(h=true);j<0?a.d||(h=true):a.f||(h=true);return h?IMb(a,k,c):k} +function oKb(a){var b,c,d,e;e=a.o;$Jb();if(a.A.dc()||pb(a.A,ZJb)){b=e.b}else{b=fIb(a.f);if(a.A.Hc((tdd(),qdd))&&!a.B.Hc((Idd(),Edd))){b=$wnd.Math.max(b,fIb(BD(Mpb(a.p,(Ucd(),zcd)),244)));b=$wnd.Math.max(b,fIb(BD(Mpb(a.p,Tcd),244)))}c=aKb(a);!!c&&(b=$wnd.Math.max(b,c.b));if(a.A.Hc(rdd)){if(a.q==(dcd(),_bd)||a.q==$bd){b=$wnd.Math.max(b,_Gb(BD(Mpb(a.b,(Ucd(),zcd)),124)));b=$wnd.Math.max(b,_Gb(BD(Mpb(a.b,Tcd),124)))}}}Ccb(DD(a.e.yf().We((Y9c(),$8c))))?(e.b=$wnd.Math.max(e.b,b)):(e.b=b);d=a.f.i;d.d=0;d.a=b;iIb(a.f)} +function $Ic(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;for(l=0;l<b.length;l++){for(h=a.Kc();h.Ob();){f=BD(h.Pb(),225);f.Of(l,b)}for(m=0;m<b[l].length;m++){for(i=a.Kc();i.Ob();){f=BD(i.Pb(),225);f.Pf(l,m,b)}p=b[l][m].j;for(n=0;n<p.c.length;n++){for(j=a.Kc();j.Ob();){f=BD(j.Pb(),225);f.Qf(l,m,n,b)}o=(tCb(n,p.c.length),BD(p.c[n],11));c=0;for(e=new b1b(o.b);llb(e.a)||llb(e.b);){d=BD(llb(e.a)?mlb(e.a):mlb(e.b),17);for(k=a.Kc();k.Ob();){f=BD(k.Pb(),225);f.Nf(l,m,n,c++,d,b)}}}}}for(g=a.Kc();g.Ob();){f=BD(g.Pb(),225);f.Mf()}} +function J4b(a,b){var c,d,e,f,g,h,i;a.b=Edb(ED(vNb(b,(Nyc(),myc))));a.c=Edb(ED(vNb(b,pyc)));a.d=BD(vNb(b,Xwc),336);a.a=BD(vNb(b,swc),275);H4b(b);h=BD(GAb(JAb(JAb(LAb(LAb(new YAb(null,new Kub(b.b,16)),new N4b),new P4b),new R4b),new T4b),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);for(e=h.Kc();e.Ob();){c=BD(e.Pb(),17);g=BD(vNb(c,(wtc(),rtc)),15);g.Jc(new V4b(a));yNb(c,rtc,null)}for(d=h.Kc();d.Ob();){c=BD(d.Pb(),17);i=BD(vNb(c,(wtc(),stc)),17);f=BD(vNb(c,ptc),15);B4b(a,f,i);yNb(c,ptc,null)}} +function uZd(a){a.b=null;a.a=null;a.o=null;a.q=null;a.v=null;a.w=null;a.B=null;a.p=null;a.Q=null;a.R=null;a.S=null;a.T=null;a.U=null;a.V=null;a.W=null;a.bb=null;a.eb=null;a.ab=null;a.H=null;a.db=null;a.c=null;a.d=null;a.f=null;a.n=null;a.r=null;a.s=null;a.u=null;a.G=null;a.J=null;a.e=null;a.j=null;a.i=null;a.g=null;a.k=null;a.t=null;a.F=null;a.I=null;a.L=null;a.M=null;a.O=null;a.P=null;a.$=null;a.N=null;a.Z=null;a.cb=null;a.K=null;a.D=null;a.A=null;a.C=null;a._=null;a.fb=null;a.X=null;a.Y=null;a.gb=false;a.hb=false} +function bKc(a){var b,c,d,e,f,g,h,i,j;if(a.k!=(j0b(),h0b)){return false}if(a.j.c.length<=1){return false}f=BD(vNb(a,(Nyc(),Vxc)),98);if(f==(dcd(),$bd)){return false}e=(Izc(),(!a.q?(mmb(),mmb(),kmb):a.q)._b(Cxc)?(d=BD(vNb(a,Cxc),197)):(d=BD(vNb(Q_b(a),Dxc),197)),d);if(e==Gzc){return false}if(!(e==Fzc||e==Ezc)){g=Edb(ED(pBc(a,zyc)));b=BD(vNb(a,yyc),142);!b&&(b=new J_b(g,g,g,g));j=V_b(a,(Ucd(),Tcd));i=b.d+b.a+(j.gc()-1)*g;if(i>a.o.b){return false}c=V_b(a,zcd);h=b.d+b.a+(c.gc()-1)*g;if(h>a.o.b){return false}}return true} +function thb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.e;i=b.e;if(g==0){return b}if(i==0){return a}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);if(g==i){k=wbb(c,d);o=Tbb(k);n=Tbb(Pbb(k,32));return n==0?new Ugb(g,o):new Vgb(g,2,OC(GC(WD,1),oje,25,15,[o,n]))}return ghb(g<0?Qbb(d,c):Qbb(c,d))}else if(g==i){m=g;l=f>=h?uhb(a.a,f,b.a,h):uhb(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==0){return Hgb(),Ggb}if(e==1){m=g;l=zhb(a.a,f,b.a,h)}else{m=i;l=zhb(b.a,h,a.a,f)}}j=new Vgb(m,l.length,l);Jgb(j);return j} +function oZb(a,b,c,d,e,f,g){var h,i,j,k,l,m,n;l=Ccb(DD(vNb(b,(Nyc(),vxc))));m=null;f==(KAc(),HAc)&&d.c.i==c?(m=d.c):f==IAc&&d.d.i==c&&(m=d.d);j=g;if(!j||!l||!!m){k=(Ucd(),Scd);m?(k=m.j):fcd(BD(vNb(c,Vxc),98))&&(k=f==HAc?Tcd:zcd);i=lZb(a,b,c,f,k,d);h=kZb((Q_b(c),d));if(f==HAc){QZb(h,BD(Ikb(i.j,0),11));RZb(h,e)}else{QZb(h,e);RZb(h,BD(Ikb(i.j,0),11))}j=new yZb(d,h,i,BD(vNb(i,(wtc(),$sc)),11),f,!m)}else{Ekb(j.e,d);n=$wnd.Math.max(Edb(ED(vNb(j.d,Zwc))),Edb(ED(vNb(d,Zwc))));yNb(j.d,Zwc,n)}Rc(a.a,d,new BZb(j.d,b,f));return j} +function V1d(a,b){var c,d,e,f,g,h,i,j,k,l;k=null;!!a.d&&(k=BD(Phb(a.d,b),138));if(!k){f=a.a.Mh();l=f.i;if(!a.d||Vhb(a.d)!=l){i=new Lqb;!!a.d&&Ld(i,a.d);j=i.f.c+i.g.c;for(h=j;h<l;++h){d=BD(qud(f,h),138);e=o1d(a.e,d).ne();c=BD(e==null?jrb(i.f,null,d):Drb(i.g,e,d),138);!!c&&c!=d&&(e==null?jrb(i.f,null,c):Drb(i.g,e,c))}if(i.f.c+i.g.c!=l){for(g=0;g<j;++g){d=BD(qud(f,g),138);e=o1d(a.e,d).ne();c=BD(e==null?jrb(i.f,null,d):Drb(i.g,e,d),138);!!c&&c!=d&&(e==null?jrb(i.f,null,c):Drb(i.g,e,c))}}a.d=i}k=BD(Phb(a.d,b),138)}return k} +function lZb(a,b,c,d,e,f){var g,h,i,j,k,l;g=null;j=d==(KAc(),HAc)?f.c:f.d;i=a_b(b);if(j.i==c){g=BD(Ohb(a.b,j),10);if(!g){g=Z$b(j,BD(vNb(c,(Nyc(),Vxc)),98),e,hZb(j),null,j.n,j.o,i,b);yNb(g,(wtc(),$sc),j);Rhb(a.b,j,g)}}else{g=Z$b((k=new zNb,l=Edb(ED(vNb(b,(Nyc(),lyc))))/2,xNb(k,Uxc,l),k),BD(vNb(c,Vxc),98),e,d==HAc?-1:1,null,new d7c,new f7c(0,0),i,b);h=mZb(g,c,d);yNb(g,(wtc(),$sc),h);Rhb(a.b,h,g)}BD(vNb(b,(wtc(),Ksc)),21).Fc((Orc(),Hrc));fcd(BD(vNb(b,(Nyc(),Vxc)),98))?yNb(b,Vxc,(dcd(),acd)):yNb(b,Vxc,(dcd(),bcd));return g} +function vNc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;Odd(b,'Orthogonal edge routing',1);j=Edb(ED(vNb(a,(Nyc(),wyc))));c=Edb(ED(vNb(a,myc)));d=Edb(ED(vNb(a,pyc)));m=new tPc(0,c);q=0;g=new Bib(a.b,0);h=null;k=null;i=null;l=null;do{k=g.b<g.d.gc()?(sCb(g.b<g.d.gc()),BD(g.d.Xb(g.c=g.b++),29)):null;l=!k?null:k.a;if(h){h_b(h,q);q+=h.c.a}p=!h?q:q+d;o=sPc(m,a,i,l,p);e=!h||Kq(i,(FNc(),DNc));f=!k||Kq(l,(FNc(),DNc));if(o>0){n=(o-1)*c;!!h&&(n+=d);!!k&&(n+=d);n<j&&!e&&!f&&(n=j);q+=n}else !e&&!f&&(q+=j);h=k;i=l}while(k);a.f.a=q;Qdd(b)} +function IEd(){IEd=ccb;var a;HEd=new mFd;BEd=KC(ZI,nie,2,0,6,1);uEd=Mbb(ZEd(33,58),ZEd(1,26));vEd=Mbb(ZEd(97,122),ZEd(65,90));wEd=ZEd(48,57);sEd=Mbb(uEd,0);tEd=Mbb(vEd,wEd);xEd=Mbb(Mbb(0,ZEd(1,6)),ZEd(33,38));yEd=Mbb(Mbb(wEd,ZEd(65,70)),ZEd(97,102));EEd=Mbb(sEd,XEd("-_.!~*'()"));FEd=Mbb(tEd,$Ed("-_.!~*'()"));XEd(lve);$Ed(lve);Mbb(EEd,XEd(';:@&=+$,'));Mbb(FEd,$Ed(';:@&=+$,'));zEd=XEd(':/?#');AEd=$Ed(':/?#');CEd=XEd('/?#');DEd=$Ed('/?#');a=new Tqb;a.a.zc('jar',a);a.a.zc('zip',a);a.a.zc('archive',a);GEd=(mmb(),new zob(a))} +function yUc(a,b){var c,d,e,f,g,h,i,j,k,l;yNb(b,(mTc(),cTc),0);i=BD(vNb(b,aTc),86);if(b.d.b==0){if(i){k=Edb(ED(vNb(i,fTc)))+a.a+zUc(i,b);yNb(b,fTc,k)}else{yNb(b,fTc,0)}}else{for(d=(f=Jsb((new ZRc(b)).a.d,0),new aSc(f));Wsb(d.a);){c=BD(Xsb(d.a),188).c;yUc(a,c)}h=BD(pr((g=Jsb((new ZRc(b)).a.d,0),new aSc(g))),86);l=BD(or((e=Jsb((new ZRc(b)).a.d,0),new aSc(e))),86);j=(Edb(ED(vNb(l,fTc)))+Edb(ED(vNb(h,fTc))))/2;if(i){k=Edb(ED(vNb(i,fTc)))+a.a+zUc(i,b);yNb(b,fTc,k);yNb(b,cTc,Edb(ED(vNb(b,fTc)))-j);xUc(a,b)}else{yNb(b,fTc,j)}}} +function Dbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;h=0;o=0;i=tlb(a.f,a.f.length);f=a.d;g=a.i;d=a.a;e=a.b;do{n=0;for(k=new olb(a.p);k.a<k.c.c.length;){j=BD(mlb(k),10);m=Cbc(a,j);c=true;(a.q==(kAc(),dAc)||a.q==gAc)&&(c=Ccb(DD(m.b)));if(BD(m.a,19).a<0&&c){++n;i=tlb(a.f,a.f.length);a.d=a.d+BD(m.a,19).a;o+=f-a.d;f=a.d+BD(m.a,19).a;g=a.i;d=Mu(a.a);e=Mu(a.b)}else{a.f=tlb(i,i.length);a.d=f;a.a=(Qb(d),d?new Tkb(d):Nu(new olb(d)));a.b=(Qb(e),e?new Tkb(e):Nu(new olb(e)));a.i=g}}++h;l=n!=0&&Ccb(DD(b.Kb(new vgd(meb(o),meb(h)))))}while(l)} +function lYc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;g=a.f;m=b.f;h=g==(k$c(),f$c)||g==h$c;n=m==f$c||m==h$c;i=g==g$c||g==i$c;o=m==g$c||m==i$c;j=g==g$c||g==f$c;p=m==g$c||m==f$c;if(h&&n){return a.f==h$c?a:b}else if(i&&o){return a.f==i$c?a:b}else if(j&&p){if(g==g$c){l=a;k=b}else{l=b;k=a}f=(q=c.j+c.f,r=l.e+d.f,s=$wnd.Math.max(q,r),t=s-$wnd.Math.min(c.j,l.e),u=l.d+d.g-c.i,u*t);e=(v=c.i+c.g,w=k.d+d.g,A=$wnd.Math.max(v,w),B=A-$wnd.Math.min(c.i,k.d),C=k.e+d.f-c.j,B*C);return f<=e?a.f==g$c?a:b:a.f==f$c?a:b}return a} +function wGb(a){var b,c,d,e,f,g,h,i,j,k,l;k=a.e.a.c.length;for(g=new olb(a.e.a);g.a<g.c.c.length;){f=BD(mlb(g),121);f.j=false}a.i=KC(WD,oje,25,k,15,1);a.g=KC(WD,oje,25,k,15,1);a.n=new Rkb;e=0;l=new Rkb;for(i=new olb(a.e.a);i.a<i.c.c.length;){h=BD(mlb(i),121);h.d=e++;h.b.a.c.length==0&&Ekb(a.n,h);Gkb(l,h.g)}b=0;for(d=new olb(l);d.a<d.c.c.length;){c=BD(mlb(d),213);c.c=b++;c.f=false}j=l.c.length;if(a.b==null||a.b.length<j){a.b=KC(UD,Vje,25,j,15,1);a.c=KC(sbb,dle,25,j,16,1)}else{Blb(a.c)}a.d=l;a.p=new Asb(Cv(a.d.c.length));a.j=1} +function sTb(a,b){var c,d,e,f,g,h,i,j,k;if(b.e.c.length<=1){return}a.f=b;a.d=BD(vNb(a.f,(bTb(),SSb)),379);a.g=BD(vNb(a.f,WSb),19).a;a.e=Edb(ED(vNb(a.f,TSb)));a.c=Edb(ED(vNb(a.f,RSb)));it(a.b);for(e=new olb(a.f.c);e.a<e.c.c.length;){d=BD(mlb(e),282);ht(a.b,d.c,d,null);ht(a.b,d.d,d,null)}h=a.f.e.c.length;a.a=IC(UD,[nie,Vje],[104,25],15,[h,h],2);for(j=new olb(a.f.e);j.a<j.c.c.length;){i=BD(mlb(j),144);oTb(a,i,a.a[i.b])}a.i=IC(UD,[nie,Vje],[104,25],15,[h,h],2);for(f=0;f<h;++f){for(g=0;g<h;++g){c=a.a[f][g];k=1/(c*c);a.i[f][g]=k}}} +function Vfe(a){var b,c,d,e;if(a.b==null||a.b.length<=2)return;if(a.a)return;b=0;e=0;while(e<a.b.length){if(b!=e){a.b[b]=a.b[e++];a.b[b+1]=a.b[e++]}else e+=2;c=a.b[b+1];while(e<a.b.length){if(c+1<a.b[e])break;if(c+1==a.b[e]){a.b[b+1]=a.b[e+1];c=a.b[b+1];e+=2}else if(c>=a.b[e+1]){e+=2}else if(c<a.b[e+1]){a.b[b+1]=a.b[e+1];c=a.b[b+1];e+=2}else{throw vbb(new hz('Token#compactRanges(): Internel Error: ['+a.b[b]+','+a.b[b+1]+'] ['+a.b[e]+','+a.b[e+1]+']'))}}b+=2}if(b!=a.b.length){d=KC(WD,oje,25,b,15,1);$fb(a.b,0,d,0,b);a.b=d}a.a=true} +function pZb(a,b){var c,d,e,f,g,h,i;for(g=Ec(a.a).Kc();g.Ob();){f=BD(g.Pb(),17);if(f.b.c.length>0){d=new Tkb(BD(Qc(a.a,f),21));mmb();Okb(d,new EZb(b));e=new Bib(f.b,0);while(e.b<e.d.gc()){c=(sCb(e.b<e.d.gc()),BD(e.d.Xb(e.c=e.b++),70));h=-1;switch(BD(vNb(c,(Nyc(),Qwc)),272).g){case 1:h=d.c.length-1;break;case 0:h=nZb(d);break;case 2:h=0;}if(h!=-1){i=(tCb(h,d.c.length),BD(d.c[h],243));Ekb(i.b.b,c);BD(vNb(Q_b(i.b.c.i),(wtc(),Ksc)),21).Fc((Orc(),Grc));BD(vNb(Q_b(i.b.c.i),Ksc),21).Fc(Erc);uib(e);yNb(c,btc,f)}}}QZb(f,null);RZb(f,null)}} +function FLb(a,b){var c,d,e,f;c=new KLb;d=BD(GAb(NAb(new YAb(null,new Kub(a.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);e=d.gc();e=e==2?1:0;e==1&&Bbb(Hbb(BD(GAb(JAb(d.Lc(),new MLb),Xyb(Aeb(0),new Czb)),162).a,2),0)&&(e=0);d=BD(GAb(NAb(new YAb(null,new Kub(b.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[Eyb,Dyb]))),21);f=d.gc();f=f==2?1:0;f==1&&Bbb(Hbb(BD(GAb(JAb(d.Lc(),new OLb),Xyb(Aeb(0),new Czb)),162).a,2),0)&&(f=0);if(e<f){return -1}if(e==f){return 0}return 1} +function h6b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;j=new Rkb;if(!wNb(a,(wtc(),Fsc))){return j}for(d=BD(vNb(a,Fsc),15).Kc();d.Ob();){b=BD(d.Pb(),10);g6b(b,a);j.c[j.c.length]=b}for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);for(h=new olb(e.a);h.a<h.c.c.length;){g=BD(mlb(h),10);if(g.k!=(j0b(),e0b)){continue}i=BD(vNb(g,Gsc),10);!!i&&(k=new H0b,F0b(k,g),l=BD(vNb(g,Hsc),61),G0b(k,l),m=BD(Ikb(i.j,0),11),n=new UZb,QZb(n,k),RZb(n,m),undefined)}}for(c=new olb(j);c.a<c.c.c.length;){b=BD(mlb(c),10);$_b(b,BD(Ikb(a.b,a.b.c.length-1),29))}return j} +function M1b(a){var b,c,d,e,f,g,h,i,j,k,l,m;b=mpd(a);f=Ccb(DD(hkd(b,(Nyc(),fxc))));k=0;e=0;for(j=new Fyd((!a.e&&(a.e=new y5d(B2,a,7,4)),a.e));j.e!=j.i.gc();){i=BD(Dyd(j),79);h=Qld(i);g=h&&f&&Ccb(DD(hkd(i,gxc)));m=atd(BD(qud((!i.c&&(i.c=new y5d(z2,i,5,8)),i.c),0),82));h&&g?++e:h&&!g?++k:Xod(m)==b||m==b?++e:++k}for(d=new Fyd((!a.d&&(a.d=new y5d(B2,a,8,5)),a.d));d.e!=d.i.gc();){c=BD(Dyd(d),79);h=Qld(c);g=h&&f&&Ccb(DD(hkd(c,gxc)));l=atd(BD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),82));h&&g?++k:h&&!g?++e:Xod(l)==b||l==b?++k:++e}return k-e} +function ubc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;Odd(b,'Edge splitting',1);if(a.b.c.length<=2){Qdd(b);return}f=new Bib(a.b,0);g=(sCb(f.b<f.d.gc()),BD(f.d.Xb(f.c=f.b++),29));while(f.b<f.d.gc()){e=g;g=(sCb(f.b<f.d.gc()),BD(f.d.Xb(f.c=f.b++),29));for(i=new olb(e.a);i.a<i.c.c.length;){h=BD(mlb(i),10);for(k=new olb(h.j);k.a<k.c.c.length;){j=BD(mlb(k),11);for(d=new olb(j.g);d.a<d.c.c.length;){c=BD(mlb(d),17);m=c.d;l=m.i.c;l!=e&&l!=g&&zbc(c,(n=new b0b(a),__b(n,(j0b(),g0b)),yNb(n,(wtc(),$sc),c),yNb(n,(Nyc(),Vxc),(dcd(),$bd)),$_b(n,g),n))}}}}Qdd(b)} +function MTb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;h=b.p!=null&&!b.b;h||Odd(b,kme,1);c=BD(vNb(a,(wtc(),itc)),15);g=1/c.gc();if(b.n){Sdd(b,'ELK Layered uses the following '+c.gc()+' modules:');n=0;for(m=c.Kc();m.Ob();){k=BD(m.Pb(),51);d=(n<10?'0':'')+n++;Sdd(b,' Slot '+d+': '+hdb(rb(k)))}}o=0;for(l=c.Kc();l.Ob();){k=BD(l.Pb(),51);k.pf(a,Udd(b,g));++o}for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);Gkb(a.a,e.a);e.a.c=KC(SI,Uhe,1,0,5,1)}for(j=new olb(a.a);j.a<j.c.c.length;){i=BD(mlb(j),10);$_b(i,null)}a.b.c=KC(SI,Uhe,1,0,5,1);h||Qdd(b)} +function kJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;d=Edb(ED(vNb(b,(Nyc(),Bxc))));v=BD(vNb(b,Ayc),19).a;m=4;e=3;w=20/v;n=false;i=0;g=Ohe;do{f=i!=1;l=i!=0;A=0;for(q=a.a,s=0,u=q.length;s<u;++s){o=q[s];o.f=null;lJc(a,o,f,l,d);A+=$wnd.Math.abs(o.a)}do{h=pJc(a,b)}while(h);for(p=a.a,r=0,t=p.length;r<t;++r){o=p[r];c=xJc(o).a;if(c!=0){for(k=new olb(o.e);k.a<k.c.c.length;){j=BD(mlb(k),10);j.n.b+=c}}}if(i==0||i==1){--m;if(m<=0&&(A<g||-m>v)){i=2;g=Ohe}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A<w;g=A;n&&--e}}while(!(n&&e<=0))} +function UCb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;o=new Lqb;for(f=a.a.ec().Kc();f.Ob();){d=BD(f.Pb(),168);Rhb(o,d,c.Je(d))}g=(Qb(a),a?new Tkb(a):Nu(a.a.ec().Kc()));Okb(g,new WCb(o));h=Gx(g);i=new hDb(b);n=new Lqb;jrb(n.f,b,i);while(h.a.gc()!=0){j=null;k=null;l=null;for(e=h.a.ec().Kc();e.Ob();){d=BD(e.Pb(),168);if(Edb(ED(Wd(irb(o.f,d))))<=Pje){if(Mhb(n,d.a)&&!Mhb(n,d.b)){k=d.b;l=d.a;j=d;break}if(Mhb(n,d.b)){if(!Mhb(n,d.a)){k=d.a;l=d.b;j=d;break}}}}if(!j){break}m=new hDb(k);Ekb(BD(Wd(irb(n.f,l)),221).a,m);jrb(n.f,k,m);h.a.Bc(j)!=null}return i} +function UBc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;Odd(c,'Depth-first cycle removal',1);l=b.a;k=l.c.length;a.c=new Rkb;a.d=KC(sbb,dle,25,k,16,1);a.a=KC(sbb,dle,25,k,16,1);a.b=new Rkb;g=0;for(j=new olb(l);j.a<j.c.c.length;){i=BD(mlb(j),10);i.p=g;Qq(R_b(i))&&Ekb(a.c,i);++g}for(n=new olb(a.c);n.a<n.c.c.length;){m=BD(mlb(n),10);TBc(a,m)}for(f=0;f<k;f++){if(!a.d[f]){h=(tCb(f,l.c.length),BD(l.c[f],10));TBc(a,h)}}for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),17);PZb(d,true);yNb(b,(wtc(),Asc),(Bcb(),true))}a.c=null;a.d=null;a.a=null;a.b=null;Qdd(c)} +function PSc(a,b){var c,d,e,f,g,h,i;a.a.c=KC(SI,Uhe,1,0,5,1);for(d=Jsb(b.b,0);d.b!=d.d.c;){c=BD(Xsb(d),86);if(c.b.b==0){yNb(c,(mTc(),jTc),(Bcb(),true));Ekb(a.a,c)}}switch(a.a.c.length){case 0:e=new XRc(0,b,'DUMMY_ROOT');yNb(e,(mTc(),jTc),(Bcb(),true));yNb(e,YSc,true);Dsb(b.b,e);break;case 1:break;default:f=new XRc(0,b,'SUPER_ROOT');for(h=new olb(a.a);h.a<h.c.c.length;){g=BD(mlb(h),86);i=new QRc(f,g);yNb(i,(mTc(),YSc),(Bcb(),true));Dsb(f.a.a,i);Dsb(f.d,i);Dsb(g.b,i);yNb(g,jTc,false)}yNb(f,(mTc(),jTc),(Bcb(),true));yNb(f,YSc,true);Dsb(b.b,f);}} +function z6c(a,b){i6c();var c,d,e,f,g,h;f=b.c-(a.c+a.b);e=a.c-(b.c+b.b);g=a.d-(b.d+b.a);c=b.d-(a.d+a.a);d=$wnd.Math.max(e,f);h=$wnd.Math.max(g,c);Iy();My(Jqe);if(($wnd.Math.abs(d)<=Jqe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Ny(isNaN(d),isNaN(0)))>=0^(null,My(Jqe),($wnd.Math.abs(h)<=Jqe||h==0||isNaN(h)&&isNaN(0)?0:h<0?-1:h>0?1:Ny(isNaN(h),isNaN(0)))>=0)){return $wnd.Math.max(h,d)}My(Jqe);if(($wnd.Math.abs(d)<=Jqe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Ny(isNaN(d),isNaN(0)))>0){return $wnd.Math.sqrt(h*h+d*d)}return -$wnd.Math.sqrt(h*h+d*d)} +function Kge(a,b){var c,d,e,f,g,h;if(!b)return;!a.a&&(a.a=new Wvb);if(a.e==2){Tvb(a.a,b);return}if(b.e==1){for(e=0;e<b.em();e++)Kge(a,b.am(e));return}h=a.a.a.c.length;if(h==0){Tvb(a.a,b);return}g=BD(Uvb(a.a,h-1),117);if(!((g.e==0||g.e==10)&&(b.e==0||b.e==10))){Tvb(a.a,b);return}f=b.e==0?2:b.bm().length;if(g.e==0){c=new Ifb;d=g._l();d>=Tje?Efb(c,Tee(d)):Afb(c,d&aje);g=(++vfe,new Hge(10,null,0));Vvb(a.a,g,h-1)}else{c=(g.bm().length+f,new Ifb);Efb(c,g.bm())}if(b.e==0){d=b._l();d>=Tje?Efb(c,Tee(d)):Afb(c,d&aje)}else{Efb(c,b.bm())}BD(g,521).b=c.a} +function rgb(a){var b,c,d,e,f;if(a.g!=null){return a.g}if(a.a<32){a.g=rhb(Cbb(a.f),QD(a.e));return a.g}e=shb((!a.c&&(a.c=fhb(a.f)),a.c),0);if(a.e==0){return e}b=(!a.c&&(a.c=fhb(a.f)),a.c).e<0?2:1;c=e.length;d=-a.e+c-b;f=new Ufb;f.a+=''+e;if(a.e>0&&d>=-6){if(d>=0){Tfb(f,c-QD(a.e),String.fromCharCode(46))}else{f.a=qfb(f.a,0,b-1)+'0.'+pfb(f.a,b-1);Tfb(f,b+1,zfb(egb,0,-QD(d)-1))}}else{if(c-b>=1){Tfb(f,b,String.fromCharCode(46));++c}Tfb(f,c,String.fromCharCode(69));d>0&&Tfb(f,++c,String.fromCharCode(43));Tfb(f,++c,''+Ubb(Cbb(d)))}a.g=f.a;return a.g} +function npc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(c.dc()){return}h=0;m=0;d=c.Kc();o=BD(d.Pb(),19).a;while(h<b.f){if(h==o){m=0;d.Ob()?(o=BD(d.Pb(),19).a):(o=b.f+1)}if(h!=m){q=BD(Ikb(a.b,h),29);n=BD(Ikb(a.b,m),29);p=Mu(q.a);for(l=new olb(p);l.a<l.c.c.length;){k=BD(mlb(l),10);Z_b(k,n.a.c.length,n);if(m==0){g=Mu(R_b(k));for(f=new olb(g);f.a<f.c.c.length;){e=BD(mlb(f),17);PZb(e,true);yNb(a,(wtc(),Asc),(Bcb(),true));Noc(a,e,1)}}}}++m;++h}i=new Bib(a.b,0);while(i.b<i.d.gc()){j=(sCb(i.b<i.d.gc()),BD(i.d.Xb(i.c=i.b++),29));j.a.c.length==0&&uib(i)}} +function xmc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;g=b.b;k=g.o;i=g.d;d=Edb(ED(c_b(g,(Nyc(),lyc))));e=Edb(ED(c_b(g,nyc)));j=Edb(ED(c_b(g,xyc)));h=new L_b;v_b(h,i.d,i.c,i.a,i.b);m=tmc(b,d,e,j);for(r=new olb(b.d);r.a<r.c.c.length;){q=BD(mlb(r),101);for(o=q.f.a.ec().Kc();o.Ob();){n=BD(o.Pb(),409);f=n.a;l=rmc(n);c=(s=new s7c,pmc(n,n.c,m,s),omc(n,l,m,s),pmc(n,n.d,m,s),s);c=a.Uf(n,l,c);Osb(f.a);ye(f.a,c);MAb(new YAb(null,new Kub(c,16)),new Bmc(k,h))}p=q.i;if(p){wmc(q,p,m,e);t=new g7c(p.g);ymc(k,h,t);P6c(t,p.j);ymc(k,h,t)}}v_b(i,h.d,h.c,h.a,h.b)} +function rgc(a,b,c){var d,e,f;e=BD(vNb(b,(Nyc(),swc)),275);if(e==(yrc(),wrc)){return}Odd(c,'Horizontal Compaction',1);a.a=b;f=new Ygc;d=new cEb((f.d=b,f.c=BD(vNb(f.d,Swc),218),Pgc(f),Wgc(f),Vgc(f),f.a));aEb(d,a.b);switch(BD(vNb(b,rwc),422).g){case 1:$Db(d,new jfc(a.a));break;default:$Db(d,(ODb(),MDb));}switch(e.g){case 1:TDb(d);break;case 2:TDb(SDb(d,(ead(),bad)));break;case 3:TDb(_Db(SDb(TDb(d),(ead(),bad)),new Bgc));break;case 4:TDb(_Db(SDb(TDb(d),(ead(),bad)),new Dgc(f)));break;case 5:TDb(ZDb(d,pgc));}SDb(d,(ead(),aad));d.e=true;Mgc(f);Qdd(c)} +function mYc(a,b,c,d,e,f,g,h){var i,j,k,l;i=Ou(OC(GC(z_,1),Uhe,220,0,[b,c,d,e]));l=null;switch(a.b.g){case 1:l=Ou(OC(GC(o_,1),Uhe,526,0,[new uYc,new oYc,new qYc]));break;case 0:l=Ou(OC(GC(o_,1),Uhe,526,0,[new qYc,new oYc,new uYc]));break;case 2:l=Ou(OC(GC(o_,1),Uhe,526,0,[new oYc,new uYc,new qYc]));}for(k=new olb(l);k.a<k.c.c.length;){j=BD(mlb(k),526);i.c.length>1&&(i=j.mg(i,a.a,h))}if(i.c.length==1){return BD(Ikb(i,i.c.length-1),220)}if(i.c.length==2){return lYc((tCb(0,i.c.length),BD(i.c[0],220)),(tCb(1,i.c.length),BD(i.c[1],220)),g,f)}return null} +function JNb(a){var b,c,d,e,f,g;Hkb(a.a,new PNb);for(c=new olb(a.a);c.a<c.c.c.length;){b=BD(mlb(c),221);d=c7c(R6c(BD(a.b,65).c),BD(b.b,65).c);if(FNb){g=BD(a.b,65).b;f=BD(b.b,65).b;if($wnd.Math.abs(d.a)>=$wnd.Math.abs(d.b)){d.b=0;f.d+f.a>g.d&&f.d<g.d+g.a&&$6c(d,$wnd.Math.max(g.c-(f.c+f.b),f.c-(g.c+g.b)))}else{d.a=0;f.c+f.b>g.c&&f.c<g.c+g.b&&$6c(d,$wnd.Math.max(g.d-(f.d+f.a),f.d-(g.d+g.a)))}}else{$6c(d,_Nb(BD(a.b,65),BD(b.b,65)))}e=$wnd.Math.sqrt(d.a*d.a+d.b*d.b);e=LNb(GNb,b,e,d);$6c(d,e);$Nb(BD(b.b,65),d);Hkb(b.a,new RNb(d));BD(GNb.b,65);KNb(GNb,HNb,b)}} +function VJc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;a.f=new KFb;j=0;e=0;for(g=new olb(a.e.b);g.a<g.c.c.length;){f=BD(mlb(g),29);for(i=new olb(f.a);i.a<i.c.c.length;){h=BD(mlb(i),10);h.p=j++;for(d=new Sr(ur(U_b(h).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);c.p=e++}b=bKc(h);for(m=new olb(h.j);m.a<m.c.c.length;){l=BD(mlb(m),11);if(b){o=l.a.b;if(o!=$wnd.Math.floor(o)){k=o-Sbb(Cbb($wnd.Math.round(o)));l.a.b-=k}}n=l.n.b+l.a.b;if(n!=$wnd.Math.floor(n)){k=n-Sbb(Cbb($wnd.Math.round(n)));l.n.b-=k}}}}a.g=j;a.b=e;a.i=KC(xY,Uhe,401,j,0,1);a.c=KC(wY,Uhe,649,e,0,1);a.d.a.$b()} +function Uxd(a){var b,c,d,e,f,g,h,i,j;if(a.ej()){i=a.fj();if(a.i>0){b=new _zd(a.i,a.g);c=a.i;f=c<100?null:new Ixd(c);if(a.ij()){for(d=0;d<a.i;++d){g=a.g[d];f=a.kj(g,f)}}oud(a);e=c==1?a.Zi(4,qud(b,0),null,0,i):a.Zi(6,b,null,-1,i);if(a.bj()){for(d=new $yd(b);d.e!=d.i.gc();){f=a.dj(Zyd(d),f)}if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}else{if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}}else{oud(a);a.$i(a.Zi(6,(mmb(),jmb),null,-1,i))}}else if(a.bj()){if(a.i>0){h=a.g;j=a.i;oud(a);f=j<100?null:new Ixd(j);for(d=0;d<j;++d){g=h[d];f=a.dj(g,f)}!!f&&f.Fi()}else{oud(a)}}else{oud(a)}} +function ZQc(a,b,c){var d,e,f,g,h,i,j,k,l,m;TQc(this);c==(FQc(),DQc)?Qqb(this.r,a):Qqb(this.w,a);k=Pje;j=Qje;for(g=b.a.ec().Kc();g.Ob();){e=BD(g.Pb(),46);h=BD(e.a,455);d=BD(e.b,17);i=d.c;i==a&&(i=d.d);h==DQc?Qqb(this.r,i):Qqb(this.w,i);m=(Ucd(),Lcd).Hc(i.j)?Edb(ED(vNb(i,(wtc(),qtc)))):l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).b;k=$wnd.Math.min(k,m);j=$wnd.Math.max(j,m)}l=(Ucd(),Lcd).Hc(a.j)?Edb(ED(vNb(a,(wtc(),qtc)))):l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a])).b;XQc(this,l,k,j);for(f=b.a.ec().Kc();f.Ob();){e=BD(f.Pb(),46);UQc(this,BD(e.b,17))}this.o=false} +function gD(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;c=a.l&8191;d=a.l>>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+=c*k;G+=d*k}l!=0&&(G+=c*l);n=B&Eje;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&4095)<<8;u=v+w+A;p+=m>>22;m&=Eje;u+=p>>22;p&=Eje;u&=Fje;return TC(m,p,u)} +function o7b(a){var b,c,d,e,f,g,h;h=BD(Ikb(a.j,0),11);if(h.g.c.length!=0&&h.e.c.length!=0){throw vbb(new Zdb('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.'))}if(h.g.c.length!=0){f=Pje;for(c=new olb(h.g);c.a<c.c.c.length;){b=BD(mlb(c),17);g=b.d.i;d=BD(vNb(g,(Nyc(),txc)),142);f=$wnd.Math.min(f,g.n.a-d.b)}return new cc(Qb(f))}if(h.e.c.length!=0){e=Qje;for(c=new olb(h.e);c.a<c.c.c.length;){b=BD(mlb(c),17);g=b.c.i;d=BD(vNb(g,(Nyc(),txc)),142);e=$wnd.Math.max(e,g.n.a+g.o.a+d.c)}return new cc(Qb(e))}return wb(),wb(),vb} +function ELd(a,b){var c,d,e,f,g,h,i;if(a.Fk()){if(a.i>4){if(a.wj(b)){if(a.rk()){e=BD(b,49);d=e.Ug();i=d==a.e&&(a.Dk()?e.Og(e.Vg(),a.zk())==a.Ak():-1-e.Vg()==a.aj());if(a.Ek()&&!i&&!d&&!!e.Zg()){for(f=0;f<a.i;++f){c=a.Gk(BD(a.g[f],56));if(PD(c)===PD(b)){return true}}}return i}else if(a.Dk()&&!a.Ck()){g=BD(b,56).ah(zUd(BD(a.ak(),18)));if(PD(g)===PD(a.e)){return true}else if(g==null||!BD(g,56).kh()){return false}}}else{return false}}h=pud(a,b);if(a.Ek()&&!h){for(f=0;f<a.i;++f){e=a.Gk(BD(a.g[f],56));if(PD(e)===PD(b)){return true}}}return h}else{return pud(a,b)}} +function mHc(a,b){var c,d,e,f,g,h,i,j,k,l,m;k=new Rkb;m=new Tqb;g=b.b;for(e=0;e<g.c.length;e++){j=(tCb(e,g.c.length),BD(g.c[e],29)).a;k.c=KC(SI,Uhe,1,0,5,1);for(f=0;f<j.c.length;f++){h=a.a[e][f];h.p=f;h.k==(j0b(),i0b)&&(k.c[k.c.length]=h,true);Nkb(BD(Ikb(b.b,e),29).a,f,h);h.j.c=KC(SI,Uhe,1,0,5,1);Gkb(h.j,BD(BD(Ikb(a.b,e),15).Xb(f),14));ecd(BD(vNb(h,(Nyc(),Vxc)),98))||yNb(h,Vxc,(dcd(),Zbd))}for(d=new olb(k);d.a<d.c.c.length;){c=BD(mlb(d),10);l=kHc(c);m.a.zc(l,m);m.a.zc(c,m)}}for(i=m.a.ec().Kc();i.Ob();){h=BD(i.Pb(),10);mmb();Okb(h.j,(Occ(),Icc));h.i=true;N_b(h)}} +function g6b(a,b){var c,d,e,f,g,h,i,j,k,l;k=BD(vNb(a,(wtc(),Hsc)),61);d=BD(Ikb(a.j,0),11);k==(Ucd(),Acd)?G0b(d,Rcd):k==Rcd&&G0b(d,Acd);if(BD(vNb(b,(Nyc(),Fxc)),174).Hc((tdd(),sdd))){i=Edb(ED(vNb(a,tyc)));j=Edb(ED(vNb(a,uyc)));g=Edb(ED(vNb(a,ryc)));h=BD(vNb(b,Yxc),21);if(h.Hc((rcd(),ncd))){c=j;l=a.o.a/2-d.n.a;for(f=new olb(d.f);f.a<f.c.c.length;){e=BD(mlb(f),70);e.n.b=c;e.n.a=l-e.o.a/2;c+=e.o.b+g}}else if(h.Hc(pcd)){for(f=new olb(d.f);f.a<f.c.c.length;){e=BD(mlb(f),70);e.n.a=i+a.o.a-d.n.a}}WGb(new YGb((a$b(),new l$b(b,false,false,new T$b))),new x$b(null,a,false))}} +function Ugc(a,b){var c,d,e,f,g,h,i,j,k;if(b.c.length==0){return}mmb();Mlb(b.c,b.c.length,null);e=new olb(b);d=BD(mlb(e),145);while(e.a<e.c.c.length){c=BD(mlb(e),145);if(ADb(d.e.c,c.e.c)&&!(DDb(B6c(d.e).b,c.e.d)||DDb(B6c(c.e).b,d.e.d))){d=(Gkb(d.k,c.k),Gkb(d.b,c.b),Gkb(d.c,c.c),ye(d.i,c.i),Gkb(d.d,c.d),Gkb(d.j,c.j),f=$wnd.Math.min(d.e.c,c.e.c),g=$wnd.Math.min(d.e.d,c.e.d),h=$wnd.Math.max(d.e.c+d.e.b,c.e.c+c.e.b),i=h-f,j=$wnd.Math.max(d.e.d+d.e.a,c.e.d+c.e.a),k=j-g,G6c(d.e,f,g,i,k),hEb(d.f,c.f),!d.a&&(d.a=c.a),Gkb(d.g,c.g),Ekb(d.g,c),d)}else{Xgc(a,d);d=c}}Xgc(a,d)} +function e_b(a,b,c,d){var e,f,g,h,i,j;h=a.j;if(h==(Ucd(),Scd)&&b!=(dcd(),bcd)&&b!=(dcd(),ccd)){h=W$b(a,c);G0b(a,h);!(!a.q?(mmb(),mmb(),kmb):a.q)._b((Nyc(),Uxc))&&h!=Scd&&(a.n.a!=0||a.n.b!=0)&&yNb(a,Uxc,V$b(a,h))}if(b==(dcd(),_bd)){j=0;switch(h.g){case 1:case 3:f=a.i.o.a;f>0&&(j=a.n.a/f);break;case 2:case 4:e=a.i.o.b;e>0&&(j=a.n.b/e);}yNb(a,(wtc(),htc),j)}i=a.o;g=a.a;if(d){g.a=d.a;g.b=d.b;a.d=true}else if(b!=bcd&&b!=ccd&&h!=Scd){switch(h.g){case 1:g.a=i.a/2;break;case 2:g.a=i.a;g.b=i.b/2;break;case 3:g.a=i.a/2;g.b=i.b;break;case 4:g.b=i.b/2;}}else{g.a=i.a/2;g.b=i.b/2}} +function vwd(a){var b,c,d,e,f,g,h,i,j,k;if(a.ej()){k=a.Vi();i=a.fj();if(k>0){b=new Aud(a.Gi());c=k;f=c<100?null:new Ixd(c);Cvd(a,c,b.g);e=c==1?a.Zi(4,qud(b,0),null,0,i):a.Zi(6,b,null,-1,i);if(a.bj()){for(d=new Fyd(b);d.e!=d.i.gc();){f=a.dj(Dyd(d),f)}if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}else{if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}}else{Cvd(a,a.Vi(),a.Wi());a.$i(a.Zi(6,(mmb(),jmb),null,-1,i))}}else if(a.bj()){k=a.Vi();if(k>0){h=a.Wi();j=k;Cvd(a,k,h);f=j<100?null:new Ixd(j);for(d=0;d<j;++d){g=h[d];f=a.dj(g,f)}!!f&&f.Fi()}else{Cvd(a,a.Vi(),a.Wi())}}else{Cvd(a,a.Vi(),a.Wi())}} +function LEc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;for(h=new olb(b);h.a<h.c.c.length;){f=BD(mlb(h),233);f.e=null;f.c=0}i=null;for(g=new olb(b);g.a<g.c.c.length;){f=BD(mlb(g),233);l=f.d[0];if(c&&l.k!=(j0b(),h0b)){continue}for(n=BD(vNb(l,(wtc(),Qsc)),15).Kc();n.Ob();){m=BD(n.Pb(),10);if(!c||m.k==(j0b(),h0b)){(!f.e&&(f.e=new Rkb),f.e).Fc(a.b[m.c.p][m.p]);++a.b[m.c.p][m.p].c}}if(!c&&l.k==(j0b(),h0b)){if(i){for(k=BD(Qc(a.d,i),21).Kc();k.Ob();){j=BD(k.Pb(),10);for(e=BD(Qc(a.d,l),21).Kc();e.Ob();){d=BD(e.Pb(),10);YEc(a.b[j.c.p][j.p]).Fc(a.b[d.c.p][d.p]);++a.b[d.c.p][d.p].c}}}i=l}}} +function OHc(a,b){var c,d,e,f,g,h,i,j,k;c=0;k=new Rkb;for(h=new olb(b);h.a<h.c.c.length;){g=BD(mlb(h),11);AHc(a.b,a.d[g.p]);k.c=KC(SI,Uhe,1,0,5,1);switch(g.i.k.g){case 0:d=BD(vNb(g,(wtc(),gtc)),10);Hkb(d.j,new xIc(k));break;case 1:Ctb(KAb(JAb(new YAb(null,new Kub(g.i.j,16)),new zIc(g))),new CIc(k));break;case 3:e=BD(vNb(g,(wtc(),$sc)),11);Ekb(k,new vgd(e,meb(g.e.c.length+g.g.c.length)));}for(j=new olb(k);j.a<j.c.c.length;){i=BD(mlb(j),46);f=aIc(a,BD(i.a,11));if(f>a.d[g.p]){c+=zHc(a.b,f)*BD(i.b,19).a;Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function eed(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;l=new g7c(BD(hkd(a,(X7c(),R7c)),8));l.a=$wnd.Math.max(l.a-c.b-c.c,0);l.b=$wnd.Math.max(l.b-c.d-c.a,0);e=ED(hkd(a,L7c));(e==null||(uCb(e),e)<=0)&&(e=1.3);h=new Rkb;for(o=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));o.e!=o.i.gc();){n=BD(Dyd(o),33);g=new xed(n);h.c[h.c.length]=g}m=BD(hkd(a,M7c),311);switch(m.g){case 3:q=bed(h,b,l.a,l.b,(j=d,uCb(e),e,j));break;case 1:q=aed(h,b,l.a,l.b,(k=d,uCb(e),e,k));break;default:q=ced(h,b,l.a,l.b,(i=d,uCb(e),e,i));}f=new wed(q);p=fed(f,b,c,l.a,l.b,d,(uCb(e),e));Afd(a,p.a,p.b,false,true)} +function vkc(a,b){var c,d,e,f;c=b.b;f=new Tkb(c.j);e=0;d=c.j;d.c=KC(SI,Uhe,1,0,5,1);hkc(BD(Si(a.b,(Ucd(),Acd),(Fkc(),Ekc)),15),c);e=ikc(f,e,new blc,d);hkc(BD(Si(a.b,Acd,Dkc),15),c);e=ikc(f,e,new dlc,d);hkc(BD(Si(a.b,Acd,Ckc),15),c);hkc(BD(Si(a.b,zcd,Ekc),15),c);hkc(BD(Si(a.b,zcd,Dkc),15),c);e=ikc(f,e,new flc,d);hkc(BD(Si(a.b,zcd,Ckc),15),c);hkc(BD(Si(a.b,Rcd,Ekc),15),c);e=ikc(f,e,new hlc,d);hkc(BD(Si(a.b,Rcd,Dkc),15),c);e=ikc(f,e,new jlc,d);hkc(BD(Si(a.b,Rcd,Ckc),15),c);hkc(BD(Si(a.b,Tcd,Ekc),15),c);e=ikc(f,e,new Pkc,d);hkc(BD(Si(a.b,Tcd,Dkc),15),c);hkc(BD(Si(a.b,Tcd,Ckc),15),c)} +function nbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;Odd(b,'Layer size calculation',1);k=Pje;j=Qje;e=false;for(h=new olb(a.b);h.a<h.c.c.length;){g=BD(mlb(h),29);i=g.c;i.a=0;i.b=0;if(g.a.c.length==0){continue}e=true;for(m=new olb(g.a);m.a<m.c.c.length;){l=BD(mlb(m),10);o=l.o;n=l.d;i.a=$wnd.Math.max(i.a,o.a+n.b+n.c)}d=BD(Ikb(g.a,0),10);p=d.n.b-d.d.d;d.k==(j0b(),e0b)&&(p-=BD(vNb(a,(Nyc(),yyc)),142).d);f=BD(Ikb(g.a,g.a.c.length-1),10);c=f.n.b+f.o.b+f.d.a;f.k==e0b&&(c+=BD(vNb(a,(Nyc(),yyc)),142).a);i.b=c-p;k=$wnd.Math.min(k,p);j=$wnd.Math.max(j,c)}if(!e){k=0;j=0}a.f.b=j-k;a.c.b-=k;Qdd(b)} +function h_b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;f=0;g=0;for(j=new olb(a.a);j.a<j.c.c.length;){h=BD(mlb(j),10);f=$wnd.Math.max(f,h.d.b);g=$wnd.Math.max(g,h.d.c)}for(i=new olb(a.a);i.a<i.c.c.length;){h=BD(mlb(i),10);c=BD(vNb(h,(Nyc(),mwc)),248);switch(c.g){case 1:o=0;break;case 2:o=1;break;case 5:o=0.5;break;default:d=0;l=0;for(n=new olb(h.j);n.a<n.c.c.length;){m=BD(mlb(n),11);m.e.c.length==0||++d;m.g.c.length==0||++l}d+l==0?(o=0.5):(o=l/(d+l));}q=a.c;k=h.o.a;r=(q.a-k)*o;o>0.5?(r-=g*2*(o-0.5)):o<0.5&&(r+=f*2*(0.5-o));e=h.d.b;r<e&&(r=e);p=h.d.c;r>q.a-p-k&&(r=q.a-p-k);h.n.a=b+r}} +function ced(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;h=KC(UD,Vje,25,a.c.length,15,1);m=new gub(new Ned);_tb(m,a);j=0;p=new Rkb;while(m.b.c.length!=0){g=BD(m.b.c.length==0?null:Ikb(m.b,0),157);if(j>1&&red(g)*qed(g)/2>h[0]){f=0;while(f<p.c.length-1&&red(g)*qed(g)/2>h[f]){++f}o=new Jib(p,0,f+1);l=new wed(o);k=red(g)/qed(g);i=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),i);zCb(cub(m,l));n=new Jib(p,f+1,p.c.length);_tb(m,n);p.c=KC(SI,Uhe,1,0,5,1);j=0;Dlb(h,h.length,0)}else{q=m.b.c.length==0?null:Ikb(m.b,0);q!=null&&fub(m,0);j>0&&(h[j]=h[j-1]);h[j]+=red(g)*qed(g);++j;p.c[p.c.length]=g}}return p} +function Wac(a){var b,c,d,e,f;d=BD(vNb(a,(Nyc(),mxc)),163);if(d==(Ctc(),ytc)){for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!Yac(b)){throw vbb(new y2c(Fne+P_b(a)+"' 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(d==Atc){for(f=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!Yac(e)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. "+'LAST_SEPARATE nodes must not have outgoing edges.'))}}}} +function C9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;Odd(b,'Label dummy removal',1);d=Edb(ED(vNb(a,(Nyc(),nyc))));e=Edb(ED(vNb(a,ryc)));j=BD(vNb(a,Lwc),103);for(i=new olb(a.b);i.a<i.c.c.length;){h=BD(mlb(i),29);l=new Bib(h.a,0);while(l.b<l.d.gc()){k=(sCb(l.b<l.d.gc()),BD(l.d.Xb(l.c=l.b++),10));if(k.k==(j0b(),f0b)){m=BD(vNb(k,(wtc(),$sc)),17);o=Edb(ED(vNb(m,Zwc)));g=PD(vNb(k,Ssc))===PD((rbd(),obd));c=new g7c(k.n);g&&(c.b+=o+d);f=new f7c(k.o.a,k.o.b-o-d);n=BD(vNb(k,ktc),15);j==(ead(),dad)||j==_9c?B9b(n,c,e,f,g,j):A9b(n,c,e,f);Gkb(m.b,n);sbc(k,PD(vNb(a,Swc))===PD((Aad(),xad)));uib(l)}}}Qdd(b)} +function tZb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;i=new Rkb;for(f=new olb(b.a);f.a<f.c.c.length;){e=BD(mlb(f),10);for(h=new olb(e.j);h.a<h.c.c.length;){g=BD(mlb(h),11);k=null;for(t=k_b(g.g),u=0,v=t.length;u<v;++u){s=t[u];if(!f_b(s.d.i,c)){r=oZb(a,b,c,s,s.c,(KAc(),IAc),k);r!=k&&(i.c[i.c.length]=r,true);r.c&&(k=r)}}j=null;for(o=k_b(g.e),p=0,q=o.length;p<q;++p){n=o[p];if(!f_b(n.c.i,c)){r=oZb(a,b,c,n,n.d,(KAc(),HAc),j);r!=j&&(i.c[i.c.length]=r,true);r.c&&(j=r)}}}}for(m=new olb(i);m.a<m.c.c.length;){l=BD(mlb(m),441);Jkb(b.a,l.a,0)!=-1||Ekb(b.a,l.a);l.c&&(d.c[d.c.length]=l,true)}} +function jCc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;Odd(c,'Interactive cycle breaking',1);l=new Rkb;for(n=new olb(b.a);n.a<n.c.c.length;){m=BD(mlb(n),10);m.p=1;o=T_b(m).a;for(k=W_b(m,(KAc(),IAc)).Kc();k.Ob();){j=BD(k.Pb(),11);for(f=new olb(j.g);f.a<f.c.c.length;){d=BD(mlb(f),17);p=d.d.i;if(p!=m){q=T_b(p).a;q<o&&(l.c[l.c.length]=d,true)}}}}for(g=new olb(l);g.a<g.c.c.length;){d=BD(mlb(g),17);PZb(d,true)}l.c=KC(SI,Uhe,1,0,5,1);for(i=new olb(b.a);i.a<i.c.c.length;){h=BD(mlb(i),10);h.p>0&&iCc(a,h,l)}for(e=new olb(l);e.a<e.c.c.length;){d=BD(mlb(e),17);PZb(d,true)}l.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} +function _z(a,b){var c,d,e,f,g,h,i,j,k;j='';if(b.length==0){return a.de(Zie,Xie,-1,-1)}k=ufb(b);dfb(k.substr(0,3),'at ')&&(k=k.substr(3));k=k.replace(/\[.*?\]/g,'');g=k.indexOf('(');if(g==-1){g=k.indexOf('@');if(g==-1){j=k;k=''}else{j=ufb(k.substr(g+1));k=ufb(k.substr(0,g))}}else{c=k.indexOf(')',g);j=k.substr(g+1,c-(g+1));k=ufb(k.substr(0,g))}g=hfb(k,wfb(46));g!=-1&&(k=k.substr(g+1));(k.length==0||dfb(k,'Anonymous function'))&&(k=Xie);h=kfb(j,wfb(58));e=lfb(j,wfb(58),h-1);i=-1;d=-1;f=Zie;if(h!=-1&&e!=-1){f=j.substr(0,e);i=Vz(j.substr(e+1,h-(e+1)));d=Vz(j.substr(h+1))}return a.de(f,k,i,d)} +function UC(a,b,c){var d,e,f,g,h,i;if(b.l==0&&b.m==0&&b.h==0){throw vbb(new ocb('divide by zero'))}if(a.l==0&&a.m==0&&a.h==0){c&&(QC=TC(0,0,0));return TC(0,0,0)}if(b.h==Gje&&b.m==0&&b.l==0){return VC(a,c)}i=false;if(b.h>>19!=0){b=hD(b);i=!i}g=_C(b);f=false;e=false;d=false;if(a.h==Gje&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=SC((wD(),sD));d=true;i=!i}else{h=lD(a,g);i&&ZC(h);c&&(QC=TC(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=hD(a);d=true;i=!i}if(g!=-1){return WC(a,g,i,f,c)}if(eD(a,b)<0){c&&(f?(QC=hD(a)):(QC=TC(a.l,a.m,a.h)));return TC(0,0,0)}return XC(d?a:TC(a.l,a.m,a.h),b,i,f,e,c)} +function F2c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.e&&a.c.c<a.f){throw vbb(new Zdb('Expected '+a.f+' phases to be configured; '+'only found '+a.c.c))}k=BD(gdb(a.g),9);n=Pu(a.f);for(f=k,h=0,j=f.length;h<j;++h){d=f[h];l=BD(B2c(a,d.g),246);l?Ekb(n,BD(I2c(a,l),123)):(n.c[n.c.length]=null,true)}o=new j3c;MAb(JAb(NAb(JAb(new YAb(null,new Kub(n,16)),new O2c),new Q2c(b)),new S2c),new U2c(o));d3c(o,a.a);c=new Rkb;for(e=k,g=0,i=e.length;g<i;++g){d=e[g];Gkb(c,J2c(a,Dx(BD(B2c(o,d.g),20))));m=BD(Ikb(n,d.g),123);!!m&&(c.c[c.c.length]=m,true)}Gkb(c,J2c(a,Dx(BD(B2c(o,k[k.length-1].g+1),20))));return c} +function qCc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;Odd(c,'Model order cycle breaking',1);a.a=0;a.b=0;n=new Rkb;k=b.a.c.length;for(j=new olb(b.a);j.a<j.c.c.length;){i=BD(mlb(j),10);wNb(i,(wtc(),Zsc))&&(k=$wnd.Math.max(k,BD(vNb(i,Zsc),19).a+1))}for(p=new olb(b.a);p.a<p.c.c.length;){o=BD(mlb(p),10);g=pCc(a,o,k);for(m=W_b(o,(KAc(),IAc)).Kc();m.Ob();){l=BD(m.Pb(),11);for(f=new olb(l.g);f.a<f.c.c.length;){d=BD(mlb(f),17);q=d.d.i;h=pCc(a,q,k);h<g&&(n.c[n.c.length]=d,true)}}}for(e=new olb(n);e.a<e.c.c.length;){d=BD(mlb(e),17);PZb(d,true);yNb(b,(wtc(),Asc),(Bcb(),true))}n.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} +function kQc(a,b){var c,d,e,f,g,h,i;if(a.g>b.f||b.g>a.f){return}c=0;d=0;for(g=a.w.a.ec().Kc();g.Ob();){e=BD(g.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&++c}for(h=a.r.a.ec().Kc();h.Ob();){e=BD(h.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&--c}for(i=b.w.a.ec().Kc();i.Ob();){e=BD(i.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&++d}for(f=b.r.a.ec().Kc();f.Ob();){e=BD(f.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&--d}if(c<d){new BQc(a,b,d-c)}else if(d<c){new BQc(b,a,c-d)}else{new BQc(b,a,0);new BQc(a,b,0)}} +function JPb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;j=b.c;e=IOb(a.e);l=Y6c(b7c(R6c(HOb(a.e)),a.d*a.a,a.c*a.b),-0.5);c=e.a-l.a;d=e.b-l.b;g=b.a;c=g.c-c;d=g.d-d;for(i=new olb(j);i.a<i.c.c.length;){h=BD(mlb(i),395);m=h.b;n=c+m.a;q=d+m.b;o=QD(n/a.a);r=QD(q/a.b);f=h.a;switch(f.g){case 0:k=(RMb(),OMb);break;case 1:k=(RMb(),NMb);break;case 2:k=(RMb(),PMb);break;default:k=(RMb(),QMb);}if(f.a){s=QD((q+h.c)/a.b);Ekb(a.f,new uOb(k,meb(r),meb(s)));f==(ROb(),QOb)?nNb(a,0,r,o,s):nNb(a,o,r,a.d-1,s)}else{p=QD((n+h.c)/a.a);Ekb(a.f,new uOb(k,meb(o),meb(p)));f==(ROb(),OOb)?nNb(a,o,0,p,r):nNb(a,o,r,p,a.c-1)}}} +function coc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;m=new Rkb;e=new Rkb;p=null;for(h=b.Kc();h.Ob();){g=BD(h.Pb(),19);f=new qoc(g.a);e.c[e.c.length]=f;if(p){f.d=p;p.e=f}p=f}t=boc(a);for(k=0;k<e.c.length;++k){n=null;q=poc((tCb(0,e.c.length),BD(e.c[0],652)));c=null;d=Pje;for(l=1;l<a.b.c.length;++l){r=q?$wnd.Math.abs(q.b-l):$wnd.Math.abs(l-n.b)+1;o=n?$wnd.Math.abs(l-n.b):r+1;if(o<r){j=n;i=o}else{j=q;i=r}s=(u=Edb(ED(vNb(a,(Nyc(),Hyc)))),t[l]+$wnd.Math.pow(i,u));if(s<d){d=s;c=j;c.c=l}if(!!q&&l==q.b){n=q;q=koc(q)}}if(c){Ekb(m,meb(c.c));c.a=true;loc(c)}}mmb();Mlb(m.c,m.c.length,null);return m} +function qNd(a){var b,c,d,e,f,g,h,i,j,k;b=new zNd;c=new zNd;j=dfb(Qve,(e=Dmd(a.b,Rve),!e?null:GD(AAd((!e.b&&(e.b=new sId((jGd(),fGd),x6,e)),e.b),Sve))));for(i=0;i<a.i;++i){h=BD(a.g[i],170);if(JD(h,99)){g=BD(h,18);(g.Bb&ote)!=0?((g.Bb&oie)==0||!j&&(f=Dmd(g,Rve),(!f?null:GD(AAd((!f.b&&(f.b=new sId((jGd(),fGd),x6,f)),f.b),eue)))==null))&&wtd(b,g):(k=zUd(g),!!k&&(k.Bb&ote)!=0||((g.Bb&oie)==0||!j&&(d=Dmd(g,Rve),(!d?null:GD(AAd((!d.b&&(d.b=new sId((jGd(),fGd),x6,d)),d.b),eue)))==null))&&wtd(c,g))}else{Q6d();if(BD(h,66).Oj()){if(!h.Jj()){wtd(b,h);wtd(c,h)}}}}vud(b);vud(c);a.a=BD(b.g,247);BD(c.g,247)} +function LTb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;j=ITb(b);q=BD(vNb(b,(Nyc(),Iwc)),314);q!=(Rpc(),Ppc)&&reb(j,new STb);r=BD(vNb(b,Cwc),292);reb(j,new UTb(r));p=0;k=new Rkb;for(f=new xkb(j);f.a!=f.b;){e=BD(vkb(f),37);aUb(a.c,e);m=BD(vNb(e,(wtc(),itc)),15);p+=m.gc();d=m.Kc();Ekb(k,new vgd(e,d))}Odd(c,'Recursive hierarchical layout',p);o=0;n=BD(BD(Ikb(k,k.c.length-1),46).b,47);while(n.Ob()){for(i=new olb(k);i.a<i.c.c.length;){h=BD(mlb(i),46);m=BD(h.b,47);g=BD(h.a,37);while(m.Ob()){l=BD(m.Pb(),51);if(JD(l,507)){if(!g.e){l.pf(g,Udd(c,1));++o;break}else{break}}else{l.pf(g,Udd(c,1));++o}}}}Qdd(c)} +function rid(b,c){var d,e,f,g,h,i,j,k,l,m;j=c.length-1;i=(BCb(j,c.length),c.charCodeAt(j));if(i==93){h=hfb(c,wfb(91));if(h>=0){f=wid(b,c.substr(1,h-1));l=c.substr(h+1,j-(h+1));return pid(b,l,f)}}else{d=-1;Vcb==null&&(Vcb=new RegExp('\\d'));if(Vcb.test(String.fromCharCode(i))){d=lfb(c,wfb(46),j-1);if(d>=0){e=BD(hid(b,Bid(b,c.substr(1,d-1)),false),58);k=0;try{k=Icb(c.substr(d+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){g=a;throw vbb(new rFd(g))}else throw vbb(a)}if(k<e.gc()){m=e.Xb(k);JD(m,72)&&(m=BD(m,72).dd());return BD(m,56)}}}if(d<0){return BD(hid(b,Bid(b,c.substr(1)),false),56)}}return null} +function e1d(a,b,c){var d,e,f,g,h,i,j,k,l;if(bLd(b,c)>=0){return c}switch($1d(q1d(a,c))){case 2:{if(dfb('',o1d(a,c.Hj()).ne())){i=b2d(q1d(a,c));h=a2d(q1d(a,c));k=r1d(a,b,i,h);if(k){return k}e=f1d(a,b);for(g=0,l=e.gc();g<l;++g){k=BD(e.Xb(g),170);if(x1d(c2d(q1d(a,k)),i)){return k}}}return null}case 4:{if(dfb('',o1d(a,c.Hj()).ne())){for(d=c;d;d=Z1d(q1d(a,d))){j=b2d(q1d(a,d));h=a2d(q1d(a,d));k=s1d(a,b,j,h);if(k){return k}}i=b2d(q1d(a,c));if(dfb(Ewe,i)){return t1d(a,b)}else{f=g1d(a,b);for(g=0,l=f.gc();g<l;++g){k=BD(f.Xb(g),170);if(x1d(c2d(q1d(a,k)),i)){return k}}}}return null}default:{return null}}} +function t2d(a,b,c){var d,e,f,g,h,i,j,k;if(c.gc()==0){return false}h=(Q6d(),BD(b,66).Oj());f=h?c:new zud(c.gc());if(T6d(a.e,b)){if(b.hi()){for(j=c.Kc();j.Ob();){i=j.Pb();if(!F2d(a,b,i,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)){e=R6d(b,i);f.Hc(e)||f.Fc(e)}}}else if(!h){for(j=c.Kc();j.Ob();){i=j.Pb();e=R6d(b,i);f.Fc(e)}}}else{if(c.gc()>1){throw vbb(new Wdb(Hwe))}k=S6d(a.e.Tg(),b);d=BD(a.g,119);for(g=0;g<a.i;++g){e=d[g];if(k.rl(e.ak())){if(c.Hc(h?e:e.dd())){return false}else{for(j=c.Kc();j.Ob();){i=j.Pb();BD(Gtd(a,g,h?BD(i,72):R6d(b,i)),72)}return true}}}if(!h){e=R6d(b,c.Kc().Pb());f.Fc(e)}}return ytd(a,f)} +function qMc(a,b){var c,d,e,f,g,h,i,j,k;k=new Psb;for(h=(j=(new $ib(a.c)).a.vc().Kc(),new djb(j));h.a.Ob();){f=(e=BD(h.a.Pb(),42),BD(e.dd(),458));f.b==0&&(Gsb(k,f,k.c.b,k.c),true)}while(k.b!=0){f=BD(k.b==0?null:(sCb(k.b!=0),Nsb(k,k.a.a)),458);f.a==null&&(f.a=0);for(d=new olb(f.d);d.a<d.c.c.length;){c=BD(mlb(d),654);c.b.a==null?(c.b.a=Edb(f.a)+c.a):b.o==(eMc(),cMc)?(c.b.a=$wnd.Math.min(Edb(c.b.a),Edb(f.a)+c.a)):(c.b.a=$wnd.Math.max(Edb(c.b.a),Edb(f.a)+c.a));--c.b.b;c.b.b==0&&Dsb(k,c.b)}}for(g=(i=(new $ib(a.c)).a.vc().Kc(),new djb(i));g.a.Ob();){f=(e=BD(g.a.Pb(),42),BD(e.dd(),458));b.i[f.c.p]=f.a}} +function mTc(){mTc=ccb;dTc=new Lsd(Ime);new Lsd(Jme);new Msd('DEPTH',meb(0));ZSc=new Msd('FAN',meb(0));XSc=new Msd(Yqe,meb(0));jTc=new Msd('ROOT',(Bcb(),false));_Sc=new Msd('LEFTNEIGHBOR',null);hTc=new Msd('RIGHTNEIGHBOR',null);aTc=new Msd('LEFTSIBLING',null);iTc=new Msd('RIGHTSIBLING',null);YSc=new Msd('DUMMY',false);new Msd('LEVEL',meb(0));gTc=new Msd('REMOVABLE_EDGES',new Psb);kTc=new Msd('XCOOR',meb(0));lTc=new Msd('YCOOR',meb(0));bTc=new Msd('LEVELHEIGHT',0);$Sc=new Msd('ID','');eTc=new Msd('POSITION',meb(0));fTc=new Msd('PRELIM',0);cTc=new Msd('MODIFIER',0);WSc=new Lsd(Kme);VSc=new Lsd(Lme)} +function MNc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;k=c+b.c.c.a;for(n=new olb(b.j);n.a<n.c.c.length;){m=BD(mlb(n),11);e=l7c(OC(GC(m1,1),nie,8,0,[m.i.n,m.n,m.a]));if(b.k==(j0b(),i0b)){h=BD(vNb(m,(wtc(),$sc)),11);e.a=l7c(OC(GC(m1,1),nie,8,0,[h.i.n,h.n,h.a])).a;b.n.a=e.a}g=new f7c(0,e.b);if(m.j==(Ucd(),zcd)){g.a=k}else if(m.j==Tcd){g.a=c}else{continue}o=$wnd.Math.abs(e.a-g.a);if(o<=d&&!JNc(b)){continue}f=m.g.c.length+m.e.c.length>1;for(j=new b1b(m.b);llb(j.a)||llb(j.b);){i=BD(llb(j.a)?mlb(j.a):mlb(j.b),17);l=i.c==m?i.d:i.c;$wnd.Math.abs(l7c(OC(GC(m1,1),nie,8,0,[l.i.n,l.n,l.a])).b-g.b)>1&&GNc(a,i,g,f,m)}}} +function XPc(a){var b,c,d,e,f,g;e=new Bib(a.e,0);d=new Bib(a.a,0);if(a.d){for(c=0;c<a.b;c++){sCb(e.b<e.d.gc());e.d.Xb(e.c=e.b++)}}else{for(c=0;c<a.b-1;c++){sCb(e.b<e.d.gc());e.d.Xb(e.c=e.b++);uib(e)}}b=Edb((sCb(e.b<e.d.gc()),ED(e.d.Xb(e.c=e.b++))));while(a.f-b>Oqe){f=b;g=0;while($wnd.Math.abs(b-f)<Oqe){++g;b=Edb((sCb(e.b<e.d.gc()),ED(e.d.Xb(e.c=e.b++))));sCb(d.b<d.d.gc());d.d.Xb(d.c=d.b++)}if(g<a.b){sCb(e.b>0);e.a.Xb(e.c=--e.b);WPc(a,a.b-g,f,d,e);sCb(e.b<e.d.gc());e.d.Xb(e.c=e.b++)}sCb(d.b>0);d.a.Xb(d.c=--d.b)}if(!a.d){for(c=0;c<a.b-1;c++){sCb(e.b<e.d.gc());e.d.Xb(e.c=e.b++);uib(e)}}a.d=true;a.c=true} +function Q8d(){Q8d=ccb;s8d=(r8d(),q8d).b;v8d=BD(qud(ZKd(q8d.b),0),34);t8d=BD(qud(ZKd(q8d.b),1),34);u8d=BD(qud(ZKd(q8d.b),2),34);F8d=q8d.bb;BD(qud(ZKd(q8d.bb),0),34);BD(qud(ZKd(q8d.bb),1),34);H8d=q8d.fb;I8d=BD(qud(ZKd(q8d.fb),0),34);BD(qud(ZKd(q8d.fb),1),34);BD(qud(ZKd(q8d.fb),2),18);K8d=q8d.qb;N8d=BD(qud(ZKd(q8d.qb),0),34);BD(qud(ZKd(q8d.qb),1),18);BD(qud(ZKd(q8d.qb),2),18);L8d=BD(qud(ZKd(q8d.qb),3),34);M8d=BD(qud(ZKd(q8d.qb),4),34);P8d=BD(qud(ZKd(q8d.qb),6),34);O8d=BD(qud(ZKd(q8d.qb),5),18);w8d=q8d.j;x8d=q8d.k;y8d=q8d.q;z8d=q8d.w;A8d=q8d.B;B8d=q8d.A;C8d=q8d.C;D8d=q8d.D;E8d=q8d._;G8d=q8d.cb;J8d=q8d.hb} +function $Dc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.c=0;a.b=0;d=2*b.c.a.c.length+1;o:for(l=c.Kc();l.Ob();){k=BD(l.Pb(),11);h=k.j==(Ucd(),Acd)||k.j==Rcd;n=0;if(h){m=BD(vNb(k,(wtc(),gtc)),10);if(!m){continue}n+=VDc(a,d,k,m)}else{for(j=new olb(k.g);j.a<j.c.c.length;){i=BD(mlb(j),17);e=i.d;if(e.i.c==b.c){Ekb(a.a,k);continue o}else{n+=a.g[e.p]}}for(g=new olb(k.e);g.a<g.c.c.length;){f=BD(mlb(g),17);e=f.c;if(e.i.c==b.c){Ekb(a.a,k);continue o}else{n-=a.g[e.p]}}}if(k.e.c.length+k.g.c.length>0){a.f[k.p]=n/(k.e.c.length+k.g.c.length);a.c=$wnd.Math.min(a.c,a.f[k.p]);a.b=$wnd.Math.max(a.b,a.f[k.p])}else h&&(a.f[k.p]=n)}} +function $9d(a){a.b=null;a.bb=null;a.fb=null;a.qb=null;a.a=null;a.c=null;a.d=null;a.e=null;a.f=null;a.n=null;a.M=null;a.L=null;a.Q=null;a.R=null;a.K=null;a.db=null;a.eb=null;a.g=null;a.i=null;a.j=null;a.k=null;a.gb=null;a.o=null;a.p=null;a.q=null;a.r=null;a.$=null;a.ib=null;a.S=null;a.T=null;a.t=null;a.s=null;a.u=null;a.v=null;a.w=null;a.B=null;a.A=null;a.C=null;a.D=null;a.F=null;a.G=null;a.H=null;a.I=null;a.J=null;a.P=null;a.Z=null;a.U=null;a.V=null;a.W=null;a.X=null;a.Y=null;a._=null;a.ab=null;a.cb=null;a.hb=null;a.nb=null;a.lb=null;a.mb=null;a.ob=null;a.pb=null;a.jb=null;a.kb=null;a.N=false;a.O=false} +function l5b(a,b,c){var d,e,f,g;Odd(c,'Graph transformation ('+a.a+')',1);g=Mu(b.a);for(f=new olb(b.b);f.a<f.c.c.length;){e=BD(mlb(f),29);Gkb(g,e.a)}d=BD(vNb(b,(Nyc(),Mwc)),419);if(d==(xqc(),vqc)){switch(BD(vNb(b,Lwc),103).g){case 2:_4b(b,g);break;case 3:p5b(b,g);break;case 4:if(a.a==(y5b(),x5b)){p5b(b,g);a5b(b,g)}else{a5b(b,g);p5b(b,g)}}}else{if(a.a==(y5b(),x5b)){switch(BD(vNb(b,Lwc),103).g){case 2:_4b(b,g);a5b(b,g);break;case 3:p5b(b,g);_4b(b,g);break;case 4:_4b(b,g);p5b(b,g);}}else{switch(BD(vNb(b,Lwc),103).g){case 2:_4b(b,g);a5b(b,g);break;case 3:_4b(b,g);p5b(b,g);break;case 4:p5b(b,g);_4b(b,g);}}}Qdd(c)} +function j6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;j=new zsb;k=new zsb;o=new zsb;p=new zsb;i=Edb(ED(vNb(b,(Nyc(),vyc))));f=Edb(ED(vNb(b,lyc)));for(h=new olb(c);h.a<h.c.c.length;){g=BD(mlb(h),10);l=BD(vNb(g,(wtc(),Hsc)),61);if(l==(Ucd(),Acd)){k.a.zc(g,k);for(e=new Sr(ur(R_b(g).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);Qqb(j,d.c.i)}}else if(l==Rcd){p.a.zc(g,p);for(e=new Sr(ur(R_b(g).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);Qqb(o,d.c.i)}}}if(j.a.gc()!=0){m=new tPc(2,f);n=sPc(m,b,j,k,-i-b.c.b);if(n>0){a.a=i+(n-1)*f;b.c.b+=a.a;b.f.b+=a.a}}if(o.a.gc()!=0){m=new tPc(1,f);n=sPc(m,b,o,p,b.f.b+i-b.c.b);n>0&&(b.f.b+=i+(n-1)*f)}} +function kKd(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;$Jd(a,null)}else{a.F=(uCb(b),b);d=hfb(b,wfb(60));if(d!=-1){e=b.substr(0,d);hfb(b,wfb(46))==-1&&!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)&&(e=Lve);c=kfb(b,wfb(62));c!=-1&&(e+=''+b.substr(c+1));$Jd(a,e)}else{e=b;if(hfb(b,wfb(46))==-1){d=hfb(b,wfb(91));d!=-1&&(e=b.substr(0,d));if(!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)){e=Lve;d!=-1&&(e+=''+b.substr(d))}else{e=b}}$Jd(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,f,b))} +function AMc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;p=b.b.c.length;if(p<3){return}n=KC(WD,oje,25,p,15,1);l=0;for(k=new olb(b.b);k.a<k.c.c.length;){j=BD(mlb(k),29);n[l++]=j.a.c.length}m=new Bib(b.b,2);for(d=1;d<p-1;d++){c=(sCb(m.b<m.d.gc()),BD(m.d.Xb(m.c=m.b++),29));o=new olb(c.a);f=0;h=0;for(i=0;i<n[d+1];i++){t=BD(mlb(o),10);if(i==n[d+1]-1||zMc(a,t,d+1,d)){g=n[d]-1;zMc(a,t,d+1,d)&&(g=a.c.e[BD(BD(BD(Ikb(a.c.b,t.p),15).Xb(0),46).a,10).p]);while(h<=i){s=BD(Ikb(c.a,h),10);if(!zMc(a,s,d+1,d)){for(r=BD(Ikb(a.c.b,s.p),15).Kc();r.Ob();){q=BD(r.Pb(),46);e=a.c.e[BD(q.a,10).p];(e<f||e>g)&&Qqb(a.b,BD(q.b,17))}}++h}f=g}}}} +function o5c(b,c){var d;if(c==null||dfb(c,Xhe)){return null}if(c.length==0&&b.k!=(_5c(),W5c)){return null}switch(b.k.g){case 1:return efb(c,kse)?(Bcb(),Acb):efb(c,lse)?(Bcb(),zcb):null;case 2:try{return meb(Icb(c,Rie,Ohe))}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 4:try{return Hcb(c)}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 3:return c;case 5:j5c(b);return m5c(b,c);case 6:j5c(b);return n5c(b,b.a,c);case 7:try{d=l5c(b);d.Jf(c);return d}catch(a){a=ubb(a);if(JD(a,32)){return null}else throw vbb(a)}default:throw vbb(new Zdb('Invalid type set for this layout option.'));}} +function JWb(a){AWb();var b,c,d,e,f,g,h;h=new CWb;for(c=new olb(a);c.a<c.c.c.length;){b=BD(mlb(c),140);(!h.b||b.c>=h.b.c)&&(h.b=b);if(!h.c||b.c<=h.c.c){h.d=h.c;h.c=b}(!h.e||b.d>=h.e.d)&&(h.e=b);(!h.f||b.d<=h.f.d)&&(h.f=b)}d=new NWb((lWb(),hWb));rXb(a,yWb,new amb(OC(GC(bQ,1),Uhe,369,0,[d])));g=new NWb(kWb);rXb(a,xWb,new amb(OC(GC(bQ,1),Uhe,369,0,[g])));e=new NWb(iWb);rXb(a,wWb,new amb(OC(GC(bQ,1),Uhe,369,0,[e])));f=new NWb(jWb);rXb(a,vWb,new amb(OC(GC(bQ,1),Uhe,369,0,[f])));DWb(d.c,hWb);DWb(e.c,iWb);DWb(f.c,jWb);DWb(g.c,kWb);h.a.c=KC(SI,Uhe,1,0,5,1);Gkb(h.a,d.c);Gkb(h.a,Su(e.c));Gkb(h.a,f.c);Gkb(h.a,Su(g.c));return h} +function jxd(a){var b;switch(a.d){case 1:{if(a.hj()){return a.o!=-2}break}case 2:{if(a.hj()){return a.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return a.o>-2}default:{return false}}b=a.gj();switch(a.p){case 0:return b!=null&&Ccb(DD(b))!=Kbb(a.k,0);case 1:return b!=null&&BD(b,217).a!=Tbb(a.k)<<24>>24;case 2:return b!=null&&BD(b,172).a!=(Tbb(a.k)&aje);case 6:return b!=null&&Kbb(BD(b,162).a,a.k);case 5:return b!=null&&BD(b,19).a!=Tbb(a.k);case 7:return b!=null&&BD(b,184).a!=Tbb(a.k)<<16>>16;case 3:return b!=null&&Edb(ED(b))!=a.j;case 4:return b!=null&&BD(b,155).a!=a.j;default:return b==null?a.n!=null:!pb(b,a.n);}} +function nOd(a,b,c){var d,e,f,g;if(a.Fk()&&a.Ek()){g=oOd(a,BD(c,56));if(PD(g)!==PD(c)){a.Oi(b);a.Ui(b,pOd(a,b,g));if(a.rk()){f=(e=BD(c,49),a.Dk()?a.Bk()?e.ih(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),null):e.ih(a.b,bLd(e.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,null):e.ih(a.b,-1-a.aj(),null,null));!BD(g,49).eh()&&(f=(d=BD(g,49),a.Dk()?a.Bk()?d.gh(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),f):d.gh(a.b,bLd(d.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,f):d.gh(a.b,-1-a.aj(),null,f)));!!f&&f.Fi()}oid(a.b)&&a.$i(a.Zi(9,c,g,b,false));return g}}return c} +function Noc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Edb(ED(vNb(a,(Nyc(),oyc))));d=Edb(ED(vNb(a,Cyc)));m=new _fd;yNb(m,oyc,k+d);j=b;r=j.d;p=j.c.i;s=j.d.i;q=G1b(p.c);t=G1b(s.c);e=new Rkb;for(l=q;l<=t;l++){h=new b0b(a);__b(h,(j0b(),g0b));yNb(h,(wtc(),$sc),j);yNb(h,Vxc,(dcd(),$bd));yNb(h,qyc,m);n=BD(Ikb(a.b,l),29);l==q?Z_b(h,n.a.c.length-c,n):$_b(h,n);u=Edb(ED(vNb(j,Zwc)));if(u<0){u=0;yNb(j,Zwc,u)}h.o.b=u;o=$wnd.Math.floor(u/2);g=new H0b;G0b(g,(Ucd(),Tcd));F0b(g,h);g.n.b=o;i=new H0b;G0b(i,zcd);F0b(i,h);i.n.b=o;RZb(j,g);f=new UZb;tNb(f,j);yNb(f,jxc,null);QZb(f,i);RZb(f,r);Ooc(h,j,f);e.c[e.c.length]=f;j=f}return e} +function sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=BD(Y_b(a,(Ucd(),Tcd)).Kc().Pb(),11).e;n=BD(Y_b(a,zcd).Kc().Pb(),11).g;h=i.c.length;t=A0b(BD(Ikb(a.j,0),11));while(h-->0){p=(tCb(0,i.c.length),BD(i.c[0],17));e=(tCb(0,n.c.length),BD(n.c[0],17));s=e.d.e;f=Jkb(s,e,0);SZb(p,e.d,f);QZb(e,null);RZb(e,null);o=p.a;b&&Dsb(o,new g7c(t));for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);Dsb(o,new g7c(c))}r=p.b;for(m=new olb(e.b);m.a<m.c.c.length;){l=BD(mlb(m),70);r.c[r.c.length]=l}q=BD(vNb(p,(Nyc(),jxc)),74);g=BD(vNb(e,jxc),74);if(g){if(!q){q=new s7c;yNb(p,jxc,q)}for(k=Jsb(g,0);k.b!=k.d.c;){j=BD(Xsb(k),8);Dsb(q,new g7c(j))}}}} +function EJb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=BD(Mpb(a.b,b),124);i=BD(BD(Qc(a.r,b),21),84);if(i.dc()){c.n.b=0;c.n.c=0;return}j=a.u.Hc((rcd(),ncd));g=0;h=i.Kc();k=null;l=0;m=0;while(h.Ob()){d=BD(h.Pb(),111);e=Edb(ED(d.b.We((CKb(),BKb))));f=d.b.rf().a;a.A.Hc((tdd(),sdd))&&KJb(a,b);if(!k){!!a.C&&a.C.b>0&&(g=$wnd.Math.max(g,IJb(a.C.b+d.d.b,e)))}else{n=m+k.d.c+a.w+d.d.b;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-e)<=ple||l==e||isNaN(l)&&isNaN(e)?0:n/(e-l)))}k=d;l=e;m=f}if(!!a.C&&a.C.c>0){n=m+a.C.c;j&&(n+=k.d.c);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-1)<=ple||l==1||isNaN(l)&&isNaN(1)?0:n/(1-l)))}c.n.b=0;c.a.a=g} +function NKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=BD(Mpb(a.b,b),124);i=BD(BD(Qc(a.r,b),21),84);if(i.dc()){c.n.d=0;c.n.a=0;return}j=a.u.Hc((rcd(),ncd));g=0;a.A.Hc((tdd(),sdd))&&SKb(a,b);h=i.Kc();k=null;m=0;l=0;while(h.Ob()){d=BD(h.Pb(),111);f=Edb(ED(d.b.We((CKb(),BKb))));e=d.b.rf().b;if(!k){!!a.C&&a.C.d>0&&(g=$wnd.Math.max(g,IJb(a.C.d+d.d.d,f)))}else{n=l+k.d.a+a.w+d.d.d;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-f)<=ple||m==f||isNaN(m)&&isNaN(f)?0:n/(f-m)))}k=d;m=f;l=e}if(!!a.C&&a.C.a>0){n=l+a.C.a;j&&(n+=k.d.a);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-1)<=ple||m==1||isNaN(m)&&isNaN(1)?0:n/(1-m)))}c.n.d=0;c.a.b=g} +function _Ec(a,b,c){var d,e,f,g,h,i;this.g=a;h=b.d.length;i=c.d.length;this.d=KC(OQ,kne,10,h+i,0,1);for(g=0;g<h;g++){this.d[g]=b.d[g]}for(f=0;f<i;f++){this.d[h+f]=c.d[f]}if(b.e){this.e=Ru(b.e);this.e.Mc(c);if(c.e){for(e=c.e.Kc();e.Ob();){d=BD(e.Pb(),233);if(d==b){continue}else this.e.Hc(d)?--d.c:this.e.Fc(d)}}}else if(c.e){this.e=Ru(c.e);this.e.Mc(b)}this.f=b.f+c.f;this.a=b.a+c.a;this.a>0?ZEc(this,this.f/this.a):REc(b.g,b.d[0]).a!=null&&REc(c.g,c.d[0]).a!=null?ZEc(this,(Edb(REc(b.g,b.d[0]).a)+Edb(REc(c.g,c.d[0]).a))/2):REc(b.g,b.d[0]).a!=null?ZEc(this,REc(b.g,b.d[0]).a):REc(c.g,c.d[0]).a!=null&&ZEc(this,REc(c.g,c.d[0]).a)} +function BUb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new dVb(oqb(t1));for(d=new olb(b.a);d.a<d.c.c.length;){c=BD(mlb(d),841);h=new gVb(OC(GC(IP,1),Uhe,81,0,[]));Ekb(a.a.a,h);for(j=new olb(c.d);j.a<j.c.c.length;){i=BD(mlb(j),110);k=new GUb(a,i);AUb(k,BD(vNb(c.c,(wtc(),Esc)),21));if(!Mhb(a.g,c)){Rhb(a.g,c,new f7c(i.c,i.d));Rhb(a.f,c,k)}Ekb(a.a.b,k);eVb(h,k)}for(g=new olb(c.b);g.a<g.c.c.length;){f=BD(mlb(g),594);k=new GUb(a,f.kf());Rhb(a.b,f,new vgd(h,k));AUb(k,BD(vNb(c.c,(wtc(),Esc)),21));if(f.hf()){l=new HUb(a,f.hf(),1);AUb(l,BD(vNb(c.c,Esc),21));e=new gVb(OC(GC(IP,1),Uhe,81,0,[]));eVb(e,l);Rc(a.c,f.gf(),new vgd(h,l))}}}return a.a} +function oBc(a){var b;this.a=a;b=(j0b(),OC(GC(NQ,1),Kie,267,0,[h0b,g0b,e0b,i0b,f0b,d0b])).length;this.b=IC(Q3,[nie,zqe],[593,146],0,[b,b],2);this.c=IC(Q3,[nie,zqe],[593,146],0,[b,b],2);nBc(this,h0b,(Nyc(),vyc),wyc);lBc(this,h0b,g0b,oyc,pyc);kBc(this,h0b,i0b,oyc);kBc(this,h0b,e0b,oyc);lBc(this,h0b,f0b,vyc,wyc);nBc(this,g0b,lyc,myc);kBc(this,g0b,i0b,lyc);kBc(this,g0b,e0b,lyc);lBc(this,g0b,f0b,oyc,pyc);mBc(this,i0b,lyc);kBc(this,i0b,e0b,lyc);kBc(this,i0b,f0b,syc);mBc(this,e0b,zyc);lBc(this,e0b,f0b,uyc,tyc);nBc(this,f0b,lyc,lyc);nBc(this,d0b,lyc,myc);lBc(this,d0b,h0b,oyc,pyc);lBc(this,d0b,f0b,oyc,pyc);lBc(this,d0b,g0b,oyc,pyc)} +function _2d(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;g=c.ak();if(JD(g,99)&&(BD(g,18).Bb&Tje)!=0){m=BD(c.dd(),49);p=xid(a.e,m);if(p!=m){k=R6d(g,p);mud(a,b,t3d(a,b,k));l=null;if(oid(a.e)){d=e1d((O6d(),M6d),a.e.Tg(),g);if(d!=XKd(a.e.Tg(),a.c)){q=S6d(a.e.Tg(),g);h=0;f=BD(a.g,119);for(i=0;i<b;++i){e=f[i];q.rl(e.ak())&&++h}l=new O7d(a.e,9,d,m,p,h,false);l.Ei(new pSd(a.e,9,a.c,c,k,b,false))}}o=BD(g,18);n=zUd(o);if(n){l=m.ih(a.e,bLd(m.Tg(),n),null,l);l=BD(p,49).gh(a.e,bLd(p.Tg(),n),null,l)}else if((o.Bb&ote)!=0){j=-1-bLd(a.e.Tg(),o);l=m.ih(a.e,j,null,null);!BD(p,49).eh()&&(l=BD(p,49).gh(a.e,j,null,l))}!!l&&l.Fi();return k}}return c} +function yUb(a){var b,c,d,e,f,g,h,i;for(f=new olb(a.a.b);f.a<f.c.c.length;){e=BD(mlb(f),81);e.b.c=e.g.c;e.b.d=e.g.d}i=new f7c(Pje,Pje);b=new f7c(Qje,Qje);for(d=new olb(a.a.b);d.a<d.c.c.length;){c=BD(mlb(d),81);i.a=$wnd.Math.min(i.a,c.g.c);i.b=$wnd.Math.min(i.b,c.g.d);b.a=$wnd.Math.max(b.a,c.g.c+c.g.b);b.b=$wnd.Math.max(b.b,c.g.d+c.g.a)}for(h=Uc(a.c).a.nc();h.Ob();){g=BD(h.Pb(),46);c=BD(g.b,81);i.a=$wnd.Math.min(i.a,c.g.c);i.b=$wnd.Math.min(i.b,c.g.d);b.a=$wnd.Math.max(b.a,c.g.c+c.g.b);b.b=$wnd.Math.max(b.b,c.g.d+c.g.a)}a.d=V6c(new f7c(i.a,i.b));a.e=c7c(new f7c(b.a,b.b),i);a.a.a.c=KC(SI,Uhe,1,0,5,1);a.a.b.c=KC(SI,Uhe,1,0,5,1)} +function svd(a){var b,c,d;l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new Z9c]));c=new xB(a);for(d=0;d<c.a.length;++d){b=tB(c,d).je().a;dfb(b,'layered')?l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new kwc])):dfb(b,'force')?l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new TRb])):dfb(b,'stress')?l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new PSb])):dfb(b,'mrtree')?l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new sTc])):dfb(b,'radial')?l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new IWc])):dfb(b,'disco')?l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new gFb,new oPb])):dfb(b,'sporeOverlap')||dfb(b,'sporeCompaction')?l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new B0c])):dfb(b,'rectpacking')&&l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new PYc]))}} +function j_b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;m=new g7c(a.o);r=b.a/m.a;h=b.b/m.b;p=b.a-m.a;f=b.b-m.b;if(c){e=PD(vNb(a,(Nyc(),Vxc)))===PD((dcd(),$bd));for(o=new olb(a.j);o.a<o.c.c.length;){n=BD(mlb(o),11);switch(n.j.g){case 1:e||(n.n.a*=r);break;case 2:n.n.a+=p;e||(n.n.b*=h);break;case 3:e||(n.n.a*=r);n.n.b+=f;break;case 4:e||(n.n.b*=h);}}}for(j=new olb(a.b);j.a<j.c.c.length;){i=BD(mlb(j),70);k=i.n.a+i.o.a/2;l=i.n.b+i.o.b/2;q=k/m.a;g=l/m.b;if(q+g>=1){if(q-g>0&&l>=0){i.n.a+=p;i.n.b+=f*g}else if(q-g<0&&k>=0){i.n.a+=p*q;i.n.b+=f}}}a.o.a=b.a;a.o.b=b.b;yNb(a,(Nyc(),Fxc),(tdd(),d=BD(gdb(I1),9),new xqb(d,BD(_Bb(d,d.length),9),0)))} +function iFd(a,b,c,d,e,f){var g;if(!(b==null||!OEd(b,zEd,AEd))){throw vbb(new Wdb('invalid scheme: '+b))}if(!a&&!(c!=null&&hfb(c,wfb(35))==-1&&c.length>0&&(BCb(0,c.length),c.charCodeAt(0)!=47))){throw vbb(new Wdb('invalid opaquePart: '+c))}if(a&&!(b!=null&&hnb(GEd,b.toLowerCase()))&&!(c==null||!OEd(c,CEd,DEd))){throw vbb(new Wdb(mve+c))}if(a&&b!=null&&hnb(GEd,b.toLowerCase())&&!eFd(c)){throw vbb(new Wdb(mve+c))}if(!fFd(d)){throw vbb(new Wdb('invalid device: '+d))}if(!hFd(e)){g=e==null?'invalid segments: null':'invalid segment: '+VEd(e);throw vbb(new Wdb(g))}if(!(f==null||hfb(f,wfb(35))==-1)){throw vbb(new Wdb('invalid query: '+f))}} +function nVc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Calculate Graph Size',1);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));h=dme;i=dme;f=ere;g=ere;for(l=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));l.e!=l.i.gc();){j=BD(Dyd(l),33);o=j.i;p=j.j;r=j.g;d=j.f;e=BD(hkd(j,(Y9c(),S8c)),142);h=$wnd.Math.min(h,o-e.b);i=$wnd.Math.min(i,p-e.d);f=$wnd.Math.max(f,o+r+e.c);g=$wnd.Math.max(g,p+d+e.a)}n=BD(hkd(a,(Y9c(),f9c)),116);m=new f7c(h-n.b,i-n.d);for(k=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));k.e!=k.i.gc();){j=BD(Dyd(k),33);dld(j,j.i-m.a);eld(j,j.j-m.b)}q=f-h+(n.b+n.c);c=g-i+(n.d+n.a);cld(a,q);ald(a,c);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd))} +function rGb(a){var b,c,d,e,f,g,h,i,j,k;d=new Rkb;for(g=new olb(a.e.a);g.a<g.c.c.length;){e=BD(mlb(g),121);k=0;e.k.c=KC(SI,Uhe,1,0,5,1);for(c=new olb(LFb(e));c.a<c.c.c.length;){b=BD(mlb(c),213);if(b.f){Ekb(e.k,b);++k}}k==1&&(d.c[d.c.length]=e,true)}for(f=new olb(d);f.a<f.c.c.length;){e=BD(mlb(f),121);while(e.k.c.length==1){j=BD(mlb(new olb(e.k)),213);a.b[j.c]=j.g;h=j.d;i=j.e;for(c=new olb(LFb(e));c.a<c.c.c.length;){b=BD(mlb(c),213);pb(b,j)||(b.f?h==b.d||i==b.e?(a.b[j.c]-=a.b[b.c]-b.g):(a.b[j.c]+=a.b[b.c]-b.g):e==h?b.d==e?(a.b[j.c]+=b.g):(a.b[j.c]-=b.g):b.d==e?(a.b[j.c]-=b.g):(a.b[j.c]+=b.g))}Lkb(h.k,j);Lkb(i.k,j);h==e?(e=j.e):(e=j.d)}}} +function k4c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(b==null||b.length==0){return null}f=BD(Phb(a.f,b),23);if(!f){for(e=(n=(new $ib(a.d)).a.vc().Kc(),new djb(n));e.a.Ob();){c=(g=BD(e.a.Pb(),42),BD(g.dd(),23));h=c.f;o=b.length;if(dfb(h.substr(h.length-o,o),b)&&(b.length==h.length||bfb(h,h.length-b.length-1)==46)){if(f){return null}f=c}}if(!f){for(d=(m=(new $ib(a.d)).a.vc().Kc(),new djb(m));d.a.Ob();){c=(g=BD(d.a.Pb(),42),BD(g.dd(),23));l=c.g;if(l!=null){for(i=l,j=0,k=i.length;j<k;++j){h=i[j];o=b.length;if(dfb(h.substr(h.length-o,o),b)&&(b.length==h.length||bfb(h,h.length-b.length-1)==46)){if(f){return null}f=c}}}}}!!f&&Shb(a.f,b,f)}return f} +function sA(a,b){var c,d,e,f,g;c=new Vfb;g=false;for(f=0;f<b.length;f++){d=(BCb(f,b.length),b.charCodeAt(f));if(d==32){gA(a,c,0);c.a+=' ';gA(a,c,0);while(f+1<b.length&&(BCb(f+1,b.length),b.charCodeAt(f+1)==32)){++f}continue}if(g){if(d==39){if(f+1<b.length&&(BCb(f+1,b.length),b.charCodeAt(f+1)==39)){c.a+=String.fromCharCode(d);++f}else{g=false}}else{c.a+=String.fromCharCode(d)}continue}if(hfb('GyMLdkHmsSEcDahKzZv',wfb(d))>0){gA(a,c,0);c.a+=String.fromCharCode(d);e=lA(b,f);gA(a,c,e);f+=e-1;continue}if(d==39){if(f+1<b.length&&(BCb(f+1,b.length),b.charCodeAt(f+1)==39)){c.a+="'";++f}else{g=true}}else{c.a+=String.fromCharCode(d)}}gA(a,c,0);mA(a)} +function wDc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(c,'Network simplex layering',1);a.b=b;r=BD(vNb(b,(Nyc(),Ayc)),19).a*4;q=a.b.a;if(q.c.length<1){Qdd(c);return}f=sDc(a,q);p=null;for(e=Jsb(f,0);e.b!=e.d.c;){d=BD(Xsb(e),15);h=r*QD($wnd.Math.sqrt(d.gc()));g=vDc(d);uGb(HGb(JGb(IGb(LGb(g),h),p),true),Udd(c,1));m=a.b.b;for(o=new olb(g.a);o.a<o.c.c.length;){n=BD(mlb(o),121);while(m.c.length<=n.e){Dkb(m,m.c.length,new H1b(a.b))}k=BD(n.f,10);$_b(k,BD(Ikb(m,n.e),29))}if(f.b>1){p=KC(WD,oje,25,a.b.b.c.length,15,1);l=0;for(j=new olb(a.b.b);j.a<j.c.c.length;){i=BD(mlb(j),29);p[l++]=i.a.c.length}}}q.c=KC(SI,Uhe,1,0,5,1);a.a=null;a.b=null;a.c=null;Qdd(c)} +function OUb(a){var b,c,d,e,f,g,h;b=0;for(f=new olb(a.b.a);f.a<f.c.c.length;){d=BD(mlb(f),189);d.b=0;d.c=0}NUb(a,0);MUb(a,a.g);sVb(a.c);wVb(a.c);c=(ead(),aad);uVb(oVb(tVb(uVb(oVb(tVb(uVb(tVb(a.c,c)),had(c)))),c)));tVb(a.c,aad);RUb(a,a.g);SUb(a,0);TUb(a,0);UUb(a,1);NUb(a,1);MUb(a,a.d);sVb(a.c);for(g=new olb(a.b.a);g.a<g.c.c.length;){d=BD(mlb(g),189);b+=$wnd.Math.abs(d.c)}for(h=new olb(a.b.a);h.a<h.c.c.length;){d=BD(mlb(h),189);d.b=0;d.c=0}c=dad;uVb(oVb(tVb(uVb(oVb(tVb(uVb(wVb(tVb(a.c,c))),had(c)))),c)));tVb(a.c,aad);RUb(a,a.d);SUb(a,1);TUb(a,1);UUb(a,0);wVb(a.c);for(e=new olb(a.b.a);e.a<e.c.c.length;){d=BD(mlb(e),189);b+=$wnd.Math.abs(d.c)}return b} +function Wfe(a,b){var c,d,e,f,g,h,i,j,k;j=b;if(j.b==null||a.b==null)return;Yfe(a);Vfe(a);Yfe(j);Vfe(j);c=KC(WD,oje,25,a.b.length+j.b.length,15,1);k=0;d=0;g=0;while(d<a.b.length&&g<j.b.length){e=a.b[d];f=a.b[d+1];h=j.b[g];i=j.b[g+1];if(f<h){d+=2}else if(f>=h&&e<=i){if(h<=e&&f<=i){c[k++]=e;c[k++]=f;d+=2}else if(h<=e){c[k++]=e;c[k++]=i;a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=h;c[k++]=f;d+=2}else{c[k++]=h;c[k++]=i;a.b[d]=i+1}}else if(i<e){g+=2}else{throw vbb(new hz('Token#intersectRanges(): Internal Error: ['+a.b[d]+','+a.b[d+1]+'] & ['+j.b[g]+','+j.b[g+1]+']'))}}while(d<a.b.length){c[k++]=a.b[d++];c[k++]=a.b[d++]}a.b=KC(WD,oje,25,k,15,1);$fb(c,0,a.b,0,k)} +function PUb(a){var b,c,d,e,f,g,h;b=new Rkb;a.g=new Rkb;a.d=new Rkb;for(g=new nib((new eib(a.f.b)).a);g.b;){f=lib(g);Ekb(b,BD(BD(f.dd(),46).b,81));fad(BD(f.cd(),594).gf())?Ekb(a.d,BD(f.dd(),46)):Ekb(a.g,BD(f.dd(),46))}MUb(a,a.d);MUb(a,a.g);a.c=new CVb(a.b);AVb(a.c,(xUb(),wUb));RUb(a,a.d);RUb(a,a.g);Gkb(b,a.c.a.b);a.e=new f7c(Pje,Pje);a.a=new f7c(Qje,Qje);for(d=new olb(b);d.a<d.c.c.length;){c=BD(mlb(d),81);a.e.a=$wnd.Math.min(a.e.a,c.g.c);a.e.b=$wnd.Math.min(a.e.b,c.g.d);a.a.a=$wnd.Math.max(a.a.a,c.g.c+c.g.b);a.a.b=$wnd.Math.max(a.a.b,c.g.d+c.g.a)}zVb(a.c,new YUb);h=0;do{e=OUb(a);++h}while((h<2||e>Qie)&&h<10);zVb(a.c,new _Ub);OUb(a);vVb(a.c);yUb(a.f)} +function sZb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(!Ccb(DD(vNb(c,(Nyc(),fxc))))){return}for(h=new olb(c.j);h.a<h.c.c.length;){g=BD(mlb(h),11);m=k_b(g.g);for(j=m,k=0,l=j.length;k<l;++k){i=j[k];f=i.d.i==c;e=f&&Ccb(DD(vNb(i,gxc)));if(e){o=i.c;n=BD(Ohb(a.b,o),10);if(!n){n=Z$b(o,(dcd(),bcd),o.j,-1,null,null,o.o,BD(vNb(b,Lwc),103),b);yNb(n,(wtc(),$sc),o);Rhb(a.b,o,n);Ekb(b.a,n)}q=i.d;p=BD(Ohb(a.b,q),10);if(!p){p=Z$b(q,(dcd(),bcd),q.j,1,null,null,q.o,BD(vNb(b,Lwc),103),b);yNb(p,(wtc(),$sc),q);Rhb(a.b,q,p);Ekb(b.a,p)}d=kZb(i);QZb(d,BD(Ikb(n.j,0),11));RZb(d,BD(Ikb(p.j,0),11));Rc(a.a,i,new BZb(d,b,(KAc(),IAc)));BD(vNb(b,(wtc(),Ksc)),21).Fc((Orc(),Hrc))}}}} +function W9b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;Odd(c,'Label dummy switching',1);d=BD(vNb(b,(Nyc(),Owc)),227);J9b(b);e=T9b(b,d);a.a=KC(UD,Vje,25,b.b.c.length,15,1);for(h=(Apc(),OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])),k=0,n=h.length;k<n;++k){f=h[k];if((f==zpc||f==upc||f==xpc)&&!BD(uqb(e.a,f)?e.b[f.g]:null,15).dc()){M9b(a,b);break}}for(i=OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc]),l=0,o=i.length;l<o;++l){f=i[l];f==zpc||f==upc||f==xpc||X9b(a,BD(uqb(e.a,f)?e.b[f.g]:null,15))}for(g=OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc]),j=0,m=g.length;j<m;++j){f=g[j];(f==zpc||f==upc||f==xpc)&&X9b(a,BD(uqb(e.a,f)?e.b[f.g]:null,15))}a.a=null;Qdd(c)} +function AFc(a,b){var c,d,e,f,g,h,i,j,k,l,m;switch(a.k.g){case 1:d=BD(vNb(a,(wtc(),$sc)),17);c=BD(vNb(d,_sc),74);!c?(c=new s7c):Ccb(DD(vNb(d,ltc)))&&(c=w7c(c));j=BD(vNb(a,Vsc),11);if(j){k=l7c(OC(GC(m1,1),nie,8,0,[j.i.n,j.n,j.a]));if(b<=k.a){return k.b}Gsb(c,k,c.a,c.a.a)}l=BD(vNb(a,Wsc),11);if(l){m=l7c(OC(GC(m1,1),nie,8,0,[l.i.n,l.n,l.a]));if(m.a<=b){return m.b}Gsb(c,m,c.c.b,c.c)}if(c.b>=2){i=Jsb(c,0);g=BD(Xsb(i),8);h=BD(Xsb(i),8);while(h.a<b&&i.b!=i.d.c){g=h;h=BD(Xsb(i),8)}return g.b+(b-g.a)/(h.a-g.a)*(h.b-g.b)}break;case 3:f=BD(vNb(BD(Ikb(a.j,0),11),(wtc(),$sc)),11);e=f.i;switch(f.j.g){case 1:return e.n.b;case 3:return e.n.b+e.o.b;}}return T_b(a).b} +function Wgc(a){var b,c,d,e,f,g,h,i,j,k,l;for(g=new olb(a.d.b);g.a<g.c.c.length;){f=BD(mlb(g),29);for(i=new olb(f.a);i.a<i.c.c.length;){h=BD(mlb(i),10);if(Ccb(DD(vNb(h,(Nyc(),pwc))))){if(!Qq(O_b(h))){d=BD(Oq(O_b(h)),17);k=d.c.i;k==h&&(k=d.d.i);l=new vgd(k,c7c(R6c(h.n),k.n));Rhb(a.b,h,l);continue}}e=new J6c(h.n.a-h.d.b,h.n.b-h.d.d,h.o.a+h.d.b+h.d.c,h.o.b+h.d.d+h.d.a);b=vDb(yDb(wDb(xDb(new zDb,h),e),Fgc),a.a);pDb(qDb(rDb(new sDb,OC(GC(PM,1),Uhe,57,0,[b])),b),a.a);j=new lEb;Rhb(a.e,b,j);c=sr(new Sr(ur(R_b(h).a.Kc(),new Sq)))-sr(new Sr(ur(U_b(h).a.Kc(),new Sq)));c<0?jEb(j,true,(ead(),aad)):c>0&&jEb(j,true,(ead(),bad));h.k==(j0b(),e0b)&&kEb(j);Rhb(a.f,h,b)}}} +function Bbc(a,b,c){var d,e,f,g,h,i,j,k,l,m;Odd(c,'Node promotion heuristic',1);a.g=b;Abc(a);a.q=BD(vNb(b,(Nyc(),rxc)),260);k=BD(vNb(a.g,qxc),19).a;f=new Jbc;switch(a.q.g){case 2:case 1:Dbc(a,f);break;case 3:a.q=(kAc(),jAc);Dbc(a,f);i=0;for(h=new olb(a.a);h.a<h.c.c.length;){g=BD(mlb(h),19);i=$wnd.Math.max(i,g.a)}if(i>a.j){a.q=dAc;Dbc(a,f)}break;case 4:a.q=(kAc(),jAc);Dbc(a,f);j=0;for(e=new olb(a.b);e.a<e.c.c.length;){d=ED(mlb(e));j=$wnd.Math.max(j,(uCb(d),d))}if(j>a.k){a.q=gAc;Dbc(a,f)}break;case 6:m=QD($wnd.Math.ceil(a.f.length*k/100));Dbc(a,new Mbc(m));break;case 5:l=QD($wnd.Math.ceil(a.d*k/100));Dbc(a,new Pbc(l));break;default:Dbc(a,f);}Ebc(a,b);Qdd(c)} +function fFc(a,b,c){var d,e,f,g;this.j=a;this.e=WZb(a);this.o=this.j.e;this.i=!!this.o;this.p=this.i?BD(Ikb(c,Q_b(this.o).p),214):null;e=BD(vNb(a,(wtc(),Ksc)),21);this.g=e.Hc((Orc(),Hrc));this.b=new Rkb;this.d=new rHc(this.e);g=BD(vNb(this.j,jtc),230);this.q=wFc(b,g,this.e);this.k=new BGc(this);f=Ou(OC(GC(qY,1),Uhe,225,0,[this,this.d,this.k,this.q]));if(b==(rGc(),oGc)&&!Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new uEc(d,g,BD(this.q,402))}else if(b==oGc&&Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new XGc(d,g,BD(this.q,402))}else{this.c=new Oic(b,this)}Ekb(f,this.c);$Ic(f,this.e);this.s=AGc(this.k)} +function xUc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;l=BD(pr((g=Jsb((new ZRc(b)).a.d,0),new aSc(g))),86);o=l?BD(vNb(l,(mTc(),_Sc)),86):null;e=1;while(!!l&&!!o){i=0;u=0;c=l;d=o;for(h=0;h<e;h++){c=VRc(c);d=VRc(d);u+=Edb(ED(vNb(c,(mTc(),cTc))));i+=Edb(ED(vNb(d,cTc)))}t=Edb(ED(vNb(o,(mTc(),fTc))));s=Edb(ED(vNb(l,fTc)));m=zUc(l,o);n=t+i+a.a+m-s-u;if(0<n){j=b;k=0;while(!!j&&j!=d){++k;j=BD(vNb(j,aTc),86)}if(j){r=n/k;j=b;while(j!=d){q=Edb(ED(vNb(j,fTc)))+n;yNb(j,fTc,q);p=Edb(ED(vNb(j,cTc)))+n;yNb(j,cTc,p);n-=r;j=BD(vNb(j,aTc),86)}}else{return}}++e;l.d.b==0?(l=JRc(new ZRc(b),e)):(l=BD(pr((f=Jsb((new ZRc(l)).a.d,0),new aSc(f))),86));o=l?BD(vNb(l,_Sc),86):null}} +function Cbc(a,b){var c,d,e,f,g,h,i,j,k,l;i=true;e=0;j=a.f[b.p];k=b.o.b+a.n;c=a.c[b.p][2];Nkb(a.a,j,meb(BD(Ikb(a.a,j),19).a-1+c));Nkb(a.b,j,Edb(ED(Ikb(a.b,j)))-k+c*a.e);++j;if(j>=a.i){++a.i;Ekb(a.a,meb(1));Ekb(a.b,k)}else{d=a.c[b.p][1];Nkb(a.a,j,meb(BD(Ikb(a.a,j),19).a+1-d));Nkb(a.b,j,Edb(ED(Ikb(a.b,j)))+k-d*a.e)}(a.q==(kAc(),dAc)&&(BD(Ikb(a.a,j),19).a>a.j||BD(Ikb(a.a,j-1),19).a>a.j)||a.q==gAc&&(Edb(ED(Ikb(a.b,j)))>a.k||Edb(ED(Ikb(a.b,j-1)))>a.k))&&(i=false);for(g=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);h=f.c.i;if(a.f[h.p]==j){l=Cbc(a,h);e=e+BD(l.a,19).a;i=i&&Ccb(DD(l.b))}}a.f[b.p]=j;e=e+a.c[b.p][0];return new vgd(meb(e),(Bcb(),i?true:false))} +function sPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;l=new Lqb;g=new Rkb;qPc(a,c,a.d.fg(),g,l);qPc(a,d,a.d.gg(),g,l);a.b=0.2*(p=rPc(LAb(new YAb(null,new Kub(g,16)),new xPc)),q=rPc(LAb(new YAb(null,new Kub(g,16)),new zPc)),$wnd.Math.min(p,q));f=0;for(h=0;h<g.c.length-1;h++){i=(tCb(h,g.c.length),BD(g.c[h],112));for(o=h+1;o<g.c.length;o++){f+=pPc(a,i,(tCb(o,g.c.length),BD(g.c[o],112)))}}m=BD(vNb(b,(wtc(),jtc)),230);f>=2&&(r=WNc(g,true,m),!a.e&&(a.e=new ZOc(a)),VOc(a.e,r,g,a.b),undefined);uPc(g,m);wPc(g);n=-1;for(k=new olb(g);k.a<k.c.c.length;){j=BD(mlb(k),112);if($wnd.Math.abs(j.s-j.c)<qme){continue}n=$wnd.Math.max(n,j.o);a.d.dg(j,e,a.c)}a.d.a.a.$b();return n+1} +function aUb(a,b){var c,d,e,f,g;c=Edb(ED(vNb(b,(Nyc(),lyc))));c<2&&yNb(b,lyc,2);d=BD(vNb(b,Lwc),103);d==(ead(),cad)&&yNb(b,Lwc,a_b(b));e=BD(vNb(b,fyc),19);e.a==0?yNb(b,(wtc(),jtc),new Gub):yNb(b,(wtc(),jtc),new Hub(e.a));f=DD(vNb(b,Axc));f==null&&yNb(b,Axc,(Bcb(),PD(vNb(b,Swc))===PD((Aad(),wad))?true:false));MAb(new YAb(null,new Kub(b.a,16)),new dUb(a));MAb(LAb(new YAb(null,new Kub(b.b,16)),new fUb),new hUb(a));g=new oBc(b);yNb(b,(wtc(),otc),g);H2c(a.a);K2c(a.a,(qUb(),lUb),BD(vNb(b,Jwc),246));K2c(a.a,mUb,BD(vNb(b,sxc),246));K2c(a.a,nUb,BD(vNb(b,Iwc),246));K2c(a.a,oUb,BD(vNb(b,Exc),246));K2c(a.a,pUb,kNc(BD(vNb(b,Swc),218)));E2c(a.a,_Tb(b));yNb(b,itc,F2c(a.a,b))} +function fjc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;if(m=a.c[b],n=a.c[c],(o=BD(vNb(m,(wtc(),Qsc)),15),!!o&&o.gc()!=0&&o.Hc(n))||(p=m.k!=(j0b(),g0b)&&n.k!=g0b,q=BD(vNb(m,Psc),10),r=BD(vNb(n,Psc),10),s=q!=r,t=!!q&&q!=m||!!r&&r!=n,u=gjc(m,(Ucd(),Acd)),v=gjc(n,Rcd),t=t|(gjc(m,Rcd)||gjc(n,Acd)),w=t&&s||u||v,p&&w)||m.k==(j0b(),i0b)&&n.k==h0b||n.k==(j0b(),i0b)&&m.k==h0b){return false}k=a.c[b];f=a.c[c];e=LHc(a.e,k,f,(Ucd(),Tcd));i=LHc(a.i,k,f,zcd);Yic(a.f,k,f);j=Hic(a.b,k,f)+BD(e.a,19).a+BD(i.a,19).a+a.f.d;h=Hic(a.b,f,k)+BD(e.b,19).a+BD(i.b,19).a+a.f.b;if(a.a){l=BD(vNb(k,$sc),11);g=BD(vNb(f,$sc),11);d=JHc(a.g,l,g);j+=BD(d.a,19).a;h+=BD(d.b,19).a}return j>h} +function k6b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=BD(vNb(a,(Nyc(),Vxc)),98);g=a.f;f=a.d;h=g.a+f.b+f.c;i=0-f.d-a.c.b;k=g.b+f.d+f.a-a.c.b;j=new Rkb;l=new Rkb;for(e=new olb(b);e.a<e.c.c.length;){d=BD(mlb(e),10);switch(c.g){case 1:case 2:case 3:a6b(d);break;case 4:m=BD(vNb(d,Txc),8);n=!m?0:m.a;d.n.a=h*Edb(ED(vNb(d,(wtc(),htc))))-n;M_b(d,true,false);break;case 5:o=BD(vNb(d,Txc),8);p=!o?0:o.a;d.n.a=Edb(ED(vNb(d,(wtc(),htc))))-p;M_b(d,true,false);g.a=$wnd.Math.max(g.a,d.n.a+d.o.a/2);}switch(BD(vNb(d,(wtc(),Hsc)),61).g){case 1:d.n.b=i;j.c[j.c.length]=d;break;case 3:d.n.b=k;l.c[l.c.length]=d;}}switch(c.g){case 1:case 2:c6b(j,a);c6b(l,a);break;case 3:i6b(j,a);i6b(l,a);}} +function VHc(a,b){var c,d,e,f,g,h,i,j,k,l;k=new Rkb;l=new jkb;f=null;e=0;for(d=0;d<b.length;++d){c=b[d];XHc(f,c)&&(e=QHc(a,l,k,EHc,e));wNb(c,(wtc(),Psc))&&(f=BD(vNb(c,Psc),10));switch(c.k.g){case 0:for(i=Vq(Nq(V_b(c,(Ucd(),Acd)),new GIc));xc(i);){g=BD(yc(i),11);a.d[g.p]=e++;k.c[k.c.length]=g}e=QHc(a,l,k,EHc,e);for(j=Vq(Nq(V_b(c,Rcd),new GIc));xc(j);){g=BD(yc(j),11);a.d[g.p]=e++;k.c[k.c.length]=g}break;case 3:if(!V_b(c,DHc).dc()){g=BD(V_b(c,DHc).Xb(0),11);a.d[g.p]=e++;k.c[k.c.length]=g}V_b(c,EHc).dc()||Wjb(l,c);break;case 1:for(h=V_b(c,(Ucd(),Tcd)).Kc();h.Ob();){g=BD(h.Pb(),11);a.d[g.p]=e++;k.c[k.c.length]=g}V_b(c,zcd).Jc(new EIc(l,c));}}QHc(a,l,k,EHc,e);return k} +function y$c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;j=Pje;k=Pje;h=Qje;i=Qje;for(m=new olb(b.i);m.a<m.c.c.length;){l=BD(mlb(m),65);e=BD(BD(Ohb(a.g,l.a),46).b,33);bld(e,l.b.c,l.b.d);j=$wnd.Math.min(j,e.i);k=$wnd.Math.min(k,e.j);h=$wnd.Math.max(h,e.i+e.g);i=$wnd.Math.max(i,e.j+e.f)}n=BD(hkd(a.c,(d0c(),W_c)),116);Afd(a.c,h-j+(n.b+n.c),i-k+(n.d+n.a),true,true);Efd(a.c,-j+n.b,-k+n.d);for(d=new Fyd(Wod(a.c));d.e!=d.i.gc();){c=BD(Dyd(d),79);g=itd(c,true,true);o=jtd(c);q=ltd(c);p=new f7c(o.i+o.g/2,o.j+o.f/2);f=new f7c(q.i+q.g/2,q.j+q.f/2);r=c7c(new f7c(f.a,f.b),p);l6c(r,o.g,o.f);P6c(p,r);s=c7c(new f7c(p.a,p.b),f);l6c(s,q.g,q.f);P6c(f,s);nmd(g,p.a,p.b);gmd(g,f.a,f.b)}} +function EYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;a.c=a.d;o=DD(vNb(b,(Nyc(),gyc)));n=o==null||(uCb(o),o);f=BD(vNb(b,(wtc(),Ksc)),21).Hc((Orc(),Hrc));e=BD(vNb(b,Vxc),98);c=!(e==(dcd(),Zbd)||e==_bd||e==$bd);if(n&&(c||!f)){for(l=new olb(b.a);l.a<l.c.c.length;){j=BD(mlb(l),10);j.p=0}m=new Rkb;for(k=new olb(b.a);k.a<k.c.c.length;){j=BD(mlb(k),10);d=DYb(a,j,null);if(d){i=new XZb;tNb(i,b);yNb(i,Esc,BD(d.b,21));u_b(i.d,b.d);yNb(i,Hxc,null);for(h=BD(d.a,15).Kc();h.Ob();){g=BD(h.Pb(),10);Ekb(i.a,g);g.a=i}m.Fc(i)}}f&&(PD(vNb(b,twc))===PD((RXb(),OXb))?(a.c=a.b):(a.c=a.a))}else{m=new amb(OC(GC(KQ,1),cne,37,0,[b]))}PD(vNb(b,twc))!==PD((RXb(),QXb))&&(mmb(),m.ad(new HYb));return m} +function KTc(a){r4c(a,new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c,are),'ELK Mr. Tree'),"Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."),new NTc),bre),pqb((Csd(),wsd)))));p4c(a,are,ame,CTc);p4c(a,are,wme,20);p4c(a,are,_le,tme);p4c(a,are,vme,meb(1));p4c(a,are,zme,(Bcb(),true));p4c(a,are,Zpe,Ksd(vTc));p4c(a,are,Fme,Ksd(xTc));p4c(a,are,Tme,Ksd(yTc));p4c(a,are,Eme,Ksd(zTc));p4c(a,are,Gme,Ksd(wTc));p4c(a,are,Dme,Ksd(ATc));p4c(a,are,Hme,Ksd(DTc));p4c(a,are,Zqe,Ksd(ITc));p4c(a,are,$qe,Ksd(FTc))} +function zod(a){if(a.q)return;a.q=true;a.p=Lnd(a,0);a.a=Lnd(a,1);Qnd(a.a,0);a.f=Lnd(a,2);Qnd(a.f,1);Knd(a.f,2);a.n=Lnd(a,3);Knd(a.n,3);Knd(a.n,4);Knd(a.n,5);Knd(a.n,6);a.g=Lnd(a,4);Qnd(a.g,7);Knd(a.g,8);a.c=Lnd(a,5);Qnd(a.c,7);Qnd(a.c,8);a.i=Lnd(a,6);Qnd(a.i,9);Qnd(a.i,10);Qnd(a.i,11);Qnd(a.i,12);Knd(a.i,13);a.j=Lnd(a,7);Qnd(a.j,9);a.d=Lnd(a,8);Qnd(a.d,3);Qnd(a.d,4);Qnd(a.d,5);Qnd(a.d,6);Knd(a.d,7);Knd(a.d,8);Knd(a.d,9);Knd(a.d,10);a.b=Lnd(a,9);Knd(a.b,0);Knd(a.b,1);a.e=Lnd(a,10);Knd(a.e,1);Knd(a.e,2);Knd(a.e,3);Knd(a.e,4);Qnd(a.e,5);Qnd(a.e,6);Qnd(a.e,7);Qnd(a.e,8);Qnd(a.e,9);Qnd(a.e,10);Knd(a.e,11);a.k=Lnd(a,11);Knd(a.k,0);Knd(a.k,1);a.o=Mnd(a,12);a.s=Mnd(a,13)} +function AUb(a,b){b.dc()&&HVb(a.j,true,true,true,true);pb(b,(Ucd(),Gcd))&&HVb(a.j,true,true,true,false);pb(b,Bcd)&&HVb(a.j,false,true,true,true);pb(b,Ocd)&&HVb(a.j,true,true,false,true);pb(b,Qcd)&&HVb(a.j,true,false,true,true);pb(b,Hcd)&&HVb(a.j,false,true,true,false);pb(b,Ccd)&&HVb(a.j,false,true,false,true);pb(b,Pcd)&&HVb(a.j,true,false,false,true);pb(b,Ncd)&&HVb(a.j,true,false,true,false);pb(b,Lcd)&&HVb(a.j,true,true,true,true);pb(b,Ecd)&&HVb(a.j,true,true,true,true);pb(b,Lcd)&&HVb(a.j,true,true,true,true);pb(b,Dcd)&&HVb(a.j,true,true,true,true);pb(b,Mcd)&&HVb(a.j,true,true,true,true);pb(b,Kcd)&&HVb(a.j,true,true,true,true);pb(b,Jcd)&&HVb(a.j,true,true,true,true)} +function rZb(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;f=new Rkb;for(j=new olb(d);j.a<j.c.c.length;){h=BD(mlb(j),441);g=null;if(h.f==(KAc(),IAc)){for(o=new olb(h.e);o.a<o.c.c.length;){n=BD(mlb(o),17);q=n.d.i;if(Q_b(q)==b){iZb(a,b,h,n,h.b,n.d)}else if(!c||f_b(q,c)){jZb(a,b,h,d,n)}else{m=oZb(a,b,c,n,h.b,IAc,g);m!=g&&(f.c[f.c.length]=m,true);m.c&&(g=m)}}}else{for(l=new olb(h.e);l.a<l.c.c.length;){k=BD(mlb(l),17);p=k.c.i;if(Q_b(p)==b){iZb(a,b,h,k,k.c,h.b)}else if(!c||f_b(p,c)){continue}else{m=oZb(a,b,c,k,h.b,HAc,g);m!=g&&(f.c[f.c.length]=m,true);m.c&&(g=m)}}}}for(i=new olb(f);i.a<i.c.c.length;){h=BD(mlb(i),441);Jkb(b.a,h.a,0)!=-1||Ekb(b.a,h.a);h.c&&(e.c[e.c.length]=h,true)}} +function SJc(a,b,c){var d,e,f,g,h,i,j,k,l,m;j=new Rkb;for(i=new olb(b.a);i.a<i.c.c.length;){g=BD(mlb(i),10);for(m=V_b(g,(Ucd(),zcd)).Kc();m.Ob();){l=BD(m.Pb(),11);for(e=new olb(l.g);e.a<e.c.c.length;){d=BD(mlb(e),17);if(!OZb(d)&&d.c.i.c==d.d.i.c||OZb(d)||d.d.i.c!=c){continue}j.c[j.c.length]=d}}}for(h=Su(c.a).Kc();h.Ob();){g=BD(h.Pb(),10);for(m=V_b(g,(Ucd(),Tcd)).Kc();m.Ob();){l=BD(m.Pb(),11);for(e=new olb(l.e);e.a<e.c.c.length;){d=BD(mlb(e),17);if(!OZb(d)&&d.c.i.c==d.d.i.c||OZb(d)||d.c.i.c!=b){continue}k=new Bib(j,j.c.length);f=(sCb(k.b>0),BD(k.a.Xb(k.c=--k.b),17));while(f!=d&&k.b>0){a.a[f.p]=true;a.a[d.p]=true;f=(sCb(k.b>0),BD(k.a.Xb(k.c=--k.b),17))}k.b>0&&uib(k)}}}} +function Vmd(b,c,d){var e,f,g,h,i,j,k,l,m;if(b.a!=c.Aj()){throw vbb(new Wdb(tte+c.ne()+ute))}e=o1d((O6d(),M6d),c).$k();if(e){return e.Aj().Nh().Ih(e,d)}h=o1d(M6d,c).al();if(h){if(d==null){return null}i=BD(d,15);if(i.dc()){return ''}m=new Hfb;for(g=i.Kc();g.Ob();){f=g.Pb();Efb(m,h.Aj().Nh().Ih(h,f));m.a+=' '}return lcb(m,m.a.length-1)}l=o1d(M6d,c).bl();if(!l.dc()){for(k=l.Kc();k.Ob();){j=BD(k.Pb(),148);if(j.wj(d)){try{m=j.Aj().Nh().Ih(j,d);if(m!=null){return m}}catch(a){a=ubb(a);if(!JD(a,102))throw vbb(a)}}}throw vbb(new Wdb("Invalid value: '"+d+"' for datatype :"+c.ne()))}BD(c,834).Fj();return d==null?null:JD(d,172)?''+BD(d,172).a:rb(d)==$J?CQd(Pmd[0],BD(d,199)):fcb(d)} +function zQc(a){var b,c,d,e,f,g,h,i,j,k;j=new Psb;h=new Psb;for(f=new olb(a);f.a<f.c.c.length;){d=BD(mlb(f),128);d.v=0;d.n=d.i.c.length;d.u=d.t.c.length;d.n==0&&(Gsb(j,d,j.c.b,j.c),true);d.u==0&&d.r.a.gc()==0&&(Gsb(h,d,h.c.b,h.c),true)}g=-1;while(j.b!=0){d=BD(Vt(j,0),128);for(c=new olb(d.t);c.a<c.c.c.length;){b=BD(mlb(c),268);k=b.b;k.v=$wnd.Math.max(k.v,d.v+1);g=$wnd.Math.max(g,k.v);--k.n;k.n==0&&(Gsb(j,k,j.c.b,j.c),true)}}if(g>-1){for(e=Jsb(h,0);e.b!=e.d.c;){d=BD(Xsb(e),128);d.v=g}while(h.b!=0){d=BD(Vt(h,0),128);for(c=new olb(d.i);c.a<c.c.c.length;){b=BD(mlb(c),268);i=b.a;if(i.r.a.gc()!=0){continue}i.v=$wnd.Math.min(i.v,d.v-1);--i.u;i.u==0&&(Gsb(h,i,h.c.b,h.c),true)}}}} +function A6c(a,b,c,d,e){var f,g,h,i;i=Pje;g=false;h=v6c(a,c7c(new f7c(b.a,b.b),a),P6c(new f7c(c.a,c.b),e),c7c(new f7c(d.a,d.b),c));f=!!h&&!($wnd.Math.abs(h.a-a.a)<=nse&&$wnd.Math.abs(h.b-a.b)<=nse||$wnd.Math.abs(h.a-b.a)<=nse&&$wnd.Math.abs(h.b-b.b)<=nse);h=v6c(a,c7c(new f7c(b.a,b.b),a),c,e);!!h&&(($wnd.Math.abs(h.a-a.a)<=nse&&$wnd.Math.abs(h.b-a.b)<=nse)==($wnd.Math.abs(h.a-b.a)<=nse&&$wnd.Math.abs(h.b-b.b)<=nse)||f?(i=$wnd.Math.min(i,U6c(c7c(h,c)))):(g=true));h=v6c(a,c7c(new f7c(b.a,b.b),a),d,e);!!h&&(g||($wnd.Math.abs(h.a-a.a)<=nse&&$wnd.Math.abs(h.b-a.b)<=nse)==($wnd.Math.abs(h.a-b.a)<=nse&&$wnd.Math.abs(h.b-b.b)<=nse)||f)&&(i=$wnd.Math.min(i,U6c(c7c(h,d))));return i} +function cTb(a){r4c(a,new E3c(L3c(P3c(M3c(O3c(N3c(new R3c,Rme),Sme),"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 fTb),ume)));p4c(a,Rme,Ame,Ksd(VSb));p4c(a,Rme,Cme,(Bcb(),true));p4c(a,Rme,Fme,Ksd(YSb));p4c(a,Rme,Tme,Ksd(ZSb));p4c(a,Rme,Eme,Ksd($Sb));p4c(a,Rme,Gme,Ksd(XSb));p4c(a,Rme,Dme,Ksd(_Sb));p4c(a,Rme,Hme,Ksd(aTb));p4c(a,Rme,Mme,Ksd(USb));p4c(a,Rme,Ome,Ksd(SSb));p4c(a,Rme,Pme,Ksd(TSb));p4c(a,Rme,Qme,Ksd(WSb));p4c(a,Rme,Nme,Ksd(RSb))} +function BFc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Interactive crossing minimization',1);g=0;for(f=new olb(a.b);f.a<f.c.c.length;){d=BD(mlb(f),29);d.p=g++}m=WZb(a);q=new iHc(m.length);$Ic(new amb(OC(GC(qY,1),Uhe,225,0,[q])),m);p=0;g=0;for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),29);c=0;l=0;for(k=new olb(d.a);k.a<k.c.c.length;){i=BD(mlb(k),10);if(i.n.a>0){c+=i.n.a+i.o.a/2;++l}for(o=new olb(i.j);o.a<o.c.c.length;){n=BD(mlb(o),11);n.p=p++}}l>0&&(c/=l);r=KC(UD,Vje,25,d.a.c.length,15,1);h=0;for(j=new olb(d.a);j.a<j.c.c.length;){i=BD(mlb(j),10);i.p=h++;r[i.p]=AFc(i,c);i.k==(j0b(),g0b)&&yNb(i,(wtc(),atc),r[i.p])}mmb();Okb(d.a,new GFc(r));YDc(q,m,g,true);++g}Qdd(b)} +function Zfe(a,b){var c,d,e,f,g,h,i,j,k;if(b.e==5){Wfe(a,b);return}j=b;if(j.b==null||a.b==null)return;Yfe(a);Vfe(a);Yfe(j);Vfe(j);c=KC(WD,oje,25,a.b.length+j.b.length,15,1);k=0;d=0;g=0;while(d<a.b.length&&g<j.b.length){e=a.b[d];f=a.b[d+1];h=j.b[g];i=j.b[g+1];if(f<h){c[k++]=a.b[d++];c[k++]=a.b[d++]}else if(f>=h&&e<=i){if(h<=e&&f<=i){d+=2}else if(h<=e){a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=e;c[k++]=h-1;d+=2}else{c[k++]=e;c[k++]=h-1;a.b[d]=i+1;g+=2}}else if(i<e){g+=2}else{throw vbb(new hz('Token#subtractRanges(): Internal Error: ['+a.b[d]+','+a.b[d+1]+'] - ['+j.b[g]+','+j.b[g+1]+']'))}}while(d<a.b.length){c[k++]=a.b[d++];c[k++]=a.b[d++]}a.b=KC(WD,oje,25,k,15,1);$fb(c,0,a.b,0,k)} +function BJb(a){var b,c,d,e,f,g,h;if(a.A.dc()){return}if(a.A.Hc((tdd(),rdd))){BD(Mpb(a.b,(Ucd(),Acd)),124).k=true;BD(Mpb(a.b,Rcd),124).k=true;b=a.q!=(dcd(),_bd)&&a.q!=$bd;ZGb(BD(Mpb(a.b,zcd),124),b);ZGb(BD(Mpb(a.b,Tcd),124),b);ZGb(a.g,b);if(a.A.Hc(sdd)){BD(Mpb(a.b,Acd),124).j=true;BD(Mpb(a.b,Rcd),124).j=true;BD(Mpb(a.b,zcd),124).k=true;BD(Mpb(a.b,Tcd),124).k=true;a.g.k=true}}if(a.A.Hc(qdd)){a.a.j=true;a.a.k=true;a.g.j=true;a.g.k=true;h=a.B.Hc((Idd(),Edd));for(e=wJb(),f=0,g=e.length;f<g;++f){d=e[f];c=BD(Mpb(a.i,d),306);if(c){if(sJb(d)){c.j=true;c.k=true}else{c.j=!h;c.k=!h}}}}if(a.A.Hc(pdd)&&a.B.Hc((Idd(),Ddd))){a.g.j=true;a.g.j=true;if(!a.a.j){a.a.j=true;a.a.k=true;a.a.e=true}}} +function GJc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;for(d=new olb(a.e.b);d.a<d.c.c.length;){c=BD(mlb(d),29);for(f=new olb(c.a);f.a<f.c.c.length;){e=BD(mlb(f),10);n=a.i[e.p];j=n.a.e;i=n.d.e;e.n.b=j;r=i-j-e.o.b;b=bKc(e);m=(Izc(),(!e.q?(mmb(),mmb(),kmb):e.q)._b((Nyc(),Cxc))?(l=BD(vNb(e,Cxc),197)):(l=BD(vNb(Q_b(e),Dxc),197)),l);b&&(m==Fzc||m==Ezc)&&(e.o.b+=r);if(b&&(m==Hzc||m==Fzc||m==Ezc)){for(p=new olb(e.j);p.a<p.c.c.length;){o=BD(mlb(p),11);if((Ucd(),Ecd).Hc(o.j)){k=BD(Ohb(a.k,o),121);o.n.b=k.e-j}}for(h=new olb(e.b);h.a<h.c.c.length;){g=BD(mlb(h),70);q=BD(vNb(e,xxc),21);q.Hc((Hbd(),Ebd))?(g.n.b+=r):q.Hc(Fbd)&&(g.n.b+=r/2)}(m==Fzc||m==Ezc)&&V_b(e,(Ucd(),Rcd)).Jc(new $Kc(r))}}}} +function Lwb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;if(!a.b){return false}g=null;m=null;i=new exb(null,null);e=1;i.a[1]=a.b;l=i;while(l.a[e]){j=e;h=m;m=l;l=l.a[e];d=a.a.ue(b,l.d);e=d<0?0:1;d==0&&(!c.c||wtb(l.e,c.d))&&(g=l);if(!(!!l&&l.b)&&!Hwb(l.a[e])){if(Hwb(l.a[1-e])){m=m.a[j]=Owb(l,e)}else if(!Hwb(l.a[1-e])){n=m.a[1-j];if(n){if(!Hwb(n.a[1-j])&&!Hwb(n.a[j])){m.b=false;n.b=true;l.b=true}else{f=h.a[1]==m?1:0;Hwb(n.a[j])?(h.a[f]=Nwb(m,j)):Hwb(n.a[1-j])&&(h.a[f]=Owb(m,j));l.b=h.a[f].b=true;h.a[f].a[0].b=false;h.a[f].a[1].b=false}}}}}if(g){c.b=true;c.d=g.e;if(l!=g){k=new exb(l.d,l.e);Mwb(a,i,g,k);m==g&&(m=k)}m.a[m.a[1]==l?1:0]=l.a[!l.a[0]?1:0];--a.c}a.b=i.a[1];!!a.b&&(a.b.b=false);return c.b} +function cic(a){var b,c,d,e,f,g,h,i,j,k,l,m;for(e=new olb(a.a.a.b);e.a<e.c.c.length;){d=BD(mlb(e),57);for(i=d.c.Kc();i.Ob();){h=BD(i.Pb(),57);if(d.a==h.a){continue}fad(a.a.d)?(l=a.a.g.Oe(d,h)):(l=a.a.g.Pe(d,h));f=d.b.a+d.d.b+l-h.b.a;f=$wnd.Math.ceil(f);f=$wnd.Math.max(0,f);if(vgc(d,h)){g=nGb(new pGb,a.d);j=QD($wnd.Math.ceil(h.b.a-d.b.a));b=j-(h.b.a-d.b.a);k=ugc(d).a;c=d;if(!k){k=ugc(h).a;b=-b;c=h}if(k){c.b.a-=b;k.n.a-=b}AFb(DFb(CFb(EFb(BFb(new FFb,$wnd.Math.max(0,j)),1),g),a.c[d.a.d]));AFb(DFb(CFb(EFb(BFb(new FFb,$wnd.Math.max(0,-j)),1),g),a.c[h.a.d]))}else{m=1;(JD(d.g,145)&&JD(h.g,10)||JD(h.g,145)&&JD(d.g,10))&&(m=2);AFb(DFb(CFb(EFb(BFb(new FFb,QD(f)),m),a.c[d.a.d]),a.c[h.a.d]))}}}} +function pEc(a,b,c){var d,e,f,g,h,i,j,k,l,m;if(c){d=-1;k=new Bib(b,0);while(k.b<k.d.gc()){h=(sCb(k.b<k.d.gc()),BD(k.d.Xb(k.c=k.b++),10));l=a.c[h.c.p][h.p].a;if(l==null){g=d+1;f=new Bib(b,k.b);while(f.b<f.d.gc()){m=tEc(a,(sCb(f.b<f.d.gc()),BD(f.d.Xb(f.c=f.b++),10))).a;if(m!=null){g=(uCb(m),m);break}}l=(d+g)/2;a.c[h.c.p][h.p].a=l;a.c[h.c.p][h.p].d=(uCb(l),l);a.c[h.c.p][h.p].b=1}d=(uCb(l),l)}}else{e=0;for(j=new olb(b);j.a<j.c.c.length;){h=BD(mlb(j),10);a.c[h.c.p][h.p].a!=null&&(e=$wnd.Math.max(e,Edb(a.c[h.c.p][h.p].a)))}e+=2;for(i=new olb(b);i.a<i.c.c.length;){h=BD(mlb(i),10);if(a.c[h.c.p][h.p].a==null){l=Cub(a.i,24)*lke*e-1;a.c[h.c.p][h.p].a=l;a.c[h.c.p][h.p].d=l;a.c[h.c.p][h.p].b=1}}}} +function CZd(){rEd(b5,new i$d);rEd(a5,new P$d);rEd(c5,new u_d);rEd(d5,new M_d);rEd(f5,new P_d);rEd(h5,new S_d);rEd(g5,new V_d);rEd(i5,new Y_d);rEd(k5,new GZd);rEd(l5,new JZd);rEd(m5,new MZd);rEd(n5,new PZd);rEd(o5,new SZd);rEd(p5,new VZd);rEd(q5,new YZd);rEd(t5,new _Zd);rEd(v5,new c$d);rEd(x6,new f$d);rEd(j5,new l$d);rEd(u5,new o$d);rEd(wI,new r$d);rEd(GC(SD,1),new u$d);rEd(xI,new x$d);rEd(yI,new A$d);rEd($J,new D$d);rEd(O4,new G$d);rEd(BI,new J$d);rEd(T4,new M$d);rEd(U4,new S$d);rEd(O9,new V$d);rEd(E9,new Y$d);rEd(FI,new _$d);rEd(JI,new c_d);rEd(AI,new f_d);rEd(MI,new i_d);rEd(DK,new l_d);rEd(v8,new o_d);rEd(u8,new r_d);rEd(UI,new x_d);rEd(ZI,new A_d);rEd(X4,new D_d);rEd(V4,new G_d)} +function hA(a,b,c){var d,e,f,g,h,i,j,k,l;!c&&(c=TA(b.q.getTimezoneOffset()));e=(b.q.getTimezoneOffset()-c.a)*60000;h=new gB(wbb(Cbb(b.q.getTime()),e));i=h;if(h.q.getTimezoneOffset()!=b.q.getTimezoneOffset()){e>0?(e-=86400000):(e+=86400000);i=new gB(wbb(Cbb(b.q.getTime()),e))}k=new Vfb;j=a.a.length;for(f=0;f<j;){d=bfb(a.a,f);if(d>=97&&d<=122||d>=65&&d<=90){for(g=f+1;g<j&&bfb(a.a,g)==d;++g);vA(k,d,g-f,h,i,c);f=g}else if(d==39){++f;if(f<j&&bfb(a.a,f)==39){k.a+="'";++f;continue}l=false;while(!l){g=f;while(g<j&&bfb(a.a,g)!=39){++g}if(g>=j){throw vbb(new Wdb("Missing trailing '"))}g+1<j&&bfb(a.a,g+1)==39?++g:(l=true);Qfb(k,qfb(a.a,f,g));f=g+1}}else{k.a+=String.fromCharCode(d);++f}}return k.a} +function MEc(a){var b,c,d,e,f,g,h,i;b=null;for(d=new olb(a);d.a<d.c.c.length;){c=BD(mlb(d),233);Edb(REc(c.g,c.d[0]).a);c.b=null;if(!!c.e&&c.e.gc()>0&&c.c==0){!b&&(b=new Rkb);b.c[b.c.length]=c}}if(b){while(b.c.length!=0){c=BD(Kkb(b,0),233);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new Rkb),new olb(c.b));f.a<f.c.c.length;){e=BD(mlb(f),233);if(Gdb(REc(e.g,e.d[0]).a)==Gdb(REc(c.g,c.d[0]).a)){if(Jkb(a,e,0)>Jkb(a,c,0)){return new vgd(e,c)}}else if(Edb(REc(e.g,e.d[0]).a)>Edb(REc(c.g,c.d[0]).a)){return new vgd(e,c)}}}for(h=(!c.e&&(c.e=new Rkb),c.e).Kc();h.Ob();){g=BD(h.Pb(),233);i=(!g.b&&(g.b=new Rkb),g.b);wCb(0,i.c.length);aCb(i.c,0,c);g.c==i.c.length&&(b.c[b.c.length]=g,true)}}}return null} +function wlb(a,b){var c,d,e,f,g,h,i,j,k;if(a==null){return Xhe}i=b.a.zc(a,b);if(i!=null){return '[...]'}c=new xwb(She,'[',']');for(e=a,f=0,g=e.length;f<g;++f){d=e[f];if(d!=null&&(rb(d).i&4)!=0){if(Array.isArray(d)&&(k=HC(d),!(k>=14&&k<=16))){if(b.a._b(d)){!c.a?(c.a=new Wfb(c.d)):Qfb(c.a,c.b);Nfb(c.a,'[...]')}else{h=CD(d);j=new Vqb(b);uwb(c,wlb(h,j))}}else JD(d,177)?uwb(c,Xlb(BD(d,177))):JD(d,190)?uwb(c,Qlb(BD(d,190))):JD(d,195)?uwb(c,Rlb(BD(d,195))):JD(d,2012)?uwb(c,Wlb(BD(d,2012))):JD(d,48)?uwb(c,Ulb(BD(d,48))):JD(d,364)?uwb(c,Vlb(BD(d,364))):JD(d,832)?uwb(c,Tlb(BD(d,832))):JD(d,104)&&uwb(c,Slb(BD(d,104)))}else{uwb(c,d==null?Xhe:fcb(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)} +function xQb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;h=itd(b,false,false);r=ofd(h);d&&(r=w7c(r));t=Edb(ED(hkd(b,(CPb(),vPb))));q=(sCb(r.b!=0),BD(r.a.a.c,8));l=BD(Ut(r,1),8);if(r.b>2){k=new Rkb;Gkb(k,new Jib(r,1,r.b));f=sQb(k,t+a.a);s=new XOb(f);tNb(s,b);c.c[c.c.length]=s}else{d?(s=BD(Ohb(a.b,jtd(b)),266)):(s=BD(Ohb(a.b,ltd(b)),266))}i=jtd(b);d&&(i=ltd(b));g=zQb(q,i);j=t+a.a;if(g.a){j+=$wnd.Math.abs(q.b-l.b);p=new f7c(l.a,(l.b+q.b)/2)}else{j+=$wnd.Math.abs(q.a-l.a);p=new f7c((l.a+q.a)/2,l.b)}d?Rhb(a.d,b,new ZOb(s,g,p,j)):Rhb(a.c,b,new ZOb(s,g,p,j));Rhb(a.b,b,s);o=(!b.n&&(b.n=new cUd(D2,b,1,7)),b.n);for(n=new Fyd(o);n.e!=n.i.gc();){m=BD(Dyd(n),137);e=wQb(a,m,true,0,0);c.c[c.c.length]=e}} +function wPc(a){var b,c,d,e,f,g,h,i,j,k;j=new Rkb;h=new Rkb;for(g=new olb(a);g.a<g.c.c.length;){e=BD(mlb(g),112);pOc(e,e.f.c.length);qOc(e,e.k.c.length);e.d==0&&(j.c[j.c.length]=e,true);e.i==0&&e.e.b==0&&(h.c[h.c.length]=e,true)}d=-1;while(j.c.length!=0){e=BD(Kkb(j,0),112);for(c=new olb(e.k);c.a<c.c.c.length;){b=BD(mlb(c),129);k=b.b;rOc(k,$wnd.Math.max(k.o,e.o+1));d=$wnd.Math.max(d,k.o);pOc(k,k.d-1);k.d==0&&(j.c[j.c.length]=k,true)}}if(d>-1){for(f=new olb(h);f.a<f.c.c.length;){e=BD(mlb(f),112);e.o=d}while(h.c.length!=0){e=BD(Kkb(h,0),112);for(c=new olb(e.f);c.a<c.c.c.length;){b=BD(mlb(c),129);i=b.a;if(i.e.b>0){continue}rOc(i,$wnd.Math.min(i.o,e.o-1));qOc(i,i.i-1);i.i==0&&(h.c[h.c.length]=i,true)}}}} +function QQd(a,b,c){var d,e,f,g,h,i,j;j=a.c;!b&&(b=FQd);a.c=b;if((a.Db&4)!=0&&(a.Db&1)==0){i=new nSd(a,1,2,j,a.c);!c?(c=i):c.Ei(i)}if(j!=b){if(JD(a.Cb,284)){if(a.Db>>16==-10){c=BD(a.Cb,284).nk(b,c)}else if(a.Db>>16==-15){!b&&(b=(jGd(),YFd));!j&&(j=(jGd(),YFd));if(a.Cb.nh()){i=new pSd(a.Cb,1,13,j,b,HLd(QSd(BD(a.Cb,59)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,88)){if(a.Db>>16==-23){JD(b,88)||(b=(jGd(),_Fd));JD(j,88)||(j=(jGd(),_Fd));if(a.Cb.nh()){i=new pSd(a.Cb,1,10,j,b,HLd(VKd(BD(a.Cb,26)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,444)){h=BD(a.Cb,836);g=(!h.b&&(h.b=new RYd(new NYd)),h.b);for(f=(d=new nib((new eib(g.a)).a),new ZYd(d));f.a.b;){e=BD(lib(f.a).cd(),87);c=QQd(e,MQd(e,h),c)}}}return c} +function O1b(a,b){var c,d,e,f,g,h,i,j,k,l,m;g=Ccb(DD(hkd(a,(Nyc(),fxc))));m=BD(hkd(a,Yxc),21);i=false;j=false;l=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));while(l.e!=l.i.gc()&&(!i||!j)){f=BD(Dyd(l),118);h=0;for(e=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!f.d&&(f.d=new y5d(B2,f,8,5)),f.d),(!f.e&&(f.e=new y5d(B2,f,7,4)),f.e)])));Qr(e);){d=BD(Rr(e),79);k=g&&Qld(d)&&Ccb(DD(hkd(d,gxc)));c=ELd((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),f)?a==Xod(atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))):a==Xod(atd(BD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),82)));if(k||c){++h;if(h>1){break}}}h>0?(i=true):m.Hc((rcd(),ncd))&&(!f.n&&(f.n=new cUd(D2,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.Fc((Orc(),Hrc));j&&b.Fc((Orc(),Irc))} +function zfd(a){var b,c,d,e,f,g,h,i,j,k,l,m;m=BD(hkd(a,(Y9c(),Y8c)),21);if(m.dc()){return null}h=0;g=0;if(m.Hc((tdd(),rdd))){k=BD(hkd(a,t9c),98);d=2;c=2;e=2;f=2;b=!Xod(a)?BD(hkd(a,z8c),103):BD(hkd(Xod(a),z8c),103);for(j=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));j.e!=j.i.gc();){i=BD(Dyd(j),118);l=BD(hkd(i,A9c),61);if(l==(Ucd(),Scd)){l=lfd(i,b);jkd(i,A9c,l)}if(k==(dcd(),$bd)){switch(l.g){case 1:d=$wnd.Math.max(d,i.i+i.g);break;case 2:c=$wnd.Math.max(c,i.j+i.f);break;case 3:e=$wnd.Math.max(e,i.i+i.g);break;case 4:f=$wnd.Math.max(f,i.j+i.f);}}else{switch(l.g){case 1:d+=i.g+2;break;case 2:c+=i.f+2;break;case 3:e+=i.g+2;break;case 4:f+=i.f+2;}}}h=$wnd.Math.max(d,e);g=$wnd.Math.max(c,f)}return Afd(a,h,g,true,true)} +function lnc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=BD(GAb(VAb(JAb(new YAb(null,new Kub(b.d,16)),new pnc(c)),new rnc(c)),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);l=Ohe;k=Rie;for(i=new olb(b.b.j);i.a<i.c.c.length;){h=BD(mlb(i),11);if(h.j==c){l=$wnd.Math.min(l,h.p);k=$wnd.Math.max(k,h.p)}}if(l==Ohe){for(g=0;g<s.gc();g++){ojc(BD(s.Xb(g),101),c,g)}}else{t=KC(WD,oje,25,e.length,15,1);Elb(t,t.length);for(r=s.Kc();r.Ob();){q=BD(r.Pb(),101);f=BD(Ohb(a.b,q),177);j=0;for(p=l;p<=k;p++){f[p]&&(j=$wnd.Math.max(j,d[p]))}if(q.i){n=q.i.c;u=new Tqb;for(m=0;m<e.length;m++){e[n][m]&&Qqb(u,meb(t[m]))}while(Rqb(u,meb(j))){++j}}ojc(q,c,j);for(o=l;o<=k;o++){f[o]&&(d[o]=j+1)}!!q.i&&(t[q.i.c]=j)}}} +function YJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;e=null;for(d=new olb(b.a);d.a<d.c.c.length;){c=BD(mlb(d),10);bKc(c)?(f=(h=nGb(oGb(new pGb,c),a.f),i=nGb(oGb(new pGb,c),a.f),j=new rKc(c,true,h,i),k=c.o.b,l=(Izc(),(!c.q?(mmb(),mmb(),kmb):c.q)._b((Nyc(),Cxc))?(m=BD(vNb(c,Cxc),197)):(m=BD(vNb(Q_b(c),Dxc),197)),m),n=10000,l==Ezc&&(n=1),o=AFb(DFb(CFb(BFb(EFb(new FFb,n),QD($wnd.Math.ceil(k))),h),i)),l==Fzc&&Qqb(a.d,o),ZJc(a,Su(V_b(c,(Ucd(),Tcd))),j),ZJc(a,V_b(c,zcd),j),j)):(f=(p=nGb(oGb(new pGb,c),a.f),MAb(JAb(new YAb(null,new Kub(c.j,16)),new EKc),new GKc(a,p)),new rKc(c,false,p,p)));a.i[c.p]=f;if(e){g=e.c.d.a+jBc(a.n,e.c,c)+c.d.d;e.b||(g+=e.c.o.b);AFb(DFb(CFb(EFb(BFb(new FFb,QD($wnd.Math.ceil(g))),0),e.d),f.a))}e=f}} +function s9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;Odd(b,'Label dummy insertions',1);l=new Rkb;g=Edb(ED(vNb(a,(Nyc(),nyc))));j=Edb(ED(vNb(a,ryc)));k=BD(vNb(a,Lwc),103);for(n=new olb(a.a);n.a<n.c.c.length;){m=BD(mlb(n),10);for(f=new Sr(ur(U_b(m).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(e.c.i!=e.d.i&&Lq(e.b,p9b)){p=t9b(e);o=Pu(e.b.c.length);c=r9b(a,e,p,o);l.c[l.c.length]=c;d=c.o;h=new Bib(e.b,0);while(h.b<h.d.gc()){i=(sCb(h.b<h.d.gc()),BD(h.d.Xb(h.c=h.b++),70));if(PD(vNb(i,Qwc))===PD((qad(),nad))){if(k==(ead(),dad)||k==_9c){d.a+=i.o.a+j;d.b=$wnd.Math.max(d.b,i.o.b)}else{d.a=$wnd.Math.max(d.a,i.o.a);d.b+=i.o.b+j}o.c[o.c.length]=i;uib(h)}}if(k==(ead(),dad)||k==_9c){d.a-=j;d.b+=g+p}else{d.b+=g-j+p}}}}Gkb(a.a,l);Qdd(b)} +function eYb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n;f=new qYb(b);l=_Xb(a,b,f);n=$wnd.Math.max(Edb(ED(vNb(b,(Nyc(),Zwc)))),1);for(k=new olb(l.a);k.a<k.c.c.length;){j=BD(mlb(k),46);i=dYb(BD(j.a,8),BD(j.b,8),n);o=true;o=o&iYb(c,new f7c(i.c,i.d));o=o&iYb(c,O6c(new f7c(i.c,i.d),i.b,0));o=o&iYb(c,O6c(new f7c(i.c,i.d),0,i.a));o&iYb(c,O6c(new f7c(i.c,i.d),i.b,i.a))}m=f.d;h=dYb(BD(l.b.a,8),BD(l.b.b,8),n);if(m==(Ucd(),Tcd)||m==zcd){d.c[m.g]=$wnd.Math.min(d.c[m.g],h.d);d.b[m.g]=$wnd.Math.max(d.b[m.g],h.d+h.a)}else{d.c[m.g]=$wnd.Math.min(d.c[m.g],h.c);d.b[m.g]=$wnd.Math.max(d.b[m.g],h.c+h.b)}e=Qje;g=f.c.i.d;switch(m.g){case 4:e=g.c;break;case 2:e=g.b;break;case 1:e=g.a;break;case 3:e=g.d;}d.a[m.g]=$wnd.Math.max(d.a[m.g],e);return f} +function eKd(b){var c,d,e,f;d=b.D!=null?b.D:b.B;c=hfb(d,wfb(91));if(c!=-1){e=d.substr(0,c);f=new Hfb;do f.a+='[';while((c=gfb(d,91,++c))!=-1);if(dfb(e,Khe))f.a+='Z';else if(dfb(e,Eve))f.a+='B';else if(dfb(e,Fve))f.a+='C';else if(dfb(e,Gve))f.a+='D';else if(dfb(e,Hve))f.a+='F';else if(dfb(e,Ive))f.a+='I';else if(dfb(e,Jve))f.a+='J';else if(dfb(e,Kve))f.a+='S';else{f.a+='L';f.a+=''+e;f.a+=';'}try{return null}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}else if(hfb(d,wfb(46))==-1){if(dfb(d,Khe))return sbb;else if(dfb(d,Eve))return SD;else if(dfb(d,Fve))return TD;else if(dfb(d,Gve))return UD;else if(dfb(d,Hve))return VD;else if(dfb(d,Ive))return WD;else if(dfb(d,Jve))return XD;else if(dfb(d,Kve))return rbb}return null} +function $1b(a,b,c){var d,e,f,g,h,i,j,k;j=new b0b(c);tNb(j,b);yNb(j,(wtc(),$sc),b);j.o.a=b.g;j.o.b=b.f;j.n.a=b.i;j.n.b=b.j;Ekb(c.a,j);Rhb(a.a,b,j);((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i!=0||Ccb(DD(hkd(b,(Nyc(),fxc)))))&&yNb(j,wsc,(Bcb(),true));i=BD(vNb(c,Ksc),21);k=BD(vNb(j,(Nyc(),Vxc)),98);k==(dcd(),ccd)?yNb(j,Vxc,bcd):k!=bcd&&i.Fc((Orc(),Krc));d=BD(vNb(c,Lwc),103);for(h=new Fyd((!b.c&&(b.c=new cUd(F2,b,9,9)),b.c));h.e!=h.i.gc();){g=BD(Dyd(h),118);Ccb(DD(hkd(g,Jxc)))||_1b(a,g,j,i,d,k)}for(f=new Fyd((!b.n&&(b.n=new cUd(D2,b,1,7)),b.n));f.e!=f.i.gc();){e=BD(Dyd(f),137);!Ccb(DD(hkd(e,Jxc)))&&!!e.a&&Ekb(j.b,Z1b(e))}Ccb(DD(vNb(j,pwc)))&&i.Fc((Orc(),Frc));if(Ccb(DD(vNb(j,exc)))){i.Fc((Orc(),Jrc));i.Fc(Irc);yNb(j,Vxc,bcd)}return j} +function F4b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;h=BD(Ohb(b.c,a),459);s=b.a.c;i=b.a.c+b.a.b;C=h.f;D=h.a;g=C<D;p=new f7c(s,C);t=new f7c(i,D);e=(s+i)/2;q=new f7c(e,C);u=new f7c(e,D);f=G4b(a,C,D);w=A0b(b.B);A=new f7c(e,f);B=A0b(b.D);c=j6c(OC(GC(m1,1),nie,8,0,[w,A,B]));n=false;r=b.B.i;if(!!r&&!!r.c&&h.d){j=g&&r.p<r.c.a.c.length-1||!g&&r.p>0;if(j){if(j){m=r.p;g?++m:--m;l=BD(Ikb(r.c.a,m),10);d=I4b(l);n=!(s6c(d,w,c[0])||n6c(d,w,c[0]))}}else{n=true}}o=false;v=b.D.i;if(!!v&&!!v.c&&h.e){k=g&&v.p>0||!g&&v.p<v.c.a.c.length-1;if(k){m=v.p;g?--m:++m;l=BD(Ikb(v.c.a,m),10);d=I4b(l);o=!(s6c(d,c[0],B)||n6c(d,c[0],B))}else{o=true}}n&&o&&Dsb(a.a,A);n||n7c(a.a,OC(GC(m1,1),nie,8,0,[p,q]));o||n7c(a.a,OC(GC(m1,1),nie,8,0,[u,t]))} +function yfd(a,b){var c,d,e,f,g,h,i,j;if(JD(a.Ug(),160)){yfd(BD(a.Ug(),160),b);b.a+=' > '}else{b.a+='Root '}c=a.Tg().zb;dfb(c.substr(0,3),'Elk')?Qfb(b,c.substr(3)):(b.a+=''+c,b);e=a.zg();if(e){Qfb((b.a+=' ',b),e);return}if(JD(a,354)){j=BD(a,137).a;if(j){Qfb((b.a+=' ',b),j);return}}for(g=new Fyd(a.Ag());g.e!=g.i.gc();){f=BD(Dyd(g),137);j=f.a;if(j){Qfb((b.a+=' ',b),j);return}}if(JD(a,352)){d=BD(a,79);!d.b&&(d.b=new y5d(z2,d,4,7));if(d.b.i!=0&&(!d.c&&(d.c=new y5d(z2,d,5,8)),d.c.i!=0)){b.a+=' (';h=new Oyd((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b));while(h.e!=h.i.gc()){h.e>0&&(b.a+=She,b);yfd(BD(Dyd(h),160),b)}b.a+=gne;i=new Oyd((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c));while(i.e!=i.i.gc()){i.e>0&&(b.a+=She,b);yfd(BD(Dyd(i),160),b)}b.a+=')'}}} +function y2b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=BD(vNb(a,(wtc(),$sc)),79);if(!f){return}d=a.a;e=new g7c(c);P6c(e,C2b(a));if(f_b(a.d.i,a.c.i)){m=a.c;l=l7c(OC(GC(m1,1),nie,8,0,[m.n,m.a]));c7c(l,c)}else{l=A0b(a.c)}Gsb(d,l,d.a,d.a.a);n=A0b(a.d);vNb(a,utc)!=null&&P6c(n,BD(vNb(a,utc),8));Gsb(d,n,d.c.b,d.c);q7c(d,e);g=itd(f,true,true);kmd(g,BD(qud((!f.b&&(f.b=new y5d(z2,f,4,7)),f.b),0),82));lmd(g,BD(qud((!f.c&&(f.c=new y5d(z2,f,5,8)),f.c),0),82));ifd(d,g);for(k=new olb(a.b);k.a<k.c.c.length;){j=BD(mlb(k),70);h=BD(vNb(j,$sc),137);cld(h,j.o.a);ald(h,j.o.b);bld(h,j.n.a+e.a,j.n.b+e.b);jkd(h,(I9b(),H9b),DD(vNb(j,H9b)))}i=BD(vNb(a,(Nyc(),jxc)),74);if(i){q7c(i,e);jkd(f,jxc,i)}else{jkd(f,jxc,null)}b==(Aad(),yad)?jkd(f,Swc,yad):jkd(f,Swc,null)} +function mJc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;n=b.c.length;m=0;for(l=new olb(a.b);l.a<l.c.c.length;){k=BD(mlb(l),29);r=k.a;if(r.c.length==0){continue}q=new olb(r);j=0;s=null;e=BD(mlb(q),10);f=null;while(e){f=BD(Ikb(b,e.p),257);if(f.c>=0){i=null;h=new Bib(k.a,j+1);while(h.b<h.d.gc()){g=(sCb(h.b<h.d.gc()),BD(h.d.Xb(h.c=h.b++),10));i=BD(Ikb(b,g.p),257);if(i.d==f.d&&i.c<f.c){break}else{i=null}}if(i){if(s){Nkb(d,e.p,meb(BD(Ikb(d,e.p),19).a-1));BD(Ikb(c,s.p),15).Mc(f)}f=yJc(f,e,n++);b.c[b.c.length]=f;Ekb(c,new Rkb);if(s){BD(Ikb(c,s.p),15).Fc(f);Ekb(d,meb(1))}else{Ekb(d,meb(0))}}}o=null;if(q.a<q.c.c.length){o=BD(mlb(q),10);p=BD(Ikb(b,o.p),257);BD(Ikb(c,e.p),15).Fc(p);Nkb(d,o.p,meb(BD(Ikb(d,o.p),19).a+1))}f.d=m;f.c=j++;s=e;e=o}++m}} +function u6c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=a;k=c7c(new f7c(b.a,b.b),a);j=c;l=c7c(new f7c(d.a,d.b),c);m=i.a;q=i.b;o=j.a;s=j.b;n=k.a;r=k.b;p=l.a;t=l.b;e=p*r-n*t;Iy();My(Jqe);if($wnd.Math.abs(0-e)<=Jqe||0==e||isNaN(0)&&isNaN(e)){return false}g=1/e*((m-o)*r-(q-s)*n);h=1/e*-(-(m-o)*t+(q-s)*p);f=(null,My(Jqe),($wnd.Math.abs(0-g)<=Jqe||0==g||isNaN(0)&&isNaN(g)?0:0<g?-1:0>g?1:Ny(isNaN(0),isNaN(g)))<0&&(null,My(Jqe),($wnd.Math.abs(g-1)<=Jqe||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:Ny(isNaN(g),isNaN(1)))<0)&&(null,My(Jqe),($wnd.Math.abs(0-h)<=Jqe||0==h||isNaN(0)&&isNaN(h)?0:0<h?-1:0>h?1:Ny(isNaN(0),isNaN(h)))<0)&&(null,My(Jqe),($wnd.Math.abs(h-1)<=Jqe||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:Ny(isNaN(h),isNaN(1)))<0));return f} +function z6d(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;for(l=new usb(new nsb(a));l.b!=l.c.a.d;){k=tsb(l);h=BD(k.d,56);b=BD(k.e,56);g=h.Tg();for(p=0,u=(g.i==null&&TKd(g),g.i).length;p<u;++p){j=(f=(g.i==null&&TKd(g),g.i),p>=0&&p<f.length?f[p]:null);if(j.Ij()&&!j.Jj()){if(JD(j,99)){i=BD(j,18);(i.Bb&ote)==0&&(w=zUd(i),!(!!w&&(w.Bb&ote)!=0))&&y6d(a,i,h,b)}else{Q6d();if(BD(j,66).Oj()){c=(v=j,BD(!v?null:BD(b,49).xh(v),153));if(c){n=BD(h.ah(j),153);d=c.gc();for(q=0,o=n.gc();q<o;++q){m=n.il(q);if(JD(m,99)){t=n.jl(q);e=Wrb(a,t);if(e==null&&t!=null){s=BD(m,18);if(!a.b||(s.Bb&ote)!=0||!!zUd(s)){continue}e=t}if(!c.dl(m,e)){for(r=0;r<d;++r){if(c.il(r)==m&&PD(c.jl(r))===PD(e)){c.ii(c.gc()-1,r);--d;break}}}}else{c.dl(n.il(q),n.jl(q))}}}}}}}}} +function CZc(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t;r=xZc(b,c,a.g);e.n&&e.n&&!!f&&Tdd(e,i6d(f),(pgd(),mgd));if(a.b){for(q=0;q<r.c.length;q++){l=(tCb(q,r.c.length),BD(r.c[q],200));if(q!=0){n=(tCb(q-1,r.c.length),BD(r.c[q-1],200));w$c(l,n.f+n.b+a.g)}tZc(q,r,c,a.g);AZc(a,l);e.n&&!!f&&Tdd(e,i6d(f),(pgd(),mgd))}}else{for(p=new olb(r);p.a<p.c.c.length;){o=BD(mlb(p),200);for(k=new olb(o.a);k.a<k.c.c.length;){j=BD(mlb(k),187);s=new b$c(j.s,j.t,a.g);WZc(s,j);Ekb(o.d,s)}}}BZc(a,r);e.n&&e.n&&!!f&&Tdd(e,i6d(f),(pgd(),mgd));t=$wnd.Math.max(a.d,d.a-(g.b+g.c));m=$wnd.Math.max(a.c,d.b-(g.d+g.a));h=m-a.c;if(a.e&&a.f){i=t/m;i<a.a?(t=m*a.a):(h+=t/a.a-m)}a.e&&zZc(r,t,h);e.n&&e.n&&!!f&&Tdd(e,i6d(f),(pgd(),mgd));return new d$c(a.a,t,a.c+h,(k$c(),j$c))} +function UJc(a){var b,c,d,e,f,g,h,i,j,k,l;a.j=KC(WD,oje,25,a.g,15,1);a.o=new Rkb;MAb(LAb(new YAb(null,new Kub(a.e.b,16)),new aLc),new cLc(a));a.a=KC(sbb,dle,25,a.b,16,1);TAb(new YAb(null,new Kub(a.e.b,16)),new rLc(a));d=(l=new Rkb,MAb(JAb(LAb(new YAb(null,new Kub(a.e.b,16)),new hLc),new jLc(a)),new lLc(a,l)),l);for(i=new olb(d);i.a<i.c.c.length;){h=BD(mlb(i),508);if(h.c.length<=1){continue}if(h.c.length==2){uKc(h);bKc((tCb(0,h.c.length),BD(h.c[0],17)).d.i)||Ekb(a.o,h);continue}if(tKc(h)||sKc(h,new fLc)){continue}j=new olb(h);e=null;while(j.a<j.c.c.length){b=BD(mlb(j),17);c=a.c[b.p];!e||j.a>=j.c.c.length?(k=JJc((j0b(),h0b),g0b)):(k=JJc((j0b(),g0b),g0b));k*=2;f=c.a.g;c.a.g=$wnd.Math.max(f,f+(k-f));g=c.b.g;c.b.g=$wnd.Math.max(g,g+(k-g));e=b}}} +function VNc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;v=Hx(a);k=new Rkb;h=a.c.length;l=h-1;m=h+1;while(v.a.c!=0){while(c.b!=0){t=(sCb(c.b!=0),BD(Nsb(c,c.a.a),112));Jwb(v.a,t)!=null;t.g=l--;YNc(t,b,c,d)}while(b.b!=0){u=(sCb(b.b!=0),BD(Nsb(b,b.a.a),112));Jwb(v.a,u)!=null;u.g=m++;YNc(u,b,c,d)}j=Rie;for(r=(g=new Ywb((new cxb((new Gjb(v.a)).a)).b),new Njb(g));sib(r.a.a);){q=(f=Wwb(r.a),BD(f.cd(),112));if(!d&&q.b>0&&q.a<=0){k.c=KC(SI,Uhe,1,0,5,1);k.c[k.c.length]=q;break}p=q.i-q.d;if(p>=j){if(p>j){k.c=KC(SI,Uhe,1,0,5,1);j=p}k.c[k.c.length]=q}}if(k.c.length!=0){i=BD(Ikb(k,Bub(e,k.c.length)),112);Jwb(v.a,i)!=null;i.g=m++;YNc(i,b,c,d);k.c=KC(SI,Uhe,1,0,5,1)}}s=a.c.length+1;for(o=new olb(a);o.a<o.c.c.length;){n=BD(mlb(o),112);n.g<h&&(n.g=n.g+s)}} +function SDb(a,b){var c;if(a.e){throw vbb(new Zdb((fdb(TM),Jke+TM.k+Kke)))}if(!lDb(a.a,b)){throw vbb(new hz(Lke+b+Mke))}if(b==a.d){return a}c=a.d;a.d=b;switch(c.g){case 0:switch(b.g){case 2:PDb(a);break;case 1:XDb(a);PDb(a);break;case 4:bEb(a);PDb(a);break;case 3:bEb(a);XDb(a);PDb(a);}break;case 2:switch(b.g){case 1:XDb(a);YDb(a);break;case 4:bEb(a);PDb(a);break;case 3:bEb(a);XDb(a);PDb(a);}break;case 1:switch(b.g){case 2:XDb(a);YDb(a);break;case 4:XDb(a);bEb(a);PDb(a);break;case 3:XDb(a);bEb(a);XDb(a);PDb(a);}break;case 4:switch(b.g){case 2:bEb(a);PDb(a);break;case 1:bEb(a);XDb(a);PDb(a);break;case 3:XDb(a);YDb(a);}break;case 3:switch(b.g){case 2:XDb(a);bEb(a);PDb(a);break;case 1:XDb(a);bEb(a);XDb(a);PDb(a);break;case 4:XDb(a);YDb(a);}}return a} +function tVb(a,b){var c;if(a.d){throw vbb(new Zdb((fdb(LP),Jke+LP.k+Kke)))}if(!cVb(a.a,b)){throw vbb(new hz(Lke+b+Mke))}if(b==a.c){return a}c=a.c;a.c=b;switch(c.g){case 0:switch(b.g){case 2:qVb(a);break;case 1:xVb(a);qVb(a);break;case 4:BVb(a);qVb(a);break;case 3:BVb(a);xVb(a);qVb(a);}break;case 2:switch(b.g){case 1:xVb(a);yVb(a);break;case 4:BVb(a);qVb(a);break;case 3:BVb(a);xVb(a);qVb(a);}break;case 1:switch(b.g){case 2:xVb(a);yVb(a);break;case 4:xVb(a);BVb(a);qVb(a);break;case 3:xVb(a);BVb(a);xVb(a);qVb(a);}break;case 4:switch(b.g){case 2:BVb(a);qVb(a);break;case 1:BVb(a);xVb(a);qVb(a);break;case 3:xVb(a);yVb(a);}break;case 3:switch(b.g){case 2:xVb(a);BVb(a);qVb(a);break;case 1:xVb(a);BVb(a);xVb(a);qVb(a);break;case 4:xVb(a);yVb(a);}}return a} +function UQb(a,b,c){var d,e,f,g,h,i,j,k;for(i=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));i.e!=i.i.gc();){h=BD(Dyd(i),33);for(e=new Sr(ur(_sd(h).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);!d.b&&(d.b=new y5d(z2,d,4,7));if(!(d.b.i<=1&&(!d.c&&(d.c=new y5d(z2,d,5,8)),d.c.i<=1))){throw vbb(new z2c('Graph must not contain hyperedges.'))}if(!Pld(d)&&h!=atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))){j=new gRb;tNb(j,d);yNb(j,(HSb(),FSb),d);dRb(j,BD(Wd(irb(c.f,h)),144));eRb(j,BD(Ohb(c,atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))),144));Ekb(b.c,j);for(g=new Fyd((!d.n&&(d.n=new cUd(D2,d,1,7)),d.n));g.e!=g.i.gc();){f=BD(Dyd(g),137);k=new mRb(j,f.a);tNb(k,f);yNb(k,FSb,f);k.e.a=$wnd.Math.max(f.g,1);k.e.b=$wnd.Math.max(f.f,1);lRb(k);Ekb(b.d,k)}}}}} +function OGb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;l=new LIb(a);iKb(l,!(b==(ead(),dad)||b==_9c));k=l.a;m=new p0b;for(e=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),g=0,i=e.length;g<i;++g){c=e[g];j=xHb(k,dHb,c);!!j&&(m.d=$wnd.Math.max(m.d,j.Re()))}for(d=OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb]),f=0,h=d.length;f<h;++f){c=d[f];j=xHb(k,fHb,c);!!j&&(m.a=$wnd.Math.max(m.a,j.Re()))}for(p=OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb]),r=0,t=p.length;r<t;++r){n=p[r];j=xHb(k,n,dHb);!!j&&(m.b=$wnd.Math.max(m.b,j.Se()))}for(o=OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb]),q=0,s=o.length;q<s;++q){n=o[q];j=xHb(k,n,fHb);!!j&&(m.c=$wnd.Math.max(m.c,j.Se()))}if(m.d>0){m.d+=k.n.d;m.d+=k.d}if(m.a>0){m.a+=k.n.a;m.a+=k.d}if(m.b>0){m.b+=k.n.b;m.b+=k.d}if(m.c>0){m.c+=k.n.c;m.c+=k.d}return m} +function d6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=c.d;l=c.c;f=new f7c(c.f.a+c.d.b+c.d.c,c.f.b+c.d.d+c.d.a);g=f.b;for(j=new olb(a.a);j.a<j.c.c.length;){h=BD(mlb(j),10);if(h.k!=(j0b(),e0b)){continue}d=BD(vNb(h,(wtc(),Hsc)),61);e=BD(vNb(h,Isc),8);k=h.n;switch(d.g){case 2:k.a=c.f.a+m.c-l.a;break;case 4:k.a=-l.a-m.b;}o=0;switch(d.g){case 2:case 4:if(b==(dcd(),_bd)){n=Edb(ED(vNb(h,htc)));k.b=f.b*n-BD(vNb(h,(Nyc(),Txc)),8).b;o=k.b+e.b;M_b(h,false,true)}else if(b==$bd){k.b=Edb(ED(vNb(h,htc)))-BD(vNb(h,(Nyc(),Txc)),8).b;o=k.b+e.b;M_b(h,false,true)}}g=$wnd.Math.max(g,o)}c.f.b+=g-f.b;for(i=new olb(a.a);i.a<i.c.c.length;){h=BD(mlb(i),10);if(h.k!=(j0b(),e0b)){continue}d=BD(vNb(h,(wtc(),Hsc)),61);k=h.n;switch(d.g){case 1:k.b=-l.b-m.d;break;case 3:k.b=c.f.b+m.a-l.b;}}} +function nRc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;e=BD(vNb(a,(mTc(),dTc)),33);j=Ohe;k=Ohe;h=Rie;i=Rie;for(w=Jsb(a.b,0);w.b!=w.d.c;){u=BD(Xsb(w),86);p=u.e;q=u.f;j=$wnd.Math.min(j,p.a-q.a/2);k=$wnd.Math.min(k,p.b-q.b/2);h=$wnd.Math.max(h,p.a+q.a/2);i=$wnd.Math.max(i,p.b+q.b/2)}o=BD(hkd(e,(JTc(),BTc)),116);n=new f7c(o.b-j,o.d-k);for(v=Jsb(a.b,0);v.b!=v.d.c;){u=BD(Xsb(v),86);m=vNb(u,dTc);if(JD(m,239)){f=BD(m,33);l=P6c(u.e,n);bld(f,l.a-f.g/2,l.b-f.f/2)}}for(t=Jsb(a.a,0);t.b!=t.d.c;){s=BD(Xsb(t),188);d=BD(vNb(s,dTc),79);if(d){b=s.a;r=new g7c(s.b.e);Gsb(b,r,b.a,b.a.a);A=new g7c(s.c.e);Gsb(b,A,b.c.b,b.c);qRc(r,BD(Ut(b,1),8),s.b.f);qRc(A,BD(Ut(b,b.b-2),8),s.c.f);c=itd(d,true,true);ifd(b,c)}}B=h-j+(o.b+o.c);g=i-k+(o.d+o.a);Afd(e,B,g,false,false)} +function xoc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;l=a.b;k=new Bib(l,0);Aib(k,new H1b(a));s=false;g=1;while(k.b<k.d.gc()){j=(sCb(k.b<k.d.gc()),BD(k.d.Xb(k.c=k.b++),29));p=(tCb(g,l.c.length),BD(l.c[g],29));q=Mu(j.a);r=q.c.length;for(o=new olb(q);o.a<o.c.c.length;){m=BD(mlb(o),10);$_b(m,p)}if(s){for(n=av(new ov(q),0);n.c.Sb();){m=BD(pv(n),10);for(f=new olb(Mu(R_b(m)));f.a<f.c.c.length;){e=BD(mlb(f),17);PZb(e,true);yNb(a,(wtc(),Asc),(Bcb(),true));d=Noc(a,e,r);c=BD(vNb(m,usc),305);t=BD(Ikb(d,d.c.length-1),17);c.k=t.c.i;c.n=t;c.b=e.d.i;c.c=e}}s=false}else{if(q.c.length!=0){b=(tCb(0,q.c.length),BD(q.c[0],10));if(b.k==(j0b(),d0b)){s=true;g=-1}}}++g}h=new Bib(a.b,0);while(h.b<h.d.gc()){i=(sCb(h.b<h.d.gc()),BD(h.d.Xb(h.c=h.b++),29));i.a.c.length==0&&uib(h)}} +function wKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;k=BD(BD(Qc(a.r,b),21),84);if(k.gc()<=2||b==(Ucd(),zcd)||b==(Ucd(),Tcd)){AKb(a,b);return}p=a.u.Hc((rcd(),qcd));c=b==(Ucd(),Acd)?(vLb(),uLb):(vLb(),rLb);r=b==Acd?(EIb(),BIb):(EIb(),DIb);d=dLb(iLb(c),a.s);q=b==Acd?Pje:Qje;for(j=k.Kc();j.Ob();){h=BD(j.Pb(),111);if(!h.c||h.c.d.c.length<=0){continue}o=h.b.rf();n=h.e;l=h.c;m=l.i;m.b=(f=l.n,l.e.a+f.b+f.c);m.a=(g=l.n,l.e.b+g.d+g.a);if(p){m.c=n.a-(e=l.n,l.e.a+e.b+e.c)-a.s;p=false}else{m.c=n.a+o.a+a.s}ytb(r,lle);l.f=r;$Hb(l,(NHb(),MHb));Ekb(d.d,new BLb(m,bLb(d,m)));q=b==Acd?$wnd.Math.min(q,n.b):$wnd.Math.max(q,n.b+h.b.rf().b)}q+=b==Acd?-a.t:a.t;cLb((d.e=q,d));for(i=k.Kc();i.Ob();){h=BD(i.Pb(),111);if(!h.c||h.c.d.c.length<=0){continue}m=h.c.i;m.c-=h.e.a;m.d-=h.e.b}} +function IDc(a,b,c){var d;Odd(c,'StretchWidth layering',1);if(b.a.c.length==0){Qdd(c);return}a.c=b;a.t=0;a.u=0;a.i=Pje;a.g=Qje;a.d=Edb(ED(vNb(b,(Nyc(),lyc))));CDc(a);DDc(a);ADc(a);HDc(a);BDc(a);a.i=$wnd.Math.max(1,a.i);a.g=$wnd.Math.max(1,a.g);a.d=a.d/a.i;a.f=a.g/a.i;a.s=FDc(a);d=new H1b(a.c);Ekb(a.c.b,d);a.r=Mu(a.p);a.n=tlb(a.k,a.k.length);while(a.r.c.length!=0){a.o=JDc(a);if(!a.o||EDc(a)&&a.b.a.gc()!=0){KDc(a,d);d=new H1b(a.c);Ekb(a.c.b,d);ye(a.a,a.b);a.b.a.$b();a.t=a.u;a.u=0}else{if(EDc(a)){a.c.b.c=KC(SI,Uhe,1,0,5,1);d=new H1b(a.c);Ekb(a.c.b,d);a.t=0;a.u=0;a.b.a.$b();a.a.a.$b();++a.f;a.r=Mu(a.p);a.n=tlb(a.k,a.k.length)}else{$_b(a.o,d);Lkb(a.r,a.o);Qqb(a.b,a.o);a.t=a.t-a.k[a.o.p]*a.d+a.j[a.o.p];a.u+=a.e[a.o.p]*a.d}}}b.a.c=KC(SI,Uhe,1,0,5,1);smb(b.b);Qdd(c)} +function Mgc(a){var b,c,d,e;MAb(JAb(new YAb(null,new Kub(a.a.b,16)),new khc),new mhc);Kgc(a);MAb(JAb(new YAb(null,new Kub(a.a.b,16)),new ohc),new qhc);if(a.c==(Aad(),yad)){MAb(JAb(LAb(new YAb(null,new Kub(new Pib(a.f),1)),new yhc),new Ahc),new Chc(a));MAb(JAb(NAb(LAb(LAb(new YAb(null,new Kub(a.d.b,16)),new Ghc),new Ihc),new Khc),new Mhc),new Ohc(a))}e=new f7c(Pje,Pje);b=new f7c(Qje,Qje);for(d=new olb(a.a.b);d.a<d.c.c.length;){c=BD(mlb(d),57);e.a=$wnd.Math.min(e.a,c.d.c);e.b=$wnd.Math.min(e.b,c.d.d);b.a=$wnd.Math.max(b.a,c.d.c+c.d.b);b.b=$wnd.Math.max(b.b,c.d.d+c.d.a)}P6c(X6c(a.d.c),V6c(new f7c(e.a,e.b)));P6c(X6c(a.d.f),c7c(new f7c(b.a,b.b),e));Lgc(a,e,b);Uhb(a.f);Uhb(a.b);Uhb(a.g);Uhb(a.e);a.a.a.c=KC(SI,Uhe,1,0,5,1);a.a.b.c=KC(SI,Uhe,1,0,5,1);a.a=null;a.d=null} +function vZb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;e=new Rkb;for(p=new olb(b.a);p.a<p.c.c.length;){o=BD(mlb(p),10);n=o.e;if(n){d=vZb(a,n,o);Gkb(e,d);sZb(a,n,o);if(BD(vNb(n,(wtc(),Ksc)),21).Hc((Orc(),Hrc))){s=BD(vNb(o,(Nyc(),Vxc)),98);m=BD(vNb(o,Yxc),174).Hc((rcd(),ncd));for(r=new olb(o.j);r.a<r.c.c.length;){q=BD(mlb(r),11);f=BD(Ohb(a.b,q),10);if(!f){f=Z$b(q,s,q.j,-(q.e.c.length-q.g.c.length),null,new d7c,q.o,BD(vNb(n,Lwc),103),n);yNb(f,$sc,q);Rhb(a.b,q,f);Ekb(n.a,f)}g=BD(Ikb(f.j,0),11);for(k=new olb(q.f);k.a<k.c.c.length;){j=BD(mlb(k),70);h=new p_b;h.o.a=j.o.a;h.o.b=j.o.b;Ekb(g.f,h);if(!m){t=q.j;l=0;tcd(BD(vNb(o,Yxc),21))&&(l=mfd(j.n,j.o,q.o,0,t));s==(dcd(),bcd)||(Ucd(),Ecd).Hc(t)?(h.o.a=l):(h.o.b=l)}}}}}}i=new Rkb;rZb(a,b,c,e,i);!!c&&tZb(a,b,c,i);return i} +function nEc(a,b,c){var d,e,f,g,h,i,j,k,l;if(a.c[b.c.p][b.p].e){return}else{a.c[b.c.p][b.p].e=true}a.c[b.c.p][b.p].b=0;a.c[b.c.p][b.p].d=0;a.c[b.c.p][b.p].a=null;for(k=new olb(b.j);k.a<k.c.c.length;){j=BD(mlb(k),11);l=c?new J0b(j):new R0b(j);for(i=l.Kc();i.Ob();){h=BD(i.Pb(),11);g=h.i;if(g.c==b.c){if(g!=b){nEc(a,g,c);a.c[b.c.p][b.p].b+=a.c[g.c.p][g.p].b;a.c[b.c.p][b.p].d+=a.c[g.c.p][g.p].d}}else{a.c[b.c.p][b.p].d+=a.g[h.p];++a.c[b.c.p][b.p].b}}}f=BD(vNb(b,(wtc(),ssc)),15);if(f){for(e=f.Kc();e.Ob();){d=BD(e.Pb(),10);if(b.c==d.c){nEc(a,d,c);a.c[b.c.p][b.p].b+=a.c[d.c.p][d.p].b;a.c[b.c.p][b.p].d+=a.c[d.c.p][d.p].d}}}if(a.c[b.c.p][b.p].b>0){a.c[b.c.p][b.p].d+=Cub(a.i,24)*lke*0.07000000029802322-0.03500000014901161;a.c[b.c.p][b.p].a=a.c[b.c.p][b.p].d/a.c[b.c.p][b.p].b}} +function m5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new olb(a);o.a<o.c.c.length;){n=BD(mlb(o),10);n5b(n.n);n5b(n.o);o5b(n.f);r5b(n);t5b(n);for(q=new olb(n.j);q.a<q.c.c.length;){p=BD(mlb(q),11);n5b(p.n);n5b(p.a);n5b(p.o);G0b(p,s5b(p.j));f=BD(vNb(p,(Nyc(),Wxc)),19);!!f&&yNb(p,Wxc,meb(-f.a));for(e=new olb(p.g);e.a<e.c.c.length;){d=BD(mlb(e),17);for(c=Jsb(d.a,0);c.b!=c.d.c;){b=BD(Xsb(c),8);n5b(b)}i=BD(vNb(d,jxc),74);if(i){for(h=Jsb(i,0);h.b!=h.d.c;){g=BD(Xsb(h),8);n5b(g)}}for(l=new olb(d.b);l.a<l.c.c.length;){j=BD(mlb(l),70);n5b(j.n);n5b(j.o)}}for(m=new olb(p.f);m.a<m.c.c.length;){j=BD(mlb(m),70);n5b(j.n);n5b(j.o)}}if(n.k==(j0b(),e0b)){yNb(n,(wtc(),Hsc),s5b(BD(vNb(n,Hsc),61)));q5b(n)}for(k=new olb(n.b);k.a<k.c.c.length;){j=BD(mlb(k),70);r5b(j);n5b(j.o);n5b(j.n)}}} +function yQb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;a.e=b;h=$Pb(b);w=new Rkb;for(d=new olb(h);d.a<d.c.c.length;){c=BD(mlb(d),15);A=new Rkb;w.c[w.c.length]=A;i=new Tqb;for(o=c.Kc();o.Ob();){n=BD(o.Pb(),33);f=wQb(a,n,true,0,0);A.c[A.c.length]=f;p=n.i;q=n.j;new f7c(p,q);m=(!n.n&&(n.n=new cUd(D2,n,1,7)),n.n);for(l=new Fyd(m);l.e!=l.i.gc();){j=BD(Dyd(l),137);e=wQb(a,j,false,p,q);A.c[A.c.length]=e}v=(!n.c&&(n.c=new cUd(F2,n,9,9)),n.c);for(s=new Fyd(v);s.e!=s.i.gc();){r=BD(Dyd(s),118);g=wQb(a,r,false,p,q);A.c[A.c.length]=g;t=r.i+p;u=r.j+q;m=(!r.n&&(r.n=new cUd(D2,r,1,7)),r.n);for(k=new Fyd(m);k.e!=k.i.gc();){j=BD(Dyd(k),137);e=wQb(a,j,false,t,u);A.c[A.c.length]=e}}ye(i,Dx(pl(OC(GC(KI,1),Uhe,20,0,[_sd(n),$sd(n)]))))}vQb(a,i,A)}a.f=new aPb(w);tNb(a.f,b);return a.f} +function Kqd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;D=Ohb(a.e,d);if(D==null){D=new eC;n=BD(D,183);s=b+'_s';t=s+e;m=new yC(t);cC(n,Vte,m)}C=BD(D,183);Qpd(c,C);G=new eC;Spd(G,'x',d.j);Spd(G,'y',d.k);cC(C,Yte,G);A=new eC;Spd(A,'x',d.b);Spd(A,'y',d.c);cC(C,'endPoint',A);l=Fhe((!d.a&&(d.a=new xMd(y2,d,5)),d.a));o=!l;if(o){w=new wB;f=new Srd(w);reb((!d.a&&(d.a=new xMd(y2,d,5)),d.a),f);cC(C,Ote,w)}i=dmd(d);u=!!i;u&&Tpd(a.a,C,Qte,kqd(a,dmd(d)));r=emd(d);v=!!r;v&&Tpd(a.a,C,Pte,kqd(a,emd(d)));j=(!d.e&&(d.e=new y5d(A2,d,10,9)),d.e).i==0;p=!j;if(p){B=new wB;g=new Urd(a,B);reb((!d.e&&(d.e=new y5d(A2,d,10,9)),d.e),g);cC(C,Ste,B)}k=(!d.g&&(d.g=new y5d(A2,d,9,10)),d.g).i==0;q=!k;if(q){F=new wB;h=new Wrd(a,F);reb((!d.g&&(d.g=new y5d(A2,d,9,10)),d.g),h);cC(C,Rte,F)}} +function eKb(a){$Jb();var b,c,d,e,f,g,h;d=a.f.n;for(g=ci(a.r).a.nc();g.Ob();){f=BD(g.Pb(),111);e=0;if(f.b.Xe((Y9c(),s9c))){e=Edb(ED(f.b.We(s9c)));if(e<0){switch(f.b.Hf().g){case 1:d.d=$wnd.Math.max(d.d,-e);break;case 3:d.a=$wnd.Math.max(d.a,-e);break;case 2:d.c=$wnd.Math.max(d.c,-e);break;case 4:d.b=$wnd.Math.max(d.b,-e);}}}if(tcd(a.u)){b=nfd(f.b,e);h=!BD(a.e.We(b9c),174).Hc((Idd(),zdd));c=false;switch(f.b.Hf().g){case 1:c=b>d.d;d.d=$wnd.Math.max(d.d,b);if(h&&c){d.d=$wnd.Math.max(d.d,d.a);d.a=d.d+e}break;case 3:c=b>d.a;d.a=$wnd.Math.max(d.a,b);if(h&&c){d.a=$wnd.Math.max(d.a,d.d);d.d=d.a+e}break;case 2:c=b>d.c;d.c=$wnd.Math.max(d.c,b);if(h&&c){d.c=$wnd.Math.max(d.b,d.c);d.b=d.c+e}break;case 4:c=b>d.b;d.b=$wnd.Math.max(d.b,b);if(h&&c){d.b=$wnd.Math.max(d.b,d.c);d.c=d.b+e}}}}} +function l3b(a){var b,c,d,e,f,g,h,i,j,k,l;for(j=new olb(a);j.a<j.c.c.length;){i=BD(mlb(j),10);g=BD(vNb(i,(Nyc(),mxc)),163);f=null;switch(g.g){case 1:case 2:f=(Gqc(),Fqc);break;case 3:case 4:f=(Gqc(),Dqc);}if(f){yNb(i,(wtc(),Bsc),(Gqc(),Fqc));f==Dqc?o3b(i,g,(KAc(),HAc)):f==Fqc&&o3b(i,g,(KAc(),IAc))}else{if(fcd(BD(vNb(i,Vxc),98))&&i.j.c.length!=0){b=true;for(l=new olb(i.j);l.a<l.c.c.length;){k=BD(mlb(l),11);if(!(k.j==(Ucd(),zcd)&&k.e.c.length-k.g.c.length>0||k.j==Tcd&&k.e.c.length-k.g.c.length<0)){b=false;break}for(e=new olb(k.g);e.a<e.c.c.length;){c=BD(mlb(e),17);h=BD(vNb(c.d.i,mxc),163);if(h==(Ctc(),ztc)||h==Atc){b=false;break}}for(d=new olb(k.e);d.a<d.c.c.length;){c=BD(mlb(d),17);h=BD(vNb(c.c.i,mxc),163);if(h==(Ctc(),xtc)||h==ytc){b=false;break}}}b&&o3b(i,g,(KAc(),JAc))}}}} +function lJc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;w=0;n=0;for(l=new olb(b.e);l.a<l.c.c.length;){k=BD(mlb(l),10);m=0;h=0;i=c?BD(vNb(k,hJc),19).a:Rie;r=d?BD(vNb(k,iJc),19).a:Rie;j=$wnd.Math.max(i,r);for(t=new olb(k.j);t.a<t.c.c.length;){s=BD(mlb(t),11);u=k.n.b+s.n.b+s.a.b;if(d){for(g=new olb(s.g);g.a<g.c.c.length;){f=BD(mlb(g),17);p=f.d;o=p.i;if(b!=a.a[o.p]){q=$wnd.Math.max(BD(vNb(o,hJc),19).a,BD(vNb(o,iJc),19).a);v=BD(vNb(f,(Nyc(),eyc)),19).a;if(v>=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}if(c){for(g=new olb(s.e);g.a<g.c.c.length;){f=BD(mlb(g),17);p=f.c;o=p.i;if(b!=a.a[o.p]){q=$wnd.Math.max(BD(vNb(o,hJc),19).a,BD(vNb(o,iJc),19).a);v=BD(vNb(f,(Nyc(),eyc)),19).a;if(v>=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}}if(h>0){w+=m/h;++n}}if(n>0){b.a=e*w/n;b.g=n}else{b.a=0;b.g=0}} +function oMc(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(e=new olb(a.a.b);e.a<e.c.c.length;){c=BD(mlb(e),29);for(i=new olb(c.a);i.a<i.c.c.length;){h=BD(mlb(i),10);b.j[h.p]=h;b.i[h.p]=b.o==(eMc(),dMc)?Qje:Pje}}Uhb(a.c);g=a.a.b;b.c==(YLc(),WLc)&&(g=JD(g,152)?km(BD(g,152)):JD(g,131)?BD(g,131).a:JD(g,54)?new ov(g):new dv(g));UMc(a.e,b,a.b);Alb(b.p,null);for(f=g.Kc();f.Ob();){c=BD(f.Pb(),29);j=c.a;b.o==(eMc(),dMc)&&(j=JD(j,152)?km(BD(j,152)):JD(j,131)?BD(j,131).a:JD(j,54)?new ov(j):new dv(j));for(m=j.Kc();m.Ob();){l=BD(m.Pb(),10);b.g[l.p]==l&&pMc(a,l,b)}}qMc(a,b);for(d=g.Kc();d.Ob();){c=BD(d.Pb(),29);for(m=new olb(c.a);m.a<m.c.c.length;){l=BD(mlb(m),10);b.p[l.p]=b.p[b.g[l.p].p];if(l==b.g[l.p]){k=Edb(b.i[b.j[l.p].p]);(b.o==(eMc(),dMc)&&k>Qje||b.o==cMc&&k<Pje)&&(b.p[l.p]=Edb(b.p[l.p])+k)}}}a.e.cg()} +function PGb(a,b,c,d){var e,f,g,h,i;h=new LIb(b);rKb(h,d);e=true;if(!!a&&a.Xe((Y9c(),z8c))){f=BD(a.We((Y9c(),z8c)),103);e=f==(ead(),cad)||f==aad||f==bad}hKb(h,false);Hkb(h.e.wf(),new mKb(h,false,e));NJb(h,h.f,(gHb(),dHb),(Ucd(),Acd));NJb(h,h.f,fHb,Rcd);NJb(h,h.g,dHb,Tcd);NJb(h,h.g,fHb,zcd);PJb(h,Acd);PJb(h,Rcd);OJb(h,zcd);OJb(h,Tcd);$Jb();g=h.A.Hc((tdd(),pdd))&&h.B.Hc((Idd(),Ddd))?_Jb(h):null;!!g&&DHb(h.a,g);eKb(h);GJb(h);PKb(h);BJb(h);pKb(h);HKb(h);xKb(h,Acd);xKb(h,Rcd);CJb(h);oKb(h);if(!c){return h.o}cKb(h);LKb(h);xKb(h,zcd);xKb(h,Tcd);i=h.B.Hc((Idd(),Edd));RJb(h,i,Acd);RJb(h,i,Rcd);SJb(h,i,zcd);SJb(h,i,Tcd);MAb(new YAb(null,new Kub(new $ib(h.i),0)),new TJb);MAb(JAb(new YAb(null,ci(h.r).a.oc()),new VJb),new XJb);dKb(h);h.e.uf(h.o);MAb(new YAb(null,ci(h.r).a.oc()),new fKb);return h.o} +function JVb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=Pje;for(d=new olb(a.a.b);d.a<d.c.c.length;){b=BD(mlb(d),81);j=$wnd.Math.min(j,b.d.f.g.c+b.e.a)}n=new Psb;for(g=new olb(a.a.a);g.a<g.c.c.length;){f=BD(mlb(g),189);f.i=j;f.e==0&&(Gsb(n,f,n.c.b,n.c),true)}while(n.b!=0){f=BD(n.b==0?null:(sCb(n.b!=0),Nsb(n,n.a.a)),189);e=f.f.g.c;for(m=f.a.a.ec().Kc();m.Ob();){k=BD(m.Pb(),81);p=f.i+k.e.a;k.d.g||k.g.c<p?(k.o=p):(k.o=k.g.c)}e-=f.f.o;f.b+=e;a.c==(ead(),bad)||a.c==_9c?(f.c+=e):(f.c-=e);for(l=f.a.a.ec().Kc();l.Ob();){k=BD(l.Pb(),81);for(i=k.f.Kc();i.Ob();){h=BD(i.Pb(),81);fad(a.c)?(o=a.f.ef(k,h)):(o=a.f.ff(k,h));h.d.i=$wnd.Math.max(h.d.i,k.o+k.g.b+o-h.e.a);h.k||(h.d.i=$wnd.Math.max(h.d.i,h.g.c-h.e.a));--h.d.e;h.d.e==0&&Dsb(n,h.d)}}}for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),81);b.g.c=b.o}} +function ELb(a){var b,c,d,e,f,g,h,i;h=a.b;b=a.a;switch(BD(vNb(a,(fFb(),bFb)),427).g){case 0:Okb(h,new tpb(new bMb));break;case 1:default:Okb(h,new tpb(new gMb));}switch(BD(vNb(a,_Eb),428).g){case 1:Okb(h,new YLb);Okb(h,new lMb);Okb(h,new GLb);break;case 0:default:Okb(h,new YLb);Okb(h,new RLb);}switch(BD(vNb(a,dFb),250).g){case 0:i=new FMb;break;case 1:i=new zMb;break;case 2:i=new CMb;break;case 3:i=new wMb;break;case 5:i=new JMb(new CMb);break;case 4:i=new JMb(new zMb);break;case 7:i=new tMb(new JMb(new zMb),new JMb(new CMb));break;case 8:i=new tMb(new JMb(new wMb),new JMb(new CMb));break;case 6:default:i=new JMb(new wMb);}for(g=new olb(h);g.a<g.c.c.length;){f=BD(mlb(g),167);d=0;e=0;c=new vgd(meb(d),meb(e));while(gNb(b,f,d,e)){c=BD(i.Ce(c,f),46);d=BD(c.a,19).a;e=BD(c.b,19).a}dNb(b,f,d,e)}} +function qQb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;f=a.f.b;m=f.a;k=f.b;o=a.e.g;n=a.e.f;_kd(a.e,f.a,f.b);w=m/o;A=k/n;for(j=new Fyd(Kkd(a.e));j.e!=j.i.gc();){i=BD(Dyd(j),137);dld(i,i.i*w);eld(i,i.j*A)}for(s=new Fyd(Yod(a.e));s.e!=s.i.gc();){r=BD(Dyd(s),118);u=r.i;v=r.j;u>0&&dld(r,u*w);v>0&&eld(r,v*A)}stb(a.b,new CQb);b=new Rkb;for(h=new nib((new eib(a.c)).a);h.b;){g=lib(h);d=BD(g.cd(),79);c=BD(g.dd(),395).a;e=itd(d,false,false);l=oQb(jtd(d),ofd(e),c);ifd(l,e);t=ktd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.a.a.c,8)),c)}}for(q=new nib((new eib(a.d)).a);q.b;){p=lib(q);d=BD(p.cd(),79);c=BD(p.dd(),395).a;e=itd(d,false,false);l=oQb(ltd(d),w7c(ofd(e)),c);l=w7c(l);ifd(l,e);t=mtd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.c.b.c,8)),c)}}} +function _Vc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;if(c.c.length!=0){o=new Rkb;for(n=new olb(c);n.a<n.c.c.length;){m=BD(mlb(n),33);Ekb(o,new f7c(m.i,m.j))}d.n&&!!b&&Tdd(d,i6d(b),(pgd(),mgd));while(CVc(a,c)){AVc(a,c,false)}d.n&&!!b&&Tdd(d,i6d(b),(pgd(),mgd));h=0;i=0;e=null;if(c.c.length!=0){e=(tCb(0,c.c.length),BD(c.c[0],33));h=e.i-(tCb(0,o.c.length),BD(o.c[0],8)).a;i=e.j-(tCb(0,o.c.length),BD(o.c[0],8)).b}g=$wnd.Math.sqrt(h*h+i*i);l=cVc(c);f=1;while(l.a.gc()!=0){for(k=l.a.ec().Kc();k.Ob();){j=BD(k.Pb(),33);p=a.f;q=p.i+p.g/2;r=p.j+p.f/2;s=j.i+j.g/2;t=j.j+j.f/2;u=s-q;v=t-r;w=$wnd.Math.sqrt(u*u+v*v);A=u/w;B=v/w;dld(j,j.i+A*g);eld(j,j.j+B*g)}d.n&&!!b&&Tdd(d,i6d(b),(pgd(),mgd));l=cVc(new Tkb(l));++f}!!a.a&&a.a.lg(new Tkb(l));d.n&&!!b&&Tdd(d,i6d(b),(pgd(),mgd));_Vc(a,b,new Tkb(l),d)}} +function $2b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;p=a.n;q=a.o;m=a.d;l=Edb(ED(pBc(a,(Nyc(),iyc))));if(b){k=l*(b.gc()-1);n=0;for(i=b.Kc();i.Ob();){g=BD(i.Pb(),10);k+=g.o.a;n=$wnd.Math.max(n,g.o.b)}r=p.a-(k-q.a)/2;f=p.b-m.d+n;d=q.a/(b.gc()+1);e=d;for(h=b.Kc();h.Ob();){g=BD(h.Pb(),10);g.n.a=r;g.n.b=f-g.o.b;r+=g.o.a+l;j=Y2b(g);j.n.a=g.o.a/2-j.a.a;j.n.b=g.o.b;o=BD(vNb(g,(wtc(),vsc)),11);if(o.e.c.length+o.g.c.length==1){o.n.a=e-o.a.a;o.n.b=0;F0b(o,a)}e+=d}}if(c){k=l*(c.gc()-1);n=0;for(i=c.Kc();i.Ob();){g=BD(i.Pb(),10);k+=g.o.a;n=$wnd.Math.max(n,g.o.b)}r=p.a-(k-q.a)/2;f=p.b+q.b+m.a-n;d=q.a/(c.gc()+1);e=d;for(h=c.Kc();h.Ob();){g=BD(h.Pb(),10);g.n.a=r;g.n.b=f;r+=g.o.a+l;j=Y2b(g);j.n.a=g.o.a/2-j.a.a;j.n.b=0;o=BD(vNb(g,(wtc(),vsc)),11);if(o.e.c.length+o.g.c.length==1){o.n.a=e-o.a.a;o.n.b=q.b;F0b(o,a)}e+=d}}} +function q7b(a,b){var c,d,e,f,g,h;if(!BD(vNb(b,(wtc(),Ksc)),21).Hc((Orc(),Hrc))){return}for(h=new olb(b.a);h.a<h.c.c.length;){f=BD(mlb(h),10);if(f.k==(j0b(),h0b)){e=BD(vNb(f,(Nyc(),txc)),142);a.c=$wnd.Math.min(a.c,f.n.a-e.b);a.a=$wnd.Math.max(a.a,f.n.a+f.o.a+e.c);a.d=$wnd.Math.min(a.d,f.n.b-e.d);a.b=$wnd.Math.max(a.b,f.n.b+f.o.b+e.a)}}for(g=new olb(b.a);g.a<g.c.c.length;){f=BD(mlb(g),10);if(f.k!=(j0b(),h0b)){switch(f.k.g){case 2:d=BD(vNb(f,(Nyc(),mxc)),163);if(d==(Ctc(),ytc)){f.n.a=a.c-10;p7b(f,new x7b).Jb(new A7b(f));break}if(d==Atc){f.n.a=a.a+10;p7b(f,new D7b).Jb(new G7b(f));break}c=BD(vNb(f,Osc),303);if(c==(esc(),dsc)){o7b(f).Jb(new J7b(f));f.n.b=a.d-10;break}if(c==bsc){o7b(f).Jb(new M7b(f));f.n.b=a.b+10;break}break;default:throw vbb(new Wdb('The node type '+f.k+' is not supported by the '+zS));}}}} +function Y1b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;i=new f7c(d.i+d.g/2,d.j+d.f/2);n=M1b(d);o=BD(hkd(b,(Nyc(),Vxc)),98);q=BD(hkd(d,$xc),61);if(!hCd(gkd(d),Uxc)){d.i==0&&d.j==0?(p=0):(p=kfd(d,q));jkd(d,Uxc,p)}j=new f7c(b.g,b.f);e=Z$b(d,o,q,n,j,i,new f7c(d.g,d.f),BD(vNb(c,Lwc),103),c);yNb(e,(wtc(),$sc),d);f=BD(Ikb(e.j,0),11);E0b(f,W1b(d));yNb(e,Yxc,(rcd(),pqb(pcd)));l=BD(hkd(b,Yxc),174).Hc(ncd);for(h=new Fyd((!d.n&&(d.n=new cUd(D2,d,1,7)),d.n));h.e!=h.i.gc();){g=BD(Dyd(h),137);if(!Ccb(DD(hkd(g,Jxc)))&&!!g.a){m=Z1b(g);Ekb(f.f,m);if(!l){k=0;tcd(BD(hkd(b,Yxc),21))&&(k=mfd(new f7c(g.i,g.j),new f7c(g.g,g.f),new f7c(d.g,d.f),0,q));switch(q.g){case 2:case 4:m.o.a=k;break;case 1:case 3:m.o.b=k;}}}}yNb(e,tyc,ED(hkd(Xod(b),tyc)));yNb(e,uyc,ED(hkd(Xod(b),uyc)));yNb(e,ryc,ED(hkd(Xod(b),ryc)));Ekb(c.a,e);Rhb(a.a,d,e)} +function qUc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Odd(c,'Processor arrange level',1);k=0;mmb();ktb(b,new Wsd((mTc(),ZSc)));f=b.b;h=Jsb(b,b.b);j=true;while(j&&h.b.b!=h.d.a){r=BD(Ysb(h),86);BD(vNb(r,ZSc),19).a==0?--f:(j=false)}v=new Jib(b,0,f);g=new Qsb(v);v=new Jib(b,f,b.b);i=new Qsb(v);if(g.b==0){for(o=Jsb(i,0);o.b!=o.d.c;){n=BD(Xsb(o),86);yNb(n,eTc,meb(k++))}}else{l=g.b;for(u=Jsb(g,0);u.b!=u.d.c;){t=BD(Xsb(u),86);yNb(t,eTc,meb(k++));d=URc(t);qUc(a,d,Udd(c,1/l|0));ktb(d,tmb(new Wsd(eTc)));m=new Psb;for(s=Jsb(d,0);s.b!=s.d.c;){r=BD(Xsb(s),86);for(q=Jsb(t.d,0);q.b!=q.d.c;){p=BD(Xsb(q),188);p.c==r&&(Gsb(m,p,m.c.b,m.c),true)}}Osb(t.d);ye(t.d,m);h=Jsb(i,i.b);e=t.d.b;j=true;while(0<e&&j&&h.b.b!=h.d.a){r=BD(Ysb(h),86);if(BD(vNb(r,ZSc),19).a==0){yNb(r,eTc,meb(k++));--e;Zsb(h)}else{j=false}}}}Qdd(c)} +function _8b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;Odd(b,'Inverted port preprocessing',1);k=a.b;j=new Bib(k,0);c=null;t=new Rkb;while(j.b<j.d.gc()){s=c;c=(sCb(j.b<j.d.gc()),BD(j.d.Xb(j.c=j.b++),29));for(n=new olb(t);n.a<n.c.c.length;){l=BD(mlb(n),10);$_b(l,s)}t.c=KC(SI,Uhe,1,0,5,1);for(o=new olb(c.a);o.a<o.c.c.length;){l=BD(mlb(o),10);if(l.k!=(j0b(),h0b)){continue}if(!fcd(BD(vNb(l,(Nyc(),Vxc)),98))){continue}for(r=X_b(l,(KAc(),HAc),(Ucd(),zcd)).Kc();r.Ob();){p=BD(r.Pb(),11);i=p.e;h=BD(Qkb(i,KC(AQ,jne,17,i.c.length,0,1)),474);for(e=h,f=0,g=e.length;f<g;++f){d=e[f];Z8b(a,p,d,t)}}for(q=X_b(l,IAc,Tcd).Kc();q.Ob();){p=BD(q.Pb(),11);i=p.g;h=BD(Qkb(i,KC(AQ,jne,17,i.c.length,0,1)),474);for(e=h,f=0,g=e.length;f<g;++f){d=e[f];$8b(a,p,d,t)}}}}for(m=new olb(t);m.a<m.c.c.length;){l=BD(mlb(m),10);$_b(l,c)}Qdd(b)} +function _1b(a,b,c,d,e,f){var g,h,i,j,k,l;j=new H0b;tNb(j,b);G0b(j,BD(hkd(b,(Nyc(),$xc)),61));yNb(j,(wtc(),$sc),b);F0b(j,c);l=j.o;l.a=b.g;l.b=b.f;k=j.n;k.a=b.i;k.b=b.j;Rhb(a.a,b,j);g=FAb(NAb(LAb(new YAb(null,(!b.e&&(b.e=new y5d(B2,b,7,4)),new Kub(b.e,16))),new m2b),new e2b),new o2b(b));g||(g=FAb(NAb(LAb(new YAb(null,(!b.d&&(b.d=new y5d(B2,b,8,5)),new Kub(b.d,16))),new q2b),new g2b),new s2b(b)));g||(g=FAb(new YAb(null,(!b.e&&(b.e=new y5d(B2,b,7,4)),new Kub(b.e,16))),new u2b));yNb(j,Nsc,(Bcb(),g?true:false));e_b(j,f,e,BD(hkd(b,Txc),8));for(i=new Fyd((!b.n&&(b.n=new cUd(D2,b,1,7)),b.n));i.e!=i.i.gc();){h=BD(Dyd(i),137);!Ccb(DD(hkd(h,Jxc)))&&!!h.a&&Ekb(j.f,Z1b(h))}switch(e.g){case 2:case 1:(j.j==(Ucd(),Acd)||j.j==Rcd)&&d.Fc((Orc(),Lrc));break;case 4:case 3:(j.j==(Ucd(),zcd)||j.j==Tcd)&&d.Fc((Orc(),Lrc));}return j} +function nQc(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t;m=null;d==(FQc(),DQc)?(m=b):d==EQc&&(m=c);for(p=m.a.ec().Kc();p.Ob();){o=BD(p.Pb(),11);q=l7c(OC(GC(m1,1),nie,8,0,[o.i.n,o.n,o.a])).b;t=new Tqb;h=new Tqb;for(j=new b1b(o.b);llb(j.a)||llb(j.b);){i=BD(llb(j.a)?mlb(j.a):mlb(j.b),17);if(Ccb(DD(vNb(i,(wtc(),ltc))))!=e){continue}if(Jkb(f,i,0)!=-1){i.d==o?(r=i.c):(r=i.d);s=l7c(OC(GC(m1,1),nie,8,0,[r.i.n,r.n,r.a])).b;if($wnd.Math.abs(s-q)<0.2){continue}s<q?b.a._b(r)?Qqb(t,new vgd(DQc,i)):Qqb(t,new vgd(EQc,i)):b.a._b(r)?Qqb(h,new vgd(DQc,i)):Qqb(h,new vgd(EQc,i))}}if(t.a.gc()>1){n=new ZQc(o,t,d);reb(t,new PQc(a,n));g.c[g.c.length]=n;for(l=t.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}if(h.a.gc()>1){n=new ZQc(o,h,d);reb(h,new RQc(a,n));g.c[g.c.length]=n;for(l=h.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}}} +function $Wc(a){r4c(a,new E3c(L3c(P3c(M3c(O3c(N3c(new R3c,sre),'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 bXc),sre)));p4c(a,sre,uqe,Ksd(UWc));p4c(a,sre,wme,Ksd(XWc));p4c(a,sre,Fme,Ksd(NWc));p4c(a,sre,Tme,Ksd(OWc));p4c(a,sre,Eme,Ksd(PWc));p4c(a,sre,Gme,Ksd(MWc));p4c(a,sre,Dme,Ksd(QWc));p4c(a,sre,Hme,Ksd(TWc));p4c(a,sre,ore,Ksd(KWc));p4c(a,sre,nre,Ksd(LWc));p4c(a,sre,rre,Ksd(RWc));p4c(a,sre,lre,Ksd(SWc));p4c(a,sre,mre,Ksd(VWc));p4c(a,sre,pre,Ksd(WWc));p4c(a,sre,qre,Ksd(YWc))} +function LIb(a){var b;this.r=Cy(new OIb,new SIb);this.b=new Rpb(BD(Qb(F1),290));this.p=new Rpb(BD(Qb(F1),290));this.i=new Rpb(BD(Qb(DN),290));this.e=a;this.o=new g7c(a.rf());this.D=a.Df()||Ccb(DD(a.We((Y9c(),M8c))));this.A=BD(a.We((Y9c(),Y8c)),21);this.B=BD(a.We(b9c),21);this.q=BD(a.We(t9c),98);this.u=BD(a.We(x9c),21);if(!ucd(this.u)){throw vbb(new y2c('Invalid port label placement: '+this.u))}this.v=Ccb(DD(a.We(z9c)));this.j=BD(a.We(W8c),21);if(!Jbd(this.j)){throw vbb(new y2c('Invalid node label placement: '+this.j))}this.n=BD(bgd(a,U8c),116);this.k=Edb(ED(bgd(a,Q9c)));this.d=Edb(ED(bgd(a,P9c)));this.w=Edb(ED(bgd(a,X9c)));this.s=Edb(ED(bgd(a,R9c)));this.t=Edb(ED(bgd(a,S9c)));this.C=BD(bgd(a,V9c),142);this.c=2*this.d;b=!this.B.Hc((Idd(),zdd));this.f=new mIb(0,b,0);this.g=new mIb(1,b,0);lIb(this.f,(gHb(),eHb),this.g)} +function Lgd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;t=0;o=0;n=0;m=1;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);m+=sr(new Sr(ur(_sd(q).a.Kc(),new Sq)));B=q.g;o=$wnd.Math.max(o,B);l=q.f;n=$wnd.Math.max(n,l);t+=B*l}p=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i;g=t+2*d*d*m*p;f=$wnd.Math.sqrt(g);i=$wnd.Math.max(f*c,o);h=$wnd.Math.max(f/c,n);for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);C=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(i-q.g);D=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(h-q.f);dld(q,C);eld(q,D)}A=i+(e.b+e.c);w=h+(e.d+e.a);for(v=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));v.e!=v.i.gc();){u=BD(Dyd(v),33);for(k=new Sr(ur(_sd(u).a.Kc(),new Sq));Qr(k);){j=BD(Rr(k),79);Pld(j)||Kgd(j,b,A,w)}}A+=e.b+e.c;w+=e.d+e.a;Afd(a,A,w,false,true)} +function Jcb(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw vbb(new Oeb(Xhe))}j=a;f=a.length;i=false;if(f>0){b=(BCb(0,a.length),a.charCodeAt(0));if(b==45||b==43){a=a.substr(1);--f;i=b==45}}if(f==0){throw vbb(new Oeb(Oje+j+'"'))}while(a.length>0&&(BCb(0,a.length),a.charCodeAt(0)==48)){a=a.substr(1);--f}if(f>(Neb(),Leb)[10]){throw vbb(new Oeb(Oje+j+'"'))}for(e=0;e<f;e++){if(Zcb((BCb(e,a.length),a.charCodeAt(e)))==-1){throw vbb(new Oeb(Oje+j+'"'))}}l=0;g=Jeb[10];k=Keb[10];h=Jbb(Meb[10]);c=true;d=f%g;if(d>0){l=-parseInt(a.substr(0,d),10);a=a.substr(d);f-=d;c=false}while(f>=g){d=parseInt(a.substr(0,g),10);a=a.substr(g);f-=g;if(c){c=false}else{if(ybb(l,h)<0){throw vbb(new Oeb(Oje+j+'"'))}l=Ibb(l,k)}l=Qbb(l,d)}if(ybb(l,0)>0){throw vbb(new Oeb(Oje+j+'"'))}if(!i){l=Jbb(l);if(ybb(l,0)<0){throw vbb(new Oeb(Oje+j+'"'))}}return l} +function Z6d(a,b){X6d();var c,d,e,f,g,h,i;this.a=new a7d(this);this.b=a;this.c=b;this.f=c2d(q1d((O6d(),M6d),b));if(this.f.dc()){if((h=t1d(M6d,a))==b){this.e=true;this.d=new Rkb;this.f=new oFd;this.f.Fc(Ewe);BD(V1d(p1d(M6d,bKd(a)),''),26)==a&&this.f.Fc(u1d(M6d,bKd(a)));for(e=g1d(M6d,a).Kc();e.Ob();){d=BD(e.Pb(),170);switch($1d(q1d(M6d,d))){case 4:{this.d.Fc(d);break}case 5:{this.f.Gc(c2d(q1d(M6d,d)));break}}}}else{Q6d();if(BD(b,66).Oj()){this.e=true;this.f=null;this.d=new Rkb;for(g=0,i=(a.i==null&&TKd(a),a.i).length;g<i;++g){d=(c=(a.i==null&&TKd(a),a.i),g>=0&&g<c.length?c[g]:null);for(f=_1d(q1d(M6d,d));f;f=_1d(q1d(M6d,f))){f==b&&this.d.Fc(d)}}}else if($1d(q1d(M6d,b))==1&&!!h){this.f=null;this.d=(m8d(),l8d)}else{this.f=null;this.e=true;this.d=(mmb(),new anb(b))}}}else{this.e=$1d(q1d(M6d,b))==5;this.f.Fb(W6d)&&(this.f=W6d)}} +function zKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;c=0;d=yKb(a,b);m=a.s;n=a.t;for(j=BD(BD(Qc(a.r,b),21),84).Kc();j.Ob();){i=BD(j.Pb(),111);if(!i.c||i.c.d.c.length<=0){continue}o=i.b.rf();h=i.b.Xe((Y9c(),s9c))?Edb(ED(i.b.We(s9c))):0;k=i.c;l=k.i;l.b=(g=k.n,k.e.a+g.b+g.c);l.a=(f=k.n,k.e.b+f.d+f.a);switch(b.g){case 1:l.c=i.a?(o.a-l.b)/2:o.a+m;l.d=o.b+h+d;$Hb(k,(NHb(),KHb));_Hb(k,(EIb(),DIb));break;case 3:l.c=i.a?(o.a-l.b)/2:o.a+m;l.d=-h-d-l.a;$Hb(k,(NHb(),KHb));_Hb(k,(EIb(),BIb));break;case 2:l.c=-h-d-l.b;if(i.a){e=a.v?l.a:BD(Ikb(k.d,0),181).rf().b;l.d=(o.b-e)/2}else{l.d=o.b+n}$Hb(k,(NHb(),MHb));_Hb(k,(EIb(),CIb));break;case 4:l.c=o.a+h+d;if(i.a){e=a.v?l.a:BD(Ikb(k.d,0),181).rf().b;l.d=(o.b-e)/2}else{l.d=o.b+n}$Hb(k,(NHb(),LHb));_Hb(k,(EIb(),CIb));}(b==(Ucd(),Acd)||b==Rcd)&&(c=$wnd.Math.max(c,l.a))}c>0&&(BD(Mpb(a.b,b),124).a.b=c)} +function b3b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Comment pre-processing',1);c=0;i=new olb(a.a);while(i.a<i.c.c.length){h=BD(mlb(i),10);if(Ccb(DD(vNb(h,(Nyc(),pwc))))){++c;e=0;d=null;j=null;for(o=new olb(h.j);o.a<o.c.c.length;){m=BD(mlb(o),11);e+=m.e.c.length+m.g.c.length;if(m.e.c.length==1){d=BD(Ikb(m.e,0),17);j=d.c}if(m.g.c.length==1){d=BD(Ikb(m.g,0),17);j=d.d}}if(e==1&&j.e.c.length+j.g.c.length==1&&!Ccb(DD(vNb(j.i,pwc)))){c3b(h,d,j,j.i);nlb(i)}else{r=new Rkb;for(n=new olb(h.j);n.a<n.c.c.length;){m=BD(mlb(n),11);for(l=new olb(m.g);l.a<l.c.c.length;){k=BD(mlb(l),17);k.d.g.c.length==0||(r.c[r.c.length]=k,true)}for(g=new olb(m.e);g.a<g.c.c.length;){f=BD(mlb(g),17);f.c.e.c.length==0||(r.c[r.c.length]=f,true)}}for(q=new olb(r);q.a<q.c.c.length;){p=BD(mlb(q),17);PZb(p,true)}}}}b.n&&Sdd(b,'Found '+c+' comment boxes');Qdd(b)} +function f9b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;m=Edb(ED(vNb(a,(Nyc(),tyc))));n=Edb(ED(vNb(a,uyc)));l=Edb(ED(vNb(a,ryc)));h=a.o;f=BD(Ikb(a.j,0),11);g=f.n;p=d9b(f,l);if(!p){return}if(b.Hc((rcd(),ncd))){switch(BD(vNb(a,(wtc(),Hsc)),61).g){case 1:p.c=(h.a-p.b)/2-g.a;p.d=n;break;case 3:p.c=(h.a-p.b)/2-g.a;p.d=-n-p.a;break;case 2:if(c&&f.e.c.length==0&&f.g.c.length==0){k=d?p.a:BD(Ikb(f.f,0),70).o.b;p.d=(h.b-k)/2-g.b}else{p.d=h.b+n-g.b}p.c=-m-p.b;break;case 4:if(c&&f.e.c.length==0&&f.g.c.length==0){k=d?p.a:BD(Ikb(f.f,0),70).o.b;p.d=(h.b-k)/2-g.b}else{p.d=h.b+n-g.b}p.c=m;}}else if(b.Hc(pcd)){switch(BD(vNb(a,(wtc(),Hsc)),61).g){case 1:case 3:p.c=g.a+m;break;case 2:case 4:if(c&&!f.c){k=d?p.a:BD(Ikb(f.f,0),70).o.b;p.d=(h.b-k)/2-g.b}else{p.d=g.b+n}}}e=p.d;for(j=new olb(f.f);j.a<j.c.c.length;){i=BD(mlb(j),70);o=i.n;o.a=p.c;o.b=e;e+=i.o.b+l}} +function eae(){rEd(Q9,new Lae);rEd(S9,new qbe);rEd(T9,new Xbe);rEd(U9,new Cce);rEd(ZI,new Oce);rEd(GC(SD,1),new Rce);rEd(wI,new Uce);rEd(xI,new Xce);rEd(ZI,new hae);rEd(ZI,new kae);rEd(ZI,new nae);rEd(BI,new qae);rEd(ZI,new tae);rEd(yK,new wae);rEd(yK,new zae);rEd(ZI,new Cae);rEd(FI,new Fae);rEd(ZI,new Iae);rEd(ZI,new Oae);rEd(ZI,new Rae);rEd(ZI,new Uae);rEd(ZI,new Xae);rEd(GC(SD,1),new $ae);rEd(ZI,new bbe);rEd(ZI,new ebe);rEd(yK,new hbe);rEd(yK,new kbe);rEd(ZI,new nbe);rEd(JI,new tbe);rEd(ZI,new wbe);rEd(MI,new zbe);rEd(ZI,new Cbe);rEd(ZI,new Fbe);rEd(ZI,new Ibe);rEd(ZI,new Lbe);rEd(yK,new Obe);rEd(yK,new Rbe);rEd(ZI,new Ube);rEd(ZI,new $be);rEd(ZI,new bce);rEd(ZI,new ece);rEd(ZI,new hce);rEd(ZI,new kce);rEd(UI,new nce);rEd(ZI,new qce);rEd(ZI,new tce);rEd(ZI,new wce);rEd(UI,new zce);rEd(MI,new Fce);rEd(ZI,new Ice);rEd(JI,new Lce)} +function Bmd(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;n=c.length;if(n>0){j=(BCb(0,c.length),c.charCodeAt(0));if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=(BCb(m+1,c.length),c.charCodeAt(m+1)==46)))){h=c.substr(1,m-1);u=dfb('%',h)?null:QEd(h);e=0;if(k){try{e=Icb(c.substr(m+2),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){i=a;throw vbb(new rFd(i))}else throw vbb(a)}}for(r=pRd(b.Wg());r.Ob();){p=MRd(r);if(JD(p,510)){f=BD(p,590);t=f.d;if((u==null?t==null:dfb(u,t))&&e--==0){return f}}}return null}}l=c.lastIndexOf('.');o=l==-1?c:c.substr(0,l);d=0;if(l!=-1){try{d=Icb(c.substr(l+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){o=c}else throw vbb(a)}}o=dfb('%',o)?null:QEd(o);for(q=pRd(b.Wg());q.Ob();){p=MRd(q);if(JD(p,191)){g=BD(p,191);s=g.ne();if((o==null?s==null:dfb(o,s))&&d--==0){return g}}}return null}}return rid(b,c)} +function f6b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;w=new Rkb;for(o=new olb(a.b);o.a<o.c.c.length;){n=BD(mlb(o),29);for(r=new olb(n.a);r.a<r.c.c.length;){p=BD(mlb(r),10);if(p.k!=(j0b(),e0b)){continue}if(!wNb(p,(wtc(),Gsc))){continue}s=null;u=null;t=null;for(C=new olb(p.j);C.a<C.c.c.length;){B=BD(mlb(C),11);switch(B.j.g){case 4:s=B;break;case 2:u=B;break;default:t=B;}}v=BD(Ikb(t.g,0),17);k=new t7c(v.a);j=new g7c(t.n);P6c(j,p.n);l=Jsb(k,0);Vsb(l,j);A=w7c(v.a);m=new g7c(t.n);P6c(m,p.n);Gsb(A,m,A.c.b,A.c);D=BD(vNb(p,Gsc),10);F=BD(Ikb(D.j,0),11);i=BD(Qkb(s.e,KC(AQ,jne,17,0,0,1)),474);for(d=i,f=0,h=d.length;f<h;++f){b=d[f];RZb(b,F);o7c(b.a,b.a.b,k)}i=k_b(u.g);for(c=i,e=0,g=c.length;e<g;++e){b=c[e];QZb(b,F);o7c(b.a,0,A)}QZb(v,null);RZb(v,null);w.c[w.c.length]=p}}for(q=new olb(w);q.a<q.c.c.length;){p=BD(mlb(q),10);$_b(p,null)}} +function lgb(){lgb=ccb;var a,b,c;new sgb(1,0);new sgb(10,0);new sgb(0,0);dgb=KC(bJ,nie,240,11,0,1);egb=KC(TD,$ie,25,100,15,1);fgb=OC(GC(UD,1),Vje,25,15,[1,5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125,6103515625,30517578125,152587890625,762939453125,3814697265625,19073486328125,95367431640625,476837158203125,2384185791015625]);ggb=KC(WD,oje,25,fgb.length,15,1);hgb=OC(GC(UD,1),Vje,25,15,[1,10,100,_ie,10000,Wje,1000000,10000000,100000000,Jje,10000000000,100000000000,1000000000000,10000000000000,100000000000000,1000000000000000,10000000000000000]);igb=KC(WD,oje,25,hgb.length,15,1);jgb=KC(bJ,nie,240,11,0,1);a=0;for(;a<jgb.length;a++){dgb[a]=new sgb(a,0);jgb[a]=new sgb(0,a);egb[a]=48}for(;a<egb.length;a++){egb[a]=48}for(c=0;c<ggb.length;c++){ggb[c]=ugb(fgb[c])}for(b=0;b<igb.length;b++){igb[b]=ugb(hgb[b])}Dhb()} +function zrb(){function e(){this.obj=this.createObject()} +;e.prototype.createObject=function(a){return Object.create(null)};e.prototype.get=function(a){return this.obj[a]};e.prototype.set=function(a,b){this.obj[a]=b};e.prototype[hke]=function(a){delete this.obj[a]};e.prototype.keys=function(){return Object.getOwnPropertyNames(this.obj)};e.prototype.entries=function(){var b=this.keys();var c=this;var d=0;return {next:function(){if(d>=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!xrb()){e.prototype.createObject=function(){return {}};e.prototype.get=function(a){return this.obj[':'+a]};e.prototype.set=function(a,b){this.obj[':'+a]=b};e.prototype[hke]=function(a){delete this.obj[':'+a]};e.prototype.keys=function(){var a=[];for(var b in this.obj){b.charCodeAt(0)==58&&a.push(b.substring(1))}return a}}return e} +function cde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;l=a.length*8;if(l==0){return ''}h=l%24;n=l/24|0;m=h!=0?n+1:n;f=null;f=KC(TD,$ie,25,m*4,15,1);j=0;k=0;b=0;c=0;d=0;g=0;e=0;for(i=0;i<n;i++){b=a[e++];c=a[e++];d=a[e++];k=(c&15)<<24>>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;q=(d&-128)==0?d>>6<<24>>24:(d>>6^252)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2|q];f[g++]=_ce[d&63]}if(h==8){b=a[e];j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[j<<4];f[g++]=61;f[g++]=61}else if(h==16){b=a[e];c=a[e+1];k=(c&15)<<24>>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2];f[g++]=61}return zfb(f,0,f.length)} +function mB(a,b){var c,d,e,f,g,h,i;a.e==0&&a.p>0&&(a.p=-(a.p-1));a.p>Rie&&dB(b,a.p-nje);g=b.q.getDate();ZA(b,1);a.k>=0&&aB(b,a.k);if(a.c>=0){ZA(b,a.c)}else if(a.k>=0){i=new fB(b.q.getFullYear()-nje,b.q.getMonth(),35);d=35-i.q.getDate();ZA(b,$wnd.Math.min(d,g))}else{ZA(b,g)}a.f<0&&(a.f=b.q.getHours());a.b>0&&a.f<12&&(a.f+=12);$A(b,a.f==24&&a.g?0:a.f);a.j>=0&&_A(b,a.j);a.n>=0&&bB(b,a.n);a.i>=0&&cB(b,wbb(Ibb(Abb(Cbb(b.q.getTime()),_ie),_ie),a.i));if(a.a){e=new eB;dB(e,e.q.getFullYear()-nje-80);Gbb(Cbb(b.q.getTime()),Cbb(e.q.getTime()))&&dB(b,e.q.getFullYear()-nje+100)}if(a.d>=0){if(a.c==-1){c=(7+a.d-b.q.getDay())%7;c>3&&(c-=7);h=b.q.getMonth();ZA(b,b.q.getDate()+c);b.q.getMonth()!=h&&ZA(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>Rie){f=b.q.getTimezoneOffset();cB(b,wbb(Cbb(b.q.getTime()),(a.o-f)*60*_ie))}return true} +function z2b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=vNb(b,(wtc(),$sc));if(!JD(e,239)){return}o=BD(e,33);p=b.e;m=new g7c(b.c);f=b.d;m.a+=f.b;m.b+=f.d;u=BD(hkd(o,(Nyc(),Ixc)),174);if(uqb(u,(Idd(),Add))){n=BD(hkd(o,Kxc),116);w_b(n,f.a);z_b(n,f.d);x_b(n,f.b);y_b(n,f.c)}c=new Rkb;for(k=new olb(b.a);k.a<k.c.c.length;){i=BD(mlb(k),10);if(JD(vNb(i,$sc),239)){A2b(i,m)}else if(JD(vNb(i,$sc),186)&&!p){d=BD(vNb(i,$sc),118);s=b_b(b,i,d.g,d.f);bld(d,s.a,s.b)}for(r=new olb(i.j);r.a<r.c.c.length;){q=BD(mlb(r),11);MAb(JAb(new YAb(null,new Kub(q.g,16)),new G2b(i)),new I2b(c))}}if(p){for(r=new olb(p.j);r.a<r.c.c.length;){q=BD(mlb(r),11);MAb(JAb(new YAb(null,new Kub(q.g,16)),new K2b(p)),new M2b(c))}}t=BD(hkd(o,Swc),218);for(h=new olb(c);h.a<h.c.c.length;){g=BD(mlb(h),17);y2b(g,t,m)}B2b(b);for(j=new olb(b.a);j.a<j.c.c.length;){i=BD(mlb(j),10);l=i.e;!!l&&z2b(a,l)}} +function xSb(a){r4c(a,new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c,ume),'ELK Force'),'Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported.'),new ASb),ume),qqb((Csd(),zsd),OC(GC(O3,1),Kie,237,0,[xsd])))));p4c(a,ume,vme,meb(1));p4c(a,ume,wme,80);p4c(a,ume,xme,5);p4c(a,ume,_le,tme);p4c(a,ume,yme,meb(1));p4c(a,ume,zme,(Bcb(),true));p4c(a,ume,ame,lSb);p4c(a,ume,Ame,Ksd(dSb));p4c(a,ume,Bme,Ksd(mSb));p4c(a,ume,Cme,false);p4c(a,ume,Dme,Ksd(jSb));p4c(a,ume,Eme,Ksd(iSb));p4c(a,ume,Fme,Ksd(hSb));p4c(a,ume,Gme,Ksd(gSb));p4c(a,ume,Hme,Ksd(nSb));p4c(a,ume,mme,Ksd(fSb));p4c(a,ume,pme,Ksd(vSb));p4c(a,ume,nme,Ksd(eSb));p4c(a,ume,rme,Ksd(qSb));p4c(a,ume,ome,Ksd(rSb))} +function GKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(BD(BD(Qc(a.r,b),21),84).dc()){return}g=BD(Mpb(a.b,b),124);i=g.i;h=g.n;k=KIb(a,b);d=i.b-h.b-h.c;e=g.a.a;f=i.c+h.b;n=a.w;if((k==(Tbd(),Qbd)||k==Sbd)&&BD(BD(Qc(a.r,b),21),84).gc()==1){e=k==Qbd?e-2*a.w:e;k=Pbd}if(d<e&&!a.B.Hc((Idd(),Fdd))){if(k==Qbd){n+=(d-e)/(BD(BD(Qc(a.r,b),21),84).gc()+1);f+=n}else{n+=(d-e)/(BD(BD(Qc(a.r,b),21),84).gc()-1)}}else{if(d<e){e=k==Qbd?e-2*a.w:e;k=Pbd}switch(k.g){case 3:f+=(d-e)/2;break;case 4:f+=d-e;break;case 0:c=(d-e)/(BD(BD(Qc(a.r,b),21),84).gc()+1);n+=$wnd.Math.max(0,c);f+=n;break;case 1:c=(d-e)/(BD(BD(Qc(a.r,b),21),84).gc()-1);n+=$wnd.Math.max(0,c);}}for(m=BD(BD(Qc(a.r,b),21),84).Kc();m.Ob();){l=BD(m.Pb(),111);l.e.a=f+l.d.b;l.e.b=(j=l.b,j.Xe((Y9c(),s9c))?j.Hf()==(Ucd(),Acd)?-j.rf().b-Edb(ED(j.We(s9c))):Edb(ED(j.We(s9c))):j.Hf()==(Ucd(),Acd)?-j.rf().b:0);f+=l.d.b+l.b.rf().a+l.d.c+n}} +function KKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(BD(BD(Qc(a.r,b),21),84).dc()){return}g=BD(Mpb(a.b,b),124);i=g.i;h=g.n;l=KIb(a,b);d=i.a-h.d-h.a;e=g.a.b;f=i.d+h.d;o=a.w;j=a.o.a;if((l==(Tbd(),Qbd)||l==Sbd)&&BD(BD(Qc(a.r,b),21),84).gc()==1){e=l==Qbd?e-2*a.w:e;l=Pbd}if(d<e&&!a.B.Hc((Idd(),Fdd))){if(l==Qbd){o+=(d-e)/(BD(BD(Qc(a.r,b),21),84).gc()+1);f+=o}else{o+=(d-e)/(BD(BD(Qc(a.r,b),21),84).gc()-1)}}else{if(d<e){e=l==Qbd?e-2*a.w:e;l=Pbd}switch(l.g){case 3:f+=(d-e)/2;break;case 4:f+=d-e;break;case 0:c=(d-e)/(BD(BD(Qc(a.r,b),21),84).gc()+1);o+=$wnd.Math.max(0,c);f+=o;break;case 1:c=(d-e)/(BD(BD(Qc(a.r,b),21),84).gc()-1);o+=$wnd.Math.max(0,c);}}for(n=BD(BD(Qc(a.r,b),21),84).Kc();n.Ob();){m=BD(n.Pb(),111);m.e.a=(k=m.b,k.Xe((Y9c(),s9c))?k.Hf()==(Ucd(),Tcd)?-k.rf().a-Edb(ED(k.We(s9c))):j+Edb(ED(k.We(s9c))):k.Hf()==(Ucd(),Tcd)?-k.rf().a:j);m.e.b=f+m.d.d;f+=m.d.d+m.b.rf().b+m.d.a+o}} +function Abc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;a.n=Edb(ED(vNb(a.g,(Nyc(),vyc))));a.e=Edb(ED(vNb(a.g,pyc)));a.i=a.g.b.c.length;h=a.i-1;m=0;a.j=0;a.k=0;a.a=Ou(KC(JI,nie,19,a.i,0,1));a.b=Ou(KC(BI,nie,333,a.i,7,1));for(g=new olb(a.g.b);g.a<g.c.c.length;){e=BD(mlb(g),29);e.p=h;for(l=new olb(e.a);l.a<l.c.c.length;){k=BD(mlb(l),10);k.p=m;++m}--h}a.f=KC(WD,oje,25,m,15,1);a.c=IC(WD,[nie,oje],[48,25],15,[m,3],2);a.o=new Rkb;a.p=new Rkb;b=0;a.d=0;for(f=new olb(a.g.b);f.a<f.c.c.length;){e=BD(mlb(f),29);h=e.p;d=0;p=0;i=e.a.c.length;j=0;for(l=new olb(e.a);l.a<l.c.c.length;){k=BD(mlb(l),10);m=k.p;a.f[m]=k.c.p;j+=k.o.b+a.n;c=sr(new Sr(ur(R_b(k).a.Kc(),new Sq)));o=sr(new Sr(ur(U_b(k).a.Kc(),new Sq)));a.c[m][0]=o-c;a.c[m][1]=c;a.c[m][2]=o;d+=c;p+=o;c>0&&Ekb(a.p,k);Ekb(a.o,k)}b-=d;n=i+b;j+=b*a.e;Nkb(a.a,h,meb(n));Nkb(a.b,h,j);a.j=$wnd.Math.max(a.j,n);a.k=$wnd.Math.max(a.k,j);a.d+=b;b+=p}} +function Ucd(){Ucd=ccb;var a;Scd=new Ycd(ole,0);Acd=new Ycd(xle,1);zcd=new Ycd(yle,2);Rcd=new Ycd(zle,3);Tcd=new Ycd(Ale,4);Fcd=(mmb(),new zob((a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0))));Gcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[])));Bcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[])));Ocd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[])));Qcd=Up(qqb(Tcd,OC(GC(F1,1),bne,61,0,[])));Lcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd])));Ecd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ncd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Tcd])));Hcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd])));Pcd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ccd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd])));Kcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Tcd])));Dcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Mcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Icd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd])));Jcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd])))} +function fSc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(b.b!=0){n=new Psb;h=null;o=null;d=QD($wnd.Math.floor($wnd.Math.log(b.b)*$wnd.Math.LOG10E)+1);i=0;for(t=Jsb(b,0);t.b!=t.d.c;){r=BD(Xsb(t),86);if(PD(o)!==PD(vNb(r,(mTc(),$Sc)))){o=GD(vNb(r,$Sc));i=0}o!=null?(h=o+iSc(i++,d)):(h=iSc(i++,d));yNb(r,$Sc,h);for(q=(e=Jsb((new ZRc(r)).a.d,0),new aSc(e));Wsb(q.a);){p=BD(Xsb(q.a),188).c;Gsb(n,p,n.c.b,n.c);yNb(p,$Sc,h)}}m=new Lqb;for(g=0;g<h.length-d;g++){for(s=Jsb(b,0);s.b!=s.d.c;){r=BD(Xsb(s),86);j=qfb(GD(vNb(r,(mTc(),$Sc))),0,g+1);c=(j==null?Wd(irb(m.f,null)):Crb(m.g,j))!=null?BD(j==null?Wd(irb(m.f,null)):Crb(m.g,j),19).a+1:1;Shb(m,j,meb(c))}}for(l=new nib((new eib(m)).a);l.b;){k=lib(l);f=meb(Ohb(a.a,k.cd())!=null?BD(Ohb(a.a,k.cd()),19).a:0);Shb(a.a,GD(k.cd()),meb(BD(k.dd(),19).a+f.a));f=BD(Ohb(a.b,k.cd()),19);(!f||f.a<BD(k.dd(),19).a)&&Shb(a.b,GD(k.cd()),BD(k.dd(),19))}fSc(a,n)}} +function PCc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(c,'Interactive node layering',1);d=new Rkb;for(n=new olb(b.a);n.a<n.c.c.length;){l=BD(mlb(n),10);j=l.n.a;i=j+l.o.a;i=$wnd.Math.max(j+1,i);r=new Bib(d,0);e=null;while(r.b<r.d.gc()){p=(sCb(r.b<r.d.gc()),BD(r.d.Xb(r.c=r.b++),569));if(p.c>=i){sCb(r.b>0);r.a.Xb(r.c=--r.b);break}else if(p.a>j){if(!e){Ekb(p.b,l);p.c=$wnd.Math.min(p.c,j);p.a=$wnd.Math.max(p.a,i);e=p}else{Gkb(e.b,p.b);e.a=$wnd.Math.max(e.a,p.a);uib(r)}}}if(!e){e=new TCc;e.c=j;e.a=i;Aib(r,e);Ekb(e.b,l)}}h=b.b;k=0;for(q=new olb(d);q.a<q.c.c.length;){p=BD(mlb(q),569);f=new H1b(b);f.p=k++;h.c[h.c.length]=f;for(o=new olb(p.b);o.a<o.c.c.length;){l=BD(mlb(o),10);$_b(l,f);l.p=0}}for(m=new olb(b.a);m.a<m.c.c.length;){l=BD(mlb(m),10);l.p==0&&OCc(a,l,b)}g=new Bib(h,0);while(g.b<g.d.gc()){(sCb(g.b<g.d.gc()),BD(g.d.Xb(g.c=g.b++),29)).a.c.length==0&&uib(g)}b.a.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} +function Snc(a,b,c){var d,e,f,g,h,i,j,k,l,m;if(b.e.c.length!=0&&c.e.c.length!=0){d=BD(Ikb(b.e,0),17).c.i;g=BD(Ikb(c.e,0),17).c.i;if(d==g){return beb(BD(vNb(BD(Ikb(b.e,0),17),(wtc(),Zsc)),19).a,BD(vNb(BD(Ikb(c.e,0),17),Zsc),19).a)}for(k=a.a,l=0,m=k.length;l<m;++l){j=k[l];if(j==d){return 1}else if(j==g){return -1}}}if(b.g.c.length!=0&&c.g.c.length!=0){f=BD(vNb(b,(wtc(),Xsc)),10);i=BD(vNb(c,Xsc),10);e=0;h=0;wNb(BD(Ikb(b.g,0),17),Zsc)&&(e=BD(vNb(BD(Ikb(b.g,0),17),Zsc),19).a);wNb(BD(Ikb(c.g,0),17),Zsc)&&(h=BD(vNb(BD(Ikb(b.g,0),17),Zsc),19).a);if(!!f&&f==i){if(Ccb(DD(vNb(BD(Ikb(b.g,0),17),ltc)))&&!Ccb(DD(vNb(BD(Ikb(c.g,0),17),ltc)))){return 1}else if(!Ccb(DD(vNb(BD(Ikb(b.g,0),17),ltc)))&&Ccb(DD(vNb(BD(Ikb(c.g,0),17),ltc)))){return -1}return e<h?-1:e>h?1:0}if(a.b){a.b._b(f)&&(e=BD(a.b.xc(f),19).a);a.b._b(i)&&(h=BD(a.b.xc(i),19).a)}return e<h?-1:e>h?1:0}return b.e.c.length!=0&&c.g.c.length!=0?1:-1} +function acc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;Odd(b,Ine,1);p=new Rkb;w=new Rkb;for(j=new olb(a.b);j.a<j.c.c.length;){i=BD(mlb(j),29);r=-1;o=l_b(i.a);for(l=o,m=0,n=l.length;m<n;++m){k=l[m];++r;if(!(k.k==(j0b(),h0b)&&fcd(BD(vNb(k,(Nyc(),Vxc)),98)))){continue}ecd(BD(vNb(k,(Nyc(),Vxc)),98))||bcc(k);yNb(k,(wtc(),Psc),k);p.c=KC(SI,Uhe,1,0,5,1);w.c=KC(SI,Uhe,1,0,5,1);c=new Rkb;u=new Psb;Jq(u,Y_b(k,(Ucd(),Acd)));$bc(a,u,p,w,c);h=r;A=k;for(f=new olb(p);f.a<f.c.c.length;){d=BD(mlb(f),10);Z_b(d,h,i);++r;yNb(d,Psc,k);g=BD(Ikb(d.j,0),11);q=BD(vNb(g,$sc),11);Ccb(DD(vNb(q,nwc)))||BD(vNb(d,Qsc),15).Fc(A)}Osb(u);for(t=Y_b(k,Rcd).Kc();t.Ob();){s=BD(t.Pb(),11);Gsb(u,s,u.a,u.a.a)}$bc(a,u,w,null,c);v=k;for(e=new olb(w);e.a<e.c.c.length;){d=BD(mlb(e),10);Z_b(d,++r,i);yNb(d,Psc,k);g=BD(Ikb(d.j,0),11);q=BD(vNb(g,$sc),11);Ccb(DD(vNb(q,nwc)))||BD(vNb(v,Qsc),15).Fc(d)}c.c.length==0||yNb(k,ssc,c)}}Qdd(b)} +function SQb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;l=BD(vNb(a,(HSb(),FSb)),33);r=Ohe;s=Ohe;p=Rie;q=Rie;for(u=new olb(a.e);u.a<u.c.c.length;){t=BD(mlb(u),144);C=t.d;D=t.e;r=$wnd.Math.min(r,C.a-D.a/2);s=$wnd.Math.min(s,C.b-D.b/2);p=$wnd.Math.max(p,C.a+D.a/2);q=$wnd.Math.max(q,C.b+D.b/2)}B=BD(hkd(l,(wSb(),kSb)),116);A=new f7c(B.b-r,B.d-s);for(h=new olb(a.e);h.a<h.c.c.length;){g=BD(mlb(h),144);w=vNb(g,FSb);if(JD(w,239)){n=BD(w,33);v=P6c(g.d,A);bld(n,v.a-n.g/2,v.b-n.f/2)}}for(d=new olb(a.c);d.a<d.c.c.length;){c=BD(mlb(d),282);j=BD(vNb(c,FSb),79);k=itd(j,true,true);F=(H=c7c(R6c(c.d.d),c.c.d),l6c(H,c.c.e.a,c.c.e.b),P6c(H,c.c.d));nmd(k,F.a,F.b);b=(I=c7c(R6c(c.c.d),c.d.d),l6c(I,c.d.e.a,c.d.e.b),P6c(I,c.d.d));gmd(k,b.a,b.b)}for(f=new olb(a.d);f.a<f.c.c.length;){e=BD(mlb(f),447);m=BD(vNb(e,FSb),137);o=P6c(e.d,A);bld(m,o.a,o.b)}G=p-r+(B.b+B.c);i=q-s+(B.d+B.a);Afd(l,G,i,false,true)} +function bmc(a){var b,c,d,e,f,g,h,i,j,k,l,m;c=null;i=null;e=BD(vNb(a.b,(Nyc(),Wwc)),376);if(e==(_Ac(),ZAc)){c=new Rkb;i=new Rkb}for(h=new olb(a.d);h.a<h.c.c.length;){g=BD(mlb(h),101);f=g.i;if(!f){continue}switch(g.e.g){case 0:b=BD(Fqb(new Gqb(g.b)),61);e==ZAc&&b==(Ucd(),Acd)?(c.c[c.c.length]=g,true):e==ZAc&&b==(Ucd(),Rcd)?(i.c[i.c.length]=g,true):_lc(g,b);break;case 1:j=g.a.d.j;k=g.c.d.j;j==(Ucd(),Acd)?amc(g,Acd,(Ajc(),xjc),g.a):k==Acd?amc(g,Acd,(Ajc(),yjc),g.c):j==Rcd?amc(g,Rcd,(Ajc(),yjc),g.a):k==Rcd&&amc(g,Rcd,(Ajc(),xjc),g.c);break;case 2:case 3:d=g.b;uqb(d,(Ucd(),Acd))?uqb(d,Rcd)?uqb(d,Tcd)?uqb(d,zcd)||amc(g,Acd,(Ajc(),yjc),g.c):amc(g,Acd,(Ajc(),xjc),g.a):amc(g,Acd,(Ajc(),wjc),null):amc(g,Rcd,(Ajc(),wjc),null);break;case 4:l=g.a.d.j;m=g.a.d.j;l==(Ucd(),Acd)||m==Acd?amc(g,Rcd,(Ajc(),wjc),null):amc(g,Acd,(Ajc(),wjc),null);}}if(c){c.c.length==0||$lc(c,(Ucd(),Acd));i.c.length==0||$lc(i,(Ucd(),Rcd))}} +function A2b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;d=BD(vNb(a,(wtc(),$sc)),33);o=BD(vNb(a,(Nyc(),Gwc)),19).a;f=BD(vNb(a,nxc),19).a;jkd(d,Gwc,meb(o));jkd(d,nxc,meb(f));dld(d,a.n.a+b.a);eld(d,a.n.b+b.b);if(BD(hkd(d,Fxc),174).gc()!=0||!!a.e||PD(vNb(Q_b(a),Exc))===PD((Vzc(),Tzc))&&Jzc((Izc(),(!a.q?(mmb(),mmb(),kmb):a.q)._b(Cxc)?(m=BD(vNb(a,Cxc),197)):(m=BD(vNb(Q_b(a),Dxc),197)),m))){cld(d,a.o.a);ald(d,a.o.b)}for(l=new olb(a.j);l.a<l.c.c.length;){j=BD(mlb(l),11);p=vNb(j,$sc);if(JD(p,186)){e=BD(p,118);bld(e,j.n.a,j.n.b);jkd(e,$xc,j.j)}}n=BD(vNb(a,xxc),174).gc()!=0;for(i=new olb(a.b);i.a<i.c.c.length;){g=BD(mlb(i),70);if(n||BD(vNb(g,xxc),174).gc()!=0){c=BD(vNb(g,$sc),137);_kd(c,g.o.a,g.o.b);bld(c,g.n.a,g.n.b)}}if(!tcd(BD(vNb(a,Yxc),21))){for(k=new olb(a.j);k.a<k.c.c.length;){j=BD(mlb(k),11);for(h=new olb(j.f);h.a<h.c.c.length;){g=BD(mlb(h),70);c=BD(vNb(g,$sc),137);cld(c,g.o.a);ald(c,g.o.b);bld(c,g.n.a,g.n.b)}}}} +function gtd(a){var b,c,d,e,f;ytb(a,hue);switch((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b).i+(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c).i){case 0:throw vbb(new Wdb('The edge must have at least one source or target.'));case 1:return (!a.b&&(a.b=new y5d(z2,a,4,7)),a.b).i==0?Xod(atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))):Xod(atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)));}if((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b).i==1&&(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c).i==1){e=atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82));f=atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82));if(Xod(e)==Xod(f)){return Xod(e)}else if(e==Xod(f)){return e}else if(f==Xod(e)){return f}}d=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c)])));b=atd(BD(Rr(d),82));while(Qr(d)){c=atd(BD(Rr(d),82));if(c!=b&&!ntd(c,b)){if(Xod(c)==Xod(b)){b=Xod(c)}else{b=htd(b,c);if(!b){return null}}}}return b} +function KNc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;Odd(c,'Polyline edge routing',1);q=Edb(ED(vNb(b,(Nyc(),Uwc))));n=Edb(ED(vNb(b,wyc)));e=Edb(ED(vNb(b,myc)));d=$wnd.Math.min(1,e/n);t=0;i=0;if(b.b.c.length!=0){u=HNc(BD(Ikb(b.b,0),29));t=0.4*d*u}h=new Bib(b.b,0);while(h.b<h.d.gc()){g=(sCb(h.b<h.d.gc()),BD(h.d.Xb(h.c=h.b++),29));f=Kq(g,DNc);f&&t>0&&(t-=n);h_b(g,t);k=0;for(m=new olb(g.a);m.a<m.c.c.length;){l=BD(mlb(m),10);j=0;for(p=new Sr(ur(U_b(l).a.Kc(),new Sq));Qr(p);){o=BD(Rr(p),17);r=A0b(o.c).b;s=A0b(o.d).b;if(g==o.d.i.c&&!OZb(o)){LNc(o,t,0.4*d*$wnd.Math.abs(r-s));if(o.c.j==(Ucd(),Tcd)){r=0;s=0}}j=$wnd.Math.max(j,$wnd.Math.abs(s-r))}switch(l.k.g){case 0:case 4:case 1:case 3:case 5:MNc(a,l,t,q);}k=$wnd.Math.max(k,j)}if(h.b<h.d.gc()){u=HNc((sCb(h.b<h.d.gc()),BD(h.d.Xb(h.c=h.b++),29)));k=$wnd.Math.max(k,u);sCb(h.b>0);h.a.Xb(h.c=--h.b)}i=0.4*d*k;!f&&h.b<h.d.gc()&&(i+=n);t+=g.c.a+i}a.a.a.$b();b.f.a=t;Qdd(c)} +function bic(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;k=new Lqb;i=new Hp;for(d=new olb(a.a.a.b);d.a<d.c.c.length;){b=BD(mlb(d),57);j=tgc(b);if(j){jrb(k.f,j,b)}else{s=ugc(b);if(s){for(f=new olb(s.k);f.a<f.c.c.length;){e=BD(mlb(f),17);Rc(i,e,b)}}}}for(c=new olb(a.a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),57);j=tgc(b);if(j){for(h=new Sr(ur(U_b(j).a.Kc(),new Sq));Qr(h);){g=BD(Rr(h),17);if(OZb(g)){continue}o=g.c;r=g.d;if((Ucd(),Lcd).Hc(g.c.j)&&Lcd.Hc(g.d.j)){continue}p=BD(Ohb(k,g.d.i),57);AFb(DFb(CFb(EFb(BFb(new FFb,0),100),a.c[b.a.d]),a.c[p.a.d]));if(o.j==Tcd&&l1b((z0b(),w0b,o))){for(m=BD(Qc(i,g),21).Kc();m.Ob();){l=BD(m.Pb(),57);if(l.d.c<b.d.c){n=a.c[l.a.d];q=a.c[b.a.d];if(n==q){continue}AFb(DFb(CFb(EFb(BFb(new FFb,1),100),n),q))}}}if(r.j==zcd&&g1b((z0b(),u0b,r))){for(m=BD(Qc(i,g),21).Kc();m.Ob();){l=BD(m.Pb(),57);if(l.d.c>b.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}AFb(DFb(CFb(EFb(BFb(new FFb,1),100),n),q))}}}}}}} +function QEd(a){IEd();var b,c,d,e,f,g,h,i;if(a==null)return null;e=hfb(a,wfb(37));if(e<0){return a}else{i=new Wfb(a.substr(0,e));b=KC(SD,wte,25,4,15,1);h=0;d=0;for(g=a.length;e<g;e++){BCb(e,a.length);if(a.charCodeAt(e)==37&&a.length>e+2&&_Ed((BCb(e+1,a.length),a.charCodeAt(e+1)),xEd,yEd)&&_Ed((BCb(e+2,a.length),a.charCodeAt(e+2)),xEd,yEd)){c=dFd((BCb(e+1,a.length),a.charCodeAt(e+1)),(BCb(e+2,a.length),a.charCodeAt(e+2)));e+=2;if(d>0){(c&192)==128?(b[h++]=c<<24>>24):(d=0)}else if(c>=128){if((c&224)==192){b[h++]=c<<24>>24;d=2}else if((c&240)==224){b[h++]=c<<24>>24;d=3}else if((c&248)==240){b[h++]=c<<24>>24;d=4}}if(d>0){if(h==d){switch(h){case 2:{Kfb(i,((b[0]&31)<<6|b[1]&63)&aje);break}case 3:{Kfb(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&aje);break}}h=0;d=0}}else{for(f=0;f<h;++f){Kfb(i,b[f]&aje)}h=0;i.a+=String.fromCharCode(c)}}else{for(f=0;f<h;++f){Kfb(i,b[f]&aje)}h=0;Kfb(i,(BCb(e,a.length),a.charCodeAt(e)))}}return i.a}} +function wA(a,b,c,d,e){var f,g,h;uA(a,b);g=b[0];f=bfb(c.c,0);h=-1;if(nA(c)){if(d>0){if(g+d>a.length){return false}h=rA(a.substr(0,g+d),b)}else{h=rA(a,b)}}switch(f){case 71:h=oA(a,g,OC(GC(ZI,1),nie,2,6,[pje,qje]),b);e.e=h;return true;case 77:return zA(a,b,e,h,g);case 76:return BA(a,b,e,h,g);case 69:return xA(a,b,g,e);case 99:return AA(a,b,g,e);case 97:h=oA(a,g,OC(GC(ZI,1),nie,2,6,['AM','PM']),b);e.b=h;return true;case 121:return DA(a,b,g,h,c,e);case 100:if(h<=0){return false}e.c=h;return true;case 83:if(h<0){return false}return yA(h,g,b[0],e);case 104:h==12&&(h=0);case 75:case 72:if(h<0){return false}e.f=h;e.g=false;return true;case 107:if(h<0){return false}e.f=h;e.g=true;return true;case 109:if(h<0){return false}e.j=h;return true;case 115:if(h<0){return false}e.n=h;return true;case 90:if(g<a.length&&(BCb(g,a.length),a.charCodeAt(g)==90)){++b[0];e.o=0;return true}case 122:case 118:return CA(a,g,b,e);default:return false;}} +function vKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;m=BD(BD(Qc(a.r,b),21),84);if(b==(Ucd(),zcd)||b==Tcd){zKb(a,b);return}f=b==Acd?(vLb(),rLb):(vLb(),uLb);u=b==Acd?(EIb(),DIb):(EIb(),BIb);c=BD(Mpb(a.b,b),124);d=c.i;e=d.c+w6c(OC(GC(UD,1),Vje,25,15,[c.n.b,a.C.b,a.k]));r=d.c+d.b-w6c(OC(GC(UD,1),Vje,25,15,[c.n.c,a.C.c,a.k]));g=dLb(iLb(f),a.t);s=b==Acd?Qje:Pje;for(l=m.Kc();l.Ob();){j=BD(l.Pb(),111);if(!j.c||j.c.d.c.length<=0){continue}q=j.b.rf();p=j.e;n=j.c;o=n.i;o.b=(i=n.n,n.e.a+i.b+i.c);o.a=(h=n.n,n.e.b+h.d+h.a);ytb(u,lle);n.f=u;$Hb(n,(NHb(),MHb));o.c=p.a-(o.b-q.a)/2;v=$wnd.Math.min(e,p.a);w=$wnd.Math.max(r,p.a+q.a);o.c<v?(o.c=v):o.c+o.b>w&&(o.c=w-o.b);Ekb(g.d,new BLb(o,bLb(g,o)));s=b==Acd?$wnd.Math.max(s,p.b+j.b.rf().b):$wnd.Math.min(s,p.b)}s+=b==Acd?a.t:-a.t;t=cLb((g.e=s,g));t>0&&(BD(Mpb(a.b,b),124).a.b=t);for(k=m.Kc();k.Ob();){j=BD(k.Pb(),111);if(!j.c||j.c.d.c.length<=0){continue}o=j.c.i;o.c-=j.e.a;o.d-=j.e.b}} +function SPb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=new Lqb;for(i=new Fyd(a);i.e!=i.i.gc();){h=BD(Dyd(i),33);c=new Tqb;Rhb(OPb,h,c);n=new aQb;e=BD(GAb(new YAb(null,new Lub(new Sr(ur($sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)])))),83);RPb(c,BD(e.xc((Bcb(),true)),14),new cQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new eQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),79);m=ktd(f);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}e=BD(GAb(new YAb(null,new Lub(new Sr(ur(_sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb])))),83);RPb(c,BD(e.xc(true),14),new gQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new iQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(l=d.Kc();l.Ob();){k=BD(l.Pb(),79);m=mtd(k);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}}} +function rhb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p;i=ybb(a,0)<0;i&&(a=Jbb(a));if(ybb(a,0)==0){switch(b){case 0:return '0';case 1:return $je;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:n=new Ufb;b<0?(n.a+='0E+',n):(n.a+='0E',n);n.a+=b==Rie?'2147483648':''+-b;return n.a;}}k=18;l=KC(TD,$ie,25,k+1,15,1);c=k;p=a;do{j=p;p=Abb(p,10);l[--c]=Tbb(wbb(48,Qbb(j,Ibb(p,10))))&aje}while(ybb(p,0)!=0);e=Qbb(Qbb(Qbb(k,c),b),1);if(b==0){i&&(l[--c]=45);return zfb(l,c,k-c)}if(b>0&&ybb(e,-6)>=0){if(ybb(e,0)>=0){f=c+Tbb(e);for(h=k-1;h>=f;h--){l[h+1]=l[h]}l[++f]=46;i&&(l[--c]=45);return zfb(l,c,k-c+1)}for(g=2;Gbb(g,wbb(Jbb(e),1));g++){l[--c]=48}l[--c]=46;l[--c]=48;i&&(l[--c]=45);return zfb(l,c,k-c)}o=c+1;d=k;m=new Vfb;i&&(m.a+='-',m);if(d-o>=1){Kfb(m,l[c]);m.a+='.';m.a+=zfb(l,c+1,k-c-1)}else{m.a+=zfb(l,c,k-c)}m.a+='E';ybb(e,0)>0&&(m.a+='+',m);m.a+=''+Ubb(e);return m.a} +function iQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.e.a.$b();a.f.a.$b();a.c.c=KC(SI,Uhe,1,0,5,1);a.i.c=KC(SI,Uhe,1,0,5,1);a.g.a.$b();if(b){for(g=new olb(b.a);g.a<g.c.c.length;){f=BD(mlb(g),10);for(l=Y_b(f,(Ucd(),zcd)).Kc();l.Ob();){k=BD(l.Pb(),11);Qqb(a.e,k);for(e=new olb(k.g);e.a<e.c.c.length;){d=BD(mlb(e),17);if(OZb(d)){continue}Ekb(a.c,d);oQc(a,d);h=d.c.i.k;(h==(j0b(),h0b)||h==i0b||h==e0b||h==d0b)&&Ekb(a.j,d);n=d.d;m=n.i.c;m==c?Qqb(a.f,n):m==b?Qqb(a.e,n):Lkb(a.c,d)}}}}if(c){for(g=new olb(c.a);g.a<g.c.c.length;){f=BD(mlb(g),10);for(j=new olb(f.j);j.a<j.c.c.length;){i=BD(mlb(j),11);for(e=new olb(i.g);e.a<e.c.c.length;){d=BD(mlb(e),17);OZb(d)&&Qqb(a.g,d)}}for(l=Y_b(f,(Ucd(),Tcd)).Kc();l.Ob();){k=BD(l.Pb(),11);Qqb(a.f,k);for(e=new olb(k.g);e.a<e.c.c.length;){d=BD(mlb(e),17);if(OZb(d)){continue}Ekb(a.c,d);oQc(a,d);h=d.c.i.k;(h==(j0b(),h0b)||h==i0b||h==e0b||h==d0b)&&Ekb(a.j,d);n=d.d;m=n.i.c;m==c?Qqb(a.f,n):m==b?Qqb(a.e,n):Lkb(a.c,d)}}}}} +function Afd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;q=new f7c(a.g,a.f);p=rfd(a);p.a=$wnd.Math.max(p.a,b);p.b=$wnd.Math.max(p.b,c);w=p.a/q.a;k=p.b/q.b;u=p.a-q.a;i=p.b-q.b;if(d){g=!Xod(a)?BD(hkd(a,(Y9c(),z8c)),103):BD(hkd(Xod(a),(Y9c(),z8c)),103);h=PD(hkd(a,(Y9c(),t9c)))===PD((dcd(),$bd));for(s=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));s.e!=s.i.gc();){r=BD(Dyd(s),118);t=BD(hkd(r,A9c),61);if(t==(Ucd(),Scd)){t=lfd(r,g);jkd(r,A9c,t)}switch(t.g){case 1:h||dld(r,r.i*w);break;case 2:dld(r,r.i+u);h||eld(r,r.j*k);break;case 3:h||dld(r,r.i*w);eld(r,r.j+i);break;case 4:h||eld(r,r.j*k);}}}_kd(a,p.a,p.b);if(e){for(m=new Fyd((!a.n&&(a.n=new cUd(D2,a,1,7)),a.n));m.e!=m.i.gc();){l=BD(Dyd(m),137);n=l.i+l.g/2;o=l.j+l.f/2;v=n/q.a;j=o/q.b;if(v+j>=1){if(v-j>0&&o>=0){dld(l,l.i+u);eld(l,l.j+i*j)}else if(v-j<0&&n>=0){dld(l,l.i+u*v);eld(l,l.j+i)}}}}jkd(a,(Y9c(),Y8c),(tdd(),f=BD(gdb(I1),9),new xqb(f,BD(_Bb(f,f.length),9),0)));return new f7c(w,k)} +function Yfd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;n=Xod(atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)));o=Xod(atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)));l=n==o;h=new d7c;b=BD(hkd(a,(Zad(),Sad)),74);if(!!b&&b.b>=2){if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i==0){c=(Fhd(),e=new rmd,e);wtd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i>1){m=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(m.e!=m.i.gc()){Eyd(m)}}ifd(b,BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202))}if(l){for(d=new Fyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));d.e!=d.i.gc();){c=BD(Dyd(d),202);for(j=new Fyd((!c.a&&(c.a=new xMd(y2,c,5)),c.a));j.e!=j.i.gc();){i=BD(Dyd(j),469);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new Fyd((!a.n&&(a.n=new cUd(D2,a,1,7)),a.n));g.e!=g.i.gc();){f=BD(Dyd(g),137);k=BD(hkd(f,Yad),8);!!k&&bld(f,k.a,k.b);if(l){h.a=$wnd.Math.max(h.a,f.i+f.g);h.b=$wnd.Math.max(h.b,f.j+f.f)}}return h} +function yMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;t=b.c.length;e=new ULc(a.a,c,null,null);B=KC(UD,Vje,25,t,15,1);p=KC(UD,Vje,25,t,15,1);o=KC(UD,Vje,25,t,15,1);q=0;for(h=0;h<t;h++){p[h]=Ohe;o[h]=Rie}for(i=0;i<t;i++){d=(tCb(i,b.c.length),BD(b.c[i],180));B[i]=SLc(d);B[q]>B[i]&&(q=i);for(l=new olb(a.a.b);l.a<l.c.c.length;){k=BD(mlb(l),29);for(s=new olb(k.a);s.a<s.c.c.length;){r=BD(mlb(s),10);w=Edb(d.p[r.p])+Edb(d.d[r.p]);p[i]=$wnd.Math.min(p[i],w);o[i]=$wnd.Math.max(o[i],w+r.o.b)}}}A=KC(UD,Vje,25,t,15,1);for(j=0;j<t;j++){(tCb(j,b.c.length),BD(b.c[j],180)).o==(eMc(),cMc)?(A[j]=p[q]-p[j]):(A[j]=o[q]-o[j])}f=KC(UD,Vje,25,t,15,1);for(n=new olb(a.a.b);n.a<n.c.c.length;){m=BD(mlb(n),29);for(v=new olb(m.a);v.a<v.c.c.length;){u=BD(mlb(v),10);for(g=0;g<t;g++){f[g]=Edb((tCb(g,b.c.length),BD(b.c[g],180)).p[u.p])+Edb((tCb(g,b.c.length),BD(b.c[g],180)).d[u.p])+A[g]}f.sort(dcb(Ylb.prototype.te,Ylb,[]));e.p[u.p]=(f[1]+f[2])/2;e.d[u.p]=0}}return e} +function G3b(a,b,c){var d,e,f,g,h;d=b.i;f=a.i.o;e=a.i.d;h=a.n;g=l7c(OC(GC(m1,1),nie,8,0,[h,a.a]));switch(a.j.g){case 1:_Hb(b,(EIb(),BIb));d.d=-e.d-c-d.a;if(BD(BD(Ikb(b.d,0),181).We((wtc(),Ssc)),285)==(rbd(),nbd)){$Hb(b,(NHb(),MHb));d.c=g.a-Edb(ED(vNb(a,Ysc)))-c-d.b}else{$Hb(b,(NHb(),LHb));d.c=g.a+Edb(ED(vNb(a,Ysc)))+c}break;case 2:$Hb(b,(NHb(),LHb));d.c=f.a+e.c+c;if(BD(BD(Ikb(b.d,0),181).We((wtc(),Ssc)),285)==(rbd(),nbd)){_Hb(b,(EIb(),BIb));d.d=g.b-Edb(ED(vNb(a,Ysc)))-c-d.a}else{_Hb(b,(EIb(),DIb));d.d=g.b+Edb(ED(vNb(a,Ysc)))+c}break;case 3:_Hb(b,(EIb(),DIb));d.d=f.b+e.a+c;if(BD(BD(Ikb(b.d,0),181).We((wtc(),Ssc)),285)==(rbd(),nbd)){$Hb(b,(NHb(),MHb));d.c=g.a-Edb(ED(vNb(a,Ysc)))-c-d.b}else{$Hb(b,(NHb(),LHb));d.c=g.a+Edb(ED(vNb(a,Ysc)))+c}break;case 4:$Hb(b,(NHb(),MHb));d.c=-e.b-c-d.b;if(BD(BD(Ikb(b.d,0),181).We((wtc(),Ssc)),285)==(rbd(),nbd)){_Hb(b,(EIb(),BIb));d.d=g.b-Edb(ED(vNb(a,Ysc)))-c-d.a}else{_Hb(b,(EIb(),DIb));d.d=g.b+Edb(ED(vNb(a,Ysc)))+c}}} +function ded(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;n=0;D=0;for(i=new olb(a);i.a<i.c.c.length;){h=BD(mlb(i),33);zfd(h);n=$wnd.Math.max(n,h.g);D+=h.g*h.f}o=D/a.c.length;C=$dd(a,o);D+=a.c.length*C;n=$wnd.Math.max(n,$wnd.Math.sqrt(D*g))+c.b;H=c.b;I=c.d;m=0;k=c.b+c.c;B=new Psb;Dsb(B,meb(0));w=new Psb;j=new Bib(a,0);while(j.b<j.d.gc()){h=(sCb(j.b<j.d.gc()),BD(j.d.Xb(j.c=j.b++),33));G=h.g;l=h.f;if(H+G>n){if(f){Fsb(w,m);Fsb(B,meb(j.b-1))}H=c.b;I+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+G)}dld(h,H);eld(h,I);k=$wnd.Math.max(k,H+G+c.c);m=$wnd.Math.max(m,l);H+=G+b}k=$wnd.Math.max(k,d);F=I+m+c.a;if(F<e){m+=e-F;F=e}if(f){H=c.b;j=new Bib(a,0);Fsb(B,meb(a.c.length));A=Jsb(B,0);r=BD(Xsb(A),19).a;Fsb(w,m);v=Jsb(w,0);u=0;while(j.b<j.d.gc()){if(j.b==r){H=c.b;u=Edb(ED(Xsb(v)));r=BD(Xsb(A),19).a}h=(sCb(j.b<j.d.gc()),BD(j.d.Xb(j.c=j.b++),33));s=h.f;ald(h,u);p=u;if(j.b==r){q=k-H-c.c;t=h.g;cld(h,q);Ffd(h,new f7c(q,p),new f7c(t,s))}H+=h.g+b}}return new f7c(k,F)} +function _Yb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;Odd(b,'Compound graph postprocessor',1);c=Ccb(DD(vNb(a,(Nyc(),Byc))));h=BD(vNb(a,(wtc(),zsc)),224);k=new Tqb;for(r=h.ec().Kc();r.Ob();){q=BD(r.Pb(),17);g=new Tkb(h.cc(q));mmb();Okb(g,new EZb(a));v=zZb((tCb(0,g.c.length),BD(g.c[0],243)));A=AZb(BD(Ikb(g,g.c.length-1),243));t=v.i;f_b(A.i,t)?(s=t.e):(s=Q_b(t));l=aZb(q,g);Osb(q.a);m=null;for(f=new olb(g);f.a<f.c.c.length;){e=BD(mlb(f),243);p=new d7c;Y$b(p,e.a,s);n=e.b;d=new s7c;o7c(d,0,n.a);q7c(d,p);u=new g7c(A0b(n.c));w=new g7c(A0b(n.d));P6c(u,p);P6c(w,p);if(m){d.b==0?(o=w):(o=(sCb(d.b!=0),BD(d.a.a.c,8)));B=$wnd.Math.abs(m.a-o.a)>qme;C=$wnd.Math.abs(m.b-o.b)>qme;(!c&&B&&C||c&&(B||C))&&Dsb(q.a,u)}ye(q.a,d);d.b==0?(m=u):(m=(sCb(d.b!=0),BD(d.c.b.c,8)));bZb(n,l,p);if(AZb(e)==A){if(Q_b(A.i)!=e.a){p=new d7c;Y$b(p,Q_b(A.i),s)}yNb(q,utc,p)}cZb(n,q,s);k.a.zc(n,k)}QZb(q,v);RZb(q,A)}for(j=k.a.ec().Kc();j.Ob();){i=BD(j.Pb(),17);QZb(i,null);RZb(i,null)}Qdd(b)} +function KQb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(a.gc()==1){return BD(a.Xb(0),231)}else if(a.gc()<=0){return new kRb}for(e=a.Kc();e.Ob();){c=BD(e.Pb(),231);o=0;k=Ohe;l=Ohe;i=Rie;j=Rie;for(n=new olb(c.e);n.a<n.c.c.length;){m=BD(mlb(n),144);o+=BD(vNb(m,(wSb(),oSb)),19).a;k=$wnd.Math.min(k,m.d.a-m.e.a/2);l=$wnd.Math.min(l,m.d.b-m.e.b/2);i=$wnd.Math.max(i,m.d.a+m.e.a/2);j=$wnd.Math.max(j,m.d.b+m.e.b/2)}yNb(c,(wSb(),oSb),meb(o));yNb(c,(HSb(),ESb),new f7c(k,l));yNb(c,DSb,new f7c(i,j))}mmb();a.ad(new OQb);p=new kRb;tNb(p,BD(a.Xb(0),94));h=0;s=0;for(f=a.Kc();f.Ob();){c=BD(f.Pb(),231);q=c7c(R6c(BD(vNb(c,(HSb(),DSb)),8)),BD(vNb(c,ESb),8));h=$wnd.Math.max(h,q.a);s+=q.a*q.b}h=$wnd.Math.max(h,$wnd.Math.sqrt(s)*Edb(ED(vNb(p,(wSb(),bSb)))));r=Edb(ED(vNb(p,uSb)));t=0;u=0;g=0;b=r;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),231);q=c7c(R6c(BD(vNb(c,(HSb(),DSb)),8)),BD(vNb(c,ESb),8));if(t+q.a>h){t=0;u+=g+r;g=0}JQb(p,c,t,u);b=$wnd.Math.max(b,t+q.a);g=$wnd.Math.max(g,q.b);t+=q.a+r}return p} +function Ioc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;k=new s7c;switch(a.a.g){case 3:m=BD(vNb(b.e,(wtc(),rtc)),15);n=BD(vNb(b.j,rtc),15);o=BD(vNb(b.f,rtc),15);c=BD(vNb(b.e,ptc),15);d=BD(vNb(b.j,ptc),15);e=BD(vNb(b.f,ptc),15);g=new Rkb;Gkb(g,m);n.Jc(new Loc);Gkb(g,JD(n,152)?km(BD(n,152)):JD(n,131)?BD(n,131).a:JD(n,54)?new ov(n):new dv(n));Gkb(g,o);f=new Rkb;Gkb(f,c);Gkb(f,JD(d,152)?km(BD(d,152)):JD(d,131)?BD(d,131).a:JD(d,54)?new ov(d):new dv(d));Gkb(f,e);yNb(b.f,rtc,g);yNb(b.f,ptc,f);yNb(b.f,stc,b.f);yNb(b.e,rtc,null);yNb(b.e,ptc,null);yNb(b.j,rtc,null);yNb(b.j,ptc,null);break;case 1:ye(k,b.e.a);Dsb(k,b.i.n);ye(k,Su(b.j.a));Dsb(k,b.a.n);ye(k,b.f.a);break;default:ye(k,b.e.a);ye(k,Su(b.j.a));ye(k,b.f.a);}Osb(b.f.a);ye(b.f.a,k);QZb(b.f,b.e.c);h=BD(vNb(b.e,(Nyc(),jxc)),74);j=BD(vNb(b.j,jxc),74);i=BD(vNb(b.f,jxc),74);if(!!h||!!j||!!i){l=new s7c;Goc(l,i);Goc(l,j);Goc(l,h);yNb(b.f,jxc,l)}QZb(b.j,null);RZb(b.j,null);QZb(b.e,null);RZb(b.e,null);$_b(b.a,null);$_b(b.i,null);!!b.g&&Ioc(a,b.g)} +function bde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;f=rfb(a);o=ede(f);if(o%4!=0){return null}p=o/4|0;if(p==0)return KC(SD,wte,25,0,15,1);l=null;b=0;c=0;d=0;e=0;g=0;h=0;i=0;j=0;n=0;m=0;k=0;l=KC(SD,wte,25,p*3,15,1);for(;n<p-1;n++){if(!dde(g=f[k++])||!dde(h=f[k++])||!dde(i=f[k++])||!dde(j=f[k++]))return null;b=$ce[g];c=$ce[h];d=$ce[i];e=$ce[j];l[m++]=(b<<2|c>>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}if(!dde(g=f[k++])||!dde(h=f[k++])){return null}b=$ce[g];c=$ce[h];i=f[k++];j=f[k++];if($ce[i]==-1||$ce[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=KC(SD,wte,25,n*3+1,15,1);$fb(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=$ce[i];if((d&3)!=0)return null;q=KC(SD,wte,25,n*3+2,15,1);$fb(l,0,q,0,n*3);q[m++]=(b<<2|c>>4)<<24>>24;q[m]=((c&15)<<4|d>>2&15)<<24>>24;return q}else{return null}}else{d=$ce[i];e=$ce[j];l[m++]=(b<<2|c>>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}return l} +function Sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Odd(b,Ine,1);o=BD(vNb(a,(Nyc(),Swc)),218);for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),29);j=l_b(d.a);for(g=j,h=0,i=g.length;h<i;++h){f=g[h];if(f.k!=(j0b(),i0b)){continue}if(o==(Aad(),yad)){for(l=new olb(f.j);l.a<l.c.c.length;){k=BD(mlb(l),11);k.e.c.length==0||Vbc(k);k.g.c.length==0||Wbc(k)}}else if(JD(vNb(f,(wtc(),$sc)),17)){q=BD(vNb(f,$sc),17);r=BD(Y_b(f,(Ucd(),Tcd)).Kc().Pb(),11);s=BD(Y_b(f,zcd).Kc().Pb(),11);t=BD(vNb(r,$sc),11);u=BD(vNb(s,$sc),11);QZb(q,u);RZb(q,t);v=new g7c(s.i.n);v.a=l7c(OC(GC(m1,1),nie,8,0,[u.i.n,u.n,u.a])).a;Dsb(q.a,v);v=new g7c(r.i.n);v.a=l7c(OC(GC(m1,1),nie,8,0,[t.i.n,t.n,t.a])).a;Dsb(q.a,v)}else{if(f.j.c.length>=2){p=true;m=new olb(f.j);c=BD(mlb(m),11);n=null;while(m.a<m.c.c.length){n=c;c=BD(mlb(m),11);if(!pb(vNb(n,$sc),vNb(c,$sc))){p=false;break}}}else{p=false}for(l=new olb(f.j);l.a<l.c.c.length;){k=BD(mlb(l),11);k.e.c.length==0||Tbc(k,p);k.g.c.length==0||Ubc(k,p)}}$_b(f,null)}}Qdd(b)} +function KJc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;t=a.c[(tCb(0,b.c.length),BD(b.c[0],17)).p];A=a.c[(tCb(1,b.c.length),BD(b.c[1],17)).p];if(t.a.e.e-t.a.a-(t.b.e.e-t.b.a)==0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)==0){return false}r=t.b.e.f;if(!JD(r,10)){return false}q=BD(r,10);v=a.i[q.p];w=!q.c?-1:Jkb(q.c.a,q,0);f=Pje;if(w>0){e=BD(Ikb(q.c.a,w-1),10);g=a.i[e.p];B=$wnd.Math.ceil(jBc(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.o.b+e.d.a)-B}j=Pje;if(w<q.c.a.c.length-1){i=BD(Ikb(q.c.a,w+1),10);k=a.i[i.p];B=$wnd.Math.ceil(jBc(a.n,i,q));j=k.a.e-i.d.d-(v.a.e+q.o.b+q.d.a)-B}if(c&&(Iy(),My(Jqe),$wnd.Math.abs(f-j)<=Jqe||f==j||isNaN(f)&&isNaN(j))){return true}d=gKc(t.a);h=-gKc(t.b);l=-gKc(A.a);s=gKc(A.b);p=t.a.e.e-t.a.a-(t.b.e.e-t.b.a)>0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)<0;o=t.a.e.e-t.a.a-(t.b.e.e-t.b.a)<0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)>0;n=t.a.e.e+t.b.a<A.b.e.e+A.a.a;m=t.a.e.e+t.b.a>A.b.e.e+A.a.a;u=0;!p&&!o&&(m?f+l>0?(u=l):j-d>0&&(u=d):n&&(f+h>0?(u=h):j-s>0&&(u=s)));v.a.e+=u;v.b&&(v.d.e+=u);return false} +function XGb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new J6c(b.qf().a,b.qf().b,b.rf().a,b.rf().b);e=new I6c;if(a.c){for(g=new olb(b.wf());g.a<g.c.c.length;){f=BD(mlb(g),181);e.c=f.qf().a+b.qf().a;e.d=f.qf().b+b.qf().b;e.b=f.rf().a;e.a=f.rf().b;H6c(d,e)}}for(j=new olb(b.Cf());j.a<j.c.c.length;){i=BD(mlb(j),838);k=i.qf().a+b.qf().a;l=i.qf().b+b.qf().b;if(a.e){e.c=k;e.d=l;e.b=i.rf().a;e.a=i.rf().b;H6c(d,e)}if(a.d){for(g=new olb(i.wf());g.a<g.c.c.length;){f=BD(mlb(g),181);e.c=f.qf().a+k;e.d=f.qf().b+l;e.b=f.rf().a;e.a=f.rf().b;H6c(d,e)}}if(a.b){m=new f7c(-c,-c);if(BD(b.We((Y9c(),x9c)),174).Hc((rcd(),pcd))){for(g=new olb(i.wf());g.a<g.c.c.length;){f=BD(mlb(g),181);m.a+=f.rf().a+c;m.b+=f.rf().b+c}}m.a=$wnd.Math.max(m.a,0);m.b=$wnd.Math.max(m.b,0);VGb(d,i.Bf(),i.zf(),b,i,m,c)}}a.b&&VGb(d,b.Bf(),b.zf(),b,null,null,c);h=new K_b(b.Af());h.d=$wnd.Math.max(0,b.qf().b-d.d);h.a=$wnd.Math.max(0,d.d+d.a-(b.qf().b+b.rf().b));h.b=$wnd.Math.max(0,b.qf().a-d.c);h.c=$wnd.Math.max(0,d.c+d.b-(b.qf().a+b.rf().a));b.Ef(h)} +function wz(){var a=['\\u0000','\\u0001','\\u0002','\\u0003','\\u0004','\\u0005','\\u0006','\\u0007','\\b','\\t','\\n','\\u000B','\\f','\\r','\\u000E','\\u000F','\\u0010','\\u0011','\\u0012','\\u0013','\\u0014','\\u0015','\\u0016','\\u0017','\\u0018','\\u0019','\\u001A','\\u001B','\\u001C','\\u001D','\\u001E','\\u001F'];a[34]='\\"';a[92]='\\\\';a[173]='\\u00ad';a[1536]='\\u0600';a[1537]='\\u0601';a[1538]='\\u0602';a[1539]='\\u0603';a[1757]='\\u06dd';a[1807]='\\u070f';a[6068]='\\u17b4';a[6069]='\\u17b5';a[8203]='\\u200b';a[8204]='\\u200c';a[8205]='\\u200d';a[8206]='\\u200e';a[8207]='\\u200f';a[8232]='\\u2028';a[8233]='\\u2029';a[8234]='\\u202a';a[8235]='\\u202b';a[8236]='\\u202c';a[8237]='\\u202d';a[8238]='\\u202e';a[8288]='\\u2060';a[8289]='\\u2061';a[8290]='\\u2062';a[8291]='\\u2063';a[8292]='\\u2064';a[8298]='\\u206a';a[8299]='\\u206b';a[8300]='\\u206c';a[8301]='\\u206d';a[8302]='\\u206e';a[8303]='\\u206f';a[65279]='\\ufeff';a[65529]='\\ufff9';a[65530]='\\ufffa';a[65531]='\\ufffb';return a} +function pid(a,b,c){var d,e,f,g,h,i,j,k,l,m;i=new Rkb;l=b.length;g=AUd(c);for(j=0;j<l;++j){k=ifb(b,wfb(61),j);d=$hd(g,b.substr(j,k-j));e=KJd(d);f=e.Aj().Nh();switch(bfb(b,++k)){case 39:{h=gfb(b,39,++k);Ekb(i,new kGd(d,Pid(b.substr(k,h-k),f,e)));j=h+1;break}case 34:{h=gfb(b,34,++k);Ekb(i,new kGd(d,Pid(b.substr(k,h-k),f,e)));j=h+1;break}case 91:{m=new Rkb;Ekb(i,new kGd(d,m));n:for(;;){switch(bfb(b,++k)){case 39:{h=gfb(b,39,++k);Ekb(m,Pid(b.substr(k,h-k),f,e));k=h+1;break}case 34:{h=gfb(b,34,++k);Ekb(m,Pid(b.substr(k,h-k),f,e));k=h+1;break}case 110:{++k;if(b.indexOf('ull',k)==k){m.c[m.c.length]=null}else{throw vbb(new hz(kte))}k+=3;break}}if(k<l){switch(BCb(k,b.length),b.charCodeAt(k)){case 44:{break}case 93:{break n}default:{throw vbb(new hz('Expecting , or ]'))}}}else{break}}j=k+1;break}case 110:{++k;if(b.indexOf('ull',k)==k){Ekb(i,new kGd(d,null))}else{throw vbb(new hz(kte))}j=k+3;break}}if(j<l){BCb(j,b.length);if(b.charCodeAt(j)!=44){throw vbb(new hz('Expecting ,'))}}else{break}}return qid(a,i,c)} +function AKb(a,b){var c,d,e,f,g,h,i,j,k,l,m;j=BD(BD(Qc(a.r,b),21),84);g=bKb(a,b);c=a.u.Hc((rcd(),lcd));for(i=j.Kc();i.Ob();){h=BD(i.Pb(),111);if(!h.c||h.c.d.c.length<=0){continue}m=h.b.rf();k=h.c;l=k.i;l.b=(f=k.n,k.e.a+f.b+f.c);l.a=(e=k.n,k.e.b+e.d+e.a);switch(b.g){case 1:if(h.a){l.c=(m.a-l.b)/2;$Hb(k,(NHb(),KHb))}else if(g||c){l.c=-l.b-a.s;$Hb(k,(NHb(),MHb))}else{l.c=m.a+a.s;$Hb(k,(NHb(),LHb))}l.d=-l.a-a.t;_Hb(k,(EIb(),BIb));break;case 3:if(h.a){l.c=(m.a-l.b)/2;$Hb(k,(NHb(),KHb))}else if(g||c){l.c=-l.b-a.s;$Hb(k,(NHb(),MHb))}else{l.c=m.a+a.s;$Hb(k,(NHb(),LHb))}l.d=m.b+a.t;_Hb(k,(EIb(),DIb));break;case 2:if(h.a){d=a.v?l.a:BD(Ikb(k.d,0),181).rf().b;l.d=(m.b-d)/2;_Hb(k,(EIb(),CIb))}else if(g||c){l.d=-l.a-a.t;_Hb(k,(EIb(),BIb))}else{l.d=m.b+a.t;_Hb(k,(EIb(),DIb))}l.c=m.a+a.s;$Hb(k,(NHb(),LHb));break;case 4:if(h.a){d=a.v?l.a:BD(Ikb(k.d,0),181).rf().b;l.d=(m.b-d)/2;_Hb(k,(EIb(),CIb))}else if(g||c){l.d=-l.a-a.t;_Hb(k,(EIb(),BIb))}else{l.d=m.b+a.t;_Hb(k,(EIb(),DIb))}l.c=-l.b-a.s;$Hb(k,(NHb(),MHb));}g=false}} +function Kfe(a,b){wfe();var c,d,e,f,g,h,i,j,k,l,m,n,o;if(Vhb(Zee)==0){l=KC(lbb,nie,117,_ee.length,0,1);for(g=0;g<l.length;g++){l[g]=(++vfe,new $fe(4))}d=new Ifb;for(f=0;f<Yee.length;f++){k=(++vfe,new $fe(4));if(f<84){h=f*2;n=(BCb(h,wxe.length),wxe.charCodeAt(h));m=(BCb(h+1,wxe.length),wxe.charCodeAt(h+1));Ufe(k,n,m)}else{h=(f-84)*2;Ufe(k,afe[h],afe[h+1])}i=Yee[f];dfb(i,'Specials')&&Ufe(k,65520,65533);if(dfb(i,uxe)){Ufe(k,983040,1048573);Ufe(k,1048576,1114109)}Shb(Zee,i,k);Shb($ee,i,_fe(k));j=d.a.length;0<j?(d.a=d.a.substr(0,0)):0>j&&(d.a+=yfb(KC(TD,$ie,25,-j,15,1)));d.a+='Is';if(hfb(i,wfb(32))>=0){for(e=0;e<i.length;e++){BCb(e,i.length);i.charCodeAt(e)!=32&&Afb(d,(BCb(e,i.length),i.charCodeAt(e)))}}else{d.a+=''+i}Ofe(d.a,i,true)}Ofe(vxe,'Cn',false);Ofe(xxe,'Cn',true);c=(++vfe,new $fe(4));Ufe(c,0,lxe);Shb(Zee,'ALL',c);Shb($ee,'ALL',_fe(c));!bfe&&(bfe=new Lqb);Shb(bfe,vxe,vxe);!bfe&&(bfe=new Lqb);Shb(bfe,xxe,xxe);!bfe&&(bfe=new Lqb);Shb(bfe,'ALL','ALL')}o=b?BD(Phb(Zee,a),136):BD(Phb($ee,a),136);return o} +function c3b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;m=false;l=false;if(fcd(BD(vNb(d,(Nyc(),Vxc)),98))){g=false;h=false;t:for(o=new olb(d.j);o.a<o.c.c.length;){n=BD(mlb(o),11);for(q=ul(pl(OC(GC(KI,1),Uhe,20,0,[new J0b(n),new R0b(n)])));Qr(q);){p=BD(Rr(q),11);if(!Ccb(DD(vNb(p.i,pwc)))){if(n.j==(Ucd(),Acd)){g=true;break t}if(n.j==Rcd){h=true;break t}}}}m=h&&!g;l=g&&!h}if(!m&&!l&&d.b.c.length!=0){k=0;for(j=new olb(d.b);j.a<j.c.c.length;){i=BD(mlb(j),70);k+=i.n.b+i.o.b/2}k/=d.b.c.length;s=k>=d.o.b/2}else{s=!l}if(s){r=BD(vNb(d,(wtc(),vtc)),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else if(m){f=r}else{e=BD(vNb(d,tsc),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else{r.gc()<=e.gc()?(f=r):(f=e)}}}else{e=BD(vNb(d,(wtc(),tsc)),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else if(l){f=e}else{r=BD(vNb(d,vtc),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else{e.gc()<=r.gc()?(f=e):(f=r)}}}f.Fc(a);yNb(a,(wtc(),vsc),c);if(b.d==c){RZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null);d3b(c)}else{QZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null)}Osb(b.a)} +function aoc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;s=new Bib(a.b,0);k=b.Kc();o=0;j=BD(k.Pb(),19).a;v=0;c=new Tqb;A=new zsb;while(s.b<s.d.gc()){r=(sCb(s.b<s.d.gc()),BD(s.d.Xb(s.c=s.b++),29));for(u=new olb(r.a);u.a<u.c.c.length;){t=BD(mlb(u),10);for(n=new Sr(ur(U_b(t).a.Kc(),new Sq));Qr(n);){l=BD(Rr(n),17);A.a.zc(l,A)}for(m=new Sr(ur(R_b(t).a.Kc(),new Sq));Qr(m);){l=BD(Rr(m),17);A.a.Bc(l)!=null}}if(o+1==j){e=new H1b(a);Aib(s,e);f=new H1b(a);Aib(s,f);for(C=A.a.ec().Kc();C.Ob();){B=BD(C.Pb(),17);if(!c.a._b(B)){++v;c.a.zc(B,c)}g=new b0b(a);yNb(g,(Nyc(),Vxc),(dcd(),acd));$_b(g,e);__b(g,(j0b(),d0b));p=new H0b;F0b(p,g);G0b(p,(Ucd(),Tcd));D=new H0b;F0b(D,g);G0b(D,zcd);d=new b0b(a);yNb(d,Vxc,acd);$_b(d,f);__b(d,d0b);q=new H0b;F0b(q,d);G0b(q,Tcd);F=new H0b;F0b(F,d);G0b(F,zcd);w=new UZb;QZb(w,B.c);RZb(w,p);H=new UZb;QZb(H,D);RZb(H,q);QZb(B,F);h=new goc(g,d,w,H,B);yNb(g,(wtc(),usc),h);yNb(d,usc,h);G=w.c.i;if(G.k==d0b){i=BD(vNb(G,usc),305);i.d=h;h.g=i}}if(k.Ob()){j=BD(k.Pb(),19).a}else{break}}++o}return meb(v)} +function T1b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;l=0;for(e=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);if(!Ccb(DD(hkd(d,(Nyc(),Jxc))))){if((PD(hkd(b,ywc))!==PD((tAc(),rAc))||PD(hkd(b,Jwc))===PD((mqc(),lqc))||PD(hkd(b,Jwc))===PD((mqc(),jqc))||Ccb(DD(hkd(b,Awc)))||PD(hkd(b,twc))!==PD((RXb(),QXb)))&&!Ccb(DD(hkd(d,xwc)))){jkd(d,(wtc(),Zsc),meb(l));++l}$1b(a,d,c)}}l=0;for(j=new Fyd((!b.b&&(b.b=new cUd(B2,b,12,3)),b.b));j.e!=j.i.gc();){h=BD(Dyd(j),79);if(PD(hkd(b,(Nyc(),ywc)))!==PD((tAc(),rAc))||PD(hkd(b,Jwc))===PD((mqc(),lqc))||PD(hkd(b,Jwc))===PD((mqc(),jqc))||Ccb(DD(hkd(b,Awc)))||PD(hkd(b,twc))!==PD((RXb(),QXb))){jkd(h,(wtc(),Zsc),meb(l));++l}o=jtd(h);p=ltd(h);k=Ccb(DD(hkd(o,fxc)));n=!Ccb(DD(hkd(h,Jxc)));m=k&&Qld(h)&&Ccb(DD(hkd(h,gxc)));f=Xod(o)==b&&Xod(o)==Xod(p);g=(Xod(o)==b&&p==b)^(Xod(p)==b&&o==b);n&&!m&&(g||f)&&X1b(a,h,b,c)}if(Xod(b)){for(i=new Fyd(Wod(Xod(b)));i.e!=i.i.gc();){h=BD(Dyd(i),79);o=jtd(h);if(o==b&&Qld(h)){m=Ccb(DD(hkd(o,(Nyc(),fxc))))&&Ccb(DD(hkd(h,gxc)));m&&X1b(a,h,b,c)}}}} +function gDc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;Odd(c,'MinWidth layering',1);n=b.b;A=b.a;I=BD(vNb(b,(Nyc(),oxc)),19).a;h=BD(vNb(b,pxc),19).a;a.b=Edb(ED(vNb(b,lyc)));a.d=Pje;for(u=new olb(A);u.a<u.c.c.length;){s=BD(mlb(u),10);if(s.k!=(j0b(),h0b)){continue}D=s.o.b;a.d=$wnd.Math.min(a.d,D)}a.d=$wnd.Math.max(1,a.d);B=A.c.length;a.c=KC(WD,oje,25,B,15,1);a.f=KC(WD,oje,25,B,15,1);a.e=KC(UD,Vje,25,B,15,1);j=0;a.a=0;for(v=new olb(A);v.a<v.c.c.length;){s=BD(mlb(v),10);s.p=j++;a.c[s.p]=eDc(R_b(s));a.f[s.p]=eDc(U_b(s));a.e[s.p]=s.o.b/a.d;a.a+=a.e[s.p]}a.b/=a.d;a.a/=B;w=fDc(A);Okb(A,tmb(new mDc(a)));p=Pje;o=Ohe;g=null;H=I;G=I;f=h;e=h;if(I<0){H=BD(bDc.a.zd(),19).a;G=BD(bDc.b.zd(),19).a}if(h<0){f=BD(aDc.a.zd(),19).a;e=BD(aDc.b.zd(),19).a}for(F=H;F<=G;F++){for(d=f;d<=e;d++){C=dDc(a,F,d,A,w);r=Edb(ED(C.a));m=BD(C.b,15);q=m.gc();if(r<p||r==p&&q<o){p=r;o=q;g=m}}}for(l=g.Kc();l.Ob();){k=BD(l.Pb(),15);i=new H1b(b);for(t=k.Kc();t.Ob();){s=BD(t.Pb(),10);$_b(s,i)}n.c[n.c.length]=i}smb(n);A.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} +function I6b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;a.b=b;a.a=BD(vNb(b,(Nyc(),bxc)),19).a;a.c=BD(vNb(b,dxc),19).a;a.c==0&&(a.c=Ohe);q=new Bib(b.b,0);while(q.b<q.d.gc()){p=(sCb(q.b<q.d.gc()),BD(q.d.Xb(q.c=q.b++),29));h=new Rkb;k=-1;u=-1;for(t=new olb(p.a);t.a<t.c.c.length;){s=BD(mlb(t),10);if(sr((D6b(),new Sr(ur(O_b(s).a.Kc(),new Sq))))>=a.a){d=E6b(a,s);k=$wnd.Math.max(k,d.b);u=$wnd.Math.max(u,d.d);Ekb(h,new vgd(s,d))}}B=new Rkb;for(j=0;j<k;++j){Dkb(B,0,(sCb(q.b>0),q.a.Xb(q.c=--q.b),C=new H1b(a.b),Aib(q,C),sCb(q.b<q.d.gc()),q.d.Xb(q.c=q.b++),C))}for(g=new olb(h);g.a<g.c.c.length;){e=BD(mlb(g),46);n=BD(e.b,571).a;if(!n){continue}for(m=new olb(n);m.a<m.c.c.length;){l=BD(mlb(m),10);H6b(a,l,B6b,B)}}c=new Rkb;for(i=0;i<u;++i){Ekb(c,(D=new H1b(a.b),Aib(q,D),D))}for(f=new olb(h);f.a<f.c.c.length;){e=BD(mlb(f),46);A=BD(e.b,571).c;if(!A){continue}for(w=new olb(A);w.a<w.c.c.length;){v=BD(mlb(w),10);H6b(a,v,C6b,c)}}}r=new Bib(b.b,0);while(r.b<r.d.gc()){o=(sCb(r.b<r.d.gc()),BD(r.d.Xb(r.c=r.b++),29));o.a.c.length==0&&uib(r)}} +function uQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;Odd(c,'Spline edge routing',1);if(b.b.c.length==0){b.f.a=0;Qdd(c);return}s=Edb(ED(vNb(b,(Nyc(),wyc))));h=Edb(ED(vNb(b,pyc)));g=Edb(ED(vNb(b,myc)));r=BD(vNb(b,Xwc),336);B=r==(tBc(),sBc);A=Edb(ED(vNb(b,Ywc)));a.d=b;a.j.c=KC(SI,Uhe,1,0,5,1);a.a.c=KC(SI,Uhe,1,0,5,1);Uhb(a.k);i=BD(Ikb(b.b,0),29);k=Kq(i.a,(FNc(),DNc));o=BD(Ikb(b.b,b.b.c.length-1),29);l=Kq(o.a,DNc);p=new olb(b.b);q=null;G=0;do{t=p.a<p.c.c.length?BD(mlb(p),29):null;iQc(a,q,t);lQc(a);C=Vtb(uAb(PAb(JAb(new YAb(null,new Kub(a.i,16)),new LQc),new NQc)));F=0;u=G;m=!q||k&&q==i;n=!t||l&&t==o;if(C>0){j=0;!!q&&(j+=h);j+=(C-1)*g;!!t&&(j+=h);B&&!!t&&(j=$wnd.Math.max(j,jQc(t,g,s,A)));if(j<s&&!m&&!n){F=(s-j)/2;j=s}u+=j}else !m&&!n&&(u+=s);!!t&&h_b(t,u);for(w=new olb(a.i);w.a<w.c.c.length;){v=BD(mlb(w),128);v.a.c=G;v.a.b=u-G;v.F=F;v.p=!q}Gkb(a.a,a.i);G=u;!!t&&(G+=t.c.a);q=t;m=n}while(t);for(e=new olb(a.j);e.a<e.c.c.length;){d=BD(mlb(e),17);f=pQc(a,d);yNb(d,(wtc(),ptc),f);D=rQc(a,d);yNb(d,rtc,D)}b.f.a=G;a.d=null;Qdd(c)} +function Yxd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;p=a.i!=0;t=false;r=null;if(oid(a.e)){k=b.gc();if(k>0){m=k<100?null:new Ixd(k);j=new Aud(b);o=j.g;r=KC(WD,oje,25,k,15,1);d=0;u=new zud(k);for(e=0;e<a.i;++e){h=a.g[e];n=h;v:for(s=0;s<2;++s){for(i=k;--i>=0;){if(n!=null?pb(n,o[i]):PD(n)===PD(o[i])){if(r.length<=d){q=r;r=KC(WD,oje,25,2*r.length,15,1);$fb(q,0,r,0,d)}r[d++]=e;wtd(u,o[i]);break v}}n=n;if(PD(n)===PD(h)){break}}}j=u;o=u.g;k=d;if(d>r.length){q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}if(d>0){t=true;for(f=0;f<d;++f){n=o[f];m=k3d(a,BD(n,72),m)}for(g=d;--g>=0;){tud(a,r[g])}if(d!=k){for(e=k;--e>=d;){tud(j,e)}q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}b=j}}}else{b=Ctd(a,b);for(e=a.i;--e>=0;){if(b.Hc(a.g[e])){tud(a,e);t=true}}}if(t){if(r!=null){c=b.gc();l=c==1?FLd(a,4,b.Kc().Pb(),null,r[0],p):FLd(a,6,b,r,r[0],p);m=c<100?null:new Ixd(c);for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}if(!m){Uhd(a.e,l)}else{m.Ei(l);m.Fi()}}else{m=Vxd(b.gc());for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}!!m&&m.Fi()}return true}else{return false}} +function fYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c=new mYb(b);c.a||$Xb(b);j=ZXb(b);i=new Hp;q=new AYb;for(p=new olb(b.a);p.a<p.c.c.length;){o=BD(mlb(p),10);for(e=new Sr(ur(U_b(o).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(d.c.i.k==(j0b(),e0b)||d.d.i.k==e0b){k=eYb(a,d,j,q);Rc(i,cYb(k.d),k.a)}}}g=new Rkb;for(t=BD(vNb(c.c,(wtc(),Esc)),21).Kc();t.Ob();){s=BD(t.Pb(),61);n=q.c[s.g];m=q.b[s.g];h=q.a[s.g];f=null;r=null;switch(s.g){case 4:f=new J6c(a.d.a,n,j.b.a-a.d.a,m-n);r=new J6c(a.d.a,n,h,m-n);iYb(j,new f7c(f.c+f.b,f.d));iYb(j,new f7c(f.c+f.b,f.d+f.a));break;case 2:f=new J6c(j.a.a,n,a.c.a-j.a.a,m-n);r=new J6c(a.c.a-h,n,h,m-n);iYb(j,new f7c(f.c,f.d));iYb(j,new f7c(f.c,f.d+f.a));break;case 1:f=new J6c(n,a.d.b,m-n,j.b.b-a.d.b);r=new J6c(n,a.d.b,m-n,h);iYb(j,new f7c(f.c,f.d+f.a));iYb(j,new f7c(f.c+f.b,f.d+f.a));break;case 3:f=new J6c(n,j.a.b,m-n,a.c.b-j.a.b);r=new J6c(n,a.c.b-h,m-n,h);iYb(j,new f7c(f.c,f.d));iYb(j,new f7c(f.c+f.b,f.d));}if(f){l=new vYb;l.d=s;l.b=f;l.c=r;l.a=Dx(BD(Qc(i,cYb(s)),21));g.c[g.c.length]=l}}Gkb(c.b,g);c.d=BWb(JWb(j));return c} +function pMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(c.p[b.p]!=null){return}h=true;c.p[b.p]=0;g=b;p=c.o==(eMc(),cMc)?Qje:Pje;do{e=a.b.e[g.p];f=g.c.a.c.length;if(c.o==cMc&&e>0||c.o==dMc&&e<f-1){i=null;j=null;c.o==dMc?(i=BD(Ikb(g.c.a,e+1),10)):(i=BD(Ikb(g.c.a,e-1),10));j=c.g[i.p];pMc(a,j,c);p=a.e.bg(p,b,g);c.j[b.p]==b&&(c.j[b.p]=c.j[j.p]);if(c.j[b.p]==c.j[j.p]){o=jBc(a.d,g,i);if(c.o==dMc){d=Edb(c.p[b.p]);l=Edb(c.p[j.p])+Edb(c.d[i.p])-i.d.d-o-g.d.a-g.o.b-Edb(c.d[g.p]);if(h){h=false;c.p[b.p]=$wnd.Math.min(l,p)}else{c.p[b.p]=$wnd.Math.min(d,$wnd.Math.min(l,p))}}else{d=Edb(c.p[b.p]);l=Edb(c.p[j.p])+Edb(c.d[i.p])+i.o.b+i.d.a+o+g.d.d-Edb(c.d[g.p]);if(h){h=false;c.p[b.p]=$wnd.Math.max(l,p)}else{c.p[b.p]=$wnd.Math.max(d,$wnd.Math.max(l,p))}}}else{o=Edb(ED(vNb(a.a,(Nyc(),vyc))));n=nMc(a,c.j[b.p]);k=nMc(a,c.j[j.p]);if(c.o==dMc){m=Edb(c.p[b.p])+Edb(c.d[g.p])+g.o.b+g.d.a+o-(Edb(c.p[j.p])+Edb(c.d[i.p])-i.d.d);tMc(n,k,m)}else{m=Edb(c.p[b.p])+Edb(c.d[g.p])-g.d.d-Edb(c.p[j.p])-Edb(c.d[i.p])-i.o.b-i.d.a-o;tMc(n,k,m)}}}else{p=a.e.bg(p,b,g)}g=c.a[g.p]}while(g!=b);SMc(a.e,b)} +function _qd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;t=b;s=new Hp;u=new Hp;k=Ypd(t,Nte);d=new ord(a,c,s,u);qqd(d.a,d.b,d.c,d.d,k);i=(A=s.i,!A?(s.i=new zf(s,s.c)):A);for(C=i.Kc();C.Ob();){B=BD(C.Pb(),202);e=BD(Qc(s,B),21);for(p=e.Kc();p.Ob();){o=p.Pb();v=BD(oo(a.d,o),202);if(v){h=(!B.e&&(B.e=new y5d(A2,B,10,9)),B.e);wtd(h,v)}else{g=_pd(t,Vte);m=_te+o+aue+g;n=m+$te;throw vbb(new cqd(n))}}}j=(w=u.i,!w?(u.i=new zf(u,u.c)):w);for(F=j.Kc();F.Ob();){D=BD(F.Pb(),202);f=BD(Qc(u,D),21);for(r=f.Kc();r.Ob();){q=r.Pb();v=BD(oo(a.d,q),202);if(v){l=(!D.g&&(D.g=new y5d(A2,D,9,10)),D.g);wtd(l,v)}else{g=_pd(t,Vte);m=_te+q+aue+g;n=m+$te;throw vbb(new cqd(n))}}}!c.b&&(c.b=new y5d(z2,c,4,7));if(c.b.i!=0&&(!c.c&&(c.c=new y5d(z2,c,5,8)),c.c.i!=0)&&(!c.b&&(c.b=new y5d(z2,c,4,7)),c.b.i<=1&&(!c.c&&(c.c=new y5d(z2,c,5,8)),c.c.i<=1))&&(!c.a&&(c.a=new cUd(A2,c,6,6)),c.a).i==1){G=BD(qud((!c.a&&(c.a=new cUd(A2,c,6,6)),c.a),0),202);if(!dmd(G)&&!emd(G)){kmd(G,BD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),82));lmd(G,BD(qud((!c.c&&(c.c=new y5d(z2,c,5,8)),c.c),0),82))}}} +function qJc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;for(t=a.a,u=0,v=t.length;u<v;++u){s=t[u];j=Ohe;k=Ohe;for(o=new olb(s.e);o.a<o.c.c.length;){m=BD(mlb(o),10);g=!m.c?-1:Jkb(m.c.a,m,0);if(g>0){l=BD(Ikb(m.c.a,g-1),10);B=jBc(a.b,m,l);q=m.n.b-m.d.d-(l.n.b+l.o.b+l.d.a+B)}else{q=m.n.b-m.d.d}j=$wnd.Math.min(q,j);if(g<m.c.a.c.length-1){l=BD(Ikb(m.c.a,g+1),10);B=jBc(a.b,m,l);r=l.n.b-l.d.d-(m.n.b+m.o.b+m.d.a+B)}else{r=2*m.n.b}k=$wnd.Math.min(r,k)}i=Ohe;f=false;e=BD(Ikb(s.e,0),10);for(D=new olb(e.j);D.a<D.c.c.length;){C=BD(mlb(D),11);p=e.n.b+C.n.b+C.a.b;for(d=new olb(C.e);d.a<d.c.c.length;){c=BD(mlb(d),17);w=c.c;b=w.i.n.b+w.n.b+w.a.b-p;if($wnd.Math.abs(b)<$wnd.Math.abs(i)&&$wnd.Math.abs(b)<(b<0?j:k)){i=b;f=true}}}h=BD(Ikb(s.e,s.e.c.length-1),10);for(A=new olb(h.j);A.a<A.c.c.length;){w=BD(mlb(A),11);p=h.n.b+w.n.b+w.a.b;for(d=new olb(w.g);d.a<d.c.c.length;){c=BD(mlb(d),17);C=c.d;b=C.i.n.b+C.n.b+C.a.b-p;if($wnd.Math.abs(b)<$wnd.Math.abs(i)&&$wnd.Math.abs(b)<(b<0?j:k)){i=b;f=true}}}if(f&&i!=0){for(n=new olb(s.e);n.a<n.c.c.length;){m=BD(mlb(n),10);m.n.b+=i}}}} +function ync(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(Mhb(a.a,b)){if(Rqb(BD(Ohb(a.a,b),53),c)){return 1}}else{Rhb(a.a,b,new Tqb)}if(Mhb(a.a,c)){if(Rqb(BD(Ohb(a.a,c),53),b)){return -1}}else{Rhb(a.a,c,new Tqb)}if(Mhb(a.e,b)){if(Rqb(BD(Ohb(a.e,b),53),c)){return -1}}else{Rhb(a.e,b,new Tqb)}if(Mhb(a.e,c)){if(Rqb(BD(Ohb(a.a,c),53),b)){return 1}}else{Rhb(a.e,c,new Tqb)}if(a.c==(tAc(),sAc)||!wNb(b,(wtc(),Zsc))||!wNb(c,(wtc(),Zsc))){i=BD(Etb(Dtb(KAb(JAb(new YAb(null,new Kub(b.j,16)),new Hnc)),new Jnc)),11);k=BD(Etb(Dtb(KAb(JAb(new YAb(null,new Kub(c.j,16)),new Lnc)),new Nnc)),11);if(!!i&&!!k){h=i.i;j=k.i;if(!!h&&h==j){for(m=new olb(h.j);m.a<m.c.c.length;){l=BD(mlb(m),11);if(l==i){Anc(a,c,b);return -1}else if(l==k){Anc(a,b,c);return 1}}return beb(znc(a,b),znc(a,c))}for(o=a.d,p=0,q=o.length;p<q;++p){n=o[p];if(n==h){Anc(a,c,b);return -1}else if(n==j){Anc(a,b,c);return 1}}}if(!wNb(b,(wtc(),Zsc))||!wNb(c,Zsc)){e=znc(a,b);g=znc(a,c);e>g?Anc(a,b,c):Anc(a,c,b);return e<g?-1:e>g?1:0}}d=BD(vNb(b,(wtc(),Zsc)),19).a;f=BD(vNb(c,Zsc),19).a;d>f?Anc(a,b,c):Anc(a,c,b);return d<f?-1:d>f?1:0} +function u2c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;if(Ccb(DD(hkd(b,(Y9c(),d9c))))){return mmb(),mmb(),jmb}j=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i!=0;l=s2c(b);k=!l.dc();if(j||k){e=BD(hkd(b,F9c),149);if(!e){throw vbb(new y2c('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.'))}s=D3c(e,(Csd(),ysd));q2c(b);if(!j&&k&&!s){return mmb(),mmb(),jmb}i=new Rkb;if(PD(hkd(b,J8c))===PD((hbd(),ebd))&&(D3c(e,vsd)||D3c(e,usd))){n=p2c(a,b);o=new Psb;ye(o,(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));while(o.b!=0){m=BD(o.b==0?null:(sCb(o.b!=0),Nsb(o,o.a.a)),33);q2c(m);r=PD(hkd(m,J8c))===PD(gbd);if(r||ikd(m,o8c)&&!C3c(e,hkd(m,F9c))){h=u2c(a,m,c,d);Gkb(i,h);jkd(m,J8c,gbd);hfd(m)}else{ye(o,(!m.a&&(m.a=new cUd(E2,m,10,11)),m.a))}}}else{n=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(g=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));g.e!=g.i.gc();){f=BD(Dyd(g),33);h=u2c(a,f,c,d);Gkb(i,h);hfd(f)}}for(q=new olb(i);q.a<q.c.c.length;){p=BD(mlb(q),79);jkd(p,d9c,(Bcb(),true))}r2c(b,e,Udd(d,n));v2c(i);return k&&s?l:(mmb(),mmb(),jmb)}else{return mmb(),mmb(),jmb}} +function Z$b(a,b,c,d,e,f,g,h,i){var j,k,l,m,n,o,p;n=c;k=new b0b(i);__b(k,(j0b(),e0b));yNb(k,(wtc(),Isc),g);yNb(k,(Nyc(),Vxc),(dcd(),$bd));p=Edb(ED(a.We(Uxc)));yNb(k,Uxc,p);l=new H0b;F0b(l,k);if(!(b!=bcd&&b!=ccd)){d>=0?(n=Zcd(h)):(n=Wcd(Zcd(h)));a.Ye($xc,n)}j=new d7c;m=false;if(a.Xe(Txc)){a7c(j,BD(a.We(Txc),8));m=true}else{_6c(j,g.a/2,g.b/2)}switch(n.g){case 4:yNb(k,mxc,(Ctc(),ytc));yNb(k,Bsc,(Gqc(),Fqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),zcd));m||(j.a=g.a);j.a-=g.a;break;case 2:yNb(k,mxc,(Ctc(),Atc));yNb(k,Bsc,(Gqc(),Dqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),Tcd));m||(j.a=0);break;case 1:yNb(k,Osc,(esc(),dsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Rcd));m||(j.b=g.b);j.b-=g.b;break;case 3:yNb(k,Osc,(esc(),bsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Acd));m||(j.b=0);}a7c(l.n,j);yNb(k,Txc,j);if(b==Zbd||b==_bd||b==$bd){o=0;if(b==Zbd&&a.Xe(Wxc)){switch(n.g){case 1:case 2:o=BD(a.We(Wxc),19).a;break;case 3:case 4:o=-BD(a.We(Wxc),19).a;}}else{switch(n.g){case 4:case 2:o=f.b;b==_bd&&(o/=e.b);break;case 1:case 3:o=f.a;b==_bd&&(o/=e.a);}}yNb(k,htc,o)}yNb(k,Hsc,n);return k} +function AGc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;c=Edb(ED(vNb(a.a.j,(Nyc(),Ewc))));if(c<-1||!a.a.i||ecd(BD(vNb(a.a.o,Vxc),98))||V_b(a.a.o,(Ucd(),zcd)).gc()<2&&V_b(a.a.o,Tcd).gc()<2){return true}if(a.a.c.Rf()){return false}v=0;u=0;t=new Rkb;for(i=a.a.e,j=0,k=i.length;j<k;++j){h=i[j];for(m=h,n=0,p=m.length;n<p;++n){l=m[n];if(l.k==(j0b(),i0b)){t.c[t.c.length]=l;continue}d=a.b[l.c.p][l.p];if(l.k==e0b){d.b=1;BD(vNb(l,(wtc(),$sc)),11).j==(Ucd(),zcd)&&(u+=d.a)}else{C=V_b(l,(Ucd(),Tcd));C.dc()||!Lq(C,new NGc)?(d.c=1):(e=V_b(l,zcd),(e.dc()||!Lq(e,new JGc))&&(v+=d.a))}for(g=new Sr(ur(U_b(l).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);v+=d.c;u+=d.b;B=f.d.i;zGc(a,d,B)}r=pl(OC(GC(KI,1),Uhe,20,0,[V_b(l,(Ucd(),Acd)),V_b(l,Rcd)]));for(A=new Sr(new xl(r.a.length,r.a));Qr(A);){w=BD(Rr(A),11);s=BD(vNb(w,(wtc(),gtc)),10);if(s){v+=d.c;u+=d.b;zGc(a,d,s)}}}for(o=new olb(t);o.a<o.c.c.length;){l=BD(mlb(o),10);d=a.b[l.c.p][l.p];for(g=new Sr(ur(U_b(l).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);v+=d.c;u+=d.b;B=f.d.i;zGc(a,d,B)}}t.c=KC(SI,Uhe,1,0,5,1)}b=v+u;q=b==0?Pje:(v-u)/b;return q>=c} +function ovd(){mvd();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=pvd((mmb(),new lnb(new $ib(lvd.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=pvd((mmb(),new lnb(new $ib(lvd.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=pvd((mmb(),new lnb(new $ib(lvd.d))));f.postMessage({id:b.id,data:e});break;case 'register':svd(b.algorithms);f.postMessage({id:b.id});break;case 'layout':qvd(b.graph,b.layoutOptions||{},b.options||{});f.postMessage({id:b.id,data:b.graph});break;}};this.saveDispatch=function(b){try{g.dispatch(b)}catch(a){f.postMessage({id:b.data.id,error:a})}}} +function j(b){var c=this;this.dispatcher=new h({postMessage:function(a){c.onmessage({data:a})}});this.postMessage=function(a){setTimeout(function(){c.dispatcher.saveDispatch({data:a})},0)}} +if(typeof document===uke&&typeof self!==uke){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==uke&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}} +function aae(a){if(a.N)return;a.N=true;a.b=Lnd(a,0);Knd(a.b,0);Knd(a.b,1);Knd(a.b,2);a.bb=Lnd(a,1);Knd(a.bb,0);Knd(a.bb,1);a.fb=Lnd(a,2);Knd(a.fb,3);Knd(a.fb,4);Qnd(a.fb,5);a.qb=Lnd(a,3);Knd(a.qb,0);Qnd(a.qb,1);Qnd(a.qb,2);Knd(a.qb,3);Knd(a.qb,4);Qnd(a.qb,5);Knd(a.qb,6);a.a=Mnd(a,4);a.c=Mnd(a,5);a.d=Mnd(a,6);a.e=Mnd(a,7);a.f=Mnd(a,8);a.g=Mnd(a,9);a.i=Mnd(a,10);a.j=Mnd(a,11);a.k=Mnd(a,12);a.n=Mnd(a,13);a.o=Mnd(a,14);a.p=Mnd(a,15);a.q=Mnd(a,16);a.s=Mnd(a,17);a.r=Mnd(a,18);a.t=Mnd(a,19);a.u=Mnd(a,20);a.v=Mnd(a,21);a.w=Mnd(a,22);a.B=Mnd(a,23);a.A=Mnd(a,24);a.C=Mnd(a,25);a.D=Mnd(a,26);a.F=Mnd(a,27);a.G=Mnd(a,28);a.H=Mnd(a,29);a.J=Mnd(a,30);a.I=Mnd(a,31);a.K=Mnd(a,32);a.M=Mnd(a,33);a.L=Mnd(a,34);a.P=Mnd(a,35);a.Q=Mnd(a,36);a.R=Mnd(a,37);a.S=Mnd(a,38);a.T=Mnd(a,39);a.U=Mnd(a,40);a.V=Mnd(a,41);a.X=Mnd(a,42);a.W=Mnd(a,43);a.Y=Mnd(a,44);a.Z=Mnd(a,45);a.$=Mnd(a,46);a._=Mnd(a,47);a.ab=Mnd(a,48);a.cb=Mnd(a,49);a.db=Mnd(a,50);a.eb=Mnd(a,51);a.gb=Mnd(a,52);a.hb=Mnd(a,53);a.ib=Mnd(a,54);a.jb=Mnd(a,55);a.kb=Mnd(a,56);a.lb=Mnd(a,57);a.mb=Mnd(a,58);a.nb=Mnd(a,59);a.ob=Mnd(a,60);a.pb=Mnd(a,61)} +function f5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=0;if(b.f.a==0){for(q=new olb(a);q.a<q.c.c.length;){o=BD(mlb(q),10);s=$wnd.Math.max(s,o.n.a+o.o.a+o.d.c)}}else{s=b.f.a-b.c.a}s-=b.c.a;for(p=new olb(a);p.a<p.c.c.length;){o=BD(mlb(p),10);g5b(o.n,s-o.o.a);h5b(o.f);d5b(o);(!o.q?(mmb(),mmb(),kmb):o.q)._b((Nyc(),ayc))&&g5b(BD(vNb(o,ayc),8),s-o.o.a);switch(BD(vNb(o,mwc),248).g){case 1:yNb(o,mwc,(F7c(),D7c));break;case 2:yNb(o,mwc,(F7c(),C7c));}r=o.o;for(u=new olb(o.j);u.a<u.c.c.length;){t=BD(mlb(u),11);g5b(t.n,r.a-t.o.a);g5b(t.a,t.o.a);G0b(t,Z4b(t.j));g=BD(vNb(t,Wxc),19);!!g&&yNb(t,Wxc,meb(-g.a));for(f=new olb(t.g);f.a<f.c.c.length;){e=BD(mlb(f),17);for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);c.a=s-c.a}j=BD(vNb(e,jxc),74);if(j){for(i=Jsb(j,0);i.b!=i.d.c;){h=BD(Xsb(i),8);h.a=s-h.a}}for(m=new olb(e.b);m.a<m.c.c.length;){k=BD(mlb(m),70);g5b(k.n,s-k.o.a)}}for(n=new olb(t.f);n.a<n.c.c.length;){k=BD(mlb(n),70);g5b(k.n,t.o.a-k.o.a)}}if(o.k==(j0b(),e0b)){yNb(o,(wtc(),Hsc),Z4b(BD(vNb(o,Hsc),61)));c5b(o)}for(l=new olb(o.b);l.a<l.c.c.length;){k=BD(mlb(l),70);d5b(k);g5b(k.n,r.a-k.o.a)}}} +function i5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=0;if(b.f.b==0){for(q=new olb(a);q.a<q.c.c.length;){o=BD(mlb(q),10);s=$wnd.Math.max(s,o.n.b+o.o.b+o.d.a)}}else{s=b.f.b-b.c.b}s-=b.c.b;for(p=new olb(a);p.a<p.c.c.length;){o=BD(mlb(p),10);j5b(o.n,s-o.o.b);k5b(o.f);e5b(o);(!o.q?(mmb(),mmb(),kmb):o.q)._b((Nyc(),ayc))&&j5b(BD(vNb(o,ayc),8),s-o.o.b);switch(BD(vNb(o,mwc),248).g){case 3:yNb(o,mwc,(F7c(),A7c));break;case 4:yNb(o,mwc,(F7c(),E7c));}r=o.o;for(u=new olb(o.j);u.a<u.c.c.length;){t=BD(mlb(u),11);j5b(t.n,r.b-t.o.b);j5b(t.a,t.o.b);G0b(t,$4b(t.j));g=BD(vNb(t,Wxc),19);!!g&&yNb(t,Wxc,meb(-g.a));for(f=new olb(t.g);f.a<f.c.c.length;){e=BD(mlb(f),17);for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);c.b=s-c.b}j=BD(vNb(e,jxc),74);if(j){for(i=Jsb(j,0);i.b!=i.d.c;){h=BD(Xsb(i),8);h.b=s-h.b}}for(m=new olb(e.b);m.a<m.c.c.length;){k=BD(mlb(m),70);j5b(k.n,s-k.o.b)}}for(n=new olb(t.f);n.a<n.c.c.length;){k=BD(mlb(n),70);j5b(k.n,t.o.b-k.o.b)}}if(o.k==(j0b(),e0b)){yNb(o,(wtc(),Hsc),$4b(BD(vNb(o,Hsc),61)));b5b(o)}for(l=new olb(o.b);l.a<l.c.c.length;){k=BD(mlb(l),70);e5b(k);j5b(k.n,r.b-k.o.b)}}} +function tZc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n;l=false;j=a+1;k=(tCb(a,b.c.length),BD(b.c[a],200));g=k.a;h=null;for(f=0;f<k.a.c.length;f++){e=(tCb(f,g.c.length),BD(g.c[f],187));if(e.c){continue}if(e.b.c.length==0){Zfb();v$c(k,e);--f;l=true;continue}if(!e.k){!!h&&a$c(h);h=new b$c(!h?0:h.e+h.d+d,k.f,d);OZc(e,h.e+h.d,k.f);Ekb(k.d,h);WZc(h,e);e.k=true}i=null;i=(n=null,f<k.a.c.length-1?(n=BD(Ikb(k.a,f+1),187)):j<b.c.length&&(tCb(j,b.c.length),BD(b.c[j],200)).a.c.length!=0&&(n=BD(Ikb((tCb(j,b.c.length),BD(b.c[j],200)).a,0),187)),n);m=false;!!i&&(m=!pb(i.j,k));if(i){if(i.b.c.length==0){v$c(k,i);break}else{KZc(e,c-e.s);a$c(e.q);l=l|sZc(k,e,i,c,d)}if(i.b.c.length==0){v$c((tCb(j,b.c.length),BD(b.c[j],200)),i);i=null;while(b.c.length>j&&(tCb(j,b.c.length),BD(b.c[j],200)).a.c.length==0){Lkb(b,(tCb(j,b.c.length),b.c[j]))}}if(!i){--f;continue}if(uZc(b,k,e,i,m,c,j,d)){l=true;continue}if(m){if(vZc(b,k,e,i,c,j,d)){l=true;continue}else if(wZc(k,e)){e.c=true;l=true;continue}}else if(wZc(k,e)){e.c=true;l=true;continue}if(l){continue}}if(wZc(k,e)){e.c=true;l=true;!!i&&(i.k=false);continue}else{a$c(e.q)}}return l} +function fed(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;p=0;D=0;for(j=new olb(a.b);j.a<j.c.c.length;){i=BD(mlb(j),157);!!i.c&&zfd(i.c);p=$wnd.Math.max(p,red(i));D+=red(i)*qed(i)}q=D/a.b.c.length;C=_dd(a.b,q);D+=a.b.c.length*C;p=$wnd.Math.max(p,$wnd.Math.sqrt(D*g))+c.b;H=c.b;I=c.d;n=0;l=c.b+c.c;B=new Psb;Dsb(B,meb(0));w=new Psb;k=new Bib(a.b,0);o=null;h=new Rkb;while(k.b<k.d.gc()){i=(sCb(k.b<k.d.gc()),BD(k.d.Xb(k.c=k.b++),157));G=red(i);m=qed(i);if(H+G>p){if(f){Fsb(w,n);Fsb(B,meb(k.b-1));Ekb(a.d,o);h.c=KC(SI,Uhe,1,0,5,1)}H=c.b;I+=n+b;n=0;l=$wnd.Math.max(l,c.b+c.c+G)}h.c[h.c.length]=i;ued(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}Gkb(a.a,h);Ekb(a.d,BD(Ikb(h,h.c.length-1),157));l=$wnd.Math.max(l,d);F=I+n+c.a;if(F<e){n+=e-F;F=e}if(f){H=c.b;k=new Bib(a.b,0);Fsb(B,meb(a.b.c.length));A=Jsb(B,0);s=BD(Xsb(A),19).a;Fsb(w,n);v=Jsb(w,0);u=0;while(k.b<k.d.gc()){if(k.b==s){H=c.b;u=Edb(ED(Xsb(v)));s=BD(Xsb(A),19).a}i=(sCb(k.b<k.d.gc()),BD(k.d.Xb(k.c=k.b++),157));sed(i,u);if(k.b==s){r=l-H-c.c;t=red(i);ted(i,r);ved(i,(r-t)/2,0)}H+=red(i)+b}}return new f7c(l,F)} +function pde(a){var b,c,d,e,f;b=a.c;f=null;switch(b){case 6:return a.Vl();case 13:return a.Wl();case 23:return a.Nl();case 22:return a.Sl();case 18:return a.Pl();case 8:nde(a);f=(wfe(),efe);break;case 9:return a.vl(true);case 19:return a.wl();case 10:switch(a.a){case 100:case 68:case 119:case 87:case 115:case 83:f=a.ul(a.a);nde(a);return f;case 101:case 102:case 110:case 114:case 116:case 117:case 118:case 120:{c=a.tl();c<Tje?(f=(wfe(),wfe(),++vfe,new ige(0,c))):(f=Ffe(Tee(c)))}break;case 99:return a.Fl();case 67:return a.Al();case 105:return a.Il();case 73:return a.Bl();case 103:return a.Gl();case 88:return a.Cl();case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return a.xl();case 80:case 112:f=tde(a,a.a);if(!f)throw vbb(new mde(tvd((h0d(),Iue))));break;default:f=zfe(a.a);}nde(a);break;case 0:if(a.a==93||a.a==123||a.a==125)throw vbb(new mde(tvd((h0d(),Hue))));f=zfe(a.a);d=a.a;nde(a);if((d&64512)==Uje&&a.c==0&&(a.a&64512)==56320){e=KC(TD,$ie,25,2,15,1);e[0]=d&aje;e[1]=a.a&aje;f=Efe(Ffe(zfb(e,0,e.length)),0);nde(a)}break;default:throw vbb(new mde(tvd((h0d(),Hue))));}return f} +function e7b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=new Rkb;e=Ohe;f=Ohe;g=Ohe;if(c){e=a.f.a;for(p=new olb(b.j);p.a<p.c.c.length;){o=BD(mlb(p),11);for(i=new olb(o.g);i.a<i.c.c.length;){h=BD(mlb(i),17);if(h.a.b!=0){k=BD(Hsb(h.a),8);if(k.a<e){f=e-k.a;g=Ohe;d.c=KC(SI,Uhe,1,0,5,1);e=k.a}if(k.a<=e){d.c[d.c.length]=h;h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,1),8).b-k.b)))}}}}}else{for(p=new olb(b.j);p.a<p.c.c.length;){o=BD(mlb(p),11);for(i=new olb(o.e);i.a<i.c.c.length;){h=BD(mlb(i),17);if(h.a.b!=0){m=BD(Isb(h.a),8);if(m.a>e){f=m.a-e;g=Ohe;d.c=KC(SI,Uhe,1,0,5,1);e=m.a}if(m.a>=e){d.c[d.c.length]=h;h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,h.a.b-2),8).b-m.b)))}}}}}if(d.c.length!=0&&f>b.o.a/2&&g>b.o.b/2){n=new H0b;F0b(n,b);G0b(n,(Ucd(),Acd));n.n.a=b.o.a/2;r=new H0b;F0b(r,b);G0b(r,Rcd);r.n.a=b.o.a/2;r.n.b=b.o.b;for(i=new olb(d);i.a<i.c.c.length;){h=BD(mlb(i),17);if(c){j=BD(Lsb(h.a),8);q=h.a.b==0?A0b(h.d):BD(Hsb(h.a),8);q.b>=j.b?QZb(h,r):QZb(h,n)}else{j=BD(Msb(h.a),8);q=h.a.b==0?A0b(h.c):BD(Isb(h.a),8);q.b>=j.b?RZb(h,r):RZb(h,n)}l=BD(vNb(h,(Nyc(),jxc)),74);!!l&&ze(l,j,true)}b.n.a=e-b.o.a/2}} +function erd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K;D=null;G=b;F=Rqd(a,dtd(c),G);Lkd(F,_pd(G,Vte));H=BD(oo(a.g,Vpd(aC(G,Cte))),33);m=aC(G,'sourcePort');d=null;!!m&&(d=Vpd(m));I=BD(oo(a.j,d),118);if(!H){h=Wpd(G);o="An edge must have a source node (edge id: '"+h;p=o+$te;throw vbb(new cqd(p))}if(!!I&&!Hb(mpd(I),H)){i=_pd(G,Vte);q="The source port of an edge must be a port of the edge's source node (edge id: '"+i;r=q+$te;throw vbb(new cqd(r))}B=(!F.b&&(F.b=new y5d(z2,F,4,7)),F.b);f=null;I?(f=I):(f=H);wtd(B,f);J=BD(oo(a.g,Vpd(aC(G,bue))),33);n=aC(G,'targetPort');e=null;!!n&&(e=Vpd(n));K=BD(oo(a.j,e),118);if(!J){l=Wpd(G);s="An edge must have a target node (edge id: '"+l;t=s+$te;throw vbb(new cqd(t))}if(!!K&&!Hb(mpd(K),J)){j=_pd(G,Vte);u="The target port of an edge must be a port of the edge's target node (edge id: '"+j;v=u+$te;throw vbb(new cqd(v))}C=(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c);g=null;K?(g=K):(g=J);wtd(C,g);if((!F.b&&(F.b=new y5d(z2,F,4,7)),F.b).i==0||(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c).i==0){k=_pd(G,Vte);w=Zte+k;A=w+$te;throw vbb(new cqd(A))}grd(G,F);frd(G,F);D=crd(a,G,F);return D} +function DXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;l=FXb(zXb(a,(Ucd(),Fcd)),b);o=EXb(zXb(a,Gcd),b);u=EXb(zXb(a,Ocd),b);B=GXb(zXb(a,Qcd),b);m=GXb(zXb(a,Bcd),b);s=EXb(zXb(a,Ncd),b);p=EXb(zXb(a,Hcd),b);w=EXb(zXb(a,Pcd),b);v=EXb(zXb(a,Ccd),b);C=GXb(zXb(a,Ecd),b);r=EXb(zXb(a,Lcd),b);t=EXb(zXb(a,Kcd),b);A=EXb(zXb(a,Dcd),b);D=GXb(zXb(a,Mcd),b);n=GXb(zXb(a,Icd),b);q=EXb(zXb(a,Jcd),b);c=w6c(OC(GC(UD,1),Vje,25,15,[s.a,B.a,w.a,D.a]));d=w6c(OC(GC(UD,1),Vje,25,15,[o.a,l.a,u.a,q.a]));e=r.a;f=w6c(OC(GC(UD,1),Vje,25,15,[p.a,m.a,v.a,n.a]));j=w6c(OC(GC(UD,1),Vje,25,15,[s.b,o.b,p.b,t.b]));i=w6c(OC(GC(UD,1),Vje,25,15,[B.b,l.b,m.b,q.b]));k=C.b;h=w6c(OC(GC(UD,1),Vje,25,15,[w.b,u.b,v.b,A.b]));vXb(zXb(a,Fcd),c+e,j+k);vXb(zXb(a,Jcd),c+e,j+k);vXb(zXb(a,Gcd),c+e,0);vXb(zXb(a,Ocd),c+e,j+k+i);vXb(zXb(a,Qcd),0,j+k);vXb(zXb(a,Bcd),c+e+d,j+k);vXb(zXb(a,Hcd),c+e+d,0);vXb(zXb(a,Pcd),0,j+k+i);vXb(zXb(a,Ccd),c+e+d,j+k+i);vXb(zXb(a,Ecd),0,j);vXb(zXb(a,Lcd),c,0);vXb(zXb(a,Dcd),0,j+k+i);vXb(zXb(a,Icd),c+e+d,0);g=new d7c;g.a=w6c(OC(GC(UD,1),Vje,25,15,[c+d+e+f,C.a,t.a,A.a]));g.b=w6c(OC(GC(UD,1),Vje,25,15,[j+i+k+h,r.b,D.b,n.b]));return g} +function Ngc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;p=new Rkb;for(m=new olb(a.d.b);m.a<m.c.c.length;){l=BD(mlb(m),29);for(o=new olb(l.a);o.a<o.c.c.length;){n=BD(mlb(o),10);e=BD(Ohb(a.f,n),57);for(i=new Sr(ur(U_b(n).a.Kc(),new Sq));Qr(i);){g=BD(Rr(i),17);d=Jsb(g.a,0);j=true;k=null;if(d.b!=d.d.c){b=BD(Xsb(d),8);c=null;if(g.c.j==(Ucd(),Acd)){q=new hic(b,new f7c(b.a,e.d.d),e,g);q.f.a=true;q.a=g.c;p.c[p.c.length]=q}if(g.c.j==Rcd){q=new hic(b,new f7c(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.c;p.c[p.c.length]=q}while(d.b!=d.d.c){c=BD(Xsb(d),8);if(!ADb(b.b,c.b)){k=new hic(b,c,null,g);p.c[p.c.length]=k;if(j){j=false;if(c.b<e.d.d){k.f.a=true}else if(c.b>e.d.d+e.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}d.b!=d.d.c&&(b=c)}if(k){f=BD(Ohb(a.f,g.d.i),57);if(b.b<f.d.d){k.f.a=true}else if(b.b>f.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=new Sr(ur(R_b(n).a.Kc(),new Sq));Qr(h);){g=BD(Rr(h),17);if(g.a.b!=0){b=BD(Isb(g.a),8);if(g.d.j==(Ucd(),Acd)){q=new hic(b,new f7c(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;p.c[p.c.length]=q}if(g.d.j==Rcd){q=new hic(b,new f7c(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.d;p.c[p.c.length]=q}}}}}return p} +function WJc(a,b,c){var d,e,f,g,h,i,j,k,l;Odd(c,'Network simplex node placement',1);a.e=b;a.n=BD(vNb(b,(wtc(),otc)),304);VJc(a);HJc(a);MAb(LAb(new YAb(null,new Kub(a.e.b,16)),new KKc),new MKc(a));MAb(JAb(LAb(JAb(LAb(new YAb(null,new Kub(a.e.b,16)),new zLc),new BLc),new DLc),new FLc),new IKc(a));if(Ccb(DD(vNb(a.e,(Nyc(),Axc))))){g=Udd(c,1);Odd(g,'Straight Edges Pre-Processing',1);UJc(a);Qdd(g)}JFb(a.f);f=BD(vNb(b,Ayc),19).a*a.f.a.c.length;uGb(HGb(IGb(LGb(a.f),f),false),Udd(c,1));if(a.d.a.gc()!=0){g=Udd(c,1);Odd(g,'Flexible Where Space Processing',1);h=BD(Btb(RAb(NAb(new YAb(null,new Kub(a.f.a,16)),new OKc),new iKc)),19).a;i=BD(Btb(QAb(NAb(new YAb(null,new Kub(a.f.a,16)),new QKc),new mKc)),19).a;j=i-h;k=nGb(new pGb,a.f);l=nGb(new pGb,a.f);AFb(DFb(CFb(BFb(EFb(new FFb,20000),j),k),l));MAb(JAb(JAb(Plb(a.i),new SKc),new UKc),new WKc(h,k,j,l));for(e=a.d.a.ec().Kc();e.Ob();){d=BD(e.Pb(),213);d.g=1}uGb(HGb(IGb(LGb(a.f),f),false),Udd(g,1));Qdd(g)}if(Ccb(DD(vNb(b,Axc)))){g=Udd(c,1);Odd(g,'Straight Edges Post-Processing',1);TJc(a);Qdd(g)}GJc(a);a.e=null;a.f=null;a.i=null;a.c=null;Uhb(a.k);a.j=null;a.a=null;a.o=null;a.d.a.$b();Qdd(c)} +function lMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;for(h=new olb(a.a.b);h.a<h.c.c.length;){f=BD(mlb(h),29);for(t=new olb(f.a);t.a<t.c.c.length;){s=BD(mlb(t),10);b.g[s.p]=s;b.a[s.p]=s;b.d[s.p]=0}}i=a.a.b;b.c==(YLc(),WLc)&&(i=JD(i,152)?km(BD(i,152)):JD(i,131)?BD(i,131).a:JD(i,54)?new ov(i):new dv(i));for(g=i.Kc();g.Ob();){f=BD(g.Pb(),29);n=-1;m=f.a;if(b.o==(eMc(),dMc)){n=Ohe;m=JD(m,152)?km(BD(m,152)):JD(m,131)?BD(m,131).a:JD(m,54)?new ov(m):new dv(m)}for(v=m.Kc();v.Ob();){u=BD(v.Pb(),10);l=null;b.c==WLc?(l=BD(Ikb(a.b.f,u.p),15)):(l=BD(Ikb(a.b.b,u.p),15));if(l.gc()>0){d=l.gc();j=QD($wnd.Math.floor((d+1)/2))-1;e=QD($wnd.Math.ceil((d+1)/2))-1;if(b.o==dMc){for(k=e;k>=j;k--){if(b.a[u.p]==u){p=BD(l.Xb(k),46);o=BD(p.a,10);if(!Rqb(c,p.b)&&n>a.b.e[o.p]){b.a[o.p]=u;b.g[u.p]=b.g[o.p];b.a[u.p]=b.g[u.p];b.f[b.g[u.p].p]=(Bcb(),Ccb(b.f[b.g[u.p].p])&u.k==(j0b(),g0b)?true:false);n=a.b.e[o.p]}}}}else{for(k=j;k<=e;k++){if(b.a[u.p]==u){r=BD(l.Xb(k),46);q=BD(r.a,10);if(!Rqb(c,r.b)&&n<a.b.e[q.p]){b.a[q.p]=u;b.g[u.p]=b.g[q.p];b.a[u.p]=b.g[u.p];b.f[b.g[u.p].p]=(Bcb(),Ccb(b.f[b.g[u.p].p])&u.k==(j0b(),g0b)?true:false);n=a.b.e[q.p]}}}}}}}} +function Thd(){Thd=ccb;Hhd();Shd=Ghd.a;BD(qud(ZKd(Ghd.a),0),18);Mhd=Ghd.f;BD(qud(ZKd(Ghd.f),0),18);BD(qud(ZKd(Ghd.f),1),34);Rhd=Ghd.n;BD(qud(ZKd(Ghd.n),0),34);BD(qud(ZKd(Ghd.n),1),34);BD(qud(ZKd(Ghd.n),2),34);BD(qud(ZKd(Ghd.n),3),34);Nhd=Ghd.g;BD(qud(ZKd(Ghd.g),0),18);BD(qud(ZKd(Ghd.g),1),34);Jhd=Ghd.c;BD(qud(ZKd(Ghd.c),0),18);BD(qud(ZKd(Ghd.c),1),18);Ohd=Ghd.i;BD(qud(ZKd(Ghd.i),0),18);BD(qud(ZKd(Ghd.i),1),18);BD(qud(ZKd(Ghd.i),2),18);BD(qud(ZKd(Ghd.i),3),18);BD(qud(ZKd(Ghd.i),4),34);Phd=Ghd.j;BD(qud(ZKd(Ghd.j),0),18);Khd=Ghd.d;BD(qud(ZKd(Ghd.d),0),18);BD(qud(ZKd(Ghd.d),1),18);BD(qud(ZKd(Ghd.d),2),18);BD(qud(ZKd(Ghd.d),3),18);BD(qud(ZKd(Ghd.d),4),34);BD(qud(ZKd(Ghd.d),5),34);BD(qud(ZKd(Ghd.d),6),34);BD(qud(ZKd(Ghd.d),7),34);Ihd=Ghd.b;BD(qud(ZKd(Ghd.b),0),34);BD(qud(ZKd(Ghd.b),1),34);Lhd=Ghd.e;BD(qud(ZKd(Ghd.e),0),34);BD(qud(ZKd(Ghd.e),1),34);BD(qud(ZKd(Ghd.e),2),34);BD(qud(ZKd(Ghd.e),3),34);BD(qud(ZKd(Ghd.e),4),18);BD(qud(ZKd(Ghd.e),5),18);BD(qud(ZKd(Ghd.e),6),18);BD(qud(ZKd(Ghd.e),7),18);BD(qud(ZKd(Ghd.e),8),18);BD(qud(ZKd(Ghd.e),9),18);BD(qud(ZKd(Ghd.e),10),34);Qhd=Ghd.k;BD(qud(ZKd(Ghd.k),0),34);BD(qud(ZKd(Ghd.k),1),34)} +function wQc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;C=new Psb;w=new Psb;q=-1;for(i=new olb(a);i.a<i.c.c.length;){g=BD(mlb(i),128);g.s=q--;k=0;t=0;for(f=new olb(g.t);f.a<f.c.c.length;){d=BD(mlb(f),268);t+=d.c}for(e=new olb(g.i);e.a<e.c.c.length;){d=BD(mlb(e),268);k+=d.c}g.n=k;g.u=t;t==0?(Gsb(w,g,w.c.b,w.c),true):k==0&&(Gsb(C,g,C.c.b,C.c),true)}F=Gx(a);l=a.c.length;p=l+1;r=l-1;n=new Rkb;while(F.a.gc()!=0){while(w.b!=0){v=(sCb(w.b!=0),BD(Nsb(w,w.a.a),128));F.a.Bc(v)!=null;v.s=r--;AQc(v,C,w)}while(C.b!=0){A=(sCb(C.b!=0),BD(Nsb(C,C.a.a),128));F.a.Bc(A)!=null;A.s=p++;AQc(A,C,w)}o=Rie;for(j=F.a.ec().Kc();j.Ob();){g=BD(j.Pb(),128);s=g.u-g.n;if(s>=o){if(s>o){n.c=KC(SI,Uhe,1,0,5,1);o=s}n.c[n.c.length]=g}}if(n.c.length!=0){m=BD(Ikb(n,Bub(b,n.c.length)),128);F.a.Bc(m)!=null;m.s=p++;AQc(m,C,w);n.c=KC(SI,Uhe,1,0,5,1)}}u=a.c.length+1;for(h=new olb(a);h.a<h.c.c.length;){g=BD(mlb(h),128);g.s<l&&(g.s+=u)}for(B=new olb(a);B.a<B.c.c.length;){A=BD(mlb(B),128);c=new Bib(A.t,0);while(c.b<c.d.gc()){d=(sCb(c.b<c.d.gc()),BD(c.d.Xb(c.c=c.b++),268));D=d.b;if(A.s>D.s){uib(c);Lkb(D.i,d);if(d.c>0){d.a=D;Ekb(D.t,d);d.b=A;Ekb(A.i,d)}}}}} +function qde(a){var b,c,d,e,f;b=a.c;switch(b){case 11:return a.Ml();case 12:return a.Ol();case 14:return a.Ql();case 15:return a.Tl();case 16:return a.Rl();case 17:return a.Ul();case 21:nde(a);return wfe(),wfe(),ffe;case 10:switch(a.a){case 65:return a.yl();case 90:return a.Dl();case 122:return a.Kl();case 98:return a.El();case 66:return a.zl();case 60:return a.Jl();case 62:return a.Hl();}}f=pde(a);b=a.c;switch(b){case 3:return a.Zl(f);case 4:return a.Xl(f);case 5:return a.Yl(f);case 0:if(a.a==123&&a.d<a.j){e=a.d;d=0;c=-1;if((b=bfb(a.i,e++))>=48&&b<=57){d=b-48;while(e<a.j&&(b=bfb(a.i,e++))>=48&&b<=57){d=d*10+b-48;if(d<0)throw vbb(new mde(tvd((h0d(),bve))))}}else{throw vbb(new mde(tvd((h0d(),Zue))))}c=d;if(b==44){if(e>=a.j){throw vbb(new mde(tvd((h0d(),_ue))))}else if((b=bfb(a.i,e++))>=48&&b<=57){c=b-48;while(e<a.j&&(b=bfb(a.i,e++))>=48&&b<=57){c=c*10+b-48;if(c<0)throw vbb(new mde(tvd((h0d(),bve))))}if(d>c)throw vbb(new mde(tvd((h0d(),ave))))}else{c=-1}}if(b!=125)throw vbb(new mde(tvd((h0d(),$ue))));if(a.sl(e)){f=(wfe(),wfe(),++vfe,new lge(9,f));a.d=e+1}else{f=(wfe(),wfe(),++vfe,new lge(3,f));a.d=e}f.dm(d);f.cm(c);nde(a)}}return f} +function $bc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;p=new Skb(b.b);u=new Skb(b.b);m=new Skb(b.b);B=new Skb(b.b);q=new Skb(b.b);for(A=Jsb(b,0);A.b!=A.d.c;){v=BD(Xsb(A),11);for(h=new olb(v.g);h.a<h.c.c.length;){f=BD(mlb(h),17);if(f.c.i==f.d.i){if(v.j==f.d.j){B.c[B.c.length]=f;continue}else if(v.j==(Ucd(),Acd)&&f.d.j==Rcd){q.c[q.c.length]=f;continue}}}}for(i=new olb(q);i.a<i.c.c.length;){f=BD(mlb(i),17);_bc(a,f,c,d,(Ucd(),zcd))}for(g=new olb(B);g.a<g.c.c.length;){f=BD(mlb(g),17);C=new b0b(a);__b(C,(j0b(),i0b));yNb(C,(Nyc(),Vxc),(dcd(),$bd));yNb(C,(wtc(),$sc),f);D=new H0b;yNb(D,$sc,f.d);G0b(D,(Ucd(),Tcd));F0b(D,C);F=new H0b;yNb(F,$sc,f.c);G0b(F,zcd);F0b(F,C);yNb(f.c,gtc,C);yNb(f.d,gtc,C);QZb(f,null);RZb(f,null);c.c[c.c.length]=C;yNb(C,ysc,meb(2))}for(w=Jsb(b,0);w.b!=w.d.c;){v=BD(Xsb(w),11);j=v.e.c.length>0;r=v.g.c.length>0;j&&r?(m.c[m.c.length]=v,true):j?(p.c[p.c.length]=v,true):r&&(u.c[u.c.length]=v,true)}for(o=new olb(p);o.a<o.c.c.length;){n=BD(mlb(o),11);Ekb(e,Zbc(a,n,null,c))}for(t=new olb(u);t.a<t.c.c.length;){s=BD(mlb(t),11);Ekb(e,Zbc(a,null,s,c))}for(l=new olb(m);l.a<l.c.c.length;){k=BD(mlb(l),11);Ekb(e,Zbc(a,k,k,c))}} +function NCb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;s=new f7c(Pje,Pje);b=new f7c(Qje,Qje);for(B=new olb(a);B.a<B.c.c.length;){A=BD(mlb(B),8);s.a=$wnd.Math.min(s.a,A.a);s.b=$wnd.Math.min(s.b,A.b);b.a=$wnd.Math.max(b.a,A.a);b.b=$wnd.Math.max(b.b,A.b)}m=new f7c(b.a-s.a,b.b-s.b);j=new f7c(s.a-50,s.b-m.a-50);k=new f7c(s.a-50,b.b+m.a+50);l=new f7c(b.a+m.b/2+50,s.b+m.b/2);n=new eDb(j,k,l);w=new Tqb;f=new Rkb;c=new Rkb;w.a.zc(n,w);for(D=new olb(a);D.a<D.c.c.length;){C=BD(mlb(D),8);f.c=KC(SI,Uhe,1,0,5,1);for(v=w.a.ec().Kc();v.Ob();){t=BD(v.Pb(),308);d=t.d;S6c(d,t.a);Jy(S6c(t.d,C),S6c(t.d,t.a))<0&&(f.c[f.c.length]=t,true)}c.c=KC(SI,Uhe,1,0,5,1);for(u=new olb(f);u.a<u.c.c.length;){t=BD(mlb(u),308);for(q=new olb(t.e);q.a<q.c.c.length;){o=BD(mlb(q),168);g=true;for(i=new olb(f);i.a<i.c.c.length;){h=BD(mlb(i),308);h!=t&&(wtb(o,Ikb(h.e,0))||wtb(o,Ikb(h.e,1))||wtb(o,Ikb(h.e,2)))&&(g=false)}g&&(c.c[c.c.length]=o,true)}}Ve(w,f);reb(w,new OCb);for(p=new olb(c);p.a<p.c.c.length;){o=BD(mlb(p),168);Qqb(w,new eDb(C,o.a,o.b))}}r=new Tqb;reb(w,new QCb(r));e=r.a.ec().Kc();while(e.Ob()){o=BD(e.Pb(),168);(dDb(n,o.a)||dDb(n,o.b))&&e.Qb()}reb(r,new SCb);return r} +function _Tb(a){var b,c,d,e,f;c=BD(vNb(a,(wtc(),Ksc)),21);b=k3c(WTb);e=BD(vNb(a,(Nyc(),axc)),334);e==(hbd(),ebd)&&d3c(b,XTb);Ccb(DD(vNb(a,$wc)))?e3c(b,(qUb(),lUb),(S8b(),I8b)):e3c(b,(qUb(),nUb),(S8b(),I8b));vNb(a,(g6c(),f6c))!=null&&d3c(b,YTb);(Ccb(DD(vNb(a,hxc)))||Ccb(DD(vNb(a,_wc))))&&c3c(b,(qUb(),pUb),(S8b(),W7b));switch(BD(vNb(a,Lwc),103).g){case 2:case 3:case 4:c3c(e3c(b,(qUb(),lUb),(S8b(),Y7b)),pUb,X7b);}c.Hc((Orc(),Frc))&&c3c(e3c(e3c(b,(qUb(),lUb),(S8b(),V7b)),oUb,T7b),pUb,U7b);PD(vNb(a,rxc))!==PD((kAc(),iAc))&&e3c(b,(qUb(),nUb),(S8b(),A8b));if(c.Hc(Mrc)){e3c(b,(qUb(),lUb),(S8b(),G8b));e3c(b,mUb,E8b);e3c(b,nUb,F8b)}PD(vNb(a,swc))!==PD((yrc(),wrc))&&PD(vNb(a,Swc))!==PD((Aad(),xad))&&c3c(b,(qUb(),pUb),(S8b(),j8b));Ccb(DD(vNb(a,cxc)))&&e3c(b,(qUb(),nUb),(S8b(),i8b));Ccb(DD(vNb(a,Hwc)))&&e3c(b,(qUb(),nUb),(S8b(),O8b));if(cUb(a)){PD(vNb(a,axc))===PD(ebd)?(d=BD(vNb(a,Cwc),292)):(d=BD(vNb(a,Dwc),292));f=d==(Xrc(),Vrc)?(S8b(),D8b):(S8b(),R8b);e3c(b,(qUb(),oUb),f)}switch(BD(vNb(a,Kyc),377).g){case 1:e3c(b,(qUb(),oUb),(S8b(),P8b));break;case 2:c3c(e3c(e3c(b,(qUb(),nUb),(S8b(),P7b)),oUb,Q7b),pUb,R7b);}PD(vNb(a,ywc))!==PD((tAc(),rAc))&&e3c(b,(qUb(),nUb),(S8b(),Q8b));return b} +function mZc(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Kre),'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 pZc)));p4c(a,Kre,_le,1.3);p4c(a,Kre,Jre,Ksd(VYc));p4c(a,Kre,ame,gZc);p4c(a,Kre,wme,15);p4c(a,Kre,lqe,Ksd(SYc));p4c(a,Kre,Fme,Ksd(_Yc));p4c(a,Kre,Tme,Ksd(aZc));p4c(a,Kre,Eme,Ksd(bZc));p4c(a,Kre,Gme,Ksd($Yc));p4c(a,Kre,Dme,Ksd(cZc));p4c(a,Kre,Hme,Ksd(hZc));p4c(a,Kre,Bre,Ksd(eZc));p4c(a,Kre,Cre,Ksd(ZYc));p4c(a,Kre,Fre,Ksd(dZc));p4c(a,Kre,Gre,Ksd(iZc));p4c(a,Kre,Hre,Ksd(WYc));p4c(a,Kre,Ame,Ksd(XYc));p4c(a,Kre,xqe,Ksd(YYc));p4c(a,Kre,Ere,Ksd(UYc));p4c(a,Kre,Dre,Ksd(TYc));p4c(a,Kre,Ire,Ksd(kZc))} +function Wmd(b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r;if(d==null){return null}if(b.a!=c.Aj()){throw vbb(new Wdb(tte+c.ne()+ute))}if(JD(c,457)){r=_Pd(BD(c,671),d);if(!r){throw vbb(new Wdb(vte+d+"' is not a valid enumerator of '"+c.ne()+"'"))}return r}switch(o1d((O6d(),M6d),c).cl()){case 2:{d=Qge(d,false);break}case 3:{d=Qge(d,true);break}}e=o1d(M6d,c).$k();if(e){return e.Aj().Nh().Kh(e,d)}n=o1d(M6d,c).al();if(n){r=new Rkb;for(k=Zmd(d),l=0,m=k.length;l<m;++l){j=k[l];Ekb(r,n.Aj().Nh().Kh(n,j))}return r}q=o1d(M6d,c).bl();if(!q.dc()){for(p=q.Kc();p.Ob();){o=BD(p.Pb(),148);try{r=o.Aj().Nh().Kh(o,d);if(r!=null){return r}}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}throw vbb(new Wdb(vte+d+"' does not match any member types of the union datatype '"+c.ne()+"'"))}BD(c,834).Fj();f=r6d(c.Bj());if(!f)return null;if(f==yI){h=0;try{h=Icb(d,Rie,Ohe)&aje}catch(a){a=ubb(a);if(JD(a,127)){g=rfb(d);h=g[0]}else throw vbb(a)}return bdb(h)}if(f==$J){for(i=0;i<Pmd.length;++i){try{return DQd(Pmd[i],d)}catch(a){a=ubb(a);if(!JD(a,32))throw vbb(a)}}throw vbb(new Wdb(vte+d+"' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof"))}throw vbb(new Wdb(vte+d+"' is invalid. "))} +function ngb(a,b){var c,d,e,f,g,h,i,j;c=0;g=0;f=b.length;h=null;j=new Vfb;if(g<f&&(BCb(g,b.length),b.charCodeAt(g)==43)){++g;++c;if(g<f&&(BCb(g,b.length),b.charCodeAt(g)==43||(BCb(g,b.length),b.charCodeAt(g)==45))){throw vbb(new Oeb(Oje+b+'"'))}}while(g<f&&(BCb(g,b.length),b.charCodeAt(g)!=46)&&(BCb(g,b.length),b.charCodeAt(g)!=101)&&(BCb(g,b.length),b.charCodeAt(g)!=69)){++g}j.a+=''+qfb(b==null?Xhe:(uCb(b),b),c,g);if(g<f&&(BCb(g,b.length),b.charCodeAt(g)==46)){++g;c=g;while(g<f&&(BCb(g,b.length),b.charCodeAt(g)!=101)&&(BCb(g,b.length),b.charCodeAt(g)!=69)){++g}a.e=g-c;j.a+=''+qfb(b==null?Xhe:(uCb(b),b),c,g)}else{a.e=0}if(g<f&&(BCb(g,b.length),b.charCodeAt(g)==101||(BCb(g,b.length),b.charCodeAt(g)==69))){++g;c=g;if(g<f&&(BCb(g,b.length),b.charCodeAt(g)==43)){++g;g<f&&(BCb(g,b.length),b.charCodeAt(g)!=45)&&++c}h=b.substr(c,f-c);a.e=a.e-Icb(h,Rie,Ohe);if(a.e!=QD(a.e)){throw vbb(new Oeb('Scale out of range.'))}}i=j.a;if(i.length<16){a.f=(kgb==null&&(kgb=new RegExp('^[+-]?\\d*$','i')),kgb.test(i)?parseInt(i,10):NaN);if(isNaN(a.f)){throw vbb(new Oeb(Oje+b+'"'))}a.a=ugb(a.f)}else{ogb(a,new Ygb(i))}a.d=j.a.length;for(e=0;e<j.a.length;++e){d=bfb(j.a,e);if(d!=45&&d!=48){break}--a.d}a.d==0&&(a.d=1)} +function xXb(){xXb=ccb;wXb=new Hp;Rc(wXb,(Ucd(),Fcd),Jcd);Rc(wXb,Qcd,Jcd);Rc(wXb,Qcd,Mcd);Rc(wXb,Bcd,Icd);Rc(wXb,Bcd,Jcd);Rc(wXb,Gcd,Jcd);Rc(wXb,Gcd,Kcd);Rc(wXb,Ocd,Dcd);Rc(wXb,Ocd,Jcd);Rc(wXb,Lcd,Ecd);Rc(wXb,Lcd,Jcd);Rc(wXb,Lcd,Kcd);Rc(wXb,Lcd,Dcd);Rc(wXb,Ecd,Lcd);Rc(wXb,Ecd,Mcd);Rc(wXb,Ecd,Icd);Rc(wXb,Ecd,Jcd);Rc(wXb,Ncd,Ncd);Rc(wXb,Ncd,Kcd);Rc(wXb,Ncd,Mcd);Rc(wXb,Hcd,Hcd);Rc(wXb,Hcd,Kcd);Rc(wXb,Hcd,Icd);Rc(wXb,Pcd,Pcd);Rc(wXb,Pcd,Dcd);Rc(wXb,Pcd,Mcd);Rc(wXb,Ccd,Ccd);Rc(wXb,Ccd,Dcd);Rc(wXb,Ccd,Icd);Rc(wXb,Kcd,Gcd);Rc(wXb,Kcd,Lcd);Rc(wXb,Kcd,Ncd);Rc(wXb,Kcd,Hcd);Rc(wXb,Kcd,Jcd);Rc(wXb,Kcd,Kcd);Rc(wXb,Kcd,Mcd);Rc(wXb,Kcd,Icd);Rc(wXb,Dcd,Ocd);Rc(wXb,Dcd,Lcd);Rc(wXb,Dcd,Pcd);Rc(wXb,Dcd,Ccd);Rc(wXb,Dcd,Dcd);Rc(wXb,Dcd,Mcd);Rc(wXb,Dcd,Icd);Rc(wXb,Dcd,Jcd);Rc(wXb,Mcd,Qcd);Rc(wXb,Mcd,Ecd);Rc(wXb,Mcd,Ncd);Rc(wXb,Mcd,Pcd);Rc(wXb,Mcd,Kcd);Rc(wXb,Mcd,Dcd);Rc(wXb,Mcd,Mcd);Rc(wXb,Mcd,Jcd);Rc(wXb,Icd,Bcd);Rc(wXb,Icd,Ecd);Rc(wXb,Icd,Hcd);Rc(wXb,Icd,Ccd);Rc(wXb,Icd,Kcd);Rc(wXb,Icd,Dcd);Rc(wXb,Icd,Icd);Rc(wXb,Icd,Jcd);Rc(wXb,Jcd,Fcd);Rc(wXb,Jcd,Qcd);Rc(wXb,Jcd,Bcd);Rc(wXb,Jcd,Gcd);Rc(wXb,Jcd,Ocd);Rc(wXb,Jcd,Lcd);Rc(wXb,Jcd,Ecd);Rc(wXb,Jcd,Kcd);Rc(wXb,Jcd,Dcd);Rc(wXb,Jcd,Mcd);Rc(wXb,Jcd,Icd);Rc(wXb,Jcd,Jcd)} +function YXb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;a.d=new f7c(Pje,Pje);a.c=new f7c(Qje,Qje);for(m=b.Kc();m.Ob();){k=BD(m.Pb(),37);for(t=new olb(k.a);t.a<t.c.c.length;){s=BD(mlb(t),10);a.d.a=$wnd.Math.min(a.d.a,s.n.a-s.d.b);a.d.b=$wnd.Math.min(a.d.b,s.n.b-s.d.d);a.c.a=$wnd.Math.max(a.c.a,s.n.a+s.o.a+s.d.c);a.c.b=$wnd.Math.max(a.c.b,s.n.b+s.o.b+s.d.a)}}h=new nYb;for(l=b.Kc();l.Ob();){k=BD(l.Pb(),37);d=fYb(a,k);Ekb(h.a,d);d.a=d.a|!BD(vNb(d.c,(wtc(),Esc)),21).dc()}a.b=(LUb(),B=new VUb,B.f=new CUb(c),B.b=BUb(B.f,h),B);PUb((o=a.b,new Zdd,o));a.e=new d7c;a.a=a.b.f.e;for(g=new olb(h.a);g.a<g.c.c.length;){e=BD(mlb(g),841);u=QUb(a.b,e);g_b(e.c,u.a,u.b);for(q=new olb(e.c.a);q.a<q.c.c.length;){p=BD(mlb(q),10);if(p.k==(j0b(),e0b)){r=aYb(a,p.n,BD(vNb(p,(wtc(),Hsc)),61));P6c(X6c(p.n),r)}}}for(f=new olb(h.a);f.a<f.c.c.length;){e=BD(mlb(f),841);for(j=new olb(lYb(e));j.a<j.c.c.length;){i=BD(mlb(j),17);A=new t7c(i.a);St(A,0,A0b(i.c));Dsb(A,A0b(i.d));n=null;for(w=Jsb(A,0);w.b!=w.d.c;){v=BD(Xsb(w),8);if(!n){n=v;continue}if(Ky(n.a,v.a)){a.e.a=$wnd.Math.min(a.e.a,n.a);a.a.a=$wnd.Math.max(a.a.a,n.a)}else if(Ky(n.b,v.b)){a.e.b=$wnd.Math.min(a.e.b,n.b);a.a.b=$wnd.Math.max(a.a.b,n.b)}n=v}}}V6c(a.e);P6c(a.a,a.e)} +function wZd(a){Bnd(a.b,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'ConsistentTransient']));Bnd(a.a,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'WellFormedSourceURI']));Bnd(a.o,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures']));Bnd(a.p,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'WellFormedInstanceTypeName UniqueTypeParameterNames']));Bnd(a.v,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'UniqueEnumeratorNames UniqueEnumeratorLiterals']));Bnd(a.R,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'WellFormedName']));Bnd(a.T,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid']));Bnd(a.U,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs']));Bnd(a.W,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer']));Bnd(a.bb,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'ValidDefaultValueLiteral']));Bnd(a.eb,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'ValidLowerBound ValidUpperBound ConsistentBounds ValidType']));Bnd(a.H,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'ConsistentType ConsistentBounds ConsistentArguments']))} +function B4b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;if(b.dc()){return}e=new s7c;h=c?c:BD(b.Xb(0),17);o=h.c;hQc();m=o.i.k;if(!(m==(j0b(),h0b)||m==i0b||m==e0b||m==d0b)){throw vbb(new Wdb('The target node of the edge must be a normal node or a northSouthPort.'))}Fsb(e,l7c(OC(GC(m1,1),nie,8,0,[o.i.n,o.n,o.a])));if((Ucd(),Lcd).Hc(o.j)){q=Edb(ED(vNb(o,(wtc(),qtc))));l=new f7c(l7c(OC(GC(m1,1),nie,8,0,[o.i.n,o.n,o.a])).a,q);Gsb(e,l,e.c.b,e.c)}k=null;d=false;i=b.Kc();while(i.Ob()){g=BD(i.Pb(),17);f=g.a;if(f.b!=0){if(d){j=Y6c(P6c(k,(sCb(f.b!=0),BD(f.a.a.c,8))),0.5);Gsb(e,j,e.c.b,e.c);d=false}else{d=true}k=R6c((sCb(f.b!=0),BD(f.c.b.c,8)));ye(e,f);Osb(f)}}p=h.d;if(Lcd.Hc(p.j)){q=Edb(ED(vNb(p,(wtc(),qtc))));l=new f7c(l7c(OC(GC(m1,1),nie,8,0,[p.i.n,p.n,p.a])).a,q);Gsb(e,l,e.c.b,e.c)}Fsb(e,l7c(OC(GC(m1,1),nie,8,0,[p.i.n,p.n,p.a])));a.d==(tBc(),qBc)&&(r=(sCb(e.b!=0),BD(e.a.a.c,8)),s=BD(Ut(e,1),8),t=new e7c(bRc(o.j)),t.a*=5,t.b*=5,u=c7c(new f7c(s.a,s.b),r),v=new f7c(A4b(t.a,u.a),A4b(t.b,u.b)),P6c(v,r),w=Jsb(e,1),Vsb(w,v),A=(sCb(e.b!=0),BD(e.c.b.c,8)),B=BD(Ut(e,e.b-2),8),t=new e7c(bRc(p.j)),t.a*=5,t.b*=5,u=c7c(new f7c(B.a,B.b),A),C=new f7c(A4b(t.a,u.a),A4b(t.b,u.b)),P6c(C,A),St(e,e.b-1,C),undefined);n=new YPc(e);ye(h.a,UPc(n))} +function Kgd(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P;t=BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82);v=t.Dg();w=t.Eg();u=t.Cg()/2;p=t.Bg()/2;if(JD(t,186)){s=BD(t,118);v+=mpd(s).i;v+=mpd(s).i}v+=u;w+=p;F=BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82);H=F.Dg();I=F.Eg();G=F.Cg()/2;A=F.Bg()/2;if(JD(F,186)){D=BD(F,118);H+=mpd(D).i;H+=mpd(D).i}H+=G;I+=A;if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i==0){h=(Fhd(),j=new rmd,j);wtd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),h)}else if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i>1){o=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(o.e!=o.i.gc()){Eyd(o)}}g=BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202);q=H;H>v+u?(q=v+u):H<v-u&&(q=v-u);r=I;I>w+p?(r=w+p):I<w-p&&(r=w-p);q>v-u&&q<v+u&&r>w-p&&r<w+p&&(q=v+u);omd(g,q);pmd(g,r);B=v;v>H+G?(B=H+G):v<H-G&&(B=H-G);C=w;w>I+A?(C=I+A):w<I-A&&(C=I-A);B>H-G&&B<H+G&&C>I-A&&C<I+A&&(C=I+A);hmd(g,B);imd(g,C);Uxd((!g.a&&(g.a=new xMd(y2,g,5)),g.a));f=Bub(b,5);t==F&&++f;L=B-q;O=C-r;J=$wnd.Math.sqrt(L*L+O*O);l=J*0.20000000298023224;M=L/(f+1);P=O/(f+1);K=q;N=r;for(k=0;k<f;k++){K+=M;N+=P;m=K+Cub(b,24)*lke*l-l/2;m<0?(m=1):m>c&&(m=c-1);n=N+Cub(b,24)*lke*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(Fhd(),i=new xkd,i);vkd(e,m);wkd(e,n);wtd((!g.a&&(g.a=new xMd(y2,g,5)),g.a),e)}} +function Nyc(){Nyc=ccb;iyc=(Y9c(),I9c);jyc=J9c;kyc=K9c;lyc=L9c;nyc=M9c;oyc=N9c;ryc=P9c;tyc=R9c;uyc=S9c;syc=Q9c;vyc=T9c;xyc=U9c;zyc=X9c;qyc=O9c;hyc=(jwc(),Bvc);myc=Cvc;pyc=Dvc;wyc=Evc;byc=new Osd(D9c,meb(0));cyc=yvc;dyc=zvc;eyc=Avc;Kyc=awc;Cyc=Hvc;Dyc=Kvc;Gyc=Svc;Eyc=Nvc;Fyc=Pvc;Myc=fwc;Lyc=cwc;Iyc=Yvc;Hyc=Wvc;Jyc=$vc;Cxc=pvc;Dxc=qvc;Xwc=Auc;Ywc=Duc;Lxc=new q0b(12);Kxc=new Osd(f9c,Lxc);Twc=(Aad(),wad);Swc=new Osd(E8c,Twc);Uxc=new Osd(s9c,0);fyc=new Osd(E9c,meb(1));owc=new Osd(r8c,tme);Jxc=d9c;Vxc=t9c;$xc=A9c;Kwc=y8c;mwc=p8c;axc=J8c;gyc=new Osd(H9c,(Bcb(),true));fxc=M8c;gxc=N8c;Fxc=Y8c;Ixc=b9c;Gxc=$8c;Nwc=(ead(),cad);Lwc=new Osd(z8c,Nwc);xxc=W8c;wxc=U8c;Yxc=x9c;Xxc=w9c;Zxc=z9c;Oxc=(Tbd(),Sbd);new Osd(l9c,Oxc);Qxc=o9c;Rxc=p9c;Sxc=q9c;Pxc=n9c;Byc=Gvc;sxc=avc;rxc=$uc;Ayc=Fvc;mxc=Suc;Jwc=muc;Iwc=kuc;Awc=Xtc;Bwc=Ytc;Dwc=buc;Cwc=Ztc;Hwc=iuc;uxc=cvc;vxc=dvc;ixc=Luc;Exc=uvc;zxc=hvc;$wc=Guc;Bxc=nvc;Vwc=wuc;Wwc=yuc;zwc=w8c;yxc=evc;swc=Mtc;rwc=Ktc;qwc=Jtc;cxc=Juc;bxc=Iuc;dxc=Kuc;Hxc=_8c;jxc=Q8c;Zwc=G8c;Qwc=C8c;Pwc=B8c;Ewc=euc;Wxc=v9c;pwc=v8c;exc=L8c;Txc=r9c;Mxc=h9c;Nxc=j9c;oxc=Vuc;pxc=Xuc;ayc=C9c;nwc=Itc;qxc=Zuc;Rwc=suc;Owc=quc;txc=S8c;kxc=Puc;Axc=kvc;yyc=V9c;Mwc=ouc;_xc=wvc;Uwc=uuc;lxc=Ruc;Fwc=guc;hxc=P8c;nxc=Uuc;Gwc=huc;ywc=Vtc;wwc=Stc;uwc=Qtc;vwc=Rtc;xwc=Utc;twc=Otc;_wc=Huc} +function shb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;B=a.e;o=a.d;e=a.a;if(B==0){switch(b){case 0:return '0';case 1:return $je;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:w=new Ufb;b<0?(w.a+='0E+',w):(w.a+='0E',w);w.a+=-b;return w.a;}}t=o*10+1+7;u=KC(TD,$ie,25,t+1,15,1);c=t;if(o==1){h=e[0];if(h<0){H=xbb(h,Yje);do{p=H;H=Abb(H,10);u[--c]=48+Tbb(Qbb(p,Ibb(H,10)))&aje}while(ybb(H,0)!=0)}else{H=h;do{p=H;H=H/10|0;u[--c]=48+(p-H*10)&aje}while(H!=0)}}else{D=KC(WD,oje,25,o,15,1);G=o;$fb(e,0,D,0,G);I:while(true){A=0;for(j=G-1;j>=0;j--){F=wbb(Nbb(A,32),xbb(D[j],Yje));r=qhb(F);D[j]=Tbb(r);A=Tbb(Obb(r,32))}s=Tbb(A);q=c;do{u[--c]=48+s%10&aje}while((s=s/10|0)!=0&&c!=0);d=9-q+c;for(i=0;i<d&&c>0;i++){u[--c]=48}l=G-1;for(;D[l]==0;l--){if(l==0){break I}}G=l+1}while(u[c]==48){++c}}n=B<0;g=t-c-b-1;if(b==0){n&&(u[--c]=45);return zfb(u,c,t-c)}if(b>0&&g>=-6){if(g>=0){k=c+g;for(m=t-1;m>=k;m--){u[m+1]=u[m]}u[++k]=46;n&&(u[--c]=45);return zfb(u,c,t-c+1)}for(l=2;l<-g+1;l++){u[--c]=48}u[--c]=46;u[--c]=48;n&&(u[--c]=45);return zfb(u,c,t-c)}C=c+1;f=t;v=new Vfb;n&&(v.a+='-',v);if(f-C>=1){Kfb(v,u[c]);v.a+='.';v.a+=zfb(u,c+1,t-c-1)}else{v.a+=zfb(u,c,t-c)}v.a+='E';g>0&&(v.a+='+',v);v.a+=''+g;return v.a} +function z$c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;a.c=b;a.g=new Lqb;c=(Pgd(),new bhd(a.c));d=new YGb(c);UGb(d);t=GD(hkd(a.c,(d0c(),Y_c)));i=BD(hkd(a.c,$_c),316);v=BD(hkd(a.c,__c),429);g=BD(hkd(a.c,T_c),482);u=BD(hkd(a.c,Z_c),430);a.j=Edb(ED(hkd(a.c,a0c)));h=a.a;switch(i.g){case 0:h=a.a;break;case 1:h=a.b;break;case 2:h=a.i;break;case 3:h=a.e;break;case 4:h=a.f;break;default:throw vbb(new Wdb(Mre+(i.f!=null?i.f:''+i.g)));}a.d=new g_c(h,v,g);yNb(a.d,(XNb(),VNb),DD(hkd(a.c,V_c)));a.d.c=Ccb(DD(hkd(a.c,U_c)));if(Vod(a.c).i==0){return a.d}for(l=new Fyd(Vod(a.c));l.e!=l.i.gc();){k=BD(Dyd(l),33);n=k.g/2;m=k.f/2;w=new f7c(k.i+n,k.j+m);while(Mhb(a.g,w)){O6c(w,($wnd.Math.random()-0.5)*qme,($wnd.Math.random()-0.5)*qme)}p=BD(hkd(k,(Y9c(),S8c)),142);q=new aOb(w,new J6c(w.a-n-a.j/2-p.b,w.b-m-a.j/2-p.d,k.g+a.j+(p.b+p.c),k.f+a.j+(p.d+p.a)));Ekb(a.d.i,q);Rhb(a.g,w,new vgd(q,k))}switch(u.g){case 0:if(t==null){a.d.d=BD(Ikb(a.d.i,0),65)}else{for(s=new olb(a.d.i);s.a<s.c.c.length;){q=BD(mlb(s),65);o=BD(BD(Ohb(a.g,q.a),46).b,33).zg();o!=null&&dfb(o,t)&&(a.d.d=q)}}break;case 1:e=new f7c(a.c.g,a.c.f);e.a*=0.5;e.b*=0.5;O6c(e,a.c.i,a.c.j);f=Pje;for(r=new olb(a.d.i);r.a<r.c.c.length;){q=BD(mlb(r),65);j=S6c(q.a,e);if(j<f){f=j;a.d.d=q}}break;default:throw vbb(new Wdb(Mre+(u.f!=null?u.f:''+u.g)));}return a.d} +function qfd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;v=BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202);k=new s7c;u=new Lqb;w=tfd(v);jrb(u.f,v,w);m=new Lqb;d=new Psb;for(o=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!b.d&&(b.d=new y5d(B2,b,8,5)),b.d),(!b.e&&(b.e=new y5d(B2,b,7,4)),b.e)])));Qr(o);){n=BD(Rr(o),79);if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i!=1){throw vbb(new Wdb(Tse+(!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i))}if(n!=a){q=BD(qud((!n.a&&(n.a=new cUd(A2,n,6,6)),n.a),0),202);Gsb(d,q,d.c.b,d.c);p=BD(Wd(irb(u.f,q)),12);if(!p){p=tfd(q);jrb(u.f,q,p)}l=c?c7c(new g7c(BD(Ikb(w,w.c.length-1),8)),BD(Ikb(p,p.c.length-1),8)):c7c(new g7c((tCb(0,w.c.length),BD(w.c[0],8))),(tCb(0,p.c.length),BD(p.c[0],8)));jrb(m.f,q,l)}}if(d.b!=0){r=BD(Ikb(w,c?w.c.length-1:0),8);for(j=1;j<w.c.length;j++){s=BD(Ikb(w,c?w.c.length-1-j:j),8);e=Jsb(d,0);while(e.b!=e.d.c){q=BD(Xsb(e),202);p=BD(Wd(irb(u.f,q)),12);if(p.c.length<=j){Zsb(e)}else{t=P6c(new g7c(BD(Ikb(p,c?p.c.length-1-j:j),8)),BD(Wd(irb(m.f,q)),8));if(s.a!=t.a||s.b!=t.b){f=s.a-r.a;h=s.b-r.b;g=t.a-r.a;i=t.b-r.b;g*h==i*f&&(f==0||isNaN(f)?f:f<0?-1:1)==(g==0||isNaN(g)?g:g<0?-1:1)&&(h==0||isNaN(h)?h:h<0?-1:1)==(i==0||isNaN(i)?i:i<0?-1:1)?($wnd.Math.abs(f)<$wnd.Math.abs(g)||$wnd.Math.abs(h)<$wnd.Math.abs(i))&&(Gsb(k,s,k.c.b,k.c),true):j>1&&(Gsb(k,r,k.c.b,k.c),true);Zsb(e)}}}r=s}}return k} +function $Bc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L;Odd(c,'Greedy cycle removal',1);t=b.a;L=t.c.length;a.a=KC(WD,oje,25,L,15,1);a.c=KC(WD,oje,25,L,15,1);a.b=KC(WD,oje,25,L,15,1);j=0;for(r=new olb(t);r.a<r.c.c.length;){p=BD(mlb(r),10);p.p=j;for(C=new olb(p.j);C.a<C.c.c.length;){w=BD(mlb(C),11);for(h=new olb(w.e);h.a<h.c.c.length;){d=BD(mlb(h),17);if(d.c.i==p){continue}G=BD(vNb(d,(Nyc(),cyc)),19).a;a.a[j]+=G>0?G+1:1}for(g=new olb(w.g);g.a<g.c.c.length;){d=BD(mlb(g),17);if(d.d.i==p){continue}G=BD(vNb(d,(Nyc(),cyc)),19).a;a.c[j]+=G>0?G+1:1}}a.c[j]==0?Dsb(a.e,p):a.a[j]==0&&Dsb(a.f,p);++j}o=-1;n=1;l=new Rkb;a.d=BD(vNb(b,(wtc(),jtc)),230);while(L>0){while(a.e.b!=0){I=BD(Lsb(a.e),10);a.b[I.p]=o--;_Bc(a,I);--L}while(a.f.b!=0){J=BD(Lsb(a.f),10);a.b[J.p]=n++;_Bc(a,J);--L}if(L>0){m=Rie;for(s=new olb(t);s.a<s.c.c.length;){p=BD(mlb(s),10);if(a.b[p.p]==0){u=a.c[p.p]-a.a[p.p];if(u>=m){if(u>m){l.c=KC(SI,Uhe,1,0,5,1);m=u}l.c[l.c.length]=p}}}k=a.Zf(l);a.b[k.p]=n++;_Bc(a,k);--L}}H=t.c.length+1;for(j=0;j<t.c.length;j++){a.b[j]<0&&(a.b[j]+=H)}for(q=new olb(t);q.a<q.c.c.length;){p=BD(mlb(q),10);F=m_b(p.j);for(A=F,B=0,D=A.length;B<D;++B){w=A[B];v=k_b(w.g);for(e=v,f=0,i=e.length;f<i;++f){d=e[f];K=d.d.i.p;if(a.b[p.p]>a.b[K]){PZb(d,true);yNb(b,Asc,(Bcb(),true))}}}}a.a=null;a.c=null;a.b=null;Osb(a.f);Osb(a.e);Qdd(c)} +function sQb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=new Rkb;h=new Rkb;q=b/2;n=a.gc();e=BD(a.Xb(0),8);r=BD(a.Xb(1),8);o=tQb(e.a,e.b,r.a,r.b,q);Ekb(d,(tCb(0,o.c.length),BD(o.c[0],8)));Ekb(h,(tCb(1,o.c.length),BD(o.c[1],8)));for(j=2;j<n;j++){p=e;e=r;r=BD(a.Xb(j),8);o=tQb(e.a,e.b,p.a,p.b,q);Ekb(d,(tCb(1,o.c.length),BD(o.c[1],8)));Ekb(h,(tCb(0,o.c.length),BD(o.c[0],8)));o=tQb(e.a,e.b,r.a,r.b,q);Ekb(d,(tCb(0,o.c.length),BD(o.c[0],8)));Ekb(h,(tCb(1,o.c.length),BD(o.c[1],8)))}o=tQb(r.a,r.b,e.a,e.b,q);Ekb(d,(tCb(1,o.c.length),BD(o.c[1],8)));Ekb(h,(tCb(0,o.c.length),BD(o.c[0],8)));c=new s7c;g=new Rkb;Dsb(c,(tCb(0,d.c.length),BD(d.c[0],8)));for(k=1;k<d.c.length-2;k+=2){f=(tCb(k,d.c.length),BD(d.c[k],8));m=rQb((tCb(k-1,d.c.length),BD(d.c[k-1],8)),f,(tCb(k+1,d.c.length),BD(d.c[k+1],8)),(tCb(k+2,d.c.length),BD(d.c[k+2],8)));!isFinite(m.a)||!isFinite(m.b)?(Gsb(c,f,c.c.b,c.c),true):(Gsb(c,m,c.c.b,c.c),true)}Dsb(c,BD(Ikb(d,d.c.length-1),8));Ekb(g,(tCb(0,h.c.length),BD(h.c[0],8)));for(l=1;l<h.c.length-2;l+=2){f=(tCb(l,h.c.length),BD(h.c[l],8));m=rQb((tCb(l-1,h.c.length),BD(h.c[l-1],8)),f,(tCb(l+1,h.c.length),BD(h.c[l+1],8)),(tCb(l+2,h.c.length),BD(h.c[l+2],8)));!isFinite(m.a)||!isFinite(m.b)?(g.c[g.c.length]=f,true):(g.c[g.c.length]=m,true)}Ekb(g,BD(Ikb(h,h.c.length-1),8));for(i=g.c.length-1;i>=0;i--){Dsb(c,(tCb(i,g.c.length),BD(g.c[i],8)))}return c} +function aFd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;g=true;l=null;d=null;e=null;b=false;n=BEd;j=null;f=null;h=0;i=UEd(a,h,zEd,AEd);if(i<a.length&&(BCb(i,a.length),a.charCodeAt(i)==58)){l=a.substr(h,i-h);h=i+1}c=l!=null&&hnb(GEd,l.toLowerCase());if(c){i=a.lastIndexOf('!/');if(i==-1){throw vbb(new Wdb('no archive separator'))}g=true;d=qfb(a,h,++i);h=i}else if(h>=0&&dfb(a.substr(h,'//'.length),'//')){h+=2;i=UEd(a,h,CEd,DEd);d=a.substr(h,i-h);h=i}else if(l!=null&&(h==a.length||(BCb(h,a.length),a.charCodeAt(h)!=47))){g=false;i=ifb(a,wfb(35),h);i==-1&&(i=a.length);d=a.substr(h,i-h);h=i}if(!c&&h<a.length&&(BCb(h,a.length),a.charCodeAt(h)==47)){i=UEd(a,h+1,CEd,DEd);k=a.substr(h+1,i-(h+1));if(k.length>0&&bfb(k,k.length-1)==58){e=k;h=i}}if(h<a.length&&(BCb(h,a.length),a.charCodeAt(h)==47)){++h;b=true}if(h<a.length&&(BCb(h,a.length),a.charCodeAt(h)!=63)&&(BCb(h,a.length),a.charCodeAt(h)!=35)){m=new Rkb;while(h<a.length&&(BCb(h,a.length),a.charCodeAt(h)!=63)&&(BCb(h,a.length),a.charCodeAt(h)!=35)){i=UEd(a,h,CEd,DEd);Ekb(m,a.substr(h,i-h));h=i;h<a.length&&(BCb(h,a.length),a.charCodeAt(h)==47)&&(bFd(a,++h)||(m.c[m.c.length]='',true))}n=KC(ZI,nie,2,m.c.length,6,1);Qkb(m,n)}if(h<a.length&&(BCb(h,a.length),a.charCodeAt(h)==63)){i=gfb(a,35,++h);i==-1&&(i=a.length);j=a.substr(h,i-h);h=i}h<a.length&&(f=pfb(a,++h));iFd(g,l,d,e,n,j);return new NEd(g,l,d,e,b,n,j,f)} +function sJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K;I=new Rkb;for(o=new olb(b.b);o.a<o.c.c.length;){m=BD(mlb(o),29);for(v=new olb(m.a);v.a<v.c.c.length;){u=BD(mlb(v),10);u.p=-1;l=Rie;B=Rie;for(D=new olb(u.j);D.a<D.c.c.length;){C=BD(mlb(D),11);for(e=new olb(C.e);e.a<e.c.c.length;){c=BD(mlb(e),17);F=BD(vNb(c,(Nyc(),eyc)),19).a;l=$wnd.Math.max(l,F)}for(d=new olb(C.g);d.a<d.c.c.length;){c=BD(mlb(d),17);F=BD(vNb(c,(Nyc(),eyc)),19).a;B=$wnd.Math.max(B,F)}}yNb(u,hJc,meb(l));yNb(u,iJc,meb(B))}}r=0;for(n=new olb(b.b);n.a<n.c.c.length;){m=BD(mlb(n),29);for(v=new olb(m.a);v.a<v.c.c.length;){u=BD(mlb(v),10);if(u.p<0){H=new zJc;H.b=r++;oJc(a,u,H);I.c[I.c.length]=H}}}A=Pu(I.c.length);k=Pu(I.c.length);for(g=0;g<I.c.length;g++){Ekb(A,new Rkb);Ekb(k,meb(0))}mJc(b,I,A,k);J=BD(Qkb(I,KC(sY,Iqe,257,I.c.length,0,1)),840);w=BD(Qkb(A,KC(yK,eme,15,A.c.length,0,1)),192);j=KC(WD,oje,25,k.c.length,15,1);for(h=0;h<j.length;h++){j[h]=(tCb(h,k.c.length),BD(k.c[h],19)).a}s=0;t=new Rkb;for(i=0;i<J.length;i++){j[i]==0&&Ekb(t,J[i])}q=KC(WD,oje,25,J.length,15,1);while(t.c.length!=0){H=BD(Kkb(t,0),257);q[H.b]=s++;while(!w[H.b].dc()){K=BD(w[H.b].$c(0),257);--j[K.b];j[K.b]==0&&(t.c[t.c.length]=K,true)}}a.a=KC(sY,Iqe,257,J.length,0,1);for(f=0;f<J.length;f++){p=J[f];G=q[f];a.a[G]=p;p.b=G;for(v=new olb(p.e);v.a<v.c.c.length;){u=BD(mlb(v),10);u.p=G}}return a.a} +function nde(a){var b,c,d;if(a.d>=a.j){a.a=-1;a.c=1;return}b=bfb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d<a.j&&bfb(a.i,a.d)==91){++a.d;d=24}else d=0;break;case 91:if((a.e&512)!=512&&a.d<a.j&&bfb(a.i,a.d)==58){++a.d;d=20;break}default:if((b&64512)==Uje&&a.d<a.j){c=bfb(a.i,a.d);if((c&64512)==56320){a.a=Tje+(b-Uje<<10)+c-56320;++a.d}}d=0;}a.c=d;return}switch(b){case 124:d=2;break;case 42:d=3;break;case 43:d=4;break;case 63:d=5;break;case 41:d=7;break;case 46:d=8;break;case 91:d=9;break;case 94:d=11;break;case 36:d=12;break;case 40:d=6;if(a.d>=a.j)break;if(bfb(a.i,a.d)!=63)break;if(++a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);switch(b){case 58:d=13;break;case 61:d=14;break;case 33:d=15;break;case 91:d=19;break;case 62:d=18;break;case 60:if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw vbb(new mde(tvd((h0d(),wue))));break;case 35:while(a.d<a.j){b=bfb(a.i,a.d++);if(b==41)break}if(b!=41)throw vbb(new mde(tvd((h0d(),xue))));d=21;break;default:if(b==45||97<=b&&b<=122||65<=b&&b<=90){--a.d;d=22;break}else if(b==40){d=23;break}throw vbb(new mde(tvd((h0d(),vue))));}break;case 92:d=10;if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;default:d=0;}a.c=d} +function P5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;A=BD(vNb(a,(Nyc(),Vxc)),98);if(!(A!=(dcd(),bcd)&&A!=ccd)){return}o=a.b;n=o.c.length;k=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));p=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));Ekb(k,new Lqb);Ekb(k,new Lqb);Ekb(p,new Rkb);Ekb(p,new Rkb);w=new Rkb;for(b=0;b<n;b++){c=(tCb(b,o.c.length),BD(o.c[b],29));B=(tCb(b,k.c.length),BD(k.c[b],83));q=new Lqb;k.c[k.c.length]=q;D=(tCb(b,p.c.length),BD(p.c[b],15));s=new Rkb;p.c[p.c.length]=s;for(e=new olb(c.a);e.a<e.c.c.length;){d=BD(mlb(e),10);if(L5b(d)){w.c[w.c.length]=d;continue}for(j=new Sr(ur(R_b(d).a.Kc(),new Sq));Qr(j);){h=BD(Rr(j),17);F=h.c.i;if(!L5b(F)){continue}C=BD(B.xc(vNb(F,(wtc(),$sc))),10);if(!C){C=K5b(a,F);B.zc(vNb(F,$sc),C);D.Fc(C)}QZb(h,BD(Ikb(C.j,1),11))}for(i=new Sr(ur(U_b(d).a.Kc(),new Sq));Qr(i);){h=BD(Rr(i),17);G=h.d.i;if(!L5b(G)){continue}r=BD(Ohb(q,vNb(G,(wtc(),$sc))),10);if(!r){r=K5b(a,G);Rhb(q,vNb(G,$sc),r);s.c[s.c.length]=r}RZb(h,BD(Ikb(r.j,0),11))}}}for(l=0;l<p.c.length;l++){t=(tCb(l,p.c.length),BD(p.c[l],15));if(t.dc()){continue}m=null;if(l==0){m=new H1b(a);wCb(0,o.c.length);aCb(o.c,0,m)}else if(l==k.c.length-1){m=new H1b(a);o.c[o.c.length]=m}else{m=(tCb(l-1,o.c.length),BD(o.c[l-1],29))}for(g=t.Kc();g.Ob();){f=BD(g.Pb(),10);$_b(f,m)}}for(v=new olb(w);v.a<v.c.c.length;){u=BD(mlb(v),10);$_b(u,null)}yNb(a,(wtc(),Fsc),w)} +function BCc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Odd(c,'Coffman-Graham Layering',1);if(b.a.c.length==0){Qdd(c);return}v=BD(vNb(b,(Nyc(),kxc)),19).a;i=0;g=0;for(m=new olb(b.a);m.a<m.c.c.length;){l=BD(mlb(m),10);l.p=i++;for(f=new Sr(ur(U_b(l).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);e.p=g++}}a.d=KC(sbb,dle,25,i,16,1);a.a=KC(sbb,dle,25,g,16,1);a.b=KC(WD,oje,25,i,15,1);a.e=KC(WD,oje,25,i,15,1);a.f=KC(WD,oje,25,i,15,1);Nc(a.c);CCc(a,b);o=new gub(new GCc(a));for(u=new olb(b.a);u.a<u.c.c.length;){s=BD(mlb(u),10);for(f=new Sr(ur(R_b(s).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);a.a[e.p]||++a.b[s.p]}a.b[s.p]==0&&(zCb(cub(o,s)),true)}h=0;while(o.b.c.length!=0){s=BD(dub(o),10);a.f[s.p]=h++;for(f=new Sr(ur(U_b(s).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a.a[e.p]){continue}q=e.d.i;--a.b[q.p];Rc(a.c,q,meb(a.f[s.p]));a.b[q.p]==0&&(zCb(cub(o,q)),true)}}n=new gub(new KCc(a));for(t=new olb(b.a);t.a<t.c.c.length;){s=BD(mlb(t),10);for(f=new Sr(ur(U_b(s).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);a.a[e.p]||++a.e[s.p]}a.e[s.p]==0&&(zCb(cub(n,s)),true)}k=new Rkb;d=yCc(b,k);while(n.b.c.length!=0){r=BD(dub(n),10);(d.a.c.length>=v||!wCc(r,d))&&(d=yCc(b,k));$_b(r,d);for(f=new Sr(ur(R_b(r).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a.a[e.p]){continue}p=e.c.i;--a.e[p.p];a.e[p.p]==0&&(zCb(cub(n,p)),true)}}for(j=k.c.length-1;j>=0;--j){Ekb(b.b,(tCb(j,k.c.length),BD(k.c[j],29)))}b.a.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} +function gee(a){var b,c,d,e,f,g,h,i,j;a.b=1;nde(a);b=null;if(a.c==0&&a.a==94){nde(a);b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);h=(null,++vfe,new $fe(4))}else{h=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){Zfe(b,h);h=b}break}c=a.a;d=false;if(j==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(h,fee(c));d=true;break;case 105:case 73:case 99:case 67:c=(Xfe(h,fee(c)),-1);c<0&&(d=true);break;case 112:case 80:i=tde(a,c);if(!i)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(h,i);d=true;break;default:c=eee(a);}}else if(j==24&&!e){if(b){Zfe(b,h);h=b}f=gee(a);Zfe(h,f);if(a.c!=0||a.a!=93)throw vbb(new mde(tvd((h0d(),Mue))));break}nde(a);if(!d){if(j==0){if(c==91)throw vbb(new mde(tvd((h0d(),Nue))));if(c==93)throw vbb(new mde(tvd((h0d(),Oue))));if(c==45&&!e&&a.a!=93)throw vbb(new mde(tvd((h0d(),Pue))))}if(a.c!=0||a.a!=45||c==45&&e){Ufe(h,c,c)}else{nde(a);if((j=a.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(j==0&&a.a==93){Ufe(h,c,c);Ufe(h,45,45)}else if(j==0&&a.a==93||j==24){throw vbb(new mde(tvd((h0d(),Pue))))}else{g=a.a;if(j==0){if(g==91)throw vbb(new mde(tvd((h0d(),Nue))));if(g==93)throw vbb(new mde(tvd((h0d(),Oue))));if(g==45)throw vbb(new mde(tvd((h0d(),Pue))))}else j==10&&(g=eee(a));nde(a);if(c>g)throw vbb(new mde(tvd((h0d(),Sue))));Ufe(h,c,g)}}}e=false}if(a.c==1)throw vbb(new mde(tvd((h0d(),Kue))));Yfe(h);Vfe(h);a.b=0;nde(a);return h} +function xZd(a){Bnd(a.c,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#decimal']));Bnd(a.d,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#integer']));Bnd(a.e,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#boolean']));Bnd(a.f,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EBoolean',fue,'EBoolean:Object']));Bnd(a.i,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#byte']));Bnd(a.g,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#hexBinary']));Bnd(a.j,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EByte',fue,'EByte:Object']));Bnd(a.n,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EChar',fue,'EChar:Object']));Bnd(a.t,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#double']));Bnd(a.u,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EDouble',fue,'EDouble:Object']));Bnd(a.F,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#float']));Bnd(a.G,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EFloat',fue,'EFloat:Object']));Bnd(a.I,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#int']));Bnd(a.J,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EInt',fue,'EInt:Object']));Bnd(a.N,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#long']));Bnd(a.O,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'ELong',fue,'ELong:Object']));Bnd(a.Z,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#short']));Bnd(a.$,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EShort',fue,'EShort:Object']));Bnd(a._,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#string']))} +function fRc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;if(a.c.length==1){return tCb(0,a.c.length),BD(a.c[0],135)}else if(a.c.length<=0){return new SRc}for(i=new olb(a);i.a<i.c.c.length;){g=BD(mlb(i),135);s=0;o=Ohe;p=Ohe;m=Rie;n=Rie;for(r=Jsb(g.b,0);r.b!=r.d.c;){q=BD(Xsb(r),86);s+=BD(vNb(q,(JTc(),ETc)),19).a;o=$wnd.Math.min(o,q.e.a);p=$wnd.Math.min(p,q.e.b);m=$wnd.Math.max(m,q.e.a+q.f.a);n=$wnd.Math.max(n,q.e.b+q.f.b)}yNb(g,(JTc(),ETc),meb(s));yNb(g,(mTc(),WSc),new f7c(o,p));yNb(g,VSc,new f7c(m,n))}mmb();Okb(a,new jRc);v=new SRc;tNb(v,(tCb(0,a.c.length),BD(a.c[0],94)));l=0;D=0;for(j=new olb(a);j.a<j.c.c.length;){g=BD(mlb(j),135);w=c7c(R6c(BD(vNb(g,(mTc(),VSc)),8)),BD(vNb(g,WSc),8));l=$wnd.Math.max(l,w.a);D+=w.a*w.b}l=$wnd.Math.max(l,$wnd.Math.sqrt(D)*Edb(ED(vNb(v,(JTc(),uTc)))));A=Edb(ED(vNb(v,HTc)));F=0;G=0;k=0;b=A;for(h=new olb(a);h.a<h.c.c.length;){g=BD(mlb(h),135);w=c7c(R6c(BD(vNb(g,(mTc(),VSc)),8)),BD(vNb(g,WSc),8));if(F+w.a>l){F=0;G+=k+A;k=0}eRc(v,g,F,G);b=$wnd.Math.max(b,F+w.a);k=$wnd.Math.max(k,w.b);F+=w.a+A}u=new Lqb;c=new Lqb;for(C=new olb(a);C.a<C.c.c.length;){B=BD(mlb(C),135);d=Ccb(DD(vNb(B,(Y9c(),y8c))));t=!B.q?(null,kmb):B.q;for(f=t.vc().Kc();f.Ob();){e=BD(f.Pb(),42);if(Mhb(u,e.cd())){if(PD(BD(e.cd(),146).wg())!==PD(e.dd())){if(d&&Mhb(c,e.cd())){Zfb();'Found different values for property '+BD(e.cd(),146).tg()+' in components.'}else{Rhb(u,BD(e.cd(),146),e.dd());yNb(v,BD(e.cd(),146),e.dd());d&&Rhb(c,BD(e.cd(),146),e.dd())}}}else{Rhb(u,BD(e.cd(),146),e.dd());yNb(v,BD(e.cd(),146),e.dd())}}}return v} +function MYb(){MYb=ccb;xXb();LYb=new Hp;Rc(LYb,(Ucd(),Gcd),Fcd);Rc(LYb,Qcd,Fcd);Rc(LYb,Hcd,Fcd);Rc(LYb,Ncd,Fcd);Rc(LYb,Mcd,Fcd);Rc(LYb,Kcd,Fcd);Rc(LYb,Ncd,Gcd);Rc(LYb,Fcd,Bcd);Rc(LYb,Gcd,Bcd);Rc(LYb,Qcd,Bcd);Rc(LYb,Hcd,Bcd);Rc(LYb,Lcd,Bcd);Rc(LYb,Ncd,Bcd);Rc(LYb,Mcd,Bcd);Rc(LYb,Kcd,Bcd);Rc(LYb,Ecd,Bcd);Rc(LYb,Fcd,Ocd);Rc(LYb,Gcd,Ocd);Rc(LYb,Bcd,Ocd);Rc(LYb,Qcd,Ocd);Rc(LYb,Hcd,Ocd);Rc(LYb,Lcd,Ocd);Rc(LYb,Ncd,Ocd);Rc(LYb,Ecd,Ocd);Rc(LYb,Pcd,Ocd);Rc(LYb,Mcd,Ocd);Rc(LYb,Icd,Ocd);Rc(LYb,Kcd,Ocd);Rc(LYb,Gcd,Qcd);Rc(LYb,Hcd,Qcd);Rc(LYb,Ncd,Qcd);Rc(LYb,Kcd,Qcd);Rc(LYb,Gcd,Hcd);Rc(LYb,Qcd,Hcd);Rc(LYb,Ncd,Hcd);Rc(LYb,Hcd,Hcd);Rc(LYb,Mcd,Hcd);Rc(LYb,Fcd,Ccd);Rc(LYb,Gcd,Ccd);Rc(LYb,Bcd,Ccd);Rc(LYb,Ocd,Ccd);Rc(LYb,Qcd,Ccd);Rc(LYb,Hcd,Ccd);Rc(LYb,Lcd,Ccd);Rc(LYb,Ncd,Ccd);Rc(LYb,Pcd,Ccd);Rc(LYb,Ecd,Ccd);Rc(LYb,Kcd,Ccd);Rc(LYb,Mcd,Ccd);Rc(LYb,Jcd,Ccd);Rc(LYb,Fcd,Pcd);Rc(LYb,Gcd,Pcd);Rc(LYb,Bcd,Pcd);Rc(LYb,Qcd,Pcd);Rc(LYb,Hcd,Pcd);Rc(LYb,Lcd,Pcd);Rc(LYb,Ncd,Pcd);Rc(LYb,Ecd,Pcd);Rc(LYb,Kcd,Pcd);Rc(LYb,Icd,Pcd);Rc(LYb,Jcd,Pcd);Rc(LYb,Gcd,Ecd);Rc(LYb,Qcd,Ecd);Rc(LYb,Hcd,Ecd);Rc(LYb,Ncd,Ecd);Rc(LYb,Pcd,Ecd);Rc(LYb,Kcd,Ecd);Rc(LYb,Mcd,Ecd);Rc(LYb,Fcd,Dcd);Rc(LYb,Gcd,Dcd);Rc(LYb,Bcd,Dcd);Rc(LYb,Qcd,Dcd);Rc(LYb,Hcd,Dcd);Rc(LYb,Lcd,Dcd);Rc(LYb,Ncd,Dcd);Rc(LYb,Ecd,Dcd);Rc(LYb,Kcd,Dcd);Rc(LYb,Gcd,Mcd);Rc(LYb,Bcd,Mcd);Rc(LYb,Ocd,Mcd);Rc(LYb,Hcd,Mcd);Rc(LYb,Fcd,Icd);Rc(LYb,Gcd,Icd);Rc(LYb,Ocd,Icd);Rc(LYb,Qcd,Icd);Rc(LYb,Hcd,Icd);Rc(LYb,Lcd,Icd);Rc(LYb,Ncd,Icd);Rc(LYb,Ncd,Jcd);Rc(LYb,Hcd,Jcd);Rc(LYb,Ecd,Fcd);Rc(LYb,Ecd,Qcd);Rc(LYb,Ecd,Bcd);Rc(LYb,Lcd,Fcd);Rc(LYb,Lcd,Gcd);Rc(LYb,Lcd,Ocd)} +function HVd(a,b){switch(a.e){case 0:case 2:case 4:case 6:case 42:case 44:case 46:case 48:case 8:case 10:case 12:case 14:case 16:case 18:case 20:case 22:case 24:case 26:case 28:case 30:case 32:case 34:case 36:case 38:return new U5d(a.b,a.a,b,a.c);case 1:return new BMd(a.a,b,bLd(b.Tg(),a.c));case 43:return new N4d(a.a,b,bLd(b.Tg(),a.c));case 3:return new xMd(a.a,b,bLd(b.Tg(),a.c));case 45:return new K4d(a.a,b,bLd(b.Tg(),a.c));case 41:return new dId(BD(wId(a.c),26),a.a,b,bLd(b.Tg(),a.c));case 50:return new c6d(BD(wId(a.c),26),a.a,b,bLd(b.Tg(),a.c));case 5:return new Q4d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 47:return new U4d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 7:return new cUd(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 49:return new gUd(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 9:return new I4d(a.a,b,bLd(b.Tg(),a.c));case 11:return new G4d(a.a,b,bLd(b.Tg(),a.c));case 13:return new C4d(a.a,b,bLd(b.Tg(),a.c));case 15:return new k2d(a.a,b,bLd(b.Tg(),a.c));case 17:return new c5d(a.a,b,bLd(b.Tg(),a.c));case 19:return new _4d(a.a,b,bLd(b.Tg(),a.c));case 21:return new X4d(a.a,b,bLd(b.Tg(),a.c));case 23:return new pMd(a.a,b,bLd(b.Tg(),a.c));case 25:return new D5d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 27:return new y5d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 29:return new t5d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 31:return new n5d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 33:return new A5d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 35:return new v5d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 37:return new p5d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 39:return new i5d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 40:return new u3d(b,bLd(b.Tg(),a.c));default:throw vbb(new hz('Unknown feature style: '+a.e));}} +function BMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;Odd(c,'Brandes & Koepf node placement',1);a.a=b;a.c=KMc(b);d=BD(vNb(b,(Nyc(),zxc)),274);n=Ccb(DD(vNb(b,Axc)));a.d=d==(lrc(),irc)&&!n||d==frc;AMc(a,b);v=null;w=null;r=null;s=null;q=(Xj(4,Jie),new Skb(4));switch(BD(vNb(b,zxc),274).g){case 3:r=new ULc(b,a.c.d,(eMc(),cMc),(YLc(),WLc));q.c[q.c.length]=r;break;case 1:s=new ULc(b,a.c.d,(eMc(),dMc),(YLc(),WLc));q.c[q.c.length]=s;break;case 4:v=new ULc(b,a.c.d,(eMc(),cMc),(YLc(),XLc));q.c[q.c.length]=v;break;case 2:w=new ULc(b,a.c.d,(eMc(),dMc),(YLc(),XLc));q.c[q.c.length]=w;break;default:r=new ULc(b,a.c.d,(eMc(),cMc),(YLc(),WLc));s=new ULc(b,a.c.d,dMc,WLc);v=new ULc(b,a.c.d,cMc,XLc);w=new ULc(b,a.c.d,dMc,XLc);q.c[q.c.length]=v;q.c[q.c.length]=w;q.c[q.c.length]=r;q.c[q.c.length]=s;}e=new mMc(b,a.c);for(h=new olb(q);h.a<h.c.c.length;){f=BD(mlb(h),180);lMc(e,f,a.b);kMc(f)}m=new rMc(b,a.c);for(i=new olb(q);i.a<i.c.c.length;){f=BD(mlb(i),180);oMc(m,f)}if(c.n){for(j=new olb(q);j.a<j.c.c.length;){f=BD(mlb(j),180);Sdd(c,f+' size is '+SLc(f))}}l=null;if(a.d){k=yMc(a,q,a.c.d);xMc(b,k,c)&&(l=k)}if(!l){for(j=new olb(q);j.a<j.c.c.length;){f=BD(mlb(j),180);xMc(b,f,c)&&(!l||SLc(l)>SLc(f))&&(l=f)}}!l&&(l=(tCb(0,q.c.length),BD(q.c[0],180)));for(p=new olb(b.b);p.a<p.c.c.length;){o=BD(mlb(p),29);for(u=new olb(o.a);u.a<u.c.c.length;){t=BD(mlb(u),10);t.n.b=Edb(l.p[t.p])+Edb(l.d[t.p])}}if(c.n){Sdd(c,'Chosen node placement: '+l);Sdd(c,'Blocks: '+DMc(l));Sdd(c,'Classes: '+EMc(l,c));Sdd(c,'Marked edges: '+a.b)}for(g=new olb(q);g.a<g.c.c.length;){f=BD(mlb(g),180);f.g=null;f.b=null;f.a=null;f.d=null;f.j=null;f.i=null;f.p=null}IMc(a.c);a.b.a.$b();Qdd(c)} +function V1b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;g=new Psb;v=BD(vNb(c,(Nyc(),Lwc)),103);o=0;ye(g,(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));while(g.b!=0){j=BD(g.b==0?null:(sCb(g.b!=0),Nsb(g,g.a.a)),33);(PD(hkd(b,ywc))!==PD((tAc(),rAc))||PD(hkd(b,Jwc))===PD((mqc(),lqc))||PD(hkd(b,Jwc))===PD((mqc(),jqc))||Ccb(DD(hkd(b,Awc)))||PD(hkd(b,twc))!==PD((RXb(),QXb)))&&!Ccb(DD(hkd(j,xwc)))&&jkd(j,(wtc(),Zsc),meb(o++));q=!Ccb(DD(hkd(j,Jxc)));if(q){l=(!j.a&&(j.a=new cUd(E2,j,10,11)),j.a).i!=0;n=S1b(j);m=PD(hkd(j,axc))===PD((hbd(),ebd));F=!ikd(j,(Y9c(),o8c))||dfb(GD(hkd(j,o8c)),sne);t=null;if(F&&m&&(l||n)){t=P1b(j);yNb(t,Lwc,v);wNb(t,hyc)&&Wyc(new ezc(Edb(ED(vNb(t,hyc)))),t);if(BD(hkd(j,Fxc),174).gc()!=0){k=t;MAb(new YAb(null,(!j.c&&(j.c=new cUd(F2,j,9,9)),new Kub(j.c,16))),new k2b(k));L1b(j,t)}}w=c;A=BD(Ohb(a.a,Xod(j)),10);!!A&&(w=A.e);s=$1b(a,j,w);if(t){s.e=t;t.e=s;ye(g,(!j.a&&(j.a=new cUd(E2,j,10,11)),j.a))}}}o=0;Gsb(g,b,g.c.b,g.c);while(g.b!=0){f=BD(g.b==0?null:(sCb(g.b!=0),Nsb(g,g.a.a)),33);for(i=new Fyd((!f.b&&(f.b=new cUd(B2,f,12,3)),f.b));i.e!=i.i.gc();){h=BD(Dyd(i),79);N1b(h);(PD(hkd(b,ywc))!==PD((tAc(),rAc))||PD(hkd(b,Jwc))===PD((mqc(),lqc))||PD(hkd(b,Jwc))===PD((mqc(),jqc))||Ccb(DD(hkd(b,Awc)))||PD(hkd(b,twc))!==PD((RXb(),QXb)))&&jkd(h,(wtc(),Zsc),meb(o++));C=atd(BD(qud((!h.b&&(h.b=new y5d(z2,h,4,7)),h.b),0),82));D=atd(BD(qud((!h.c&&(h.c=new y5d(z2,h,5,8)),h.c),0),82));if(Ccb(DD(hkd(h,Jxc)))||Ccb(DD(hkd(C,Jxc)))||Ccb(DD(hkd(D,Jxc)))){continue}p=Qld(h)&&Ccb(DD(hkd(C,fxc)))&&Ccb(DD(hkd(h,gxc)));u=f;p||ntd(D,C)?(u=C):ntd(C,D)&&(u=D);w=c;A=BD(Ohb(a.a,u),10);!!A&&(w=A.e);r=X1b(a,h,u,w);yNb(r,(wtc(),xsc),R1b(a,h,b,c))}m=PD(hkd(f,axc))===PD((hbd(),ebd));if(m){for(e=new Fyd((!f.a&&(f.a=new cUd(E2,f,10,11)),f.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);F=!ikd(d,(Y9c(),o8c))||dfb(GD(hkd(d,o8c)),sne);B=PD(hkd(d,axc))===PD(ebd);F&&B&&(Gsb(g,d,g.c.b,g.c),true)}}}} +function vA(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;switch(b){case 71:h=d.q.getFullYear()-nje>=-1900?1:0;c>=4?Qfb(a,OC(GC(ZI,1),nie,2,6,[pje,qje])[h]):Qfb(a,OC(GC(ZI,1),nie,2,6,['BC','AD'])[h]);break;case 121:kA(a,c,d);break;case 77:jA(a,c,d);break;case 107:i=e.q.getHours();i==0?EA(a,24,c):EA(a,i,c);break;case 83:iA(a,c,e);break;case 69:k=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[k]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[k]):Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[1]):Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?EA(a,12,c):EA(a,l,c);break;case 75:m=e.q.getHours()%12;EA(a,m,c);break;case 72:n=e.q.getHours();EA(a,n,c);break;case 99:o=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[o]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[o]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):EA(a,o,1);break;case 76:p=d.q.getMonth();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje])[p]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):EA(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?Qfb(a,OC(GC(ZI,1),nie,2,6,['Q1','Q2','Q3','Q4'])[q]):Qfb(a,OC(GC(ZI,1),nie,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();EA(a,r,c);break;case 109:j=e.q.getMinutes();EA(a,j,c);break;case 115:g=e.q.getSeconds();EA(a,g,c);break;case 122:c<4?Qfb(a,f.c[0]):Qfb(a,f.c[1]);break;case 118:Qfb(a,f.b);break;case 90:c<3?Qfb(a,OA(f)):c==3?Qfb(a,NA(f)):Qfb(a,QA(f.a));break;default:return false;}return true} +function X1b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;N1b(b);i=BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82);k=BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82);h=atd(i);j=atd(k);g=(!b.a&&(b.a=new cUd(A2,b,6,6)),b.a).i==0?null:BD(qud((!b.a&&(b.a=new cUd(A2,b,6,6)),b.a),0),202);A=BD(Ohb(a.a,h),10);F=BD(Ohb(a.a,j),10);B=null;G=null;if(JD(i,186)){w=BD(Ohb(a.a,i),299);if(JD(w,11)){B=BD(w,11)}else if(JD(w,10)){A=BD(w,10);B=BD(Ikb(A.j,0),11)}}if(JD(k,186)){D=BD(Ohb(a.a,k),299);if(JD(D,11)){G=BD(D,11)}else if(JD(D,10)){F=BD(D,10);G=BD(Ikb(F.j,0),11)}}if(!A||!F){throw vbb(new z2c('The source or the target of edge '+b+' 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.'))}p=new UZb;tNb(p,b);yNb(p,(wtc(),$sc),b);yNb(p,(Nyc(),jxc),null);n=BD(vNb(d,Ksc),21);A==F&&n.Fc((Orc(),Nrc));if(!B){v=(KAc(),IAc);C=null;if(!!g&&fcd(BD(vNb(A,Vxc),98))){C=new f7c(g.j,g.k);Bfd(C,Mld(b));Cfd(C,c);if(ntd(j,h)){v=HAc;P6c(C,A.n)}}B=$$b(A,C,v,d)}if(!G){v=(KAc(),HAc);H=null;if(!!g&&fcd(BD(vNb(F,Vxc),98))){H=new f7c(g.b,g.c);Bfd(H,Mld(b));Cfd(H,c)}G=$$b(F,H,v,Q_b(F))}QZb(p,B);RZb(p,G);(B.e.c.length>1||B.g.c.length>1||G.e.c.length>1||G.g.c.length>1)&&n.Fc((Orc(),Irc));for(m=new Fyd((!b.n&&(b.n=new cUd(D2,b,1,7)),b.n));m.e!=m.i.gc();){l=BD(Dyd(m),137);if(!Ccb(DD(hkd(l,Jxc)))&&!!l.a){q=Z1b(l);Ekb(p.b,q);switch(BD(vNb(q,Qwc),272).g){case 1:case 2:n.Fc((Orc(),Grc));break;case 0:n.Fc((Orc(),Erc));yNb(q,Qwc,(qad(),nad));}}}f=BD(vNb(d,Iwc),314);r=BD(vNb(d,Exc),315);e=f==(Rpc(),Opc)||r==(Vzc(),Rzc);if(!!g&&(!g.a&&(g.a=new xMd(y2,g,5)),g.a).i!=0&&e){s=ofd(g);o=new s7c;for(u=Jsb(s,0);u.b!=u.d.c;){t=BD(Xsb(u),8);Dsb(o,new g7c(t))}yNb(p,_sc,o)}return p} +function yZd(a){if(a.gb)return;a.gb=true;a.b=Lnd(a,0);Knd(a.b,18);Qnd(a.b,19);a.a=Lnd(a,1);Knd(a.a,1);Qnd(a.a,2);Qnd(a.a,3);Qnd(a.a,4);Qnd(a.a,5);a.o=Lnd(a,2);Knd(a.o,8);Knd(a.o,9);Qnd(a.o,10);Qnd(a.o,11);Qnd(a.o,12);Qnd(a.o,13);Qnd(a.o,14);Qnd(a.o,15);Qnd(a.o,16);Qnd(a.o,17);Qnd(a.o,18);Qnd(a.o,19);Qnd(a.o,20);Qnd(a.o,21);Qnd(a.o,22);Qnd(a.o,23);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);a.p=Lnd(a,3);Knd(a.p,2);Knd(a.p,3);Knd(a.p,4);Knd(a.p,5);Qnd(a.p,6);Qnd(a.p,7);Pnd(a.p);Pnd(a.p);a.q=Lnd(a,4);Knd(a.q,8);a.v=Lnd(a,5);Qnd(a.v,9);Pnd(a.v);Pnd(a.v);Pnd(a.v);a.w=Lnd(a,6);Knd(a.w,2);Knd(a.w,3);Knd(a.w,4);Qnd(a.w,5);a.B=Lnd(a,7);Qnd(a.B,1);Pnd(a.B);Pnd(a.B);Pnd(a.B);a.Q=Lnd(a,8);Qnd(a.Q,0);Pnd(a.Q);a.R=Lnd(a,9);Knd(a.R,1);a.S=Lnd(a,10);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);a.T=Lnd(a,11);Qnd(a.T,10);Qnd(a.T,11);Qnd(a.T,12);Qnd(a.T,13);Qnd(a.T,14);Pnd(a.T);Pnd(a.T);a.U=Lnd(a,12);Knd(a.U,2);Knd(a.U,3);Qnd(a.U,4);Qnd(a.U,5);Qnd(a.U,6);Qnd(a.U,7);Pnd(a.U);a.V=Lnd(a,13);Qnd(a.V,10);a.W=Lnd(a,14);Knd(a.W,18);Knd(a.W,19);Knd(a.W,20);Qnd(a.W,21);Qnd(a.W,22);Qnd(a.W,23);a.bb=Lnd(a,15);Knd(a.bb,10);Knd(a.bb,11);Knd(a.bb,12);Knd(a.bb,13);Knd(a.bb,14);Knd(a.bb,15);Knd(a.bb,16);Qnd(a.bb,17);Pnd(a.bb);Pnd(a.bb);a.eb=Lnd(a,16);Knd(a.eb,2);Knd(a.eb,3);Knd(a.eb,4);Knd(a.eb,5);Knd(a.eb,6);Knd(a.eb,7);Qnd(a.eb,8);Qnd(a.eb,9);a.ab=Lnd(a,17);Knd(a.ab,0);Knd(a.ab,1);a.H=Lnd(a,18);Qnd(a.H,0);Qnd(a.H,1);Qnd(a.H,2);Qnd(a.H,3);Qnd(a.H,4);Qnd(a.H,5);Pnd(a.H);a.db=Lnd(a,19);Qnd(a.db,2);a.c=Mnd(a,20);a.d=Mnd(a,21);a.e=Mnd(a,22);a.f=Mnd(a,23);a.i=Mnd(a,24);a.g=Mnd(a,25);a.j=Mnd(a,26);a.k=Mnd(a,27);a.n=Mnd(a,28);a.r=Mnd(a,29);a.s=Mnd(a,30);a.t=Mnd(a,31);a.u=Mnd(a,32);a.fb=Mnd(a,33);a.A=Mnd(a,34);a.C=Mnd(a,35);a.D=Mnd(a,36);a.F=Mnd(a,37);a.G=Mnd(a,38);a.I=Mnd(a,39);a.J=Mnd(a,40);a.L=Mnd(a,41);a.M=Mnd(a,42);a.N=Mnd(a,43);a.O=Mnd(a,44);a.P=Mnd(a,45);a.X=Mnd(a,46);a.Y=Mnd(a,47);a.Z=Mnd(a,48);a.$=Mnd(a,49);a._=Mnd(a,50);a.cb=Mnd(a,51);a.K=Mnd(a,52)} +function Y9c(){Y9c=ccb;var a,b;o8c=new Lsd(sse);F9c=new Lsd(tse);q8c=(F7c(),z7c);p8c=new Nsd($pe,q8c);new Tfd;r8c=new Nsd(_le,null);s8c=new Lsd(use);x8c=(i8c(),qqb(h8c,OC(GC(r1,1),Kie,291,0,[d8c])));w8c=new Nsd(lqe,x8c);y8c=new Nsd(Zpe,(Bcb(),false));A8c=(ead(),cad);z8c=new Nsd(cqe,A8c);F8c=(Aad(),zad);E8c=new Nsd(ype,F8c);I8c=new Nsd(Jre,false);K8c=(hbd(),fbd);J8c=new Nsd(tpe,K8c);g9c=new q0b(12);f9c=new Nsd(ame,g9c);O8c=new Nsd(Ame,false);P8c=new Nsd(xqe,false);e9c=new Nsd(Dme,false);u9c=(dcd(),ccd);t9c=new Nsd(Bme,u9c);C9c=new Lsd(uqe);D9c=new Lsd(vme);E9c=new Lsd(yme);H9c=new Lsd(zme);R8c=new s7c;Q8c=new Nsd(mqe,R8c);v8c=new Nsd(pqe,false);L8c=new Nsd(qqe,false);new Lsd(vse);T8c=new H_b;S8c=new Nsd(vqe,T8c);d9c=new Nsd(Xpe,false);new Tfd;G9c=new Nsd(wse,1);new Nsd(xse,true);meb(0);new Nsd(yse,meb(100));new Nsd(zse,false);meb(0);new Nsd(Ase,meb(4000));meb(0);new Nsd(Bse,meb(400));new Nsd(Cse,false);new Nsd(Dse,false);new Nsd(Ese,true);new Nsd(Fse,false);u8c=(Ded(),Ced);t8c=new Nsd(rse,u8c);I9c=new Nsd(Lpe,10);J9c=new Nsd(Mpe,10);K9c=new Nsd(Zle,20);L9c=new Nsd(Npe,10);M9c=new Nsd(xme,2);N9c=new Nsd(Ope,10);P9c=new Nsd(Ppe,0);Q9c=new Nsd(Spe,5);R9c=new Nsd(Qpe,1);S9c=new Nsd(Rpe,1);T9c=new Nsd(wme,20);U9c=new Nsd(Tpe,10);X9c=new Nsd(Upe,10);O9c=new Lsd(Vpe);W9c=new I_b;V9c=new Nsd(wqe,W9c);j9c=new Lsd(tqe);i9c=false;h9c=new Nsd(sqe,i9c);V8c=new q0b(5);U8c=new Nsd(dqe,V8c);X8c=(Hbd(),b=BD(gdb(B1),9),new xqb(b,BD(_Bb(b,b.length),9),0));W8c=new Nsd(Gme,X8c);m9c=(Tbd(),Qbd);l9c=new Nsd(gqe,m9c);o9c=new Lsd(hqe);p9c=new Lsd(iqe);q9c=new Lsd(jqe);n9c=new Lsd(kqe);Z8c=(a=BD(gdb(I1),9),new xqb(a,BD(_Bb(a,a.length),9),0));Y8c=new Nsd(Fme,Z8c);c9c=pqb((Idd(),Bdd));b9c=new Nsd(Eme,c9c);a9c=new f7c(0,0);_8c=new Nsd(Tme,a9c);$8c=new Nsd(bqe,false);D8c=(qad(),nad);C8c=new Nsd(nqe,D8c);B8c=new Nsd(Cme,false);new Lsd(Gse);meb(1);new Nsd(Hse,null);r9c=new Lsd(rqe);v9c=new Lsd(oqe);B9c=(Ucd(),Scd);A9c=new Nsd(Ype,B9c);s9c=new Lsd(Wpe);y9c=(rcd(),pqb(pcd));x9c=new Nsd(Hme,y9c);w9c=new Nsd(eqe,false);z9c=new Nsd(fqe,true);M8c=new Nsd(_pe,false);N8c=new Nsd(aqe,false);G8c=new Nsd($le,1);H8c=(Mad(),Kad);new Nsd(Ise,H8c);k9c=true} +function wtc(){wtc=ccb;var a,b;$sc=new Lsd(Ime);xsc=new Lsd('coordinateOrigin');itc=new Lsd('processors');wsc=new Msd('compoundNode',(Bcb(),false));Nsc=new Msd('insideConnections',false);_sc=new Lsd('originalBendpoints');atc=new Lsd('originalDummyNodePosition');btc=new Lsd('originalLabelEdge');ktc=new Lsd('representedLabels');Csc=new Lsd('endLabels');Dsc=new Lsd('endLabel.origin');Ssc=new Msd('labelSide',(rbd(),qbd));Ysc=new Msd('maxEdgeThickness',0);ltc=new Msd('reversed',false);jtc=new Lsd(Jme);Vsc=new Msd('longEdgeSource',null);Wsc=new Msd('longEdgeTarget',null);Usc=new Msd('longEdgeHasLabelDummies',false);Tsc=new Msd('longEdgeBeforeLabelDummy',false);Bsc=new Msd('edgeConstraint',(Gqc(),Eqc));Psc=new Lsd('inLayerLayoutUnit');Osc=new Msd('inLayerConstraint',(esc(),csc));Qsc=new Msd('inLayerSuccessorConstraint',new Rkb);Rsc=new Msd('inLayerSuccessorConstraintBetweenNonDummies',false);gtc=new Lsd('portDummy');ysc=new Msd('crossingHint',meb(0));Ksc=new Msd('graphProperties',(b=BD(gdb(PW),9),new xqb(b,BD(_Bb(b,b.length),9),0)));Hsc=new Msd('externalPortSide',(Ucd(),Scd));Isc=new Msd('externalPortSize',new d7c);Fsc=new Lsd('externalPortReplacedDummies');Gsc=new Lsd('externalPortReplacedDummy');Esc=new Msd('externalPortConnections',(a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0)));htc=new Msd(tle,0);ssc=new Lsd('barycenterAssociates');vtc=new Lsd('TopSideComments');tsc=new Lsd('BottomSideComments');vsc=new Lsd('CommentConnectionPort');Msc=new Msd('inputCollect',false);etc=new Msd('outputCollect',false);Asc=new Msd('cyclic',false);zsc=new Lsd('crossHierarchyMap');utc=new Lsd('targetOffset');new Msd('splineLabelSize',new d7c);otc=new Lsd('spacings');ftc=new Msd('partitionConstraint',false);usc=new Lsd('breakingPoint.info');stc=new Lsd('splines.survivingEdge');rtc=new Lsd('splines.route.start');ptc=new Lsd('splines.edgeChain');dtc=new Lsd('originalPortConstraints');ntc=new Lsd('selfLoopHolder');qtc=new Lsd('splines.nsPortY');Zsc=new Lsd('modelOrder');Xsc=new Lsd('longEdgeTargetNode');Jsc=new Msd(Xne,false);mtc=new Msd(Xne,false);Lsc=new Lsd('layerConstraints.hiddenNodes');ctc=new Lsd('layerConstraints.opposidePort');ttc=new Lsd('targetNode.modelOrder')} +function jwc(){jwc=ccb;puc=(xqc(),vqc);ouc=new Nsd(Yne,puc);Guc=new Nsd(Zne,(Bcb(),false));Muc=(msc(),ksc);Luc=new Nsd($ne,Muc);cvc=new Nsd(_ne,false);dvc=new Nsd(aoe,true);Itc=new Nsd(boe,false);xvc=(BAc(),zAc);wvc=new Nsd(coe,xvc);meb(1);Fvc=new Nsd(doe,meb(7));Gvc=new Nsd(eoe,false);Huc=new Nsd(foe,false);nuc=(mqc(),iqc);muc=new Nsd(goe,nuc);bvc=(lzc(),jzc);avc=new Nsd(hoe,bvc);Tuc=(Ctc(),Btc);Suc=new Nsd(ioe,Tuc);meb(-1);Ruc=new Nsd(joe,meb(-1));meb(-1);Uuc=new Nsd(koe,meb(-1));meb(-1);Vuc=new Nsd(loe,meb(4));meb(-1);Xuc=new Nsd(moe,meb(2));_uc=(kAc(),iAc);$uc=new Nsd(noe,_uc);meb(0);Zuc=new Nsd(ooe,meb(0));Puc=new Nsd(poe,meb(Ohe));luc=(Rpc(),Ppc);kuc=new Nsd(qoe,luc);Xtc=new Nsd(roe,false);euc=new Nsd(soe,0.1);iuc=new Nsd(toe,false);meb(-1);guc=new Nsd(uoe,meb(-1));meb(-1);huc=new Nsd(voe,meb(-1));meb(0);Ytc=new Nsd(woe,meb(40));cuc=(Xrc(),Wrc);buc=new Nsd(xoe,cuc);$tc=Urc;Ztc=new Nsd(yoe,$tc);vvc=(Vzc(),Qzc);uvc=new Nsd(zoe,vvc);kvc=new Lsd(Aoe);fvc=(_qc(),Zqc);evc=new Nsd(Boe,fvc);ivc=(lrc(),irc);hvc=new Nsd(Coe,ivc);new Tfd;nvc=new Nsd(Doe,0.3);pvc=new Lsd(Eoe);rvc=(Izc(),Gzc);qvc=new Nsd(Foe,rvc);xuc=(TAc(),RAc);wuc=new Nsd(Goe,xuc);zuc=(_Ac(),$Ac);yuc=new Nsd(Hoe,zuc);Buc=(tBc(),sBc);Auc=new Nsd(Ioe,Buc);Duc=new Nsd(Joe,0.2);uuc=new Nsd(Koe,2);Bvc=new Nsd(Loe,null);Dvc=new Nsd(Moe,10);Cvc=new Nsd(Noe,10);Evc=new Nsd(Ooe,20);meb(0);yvc=new Nsd(Poe,meb(0));meb(0);zvc=new Nsd(Qoe,meb(0));meb(0);Avc=new Nsd(Roe,meb(0));Jtc=new Nsd(Soe,false);Ntc=(yrc(),wrc);Mtc=new Nsd(Toe,Ntc);Ltc=(Ipc(),Hpc);Ktc=new Nsd(Uoe,Ltc);Juc=new Nsd(Voe,false);meb(0);Iuc=new Nsd(Woe,meb(16));meb(0);Kuc=new Nsd(Xoe,meb(5));bwc=(LBc(),JBc);awc=new Nsd(Yoe,bwc);Hvc=new Nsd(Zoe,10);Kvc=new Nsd($oe,1);Tvc=(bqc(),aqc);Svc=new Nsd(_oe,Tvc);Nvc=new Lsd(ape);Qvc=meb(1);meb(0);Pvc=new Nsd(bpe,Qvc);gwc=(CBc(),zBc);fwc=new Nsd(cpe,gwc);cwc=new Lsd(dpe);Yvc=new Nsd(epe,true);Wvc=new Nsd(fpe,2);$vc=new Nsd(gpe,true);tuc=(Sqc(),Qqc);suc=new Nsd(hpe,tuc);ruc=(Apc(),wpc);quc=new Nsd(ipe,ruc);Wtc=(tAc(),rAc);Vtc=new Nsd(jpe,Wtc);Utc=new Nsd(kpe,false);Ptc=(RXb(),QXb);Otc=new Nsd(lpe,Ptc);Ttc=(xzc(),uzc);Stc=new Nsd(mpe,Ttc);Qtc=new Nsd(npe,0);Rtc=new Nsd(ope,0);Ouc=kqc;Nuc=Opc;Wuc=izc;Yuc=izc;Quc=fzc;fuc=(hbd(),ebd);juc=Ppc;duc=Ppc;_tc=Ppc;auc=ebd;lvc=Tzc;mvc=Qzc;gvc=Qzc;jvc=Qzc;ovc=Szc;tvc=Tzc;svc=Tzc;Cuc=(Aad(),yad);Euc=yad;Fuc=sBc;vuc=xad;Ivc=KBc;Jvc=IBc;Lvc=KBc;Mvc=IBc;Uvc=KBc;Vvc=IBc;Ovc=_pc;Rvc=aqc;hwc=KBc;iwc=IBc;dwc=KBc;ewc=IBc;Zvc=IBc;Xvc=IBc;_vc=IBc} +function S8b(){S8b=ccb;Y7b=new T8b('DIRECTION_PREPROCESSOR',0);V7b=new T8b('COMMENT_PREPROCESSOR',1);Z7b=new T8b('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);n8b=new T8b('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);G8b=new T8b('PARTITION_PREPROCESSOR',4);r8b=new T8b('LABEL_DUMMY_INSERTER',5);M8b=new T8b('SELF_LOOP_PREPROCESSOR',6);w8b=new T8b('LAYER_CONSTRAINT_PREPROCESSOR',7);E8b=new T8b('PARTITION_MIDPROCESSOR',8);i8b=new T8b('HIGH_DEGREE_NODE_LAYER_PROCESSOR',9);A8b=new T8b('NODE_PROMOTION',10);v8b=new T8b('LAYER_CONSTRAINT_POSTPROCESSOR',11);F8b=new T8b('PARTITION_POSTPROCESSOR',12);e8b=new T8b('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',13);O8b=new T8b('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',14);P7b=new T8b('BREAKING_POINT_INSERTER',15);z8b=new T8b('LONG_EDGE_SPLITTER',16);I8b=new T8b('PORT_SIDE_PROCESSOR',17);o8b=new T8b('INVERTED_PORT_PROCESSOR',18);H8b=new T8b('PORT_LIST_SORTER',19);Q8b=new T8b('SORT_BY_INPUT_ORDER_OF_MODEL',20);C8b=new T8b('NORTH_SOUTH_PORT_PREPROCESSOR',21);Q7b=new T8b('BREAKING_POINT_PROCESSOR',22);D8b=new T8b(Bne,23);R8b=new T8b(Cne,24);K8b=new T8b('SELF_LOOP_PORT_RESTORER',25);P8b=new T8b('SINGLE_EDGE_GRAPH_WRAPPER',26);p8b=new T8b('IN_LAYER_CONSTRAINT_PROCESSOR',27);b8b=new T8b('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',28);q8b=new T8b('LABEL_AND_NODE_SIZE_PROCESSOR',29);m8b=new T8b('INNERMOST_NODE_MARGIN_CALCULATOR',30);N8b=new T8b('SELF_LOOP_ROUTER',31);T7b=new T8b('COMMENT_NODE_MARGIN_CALCULATOR',32);_7b=new T8b('END_LABEL_PREPROCESSOR',33);t8b=new T8b('LABEL_DUMMY_SWITCHER',34);S7b=new T8b('CENTER_LABEL_MANAGEMENT_PROCESSOR',35);u8b=new T8b('LABEL_SIDE_SELECTOR',36);k8b=new T8b('HYPEREDGE_DUMMY_MERGER',37);f8b=new T8b('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',38);x8b=new T8b('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',39);h8b=new T8b('HIERARCHICAL_PORT_POSITION_PROCESSOR',40);W7b=new T8b('CONSTRAINTS_POSTPROCESSOR',41);U7b=new T8b('COMMENT_POSTPROCESSOR',42);l8b=new T8b('HYPERNODE_PROCESSOR',43);g8b=new T8b('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',44);y8b=new T8b('LONG_EDGE_JOINER',45);L8b=new T8b('SELF_LOOP_POSTPROCESSOR',46);R7b=new T8b('BREAKING_POINT_REMOVER',47);B8b=new T8b('NORTH_SOUTH_PORT_POSTPROCESSOR',48);j8b=new T8b('HORIZONTAL_COMPACTOR',49);s8b=new T8b('LABEL_DUMMY_REMOVER',50);c8b=new T8b('FINAL_SPLINE_BENDPOINTS_CALCULATOR',51);a8b=new T8b('END_LABEL_SORTER',52);J8b=new T8b('REVERSED_EDGE_RESTORER',53);$7b=new T8b('END_LABEL_POSTPROCESSOR',54);d8b=new T8b('HIERARCHICAL_NODE_RESIZER',55);X7b=new T8b('DIRECTION_POSTPROCESSOR',56)} +function KIc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb;cb=0;for(H=b,K=0,N=H.length;K<N;++K){F=H[K];for(V=new olb(F.j);V.a<V.c.c.length;){U=BD(mlb(V),11);X=0;for(h=new olb(U.g);h.a<h.c.c.length;){g=BD(mlb(h),17);F.c!=g.d.i.c&&++X}X>0&&(a.a[U.p]=cb++)}}hb=0;for(I=c,L=0,O=I.length;L<O;++L){F=I[L];P=0;for(V=new olb(F.j);V.a<V.c.c.length;){U=BD(mlb(V),11);if(U.j==(Ucd(),Acd)){for(h=new olb(U.e);h.a<h.c.c.length;){g=BD(mlb(h),17);if(F.c!=g.c.i.c){++P;break}}}else{break}}R=0;Y=new Bib(F.j,F.j.c.length);while(Y.b>0){U=(sCb(Y.b>0),BD(Y.a.Xb(Y.c=--Y.b),11));X=0;for(h=new olb(U.e);h.a<h.c.c.length;){g=BD(mlb(h),17);F.c!=g.c.i.c&&++X}if(X>0){if(U.j==(Ucd(),Acd)){a.a[U.p]=hb;++hb}else{a.a[U.p]=hb+P+R;++R}}}hb+=R}W=new Lqb;o=new zsb;for(G=b,J=0,M=G.length;J<M;++J){F=G[J];for(fb=new olb(F.j);fb.a<fb.c.c.length;){eb=BD(mlb(fb),11);for(h=new olb(eb.g);h.a<h.c.c.length;){g=BD(mlb(h),17);jb=g.d;if(F.c!=jb.i.c){db=BD(Wd(irb(W.f,eb)),467);ib=BD(Wd(irb(W.f,jb)),467);if(!db&&!ib){n=new NIc;o.a.zc(n,o);Ekb(n.a,g);Ekb(n.d,eb);jrb(W.f,eb,n);Ekb(n.d,jb);jrb(W.f,jb,n)}else if(!db){Ekb(ib.a,g);Ekb(ib.d,eb);jrb(W.f,eb,ib)}else if(!ib){Ekb(db.a,g);Ekb(db.d,jb);jrb(W.f,jb,db)}else if(db==ib){Ekb(db.a,g)}else{Ekb(db.a,g);for(T=new olb(ib.d);T.a<T.c.c.length;){S=BD(mlb(T),11);jrb(W.f,S,db)}Gkb(db.a,ib.a);Gkb(db.d,ib.d);o.a.Bc(ib)!=null}}}}}p=BD(Ee(o,KC(oY,{3:1,4:1,5:1,1946:1},467,o.a.gc(),0,1)),1946);D=b[0].c;bb=c[0].c;for(k=p,l=0,m=k.length;l<m;++l){j=k[l];j.e=cb;j.f=hb;for(V=new olb(j.d);V.a<V.c.c.length;){U=BD(mlb(V),11);Z=a.a[U.p];if(U.i.c==D){Z<j.e&&(j.e=Z);Z>j.b&&(j.b=Z)}else if(U.i.c==bb){Z<j.f&&(j.f=Z);Z>j.c&&(j.c=Z)}}}Klb(p,0,p.length,null);gb=KC(WD,oje,25,p.length,15,1);d=KC(WD,oje,25,hb+1,15,1);for(r=0;r<p.length;r++){gb[r]=p[r].f;d[gb[r]]=1}f=0;for(s=0;s<d.length;s++){d[s]==1?(d[s]=f):--f}$=0;for(t=0;t<gb.length;t++){gb[t]+=d[gb[t]];$=$wnd.Math.max($,gb[t]+1)}i=1;while(i<$){i*=2}lb=2*i-1;i-=1;kb=KC(WD,oje,25,lb,15,1);e=0;for(B=0;B<gb.length;B++){A=gb[B]+i;++kb[A];while(A>0){A%2>0&&(e+=kb[A+1]);A=(A-1)/2|0;++kb[A]}}C=KC(nY,Uhe,362,p.length*2,0,1);for(u=0;u<p.length;u++){C[2*u]=new QIc(p[u],p[u].e,p[u].b,(UIc(),TIc));C[2*u+1]=new QIc(p[u],p[u].b,p[u].e,SIc)}Klb(C,0,C.length,null);Q=0;for(v=0;v<C.length;v++){switch(C[v].d.g){case 0:++Q;break;case 1:--Q;e+=Q;}}ab=KC(nY,Uhe,362,p.length*2,0,1);for(w=0;w<p.length;w++){ab[2*w]=new QIc(p[w],p[w].f,p[w].c,(UIc(),TIc));ab[2*w+1]=new QIc(p[w],p[w].c,p[w].f,SIc)}Klb(ab,0,ab.length,null);Q=0;for(q=0;q<ab.length;q++){switch(ab[q].d.g){case 0:++Q;break;case 1:--Q;e+=Q;}}return e} +function wfe(){wfe=ccb;ffe=new xfe(7);hfe=(++vfe,new ige(8,94));++vfe;new ige(8,64);ife=(++vfe,new ige(8,36));ofe=(++vfe,new ige(8,65));pfe=(++vfe,new ige(8,122));qfe=(++vfe,new ige(8,90));tfe=(++vfe,new ige(8,98));mfe=(++vfe,new ige(8,66));rfe=(++vfe,new ige(8,60));ufe=(++vfe,new ige(8,62));efe=new xfe(11);cfe=(++vfe,new $fe(4));Ufe(cfe,48,57);sfe=(++vfe,new $fe(4));Ufe(sfe,48,57);Ufe(sfe,65,90);Ufe(sfe,95,95);Ufe(sfe,97,122);nfe=(++vfe,new $fe(4));Ufe(nfe,9,9);Ufe(nfe,10,10);Ufe(nfe,12,12);Ufe(nfe,13,13);Ufe(nfe,32,32);jfe=_fe(cfe);lfe=_fe(sfe);kfe=_fe(nfe);Zee=new Lqb;$ee=new Lqb;_ee=OC(GC(ZI,1),nie,2,6,['Cn','Lu','Ll','Lt','Lm','Lo','Mn','Me','Mc','Nd','Nl','No','Zs','Zl','Zp','Cc','Cf',null,'Co','Cs','Pd','Ps','Pe','Pc','Po','Sm','Sc','Sk','So','Pi','Pf','L','M','N','Z','C','P','S']);Yee=OC(GC(ZI,1),nie,2,6,['Basic Latin','Latin-1 Supplement','Latin Extended-A','Latin Extended-B','IPA Extensions','Spacing Modifier Letters','Combining Diacritical Marks','Greek','Cyrillic','Armenian','Hebrew','Arabic','Syriac','Thaana','Devanagari','Bengali','Gurmukhi','Gujarati','Oriya','Tamil','Telugu','Kannada','Malayalam','Sinhala','Thai','Lao','Tibetan','Myanmar','Georgian','Hangul Jamo','Ethiopic','Cherokee','Unified Canadian Aboriginal Syllabics','Ogham','Runic','Khmer','Mongolian','Latin Extended Additional','Greek Extended','General Punctuation','Superscripts and Subscripts','Currency Symbols','Combining Marks for Symbols','Letterlike Symbols','Number Forms','Arrows','Mathematical Operators','Miscellaneous Technical','Control Pictures','Optical Character Recognition','Enclosed Alphanumerics','Box Drawing','Block Elements','Geometric Shapes','Miscellaneous Symbols','Dingbats','Braille Patterns','CJK Radicals Supplement','Kangxi Radicals','Ideographic Description Characters','CJK Symbols and Punctuation','Hiragana','Katakana','Bopomofo','Hangul Compatibility Jamo','Kanbun','Bopomofo Extended','Enclosed CJK Letters and Months','CJK Compatibility','CJK Unified Ideographs Extension A','CJK Unified Ideographs','Yi Syllables','Yi Radicals','Hangul Syllables',uxe,'CJK Compatibility Ideographs','Alphabetic Presentation Forms','Arabic Presentation Forms-A','Combining Half Marks','CJK Compatibility Forms','Small Form Variants','Arabic Presentation Forms-B','Specials','Halfwidth and Fullwidth Forms','Old Italic','Gothic','Deseret','Byzantine Musical Symbols','Musical Symbols','Mathematical Alphanumeric Symbols','CJK Unified Ideographs Extension B','CJK Compatibility Ideographs Supplement','Tags']);afe=OC(GC(WD,1),oje,25,15,[66304,66351,66352,66383,66560,66639,118784,119039,119040,119295,119808,120831,131072,173782,194560,195103,917504,917631])} +function qJb(){qJb=ccb;nJb=new tJb('OUT_T_L',0,(NHb(),LHb),(EIb(),BIb),(gHb(),dHb),dHb,OC(GC(LK,1),Uhe,21,0,[qqb((Hbd(),Dbd),OC(GC(B1,1),Kie,93,0,[Gbd,zbd]))]));mJb=new tJb('OUT_T_C',1,KHb,BIb,dHb,eHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Gbd,ybd])),qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Gbd,ybd,Abd]))]));oJb=new tJb('OUT_T_R',2,MHb,BIb,dHb,fHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Gbd,Bbd]))]));eJb=new tJb('OUT_B_L',3,LHb,DIb,fHb,dHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Ebd,zbd]))]));dJb=new tJb('OUT_B_C',4,KHb,DIb,fHb,eHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Ebd,ybd])),qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Ebd,ybd,Abd]))]));fJb=new tJb('OUT_B_R',5,MHb,DIb,fHb,fHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Ebd,Bbd]))]));iJb=new tJb('OUT_L_T',6,MHb,DIb,dHb,dHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[zbd,Gbd,Abd]))]));hJb=new tJb('OUT_L_C',7,MHb,CIb,eHb,dHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[zbd,Fbd])),qqb(Dbd,OC(GC(B1,1),Kie,93,0,[zbd,Fbd,Abd]))]));gJb=new tJb('OUT_L_B',8,MHb,BIb,fHb,dHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[zbd,Ebd,Abd]))]));lJb=new tJb('OUT_R_T',9,LHb,DIb,dHb,fHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Bbd,Gbd,Abd]))]));kJb=new tJb('OUT_R_C',10,LHb,CIb,eHb,fHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Bbd,Fbd])),qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Bbd,Fbd,Abd]))]));jJb=new tJb('OUT_R_B',11,LHb,BIb,fHb,fHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Bbd,Ebd,Abd]))]));bJb=new tJb('IN_T_L',12,LHb,DIb,dHb,dHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Gbd,zbd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Gbd,zbd,Abd]))]));aJb=new tJb('IN_T_C',13,KHb,DIb,dHb,eHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Gbd,ybd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Gbd,ybd,Abd]))]));cJb=new tJb('IN_T_R',14,MHb,DIb,dHb,fHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Gbd,Bbd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Gbd,Bbd,Abd]))]));$Ib=new tJb('IN_C_L',15,LHb,CIb,eHb,dHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Fbd,zbd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Fbd,zbd,Abd]))]));ZIb=new tJb('IN_C_C',16,KHb,CIb,eHb,eHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Fbd,ybd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Fbd,ybd,Abd]))]));_Ib=new tJb('IN_C_R',17,MHb,CIb,eHb,fHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Fbd,Bbd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Fbd,Bbd,Abd]))]));XIb=new tJb('IN_B_L',18,LHb,BIb,fHb,dHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Ebd,zbd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Ebd,zbd,Abd]))]));WIb=new tJb('IN_B_C',19,KHb,BIb,fHb,eHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Ebd,ybd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Ebd,ybd,Abd]))]));YIb=new tJb('IN_B_R',20,MHb,BIb,fHb,fHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Ebd,Bbd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Ebd,Bbd,Abd]))]));pJb=new tJb(ole,21,null,null,null,null,OC(GC(LK,1),Uhe,21,0,[]))} +function jGd(){jGd=ccb;PFd=(NFd(),MFd).b;BD(qud(ZKd(MFd.b),0),34);BD(qud(ZKd(MFd.b),1),18);OFd=MFd.a;BD(qud(ZKd(MFd.a),0),34);BD(qud(ZKd(MFd.a),1),18);BD(qud(ZKd(MFd.a),2),18);BD(qud(ZKd(MFd.a),3),18);BD(qud(ZKd(MFd.a),4),18);QFd=MFd.o;BD(qud(ZKd(MFd.o),0),34);BD(qud(ZKd(MFd.o),1),34);SFd=BD(qud(ZKd(MFd.o),2),18);BD(qud(ZKd(MFd.o),3),18);BD(qud(ZKd(MFd.o),4),18);BD(qud(ZKd(MFd.o),5),18);BD(qud(ZKd(MFd.o),6),18);BD(qud(ZKd(MFd.o),7),18);BD(qud(ZKd(MFd.o),8),18);BD(qud(ZKd(MFd.o),9),18);BD(qud(ZKd(MFd.o),10),18);BD(qud(ZKd(MFd.o),11),18);BD(qud(ZKd(MFd.o),12),18);BD(qud(ZKd(MFd.o),13),18);BD(qud(ZKd(MFd.o),14),18);BD(qud(ZKd(MFd.o),15),18);BD(qud(WKd(MFd.o),0),59);BD(qud(WKd(MFd.o),1),59);BD(qud(WKd(MFd.o),2),59);BD(qud(WKd(MFd.o),3),59);BD(qud(WKd(MFd.o),4),59);BD(qud(WKd(MFd.o),5),59);BD(qud(WKd(MFd.o),6),59);BD(qud(WKd(MFd.o),7),59);BD(qud(WKd(MFd.o),8),59);BD(qud(WKd(MFd.o),9),59);RFd=MFd.p;BD(qud(ZKd(MFd.p),0),34);BD(qud(ZKd(MFd.p),1),34);BD(qud(ZKd(MFd.p),2),34);BD(qud(ZKd(MFd.p),3),34);BD(qud(ZKd(MFd.p),4),18);BD(qud(ZKd(MFd.p),5),18);BD(qud(WKd(MFd.p),0),59);BD(qud(WKd(MFd.p),1),59);TFd=MFd.q;BD(qud(ZKd(MFd.q),0),34);UFd=MFd.v;BD(qud(ZKd(MFd.v),0),18);BD(qud(WKd(MFd.v),0),59);BD(qud(WKd(MFd.v),1),59);BD(qud(WKd(MFd.v),2),59);VFd=MFd.w;BD(qud(ZKd(MFd.w),0),34);BD(qud(ZKd(MFd.w),1),34);BD(qud(ZKd(MFd.w),2),34);BD(qud(ZKd(MFd.w),3),18);WFd=MFd.B;BD(qud(ZKd(MFd.B),0),18);BD(qud(WKd(MFd.B),0),59);BD(qud(WKd(MFd.B),1),59);BD(qud(WKd(MFd.B),2),59);ZFd=MFd.Q;BD(qud(ZKd(MFd.Q),0),18);BD(qud(WKd(MFd.Q),0),59);$Fd=MFd.R;BD(qud(ZKd(MFd.R),0),34);_Fd=MFd.S;BD(qud(WKd(MFd.S),0),59);BD(qud(WKd(MFd.S),1),59);BD(qud(WKd(MFd.S),2),59);BD(qud(WKd(MFd.S),3),59);BD(qud(WKd(MFd.S),4),59);BD(qud(WKd(MFd.S),5),59);BD(qud(WKd(MFd.S),6),59);BD(qud(WKd(MFd.S),7),59);BD(qud(WKd(MFd.S),8),59);BD(qud(WKd(MFd.S),9),59);BD(qud(WKd(MFd.S),10),59);BD(qud(WKd(MFd.S),11),59);BD(qud(WKd(MFd.S),12),59);BD(qud(WKd(MFd.S),13),59);BD(qud(WKd(MFd.S),14),59);aGd=MFd.T;BD(qud(ZKd(MFd.T),0),18);BD(qud(ZKd(MFd.T),2),18);bGd=BD(qud(ZKd(MFd.T),3),18);BD(qud(ZKd(MFd.T),4),18);BD(qud(WKd(MFd.T),0),59);BD(qud(WKd(MFd.T),1),59);BD(qud(ZKd(MFd.T),1),18);cGd=MFd.U;BD(qud(ZKd(MFd.U),0),34);BD(qud(ZKd(MFd.U),1),34);BD(qud(ZKd(MFd.U),2),18);BD(qud(ZKd(MFd.U),3),18);BD(qud(ZKd(MFd.U),4),18);BD(qud(ZKd(MFd.U),5),18);BD(qud(WKd(MFd.U),0),59);dGd=MFd.V;BD(qud(ZKd(MFd.V),0),18);eGd=MFd.W;BD(qud(ZKd(MFd.W),0),34);BD(qud(ZKd(MFd.W),1),34);BD(qud(ZKd(MFd.W),2),34);BD(qud(ZKd(MFd.W),3),18);BD(qud(ZKd(MFd.W),4),18);BD(qud(ZKd(MFd.W),5),18);gGd=MFd.bb;BD(qud(ZKd(MFd.bb),0),34);BD(qud(ZKd(MFd.bb),1),34);BD(qud(ZKd(MFd.bb),2),34);BD(qud(ZKd(MFd.bb),3),34);BD(qud(ZKd(MFd.bb),4),34);BD(qud(ZKd(MFd.bb),5),34);BD(qud(ZKd(MFd.bb),6),34);BD(qud(ZKd(MFd.bb),7),18);BD(qud(WKd(MFd.bb),0),59);BD(qud(WKd(MFd.bb),1),59);hGd=MFd.eb;BD(qud(ZKd(MFd.eb),0),34);BD(qud(ZKd(MFd.eb),1),34);BD(qud(ZKd(MFd.eb),2),34);BD(qud(ZKd(MFd.eb),3),34);BD(qud(ZKd(MFd.eb),4),34);BD(qud(ZKd(MFd.eb),5),34);BD(qud(ZKd(MFd.eb),6),18);BD(qud(ZKd(MFd.eb),7),18);fGd=MFd.ab;BD(qud(ZKd(MFd.ab),0),34);BD(qud(ZKd(MFd.ab),1),34);XFd=MFd.H;BD(qud(ZKd(MFd.H),0),18);BD(qud(ZKd(MFd.H),1),18);BD(qud(ZKd(MFd.H),2),18);BD(qud(ZKd(MFd.H),3),18);BD(qud(ZKd(MFd.H),4),18);BD(qud(ZKd(MFd.H),5),18);BD(qud(WKd(MFd.H),0),59);iGd=MFd.db;BD(qud(ZKd(MFd.db),0),18);YFd=MFd.M} +function bae(a){var b;if(a.O)return;a.O=true;pnd(a,'type');cod(a,'ecore.xml.type');dod(a,Ewe);b=BD(nUd((yFd(),xFd),Ewe),1945);wtd(_Kd(a.fb),a.b);Xnd(a.b,Q9,'AnyType',false,false,true);Vnd(BD(qud(ZKd(a.b),0),34),a.wb.D,Qve,null,0,-1,Q9,false,false,true,false,false,false);Vnd(BD(qud(ZKd(a.b),1),34),a.wb.D,'any',null,0,-1,Q9,true,true,true,false,false,true);Vnd(BD(qud(ZKd(a.b),2),34),a.wb.D,'anyAttribute',null,0,-1,Q9,false,false,true,false,false,false);Xnd(a.bb,S9,Jwe,false,false,true);Vnd(BD(qud(ZKd(a.bb),0),34),a.gb,'data',null,0,1,S9,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.bb),1),34),a.gb,bue,null,1,1,S9,false,false,true,false,true,false);Xnd(a.fb,T9,Kwe,false,false,true);Vnd(BD(qud(ZKd(a.fb),0),34),b.gb,'rawValue',null,0,1,T9,true,true,true,false,true,true);Vnd(BD(qud(ZKd(a.fb),1),34),b.a,Bte,null,0,1,T9,true,true,true,false,true,true);_nd(BD(qud(ZKd(a.fb),2),18),a.wb.q,null,'instanceType',1,1,T9,false,false,true,false,false,false,false);Xnd(a.qb,U9,Lwe,false,false,true);Vnd(BD(qud(ZKd(a.qb),0),34),a.wb.D,Qve,null,0,-1,null,false,false,true,false,false,false);_nd(BD(qud(ZKd(a.qb),1),18),a.wb.ab,null,'xMLNSPrefixMap',0,-1,null,true,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.qb),2),18),a.wb.ab,null,'xSISchemaLocation',0,-1,null,true,false,true,true,false,false,false);Vnd(BD(qud(ZKd(a.qb),3),34),a.gb,'cDATA',null,0,-2,null,true,true,true,false,false,true);Vnd(BD(qud(ZKd(a.qb),4),34),a.gb,'comment',null,0,-2,null,true,true,true,false,false,true);_nd(BD(qud(ZKd(a.qb),5),18),a.bb,null,jxe,0,-2,null,true,true,true,true,false,false,true);Vnd(BD(qud(ZKd(a.qb),6),34),a.gb,Ite,null,0,-2,null,true,true,true,false,false,true);Znd(a.a,SI,'AnySimpleType',true);Znd(a.c,ZI,'AnyURI',true);Znd(a.d,GC(SD,1),'Base64Binary',true);Znd(a.e,sbb,'Boolean',true);Znd(a.f,wI,'BooleanObject',true);Znd(a.g,SD,'Byte',true);Znd(a.i,xI,'ByteObject',true);Znd(a.j,ZI,'Date',true);Znd(a.k,ZI,'DateTime',true);Znd(a.n,bJ,'Decimal',true);Znd(a.o,UD,'Double',true);Znd(a.p,BI,'DoubleObject',true);Znd(a.q,ZI,'Duration',true);Znd(a.s,yK,'ENTITIES',true);Znd(a.r,yK,'ENTITIESBase',true);Znd(a.t,ZI,Rwe,true);Znd(a.u,VD,'Float',true);Znd(a.v,FI,'FloatObject',true);Znd(a.w,ZI,'GDay',true);Znd(a.B,ZI,'GMonth',true);Znd(a.A,ZI,'GMonthDay',true);Znd(a.C,ZI,'GYear',true);Znd(a.D,ZI,'GYearMonth',true);Znd(a.F,GC(SD,1),'HexBinary',true);Znd(a.G,ZI,'ID',true);Znd(a.H,ZI,'IDREF',true);Znd(a.J,yK,'IDREFS',true);Znd(a.I,yK,'IDREFSBase',true);Znd(a.K,WD,'Int',true);Znd(a.M,cJ,'Integer',true);Znd(a.L,JI,'IntObject',true);Znd(a.P,ZI,'Language',true);Znd(a.Q,XD,'Long',true);Znd(a.R,MI,'LongObject',true);Znd(a.S,ZI,'Name',true);Znd(a.T,ZI,Swe,true);Znd(a.U,cJ,'NegativeInteger',true);Znd(a.V,ZI,axe,true);Znd(a.X,yK,'NMTOKENS',true);Znd(a.W,yK,'NMTOKENSBase',true);Znd(a.Y,cJ,'NonNegativeInteger',true);Znd(a.Z,cJ,'NonPositiveInteger',true);Znd(a.$,ZI,'NormalizedString',true);Znd(a._,ZI,'NOTATION',true);Znd(a.ab,ZI,'PositiveInteger',true);Znd(a.cb,ZI,'QName',true);Znd(a.db,rbb,'Short',true);Znd(a.eb,UI,'ShortObject',true);Znd(a.gb,ZI,Vie,true);Znd(a.hb,ZI,'Time',true);Znd(a.ib,ZI,'Token',true);Znd(a.jb,rbb,'UnsignedByte',true);Znd(a.kb,UI,'UnsignedByteObject',true);Znd(a.lb,XD,'UnsignedInt',true);Znd(a.mb,MI,'UnsignedIntObject',true);Znd(a.nb,cJ,'UnsignedLong',true);Znd(a.ob,WD,'UnsignedShort',true);Znd(a.pb,JI,'UnsignedShortObject',true);Rnd(a,Ewe);_9d(a)} +function Oyc(a){r4c(a,new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c,sne),'ELK Layered'),'Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level.'),new Ryc),sne),qqb((Csd(),Bsd),OC(GC(O3,1),Kie,237,0,[ysd,zsd,xsd,Asd,vsd,usd])))));p4c(a,sne,Lpe,Ksd(iyc));p4c(a,sne,Mpe,Ksd(jyc));p4c(a,sne,Zle,Ksd(kyc));p4c(a,sne,Npe,Ksd(lyc));p4c(a,sne,xme,Ksd(nyc));p4c(a,sne,Ope,Ksd(oyc));p4c(a,sne,Ppe,Ksd(ryc));p4c(a,sne,Qpe,Ksd(tyc));p4c(a,sne,Rpe,Ksd(uyc));p4c(a,sne,Spe,Ksd(syc));p4c(a,sne,wme,Ksd(vyc));p4c(a,sne,Tpe,Ksd(xyc));p4c(a,sne,Upe,Ksd(zyc));p4c(a,sne,Vpe,Ksd(qyc));p4c(a,sne,Loe,Ksd(hyc));p4c(a,sne,Noe,Ksd(myc));p4c(a,sne,Moe,Ksd(pyc));p4c(a,sne,Ooe,Ksd(wyc));p4c(a,sne,vme,meb(0));p4c(a,sne,Poe,Ksd(cyc));p4c(a,sne,Qoe,Ksd(dyc));p4c(a,sne,Roe,Ksd(eyc));p4c(a,sne,Yoe,Ksd(Kyc));p4c(a,sne,Zoe,Ksd(Cyc));p4c(a,sne,$oe,Ksd(Dyc));p4c(a,sne,_oe,Ksd(Gyc));p4c(a,sne,ape,Ksd(Eyc));p4c(a,sne,bpe,Ksd(Fyc));p4c(a,sne,cpe,Ksd(Myc));p4c(a,sne,dpe,Ksd(Lyc));p4c(a,sne,epe,Ksd(Iyc));p4c(a,sne,fpe,Ksd(Hyc));p4c(a,sne,gpe,Ksd(Jyc));p4c(a,sne,Eoe,Ksd(Cxc));p4c(a,sne,Foe,Ksd(Dxc));p4c(a,sne,Ioe,Ksd(Xwc));p4c(a,sne,Joe,Ksd(Ywc));p4c(a,sne,ame,Lxc);p4c(a,sne,ype,Twc);p4c(a,sne,Wpe,0);p4c(a,sne,yme,meb(1));p4c(a,sne,_le,tme);p4c(a,sne,Xpe,Ksd(Jxc));p4c(a,sne,Bme,Ksd(Vxc));p4c(a,sne,Ype,Ksd($xc));p4c(a,sne,Zpe,Ksd(Kwc));p4c(a,sne,$pe,Ksd(mwc));p4c(a,sne,tpe,Ksd(axc));p4c(a,sne,zme,(Bcb(),true));p4c(a,sne,_pe,Ksd(fxc));p4c(a,sne,aqe,Ksd(gxc));p4c(a,sne,Fme,Ksd(Fxc));p4c(a,sne,Eme,Ksd(Ixc));p4c(a,sne,bqe,Ksd(Gxc));p4c(a,sne,cqe,Nwc);p4c(a,sne,Gme,Ksd(xxc));p4c(a,sne,dqe,Ksd(wxc));p4c(a,sne,Hme,Ksd(Yxc));p4c(a,sne,eqe,Ksd(Xxc));p4c(a,sne,fqe,Ksd(Zxc));p4c(a,sne,gqe,Oxc);p4c(a,sne,hqe,Ksd(Qxc));p4c(a,sne,iqe,Ksd(Rxc));p4c(a,sne,jqe,Ksd(Sxc));p4c(a,sne,kqe,Ksd(Pxc));p4c(a,sne,eoe,Ksd(Byc));p4c(a,sne,hoe,Ksd(sxc));p4c(a,sne,noe,Ksd(rxc));p4c(a,sne,doe,Ksd(Ayc));p4c(a,sne,ioe,Ksd(mxc));p4c(a,sne,goe,Ksd(Jwc));p4c(a,sne,qoe,Ksd(Iwc));p4c(a,sne,roe,Ksd(Awc));p4c(a,sne,woe,Ksd(Bwc));p4c(a,sne,xoe,Ksd(Dwc));p4c(a,sne,yoe,Ksd(Cwc));p4c(a,sne,toe,Ksd(Hwc));p4c(a,sne,_ne,Ksd(uxc));p4c(a,sne,aoe,Ksd(vxc));p4c(a,sne,$ne,Ksd(ixc));p4c(a,sne,zoe,Ksd(Exc));p4c(a,sne,Coe,Ksd(zxc));p4c(a,sne,Zne,Ksd($wc));p4c(a,sne,Doe,Ksd(Bxc));p4c(a,sne,Goe,Ksd(Vwc));p4c(a,sne,Hoe,Ksd(Wwc));p4c(a,sne,lqe,Ksd(zwc));p4c(a,sne,Boe,Ksd(yxc));p4c(a,sne,Toe,Ksd(swc));p4c(a,sne,Uoe,Ksd(rwc));p4c(a,sne,Soe,Ksd(qwc));p4c(a,sne,Voe,Ksd(cxc));p4c(a,sne,Woe,Ksd(bxc));p4c(a,sne,Xoe,Ksd(dxc));p4c(a,sne,Tme,Ksd(Hxc));p4c(a,sne,mqe,Ksd(jxc));p4c(a,sne,$le,Ksd(Zwc));p4c(a,sne,nqe,Ksd(Qwc));p4c(a,sne,Cme,Ksd(Pwc));p4c(a,sne,soe,Ksd(Ewc));p4c(a,sne,oqe,Ksd(Wxc));p4c(a,sne,pqe,Ksd(pwc));p4c(a,sne,qqe,Ksd(exc));p4c(a,sne,rqe,Ksd(Txc));p4c(a,sne,sqe,Ksd(Mxc));p4c(a,sne,tqe,Ksd(Nxc));p4c(a,sne,loe,Ksd(oxc));p4c(a,sne,moe,Ksd(pxc));p4c(a,sne,uqe,Ksd(ayc));p4c(a,sne,boe,Ksd(nwc));p4c(a,sne,ooe,Ksd(qxc));p4c(a,sne,hpe,Ksd(Rwc));p4c(a,sne,ipe,Ksd(Owc));p4c(a,sne,vqe,Ksd(txc));p4c(a,sne,poe,Ksd(kxc));p4c(a,sne,Aoe,Ksd(Axc));p4c(a,sne,wqe,Ksd(yyc));p4c(a,sne,Yne,Ksd(Mwc));p4c(a,sne,coe,Ksd(_xc));p4c(a,sne,Koe,Ksd(Uwc));p4c(a,sne,joe,Ksd(lxc));p4c(a,sne,uoe,Ksd(Fwc));p4c(a,sne,xqe,Ksd(hxc));p4c(a,sne,koe,Ksd(nxc));p4c(a,sne,voe,Ksd(Gwc));p4c(a,sne,jpe,Ksd(ywc));p4c(a,sne,mpe,Ksd(wwc));p4c(a,sne,npe,Ksd(uwc));p4c(a,sne,ope,Ksd(vwc));p4c(a,sne,kpe,Ksd(xwc));p4c(a,sne,lpe,Ksd(twc));p4c(a,sne,foe,Ksd(_wc))} +function kee(a,b){var c,d;if(!cee){cee=new Lqb;dee=new Lqb;d=(wfe(),wfe(),++vfe,new $fe(4));Ree(d,'\t\n\r\r ');Shb(cee,pxe,d);Shb(dee,pxe,_fe(d));d=(null,++vfe,new $fe(4));Ree(d,sxe);Shb(cee,nxe,d);Shb(dee,nxe,_fe(d));d=(null,++vfe,new $fe(4));Ree(d,sxe);Shb(cee,nxe,d);Shb(dee,nxe,_fe(d));d=(null,++vfe,new $fe(4));Ree(d,txe);Xfe(d,BD(Phb(cee,nxe),117));Shb(cee,oxe,d);Shb(dee,oxe,_fe(d));d=(null,++vfe,new $fe(4));Ree(d,'-.0:AZ__az\xB7\xB7\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u02D0\u02D1\u0300\u0345\u0360\u0361\u0386\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0483\u0486\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u0591\u05A1\u05A3\u05B9\u05BB\u05BD\u05BF\u05BF\u05C1\u05C2\u05C4\u05C4\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0640\u0652\u0660\u0669\u0670\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06E8\u06EA\u06ED\u06F0\u06F9\u0901\u0903\u0905\u0939\u093C\u094D\u0951\u0954\u0958\u0963\u0966\u096F\u0981\u0983\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09BC\u09BC\u09BE\u09C4\u09C7\u09C8\u09CB\u09CD\u09D7\u09D7\u09DC\u09DD\u09DF\u09E3\u09E6\u09F1\u0A02\u0A02\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3C\u0A3E\u0A42\u0A47\u0A48\u0A4B\u0A4D\u0A59\u0A5C\u0A5E\u0A5E\u0A66\u0A74\u0A81\u0A83\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABC\u0AC5\u0AC7\u0AC9\u0ACB\u0ACD\u0AE0\u0AE0\u0AE6\u0AEF\u0B01\u0B03\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3C\u0B43\u0B47\u0B48\u0B4B\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F\u0B61\u0B66\u0B6F\u0B82\u0B83\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0BBE\u0BC2\u0BC6\u0BC8\u0BCA\u0BCD\u0BD7\u0BD7\u0BE7\u0BEF\u0C01\u0C03\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C3E\u0C44\u0C46\u0C48\u0C4A\u0C4D\u0C55\u0C56\u0C60\u0C61\u0C66\u0C6F\u0C82\u0C83\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CBE\u0CC4\u0CC6\u0CC8\u0CCA\u0CCD\u0CD5\u0CD6\u0CDE\u0CDE\u0CE0\u0CE1\u0CE6\u0CEF\u0D02\u0D03\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D3E\u0D43\u0D46\u0D48\u0D4A\u0D4D\u0D57\u0D57\u0D60\u0D61\u0D66\u0D6F\u0E01\u0E2E\u0E30\u0E3A\u0E40\u0E4E\u0E50\u0E59\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB9\u0EBB\u0EBD\u0EC0\u0EC4\u0EC6\u0EC6\u0EC8\u0ECD\u0ED0\u0ED9\u0F18\u0F19\u0F20\u0F29\u0F35\u0F35\u0F37\u0F37\u0F39\u0F39\u0F3E\u0F47\u0F49\u0F69\u0F71\u0F84\u0F86\u0F8B\u0F90\u0F95\u0F97\u0F97\u0F99\u0FAD\u0FB1\u0FB7\u0FB9\u0FB9\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u20D0\u20DC\u20E1\u20E1\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3005\u3005\u3007\u3007\u3021\u302F\u3031\u3035\u3041\u3094\u3099\u309A\u309D\u309E\u30A1\u30FA\u30FC\u30FE\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3');Shb(cee,qxe,d);Shb(dee,qxe,_fe(d));d=(null,++vfe,new $fe(4));Ree(d,txe);Ufe(d,95,95);Ufe(d,58,58);Shb(cee,rxe,d);Shb(dee,rxe,_fe(d))}c=b?BD(Phb(cee,a),136):BD(Phb(dee,a),136);return c} +function _9d(a){Bnd(a.a,Rve,OC(GC(ZI,1),nie,2,6,[fue,'anySimpleType']));Bnd(a.b,Rve,OC(GC(ZI,1),nie,2,6,[fue,'anyType',Sve,Qve]));Bnd(BD(qud(ZKd(a.b),0),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,xwe,fue,':mixed']));Bnd(BD(qud(ZKd(a.b),1),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,xwe,Dwe,Fwe,fue,':1',Owe,'lax']));Bnd(BD(qud(ZKd(a.b),2),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,vwe,Dwe,Fwe,fue,':2',Owe,'lax']));Bnd(a.c,Rve,OC(GC(ZI,1),nie,2,6,[fue,'anyURI',Cwe,ywe]));Bnd(a.d,Rve,OC(GC(ZI,1),nie,2,6,[fue,'base64Binary',Cwe,ywe]));Bnd(a.e,Rve,OC(GC(ZI,1),nie,2,6,[fue,Khe,Cwe,ywe]));Bnd(a.f,Rve,OC(GC(ZI,1),nie,2,6,[fue,'boolean:Object',cwe,Khe]));Bnd(a.g,Rve,OC(GC(ZI,1),nie,2,6,[fue,Eve]));Bnd(a.i,Rve,OC(GC(ZI,1),nie,2,6,[fue,'byte:Object',cwe,Eve]));Bnd(a.j,Rve,OC(GC(ZI,1),nie,2,6,[fue,'date',Cwe,ywe]));Bnd(a.k,Rve,OC(GC(ZI,1),nie,2,6,[fue,'dateTime',Cwe,ywe]));Bnd(a.n,Rve,OC(GC(ZI,1),nie,2,6,[fue,'decimal',Cwe,ywe]));Bnd(a.o,Rve,OC(GC(ZI,1),nie,2,6,[fue,Gve,Cwe,ywe]));Bnd(a.p,Rve,OC(GC(ZI,1),nie,2,6,[fue,'double:Object',cwe,Gve]));Bnd(a.q,Rve,OC(GC(ZI,1),nie,2,6,[fue,'duration',Cwe,ywe]));Bnd(a.s,Rve,OC(GC(ZI,1),nie,2,6,[fue,'ENTITIES',cwe,Pwe,Qwe,'1']));Bnd(a.r,Rve,OC(GC(ZI,1),nie,2,6,[fue,Pwe,zwe,Rwe]));Bnd(a.t,Rve,OC(GC(ZI,1),nie,2,6,[fue,Rwe,cwe,Swe]));Bnd(a.u,Rve,OC(GC(ZI,1),nie,2,6,[fue,Hve,Cwe,ywe]));Bnd(a.v,Rve,OC(GC(ZI,1),nie,2,6,[fue,'float:Object',cwe,Hve]));Bnd(a.w,Rve,OC(GC(ZI,1),nie,2,6,[fue,'gDay',Cwe,ywe]));Bnd(a.B,Rve,OC(GC(ZI,1),nie,2,6,[fue,'gMonth',Cwe,ywe]));Bnd(a.A,Rve,OC(GC(ZI,1),nie,2,6,[fue,'gMonthDay',Cwe,ywe]));Bnd(a.C,Rve,OC(GC(ZI,1),nie,2,6,[fue,'gYear',Cwe,ywe]));Bnd(a.D,Rve,OC(GC(ZI,1),nie,2,6,[fue,'gYearMonth',Cwe,ywe]));Bnd(a.F,Rve,OC(GC(ZI,1),nie,2,6,[fue,'hexBinary',Cwe,ywe]));Bnd(a.G,Rve,OC(GC(ZI,1),nie,2,6,[fue,'ID',cwe,Swe]));Bnd(a.H,Rve,OC(GC(ZI,1),nie,2,6,[fue,'IDREF',cwe,Swe]));Bnd(a.J,Rve,OC(GC(ZI,1),nie,2,6,[fue,'IDREFS',cwe,Twe,Qwe,'1']));Bnd(a.I,Rve,OC(GC(ZI,1),nie,2,6,[fue,Twe,zwe,'IDREF']));Bnd(a.K,Rve,OC(GC(ZI,1),nie,2,6,[fue,Ive]));Bnd(a.M,Rve,OC(GC(ZI,1),nie,2,6,[fue,Uwe]));Bnd(a.L,Rve,OC(GC(ZI,1),nie,2,6,[fue,'int:Object',cwe,Ive]));Bnd(a.P,Rve,OC(GC(ZI,1),nie,2,6,[fue,'language',cwe,Vwe,Wwe,Xwe]));Bnd(a.Q,Rve,OC(GC(ZI,1),nie,2,6,[fue,Jve]));Bnd(a.R,Rve,OC(GC(ZI,1),nie,2,6,[fue,'long:Object',cwe,Jve]));Bnd(a.S,Rve,OC(GC(ZI,1),nie,2,6,[fue,'Name',cwe,Vwe,Wwe,Ywe]));Bnd(a.T,Rve,OC(GC(ZI,1),nie,2,6,[fue,Swe,cwe,'Name',Wwe,Zwe]));Bnd(a.U,Rve,OC(GC(ZI,1),nie,2,6,[fue,'negativeInteger',cwe,$we,_we,'-1']));Bnd(a.V,Rve,OC(GC(ZI,1),nie,2,6,[fue,axe,cwe,Vwe,Wwe,'\\c+']));Bnd(a.X,Rve,OC(GC(ZI,1),nie,2,6,[fue,'NMTOKENS',cwe,bxe,Qwe,'1']));Bnd(a.W,Rve,OC(GC(ZI,1),nie,2,6,[fue,bxe,zwe,axe]));Bnd(a.Y,Rve,OC(GC(ZI,1),nie,2,6,[fue,cxe,cwe,Uwe,dxe,'0']));Bnd(a.Z,Rve,OC(GC(ZI,1),nie,2,6,[fue,$we,cwe,Uwe,_we,'0']));Bnd(a.$,Rve,OC(GC(ZI,1),nie,2,6,[fue,exe,cwe,Mhe,Cwe,'replace']));Bnd(a._,Rve,OC(GC(ZI,1),nie,2,6,[fue,'NOTATION',Cwe,ywe]));Bnd(a.ab,Rve,OC(GC(ZI,1),nie,2,6,[fue,'positiveInteger',cwe,cxe,dxe,'1']));Bnd(a.bb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'processingInstruction_._type',Sve,'empty']));Bnd(BD(qud(ZKd(a.bb),0),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,uwe,fue,'data']));Bnd(BD(qud(ZKd(a.bb),1),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,uwe,fue,bue]));Bnd(a.cb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'QName',Cwe,ywe]));Bnd(a.db,Rve,OC(GC(ZI,1),nie,2,6,[fue,Kve]));Bnd(a.eb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'short:Object',cwe,Kve]));Bnd(a.fb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'simpleAnyType',Sve,twe]));Bnd(BD(qud(ZKd(a.fb),0),34),Rve,OC(GC(ZI,1),nie,2,6,[fue,':3',Sve,twe]));Bnd(BD(qud(ZKd(a.fb),1),34),Rve,OC(GC(ZI,1),nie,2,6,[fue,':4',Sve,twe]));Bnd(BD(qud(ZKd(a.fb),2),18),Rve,OC(GC(ZI,1),nie,2,6,[fue,':5',Sve,twe]));Bnd(a.gb,Rve,OC(GC(ZI,1),nie,2,6,[fue,Mhe,Cwe,'preserve']));Bnd(a.hb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'time',Cwe,ywe]));Bnd(a.ib,Rve,OC(GC(ZI,1),nie,2,6,[fue,Vwe,cwe,exe,Cwe,ywe]));Bnd(a.jb,Rve,OC(GC(ZI,1),nie,2,6,[fue,fxe,_we,'255',dxe,'0']));Bnd(a.kb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'unsignedByte:Object',cwe,fxe]));Bnd(a.lb,Rve,OC(GC(ZI,1),nie,2,6,[fue,gxe,_we,'4294967295',dxe,'0']));Bnd(a.mb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'unsignedInt:Object',cwe,gxe]));Bnd(a.nb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'unsignedLong',cwe,cxe,_we,hxe,dxe,'0']));Bnd(a.ob,Rve,OC(GC(ZI,1),nie,2,6,[fue,ixe,_we,'65535',dxe,'0']));Bnd(a.pb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'unsignedShort:Object',cwe,ixe]));Bnd(a.qb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'',Sve,Qve]));Bnd(BD(qud(ZKd(a.qb),0),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,xwe,fue,':mixed']));Bnd(BD(qud(ZKd(a.qb),1),18),Rve,OC(GC(ZI,1),nie,2,6,[Sve,uwe,fue,'xmlns:prefix']));Bnd(BD(qud(ZKd(a.qb),2),18),Rve,OC(GC(ZI,1),nie,2,6,[Sve,uwe,fue,'xsi:schemaLocation']));Bnd(BD(qud(ZKd(a.qb),3),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,wwe,fue,'cDATA',Awe,Bwe]));Bnd(BD(qud(ZKd(a.qb),4),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,wwe,fue,'comment',Awe,Bwe]));Bnd(BD(qud(ZKd(a.qb),5),18),Rve,OC(GC(ZI,1),nie,2,6,[Sve,wwe,fue,jxe,Awe,Bwe]));Bnd(BD(qud(ZKd(a.qb),6),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,wwe,fue,Ite,Awe,Bwe]))} +function tvd(a){return dfb('_UI_EMFDiagnostic_marker',a)?'EMF Problem':dfb('_UI_CircularContainment_diagnostic',a)?'An object may not circularly contain itself':dfb(sue,a)?'Wrong character.':dfb(tue,a)?'Invalid reference number.':dfb(uue,a)?'A character is required after \\.':dfb(vue,a)?"'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?":dfb(wue,a)?"'(?<' or '(?<!' is expected.":dfb(xue,a)?'A comment is not terminated.':dfb(yue,a)?"')' is expected.":dfb(zue,a)?'Unexpected end of the pattern in a modifier group.':dfb(Aue,a)?"':' is expected.":dfb(Bue,a)?'Unexpected end of the pattern in a conditional group.':dfb(Cue,a)?'A back reference or an anchor or a lookahead or a look-behind is expected in a conditional pattern.':dfb(Due,a)?'There are more than three choices in a conditional group.':dfb(Eue,a)?'A character in U+0040-U+005f must follow \\c.':dfb(Fue,a)?"A '{' is required before a character category.":dfb(Gue,a)?"A property name is not closed by '}'.":dfb(Hue,a)?'Unexpected meta character.':dfb(Iue,a)?'Unknown property.':dfb(Jue,a)?"A POSIX character class must be closed by ':]'.":dfb(Kue,a)?'Unexpected end of the pattern in a character class.':dfb(Lue,a)?'Unknown name for a POSIX character class.':dfb('parser.cc.4',a)?"'-' is invalid here.":dfb(Mue,a)?"']' is expected.":dfb(Nue,a)?"'[' is invalid in a character class. Write '\\['.":dfb(Oue,a)?"']' is invalid in a character class. Write '\\]'.":dfb(Pue,a)?"'-' is an invalid character range. Write '\\-'.":dfb(Que,a)?"'[' is expected.":dfb(Rue,a)?"')' or '-[' or '+[' or '&[' is expected.":dfb(Sue,a)?'The range end code point is less than the start code point.':dfb(Tue,a)?'Invalid Unicode hex notation.':dfb(Uue,a)?'Overflow in a hex notation.':dfb(Vue,a)?"'\\x{' must be closed by '}'.":dfb(Wue,a)?'Invalid Unicode code point.':dfb(Xue,a)?'An anchor must not be here.':dfb(Yue,a)?'This expression is not supported in the current option setting.':dfb(Zue,a)?'Invalid quantifier. A digit is expected.':dfb($ue,a)?"Invalid quantifier. Invalid quantity or a '}' is missing.":dfb(_ue,a)?"Invalid quantifier. A digit or '}' is expected.":dfb(ave,a)?'Invalid quantifier. A min quantity must be <= a max quantity.':dfb(bve,a)?'Invalid quantifier. A quantity value overflow.':dfb('_UI_PackageRegistry_extensionpoint',a)?'Ecore Package Registry for Generated Packages':dfb('_UI_DynamicPackageRegistry_extensionpoint',a)?'Ecore Package Registry for Dynamic Packages':dfb('_UI_FactoryRegistry_extensionpoint',a)?'Ecore Factory Override Registry':dfb('_UI_URIExtensionParserRegistry_extensionpoint',a)?'URI Extension Parser Registry':dfb('_UI_URIProtocolParserRegistry_extensionpoint',a)?'URI Protocol Parser Registry':dfb('_UI_URIContentParserRegistry_extensionpoint',a)?'URI Content Parser Registry':dfb('_UI_ContentHandlerRegistry_extensionpoint',a)?'Content Handler Registry':dfb('_UI_URIMappingRegistry_extensionpoint',a)?'URI Converter Mapping Registry':dfb('_UI_PackageRegistryImplementation_extensionpoint',a)?'Ecore Package Registry Implementation':dfb('_UI_ValidationDelegateRegistry_extensionpoint',a)?'Validation Delegate Registry':dfb('_UI_SettingDelegateRegistry_extensionpoint',a)?'Feature Setting Delegate Factory Registry':dfb('_UI_InvocationDelegateRegistry_extensionpoint',a)?'Operation Invocation Delegate Factory Registry':dfb('_UI_EClassInterfaceNotAbstract_diagnostic',a)?'A class that is an interface must also be abstract':dfb('_UI_EClassNoCircularSuperTypes_diagnostic',a)?'A class may not be a super type of itself':dfb('_UI_EClassNotWellFormedMapEntryNoInstanceClassName_diagnostic',a)?"A class that inherits from a map entry class must have instance class name 'java.util.Map$Entry'":dfb('_UI_EReferenceOppositeOfOppositeInconsistent_diagnostic',a)?'The opposite of the opposite may not be a reference different from this one':dfb('_UI_EReferenceOppositeNotFeatureOfType_diagnostic',a)?"The opposite must be a feature of the reference's type":dfb('_UI_EReferenceTransientOppositeNotTransient_diagnostic',a)?'The opposite of a transient reference must be transient if it is proxy resolving':dfb('_UI_EReferenceOppositeBothContainment_diagnostic',a)?'The opposite of a containment reference must not be a containment reference':dfb('_UI_EReferenceConsistentUnique_diagnostic',a)?'A containment or bidirectional reference must be unique if its upper bound is different from 1':dfb('_UI_ETypedElementNoType_diagnostic',a)?'The typed element must have a type':dfb('_UI_EAttributeNoDataType_diagnostic',a)?'The generic attribute type must not refer to a class':dfb('_UI_EReferenceNoClass_diagnostic',a)?'The generic reference type must not refer to a data type':dfb('_UI_EGenericTypeNoTypeParameterAndClassifier_diagnostic',a)?"A generic type can't refer to both a type parameter and a classifier":dfb('_UI_EGenericTypeNoClass_diagnostic',a)?'A generic super type must refer to a class':dfb('_UI_EGenericTypeNoTypeParameterOrClassifier_diagnostic',a)?'A generic type in this context must refer to a classifier or a type parameter':dfb('_UI_EGenericTypeBoundsOnlyForTypeArgument_diagnostic',a)?'A generic type may have bounds only when used as a type argument':dfb('_UI_EGenericTypeNoUpperAndLowerBound_diagnostic',a)?'A generic type must not have both a lower and an upper bound':dfb('_UI_EGenericTypeNoTypeParameterOrClassifierAndBound_diagnostic',a)?'A generic type with bounds must not also refer to a type parameter or classifier':dfb('_UI_EGenericTypeNoArguments_diagnostic',a)?'A generic type may have arguments only if it refers to a classifier':dfb('_UI_EGenericTypeOutOfScopeTypeParameter_diagnostic',a)?'A generic type may only refer to a type parameter that is in scope':a} +function Aod(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;if(a.r)return;a.r=true;pnd(a,'graph');cod(a,'graph');dod(a,yte);Gnd(a.o,'T');wtd(_Kd(a.a),a.p);wtd(_Kd(a.f),a.a);wtd(_Kd(a.n),a.f);wtd(_Kd(a.g),a.n);wtd(_Kd(a.c),a.n);wtd(_Kd(a.i),a.c);wtd(_Kd(a.j),a.c);wtd(_Kd(a.d),a.f);wtd(_Kd(a.e),a.a);Xnd(a.p,P3,Ile,true,true,false);o=Dnd(a.p,a.p,'setProperty');p=Hnd(o);j=Nnd(a.o);k=(c=(d=new UQd,d),c);wtd((!j.d&&(j.d=new xMd(j5,j,1)),j.d),k);l=Ond(p);PQd(k,l);Fnd(o,j,Ate);j=Ond(p);Fnd(o,j,Bte);o=Dnd(a.p,null,'getProperty');p=Hnd(o);j=Nnd(a.o);k=Ond(p);wtd((!j.d&&(j.d=new xMd(j5,j,1)),j.d),k);Fnd(o,j,Ate);j=Ond(p);n=xId(o,j,null);!!n&&n.Fi();o=Dnd(a.p,a.wb.e,'hasProperty');j=Nnd(a.o);k=(e=(f=new UQd,f),e);wtd((!j.d&&(j.d=new xMd(j5,j,1)),j.d),k);Fnd(o,j,Ate);o=Dnd(a.p,a.p,'copyProperties');End(o,a.p,Cte);o=Dnd(a.p,null,'getAllProperties');j=Nnd(a.wb.P);k=Nnd(a.o);wtd((!j.d&&(j.d=new xMd(j5,j,1)),j.d),k);l=(g=(h=new UQd,h),g);wtd((!k.d&&(k.d=new xMd(j5,k,1)),k.d),l);k=Nnd(a.wb.M);wtd((!j.d&&(j.d=new xMd(j5,j,1)),j.d),k);m=xId(o,j,null);!!m&&m.Fi();Xnd(a.a,x2,Xse,true,false,true);_nd(BD(qud(ZKd(a.a),0),18),a.k,null,Dte,0,-1,x2,false,false,true,true,false,false,false);Xnd(a.f,C2,Zse,true,false,true);_nd(BD(qud(ZKd(a.f),0),18),a.g,BD(qud(ZKd(a.g),0),18),'labels',0,-1,C2,false,false,true,true,false,false,false);Vnd(BD(qud(ZKd(a.f),1),34),a.wb._,Ete,null,0,1,C2,false,false,true,false,true,false);Xnd(a.n,G2,'ElkShape',true,false,true);Vnd(BD(qud(ZKd(a.n),0),34),a.wb.t,Fte,$je,1,1,G2,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.n),1),34),a.wb.t,Gte,$je,1,1,G2,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.n),2),34),a.wb.t,'x',$je,1,1,G2,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.n),3),34),a.wb.t,'y',$je,1,1,G2,false,false,true,false,true,false);o=Dnd(a.n,null,'setDimensions');End(o,a.wb.t,Gte);End(o,a.wb.t,Fte);o=Dnd(a.n,null,'setLocation');End(o,a.wb.t,'x');End(o,a.wb.t,'y');Xnd(a.g,D2,dte,false,false,true);_nd(BD(qud(ZKd(a.g),0),18),a.f,BD(qud(ZKd(a.f),0),18),Hte,0,1,D2,false,false,true,false,false,false,false);Vnd(BD(qud(ZKd(a.g),1),34),a.wb._,Ite,'',0,1,D2,false,false,true,false,true,false);Xnd(a.c,z2,$se,true,false,true);_nd(BD(qud(ZKd(a.c),0),18),a.d,BD(qud(ZKd(a.d),1),18),'outgoingEdges',0,-1,z2,false,false,true,false,true,false,false);_nd(BD(qud(ZKd(a.c),1),18),a.d,BD(qud(ZKd(a.d),2),18),'incomingEdges',0,-1,z2,false,false,true,false,true,false,false);Xnd(a.i,E2,ete,false,false,true);_nd(BD(qud(ZKd(a.i),0),18),a.j,BD(qud(ZKd(a.j),0),18),'ports',0,-1,E2,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.i),1),18),a.i,BD(qud(ZKd(a.i),2),18),Jte,0,-1,E2,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.i),2),18),a.i,BD(qud(ZKd(a.i),1),18),Hte,0,1,E2,false,false,true,false,false,false,false);_nd(BD(qud(ZKd(a.i),3),18),a.d,BD(qud(ZKd(a.d),0),18),'containedEdges',0,-1,E2,false,false,true,true,false,false,false);Vnd(BD(qud(ZKd(a.i),4),34),a.wb.e,Kte,null,0,1,E2,true,true,false,false,true,true);Xnd(a.j,F2,fte,false,false,true);_nd(BD(qud(ZKd(a.j),0),18),a.i,BD(qud(ZKd(a.i),0),18),Hte,0,1,F2,false,false,true,false,false,false,false);Xnd(a.d,B2,_se,false,false,true);_nd(BD(qud(ZKd(a.d),0),18),a.i,BD(qud(ZKd(a.i),3),18),'containingNode',0,1,B2,false,false,true,false,false,false,false);_nd(BD(qud(ZKd(a.d),1),18),a.c,BD(qud(ZKd(a.c),0),18),Lte,0,-1,B2,false,false,true,false,true,false,false);_nd(BD(qud(ZKd(a.d),2),18),a.c,BD(qud(ZKd(a.c),1),18),Mte,0,-1,B2,false,false,true,false,true,false,false);_nd(BD(qud(ZKd(a.d),3),18),a.e,BD(qud(ZKd(a.e),5),18),Nte,0,-1,B2,false,false,true,true,false,false,false);Vnd(BD(qud(ZKd(a.d),4),34),a.wb.e,'hyperedge',null,0,1,B2,true,true,false,false,true,true);Vnd(BD(qud(ZKd(a.d),5),34),a.wb.e,Kte,null,0,1,B2,true,true,false,false,true,true);Vnd(BD(qud(ZKd(a.d),6),34),a.wb.e,'selfloop',null,0,1,B2,true,true,false,false,true,true);Vnd(BD(qud(ZKd(a.d),7),34),a.wb.e,'connected',null,0,1,B2,true,true,false,false,true,true);Xnd(a.b,y2,Yse,false,false,true);Vnd(BD(qud(ZKd(a.b),0),34),a.wb.t,'x',$je,1,1,y2,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.b),1),34),a.wb.t,'y',$je,1,1,y2,false,false,true,false,true,false);o=Dnd(a.b,null,'set');End(o,a.wb.t,'x');End(o,a.wb.t,'y');Xnd(a.e,A2,ate,false,false,true);Vnd(BD(qud(ZKd(a.e),0),34),a.wb.t,'startX',null,0,1,A2,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.e),1),34),a.wb.t,'startY',null,0,1,A2,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.e),2),34),a.wb.t,'endX',null,0,1,A2,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.e),3),34),a.wb.t,'endY',null,0,1,A2,false,false,true,false,true,false);_nd(BD(qud(ZKd(a.e),4),18),a.b,null,Ote,0,-1,A2,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.e),5),18),a.d,BD(qud(ZKd(a.d),3),18),Hte,0,1,A2,false,false,true,false,false,false,false);_nd(BD(qud(ZKd(a.e),6),18),a.c,null,Pte,0,1,A2,false,false,true,false,true,false,false);_nd(BD(qud(ZKd(a.e),7),18),a.c,null,Qte,0,1,A2,false,false,true,false,true,false,false);_nd(BD(qud(ZKd(a.e),8),18),a.e,BD(qud(ZKd(a.e),9),18),Rte,0,-1,A2,false,false,true,false,true,false,false);_nd(BD(qud(ZKd(a.e),9),18),a.e,BD(qud(ZKd(a.e),8),18),Ste,0,-1,A2,false,false,true,false,true,false,false);Vnd(BD(qud(ZKd(a.e),10),34),a.wb._,Ete,null,0,1,A2,false,false,true,false,true,false);o=Dnd(a.e,null,'setStartLocation');End(o,a.wb.t,'x');End(o,a.wb.t,'y');o=Dnd(a.e,null,'setEndLocation');End(o,a.wb.t,'x');End(o,a.wb.t,'y');Xnd(a.k,CK,'ElkPropertyToValueMapEntry',false,false,false);j=Nnd(a.o);k=(i=(b=new UQd,b),i);wtd((!j.d&&(j.d=new xMd(j5,j,1)),j.d),k);Wnd(BD(qud(ZKd(a.k),0),34),j,'key',CK,false,false,true,false);Vnd(BD(qud(ZKd(a.k),1),34),a.s,Bte,null,0,1,CK,false,false,true,false,true,false);Znd(a.o,Q3,'IProperty',true);Znd(a.s,SI,'PropertyValue',true);Rnd(a,yte)} +function lde(){lde=ccb;kde=KC(SD,wte,25,Tje,15,1);kde[9]=35;kde[10]=19;kde[13]=19;kde[32]=51;kde[33]=49;kde[34]=33;ylb(kde,35,38,49);kde[38]=1;ylb(kde,39,45,49);ylb(kde,45,47,-71);kde[47]=49;ylb(kde,48,58,-71);kde[58]=61;kde[59]=49;kde[60]=1;kde[61]=49;kde[62]=33;ylb(kde,63,65,49);ylb(kde,65,91,-3);ylb(kde,91,93,33);kde[93]=1;kde[94]=33;kde[95]=-3;kde[96]=33;ylb(kde,97,123,-3);ylb(kde,123,183,33);kde[183]=-87;ylb(kde,184,192,33);ylb(kde,192,215,-19);kde[215]=33;ylb(kde,216,247,-19);kde[247]=33;ylb(kde,248,306,-19);ylb(kde,306,308,33);ylb(kde,308,319,-19);ylb(kde,319,321,33);ylb(kde,321,329,-19);kde[329]=33;ylb(kde,330,383,-19);kde[383]=33;ylb(kde,384,452,-19);ylb(kde,452,461,33);ylb(kde,461,497,-19);ylb(kde,497,500,33);ylb(kde,500,502,-19);ylb(kde,502,506,33);ylb(kde,506,536,-19);ylb(kde,536,592,33);ylb(kde,592,681,-19);ylb(kde,681,699,33);ylb(kde,699,706,-19);ylb(kde,706,720,33);ylb(kde,720,722,-87);ylb(kde,722,768,33);ylb(kde,768,838,-87);ylb(kde,838,864,33);ylb(kde,864,866,-87);ylb(kde,866,902,33);kde[902]=-19;kde[903]=-87;ylb(kde,904,907,-19);kde[907]=33;kde[908]=-19;kde[909]=33;ylb(kde,910,930,-19);kde[930]=33;ylb(kde,931,975,-19);kde[975]=33;ylb(kde,976,983,-19);ylb(kde,983,986,33);kde[986]=-19;kde[987]=33;kde[988]=-19;kde[989]=33;kde[990]=-19;kde[991]=33;kde[992]=-19;kde[993]=33;ylb(kde,994,1012,-19);ylb(kde,1012,1025,33);ylb(kde,1025,1037,-19);kde[1037]=33;ylb(kde,1038,1104,-19);kde[1104]=33;ylb(kde,1105,1117,-19);kde[1117]=33;ylb(kde,1118,1154,-19);kde[1154]=33;ylb(kde,1155,1159,-87);ylb(kde,1159,1168,33);ylb(kde,1168,1221,-19);ylb(kde,1221,1223,33);ylb(kde,1223,1225,-19);ylb(kde,1225,1227,33);ylb(kde,1227,1229,-19);ylb(kde,1229,1232,33);ylb(kde,1232,1260,-19);ylb(kde,1260,1262,33);ylb(kde,1262,1270,-19);ylb(kde,1270,1272,33);ylb(kde,1272,1274,-19);ylb(kde,1274,1329,33);ylb(kde,1329,1367,-19);ylb(kde,1367,1369,33);kde[1369]=-19;ylb(kde,1370,1377,33);ylb(kde,1377,1415,-19);ylb(kde,1415,1425,33);ylb(kde,1425,1442,-87);kde[1442]=33;ylb(kde,1443,1466,-87);kde[1466]=33;ylb(kde,1467,1470,-87);kde[1470]=33;kde[1471]=-87;kde[1472]=33;ylb(kde,1473,1475,-87);kde[1475]=33;kde[1476]=-87;ylb(kde,1477,1488,33);ylb(kde,1488,1515,-19);ylb(kde,1515,1520,33);ylb(kde,1520,1523,-19);ylb(kde,1523,1569,33);ylb(kde,1569,1595,-19);ylb(kde,1595,1600,33);kde[1600]=-87;ylb(kde,1601,1611,-19);ylb(kde,1611,1619,-87);ylb(kde,1619,1632,33);ylb(kde,1632,1642,-87);ylb(kde,1642,1648,33);kde[1648]=-87;ylb(kde,1649,1720,-19);ylb(kde,1720,1722,33);ylb(kde,1722,1727,-19);kde[1727]=33;ylb(kde,1728,1743,-19);kde[1743]=33;ylb(kde,1744,1748,-19);kde[1748]=33;kde[1749]=-19;ylb(kde,1750,1765,-87);ylb(kde,1765,1767,-19);ylb(kde,1767,1769,-87);kde[1769]=33;ylb(kde,1770,1774,-87);ylb(kde,1774,1776,33);ylb(kde,1776,1786,-87);ylb(kde,1786,2305,33);ylb(kde,2305,2308,-87);kde[2308]=33;ylb(kde,2309,2362,-19);ylb(kde,2362,2364,33);kde[2364]=-87;kde[2365]=-19;ylb(kde,2366,2382,-87);ylb(kde,2382,2385,33);ylb(kde,2385,2389,-87);ylb(kde,2389,2392,33);ylb(kde,2392,2402,-19);ylb(kde,2402,2404,-87);ylb(kde,2404,2406,33);ylb(kde,2406,2416,-87);ylb(kde,2416,2433,33);ylb(kde,2433,2436,-87);kde[2436]=33;ylb(kde,2437,2445,-19);ylb(kde,2445,2447,33);ylb(kde,2447,2449,-19);ylb(kde,2449,2451,33);ylb(kde,2451,2473,-19);kde[2473]=33;ylb(kde,2474,2481,-19);kde[2481]=33;kde[2482]=-19;ylb(kde,2483,2486,33);ylb(kde,2486,2490,-19);ylb(kde,2490,2492,33);kde[2492]=-87;kde[2493]=33;ylb(kde,2494,2501,-87);ylb(kde,2501,2503,33);ylb(kde,2503,2505,-87);ylb(kde,2505,2507,33);ylb(kde,2507,2510,-87);ylb(kde,2510,2519,33);kde[2519]=-87;ylb(kde,2520,2524,33);ylb(kde,2524,2526,-19);kde[2526]=33;ylb(kde,2527,2530,-19);ylb(kde,2530,2532,-87);ylb(kde,2532,2534,33);ylb(kde,2534,2544,-87);ylb(kde,2544,2546,-19);ylb(kde,2546,2562,33);kde[2562]=-87;ylb(kde,2563,2565,33);ylb(kde,2565,2571,-19);ylb(kde,2571,2575,33);ylb(kde,2575,2577,-19);ylb(kde,2577,2579,33);ylb(kde,2579,2601,-19);kde[2601]=33;ylb(kde,2602,2609,-19);kde[2609]=33;ylb(kde,2610,2612,-19);kde[2612]=33;ylb(kde,2613,2615,-19);kde[2615]=33;ylb(kde,2616,2618,-19);ylb(kde,2618,2620,33);kde[2620]=-87;kde[2621]=33;ylb(kde,2622,2627,-87);ylb(kde,2627,2631,33);ylb(kde,2631,2633,-87);ylb(kde,2633,2635,33);ylb(kde,2635,2638,-87);ylb(kde,2638,2649,33);ylb(kde,2649,2653,-19);kde[2653]=33;kde[2654]=-19;ylb(kde,2655,2662,33);ylb(kde,2662,2674,-87);ylb(kde,2674,2677,-19);ylb(kde,2677,2689,33);ylb(kde,2689,2692,-87);kde[2692]=33;ylb(kde,2693,2700,-19);kde[2700]=33;kde[2701]=-19;kde[2702]=33;ylb(kde,2703,2706,-19);kde[2706]=33;ylb(kde,2707,2729,-19);kde[2729]=33;ylb(kde,2730,2737,-19);kde[2737]=33;ylb(kde,2738,2740,-19);kde[2740]=33;ylb(kde,2741,2746,-19);ylb(kde,2746,2748,33);kde[2748]=-87;kde[2749]=-19;ylb(kde,2750,2758,-87);kde[2758]=33;ylb(kde,2759,2762,-87);kde[2762]=33;ylb(kde,2763,2766,-87);ylb(kde,2766,2784,33);kde[2784]=-19;ylb(kde,2785,2790,33);ylb(kde,2790,2800,-87);ylb(kde,2800,2817,33);ylb(kde,2817,2820,-87);kde[2820]=33;ylb(kde,2821,2829,-19);ylb(kde,2829,2831,33);ylb(kde,2831,2833,-19);ylb(kde,2833,2835,33);ylb(kde,2835,2857,-19);kde[2857]=33;ylb(kde,2858,2865,-19);kde[2865]=33;ylb(kde,2866,2868,-19);ylb(kde,2868,2870,33);ylb(kde,2870,2874,-19);ylb(kde,2874,2876,33);kde[2876]=-87;kde[2877]=-19;ylb(kde,2878,2884,-87);ylb(kde,2884,2887,33);ylb(kde,2887,2889,-87);ylb(kde,2889,2891,33);ylb(kde,2891,2894,-87);ylb(kde,2894,2902,33);ylb(kde,2902,2904,-87);ylb(kde,2904,2908,33);ylb(kde,2908,2910,-19);kde[2910]=33;ylb(kde,2911,2914,-19);ylb(kde,2914,2918,33);ylb(kde,2918,2928,-87);ylb(kde,2928,2946,33);ylb(kde,2946,2948,-87);kde[2948]=33;ylb(kde,2949,2955,-19);ylb(kde,2955,2958,33);ylb(kde,2958,2961,-19);kde[2961]=33;ylb(kde,2962,2966,-19);ylb(kde,2966,2969,33);ylb(kde,2969,2971,-19);kde[2971]=33;kde[2972]=-19;kde[2973]=33;ylb(kde,2974,2976,-19);ylb(kde,2976,2979,33);ylb(kde,2979,2981,-19);ylb(kde,2981,2984,33);ylb(kde,2984,2987,-19);ylb(kde,2987,2990,33);ylb(kde,2990,2998,-19);kde[2998]=33;ylb(kde,2999,3002,-19);ylb(kde,3002,3006,33);ylb(kde,3006,3011,-87);ylb(kde,3011,3014,33);ylb(kde,3014,3017,-87);kde[3017]=33;ylb(kde,3018,3022,-87);ylb(kde,3022,3031,33);kde[3031]=-87;ylb(kde,3032,3047,33);ylb(kde,3047,3056,-87);ylb(kde,3056,3073,33);ylb(kde,3073,3076,-87);kde[3076]=33;ylb(kde,3077,3085,-19);kde[3085]=33;ylb(kde,3086,3089,-19);kde[3089]=33;ylb(kde,3090,3113,-19);kde[3113]=33;ylb(kde,3114,3124,-19);kde[3124]=33;ylb(kde,3125,3130,-19);ylb(kde,3130,3134,33);ylb(kde,3134,3141,-87);kde[3141]=33;ylb(kde,3142,3145,-87);kde[3145]=33;ylb(kde,3146,3150,-87);ylb(kde,3150,3157,33);ylb(kde,3157,3159,-87);ylb(kde,3159,3168,33);ylb(kde,3168,3170,-19);ylb(kde,3170,3174,33);ylb(kde,3174,3184,-87);ylb(kde,3184,3202,33);ylb(kde,3202,3204,-87);kde[3204]=33;ylb(kde,3205,3213,-19);kde[3213]=33;ylb(kde,3214,3217,-19);kde[3217]=33;ylb(kde,3218,3241,-19);kde[3241]=33;ylb(kde,3242,3252,-19);kde[3252]=33;ylb(kde,3253,3258,-19);ylb(kde,3258,3262,33);ylb(kde,3262,3269,-87);kde[3269]=33;ylb(kde,3270,3273,-87);kde[3273]=33;ylb(kde,3274,3278,-87);ylb(kde,3278,3285,33);ylb(kde,3285,3287,-87);ylb(kde,3287,3294,33);kde[3294]=-19;kde[3295]=33;ylb(kde,3296,3298,-19);ylb(kde,3298,3302,33);ylb(kde,3302,3312,-87);ylb(kde,3312,3330,33);ylb(kde,3330,3332,-87);kde[3332]=33;ylb(kde,3333,3341,-19);kde[3341]=33;ylb(kde,3342,3345,-19);kde[3345]=33;ylb(kde,3346,3369,-19);kde[3369]=33;ylb(kde,3370,3386,-19);ylb(kde,3386,3390,33);ylb(kde,3390,3396,-87);ylb(kde,3396,3398,33);ylb(kde,3398,3401,-87);kde[3401]=33;ylb(kde,3402,3406,-87);ylb(kde,3406,3415,33);kde[3415]=-87;ylb(kde,3416,3424,33);ylb(kde,3424,3426,-19);ylb(kde,3426,3430,33);ylb(kde,3430,3440,-87);ylb(kde,3440,3585,33);ylb(kde,3585,3631,-19);kde[3631]=33;kde[3632]=-19;kde[3633]=-87;ylb(kde,3634,3636,-19);ylb(kde,3636,3643,-87);ylb(kde,3643,3648,33);ylb(kde,3648,3654,-19);ylb(kde,3654,3663,-87);kde[3663]=33;ylb(kde,3664,3674,-87);ylb(kde,3674,3713,33);ylb(kde,3713,3715,-19);kde[3715]=33;kde[3716]=-19;ylb(kde,3717,3719,33);ylb(kde,3719,3721,-19);kde[3721]=33;kde[3722]=-19;ylb(kde,3723,3725,33);kde[3725]=-19;ylb(kde,3726,3732,33);ylb(kde,3732,3736,-19);kde[3736]=33;ylb(kde,3737,3744,-19);kde[3744]=33;ylb(kde,3745,3748,-19);kde[3748]=33;kde[3749]=-19;kde[3750]=33;kde[3751]=-19;ylb(kde,3752,3754,33);ylb(kde,3754,3756,-19);kde[3756]=33;ylb(kde,3757,3759,-19);kde[3759]=33;kde[3760]=-19;kde[3761]=-87;ylb(kde,3762,3764,-19);ylb(kde,3764,3770,-87);kde[3770]=33;ylb(kde,3771,3773,-87);kde[3773]=-19;ylb(kde,3774,3776,33);ylb(kde,3776,3781,-19);kde[3781]=33;kde[3782]=-87;kde[3783]=33;ylb(kde,3784,3790,-87);ylb(kde,3790,3792,33);ylb(kde,3792,3802,-87);ylb(kde,3802,3864,33);ylb(kde,3864,3866,-87);ylb(kde,3866,3872,33);ylb(kde,3872,3882,-87);ylb(kde,3882,3893,33);kde[3893]=-87;kde[3894]=33;kde[3895]=-87;kde[3896]=33;kde[3897]=-87;ylb(kde,3898,3902,33);ylb(kde,3902,3904,-87);ylb(kde,3904,3912,-19);kde[3912]=33;ylb(kde,3913,3946,-19);ylb(kde,3946,3953,33);ylb(kde,3953,3973,-87);kde[3973]=33;ylb(kde,3974,3980,-87);ylb(kde,3980,3984,33);ylb(kde,3984,3990,-87);kde[3990]=33;kde[3991]=-87;kde[3992]=33;ylb(kde,3993,4014,-87);ylb(kde,4014,4017,33);ylb(kde,4017,4024,-87);kde[4024]=33;kde[4025]=-87;ylb(kde,4026,4256,33);ylb(kde,4256,4294,-19);ylb(kde,4294,4304,33);ylb(kde,4304,4343,-19);ylb(kde,4343,4352,33);kde[4352]=-19;kde[4353]=33;ylb(kde,4354,4356,-19);kde[4356]=33;ylb(kde,4357,4360,-19);kde[4360]=33;kde[4361]=-19;kde[4362]=33;ylb(kde,4363,4365,-19);kde[4365]=33;ylb(kde,4366,4371,-19);ylb(kde,4371,4412,33);kde[4412]=-19;kde[4413]=33;kde[4414]=-19;kde[4415]=33;kde[4416]=-19;ylb(kde,4417,4428,33);kde[4428]=-19;kde[4429]=33;kde[4430]=-19;kde[4431]=33;kde[4432]=-19;ylb(kde,4433,4436,33);ylb(kde,4436,4438,-19);ylb(kde,4438,4441,33);kde[4441]=-19;ylb(kde,4442,4447,33);ylb(kde,4447,4450,-19);kde[4450]=33;kde[4451]=-19;kde[4452]=33;kde[4453]=-19;kde[4454]=33;kde[4455]=-19;kde[4456]=33;kde[4457]=-19;ylb(kde,4458,4461,33);ylb(kde,4461,4463,-19);ylb(kde,4463,4466,33);ylb(kde,4466,4468,-19);kde[4468]=33;kde[4469]=-19;ylb(kde,4470,4510,33);kde[4510]=-19;ylb(kde,4511,4520,33);kde[4520]=-19;ylb(kde,4521,4523,33);kde[4523]=-19;ylb(kde,4524,4526,33);ylb(kde,4526,4528,-19);ylb(kde,4528,4535,33);ylb(kde,4535,4537,-19);kde[4537]=33;kde[4538]=-19;kde[4539]=33;ylb(kde,4540,4547,-19);ylb(kde,4547,4587,33);kde[4587]=-19;ylb(kde,4588,4592,33);kde[4592]=-19;ylb(kde,4593,4601,33);kde[4601]=-19;ylb(kde,4602,7680,33);ylb(kde,7680,7836,-19);ylb(kde,7836,7840,33);ylb(kde,7840,7930,-19);ylb(kde,7930,7936,33);ylb(kde,7936,7958,-19);ylb(kde,7958,7960,33);ylb(kde,7960,7966,-19);ylb(kde,7966,7968,33);ylb(kde,7968,8006,-19);ylb(kde,8006,8008,33);ylb(kde,8008,8014,-19);ylb(kde,8014,8016,33);ylb(kde,8016,8024,-19);kde[8024]=33;kde[8025]=-19;kde[8026]=33;kde[8027]=-19;kde[8028]=33;kde[8029]=-19;kde[8030]=33;ylb(kde,8031,8062,-19);ylb(kde,8062,8064,33);ylb(kde,8064,8117,-19);kde[8117]=33;ylb(kde,8118,8125,-19);kde[8125]=33;kde[8126]=-19;ylb(kde,8127,8130,33);ylb(kde,8130,8133,-19);kde[8133]=33;ylb(kde,8134,8141,-19);ylb(kde,8141,8144,33);ylb(kde,8144,8148,-19);ylb(kde,8148,8150,33);ylb(kde,8150,8156,-19);ylb(kde,8156,8160,33);ylb(kde,8160,8173,-19);ylb(kde,8173,8178,33);ylb(kde,8178,8181,-19);kde[8181]=33;ylb(kde,8182,8189,-19);ylb(kde,8189,8400,33);ylb(kde,8400,8413,-87);ylb(kde,8413,8417,33);kde[8417]=-87;ylb(kde,8418,8486,33);kde[8486]=-19;ylb(kde,8487,8490,33);ylb(kde,8490,8492,-19);ylb(kde,8492,8494,33);kde[8494]=-19;ylb(kde,8495,8576,33);ylb(kde,8576,8579,-19);ylb(kde,8579,12293,33);kde[12293]=-87;kde[12294]=33;kde[12295]=-19;ylb(kde,12296,12321,33);ylb(kde,12321,12330,-19);ylb(kde,12330,12336,-87);kde[12336]=33;ylb(kde,12337,12342,-87);ylb(kde,12342,12353,33);ylb(kde,12353,12437,-19);ylb(kde,12437,12441,33);ylb(kde,12441,12443,-87);ylb(kde,12443,12445,33);ylb(kde,12445,12447,-87);ylb(kde,12447,12449,33);ylb(kde,12449,12539,-19);kde[12539]=33;ylb(kde,12540,12543,-87);ylb(kde,12543,12549,33);ylb(kde,12549,12589,-19);ylb(kde,12589,19968,33);ylb(kde,19968,40870,-19);ylb(kde,40870,44032,33);ylb(kde,44032,55204,-19);ylb(kde,55204,Uje,33);ylb(kde,57344,65534,33)} +function zZd(a){var b,c,d,e,f,g,h;if(a.hb)return;a.hb=true;pnd(a,'ecore');cod(a,'ecore');dod(a,_ve);Gnd(a.fb,'E');Gnd(a.L,'T');Gnd(a.P,'K');Gnd(a.P,'V');Gnd(a.cb,'E');wtd(_Kd(a.b),a.bb);wtd(_Kd(a.a),a.Q);wtd(_Kd(a.o),a.p);wtd(_Kd(a.p),a.R);wtd(_Kd(a.q),a.p);wtd(_Kd(a.v),a.q);wtd(_Kd(a.w),a.R);wtd(_Kd(a.B),a.Q);wtd(_Kd(a.R),a.Q);wtd(_Kd(a.T),a.eb);wtd(_Kd(a.U),a.R);wtd(_Kd(a.V),a.eb);wtd(_Kd(a.W),a.bb);wtd(_Kd(a.bb),a.eb);wtd(_Kd(a.eb),a.R);wtd(_Kd(a.db),a.R);Xnd(a.b,b5,qve,false,false,true);Vnd(BD(qud(ZKd(a.b),0),34),a.e,'iD',null,0,1,b5,false,false,true,false,true,false);_nd(BD(qud(ZKd(a.b),1),18),a.q,null,'eAttributeType',1,1,b5,true,true,false,false,true,false,true);Xnd(a.a,a5,nve,false,false,true);Vnd(BD(qud(ZKd(a.a),0),34),a._,Cte,null,0,1,a5,false,false,true,false,true,false);_nd(BD(qud(ZKd(a.a),1),18),a.ab,null,'details',0,-1,a5,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.a),2),18),a.Q,BD(qud(ZKd(a.Q),0),18),'eModelElement',0,1,a5,true,false,true,false,false,false,false);_nd(BD(qud(ZKd(a.a),3),18),a.S,null,'contents',0,-1,a5,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.a),4),18),a.S,null,'references',0,-1,a5,false,false,true,false,true,false,false);Xnd(a.o,c5,'EClass',false,false,true);Vnd(BD(qud(ZKd(a.o),0),34),a.e,'abstract',null,0,1,c5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.o),1),34),a.e,'interface',null,0,1,c5,false,false,true,false,true,false);_nd(BD(qud(ZKd(a.o),2),18),a.o,null,'eSuperTypes',0,-1,c5,false,false,true,false,true,true,false);_nd(BD(qud(ZKd(a.o),3),18),a.T,BD(qud(ZKd(a.T),0),18),'eOperations',0,-1,c5,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.o),4),18),a.b,null,'eAllAttributes',0,-1,c5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.o),5),18),a.W,null,'eAllReferences',0,-1,c5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.o),6),18),a.W,null,'eReferences',0,-1,c5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.o),7),18),a.b,null,'eAttributes',0,-1,c5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.o),8),18),a.W,null,'eAllContainments',0,-1,c5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.o),9),18),a.T,null,'eAllOperations',0,-1,c5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.o),10),18),a.bb,null,'eAllStructuralFeatures',0,-1,c5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.o),11),18),a.o,null,'eAllSuperTypes',0,-1,c5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.o),12),18),a.b,null,'eIDAttribute',0,1,c5,true,true,false,false,false,false,true);_nd(BD(qud(ZKd(a.o),13),18),a.bb,BD(qud(ZKd(a.bb),7),18),'eStructuralFeatures',0,-1,c5,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.o),14),18),a.H,null,'eGenericSuperTypes',0,-1,c5,false,false,true,true,false,true,false);_nd(BD(qud(ZKd(a.o),15),18),a.H,null,'eAllGenericSuperTypes',0,-1,c5,true,true,false,false,true,false,true);h=$nd(BD(qud(WKd(a.o),0),59),a.e,'isSuperTypeOf');End(h,a.o,'someClass');$nd(BD(qud(WKd(a.o),1),59),a.I,'getFeatureCount');h=$nd(BD(qud(WKd(a.o),2),59),a.bb,dwe);End(h,a.I,'featureID');h=$nd(BD(qud(WKd(a.o),3),59),a.I,ewe);End(h,a.bb,fwe);h=$nd(BD(qud(WKd(a.o),4),59),a.bb,dwe);End(h,a._,'featureName');$nd(BD(qud(WKd(a.o),5),59),a.I,'getOperationCount');h=$nd(BD(qud(WKd(a.o),6),59),a.T,'getEOperation');End(h,a.I,'operationID');h=$nd(BD(qud(WKd(a.o),7),59),a.I,gwe);End(h,a.T,hwe);h=$nd(BD(qud(WKd(a.o),8),59),a.T,'getOverride');End(h,a.T,hwe);h=$nd(BD(qud(WKd(a.o),9),59),a.H,'getFeatureType');End(h,a.bb,fwe);Xnd(a.p,d5,rve,true,false,true);Vnd(BD(qud(ZKd(a.p),0),34),a._,'instanceClassName',null,0,1,d5,false,true,true,true,true,false);b=Nnd(a.L);c=vZd();wtd((!b.d&&(b.d=new xMd(j5,b,1)),b.d),c);Wnd(BD(qud(ZKd(a.p),1),34),b,'instanceClass',d5,true,true,false,true);Vnd(BD(qud(ZKd(a.p),2),34),a.M,iwe,null,0,1,d5,true,true,false,false,true,true);Vnd(BD(qud(ZKd(a.p),3),34),a._,'instanceTypeName',null,0,1,d5,false,true,true,true,true,false);_nd(BD(qud(ZKd(a.p),4),18),a.U,BD(qud(ZKd(a.U),3),18),'ePackage',0,1,d5,true,false,false,false,true,false,false);_nd(BD(qud(ZKd(a.p),5),18),a.db,null,jwe,0,-1,d5,false,false,true,true,true,false,false);h=$nd(BD(qud(WKd(a.p),0),59),a.e,kwe);End(h,a.M,Jhe);$nd(BD(qud(WKd(a.p),1),59),a.I,'getClassifierID');Xnd(a.q,f5,'EDataType',false,false,true);Vnd(BD(qud(ZKd(a.q),0),34),a.e,'serializable',kse,0,1,f5,false,false,true,false,true,false);Xnd(a.v,h5,'EEnum',false,false,true);_nd(BD(qud(ZKd(a.v),0),18),a.w,BD(qud(ZKd(a.w),3),18),'eLiterals',0,-1,h5,false,false,true,true,false,false,false);h=$nd(BD(qud(WKd(a.v),0),59),a.w,lwe);End(h,a._,fue);h=$nd(BD(qud(WKd(a.v),1),59),a.w,lwe);End(h,a.I,Bte);h=$nd(BD(qud(WKd(a.v),2),59),a.w,'getEEnumLiteralByLiteral');End(h,a._,'literal');Xnd(a.w,g5,sve,false,false,true);Vnd(BD(qud(ZKd(a.w),0),34),a.I,Bte,null,0,1,g5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.w),1),34),a.A,'instance',null,0,1,g5,true,false,true,false,true,false);Vnd(BD(qud(ZKd(a.w),2),34),a._,'literal',null,0,1,g5,false,false,true,false,true,false);_nd(BD(qud(ZKd(a.w),3),18),a.v,BD(qud(ZKd(a.v),0),18),'eEnum',0,1,g5,true,false,false,false,false,false,false);Xnd(a.B,i5,'EFactory',false,false,true);_nd(BD(qud(ZKd(a.B),0),18),a.U,BD(qud(ZKd(a.U),2),18),'ePackage',1,1,i5,true,false,true,false,false,false,false);h=$nd(BD(qud(WKd(a.B),0),59),a.S,'create');End(h,a.o,'eClass');h=$nd(BD(qud(WKd(a.B),1),59),a.M,'createFromString');End(h,a.q,'eDataType');End(h,a._,'literalValue');h=$nd(BD(qud(WKd(a.B),2),59),a._,'convertToString');End(h,a.q,'eDataType');End(h,a.M,'instanceValue');Xnd(a.Q,k5,bte,true,false,true);_nd(BD(qud(ZKd(a.Q),0),18),a.a,BD(qud(ZKd(a.a),2),18),'eAnnotations',0,-1,k5,false,false,true,true,false,false,false);h=$nd(BD(qud(WKd(a.Q),0),59),a.a,'getEAnnotation');End(h,a._,Cte);Xnd(a.R,l5,cte,true,false,true);Vnd(BD(qud(ZKd(a.R),0),34),a._,fue,null,0,1,l5,false,false,true,false,true,false);Xnd(a.S,m5,'EObject',false,false,true);$nd(BD(qud(WKd(a.S),0),59),a.o,'eClass');$nd(BD(qud(WKd(a.S),1),59),a.e,'eIsProxy');$nd(BD(qud(WKd(a.S),2),59),a.X,'eResource');$nd(BD(qud(WKd(a.S),3),59),a.S,'eContainer');$nd(BD(qud(WKd(a.S),4),59),a.bb,'eContainingFeature');$nd(BD(qud(WKd(a.S),5),59),a.W,'eContainmentFeature');h=$nd(BD(qud(WKd(a.S),6),59),null,'eContents');b=Nnd(a.fb);c=Nnd(a.S);wtd((!b.d&&(b.d=new xMd(j5,b,1)),b.d),c);e=xId(h,b,null);!!e&&e.Fi();h=$nd(BD(qud(WKd(a.S),7),59),null,'eAllContents');b=Nnd(a.cb);c=Nnd(a.S);wtd((!b.d&&(b.d=new xMd(j5,b,1)),b.d),c);f=xId(h,b,null);!!f&&f.Fi();h=$nd(BD(qud(WKd(a.S),8),59),null,'eCrossReferences');b=Nnd(a.fb);c=Nnd(a.S);wtd((!b.d&&(b.d=new xMd(j5,b,1)),b.d),c);g=xId(h,b,null);!!g&&g.Fi();h=$nd(BD(qud(WKd(a.S),9),59),a.M,'eGet');End(h,a.bb,fwe);h=$nd(BD(qud(WKd(a.S),10),59),a.M,'eGet');End(h,a.bb,fwe);End(h,a.e,'resolve');h=$nd(BD(qud(WKd(a.S),11),59),null,'eSet');End(h,a.bb,fwe);End(h,a.M,'newValue');h=$nd(BD(qud(WKd(a.S),12),59),a.e,'eIsSet');End(h,a.bb,fwe);h=$nd(BD(qud(WKd(a.S),13),59),null,'eUnset');End(h,a.bb,fwe);h=$nd(BD(qud(WKd(a.S),14),59),a.M,'eInvoke');End(h,a.T,hwe);b=Nnd(a.fb);c=vZd();wtd((!b.d&&(b.d=new xMd(j5,b,1)),b.d),c);Fnd(h,b,'arguments');Cnd(h,a.K);Xnd(a.T,n5,uve,false,false,true);_nd(BD(qud(ZKd(a.T),0),18),a.o,BD(qud(ZKd(a.o),3),18),mwe,0,1,n5,true,false,false,false,false,false,false);_nd(BD(qud(ZKd(a.T),1),18),a.db,null,jwe,0,-1,n5,false,false,true,true,true,false,false);_nd(BD(qud(ZKd(a.T),2),18),a.V,BD(qud(ZKd(a.V),0),18),'eParameters',0,-1,n5,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.T),3),18),a.p,null,'eExceptions',0,-1,n5,false,false,true,false,true,true,false);_nd(BD(qud(ZKd(a.T),4),18),a.H,null,'eGenericExceptions',0,-1,n5,false,false,true,true,false,true,false);$nd(BD(qud(WKd(a.T),0),59),a.I,gwe);h=$nd(BD(qud(WKd(a.T),1),59),a.e,'isOverrideOf');End(h,a.T,'someOperation');Xnd(a.U,o5,'EPackage',false,false,true);Vnd(BD(qud(ZKd(a.U),0),34),a._,'nsURI',null,0,1,o5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.U),1),34),a._,'nsPrefix',null,0,1,o5,false,false,true,false,true,false);_nd(BD(qud(ZKd(a.U),2),18),a.B,BD(qud(ZKd(a.B),0),18),'eFactoryInstance',1,1,o5,true,false,true,false,false,false,false);_nd(BD(qud(ZKd(a.U),3),18),a.p,BD(qud(ZKd(a.p),4),18),'eClassifiers',0,-1,o5,false,false,true,true,true,false,false);_nd(BD(qud(ZKd(a.U),4),18),a.U,BD(qud(ZKd(a.U),5),18),'eSubpackages',0,-1,o5,false,false,true,true,true,false,false);_nd(BD(qud(ZKd(a.U),5),18),a.U,BD(qud(ZKd(a.U),4),18),'eSuperPackage',0,1,o5,true,false,false,false,true,false,false);h=$nd(BD(qud(WKd(a.U),0),59),a.p,'getEClassifier');End(h,a._,fue);Xnd(a.V,p5,vve,false,false,true);_nd(BD(qud(ZKd(a.V),0),18),a.T,BD(qud(ZKd(a.T),2),18),'eOperation',0,1,p5,true,false,false,false,false,false,false);Xnd(a.W,q5,wve,false,false,true);Vnd(BD(qud(ZKd(a.W),0),34),a.e,'containment',null,0,1,q5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.W),1),34),a.e,'container',null,0,1,q5,true,true,false,false,true,true);Vnd(BD(qud(ZKd(a.W),2),34),a.e,'resolveProxies',kse,0,1,q5,false,false,true,false,true,false);_nd(BD(qud(ZKd(a.W),3),18),a.W,null,'eOpposite',0,1,q5,false,false,true,false,true,false,false);_nd(BD(qud(ZKd(a.W),4),18),a.o,null,'eReferenceType',1,1,q5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.W),5),18),a.b,null,'eKeys',0,-1,q5,false,false,true,false,true,false,false);Xnd(a.bb,t5,pve,true,false,true);Vnd(BD(qud(ZKd(a.bb),0),34),a.e,'changeable',kse,0,1,t5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.bb),1),34),a.e,'volatile',null,0,1,t5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.bb),2),34),a.e,'transient',null,0,1,t5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.bb),3),34),a._,'defaultValueLiteral',null,0,1,t5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.bb),4),34),a.M,iwe,null,0,1,t5,true,true,false,false,true,true);Vnd(BD(qud(ZKd(a.bb),5),34),a.e,'unsettable',null,0,1,t5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.bb),6),34),a.e,'derived',null,0,1,t5,false,false,true,false,true,false);_nd(BD(qud(ZKd(a.bb),7),18),a.o,BD(qud(ZKd(a.o),13),18),mwe,0,1,t5,true,false,false,false,false,false,false);$nd(BD(qud(WKd(a.bb),0),59),a.I,ewe);h=$nd(BD(qud(WKd(a.bb),1),59),null,'getContainerClass');b=Nnd(a.L);c=vZd();wtd((!b.d&&(b.d=new xMd(j5,b,1)),b.d),c);d=xId(h,b,null);!!d&&d.Fi();Xnd(a.eb,v5,ove,true,false,true);Vnd(BD(qud(ZKd(a.eb),0),34),a.e,'ordered',kse,0,1,v5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.eb),1),34),a.e,'unique',kse,0,1,v5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.eb),2),34),a.I,'lowerBound',null,0,1,v5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.eb),3),34),a.I,'upperBound','1',0,1,v5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.eb),4),34),a.e,'many',null,0,1,v5,true,true,false,false,true,true);Vnd(BD(qud(ZKd(a.eb),5),34),a.e,'required',null,0,1,v5,true,true,false,false,true,true);_nd(BD(qud(ZKd(a.eb),6),18),a.p,null,'eType',0,1,v5,false,true,true,false,true,true,false);_nd(BD(qud(ZKd(a.eb),7),18),a.H,null,'eGenericType',0,1,v5,false,true,true,true,false,true,false);Xnd(a.ab,CK,'EStringToStringMapEntry',false,false,false);Vnd(BD(qud(ZKd(a.ab),0),34),a._,'key',null,0,1,CK,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.ab),1),34),a._,Bte,null,0,1,CK,false,false,true,false,true,false);Xnd(a.H,j5,tve,false,false,true);_nd(BD(qud(ZKd(a.H),0),18),a.H,null,'eUpperBound',0,1,j5,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.H),1),18),a.H,null,'eTypeArguments',0,-1,j5,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.H),2),18),a.p,null,'eRawType',1,1,j5,true,false,false,false,true,false,true);_nd(BD(qud(ZKd(a.H),3),18),a.H,null,'eLowerBound',0,1,j5,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.H),4),18),a.db,null,'eTypeParameter',0,1,j5,false,false,true,false,false,false,false);_nd(BD(qud(ZKd(a.H),5),18),a.p,null,'eClassifier',0,1,j5,false,false,true,false,true,false,false);h=$nd(BD(qud(WKd(a.H),0),59),a.e,kwe);End(h,a.M,Jhe);Xnd(a.db,u5,xve,false,false,true);_nd(BD(qud(ZKd(a.db),0),18),a.H,null,'eBounds',0,-1,u5,false,false,true,true,false,false,false);Znd(a.c,bJ,'EBigDecimal',true);Znd(a.d,cJ,'EBigInteger',true);Znd(a.e,sbb,'EBoolean',true);Znd(a.f,wI,'EBooleanObject',true);Znd(a.i,SD,'EByte',true);Znd(a.g,GC(SD,1),'EByteArray',true);Znd(a.j,xI,'EByteObject',true);Znd(a.k,TD,'EChar',true);Znd(a.n,yI,'ECharacterObject',true);Znd(a.r,$J,'EDate',true);Znd(a.s,O4,'EDiagnosticChain',false);Znd(a.t,UD,'EDouble',true);Znd(a.u,BI,'EDoubleObject',true);Znd(a.fb,T4,'EEList',false);Znd(a.A,U4,'EEnumerator',false);Znd(a.C,O9,'EFeatureMap',false);Znd(a.D,E9,'EFeatureMapEntry',false);Znd(a.F,VD,'EFloat',true);Znd(a.G,FI,'EFloatObject',true);Znd(a.I,WD,'EInt',true);Znd(a.J,JI,'EIntegerObject',true);Znd(a.L,AI,'EJavaClass',true);Znd(a.M,SI,'EJavaObject',true);Znd(a.N,XD,'ELong',true);Znd(a.O,MI,'ELongObject',true);Znd(a.P,DK,'EMap',false);Znd(a.X,v8,'EResource',false);Znd(a.Y,u8,'EResourceSet',false);Znd(a.Z,rbb,'EShort',true);Znd(a.$,UI,'EShortObject',true);Znd(a._,ZI,'EString',true);Znd(a.cb,X4,'ETreeIterator',false);Znd(a.K,V4,'EInvocationTargetException',false);Rnd(a,_ve)} +var Jhe='object',Khe='boolean',Lhe='number',Mhe='string',Nhe='function',Ohe=2147483647,Phe='java.lang',Qhe={3:1},Rhe='com.google.common.base',She=', ',The='%s (%s) must not be negative',Uhe={3:1,4:1,5:1},Vhe='negative size: ',Whe='Optional.of(',Xhe='null',Yhe={198:1,47:1},Zhe='com.google.common.collect',$he={198:1,47:1,125:1},_he={224:1,3:1},aie={47:1},bie='java.util',cie={83:1},die={20:1,28:1,14:1},eie=1965,fie={20:1,28:1,14:1,21:1},gie={83:1,171:1,161:1},hie={20:1,28:1,14:1,21:1,84:1},iie={20:1,28:1,14:1,271:1,21:1,84:1},jie={47:1,125:1},kie={345:1,42:1},lie='AbstractMapEntry',mie='expectedValuesPerKey',nie={3:1,6:1,4:1,5:1},oie=16384,pie={164:1},qie={38:1},rie={l:4194303,m:4194303,h:524287},sie={196:1},tie={245:1,3:1,35:1},uie='range unbounded on this side',vie={20:1},wie={20:1,14:1},xie={3:1,20:1,28:1,14:1},yie={152:1,3:1,20:1,28:1,14:1,15:1,54:1},zie={3:1,4:1,5:1,165:1},Aie={3:1,83:1},Bie={20:1,14:1,21:1},Cie={3:1,20:1,28:1,14:1,21:1},Die={20:1,14:1,21:1,84:1},Eie=461845907,Fie=-862048943,Gie={3:1,6:1,4:1,5:1,165:1},Hie='expectedSize',Iie=1073741824,Jie='initialArraySize',Kie={3:1,6:1,4:1,9:1,5:1},Lie={20:1,28:1,52:1,14:1,15:1},Mie='arraySize',Nie={20:1,28:1,52:1,14:1,15:1,54:1},Oie={45:1},Pie={365:1},Qie=1.0E-4,Rie=-2147483648,Sie='__noinit__',Tie={3:1,102:1,60:1,78:1},Uie='com.google.gwt.core.client.impl',Vie='String',Wie='com.google.gwt.core.client',Xie='anonymous',Yie='fnStack',Zie='Unknown',$ie={195:1,3:1,4:1},_ie=1000,aje=65535,bje='January',cje='February',dje='March',eje='April',fje='May',gje='June',hje='July',ije='August',jje='September',kje='October',lje='November',mje='December',nje=1900,oje={48:1,3:1,4:1},pje='Before Christ',qje='Anno Domini',rje='Sunday',sje='Monday',tje='Tuesday',uje='Wednesday',vje='Thursday',wje='Friday',xje='Saturday',yje='com.google.gwt.i18n.shared',zje='DateTimeFormat',Aje='com.google.gwt.i18n.client',Bje='DefaultDateTimeFormatInfo',Cje={3:1,4:1,35:1,199:1},Dje='com.google.gwt.json.client',Eje=4194303,Fje=1048575,Gje=524288,Hje=4194304,Ije=17592186044416,Jje=1000000000,Kje=-17592186044416,Lje='java.io',Mje={3:1,102:1,73:1,60:1,78:1},Nje={3:1,289:1,78:1},Oje='For input string: "',Pje=Infinity,Qje=-Infinity,Rje=4096,Sje={3:1,4:1,364:1},Tje=65536,Uje=55296,Vje={104:1,3:1,4:1},Wje=100000,Xje=0.3010299956639812,Yje=4294967295,Zje=4294967296,$je='0.0',_je={42:1},ake={3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1},bke={3:1,20:1,28:1,52:1,14:1,15:1,54:1},cke={20:1,14:1,15:1},dke={3:1,62:1},eke={182:1},fke={3:1,4:1,83:1},gke={3:1,4:1,20:1,28:1,14:1,53:1,21:1},hke='delete',ike=1.4901161193847656E-8,jke=1.1102230246251565E-16,kke=15525485,lke=5.9604644775390625E-8,mke=16777216,nke=16777215,oke=', length: ',pke={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1},qke={3:1,35:1,22:1,297:1},rke='java.util.function',ske='java.util.logging',tke={3:1,4:1,5:1,842:1},uke='undefined',vke='java.util.stream',wke={525:1,670:1},xke='fromIndex: ',yke=' > toIndex: ',zke=', toIndex: ',Ake='Index: ',Bke=', Size: ',Cke='org.eclipse.elk.alg.common',Dke={62:1},Eke='org.eclipse.elk.alg.common.compaction',Fke='Scanline/EventHandler',Gke='org.eclipse.elk.alg.common.compaction.oned',Hke='CNode belongs to another CGroup.',Ike='ISpacingsHandler/1',Jke='The ',Kke=' instance has been finished already.',Lke='The direction ',Mke=' is not supported by the CGraph instance.',Nke='OneDimensionalCompactor',Oke='OneDimensionalCompactor/lambda$0$Type',Pke='Quadruplet',Qke='ScanlineConstraintCalculator',Rke='ScanlineConstraintCalculator/ConstraintsScanlineHandler',Ske='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',Tke='ScanlineConstraintCalculator/Timestamp',Uke='ScanlineConstraintCalculator/lambda$0$Type',Vke={169:1,45:1},Wke='org.eclipse.elk.alg.common.compaction.options',Xke='org.eclipse.elk.core.data',Yke='org.eclipse.elk.polyomino.traversalStrategy',Zke='org.eclipse.elk.polyomino.lowLevelSort',$ke='org.eclipse.elk.polyomino.highLevelSort',_ke='org.eclipse.elk.polyomino.fill',ale={130:1},ble='polyomino',cle='org.eclipse.elk.alg.common.networksimplex',dle={177:1,3:1,4:1},ele='org.eclipse.elk.alg.common.nodespacing',fle='org.eclipse.elk.alg.common.nodespacing.cellsystem',gle='CENTER',hle={212:1,326:1},ile={3:1,4:1,5:1,595:1},jle='LEFT',kle='RIGHT',lle='Vertical alignment cannot be null',mle='BOTTOM',nle='org.eclipse.elk.alg.common.nodespacing.internal',ole='UNDEFINED',ple=0.01,qle='org.eclipse.elk.alg.common.nodespacing.internal.algorithm',rle='LabelPlacer/lambda$0$Type',sle='LabelPlacer/lambda$1$Type',tle='portRatioOrPosition',ule='org.eclipse.elk.alg.common.overlaps',vle='DOWN',wle='org.eclipse.elk.alg.common.polyomino',xle='NORTH',yle='EAST',zle='SOUTH',Ale='WEST',Ble='org.eclipse.elk.alg.common.polyomino.structures',Cle='Direction',Dle='Grid is only of size ',Ele='. Requested point (',Fle=') is out of bounds.',Gle=' Given center based coordinates were (',Hle='org.eclipse.elk.graph.properties',Ile='IPropertyHolder',Jle={3:1,94:1,134:1},Kle='org.eclipse.elk.alg.common.spore',Lle='org.eclipse.elk.alg.common.utils',Mle={209:1},Nle='org.eclipse.elk.core',Ole='Connected Components Compaction',Ple='org.eclipse.elk.alg.disco',Qle='org.eclipse.elk.alg.disco.graph',Rle='org.eclipse.elk.alg.disco.options',Sle='CompactionStrategy',Tle='org.eclipse.elk.disco.componentCompaction.strategy',Ule='org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm',Vle='org.eclipse.elk.disco.debug.discoGraph',Wle='org.eclipse.elk.disco.debug.discoPolys',Xle='componentCompaction',Yle='org.eclipse.elk.disco',Zle='org.eclipse.elk.spacing.componentComponent',$le='org.eclipse.elk.edge.thickness',_le='org.eclipse.elk.aspectRatio',ame='org.eclipse.elk.padding',bme='org.eclipse.elk.alg.disco.transform',cme=1.5707963267948966,dme=1.7976931348623157E308,eme={3:1,4:1,5:1,192:1},fme={3:1,6:1,4:1,5:1,106:1,120:1},gme='org.eclipse.elk.alg.force',hme='ComponentsProcessor',ime='ComponentsProcessor/1',jme='org.eclipse.elk.alg.force.graph',kme='Component Layout',lme='org.eclipse.elk.alg.force.model',mme='org.eclipse.elk.force.model',nme='org.eclipse.elk.force.iterations',ome='org.eclipse.elk.force.repulsivePower',pme='org.eclipse.elk.force.temperature',qme=0.001,rme='org.eclipse.elk.force.repulsion',sme='org.eclipse.elk.alg.force.options',tme=1.600000023841858,ume='org.eclipse.elk.force',vme='org.eclipse.elk.priority',wme='org.eclipse.elk.spacing.nodeNode',xme='org.eclipse.elk.spacing.edgeLabel',yme='org.eclipse.elk.randomSeed',zme='org.eclipse.elk.separateConnectedComponents',Ame='org.eclipse.elk.interactive',Bme='org.eclipse.elk.portConstraints',Cme='org.eclipse.elk.edgeLabels.inline',Dme='org.eclipse.elk.omitNodeMicroLayout',Eme='org.eclipse.elk.nodeSize.options',Fme='org.eclipse.elk.nodeSize.constraints',Gme='org.eclipse.elk.nodeLabels.placement',Hme='org.eclipse.elk.portLabels.placement',Ime='origin',Jme='random',Kme='boundingBox.upLeft',Lme='boundingBox.lowRight',Mme='org.eclipse.elk.stress.fixed',Nme='org.eclipse.elk.stress.desiredEdgeLength',Ome='org.eclipse.elk.stress.dimension',Pme='org.eclipse.elk.stress.epsilon',Qme='org.eclipse.elk.stress.iterationLimit',Rme='org.eclipse.elk.stress',Sme='ELK Stress',Tme='org.eclipse.elk.nodeSize.minimum',Ume='org.eclipse.elk.alg.force.stress',Vme='Layered layout',Wme='org.eclipse.elk.alg.layered',Xme='org.eclipse.elk.alg.layered.compaction.components',Yme='org.eclipse.elk.alg.layered.compaction.oned',Zme='org.eclipse.elk.alg.layered.compaction.oned.algs',$me='org.eclipse.elk.alg.layered.compaction.recthull',_me='org.eclipse.elk.alg.layered.components',ane='NONE',bne={3:1,6:1,4:1,9:1,5:1,122:1},cne={3:1,6:1,4:1,5:1,141:1,106:1,120:1},dne='org.eclipse.elk.alg.layered.compound',ene={51:1},fne='org.eclipse.elk.alg.layered.graph',gne=' -> ',hne='Not supported by LGraph',ine='Port side is undefined',jne={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},kne={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},lne={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},mne='([{"\' \t\r\n',nne=')]}"\' \t\r\n',one='The given string contains parts that cannot be parsed as numbers.',pne='org.eclipse.elk.core.math',qne={3:1,4:1,142:1,207:1,414:1},rne={3:1,4:1,116:1,207:1,414:1},sne='org.eclipse.elk.layered',tne='org.eclipse.elk.alg.layered.graph.transform',une='ElkGraphImporter',vne='ElkGraphImporter/lambda$0$Type',wne='ElkGraphImporter/lambda$1$Type',xne='ElkGraphImporter/lambda$2$Type',yne='ElkGraphImporter/lambda$4$Type',zne='Node margin calculation',Ane='org.eclipse.elk.alg.layered.intermediate',Bne='ONE_SIDED_GREEDY_SWITCH',Cne='TWO_SIDED_GREEDY_SWITCH',Dne='No implementation is available for the layout processor ',Ene='IntermediateProcessorStrategy',Fne="Node '",Gne='FIRST_SEPARATE',Hne='LAST_SEPARATE',Ine='Odd port side processing',Jne='org.eclipse.elk.alg.layered.intermediate.compaction',Kne='org.eclipse.elk.alg.layered.intermediate.greedyswitch',Lne='org.eclipse.elk.alg.layered.p3order.counting',Mne={225:1},Nne='org.eclipse.elk.alg.layered.intermediate.loops',One='org.eclipse.elk.alg.layered.intermediate.loops.ordering',Pne='org.eclipse.elk.alg.layered.intermediate.loops.routing',Qne='org.eclipse.elk.alg.layered.intermediate.preserveorder',Rne='org.eclipse.elk.alg.layered.intermediate.wrapping',Sne='org.eclipse.elk.alg.layered.options',Tne='INTERACTIVE',Une='DEPTH_FIRST',Vne='EDGE_LENGTH',Wne='SELF_LOOPS',Xne='firstTryWithInitialOrder',Yne='org.eclipse.elk.layered.directionCongruency',Zne='org.eclipse.elk.layered.feedbackEdges',$ne='org.eclipse.elk.layered.interactiveReferencePoint',_ne='org.eclipse.elk.layered.mergeEdges',aoe='org.eclipse.elk.layered.mergeHierarchyEdges',boe='org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides',coe='org.eclipse.elk.layered.portSortingStrategy',doe='org.eclipse.elk.layered.thoroughness',eoe='org.eclipse.elk.layered.unnecessaryBendpoints',foe='org.eclipse.elk.layered.generatePositionAndLayerIds',goe='org.eclipse.elk.layered.cycleBreaking.strategy',hoe='org.eclipse.elk.layered.layering.strategy',ioe='org.eclipse.elk.layered.layering.layerConstraint',joe='org.eclipse.elk.layered.layering.layerChoiceConstraint',koe='org.eclipse.elk.layered.layering.layerId',loe='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',moe='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',noe='org.eclipse.elk.layered.layering.nodePromotion.strategy',ooe='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',poe='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',qoe='org.eclipse.elk.layered.crossingMinimization.strategy',roe='org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder',soe='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',toe='org.eclipse.elk.layered.crossingMinimization.semiInteractive',uoe='org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint',voe='org.eclipse.elk.layered.crossingMinimization.positionId',woe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',xoe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',yoe='org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type',zoe='org.eclipse.elk.layered.nodePlacement.strategy',Aoe='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',Boe='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',Coe='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',Doe='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',Eoe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',Foe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',Goe='org.eclipse.elk.layered.edgeRouting.selfLoopDistribution',Hoe='org.eclipse.elk.layered.edgeRouting.selfLoopOrdering',Ioe='org.eclipse.elk.layered.edgeRouting.splines.mode',Joe='org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor',Koe='org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth',Loe='org.eclipse.elk.layered.spacing.baseValue',Moe='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',Noe='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',Ooe='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',Poe='org.eclipse.elk.layered.priority.direction',Qoe='org.eclipse.elk.layered.priority.shortness',Roe='org.eclipse.elk.layered.priority.straightness',Soe='org.eclipse.elk.layered.compaction.connectedComponents',Toe='org.eclipse.elk.layered.compaction.postCompaction.strategy',Uoe='org.eclipse.elk.layered.compaction.postCompaction.constraints',Voe='org.eclipse.elk.layered.highDegreeNodes.treatment',Woe='org.eclipse.elk.layered.highDegreeNodes.threshold',Xoe='org.eclipse.elk.layered.highDegreeNodes.treeHeight',Yoe='org.eclipse.elk.layered.wrapping.strategy',Zoe='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',$oe='org.eclipse.elk.layered.wrapping.correctionFactor',_oe='org.eclipse.elk.layered.wrapping.cutting.strategy',ape='org.eclipse.elk.layered.wrapping.cutting.cuts',bpe='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',cpe='org.eclipse.elk.layered.wrapping.validify.strategy',dpe='org.eclipse.elk.layered.wrapping.validify.forbiddenIndices',epe='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',fpe='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',gpe='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',hpe='org.eclipse.elk.layered.edgeLabels.sideSelection',ipe='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',jpe='org.eclipse.elk.layered.considerModelOrder.strategy',kpe='org.eclipse.elk.layered.considerModelOrder.noModelOrder',lpe='org.eclipse.elk.layered.considerModelOrder.components',mpe='org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy',npe='org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence',ope='org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence',ppe='layering',qpe='layering.minWidth',rpe='layering.nodePromotion',spe='crossingMinimization',tpe='org.eclipse.elk.hierarchyHandling',upe='crossingMinimization.greedySwitch',vpe='nodePlacement',wpe='nodePlacement.bk',xpe='edgeRouting',ype='org.eclipse.elk.edgeRouting',zpe='spacing',Ape='priority',Bpe='compaction',Cpe='compaction.postCompaction',Dpe='Specifies whether and how post-process compaction is applied.',Epe='highDegreeNodes',Fpe='wrapping',Gpe='wrapping.cutting',Hpe='wrapping.validify',Ipe='wrapping.multiEdge',Jpe='edgeLabels',Kpe='considerModelOrder',Lpe='org.eclipse.elk.spacing.commentComment',Mpe='org.eclipse.elk.spacing.commentNode',Npe='org.eclipse.elk.spacing.edgeEdge',Ope='org.eclipse.elk.spacing.edgeNode',Ppe='org.eclipse.elk.spacing.labelLabel',Qpe='org.eclipse.elk.spacing.labelPortHorizontal',Rpe='org.eclipse.elk.spacing.labelPortVertical',Spe='org.eclipse.elk.spacing.labelNode',Tpe='org.eclipse.elk.spacing.nodeSelfLoop',Upe='org.eclipse.elk.spacing.portPort',Vpe='org.eclipse.elk.spacing.individual',Wpe='org.eclipse.elk.port.borderOffset',Xpe='org.eclipse.elk.noLayout',Ype='org.eclipse.elk.port.side',Zpe='org.eclipse.elk.debugMode',$pe='org.eclipse.elk.alignment',_pe='org.eclipse.elk.insideSelfLoops.activate',aqe='org.eclipse.elk.insideSelfLoops.yo',bqe='org.eclipse.elk.nodeSize.fixedGraphSize',cqe='org.eclipse.elk.direction',dqe='org.eclipse.elk.nodeLabels.padding',eqe='org.eclipse.elk.portLabels.nextToPortIfPossible',fqe='org.eclipse.elk.portLabels.treatAsGroup',gqe='org.eclipse.elk.portAlignment.default',hqe='org.eclipse.elk.portAlignment.north',iqe='org.eclipse.elk.portAlignment.south',jqe='org.eclipse.elk.portAlignment.west',kqe='org.eclipse.elk.portAlignment.east',lqe='org.eclipse.elk.contentAlignment',mqe='org.eclipse.elk.junctionPoints',nqe='org.eclipse.elk.edgeLabels.placement',oqe='org.eclipse.elk.port.index',pqe='org.eclipse.elk.commentBox',qqe='org.eclipse.elk.hypernode',rqe='org.eclipse.elk.port.anchor',sqe='org.eclipse.elk.partitioning.activate',tqe='org.eclipse.elk.partitioning.partition',uqe='org.eclipse.elk.position',vqe='org.eclipse.elk.margins',wqe='org.eclipse.elk.spacing.portsSurrounding',xqe='org.eclipse.elk.interactiveLayout',yqe='org.eclipse.elk.core.util',zqe={3:1,4:1,5:1,593:1},Aqe='NETWORK_SIMPLEX',Bqe={123:1,51:1},Cqe='org.eclipse.elk.alg.layered.p1cycles',Dqe='org.eclipse.elk.alg.layered.p2layers',Eqe={402:1,225:1},Fqe={832:1,3:1,4:1},Gqe='org.eclipse.elk.alg.layered.p3order',Hqe='org.eclipse.elk.alg.layered.p4nodes',Iqe={3:1,4:1,5:1,840:1},Jqe=1.0E-5,Kqe='org.eclipse.elk.alg.layered.p4nodes.bk',Lqe='org.eclipse.elk.alg.layered.p5edges',Mqe='org.eclipse.elk.alg.layered.p5edges.orthogonal',Nqe='org.eclipse.elk.alg.layered.p5edges.orthogonal.direction',Oqe=1.0E-6,Pqe='org.eclipse.elk.alg.layered.p5edges.splines',Qqe=0.09999999999999998,Rqe=1.0E-8,Sqe=4.71238898038469,Tqe=3.141592653589793,Uqe='org.eclipse.elk.alg.mrtree',Vqe='org.eclipse.elk.alg.mrtree.graph',Wqe='org.eclipse.elk.alg.mrtree.intermediate',Xqe='Set neighbors in level',Yqe='DESCENDANTS',Zqe='org.eclipse.elk.mrtree.weighting',$qe='org.eclipse.elk.mrtree.searchOrder',_qe='org.eclipse.elk.alg.mrtree.options',are='org.eclipse.elk.mrtree',bre='org.eclipse.elk.tree',cre='org.eclipse.elk.alg.radial',dre=6.283185307179586,ere=4.9E-324,fre='org.eclipse.elk.alg.radial.intermediate',gre='org.eclipse.elk.alg.radial.intermediate.compaction',hre={3:1,4:1,5:1,106:1},ire='org.eclipse.elk.alg.radial.intermediate.optimization',jre='No implementation is available for the layout option ',kre='org.eclipse.elk.alg.radial.options',lre='org.eclipse.elk.radial.orderId',mre='org.eclipse.elk.radial.radius',nre='org.eclipse.elk.radial.compactor',ore='org.eclipse.elk.radial.compactionStepSize',pre='org.eclipse.elk.radial.sorter',qre='org.eclipse.elk.radial.wedgeCriteria',rre='org.eclipse.elk.radial.optimizationCriteria',sre='org.eclipse.elk.radial',tre='org.eclipse.elk.alg.radial.p1position.wedge',ure='org.eclipse.elk.alg.radial.sorting',vre=5.497787143782138,wre=3.9269908169872414,xre=2.356194490192345,yre='org.eclipse.elk.alg.rectpacking',zre='org.eclipse.elk.alg.rectpacking.firstiteration',Are='org.eclipse.elk.alg.rectpacking.options',Bre='org.eclipse.elk.rectpacking.optimizationGoal',Cre='org.eclipse.elk.rectpacking.lastPlaceShift',Dre='org.eclipse.elk.rectpacking.currentPosition',Ere='org.eclipse.elk.rectpacking.desiredPosition',Fre='org.eclipse.elk.rectpacking.onlyFirstIteration',Gre='org.eclipse.elk.rectpacking.rowCompaction',Hre='org.eclipse.elk.rectpacking.expandToAspectRatio',Ire='org.eclipse.elk.rectpacking.targetWidth',Jre='org.eclipse.elk.expandNodes',Kre='org.eclipse.elk.rectpacking',Lre='org.eclipse.elk.alg.rectpacking.util',Mre='No implementation available for ',Nre='org.eclipse.elk.alg.spore',Ore='org.eclipse.elk.alg.spore.options',Pre='org.eclipse.elk.sporeCompaction',Qre='org.eclipse.elk.underlyingLayoutAlgorithm',Rre='org.eclipse.elk.processingOrder.treeConstruction',Sre='org.eclipse.elk.processingOrder.spanningTreeCostFunction',Tre='org.eclipse.elk.processingOrder.preferredRoot',Ure='org.eclipse.elk.processingOrder.rootSelection',Vre='org.eclipse.elk.structure.structureExtractionStrategy',Wre='org.eclipse.elk.compaction.compactionStrategy',Xre='org.eclipse.elk.compaction.orthogonal',Yre='org.eclipse.elk.overlapRemoval.maxIterations',Zre='org.eclipse.elk.overlapRemoval.runScanline',$re='processingOrder',_re='overlapRemoval',ase='org.eclipse.elk.sporeOverlap',bse='org.eclipse.elk.alg.spore.p1structure',cse='org.eclipse.elk.alg.spore.p2processingorder',dse='org.eclipse.elk.alg.spore.p3execution',ese='Invalid index: ',fse='org.eclipse.elk.core.alg',gse={331:1},hse={288:1},ise='Make sure its type is registered with the ',jse=' utility class.',kse='true',lse='false',mse="Couldn't clone property '",nse=0.05,ose='org.eclipse.elk.core.options',pse=1.2999999523162842,qse='org.eclipse.elk.box',rse='org.eclipse.elk.box.packingMode',sse='org.eclipse.elk.algorithm',tse='org.eclipse.elk.resolvedAlgorithm',use='org.eclipse.elk.bendPoints',vse='org.eclipse.elk.labelManager',wse='org.eclipse.elk.scaleFactor',xse='org.eclipse.elk.animate',yse='org.eclipse.elk.animTimeFactor',zse='org.eclipse.elk.layoutAncestors',Ase='org.eclipse.elk.maxAnimTime',Bse='org.eclipse.elk.minAnimTime',Cse='org.eclipse.elk.progressBar',Dse='org.eclipse.elk.validateGraph',Ese='org.eclipse.elk.validateOptions',Fse='org.eclipse.elk.zoomToFit',Gse='org.eclipse.elk.font.name',Hse='org.eclipse.elk.font.size',Ise='org.eclipse.elk.edge.type',Jse='partitioning',Kse='nodeLabels',Lse='portAlignment',Mse='nodeSize',Nse='port',Ose='portLabels',Pse='insideSelfLoops',Qse='org.eclipse.elk.fixed',Rse='org.eclipse.elk.random',Sse='port must have a parent node to calculate the port side',Tse='The edge needs to have exactly one edge section. Found: ',Use='org.eclipse.elk.core.util.adapters',Vse='org.eclipse.emf.ecore',Wse='org.eclipse.elk.graph',Xse='EMapPropertyHolder',Yse='ElkBendPoint',Zse='ElkGraphElement',$se='ElkConnectableShape',_se='ElkEdge',ate='ElkEdgeSection',bte='EModelElement',cte='ENamedElement',dte='ElkLabel',ete='ElkNode',fte='ElkPort',gte={92:1,90:1},hte='org.eclipse.emf.common.notify.impl',ite="The feature '",jte="' is not a valid changeable feature",kte='Expecting null',lte="' is not a valid feature",mte='The feature ID',nte=' is not a valid feature ID',ote=32768,pte={105:1,92:1,90:1,56:1,49:1,97:1},qte='org.eclipse.emf.ecore.impl',rte='org.eclipse.elk.graph.impl',ste='Recursive containment not allowed for ',tte="The datatype '",ute="' is not a valid classifier",vte="The value '",wte={190:1,3:1,4:1},xte="The class '",yte='http://www.eclipse.org/elk/ElkGraph',zte=1024,Ate='property',Bte='value',Cte='source',Dte='properties',Ete='identifier',Fte='height',Gte='width',Hte='parent',Ite='text',Jte='children',Kte='hierarchical',Lte='sources',Mte='targets',Nte='sections',Ote='bendPoints',Pte='outgoingShape',Qte='incomingShape',Rte='outgoingSections',Ste='incomingSections',Tte='org.eclipse.emf.common.util',Ute='Severe implementation error in the Json to ElkGraph importer.',Vte='id',Wte='org.eclipse.elk.graph.json',Xte='Unhandled parameter types: ',Yte='startPoint',Zte="An edge must have at least one source and one target (edge id: '",$te="').",_te='Referenced edge section does not exist: ',aue=" (edge id: '",bue='target',cue='sourcePoint',due='targetPoint',eue='group',fue='name',gue='connectableShape cannot be null',hue='edge cannot be null',iue="Passed edge is not 'simple'.",jue='org.eclipse.elk.graph.util',kue="The 'no duplicates' constraint is violated",lue='targetIndex=',mue=', size=',nue='sourceIndex=',oue={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},pue={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},que='logging',rue='measureExecutionTime',sue='parser.parse.1',tue='parser.parse.2',uue='parser.next.1',vue='parser.next.2',wue='parser.next.3',xue='parser.next.4',yue='parser.factor.1',zue='parser.factor.2',Aue='parser.factor.3',Bue='parser.factor.4',Cue='parser.factor.5',Due='parser.factor.6',Eue='parser.atom.1',Fue='parser.atom.2',Gue='parser.atom.3',Hue='parser.atom.4',Iue='parser.atom.5',Jue='parser.cc.1',Kue='parser.cc.2',Lue='parser.cc.3',Mue='parser.cc.5',Nue='parser.cc.6',Oue='parser.cc.7',Pue='parser.cc.8',Que='parser.ope.1',Rue='parser.ope.2',Sue='parser.ope.3',Tue='parser.descape.1',Uue='parser.descape.2',Vue='parser.descape.3',Wue='parser.descape.4',Xue='parser.descape.5',Yue='parser.process.1',Zue='parser.quantifier.1',$ue='parser.quantifier.2',_ue='parser.quantifier.3',ave='parser.quantifier.4',bve='parser.quantifier.5',cve='org.eclipse.emf.common.notify',dve={415:1,672:1},eve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},fve={366:1,143:1},gve='index=',hve={3:1,4:1,5:1,126:1},ive={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},jve={3:1,6:1,4:1,5:1,192:1},kve={3:1,4:1,5:1,165:1,367:1},lve=';/?:@&=+$,',mve='invalid authority: ',nve='EAnnotation',ove='ETypedElement',pve='EStructuralFeature',qve='EAttribute',rve='EClassifier',sve='EEnumLiteral',tve='EGenericType',uve='EOperation',vve='EParameter',wve='EReference',xve='ETypeParameter',yve='org.eclipse.emf.ecore.util',zve={76:1},Ave={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},Bve='org.eclipse.emf.ecore.util.FeatureMap$Entry',Cve=8192,Dve=2048,Eve='byte',Fve='char',Gve='double',Hve='float',Ive='int',Jve='long',Kve='short',Lve='java.lang.Object',Mve={3:1,4:1,5:1,247:1},Nve={3:1,4:1,5:1,673:1},Ove={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},Pve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},Qve='mixed',Rve='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',Sve='kind',Tve={3:1,4:1,5:1,674:1},Uve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},Vve={20:1,28:1,52:1,14:1,15:1,58:1,69:1},Wve={47:1,125:1,279:1},Xve={72:1,332:1},Yve="The value of type '",Zve="' must be of type '",$ve=1316,_ve='http://www.eclipse.org/emf/2002/Ecore',awe=-32768,bwe='constraints',cwe='baseType',dwe='getEStructuralFeature',ewe='getFeatureID',fwe='feature',gwe='getOperationID',hwe='operation',iwe='defaultValue',jwe='eTypeParameters',kwe='isInstance',lwe='getEEnumLiteral',mwe='eContainingClass',nwe={55:1},owe={3:1,4:1,5:1,119:1},pwe='org.eclipse.emf.ecore.resource',qwe={92:1,90:1,591:1,1935:1},rwe='org.eclipse.emf.ecore.resource.impl',swe='unspecified',twe='simple',uwe='attribute',vwe='attributeWildcard',wwe='element',xwe='elementWildcard',ywe='collapse',zwe='itemType',Awe='namespace',Bwe='##targetNamespace',Cwe='whiteSpace',Dwe='wildcards',Ewe='http://www.eclipse.org/emf/2003/XMLType',Fwe='##any',Gwe='uninitialized',Hwe='The multiplicity constraint is violated',Iwe='org.eclipse.emf.ecore.xml.type',Jwe='ProcessingInstruction',Kwe='SimpleAnyType',Lwe='XMLTypeDocumentRoot',Mwe='org.eclipse.emf.ecore.xml.type.impl',Nwe='INF',Owe='processing',Pwe='ENTITIES_._base',Qwe='minLength',Rwe='ENTITY',Swe='NCName',Twe='IDREFS_._base',Uwe='integer',Vwe='token',Wwe='pattern',Xwe='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',Ywe='\\i\\c*',Zwe='[\\i-[:]][\\c-[:]]*',$we='nonPositiveInteger',_we='maxInclusive',axe='NMTOKEN',bxe='NMTOKENS_._base',cxe='nonNegativeInteger',dxe='minInclusive',exe='normalizedString',fxe='unsignedByte',gxe='unsignedInt',hxe='18446744073709551615',ixe='unsignedShort',jxe='processingInstruction',kxe='org.eclipse.emf.ecore.xml.type.internal',lxe=1114111,mxe='Internal Error: shorthands: \\u',nxe='xml:isDigit',oxe='xml:isWord',pxe='xml:isSpace',qxe='xml:isNameChar',rxe='xml:isInitialNameChar',sxe='09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29',txe='AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3',uxe='Private Use',vxe='ASSIGNED',wxe='\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF',xxe='UNASSIGNED',yxe={3:1,117:1},zxe='org.eclipse.emf.ecore.xml.type.util',Axe={3:1,4:1,5:1,368:1},Bxe='org.eclipse.xtext.xbase.lib',Cxe='Cannot add elements to a Range',Dxe='Cannot set elements in a Range',Exe='Cannot remove elements from a Range',Fxe='locale',Gxe='default',Hxe='user.agent';var _,_bb,Wbb,tbb=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;acb();bcb(1,null,{},nb);_.Fb=function ob(a){return mb(this,a)};_.Gb=function qb(){return this.gm};_.Hb=function sb(){return FCb(this)};_.Ib=function ub(){var a;return hdb(rb(this))+'@'+(a=tb(this)>>>0,a.toString(16))};_.equals=function(a){return this.Fb(a)};_.hashCode=function(){return this.Hb()};_.toString=function(){return this.Ib()};var xD,yD,zD;bcb(290,1,{290:1,2026:1},jdb);_.le=function kdb(a){var b;b=new jdb;b.i=4;a>1?(b.c=rdb(this,a-1)):(b.c=this);return b};_.me=function qdb(){fdb(this);return this.b};_.ne=function sdb(){return hdb(this)};_.oe=function udb(){return fdb(this),this.k};_.pe=function wdb(){return (this.i&4)!=0};_.qe=function xdb(){return (this.i&1)!=0};_.Ib=function Adb(){return idb(this)};_.i=0;var edb=1;var SI=mdb(Phe,'Object',1);var AI=mdb(Phe,'Class',290);bcb(1998,1,Qhe);var $D=mdb(Rhe,'Optional',1998);bcb(1170,1998,Qhe,xb);_.Fb=function yb(a){return a===this};_.Hb=function zb(){return 2040732332};_.Ib=function Ab(){return 'Optional.absent()'};_.Jb=function Bb(a){Qb(a);return wb(),vb};var vb;var YD=mdb(Rhe,'Absent',1170);bcb(628,1,{},Gb);var ZD=mdb(Rhe,'Joiner',628);var _D=odb(Rhe,'Predicate');bcb(582,1,{169:1,582:1,3:1,45:1},Yb);_.Mb=function ac(a){return Xb(this,a)};_.Lb=function Zb(a){return Xb(this,a)};_.Fb=function $b(a){var b;if(JD(a,582)){b=BD(a,582);return At(this.a,b.a)}return false};_.Hb=function _b(){return qmb(this.a)+306654252};_.Ib=function bc(){return Wb(this.a)};var aE=mdb(Rhe,'Predicates/AndPredicate',582);bcb(408,1998,{408:1,3:1},cc);_.Fb=function dc(a){var b;if(JD(a,408)){b=BD(a,408);return pb(this.a,b.a)}return false};_.Hb=function ec(){return 1502476572+tb(this.a)};_.Ib=function fc(){return Whe+this.a+')'};_.Jb=function gc(a){return new cc(Rb(a.Kb(this.a),'the Function passed to Optional.transform() must not return null.'))};var bE=mdb(Rhe,'Present',408);bcb(198,1,Yhe);_.Nb=function kc(a){Rrb(this,a)};_.Qb=function lc(){jc()};var MH=mdb(Zhe,'UnmodifiableIterator',198);bcb(1978,198,$he);_.Qb=function nc(){jc()};_.Rb=function mc(a){throw vbb(new bgb)};_.Wb=function oc(a){throw vbb(new bgb)};var NH=mdb(Zhe,'UnmodifiableListIterator',1978);bcb(386,1978,$he);_.Ob=function rc(){return this.c<this.d};_.Sb=function sc(){return this.c>0};_.Pb=function tc(){if(this.c>=this.d){throw vbb(new utb)}return this.Xb(this.c++)};_.Tb=function uc(){return this.c};_.Ub=function vc(){if(this.c<=0){throw vbb(new utb)}return this.Xb(--this.c)};_.Vb=function wc(){return this.c-1};_.c=0;_.d=0;var cE=mdb(Zhe,'AbstractIndexedListIterator',386);bcb(699,198,Yhe);_.Ob=function Ac(){return xc(this)};_.Pb=function Bc(){return yc(this)};_.e=1;var dE=mdb(Zhe,'AbstractIterator',699);bcb(1986,1,{224:1});_.Zb=function Hc(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.Fb=function Ic(a){return hw(this,a)};_.Hb=function Jc(){return tb(this.Zb())};_.dc=function Kc(){return this.gc()==0};_.ec=function Lc(){return Ec(this)};_.Ib=function Mc(){return fcb(this.Zb())};var IE=mdb(Zhe,'AbstractMultimap',1986);bcb(726,1986,_he);_.$b=function Xc(){Nc(this)};_._b=function Yc(a){return Oc(this,a)};_.ac=function Zc(){return new ne(this,this.c)};_.ic=function $c(a){return this.hc()};_.bc=function _c(){return new zf(this,this.c)};_.jc=function ad(){return this.mc(this.hc())};_.kc=function bd(){return new Hd(this)};_.lc=function cd(){return Yj(this.c.vc().Nc(),new $g,64,this.d)};_.cc=function dd(a){return Qc(this,a)};_.fc=function gd(a){return Sc(this,a)};_.gc=function hd(){return this.d};_.mc=function jd(a){return mmb(),new lnb(a)};_.nc=function kd(){return new Dd(this)};_.oc=function ld(){return Yj(this.c.Cc().Nc(),new Fd,64,this.d)};_.pc=function md(a,b){return new dg(this,a,b,null)};_.d=0;var DE=mdb(Zhe,'AbstractMapBasedMultimap',726);bcb(1631,726,_he);_.hc=function pd(){return new Skb(this.a)};_.jc=function qd(){return mmb(),mmb(),jmb};_.cc=function sd(a){return BD(Qc(this,a),15)};_.fc=function ud(a){return BD(Sc(this,a),15)};_.Zb=function od(){return nd(this)};_.Fb=function rd(a){return hw(this,a)};_.qc=function td(a){return BD(Qc(this,a),15)};_.rc=function vd(a){return BD(Sc(this,a),15)};_.mc=function wd(a){return vmb(BD(a,15))};_.pc=function xd(a,b){return Vc(this,a,BD(b,15),null)};var eE=mdb(Zhe,'AbstractListMultimap',1631);bcb(732,1,aie);_.Nb=function zd(a){Rrb(this,a)};_.Ob=function Ad(){return this.c.Ob()||this.e.Ob()};_.Pb=function Bd(){var a;if(!this.e.Ob()){a=BD(this.c.Pb(),42);this.b=a.cd();this.a=BD(a.dd(),14);this.e=this.a.Kc()}return this.sc(this.b,this.e.Pb())};_.Qb=function Cd(){this.e.Qb();this.a.dc()&&this.c.Qb();--this.d.d};var mE=mdb(Zhe,'AbstractMapBasedMultimap/Itr',732);bcb(1099,732,aie,Dd);_.sc=function Ed(a,b){return b};var fE=mdb(Zhe,'AbstractMapBasedMultimap/1',1099);bcb(1100,1,{},Fd);_.Kb=function Gd(a){return BD(a,14).Nc()};var gE=mdb(Zhe,'AbstractMapBasedMultimap/1methodref$spliterator$Type',1100);bcb(1101,732,aie,Hd);_.sc=function Id(a,b){return new Wo(a,b)};var hE=mdb(Zhe,'AbstractMapBasedMultimap/2',1101);var DK=odb(bie,'Map');bcb(1967,1,cie);_.wc=function Td(a){stb(this,a)};_.yc=function $d(a,b,c){return ttb(this,a,b,c)};_.$b=function Od(){this.vc().$b()};_.tc=function Pd(a){return Jd(this,a)};_._b=function Qd(a){return !!Kd(this,a,false)};_.uc=function Rd(a){var b,c,d;for(c=this.vc().Kc();c.Ob();){b=BD(c.Pb(),42);d=b.dd();if(PD(a)===PD(d)||a!=null&&pb(a,d)){return true}}return false};_.Fb=function Sd(a){var b,c,d;if(a===this){return true}if(!JD(a,83)){return false}d=BD(a,83);if(this.gc()!=d.gc()){return false}for(c=d.vc().Kc();c.Ob();){b=BD(c.Pb(),42);if(!this.tc(b)){return false}}return true};_.xc=function Ud(a){return Wd(Kd(this,a,false))};_.Hb=function Xd(){return pmb(this.vc())};_.dc=function Yd(){return this.gc()==0};_.ec=function Zd(){return new Pib(this)};_.zc=function _d(a,b){throw vbb(new cgb('Put not supported on this map'))};_.Ac=function ae(a){Ld(this,a)};_.Bc=function be(a){return Wd(Kd(this,a,true))};_.gc=function ce(){return this.vc().gc()};_.Ib=function de(){return Md(this)};_.Cc=function ee(){return new $ib(this)};var sJ=mdb(bie,'AbstractMap',1967);bcb(1987,1967,cie);_.bc=function ge(){return new rf(this)};_.vc=function he(){return fe(this)};_.ec=function ie(){var a;a=this.g;return !a?(this.g=this.bc()):a};_.Cc=function je(){var a;a=this.i;return !a?(this.i=new Zv(this)):a};var bH=mdb(Zhe,'Maps/ViewCachingAbstractMap',1987);bcb(389,1987,cie,ne);_.xc=function se(a){return ke(this,a)};_.Bc=function ve(a){return le(this,a)};_.$b=function oe(){this.d==this.e.c?this.e.$b():ir(new mf(this))};_._b=function pe(a){return Gv(this.d,a)};_.Ec=function qe(){return new df(this)};_.Dc=function(){return this.Ec()};_.Fb=function re(a){return this===a||pb(this.d,a)};_.Hb=function te(){return tb(this.d)};_.ec=function ue(){return this.e.ec()};_.gc=function we(){return this.d.gc()};_.Ib=function xe(){return fcb(this.d)};var lE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap',389);var KI=odb(Phe,'Iterable');bcb(28,1,die);_.Jc=function Le(a){reb(this,a)};_.Lc=function Ne(){return this.Oc()};_.Nc=function Pe(){return new Kub(this,0)};_.Oc=function Qe(){return new YAb(null,this.Nc())};_.Fc=function Ge(a){throw vbb(new cgb('Add not supported on this collection'))};_.Gc=function He(a){return ye(this,a)};_.$b=function Ie(){Ae(this)};_.Hc=function Je(a){return ze(this,a,false)};_.Ic=function Ke(a){return Be(this,a)};_.dc=function Me(){return this.gc()==0};_.Mc=function Oe(a){return ze(this,a,true)};_.Pc=function Re(){return De(this)};_.Qc=function Se(a){return Ee(this,a)};_.Ib=function Te(){return Fe(this)};var dJ=mdb(bie,'AbstractCollection',28);var LK=odb(bie,'Set');bcb(eie,28,fie);_.Nc=function Ye(){return new Kub(this,1)};_.Fb=function We(a){return Ue(this,a)};_.Hb=function Xe(){return pmb(this)};var zJ=mdb(bie,'AbstractSet',eie);bcb(1970,eie,fie);var BH=mdb(Zhe,'Sets/ImprovedAbstractSet',1970);bcb(1971,1970,fie);_.$b=function $e(){this.Rc().$b()};_.Hc=function _e(a){return Ze(this,a)};_.dc=function af(){return this.Rc().dc()};_.Mc=function bf(a){var b;if(this.Hc(a)){b=BD(a,42);return this.Rc().ec().Mc(b.cd())}return false};_.gc=function cf(){return this.Rc().gc()};var WG=mdb(Zhe,'Maps/EntrySet',1971);bcb(1097,1971,fie,df);_.Hc=function ef(a){return Ck(this.a.d.vc(),a)};_.Kc=function ff(){return new mf(this.a)};_.Rc=function gf(){return this.a};_.Mc=function hf(a){var b;if(!Ck(this.a.d.vc(),a)){return false}b=BD(a,42);Tc(this.a.e,b.cd());return true};_.Nc=function jf(){return $j(this.a.d.vc().Nc(),new kf(this.a))};var jE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries',1097);bcb(1098,1,{},kf);_.Kb=function lf(a){return me(this.a,BD(a,42))};var iE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',1098);bcb(730,1,aie,mf);_.Nb=function nf(a){Rrb(this,a)};_.Pb=function pf(){var a;return a=BD(this.b.Pb(),42),this.a=BD(a.dd(),14),me(this.c,a)};_.Ob=function of(){return this.b.Ob()};_.Qb=function qf(){Vb(!!this.a);this.b.Qb();this.c.e.d-=this.a.gc();this.a.$b();this.a=null};var kE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapIterator',730);bcb(532,1970,fie,rf);_.$b=function sf(){this.b.$b()};_.Hc=function tf(a){return this.b._b(a)};_.Jc=function uf(a){Qb(a);this.b.wc(new Xv(a))};_.dc=function vf(){return this.b.dc()};_.Kc=function wf(){return new Mv(this.b.vc().Kc())};_.Mc=function xf(a){if(this.b._b(a)){this.b.Bc(a);return true}return false};_.gc=function yf(){return this.b.gc()};var $G=mdb(Zhe,'Maps/KeySet',532);bcb(318,532,fie,zf);_.$b=function Af(){var a;ir((a=this.b.vc().Kc(),new Hf(this,a)))};_.Ic=function Bf(a){return this.b.ec().Ic(a)};_.Fb=function Cf(a){return this===a||pb(this.b.ec(),a)};_.Hb=function Df(){return tb(this.b.ec())};_.Kc=function Ef(){var a;return a=this.b.vc().Kc(),new Hf(this,a)};_.Mc=function Ff(a){var b,c;c=0;b=BD(this.b.Bc(a),14);if(b){c=b.gc();b.$b();this.a.d-=c}return c>0};_.Nc=function Gf(){return this.b.ec().Nc()};var oE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet',318);bcb(731,1,aie,Hf);_.Nb=function If(a){Rrb(this,a)};_.Ob=function Jf(){return this.c.Ob()};_.Pb=function Kf(){this.a=BD(this.c.Pb(),42);return this.a.cd()};_.Qb=function Lf(){var a;Vb(!!this.a);a=BD(this.a.dd(),14);this.c.Qb();this.b.a.d-=a.gc();a.$b();this.a=null};var nE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet/1',731);bcb(491,389,{83:1,161:1},Mf);_.bc=function Nf(){return this.Sc()};_.ec=function Pf(){return this.Tc()};_.Sc=function Of(){return new Yf(this.c,this.Uc())};_.Tc=function Qf(){var a;return a=this.b,!a?(this.b=this.Sc()):a};_.Uc=function Rf(){return BD(this.d,161)};var sE=mdb(Zhe,'AbstractMapBasedMultimap/SortedAsMap',491);bcb(542,491,gie,Sf);_.bc=function Tf(){return new $f(this.a,BD(BD(this.d,161),171))};_.Sc=function Uf(){return new $f(this.a,BD(BD(this.d,161),171))};_.ec=function Vf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Tc=function Wf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Uc=function Xf(){return BD(BD(this.d,161),171)};var pE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableAsMap',542);bcb(490,318,hie,Yf);_.Nc=function Zf(){return this.b.ec().Nc()};var tE=mdb(Zhe,'AbstractMapBasedMultimap/SortedKeySet',490);bcb(388,490,iie,$f);var qE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableKeySet',388);bcb(541,28,die,dg);_.Fc=function eg(a){var b,c;ag(this);c=this.d.dc();b=this.d.Fc(a);if(b){++this.f.d;c&&_f(this)}return b};_.Gc=function fg(a){var b,c,d;if(a.dc()){return false}d=(ag(this),this.d.gc());b=this.d.Gc(a);if(b){c=this.d.gc();this.f.d+=c-d;d==0&&_f(this)}return b};_.$b=function gg(){var a;a=(ag(this),this.d.gc());if(a==0){return}this.d.$b();this.f.d-=a;bg(this)};_.Hc=function hg(a){ag(this);return this.d.Hc(a)};_.Ic=function ig(a){ag(this);return this.d.Ic(a)};_.Fb=function jg(a){if(a===this){return true}ag(this);return pb(this.d,a)};_.Hb=function kg(){ag(this);return tb(this.d)};_.Kc=function lg(){ag(this);return new Gg(this)};_.Mc=function mg(a){var b;ag(this);b=this.d.Mc(a);if(b){--this.f.d;bg(this)}return b};_.gc=function ng(){return cg(this)};_.Nc=function og(){return ag(this),this.d.Nc()};_.Ib=function pg(){ag(this);return fcb(this.d)};var vE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection',541);var yK=odb(bie,'List');bcb(728,541,{20:1,28:1,14:1,15:1},qg);_.ad=function zg(a){ktb(this,a)};_.Nc=function Ag(){return ag(this),this.d.Nc()};_.Vc=function rg(a,b){var c;ag(this);c=this.d.dc();BD(this.d,15).Vc(a,b);++this.a.d;c&&_f(this)};_.Wc=function sg(a,b){var c,d,e;if(b.dc()){return false}e=(ag(this),this.d.gc());c=BD(this.d,15).Wc(a,b);if(c){d=this.d.gc();this.a.d+=d-e;e==0&&_f(this)}return c};_.Xb=function tg(a){ag(this);return BD(this.d,15).Xb(a)};_.Xc=function ug(a){ag(this);return BD(this.d,15).Xc(a)};_.Yc=function vg(){ag(this);return new Mg(this)};_.Zc=function wg(a){ag(this);return new Ng(this,a)};_.$c=function xg(a){var b;ag(this);b=BD(this.d,15).$c(a);--this.a.d;bg(this);return b};_._c=function yg(a,b){ag(this);return BD(this.d,15)._c(a,b)};_.bd=function Bg(a,b){ag(this);return Vc(this.a,this.e,BD(this.d,15).bd(a,b),!this.b?this:this.b)};var xE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList',728);bcb(1096,728,{20:1,28:1,14:1,15:1,54:1},Cg);var rE=mdb(Zhe,'AbstractMapBasedMultimap/RandomAccessWrappedList',1096);bcb(620,1,aie,Gg);_.Nb=function Ig(a){Rrb(this,a)};_.Ob=function Jg(){Fg(this);return this.b.Ob()};_.Pb=function Kg(){Fg(this);return this.b.Pb()};_.Qb=function Lg(){Eg(this)};var uE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',620);bcb(729,620,jie,Mg,Ng);_.Qb=function Tg(){Eg(this)};_.Rb=function Og(a){var b;b=cg(this.a)==0;(Fg(this),BD(this.b,125)).Rb(a);++this.a.a.d;b&&_f(this.a)};_.Sb=function Pg(){return (Fg(this),BD(this.b,125)).Sb()};_.Tb=function Qg(){return (Fg(this),BD(this.b,125)).Tb()};_.Ub=function Rg(){return (Fg(this),BD(this.b,125)).Ub()};_.Vb=function Sg(){return (Fg(this),BD(this.b,125)).Vb()};_.Wb=function Ug(a){(Fg(this),BD(this.b,125)).Wb(a)};var wE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',729);bcb(727,541,hie,Vg);_.Nc=function Wg(){return ag(this),this.d.Nc()};var AE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSortedSet',727);bcb(1095,727,iie,Xg);var yE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedNavigableSet',1095);bcb(1094,541,fie,Yg);_.Nc=function Zg(){return ag(this),this.d.Nc()};var zE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSet',1094);bcb(1103,1,{},$g);_.Kb=function _g(a){return fd(BD(a,42))};var BE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$1$Type',1103);bcb(1102,1,{},ah);_.Kb=function bh(a){return new Wo(this.a,a)};var CE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$2$Type',1102);var CK=odb(bie,'Map/Entry');bcb(345,1,kie);_.Fb=function dh(a){var b;if(JD(a,42)){b=BD(a,42);return Hb(this.cd(),b.cd())&&Hb(this.dd(),b.dd())}return false};_.Hb=function eh(){var a,b;a=this.cd();b=this.dd();return (a==null?0:tb(a))^(b==null?0:tb(b))};_.ed=function fh(a){throw vbb(new bgb)};_.Ib=function gh(){return this.cd()+'='+this.dd()};var EE=mdb(Zhe,lie,345);bcb(1988,28,die);_.$b=function hh(){this.fd().$b()};_.Hc=function ih(a){var b;if(JD(a,42)){b=BD(a,42);return Cc(this.fd(),b.cd(),b.dd())}return false};_.Mc=function jh(a){var b;if(JD(a,42)){b=BD(a,42);return Gc(this.fd(),b.cd(),b.dd())}return false};_.gc=function kh(){return this.fd().d};var fH=mdb(Zhe,'Multimaps/Entries',1988);bcb(733,1988,die,lh);_.Kc=function mh(){return this.a.kc()};_.fd=function nh(){return this.a};_.Nc=function oh(){return this.a.lc()};var FE=mdb(Zhe,'AbstractMultimap/Entries',733);bcb(734,733,fie,ph);_.Nc=function sh(){return this.a.lc()};_.Fb=function qh(a){return Ax(this,a)};_.Hb=function rh(){return Bx(this)};var GE=mdb(Zhe,'AbstractMultimap/EntrySet',734);bcb(735,28,die,th);_.$b=function uh(){this.a.$b()};_.Hc=function vh(a){return Dc(this.a,a)};_.Kc=function wh(){return this.a.nc()};_.gc=function xh(){return this.a.d};_.Nc=function yh(){return this.a.oc()};var HE=mdb(Zhe,'AbstractMultimap/Values',735);bcb(1989,28,{835:1,20:1,28:1,14:1});_.Jc=function Gh(a){Qb(a);Ah(this).Jc(new Xw(a))};_.Nc=function Kh(){var a;return a=Ah(this).Nc(),Yj(a,new cx,64|a.qd()&1296,this.a.d)};_.Fc=function Ch(a){zh();return true};_.Gc=function Dh(a){return Qb(this),Qb(a),JD(a,543)?Zw(BD(a,835)):!a.dc()&&fr(this,a.Kc())};_.Hc=function Eh(a){var b;return b=BD(Hv(nd(this.a),a),14),(!b?0:b.gc())>0};_.Fb=function Fh(a){return $w(this,a)};_.Hb=function Hh(){return tb(Ah(this))};_.dc=function Ih(){return Ah(this).dc()};_.Mc=function Jh(a){return Bw(this,a,1)>0};_.Ib=function Lh(){return fcb(Ah(this))};var KE=mdb(Zhe,'AbstractMultiset',1989);bcb(1991,1970,fie);_.$b=function Mh(){Nc(this.a.a)};_.Hc=function Nh(a){var b,c;if(JD(a,492)){c=BD(a,416);if(BD(c.a.dd(),14).gc()<=0){return false}b=Aw(this.a,c.a.cd());return b==BD(c.a.dd(),14).gc()}return false};_.Mc=function Oh(a){var b,c,d,e;if(JD(a,492)){c=BD(a,416);b=c.a.cd();d=BD(c.a.dd(),14).gc();if(d!=0){e=this.a;return ax(e,b,d)}}return false};var pH=mdb(Zhe,'Multisets/EntrySet',1991);bcb(1109,1991,fie,Ph);_.Kc=function Qh(){return new Lw(fe(nd(this.a.a)).Kc())};_.gc=function Rh(){return nd(this.a.a).gc()};var JE=mdb(Zhe,'AbstractMultiset/EntrySet',1109);bcb(619,726,_he);_.hc=function Uh(){return this.gd()};_.jc=function Vh(){return this.hd()};_.cc=function Yh(a){return this.jd(a)};_.fc=function $h(a){return this.kd(a)};_.Zb=function Th(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.hd=function Wh(){return mmb(),mmb(),lmb};_.Fb=function Xh(a){return hw(this,a)};_.jd=function Zh(a){return BD(Qc(this,a),21)};_.kd=function _h(a){return BD(Sc(this,a),21)};_.mc=function ai(a){return mmb(),new zob(BD(a,21))};_.pc=function bi(a,b){return new Yg(this,a,BD(b,21))};var LE=mdb(Zhe,'AbstractSetMultimap',619);bcb(1657,619,_he);_.hc=function ei(){return new Hxb(this.b)};_.gd=function fi(){return new Hxb(this.b)};_.jc=function gi(){return Ix(new Hxb(this.b))};_.hd=function hi(){return Ix(new Hxb(this.b))};_.cc=function ii(a){return BD(BD(Qc(this,a),21),84)};_.jd=function ji(a){return BD(BD(Qc(this,a),21),84)};_.fc=function ki(a){return BD(BD(Sc(this,a),21),84)};_.kd=function li(a){return BD(BD(Sc(this,a),21),84)};_.mc=function mi(a){return JD(a,271)?Ix(BD(a,271)):(mmb(),new Zob(BD(a,84)))};_.Zb=function di(){var a;return a=this.f,!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a};_.pc=function ni(a,b){return JD(b,271)?new Xg(this,a,BD(b,271)):new Vg(this,a,BD(b,84))};var NE=mdb(Zhe,'AbstractSortedSetMultimap',1657);bcb(1658,1657,_he);_.Zb=function pi(){var a;return a=this.f,BD(BD(!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a,161),171)};_.ec=function ri(){var a;return a=this.i,BD(BD(!a?(this.i=JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)):a,84),271)};_.bc=function qi(){return JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)};var ME=mdb(Zhe,'AbstractSortedKeySortedSetMultimap',1658);bcb(2010,1,{1947:1});_.Fb=function si(a){return zy(this,a)};_.Hb=function ti(){var a;return pmb((a=this.g,!a?(this.g=new vi(this)):a))};_.Ib=function ui(){var a;return Md((a=this.f,!a?(this.f=new Rj(this)):a))};var QE=mdb(Zhe,'AbstractTable',2010);bcb(665,eie,fie,vi);_.$b=function wi(){Pi()};_.Hc=function xi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Ck(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.Kc=function yi(){return Ni(this.a)};_.Mc=function zi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Dk(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.gc=function Ai(){return Xi(this.a)};_.Nc=function Bi(){return Oi(this.a)};var OE=mdb(Zhe,'AbstractTable/CellSet',665);bcb(1928,28,die,Ci);_.$b=function Di(){Pi()};_.Hc=function Ei(a){return Qi(this.a,a)};_.Kc=function Fi(){return Zi(this.a)};_.gc=function Gi(){return Xi(this.a)};_.Nc=function Hi(){return $i(this.a)};var PE=mdb(Zhe,'AbstractTable/Values',1928);bcb(1632,1631,_he);var RE=mdb(Zhe,'ArrayListMultimapGwtSerializationDependencies',1632);bcb(513,1632,_he,Ji,Ki);_.hc=function Li(){return new Skb(this.a)};_.a=0;var SE=mdb(Zhe,'ArrayListMultimap',513);bcb(664,2010,{664:1,1947:1,3:1},_i);var cF=mdb(Zhe,'ArrayTable',664);bcb(1924,386,$he,aj);_.Xb=function bj(a){return new hj(this.a,a)};var TE=mdb(Zhe,'ArrayTable/1',1924);bcb(1925,1,{},cj);_.ld=function dj(a){return new hj(this.a,a)};var UE=mdb(Zhe,'ArrayTable/1methodref$getCell$Type',1925);bcb(2011,1,{682:1});_.Fb=function ej(a){var b;if(a===this){return true}if(JD(a,468)){b=BD(a,682);return Hb(Em(this.c.e,this.b),Em(b.c.e,b.b))&&Hb(Em(this.c.c,this.a),Em(b.c.c,b.a))&&Hb(Mi(this.c,this.b,this.a),Mi(b.c,b.b,b.a))}return false};_.Hb=function fj(){return Hlb(OC(GC(SI,1),Uhe,1,5,[Em(this.c.e,this.b),Em(this.c.c,this.a),Mi(this.c,this.b,this.a)]))};_.Ib=function gj(){return '('+Em(this.c.e,this.b)+','+Em(this.c.c,this.a)+')='+Mi(this.c,this.b,this.a)};var JH=mdb(Zhe,'Tables/AbstractCell',2011);bcb(468,2011,{468:1,682:1},hj);_.a=0;_.b=0;_.d=0;var VE=mdb(Zhe,'ArrayTable/2',468);bcb(1927,1,{},ij);_.ld=function jj(a){return Ti(this.a,a)};var WE=mdb(Zhe,'ArrayTable/2methodref$getValue$Type',1927);bcb(1926,386,$he,kj);_.Xb=function lj(a){return Ti(this.a,a)};var XE=mdb(Zhe,'ArrayTable/3',1926);bcb(1979,1967,cie);_.$b=function nj(){ir(this.kc())};_.vc=function oj(){return new Sv(this)};_.lc=function pj(){return new Mub(this.kc(),this.gc())};var YG=mdb(Zhe,'Maps/IteratorBasedAbstractMap',1979);bcb(828,1979,cie);_.$b=function tj(){throw vbb(new bgb)};_._b=function uj(a){return sn(this.c,a)};_.kc=function vj(){return new Jj(this,this.c.b.c.gc())};_.lc=function wj(){return Zj(this.c.b.c.gc(),16,new Dj(this))};_.xc=function xj(a){var b;b=BD(tn(this.c,a),19);return !b?null:this.nd(b.a)};_.dc=function yj(){return this.c.b.c.dc()};_.ec=function zj(){return Xm(this.c)};_.zc=function Aj(a,b){var c;c=BD(tn(this.c,a),19);if(!c){throw vbb(new Wdb(this.md()+' '+a+' not in '+Xm(this.c)))}return this.od(c.a,b)};_.Bc=function Bj(a){throw vbb(new bgb)};_.gc=function Cj(){return this.c.b.c.gc()};var _E=mdb(Zhe,'ArrayTable/ArrayMap',828);bcb(1923,1,{},Dj);_.ld=function Ej(a){return qj(this.a,a)};var YE=mdb(Zhe,'ArrayTable/ArrayMap/0methodref$getEntry$Type',1923);bcb(1921,345,kie,Fj);_.cd=function Gj(){return rj(this.a,this.b)};_.dd=function Hj(){return this.a.nd(this.b)};_.ed=function Ij(a){return this.a.od(this.b,a)};_.b=0;var ZE=mdb(Zhe,'ArrayTable/ArrayMap/1',1921);bcb(1922,386,$he,Jj);_.Xb=function Kj(a){return qj(this.a,a)};var $E=mdb(Zhe,'ArrayTable/ArrayMap/2',1922);bcb(1920,828,cie,Lj);_.md=function Mj(){return 'Column'};_.nd=function Nj(a){return Mi(this.b,this.a,a)};_.od=function Oj(a,b){return Wi(this.b,this.a,a,b)};_.a=0;var bF=mdb(Zhe,'ArrayTable/Row',1920);bcb(829,828,cie,Rj);_.nd=function Tj(a){return new Lj(this.a,a)};_.zc=function Uj(a,b){return BD(b,83),Pj()};_.od=function Vj(a,b){return BD(b,83),Qj()};_.md=function Sj(){return 'Row'};var aF=mdb(Zhe,'ArrayTable/RowMap',829);bcb(1120,1,pie,_j);_.qd=function ak(){return this.a.qd()&-262};_.rd=function bk(){return this.a.rd()};_.Nb=function ck(a){this.a.Nb(new gk(a,this.b))};_.sd=function dk(a){return this.a.sd(new ek(a,this.b))};var lF=mdb(Zhe,'CollectSpliterators/1',1120);bcb(1121,1,qie,ek);_.td=function fk(a){this.a.td(this.b.Kb(a))};var dF=mdb(Zhe,'CollectSpliterators/1/lambda$0$Type',1121);bcb(1122,1,qie,gk);_.td=function hk(a){this.a.td(this.b.Kb(a))};var eF=mdb(Zhe,'CollectSpliterators/1/lambda$1$Type',1122);bcb(1123,1,pie,jk);_.qd=function kk(){return this.a};_.rd=function lk(){!!this.d&&(this.b=Deb(this.b,this.d.rd()));return Deb(this.b,0)};_.Nb=function mk(a){if(this.d){this.d.Nb(a);this.d=null}this.c.Nb(new rk(this.e,a));this.b=0};_.sd=function ok(a){while(true){if(!!this.d&&this.d.sd(a)){Kbb(this.b,rie)&&(this.b=Qbb(this.b,1));return true}else{this.d=null}if(!this.c.sd(new pk(this,this.e))){return false}}};_.a=0;_.b=0;var hF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator',1123);bcb(1124,1,qie,pk);_.td=function qk(a){ik(this.a,this.b,a)};var fF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type',1124);bcb(1125,1,qie,rk);_.td=function sk(a){nk(this.b,this.a,a)};var gF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type',1125);bcb(1117,1,pie,tk);_.qd=function uk(){return 16464|this.b};_.rd=function vk(){return this.a.rd()};_.Nb=function wk(a){this.a.xe(new Ak(a,this.c))};_.sd=function xk(a){return this.a.ye(new yk(a,this.c))};_.b=0;var kF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics',1117);bcb(1118,1,sie,yk);_.ud=function zk(a){this.a.td(this.b.ld(a))};var iF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$0$Type',1118);bcb(1119,1,sie,Ak);_.ud=function Bk(a){this.a.td(this.b.ld(a))};var jF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$1$Type',1119);bcb(245,1,tie);_.wd=function Hk(a){return this.vd(BD(a,245))};_.vd=function Gk(a){var b;if(a==(_k(),$k)){return 1}if(a==(Lk(),Kk)){return -1}b=(ex(),Fcb(this.a,a.a));if(b!=0){return b}return JD(this,519)==JD(a,519)?0:JD(this,519)?1:-1};_.zd=function Ik(){return this.a};_.Fb=function Jk(a){return Ek(this,a)};var qF=mdb(Zhe,'Cut',245);bcb(1761,245,tie,Mk);_.vd=function Nk(a){return a==this?0:1};_.xd=function Ok(a){throw vbb(new xcb)};_.yd=function Pk(a){a.a+='+\u221E)'};_.zd=function Qk(){throw vbb(new Zdb(uie))};_.Hb=function Rk(){return Zfb(),kCb(this)};_.Ad=function Sk(a){return false};_.Ib=function Tk(){return '+\u221E'};var Kk;var mF=mdb(Zhe,'Cut/AboveAll',1761);bcb(519,245,{245:1,519:1,3:1,35:1},Uk);_.xd=function Vk(a){Pfb((a.a+='(',a),this.a)};_.yd=function Wk(a){Kfb(Pfb(a,this.a),93)};_.Hb=function Xk(){return ~tb(this.a)};_.Ad=function Yk(a){return ex(),Fcb(this.a,a)<0};_.Ib=function Zk(){return '/'+this.a+'\\'};var nF=mdb(Zhe,'Cut/AboveValue',519);bcb(1760,245,tie,al);_.vd=function bl(a){return a==this?0:-1};_.xd=function cl(a){a.a+='(-\u221E'};_.yd=function dl(a){throw vbb(new xcb)};_.zd=function el(){throw vbb(new Zdb(uie))};_.Hb=function fl(){return Zfb(),kCb(this)};_.Ad=function gl(a){return true};_.Ib=function hl(){return '-\u221E'};var $k;var oF=mdb(Zhe,'Cut/BelowAll',1760);bcb(1762,245,tie,il);_.xd=function jl(a){Pfb((a.a+='[',a),this.a)};_.yd=function kl(a){Kfb(Pfb(a,this.a),41)};_.Hb=function ll(){return tb(this.a)};_.Ad=function ml(a){return ex(),Fcb(this.a,a)<=0};_.Ib=function nl(){return '\\'+this.a+'/'};var pF=mdb(Zhe,'Cut/BelowValue',1762);bcb(537,1,vie);_.Jc=function ql(a){reb(this,a)};_.Ib=function rl(){return tr(BD(Rb(this,'use Optional.orNull() instead of Optional.or(null)'),20).Kc())};var uF=mdb(Zhe,'FluentIterable',537);bcb(433,537,vie,sl);_.Kc=function tl(){return new Sr(ur(this.a.Kc(),new Sq))};var rF=mdb(Zhe,'FluentIterable/2',433);bcb(1046,537,vie,vl);_.Kc=function wl(){return ul(this)};var tF=mdb(Zhe,'FluentIterable/3',1046);bcb(708,386,$he,xl);_.Xb=function yl(a){return this.a[a].Kc()};var sF=mdb(Zhe,'FluentIterable/3/1',708);bcb(1972,1,{});_.Ib=function zl(){return fcb(this.Bd().b)};var BF=mdb(Zhe,'ForwardingObject',1972);bcb(1973,1972,wie);_.Bd=function Fl(){return this.Cd()};_.Jc=function Gl(a){reb(this,a)};_.Lc=function Jl(){return this.Oc()};_.Nc=function Ml(){return new Kub(this,0)};_.Oc=function Nl(){return new YAb(null,this.Nc())};_.Fc=function Al(a){return this.Cd(),enb()};_.Gc=function Bl(a){return this.Cd(),fnb()};_.$b=function Cl(){this.Cd(),gnb()};_.Hc=function Dl(a){return this.Cd().Hc(a)};_.Ic=function El(a){return this.Cd().Ic(a)};_.dc=function Hl(){return this.Cd().b.dc()};_.Kc=function Il(){return this.Cd().Kc()};_.Mc=function Kl(a){return this.Cd(),jnb()};_.gc=function Ll(){return this.Cd().b.gc()};_.Pc=function Ol(){return this.Cd().Pc()};_.Qc=function Pl(a){return this.Cd().Qc(a)};var vF=mdb(Zhe,'ForwardingCollection',1973);bcb(1980,28,xie);_.Kc=function Xl(){return this.Ed()};_.Fc=function Sl(a){throw vbb(new bgb)};_.Gc=function Tl(a){throw vbb(new bgb)};_.$b=function Ul(){throw vbb(new bgb)};_.Hc=function Vl(a){return a!=null&&ze(this,a,false)};_.Dd=function Wl(){switch(this.gc()){case 0:return im(),im(),hm;case 1:return im(),new my(Qb(this.Ed().Pb()));default:return new px(this,this.Pc());}};_.Mc=function Yl(a){throw vbb(new bgb)};var WF=mdb(Zhe,'ImmutableCollection',1980);bcb(712,1980,xie,Zl);_.Kc=function cm(){return vr(this.a.Kc())};_.Hc=function $l(a){return a!=null&&this.a.Hc(a)};_.Ic=function _l(a){return this.a.Ic(a)};_.dc=function am(){return this.a.dc()};_.Ed=function bm(){return vr(this.a.Kc())};_.gc=function dm(){return this.a.gc()};_.Pc=function em(){return this.a.Pc()};_.Qc=function fm(a){return this.a.Qc(a)};_.Ib=function gm(){return fcb(this.a)};var wF=mdb(Zhe,'ForwardingImmutableCollection',712);bcb(152,1980,yie);_.Kc=function sm(){return this.Ed()};_.Yc=function tm(){return this.Fd(0)};_.Zc=function vm(a){return this.Fd(a)};_.ad=function zm(a){ktb(this,a)};_.Nc=function Am(){return new Kub(this,16)};_.bd=function Cm(a,b){return this.Gd(a,b)};_.Vc=function lm(a,b){throw vbb(new bgb)};_.Wc=function mm(a,b){throw vbb(new bgb)};_.Fb=function om(a){return Ju(this,a)};_.Hb=function pm(){return Ku(this)};_.Xc=function qm(a){return a==null?-1:Lu(this,a)};_.Ed=function rm(){return this.Fd(0)};_.Fd=function um(a){return jm(this,a)};_.$c=function xm(a){throw vbb(new bgb)};_._c=function ym(a,b){throw vbb(new bgb)};_.Gd=function Bm(a,b){var c;return Dm((c=new $u(this),new Jib(c,a,b)))};var hm;var _F=mdb(Zhe,'ImmutableList',152);bcb(2006,152,yie);_.Kc=function Nm(){return vr(this.Hd().Kc())};_.bd=function Qm(a,b){return Dm(this.Hd().bd(a,b))};_.Hc=function Fm(a){return a!=null&&this.Hd().Hc(a)};_.Ic=function Gm(a){return this.Hd().Ic(a)};_.Fb=function Hm(a){return pb(this.Hd(),a)};_.Xb=function Im(a){return Em(this,a)};_.Hb=function Jm(){return tb(this.Hd())};_.Xc=function Km(a){return this.Hd().Xc(a)};_.dc=function Lm(){return this.Hd().dc()};_.Ed=function Mm(){return vr(this.Hd().Kc())};_.gc=function Om(){return this.Hd().gc()};_.Gd=function Pm(a,b){return Dm(this.Hd().bd(a,b))};_.Pc=function Rm(){return this.Hd().Qc(KC(SI,Uhe,1,this.Hd().gc(),5,1))};_.Qc=function Sm(a){return this.Hd().Qc(a)};_.Ib=function Tm(){return fcb(this.Hd())};var xF=mdb(Zhe,'ForwardingImmutableList',2006);bcb(714,1,Aie);_.vc=function cn(){return Wm(this)};_.wc=function en(a){stb(this,a)};_.ec=function jn(){return Xm(this)};_.yc=function kn(a,b,c){return ttb(this,a,b,c)};_.Cc=function rn(){return this.Ld()};_.$b=function Zm(){throw vbb(new bgb)};_._b=function $m(a){return this.xc(a)!=null};_.uc=function _m(a){return this.Ld().Hc(a)};_.Jd=function an(){return new jq(this)};_.Kd=function bn(){return new sq(this)};_.Fb=function dn(a){return Dv(this,a)};_.Hb=function gn(){return Wm(this).Hb()};_.dc=function hn(){return this.gc()==0};_.zc=function nn(a,b){return Ym()};_.Bc=function on(a){throw vbb(new bgb)};_.Ib=function pn(){return Jv(this)};_.Ld=function qn(){if(this.e){return this.e}return this.e=this.Kd()};_.c=null;_.d=null;_.e=null;var Um;var iG=mdb(Zhe,'ImmutableMap',714);bcb(715,714,Aie);_._b=function vn(a){return sn(this,a)};_.uc=function wn(a){return dob(this.b,a)};_.Id=function xn(){return Vn(new Ln(this))};_.Jd=function yn(){return Vn(gob(this.b))};_.Kd=function zn(){return Ql(),new Zl(hob(this.b))};_.Fb=function An(a){return fob(this.b,a)};_.xc=function Bn(a){return tn(this,a)};_.Hb=function Cn(){return tb(this.b.c)};_.dc=function Dn(){return this.b.c.dc()};_.gc=function En(){return this.b.c.gc()};_.Ib=function Fn(){return fcb(this.b.c)};var zF=mdb(Zhe,'ForwardingImmutableMap',715);bcb(1974,1973,Bie);_.Bd=function Gn(){return this.Md()};_.Cd=function Hn(){return this.Md()};_.Nc=function Kn(){return new Kub(this,1)};_.Fb=function In(a){return a===this||this.Md().Fb(a)};_.Hb=function Jn(){return this.Md().Hb()};var CF=mdb(Zhe,'ForwardingSet',1974);bcb(1069,1974,Bie,Ln);_.Bd=function Nn(){return eob(this.a.b)};_.Cd=function On(){return eob(this.a.b)};_.Hc=function Mn(b){if(JD(b,42)&&BD(b,42).cd()==null){return false}try{return Dob(eob(this.a.b),b)}catch(a){a=ubb(a);if(JD(a,205)){return false}else throw vbb(a)}};_.Md=function Pn(){return eob(this.a.b)};_.Qc=function Qn(a){var b;b=Eob(eob(this.a.b),a);eob(this.a.b).b.gc()<b.length&&NC(b,eob(this.a.b).b.gc(),null);return b};var yF=mdb(Zhe,'ForwardingImmutableMap/1',1069);bcb(1981,1980,Cie);_.Kc=function Tn(){return this.Ed()};_.Nc=function Un(){return new Kub(this,1)};_.Fb=function Rn(a){return Ax(this,a)};_.Hb=function Sn(){return Bx(this)};var jG=mdb(Zhe,'ImmutableSet',1981);bcb(703,1981,Cie);_.Kc=function ao(){return vr(new Dnb(this.a.b.Kc()))};_.Hc=function Xn(a){return a!=null&&hnb(this.a,a)};_.Ic=function Yn(a){return inb(this.a,a)};_.Hb=function Zn(){return tb(this.a.b)};_.dc=function $n(){return this.a.b.dc()};_.Ed=function _n(){return vr(new Dnb(this.a.b.Kc()))};_.gc=function bo(){return this.a.b.gc()};_.Pc=function co(){return this.a.b.Pc()};_.Qc=function eo(a){return knb(this.a,a)};_.Ib=function fo(){return fcb(this.a.b)};var AF=mdb(Zhe,'ForwardingImmutableSet',703);bcb(1975,1974,Die);_.Bd=function go(){return this.b};_.Cd=function ho(){return this.b};_.Md=function io(){return this.b};_.Nc=function jo(){return new Rub(this)};var DF=mdb(Zhe,'ForwardingSortedSet',1975);bcb(533,1979,Aie,wo);_.Ac=function Fo(a){Ld(this,a)};_.Cc=function Io(){var a;return a=this.d,new up(!a?(this.d=new ap(this)):a)};_.$b=function xo(){ko(this)};_._b=function yo(a){return !!uo(this,a,Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15))))};_.uc=function zo(a){return lo(this,a)};_.kc=function Ao(){return new Qo(this,this)};_.wc=function Bo(a){no(this,a)};_.xc=function Co(a){return oo(this,a)};_.ec=function Do(){return new Bp(this)};_.zc=function Eo(a,b){return ro(this,a,b)};_.Bc=function Go(a){var b;b=uo(this,a,Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15))));if(!b){return null}else{mo(this,b);b.e=null;b.c=null;return b.i}};_.gc=function Ho(){return this.i};_.pd=function Jo(){var a;return a=this.d,new up(!a?(this.d=new ap(this)):a)};_.f=0;_.g=0;_.i=0;var QF=mdb(Zhe,'HashBiMap',533);bcb(534,1,aie);_.Nb=function Mo(a){Rrb(this,a)};_.Ob=function No(){return Ko(this)};_.Pb=function Oo(){var a;if(!Ko(this)){throw vbb(new utb)}a=this.c;this.c=a.c;this.f=a;--this.d;return this.Nd(a)};_.Qb=function Po(){if(this.e.g!=this.b){throw vbb(new Apb)}Vb(!!this.f);mo(this.e,this.f);this.b=this.e.g;this.f=null};_.b=0;_.d=0;_.f=null;var NF=mdb(Zhe,'HashBiMap/Itr',534);bcb(1011,534,aie,Qo);_.Nd=function Ro(a){return new So(this,a)};var FF=mdb(Zhe,'HashBiMap/1',1011);bcb(1012,345,kie,So);_.cd=function To(){return this.a.g};_.dd=function Uo(){return this.a.i};_.ed=function Vo(a){var b,c,d;c=this.a.i;d=Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15)));if(d==this.a.f&&(PD(a)===PD(c)||a!=null&&pb(a,c))){return a}Nb(!vo(this.b.a,a,d),a);mo(this.b.a,this.a);b=new $o(this.a.g,this.a.a,a,d);po(this.b.a,b,this.a);this.a.e=null;this.a.c=null;this.b.b=this.b.a.g;this.b.f==this.a&&(this.b.f=b);this.a=b;return c};var EF=mdb(Zhe,'HashBiMap/1/MapEntry',1012);bcb(238,345,{345:1,238:1,3:1,42:1},Wo);_.cd=function Xo(){return this.g};_.dd=function Yo(){return this.i};_.ed=function Zo(a){throw vbb(new bgb)};var XF=mdb(Zhe,'ImmutableEntry',238);bcb(317,238,{345:1,317:1,238:1,3:1,42:1},$o);_.a=0;_.f=0;var GF=mdb(Zhe,'HashBiMap/BiEntry',317);bcb(610,1979,Aie,ap);_.Ac=function jp(a){Ld(this,a)};_.Cc=function mp(){return new Bp(this.a)};_.$b=function bp(){ko(this.a)};_._b=function cp(a){return lo(this.a,a)};_.kc=function dp(){return new op(this,this.a)};_.wc=function ep(a){Qb(a);no(this.a,new zp(a))};_.xc=function fp(a){return _o(this,a)};_.ec=function gp(){return new up(this)};_.zc=function ip(a,b){return so(this.a,a,b,false)};_.Bc=function kp(a){var b;b=vo(this.a,a,Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15))));if(!b){return null}else{mo(this.a,b);b.e=null;b.c=null;return b.g}};_.gc=function lp(){return this.a.i};_.pd=function np(){return new Bp(this.a)};var MF=mdb(Zhe,'HashBiMap/Inverse',610);bcb(1008,534,aie,op);_.Nd=function pp(a){return new qp(this,a)};var IF=mdb(Zhe,'HashBiMap/Inverse/1',1008);bcb(1009,345,kie,qp);_.cd=function rp(){return this.a.i};_.dd=function sp(){return this.a.g};_.ed=function tp(a){var b,c,d;d=this.a.g;b=Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15)));if(b==this.a.a&&(PD(a)===PD(d)||a!=null&&pb(a,d))){return a}Nb(!uo(this.b.a.a,a,b),a);mo(this.b.a.a,this.a);c=new $o(a,b,this.a.i,this.a.f);this.a=c;po(this.b.a.a,c,null);this.b.b=this.b.a.a.g;return d};var HF=mdb(Zhe,'HashBiMap/Inverse/1/InverseEntry',1009);bcb(611,532,fie,up);_.Kc=function vp(){return new xp(this.a.a)};_.Mc=function wp(a){var b;b=vo(this.a.a,a,Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15))));if(!b){return false}else{mo(this.a.a,b);return true}};var KF=mdb(Zhe,'HashBiMap/Inverse/InverseKeySet',611);bcb(1007,534,aie,xp);_.Nd=function yp(a){return a.i};var JF=mdb(Zhe,'HashBiMap/Inverse/InverseKeySet/1',1007);bcb(1010,1,{},zp);_.Od=function Ap(a,b){hp(this.a,a,b)};var LF=mdb(Zhe,'HashBiMap/Inverse/lambda$0$Type',1010);bcb(609,532,fie,Bp);_.Kc=function Cp(){return new Ep(this.a)};_.Mc=function Dp(a){var b;b=uo(this.a,a,Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15))));if(!b){return false}else{mo(this.a,b);b.e=null;b.c=null;return true}};var PF=mdb(Zhe,'HashBiMap/KeySet',609);bcb(1006,534,aie,Ep);_.Nd=function Fp(a){return a.g};var OF=mdb(Zhe,'HashBiMap/KeySet/1',1006);bcb(1093,619,_he);var RF=mdb(Zhe,'HashMultimapGwtSerializationDependencies',1093);bcb(265,1093,_he,Hp);_.hc=function Ip(){return new Uqb(Cv(this.a))};_.gd=function Jp(){return new Uqb(Cv(this.a))};_.a=2;var SF=mdb(Zhe,'HashMultimap',265);bcb(1999,152,yie);_.Hc=function Mp(a){return this.Pd().Hc(a)};_.dc=function Np(){return this.Pd().dc()};_.gc=function Op(){return this.Pd().gc()};var TF=mdb(Zhe,'ImmutableAsList',1999);bcb(1931,715,Aie);_.Ld=function Qp(){return Ql(),new oy(this.a)};_.Cc=function Rp(){return Ql(),new oy(this.a)};_.pd=function Sp(){return Ql(),new oy(this.a)};var UF=mdb(Zhe,'ImmutableBiMap',1931);bcb(1977,1,{});var VF=mdb(Zhe,'ImmutableCollection/Builder',1977);bcb(1022,703,Cie,Tp);var YF=mdb(Zhe,'ImmutableEnumSet',1022);bcb(969,386,$he,Vp);_.Xb=function Wp(a){return this.a.Xb(a)};var ZF=mdb(Zhe,'ImmutableList/1',969);bcb(968,1977,{},Xp);var $F=mdb(Zhe,'ImmutableList/Builder',968);bcb(614,198,Yhe,Yp);_.Ob=function Zp(){return this.a.Ob()};_.Pb=function $p(){return BD(this.a.Pb(),42).cd()};var aG=mdb(Zhe,'ImmutableMap/1',614);bcb(1041,1,{},_p);_.Kb=function aq(a){return BD(a,42).cd()};var bG=mdb(Zhe,'ImmutableMap/2methodref$getKey$Type',1041);bcb(1040,1,{},cq);var cG=mdb(Zhe,'ImmutableMap/Builder',1040);bcb(2000,1981,Cie);_.Kc=function gq(){var a;return a=Wm(this.a).Ed(),new Yp(a)};_.Dd=function dq(){return new Fq(this)};_.Jc=function eq(a){var b,c;Qb(a);c=this.gc();for(b=0;b<c;b++){a.td(BD(Rl(Wm(this.a)).Xb(b),42).cd())}};_.Ed=function fq(){var a;return (a=this.c,!a?(this.c=new Fq(this)):a).Ed()};_.Nc=function hq(){return Zj(this.gc(),1296,new Dq(this))};var mG=mdb(Zhe,'IndexedImmutableSet',2000);bcb(1180,2000,Cie,jq);_.Kc=function nq(){var a;return a=Wm(this.a).Ed(),new Yp(a)};_.Hc=function kq(a){return this.a._b(a)};_.Jc=function lq(a){Qb(a);stb(this.a,new qq(a))};_.Ed=function mq(){var a;return a=Wm(this.a).Ed(),new Yp(a)};_.gc=function oq(){return this.a.gc()};_.Nc=function pq(){return $j(Wm(this.a).Nc(),new _p)};var eG=mdb(Zhe,'ImmutableMapKeySet',1180);bcb(1181,1,{},qq);_.Od=function rq(a,b){Ql();this.a.td(a)};var dG=mdb(Zhe,'ImmutableMapKeySet/lambda$0$Type',1181);bcb(1178,1980,xie,sq);_.Kc=function vq(){return new Aq(this)};_.Hc=function tq(a){return a!=null&&jr(new Aq(this),a)};_.Ed=function uq(){return new Aq(this)};_.gc=function wq(){return this.a.gc()};_.Nc=function xq(){return $j(Wm(this.a).Nc(),new yq)};var hG=mdb(Zhe,'ImmutableMapValues',1178);bcb(1179,1,{},yq);_.Kb=function zq(a){return BD(a,42).dd()};var fG=mdb(Zhe,'ImmutableMapValues/0methodref$getValue$Type',1179);bcb(626,198,Yhe,Aq);_.Ob=function Bq(){return this.a.Ob()};_.Pb=function Cq(){return BD(this.a.Pb(),42).dd()};var gG=mdb(Zhe,'ImmutableMapValues/1',626);bcb(1182,1,{},Dq);_.ld=function Eq(a){return iq(this.a,a)};var kG=mdb(Zhe,'IndexedImmutableSet/0methodref$get$Type',1182);bcb(752,1999,yie,Fq);_.Pd=function Gq(){return this.a};_.Xb=function Hq(a){return iq(this.a,a)};_.gc=function Iq(){return this.a.a.gc()};var lG=mdb(Zhe,'IndexedImmutableSet/1',752);bcb(44,1,{},Sq);_.Kb=function Tq(a){return BD(a,20).Kc()};_.Fb=function Uq(a){return this===a};var nG=mdb(Zhe,'Iterables/10',44);bcb(1042,537,vie,Wq);_.Jc=function Xq(a){Qb(a);this.b.Jc(new $q(this.a,a))};_.Kc=function Yq(){return Vq(this)};var pG=mdb(Zhe,'Iterables/4',1042);bcb(1043,1,qie,$q);_.td=function _q(a){Zq(this.b,this.a,a)};var oG=mdb(Zhe,'Iterables/4/lambda$0$Type',1043);bcb(1044,537,vie,ar);_.Jc=function br(a){Qb(a);reb(this.a,new dr(a,this.b))};_.Kc=function cr(){return ur(new Fyd(this.a),this.b)};var rG=mdb(Zhe,'Iterables/5',1044);bcb(1045,1,qie,dr);_.td=function er(a){this.a.td(Gfd(a))};var qG=mdb(Zhe,'Iterables/5/lambda$0$Type',1045);bcb(1071,198,Yhe,wr);_.Ob=function xr(){return this.a.Ob()};_.Pb=function yr(){return this.a.Pb()};var sG=mdb(Zhe,'Iterators/1',1071);bcb(1072,699,Yhe,zr);_.Yb=function Ar(){var a;while(this.b.Ob()){a=this.b.Pb();if(this.a.Lb(a)){return a}}return this.e=2,null};var tG=mdb(Zhe,'Iterators/5',1072);bcb(487,1,aie);_.Nb=function Cr(a){Rrb(this,a)};_.Ob=function Dr(){return this.b.Ob()};_.Pb=function Er(){return this.Qd(this.b.Pb())};_.Qb=function Fr(){this.b.Qb()};var KH=mdb(Zhe,'TransformedIterator',487);bcb(1073,487,aie,Gr);_.Qd=function Hr(a){return this.a.Kb(a)};var uG=mdb(Zhe,'Iterators/6',1073);bcb(717,198,Yhe,Ir);_.Ob=function Jr(){return !this.a};_.Pb=function Kr(){if(this.a){throw vbb(new utb)}this.a=true;return this.b};_.a=false;var vG=mdb(Zhe,'Iterators/9',717);bcb(1070,386,$he,Nr);_.Xb=function Or(a){return this.a[this.b+a]};_.b=0;var Lr;var wG=mdb(Zhe,'Iterators/ArrayItr',1070);bcb(39,1,{39:1,47:1},Sr);_.Nb=function Tr(a){Rrb(this,a)};_.Ob=function Ur(){return Qr(this)};_.Pb=function Vr(){return Rr(this)};_.Qb=function Wr(){Vb(!!this.c);this.c.Qb();this.c=null};var xG=mdb(Zhe,'Iterators/ConcatenatedIterator',39);bcb(22,1,{3:1,35:1,22:1});_.wd=function _r(a){return Xr(this,BD(a,22))};_.Fb=function bs(a){return this===a};_.Hb=function cs(){return FCb(this)};_.Ib=function ds(){return Zr(this)};_.g=0;var CI=mdb(Phe,'Enum',22);bcb(538,22,{538:1,3:1,35:1,22:1,47:1},is);_.Nb=function js(a){Rrb(this,a)};_.Ob=function ks(){return false};_.Pb=function ls(){throw vbb(new utb)};_.Qb=function ms(){Vb(false)};var gs;var yG=ndb(Zhe,'Iterators/EmptyModifiableIterator',538,CI,os,ns);var ps;bcb(1834,619,_he);var EG=mdb(Zhe,'LinkedHashMultimapGwtSerializationDependencies',1834);bcb(1835,1834,_he,ss);_.hc=function us(){return new Asb(Cv(this.b))};_.$b=function ts(){Nc(this);As(this.a,this.a)};_.gd=function vs(){return new Asb(Cv(this.b))};_.ic=function ws(a){return new Ss(this,a,this.b)};_.kc=function xs(){return new Hs(this)};_.lc=function ys(){var a;return new Kub((a=this.g,BD(!a?(this.g=new ph(this)):a,21)),17)};_.ec=function zs(){var a;return a=this.i,!a?(this.i=new zf(this,this.c)):a};_.nc=function Cs(){return new Ov(new Hs(this))};_.oc=function Ds(){var a;return $j(new Kub((a=this.g,BD(!a?(this.g=new ph(this)):a,21)),17),new Es)};_.b=2;var FG=mdb(Zhe,'LinkedHashMultimap',1835);bcb(1838,1,{},Es);_.Kb=function Fs(a){return BD(a,42).dd()};var zG=mdb(Zhe,'LinkedHashMultimap/0methodref$getValue$Type',1838);bcb(824,1,aie,Hs);_.Nb=function Is(a){Rrb(this,a)};_.Pb=function Ks(){return Gs(this)};_.Ob=function Js(){return this.a!=this.b.a};_.Qb=function Ls(){Vb(!!this.c);Gc(this.b,this.c.g,this.c.i);this.c=null};var AG=mdb(Zhe,'LinkedHashMultimap/1',824);bcb(330,238,{345:1,238:1,330:1,2020:1,3:1,42:1},Ms);_.Rd=function Ns(){return this.f};_.Sd=function Os(a){this.c=a};_.Td=function Ps(a){this.f=a};_.d=0;var BG=mdb(Zhe,'LinkedHashMultimap/ValueEntry',330);bcb(1836,1970,{2020:1,20:1,28:1,14:1,21:1},Ss);_.Fc=function Ts(a){var b,c,d,e,f;f=Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15)));b=f&this.b.length-1;e=this.b[b];for(c=e;c;c=c.a){if(c.d==f&&Hb(c.i,a)){return false}}d=new Ms(this.c,a,f,e);Bs(this.d,d);d.f=this;this.d=d;As(this.g.a.b,d);As(d,this.g.a);this.b[b]=d;++this.f;++this.e;Qs(this);return true};_.$b=function Us(){var a,b;Alb(this.b,null);this.f=0;for(a=this.a;a!=this;a=a.Rd()){b=BD(a,330);As(b.b,b.e)}this.a=this;this.d=this;++this.e};_.Hc=function Vs(a){var b,c;c=Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15)));for(b=this.b[c&this.b.length-1];b;b=b.a){if(b.d==c&&Hb(b.i,a)){return true}}return false};_.Jc=function Ws(a){var b;Qb(a);for(b=this.a;b!=this;b=b.Rd()){a.td(BD(b,330).i)}};_.Rd=function Xs(){return this.a};_.Kc=function Ys(){return new ct(this)};_.Mc=function Zs(a){return Rs(this,a)};_.Sd=function $s(a){this.d=a};_.Td=function _s(a){this.a=a};_.gc=function at(){return this.f};_.e=0;_.f=0;var DG=mdb(Zhe,'LinkedHashMultimap/ValueSet',1836);bcb(1837,1,aie,ct);_.Nb=function dt(a){Rrb(this,a)};_.Ob=function et(){return bt(this),this.b!=this.c};_.Pb=function ft(){var a,b;bt(this);if(this.b==this.c){throw vbb(new utb)}a=BD(this.b,330);b=a.i;this.d=a;this.b=a.f;return b};_.Qb=function gt(){bt(this);Vb(!!this.d);Rs(this.c,this.d.i);this.a=this.c.e;this.d=null};_.a=0;var CG=mdb(Zhe,'LinkedHashMultimap/ValueSet/1',1837);bcb(766,1986,_he,mt);_.Zb=function nt(){var a;return a=this.f,!a?(this.f=new jw(this)):a};_.Fb=function tt(a){return hw(this,a)};_.cc=function ut(a){return new bu(this,a)};_.fc=function xt(a){return kt(this,a)};_.$b=function pt(){it(this)};_._b=function qt(a){return jt(this,a)};_.ac=function rt(){return new jw(this)};_.bc=function st(){return new eu(this)};_.qc=function vt(a){return new bu(this,a)};_.dc=function wt(){return !this.a};_.rc=function yt(a){return kt(this,a)};_.gc=function zt(){return this.d};_.c=0;_.d=0;var MG=mdb(Zhe,'LinkedListMultimap',766);bcb(52,28,Lie);_.ad=function Pt(a){ktb(this,a)};_.Nc=function Qt(){return new Kub(this,16)};_.Vc=function Ct(a,b){throw vbb(new cgb('Add not supported on this list'))};_.Fc=function Dt(a){this.Vc(this.gc(),a);return true};_.Wc=function Et(a,b){var c,d,e;uCb(b);c=false;for(e=b.Kc();e.Ob();){d=e.Pb();this.Vc(a++,d);c=true}return c};_.$b=function Ft(){this.Ud(0,this.gc())};_.Fb=function Gt(a){return At(this,a)};_.Hb=function Ht(){return qmb(this)};_.Xc=function It(a){return Bt(this,a)};_.Kc=function Jt(){return new vib(this)};_.Yc=function Kt(){return this.Zc(0)};_.Zc=function Lt(a){return new Bib(this,a)};_.$c=function Mt(a){throw vbb(new cgb('Remove not supported on this list'))};_.Ud=function Nt(a,b){var c,d;d=this.Zc(a);for(c=a;c<b;++c){d.Pb();d.Qb()}};_._c=function Ot(a,b){throw vbb(new cgb('Set not supported on this list'))};_.bd=function Rt(a,b){return new Jib(this,a,b)};_.j=0;var kJ=mdb(bie,'AbstractList',52);bcb(1964,52,Lie);_.Vc=function Wt(a,b){St(this,a,b)};_.Wc=function Xt(a,b){return Tt(this,a,b)};_.Xb=function Yt(a){return Ut(this,a)};_.Kc=function Zt(){return this.Zc(0)};_.$c=function $t(a){return Vt(this,a)};_._c=function _t(b,c){var d,e;d=this.Zc(b);try{e=d.Pb();d.Wb(c);return e}catch(a){a=ubb(a);if(JD(a,109)){throw vbb(new qcb("Can't set element "+b))}else throw vbb(a)}};var yJ=mdb(bie,'AbstractSequentialList',1964);bcb(636,1964,Lie,bu);_.Zc=function cu(a){return au(this,a)};_.gc=function du(){var a;a=BD(Ohb(this.a.b,this.b),283);return !a?0:a.a};var HG=mdb(Zhe,'LinkedListMultimap/1',636);bcb(1297,1970,fie,eu);_.Hc=function fu(a){return jt(this.a,a)};_.Kc=function gu(){return new ku(this.a)};_.Mc=function hu(a){return !kt(this.a,a).a.dc()};_.gc=function iu(){return Vhb(this.a.b)};var GG=mdb(Zhe,'LinkedListMultimap/1KeySetImpl',1297);bcb(1296,1,aie,ku);_.Nb=function lu(a){Rrb(this,a)};_.Ob=function mu(){ju(this);return !!this.c};_.Pb=function nu(){ju(this);ot(this.c);this.a=this.c;Qqb(this.d,this.a.a);do{this.c=this.c.b}while(!!this.c&&!Qqb(this.d,this.c.a));return this.a.a};_.Qb=function ou(){ju(this);Vb(!!this.a);ir(new wu(this.e,this.a.a));this.a=null;this.b=this.e.c};_.b=0;var IG=mdb(Zhe,'LinkedListMultimap/DistinctKeyIterator',1296);bcb(283,1,{283:1},pu);_.a=0;var JG=mdb(Zhe,'LinkedListMultimap/KeyList',283);bcb(1295,345,kie,qu);_.cd=function ru(){return this.a};_.dd=function su(){return this.f};_.ed=function tu(a){var b;b=this.f;this.f=a;return b};var KG=mdb(Zhe,'LinkedListMultimap/Node',1295);bcb(560,1,jie,wu,xu);_.Nb=function zu(a){Rrb(this,a)};_.Rb=function yu(a){this.e=ht(this.f,this.b,a,this.c);++this.d;this.a=null};_.Ob=function Au(){return !!this.c};_.Sb=function Bu(){return !!this.e};_.Pb=function Cu(){return uu(this)};_.Tb=function Du(){return this.d};_.Ub=function Eu(){return vu(this)};_.Vb=function Fu(){return this.d-1};_.Qb=function Gu(){Vb(!!this.a);if(this.a!=this.c){this.e=this.a.e;--this.d}else{this.c=this.a.c}lt(this.f,this.a);this.a=null};_.Wb=function Hu(a){Ub(!!this.a);this.a.f=a};_.d=0;var LG=mdb(Zhe,'LinkedListMultimap/ValueForKeyIterator',560);bcb(1018,52,Lie);_.Vc=function Tu(a,b){this.a.Vc(a,b)};_.Wc=function Uu(a,b){return this.a.Wc(a,b)};_.Hc=function Vu(a){return this.a.Hc(a)};_.Xb=function Wu(a){return this.a.Xb(a)};_.$c=function Xu(a){return this.a.$c(a)};_._c=function Yu(a,b){return this.a._c(a,b)};_.gc=function Zu(){return this.a.gc()};var OG=mdb(Zhe,'Lists/AbstractListWrapper',1018);bcb(1019,1018,Nie);var PG=mdb(Zhe,'Lists/RandomAccessListWrapper',1019);bcb(1021,1019,Nie,$u);_.Zc=function _u(a){return this.a.Zc(a)};var NG=mdb(Zhe,'Lists/1',1021);bcb(131,52,{131:1,20:1,28:1,52:1,14:1,15:1},dv);_.Vc=function ev(a,b){this.a.Vc(cv(this,a),b)};_.$b=function fv(){this.a.$b()};_.Xb=function gv(a){return this.a.Xb(bv(this,a))};_.Kc=function hv(){return av(this,0)};_.Zc=function iv(a){return av(this,a)};_.$c=function jv(a){return this.a.$c(bv(this,a))};_.Ud=function kv(a,b){(Tb(a,b,this.a.gc()),Su(this.a.bd(cv(this,b),cv(this,a)))).$b()};_._c=function lv(a,b){return this.a._c(bv(this,a),b)};_.gc=function mv(){return this.a.gc()};_.bd=function nv(a,b){return Tb(a,b,this.a.gc()),Su(this.a.bd(cv(this,b),cv(this,a)))};var SG=mdb(Zhe,'Lists/ReverseList',131);bcb(280,131,{131:1,20:1,28:1,52:1,14:1,15:1,54:1},ov);var QG=mdb(Zhe,'Lists/RandomAccessReverseList',280);bcb(1020,1,jie,qv);_.Nb=function sv(a){Rrb(this,a)};_.Rb=function rv(a){this.c.Rb(a);this.c.Ub();this.a=false};_.Ob=function tv(){return this.c.Sb()};_.Sb=function uv(){return this.c.Ob()};_.Pb=function vv(){return pv(this)};_.Tb=function wv(){return cv(this.b,this.c.Tb())};_.Ub=function xv(){if(!this.c.Ob()){throw vbb(new utb)}this.a=true;return this.c.Pb()};_.Vb=function yv(){return cv(this.b,this.c.Tb())-1};_.Qb=function zv(){Vb(this.a);this.c.Qb();this.a=false};_.Wb=function Av(a){Ub(this.a);this.c.Wb(a)};_.a=false;var RG=mdb(Zhe,'Lists/ReverseList/1',1020);bcb(432,487,aie,Mv);_.Qd=function Nv(a){return Lv(a)};var TG=mdb(Zhe,'Maps/1',432);bcb(698,487,aie,Ov);_.Qd=function Pv(a){return BD(a,42).dd()};var UG=mdb(Zhe,'Maps/2',698);bcb(962,487,aie,Qv);_.Qd=function Rv(a){return new Wo(a,ww(this.a,a))};var VG=mdb(Zhe,'Maps/3',962);bcb(959,1971,fie,Sv);_.Jc=function Tv(a){mj(this.a,a)};_.Kc=function Uv(){return this.a.kc()};_.Rc=function Vv(){return this.a};_.Nc=function Wv(){return this.a.lc()};var XG=mdb(Zhe,'Maps/IteratorBasedAbstractMap/1',959);bcb(960,1,{},Xv);_.Od=function Yv(a,b){this.a.td(a)};var ZG=mdb(Zhe,'Maps/KeySet/lambda$0$Type',960);bcb(958,28,die,Zv);_.$b=function $v(){this.a.$b()};_.Hc=function _v(a){return this.a.uc(a)};_.Jc=function aw(a){Qb(a);this.a.wc(new fw(a))};_.dc=function bw(){return this.a.dc()};_.Kc=function cw(){return new Ov(this.a.vc().Kc())};_.Mc=function dw(b){var c,d;try{return ze(this,b,true)}catch(a){a=ubb(a);if(JD(a,41)){for(d=this.a.vc().Kc();d.Ob();){c=BD(d.Pb(),42);if(Hb(b,c.dd())){this.a.Bc(c.cd());return true}}return false}else throw vbb(a)}};_.gc=function ew(){return this.a.gc()};var aH=mdb(Zhe,'Maps/Values',958);bcb(961,1,{},fw);_.Od=function gw(a,b){this.a.td(b)};var _G=mdb(Zhe,'Maps/Values/lambda$0$Type',961);bcb(736,1987,cie,jw);_.xc=function nw(a){return this.a._b(a)?this.a.cc(a):null};_.Bc=function qw(a){return this.a._b(a)?this.a.fc(a):null};_.$b=function kw(){this.a.$b()};_._b=function lw(a){return this.a._b(a)};_.Ec=function mw(){return new sw(this)};_.Dc=function(){return this.Ec()};_.dc=function ow(){return this.a.dc()};_.ec=function pw(){return this.a.ec()};_.gc=function rw(){return this.a.ec().gc()};var eH=mdb(Zhe,'Multimaps/AsMap',736);bcb(1104,1971,fie,sw);_.Kc=function tw(){return Bv(this.a.a.ec(),new xw(this))};_.Rc=function uw(){return this.a};_.Mc=function vw(a){var b;if(!Ze(this,a)){return false}b=BD(a,42);iw(this.a,b.cd());return true};var dH=mdb(Zhe,'Multimaps/AsMap/EntrySet',1104);bcb(1108,1,{},xw);_.Kb=function yw(a){return ww(this,a)};_.Fb=function zw(a){return this===a};var cH=mdb(Zhe,'Multimaps/AsMap/EntrySet/1',1108);bcb(543,1989,{543:1,835:1,20:1,28:1,14:1},Cw);_.$b=function Dw(){Nc(this.a)};_.Hc=function Ew(a){return Oc(this.a,a)};_.Jc=function Fw(a){Qb(a);reb(Pc(this.a),new Rw(a))};_.Kc=function Gw(){return new Mv(Pc(this.a).a.kc())};_.gc=function Hw(){return this.a.d};_.Nc=function Iw(){return $j(Pc(this.a).Nc(),new Jw)};var kH=mdb(Zhe,'Multimaps/Keys',543);bcb(1106,1,{},Jw);_.Kb=function Kw(a){return BD(a,42).cd()};var gH=mdb(Zhe,'Multimaps/Keys/0methodref$getKey$Type',1106);bcb(1105,487,aie,Lw);_.Qd=function Mw(a){return new Qw(BD(a,42))};var iH=mdb(Zhe,'Multimaps/Keys/1',1105);bcb(1990,1,{416:1});_.Fb=function Nw(a){var b;if(JD(a,492)){b=BD(a,416);return BD(this.a.dd(),14).gc()==BD(b.a.dd(),14).gc()&&Hb(this.a.cd(),b.a.cd())}return false};_.Hb=function Ow(){var a;a=this.a.cd();return (a==null?0:tb(a))^BD(this.a.dd(),14).gc()};_.Ib=function Pw(){var a,b;b=xfb(this.a.cd());a=BD(this.a.dd(),14).gc();return a==1?b:b+' x '+a};var oH=mdb(Zhe,'Multisets/AbstractEntry',1990);bcb(492,1990,{492:1,416:1},Qw);var hH=mdb(Zhe,'Multimaps/Keys/1/1',492);bcb(1107,1,qie,Rw);_.td=function Sw(a){this.a.td(BD(a,42).cd())};var jH=mdb(Zhe,'Multimaps/Keys/lambda$1$Type',1107);bcb(1110,1,qie,Vw);_.td=function Ww(a){Tw(BD(a,416))};var lH=mdb(Zhe,'Multiset/lambda$0$Type',1110);bcb(737,1,qie,Xw);_.td=function Yw(a){Uw(this.a,BD(a,416))};var mH=mdb(Zhe,'Multiset/lambda$1$Type',737);bcb(1111,1,{},bx);var nH=mdb(Zhe,'Multisets/0methodref$add$Type',1111);bcb(738,1,{},cx);_.Kb=function dx(a){return _w(BD(a,416))};var qH=mdb(Zhe,'Multisets/lambda$3$Type',738);bcb(2008,1,Qhe);var rH=mdb(Zhe,'RangeGwtSerializationDependencies',2008);bcb(514,2008,{169:1,514:1,3:1,45:1},gx);_.Lb=function hx(a){return fx(this,BD(a,35))};_.Mb=function lx(a){return fx(this,BD(a,35))};_.Fb=function jx(a){var b;if(JD(a,514)){b=BD(a,514);return Ek(this.a,b.a)&&Ek(this.b,b.b)}return false};_.Hb=function kx(){return this.a.Hb()*31+this.b.Hb()};_.Ib=function mx(){return nx(this.a,this.b)};var sH=mdb(Zhe,'Range',514);bcb(778,1999,yie,px);_.Zc=function tx(a){return jm(this.b,a)};_.Pd=function qx(){return this.a};_.Xb=function rx(a){return Em(this.b,a)};_.Fd=function sx(a){return jm(this.b,a)};var tH=mdb(Zhe,'RegularImmutableAsList',778);bcb(646,2006,yie,ux);_.Hd=function vx(){return this.a};var uH=mdb(Zhe,'RegularImmutableList',646);bcb(616,715,Aie,wx);var vH=mdb(Zhe,'RegularImmutableMap',616);bcb(716,703,Cie,zx);var xx;var wH=mdb(Zhe,'RegularImmutableSet',716);bcb(1976,eie,fie);_.Kc=function Mx(){return new Xx(this.a,this.b)};_.Fc=function Jx(a){throw vbb(new bgb)};_.Gc=function Kx(a){throw vbb(new bgb)};_.$b=function Lx(){throw vbb(new bgb)};_.Mc=function Nx(a){throw vbb(new bgb)};var CH=mdb(Zhe,'Sets/SetView',1976);bcb(963,1976,fie,Px);_.Kc=function Tx(){return new Xx(this.a,this.b)};_.Hc=function Qx(a){return tqb(this.a,a)&&this.b.Hc(a)};_.Ic=function Rx(a){return Be(this.a,a)&&this.b.Ic(a)};_.dc=function Sx(){return omb(this.b,this.a)};_.Lc=function Ux(){return JAb(new YAb(null,new Kub(this.a,1)),new _x(this.b))};_.gc=function Vx(){return Ox(this)};_.Oc=function Wx(){return JAb(new YAb(null,new Kub(this.a,1)),new Zx(this.b))};var AH=mdb(Zhe,'Sets/2',963);bcb(700,699,Yhe,Xx);_.Yb=function Yx(){var a;while(Eqb(this.a)){a=Fqb(this.a);if(this.c.Hc(a)){return a}}return this.e=2,null};var xH=mdb(Zhe,'Sets/2/1',700);bcb(964,1,Oie,Zx);_.Mb=function $x(a){return this.a.Hc(a)};var yH=mdb(Zhe,'Sets/2/4methodref$contains$Type',964);bcb(965,1,Oie,_x);_.Mb=function ay(a){return this.a.Hc(a)};var zH=mdb(Zhe,'Sets/2/5methodref$contains$Type',965);bcb(607,1975,{607:1,3:1,20:1,14:1,271:1,21:1,84:1},by);_.Bd=function cy(){return this.b};_.Cd=function dy(){return this.b};_.Md=function ey(){return this.b};_.Jc=function fy(a){this.a.Jc(a)};_.Lc=function gy(){return this.a.Lc()};_.Oc=function hy(){return this.a.Oc()};var DH=mdb(Zhe,'Sets/UnmodifiableNavigableSet',607);bcb(1932,1931,Aie,iy);_.Ld=function jy(){return Ql(),new oy(this.a)};_.Cc=function ky(){return Ql(),new oy(this.a)};_.pd=function ly(){return Ql(),new oy(this.a)};var EH=mdb(Zhe,'SingletonImmutableBiMap',1932);bcb(647,2006,yie,my);_.Hd=function ny(){return this.a};var FH=mdb(Zhe,'SingletonImmutableList',647);bcb(350,1981,Cie,oy);_.Kc=function ry(){return new Ir(this.a)};_.Hc=function py(a){return pb(this.a,a)};_.Ed=function qy(){return new Ir(this.a)};_.gc=function sy(){return 1};var GH=mdb(Zhe,'SingletonImmutableSet',350);bcb(1115,1,{},vy);_.Kb=function wy(a){return BD(a,164)};var HH=mdb(Zhe,'Streams/lambda$0$Type',1115);bcb(1116,1,Pie,xy);_.Vd=function yy(){uy(this.a)};var IH=mdb(Zhe,'Streams/lambda$1$Type',1116);bcb(1659,1658,_he,Ay);_.Zb=function By(){var a;return a=this.f,BD(BD(!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a,161),171)};_.hc=function Ey(){return new Hxb(this.b)};_.gd=function Fy(){return new Hxb(this.b)};_.ec=function Hy(){var a;return a=this.i,BD(BD(!a?(this.i=JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)):a,84),271)};_.ac=function Dy(){return JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)};_.ic=function Gy(a){a==null&&this.a.ue(a,a);return new Hxb(this.b)};var LH=mdb(Zhe,'TreeMultimap',1659);bcb(78,1,{3:1,78:1});_.Wd=function $y(a){return new Error(a)};_.Xd=function az(){return this.e};_.Yd=function bz(){return XAb(NAb(Plb((this.k==null&&(this.k=KC(_I,nie,78,0,0,1)),this.k)),new _fb),new bBb)};_.Zd=function cz(){return this.f};_.$d=function dz(){return this.g};_._d=function ez(){Vy(this,_y(this.Wd(Wy(this,this.g))));Sz(this)};_.Ib=function fz(){return Wy(this,this.$d())};_.e=Sie;_.i=false;_.n=true;var _I=mdb(Phe,'Throwable',78);bcb(102,78,{3:1,102:1,78:1});var EI=mdb(Phe,'Exception',102);bcb(60,102,Tie,gz,hz);var TI=mdb(Phe,'RuntimeException',60);bcb(598,60,Tie);var LI=mdb(Phe,'JsException',598);bcb(863,598,Tie);var RH=mdb(Uie,'JavaScriptExceptionBase',863);bcb(477,863,{477:1,3:1,102:1,60:1,78:1},lz);_.$d=function oz(){kz(this);return this.c};_.ae=function pz(){return PD(this.b)===PD(iz)?null:this.b};var iz;var OH=mdb(Wie,'JavaScriptException',477);var PH=mdb(Wie,'JavaScriptObject$',0);var tz;bcb(1948,1,{});var QH=mdb(Wie,'Scheduler',1948);var xz=0,yz=0,zz=-1;bcb(890,1948,{},Nz);var Jz;var SH=mdb(Uie,'SchedulerImpl',890);var Qz;bcb(1960,1,{});var WH=mdb(Uie,'StackTraceCreator/Collector',1960);bcb(864,1960,{},Yz);_.be=function Zz(a){var b={},j;var c=[];a[Yie]=c;var d=arguments.callee.caller;while(d){var e=(Rz(),d.name||(d.name=Uz(d.toString())));c.push(e);var f=':'+e;var g=b[f];if(g){var h,i;for(h=0,i=g.length;h<i;h++){if(g[h]===d){return}}}(g||(b[f]=[])).push(d);d=d.caller}};_.ce=function $z(a){var b,c,d,e;d=(Rz(),a&&a[Yie]?a[Yie]:[]);c=d.length;e=KC(VI,nie,310,c,0,1);for(b=0;b<c;b++){e[b]=new Zeb(d[b],null,-1)}return e};var TH=mdb(Uie,'StackTraceCreator/CollectorLegacy',864);bcb(1961,1960,{});_.be=function aA(a){};_.de=function bA(a,b,c,d){return new Zeb(b,a+'@'+d,c<0?-1:c)};_.ce=function cA(a){var b,c,d,e,f,g;e=Wz(a);f=KC(VI,nie,310,0,0,1);b=0;d=e.length;if(d==0){return f}g=_z(this,e[0]);dfb(g.d,Xie)||(f[b++]=g);for(c=1;c<d;c++){f[b++]=_z(this,e[c])}return f};var VH=mdb(Uie,'StackTraceCreator/CollectorModern',1961);bcb(865,1961,{},dA);_.de=function eA(a,b,c,d){return new Zeb(b,a,-1)};var UH=mdb(Uie,'StackTraceCreator/CollectorModernNoSourceMap',865);bcb(1050,1,{});var cI=mdb(yje,zje,1050);bcb(615,1050,{615:1},HA);var FA;var XH=mdb(Aje,zje,615);bcb(2001,1,{});var dI=mdb(yje,Bje,2001);bcb(2002,2001,{});var YH=mdb(Aje,Bje,2002);bcb(1090,1,{},MA);var JA;var ZH=mdb(Aje,'LocaleInfo',1090);bcb(1918,1,{},PA);_.a=0;var _H=mdb(Aje,'TimeZone',1918);bcb(1258,2002,{},VA);var aI=mdb('com.google.gwt.i18n.client.impl.cldr','DateTimeFormatInfoImpl',1258);bcb(434,1,{434:1},WA);_.a=false;_.b=0;var bI=mdb(yje,'DateTimeFormat/PatternPart',434);bcb(199,1,Cje,eB,fB,gB);_.wd=function hB(a){return XA(this,BD(a,199))};_.Fb=function iB(a){return JD(a,199)&&Bbb(Cbb(this.q.getTime()),Cbb(BD(a,199).q.getTime()))};_.Hb=function jB(){var a;a=Cbb(this.q.getTime());return Tbb(Vbb(a,Pbb(a,32)))};_.Ib=function lB(){var a,b,c;c=-this.q.getTimezoneOffset();a=(c>=0?'+':'')+(c/60|0);b=kB($wnd.Math.abs(c)%60);return (Dpb(),Bpb)[this.q.getDay()]+' '+Cpb[this.q.getMonth()]+' '+kB(this.q.getDate())+' '+kB(this.q.getHours())+':'+kB(this.q.getMinutes())+':'+kB(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var $J=mdb(bie,'Date',199);bcb(1915,199,Cje,nB);_.a=false;_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;_.g=false;_.i=0;_.j=0;_.k=0;_.n=0;_.o=0;_.p=0;var eI=mdb('com.google.gwt.i18n.shared.impl','DateRecord',1915);bcb(1966,1,{});_.fe=function oB(){return null};_.ge=function pB(){return null};_.he=function qB(){return null};_.ie=function rB(){return null};_.je=function sB(){return null};var nI=mdb(Dje,'JSONValue',1966);bcb(216,1966,{216:1},wB,xB);_.Fb=function yB(a){if(!JD(a,216)){return false}return qz(this.a,BD(a,216).a)};_.ee=function zB(){return DB};_.Hb=function AB(){return rz(this.a)};_.fe=function BB(){return this};_.Ib=function CB(){var a,b,c;c=new Wfb('[');for(b=0,a=this.a.length;b<a;b++){b>0&&(c.a+=',',c);Pfb(c,tB(this,b))}c.a+=']';return c.a};var fI=mdb(Dje,'JSONArray',216);bcb(483,1966,{483:1},HB);_.ee=function IB(){return LB};_.ge=function JB(){return this};_.Ib=function KB(){return Bcb(),''+this.a};_.a=false;var EB,FB;var gI=mdb(Dje,'JSONBoolean',483);bcb(985,60,Tie,MB);var hI=mdb(Dje,'JSONException',985);bcb(1023,1966,{},PB);_.ee=function QB(){return SB};_.Ib=function RB(){return Xhe};var NB;var iI=mdb(Dje,'JSONNull',1023);bcb(258,1966,{258:1},TB);_.Fb=function UB(a){if(!JD(a,258)){return false}return this.a==BD(a,258).a};_.ee=function VB(){return ZB};_.Hb=function WB(){return Hdb(this.a)};_.he=function XB(){return this};_.Ib=function YB(){return this.a+''};_.a=0;var jI=mdb(Dje,'JSONNumber',258);bcb(183,1966,{183:1},eC,fC);_.Fb=function gC(a){if(!JD(a,183)){return false}return qz(this.a,BD(a,183).a)};_.ee=function hC(){return lC};_.Hb=function iC(){return rz(this.a)};_.ie=function jC(){return this};_.Ib=function kC(){var a,b,c,d,e,f,g;g=new Wfb('{');a=true;f=$B(this,KC(ZI,nie,2,0,6,1));for(c=f,d=0,e=c.length;d<e;++d){b=c[d];a?(a=false):(g.a+=She,g);Qfb(g,vz(b));g.a+=':';Pfb(g,aC(this,b))}g.a+='}';return g.a};var lI=mdb(Dje,'JSONObject',183);bcb(596,eie,fie,mC);_.Hc=function nC(a){return ND(a)&&_B(this.a,GD(a))};_.Kc=function oC(){return new vib(new amb(this.b))};_.gc=function pC(){return this.b.length};var kI=mdb(Dje,'JSONObject/1',596);var qC;bcb(204,1966,{204:1},yC);_.Fb=function zC(a){if(!JD(a,204)){return false}return dfb(this.a,BD(a,204).a)};_.ee=function AC(){return EC};_.Hb=function BC(){return LCb(this.a)};_.je=function CC(){return this};_.Ib=function DC(){return vz(this.a)};var mI=mdb(Dje,'JSONString',204);var QC;var sD,tD,uD,vD;bcb(1962,1,{525:1});var pI=mdb(Lje,'OutputStream',1962);bcb(1963,1962,{525:1});var oI=mdb(Lje,'FilterOutputStream',1963);bcb(866,1963,{525:1},jcb);var qI=mdb(Lje,'PrintStream',866);bcb(418,1,{475:1});_.Ib=function ncb(){return this.a};var rI=mdb(Phe,'AbstractStringBuilder',418);bcb(529,60,Tie,ocb);var sI=mdb(Phe,'ArithmeticException',529);bcb(73,60,Mje,pcb,qcb);var II=mdb(Phe,'IndexOutOfBoundsException',73);bcb(320,73,{3:1,320:1,102:1,73:1,60:1,78:1},rcb,scb);var tI=mdb(Phe,'ArrayIndexOutOfBoundsException',320);bcb(528,60,Tie,tcb,ucb);var uI=mdb(Phe,'ArrayStoreException',528);bcb(289,78,Nje,vcb);var DI=mdb(Phe,'Error',289);bcb(194,289,Nje,xcb,ycb);var vI=mdb(Phe,'AssertionError',194);xD={3:1,476:1,35:1};var zcb,Acb;var wI=mdb(Phe,'Boolean',476);bcb(236,1,{3:1,236:1});var Gcb;var RI=mdb(Phe,'Number',236);bcb(217,236,{3:1,217:1,35:1,236:1},Mcb);_.wd=function Ncb(a){return Lcb(this,BD(a,217))};_.ke=function Ocb(){return this.a};_.Fb=function Pcb(a){return JD(a,217)&&BD(a,217).a==this.a};_.Hb=function Qcb(){return this.a};_.Ib=function Rcb(){return ''+this.a};_.a=0;var xI=mdb(Phe,'Byte',217);var Tcb;bcb(172,1,{3:1,172:1,35:1},Xcb);_.wd=function Ycb(a){return Wcb(this,BD(a,172))};_.Fb=function $cb(a){return JD(a,172)&&BD(a,172).a==this.a};_.Hb=function _cb(){return this.a};_.Ib=function adb(){return String.fromCharCode(this.a)};_.a=0;var Vcb;var yI=mdb(Phe,'Character',172);var cdb;bcb(205,60,{3:1,205:1,102:1,60:1,78:1},Bdb,Cdb);var zI=mdb(Phe,'ClassCastException',205);yD={3:1,35:1,333:1,236:1};var BI=mdb(Phe,'Double',333);bcb(155,236,{3:1,35:1,155:1,236:1},Ndb,Odb);_.wd=function Pdb(a){return Mdb(this,BD(a,155))};_.ke=function Qdb(){return this.a};_.Fb=function Rdb(a){return JD(a,155)&&Fdb(this.a,BD(a,155).a)};_.Hb=function Sdb(){return QD(this.a)};_.Ib=function Udb(){return ''+this.a};_.a=0;var FI=mdb(Phe,'Float',155);bcb(32,60,{3:1,102:1,32:1,60:1,78:1},Vdb,Wdb,Xdb);var GI=mdb(Phe,'IllegalArgumentException',32);bcb(71,60,Tie,Ydb,Zdb);var HI=mdb(Phe,'IllegalStateException',71);bcb(19,236,{3:1,35:1,19:1,236:1},_db);_.wd=function ceb(a){return $db(this,BD(a,19))};_.ke=function deb(){return this.a};_.Fb=function eeb(a){return JD(a,19)&&BD(a,19).a==this.a};_.Hb=function feb(){return this.a};_.Ib=function leb(){return ''+this.a};_.a=0;var JI=mdb(Phe,'Integer',19);var neb;var peb;bcb(162,236,{3:1,35:1,162:1,236:1},teb);_.wd=function veb(a){return seb(this,BD(a,162))};_.ke=function web(){return Sbb(this.a)};_.Fb=function xeb(a){return JD(a,162)&&Bbb(BD(a,162).a,this.a)};_.Hb=function yeb(){return Tbb(this.a)};_.Ib=function zeb(){return ''+Ubb(this.a)};_.a=0;var MI=mdb(Phe,'Long',162);var Beb;bcb(2039,1,{});bcb(1831,60,Tie,Feb);var NI=mdb(Phe,'NegativeArraySizeException',1831);bcb(173,598,{3:1,102:1,173:1,60:1,78:1},Geb,Heb);_.Wd=function Ieb(a){return new TypeError(a)};var OI=mdb(Phe,'NullPointerException',173);var Jeb,Keb,Leb,Meb;bcb(127,32,{3:1,102:1,32:1,127:1,60:1,78:1},Oeb);var QI=mdb(Phe,'NumberFormatException',127);bcb(184,236,{3:1,35:1,236:1,184:1},Qeb);_.wd=function Reb(a){return Peb(this,BD(a,184))};_.ke=function Seb(){return this.a};_.Fb=function Teb(a){return JD(a,184)&&BD(a,184).a==this.a};_.Hb=function Ueb(){return this.a};_.Ib=function Veb(){return ''+this.a};_.a=0;var UI=mdb(Phe,'Short',184);var Xeb;bcb(310,1,{3:1,310:1},Zeb);_.Fb=function $eb(a){var b;if(JD(a,310)){b=BD(a,310);return this.c==b.c&&this.d==b.d&&this.a==b.a&&this.b==b.b}return false};_.Hb=function _eb(){return Hlb(OC(GC(SI,1),Uhe,1,5,[meb(this.c),this.a,this.d,this.b]))};_.Ib=function afb(){return this.a+'.'+this.d+'('+(this.b!=null?this.b:'Unknown Source')+(this.c>=0?':'+this.c:'')+')'};_.c=0;var VI=mdb(Phe,'StackTraceElement',310);zD={3:1,475:1,35:1,2:1};var ZI=mdb(Phe,Vie,2);bcb(107,418,{475:1},Hfb,Ifb,Jfb);var WI=mdb(Phe,'StringBuffer',107);bcb(100,418,{475:1},Ufb,Vfb,Wfb);var XI=mdb(Phe,'StringBuilder',100);bcb(687,73,Mje,Xfb);var YI=mdb(Phe,'StringIndexOutOfBoundsException',687);bcb(2043,1,{});var Yfb;bcb(844,1,{},_fb);_.Kb=function agb(a){return BD(a,78).e};var $I=mdb(Phe,'Throwable/lambda$0$Type',844);bcb(41,60,{3:1,102:1,60:1,78:1,41:1},bgb,cgb);var aJ=mdb(Phe,'UnsupportedOperationException',41);bcb(240,236,{3:1,35:1,236:1,240:1},sgb,tgb);_.wd=function wgb(a){return mgb(this,BD(a,240))};_.ke=function xgb(){return Hcb(rgb(this))};_.Fb=function ygb(a){var b;if(this===a){return true}if(JD(a,240)){b=BD(a,240);return this.e==b.e&&mgb(this,b)==0}return false};_.Hb=function zgb(){var a;if(this.b!=0){return this.b}if(this.a<54){a=Cbb(this.f);this.b=Tbb(xbb(a,-1));this.b=33*this.b+Tbb(xbb(Obb(a,32),-1));this.b=17*this.b+QD(this.e);return this.b}this.b=17*Ngb(this.c)+QD(this.e);return this.b};_.Ib=function Agb(){return rgb(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var dgb,egb,fgb,ggb,hgb,igb,jgb,kgb;var bJ=mdb('java.math','BigDecimal',240);bcb(91,236,{3:1,35:1,236:1,91:1},Tgb,Ugb,Vgb,Wgb,Xgb,Ygb);_.wd=function $gb(a){return Igb(this,BD(a,91))};_.ke=function _gb(){return Hcb(shb(this,0))};_.Fb=function ahb(a){return Kgb(this,a)};_.Hb=function chb(){return Ngb(this)};_.Ib=function ehb(){return shb(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var Bgb,Cgb,Dgb,Egb,Fgb,Ggb;var cJ=mdb('java.math','BigInteger',91);var nhb,ohb;var Bhb,Chb;bcb(488,1967,cie);_.$b=function Xhb(){Uhb(this)};_._b=function Yhb(a){return Mhb(this,a)};_.uc=function Zhb(a){return Nhb(this,a,this.g)||Nhb(this,a,this.f)};_.vc=function $hb(){return new eib(this)};_.xc=function _hb(a){return Ohb(this,a)};_.zc=function aib(a,b){return Rhb(this,a,b)};_.Bc=function bib(a){return Thb(this,a)};_.gc=function cib(){return Vhb(this)};var gJ=mdb(bie,'AbstractHashMap',488);bcb(261,eie,fie,eib);_.$b=function fib(){this.a.$b()};_.Hc=function gib(a){return dib(this,a)};_.Kc=function hib(){return new nib(this.a)};_.Mc=function iib(a){var b;if(dib(this,a)){b=BD(a,42).cd();this.a.Bc(b);return true}return false};_.gc=function jib(){return this.a.gc()};var fJ=mdb(bie,'AbstractHashMap/EntrySet',261);bcb(262,1,aie,nib);_.Nb=function oib(a){Rrb(this,a)};_.Pb=function qib(){return lib(this)};_.Ob=function pib(){return this.b};_.Qb=function rib(){mib(this)};_.b=false;var eJ=mdb(bie,'AbstractHashMap/EntrySetIterator',262);bcb(417,1,aie,vib);_.Nb=function wib(a){Rrb(this,a)};_.Ob=function xib(){return sib(this)};_.Pb=function yib(){return tib(this)};_.Qb=function zib(){uib(this)};_.b=0;_.c=-1;var hJ=mdb(bie,'AbstractList/IteratorImpl',417);bcb(96,417,jie,Bib);_.Qb=function Hib(){uib(this)};_.Rb=function Cib(a){Aib(this,a)};_.Sb=function Dib(){return this.b>0};_.Tb=function Eib(){return this.b};_.Ub=function Fib(){return sCb(this.b>0),this.a.Xb(this.c=--this.b)};_.Vb=function Gib(){return this.b-1};_.Wb=function Iib(a){yCb(this.c!=-1);this.a._c(this.c,a)};var iJ=mdb(bie,'AbstractList/ListIteratorImpl',96);bcb(219,52,Lie,Jib);_.Vc=function Kib(a,b){wCb(a,this.b);this.c.Vc(this.a+a,b);++this.b};_.Xb=function Lib(a){tCb(a,this.b);return this.c.Xb(this.a+a)};_.$c=function Mib(a){var b;tCb(a,this.b);b=this.c.$c(this.a+a);--this.b;return b};_._c=function Nib(a,b){tCb(a,this.b);return this.c._c(this.a+a,b)};_.gc=function Oib(){return this.b};_.a=0;_.b=0;var jJ=mdb(bie,'AbstractList/SubList',219);bcb(384,eie,fie,Pib);_.$b=function Qib(){this.a.$b()};_.Hc=function Rib(a){return this.a._b(a)};_.Kc=function Sib(){var a;return a=this.a.vc().Kc(),new Vib(a)};_.Mc=function Tib(a){if(this.a._b(a)){this.a.Bc(a);return true}return false};_.gc=function Uib(){return this.a.gc()};var mJ=mdb(bie,'AbstractMap/1',384);bcb(691,1,aie,Vib);_.Nb=function Wib(a){Rrb(this,a)};_.Ob=function Xib(){return this.a.Ob()};_.Pb=function Yib(){var a;return a=BD(this.a.Pb(),42),a.cd()};_.Qb=function Zib(){this.a.Qb()};var lJ=mdb(bie,'AbstractMap/1/1',691);bcb(226,28,die,$ib);_.$b=function _ib(){this.a.$b()};_.Hc=function ajb(a){return this.a.uc(a)};_.Kc=function bjb(){var a;return a=this.a.vc().Kc(),new djb(a)};_.gc=function cjb(){return this.a.gc()};var oJ=mdb(bie,'AbstractMap/2',226);bcb(294,1,aie,djb);_.Nb=function ejb(a){Rrb(this,a)};_.Ob=function fjb(){return this.a.Ob()};_.Pb=function gjb(){var a;return a=BD(this.a.Pb(),42),a.dd()};_.Qb=function hjb(){this.a.Qb()};var nJ=mdb(bie,'AbstractMap/2/1',294);bcb(484,1,{484:1,42:1});_.Fb=function jjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.d,b.cd())&&wtb(this.e,b.dd())};_.cd=function kjb(){return this.d};_.dd=function ljb(){return this.e};_.Hb=function mjb(){return xtb(this.d)^xtb(this.e)};_.ed=function njb(a){return ijb(this,a)};_.Ib=function ojb(){return this.d+'='+this.e};var pJ=mdb(bie,'AbstractMap/AbstractEntry',484);bcb(383,484,{484:1,383:1,42:1},pjb);var qJ=mdb(bie,'AbstractMap/SimpleEntry',383);bcb(1984,1,_je);_.Fb=function qjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.cd(),b.cd())&&wtb(this.dd(),b.dd())};_.Hb=function rjb(){return xtb(this.cd())^xtb(this.dd())};_.Ib=function sjb(){return this.cd()+'='+this.dd()};var rJ=mdb(bie,lie,1984);bcb(1992,1967,gie);_.tc=function vjb(a){return tjb(this,a)};_._b=function wjb(a){return ujb(this,a)};_.vc=function xjb(){return new Bjb(this)};_.xc=function yjb(a){var b;b=a;return Wd(Awb(this,b))};_.ec=function Ajb(){return new Gjb(this)};var wJ=mdb(bie,'AbstractNavigableMap',1992);bcb(739,eie,fie,Bjb);_.Hc=function Cjb(a){return JD(a,42)&&tjb(this.b,BD(a,42))};_.Kc=function Djb(){return new Ywb(this.b)};_.Mc=function Ejb(a){var b;if(JD(a,42)){b=BD(a,42);return Kwb(this.b,b)}return false};_.gc=function Fjb(){return this.b.c};var tJ=mdb(bie,'AbstractNavigableMap/EntrySet',739);bcb(493,eie,iie,Gjb);_.Nc=function Mjb(){return new Rub(this)};_.$b=function Hjb(){zwb(this.a)};_.Hc=function Ijb(a){return ujb(this.a,a)};_.Kc=function Jjb(){var a;return a=new Ywb((new cxb(this.a)).b),new Njb(a)};_.Mc=function Kjb(a){if(ujb(this.a,a)){Jwb(this.a,a);return true}return false};_.gc=function Ljb(){return this.a.c};var vJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet',493);bcb(494,1,aie,Njb);_.Nb=function Ojb(a){Rrb(this,a)};_.Ob=function Pjb(){return sib(this.a.a)};_.Pb=function Qjb(){var a;return a=Wwb(this.a),a.cd()};_.Qb=function Rjb(){Xwb(this.a)};var uJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet/1',494);bcb(2004,28,die);_.Fc=function Sjb(a){return zCb(cub(this,a)),true};_.Gc=function Tjb(a){uCb(a);mCb(a!=this,"Can't add a queue to itself");return ye(this,a)};_.$b=function Ujb(){while(dub(this)!=null);};var xJ=mdb(bie,'AbstractQueue',2004);bcb(302,28,{4:1,20:1,28:1,14:1},jkb,kkb);_.Fc=function lkb(a){return Xjb(this,a),true};_.$b=function nkb(){Yjb(this)};_.Hc=function okb(a){return Zjb(new xkb(this),a)};_.dc=function pkb(){return akb(this)};_.Kc=function qkb(){return new xkb(this)};_.Mc=function rkb(a){return dkb(new xkb(this),a)};_.gc=function skb(){return this.c-this.b&this.a.length-1};_.Nc=function tkb(){return new Kub(this,272)};_.Qc=function ukb(a){var b;b=this.c-this.b&this.a.length-1;a.length<b&&(a=eCb(new Array(b),a));$jb(this,a,b);a.length>b&&NC(a,b,null);return a};_.b=0;_.c=0;var BJ=mdb(bie,'ArrayDeque',302);bcb(446,1,aie,xkb);_.Nb=function ykb(a){Rrb(this,a)};_.Ob=function zkb(){return this.a!=this.b};_.Pb=function Akb(){return vkb(this)};_.Qb=function Bkb(){wkb(this)};_.a=0;_.b=0;_.c=-1;var AJ=mdb(bie,'ArrayDeque/IteratorImpl',446);bcb(12,52,ake,Rkb,Skb,Tkb);_.Vc=function Ukb(a,b){Dkb(this,a,b)};_.Fc=function Vkb(a){return Ekb(this,a)};_.Wc=function Wkb(a,b){return Fkb(this,a,b)};_.Gc=function Xkb(a){return Gkb(this,a)};_.$b=function Ykb(){this.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function Zkb(a){return Jkb(this,a,0)!=-1};_.Jc=function $kb(a){Hkb(this,a)};_.Xb=function _kb(a){return Ikb(this,a)};_.Xc=function alb(a){return Jkb(this,a,0)};_.dc=function blb(){return this.c.length==0};_.Kc=function clb(){return new olb(this)};_.$c=function dlb(a){return Kkb(this,a)};_.Mc=function elb(a){return Lkb(this,a)};_.Ud=function flb(a,b){Mkb(this,a,b)};_._c=function glb(a,b){return Nkb(this,a,b)};_.gc=function hlb(){return this.c.length};_.ad=function ilb(a){Okb(this,a)};_.Pc=function jlb(){return Pkb(this)};_.Qc=function klb(a){return Qkb(this,a)};var DJ=mdb(bie,'ArrayList',12);bcb(7,1,aie,olb);_.Nb=function plb(a){Rrb(this,a)};_.Ob=function qlb(){return llb(this)};_.Pb=function rlb(){return mlb(this)};_.Qb=function slb(){nlb(this)};_.a=0;_.b=-1;var CJ=mdb(bie,'ArrayList/1',7);bcb(2013,$wnd.Function,{},Ylb);_.te=function Zlb(a,b){return Kdb(a,b)};bcb(154,52,bke,amb);_.Hc=function bmb(a){return Bt(this,a)!=-1};_.Jc=function cmb(a){var b,c,d,e;uCb(a);for(c=this.a,d=0,e=c.length;d<e;++d){b=c[d];a.td(b)}};_.Xb=function dmb(a){return $lb(this,a)};_._c=function emb(a,b){var c;c=(tCb(a,this.a.length),this.a[a]);NC(this.a,a,b);return c};_.gc=function fmb(){return this.a.length};_.ad=function gmb(a){Mlb(this.a,this.a.length,a)};_.Pc=function hmb(){return _lb(this,KC(SI,Uhe,1,this.a.length,5,1))};_.Qc=function imb(a){return _lb(this,a)};var EJ=mdb(bie,'Arrays/ArrayList',154);var jmb,kmb,lmb;bcb(940,52,bke,xmb);_.Hc=function ymb(a){return false};_.Xb=function zmb(a){return wmb(a)};_.Kc=function Amb(){return mmb(),Emb(),Dmb};_.Yc=function Bmb(){return mmb(),Emb(),Dmb};_.gc=function Cmb(){return 0};var GJ=mdb(bie,'Collections/EmptyList',940);bcb(941,1,jie,Fmb);_.Nb=function Hmb(a){Rrb(this,a)};_.Rb=function Gmb(a){throw vbb(new bgb)};_.Ob=function Imb(){return false};_.Sb=function Jmb(){return false};_.Pb=function Kmb(){throw vbb(new utb)};_.Tb=function Lmb(){return 0};_.Ub=function Mmb(){throw vbb(new utb)};_.Vb=function Nmb(){return -1};_.Qb=function Omb(){throw vbb(new Ydb)};_.Wb=function Pmb(a){throw vbb(new Ydb)};var Dmb;var FJ=mdb(bie,'Collections/EmptyListIterator',941);bcb(943,1967,Aie,Qmb);_._b=function Rmb(a){return false};_.uc=function Smb(a){return false};_.vc=function Tmb(){return mmb(),lmb};_.xc=function Umb(a){return null};_.ec=function Vmb(){return mmb(),lmb};_.gc=function Wmb(){return 0};_.Cc=function Xmb(){return mmb(),jmb};var HJ=mdb(bie,'Collections/EmptyMap',943);bcb(942,eie,Cie,Ymb);_.Hc=function Zmb(a){return false};_.Kc=function $mb(){return mmb(),Emb(),Dmb};_.gc=function _mb(){return 0};var IJ=mdb(bie,'Collections/EmptySet',942);bcb(599,52,{3:1,20:1,28:1,52:1,14:1,15:1},anb);_.Hc=function bnb(a){return wtb(this.a,a)};_.Xb=function cnb(a){tCb(a,1);return this.a};_.gc=function dnb(){return 1};var JJ=mdb(bie,'Collections/SingletonList',599);bcb(372,1,wie,lnb);_.Jc=function rnb(a){reb(this,a)};_.Lc=function unb(){return new YAb(null,this.Nc())};_.Nc=function xnb(){return new Kub(this,0)};_.Oc=function ynb(){return new YAb(null,this.Nc())};_.Fc=function mnb(a){return enb()};_.Gc=function nnb(a){return fnb()};_.$b=function onb(){gnb()};_.Hc=function pnb(a){return hnb(this,a)};_.Ic=function qnb(a){return inb(this,a)};_.dc=function snb(){return this.b.dc()};_.Kc=function tnb(){return new Dnb(this.b.Kc())};_.Mc=function vnb(a){return jnb()};_.gc=function wnb(){return this.b.gc()};_.Pc=function znb(){return this.b.Pc()};_.Qc=function Anb(a){return knb(this,a)};_.Ib=function Bnb(){return fcb(this.b)};var LJ=mdb(bie,'Collections/UnmodifiableCollection',372);bcb(371,1,aie,Dnb);_.Nb=function Enb(a){Rrb(this,a)};_.Ob=function Fnb(){return this.b.Ob()};_.Pb=function Gnb(){return this.b.Pb()};_.Qb=function Hnb(){Cnb()};var KJ=mdb(bie,'Collections/UnmodifiableCollectionIterator',371);bcb(531,372,cke,Inb);_.Nc=function Vnb(){return new Kub(this,16)};_.Vc=function Jnb(a,b){throw vbb(new bgb)};_.Wc=function Knb(a,b){throw vbb(new bgb)};_.Fb=function Lnb(a){return pb(this.a,a)};_.Xb=function Mnb(a){return this.a.Xb(a)};_.Hb=function Nnb(){return tb(this.a)};_.Xc=function Onb(a){return this.a.Xc(a)};_.dc=function Pnb(){return this.a.dc()};_.Yc=function Qnb(){return new Xnb(this.a.Zc(0))};_.Zc=function Rnb(a){return new Xnb(this.a.Zc(a))};_.$c=function Snb(a){throw vbb(new bgb)};_._c=function Tnb(a,b){throw vbb(new bgb)};_.ad=function Unb(a){throw vbb(new bgb)};_.bd=function Wnb(a,b){return new Inb(this.a.bd(a,b))};var NJ=mdb(bie,'Collections/UnmodifiableList',531);bcb(690,371,jie,Xnb);_.Qb=function bob(){Cnb()};_.Rb=function Ynb(a){throw vbb(new bgb)};_.Sb=function Znb(){return this.a.Sb()};_.Tb=function $nb(){return this.a.Tb()};_.Ub=function _nb(){return this.a.Ub()};_.Vb=function aob(){return this.a.Vb()};_.Wb=function cob(a){throw vbb(new bgb)};var MJ=mdb(bie,'Collections/UnmodifiableListIterator',690);bcb(600,1,cie,iob);_.wc=function oob(a){stb(this,a)};_.yc=function tob(a,b,c){return ttb(this,a,b,c)};_.$b=function job(){throw vbb(new bgb)};_._b=function kob(a){return this.c._b(a)};_.uc=function lob(a){return dob(this,a)};_.vc=function mob(){return eob(this)};_.Fb=function nob(a){return fob(this,a)};_.xc=function pob(a){return this.c.xc(a)};_.Hb=function qob(){return tb(this.c)};_.dc=function rob(){return this.c.dc()};_.ec=function sob(){return gob(this)};_.zc=function uob(a,b){throw vbb(new bgb)};_.Bc=function vob(a){throw vbb(new bgb)};_.gc=function wob(){return this.c.gc()};_.Ib=function xob(){return fcb(this.c)};_.Cc=function yob(){return hob(this)};var RJ=mdb(bie,'Collections/UnmodifiableMap',600);bcb(382,372,Bie,zob);_.Nc=function Cob(){return new Kub(this,1)};_.Fb=function Aob(a){return pb(this.b,a)};_.Hb=function Bob(){return tb(this.b)};var TJ=mdb(bie,'Collections/UnmodifiableSet',382);bcb(944,382,Bie,Gob);_.Hc=function Hob(a){return Dob(this,a)};_.Ic=function Iob(a){return this.b.Ic(a)};_.Kc=function Job(){var a;a=this.b.Kc();return new Mob(a)};_.Pc=function Kob(){var a;a=this.b.Pc();Fob(a,a.length);return a};_.Qc=function Lob(a){return Eob(this,a)};var QJ=mdb(bie,'Collections/UnmodifiableMap/UnmodifiableEntrySet',944);bcb(945,1,aie,Mob);_.Nb=function Nob(a){Rrb(this,a)};_.Pb=function Pob(){return new Rob(BD(this.a.Pb(),42))};_.Ob=function Oob(){return this.a.Ob()};_.Qb=function Qob(){throw vbb(new bgb)};var OJ=mdb(bie,'Collections/UnmodifiableMap/UnmodifiableEntrySet/1',945);bcb(688,1,_je,Rob);_.Fb=function Sob(a){return this.a.Fb(a)};_.cd=function Tob(){return this.a.cd()};_.dd=function Uob(){return this.a.dd()};_.Hb=function Vob(){return this.a.Hb()};_.ed=function Wob(a){throw vbb(new bgb)};_.Ib=function Xob(){return fcb(this.a)};var PJ=mdb(bie,'Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry',688);bcb(601,531,{20:1,14:1,15:1,54:1},Yob);var SJ=mdb(bie,'Collections/UnmodifiableRandomAccessList',601);bcb(689,382,Die,Zob);_.Nc=function apb(){return new Rub(this)};_.Fb=function $ob(a){return pb(this.a,a)};_.Hb=function _ob(){return tb(this.a)};var UJ=mdb(bie,'Collections/UnmodifiableSortedSet',689);bcb(847,1,dke,bpb);_.ue=function cpb(a,b){var c;return c=Ucc(BD(a,11),BD(b,11)),c!=0?c:Wcc(BD(a,11),BD(b,11))};_.Fb=function dpb(a){return this===a};_.ve=function epb(){return new tpb(this)};var VJ=mdb(bie,'Comparator/lambda$0$Type',847);var fpb,gpb,hpb;bcb(751,1,dke,kpb);_.ue=function lpb(a,b){return jpb(BD(a,35),BD(b,35))};_.Fb=function mpb(a){return this===a};_.ve=function npb(){return ipb(),hpb};var WJ=mdb(bie,'Comparators/NaturalOrderComparator',751);bcb(1177,1,dke,ppb);_.ue=function qpb(a,b){return opb(BD(a,35),BD(b,35))};_.Fb=function rpb(a){return this===a};_.ve=function spb(){return ipb(),gpb};var XJ=mdb(bie,'Comparators/ReverseNaturalOrderComparator',1177);bcb(64,1,dke,tpb);_.Fb=function vpb(a){return this===a};_.ue=function upb(a,b){return this.a.ue(b,a)};_.ve=function wpb(){return this.a};var YJ=mdb(bie,'Comparators/ReversedComparator',64);bcb(166,60,Tie,Apb);var ZJ=mdb(bie,'ConcurrentModificationException',166);var Bpb,Cpb;bcb(1904,1,eke,Gpb);_.we=function Hpb(a){Epb(this,a)};_.Ib=function Ipb(){return 'DoubleSummaryStatistics[count = '+Ubb(this.a)+', avg = '+(Dbb(this.a,0)?Fpb(this)/Sbb(this.a):0)+', min = '+this.c+', max = '+this.b+', sum = '+Fpb(this)+']'};_.a=0;_.b=Qje;_.c=Pje;_.d=0;_.e=0;_.f=0;var _J=mdb(bie,'DoubleSummaryStatistics',1904);bcb(1805,60,Tie,Jpb);var aK=mdb(bie,'EmptyStackException',1805);bcb(451,1967,cie,Rpb);_.zc=function Xpb(a,b){return Opb(this,a,b)};_.$b=function Spb(){Kpb(this)};_._b=function Tpb(a){return Lpb(this,a)};_.uc=function Upb(a){var b,c;for(c=new Gqb(this.a);c.a<c.c.a.length;){b=Fqb(c);if(wtb(a,this.b[b.g])){return true}}return false};_.vc=function Vpb(){return new _pb(this)};_.xc=function Wpb(a){return Mpb(this,a)};_.Bc=function Ypb(a){return Ppb(this,a)};_.gc=function Zpb(){return this.a.c};var eK=mdb(bie,'EnumMap',451);bcb(1352,eie,fie,_pb);_.$b=function aqb(){Kpb(this.a)};_.Hc=function bqb(a){return $pb(this,a)};_.Kc=function cqb(){return new fqb(this.a)};_.Mc=function dqb(a){var b;if($pb(this,a)){b=BD(a,42).cd();Ppb(this.a,b);return true}return false};_.gc=function eqb(){return this.a.a.c};var cK=mdb(bie,'EnumMap/EntrySet',1352);bcb(1353,1,aie,fqb);_.Nb=function gqb(a){Rrb(this,a)};_.Pb=function iqb(){return this.b=Fqb(this.a),new kqb(this.c,this.b)};_.Ob=function hqb(){return Eqb(this.a)};_.Qb=function jqb(){yCb(!!this.b);Ppb(this.c,this.b);this.b=null};var bK=mdb(bie,'EnumMap/EntrySetIterator',1353);bcb(1354,1984,_je,kqb);_.cd=function lqb(){return this.a};_.dd=function mqb(){return this.b.b[this.a.g]};_.ed=function nqb(a){return Qpb(this.b,this.a.g,a)};var dK=mdb(bie,'EnumMap/MapEntry',1354);bcb(174,eie,{20:1,28:1,14:1,174:1,21:1});var hK=mdb(bie,'EnumSet',174);bcb(156,174,{20:1,28:1,14:1,174:1,156:1,21:1},xqb);_.Fc=function yqb(a){return rqb(this,BD(a,22))};_.Hc=function zqb(a){return tqb(this,a)};_.Kc=function Aqb(){return new Gqb(this)};_.Mc=function Bqb(a){return vqb(this,a)};_.gc=function Cqb(){return this.c};_.c=0;var gK=mdb(bie,'EnumSet/EnumSetImpl',156);bcb(343,1,aie,Gqb);_.Nb=function Hqb(a){Rrb(this,a)};_.Pb=function Jqb(){return Fqb(this)};_.Ob=function Iqb(){return Eqb(this)};_.Qb=function Kqb(){yCb(this.b!=-1);NC(this.c.b,this.b,null);--this.c.c;this.b=-1};_.a=-1;_.b=-1;var fK=mdb(bie,'EnumSet/EnumSetImpl/IteratorImpl',343);bcb(43,488,fke,Lqb,Mqb,Nqb);_.re=function Oqb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)};_.se=function Pqb(a){var b;b=tb(a);return b|0};var iK=mdb(bie,'HashMap',43);bcb(53,eie,gke,Tqb,Uqb,Vqb);_.Fc=function Xqb(a){return Qqb(this,a)};_.$b=function Yqb(){this.a.$b()};_.Hc=function Zqb(a){return Rqb(this,a)};_.dc=function $qb(){return this.a.gc()==0};_.Kc=function _qb(){return this.a.ec().Kc()};_.Mc=function arb(a){return Sqb(this,a)};_.gc=function brb(){return this.a.gc()};var jK=mdb(bie,'HashSet',53);bcb(1781,1,sie,drb);_.ud=function erb(a){crb(this,a)};_.Ib=function frb(){return 'IntSummaryStatistics[count = '+Ubb(this.a)+', avg = '+(Dbb(this.a,0)?Sbb(this.d)/Sbb(this.a):0)+', min = '+this.c+', max = '+this.b+', sum = '+Ubb(this.d)+']'};_.a=0;_.b=Rie;_.c=Ohe;_.d=0;var kK=mdb(bie,'IntSummaryStatistics',1781);bcb(1049,1,vie,lrb);_.Jc=function mrb(a){reb(this,a)};_.Kc=function nrb(){return new orb(this)};_.c=0;var mK=mdb(bie,'InternalHashCodeMap',1049);bcb(711,1,aie,orb);_.Nb=function prb(a){Rrb(this,a)};_.Pb=function rrb(){return this.d=this.a[this.c++],this.d};_.Ob=function qrb(){var a;if(this.c<this.a.length){return true}a=this.b.next();if(!a.done){this.a=a.value[1];this.c=0;return true}return false};_.Qb=function srb(){krb(this.e,this.d.cd());this.c!=0&&--this.c};_.c=0;_.d=null;var lK=mdb(bie,'InternalHashCodeMap/1',711);var vrb;bcb(1047,1,vie,Frb);_.Jc=function Grb(a){reb(this,a)};_.Kc=function Hrb(){return new Irb(this)};_.c=0;_.d=0;var pK=mdb(bie,'InternalStringMap',1047);bcb(710,1,aie,Irb);_.Nb=function Jrb(a){Rrb(this,a)};_.Pb=function Lrb(){return this.c=this.a,this.a=this.b.next(),new Nrb(this.d,this.c,this.d.d)};_.Ob=function Krb(){return !this.a.done};_.Qb=function Mrb(){Erb(this.d,this.c.value[0])};var nK=mdb(bie,'InternalStringMap/1',710);bcb(1048,1984,_je,Nrb);_.cd=function Orb(){return this.b.value[0]};_.dd=function Prb(){if(this.a.d!=this.c){return Crb(this.a,this.b.value[0])}return this.b.value[1]};_.ed=function Qrb(a){return Drb(this.a,this.b.value[0],a)};_.c=0;var oK=mdb(bie,'InternalStringMap/2',1048);bcb(228,43,fke,$rb,_rb);_.$b=function asb(){Urb(this)};_._b=function bsb(a){return Vrb(this,a)};_.uc=function csb(a){var b;b=this.d.a;while(b!=this.d){if(wtb(b.e,a)){return true}b=b.a}return false};_.vc=function dsb(){return new nsb(this)};_.xc=function esb(a){return Wrb(this,a)};_.zc=function fsb(a,b){return Xrb(this,a,b)};_.Bc=function gsb(a){return Zrb(this,a)};_.gc=function hsb(){return Vhb(this.e)};_.c=false;var tK=mdb(bie,'LinkedHashMap',228);bcb(387,383,{484:1,383:1,387:1,42:1},ksb,lsb);var qK=mdb(bie,'LinkedHashMap/ChainEntry',387);bcb(701,eie,fie,nsb);_.$b=function osb(){Urb(this.a)};_.Hc=function psb(a){return msb(this,a)};_.Kc=function qsb(){return new usb(this)};_.Mc=function rsb(a){var b;if(msb(this,a)){b=BD(a,42).cd();Zrb(this.a,b);return true}return false};_.gc=function ssb(){return Vhb(this.a.e)};var sK=mdb(bie,'LinkedHashMap/EntrySet',701);bcb(702,1,aie,usb);_.Nb=function vsb(a){Rrb(this,a)};_.Pb=function xsb(){return tsb(this)};_.Ob=function wsb(){return this.b!=this.c.a.d};_.Qb=function ysb(){yCb(!!this.a);xpb(this.c.a.e,this);jsb(this.a);Thb(this.c.a.e,this.a.d);ypb(this.c.a.e,this);this.a=null};var rK=mdb(bie,'LinkedHashMap/EntrySet/EntryIterator',702);bcb(178,53,gke,zsb,Asb,Bsb);var uK=mdb(bie,'LinkedHashSet',178);bcb(68,1964,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1},Psb,Qsb);_.Fc=function Rsb(a){return Dsb(this,a)};_.$b=function Ssb(){Osb(this)};_.Zc=function Tsb(a){return Jsb(this,a)};_.gc=function Usb(){return this.b};_.b=0;var xK=mdb(bie,'LinkedList',68);bcb(970,1,jie,$sb);_.Nb=function atb(a){Rrb(this,a)};_.Rb=function _sb(a){Vsb(this,a)};_.Ob=function btb(){return Wsb(this)};_.Sb=function ctb(){return this.b.b!=this.d.a};_.Pb=function dtb(){return Xsb(this)};_.Tb=function etb(){return this.a};_.Ub=function ftb(){return Ysb(this)};_.Vb=function gtb(){return this.a-1};_.Qb=function htb(){Zsb(this)};_.Wb=function itb(a){yCb(!!this.c);this.c.c=a};_.a=0;_.c=null;var vK=mdb(bie,'LinkedList/ListIteratorImpl',970);bcb(608,1,{},jtb);var wK=mdb(bie,'LinkedList/Node',608);bcb(1959,1,{});var ltb,mtb;var BK=mdb(bie,'Locale',1959);bcb(861,1959,{},otb);_.Ib=function ptb(){return ''};var zK=mdb(bie,'Locale/1',861);bcb(862,1959,{},qtb);_.Ib=function rtb(){return 'unknown'};var AK=mdb(bie,'Locale/4',862);bcb(109,60,{3:1,102:1,60:1,78:1,109:1},utb,vtb);var EK=mdb(bie,'NoSuchElementException',109);bcb(404,1,{404:1},Ftb);_.Fb=function Gtb(a){var b;if(a===this){return true}if(!JD(a,404)){return false}b=BD(a,404);return wtb(this.a,b.a)};_.Hb=function Htb(){return xtb(this.a)};_.Ib=function Jtb(){return this.a!=null?Whe+xfb(this.a)+')':'Optional.empty()'};var ztb;var HK=mdb(bie,'Optional',404);bcb(463,1,{463:1},Otb,Ptb);_.Fb=function Qtb(a){var b;if(a===this){return true}if(!JD(a,463)){return false}b=BD(a,463);return this.a==b.a&&Kdb(this.b,b.b)==0};_.Hb=function Rtb(){return this.a?QD(this.b):0};_.Ib=function Stb(){return this.a?'OptionalDouble.of('+(''+this.b)+')':'OptionalDouble.empty()'};_.a=false;_.b=0;var Ktb;var FK=mdb(bie,'OptionalDouble',463);bcb(517,1,{517:1},Wtb,Xtb);_.Fb=function Ytb(a){var b;if(a===this){return true}if(!JD(a,517)){return false}b=BD(a,517);return this.a==b.a&&beb(this.b,b.b)==0};_.Hb=function Ztb(){return this.a?this.b:0};_.Ib=function $tb(){return this.a?'OptionalInt.of('+(''+this.b)+')':'OptionalInt.empty()'};_.a=false;_.b=0;var Ttb;var GK=mdb(bie,'OptionalInt',517);bcb(503,2004,die,gub);_.Gc=function hub(a){return _tb(this,a)};_.$b=function iub(){this.b.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function jub(a){return (a==null?-1:Jkb(this.b,a,0))!=-1};_.Kc=function kub(){return new qub(this)};_.Mc=function lub(a){return eub(this,a)};_.gc=function mub(){return this.b.c.length};_.Nc=function nub(){return new Kub(this,256)};_.Pc=function oub(){return Pkb(this.b)};_.Qc=function pub(a){return Qkb(this.b,a)};var JK=mdb(bie,'PriorityQueue',503);bcb(1277,1,aie,qub);_.Nb=function rub(a){Rrb(this,a)};_.Ob=function tub(){return this.a<this.c.b.c.length};_.Pb=function uub(){sCb(this.a<this.c.b.c.length);this.b=this.a++;return Ikb(this.c.b,this.b)};_.Qb=function vub(){yCb(this.b!=-1);fub(this.c,this.a=this.b);this.b=-1};_.a=0;_.b=-1;var IK=mdb(bie,'PriorityQueue/1',1277);bcb(230,1,{230:1},Gub,Hub);_.a=0;_.b=0;var wub,xub,yub=0;var KK=mdb(bie,'Random',230);bcb(27,1,pie,Kub,Lub,Mub);_.qd=function Nub(){return this.a};_.rd=function Oub(){Iub(this);return this.c};_.Nb=function Pub(a){Iub(this);this.d.Nb(a)};_.sd=function Qub(a){return Jub(this,a)};_.a=0;_.c=0;var $K=mdb(bie,'Spliterators/IteratorSpliterator',27);bcb(485,27,pie,Rub);var MK=mdb(bie,'SortedSet/1',485);bcb(602,1,eke,Tub);_.we=function Uub(a){this.a.td(a)};var NK=mdb(bie,'Spliterator/OfDouble/0methodref$accept$Type',602);bcb(603,1,eke,Vub);_.we=function Wub(a){this.a.td(a)};var OK=mdb(bie,'Spliterator/OfDouble/1methodref$accept$Type',603);bcb(604,1,sie,Xub);_.ud=function Yub(a){this.a.td(meb(a))};var PK=mdb(bie,'Spliterator/OfInt/2methodref$accept$Type',604);bcb(605,1,sie,Zub);_.ud=function $ub(a){this.a.td(meb(a))};var QK=mdb(bie,'Spliterator/OfInt/3methodref$accept$Type',605);bcb(617,1,pie);_.Nb=function evb(a){Sub(this,a)};_.qd=function cvb(){return this.d};_.rd=function dvb(){return this.e};_.d=0;_.e=0;var WK=mdb(bie,'Spliterators/BaseSpliterator',617);bcb(721,617,pie);_.xe=function gvb(a){_ub(this,a)};_.Nb=function hvb(a){JD(a,182)?_ub(this,BD(a,182)):_ub(this,new Vub(a))};_.sd=function ivb(a){return JD(a,182)?this.ye(BD(a,182)):this.ye(new Tub(a))};var RK=mdb(bie,'Spliterators/AbstractDoubleSpliterator',721);bcb(720,617,pie);_.xe=function kvb(a){_ub(this,a)};_.Nb=function lvb(a){JD(a,196)?_ub(this,BD(a,196)):_ub(this,new Zub(a))};_.sd=function mvb(a){return JD(a,196)?this.ye(BD(a,196)):this.ye(new Xub(a))};var SK=mdb(bie,'Spliterators/AbstractIntSpliterator',720);bcb(540,617,pie);var TK=mdb(bie,'Spliterators/AbstractSpliterator',540);bcb(692,1,pie);_.Nb=function tvb(a){Sub(this,a)};_.qd=function rvb(){return this.b};_.rd=function svb(){return this.d-this.c};_.b=0;_.c=0;_.d=0;var VK=mdb(bie,'Spliterators/BaseArraySpliterator',692);bcb(947,692,pie,vvb);_.ze=function wvb(a,b){uvb(this,BD(a,38),b)};_.Nb=function xvb(a){ovb(this,a)};_.sd=function yvb(a){return pvb(this,a)};var UK=mdb(bie,'Spliterators/ArraySpliterator',947);bcb(693,692,pie,Avb);_.ze=function Cvb(a,b){zvb(this,BD(a,182),b)};_.xe=function Dvb(a){ovb(this,a)};_.Nb=function Evb(a){JD(a,182)?ovb(this,BD(a,182)):ovb(this,new Vub(a))};_.ye=function Fvb(a){return pvb(this,a)};_.sd=function Gvb(a){return JD(a,182)?pvb(this,BD(a,182)):pvb(this,new Tub(a))};var XK=mdb(bie,'Spliterators/DoubleArraySpliterator',693);bcb(1968,1,pie);_.Nb=function Lvb(a){Sub(this,a)};_.qd=function Jvb(){return 16448};_.rd=function Kvb(){return 0};var Hvb;var ZK=mdb(bie,'Spliterators/EmptySpliterator',1968);bcb(946,1968,pie,Ovb);_.xe=function Pvb(a){Mvb(a)};_.Nb=function Qvb(a){JD(a,196)?Mvb(BD(a,196)):Mvb(new Zub(a))};_.ye=function Rvb(a){return Nvb(a)};_.sd=function Svb(a){return JD(a,196)?Nvb(BD(a,196)):Nvb(new Xub(a))};var YK=mdb(bie,'Spliterators/EmptySpliterator/OfInt',946);bcb(580,52,pke,Wvb);_.Vc=function Xvb(a,b){_vb(a,this.a.c.length+1);Dkb(this.a,a,b)};_.Fc=function Yvb(a){return Ekb(this.a,a)};_.Wc=function Zvb(a,b){_vb(a,this.a.c.length+1);return Fkb(this.a,a,b)};_.Gc=function $vb(a){return Gkb(this.a,a)};_.$b=function awb(){this.a.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function bwb(a){return Jkb(this.a,a,0)!=-1};_.Ic=function cwb(a){return Be(this.a,a)};_.Jc=function dwb(a){Hkb(this.a,a)};_.Xb=function ewb(a){return _vb(a,this.a.c.length),Ikb(this.a,a)};_.Xc=function fwb(a){return Jkb(this.a,a,0)};_.dc=function gwb(){return this.a.c.length==0};_.Kc=function hwb(){return new olb(this.a)};_.$c=function iwb(a){return _vb(a,this.a.c.length),Kkb(this.a,a)};_.Ud=function jwb(a,b){Mkb(this.a,a,b)};_._c=function kwb(a,b){return _vb(a,this.a.c.length),Nkb(this.a,a,b)};_.gc=function lwb(){return this.a.c.length};_.ad=function mwb(a){Okb(this.a,a)};_.bd=function nwb(a,b){return new Jib(this.a,a,b)};_.Pc=function owb(){return Pkb(this.a)};_.Qc=function pwb(a){return Qkb(this.a,a)};_.Ib=function qwb(){return Fe(this.a)};var lL=mdb(bie,'Vector',580);bcb(809,580,pke,twb);var _K=mdb(bie,'Stack',809);bcb(206,1,{206:1},xwb);_.Ib=function ywb(){return wwb(this)};var aL=mdb(bie,'StringJoiner',206);bcb(544,1992,{3:1,83:1,171:1,161:1},Pwb,Qwb);_.$b=function Rwb(){zwb(this)};_.vc=function Swb(){return new cxb(this)};_.zc=function Twb(a,b){return Iwb(this,a,b)};_.Bc=function Uwb(a){return Jwb(this,a)};_.gc=function Vwb(){return this.c};_.c=0;var jL=mdb(bie,'TreeMap',544);bcb(390,1,aie,Ywb);_.Nb=function $wb(a){Rrb(this,a)};_.Pb=function axb(){return Wwb(this)};_.Ob=function _wb(){return sib(this.a)};_.Qb=function bxb(){Xwb(this)};var bL=mdb(bie,'TreeMap/EntryIterator',390);bcb(435,739,fie,cxb);_.$b=function dxb(){zwb(this.a)};var cL=mdb(bie,'TreeMap/EntrySet',435);bcb(436,383,{484:1,383:1,42:1,436:1},exb);_.b=false;var dL=mdb(bie,'TreeMap/Node',436);bcb(621,1,{},fxb);_.Ib=function gxb(){return 'State: mv='+this.c+' value='+this.d+' done='+this.a+' found='+this.b};_.a=false;_.b=false;_.c=false;var eL=mdb(bie,'TreeMap/State',621);bcb(297,22,qke,mxb);_.Ae=function nxb(){return false};_.Be=function oxb(){return false};var hxb,ixb,jxb,kxb;var iL=ndb(bie,'TreeMap/SubMapType',297,CI,qxb,pxb);bcb(1112,297,qke,rxb);_.Be=function sxb(){return true};var fL=ndb(bie,'TreeMap/SubMapType/1',1112,iL,null,null);bcb(1113,297,qke,txb);_.Ae=function uxb(){return true};_.Be=function vxb(){return true};var gL=ndb(bie,'TreeMap/SubMapType/2',1113,iL,null,null);bcb(1114,297,qke,wxb);_.Ae=function xxb(){return true};var hL=ndb(bie,'TreeMap/SubMapType/3',1114,iL,null,null);var yxb;bcb(208,eie,{3:1,20:1,28:1,14:1,271:1,21:1,84:1,208:1},Gxb,Hxb);_.Nc=function Oxb(){return new Rub(this)};_.Fc=function Ixb(a){return Axb(this,a)};_.$b=function Jxb(){zwb(this.a)};_.Hc=function Kxb(a){return ujb(this.a,a)};_.Kc=function Lxb(){var a;return a=new Ywb((new cxb((new Gjb(this.a)).a)).b),new Njb(a)};_.Mc=function Mxb(a){return Fxb(this,a)};_.gc=function Nxb(){return this.a.c};var kL=mdb(bie,'TreeSet',208);bcb(966,1,{},Rxb);_.Ce=function Sxb(a,b){return Pxb(this.a,a,b)};var mL=mdb(rke,'BinaryOperator/lambda$0$Type',966);bcb(967,1,{},Txb);_.Ce=function Uxb(a,b){return Qxb(this.a,a,b)};var nL=mdb(rke,'BinaryOperator/lambda$1$Type',967);bcb(846,1,{},Vxb);_.Kb=function Wxb(a){return a};var oL=mdb(rke,'Function/lambda$0$Type',846);bcb(431,1,Oie,Xxb);_.Mb=function Yxb(a){return !this.a.Mb(a)};var pL=mdb(rke,'Predicate/lambda$2$Type',431);bcb(572,1,{572:1});var qL=mdb(ske,'Handler',572);bcb(2007,1,Qhe);_.ne=function _xb(){return 'DUMMY'};_.Ib=function ayb(){return this.ne()};var Zxb;var sL=mdb(ske,'Level',2007);bcb(1621,2007,Qhe,byb);_.ne=function cyb(){return 'INFO'};var rL=mdb(ske,'Level/LevelInfo',1621);bcb(1640,1,{},gyb);var dyb;var tL=mdb(ske,'LogManager',1640);bcb(1780,1,Qhe,iyb);_.b=null;var uL=mdb(ske,'LogRecord',1780);bcb(512,1,{512:1},wyb);_.e=false;var jyb=false,kyb=false,lyb=false,myb=false,nyb=false;var vL=mdb(ske,'Logger',512);bcb(819,572,{572:1},zyb);var wL=mdb(ske,'SimpleConsoleLogHandler',819);bcb(132,22,{3:1,35:1,22:1,132:1},Gyb);var Cyb,Dyb,Eyb;var xL=ndb(vke,'Collector/Characteristics',132,CI,Iyb,Hyb);var Jyb;bcb(744,1,{},Lyb);var yL=mdb(vke,'CollectorImpl',744);bcb(1060,1,{},Zyb);_.Ce=function $yb(a,b){return vwb(BD(a,206),BD(b,206))};var zL=mdb(vke,'Collectors/10methodref$merge$Type',1060);bcb(1061,1,{},_yb);_.Kb=function azb(a){return wwb(BD(a,206))};var AL=mdb(vke,'Collectors/11methodref$toString$Type',1061);bcb(1062,1,{},bzb);_.Kb=function czb(a){return Bcb(),_Pb(a)?true:false};var BL=mdb(vke,'Collectors/12methodref$test$Type',1062);bcb(251,1,{},dzb);_.Od=function ezb(a,b){BD(a,14).Fc(b)};var CL=mdb(vke,'Collectors/20methodref$add$Type',251);bcb(253,1,{},fzb);_.Ee=function gzb(){return new Rkb};var DL=mdb(vke,'Collectors/21methodref$ctor$Type',253);bcb(346,1,{},hzb);_.Ee=function izb(){return new Tqb};var EL=mdb(vke,'Collectors/23methodref$ctor$Type',346);bcb(347,1,{},jzb);_.Od=function kzb(a,b){Qqb(BD(a,53),b)};var FL=mdb(vke,'Collectors/24methodref$add$Type',347);bcb(1055,1,{},lzb);_.Ce=function mzb(a,b){return Myb(BD(a,15),BD(b,14))};var GL=mdb(vke,'Collectors/4methodref$addAll$Type',1055);bcb(1059,1,{},nzb);_.Od=function ozb(a,b){uwb(BD(a,206),BD(b,475))};var HL=mdb(vke,'Collectors/9methodref$add$Type',1059);bcb(1058,1,{},pzb);_.Ee=function qzb(){return new xwb(this.a,this.b,this.c)};var IL=mdb(vke,'Collectors/lambda$15$Type',1058);bcb(1063,1,{},rzb);_.Ee=function szb(){var a;return a=new $rb,Xrb(a,(Bcb(),false),new Rkb),Xrb(a,true,new Rkb),a};var JL=mdb(vke,'Collectors/lambda$22$Type',1063);bcb(1064,1,{},tzb);_.Ee=function uzb(){return OC(GC(SI,1),Uhe,1,5,[this.a])};var KL=mdb(vke,'Collectors/lambda$25$Type',1064);bcb(1065,1,{},vzb);_.Od=function wzb(a,b){Oyb(this.a,CD(a))};var LL=mdb(vke,'Collectors/lambda$26$Type',1065);bcb(1066,1,{},xzb);_.Ce=function yzb(a,b){return Pyb(this.a,CD(a),CD(b))};var ML=mdb(vke,'Collectors/lambda$27$Type',1066);bcb(1067,1,{},zzb);_.Kb=function Azb(a){return CD(a)[0]};var NL=mdb(vke,'Collectors/lambda$28$Type',1067);bcb(713,1,{},Czb);_.Ce=function Dzb(a,b){return Bzb(a,b)};var OL=mdb(vke,'Collectors/lambda$4$Type',713);bcb(252,1,{},Ezb);_.Ce=function Fzb(a,b){return Ryb(BD(a,14),BD(b,14))};var PL=mdb(vke,'Collectors/lambda$42$Type',252);bcb(348,1,{},Gzb);_.Ce=function Hzb(a,b){return Syb(BD(a,53),BD(b,53))};var QL=mdb(vke,'Collectors/lambda$50$Type',348);bcb(349,1,{},Izb);_.Kb=function Jzb(a){return BD(a,53)};var RL=mdb(vke,'Collectors/lambda$51$Type',349);bcb(1054,1,{},Kzb);_.Od=function Lzb(a,b){Tyb(this.a,BD(a,83),b)};var SL=mdb(vke,'Collectors/lambda$7$Type',1054);bcb(1056,1,{},Mzb);_.Ce=function Nzb(a,b){return Vyb(BD(a,83),BD(b,83),new lzb)};var TL=mdb(vke,'Collectors/lambda$8$Type',1056);bcb(1057,1,{},Ozb);_.Kb=function Pzb(a){return Uyb(this.a,BD(a,83))};var UL=mdb(vke,'Collectors/lambda$9$Type',1057);bcb(539,1,{});_.He=function Wzb(){Qzb(this)};_.d=false;var zM=mdb(vke,'TerminatableStream',539);bcb(812,539,wke,bAb);_.He=function cAb(){Qzb(this)};var ZL=mdb(vke,'DoubleStreamImpl',812);bcb(1784,721,pie,fAb);_.ye=function hAb(a){return eAb(this,BD(a,182))};_.a=null;var WL=mdb(vke,'DoubleStreamImpl/2',1784);bcb(1785,1,eke,iAb);_.we=function jAb(a){gAb(this.a,a)};var VL=mdb(vke,'DoubleStreamImpl/2/lambda$0$Type',1785);bcb(1782,1,eke,kAb);_.we=function lAb(a){dAb(this.a,a)};var XL=mdb(vke,'DoubleStreamImpl/lambda$0$Type',1782);bcb(1783,1,eke,mAb);_.we=function nAb(a){Epb(this.a,a)};var YL=mdb(vke,'DoubleStreamImpl/lambda$2$Type',1783);bcb(1358,720,pie,rAb);_.ye=function sAb(a){return qAb(this,BD(a,196))};_.a=0;_.b=0;_.c=0;var $L=mdb(vke,'IntStream/5',1358);bcb(787,539,wke,vAb);_.He=function wAb(){Qzb(this)};_.Ie=function xAb(){return Tzb(this),this.a};var bM=mdb(vke,'IntStreamImpl',787);bcb(788,539,wke,yAb);_.He=function zAb(){Qzb(this)};_.Ie=function AAb(){return Tzb(this),Ivb(),Hvb};var _L=mdb(vke,'IntStreamImpl/Empty',788);bcb(1463,1,sie,BAb);_.ud=function CAb(a){crb(this.a,a)};var aM=mdb(vke,'IntStreamImpl/lambda$4$Type',1463);var xM=odb(vke,'Stream');bcb(30,539,{525:1,670:1,833:1},YAb);_.He=function ZAb(){Qzb(this)};var DAb;var wM=mdb(vke,'StreamImpl',30);bcb(845,1,{},bBb);_.ld=function cBb(a){return aBb(a)};var cM=mdb(vke,'StreamImpl/0methodref$lambda$2$Type',845);bcb(1084,540,pie,fBb);_.sd=function gBb(a){while(dBb(this)){if(this.a.sd(a)){return true}else{Qzb(this.b);this.b=null;this.a=null}}return false};var eM=mdb(vke,'StreamImpl/1',1084);bcb(1085,1,qie,hBb);_.td=function iBb(a){eBb(this.a,BD(a,833))};var dM=mdb(vke,'StreamImpl/1/lambda$0$Type',1085);bcb(1086,1,Oie,jBb);_.Mb=function kBb(a){return Qqb(this.a,a)};var fM=mdb(vke,'StreamImpl/1methodref$add$Type',1086);bcb(1087,540,pie,lBb);_.sd=function mBb(a){var b;if(!this.a){b=new Rkb;this.b.a.Nb(new nBb(b));mmb();Okb(b,this.c);this.a=new Kub(b,16)}return Jub(this.a,a)};_.a=null;var hM=mdb(vke,'StreamImpl/5',1087);bcb(1088,1,qie,nBb);_.td=function oBb(a){Ekb(this.a,a)};var gM=mdb(vke,'StreamImpl/5/2methodref$add$Type',1088);bcb(722,540,pie,qBb);_.sd=function rBb(a){this.b=false;while(!this.b&&this.c.sd(new sBb(this,a)));return this.b};_.b=false;var jM=mdb(vke,'StreamImpl/FilterSpliterator',722);bcb(1079,1,qie,sBb);_.td=function tBb(a){pBb(this.a,this.b,a)};var iM=mdb(vke,'StreamImpl/FilterSpliterator/lambda$0$Type',1079);bcb(1075,721,pie,wBb);_.ye=function xBb(a){return vBb(this,BD(a,182))};var lM=mdb(vke,'StreamImpl/MapToDoubleSpliterator',1075);bcb(1078,1,qie,yBb);_.td=function zBb(a){uBb(this.a,this.b,a)};var kM=mdb(vke,'StreamImpl/MapToDoubleSpliterator/lambda$0$Type',1078);bcb(1074,720,pie,CBb);_.ye=function DBb(a){return BBb(this,BD(a,196))};var nM=mdb(vke,'StreamImpl/MapToIntSpliterator',1074);bcb(1077,1,qie,EBb);_.td=function FBb(a){ABb(this.a,this.b,a)};var mM=mdb(vke,'StreamImpl/MapToIntSpliterator/lambda$0$Type',1077);bcb(719,540,pie,IBb);_.sd=function JBb(a){return HBb(this,a)};var pM=mdb(vke,'StreamImpl/MapToObjSpliterator',719);bcb(1076,1,qie,KBb);_.td=function LBb(a){GBb(this.a,this.b,a)};var oM=mdb(vke,'StreamImpl/MapToObjSpliterator/lambda$0$Type',1076);bcb(618,1,qie,NBb);_.td=function OBb(a){MBb(this,a)};var qM=mdb(vke,'StreamImpl/ValueConsumer',618);bcb(1080,1,qie,PBb);_.td=function QBb(a){EAb()};var rM=mdb(vke,'StreamImpl/lambda$0$Type',1080);bcb(1081,1,qie,RBb);_.td=function SBb(a){EAb()};var sM=mdb(vke,'StreamImpl/lambda$1$Type',1081);bcb(1082,1,{},TBb);_.Ce=function UBb(a,b){return $Ab(this.a,a,b)};var uM=mdb(vke,'StreamImpl/lambda$4$Type',1082);bcb(1083,1,qie,VBb);_.td=function WBb(a){_Ab(this.b,this.a,a)};var vM=mdb(vke,'StreamImpl/lambda$5$Type',1083);bcb(1089,1,qie,XBb);_.td=function YBb(a){Xzb(this.a,BD(a,365))};var yM=mdb(vke,'TerminatableStream/lambda$0$Type',1089);bcb(2041,1,{});bcb(1914,1,{},iCb);var AM=mdb('javaemul.internal','ConsoleLogger',1914);bcb(2038,1,{});var ECb=0;var GCb,HCb=0,ICb;bcb(1768,1,qie,OCb);_.td=function PCb(a){BD(a,308)};var BM=mdb(Cke,'BowyerWatsonTriangulation/lambda$0$Type',1768);bcb(1769,1,qie,QCb);_.td=function RCb(a){ye(this.a,BD(a,308).e)};var CM=mdb(Cke,'BowyerWatsonTriangulation/lambda$1$Type',1769);bcb(1770,1,qie,SCb);_.td=function TCb(a){BD(a,168)};var DM=mdb(Cke,'BowyerWatsonTriangulation/lambda$2$Type',1770);bcb(1765,1,Dke,WCb);_.ue=function XCb(a,b){return VCb(this.a,BD(a,168),BD(b,168))};_.Fb=function YCb(a){return this===a};_.ve=function ZCb(){return new tpb(this)};var EM=mdb(Cke,'NaiveMinST/lambda$0$Type',1765);bcb(499,1,{},_Cb);var FM=mdb(Cke,'NodeMicroLayout',499);bcb(168,1,{168:1},aDb);_.Fb=function bDb(a){var b;if(JD(a,168)){b=BD(a,168);return wtb(this.a,b.a)&&wtb(this.b,b.b)||wtb(this.a,b.b)&&wtb(this.b,b.a)}else{return false}};_.Hb=function cDb(){return xtb(this.a)+xtb(this.b)};var GM=mdb(Cke,'TEdge',168);bcb(308,1,{308:1},eDb);_.Fb=function fDb(a){var b;if(JD(a,308)){b=BD(a,308);return dDb(this,b.a)&&dDb(this,b.b)&&dDb(this,b.c)}else{return false}};_.Hb=function gDb(){return xtb(this.a)+xtb(this.b)+xtb(this.c)};var HM=mdb(Cke,'TTriangle',308);bcb(221,1,{221:1},hDb);var IM=mdb(Cke,'Tree',221);bcb(1254,1,{},jDb);var KM=mdb(Eke,'Scanline',1254);var JM=odb(Eke,Fke);bcb(1692,1,{},mDb);var LM=mdb(Gke,'CGraph',1692);bcb(307,1,{307:1},oDb);_.b=0;_.c=0;_.d=0;_.g=0;_.i=0;_.k=Qje;var NM=mdb(Gke,'CGroup',307);bcb(815,1,{},sDb);var MM=mdb(Gke,'CGroup/CGroupBuilder',815);bcb(57,1,{57:1},tDb);_.Ib=function uDb(){var a;if(this.j){return GD(this.j.Kb(this))}return fdb(PM),PM.o+'@'+(a=FCb(this)>>>0,a.toString(16))};_.f=0;_.i=Qje;var PM=mdb(Gke,'CNode',57);bcb(814,1,{},zDb);var OM=mdb(Gke,'CNode/CNodeBuilder',814);var EDb;bcb(1525,1,{},GDb);_.Oe=function HDb(a,b){return 0};_.Pe=function IDb(a,b){return 0};var QM=mdb(Gke,Ike,1525);bcb(1790,1,{},JDb);_.Le=function KDb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=Pje;for(d=new olb(a.a.b);d.a<d.c.c.length;){b=BD(mlb(d),57);j=$wnd.Math.min(j,b.a.j.d.c+b.b.a)}n=new Psb;for(g=new olb(a.a.a);g.a<g.c.c.length;){f=BD(mlb(g),307);f.k=j;f.g==0&&(Gsb(n,f,n.c.b,n.c),true)}while(n.b!=0){f=BD(n.b==0?null:(sCb(n.b!=0),Nsb(n,n.a.a)),307);e=f.j.d.c;for(m=f.a.a.ec().Kc();m.Ob();){k=BD(m.Pb(),57);p=f.k+k.b.a;!UDb(a,f,a.d)||k.d.c<p?(k.i=p):(k.i=k.d.c)}e-=f.j.i;f.b+=e;a.d==(ead(),bad)||a.d==_9c?(f.c+=e):(f.c-=e);for(l=f.a.a.ec().Kc();l.Ob();){k=BD(l.Pb(),57);for(i=k.c.Kc();i.Ob();){h=BD(i.Pb(),57);fad(a.d)?(o=a.g.Oe(k,h)):(o=a.g.Pe(k,h));h.a.k=$wnd.Math.max(h.a.k,k.i+k.d.b+o-h.b.a);VDb(a,h,a.d)&&(h.a.k=$wnd.Math.max(h.a.k,h.d.c-h.b.a));--h.a.g;h.a.g==0&&Dsb(n,h.a)}}}for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),57);b.d.c=b.i}};var RM=mdb(Gke,'LongestPathCompaction',1790);bcb(1690,1,{},cEb);_.e=false;var LDb,MDb,NDb;var TM=mdb(Gke,Nke,1690);bcb(1691,1,qie,dEb);_.td=function eEb(a){WDb(this.a,BD(a,46))};var SM=mdb(Gke,Oke,1691);bcb(1791,1,{},fEb);_.Me=function gEb(a){var b,c,d,e,f,g,h;for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),57);b.c.$b()}for(e=new olb(a.a.b);e.a<e.c.c.length;){d=BD(mlb(e),57);for(g=new olb(a.a.b);g.a<g.c.c.length;){f=BD(mlb(g),57);if(d==f){continue}if(!!d.a&&d.a==f.a){continue}fad(a.d)?(h=a.g.Pe(d,f)):(h=a.g.Oe(d,f));(f.d.c>d.d.c||d.d.c==f.d.c&&d.d.b<f.d.b)&&BDb(f.d.d+f.d.a+h,d.d.d)&&DDb(f.d.d,d.d.d+d.d.a+h)&&d.c.Fc(f)}}};var UM=mdb(Gke,'QuadraticConstraintCalculation',1791);bcb(522,1,{522:1},lEb);_.a=false;_.b=false;_.c=false;_.d=false;var VM=mdb(Gke,Pke,522);bcb(803,1,{},oEb);_.Me=function pEb(a){this.c=a;nEb(this,new GEb)};var _M=mdb(Gke,Qke,803);bcb(1718,1,{679:1},uEb);_.Ke=function vEb(a){rEb(this,BD(a,464))};var XM=mdb(Gke,Rke,1718);bcb(1719,1,Dke,xEb);_.ue=function yEb(a,b){return wEb(BD(a,57),BD(b,57))};_.Fb=function zEb(a){return this===a};_.ve=function AEb(){return new tpb(this)};var WM=mdb(Gke,Ske,1719);bcb(464,1,{464:1},BEb);_.a=false;var YM=mdb(Gke,Tke,464);bcb(1720,1,Dke,CEb);_.ue=function DEb(a,b){return qEb(BD(a,464),BD(b,464))};_.Fb=function EEb(a){return this===a};_.ve=function FEb(){return new tpb(this)};var ZM=mdb(Gke,Uke,1720);bcb(1721,1,Vke,GEb);_.Lb=function HEb(a){return BD(a,57),true};_.Fb=function IEb(a){return this===a};_.Mb=function JEb(a){return BD(a,57),true};var $M=mdb(Gke,'ScanlineConstraintCalculator/lambda$1$Type',1721);bcb(428,22,{3:1,35:1,22:1,428:1},NEb);var KEb,LEb;var aN=ndb(Wke,'HighLevelSortingCriterion',428,CI,PEb,OEb);var QEb;bcb(427,22,{3:1,35:1,22:1,427:1},VEb);var SEb,TEb;var bN=ndb(Wke,'LowLevelSortingCriterion',427,CI,XEb,WEb);var YEb;var C0=odb(Xke,'ILayoutMetaDataProvider');bcb(853,1,ale,gFb);_.Qe=function hFb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yke),ble),'Polyomino Traversal Strategy'),'Traversal strategy for trying different candidate positions for polyominoes.'),eFb),(_5c(),V5c)),dN),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zke),ble),'Polyomino Secondary Sorting Criterion'),'Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion.'),cFb),V5c),bN),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$ke),ble),'Polyomino Primary Sorting Criterion'),'Possible primary sorting criteria for the processing order of polyominoes.'),aFb),V5c),aN),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_ke),ble),'Fill Polyominoes'),'Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area.'),(Bcb(),true)),T5c),wI),pqb(L5c))))};var $Eb,_Eb,aFb,bFb,cFb,dFb,eFb;var cN=mdb(Wke,'PolyominoOptions',853);bcb(250,22,{3:1,35:1,22:1,250:1},sFb);var iFb,jFb,kFb,lFb,mFb,nFb,oFb,pFb,qFb;var dN=ndb(Wke,'TraversalStrategy',250,CI,uFb,tFb);var vFb;bcb(213,1,{213:1},yFb);_.Ib=function zFb(){return 'NEdge[id='+this.b+' w='+this.g+' d='+this.a+']'};_.a=1;_.b=0;_.c=0;_.f=false;_.g=0;var fN=mdb(cle,'NEdge',213);bcb(176,1,{},FFb);var eN=mdb(cle,'NEdge/NEdgeBuilder',176);bcb(653,1,{},KFb);var gN=mdb(cle,'NGraph',653);bcb(121,1,{121:1},MFb);_.c=-1;_.d=0;_.e=0;_.i=-1;_.j=false;var jN=mdb(cle,'NNode',121);bcb(795,1,cke,PFb);_.Jc=function XFb(a){reb(this,a)};_.Lc=function cGb(){return new YAb(null,new Kub(this,16))};_.ad=function hGb(a){ktb(this,a)};_.Nc=function iGb(){return new Kub(this,16)};_.Oc=function jGb(){return new YAb(null,new Kub(this,16))};_.Vc=function QFb(a,b){++this.b;Dkb(this.a,a,b)};_.Fc=function RFb(a){return NFb(this,a)};_.Wc=function SFb(a,b){++this.b;return Fkb(this.a,a,b)};_.Gc=function TFb(a){++this.b;return Gkb(this.a,a)};_.$b=function UFb(){++this.b;this.a.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function VFb(a){return Jkb(this.a,a,0)!=-1};_.Ic=function WFb(a){return Be(this.a,a)};_.Xb=function YFb(a){return Ikb(this.a,a)};_.Xc=function ZFb(a){return Jkb(this.a,a,0)};_.dc=function $Fb(){return this.a.c.length==0};_.Kc=function _Fb(){return vr(new olb(this.a))};_.Yc=function aGb(){throw vbb(new bgb)};_.Zc=function bGb(a){throw vbb(new bgb)};_.$c=function dGb(a){++this.b;return Kkb(this.a,a)};_.Mc=function eGb(a){return OFb(this,a)};_._c=function fGb(a,b){++this.b;return Nkb(this.a,a,b)};_.gc=function gGb(){return this.a.c.length};_.bd=function kGb(a,b){return new Jib(this.a,a,b)};_.Pc=function lGb(){return Pkb(this.a)};_.Qc=function mGb(a){return Qkb(this.a,a)};_.b=0;var hN=mdb(cle,'NNode/ChangeAwareArrayList',795);bcb(269,1,{},pGb);var iN=mdb(cle,'NNode/NNodeBuilder',269);bcb(1630,1,{},KGb);_.a=false;_.f=Ohe;_.j=0;var kN=mdb(cle,'NetworkSimplex',1630);bcb(1294,1,qie,QGb);_.td=function RGb(a){PGb(this.a,BD(a,680),true,false)};var lN=mdb(ele,'NodeLabelAndSizeCalculator/lambda$0$Type',1294);bcb(558,1,{},YGb);_.b=true;_.c=true;_.d=true;_.e=true;var mN=mdb(ele,'NodeMarginCalculator',558);bcb(212,1,{212:1});_.j=false;_.k=false;var oN=mdb(fle,'Cell',212);bcb(124,212,{124:1,212:1},aHb);_.Re=function bHb(){return _Gb(this)};_.Se=function cHb(){var a;a=this.n;return this.a.a+a.b+a.c};var nN=mdb(fle,'AtomicCell',124);bcb(232,22,{3:1,35:1,22:1,232:1},hHb);var dHb,eHb,fHb;var pN=ndb(fle,'ContainerArea',232,CI,jHb,iHb);var kHb;bcb(326,212,hle);var qN=mdb(fle,'ContainerCell',326);bcb(1473,326,hle,FHb);_.Re=function GHb(){var a;a=0;this.e?this.b?(a=this.b.b):!!this.a[1][1]&&(a=this.a[1][1].Re()):(a=EHb(this,AHb(this,true)));return a>0?a+this.n.d+this.n.a:0};_.Se=function HHb(){var a,b,c,d,e;e=0;if(this.e){this.b?(e=this.b.a):!!this.a[1][1]&&(e=this.a[1][1].Se())}else if(this.g){e=EHb(this,yHb(this,null,true))}else{for(b=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),c=0,d=b.length;c<d;++c){a=b[c];e=$wnd.Math.max(e,EHb(this,yHb(this,a,true)))}}return e>0?e+this.n.b+this.n.c:0};_.Te=function IHb(){var a,b,c,d,e;if(this.g){a=yHb(this,null,false);for(c=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),d=0,e=c.length;d<e;++d){b=c[d];wHb(this,b,a)}}else{for(c=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),d=0,e=c.length;d<e;++d){b=c[d];a=yHb(this,b,false);wHb(this,b,a)}}};_.Ue=function JHb(){var a,b,c,d;b=this.i;a=this.n;d=AHb(this,false);uHb(this,(gHb(),dHb),b.d+a.d,d);uHb(this,fHb,b.d+b.a-a.a-d[2],d);c=b.a-a.d-a.a;if(d[0]>0){d[0]+=this.d;c-=d[0]}if(d[2]>0){d[2]+=this.d;c-=d[2]}this.c.a=$wnd.Math.max(0,c);this.c.d=b.d+a.d+(this.c.a-c)/2;d[1]=$wnd.Math.max(d[1],c);uHb(this,eHb,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var rHb=0,sHb=0;var rN=mdb(fle,'GridContainerCell',1473);bcb(461,22,{3:1,35:1,22:1,461:1},OHb);var KHb,LHb,MHb;var sN=ndb(fle,'HorizontalLabelAlignment',461,CI,QHb,PHb);var RHb;bcb(306,212,{212:1,306:1},aIb,bIb,cIb);_.Re=function dIb(){return YHb(this)};_.Se=function eIb(){return ZHb(this)};_.a=0;_.c=false;var tN=mdb(fle,'LabelCell',306);bcb(244,326,{212:1,326:1,244:1},mIb);_.Re=function nIb(){return fIb(this)};_.Se=function oIb(){return gIb(this)};_.Te=function rIb(){hIb(this)};_.Ue=function sIb(){iIb(this)};_.b=0;_.c=0;_.d=false;var yN=mdb(fle,'StripContainerCell',244);bcb(1626,1,Oie,tIb);_.Mb=function uIb(a){return pIb(BD(a,212))};var uN=mdb(fle,'StripContainerCell/lambda$0$Type',1626);bcb(1627,1,{},vIb);_.Fe=function wIb(a){return BD(a,212).Se()};var vN=mdb(fle,'StripContainerCell/lambda$1$Type',1627);bcb(1628,1,Oie,xIb);_.Mb=function yIb(a){return qIb(BD(a,212))};var wN=mdb(fle,'StripContainerCell/lambda$2$Type',1628);bcb(1629,1,{},zIb);_.Fe=function AIb(a){return BD(a,212).Re()};var xN=mdb(fle,'StripContainerCell/lambda$3$Type',1629);bcb(462,22,{3:1,35:1,22:1,462:1},FIb);var BIb,CIb,DIb;var zN=ndb(fle,'VerticalLabelAlignment',462,CI,HIb,GIb);var IIb;bcb(789,1,{},LIb);_.c=0;_.d=0;_.k=0;_.s=0;_.t=0;_.v=false;_.w=0;_.D=false;var CN=mdb(nle,'NodeContext',789);bcb(1471,1,Dke,OIb);_.ue=function PIb(a,b){return NIb(BD(a,61),BD(b,61))};_.Fb=function QIb(a){return this===a};_.ve=function RIb(){return new tpb(this)};var AN=mdb(nle,'NodeContext/0methodref$comparePortSides$Type',1471);bcb(1472,1,Dke,SIb);_.ue=function TIb(a,b){return MIb(BD(a,111),BD(b,111))};_.Fb=function UIb(a){return this===a};_.ve=function VIb(){return new tpb(this)};var BN=mdb(nle,'NodeContext/1methodref$comparePortContexts$Type',1472);bcb(159,22,{3:1,35:1,22:1,159:1},tJb);var WIb,XIb,YIb,ZIb,$Ib,_Ib,aJb,bJb,cJb,dJb,eJb,fJb,gJb,hJb,iJb,jJb,kJb,lJb,mJb,nJb,oJb,pJb;var DN=ndb(nle,'NodeLabelLocation',159,CI,wJb,vJb);var xJb;bcb(111,1,{111:1},AJb);_.a=false;var EN=mdb(nle,'PortContext',111);bcb(1476,1,qie,TJb);_.td=function UJb(a){WHb(BD(a,306))};var FN=mdb(qle,rle,1476);bcb(1477,1,Oie,VJb);_.Mb=function WJb(a){return !!BD(a,111).c};var GN=mdb(qle,sle,1477);bcb(1478,1,qie,XJb);_.td=function YJb(a){WHb(BD(a,111).c)};var HN=mdb(qle,'LabelPlacer/lambda$2$Type',1478);var ZJb;bcb(1475,1,qie,fKb);_.td=function gKb(a){$Jb();zJb(BD(a,111))};var IN=mdb(qle,'NodeLabelAndSizeUtilities/lambda$0$Type',1475);bcb(790,1,qie,mKb);_.td=function nKb(a){kKb(this.b,this.c,this.a,BD(a,181))};_.a=false;_.c=false;var JN=mdb(qle,'NodeLabelCellCreator/lambda$0$Type',790);bcb(1474,1,qie,tKb);_.td=function uKb(a){sKb(this.a,BD(a,181))};var KN=mdb(qle,'PortContextCreator/lambda$0$Type',1474);var BKb;bcb(1829,1,{},VKb);var MN=mdb(ule,'GreedyRectangleStripOverlapRemover',1829);bcb(1830,1,Dke,XKb);_.ue=function YKb(a,b){return WKb(BD(a,222),BD(b,222))};_.Fb=function ZKb(a){return this===a};_.ve=function $Kb(){return new tpb(this)};var LN=mdb(ule,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1830);bcb(1786,1,{},fLb);_.a=5;_.e=0;var SN=mdb(ule,'RectangleStripOverlapRemover',1786);bcb(1787,1,Dke,jLb);_.ue=function kLb(a,b){return gLb(BD(a,222),BD(b,222))};_.Fb=function lLb(a){return this===a};_.ve=function mLb(){return new tpb(this)};var NN=mdb(ule,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1787);bcb(1789,1,Dke,nLb);_.ue=function oLb(a,b){return hLb(BD(a,222),BD(b,222))};_.Fb=function pLb(a){return this===a};_.ve=function qLb(){return new tpb(this)};var ON=mdb(ule,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1789);bcb(406,22,{3:1,35:1,22:1,406:1},wLb);var rLb,sLb,tLb,uLb;var PN=ndb(ule,'RectangleStripOverlapRemover/OverlapRemovalDirection',406,CI,yLb,xLb);var zLb;bcb(222,1,{222:1},BLb);var QN=mdb(ule,'RectangleStripOverlapRemover/RectangleNode',222);bcb(1788,1,qie,CLb);_.td=function DLb(a){aLb(this.a,BD(a,222))};var RN=mdb(ule,'RectangleStripOverlapRemover/lambda$1$Type',1788);bcb(1304,1,Dke,GLb);_.ue=function HLb(a,b){return FLb(BD(a,167),BD(b,167))};_.Fb=function ILb(a){return this===a};_.ve=function JLb(){return new tpb(this)};var WN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator',1304);bcb(1307,1,{},KLb);_.Kb=function LLb(a){return BD(a,324).a};var TN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type',1307);bcb(1308,1,Oie,MLb);_.Mb=function NLb(a){return BD(a,323).a};var UN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type',1308);bcb(1309,1,Oie,OLb);_.Mb=function PLb(a){return BD(a,323).a};var VN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type',1309);bcb(1302,1,Dke,RLb);_.ue=function SLb(a,b){return QLb(BD(a,167),BD(b,167))};_.Fb=function TLb(a){return this===a};_.ve=function ULb(){return new tpb(this)};var YN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator',1302);bcb(1305,1,{},VLb);_.Kb=function WLb(a){return BD(a,324).a};var XN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type',1305);bcb(767,1,Dke,YLb);_.ue=function ZLb(a,b){return XLb(BD(a,167),BD(b,167))};_.Fb=function $Lb(a){return this===a};_.ve=function _Lb(){return new tpb(this)};var ZN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionsComparator',767);bcb(1300,1,Dke,bMb);_.ue=function cMb(a,b){return aMb(BD(a,321),BD(b,321))};_.Fb=function dMb(a){return this===a};_.ve=function eMb(){return new tpb(this)};var _N=mdb(wle,'PolyominoCompactor/MinPerimeterComparator',1300);bcb(1301,1,Dke,gMb);_.ue=function hMb(a,b){return fMb(BD(a,321),BD(b,321))};_.Fb=function iMb(a){return this===a};_.ve=function jMb(){return new tpb(this)};var $N=mdb(wle,'PolyominoCompactor/MinPerimeterComparatorWithShape',1301);bcb(1303,1,Dke,lMb);_.ue=function mMb(a,b){return kMb(BD(a,167),BD(b,167))};_.Fb=function nMb(a){return this===a};_.ve=function oMb(){return new tpb(this)};var bO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator',1303);bcb(1306,1,{},pMb);_.Kb=function qMb(a){return BD(a,324).a};var aO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type',1306);bcb(777,1,{},tMb);_.Ce=function uMb(a,b){return sMb(this,BD(a,46),BD(b,167))};var cO=mdb(wle,'SuccessorCombination',777);bcb(644,1,{},wMb);_.Ce=function xMb(a,b){var c;return vMb((c=BD(a,46),BD(b,167),c))};var dO=mdb(wle,'SuccessorJitter',644);bcb(643,1,{},zMb);_.Ce=function AMb(a,b){var c;return yMb((c=BD(a,46),BD(b,167),c))};var eO=mdb(wle,'SuccessorLineByLine',643);bcb(568,1,{},CMb);_.Ce=function DMb(a,b){var c;return BMb((c=BD(a,46),BD(b,167),c))};var fO=mdb(wle,'SuccessorManhattan',568);bcb(1356,1,{},FMb);_.Ce=function GMb(a,b){var c;return EMb((c=BD(a,46),BD(b,167),c))};var gO=mdb(wle,'SuccessorMaxNormWindingInMathPosSense',1356);bcb(400,1,{},JMb);_.Ce=function KMb(a,b){return HMb(this,a,b)};_.c=false;_.d=false;_.e=false;_.f=false;var iO=mdb(wle,'SuccessorQuadrantsGeneric',400);bcb(1357,1,{},LMb);_.Kb=function MMb(a){return BD(a,324).a};var hO=mdb(wle,'SuccessorQuadrantsGeneric/lambda$0$Type',1357);bcb(323,22,{3:1,35:1,22:1,323:1},SMb);_.a=false;var NMb,OMb,PMb,QMb;var jO=ndb(Ble,Cle,323,CI,UMb,TMb);var VMb;bcb(1298,1,{});_.Ib=function bNb(){var a,b,c,d,e,f;c=' ';a=meb(0);for(e=0;e<this.o;e++){c+=''+a.a;a=meb(XMb(a.a))}c+='\n';a=meb(0);for(f=0;f<this.p;f++){c+=''+a.a;a=meb(XMb(a.a));for(d=0;d<this.o;d++){b=_Mb(this,d,f);ybb(b,0)==0?(c+='_'):ybb(b,1)==0?(c+='X'):(c+='0')}c+='\n'}return qfb(c,0,c.length-1)};_.o=0;_.p=0;var nO=mdb(Ble,'TwoBitGrid',1298);bcb(321,1298,{321:1},pNb);_.j=0;_.k=0;var kO=mdb(Ble,'PlanarGrid',321);bcb(167,321,{321:1,167:1});_.g=0;_.i=0;var lO=mdb(Ble,'Polyomino',167);var P3=odb(Hle,Ile);bcb(134,1,Jle,zNb);_.Ye=function DNb(a,b){return xNb(this,a,b)};_.Ve=function ANb(){return uNb(this)};_.We=function BNb(a){return vNb(this,a)};_.Xe=function CNb(a){return wNb(this,a)};var R3=mdb(Hle,'MapPropertyHolder',134);bcb(1299,134,Jle,ENb);var mO=mdb(Ble,'Polyominoes',1299);var FNb=false,GNb,HNb;bcb(1766,1,qie,PNb);_.td=function QNb(a){JNb(BD(a,221))};var oO=mdb(Kle,'DepthFirstCompaction/0methodref$compactTree$Type',1766);bcb(810,1,qie,RNb);_.td=function SNb(a){MNb(this.a,BD(a,221))};var pO=mdb(Kle,'DepthFirstCompaction/lambda$1$Type',810);bcb(1767,1,qie,TNb);_.td=function UNb(a){NNb(this.a,this.b,this.c,BD(a,221))};var qO=mdb(Kle,'DepthFirstCompaction/lambda$2$Type',1767);var VNb,WNb;bcb(65,1,{65:1},aOb);var rO=mdb(Kle,'Node',65);bcb(1250,1,{},dOb);var wO=mdb(Kle,'ScanlineOverlapCheck',1250);bcb(1251,1,{679:1},hOb);_.Ke=function iOb(a){fOb(this,BD(a,440))};var tO=mdb(Kle,'ScanlineOverlapCheck/OverlapsScanlineHandler',1251);bcb(1252,1,Dke,kOb);_.ue=function lOb(a,b){return jOb(BD(a,65),BD(b,65))};_.Fb=function mOb(a){return this===a};_.ve=function nOb(){return new tpb(this)};var sO=mdb(Kle,'ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type',1252);bcb(440,1,{440:1},oOb);_.a=false;var uO=mdb(Kle,'ScanlineOverlapCheck/Timestamp',440);bcb(1253,1,Dke,pOb);_.ue=function qOb(a,b){return eOb(BD(a,440),BD(b,440))};_.Fb=function rOb(a){return this===a};_.ve=function sOb(){return new tpb(this)};var vO=mdb(Kle,'ScanlineOverlapCheck/lambda$0$Type',1253);bcb(550,1,{},tOb);var xO=mdb(Lle,'SVGImage',550);bcb(324,1,{324:1},uOb);_.Ib=function vOb(){return '('+this.a+She+this.b+She+this.c+')'};var yO=mdb(Lle,'UniqueTriple',324);bcb(209,1,Mle);var g0=mdb(Nle,'AbstractLayoutProvider',209);bcb(1132,209,Mle,yOb);_.Ze=function zOb(a,b){var c,d,e,f;Odd(b,Ole,1);this.a=Edb(ED(hkd(a,(CPb(),BPb))));if(ikd(a,rPb)){e=GD(hkd(a,rPb));c=h4c(n4c(),e);if(c){d=BD(hgd(c.f),209);d.Ze(a,Udd(b,1))}}f=new AQb(this.a);this.b=yQb(f,a);switch(BD(hkd(a,(nPb(),jPb)),481).g){case 0:BOb(new FOb,this.b);jkd(a,uPb,vNb(this.b,uPb));break;default:Zfb();}qQb(f);jkd(a,tPb,this.b);Qdd(b)};_.a=0;var zO=mdb(Ple,'DisCoLayoutProvider',1132);bcb(1244,1,{},FOb);_.c=false;_.e=0;_.f=0;var AO=mdb(Ple,'DisCoPolyominoCompactor',1244);bcb(561,1,{561:1},MOb);_.b=true;var BO=mdb(Qle,'DCComponent',561);bcb(394,22,{3:1,35:1,22:1,394:1},SOb);_.a=false;var NOb,OOb,POb,QOb;var CO=ndb(Qle,'DCDirection',394,CI,UOb,TOb);var VOb;bcb(266,134,{3:1,266:1,94:1,134:1},XOb);var DO=mdb(Qle,'DCElement',266);bcb(395,1,{395:1},ZOb);_.c=0;var EO=mdb(Qle,'DCExtension',395);bcb(755,134,Jle,aPb);var FO=mdb(Qle,'DCGraph',755);bcb(481,22,{3:1,35:1,22:1,481:1},dPb);var bPb;var GO=ndb(Rle,Sle,481,CI,fPb,ePb);var gPb;bcb(854,1,ale,oPb);_.Qe=function pPb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tle),Xle),'Connected Components Compaction Strategy'),'Strategy for packing different connected components in order to save space and enhance readability of a graph.'),kPb),(_5c(),V5c)),GO),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Ule),Xle),'Connected Components Layout Algorithm'),"A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."),Z5c),ZI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Vle),'debug'),'DCGraph'),'Access to the DCGraph is intended for the debug view,'),Y5c),SI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Wle),'debug'),'List of Polyominoes'),'Access to the polyominoes is intended for the debug view,'),Y5c),SI),pqb(L5c))));DPb((new EPb,a))};var iPb,jPb,kPb,lPb,mPb;var HO=mdb(Rle,'DisCoMetaDataProvider',854);bcb(998,1,ale,EPb);_.Qe=function FPb(a){DPb(a)};var qPb,rPb,sPb,tPb,uPb,vPb,wPb,xPb,yPb,zPb,APb,BPb;var JO=mdb(Rle,'DisCoOptions',998);bcb(999,1,{},GPb);_.$e=function HPb(){var a;return a=new yOb,a};_._e=function IPb(a){};var IO=mdb(Rle,'DisCoOptions/DiscoFactory',999);bcb(562,167,{321:1,167:1,562:1},MPb);_.a=0;_.b=0;_.c=0;_.d=0;var KO=mdb('org.eclipse.elk.alg.disco.structures','DCPolyomino',562);var NPb,OPb,PPb;bcb(1268,1,Oie,aQb);_.Mb=function bQb(a){return _Pb(a)};var LO=mdb(bme,'ElkGraphComponentsProcessor/lambda$0$Type',1268);bcb(1269,1,{},cQb);_.Kb=function dQb(a){return QPb(),jtd(BD(a,79))};var MO=mdb(bme,'ElkGraphComponentsProcessor/lambda$1$Type',1269);bcb(1270,1,Oie,eQb);_.Mb=function fQb(a){return WPb(BD(a,79))};var NO=mdb(bme,'ElkGraphComponentsProcessor/lambda$2$Type',1270);bcb(1271,1,{},gQb);_.Kb=function hQb(a){return QPb(),ltd(BD(a,79))};var OO=mdb(bme,'ElkGraphComponentsProcessor/lambda$3$Type',1271);bcb(1272,1,Oie,iQb);_.Mb=function jQb(a){return XPb(BD(a,79))};var PO=mdb(bme,'ElkGraphComponentsProcessor/lambda$4$Type',1272);bcb(1273,1,Oie,kQb);_.Mb=function lQb(a){return YPb(this.a,BD(a,79))};var QO=mdb(bme,'ElkGraphComponentsProcessor/lambda$5$Type',1273);bcb(1274,1,{},mQb);_.Kb=function nQb(a){return ZPb(this.a,BD(a,79))};var RO=mdb(bme,'ElkGraphComponentsProcessor/lambda$6$Type',1274);bcb(1241,1,{},AQb);_.a=0;var UO=mdb(bme,'ElkGraphTransformer',1241);bcb(1242,1,{},CQb);_.Od=function DQb(a,b){BQb(this,BD(a,160),BD(b,266))};var TO=mdb(bme,'ElkGraphTransformer/OffsetApplier',1242);bcb(1243,1,qie,FQb);_.td=function GQb(a){EQb(this,BD(a,8))};var SO=mdb(bme,'ElkGraphTransformer/OffsetApplier/OffSetToChainApplier',1243);bcb(753,1,{},MQb);var WO=mdb(gme,hme,753);bcb(1232,1,Dke,OQb);_.ue=function PQb(a,b){return NQb(BD(a,231),BD(b,231))};_.Fb=function QQb(a){return this===a};_.ve=function RQb(){return new tpb(this)};var VO=mdb(gme,ime,1232);bcb(740,209,Mle,ZQb);_.Ze=function $Qb(a,b){WQb(this,a,b)};var XO=mdb(gme,'ForceLayoutProvider',740);bcb(357,134,{3:1,357:1,94:1,134:1});var bP=mdb(jme,'FParticle',357);bcb(559,357,{3:1,559:1,357:1,94:1,134:1},aRb);_.Ib=function bRb(){var a;if(this.a){a=Jkb(this.a.a,this,0);return a>=0?'b'+a+'['+fRb(this.a)+']':'b['+fRb(this.a)+']'}return 'b_'+FCb(this)};var YO=mdb(jme,'FBendpoint',559);bcb(282,134,{3:1,282:1,94:1,134:1},gRb);_.Ib=function hRb(){return fRb(this)};var ZO=mdb(jme,'FEdge',282);bcb(231,134,{3:1,231:1,94:1,134:1},kRb);var $O=mdb(jme,'FGraph',231);bcb(447,357,{3:1,447:1,357:1,94:1,134:1},mRb);_.Ib=function nRb(){return this.b==null||this.b.length==0?'l['+fRb(this.a)+']':'l_'+this.b};var _O=mdb(jme,'FLabel',447);bcb(144,357,{3:1,144:1,357:1,94:1,134:1},pRb);_.Ib=function qRb(){return oRb(this)};_.b=0;var aP=mdb(jme,'FNode',144);bcb(2003,1,{});_.bf=function vRb(a){rRb(this,a)};_.cf=function wRb(){sRb(this)};_.d=0;var cP=mdb(lme,'AbstractForceModel',2003);bcb(631,2003,{631:1},xRb);_.af=function zRb(a,b){var c,d,e,f,g;uRb(this.f,a,b);e=c7c(R6c(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-U6c(a.e)/2-U6c(b.e)/2);c=jRb(this.e,a,b);c>0?(f=-yRb(d,this.c)*c):(f=CRb(d,this.b)*BD(vNb(a,(wSb(),oSb)),19).a);Y6c(e,f/g);return e};_.bf=function ARb(a){rRb(this,a);this.a=BD(vNb(a,(wSb(),eSb)),19).a;this.c=Edb(ED(vNb(a,uSb)));this.b=Edb(ED(vNb(a,qSb)))};_.df=function BRb(a){return a<this.a};_.a=0;_.b=0;_.c=0;var dP=mdb(lme,'EadesModel',631);bcb(632,2003,{632:1},DRb);_.af=function FRb(a,b){var c,d,e,f,g;uRb(this.f,a,b);e=c7c(R6c(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-U6c(a.e)/2-U6c(b.e)/2);f=JRb(d,this.a)*BD(vNb(a,(wSb(),oSb)),19).a;c=jRb(this.e,a,b);c>0&&(f-=ERb(d,this.a)*c);Y6c(e,f*this.b/g);return e};_.bf=function GRb(a){var b,c,d,e,f,g,h;rRb(this,a);this.b=Edb(ED(vNb(a,(wSb(),vSb))));this.c=this.b/BD(vNb(a,eSb),19).a;d=a.e.c.length;f=0;e=0;for(h=new olb(a.e);h.a<h.c.c.length;){g=BD(mlb(h),144);f+=g.e.a;e+=g.e.b}b=f*e;c=Edb(ED(vNb(a,uSb)))*ple;this.a=$wnd.Math.sqrt(b/(2*d))*c};_.cf=function HRb(){sRb(this);this.b-=this.c};_.df=function IRb(a){return this.b>0};_.a=0;_.b=0;_.c=0;var eP=mdb(lme,'FruchtermanReingoldModel',632);bcb(849,1,ale,TRb);_.Qe=function URb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mme),''),'Force Model'),'Determines the model for force calculation.'),MRb),(_5c(),V5c)),gP),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nme),''),'Iterations'),'The number of iterations on the force model.'),meb(300)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ome),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pme),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),qme),U5c),BI),pqb(L5c))));o4c(a,pme,mme,RRb);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rme),''),'Eades Repulsion'),"Factor for repulsive forces in Eades' model."),5),U5c),BI),pqb(L5c))));o4c(a,rme,mme,ORb);xSb((new ySb,a))};var KRb,LRb,MRb,NRb,ORb,PRb,QRb,RRb;var fP=mdb(sme,'ForceMetaDataProvider',849);bcb(424,22,{3:1,35:1,22:1,424:1},YRb);var VRb,WRb;var gP=ndb(sme,'ForceModelStrategy',424,CI,$Rb,ZRb);var _Rb;bcb(988,1,ale,ySb);_.Qe=function zSb(a){xSb(a)};var bSb,cSb,dSb,eSb,fSb,gSb,hSb,iSb,jSb,kSb,lSb,mSb,nSb,oSb,pSb,qSb,rSb,sSb,tSb,uSb,vSb;var iP=mdb(sme,'ForceOptions',988);bcb(989,1,{},ASb);_.$e=function BSb(){var a;return a=new ZQb,a};_._e=function CSb(a){};var hP=mdb(sme,'ForceOptions/ForceFactory',989);var DSb,ESb,FSb,GSb;bcb(850,1,ale,PSb);_.Qe=function QSb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mme),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(Bcb(),false)),(_5c(),T5c)),wI),pqb((N5c(),K5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Nme),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ome),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),KSb),V5c),oP),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Pme),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),qme),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qme),''),'Iteration Limit'),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),meb(Ohe)),X5c),JI),pqb(L5c))));cTb((new dTb,a))};var ISb,JSb,KSb,LSb,MSb,NSb;var jP=mdb(sme,'StressMetaDataProvider',850);bcb(992,1,ale,dTb);_.Qe=function eTb(a){cTb(a)};var RSb,SSb,TSb,USb,VSb,WSb,XSb,YSb,ZSb,$Sb,_Sb,aTb;var lP=mdb(sme,'StressOptions',992);bcb(993,1,{},fTb);_.$e=function gTb(){var a;return a=new iTb,a};_._e=function hTb(a){};var kP=mdb(sme,'StressOptions/StressFactory',993);bcb(1128,209,Mle,iTb);_.Ze=function jTb(a,b){var c,d,e,f,g;Odd(b,Sme,1);Ccb(DD(hkd(a,(bTb(),VSb))))?Ccb(DD(hkd(a,_Sb)))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c)):WQb(new ZQb,a,Udd(b,1));e=TQb(a);d=LQb(this.a,e);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),231);if(f.e.c.length<=1){continue}sTb(this.b,f);qTb(this.b);Hkb(f.d,new kTb)}e=KQb(d);SQb(e);Qdd(b)};var nP=mdb(Ume,'StressLayoutProvider',1128);bcb(1129,1,qie,kTb);_.td=function lTb(a){lRb(BD(a,447))};var mP=mdb(Ume,'StressLayoutProvider/lambda$0$Type',1129);bcb(990,1,{},tTb);_.c=0;_.e=0;_.g=0;var qP=mdb(Ume,'StressMajorization',990);bcb(379,22,{3:1,35:1,22:1,379:1},zTb);var vTb,wTb,xTb;var oP=ndb(Ume,'StressMajorization/Dimension',379,CI,BTb,ATb);var CTb;bcb(991,1,Dke,ETb);_.ue=function FTb(a,b){return uTb(this.a,BD(a,144),BD(b,144))};_.Fb=function GTb(a){return this===a};_.ve=function HTb(){return new tpb(this)};var pP=mdb(Ume,'StressMajorization/lambda$0$Type',991);bcb(1229,1,{},PTb);var tP=mdb(Wme,'ElkLayered',1229);bcb(1230,1,qie,STb);_.td=function TTb(a){QTb(BD(a,37))};var rP=mdb(Wme,'ElkLayered/lambda$0$Type',1230);bcb(1231,1,qie,UTb);_.td=function VTb(a){RTb(this.a,BD(a,37))};var sP=mdb(Wme,'ElkLayered/lambda$1$Type',1231);bcb(1263,1,{},bUb);var WTb,XTb,YTb;var xP=mdb(Wme,'GraphConfigurator',1263);bcb(759,1,qie,dUb);_.td=function eUb(a){$Tb(this.a,BD(a,10))};var uP=mdb(Wme,'GraphConfigurator/lambda$0$Type',759);bcb(760,1,{},fUb);_.Kb=function gUb(a){return ZTb(),new YAb(null,new Kub(BD(a,29).a,16))};var vP=mdb(Wme,'GraphConfigurator/lambda$1$Type',760);bcb(761,1,qie,hUb);_.td=function iUb(a){$Tb(this.a,BD(a,10))};var wP=mdb(Wme,'GraphConfigurator/lambda$2$Type',761);bcb(1127,209,Mle,jUb);_.Ze=function kUb(a,b){var c;c=U1b(new a2b,a);PD(hkd(a,(Nyc(),axc)))===PD((hbd(),ebd))?JTb(this.a,c,b):KTb(this.a,c,b);z2b(new D2b,c)};var yP=mdb(Wme,'LayeredLayoutProvider',1127);bcb(356,22,{3:1,35:1,22:1,356:1},rUb);var lUb,mUb,nUb,oUb,pUb;var zP=ndb(Wme,'LayeredPhases',356,CI,tUb,sUb);var uUb;bcb(1651,1,{},CUb);_.i=0;var wUb;var CP=mdb(Xme,'ComponentsToCGraphTransformer',1651);var hVb;bcb(1652,1,{},DUb);_.ef=function EUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function FUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var AP=mdb(Xme,'ComponentsToCGraphTransformer/1',1652);bcb(81,1,{81:1});_.i=0;_.k=true;_.o=Qje;var IP=mdb(Yme,'CNode',81);bcb(460,81,{460:1,81:1},GUb,HUb);_.Ib=function IUb(){return ''};var BP=mdb(Xme,'ComponentsToCGraphTransformer/CRectNode',460);bcb(1623,1,{},VUb);var JUb,KUb;var FP=mdb(Xme,'OneDimensionalComponentsCompaction',1623);bcb(1624,1,{},YUb);_.Kb=function ZUb(a){return WUb(BD(a,46))};_.Fb=function $Ub(a){return this===a};var DP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$0$Type',1624);bcb(1625,1,{},_Ub);_.Kb=function aVb(a){return XUb(BD(a,46))};_.Fb=function bVb(a){return this===a};var EP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$1$Type',1625);bcb(1654,1,{},dVb);var GP=mdb(Yme,'CGraph',1654);bcb(189,1,{189:1},gVb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=Qje;var HP=mdb(Yme,'CGroup',189);bcb(1653,1,{},jVb);_.ef=function kVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function lVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var JP=mdb(Yme,Ike,1653);bcb(1655,1,{},CVb);_.d=false;var mVb;var LP=mdb(Yme,Nke,1655);bcb(1656,1,{},DVb);_.Kb=function EVb(a){return nVb(),Bcb(),BD(BD(a,46).a,81).d.e!=0?true:false};_.Fb=function FVb(a){return this===a};var KP=mdb(Yme,Oke,1656);bcb(823,1,{},IVb);_.a=false;_.b=false;_.c=false;_.d=false;var MP=mdb(Yme,Pke,823);bcb(1825,1,{},OVb);var RP=mdb(Zme,Qke,1825);var bQ=odb($me,Fke);bcb(1826,1,{369:1},SVb);_.Ke=function TVb(a){QVb(this,BD(a,466))};var OP=mdb(Zme,Rke,1826);bcb(1827,1,Dke,VVb);_.ue=function WVb(a,b){return UVb(BD(a,81),BD(b,81))};_.Fb=function XVb(a){return this===a};_.ve=function YVb(){return new tpb(this)};var NP=mdb(Zme,Ske,1827);bcb(466,1,{466:1},ZVb);_.a=false;var PP=mdb(Zme,Tke,466);bcb(1828,1,Dke,$Vb);_.ue=function _Vb(a,b){return PVb(BD(a,466),BD(b,466))};_.Fb=function aWb(a){return this===a};_.ve=function bWb(){return new tpb(this)};var QP=mdb(Zme,Uke,1828);bcb(140,1,{140:1},cWb,dWb);_.Fb=function eWb(a){var b;if(a==null){return false}if(TP!=rb(a)){return false}b=BD(a,140);return wtb(this.c,b.c)&&wtb(this.d,b.d)};_.Hb=function fWb(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.c,this.d]))};_.Ib=function gWb(){return '('+this.c+She+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var TP=mdb($me,'Point',140);bcb(405,22,{3:1,35:1,22:1,405:1},oWb);var hWb,iWb,jWb,kWb;var SP=ndb($me,'Point/Quadrant',405,CI,sWb,rWb);var tWb;bcb(1642,1,{},CWb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var vWb,wWb,xWb,yWb,zWb;var aQ=mdb($me,'RectilinearConvexHull',1642);bcb(574,1,{369:1},NWb);_.Ke=function OWb(a){MWb(this,BD(a,140))};_.b=0;var KWb;var VP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler',574);bcb(1644,1,Dke,QWb);_.ue=function RWb(a,b){return PWb(ED(a),ED(b))};_.Fb=function SWb(a){return this===a};_.ve=function TWb(){return new tpb(this)};var UP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1644);bcb(1643,1,{369:1},VWb);_.Ke=function WWb(a){UWb(this,BD(a,140))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var WP=mdb($me,'RectilinearConvexHull/RectangleEventHandler',1643);bcb(1645,1,Dke,XWb);_.ue=function YWb(a,b){return EWb(BD(a,140),BD(b,140))};_.Fb=function ZWb(a){return this===a};_.ve=function $Wb(){return new tpb(this)};var XP=mdb($me,'RectilinearConvexHull/lambda$0$Type',1645);bcb(1646,1,Dke,_Wb);_.ue=function aXb(a,b){return FWb(BD(a,140),BD(b,140))};_.Fb=function bXb(a){return this===a};_.ve=function cXb(){return new tpb(this)};var YP=mdb($me,'RectilinearConvexHull/lambda$1$Type',1646);bcb(1647,1,Dke,dXb);_.ue=function eXb(a,b){return GWb(BD(a,140),BD(b,140))};_.Fb=function fXb(a){return this===a};_.ve=function gXb(){return new tpb(this)};var ZP=mdb($me,'RectilinearConvexHull/lambda$2$Type',1647);bcb(1648,1,Dke,hXb);_.ue=function iXb(a,b){return HWb(BD(a,140),BD(b,140))};_.Fb=function jXb(a){return this===a};_.ve=function kXb(){return new tpb(this)};var $P=mdb($me,'RectilinearConvexHull/lambda$3$Type',1648);bcb(1649,1,Dke,lXb);_.ue=function mXb(a,b){return IWb(BD(a,140),BD(b,140))};_.Fb=function nXb(a){return this===a};_.ve=function oXb(){return new tpb(this)};var _P=mdb($me,'RectilinearConvexHull/lambda$4$Type',1649);bcb(1650,1,{},qXb);var cQ=mdb($me,'Scanline',1650);bcb(2005,1,{});var dQ=mdb(_me,'AbstractGraphPlacer',2005);bcb(325,1,{325:1},AXb);_.mf=function BXb(a){if(this.nf(a)){Rc(this.b,BD(vNb(a,(wtc(),Esc)),21),a);return true}else{return false}};_.nf=function CXb(a){var b,c,d,e;b=BD(vNb(a,(wtc(),Esc)),21);e=BD(Qc(wXb,b),21);for(d=e.Kc();d.Ob();){c=BD(d.Pb(),21);if(!BD(Qc(this.b,c),15).dc()){return false}}return true};var wXb;var gQ=mdb(_me,'ComponentGroup',325);bcb(765,2005,{},HXb);_.of=function IXb(a){var b,c;for(c=new olb(this.a);c.a<c.c.c.length;){b=BD(mlb(c),325);if(b.mf(a)){return}}Ekb(this.a,new AXb(a))};_.lf=function JXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;this.a.c=KC(SI,Uhe,1,0,5,1);b.a.c=KC(SI,Uhe,1,0,5,1);if(a.dc()){b.f.a=0;b.f.b=0;return}g=BD(a.Xb(0),37);tNb(b,g);for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);this.of(d)}o=new d7c;f=Edb(ED(vNb(g,(Nyc(),kyc))));for(j=new olb(this.a);j.a<j.c.c.length;){h=BD(mlb(j),325);k=DXb(h,f);vXb(Uc(h.b),o.a,o.b);o.a+=k.a;o.b+=k.b}b.f.a=o.a-f;b.f.b=o.b-f;if(Ccb(DD(vNb(g,qwc)))&&PD(vNb(g,Swc))===PD((Aad(),wad))){for(n=a.Kc();n.Ob();){l=BD(n.Pb(),37);uXb(l,l.c.a,l.c.b)}c=new gYb;YXb(c,a,f);for(m=a.Kc();m.Ob();){l=BD(m.Pb(),37);P6c(X6c(l.c),c.e)}P6c(X6c(b.f),c.a)}for(i=new olb(this.a);i.a<i.c.c.length;){h=BD(mlb(i),325);tXb(b,Uc(h.b))}};var eQ=mdb(_me,'ComponentGroupGraphPlacer',765);bcb(1293,765,{},LXb);_.of=function MXb(a){KXb(this,a)};_.lf=function NXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;this.a.c=KC(SI,Uhe,1,0,5,1);b.a.c=KC(SI,Uhe,1,0,5,1);if(a.dc()){b.f.a=0;b.f.b=0;return}g=BD(a.Xb(0),37);tNb(b,g);for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);KXb(this,d)}t=new d7c;s=new d7c;p=new d7c;o=new d7c;f=Edb(ED(vNb(g,(Nyc(),kyc))));for(j=new olb(this.a);j.a<j.c.c.length;){h=BD(mlb(j),325);if(fad(BD(vNb(b,(Y9c(),z8c)),103))){p.a=t.a;for(r=new Mv(Pc(Fc(h.b).a).a.kc());r.b.Ob();){q=BD(Lv(r.b.Pb()),21);if(q.Hc((Ucd(),Acd))){p.a=s.a;break}}}else if(gad(BD(vNb(b,z8c),103))){p.b=t.b;for(r=new Mv(Pc(Fc(h.b).a).a.kc());r.b.Ob();){q=BD(Lv(r.b.Pb()),21);if(q.Hc((Ucd(),Tcd))){p.b=s.b;break}}}k=DXb(BD(h,570),f);vXb(Uc(h.b),p.a,p.b);if(fad(BD(vNb(b,z8c),103))){s.a=p.a+k.a;o.a=$wnd.Math.max(o.a,s.a);for(r=new Mv(Pc(Fc(h.b).a).a.kc());r.b.Ob();){q=BD(Lv(r.b.Pb()),21);if(q.Hc((Ucd(),Rcd))){t.a=p.a+k.a;break}}s.b=p.b+k.b;p.b=s.b;o.b=$wnd.Math.max(o.b,p.b)}else if(gad(BD(vNb(b,z8c),103))){s.b=p.b+k.b;o.b=$wnd.Math.max(o.b,s.b);for(r=new Mv(Pc(Fc(h.b).a).a.kc());r.b.Ob();){q=BD(Lv(r.b.Pb()),21);if(q.Hc((Ucd(),zcd))){t.b=p.b+k.b;break}}s.a=p.a+k.a;p.a=s.a;o.a=$wnd.Math.max(o.a,p.a)}}b.f.a=o.a-f;b.f.b=o.b-f;if(Ccb(DD(vNb(g,qwc)))&&PD(vNb(g,Swc))===PD((Aad(),wad))){for(n=a.Kc();n.Ob();){l=BD(n.Pb(),37);uXb(l,l.c.a,l.c.b)}c=new gYb;YXb(c,a,f);for(m=a.Kc();m.Ob();){l=BD(m.Pb(),37);P6c(X6c(l.c),c.e)}P6c(X6c(b.f),c.a)}for(i=new olb(this.a);i.a<i.c.c.length;){h=BD(mlb(i),325);tXb(b,Uc(h.b))}};var fQ=mdb(_me,'ComponentGroupModelOrderGraphPlacer',1293);bcb(423,22,{3:1,35:1,22:1,423:1},SXb);var OXb,PXb,QXb;var hQ=ndb(_me,'ComponentOrderingStrategy',423,CI,UXb,TXb);var VXb;bcb(650,1,{},gYb);var pQ=mdb(_me,'ComponentsCompactor',650);bcb(1468,12,ake,jYb);_.Fc=function kYb(a){return hYb(this,BD(a,140))};var iQ=mdb(_me,'ComponentsCompactor/Hullpoints',1468);bcb(1465,1,{841:1},mYb);_.a=false;var jQ=mdb(_me,'ComponentsCompactor/InternalComponent',1465);bcb(1464,1,vie,nYb);_.Jc=function oYb(a){reb(this,a)};_.Kc=function pYb(){return new olb(this.a)};var kQ=mdb(_me,'ComponentsCompactor/InternalConnectedComponents',1464);bcb(1467,1,{594:1},qYb);_.hf=function sYb(){return null};_.jf=function tYb(){return this.a};_.gf=function rYb(){return cYb(this.d)};_.kf=function uYb(){return this.b};var lQ=mdb(_me,'ComponentsCompactor/InternalExternalExtension',1467);bcb(1466,1,{594:1},vYb);_.jf=function yYb(){return this.a};_.gf=function wYb(){return cYb(this.d)};_.hf=function xYb(){return this.c};_.kf=function zYb(){return this.b};var mQ=mdb(_me,'ComponentsCompactor/InternalUnionExternalExtension',1466);bcb(1470,1,{},AYb);var nQ=mdb(_me,'ComponentsCompactor/OuterSegments',1470);bcb(1469,1,{},BYb);var oQ=mdb(_me,'ComponentsCompactor/Segments',1469);bcb(1264,1,{},FYb);var rQ=mdb(_me,hme,1264);bcb(1265,1,Dke,HYb);_.ue=function IYb(a,b){return GYb(BD(a,37),BD(b,37))};_.Fb=function JYb(a){return this===a};_.ve=function KYb(){return new tpb(this)};var qQ=mdb(_me,'ComponentsProcessor/lambda$0$Type',1265);bcb(570,325,{325:1,570:1},PYb);_.mf=function QYb(a){return NYb(this,a)};_.nf=function RYb(a){return OYb(this,a)};var LYb;var sQ=mdb(_me,'ModelOrderComponentGroup',570);bcb(1291,2005,{},SYb);_.lf=function TYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;if(a.gc()==1){t=BD(a.Xb(0),37);if(t!=b){b.a.c=KC(SI,Uhe,1,0,5,1);sXb(b,t,0,0);tNb(b,t);u_b(b.d,t.d);b.f.a=t.f.a;b.f.b=t.f.b}return}else if(a.dc()){b.a.c=KC(SI,Uhe,1,0,5,1);b.f.a=0;b.f.b=0;return}if(PD(vNb(b,(Nyc(),twc)))===PD((RXb(),QXb))){for(i=a.Kc();i.Ob();){g=BD(i.Pb(),37);r=0;for(p=new olb(g.a);p.a<p.c.c.length;){o=BD(mlb(p),10);r+=BD(vNb(o,byc),19).a}g.p=r}mmb();a.ad(new VYb)}f=BD(a.Xb(0),37);b.a.c=KC(SI,Uhe,1,0,5,1);tNb(b,f);n=0;u=0;for(j=a.Kc();j.Ob();){g=BD(j.Pb(),37);s=g.f;n=$wnd.Math.max(n,s.a);u+=s.a*s.b}n=$wnd.Math.max(n,$wnd.Math.sqrt(u)*Edb(ED(vNb(b,owc))));e=Edb(ED(vNb(b,kyc)));v=0;w=0;m=0;c=e;for(h=a.Kc();h.Ob();){g=BD(h.Pb(),37);s=g.f;if(v+s.a>n){v=0;w+=m+e;m=0}q=g.c;uXb(g,v+q.a,w+q.b);X6c(q);c=$wnd.Math.max(c,v+s.a);m=$wnd.Math.max(m,s.b);v+=s.a+e}b.f.a=c;b.f.b=w+m;if(Ccb(DD(vNb(f,qwc)))){d=new gYb;YXb(d,a,e);for(l=a.Kc();l.Ob();){k=BD(l.Pb(),37);P6c(X6c(k.c),d.e)}P6c(X6c(b.f),d.a)}tXb(b,a)};var uQ=mdb(_me,'SimpleRowGraphPlacer',1291);bcb(1292,1,Dke,VYb);_.ue=function WYb(a,b){return UYb(BD(a,37),BD(b,37))};_.Fb=function XYb(a){return this===a};_.ve=function YYb(){return new tpb(this)};var tQ=mdb(_me,'SimpleRowGraphPlacer/1',1292);var ZYb;bcb(1262,1,Vke,dZb);_.Lb=function eZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};_.Fb=function fZb(a){return this===a};_.Mb=function gZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};var vQ=mdb(dne,'CompoundGraphPostprocessor/1',1262);bcb(1261,1,ene,wZb);_.pf=function xZb(a,b){qZb(this,BD(a,37),b)};var xQ=mdb(dne,'CompoundGraphPreprocessor',1261);bcb(441,1,{441:1},yZb);_.c=false;var wQ=mdb(dne,'CompoundGraphPreprocessor/ExternalPort',441);bcb(243,1,{243:1},BZb);_.Ib=function CZb(){return Zr(this.c)+':'+TZb(this.b)};var zQ=mdb(dne,'CrossHierarchyEdge',243);bcb(763,1,Dke,EZb);_.ue=function FZb(a,b){return DZb(this,BD(a,243),BD(b,243))};_.Fb=function GZb(a){return this===a};_.ve=function IZb(){return new tpb(this)};var yQ=mdb(dne,'CrossHierarchyEdgeComparator',763);bcb(299,134,{3:1,299:1,94:1,134:1});_.p=0;var JQ=mdb(fne,'LGraphElement',299);bcb(17,299,{3:1,17:1,299:1,94:1,134:1},UZb);_.Ib=function VZb(){return TZb(this)};var AQ=mdb(fne,'LEdge',17);bcb(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},XZb);_.Jc=function YZb(a){reb(this,a)};_.Kc=function ZZb(){return new olb(this.b)};_.Ib=function $Zb(){if(this.b.c.length==0){return 'G-unlayered'+Fe(this.a)}else if(this.a.c.length==0){return 'G-layered'+Fe(this.b)}return 'G[layerless'+Fe(this.a)+', layers'+Fe(this.b)+']'};var KQ=mdb(fne,'LGraph',37);var _Zb;bcb(657,1,{});_.qf=function b$b(){return this.e.n};_.We=function c$b(a){return vNb(this.e,a)};_.rf=function d$b(){return this.e.o};_.sf=function e$b(){return this.e.p};_.Xe=function f$b(a){return wNb(this.e,a)};_.tf=function g$b(a){this.e.n.a=a.a;this.e.n.b=a.b};_.uf=function h$b(a){this.e.o.a=a.a;this.e.o.b=a.b};_.vf=function i$b(a){this.e.p=a};var BQ=mdb(fne,'LGraphAdapters/AbstractLShapeAdapter',657);bcb(577,1,{839:1},j$b);_.wf=function k$b(){var a,b;if(!this.b){this.b=Pu(this.a.b.c.length);for(b=new olb(this.a.b);b.a<b.c.c.length;){a=BD(mlb(b),70);Ekb(this.b,new v$b(a))}}return this.b};_.b=null;var CQ=mdb(fne,'LGraphAdapters/LEdgeAdapter',577);bcb(656,1,{},l$b);_.xf=function m$b(){var a,b,c,d,e,f;if(!this.b){this.b=new Rkb;for(d=new olb(this.a.b);d.a<d.c.c.length;){c=BD(mlb(d),29);for(f=new olb(c.a);f.a<f.c.c.length;){e=BD(mlb(f),10);if(this.c.Mb(e)){Ekb(this.b,new x$b(this,e,this.e));if(this.d){if(wNb(e,(wtc(),vtc))){for(b=BD(vNb(e,vtc),15).Kc();b.Ob();){a=BD(b.Pb(),10);Ekb(this.b,new x$b(this,a,false))}}if(wNb(e,tsc)){for(b=BD(vNb(e,tsc),15).Kc();b.Ob();){a=BD(b.Pb(),10);Ekb(this.b,new x$b(this,a,false))}}}}}}}return this.b};_.qf=function n$b(){throw vbb(new cgb(hne))};_.We=function o$b(a){return vNb(this.a,a)};_.rf=function p$b(){return this.a.f};_.sf=function q$b(){return this.a.p};_.Xe=function r$b(a){return wNb(this.a,a)};_.tf=function s$b(a){throw vbb(new cgb(hne))};_.uf=function t$b(a){this.a.f.a=a.a;this.a.f.b=a.b};_.vf=function u$b(a){this.a.p=a};_.b=null;_.d=false;_.e=false;var DQ=mdb(fne,'LGraphAdapters/LGraphAdapter',656);bcb(576,657,{181:1},v$b);var EQ=mdb(fne,'LGraphAdapters/LLabelAdapter',576);bcb(575,657,{680:1},x$b);_.yf=function y$b(){return this.b};_.zf=function z$b(){return mmb(),mmb(),jmb};_.wf=function A$b(){var a,b;if(!this.a){this.a=Pu(BD(this.e,10).b.c.length);for(b=new olb(BD(this.e,10).b);b.a<b.c.c.length;){a=BD(mlb(b),70);Ekb(this.a,new v$b(a))}}return this.a};_.Af=function B$b(){var a;a=BD(this.e,10).d;return new J_b(a.d,a.c,a.a,a.b)};_.Bf=function C$b(){return mmb(),mmb(),jmb};_.Cf=function D$b(){var a,b;if(!this.c){this.c=Pu(BD(this.e,10).j.c.length);for(b=new olb(BD(this.e,10).j);b.a<b.c.c.length;){a=BD(mlb(b),11);Ekb(this.c,new I$b(a,this.d))}}return this.c};_.Df=function E$b(){return Ccb(DD(vNb(BD(this.e,10),(wtc(),wsc))))};_.Ef=function F$b(a){BD(this.e,10).d.b=a.b;BD(this.e,10).d.d=a.d;BD(this.e,10).d.c=a.c;BD(this.e,10).d.a=a.a};_.Ff=function G$b(a){BD(this.e,10).f.b=a.b;BD(this.e,10).f.d=a.d;BD(this.e,10).f.c=a.c;BD(this.e,10).f.a=a.a};_.Gf=function H$b(){w$b(this,(a$b(),_Zb))};_.a=null;_.b=null;_.c=null;_.d=false;var FQ=mdb(fne,'LGraphAdapters/LNodeAdapter',575);bcb(1722,657,{838:1},I$b);_.zf=function J$b(){var a,b,c,d;if(this.d&&BD(this.e,11).i.k==(j0b(),i0b)){return mmb(),mmb(),jmb}else if(!this.a){this.a=new Rkb;for(c=new olb(BD(this.e,11).e);c.a<c.c.c.length;){a=BD(mlb(c),17);Ekb(this.a,new j$b(a))}if(this.d){d=BD(vNb(BD(this.e,11),(wtc(),gtc)),10);if(d){for(b=new Sr(ur(R_b(d).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),17);Ekb(this.a,new j$b(a))}}}}return this.a};_.wf=function K$b(){var a,b;if(!this.b){this.b=Pu(BD(this.e,11).f.c.length);for(b=new olb(BD(this.e,11).f);b.a<b.c.c.length;){a=BD(mlb(b),70);Ekb(this.b,new v$b(a))}}return this.b};_.Bf=function L$b(){var a,b,c,d;if(this.d&&BD(this.e,11).i.k==(j0b(),i0b)){return mmb(),mmb(),jmb}else if(!this.c){this.c=new Rkb;for(c=new olb(BD(this.e,11).g);c.a<c.c.c.length;){a=BD(mlb(c),17);Ekb(this.c,new j$b(a))}if(this.d){d=BD(vNb(BD(this.e,11),(wtc(),gtc)),10);if(d){for(b=new Sr(ur(U_b(d).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),17);Ekb(this.c,new j$b(a))}}}}return this.c};_.Hf=function M$b(){return BD(this.e,11).j};_.If=function N$b(){return Ccb(DD(vNb(BD(this.e,11),(wtc(),Nsc))))};_.a=null;_.b=null;_.c=null;_.d=false;var GQ=mdb(fne,'LGraphAdapters/LPortAdapter',1722);bcb(1723,1,Dke,P$b);_.ue=function Q$b(a,b){return O$b(BD(a,11),BD(b,11))};_.Fb=function R$b(a){return this===a};_.ve=function S$b(){return new tpb(this)};var HQ=mdb(fne,'LGraphAdapters/PortComparator',1723);bcb(804,1,Oie,T$b);_.Mb=function U$b(a){return BD(a,10),a$b(),true};var IQ=mdb(fne,'LGraphAdapters/lambda$0$Type',804);bcb(392,299,{3:1,299:1,392:1,94:1,134:1});var bR=mdb(fne,'LShape',392);bcb(70,392,{3:1,299:1,70:1,392:1,94:1,134:1},p_b,q_b);_.Ib=function r_b(){var a;a=o_b(this);return a==null?'label':'l_'+a};var LQ=mdb(fne,'LLabel',70);bcb(207,1,{3:1,4:1,207:1,414:1});_.Fb=function C_b(a){var b;if(JD(a,207)){b=BD(a,207);return this.d==b.d&&this.a==b.a&&this.b==b.b&&this.c==b.c}else{return false}};_.Hb=function D_b(){var a,b;a=Hdb(this.b)<<16;a|=Hdb(this.a)&aje;b=Hdb(this.c)<<16;b|=Hdb(this.d)&aje;return a^b};_.Jf=function F_b(b){var c,d,e,f,g,h,i,j,k,l,m;g=0;while(g<b.length&&E_b((BCb(g,b.length),b.charCodeAt(g)),mne)){++g}c=b.length;while(c>0&&E_b((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(g<c){l=mfb(b.substr(g,c-g),',|;');try{for(i=l,j=0,k=i.length;j<k;++j){h=i[j];f=mfb(h,'=');if(f.length!=2){throw vbb(new Wdb('Expecting a list of key-value pairs.'))}e=ufb(f[0]);m=Hcb(ufb(f[1]));dfb(e,'top')?(this.d=m):dfb(e,'left')?(this.b=m):dfb(e,'bottom')?(this.a=m):dfb(e,'right')&&(this.c=m)}}catch(a){a=ubb(a);if(JD(a,127)){d=a;throw vbb(new Wdb(one+d))}else throw vbb(a)}}};_.Ib=function G_b(){return '[top='+this.d+',left='+this.b+',bottom='+this.a+',right='+this.c+']'};_.a=0;_.b=0;_.c=0;_.d=0;var n1=mdb(pne,'Spacing',207);bcb(142,207,qne,H_b,I_b,J_b,K_b);var i1=mdb(pne,'ElkMargin',142);bcb(651,142,qne,L_b);var MQ=mdb(fne,'LMargin',651);bcb(10,392,{3:1,299:1,10:1,392:1,94:1,134:1},b0b);_.Ib=function c0b(){return a0b(this)};_.i=false;var OQ=mdb(fne,'LNode',10);bcb(267,22,{3:1,35:1,22:1,267:1},k0b);var d0b,e0b,f0b,g0b,h0b,i0b;var NQ=ndb(fne,'LNode/NodeType',267,CI,m0b,l0b);var n0b;bcb(116,207,rne,p0b,q0b,r0b);var j1=mdb(pne,'ElkPadding',116);bcb(764,116,rne,s0b);var PQ=mdb(fne,'LPadding',764);bcb(11,392,{3:1,299:1,11:1,392:1,94:1,134:1},H0b);_.Ib=function I0b(){var a,b,c;a=new Ufb;Qfb((a.a+='p_',a),C0b(this));!!this.i&&Qfb(Pfb((a.a+='[',a),this.i),']');if(this.e.c.length==1&&this.g.c.length==0&&BD(Ikb(this.e,0),17).c!=this){b=BD(Ikb(this.e,0),17).c;Qfb((a.a+=' << ',a),C0b(b));Qfb(Pfb((a.a+='[',a),b.i),']')}if(this.e.c.length==0&&this.g.c.length==1&&BD(Ikb(this.g,0),17).d!=this){c=BD(Ikb(this.g,0),17).d;Qfb((a.a+=' >> ',a),C0b(c));Qfb(Pfb((a.a+='[',a),c.i),']')}return a.a};_.c=true;_.d=false;var t0b,u0b,v0b,w0b,x0b,y0b;var aR=mdb(fne,'LPort',11);bcb(397,1,vie,J0b);_.Jc=function K0b(a){reb(this,a)};_.Kc=function L0b(){var a;a=new olb(this.a.e);return new M0b(a)};var RQ=mdb(fne,'LPort/1',397);bcb(1290,1,aie,M0b);_.Nb=function N0b(a){Rrb(this,a)};_.Pb=function P0b(){return BD(mlb(this.a),17).c};_.Ob=function O0b(){return llb(this.a)};_.Qb=function Q0b(){nlb(this.a)};var QQ=mdb(fne,'LPort/1/1',1290);bcb(359,1,vie,R0b);_.Jc=function S0b(a){reb(this,a)};_.Kc=function T0b(){var a;return a=new olb(this.a.g),new U0b(a)};var TQ=mdb(fne,'LPort/2',359);bcb(762,1,aie,U0b);_.Nb=function V0b(a){Rrb(this,a)};_.Pb=function X0b(){return BD(mlb(this.a),17).d};_.Ob=function W0b(){return llb(this.a)};_.Qb=function Y0b(){nlb(this.a)};var SQ=mdb(fne,'LPort/2/1',762);bcb(1283,1,vie,Z0b);_.Jc=function $0b(a){reb(this,a)};_.Kc=function _0b(){return new b1b(this)};var VQ=mdb(fne,'LPort/CombineIter',1283);bcb(201,1,aie,b1b);_.Nb=function c1b(a){Rrb(this,a)};_.Qb=function f1b(){Srb()};_.Ob=function d1b(){return a1b(this)};_.Pb=function e1b(){return llb(this.a)?mlb(this.a):mlb(this.b)};var UQ=mdb(fne,'LPort/CombineIter/1',201);bcb(1285,1,Vke,h1b);_.Lb=function i1b(a){return g1b(a)};_.Fb=function j1b(a){return this===a};_.Mb=function k1b(a){return z0b(),BD(a,11).e.c.length!=0};var WQ=mdb(fne,'LPort/lambda$0$Type',1285);bcb(1284,1,Vke,m1b);_.Lb=function n1b(a){return l1b(a)};_.Fb=function o1b(a){return this===a};_.Mb=function p1b(a){return z0b(),BD(a,11).g.c.length!=0};var XQ=mdb(fne,'LPort/lambda$1$Type',1284);bcb(1286,1,Vke,q1b);_.Lb=function r1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};_.Fb=function s1b(a){return this===a};_.Mb=function t1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};var YQ=mdb(fne,'LPort/lambda$2$Type',1286);bcb(1287,1,Vke,u1b);_.Lb=function v1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};_.Fb=function w1b(a){return this===a};_.Mb=function x1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};var ZQ=mdb(fne,'LPort/lambda$3$Type',1287);bcb(1288,1,Vke,y1b);_.Lb=function z1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};_.Fb=function A1b(a){return this===a};_.Mb=function B1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};var $Q=mdb(fne,'LPort/lambda$4$Type',1288);bcb(1289,1,Vke,C1b);_.Lb=function D1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};_.Fb=function E1b(a){return this===a};_.Mb=function F1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};var _Q=mdb(fne,'LPort/lambda$5$Type',1289);bcb(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},H1b);_.Jc=function I1b(a){reb(this,a)};_.Kc=function J1b(){return new olb(this.a)};_.Ib=function K1b(){return 'L_'+Jkb(this.b.b,this,0)+Fe(this.a)};var cR=mdb(fne,'Layer',29);bcb(1342,1,{},a2b);var mR=mdb(tne,une,1342);bcb(1346,1,{},e2b);_.Kb=function f2b(a){return atd(BD(a,82))};var dR=mdb(tne,'ElkGraphImporter/0methodref$connectableShapeToNode$Type',1346);bcb(1349,1,{},g2b);_.Kb=function h2b(a){return atd(BD(a,82))};var eR=mdb(tne,'ElkGraphImporter/1methodref$connectableShapeToNode$Type',1349);bcb(1343,1,qie,i2b);_.td=function j2b(a){Q1b(this.a,BD(a,118))};var fR=mdb(tne,vne,1343);bcb(1344,1,qie,k2b);_.td=function l2b(a){Q1b(this.a,BD(a,118))};var gR=mdb(tne,wne,1344);bcb(1345,1,{},m2b);_.Kb=function n2b(a){return new YAb(null,new Kub(Old(BD(a,79)),16))};var hR=mdb(tne,xne,1345);bcb(1347,1,Oie,o2b);_.Mb=function p2b(a){return b2b(this.a,BD(a,33))};var iR=mdb(tne,yne,1347);bcb(1348,1,{},q2b);_.Kb=function r2b(a){return new YAb(null,new Kub(Nld(BD(a,79)),16))};var jR=mdb(tne,'ElkGraphImporter/lambda$5$Type',1348);bcb(1350,1,Oie,s2b);_.Mb=function t2b(a){return c2b(this.a,BD(a,33))};var kR=mdb(tne,'ElkGraphImporter/lambda$7$Type',1350);bcb(1351,1,Oie,u2b);_.Mb=function v2b(a){return d2b(BD(a,79))};var lR=mdb(tne,'ElkGraphImporter/lambda$8$Type',1351);bcb(1278,1,{},D2b);var w2b;var rR=mdb(tne,'ElkGraphLayoutTransferrer',1278);bcb(1279,1,Oie,G2b);_.Mb=function H2b(a){return E2b(this.a,BD(a,17))};var nR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$0$Type',1279);bcb(1280,1,qie,I2b);_.td=function J2b(a){x2b();Ekb(this.a,BD(a,17))};var oR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$1$Type',1280);bcb(1281,1,Oie,K2b);_.Mb=function L2b(a){return F2b(this.a,BD(a,17))};var pR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$2$Type',1281);bcb(1282,1,qie,M2b);_.td=function N2b(a){x2b();Ekb(this.a,BD(a,17))};var qR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$3$Type',1282);bcb(1485,1,ene,S2b);_.pf=function T2b(a,b){Q2b(BD(a,37),b)};var uR=mdb(Ane,'CommentNodeMarginCalculator',1485);bcb(1486,1,{},U2b);_.Kb=function V2b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var sR=mdb(Ane,'CommentNodeMarginCalculator/lambda$0$Type',1486);bcb(1487,1,qie,W2b);_.td=function X2b(a){R2b(BD(a,10))};var tR=mdb(Ane,'CommentNodeMarginCalculator/lambda$1$Type',1487);bcb(1488,1,ene,_2b);_.pf=function a3b(a,b){Z2b(BD(a,37),b)};var vR=mdb(Ane,'CommentPostprocessor',1488);bcb(1489,1,ene,e3b);_.pf=function f3b(a,b){b3b(BD(a,37),b)};var wR=mdb(Ane,'CommentPreprocessor',1489);bcb(1490,1,ene,h3b);_.pf=function i3b(a,b){g3b(BD(a,37),b)};var xR=mdb(Ane,'ConstraintsPostprocessor',1490);bcb(1491,1,ene,p3b);_.pf=function q3b(a,b){n3b(BD(a,37),b)};var yR=mdb(Ane,'EdgeAndLayerConstraintEdgeReverser',1491);bcb(1492,1,ene,t3b);_.pf=function v3b(a,b){r3b(BD(a,37),b)};var CR=mdb(Ane,'EndLabelPostprocessor',1492);bcb(1493,1,{},w3b);_.Kb=function x3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var zR=mdb(Ane,'EndLabelPostprocessor/lambda$0$Type',1493);bcb(1494,1,Oie,y3b);_.Mb=function z3b(a){return u3b(BD(a,10))};var AR=mdb(Ane,'EndLabelPostprocessor/lambda$1$Type',1494);bcb(1495,1,qie,A3b);_.td=function B3b(a){s3b(BD(a,10))};var BR=mdb(Ane,'EndLabelPostprocessor/lambda$2$Type',1495);bcb(1496,1,ene,M3b);_.pf=function P3b(a,b){I3b(BD(a,37),b)};var JR=mdb(Ane,'EndLabelPreprocessor',1496);bcb(1497,1,{},Q3b);_.Kb=function R3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DR=mdb(Ane,'EndLabelPreprocessor/lambda$0$Type',1497);bcb(1498,1,qie,S3b);_.td=function T3b(a){E3b(this.a,this.b,this.c,BD(a,10))};_.a=0;_.b=0;_.c=false;var ER=mdb(Ane,'EndLabelPreprocessor/lambda$1$Type',1498);bcb(1499,1,Oie,U3b);_.Mb=function V3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var FR=mdb(Ane,'EndLabelPreprocessor/lambda$2$Type',1499);bcb(1500,1,qie,W3b);_.td=function X3b(a){Dsb(this.a,BD(a,70))};var GR=mdb(Ane,'EndLabelPreprocessor/lambda$3$Type',1500);bcb(1501,1,Oie,Y3b);_.Mb=function Z3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var HR=mdb(Ane,'EndLabelPreprocessor/lambda$4$Type',1501);bcb(1502,1,qie,$3b);_.td=function _3b(a){Dsb(this.a,BD(a,70))};var IR=mdb(Ane,'EndLabelPreprocessor/lambda$5$Type',1502);bcb(1551,1,ene,i4b);_.pf=function j4b(a,b){f4b(BD(a,37),b)};var a4b;var RR=mdb(Ane,'EndLabelSorter',1551);bcb(1552,1,Dke,l4b);_.ue=function m4b(a,b){return k4b(BD(a,456),BD(b,456))};_.Fb=function n4b(a){return this===a};_.ve=function o4b(){return new tpb(this)};var KR=mdb(Ane,'EndLabelSorter/1',1552);bcb(456,1,{456:1},p4b);var LR=mdb(Ane,'EndLabelSorter/LabelGroup',456);bcb(1553,1,{},q4b);_.Kb=function r4b(a){return b4b(),new YAb(null,new Kub(BD(a,29).a,16))};var MR=mdb(Ane,'EndLabelSorter/lambda$0$Type',1553);bcb(1554,1,Oie,s4b);_.Mb=function t4b(a){return b4b(),BD(a,10).k==(j0b(),h0b)};var NR=mdb(Ane,'EndLabelSorter/lambda$1$Type',1554);bcb(1555,1,qie,u4b);_.td=function v4b(a){g4b(BD(a,10))};var OR=mdb(Ane,'EndLabelSorter/lambda$2$Type',1555);bcb(1556,1,Oie,w4b);_.Mb=function x4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var PR=mdb(Ane,'EndLabelSorter/lambda$3$Type',1556);bcb(1557,1,Oie,y4b);_.Mb=function z4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var QR=mdb(Ane,'EndLabelSorter/lambda$4$Type',1557);bcb(1503,1,ene,L4b);_.pf=function M4b(a,b){J4b(this,BD(a,37))};_.b=0;_.c=0;var YR=mdb(Ane,'FinalSplineBendpointsCalculator',1503);bcb(1504,1,{},N4b);_.Kb=function O4b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var SR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$0$Type',1504);bcb(1505,1,{},P4b);_.Kb=function Q4b(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var TR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$1$Type',1505);bcb(1506,1,Oie,R4b);_.Mb=function S4b(a){return !OZb(BD(a,17))};var UR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$2$Type',1506);bcb(1507,1,Oie,T4b);_.Mb=function U4b(a){return wNb(BD(a,17),(wtc(),rtc))};var VR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$3$Type',1507);bcb(1508,1,qie,V4b);_.td=function W4b(a){C4b(this.a,BD(a,128))};var WR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$4$Type',1508);bcb(1509,1,qie,X4b);_.td=function Y4b(a){smb(BD(a,17).a)};var XR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$5$Type',1509);bcb(792,1,ene,u5b);_.pf=function v5b(a,b){l5b(this,BD(a,37),b)};var $R=mdb(Ane,'GraphTransformer',792);bcb(511,22,{3:1,35:1,22:1,511:1},z5b);var w5b,x5b;var ZR=ndb(Ane,'GraphTransformer/Mode',511,CI,B5b,A5b);var C5b;bcb(1510,1,ene,I5b);_.pf=function J5b(a,b){F5b(BD(a,37),b)};var _R=mdb(Ane,'HierarchicalNodeResizingProcessor',1510);bcb(1511,1,ene,Q5b);_.pf=function R5b(a,b){M5b(BD(a,37),b)};var bS=mdb(Ane,'HierarchicalPortConstraintProcessor',1511);bcb(1512,1,Dke,T5b);_.ue=function U5b(a,b){return S5b(BD(a,10),BD(b,10))};_.Fb=function V5b(a){return this===a};_.ve=function W5b(){return new tpb(this)};var aS=mdb(Ane,'HierarchicalPortConstraintProcessor/NodeComparator',1512);bcb(1513,1,ene,Z5b);_.pf=function $5b(a,b){X5b(BD(a,37),b)};var cS=mdb(Ane,'HierarchicalPortDummySizeProcessor',1513);bcb(1514,1,ene,l6b);_.pf=function m6b(a,b){e6b(this,BD(a,37),b)};_.a=0;var fS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter',1514);bcb(1515,1,Dke,o6b);_.ue=function p6b(a,b){return n6b(BD(a,10),BD(b,10))};_.Fb=function q6b(a){return this===a};_.ve=function r6b(){return new tpb(this)};var dS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/1',1515);bcb(1516,1,Dke,t6b);_.ue=function u6b(a,b){return s6b(BD(a,10),BD(b,10))};_.Fb=function v6b(a){return this===a};_.ve=function w6b(){return new tpb(this)};var eS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/2',1516);bcb(1517,1,ene,z6b);_.pf=function A6b(a,b){y6b(BD(a,37),b)};var gS=mdb(Ane,'HierarchicalPortPositionProcessor',1517);bcb(1518,1,ene,J6b);_.pf=function K6b(a,b){I6b(this,BD(a,37))};_.a=0;_.c=0;var B6b,C6b;var kS=mdb(Ane,'HighDegreeNodeLayeringProcessor',1518);bcb(571,1,{571:1},L6b);_.b=-1;_.d=-1;var hS=mdb(Ane,'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation',571);bcb(1519,1,{},M6b);_.Kb=function N6b(a){return D6b(),R_b(BD(a,10))};_.Fb=function O6b(a){return this===a};var iS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$0$Type',1519);bcb(1520,1,{},P6b);_.Kb=function Q6b(a){return D6b(),U_b(BD(a,10))};_.Fb=function R6b(a){return this===a};var jS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$1$Type',1520);bcb(1526,1,ene,X6b);_.pf=function Y6b(a,b){W6b(this,BD(a,37),b)};var pS=mdb(Ane,'HyperedgeDummyMerger',1526);bcb(793,1,{},Z6b);_.a=false;_.b=false;_.c=false;var lS=mdb(Ane,'HyperedgeDummyMerger/MergeState',793);bcb(1527,1,{},$6b);_.Kb=function _6b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var mS=mdb(Ane,'HyperedgeDummyMerger/lambda$0$Type',1527);bcb(1528,1,{},a7b);_.Kb=function b7b(a){return new YAb(null,new Kub(BD(a,10).j,16))};var nS=mdb(Ane,'HyperedgeDummyMerger/lambda$1$Type',1528);bcb(1529,1,qie,c7b);_.td=function d7b(a){BD(a,11).p=-1};var oS=mdb(Ane,'HyperedgeDummyMerger/lambda$2$Type',1529);bcb(1530,1,ene,g7b);_.pf=function h7b(a,b){f7b(BD(a,37),b)};var qS=mdb(Ane,'HypernodesProcessor',1530);bcb(1531,1,ene,j7b);_.pf=function k7b(a,b){i7b(BD(a,37),b)};var rS=mdb(Ane,'InLayerConstraintProcessor',1531);bcb(1532,1,ene,m7b);_.pf=function n7b(a,b){l7b(BD(a,37),b)};var sS=mdb(Ane,'InnermostNodeMarginCalculator',1532);bcb(1533,1,ene,r7b);_.pf=function w7b(a,b){q7b(this,BD(a,37))};_.a=Qje;_.b=Qje;_.c=Pje;_.d=Pje;var zS=mdb(Ane,'InteractiveExternalPortPositioner',1533);bcb(1534,1,{},x7b);_.Kb=function y7b(a){return BD(a,17).d.i};_.Fb=function z7b(a){return this===a};var tS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$0$Type',1534);bcb(1535,1,{},A7b);_.Kb=function B7b(a){return s7b(this.a,ED(a))};_.Fb=function C7b(a){return this===a};var uS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$1$Type',1535);bcb(1536,1,{},D7b);_.Kb=function E7b(a){return BD(a,17).c.i};_.Fb=function F7b(a){return this===a};var vS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$2$Type',1536);bcb(1537,1,{},G7b);_.Kb=function H7b(a){return t7b(this.a,ED(a))};_.Fb=function I7b(a){return this===a};var wS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$3$Type',1537);bcb(1538,1,{},J7b);_.Kb=function K7b(a){return u7b(this.a,ED(a))};_.Fb=function L7b(a){return this===a};var xS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$4$Type',1538);bcb(1539,1,{},M7b);_.Kb=function N7b(a){return v7b(this.a,ED(a))};_.Fb=function O7b(a){return this===a};var yS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$5$Type',1539);bcb(77,22,{3:1,35:1,22:1,77:1,234:1},T8b);_.Kf=function U8b(){switch(this.g){case 15:return new eoc;case 22:return new Aoc;case 47:return new Joc;case 28:case 35:return new uac;case 32:return new S2b;case 42:return new _2b;case 1:return new e3b;case 41:return new h3b;case 56:return new u5b((y5b(),x5b));case 0:return new u5b((y5b(),w5b));case 2:return new p3b;case 54:return new t3b;case 33:return new M3b;case 51:return new L4b;case 55:return new I5b;case 13:return new Q5b;case 38:return new Z5b;case 44:return new l6b;case 40:return new z6b;case 9:return new J6b;case 49:return new sgc;case 37:return new X6b;case 43:return new g7b;case 27:return new j7b;case 30:return new m7b;case 3:return new r7b;case 18:return new b9b;case 29:return new h9b;case 5:return new u9b;case 50:return new D9b;case 34:return new $9b;case 36:return new Iac;case 52:return new i4b;case 11:return new Sac;case 7:return new abc;case 39:return new obc;case 45:return new rbc;case 16:return new vbc;case 10:return new Fbc;case 48:return new Xbc;case 21:return new ccc;case 23:return new fGc((rGc(),pGc));case 8:return new lcc;case 12:return new tcc;case 4:return new ycc;case 19:return new Tcc;case 17:return new pdc;case 53:return new sdc;case 6:return new hec;case 25:return new wdc;case 46:return new Ndc;case 31:return new sec;case 14:return new Fec;case 26:return new ppc;case 20:return new Uec;case 24:return new fGc((rGc(),qGc));default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var P7b,Q7b,R7b,S7b,T7b,U7b,V7b,W7b,X7b,Y7b,Z7b,$7b,_7b,a8b,b8b,c8b,d8b,e8b,f8b,g8b,h8b,i8b,j8b,k8b,l8b,m8b,n8b,o8b,p8b,q8b,r8b,s8b,t8b,u8b,v8b,w8b,x8b,y8b,z8b,A8b,B8b,C8b,D8b,E8b,F8b,G8b,H8b,I8b,J8b,K8b,L8b,M8b,N8b,O8b,P8b,Q8b,R8b;var AS=ndb(Ane,Ene,77,CI,W8b,V8b);var X8b;bcb(1540,1,ene,b9b);_.pf=function c9b(a,b){_8b(BD(a,37),b)};var BS=mdb(Ane,'InvertedPortProcessor',1540);bcb(1541,1,ene,h9b);_.pf=function i9b(a,b){g9b(BD(a,37),b)};var FS=mdb(Ane,'LabelAndNodeSizeProcessor',1541);bcb(1542,1,Oie,j9b);_.Mb=function k9b(a){return BD(a,10).k==(j0b(),h0b)};var CS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$0$Type',1542);bcb(1543,1,Oie,l9b);_.Mb=function m9b(a){return BD(a,10).k==(j0b(),e0b)};var DS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$1$Type',1543);bcb(1544,1,qie,n9b);_.td=function o9b(a){e9b(this.b,this.a,this.c,BD(a,10))};_.a=false;_.c=false;var ES=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$2$Type',1544);bcb(1545,1,ene,u9b);_.pf=function v9b(a,b){s9b(BD(a,37),b)};var p9b;var HS=mdb(Ane,'LabelDummyInserter',1545);bcb(1546,1,Vke,w9b);_.Lb=function x9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};_.Fb=function y9b(a){return this===a};_.Mb=function z9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};var GS=mdb(Ane,'LabelDummyInserter/1',1546);bcb(1547,1,ene,D9b);_.pf=function E9b(a,b){C9b(BD(a,37),b)};var JS=mdb(Ane,'LabelDummyRemover',1547);bcb(1548,1,Oie,F9b);_.Mb=function G9b(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var IS=mdb(Ane,'LabelDummyRemover/lambda$0$Type',1548);bcb(1359,1,ene,$9b);_.pf=function cac(a,b){W9b(this,BD(a,37),b)};_.a=null;var H9b;var QS=mdb(Ane,'LabelDummySwitcher',1359);bcb(286,1,{286:1},gac);_.c=0;_.d=null;_.f=0;var KS=mdb(Ane,'LabelDummySwitcher/LabelDummyInfo',286);bcb(1360,1,{},hac);_.Kb=function iac(a){return I9b(),new YAb(null,new Kub(BD(a,29).a,16))};var LS=mdb(Ane,'LabelDummySwitcher/lambda$0$Type',1360);bcb(1361,1,Oie,jac);_.Mb=function kac(a){return I9b(),BD(a,10).k==(j0b(),f0b)};var MS=mdb(Ane,'LabelDummySwitcher/lambda$1$Type',1361);bcb(1362,1,{},lac);_.Kb=function mac(a){return _9b(this.a,BD(a,10))};var NS=mdb(Ane,'LabelDummySwitcher/lambda$2$Type',1362);bcb(1363,1,qie,nac);_.td=function oac(a){aac(this.a,BD(a,286))};var OS=mdb(Ane,'LabelDummySwitcher/lambda$3$Type',1363);bcb(1364,1,Dke,pac);_.ue=function qac(a,b){return bac(BD(a,286),BD(b,286))};_.Fb=function rac(a){return this===a};_.ve=function sac(){return new tpb(this)};var PS=mdb(Ane,'LabelDummySwitcher/lambda$4$Type',1364);bcb(791,1,ene,uac);_.pf=function vac(a,b){tac(BD(a,37),b)};var RS=mdb(Ane,'LabelManagementProcessor',791);bcb(1549,1,ene,Iac);_.pf=function Jac(a,b){Cac(BD(a,37),b)};var TS=mdb(Ane,'LabelSideSelector',1549);bcb(1550,1,Oie,Kac);_.Mb=function Lac(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var SS=mdb(Ane,'LabelSideSelector/lambda$0$Type',1550);bcb(1558,1,ene,Sac);_.pf=function Tac(a,b){Oac(BD(a,37),b)};var US=mdb(Ane,'LayerConstraintPostprocessor',1558);bcb(1559,1,ene,abc);_.pf=function bbc(a,b){$ac(BD(a,37),b)};var Uac;var WS=mdb(Ane,'LayerConstraintPreprocessor',1559);bcb(360,22,{3:1,35:1,22:1,360:1},ibc);var cbc,dbc,ebc,fbc;var VS=ndb(Ane,'LayerConstraintPreprocessor/HiddenNodeConnections',360,CI,kbc,jbc);var lbc;bcb(1560,1,ene,obc);_.pf=function pbc(a,b){nbc(BD(a,37),b)};var XS=mdb(Ane,'LayerSizeAndGraphHeightCalculator',1560);bcb(1561,1,ene,rbc);_.pf=function tbc(a,b){qbc(BD(a,37),b)};var YS=mdb(Ane,'LongEdgeJoiner',1561);bcb(1562,1,ene,vbc);_.pf=function xbc(a,b){ubc(BD(a,37),b)};var ZS=mdb(Ane,'LongEdgeSplitter',1562);bcb(1563,1,ene,Fbc);_.pf=function Ibc(a,b){Bbc(this,BD(a,37),b)};_.d=0;_.e=0;_.i=0;_.j=0;_.k=0;_.n=0;var bT=mdb(Ane,'NodePromotion',1563);bcb(1564,1,{},Jbc);_.Kb=function Kbc(a){return BD(a,46),Bcb(),true};_.Fb=function Lbc(a){return this===a};var $S=mdb(Ane,'NodePromotion/lambda$0$Type',1564);bcb(1565,1,{},Mbc);_.Kb=function Nbc(a){return Gbc(this.a,BD(a,46))};_.Fb=function Obc(a){return this===a};_.a=0;var _S=mdb(Ane,'NodePromotion/lambda$1$Type',1565);bcb(1566,1,{},Pbc);_.Kb=function Qbc(a){return Hbc(this.a,BD(a,46))};_.Fb=function Rbc(a){return this===a};_.a=0;var aT=mdb(Ane,'NodePromotion/lambda$2$Type',1566);bcb(1567,1,ene,Xbc);_.pf=function Ybc(a,b){Sbc(BD(a,37),b)};var cT=mdb(Ane,'NorthSouthPortPostprocessor',1567);bcb(1568,1,ene,ccc);_.pf=function ecc(a,b){acc(BD(a,37),b)};var eT=mdb(Ane,'NorthSouthPortPreprocessor',1568);bcb(1569,1,Dke,fcc);_.ue=function gcc(a,b){return dcc(BD(a,11),BD(b,11))};_.Fb=function hcc(a){return this===a};_.ve=function icc(){return new tpb(this)};var dT=mdb(Ane,'NorthSouthPortPreprocessor/lambda$0$Type',1569);bcb(1570,1,ene,lcc);_.pf=function ncc(a,b){kcc(BD(a,37),b)};var hT=mdb(Ane,'PartitionMidprocessor',1570);bcb(1571,1,Oie,occ);_.Mb=function pcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var fT=mdb(Ane,'PartitionMidprocessor/lambda$0$Type',1571);bcb(1572,1,qie,qcc);_.td=function rcc(a){mcc(this.a,BD(a,10))};var gT=mdb(Ane,'PartitionMidprocessor/lambda$1$Type',1572);bcb(1573,1,ene,tcc);_.pf=function ucc(a,b){scc(BD(a,37),b)};var iT=mdb(Ane,'PartitionPostprocessor',1573);bcb(1574,1,ene,ycc);_.pf=function zcc(a,b){wcc(BD(a,37),b)};var nT=mdb(Ane,'PartitionPreprocessor',1574);bcb(1575,1,Oie,Acc);_.Mb=function Bcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var jT=mdb(Ane,'PartitionPreprocessor/lambda$0$Type',1575);bcb(1576,1,{},Ccc);_.Kb=function Dcc(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var kT=mdb(Ane,'PartitionPreprocessor/lambda$1$Type',1576);bcb(1577,1,Oie,Ecc);_.Mb=function Fcc(a){return vcc(BD(a,17))};var lT=mdb(Ane,'PartitionPreprocessor/lambda$2$Type',1577);bcb(1578,1,qie,Gcc);_.td=function Hcc(a){xcc(BD(a,17))};var mT=mdb(Ane,'PartitionPreprocessor/lambda$3$Type',1578);bcb(1579,1,ene,Tcc);_.pf=function Xcc(a,b){Qcc(BD(a,37),b)};var Icc,Jcc,Kcc,Lcc,Mcc,Ncc;var tT=mdb(Ane,'PortListSorter',1579);bcb(1580,1,{},Zcc);_.Kb=function $cc(a){return Occ(),BD(a,11).e};var oT=mdb(Ane,'PortListSorter/lambda$0$Type',1580);bcb(1581,1,{},_cc);_.Kb=function adc(a){return Occ(),BD(a,11).g};var pT=mdb(Ane,'PortListSorter/lambda$1$Type',1581);bcb(1582,1,Dke,bdc);_.ue=function cdc(a,b){return Ucc(BD(a,11),BD(b,11))};_.Fb=function ddc(a){return this===a};_.ve=function edc(){return new tpb(this)};var qT=mdb(Ane,'PortListSorter/lambda$2$Type',1582);bcb(1583,1,Dke,fdc);_.ue=function gdc(a,b){return Vcc(BD(a,11),BD(b,11))};_.Fb=function hdc(a){return this===a};_.ve=function idc(){return new tpb(this)};var rT=mdb(Ane,'PortListSorter/lambda$3$Type',1583);bcb(1584,1,Dke,jdc);_.ue=function kdc(a,b){return Wcc(BD(a,11),BD(b,11))};_.Fb=function ldc(a){return this===a};_.ve=function mdc(){return new tpb(this)};var sT=mdb(Ane,'PortListSorter/lambda$4$Type',1584);bcb(1585,1,ene,pdc);_.pf=function qdc(a,b){ndc(BD(a,37),b)};var uT=mdb(Ane,'PortSideProcessor',1585);bcb(1586,1,ene,sdc);_.pf=function tdc(a,b){rdc(BD(a,37),b)};var vT=mdb(Ane,'ReversedEdgeRestorer',1586);bcb(1591,1,ene,wdc);_.pf=function xdc(a,b){udc(this,BD(a,37),b)};var CT=mdb(Ane,'SelfLoopPortRestorer',1591);bcb(1592,1,{},ydc);_.Kb=function zdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var wT=mdb(Ane,'SelfLoopPortRestorer/lambda$0$Type',1592);bcb(1593,1,Oie,Adc);_.Mb=function Bdc(a){return BD(a,10).k==(j0b(),h0b)};var xT=mdb(Ane,'SelfLoopPortRestorer/lambda$1$Type',1593);bcb(1594,1,Oie,Cdc);_.Mb=function Ddc(a){return wNb(BD(a,10),(wtc(),ntc))};var yT=mdb(Ane,'SelfLoopPortRestorer/lambda$2$Type',1594);bcb(1595,1,{},Edc);_.Kb=function Fdc(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var zT=mdb(Ane,'SelfLoopPortRestorer/lambda$3$Type',1595);bcb(1596,1,qie,Gdc);_.td=function Hdc(a){vdc(this.a,BD(a,403))};var AT=mdb(Ane,'SelfLoopPortRestorer/lambda$4$Type',1596);bcb(794,1,qie,Idc);_.td=function Jdc(a){ljc(BD(a,101))};var BT=mdb(Ane,'SelfLoopPortRestorer/lambda$5$Type',794);bcb(1597,1,ene,Ndc);_.pf=function Pdc(a,b){Kdc(BD(a,37),b)};var LT=mdb(Ane,'SelfLoopPostProcessor',1597);bcb(1598,1,{},Qdc);_.Kb=function Rdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DT=mdb(Ane,'SelfLoopPostProcessor/lambda$0$Type',1598);bcb(1599,1,Oie,Sdc);_.Mb=function Tdc(a){return BD(a,10).k==(j0b(),h0b)};var ET=mdb(Ane,'SelfLoopPostProcessor/lambda$1$Type',1599);bcb(1600,1,Oie,Udc);_.Mb=function Vdc(a){return wNb(BD(a,10),(wtc(),ntc))};var FT=mdb(Ane,'SelfLoopPostProcessor/lambda$2$Type',1600);bcb(1601,1,qie,Wdc);_.td=function Xdc(a){Ldc(BD(a,10))};var GT=mdb(Ane,'SelfLoopPostProcessor/lambda$3$Type',1601);bcb(1602,1,{},Ydc);_.Kb=function Zdc(a){return new YAb(null,new Kub(BD(a,101).f,1))};var HT=mdb(Ane,'SelfLoopPostProcessor/lambda$4$Type',1602);bcb(1603,1,qie,$dc);_.td=function _dc(a){Mdc(this.a,BD(a,409))};var IT=mdb(Ane,'SelfLoopPostProcessor/lambda$5$Type',1603);bcb(1604,1,Oie,aec);_.Mb=function bec(a){return !!BD(a,101).i};var JT=mdb(Ane,'SelfLoopPostProcessor/lambda$6$Type',1604);bcb(1605,1,qie,cec);_.td=function dec(a){Odc(this.a,BD(a,101))};var KT=mdb(Ane,'SelfLoopPostProcessor/lambda$7$Type',1605);bcb(1587,1,ene,hec);_.pf=function iec(a,b){gec(BD(a,37),b)};var PT=mdb(Ane,'SelfLoopPreProcessor',1587);bcb(1588,1,{},jec);_.Kb=function kec(a){return new YAb(null,new Kub(BD(a,101).f,1))};var MT=mdb(Ane,'SelfLoopPreProcessor/lambda$0$Type',1588);bcb(1589,1,{},lec);_.Kb=function mec(a){return BD(a,409).a};var NT=mdb(Ane,'SelfLoopPreProcessor/lambda$1$Type',1589);bcb(1590,1,qie,nec);_.td=function oec(a){fec(BD(a,17))};var OT=mdb(Ane,'SelfLoopPreProcessor/lambda$2$Type',1590);bcb(1606,1,ene,sec);_.pf=function tec(a,b){qec(this,BD(a,37),b)};var VT=mdb(Ane,'SelfLoopRouter',1606);bcb(1607,1,{},uec);_.Kb=function vec(a){return new YAb(null,new Kub(BD(a,29).a,16))};var QT=mdb(Ane,'SelfLoopRouter/lambda$0$Type',1607);bcb(1608,1,Oie,wec);_.Mb=function xec(a){return BD(a,10).k==(j0b(),h0b)};var RT=mdb(Ane,'SelfLoopRouter/lambda$1$Type',1608);bcb(1609,1,Oie,yec);_.Mb=function zec(a){return wNb(BD(a,10),(wtc(),ntc))};var ST=mdb(Ane,'SelfLoopRouter/lambda$2$Type',1609);bcb(1610,1,{},Aec);_.Kb=function Bec(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var TT=mdb(Ane,'SelfLoopRouter/lambda$3$Type',1610);bcb(1611,1,qie,Cec);_.td=function Dec(a){pec(this.a,this.b,BD(a,403))};var UT=mdb(Ane,'SelfLoopRouter/lambda$4$Type',1611);bcb(1612,1,ene,Fec);_.pf=function Iec(a,b){Eec(BD(a,37),b)};var $T=mdb(Ane,'SemiInteractiveCrossMinProcessor',1612);bcb(1613,1,Oie,Jec);_.Mb=function Kec(a){return BD(a,10).k==(j0b(),h0b)};var WT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$0$Type',1613);bcb(1614,1,Oie,Lec);_.Mb=function Mec(a){return uNb(BD(a,10))._b((Nyc(),ayc))};var XT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$1$Type',1614);bcb(1615,1,Dke,Nec);_.ue=function Oec(a,b){return Gec(BD(a,10),BD(b,10))};_.Fb=function Pec(a){return this===a};_.ve=function Qec(){return new tpb(this)};var YT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$2$Type',1615);bcb(1616,1,{},Rec);_.Ce=function Sec(a,b){return Hec(BD(a,10),BD(b,10))};var ZT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$3$Type',1616);bcb(1618,1,ene,Uec);_.pf=function Yec(a,b){Tec(BD(a,37),b)};var bU=mdb(Ane,'SortByInputModelProcessor',1618);bcb(1619,1,Oie,Zec);_.Mb=function $ec(a){return BD(a,11).g.c.length!=0};var _T=mdb(Ane,'SortByInputModelProcessor/lambda$0$Type',1619);bcb(1620,1,qie,_ec);_.td=function afc(a){Wec(this.a,BD(a,11))};var aU=mdb(Ane,'SortByInputModelProcessor/lambda$1$Type',1620);bcb(1693,803,{},jfc);_.Me=function kfc(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new Rkb;MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new lgc),new ngc(this,b));nEb(this,new tfc);Hkb(b,new xfc);b.c=KC(SI,Uhe,1,0,5,1);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new zfc),new Bfc(b));nEb(this,new Ffc);Hkb(b,new Jfc);b.c=KC(SI,Uhe,1,0,5,1);c=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new Lfc(this))),new Nfc);MAb(new YAb(null,new Kub(this.c.a.a,16)),new Rfc(c,b));nEb(this,new Vfc);Hkb(b,new Zfc);b.c=KC(SI,Uhe,1,0,5,1);break;case 3:d=new Rkb;nEb(this,new lfc);e=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new pfc(this))),new Pfc);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new _fc),new bgc(e,d));nEb(this,new fgc);Hkb(d,new jgc);d.c=KC(SI,Uhe,1,0,5,1);break;default:throw vbb(new x2c);}};_.b=0;var AU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation',1693);bcb(1694,1,Vke,lfc);_.Lb=function mfc(a){return JD(BD(a,57).g,145)};_.Fb=function nfc(a){return this===a};_.Mb=function ofc(a){return JD(BD(a,57).g,145)};var cU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1694);bcb(1695,1,{},pfc);_.Fe=function qfc(a){return dfc(this.a,BD(a,57))};var dU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1695);bcb(1703,1,Pie,rfc);_.Vd=function sfc(){cfc(this.a,this.b,-1)};_.b=0;var eU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1703);bcb(1705,1,Vke,tfc);_.Lb=function ufc(a){return JD(BD(a,57).g,145)};_.Fb=function vfc(a){return this===a};_.Mb=function wfc(a){return JD(BD(a,57).g,145)};var fU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1705);bcb(1706,1,qie,xfc);_.td=function yfc(a){BD(a,365).Vd()};var gU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1706);bcb(1707,1,Oie,zfc);_.Mb=function Afc(a){return JD(BD(a,57).g,10)};var hU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1707);bcb(1709,1,qie,Bfc);_.td=function Cfc(a){efc(this.a,BD(a,57))};var iU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1709);bcb(1708,1,Pie,Dfc);_.Vd=function Efc(){cfc(this.b,this.a,-1)};_.a=0;var jU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1708);bcb(1710,1,Vke,Ffc);_.Lb=function Gfc(a){return JD(BD(a,57).g,10)};_.Fb=function Hfc(a){return this===a};_.Mb=function Ifc(a){return JD(BD(a,57).g,10)};var kU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1710);bcb(1711,1,qie,Jfc);_.td=function Kfc(a){BD(a,365).Vd()};var lU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1711);bcb(1712,1,{},Lfc);_.Fe=function Mfc(a){return ffc(this.a,BD(a,57))};var mU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1712);bcb(1713,1,{},Nfc);_.De=function Ofc(){return 0};var nU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1713);bcb(1696,1,{},Pfc);_.De=function Qfc(){return 0};var oU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1696);bcb(1715,1,qie,Rfc);_.td=function Sfc(a){gfc(this.a,this.b,BD(a,307))};_.a=0;var pU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1715);bcb(1714,1,Pie,Tfc);_.Vd=function Ufc(){bfc(this.a,this.b,-1)};_.b=0;var qU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1714);bcb(1716,1,Vke,Vfc);_.Lb=function Wfc(a){return BD(a,57),true};_.Fb=function Xfc(a){return this===a};_.Mb=function Yfc(a){return BD(a,57),true};var rU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1716);bcb(1717,1,qie,Zfc);_.td=function $fc(a){BD(a,365).Vd()};var sU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1717);bcb(1697,1,Oie,_fc);_.Mb=function agc(a){return JD(BD(a,57).g,10)};var tU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1697);bcb(1699,1,qie,bgc);_.td=function cgc(a){hfc(this.a,this.b,BD(a,57))};_.a=0;var uU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1699);bcb(1698,1,Pie,dgc);_.Vd=function egc(){cfc(this.b,this.a,-1)};_.a=0;var vU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1698);bcb(1700,1,Vke,fgc);_.Lb=function ggc(a){return BD(a,57),true};_.Fb=function hgc(a){return this===a};_.Mb=function igc(a){return BD(a,57),true};var wU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1700);bcb(1701,1,qie,jgc);_.td=function kgc(a){BD(a,365).Vd()};var xU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1701);bcb(1702,1,Oie,lgc);_.Mb=function mgc(a){return JD(BD(a,57).g,145)};var yU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1702);bcb(1704,1,qie,ngc);_.td=function ogc(a){ifc(this.a,this.b,BD(a,57))};var zU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1704);bcb(1521,1,ene,sgc);_.pf=function xgc(a,b){rgc(this,BD(a,37),b)};var pgc;var EU=mdb(Jne,'HorizontalGraphCompactor',1521);bcb(1522,1,{},ygc);_.Oe=function zgc(a,b){var c,d,e;if(vgc(a,b)){return 0}c=tgc(a);d=tgc(b);if(!!c&&c.k==(j0b(),e0b)||!!d&&d.k==(j0b(),e0b)){return 0}e=BD(vNb(this.a.a,(wtc(),otc)),304);return fBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};_.Pe=function Agc(a,b){var c,d,e;if(vgc(a,b)){return 1}c=tgc(a);d=tgc(b);e=BD(vNb(this.a.a,(wtc(),otc)),304);return iBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};var BU=mdb(Jne,'HorizontalGraphCompactor/1',1522);bcb(1523,1,{},Bgc);_.Ne=function Cgc(a,b){return qgc(),a.a.i==0};var CU=mdb(Jne,'HorizontalGraphCompactor/lambda$0$Type',1523);bcb(1524,1,{},Dgc);_.Ne=function Egc(a,b){return wgc(this.a,a,b)};var DU=mdb(Jne,'HorizontalGraphCompactor/lambda$1$Type',1524);bcb(1664,1,{},Ygc);var Fgc,Ggc;var cV=mdb(Jne,'LGraphToCGraphTransformer',1664);bcb(1672,1,Oie,ehc);_.Mb=function fhc(a){return a!=null};var FU=mdb(Jne,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1672);bcb(1665,1,{},ghc);_.Kb=function hhc(a){return Hgc(),fcb(vNb(BD(BD(a,57).g,10),(wtc(),$sc)))};var GU=mdb(Jne,'LGraphToCGraphTransformer/lambda$0$Type',1665);bcb(1666,1,{},ihc);_.Kb=function jhc(a){return Hgc(),gic(BD(BD(a,57).g,145))};var HU=mdb(Jne,'LGraphToCGraphTransformer/lambda$1$Type',1666);bcb(1675,1,Oie,khc);_.Mb=function lhc(a){return Hgc(),JD(BD(a,57).g,10)};var IU=mdb(Jne,'LGraphToCGraphTransformer/lambda$10$Type',1675);bcb(1676,1,qie,mhc);_.td=function nhc(a){Zgc(BD(a,57))};var JU=mdb(Jne,'LGraphToCGraphTransformer/lambda$11$Type',1676);bcb(1677,1,Oie,ohc);_.Mb=function phc(a){return Hgc(),JD(BD(a,57).g,145)};var KU=mdb(Jne,'LGraphToCGraphTransformer/lambda$12$Type',1677);bcb(1681,1,qie,qhc);_.td=function rhc(a){$gc(BD(a,57))};var LU=mdb(Jne,'LGraphToCGraphTransformer/lambda$13$Type',1681);bcb(1678,1,qie,shc);_.td=function thc(a){_gc(this.a,BD(a,8))};_.a=0;var MU=mdb(Jne,'LGraphToCGraphTransformer/lambda$14$Type',1678);bcb(1679,1,qie,uhc);_.td=function vhc(a){ahc(this.a,BD(a,110))};_.a=0;var NU=mdb(Jne,'LGraphToCGraphTransformer/lambda$15$Type',1679);bcb(1680,1,qie,whc);_.td=function xhc(a){bhc(this.a,BD(a,8))};_.a=0;var OU=mdb(Jne,'LGraphToCGraphTransformer/lambda$16$Type',1680);bcb(1682,1,{},yhc);_.Kb=function zhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var PU=mdb(Jne,'LGraphToCGraphTransformer/lambda$17$Type',1682);bcb(1683,1,Oie,Ahc);_.Mb=function Bhc(a){return Hgc(),OZb(BD(a,17))};var QU=mdb(Jne,'LGraphToCGraphTransformer/lambda$18$Type',1683);bcb(1684,1,qie,Chc);_.td=function Dhc(a){Qgc(this.a,BD(a,17))};var RU=mdb(Jne,'LGraphToCGraphTransformer/lambda$19$Type',1684);bcb(1668,1,qie,Ehc);_.td=function Fhc(a){Rgc(this.a,BD(a,145))};var SU=mdb(Jne,'LGraphToCGraphTransformer/lambda$2$Type',1668);bcb(1685,1,{},Ghc);_.Kb=function Hhc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var TU=mdb(Jne,'LGraphToCGraphTransformer/lambda$20$Type',1685);bcb(1686,1,{},Ihc);_.Kb=function Jhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var UU=mdb(Jne,'LGraphToCGraphTransformer/lambda$21$Type',1686);bcb(1687,1,{},Khc);_.Kb=function Lhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var VU=mdb(Jne,'LGraphToCGraphTransformer/lambda$22$Type',1687);bcb(1688,1,Oie,Mhc);_.Mb=function Nhc(a){return chc(BD(a,15))};var WU=mdb(Jne,'LGraphToCGraphTransformer/lambda$23$Type',1688);bcb(1689,1,qie,Ohc);_.td=function Phc(a){Jgc(this.a,BD(a,15))};var XU=mdb(Jne,'LGraphToCGraphTransformer/lambda$24$Type',1689);bcb(1667,1,qie,Qhc);_.td=function Rhc(a){Sgc(this.a,this.b,BD(a,145))};var YU=mdb(Jne,'LGraphToCGraphTransformer/lambda$3$Type',1667);bcb(1669,1,{},Shc);_.Kb=function Thc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var ZU=mdb(Jne,'LGraphToCGraphTransformer/lambda$4$Type',1669);bcb(1670,1,{},Uhc);_.Kb=function Vhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var $U=mdb(Jne,'LGraphToCGraphTransformer/lambda$5$Type',1670);bcb(1671,1,{},Whc);_.Kb=function Xhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var _U=mdb(Jne,'LGraphToCGraphTransformer/lambda$6$Type',1671);bcb(1673,1,qie,Yhc);_.td=function Zhc(a){dhc(this.a,BD(a,15))};var aV=mdb(Jne,'LGraphToCGraphTransformer/lambda$8$Type',1673);bcb(1674,1,qie,$hc);_.td=function _hc(a){Tgc(this.a,this.b,BD(a,145))};var bV=mdb(Jne,'LGraphToCGraphTransformer/lambda$9$Type',1674);bcb(1663,1,{},dic);_.Le=function eic(a){var b,c,d,e,f;this.a=a;this.d=new KFb;this.c=KC(jN,Uhe,121,this.a.a.a.c.length,0,1);this.b=0;for(c=new olb(this.a.a.a);c.a<c.c.c.length;){b=BD(mlb(c),307);b.d=this.b;f=nGb(oGb(new pGb,b),this.d);this.c[this.b]=f;++this.b}cic(this);bic(this);aic(this);uGb(LGb(this.d),new Zdd);for(e=new olb(this.a.a.b);e.a<e.c.c.length;){d=BD(mlb(e),57);d.d.c=this.c[d.a.d].e+d.b.a}};_.b=0;var dV=mdb(Jne,'NetworkSimplexCompaction',1663);bcb(145,1,{35:1,145:1},hic);_.wd=function iic(a){return fic(this,BD(a,145))};_.Ib=function jic(){return gic(this)};var eV=mdb(Jne,'VerticalSegment',145);bcb(827,1,{},sic);_.c=0;_.e=0;_.i=0;var hV=mdb(Kne,'BetweenLayerEdgeTwoNodeCrossingsCounter',827);bcb(663,1,{663:1},zic);_.Ib=function Aic(){return 'AdjacencyList [node='+this.d+', adjacencies= '+this.a+']'};_.b=0;_.c=0;_.f=0;var gV=mdb(Kne,'BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList',663);bcb(287,1,{35:1,287:1},Dic);_.wd=function Eic(a){return Bic(this,BD(a,287))};_.Ib=function Fic(){return 'Adjacency [position='+this.c+', cardinality='+this.a+', currentCardinality='+this.b+']'};_.a=0;_.b=0;_.c=0;var fV=mdb(Kne,'BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency',287);bcb(1929,1,{},Iic);_.b=0;_.e=false;var iV=mdb(Kne,'CrossingMatrixFiller',1929);var qY=odb(Lne,'IInitializable');bcb(1804,1,Mne,Oic);_.Nf=function Ric(a,b,c,d,e,f){};_.Pf=function Tic(a,b,c){};_.Lf=function Pic(){return this.c!=(rGc(),pGc)};_.Mf=function Qic(){this.e=KC(WD,oje,25,this.d,15,1)};_.Of=function Sic(a,b){b[a][0].c.p=a};_.Qf=function Uic(a,b,c,d){++this.d};_.Rf=function Vic(){return true};_.Sf=function Wic(a,b,c,d){Kic(this,a,b,c);return Jic(this,b)};_.Tf=function Xic(a,b){var c;c=Lic(b,a.length);Kic(this,a,c,b);return Mic(this,c)};_.d=0;var jV=mdb(Kne,'GreedySwitchHeuristic',1804);bcb(1930,1,{},ejc);_.b=0;_.d=0;var kV=mdb(Kne,'NorthSouthEdgeNeighbouringNodeCrossingsCounter',1930);bcb(1917,1,{},jjc);_.a=false;var lV=mdb(Kne,'SwitchDecider',1917);bcb(101,1,{101:1},pjc);_.a=null;_.c=null;_.i=null;var oV=mdb(Nne,'SelfHyperLoop',101);bcb(1916,1,{},vjc);_.c=0;_.e=0;var nV=mdb(Nne,'SelfHyperLoopLabels',1916);bcb(411,22,{3:1,35:1,22:1,411:1},Bjc);var wjc,xjc,yjc,zjc;var mV=ndb(Nne,'SelfHyperLoopLabels/Alignment',411,CI,Djc,Cjc);var Ejc;bcb(409,1,{409:1},Gjc);var pV=mdb(Nne,'SelfLoopEdge',409);bcb(403,1,{403:1},Kjc);_.a=false;var rV=mdb(Nne,'SelfLoopHolder',403);bcb(1724,1,Oie,Mjc);_.Mb=function Njc(a){return OZb(BD(a,17))};var qV=mdb(Nne,'SelfLoopHolder/lambda$0$Type',1724);bcb(113,1,{113:1},Pjc);_.a=false;_.c=false;var tV=mdb(Nne,'SelfLoopPort',113);bcb(1792,1,Oie,Qjc);_.Mb=function Rjc(a){return OZb(BD(a,17))};var sV=mdb(Nne,'SelfLoopPort/lambda$0$Type',1792);bcb(363,22,{3:1,35:1,22:1,363:1},Yjc);var Sjc,Tjc,Ujc,Vjc,Wjc;var uV=ndb(Nne,'SelfLoopType',363,CI,_jc,$jc);var akc;bcb(1732,1,{},xkc);var ckc,dkc,ekc,fkc;var JV=mdb(One,'PortRestorer',1732);bcb(361,22,{3:1,35:1,22:1,361:1},Gkc);var Ckc,Dkc,Ekc;var vV=ndb(One,'PortRestorer/PortSideArea',361,CI,Ikc,Hkc);var Jkc;bcb(1733,1,{},Lkc);_.Kb=function Mkc(a){return gkc(),BD(a,15).Oc()};var wV=mdb(One,'PortRestorer/lambda$0$Type',1733);bcb(1734,1,qie,Nkc);_.td=function Okc(a){gkc();BD(a,113).c=false};var xV=mdb(One,'PortRestorer/lambda$1$Type',1734);bcb(1743,1,Oie,Pkc);_.Mb=function Qkc(a){return gkc(),BD(a,11).j==(Ucd(),Tcd)};var yV=mdb(One,'PortRestorer/lambda$10$Type',1743);bcb(1744,1,{},Rkc);_.Kb=function Skc(a){return gkc(),BD(a,113).d};var zV=mdb(One,'PortRestorer/lambda$11$Type',1744);bcb(1745,1,qie,Tkc);_.td=function Ukc(a){ykc(this.a,BD(a,11))};var AV=mdb(One,'PortRestorer/lambda$12$Type',1745);bcb(1735,1,qie,Vkc);_.td=function Wkc(a){zkc(this.a,BD(a,101))};var BV=mdb(One,'PortRestorer/lambda$2$Type',1735);bcb(1736,1,Dke,Xkc);_.ue=function Ykc(a,b){return Akc(BD(a,113),BD(b,113))};_.Fb=function Zkc(a){return this===a};_.ve=function $kc(){return new tpb(this)};var CV=mdb(One,'PortRestorer/lambda$3$Type',1736);bcb(1737,1,Oie,_kc);_.Mb=function alc(a){return gkc(),BD(a,113).c};var DV=mdb(One,'PortRestorer/lambda$4$Type',1737);bcb(1738,1,Oie,blc);_.Mb=function clc(a){return nkc(BD(a,11))};var EV=mdb(One,'PortRestorer/lambda$5$Type',1738);bcb(1739,1,Oie,dlc);_.Mb=function elc(a){return gkc(),BD(a,11).j==(Ucd(),Acd)};var FV=mdb(One,'PortRestorer/lambda$6$Type',1739);bcb(1740,1,Oie,flc);_.Mb=function glc(a){return gkc(),BD(a,11).j==(Ucd(),zcd)};var GV=mdb(One,'PortRestorer/lambda$7$Type',1740);bcb(1741,1,Oie,hlc);_.Mb=function ilc(a){return okc(BD(a,11))};var HV=mdb(One,'PortRestorer/lambda$8$Type',1741);bcb(1742,1,Oie,jlc);_.Mb=function klc(a){return gkc(),BD(a,11).j==(Ucd(),Rcd)};var IV=mdb(One,'PortRestorer/lambda$9$Type',1742);bcb(270,22,{3:1,35:1,22:1,270:1},Blc);var slc,tlc,ulc,vlc,wlc,xlc,ylc,zlc;var KV=ndb(One,'PortSideAssigner/Target',270,CI,Dlc,Clc);var Elc;bcb(1725,1,{},Glc);_.Kb=function Hlc(a){return JAb(new YAb(null,new Kub(BD(a,101).j,16)),new Ylc)};var LV=mdb(One,'PortSideAssigner/lambda$1$Type',1725);bcb(1726,1,{},Ilc);_.Kb=function Jlc(a){return BD(a,113).d};var MV=mdb(One,'PortSideAssigner/lambda$2$Type',1726);bcb(1727,1,qie,Klc);_.td=function Llc(a){G0b(BD(a,11),(Ucd(),Acd))};var NV=mdb(One,'PortSideAssigner/lambda$3$Type',1727);bcb(1728,1,{},Mlc);_.Kb=function Nlc(a){return BD(a,113).d};var OV=mdb(One,'PortSideAssigner/lambda$4$Type',1728);bcb(1729,1,qie,Olc);_.td=function Plc(a){plc(this.a,BD(a,11))};var PV=mdb(One,'PortSideAssigner/lambda$5$Type',1729);bcb(1730,1,Dke,Qlc);_.ue=function Rlc(a,b){return qlc(BD(a,101),BD(b,101))};_.Fb=function Slc(a){return this===a};_.ve=function Tlc(){return new tpb(this)};var QV=mdb(One,'PortSideAssigner/lambda$6$Type',1730);bcb(1731,1,Dke,Ulc);_.ue=function Vlc(a,b){return rlc(BD(a,113),BD(b,113))};_.Fb=function Wlc(a){return this===a};_.ve=function Xlc(){return new tpb(this)};var RV=mdb(One,'PortSideAssigner/lambda$7$Type',1731);bcb(805,1,Oie,Ylc);_.Mb=function Zlc(a){return BD(a,113).c};var SV=mdb(One,'PortSideAssigner/lambda$8$Type',805);bcb(2009,1,{});var TV=mdb(Pne,'AbstractSelfLoopRouter',2009);bcb(1750,1,Dke,gmc);_.ue=function hmc(a,b){return emc(BD(a,101),BD(b,101))};_.Fb=function imc(a){return this===a};_.ve=function jmc(){return new tpb(this)};var UV=mdb(Pne,rle,1750);bcb(1751,1,Dke,kmc);_.ue=function lmc(a,b){return fmc(BD(a,101),BD(b,101))};_.Fb=function mmc(a){return this===a};_.ve=function nmc(){return new tpb(this)};var VV=mdb(Pne,sle,1751);bcb(1793,2009,{},zmc);_.Uf=function Amc(a,b,c){return c};var XV=mdb(Pne,'OrthogonalSelfLoopRouter',1793);bcb(1795,1,qie,Bmc);_.td=function Cmc(a){ymc(this.b,this.a,BD(a,8))};var WV=mdb(Pne,'OrthogonalSelfLoopRouter/lambda$0$Type',1795);bcb(1794,1793,{},Fmc);_.Uf=function Gmc(a,b,c){var d,e;d=a.c.d;St(c,0,P6c(R6c(d.n),d.a));e=a.d.d;Dsb(c,P6c(R6c(e.n),e.a));return Dmc(c)};var YV=mdb(Pne,'PolylineSelfLoopRouter',1794);bcb(1746,1,{},Umc);_.a=null;var Hmc;var aW=mdb(Pne,'RoutingDirector',1746);bcb(1747,1,Dke,Wmc);_.ue=function Xmc(a,b){return Vmc(BD(a,113),BD(b,113))};_.Fb=function Ymc(a){return this===a};_.ve=function Zmc(){return new tpb(this)};var ZV=mdb(Pne,'RoutingDirector/lambda$0$Type',1747);bcb(1748,1,{},$mc);_.Kb=function _mc(a){return Imc(),BD(a,101).j};var $V=mdb(Pne,'RoutingDirector/lambda$1$Type',1748);bcb(1749,1,qie,anc);_.td=function bnc(a){Imc();BD(a,15).ad(Hmc)};var _V=mdb(Pne,'RoutingDirector/lambda$2$Type',1749);bcb(1752,1,{},mnc);var dW=mdb(Pne,'RoutingSlotAssigner',1752);bcb(1753,1,Oie,pnc);_.Mb=function qnc(a){return nnc(this.a,BD(a,101))};var bW=mdb(Pne,'RoutingSlotAssigner/lambda$0$Type',1753);bcb(1754,1,Dke,rnc);_.ue=function snc(a,b){return onc(this.a,BD(a,101),BD(b,101))};_.Fb=function tnc(a){return this===a};_.ve=function unc(){return new tpb(this)};var cW=mdb(Pne,'RoutingSlotAssigner/lambda$1$Type',1754);bcb(1796,1793,{},wnc);_.Uf=function xnc(a,b,c){var d,e,f,g;d=Edb(ED(c_b(a.b.g.b,(Nyc(),nyc))));g=new u7c(OC(GC(m1,1),nie,8,0,[(f=a.c.d,P6c(new g7c(f.n),f.a))]));vnc(a,b,c,g,d);Dsb(g,(e=a.d.d,P6c(new g7c(e.n),e.a)));return UPc(new YPc(g))};var eW=mdb(Pne,'SplineSelfLoopRouter',1796);bcb(578,1,Dke,Bnc,Dnc);_.ue=function Enc(a,b){return ync(this,BD(a,10),BD(b,10))};_.Fb=function Fnc(a){return this===a};_.ve=function Gnc(){return new tpb(this)};var kW=mdb(Qne,'ModelOrderNodeComparator',578);bcb(1755,1,Oie,Hnc);_.Mb=function Inc(a){return BD(a,11).e.c.length!=0};var fW=mdb(Qne,'ModelOrderNodeComparator/lambda$0$Type',1755);bcb(1756,1,{},Jnc);_.Kb=function Knc(a){return BD(Ikb(BD(a,11).e,0),17).c};var gW=mdb(Qne,'ModelOrderNodeComparator/lambda$1$Type',1756);bcb(1757,1,Oie,Lnc);_.Mb=function Mnc(a){return BD(a,11).e.c.length!=0};var hW=mdb(Qne,'ModelOrderNodeComparator/lambda$2$Type',1757);bcb(1758,1,{},Nnc);_.Kb=function Onc(a){return BD(Ikb(BD(a,11).e,0),17).c};var iW=mdb(Qne,'ModelOrderNodeComparator/lambda$3$Type',1758);bcb(1759,1,Oie,Pnc);_.Mb=function Qnc(a){return BD(a,11).e.c.length!=0};var jW=mdb(Qne,'ModelOrderNodeComparator/lambda$4$Type',1759);bcb(806,1,Dke,Tnc,Unc);_.ue=function Vnc(a,b){return Rnc(this,a,b)};_.Fb=function Wnc(a){return this===a};_.ve=function Xnc(){return new tpb(this)};var lW=mdb(Qne,'ModelOrderPortComparator',806);bcb(801,1,{},Ync);_.Vf=function $nc(a,b){var c,d,e,f;e=Znc(b);c=new Rkb;f=b.f/e;for(d=1;d<e;++d){Ekb(c,meb(Tbb(Cbb($wnd.Math.round(d*f)))))}return c};_.Wf=function _nc(){return false};var mW=mdb(Rne,'ARDCutIndexHeuristic',801);bcb(1479,1,ene,eoc);_.pf=function foc(a,b){doc(BD(a,37),b)};var pW=mdb(Rne,'BreakingPointInserter',1479);bcb(305,1,{305:1},goc);_.Ib=function joc(){var a;a=new Ufb;a.a+='BPInfo[';a.a+='\n\tstart=';Pfb(a,this.i);a.a+='\n\tend=';Pfb(a,this.a);a.a+='\n\tnodeStartEdge=';Pfb(a,this.e);a.a+='\n\tstartEndEdge=';Pfb(a,this.j);a.a+='\n\toriginalEdge=';Pfb(a,this.f);a.a+='\n\tstartInLayerDummy=';Pfb(a,this.k);a.a+='\n\tstartInLayerEdge=';Pfb(a,this.n);a.a+='\n\tendInLayerDummy=';Pfb(a,this.b);a.a+='\n\tendInLayerEdge=';Pfb(a,this.c);return a.a};var nW=mdb(Rne,'BreakingPointInserter/BPInfo',305);bcb(652,1,{652:1},qoc);_.a=false;_.b=0;_.c=0;var oW=mdb(Rne,'BreakingPointInserter/Cut',652);bcb(1480,1,ene,Aoc);_.pf=function Boc(a,b){yoc(BD(a,37),b)};var sW=mdb(Rne,'BreakingPointProcessor',1480);bcb(1481,1,Oie,Coc);_.Mb=function Doc(a){return hoc(BD(a,10))};var qW=mdb(Rne,'BreakingPointProcessor/0methodref$isEnd$Type',1481);bcb(1482,1,Oie,Eoc);_.Mb=function Foc(a){return ioc(BD(a,10))};var rW=mdb(Rne,'BreakingPointProcessor/1methodref$isStart$Type',1482);bcb(1483,1,ene,Joc);_.pf=function Koc(a,b){Hoc(this,BD(a,37),b)};var uW=mdb(Rne,'BreakingPointRemover',1483);bcb(1484,1,qie,Loc);_.td=function Moc(a){BD(a,128).k=true};var tW=mdb(Rne,'BreakingPointRemover/lambda$0$Type',1484);bcb(797,1,{},Xoc);_.b=0;_.e=0;_.f=0;_.j=0;var AW=mdb(Rne,'GraphStats',797);bcb(798,1,{},Zoc);_.Ce=function $oc(a,b){return $wnd.Math.max(Edb(ED(a)),Edb(ED(b)))};var vW=mdb(Rne,'GraphStats/0methodref$max$Type',798);bcb(799,1,{},_oc);_.Ce=function apc(a,b){return $wnd.Math.max(Edb(ED(a)),Edb(ED(b)))};var wW=mdb(Rne,'GraphStats/2methodref$max$Type',799);bcb(1660,1,{},bpc);_.Ce=function cpc(a,b){return Yoc(ED(a),ED(b))};var xW=mdb(Rne,'GraphStats/lambda$1$Type',1660);bcb(1661,1,{},dpc);_.Kb=function epc(a){return Roc(this.a,BD(a,29))};var yW=mdb(Rne,'GraphStats/lambda$2$Type',1661);bcb(1662,1,{},fpc);_.Kb=function gpc(a){return Qoc(this.a,BD(a,29))};var zW=mdb(Rne,'GraphStats/lambda$6$Type',1662);bcb(800,1,{},hpc);_.Vf=function ipc(a,b){var c;c=BD(vNb(a,(Nyc(),Eyc)),15);return c?c:(mmb(),mmb(),jmb)};_.Wf=function jpc(){return false};var BW=mdb(Rne,'ICutIndexCalculator/ManualCutIndexCalculator',800);bcb(802,1,{},kpc);_.Vf=function lpc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;u=(b.n==null&&Uoc(b),b.n);i=(b.d==null&&Uoc(b),b.d);t=KC(UD,Vje,25,u.length,15,1);t[0]=u[0];r=u[0];for(j=1;j<u.length;j++){t[j]=t[j-1]+u[j];r+=u[j]}e=Znc(b)-1;g=BD(vNb(a,(Nyc(),Fyc)),19).a;d=Qje;c=new Rkb;for(m=$wnd.Math.max(0,e-g);m<=$wnd.Math.min(b.f-1,e+g);m++){p=r/(m+1);q=0;k=1;f=new Rkb;s=Qje;l=0;h=0;o=i[0];if(m==0){s=r;h=(b.g==null&&(b.g=Poc(b,new _oc)),Edb(b.g))}else{while(k<b.f){if(t[k-1]-q>=p){Ekb(f,meb(k));s=$wnd.Math.max(s,t[k-1]-l);h+=o;q+=t[k-1]-q;l=t[k-1];o=i[k]}o=$wnd.Math.max(o,i[k]);++k}h+=o}n=$wnd.Math.min(1/s,1/b.b/h);if(n>d){d=n;c=f}}return c};_.Wf=function mpc(){return false};var CW=mdb(Rne,'MSDCutIndexHeuristic',802);bcb(1617,1,ene,ppc);_.pf=function qpc(a,b){opc(BD(a,37),b)};var DW=mdb(Rne,'SingleEdgeGraphWrapper',1617);bcb(227,22,{3:1,35:1,22:1,227:1},Bpc);var upc,vpc,wpc,xpc,ypc,zpc;var EW=ndb(Sne,'CenterEdgeLabelPlacementStrategy',227,CI,Dpc,Cpc);var Epc;bcb(422,22,{3:1,35:1,22:1,422:1},Jpc);var Gpc,Hpc;var FW=ndb(Sne,'ConstraintCalculationStrategy',422,CI,Lpc,Kpc);var Mpc;bcb(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Tpc);_.Kf=function Vpc(){return Spc(this)};_.Xf=function Upc(){return Spc(this)};var Opc,Ppc,Qpc;var GW=ndb(Sne,'CrossingMinimizationStrategy',314,CI,Xpc,Wpc);var Ypc;bcb(337,22,{3:1,35:1,22:1,337:1},cqc);var $pc,_pc,aqc;var HW=ndb(Sne,'CuttingStrategy',337,CI,eqc,dqc);var fqc;bcb(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},oqc);_.Kf=function qqc(){return nqc(this)};_.Xf=function pqc(){return nqc(this)};var hqc,iqc,jqc,kqc,lqc;var IW=ndb(Sne,'CycleBreakingStrategy',335,CI,sqc,rqc);var tqc;bcb(419,22,{3:1,35:1,22:1,419:1},yqc);var vqc,wqc;var JW=ndb(Sne,'DirectionCongruency',419,CI,Aqc,zqc);var Bqc;bcb(450,22,{3:1,35:1,22:1,450:1},Hqc);var Dqc,Eqc,Fqc;var KW=ndb(Sne,'EdgeConstraint',450,CI,Jqc,Iqc);var Kqc;bcb(276,22,{3:1,35:1,22:1,276:1},Uqc);var Mqc,Nqc,Oqc,Pqc,Qqc,Rqc;var LW=ndb(Sne,'EdgeLabelSideSelection',276,CI,Wqc,Vqc);var Xqc;bcb(479,22,{3:1,35:1,22:1,479:1},arc);var Zqc,$qc;var MW=ndb(Sne,'EdgeStraighteningStrategy',479,CI,crc,brc);var drc;bcb(274,22,{3:1,35:1,22:1,274:1},mrc);var frc,grc,hrc,irc,jrc,krc;var NW=ndb(Sne,'FixedAlignment',274,CI,orc,nrc);var prc;bcb(275,22,{3:1,35:1,22:1,275:1},zrc);var rrc,trc,urc,vrc,wrc,xrc;var OW=ndb(Sne,'GraphCompactionStrategy',275,CI,Brc,Arc);var Crc;bcb(256,22,{3:1,35:1,22:1,256:1},Prc);var Erc,Frc,Grc,Hrc,Irc,Jrc,Krc,Lrc,Mrc,Nrc;var PW=ndb(Sne,'GraphProperties',256,CI,Rrc,Qrc);var Src;bcb(292,22,{3:1,35:1,22:1,292:1},Yrc);var Urc,Vrc,Wrc;var QW=ndb(Sne,'GreedySwitchType',292,CI,$rc,Zrc);var _rc;bcb(303,22,{3:1,35:1,22:1,303:1},fsc);var bsc,csc,dsc;var RW=ndb(Sne,'InLayerConstraint',303,CI,hsc,gsc);var isc;bcb(420,22,{3:1,35:1,22:1,420:1},nsc);var ksc,lsc;var SW=ndb(Sne,'InteractiveReferencePoint',420,CI,psc,osc);var qsc;var ssc,tsc,usc,vsc,wsc,xsc,ysc,zsc,Asc,Bsc,Csc,Dsc,Esc,Fsc,Gsc,Hsc,Isc,Jsc,Ksc,Lsc,Msc,Nsc,Osc,Psc,Qsc,Rsc,Ssc,Tsc,Usc,Vsc,Wsc,Xsc,Ysc,Zsc,$sc,_sc,atc,btc,ctc,dtc,etc,ftc,gtc,htc,itc,jtc,ktc,ltc,mtc,ntc,otc,ptc,qtc,rtc,stc,ttc,utc,vtc;bcb(163,22,{3:1,35:1,22:1,163:1},Dtc);var xtc,ytc,ztc,Atc,Btc;var TW=ndb(Sne,'LayerConstraint',163,CI,Ftc,Etc);var Gtc;bcb(848,1,ale,kwc);_.Qe=function lwc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yne),''),'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.'),puc),(_5c(),V5c)),JW),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zne),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$ne),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),Muc),V5c),SW),pqb(L5c))));o4c(a,$ne,goe,Ouc);o4c(a,$ne,qoe,Nuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_ne),''),'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.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aoe),''),'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.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(C5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,boe),''),'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."),false),T5c),wI),pqb(M5c)),OC(GC(ZI,1),nie,2,6,['org.eclipse.elk.layered.northOrSouthPort']))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,coe),''),'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."),xvc),V5c),cX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,doe),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),meb(7)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eoe),''),'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.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,foe),''),'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.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,goe),'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).'),nuc),V5c),IW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hoe),ppe),'Node Layering Strategy'),'Strategy for node layering.'),bvc),V5c),YW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ioe),ppe),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),Tuc),V5c),TW),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,joe),ppe),'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."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,koe),ppe),'Layer ID'),'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,loe),qpe),'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."),meb(4)),X5c),JI),pqb(L5c))));o4c(a,loe,hoe,Wuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,moe),qpe),'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."),meb(2)),X5c),JI),pqb(L5c))));o4c(a,moe,hoe,Yuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,noe),rpe),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),_uc),V5c),aX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ooe),rpe),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),meb(0)),X5c),JI),pqb(L5c))));o4c(a,ooe,noe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,poe),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),meb(Ohe)),X5c),JI),pqb(L5c))));o4c(a,poe,hoe,Quc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qoe),spe),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),luc),V5c),GW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,roe),spe),'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.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,soe),spe),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),U5c),BI),pqb(L5c))));o4c(a,soe,tpe,fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,toe),spe),'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."),false),T5c),wI),pqb(L5c))));o4c(a,toe,qoe,juc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,uoe),spe),'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."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,voe),spe),'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.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,woe),upe),'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."),meb(40)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xoe),upe),'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."),cuc),V5c),QW),pqb(L5c))));o4c(a,xoe,qoe,duc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yoe),'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."),$tc),V5c),QW),pqb(L5c))));o4c(a,yoe,qoe,_tc);o4c(a,yoe,tpe,auc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zoe),vpe),'Node Placement Strategy'),'Strategy for node placement.'),vvc),V5c),_W),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Aoe),vpe),'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."),T5c),wI),pqb(L5c))));o4c(a,Aoe,zoe,lvc);o4c(a,Aoe,zoe,mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Boe),wpe),'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."),fvc),V5c),MW),pqb(L5c))));o4c(a,Boe,zoe,gvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Coe),wpe),'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.'),ivc),V5c),NW),pqb(L5c))));o4c(a,Coe,zoe,jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Doe),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),U5c),BI),pqb(L5c))));o4c(a,Doe,zoe,ovc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Eoe),'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."),V5c),$W),pqb(K5c))));o4c(a,Eoe,zoe,tvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Foe),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),rvc),V5c),$W),pqb(L5c))));o4c(a,Foe,zoe,svc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Goe),xpe),'Self-Loop Distribution'),'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'),xuc),V5c),eX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hoe),xpe),'Self-Loop Ordering'),'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'),zuc),V5c),fX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ioe),'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.'),Buc),V5c),hX),pqb(L5c))));o4c(a,Ioe,ype,Cuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Joe),'edgeRouting.splines.sloppy'),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.2),U5c),BI),pqb(L5c))));o4c(a,Joe,ype,Euc);o4c(a,Joe,Ioe,Fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Koe),'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),U5c),BI),pqb(L5c))));o4c(a,Koe,ype,vuc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Loe),zpe),'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."),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Moe),zpe),'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),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Noe),zpe),'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),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ooe),zpe),'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),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Poe),Ape),'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.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qoe),Ape),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Roe),Ape),'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.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Soe),Bpe),Ole),'Tries to further compact components (disconnected sub-graphs).'),false),T5c),wI),pqb(L5c))));o4c(a,Soe,zme,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Toe),Cpe),'Post Compaction Strategy'),Dpe),Ntc),V5c),OW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Uoe),Cpe),'Post Compaction Constraint Calculation'),Dpe),Ltc),V5c),FW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Voe),Epe),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Woe),Epe),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),meb(16)),X5c),JI),pqb(L5c))));o4c(a,Woe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xoe),Epe),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),meb(5)),X5c),JI),pqb(L5c))));o4c(a,Xoe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yoe),Fpe),'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'."),bwc),V5c),jX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zoe),Fpe),'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),U5c),BI),pqb(L5c))));o4c(a,Zoe,Yoe,Ivc);o4c(a,Zoe,Yoe,Jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$oe),Fpe),'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),U5c),BI),pqb(L5c))));o4c(a,$oe,Yoe,Lvc);o4c(a,$oe,Yoe,Mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_oe),Gpe),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),Tvc),V5c),HW),pqb(L5c))));o4c(a,_oe,Yoe,Uvc);o4c(a,_oe,Yoe,Vvc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,ape),Gpe),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),Y5c),yK),pqb(L5c))));o4c(a,ape,_oe,Ovc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bpe),'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.'),Qvc),X5c),JI),pqb(L5c))));o4c(a,bpe,_oe,Rvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cpe),Hpe),'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.'),gwc),V5c),iX),pqb(L5c))));o4c(a,cpe,Yoe,hwc);o4c(a,cpe,Yoe,iwc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,dpe),Hpe),'Valid Indices for Wrapping'),null),Y5c),yK),pqb(L5c))));o4c(a,dpe,Yoe,dwc);o4c(a,dpe,Yoe,ewc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,epe),Ipe),'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.'),true),T5c),wI),pqb(L5c))));o4c(a,epe,Yoe,Zvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fpe),Ipe),'Distance Penalty When Improving Cuts'),null),2),U5c),BI),pqb(L5c))));o4c(a,fpe,Yoe,Xvc);o4c(a,fpe,epe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gpe),Ipe),'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.'),true),T5c),wI),pqb(L5c))));o4c(a,gpe,Yoe,_vc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hpe),Jpe),'Edge Label Side Selection'),'Method to decide on edge label sides.'),tuc),V5c),LW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ipe),Jpe),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),ruc),V5c),EW),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,jpe),Kpe),'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.'),Wtc),V5c),bX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,kpe),Kpe),'No Model Order'),'Set on a node to not set a model order for this node even though it is a real node.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lpe),Kpe),'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.'),Ptc),V5c),hQ),pqb(L5c))));o4c(a,lpe,zme,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mpe),Kpe),'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.'),Ttc),V5c),ZW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,npe),Kpe),'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),U5c),BI),pqb(L5c))));o4c(a,npe,jpe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ope),Kpe),'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),U5c),BI),pqb(L5c))));o4c(a,ope,jpe,null);Oyc((new Pyc,a))};var Itc,Jtc,Ktc,Ltc,Mtc,Ntc,Otc,Ptc,Qtc,Rtc,Stc,Ttc,Utc,Vtc,Wtc,Xtc,Ytc,Ztc,$tc,_tc,auc,buc,cuc,duc,euc,fuc,guc,huc,iuc,juc,kuc,luc,muc,nuc,ouc,puc,quc,ruc,suc,tuc,uuc,vuc,wuc,xuc,yuc,zuc,Auc,Buc,Cuc,Duc,Euc,Fuc,Guc,Huc,Iuc,Juc,Kuc,Luc,Muc,Nuc,Ouc,Puc,Quc,Ruc,Suc,Tuc,Uuc,Vuc,Wuc,Xuc,Yuc,Zuc,$uc,_uc,avc,bvc,cvc,dvc,evc,fvc,gvc,hvc,ivc,jvc,kvc,lvc,mvc,nvc,ovc,pvc,qvc,rvc,svc,tvc,uvc,vvc,wvc,xvc,yvc,zvc,Avc,Bvc,Cvc,Dvc,Evc,Fvc,Gvc,Hvc,Ivc,Jvc,Kvc,Lvc,Mvc,Nvc,Ovc,Pvc,Qvc,Rvc,Svc,Tvc,Uvc,Vvc,Wvc,Xvc,Yvc,Zvc,$vc,_vc,awc,bwc,cwc,dwc,ewc,fwc,gwc,hwc,iwc;var UW=mdb(Sne,'LayeredMetaDataProvider',848);bcb(986,1,ale,Pyc);_.Qe=function Qyc(a){Oyc(a)};var mwc,nwc,owc,pwc,qwc,rwc,swc,twc,uwc,vwc,wwc,xwc,ywc,zwc,Awc,Bwc,Cwc,Dwc,Ewc,Fwc,Gwc,Hwc,Iwc,Jwc,Kwc,Lwc,Mwc,Nwc,Owc,Pwc,Qwc,Rwc,Swc,Twc,Uwc,Vwc,Wwc,Xwc,Ywc,Zwc,$wc,_wc,axc,bxc,cxc,dxc,exc,fxc,gxc,hxc,ixc,jxc,kxc,lxc,mxc,nxc,oxc,pxc,qxc,rxc,sxc,txc,uxc,vxc,wxc,xxc,yxc,zxc,Axc,Bxc,Cxc,Dxc,Exc,Fxc,Gxc,Hxc,Ixc,Jxc,Kxc,Lxc,Mxc,Nxc,Oxc,Pxc,Qxc,Rxc,Sxc,Txc,Uxc,Vxc,Wxc,Xxc,Yxc,Zxc,$xc,_xc,ayc,byc,cyc,dyc,eyc,fyc,gyc,hyc,iyc,jyc,kyc,lyc,myc,nyc,oyc,pyc,qyc,ryc,syc,tyc,uyc,vyc,wyc,xyc,yyc,zyc,Ayc,Byc,Cyc,Dyc,Eyc,Fyc,Gyc,Hyc,Iyc,Jyc,Kyc,Lyc,Myc;var WW=mdb(Sne,'LayeredOptions',986);bcb(987,1,{},Ryc);_.$e=function Syc(){var a;return a=new jUb,a};_._e=function Tyc(a){};var VW=mdb(Sne,'LayeredOptions/LayeredFactory',987);bcb(1372,1,{});_.a=0;var Uyc;var $1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder',1372);bcb(779,1372,{},ezc);var bzc,czc;var XW=mdb(Sne,'LayeredSpacings/LayeredSpacingsBuilder',779);bcb(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},nzc);_.Kf=function pzc(){return mzc(this)};_.Xf=function ozc(){return mzc(this)};var fzc,gzc,hzc,izc,jzc,kzc;var YW=ndb(Sne,'LayeringStrategy',313,CI,rzc,qzc);var szc;bcb(378,22,{3:1,35:1,22:1,378:1},zzc);var uzc,vzc,wzc;var ZW=ndb(Sne,'LongEdgeOrderingStrategy',378,CI,Bzc,Azc);var Czc;bcb(197,22,{3:1,35:1,22:1,197:1},Kzc);var Ezc,Fzc,Gzc,Hzc;var $W=ndb(Sne,'NodeFlexibility',197,CI,Nzc,Mzc);var Ozc;bcb(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},Xzc);_.Kf=function Zzc(){return Wzc(this)};_.Xf=function Yzc(){return Wzc(this)};var Qzc,Rzc,Szc,Tzc,Uzc;var _W=ndb(Sne,'NodePlacementStrategy',315,CI,_zc,$zc);var aAc;bcb(260,22,{3:1,35:1,22:1,260:1},lAc);var cAc,dAc,eAc,fAc,gAc,hAc,iAc,jAc;var aX=ndb(Sne,'NodePromotionStrategy',260,CI,nAc,mAc);var oAc;bcb(339,22,{3:1,35:1,22:1,339:1},uAc);var qAc,rAc,sAc;var bX=ndb(Sne,'OrderingStrategy',339,CI,wAc,vAc);var xAc;bcb(421,22,{3:1,35:1,22:1,421:1},CAc);var zAc,AAc;var cX=ndb(Sne,'PortSortingStrategy',421,CI,EAc,DAc);var FAc;bcb(452,22,{3:1,35:1,22:1,452:1},LAc);var HAc,IAc,JAc;var dX=ndb(Sne,'PortType',452,CI,NAc,MAc);var OAc;bcb(375,22,{3:1,35:1,22:1,375:1},UAc);var QAc,RAc,SAc;var eX=ndb(Sne,'SelfLoopDistributionStrategy',375,CI,WAc,VAc);var XAc;bcb(376,22,{3:1,35:1,22:1,376:1},aBc);var ZAc,$Ac;var fX=ndb(Sne,'SelfLoopOrderingStrategy',376,CI,cBc,bBc);var dBc;bcb(304,1,{304:1},oBc);var gX=mdb(Sne,'Spacings',304);bcb(336,22,{3:1,35:1,22:1,336:1},uBc);var qBc,rBc,sBc;var hX=ndb(Sne,'SplineRoutingMode',336,CI,wBc,vBc);var xBc;bcb(338,22,{3:1,35:1,22:1,338:1},DBc);var zBc,ABc,BBc;var iX=ndb(Sne,'ValidifyStrategy',338,CI,FBc,EBc);var GBc;bcb(377,22,{3:1,35:1,22:1,377:1},MBc);var IBc,JBc,KBc;var jX=ndb(Sne,'WrappingStrategy',377,CI,OBc,NBc);var PBc;bcb(1383,1,Bqe,VBc);_.Yf=function WBc(a){return BD(a,37),RBc};_.pf=function XBc(a,b){UBc(this,BD(a,37),b)};var RBc;var kX=mdb(Cqe,'DepthFirstCycleBreaker',1383);bcb(782,1,Bqe,aCc);_.Yf=function cCc(a){return BD(a,37),YBc};_.pf=function dCc(a,b){$Bc(this,BD(a,37),b)};_.Zf=function bCc(a){return BD(Ikb(a,Bub(this.d,a.c.length)),10)};var YBc;var lX=mdb(Cqe,'GreedyCycleBreaker',782);bcb(1386,782,Bqe,eCc);_.Zf=function fCc(a){var b,c,d,e;e=null;b=Ohe;for(d=new olb(a);d.a<d.c.c.length;){c=BD(mlb(d),10);if(wNb(c,(wtc(),Zsc))&&BD(vNb(c,Zsc),19).a<b){b=BD(vNb(c,Zsc),19).a;e=c}}if(!e){return BD(Ikb(a,Bub(this.d,a.c.length)),10)}return e};var mX=mdb(Cqe,'GreedyModelOrderCycleBreaker',1386);bcb(1384,1,Bqe,kCc);_.Yf=function lCc(a){return BD(a,37),gCc};_.pf=function mCc(a,b){jCc(this,BD(a,37),b)};var gCc;var nX=mdb(Cqe,'InteractiveCycleBreaker',1384);bcb(1385,1,Bqe,rCc);_.Yf=function sCc(a){return BD(a,37),nCc};_.pf=function tCc(a,b){qCc(this,BD(a,37),b)};_.a=0;_.b=0;var nCc;var oX=mdb(Cqe,'ModelOrderCycleBreaker',1385);bcb(1389,1,Bqe,DCc);_.Yf=function ECc(a){return BD(a,37),uCc};_.pf=function FCc(a,b){BCc(this,BD(a,37),b)};var uCc;var rX=mdb(Dqe,'CoffmanGrahamLayerer',1389);bcb(1390,1,Dke,GCc);_.ue=function HCc(a,b){return xCc(this.a,BD(a,10),BD(b,10))};_.Fb=function ICc(a){return this===a};_.ve=function JCc(){return new tpb(this)};var pX=mdb(Dqe,'CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type',1390);bcb(1391,1,Dke,KCc);_.ue=function LCc(a,b){return ACc(this.a,BD(a,10),BD(b,10))};_.Fb=function MCc(a){return this===a};_.ve=function NCc(){return new tpb(this)};var qX=mdb(Dqe,'CoffmanGrahamLayerer/lambda$1$Type',1391);bcb(1392,1,Bqe,QCc);_.Yf=function RCc(a){return BD(a,37),e3c(e3c(e3c(new j3c,(qUb(),lUb),(S8b(),n8b)),mUb,w8b),nUb,v8b)};_.pf=function SCc(a,b){PCc(this,BD(a,37),b)};var tX=mdb(Dqe,'InteractiveLayerer',1392);bcb(569,1,{569:1},TCc);_.a=0;_.c=0;var sX=mdb(Dqe,'InteractiveLayerer/LayerSpan',569);bcb(1388,1,Bqe,ZCc);_.Yf=function $Cc(a){return BD(a,37),UCc};_.pf=function _Cc(a,b){WCc(this,BD(a,37),b)};var UCc;var uX=mdb(Dqe,'LongestPathLayerer',1388);bcb(1395,1,Bqe,iDc);_.Yf=function jDc(a){return BD(a,37),e3c(e3c(e3c(new j3c,(qUb(),lUb),(S8b(),Z7b)),mUb,w8b),nUb,v8b)};_.pf=function kDc(a,b){gDc(this,BD(a,37),b)};_.a=0;_.b=0;_.d=0;var aDc,bDc;var wX=mdb(Dqe,'MinWidthLayerer',1395);bcb(1396,1,Dke,mDc);_.ue=function nDc(a,b){return lDc(this,BD(a,10),BD(b,10))};_.Fb=function oDc(a){return this===a};_.ve=function pDc(){return new tpb(this)};var vX=mdb(Dqe,'MinWidthLayerer/MinOutgoingEdgesComparator',1396);bcb(1387,1,Bqe,xDc);_.Yf=function yDc(a){return BD(a,37),qDc};_.pf=function zDc(a,b){wDc(this,BD(a,37),b)};var qDc;var xX=mdb(Dqe,'NetworkSimplexLayerer',1387);bcb(1393,1,Bqe,LDc);_.Yf=function MDc(a){return BD(a,37),e3c(e3c(e3c(new j3c,(qUb(),lUb),(S8b(),Z7b)),mUb,w8b),nUb,v8b)};_.pf=function NDc(a,b){IDc(this,BD(a,37),b)};_.d=0;_.f=0;_.g=0;_.i=0;_.s=0;_.t=0;_.u=0;var zX=mdb(Dqe,'StretchWidthLayerer',1393);bcb(1394,1,Dke,PDc);_.ue=function QDc(a,b){return ODc(BD(a,10),BD(b,10))};_.Fb=function RDc(a){return this===a};_.ve=function SDc(){return new tpb(this)};var yX=mdb(Dqe,'StretchWidthLayerer/1',1394);bcb(402,1,Eqe);_.Nf=function fEc(a,b,c,d,e,f){};_._f=function dEc(a,b,c){return YDc(this,a,b,c)};_.Mf=function eEc(){this.g=KC(VD,Fqe,25,this.d,15,1);this.f=KC(VD,Fqe,25,this.d,15,1)};_.Of=function gEc(a,b){this.e[a]=KC(WD,oje,25,b[a].length,15,1)};_.Pf=function hEc(a,b,c){var d;d=c[a][b];d.p=b;this.e[a][b]=b};_.Qf=function iEc(a,b,c,d){BD(Ikb(d[a][b].j,c),11).p=this.d++};_.b=0;_.c=0;_.d=0;var BX=mdb(Gqe,'AbstractBarycenterPortDistributor',402);bcb(1633,1,Dke,jEc);_.ue=function kEc(a,b){return _Dc(this.a,BD(a,11),BD(b,11))};_.Fb=function lEc(a){return this===a};_.ve=function mEc(){return new tpb(this)};var AX=mdb(Gqe,'AbstractBarycenterPortDistributor/lambda$0$Type',1633);bcb(817,1,Mne,uEc);_.Nf=function xEc(a,b,c,d,e,f){};_.Pf=function zEc(a,b,c){};_.Qf=function AEc(a,b,c,d){};_.Lf=function vEc(){return false};_.Mf=function wEc(){this.c=this.e.a;this.g=this.f.g};_.Of=function yEc(a,b){b[a][0].c.p=a};_.Rf=function BEc(){return false};_.ag=function CEc(a,b,c,d){if(c){rEc(this,a)}else{oEc(this,a,d);pEc(this,a,b)}if(a.c.length>1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,BD(this,660)):(mmb(),Okb(a,this.d));PEc(this.e,a)}};_.Sf=function DEc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=sEc(c,a.length)){f=a[b-(c?1:-1)];UDc(this.f,f,c?(KAc(),IAc):(KAc(),HAc))}e=a[b][0];k=!d||e.k==(j0b(),e0b);j=Ou(a[b]);this.ag(j,k,false,c);g=0;for(i=new olb(j);i.a<i.c.c.length;){h=BD(mlb(i),10);a[b][g++]=h}return false};_.Tf=function EEc(a,b){var c,d,e,f,g;g=sEc(b,a.length);f=Ou(a[g]);this.ag(f,false,true,b);c=0;for(e=new olb(f);e.a<e.c.c.length;){d=BD(mlb(e),10);a[g][c++]=d}return false};var EX=mdb(Gqe,'BarycenterHeuristic',817);bcb(658,1,{658:1},FEc);_.Ib=function GEc(){return 'BarycenterState [node='+this.c+', summedWeight='+this.d+', degree='+this.b+', barycenter='+this.a+', visited='+this.e+']'};_.b=0;_.d=0;_.e=false;var CX=mdb(Gqe,'BarycenterHeuristic/BarycenterState',658);bcb(1802,1,Dke,HEc);_.ue=function IEc(a,b){return qEc(this.a,BD(a,10),BD(b,10))};_.Fb=function JEc(a){return this===a};_.ve=function KEc(){return new tpb(this)};var DX=mdb(Gqe,'BarycenterHeuristic/lambda$0$Type',1802);bcb(816,1,Mne,SEc);_.Mf=function TEc(){};_.Nf=function UEc(a,b,c,d,e,f){};_.Qf=function XEc(a,b,c,d){};_.Of=function VEc(a,b){this.a[a]=KC(CX,{3:1,4:1,5:1,2018:1},658,b[a].length,0,1);this.b[a]=KC(FX,{3:1,4:1,5:1,2019:1},233,b[a].length,0,1)};_.Pf=function WEc(a,b,c){OEc(this,c[a][b],true)};_.c=false;var HX=mdb(Gqe,'ForsterConstraintResolver',816);bcb(233,1,{233:1},$Ec,_Ec);_.Ib=function aFc(){var a,b;b=new Ufb;b.a+='[';for(a=0;a<this.d.length;a++){Qfb(b,a0b(this.d[a]));REc(this.g,this.d[0]).a!=null&&Qfb(Qfb((b.a+='<',b),Jdb(REc(this.g,this.d[0]).a)),'>');a<this.d.length-1&&(b.a+=She,b)}return (b.a+=']',b).a};_.a=0;_.c=0;_.f=0;var FX=mdb(Gqe,'ForsterConstraintResolver/ConstraintGroup',233);bcb(1797,1,qie,bFc);_.td=function cFc(a){OEc(this.a,BD(a,10),false)};var GX=mdb(Gqe,'ForsterConstraintResolver/lambda$0$Type',1797);bcb(214,1,{214:1,225:1},fFc);_.Nf=function hFc(a,b,c,d,e,f){};_.Of=function iFc(a,b){};_.Mf=function gFc(){this.r=KC(WD,oje,25,this.n,15,1)};_.Pf=function jFc(a,b,c){var d,e;e=c[a][b];d=e.e;!!d&&Ekb(this.b,d)};_.Qf=function kFc(a,b,c,d){++this.n};_.Ib=function lFc(){return wlb(this.e,new Tqb)};_.g=false;_.i=false;_.n=0;_.s=false;var IX=mdb(Gqe,'GraphInfoHolder',214);bcb(1832,1,Mne,pFc);_.Nf=function sFc(a,b,c,d,e,f){};_.Of=function tFc(a,b){};_.Qf=function vFc(a,b,c,d){};_._f=function qFc(a,b,c){c&&b>0?(RHc(this.a,a[b-1],a[b]),undefined):!c&&b<a.length-1?(RHc(this.a,a[b],a[b+1]),undefined):THc(this.a,a[b],c?(Ucd(),Tcd):(Ucd(),zcd));return mFc(this,a,b,c)};_.Mf=function rFc(){this.d=KC(WD,oje,25,this.c,15,1);this.a=new dIc(this.d)};_.Pf=function uFc(a,b,c){var d;d=c[a][b];this.c+=d.j.c.length};_.c=0;var JX=mdb(Gqe,'GreedyPortDistributor',1832);bcb(1401,1,Bqe,CFc);_.Yf=function DFc(a){return zFc(BD(a,37))};_.pf=function EFc(a,b){BFc(BD(a,37),b)};var xFc;var LX=mdb(Gqe,'InteractiveCrossingMinimizer',1401);bcb(1402,1,Dke,GFc);_.ue=function HFc(a,b){return FFc(this,BD(a,10),BD(b,10))};_.Fb=function IFc(a){return this===a};_.ve=function JFc(){return new tpb(this)};var KX=mdb(Gqe,'InteractiveCrossingMinimizer/1',1402);bcb(507,1,{507:1,123:1,51:1},fGc);_.Yf=function gGc(a){var b;return BD(a,37),b=k3c(KFc),e3c(b,(qUb(),nUb),(S8b(),H8b)),b};_.pf=function hGc(a,b){YFc(this,BD(a,37),b)};_.e=0;var KFc;var RX=mdb(Gqe,'LayerSweepCrossingMinimizer',507);bcb(1398,1,qie,iGc);_.td=function jGc(a){MFc(this.a,BD(a,214))};var MX=mdb(Gqe,'LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type',1398);bcb(1399,1,qie,kGc);_.td=function lGc(a){VFc(this.a,BD(a,214))};var NX=mdb(Gqe,'LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type',1399);bcb(1400,1,qie,mGc);_.td=function nGc(a){XFc(this.a,BD(a,214))};var OX=mdb(Gqe,'LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type',1400);bcb(454,22,{3:1,35:1,22:1,454:1},sGc);var oGc,pGc,qGc;var PX=ndb(Gqe,'LayerSweepCrossingMinimizer/CrossMinType',454,CI,uGc,tGc);var vGc;bcb(1397,1,Oie,xGc);_.Mb=function yGc(a){return LFc(),BD(a,29).a.c.length==0};var QX=mdb(Gqe,'LayerSweepCrossingMinimizer/lambda$0$Type',1397);bcb(1799,1,Mne,BGc);_.Mf=function CGc(){};_.Nf=function DGc(a,b,c,d,e,f){};_.Qf=function GGc(a,b,c,d){};_.Of=function EGc(a,b){b[a][0].c.p=a;this.b[a]=KC(SX,{3:1,4:1,5:1,1944:1},659,b[a].length,0,1)};_.Pf=function FGc(a,b,c){var d;d=c[a][b];d.p=b;NC(this.b[a],b,new HGc)};var VX=mdb(Gqe,'LayerSweepTypeDecider',1799);bcb(659,1,{659:1},HGc);_.Ib=function IGc(){return 'NodeInfo [connectedEdges='+this.a+', hierarchicalInfluence='+this.b+', randomInfluence='+this.c+']'};_.a=0;_.b=0;_.c=0;var SX=mdb(Gqe,'LayerSweepTypeDecider/NodeInfo',659);bcb(1800,1,Vke,JGc);_.Lb=function KGc(a){return a1b(new b1b(BD(a,11).b))};_.Fb=function LGc(a){return this===a};_.Mb=function MGc(a){return a1b(new b1b(BD(a,11).b))};var TX=mdb(Gqe,'LayerSweepTypeDecider/lambda$0$Type',1800);bcb(1801,1,Vke,NGc);_.Lb=function OGc(a){return a1b(new b1b(BD(a,11).b))};_.Fb=function PGc(a){return this===a};_.Mb=function QGc(a){return a1b(new b1b(BD(a,11).b))};var UX=mdb(Gqe,'LayerSweepTypeDecider/lambda$1$Type',1801);bcb(1833,402,Eqe,RGc);_.$f=function SGc(a,b,c){var d,e,f,g,h,i,j,k,l;j=this.g;switch(c.g){case 1:{d=0;e=0;for(i=new olb(a.j);i.a<i.c.c.length;){g=BD(mlb(i),11);if(g.e.c.length!=0){++d;g.j==(Ucd(),Acd)&&++e}}f=b+e;l=b+d;for(h=W_b(a,(KAc(),HAc)).Kc();h.Ob();){g=BD(h.Pb(),11);if(g.j==(Ucd(),Acd)){j[g.p]=f;--f}else{j[g.p]=l;--l}}return d}case 2:{k=0;for(h=W_b(a,(KAc(),IAc)).Kc();h.Ob();){g=BD(h.Pb(),11);++k;j[g.p]=b+k}return k}default:throw vbb(new Vdb);}};var WX=mdb(Gqe,'LayerTotalPortDistributor',1833);bcb(660,817,{660:1,225:1},XGc);_.ag=function ZGc(a,b,c,d){if(c){rEc(this,a)}else{oEc(this,a,d);pEc(this,a,b)}if(a.c.length>1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,this):(mmb(),Okb(a,this.d));Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),Awc)))||PEc(this.e,a)}};var YX=mdb(Gqe,'ModelOrderBarycenterHeuristic',660);bcb(1803,1,Dke,$Gc);_.ue=function _Gc(a,b){return VGc(this.a,BD(a,10),BD(b,10))};_.Fb=function aHc(a){return this===a};_.ve=function bHc(){return new tpb(this)};var XX=mdb(Gqe,'ModelOrderBarycenterHeuristic/lambda$0$Type',1803);bcb(1403,1,Bqe,fHc);_.Yf=function gHc(a){var b;return BD(a,37),b=k3c(cHc),e3c(b,(qUb(),nUb),(S8b(),H8b)),b};_.pf=function hHc(a,b){eHc((BD(a,37),b))};var cHc;var ZX=mdb(Gqe,'NoCrossingMinimizer',1403);bcb(796,402,Eqe,iHc);_.$f=function jHc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;l=this.g;switch(c.g){case 1:{e=0;f=0;for(k=new olb(a.j);k.a<k.c.c.length;){i=BD(mlb(k),11);if(i.e.c.length!=0){++e;i.j==(Ucd(),Acd)&&++f}}d=1/(e+1);g=b+f*d;n=b+1-d;for(j=W_b(a,(KAc(),HAc)).Kc();j.Ob();){i=BD(j.Pb(),11);if(i.j==(Ucd(),Acd)){l[i.p]=g;g-=d}else{l[i.p]=n;n-=d}}break}case 2:{h=0;for(k=new olb(a.j);k.a<k.c.c.length;){i=BD(mlb(k),11);i.g.c.length==0||++h}d=1/(h+1);m=b+d;for(j=W_b(a,(KAc(),IAc)).Kc();j.Ob();){i=BD(j.Pb(),11);l[i.p]=m;m+=d}break}default:throw vbb(new Wdb('Port type is undefined'));}return 1};var $X=mdb(Gqe,'NodeRelativePortDistributor',796);bcb(807,1,{},nHc,oHc);var _X=mdb(Gqe,'SweepCopy',807);bcb(1798,1,Mne,rHc);_.Of=function uHc(a,b){};_.Mf=function sHc(){var a;a=KC(WD,oje,25,this.f,15,1);this.d=new LIc(a);this.a=new dIc(a)};_.Nf=function tHc(a,b,c,d,e,f){var g;g=BD(Ikb(f[a][b].j,c),11);e.c==g&&e.c.i.c==e.d.i.c&&++this.e[a]};_.Pf=function vHc(a,b,c){var d;d=c[a][b];this.c[a]=this.c[a]|d.k==(j0b(),i0b)};_.Qf=function wHc(a,b,c,d){var e;e=BD(Ikb(d[a][b].j,c),11);e.p=this.f++;e.g.c.length+e.e.c.length>1&&(e.j==(Ucd(),zcd)?(this.b[a]=true):e.j==Tcd&&a>0&&(this.b[a-1]=true))};_.f=0;var aY=mdb(Lne,'AllCrossingsCounter',1798);bcb(587,1,{},BHc);_.b=0;_.d=0;var bY=mdb(Lne,'BinaryIndexedTree',587);bcb(524,1,{},dIc);var DHc,EHc;var lY=mdb(Lne,'CrossingsCounter',524);bcb(1906,1,Dke,hIc);_.ue=function iIc(a,b){return YHc(this.a,BD(a,11),BD(b,11))};_.Fb=function jIc(a){return this===a};_.ve=function kIc(){return new tpb(this)};var cY=mdb(Lne,'CrossingsCounter/lambda$0$Type',1906);bcb(1907,1,Dke,lIc);_.ue=function mIc(a,b){return ZHc(this.a,BD(a,11),BD(b,11))};_.Fb=function nIc(a){return this===a};_.ve=function oIc(){return new tpb(this)};var dY=mdb(Lne,'CrossingsCounter/lambda$1$Type',1907);bcb(1908,1,Dke,pIc);_.ue=function qIc(a,b){return $Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function rIc(a){return this===a};_.ve=function sIc(){return new tpb(this)};var eY=mdb(Lne,'CrossingsCounter/lambda$2$Type',1908);bcb(1909,1,Dke,tIc);_.ue=function uIc(a,b){return _Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function vIc(a){return this===a};_.ve=function wIc(){return new tpb(this)};var fY=mdb(Lne,'CrossingsCounter/lambda$3$Type',1909);bcb(1910,1,qie,xIc);_.td=function yIc(a){eIc(this.a,BD(a,11))};var gY=mdb(Lne,'CrossingsCounter/lambda$4$Type',1910);bcb(1911,1,Oie,zIc);_.Mb=function AIc(a){return fIc(this.a,BD(a,11))};var hY=mdb(Lne,'CrossingsCounter/lambda$5$Type',1911);bcb(1912,1,qie,CIc);_.td=function DIc(a){BIc(this,a)};var iY=mdb(Lne,'CrossingsCounter/lambda$6$Type',1912);bcb(1913,1,qie,EIc);_.td=function FIc(a){var b;FHc();Wjb(this.b,(b=this.a,BD(a,11),b))};var jY=mdb(Lne,'CrossingsCounter/lambda$7$Type',1913);bcb(826,1,Vke,GIc);_.Lb=function HIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};_.Fb=function IIc(a){return this===a};_.Mb=function JIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};var kY=mdb(Lne,'CrossingsCounter/lambda$8$Type',826);bcb(1905,1,{},LIc);var pY=mdb(Lne,'HyperedgeCrossingsCounter',1905);bcb(467,1,{35:1,467:1},NIc);_.wd=function OIc(a){return MIc(this,BD(a,467))};_.b=0;_.c=0;_.e=0;_.f=0;var oY=mdb(Lne,'HyperedgeCrossingsCounter/Hyperedge',467);bcb(362,1,{35:1,362:1},QIc);_.wd=function RIc(a){return PIc(this,BD(a,362))};_.b=0;_.c=0;var nY=mdb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner',362);bcb(523,22,{3:1,35:1,22:1,523:1},VIc);var SIc,TIc;var mY=ndb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',523,CI,XIc,WIc);var YIc;bcb(1405,1,Bqe,dJc);_.Yf=function eJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?_Ic:null};_.pf=function fJc(a,b){cJc(this,BD(a,37),b)};var _Ic;var rY=mdb(Hqe,'InteractiveNodePlacer',1405);bcb(1406,1,Bqe,tJc);_.Yf=function uJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?gJc:null};_.pf=function vJc(a,b){rJc(this,BD(a,37),b)};var gJc,hJc,iJc;var tY=mdb(Hqe,'LinearSegmentsNodePlacer',1406);bcb(257,1,{35:1,257:1},zJc);_.wd=function AJc(a){return wJc(this,BD(a,257))};_.Fb=function BJc(a){var b;if(JD(a,257)){b=BD(a,257);return this.b==b.b}return false};_.Hb=function CJc(){return this.b};_.Ib=function DJc(){return 'ls'+Fe(this.e)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.g=0;var sY=mdb(Hqe,'LinearSegmentsNodePlacer/LinearSegment',257);bcb(1408,1,Bqe,$Jc);_.Yf=function _Jc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?EJc:null};_.pf=function hKc(a,b){WJc(this,BD(a,37),b)};_.b=0;_.g=0;var EJc;var dZ=mdb(Hqe,'NetworkSimplexPlacer',1408);bcb(1427,1,Dke,iKc);_.ue=function jKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function kKc(a){return this===a};_.ve=function lKc(){return new tpb(this)};var uY=mdb(Hqe,'NetworkSimplexPlacer/0methodref$compare$Type',1427);bcb(1429,1,Dke,mKc);_.ue=function nKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function oKc(a){return this===a};_.ve=function pKc(){return new tpb(this)};var vY=mdb(Hqe,'NetworkSimplexPlacer/1methodref$compare$Type',1429);bcb(649,1,{649:1},qKc);var wY=mdb(Hqe,'NetworkSimplexPlacer/EdgeRep',649);bcb(401,1,{401:1},rKc);_.b=false;var xY=mdb(Hqe,'NetworkSimplexPlacer/NodeRep',401);bcb(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},vKc);var CY=mdb(Hqe,'NetworkSimplexPlacer/Path',508);bcb(1409,1,{},wKc);_.Kb=function xKc(a){return BD(a,17).d.i.k};var yY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$0$Type',1409);bcb(1410,1,Oie,yKc);_.Mb=function zKc(a){return BD(a,267)==(j0b(),g0b)};var zY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$1$Type',1410);bcb(1411,1,{},AKc);_.Kb=function BKc(a){return BD(a,17).d.i};var AY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$2$Type',1411);bcb(1412,1,Oie,CKc);_.Mb=function DKc(a){return eLc(Lzc(BD(a,10)))};var BY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$3$Type',1412);bcb(1413,1,Oie,EKc);_.Mb=function FKc(a){return dKc(BD(a,11))};var DY=mdb(Hqe,'NetworkSimplexPlacer/lambda$0$Type',1413);bcb(1414,1,qie,GKc);_.td=function HKc(a){LJc(this.a,this.b,BD(a,11))};var EY=mdb(Hqe,'NetworkSimplexPlacer/lambda$1$Type',1414);bcb(1423,1,qie,IKc);_.td=function JKc(a){MJc(this.a,BD(a,17))};var FY=mdb(Hqe,'NetworkSimplexPlacer/lambda$10$Type',1423);bcb(1424,1,{},KKc);_.Kb=function LKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var GY=mdb(Hqe,'NetworkSimplexPlacer/lambda$11$Type',1424);bcb(1425,1,qie,MKc);_.td=function NKc(a){NJc(this.a,BD(a,10))};var HY=mdb(Hqe,'NetworkSimplexPlacer/lambda$12$Type',1425);bcb(1426,1,{},OKc);_.Kb=function PKc(a){return FJc(),meb(BD(a,121).e)};var IY=mdb(Hqe,'NetworkSimplexPlacer/lambda$13$Type',1426);bcb(1428,1,{},QKc);_.Kb=function RKc(a){return FJc(),meb(BD(a,121).e)};var JY=mdb(Hqe,'NetworkSimplexPlacer/lambda$15$Type',1428);bcb(1430,1,Oie,SKc);_.Mb=function TKc(a){return FJc(),BD(a,401).c.k==(j0b(),h0b)};var KY=mdb(Hqe,'NetworkSimplexPlacer/lambda$17$Type',1430);bcb(1431,1,Oie,UKc);_.Mb=function VKc(a){return FJc(),BD(a,401).c.j.c.length>1};var LY=mdb(Hqe,'NetworkSimplexPlacer/lambda$18$Type',1431);bcb(1432,1,qie,WKc);_.td=function XKc(a){eKc(this.c,this.b,this.d,this.a,BD(a,401))};_.c=0;_.d=0;var MY=mdb(Hqe,'NetworkSimplexPlacer/lambda$19$Type',1432);bcb(1415,1,{},YKc);_.Kb=function ZKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var NY=mdb(Hqe,'NetworkSimplexPlacer/lambda$2$Type',1415);bcb(1433,1,qie,$Kc);_.td=function _Kc(a){fKc(this.a,BD(a,11))};_.a=0;var OY=mdb(Hqe,'NetworkSimplexPlacer/lambda$20$Type',1433);bcb(1434,1,{},aLc);_.Kb=function bLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var PY=mdb(Hqe,'NetworkSimplexPlacer/lambda$21$Type',1434);bcb(1435,1,qie,cLc);_.td=function dLc(a){OJc(this.a,BD(a,10))};var QY=mdb(Hqe,'NetworkSimplexPlacer/lambda$22$Type',1435);bcb(1436,1,Oie,fLc);_.Mb=function gLc(a){return eLc(a)};var RY=mdb(Hqe,'NetworkSimplexPlacer/lambda$23$Type',1436);bcb(1437,1,{},hLc);_.Kb=function iLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var SY=mdb(Hqe,'NetworkSimplexPlacer/lambda$24$Type',1437);bcb(1438,1,Oie,jLc);_.Mb=function kLc(a){return PJc(this.a,BD(a,10))};var TY=mdb(Hqe,'NetworkSimplexPlacer/lambda$25$Type',1438);bcb(1439,1,qie,lLc);_.td=function mLc(a){QJc(this.a,this.b,BD(a,10))};var UY=mdb(Hqe,'NetworkSimplexPlacer/lambda$26$Type',1439);bcb(1440,1,Oie,nLc);_.Mb=function oLc(a){return FJc(),!OZb(BD(a,17))};var VY=mdb(Hqe,'NetworkSimplexPlacer/lambda$27$Type',1440);bcb(1441,1,Oie,pLc);_.Mb=function qLc(a){return FJc(),!OZb(BD(a,17))};var WY=mdb(Hqe,'NetworkSimplexPlacer/lambda$28$Type',1441);bcb(1442,1,{},rLc);_.Ce=function sLc(a,b){return RJc(this.a,BD(a,29),BD(b,29))};var XY=mdb(Hqe,'NetworkSimplexPlacer/lambda$29$Type',1442);bcb(1416,1,{},tLc);_.Kb=function uLc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var YY=mdb(Hqe,'NetworkSimplexPlacer/lambda$3$Type',1416);bcb(1417,1,Oie,vLc);_.Mb=function wLc(a){return FJc(),cKc(BD(a,17))};var ZY=mdb(Hqe,'NetworkSimplexPlacer/lambda$4$Type',1417);bcb(1418,1,qie,xLc);_.td=function yLc(a){XJc(this.a,BD(a,17))};var $Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$5$Type',1418);bcb(1419,1,{},zLc);_.Kb=function ALc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var _Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$6$Type',1419);bcb(1420,1,Oie,BLc);_.Mb=function CLc(a){return FJc(),BD(a,10).k==(j0b(),h0b)};var aZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$7$Type',1420);bcb(1421,1,{},DLc);_.Kb=function ELc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(O_b(BD(a,10)).a.Kc(),new Sq))))};var bZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$8$Type',1421);bcb(1422,1,Oie,FLc);_.Mb=function GLc(a){return FJc(),NZb(BD(a,17))};var cZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$9$Type',1422);bcb(1404,1,Bqe,KLc);_.Yf=function LLc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?HLc:null};_.pf=function MLc(a,b){JLc(BD(a,37),b)};var HLc;var eZ=mdb(Hqe,'SimpleNodePlacer',1404);bcb(180,1,{180:1},ULc);_.Ib=function VLc(){var a;a='';this.c==(YLc(),XLc)?(a+=kle):this.c==WLc&&(a+=jle);this.o==(eMc(),cMc)?(a+=vle):this.o==dMc?(a+='UP'):(a+='BALANCED');return a};var hZ=mdb(Kqe,'BKAlignedLayout',180);bcb(516,22,{3:1,35:1,22:1,516:1},ZLc);var WLc,XLc;var fZ=ndb(Kqe,'BKAlignedLayout/HDirection',516,CI,_Lc,$Lc);var aMc;bcb(515,22,{3:1,35:1,22:1,515:1},fMc);var cMc,dMc;var gZ=ndb(Kqe,'BKAlignedLayout/VDirection',515,CI,hMc,gMc);var iMc;bcb(1634,1,{},mMc);var iZ=mdb(Kqe,'BKAligner',1634);bcb(1637,1,{},rMc);var lZ=mdb(Kqe,'BKCompactor',1637);bcb(654,1,{654:1},sMc);_.a=0;var jZ=mdb(Kqe,'BKCompactor/ClassEdge',654);bcb(458,1,{458:1},uMc);_.a=null;_.b=0;var kZ=mdb(Kqe,'BKCompactor/ClassNode',458);bcb(1407,1,Bqe,CMc);_.Yf=function GMc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?vMc:null};_.pf=function HMc(a,b){BMc(this,BD(a,37),b)};_.d=false;var vMc;var mZ=mdb(Kqe,'BKNodePlacer',1407);bcb(1635,1,{},JMc);_.d=0;var oZ=mdb(Kqe,'NeighborhoodInformation',1635);bcb(1636,1,Dke,OMc);_.ue=function PMc(a,b){return NMc(this,BD(a,46),BD(b,46))};_.Fb=function QMc(a){return this===a};_.ve=function RMc(){return new tpb(this)};var nZ=mdb(Kqe,'NeighborhoodInformation/NeighborComparator',1636);bcb(808,1,{});var sZ=mdb(Kqe,'ThresholdStrategy',808);bcb(1763,808,{},WMc);_.bg=function XMc(a,b,c){return this.a.o==(eMc(),dMc)?Pje:Qje};_.cg=function YMc(){};var pZ=mdb(Kqe,'ThresholdStrategy/NullThresholdStrategy',1763);bcb(579,1,{579:1},ZMc);_.c=false;_.d=false;var qZ=mdb(Kqe,'ThresholdStrategy/Postprocessable',579);bcb(1764,808,{},bNc);_.bg=function cNc(a,b,c){var d,e,f;e=b==c;d=this.a.a[c.p]==b;if(!(e||d)){return a}f=a;if(this.a.c==(YLc(),XLc)){e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}else{e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}return f};_.cg=function dNc(){var a,b,c,d,e;while(this.d.b!=0){e=BD(Ksb(this.d),579);d=_Mc(this,e);if(!d.a){continue}a=d.a;c=Ccb(this.a.f[this.a.g[e.b.p].p]);if(!c&&!OZb(a)&&a.c.i.c==a.d.i.c){continue}b=aNc(this,e);b||swb(this.e,e)}while(this.e.a.c.length!=0){aNc(this,BD(rwb(this.e),579))}};var rZ=mdb(Kqe,'ThresholdStrategy/SimpleThresholdStrategy',1764);bcb(635,1,{635:1,246:1,234:1},hNc);_.Kf=function jNc(){return gNc(this)};_.Xf=function iNc(){return gNc(this)};var eNc;var tZ=mdb(Lqe,'EdgeRouterFactory',635);bcb(1458,1,Bqe,wNc);_.Yf=function xNc(a){return uNc(BD(a,37))};_.pf=function yNc(a,b){vNc(BD(a,37),b)};var lNc,mNc,nNc,oNc,pNc,qNc,rNc,sNc;var uZ=mdb(Lqe,'OrthogonalEdgeRouter',1458);bcb(1451,1,Bqe,NNc);_.Yf=function ONc(a){return INc(BD(a,37))};_.pf=function PNc(a,b){KNc(this,BD(a,37),b)};var zNc,ANc,BNc,CNc,DNc,ENc;var wZ=mdb(Lqe,'PolylineEdgeRouter',1451);bcb(1452,1,Vke,RNc);_.Lb=function SNc(a){return QNc(BD(a,10))};_.Fb=function TNc(a){return this===a};_.Mb=function UNc(a){return QNc(BD(a,10))};var vZ=mdb(Lqe,'PolylineEdgeRouter/1',1452);bcb(1809,1,Oie,ZNc);_.Mb=function $Nc(a){return BD(a,129).c==(HOc(),FOc)};var xZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$0$Type',1809);bcb(1810,1,{},_Nc);_.Ge=function aOc(a){return BD(a,129).d};var yZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$1$Type',1810);bcb(1811,1,Oie,bOc);_.Mb=function cOc(a){return BD(a,129).c==(HOc(),FOc)};var zZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$2$Type',1811);bcb(1812,1,{},dOc);_.Ge=function eOc(a){return BD(a,129).d};var AZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$3$Type',1812);bcb(1813,1,{},fOc);_.Ge=function gOc(a){return BD(a,129).d};var BZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$4$Type',1813);bcb(1814,1,{},hOc);_.Ge=function iOc(a){return BD(a,129).d};var CZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$5$Type',1814);bcb(112,1,{35:1,112:1},uOc);_.wd=function vOc(a){return kOc(this,BD(a,112))};_.Fb=function wOc(a){var b;if(JD(a,112)){b=BD(a,112);return this.g==b.g}return false};_.Hb=function xOc(){return this.g};_.Ib=function zOc(){var a,b,c,d;a=new Wfb('{');d=new olb(this.n);while(d.a<d.c.c.length){c=BD(mlb(d),11);b=P_b(c.i);b==null&&(b='n'+S_b(c.i));a.a+=''+b;d.a<d.c.c.length&&(a.a+=',',a)}a.a+='}';return a.a};_.a=0;_.b=0;_.c=NaN;_.d=0;_.g=0;_.i=0;_.o=0;_.s=NaN;var NZ=mdb(Mqe,'HyperEdgeSegment',112);bcb(129,1,{129:1},DOc);_.Ib=function EOc(){return this.a+'->'+this.b+' ('+Yr(this.c)+')'};_.d=0;var EZ=mdb(Mqe,'HyperEdgeSegmentDependency',129);bcb(520,22,{3:1,35:1,22:1,520:1},IOc);var FOc,GOc;var DZ=ndb(Mqe,'HyperEdgeSegmentDependency/DependencyType',520,CI,KOc,JOc);var LOc;bcb(1815,1,{},ZOc);var MZ=mdb(Mqe,'HyperEdgeSegmentSplitter',1815);bcb(1816,1,{},aPc);_.a=0;_.b=0;var FZ=mdb(Mqe,'HyperEdgeSegmentSplitter/AreaRating',1816);bcb(329,1,{329:1},bPc);_.a=0;_.b=0;_.c=0;var GZ=mdb(Mqe,'HyperEdgeSegmentSplitter/FreeArea',329);bcb(1817,1,Dke,cPc);_.ue=function dPc(a,b){return _Oc(BD(a,112),BD(b,112))};_.Fb=function ePc(a){return this===a};_.ve=function fPc(){return new tpb(this)};var HZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$0$Type',1817);bcb(1818,1,qie,gPc);_.td=function hPc(a){TOc(this.a,this.d,this.c,this.b,BD(a,112))};_.b=0;var IZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$1$Type',1818);bcb(1819,1,{},iPc);_.Kb=function jPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var JZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$2$Type',1819);bcb(1820,1,{},kPc);_.Kb=function lPc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var KZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$3$Type',1820);bcb(1821,1,{},mPc);_.Fe=function nPc(a){return Edb(ED(a))};var LZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$4$Type',1821);bcb(655,1,{},tPc);_.a=0;_.b=0;_.c=0;var QZ=mdb(Mqe,'OrthogonalRoutingGenerator',655);bcb(1638,1,{},xPc);_.Kb=function yPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var OZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$0$Type',1638);bcb(1639,1,{},zPc);_.Kb=function APc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var PZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$1$Type',1639);bcb(661,1,{});var RZ=mdb(Nqe,'BaseRoutingDirectionStrategy',661);bcb(1807,661,{},EPc);_.dg=function FPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.a<j.c.c.length;){i=BD(mlb(j),11);l=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).a;for(h=new olb(i.g);h.a<h.c.c.length;){g=BD(mlb(h),17);if(!OZb(g)){o=g.d;p=l7c(OC(GC(m1,1),nie,8,0,[o.i.n,o.n,o.a])).a;if($wnd.Math.abs(l-p)>qme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b+m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function GPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function HPc(){return Ucd(),Rcd};_.gg=function IPc(){return Ucd(),Acd};var SZ=mdb(Nqe,'NorthToSouthRoutingStrategy',1807);bcb(1808,661,{},JPc);_.dg=function KPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b-a.o*c;for(j=new olb(a.n);j.a<j.c.c.length;){i=BD(mlb(j),11);l=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).a;for(h=new olb(i.g);h.a<h.c.c.length;){g=BD(mlb(h),17);if(!OZb(g)){o=g.d;p=l7c(OC(GC(m1,1),nie,8,0,[o.i.n,o.n,o.a])).a;if($wnd.Math.abs(l-p)>qme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b-m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function LPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function MPc(){return Ucd(),Acd};_.gg=function NPc(){return Ucd(),Rcd};var TZ=mdb(Nqe,'SouthToNorthRoutingStrategy',1808);bcb(1806,661,{},OPc);_.dg=function PPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.a<j.c.c.length;){i=BD(mlb(j),11);l=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).b;for(h=new olb(i.g);h.a<h.c.c.length;){g=BD(mlb(h),17);if(!OZb(g)){o=g.d;p=l7c(OC(GC(m1,1),nie,8,0,[o.i.n,o.n,o.a])).b;if($wnd.Math.abs(l-p)>qme){f=k;e=a;d=new f7c(f,l);Dsb(g.a,d);BPc(this,g,e,d,true);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true);f=b+m.o*c;e=m;d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true)}d=new f7c(f,p);Dsb(g.a,d);BPc(this,g,e,d,true)}}}}};_.eg=function QPc(a){return a.i.n.b+a.n.b+a.a.b};_.fg=function RPc(){return Ucd(),zcd};_.gg=function SPc(){return Ucd(),Tcd};var UZ=mdb(Nqe,'WestToEastRoutingStrategy',1806);bcb(813,1,{},YPc);_.Ib=function ZPc(){return Fe(this.a)};_.b=0;_.c=false;_.d=false;_.f=0;var WZ=mdb(Pqe,'NubSpline',813);bcb(407,1,{407:1},aQc,bQc);var VZ=mdb(Pqe,'NubSpline/PolarCP',407);bcb(1453,1,Bqe,vQc);_.Yf=function xQc(a){return qQc(BD(a,37))};_.pf=function yQc(a,b){uQc(this,BD(a,37),b)};var cQc,dQc,eQc,fQc,gQc;var b$=mdb(Pqe,'SplineEdgeRouter',1453);bcb(268,1,{268:1},BQc);_.Ib=function CQc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var XZ=mdb(Pqe,'SplineEdgeRouter/Dependency',268);bcb(455,22,{3:1,35:1,22:1,455:1},GQc);var DQc,EQc;var YZ=ndb(Pqe,'SplineEdgeRouter/SideToProcess',455,CI,IQc,HQc);var JQc;bcb(1454,1,Oie,LQc);_.Mb=function MQc(a){return hQc(),!BD(a,128).o};var ZZ=mdb(Pqe,'SplineEdgeRouter/lambda$0$Type',1454);bcb(1455,1,{},NQc);_.Ge=function OQc(a){return hQc(),BD(a,128).v+1};var $Z=mdb(Pqe,'SplineEdgeRouter/lambda$1$Type',1455);bcb(1456,1,qie,PQc);_.td=function QQc(a){sQc(this.a,this.b,BD(a,46))};var _Z=mdb(Pqe,'SplineEdgeRouter/lambda$2$Type',1456);bcb(1457,1,qie,RQc);_.td=function SQc(a){tQc(this.a,this.b,BD(a,46))};var a$=mdb(Pqe,'SplineEdgeRouter/lambda$3$Type',1457);bcb(128,1,{35:1,128:1},YQc,ZQc);_.wd=function $Qc(a){return WQc(this,BD(a,128))};_.b=0;_.e=false;_.f=0;_.g=0;_.j=false;_.k=false;_.n=0;_.o=false;_.p=false;_.q=false;_.s=0;_.u=0;_.v=0;_.F=0;var d$=mdb(Pqe,'SplineSegment',128);bcb(459,1,{459:1},_Qc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var c$=mdb(Pqe,'SplineSegment/EdgeInformation',459);bcb(1234,1,{},hRc);var f$=mdb(Uqe,hme,1234);bcb(1235,1,Dke,jRc);_.ue=function kRc(a,b){return iRc(BD(a,135),BD(b,135))};_.Fb=function lRc(a){return this===a};_.ve=function mRc(){return new tpb(this)};var e$=mdb(Uqe,ime,1235);bcb(1233,1,{},tRc);var g$=mdb(Uqe,'MrTree',1233);bcb(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},ARc);_.Kf=function CRc(){return zRc(this)};_.Xf=function BRc(){return zRc(this)};var uRc,vRc,wRc,xRc;var h$=ndb(Uqe,'TreeLayoutPhases',393,CI,ERc,DRc);var FRc;bcb(1130,209,Mle,HRc);_.Ze=function IRc(a,b){var c,d,e,f,g,h,i;Ccb(DD(hkd(a,(JTc(),ATc))))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c));g=(h=new SRc,tNb(h,a),yNb(h,(mTc(),dTc),a),i=new Lqb,pRc(a,h,i),oRc(a,h,i),h);f=gRc(this.a,g);for(e=new olb(f);e.a<e.c.c.length;){d=BD(mlb(e),135);rRc(this.b,d,Udd(b,1/f.c.length))}g=fRc(f);nRc(g)};var i$=mdb(Uqe,'TreeLayoutProvider',1130);bcb(1847,1,vie,KRc);_.Jc=function LRc(a){reb(this,a)};_.Kc=function MRc(){return mmb(),Emb(),Dmb};var j$=mdb(Uqe,'TreeUtil/1',1847);bcb(1848,1,vie,NRc);_.Jc=function ORc(a){reb(this,a)};_.Kc=function PRc(){return mmb(),Emb(),Dmb};var k$=mdb(Uqe,'TreeUtil/2',1848);bcb(502,134,{3:1,502:1,94:1,134:1});_.g=0;var m$=mdb(Vqe,'TGraphElement',502);bcb(188,502,{3:1,188:1,502:1,94:1,134:1},QRc);_.Ib=function RRc(){return !!this.b&&!!this.c?WRc(this.b)+'->'+WRc(this.c):'e_'+tb(this)};var l$=mdb(Vqe,'TEdge',188);bcb(135,134,{3:1,135:1,94:1,134:1},SRc);_.Ib=function TRc(){var a,b,c,d,e;e=null;for(d=Jsb(this.b,0);d.b!=d.d.c;){c=BD(Xsb(d),86);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\n'}for(b=Jsb(this.a,0);b.b!=b.d.c;){a=BD(Xsb(b),188);e+=(!!a.b&&!!a.c?WRc(a.b)+'->'+WRc(a.c):'e_'+tb(a))+'\n'}return e};var n$=mdb(Vqe,'TGraph',135);bcb(633,502,{3:1,502:1,633:1,94:1,134:1});var r$=mdb(Vqe,'TShape',633);bcb(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},XRc);_.Ib=function YRc(){return WRc(this)};var q$=mdb(Vqe,'TNode',86);bcb(255,1,vie,ZRc);_.Jc=function $Rc(a){reb(this,a)};_.Kc=function _Rc(){var a;return a=Jsb(this.a.d,0),new aSc(a)};var p$=mdb(Vqe,'TNode/2',255);bcb(358,1,aie,aSc);_.Nb=function bSc(a){Rrb(this,a)};_.Pb=function dSc(){return BD(Xsb(this.a),188).c};_.Ob=function cSc(){return Wsb(this.a)};_.Qb=function eSc(){Zsb(this.a)};var o$=mdb(Vqe,'TNode/2/1',358);bcb(1840,1,ene,hSc);_.pf=function jSc(a,b){gSc(this,BD(a,135),b)};var s$=mdb(Wqe,'FanProcessor',1840);bcb(327,22,{3:1,35:1,22:1,327:1,234:1},rSc);_.Kf=function sSc(){switch(this.g){case 0:return new QSc;case 1:return new hSc;case 2:return new GSc;case 3:return new zSc;case 4:return new NSc;case 5:return new TSc;default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var kSc,lSc,mSc,nSc,oSc,pSc;var t$=ndb(Wqe,Ene,327,CI,uSc,tSc);var vSc;bcb(1843,1,ene,zSc);_.pf=function ASc(a,b){xSc(this,BD(a,135),b)};_.a=0;var v$=mdb(Wqe,'LevelHeightProcessor',1843);bcb(1844,1,vie,BSc);_.Jc=function CSc(a){reb(this,a)};_.Kc=function DSc(){return mmb(),Emb(),Dmb};var u$=mdb(Wqe,'LevelHeightProcessor/1',1844);bcb(1841,1,ene,GSc);_.pf=function HSc(a,b){ESc(this,BD(a,135),b)};_.a=0;var x$=mdb(Wqe,'NeighborsProcessor',1841);bcb(1842,1,vie,ISc);_.Jc=function JSc(a){reb(this,a)};_.Kc=function KSc(){return mmb(),Emb(),Dmb};var w$=mdb(Wqe,'NeighborsProcessor/1',1842);bcb(1845,1,ene,NSc);_.pf=function OSc(a,b){LSc(this,BD(a,135),b)};_.a=0;var y$=mdb(Wqe,'NodePositionProcessor',1845);bcb(1839,1,ene,QSc);_.pf=function RSc(a,b){PSc(this,BD(a,135))};var z$=mdb(Wqe,'RootProcessor',1839);bcb(1846,1,ene,TSc);_.pf=function USc(a,b){SSc(BD(a,135))};var A$=mdb(Wqe,'Untreeifyer',1846);var VSc,WSc,XSc,YSc,ZSc,$Sc,_Sc,aTc,bTc,cTc,dTc,eTc,fTc,gTc,hTc,iTc,jTc,kTc,lTc;bcb(851,1,ale,sTc);_.Qe=function tTc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zqe),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),qTc),(_5c(),V5c)),E$),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$qe),''),'Search Order'),'Which search order to use when computing a spanning tree.'),oTc),V5c),F$),pqb(L5c))));KTc((new LTc,a))};var nTc,oTc,pTc,qTc;var B$=mdb(_qe,'MrTreeMetaDataProvider',851);bcb(994,1,ale,LTc);_.Qe=function MTc(a){KTc(a)};var uTc,vTc,wTc,xTc,yTc,zTc,ATc,BTc,CTc,DTc,ETc,FTc,GTc,HTc,ITc;var D$=mdb(_qe,'MrTreeOptions',994);bcb(995,1,{},NTc);_.$e=function OTc(){var a;return a=new HRc,a};_._e=function PTc(a){};var C$=mdb(_qe,'MrTreeOptions/MrtreeFactory',995);bcb(480,22,{3:1,35:1,22:1,480:1},TTc);var QTc,RTc;var E$=ndb(_qe,'OrderWeighting',480,CI,VTc,UTc);var WTc;bcb(425,22,{3:1,35:1,22:1,425:1},_Tc);var YTc,ZTc;var F$=ndb(_qe,'TreeifyingOrder',425,CI,bUc,aUc);var cUc;bcb(1459,1,Bqe,lUc);_.Yf=function mUc(a){return BD(a,135),eUc};_.pf=function nUc(a,b){kUc(this,BD(a,135),b)};var eUc;var G$=mdb('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1459);bcb(1460,1,Bqe,sUc);_.Yf=function tUc(a){return BD(a,135),oUc};_.pf=function uUc(a,b){rUc(this,BD(a,135),b)};var oUc;var H$=mdb('org.eclipse.elk.alg.mrtree.p2order','NodeOrderer',1460);bcb(1461,1,Bqe,CUc);_.Yf=function DUc(a){return BD(a,135),vUc};_.pf=function EUc(a,b){AUc(this,BD(a,135),b)};_.a=0;var vUc;var I$=mdb('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1461);bcb(1462,1,Bqe,IUc);_.Yf=function JUc(a){return BD(a,135),FUc};_.pf=function KUc(a,b){HUc(BD(a,135),b)};var FUc;var J$=mdb('org.eclipse.elk.alg.mrtree.p4route','EdgeRouter',1462);var LUc;bcb(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},RUc);_.Kf=function TUc(){return QUc(this)};_.Xf=function SUc(){return QUc(this)};var NUc,OUc;var K$=ndb(cre,'RadialLayoutPhases',495,CI,VUc,UUc);var WUc;bcb(1131,209,Mle,ZUc);_.Ze=function $Uc(a,b){var c,d,e,f,g,h;c=YUc(this,a);Odd(b,'Radial layout',c.c.length);Ccb(DD(hkd(a,(ZWc(),QWc))))||$Cb((d=new _Cb((Pgd(),new bhd(a))),d));h=aVc(a);jkd(a,(MUc(),LUc),h);if(!h){throw vbb(new Wdb('The given graph is not a tree!'))}e=Edb(ED(hkd(a,VWc)));e==0&&(e=_Uc(a));jkd(a,VWc,e);for(g=new olb(YUc(this,a));g.a<g.c.c.length;){f=BD(mlb(g),51);f.pf(a,Udd(b,1))}Qdd(b)};var L$=mdb(cre,'RadialLayoutProvider',1131);bcb(549,1,Dke,jVc);_.ue=function kVc(a,b){return iVc(this.a,this.b,BD(a,33),BD(b,33))};_.Fb=function lVc(a){return this===a};_.ve=function mVc(){return new tpb(this)};_.a=0;_.b=0;var M$=mdb(cre,'RadialUtil/lambda$0$Type',549);bcb(1375,1,ene,oVc);_.pf=function pVc(a,b){nVc(BD(a,33),b)};var N$=mdb(fre,'CalculateGraphSize',1375);bcb(442,22,{3:1,35:1,22:1,442:1,234:1},uVc);_.Kf=function vVc(){switch(this.g){case 0:return new bWc;case 1:return new NVc;case 2:return new oVc;default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var qVc,rVc,sVc;var O$=ndb(fre,Ene,442,CI,xVc,wVc);var yVc;bcb(645,1,{});_.e=1;_.g=0;var P$=mdb(gre,'AbstractRadiusExtensionCompaction',645);bcb(1772,645,{},KVc);_.hg=function LVc(a){var b,c,d,e,f,g,h,i,j;this.c=BD(hkd(a,(MUc(),LUc)),33);EVc(this,this.c);this.d=tXc(BD(hkd(a,(ZWc(),WWc)),293));i=BD(hkd(a,KWc),19);!!i&&DVc(this,i.a);h=ED(hkd(a,(Y9c(),T9c)));FVc(this,(uCb(h),h));j=gVc(this.c);!!this.d&&this.d.lg(j);GVc(this,j);g=new amb(OC(GC(E2,1),hre,33,0,[this.c]));for(c=0;c<2;c++){for(b=0;b<j.c.length;b++){e=new amb(OC(GC(E2,1),hre,33,0,[(tCb(b,j.c.length),BD(j.c[b],33))]));f=b<j.c.length-1?(tCb(b+1,j.c.length),BD(j.c[b+1],33)):(tCb(0,j.c.length),BD(j.c[0],33));d=b==0?BD(Ikb(j,j.c.length-1),33):(tCb(b-1,j.c.length),BD(j.c[b-1],33));IVc(this,(tCb(b,j.c.length),BD(j.c[b],33),g),d,f,e)}}};var Q$=mdb(gre,'AnnulusWedgeCompaction',1772);bcb(1374,1,ene,NVc);_.pf=function OVc(a,b){MVc(BD(a,33),b)};var R$=mdb(gre,'GeneralCompactor',1374);bcb(1771,645,{},SVc);_.hg=function TVc(a){var b,c,d,e;c=BD(hkd(a,(MUc(),LUc)),33);this.f=c;this.b=tXc(BD(hkd(a,(ZWc(),WWc)),293));e=BD(hkd(a,KWc),19);!!e&&DVc(this,e.a);d=ED(hkd(a,(Y9c(),T9c)));FVc(this,(uCb(d),d));b=gVc(c);!!this.b&&this.b.lg(b);QVc(this,b)};_.a=0;var S$=mdb(gre,'RadialCompaction',1771);bcb(1779,1,{},VVc);_.ig=function WVc(a){var b,c,d,e,f,g;this.a=a;b=0;g=gVc(a);d=0;for(f=new olb(g);f.a<f.c.c.length;){e=BD(mlb(f),33);++d;for(c=d;c<g.c.length;c++){UVc(this,e,(tCb(c,g.c.length),BD(g.c[c],33)))&&(b+=1)}}return b};var T$=mdb(ire,'CrossingMinimizationPosition',1779);bcb(1777,1,{},XVc);_.ig=function YVc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d=0;for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);h=atd(BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82));j=h.i+h.g/2;k=h.j+h.f/2;e=a.i+a.g/2;f=a.j+a.f/2;l=new d7c;l.a=j-e;l.b=k-f;g=new f7c(l.a,l.b);l6c(g,a.g,a.f);l.a-=g.a;l.b-=g.b;e=j-l.a;f=k-l.b;i=new f7c(l.a,l.b);l6c(i,h.g,h.f);l.a-=i.a;l.b-=i.b;j=e+l.a;k=f+l.b;m=j-e;n=k-f;d+=$wnd.Math.sqrt(m*m+n*n)}return d};var U$=mdb(ire,'EdgeLengthOptimization',1777);bcb(1778,1,{},ZVc);_.ig=function $Vc(a){var b,c,d,e,f,g,h,i,j,k,l;d=0;for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);h=atd(BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82));i=h.i+h.g/2;j=h.j+h.f/2;e=BD(hkd(h,(Y9c(),C9c)),8);f=a.i+e.a+a.g/2;g=a.j+e.b+a.f;k=i-f;l=j-g;d+=$wnd.Math.sqrt(k*k+l*l)}return d};var V$=mdb(ire,'EdgeLengthPositionOptimization',1778);bcb(1373,645,ene,bWc);_.pf=function cWc(a,b){aWc(this,BD(a,33),b)};var W$=mdb('org.eclipse.elk.alg.radial.intermediate.overlaps','RadiusExtensionOverlapRemoval',1373);bcb(426,22,{3:1,35:1,22:1,426:1},hWc);var dWc,eWc;var X$=ndb(kre,'AnnulusWedgeCriteria',426,CI,jWc,iWc);var kWc;bcb(380,22,{3:1,35:1,22:1,380:1},rWc);var mWc,nWc,oWc;var Y$=ndb(kre,Sle,380,CI,tWc,sWc);var uWc;bcb(852,1,ale,IWc);_.Qe=function JWc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lre),''),'Order ID'),'The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly.'),meb(0)),(_5c(),X5c)),JI),pqb((N5c(),K5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mre),''),'Radius'),'The radius option can be used to set the initial radius for the radial layouter.'),0),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nre),''),'Compaction'),'With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately.'),yWc),V5c),Y$),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ore),''),'Compaction Step Size'),'Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration.'),meb(1)),X5c),JI),pqb(L5c))));o4c(a,ore,nre,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pre),''),'Sorter'),'Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates.'),EWc),V5c),b_),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qre),''),'Annulus Wedge Criteria'),'Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals.'),GWc),V5c),X$),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rre),''),'Translation Optimization'),'Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized.'),AWc),V5c),a_),pqb(L5c))));$Wc((new _Wc,a))};var wWc,xWc,yWc,zWc,AWc,BWc,CWc,DWc,EWc,FWc,GWc;var Z$=mdb(kre,'RadialMetaDataProvider',852);bcb(996,1,ale,_Wc);_.Qe=function aXc(a){$Wc(a)};var KWc,LWc,MWc,NWc,OWc,PWc,QWc,RWc,SWc,TWc,UWc,VWc,WWc,XWc,YWc;var _$=mdb(kre,'RadialOptions',996);bcb(997,1,{},bXc);_.$e=function cXc(){var a;return a=new ZUc,a};_._e=function dXc(a){};var $$=mdb(kre,'RadialOptions/RadialFactory',997);bcb(340,22,{3:1,35:1,22:1,340:1},kXc);var eXc,fXc,gXc,hXc;var a_=ndb(kre,'RadialTranslationStrategy',340,CI,mXc,lXc);var nXc;bcb(293,22,{3:1,35:1,22:1,293:1},uXc);var pXc,qXc,rXc;var b_=ndb(kre,'SortingStrategy',293,CI,wXc,vXc);var xXc;bcb(1449,1,Bqe,CXc);_.Yf=function DXc(a){return BD(a,33),null};_.pf=function EXc(a,b){AXc(this,BD(a,33),b)};_.c=0;var c_=mdb('org.eclipse.elk.alg.radial.p1position','EadesRadial',1449);bcb(1775,1,{},FXc);_.jg=function GXc(a){return eVc(a)};var d_=mdb(tre,'AnnulusWedgeByLeafs',1775);bcb(1776,1,{},IXc);_.jg=function JXc(a){return HXc(this,a)};var e_=mdb(tre,'AnnulusWedgeByNodeSpace',1776);bcb(1450,1,Bqe,MXc);_.Yf=function NXc(a){return BD(a,33),null};_.pf=function OXc(a,b){KXc(this,BD(a,33),b)};var f_=mdb('org.eclipse.elk.alg.radial.p2routing','StraightLineEdgeRouter',1450);bcb(811,1,{},QXc);_.kg=function RXc(a){};_.lg=function TXc(a){PXc(this,a)};var h_=mdb(ure,'IDSorter',811);bcb(1774,1,Dke,UXc);_.ue=function VXc(a,b){return SXc(BD(a,33),BD(b,33))};_.Fb=function WXc(a){return this===a};_.ve=function XXc(){return new tpb(this)};var g_=mdb(ure,'IDSorter/lambda$0$Type',1774);bcb(1773,1,{},$Xc);_.kg=function _Xc(a){YXc(this,a)};_.lg=function aYc(a){var b;if(!a.dc()){if(!this.e){b=bVc(BD(a.Xb(0),33));YXc(this,b)}PXc(this.e,a)}};var i_=mdb(ure,'PolarCoordinateSorter',1773);bcb(1136,209,Mle,bYc);_.Ze=function eYc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;Odd(b,'Rectangle Packing',1);b.n&&b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));c=Edb(ED(hkd(a,(lZc(),RYc))));p=BD(hkd(a,eZc),381);s=Ccb(DD(hkd(a,ZYc)));w=Ccb(DD(hkd(a,dZc)));l=Ccb(DD(hkd(a,VYc)));A=BD(hkd(a,fZc),116);v=Edb(ED(hkd(a,jZc)));e=Ccb(DD(hkd(a,iZc)));m=Ccb(DD(hkd(a,WYc)));r=Ccb(DD(hkd(a,XYc)));F=Edb(ED(hkd(a,kZc)));C=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a);r$c(C);if(r){o=new Rkb;for(i=new Fyd(C);i.e!=i.i.gc();){g=BD(Dyd(i),33);ikd(g,UYc)&&(o.c[o.c.length]=g,true)}for(j=new olb(o);j.a<j.c.c.length;){g=BD(mlb(j),33);Ftd(C,g)}mmb();Okb(o,new fYc);for(k=new olb(o);k.a<k.c.c.length;){g=BD(mlb(k),33);B=BD(hkd(g,UYc),19).a;B=$wnd.Math.min(B,C.i);vtd(C,B,g)}q=0;for(h=new Fyd(C);h.e!=h.i.gc();){g=BD(Dyd(h),33);jkd(g,TYc,meb(q));++q}}u=rfd(a);u.a-=A.b+A.c;u.b-=A.d+A.a;t=u.a;if(F<0||F<u.a){n=new nYc(c,p,s);f=jYc(n,C,v,A);b.n&&b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd))}else{f=new d$c(c,F,0,(k$c(),j$c))}u.a+=A.b+A.c;u.b+=A.d+A.a;if(!w){r$c(C);D=new DZc(c,l,m,e,v);t=$wnd.Math.max(u.a,f.c);f=CZc(D,C,t,u,b,a,A)}cYc(C,A);Afd(a,f.c+(A.b+A.c),f.b+(A.d+A.a),false,true);Ccb(DD(hkd(a,cZc)))||$Cb((d=new _Cb((Pgd(),new bhd(a))),d));b.n&&b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));Qdd(b)};var k_=mdb(yre,'RectPackingLayoutProvider',1136);bcb(1137,1,Dke,fYc);_.ue=function gYc(a,b){return dYc(BD(a,33),BD(b,33))};_.Fb=function hYc(a){return this===a};_.ve=function iYc(){return new tpb(this)};var j_=mdb(yre,'RectPackingLayoutProvider/lambda$0$Type',1137);bcb(1256,1,{},nYc);_.a=0;_.c=false;var l_=mdb(zre,'AreaApproximation',1256);var o_=odb(zre,'BestCandidateFilter');bcb(638,1,{526:1},oYc);_.mg=function pYc(a,b,c){var d,e,f,g,h,i;i=new Rkb;f=Pje;for(h=new olb(a);h.a<h.c.c.length;){g=BD(mlb(h),220);f=$wnd.Math.min(f,(g.c+(c.b+c.c))*(g.b+(c.d+c.a)))}for(e=new olb(a);e.a<e.c.c.length;){d=BD(mlb(e),220);(d.c+(c.b+c.c))*(d.b+(c.d+c.a))==f&&(i.c[i.c.length]=d,true)}return i};var m_=mdb(zre,'AreaFilter',638);bcb(639,1,{526:1},qYc);_.mg=function rYc(a,b,c){var d,e,f,g,h,i;h=new Rkb;i=Pje;for(g=new olb(a);g.a<g.c.c.length;){f=BD(mlb(g),220);i=$wnd.Math.min(i,$wnd.Math.abs((f.c+(c.b+c.c))/(f.b+(c.d+c.a))-b))}for(e=new olb(a);e.a<e.c.c.length;){d=BD(mlb(e),220);$wnd.Math.abs((d.c+(c.b+c.c))/(d.b+(c.d+c.a))-b)==i&&(h.c[h.c.length]=d,true)}return h};var n_=mdb(zre,'AspectRatioFilter',639);bcb(637,1,{526:1},uYc);_.mg=function vYc(a,b,c){var d,e,f,g,h,i;i=new Rkb;f=Qje;for(h=new olb(a);h.a<h.c.c.length;){g=BD(mlb(h),220);f=$wnd.Math.max(f,q$c(g.c+(c.b+c.c),g.b+(c.d+c.a),g.a))}for(e=new olb(a);e.a<e.c.c.length;){d=BD(mlb(e),220);q$c(d.c+(c.b+c.c),d.b+(c.d+c.a),d.a)==f&&(i.c[i.c.length]=d,true)}return i};var p_=mdb(zre,'ScaleMeasureFilter',637);bcb(381,22,{3:1,35:1,22:1,381:1},AYc);var wYc,xYc,yYc;var q_=ndb(Are,'OptimizationGoal',381,CI,CYc,BYc);var DYc;bcb(856,1,ale,PYc);_.Qe=function QYc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bre),''),'Optimization Goal'),'Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored.'),LYc),(_5c(),V5c)),q_),pqb((N5c(),K5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cre),''),'Shift Last Placed.'),'When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces.'),(Bcb(),true)),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dre),''),'Current position of a node in the order of nodes'),'The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ere),''),'Desired index of node'),'The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fre),''),'Only Area Approximation'),'If enabled only the width approximation step is executed and the nodes are placed accordingly. The nodes are layouted according to the packingStrategy. If set to true not expansion of nodes is taking place.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Gre),''),'Compact Rows'),'Enables compaction. Compacts blocks if they do not use the full height of the row. This option allows to have a smaller drawing. If this option is disabled all nodes are placed next to each other in rows.'),true),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hre),''),'Fit Aspect Ratio'),'Expands nodes if expandNodes is true to fit the aspect ratio instead of only in their bounds. The option is only useful if the used packingStrategy is ASPECT_RATIO_DRIVEN, otherwise this may result in unreasonable ndoe expansion.'),false),T5c),wI),pqb(K5c))));o4c(a,Hre,Jre,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ire),''),'Target Width'),'Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding.'),-1),U5c),BI),pqb(K5c))));mZc((new nZc,a))};var FYc,GYc,HYc,IYc,JYc,KYc,LYc,MYc,NYc;var r_=mdb(Are,'RectPackingMetaDataProvider',856);bcb(1004,1,ale,nZc);_.Qe=function oZc(a){mZc(a)};var RYc,SYc,TYc,UYc,VYc,WYc,XYc,YYc,ZYc,$Yc,_Yc,aZc,bZc,cZc,dZc,eZc,fZc,gZc,hZc,iZc,jZc,kZc;var t_=mdb(Are,'RectPackingOptions',1004);bcb(1005,1,{},pZc);_.$e=function qZc(){var a;return a=new bYc,a};_._e=function rZc(a){};var s_=mdb(Are,'RectPackingOptions/RectpackingFactory',1005);bcb(1257,1,{},DZc);_.a=0;_.b=false;_.c=0;_.d=0;_.e=false;_.f=false;_.g=0;var u_=mdb('org.eclipse.elk.alg.rectpacking.seconditeration','RowFillingAndCompaction',1257);bcb(187,1,{187:1},PZc);_.a=0;_.c=false;_.d=0;_.e=0;_.f=0;_.g=0;_.i=0;_.k=false;_.o=Pje;_.p=Pje;_.r=0;_.s=0;_.t=0;var x_=mdb(Lre,'Block',187);bcb(211,1,{211:1},VZc);_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var v_=mdb(Lre,'BlockRow',211);bcb(443,1,{443:1},b$c);_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;var w_=mdb(Lre,'BlockStack',443);bcb(220,1,{220:1},d$c,e$c);_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;var z_=mdb(Lre,'DrawingData',220);bcb(355,22,{3:1,35:1,22:1,355:1},l$c);var f$c,g$c,h$c,i$c,j$c;var y_=ndb(Lre,'DrawingDataDescriptor',355,CI,n$c,m$c);var o$c;bcb(200,1,{200:1},x$c);_.b=0;_.c=0;_.e=0;_.f=0;var A_=mdb(Lre,'RectRow',200);bcb(756,1,{},F$c);_.j=0;var G_=mdb(Nre,une,756);bcb(1245,1,{},G$c);_.Je=function H$c(a){return S6c(a.a,a.b)};var B_=mdb(Nre,vne,1245);bcb(1246,1,{},I$c);_.Je=function J$c(a){return A$c(this.a,a)};var C_=mdb(Nre,wne,1246);bcb(1247,1,{},K$c);_.Je=function L$c(a){return B$c(this.a,a)};var D_=mdb(Nre,xne,1247);bcb(1248,1,{},M$c);_.Je=function N$c(a){return C$c(this.a,a)};var E_=mdb(Nre,'ElkGraphImporter/lambda$3$Type',1248);bcb(1249,1,{},O$c);_.Je=function P$c(a){return D$c(this.a,a)};var F_=mdb(Nre,yne,1249);bcb(1133,209,Mle,Q$c);_.Ze=function S$c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(ikd(a,(d0c(),c0c))){n=GD(hkd(a,(J0c(),I0c)));f=h4c(n4c(),n);if(f){g=BD(hgd(f.f),209);g.Ze(a,Udd(b,1))}}jkd(a,Z_c,(C_c(),A_c));jkd(a,$_c,(N_c(),K_c));jkd(a,__c,(a1c(),_0c));h=BD(hkd(a,(J0c(),E0c)),19).a;Odd(b,'Overlap removal',1);Ccb(DD(hkd(a,D0c)))&&'null45scanlineOverlaps';i=new Tqb;j=new U$c(i);d=new F$c;c=z$c(d,a);k=true;e=0;while(e<h&&k){if(Ccb(DD(hkd(a,F0c)))){i.a.$b();cOb(new dOb(j),c.i);if(i.a.gc()==0){break}c.e=i}H2c(this.b);K2c(this.b,(Y$c(),V$c),(R0c(),Q0c));K2c(this.b,W$c,c.g);K2c(this.b,X$c,(s_c(),r_c));this.a=F2c(this.b,c);for(m=new olb(this.a);m.a<m.c.c.length;){l=BD(mlb(m),51);l.pf(c,Udd(b,1))}E$c(d,c);k=Ccb(DD(vNb(c,(XNb(),WNb))));++e}y$c(d,c);Qdd(b)};var I_=mdb(Nre,'OverlapRemovalLayoutProvider',1133);bcb(1134,1,{},U$c);var H_=mdb(Nre,'OverlapRemovalLayoutProvider/lambda$0$Type',1134);bcb(437,22,{3:1,35:1,22:1,437:1},Z$c);var V$c,W$c,X$c;var J_=ndb(Nre,'SPOrEPhases',437,CI,_$c,$$c);var a_c;bcb(1255,1,{},d_c);var L_=mdb(Nre,'ShrinkTree',1255);bcb(1135,209,Mle,e_c);_.Ze=function f_c(a,b){var c,d,e,f,g;if(ikd(a,(d0c(),c0c))){g=GD(hkd(a,c0c));e=h4c(n4c(),g);if(e){f=BD(hgd(e.f),209);f.Ze(a,Udd(b,1))}}d=new F$c;c=z$c(d,a);c_c(this.a,c,Udd(b,1));y$c(d,c)};var K_=mdb(Nre,'ShrinkTreeLayoutProvider',1135);bcb(300,134,{3:1,300:1,94:1,134:1},g_c);_.c=false;var M_=mdb('org.eclipse.elk.alg.spore.graph','Graph',300);bcb(482,22,{3:1,35:1,22:1,482:1,246:1,234:1},k_c);_.Kf=function m_c(){return j_c(this)};_.Xf=function l_c(){return j_c(this)};var h_c;var N_=ndb(Ore,Sle,482,CI,o_c,n_c);var p_c;bcb(551,22,{3:1,35:1,22:1,551:1,246:1,234:1},t_c);_.Kf=function v_c(){return new I1c};_.Xf=function u_c(){return new I1c};var r_c;var O_=ndb(Ore,'OverlapRemovalStrategy',551,CI,x_c,w_c);var y_c;bcb(430,22,{3:1,35:1,22:1,430:1},D_c);var A_c,B_c;var P_=ndb(Ore,'RootSelection',430,CI,F_c,E_c);var G_c;bcb(316,22,{3:1,35:1,22:1,316:1},O_c);var I_c,J_c,K_c,L_c,M_c;var Q_=ndb(Ore,'SpanningTreeCostFunction',316,CI,Q_c,P_c);var R_c;bcb(1002,1,ale,f0c);_.Qe=function g0c(a){e0c(a)};var T_c,U_c,V_c,W_c,X_c,Y_c,Z_c,$_c,__c,a0c,b0c,c0c;var S_=mdb(Ore,'SporeCompactionOptions',1002);bcb(1003,1,{},h0c);_.$e=function i0c(){var a;return a=new e_c,a};_._e=function j0c(a){};var R_=mdb(Ore,'SporeCompactionOptions/SporeCompactionFactory',1003);bcb(855,1,ale,B0c);_.Qe=function C0c(a){t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Qre),''),'Underlying Layout Algorithm'),'A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction.'),(_5c(),Z5c)),ZI),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Vre),'structure'),'Structure Extraction Strategy'),'This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices.'),y0c),V5c),W_),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Rre),$re),'Tree Construction Strategy'),'Whether a minimum spanning tree or a maximum spanning tree should be constructed.'),w0c),V5c),X_),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Sre),$re),'Cost Function for Spanning Tree'),'The cost function is used in the creation of the spanning tree.'),u0c),V5c),Q_),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tre),$re),'Root node for spanning tree construction'),'The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen.'),null),Z5c),ZI),pqb(L5c))));o4c(a,Tre,Ure,q0c);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ure),$re),'Root selection for spanning tree'),'This sets the method used to select a root node for the construction of a spanning tree'),s0c),V5c),P_),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Wre),Bpe),'Compaction Strategy'),'This option defines how the compaction is applied.'),l0c),V5c),N_),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xre),Bpe),'Orthogonal Compaction'),'Restricts the translation of nodes to orthogonal directions in the compaction phase.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yre),_re),'Upper limit for iterations of overlap removal'),null),meb(64)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zre),_re),'Whether to run a supplementary scanline overlap check.'),null),true),T5c),wI),pqb(L5c))));K0c((new L0c,a));e0c((new f0c,a))};var k0c,l0c,m0c,n0c,o0c,p0c,q0c,r0c,s0c,t0c,u0c,v0c,w0c,x0c,y0c,z0c;var T_=mdb(Ore,'SporeMetaDataProvider',855);bcb(_ie,1,ale,L0c);_.Qe=function M0c(a){K0c(a)};var D0c,E0c,F0c,G0c,H0c,I0c;var V_=mdb(Ore,'SporeOverlapRemovalOptions',_ie);bcb(1001,1,{},N0c);_.$e=function O0c(){var a;return a=new Q$c,a};_._e=function P0c(a){};var U_=mdb(Ore,'SporeOverlapRemovalOptions/SporeOverlapFactory',1001);bcb(530,22,{3:1,35:1,22:1,530:1,246:1,234:1},T0c);_.Kf=function V0c(){return S0c(this)};_.Xf=function U0c(){return S0c(this)};var Q0c;var W_=ndb(Ore,'StructureExtractionStrategy',530,CI,X0c,W0c);var Y0c;bcb(429,22,{3:1,35:1,22:1,429:1,246:1,234:1},c1c);_.Kf=function e1c(){return b1c(this)};_.Xf=function d1c(){return b1c(this)};var $0c,_0c;var X_=ndb(Ore,'TreeConstructionStrategy',429,CI,g1c,f1c);var h1c;bcb(1443,1,Bqe,k1c);_.Yf=function l1c(a){return BD(a,300),new j3c};_.pf=function m1c(a,b){j1c(BD(a,300),b)};var Z_=mdb(bse,'DelaunayTriangulationPhase',1443);bcb(1444,1,qie,n1c);_.td=function o1c(a){Ekb(this.a,BD(a,65).a)};var Y_=mdb(bse,'DelaunayTriangulationPhase/lambda$0$Type',1444);bcb(783,1,Bqe,s1c);_.Yf=function t1c(a){return BD(a,300),new j3c};_.pf=function u1c(a,b){this.ng(BD(a,300),b)};_.ng=function v1c(a,b){var c,d,e;Odd(b,'Minimum spanning tree construction',1);a.d?(d=a.d.a):(d=BD(Ikb(a.i,0),65).a);Ccb(DD(vNb(a,(XNb(),VNb))))?(e=UCb(a.e,d,(c=a.b,c))):(e=UCb(a.e,d,a.b));q1c(this,e,a);Qdd(b)};var b0=mdb(cse,'MinSTPhase',783);bcb(1446,783,Bqe,w1c);_.ng=function y1c(a,b){var c,d,e,f;Odd(b,'Maximum spanning tree construction',1);c=new z1c(a);a.d?(e=a.d.c):(e=BD(Ikb(a.i,0),65).c);Ccb(DD(vNb(a,(XNb(),VNb))))?(f=UCb(a.e,e,(d=c,d))):(f=UCb(a.e,e,c));q1c(this,f,a);Qdd(b)};var __=mdb(cse,'MaxSTPhase',1446);bcb(1447,1,{},z1c);_.Je=function A1c(a){return x1c(this.a,a)};var $_=mdb(cse,'MaxSTPhase/lambda$0$Type',1447);bcb(1445,1,qie,B1c);_.td=function C1c(a){r1c(this.a,BD(a,65))};var a0=mdb(cse,'MinSTPhase/lambda$0$Type',1445);bcb(785,1,Bqe,I1c);_.Yf=function J1c(a){return BD(a,300),new j3c};_.pf=function K1c(a,b){H1c(this,BD(a,300),b)};_.a=false;var d0=mdb(dse,'GrowTreePhase',785);bcb(786,1,qie,L1c);_.td=function M1c(a){G1c(this.a,this.b,this.c,BD(a,221))};var c0=mdb(dse,'GrowTreePhase/lambda$0$Type',786);bcb(1448,1,Bqe,Q1c);_.Yf=function R1c(a){return BD(a,300),new j3c};_.pf=function S1c(a,b){P1c(this,BD(a,300),b)};var f0=mdb(dse,'ShrinkTreeCompactionPhase',1448);bcb(784,1,qie,T1c);_.td=function U1c(a){O1c(this.a,this.b,this.c,BD(a,221))};var e0=mdb(dse,'ShrinkTreeCompactionPhase/lambda$0$Type',784);var g2=odb(yqe,'IGraphElementVisitor');bcb(860,1,{527:1},b2c);_.og=function e2c(a){var b;b=a2c(this,a);tNb(b,BD(Ohb(this.b,a),94));$1c(this,a,b)};var V1c,W1c,X1c;var m0=mdb(Nle,'LayoutConfigurator',860);var h0=odb(Nle,'LayoutConfigurator/IPropertyHolderOptionFilter');bcb(932,1,{1933:1},f2c);_.pg=function g2c(a,b){return Y1c(),!a.Xe(b)};var i0=mdb(Nle,'LayoutConfigurator/lambda$0$Type',932);bcb(933,1,{1933:1},i2c);_.pg=function j2c(a,b){return h2c(a,b)};var j0=mdb(Nle,'LayoutConfigurator/lambda$1$Type',933);bcb(931,1,{831:1},k2c);_.qg=function l2c(a,b){return Y1c(),!a.Xe(b)};var k0=mdb(Nle,'LayoutConfigurator/lambda$2$Type',931);bcb(934,1,Oie,m2c);_.Mb=function n2c(a){return d2c(this.a,this.b,BD(a,1933))};var l0=mdb(Nle,'LayoutConfigurator/lambda$3$Type',934);bcb(858,1,{},w2c);var n0=mdb(Nle,'RecursiveGraphLayoutEngine',858);bcb(296,60,Tie,x2c,y2c);var o0=mdb(Nle,'UnsupportedConfigurationException',296);bcb(453,60,Tie,z2c);var p0=mdb(Nle,'UnsupportedGraphException',453);bcb(754,1,{});var K1=mdb(yqe,'AbstractRandomListAccessor',754);bcb(500,754,{},L2c);_.rg=function N2c(){return null};_.d=true;_.e=true;_.f=0;var v0=mdb(fse,'AlgorithmAssembler',500);bcb(1236,1,Oie,O2c);_.Mb=function P2c(a){return !!BD(a,123)};var q0=mdb(fse,'AlgorithmAssembler/lambda$0$Type',1236);bcb(1237,1,{},Q2c);_.Kb=function R2c(a){return M2c(this.a,BD(a,123))};var r0=mdb(fse,'AlgorithmAssembler/lambda$1$Type',1237);bcb(1238,1,Oie,S2c);_.Mb=function T2c(a){return !!BD(a,80)};var s0=mdb(fse,'AlgorithmAssembler/lambda$2$Type',1238);bcb(1239,1,qie,U2c);_.td=function V2c(a){d3c(this.a,BD(a,80))};var t0=mdb(fse,'AlgorithmAssembler/lambda$3$Type',1239);bcb(1240,1,qie,W2c);_.td=function X2c(a){G2c(this.a,this.b,BD(a,234))};var u0=mdb(fse,'AlgorithmAssembler/lambda$4$Type',1240);bcb(1355,1,Dke,Z2c);_.ue=function $2c(a,b){return Y2c(BD(a,234),BD(b,234))};_.Fb=function _2c(a){return this===a};_.ve=function a3c(){return new tpb(this)};var w0=mdb(fse,'EnumBasedFactoryComparator',1355);bcb(80,754,{80:1},j3c);_.rg=function l3c(){return new Tqb};_.a=0;var x0=mdb(fse,'LayoutProcessorConfiguration',80);bcb(1013,1,{527:1},q3c);_.og=function u3c(a){stb(n3c,new z3c(a))};var m3c,n3c,o3c;var B0=mdb(Xke,'DeprecatedLayoutOptionReplacer',1013);bcb(1014,1,qie,v3c);_.td=function w3c(a){r3c(BD(a,160))};var y0=mdb(Xke,'DeprecatedLayoutOptionReplacer/lambda$0$Type',1014);bcb(1015,1,qie,x3c);_.td=function y3c(a){s3c(BD(a,160))};var z0=mdb(Xke,'DeprecatedLayoutOptionReplacer/lambda$1$Type',1015);bcb(1016,1,{},z3c);_.Od=function A3c(a,b){t3c(this.a,BD(a,146),BD(b,38))};var A0=mdb(Xke,'DeprecatedLayoutOptionReplacer/lambda$2$Type',1016);bcb(149,1,{686:1,149:1},E3c);_.Fb=function F3c(a){return C3c(this,a)};_.sg=function G3c(){return this.b};_.tg=function H3c(){return this.c};_.ne=function I3c(){return this.e};_.Hb=function J3c(){return LCb(this.c)};_.Ib=function K3c(){return 'Layout Algorithm: '+this.c};var E0=mdb(Xke,'LayoutAlgorithmData',149);bcb(263,1,{},R3c);var D0=mdb(Xke,'LayoutAlgorithmData/Builder',263);bcb(1017,1,{527:1},U3c);_.og=function V3c(a){JD(a,239)&&!Ccb(DD(a.We((Y9c(),d9c))))&&S3c(BD(a,33))};var F0=mdb(Xke,'LayoutAlgorithmResolver',1017);bcb(229,1,{686:1,229:1},W3c);_.Fb=function X3c(a){if(JD(a,229)){return dfb(this.b,BD(a,229).b)}return false};_.sg=function Y3c(){return this.a};_.tg=function Z3c(){return this.b};_.ne=function $3c(){return this.d};_.Hb=function _3c(){return LCb(this.b)};_.Ib=function a4c(){return 'Layout Type: '+this.b};var H0=mdb(Xke,'LayoutCategoryData',229);bcb(344,1,{},e4c);var G0=mdb(Xke,'LayoutCategoryData/Builder',344);bcb(867,1,{},m4c);var f4c;var c1=mdb(Xke,'LayoutMetaDataService',867);bcb(868,1,{},v4c);var J0=mdb(Xke,'LayoutMetaDataService/Registry',868);bcb(478,1,{478:1},w4c);var I0=mdb(Xke,'LayoutMetaDataService/Registry/Triple',478);bcb(869,1,gse,x4c);_.ug=function y4c(){return new d7c};var K0=mdb(Xke,'LayoutMetaDataService/lambda$0$Type',869);bcb(870,1,hse,z4c);_.vg=function A4c(a){return R6c(BD(a,8))};var L0=mdb(Xke,'LayoutMetaDataService/lambda$1$Type',870);bcb(879,1,gse,B4c);_.ug=function C4c(){return new Rkb};var M0=mdb(Xke,'LayoutMetaDataService/lambda$10$Type',879);bcb(880,1,hse,D4c);_.vg=function E4c(a){return new Tkb(BD(a,12))};var N0=mdb(Xke,'LayoutMetaDataService/lambda$11$Type',880);bcb(881,1,gse,F4c);_.ug=function G4c(){return new Psb};var O0=mdb(Xke,'LayoutMetaDataService/lambda$12$Type',881);bcb(882,1,hse,H4c);_.vg=function I4c(a){return Ru(BD(a,68))};var P0=mdb(Xke,'LayoutMetaDataService/lambda$13$Type',882);bcb(883,1,gse,J4c);_.ug=function K4c(){return new Tqb};var Q0=mdb(Xke,'LayoutMetaDataService/lambda$14$Type',883);bcb(884,1,hse,L4c);_.vg=function M4c(a){return Dx(BD(a,53))};var R0=mdb(Xke,'LayoutMetaDataService/lambda$15$Type',884);bcb(885,1,gse,N4c);_.ug=function O4c(){return new zsb};var S0=mdb(Xke,'LayoutMetaDataService/lambda$16$Type',885);bcb(886,1,hse,P4c);_.vg=function Q4c(a){return Gx(BD(a,53))};var T0=mdb(Xke,'LayoutMetaDataService/lambda$17$Type',886);bcb(887,1,gse,R4c);_.ug=function S4c(){return new Gxb};var U0=mdb(Xke,'LayoutMetaDataService/lambda$18$Type',887);bcb(888,1,hse,T4c);_.vg=function U4c(a){return Hx(BD(a,208))};var V0=mdb(Xke,'LayoutMetaDataService/lambda$19$Type',888);bcb(871,1,gse,V4c);_.ug=function W4c(){return new s7c};var W0=mdb(Xke,'LayoutMetaDataService/lambda$2$Type',871);bcb(872,1,hse,X4c);_.vg=function Y4c(a){return new t7c(BD(a,74))};var X0=mdb(Xke,'LayoutMetaDataService/lambda$3$Type',872);bcb(873,1,gse,Z4c);_.ug=function $4c(){return new H_b};var Y0=mdb(Xke,'LayoutMetaDataService/lambda$4$Type',873);bcb(874,1,hse,_4c);_.vg=function a5c(a){return new K_b(BD(a,142))};var Z0=mdb(Xke,'LayoutMetaDataService/lambda$5$Type',874);bcb(875,1,gse,b5c);_.ug=function c5c(){return new p0b};var $0=mdb(Xke,'LayoutMetaDataService/lambda$6$Type',875);bcb(876,1,hse,d5c);_.vg=function e5c(a){return new r0b(BD(a,116))};var _0=mdb(Xke,'LayoutMetaDataService/lambda$7$Type',876);bcb(877,1,gse,f5c);_.ug=function g5c(){return new _fd};var a1=mdb(Xke,'LayoutMetaDataService/lambda$8$Type',877);bcb(878,1,hse,h5c);_.vg=function i5c(a){return new agd(BD(a,373))};var b1=mdb(Xke,'LayoutMetaDataService/lambda$9$Type',878);var Q3=odb(Hle,'IProperty');bcb(23,1,{35:1,686:1,23:1,146:1},p5c);_.wd=function q5c(a){return k5c(this,BD(a,146))};_.Fb=function r5c(a){return JD(a,23)?dfb(this.f,BD(a,23).f):JD(a,146)&&dfb(this.f,BD(a,146).tg())};_.wg=function s5c(){var a;if(JD(this.b,4)){a=fvd(this.b);if(a==null){throw vbb(new Zdb(mse+this.f+"'. "+"Make sure it's type is registered with the "+(fdb(Y3),Y3.k)+jse))}return a}else{return this.b}};_.sg=function t5c(){return this.d};_.tg=function u5c(){return this.f};_.ne=function v5c(){return this.i};_.Hb=function w5c(){return LCb(this.f)};_.Ib=function x5c(){return 'Layout Option: '+this.f};var g1=mdb(Xke,'LayoutOptionData',23);bcb(24,1,{},H5c);var d1=mdb(Xke,'LayoutOptionData/Builder',24);bcb(175,22,{3:1,35:1,22:1,175:1},O5c);var I5c,J5c,K5c,L5c,M5c;var e1=ndb(Xke,'LayoutOptionData/Target',175,CI,Q5c,P5c);var R5c;bcb(277,22,{3:1,35:1,22:1,277:1},a6c);var T5c,U5c,V5c,W5c,X5c,Y5c,Z5c,$5c;var f1=ndb(Xke,'LayoutOptionData/Type',277,CI,c6c,b6c);var d6c;var f6c;var h6c;bcb(110,1,{110:1},I6c,J6c,K6c);_.Fb=function L6c(a){var b;if(a==null||!JD(a,110)){return false}b=BD(a,110);return wtb(this.c,b.c)&&wtb(this.d,b.d)&&wtb(this.b,b.b)&&wtb(this.a,b.a)};_.Hb=function M6c(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.c,this.d,this.b,this.a]))};_.Ib=function N6c(){return 'Rect[x='+this.c+',y='+this.d+',w='+this.b+',h='+this.a+']'};_.a=0;_.b=0;_.c=0;_.d=0;var k1=mdb(pne,'ElkRectangle',110);bcb(8,1,{3:1,4:1,8:1,414:1},d7c,e7c,f7c,g7c);_.Fb=function h7c(a){return T6c(this,a)};_.Hb=function i7c(){return Hdb(this.a)+jeb(Hdb(this.b))};_.Jf=function k7c(b){var c,d,e,f;e=0;while(e<b.length&&j7c((BCb(e,b.length),b.charCodeAt(e)),mne)){++e}c=b.length;while(c>0&&j7c((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(e>=c){throw vbb(new Wdb('The given string does not contain any numbers.'))}f=mfb(b.substr(e,c-e),',|;|\r|\n');if(f.length!=2){throw vbb(new Wdb('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=Hcb(ufb(f[0]));this.b=Hcb(ufb(f[1]))}catch(a){a=ubb(a);if(JD(a,127)){d=a;throw vbb(new Wdb(one+d))}else throw vbb(a)}};_.Ib=function m7c(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var m1=mdb(pne,'KVector',8);bcb(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},s7c,t7c,u7c);_.Pc=function x7c(){return r7c(this)};_.Jf=function v7c(b){var c,d,e,f,g,h;e=mfb(b,',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n');Osb(this);try{d=0;g=0;f=0;h=0;while(d<e.length){if(e[d]!=null&&ufb(e[d]).length>0){g%2==0?(f=Hcb(e[d])):(h=Hcb(e[d]));g>0&&g%2!=0&&Dsb(this,new f7c(f,h));++g}++d}}catch(a){a=ubb(a);if(JD(a,127)){c=a;throw vbb(new Wdb('The given string does not match the expected format for vectors.'+c))}else throw vbb(a)}};_.Ib=function y7c(){var a,b,c;a=new Wfb('(');b=Jsb(this,0);while(b.b!=b.d.c){c=BD(Xsb(b),8);Qfb(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var l1=mdb(pne,'KVectorChain',74);bcb(248,22,{3:1,35:1,22:1,248:1},G7c);var z7c,A7c,B7c,C7c,D7c,E7c;var o1=ndb(ose,'Alignment',248,CI,I7c,H7c);var J7c;bcb(979,1,ale,Z7c);_.Qe=function $7c(a){Y7c(a)};var L7c,M7c,N7c,O7c,P7c,Q7c,R7c,S7c,T7c,U7c,V7c,W7c;var q1=mdb(ose,'BoxLayouterOptions',979);bcb(980,1,{},_7c);_.$e=function a8c(){var a;return a=new ged,a};_._e=function b8c(a){};var p1=mdb(ose,'BoxLayouterOptions/BoxFactory',980);bcb(291,22,{3:1,35:1,22:1,291:1},j8c);var c8c,d8c,e8c,f8c,g8c,h8c;var r1=ndb(ose,'ContentAlignment',291,CI,l8c,k8c);var m8c;bcb(684,1,ale,Z9c);_.Qe=function $9c(a){t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,sse),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(_5c(),Z5c)),ZI),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tse),''),'Resolved Layout Algorithm'),'Meta data associated with the selected algorithm.'),Y5c),E0),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$pe),''),'Alignment'),'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'),q8c),V5c),o1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,_le),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,use),''),'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."),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lqe),''),'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.'),x8c),W5c),r1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zpe),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cqe),''),Cle),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),A8c),V5c),t1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ype),''),'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.'),F8c),V5c),v1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Jre),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,tpe),''),'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`."),K8c),V5c),z1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ame),''),'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."),g9c),Y5c),j1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ame),''),'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.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xqe),''),'interactive Layout'),'Whether the graph should be changeable interactively and by setting constraints'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dme),''),'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."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bme),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),u9c),V5c),D1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,uqe),''),'Position'),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),Y5c),m1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vme),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),X5c),JI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,yme),''),'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).'),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,zme),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mqe),''),'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.'),R8c),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pqe),''),'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.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qqe),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vse),''),'Label Manager'),"Label managers can shorten labels upon a layout algorithm's request."),Y5c),h1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,vqe),''),'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."),T8c),Y5c),i1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xpe),''),'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."),false),T5c),wI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wse),''),'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),U5c),BI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xse),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yse),''),'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'."),meb(100)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zse),''),'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.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ase),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),meb(4000)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bse),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),meb(400)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cse),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dse),''),'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.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ese),''),'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.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fse),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rse),'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.'),u8c),V5c),O1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Lpe),zpe),'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),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mpe),zpe),'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),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zle),zpe),'Components Spacing'),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Npe),zpe),'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),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xme),zpe),'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),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ope),zpe),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ppe),zpe),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Spe),zpe),'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),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qpe),zpe),'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),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Rpe),zpe),'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),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wme),zpe),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tpe),zpe),'Node Self Loop Spacing'),'Spacing to be preserved between a node and its self loops.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Upe),zpe),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Vpe),zpe),'Individual Spacing'),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),Y5c),i2),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wqe),zpe),'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.'),W9c),Y5c),i1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tqe),Jse),'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).'),X5c),JI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));o4c(a,tqe,sqe,k9c);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,sqe),Jse),'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.'),i9c),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,dqe),Kse),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),V8c),Y5c),j1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Gme),Kse),'Node Label Placement'),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),X8c),W5c),B1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gqe),Lse),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),m9c),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,hqe),Lse),'Port Alignment (North)'),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,iqe),Lse),'Port Alignment (South)'),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,jqe),Lse),'Port Alignment (West)'),"Defines how ports on the western side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,kqe),Lse),'Port Alignment (East)'),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fme),Mse),'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."),Z8c),W5c),I1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Eme),Mse),'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.'),c9c),W5c),J1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tme),Mse),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),a9c),Y5c),m1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bqe),Mse),'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."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nqe),Jpe),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),D8c),V5c),u1),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cme),Jpe),'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."),false),T5c),wI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Gse),'font'),'Font Name'),'Font name used for a label.'),Z5c),ZI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Hse),'font'),'Font Size'),'Font size used for a label.'),X5c),JI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,rqe),Nse),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),Y5c),m1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,oqe),Nse),'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."),X5c),JI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ype),Nse),'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."),B9c),V5c),F1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Wpe),Nse),'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."),U5c),BI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hme),Ose),'Port Label Placement'),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),y9c),W5c),E1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eqe),Ose),'Port Labels Next to Port'),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fqe),Ose),'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.'),true),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_pe),Pse),'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."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aqe),Pse),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),false),T5c),wI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$le),'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),U5c),BI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ise),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),H8c),V5c),w1),pqb(I5c))));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sne),'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.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'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.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,ume),'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.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'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.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,bre),'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.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'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.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sre),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));$ad((new _ad,a));Y7c((new Z7c,a));jdd((new kdd,a))};var o8c,p8c,q8c,r8c,s8c,t8c,u8c,v8c,w8c,x8c,y8c,z8c,A8c,B8c,C8c,D8c,E8c,F8c,G8c,H8c,I8c,J8c,K8c,L8c,M8c,N8c,O8c,P8c,Q8c,R8c,S8c,T8c,U8c,V8c,W8c,X8c,Y8c,Z8c,$8c,_8c,a9c,b9c,c9c,d9c,e9c,f9c,g9c,h9c,i9c,j9c,k9c,l9c,m9c,n9c,o9c,p9c,q9c,r9c,s9c,t9c,u9c,v9c,w9c,x9c,y9c,z9c,A9c,B9c,C9c,D9c,E9c,F9c,G9c,H9c,I9c,J9c,K9c,L9c,M9c,N9c,O9c,P9c,Q9c,R9c,S9c,T9c,U9c,V9c,W9c,X9c;var s1=mdb(ose,'CoreOptions',684);bcb(103,22,{3:1,35:1,22:1,103:1},iad);var _9c,aad,bad,cad,dad;var t1=ndb(ose,Cle,103,CI,kad,jad);var lad;bcb(272,22,{3:1,35:1,22:1,272:1},rad);var nad,oad,pad;var u1=ndb(ose,'EdgeLabelPlacement',272,CI,tad,sad);var uad;bcb(218,22,{3:1,35:1,22:1,218:1},Bad);var wad,xad,yad,zad;var v1=ndb(ose,'EdgeRouting',218,CI,Dad,Cad);var Ead;bcb(312,22,{3:1,35:1,22:1,312:1},Nad);var Gad,Had,Iad,Jad,Kad,Lad;var w1=ndb(ose,'EdgeType',312,CI,Pad,Oad);var Qad;bcb(977,1,ale,_ad);_.Qe=function abd(a){$ad(a)};var Sad,Tad,Uad,Vad,Wad,Xad,Yad;var y1=mdb(ose,'FixedLayouterOptions',977);bcb(978,1,{},bbd);_.$e=function cbd(){var a;return a=new Zfd,a};_._e=function dbd(a){};var x1=mdb(ose,'FixedLayouterOptions/FixedFactory',978);bcb(334,22,{3:1,35:1,22:1,334:1},ibd);var ebd,fbd,gbd;var z1=ndb(ose,'HierarchyHandling',334,CI,kbd,jbd);var lbd;bcb(285,22,{3:1,35:1,22:1,285:1},tbd);var nbd,obd,pbd,qbd;var A1=ndb(ose,'LabelSide',285,CI,vbd,ubd);var wbd;bcb(93,22,{3:1,35:1,22:1,93:1},Ibd);var ybd,zbd,Abd,Bbd,Cbd,Dbd,Ebd,Fbd,Gbd;var B1=ndb(ose,'NodeLabelPlacement',93,CI,Lbd,Kbd);var Mbd;bcb(249,22,{3:1,35:1,22:1,249:1},Ubd);var Obd,Pbd,Qbd,Rbd,Sbd;var C1=ndb(ose,'PortAlignment',249,CI,Wbd,Vbd);var Xbd;bcb(98,22,{3:1,35:1,22:1,98:1},gcd);var Zbd,$bd,_bd,acd,bcd,ccd;var D1=ndb(ose,'PortConstraints',98,CI,icd,hcd);var jcd;bcb(273,22,{3:1,35:1,22:1,273:1},scd);var lcd,mcd,ncd,ocd,pcd,qcd;var E1=ndb(ose,'PortLabelPlacement',273,CI,wcd,vcd);var xcd;bcb(61,22,{3:1,35:1,22:1,61:1},Ycd);var zcd,Acd,Bcd,Ccd,Dcd,Ecd,Fcd,Gcd,Hcd,Icd,Jcd,Kcd,Lcd,Mcd,Ncd,Ocd,Pcd,Qcd,Rcd,Scd,Tcd;var F1=ndb(ose,'PortSide',61,CI,_cd,$cd);var bdd;bcb(981,1,ale,kdd);_.Qe=function ldd(a){jdd(a)};var ddd,edd,fdd,gdd,hdd;var H1=mdb(ose,'RandomLayouterOptions',981);bcb(982,1,{},mdd);_.$e=function ndd(){var a;return a=new Mgd,a};_._e=function odd(a){};var G1=mdb(ose,'RandomLayouterOptions/RandomFactory',982);bcb(374,22,{3:1,35:1,22:1,374:1},udd);var pdd,qdd,rdd,sdd;var I1=ndb(ose,'SizeConstraint',374,CI,wdd,vdd);var xdd;bcb(259,22,{3:1,35:1,22:1,259:1},Jdd);var zdd,Add,Bdd,Cdd,Ddd,Edd,Fdd,Gdd,Hdd;var J1=ndb(ose,'SizeOptions',259,CI,Ldd,Kdd);var Mdd;bcb(370,1,{1949:1},Zdd);_.b=false;_.c=0;_.d=-1;_.e=null;_.f=null;_.g=-1;_.j=false;_.k=false;_.n=false;_.o=0;_.q=0;_.r=0;var L1=mdb(yqe,'BasicProgressMonitor',370);bcb(972,209,Mle,ged);_.Ze=function ked(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Box layout',2);e=Gdb(ED(hkd(a,(X7c(),W7c))));f=BD(hkd(a,T7c),116);c=Ccb(DD(hkd(a,O7c)));d=Ccb(DD(hkd(a,P7c)));switch(BD(hkd(a,M7c),311).g){case 0:g=(h=new Tkb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a)),mmb(),Okb(h,new med(d)),h);i=rfd(a);j=ED(hkd(a,L7c));(j==null||(uCb(j),j)<=0)&&(j=1.3);k=ded(g,e,f,i.a,i.b,c,(uCb(j),j));Afd(a,k.a,k.b,false,true);break;default:eed(a,e,f,c);}Qdd(b)};var S1=mdb(yqe,'BoxLayoutProvider',972);bcb(973,1,Dke,med);_.ue=function ned(a,b){return led(this,BD(a,33),BD(b,33))};_.Fb=function oed(a){return this===a};_.ve=function ped(){return new tpb(this)};_.a=false;var M1=mdb(yqe,'BoxLayoutProvider/1',973);bcb(157,1,{157:1},wed,xed);_.Ib=function yed(){return this.c?_od(this.c):Fe(this.b)};var N1=mdb(yqe,'BoxLayoutProvider/Group',157);bcb(311,22,{3:1,35:1,22:1,311:1},Eed);var zed,Aed,Bed,Ced;var O1=ndb(yqe,'BoxLayoutProvider/PackingMode',311,CI,Ged,Fed);var Hed;bcb(974,1,Dke,Jed);_.ue=function Ked(a,b){return hed(BD(a,157),BD(b,157))};_.Fb=function Led(a){return this===a};_.ve=function Med(){return new tpb(this)};var P1=mdb(yqe,'BoxLayoutProvider/lambda$0$Type',974);bcb(975,1,Dke,Ned);_.ue=function Oed(a,b){return ied(BD(a,157),BD(b,157))};_.Fb=function Ped(a){return this===a};_.ve=function Qed(){return new tpb(this)};var Q1=mdb(yqe,'BoxLayoutProvider/lambda$1$Type',975);bcb(976,1,Dke,Red);_.ue=function Sed(a,b){return jed(BD(a,157),BD(b,157))};_.Fb=function Ted(a){return this===a};_.ve=function Ued(){return new tpb(this)};var R1=mdb(yqe,'BoxLayoutProvider/lambda$2$Type',976);bcb(1365,1,{831:1},Ved);_.qg=function Wed(a,b){return Vyc(),!JD(b,160)||h2c((Y1c(),X1c,BD(a,160)),b)};var T1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type',1365);bcb(1366,1,qie,Xed);_.td=function Yed(a){Yyc(this.a,BD(a,146))};var U1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type',1366);bcb(1367,1,qie,Zed);_.td=function $ed(a){BD(a,94);Vyc()};var V1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type',1367);bcb(1371,1,qie,_ed);_.td=function afd(a){Zyc(this.a,BD(a,94))};var W1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type',1371);bcb(1369,1,Oie,bfd);_.Mb=function cfd(a){return $yc(this.a,this.b,BD(a,146))};var X1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type',1369);bcb(1368,1,Oie,dfd);_.Mb=function efd(a){return azc(this.a,this.b,BD(a,831))};var Y1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type',1368);bcb(1370,1,qie,ffd);_.td=function gfd(a){_yc(this.a,this.b,BD(a,146))};var Z1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type',1370);bcb(935,1,{},Hfd);_.Kb=function Ifd(a){return Gfd(a)};_.Fb=function Jfd(a){return this===a};var _1=mdb(yqe,'ElkUtil/lambda$0$Type',935);bcb(936,1,qie,Kfd);_.td=function Lfd(a){ufd(this.a,this.b,BD(a,79))};_.a=0;_.b=0;var a2=mdb(yqe,'ElkUtil/lambda$1$Type',936);bcb(937,1,qie,Mfd);_.td=function Nfd(a){vfd(this.a,this.b,BD(a,202))};_.a=0;_.b=0;var b2=mdb(yqe,'ElkUtil/lambda$2$Type',937);bcb(938,1,qie,Ofd);_.td=function Pfd(a){wfd(this.a,this.b,BD(a,137))};_.a=0;_.b=0;var c2=mdb(yqe,'ElkUtil/lambda$3$Type',938);bcb(939,1,qie,Qfd);_.td=function Rfd(a){xfd(this.a,BD(a,469))};var d2=mdb(yqe,'ElkUtil/lambda$4$Type',939);bcb(342,1,{35:1,342:1},Tfd);_.wd=function Ufd(a){return Sfd(this,BD(a,236))};_.Fb=function Vfd(a){var b;if(JD(a,342)){b=BD(a,342);return this.a==b.a}return false};_.Hb=function Wfd(){return QD(this.a)};_.Ib=function Xfd(){return this.a+' (exclusive)'};_.a=0;var e2=mdb(yqe,'ExclusiveBounds/ExclusiveLowerBound',342);bcb(1138,209,Mle,Zfd);_.Ze=function $fd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;Odd(b,'Fixed Layout',1);f=BD(hkd(a,(Y9c(),E8c)),218);l=0;m=0;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);B=BD(hkd(q,(Zad(),Yad)),8);if(B){bld(q,B.a,B.b);if(BD(hkd(q,Tad),174).Hc((tdd(),pdd))){n=BD(hkd(q,Vad),8);n.a>0&&n.b>0&&Afd(q,n.a,n.b,true,true)}}l=$wnd.Math.max(l,q.i+q.g);m=$wnd.Math.max(m,q.j+q.f);for(j=new Fyd((!q.n&&(q.n=new cUd(D2,q,1,7)),q.n));j.e!=j.i.gc();){h=BD(Dyd(j),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,q.i+h.i+h.g);m=$wnd.Math.max(m,q.j+h.j+h.f)}for(v=new Fyd((!q.c&&(q.c=new cUd(F2,q,9,9)),q.c));v.e!=v.i.gc();){u=BD(Dyd(v),118);B=BD(hkd(u,Yad),8);!!B&&bld(u,B.a,B.b);w=q.i+u.i;A=q.j+u.j;l=$wnd.Math.max(l,w+u.g);m=$wnd.Math.max(m,A+u.f);for(i=new Fyd((!u.n&&(u.n=new cUd(D2,u,1,7)),u.n));i.e!=i.i.gc();){h=BD(Dyd(i),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,w+h.i+h.g);m=$wnd.Math.max(m,A+h.j+h.f)}}for(e=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(e);){c=BD(Rr(e),79);k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}for(d=new Sr(ur($sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(Xod(jtd(c))!=a){k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}}}if(f==(Aad(),wad)){for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);for(d=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);g=pfd(c);g.b==0?jkd(c,Q8c,null):jkd(c,Q8c,g)}}}if(!Ccb(DD(hkd(a,(Zad(),Uad))))){t=BD(hkd(a,Wad),116);p=l+t.b+t.c;o=m+t.d+t.a;Afd(a,p,o,true,true)}Qdd(b)};var f2=mdb(yqe,'FixedLayoutProvider',1138);bcb(373,134,{3:1,414:1,373:1,94:1,134:1},_fd,agd);_.Jf=function dgd(b){var c,d,e,f,g,h,i,j,k;if(!b){return}try{j=mfb(b,';,;');for(g=j,h=0,i=g.length;h<i;++h){f=g[h];d=mfb(f,'\\:');e=k4c(n4c(),d[0]);if(!e){throw vbb(new Wdb('Invalid option id: '+d[0]))}k=o5c(e,d[1]);if(k==null){throw vbb(new Wdb('Invalid option value: '+d[1]))}k==null?(!this.q&&(this.q=new Lqb),Thb(this.q,e)):(!this.q&&(this.q=new Lqb),Rhb(this.q,e,k))}}catch(a){a=ubb(a);if(JD(a,102)){c=a;throw vbb(new Xdb(c))}else throw vbb(a)}};_.Ib=function egd(){var a;a=GD(GAb(NAb((!this.q?(mmb(),mmb(),kmb):this.q).vc().Oc(),new fgd),Ayb(new pzb,new nzb,new Zyb,new _yb,OC(GC(xL,1),Kie,132,0,[]))));return a};var i2=mdb(yqe,'IndividualSpacings',373);bcb(971,1,{},fgd);_.Kb=function ggd(a){return cgd(BD(a,42))};var h2=mdb(yqe,'IndividualSpacings/lambda$0$Type',971);bcb(709,1,{},jgd);_.c=0;var j2=mdb(yqe,'InstancePool',709);bcb(1275,1,{},kgd);var l2=mdb(yqe,'LoggedGraph',1275);bcb(396,22,{3:1,35:1,22:1,396:1},qgd);var lgd,mgd,ngd,ogd;var k2=ndb(yqe,'LoggedGraph/Type',396,CI,sgd,rgd);var tgd;bcb(46,1,{20:1,46:1},vgd);_.Jc=function xgd(a){reb(this,a)};_.Fb=function wgd(a){var b,c,d;if(JD(a,46)){c=BD(a,46);b=this.a==null?c.a==null:pb(this.a,c.a);d=this.b==null?c.b==null:pb(this.b,c.b);return b&&d}else{return false}};_.Hb=function ygd(){var a,b,c,d,e,f;c=this.a==null?0:tb(this.a);a=c&aje;b=c&-65536;f=this.b==null?0:tb(this.b);d=f&aje;e=f&-65536;return a^e>>16&aje|b^d<<16};_.Kc=function zgd(){return new Bgd(this)};_.Ib=function Agd(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+fcb(this.b)+')':this.b==null?'pair('+fcb(this.a)+',null)':'pair('+fcb(this.a)+','+fcb(this.b)+')'};var n2=mdb(yqe,'Pair',46);bcb(983,1,aie,Bgd);_.Nb=function Cgd(a){Rrb(this,a)};_.Ob=function Dgd(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.Pb=function Egd(){if(!this.c&&!this.b&&this.a.a!=null){this.b=true;return this.a.a}else if(!this.c&&this.a.b!=null){this.c=true;return this.a.b}throw vbb(new utb)};_.Qb=function Fgd(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw vbb(new Ydb)};_.b=false;_.c=false;var m2=mdb(yqe,'Pair/1',983);bcb(448,1,{448:1},Ggd);_.Fb=function Hgd(a){return wtb(this.a,BD(a,448).a)&&wtb(this.c,BD(a,448).c)&&wtb(this.d,BD(a,448).d)&&wtb(this.b,BD(a,448).b)};_.Hb=function Igd(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.a,this.c,this.d,this.b]))};_.Ib=function Jgd(){return '('+this.a+She+this.c+She+this.d+She+this.b+')'};var o2=mdb(yqe,'Quadruple',448);bcb(1126,209,Mle,Mgd);_.Ze=function Ngd(a,b){var c,d,e,f,g;Odd(b,'Random Layout',1);if((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i==0){Qdd(b);return}f=BD(hkd(a,(idd(),gdd)),19);!!f&&f.a!=0?(e=new Hub(f.a)):(e=new Gub);c=Gdb(ED(hkd(a,ddd)));g=Gdb(ED(hkd(a,hdd)));d=BD(hkd(a,edd),116);Lgd(a,e,c,g,d);Qdd(b)};var p2=mdb(yqe,'RandomLayoutProvider',1126);var Ogd;bcb(553,1,{});_.qf=function Sgd(){return new f7c(this.f.i,this.f.j)};_.We=function Tgd(a){if(Jsd(a,(Y9c(),s9c))){return hkd(this.f,Qgd)}return hkd(this.f,a)};_.rf=function Ugd(){return new f7c(this.f.g,this.f.f)};_.sf=function Vgd(){return this.g};_.Xe=function Wgd(a){return ikd(this.f,a)};_.tf=function Xgd(a){dld(this.f,a.a);eld(this.f,a.b)};_.uf=function Ygd(a){cld(this.f,a.a);ald(this.f,a.b)};_.vf=function Zgd(a){this.g=a};_.g=0;var Qgd;var q2=mdb(Use,'ElkGraphAdapters/AbstractElkGraphElementAdapter',553);bcb(554,1,{839:1},$gd);_.wf=function _gd(){var a,b;if(!this.b){this.b=Qu(Kkd(this.a).i);for(b=new Fyd(Kkd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),137);Ekb(this.b,new dhd(a))}}return this.b};_.b=null;var r2=mdb(Use,'ElkGraphAdapters/ElkEdgeAdapter',554);bcb(301,553,{},bhd);_.xf=function chd(){return ahd(this)};_.a=null;var s2=mdb(Use,'ElkGraphAdapters/ElkGraphAdapter',301);bcb(630,553,{181:1},dhd);var t2=mdb(Use,'ElkGraphAdapters/ElkLabelAdapter',630);bcb(629,553,{680:1},hhd);_.wf=function khd(){return ehd(this)};_.Af=function lhd(){var a;return a=BD(hkd(this.f,(Y9c(),S8c)),142),!a&&(a=new H_b),a};_.Cf=function nhd(){return fhd(this)};_.Ef=function phd(a){var b;b=new K_b(a);jkd(this.f,(Y9c(),S8c),b)};_.Ff=function qhd(a){jkd(this.f,(Y9c(),f9c),new r0b(a))};_.yf=function ihd(){return this.d};_.zf=function jhd(){var a,b;if(!this.a){this.a=new Rkb;for(b=new Sr(ur($sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function mhd(){var a,b;if(!this.c){this.c=new Rkb;for(b=new Sr(ur(_sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Df=function ohd(){return Vod(BD(this.f,33)).i!=0||Ccb(DD(BD(this.f,33).We((Y9c(),M8c))))};_.Gf=function rhd(){ghd(this,(Pgd(),Ogd))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var u2=mdb(Use,'ElkGraphAdapters/ElkNodeAdapter',629);bcb(1266,553,{838:1},thd);_.wf=function vhd(){return shd(this)};_.zf=function uhd(){var a,b;if(!this.a){this.a=Pu(BD(this.f,118).xg().i);for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function whd(){var a,b;if(!this.c){this.c=Pu(BD(this.f,118).yg().i);for(b=new Fyd(BD(this.f,118).yg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Hf=function xhd(){return BD(BD(this.f,118).We((Y9c(),A9c)),61)};_.If=function yhd(){var a,b,c,d,e,f,g,h;d=mpd(BD(this.f,118));for(c=new Fyd(BD(this.f,118).yg());c.e!=c.i.gc();){a=BD(Dyd(c),79);for(h=new Fyd((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c));h.e!=h.i.gc();){g=BD(Dyd(h),82);if(ntd(atd(g),d)){return true}else if(atd(g)==d&&Ccb(DD(hkd(a,(Y9c(),N8c))))){return true}}}for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);for(f=new Fyd((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b));f.e!=f.i.gc();){e=BD(Dyd(f),82);if(ntd(atd(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var v2=mdb(Use,'ElkGraphAdapters/ElkPortAdapter',1266);bcb(1267,1,Dke,Ahd);_.ue=function Bhd(a,b){return zhd(BD(a,118),BD(b,118))};_.Fb=function Chd(a){return this===a};_.ve=function Dhd(){return new tpb(this)};var w2=mdb(Use,'ElkGraphAdapters/PortComparator',1267);var m5=odb(Vse,'EObject');var x2=odb(Wse,Xse);var y2=odb(Wse,Yse);var C2=odb(Wse,Zse);var G2=odb(Wse,'ElkShape');var z2=odb(Wse,$se);var B2=odb(Wse,_se);var A2=odb(Wse,ate);var k5=odb(Vse,bte);var i5=odb(Vse,'EFactory');var Ehd;var l5=odb(Vse,cte);var o5=odb(Vse,'EPackage');var Ghd;var Ihd,Jhd,Khd,Lhd,Mhd,Nhd,Ohd,Phd,Qhd,Rhd,Shd;var D2=odb(Wse,dte);var E2=odb(Wse,ete);var F2=odb(Wse,fte);bcb(90,1,gte);_.Jg=function Vhd(){this.Kg();return null};_.Kg=function Whd(){return null};_.Lg=function Xhd(){return this.Kg(),false};_.Mg=function Yhd(){return false};_.Ng=function Zhd(a){Uhd(this,a)};var b4=mdb(hte,'BasicNotifierImpl',90);bcb(97,90,pte);_.nh=function fjd(){return oid(this)};_.Og=function Fid(a,b){return a};_.Pg=function Gid(){throw vbb(new bgb)};_.Qg=function Hid(a){var b;return b=zUd(BD(XKd(this.Tg(),this.Vg()),18)),this.eh().ih(this,b.n,b.f,a)};_.Rg=function Iid(a,b){throw vbb(new bgb)};_.Sg=function Jid(a,b,c){return _hd(this,a,b,c)};_.Tg=function Kid(){var a;if(this.Pg()){a=this.Pg().ck();if(a){return a}}return this.zh()};_.Ug=function Lid(){return aid(this)};_.Vg=function Mid(){throw vbb(new bgb)};_.Wg=function Oid(){var a,b;b=this.ph().dk();!b&&this.Pg().ik(b=(nRd(),a=pNd(TKd(this.Tg())),a==null?mRd:new qRd(this,a)));return b};_.Xg=function Qid(a,b){return a};_.Yg=function Rid(a){var b;b=a.Gj();return !b?bLd(this.Tg(),a):a.aj()};_.Zg=function Sid(){var a;a=this.Pg();return !a?null:a.fk()};_.$g=function Tid(){return !this.Pg()?null:this.Pg().ck()};_._g=function Uid(a,b,c){return fid(this,a,b,c)};_.ah=function Vid(a){return gid(this,a)};_.bh=function Wid(a,b){return hid(this,a,b)};_.dh=function Xid(){var a;a=this.Pg();return !!a&&a.gk()};_.eh=function Yid(){throw vbb(new bgb)};_.fh=function Zid(){return jid(this)};_.gh=function $id(a,b,c,d){return kid(this,a,b,d)};_.hh=function _id(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Qj(this,this.yh(),b-this.Ah(),a,c)};_.ih=function ajd(a,b,c,d){return lid(this,a,b,d)};_.jh=function bjd(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Rj(this,this.yh(),b-this.Ah(),a,c)};_.kh=function cjd(){return !!this.Pg()&&!!this.Pg().ek()};_.lh=function djd(a){return mid(this,a)};_.mh=function ejd(a){return nid(this,a)};_.oh=function gjd(a){return rid(this,a)};_.ph=function hjd(){throw vbb(new bgb)};_.qh=function ijd(){return !this.Pg()?null:this.Pg().ek()};_.rh=function jjd(){return jid(this)};_.sh=function kjd(a,b){yid(this,a,b)};_.th=function ljd(a){this.ph().hk(a)};_.uh=function mjd(a){this.ph().kk(a)};_.vh=function njd(a){this.ph().jk(a)};_.wh=function ojd(a,b){var c,d,e,f;f=this.Zg();if(!!f&&!!a){b=Txd(f.Vk(),this,b);f.Zk(this)}d=this.eh();if(d){if((Nid(this,this.eh(),this.Vg()).Bb&Tje)!=0){e=d.fh();!!e&&(!a?e.Yk(this):!f&&e.Zk(this))}else{b=(c=this.Vg(),c>=0?this.Qg(b):this.eh().ih(this,-1-c,null,b));b=this.Sg(null,-1,b)}}this.uh(a);return b};_.xh=function pjd(a){var b,c,d,e,f,g,h,i;c=this.Tg();f=bLd(c,a);b=this.Ah();if(f>=b){return BD(a,66).Nj().Uj(this,this.yh(),f-b)}else if(f<=-1){g=e1d((O6d(),M6d),c,a);if(g){Q6d();BD(g,66).Oj()||(g=_1d(q1d(M6d,g)));e=(d=this.Yg(g),BD(d>=0?this._g(d,true,true):sid(this,g,true),153));i=g.Zj();if(i>1||i==-1){return BD(BD(e,215).hl(a,false),76)}}else{throw vbb(new Wdb(ite+a.ne()+lte))}}else if(a.$j()){return d=this.Yg(a),BD(d>=0?this._g(d,false,true):sid(this,a,false),76)}h=new nGd(this,a);return h};_.yh=function qjd(){return Aid(this)};_.zh=function rjd(){return (NFd(),MFd).S};_.Ah=function sjd(){return aLd(this.zh())};_.Bh=function tjd(a){Cid(this,a)};_.Ib=function ujd(){return Eid(this)};var B5=mdb(qte,'BasicEObjectImpl',97);var zFd;bcb(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1});_.Ch=function Djd(a){var b;b=xjd(this);return b[a]};_.Dh=function Ejd(a,b){var c;c=xjd(this);NC(c,a,b)};_.Eh=function Fjd(a){var b;b=xjd(this);NC(b,a,null)};_.Jg=function Gjd(){return BD(Ajd(this,4),126)};_.Kg=function Hjd(){throw vbb(new bgb)};_.Lg=function Ijd(){return (this.Db&4)!=0};_.Pg=function Jjd(){throw vbb(new bgb)};_.Fh=function Kjd(a){Cjd(this,2,a)};_.Rg=function Ljd(a,b){this.Db=b<<16|this.Db&255;this.Fh(a)};_.Tg=function Mjd(){return wjd(this)};_.Vg=function Njd(){return this.Db>>16};_.Wg=function Ojd(){var a,b;return nRd(),b=pNd(TKd((a=BD(Ajd(this,16),26),!a?this.zh():a))),b==null?(null,mRd):new qRd(this,b)};_.Mg=function Pjd(){return (this.Db&1)==0};_.Zg=function Qjd(){return BD(Ajd(this,128),1935)};_.$g=function Rjd(){return BD(Ajd(this,16),26)};_.dh=function Sjd(){return (this.Db&32)!=0};_.eh=function Tjd(){return BD(Ajd(this,2),49)};_.kh=function Ujd(){return (this.Db&64)!=0};_.ph=function Vjd(){throw vbb(new bgb)};_.qh=function Wjd(){return BD(Ajd(this,64),281)};_.th=function Xjd(a){Cjd(this,16,a)};_.uh=function Yjd(a){Cjd(this,128,a)};_.vh=function Zjd(a){Cjd(this,64,a)};_.yh=function $jd(){return yjd(this)};_.Db=0;var s8=mdb(qte,'MinimalEObjectImpl',114);bcb(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.Fh=function _jd(a){this.Cb=a};_.eh=function akd(){return this.Cb};var r8=mdb(qte,'MinimalEObjectImpl/Container',115);bcb(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function kkd(a,b,c){return bkd(this,a,b,c)};_.jh=function lkd(a,b,c){return ckd(this,a,b,c)};_.lh=function mkd(a){return dkd(this,a)};_.sh=function nkd(a,b){ekd(this,a,b)};_.zh=function okd(){return Thd(),Shd};_.Bh=function pkd(a){fkd(this,a)};_.Ve=function qkd(){return gkd(this)};_.We=function rkd(a){return hkd(this,a)};_.Xe=function skd(a){return ikd(this,a)};_.Ye=function tkd(a,b){return jkd(this,a,b)};var H2=mdb(rte,'EMapPropertyHolderImpl',1985);bcb(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},xkd);_._g=function ykd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return fid(this,a,b,c)};_.lh=function zkd(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return mid(this,a)};_.sh=function Akd(a,b){switch(a){case 0:vkd(this,Edb(ED(b)));return;case 1:wkd(this,Edb(ED(b)));return;}yid(this,a,b)};_.zh=function Bkd(){return Thd(),Ihd};_.Bh=function Ckd(a){switch(a){case 0:vkd(this,0);return;case 1:wkd(this,0);return;}Cid(this,a)};_.Ib=function Dkd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (x: ';Bfb(a,this.a);a.a+=', y: ';Bfb(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var I2=mdb(rte,'ElkBendPointImpl',567);bcb(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Nkd(a,b,c){return Ekd(this,a,b,c)};_.hh=function Okd(a,b,c){return Fkd(this,a,b,c)};_.jh=function Pkd(a,b,c){return Gkd(this,a,b,c)};_.lh=function Qkd(a){return Hkd(this,a)};_.sh=function Rkd(a,b){Ikd(this,a,b)};_.zh=function Skd(){return Thd(),Mhd};_.Bh=function Tkd(a){Jkd(this,a)};_.zg=function Ukd(){return this.k};_.Ag=function Vkd(){return Kkd(this)};_.Ib=function Wkd(){return Mkd(this)};_.k=null;var M2=mdb(rte,'ElkGraphElementImpl',723);bcb(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function gld(a,b,c){return Xkd(this,a,b,c)};_.lh=function hld(a){return Ykd(this,a)};_.sh=function ild(a,b){Zkd(this,a,b)};_.zh=function jld(){return Thd(),Rhd};_.Bh=function kld(a){$kd(this,a)};_.Bg=function lld(){return this.f};_.Cg=function mld(){return this.g};_.Dg=function nld(){return this.i};_.Eg=function old(){return this.j};_.Fg=function pld(a,b){_kd(this,a,b)};_.Gg=function qld(a,b){bld(this,a,b)};_.Hg=function rld(a){dld(this,a)};_.Ig=function sld(a){eld(this,a)};_.Ib=function tld(){return fld(this)};_.f=0;_.g=0;_.i=0;_.j=0;var T2=mdb(rte,'ElkShapeImpl',724);bcb(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Bld(a,b,c){return uld(this,a,b,c)};_.hh=function Cld(a,b,c){return vld(this,a,b,c)};_.jh=function Dld(a,b,c){return wld(this,a,b,c)};_.lh=function Eld(a){return xld(this,a)};_.sh=function Fld(a,b){yld(this,a,b)};_.zh=function Gld(){return Thd(),Jhd};_.Bh=function Hld(a){zld(this,a)};_.xg=function Ild(){return !this.d&&(this.d=new y5d(B2,this,8,5)),this.d};_.yg=function Jld(){return !this.e&&(this.e=new y5d(B2,this,7,4)),this.e};var J2=mdb(rte,'ElkConnectableShapeImpl',725);bcb(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Tld);_.Qg=function Uld(a){return Lld(this,a)};_._g=function Vld(a,b,c){switch(a){case 3:return Mld(this);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b;case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),this.c;case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),this.a;case 7:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1)?false:true;case 8:return Bcb(),Pld(this)?true:false;case 9:return Bcb(),Qld(this)?true:false;case 10:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0)?true:false;}return Ekd(this,a,b,c)};_.hh=function Wld(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Lld(this,c):this.Cb.ih(this,-1-d,null,c)));return Kld(this,BD(a,33),c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Sxd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Sxd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Sxd(this.a,a,c);}return Fkd(this,a,b,c)};_.jh=function Xld(a,b,c){switch(b){case 3:return Kld(this,null,c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Txd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Txd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Txd(this.a,a,c);}return Gkd(this,a,b,c)};_.lh=function Yld(a){switch(a){case 3:return !!Mld(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 y5d(z2,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1));case 8:return Pld(this);case 9:return Qld(this);case 10:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0);}return Hkd(this,a)};_.sh=function Zld(a,b){switch(a){case 3:Rld(this,BD(b,33));return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);!this.b&&(this.b=new y5d(z2,this,4,7));ytd(this.b,BD(b,14));return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);!this.c&&(this.c=new y5d(z2,this,5,8));ytd(this.c,BD(b,14));return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);!this.a&&(this.a=new cUd(A2,this,6,6));ytd(this.a,BD(b,14));return;}Ikd(this,a,b)};_.zh=function $ld(){return Thd(),Khd};_.Bh=function _ld(a){switch(a){case 3:Rld(this,null);return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);return;}Jkd(this,a)};_.Ib=function amd(){return Sld(this)};var K2=mdb(rte,'ElkEdgeImpl',352);bcb(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},rmd);_.Qg=function smd(a){return cmd(this,a)};_._g=function tmd(a,b,c){switch(a){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 xMd(y2,this,5)),this.a;case 6:return fmd(this);case 7:if(b)return emd(this);return this.i;case 8:if(b)return dmd(this);return this.f;case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),this.g;case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),this.e;case 11:return this.d;}return bkd(this,a,b,c)};_.hh=function umd(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?cmd(this,c):this.Cb.ih(this,-1-e,null,c)));return bmd(this,BD(a,79),c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Sxd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Sxd(this.e,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(Thd(),Lhd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((Thd(),Lhd)),a,c)};_.jh=function vmd(a,b,c){switch(b){case 5:return !this.a&&(this.a=new xMd(y2,this,5)),Txd(this.a,a,c);case 6:return bmd(this,null,c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Txd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Txd(this.e,a,c);}return ckd(this,a,b,c)};_.lh=function wmd(a){switch(a){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 !!fmd(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 dkd(this,a)};_.sh=function xmd(a,b){switch(a){case 1:omd(this,Edb(ED(b)));return;case 2:pmd(this,Edb(ED(b)));return;case 3:hmd(this,Edb(ED(b)));return;case 4:imd(this,Edb(ED(b)));return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);!this.a&&(this.a=new xMd(y2,this,5));ytd(this.a,BD(b,14));return;case 6:mmd(this,BD(b,79));return;case 7:lmd(this,BD(b,82));return;case 8:kmd(this,BD(b,82));return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);!this.g&&(this.g=new y5d(A2,this,9,10));ytd(this.g,BD(b,14));return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);!this.e&&(this.e=new y5d(A2,this,10,9));ytd(this.e,BD(b,14));return;case 11:jmd(this,GD(b));return;}ekd(this,a,b)};_.zh=function ymd(){return Thd(),Lhd};_.Bh=function zmd(a){switch(a){case 1:omd(this,0);return;case 2:pmd(this,0);return;case 3:hmd(this,0);return;case 4:imd(this,0);return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);return;case 6:mmd(this,null);return;case 7:lmd(this,null);return;case 8:kmd(this,null);return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);return;case 11:jmd(this,null);return;}fkd(this,a)};_.Ib=function Amd(){return qmd(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var L2=mdb(rte,'ElkEdgeSectionImpl',439);bcb(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_._g=function Emd(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function Fmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function Gmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function Hmd(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.oh=function Imd(a){return Bmd(this,a)};_.sh=function Jmd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.uh=function Kmd(a){Cjd(this,128,a)};_.zh=function Lmd(){return jGd(),ZFd};_.Bh=function Mmd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function Nmd(){this.Bb|=1};_.Hh=function Omd(a){return Dmd(this,a)};_.Bb=0;var f6=mdb(qte,'EModelElementImpl',150);bcb(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},$md);_.Ih=function _md(a,b){return Vmd(this,a,b)};_.Jh=function and(a){var b,c,d,e,f;if(this.a!=bKd(a)||(a.Bb&256)!=0){throw vbb(new Wdb(xte+a.zb+ute))}for(d=_Kd(a);VKd(d.a).i!=0;){c=BD(nOd(d,0,(b=BD(qud(VKd(d.a),0),87),f=b.c,JD(f,88)?BD(f,26):(jGd(),_Fd))),26);if(dKd(c)){e=bKd(c).Nh().Jh(c);BD(e,49).th(a);return e}d=_Kd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new lHd(a):new _Gd(a)};_.Kh=function bnd(a,b){return Wmd(this,a,b)};_._g=function cnd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.a;}return bid(this,a-aLd((jGd(),WFd)),XKd((d=BD(Ajd(this,16),26),!d?WFd:d),a),b,c)};_.hh=function dnd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 1:!!this.a&&(c=BD(this.a,49).ih(this,4,o5,c));return Tmd(this,BD(a,235),c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Qj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.jh=function end(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 1:return Tmd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.lh=function fnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return cid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};_.sh=function gnd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:Ymd(this,BD(b,235));return;}did(this,a-aLd((jGd(),WFd)),XKd((c=BD(Ajd(this,16),26),!c?WFd:c),a),b)};_.zh=function hnd(){return jGd(),WFd};_.Bh=function ind(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:Ymd(this,null);return;}eid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};var Pmd,Qmd,Rmd;var d6=mdb(qte,'EFactoryImpl',704);bcb(zte,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},knd);_.Ih=function lnd(a,b){switch(a.yj()){case 12:return BD(b,146).tg();case 13:return fcb(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function mnd(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=bKd(a),b?HLd(b.Mh(),a):-1)),a.G){case 4:return f=new Jod,f;case 6:return g=new apd,g;case 7:return h=new ppd,h;case 8:return d=new Tld,d;case 9:return c=new xkd,c;case 10:return e=new rmd,e;case 11:return i=new Bpd,i;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function nnd(a,b){switch(a.yj()){case 13:case 12:return null;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var N2=mdb(rte,'ElkGraphFactoryImpl',zte);bcb(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_.Wg=function rnd(){var a,b;b=(a=BD(Ajd(this,16),26),pNd(TKd(!a?this.zh():a)));return b==null?(nRd(),nRd(),mRd):new GRd(this,b)};_._g=function snd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.ne();}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.lh=function tnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function und(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vnd(){return jGd(),$Fd};_.Bh=function wnd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.ne=function xnd(){return this.zb};_.Lh=function ynd(a){pnd(this,a)};_.Ib=function znd(){return qnd(this)};_.zb=null;var j6=mdb(qte,'ENamedElementImpl',438);bcb(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},eod);_.Qg=function god(a){return Snd(this,a)};_._g=function hod(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,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 jUd(this,d5,this)),this.rb;case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?BD(this.Cb,235):null;return Ind(this);}return bid(this,a-aLd((jGd(),cGd)),XKd((d=BD(Ajd(this,16),26),!d?cGd:d),a),b,c)};_.hh=function iod(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 4:!!this.sb&&(c=BD(this.sb,49).ih(this,1,i5,c));return Jnd(this,BD(a,471),c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Sxd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Sxd(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Snd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,7,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.jh=function jod(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 4:return Jnd(this,null,c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Txd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Txd(this.vb,a,c);case 7:return _hd(this,null,7,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.lh=function kod(a){var b;switch(a){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 !!Ind(this);}return cid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.oh=function lod(a){var b;b=Und(this,a);return b?b:Bmd(this,a)};_.sh=function mod(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:dod(this,GD(b));return;case 3:cod(this,GD(b));return;case 4:bod(this,BD(b,471));return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);!this.rb&&(this.rb=new jUd(this,d5,this));ytd(this.rb,BD(b,14));return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);!this.vb&&(this.vb=new gUd(o5,this,6,7));ytd(this.vb,BD(b,14));return;}did(this,a-aLd((jGd(),cGd)),XKd((c=BD(Ajd(this,16),26),!c?cGd:c),a),b)};_.vh=function nod(a){var b,c;if(!!a&&!!this.rb){for(c=new Fyd(this.rb);c.e!=c.i.gc();){b=Dyd(c);JD(b,351)&&(BD(b,351).w=null)}}Cjd(this,64,a)};_.zh=function ood(){return jGd(),cGd};_.Bh=function pod(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:dod(this,null);return;case 3:cod(this,null);return;case 4:bod(this,null);return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);return;}eid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.Gh=function qod(){Tnd(this)};_.Mh=function rod(){return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb};_.Nh=function sod(){return this.sb};_.Oh=function tod(){return this.ub};_.Ph=function uod(){return this.xb};_.Qh=function vod(){return this.yb};_.Rh=function wod(a){this.ub=a};_.Ib=function xod(){var a;if((this.Db&64)!=0)return qnd(this);a=new Jfb(qnd(this));a.a+=' (nsURI: ';Efb(a,this.yb);a.a+=', nsPrefix: ';Efb(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var And;var t6=mdb(qte,'EPackageImpl',179);bcb(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},Bod);_.q=false;_.r=false;var yod=false;var O2=mdb(rte,'ElkGraphPackageImpl',555);bcb(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Jod);_.Qg=function Kod(a){return Eod(this,a)};_._g=function Lod(a,b,c){switch(a){case 7:return Fod(this);case 8:return this.a;}return Xkd(this,a,b,c)};_.hh=function Mod(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Eod(this,c):this.Cb.ih(this,-1-d,null,c)));return Dod(this,BD(a,160),c);}return Fkd(this,a,b,c)};_.jh=function Nod(a,b,c){if(b==7){return Dod(this,null,c)}return Gkd(this,a,b,c)};_.lh=function Ood(a){switch(a){case 7:return !!Fod(this);case 8:return !dfb('',this.a);}return Ykd(this,a)};_.sh=function Pod(a,b){switch(a){case 7:God(this,BD(b,160));return;case 8:Hod(this,GD(b));return;}Zkd(this,a,b)};_.zh=function Qod(){return Thd(),Nhd};_.Bh=function Rod(a){switch(a){case 7:God(this,null);return;case 8:Hod(this,'');return;}$kd(this,a)};_.Ib=function Sod(){return Iod(this)};_.a='';var P2=mdb(rte,'ElkLabelImpl',354);bcb(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},apd);_.Qg=function bpd(a){return Uod(this,a)};_._g=function cpd(a,b,c){switch(a){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),this.c;case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a;case 11:return Xod(this);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),this.b;case 13:return Bcb(),!this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0?true:false;}return uld(this,a,b,c)};_.hh=function dpd(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Sxd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Sxd(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Uod(this,c):this.Cb.ih(this,-1-d,null,c)));return Tod(this,BD(a,33),c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Sxd(this.b,a,c);}return vld(this,a,b,c)};_.jh=function epd(a,b,c){switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Txd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Txd(this.a,a,c);case 11:return Tod(this,null,c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Txd(this.b,a,c);}return wld(this,a,b,c)};_.lh=function fpd(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!Xod(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0;}return xld(this,a)};_.sh=function gpd(a,b){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);!this.c&&(this.c=new cUd(F2,this,9,9));ytd(this.c,BD(b,14));return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);!this.a&&(this.a=new cUd(E2,this,10,11));ytd(this.a,BD(b,14));return;case 11:$od(this,BD(b,33));return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);!this.b&&(this.b=new cUd(B2,this,12,3));ytd(this.b,BD(b,14));return;}yld(this,a,b)};_.zh=function hpd(){return Thd(),Ohd};_.Bh=function ipd(a){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);return;case 11:$od(this,null);return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);return;}zld(this,a)};_.Ib=function jpd(){return _od(this)};var Q2=mdb(rte,'ElkNodeImpl',239);bcb(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ppd);_.Qg=function qpd(a){return lpd(this,a)};_._g=function rpd(a,b,c){if(a==9){return mpd(this)}return uld(this,a,b,c)};_.hh=function spd(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?lpd(this,c):this.Cb.ih(this,-1-d,null,c)));return kpd(this,BD(a,33),c);}return vld(this,a,b,c)};_.jh=function tpd(a,b,c){if(b==9){return kpd(this,null,c)}return wld(this,a,b,c)};_.lh=function upd(a){if(a==9){return !!mpd(this)}return xld(this,a)};_.sh=function vpd(a,b){switch(a){case 9:npd(this,BD(b,33));return;}yld(this,a,b)};_.zh=function wpd(){return Thd(),Phd};_.Bh=function xpd(a){switch(a){case 9:npd(this,null);return;}zld(this,a)};_.Ib=function ypd(){return opd(this)};var R2=mdb(rte,'ElkPortImpl',186);var J4=odb(Tte,'BasicEMap/Entry');bcb(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},Bpd);_.Fb=function Hpd(a){return this===a};_.cd=function Jpd(){return this.b};_.Hb=function Lpd(){return FCb(this)};_.Uh=function Npd(a){zpd(this,BD(a,146))};_._g=function Cpd(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return fid(this,a,b,c)};_.lh=function Dpd(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return mid(this,a)};_.sh=function Epd(a,b){switch(a){case 0:zpd(this,BD(b,146));return;case 1:Apd(this,b);return;}yid(this,a,b)};_.zh=function Fpd(){return Thd(),Qhd};_.Bh=function Gpd(a){switch(a){case 0:zpd(this,null);return;case 1:Apd(this,null);return;}Cid(this,a)};_.Sh=function Ipd(){var a;if(this.a==-1){a=this.b;this.a=!a?0:tb(a)}return this.a};_.dd=function Kpd(){return this.c};_.Th=function Mpd(a){this.a=a};_.ed=function Opd(a){var b;b=this.c;Apd(this,a);return b};_.Ib=function Ppd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Ufb;Qfb(Qfb(Qfb(a,this.b?this.b.tg():Xhe),gne),xfb(this.c));return a.a};_.a=-1;_.c=null;var S2=mdb(rte,'ElkPropertyToValueMapEntryImpl',1092);bcb(984,1,{},bqd);var U2=mdb(Wte,'JsonAdapter',984);bcb(210,60,Tie,cqd);var V2=mdb(Wte,'JsonImportException',210);bcb(857,1,{},ird);var J3=mdb(Wte,'JsonImporter',857);bcb(891,1,{},jrd);var W2=mdb(Wte,'JsonImporter/lambda$0$Type',891);bcb(892,1,{},krd);var X2=mdb(Wte,'JsonImporter/lambda$1$Type',892);bcb(900,1,{},lrd);var Y2=mdb(Wte,'JsonImporter/lambda$10$Type',900);bcb(902,1,{},mrd);var Z2=mdb(Wte,'JsonImporter/lambda$11$Type',902);bcb(903,1,{},nrd);var $2=mdb(Wte,'JsonImporter/lambda$12$Type',903);bcb(909,1,{},ord);var _2=mdb(Wte,'JsonImporter/lambda$13$Type',909);bcb(908,1,{},prd);var a3=mdb(Wte,'JsonImporter/lambda$14$Type',908);bcb(904,1,{},qrd);var b3=mdb(Wte,'JsonImporter/lambda$15$Type',904);bcb(905,1,{},rrd);var c3=mdb(Wte,'JsonImporter/lambda$16$Type',905);bcb(906,1,{},srd);var d3=mdb(Wte,'JsonImporter/lambda$17$Type',906);bcb(907,1,{},trd);var e3=mdb(Wte,'JsonImporter/lambda$18$Type',907);bcb(912,1,{},urd);var f3=mdb(Wte,'JsonImporter/lambda$19$Type',912);bcb(893,1,{},vrd);var g3=mdb(Wte,'JsonImporter/lambda$2$Type',893);bcb(910,1,{},wrd);var h3=mdb(Wte,'JsonImporter/lambda$20$Type',910);bcb(911,1,{},xrd);var i3=mdb(Wte,'JsonImporter/lambda$21$Type',911);bcb(915,1,{},yrd);var j3=mdb(Wte,'JsonImporter/lambda$22$Type',915);bcb(913,1,{},zrd);var k3=mdb(Wte,'JsonImporter/lambda$23$Type',913);bcb(914,1,{},Ard);var l3=mdb(Wte,'JsonImporter/lambda$24$Type',914);bcb(917,1,{},Brd);var m3=mdb(Wte,'JsonImporter/lambda$25$Type',917);bcb(916,1,{},Crd);var n3=mdb(Wte,'JsonImporter/lambda$26$Type',916);bcb(918,1,qie,Drd);_.td=function Erd(a){Bqd(this.b,this.a,GD(a))};var o3=mdb(Wte,'JsonImporter/lambda$27$Type',918);bcb(919,1,qie,Frd);_.td=function Grd(a){Cqd(this.b,this.a,GD(a))};var p3=mdb(Wte,'JsonImporter/lambda$28$Type',919);bcb(920,1,{},Hrd);var q3=mdb(Wte,'JsonImporter/lambda$29$Type',920);bcb(896,1,{},Ird);var r3=mdb(Wte,'JsonImporter/lambda$3$Type',896);bcb(921,1,{},Jrd);var s3=mdb(Wte,'JsonImporter/lambda$30$Type',921);bcb(922,1,{},Krd);var t3=mdb(Wte,'JsonImporter/lambda$31$Type',922);bcb(923,1,{},Lrd);var u3=mdb(Wte,'JsonImporter/lambda$32$Type',923);bcb(924,1,{},Mrd);var v3=mdb(Wte,'JsonImporter/lambda$33$Type',924);bcb(925,1,{},Nrd);var w3=mdb(Wte,'JsonImporter/lambda$34$Type',925);bcb(859,1,{},Prd);var x3=mdb(Wte,'JsonImporter/lambda$35$Type',859);bcb(929,1,{},Rrd);var y3=mdb(Wte,'JsonImporter/lambda$36$Type',929);bcb(926,1,qie,Srd);_.td=function Trd(a){Lqd(this.a,BD(a,469))};var z3=mdb(Wte,'JsonImporter/lambda$37$Type',926);bcb(927,1,qie,Urd);_.td=function Vrd(a){Mqd(this.a,this.b,BD(a,202))};var A3=mdb(Wte,'JsonImporter/lambda$38$Type',927);bcb(928,1,qie,Wrd);_.td=function Xrd(a){Nqd(this.a,this.b,BD(a,202))};var B3=mdb(Wte,'JsonImporter/lambda$39$Type',928);bcb(894,1,{},Yrd);var C3=mdb(Wte,'JsonImporter/lambda$4$Type',894);bcb(930,1,qie,Zrd);_.td=function $rd(a){Oqd(this.a,BD(a,8))};var D3=mdb(Wte,'JsonImporter/lambda$40$Type',930);bcb(895,1,{},_rd);var E3=mdb(Wte,'JsonImporter/lambda$5$Type',895);bcb(899,1,{},asd);var F3=mdb(Wte,'JsonImporter/lambda$6$Type',899);bcb(897,1,{},bsd);var G3=mdb(Wte,'JsonImporter/lambda$7$Type',897);bcb(898,1,{},csd);var H3=mdb(Wte,'JsonImporter/lambda$8$Type',898);bcb(901,1,{},dsd);var I3=mdb(Wte,'JsonImporter/lambda$9$Type',901);bcb(948,1,qie,msd);_.td=function nsd(a){Qpd(this.a,new yC(GD(a)))};var K3=mdb(Wte,'JsonMetaDataConverter/lambda$0$Type',948);bcb(949,1,qie,osd);_.td=function psd(a){isd(this.a,BD(a,237))};var L3=mdb(Wte,'JsonMetaDataConverter/lambda$1$Type',949);bcb(950,1,qie,qsd);_.td=function rsd(a){jsd(this.a,BD(a,149))};var M3=mdb(Wte,'JsonMetaDataConverter/lambda$2$Type',950);bcb(951,1,qie,ssd);_.td=function tsd(a){ksd(this.a,BD(a,175))};var N3=mdb(Wte,'JsonMetaDataConverter/lambda$3$Type',951);bcb(237,22,{3:1,35:1,22:1,237:1},Dsd);var usd,vsd,wsd,xsd,ysd,zsd,Asd,Bsd;var O3=ndb(Hle,'GraphFeature',237,CI,Fsd,Esd);var Gsd;bcb(13,1,{35:1,146:1},Lsd,Msd,Nsd,Osd);_.wd=function Psd(a){return Isd(this,BD(a,146))};_.Fb=function Qsd(a){return Jsd(this,a)};_.wg=function Rsd(){return Ksd(this)};_.tg=function Ssd(){return this.b};_.Hb=function Tsd(){return LCb(this.b)};_.Ib=function Usd(){return this.b};var T3=mdb(Hle,'Property',13);bcb(818,1,Dke,Wsd);_.ue=function Xsd(a,b){return Vsd(this,BD(a,94),BD(b,94))};_.Fb=function Ysd(a){return this===a};_.ve=function Zsd(){return new tpb(this)};var S3=mdb(Hle,'PropertyHolderComparator',818);bcb(695,1,aie,qtd);_.Nb=function rtd(a){Rrb(this,a)};_.Pb=function ttd(){return ptd(this)};_.Qb=function utd(){Srb()};_.Ob=function std(){return !!this.a};var U3=mdb(jue,'ElkGraphUtil/AncestorIterator',695);var T4=odb(Tte,'EList');bcb(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1});_.Vc=function Jtd(a,b){vtd(this,a,b)};_.Fc=function Ktd(a){return wtd(this,a)};_.Wc=function Ltd(a,b){return xtd(this,a,b)};_.Gc=function Mtd(a){return ytd(this,a)};_.Zh=function Ntd(){return new $yd(this)};_.$h=function Otd(){return new bzd(this)};_._h=function Ptd(a){return ztd(this,a)};_.ai=function Qtd(){return true};_.bi=function Rtd(a,b){};_.ci=function Std(){};_.di=function Ttd(a,b){Atd(this,a,b)};_.ei=function Utd(a,b,c){};_.fi=function Vtd(a,b){};_.gi=function Wtd(a,b,c){};_.Fb=function Xtd(a){return Btd(this,a)};_.Hb=function Ytd(){return Etd(this)};_.hi=function Ztd(){return false};_.Kc=function $td(){return new Fyd(this)};_.Yc=function _td(){return new Oyd(this)};_.Zc=function aud(a){var b;b=this.gc();if(a<0||a>b)throw vbb(new Cyd(a,b));return new Pyd(this,a)};_.ji=function bud(a,b){this.ii(a,this.Xc(b))};_.Mc=function cud(a){return Ftd(this,a)};_.li=function dud(a,b){return b};_._c=function eud(a,b){return Gtd(this,a,b)};_.Ib=function fud(){return Htd(this)};_.ni=function gud(){return true};_.oi=function hud(a,b){return Itd(this,b)};var p4=mdb(Tte,'AbstractEList',67);bcb(63,67,oue,yud,zud,Aud);_.Vh=function Bud(a,b){return iud(this,a,b)};_.Wh=function Cud(a){return jud(this,a)};_.Xh=function Dud(a,b){kud(this,a,b)};_.Yh=function Eud(a){lud(this,a)};_.pi=function Fud(a){return nud(this,a)};_.$b=function Gud(){oud(this)};_.Hc=function Hud(a){return pud(this,a)};_.Xb=function Iud(a){return qud(this,a)};_.qi=function Jud(a){var b,c,d;++this.j;c=this.g==null?0:this.g.length;if(a>c){d=this.g;b=c+(c/2|0)+4;b<a&&(b=a);this.g=this.ri(b);d!=null&&$fb(d,0,this.g,0,this.i)}};_.Xc=function Kud(a){return rud(this,a)};_.dc=function Lud(){return this.i==0};_.ii=function Mud(a,b){return sud(this,a,b)};_.ri=function Nud(a){return KC(SI,Uhe,1,a,5,1)};_.ki=function Oud(a){return this.g[a]};_.$c=function Pud(a){return tud(this,a)};_.mi=function Qud(a,b){return uud(this,a,b)};_.gc=function Rud(){return this.i};_.Pc=function Sud(){return wud(this)};_.Qc=function Tud(a){return xud(this,a)};_.i=0;var y4=mdb(Tte,'BasicEList',63);var X4=odb(Tte,'TreeIterator');bcb(694,63,pue);_.Nb=function Xud(a){Rrb(this,a)};_.Ob=function Yud(){return this.g==null&&!this.c?Uud(this):this.g==null||this.i!=0&&BD(this.g[this.i-1],47).Ob()};_.Pb=function Zud(){return Vud(this)};_.Qb=function $ud(){if(!this.e){throw vbb(new Zdb('There is no valid object to remove.'))}this.e.Qb()};_.c=false;var q4=mdb(Tte,'AbstractTreeIterator',694);bcb(685,694,pue,_ud);_.si=function avd(a){var b;b=BD(a,56).Wg().Kc();JD(b,279)&&BD(b,279).Nk(new bvd);return b};var W3=mdb(jue,'ElkGraphUtil/PropertiesSkippingTreeIterator',685);bcb(952,1,{},bvd);var V3=mdb(jue,'ElkGraphUtil/PropertiesSkippingTreeIterator/1',952);var cvd,dvd;var Y3=mdb(jue,'ElkReflect',null);bcb(889,1,hse,jvd);_.vg=function kvd(a){return evd(),sqb(BD(a,174))};var X3=mdb(jue,'ElkReflect/lambda$0$Type',889);var lvd;var W4=odb(Tte,'ResourceLocator');bcb(1051,1,{});var N4=mdb(Tte,'DelegatingResourceLocator',1051);bcb(1052,1051,{});var Z3=mdb('org.eclipse.emf.common','EMFPlugin',1052);var $3=odb(cve,'Adapter');var _3=odb(cve,'Notification');bcb(1153,1,dve);_.ti=function vvd(){return this.d};_.ui=function wvd(a){};_.vi=function xvd(a){this.d=a};_.wi=function yvd(a){this.d==a&&(this.d=null)};_.d=null;var a4=mdb(hte,'AdapterImpl',1153);bcb(1995,67,eve);_.Vh=function Fvd(a,b){return zvd(this,a,b)};_.Wh=function Gvd(a){var b,c,d;++this.j;if(a.dc()){return false}else{b=this.Vi();for(d=a.Kc();d.Ob();){c=d.Pb();this.Ii(this.oi(b,c));++b}return true}};_.Xh=function Hvd(a,b){Avd(this,a,b)};_.Yh=function Ivd(a){Bvd(this,a)};_.Gi=function Jvd(){return this.Ji()};_.$b=function Kvd(){Cvd(this,this.Vi(),this.Wi())};_.Hc=function Lvd(a){return this.Li(a)};_.Ic=function Mvd(a){return this.Mi(a)};_.Hi=function Nvd(a,b){this.Si().jm()};_.Ii=function Ovd(a){this.Si().jm()};_.Ji=function Pvd(){return this.Si()};_.Ki=function Qvd(){this.Si().jm()};_.Li=function Rvd(a){return this.Si().jm()};_.Mi=function Svd(a){return this.Si().jm()};_.Ni=function Tvd(a){return this.Si().jm()};_.Oi=function Uvd(a){return this.Si().jm()};_.Pi=function Vvd(){return this.Si().jm()};_.Qi=function Wvd(a){return this.Si().jm()};_.Ri=function Xvd(){return this.Si().jm()};_.Ti=function Yvd(a){return this.Si().jm()};_.Ui=function Zvd(a,b){return this.Si().jm()};_.Vi=function $vd(){return this.Si().jm()};_.Wi=function _vd(){return this.Si().jm()};_.Xi=function awd(a){return this.Si().jm()};_.Yi=function bwd(){return this.Si().jm()};_.Fb=function cwd(a){return this.Ni(a)};_.Xb=function dwd(a){return this.li(a,this.Oi(a))};_.Hb=function ewd(){return this.Pi()};_.Xc=function fwd(a){return this.Qi(a)};_.dc=function gwd(){return this.Ri()};_.ii=function hwd(a,b){return Dvd(this,a,b)};_.ki=function iwd(a){return this.Oi(a)};_.$c=function jwd(a){return Evd(this,a)};_.Mc=function kwd(a){var b;b=this.Xc(a);if(b>=0){this.$c(b);return true}else{return false}};_.mi=function lwd(a,b){return this.Ui(a,this.oi(a,b))};_.gc=function mwd(){return this.Vi()};_.Pc=function nwd(){return this.Wi()};_.Qc=function owd(a){return this.Xi(a)};_.Ib=function pwd(){return this.Yi()};var M4=mdb(Tte,'DelegatingEList',1995);bcb(1996,1995,eve);_.Vh=function xwd(a,b){return qwd(this,a,b)};_.Wh=function ywd(a){return this.Vh(this.Vi(),a)};_.Xh=function zwd(a,b){rwd(this,a,b)};_.Yh=function Awd(a){swd(this,a)};_.ai=function Bwd(){return !this.bj()};_.$b=function Cwd(){vwd(this)};_.Zi=function Dwd(a,b,c,d,e){return new Cxd(this,a,b,c,d,e)};_.$i=function Ewd(a){Uhd(this.Ai(),a)};_._i=function Fwd(){return null};_.aj=function Gwd(){return -1};_.Ai=function Hwd(){return null};_.bj=function Iwd(){return false};_.cj=function Jwd(a,b){return b};_.dj=function Kwd(a,b){return b};_.ej=function Lwd(){return false};_.fj=function Mwd(){return !this.Ri()};_.ii=function Nwd(a,b){var c,d;if(this.ej()){d=this.fj();c=Dvd(this,a,b);this.$i(this.Zi(7,meb(b),c,a,d));return c}else{return Dvd(this,a,b)}};_.$c=function Owd(a){var b,c,d,e;if(this.ej()){c=null;d=this.fj();b=this.Zi(4,e=Evd(this,a),null,a,d);if(this.bj()&&!!e){c=this.dj(e,c);if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}else{if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}return e}else{e=Evd(this,a);if(this.bj()&&!!e){c=this.dj(e,null);!!c&&c.Fi()}return e}};_.mi=function Pwd(a,b){return wwd(this,a,b)};var d4=mdb(hte,'DelegatingNotifyingListImpl',1996);bcb(143,1,fve);_.Ei=function pxd(a){return Qwd(this,a)};_.Fi=function qxd(){Rwd(this)};_.xi=function rxd(){return this.d};_._i=function sxd(){return null};_.gj=function txd(){return null};_.yi=function uxd(a){return -1};_.zi=function vxd(){return $wd(this)};_.Ai=function wxd(){return null};_.Bi=function xxd(){return hxd(this)};_.Ci=function yxd(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.hj=function zxd(){return false};_.Di=function Axd(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.xi();switch(e){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}}}}case 4:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.Ci();this.d=6;l=new zud(2);if(i<=g){wtd(l,this.n);wtd(l,a.Bi());this.g=OC(GC(WD,1),oje,25,15,[this.o=i,g+1])}else{wtd(l,a.Bi());wtd(l,this.n);this.g=OC(GC(WD,1),oje,25,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);g=a.Ci();k=BD(this.g,48);d=KC(WD,oje,25,k.length+1,15,1);b=0;while(b<k.length){h=k[b];if(h<=g){d[b++]=h;++g}else{break}}c=BD(this.n,15);c.Vc(b,a.Bi());d[b]=g;while(++b<d.length){d[b]=k[b-1]}this.g=d;j||(this.o=-2-d[0]);return true}break}}break}}return false};_.Ib=function Bxd(){var a,b,c,d;d=new Jfb(hdb(this.gm)+'@'+(b=tb(this)>>>0,b.toString(16)));d.a+=' (eventType: ';switch(this.d){case 1:{d.a+='SET';break}case 2:{d.a+='UNSET';break}case 3:{d.a+='ADD';break}case 5:{d.a+='ADD_MANY';break}case 4:{d.a+='REMOVE';break}case 6:{d.a+='REMOVE_MANY';break}case 7:{d.a+='MOVE';break}case 8:{d.a+='REMOVING_ADAPTER';break}case 9:{d.a+='RESOLVE';break}default:{Cfb(d,this.d);break}}ixd(this)&&(d.a+=', touch: true',d);d.a+=', position: ';Cfb(d,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);d.a+=', notifier: ';Dfb(d,this.Ai());d.a+=', feature: ';Dfb(d,this._i());d.a+=', oldValue: ';Dfb(d,hxd(this));d.a+=', newValue: ';if(this.d==6&&JD(this.g,48)){c=BD(this.g,48);d.a+='[';for(a=0;a<c.length;){d.a+=c[a];++a<c.length&&(d.a+=She,d)}d.a+=']'}else{Dfb(d,$wd(this))}d.a+=', isTouch: ';Ffb(d,ixd(this));d.a+=', wasSet: ';Ffb(d,jxd(this));d.a+=')';return d.a};_.d=0;_.e=0;_.f=0;_.j=0;_.k=0;_.o=0;_.p=0;var f4=mdb(hte,'NotificationImpl',143);bcb(1167,143,fve,Cxd);_._i=function Dxd(){return this.a._i()};_.yi=function Exd(a){return this.a.aj()};_.Ai=function Fxd(){return this.a.Ai()};var c4=mdb(hte,'DelegatingNotifyingListImpl/1',1167);bcb(242,63,oue,Hxd,Ixd);_.Fc=function Jxd(a){return Gxd(this,BD(a,366))};_.Ei=function Kxd(a){return Gxd(this,a)};_.Fi=function Lxd(){var a,b,c;for(a=0;a<this.i;++a){b=BD(this.g[a],366);c=b.Ai();c!=null&&b.xi()!=-1&&BD(c,92).Ng(b)}};_.ri=function Mxd(a){return KC(_3,Uhe,366,a,0,1)};var e4=mdb(hte,'NotificationChainImpl',242);bcb(1378,90,gte);_.Kg=function Nxd(){return this.e};_.Mg=function Oxd(){return (this.f&1)!=0};_.f=1;var g4=mdb(hte,'NotifierImpl',1378);bcb(1993,63,oue);_.Vh=function $xd(a,b){return Pxd(this,a,b)};_.Wh=function _xd(a){return this.Vh(this.i,a)};_.Xh=function ayd(a,b){Qxd(this,a,b)};_.Yh=function byd(a){Rxd(this,a)};_.ai=function cyd(){return !this.bj()};_.$b=function dyd(){Uxd(this)};_.Zi=function eyd(a,b,c,d,e){return new vyd(this,a,b,c,d,e)};_.$i=function fyd(a){Uhd(this.Ai(),a)};_._i=function gyd(){return null};_.aj=function hyd(){return -1};_.Ai=function iyd(){return null};_.bj=function jyd(){return false};_.ij=function kyd(){return false};_.cj=function lyd(a,b){return b};_.dj=function myd(a,b){return b};_.ej=function nyd(){return false};_.fj=function oyd(){return this.i!=0};_.ii=function pyd(a,b){return Wxd(this,a,b)};_.$c=function qyd(a){return Xxd(this,a)};_.mi=function ryd(a,b){return Zxd(this,a,b)};_.jj=function syd(a,b){return b};_.kj=function tyd(a,b){return b};_.lj=function uyd(a,b,c){return c};var i4=mdb(hte,'NotifyingListImpl',1993);bcb(1166,143,fve,vyd);_._i=function wyd(){return this.a._i()};_.yi=function xyd(a){return this.a.aj()};_.Ai=function yyd(){return this.a.Ai()};var h4=mdb(hte,'NotifyingListImpl/1',1166);bcb(953,63,oue,zyd);_.Hc=function Ayd(a){if(this.i>10){if(!this.b||this.c.j!=this.a){this.b=new Vqb(this);this.a=this.j}return Rqb(this.b,a)}else{return pud(this,a)}};_.ni=function Byd(){return true};_.a=0;var j4=mdb(Tte,'AbstractEList/1',953);bcb(295,73,Mje,Cyd);var k4=mdb(Tte,'AbstractEList/BasicIndexOutOfBoundsException',295);bcb(40,1,aie,Fyd);_.Nb=function Iyd(a){Rrb(this,a)};_.mj=function Gyd(){if(this.i.j!=this.f){throw vbb(new Apb)}};_.nj=function Hyd(){return Dyd(this)};_.Ob=function Jyd(){return this.e!=this.i.gc()};_.Pb=function Kyd(){return this.nj()};_.Qb=function Lyd(){Eyd(this)};_.e=0;_.f=0;_.g=-1;var l4=mdb(Tte,'AbstractEList/EIterator',40);bcb(278,40,jie,Oyd,Pyd);_.Qb=function Xyd(){Eyd(this)};_.Rb=function Qyd(a){Myd(this,a)};_.oj=function Ryd(){var b;try{b=this.d.Xb(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.pj=function Syd(a){Nyd(this,a)};_.Sb=function Tyd(){return this.e!=0};_.Tb=function Uyd(){return this.e};_.Ub=function Vyd(){return this.oj()};_.Vb=function Wyd(){return this.e-1};_.Wb=function Yyd(a){this.pj(a)};var m4=mdb(Tte,'AbstractEList/EListIterator',278);bcb(341,40,aie,$yd);_.nj=function _yd(){return Zyd(this)};_.Qb=function azd(){throw vbb(new bgb)};var n4=mdb(Tte,'AbstractEList/NonResolvingEIterator',341);bcb(385,278,jie,bzd,czd);_.Rb=function dzd(a){throw vbb(new bgb)};_.nj=function ezd(){var b;try{b=this.c.ki(this.e);this.mj();this.g=this.e++;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.oj=function fzd(){var b;try{b=this.c.ki(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.Qb=function gzd(){throw vbb(new bgb)};_.Wb=function hzd(a){throw vbb(new bgb)};var o4=mdb(Tte,'AbstractEList/NonResolvingEListIterator',385);bcb(1982,67,ive);_.Vh=function pzd(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b.gc();if(e!=0){j=BD(Ajd(this.a,4),126);k=j==null?0:j.length;m=k+e;d=nzd(this,m);l=k-a;l>0&&$fb(j,a,d,a+e,l);i=b.Kc();for(g=0;g<e;++g){h=i.Pb();c=a+g;lzd(d,c,Itd(this,h))}b0d(this,d);for(f=0;f<e;++f){h=d[a];this.bi(a,h);++a}return true}else{++this.j;return false}};_.Wh=function qzd(a){var b,c,d,e,f,g,h,i,j;d=a.gc();if(d!=0){i=(c=BD(Ajd(this.a,4),126),c==null?0:c.length);j=i+d;b=nzd(this,j);h=a.Kc();for(f=i;f<j;++f){g=h.Pb();lzd(b,f,Itd(this,g))}b0d(this,b);for(e=i;e<j;++e){g=b[e];this.bi(e,g)}return true}else{++this.j;return false}};_.Xh=function rzd(a,b){var c,d,e,f;d=BD(Ajd(this.a,4),126);e=d==null?0:d.length;c=nzd(this,e+1);f=Itd(this,b);a!=e&&$fb(d,a,c,a+1,e-a);NC(c,a,f);b0d(this,c);this.bi(a,b)};_.Yh=function szd(a){var b,c,d;d=(c=BD(Ajd(this.a,4),126),c==null?0:c.length);b=nzd(this,d+1);lzd(b,d,Itd(this,a));b0d(this,b);this.bi(d,a)};_.Zh=function tzd(){return new Uzd(this)};_.$h=function uzd(){return new Xzd(this)};_._h=function vzd(a){var b,c;c=(b=BD(Ajd(this.a,4),126),b==null?0:b.length);if(a<0||a>c)throw vbb(new Cyd(a,c));return new Yzd(this,a)};_.$b=function wzd(){var a,b;++this.j;a=BD(Ajd(this.a,4),126);b=a==null?0:a.length;b0d(this,null);Atd(this,b,a)};_.Hc=function xzd(a){var b,c,d,e,f;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(d=b,e=0,f=d.length;e<f;++e){c=d[e];if(pb(a,c)){return true}}}else{for(d=b,e=0,f=d.length;e<f;++e){c=d[e];if(PD(c)===PD(a)){return true}}}}return false};_.Xb=function yzd(a){var b,c;b=BD(Ajd(this.a,4),126);c=b==null?0:b.length;if(a>=c)throw vbb(new Cyd(a,c));return b[a]};_.Xc=function zzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(c=0,d=b.length;c<d;++c){if(pb(a,b[c])){return c}}}else{for(c=0,d=b.length;c<d;++c){if(PD(b[c])===PD(a)){return c}}}}return -1};_.dc=function Azd(){return BD(Ajd(this.a,4),126)==null};_.Kc=function Bzd(){return new Lzd(this)};_.Yc=function Czd(){return new Pzd(this)};_.Zc=function Dzd(a){var b,c;c=(b=BD(Ajd(this.a,4),126),b==null?0:b.length);if(a<0||a>c)throw vbb(new Cyd(a,c));return new Qzd(this,a)};_.ii=function Ezd(a,b){var c,d,e;c=mzd(this);e=c==null?0:c.length;if(a>=e)throw vbb(new qcb(lue+a+mue+e));if(b>=e)throw vbb(new qcb(nue+b+mue+e));d=c[b];if(a!=b){a<b?$fb(c,a,c,a+1,b-a):$fb(c,b+1,c,b,a-b);NC(c,a,d);b0d(this,c)}return d};_.ki=function Fzd(a){return BD(Ajd(this.a,4),126)[a]};_.$c=function Gzd(a){return ozd(this,a)};_.mi=function Hzd(a,b){var c,d;c=mzd(this);d=c[a];lzd(c,a,Itd(this,b));b0d(this,c);return d};_.gc=function Izd(){var a;return a=BD(Ajd(this.a,4),126),a==null?0:a.length};_.Pc=function Jzd(){var a,b,c;a=BD(Ajd(this.a,4),126);c=a==null?0:a.length;b=KC($3,hve,415,c,0,1);c>0&&$fb(a,0,b,0,c);return b};_.Qc=function Kzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);d=b==null?0:b.length;if(d>0){if(a.length<d){c=izd(rb(a).c,d);a=c}$fb(b,0,a,0,d)}a.length>d&&NC(a,d,null);return a};var jzd;var v4=mdb(Tte,'ArrayDelegatingEList',1982);bcb(1038,40,aie,Lzd);_.mj=function Mzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.Qb=function Nzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var r4=mdb(Tte,'ArrayDelegatingEList/EIterator',1038);bcb(706,278,jie,Pzd,Qzd);_.mj=function Rzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.pj=function Szd(a){Nyd(this,a);this.a=BD(Ajd(this.b.a,4),126)};_.Qb=function Tzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var s4=mdb(Tte,'ArrayDelegatingEList/EListIterator',706);bcb(1039,341,aie,Uzd);_.mj=function Vzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var t4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEIterator',1039);bcb(707,385,jie,Xzd,Yzd);_.mj=function Zzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var u4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEListIterator',707);bcb(606,295,Mje,$zd);var w4=mdb(Tte,'BasicEList/BasicIndexOutOfBoundsException',606);bcb(696,63,oue,_zd);_.Vc=function aAd(a,b){throw vbb(new bgb)};_.Fc=function bAd(a){throw vbb(new bgb)};_.Wc=function cAd(a,b){throw vbb(new bgb)};_.Gc=function dAd(a){throw vbb(new bgb)};_.$b=function eAd(){throw vbb(new bgb)};_.qi=function fAd(a){throw vbb(new bgb)};_.Kc=function gAd(){return this.Zh()};_.Yc=function hAd(){return this.$h()};_.Zc=function iAd(a){return this._h(a)};_.ii=function jAd(a,b){throw vbb(new bgb)};_.ji=function kAd(a,b){throw vbb(new bgb)};_.$c=function lAd(a){throw vbb(new bgb)};_.Mc=function mAd(a){throw vbb(new bgb)};_._c=function nAd(a,b){throw vbb(new bgb)};var x4=mdb(Tte,'BasicEList/UnmodifiableEList',696);bcb(705,1,{3:1,20:1,14:1,15:1,58:1,589:1});_.Vc=function OAd(a,b){oAd(this,a,BD(b,42))};_.Fc=function PAd(a){return pAd(this,BD(a,42))};_.Jc=function XAd(a){reb(this,a)};_.Xb=function YAd(a){return BD(qud(this.c,a),133)};_.ii=function fBd(a,b){return BD(this.c.ii(a,b),42)};_.ji=function gBd(a,b){GAd(this,a,BD(b,42))};_.Lc=function jBd(){return new YAb(null,new Kub(this,16))};_.$c=function kBd(a){return BD(this.c.$c(a),42)};_._c=function mBd(a,b){return MAd(this,a,BD(b,42))};_.ad=function oBd(a){ktb(this,a)};_.Nc=function pBd(){return new Kub(this,16)};_.Oc=function qBd(){return new YAb(null,new Kub(this,16))};_.Wc=function QAd(a,b){return this.c.Wc(a,b)};_.Gc=function RAd(a){return this.c.Gc(a)};_.$b=function SAd(){this.c.$b()};_.Hc=function TAd(a){return this.c.Hc(a)};_.Ic=function UAd(a){return Be(this.c,a)};_.qj=function VAd(){var a,b,c;if(this.d==null){this.d=KC(y4,jve,63,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.Kc();b.e!=b.i.gc();){a=BD(b.nj(),133);uAd(this,a)}this.e=c}};_.Fb=function WAd(a){return zAd(this,a)};_.Hb=function ZAd(){return Etd(this.c)};_.Xc=function $Ad(a){return this.c.Xc(a)};_.rj=function _Ad(){this.c=new yBd(this)};_.dc=function aBd(){return this.f==0};_.Kc=function bBd(){return this.c.Kc()};_.Yc=function cBd(){return this.c.Yc()};_.Zc=function dBd(a){return this.c.Zc(a)};_.sj=function eBd(){return FAd(this)};_.tj=function hBd(a,b,c){return new zCd(a,b,c)};_.uj=function iBd(){return new EBd};_.Mc=function lBd(a){return JAd(this,a)};_.gc=function nBd(){return this.f};_.bd=function rBd(a,b){return new Jib(this.c,a,b)};_.Pc=function sBd(){return this.c.Pc()};_.Qc=function tBd(a){return this.c.Qc(a)};_.Ib=function uBd(){return Htd(this.c)};_.e=0;_.f=0;var L4=mdb(Tte,'BasicEMap',705);bcb(1033,63,oue,yBd);_.bi=function zBd(a,b){vBd(this,BD(b,133))};_.ei=function BBd(a,b,c){var d;++(d=this,BD(b,133),d).a.e};_.fi=function CBd(a,b){wBd(this,BD(b,133))};_.gi=function DBd(a,b,c){xBd(this,BD(b,133),BD(c,133))};_.di=function ABd(a,b){tAd(this.a)};var z4=mdb(Tte,'BasicEMap/1',1033);bcb(1034,63,oue,EBd);_.ri=function FBd(a){return KC(I4,kve,612,a,0,1)};var A4=mdb(Tte,'BasicEMap/2',1034);bcb(1035,eie,fie,GBd);_.$b=function HBd(){this.a.c.$b()};_.Hc=function IBd(a){return qAd(this.a,a)};_.Kc=function JBd(){return this.a.f==0?(LCd(),KCd.a):new dCd(this.a)};_.Mc=function KBd(a){var b;b=this.a.f;LAd(this.a,a);return this.a.f!=b};_.gc=function LBd(){return this.a.f};var B4=mdb(Tte,'BasicEMap/3',1035);bcb(1036,28,die,MBd);_.$b=function NBd(){this.a.c.$b()};_.Hc=function OBd(a){return rAd(this.a,a)};_.Kc=function PBd(){return this.a.f==0?(LCd(),KCd.a):new fCd(this.a)};_.gc=function QBd(){return this.a.f};var C4=mdb(Tte,'BasicEMap/4',1036);bcb(1037,eie,fie,SBd);_.$b=function TBd(){this.a.c.$b()};_.Hc=function UBd(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&JD(a,42)){this.a.qj();i=BD(a,42);h=i.cd();e=h==null?0:tb(h);f=DAd(this.a,e);b=this.a.d[f];if(b){c=BD(b.g,367);j=b.i;for(g=0;g<j;++g){d=c[g];if(d.Sh()==e&&d.Fb(i)){return true}}}}return false};_.Kc=function VBd(){return this.a.f==0?(LCd(),KCd.a):new ZBd(this.a)};_.Mc=function WBd(a){return RBd(this,a)};_.gc=function XBd(){return this.a.f};var D4=mdb(Tte,'BasicEMap/5',1037);bcb(613,1,aie,ZBd);_.Nb=function $Bd(a){Rrb(this,a)};_.Ob=function _Bd(){return this.b!=-1};_.Pb=function aCd(){var a;if(this.f.e!=this.c){throw vbb(new Apb)}if(this.b==-1){throw vbb(new utb)}this.d=this.a;this.e=this.b;YBd(this);a=BD(this.f.d[this.d].g[this.e],133);return this.vj(a)};_.Qb=function bCd(){if(this.f.e!=this.c){throw vbb(new Apb)}if(this.e==-1){throw vbb(new Ydb)}this.f.c.Mc(qud(this.f.d[this.d],this.e));this.c=this.f.e;this.e=-1;this.a==this.d&&this.b!=-1&&--this.b};_.vj=function cCd(a){return a};_.a=0;_.b=-1;_.c=0;_.d=0;_.e=0;var E4=mdb(Tte,'BasicEMap/BasicEMapIterator',613);bcb(1031,613,aie,dCd);_.vj=function eCd(a){return a.cd()};var F4=mdb(Tte,'BasicEMap/BasicEMapKeyIterator',1031);bcb(1032,613,aie,fCd);_.vj=function gCd(a){return a.dd()};var G4=mdb(Tte,'BasicEMap/BasicEMapValueIterator',1032);bcb(1030,1,cie,iCd);_.wc=function oCd(a){stb(this,a)};_.yc=function tCd(a,b,c){return ttb(this,a,b,c)};_.$b=function jCd(){this.a.c.$b()};_._b=function kCd(a){return hCd(this,a)};_.uc=function lCd(a){return rAd(this.a,a)};_.vc=function mCd(){return yAd(this.a)};_.Fb=function nCd(a){return zAd(this.a,a)};_.xc=function pCd(a){return AAd(this.a,a)};_.Hb=function qCd(){return Etd(this.a.c)};_.dc=function rCd(){return this.a.f==0};_.ec=function sCd(){return EAd(this.a)};_.zc=function uCd(a,b){return HAd(this.a,a,b)};_.Bc=function vCd(a){return LAd(this.a,a)};_.gc=function wCd(){return this.a.f};_.Ib=function xCd(){return Htd(this.a.c)};_.Cc=function yCd(){return NAd(this.a)};var H4=mdb(Tte,'BasicEMap/DelegatingMap',1030);bcb(612,1,{42:1,133:1,612:1},zCd);_.Fb=function ACd(a){var b;if(JD(a,42)){b=BD(a,42);return (this.b!=null?pb(this.b,b.cd()):PD(this.b)===PD(b.cd()))&&(this.c!=null?pb(this.c,b.dd()):PD(this.c)===PD(b.dd()))}else{return false}};_.Sh=function BCd(){return this.a};_.cd=function CCd(){return this.b};_.dd=function DCd(){return this.c};_.Hb=function ECd(){return this.a^(this.c==null?0:tb(this.c))};_.Th=function FCd(a){this.a=a};_.Uh=function GCd(a){throw vbb(new gz)};_.ed=function HCd(a){var b;b=this.c;this.c=a;return b};_.Ib=function ICd(){return this.b+'->'+this.c};_.a=0;var I4=mdb(Tte,'BasicEMap/EntryImpl',612);bcb(536,1,{},JCd);var K4=mdb(Tte,'BasicEMap/View',536);var KCd;bcb(768,1,{});_.Fb=function ZCd(a){return At((mmb(),jmb),a)};_.Hb=function $Cd(){return qmb((mmb(),jmb))};_.Ib=function _Cd(){return Fe((mmb(),jmb))};var Q4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList',768);bcb(1312,1,jie,aDd);_.Nb=function cDd(a){Rrb(this,a)};_.Rb=function bDd(a){throw vbb(new bgb)};_.Ob=function dDd(){return false};_.Sb=function eDd(){return false};_.Pb=function fDd(){throw vbb(new utb)};_.Tb=function gDd(){return 0};_.Ub=function hDd(){throw vbb(new utb)};_.Vb=function iDd(){return -1};_.Qb=function jDd(){throw vbb(new bgb)};_.Wb=function kDd(a){throw vbb(new bgb)};var P4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList/1',1312);bcb(1310,768,{20:1,14:1,15:1,58:1},lDd);_.Vc=function mDd(a,b){OCd()};_.Fc=function nDd(a){return PCd()};_.Wc=function oDd(a,b){return QCd()};_.Gc=function pDd(a){return RCd()};_.$b=function qDd(){SCd()};_.Hc=function rDd(a){return false};_.Ic=function sDd(a){return false};_.Jc=function tDd(a){reb(this,a)};_.Xb=function uDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function vDd(a){return -1};_.dc=function wDd(){return true};_.Kc=function xDd(){return this.a};_.Yc=function yDd(){return this.a};_.Zc=function zDd(a){return this.a};_.ii=function ADd(a,b){return TCd()};_.ji=function BDd(a,b){UCd()};_.Lc=function CDd(){return new YAb(null,new Kub(this,16))};_.$c=function DDd(a){return VCd()};_.Mc=function EDd(a){return WCd()};_._c=function FDd(a,b){return XCd()};_.gc=function GDd(){return 0};_.ad=function HDd(a){ktb(this,a)};_.Nc=function IDd(){return new Kub(this,16)};_.Oc=function JDd(){return new YAb(null,new Kub(this,16))};_.bd=function KDd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function LDd(){return De((mmb(),jmb))};_.Qc=function MDd(a){return mmb(),Ee(jmb,a)};var R4=mdb(Tte,'ECollections/EmptyUnmodifiableEList',1310);bcb(1311,768,{20:1,14:1,15:1,58:1,589:1},NDd);_.Vc=function ODd(a,b){OCd()};_.Fc=function PDd(a){return PCd()};_.Wc=function QDd(a,b){return QCd()};_.Gc=function RDd(a){return RCd()};_.$b=function SDd(){SCd()};_.Hc=function TDd(a){return false};_.Ic=function UDd(a){return false};_.Jc=function VDd(a){reb(this,a)};_.Xb=function WDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function XDd(a){return -1};_.dc=function YDd(){return true};_.Kc=function ZDd(){return this.a};_.Yc=function $Dd(){return this.a};_.Zc=function _Dd(a){return this.a};_.ii=function bEd(a,b){return TCd()};_.ji=function cEd(a,b){UCd()};_.Lc=function dEd(){return new YAb(null,new Kub(this,16))};_.$c=function eEd(a){return VCd()};_.Mc=function fEd(a){return WCd()};_._c=function gEd(a,b){return XCd()};_.gc=function hEd(){return 0};_.ad=function iEd(a){ktb(this,a)};_.Nc=function jEd(){return new Kub(this,16)};_.Oc=function kEd(){return new YAb(null,new Kub(this,16))};_.bd=function lEd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function mEd(){return De((mmb(),jmb))};_.Qc=function nEd(a){return mmb(),Ee(jmb,a)};_.sj=function aEd(){return mmb(),mmb(),kmb};var S4=mdb(Tte,'ECollections/EmptyUnmodifiableEMap',1311);var U4=odb(Tte,'Enumerator');var oEd;bcb(281,1,{281:1},NEd);_.Fb=function REd(a){var b;if(this===a)return true;if(!JD(a,281))return false;b=BD(a,281);return this.f==b.f&&TEd(this.i,b.i)&&SEd(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&SEd(this.d,b.d)&&SEd(this.g,b.g)&&SEd(this.e,b.e)&&KEd(this,b)};_.Hb=function WEd(){return this.f};_.Ib=function cFd(){return LEd(this)};_.f=0;var sEd=0,tEd=0,uEd=0,vEd=0,wEd=0,xEd=0,yEd=0,zEd=0,AEd=0,BEd,CEd=0,DEd=0,EEd=0,FEd=0,GEd,HEd;var Z4=mdb(Tte,'URI',281);bcb(1091,43,fke,mFd);_.zc=function nFd(a,b){return BD(Shb(this,GD(a),BD(b,281)),281)};var Y4=mdb(Tte,'URI/URICache',1091);bcb(497,63,oue,oFd,pFd);_.hi=function qFd(){return true};var $4=mdb(Tte,'UniqueEList',497);bcb(581,60,Tie,rFd);var _4=mdb(Tte,'WrappedException',581);var a5=odb(Vse,nve);var v5=odb(Vse,ove);var t5=odb(Vse,pve);var b5=odb(Vse,qve);var d5=odb(Vse,rve);var c5=odb(Vse,'EClass');var f5=odb(Vse,'EDataType');var sFd;bcb(1183,43,fke,vFd);_.xc=function wFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var e5=mdb(Vse,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1183);var h5=odb(Vse,'EEnum');var g5=odb(Vse,sve);var j5=odb(Vse,tve);var n5=odb(Vse,uve);var xFd;var p5=odb(Vse,vve);var q5=odb(Vse,wve);bcb(1029,1,{},BFd);_.Ib=function CFd(){return 'NIL'};var r5=mdb(Vse,'EStructuralFeature/Internal/DynamicValueHolder/1',1029);var DFd;bcb(1028,43,fke,GFd);_.xc=function HFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var s5=mdb(Vse,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',1028);var u5=odb(Vse,xve);var w5=odb(Vse,'EValidator/PatternMatcher');var IFd;var KFd;var MFd;var OFd,PFd,QFd,RFd,SFd,TFd,UFd,VFd,WFd,XFd,YFd,ZFd,$Fd,_Fd,aGd,bGd,cGd,dGd,eGd,fGd,gGd,hGd,iGd;var E9=odb(yve,'FeatureMap/Entry');bcb(535,1,{72:1},kGd);_.ak=function lGd(){return this.a};_.dd=function mGd(){return this.b};var x5=mdb(qte,'BasicEObjectImpl/1',535);bcb(1027,1,zve,nGd);_.Wj=function oGd(a){return hid(this.a,this.b,a)};_.fj=function pGd(){return nid(this.a,this.b)};_.Wb=function qGd(a){zid(this.a,this.b,a)};_.Xj=function rGd(){Did(this.a,this.b)};var y5=mdb(qte,'BasicEObjectImpl/4',1027);bcb(1983,1,{108:1});_.bk=function uGd(a){this.e=a==0?sGd:KC(SI,Uhe,1,a,5,1)};_.Ch=function vGd(a){return this.e[a]};_.Dh=function wGd(a,b){this.e[a]=b};_.Eh=function xGd(a){this.e[a]=null};_.ck=function yGd(){return this.c};_.dk=function zGd(){throw vbb(new bgb)};_.ek=function AGd(){throw vbb(new bgb)};_.fk=function BGd(){return this.d};_.gk=function CGd(){return this.e!=null};_.hk=function DGd(a){this.c=a};_.ik=function EGd(a){throw vbb(new bgb)};_.jk=function FGd(a){throw vbb(new bgb)};_.kk=function GGd(a){this.d=a};var sGd;var z5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderBaseImpl',1983);bcb(185,1983,{108:1},HGd);_.dk=function IGd(){return this.a};_.ek=function JGd(){return this.b};_.ik=function KGd(a){this.a=a};_.jk=function LGd(a){this.b=a};var A5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderImpl',185);bcb(506,97,pte,MGd);_.Kg=function NGd(){return this.f};_.Pg=function OGd(){return this.k};_.Rg=function PGd(a,b){this.g=a;this.i=b};_.Tg=function QGd(){return (this.j&2)==0?this.zh():this.ph().ck()};_.Vg=function RGd(){return this.i};_.Mg=function SGd(){return (this.j&1)!=0};_.eh=function TGd(){return this.g};_.kh=function UGd(){return (this.j&4)!=0};_.ph=function VGd(){return !this.k&&(this.k=new HGd),this.k};_.th=function WGd(a){this.ph().hk(a);a?(this.j|=2):(this.j&=-3)};_.vh=function XGd(a){this.ph().jk(a);a?(this.j|=4):(this.j&=-5)};_.zh=function YGd(){return (NFd(),MFd).S};_.i=0;_.j=1;var l6=mdb(qte,'EObjectImpl',506);bcb(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},_Gd);_.Ch=function aHd(a){return this.e[a]};_.Dh=function bHd(a,b){this.e[a]=b};_.Eh=function cHd(a){this.e[a]=null};_.Tg=function dHd(){return this.d};_.Yg=function eHd(a){return bLd(this.d,a)};_.$g=function fHd(){return this.d};_.dh=function gHd(){return this.e!=null};_.ph=function hHd(){!this.k&&(this.k=new vHd);return this.k};_.th=function iHd(a){this.d=a};_.yh=function jHd(){var a;if(this.e==null){a=aLd(this.d);this.e=a==0?ZGd:KC(SI,Uhe,1,a,5,1)}return this};_.Ah=function kHd(){return 0};var ZGd;var E5=mdb(qte,'DynamicEObjectImpl',780);bcb(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},lHd);_.Fb=function nHd(a){return this===a};_.Hb=function rHd(){return FCb(this)};_.th=function mHd(a){this.d=a;this.b=YKd(a,'key');this.c=YKd(a,Bte)};_.Sh=function oHd(){var a;if(this.a==-1){a=iid(this,this.b);this.a=a==null?0:tb(a)}return this.a};_.cd=function pHd(){return iid(this,this.b)};_.dd=function qHd(){return iid(this,this.c)};_.Th=function sHd(a){this.a=a};_.Uh=function tHd(a){zid(this,this.b,a)};_.ed=function uHd(a){var b;b=iid(this,this.c);zid(this,this.c,a);return b};_.a=0;var C5=mdb(qte,'DynamicEObjectImpl/BasicEMapEntry',1376);bcb(1377,1,{108:1},vHd);_.bk=function wHd(a){throw vbb(new bgb)};_.Ch=function xHd(a){throw vbb(new bgb)};_.Dh=function yHd(a,b){throw vbb(new bgb)};_.Eh=function zHd(a){throw vbb(new bgb)};_.ck=function AHd(){throw vbb(new bgb)};_.dk=function BHd(){return this.a};_.ek=function CHd(){return this.b};_.fk=function DHd(){return this.c};_.gk=function EHd(){throw vbb(new bgb)};_.hk=function FHd(a){throw vbb(new bgb)};_.ik=function GHd(a){this.a=a};_.jk=function HHd(a){this.b=a};_.kk=function IHd(a){this.c=a};var D5=mdb(qte,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1377);bcb(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},RHd);_.Qg=function SHd(a){return KHd(this,a)};_._g=function THd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),this.b):(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),FAd(this.b));case 3:return MHd(this);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),this.a;case 5:return !this.c&&(this.c=new _4d(m5,this,5)),this.c;}return bid(this,a-aLd((jGd(),OFd)),XKd((d=BD(Ajd(this,16),26),!d?OFd:d),a),b,c)};_.hh=function UHd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?KHd(this,c):this.Cb.ih(this,-1-e,null,c)));return JHd(this,BD(a,147),c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.jh=function VHd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.b&&(this.b=new sId((jGd(),fGd),x6,this)),bId(this.b,a,c);case 3:return JHd(this,null,c);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.lh=function WHd(a){var b;switch(a){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 !!MHd(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return cid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.sh=function XHd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:OHd(this,GD(b));return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));cId(this.b,b);return;case 3:NHd(this,BD(b,147));return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);!this.a&&(this.a=new xMd(m5,this,4));ytd(this.a,BD(b,14));return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);!this.c&&(this.c=new _4d(m5,this,5));ytd(this.c,BD(b,14));return;}did(this,a-aLd((jGd(),OFd)),XKd((c=BD(Ajd(this,16),26),!c?OFd:c),a),b)};_.zh=function YHd(){return jGd(),OFd};_.Bh=function ZHd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:PHd(this,null);return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));this.b.c.$b();return;case 3:NHd(this,null);return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);return;}eid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.Ib=function $Hd(){return QHd(this)};_.d=null;var G5=mdb(qte,'EAnnotationImpl',510);bcb(151,705,Ave,dId);_.Xh=function eId(a,b){_Hd(this,a,BD(b,42))};_.lk=function fId(a,b){return aId(this,BD(a,42),b)};_.pi=function gId(a){return BD(BD(this.c,69).pi(a),133)};_.Zh=function hId(){return BD(this.c,69).Zh()};_.$h=function iId(){return BD(this.c,69).$h()};_._h=function jId(a){return BD(this.c,69)._h(a)};_.mk=function kId(a,b){return bId(this,a,b)};_.Wj=function lId(a){return BD(this.c,76).Wj(a)};_.rj=function mId(){};_.fj=function nId(){return BD(this.c,76).fj()};_.tj=function oId(a,b,c){var d;d=BD(bKd(this.b).Nh().Jh(this.b),133);d.Th(a);d.Uh(b);d.ed(c);return d};_.uj=function pId(){return new W5d(this)};_.Wb=function qId(a){cId(this,a)};_.Xj=function rId(){BD(this.c,76).Xj()};var y9=mdb(yve,'EcoreEMap',151);bcb(158,151,Ave,sId);_.qj=function tId(){var a,b,c,d,e,f;if(this.d==null){f=KC(y4,jve,63,2*this.f+1,0,1);for(c=this.c.Kc();c.e!=c.i.gc();){b=BD(c.nj(),133);d=b.Sh();e=(d&Ohe)%f.length;a=f[e];!a&&(a=f[e]=new W5d(this));a.Fc(b)}this.d=f}};var F5=mdb(qte,'EAnnotationImpl/1',158);bcb(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1});_._g=function GId(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.jh=function HId(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function IId(a){var b,c;switch(a){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.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function JId(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function KId(){return jGd(),hGd};_.Bh=function LId(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function MId(){wId(this);this.Bb|=1};_.Yj=function NId(){return wId(this)};_.Zj=function OId(){return this.t};_.$j=function PId(){var a;return a=this.t,a>1||a==-1};_.hi=function QId(){return (this.Bb&512)!=0};_.nk=function RId(a,b){return zId(this,a,b)};_.ok=function SId(a){DId(this,a)};_.Ib=function TId(){return EId(this)};_.s=0;_.t=1;var v7=mdb(qte,'ETypedElementImpl',284);bcb(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1});_.Qg=function iJd(a){return UId(this,a)};_._g=function jJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function kJd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?UId(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,17,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function lJd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 17:return _hd(this,null,17,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function mJd(a){var b,c;switch(a){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.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function nJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function oJd(){return jGd(),gGd};_.Bh=function pJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function qJd(){a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Gj=function rJd(){return this.f};_.zj=function sJd(){return VId(this)};_.Hj=function tJd(){return WId(this)};_.Lj=function uJd(){return null};_.pk=function vJd(){return this.k};_.aj=function wJd(){return this.n};_.Mj=function xJd(){return XId(this)};_.Nj=function yJd(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=WId(this);(c.i==null&&TKd(c),c.i).length;d=this.Lj();!!d&&aLd(WId(d));e=wId(this);g=e.Bj();a=!g?null:(g.i&1)!=0?g==sbb?wI:g==WD?JI:g==VD?FI:g==UD?BI:g==XD?MI:g==rbb?UI:g==SD?xI:yI:g;b=VId(this);h=e.zj();n6d(this);(this.Bb&oie)!=0&&(!!(f=t1d((O6d(),M6d),c))&&f!=this||!!(f=_1d(q1d(M6d,this))))?(this.p=new zVd(this,f)):this.$j()?this.rk()?!d?(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new KVd(42,this)):(this.p=new KVd(0,this)):a==CK?(this.p=new IVd(50,J4,this)):this.sk()?(this.p=new IVd(43,a,this)):(this.p=new IVd(1,a,this)):!a?this.sk()?(this.p=new KVd(44,this)):(this.p=new KVd(2,this)):a==CK?(this.p=new IVd(41,J4,this)):this.sk()?(this.p=new IVd(45,a,this)):(this.p=new IVd(3,a,this)):(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new LVd(46,this,d)):(this.p=new LVd(4,this,d)):this.sk()?(this.p=new JVd(47,a,this,d)):(this.p=new JVd(5,a,this,d)):!a?this.sk()?(this.p=new LVd(48,this,d)):(this.p=new LVd(6,this,d)):this.sk()?(this.p=new JVd(49,a,this,d)):(this.p=new JVd(7,a,this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&512)!=0?(this.Bb&Cve)!=0?!a?(this.p=new KVd(8,this)):(this.p=new IVd(9,a,this)):!a?(this.p=new KVd(10,this)):(this.p=new IVd(11,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(12,this)):(this.p=new IVd(13,a,this)):!a?(this.p=new KVd(14,this)):(this.p=new IVd(15,a,this)):!d?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new KVd(16,this)):(this.p=new IVd(17,a,this)):!a?(this.p=new KVd(18,this)):(this.p=new IVd(19,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(20,this)):(this.p=new IVd(21,a,this)):!a?(this.p=new KVd(22,this)):(this.p=new IVd(23,a,this)):(i=d.t,i>1||i==-1?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(24,this,d)):(this.p=new JVd(25,a,this,d)):!a?(this.p=new LVd(26,this,d)):(this.p=new JVd(27,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(28,this,d)):(this.p=new JVd(29,a,this,d)):!a?(this.p=new LVd(30,this,d)):(this.p=new JVd(31,a,this,d)):this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(32,this,d)):(this.p=new JVd(33,a,this,d)):!a?(this.p=new LVd(34,this,d)):(this.p=new JVd(35,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(36,this,d)):(this.p=new JVd(37,a,this,d)):!a?(this.p=new LVd(38,this,d)):(this.p=new JVd(39,a,this,d))):this.qk()?this.sk()?(this.p=new kWd(BD(e,26),this,d)):(this.p=new cWd(BD(e,26),this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&Cve)!=0?!a?(this.p=new jXd(BD(e,148),b,h,this)):(this.p=new lXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):!a?(this.p=new cXd(BD(e,148),b,h,this)):(this.p=new eXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):this.rk()?!d?(this.Bb&Cve)!=0?this.sk()?(this.p=new FXd(BD(e,26),this)):(this.p=new DXd(BD(e,26),this)):this.sk()?(this.p=new BXd(BD(e,26),this)):(this.p=new zXd(BD(e,26),this)):(this.Bb&Cve)!=0?this.sk()?(this.p=new NXd(BD(e,26),this,d)):(this.p=new LXd(BD(e,26),this,d)):this.sk()?(this.p=new JXd(BD(e,26),this,d)):(this.p=new HXd(BD(e,26),this,d)):this.sk()?!d?(this.Bb&Cve)!=0?(this.p=new RXd(BD(e,26),this)):(this.p=new PXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new VXd(BD(e,26),this,d)):(this.p=new TXd(BD(e,26),this,d)):!d?(this.Bb&Cve)!=0?(this.p=new XXd(BD(e,26),this)):(this.p=new nXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new _Xd(BD(e,26),this,d)):(this.p=new ZXd(BD(e,26),this,d))}return this.p};_.Ij=function zJd(){return (this.Bb&zte)!=0};_.qk=function AJd(){return false};_.rk=function BJd(){return false};_.Jj=function CJd(){return (this.Bb&oie)!=0};_.Oj=function DJd(){return YId(this)};_.sk=function EJd(){return false};_.Kj=function FJd(){return (this.Bb&Cve)!=0};_.tk=function GJd(a){this.k=a};_.Lh=function HJd(a){cJd(this,a)};_.Ib=function IJd(){return gJd(this)};_.e=false;_.n=0;var n7=mdb(qte,'EStructuralFeatureImpl',449);bcb(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},OJd);_._g=function PJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),LJd(this)?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:if(b)return KJd(this);return JJd(this);}return bid(this,a-aLd((jGd(),PFd)),XKd((d=BD(Ajd(this,16),26),!d?PFd:d),a),b,c)};_.lh=function QJd(a){var b,c;switch(a){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 LJd(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return !!JJd(this);}return cid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.sh=function RJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:NJd(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:MJd(this,Ccb(DD(b)));return;}did(this,a-aLd((jGd(),PFd)),XKd((c=BD(Ajd(this,16),26),!c?PFd:c),a),b)};_.zh=function SJd(){return jGd(),PFd};_.Bh=function TJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.b=0;DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:MJd(this,false);return;}eid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.Gh=function UJd(){KJd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.$j=function VJd(){return LJd(this)};_.nk=function WJd(a,b){this.b=0;this.a=null;return zId(this,a,b)};_.ok=function XJd(a){NJd(this,a)};_.Ib=function YJd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (iD: ';Ffb(a,(this.Bb&ote)!=0);a.a+=')';return a.a};_.b=0;var H5=mdb(qte,'EAttributeImpl',322);bcb(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1});_.uk=function nKd(a){return a.Tg()==this};_.Qg=function oKd(a){return aKd(this,a)};_.Rg=function pKd(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_._g=function qKd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return this.zj();case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function rKd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function sKd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function tKd(a){var b;switch(a){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 !!dKd(this);case 4:return this.zj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function uKd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vKd(){return jGd(),RFd};_.Bh=function wKd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.yj=function xKd(){var a;return this.G==-1&&(this.G=(a=bKd(this),a?HLd(a.Mh(),this):-1)),this.G};_.zj=function yKd(){return null};_.Aj=function zKd(){return bKd(this)};_.vk=function AKd(){return this.v};_.Bj=function BKd(){return dKd(this)};_.Cj=function CKd(){return this.D!=null?this.D:this.B};_.Dj=function DKd(){return this.F};_.wj=function EKd(a){return fKd(this,a)};_.wk=function FKd(a){this.v=a};_.xk=function GKd(a){gKd(this,a)};_.yk=function HKd(a){this.C=a};_.Lh=function IKd(a){lKd(this,a)};_.Ib=function JKd(){return mKd(this)};_.C=null;_.D=null;_.G=-1;var Z5=mdb(qte,'EClassifierImpl',351);bcb(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},hLd);_.uk=function iLd(a){return dLd(this,a.Tg())};_._g=function jLd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return null;case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;case 8:return Bcb(),(this.Bb&256)!=0?true:false;case 9:return Bcb(),(this.Bb&512)!=0?true:false;case 10:return _Kd(this);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),this.q;case 12:return OKd(this);case 13:return SKd(this);case 14:return SKd(this),this.r;case 15:return OKd(this),this.k;case 16:return PKd(this);case 17:return RKd(this);case 18:return TKd(this);case 19:return UKd(this);case 20:return OKd(this),this.o;case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),this.s;case 22:return VKd(this);case 23:return QKd(this);}return bid(this,a-aLd((jGd(),QFd)),XKd((d=BD(Ajd(this,16),26),!d?QFd:d),a),b,c)};_.hh=function kLd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Sxd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Sxd(this.s,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.jh=function lLd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Txd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Txd(this.s,a,c);case 22:return Txd(VKd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.lh=function mLd(a){var b;switch(a){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 !!dKd(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(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&&VKd(this.u.a).i!=0&&!(!!this.n&&FMd(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return OKd(this).i!=0;case 13:return SKd(this).i!=0;case 14:return SKd(this),this.r.i!=0;case 15:return OKd(this),this.k.i!=0;case 16:return PKd(this).i!=0;case 17:return RKd(this).i!=0;case 18:return TKd(this).i!=0;case 19:return UKd(this).i!=0;case 20:return OKd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&FMd(this.n);case 23:return QKd(this).i!=0;}return cid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.oh=function nLd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:YKd(this,a);return b?b:Bmd(this,a)};_.sh=function oLd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:eLd(this,Ccb(DD(b)));return;case 9:fLd(this,Ccb(DD(b)));return;case 10:vwd(_Kd(this));ytd(_Kd(this),BD(b,14));return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);!this.q&&(this.q=new cUd(n5,this,11,10));ytd(this.q,BD(b,14));return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);!this.s&&(this.s=new cUd(t5,this,21,17));ytd(this.s,BD(b,14));return;case 22:Uxd(VKd(this));ytd(VKd(this),BD(b,14));return;}did(this,a-aLd((jGd(),QFd)),XKd((c=BD(Ajd(this,16),26),!c?QFd:c),a),b)};_.zh=function pLd(){return jGd(),QFd};_.Bh=function qLd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:eLd(this,false);return;case 9:fLd(this,false);return;case 10:!!this.u&&vwd(this.u);return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);return;case 22:!!this.n&&Uxd(this.n);return;}eid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.Gh=function rLd(){var a,b;OKd(this);SKd(this);PKd(this);RKd(this);TKd(this);UKd(this);QKd(this);oud(SMd($Kd(this)));if(this.s){for(a=0,b=this.s.i;a<b;++a){Cmd(qud(this.s,a))}}if(this.q){for(a=0,b=this.q.i;a<b;++a){Cmd(qud(this.q,a))}}o1d((O6d(),M6d),this).ne();this.Bb|=1};_.Ib=function sLd(){return gLd(this)};_.k=null;_.r=null;var KKd,LKd,MKd;var Y5=mdb(qte,'EClassImpl',88);bcb(1994,1993,Ove);_.Vh=function tLd(a,b){return Pxd(this,a,b)};_.Wh=function uLd(a){return Pxd(this,this.i,a)};_.Xh=function vLd(a,b){Qxd(this,a,b)};_.Yh=function wLd(a){Rxd(this,a)};_.lk=function xLd(a,b){return Sxd(this,a,b)};_.pi=function yLd(a){return nud(this,a)};_.mk=function CLd(a,b){return Txd(this,a,b)};_.mi=function DLd(a,b){return Zxd(this,a,b)};_.Zh=function zLd(){return new $yd(this)};_.$h=function ALd(){return new bzd(this)};_._h=function BLd(a){return ztd(this,a)};var P9=mdb(yve,'NotifyingInternalEListImpl',1994);bcb(622,1994,Pve);_.Hc=function NLd(a){return ELd(this,a)};_.Zi=function OLd(a,b,c,d,e){return FLd(this,a,b,c,d,e)};_.$i=function PLd(a){GLd(this,a)};_.Wj=function QLd(a){return this};_.ak=function RLd(){return XKd(this.e.Tg(),this.aj())};_._i=function SLd(){return this.ak()};_.aj=function TLd(){return bLd(this.e.Tg(),this.ak())};_.zk=function ULd(){return BD(this.ak().Yj(),26).Bj()};_.Ak=function VLd(){return zUd(BD(this.ak(),18)).n};_.Ai=function WLd(){return this.e};_.Bk=function XLd(){return true};_.Ck=function YLd(){return false};_.Dk=function ZLd(){return false};_.Ek=function $Ld(){return false};_.Xc=function _Ld(a){return HLd(this,a)};_.cj=function aMd(a,b){var c;return c=BD(a,49),this.Dk()?this.Bk()?c.gh(this.e,this.Ak(),this.zk(),b):c.gh(this.e,bLd(c.Tg(),zUd(BD(this.ak(),18))),null,b):c.gh(this.e,-1-this.aj(),null,b)};_.dj=function bMd(a,b){var c;return c=BD(a,49),this.Dk()?this.Bk()?c.ih(this.e,this.Ak(),this.zk(),b):c.ih(this.e,bLd(c.Tg(),zUd(BD(this.ak(),18))),null,b):c.ih(this.e,-1-this.aj(),null,b)};_.rk=function cMd(){return false};_.Fk=function dMd(){return true};_.wj=function eMd(a){return qEd(this.d,a)};_.ej=function fMd(){return oid(this.e)};_.fj=function gMd(){return this.i!=0};_.ri=function hMd(a){return izd(this.d,a)};_.li=function iMd(a,b){return this.Fk()&&this.Ek()?ILd(this,a,BD(b,56)):b};_.Gk=function jMd(a){return a.kh()?xid(this.e,BD(a,49)):a};_.Wb=function kMd(a){JLd(this,a)};_.Pc=function lMd(){return KLd(this)};_.Qc=function mMd(a){var b;if(this.Ek()){for(b=this.i-1;b>=0;--b){qud(this,b)}}return xud(this,a)};_.Xj=function nMd(){Uxd(this)};_.oi=function oMd(a,b){return LLd(this,a,b)};var t9=mdb(yve,'EcoreEList',622);bcb(496,622,Pve,pMd);_.ai=function qMd(){return false};_.aj=function rMd(){return this.c};_.bj=function sMd(){return false};_.Fk=function tMd(){return true};_.hi=function uMd(){return true};_.li=function vMd(a,b){return b};_.ni=function wMd(){return false};_.c=0;var d9=mdb(yve,'EObjectEList',496);bcb(85,496,Pve,xMd);_.bj=function yMd(){return true};_.Dk=function zMd(){return false};_.rk=function AMd(){return true};var Z8=mdb(yve,'EObjectContainmentEList',85);bcb(545,85,Pve,BMd);_.ci=function CMd(){this.b=true};_.fj=function DMd(){return this.b};_.Xj=function EMd(){var a;Uxd(this);if(oid(this.e)){a=this.b;this.b=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.b=false}};_.b=false;var Y8=mdb(yve,'EObjectContainmentEList/Unsettable',545);bcb(1140,545,Pve,JMd);_.ii=function NMd(a,b){var c,d;return c=BD(Wxd(this,a,b),87),oid(this.e)&&GLd(this,new ESd(this.a,7,(jGd(),SFd),meb(b),(d=c.c,JD(d,88)?BD(d,26):_Fd),a)),c};_.jj=function OMd(a,b){return GMd(this,BD(a,87),b)};_.kj=function PMd(a,b){return HMd(this,BD(a,87),b)};_.lj=function QMd(a,b,c){return IMd(this,BD(a,87),BD(b,87),c)};_.Zi=function KMd(a,b,c,d,e){switch(a){case 3:{return FLd(this,a,b,c,d,this.i>1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function LMd(){return true};_.fj=function MMd(){return FMd(this)};_.Xj=function RMd(){Uxd(this)};var N5=mdb(qte,'EClassImpl/1',1140);bcb(1154,1153,dve);_.ui=function VMd(a){var b,c,d,e,f,g,h;c=a.xi();if(c!=8){d=UMd(a);if(d==0){switch(c){case 1:case 9:{h=a.Bi();if(h!=null){b=$Kd(BD(h,473));!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 3:{g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 5:{g=a.zi();if(g!=null){for(f=BD(g,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}}break}case 4:{h=a.Bi();if(h!=null){e=BD(h,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}break}case 6:{h=a.Bi();if(h!=null){for(f=BD(h,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}}break}}}this.Hk(d)}};_.Hk=function WMd(a){TMd(this,a)};_.b=63;var p7=mdb(qte,'ESuperAdapter',1154);bcb(1155,1154,dve,YMd);_.Hk=function ZMd(a){XMd(this,a)};var I5=mdb(qte,'EClassImpl/10',1155);bcb(1144,696,Pve);_.Vh=function $Md(a,b){return iud(this,a,b)};_.Wh=function _Md(a){return jud(this,a)};_.Xh=function aNd(a,b){kud(this,a,b)};_.Yh=function bNd(a){lud(this,a)};_.pi=function dNd(a){return nud(this,a)};_.mi=function lNd(a,b){return uud(this,a,b)};_.lk=function cNd(a,b){throw vbb(new bgb)};_.Zh=function eNd(){return new $yd(this)};_.$h=function fNd(){return new bzd(this)};_._h=function gNd(a){return ztd(this,a)};_.mk=function hNd(a,b){throw vbb(new bgb)};_.Wj=function iNd(a){return this};_.fj=function jNd(){return this.i!=0};_.Wb=function kNd(a){throw vbb(new bgb)};_.Xj=function mNd(){throw vbb(new bgb)};var s9=mdb(yve,'EcoreEList/UnmodifiableEList',1144);bcb(319,1144,Pve,nNd);_.ni=function oNd(){return false};var r9=mdb(yve,'EcoreEList/UnmodifiableEList/FastCompare',319);bcb(1147,319,Pve,rNd);_.Xc=function sNd(a){var b,c,d;if(JD(a,170)){b=BD(a,170);c=b.aj();if(c!=-1){for(d=this.i;c<d;++c){if(PD(this.g[c])===PD(a)){return c}}}}return -1};var J5=mdb(qte,'EClassImpl/1EAllStructuralFeaturesList',1147);bcb(1141,497,oue,wNd);_.ri=function xNd(a){return KC(j5,Tve,87,a,0,1)};_.ni=function yNd(){return false};var K5=mdb(qte,'EClassImpl/1EGenericSuperTypeEList',1141);bcb(623,497,oue,zNd);_.ri=function ANd(a){return KC(t5,Mve,170,a,0,1)};_.ni=function BNd(){return false};var L5=mdb(qte,'EClassImpl/1EStructuralFeatureUniqueEList',623);bcb(741,497,oue,CNd);_.ri=function DNd(a){return KC(q5,Mve,18,a,0,1)};_.ni=function ENd(){return false};var M5=mdb(qte,'EClassImpl/1ReferenceList',741);bcb(1142,497,oue,GNd);_.bi=function HNd(a,b){FNd(this,BD(b,34))};_.ri=function INd(a){return KC(b5,Mve,34,a,0,1)};_.ni=function JNd(){return false};var O5=mdb(qte,'EClassImpl/2',1142);bcb(1143,497,oue,KNd);_.ri=function LNd(a){return KC(b5,Mve,34,a,0,1)};_.ni=function MNd(){return false};var P5=mdb(qte,'EClassImpl/3',1143);bcb(1145,319,Pve,PNd);_.Fc=function QNd(a){return NNd(this,BD(a,34))};_.Yh=function RNd(a){ONd(this,BD(a,34))};var Q5=mdb(qte,'EClassImpl/4',1145);bcb(1146,319,Pve,UNd);_.Fc=function VNd(a){return SNd(this,BD(a,18))};_.Yh=function WNd(a){TNd(this,BD(a,18))};var R5=mdb(qte,'EClassImpl/5',1146);bcb(1148,497,oue,XNd);_.ri=function YNd(a){return KC(n5,Nve,59,a,0,1)};_.ni=function ZNd(){return false};var S5=mdb(qte,'EClassImpl/6',1148);bcb(1149,497,oue,$Nd);_.ri=function _Nd(a){return KC(q5,Mve,18,a,0,1)};_.ni=function aOd(){return false};var T5=mdb(qte,'EClassImpl/7',1149);bcb(1997,1996,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,69:1});_.Vh=function bOd(a,b){return qwd(this,a,b)};_.Wh=function cOd(a){return qwd(this,this.Vi(),a)};_.Xh=function dOd(a,b){rwd(this,a,b)};_.Yh=function eOd(a){swd(this,a)};_.lk=function fOd(a,b){return twd(this,a,b)};_.mk=function lOd(a,b){return uwd(this,a,b)};_.mi=function mOd(a,b){return wwd(this,a,b)};_.pi=function gOd(a){return this.Oi(a)};_.Zh=function hOd(){return new $yd(this)};_.Gi=function iOd(){return this.Ji()};_.$h=function jOd(){return new bzd(this)};_._h=function kOd(a){return ztd(this,a)};var L8=mdb(yve,'DelegatingNotifyingInternalEListImpl',1997);bcb(742,1997,Uve);_.ai=function rOd(){var a;a=XKd(wjd(this.b),this.aj()).Yj();return JD(a,148)&&!JD(a,457)&&(a.Bj().i&1)==0};_.Hc=function sOd(a){var b,c,d,e,f,g,h,i;if(this.Fk()){i=this.Vi();if(i>4){if(this.wj(a)){if(this.rk()){d=BD(a,49);c=d.Ug();h=c==this.b&&(this.Dk()?d.Og(d.Vg(),BD(XKd(wjd(this.b),this.aj()).Yj(),26).Bj())==zUd(BD(XKd(wjd(this.b),this.aj()),18)).n:-1-d.Vg()==this.aj());if(this.Ek()&&!h&&!c&&!!d.Zg()){for(e=0;e<i;++e){b=oOd(this,this.Oi(e));if(PD(b)===PD(a)){return true}}}return h}else if(this.Dk()&&!this.Ck()){f=BD(a,56).ah(zUd(BD(XKd(wjd(this.b),this.aj()),18)));if(PD(f)===PD(this.b)){return true}else if(f==null||!BD(f,56).kh()){return false}}}else{return false}}g=this.Li(a);if(this.Ek()&&!g){for(e=0;e<i;++e){d=oOd(this,this.Oi(e));if(PD(d)===PD(a)){return true}}}return g}else{return this.Li(a)}};_.Zi=function tOd(a,b,c,d,e){return new pSd(this.b,a,this.aj(),b,c,d,e)};_.$i=function uOd(a){Uhd(this.b,a)};_.Wj=function vOd(a){return this};_._i=function wOd(){return XKd(wjd(this.b),this.aj())};_.aj=function xOd(){return bLd(wjd(this.b),XKd(wjd(this.b),this.aj()))};_.Ai=function yOd(){return this.b};_.Bk=function zOd(){return !!XKd(wjd(this.b),this.aj()).Yj().Bj()};_.bj=function AOd(){var a,b;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);return (a.Bb&ote)!=0||!!zUd(BD(b,18))}else{return false}};_.Ck=function BOd(){var a,b,c,d;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);c=zUd(a);return !!c&&(d=c.t,d>1||d==-1)}else{return false}};_.Dk=function COd(){var a,b,c;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);c=zUd(a);return !!c}else{return false}};_.Ek=function DOd(){var a,b;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);return (a.Bb&Tje)!=0}else{return false}};_.Xc=function EOd(a){var b,c,d,e;d=this.Qi(a);if(d>=0)return d;if(this.Fk()){for(c=0,e=this.Vi();c<e;++c){b=oOd(this,this.Oi(c));if(PD(b)===PD(a)){return c}}}return -1};_.cj=function FOd(a,b){var c;return c=BD(a,49),this.Dk()?this.Bk()?c.gh(this.b,zUd(BD(XKd(wjd(this.b),this.aj()),18)).n,BD(XKd(wjd(this.b),this.aj()).Yj(),26).Bj(),b):c.gh(this.b,bLd(c.Tg(),zUd(BD(XKd(wjd(this.b),this.aj()),18))),null,b):c.gh(this.b,-1-this.aj(),null,b)};_.dj=function GOd(a,b){var c;return c=BD(a,49),this.Dk()?this.Bk()?c.ih(this.b,zUd(BD(XKd(wjd(this.b),this.aj()),18)).n,BD(XKd(wjd(this.b),this.aj()).Yj(),26).Bj(),b):c.ih(this.b,bLd(c.Tg(),zUd(BD(XKd(wjd(this.b),this.aj()),18))),null,b):c.ih(this.b,-1-this.aj(),null,b)};_.rk=function HOd(){var a,b;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);return (a.Bb&ote)!=0}else{return false}};_.Fk=function IOd(){return JD(XKd(wjd(this.b),this.aj()).Yj(),88)};_.wj=function JOd(a){return XKd(wjd(this.b),this.aj()).Yj().wj(a)};_.ej=function KOd(){return oid(this.b)};_.fj=function LOd(){return !this.Ri()};_.hi=function MOd(){return XKd(wjd(this.b),this.aj()).hi()};_.li=function NOd(a,b){return nOd(this,a,b)};_.Wb=function OOd(a){vwd(this);ytd(this,BD(a,15))};_.Pc=function POd(){var a;if(this.Ek()){for(a=this.Vi()-1;a>=0;--a){nOd(this,a,this.Oi(a))}}return this.Wi()};_.Qc=function QOd(a){var b;if(this.Ek()){for(b=this.Vi()-1;b>=0;--b){nOd(this,b,this.Oi(b))}}return this.Xi(a)};_.Xj=function ROd(){vwd(this)};_.oi=function SOd(a,b){return pOd(this,a,b)};var K8=mdb(yve,'DelegatingEcoreEList',742);bcb(1150,742,Uve,YOd);_.Hi=function _Od(a,b){TOd(this,a,BD(b,26))};_.Ii=function aPd(a){UOd(this,BD(a,26))};_.Oi=function gPd(a){var b,c;return b=BD(qud(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ti=function lPd(a){var b,c;return b=BD(Xxd(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ui=function mPd(a,b){return WOd(this,a,BD(b,26))};_.ai=function ZOd(){return false};_.Zi=function $Od(a,b,c,d,e){return null};_.Ji=function bPd(){return new EPd(this)};_.Ki=function cPd(){Uxd(VKd(this.a))};_.Li=function dPd(a){return VOd(this,a)};_.Mi=function ePd(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!VOd(this,b)){return false}}return true};_.Ni=function fPd(a){var b,c,d;if(JD(a,15)){d=BD(a,15);if(d.gc()==VKd(this.a).i){for(b=d.Kc(),c=new Fyd(this);b.Ob();){if(PD(b.Pb())!==PD(Dyd(c))){return false}}return true}}return false};_.Pi=function hPd(){var a,b,c,d,e;c=1;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);d=(e=a.c,JD(e,88)?BD(e,26):(jGd(),_Fd));c=31*c+(!d?0:FCb(d))}return c};_.Qi=function iPd(a){var b,c,d,e;d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);if(PD(a)===PD((e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)))){return d}++d}return -1};_.Ri=function jPd(){return VKd(this.a).i==0};_.Si=function kPd(){return null};_.Vi=function nPd(){return VKd(this.a).i};_.Wi=function oPd(){var a,b,c,d,e,f;f=VKd(this.a).i;e=KC(SI,Uhe,1,f,5,1);c=0;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);e[c++]=(d=a.c,JD(d,88)?BD(d,26):(jGd(),_Fd))}return e};_.Xi=function pPd(a){var b,c,d,e,f,g,h;h=VKd(this.a).i;if(a.length<h){e=izd(rb(a).c,h);a=e}a.length>h&&NC(a,h,null);d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd));NC(a,d++,f)}return a};_.Yi=function qPd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=VKd(this.a);for(b=0,d=VKd(this.a).i;b<d;){Efb(e,xfb((c=BD(qud(a,b),87).c,JD(c,88)?BD(c,26):(jGd(),_Fd))));++b<d&&(e.a+=She,e)}e.a+=']';return e.a};_.$i=function rPd(a){};_.aj=function sPd(){return 10};_.Bk=function tPd(){return true};_.bj=function uPd(){return false};_.Ck=function vPd(){return false};_.Dk=function wPd(){return false};_.Ek=function xPd(){return true};_.rk=function yPd(){return false};_.Fk=function zPd(){return true};_.wj=function APd(a){return JD(a,88)};_.fj=function BPd(){return cLd(this.a)};_.hi=function CPd(){return true};_.ni=function DPd(){return true};var V5=mdb(qte,'EClassImpl/8',1150);bcb(1151,1964,Lie,EPd);_.Zc=function FPd(a){return ztd(this.a,a)};_.gc=function GPd(){return VKd(this.a.a).i};var U5=mdb(qte,'EClassImpl/8/1',1151);bcb(1152,497,oue,HPd);_.ri=function IPd(a){return KC(d5,Uhe,138,a,0,1)};_.ni=function JPd(){return false};var W5=mdb(qte,'EClassImpl/9',1152);bcb(1139,53,gke,KPd);var X5=mdb(qte,'EClassImpl/MyHashSet',1139);bcb(566,351,{105:1,92:1,90:1,138:1,148:1,834:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1},MPd);_._g=function NPd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return this.zj();case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;case 8:return Bcb(),(this.Bb&256)!=0?true:false;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.lh=function OPd(a){var b;switch(a){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 !!dKd(this);case 4:return this.zj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)==0;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function PPd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:LPd(this,Ccb(DD(b)));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function QPd(){return jGd(),TFd};_.Bh=function RPd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:LPd(this,true);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function SPd(){o1d((O6d(),M6d),this).ne();this.Bb|=1};_.Fj=function TPd(){var a,b,c;if(!this.c){a=l6d(bKd(this));if(!a.dc()){for(c=a.Kc();c.Ob();){b=GD(c.Pb());!!Dmd(this,b)&&k6d(this)}}}return this.b};_.zj=function UPd(){var b;if(!this.e){b=null;try{b=dKd(this)}catch(a){a=ubb(a);if(!JD(a,102))throw vbb(a)}this.d=null;!!b&&(b.i&1)!=0&&(b==sbb?(this.d=(Bcb(),zcb)):b==WD?(this.d=meb(0)):b==VD?(this.d=new Ndb(0)):b==UD?(this.d=0):b==XD?(this.d=Aeb(0)):b==rbb?(this.d=Web(0)):b==SD?(this.d=Scb(0)):(this.d=bdb(0)));this.e=true}return this.d};_.Ej=function VPd(){return (this.Bb&256)!=0};_.Ik=function WPd(a){a&&(this.D='org.eclipse.emf.common.util.AbstractEnumerator')};_.xk=function XPd(a){gKd(this,a);this.Ik(a)};_.yk=function YPd(a){this.C=a;this.e=false};_.Ib=function ZPd(){var a;if((this.Db&64)!=0)return mKd(this);a=new Jfb(mKd(this));a.a+=' (serializable: ';Ffb(a,(this.Bb&256)!=0);a.a+=')';return a.a};_.c=false;_.d=null;_.e=false;var $5=mdb(qte,'EDataTypeImpl',566);bcb(457,566,{105:1,92:1,90:1,138:1,148:1,834:1,671:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,457:1,150:1,114:1,115:1,676:1},aQd);_._g=function bQd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return $Pd(this);case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;case 8:return Bcb(),(this.Bb&256)!=0?true:false;case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),this.a;}return bid(this,a-aLd((jGd(),UFd)),XKd((d=BD(Ajd(this,16),26),!d?UFd:d),a),b,c)};_.hh=function cQd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Sxd(this.a,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.jh=function dQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.lh=function eQd(a){var b;switch(a){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 !!dKd(this);case 4:return !!$Pd(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(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 cid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.sh=function fQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:LPd(this,Ccb(DD(b)));return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);!this.a&&(this.a=new cUd(g5,this,9,5));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),UFd)),XKd((c=BD(Ajd(this,16),26),!c?UFd:c),a),b)};_.zh=function gQd(){return jGd(),UFd};_.Bh=function hQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:LPd(this,true);return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);return;}eid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.Gh=function iQd(){var a,b;if(this.a){for(a=0,b=this.a.i;a<b;++a){Cmd(qud(this.a,a))}}o1d((O6d(),M6d),this).ne();this.Bb|=1};_.zj=function jQd(){return $Pd(this)};_.wj=function kQd(a){if(a!=null){return true}return false};_.Ik=function lQd(a){};var _5=mdb(qte,'EEnumImpl',457);bcb(573,438,{105:1,92:1,90:1,1940:1,678:1,147:1,191:1,56:1,108:1,49:1,97:1,573:1,150:1,114:1,115:1},rQd);_.ne=function AQd(){return this.zb};_.Qg=function sQd(a){return mQd(this,a)};_._g=function tQd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return meb(this.d);case 3:return this.b?this.b:this.a;case 4:return e=this.c,e==null?this.zb:e;case 5:return this.Db>>16==5?BD(this.Cb,671):null;}return bid(this,a-aLd((jGd(),VFd)),XKd((d=BD(Ajd(this,16),26),!d?VFd:d),a),b,c)};_.hh=function uQd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?mQd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,5,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.jh=function vQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 5:return _hd(this,null,5,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.lh=function wQd(a){var b;switch(a){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?BD(this.Cb,671):null);}return cid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.sh=function xQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:qQd(this,BD(b,19).a);return;case 3:oQd(this,BD(b,1940));return;case 4:pQd(this,GD(b));return;}did(this,a-aLd((jGd(),VFd)),XKd((c=BD(Ajd(this,16),26),!c?VFd:c),a),b)};_.zh=function yQd(){return jGd(),VFd};_.Bh=function zQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:qQd(this,0);return;case 3:oQd(this,null);return;case 4:pQd(this,null);return;}eid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.Ib=function BQd(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var a6=mdb(qte,'EEnumLiteralImpl',573);var c6=odb(qte,'EFactoryImpl/InternalEDateTimeFormat');bcb(489,1,{2015:1},EQd);var b6=mdb(qte,'EFactoryImpl/1ClientInternalEDateTimeFormat',489);bcb(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},UQd);_.Sg=function VQd(a,b,c){var d;c=_hd(this,a,b,c);if(!!this.e&&JD(a,170)){d=MQd(this,this.e);d!=this.c&&(c=QQd(this,d,c))}return c};_._g=function WQd(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new xMd(j5,this,1)),this.d;case 2:if(b)return KQd(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return JQd(this);return this.a;}return bid(this,a-aLd((jGd(),XFd)),XKd((d=BD(Ajd(this,16),26),!d?XFd:d),a),b,c)};_.jh=function XQd(a,b,c){var d,e;switch(b){case 0:return IQd(this,null,c);case 1:return !this.d&&(this.d=new xMd(j5,this,1)),Txd(this.d,a,c);case 3:return GQd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),XFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),XFd)),a,c)};_.lh=function YQd(a){var b;switch(a){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 cid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.sh=function ZQd(a,b){var c;switch(a){case 0:SQd(this,BD(b,87));return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);!this.d&&(this.d=new xMd(j5,this,1));ytd(this.d,BD(b,14));return;case 3:PQd(this,BD(b,87));return;case 4:RQd(this,BD(b,836));return;case 5:NQd(this,BD(b,138));return;}did(this,a-aLd((jGd(),XFd)),XKd((c=BD(Ajd(this,16),26),!c?XFd:c),a),b)};_.zh=function $Qd(){return jGd(),XFd};_.Bh=function _Qd(a){var b;switch(a){case 0:SQd(this,null);return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);return;case 3:PQd(this,null);return;case 4:RQd(this,null);return;case 5:NQd(this,null);return;}eid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.Ib=function aRd(){var a;a=new Wfb(Eid(this));a.a+=' (expression: ';TQd(this,a);a.a+=')';return a.a};var FQd;var e6=mdb(qte,'EGenericTypeImpl',241);bcb(1969,1964,Vve);_.Xh=function cRd(a,b){bRd(this,a,b)};_.lk=function dRd(a,b){bRd(this,this.gc(),a);return b};_.pi=function eRd(a){return Ut(this.Gi(),a)};_.Zh=function fRd(){return this.$h()};_.Gi=function gRd(){return new O0d(this)};_.$h=function hRd(){return this._h(0)};_._h=function iRd(a){return this.Gi().Zc(a)};_.mk=function jRd(a,b){ze(this,a,true);return b};_.ii=function kRd(a,b){var c,d;d=Vt(this,b);c=this.Zc(a);c.Rb(d);return d};_.ji=function lRd(a,b){var c;ze(this,b,true);c=this.Zc(a);c.Rb(b)};var B8=mdb(yve,'AbstractSequentialInternalEList',1969);bcb(486,1969,Vve,qRd);_.pi=function rRd(a){return Ut(this.Gi(),a)};_.Zh=function sRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_.Gi=function tRd(){return new w4d(this.a,this.b)};_.$h=function uRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_._h=function vRd(a){var b,c;if(this.b==null){if(a<0||a>1){throw vbb(new qcb(gve+a+', size=0'))}return LRd(),LRd(),KRd}c=this.Jk();for(b=0;b<a;++b){MRd(c)}return c};_.dc=function wRd(){var a,b,c,d,e,f;if(this.b!=null){for(c=0;c<this.b.length;++c){a=this.b[c];if(!this.Mk()||this.a.mh(a)){f=this.a.bh(a,false);Q6d();if(BD(a,66).Oj()){b=BD(f,153);for(d=0,e=b.gc();d<e;++d){if(oRd(b.il(d))&&b.jl(d)!=null){return false}}}else if(a.$j()){if(!BD(f,14).dc()){return false}}else if(f!=null){return false}}}}return true};_.Kc=function xRd(){return pRd(this)};_.Zc=function yRd(a){var b,c;if(this.b==null){if(a!=0){throw vbb(new qcb(gve+a+', size=0'))}return LRd(),LRd(),KRd}c=this.Lk()?this.Kk():this.Jk();for(b=0;b<a;++b){MRd(c)}return c};_.ii=function zRd(a,b){throw vbb(new bgb)};_.ji=function ARd(a,b){throw vbb(new bgb)};_.Jk=function BRd(){return new RRd(this.a,this.b)};_.Kk=function CRd(){return new dSd(this.a,this.b)};_.Lk=function DRd(){return true};_.gc=function ERd(){var a,b,c,d,e,f,g;e=0;if(this.b!=null){for(c=0;c<this.b.length;++c){a=this.b[c];if(!this.Mk()||this.a.mh(a)){g=this.a.bh(a,false);Q6d();if(BD(a,66).Oj()){b=BD(g,153);for(d=0,f=b.gc();d<f;++d){oRd(b.il(d))&&b.jl(d)!=null&&++e}}else a.$j()?(e+=BD(g,14).gc()):g!=null&&++e}}}return e};_.Mk=function FRd(){return true};var mRd;var R8=mdb(yve,'EContentsEList',486);bcb(1156,486,Vve,GRd);_.Jk=function HRd(){return new hSd(this.a,this.b)};_.Kk=function IRd(){return new fSd(this.a,this.b)};_.Mk=function JRd(){return false};var i6=mdb(qte,'ENamedElementImpl/1',1156);bcb(279,1,Wve,RRd);_.Nb=function URd(a){Rrb(this,a)};_.Rb=function SRd(a){throw vbb(new bgb)};_.Nk=function TRd(a){if(this.g!=0||!!this.e){throw vbb(new Zdb('Iterator already in use or already filtered'))}this.e=a};_.Ob=function VRd(){var a,b,c,d,e,f;switch(this.g){case 3:case 2:{return true}case 1:{return false}case -3:{!this.p?++this.n:this.p.Pb()}default:{if(!this.k||(!this.p?!NRd(this):!ORd(this,this.p))){while(this.d<this.c.length){b=this.c[this.d++];if((!this.e||b.Gj()!=x2||b.aj()!=0)&&(!this.Mk()||this.b.mh(b))){f=this.b.bh(b,this.Lk());this.f=(Q6d(),BD(b,66).Oj());if(this.f||b.$j()){if(this.Lk()){d=BD(f,15);this.k=d}else{d=BD(f,69);this.k=this.j=d}if(JD(this.k,54)){this.p=null;this.o=this.k.gc();this.n=0}else{this.p=!this.j?this.k.Yc():this.j.$h()}if(!this.p?NRd(this):ORd(this,this.p)){e=!this.p?!this.j?this.k.Xb(this.n++):this.j.pi(this.n++):this.p.Pb();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=3;return true}}else if(f!=null){this.k=null;this.p=null;c=f;this.i=c;this.g=2;return true}}}this.k=null;this.p=null;this.f=false;this.g=1;return false}else{e=!this.p?!this.j?this.k.Xb(this.n++):this.j.pi(this.n++):this.p.Pb();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=3;return true}}}};_.Sb=function WRd(){var a,b,c,d,e,f;switch(this.g){case -3:case -2:{return true}case -1:{return false}case 3:{!this.p?--this.n:this.p.Ub()}default:{if(!this.k||(!this.p?!PRd(this):!QRd(this,this.p))){while(this.d>0){b=this.c[--this.d];if((!this.e||b.Gj()!=x2||b.aj()!=0)&&(!this.Mk()||this.b.mh(b))){f=this.b.bh(b,this.Lk());this.f=(Q6d(),BD(b,66).Oj());if(this.f||b.$j()){if(this.Lk()){d=BD(f,15);this.k=d}else{d=BD(f,69);this.k=this.j=d}if(JD(this.k,54)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.Zc(this.k.gc()):this.j._h(this.k.gc())}if(!this.p?PRd(this):QRd(this,this.p)){e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}else if(f!=null){this.k=null;this.p=null;c=f;this.i=c;this.g=-2;return true}}}this.k=null;this.p=null;this.g=-1;return false}else{e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}}};_.Pb=function XRd(){return MRd(this)};_.Tb=function YRd(){return this.a};_.Ub=function ZRd(){var a;if(this.g<-1||this.Sb()){--this.a;this.g=0;a=this.i;this.Sb();return a}else{throw vbb(new utb)}};_.Vb=function $Rd(){return this.a-1};_.Qb=function _Rd(){throw vbb(new bgb)};_.Lk=function aSd(){return false};_.Wb=function bSd(a){throw vbb(new bgb)};_.Mk=function cSd(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var KRd;var P8=mdb(yve,'EContentsEList/FeatureIteratorImpl',279);bcb(697,279,Wve,dSd);_.Lk=function eSd(){return true};var Q8=mdb(yve,'EContentsEList/ResolvingFeatureIteratorImpl',697);bcb(1157,697,Wve,fSd);_.Mk=function gSd(){return false};var g6=mdb(qte,'ENamedElementImpl/1/1',1157);bcb(1158,279,Wve,hSd);_.Mk=function iSd(){return false};var h6=mdb(qte,'ENamedElementImpl/1/2',1158);bcb(36,143,fve,lSd,mSd,nSd,oSd,pSd,qSd,rSd,sSd,tSd,uSd,vSd,wSd,xSd,ySd,zSd,ASd,BSd,CSd,DSd,ESd,FSd,GSd,HSd,ISd,JSd);_._i=function KSd(){return kSd(this)};_.gj=function LSd(){var a;a=kSd(this);if(a){return a.zj()}return null};_.yi=function MSd(a){this.b==-1&&!!this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj()));return this.c.Og(this.b,a)};_.Ai=function NSd(){return this.c};_.hj=function OSd(){var a;a=kSd(this);if(a){return a.Kj()}return false};_.b=-1;var k6=mdb(qte,'ENotificationImpl',36);bcb(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},SSd);_.Qg=function TSd(a){return PSd(this,a)};_._g=function USd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,26):null;case 11:return !this.d&&(this.d=new K4d(u5,this,11)),this.d;case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),this.c;case 13:return !this.a&&(this.a=new fTd(this,this)),this.a;case 14:return QSd(this);}return bid(this,a-aLd((jGd(),aGd)),XKd((d=BD(Ajd(this,16),26),!d?aGd:d),a),b,c)};_.hh=function VSd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?PSd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Sxd(this.c,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.jh=function WSd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);case 11:return !this.d&&(this.d=new K4d(u5,this,11)),Txd(this.d,a,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Txd(this.c,a,c);case 14:return Txd(QSd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.lh=function XSd(a){var b,c,d;switch(a){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 d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,26):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&QSd(this.a.a).i!=0&&!(!!this.b&&QTd(this.b));case 14:return !!this.b&&QTd(this.b);}return cid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.sh=function YSd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);!this.d&&(this.d=new K4d(u5,this,11));ytd(this.d,BD(b,14));return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);!this.c&&(this.c=new cUd(p5,this,12,10));ytd(this.c,BD(b,14));return;case 13:!this.a&&(this.a=new fTd(this,this));vwd(this.a);!this.a&&(this.a=new fTd(this,this));ytd(this.a,BD(b,14));return;case 14:Uxd(QSd(this));ytd(QSd(this),BD(b,14));return;}did(this,a-aLd((jGd(),aGd)),XKd((c=BD(Ajd(this,16),26),!c?aGd:c),a),b)};_.zh=function ZSd(){return jGd(),aGd};_.Bh=function $Sd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);return;case 13:!!this.a&&vwd(this.a);return;case 14:!!this.b&&Uxd(this.b);return;}eid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.Gh=function _Sd(){var a,b;if(this.c){for(a=0,b=this.c.i;a<b;++a){Cmd(qud(this.c,a))}}wId(this);this.Bb|=1};var p6=mdb(qte,'EOperationImpl',399);bcb(505,742,Uve,fTd);_.Hi=function iTd(a,b){aTd(this,a,BD(b,138))};_.Ii=function jTd(a){bTd(this,BD(a,138))};_.Oi=function pTd(a){var b,c;return b=BD(qud(QSd(this.a),a),87),c=b.c,c?c:(jGd(),YFd)};_.Ti=function uTd(a){var b,c;return b=BD(Xxd(QSd(this.a),a),87),c=b.c,c?c:(jGd(),YFd)};_.Ui=function vTd(a,b){return dTd(this,a,BD(b,138))};_.ai=function gTd(){return false};_.Zi=function hTd(a,b,c,d,e){return null};_.Ji=function kTd(){return new NTd(this)};_.Ki=function lTd(){Uxd(QSd(this.a))};_.Li=function mTd(a){return cTd(this,a)};_.Mi=function nTd(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!cTd(this,b)){return false}}return true};_.Ni=function oTd(a){var b,c,d;if(JD(a,15)){d=BD(a,15);if(d.gc()==QSd(this.a).i){for(b=d.Kc(),c=new Fyd(this);b.Ob();){if(PD(b.Pb())!==PD(Dyd(c))){return false}}return true}}return false};_.Pi=function qTd(){var a,b,c,d,e;c=1;for(b=new Fyd(QSd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);d=(e=a.c,e?e:(jGd(),YFd));c=31*c+(!d?0:tb(d))}return c};_.Qi=function rTd(a){var b,c,d,e;d=0;for(c=new Fyd(QSd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);if(PD(a)===PD((e=b.c,e?e:(jGd(),YFd)))){return d}++d}return -1};_.Ri=function sTd(){return QSd(this.a).i==0};_.Si=function tTd(){return null};_.Vi=function wTd(){return QSd(this.a).i};_.Wi=function xTd(){var a,b,c,d,e,f;f=QSd(this.a).i;e=KC(SI,Uhe,1,f,5,1);c=0;for(b=new Fyd(QSd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);e[c++]=(d=a.c,d?d:(jGd(),YFd))}return e};_.Xi=function yTd(a){var b,c,d,e,f,g,h;h=QSd(this.a).i;if(a.length<h){e=izd(rb(a).c,h);a=e}a.length>h&&NC(a,h,null);d=0;for(c=new Fyd(QSd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,g?g:(jGd(),YFd));NC(a,d++,f)}return a};_.Yi=function zTd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=QSd(this.a);for(b=0,d=QSd(this.a).i;b<d;){Efb(e,xfb((c=BD(qud(a,b),87).c,c?c:(jGd(),YFd))));++b<d&&(e.a+=She,e)}e.a+=']';return e.a};_.$i=function ATd(a){};_.aj=function BTd(){return 13};_.Bk=function CTd(){return true};_.bj=function DTd(){return false};_.Ck=function ETd(){return false};_.Dk=function FTd(){return false};_.Ek=function GTd(){return true};_.rk=function HTd(){return false};_.Fk=function ITd(){return true};_.wj=function JTd(a){return JD(a,138)};_.fj=function KTd(){return RSd(this.a)};_.hi=function LTd(){return true};_.ni=function MTd(){return true};var n6=mdb(qte,'EOperationImpl/1',505);bcb(1340,1964,Lie,NTd);_.Zc=function OTd(a){return ztd(this.a,a)};_.gc=function PTd(){return QSd(this.a.a).i};var m6=mdb(qte,'EOperationImpl/1/1',1340);bcb(1341,545,Pve,UTd);_.ii=function YTd(a,b){var c,d;return c=BD(Wxd(this,a,b),87),oid(this.e)&&GLd(this,new ESd(this.a,7,(jGd(),bGd),meb(b),(d=c.c,d?d:YFd),a)),c};_.jj=function ZTd(a,b){return RTd(this,BD(a,87),b)};_.kj=function $Td(a,b){return STd(this,BD(a,87),b)};_.lj=function _Td(a,b,c){return TTd(this,BD(a,87),BD(b,87),c)};_.Zi=function VTd(a,b,c,d,e){switch(a){case 3:{return FLd(this,a,b,c,d,this.i>1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function WTd(){return true};_.fj=function XTd(){return QTd(this)};_.Xj=function aUd(){Uxd(this)};var o6=mdb(qte,'EOperationImpl/2',1341);bcb(498,1,{1938:1,498:1},bUd);var q6=mdb(qte,'EPackageImpl/1',498);bcb(16,85,Pve,cUd);_.zk=function dUd(){return this.d};_.Ak=function eUd(){return this.b};_.Dk=function fUd(){return true};_.b=0;var b9=mdb(yve,'EObjectContainmentWithInverseEList',16);bcb(353,16,Pve,gUd);_.Ek=function hUd(){return true};_.li=function iUd(a,b){return ILd(this,a,BD(b,56))};var $8=mdb(yve,'EObjectContainmentWithInverseEList/Resolving',353);bcb(298,353,Pve,jUd);_.ci=function kUd(){this.a.tb=null};var r6=mdb(qte,'EPackageImpl/2',298);bcb(1228,1,{},lUd);var s6=mdb(qte,'EPackageImpl/3',1228);bcb(718,43,fke,oUd);_._b=function pUd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};var u6=mdb(qte,'EPackageRegistryImpl',718);bcb(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},rUd);_.Qg=function sUd(a){return qUd(this,a)};_._g=function tUd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,59):null;}return bid(this,a-aLd((jGd(),dGd)),XKd((d=BD(Ajd(this,16),26),!d?dGd:d),a),b,c)};_.hh=function uUd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?qUd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.jh=function vUd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.lh=function wUd(a){var b,c,d;switch(a){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 d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,59):null);}return cid(this,a-aLd((jGd(),dGd)),XKd((b=BD(Ajd(this,16),26),!b?dGd:b),a))};_.zh=function xUd(){return jGd(),dGd};var v6=mdb(qte,'EParameterImpl',509);bcb(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},FUd);_._g=function GUd(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),g=this.t,g>1||g==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:return Bcb(),f=zUd(this),!!f&&(f.Bb&ote)!=0?true:false;case 20:return Bcb(),(this.Bb&Tje)!=0?true:false;case 21:if(b)return zUd(this);return this.b;case 22:if(b)return AUd(this);return yUd(this);case 23:return !this.a&&(this.a=new _4d(b5,this,23)),this.a;}return bid(this,a-aLd((jGd(),eGd)),XKd((d=BD(Ajd(this,16),26),!d?eGd:d),a),b,c)};_.lh=function HUd(a){var b,c,d,e;switch(a){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 e=this.t,e>1||e==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return d=zUd(this),!!d&&(d.Bb&ote)!=0;case 20:return (this.Bb&Tje)==0;case 21:return !!this.b;case 22:return !!yUd(this);case 23:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.sh=function IUd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:BUd(this,Ccb(DD(b)));return;case 20:EUd(this,Ccb(DD(b)));return;case 21:DUd(this,BD(b,18));return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);!this.a&&(this.a=new _4d(b5,this,23));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),eGd)),XKd((c=BD(Ajd(this,16),26),!c?eGd:c),a),b)};_.zh=function JUd(){return jGd(),eGd};_.Bh=function KUd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:CUd(this,false);JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),2);return;case 20:EUd(this,true);return;case 21:DUd(this,null);return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);return;}eid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.Gh=function LUd(){AUd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Lj=function MUd(){return zUd(this)};_.qk=function NUd(){var a;return a=zUd(this),!!a&&(a.Bb&ote)!=0};_.rk=function OUd(){return (this.Bb&ote)!=0};_.sk=function PUd(){return (this.Bb&Tje)!=0};_.nk=function QUd(a,b){this.c=null;return zId(this,a,b)};_.Ib=function RUd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (containment: ';Ffb(a,(this.Bb&ote)!=0);a.a+=', resolveProxies: ';Ffb(a,(this.Bb&Tje)!=0);a.a+=')';return a.a};var w6=mdb(qte,'EReferenceImpl',99);bcb(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},XUd);_.Fb=function bVd(a){return this===a};_.cd=function dVd(){return this.b};_.dd=function eVd(){return this.c};_.Hb=function fVd(){return FCb(this)};_.Uh=function hVd(a){SUd(this,GD(a))};_.ed=function iVd(a){return WUd(this,GD(a))};_._g=function YUd(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return bid(this,a-aLd((jGd(),fGd)),XKd((d=BD(Ajd(this,16),26),!d?fGd:d),a),b,c)};_.lh=function ZUd(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return cid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.sh=function $Ud(a,b){var c;switch(a){case 0:TUd(this,GD(b));return;case 1:VUd(this,GD(b));return;}did(this,a-aLd((jGd(),fGd)),XKd((c=BD(Ajd(this,16),26),!c?fGd:c),a),b)};_.zh=function _Ud(){return jGd(),fGd};_.Bh=function aVd(a){var b;switch(a){case 0:UUd(this,null);return;case 1:VUd(this,null);return;}eid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.Sh=function cVd(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:LCb(a)}return this.a};_.Th=function gVd(a){this.a=a};_.Ib=function jVd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (key: ';Efb(a,this.b);a.a+=', value: ';Efb(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var x6=mdb(qte,'EStringToStringMapEntryImpl',548);var D9=odb(yve,'FeatureMap/Entry/Internal');bcb(565,1,Xve);_.Ok=function mVd(a){return this.Pk(BD(a,49))};_.Pk=function nVd(a){return this.Ok(a)};_.Fb=function oVd(a){var b,c;if(this===a){return true}else if(JD(a,72)){b=BD(a,72);if(b.ak()==this.c){c=this.dd();return c==null?b.dd()==null:pb(c,b.dd())}else{return false}}else{return false}};_.ak=function pVd(){return this.c};_.Hb=function qVd(){var a;a=this.dd();return tb(this.c)^(a==null?0:tb(a))};_.Ib=function rVd(){var a,b;a=this.c;b=bKd(a.Hj()).Ph();a.ne();return (b!=null&&b.length!=0?b+':'+a.ne():a.ne())+'='+this.dd()};var y6=mdb(qte,'EStructuralFeatureImpl/BasicFeatureMapEntry',565);bcb(776,565,Xve,uVd);_.Pk=function vVd(a){return new uVd(this.c,a)};_.dd=function wVd(){return this.a};_.Qk=function xVd(a,b,c){return sVd(this,a,this.a,b,c)};_.Rk=function yVd(a,b,c){return tVd(this,a,this.a,b,c)};var z6=mdb(qte,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',776);bcb(1314,1,{},zVd);_.Pj=function AVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.nl(this.a).Wj(d)};_.Qj=function BVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.el(this.a,d,e)};_.Rj=function CVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.fl(this.a,d,e)};_.Sj=function DVd(a,b,c){var d;d=BD(gid(a,this.b),215);return d.nl(this.a).fj()};_.Tj=function EVd(a,b,c,d){var e;e=BD(gid(a,this.b),215);e.nl(this.a).Wb(d)};_.Uj=function FVd(a,b,c){return BD(gid(a,this.b),215).nl(this.a)};_.Vj=function GVd(a,b,c){var d;d=BD(gid(a,this.b),215);d.nl(this.a).Xj()};var A6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1314);bcb(89,1,{},IVd,JVd,KVd,LVd);_.Pj=function MVd(a,b,c,d,e){var f;f=b.Ch(c);f==null&&b.Dh(c,f=HVd(this,a));if(!e){switch(this.e){case 50:case 41:return BD(f,589).sj();case 40:return BD(f,215).kl();}}return f};_.Qj=function NVd(a,b,c,d,e){var f,g;g=b.Ch(c);g==null&&b.Dh(c,g=HVd(this,a));f=BD(g,69).lk(d,e);return f};_.Rj=function OVd(a,b,c,d,e){var f;f=b.Ch(c);f!=null&&(e=BD(f,69).mk(d,e));return e};_.Sj=function PVd(a,b,c){var d;d=b.Ch(c);return d!=null&&BD(d,76).fj()};_.Tj=function QVd(a,b,c,d){var e;e=BD(b.Ch(c),76);!e&&b.Dh(c,e=HVd(this,a));e.Wb(d)};_.Uj=function RVd(a,b,c){var d,e;e=b.Ch(c);e==null&&b.Dh(c,e=HVd(this,a));if(JD(e,76)){return BD(e,76)}else{d=BD(b.Ch(c),15);return new iYd(d)}};_.Vj=function SVd(a,b,c){var d;d=BD(b.Ch(c),76);!d&&b.Dh(c,d=HVd(this,a));d.Xj()};_.b=0;_.e=0;var B6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateMany',89);bcb(504,1,{});_.Qj=function WVd(a,b,c,d,e){throw vbb(new bgb)};_.Rj=function XVd(a,b,c,d,e){throw vbb(new bgb)};_.Uj=function YVd(a,b,c){return new ZVd(this,a,b,c)};var TVd;var i7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle',504);bcb(1331,1,zve,ZVd);_.Wj=function $Vd(a){return this.a.Pj(this.c,this.d,this.b,a,true)};_.fj=function _Vd(){return this.a.Sj(this.c,this.d,this.b)};_.Wb=function aWd(a){this.a.Tj(this.c,this.d,this.b,a)};_.Xj=function bWd(){this.a.Vj(this.c,this.d,this.b)};_.b=0;var C6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle/1',1331);bcb(769,504,{},cWd);_.Pj=function dWd(a,b,c,d,e){return Nid(a,a.eh(),a.Vg())==this.b?this.sk()&&d?aid(a):a.eh():null};_.Qj=function eWd(a,b,c,d,e){var f,g;!!a.eh()&&(e=(f=a.Vg(),f>=0?a.Qg(e):a.eh().ih(a,-1-f,null,e)));g=bLd(a.Tg(),this.e);return a.Sg(d,g,e)};_.Rj=function fWd(a,b,c,d,e){var f;f=bLd(a.Tg(),this.e);return a.Sg(null,f,e)};_.Sj=function gWd(a,b,c){var d;d=bLd(a.Tg(),this.e);return !!a.eh()&&a.Vg()==d};_.Tj=function hWd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}e=a.eh();g=bLd(a.Tg(),this.e);if(PD(d)!==PD(e)||a.Vg()!=g&&d!=null){if(p6d(a,BD(d,56)))throw vbb(new Wdb(ste+a.Ib()));i=null;!!e&&(i=(f=a.Vg(),f>=0?a.Qg(i):a.eh().ih(a,-1-f,null,i)));h=BD(d,49);!!h&&(i=h.gh(a,bLd(h.Tg(),this.b),null,i));i=a.Sg(h,g,i);!!i&&i.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new nSd(a,1,g,d,d))}};_.Vj=function iWd(a,b,c){var d,e,f,g;d=a.eh();if(d){g=(e=a.Vg(),e>=0?a.Qg(null):a.eh().ih(a,-1-e,null,null));f=bLd(a.Tg(),this.e);g=a.Sg(null,f,g);!!g&&g.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,1,this.e,null,null))}};_.sk=function jWd(){return false};var E6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',769);bcb(1315,769,{},kWd);_.sk=function lWd(){return true};var D6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1315);bcb(563,504,{});_.Pj=function oWd(a,b,c,d,e){var f;return f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f};_.Sj=function pWd(a,b,c){var d;d=b.Ch(c);return d!=null&&(PD(d)===PD(TVd)||!pb(d,this.b))};_.Tj=function qWd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=(f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Tk(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.Dh(c,null):this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function rWd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=(e=b.Ch(c),e==null?this.b:PD(e)===PD(TVd)?null:e);b.Eh(c);Uhd(a,this.d.Tk(a,1,this.e,d,this.b))}else{b.Eh(c)}};_.Sk=function sWd(a){throw vbb(new Bdb)};var T6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',563);bcb($ve,1,{},DWd);_.Tk=function EWd(a,b,c,d,e){return new DSd(a,b,c,d,e)};_.Uk=function FWd(a,b,c,d,e,f){return new FSd(a,b,c,d,e,f)};var tWd,uWd,vWd,wWd,xWd,yWd,zWd,AWd,BWd;var N6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',$ve);bcb(1332,$ve,{},GWd);_.Tk=function HWd(a,b,c,d,e){return new ISd(a,b,c,Ccb(DD(d)),Ccb(DD(e)))};_.Uk=function IWd(a,b,c,d,e,f){return new JSd(a,b,c,Ccb(DD(d)),Ccb(DD(e)),f)};var F6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1332);bcb(1333,$ve,{},JWd);_.Tk=function KWd(a,b,c,d,e){return new rSd(a,b,c,BD(d,217).a,BD(e,217).a)};_.Uk=function LWd(a,b,c,d,e,f){return new sSd(a,b,c,BD(d,217).a,BD(e,217).a,f)};var G6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1333);bcb(1334,$ve,{},MWd);_.Tk=function NWd(a,b,c,d,e){return new tSd(a,b,c,BD(d,172).a,BD(e,172).a)};_.Uk=function OWd(a,b,c,d,e,f){return new uSd(a,b,c,BD(d,172).a,BD(e,172).a,f)};var H6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1334);bcb(1335,$ve,{},PWd);_.Tk=function QWd(a,b,c,d,e){return new vSd(a,b,c,Edb(ED(d)),Edb(ED(e)))};_.Uk=function RWd(a,b,c,d,e,f){return new wSd(a,b,c,Edb(ED(d)),Edb(ED(e)),f)};var I6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1335);bcb(1336,$ve,{},SWd);_.Tk=function TWd(a,b,c,d,e){return new xSd(a,b,c,BD(d,155).a,BD(e,155).a)};_.Uk=function UWd(a,b,c,d,e,f){return new ySd(a,b,c,BD(d,155).a,BD(e,155).a,f)};var J6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1336);bcb(1337,$ve,{},VWd);_.Tk=function WWd(a,b,c,d,e){return new zSd(a,b,c,BD(d,19).a,BD(e,19).a)};_.Uk=function XWd(a,b,c,d,e,f){return new ASd(a,b,c,BD(d,19).a,BD(e,19).a,f)};var K6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1337);bcb(1338,$ve,{},YWd);_.Tk=function ZWd(a,b,c,d,e){return new BSd(a,b,c,BD(d,162).a,BD(e,162).a)};_.Uk=function $Wd(a,b,c,d,e,f){return new CSd(a,b,c,BD(d,162).a,BD(e,162).a,f)};var L6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1338);bcb(1339,$ve,{},_Wd);_.Tk=function aXd(a,b,c,d,e){return new GSd(a,b,c,BD(d,184).a,BD(e,184).a)};_.Uk=function bXd(a,b,c,d,e,f){return new HSd(a,b,c,BD(d,184).a,BD(e,184).a,f)};var M6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1339);bcb(1317,563,{},cXd);_.Sk=function dXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var O6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1317);bcb(1318,563,{},eXd);_.Sk=function fXd(a){};var P6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1318);bcb(770,563,{});_.Sj=function gXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function hXd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=true;f=b.Ch(c);if(f==null){e=false;f=this.b}else PD(f)===PD(TVd)&&(f=null);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else{b.Dh(c,TVd)}}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Uk(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.Dh(c,null):b.Dh(c,TVd)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function iXd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=true;e=b.Ch(c);if(e==null){d=false;e=this.b}else PD(e)===PD(TVd)&&(e=null);b.Eh(c);Uhd(a,this.d.Uk(a,2,this.e,e,this.b,d))}else{b.Eh(c)}};var S6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',770);bcb(1319,770,{},jXd);_.Sk=function kXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var Q6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1319);bcb(1320,770,{},lXd);_.Sk=function mXd(a){};var R6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1320);bcb(398,504,{},nXd);_.Pj=function pXd(a,b,c,d,e){var f,g,h,i,j;j=b.Ch(c);if(this.Kj()&&PD(j)===PD(TVd)){return null}else if(this.sk()&&d&&j!=null){h=BD(j,49);if(h.kh()){i=xid(a,h);if(h!=i){if(!fKd(this.a,i)){throw vbb(new Cdb(Yve+rb(i)+Zve+this.a+"'"))}b.Dh(c,j=i);if(this.rk()){f=BD(i,49);g=h.ih(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(h.Tg(),this.b),null,null);!f.eh()&&(g=f.gh(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(f.Tg(),this.b),null,g));!!g&&g.Fi()}a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,9,this.e,h,i))}}return j}else{return j}};_.Qj=function qXd(a,b,c,d,e){var f,g;g=b.Ch(c);PD(g)===PD(TVd)&&(g=null);b.Dh(c,d);if(this.bj()){if(PD(g)!==PD(d)&&g!=null){f=BD(g,49);e=f.ih(a,bLd(f.Tg(),this.b),null,e)}}else this.rk()&&g!=null&&(e=BD(g,49).ih(a,-1-bLd(a.Tg(),this.e),null,e));if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));e.Ei(new DSd(a,1,this.e,g,d))}return e};_.Rj=function rXd(a,b,c,d,e){var f;f=b.Ch(c);PD(f)===PD(TVd)&&(f=null);b.Eh(c);if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));this.Kj()?e.Ei(new DSd(a,2,this.e,f,null)):e.Ei(new DSd(a,1,this.e,f,null))}return e};_.Sj=function sXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function tXd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}i=b.Ch(c);h=i!=null;this.Kj()&&PD(i)===PD(TVd)&&(i=null);g=null;if(this.bj()){if(PD(i)!==PD(d)){if(i!=null){e=BD(i,49);g=e.ih(a,bLd(e.Tg(),this.b),null,g)}if(d!=null){e=BD(d,49);g=e.gh(a,bLd(e.Tg(),this.b),null,g)}}}else if(this.rk()){if(PD(i)!==PD(d)){i!=null&&(g=BD(i,49).ih(a,-1-bLd(a.Tg(),this.e),null,g));d!=null&&(g=BD(d,49).gh(a,-1-bLd(a.Tg(),this.e),null,g))}}d==null&&this.Kj()?b.Dh(c,TVd):b.Dh(c,d);if(a.Lg()&&a.Mg()){f=new FSd(a,1,this.e,i,d,this.Kj()&&!h);if(!g){Uhd(a,f)}else{g.Ei(f);g.Fi()}}else !!g&&g.Fi()};_.Vj=function uXd(a,b,c){var d,e,f,g,h;h=b.Ch(c);g=h!=null;this.Kj()&&PD(h)===PD(TVd)&&(h=null);f=null;if(h!=null){if(this.bj()){d=BD(h,49);f=d.ih(a,bLd(d.Tg(),this.b),null,f)}else this.rk()&&(f=BD(h,49).ih(a,-1-bLd(a.Tg(),this.e),null,f))}b.Eh(c);if(a.Lg()&&a.Mg()){e=new FSd(a,this.Kj()?2:1,this.e,h,null,g);if(!f){Uhd(a,e)}else{f.Ei(e);f.Fi()}}else !!f&&f.Fi()};_.bj=function vXd(){return false};_.rk=function wXd(){return false};_.sk=function xXd(){return false};_.Kj=function yXd(){return false};var h7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',398);bcb(564,398,{},zXd);_.rk=function AXd(){return true};var _6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',564);bcb(1323,564,{},BXd);_.sk=function CXd(){return true};var U6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1323);bcb(772,564,{},DXd);_.Kj=function EXd(){return true};var W6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',772);bcb(1325,772,{},FXd);_.sk=function GXd(){return true};var V6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1325);bcb(640,564,{},HXd);_.bj=function IXd(){return true};var $6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',640);bcb(1324,640,{},JXd);_.sk=function KXd(){return true};var X6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1324);bcb(773,640,{},LXd);_.Kj=function MXd(){return true};var Z6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',773);bcb(1326,773,{},NXd);_.sk=function OXd(){return true};var Y6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1326);bcb(641,398,{},PXd);_.sk=function QXd(){return true};var d7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',641);bcb(1327,641,{},RXd);_.Kj=function SXd(){return true};var a7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1327);bcb(774,641,{},TXd);_.bj=function UXd(){return true};var c7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',774);bcb(1328,774,{},VXd);_.Kj=function WXd(){return true};var b7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1328);bcb(1321,398,{},XXd);_.Kj=function YXd(){return true};var e7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1321);bcb(771,398,{},ZXd);_.bj=function $Xd(){return true};var g7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',771);bcb(1322,771,{},_Xd);_.Kj=function aYd(){return true};var f7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1322);bcb(775,565,Xve,dYd);_.Pk=function eYd(a){return new dYd(this.a,this.c,a)};_.dd=function fYd(){return this.b};_.Qk=function gYd(a,b,c){return bYd(this,a,this.b,c)};_.Rk=function hYd(a,b,c){return cYd(this,a,this.b,c)};var j7=mdb(qte,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',775);bcb(1329,1,zve,iYd);_.Wj=function jYd(a){return this.a};_.fj=function kYd(){return JD(this.a,95)?BD(this.a,95).fj():!this.a.dc()};_.Wb=function lYd(a){this.a.$b();this.a.Gc(BD(a,15))};_.Xj=function mYd(){JD(this.a,95)?BD(this.a,95).Xj():this.a.$b()};var k7=mdb(qte,'EStructuralFeatureImpl/SettingMany',1329);bcb(1330,565,Xve,nYd);_.Ok=function oYd(a){return new sYd((Q8d(),P8d),this.b.Ih(this.a,a))};_.dd=function pYd(){return null};_.Qk=function qYd(a,b,c){return c};_.Rk=function rYd(a,b,c){return c};var l7=mdb(qte,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1330);bcb(642,565,Xve,sYd);_.Ok=function tYd(a){return new sYd(this.c,a)};_.dd=function uYd(){return this.a};_.Qk=function vYd(a,b,c){return c};_.Rk=function wYd(a,b,c){return c};var m7=mdb(qte,'EStructuralFeatureImpl/SimpleFeatureMapEntry',642);bcb(391,497,oue,xYd);_.ri=function yYd(a){return KC(c5,Uhe,26,a,0,1)};_.ni=function zYd(){return false};var o7=mdb(qte,'ESuperAdapter/1',391);bcb(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},BYd);_._g=function CYd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new KYd(this,j5,this)),this.a;}return bid(this,a-aLd((jGd(),iGd)),XKd((d=BD(Ajd(this,16),26),!d?iGd:d),a),b,c)};_.jh=function DYd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.a&&(this.a=new KYd(this,j5,this)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),iGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),iGd)),a,c)};_.lh=function EYd(a){var b;switch(a){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 cid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};_.sh=function FYd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);!this.a&&(this.a=new KYd(this,j5,this));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),iGd)),XKd((c=BD(Ajd(this,16),26),!c?iGd:c),a),b)};_.zh=function GYd(){return jGd(),iGd};_.Bh=function HYd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);return;}eid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};var u7=mdb(qte,'ETypeParameterImpl',444);bcb(445,85,Pve,KYd);_.cj=function LYd(a,b){return IYd(this,BD(a,87),b)};_.dj=function MYd(a,b){return JYd(this,BD(a,87),b)};var q7=mdb(qte,'ETypeParameterImpl/1',445);bcb(634,43,fke,NYd);_.ec=function OYd(){return new RYd(this)};var t7=mdb(qte,'ETypeParameterImpl/2',634);bcb(556,eie,fie,RYd);_.Fc=function SYd(a){return PYd(this,BD(a,87))};_.Gc=function TYd(a){var b,c,d;d=false;for(c=a.Kc();c.Ob();){b=BD(c.Pb(),87);Rhb(this.a,b,'')==null&&(d=true)}return d};_.$b=function UYd(){Uhb(this.a)};_.Hc=function VYd(a){return Mhb(this.a,a)};_.Kc=function WYd(){var a;return a=new nib((new eib(this.a)).a),new ZYd(a)};_.Mc=function XYd(a){return QYd(this,a)};_.gc=function YYd(){return Vhb(this.a)};var s7=mdb(qte,'ETypeParameterImpl/2/1',556);bcb(557,1,aie,ZYd);_.Nb=function $Yd(a){Rrb(this,a)};_.Pb=function aZd(){return BD(lib(this.a).cd(),87)};_.Ob=function _Yd(){return this.a.b};_.Qb=function bZd(){mib(this.a)};var r7=mdb(qte,'ETypeParameterImpl/2/1/1',557);bcb(1276,43,fke,cZd);_._b=function dZd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};_.xc=function eZd(a){var b,c;b=ND(a)?Phb(this,a):Wd(irb(this.f,a));if(JD(b,837)){c=BD(b,837);b=c._j();Rhb(this,BD(a,235),b);return b}else return b!=null?b:a==null?(g5d(),f5d):null};var w7=mdb(qte,'EValidatorRegistryImpl',1276);bcb(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},mZd);_.Ih=function nZd(a,b){switch(a.yj()){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 b==null?null:fcb(b);case 25:return gZd(b);case 27:return hZd(b);case 28:return iZd(b);case 29:return b==null?null:CQd(Pmd[0],BD(b,199));case 41:return b==null?'':hdb(BD(b,290));case 42:return fcb(b);case 50:return GD(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function oZd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;switch(a.G==-1&&(a.G=(m=bKd(a),m?HLd(m.Mh(),a):-1)),a.G){case 0:return c=new OJd,c;case 1:return b=new RHd,b;case 2:return d=new hLd,d;case 4:return e=new MPd,e;case 5:return f=new aQd,f;case 6:return g=new rQd,g;case 7:return h=new $md,h;case 10:return j=new MGd,j;case 11:return k=new SSd,k;case 12:return l=new eod,l;case 13:return n=new rUd,n;case 14:return o=new FUd,o;case 17:return p=new XUd,p;case 18:return i=new UQd,i;case 19:return q=new BYd,q;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function pZd(a,b){switch(a.yj()){case 20:return b==null?null:new tgb(b);case 21:return b==null?null:new Ygb(b);case 23:case 22:return b==null?null:fZd(b);case 26:case 24:return b==null?null:Scb(Icb(b,-128,127)<<24>>24);case 25:return Xmd(b);case 27:return jZd(b);case 28:return kZd(b);case 29:return lZd(b);case 32:case 31:return b==null?null:Hcb(b);case 38:case 37:return b==null?null:new Odb(b);case 40:case 39:return b==null?null:meb(Icb(b,Rie,Ohe));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:Aeb(Jcb(b));case 49:case 48:return b==null?null:Web(Icb(b,awe,32767)<<16>>16);case 50:return b;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var x7=mdb(qte,'EcoreFactoryImpl',1313);bcb(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},AZd);_.gb=false;_.hb=false;var rZd,sZd=false;var o8=mdb(qte,'EcorePackageImpl',547);bcb(1184,1,{837:1},EZd);_._j=function FZd(){return I6d(),H6d};var I7=mdb(qte,'EcorePackageImpl/1',1184);bcb(1193,1,nwe,GZd);_.wj=function HZd(a){return JD(a,147)};_.xj=function IZd(a){return KC(k5,Uhe,147,a,0,1)};var y7=mdb(qte,'EcorePackageImpl/10',1193);bcb(1194,1,nwe,JZd);_.wj=function KZd(a){return JD(a,191)};_.xj=function LZd(a){return KC(l5,Uhe,191,a,0,1)};var z7=mdb(qte,'EcorePackageImpl/11',1194);bcb(1195,1,nwe,MZd);_.wj=function NZd(a){return JD(a,56)};_.xj=function OZd(a){return KC(m5,Uhe,56,a,0,1)};var A7=mdb(qte,'EcorePackageImpl/12',1195);bcb(1196,1,nwe,PZd);_.wj=function QZd(a){return JD(a,399)};_.xj=function RZd(a){return KC(n5,Nve,59,a,0,1)};var B7=mdb(qte,'EcorePackageImpl/13',1196);bcb(1197,1,nwe,SZd);_.wj=function TZd(a){return JD(a,235)};_.xj=function UZd(a){return KC(o5,Uhe,235,a,0,1)};var C7=mdb(qte,'EcorePackageImpl/14',1197);bcb(1198,1,nwe,VZd);_.wj=function WZd(a){return JD(a,509)};_.xj=function XZd(a){return KC(p5,Uhe,2017,a,0,1)};var D7=mdb(qte,'EcorePackageImpl/15',1198);bcb(1199,1,nwe,YZd);_.wj=function ZZd(a){return JD(a,99)};_.xj=function $Zd(a){return KC(q5,Mve,18,a,0,1)};var E7=mdb(qte,'EcorePackageImpl/16',1199);bcb(1200,1,nwe,_Zd);_.wj=function a$d(a){return JD(a,170)};_.xj=function b$d(a){return KC(t5,Mve,170,a,0,1)};var F7=mdb(qte,'EcorePackageImpl/17',1200);bcb(1201,1,nwe,c$d);_.wj=function d$d(a){return JD(a,472)};_.xj=function e$d(a){return KC(v5,Uhe,472,a,0,1)};var G7=mdb(qte,'EcorePackageImpl/18',1201);bcb(1202,1,nwe,f$d);_.wj=function g$d(a){return JD(a,548)};_.xj=function h$d(a){return KC(x6,kve,548,a,0,1)};var H7=mdb(qte,'EcorePackageImpl/19',1202);bcb(1185,1,nwe,i$d);_.wj=function j$d(a){return JD(a,322)};_.xj=function k$d(a){return KC(b5,Mve,34,a,0,1)};var T7=mdb(qte,'EcorePackageImpl/2',1185);bcb(1203,1,nwe,l$d);_.wj=function m$d(a){return JD(a,241)};_.xj=function n$d(a){return KC(j5,Tve,87,a,0,1)};var J7=mdb(qte,'EcorePackageImpl/20',1203);bcb(1204,1,nwe,o$d);_.wj=function p$d(a){return JD(a,444)};_.xj=function q$d(a){return KC(u5,Uhe,836,a,0,1)};var K7=mdb(qte,'EcorePackageImpl/21',1204);bcb(1205,1,nwe,r$d);_.wj=function s$d(a){return KD(a)};_.xj=function t$d(a){return KC(wI,nie,476,a,8,1)};var L7=mdb(qte,'EcorePackageImpl/22',1205);bcb(1206,1,nwe,u$d);_.wj=function v$d(a){return JD(a,190)};_.xj=function w$d(a){return KC(SD,nie,190,a,0,2)};var M7=mdb(qte,'EcorePackageImpl/23',1206);bcb(1207,1,nwe,x$d);_.wj=function y$d(a){return JD(a,217)};_.xj=function z$d(a){return KC(xI,nie,217,a,0,1)};var N7=mdb(qte,'EcorePackageImpl/24',1207);bcb(1208,1,nwe,A$d);_.wj=function B$d(a){return JD(a,172)};_.xj=function C$d(a){return KC(yI,nie,172,a,0,1)};var O7=mdb(qte,'EcorePackageImpl/25',1208);bcb(1209,1,nwe,D$d);_.wj=function E$d(a){return JD(a,199)};_.xj=function F$d(a){return KC($J,nie,199,a,0,1)};var P7=mdb(qte,'EcorePackageImpl/26',1209);bcb(1210,1,nwe,G$d);_.wj=function H$d(a){return false};_.xj=function I$d(a){return KC(O4,Uhe,2110,a,0,1)};var Q7=mdb(qte,'EcorePackageImpl/27',1210);bcb(1211,1,nwe,J$d);_.wj=function K$d(a){return LD(a)};_.xj=function L$d(a){return KC(BI,nie,333,a,7,1)};var R7=mdb(qte,'EcorePackageImpl/28',1211);bcb(1212,1,nwe,M$d);_.wj=function N$d(a){return JD(a,58)};_.xj=function O$d(a){return KC(T4,eme,58,a,0,1)};var S7=mdb(qte,'EcorePackageImpl/29',1212);bcb(1186,1,nwe,P$d);_.wj=function Q$d(a){return JD(a,510)};_.xj=function R$d(a){return KC(a5,{3:1,4:1,5:1,1934:1},590,a,0,1)};var c8=mdb(qte,'EcorePackageImpl/3',1186);bcb(1213,1,nwe,S$d);_.wj=function T$d(a){return JD(a,573)};_.xj=function U$d(a){return KC(U4,Uhe,1940,a,0,1)};var U7=mdb(qte,'EcorePackageImpl/30',1213);bcb(1214,1,nwe,V$d);_.wj=function W$d(a){return JD(a,153)};_.xj=function X$d(a){return KC(O9,eme,153,a,0,1)};var V7=mdb(qte,'EcorePackageImpl/31',1214);bcb(1215,1,nwe,Y$d);_.wj=function Z$d(a){return JD(a,72)};_.xj=function $$d(a){return KC(E9,owe,72,a,0,1)};var W7=mdb(qte,'EcorePackageImpl/32',1215);bcb(1216,1,nwe,_$d);_.wj=function a_d(a){return JD(a,155)};_.xj=function b_d(a){return KC(FI,nie,155,a,0,1)};var X7=mdb(qte,'EcorePackageImpl/33',1216);bcb(1217,1,nwe,c_d);_.wj=function d_d(a){return JD(a,19)};_.xj=function e_d(a){return KC(JI,nie,19,a,0,1)};var Y7=mdb(qte,'EcorePackageImpl/34',1217);bcb(1218,1,nwe,f_d);_.wj=function g_d(a){return JD(a,290)};_.xj=function h_d(a){return KC(AI,Uhe,290,a,0,1)};var Z7=mdb(qte,'EcorePackageImpl/35',1218);bcb(1219,1,nwe,i_d);_.wj=function j_d(a){return JD(a,162)};_.xj=function k_d(a){return KC(MI,nie,162,a,0,1)};var $7=mdb(qte,'EcorePackageImpl/36',1219);bcb(1220,1,nwe,l_d);_.wj=function m_d(a){return JD(a,83)};_.xj=function n_d(a){return KC(DK,Uhe,83,a,0,1)};var _7=mdb(qte,'EcorePackageImpl/37',1220);bcb(1221,1,nwe,o_d);_.wj=function p_d(a){return JD(a,591)};_.xj=function q_d(a){return KC(v8,Uhe,591,a,0,1)};var a8=mdb(qte,'EcorePackageImpl/38',1221);bcb(1222,1,nwe,r_d);_.wj=function s_d(a){return false};_.xj=function t_d(a){return KC(u8,Uhe,2111,a,0,1)};var b8=mdb(qte,'EcorePackageImpl/39',1222);bcb(1187,1,nwe,u_d);_.wj=function v_d(a){return JD(a,88)};_.xj=function w_d(a){return KC(c5,Uhe,26,a,0,1)};var i8=mdb(qte,'EcorePackageImpl/4',1187);bcb(1223,1,nwe,x_d);_.wj=function y_d(a){return JD(a,184)};_.xj=function z_d(a){return KC(UI,nie,184,a,0,1)};var d8=mdb(qte,'EcorePackageImpl/40',1223);bcb(1224,1,nwe,A_d);_.wj=function B_d(a){return ND(a)};_.xj=function C_d(a){return KC(ZI,nie,2,a,6,1)};var e8=mdb(qte,'EcorePackageImpl/41',1224);bcb(1225,1,nwe,D_d);_.wj=function E_d(a){return JD(a,588)};_.xj=function F_d(a){return KC(X4,Uhe,588,a,0,1)};var f8=mdb(qte,'EcorePackageImpl/42',1225);bcb(1226,1,nwe,G_d);_.wj=function H_d(a){return false};_.xj=function I_d(a){return KC(V4,nie,2112,a,0,1)};var g8=mdb(qte,'EcorePackageImpl/43',1226);bcb(1227,1,nwe,J_d);_.wj=function K_d(a){return JD(a,42)};_.xj=function L_d(a){return KC(CK,zie,42,a,0,1)};var h8=mdb(qte,'EcorePackageImpl/44',1227);bcb(1188,1,nwe,M_d);_.wj=function N_d(a){return JD(a,138)};_.xj=function O_d(a){return KC(d5,Uhe,138,a,0,1)};var j8=mdb(qte,'EcorePackageImpl/5',1188);bcb(1189,1,nwe,P_d);_.wj=function Q_d(a){return JD(a,148)};_.xj=function R_d(a){return KC(f5,Uhe,148,a,0,1)};var k8=mdb(qte,'EcorePackageImpl/6',1189);bcb(1190,1,nwe,S_d);_.wj=function T_d(a){return JD(a,457)};_.xj=function U_d(a){return KC(h5,Uhe,671,a,0,1)};var l8=mdb(qte,'EcorePackageImpl/7',1190);bcb(1191,1,nwe,V_d);_.wj=function W_d(a){return JD(a,573)};_.xj=function X_d(a){return KC(g5,Uhe,678,a,0,1)};var m8=mdb(qte,'EcorePackageImpl/8',1191);bcb(1192,1,nwe,Y_d);_.wj=function Z_d(a){return JD(a,471)};_.xj=function $_d(a){return KC(i5,Uhe,471,a,0,1)};var n8=mdb(qte,'EcorePackageImpl/9',1192);bcb(1025,1982,ive,c0d);_.bi=function d0d(a,b){__d(this,BD(b,415))};_.fi=function e0d(a,b){a0d(this,a,BD(b,415))};var q8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',1025);bcb(1026,143,fve,f0d);_.Ai=function g0d(){return this.a.a};var p8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',1026);bcb(1053,1052,{},i0d);var t8=mdb('org.eclipse.emf.ecore.plugin','EcorePlugin',1053);var v8=odb(pwe,'Resource');bcb(781,1378,qwe);_.Yk=function m0d(a){};_.Zk=function n0d(a){};_.Vk=function o0d(){return !this.a&&(this.a=new z0d(this)),this.a};_.Wk=function p0d(a){var b,c,d,e,f;d=a.length;if(d>0){BCb(0,a.length);if(a.charCodeAt(0)==47){f=new Skb(4);e=1;for(b=1;b<d;++b){BCb(b,a.length);if(a.charCodeAt(b)==47){Ekb(f,e==b?'':a.substr(e,b-e));e=b+1}}Ekb(f,a.substr(e));return j0d(this,f)}else{BCb(d-1,a.length);if(a.charCodeAt(d-1)==63){c=lfb(a,wfb(63),d-2);c>0&&(a=a.substr(0,c))}}}return k0d(this,a)};_.Xk=function q0d(){return this.c};_.Ib=function r0d(){var a;return hdb(this.gm)+'@'+(a=tb(this)>>>0,a.toString(16))+" uri='"+this.d+"'"};_.b=false;var z8=mdb(rwe,'ResourceImpl',781);bcb(1379,781,qwe,s0d);var w8=mdb(rwe,'BinaryResourceImpl',1379);bcb(1169,694,pue);_.si=function v0d(a){return JD(a,56)?t0d(this,BD(a,56)):JD(a,591)?new Fyd(BD(a,591).Vk()):PD(a)===PD(this.f)?BD(a,14).Kc():(LCd(),KCd.a)};_.Ob=function w0d(){return u0d(this)};_.a=false;var z9=mdb(yve,'EcoreUtil/ContentTreeIterator',1169);bcb(1380,1169,pue,x0d);_.si=function y0d(a){return PD(a)===PD(this.f)?BD(a,15).Kc():new C6d(BD(a,56))};var x8=mdb(rwe,'ResourceImpl/5',1380);bcb(648,1994,Ove,z0d);_.Hc=function A0d(a){return this.i<=4?pud(this,a):JD(a,49)&&BD(a,49).Zg()==this.a};_.bi=function B0d(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.di=function C0d(a,b){a==0?this.a.b||(this.a.b=true,null):Atd(this,a,b)};_.fi=function D0d(a,b){};_.gi=function E0d(a,b,c){};_.aj=function F0d(){return 2};_.Ai=function G0d(){return this.a};_.bj=function H0d(){return true};_.cj=function I0d(a,b){var c;c=BD(a,49);b=c.wh(this.a,b);return b};_.dj=function J0d(a,b){var c;c=BD(a,49);return c.wh(null,b)};_.ej=function K0d(){return false};_.hi=function L0d(){return true};_.ri=function M0d(a){return KC(m5,Uhe,56,a,0,1)};_.ni=function N0d(){return false};var y8=mdb(rwe,'ResourceImpl/ContentsEList',648);bcb(957,1964,Lie,O0d);_.Zc=function P0d(a){return this.a._h(a)};_.gc=function Q0d(){return this.a.gc()};var A8=mdb(yve,'AbstractSequentialInternalEList/1',957);var K6d,L6d,M6d,N6d;bcb(624,1,{},y1d);var R0d,S0d;var G8=mdb(yve,'BasicExtendedMetaData',624);bcb(1160,1,{},C1d);_.$k=function D1d(){return null};_._k=function E1d(){this.a==-2&&A1d(this,W0d(this.d,this.b));return this.a};_.al=function F1d(){return null};_.bl=function G1d(){return mmb(),mmb(),jmb};_.ne=function H1d(){this.c==Gwe&&B1d(this,_0d(this.d,this.b));return this.c};_.cl=function I1d(){return 0};_.a=-2;_.c=Gwe;var C8=mdb(yve,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1160);bcb(1161,1,{},O1d);_.$k=function P1d(){this.a==(T0d(),R0d)&&J1d(this,V0d(this.f,this.b));return this.a};_._k=function Q1d(){return 0};_.al=function R1d(){this.c==(T0d(),R0d)&&K1d(this,Z0d(this.f,this.b));return this.c};_.bl=function S1d(){!this.d&&L1d(this,$0d(this.f,this.b));return this.d};_.ne=function T1d(){this.e==Gwe&&M1d(this,_0d(this.f,this.b));return this.e};_.cl=function U1d(){this.g==-2&&N1d(this,c1d(this.f,this.b));return this.g};_.e=Gwe;_.g=-2;var D8=mdb(yve,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',1161);bcb(1159,1,{},Y1d);_.b=false;_.c=false;var E8=mdb(yve,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1159);bcb(1162,1,{},j2d);_.c=-2;_.e=Gwe;_.f=Gwe;var F8=mdb(yve,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1162);bcb(585,622,Pve,k2d);_.aj=function l2d(){return this.c};_.Fk=function m2d(){return false};_.li=function n2d(a,b){return b};_.c=0;var T8=mdb(yve,'EDataTypeEList',585);var O9=odb(yve,'FeatureMap');bcb(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},u3d);_.Vc=function v3d(a,b){o2d(this,a,BD(b,72))};_.Fc=function w3d(a){return r2d(this,BD(a,72))};_.Yh=function B3d(a){w2d(this,BD(a,72))};_.cj=function M3d(a,b){return O2d(this,BD(a,72),b)};_.dj=function N3d(a,b){return Q2d(this,BD(a,72),b)};_.ii=function P3d(a,b){return W2d(this,a,b)};_.li=function R3d(a,b){return _2d(this,a,BD(b,72))};_._c=function T3d(a,b){return c3d(this,a,BD(b,72))};_.jj=function X3d(a,b){return i3d(this,BD(a,72),b)};_.kj=function Y3d(a,b){return k3d(this,BD(a,72),b)};_.lj=function Z3d(a,b,c){return l3d(this,BD(a,72),BD(b,72),c)};_.oi=function _3d(a,b){return t3d(this,a,BD(b,72))};_.dl=function x3d(a,b){return q2d(this,a,b)};_.Wc=function y3d(a,b){var c,d,e,f,g,h,i,j,k;j=new zud(b.gc());for(e=b.Kc();e.Ob();){d=BD(e.Pb(),72);f=d.ak();if(T6d(this.e,f)){(!f.hi()||!E2d(this,f,d.dd())&&!pud(j,d))&&wtd(j,d)}else{k=S6d(this.e.Tg(),f);c=BD(this.g,119);g=true;for(h=0;h<this.i;++h){i=c[h];if(k.rl(i.ak())){BD(Gtd(this,h,d),72);g=false;break}}g&&wtd(j,d)}}return xtd(this,a,j)};_.Gc=function z3d(a){var b,c,d,e,f,g,h,i,j;i=new zud(a.gc());for(d=a.Kc();d.Ob();){c=BD(d.Pb(),72);e=c.ak();if(T6d(this.e,e)){(!e.hi()||!E2d(this,e,c.dd())&&!pud(i,c))&&wtd(i,c)}else{j=S6d(this.e.Tg(),e);b=BD(this.g,119);f=true;for(g=0;g<this.i;++g){h=b[g];if(j.rl(h.ak())){BD(Gtd(this,g,c),72);f=false;break}}f&&wtd(i,c)}}return ytd(this,i)};_.Wh=function A3d(a){this.j=-1;return Pxd(this,this.i,a)};_.el=function C3d(a,b,c){return x2d(this,a,b,c)};_.mk=function D3d(a,b){return B2d(this,a,b)};_.fl=function E3d(a,b,c){return C2d(this,a,b,c)};_.gl=function F3d(){return this};_.hl=function G3d(a,b){return K2d(this,a,b)};_.il=function H3d(a){return BD(qud(this,a),72).ak()};_.jl=function I3d(a){return BD(qud(this,a),72).dd()};_.kl=function J3d(){return this.b};_.bj=function K3d(){return true};_.ij=function L3d(){return true};_.ll=function O3d(a){return !R2d(this,a)};_.ri=function Q3d(a){return KC(D9,owe,332,a,0,1)};_.Gk=function S3d(a){return a3d(this,a)};_.Wb=function U3d(a){d3d(this,a)};_.ml=function V3d(a,b){f3d(this,a,b)};_.nl=function W3d(a){return g3d(this,a)};_.ol=function $3d(a){s3d(this,a)};var J8=mdb(yve,'BasicFeatureMap',75);bcb(1851,1,jie);_.Nb=function f4d(a){Rrb(this,a)};_.Rb=function e4d(b){if(this.g==-1){throw vbb(new Ydb)}a4d(this);try{p2d(this.e,this.b,this.a,b);this.d=this.e.j;d4d(this)}catch(a){a=ubb(a);if(JD(a,73)){throw vbb(new Apb)}else throw vbb(a)}};_.Ob=function g4d(){return b4d(this)};_.Sb=function h4d(){return c4d(this)};_.Pb=function i4d(){return d4d(this)};_.Tb=function j4d(){return this.a};_.Ub=function k4d(){var a;if(c4d(this)){a4d(this);this.g=--this.a;if(this.Lk()){a=b3d(this.e,this.b,this.c,this.a,this.j);this.j=a}this.i=0;return this.j}else{throw vbb(new utb)}};_.Vb=function l4d(){return this.a-1};_.Qb=function m4d(){if(this.g==-1){throw vbb(new Ydb)}a4d(this);try{Z2d(this.e,this.b,this.g);this.d=this.e.j;if(this.g<this.a){--this.a;--this.c}--this.g}catch(a){a=ubb(a);if(JD(a,73)){throw vbb(new Apb)}else throw vbb(a)}};_.Lk=function n4d(){return false};_.Wb=function o4d(b){if(this.g==-1){throw vbb(new Ydb)}a4d(this);try{e3d(this.e,this.b,this.g,b);this.d=this.e.j}catch(a){a=ubb(a);if(JD(a,73)){throw vbb(new Apb)}else throw vbb(a)}};_.a=0;_.c=0;_.d=0;_.f=false;_.g=0;_.i=0;var G9=mdb(yve,'FeatureMapUtil/BasicFeatureEIterator',1851);bcb(410,1851,jie,p4d);_.pl=function q4d(){var a,b,c;c=this.e.i;a=BD(this.e.g,119);while(this.c<c){b=a[this.c];if(this.k.rl(b.ak())){this.j=this.f?b:b.dd();this.i=2;return true}++this.c}this.i=1;this.g=-1;return false};_.ql=function r4d(){var a,b;a=BD(this.e.g,119);while(--this.c>=0){b=a[this.c];if(this.k.rl(b.ak())){this.j=this.f?b:b.dd();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var H8=mdb(yve,'BasicFeatureMap/FeatureEIterator',410);bcb(662,410,jie,s4d);_.Lk=function t4d(){return true};var I8=mdb(yve,'BasicFeatureMap/ResolvingFeatureEIterator',662);bcb(955,486,Vve,u4d);_.Gi=function v4d(){return this};var M8=mdb(yve,'EContentsEList/1',955);bcb(956,486,Vve,w4d);_.Lk=function x4d(){return false};var N8=mdb(yve,'EContentsEList/2',956);bcb(954,279,Wve,y4d);_.Nk=function z4d(a){};_.Ob=function A4d(){return false};_.Sb=function B4d(){return false};var O8=mdb(yve,'EContentsEList/FeatureIteratorImpl/1',954);bcb(825,585,Pve,C4d);_.ci=function D4d(){this.a=true};_.fj=function E4d(){return this.a};_.Xj=function F4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var S8=mdb(yve,'EDataTypeEList/Unsettable',825);bcb(1849,585,Pve,G4d);_.hi=function H4d(){return true};var V8=mdb(yve,'EDataTypeUniqueEList',1849);bcb(1850,825,Pve,I4d);_.hi=function J4d(){return true};var U8=mdb(yve,'EDataTypeUniqueEList/Unsettable',1850);bcb(139,85,Pve,K4d);_.Ek=function L4d(){return true};_.li=function M4d(a,b){return ILd(this,a,BD(b,56))};var W8=mdb(yve,'EObjectContainmentEList/Resolving',139);bcb(1163,545,Pve,N4d);_.Ek=function O4d(){return true};_.li=function P4d(a,b){return ILd(this,a,BD(b,56))};var X8=mdb(yve,'EObjectContainmentEList/Unsettable/Resolving',1163);bcb(748,16,Pve,Q4d);_.ci=function R4d(){this.a=true};_.fj=function S4d(){return this.a};_.Xj=function T4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var a9=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable',748);bcb(1173,748,Pve,U4d);_.Ek=function V4d(){return true};_.li=function W4d(a,b){return ILd(this,a,BD(b,56))};var _8=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1173);bcb(743,496,Pve,X4d);_.ci=function Y4d(){this.a=true};_.fj=function Z4d(){return this.a};_.Xj=function $4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var c9=mdb(yve,'EObjectEList/Unsettable',743);bcb(328,496,Pve,_4d);_.Ek=function a5d(){return true};_.li=function b5d(a,b){return ILd(this,a,BD(b,56))};var f9=mdb(yve,'EObjectResolvingEList',328);bcb(1641,743,Pve,c5d);_.Ek=function d5d(){return true};_.li=function e5d(a,b){return ILd(this,a,BD(b,56))};var e9=mdb(yve,'EObjectResolvingEList/Unsettable',1641);bcb(1381,1,{},h5d);var f5d;var g9=mdb(yve,'EObjectValidator',1381);bcb(546,496,Pve,i5d);_.zk=function j5d(){return this.d};_.Ak=function k5d(){return this.b};_.bj=function l5d(){return true};_.Dk=function m5d(){return true};_.b=0;var k9=mdb(yve,'EObjectWithInverseEList',546);bcb(1176,546,Pve,n5d);_.Ck=function o5d(){return true};var h9=mdb(yve,'EObjectWithInverseEList/ManyInverse',1176);bcb(625,546,Pve,p5d);_.ci=function q5d(){this.a=true};_.fj=function r5d(){return this.a};_.Xj=function s5d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var j9=mdb(yve,'EObjectWithInverseEList/Unsettable',625);bcb(1175,625,Pve,t5d);_.Ck=function u5d(){return true};var i9=mdb(yve,'EObjectWithInverseEList/Unsettable/ManyInverse',1175);bcb(749,546,Pve,v5d);_.Ek=function w5d(){return true};_.li=function x5d(a,b){return ILd(this,a,BD(b,56))};var o9=mdb(yve,'EObjectWithInverseResolvingEList',749);bcb(31,749,Pve,y5d);_.Ck=function z5d(){return true};var l9=mdb(yve,'EObjectWithInverseResolvingEList/ManyInverse',31);bcb(750,625,Pve,A5d);_.Ek=function B5d(){return true};_.li=function C5d(a,b){return ILd(this,a,BD(b,56))};var n9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable',750);bcb(1174,750,Pve,D5d);_.Ck=function E5d(){return true};var m9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1174);bcb(1164,622,Pve);_.ai=function F5d(){return (this.b&1792)==0};_.ci=function G5d(){this.b|=1};_.Bk=function H5d(){return (this.b&4)!=0};_.bj=function I5d(){return (this.b&40)!=0};_.Ck=function J5d(){return (this.b&16)!=0};_.Dk=function K5d(){return (this.b&8)!=0};_.Ek=function L5d(){return (this.b&Dve)!=0};_.rk=function M5d(){return (this.b&32)!=0};_.Fk=function N5d(){return (this.b&zte)!=0};_.wj=function O5d(a){return !this.d?this.ak().Yj().wj(a):qEd(this.d,a)};_.fj=function P5d(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.hi=function Q5d(){return (this.b&128)!=0};_.Xj=function S5d(){var a;Uxd(this);if((this.b&2)!=0){if(oid(this.e)){a=(this.b&1)!=0;this.b&=-2;GLd(this,new qSd(this.e,2,bLd(this.e.Tg(),this.ak()),a,false))}else{this.b&=-2}}};_.ni=function T5d(){return (this.b&1536)==0};_.b=0;var q9=mdb(yve,'EcoreEList/Generic',1164);bcb(1165,1164,Pve,U5d);_.ak=function V5d(){return this.a};var p9=mdb(yve,'EcoreEList/Dynamic',1165);bcb(747,63,oue,W5d);_.ri=function X5d(a){return izd(this.a.a,a)};var u9=mdb(yve,'EcoreEMap/1',747);bcb(746,85,Pve,Y5d);_.bi=function Z5d(a,b){uAd(this.b,BD(b,133))};_.di=function $5d(a,b){tAd(this.b)};_.ei=function _5d(a,b,c){var d;++(d=this.b,BD(b,133),d).e};_.fi=function a6d(a,b){vAd(this.b,BD(b,133))};_.gi=function b6d(a,b,c){vAd(this.b,BD(c,133));PD(c)===PD(b)&&BD(c,133).Th(CAd(BD(b,133).cd()));uAd(this.b,BD(b,133))};var v9=mdb(yve,'EcoreEMap/DelegateEObjectContainmentEList',746);bcb(1171,151,Ave,c6d);var x9=mdb(yve,'EcoreEMap/Unsettable',1171);bcb(1172,746,Pve,d6d);_.ci=function e6d(){this.a=true};_.fj=function f6d(){return this.a};_.Xj=function g6d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var w9=mdb(yve,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1172);bcb(1168,228,fke,A6d);_.a=false;_.b=false;var A9=mdb(yve,'EcoreUtil/Copier',1168);bcb(745,1,aie,C6d);_.Nb=function D6d(a){Rrb(this,a)};_.Ob=function E6d(){return B6d(this)};_.Pb=function F6d(){var a;B6d(this);a=this.b;this.b=null;return a};_.Qb=function G6d(){this.a.Qb()};var B9=mdb(yve,'EcoreUtil/ProperContentIterator',745);bcb(1382,1381,{},J6d);var H6d;var C9=mdb(yve,'EcoreValidator',1382);var P6d;var N9=odb(yve,'FeatureMapUtil/Validator');bcb(1260,1,{1942:1},U6d);_.rl=function V6d(a){return true};var F9=mdb(yve,'FeatureMapUtil/1',1260);bcb(757,1,{1942:1},Z6d);_.rl=function $6d(a){var b;if(this.c==a)return true;b=DD(Ohb(this.a,a));if(b==null){if(Y6d(this,a)){_6d(this.a,a,(Bcb(),Acb));return true}else{_6d(this.a,a,(Bcb(),zcb));return false}}else{return b==(Bcb(),Acb)}};_.e=false;var W6d;var I9=mdb(yve,'FeatureMapUtil/BasicValidator',757);bcb(758,43,fke,a7d);var H9=mdb(yve,'FeatureMapUtil/BasicValidator/Cache',758);bcb(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},f7d);_.Vc=function g7d(a,b){p2d(this.c,this.b,a,b)};_.Fc=function h7d(a){return q2d(this.c,this.b,a)};_.Wc=function i7d(a,b){return s2d(this.c,this.b,a,b)};_.Gc=function j7d(a){return b7d(this,a)};_.Xh=function k7d(a,b){u2d(this.c,this.b,a,b)};_.lk=function l7d(a,b){return x2d(this.c,this.b,a,b)};_.pi=function m7d(a){return J2d(this.c,this.b,a,false)};_.Zh=function n7d(){return y2d(this.c,this.b)};_.$h=function o7d(){return z2d(this.c,this.b)};_._h=function p7d(a){return A2d(this.c,this.b,a)};_.mk=function q7d(a,b){return c7d(this,a,b)};_.$b=function r7d(){d7d(this)};_.Hc=function s7d(a){return E2d(this.c,this.b,a)};_.Ic=function t7d(a){return G2d(this.c,this.b,a)};_.Xb=function u7d(a){return J2d(this.c,this.b,a,true)};_.Wj=function v7d(a){return this};_.Xc=function w7d(a){return L2d(this.c,this.b,a)};_.dc=function x7d(){return e7d(this)};_.fj=function y7d(){return !R2d(this.c,this.b)};_.Kc=function z7d(){return S2d(this.c,this.b)};_.Yc=function A7d(){return U2d(this.c,this.b)};_.Zc=function B7d(a){return V2d(this.c,this.b,a)};_.ii=function C7d(a,b){return X2d(this.c,this.b,a,b)};_.ji=function D7d(a,b){Y2d(this.c,this.b,a,b)};_.$c=function E7d(a){return Z2d(this.c,this.b,a)};_.Mc=function F7d(a){return $2d(this.c,this.b,a)};_._c=function G7d(a,b){return e3d(this.c,this.b,a,b)};_.Wb=function H7d(a){D2d(this.c,this.b);b7d(this,BD(a,15))};_.gc=function I7d(){return n3d(this.c,this.b)};_.Pc=function J7d(){return o3d(this.c,this.b)};_.Qc=function K7d(a){return q3d(this.c,this.b,a)};_.Ib=function L7d(){var a,b;b=new Hfb;b.a+='[';for(a=y2d(this.c,this.b);b4d(a);){Efb(b,xfb(d4d(a)));b4d(a)&&(b.a+=She,b)}b.a+=']';return b.a};_.Xj=function M7d(){D2d(this.c,this.b)};var J9=mdb(yve,'FeatureMapUtil/FeatureEList',501);bcb(627,36,fve,O7d);_.yi=function P7d(a){return N7d(this,a)};_.Di=function Q7d(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}break}case 3:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=5;b=new zud(2);wtd(b,this.g);wtd(b,a.zi());this.g=b;return true}break}}break}case 5:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.g,14);c.Fc(a.zi());return true}break}}break}case 4:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=1;this.g=a.zi();return true}break}case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=6;h=new zud(2);wtd(h,this.n);wtd(h,a.Bi());this.n=h;g=OC(GC(WD,1),oje,25,15,[this.o,a.Ci()]);this.g=g;return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.n,14);c.Fc(a.Bi());g=BD(this.g,48);d=KC(WD,oje,25,g.length+1,15,1);$fb(g,0,d,0,g.length);d[g.length]=a.Ci();this.g=d;return true}break}}break}}return false};var K9=mdb(yve,'FeatureMapUtil/FeatureENotificationImpl',627);bcb(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},R7d);_.dl=function S7d(a,b){return q2d(this.c,a,b)};_.el=function T7d(a,b,c){return x2d(this.c,a,b,c)};_.fl=function U7d(a,b,c){return C2d(this.c,a,b,c)};_.gl=function V7d(){return this};_.hl=function W7d(a,b){return K2d(this.c,a,b)};_.il=function X7d(a){return BD(J2d(this.c,this.b,a,false),72).ak()};_.jl=function Y7d(a){return BD(J2d(this.c,this.b,a,false),72).dd()};_.kl=function Z7d(){return this.a};_.ll=function $7d(a){return !R2d(this.c,a)};_.ml=function _7d(a,b){f3d(this.c,a,b)};_.nl=function a8d(a){return g3d(this.c,a)};_.ol=function b8d(a){s3d(this.c,a)};var L9=mdb(yve,'FeatureMapUtil/FeatureFeatureMap',552);bcb(1259,1,zve,c8d);_.Wj=function d8d(a){return J2d(this.b,this.a,-1,a)};_.fj=function e8d(){return !R2d(this.b,this.a)};_.Wb=function f8d(a){f3d(this.b,this.a,a)};_.Xj=function g8d(){D2d(this.b,this.a)};var M9=mdb(yve,'FeatureMapUtil/FeatureValue',1259);var h8d,i8d,j8d,k8d,l8d;var Q9=odb(Iwe,'AnyType');bcb(666,60,Tie,n8d);var R9=mdb(Iwe,'InvalidDatatypeValueException',666);var S9=odb(Iwe,Jwe);var T9=odb(Iwe,Kwe);var U9=odb(Iwe,Lwe);var o8d;var q8d;var s8d,t8d,u8d,v8d,w8d,x8d,y8d,z8d,A8d,B8d,C8d,D8d,E8d,F8d,G8d,H8d,I8d,J8d,K8d,L8d,M8d,N8d,O8d,P8d;bcb(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},R8d);_._g=function S8d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;}return bid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function T8d(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new u3d(this,0)),B2d(this.c,a,c);case 1:return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),69)).mk(a,c);case 2:return !this.b&&(this.b=new u3d(this,2)),B2d(this.b,a,c);}return d=BD(XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd(this.zh()),a,c)};_.lh=function U8d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;}return cid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function V8d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;}did(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function W8d(){return Q8d(),s8d};_.Bh=function X8d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;}eid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function Y8d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.c);a.a+=', anyAttribute: ';Dfb(a,this.b);a.a+=')';return a.a};var V9=mdb(Mwe,'AnyTypeImpl',830);bcb(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},_8d);_._g=function a9d(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return bid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function b9d(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return cid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function c9d(a,b){switch(a){case 0:Z8d(this,GD(b));return;case 1:$8d(this,GD(b));return;}did(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function d9d(){return Q8d(),F8d};_.Bh=function e9d(a){switch(a){case 0:this.a=null;return;case 1:this.b=null;return;}eid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function f9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (data: ';Efb(a,this.a);a.a+=', target: ';Efb(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var W9=mdb(Mwe,'ProcessingInstructionImpl',667);bcb(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},i9d);_._g=function j9d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true));case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))));case 5:return this.a;}return bid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function k9d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))!=null;case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))))!=null;case 5:return !!this.a;}return cid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function l9d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;case 3:h9d(this,GD(b));return;case 4:h9d(this,h6d(this.a,b));return;case 5:g9d(this,BD(b,148));return;}did(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function m9d(){return Q8d(),H8d};_.Bh=function n9d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;case 3:!this.c&&(this.c=new u3d(this,0));f3d(this.c,(Q8d(),I8d),null);return;case 4:h9d(this,h6d(this.a,null));return;case 5:this.a=null;return;}eid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};var X9=mdb(Mwe,'SimpleAnyTypeImpl',668);bcb(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},o9d);_._g=function p9d(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new u3d(this,0)),this.a;return !this.a&&(this.a=new u3d(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),this.b):(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),FAd(this.b));case 2:return c?(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),this.c):(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),FAd(this.c));case 3:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),L8d));case 4:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),M8d));case 5:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),O8d));case 6:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),P8d));}return bid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function q9d(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new u3d(this,0)),B2d(this.a,a,c);case 1:return !this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),bId(this.b,a,c);case 2:return !this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),bId(this.c,a,c);case 5:return !this.a&&(this.a=new u3d(this,0)),c7d(T2d(this.a,(Q8d(),O8d)),a,c);}return d=BD(XKd((this.j&2)==0?(Q8d(),K8d):(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd((Q8d(),K8d)),a,c)};_.lh=function r9d(a){switch(a){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 u3d(this,0)),!e7d(T2d(this.a,(Q8d(),L8d)));case 4:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),M8d)));case 5:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),O8d)));case 6:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),P8d)));}return cid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function s9d(a,b){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));d3d(this.a,b);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));cId(this.b,b);return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));cId(this.c,b);return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,L8d),BD(b,14));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,M8d),BD(b,14));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,O8d),BD(b,14));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,P8d),BD(b,14));return;}did(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function t9d(){return Q8d(),K8d};_.Bh=function u9d(a){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));Uxd(this.a);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));return;}eid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function v9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.a);a.a+=')';return a.a};var Y9=mdb(Mwe,'XMLTypeDocumentRootImpl',669);bcb(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},U9d);_.Ih=function V9d(a,b){switch(a.yj()){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 b==null?null:fcb(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return GD(b);case 6:return C9d(BD(b,190));case 12:case 47:case 49:case 11:return Vmd(this,a,b);case 13:return b==null?null:qgb(BD(b,240));case 15:case 14:return b==null?null:D9d(Edb(ED(b)));case 17:return E9d((Q8d(),b));case 18:return E9d(b);case 21:case 20:return b==null?null:F9d(BD(b,155).a);case 27:return G9d(BD(b,190));case 30:return H9d((Q8d(),BD(b,15)));case 31:return H9d(BD(b,15));case 40:return K9d((Q8d(),b));case 42:return I9d((Q8d(),b));case 43:return I9d(b);case 59:case 48:return J9d((Q8d(),b));default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function W9d(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=bKd(a),c?HLd(c.Mh(),a):-1)),a.G){case 0:return b=new R8d,b;case 1:return d=new _8d,d;case 2:return e=new i9d,e;case 3:return f=new o9d,f;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function X9d(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.yj()){case 5:case 52:case 4:return b;case 6:return L9d(b);case 8:case 7:return b==null?null:B9d(b);case 9:return b==null?null:Scb(Icb((d=Qge(b,true),d.length>0&&(BCb(0,d.length),d.charCodeAt(0)==43)?d.substr(1):d),-128,127)<<24>>24);case 10:return b==null?null:Scb(Icb((e=Qge(b,true),e.length>0&&(BCb(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e),-128,127)<<24>>24);case 11:return GD(Wmd(this,(Q8d(),w8d),b));case 12:return GD(Wmd(this,(Q8d(),x8d),b));case 13:return b==null?null:new tgb(Qge(b,true));case 15:case 14:return M9d(b);case 16:return GD(Wmd(this,(Q8d(),y8d),b));case 17:return N9d((Q8d(),b));case 18:return N9d(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Qge(b,true);case 21:case 20:return O9d(b);case 22:return GD(Wmd(this,(Q8d(),z8d),b));case 23:return GD(Wmd(this,(Q8d(),A8d),b));case 24:return GD(Wmd(this,(Q8d(),B8d),b));case 25:return GD(Wmd(this,(Q8d(),C8d),b));case 26:return GD(Wmd(this,(Q8d(),D8d),b));case 27:return P9d(b);case 30:return Q9d((Q8d(),b));case 31:return Q9d(b);case 32:return b==null?null:meb(Icb((k=Qge(b,true),k.length>0&&(BCb(0,k.length),k.charCodeAt(0)==43)?k.substr(1):k),Rie,Ohe));case 33:return b==null?null:new Ygb((l=Qge(b,true),l.length>0&&(BCb(0,l.length),l.charCodeAt(0)==43)?l.substr(1):l));case 34:return b==null?null:meb(Icb((m=Qge(b,true),m.length>0&&(BCb(0,m.length),m.charCodeAt(0)==43)?m.substr(1):m),Rie,Ohe));case 36:return b==null?null:Aeb(Jcb((n=Qge(b,true),n.length>0&&(BCb(0,n.length),n.charCodeAt(0)==43)?n.substr(1):n)));case 37:return b==null?null:Aeb(Jcb((o=Qge(b,true),o.length>0&&(BCb(0,o.length),o.charCodeAt(0)==43)?o.substr(1):o)));case 40:return T9d((Q8d(),b));case 42:return R9d((Q8d(),b));case 43:return R9d(b);case 44:return b==null?null:new Ygb((p=Qge(b,true),p.length>0&&(BCb(0,p.length),p.charCodeAt(0)==43)?p.substr(1):p));case 45:return b==null?null:new Ygb((q=Qge(b,true),q.length>0&&(BCb(0,q.length),q.charCodeAt(0)==43)?q.substr(1):q));case 46:return Qge(b,false);case 47:return GD(Wmd(this,(Q8d(),E8d),b));case 59:case 48:return S9d((Q8d(),b));case 49:return GD(Wmd(this,(Q8d(),G8d),b));case 50:return b==null?null:Web(Icb((r=Qge(b,true),r.length>0&&(BCb(0,r.length),r.charCodeAt(0)==43)?r.substr(1):r),awe,32767)<<16>>16);case 51:return b==null?null:Web(Icb((f=Qge(b,true),f.length>0&&(BCb(0,f.length),f.charCodeAt(0)==43)?f.substr(1):f),awe,32767)<<16>>16);case 53:return GD(Wmd(this,(Q8d(),J8d),b));case 55:return b==null?null:Web(Icb((g=Qge(b,true),g.length>0&&(BCb(0,g.length),g.charCodeAt(0)==43)?g.substr(1):g),awe,32767)<<16>>16);case 56:return b==null?null:Web(Icb((h=Qge(b,true),h.length>0&&(BCb(0,h.length),h.charCodeAt(0)==43)?h.substr(1):h),awe,32767)<<16>>16);case 57:return b==null?null:Aeb(Jcb((i=Qge(b,true),i.length>0&&(BCb(0,i.length),i.charCodeAt(0)==43)?i.substr(1):i)));case 58:return b==null?null:Aeb(Jcb((j=Qge(b,true),j.length>0&&(BCb(0,j.length),j.charCodeAt(0)==43)?j.substr(1):j)));case 60:return b==null?null:meb(Icb((c=Qge(b,true),c.length>0&&(BCb(0,c.length),c.charCodeAt(0)==43)?c.substr(1):c),Rie,Ohe));case 61:return b==null?null:meb(Icb(Qge(b,true),Rie,Ohe));default:throw vbb(new Wdb(tte+a.ne()+ute));}};var w9d,x9d,y9d,z9d;var Z9=mdb(Mwe,'XMLTypeFactoryImpl',1919);bcb(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},cae);_.N=false;_.O=false;var Z9d=false;var Yab=mdb(Mwe,'XMLTypePackageImpl',586);bcb(1852,1,{837:1},fae);_._j=function gae(){return Uge(),Tge};var iab=mdb(Mwe,'XMLTypePackageImpl/1',1852);bcb(1861,1,nwe,hae);_.wj=function iae(a){return ND(a)};_.xj=function jae(a){return KC(ZI,nie,2,a,6,1)};var $9=mdb(Mwe,'XMLTypePackageImpl/10',1861);bcb(1862,1,nwe,kae);_.wj=function lae(a){return ND(a)};_.xj=function mae(a){return KC(ZI,nie,2,a,6,1)};var _9=mdb(Mwe,'XMLTypePackageImpl/11',1862);bcb(1863,1,nwe,nae);_.wj=function oae(a){return ND(a)};_.xj=function pae(a){return KC(ZI,nie,2,a,6,1)};var aab=mdb(Mwe,'XMLTypePackageImpl/12',1863);bcb(1864,1,nwe,qae);_.wj=function rae(a){return LD(a)};_.xj=function sae(a){return KC(BI,nie,333,a,7,1)};var bab=mdb(Mwe,'XMLTypePackageImpl/13',1864);bcb(1865,1,nwe,tae);_.wj=function uae(a){return ND(a)};_.xj=function vae(a){return KC(ZI,nie,2,a,6,1)};var cab=mdb(Mwe,'XMLTypePackageImpl/14',1865);bcb(1866,1,nwe,wae);_.wj=function xae(a){return JD(a,15)};_.xj=function yae(a){return KC(yK,eme,15,a,0,1)};var dab=mdb(Mwe,'XMLTypePackageImpl/15',1866);bcb(1867,1,nwe,zae);_.wj=function Aae(a){return JD(a,15)};_.xj=function Bae(a){return KC(yK,eme,15,a,0,1)};var eab=mdb(Mwe,'XMLTypePackageImpl/16',1867);bcb(1868,1,nwe,Cae);_.wj=function Dae(a){return ND(a)};_.xj=function Eae(a){return KC(ZI,nie,2,a,6,1)};var fab=mdb(Mwe,'XMLTypePackageImpl/17',1868);bcb(1869,1,nwe,Fae);_.wj=function Gae(a){return JD(a,155)};_.xj=function Hae(a){return KC(FI,nie,155,a,0,1)};var gab=mdb(Mwe,'XMLTypePackageImpl/18',1869);bcb(1870,1,nwe,Iae);_.wj=function Jae(a){return ND(a)};_.xj=function Kae(a){return KC(ZI,nie,2,a,6,1)};var hab=mdb(Mwe,'XMLTypePackageImpl/19',1870);bcb(1853,1,nwe,Lae);_.wj=function Mae(a){return JD(a,843)};_.xj=function Nae(a){return KC(Q9,Uhe,843,a,0,1)};var tab=mdb(Mwe,'XMLTypePackageImpl/2',1853);bcb(1871,1,nwe,Oae);_.wj=function Pae(a){return ND(a)};_.xj=function Qae(a){return KC(ZI,nie,2,a,6,1)};var jab=mdb(Mwe,'XMLTypePackageImpl/20',1871);bcb(1872,1,nwe,Rae);_.wj=function Sae(a){return ND(a)};_.xj=function Tae(a){return KC(ZI,nie,2,a,6,1)};var kab=mdb(Mwe,'XMLTypePackageImpl/21',1872);bcb(1873,1,nwe,Uae);_.wj=function Vae(a){return ND(a)};_.xj=function Wae(a){return KC(ZI,nie,2,a,6,1)};var lab=mdb(Mwe,'XMLTypePackageImpl/22',1873);bcb(1874,1,nwe,Xae);_.wj=function Yae(a){return ND(a)};_.xj=function Zae(a){return KC(ZI,nie,2,a,6,1)};var mab=mdb(Mwe,'XMLTypePackageImpl/23',1874);bcb(1875,1,nwe,$ae);_.wj=function _ae(a){return JD(a,190)};_.xj=function abe(a){return KC(SD,nie,190,a,0,2)};var nab=mdb(Mwe,'XMLTypePackageImpl/24',1875);bcb(1876,1,nwe,bbe);_.wj=function cbe(a){return ND(a)};_.xj=function dbe(a){return KC(ZI,nie,2,a,6,1)};var oab=mdb(Mwe,'XMLTypePackageImpl/25',1876);bcb(1877,1,nwe,ebe);_.wj=function fbe(a){return ND(a)};_.xj=function gbe(a){return KC(ZI,nie,2,a,6,1)};var pab=mdb(Mwe,'XMLTypePackageImpl/26',1877);bcb(1878,1,nwe,hbe);_.wj=function ibe(a){return JD(a,15)};_.xj=function jbe(a){return KC(yK,eme,15,a,0,1)};var qab=mdb(Mwe,'XMLTypePackageImpl/27',1878);bcb(1879,1,nwe,kbe);_.wj=function lbe(a){return JD(a,15)};_.xj=function mbe(a){return KC(yK,eme,15,a,0,1)};var rab=mdb(Mwe,'XMLTypePackageImpl/28',1879);bcb(1880,1,nwe,nbe);_.wj=function obe(a){return ND(a)};_.xj=function pbe(a){return KC(ZI,nie,2,a,6,1)};var sab=mdb(Mwe,'XMLTypePackageImpl/29',1880);bcb(1854,1,nwe,qbe);_.wj=function rbe(a){return JD(a,667)};_.xj=function sbe(a){return KC(S9,Uhe,2021,a,0,1)};var Eab=mdb(Mwe,'XMLTypePackageImpl/3',1854);bcb(1881,1,nwe,tbe);_.wj=function ube(a){return JD(a,19)};_.xj=function vbe(a){return KC(JI,nie,19,a,0,1)};var uab=mdb(Mwe,'XMLTypePackageImpl/30',1881);bcb(1882,1,nwe,wbe);_.wj=function xbe(a){return ND(a)};_.xj=function ybe(a){return KC(ZI,nie,2,a,6,1)};var vab=mdb(Mwe,'XMLTypePackageImpl/31',1882);bcb(1883,1,nwe,zbe);_.wj=function Abe(a){return JD(a,162)};_.xj=function Bbe(a){return KC(MI,nie,162,a,0,1)};var wab=mdb(Mwe,'XMLTypePackageImpl/32',1883);bcb(1884,1,nwe,Cbe);_.wj=function Dbe(a){return ND(a)};_.xj=function Ebe(a){return KC(ZI,nie,2,a,6,1)};var xab=mdb(Mwe,'XMLTypePackageImpl/33',1884);bcb(1885,1,nwe,Fbe);_.wj=function Gbe(a){return ND(a)};_.xj=function Hbe(a){return KC(ZI,nie,2,a,6,1)};var yab=mdb(Mwe,'XMLTypePackageImpl/34',1885);bcb(1886,1,nwe,Ibe);_.wj=function Jbe(a){return ND(a)};_.xj=function Kbe(a){return KC(ZI,nie,2,a,6,1)};var zab=mdb(Mwe,'XMLTypePackageImpl/35',1886);bcb(1887,1,nwe,Lbe);_.wj=function Mbe(a){return ND(a)};_.xj=function Nbe(a){return KC(ZI,nie,2,a,6,1)};var Aab=mdb(Mwe,'XMLTypePackageImpl/36',1887);bcb(1888,1,nwe,Obe);_.wj=function Pbe(a){return JD(a,15)};_.xj=function Qbe(a){return KC(yK,eme,15,a,0,1)};var Bab=mdb(Mwe,'XMLTypePackageImpl/37',1888);bcb(1889,1,nwe,Rbe);_.wj=function Sbe(a){return JD(a,15)};_.xj=function Tbe(a){return KC(yK,eme,15,a,0,1)};var Cab=mdb(Mwe,'XMLTypePackageImpl/38',1889);bcb(1890,1,nwe,Ube);_.wj=function Vbe(a){return ND(a)};_.xj=function Wbe(a){return KC(ZI,nie,2,a,6,1)};var Dab=mdb(Mwe,'XMLTypePackageImpl/39',1890);bcb(1855,1,nwe,Xbe);_.wj=function Ybe(a){return JD(a,668)};_.xj=function Zbe(a){return KC(T9,Uhe,2022,a,0,1)};var Pab=mdb(Mwe,'XMLTypePackageImpl/4',1855);bcb(1891,1,nwe,$be);_.wj=function _be(a){return ND(a)};_.xj=function ace(a){return KC(ZI,nie,2,a,6,1)};var Fab=mdb(Mwe,'XMLTypePackageImpl/40',1891);bcb(1892,1,nwe,bce);_.wj=function cce(a){return ND(a)};_.xj=function dce(a){return KC(ZI,nie,2,a,6,1)};var Gab=mdb(Mwe,'XMLTypePackageImpl/41',1892);bcb(1893,1,nwe,ece);_.wj=function fce(a){return ND(a)};_.xj=function gce(a){return KC(ZI,nie,2,a,6,1)};var Hab=mdb(Mwe,'XMLTypePackageImpl/42',1893);bcb(1894,1,nwe,hce);_.wj=function ice(a){return ND(a)};_.xj=function jce(a){return KC(ZI,nie,2,a,6,1)};var Iab=mdb(Mwe,'XMLTypePackageImpl/43',1894);bcb(1895,1,nwe,kce);_.wj=function lce(a){return ND(a)};_.xj=function mce(a){return KC(ZI,nie,2,a,6,1)};var Jab=mdb(Mwe,'XMLTypePackageImpl/44',1895);bcb(1896,1,nwe,nce);_.wj=function oce(a){return JD(a,184)};_.xj=function pce(a){return KC(UI,nie,184,a,0,1)};var Kab=mdb(Mwe,'XMLTypePackageImpl/45',1896);bcb(1897,1,nwe,qce);_.wj=function rce(a){return ND(a)};_.xj=function sce(a){return KC(ZI,nie,2,a,6,1)};var Lab=mdb(Mwe,'XMLTypePackageImpl/46',1897);bcb(1898,1,nwe,tce);_.wj=function uce(a){return ND(a)};_.xj=function vce(a){return KC(ZI,nie,2,a,6,1)};var Mab=mdb(Mwe,'XMLTypePackageImpl/47',1898);bcb(1899,1,nwe,wce);_.wj=function xce(a){return ND(a)};_.xj=function yce(a){return KC(ZI,nie,2,a,6,1)};var Nab=mdb(Mwe,'XMLTypePackageImpl/48',1899);bcb(nje,1,nwe,zce);_.wj=function Ace(a){return JD(a,184)};_.xj=function Bce(a){return KC(UI,nie,184,a,0,1)};var Oab=mdb(Mwe,'XMLTypePackageImpl/49',nje);bcb(1856,1,nwe,Cce);_.wj=function Dce(a){return JD(a,669)};_.xj=function Ece(a){return KC(U9,Uhe,2023,a,0,1)};var Tab=mdb(Mwe,'XMLTypePackageImpl/5',1856);bcb(1901,1,nwe,Fce);_.wj=function Gce(a){return JD(a,162)};_.xj=function Hce(a){return KC(MI,nie,162,a,0,1)};var Qab=mdb(Mwe,'XMLTypePackageImpl/50',1901);bcb(1902,1,nwe,Ice);_.wj=function Jce(a){return ND(a)};_.xj=function Kce(a){return KC(ZI,nie,2,a,6,1)};var Rab=mdb(Mwe,'XMLTypePackageImpl/51',1902);bcb(1903,1,nwe,Lce);_.wj=function Mce(a){return JD(a,19)};_.xj=function Nce(a){return KC(JI,nie,19,a,0,1)};var Sab=mdb(Mwe,'XMLTypePackageImpl/52',1903);bcb(1857,1,nwe,Oce);_.wj=function Pce(a){return ND(a)};_.xj=function Qce(a){return KC(ZI,nie,2,a,6,1)};var Uab=mdb(Mwe,'XMLTypePackageImpl/6',1857);bcb(1858,1,nwe,Rce);_.wj=function Sce(a){return JD(a,190)};_.xj=function Tce(a){return KC(SD,nie,190,a,0,2)};var Vab=mdb(Mwe,'XMLTypePackageImpl/7',1858);bcb(1859,1,nwe,Uce);_.wj=function Vce(a){return KD(a)};_.xj=function Wce(a){return KC(wI,nie,476,a,8,1)};var Wab=mdb(Mwe,'XMLTypePackageImpl/8',1859);bcb(1860,1,nwe,Xce);_.wj=function Yce(a){return JD(a,217)};_.xj=function Zce(a){return KC(xI,nie,217,a,0,1)};var Xab=mdb(Mwe,'XMLTypePackageImpl/9',1860);var $ce,_ce;var fde,gde;var kde;bcb(50,60,Tie,mde);var Zab=mdb(kxe,'RegEx/ParseException',50);bcb(820,1,{},ude);_.sl=function vde(a){return a<this.j&&bfb(this.i,a)==63};_.tl=function wde(){var a,b,c,d,e;if(this.c!=10)throw vbb(new mde(tvd((h0d(),uue))));a=this.a;switch(a){case 101:a=27;break;case 102:a=12;break;case 110:a=10;break;case 114:a=13;break;case 116:a=9;break;case 120:nde(this);if(this.c!=0)throw vbb(new mde(tvd((h0d(),Tue))));if(this.a==123){e=0;c=0;do{nde(this);if(this.c!=0)throw vbb(new mde(tvd((h0d(),Tue))));if((e=yde(this.a))<0)break;if(c>c*16)throw vbb(new mde(tvd((h0d(),Uue))));c=c*16+e}while(true);if(this.a!=125)throw vbb(new mde(tvd((h0d(),Vue))));if(c>lxe)throw vbb(new mde(tvd((h0d(),Wue))));a=c}else{e=0;if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=e;nde(this);if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=c*16+e;a=c}break;case 117:d=0;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;a=b;break;case 118:nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;if(b>lxe)throw vbb(new mde(tvd((h0d(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw vbb(new mde(tvd((h0d(),Xue))));}return a};_.ul=function xde(a){var b,c;switch(a){case 100:c=(this.e&32)==32?Kfe('Nd',true):(wfe(),cfe);break;case 68:c=(this.e&32)==32?Kfe('Nd',false):(wfe(),jfe);break;case 119:c=(this.e&32)==32?Kfe('IsWord',true):(wfe(),sfe);break;case 87:c=(this.e&32)==32?Kfe('IsWord',false):(wfe(),lfe);break;case 115:c=(this.e&32)==32?Kfe('IsSpace',true):(wfe(),nfe);break;case 83:c=(this.e&32)==32?Kfe('IsSpace',false):(wfe(),kfe);break;default:throw vbb(new hz((b=a,mxe+b.toString(16))));}return c};_.vl=function zde(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;nde(this);b=null;if(this.c==0&&this.a==94){nde(this);if(a){k=(wfe(),wfe(),++vfe,new $fe(5))}else{b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);k=(null,++vfe,new $fe(4))}}else{k=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((m=this.c)!=1){if(m==0&&this.a==93&&!e)break;e=false;c=this.a;d=false;if(m==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(k,this.ul(c));d=true;break;case 105:case 73:case 99:case 67:c=this.Ll(k,c);c<0&&(d=true);break;case 112:case 80:l=tde(this,c);if(!l)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(k,l);d=true;break;default:c=this.tl();}}else if(m==20){g=gfb(this.i,58,this.d);if(g<0)throw vbb(new mde(tvd((h0d(),Jue))));h=true;if(bfb(this.i,this.d)==94){++this.d;h=false}f=qfb(this.i,this.d,g);i=Lfe(f,h,(this.e&512)==512);if(!i)throw vbb(new mde(tvd((h0d(),Lue))));Xfe(k,i);d=true;if(g+1>=this.j||bfb(this.i,g+1)!=93)throw vbb(new mde(tvd((h0d(),Jue))));this.d=g+2}nde(this);if(!d){if(this.c!=0||this.a!=45){Ufe(k,c,c)}else{nde(this);if((m=this.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(m==0&&this.a==93){Ufe(k,c,c);Ufe(k,45,45)}else{j=this.a;m==10&&(j=this.tl());nde(this);Ufe(k,c,j)}}}(this.e&zte)==zte&&this.c==0&&this.a==44&&nde(this)}if(this.c==1)throw vbb(new mde(tvd((h0d(),Kue))));if(b){Zfe(b,k);k=b}Yfe(k);Vfe(k);this.b=0;nde(this);return k};_.wl=function Ade(){var a,b,c,d;c=this.vl(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){nde(this);if(this.c!=9)throw vbb(new mde(tvd((h0d(),Que))));b=this.vl(false);if(d==4)Xfe(c,b);else if(a==45)Zfe(c,b);else if(a==38)Wfe(c,b);else throw vbb(new hz('ASSERT'))}else{throw vbb(new mde(tvd((h0d(),Rue))))}}nde(this);return c};_.xl=function Bde(){var a,b;a=this.a-48;b=(wfe(),wfe(),++vfe,new Hge(12,null,a));!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(a));nde(this);return b};_.yl=function Cde(){nde(this);return wfe(),ofe};_.zl=function Dde(){nde(this);return wfe(),mfe};_.Al=function Ede(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Bl=function Fde(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Cl=function Gde(){nde(this);return Ife()};_.Dl=function Hde(){nde(this);return wfe(),qfe};_.El=function Ide(){nde(this);return wfe(),tfe};_.Fl=function Jde(){var a;if(this.d>=this.j||((a=bfb(this.i,this.d++))&65504)!=64)throw vbb(new mde(tvd((h0d(),Eue))));nde(this);return wfe(),wfe(),++vfe,new ige(0,a-64)};_.Gl=function Kde(){nde(this);return Jfe()};_.Hl=function Lde(){nde(this);return wfe(),ufe};_.Il=function Mde(){var a;a=(wfe(),wfe(),++vfe,new ige(0,105));nde(this);return a};_.Jl=function Nde(){nde(this);return wfe(),rfe};_.Kl=function Ode(){nde(this);return wfe(),pfe};_.Ll=function Pde(a,b){return this.tl()};_.Ml=function Qde(){nde(this);return wfe(),hfe};_.Nl=function Rde(){var a,b,c,d,e;if(this.d+1>=this.j)throw vbb(new mde(tvd((h0d(),Bue))));d=-1;b=null;a=bfb(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(d));++this.d;if(bfb(this.i,this.d)!=41)throw vbb(new mde(tvd((h0d(),yue))));++this.d}else{a==63&&--this.d;nde(this);b=qde(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));break;default:throw vbb(new mde(tvd((h0d(),Cue))));}}nde(this);e=rde(this);c=null;if(e.e==2){if(e.em()!=2)throw vbb(new mde(tvd((h0d(),Due))));c=e.am(1);e=e.am(0)}if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return wfe(),wfe(),++vfe,new vge(d,b,e,c)};_.Ol=function Sde(){nde(this);return wfe(),ife};_.Pl=function Tde(){var a;nde(this);a=Cfe(24,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ql=function Ude(){var a;nde(this);a=Cfe(20,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Rl=function Vde(){var a;nde(this);a=Cfe(22,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Sl=function Wde(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d<this.j){b=bfb(this.i,this.d);e=Uee(b);if(e==0)break;a|=e;++this.d}if(this.d>=this.j)throw vbb(new mde(tvd((h0d(),zue))));if(b==45){++this.d;while(this.d<this.j){b=bfb(this.i,this.d);e=Uee(b);if(e==0)break;c|=e;++this.d}if(this.d>=this.j)throw vbb(new mde(tvd((h0d(),zue))))}if(b==58){++this.d;nde(this);d=Dfe(rde(this),a,c);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this)}else if(b==41){++this.d;nde(this);d=Dfe(rde(this),a,c)}else throw vbb(new mde(tvd((h0d(),Aue))));return d};_.Tl=function Xde(){var a;nde(this);a=Cfe(21,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ul=function Yde(){var a;nde(this);a=Cfe(23,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Vl=function Zde(){var a,b;nde(this);a=this.f++;b=Efe(rde(this),a);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return b};_.Wl=function $de(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Xl=function _de(a){nde(this);if(this.c==5){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(9,a)))}else return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function aee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));if(this.c==5){nde(this);Kge(b,(null,ffe));Kge(b,a)}else{Kge(b,a);Kge(b,(null,ffe))}return b};_.Zl=function bee(a){nde(this);if(this.c==5){nde(this);return wfe(),wfe(),++vfe,new lge(9,a)}else return wfe(),wfe(),++vfe,new lge(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var bbb=mdb(kxe,'RegEx/RegexParser',820);bcb(1824,820,{},hee);_.sl=function iee(a){return false};_.tl=function jee(){return eee(this)};_.ul=function lee(a){return fee(a)};_.vl=function mee(a){return gee(this)};_.wl=function nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.xl=function oee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.yl=function pee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.zl=function qee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Al=function ree(){nde(this);return fee(67)};_.Bl=function see(){nde(this);return fee(73)};_.Cl=function tee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Dl=function uee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.El=function vee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Fl=function wee(){nde(this);return fee(99)};_.Gl=function xee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Hl=function yee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Il=function zee(){nde(this);return fee(105)};_.Jl=function Aee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Kl=function Bee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ll=function Cee(a,b){return Xfe(a,fee(b)),-1};_.Ml=function Dee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,94)};_.Nl=function Eee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ol=function Fee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,36)};_.Pl=function Gee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ql=function Hee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Rl=function Iee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Sl=function Jee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Tl=function Kee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ul=function Lee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Vl=function Mee(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Wl=function Nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Xl=function Oee(a){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function Pee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));Kge(b,a);Kge(b,(null,ffe));return b};_.Zl=function Qee(a){nde(this);return wfe(),wfe(),++vfe,new lge(3,a)};var cee=null,dee=null;var $ab=mdb(kxe,'RegEx/ParserForXMLSchema',1824);bcb(117,1,yxe,xfe);_.$l=function yfe(a){throw vbb(new hz('Not supported.'))};_._l=function Gfe(){return -1};_.am=function Hfe(a){return null};_.bm=function Mfe(){return null};_.cm=function Pfe(a){};_.dm=function Qfe(a){};_.em=function Rfe(){return 0};_.Ib=function Sfe(){return this.fm(0)};_.fm=function Tfe(a){return this.e==11?'.':''};_.e=0;var Yee,Zee,$ee,_ee,afe,bfe=null,cfe,dfe=null,efe,ffe,gfe=null,hfe,ife,jfe,kfe,lfe,mfe,nfe,ofe,pfe,qfe,rfe,sfe,tfe,ufe,vfe=0;var lbb=mdb(kxe,'RegEx/Token',117);bcb(136,117,{3:1,136:1,117:1},$fe);_.fm=function bge(a){var b,c,d;if(this.e==4){if(this==efe)c='.';else if(this==cfe)c='\\d';else if(this==sfe)c='\\w';else if(this==nfe)c='\\s';else{d=new Hfb;d.a+='[';for(b=0;b<this.b.length;b+=2){(a&zte)!=0&&b>0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==jfe)c='\\D';else if(this==lfe)c='\\W';else if(this==kfe)c='\\S';else{d=new Hfb;d.a+='[^';for(b=0;b<this.b.length;b+=2){(a&zte)!=0&&b>0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var _ab=mdb(kxe,'RegEx/RangeToken',136);bcb(584,1,{584:1},cge);_.a=0;var abb=mdb(kxe,'RegEx/RegexParser/ReferencePosition',584);bcb(583,1,{3:1,583:1},ege);_.Fb=function fge(a){var b;if(a==null)return false;if(!JD(a,583))return false;b=BD(a,583);return dfb(this.b,b.b)&&this.a==b.a};_.Hb=function gge(){return LCb(this.b+'/'+See(this.a))};_.Ib=function hge(){return this.c.fm(this.a)};_.a=0;var cbb=mdb(kxe,'RegEx/RegularExpression',583);bcb(223,117,yxe,ige);_._l=function jge(){return this.a};_.fm=function kge(a){var b,c,d;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:d='\\'+HD(this.a&aje);break;case 12:d='\\f';break;case 10:d='\\n';break;case 13:d='\\r';break;case 9:d='\\t';break;case 27:d='\\e';break;default:if(this.a>=Tje){c=(b=this.a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+HD(this.a&aje);}break;case 8:this==hfe||this==ife?(d=''+HD(this.a&aje)):(d='\\'+HD(this.a&aje));break;default:d=null;}return d};_.a=0;var dbb=mdb(kxe,'RegEx/Token/CharToken',223);bcb(309,117,yxe,lge);_.am=function mge(a){return this.a};_.cm=function nge(a){this.b=a};_.dm=function oge(a){this.c=a};_.em=function pge(){return 1};_.fm=function qge(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.fm(a)+'*'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}'}else throw vbb(new hz('Token#toString(): CLOSURE '+this.c+She+this.b))}else{if(this.c<0&&this.b<0){b=this.a.fm(a)+'*?'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}?'}else throw vbb(new hz('Token#toString(): NONGREEDYCLOSURE '+this.c+She+this.b))}return b};_.b=0;_.c=0;var ebb=mdb(kxe,'RegEx/Token/ClosureToken',309);bcb(821,117,yxe,rge);_.am=function sge(a){return a==0?this.a:this.b};_.em=function tge(){return 2};_.fm=function uge(a){var b;this.b.e==3&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+'):this.b.e==9&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+?'):(b=this.a.fm(a)+(''+this.b.fm(a)));return b};var fbb=mdb(kxe,'RegEx/Token/ConcatToken',821);bcb(1822,117,yxe,vge);_.am=function wge(a){if(a==0)return this.d;if(a==1)return this.b;throw vbb(new hz('Internal Error: '+a))};_.em=function xge(){return !this.b?1:2};_.fm=function yge(a){var b;this.c>0?(b='(?('+this.c+')'):this.a.e==8?(b='(?('+this.a+')'):(b='(?'+this.a);!this.b?(b+=this.d+')'):(b+=this.d+'|'+this.b+')');return b};_.c=0;var gbb=mdb(kxe,'RegEx/Token/ConditionToken',1822);bcb(1823,117,yxe,zge);_.am=function Age(a){return this.b};_.em=function Bge(){return 1};_.fm=function Cge(a){return '(?'+(this.a==0?'':See(this.a))+(this.c==0?'':See(this.c))+':'+this.b.fm(a)+')'};_.a=0;_.c=0;var hbb=mdb(kxe,'RegEx/Token/ModifierToken',1823);bcb(822,117,yxe,Dge);_.am=function Ege(a){return this.a};_.em=function Fge(){return 1};_.fm=function Gge(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.fm(a)+')'):(b='('+this.a.fm(a)+')');break;case 20:b='(?='+this.a.fm(a)+')';break;case 21:b='(?!'+this.a.fm(a)+')';break;case 22:b='(?<='+this.a.fm(a)+')';break;case 23:b='(?<!'+this.a.fm(a)+')';break;case 24:b='(?>'+this.a.fm(a)+')';}return b};_.b=0;var ibb=mdb(kxe,'RegEx/Token/ParenToken',822);bcb(521,117,{3:1,117:1,521:1},Hge);_.bm=function Ige(){return this.b};_.fm=function Jge(a){return this.e==12?'\\'+this.a:Wee(this.b)};_.a=0;var jbb=mdb(kxe,'RegEx/Token/StringToken',521);bcb(465,117,yxe,Lge);_.$l=function Mge(a){Kge(this,a)};_.am=function Nge(a){return BD(Uvb(this.a,a),117)};_.em=function Oge(){return !this.a?0:this.a.a.c.length};_.fm=function Pge(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=BD(Uvb(this.a,0),117);c=BD(Uvb(this.a,1),117);c.e==3&&c.am(0)==b?(e=b.fm(a)+'+'):c.e==9&&c.am(0)==b?(e=b.fm(a)+'+?'):(e=b.fm(a)+(''+c.fm(a)))}else{f=new Hfb;for(d=0;d<this.a.a.c.length;d++){Efb(f,BD(Uvb(this.a,d),117).fm(a))}e=f.a}return e}if(this.a.a.c.length==2&&BD(Uvb(this.a,1),117).e==7){e=BD(Uvb(this.a,0),117).fm(a)+'?'}else if(this.a.a.c.length==2&&BD(Uvb(this.a,0),117).e==7){e=BD(Uvb(this.a,1),117).fm(a)+'??'}else{f=new Hfb;Efb(f,BD(Uvb(this.a,0),117).fm(a));for(d=1;d<this.a.a.c.length;d++){f.a+='|';Efb(f,BD(Uvb(this.a,d),117).fm(a))}e=f.a}return e};var kbb=mdb(kxe,'RegEx/Token/UnionToken',465);bcb(518,1,{592:1},Rge);_.Ib=function Sge(){return this.a.b};var mbb=mdb(zxe,'XMLTypeUtil/PatternMatcherImpl',518);bcb(1622,1381,{},Vge);var Tge;var nbb=mdb(zxe,'XMLTypeValidator',1622);bcb(264,1,vie,Yge);_.Jc=function Zge(a){reb(this,a)};_.Kc=function $ge(){return (this.b-this.a)*this.c<0?Wge:new she(this)};_.a=0;_.b=0;_.c=0;var Wge;var qbb=mdb(Bxe,'ExclusiveRange',264);bcb(1068,1,jie,dhe);_.Rb=function ehe(a){BD(a,19);_ge()};_.Nb=function fhe(a){Rrb(this,a)};_.Pb=function ihe(){return ahe()};_.Ub=function khe(){return bhe()};_.Wb=function nhe(a){BD(a,19);che()};_.Ob=function ghe(){return false};_.Sb=function hhe(){return false};_.Tb=function jhe(){return -1};_.Vb=function lhe(){return -1};_.Qb=function mhe(){throw vbb(new cgb(Exe))};var obb=mdb(Bxe,'ExclusiveRange/1',1068);bcb(254,1,jie,she);_.Rb=function the(a){BD(a,19);ohe()};_.Nb=function uhe(a){Rrb(this,a)};_.Pb=function xhe(){return phe(this)};_.Ub=function zhe(){return qhe(this)};_.Wb=function Che(a){BD(a,19);rhe()};_.Ob=function vhe(){return this.c.c<0?this.a>=this.c.b:this.a<=this.c.b};_.Sb=function whe(){return this.b>0};_.Tb=function yhe(){return this.b};_.Vb=function Ahe(){return this.b-1};_.Qb=function Bhe(){throw vbb(new cgb(Exe))};_.a=0;_.b=0;var pbb=mdb(Bxe,'ExclusiveRange/RangeIterator',254);var TD=pdb(Fve,'C');var WD=pdb(Ive,'I');var sbb=pdb(Khe,'Z');var XD=pdb(Jve,'J');var SD=pdb(Eve,'B');var UD=pdb(Gve,'D');var VD=pdb(Hve,'F');var rbb=pdb(Kve,'S');var h1=odb('org.eclipse.elk.core.labels','ILabelManager');var O4=odb(Tte,'DiagnosticChain');var u8=odb(pwe,'ResourceSet');var V4=mdb(Tte,'InvocationTargetException',null);var Ihe=(Az(),Dz);var gwtOnLoad=gwtOnLoad=Zbb;Xbb(hcb);$bb('permProps',[[[Fxe,Gxe],[Hxe,'gecko1_8']],[[Fxe,Gxe],[Hxe,'ie10']],[[Fxe,Gxe],[Hxe,'ie8']],[[Fxe,Gxe],[Hxe,'ie9']],[[Fxe,Gxe],[Hxe,'safari']]]); +// -------------- RUN GWT INITIALIZATION CODE -------------- +gwtOnLoad(null, 'elk', null); + +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],3:[function(require,module,exports){ +'use strict'; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/******************************************************************************* + * Copyright (c) 2021 Kiel University and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +var ELK = require('./elk-api.js').default; + +var ELKNode = function (_ELK) { + _inherits(ELKNode, _ELK); + + function ELKNode() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, ELKNode); + + var optionsClone = Object.assign({}, options); + + var workerThreadsExist = false; + try { + require.resolve('web-worker'); + workerThreadsExist = true; + } catch (e) {} + + // user requested a worker + if (options.workerUrl) { + if (workerThreadsExist) { + var Worker = require('web-worker'); + optionsClone.workerFactory = function (url) { + return new Worker(url); + }; + } else { + console.warn('Web worker requested but \'web-worker\' package not installed. \nConsider installing the package or pass your own \'workerFactory\' to ELK\'s constructor.\n... Falling back to non-web worker version.'); + } + } + + // unless no other workerFactory is registered, use the fake worker + if (!optionsClone.workerFactory) { + var _require = require('./elk-worker.min.js'), + _Worker = _require.Worker; + + optionsClone.workerFactory = function (url) { + return new _Worker(url); + }; + } + + return _possibleConstructorReturn(this, (ELKNode.__proto__ || Object.getPrototypeOf(ELKNode)).call(this, optionsClone)); + } + + return ELKNode; +}(ELK); + +Object.defineProperty(module.exports, "__esModule", { + value: true +}); +module.exports = ELKNode; +ELKNode.default = ELKNode; +},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(require,module,exports){ +/** + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +module.exports = Worker; +},{}]},{},[3])(3) +}); + + +/***/ }), + +/***/ 19487: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "diagram": () => (/* binding */ diagram) +/* harmony export */ }); +/* harmony import */ var _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(87115); +/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59373); +/* harmony import */ var dagre_d3_es_src_dagre_js_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(43349); +/* harmony import */ var elkjs_lib_elk_bundled_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17295); +/* harmony import */ var elkjs_lib_elk_bundled_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(elkjs_lib_elk_bundled_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27484); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17967); +/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20683); +/* harmony import */ var dagre_d3_es_src_dagre_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(70277); +/* harmony import */ var dagre_d3_es_src_graphlib_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(45625); +/* harmony import */ var dagre_d3_es_src_graphlib_json_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(39354); +/* harmony import */ var dagre_d3_es__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(91518); +/* harmony import */ var dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(59542); +/* harmony import */ var dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_9__); +/* harmony import */ var dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(10285); +/* harmony import */ var dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_10__); +/* harmony import */ var dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(28734); +/* harmony import */ var dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_11__); + + + + + + + + + + + + + + + + + + + + + + + +const findCommonAncestor = (id1, id2, treeData) => { + const { parentById } = treeData; + const visited = /* @__PURE__ */ new Set(); + let currentId = id1; + while (currentId) { + visited.add(currentId); + if (currentId === id2) { + return currentId; + } + currentId = parentById[currentId]; + } + currentId = id2; + while (currentId) { + if (visited.has(currentId)) { + return currentId; + } + currentId = parentById[currentId]; + } + return "root"; +}; +const elk = new (elkjs_lib_elk_bundled_js__WEBPACK_IMPORTED_MODULE_1___default())(); +const portPos = {}; +const conf = {}; +let nodeDb = {}; +const addVertices = function(vert, svgId, root, doc, diagObj, parentLookupDb, graph) { + const svg = root.select(`[id="${svgId}"]`); + const nodes = svg.insert("g").attr("class", "nodes"); + const keys = Object.keys(vert); + keys.forEach(function(id) { + const vertex = vert[id]; + let classStr = "default"; + if (vertex.classes.length > 0) { + classStr = vertex.classes.join(" "); + } + const styles2 = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.a)(vertex.styles); + let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id; + let vertexNode; + const labelData = { width: 0, height: 0 }; + if ((0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.e)((0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.g)().flowchart.htmlLabels)) { + const node2 = { + label: vertexText.replace( + /fa[blrs]?:fa-[\w-]+/g, + (s) => `<i class='${s.replace(":", " ")}'></i>` + ) + }; + vertexNode = (0,dagre_d3_es_src_dagre_js_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_13__/* .addHtmlLabel */ .a)(svg, node2).node(); + const bbox = vertexNode.getBBox(); + labelData.width = bbox.width; + labelData.height = bbox.height; + labelData.labelNode = vertexNode; + vertexNode.parentNode.removeChild(vertexNode); + } else { + const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text"); + svgLabel.setAttribute("style", styles2.labelStyle.replace("color:", "fill:")); + const rows = vertexText.split(_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.c.lineBreakRegex); + for (const row of rows) { + const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan"); + tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"); + tspan.setAttribute("dy", "1em"); + tspan.setAttribute("x", "1"); + tspan.textContent = row; + svgLabel.appendChild(tspan); + } + vertexNode = svgLabel; + const bbox = vertexNode.getBBox(); + labelData.width = bbox.width; + labelData.height = bbox.height; + labelData.labelNode = vertexNode; + } + const ports = [ + { + id: vertex.id + "-west", + layoutOptions: { + "port.side": "WEST" + } + }, + { + id: vertex.id + "-east", + layoutOptions: { + "port.side": "EAST" + } + }, + { + id: vertex.id + "-south", + layoutOptions: { + "port.side": "SOUTH" + } + }, + { + id: vertex.id + "-north", + layoutOptions: { + "port.side": "NORTH" + } + } + ]; + let radious = 0; + let _shape = ""; + let layoutOptions = {}; + switch (vertex.type) { + case "round": + radious = 5; + _shape = "rect"; + break; + case "square": + _shape = "rect"; + break; + case "diamond": + _shape = "question"; + layoutOptions = { + portConstraints: "FIXED_SIDE" + }; + break; + case "hexagon": + _shape = "hexagon"; + break; + case "odd": + _shape = "rect_left_inv_arrow"; + break; + case "lean_right": + _shape = "lean_right"; + break; + case "lean_left": + _shape = "lean_left"; + break; + case "trapezoid": + _shape = "trapezoid"; + break; + case "inv_trapezoid": + _shape = "inv_trapezoid"; + break; + case "odd_right": + _shape = "rect_left_inv_arrow"; + break; + case "circle": + _shape = "circle"; + break; + case "ellipse": + _shape = "ellipse"; + break; + case "stadium": + _shape = "stadium"; + break; + case "subroutine": + _shape = "subroutine"; + break; + case "cylinder": + _shape = "cylinder"; + break; + case "group": + _shape = "rect"; + break; + case "doublecircle": + _shape = "doublecircle"; + break; + default: + _shape = "rect"; + } + const node = { + labelStyle: styles2.labelStyle, + shape: _shape, + labelText: vertexText, + rx: radious, + ry: radious, + class: classStr, + style: styles2.style, + id: vertex.id, + link: vertex.link, + linkTarget: vertex.linkTarget, + tooltip: diagObj.db.getTooltip(vertex.id) || "", + domId: diagObj.db.lookUpDomId(vertex.id), + haveCallback: vertex.haveCallback, + width: vertex.type === "group" ? 500 : void 0, + dir: vertex.dir, + type: vertex.type, + props: vertex.props, + padding: (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.g)().flowchart.padding + }; + let boundingBox; + let nodeEl; + if (node.type !== "group") { + nodeEl = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.b)(nodes, node, vertex.dir); + boundingBox = nodeEl.node().getBBox(); + } + const data = { + id: vertex.id, + ports: vertex.type === "diamond" ? ports : [], + // labelStyle: styles.labelStyle, + // shape: _shape, + layoutOptions, + labelText: vertexText, + labelData, + // labels: [{ text: vertexText }], + // rx: radius, + // ry: radius, + // class: classStr, + // style: styles.style, + // link: vertex.link, + // linkTarget: vertex.linkTarget, + // tooltip: diagObj.db.getTooltip(vertex.id) || '', + domId: diagObj.db.lookUpDomId(vertex.id), + // haveCallback: vertex.haveCallback, + width: boundingBox == null ? void 0 : boundingBox.width, + height: boundingBox == null ? void 0 : boundingBox.height, + // dir: vertex.dir, + type: vertex.type, + // props: vertex.props, + // padding: getConfig().flowchart.padding, + // boundingBox, + el: nodeEl, + parent: parentLookupDb.parentById[vertex.id] + }; + nodeDb[node.id] = data; + }); + return graph; +}; +const getNextPosition = (position, edgeDirection, graphDirection) => { + const portPos2 = { + 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" + } + } + }; + portPos2.TD = portPos2.TB; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("abc88", graphDirection, edgeDirection, position); + return portPos2[graphDirection][edgeDirection][position]; +}; +const getNextPort = (node, edgeDirection, graphDirection) => { + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("getNextPort abc88", { node, edgeDirection, graphDirection }); + if (!portPos[node]) { + switch (graphDirection) { + case "TB": + case "TD": + portPos[node] = { + inPosition: "north", + outPosition: "south" + }; + break; + case "BT": + portPos[node] = { + inPosition: "south", + outPosition: "north" + }; + break; + case "RL": + portPos[node] = { + inPosition: "east", + outPosition: "west" + }; + break; + case "LR": + portPos[node] = { + inPosition: "west", + outPosition: "east" + }; + break; + } + } + const result = edgeDirection === "in" ? portPos[node].inPosition : portPos[node].outPosition; + if (edgeDirection === "in") { + portPos[node].inPosition = getNextPosition( + portPos[node].inPosition, + edgeDirection, + graphDirection + ); + } else { + portPos[node].outPosition = getNextPosition( + portPos[node].outPosition, + edgeDirection, + graphDirection + ); + } + return result; +}; +const getEdgeStartEndPoint = (edge, dir) => { + let source = edge.start; + let target = edge.end; + const startNode = nodeDb[source]; + const endNode = nodeDb[target]; + if (!startNode || !endNode) { + return { source, target }; + } + if (startNode.type === "diamond") { + source = `${source}-${getNextPort(source, "out", dir)}`; + } + if (endNode.type === "diamond") { + target = `${target}-${getNextPort(target, "in", dir)}`; + } + return { source, target }; +}; +const addEdges = function(edges, diagObj, graph, svg) { + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("abc78 edges = ", edges); + const labelsEl = svg.insert("g").attr("class", "edgeLabels"); + let linkIdCnt = {}; + let dir = diagObj.db.getDirection(); + let defaultStyle; + let defaultLabelStyle; + if (edges.defaultStyle !== void 0) { + const defaultStyles = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.a)(edges.defaultStyle); + defaultStyle = defaultStyles.style; + defaultLabelStyle = defaultStyles.labelStyle; + } + edges.forEach(function(edge) { + var linkIdBase = "L-" + edge.start + "-" + edge.end; + if (linkIdCnt[linkIdBase] === void 0) { + linkIdCnt[linkIdBase] = 0; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]); + } else { + linkIdCnt[linkIdBase]++; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]); + } + let linkId = linkIdBase + "-" + linkIdCnt[linkIdBase]; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("abc78 new link id to be used is", linkIdBase, linkId, linkIdCnt[linkIdBase]); + var linkNameStart = "LS-" + edge.start; + var linkNameEnd = "LE-" + edge.end; + const edgeData = { style: "", labelStyle: "" }; + edgeData.minlen = edge.length || 1; + if (edge.type === "arrow_open") { + edgeData.arrowhead = "none"; + } else { + edgeData.arrowhead = "normal"; + } + edgeData.arrowTypeStart = "arrow_open"; + edgeData.arrowTypeEnd = "arrow_open"; + switch (edge.type) { + case "double_arrow_cross": + edgeData.arrowTypeStart = "arrow_cross"; + case "arrow_cross": + edgeData.arrowTypeEnd = "arrow_cross"; + break; + case "double_arrow_point": + edgeData.arrowTypeStart = "arrow_point"; + case "arrow_point": + edgeData.arrowTypeEnd = "arrow_point"; + break; + case "double_arrow_circle": + edgeData.arrowTypeStart = "arrow_circle"; + case "arrow_circle": + edgeData.arrowTypeEnd = "arrow_circle"; + break; + } + let style = ""; + let labelStyle = ""; + switch (edge.stroke) { + case "normal": + style = "fill:none;"; + if (defaultStyle !== void 0) { + style = defaultStyle; + } + if (defaultLabelStyle !== void 0) { + labelStyle = defaultLabelStyle; + } + edgeData.thickness = "normal"; + edgeData.pattern = "solid"; + break; + case "dotted": + edgeData.thickness = "normal"; + edgeData.pattern = "dotted"; + edgeData.style = "fill:none;stroke-width:2px;stroke-dasharray:3;"; + break; + case "thick": + edgeData.thickness = "thick"; + edgeData.pattern = "solid"; + edgeData.style = "stroke-width: 3.5px;fill:none;"; + break; + } + if (edge.style !== void 0) { + const styles2 = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.a)(edge.style); + style = styles2.style; + labelStyle = styles2.labelStyle; + } + edgeData.style = edgeData.style += style; + edgeData.labelStyle = edgeData.labelStyle += labelStyle; + if (edge.interpolate !== void 0) { + edgeData.curve = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.d)(edge.interpolate, d3__WEBPACK_IMPORTED_MODULE_0__/* .curveLinear */ .c_6); + } else if (edges.defaultInterpolate !== void 0) { + edgeData.curve = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.d)(edges.defaultInterpolate, d3__WEBPACK_IMPORTED_MODULE_0__/* .curveLinear */ .c_6); + } else { + edgeData.curve = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.d)(conf.curve, d3__WEBPACK_IMPORTED_MODULE_0__/* .curveLinear */ .c_6); + } + if (edge.text === void 0) { + if (edge.style !== void 0) { + edgeData.arrowheadStyle = "fill: #333"; + } + } else { + edgeData.arrowheadStyle = "fill: #333"; + edgeData.labelpos = "c"; + } + edgeData.labelType = "text"; + edgeData.label = edge.text.replace(_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.c.lineBreakRegex, "\n"); + if (edge.style === void 0) { + edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none;"; + } + edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:"); + edgeData.id = linkId; + edgeData.classes = "flowchart-link " + linkNameStart + " " + linkNameEnd; + const labelEl = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.f)(labelsEl, edgeData); + const { source, target } = getEdgeStartEndPoint(edge, dir); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.debug("abc78 source and target", source, target); + graph.edges.push({ + id: "e" + edge.start + edge.end, + sources: [source], + targets: [target], + labelEl, + labels: [ + { + width: edgeData.width, + height: edgeData.height, + orgWidth: edgeData.width, + orgHeight: edgeData.height, + text: edgeData.label, + layoutOptions: { + "edgeLabels.inline": "true", + "edgeLabels.placement": "CENTER" + } + } + ], + edgeData + }); + }); + return graph; +}; +const addMarkersToEdge = function(svgPath, edgeData, diagramType, arrowMarkerAbsolute) { + let url = ""; + if (arrowMarkerAbsolute) { + url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\(/g, "\\("); + url = url.replace(/\)/g, "\\)"); + } + switch (edgeData.arrowTypeStart) { + case "arrow_cross": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-crossStart)"); + break; + case "arrow_point": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-pointStart)"); + break; + case "arrow_barb": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-barbStart)"); + break; + case "arrow_circle": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-circleStart)"); + break; + case "aggregation": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-aggregationStart)"); + break; + case "extension": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-extensionStart)"); + break; + case "composition": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-compositionStart)"); + break; + case "dependency": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-dependencyStart)"); + break; + case "lollipop": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-lollipopStart)"); + break; + } + switch (edgeData.arrowTypeEnd) { + case "arrow_cross": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-crossEnd)"); + break; + case "arrow_point": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-pointEnd)"); + break; + case "arrow_barb": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-barbEnd)"); + break; + case "arrow_circle": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-circleEnd)"); + break; + case "aggregation": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-aggregationEnd)"); + break; + case "extension": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-extensionEnd)"); + break; + case "composition": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-compositionEnd)"); + break; + case "dependency": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-dependencyEnd)"); + break; + case "lollipop": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-lollipopEnd)"); + break; + } +}; +const getClasses = function(text, diagObj) { + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("Extracting classes"); + diagObj.db.clear("ver-2"); + try { + diagObj.parse(text); + return diagObj.db.getClasses(); + } catch (e) { + return {}; + } +}; +const addSubGraphs = function(db2) { + const parentLookupDb = { parentById: {}, childrenById: {} }; + const subgraphs = db2.getSubGraphs(); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("Subgraphs - ", subgraphs); + subgraphs.forEach(function(subgraph) { + subgraph.nodes.forEach(function(node) { + parentLookupDb.parentById[node] = subgraph.id; + if (parentLookupDb.childrenById[subgraph.id] === void 0) { + parentLookupDb.childrenById[subgraph.id] = []; + } + parentLookupDb.childrenById[subgraph.id].push(node); + }); + }); + subgraphs.forEach(function(subgraph) { + ({ id: subgraph.id }); + if (parentLookupDb.parentById[subgraph.id] !== void 0) { + parentLookupDb.parentById[subgraph.id]; + } + }); + return parentLookupDb; +}; +const calcOffset = function(src, dest, parentLookupDb) { + const ancestor = findCommonAncestor(src, dest, parentLookupDb); + if (ancestor === void 0 || ancestor === "root") { + return { x: 0, y: 0 }; + } + const ancestorOffset = nodeDb[ancestor].offset; + return { x: ancestorOffset.posX, y: ancestorOffset.posY }; +}; +const insertEdge = function(edgesEl, edge, edgeData, diagObj, parentLookupDb) { + const offset = calcOffset(edge.sources[0], edge.targets[0], parentLookupDb); + const src = edge.sections[0].startPoint; + const dest = edge.sections[0].endPoint; + const segments = edge.sections[0].bendPoints ? edge.sections[0].bendPoints : []; + const segPoints = segments.map((segment) => [segment.x + offset.x, segment.y + offset.y]); + const points = [ + [src.x + offset.x, src.y + offset.y], + ...segPoints, + [dest.x + offset.x, dest.y + offset.y] + ]; + const curve = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .line */ .jvg)().curve(d3__WEBPACK_IMPORTED_MODULE_0__/* .curveLinear */ .c_6); + const edgePath = edgesEl.insert("path").attr("d", curve(points)).attr("class", "path").attr("fill", "none"); + const edgeG = edgesEl.insert("g").attr("class", "edgeLabel"); + const edgeWithLabel = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)(edgeG.node().appendChild(edge.labelEl)); + const box = edgeWithLabel.node().firstChild.getBoundingClientRect(); + edgeWithLabel.attr("width", box.width); + edgeWithLabel.attr("height", box.height); + edgeG.attr( + "transform", + `translate(${edge.labels[0].x + offset.x}, ${edge.labels[0].y + offset.y})` + ); + addMarkersToEdge(edgePath, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute); +}; +const insertChildren = (nodeArray, parentLookupDb) => { + nodeArray.forEach((node) => { + if (!node.children) { + node.children = []; + } + const childIds = parentLookupDb.childrenById[node.id]; + if (childIds) { + childIds.forEach((childId) => { + node.children.push(nodeDb[childId]); + }); + } + insertChildren(node.children, parentLookupDb); + }); +}; +const draw = async function(text, id, _version, diagObj) { + var _a; + diagObj.db.clear(); + nodeDb = {}; + diagObj.db.setGen("gen-2"); + diagObj.parser.parse(text); + const renderEl = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("body").append("div").attr("style", "height:400px").attr("id", "cy"); + let graph = { + 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.layered.mergeEdges': 'true', + "elk.direction": "DOWN" + // 'elk.ports.sameLayerEdges': true, + // 'nodePlacement.strategy': 'SIMPLE', + }, + children: [], + edges: [] + }; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("Drawing flowchart using v3 renderer", elk); + let dir = diagObj.db.getDirection(); + switch (dir) { + case "BT": + graph.layoutOptions["elk.direction"] = "UP"; + break; + case "TB": + graph.layoutOptions["elk.direction"] = "DOWN"; + break; + case "LR": + graph.layoutOptions["elk.direction"] = "RIGHT"; + break; + case "RL": + graph.layoutOptions["elk.direction"] = "LEFT"; + break; + } + const { securityLevel, flowchart: conf2 } = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.g)(); + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("#i" + id); + } + const root = securityLevel === "sandbox" ? (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("body"); + const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; + const svg = root.select(`[id="${id}"]`); + const markers = ["point", "circle", "cross"]; + (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.i)(svg, markers, diagObj.type, diagObj.arrowMarkerAbsolute); + const vert = diagObj.db.getVertices(); + let subG; + const subGraphs = diagObj.db.getSubGraphs(); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("Subgraphs - ", subGraphs); + for (let i = subGraphs.length - 1; i >= 0; i--) { + subG = subGraphs[i]; + diagObj.db.addVertex(subG.id, subG.title, "group", void 0, subG.classes, subG.dir); + } + const subGraphsEl = svg.insert("g").attr("class", "subgraphs"); + const parentLookupDb = addSubGraphs(diagObj.db); + graph = addVertices(vert, id, root, doc, diagObj, parentLookupDb, graph); + const edgesEl = svg.insert("g").attr("class", "edges edgePath"); + const edges = diagObj.db.getEdges(); + graph = addEdges(edges, diagObj, graph, svg); + const nodes = Object.keys(nodeDb); + nodes.forEach((nodeId) => { + const node = nodeDb[nodeId]; + if (!node.parent) { + graph.children.push(node); + } + if (parentLookupDb.childrenById[nodeId] !== void 0) { + node.labels = [ + { + text: node.labelText, + layoutOptions: { + "nodeLabels.placement": "[H_CENTER, V_TOP, INSIDE]" + }, + width: node.labelData.width, + height: node.labelData.height + } + ]; + delete node.x; + delete node.y; + delete node.width; + delete node.height; + } + }); + insertChildren(graph.children, parentLookupDb); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("after layout", JSON.stringify(graph, null, 2)); + const g = await elk.layout(graph); + drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj, 0); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("after layout", g); + (_a = g.edges) == null ? void 0 : _a.map((edge) => { + insertEdge(edgesEl, edge, edge.edgeData, diagObj, parentLookupDb); + }); + (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.s)({}, svg, conf2.diagramPadding, conf2.useMaxWidth); + renderEl.remove(); +}; +const drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj, depth) => { + nodeArray.forEach(function(node) { + if (node) { + nodeDb[node.id].offset = { + posX: node.x + relX, + posY: node.y + relY, + x: relX, + y: relY, + depth, + width: node.width, + height: node.height + }; + if (node.type === "group") { + const subgraphEl = subgraphsEl.insert("g").attr("class", "subgraph"); + subgraphEl.insert("rect").attr("class", "subgraph subgraph-lvl-" + depth % 5 + " node").attr("x", node.x + relX).attr("y", node.y + relY).attr("width", node.width).attr("height", node.height); + const label = subgraphEl.insert("g").attr("class", "label"); + label.attr( + "transform", + `translate(${node.labels[0].x + relX + node.x}, ${node.labels[0].y + relY + node.y})` + ); + label.node().appendChild(node.labelData.labelNode); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("Id (UGH)= ", node.type, node.labels); + } else { + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("Id (UGH)= ", node.id); + node.el.attr( + "transform", + `translate(${node.x + relX + node.width / 2}, ${node.y + relY + node.height / 2})` + ); + } + } + }); + nodeArray.forEach(function(node) { + if (node && node.type === "group") { + drawNodes(relX + node.x, relY + node.y, node.children, svg, subgraphsEl, diagObj, depth + 1); + } + }); +}; +const renderer = { + getClasses, + draw +}; +const genSections = (options) => { + let sections = ""; + for (let i = 0; i < 5; i++) { + sections += ` + .subgraph-lvl-${i} { + fill: ${options[`surface${i}`]}; + stroke: ${options[`surfacePeer${i}`]}; + } + `; + } + return sections; +}; +const getStyles = (options) => `.label { + font-family: ${options.fontFamily}; + color: ${options.nodeTextColor || options.textColor}; + } + .cluster-label text { + fill: ${options.titleColor}; + } + .cluster-label span { + color: ${options.titleColor}; + } + + .label text,span { + fill: ${options.nodeTextColor || options.textColor}; + color: ${options.nodeTextColor || options.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${options.arrowheadColor}; + } + + .edgePath .path { + stroke: ${options.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${options.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${options.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${options.edgeLabelBackground}; + fill: ${options.edgeLabelBackground}; + } + text-align: center; + } + + .cluster rect { + fill: ${options.clusterBkg}; + stroke: ${options.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${options.titleColor}; + } + + .cluster span { + color: ${options.titleColor}; + } + /* .cluster div { + color: ${options.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${options.fontFamily}; + font-size: 12px; + background: ${options.tertiaryColor}; + border: 1px solid ${options.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${options.textColor}; + } + .subgraph { + stroke-width:2; + rx:3; + } + // .subgraph-lvl-1 { + // fill:#ccc; + // // stroke:black; + // } + ${genSections(options)} +`; +const styles = getStyles; +const diagram = { + db: _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.h, + renderer, + parser: _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.p, + styles +}; + +//# sourceMappingURL=flowchart-elk-definition-170a3958.js.map + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/9487.c9fbf014.js b/assets/js/9487.c9fbf014.js new file mode 100644 index 00000000000..a067a2e604b --- /dev/null +++ b/assets/js/9487.c9fbf014.js @@ -0,0 +1 @@ +(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9487],{17295:(n,t,e)=>{n.exports=function(){function n(t,e,i){function r(a,u){if(!e[a]){if(!t[a]){if(c)return c(a,!0);var o=new Error("Cannot find module '"+a+"'");throw o.code="MODULE_NOT_FOUND",o}var s=e[a]={exports:{}};t[a][0].call(s.exports,(function(n){return r(t[a][1][n]||n)}),s,s.exports,n,t,e,i)}return e[a].exports}for(var c=void 0,a=0;a<i.length;a++)r(i[a]);return r}return n}()({1:[function(n,t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function n(n,t){for(var e=0;e<t.length;e++){var i=t[e];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,i.key,i)}}return function(t,e,i){return e&&n(t.prototype,e),i&&n(t,i),t}}();function r(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}var c=function(){function n(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=e.defaultLayoutOptions,c=void 0===i?{}:i,u=e.algorithms,o=void 0===u?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:u,s=e.workerFactory,h=e.workerUrl;if(r(this,n),this.defaultLayoutOptions=c,this.initialized=!1,void 0===h&&void 0===s)throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var f=s;void 0!==h&&void 0===s&&(f=function(n){return new Worker(n)});var l=f(h);if("function"!=typeof l.postMessage)throw new TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new a(l),this.worker.postMessage({cmd:"register",algorithms:o}).then((function(n){return t.initialized=!0})).catch(console.err)}return i(n,[{key:"layout",value:function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=t.layoutOptions,i=void 0===e?this.defaultLayoutOptions:e,r=t.logging,c=void 0!==r&&r,a=t.measureExecutionTime,u=void 0!==a&&a;return n?this.worker.postMessage({cmd:"layout",graph:n,layoutOptions:i,options:{logging:c,measureExecutionTime:u}}):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.terminate()}}]),n}();e.default=c;var a=function(){function n(t){var e=this;if(r(this,n),void 0===t)throw new Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=t,this.worker.onmessage=function(n){setTimeout((function(){e.receive(e,n)}),0)}}return i(n,[{key:"postMessage",value:function(n){var t=this.id||0;this.id=t+1,n.id=t;var e=this;return new Promise((function(i,r){e.resolvers[t]=function(n,t){n?(e.convertGwtStyleError(n),r(n)):i(t)},e.worker.postMessage(n)}))}},{key:"receive",value:function(n,t){var e=t.data,i=n.resolvers[e.id];i&&(delete n.resolvers[e.id],e.error?i(e.error):i(null,e.data))}},{key:"terminate",value:function(){this.worker.terminate&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(n){if(n){var t=n.__java$exception;t&&(t.cause&&t.cause.backingJsObject&&(n.cause=t.cause.backingJsObject,this.convertGwtStyleError(n.cause)),delete n.__java$exception)}}}]),n}()},{}],2:[function(n,t,i){(function(n){(function(){"use strict";var e;function r(){}function c(){}function a(){}function u(){}function o(){}function s(){}function h(){}function f(){}function l(){}function b(){}function w(){}function d(){}function g(){}function p(){}function v(){}function m(){}function y(){}function k(){}function j(){}function E(){}function T(){}function M(){}function S(){}function P(){}function C(){}function I(){}function O(){}function A(){}function $(){}function L(){}function N(){}function x(){}function D(){}function R(){}function K(){}function _(){}function F(){}function B(){}function H(){}function q(){}function G(){}function z(){}function U(){}function X(){}function W(){}function V(){}function Q(){}function Y(){}function J(){}function Z(){}function nn(){}function tn(){}function en(){}function rn(){}function cn(){}function an(){}function un(){}function on(){}function sn(){}function hn(){}function fn(){}function ln(){}function bn(){}function wn(){}function dn(){}function gn(){}function pn(){}function vn(){}function mn(){}function yn(){}function kn(){}function jn(){}function En(){}function Tn(){}function Mn(){}function Sn(){}function Pn(){}function Cn(){}function In(){}function On(){}function An(){}function $n(){}function Ln(){}function Nn(){}function xn(){}function Dn(){}function Rn(){}function Kn(){}function _n(){}function Fn(){}function Bn(){}function Hn(){}function qn(){}function Gn(){}function zn(){}function Un(){}function Xn(){}function Wn(){}function Vn(){}function Qn(){}function Yn(){}function Jn(){}function Zn(){}function nt(){}function tt(){}function et(){}function it(){}function rt(){}function ct(){}function at(){}function ut(){}function ot(){}function st(){}function ht(){}function ft(){}function lt(){}function bt(){}function wt(){}function dt(){}function gt(){}function pt(){}function vt(){}function mt(){}function yt(){}function kt(){}function jt(){}function Et(){}function Tt(){}function Mt(){}function St(){}function Pt(){}function Ct(){}function It(){}function Ot(){}function At(){}function $t(){}function Lt(){}function Nt(){}function xt(){}function Dt(){}function Rt(){}function Kt(){}function _t(){}function Ft(){}function Bt(){}function Ht(){}function qt(){}function Gt(){}function zt(){}function Ut(){}function Xt(){}function Wt(){}function Vt(){}function Qt(){}function Yt(){}function Jt(){}function Zt(){}function ne(){}function te(){}function ee(){}function ie(){}function re(){}function ce(){}function ae(){}function ue(){}function oe(){}function se(){}function he(){}function fe(){}function le(){}function be(){}function we(){}function de(){}function ge(){}function pe(){}function ve(){}function me(){}function ye(){}function ke(){}function je(){}function Ee(){}function Te(){}function Me(){}function Se(){}function Pe(){}function Ce(){}function Ie(){}function Oe(){}function Ae(){}function $e(){}function Le(){}function Ne(){}function xe(){}function De(){}function Re(){}function Ke(){}function _e(){}function Fe(){}function Be(){}function He(){}function qe(){}function Ge(){}function ze(){}function Ue(){}function Xe(){}function We(){}function Ve(){}function Qe(){}function Ye(){}function Je(){}function Ze(){}function ni(){}function ti(){}function ei(){}function ii(){}function ri(){}function ci(){}function ai(){}function ui(){}function oi(){}function si(){}function hi(){}function fi(){}function li(){}function bi(){}function wi(){}function di(){}function gi(){}function pi(){}function vi(){}function mi(){}function yi(){}function ki(){}function ji(){}function Ei(){}function Ti(){}function Mi(){}function Si(){}function Pi(){}function Ci(){}function Ii(){}function Oi(){}function Ai(){}function $i(){}function Li(){}function Ni(){}function xi(){}function Di(){}function Ri(){}function Ki(){}function _i(){}function Fi(){}function Bi(){}function Hi(){}function qi(){}function Gi(){}function zi(){}function Ui(){}function Xi(){}function Wi(){}function Vi(){}function Qi(){}function Yi(){}function Ji(){}function Zi(){}function nr(){}function tr(){}function er(){}function ir(){}function rr(){}function cr(){}function ar(){}function ur(){}function or(){}function sr(){}function hr(){}function fr(){}function lr(){}function br(){}function wr(){}function dr(){}function gr(){}function pr(){}function vr(){}function mr(){}function yr(){}function kr(){}function jr(){}function Er(){}function Tr(){}function Mr(){}function Sr(){}function Pr(){}function Cr(){}function Ir(){}function Or(){}function Ar(){}function $r(){}function Lr(){}function Nr(){}function xr(){}function Dr(){}function Rr(){}function Kr(){}function _r(){}function Fr(){}function Br(){}function Hr(){}function qr(){}function Gr(){}function zr(){}function Ur(){}function Xr(){}function Wr(){}function Vr(){}function Qr(){}function Yr(){}function Jr(){}function Zr(){}function nc(){}function tc(){}function ec(){}function ic(){}function rc(){}function cc(){}function ac(){}function uc(){}function oc(){}function sc(){}function hc(){}function fc(){}function lc(){}function bc(){}function wc(){}function dc(){}function gc(){}function pc(){}function vc(){}function mc(){}function yc(){}function kc(){}function jc(){}function Ec(){}function Tc(){}function Mc(){}function Sc(){}function Pc(){}function Cc(){}function Ic(){}function Oc(){}function Ac(){}function $c(){}function Lc(){}function Nc(){}function xc(){}function Dc(){}function Rc(){}function Kc(){}function _c(){}function Fc(){}function Bc(){}function Hc(){}function qc(){}function Gc(){}function zc(){}function Uc(){}function Xc(){}function Wc(){}function Vc(){}function Qc(){}function Yc(){}function Jc(){}function Zc(){}function na(){}function ta(){}function ea(){}function ia(){}function ra(){}function ca(){}function aa(){}function ua(){}function oa(){}function sa(){}function ha(){}function fa(){}function la(){}function ba(){}function wa(){}function da(){}function ga(){}function pa(){}function va(){}function ma(){}function ya(){}function ka(){}function ja(){}function Ea(){}function Ta(){}function Ma(){}function Sa(){}function Pa(){}function Ca(){}function Ia(){}function Oa(){}function Aa(){}function $a(){}function La(){}function Na(){}function xa(){}function Da(){}function Ra(){}function Ka(){}function _a(){}function Fa(){}function Ba(){}function Ha(){}function qa(){}function Ga(){}function za(){}function Ua(){}function Xa(){}function Wa(){}function Va(){}function Qa(){}function Ya(){}function Ja(){}function Za(){}function nu(){}function tu(){}function eu(){}function iu(){}function ru(){}function cu(){}function au(){}function uu(){}function ou(){}function su(){}function hu(){}function fu(){}function lu(){}function bu(){}function wu(){}function du(){}function gu(){}function pu(){}function vu(){}function mu(){}function yu(){}function ku(){}function ju(){}function Eu(){}function Tu(){}function Mu(){}function Su(){}function Pu(){}function Cu(){}function Iu(){}function Ou(){}function Au(){}function $u(){}function Lu(){}function Nu(){}function xu(){}function Du(){}function Ru(){}function Ku(){}function _u(){}function Fu(){}function Bu(){}function Hu(){}function qu(){}function Gu(){}function zu(){}function Uu(){}function Xu(){}function Wu(){}function Vu(){}function Qu(){}function Yu(){}function Ju(){}function Zu(){}function no(){}function to(){}function eo(){}function io(){}function ro(){}function co(){}function ao(){}function uo(){}function oo(){}function so(){}function ho(){}function fo(){}function lo(){}function bo(){}function wo(){}function go(){}function po(){}function vo(){}function mo(){}function yo(){}function ko(){}function jo(){}function Eo(){}function To(){}function Mo(){}function So(){}function Po(){}function Co(){}function Io(){}function Oo(){}function Ao(){}function $o(){}function Lo(){}function No(){}function xo(){}function Do(){}function Ro(){}function Ko(){}function _o(){}function Fo(){}function Bo(){}function Ho(){}function qo(){}function Go(){}function zo(){}function Uo(){}function Xo(){}function Wo(){}function Vo(){}function Qo(){}function Yo(){}function Jo(){}function Zo(){}function ns(){}function ts(){}function es(){}function is(){}function rs(){}function cs(){}function as(){}function us(){}function os(){}function ss(){}function hs(){}function fs(){}function ls(){}function bs(){}function ws(){}function ds(){}function gs(){}function ps(){}function vs(){}function ms(){}function ys(){}function ks(){}function js(){}function Es(){}function Ts(){}function Ms(){}function Ss(){}function Ps(){}function Cs(){}function Is(){}function Os(){}function As(){}function $s(){}function Ls(){}function Ns(){}function xs(){}function Ds(){}function Rs(){}function Ks(){}function _s(){}function Fs(){}function Bs(){}function Hs(){}function qs(){}function Gs(){}function zs(){}function Us(){}function Xs(){}function Ws(){}function Vs(){}function Qs(){}function Ys(){}function Js(){}function Zs(){}function nh(){}function th(){}function eh(){}function ih(){}function rh(){}function ch(){}function ah(){}function uh(){}function oh(){}function sh(){}function hh(){}function fh(){}function lh(){}function bh(){}function wh(){}function dh(){}function gh(){}function ph(){}function vh(){}function mh(){}function yh(){}function kh(){}function jh(){}function Eh(){}function Th(){}function Mh(){}function Sh(){}function Ph(){}function Ch(){}function Ih(){}function Oh(){}function Ah(){}function $h(){}function Lh(){}function Nh(){}function xh(){}function Dh(){}function Rh(){}function Kh(){}function _h(n){}function Fh(n){}function Bh(){iy()}function Hh(){Gsn()}function qh(){Epn()}function Gh(){_kn()}function zh(){jSn()}function Uh(){fRn()}function Xh(){Kyn()}function Wh(){rkn()}function Vh(){EM()}function Qh(){mM()}function Yh(){q_()}function Jh(){TM()}function Zh(){Irn()}function nf(){SM()}function tf(){I6()}function ef(){Pin()}function rf(){Q8()}function cf(){_Z()}function af(){zsn()}function uf(){_Mn()}function of(){Cin()}function sf(){U2()}function hf(){fWn()}function ff(){Gyn()}function lf(){FZ()}function bf(){HXn()}function wf(){RZ()}function df(){Iin()}function gf(){Yun()}function pf(){GZ()}function vf(){C9()}function mf(){PM()}function yf(){KAn()}function kf(){Uyn()}function jf(){Fcn()}function Ef(){MMn()}function Tf(){bRn()}function Mf(){Bvn()}function Sf(){CAn()}function Pf(){Ran()}function Cf(){HZ()}function If(){s_n()}function Of(){$An()}function Af(){W$n()}function $f(){x9()}function Lf(){SMn()}function Nf(){sWn()}function xf(){Xsn()}function Df(){vdn()}function Rf(){qBn()}function Kf(){u_()}function _f(){wcn()}function Ff(){fFn()}function Bf(n){kW(n)}function Hf(n){this.a=n}function qf(n){this.a=n}function Gf(n){this.a=n}function zf(n){this.a=n}function Uf(n){this.a=n}function Xf(n){this.a=n}function Wf(n){this.a=n}function Vf(n){this.a=n}function Qf(n){this.a=n}function Yf(n){this.a=n}function Jf(n){this.a=n}function Zf(n){this.a=n}function nl(n){this.a=n}function tl(n){this.a=n}function el(n){this.a=n}function il(n){this.a=n}function rl(n){this.a=n}function cl(n){this.a=n}function al(n){this.a=n}function ul(n){this.a=n}function ol(n){this.a=n}function sl(n){this.b=n}function hl(n){this.c=n}function fl(n){this.a=n}function ll(n){this.a=n}function bl(n){this.a=n}function wl(n){this.a=n}function dl(n){this.a=n}function gl(n){this.a=n}function pl(n){this.a=n}function vl(n){this.a=n}function ml(n){this.a=n}function yl(n){this.a=n}function kl(n){this.a=n}function jl(n){this.a=n}function El(n){this.a=n}function Tl(n){this.a=n}function Ml(n){this.a=n}function Sl(n){this.a=n}function Pl(n){this.a=n}function Cl(){this.a=[]}function Il(n,t){n.a=t}function Ol(n,t){n.a=t}function Al(n,t){n.b=t}function $l(n,t){n.b=t}function Ll(n,t){n.b=t}function Nl(n,t){n.j=t}function xl(n,t){n.g=t}function Dl(n,t){n.i=t}function Rl(n,t){n.c=t}function Kl(n,t){n.d=t}function _l(n,t){n.d=t}function Fl(n,t){n.c=t}function Bl(n,t){n.k=t}function Hl(n,t){n.c=t}function ql(n,t){n.c=t}function Gl(n,t){n.a=t}function zl(n,t){n.a=t}function Ul(n,t){n.f=t}function Xl(n,t){n.a=t}function Wl(n,t){n.b=t}function Vl(n,t){n.d=t}function Ql(n,t){n.i=t}function Yl(n,t){n.o=t}function Jl(n,t){n.r=t}function Zl(n,t){n.a=t}function nb(n,t){n.b=t}function tb(n,t){n.e=t}function eb(n,t){n.f=t}function ib(n,t){n.g=t}function rb(n,t){n.e=t}function cb(n,t){n.f=t}function ab(n,t){n.f=t}function ub(n,t){n.n=t}function ob(n,t){n.a=t}function sb(n,t){n.a=t}function hb(n,t){n.c=t}function fb(n,t){n.c=t}function lb(n,t){n.d=t}function bb(n,t){n.e=t}function wb(n,t){n.g=t}function db(n,t){n.a=t}function gb(n,t){n.c=t}function pb(n,t){n.d=t}function vb(n,t){n.e=t}function mb(n,t){n.f=t}function yb(n,t){n.j=t}function kb(n,t){n.a=t}function jb(n,t){n.b=t}function Eb(n,t){n.a=t}function Tb(n){n.b=n.a}function Mb(n){n.c=n.d.d}function Sb(n){this.d=n}function Pb(n){this.a=n}function Cb(n){this.a=n}function Ib(n){this.a=n}function Ob(n){this.a=n}function Ab(n){this.a=n}function $b(n){this.a=n}function Lb(n){this.a=n}function Nb(n){this.a=n}function xb(n){this.a=n}function Db(n){this.a=n}function Rb(n){this.a=n}function Kb(n){this.a=n}function _b(n){this.a=n}function Fb(n){this.a=n}function Bb(n){this.b=n}function Hb(n){this.b=n}function qb(n){this.b=n}function Gb(n){this.a=n}function zb(n){this.a=n}function Ub(n){this.a=n}function Xb(n){this.c=n}function Wb(n){this.c=n}function Vb(n){this.c=n}function Qb(n){this.a=n}function Yb(n){this.a=n}function Jb(n){this.a=n}function Zb(n){this.a=n}function nw(n){this.a=n}function tw(n){this.a=n}function ew(n){this.a=n}function iw(n){this.a=n}function rw(n){this.a=n}function cw(n){this.a=n}function aw(n){this.a=n}function uw(n){this.a=n}function ow(n){this.a=n}function sw(n){this.a=n}function hw(n){this.a=n}function fw(n){this.a=n}function lw(n){this.a=n}function bw(n){this.a=n}function ww(n){this.a=n}function dw(n){this.a=n}function gw(n){this.a=n}function pw(n){this.a=n}function vw(n){this.a=n}function mw(n){this.a=n}function yw(n){this.a=n}function kw(n){this.a=n}function jw(n){this.a=n}function Ew(n){this.a=n}function Tw(n){this.a=n}function Mw(n){this.a=n}function Sw(n){this.a=n}function Pw(n){this.a=n}function Cw(n){this.a=n}function Iw(n){this.a=n}function Ow(n){this.a=n}function Aw(n){this.a=n}function $w(n){this.a=n}function Lw(n){this.a=n}function Nw(n){this.a=n}function xw(n){this.a=n}function Dw(n){this.a=n}function Rw(n){this.a=n}function Kw(n){this.a=n}function _w(n){this.a=n}function Fw(n){this.a=n}function Bw(n){this.e=n}function Hw(n){this.a=n}function qw(n){this.a=n}function Gw(n){this.a=n}function zw(n){this.a=n}function Uw(n){this.a=n}function Xw(n){this.a=n}function Ww(n){this.a=n}function Vw(n){this.a=n}function Qw(n){this.a=n}function Yw(n){this.a=n}function Jw(n){this.a=n}function Zw(n){this.a=n}function nd(n){this.a=n}function td(n){this.a=n}function ed(n){this.a=n}function id(n){this.a=n}function rd(n){this.a=n}function cd(n){this.a=n}function ad(n){this.a=n}function ud(n){this.a=n}function od(n){this.a=n}function sd(n){this.a=n}function hd(n){this.a=n}function fd(n){this.a=n}function ld(n){this.a=n}function bd(n){this.a=n}function wd(n){this.a=n}function dd(n){this.a=n}function gd(n){this.a=n}function pd(n){this.a=n}function vd(n){this.a=n}function md(n){this.a=n}function yd(n){this.a=n}function kd(n){this.a=n}function jd(n){this.a=n}function Ed(n){this.a=n}function Td(n){this.a=n}function Md(n){this.a=n}function Sd(n){this.a=n}function Pd(n){this.a=n}function Cd(n){this.a=n}function Id(n){this.a=n}function Od(n){this.a=n}function Ad(n){this.a=n}function $d(n){this.a=n}function Ld(n){this.a=n}function Nd(n){this.a=n}function xd(n){this.a=n}function Dd(n){this.a=n}function Rd(n){this.a=n}function Kd(n){this.a=n}function _d(n){this.a=n}function Fd(n){this.a=n}function Bd(n){this.c=n}function Hd(n){this.b=n}function qd(n){this.a=n}function Gd(n){this.a=n}function zd(n){this.a=n}function Ud(n){this.a=n}function Xd(n){this.a=n}function Wd(n){this.a=n}function Vd(n){this.a=n}function Qd(n){this.a=n}function Yd(n){this.a=n}function Jd(n){this.a=n}function Zd(n){this.a=n}function ng(n){this.a=n}function tg(n){this.a=n}function eg(n){this.a=n}function ig(n){this.a=n}function rg(n){this.a=n}function cg(n){this.a=n}function ag(n){this.a=n}function ug(n){this.a=n}function og(n){this.a=n}function sg(n){this.a=n}function hg(n){this.a=n}function fg(n){this.a=n}function lg(n){this.a=n}function bg(n){this.a=n}function wg(n){this.a=n}function dg(n){this.a=n}function gg(n){this.a=n}function pg(n){this.a=n}function vg(n){this.a=n}function mg(n){this.a=n}function yg(n){this.a=n}function kg(n){this.a=n}function jg(n){this.a=n}function Eg(n){this.a=n}function Tg(n){this.a=n}function Mg(n){this.a=n}function Sg(n){this.a=n}function Pg(n){this.a=n}function Cg(n){this.a=n}function Ig(n){this.a=n}function Og(n){this.a=n}function Ag(n){this.a=n}function $g(n){this.a=n}function Lg(n){this.a=n}function Ng(n){this.a=n}function xg(n){this.a=n}function Dg(n){this.a=n}function Rg(n){this.a=n}function Kg(n){this.a=n}function _g(n){this.a=n}function Fg(n){this.a=n}function Bg(n){this.a=n}function Hg(n){this.a=n}function qg(n){this.a=n}function Gg(n){this.a=n}function zg(n){this.a=n}function Ug(n){this.a=n}function Xg(n){this.a=n}function Wg(n){this.a=n}function Vg(n){this.a=n}function Qg(n){this.a=n}function Yg(n){this.a=n}function Jg(n){this.a=n}function Zg(n){this.a=n}function np(n){this.a=n}function tp(n){this.a=n}function ep(n){this.a=n}function ip(n){this.a=n}function rp(n){this.a=n}function cp(n){this.a=n}function ap(n){this.a=n}function up(n){this.b=n}function op(n){this.f=n}function sp(n){this.a=n}function hp(n){this.a=n}function fp(n){this.a=n}function lp(n){this.a=n}function bp(n){this.a=n}function wp(n){this.a=n}function dp(n){this.a=n}function gp(n){this.a=n}function pp(n){this.a=n}function vp(n){this.a=n}function mp(n){this.a=n}function yp(n){this.b=n}function kp(n){this.c=n}function jp(n){this.e=n}function Ep(n){this.a=n}function Tp(n){this.a=n}function Mp(n){this.a=n}function Sp(n){this.a=n}function Pp(n){this.a=n}function Cp(n){this.d=n}function Ip(n){this.a=n}function Op(n){this.a=n}function Ap(n){this.e=n}function $p(){this.a=0}function Lp(){DA(this)}function Np(){xA(this)}function xp(){$U(this)}function Dp(){wV(this)}function Rp(){_h(this)}function Kp(){this.c=L$t}function _p(n,t){t.Wb(n)}function Fp(n,t){n.b+=t}function Bp(n){n.b=new ok}function Hp(n){return n.e}function qp(n){return n.a}function Gp(n){return n.a}function zp(n){return n.a}function Up(n){return n.a}function Xp(n){return n.a}function Wp(){return null}function Vp(){return null}function Qp(){aE(),dXn()}function Yp(n){n.b.tf(n.e)}function Jp(n,t){n.b=t-n.b}function Zp(n,t){n.a=t-n.a}function nv(n,t){t.ad(n.a)}function tv(n,t){qCn(t,n)}function ev(n,t,e){n.Od(e,t)}function iv(n,t){n.e=t,t.b=n}function rv(n){s_(),this.a=n}function cv(n){s_(),this.a=n}function av(n){s_(),this.a=n}function uv(n){WX(),this.a=n}function ov(n){PY(),ett.be(n)}function sv(){gN.call(this)}function hv(){gN.call(this)}function fv(){sv.call(this)}function lv(){sv.call(this)}function bv(){sv.call(this)}function wv(){sv.call(this)}function dv(){sv.call(this)}function gv(){sv.call(this)}function pv(){sv.call(this)}function vv(){sv.call(this)}function mv(){sv.call(this)}function yv(){sv.call(this)}function kv(){sv.call(this)}function jv(){this.a=this}function Ev(){this.Bb|=256}function Tv(){this.b=new PO}function Mv(){Mv=O,new xp}function Sv(){fv.call(this)}function Pv(n,t){n.length=t}function Cv(n,t){WB(n.a,t)}function Iv(n,t){USn(n.c,t)}function Ov(n,t){TU(n.b,t)}function Av(n,t){Ivn(n.a,t)}function $v(n,t){Oln(n.a,t)}function Lv(n,t){ban(n.e,t)}function Nv(n){AOn(n.c,n.b)}function xv(n,t){n.kc().Nb(t)}function Dv(n){this.a=gbn(n)}function Rv(){this.a=new xp}function Kv(){this.a=new xp}function _v(){this.a=new Np}function Fv(){this.a=new Np}function Bv(){this.a=new Np}function Hv(){this.a=new kn}function qv(){this.a=new k6}function Gv(){this.a=new bt}function zv(){this.a=new WT}function Uv(){this.a=new D0}function Xv(){this.a=new cZ}function Wv(){this.a=new AR}function Vv(){this.a=new Np}function Qv(){this.a=new Np}function Yv(){this.a=new Np}function Jv(){this.a=new Np}function Zv(){this.d=new Np}function nm(){this.a=new Rv}function tm(){this.a=new xp}function em(){this.b=new xp}function im(){this.b=new Np}function rm(){this.e=new Np}function cm(){this.d=new Np}function am(){this.a=new uf}function um(){Np.call(this)}function om(){_v.call(this)}function sm(){NR.call(this)}function hm(){Qv.call(this)}function fm(){lm.call(this)}function lm(){Rp.call(this)}function bm(){Rp.call(this)}function wm(){bm.call(this)}function dm(){dY.call(this)}function gm(){dY.call(this)}function pm(){Wm.call(this)}function vm(){Wm.call(this)}function mm(){Wm.call(this)}function ym(){Vm.call(this)}function km(){YT.call(this)}function jm(){eo.call(this)}function Em(){eo.call(this)}function Tm(){ny.call(this)}function Mm(){ny.call(this)}function Sm(){xp.call(this)}function Pm(){xp.call(this)}function Cm(){xp.call(this)}function Im(){Rv.call(this)}function Om(){jin.call(this)}function Am(){Ev.call(this)}function $m(){OL.call(this)}function Lm(){OL.call(this)}function Nm(){xp.call(this)}function xm(){xp.call(this)}function Dm(){xp.call(this)}function Rm(){yo.call(this)}function Km(){yo.call(this)}function _m(){Rm.call(this)}function Fm(){Dh.call(this)}function Bm(n){dtn.call(this,n)}function Hm(n){dtn.call(this,n)}function qm(n){Qf.call(this,n)}function Gm(n){MT.call(this,n)}function zm(n){Gm.call(this,n)}function Um(n){MT.call(this,n)}function Xm(){this.a=new YT}function Wm(){this.a=new Rv}function Vm(){this.a=new xp}function Qm(){this.a=new Np}function Ym(){this.j=new Np}function Jm(){this.a=new Xa}function Zm(){this.a=new LE}function ny(){this.a=new mo}function ty(){ty=O,_nt=new xk}function ey(){ey=O,Knt=new Nk}function iy(){iy=O,Ont=new c}function ry(){ry=O,znt=new cN}function cy(n){Gm.call(this,n)}function ay(n){Gm.call(this,n)}function uy(n){d4.call(this,n)}function oy(n){d4.call(this,n)}function sy(n){VK.call(this,n)}function hy(n){ySn.call(this,n)}function fy(n){CT.call(this,n)}function ly(n){OT.call(this,n)}function by(n){OT.call(this,n)}function wy(n){OT.call(this,n)}function dy(n){fz.call(this,n)}function gy(n){dy.call(this,n)}function py(){Pl.call(this,{})}function vy(n){CL(),this.a=n}function my(n){n.b=null,n.c=0}function yy(n,t){n.e=t,Cxn(n,t)}function ky(n,t){n.a=t,aCn(n)}function jy(n,t,e){n.a[t.g]=e}function Ey(n,t,e){wjn(e,n,t)}function Ty(n,t){ZR(t.i,n.n)}function My(n,t){ssn(n).td(t)}function Sy(n,t){return n*n/t}function Py(n,t){return n.g-t.g}function Cy(n){return new Sl(n)}function Iy(n){return new GX(n)}function Oy(n){dy.call(this,n)}function Ay(n){dy.call(this,n)}function $y(n){dy.call(this,n)}function Ly(n){fz.call(this,n)}function Ny(n){_cn(),this.a=n}function xy(n){a_(),this.a=n}function Dy(n){FG(),this.f=n}function Ry(n){FG(),this.f=n}function Ky(n){dy.call(this,n)}function _y(n){dy.call(this,n)}function Fy(n){dy.call(this,n)}function By(n){dy.call(this,n)}function Hy(n){dy.call(this,n)}function qy(n){return kW(n),n}function Gy(n){return kW(n),n}function zy(n){return kW(n),n}function Uy(n){return kW(n),n}function Xy(n){return kW(n),n}function Wy(n){return n.b==n.c}function Vy(n){return!!n&&n.b}function Qy(n){return!!n&&n.k}function Yy(n){return!!n&&n.j}function Jy(n){kW(n),this.a=n}function Zy(n){return Zon(n),n}function nk(n){vU(n,n.length)}function tk(n){dy.call(this,n)}function ek(n){dy.call(this,n)}function ik(n){dy.call(this,n)}function rk(n){dy.call(this,n)}function ck(n){dy.call(this,n)}function ak(n){dy.call(this,n)}function uk(n){ZN.call(this,n,0)}function ok(){o1.call(this,12,3)}function sk(){sk=O,ttt=new j}function hk(){hk=O,Ynt=new r}function fk(){fk=O,rtt=new g}function lk(){lk=O,htt=new v}function bk(){throw Hp(new pv)}function wk(){throw Hp(new pv)}function dk(){throw Hp(new pv)}function gk(){throw Hp(new pv)}function pk(){throw Hp(new pv)}function vk(){throw Hp(new pv)}function mk(){this.a=SD(yX(FWn))}function yk(n){s_(),this.a=yX(n)}function kk(n,t){n.Td(t),t.Sd(n)}function jk(n,t){n.a.ec().Mc(t)}function Ek(n,t,e){n.c.lf(t,e)}function Tk(n){Ay.call(this,n)}function Mk(n){_y.call(this,n)}function Sk(){Ab.call(this,"")}function Pk(){Ab.call(this,"")}function Ck(){Ab.call(this,"")}function Ik(){Ab.call(this,"")}function Ok(n){Ay.call(this,n)}function Ak(n){Hb.call(this,n)}function $k(n){bN.call(this,n)}function Lk(n){Ak.call(this,n)}function Nk(){tl.call(this,null)}function xk(){tl.call(this,null)}function Dk(){Dk=O,PY()}function Rk(){Rk=O,ket=mEn()}function Kk(n){return n.a?n.b:0}function _k(n){return n.a?n.b:0}function Fk(n,t){return n.a-t.a}function Bk(n,t){return n.a-t.a}function Hk(n,t){return n.a-t.a}function qk(n,t){return m7(n,t)}function Gk(n,t){return gZ(n,t)}function zk(n,t){return t in n.a}function Uk(n,t){return n.f=t,n}function Xk(n,t){return n.b=t,n}function Wk(n,t){return n.c=t,n}function Vk(n,t){return n.g=t,n}function Qk(n,t){return n.a=t,n}function Yk(n,t){return n.f=t,n}function Jk(n,t){return n.k=t,n}function Zk(n,t){return n.a=t,n}function nj(n,t){return n.e=t,n}function tj(n,t){return n.e=t,n}function ej(n,t){return n.f=t,n}function ij(n,t){n.b=!0,n.d=t}function rj(n,t){n.b=new wA(t)}function cj(n,t,e){t.td(n.a[e])}function aj(n,t,e){t.we(n.a[e])}function uj(n,t){return n.b-t.b}function oj(n,t){return n.g-t.g}function sj(n,t){return n.s-t.s}function hj(n,t){return n?0:t-1}function fj(n,t){return n?0:t-1}function lj(n,t){return n?t-1:0}function bj(n,t){return t.Yf(n)}function wj(n,t){return n.b=t,n}function dj(n,t){return n.a=t,n}function gj(n,t){return n.c=t,n}function pj(n,t){return n.d=t,n}function vj(n,t){return n.e=t,n}function mj(n,t){return n.f=t,n}function yj(n,t){return n.a=t,n}function kj(n,t){return n.b=t,n}function jj(n,t){return n.c=t,n}function Ej(n,t){return n.c=t,n}function Tj(n,t){return n.b=t,n}function Mj(n,t){return n.d=t,n}function Sj(n,t){return n.e=t,n}function Pj(n,t){return n.f=t,n}function Cj(n,t){return n.g=t,n}function Ij(n,t){return n.a=t,n}function Oj(n,t){return n.i=t,n}function Aj(n,t){return n.j=t,n}function $j(n,t){return n.k=t,n}function Lj(n,t){return n.j=t,n}function Nj(n,t){_Mn(),CZ(t,n)}function xj(n,t,e){GG(n.a,t,e)}function Dj(n){BV.call(this,n)}function Rj(n){BV.call(this,n)}function Kj(n){n_.call(this,n)}function _j(n){qbn.call(this,n)}function Fj(n){gtn.call(this,n)}function Bj(n){pQ.call(this,n)}function Hj(n){pQ.call(this,n)}function qj(){O$.call(this,"")}function Gj(){this.a=0,this.b=0}function zj(){this.b=0,this.a=0}function Uj(n,t){n.b=0,Nen(n,t)}function Xj(n,t){n.c=t,n.b=!0}function Wj(n,t){return n.c._b(t)}function Vj(n){return n.e&&n.e()}function Qj(n){return n?n.d:null}function Yj(n,t){return gfn(n.b,t)}function Jj(n){return n?n.g:null}function Zj(n){return n?n.i:null}function nE(n){return ED(n),n.o}function tE(){tE=O,dOt=Xkn()}function eE(){eE=O,gOt=oTn()}function iE(){iE=O,n$t=Vkn()}function rE(){rE=O,dLt=Wkn()}function cE(){cE=O,gLt=iCn()}function aE(){aE=O,lAt=cin()}function uE(){throw Hp(new pv)}function oE(){throw Hp(new pv)}function sE(){throw Hp(new pv)}function hE(){throw Hp(new pv)}function fE(){throw Hp(new pv)}function lE(){throw Hp(new pv)}function bE(n){this.a=new XT(n)}function wE(n){lUn(),DXn(this,n)}function dE(n){this.a=new Wz(n)}function gE(n,t){for(;n.ye(t););}function pE(n,t){for(;n.sd(t););}function vE(n,t){return n.a+=t,n}function mE(n,t){return n.a+=t,n}function yE(n,t){return n.a+=t,n}function kE(n,t){return n.a+=t,n}function jE(n){return EW(n),n.a}function EE(n){return n.b!=n.d.c}function TE(n){return n.l|n.m<<22}function ME(n,t){return n.d[t.p]}function SE(n,t){return Sxn(n,t)}function PE(n,t,e){n.splice(t,e)}function CE(n){n.c?NDn(n):xDn(n)}function IE(n){this.a=0,this.b=n}function OE(){this.a=new CNn(ijt)}function AE(){this.b=new CNn(qyt)}function $E(){this.b=new CNn(WEt)}function LE(){this.b=new CNn(WEt)}function NE(){throw Hp(new pv)}function xE(){throw Hp(new pv)}function DE(){throw Hp(new pv)}function RE(){throw Hp(new pv)}function KE(){throw Hp(new pv)}function _E(){throw Hp(new pv)}function FE(){throw Hp(new pv)}function BE(){throw Hp(new pv)}function HE(){throw Hp(new pv)}function qE(){throw Hp(new pv)}function GE(){throw Hp(new yv)}function zE(){throw Hp(new yv)}function UE(n){this.a=new XE(n)}function XE(n){Gin(this,n,OEn())}function WE(n){return!n||pW(n)}function VE(n){return-1!=WLt[n]}function QE(){0!=ctt&&(ctt=0),utt=-1}function YE(){null==PWn&&(PWn=[])}function JE(n,t){tAn(QQ(n.a),t)}function ZE(n,t){tAn(QQ(n.a),t)}function nT(n,t){HL.call(this,n,t)}function tT(n,t){nT.call(this,n,t)}function eT(n,t){this.b=n,this.c=t}function iT(n,t){this.b=n,this.a=t}function rT(n,t){this.a=n,this.b=t}function cT(n,t){this.a=n,this.b=t}function aT(n,t){this.a=n,this.b=t}function uT(n,t){this.a=n,this.b=t}function oT(n,t){this.a=n,this.b=t}function sT(n,t){this.a=n,this.b=t}function hT(n,t){this.a=n,this.b=t}function fT(n,t){this.a=n,this.b=t}function lT(n,t){this.b=n,this.a=t}function bT(n,t){this.b=n,this.a=t}function wT(n,t){this.b=n,this.a=t}function dT(n,t){this.b=n,this.a=t}function gT(n,t){this.f=n,this.g=t}function pT(n,t){this.e=n,this.d=t}function vT(n,t){this.g=n,this.i=t}function mT(n,t){this.a=n,this.b=t}function yT(n,t){this.a=n,this.f=t}function kT(n,t){this.b=n,this.c=t}function jT(n,t){this.a=n,this.b=t}function ET(n,t){this.a=n,this.b=t}function TT(n,t){this.a=n,this.b=t}function MT(n){aN(n.dc()),this.c=n}function ST(n){this.b=BB(yX(n),83)}function PT(n){this.a=BB(yX(n),83)}function CT(n){this.a=BB(yX(n),15)}function IT(n){this.a=BB(yX(n),15)}function OT(n){this.b=BB(yX(n),47)}function AT(){this.q=new e.Date}function $T(){$T=O,Btt=new A}function LT(){LT=O,bet=new P}function NT(n){return n.f.c+n.g.c}function xT(n,t){return n.b.Hc(t)}function DT(n,t){return n.b.Ic(t)}function RT(n,t){return n.b.Qc(t)}function KT(n,t){return n.b.Hc(t)}function _T(n,t){return n.c.uc(t)}function FT(n,t){return n.a._b(t)}function BT(n,t){return Nfn(n.c,t)}function HT(n,t){return hU(n.b,t)}function qT(n,t){return n>t&&t<OVn}function GT(n,t){return n.Gc(t),n}function zT(n,t){return Frn(n,t),n}function UT(n){return XX(),n?stt:ott}function XT(n){non.call(this,n,0)}function WT(){Wz.call(this,null)}function VT(){B8.call(this,null)}function QT(n){this.c=n,Ann(this)}function YT(){P$(this),yQ(this)}function JT(n,t){EW(n),n.a.Nb(t)}function ZT(n,t){return n.Gc(t),n}function nM(n,t){return n.a.f=t,n}function tM(n,t){return n.a.d=t,n}function eM(n,t){return n.a.g=t,n}function iM(n,t){return n.a.j=t,n}function rM(n,t){return n.a.a=t,n}function cM(n,t){return n.a.d=t,n}function aM(n,t){return n.a.e=t,n}function uM(n,t){return n.a.g=t,n}function oM(n,t){return n.a.f=t,n}function sM(n){return n.b=!1,n}function hM(){hM=O,Pet=new CO}function fM(){fM=O,Cet=new IO}function lM(){lM=O,Het=new U}function bM(){bM=O,vut=new Kt}function wM(){wM=O,rct=new Ix}function dM(){dM=O,tit=new hn}function gM(){gM=O,kut=new _t}function pM(){pM=O,sit=new dn}function vM(){vM=O,Gat=new yt}function mM(){mM=O,Fut=new Gj}function yM(){yM=O,zat=new Pt}function kM(){kM=O,Vat=new DG}function jM(){jM=O,hut=new Mt}function EM(){EM=O,But=new be}function TM(){TM=O,nst=new Ye}function MM(){MM=O,wst=new Lr}function SM(){SM=O,Qst=new rc}function PM(){PM=O,Wkt=new B2}function CM(){CM=O,XEt=new LM}function IM(){IM=O,QEt=new vD}function OM(){OM=O,GTt=new XW}function AM(){AM=O,Wpt=new Wu}function $M(){Sin(),this.c=new ok}function LM(){gT.call(this,H1n,0)}function NM(n,t){Jgn(n.c.b,t.c,t)}function xM(n,t){Jgn(n.c.c,t.b,t)}function DM(n,t,e){mZ(n.d,t.f,e)}function RM(n,t,e,i){Jpn(n,i,t,e)}function KM(n,t,e,i){uNn(i,n,t,e)}function _M(n,t,e,i){oUn(i,n,t,e)}function FM(n,t){return n.a=t.g,n}function BM(n,t){return ekn(n.a,t)}function HM(n){return n.b?n.b:n.a}function qM(n){return(n.c+n.a)/2}function GM(){GM=O,lOt=new to}function zM(){zM=O,COt=new ho}function UM(){UM=O,RAt=new Pm}function XM(){XM=O,UAt=new Cm}function WM(){WM=O,zAt=new Nm}function VM(){VM=O,ZAt=new Dm}function QM(){QM=O,N$t=new z$}function YM(){YM=O,x$t=new U$}function JM(){JM=O,rLt=new Ns}function ZM(){ZM=O,aLt=new xs}function nS(){nS=O,mAt=new xp}function tS(){tS=O,V$t=new Np}function eS(){eS=O,MNt=new Kh}function iS(n){e.clearTimeout(n)}function rS(n){this.a=BB(yX(n),224)}function cS(n){return BB(n,42).cd()}function aS(n){return n.b<n.d.gc()}function uS(n,t){return CG(n.a,t)}function oS(n,t){return Vhn(n,t)>0}function sS(n,t){return Vhn(n,t)<0}function hS(n,t){return n.a.get(t)}function fS(n,t){return t.split(n)}function lS(n,t){return hU(n.e,t)}function bS(n){return kW(n),!1}function wS(n){w1.call(this,n,21)}function dS(n,t){_J.call(this,n,t)}function gS(n,t){gT.call(this,n,t)}function pS(n,t){gT.call(this,n,t)}function vS(n){VX(),VK.call(this,n)}function mS(n,t){jG(n,n.length,t)}function yS(n,t){QU(n,n.length,t)}function kS(n,t,e){t.ud(n.a.Ge(e))}function jS(n,t,e){t.we(n.a.Fe(e))}function ES(n,t,e){t.td(n.a.Kb(e))}function TS(n,t,e){n.Mb(e)&&t.td(e)}function MS(n,t,e){n.splice(t,0,e)}function SS(n,t){return SN(n.e,t)}function PS(n,t){this.d=n,this.e=t}function CS(n,t){this.b=n,this.a=t}function IS(n,t){this.b=n,this.a=t}function OS(n,t){this.b=n,this.a=t}function AS(n,t){this.a=n,this.b=t}function $S(n,t){this.a=n,this.b=t}function LS(n,t){this.a=n,this.b=t}function NS(n,t){this.a=n,this.b=t}function xS(n,t){this.a=n,this.b=t}function DS(n,t){this.b=n,this.a=t}function RS(n,t){this.b=n,this.a=t}function KS(n,t){gT.call(this,n,t)}function _S(n,t){gT.call(this,n,t)}function FS(n,t){gT.call(this,n,t)}function BS(n,t){gT.call(this,n,t)}function HS(n,t){gT.call(this,n,t)}function qS(n,t){gT.call(this,n,t)}function GS(n,t){gT.call(this,n,t)}function zS(n,t){gT.call(this,n,t)}function US(n,t){gT.call(this,n,t)}function XS(n,t){gT.call(this,n,t)}function WS(n,t){gT.call(this,n,t)}function VS(n,t){gT.call(this,n,t)}function QS(n,t){gT.call(this,n,t)}function YS(n,t){gT.call(this,n,t)}function JS(n,t){gT.call(this,n,t)}function ZS(n,t){gT.call(this,n,t)}function nP(n,t){gT.call(this,n,t)}function tP(n,t){gT.call(this,n,t)}function eP(n,t){this.a=n,this.b=t}function iP(n,t){this.a=n,this.b=t}function rP(n,t){this.a=n,this.b=t}function cP(n,t){this.a=n,this.b=t}function aP(n,t){this.a=n,this.b=t}function uP(n,t){this.a=n,this.b=t}function oP(n,t){this.a=n,this.b=t}function sP(n,t){this.a=n,this.b=t}function hP(n,t){this.a=n,this.b=t}function fP(n,t){this.b=n,this.a=t}function lP(n,t){this.b=n,this.a=t}function bP(n,t){this.b=n,this.a=t}function wP(n,t){this.b=n,this.a=t}function dP(n,t){this.c=n,this.d=t}function gP(n,t){this.e=n,this.d=t}function pP(n,t){this.a=n,this.b=t}function vP(n,t){this.b=t,this.c=n}function mP(n,t){gT.call(this,n,t)}function yP(n,t){gT.call(this,n,t)}function kP(n,t){gT.call(this,n,t)}function jP(n,t){gT.call(this,n,t)}function EP(n,t){gT.call(this,n,t)}function TP(n,t){gT.call(this,n,t)}function MP(n,t){gT.call(this,n,t)}function SP(n,t){gT.call(this,n,t)}function PP(n,t){gT.call(this,n,t)}function CP(n,t){gT.call(this,n,t)}function IP(n,t){gT.call(this,n,t)}function OP(n,t){gT.call(this,n,t)}function AP(n,t){gT.call(this,n,t)}function $P(n,t){gT.call(this,n,t)}function LP(n,t){gT.call(this,n,t)}function NP(n,t){gT.call(this,n,t)}function xP(n,t){gT.call(this,n,t)}function DP(n,t){gT.call(this,n,t)}function RP(n,t){gT.call(this,n,t)}function KP(n,t){gT.call(this,n,t)}function _P(n,t){gT.call(this,n,t)}function FP(n,t){gT.call(this,n,t)}function BP(n,t){gT.call(this,n,t)}function HP(n,t){gT.call(this,n,t)}function qP(n,t){gT.call(this,n,t)}function GP(n,t){gT.call(this,n,t)}function zP(n,t){gT.call(this,n,t)}function UP(n,t){gT.call(this,n,t)}function XP(n,t){gT.call(this,n,t)}function WP(n,t){gT.call(this,n,t)}function VP(n,t){gT.call(this,n,t)}function QP(n,t){gT.call(this,n,t)}function YP(n,t){gT.call(this,n,t)}function JP(n,t){gT.call(this,n,t)}function ZP(n,t){this.b=n,this.a=t}function nC(n,t){this.a=n,this.b=t}function tC(n,t){this.a=n,this.b=t}function eC(n,t){this.a=n,this.b=t}function iC(n,t){this.a=n,this.b=t}function rC(n,t){gT.call(this,n,t)}function cC(n,t){gT.call(this,n,t)}function aC(n,t){this.b=n,this.d=t}function uC(n,t){gT.call(this,n,t)}function oC(n,t){gT.call(this,n,t)}function sC(n,t){this.a=n,this.b=t}function hC(n,t){this.a=n,this.b=t}function fC(n,t){gT.call(this,n,t)}function lC(n,t){gT.call(this,n,t)}function bC(n,t){gT.call(this,n,t)}function wC(n,t){gT.call(this,n,t)}function dC(n,t){gT.call(this,n,t)}function gC(n,t){gT.call(this,n,t)}function pC(n,t){gT.call(this,n,t)}function vC(n,t){gT.call(this,n,t)}function mC(n,t){gT.call(this,n,t)}function yC(n,t){gT.call(this,n,t)}function kC(n,t){gT.call(this,n,t)}function jC(n,t){gT.call(this,n,t)}function EC(n,t){gT.call(this,n,t)}function TC(n,t){gT.call(this,n,t)}function MC(n,t){gT.call(this,n,t)}function SC(n,t){gT.call(this,n,t)}function PC(n,t){return SN(n.c,t)}function CC(n,t){return SN(t.b,n)}function IC(n,t){return-n.b.Je(t)}function OC(n,t){return SN(n.g,t)}function AC(n,t){gT.call(this,n,t)}function $C(n,t){gT.call(this,n,t)}function LC(n,t){this.a=n,this.b=t}function NC(n,t){this.a=n,this.b=t}function xC(n,t){this.a=n,this.b=t}function DC(n,t){gT.call(this,n,t)}function RC(n,t){gT.call(this,n,t)}function KC(n,t){gT.call(this,n,t)}function _C(n,t){gT.call(this,n,t)}function FC(n,t){gT.call(this,n,t)}function BC(n,t){gT.call(this,n,t)}function HC(n,t){gT.call(this,n,t)}function qC(n,t){gT.call(this,n,t)}function GC(n,t){gT.call(this,n,t)}function zC(n,t){gT.call(this,n,t)}function UC(n,t){gT.call(this,n,t)}function XC(n,t){gT.call(this,n,t)}function WC(n,t){gT.call(this,n,t)}function VC(n,t){gT.call(this,n,t)}function QC(n,t){gT.call(this,n,t)}function YC(n,t){gT.call(this,n,t)}function JC(n,t){this.a=n,this.b=t}function ZC(n,t){this.a=n,this.b=t}function nI(n,t){this.a=n,this.b=t}function tI(n,t){this.a=n,this.b=t}function eI(n,t){this.a=n,this.b=t}function iI(n,t){this.a=n,this.b=t}function rI(n,t){this.a=n,this.b=t}function cI(n,t){gT.call(this,n,t)}function aI(n,t){this.a=n,this.b=t}function uI(n,t){this.a=n,this.b=t}function oI(n,t){this.a=n,this.b=t}function sI(n,t){this.a=n,this.b=t}function hI(n,t){this.a=n,this.b=t}function fI(n,t){this.a=n,this.b=t}function lI(n,t){this.b=n,this.a=t}function bI(n,t){this.b=n,this.a=t}function wI(n,t){this.b=n,this.a=t}function dI(n,t){this.b=n,this.a=t}function gI(n,t){this.a=n,this.b=t}function pI(n,t){this.a=n,this.b=t}function vI(n,t){JLn(n.a,BB(t,56))}function mI(n,t){v7(n.a,BB(t,11))}function yI(n,t){return hH(),t!=n}function kI(){return Rk(),new ket}function jI(){qZ(),this.b=new Rv}function EI(){dxn(),this.a=new Rv}function TI(){KZ(),KG.call(this)}function MI(n,t){gT.call(this,n,t)}function SI(n,t){this.a=n,this.b=t}function PI(n,t){this.a=n,this.b=t}function CI(n,t){this.a=n,this.b=t}function II(n,t){this.a=n,this.b=t}function OI(n,t){this.a=n,this.b=t}function AI(n,t){this.a=n,this.b=t}function $I(n,t){this.d=n,this.b=t}function LI(n,t){this.d=n,this.e=t}function NI(n,t){this.f=n,this.c=t}function xI(n,t){this.b=n,this.c=t}function DI(n,t){this.i=n,this.g=t}function RI(n,t){this.e=n,this.a=t}function KI(n,t){this.a=n,this.b=t}function _I(n,t){n.i=null,arn(n,t)}function FI(n,t){n&&VW(hAt,n,t)}function BI(n,t){return rdn(n.a,t)}function HI(n){return adn(n.c,n.b)}function qI(n){return n?n.dd():null}function GI(n){return null==n?null:n}function zI(n){return typeof n===$Wn}function UI(n){return typeof n===LWn}function XI(n){return typeof n===NWn}function WI(n,t){return n.Hd().Xb(t)}function VI(n,t){return Qcn(n.Kc(),t)}function QI(n,t){return 0==Vhn(n,t)}function YI(n,t){return Vhn(n,t)>=0}function JI(n,t){return 0!=Vhn(n,t)}function ZI(n){return""+(kW(n),n)}function nO(n,t){return n.substr(t)}function tO(n){return zbn(n),n.d.gc()}function eO(n){return zOn(n,n.c),n}function iO(n){return JH(null==n),n}function rO(n,t){return n.a+=""+t,n}function cO(n,t){return n.a+=""+t,n}function aO(n,t){return n.a+=""+t,n}function uO(n,t){return n.a+=""+t,n}function oO(n,t){return n.a+=""+t,n}function sO(n,t){return n.a+=""+t,n}function hO(n,t){r5(n,t,n.a,n.a.a)}function fO(n,t){r5(n,t,n.c.b,n.c)}function lO(n,t,e){Kjn(t,RPn(n,e))}function bO(n,t,e){Kjn(t,RPn(n,e))}function wO(n,t){Tnn(new AL(n),t)}function dO(n,t){n.q.setTime(j2(t))}function gO(n,t){zz.call(this,n,t)}function pO(n,t){zz.call(this,n,t)}function vO(n,t){zz.call(this,n,t)}function mO(n){$U(this),Tcn(this,n)}function yO(n){return l1(n,0),null}function kO(n){return n.a=0,n.b=0,n}function jO(n,t){return n.a=t.g+1,n}function EO(n,t){return 2==n.j[t.p]}function TO(n){return sX(BB(n,79))}function MO(){MO=O,Art=lhn(tpn())}function SO(){SO=O,Zot=lhn(ENn())}function PO(){this.b=new XT(etn(12))}function CO(){this.b=0,this.a=!1}function IO(){this.b=0,this.a=!1}function OO(n){this.a=n,Bh.call(this)}function AO(n){this.a=n,Bh.call(this)}function $O(n,t){iR.call(this,n,t)}function LO(n,t){tK.call(this,n,t)}function NO(n,t){DI.call(this,n,t)}function xO(n,t){Aan.call(this,n,t)}function DO(n,t){QN.call(this,n,t)}function RO(n,t){nS(),VW(mAt,n,t)}function KO(n,t){return fx(n.a,0,t)}function _O(n,t){return n.a.a.a.cc(t)}function FO(n,t){return GI(n)===GI(t)}function BO(n,t){return Pln(n.a,t.a)}function HO(n,t){return E$(n.a,t.a)}function qO(n,t){return FU(n.a,t.a)}function GO(n,t){return n.indexOf(t)}function zO(n,t){return n==t?0:n?1:-1}function UO(n){return n<10?"0"+n:""+n}function XO(n){return yX(n),new OO(n)}function WO(n){return M$(n.l,n.m,n.h)}function VO(n){return CJ((kW(n),n))}function QO(n){return CJ((kW(n),n))}function YO(n,t){return E$(n.g,t.g)}function JO(n){return typeof n===LWn}function ZO(n){return n==Zat||n==eut}function nA(n){return n==Zat||n==nut}function tA(n){return E7(n.b.b,n,0)}function eA(n){this.a=kI(),this.b=n}function iA(n){this.a=kI(),this.b=n}function rA(n,t){return WB(n.a,t),t}function cA(n,t){return WB(n.c,t),n}function aA(n,t){return Jcn(n.a,t),n}function uA(n,t){return G_(),t.a+=n}function oA(n,t){return G_(),t.a+=n}function sA(n,t){return G_(),t.c+=n}function hA(n,t){z9(n,0,n.length,t)}function fA(){ew.call(this,new v4)}function lA(){uG.call(this,0,0,0,0)}function bA(){UV.call(this,0,0,0,0)}function wA(n){this.a=n.a,this.b=n.b}function dA(n){return n==_Pt||n==FPt}function gA(n){return n==HPt||n==KPt}function pA(n){return n==fvt||n==hvt}function vA(n){return n!=QCt&&n!=YCt}function mA(n){return n.Lg()&&n.Mg()}function yA(n){return mV(BB(n,118))}function kA(n){return Jcn(new B2,n)}function jA(n,t){return new Aan(t,n)}function EA(n,t){return new Aan(t,n)}function TA(n,t,e){jen(n,t),Een(n,e)}function MA(n,t,e){Sen(n,t),Men(n,e)}function SA(n,t,e){Pen(n,t),Cen(n,e)}function PA(n,t,e){Ten(n,t),Oen(n,e)}function CA(n,t,e){Ien(n,t),Aen(n,e)}function IA(n,t){Dsn(n,t),xen(n,n.D)}function OA(n){NI.call(this,n,!0)}function AA(n,t,e){ND.call(this,n,t,e)}function $A(n){ODn(),san.call(this,n)}function LA(){gS.call(this,"Head",1)}function NA(){gS.call(this,"Tail",3)}function xA(n){n.c=x8(Ant,HWn,1,0,5,1)}function DA(n){n.a=x8(Ant,HWn,1,8,5,1)}function RA(n){Otn(n.xf(),new Sw(n))}function KA(n){return null!=n?nsn(n):0}function _A(n,t){return Ctn(t,WJ(n))}function FA(n,t){return Ctn(t,WJ(n))}function BA(n,t){return n[n.length]=t}function HA(n,t){return n[n.length]=t}function qA(n){return FB(n.b.Kc(),n.a)}function GA(n,t){return Uin(PX(n.d),t)}function zA(n,t){return Uin(PX(n.g),t)}function UA(n,t){return Uin(PX(n.j),t)}function XA(n,t){iR.call(this,n.b,t)}function WA(n){uG.call(this,n,n,n,n)}function VA(n){return n.b&&VBn(n),n.a}function QA(n){return n.b&&VBn(n),n.c}function YA(n,t){Qet||(n.b=t)}function JA(n,t,e){return $X(n,t,e),e}function ZA(n,t,e){$X(n.c[t.g],t.g,e)}function n$(n,t,e){BB(n.c,69).Xh(t,e)}function t$(n,t,e){SA(e,e.i+n,e.j+t)}function e$(n,t){f9(a4(n.a),e1(t))}function i$(n,t){f9(H7(n.a),i1(t))}function r$(n){wWn(),Ap.call(this,n)}function c$(n){return null==n?0:nsn(n)}function a$(){a$=O,syt=new Hbn(oCt)}function u$(){u$=O,new o$,new Np}function o$(){new xp,new xp,new xp}function s$(){s$=O,Mv(),itt=new xp}function h$(){h$=O,e.Math.log(2)}function f$(){f$=O,zM(),R$t=COt}function l$(){throw Hp(new tk(Tnt))}function b$(){throw Hp(new tk(Tnt))}function w$(){throw Hp(new tk(Mnt))}function d$(){throw Hp(new tk(Mnt))}function g$(n){this.a=n,QB.call(this,n)}function p$(n){this.a=n,ST.call(this,n)}function v$(n){this.a=n,ST.call(this,n)}function m$(n,t){yG(n.c,n.c.length,t)}function y$(n){return n.a<n.c.c.length}function k$(n){return n.a<n.c.a.length}function j$(n,t){return n.a?n.b:t.De()}function E$(n,t){return n<t?-1:n>t?1:0}function T$(n,t){return Vhn(n,t)>0?n:t}function M$(n,t,e){return{l:n,m:t,h:e}}function S$(n,t){null!=n.a&&mI(t,n.a)}function P$(n){n.a=new $,n.c=new $}function C$(n){this.b=n,this.a=new Np}function I$(n){this.b=new et,this.a=n}function O$(n){LR.call(this),this.a=n}function A$(){gS.call(this,"Range",2)}function $$(){tjn(),this.a=new CNn(Uat)}function L$(n,t){yX(t),EV(n).Jc(new b)}function N$(n,t){return BZ(),t.n.b+=n}function x$(n,t,e){return VW(n.g,e,t)}function D$(n,t,e){return VW(n.k,e,t)}function R$(n,t){return VW(n.a,t.a,t)}function K$(n,t,e){return Idn(t,e,n.c)}function _$(n){return new xC(n.c,n.d)}function F$(n){return new xC(n.c,n.d)}function B$(n){return new xC(n.a,n.b)}function H$(n,t){return tzn(n.a,t,null)}function q$(n){SZ(n,null),MZ(n,null)}function G$(n){WZ(n,null),VZ(n,null)}function z$(){QN.call(this,null,null)}function U$(){YN.call(this,null,null)}function X$(n){this.a=n,xp.call(this)}function W$(n){this.b=(SQ(),new Xb(n))}function V$(n){n.j=x8(Ftt,sVn,310,0,0,1)}function Q$(n,t,e){n.c.Vc(t,BB(e,133))}function Y$(n,t,e){n.c.ji(t,BB(e,133))}function J$(n,t){sqn(n),n.Gc(BB(t,15))}function Z$(n,t){return Bqn(n.c,n.b,t)}function nL(n,t){return new pN(n.Kc(),t)}function tL(n,t){return-1!=Fun(n.Kc(),t)}function eL(n,t){return null!=n.a.Bc(t)}function iL(n){return n.Ob()?n.Pb():null}function rL(n){return Bdn(n,0,n.length)}function cL(n,t){return null!=n&&Qpn(n,t)}function aL(n,t){n.q.setHours(t),lBn(n,t)}function uL(n,t){n.c&&(RH(t),kJ(t))}function oL(n,t,e){BB(n.Kb(e),164).Nb(t)}function sL(n,t,e){return HGn(n,t,e),e}function hL(n,t,e){n.a=1502^t,n.b=e^aYn}function fL(n,t,e){return n.a[t.g][e.g]}function lL(n,t){return n.a[t.c.p][t.p]}function bL(n,t){return n.e[t.c.p][t.p]}function wL(n,t){return n.c[t.c.p][t.p]}function dL(n,t){return n.j[t.p]=pLn(t)}function gL(n,t){return f6(n.f,t.tg())}function pL(n,t){return f6(n.b,t.tg())}function vL(n,t){return n.a<XK(t)?-1:1}function mL(n,t,e){return e?0!=t:t!=n-1}function yL(n,t,e){return n.a=t,n.b=e,n}function kL(n,t){return n.a*=t,n.b*=t,n}function jL(n,t,e){return $X(n.g,t,e),e}function EL(n,t,e,i){$X(n.a[t.g],e.g,i)}function TL(n,t){_x(t,n.a.a.a,n.a.a.b)}function ML(n){n.a=BB(yan(n.b.a,4),126)}function SL(n){n.a=BB(yan(n.b.a,4),126)}function PL(n){OY(n,i8n),HLn(n,IUn(n))}function CL(){CL=O,Set=new vy(null)}function IL(){(IL=O)(),$et=new z}function OL(){this.Bb|=256,this.Bb|=512}function AL(n){this.i=n,this.f=this.i.j}function $L(n,t,e){yH.call(this,n,t,e)}function LL(n,t,e){$L.call(this,n,t,e)}function NL(n,t,e){$L.call(this,n,t,e)}function xL(n,t,e){LL.call(this,n,t,e)}function DL(n,t,e){yH.call(this,n,t,e)}function RL(n,t,e){yH.call(this,n,t,e)}function KL(n,t,e){MH.call(this,n,t,e)}function _L(n,t,e){MH.call(this,n,t,e)}function FL(n,t,e){KL.call(this,n,t,e)}function BL(n,t,e){DL.call(this,n,t,e)}function HL(n,t){this.a=n,ST.call(this,t)}function qL(n,t){this.a=n,uk.call(this,t)}function GL(n,t){this.a=n,uk.call(this,t)}function zL(n,t){this.a=n,uk.call(this,t)}function UL(n){this.a=n,hl.call(this,n.d)}function XL(n){this.c=n,this.a=this.c.a}function WL(n,t){this.a=t,uk.call(this,n)}function VL(n,t){this.a=t,d4.call(this,n)}function QL(n,t){this.a=n,d4.call(this,t)}function YL(n,t){return wz(bz(n.c)).Xb(t)}function JL(n,t){return ebn(n,new Ck,t).a}function ZL(n,t){return yX(t),new nN(n,t)}function nN(n,t){this.a=t,OT.call(this,n)}function tN(n){this.b=n,this.a=this.b.a.e}function eN(n){n.b.Qb(),--n.d.f.d,$G(n.d)}function iN(n){tl.call(this,BB(yX(n),35))}function rN(n){tl.call(this,BB(yX(n),35))}function cN(){gT.call(this,"INSTANCE",0)}function aN(n){if(!n)throw Hp(new wv)}function uN(n){if(!n)throw Hp(new dv)}function oN(n){if(!n)throw Hp(new yv)}function sN(){sN=O,JM(),cLt=new Ff}function hN(){hN=O,ptt=!1,vtt=!0}function fN(n){Ab.call(this,(kW(n),n))}function lN(n){Ab.call(this,(kW(n),n))}function bN(n){Hb.call(this,n),this.a=n}function wN(n){qb.call(this,n),this.a=n}function dN(n){Ak.call(this,n),this.a=n}function gN(){V$(this),jQ(this),this._d()}function pN(n,t){this.a=t,OT.call(this,n)}function vN(n,t){return new KPn(n.a,n.b,t)}function mN(n,t){return n.lastIndexOf(t)}function yN(n,t,e){return n.indexOf(t,e)}function kN(n){return null==n?zWn:Bbn(n)}function jN(n){return null==n?null:n.name}function EN(n){return null!=n.a?n.a:null}function TN(n){return EE(n.a)?u1(n):null}function MN(n,t){return null!=$J(n.a,t)}function SN(n,t){return!!t&&n.b[t.g]==t}function PN(n){return n.$H||(n.$H=++cit)}function CN(n){return n.l+n.m*IQn+n.h*OQn}function IN(n,t){return WB(t.a,n.a),n.a}function ON(n,t){return WB(t.b,n.a),n.a}function AN(n,t){return WB(t.a,n.a),n.a}function $N(n){return Px(null!=n.a),n.a}function LN(n){ew.call(this,new q8(n))}function NN(n,t){Sgn.call(this,n,t,null)}function xN(n){this.a=n,Bb.call(this,n)}function DN(){DN=O,Lrt=new iR(dJn,0)}function RN(n,t){return++n.b,WB(n.a,t)}function KN(n,t){return++n.b,y7(n.a,t)}function _N(n,t){return Pln(n.n.a,t.n.a)}function FN(n,t){return Pln(n.c.d,t.c.d)}function BN(n,t){return Pln(n.c.c,t.c.c)}function HN(n,t){return BB(h6(n.b,t),15)}function qN(n,t){return n.n.b=(kW(t),t)}function GN(n,t){return n.n.b=(kW(t),t)}function zN(n){return y$(n.a)||y$(n.b)}function UN(n,t,e){return p3(n,t,e,n.b)}function XN(n,t,e){return p3(n,t,e,n.c)}function WN(n,t,e){BB(D7(n,t),21).Fc(e)}function VN(n,t,e){Oln(n.a,e),Ivn(n.a,t)}function QN(n,t){QM(),this.a=n,this.b=t}function YN(n,t){YM(),this.b=n,this.c=t}function JN(n,t){FG(),this.f=t,this.d=n}function ZN(n,t){w6(t,n),this.d=n,this.c=t}function nx(n){var t;t=n.a,n.a=n.b,n.b=t}function tx(n){return G_(),!!n&&!n.dc()}function ex(n){return new h4(3,n)}function ix(n,t){return new bK(n,n.gc(),t)}function rx(n){return ry(),Cnn((DZ(),Xnt),n)}function cx(n){this.d=n,AL.call(this,n)}function ax(n){this.c=n,AL.call(this,n)}function ux(n){this.c=n,cx.call(this,n)}function ox(){MM(),this.b=new yd(this)}function sx(n){return lin(n,AVn),new J6(n)}function hx(n){return PY(),parseInt(n)||-1}function fx(n,t,e){return n.substr(t,e-t)}function lx(n,t,e){return yN(n,YTn(t),e)}function bx(n){return VU(n.c,n.c.length)}function wx(n){return null!=n.f?n.f:""+n.g}function dx(n){return null!=n.f?n.f:""+n.g}function gx(n){return Px(0!=n.b),n.a.a.c}function px(n){return Px(0!=n.b),n.c.b.c}function vx(n){cL(n,150)&&BB(n,150).Gh()}function mx(n){return n.b=BB(mQ(n.a),42)}function yx(n){hM(),this.b=n,this.a=!0}function kx(n){fM(),this.b=n,this.a=!0}function jx(n){n.d=new Cx(n),n.e=new xp}function Ex(n){if(!n)throw Hp(new vv)}function Tx(n){if(!n)throw Hp(new wv)}function Mx(n){if(!n)throw Hp(new dv)}function Sx(n){if(!n)throw Hp(new lv)}function Px(n){if(!n)throw Hp(new yv)}function Cx(n){nH.call(this,n,null,null)}function Ix(){gT.call(this,"POLYOMINO",0)}function Ox(n,t,e,i){sz.call(this,n,t,e,i)}function Ax(n,t){return _Mn(),JIn(n,t.e,t)}function $x(n,t,e){return AM(),e.qg(n,t)}function Lx(n,t){return!!n.q&&hU(n.q,t)}function Nx(n,t){return n>0?t*t/n:t*t*100}function xx(n,t){return n>0?t/(n*n):100*t}function Dx(n,t,e){return WB(t,own(n,e))}function Rx(n,t,e){x9(),n.Xe(t)&&e.td(n)}function Kx(n,t,e){n.Zc(t).Rb(e)}function _x(n,t,e){return n.a+=t,n.b+=e,n}function Fx(n,t,e){return n.a*=t,n.b*=e,n}function Bx(n,t,e){return n.a-=t,n.b-=e,n}function Hx(n,t){return n.a=t.a,n.b=t.b,n}function qx(n){return n.a=-n.a,n.b=-n.b,n}function Gx(n){this.c=n,this.a=1,this.b=1}function zx(n){this.c=n,Pen(n,0),Cen(n,0)}function Ux(n){YT.call(this),nin(this,n)}function Xx(n){RXn(),Bp(this),this.mf(n)}function Wx(n,t){QM(),QN.call(this,n,t)}function Vx(n,t){YM(),YN.call(this,n,t)}function Qx(n,t){YM(),YN.call(this,n,t)}function Yx(n,t){YM(),Vx.call(this,n,t)}function Jx(n,t,e){y9.call(this,n,t,e,2)}function Zx(n,t){f$(),cG.call(this,n,t)}function nD(n,t){f$(),Zx.call(this,n,t)}function tD(n,t){f$(),Zx.call(this,n,t)}function eD(n,t){f$(),tD.call(this,n,t)}function iD(n,t){f$(),cG.call(this,n,t)}function rD(n,t){f$(),iD.call(this,n,t)}function cD(n,t){f$(),cG.call(this,n,t)}function aD(n,t){return n.c.Fc(BB(t,133))}function uD(n,t,e){return NHn(F7(n,t),e)}function oD(n,t,e){return t.Qk(n.e,n.c,e)}function sD(n,t,e){return t.Rk(n.e,n.c,e)}function hD(n,t){return tfn(n.e,BB(t,49))}function fD(n,t,e){sln(H7(n.a),t,i1(e))}function lD(n,t,e){sln(a4(n.a),t,e1(e))}function bD(n,t){t.$modCount=n.$modCount}function wD(){wD=O,Vkt=new up("root")}function dD(){dD=O,pAt=new Tm,new Mm}function gD(){this.a=new pJ,this.b=new pJ}function pD(){jin.call(this),this.Bb|=BQn}function vD(){gT.call(this,"GROW_TREE",0)}function mD(n){return null==n?null:wUn(n)}function yD(n){return null==n?null:LSn(n)}function kD(n){return null==n?null:Bbn(n)}function jD(n){return null==n?null:Bbn(n)}function ED(n){null==n.o&&g$n(n)}function TD(n){return JH(null==n||zI(n)),n}function MD(n){return JH(null==n||UI(n)),n}function SD(n){return JH(null==n||XI(n)),n}function PD(n){this.q=new e.Date(j2(n))}function CD(n,t){this.c=n,pT.call(this,n,t)}function ID(n,t){this.a=n,CD.call(this,n,t)}function OD(n,t){this.d=n,Mb(this),this.b=t}function AD(n,t){B8.call(this,n),this.a=t}function $D(n,t){B8.call(this,n),this.a=t}function LD(n){qwn.call(this,0,0),this.f=n}function ND(n,t,e){W6.call(this,n,t,e,null)}function xD(n,t,e){W6.call(this,n,t,e,null)}function DD(n,t,e){return n.ue(t,e)<=0?e:t}function RD(n,t,e){return n.ue(t,e)<=0?t:e}function KD(n,t){return BB(lnn(n.b,t),149)}function _D(n,t){return BB(lnn(n.c,t),229)}function FD(n){return BB(xq(n.a,n.b),287)}function BD(n){return new xC(n.c,n.d+n.a)}function HD(n){return BZ(),pA(BB(n,197))}function qD(){qD=O,$rt=nbn((mdn(),_It))}function GD(n,t){t.a?Fxn(n,t):MN(n.a,t.b)}function zD(n,t){Qet||WB(n.a,t)}function UD(n,t){return mM(),wan(t.d.i,n)}function XD(n,t){return Irn(),new cKn(t,n)}function WD(n,t){return OY(t,uJn),n.f=t,n}function VD(n,t,e){return e=T_n(n,t,3,e)}function QD(n,t,e){return e=T_n(n,t,6,e)}function YD(n,t,e){return e=T_n(n,t,9,e)}function JD(n,t,e){++n.j,n.Ki(),L8(n,t,e)}function ZD(n,t,e){++n.j,n.Hi(t,n.oi(t,e))}function nR(n,t,e){n.Zc(t).Rb(e)}function tR(n,t,e){return ZBn(n.c,n.b,t,e)}function eR(n,t){return(t&DWn)%n.d.length}function iR(n,t){up.call(this,n),this.a=t}function rR(n,t){kp.call(this,n),this.a=t}function cR(n,t){kp.call(this,n),this.a=t}function aR(n,t){this.c=n,gtn.call(this,t)}function uR(n,t){this.a=n,yp.call(this,t)}function oR(n,t){this.a=n,yp.call(this,t)}function sR(n){this.a=(lin(n,AVn),new J6(n))}function hR(n){this.a=(lin(n,AVn),new J6(n))}function fR(n){return!n.a&&(n.a=new w),n.a}function lR(n){return n>8?0:n+1}function bR(n,t){return hN(),n==t?0:n?1:-1}function wR(n,t,e){return mG(n,BB(t,22),e)}function dR(n,t,e){return n.apply(t,e)}function gR(n,t,e){return n.a+=Bdn(t,0,e),n}function pR(n,t){var e;return e=n.e,n.e=t,e}function vR(n,t){n[iYn].call(n,t)}function mR(n,t){n[iYn].call(n,t)}function yR(n,t){n.a.Vc(n.b,t),++n.b,n.c=-1}function kR(n){$U(n.e),n.d.b=n.d,n.d.a=n.d}function jR(n){n.b?jR(n.b):n.f.c.zc(n.e,n.d)}function ER(n,t,e){dM(),Il(n,t.Ce(n.a,e))}function TR(n,t){return Qj(Mdn(n.a,t,!0))}function MR(n,t){return Qj(Sdn(n.a,t,!0))}function SR(n,t){return qk(new Array(t),n)}function PR(n){return String.fromCharCode(n)}function CR(n){return null==n?null:n.message}function IR(){this.a=new Np,this.b=new Np}function OR(){this.a=new bt,this.b=new Tv}function AR(){this.b=new Gj,this.c=new Np}function $R(){this.d=new Gj,this.e=new Gj}function LR(){this.n=new Gj,this.o=new Gj}function NR(){this.n=new bm,this.i=new bA}function xR(){this.a=new nf,this.b=new uc}function DR(){this.a=new Np,this.d=new Np}function RR(){this.b=new Rv,this.a=new Rv}function KR(){this.b=new xp,this.a=new xp}function _R(){this.b=new AE,this.a=new da}function FR(){NR.call(this),this.a=new Gj}function BR(n){Oan.call(this,n,(Z9(),Net))}function HR(n,t,e,i){uG.call(this,n,t,e,i)}function qR(n,t,e){null!=e&&Lin(t,Amn(n,e))}function GR(n,t,e){null!=e&&Nin(t,Amn(n,e))}function zR(n,t,e){return e=T_n(n,t,11,e)}function UR(n,t){return n.a+=t.a,n.b+=t.b,n}function XR(n,t){return n.a-=t.a,n.b-=t.b,n}function WR(n,t){return n.n.a=(kW(t),t+10)}function VR(n,t){return n.n.a=(kW(t),t+10)}function QR(n,t){return t==n||Sjn(CLn(t),n)}function YR(n,t){return null==VW(n.a,t,"")}function JR(n,t){return mM(),!wan(t.d.i,n)}function ZR(n,t){dA(n.f)?c$n(n,t):ITn(n,t)}function nK(n,t){return t.Hh(n.a)}function tK(n,t){Ay.call(this,e9n+n+o8n+t)}function eK(n,t,e,i){eU.call(this,n,t,e,i)}function iK(n,t,e,i){eU.call(this,n,t,e,i)}function rK(n,t,e,i){iK.call(this,n,t,e,i)}function cK(n,t,e,i){iU.call(this,n,t,e,i)}function aK(n,t,e,i){iU.call(this,n,t,e,i)}function uK(n,t,e,i){iU.call(this,n,t,e,i)}function oK(n,t,e,i){aK.call(this,n,t,e,i)}function sK(n,t,e,i){aK.call(this,n,t,e,i)}function hK(n,t,e,i){uK.call(this,n,t,e,i)}function fK(n,t,e,i){sK.call(this,n,t,e,i)}function lK(n,t,e,i){Zz.call(this,n,t,e,i)}function bK(n,t,e){this.a=n,ZN.call(this,t,e)}function wK(n,t,e){this.c=t,this.b=e,this.a=n}function dK(n,t,e){return n.d=BB(t.Kb(e),164)}function gK(n,t){return n.Aj().Nh().Kh(n,t)}function pK(n,t){return n.Aj().Nh().Ih(n,t)}function vK(n,t){return kW(n),GI(n)===GI(t)}function mK(n,t){return kW(n),GI(n)===GI(t)}function yK(n,t){return Qj(Mdn(n.a,t,!1))}function kK(n,t){return Qj(Sdn(n.a,t,!1))}function jK(n,t){return n.b.sd(new $S(n,t))}function EK(n,t){return n.b.sd(new LS(n,t))}function TK(n,t){return n.b.sd(new NS(n,t))}function MK(n,t,e){return n.lastIndexOf(t,e)}function SK(n,t,e){return Pln(n[t.b],n[e.b])}function PK(n,t){return hon(t,(HXn(),Rdt),n)}function CK(n,t){return E$(t.a.d.p,n.a.d.p)}function IK(n,t){return E$(n.a.d.p,t.a.d.p)}function OK(n,t){return Pln(n.c-n.s,t.c-t.s)}function AK(n){return n.c?E7(n.c.a,n,0):-1}function $K(n){return n<100?null:new Fj(n)}function LK(n){return n==UCt||n==WCt||n==XCt}function NK(n,t){return cL(t,15)&&QDn(n.c,t)}function xK(n,t){Qet||t&&(n.d=t)}function DK(n,t){return!!lsn(n,t)}function RK(n,t){this.c=n,GU.call(this,n,t)}function KK(n){this.c=n,vO.call(this,bVn,0)}function _K(n,t){JB.call(this,n,n.length,t)}function FK(n,t,e){return BB(n.c,69).lk(t,e)}function BK(n,t,e){return BB(n.c,69).mk(t,e)}function HK(n,t,e){return oD(n,BB(t,332),e)}function qK(n,t,e){return sD(n,BB(t,332),e)}function GK(n,t,e){return IEn(n,BB(t,332),e)}function zK(n,t,e){return QTn(n,BB(t,332),e)}function UK(n,t){return null==t?null:lfn(n.b,t)}function XK(n){return UI(n)?(kW(n),n):n.ke()}function WK(n){return!isNaN(n)&&!isFinite(n)}function VK(n){s_(),this.a=(SQ(),new Ak(n))}function QK(n){hH(),this.d=n,this.a=new Lp}function YK(n,t,e){this.a=n,this.b=t,this.c=e}function JK(n,t,e){this.a=n,this.b=t,this.c=e}function ZK(n,t,e){this.d=n,this.b=e,this.a=t}function n_(n){P$(this),yQ(this),Frn(this,n)}function t_(n){xA(this),tH(this.c,0,n.Pc())}function e_(n){fW(n.a),z8(n.c,n.b),n.b=null}function i_(n){this.a=n,$T(),fan(Date.now())}function r_(){r_=O,iit=new r,rit=new r}function c_(){c_=O,Tet=new L,Met=new N}function a_(){a_=O,wAt=x8(Ant,HWn,1,0,5,1)}function u_(){u_=O,M$t=x8(Ant,HWn,1,0,5,1)}function o_(){o_=O,S$t=x8(Ant,HWn,1,0,5,1)}function s_(){s_=O,new rv((SQ(),SQ(),set))}function h_(n){return Z9(),Cnn((n7(),_et),n)}function f_(n){return qsn(),Cnn((e8(),Zet),n)}function l_(n){return hpn(),Cnn((I4(),pit),n)}function b_(n){return Rnn(),Cnn((O4(),kit),n)}function w_(n){return tRn(),Cnn((xan(),Fit),n)}function d_(n){return Dtn(),Cnn((Z6(),Wit),n)}function g_(n){return J9(),Cnn((n8(),trt),n)}function p_(n){return G7(),Cnn((t8(),urt),n)}function v_(n){return dWn(),Cnn((MO(),Art),n)}function m_(n){return Dan(),Cnn((e7(),_rt),n)}function y_(n){return Hpn(),Cnn((i7(),zrt),n)}function k_(n){return qpn(),Cnn((r7(),ict),n)}function j_(n){return wM(),Cnn((Q2(),act),n)}function E_(n){return Knn(),Cnn((A4(),_ct),n)}function T_(n){return q7(),Cnn((i8(),Lat),n)}function M_(n){return yMn(),Cnn((Xnn(),qat),n)}function S_(n){return Aun(),Cnn((t7(),rut),n)}function P_(n){return Bfn(),Cnn((r8(),gut),n)}function C_(n,t){if(!n)throw Hp(new _y(t))}function I_(n){return uSn(),Cnn((hen(),Aut),n)}function O_(n){uG.call(this,n.d,n.c,n.a,n.b)}function A_(n){uG.call(this,n.d,n.c,n.a,n.b)}function $_(n,t,e){this.b=n,this.c=t,this.a=e}function L_(n,t,e){this.b=n,this.a=t,this.c=e}function N_(n,t,e){this.a=n,this.b=t,this.c=e}function x_(n,t,e){this.a=n,this.b=t,this.c=e}function D_(n,t,e){this.a=n,this.b=t,this.c=e}function R_(n,t,e){this.a=n,this.b=t,this.c=e}function K_(n,t,e){this.b=n,this.a=t,this.c=e}function __(n,t,e){this.e=t,this.b=n,this.d=e}function F_(n,t,e){return dM(),n.a.Od(t,e),t}function B_(n){var t;return(t=new jn).e=n,t}function H_(n){var t;return(t=new Zv).b=n,t}function q_(){q_=O,Uut=new Ne,Xut=new xe}function G_(){G_=O,dst=new vr,gst=new mr}function z_(n){return Iun(),Cnn((a7(),ost),n)}function U_(n){return Oun(),Cnn((o7(),Est),n)}function X_(n){return kDn(),Cnn((Gcn(),Vst),n)}function W_(n){return $Pn(),Cnn((ben(),rht),n)}function V_(n){return V8(),Cnn((R4(),oht),n)}function Q_(n){return Oin(),Cnn((c8(),bht),n)}function Y_(n){return LEn(),Cnn((Hnn(),Ost),n)}function J_(n){return Crn(),Cnn((o8(),_st),n)}function Z_(n){return uin(),Cnn((a8(),vht),n)}function nF(n){return Vvn(),Cnn((Fnn(),Mht),n)}function tF(n){return _nn(),Cnn((L4(),Iht),n)}function eF(n){return Jun(),Cnn((u8(),Nht),n)}function iF(n){return gSn(),Cnn((pen(),Hht),n)}function rF(n){return g7(),Cnn((N4(),Uht),n)}function cF(n){return Bjn(),Cnn((den(),nft),n)}function aF(n){return JMn(),Cnn((wen(),oft),n)}function uF(n){return bDn(),Cnn((Vun(),yft),n)}function oF(n){return Kan(),Cnn((h8(),Mft),n)}function sF(n){return z7(),Cnn((s8(),Oft),n)}function hF(n){return z2(),Cnn((K4(),Nft),n)}function fF(n){return Tbn(),Cnn((qnn(),zlt),n)}function lF(n){return TTn(),Cnn((gen(),rvt),n)}function bF(n){return Mhn(),Cnn((f8(),svt),n)}function wF(n){return bvn(),Cnn((s7(),dvt),n)}function dF(n){return ain(),Cnn((w8(),Uvt),n)}function gF(n){return sNn(),Cnn((qcn(),$vt),n)}function pF(n){return mon(),Cnn((b8(),Rvt),n)}function vF(n){return U7(),Cnn((D4(),Bvt),n)}function mF(n){return Hcn(),Cnn((l8(),Yvt),n)}function yF(n){return Nvn(),Cnn((Bnn(),jvt),n)}function kF(n){return A6(),Cnn((x4(),tmt),n)}function jF(n){return Usn(),Cnn((g8(),amt),n)}function EF(n){return dcn(),Cnn((p8(),fmt),n)}function TF(n){return $un(),Cnn((d8(),gmt),n)}function MF(n){return oin(),Cnn((v8(),Nmt),n)}function SF(n){return Q4(),Cnn((F4(),Gmt),n)}function PF(n){return gJ(),Cnn((B4(),iyt),n)}function CF(n){return oZ(),Cnn((H4(),uyt),n)}function IF(n){return O6(),Cnn((_4(),Pyt),n)}function OF(n){return dJ(),Cnn((q4(),Dyt),n)}function AF(n){return zyn(),Cnn((c7(),Hyt),n)}function $F(n){return DPn(),Cnn((ven(),Jyt),n)}function LF(n){return sZ(),Cnn((U4(),Fkt),n)}function NF(n){return Prn(),Cnn((z4(),Zkt),n)}function xF(n){return B0(),Cnn((G4(),Gkt),n)}function DF(n){return Cbn(),Cnn((m8(),rjt),n)}function RF(n){return D9(),Cnn((X4(),ojt),n)}function KF(n){return Hsn(),Cnn((y8(),bjt),n)}function _F(n){return Omn(),Cnn((u7(),zjt),n)}function FF(n){return Bcn(),Cnn((j8(),Qjt),n)}function BF(n){return Sbn(),Cnn((k8(),eEt),n)}function HF(n){return YLn(),Cnn((Unn(),BEt),n)}function qF(n){return Pbn(),Cnn((E8(),UEt),n)}function GF(n){return CM(),Cnn((W2(),VEt),n)}function zF(n){return IM(),Cnn((X2(),JEt),n)}function UF(n){return $6(),Cnn((V4(),eTt),n)}function XF(n){return $Sn(),Cnn((Gnn(),sTt),n)}function WF(n){return OM(),Cnn((V2(),UTt),n)}function VF(n){return Lun(),Cnn((W4(),QTt),n)}function QF(n){return rpn(),Cnn((znn(),bMt),n)}function YF(n){return PPn(),Cnn((zcn(),EMt),n)}function JF(n){return wvn(),Cnn((len(),xMt),n)}function ZF(n){return wEn(),Cnn((fen(),tSt),n)}function nB(n){return lWn(),Cnn((SO(),Zot),n)}function tB(n){return Srn(),Cnn(($4(),zut),n)}function eB(n){return Ffn(),Cnn((Wnn(),GPt),n)}function iB(n){return Rtn(),Cnn((M8(),VPt),n)}function rB(n){return Mbn(),Cnn((l7(),tCt),n)}function cB(n){return nMn(),Cnn((yen(),sCt),n)}function aB(n){return ufn(),Cnn((T8(),kCt),n)}function uB(n){return Xyn(),Cnn((f7(),PCt),n)}function oB(n){return n$n(),Cnn((Nan(),KCt),n)}function sB(n){return cpn(),Cnn((Vnn(),zCt),n)}function hB(n){return QEn(),Cnn((Htn(),ZCt),n)}function fB(n){return lIn(),Cnn((men(),uIt),n)}function lB(n){return mdn(),Cnn((w7(),BIt),n)}function bB(n){return n_n(),Cnn((Qun(),JIt),n)}function wB(n){return kUn(),Cnn((Qnn(),OIt),n)}function dB(n){return Fwn(),Cnn((b7(),rOt),n)}function gB(n){return Bsn(),Cnn((h7(),fOt),n)}function pB(n){return hAn(),Cnn((Ucn(),cAt),n)}function vB(n,t){return kW(n),n+(kW(t),t)}function mB(n,t){return $T(),f9(QQ(n.a),t)}function yB(n,t){return $T(),f9(QQ(n.a),t)}function kB(n,t){this.c=n,this.a=t,this.b=t-n}function jB(n,t,e){this.a=n,this.b=t,this.c=e}function EB(n,t,e){this.a=n,this.b=t,this.c=e}function TB(n,t,e){this.a=n,this.b=t,this.c=e}function MB(n,t,e){this.a=n,this.b=t,this.c=e}function SB(n,t,e){this.a=n,this.b=t,this.c=e}function PB(n,t,e){this.e=n,this.a=t,this.c=e}function CB(n,t,e){f$(),mJ.call(this,n,t,e)}function IB(n,t,e){f$(),rW.call(this,n,t,e)}function OB(n,t,e){f$(),rW.call(this,n,t,e)}function AB(n,t,e){f$(),rW.call(this,n,t,e)}function $B(n,t,e){f$(),IB.call(this,n,t,e)}function LB(n,t,e){f$(),IB.call(this,n,t,e)}function NB(n,t,e){f$(),LB.call(this,n,t,e)}function xB(n,t,e){f$(),OB.call(this,n,t,e)}function DB(n,t,e){f$(),AB.call(this,n,t,e)}function RB(n,t){return yX(n),yX(t),new hT(n,t)}function KB(n,t){return yX(n),yX(t),new _H(n,t)}function _B(n,t){return yX(n),yX(t),new FH(n,t)}function FB(n,t){return yX(n),yX(t),new lT(n,t)}function BB(n,t){return JH(null==n||Qpn(n,t)),n}function HB(n){var t;return fnn(t=new Np,n),t}function qB(n){var t;return fnn(t=new Rv,n),t}function GB(n){var t;return qrn(t=new zv,n),t}function zB(n){var t;return qrn(t=new YT,n),t}function UB(n){return!n.e&&(n.e=new Np),n.e}function XB(n){return!n.c&&(n.c=new Bo),n.c}function WB(n,t){return n.c[n.c.length]=t,!0}function VB(n,t){this.c=n,this.b=t,this.a=!1}function QB(n){this.d=n,Mb(this),this.b=rz(n.d)}function YB(){this.a=";,;",this.b="",this.c=""}function JB(n,t,e){Uz.call(this,t,e),this.a=n}function ZB(n,t,e){this.b=n,gO.call(this,t,e)}function nH(n,t,e){this.c=n,PS.call(this,t,e)}function tH(n,t,e){_Cn(e,0,n,t,e.length,!1)}function eH(n,t,e,i,r){n.b=t,n.c=e,n.d=i,n.a=r}function iH(n,t){t&&(n.b=t,n.a=(EW(t),t.a))}function rH(n,t,e,i,r){n.d=t,n.c=e,n.a=i,n.b=r}function cH(n){var t,e;t=n.b,e=n.c,n.b=e,n.c=t}function aH(n){var t,e;e=n.d,t=n.a,n.d=t,n.a=e}function uH(n){return uan(xU(JO(n)?Pan(n):n))}function oH(n,t){return E$(oq(n.d),oq(t.d))}function sH(n,t){return t==(kUn(),CIt)?n.c:n.d}function hH(){hH=O,kUn(),Rmt=CIt,Kmt=oIt}function fH(){this.b=Gy(MD(mpn((fRn(),aat))))}function lH(n){return dM(),x8(Ant,HWn,1,n,5,1)}function bH(n){return new xC(n.c+n.b,n.d+n.a)}function wH(n,t){return SM(),E$(n.d.p,t.d.p)}function dH(n){return Px(0!=n.b),Atn(n,n.a.a)}function gH(n){return Px(0!=n.b),Atn(n,n.c.b)}function pH(n,t){if(!n)throw Hp(new $y(t))}function vH(n,t){if(!n)throw Hp(new _y(t))}function mH(n,t,e){dP.call(this,n,t),this.b=e}function yH(n,t,e){LI.call(this,n,t),this.c=e}function kH(n,t,e){btn.call(this,t,e),this.d=n}function jH(n){o_(),yo.call(this),this.th(n)}function EH(n,t,e){this.a=n,NO.call(this,t,e)}function TH(n,t,e){this.a=n,NO.call(this,t,e)}function MH(n,t,e){LI.call(this,n,t),this.c=e}function SH(){R5(),oW.call(this,(WM(),zAt))}function PH(n){return null!=n&&!Xbn(n,LAt,NAt)}function CH(n,t){return(Wfn(n)<<4|Wfn(t))&QVn}function IH(n,t){return nV(),zvn(n,t),new GW(n,t)}function OH(n,t){var e;n.n&&(e=t,WB(n.f,e))}function AH(n,t,e){rtn(n,t,new GX(e))}function $H(n,t){var e;return e=n.c,Kin(n,t),e}function LH(n,t){return n.g=t<0?-1:t,n}function NH(n,t){return ztn(n),n.a*=t,n.b*=t,n}function xH(n,t,e,i,r){n.c=t,n.d=e,n.b=i,n.a=r}function DH(n,t){return r5(n,t,n.c.b,n.c),!0}function RH(n){n.a.b=n.b,n.b.a=n.a,n.a=n.b=null}function KH(n){this.b=n,this.a=lz(this.b.a).Ed()}function _H(n,t){this.b=n,this.a=t,Bh.call(this)}function FH(n,t){this.a=n,this.b=t,Bh.call(this)}function BH(n,t){Uz.call(this,t,1040),this.a=n}function HH(n){return 0==n||isNaN(n)?n:n<0?-1:1}function qH(n){return MQ(),PMn(n)==JJ(OMn(n))}function GH(n){return MQ(),OMn(n)==JJ(PMn(n))}function zH(n,t){return Yjn(n,new dP(t.a,t.b))}function UH(n){return!b5(n)&&n.c.i.c==n.d.i.c}function XH(n){var t;return t=n.n,n.a.b+t.d+t.a}function WH(n){var t;return t=n.n,n.e.b+t.d+t.a}function VH(n){var t;return t=n.n,n.e.a+t.b+t.c}function QH(n){return wWn(),new oG(0,n)}function YH(n){return n.a?n.a:eQ(n)}function JH(n){if(!n)throw Hp(new Ky(null))}function ZH(){ZH=O,SQ(),uLt=new Gb(P7n)}function nq(){nq=O,new svn((ty(),_nt),(ey(),Knt))}function tq(){tq=O,Itt=x8(Att,sVn,19,256,0,1)}function eq(n,t,e,i){awn.call(this,n,t,e,i,0,0)}function iq(n,t,e){return VW(n.b,BB(e.b,17),t)}function rq(n,t,e){return VW(n.b,BB(e.b,17),t)}function cq(n,t){return WB(n,new xC(t.a,t.b))}function aq(n,t){return n.c<t.c?-1:n.c==t.c?0:1}function uq(n){return n.e.c.length+n.g.c.length}function oq(n){return n.e.c.length-n.g.c.length}function sq(n){return n.b.c.length-n.e.c.length}function hq(n){return BZ(),(kUn(),bIt).Hc(n.j)}function fq(n){o_(),jH.call(this,n),this.a=-1}function lq(n,t){xI.call(this,n,t),this.a=this}function bq(n,t){var e;return(e=mX(n,t)).i=2,e}function wq(n,t){return++n.j,n.Ti(t)}function dq(n,t,e){return n.a=-1,WN(n,t.g,e),n}function gq(n,t,e){Kzn(n.a,n.b,n.c,BB(t,202),e)}function pq(n,t){Bin(n,null==t?null:(kW(t),t))}function vq(n,t){Rin(n,null==t?null:(kW(t),t))}function mq(n,t){Rin(n,null==t?null:(kW(t),t))}function yq(n,t,e){return new wK(dW(n).Ie(),e,t)}function kq(n,t,e,i,r,c){return Vjn(n,t,e,i,r,0,c)}function jq(){jq=O,jtt=x8(Ttt,sVn,217,256,0,1)}function Eq(){Eq=O,$tt=x8(Rtt,sVn,162,256,0,1)}function Tq(){Tq=O,Ktt=x8(_tt,sVn,184,256,0,1)}function Mq(){Mq=O,Mtt=x8(Stt,sVn,172,128,0,1)}function Sq(){eH(this,!1,!1,!1,!1)}function Pq(n){WX(),this.a=(SQ(),new Gb(yX(n)))}function Cq(n){for(yX(n);n.Ob();)n.Pb(),n.Qb()}function Iq(n){n.a.cd(),BB(n.a.dd(),14).gc(),wk()}function Oq(n){this.c=n,this.b=this.c.d.vc().Kc()}function Aq(n){this.c=n,this.a=new QT(this.c.a)}function $q(n){this.a=new XT(n.gc()),Frn(this,n)}function Lq(n){ew.call(this,new v4),Frn(this,n)}function Nq(n,t){return n.a+=Bdn(t,0,t.length),n}function xq(n,t){return l1(t,n.c.length),n.c[t]}function Dq(n,t){return l1(t,n.a.length),n.a[t]}function Rq(n,t){dM(),B8.call(this,n),this.a=t}function Kq(n,t){return jgn(rbn(jgn(n.a).a,t.a))}function _q(n,t){return kW(n),Ncn(n,(kW(t),t))}function Fq(n,t){return kW(t),Ncn(t,(kW(n),n))}function Bq(n,t){return $X(t,0,Hq(t[0],jgn(1)))}function Hq(n,t){return Kq(BB(n,162),BB(t,162))}function qq(n){return n.c-BB(xq(n.a,n.b),287).b}function Gq(n){return n.q?n.q:(SQ(),SQ(),het)}function zq(n){return n.e.Hd().gc()*n.c.Hd().gc()}function Uq(n,t,e){return E$(t.d[n.g],e.d[n.g])}function Xq(n,t,e){return E$(n.d[t.p],n.d[e.p])}function Wq(n,t,e){return E$(n.d[t.p],n.d[e.p])}function Vq(n,t,e){return E$(n.d[t.p],n.d[e.p])}function Qq(n,t,e){return E$(n.d[t.p],n.d[e.p])}function Yq(n,t,i){return e.Math.min(i/n,1/t)}function Jq(n,t){return n?0:e.Math.max(0,t-1)}function Zq(n,t){var e;for(e=0;e<t;++e)n[e]=-1}function nG(n){var t;return(t=uEn(n))?nG(t):n}function tG(n,t){return null==n.a&&wRn(n),n.a[t]}function eG(n){return n.c?n.c.f:n.e.b}function iG(n){return n.c?n.c.g:n.e.a}function rG(n){gtn.call(this,n.gc()),pX(this,n)}function cG(n,t){f$(),jp.call(this,t),this.a=n}function aG(n,t,e){this.a=n,$L.call(this,t,e,2)}function uG(n,t,e,i){_h(this),rH(this,n,t,e,i)}function oG(n,t){wWn(),Ap.call(this,n),this.a=t}function sG(n){this.b=new YT,this.a=n,this.c=-1}function hG(){this.d=new xC(0,0),this.e=new Rv}function fG(n){ZN.call(this,0,0),this.a=n,this.b=0}function lG(n){this.a=n,this.c=new xp,ron(this)}function bG(n){if(n.e.c!=n.b)throw Hp(new vv)}function wG(n){if(n.c.e!=n.a)throw Hp(new vv)}function dG(n){return JO(n)?0|n:TE(n)}function gG(n,t){return wWn(),new UU(n,t)}function pG(n,t){return null==n?null==t:mK(n,t)}function vG(n,t){return null==n?null==t:mgn(n,t)}function mG(n,t,e){return orn(n.a,t),EU(n,t.g,e)}function yG(n,t,e){ihn(0,t,n.length),z9(n,0,t,e)}function kG(n,t,e){LZ(t,n.c.length),MS(n.c,t,e)}function jG(n,t,e){var i;for(i=0;i<t;++i)n[i]=e}function EG(n,t){var e;return $on(e=nbn(n),t),e}function TG(n,t){return!n&&(n=[]),n[n.length]=t,n}function MG(n,t){return!(void 0===n.a.get(t))}function SG(n,t){return Xin(new nn,new uw(n),t)}function PG(n){return null==n?Set:new vy(kW(n))}function CG(n,t){return cL(t,22)&&SN(n,BB(t,22))}function IG(n,t){return cL(t,22)&&$tn(n,BB(t,22))}function OG(n){return H$n(n,26)*rYn+H$n(n,27)*cYn}function AG(n){return Array.isArray(n)&&n.im===I}function $G(n){n.b?$G(n.b):n.d.dc()&&n.f.c.Bc(n.e)}function LG(n,t){UR(n.c,t),n.b.c+=t.a,n.b.d+=t.b}function NG(n,t){LG(n,XR(new xC(t.a,t.b),n.c))}function xG(n,t){this.b=new YT,this.a=n,this.c=t}function DG(){this.b=new Ot,this.c=new lY(this)}function RG(){this.d=new mn,this.e=new fY(this)}function KG(){KZ(),this.f=new YT,this.e=new YT}function _G(){BZ(),this.k=new xp,this.d=new Rv}function FG(){FG=O,bOt=new XA((sWn(),aPt),0)}function BG(){BG=O,qnt=new fG(x8(Ant,HWn,1,0,5,1))}function HG(n,t,e){VAn(e,n,1),WB(t,new cP(e,n))}function qG(n,t,e){Fkn(e,n,1),WB(t,new bP(e,n))}function GG(n,t,e){return TU(n,new xS(t.a,e.a))}function zG(n,t,e){return-E$(n.f[t.p],n.f[e.p])}function UG(n,t,e){var i;n&&((i=n.i).c=t,i.b=e)}function XG(n,t,e){var i;n&&((i=n.i).d=t,i.a=e)}function WG(n,t,e){return n.a=-1,WN(n,t.g+1,e),n}function VG(n,t,e){return e=T_n(n,BB(t,49),7,e)}function QG(n,t,e){return e=T_n(n,BB(t,49),3,e)}function YG(n,t,e){this.a=n,LL.call(this,t,e,22)}function JG(n,t,e){this.a=n,LL.call(this,t,e,14)}function ZG(n,t,e,i){f$(),N0.call(this,n,t,e,i)}function nz(n,t,e,i){f$(),N0.call(this,n,t,e,i)}function tz(n,t){0!=(t.Bb&h6n)&&!n.a.o&&(n.a.o=t)}function ez(n){return null!=n&&DU(n)&&!(n.im===I)}function iz(n){return!Array.isArray(n)&&n.im===I}function rz(n){return cL(n,15)?BB(n,15).Yc():n.Kc()}function cz(n){return n.Qc(x8(Ant,HWn,1,n.gc(),5,1))}function az(n,t){return lgn(F7(n,t))?t.Qh():null}function uz(n){n?Fmn(n,($T(),Btt),""):$T()}function oz(n){this.a=(BG(),qnt),this.d=BB(yX(n),47)}function sz(n,t,e,i){this.a=n,W6.call(this,n,t,e,i)}function hz(n){eS(),this.a=0,this.b=n-1,this.c=1}function fz(n){V$(this),this.g=n,jQ(this),this._d()}function lz(n){return n.c?n.c:n.c=n.Id()}function bz(n){return n.d?n.d:n.d=n.Jd()}function wz(n){return n.c||(n.c=n.Dd())}function dz(n){return n.f||(n.f=n.Dc())}function gz(n){return n.i||(n.i=n.bc())}function pz(n){return wWn(),new vJ(10,n,0)}function vz(n){return JO(n)?""+n:GDn(n)}function mz(n){if(n.e.j!=n.d)throw Hp(new vv)}function yz(n,t){return uan(lSn(JO(n)?Pan(n):n,t))}function kz(n,t){return uan(jAn(JO(n)?Pan(n):n,t))}function jz(n,t){return uan(JSn(JO(n)?Pan(n):n,t))}function Ez(n,t){return bR((kW(n),n),(kW(t),t))}function Tz(n,t){return Pln((kW(n),n),(kW(t),t))}function Mz(n,t){return yX(t),n.a.Ad(t)&&!n.b.Ad(t)}function Sz(n,t){return M$(n.l&t.l,n.m&t.m,n.h&t.h)}function Pz(n,t){return M$(n.l|t.l,n.m|t.m,n.h|t.h)}function Cz(n,t){return M$(n.l^t.l,n.m^t.m,n.h^t.h)}function Iz(n,t){return $fn(n,(kW(t),new rw(t)))}function Oz(n,t){return $fn(n,(kW(t),new cw(t)))}function Az(n){return gcn(),0!=BB(n,11).e.c.length}function $z(n){return gcn(),0!=BB(n,11).g.c.length}function Lz(n,t){return Irn(),Pln(t.a.o.a,n.a.o.a)}function Nz(n,t,e){return TUn(n,BB(t,11),BB(e,11))}function xz(n){return n.e?D6(n.e):null}function Dz(n){n.d||(n.d=n.b.Kc(),n.c=n.b.gc())}function Rz(n,t,e){n.a.Mb(e)&&(n.b=!0,t.td(e))}function Kz(n,t){if(n<0||n>=t)throw Hp(new Sv)}function _z(n,t,e){return $X(t,0,Hq(t[0],e[0])),t}function Fz(n,t,e){t.Ye(e,Gy(MD(RX(n.b,e)))*n.a)}function Bz(n,t,e){return jDn(),Dcn(n,t)&&Dcn(n,e)}function Hz(n){return lIn(),!n.Hc(eIt)&&!n.Hc(rIt)}function qz(n){return new xC(n.c+n.b/2,n.d+n.a/2)}function Gz(n,t){return t.kh()?tfn(n.b,BB(t,49)):t}function zz(n,t){this.e=n,this.d=0!=(64&t)?t|hVn:t}function Uz(n,t){this.c=0,this.d=n,this.b=64|t|hVn}function Xz(n){this.b=new J6(11),this.a=(PQ(),n)}function Wz(n){this.b=null,this.a=(PQ(),n||wet)}function Vz(n){this.a=rvn(n.a),this.b=new t_(n.b)}function Qz(n){this.b=n,cx.call(this,n),ML(this)}function Yz(n){this.b=n,ux.call(this,n),SL(this)}function Jz(n,t,e){this.a=n,eK.call(this,t,e,5,6)}function Zz(n,t,e,i){this.b=n,$L.call(this,t,e,i)}function nU(n,t,e,i,r){k9.call(this,n,t,e,i,r,-1)}function tU(n,t,e,i,r){j9.call(this,n,t,e,i,r,-1)}function eU(n,t,e,i){$L.call(this,n,t,e),this.b=i}function iU(n,t,e,i){yH.call(this,n,t,e),this.b=i}function rU(n){NI.call(this,n,!1),this.a=!1}function cU(n,t){this.b=n,hl.call(this,n.b),this.a=t}function aU(n,t){WX(),jT.call(this,n,sfn(new Jy(t)))}function uU(n,t){return wWn(),new cW(n,t,0)}function oU(n,t){return wWn(),new cW(6,n,t)}function sU(n,t){return mK(n.substr(0,t.length),t)}function hU(n,t){return XI(t)?eY(n,t):!!AY(n.f,t)}function fU(n,t){for(kW(t);n.Ob();)t.td(n.Pb())}function lU(n,t,e){ODn(),this.e=n,this.d=t,this.a=e}function bU(n,t,e,i){var r;(r=n.i).i=t,r.a=e,r.b=i}function wU(n){var t;for(t=n;t.f;)t=t.f;return t}function dU(n){var t;return Px(null!=(t=Eon(n))),t}function gU(n){var t;return Px(null!=(t=mln(n))),t}function pU(n,t){var e;return w6(t,e=n.a.gc()),e-t}function vU(n,t){var e;for(e=0;e<t;++e)n[e]=!1}function mU(n,t,e,i){var r;for(r=t;r<e;++r)n[r]=i}function yU(n,t,e,i){ihn(t,e,n.length),mU(n,t,e,i)}function kU(n,t,e){Kz(e,n.a.c.length),c5(n.a,e,t)}function jU(n,t,e){this.c=n,this.a=t,SQ(),this.b=e}function EU(n,t,e){var i;return i=n.b[t],n.b[t]=e,i}function TU(n,t){return null==n.a.zc(t,n)}function MU(n){if(!n)throw Hp(new yv);return n.d}function SU(n,t){if(null==n)throw Hp(new Hy(t))}function PU(n,t){return!!t&&Frn(n,t)}function CU(n,t,e){return ehn(n,t.g,e),orn(n.c,t),n}function IU(n){return Mzn(n,(Ffn(),_Pt)),n.d=!0,n}function OU(n){return!n.j&&yb(n,FKn(n.g,n.b)),n.j}function AU(n){Mx(-1!=n.b),s6(n.c,n.a=n.b),n.b=-1}function $U(n){n.f=new eA(n),n.g=new iA(n),oY(n)}function LU(n){return new Rq(null,qU(n,n.length))}function NU(n){return new oz(new WL(n.a.length,n.a))}function xU(n){return M$(~n.l&SQn,~n.m&SQn,~n.h&PQn)}function DU(n){return typeof n===AWn||typeof n===xWn}function RU(n){return n==RQn?x7n:n==KQn?"-INF":""+n}function KU(n){return n==RQn?x7n:n==KQn?"-INF":""+n}function _U(n,t){return n>0?e.Math.log(n/t):-100}function FU(n,t){return Vhn(n,t)<0?-1:Vhn(n,t)>0?1:0}function BU(n,t,e){return SHn(n,BB(t,46),BB(e,167))}function HU(n,t){return BB(wz(lz(n.a)).Xb(t),42).cd()}function qU(n,t){return ptn(t,n.length),new BH(n,t)}function GU(n,t){this.d=n,AL.call(this,n),this.e=t}function zU(n){this.d=(kW(n),n),this.a=0,this.c=bVn}function UU(n,t){Ap.call(this,1),this.a=n,this.b=t}function XU(n,t){return n.c?XU(n.c,t):WB(n.b,t),n}function WU(n,t,e){var i;return i=dnn(n,t),r4(n,t,e),i}function VU(n,t){return m7(n.slice(0,t),n)}function QU(n,t,e){var i;for(i=0;i<t;++i)$X(n,i,e)}function YU(n,t,e,i,r){for(;t<e;)i[r++]=fV(n,t++)}function JU(n,t){return Pln(n.c.c+n.c.b,t.c.c+t.c.b)}function ZU(n,t){return null==Mon(n.a,t,(hN(),ptt))}function nX(n,t){r5(n.d,t,n.b.b,n.b),++n.a,n.c=null}function tX(n,t){J$(n,cL(t,153)?t:BB(t,1937).gl())}function eX(n,t){JT($V(n.Oc(),new Yr),new Id(t))}function iX(n,t,e,i,r){NEn(n,BB(h6(t.k,e),15),e,i,r)}function rX(n){n.s=NaN,n.c=NaN,ZOn(n,n.e),ZOn(n,n.j)}function cX(n){n.a=null,n.e=null,$U(n.b),n.d=0,++n.c}function aX(n){return e.Math.abs(n.d.e-n.e.e)-n.a}function uX(n,t,e){return BB(n.c._c(t,BB(e,133)),42)}function oX(){return ry(),Pun(Gk(Wnt,1),$Vn,538,0,[znt])}function sX(n){return MQ(),JJ(PMn(n))==JJ(OMn(n))}function hX(n){$R.call(this),this.a=n,WB(n.a,this)}function fX(n,t){this.d=Sln(n),this.c=t,this.a=.5*t}function lX(){v4.call(this),this.a=!0,this.b=!0}function bX(n){return(null==n.i&&qFn(n),n.i).length}function wX(n){return cL(n,99)&&0!=(BB(n,18).Bb&h6n)}function dX(n,t){++n.j,sTn(n,n.i,t),zIn(n,BB(t,332))}function gX(n,t){return t=n.nk(null,t),$Tn(n,null,t)}function pX(n,t){return n.hi()&&(t=nZ(n,t)),n.Wh(t)}function vX(n,t,e){var i;return Qen(e,i=mX(n,t)),i}function mX(n,t){var e;return(e=new pon).j=n,e.d=t,e}function yX(n){if(null==n)throw Hp(new gv);return n}function kX(n){return n.j||(n.j=new wl(n))}function jX(n){return n.f||(n.f=new UL(n))}function EX(n){return n.k||(n.k=new Yf(n))}function TX(n){return n.k||(n.k=new Yf(n))}function MX(n){return n.g||(n.g=new Qf(n))}function SX(n){return n.i||(n.i=new nl(n))}function PX(n){return n.d||(n.d=new il(n))}function CX(n){return yX(n),cL(n,475)?BB(n,475):Bbn(n)}function IX(n){return cL(n,607)?n:new bJ(n)}function OX(n,t){return w2(t,n.c.b.c.gc()),new sT(n,t)}function AX(n,t,e){return wWn(),new T0(n,t,e)}function $X(n,t,e){return Sx(null==e||Q_n(n,e)),n[t]=e}function LX(n,t){var e;return w2(t,e=n.a.gc()),e-1-t}function NX(n,t){return n.a+=String.fromCharCode(t),n}function xX(n,t){return n.a+=String.fromCharCode(t),n}function DX(n,t){for(kW(t);n.c<n.d;)n.ze(t,n.c++)}function RX(n,t){return XI(t)?SJ(n,t):qI(AY(n.f,t))}function KX(n,t){return MQ(),n==PMn(t)?OMn(t):PMn(t)}function _X(n,t){nW(n,new GX(null!=t.f?t.f:""+t.g))}function FX(n,t){nW(n,new GX(null!=t.f?t.f:""+t.g))}function BX(n){this.b=new Np,this.a=new Np,this.c=n}function HX(n){this.c=new Gj,this.a=new Np,this.b=n}function qX(n){$R.call(this),this.a=new Gj,this.c=n}function GX(n){if(null==n)throw Hp(new gv);this.a=n}function zX(n){Mv(),this.b=new Np,this.a=n,vGn(this,n)}function UX(n){this.c=n,this.a=new YT,this.b=new YT}function XX(){XX=O,ott=new Ml(!1),stt=new Ml(!0)}function WX(){WX=O,s_(),Fnt=new SY((SQ(),SQ(),set))}function VX(){VX=O,s_(),Vnt=new vS((SQ(),SQ(),fet))}function QX(){QX=O,t$t=GIn(),gWn(),i$t&&Rkn()}function YX(n,t){return Irn(),BB(oV(n,t.d),15).Fc(t)}function JX(n,t,e,i){return 0==e||(e-i)/e<n.e||t>=n.g}function ZX(n,t,e){return NRn(n,yrn(n,t,e))}function nW(n,t){var e;dnn(n,e=n.a.length),r4(n,e,t)}function tW(n,t){console[n].call(console,t)}function eW(n,t){var e;++n.j,e=n.Vi(),n.Ii(n.oi(e,t))}function iW(n,t,e){BB(t.b,65),Otn(t.a,new EB(n,e,t))}function rW(n,t,e){jp.call(this,t),this.a=n,this.b=e}function cW(n,t,e){Ap.call(this,n),this.a=t,this.b=e}function aW(n,t,e){this.a=n,kp.call(this,t),this.b=e}function uW(n,t,e){this.a=n,H2.call(this,8,t,null,e)}function oW(n){this.a=(kW(_9n),_9n),this.b=n,new Nm}function sW(n){this.c=n,this.b=this.c.a,this.a=this.c.e}function hW(n){this.c=n,this.b=n.a.d.a,bD(n.a.e,this)}function fW(n){Mx(-1!=n.c),n.d.$c(n.c),n.b=n.c,n.c=-1}function lW(n){return e.Math.sqrt(n.a*n.a+n.b*n.b)}function bW(n,t){return Kz(t,n.a.c.length),xq(n.a,t)}function wW(n,t){return GI(n)===GI(t)||null!=n&&Nfn(n,t)}function dW(n){return 0>=n?new VT:Win(n-1)}function gW(n){return!!SNt&&eY(SNt,n)}function pW(n){return n?n.dc():!n.Kc().Ob()}function vW(n){return!n.a&&n.c?n.c.b:n.a}function mW(n){return!n.a&&(n.a=new $L(LOt,n,4)),n.a}function yW(n){return!n.d&&(n.d=new $L(VAt,n,1)),n.d}function kW(n){if(null==n)throw Hp(new gv);return n}function jW(n){n.c?n.c.He():(n.d=!0,QNn(n))}function EW(n){n.c?EW(n.c):(Qln(n),n.d=!0)}function TW(n){TV(n.a),n.b=x8(Ant,HWn,1,n.b.length,5,1)}function MW(n,t){return E$(t.j.c.length,n.j.c.length)}function SW(n,t){n.c<0||n.b.b<n.c?fO(n.b,t):n.a._e(t)}function PW(n,t){var e;(e=n.Yg(t))>=0?n.Bh(e):cIn(n,t)}function CW(n){return n.c.i.c==n.d.i.c}function IW(n){if(4!=n.p)throw Hp(new dv);return n.e}function OW(n){if(3!=n.p)throw Hp(new dv);return n.e}function AW(n){if(6!=n.p)throw Hp(new dv);return n.f}function $W(n){if(6!=n.p)throw Hp(new dv);return n.k}function LW(n){if(3!=n.p)throw Hp(new dv);return n.j}function NW(n){if(4!=n.p)throw Hp(new dv);return n.j}function xW(n){return!n.b&&(n.b=new Tp(new xm)),n.b}function DW(n){return-2==n.c&&gb(n,uMn(n.g,n.b)),n.c}function RW(n,t){var e;return(e=mX("",n)).n=t,e.i=1,e}function KW(n,t){LG(BB(t.b,65),n),Otn(t.a,new Aw(n))}function _W(n,t){f9((!n.a&&(n.a=new oR(n,n)),n.a),t)}function FW(n,t){this.b=n,GU.call(this,n,t),ML(this)}function BW(n,t){this.b=n,RK.call(this,n,t),SL(this)}function HW(n,t,e,i){vT.call(this,n,t),this.d=e,this.a=i}function qW(n,t,e,i){vT.call(this,n,e),this.a=t,this.f=i}function GW(n,t){W$.call(this,Vin(yX(n),yX(t))),this.a=t}function zW(){dMn.call(this,S7n,(rE(),dLt)),Wqn(this)}function UW(){dMn.call(this,V9n,(iE(),n$t)),OHn(this)}function XW(){gT.call(this,"DELAUNAY_TRIANGULATION",0)}function WW(n){return String.fromCharCode.apply(null,n)}function VW(n,t,e){return XI(t)?mZ(n,t,e):jCn(n.f,t,e)}function QW(n){return SQ(),n?n.ve():(PQ(),PQ(),get)}function YW(n,t,e){return Nun(),e.pg(n,BB(t.cd(),146))}function JW(n,t){return nq(),new svn(new rN(n),new iN(t))}function ZW(n){return lin(n,NVn),ttn(rbn(rbn(5,n),n/10|0))}function nV(){nV=O,Bnt=new hy(Pun(Gk(Hnt,1),kVn,42,0,[]))}function tV(n){return!n.d&&(n.d=new Hb(n.c.Cc())),n.d}function eV(n){return!n.a&&(n.a=new Lk(n.c.vc())),n.a}function iV(n){return!n.b&&(n.b=new Ak(n.c.ec())),n.b}function rV(n,t){for(;t-- >0;)n=n<<1|(n<0?1:0);return n}function cV(n,t){return GI(n)===GI(t)||null!=n&&Nfn(n,t)}function aV(n,t){return hN(),BB(t.b,19).a<n}function uV(n,t){return hN(),BB(t.a,19).a<n}function oV(n,t){return CG(n.a,t)?n.b[BB(t,22).g]:null}function sV(n,t,e,i){n.a=fx(n.a,0,t)+""+i+nO(n.a,e)}function hV(n,t){n.u.Hc((lIn(),eIt))&&PIn(n,t),z6(n,t)}function fV(n,t){return b1(t,n.length),n.charCodeAt(t)}function lV(){dy.call(this,"There is no more element.")}function bV(n){this.d=n,this.a=this.d.b,this.b=this.d.c}function wV(n){n.b=!1,n.c=!1,n.d=!1,n.a=!1}function dV(n,t,e,i){return Rcn(n,t,e,!1),Zfn(n,i),n}function gV(n){return n.j.c=x8(Ant,HWn,1,0,5,1),n.a=-1,n}function pV(n){return!n.c&&(n.c=new hK(KOt,n,5,8)),n.c}function vV(n){return!n.b&&(n.b=new hK(KOt,n,4,7)),n.b}function mV(n){return!n.n&&(n.n=new eU(zOt,n,1,7)),n.n}function yV(n){return!n.c&&(n.c=new eU(XOt,n,9,9)),n.c}function kV(n){return n.e==C7n&&vb(n,Tgn(n.g,n.b)),n.e}function jV(n){return n.f==C7n&&mb(n,pkn(n.g,n.b)),n.f}function EV(n){var t;return!(t=n.b)&&(n.b=t=new Jf(n)),t}function TV(n){var t;for(t=n.Kc();t.Ob();)t.Pb(),t.Qb()}function MV(n){if(zbn(n.d),n.d.d!=n.c)throw Hp(new vv)}function SV(n,t){this.b=n,this.c=t,this.a=new QT(this.b)}function PV(n,t,e){this.a=XVn,this.d=n,this.b=t,this.c=e}function CV(n,t){this.d=(kW(n),n),this.a=16449,this.c=t}function IV(n,t){Jln(n,Gy(Ren(t,"x")),Gy(Ren(t,"y")))}function OV(n,t){Jln(n,Gy(Ren(t,"x")),Gy(Ren(t,"y")))}function AV(n,t){return Qln(n),new Rq(n,new Q9(t,n.a))}function $V(n,t){return Qln(n),new Rq(n,new M6(t,n.a))}function LV(n,t){return Qln(n),new AD(n,new E6(t,n.a))}function NV(n,t){return Qln(n),new $D(n,new T6(t,n.a))}function xV(n,t){return new pY(BB(yX(n),62),BB(yX(t),62))}function DV(n,t){return jM(),Pln((kW(n),n),(kW(t),t))}function RV(){return wM(),Pun(Gk(Pct,1),$Vn,481,0,[rct])}function KV(){return CM(),Pun(Gk(YEt,1),$Vn,482,0,[XEt])}function _V(){return IM(),Pun(Gk(tTt,1),$Vn,551,0,[QEt])}function FV(){return OM(),Pun(Gk(VTt,1),$Vn,530,0,[GTt])}function BV(n){this.a=new Np,this.e=x8(ANt,sVn,48,n,0,2)}function HV(n,t,e,i){this.a=n,this.e=t,this.d=e,this.c=i}function qV(n,t,e,i){this.a=n,this.c=t,this.b=e,this.d=i}function GV(n,t,e,i){this.c=n,this.b=t,this.a=e,this.d=i}function zV(n,t,e,i){this.c=n,this.b=t,this.d=e,this.a=i}function UV(n,t,e,i){this.c=n,this.d=t,this.b=e,this.a=i}function XV(n,t,e,i){this.a=n,this.d=t,this.c=e,this.b=i}function WV(n,t,e,i){gT.call(this,n,t),this.a=e,this.b=i}function VV(n,t,e,i){this.a=n,this.c=t,this.d=e,this.b=i}function QV(n,t,e){EHn(n.a,e),nun(e),AAn(n.b,e),rqn(t,e)}function YV(n,t,e){var i;return i=$Un(n),t.Kh(e,i)}function JV(n,t){var e,i;return(e=n/t)>(i=CJ(e))&&++i,i}function ZV(n){var t;return cen(t=new Kp,n),t}function nQ(n){var t;return DMn(t=new Kp,n),t}function tQ(n,t){return Kcn(t,RX(n.f,t)),null}function eQ(n){return Yin(n)||null}function iQ(n){return!n.b&&(n.b=new eU(_Ot,n,12,3)),n.b}function rQ(n){return null!=n&&xT(jAt,n.toLowerCase())}function cQ(n,t){return Pln(iG(n)*eG(n),iG(t)*eG(t))}function aQ(n,t){return Pln(iG(n)*eG(n),iG(t)*eG(t))}function uQ(n,t){return Pln(n.d.c+n.d.b/2,t.d.c+t.d.b/2)}function oQ(n,t){return Pln(n.g.c+n.g.b/2,t.g.c+t.g.b/2)}function sQ(n,t,e){e.a?Cen(n,t.b-n.f/2):Pen(n,t.a-n.g/2)}function hQ(n,t,e,i){this.a=n,this.b=t,this.c=e,this.d=i}function fQ(n,t,e,i){this.a=n,this.b=t,this.c=e,this.d=i}function lQ(n,t,e,i){this.e=n,this.a=t,this.c=e,this.d=i}function bQ(n,t,e,i){this.a=n,this.c=t,this.d=e,this.b=i}function wQ(n,t,e,i){f$(),e6.call(this,t,e,i),this.a=n}function dQ(n,t,e,i){f$(),e6.call(this,t,e,i),this.a=n}function gQ(n,t){this.a=n,OD.call(this,n,BB(n.d,15).Zc(t))}function pQ(n){this.f=n,this.c=this.f.e,n.f>0&&ujn(this)}function vQ(n,t,e,i){this.b=n,this.c=i,vO.call(this,t,e)}function mQ(n){return Px(n.b<n.d.gc()),n.d.Xb(n.c=n.b++)}function yQ(n){n.a.a=n.c,n.c.b=n.a,n.a.b=n.c.a=null,n.b=0}function kQ(n,t){return n.b=t.b,n.c=t.c,n.d=t.d,n.a=t.a,n}function jQ(n){return n.n&&(n.e!==FVn&&n._d(),n.j=null),n}function EQ(n){return JH(null==n||DU(n)&&!(n.im===I)),n}function TQ(n){this.b=new Np,gun(this.b,this.b),this.a=n}function MQ(){MQ=O,Sct=new Np,Mct=new xp,Tct=new Np}function SQ(){SQ=O,set=new S,het=new C,fet=new M}function PQ(){PQ=O,wet=new R,det=new R,get=new K}function CQ(){CQ=O,hit=new gn,lit=new RG,fit=new pn}function IQ(){256==ait&&(iit=rit,rit=new r,ait=0),++ait}function OQ(n){return n.f||(n.f=new pT(n,n.c))}function AQ(n){return QIn(n)&&qy(TD(ZAn(n,(HXn(),dgt))))}function $Q(n,t){return JIn(n,BB(mMn(t,(HXn(),Wgt)),19),t)}function LQ(n,t){return Tfn(n.j,t.s,t.c)+Tfn(t.e,n.s,n.c)}function NQ(n,t){n.e&&!n.e.a&&(Fp(n.e,t),NQ(n.e,t))}function xQ(n,t){n.d&&!n.d.a&&(Fp(n.d,t),xQ(n.d,t))}function DQ(n,t){return-Pln(iG(n)*eG(n),iG(t)*eG(t))}function RQ(n){return BB(n.cd(),146).tg()+":"+Bbn(n.dd())}function KQ(n){var t;G_(),(t=BB(n.g,10)).n.a=n.d.c+t.d.b}function _Q(n,t,e){return MM(),xbn(BB(RX(n.e,t),522),e)}function FQ(n,t){return tsn(n),tsn(t),Py(BB(n,22),BB(t,22))}function BQ(n,t,e){n.i=0,n.e=0,t!=e&&Xon(n,t,e)}function HQ(n,t,e){n.i=0,n.e=0,t!=e&&Won(n,t,e)}function qQ(n,t,e){rtn(n,t,new Sl(XK(e)))}function GQ(n,t,e,i,r,c){j9.call(this,n,t,e,i,r,c?-2:-1)}function zQ(n,t,e,i){LI.call(this,t,e),this.b=n,this.a=i}function UQ(n,t){new YT,this.a=new km,this.b=n,this.c=t}function XQ(n,t){return BB(mMn(n,(hWn(),clt)),15).Fc(t),t}function WQ(n,t){if(null==n)throw Hp(new Hy(t));return n}function VQ(n){return!n.q&&(n.q=new eU(QAt,n,11,10)),n.q}function QQ(n){return!n.s&&(n.s=new eU(FAt,n,21,17)),n.s}function YQ(n){return!n.a&&(n.a=new eU(UOt,n,10,11)),n.a}function JQ(n){return cL(n,14)?new $q(BB(n,14)):qB(n.Kc())}function ZQ(n){return new qL(n,n.e.Hd().gc()*n.c.Hd().gc())}function nY(n){return new GL(n,n.e.Hd().gc()*n.c.Hd().gc())}function tY(n){return n&&n.hashCode?n.hashCode():PN(n)}function eY(n,t){return null==t?!!AY(n.f,null):MG(n.g,t)}function iY(n){return yX(n),emn(new oz(ZL(n.a.Kc(),new h)))}function rY(n){return SQ(),cL(n,54)?new $k(n):new bN(n)}function cY(n,t,e){return!!n.f&&n.f.Ne(t,e)}function aY(n,t){return n.a=fx(n.a,0,t)+""+nO(n.a,t+1),n}function uY(n,t){var e;return(e=eL(n.a,t))&&(t.d=null),e}function oY(n){var t,e;t=0|(e=n).$modCount,e.$modCount=t+1}function sY(n){this.b=n,this.c=n,n.e=null,n.c=null,this.a=1}function hY(n){this.b=n,this.a=new dE(BB(yX(new tt),62))}function fY(n){this.c=n,this.b=new dE(BB(yX(new vn),62))}function lY(n){this.c=n,this.b=new dE(BB(yX(new It),62))}function bY(){this.a=new Qv,this.b=new hm,this.d=new Dt}function wY(){this.a=new km,this.b=(lin(3,AVn),new J6(3))}function dY(){this.b=new Rv,this.d=new YT,this.e=new om}function gY(n){this.c=n.c,this.d=n.d,this.b=n.b,this.a=n.a}function pY(n,t){zm.call(this,new Wz(n)),this.a=n,this.b=t}function vY(){iSn(this,new Rf),this.wb=(QX(),t$t),iE()}function mY(n){OTn(n,"No crossing minimization",1),HSn(n)}function yY(n){Dk(),e.setTimeout((function(){throw n}),0)}function kY(n){return n.u||(P5(n),n.u=new uR(n,n)),n.u}function jY(n){return BB(yan(n,16),26)||n.zh()}function EY(n,t){return cL(t,146)&&mK(n.b,BB(t,146).tg())}function TY(n,t){return n.a?t.Wg().Kc():BB(t.Wg(),69).Zh()}function MY(n){return n.k==(uSn(),Cut)&&Lx(n,(hWn(),zft))}function SY(n){this.a=(SQ(),cL(n,54)?new $k(n):new bN(n))}function PY(){var n,t;PY=O,t=!Ddn(),n=new d,ett=t?new E:n}function CY(n,t){var e;return e=nE(n.gm),null==t?e:e+": "+t}function IY(n,t){var e;return j4(e=n.b.Qc(t),n.b.gc()),e}function OY(n,t){if(null==n)throw Hp(new Hy(t));return n}function AY(n,t){return hhn(n,t,pZ(n,null==t?0:n.b.se(t)))}function $Y(n,t,e){return e>=0&&mK(n.substr(e,t.length),t)}function LY(n,t,e,i,r,c,a){return new b4(n.e,t,e,i,r,c,a)}function NY(n,t,e,i,r,c){this.a=n,kin.call(this,t,e,i,r,c)}function xY(n,t,e,i,r,c){this.a=n,kin.call(this,t,e,i,r,c)}function DY(n,t){this.g=n,this.d=Pun(Gk(Out,1),a1n,10,0,[t])}function RY(n,t){this.e=n,this.a=Ant,this.b=ARn(t),this.c=t}function KY(n,t){NR.call(this),xtn(this),this.a=n,this.c=t}function _Y(n,t,e,i){$X(n.c[t.g],e.g,i),$X(n.c[e.g],t.g,i)}function FY(n,t,e,i){$X(n.c[t.g],t.g,e),$X(n.b[t.g],t.g,i)}function BY(){return A6(),Pun(Gk(cmt,1),$Vn,376,0,[Zvt,Jvt])}function HY(){return g7(),Pun(Gk(Zht,1),$Vn,479,0,[Ght,qht])}function qY(){return _nn(),Pun(Gk(Lht,1),$Vn,419,0,[Sht,Pht])}function GY(){return V8(),Pun(Gk(lht,1),$Vn,422,0,[cht,aht])}function zY(){return z2(),Pun(Gk(Glt,1),$Vn,420,0,[Aft,$ft])}function UY(){return U7(),Pun(Gk(zvt,1),$Vn,421,0,[Kvt,_vt])}function XY(){return Q4(),Pun(Gk(Vmt,1),$Vn,523,0,[Hmt,Bmt])}function WY(){return O6(),Pun(Gk(xyt,1),$Vn,520,0,[Myt,Tyt])}function VY(){return gJ(),Pun(Gk(ayt,1),$Vn,516,0,[tyt,nyt])}function QY(){return oZ(),Pun(Gk(Syt,1),$Vn,515,0,[ryt,cyt])}function YY(){return dJ(),Pun(Gk(Byt,1),$Vn,455,0,[Lyt,Nyt])}function JY(){return B0(),Pun(Gk(Jkt,1),$Vn,425,0,[Hkt,Bkt])}function ZY(){return sZ(),Pun(Gk(qkt,1),$Vn,480,0,[Rkt,Kkt])}function nJ(){return Prn(),Pun(Gk(ijt,1),$Vn,495,0,[Qkt,Ykt])}function tJ(){return D9(),Pun(Gk(ljt,1),$Vn,426,0,[cjt,ajt])}function eJ(){return Lun(),Pun(Gk(YTt,1),$Vn,429,0,[WTt,XTt])}function iJ(){return $6(),Pun(Gk(oTt,1),$Vn,430,0,[nTt,ZEt])}function rJ(){return hpn(),Pun(Gk(yit,1),$Vn,428,0,[dit,wit])}function cJ(){return Rnn(),Pun(Gk(Kit,1),$Vn,427,0,[vit,mit])}function aJ(){return Knn(),Pun(Gk($at,1),$Vn,424,0,[Dct,Rct])}function uJ(){return Srn(),Pun(Gk(Wut,1),$Vn,511,0,[qut,Hut])}function oJ(n,t,e,i){return e>=0?n.jh(t,e,i):n.Sg(null,e,i)}function sJ(n){return 0==n.b.b?n.a.$e():dH(n.b)}function hJ(n){if(5!=n.p)throw Hp(new dv);return dG(n.f)}function fJ(n){if(5!=n.p)throw Hp(new dv);return dG(n.k)}function lJ(n){return GI(n.a)===GI((wcn(),I$t))&&Rqn(n),n.a}function bJ(n){this.a=BB(yX(n),271),this.b=(SQ(),new dN(n))}function wJ(n,t){Zl(this,new xC(n.a,n.b)),nb(this,zB(t))}function dJ(){dJ=O,Lyt=new oC(cJn,0),Nyt=new oC(aJn,1)}function gJ(){gJ=O,tyt=new cC(aJn,0),nyt=new cC(cJn,1)}function pJ(){ay.call(this,new XT(etn(12))),aN(!0),this.a=2}function vJ(n,t,e){wWn(),Ap.call(this,n),this.b=t,this.a=e}function mJ(n,t,e){f$(),jp.call(this,t),this.a=n,this.b=e}function yJ(n){NR.call(this),xtn(this),this.a=n,this.c=!0}function kJ(n){var t;t=n.c.d.b,n.b=t,n.a=n.c.d,t.a=n.c.d.b=n}function jJ(n){pin(n.a),RA(n.a),twn(new Pw(n.a))}function EJ(n,t){oRn(n,!0),Otn(n.e.wf(),new $_(n,!0,t))}function TJ(n,t){return c4(t),Yen(n,x8(ANt,hQn,25,t,15,1),t)}function MJ(n,t){return MQ(),n==JJ(PMn(t))||n==JJ(OMn(t))}function SJ(n,t){return null==t?qI(AY(n.f,null)):hS(n.g,t)}function PJ(n){return 0==n.b?null:(Px(0!=n.b),Atn(n,n.a.a))}function CJ(n){return 0|Math.max(Math.min(n,DWn),-2147483648)}function IJ(n,t){var e=Znt[n.charCodeAt(0)];return null==e?n:e}function OJ(n,t){return WQ(n,"set1"),WQ(t,"set2"),new ET(n,t)}function AJ(n,t){return UR(qx(nen(n.f,t)),n.f.d)}function $J(n,t){var e;return YGn(n,t,e=new q),e.d}function LJ(n,t,e,i){var r;r=new FR,t.a[e.g]=r,mG(n.b,i,r)}function NJ(n,t,e){var i;(i=n.Yg(t))>=0?n.sh(i,e):TLn(n,t,e)}function xJ(n,t,e){hZ(),n&&VW(fAt,n,t),n&&VW(hAt,n,e)}function DJ(n,t,e){this.i=new Np,this.b=n,this.g=t,this.a=e}function RJ(n,t,e){this.c=new Np,this.e=n,this.f=t,this.b=e}function KJ(n,t,e){this.a=new Np,this.e=n,this.f=t,this.c=e}function _J(n,t){V$(this),this.f=t,this.g=n,jQ(this),this._d()}function FJ(n,t){var e;e=n.q.getHours(),n.q.setDate(t),lBn(n,e)}function BJ(n,t){var e;for(yX(t),e=n.a;e;e=e.c)t.Od(e.g,e.i)}function HJ(n){var t;return $on(t=new bE(etn(n.length)),n),t}function qJ(n){function t(){}return t.prototype=n||{},new t}function GJ(n,t){return!!wun(n,t)&&(ein(n),!0)}function zJ(n,t){if(null==t)throw Hp(new gv);return ugn(n,t)}function UJ(n){if(n.qe())return null;var t=n.n;return SWn[t]}function XJ(n){return n.Db>>16!=3?null:BB(n.Cb,33)}function WJ(n){return n.Db>>16!=9?null:BB(n.Cb,33)}function VJ(n){return n.Db>>16!=6?null:BB(n.Cb,79)}function QJ(n){return n.Db>>16!=7?null:BB(n.Cb,235)}function YJ(n){return n.Db>>16!=7?null:BB(n.Cb,160)}function JJ(n){return n.Db>>16!=11?null:BB(n.Cb,33)}function ZJ(n,t){var e;return(e=n.Yg(t))>=0?n.lh(e):qIn(n,t)}function nZ(n,t){var e;return oMn(e=new Lq(t),n),new t_(e)}function tZ(n){var t;return t=n.d,t=n.si(n.f),f9(n,t),t.Ob()}function eZ(n,t){return n.b+=t.b,n.c+=t.c,n.d+=t.d,n.a+=t.a,n}function iZ(n,t){return e.Math.abs(n)<e.Math.abs(t)?n:t}function rZ(n){return!n.a&&(n.a=new eU(UOt,n,10,11)),n.a.i>0}function cZ(){this.a=new fA,this.e=new Rv,this.g=0,this.i=0}function aZ(n){this.a=n,this.b=x8(_mt,sVn,1944,n.e.length,0,2)}function uZ(n,t,e){var i;i=Non(n,t,e),n.b=new mrn(i.c.length)}function oZ(){oZ=O,ryt=new rC(pJn,0),cyt=new rC("UP",1)}function sZ(){sZ=O,Rkt=new bC(U3n,0),Kkt=new bC("FAN",1)}function hZ(){hZ=O,fAt=new xp,hAt=new xp,FI(yet,new wo)}function fZ(n){if(0!=n.p)throw Hp(new dv);return JI(n.f,0)}function lZ(n){if(0!=n.p)throw Hp(new dv);return JI(n.k,0)}function bZ(n){return n.Db>>16!=3?null:BB(n.Cb,147)}function wZ(n){return n.Db>>16!=6?null:BB(n.Cb,235)}function dZ(n){return n.Db>>16!=17?null:BB(n.Cb,26)}function gZ(n,t){var e=n.a=n.a||[];return e[t]||(e[t]=n.le(t))}function pZ(n,t){var e;return null==(e=n.a.get(t))?new Array:e}function vZ(n,t){var e;e=n.q.getHours(),n.q.setMonth(t),lBn(n,e)}function mZ(n,t,e){return null==t?jCn(n.f,null,e):ubn(n.g,t,e)}function yZ(n,t,e,i,r,c){return new N7(n.e,t,n.aj(),e,i,r,c)}function kZ(n,t,e){return n.a=fx(n.a,0,t)+""+e+nO(n.a,t),n}function jZ(n,t,e){return WB(n.a,(nV(),zvn(t,e),new vT(t,e))),n}function EZ(n){return oN(n.c),n.e=n.a=n.c,n.c=n.c.c,++n.d,n.a.f}function TZ(n){return oN(n.e),n.c=n.a=n.e,n.e=n.e.e,--n.d,n.a.f}function MZ(n,t){n.d&&y7(n.d.e,n),n.d=t,n.d&&WB(n.d.e,n)}function SZ(n,t){n.c&&y7(n.c.g,n),n.c=t,n.c&&WB(n.c.g,n)}function PZ(n,t){n.c&&y7(n.c.a,n),n.c=t,n.c&&WB(n.c.a,n)}function CZ(n,t){n.i&&y7(n.i.j,n),n.i=t,n.i&&WB(n.i.j,n)}function IZ(n,t,e){this.a=t,this.c=n,this.b=(yX(e),new t_(e))}function OZ(n,t,e){this.a=t,this.c=n,this.b=(yX(e),new t_(e))}function AZ(n,t){this.a=n,this.c=B$(this.a),this.b=new gY(t)}function $Z(n){return Qln(n),AV(n,new vw(new Rv))}function LZ(n,t){if(n<0||n>t)throw Hp(new Ay(jYn+n+EYn+t))}function NZ(n,t){return IG(n.a,t)?EU(n,BB(t,22).g,null):null}function xZ(n){return Shn(),hN(),0!=BB(n.a,81).d.e}function DZ(){DZ=O,Xnt=lhn((ry(),Pun(Gk(Wnt,1),$Vn,538,0,[znt])))}function RZ(){RZ=O,pmt=WG(new B2,(yMn(),Bat),(lWn(),qot))}function KZ(){KZ=O,vmt=WG(new B2,(yMn(),Bat),(lWn(),qot))}function _Z(){_Z=O,ymt=WG(new B2,(yMn(),Bat),(lWn(),qot))}function FZ(){FZ=O,zmt=dq(new B2,(yMn(),Bat),(lWn(),dot))}function BZ(){BZ=O,Qmt=dq(new B2,(yMn(),Bat),(lWn(),dot))}function HZ(){HZ=O,Zmt=dq(new B2,(yMn(),Bat),(lWn(),dot))}function qZ(){qZ=O,oyt=dq(new B2,(yMn(),Bat),(lWn(),dot))}function GZ(){GZ=O,zkt=WG(new B2,(zyn(),Fyt),(DPn(),zyt))}function zZ(n,t,e,i){this.c=n,this.d=i,WZ(this,t),VZ(this,e)}function UZ(n){this.c=new YT,this.b=n.b,this.d=n.c,this.a=n.a}function XZ(n){this.a=e.Math.cos(n),this.b=e.Math.sin(n)}function WZ(n,t){n.a&&y7(n.a.k,n),n.a=t,n.a&&WB(n.a.k,n)}function VZ(n,t){n.b&&y7(n.b.f,n),n.b=t,n.b&&WB(n.b.f,n)}function QZ(n,t){iW(n,n.b,n.c),BB(n.b.b,65),t&&BB(t.b,65).b}function YZ(n,t){zln(n,t),cL(n.Cb,88)&&ACn(P5(BB(n.Cb,88)),2)}function JZ(n,t){cL(n.Cb,88)&&ACn(P5(BB(n.Cb,88)),4),Nrn(n,t)}function ZZ(n,t){cL(n.Cb,179)&&(BB(n.Cb,179).tb=null),Nrn(n,t)}function n1(n,t){return ZM(),hnn(t)?new lq(t,n):new xI(t,n)}function t1(n,t){null!=t.c&&nW(n,new GX(t.c))}function e1(n){var t;return iE(),cen(t=new Kp,n),t}function i1(n){var t;return iE(),cen(t=new Kp,n),t}function r1(n,t){var e;return e=new HX(n),t.c[t.c.length]=e,e}function c1(n,t){var e;return(e=BB(lfn(OQ(n.a),t),14))?e.gc():0}function a1(n){return Qln(n),PQ(),PQ(),ytn(n,det)}function u1(n){for(var t;;)if(t=n.Pb(),!n.Ob())return t}function o1(n,t){Um.call(this,new XT(etn(n))),lin(t,oVn),this.a=t}function s1(n,t,e){Hfn(t,e,n.gc()),this.c=n,this.a=t,this.b=e-t}function h1(n,t,e){var i;Hfn(t,e,n.c.length),i=e-t,PE(n.c,t,i)}function f1(n,t){hL(n,dG(e0(kz(t,24),sYn)),dG(e0(t,sYn)))}function l1(n,t){if(n<0||n>=t)throw Hp(new Ay(jYn+n+EYn+t))}function b1(n,t){if(n<0||n>=t)throw Hp(new Ok(jYn+n+EYn+t))}function w1(n,t){this.b=(kW(n),n),this.a=0==(t&_Qn)?64|t|hVn:t}function d1(n){DA(this),Pv(this.a,kon(e.Math.max(8,n))<<1)}function g1(n){return Aon(Pun(Gk(PMt,1),sVn,8,0,[n.i.n,n.n,n.a]))}function p1(){return qsn(),Pun(Gk(nit,1),$Vn,132,0,[zet,Uet,Xet])}function v1(){return Dtn(),Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])}function m1(){return J9(),Pun(Gk(ert,1),$Vn,461,0,[Yit,Qit,Jit])}function y1(){return G7(),Pun(Gk(Ort,1),$Vn,462,0,[crt,rrt,irt])}function k1(){return Bfn(),Pun(Gk(mut,1),$Vn,423,0,[wut,but,lut])}function j1(){return q7(),Pun(Gk(Hat,1),$Vn,379,0,[Oat,Iat,Aat])}function E1(){return Mhn(),Pun(Gk(wvt,1),$Vn,378,0,[cvt,avt,uvt])}function T1(){return Oin(),Pun(Gk(pht,1),$Vn,314,0,[hht,sht,fht])}function M1(){return uin(),Pun(Gk(Tht,1),$Vn,337,0,[wht,ght,dht])}function S1(){return Jun(),Pun(Gk(Bht,1),$Vn,450,0,[Aht,Oht,$ht])}function P1(){return Crn(),Pun(Gk(Wst,1),$Vn,361,0,[Rst,Dst,xst])}function C1(){return z7(),Pun(Gk(Lft,1),$Vn,303,0,[Pft,Cft,Sft])}function I1(){return Kan(),Pun(Gk(Ift,1),$Vn,292,0,[jft,Eft,kft])}function O1(){return ain(),Pun(Gk(Qvt,1),$Vn,452,0,[Gvt,Hvt,qvt])}function A1(){return mon(),Pun(Gk(Fvt,1),$Vn,339,0,[Nvt,Lvt,xvt])}function $1(){return Hcn(),Pun(Gk(nmt,1),$Vn,375,0,[Xvt,Wvt,Vvt])}function L1(){return $un(),Pun(Gk(Smt,1),$Vn,377,0,[bmt,wmt,lmt])}function N1(){return Usn(),Pun(Gk(hmt,1),$Vn,336,0,[emt,imt,rmt])}function x1(){return dcn(),Pun(Gk(dmt,1),$Vn,338,0,[smt,umt,omt])}function D1(){return oin(),Pun(Gk(xmt,1),$Vn,454,0,[Omt,Amt,$mt])}function R1(){return Cbn(),Pun(Gk(ujt,1),$Vn,442,0,[ejt,njt,tjt])}function K1(){return Hsn(),Pun(Gk(Gjt,1),$Vn,380,0,[sjt,hjt,fjt])}function _1(){return Sbn(),Pun(Gk(NEt,1),$Vn,381,0,[Zjt,nEt,Jjt])}function F1(){return Bcn(),Pun(Gk(Yjt,1),$Vn,293,0,[Xjt,Wjt,Ujt])}function B1(){return Pbn(),Pun(Gk(WEt,1),$Vn,437,0,[HEt,qEt,GEt])}function H1(){return ufn(),Pun(Gk(SCt,1),$Vn,334,0,[vCt,pCt,mCt])}function q1(){return Rtn(),Pun(Gk(nCt,1),$Vn,272,0,[zPt,UPt,XPt])}function G1(n,t){return k$n(n,t,cL(t,99)&&0!=(BB(t,18).Bb&BQn))}function z1(n,t,e){var i;return(i=cHn(n,t,!1)).b<=t&&i.a<=e}function U1(n,t,e){var i;(i=new ca).b=t,i.a=e,++t.b,WB(n.d,i)}function X1(n,t){var e;return Tx(!!(e=(kW(n),n).g)),kW(t),e(t)}function W1(n,t){var e,i;return i=pU(n,t),e=n.a.Zc(i),new kT(n,e)}function V1(n){return n.Db>>16!=6?null:BB(cAn(n),235)}function Q1(n){if(2!=n.p)throw Hp(new dv);return dG(n.f)&QVn}function Y1(n){if(2!=n.p)throw Hp(new dv);return dG(n.k)&QVn}function J1(n){return n.a==(R5(),eLt)&&db(n,eLn(n.g,n.b)),n.a}function Z1(n){return n.d==(R5(),eLt)&&pb(n,NKn(n.g,n.b)),n.d}function n0(n){return Px(n.a<n.c.c.length),n.b=n.a++,n.c.c[n.b]}function t0(n,t){n.b=n.b|t.b,n.c=n.c|t.c,n.d=n.d|t.d,n.a=n.a|t.a}function e0(n,t){return uan(Sz(JO(n)?Pan(n):n,JO(t)?Pan(t):t))}function i0(n,t){return uan(Pz(JO(n)?Pan(n):n,JO(t)?Pan(t):t))}function r0(n,t){return uan(Cz(JO(n)?Pan(n):n,JO(t)?Pan(t):t))}function c0(n){return rbn(yz(fan(H$n(n,32)),32),fan(H$n(n,32)))}function a0(n){return yX(n),cL(n,14)?new t_(BB(n,14)):HB(n.Kc())}function u0(n,t){return Dnn(),n.c==t.c?Pln(t.d,n.d):Pln(n.c,t.c)}function o0(n,t){return Dnn(),n.c==t.c?Pln(n.d,t.d):Pln(n.c,t.c)}function s0(n,t){return Dnn(),n.c==t.c?Pln(n.d,t.d):Pln(t.c,n.c)}function h0(n,t){return Dnn(),n.c==t.c?Pln(t.d,n.d):Pln(t.c,n.c)}function f0(n,t){var e;e=Gy(MD(n.a.We((sWn(),OPt)))),VUn(n,t,e)}function l0(n,t){var e;e=BB(RX(n.g,t),57),Otn(t.d,new oP(n,e))}function b0(n,t){var e,i;return(e=oyn(n))<(i=oyn(t))?-1:e>i?1:0}function w0(n,t){var e;return e=S7(t),BB(RX(n.c,e),19).a}function d0(n,t){var e;for(e=n+"";e.length<t;)e="0"+e;return e}function g0(n){return null==n.c||0==n.c.length?"n_"+n.g:"n_"+n.c}function p0(n){return null==n.c||0==n.c.length?"n_"+n.b:"n_"+n.c}function v0(n,t){return n&&n.equals?n.equals(t):GI(n)===GI(t)}function m0(n,t){return 0==t?!!n.o&&0!=n.o.f:vpn(n,t)}function y0(n,t,e){var i;n.n&&t&&e&&(i=new Zu,WB(n.e,i))}function k0(n,t,e){var i;i=n.d[t.p],n.d[t.p]=n.d[e.p],n.d[e.p]=i}function j0(n,t,e){this.d=n,this.j=t,this.e=e,this.o=-1,this.p=3}function E0(n,t,e){this.d=n,this.k=t,this.f=e,this.o=-1,this.p=5}function T0(n,t,e){Ap.call(this,25),this.b=n,this.a=t,this.c=e}function M0(n){wWn(),Ap.call(this,n),this.c=!1,this.a=!1}function S0(n,t,e,i,r,c){Hen.call(this,n,t,e,i,r),c&&(this.o=-2)}function P0(n,t,e,i,r,c){qen.call(this,n,t,e,i,r),c&&(this.o=-2)}function C0(n,t,e,i,r,c){J5.call(this,n,t,e,i,r),c&&(this.o=-2)}function I0(n,t,e,i,r,c){Uen.call(this,n,t,e,i,r),c&&(this.o=-2)}function O0(n,t,e,i,r,c){Z5.call(this,n,t,e,i,r),c&&(this.o=-2)}function A0(n,t,e,i,r,c){Gen.call(this,n,t,e,i,r),c&&(this.o=-2)}function $0(n,t,e,i,r,c){zen.call(this,n,t,e,i,r),c&&(this.o=-2)}function L0(n,t,e,i,r,c){n6.call(this,n,t,e,i,r),c&&(this.o=-2)}function N0(n,t,e,i){jp.call(this,e),this.b=n,this.c=t,this.d=i}function x0(n,t){this.a=new Np,this.d=new Np,this.f=n,this.c=t}function D0(){this.c=new $$,this.a=new bY,this.b=new em,bM()}function R0(){Nun(),this.b=new xp,this.a=new xp,this.c=new Np}function K0(n,t){this.g=n,this.d=(R5(),eLt),this.a=eLt,this.b=t}function _0(n,t){this.f=n,this.a=(R5(),tLt),this.c=tLt,this.b=t}function F0(n,t){!n.c&&(n.c=new Ecn(n,0)),MHn(n.c,(Uqn(),LLt),t)}function B0(){B0=O,Hkt=new wC("DFS",0),Bkt=new wC("BFS",1)}function H0(n,t,e){var i;return!!(i=BB(n.Zb().xc(t),14))&&i.Hc(e)}function q0(n,t,e){var i;return!!(i=BB(n.Zb().xc(t),14))&&i.Mc(e)}function G0(n,t,e,i){return n.a+=""+fx(null==t?zWn:Bbn(t),e,i),n}function z0(n,t,e,i,r,c){return Rcn(n,t,e,c),Jfn(n,i),tln(n,r),n}function U0(n){return Px(n.b.b!=n.d.a),n.c=n.b=n.b.b,--n.a,n.c.c}function X0(n){for(;n.d>0&&0==n.a[--n.d];);0==n.a[n.d++]&&(n.e=0)}function W0(n){return n.a?0==n.e.length?n.a.a:n.a.a+""+n.e:n.c}function V0(n){return!(!n.a||0==H7(n.a.a).i||n.b&&Kvn(n.b))}function Q0(n){return!(!n.u||0==a4(n.u.a).i||n.n&&Rvn(n.n))}function Y0(n){return yq(n.e.Hd().gc()*n.c.Hd().gc(),16,new zf(n))}function J0(n,t){return FU(fan(n.q.getTime()),fan(t.q.getTime()))}function Z0(n){return BB(Qgn(n,x8(yut,c1n,17,n.c.length,0,1)),474)}function n2(n){return BB(Qgn(n,x8(Out,a1n,10,n.c.length,0,1)),193)}function t2(n){return BZ(),!(b5(n)||!b5(n)&&n.c.i.c==n.d.i.c)}function e2(n,t,e){yX(n),xyn(new IZ(new t_(n),t,e))}function i2(n,t,e){yX(n),Dyn(new OZ(new t_(n),t,e))}function r2(n,t){var e;return e=1-t,n.a[e]=wrn(n.a[e],e),wrn(n,t)}function c2(n,t){var e;n.e=new Jm,m$(e=wDn(t),n.c),IDn(n,e,0)}function a2(n,t,e,i){var r;(r=new vu).a=t,r.b=e,r.c=i,DH(n.a,r)}function u2(n,t,e,i){var r;(r=new vu).a=t,r.b=e,r.c=i,DH(n.b,r)}function o2(n){var t,e;return e=t_n(t=new lX,n),yzn(t),e}function s2(){var n,t;return n=new Kp,WB(V$t,t=n),t}function h2(n){return n.j.c=x8(Ant,HWn,1,0,5,1),TV(n.c),gV(n.a),n}function f2(n){return MM(),cL(n.g,10)?BB(n.g,10):null}function l2(n){return!EV(n).dc()&&(L$(n,new m),!0)}function b2(n){if(!("stack"in n))try{throw n}catch(t){}return n}function w2(n,t){if(n<0||n>=t)throw Hp(new Ay(LCn(n,t)));return n}function d2(n,t,e){if(n<0||t<n||t>e)throw Hp(new Ay(oPn(n,t,e)))}function g2(n,t){if(TU(n.a,t),t.d)throw Hp(new dy(IYn));t.d=n}function p2(n,t){if(t.$modCount!=n.$modCount)throw Hp(new vv)}function v2(n,t){return!!cL(t,42)&&Mmn(n.a,BB(t,42))}function m2(n,t){return!!cL(t,42)&&Mmn(n.a,BB(t,42))}function y2(n,t){return!!cL(t,42)&&Mmn(n.a,BB(t,42))}function k2(n,t){return n.a<=n.b&&(t.ud(n.a++),!0)}function j2(n){var t;return JO(n)?-0==(t=n)?0:t:pnn(n)}function E2(n){var t;return EW(n),t=new F,gE(n.a,new gw(t)),t}function T2(n){var t;return EW(n),t=new _,gE(n.a,new dw(t)),t}function M2(n,t){this.a=n,Sb.call(this,n),LZ(t,n.gc()),this.b=t}function S2(n){this.e=n,this.b=this.e.a.entries(),this.a=new Array}function P2(n){return yq(n.e.Hd().gc()*n.c.Hd().gc(),273,new Gf(n))}function C2(n){return new J6((lin(n,NVn),ttn(rbn(rbn(5,n),n/10|0))))}function I2(n){return BB(Qgn(n,x8(Gut,u1n,11,n.c.length,0,1)),1943)}function O2(n,t,e){return e.f.c.length>0?BU(n.a,t,e):BU(n.b,t,e)}function A2(n,t,e){n.d&&y7(n.d.e,n),n.d=t,n.d&&kG(n.d.e,e,n)}function $2(n,t){vXn(t,n),aH(n.d),aH(BB(mMn(n,(HXn(),Agt)),207))}function L2(n,t){pXn(t,n),cH(n.d),cH(BB(mMn(n,(HXn(),Agt)),207))}function N2(n,t){var e,i;return i=null,(e=zJ(n,t))&&(i=e.fe()),i}function x2(n,t){var e,i;return i=null,(e=dnn(n,t))&&(i=e.ie()),i}function D2(n,t){var e,i;return i=null,(e=zJ(n,t))&&(i=e.ie()),i}function R2(n,t){var e,i;return i=null,(e=zJ(n,t))&&(i=yPn(e)),i}function K2(n,t,e){var i;return i=Qdn(e),wKn(n.g,i,t),wKn(n.i,t,e),t}function _2(n,t,e){var i;i=Ldn();try{return dR(n,t,e)}finally{y3(i)}}function F2(n){var t;t=n.Wg(),this.a=cL(t,69)?BB(t,69).Zh():t.Kc()}function B2(){Ym.call(this),this.j.c=x8(Ant,HWn,1,0,5,1),this.a=-1}function H2(n,t,e,i){this.d=n,this.n=t,this.g=e,this.o=i,this.p=-1}function q2(n,t,e,i){this.e=i,this.d=null,this.c=n,this.a=t,this.b=e}function G2(n,t,e){this.d=new Fd(this),this.e=n,this.i=t,this.f=e}function z2(){z2=O,Aft=new DP(eJn,0),$ft=new DP("TOP_LEFT",1)}function U2(){U2=O,Tmt=JW(iln(1),iln(4)),Emt=JW(iln(1),iln(2))}function X2(){X2=O,JEt=lhn((IM(),Pun(Gk(tTt,1),$Vn,551,0,[QEt])))}function W2(){W2=O,VEt=lhn((CM(),Pun(Gk(YEt,1),$Vn,482,0,[XEt])))}function V2(){V2=O,UTt=lhn((OM(),Pun(Gk(VTt,1),$Vn,530,0,[GTt])))}function Q2(){Q2=O,act=lhn((wM(),Pun(Gk(Pct,1),$Vn,481,0,[rct])))}function Y2(){return Dan(),Pun(Gk(Grt,1),$Vn,406,0,[Rrt,Nrt,xrt,Drt])}function J2(){return Z9(),Pun(Gk(Fet,1),$Vn,297,0,[Net,xet,Det,Ret])}function Z2(){return qpn(),Pun(Gk(cct,1),$Vn,394,0,[Zrt,Jrt,nct,tct])}function n3(){return Hpn(),Pun(Gk(Urt,1),$Vn,323,0,[Brt,Frt,Hrt,qrt])}function t3(){return Aun(),Pun(Gk(dut,1),$Vn,405,0,[Zat,eut,nut,tut])}function e3(){return Iun(),Pun(Gk(pst,1),$Vn,360,0,[ast,rst,cst,ist])}function i3(n,t,e,i){return cL(e,54)?new Ox(n,t,e,i):new sz(n,t,e,i)}function r3(){return Oun(),Pun(Gk(Ist,1),$Vn,411,0,[vst,mst,yst,kst])}function c3(n){return n.j==(kUn(),SIt)&&SN(UOn(n),oIt)}function a3(n,t){var e;SZ(e=t.a,t.c.d),MZ(e,t.d.d),Ztn(e.a,n.n)}function u3(n,t){return BB($N(Iz(BB(h6(n.k,t),15).Oc(),Qst)),113)}function o3(n,t){return BB($N(Oz(BB(h6(n.k,t),15).Oc(),Qst)),113)}function s3(n){return new w1(tcn(BB(n.a.dd(),14).gc(),n.a.cd()),16)}function h3(n){return cL(n,14)?BB(n,14).dc():!n.Kc().Ob()}function f3(n){return MM(),cL(n.g,145)?BB(n.g,145):null}function l3(n){if(n.e.g!=n.b)throw Hp(new vv);return!!n.c&&n.d>0}function b3(n){return Px(n.b!=n.d.c),n.c=n.b,n.b=n.b.a,++n.a,n.c.c}function w3(n,t){kW(t),$X(n.a,n.c,t),n.c=n.c+1&n.a.length-1,wyn(n)}function d3(n,t){kW(t),n.b=n.b-1&n.a.length-1,$X(n.a,n.b,t),wyn(n)}function g3(n,t){var e;for(e=n.j.c.length;e<t;e++)WB(n.j,n.rg())}function p3(n,t,e,i){var r;return r=i[t.g][e.g],Gy(MD(mMn(n.a,r)))}function v3(n,t,e,i,r){this.i=n,this.a=t,this.e=e,this.j=i,this.f=r}function m3(n,t,e,i,r){this.a=n,this.e=t,this.f=e,this.b=i,this.g=r}function y3(n){n&&Inn((sk(),ttt)),--ctt,n&&-1!=utt&&(iS(utt),utt=-1)}function k3(){return bvn(),Pun(Gk(kvt,1),$Vn,197,0,[lvt,bvt,fvt,hvt])}function j3(){return zyn(),Pun(Gk(qyt,1),$Vn,393,0,[Ryt,Kyt,_yt,Fyt])}function E3(){return Omn(),Pun(Gk(Vjt,1),$Vn,340,0,[qjt,Bjt,Hjt,Fjt])}function T3(){return mdn(),Pun(Gk(YIt,1),$Vn,374,0,[KIt,_It,RIt,DIt])}function M3(){return Xyn(),Pun(Gk(RCt,1),$Vn,285,0,[MCt,jCt,ECt,TCt])}function S3(){return Mbn(),Pun(Gk(oCt,1),$Vn,218,0,[ZPt,YPt,QPt,JPt])}function P3(){return Fwn(),Pun(Gk(cOt,1),$Vn,311,0,[eOt,ZIt,tOt,nOt])}function C3(){return Bsn(),Pun(Gk(wOt,1),$Vn,396,0,[uOt,oOt,aOt,sOt])}function I3(n){return hZ(),hU(fAt,n)?BB(RX(fAt,n),331).ug():null}function O3(n,t,e){return t<0?qIn(n,e):BB(e,66).Nj().Sj(n,n.yh(),t)}function A3(n,t,e){var i;return i=Qdn(e),wKn(n.d,i,t),VW(n.e,t,e),t}function $3(n,t,e){var i;return i=Qdn(e),wKn(n.j,i,t),VW(n.k,t,e),t}function L3(n){var t;return tE(),t=new io,n&&HLn(t,n),t}function N3(n){var t;return t=n.ri(n.i),n.i>0&&aHn(n.g,0,t,0,n.i),t}function x3(n,t){var e;return nS(),!(e=BB(RX(mAt,n),55))||e.wj(t)}function D3(n){if(1!=n.p)throw Hp(new dv);return dG(n.f)<<24>>24}function R3(n){if(1!=n.p)throw Hp(new dv);return dG(n.k)<<24>>24}function K3(n){if(7!=n.p)throw Hp(new dv);return dG(n.k)<<16>>16}function _3(n){if(7!=n.p)throw Hp(new dv);return dG(n.f)<<16>>16}function F3(n){var t;for(t=0;n.Ob();)n.Pb(),t=rbn(t,1);return ttn(t)}function B3(n,t){var e;return e=new Ik,n.xd(e),e.a+="..",t.yd(e),e.a}function H3(n,t,e){var i;i=BB(RX(n.g,e),57),WB(n.a.c,new rI(t,i))}function q3(n,t,e){return Tz(MD(qI(AY(n.f,t))),MD(qI(AY(n.f,e))))}function G3(n,t,e){return UFn(n,t,e,cL(t,99)&&0!=(BB(t,18).Bb&BQn))}function z3(n,t,e){return pBn(n,t,e,cL(t,99)&&0!=(BB(t,18).Bb&BQn))}function U3(n,t,e){return x$n(n,t,e,cL(t,99)&&0!=(BB(t,18).Bb&BQn))}function X3(n,t){return n==(uSn(),Cut)&&t==Cut?4:n==Cut||t==Cut?8:32}function W3(n,t){return GI(t)===GI(n)?"(this Map)":null==t?zWn:Bbn(t)}function V3(n,t){return BB(null==t?qI(AY(n.f,null)):hS(n.g,t),281)}function Q3(n,t,e){var i;return i=Qdn(e),VW(n.b,i,t),VW(n.c,t,e),t}function Y3(n,t){var e;for(e=t;e;)_x(n,e.i,e.j),e=JJ(e);return n}function J3(n,t){var e;return e=rY(HB(new C7(n,t))),Cq(new C7(n,t)),e}function Z3(n,t){var e;return ZM(),TSn(e=BB(n,66).Mj(),t),e.Ok(t)}function n4(n,t,e,i,r){WB(t,mCn(r,X$n(r,e,i))),UMn(n,r,t)}function t4(n,t,e){n.i=0,n.e=0,t!=e&&(Won(n,t,e),Xon(n,t,e))}function e4(n,t){var e;e=n.q.getHours(),n.q.setFullYear(t+sQn),lBn(n,e)}function i4(n,t,e){if(e){var i=e.ee();n.a[t]=i(e)}else delete n.a[t]}function r4(n,t,e){if(e){var i=e.ee();e=i(e)}else e=void 0;n.a[t]=e}function c4(n){if(n<0)throw Hp(new By("Negative array size: "+n))}function a4(n){return n.n||(P5(n),n.n=new YG(n,VAt,n),kY(n)),n.n}function u4(n){return Px(n.a<n.c.a.length),n.b=n.a,Ann(n),n.c.b[n.b]}function o4(n){n.b!=n.c&&(n.a=x8(Ant,HWn,1,8,5,1),n.b=0,n.c=0)}function s4(n){this.b=new xp,this.c=new xp,this.d=new xp,this.a=n}function h4(n,t){wWn(),Ap.call(this,n),this.a=t,this.c=-1,this.b=-1}function f4(n,t,e,i){j0.call(this,1,e,i),Fh(this),this.c=n,this.b=t}function l4(n,t,e,i){E0.call(this,1,e,i),Fh(this),this.c=n,this.b=t}function b4(n,t,e,i,r,c,a){kin.call(this,t,i,r,c,a),this.c=n,this.a=e}function w4(n,t,e){this.e=n,this.a=Ant,this.b=ARn(t),this.c=t,this.d=e}function d4(n){this.e=n,this.c=this.e.a,this.b=this.e.g,this.d=this.e.i}function g4(n){this.c=n,this.a=BB(Ikn(n),148),this.b=this.a.Aj().Nh()}function p4(n){this.d=n,this.b=this.d.a.entries(),this.a=this.b.next()}function v4(){xp.call(this),jx(this),this.d.b=this.d,this.d.a=this.d}function m4(n,t){$R.call(this),this.a=n,this.b=t,WB(this.a.b,this)}function y4(n,t){return iO(null!=t?SJ(n,t):qI(AY(n.f,t)))}function k4(n,t){return iO(null!=t?SJ(n,t):qI(AY(n.f,t)))}function j4(n,t){var e;for(e=0;e<t;++e)$X(n,e,new Ub(BB(n[e],42)))}function E4(n,t){var e;for(e=n.d-1;e>=0&&n.a[e]===t[e];e--);return e<0}function T4(n,t){var e;return zsn(),0!=(e=n.j.g-t.j.g)?e:0}function M4(n,t){return kW(t),null!=n.a?PG(t.Kb(n.a)):Set}function S4(n){var t;return n?new Lq(n):(qrn(t=new fA,n),t)}function P4(n,t){return t.b.Kb(T7(n,t.c.Ee(),new yw(t)))}function C4(n){yTn(),hL(this,dG(e0(kz(n,24),sYn)),dG(e0(n,sYn)))}function I4(){I4=O,pit=lhn((hpn(),Pun(Gk(yit,1),$Vn,428,0,[dit,wit])))}function O4(){O4=O,kit=lhn((Rnn(),Pun(Gk(Kit,1),$Vn,427,0,[vit,mit])))}function A4(){A4=O,_ct=lhn((Knn(),Pun(Gk($at,1),$Vn,424,0,[Dct,Rct])))}function $4(){$4=O,zut=lhn((Srn(),Pun(Gk(Wut,1),$Vn,511,0,[qut,Hut])))}function L4(){L4=O,Iht=lhn((_nn(),Pun(Gk(Lht,1),$Vn,419,0,[Sht,Pht])))}function N4(){N4=O,Uht=lhn((g7(),Pun(Gk(Zht,1),$Vn,479,0,[Ght,qht])))}function x4(){x4=O,tmt=lhn((A6(),Pun(Gk(cmt,1),$Vn,376,0,[Zvt,Jvt])))}function D4(){D4=O,Bvt=lhn((U7(),Pun(Gk(zvt,1),$Vn,421,0,[Kvt,_vt])))}function R4(){R4=O,oht=lhn((V8(),Pun(Gk(lht,1),$Vn,422,0,[cht,aht])))}function K4(){K4=O,Nft=lhn((z2(),Pun(Gk(Glt,1),$Vn,420,0,[Aft,$ft])))}function _4(){_4=O,Pyt=lhn((O6(),Pun(Gk(xyt,1),$Vn,520,0,[Myt,Tyt])))}function F4(){F4=O,Gmt=lhn((Q4(),Pun(Gk(Vmt,1),$Vn,523,0,[Hmt,Bmt])))}function B4(){B4=O,iyt=lhn((gJ(),Pun(Gk(ayt,1),$Vn,516,0,[tyt,nyt])))}function H4(){H4=O,uyt=lhn((oZ(),Pun(Gk(Syt,1),$Vn,515,0,[ryt,cyt])))}function q4(){q4=O,Dyt=lhn((dJ(),Pun(Gk(Byt,1),$Vn,455,0,[Lyt,Nyt])))}function G4(){G4=O,Gkt=lhn((B0(),Pun(Gk(Jkt,1),$Vn,425,0,[Hkt,Bkt])))}function z4(){z4=O,Zkt=lhn((Prn(),Pun(Gk(ijt,1),$Vn,495,0,[Qkt,Ykt])))}function U4(){U4=O,Fkt=lhn((sZ(),Pun(Gk(qkt,1),$Vn,480,0,[Rkt,Kkt])))}function X4(){X4=O,ojt=lhn((D9(),Pun(Gk(ljt,1),$Vn,426,0,[cjt,ajt])))}function W4(){W4=O,QTt=lhn((Lun(),Pun(Gk(YTt,1),$Vn,429,0,[WTt,XTt])))}function V4(){V4=O,eTt=lhn(($6(),Pun(Gk(oTt,1),$Vn,430,0,[nTt,ZEt])))}function Q4(){Q4=O,Hmt=new JP("UPPER",0),Bmt=new JP("LOWER",1)}function Y4(n,t){var e;qQ(e=new py,"x",t.a),qQ(e,"y",t.b),nW(n,e)}function J4(n,t){var e;qQ(e=new py,"x",t.a),qQ(e,"y",t.b),nW(n,e)}function Z4(n,t){var e,i;i=!1;do{i|=e=bon(n,t)}while(e);return i}function n5(n,t){var e,i;for(e=t,i=0;e>0;)i+=n.a[e],e-=e&-e;return i}function t5(n,t){var e;for(e=t;e;)_x(n,-e.i,-e.j),e=JJ(e);return n}function e5(n,t){var e,i;for(kW(t),i=n.Kc();i.Ob();)e=i.Pb(),t.td(e)}function i5(n,t){var e;return new vT(e=t.cd(),n.e.pc(e,BB(t.dd(),14)))}function r5(n,t,e,i){var r;(r=new $).c=t,r.b=e,r.a=i,i.b=e.a=r,++n.b}function c5(n,t,e){var i;return l1(t,n.c.length),i=n.c[t],n.c[t]=e,i}function a5(n,t,e){return BB(null==t?jCn(n.f,null,e):ubn(n.g,t,e),281)}function u5(n){return n.c&&n.d?p0(n.c)+"->"+p0(n.d):"e_"+PN(n)}function o5(n,t){return(Qln(n),jE(new Rq(n,new Q9(t,n.a)))).sd(tit)}function s5(){return yMn(),Pun(Gk(Uat,1),$Vn,356,0,[Rat,Kat,_at,Fat,Bat])}function h5(){return kUn(),Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])}function f5(n){return Dk(),function(){return _2(n,this,arguments)}}function l5(){return Date.now?Date.now():(new Date).getTime()}function b5(n){return!(!n.c||!n.d||!n.c.i||n.c.i!=n.d.i)}function w5(n){if(!n.c.Sb())throw Hp(new yv);return n.a=!0,n.c.Ub()}function d5(n){n.i=0,yS(n.b,null),yS(n.c,null),n.a=null,n.e=null,++n.g}function g5(n){dS.call(this,null==n?zWn:Bbn(n),cL(n,78)?BB(n,78):null)}function p5(n){eWn(),Bp(this),this.a=new YT,dsn(this,n),DH(this.a,n)}function v5(){xA(this),this.b=new xC(RQn,RQn),this.a=new xC(KQn,KQn)}function m5(n,t){this.c=0,this.b=t,pO.call(this,n,17493),this.a=this.c}function y5(n){k5(),Qet||(this.c=n,this.e=!0,this.a=new Np)}function k5(){k5=O,Qet=!0,Wet=!1,Vet=!1,Jet=!1,Yet=!1}function j5(n,t){return!!cL(t,149)&&mK(n.c,BB(t,149).c)}function E5(n,t){var e;return e=0,n&&(e+=n.f.a/2),t&&(e+=t.f.a/2),e}function T5(n,t){return BB(lnn(n.d,t),23)||BB(lnn(n.e,t),23)}function M5(n){this.b=n,AL.call(this,n),this.a=BB(yan(this.b.a,4),126)}function S5(n){this.b=n,ax.call(this,n),this.a=BB(yan(this.b.a,4),126)}function P5(n){return n.t||(n.t=new dp(n),sln(new xy(n),0,n.t)),n.t}function C5(){return Ffn(),Pun(Gk(WPt,1),$Vn,103,0,[BPt,FPt,_Pt,KPt,HPt])}function I5(){return cpn(),Pun(Gk(JCt,1),$Vn,249,0,[BCt,qCt,_Ct,FCt,HCt])}function O5(){return rpn(),Pun(Gk(jMt,1),$Vn,175,0,[hMt,sMt,uMt,fMt,oMt])}function A5(){return $Sn(),Pun(Gk(zTt,1),$Vn,316,0,[iTt,rTt,uTt,cTt,aTt])}function $5(){return Nvn(),Pun(Gk(Avt,1),$Vn,315,0,[yvt,pvt,vvt,gvt,mvt])}function L5(){return Vvn(),Pun(Gk(Cht,1),$Vn,335,0,[yht,mht,jht,Eht,kht])}function N5(){return YLn(),Pun(Gk(zEt,1),$Vn,355,0,[DEt,xEt,KEt,REt,_Et])}function x5(){return LEn(),Pun(Gk(Kst,1),$Vn,363,0,[Mst,Pst,Cst,Sst,Tst])}function D5(){return Tbn(),Pun(Gk(ivt,1),$Vn,163,0,[qlt,_lt,Flt,Blt,Hlt])}function R5(){var n,t;R5=O,iE(),t=new Ev,tLt=t,n=new Om,eLt=n}function K5(n){var t;return n.c||cL(t=n.r,88)&&(n.c=BB(t,26)),n.c}function _5(n){return n.e=3,n.d=n.Yb(),2!=n.e&&(n.e=0,!0)}function F5(n){return M$(n&SQn,n>>22&SQn,n<0?PQn:0)}function B5(n){var t,e,i;for(e=0,i=(t=n).length;e<i;++e)jW(t[e])}function H5(n,t){var e,i;(e=BB(bfn(n.c,t),14))&&(i=e.gc(),e.$b(),n.d-=i)}function q5(n,t){var e;return!!(e=lsn(n,t.cd()))&&cV(e.e,t.dd())}function G5(n,t){return 0==t||0==n.e?n:t>0?Edn(n,t):Ixn(n,-t)}function z5(n,t){return 0==t||0==n.e?n:t>0?Ixn(n,t):Edn(n,-t)}function U5(n){if(dAn(n))return n.c=n.a,n.a.Pb();throw Hp(new yv)}function X5(n){var t,e;return t=n.c.i,e=n.d.i,t.k==(uSn(),Mut)&&e.k==Mut}function W5(n){var t;return qan(t=new wY,n),hon(t,(HXn(),vgt),null),t}function V5(n,t,e){var i;return(i=n.Yg(t))>=0?n._g(i,e,!0):cOn(n,t,e)}function Q5(n,t,e,i){var r;for(r=0;r<Zit;r++)XG(n.a[t.g][r],e,i[t.g])}function Y5(n,t,e,i){var r;for(r=0;r<nrt;r++)UG(n.a[r][t.g],e,i[t.g])}function J5(n,t,e,i,r){j0.call(this,t,i,r),Fh(this),this.c=n,this.a=e}function Z5(n,t,e,i,r){E0.call(this,t,i,r),Fh(this),this.c=n,this.a=e}function n6(n,t,e,i,r){i6.call(this,t,i,r),Fh(this),this.c=n,this.a=e}function t6(n,t,e,i,r){i6.call(this,t,i,r),Fh(this),this.c=n,this.b=e}function e6(n,t,e){jp.call(this,e),this.b=n,this.c=t,this.d=(Bwn(),z$t)}function i6(n,t,e){this.d=n,this.k=t?1:0,this.f=e?1:0,this.o=-1,this.p=0}function r6(n,t,e){var i;Tcn(i=new X$(n.a),n.a.a),jCn(i.f,t,e),n.a.a=i}function c6(n,t){n.qi(n.i+1),jL(n,n.i,n.oi(n.i,t)),n.bi(n.i++,t),n.ci()}function a6(n){var t,e;++n.j,t=n.g,e=n.i,n.g=null,n.i=0,n.di(e,t),n.ci()}function u6(n){var t;return yX(n),$on(t=new J6(ZW(n.length)),n),t}function o6(n){var t;return yX(n),JPn(t=n?new t_(n):HB(n.Kc())),sfn(t)}function s6(n,t){var e;return l1(t,n.c.length),e=n.c[t],PE(n.c,t,1),e}function h6(n,t){var e;return!(e=BB(n.c.xc(t),14))&&(e=n.ic(t)),n.pc(t,e)}function f6(n,t){var e,i;return kW(n),e=n,kW(t),e==(i=t)?0:e<i?-1:1}function l6(n){var t;return t=n.e+n.f,isNaN(t)&&WK(n.d)?n.d:t}function b6(n,t){return n.a?oO(n.a,n.b):n.a=new lN(n.d),aO(n.a,t),n}function w6(n,t){if(n<0||n>t)throw Hp(new Ay(dCn(n,t,"index")));return n}function d6(n,t,e,i){var r;return vTn(r=x8(ANt,hQn,25,t,15,1),n,t,e,i),r}function g6(n,t){var e;e=n.q.getHours()+(t/60|0),n.q.setMinutes(t),lBn(n,e)}function p6(n,t){return e.Math.min(W8(t.a,n.d.d.c),W8(t.b,n.d.d.c))}function v6(n,t){return XI(t)?null==t?gAn(n.f,null):Gan(n.g,t):gAn(n.f,t)}function m6(n){this.c=n,this.a=new Wb(this.c.a),this.b=new Wb(this.c.b)}function y6(){this.e=new Np,this.c=new Np,this.d=new Np,this.b=new Np}function k6(){this.g=new Bv,this.b=new Bv,this.a=new Np,this.k=new Np}function j6(n,t,e){this.a=n,this.c=t,this.d=e,WB(t.e,this),WB(e.b,this)}function E6(n,t){gO.call(this,t.rd(),-6&t.qd()),kW(n),this.a=n,this.b=t}function T6(n,t){pO.call(this,t.rd(),-6&t.qd()),kW(n),this.a=n,this.b=t}function M6(n,t){vO.call(this,t.rd(),-6&t.qd()),kW(n),this.a=n,this.b=t}function S6(n,t,e){this.a=n,this.b=t,this.c=e,WB(n.t,this),WB(t.i,this)}function P6(){this.b=new YT,this.a=new YT,this.b=new YT,this.a=new YT}function C6(){C6=O,TMt=new up("org.eclipse.elk.labels.labelManager")}function I6(){I6=O,est=new iR("separateLayerConnections",(Iun(),ast))}function O6(){O6=O,Myt=new uC("REGULAR",0),Tyt=new uC("CRITICAL",1)}function A6(){A6=O,Zvt=new XP("STACKED",0),Jvt=new XP("SEQUENCED",1)}function $6(){$6=O,nTt=new TC("FIXED",0),ZEt=new TC("CENTER_NODE",1)}function L6(n,t){var e;return e=xGn(n,t),n.b=new mrn(e.c.length),yqn(n,e)}function N6(n,t,e){return++n.e,--n.f,BB(n.d[t].$c(e),133).dd()}function x6(n){var t;return n.a||cL(t=n.r,148)&&(n.a=BB(t,148)),n.a}function D6(n){return n.a?n.e?D6(n.e):null:n}function R6(n,t){return n.p<t.p?1:n.p>t.p?-1:0}function K6(n,t){return kW(t),n.c<n.d&&(n.ze(t,n.c++),!0)}function _6(n,t){return!!hU(n.a,t)&&(v6(n.a,t),!0)}function F6(n){var t;return t=n.cd(),RB(BB(n.dd(),14).Nc(),new Vf(t))}function B6(n){var t;return t=BB(VU(n.b,n.b.length),9),new YK(n.a,t,n.c)}function H6(n){return Qln(n),new AD(n,new ZB(n,n.a.e,4|n.a.d))}function q6(n){var t;for(EW(n),t=0;n.a.sd(new fn);)t=rbn(t,1);return t}function G6(n,t,e){var i,r;for(i=0,r=0;r<t.length;r++)i+=n.$f(t[r],i,e)}function z6(n,t){var e;n.C&&((e=BB(oV(n.b,t),124).n).d=n.C.d,e.a=n.C.a)}function U6(n,t,e){return w2(t,n.e.Hd().gc()),w2(e,n.c.Hd().gc()),n.a[t][e]}function X6(n,t){ODn(),this.e=n,this.d=1,this.a=Pun(Gk(ANt,1),hQn,25,15,[t])}function W6(n,t,e,i){this.f=n,this.e=t,this.d=e,this.b=i,this.c=i?i.d:null}function V6(n){var t,e,i,r;r=n.d,t=n.a,e=n.b,i=n.c,n.d=e,n.a=i,n.b=r,n.c=t}function Q6(n,t,e,i){mFn(n,t,e,pBn(n,t,i,cL(t,99)&&0!=(BB(t,18).Bb&BQn)))}function Y6(n,t){OTn(t,"Label management",1),iO(mMn(n,(C6(),TMt))),HSn(t)}function J6(n){xA(this),vH(n>=0,"Initial capacity must not be negative")}function Z6(){Z6=O,Wit=lhn((Dtn(),Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])))}function n8(){n8=O,trt=lhn((J9(),Pun(Gk(ert,1),$Vn,461,0,[Yit,Qit,Jit])))}function t8(){t8=O,urt=lhn((G7(),Pun(Gk(Ort,1),$Vn,462,0,[crt,rrt,irt])))}function e8(){e8=O,Zet=lhn((qsn(),Pun(Gk(nit,1),$Vn,132,0,[zet,Uet,Xet])))}function i8(){i8=O,Lat=lhn((q7(),Pun(Gk(Hat,1),$Vn,379,0,[Oat,Iat,Aat])))}function r8(){r8=O,gut=lhn((Bfn(),Pun(Gk(mut,1),$Vn,423,0,[wut,but,lut])))}function c8(){c8=O,bht=lhn((Oin(),Pun(Gk(pht,1),$Vn,314,0,[hht,sht,fht])))}function a8(){a8=O,vht=lhn((uin(),Pun(Gk(Tht,1),$Vn,337,0,[wht,ght,dht])))}function u8(){u8=O,Nht=lhn((Jun(),Pun(Gk(Bht,1),$Vn,450,0,[Aht,Oht,$ht])))}function o8(){o8=O,_st=lhn((Crn(),Pun(Gk(Wst,1),$Vn,361,0,[Rst,Dst,xst])))}function s8(){s8=O,Oft=lhn((z7(),Pun(Gk(Lft,1),$Vn,303,0,[Pft,Cft,Sft])))}function h8(){h8=O,Mft=lhn((Kan(),Pun(Gk(Ift,1),$Vn,292,0,[jft,Eft,kft])))}function f8(){f8=O,svt=lhn((Mhn(),Pun(Gk(wvt,1),$Vn,378,0,[cvt,avt,uvt])))}function l8(){l8=O,Yvt=lhn((Hcn(),Pun(Gk(nmt,1),$Vn,375,0,[Xvt,Wvt,Vvt])))}function b8(){b8=O,Rvt=lhn((mon(),Pun(Gk(Fvt,1),$Vn,339,0,[Nvt,Lvt,xvt])))}function w8(){w8=O,Uvt=lhn((ain(),Pun(Gk(Qvt,1),$Vn,452,0,[Gvt,Hvt,qvt])))}function d8(){d8=O,gmt=lhn(($un(),Pun(Gk(Smt,1),$Vn,377,0,[bmt,wmt,lmt])))}function g8(){g8=O,amt=lhn((Usn(),Pun(Gk(hmt,1),$Vn,336,0,[emt,imt,rmt])))}function p8(){p8=O,fmt=lhn((dcn(),Pun(Gk(dmt,1),$Vn,338,0,[smt,umt,omt])))}function v8(){v8=O,Nmt=lhn((oin(),Pun(Gk(xmt,1),$Vn,454,0,[Omt,Amt,$mt])))}function m8(){m8=O,rjt=lhn((Cbn(),Pun(Gk(ujt,1),$Vn,442,0,[ejt,njt,tjt])))}function y8(){y8=O,bjt=lhn((Hsn(),Pun(Gk(Gjt,1),$Vn,380,0,[sjt,hjt,fjt])))}function k8(){k8=O,eEt=lhn((Sbn(),Pun(Gk(NEt,1),$Vn,381,0,[Zjt,nEt,Jjt])))}function j8(){j8=O,Qjt=lhn((Bcn(),Pun(Gk(Yjt,1),$Vn,293,0,[Xjt,Wjt,Ujt])))}function E8(){E8=O,UEt=lhn((Pbn(),Pun(Gk(WEt,1),$Vn,437,0,[HEt,qEt,GEt])))}function T8(){T8=O,kCt=lhn((ufn(),Pun(Gk(SCt,1),$Vn,334,0,[vCt,pCt,mCt])))}function M8(){M8=O,VPt=lhn((Rtn(),Pun(Gk(nCt,1),$Vn,272,0,[zPt,UPt,XPt])))}function S8(){return QEn(),Pun(Gk(aIt,1),$Vn,98,0,[YCt,QCt,VCt,UCt,WCt,XCt])}function P8(n,t){return!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),rdn(n.o,t)}function C8(n){return!n.g&&(n.g=new oo),!n.g.d&&(n.g.d=new lp(n)),n.g.d}function I8(n){return!n.g&&(n.g=new oo),!n.g.a&&(n.g.a=new bp(n)),n.g.a}function O8(n){return!n.g&&(n.g=new oo),!n.g.b&&(n.g.b=new fp(n)),n.g.b}function A8(n){return!n.g&&(n.g=new oo),!n.g.c&&(n.g.c=new wp(n)),n.g.c}function $8(n,t,e){var i,r;for(r=new Aan(t,n),i=0;i<e;++i)cvn(r);return r}function L8(n,t,e){var i,r;if(null!=e)for(i=0;i<t;++i)r=e[i],n.fi(i,r)}function N8(n,t,e,i){var r;return AFn(r=x8(ANt,hQn,25,t+1,15,1),n,t,e,i),r}function x8(n,t,e,i,r,c){var a;return a=Bmn(r,i),10!=r&&Pun(Gk(n,c),t,e,r,a),a}function D8(n,t,e,i){return e&&(i=e.gh(t,Awn(e.Tg(),n.c.Lj()),null,i)),i}function R8(n,t,e,i){return e&&(i=e.ih(t,Awn(e.Tg(),n.c.Lj()),null,i)),i}function K8(n,t,e){BB(n.b,65),BB(n.b,65),BB(n.b,65),Otn(n.a,new N_(e,t,n))}function _8(n,t,e){if(n<0||t>e||t<n)throw Hp(new Ok(mYn+n+kYn+t+hYn+e))}function F8(n){if(!n)throw Hp(new Fy("Unable to add element to queue"))}function B8(n){n?(this.c=n,this.b=null):(this.c=null,this.b=new Np)}function H8(n,t){PS.call(this,n,t),this.a=x8(Ket,kVn,436,2,0,1),this.b=!0}function q8(n){non.call(this,n,0),jx(this),this.d.b=this.d,this.d.a=this.d}function G8(n){var t;return 0==(t=n.b).b?null:BB(Dpn(t,0),188).b}function z8(n,t){var e;return(e=new q).c=!0,e.d=t.dd(),YGn(n,t.cd(),e)}function U8(n,t){var e;e=n.q.getHours()+(t/3600|0),n.q.setSeconds(t),lBn(n,e)}function X8(n,t,e){var i;(i=n.b[e.c.p][e.p]).b+=t.b,i.c+=t.c,i.a+=t.a,++i.a}function W8(n,t){var i,r;return i=n.a-t.a,r=n.b-t.b,e.Math.sqrt(i*i+r*r)}function V8(){V8=O,cht=new EP("QUADRATIC",0),aht=new EP("SCANLINE",1)}function Q8(){Q8=O,mmt=WG(dq(new B2,(yMn(),Rat),(lWn(),kot)),Bat,qot)}function Y8(){return wEn(),Pun(Gk(qPt,1),$Vn,291,0,[ZMt,JMt,YMt,VMt,WMt,QMt])}function J8(){return wvn(),Pun(Gk(nSt,1),$Vn,248,0,[CMt,AMt,$Mt,LMt,IMt,OMt])}function Z8(){return $Pn(),Pun(Gk(uht,1),$Vn,227,0,[Zst,tht,Jst,nht,eht,Yst])}function n9(){return JMn(),Pun(Gk(mft,1),$Vn,275,0,[cft,eft,aft,rft,ift,tft])}function t9(){return Bjn(),Pun(Gk(uft,1),$Vn,274,0,[Qht,Vht,Jht,Wht,Yht,Xht])}function e9(){return TTn(),Pun(Gk(ovt,1),$Vn,313,0,[tvt,Zpt,Ypt,Jpt,evt,nvt])}function i9(){return gSn(),Pun(Gk(zht,1),$Vn,276,0,[Dht,xht,Kht,Rht,Fht,_ht])}function r9(){return DPn(),Pun(Gk(_kt,1),$Vn,327,0,[Qyt,Uyt,Wyt,Xyt,Vyt,zyt])}function c9(){return lIn(),Pun(Gk(IIt,1),$Vn,273,0,[rIt,eIt,iIt,tIt,nIt,cIt])}function a9(){return nMn(),Pun(Gk(yCt,1),$Vn,312,0,[aCt,rCt,uCt,eCt,cCt,iCt])}function u9(){return uSn(),Pun(Gk($ut,1),$Vn,267,0,[Cut,Put,Mut,Iut,Sut,Tut])}function o9(n){Mx(!!n.c),p2(n.e,n),n.c.Qb(),n.c=null,n.b=dun(n),bD(n.e,n)}function s9(n){return p2(n.c.a.e,n),Px(n.b!=n.c.a.d),n.a=n.b,n.b=n.b.a,n.a}function h9(n){var t;return n.a||-1==n.b||(t=n.c.Tg(),n.a=itn(t,n.b)),n.a}function f9(n,t){return!(n.hi()&&n.Hc(t)||(n.Yh(t),0))}function l9(n,t){return OY(t,"Horizontal alignment cannot be null"),n.b=t,n}function b9(n,t,e){var i;return wWn(),i=ZUn(n,t),e&&i&&gW(n)&&(i=null),i}function w9(n,t,e){var i;for(i=n.Kc();i.Ob();)ZRn(BB(i.Pb(),37),t,e)}function d9(n,t){var e;for(e=t.Kc();e.Ob();)$Kn(n,BB(e.Pb(),37),0,0)}function g9(n,t,i){var r;n.d[t.g]=i,(r=n.g.c)[t.g]=e.Math.max(r[t.g],i+1)}function p9(n,t){var e,i,r;return r=n.r,i=n.d,(e=cHn(n,t,!0)).b!=r||e.a!=i}function v9(n,t){return lS(n.e,t)||Jgn(n.e,t,new ipn(t)),BB(lnn(n.e,t),113)}function m9(n,t,e,i){return kW(n),kW(t),kW(e),kW(i),new jU(n,t,new G)}function y9(n,t,e,i){this.rj(),this.a=t,this.b=n,this.c=new Zz(this,t,e,i)}function k9(n,t,e,i,r,c){H2.call(this,t,i,r,c),Fh(this),this.c=n,this.b=e}function j9(n,t,e,i,r,c){H2.call(this,t,i,r,c),Fh(this),this.c=n,this.a=e}function E9(n,t,e){var i,r;r=null,(i=zJ(n,e))&&(r=yPn(i)),Xgn(t,e,r)}function T9(n,t,e){var i,r;r=null,(i=zJ(n,e))&&(r=yPn(i)),Xgn(t,e,r)}function M9(n,t,e){var i;return(i=$$n(n.b,t))?NHn(F7(n,i),e):null}function S9(n,t){var e;return(e=n.Yg(t))>=0?n._g(e,!0,!0):cOn(n,t,!0)}function P9(n,t){return Pln(Gy(MD(mMn(n,(hWn(),Tlt)))),Gy(MD(mMn(t,Tlt))))}function C9(){C9=O,Ukt=ogn(ogn(FM(new B2,(zyn(),Kyt)),(DPn(),Qyt)),Uyt)}function I9(n,t,e){var i;return i=Non(n,t,e),n.b=new mrn(i.c.length),sDn(n,i)}function O9(n){if(n.b<=0)throw Hp(new yv);return--n.b,n.a-=n.c.c,iln(n.a)}function A9(n){var t;if(!n.a)throw Hp(new lV);return t=n.a,n.a=JJ(n.a),t}function $9(n){for(;!n.a;)if(!TK(n.c,new pw(n)))return!1;return!0}function L9(n){return yX(n),cL(n,198)?BB(n,198):new ol(n)}function N9(n){x9(),BB(n.We((sWn(),fPt)),174).Fc((lIn(),iIt)),n.Ye(hPt,null)}function x9(){x9=O,tMt=new bu,iMt=new wu,eMt=vsn((sWn(),hPt),tMt,qSt,iMt)}function D9(){D9=O,cjt=new pC("LEAF_NUMBER",0),ajt=new pC("NODE_SIZE",1)}function R9(n,t,e){n.a=t,n.c=e,n.b.a.$b(),yQ(n.d),n.e.a.c=x8(Ant,HWn,1,0,5,1)}function K9(n){n.a=x8(ANt,hQn,25,n.b+1,15,1),n.c=x8(ANt,hQn,25,n.b,15,1),n.d=0}function _9(n,t){n.a.ue(t.d,n.b)>0&&(WB(n.c,new mH(t.c,t.d,n.d)),n.b=t.d)}function F9(n,t){if(null==n.g||t>=n.i)throw Hp(new LO(t,n.i));return n.g[t]}function B9(n,t,e){if(xsn(n,e),null!=e&&!n.wj(e))throw Hp(new lv);return e}function H9(n){var t;if(n.Ek())for(t=n.i-1;t>=0;--t)Wtn(n,t);return N3(n)}function q9(n){var t,e;if(!n.b)return null;for(e=n.b;t=e.a[0];)e=t;return e}function G9(n,t){var e;return c4(t),(e=m7(n.slice(0,t),n)).length=t,e}function z9(n,t,e,i){PQ(),i=i||wet,gCn(n.slice(t,e),n,t,e,-t,i)}function U9(n,t,e,i,r){return t<0?cOn(n,e,i):BB(e,66).Nj().Pj(n,n.yh(),t,i,r)}function X9(n){return cL(n,172)?""+BB(n,172).a:null==n?null:Bbn(n)}function W9(n){return cL(n,172)?""+BB(n,172).a:null==n?null:Bbn(n)}function V9(n,t){if(t.a)throw Hp(new dy(IYn));TU(n.a,t),t.a=n,!n.j&&(n.j=t)}function Q9(n,t){vO.call(this,t.rd(),-16449&t.qd()),kW(n),this.a=n,this.c=t}function Y9(n,t){var e,i;return i=t/n.c.Hd().gc()|0,e=t%n.c.Hd().gc(),U6(n,i,e)}function J9(){J9=O,Yit=new GS(cJn,0),Qit=new GS(eJn,1),Jit=new GS(aJn,2)}function Z9(){Z9=O,Net=new gS("All",0),xet=new LA,Det=new A$,Ret=new NA}function n7(){n7=O,_et=lhn((Z9(),Pun(Gk(Fet,1),$Vn,297,0,[Net,xet,Det,Ret])))}function t7(){t7=O,rut=lhn((Aun(),Pun(Gk(dut,1),$Vn,405,0,[Zat,eut,nut,tut])))}function e7(){e7=O,_rt=lhn((Dan(),Pun(Gk(Grt,1),$Vn,406,0,[Rrt,Nrt,xrt,Drt])))}function i7(){i7=O,zrt=lhn((Hpn(),Pun(Gk(Urt,1),$Vn,323,0,[Brt,Frt,Hrt,qrt])))}function r7(){r7=O,ict=lhn((qpn(),Pun(Gk(cct,1),$Vn,394,0,[Zrt,Jrt,nct,tct])))}function c7(){c7=O,Hyt=lhn((zyn(),Pun(Gk(qyt,1),$Vn,393,0,[Ryt,Kyt,_yt,Fyt])))}function a7(){a7=O,ost=lhn((Iun(),Pun(Gk(pst,1),$Vn,360,0,[ast,rst,cst,ist])))}function u7(){u7=O,zjt=lhn((Omn(),Pun(Gk(Vjt,1),$Vn,340,0,[qjt,Bjt,Hjt,Fjt])))}function o7(){o7=O,Est=lhn((Oun(),Pun(Gk(Ist,1),$Vn,411,0,[vst,mst,yst,kst])))}function s7(){s7=O,dvt=lhn((bvn(),Pun(Gk(kvt,1),$Vn,197,0,[lvt,bvt,fvt,hvt])))}function h7(){h7=O,fOt=lhn((Bsn(),Pun(Gk(wOt,1),$Vn,396,0,[uOt,oOt,aOt,sOt])))}function f7(){f7=O,PCt=lhn((Xyn(),Pun(Gk(RCt,1),$Vn,285,0,[MCt,jCt,ECt,TCt])))}function l7(){l7=O,tCt=lhn((Mbn(),Pun(Gk(oCt,1),$Vn,218,0,[ZPt,YPt,QPt,JPt])))}function b7(){b7=O,rOt=lhn((Fwn(),Pun(Gk(cOt,1),$Vn,311,0,[eOt,ZIt,tOt,nOt])))}function w7(){w7=O,BIt=lhn((mdn(),Pun(Gk(YIt,1),$Vn,374,0,[KIt,_It,RIt,DIt])))}function d7(){d7=O,qBn(),HLt=RQn,BLt=KQn,GLt=new Nb(RQn),qLt=new Nb(KQn)}function g7(){g7=O,Ght=new OP(QZn,0),qht=new OP("IMPROVE_STRAIGHTNESS",1)}function p7(n,t){return hH(),WB(n,new rI(t,iln(t.e.c.length+t.g.c.length)))}function v7(n,t){return hH(),WB(n,new rI(t,iln(t.e.c.length+t.g.c.length)))}function m7(n,t){return 10!=vnn(t)&&Pun(tsn(t),t.hm,t.__elementTypeId$,vnn(t),n),n}function y7(n,t){var e;return-1!=(e=E7(n,t,0))&&(s6(n,e),!0)}function k7(n,t){var e;return(e=BB(v6(n.e,t),387))?(RH(e),e.e):null}function j7(n){var t;return JO(n)&&(t=0-n,!isNaN(t))?t:uan(aon(n))}function E7(n,t,e){for(;e<n.c.length;++e)if(cV(t,n.c[e]))return e;return-1}function T7(n,t,e){var i;return EW(n),(i=new sn).a=t,n.a.Nb(new IS(i,e)),i.a}function M7(n){var t;return EW(n),t=x8(xNt,qQn,25,0,15,1),gE(n.a,new ww(t)),t}function S7(n){var t;return t=BB(xq(n.j,0),11),BB(mMn(t,(hWn(),dlt)),11)}function P7(n){var t;if(!Zin(n))throw Hp(new yv);return n.e=1,t=n.d,n.d=null,t}function C7(n,t){var e;this.f=n,this.b=t,e=BB(RX(n.b,t),283),this.c=e?e.b:null}function I7(){G_(),this.b=new xp,this.f=new xp,this.g=new xp,this.e=new xp}function O7(n,t){this.a=x8(Out,a1n,10,n.a.c.length,0,1),Qgn(n.a,this.a),this.b=t}function A7(n){var t;for(t=n.p+1;t<n.c.a.c.length;++t)--BB(xq(n.c.a,t),10).p}function $7(n){var t;null!=(t=n.Ai())&&-1!=n.d&&BB(t,92).Ng(n),n.i&&n.i.Fi()}function L7(n){V$(this),this.g=n?CY(n,n.$d()):null,this.f=n,jQ(this),this._d()}function N7(n,t,e,i,r,c,a){kin.call(this,t,i,r,c,a),Fh(this),this.c=n,this.b=e}function x7(n,t,e,i,r){return kW(n),kW(t),kW(e),kW(i),kW(r),new jU(n,t,i)}function D7(n,t){if(t<0)throw Hp(new Ay(n5n+t));return g3(n,t+1),xq(n.j,t)}function R7(n,t,e,i){if(!n)throw Hp(new _y($Rn(t,Pun(Gk(Ant,1),HWn,1,5,[e,i]))))}function K7(n,t){return cV(t,xq(n.f,0))||cV(t,xq(n.f,1))||cV(t,xq(n.f,2))}function _7(n,t){LK(BB(BB(n.f,33).We((sWn(),uPt)),98))&&Qbn(yV(BB(n.f,33)),t)}function F7(n,t){var e,i;return!(i=(e=BB(t,675)).Oh())&&e.Rh(i=new RI(n,t)),i}function B7(n,t){var e,i;return!(i=(e=BB(t,677)).pk())&&e.tk(i=new K0(n,t)),i}function H7(n){return n.b||(n.b=new JG(n,VAt,n),!n.a&&(n.a=new oR(n,n))),n.b}function q7(){q7=O,Oat=new WS("XY",0),Iat=new WS("X",1),Aat=new WS("Y",2)}function G7(){G7=O,crt=new zS("TOP",0),rrt=new zS(eJn,1),irt=new zS(oJn,2)}function z7(){z7=O,Pft=new xP(QZn,0),Cft=new xP("TOP",1),Sft=new xP(oJn,2)}function U7(){U7=O,Kvt=new GP("INPUT_ORDER",0),_vt=new GP("PORT_DEGREE",1)}function X7(){X7=O,btt=M$(SQn,SQn,524287),wtt=M$(0,0,CQn),dtt=F5(1),F5(2),gtt=F5(0)}function W7(n,t,e){n.a.c=x8(Ant,HWn,1,0,5,1),Xqn(n,t,e),0==n.a.c.length||f_n(n,t)}function V7(n){var t,e;return YU(n,0,e=n.length,t=x8(ONt,WVn,25,e,15,1),0),t}function Q7(n){var t;return n.dh()||(t=bX(n.Tg())-n.Ah(),n.ph().bk(t)),n.Pg()}function Y7(n){var t;return null==(t=een(yan(n,32)))&&(fgn(n),t=een(yan(n,32))),t}function J7(n,t){var e;return(e=Awn(n.d,t))>=0?Zpn(n,e,!0,!0):cOn(n,t,!0)}function Z7(n,t){var e,i;return MM(),e=f3(n),i=f3(t),!!e&&!!i&&!Kpn(e.k,i.k)}function nnn(n,t){Pen(n,null==t||WK((kW(t),t))||isNaN((kW(t),t))?0:(kW(t),t))}function tnn(n,t){Cen(n,null==t||WK((kW(t),t))||isNaN((kW(t),t))?0:(kW(t),t))}function enn(n,t){Sen(n,null==t||WK((kW(t),t))||isNaN((kW(t),t))?0:(kW(t),t))}function inn(n,t){Men(n,null==t||WK((kW(t),t))||isNaN((kW(t),t))?0:(kW(t),t))}function rnn(n){(this.q?this.q:(SQ(),SQ(),het)).Ac(n.q?n.q:(SQ(),SQ(),het))}function cnn(n,t){return cL(t,99)&&0!=(BB(t,18).Bb&BQn)?new xO(t,n):new Aan(t,n)}function ann(n,t){return cL(t,99)&&0!=(BB(t,18).Bb&BQn)?new xO(t,n):new Aan(t,n)}function unn(n,t){Vrt=new it,ect=t,BB((Wrt=n).b,65),K8(Wrt,Vrt,null),uqn(Wrt)}function onn(n,t,e){var i;return i=n.g[t],jL(n,t,n.oi(t,e)),n.gi(t,e,i),n.ci(),i}function snn(n,t){var e;return(e=n.Xc(t))>=0&&(n.$c(e),!0)}function hnn(n){var t;return n.d!=n.r&&(t=Ikn(n),n.e=!!t&&t.Cj()==E9n,n.d=t),n.e}function fnn(n,t){var e;for(yX(n),yX(t),e=!1;t.Ob();)e|=n.Fc(t.Pb());return e}function lnn(n,t){var e;return(e=BB(RX(n.e,t),387))?(uL(n,e),e.e):null}function bnn(n){var t,e;return t=n/60|0,0==(e=n%60)?""+t:t+":"+e}function wnn(n,t){return Qln(n),new Rq(n,new KK(new M6(t,n.a)))}function dnn(n,t){var e=n.a[t],i=(Zun(),ftt)[typeof e];return i?i(e):khn(typeof e)}function gnn(n){switch(n.g){case 0:return DWn;case 1:return-1;default:return 0}}function pnn(n){return Kkn(n,(X7(),gtt))<0?-CN(aon(n)):n.l+n.m*IQn+n.h*OQn}function vnn(n){return null==n.__elementTypeCategory$?10:n.__elementTypeCategory$}function mnn(n){var t;return null!=(t=0==n.b.c.length?null:xq(n.b,0))&&hrn(n,0),t}function ynn(n,t){for(;t[0]<n.length&&GO(" \t\r\n",YTn(fV(n,t[0])))>=0;)++t[0]}function knn(n,t){this.e=t,this.a=Van(n),this.a<54?this.f=j2(n):this.c=npn(n)}function jnn(n,t,e,i){wWn(),Ap.call(this,26),this.c=n,this.a=t,this.d=e,this.b=i}function Enn(n,t,e){var i,r;for(i=10,r=0;r<e-1;r++)t<i&&(n.a+="0"),i*=10;n.a+=t}function Tnn(n,t){var e;for(e=0;n.e!=n.i.gc();)gq(t,kpn(n),iln(e)),e!=DWn&&++e}function Mnn(n,t){var e;for(++n.d,++n.c[t],e=t+1;e<n.a.length;)++n.a[e],e+=e&-e}function Snn(n,t){var e,i,r;r=t.c.i,i=(e=BB(RX(n.f,r),57)).d.c-e.e.c,Yrn(t.a,i,0)}function Pnn(n){var t,e;return t=n+128,!(e=(jq(),jtt)[t])&&(e=jtt[t]=new $b(n)),e}function Cnn(n,t){var e;return kW(t),xnn(!!(e=n[":"+t]),Pun(Gk(Ant,1),HWn,1,5,[t])),e}function Inn(n){var t,e;if(n.b){e=null;do{t=n.b,n.b=null,e=sPn(t,e)}while(n.b);n.b=e}}function Onn(n){var t,e;if(n.a){e=null;do{t=n.a,n.a=null,e=sPn(t,e)}while(n.a);n.a=e}}function Ann(n){var t;for(++n.a,t=n.c.a.length;n.a<t;++n.a)if(n.c.b[n.a])return}function $nn(n,t){var e,i;for(e=(i=t.c)+1;e<=t.f;e++)n.a[e]>n.a[i]&&(i=e);return i}function Lnn(n,t){var e;return 0==(e=Ibn(n.e.c,t.e.c))?Pln(n.e.d,t.e.d):e}function Nnn(n,t){return 0==t.e||0==n.e?eet:($On(),ANn(n,t))}function xnn(n,t){if(!n)throw Hp(new _y(YNn("Enum constant undefined: %s",t)))}function Dnn(){Dnn=O,uut=new St,out=new Tt,cut=new At,aut=new $t,sut=new Lt}function Rnn(){Rnn=O,vit=new BS("BY_SIZE",0),mit=new BS("BY_SIZE_AND_SHAPE",1)}function Knn(){Knn=O,Dct=new XS("EADES",0),Rct=new XS("FRUCHTERMAN_REINGOLD",1)}function _nn(){_nn=O,Sht=new PP("READING_DIRECTION",0),Pht=new PP("ROTATION",1)}function Fnn(){Fnn=O,Mht=lhn((Vvn(),Pun(Gk(Cht,1),$Vn,335,0,[yht,mht,jht,Eht,kht])))}function Bnn(){Bnn=O,jvt=lhn((Nvn(),Pun(Gk(Avt,1),$Vn,315,0,[yvt,pvt,vvt,gvt,mvt])))}function Hnn(){Hnn=O,Ost=lhn((LEn(),Pun(Gk(Kst,1),$Vn,363,0,[Mst,Pst,Cst,Sst,Tst])))}function qnn(){qnn=O,zlt=lhn((Tbn(),Pun(Gk(ivt,1),$Vn,163,0,[qlt,_lt,Flt,Blt,Hlt])))}function Gnn(){Gnn=O,sTt=lhn(($Sn(),Pun(Gk(zTt,1),$Vn,316,0,[iTt,rTt,uTt,cTt,aTt])))}function znn(){znn=O,bMt=lhn((rpn(),Pun(Gk(jMt,1),$Vn,175,0,[hMt,sMt,uMt,fMt,oMt])))}function Unn(){Unn=O,BEt=lhn((YLn(),Pun(Gk(zEt,1),$Vn,355,0,[DEt,xEt,KEt,REt,_Et])))}function Xnn(){Xnn=O,qat=lhn((yMn(),Pun(Gk(Uat,1),$Vn,356,0,[Rat,Kat,_at,Fat,Bat])))}function Wnn(){Wnn=O,GPt=lhn((Ffn(),Pun(Gk(WPt,1),$Vn,103,0,[BPt,FPt,_Pt,KPt,HPt])))}function Vnn(){Vnn=O,zCt=lhn((cpn(),Pun(Gk(JCt,1),$Vn,249,0,[BCt,qCt,_Ct,FCt,HCt])))}function Qnn(){Qnn=O,OIt=lhn((kUn(),Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])))}function Ynn(n,t){var e;return(e=BB(RX(n.a,t),134))||(e=new Zn,VW(n.a,t,e)),e}function Jnn(n){var t;return!!(t=BB(mMn(n,(hWn(),Rft)),305))&&t.a==n}function Znn(n){var t;return!!(t=BB(mMn(n,(hWn(),Rft)),305))&&t.i==n}function ntn(n,t){return kW(t),Dz(n),!!n.d.Ob()&&(t.td(n.d.Pb()),!0)}function ttn(n){return Vhn(n,DWn)>0?DWn:Vhn(n,_Vn)<0?_Vn:dG(n)}function etn(n){return n<3?(lin(n,IVn),n+1):n<OVn?CJ(n/.75+1):DWn}function itn(n,t){var e;return null==n.i&&qFn(n),e=n.i,t>=0&&t<e.length?e[t]:null}function rtn(n,t,e){var i;if(null==t)throw Hp(new gv);return i=zJ(n,t),i4(n,t,e),i}function ctn(n){return n.a>=-.01&&n.a<=fJn&&(n.a=0),n.b>=-.01&&n.b<=fJn&&(n.b=0),n}function atn(n,t){return t==(c_(),c_(),Met)?n.toLocaleLowerCase():n.toLowerCase()}function utn(n){return(0!=(2&n.i)?"interface ":0!=(1&n.i)?"":"class ")+(ED(n),n.o)}function otn(n){var t;t=new $m,f9((!n.q&&(n.q=new eU(QAt,n,11,10)),n.q),t)}function stn(n,t){var e;return e=t>0?t-1:t,$j(Lj(Fen(LH(new Xm,e),n.n),n.j),n.k)}function htn(n,t,e,i){n.j=-1,qOn(n,EPn(n,t,e),(ZM(),BB(t,66).Mj().Ok(i)))}function ftn(n){this.g=n,this.f=new Np,this.a=e.Math.min(this.g.c.c,this.g.d.c)}function ltn(n){this.b=new Np,this.a=new Np,this.c=new Np,this.d=new Np,this.e=n}function btn(n,t){this.a=new xp,this.e=new xp,this.b=(Mhn(),uvt),this.c=n,this.b=t}function wtn(n,t,e){NR.call(this),xtn(this),this.a=n,this.c=e,this.b=t.d,this.f=t.e}function dtn(n){this.d=n,this.c=n.c.vc().Kc(),this.b=null,this.a=null,this.e=(ry(),znt)}function gtn(n){if(n<0)throw Hp(new _y("Illegal Capacity: "+n));this.g=this.ri(n)}function ptn(n,t){if(0>n||n>t)throw Hp(new Tk("fromIndex: 0, toIndex: "+n+hYn+t))}function vtn(n){var t;if(n.a==n.b.a)throw Hp(new yv);return t=n.a,n.c=t,n.a=n.a.e,t}function mtn(n){var t;Mx(!!n.c),t=n.c.a,Atn(n.d,n.c),n.b==n.c?n.b=t:--n.a,n.c=null}function ytn(n,t){var e;return Qln(n),e=new vQ(n,n.a.rd(),4|n.a.qd(),t),new Rq(n,e)}function ktn(n,t){var e,i;return(e=BB(lfn(n.d,t),14))?(i=t,n.e.pc(i,e)):null}function jtn(n,t){var e;for(e=n.Kc();e.Ob();)hon(BB(e.Pb(),70),(hWn(),ult),t)}function Etn(n){var t;return(t=Gy(MD(mMn(n,(HXn(),agt)))))<0&&hon(n,agt,t=0),t}function Ttn(n,t,i){var r;Fkn(i,r=e.Math.max(0,n.b/2-.5),1),WB(t,new iP(i,r))}function Mtn(n,t,e){return CJ(HH(n.a.e[BB(t.a,10).p]-n.a.e[BB(e.a,10).p]))}function Stn(n,t,e,i,r,c){var a;SZ(a=W5(i),r),MZ(a,c),JIn(n.a,i,new L_(a,t,e.f))}function Ptn(n,t){var e;if(!(e=NNn(n.Tg(),t)))throw Hp(new _y(r6n+t+u6n));return e}function Ctn(n,t){var e;for(e=n;JJ(e);)if((e=JJ(e))==t)return!0;return!1}function Itn(n,t){var e,i,r;for(i=t.a.cd(),e=BB(t.a.dd(),14).gc(),r=0;r<e;r++)n.td(i)}function Otn(n,t){var e,i,r,c;for(kW(t),r=0,c=(i=n.c).length;r<c;++r)e=i[r],t.td(e)}function Atn(n,t){var e;return e=t.c,t.a.b=t.b,t.b.a=t.a,t.a=t.b=null,t.c=null,--n.b,e}function $tn(n,t){return!(!t||n.b[t.g]!=t||($X(n.b,t.g,null),--n.c,0))}function Ltn(n,t){return!!Zrn(n,t,dG(cbn(SVn,rV(dG(cbn(null==t?0:nsn(t),PVn)),15))))}function Ntn(n,t){LK(BB(mMn(BB(n.e,10),(HXn(),ept)),98))&&(SQ(),m$(BB(n.e,10).j,t))}function xtn(n){n.b=(J9(),Qit),n.f=(G7(),rrt),n.d=(lin(2,AVn),new J6(2)),n.e=new Gj}function Dtn(){Dtn=O,Git=new qS("BEGIN",0),zit=new qS(eJn,1),Uit=new qS("END",2)}function Rtn(){Rtn=O,zPt=new _C(eJn,0),UPt=new _C("HEAD",1),XPt=new _C("TAIL",2)}function Ktn(){return hAn(),Pun(Gk(aAt,1),$Vn,237,0,[iAt,nAt,tAt,ZOt,eAt,YOt,QOt,JOt])}function _tn(){return PPn(),Pun(Gk(SMt,1),$Vn,277,0,[kMt,wMt,vMt,yMt,dMt,gMt,pMt,mMt])}function Ftn(){return kDn(),Pun(Gk(iht,1),$Vn,270,0,[Bst,Gst,Fst,Xst,qst,Hst,Ust,zst])}function Btn(){return sNn(),Pun(Gk(Dvt,1),$Vn,260,0,[Ivt,Tvt,Pvt,Mvt,Svt,Evt,Cvt,Ovt])}function Htn(){Htn=O,ZCt=lhn((QEn(),Pun(Gk(aIt,1),$Vn,98,0,[YCt,QCt,VCt,UCt,WCt,XCt])))}function qtn(){qtn=O,nrt=(Dtn(),Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length,Zit=nrt}function Gtn(n){this.b=(yX(n),new t_(n)),this.a=new Np,this.d=new Np,this.e=new Gj}function ztn(n){var t;return(t=e.Math.sqrt(n.a*n.a+n.b*n.b))>0&&(n.a/=t,n.b/=t),n}function Utn(n){var t;return n.w?n.w:((t=V1(n))&&!t.kh()&&(n.w=t),t)}function Xtn(n){var t;return null==n?null:VTn(t=BB(n,190),t.length)}function Wtn(n,t){if(null==n.g||t>=n.i)throw Hp(new LO(t,n.i));return n.li(t,n.g[t])}function Vtn(n){var t,e;for(t=n.a.d.j,e=n.c.d.j;t!=e;)orn(n.b,t),t=Mln(t);orn(n.b,t)}function Qtn(n){var t;for(t=0;t<n.c.length;t++)(l1(t,n.c.length),BB(n.c[t],11)).p=t}function Ytn(n,t,e){var i,r,c;for(r=t[e],i=0;i<r.length;i++)c=r[i],n.e[c.c.p][c.p]=i}function Jtn(n,t){var e,i,r,c;for(r=0,c=(i=n.d).length;r<c;++r)e=i[r],lL(n.g,e).a=t}function Ztn(n,t){var e;for(e=spn(n,0);e.b!=e.d.c;)UR(BB(b3(e),8),t);return n}function nen(n,t){return XR(B$(BB(RX(n.g,t),8)),_$(BB(RX(n.f,t),460).b))}function ten(n){var t;return p2(n.e,n),Px(n.b),n.c=n.a,t=BB(n.a.Pb(),42),n.b=dun(n),t}function een(n){var t;return JH(null==n||Array.isArray(n)&&!((t=vnn(n))>=14&&t<=16)),n}function ien(n,t,e){var i=function(){return n.apply(i,arguments)};return t.apply(i,e),i}function ren(n,t,e){var i,r;i=t;do{r=Gy(n.p[i.p])+e,n.p[i.p]=r,i=n.a[i.p]}while(i!=t)}function cen(n,t){var e,i;i=n.a,e=Qfn(n,t,null),i!=t&&!n.e&&(e=azn(n,t,e)),e&&e.Fi()}function aen(n,t){return h$(),rin(KVn),e.Math.abs(n-t)<=KVn||n==t||isNaN(n)&&isNaN(t)}function uen(n,t){return h$(),rin(KVn),e.Math.abs(n-t)<=KVn||n==t||isNaN(n)&&isNaN(t)}function oen(n,t){return _Mn(),E$(n.b.c.length-n.e.c.length,t.b.c.length-t.e.c.length)}function sen(n,t){return Zj(Jrn(n,t,dG(cbn(SVn,rV(dG(cbn(null==t?0:nsn(t),PVn)),15)))))}function hen(){hen=O,Aut=lhn((uSn(),Pun(Gk($ut,1),$Vn,267,0,[Cut,Put,Mut,Iut,Sut,Tut])))}function fen(){fen=O,tSt=lhn((wEn(),Pun(Gk(qPt,1),$Vn,291,0,[ZMt,JMt,YMt,VMt,WMt,QMt])))}function len(){len=O,xMt=lhn((wvn(),Pun(Gk(nSt,1),$Vn,248,0,[CMt,AMt,$Mt,LMt,IMt,OMt])))}function ben(){ben=O,rht=lhn(($Pn(),Pun(Gk(uht,1),$Vn,227,0,[Zst,tht,Jst,nht,eht,Yst])))}function wen(){wen=O,oft=lhn((JMn(),Pun(Gk(mft,1),$Vn,275,0,[cft,eft,aft,rft,ift,tft])))}function den(){den=O,nft=lhn((Bjn(),Pun(Gk(uft,1),$Vn,274,0,[Qht,Vht,Jht,Wht,Yht,Xht])))}function gen(){gen=O,rvt=lhn((TTn(),Pun(Gk(ovt,1),$Vn,313,0,[tvt,Zpt,Ypt,Jpt,evt,nvt])))}function pen(){pen=O,Hht=lhn((gSn(),Pun(Gk(zht,1),$Vn,276,0,[Dht,xht,Kht,Rht,Fht,_ht])))}function ven(){ven=O,Jyt=lhn((DPn(),Pun(Gk(_kt,1),$Vn,327,0,[Qyt,Uyt,Wyt,Xyt,Vyt,zyt])))}function men(){men=O,uIt=lhn((lIn(),Pun(Gk(IIt,1),$Vn,273,0,[rIt,eIt,iIt,tIt,nIt,cIt])))}function yen(){yen=O,sCt=lhn((nMn(),Pun(Gk(yCt,1),$Vn,312,0,[aCt,rCt,uCt,eCt,cCt,iCt])))}function ken(){return n$n(),Pun(Gk(GCt,1),$Vn,93,0,[ICt,CCt,ACt,DCt,xCt,NCt,$Ct,LCt,OCt])}function jen(n,t){var e;e=n.a,n.a=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,0,e,n.a))}function Een(n,t){var e;e=n.b,n.b=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,1,e,n.b))}function Ten(n,t){var e;e=n.b,n.b=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,3,e,n.b))}function Men(n,t){var e;e=n.f,n.f=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,3,e,n.f))}function Sen(n,t){var e;e=n.g,n.g=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,4,e,n.g))}function Pen(n,t){var e;e=n.i,n.i=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,5,e,n.i))}function Cen(n,t){var e;e=n.j,n.j=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,6,e,n.j))}function Ien(n,t){var e;e=n.j,n.j=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,1,e,n.j))}function Oen(n,t){var e;e=n.c,n.c=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,4,e,n.c))}function Aen(n,t){var e;e=n.k,n.k=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,2,e,n.k))}function $en(n,t){var e;e=n.d,n.d=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new l4(n,2,e,n.d))}function Len(n,t){var e;e=n.s,n.s=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new l4(n,4,e,n.s))}function Nen(n,t){var e;e=n.t,n.t=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new l4(n,5,e,n.t))}function xen(n,t){var e;e=n.F,n.F=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,5,e,t))}function Den(n,t){var e;return(e=BB(RX((nS(),mAt),n),55))?e.xj(t):x8(Ant,HWn,1,t,5,1)}function Ren(n,t){var e;return t in n.a&&(e=zJ(n,t).he())?e.a:null}function Ken(n,t){var e,i;return tE(),i=new uo,!!t&&INn(i,t),xin(e=i,n),e}function _en(n,t,e){if(xsn(n,e),!n.Bk()&&null!=e&&!n.wj(e))throw Hp(new lv);return e}function Fen(n,t){return n.n=t,n.n?(n.f=new Np,n.e=new Np):(n.f=null,n.e=null),n}function Ben(n,t,e,i,r,c){var a;return Qen(e,a=mX(n,t)),a.i=r?8:0,a.f=i,a.e=r,a.g=c,a}function Hen(n,t,e,i,r){this.d=t,this.k=i,this.f=r,this.o=-1,this.p=1,this.c=n,this.a=e}function qen(n,t,e,i,r){this.d=t,this.k=i,this.f=r,this.o=-1,this.p=2,this.c=n,this.a=e}function Gen(n,t,e,i,r){this.d=t,this.k=i,this.f=r,this.o=-1,this.p=6,this.c=n,this.a=e}function zen(n,t,e,i,r){this.d=t,this.k=i,this.f=r,this.o=-1,this.p=7,this.c=n,this.a=e}function Uen(n,t,e,i,r){this.d=t,this.j=i,this.e=r,this.o=-1,this.p=4,this.c=n,this.a=e}function Xen(n,t){var e,i,r,c;for(r=0,c=(i=t).length;r<c;++r)e=i[r],V9(n.a,e);return n}function Wen(n){var t,e,i;for(e=0,i=(t=n).length;e<i;++e)yX(t[e]);return new AO(n)}function Ven(n){var t=/function(?:\s+([\w$]+))?\s*\(/.exec(n);return t&&t[1]||zVn}function Qen(n,t){if(n){t.n=n;var e=UJ(t);e?e.gm=t:SWn[n]=[t]}}function Yen(n,t,i){var r;return r=n.length,_Cn(n,0,t,0,e.Math.min(i,r),!0),t}function Jen(n,t,e){var i,r;for(r=t.Kc();r.Ob();)i=BB(r.Pb(),79),TU(n,BB(e.Kb(i),33))}function Zen(){YE();for(var n=PWn,t=0;t<arguments.length;t++)n.push(arguments[t])}function nin(n,t){var e,i,r;for(i=0,r=(e=t).length;i<r;++i)r5(n,e[i],n.c.b,n.c)}function tin(n,t){n.b=e.Math.max(n.b,t.d),n.e+=t.r+(0==n.a.c.length?0:n.c),WB(n.a,t)}function ein(n){Mx(n.c>=0),rgn(n.d,n.c)<0&&(n.a=n.a-1&n.d.a.length-1,n.b=n.d.c),n.c=-1}function iin(n){return n.a<54?n.f<0?-1:n.f>0?1:0:(!n.c&&(n.c=yhn(n.f)),n.c).e}function rin(n){if(!(n>=0))throw Hp(new _y("tolerance ("+n+") must be >= 0"));return n}function cin(){return cMt||ksn(cMt=new ORn,Pun(Gk(_it,1),HWn,130,0,[new Nf])),cMt}function ain(){ain=O,Gvt=new zP(hJn,0),Hvt=new zP("INPUT",1),qvt=new zP("OUTPUT",2)}function uin(){uin=O,wht=new MP("ARD",0),ght=new MP("MSD",1),dht=new MP("MANUAL",2)}function oin(){oin=O,Omt=new YP("BARYCENTER",0),Amt=new YP(E1n,1),$mt=new YP(T1n,2)}function sin(n,t){var e;if(e=n.gc(),t<0||t>e)throw Hp(new tK(t,e));return new RK(n,t)}function hin(n,t){var e;return cL(t,42)?n.c.Mc(t):(e=rdn(n,t),Wdn(n,t),e)}function fin(n,t,e){return Ihn(n,t),Nrn(n,e),Len(n,0),Nen(n,1),nln(n,!0),Yfn(n,!0),n}function lin(n,t){if(n<0)throw Hp(new _y(t+" cannot be negative but was: "+n));return n}function bin(n,t){var e,i;for(e=0,i=n.gc();e<i;++e)if(cV(t,n.Xb(e)))return e;return-1}function win(n){var t;for(t=n.c.Cc().Kc();t.Ob();)BB(t.Pb(),14).$b();n.c.$b(),n.d=0}function din(n){var t,e,i,r;for(i=0,r=(e=n.a).length;i<r;++i)QU(t=e[i],t.length,null)}function gin(n){var t,e;if(0==n)return 32;for(e=0,t=1;0==(t&n);t<<=1)++e;return e}function pin(n){var t;for(t=new Wb(eyn(n));t.a<t.c.c.length;)BB(n0(t),680).Gf()}function vin(n){vM(),this.g=new xp,this.f=new xp,this.b=new xp,this.c=new pJ,this.i=n}function min(){this.f=new Gj,this.d=new wm,this.c=new Gj,this.a=new Np,this.b=new Np}function yin(n,t,e,i){this.rj(),this.a=t,this.b=n,this.c=null,this.c=new lK(this,t,e,i)}function kin(n,t,e,i,r){this.d=n,this.n=t,this.g=e,this.o=i,this.p=-1,r||(this.o=-2-i-1)}function jin(){OL.call(this),this.n=-1,this.g=null,this.i=null,this.j=null,this.Bb|=k6n}function Ein(){return n_n(),Pun(Gk(iOt,1),$Vn,259,0,[GIt,UIt,qIt,XIt,WIt,QIt,VIt,zIt,HIt])}function Tin(){return tRn(),Pun(Gk(Bit,1),$Vn,250,0,[Rit,$it,Lit,Ait,xit,Dit,Nit,Oit,Iit])}function Min(){Min=O,Ott=Pun(Gk(ANt,1),hQn,25,15,[0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15])}function Sin(){Sin=O,kmt=dq(dq(dq(new B2,(yMn(),Rat),(lWn(),cot)),Kat,Oot),_at,Iot)}function Pin(){Pin=O,jmt=dq(dq(dq(new B2,(yMn(),Rat),(lWn(),cot)),Kat,Oot),_at,Iot)}function Cin(){Cin=O,Mmt=dq(dq(dq(new B2,(yMn(),Rat),(lWn(),cot)),Kat,Oot),_at,Iot)}function Iin(){Iin=O,Cmt=WG(dq(dq(new B2,(yMn(),_at),(lWn(),Lot)),Fat,Eot),Bat,$ot)}function Oin(){Oin=O,hht=new TP("LAYER_SWEEP",0),sht=new TP(B1n,1),fht=new TP(QZn,2)}function Ain(n,t){var e,i;return e=n.c,(i=t.e[n.p])>0?BB(xq(e.a,i-1),10):null}function $in(n,t){var e;e=n.k,n.k=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,2,e,n.k))}function Lin(n,t){var e;e=n.f,n.f=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,8,e,n.f))}function Nin(n,t){var e;e=n.i,n.i=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,7,e,n.i))}function xin(n,t){var e;e=n.a,n.a=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,8,e,n.a))}function Din(n,t){var e;e=n.b,n.b=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,0,e,n.b))}function Rin(n,t){var e;e=n.b,n.b=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,0,e,n.b))}function Kin(n,t){var e;e=n.c,n.c=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,1,e,n.c))}function _in(n,t){var e;e=n.c,n.c=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,1,e,n.c))}function Fin(n,t){var e;e=n.c,n.c=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,4,e,n.c))}function Bin(n,t){var e;e=n.d,n.d=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,1,e,n.d))}function Hin(n,t){var e;e=n.D,n.D=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,2,e,n.D))}function qin(n,t){n.r>0&&n.c<n.r&&(n.c+=t,n.i&&n.i.d>0&&0!=n.g&&qin(n.i,t/n.r*n.i.d))}function Gin(n,t,e){var i;n.b=t,n.a=e,i=512==(512&n.a)?new Fm:new Dh,n.c=MDn(i,n.b,n.a)}function zin(n,t){return $xn(n.e,t)?(ZM(),hnn(t)?new lq(t,n):new xI(t,n)):new KI(t,n)}function Uin(n,t){return Jj(Zrn(n.a,t,dG(cbn(SVn,rV(dG(cbn(null==t?0:nsn(t),PVn)),15)))))}function Xin(n,t,e){return x7(n,new fw(t),new un,new lw(e),Pun(Gk(nit,1),$Vn,132,0,[]))}function Win(n){return 0>n?new VT:new $D(null,new m5(n+1,n))}function Vin(n,t){var e;return SQ(),e=new XT(1),XI(n)?mZ(e,n,t):jCn(e.f,n,t),new Xb(e)}function Qin(n,t){var e,i;return(e=n.o+n.p)<(i=t.o+t.p)?-1:e==i?0:1}function Yin(n){var t;return cL(t=mMn(n,(hWn(),dlt)),160)?mwn(BB(t,160)):null}function Jin(n){var t;return(n=e.Math.max(n,2))>(t=kon(n))?(t<<=1)>0?t:OVn:t}function Zin(n){switch(uN(3!=n.e),n.e){case 2:return!1;case 0:return!0}return _5(n)}function nrn(n,t){var e;return!!cL(t,8)&&(e=BB(t,8),n.a==e.a&&n.b==e.b)}function trn(n,t,e){var i,r;return r=t>>5,i=31&t,e0(jz(n.n[e][r],dG(yz(i,1))),3)}function ern(n,t){var e,i;for(i=t.vc().Kc();i.Ob();)vjn(n,(e=BB(i.Pb(),42)).cd(),e.dd())}function irn(n,t){var e;e=new it,BB(t.b,65),BB(t.b,65),BB(t.b,65),Otn(t.a,new TB(n,e,t))}function rrn(n,t){var e;e=n.b,n.b=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,21,e,n.b))}function crn(n,t){var e;e=n.d,n.d=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,11,e,n.d))}function arn(n,t){var e;e=n.j,n.j=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,13,e,n.j))}function urn(n,t,e){var i,r,c;for(c=n.a.length-1,r=n.b,i=0;i<e;r=r+1&c,++i)$X(t,i,n.a[r])}function orn(n,t){var e;return kW(t),e=t.g,!n.b[e]&&($X(n.b,e,t),++n.c,!0)}function srn(n,t){var e;return!((e=null==t?-1:E7(n.b,t,0))<0||(hrn(n,e),0))}function hrn(n,t){var e;e=s6(n.b,n.b.c.length-1),t<n.b.c.length&&(c5(n.b,t,e),KCn(n,t))}function frn(n,t){0==(k5(),Qet?null:t.c).length&&zD(t,new X),mZ(n.a,Qet?null:t.c,t)}function lrn(n,t){OTn(t,"Hierarchical port constraint processing",1),bpn(n),YXn(n),HSn(t)}function brn(n,t){var e,i;for(i=t.Kc();i.Ob();)e=BB(i.Pb(),266),n.b=!0,TU(n.e,e),e.b=n}function wrn(n,t){var e,i;return e=1-t,i=n.a[e],n.a[e]=i.a[t],i.a[t]=n,n.b=!0,i.b=!1,i}function drn(n,t){var e,i;return e=BB(mMn(n,(HXn(),spt)),8),i=BB(mMn(t,spt),8),Pln(e.b,i.b)}function grn(n){RG.call(this),this.b=Gy(MD(mMn(n,(HXn(),ypt)))),this.a=BB(mMn(n,Zdt),218)}function prn(n,t,e){G2.call(this,n,t,e),this.a=new xp,this.b=new xp,this.d=new Wd(this)}function vrn(n){this.e=n,this.d=new bE(etn(gz(this.e).gc())),this.c=this.e.a,this.b=this.e.c}function mrn(n){this.b=n,this.a=x8(ANt,hQn,25,n+1,15,1),this.c=x8(ANt,hQn,25,n,15,1),this.d=0}function yrn(n,t,e){var i;return jxn(n,t,i=new Np,e,!0,!0),n.b=new mrn(i.c.length),i}function krn(n,t){var e;return(e=BB(RX(n.c,t),458))||((e=new cm).c=t,VW(n.c,e.c,e)),e}function jrn(n,t){var e=n.a,i=0;for(var r in e)e.hasOwnProperty(r)&&(t[i++]=r);return t}function Ern(n){return null==n.b?(YM(),YM(),x$t):n.Lk()?n.Kk():n.Jk()}function Trn(n){var t,e;for(e=new AL(n);e.e!=e.i.gc();)Pen(t=BB(kpn(e),33),0),Cen(t,0)}function Mrn(){Mrn=O,sat=new up(OZn),hat=new up(AZn),oat=new up($Zn),uat=new up(LZn)}function Srn(){Srn=O,qut=new ZS("TO_INTERNAL_LTR",0),Hut=new ZS("TO_INPUT_DIRECTION",1)}function Prn(){Prn=O,Qkt=new dC("P1_NODE_PLACEMENT",0),Ykt=new dC("P2_EDGE_ROUTING",1)}function Crn(){Crn=O,Rst=new kP("START",0),Dst=new kP("MIDDLE",1),xst=new kP("END",2)}function Irn(){Irn=O,tst=new iR("edgelabelcenterednessanalysis.includelabel",(hN(),ptt))}function Orn(n,t){JT(AV(new Rq(null,new w1(new Cb(n.b),1)),new JC(n,t)),new nI(n,t))}function Arn(){this.c=new IE(0),this.b=new IE(B3n),this.d=new IE(F3n),this.a=new IE(JJn)}function $rn(n){var t,e;for(e=n.c.a.ec().Kc();e.Ob();)Ul(t=BB(e.Pb(),214),new HMn(t.e))}function Lrn(n){var t,e;for(e=n.c.a.ec().Kc();e.Ob();)zl(t=BB(e.Pb(),214),new Vz(t.f))}function Nrn(n,t){var e;e=n.zb,n.zb=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,1,e,n.zb))}function xrn(n,t){var e;e=n.xb,n.xb=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,3,e,n.xb))}function Drn(n,t){var e;e=n.yb,n.yb=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,2,e,n.yb))}function Rrn(n,t){var e;(e=new Om).n=t,f9((!n.s&&(n.s=new eU(FAt,n,21,17)),n.s),e)}function Krn(n,t){var e;(e=new pD).n=t,f9((!n.s&&(n.s=new eU(FAt,n,21,17)),n.s),e)}function _rn(n,t){var e,i;for(z9(e=n.Pc(),0,e.length,t),i=0;i<e.length;i++)n._c(i,e[i])}function Frn(n,t){var e,i,r;for(kW(t),e=!1,r=t.Kc();r.Ob();)i=r.Pb(),e|=n.Fc(i);return e}function Brn(n){var t,e,i;for(t=0,i=n.Kc();i.Ob();)t=~~(t+=null!=(e=i.Pb())?nsn(e):0);return t}function Hrn(n){var t;return 0==n?"UTC":(n<0?(n=-n,t="UTC+"):t="UTC-",t+bnn(n))}function qrn(n,t){var e;return cL(t,14)?(e=BB(t,14),n.Gc(e)):fnn(n,BB(yX(t),20).Kc())}function Grn(n,t,e){btn.call(this,t,e),this.d=x8(Out,a1n,10,n.a.c.length,0,1),Qgn(n.a,this.d)}function zrn(n){n.a=null,n.e=null,n.b.c=x8(Ant,HWn,1,0,5,1),n.f.c=x8(Ant,HWn,1,0,5,1),n.c=null}function Urn(n,t){t?null==n.B&&(n.B=n.D,n.D=null):null!=n.B&&(n.D=n.B,n.B=null)}function Xrn(n,t){return Gy(MD($N($fn($V(new Rq(null,new w1(n.c.b,16)),new xd(n)),t))))}function Wrn(n,t){return Gy(MD($N($fn($V(new Rq(null,new w1(n.c.b,16)),new Nd(n)),t))))}function Vrn(n,t){OTn(t,k1n,1),JT(wnn(new Rq(null,new w1(n.b,16)),new Zt),new ne),HSn(t)}function Qrn(n,t){var e,i;return e=BB(ZAn(n,(Uyn(),Ljt)),19),i=BB(ZAn(t,Ljt),19),E$(e.a,i.a)}function Yrn(n,t,e){var i,r;for(r=spn(n,0);r.b!=r.d.c;)(i=BB(b3(r),8)).a+=t,i.b+=e;return n}function Jrn(n,t,e){var i;for(i=n.b[e&n.f];i;i=i.b)if(e==i.a&&wW(t,i.g))return i;return null}function Zrn(n,t,e){var i;for(i=n.c[e&n.f];i;i=i.d)if(e==i.f&&wW(t,i.i))return i;return null}function ncn(n,t,e){var i,r,c;for(i=0,r=0;r<e;r++)c=t[r],n[r]=c<<1|i,i=c>>>31;0!=i&&(n[e]=i)}function tcn(n,t){var e,i;for(SQ(),i=new Np,e=0;e<n;++e)i.c[i.c.length]=t;return new $k(i)}function ecn(n){var t;return QI((t=T2(n)).a,0)?(hM(),hM(),Pet):(hM(),new yx(t.b))}function icn(n){var t;return QI((t=T2(n)).a,0)?(hM(),hM(),Pet):(hM(),new yx(t.c))}function rcn(n){var t;return QI((t=E2(n)).a,0)?(fM(),fM(),Cet):(fM(),new kx(t.b))}function ccn(n){return n.b.c.i.k==(uSn(),Mut)?BB(mMn(n.b.c.i,(hWn(),dlt)),11):n.b.c}function acn(n){return n.b.d.i.k==(uSn(),Mut)?BB(mMn(n.b.d.i,(hWn(),dlt)),11):n.b.d}function ucn(n,t,e,i,r,c,a,u,o,s,h,f,l){return bCn(n,t,e,i,r,c,a,u,o,s,h,f,l),Gln(n,!1),n}function ocn(n,t,e,i,r,c,a){gT.call(this,n,t),this.d=e,this.e=i,this.c=r,this.b=c,this.a=u6(a)}function scn(n,t){typeof window===AWn&&typeof window.$gwt===AWn&&(window.$gwt[n]=t)}function hcn(n,t){return Aun(),n==Zat&&t==eut||n==eut&&t==Zat||n==tut&&t==nut||n==nut&&t==tut}function fcn(n,t){return Aun(),n==Zat&&t==nut||n==Zat&&t==tut||n==eut&&t==tut||n==eut&&t==nut}function lcn(n,t){return h$(),rin(fJn),e.Math.abs(0-t)<=fJn||0==t||isNaN(0)&&isNaN(t)?0:n/t}function bcn(){return bDn(),Pun(Gk(Tft,1),$Vn,256,0,[hft,lft,bft,wft,dft,gft,vft,sft,fft,pft])}function wcn(){wcn=O,P$t=new Im,I$t=Pun(Gk(FAt,1),N9n,170,0,[]),C$t=Pun(Gk(QAt,1),x9n,59,0,[])}function dcn(){dcn=O,smt=new VP("NO",0),umt=new VP("GREEDY",1),omt=new VP("LOOK_BACK",2)}function gcn(){gcn=O,Dut=new Ht,Nut=new Bt,xut=new qt,Lut=new Gt,Rut=new zt,Kut=new Ut}function pcn(n){var t,e;for(e=0,t=new Wb(n.b);t.a<t.c.c.length;)BB(n0(t),29).p=e,++e}function vcn(n,t){var e;return $In(new xC((e=_Tn(n)).c,e.d),new xC(e.b,e.a),n.rf(),t,n.Hf())}function mcn(n,t){var e;return n.b?null:(e=stn(n,n.g),DH(n.a,e),e.i=n,n.d=t,e)}function ycn(n,t,e){OTn(e,"DFS Treeifying phase",1),jdn(n,t),cxn(n,t),n.a=null,n.b=null,HSn(e)}function kcn(n,t,e){this.g=n,this.d=t,this.e=e,this.a=new Np,UCn(this),SQ(),m$(this.a,null)}function jcn(n){this.i=n.gc(),this.i>0&&(this.g=this.ri(this.i+(this.i/8|0)+1),n.Qc(this.g))}function Ecn(n,t){MH.call(this,W$t,n,t),this.b=this,this.a=axn(n.Tg(),itn(this.e.Tg(),this.c))}function Tcn(n,t){var e,i;for(kW(t),i=t.vc().Kc();i.Ob();)e=BB(i.Pb(),42),n.zc(e.cd(),e.dd())}function Mcn(n,t,e){var i;for(i=e.Kc();i.Ob();)if(!G3(n,t,i.Pb()))return!1;return!0}function Scn(n,t,e,i,r){var c;return e&&(c=Awn(t.Tg(),n.c),r=e.gh(t,-1-(-1==c?i:c),null,r)),r}function Pcn(n,t,e,i,r){var c;return e&&(c=Awn(t.Tg(),n.c),r=e.ih(t,-1-(-1==c?i:c),null,r)),r}function Ccn(n){var t;if(-2==n.b){if(0==n.e)t=-1;else for(t=0;0==n.a[t];t++);n.b=t}return n.b}function Icn(n){switch(n.g){case 2:return kUn(),CIt;case 4:return kUn(),oIt;default:return n}}function Ocn(n){switch(n.g){case 1:return kUn(),SIt;case 3:return kUn(),sIt;default:return n}}function Acn(n){var t,e,i;return n.j==(kUn(),sIt)&&(e=SN(t=UOn(n),oIt),(i=SN(t,CIt))||i&&e)}function $cn(n){var t;return new YK(t=BB(n.e&&n.e(),9),BB(VU(t,t.length),9),t.length)}function Lcn(n,t){OTn(t,k1n,1),twn(sM(new Pw((gM(),new HV(n,!1,!1,new Ft))))),HSn(t)}function Ncn(n,t){return hN(),XI(n)?f6(n,SD(t)):UI(n)?Tz(n,MD(t)):zI(n)?Ez(n,TD(t)):n.wd(t)}function xcn(n,t){t.q=n,n.d=e.Math.max(n.d,t.r),n.b+=t.d+(0==n.a.c.length?0:n.c),WB(n.a,t)}function Dcn(n,t){var e,i,r,c;return r=n.c,e=n.c+n.b,c=n.d,i=n.d+n.a,t.a>r&&t.a<e&&t.b>c&&t.b<i}function Rcn(n,t,e,i){cL(n.Cb,179)&&(BB(n.Cb,179).tb=null),Nrn(n,e),t&&_In(n,t),i&&n.xk(!0)}function Kcn(n,t){var e;qQ(e=BB(t,183),"x",n.i),qQ(e,"y",n.j),qQ(e,C6n,n.g),qQ(e,P6n,n.f)}function _cn(){_cn=O,Imt=ogn(jO(dq(dq(new B2,(yMn(),_at),(lWn(),Lot)),Fat,Eot),Bat),$ot)}function Fcn(){Fcn=O,Dmt=ogn(jO(dq(dq(new B2,(yMn(),_at),(lWn(),Lot)),Fat,Eot),Bat),$ot)}function Bcn(){Bcn=O,Xjt=new yC(QZn,0),Wjt=new yC("POLAR_COORDINATE",1),Ujt=new yC("ID",2)}function Hcn(){Hcn=O,Xvt=new UP("EQUALLY",0),Wvt=new UP(mJn,1),Vvt=new UP("NORTH_SOUTH",2)}function qcn(){qcn=O,$vt=lhn((sNn(),Pun(Gk(Dvt,1),$Vn,260,0,[Ivt,Tvt,Pvt,Mvt,Svt,Evt,Cvt,Ovt])))}function Gcn(){Gcn=O,Vst=lhn((kDn(),Pun(Gk(iht,1),$Vn,270,0,[Bst,Gst,Fst,Xst,qst,Hst,Ust,zst])))}function zcn(){zcn=O,EMt=lhn((PPn(),Pun(Gk(SMt,1),$Vn,277,0,[kMt,wMt,vMt,yMt,dMt,gMt,pMt,mMt])))}function Ucn(){Ucn=O,cAt=lhn((hAn(),Pun(Gk(aAt,1),$Vn,237,0,[iAt,nAt,tAt,ZOt,eAt,YOt,QOt,JOt])))}function Xcn(){Xcn=O,Qrt=new iR("debugSVG",(hN(),!1)),Yrt=new iR("overlapsExisted",!0)}function Wcn(n,t){return x7(new ow(n),new sw(t),new hw(t),new tn,Pun(Gk(nit,1),$Vn,132,0,[]))}function Vcn(){var n;return qet||(qet=new Kv,YA(n=new y5(""),(lM(),Het)),frn(qet,n)),qet}function Qcn(n,t){for(yX(t);n.Ob();)if(!Qan(BB(n.Pb(),10)))return!1;return!0}function Ycn(n,t){var e;return!!(e=XRn(cin(),n))&&(Ypn(t,(sWn(),mPt),e),!0)}function Jcn(n,t){var e;for(e=0;e<t.j.c.length;e++)BB(D7(n,e),21).Gc(BB(D7(t,e),14));return n}function Zcn(n,t){var e,i;for(i=new Wb(t.b);i.a<i.c.c.length;)e=BB(n0(i),29),n.a[e.p]=QMn(e)}function nan(n,t){var e,i;for(kW(t),i=n.vc().Kc();i.Ob();)e=BB(i.Pb(),42),t.Od(e.cd(),e.dd())}function tan(n,t){cL(t,83)?(BB(n.c,76).Xj(),ern(n,BB(t,83))):BB(n.c,76).Wb(t)}function ean(n){return cL(n,152)?o6(BB(n,152)):cL(n,131)?BB(n,131).a:cL(n,54)?new fy(n):new CT(n)}function ian(n,t){return t<n.b.gc()?BB(n.b.Xb(t),10):t==n.b.gc()?n.a:BB(xq(n.e,t-n.b.gc()-1),10)}function ran(n,t){n.a=rbn(n.a,1),n.c=e.Math.min(n.c,t),n.b=e.Math.max(n.b,t),n.d=rbn(n.d,t)}function can(n,t){OTn(t,"Edge and layer constraint edge reversal",1),Fzn(LRn(n)),HSn(t)}function aan(n){var t;null==n.d?(++n.e,n.f=0,rfn(null)):(++n.e,t=n.d,n.d=null,n.f=0,rfn(t))}function uan(n){var t;return 0==(t=n.h)?n.l+n.m*IQn:t==PQn?n.l+n.m*IQn-OQn:n}function oan(n){return qD(),n.A.Hc((mdn(),DIt))&&!n.B.Hc((n_n(),UIt))?ndn(n):null}function san(n){if(kW(n),0==n.length)throw Hp(new Mk("Zero length BigInteger"));iKn(this,n)}function han(n){if(!n)throw Hp(new Fy("no calls to next() since the last call to remove()"))}function fan(n){return $Qn<n&&n<OQn?n<0?e.Math.ceil(n):e.Math.floor(n):uan(gNn(n))}function lan(n,t){var e,i,r;for(e=n.c.Ee(),r=t.Kc();r.Ob();)i=r.Pb(),n.a.Od(e,i);return n.b.Kb(e)}function ban(n,t){var e,i,r;if(null!=(e=n.Jg())&&n.Mg())for(i=0,r=e.length;i<r;++i)e[i].ui(t)}function wan(n,t){var e,i;for(i=vW(e=n).e;i;){if((e=i)==t)return!0;i=vW(e).e}return!1}function dan(n,t,e){var i,r;return(i=n.a.f[t.p])<(r=n.a.f[e.p])?-1:i==r?0:1}function gan(n,t,e){var i,r;return r=BB(UK(n.d,t),19),i=BB(UK(n.b,e),19),r&&i?U6(n,r.a,i.a):null}function pan(n,t){var e,i;for(i=new AL(n);i.e!=i.i.gc();)SA(e=BB(kpn(i),33),e.i+t.b,e.j+t.d)}function van(n,t){var e,i;for(i=new Wb(t);i.a<i.c.c.length;)e=BB(n0(i),70),WB(n.d,e),KMn(n,e)}function man(n,t){var e,i;i=new Np,e=t;do{i.c[i.c.length]=e,e=BB(RX(n.k,e),17)}while(e);return i}function yan(n,t){var e;return 0!=(n.Db&t)?-1==(e=Rmn(n,t))?n.Eb:een(n.Eb)[e]:null}function kan(n,t){var e;return(e=new _f).G=t,!n.rb&&(n.rb=new Jz(n,HAt,n)),f9(n.rb,e),e}function jan(n,t){var e;return(e=new Ev).G=t,!n.rb&&(n.rb=new Jz(n,HAt,n)),f9(n.rb,e),e}function Ean(n,t){switch(t){case 1:return!!n.n&&0!=n.n.i;case 2:return null!=n.k}return m0(n,t)}function Tan(n){switch(n.a.g){case 1:return new EI;case 3:return new hyn;default:return new If}}function Man(n){var t;if(n.g>1||n.Ob())return++n.a,n.g=0,t=n.i,n.Ob(),t;throw Hp(new yv)}function San(n){var t;return a$(),uS(syt,n)||((t=new ua).a=n,wR(syt,n,t)),BB(oV(syt,n),635)}function Pan(n){var t,e,i;return e=0,(i=n)<0&&(i+=OQn,e=PQn),t=CJ(i/IQn),M$(CJ(i-t*IQn),t,e)}function Can(n){var t,e,i;for(i=0,e=new QT(n.a);e.a<e.c.a.length;)t=u4(e),n.b.Hc(t)&&++i;return i}function Ian(n){var t,e,i;for(t=1,i=n.Kc();i.Ob();)t=~~(t=31*t+(null==(e=i.Pb())?0:nsn(e)));return t}function Oan(n,t){var e;this.c=n,gmn(n,e=new Np,t,n.b,null,!1,null,!1),this.a=new M2(e,0)}function Aan(n,t){this.b=n,this.e=t,this.d=t.j,this.f=(ZM(),BB(n,66).Oj()),this.k=axn(t.e.Tg(),n)}function $an(n,t,e){this.b=(kW(n),n),this.d=(kW(t),t),this.e=(kW(e),e),this.c=this.d+""+this.e}function Lan(){this.a=BB(mpn((fRn(),qct)),19).a,this.c=Gy(MD(mpn(cat))),this.b=Gy(MD(mpn(tat)))}function Nan(){Nan=O,KCt=lhn((n$n(),Pun(Gk(GCt,1),$Vn,93,0,[ICt,CCt,ACt,DCt,xCt,NCt,$Ct,LCt,OCt])))}function xan(){xan=O,Fit=lhn((tRn(),Pun(Gk(Bit,1),$Vn,250,0,[Rit,$it,Lit,Ait,xit,Dit,Nit,Oit,Iit])))}function Dan(){Dan=O,Rrt=new US("UP",0),Nrt=new US(pJn,1),xrt=new US(cJn,2),Drt=new US(aJn,3)}function Ran(){Ran=O,sZ(),ykt=new $O(X3n,kkt=Rkt),B0(),vkt=new $O(W3n,mkt=Hkt)}function Kan(){Kan=O,jft=new NP("ONE_SIDED",0),Eft=new NP("TWO_SIDED",1),kft=new NP("OFF",2)}function _an(n){n.r=new Rv,n.w=new Rv,n.t=new Np,n.i=new Np,n.d=new Rv,n.a=new bA,n.c=new xp}function Fan(n){this.n=new Np,this.e=new YT,this.j=new YT,this.k=new Np,this.f=new Np,this.p=n}function Ban(n,t){n.c&&(JKn(n,t,!0),JT(new Rq(null,new w1(t,16)),new qd(n))),JKn(n,t,!1)}function Han(n,t,e){return n==(oin(),$mt)?new Pc:0!=H$n(t,1)?new Rj(e.length):new Dj(e.length)}function qan(n,t){var e;return t?((e=t.Ve()).dc()||(n.q?Tcn(n.q,e):n.q=new mO(e)),n):n}function Gan(n,t){var e;return void 0===(e=n.a.get(t))?++n.d:(mR(n.a,t),--n.c,oY(n.b)),e}function zan(n,t){var e;return 0==(e=t.p-n.p)?Pln(n.f.a*n.f.b,t.f.a*t.f.b):e}function Uan(n,t){var e,i;return(e=n.f.c.length)<(i=t.f.c.length)?-1:e==i?0:1}function Xan(n){return 0!=n.b.c.length&&BB(xq(n.b,0),70).a?BB(xq(n.b,0),70).a:eQ(n)}function Wan(n){var t;if(n){if((t=n).dc())throw Hp(new yv);return t.Xb(t.gc()-1)}return u1(n.Kc())}function Van(n){var t;return Vhn(n,0)<0&&(n=uH(n)),64-(0!=(t=dG(kz(n,32)))?ZIn(t):ZIn(dG(n))+32)}function Qan(n){var t;return t=BB(mMn(n,(hWn(),Qft)),61),n.k==(uSn(),Mut)&&(t==(kUn(),CIt)||t==oIt)}function Yan(n,t,e){var i,r;(r=BB(mMn(n,(HXn(),vgt)),74))&&(Wsn(i=new km,0,r),Ztn(i,e),Frn(t,i))}function Jan(n,t,e){var i,r,c,a;i=(a=vW(n)).d,r=a.c,c=n.n,t&&(c.a=c.a-i.b-r.a),e&&(c.b=c.b-i.d-r.b)}function Zan(n,t){var e,i;return(e=n.j)!=(i=t.j)?e.g-i.g:n.p==t.p?0:e==(kUn(),sIt)?n.p-t.p:t.p-n.p}function nun(n){var t,e;for(PUn(n),e=new Wb(n.d);e.a<e.c.c.length;)(t=BB(n0(e),101)).i&&XSn(t)}function tun(n,t,e,i,r){$X(n.c[t.g],e.g,i),$X(n.c[e.g],t.g,i),$X(n.b[t.g],e.g,r),$X(n.b[e.g],t.g,r)}function eun(n,t,e,i){BB(e.b,65),BB(e.b,65),BB(i.b,65),BB(i.b,65),BB(i.b,65),Otn(i.a,new EB(n,t,i))}function iun(n,t){n.d==(Ffn(),_Pt)||n.d==HPt?BB(t.a,57).c.Fc(BB(t.b,57)):BB(t.b,57).c.Fc(BB(t.a,57))}function run(n,t,e,i){return 1==e?(!n.n&&(n.n=new eU(zOt,n,1,7)),_pn(n.n,t,i)):eSn(n,t,e,i)}function cun(n,t){var e;return Nrn(e=new Ho,t),f9((!n.A&&(n.A=new NL(O$t,n,7)),n.A),e),e}function aun(n,t,e){var i,r;return r=N2(t,A6n),pjn((i=new aI(n,e)).a,i.b,r),r}function uun(n){var t;return(!n.a||0==(1&n.Bb)&&n.a.kh())&&cL(t=Ikn(n),148)&&(n.a=BB(t,148)),n.a}function oun(n,t){var e,i;for(kW(t),i=t.Kc();i.Ob();)if(e=i.Pb(),!n.Hc(e))return!1;return!0}function sun(n,t){var e,i,r;return e=n.l+t.l,i=n.m+t.m+(e>>22),r=n.h+t.h+(i>>22),M$(e&SQn,i&SQn,r&PQn)}function hun(n,t){var e,i,r;return e=n.l-t.l,i=n.m-t.m+(e>>22),r=n.h-t.h+(i>>22),M$(e&SQn,i&SQn,r&PQn)}function fun(n){var t;return n<128?(!(t=(Mq(),Mtt)[n])&&(t=Mtt[n]=new Lb(n)),t):new Lb(n)}function lun(n){var t;return cL(n,78)?n:((t=n&&n.__java$exception)||ov(t=new jhn(n)),t)}function bun(n){if(cL(n,186))return BB(n,118);if(n)return null;throw Hp(new Hy(e8n))}function wun(n,t){if(null==t)return!1;for(;n.a!=n.b;)if(Nfn(t,_hn(n)))return!0;return!1}function dun(n){return!!n.a.Ob()||n.a==n.d&&(n.a=new S2(n.e.f),n.a.Ob())}function gun(n,t){var e;return 0!=(e=t.Pc()).length&&(tH(n.c,n.c.length,e),!0)}function pun(n,t,e){var i,r;for(r=t.vc().Kc();r.Ob();)i=BB(r.Pb(),42),n.yc(i.cd(),i.dd(),e);return n}function vun(n,t){var e;for(e=new Wb(n.b);e.a<e.c.c.length;)hon(BB(n0(e),70),(hWn(),ult),t)}function mun(n,t,e){var i,r;for(r=new Wb(n.b);r.a<r.c.c.length;)SA(i=BB(n0(r),33),i.i+t,i.j+e)}function yun(n,t){if(!n)throw Hp(new _y($Rn("value already present: %s",Pun(Gk(Ant,1),HWn,1,5,[t]))))}function kun(n,t){return!(!n||!t||n==t)&&_dn(n.d.c,t.d.c+t.d.b)&&_dn(t.d.c,n.d.c+n.d.b)}function jun(){return k5(),Qet?new y5(null):FOn(Vcn(),"com.google.common.base.Strings")}function Eun(n,t){var e;return e=sx(t.a.gc()),JT(ytn(new Rq(null,new w1(t,1)),n.i),new NC(n,e)),e}function Tun(n){var t;return Nrn(t=new Ho,"T"),f9((!n.d&&(n.d=new NL(O$t,n,11)),n.d),t),t}function Mun(n){var t,e,i,r;for(t=1,e=0,r=n.gc();e<r;++e)t=31*t+(null==(i=n.ki(e))?0:nsn(i));return t}function Sun(n,t,e,i){var r;return w2(t,n.e.Hd().gc()),w2(e,n.c.Hd().gc()),r=n.a[t][e],$X(n.a[t],e,i),r}function Pun(n,t,e,i,r){return r.gm=n,r.hm=t,r.im=I,r.__elementTypeId$=e,r.__elementTypeCategory$=i,r}function Cun(n,t,i,r,c){return jDn(),e.Math.min(zGn(n,t,i,r,c),zGn(i,r,n,t,qx(new xC(c.a,c.b))))}function Iun(){Iun=O,ast=new tP(QZn,0),rst=new tP(C1n,1),cst=new tP(I1n,2),ist=new tP("BOTH",3)}function Oun(){Oun=O,vst=new mP(eJn,0),mst=new mP(cJn,1),yst=new mP(aJn,2),kst=new mP("TOP",3)}function Aun(){Aun=O,Zat=new QS("Q1",0),eut=new QS("Q4",1),nut=new QS("Q2",2),tut=new QS("Q3",3)}function $un(){$un=O,bmt=new QP("OFF",0),wmt=new QP("SINGLE_EDGE",1),lmt=new QP("MULTI_EDGE",2)}function Lun(){Lun=O,WTt=new SC("MINIMUM_SPANNING_TREE",0),XTt=new SC("MAXIMUM_SPANNING_TREE",1)}function Nun(){Nun=O,new up("org.eclipse.elk.addLayoutConfig"),ZTt=new ou,JTt=new au,new uu}function xun(n){var t,e;for(t=new YT,e=spn(n.d,0);e.b!=e.d.c;)DH(t,BB(b3(e),188).c);return t}function Dun(n){var t,e;for(e=new Np,t=n.Kc();t.Ob();)gun(e,wDn(BB(t.Pb(),33)));return e}function Run(n){var t;tBn(n,!0),t=VVn,Lx(n,(HXn(),fpt))&&(t+=BB(mMn(n,fpt),19).a),hon(n,fpt,iln(t))}function Kun(n,t,e){var i;$U(n.a),Otn(e.i,new jg(n)),kgn(n,i=new C$(BB(RX(n.a,t.b),65)),t),e.f=i}function _un(n,t){var e,i;return e=n.c,(i=t.e[n.p])<e.a.c.length-1?BB(xq(e.a,i+1),10):null}function Fun(n,t){var e,i;for(WQ(t,"predicate"),i=0;n.Ob();i++)if(e=n.Pb(),t.Lb(e))return i;return-1}function Bun(n,t){var e,i;if(i=0,n<64&&n<=t)for(t=t<64?t:63,e=n;e<=t;e++)i=i0(i,yz(1,e));return i}function Hun(n){var t,e,i;for(SQ(),i=0,e=n.Kc();e.Ob();)i+=null!=(t=e.Pb())?nsn(t):0,i|=0;return i}function qun(n){var t;return tE(),t=new co,n&&f9((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a),t),t}function Gun(n){var t;return(t=new p).a=n,t.b=yon(n),t.c=x8(Qtt,sVn,2,2,6,1),t.c[0]=Hrn(n),t.c[1]=Hrn(n),t}function zun(n,t){if(0===t)return!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),void n.o.c.$b();mPn(n,t)}function Uun(n,t,e){switch(e.g){case 2:n.b=t;break;case 1:n.c=t;break;case 4:n.d=t;break;case 3:n.a=t}}function Xun(n){switch(n.g){case 1:return ECt;case 2:return jCt;case 3:return TCt;default:return MCt}}function Wun(n){switch(BB(mMn(n,(HXn(),kgt)),163).g){case 2:case 4:return!0;default:return!1}}function Vun(){Vun=O,yft=lhn((bDn(),Pun(Gk(Tft,1),$Vn,256,0,[hft,lft,bft,wft,dft,gft,vft,sft,fft,pft])))}function Qun(){Qun=O,JIt=lhn((n_n(),Pun(Gk(iOt,1),$Vn,259,0,[GIt,UIt,qIt,XIt,WIt,QIt,VIt,zIt,HIt])))}function Yun(){Yun=O,Xkt=dq(ogn(ogn(FM(dq(new B2,(zyn(),Kyt),(DPn(),Qyt)),_yt),Xyt),Wyt),Fyt,Vyt)}function Jun(){Jun=O,Aht=new CP(QZn,0),Oht=new CP("INCOMING_ONLY",1),$ht=new CP("OUTGOING_ONLY",2)}function Zun(){Zun=O,ftt={boolean:UT,number:Cy,string:Iy,object:TCn,function:TCn,undefined:Wp}}function non(n,t){vH(n>=0,"Negative initial capacity"),vH(t>=0,"Non-positive load factor"),$U(this)}function ton(n,t,e){return!(n>=128)&&JI(n<64?e0(yz(1,n),e):e0(yz(1,n-64),t),0)}function eon(n,t){return!(!n||!t||n==t)&&Ibn(n.b.c,t.b.c+t.b.b)<0&&Ibn(t.b.c,n.b.c+n.b.b)<0}function ion(n){var t,e,i;return e=n.n,i=n.o,t=n.d,new UV(e.a-t.b,e.b-t.d,i.a+(t.b+t.c),i.b+(t.d+t.a))}function ron(n){var t,e,i,r;for(i=0,r=(e=n.a).length;i<r;++i)Son(n,t=e[i],(kUn(),SIt)),Son(n,t,sIt)}function con(n){var t,e;for(null==n.j&&(n.j=(PY(),Ijn(ett.ce(n)))),t=0,e=n.j.length;t<e;++t);}function aon(n){var t,e;return M$(t=1+~n.l&SQn,e=~n.m+(0==t?1:0)&SQn,~n.h+(0==t&&0==e?1:0)&PQn)}function uon(n,t){return TFn(BB(BB(RX(n.g,t.a),46).a,65),BB(BB(RX(n.g,t.b),46).a,65))}function oon(n,t,e){var i;if(t>(i=n.gc()))throw Hp(new tK(t,i));return n.hi()&&(e=nZ(n,e)),n.Vh(t,e)}function son(n,t,e){return null==e?(!n.q&&(n.q=new xp),v6(n.q,t)):(!n.q&&(n.q=new xp),VW(n.q,t,e)),n}function hon(n,t,e){return null==e?(!n.q&&(n.q=new xp),v6(n.q,t)):(!n.q&&(n.q=new xp),VW(n.q,t,e)),n}function fon(n){var t,e;return qan(e=new y6,n),hon(e,(Mrn(),sat),n),eBn(n,e,t=new xp),Szn(n,e,t),e}function lon(n){var t,e,i;for(jDn(),e=x8(PMt,sVn,8,2,0,1),i=0,t=0;t<2;t++)i+=.5,e[t]=lmn(i,n);return e}function bon(n,t){var e,i,r;for(e=!1,i=n.a[t].length,r=0;r<i-1;r++)e|=Pdn(n,t,r,r+1);return e}function won(n,t,e,i,r){var c,a;for(a=e;a<=r;a++)for(c=t;c<=i;c++)vmn(n,c,a)||FRn(n,c,a,!0,!1)}function don(n,t){this.b=n,NO.call(this,(BB(Wtn(QQ((QX(),t$t).o),10),18),t.i),t.g),this.a=(wcn(),I$t)}function gon(n,t){this.c=n,this.d=t,this.b=this.d/this.c.c.Hd().gc()|0,this.a=this.d%this.c.c.Hd().gc()}function pon(){this.o=null,this.k=null,this.j=null,this.d=null,this.b=null,this.n=null,this.a=null}function von(n,t,i){this.q=new e.Date,this.q.setFullYear(n+sQn,t,i),this.q.setHours(0,0,0,0),lBn(this,0)}function mon(){mon=O,Nvt=new qP(QZn,0),Lvt=new qP("NODES_AND_EDGES",1),xvt=new qP("PREFER_EDGES",2)}function yon(n){var t;return 0==n?"Etc/GMT":(n<0?(n=-n,t="Etc/GMT-"):t="Etc/GMT+",t+bnn(n))}function kon(n){var t;if(n<0)return _Vn;if(0==n)return 0;for(t=OVn;0==(t&n);t>>=1);return t}function jon(n){var t,e;return 32==(e=ZIn(n.h))?32==(t=ZIn(n.m))?ZIn(n.l)+32:t+20-10:e-12}function Eon(n){var t;return null==(t=n.a[n.b])?null:($X(n.a,n.b,null),n.b=n.b+1&n.a.length-1,t)}function Ton(n){var t,e;return t=n.t-n.k[n.o.p]*n.d+n.j[n.o.p]>n.f,e=n.u+n.e[n.o.p]*n.d>n.f*n.s*n.d,t||e}function Mon(n,t,e){var i,r;return i=new H8(t,e),r=new q,n.b=Wxn(n,n.b,i,r),r.b||++n.c,n.b.b=!1,r.d}function Son(n,t,e){var i,r,c;for(c=0,r=Lfn(t,e).Kc();r.Ob();)i=BB(r.Pb(),11),VW(n.c,i,iln(c++))}function Pon(n){var t,e;for(e=new Wb(n.a.b);e.a<e.c.c.length;)(t=BB(n0(e),81)).g.c=-t.g.c-t.g.b;kNn(n)}function Con(n){var t,e;for(e=new Wb(n.a.b);e.a<e.c.c.length;)(t=BB(n0(e),57)).d.c=-t.d.c-t.d.b;yNn(n)}function Ion(n){var t;return(!n.c||0==(1&n.Bb)&&0!=(64&n.c.Db))&&cL(t=Ikn(n),88)&&(n.c=BB(t,26)),n.c}function Oon(n){var t,e,i;t=1+~n.l&SQn,e=~n.m+(0==t?1:0)&SQn,i=~n.h+(0==t&&0==e?1:0)&PQn,n.l=t,n.m=e,n.h=i}function Aon(n){var t,e,i,r,c;for(t=new Gj,r=0,c=(i=n).length;r<c;++r)e=i[r],t.a+=e.a,t.b+=e.b;return t}function $on(n,t){var e,i,r,c,a;for(SQ(),a=!1,r=0,c=(i=t).length;r<c;++r)e=i[r],a|=n.Fc(e);return a}function Lon(n){var t,e;for(jDn(),e=-17976931348623157e292,t=0;t<n.length;t++)n[t]>e&&(e=n[t]);return e}function Non(n,t,e){var i;return jxn(n,t,i=new Np,(kUn(),oIt),!0,!1),jxn(n,e,i,CIt,!1,!1),i}function xon(n,t,e){var i,r;return r=N2(t,"labels"),XAn((i=new gI(n,e)).a,i.b,r),r}function Don(n,t,e,i){var r;return(r=m$n(n,t,e,i))||!(r=aln(n,e,i))||Fqn(n,t,r)?r:null}function Ron(n,t,e,i){var r;return(r=y$n(n,t,e,i))||!(r=uln(n,e,i))||Fqn(n,t,r)?r:null}function Kon(n,t){var e;for(e=0;e<n.a.a.length;e++)if(!BB(Dq(n.a,e),169).Lb(t))return!1;return!0}function _on(n,t,e){if(yX(t),e.Ob())for(sO(t,CX(e.Pb()));e.Ob();)sO(t,n.a),sO(t,CX(e.Pb()));return t}function Fon(n){var t,e,i;for(SQ(),i=1,e=n.Kc();e.Ob();)i=31*i+(null!=(t=e.Pb())?nsn(t):0),i|=0;return i}function Bon(n,t,e,i,r){var c;return c=jAn(n,t),e&&Oon(c),r&&(n=Smn(n,t),ltt=i?aon(n):M$(n.l,n.m,n.h)),c}function Hon(n,t){var e;try{t.Vd()}catch(i){if(!cL(i=lun(i),78))throw Hp(i);e=i,n.c[n.c.length]=e}}function qon(n,t,e){var i,r;return cL(t,144)&&e?(i=BB(t,144),r=e,n.a[i.b][r.b]+n.a[r.b][i.b]):0}function Gon(n,t){switch(t){case 7:return!!n.e&&0!=n.e.i;case 8:return!!n.d&&0!=n.d.i}return fwn(n,t)}function zon(n,t){switch(t.g){case 0:cL(n.b,631)||(n.b=new Lan);break;case 1:cL(n.b,632)||(n.b=new fH)}}function Uon(n,t){for(;null!=n.g||n.c?null==n.g||0!=n.i&&BB(n.g[n.i-1],47).Ob():tZ(n);)vI(t,aLn(n))}function Xon(n,t,e){n.g=APn(n,t,(kUn(),oIt),n.b),n.d=APn(n,e,oIt,n.b),0!=n.g.c&&0!=n.d.c&&zMn(n)}function Won(n,t,e){n.g=APn(n,t,(kUn(),CIt),n.j),n.d=APn(n,e,CIt,n.j),0!=n.g.c&&0!=n.d.c&&zMn(n)}function Von(n,t,e){return!jE(AV(new Rq(null,new w1(n.c,16)),new aw(new ZC(t,e)))).sd((dM(),tit))}function Qon(n){var t;return EW(n),t=new sn,n.a.sd(t)?(CL(),new vy(kW(t.a))):(CL(),CL(),Set)}function Yon(n){var t;return!(n.b<=0)&&((t=GO("MLydhHmsSDkK",YTn(fV(n.c,0))))>1||t>=0&&n.b<3)}function Jon(n){var t,e;for(t=new km,e=spn(n,0);e.b!=e.d.c;)Kx(t,0,new wA(BB(b3(e),8)));return t}function Zon(n){var t;for(t=new Wb(n.a.b);t.a<t.c.c.length;)BB(n0(t),81).f.$b();ky(n.b,n),BNn(n)}function nsn(n){return XI(n)?vvn(n):UI(n)?VO(n):zI(n)?(kW(n),n?1231:1237):iz(n)?n.Hb():AG(n)?PN(n):tY(n)}function tsn(n){return XI(n)?Qtt:UI(n)?Ptt:zI(n)?ktt:iz(n)||AG(n)?n.gm:n.gm||Array.isArray(n)&&Gk(ntt,1)||ntt}function esn(n){if(0===n.g)return new cu;throw Hp(new _y(N4n+(null!=n.f?n.f:""+n.g)))}function isn(n){if(0===n.g)return new iu;throw Hp(new _y(N4n+(null!=n.f?n.f:""+n.g)))}function rsn(n,t,e){if(0===t)return!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),void tan(n.o,e);yCn(n,t,e)}function csn(n,t,e){this.g=n,this.e=new Gj,this.f=new Gj,this.d=new YT,this.b=new YT,this.a=t,this.c=e}function asn(n,t,e,i){this.b=new Np,this.n=new Np,this.i=i,this.j=e,this.s=n,this.t=t,this.r=0,this.d=0}function usn(n){this.e=n,this.d=new p4(this.e.g),this.a=this.d,this.b=dun(this),this.$modCount=n.$modCount}function osn(n){for(;!n.d||!n.d.Ob();){if(!n.b||Wy(n.b))return null;n.d=BB(dU(n.b),47)}return n.d}function ssn(n){return WB(n.c,(Nun(),ZTt)),uen(n.a,Gy(MD(mpn((Rwn(),Vpt)))))?new qu:new Cg(n)}function hsn(n){switch(n.g){case 1:return F3n;default:case 2:return 0;case 3:return JJn;case 4:return B3n}}function fsn(){var n;return wWn(),PNt||(n=ex(ZUn("M",!0)),n=gG(ZUn("M",!1),n),PNt=n)}function lsn(n,t){var e,i,r;for(r=n.b;r;){if(0==(e=n.a.ue(t,r.d)))return r;i=e<0?0:1,r=r.a[i]}return null}function bsn(n,t,e){var i,r;hN(),i=!!TO(e),(r=BB(t.xc(i),15))||(r=new Np,t.zc(i,r)),r.Fc(e)}function wsn(n,t){var e,i;return(e=BB(ZAn(n,(W$n(),dEt)),19).a)==(i=BB(ZAn(t,dEt),19).a)||e<i?-1:e>i?1:0}function dsn(n,t){return!!bNn(n,t)&&(JIn(n.b,BB(mMn(t,(hWn(),Xft)),21),t),DH(n.a,t),!0)}function gsn(n){var t,e;(t=BB(mMn(n,(hWn(),Elt)),10))&&(y7((e=t.c).a,t),0==e.a.c.length&&y7(vW(t).b,e))}function psn(n){return Qet?x8(Get,dYn,572,0,0,1):BB(Qgn(n.a,x8(Get,dYn,572,n.a.c.length,0,1)),842)}function vsn(n,t,e,i){return nV(),new hy(Pun(Gk(Hnt,1),kVn,42,0,[(zvn(n,t),new vT(n,t)),(zvn(e,i),new vT(e,i))]))}function msn(n,t,e){var i;return fin(i=new $m,t,e),f9((!n.q&&(n.q=new eU(QAt,n,11,10)),n.q),i),i}function ysn(n){var t,e,i,r;for(e=(r=fS(AOt,n)).length,i=x8(Qtt,sVn,2,e,6,1),t=0;t<e;++t)i[t]=r[t];return i}function ksn(n,t){var e,i,r,c,a;for(r=0,c=(i=t).length;r<c;++r)e=i[r],a=new UX(n),e.Qe(a),NBn(a);$U(n.f)}function jsn(n,t){var e;return t===n||!!cL(t,224)&&(e=BB(t,224),Nfn(n.Zb(),e.Zb()))}function Esn(n,t){var e;2*t+1>=n.b.c.length||(Esn(n,2*t+1),(e=2*t+2)<n.b.c.length&&Esn(n,e),KCn(n,t))}function Tsn(n,t,e){var i,r;this.g=n,this.c=t,this.a=this,this.d=this,r=Jin(e),i=x8(Qnt,CVn,330,r,0,1),this.b=i}function Msn(n,t,e){var i;for(i=e-1;i>=0&&n[i]===t[i];i--);return i<0?0:sS(e0(n[i],UQn),e0(t[i],UQn))?-1:1}function Ssn(n,t){var e,i;for(i=spn(n,0);i.b!=i.d.c;)(e=BB(b3(i),214)).e.length>0&&(t.td(e),e.i&&pln(e))}function Psn(n,t){var e,i;return i=BB(yan(n.a,4),126),e=x8(dAt,i9n,415,t,0,1),null!=i&&aHn(i,0,e,0,i.length),e}function Csn(n,t){var e;return e=new rRn(0!=(256&n.f),n.i,n.a,n.d,0!=(16&n.f),n.j,n.g,t),null!=n.e||(e.c=n),e}function Isn(n,t){var e;for(e=n.Zb().Cc().Kc();e.Ob();)if(BB(e.Pb(),14).Hc(t))return!0;return!1}function Osn(n,t,e,i,r){var c,a;for(a=e;a<=r;a++)for(c=t;c<=i;c++)if(vmn(n,c,a))return!0;return!1}function Asn(n,t,e){var i,r,c,a;for(kW(e),a=!1,c=n.Zc(t),r=e.Kc();r.Ob();)i=r.Pb(),c.Rb(i),a=!0;return a}function $sn(n,t){var e;return n===t||!!cL(t,83)&&(e=BB(t,83),zSn(lz(n),e.vc()))}function Lsn(n,t,e){var i,r;for(r=e.Kc();r.Ob();)if(i=BB(r.Pb(),42),n.re(t,i.dd()))return!0;return!1}function Nsn(n,t,e){return n.d[t.p][e.p]||(ivn(n,t,e),n.d[t.p][e.p]=!0,n.d[e.p][t.p]=!0),n.a[t.p][e.p]}function xsn(n,t){if(!n.ai()&&null==t)throw Hp(new _y("The 'no null' constraint is violated"));return t}function Dsn(n,t){null==n.D&&null!=n.B&&(n.D=n.B,n.B=null),Hin(n,null==t?null:(kW(t),t)),n.C&&n.yk(null)}function Rsn(n,t){return!(!n||n==t||!Lx(t,(hWn(),rlt)))&&BB(mMn(t,(hWn(),rlt)),10)!=n}function Ksn(n){switch(n.i){case 2:return!0;case 1:return!1;case-1:++n.c;default:return n.pl()}}function _sn(n){switch(n.i){case-2:return!0;case-1:return!1;case 1:--n.c;default:return n.ql()}}function Fsn(n){_J.call(this,"The given string does not match the expected format for individual spacings.",n)}function Bsn(){Bsn=O,uOt=new cI("ELK",0),oOt=new cI("JSON",1),aOt=new cI("DOT",2),sOt=new cI("SVG",3)}function Hsn(){Hsn=O,sjt=new vC(QZn,0),hjt=new vC("RADIAL_COMPACTION",1),fjt=new vC("WEDGE_COMPACTION",2)}function qsn(){qsn=O,zet=new pS("CONCURRENT",0),Uet=new pS("IDENTITY_FINISH",1),Xet=new pS("UNORDERED",2)}function Gsn(){Gsn=O,wM(),oct=new $O(BJn,sct=rct),uct=new up(HJn),hct=new up(qJn),fct=new up(GJn)}function zsn(){zsn=O,lst=new ji,bst=new Ei,fst=new Ti,hst=new Mi,kW(new Si),sst=new D}function Usn(){Usn=O,emt=new WP("CONSERVATIVE",0),imt=new WP("CONSERVATIVE_SOFT",1),rmt=new WP("SLOPPY",2)}function Xsn(){Xsn=O,dCt=new WA(15),wCt=new XA((sWn(),XSt),dCt),gCt=gPt,hCt=aSt,fCt=KSt,bCt=BSt,lCt=FSt}function Wsn(n,t,e){var i,r;for(i=new YT,r=spn(e,0);r.b!=r.d.c;)DH(i,new wA(BB(b3(r),8)));Asn(n,t,i)}function Vsn(n){var t,e,i;for(t=0,i=x8(PMt,sVn,8,n.b,0,1),e=spn(n,0);e.b!=e.d.c;)i[t++]=BB(b3(e),8);return i}function Qsn(n){var t;return!n.a&&(n.a=new eU(WAt,n,9,5)),0!=(t=n.a).i?HM(BB(Wtn(t,0),678)):null}function Ysn(n,t){var e;return e=rbn(n,t),sS(r0(n,t),0)|YI(r0(n,e),0)?e:rbn(bVn,r0(jz(e,63),1))}function Jsn(n,t){var e;e=null!=mpn((Rwn(),Vpt))&&null!=t.wg()?Gy(MD(t.wg()))/Gy(MD(mpn(Vpt))):1,VW(n.b,t,e)}function Zsn(n,t){var e,i;return(e=BB(n.d.Bc(t),14))?((i=n.e.hc()).Gc(e),n.e.d-=e.gc(),e.$b(),i):null}function nhn(n,t){var e,i;if(0!=(i=n.c[t]))for(n.c[t]=0,n.d-=i,e=t+1;e<n.a.length;)n.a[e]-=i,e+=e&-e}function thn(n){var t;if((t=n.a.c.length)>0)return Kz(t-1,n.a.c.length),s6(n.a,t-1);throw Hp(new mv)}function ehn(n,t,e){if(t<0)throw Hp(new Ay(n5n+t));t<n.j.c.length?c5(n.j,t,e):(g3(n,t),WB(n.j,e))}function ihn(n,t,e){if(n>t)throw Hp(new _y(mYn+n+yYn+t));if(n<0||t>e)throw Hp(new Tk(mYn+n+kYn+t+hYn+e))}function rhn(n){if(!n.a||0==(8&n.a.i))throw Hp(new Fy("Enumeration class expected for layout option "+n.f))}function chn(n){var t;++n.j,0==n.i?n.g=null:n.i<n.g.length&&(t=n.g,n.g=n.ri(n.i),aHn(t,0,n.g,0,n.i))}function ahn(n,t){var e,i;for(e=n.a.length-1,n.c=n.c-1&e;t!=n.c;)i=t+1&e,$X(n.a,t,n.a[i]),t=i;$X(n.a,n.c,null)}function uhn(n,t){var e,i;for(e=n.a.length-1;t!=n.b;)i=t-1&e,$X(n.a,t,n.a[i]),t=i;$X(n.a,n.b,null),n.b=n.b+1&e}function ohn(n,t,e){var i;return LZ(t,n.c.length),0!=(i=e.Pc()).length&&(tH(n.c,t,i),!0)}function shn(n){var t,e;if(null==n)return null;for(t=0,e=n.length;t<e;t++)if(!PH(n[t]))return n[t];return null}function hhn(n,t,e){var i,r,c,a;for(c=0,a=(r=e).length;c<a;++c)if(i=r[c],n.b.re(t,i.cd()))return i;return null}function fhn(n){var t,e,i,r,c;for(c=1,i=0,r=(e=n).length;i<r;++i)c=31*c+(null!=(t=e[i])?nsn(t):0),c|=0;return c}function lhn(n){var t,e,i,r,c;for(t={},r=0,c=(i=n).length;r<c;++r)t[":"+(null!=(e=i[r]).f?e.f:""+e.g)]=e;return t}function bhn(n){var t;for(yX(n),C_(!0,"numberToAdvance must be nonnegative"),t=0;t<0&&dAn(n);t++)U5(n);return t}function whn(n){var t,e,i;for(i=0,e=new oz(ZL(n.a.Kc(),new h));dAn(e);)(t=BB(U5(e),17)).c.i==t.d.i||++i;return i}function dhn(n,t){var e,i,r;for(e=n,r=0;;){if(e==t)return r;if(!(i=e.e))throw Hp(new wv);e=vW(i),++r}}function ghn(n,t){var e,i,r;for(r=t-n.f,i=new Wb(n.d);i.a<i.c.c.length;)kdn(e=BB(n0(i),443),e.e,e.f+r);n.f=t}function phn(n,t,i){return e.Math.abs(t-n)<_3n||e.Math.abs(i-n)<_3n||(t-n>_3n?n-i>_3n:i-n>_3n)}function vhn(n,t){return n?t&&!n.j||cL(n,124)&&0==BB(n,124).a.b?0:n.Re():0}function mhn(n,t){return n?t&&!n.k||cL(n,124)&&0==BB(n,124).a.a?0:n.Se():0}function yhn(n){return ODn(),n<0?-1!=n?new Rpn(-1,-n):Ytt:n<=10?Ztt[CJ(n)]:new Rpn(1,n)}function khn(n){throw Zun(),Hp(new gy("Unexpected typeof result '"+n+"'; please report this bug to the GWT team"))}function jhn(n){hk(),V$(this),jQ(this),this.e=n,Cxn(this,n),this.g=null==n?zWn:Bbn(n),this.a="",this.b=n,this.a=""}function Ehn(){this.a=new nu,this.f=new dg(this),this.b=new gg(this),this.i=new pg(this),this.e=new vg(this)}function Thn(){cy.call(this,new q8(etn(16))),lin(2,oVn),this.b=2,this.a=new HW(null,null,0,null),iv(this.a,this.a)}function Mhn(){Mhn=O,cvt=new KP("DUMMY_NODE_OVER",0),avt=new KP("DUMMY_NODE_UNDER",1),uvt=new KP("EQUAL",2)}function Shn(){Shn=O,Xat=HJ(Pun(Gk(WPt,1),$Vn,103,0,[(Ffn(),_Pt),FPt])),Wat=HJ(Pun(Gk(WPt,1),$Vn,103,0,[HPt,KPt]))}function Phn(n){return(kUn(),yIt).Hc(n.j)?Gy(MD(mMn(n,(hWn(),Llt)))):Aon(Pun(Gk(PMt,1),sVn,8,0,[n.i.n,n.n,n.a])).b}function Chn(n){var t,e;for(t=n.b.a.a.ec().Kc();t.Ob();)e=new Q$n(BB(t.Pb(),561),n.e,n.f),WB(n.g,e)}function Ihn(n,t){var e,i;e=n.nk(t,null),i=null,t&&(iE(),cen(i=new Kp,n.r)),(e=HTn(n,i,e))&&e.Fi()}function Ohn(n,t){var e,i;for(i=0!=H$n(n.d,1),e=!0;e;)e=!1,e=t.c.Tf(t.e,i),e|=DNn(n,t,i,!1),i=!i;$rn(n)}function Ahn(n,t){var e,i,r;return i=!1,e=t.q.d,t.d<n.b&&(r=dNn(t.q,n.b),t.q.d>r&&(aEn(t.q,r),i=e!=t.q.d)),i}function $hn(n,t){var i,r,c,a,u;return a=t.i,u=t.j,r=a-(i=n.f).i,c=u-i.j,e.Math.sqrt(r*r+c*c)}function Lhn(n,t){var e;return(e=Ydn(n))||(!$Ot&&($Ot=new Oo),RHn(),f9((e=new Cp(YPn(t))).Vk(),n)),e}function Nhn(n,t){var e,i;return(e=BB(n.c.Bc(t),14))?((i=n.hc()).Gc(e),n.d-=e.gc(),e.$b(),n.mc(i)):n.jc()}function xhn(n,t){var e;for(e=0;e<t.length;e++)if(n==(b1(e,t.length),t.charCodeAt(e)))return!0;return!1}function Dhn(n,t){var e;for(e=0;e<t.length;e++)if(n==(b1(e,t.length),t.charCodeAt(e)))return!0;return!1}function Rhn(n){var t,e;if(null==n)return!1;for(t=0,e=n.length;t<e;t++)if(!PH(n[t]))return!1;return!0}function Khn(n){var t;if(0!=n.c)return n.c;for(t=0;t<n.a.length;t++)n.c=33*n.c+(-1&n.a[t]);return n.c=n.c*n.e,n.c}function _hn(n){var t;return Px(n.a!=n.b),t=n.d.a[n.a],Ex(n.b==n.d.c&&null!=t),n.c=n.a,n.a=n.a+1&n.d.a.length-1,t}function Fhn(n){var t;if(!(n.c.c<0?n.a>=n.c.b:n.a<=n.c.b))throw Hp(new yv);return t=n.a,n.a+=n.c.c,++n.b,iln(t)}function Bhn(n){var t;return t=new ftn(n),i2(n.a,sut,new Jy(Pun(Gk(Jat,1),HWn,369,0,[t]))),t.d&&WB(t.f,t.d),t.f}function Hhn(n){var t;return qan(t=new O$(n.a),n),hon(t,(hWn(),dlt),n),t.o.a=n.g,t.o.b=n.f,t.n.a=n.i,t.n.b=n.j,t}function qhn(n,t,e,i){var r,c;for(c=n.Kc();c.Ob();)(r=BB(c.Pb(),70)).n.a=t.a+(i.a-r.o.a)/2,r.n.b=t.b,t.b+=r.o.b+e}function Ghn(n,t,e){var i;for(i=t.a.a.ec().Kc();i.Ob();)if(cY(n,BB(i.Pb(),57),e))return!0;return!1}function zhn(n){var t,e;for(e=new Wb(n.r);e.a<e.c.c.length;)if(t=BB(n0(e),10),n.n[t.p]<=0)return t;return null}function Uhn(n){var t,e;for(e=new Rv,t=new Wb(n);t.a<t.c.c.length;)Frn(e,dDn(BB(n0(t),33)));return e}function Xhn(n){var t;return t=kA(Cmt),BB(mMn(n,(hWn(),Zft)),21).Hc((bDn(),dft))&&dq(t,(yMn(),_at),(lWn(),Bot)),t}function Whn(n,t,e){var i;i=new MOn(n,t),JIn(n.r,t.Hf(),i),e&&!Hz(n.u)&&(i.c=new yJ(n.d),Otn(t.wf(),new Cw(i)))}function Vhn(n,t){var e;return JO(n)&&JO(t)&&(e=n-t,!isNaN(e))?e:Kkn(JO(n)?Pan(n):n,JO(t)?Pan(t):t)}function Qhn(n,t){return t<n.length&&(b1(t,n.length),63!=n.charCodeAt(t))&&(b1(t,n.length),35!=n.charCodeAt(t))}function Yhn(n,t,e,i){var r,c;n.a=t,c=i?0:1,n.f=(r=new ZSn(n.c,n.a,e,c),new uRn(e,n.a,r,n.e,n.b,n.c==(oin(),Amt)))}function Jhn(n,t,e){var i,r;return r=n.a,n.a=t,0!=(4&n.Db)&&0==(1&n.Db)&&(i=new nU(n,1,1,r,t),e?e.Ei(i):e=i),e}function Zhn(n,t,e){var i,r;return r=n.b,n.b=t,0!=(4&n.Db)&&0==(1&n.Db)&&(i=new nU(n,1,3,r,t),e?e.Ei(i):e=i),e}function nfn(n,t,e){var i,r;return r=n.f,n.f=t,0!=(4&n.Db)&&0==(1&n.Db)&&(i=new nU(n,1,0,r,t),e?e.Ei(i):e=i),e}function tfn(n,t){var e,i,r,c;return(c=kCn((i=t,(r=n?Ydn(n):null)&&r.Xk(),i)))==t&&(e=Ydn(n))&&e.Xk(),c}function efn(n,t){var e,i,r;for(r=1,e=n,i=t>=0?t:-t;i>0;)i%2==0?(e*=e,i=i/2|0):(r*=e,i-=1);return t<0?1/r:r}function ifn(n,t){var e,i,r;for(r=1,e=n,i=t>=0?t:-t;i>0;)i%2==0?(e*=e,i=i/2|0):(r*=e,i-=1);return t<0?1/r:r}function rfn(n){var t,e,i,r;if(null!=n)for(e=0;e<n.length;++e)if(t=n[e])for(BB(t.g,367),r=t.i,i=0;i<r;++i);}function cfn(n){var t,i,r;for(r=0,i=new Wb(n.a);i.a<i.c.c.length;)t=BB(n0(i),187),r=e.Math.max(r,t.g);return r}function afn(n){var t,e,i;for(i=new Wb(n.b);i.a<i.c.c.length;)(t=(e=BB(n0(i),214)).c.Rf()?e.f:e.a)&&wqn(t,e.j)}function ufn(){ufn=O,vCt=new HC("INHERIT",0),pCt=new HC("INCLUDE_CHILDREN",1),mCt=new HC("SEPARATE_CHILDREN",2)}function ofn(n,t){switch(t){case 1:return!n.n&&(n.n=new eU(zOt,n,1,7)),void sqn(n.n);case 2:return void $in(n,null)}zun(n,t)}function sfn(n){switch(n.gc()){case 0:return Fnt;case 1:return new Pq(yX(n.Xb(0)));default:return new SY(n)}}function hfn(n){switch(s_(),n.gc()){case 0:return VX(),Vnt;case 1:return new yk(n.Kc().Pb());default:return new vS(n)}}function ffn(n){switch(s_(),n.c){case 0:return VX(),Vnt;case 1:return new yk(JCn(new QT(n)));default:return new sy(n)}}function lfn(n,t){yX(n);try{return n.xc(t)}catch(e){if(cL(e=lun(e),205)||cL(e,173))return null;throw Hp(e)}}function bfn(n,t){yX(n);try{return n.Bc(t)}catch(e){if(cL(e=lun(e),205)||cL(e,173))return null;throw Hp(e)}}function wfn(n,t){yX(n);try{return n.Hc(t)}catch(e){if(cL(e=lun(e),205)||cL(e,173))return!1;throw Hp(e)}}function dfn(n,t){yX(n);try{return n.Mc(t)}catch(e){if(cL(e=lun(e),205)||cL(e,173))return!1;throw Hp(e)}}function gfn(n,t){yX(n);try{return n._b(t)}catch(e){if(cL(e=lun(e),205)||cL(e,173))return!1;throw Hp(e)}}function pfn(n,t){n.a.c.length>0&&dsn(BB(xq(n.a,n.a.c.length-1),570),t)||WB(n.a,new p5(t))}function vfn(n){var t,e;G_(),t=n.d.c-n.e.c,Otn((e=BB(n.g,145)).b,new jd(t)),Otn(e.c,new Ed(t)),e5(e.i,new Td(t))}function mfn(n){var t;return(t=new Ck).a+="VerticalSegment ",uO(t,n.e),t.a+=" ",oO(t,JL(new mk,new Wb(n.k))),t.a}function yfn(n){var t;return(t=BB(lnn(n.c.c,""),229))||(t=new UZ(jj(kj(new pu,""),"Other")),Jgn(n.c.c,"",t)),t}function kfn(n){var t;return 0!=(64&n.Db)?P$n(n):((t=new fN(P$n(n))).a+=" (name: ",cO(t,n.zb),t.a+=")",t.a)}function jfn(n,t,e){var i,r;return r=n.sb,n.sb=t,0!=(4&n.Db)&&0==(1&n.Db)&&(i=new nU(n,1,4,r,t),e?e.Ei(i):e=i),e}function Efn(n,t){var e,i;for(e=0,i=abn(n,t).Kc();i.Ob();)e+=null!=mMn(BB(i.Pb(),11),(hWn(),Elt))?1:0;return e}function Tfn(n,t,e){var i,r,c;for(i=0,c=spn(n,0);c.b!=c.d.c&&!((r=Gy(MD(b3(c))))>e);)r>=t&&++i;return i}function Mfn(n,t,e){var i;return i=new N7(n.e,3,13,null,t.c||(gWn(),l$t),uvn(n,t),!1),e?e.Ei(i):e=i,e}function Sfn(n,t,e){var i;return i=new N7(n.e,4,13,t.c||(gWn(),l$t),null,uvn(n,t),!1),e?e.Ei(i):e=i,e}function Pfn(n,t,e){var i,r;return r=n.r,n.r=t,0!=(4&n.Db)&&0==(1&n.Db)&&(i=new nU(n,1,8,r,n.r),e?e.Ei(i):e=i),e}function Cfn(n,t){var e,i;return!(i=(e=BB(t,676)).vk())&&e.wk(i=cL(t,88)?new $I(n,BB(t,26)):new _0(n,BB(t,148))),i}function Ifn(n,t,e){var i;n.qi(n.i+1),i=n.oi(t,e),t!=n.i&&aHn(n.g,t,n.g,t+1,n.i-t),$X(n.g,t,i),++n.i,n.bi(t,e),n.ci()}function Ofn(n,t){var e;return t.a&&(e=t.a.a.length,n.a?oO(n.a,n.b):n.a=new lN(n.d),G0(n.a,t.a,t.d.length,e)),n}function Afn(n,t){var e,i,r;if(t.vi(n.a),null!=(r=BB(yan(n.a,8),1936)))for(e=0,i=r.length;e<i;++e)null.jm()}function $fn(n,t){var e;return e=new sn,n.a.sd(e)?(CL(),new vy(kW(T7(n,e.a,t)))):(EW(n),CL(),CL(),Set)}function Lfn(n,t){switch(t.g){case 2:case 1:return abn(n,t);case 3:case 4:return ean(abn(n,t))}return SQ(),SQ(),set}function Nfn(n,t){return XI(n)?mK(n,t):UI(n)?vK(n,t):zI(n)?(kW(n),GI(n)===GI(t)):iz(n)?n.Fb(t):AG(n)?FO(n,t):v0(n,t)}function xfn(n){return n?0!=(1&n.i)?n==$Nt?ktt:n==ANt?Att:n==DNt?Ctt:n==xNt?Ptt:n==LNt?Rtt:n==RNt?_tt:n==NNt?Ttt:Stt:n:null}function Dfn(n,t,e,i,r){0!=t&&0!=i&&(1==t?r[i]=dvn(r,e,i,n[0]):1==i?r[t]=dvn(r,n,t,e[0]):YOn(n,e,r,t,i))}function Rfn(n,t){var e;0!=n.c.length&&(hA(e=BB(Qgn(n,x8(Out,a1n,10,n.c.length,0,1)),193),new Oe),eOn(e,t))}function Kfn(n,t){var e;0!=n.c.length&&(hA(e=BB(Qgn(n,x8(Out,a1n,10,n.c.length,0,1)),193),new Ae),eOn(e,t))}function _fn(n,t,e,i){switch(t){case 1:return!n.n&&(n.n=new eU(zOt,n,1,7)),n.n;case 2:return n.k}return Eyn(n,t,e,i)}function Ffn(){Ffn=O,BPt=new KC(hJn,0),FPt=new KC(aJn,1),_Pt=new KC(cJn,2),KPt=new KC(pJn,3),HPt=new KC("UP",4)}function Bfn(){Bfn=O,wut=new YS(QZn,0),but=new YS("INSIDE_PORT_SIDE_GROUPS",1),lut=new YS("FORCE_MODEL_ORDER",2)}function Hfn(n,t,e){if(n<0||t>e)throw Hp(new Ay(mYn+n+kYn+t+", size: "+e));if(n>t)throw Hp(new _y(mYn+n+yYn+t))}function qfn(n,t,e){if(t<0)cIn(n,e);else{if(!e.Ij())throw Hp(new _y(r6n+e.ne()+c6n));BB(e,66).Nj().Vj(n,n.yh(),t)}}function Gfn(n,t,e,i,r,c,a,u){var o;for(o=e;c<a;)o>=i||t<e&&u.ue(n[t],n[o])<=0?$X(r,c++,n[t++]):$X(r,c++,n[o++])}function zfn(n,t,e,i,r,c){this.e=new Np,this.f=(ain(),Gvt),WB(this.e,n),this.d=t,this.a=e,this.b=i,this.f=r,this.c=c}function Ufn(n,t){var e,i;for(i=new AL(n);i.e!=i.i.gc();)if(e=BB(kpn(i),26),GI(t)===GI(e))return!0;return!1}function Xfn(n){var t,e,i,r;for(dWn(),i=0,r=(e=tpn()).length;i<r;++i)if(-1!=E7((t=e[i]).a,n,0))return t;return Irt}function Wfn(n){return n>=65&&n<=70?n-65+10:n>=97&&n<=102?n-97+10:n>=48&&n<=57?n-48:0}function Vfn(n){var t;return 0!=(64&n.Db)?P$n(n):((t=new fN(P$n(n))).a+=" (source: ",cO(t,n.d),t.a+=")",t.a)}function Qfn(n,t,e){var i,r;return r=n.a,n.a=t,0!=(4&n.Db)&&0==(1&n.Db)&&(i=new nU(n,1,5,r,n.a),e?KEn(e,i):e=i),e}function Yfn(n,t){var e;e=0!=(256&n.Bb),t?n.Bb|=256:n.Bb&=-257,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,2,e,t))}function Jfn(n,t){var e;e=0!=(256&n.Bb),t?n.Bb|=256:n.Bb&=-257,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,8,e,t))}function Zfn(n,t){var e;e=0!=(256&n.Bb),t?n.Bb|=256:n.Bb&=-257,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,8,e,t))}function nln(n,t){var e;e=0!=(512&n.Bb),t?n.Bb|=512:n.Bb&=-513,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,3,e,t))}function tln(n,t){var e;e=0!=(512&n.Bb),t?n.Bb|=512:n.Bb&=-513,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,9,e,t))}function eln(n,t){var e;return-1==n.b&&n.a&&(e=n.a.Gj(),n.b=e?n.c.Xg(n.a.aj(),e):Awn(n.c.Tg(),n.a)),n.c.Og(n.b,t)}function iln(n){var t,e;return n>-129&&n<128?(t=n+128,!(e=(tq(),Itt)[t])&&(e=Itt[t]=new xb(n)),e):new xb(n)}function rln(n){var t,e;return n>-129&&n<128?(t=n+128,!(e=(Tq(),Ktt)[t])&&(e=Ktt[t]=new Rb(n)),e):new Rb(n)}function cln(n){var t;return n.k==(uSn(),Mut)&&((t=BB(mMn(n,(hWn(),Qft)),61))==(kUn(),sIt)||t==SIt)}function aln(n,t,e){var i,r;return(r=$$n(n.b,t))&&(i=BB(NHn(F7(n,r),""),26))?m$n(n,i,t,e):null}function uln(n,t,e){var i,r;return(r=$$n(n.b,t))&&(i=BB(NHn(F7(n,r),""),26))?y$n(n,i,t,e):null}function oln(n,t){var e,i;for(i=new AL(n);i.e!=i.i.gc();)if(e=BB(kpn(i),138),GI(t)===GI(e))return!0;return!1}function sln(n,t,e){var i;if(t>(i=n.gc()))throw Hp(new tK(t,i));if(n.hi()&&n.Hc(e))throw Hp(new _y(a8n));n.Xh(t,e)}function hln(n,t){var e;if(null==(e=sen(n.i,t)))throw Hp(new ek("Node did not exist in input."));return Kcn(t,e),null}function fln(n,t){var e;if(cL(e=NNn(n,t),322))return BB(e,34);throw Hp(new _y(r6n+t+"' is not a valid attribute"))}function lln(n,t,e){var i,r;for(r=cL(t,99)&&0!=(BB(t,18).Bb&BQn)?new xO(t,n):new Aan(t,n),i=0;i<e;++i)cvn(r);return r}function bln(n){var t,e,i;for(i=0,e=n.length,t=0;t<e;t++)32==n[t]||13==n[t]||10==n[t]||9==n[t]||(n[i++]=n[t]);return i}function wln(n){var t,e,i;for(t=new Np,i=new Wb(n.b);i.a<i.c.c.length;)e=BB(n0(i),594),gun(t,BB(e.jf(),14));return t}function dln(n){var t,e;for(e=BB(mMn(n,(qqn(),lkt)),15).Kc();e.Ob();)DH((t=BB(e.Pb(),188)).b.d,t),DH(t.c.b,t)}function gln(n){switch(BB(mMn(n,(hWn(),ilt)),303).g){case 1:hon(n,ilt,(z7(),Sft));break;case 2:hon(n,ilt,(z7(),Cft))}}function pln(n){var t;n.g&&(xxn((t=n.c.Rf()?n.f:n.a).a,n.o,!0),xxn(t.a,n.o,!1),hon(n.o,(HXn(),ept),(QEn(),UCt)))}function vln(n){var t;if(!n.a)throw Hp(new Fy("Cannot offset an unassigned cut."));t=n.c-n.b,n.b+=t,xQ(n,t),NQ(n,t)}function mln(n){var t;return null==(t=n.a[n.c-1&n.a.length-1])?null:(n.c=n.c-1&n.a.length-1,$X(n.a,n.c,null),t)}function yln(n){var t,e;for(e=n.p.a.ec().Kc();e.Ob();)if((t=BB(e.Pb(),213)).f&&n.b[t.c]<-1e-10)return t;return null}function kln(n,t){switch(n.b.g){case 0:case 1:return t;case 2:case 3:return new UV(t.d,0,t.a,t.b);default:return null}}function jln(n){switch(n.g){case 2:return FPt;case 1:return _Pt;case 4:return KPt;case 3:return HPt;default:return BPt}}function Eln(n){switch(n.g){case 1:return CIt;case 2:return sIt;case 3:return oIt;case 4:return SIt;default:return PIt}}function Tln(n){switch(n.g){case 1:return SIt;case 2:return CIt;case 3:return sIt;case 4:return oIt;default:return PIt}}function Mln(n){switch(n.g){case 1:return oIt;case 2:return SIt;case 3:return CIt;case 4:return sIt;default:return PIt}}function Sln(n){switch(n){case 0:return new mm;case 1:return new pm;case 2:return new vm;default:throw Hp(new wv)}}function Pln(n,t){return n<t?-1:n>t?1:n==t?0==n?Pln(1/n,1/t):0:isNaN(n)?isNaN(t)?0:1:-1}function Cln(n,t){OTn(t,"Sort end labels",1),JT(AV(wnn(new Rq(null,new w1(n.b,16)),new we),new de),new ge),HSn(t)}function Iln(n,t,e){var i,r;return n.ej()?(r=n.fj(),i=YIn(n,t,e),n.$i(n.Zi(7,iln(e),i,t,r)),i):YIn(n,t,e)}function Oln(n,t){var e,i,r;null==n.d?(++n.e,--n.f):(r=t.cd(),N6(n,i=((e=t.Sh())&DWn)%n.d.length,A$n(n,i,e,r)))}function Aln(n,t){var e;e=0!=(n.Bb&k6n),t?n.Bb|=k6n:n.Bb&=-1025,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,10,e,t))}function $ln(n,t){var e;e=0!=(n.Bb&_Qn),t?n.Bb|=_Qn:n.Bb&=-4097,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,12,e,t))}function Lln(n,t){var e;e=0!=(n.Bb&T9n),t?n.Bb|=T9n:n.Bb&=-8193,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,15,e,t))}function Nln(n,t){var e;e=0!=(n.Bb&M9n),t?n.Bb|=M9n:n.Bb&=-2049,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,11,e,t))}function xln(n,t){var e;return 0!=(e=Pln(n.b.c,t.b.c))||0!=(e=Pln(n.a.a,t.a.a))?e:Pln(n.a.b,t.a.b)}function Dln(n,t){var e;if(null==(e=RX(n.k,t)))throw Hp(new ek("Port did not exist in input."));return Kcn(t,e),null}function Rln(n){var t,e;for(e=G$n(Utn(n)).Kc();e.Ob();)if(N_n(n,t=SD(e.Pb())))return y4((UM(),RAt),t);return null}function Kln(n,t){var e,i,r,c,a;for(a=axn(n.e.Tg(),t),c=0,e=BB(n.g,119),r=0;r<n.i;++r)i=e[r],a.rl(i.ak())&&++c;return c}function _ln(n,t,e){var i,r;return i=BB(t.We(n.a),35),r=BB(e.We(n.a),35),null!=i&&null!=r?Ncn(i,r):null!=i?-1:null!=r?1:0}function Fln(n,t,e){var i;if(n.c)lMn(n.c,t,e);else for(i=new Wb(n.b);i.a<i.c.c.length;)Fln(BB(n0(i),157),t,e)}function Bln(n,t){var e,i;for(i=new Wb(t);i.a<i.c.c.length;)e=BB(n0(i),46),y7(n.b.b,e.b),uY(BB(e.a,189),BB(e.b,81))}function Hln(n){var t,e;for(e=xX(new Ck,91),t=!0;n.Ob();)t||(e.a+=FWn),t=!1,uO(e,n.Pb());return(e.a+="]",e).a}function qln(n,t){var e;e=0!=(n.Bb&hVn),t?n.Bb|=hVn:n.Bb&=-16385,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,16,e,t))}function Gln(n,t){var e;e=0!=(n.Bb&h6n),t?n.Bb|=h6n:n.Bb&=-32769,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,18,e,t))}function zln(n,t){var e;e=0!=(n.Bb&h6n),t?n.Bb|=h6n:n.Bb&=-32769,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,18,e,t))}function Uln(n,t){var e;e=0!=(n.Bb&BQn),t?n.Bb|=BQn:n.Bb&=-65537,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,20,e,t))}function Xln(n){var t;return t=x8(ONt,WVn,25,2,15,1),n-=BQn,t[0]=(n>>10)+HQn&QVn,t[1]=56320+(1023&n)&QVn,Bdn(t,0,t.length)}function Wln(n){var t;return(t=BB(mMn(n,(HXn(),Udt)),103))==(Ffn(),BPt)?Gy(MD(mMn(n,Edt)))>=1?FPt:KPt:t}function Vln(n){switch(BB(mMn(n,(HXn(),Zdt)),218).g){case 1:return new ic;case 3:return new oc;default:return new ec}}function Qln(n){if(n.c)Qln(n.c);else if(n.d)throw Hp(new Fy("Stream already terminated, can't be modified or used"))}function Yln(n){var t;return 0!=(64&n.Db)?P$n(n):((t=new fN(P$n(n))).a+=" (identifier: ",cO(t,n.k),t.a+=")",t.a)}function Jln(n,t,e){var i;return tE(),jen(i=new ro,t),Een(i,e),n&&f9((!n.a&&(n.a=new $L(xOt,n,5)),n.a),i),i}function Zln(n,t,e,i){var r,c;return kW(i),kW(e),null==(c=null==(r=n.xc(t))?e:ZT(BB(r,15),BB(e,14)))?n.Bc(t):n.zc(t,c),c}function nbn(n){var t,e,i,r;return orn(e=new YK(t=BB(Vj((r=(i=n.gm).f)==Unt?i:r),9),BB(SR(t,t.length),9),0),n),e}function tbn(n,t,e){var i,r;for(r=n.a.ec().Kc();r.Ob();)if(i=BB(r.Pb(),10),oun(e,BB(xq(t,i.p),14)))return i;return null}function ebn(n,t,e){try{_on(n,t,e)}catch(i){throw cL(i=lun(i),597)?Hp(new g5(i)):Hp(i)}return t}function ibn(n,t){var e;return JO(n)&&JO(t)&&$Qn<(e=n-t)&&e<OQn?e:uan(hun(JO(n)?Pan(n):n,JO(t)?Pan(t):t))}function rbn(n,t){var e;return JO(n)&&JO(t)&&$Qn<(e=n+t)&&e<OQn?e:uan(sun(JO(n)?Pan(n):n,JO(t)?Pan(t):t))}function cbn(n,t){var e;return JO(n)&&JO(t)&&$Qn<(e=n*t)&&e<OQn?e:uan(fqn(JO(n)?Pan(n):n,JO(t)?Pan(t):t))}function abn(n,t){var e;return n.i||eIn(n),(e=BB(oV(n.g,t),46))?new s1(n.j,BB(e.a,19).a,BB(e.b,19).a):(SQ(),SQ(),set)}function ubn(n,t,e){var i;return i=n.a.get(t),n.a.set(t,void 0===e?null:e),void 0===i?(++n.c,oY(n.b)):++n.d,i}function obn(n,t,i){n.n=kq(LNt,[sVn,FQn],[364,25],14,[i,CJ(e.Math.ceil(t/32))],2),n.o=t,n.p=i,n.j=t-1>>1,n.k=i-1>>1}function sbn(){var n,t,i;yTn(),i=Let+++Date.now(),n=CJ(e.Math.floor(i*uYn))&sYn,t=CJ(i-n*oYn),this.a=1502^n,this.b=t^aYn}function hbn(n){var t,e;for(t=new Np,e=new Wb(n.j);e.a<e.c.c.length;)WB(t,BB(n0(e),11).b);return yX(t),new OO(t)}function fbn(n){var t,e;for(t=new Np,e=new Wb(n.j);e.a<e.c.c.length;)WB(t,BB(n0(e),11).e);return yX(t),new OO(t)}function lbn(n){var t,e;for(t=new Np,e=new Wb(n.j);e.a<e.c.c.length;)WB(t,BB(n0(e),11).g);return yX(t),new OO(t)}function bbn(n){var t,e;for(e=t$n(Utn(dZ(n))).Kc();e.Ob();)if(N_n(n,t=SD(e.Pb())))return k4((XM(),UAt),t);return null}function wbn(n){var t,e;for(t=0,e=n.length;t<e;t++)if(null==n[t])throw Hp(new Hy("at index "+t));return new Jy(n)}function dbn(n,t){var e;if(cL(e=NNn(n.Tg(),t),99))return BB(e,18);throw Hp(new _y(r6n+t+"' is not a valid reference"))}function gbn(n){var t;return(t=bSn(n))>34028234663852886e22?RQn:t<-34028234663852886e22?KQn:t}function pbn(n){return n=((n=((n-=n>>1&1431655765)>>2&858993459)+(858993459&n))>>4)+n&252645135,n+=n>>8,63&(n+=n>>16)}function vbn(n){var t,e,i;for(t=new hR(n.Hd().gc()),i=0,e=L9(n.Hd().Kc());e.Ob();)jZ(t,e.Pb(),iln(i++));return NSn(t.a)}function mbn(n,t){var e,i,r;for(r=new xp,i=t.vc().Kc();i.Ob();)VW(r,(e=BB(i.Pb(),42)).cd(),lan(n,BB(e.dd(),15)));return r}function ybn(n,t){0==n.n.c.length&&WB(n.n,new RJ(n.s,n.t,n.i)),WB(n.b,t),smn(BB(xq(n.n,n.n.c.length-1),211),t),BFn(n,t)}function kbn(n){return n.c==n.b.b&&n.i==n.g.b||(n.a.c=x8(Ant,HWn,1,0,5,1),gun(n.a,n.b),gun(n.a,n.g),n.c=n.b.b,n.i=n.g.b),n.a}function jbn(n,t){var e,i;for(i=0,e=BB(t.Kb(n),20).Kc();e.Ob();)qy(TD(mMn(BB(e.Pb(),17),(hWn(),Clt))))||++i;return i}function Ebn(n,t){var i,r;r=Gy(MD(edn(f2(t),(HXn(),ypt)))),Fkn(t,i=e.Math.max(0,r/2-.5),1),WB(n,new lP(t,i))}function Tbn(){Tbn=O,qlt=new BP(QZn,0),_lt=new BP("FIRST",1),Flt=new BP(C1n,2),Blt=new BP("LAST",3),Hlt=new BP(I1n,4)}function Mbn(){Mbn=O,ZPt=new FC(hJn,0),YPt=new FC("POLYLINE",1),QPt=new FC("ORTHOGONAL",2),JPt=new FC("SPLINES",3)}function Sbn(){Sbn=O,Zjt=new kC("ASPECT_RATIO_DRIVEN",0),nEt=new kC("MAX_SCALE_DRIVEN",1),Jjt=new kC("AREA_DRIVEN",2)}function Pbn(){Pbn=O,HEt=new EC("P1_STRUCTURE",0),qEt=new EC("P2_PROCESSING_ORDER",1),GEt=new EC("P3_EXECUTION",2)}function Cbn(){Cbn=O,ejt=new gC("OVERLAP_REMOVAL",0),njt=new gC("COMPACTION",1),tjt=new gC("GRAPH_SIZE_CALCULATION",2)}function Ibn(n,t){return h$(),rin(KVn),e.Math.abs(n-t)<=KVn||n==t||isNaN(n)&&isNaN(t)?0:n<t?-1:n>t?1:zO(isNaN(n),isNaN(t))}function Obn(n,t){var e,i;for(e=spn(n,0);e.b!=e.d.c;){if((i=zy(MD(b3(e))))==t)return;if(i>t){U0(e);break}}nX(e,t)}function Abn(n,t){var e,i,r,c,a;if(e=t.f,Jgn(n.c.d,e,t),null!=t.g)for(c=0,a=(r=t.g).length;c<a;++c)i=r[c],Jgn(n.c.e,i,t)}function $bn(n,t,e,i){var r,c,a;for(r=t+1;r<e;++r)for(c=r;c>t&&i.ue(n[c-1],n[c])>0;--c)a=n[c],$X(n,c,n[c-1]),$X(n,c-1,a)}function Lbn(n,t,e,i){if(t<0)TLn(n,e,i);else{if(!e.Ij())throw Hp(new _y(r6n+e.ne()+c6n));BB(e,66).Nj().Tj(n,n.yh(),t,i)}}function Nbn(n,t){if(t==n.d)return n.e;if(t==n.e)return n.d;throw Hp(new _y("Node "+t+" not part of edge "+n))}function xbn(n,t){switch(t.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 Dbn(n,t){switch(t.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 Rbn(n,t,e,i){switch(t){case 3:return n.f;case 4:return n.g;case 5:return n.i;case 6:return n.j}return _fn(n,t,e,i)}function Kbn(n){return n.k==(uSn(),Cut)&&o5(new Rq(null,new zU(new oz(ZL(lbn(n).a.Kc(),new h)))),new qr)}function _bn(n){return null==n.e?n:(!n.c&&(n.c=new rRn(0!=(256&n.f),n.i,n.a,n.d,0!=(16&n.f),n.j,n.g,null)),n.c)}function Fbn(n,t){return n.h==CQn&&0==n.m&&0==n.l?(t&&(ltt=M$(0,0,0)),WO((X7(),dtt))):(t&&(ltt=M$(n.l,n.m,n.h)),M$(0,0,0))}function Bbn(n){return Array.isArray(n)&&n.im===I?nE(tsn(n))+"@"+(nsn(n)>>>0).toString(16):n.toString()}function Hbn(n){var t;this.a=new YK(t=BB(n.e&&n.e(),9),BB(SR(t,t.length),9),0),this.b=x8(Ant,HWn,1,this.a.a.length,5,1)}function qbn(n){var t,e,i;for(this.a=new fA,i=new Wb(n);i.a<i.c.c.length;)e=BB(n0(i),14),brn(t=new hG,e),TU(this.a,t)}function Gbn(n){var t,e;for(qD(),t=n.o.b,e=BB(BB(h6(n.r,(kUn(),SIt)),21),84).Kc();e.Ob();)BB(e.Pb(),111).e.b+=t}function zbn(n){var t;if(n.b){if(zbn(n.b),n.b.d!=n.c)throw Hp(new vv)}else n.d.dc()&&(t=BB(n.f.c.xc(n.e),14))&&(n.d=t)}function Ubn(n){var t;return null==n||(t=n.length)>0&&(b1(t-1,n.length),58==n.charCodeAt(t-1))&&!Xbn(n,LAt,NAt)}function Xbn(n,t,e){var i,r;for(i=0,r=n.length;i<r;i++)if(ton((b1(i,n.length),n.charCodeAt(i)),t,e))return!0;return!1}function Wbn(n,t){var e,i;for(i=n.e.a.ec().Kc();i.Ob();)if(tSn(t,(e=BB(i.Pb(),266)).d)||ICn(t,e.d))return!0;return!1}function Vbn(n,t){var e,i,r;for(r=(i=HRn(n,t))[i.length-1]/2,e=0;e<i.length;e++)if(i[e]>=r)return t.c+e;return t.c+t.b.gc()}function Qbn(n,t){var e,i,r,c;for(dD(),r=t,z9(i=H9(n),0,i.length,r),e=0;e<i.length;e++)e!=(c=gkn(n,i[e],e))&&Iln(n,e,c)}function Ybn(n,t){var e,i,r,c,a,u;for(i=0,e=0,a=0,u=(c=t).length;a<u;++a)(r=c[a])>0&&(i+=r,++e);return e>1&&(i+=n.d*(e-1)),i}function Jbn(n){var t,e,i;for((i=new Sk).a+="[",t=0,e=n.gc();t<e;)cO(i,kN(n.ki(t))),++t<e&&(i.a+=FWn);return i.a+="]",i.a}function Zbn(n){var t,e,i;return i=ATn(n),!WE(n.c)&&(rtn(i,"knownLayouters",e=new Cl),t=new rp(e),e5(n.c,t)),i}function nwn(n,t){var e,i;for(kW(t),e=!1,i=new Wb(n);i.a<i.c.c.length;)ywn(t,n0(i),!1)&&(AU(i),e=!0);return e}function twn(n){var t,e;for(e=Gy(MD(n.a.We((sWn(),OPt)))),t=new Wb(n.a.xf());t.a<t.c.c.length;)VUn(n,BB(n0(t),680),e)}function ewn(n,t){var e,i;for(i=new Wb(t);i.a<i.c.c.length;)e=BB(n0(i),46),WB(n.b.b,BB(e.b,81)),g2(BB(e.a,189),BB(e.b,81))}function iwn(n,t,e){var i,r;for(i=(r=n.a.b).c.length;i<e;i++)kG(r,0,new HX(n.a));PZ(t,BB(xq(r,r.c.length-e),29)),n.b[t.p]=e}function rwn(n,t,e){var i;!(i=e)&&(i=LH(new Xm,0)),OTn(i,qZn,2),mvn(n.b,t,mcn(i,1)),Kqn(n,t,mcn(i,1)),qUn(t,mcn(i,1)),HSn(i)}function cwn(n,t,e,i,r){BZ(),UNn(aM(cM(rM(uM(new Hv,0),r.d.e-n),t),r.d)),UNn(aM(cM(rM(uM(new Hv,0),e-r.a.e),r.a),i))}function awn(n,t,e,i,r,c){this.a=n,this.c=t,this.b=e,this.f=i,this.d=r,this.e=c,this.c>0&&this.b>0&&Yq(this.c,this.b,this.a)}function uwn(n){Rwn(),this.c=u6(Pun(Gk(rMt,1),HWn,831,0,[Wpt])),this.b=new xp,this.a=n,VW(this.b,Vpt,1),Otn(Qpt,new Pg(this))}function own(n,t){var e;return n.d?hU(n.b,t)?BB(RX(n.b,t),51):(e=t.Kf(),VW(n.b,t,e),e):t.Kf()}function swn(n,t){var e;return GI(n)===GI(t)||!!cL(t,91)&&(e=BB(t,91),n.e==e.e&&n.d==e.d&&E4(n,e.a))}function hwn(n){switch(kUn(),n.g){case 4:return sIt;case 1:return oIt;case 3:return SIt;case 2:return CIt;default:return PIt}}function fwn(n,t){switch(t){case 3:return 0!=n.f;case 4:return 0!=n.g;case 5:return 0!=n.i;case 6:return 0!=n.j}return Ean(n,t)}function lwn(n){switch(n.g){case 0:return new Ga;case 1:return new za;default:throw Hp(new _y(c4n+(null!=n.f?n.f:""+n.g)))}}function bwn(n){switch(n.g){case 0:return new qa;case 1:return new Ua;default:throw Hp(new _y(M1n+(null!=n.f?n.f:""+n.g)))}}function wwn(n){switch(n.g){case 0:return new Vm;case 1:return new ym;default:throw Hp(new _y(N4n+(null!=n.f?n.f:""+n.g)))}}function dwn(n){switch(n.g){case 1:return new Ra;case 2:return new gD;default:throw Hp(new _y(c4n+(null!=n.f?n.f:""+n.g)))}}function gwn(n){var t,e;if(n.b)return n.b;for(e=Qet?null:n.d;e;){if(t=Qet?null:e.b)return t;e=Qet?null:e.d}return lM(),Het}function pwn(n){var t,e;return 0==n.e?0:(t=n.d<<5,e=n.a[n.d-1],n.e<0&&Ccn(n)==n.d-1&&(--e,e|=0),t-=ZIn(e))}function vwn(n){var t,e,i;return n<tet.length?tet[n]:(t=31&n,(i=x8(ANt,hQn,25,1+(e=n>>5),15,1))[e]=1<<t,new lU(1,e+1,i))}function mwn(n){var t,e,i;return(e=n.zg())?cL(t=n.Ug(),160)&&null!=(i=mwn(BB(t,160)))?i+"."+e:e:null}function ywn(n,t,e){var i,r;for(r=n.Kc();r.Ob();)if(i=r.Pb(),GI(t)===GI(i)||null!=t&&Nfn(t,i))return e&&r.Qb(),!0;return!1}function kwn(n,t,e){var i,r;if(++n.j,e.dc())return!1;for(r=e.Kc();r.Ob();)i=r.Pb(),n.Hi(t,n.oi(t,i)),++t;return!0}function jwn(n,t,e,i){var r,c;if((c=e-t)<3)for(;c<3;)n*=10,++c;else{for(r=1;c>3;)r*=10,--c;n=(n+(r>>1))/r|0}return i.i=n,!0}function Ewn(n){return Shn(),hN(),!!(Dbn(BB(n.a,81).j,BB(n.b,103))||0!=BB(n.a,81).d.e&&Dbn(BB(n.a,81).j,BB(n.b,103)))}function Twn(n){x9(),BB(n.We((sWn(),qSt)),174).Hc((n_n(),VIt))&&(BB(n.We(fPt),174).Fc((lIn(),cIt)),BB(n.We(qSt),174).Mc(VIt))}function Mwn(n,t){var e;if(t){for(e=0;e<n.i;++e)if(BB(n.g[e],366).Di(t))return!1;return f9(n,t)}return!1}function Swn(n){var t,e,i;for(t=new Cl,i=new qb(n.b.Kc());i.b.Ob();)e=VSn(BB(i.b.Pb(),686)),WU(t,t.a.length,e);return t.a}function Pwn(n){var t;return!n.c&&(n.c=new Nn),m$(n.d,new Dn),YKn(n),t=lDn(n),JT(new Rq(null,new w1(n.d,16)),new Iw(n)),t}function Cwn(n){var t;return 0!=(64&n.Db)?kfn(n):((t=new fN(kfn(n))).a+=" (instanceClassName: ",cO(t,n.D),t.a+=")",t.a)}function Iwn(n,t){var e,i;t&&(e=Ren(t,"x"),Ten(new Zg(n).a,(kW(e),e)),i=Ren(t,"y"),Oen(new np(n).a,(kW(i),i)))}function Own(n,t){var e,i;t&&(e=Ren(t,"x"),Ien(new Vg(n).a,(kW(e),e)),i=Ren(t,"y"),Aen(new Yg(n).a,(kW(i),i)))}function Awn(n,t){var e,i,r;if(null==n.i&&qFn(n),e=n.i,-1!=(i=t.aj()))for(r=e.length;i<r;++i)if(e[i]==t)return i;return-1}function $wn(n){var t,e,i,r;for(e=BB(n.g,674),i=n.i-1;i>=0;--i)for(t=e[i],r=0;r<i;++r)if(vFn(n,t,e[r])){Lyn(n,i);break}}function Lwn(n){var t=n.e;function e(n){return n&&0!=n.length?"\t"+n.join("\n\t"):""}return t&&(t.stack||e(n[UVn]))}function Nwn(n){var t;switch(WX(),(t=n.Pc()).length){case 0:return Fnt;case 1:return new Pq(yX(t[0]));default:return new SY(wbn(t))}}function xwn(n,t){switch(t.g){case 1:return KB(n.j,(gcn(),Nut));case 2:return KB(n.j,(gcn(),Dut));default:return SQ(),SQ(),set}}function Dwn(n,t){switch(t){case 3:return void Men(n,0);case 4:return void Sen(n,0);case 5:return void Pen(n,0);case 6:return void Cen(n,0)}ofn(n,t)}function Rwn(){Rwn=O,AM(),HXn(),Vpt=Opt,Qpt=u6(Pun(Gk(lMt,1),k3n,146,0,[mpt,ypt,jpt,Ept,Spt,Ppt,Cpt,Ipt,$pt,Npt,kpt,Tpt,Apt]))}function Kwn(n){var t,e;t=n.d==($Pn(),Jst),e=$En(n),hon(n.a,(HXn(),kdt),t&&!e||!t&&e?(wvn(),$Mt):(wvn(),AMt))}function _wn(n,t){var e;return(e=BB(P4(n,m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15)).Qc(lH(e.gc()))}function Fwn(){Fwn=O,eOt=new YC("SIMPLE",0),ZIt=new YC("GROUP_DEC",1),tOt=new YC("GROUP_MIXED",2),nOt=new YC("GROUP_INC",3)}function Bwn(){Bwn=O,z$t=new $o,K$t=new Lo,_$t=new No,F$t=new xo,B$t=new Do,H$t=new Ro,q$t=new Ko,G$t=new _o,U$t=new Fo}function Hwn(n,t,e){qtn(),sm.call(this),this.a=kq(Xit,[sVn,rJn],[595,212],0,[nrt,Zit],2),this.c=new bA,this.g=n,this.f=t,this.d=e}function qwn(n,t){this.n=kq(LNt,[sVn,FQn],[364,25],14,[t,CJ(e.Math.ceil(n/32))],2),this.o=n,this.p=t,this.j=n-1>>1,this.k=t-1>>1}function Gwn(n,t){OTn(t,"End label post-processing",1),JT(AV(wnn(new Rq(null,new w1(n.b,16)),new ae),new ue),new oe),HSn(t)}function zwn(n,t,e){var i;return i=Gy(n.p[t.i.p])+Gy(n.d[t.i.p])+t.n.b+t.a.b,Gy(n.p[e.i.p])+Gy(n.d[e.i.p])+e.n.b+e.a.b-i}function Uwn(n,t,e){var i,r;for(i=e0(e,UQn),r=0;0!=Vhn(i,0)&&r<t;r++)i=rbn(i,e0(n[r],UQn)),n[r]=dG(i),i=kz(i,32);return dG(i)}function Xwn(n){var t,e,i,r;for(r=0,e=0,i=n.length;e<i;e++)b1(e,n.length),(t=n.charCodeAt(e))<64&&(r=i0(r,yz(1,t)));return r}function Wwn(n){var t;return null==n?null:new $A((t=FBn(n,!0)).length>0&&(b1(0,t.length),43==t.charCodeAt(0))?t.substr(1):t)}function Vwn(n){var t;return null==n?null:new $A((t=FBn(n,!0)).length>0&&(b1(0,t.length),43==t.charCodeAt(0))?t.substr(1):t)}function Qwn(n,t){return n.i>0&&(t.length<n.i&&(t=Den(tsn(t).c,n.i)),aHn(n.g,0,t,0,n.i)),t.length>n.i&&$X(t,n.i,null),t}function Ywn(n,t,e){var i,r,c;return n.ej()?(i=n.i,c=n.fj(),Ifn(n,i,t),r=n.Zi(3,null,t,i,c),e?e.Ei(r):e=r):Ifn(n,n.i,t),e}function Jwn(n,t,e){var i,r;return i=new N7(n.e,4,10,cL(r=t.c,88)?BB(r,26):(gWn(),d$t),null,uvn(n,t),!1),e?e.Ei(i):e=i,e}function Zwn(n,t,e){var i,r;return i=new N7(n.e,3,10,null,cL(r=t.c,88)?BB(r,26):(gWn(),d$t),uvn(n,t),!1),e?e.Ei(i):e=i,e}function ndn(n){var t;return qD(),t=new wA(BB(n.e.We((sWn(),BSt)),8)),n.B.Hc((n_n(),GIt))&&(t.a<=0&&(t.a=20),t.b<=0&&(t.b=20)),t}function tdn(n){return bvn(),(n.q?n.q:(SQ(),SQ(),het))._b((HXn(),Rgt))?BB(mMn(n,Rgt),197):BB(mMn(vW(n),Kgt),197)}function edn(n,t){var e,i;return i=null,Lx(n,(HXn(),Mpt))&&(e=BB(mMn(n,Mpt),94)).Xe(t)&&(i=e.We(t)),null==i&&(i=mMn(vW(n),t)),i}function idn(n,t){var e,i,r;return!!cL(t,42)&&(i=(e=BB(t,42)).cd(),wW(r=lfn(n.Rc(),i),e.dd())&&(null!=r||n.Rc()._b(i)))}function rdn(n,t){var e;return n.f>0&&(n.qj(),-1!=A$n(n,((e=null==t?0:nsn(t))&DWn)%n.d.length,e,t))}function cdn(n,t){var e,i;return n.f>0&&(n.qj(),e=aOn(n,((i=null==t?0:nsn(t))&DWn)%n.d.length,i,t))?e.dd():null}function adn(n,t){var e,i,r,c;for(c=axn(n.e.Tg(),t),e=BB(n.g,119),r=0;r<n.i;++r)if(i=e[r],c.rl(i.ak()))return!1;return!0}function udn(n){if(null==n.b){for(;n.a.Ob();)if(n.b=n.a.Pb(),!BB(n.b,49).Zg())return!0;return n.b=null,!1}return!0}function odn(n,t){n.mj();try{n.d.Vc(n.e++,t),n.f=n.d.j,n.g=-1}catch(e){throw cL(e=lun(e),73)?Hp(new vv):Hp(e)}}function sdn(n,t){var e,i;return s$(),i=null,t==(e=fR((fk(),fk(),rtt)))&&(i=BB(SJ(itt,n),615)),i||(i=new zX(n),t==e&&mZ(itt,n,i)),i}function hdn(n,t){var i,r;n.a=rbn(n.a,1),n.c=e.Math.min(n.c,t),n.b=e.Math.max(n.b,t),n.d+=t,i=t-n.f,r=n.e+i,n.f=r-n.e-i,n.e=r}function fdn(n,t){var e;n.c=t,n.a=pwn(t),n.a<54&&(n.f=(e=t.d>1?i0(yz(t.a[1],32),e0(t.a[0],UQn)):e0(t.a[0],UQn),j2(cbn(t.e,e))))}function ldn(n,t){var e;return JO(n)&&JO(t)&&$Qn<(e=n%t)&&e<OQn?e:uan((Aqn(JO(n)?Pan(n):n,JO(t)?Pan(t):t,!0),ltt))}function bdn(n,t){var e;Dzn(t),(e=BB(mMn(n,(HXn(),Jdt)),276))&&hon(n,Jdt,Ayn(e)),nx(n.c),nx(n.f),V6(n.d),V6(BB(mMn(n,Agt),207))}function wdn(n){this.e=x8(ANt,hQn,25,n.length,15,1),this.c=x8($Nt,ZYn,25,n.length,16,1),this.b=x8($Nt,ZYn,25,n.length,16,1),this.f=0}function ddn(n){var t,e;for(n.j=x8(xNt,qQn,25,n.p.c.length,15,1),e=new Wb(n.p);e.a<e.c.c.length;)t=BB(n0(e),10),n.j[t.p]=t.o.b/n.i}function gdn(n){var t;0!=n.c&&(1==(t=BB(xq(n.a,n.b),287)).b?(++n.b,n.b<n.a.c.length&&Tb(BB(xq(n.a,n.b),287))):--t.b,--n.c)}function pdn(n){var t;t=n.a;do{(t=BB(U5(new oz(ZL(lbn(t).a.Kc(),new h))),17).d.i).k==(uSn(),Put)&&WB(n.e,t)}while(t.k==(uSn(),Put))}function vdn(){vdn=O,LIt=new WA(15),$It=new XA((sWn(),XSt),LIt),xIt=new XA(LPt,15),NIt=new XA(vPt,iln(0)),AIt=new XA(cSt,dZn)}function mdn(){mdn=O,KIt=new VC("PORTS",0),_It=new VC("PORT_LABELS",1),RIt=new VC("NODE_LABELS",2),DIt=new VC("MINIMUM_SIZE",3)}function ydn(n,t){var e,i;for(i=t.length,e=0;e<i;e+=2)Yxn(n,(b1(e,t.length),t.charCodeAt(e)),(b1(e+1,t.length),t.charCodeAt(e+1)))}function kdn(n,t,e){var i,r,c,a;for(c=t-n.e,a=e-n.f,r=new Wb(n.a);r.a<r.c.c.length;)Tvn(i=BB(n0(r),187),i.s+c,i.t+a);n.e=t,n.f=e}function jdn(n,t){var e,i,r;for(r=t.b.b,n.a=new YT,n.b=x8(ANt,hQn,25,r,15,1),e=0,i=spn(t.b,0);i.b!=i.d.c;)BB(b3(i),86).g=e++}function Edn(n,t){var e,i,r,c;return e=t>>5,t&=31,r=n.d+e+(0==t?0:1),xTn(i=x8(ANt,hQn,25,r,15,1),n.a,e,t),X0(c=new lU(n.e,r,i)),c}function Tdn(n,t,e){var i,r;i=BB(SJ(iNt,t),117),r=BB(SJ(rNt,t),117),e?(mZ(iNt,n,i),mZ(rNt,n,r)):(mZ(rNt,n,i),mZ(iNt,n,r))}function Mdn(n,t,e){var i,r,c;for(r=null,c=n.b;c;){if(i=n.a.ue(t,c.d),e&&0==i)return c;i>=0?c=c.a[1]:(r=c,c=c.a[0])}return r}function Sdn(n,t,e){var i,r,c;for(r=null,c=n.b;c;){if(i=n.a.ue(t,c.d),e&&0==i)return c;i<=0?c=c.a[0]:(r=c,c=c.a[1])}return r}function Pdn(n,t,e,i){var r,c,a;return r=!1,LGn(n.f,e,i)&&(xgn(n.f,n.a[t][e],n.a[t][i]),a=(c=n.a[t])[i],c[i]=c[e],c[e]=a,r=!0),r}function Cdn(n,t,e,i,r){var c,a,u;for(a=r;t.b!=t.c;)c=BB(dU(t),10),u=BB(abn(c,i).Xb(0),11),n.d[u.p]=a++,e.c[e.c.length]=u;return a}function Idn(n,t,i){var r,c,a,u,o;return u=n.k,o=t.k,c=MD(edn(n,r=i[u.g][o.g])),a=MD(edn(t,r)),e.Math.max((kW(c),c),(kW(a),a))}function Odn(n,t,e){var i,r,c,a;for(i=e/n.c.length,r=0,a=new Wb(n);a.a<a.c.c.length;)ghn(c=BB(n0(a),200),c.f+i*r),ajn(c,t,i),++r}function Adn(n,t,e){var i,r,c;for(r=BB(RX(n.b,e),177),i=0,c=new Wb(t.j);c.a<c.c.c.length;)r[BB(n0(c),113).d.p]&&++i;return i}function $dn(n){var t,e;return null!=(t=BB(yan(n.a,4),126))?(aHn(t,0,e=x8(dAt,i9n,415,t.length,0,1),0,t.length),e):wAt}function Ldn(){var n;return 0!=ctt&&(n=l5())-att>2e3&&(att=n,utt=e.setTimeout(QE,10)),0==ctt++&&(Onn((sk(),ttt)),!0)}function Ndn(n,t){var e;for(e=new oz(ZL(lbn(n).a.Kc(),new h));dAn(e);)if(BB(U5(e),17).d.i.c==t)return!1;return!0}function xdn(n,t){var e;if(cL(t,245)){e=BB(t,245);try{return 0==n.vd(e)}catch(i){if(!cL(i=lun(i),205))throw Hp(i)}}return!1}function Ddn(){return Error.stackTraceLimit>0?(e.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in new Error}function Rdn(n,t){return h$(),h$(),rin(KVn),(e.Math.abs(n-t)<=KVn||n==t||isNaN(n)&&isNaN(t)?0:n<t?-1:n>t?1:zO(isNaN(n),isNaN(t)))>0}function Kdn(n,t){return h$(),h$(),rin(KVn),(e.Math.abs(n-t)<=KVn||n==t||isNaN(n)&&isNaN(t)?0:n<t?-1:n>t?1:zO(isNaN(n),isNaN(t)))<0}function _dn(n,t){return h$(),h$(),rin(KVn),(e.Math.abs(n-t)<=KVn||n==t||isNaN(n)&&isNaN(t)?0:n<t?-1:n>t?1:zO(isNaN(n),isNaN(t)))<=0}function Fdn(n,t){for(var e=0;!t[e]||""==t[e];)e++;for(var i=t[e++];e<t.length;e++)t[e]&&""!=t[e]&&(i+=n+t[e]);return i}function Bdn(n,t,i){var r,c,a,u;for(_8(t,a=t+i,n.length),u="",c=t;c<a;)r=e.Math.min(c+1e4,a),u+=WW(n.slice(c,r)),c=r;return u}function Hdn(n){var t,e,i,r;if(null==n)return null;for(r=new Np,e=0,i=(t=ysn(n)).length;e<i;++e)WB(r,FBn(t[e],!0));return r}function qdn(n){var t,e,i,r;if(null==n)return null;for(r=new Np,e=0,i=(t=ysn(n)).length;e<i;++e)WB(r,FBn(t[e],!0));return r}function Gdn(n){var t,e,i,r;if(null==n)return null;for(r=new Np,e=0,i=(t=ysn(n)).length;e<i;++e)WB(r,FBn(t[e],!0));return r}function zdn(n,t){var e,i,r;if(n.c)Sen(n.c,t);else for(e=t-iG(n),r=new Wb(n.d);r.a<r.c.c.length;)zdn(i=BB(n0(r),157),iG(i)+e)}function Udn(n,t){var e,i,r;if(n.c)Men(n.c,t);else for(e=t-eG(n),r=new Wb(n.a);r.a<r.c.c.length;)Udn(i=BB(n0(r),157),eG(i)+e)}function Xdn(n,t){var e,i,r;for(i=new J6(t.gc()),e=t.Kc();e.Ob();)(r=t_n(n,BB(e.Pb(),56)))&&(i.c[i.c.length]=r);return i}function Wdn(n,t){var e,i;return n.qj(),(e=aOn(n,((i=null==t?0:nsn(t))&DWn)%n.d.length,i,t))?(hin(n,e),e.dd()):null}function Vdn(n){var t,e;for(e=uPn(n),t=null;2==n.c;)QXn(n),t||(wWn(),wWn(),tqn(t=new r$(2),e),e=t),e.$l(uPn(n));return e}function Qdn(n){if(!(q6n in n.a))throw Hp(new ek("Every element must have an id."));return kIn(zJ(n,q6n))}function Ydn(n){var t,e,i;if(!(i=n.Zg()))for(t=0,e=n.eh();e;e=e.eh()){if(++t>GQn)return e.fh();if((i=e.Zg())||e==n)break}return i}function Jdn(n){return hZ(),cL(n,156)?BB(RX(hAt,yet),288).vg(n):hU(hAt,tsn(n))?BB(RX(hAt,tsn(n)),288).vg(n):null}function Zdn(n){if(mgn(a5n,n))return hN(),vtt;if(mgn(u5n,n))return hN(),ptt;throw Hp(new _y("Expecting true or false"))}function ngn(n,t){if(t.c==n)return t.d;if(t.d==n)return t.c;throw Hp(new _y("Input edge is not connected to the input port."))}function tgn(n,t){return n.e>t.e?1:n.e<t.e?-1:n.d>t.d?n.e:n.d<t.d?-t.e:n.e*Msn(n.a,t.a,n.d)}function egn(n){return n>=48&&n<48+e.Math.min(10,10)?n-48:n>=97&&n<97?n-97+10:n>=65&&n<65?n-65+10:-1}function ign(n,t){var e;return GI(t)===GI(n)||!!cL(t,21)&&(e=BB(t,21)).gc()==n.gc()&&n.Ic(e)}function rgn(n,t){var e,i,r;return i=n.a.length-1,e=t-n.b&i,r=n.c-t&i,Ex(e<(n.c-n.b&i)),e>=r?(ahn(n,t),-1):(uhn(n,t),1)}function cgn(n,t){var e,i;for(b1(t,n.length),e=n.charCodeAt(t),i=t+1;i<n.length&&(b1(i,n.length),n.charCodeAt(i)==e);)++i;return i-t}function agn(n){switch(n.g){case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:return!0;default:return!1}}function ugn(n,t){var e,i=n.a;t=String(t),i.hasOwnProperty(t)&&(e=i[t]);var r=(Zun(),ftt)[typeof e];return r?r(e):khn(typeof e)}function ogn(n,t){if(n.a<0)throw Hp(new Fy("Did not call before(...) or after(...) before calling add(...)."));return WN(n,n.a,t),n}function sgn(n,t,e,i){var r;0!=t.c.length&&(r=MLn(e,i),JT(ytn(new Rq(null,new w1(uIn(t),1)),new ja),new XV(n,e,r,i)))}function hgn(n,t,e){var i;0!=(n.Db&t)?null==e?WOn(n,t):-1==(i=Rmn(n,t))?n.Eb=e:$X(een(n.Eb),i,e):null!=e&&mxn(n,t,e)}function fgn(n){var t;return 0==(32&n.Db)&&0!=(t=bX(BB(yan(n,16),26)||n.zh())-bX(n.zh()))&&hgn(n,32,x8(Ant,HWn,1,t,5,1)),n}function lgn(n){var t;return n.b||Xj(n,!(t=nK(n.e,n.a))||!mK(u5n,cdn((!t.b&&(t.b=new Jx((gWn(),k$t),X$t,t)),t.b),"qualified"))),n.c}function bgn(n,t,e){var i,r;return((r=(i=BB(Wtn(H7(n.a),t),87)).c||(gWn(),l$t)).kh()?tfn(n.b,BB(r,49)):r)==e?lFn(i):cen(i,e),r}function wgn(n,t){(t||null==console.groupCollapsed?null!=console.group?console.group:console.log:console.groupCollapsed).call(console,n)}function dgn(n,t,e,i){BB(e.b,65),BB(e.b,65),BB(i.b,65),BB(i.b,65).c.b,K8(i,t,n)}function ggn(n){var t,e;for(t=new Wb(n.g);t.a<t.c.c.length;)BB(n0(t),562);zzn(e=new yxn(n.g,Gy(n.a),n.c)),n.g=e.b,n.d=e.a}function pgn(n,t,i){t.b=e.Math.max(t.b,-i.a),t.c=e.Math.max(t.c,i.a-n.a),t.d=e.Math.max(t.d,-i.b),t.a=e.Math.max(t.a,i.b-n.b)}function vgn(n,t){return n.e<t.e?-1:n.e>t.e?1:n.f<t.f?-1:n.f>t.f?1:nsn(n)-nsn(t)}function mgn(n,t){return kW(n),null!=t&&(!!mK(n,t)||n.length==t.length&&mK(n.toLowerCase(),t.toLowerCase()))}function ygn(n,t){var e,i,r,c;for(i=0,r=t.gc();i<r;++i)cL(e=t.il(i),99)&&0!=(BB(e,18).Bb&h6n)&&null!=(c=t.jl(i))&&t_n(n,BB(c,56))}function kgn(n,t,e){var i,r,c;for(c=new Wb(e.a);c.a<c.c.c.length;)r=BB(n0(c),221),i=new C$(BB(RX(n.a,r.b),65)),WB(t.a,i),kgn(n,i,r)}function jgn(n){var t,e;return Vhn(n,-129)>0&&Vhn(n,128)<0?(t=dG(n)+128,!(e=(Eq(),$tt)[t])&&(e=$tt[t]=new Db(n)),e):new Db(n)}function Egn(n,t){var e,i;return(e=t.Hh(n.a))&&null!=(i=SD(cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),t8n)))?i:t.ne()}function Tgn(n,t){var e,i;return(e=t.Hh(n.a))&&null!=(i=SD(cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),t8n)))?i:t.ne()}function Mgn(n,t){var e,i;for(qZ(),i=new oz(ZL(hbn(n).a.Kc(),new h));dAn(i);)if((e=BB(U5(i),17)).d.i==t||e.c.i==t)return e;return null}function Sgn(n,t,e){this.c=n,this.f=new Np,this.e=new Gj,this.j=new Sq,this.n=new Sq,this.b=t,this.g=new UV(t.c,t.d,t.b,t.a),this.a=e}function Pgn(n){var t,e,i,r;for(this.a=new fA,this.d=new Rv,this.e=0,i=0,r=(e=n).length;i<r;++i)t=e[i],!this.f&&(this.f=t),g2(this,t)}function Cgn(n){ODn(),0==n.length?(this.e=0,this.d=1,this.a=Pun(Gk(ANt,1),hQn,25,15,[0])):(this.e=1,this.d=n.length,this.a=n,X0(this))}function Ign(n,t,e){sm.call(this),this.a=x8(Xit,rJn,212,(Dtn(),Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length,0,1),this.b=n,this.d=t,this.c=e}function Ogn(n){this.d=new Np,this.e=new v4,this.c=x8(ANt,hQn,25,(kUn(),Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])).length,15,1),this.b=n}function Agn(n){var t,e,i,r;for(hon(r=BB(mMn(n,(hWn(),dlt)),11),Llt,n.i.n.b),e=0,i=(t=Z0(n.e)).length;e<i;++e)MZ(t[e],r)}function $gn(n){var t,e,i,r;for(hon(t=BB(mMn(n,(hWn(),dlt)),11),Llt,n.i.n.b),i=0,r=(e=Z0(n.g)).length;i<r;++i)SZ(e[i],t)}function Lgn(n){var t,e;return!!Lx(n.d.i,(HXn(),Wgt))&&(t=BB(mMn(n.c.i,Wgt),19),e=BB(mMn(n.d.i,Wgt),19),E$(t.a,e.a)>0)}function Ngn(n){var t;GI(ZAn(n,(sWn(),ESt)))===GI((ufn(),vCt))&&(JJ(n)?(t=BB(ZAn(JJ(n),ESt),334),Ypn(n,ESt,t)):Ypn(n,ESt,mCt))}function xgn(n,t,e){var i,r;fMn(n.e,t,e,(kUn(),CIt)),fMn(n.i,t,e,oIt),n.a&&(r=BB(mMn(t,(hWn(),dlt)),11),i=BB(mMn(e,dlt),11),k0(n.g,r,i))}function Dgn(n,t,e){var i,r,c;i=t.c.p,c=t.p,n.b[i][c]=new DY(n,t),e&&(n.a[i][c]=new Bd(t),(r=BB(mMn(t,(hWn(),rlt)),10))&&JIn(n.d,r,t))}function Rgn(n,t){var e,i,r;if(WB(Sct,n),t.Fc(n),e=BB(RX(Mct,n),21))for(r=e.Kc();r.Ob();)i=BB(r.Pb(),33),-1!=E7(Sct,i,0)||Rgn(i,t)}function Kgn(n,t,e){var i;(Wet?(gwn(n),1):Vet||Jet?(lM(),1):Yet&&(lM(),0))&&((i=new i_(t)).b=e,aSn(n,i))}function _gn(n,t){var e;e=!n.A.Hc((mdn(),_It))||n.q==(QEn(),XCt),n.u.Hc((lIn(),eIt))?e?NUn(n,t):aUn(n,t):n.u.Hc(rIt)&&(e?Azn(n,t):JUn(n,t))}function Fgn(n,t){var e,i;++n.j,null!=t&&oOn(t,e=cL(i=n.a.Cb,97)?BB(i,97).Jg():null)?hgn(n.a,4,e):hgn(n.a,4,BB(t,126))}function Bgn(n,t,i){return new UV(e.Math.min(n.a,t.a)-i/2,e.Math.min(n.b,t.b)-i/2,e.Math.abs(n.a-t.a)+i,e.Math.abs(n.b-t.b)+i)}function Hgn(n,t){var e,i;return 0!=(e=E$(n.a.c.p,t.a.c.p))?e:0!=(i=E$(n.a.d.i.p,t.a.d.i.p))?i:E$(t.a.d.p,n.a.d.p)}function qgn(n,t,e){var i,r,c,a;return(c=t.j)!=(a=e.j)?c.g-a.g:(i=n.f[t.p],r=n.f[e.p],0==i&&0==r?0:0==i?-1:0==r?1:Pln(i,r))}function Ggn(n,t,e){var i;if(!e[t.d])for(e[t.d]=!0,i=new Wb(kbn(t));i.a<i.c.c.length;)Ggn(n,Nbn(BB(n0(i),213),t),e)}function zgn(n,t,e){var i;switch(i=e[n.g][t],n.g){case 1:case 3:return new xC(0,i);case 2:case 4:return new xC(i,0);default:return null}}function Ugn(n,t,e){var i;i=BB(sJ(t.f),209);try{i.Ze(n,e),SW(t.f,i)}catch(r){throw cL(r=lun(r),102),Hp(r)}}function Xgn(n,t,e){var i,r,c,a;return i=null,(c=pGn(cin(),t))&&(r=null,null!=(a=Zqn(c,e))&&(r=n.Ye(c,a)),i=r),i}function Wgn(n,t,e,i){var r;return r=new N7(n.e,1,13,t.c||(gWn(),l$t),e.c||(gWn(),l$t),uvn(n,t),!1),i?i.Ei(r):i=r,i}function Vgn(n,t,e,i){var r;if(t>=(r=n.length))return r;for(t=t>0?t:0;t<r&&!ton((b1(t,n.length),n.charCodeAt(t)),e,i);t++);return t}function Qgn(n,t){var e,i;for(i=n.c.length,t.length<i&&(t=qk(new Array(i),t)),e=0;e<i;++e)$X(t,e,n.c[e]);return t.length>i&&$X(t,i,null),t}function Ygn(n,t){var e,i;for(i=n.a.length,t.length<i&&(t=qk(new Array(i),t)),e=0;e<i;++e)$X(t,e,n.a[e]);return t.length>i&&$X(t,i,null),t}function Jgn(n,t,e){var i,r,c;return(r=BB(RX(n.e,t),387))?(c=pR(r,e),uL(n,r),c):(i=new nH(n,t,e),VW(n.e,t,i),kJ(i),null)}function Zgn(n){var t;if(null==n)return null;if(null==(t=L$n(FBn(n,!0))))throw Hp(new ik("Invalid hexBinary value: '"+n+"'"));return t}function npn(n){return ODn(),Vhn(n,0)<0?0!=Vhn(n,-1)?new vEn(-1,j7(n)):Ytt:Vhn(n,10)<=0?Ztt[dG(n)]:new vEn(1,n)}function tpn(){return dWn(),Pun(Gk(Krt,1),$Vn,159,0,[Prt,Srt,Crt,vrt,prt,mrt,jrt,krt,yrt,Mrt,Trt,Ert,drt,wrt,grt,lrt,frt,brt,srt,ort,hrt,Irt])}function epn(n){var t;this.d=new Np,this.j=new Gj,this.g=new Gj,t=n.g.b,this.f=BB(mMn(vW(t),(HXn(),Udt)),103),this.e=Gy(MD(gpn(t,Spt)))}function ipn(n){this.b=new Np,this.e=new Np,this.d=n,this.a=!jE(AV(new Rq(null,new zU(new m6(n.b))),new aw(new Gr))).sd((dM(),tit))}function rpn(){rpn=O,hMt=new AC("PARENTS",0),sMt=new AC("NODES",1),uMt=new AC("EDGES",2),fMt=new AC("PORTS",3),oMt=new AC("LABELS",4)}function cpn(){cpn=O,BCt=new zC("DISTRIBUTED",0),qCt=new zC("JUSTIFIED",1),_Ct=new zC("BEGIN",2),FCt=new zC(eJn,3),HCt=new zC("END",4)}function apn(n){switch(n.yi(null)){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4}return-1}function upn(n){switch(n.g){case 1:return Ffn(),HPt;case 4:return Ffn(),_Pt;case 2:return Ffn(),FPt;case 3:return Ffn(),KPt}return Ffn(),BPt}function opn(n,t,e){var i;switch((i=e.q.getFullYear()-sQn+sQn)<0&&(i=-i),t){case 1:n.a+=i;break;case 2:Enn(n,i%100,2);break;default:Enn(n,i,t)}}function spn(n,t){var e,i;if(LZ(t,n.b),t>=n.b>>1)for(i=n.c,e=n.b;e>t;--e)i=i.b;else for(i=n.a.a,e=0;e<t;++e)i=i.a;return new ZK(n,t,i)}function hpn(){hpn=O,dit=new FS("NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST",0),wit=new FS("CORNER_CASES_THAN_SINGLE_SIDE_LAST",1)}function fpn(n){var t,e,i;for(m$(e=uCn(n),But),(i=n.d).c=x8(Ant,HWn,1,0,5,1),t=new Wb(e);t.a<t.c.c.length;)gun(i,BB(n0(t),456).b)}function lpn(n){var t,e;for(!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),t=(e=n.o).c.Kc();t.e!=t.i.gc();)BB(t.nj(),42).dd();return A8(e)}function bpn(n){var t;LK(BB(mMn(n,(HXn(),ept)),98))&&(fOn((l1(0,(t=n.b).c.length),BB(t.c[0],29))),fOn(BB(xq(t,t.c.length-1),29)))}function wpn(n,t){var i,r,c,a;for(i=0,c=new Wb(t.a);c.a<c.c.c.length;)a=(r=BB(n0(c),10)).o.a+r.d.c+r.d.b+n.j,i=e.Math.max(i,a);return i}function dpn(n){var t,e,i,r;for(r=0,e=0,i=n.length;e<i;e++)b1(e,n.length),(t=n.charCodeAt(e))>=64&&t<128&&(r=i0(r,yz(1,t-64)));return r}function gpn(n,t){var e,i;return i=null,Lx(n,(sWn(),CPt))&&(e=BB(mMn(n,CPt),94)).Xe(t)&&(i=e.We(t)),null==i&&vW(n)&&(i=mMn(vW(n),t)),i}function ppn(n,t){var e,i,r;(i=(r=t.d.i).k)!=(uSn(),Cut)&&i!=Tut&&dAn(e=new oz(ZL(lbn(r).a.Kc(),new h)))&&VW(n.k,t,BB(U5(e),17))}function vpn(n,t){var e,i,r;return i=itn(n.Tg(),t),(e=t-n.Ah())<0?(r=n.Yg(i))>=0?n.lh(r):qIn(n,i):e<0?qIn(n,i):BB(i,66).Nj().Sj(n,n.yh(),e)}function mpn(n){var t;if(cL(n.a,4)){if(null==(t=Jdn(n.a)))throw Hp(new Fy(o5n+n.b+"'. "+r5n+(ED(bAt),bAt.k)+c5n));return t}return n.a}function ypn(n){var t;if(null==n)return null;if(null==(t=UUn(FBn(n,!0))))throw Hp(new ik("Invalid base64Binary value: '"+n+"'"));return t}function kpn(n){var t;try{return t=n.i.Xb(n.e),n.mj(),n.g=n.e++,t}catch(e){throw cL(e=lun(e),73)?(n.mj(),Hp(new yv)):Hp(e)}}function jpn(n){var t;try{return t=n.c.ki(n.e),n.mj(),n.g=n.e++,t}catch(e){throw cL(e=lun(e),73)?(n.mj(),Hp(new yv)):Hp(e)}}function Epn(){Epn=O,sWn(),Ect=TPt,pct=ySt,lct=cSt,vct=XSt,_kn(),kct=Mit,yct=Eit,jct=Pit,mct=jit,Gsn(),wct=oct,bct=uct,dct=hct,gct=fct}function Tpn(n){switch(jM(),this.c=new Np,this.d=n,n.g){case 0:case 2:this.a=QW(hut),this.b=RQn;break;case 3:case 1:this.a=hut,this.b=KQn}}function Mpn(n,t,e){var i;if(n.c)Pen(n.c,n.c.i+t),Cen(n.c,n.c.j+e);else for(i=new Wb(n.b);i.a<i.c.c.length;)Mpn(BB(n0(i),157),t,e)}function Spn(n,t){var e,i;if(n.j.length!=t.j.length)return!1;for(e=0,i=n.j.length;e<i;e++)if(!mK(n.j[e],t.j[e]))return!1;return!0}function Ppn(n,t,e){var i;t.a.length>0&&(WB(n.b,new VB(t.a,e)),0<(i=t.a.length)?t.a=t.a.substr(0,0):0>i&&(t.a+=rL(x8(ONt,WVn,25,-i,15,1))))}function Cpn(n,t){var e,i,r;for(e=n.o,r=BB(BB(h6(n.r,t),21),84).Kc();r.Ob();)(i=BB(r.Pb(),111)).e.a=dyn(i,e.a),i.e.b=e.b*Gy(MD(i.b.We(Lrt)))}function Ipn(n,t){var e,i,r,c;return r=n.k,e=Gy(MD(mMn(n,(hWn(),Tlt)))),c=t.k,i=Gy(MD(mMn(t,Tlt))),c!=(uSn(),Mut)?-1:r!=Mut?1:e==i?0:e<i?-1:1}function Opn(n,t){var e,i;return e=BB(BB(RX(n.g,t.a),46).a,65),i=BB(BB(RX(n.g,t.b),46).a,65),W8(t.a,t.b)-W8(t.a,_$(e.b))-W8(t.b,_$(i.b))}function Apn(n,t){var e;return e=BB(mMn(n,(HXn(),vgt)),74),tL(t,vut)?e?yQ(e):(e=new km,hon(n,vgt,e)):e&&hon(n,vgt,null),e}function $pn(n){var t;return(t=new Ck).a+="n",n.k!=(uSn(),Cut)&&oO(oO((t.a+="(",t),dx(n.k).toLowerCase()),")"),oO((t.a+="_",t),gyn(n)),t.a}function Lpn(n,t){OTn(t,"Self-Loop post-processing",1),JT(AV(AV(wnn(new Rq(null,new w1(n.b,16)),new xi),new Di),new Ri),new Ki),HSn(t)}function Npn(n,t,e,i){var r;return e>=0?n.hh(t,e,i):(n.eh()&&(i=(r=n.Vg())>=0?n.Qg(i):n.eh().ih(n,-1-r,null,i)),n.Sg(t,e,i))}function xpn(n,t){switch(t){case 7:return!n.e&&(n.e=new hK(_Ot,n,7,4)),void sqn(n.e);case 8:return!n.d&&(n.d=new hK(_Ot,n,8,5)),void sqn(n.d)}Dwn(n,t)}function Dpn(n,t){var e;e=n.Zc(t);try{return e.Pb()}catch(i){throw cL(i=lun(i),109)?Hp(new Ay("Can't get element "+t)):Hp(i)}}function Rpn(n,t){this.e=n,t<XQn?(this.d=1,this.a=Pun(Gk(ANt,1),hQn,25,15,[0|t])):(this.d=2,this.a=Pun(Gk(ANt,1),hQn,25,15,[t%XQn|0,t/XQn|0]))}function Kpn(n,t){var e,i,r,c;for(SQ(),e=n,c=t,cL(n,21)&&!cL(t,21)&&(e=t,c=n),r=e.Kc();r.Ob();)if(i=r.Pb(),c.Hc(i))return!1;return!0}function _pn(n,t,e){var i,r,c,a;return-1!=(i=n.Xc(t))&&(n.ej()?(c=n.fj(),a=Lyn(n,i),r=n.Zi(4,a,null,i,c),e?e.Ei(r):e=r):Lyn(n,i)),e}function Fpn(n,t,e){var i,r,c,a;return-1!=(i=n.Xc(t))&&(n.ej()?(c=n.fj(),a=wq(n,i),r=n.Zi(4,a,null,i,c),e?e.Ei(r):e=r):wq(n,i)),e}function Bpn(n,t){var e;switch(e=BB(oV(n.b,t),124).n,t.g){case 1:n.t>=0&&(e.d=n.t);break;case 3:n.t>=0&&(e.a=n.t)}n.C&&(e.b=n.C.b,e.c=n.C.c)}function Hpn(){Hpn=O,Brt=new _S(mJn,0),Frt=new _S(yJn,1),Hrt=new _S(kJn,2),qrt=new _S(jJn,3),Brt.a=!1,Frt.a=!0,Hrt.a=!1,qrt.a=!0}function qpn(){qpn=O,Zrt=new KS(mJn,0),Jrt=new KS(yJn,1),nct=new KS(kJn,2),tct=new KS(jJn,3),Zrt.a=!1,Jrt.a=!0,nct.a=!1,tct.a=!0}function Gpn(n){var t;t=n.a;do{(t=BB(U5(new oz(ZL(fbn(t).a.Kc(),new h))),17).c.i).k==(uSn(),Put)&&n.b.Fc(t)}while(t.k==(uSn(),Put));n.b=ean(n.b)}function zpn(n){var t,e,i;for(i=n.c.a,n.p=(yX(i),new t_(i)),e=new Wb(i);e.a<e.c.c.length;)(t=BB(n0(e),10)).p=hCn(t).a;SQ(),m$(n.p,new Oc)}function Upn(n){var t,e,i;if(e=0,0==(i=wDn(n)).c.length)return 1;for(t=new Wb(i);t.a<t.c.c.length;)e+=Upn(BB(n0(t),33));return e}function Xpn(n,t){var e,i,r;for(r=0,i=BB(BB(h6(n.r,t),21),84).Kc();i.Ob();)r+=(e=BB(i.Pb(),111)).d.b+e.b.rf().a+e.d.c,i.Ob()&&(r+=n.w);return r}function Wpn(n,t){var e,i,r;for(r=0,i=BB(BB(h6(n.r,t),21),84).Kc();i.Ob();)r+=(e=BB(i.Pb(),111)).d.d+e.b.rf().b+e.d.a,i.Ob()&&(r+=n.w);return r}function Vpn(n,t,e,i){if(t.a<i.a)return!0;if(t.a==i.a){if(t.b<i.b)return!0;if(t.b==i.b&&n.b>e.b)return!0}return!1}function Qpn(n,t){return XI(n)?!!OWn[t]:n.hm?!!n.hm[t]:UI(n)?!!IWn[t]:!!zI(n)&&!!CWn[t]}function Ypn(n,t,e){return null==e?(!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),Wdn(n.o,t)):(!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),vjn(n.o,t,e)),n}function Jpn(n,t,e,i){var r;(r=Xfn(t.Xe((sWn(),DSt))?BB(t.We(DSt),21):n.j))!=(dWn(),Irt)&&(e&&!agn(r)||USn(N$n(n,r,i),t))}function Zpn(n,t,e,i){var r,c,a;return c=itn(n.Tg(),t),(r=t-n.Ah())<0?(a=n.Yg(c))>=0?n._g(a,e,!0):cOn(n,c,e):BB(c,66).Nj().Pj(n,n.yh(),r,e,i)}function nvn(n,t,e,i){var r,c;e.mh(t)&&(ZM(),hnn(t)?ygn(n,BB(e.ah(t),153)):(r=(c=t)?BB(i,49).xh(c):null)&&_p(e.ah(t),r))}function tvn(n){switch(n.g){case 1:return Dan(),Rrt;case 3:return Dan(),Nrt;case 2:return Dan(),Drt;case 4:return Dan(),xrt;default:return null}}function evn(n){switch(typeof n){case NWn:return vvn(n);case LWn:return CJ(n);case $Wn:return hN(),n?1231:1237;default:return null==n?0:PN(n)}}function ivn(n,t,e){if(n.e)switch(n.b){case 1:BQ(n.c,t,e);break;case 0:HQ(n.c,t,e)}else t4(n.c,t,e);n.a[t.p][e.p]=n.c.i,n.a[e.p][t.p]=n.c.e}function rvn(n){var t,e;if(null==n)return null;for(e=x8(Out,sVn,193,n.length,0,2),t=0;t<e.length;t++)e[t]=BB(G9(n[t],n[t].length),193);return e}function cvn(n){var t;if(Ksn(n))return mz(n),n.Lk()&&(t=FIn(n.e,n.b,n.c,n.a,n.j),n.j=t),n.g=n.a,++n.a,++n.c,n.i=0,n.j;throw Hp(new yv)}function avn(n,t){var e,i,r,c;return(c=n.o)<(e=n.p)?c*=c:e*=e,i=c+e,(c=t.o)<(e=t.p)?c*=c:e*=e,i<(r=c+e)?-1:i==r?0:1}function uvn(n,t){var e,i;if((i=Wyn(n,t))>=0)return i;if(n.Fk())for(e=0;e<n.i;++e)if(GI(n.Gk(BB(n.g[e],56)))===GI(t))return e;return-1}function ovn(n,t,e){var i,r;if(t>=(r=n.gc()))throw Hp(new tK(t,r));if(n.hi()&&(i=n.Xc(e))>=0&&i!=t)throw Hp(new _y(a8n));return n.mi(t,e)}function svn(n,t){if(this.a=BB(yX(n),245),this.b=BB(yX(t),245),n.vd(t)>0||n==(ey(),Knt)||t==(ty(),_nt))throw Hp(new _y("Invalid range: "+B3(n,t)))}function hvn(n){var t,e;for(this.b=new Np,this.c=n,this.a=!1,e=new Wb(n.a);e.a<e.c.c.length;)t=BB(n0(e),10),this.a=this.a|t.k==(uSn(),Cut)}function fvn(n,t){var e,i,r;for(e=AN(new qv,n),r=new Wb(t);r.a<r.c.c.length;)i=BB(n0(r),121),UNn(aM(cM(uM(rM(new Hv,0),0),e),i));return e}function lvn(n,t,e){var i,r,c;for(r=new oz(ZL((t?fbn(n):lbn(n)).a.Kc(),new h));dAn(r);)i=BB(U5(r),17),(c=t?i.c.i:i.d.i).k==(uSn(),Sut)&&PZ(c,e)}function bvn(){bvn=O,lvt=new _P(QZn,0),bvt=new _P("PORT_POSITION",1),fvt=new _P("NODE_SIZE_WHERE_SPACE_PERMITS",2),hvt=new _P("NODE_SIZE",3)}function wvn(){wvn=O,CMt=new DC("AUTOMATIC",0),AMt=new DC(cJn,1),$Mt=new DC(aJn,2),LMt=new DC("TOP",3),IMt=new DC(oJn,4),OMt=new DC(eJn,5)}function dvn(n,t,e,i){var r,c;for($On(),r=0,c=0;c<e;c++)r=rbn(cbn(e0(t[c],UQn),e0(i,UQn)),e0(dG(r),UQn)),n[c]=dG(r),r=jz(r,32);return dG(r)}function gvn(n,t,i){var r,c;for(c=0,r=0;r<Zit;r++)c=e.Math.max(c,vhn(n.a[t.g][r],i));return t==(Dtn(),zit)&&n.b&&(c=e.Math.max(c,n.b.b)),c}function pvn(n,t){var e,i;if(Tx(t>0),(t&-t)==t)return CJ(t*H$n(n,31)*4.656612873077393e-10);do{i=(e=H$n(n,31))%t}while(e-i+(t-1)<0);return CJ(i)}function vvn(n){var t,e,i;return r_(),null!=(i=rit[e=":"+n])?CJ((kW(i),i)):(t=null==(i=iit[e])?JNn(n):CJ((kW(i),i)),IQ(),rit[e]=t,t)}function mvn(n,t,e){OTn(e,"Compound graph preprocessor",1),n.a=new pJ,Nzn(n,t,null),GHn(n,t),tNn(n),hon(t,(hWn(),Hft),n.a),n.a=null,$U(n.b),HSn(e)}function yvn(n,t,e){switch(e.g){case 1:n.a=t.a/2,n.b=0;break;case 2:n.a=t.a,n.b=t.b/2;break;case 3:n.a=t.a/2,n.b=t.b;break;case 4:n.a=0,n.b=t.b/2}}function kvn(n){var t,e,i;for(i=BB(h6(n.a,(LEn(),Pst)),15).Kc();i.Ob();)iX(n,e=BB(i.Pb(),101),(t=Hyn(e))[0],(Crn(),xst),0),iX(n,e,t[1],Rst,1)}function jvn(n){var t,e,i;for(i=BB(h6(n.a,(LEn(),Cst)),15).Kc();i.Ob();)iX(n,e=BB(i.Pb(),101),(t=Hyn(e))[0],(Crn(),xst),0),iX(n,e,t[1],Rst,1)}function Evn(n){switch(n.g){case 0:return null;case 1:return new Arn;case 2:return new Jm;default:throw Hp(new _y(c4n+(null!=n.f?n.f:""+n.g)))}}function Tvn(n,t,e){var i,r;for(mun(n,t-n.s,e-n.t),r=new Wb(n.n);r.a<r.c.c.length;)rb(i=BB(n0(r),211),i.e+t-n.s),cb(i,i.f+e-n.t);n.s=t,n.t=e}function Mvn(n){var t,e,i,r;for(e=0,i=new Wb(n.a);i.a<i.c.c.length;)BB(n0(i),121).d=e++;return r=null,(t=wSn(n)).c.length>1&&(r=fvn(n,t)),r}function Svn(n){var t;return n.f&&n.f.kh()&&(t=BB(n.f,49),n.f=BB(tfn(n,t),82),n.f!=t&&0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,9,8,t,n.f))),n.f}function Pvn(n){var t;return n.i&&n.i.kh()&&(t=BB(n.i,49),n.i=BB(tfn(n,t),82),n.i!=t&&0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,9,7,t,n.i))),n.i}function Cvn(n){var t;return n.b&&0!=(64&n.b.Db)&&(t=n.b,n.b=BB(tfn(n,t),18),n.b!=t&&0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,9,21,t,n.b))),n.b}function Ivn(n,t){var e,i,r;null==n.d?(++n.e,++n.f):(i=t.Sh(),fNn(n,n.f+1),r=(i&DWn)%n.d.length,!(e=n.d[r])&&(e=n.d[r]=n.uj()),e.Fc(t),++n.f)}function Ovn(n,t,e){var i;return!t.Kj()&&(-2!=t.Zj()?null==(i=t.zj())?null==e:Nfn(i,e):t.Hj()==n.e.Tg()&&null==e)}function Avn(){var n;lin(16,IVn),n=Jin(16),this.b=x8(Gnt,CVn,317,n,0,1),this.c=x8(Gnt,CVn,317,n,0,1),this.a=null,this.e=null,this.i=0,this.f=n-1,this.g=0}function $vn(n){LR.call(this),this.k=(uSn(),Cut),this.j=(lin(6,AVn),new J6(6)),this.b=(lin(2,AVn),new J6(2)),this.d=new fm,this.f=new wm,this.a=n}function Lvn(n){var t,e;n.c.length<=1||(dPn(n,BB((t=EDn(n,(kUn(),SIt))).a,19).a,BB(t.b,19).a),dPn(n,BB((e=EDn(n,CIt)).a,19).a,BB(e.b,19).a))}function Nvn(){Nvn=O,yvt=new FP("SIMPLE",0),pvt=new FP(B1n,1),vvt=new FP("LINEAR_SEGMENTS",2),gvt=new FP("BRANDES_KOEPF",3),mvt=new FP(j3n,4)}function xvn(n,t,e){LK(BB(mMn(t,(HXn(),ept)),98))||(W7(n,t,DSn(t,e)),W7(n,t,DSn(t,(kUn(),SIt))),W7(n,t,DSn(t,sIt)),SQ(),m$(t.j,new _d(n)))}function Dvn(n,t,e,i){var r;for(r=BB(h6(i?n.a:n.b,t),21).Kc();r.Ob();)if(_Dn(n,e,BB(r.Pb(),33)))return!0;return!1}function Rvn(n){var t,e;for(e=new AL(n);e.e!=e.i.gc();)if((t=BB(kpn(e),87)).e||0!=(!t.d&&(t.d=new $L(VAt,t,1)),t.d).i)return!0;return!1}function Kvn(n){var t,e;for(e=new AL(n);e.e!=e.i.gc();)if((t=BB(kpn(e),87)).e||0!=(!t.d&&(t.d=new $L(VAt,t,1)),t.d).i)return!0;return!1}function _vn(n){var t,e;for(t=0,e=new Wb(n.c.a);e.a<e.c.c.length;)t+=F3(new oz(ZL(lbn(BB(n0(e),10)).a.Kc(),new h)));return t/n.c.a.c.length}function Fvn(n){var t,e;for(n.c||zqn(n),e=new km,n0(t=new Wb(n.a));t.a<t.c.c.length;)DH(e,BB(n0(t),407).a);return Px(0!=e.b),Atn(e,e.c.b),e}function Bvn(){Bvn=O,bRn(),qTt=RTt,BTt=new WA(8),new XA((sWn(),XSt),BTt),new XA(LPt,8),HTt=xTt,_Tt=MTt,FTt=STt,KTt=new XA(lSt,(hN(),!1))}function Hvn(n,t,e,i){switch(t){case 7:return!n.e&&(n.e=new hK(_Ot,n,7,4)),n.e;case 8:return!n.d&&(n.d=new hK(_Ot,n,8,5)),n.d}return Rbn(n,t,e,i)}function qvn(n){var t;return n.a&&n.a.kh()&&(t=BB(n.a,49),n.a=BB(tfn(n,t),138),n.a!=t&&0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,9,5,t,n.a))),n.a}function Gvn(n){return n<48||n>102?-1:n<=57?n-48:n<65?-1:n<=70?n-65+10:n<97?-1:n-97+10}function zvn(n,t){if(null==n)throw Hp(new Hy("null key in entry: null="+t));if(null==t)throw Hp(new Hy("null value in entry: "+n+"=null"))}function Uvn(n,t){for(var e,i;n.Ob();){if(!t.Ob())return!1;if(e=n.Pb(),i=t.Pb(),!(GI(e)===GI(i)||null!=e&&Nfn(e,i)))return!1}return!t.Ob()}function Xvn(n,t){var i;return i=Pun(Gk(xNt,1),qQn,25,15,[vhn(n.a[0],t),vhn(n.a[1],t),vhn(n.a[2],t)]),n.d&&(i[0]=e.Math.max(i[0],i[2]),i[2]=i[0]),i}function Wvn(n,t){var i;return i=Pun(Gk(xNt,1),qQn,25,15,[mhn(n.a[0],t),mhn(n.a[1],t),mhn(n.a[2],t)]),n.d&&(i[0]=e.Math.max(i[0],i[2]),i[2]=i[0]),i}function Vvn(){Vvn=O,yht=new SP("GREEDY",0),mht=new SP(H1n,1),jht=new SP(B1n,2),Eht=new SP("MODEL_ORDER",3),kht=new SP("GREEDY_MODEL_ORDER",4)}function Qvn(n,t){var e,i,r;for(n.b[t.g]=1,i=spn(t.d,0);i.b!=i.d.c;)r=(e=BB(b3(i),188)).c,1==n.b[r.g]?DH(n.a,e):2==n.b[r.g]?n.b[r.g]=1:Qvn(n,r)}function Yvn(n,t){var e,i,r;for(r=new J6(t.gc()),i=t.Kc();i.Ob();)(e=BB(i.Pb(),286)).c==e.f?hPn(n,e,e.c):rPn(n,e)||(r.c[r.c.length]=e);return r}function Jvn(n,t,e){var i,r,c,a;for(a=n.r+t,n.r+=t,n.d+=e,i=e/n.n.c.length,r=0,c=new Wb(n.n);c.a<c.c.c.length;)w$n(BB(n0(c),211),a,i,r),++r}function Zvn(n){var t,e;for(my(n.b.a),n.a=x8(bit,HWn,57,n.c.c.a.b.c.length,0,1),t=0,e=new Wb(n.c.c.a.b);e.a<e.c.c.length;)BB(n0(e),57).f=t++}function nmn(n){var t,e;for(my(n.b.a),n.a=x8(Qat,HWn,81,n.c.a.a.b.c.length,0,1),t=0,e=new Wb(n.c.a.a.b);e.a<e.c.c.length;)BB(n0(e),81).i=t++}function tmn(n,t,e){OTn(e,"Shrinking tree compaction",1),qy(TD(mMn(t,(Xcn(),Qrt))))?(irn(n,t.f),unn(t.f,t.c)):unn(t.f,t.c),HSn(e)}function emn(n){var t;if(t=bhn(n),!dAn(n))throw Hp(new Ay("position (0) must be less than the number of elements that remained ("+t+")"));return U5(n)}function imn(n,t,e){try{return vmn(n,t+n.j,e+n.k)}catch(i){throw cL(i=lun(i),73)?Hp(new Ay(i.g+CJn+t+FWn+e+").")):Hp(i)}}function rmn(n,t,e){try{return mmn(n,t+n.j,e+n.k)}catch(i){throw cL(i=lun(i),73)?Hp(new Ay(i.g+CJn+t+FWn+e+").")):Hp(i)}}function cmn(n,t,e){try{return ymn(n,t+n.j,e+n.k)}catch(i){throw cL(i=lun(i),73)?Hp(new Ay(i.g+CJn+t+FWn+e+").")):Hp(i)}}function amn(n){switch(n.g){case 1:return kUn(),CIt;case 4:return kUn(),sIt;case 3:return kUn(),oIt;case 2:return kUn(),SIt;default:return kUn(),PIt}}function umn(n,t,e){t.k==(uSn(),Cut)&&e.k==Put&&(n.d=Efn(t,(kUn(),SIt)),n.b=Efn(t,sIt)),e.k==Cut&&t.k==Put&&(n.d=Efn(e,(kUn(),sIt)),n.b=Efn(e,SIt))}function omn(n,t){var e,i;for(i=abn(n,t).Kc();i.Ob();)if(null!=mMn(e=BB(i.Pb(),11),(hWn(),Elt))||zN(new m6(e.b)))return!0;return!1}function smn(n,t){return Pen(t,n.e+n.d+(0==n.c.c.length?0:n.b)),Cen(t,n.f),n.a=e.Math.max(n.a,t.f),n.d+=t.g+(0==n.c.c.length?0:n.b),WB(n.c,t),!0}function hmn(n,t,e){var i,r,c,a;for(a=0,i=e/n.a.c.length,c=new Wb(n.a);c.a<c.c.c.length;)Tvn(r=BB(n0(c),187),r.s,r.t+a*i),Jvn(r,n.d-r.r+t,i),++a}function fmn(n){var t,e,i;for(e=new Wb(n.b);e.a<e.c.c.length;)for(t=0,i=new Wb(BB(n0(e),29).a);i.a<i.c.c.length;)BB(n0(i),10).p=t++}function lmn(n,t){var e,i,r,c,a,u;for(r=t.length-1,a=0,u=0,i=0;i<=r;i++)c=t[i],e=pSn(r,i)*efn(1-n,r-i)*efn(n,i),a+=c.a*e,u+=c.b*e;return new xC(a,u)}function bmn(n,t){var e,i,r,c,a;for(e=t.gc(),n.qi(n.i+e),c=t.Kc(),a=n.i,n.i+=e,i=a;i<n.i;++i)r=c.Pb(),jL(n,i,n.oi(i,r)),n.bi(i,r),n.ci();return 0!=e}function wmn(n,t,e){var i,r,c;return n.ej()?(i=n.Vi(),c=n.fj(),++n.j,n.Hi(i,n.oi(i,t)),r=n.Zi(3,null,t,i,c),e?e.Ei(r):e=r):ZD(n,n.Vi(),t),e}function dmn(n,t,e){var i,r,c;return(0!=(64&(c=cL(r=(i=BB(Wtn(a4(n.a),t),87)).c,88)?BB(r,26):(gWn(),d$t)).Db)?tfn(n.b,c):c)==e?lFn(i):cen(i,e),c}function gmn(n,t,e,i,r,c,a,u){var o,s;i&&((o=i.a[0])&&gmn(n,t,e,o,r,c,a,u),Iyn(n,e,i.d,r,c,a,u)&&t.Fc(i),(s=i.a[1])&&gmn(n,t,e,s,r,c,a,u))}function pmn(n,t){var e;return n.a||(e=x8(xNt,qQn,25,0,15,1),gE(n.b.a,new bw(e)),e.sort(ien(T.prototype.te,T,[])),n.a=new _K(e,n.d)),K6(n.a,t)}function vmn(n,t,e){try{return QI(trn(n,t,e),1)}catch(i){throw cL(i=lun(i),320)?Hp(new Ay(MJn+n.o+"*"+n.p+SJn+t+FWn+e+PJn)):Hp(i)}}function mmn(n,t,e){try{return QI(trn(n,t,e),0)}catch(i){throw cL(i=lun(i),320)?Hp(new Ay(MJn+n.o+"*"+n.p+SJn+t+FWn+e+PJn)):Hp(i)}}function ymn(n,t,e){try{return QI(trn(n,t,e),2)}catch(i){throw cL(i=lun(i),320)?Hp(new Ay(MJn+n.o+"*"+n.p+SJn+t+FWn+e+PJn)):Hp(i)}}function kmn(n,t){if(-1==n.g)throw Hp(new dv);n.mj();try{n.d._c(n.g,t),n.f=n.d.j}catch(e){throw cL(e=lun(e),73)?Hp(new vv):Hp(e)}}function jmn(n,t,e){OTn(e,"Linear segments node placement",1),n.b=BB(mMn(t,(hWn(),Alt)),304),VXn(n,t),vHn(n,t),QHn(n,t),hXn(n),n.a=null,n.b=null,HSn(e)}function Emn(n,t){var e,i,r,c;for(c=n.gc(),t.length<c&&(t=qk(new Array(c),t)),r=t,i=n.Kc(),e=0;e<c;++e)$X(r,e,i.Pb());return t.length>c&&$X(t,c,null),t}function Tmn(n,t){var e,i;if(i=n.gc(),null==t){for(e=0;e<i;e++)if(null==n.Xb(e))return e}else for(e=0;e<i;e++)if(Nfn(t,n.Xb(e)))return e;return-1}function Mmn(n,t){var e,i,r;return e=t.cd(),r=t.dd(),i=n.xc(e),!(!(GI(r)===GI(i)||null!=r&&Nfn(r,i))||null==i&&!n._b(e))}function Smn(n,t){var e,i,r;return t<=22?(e=n.l&(1<<t)-1,i=r=0):t<=44?(e=n.l,i=n.m&(1<<t-22)-1,r=0):(e=n.l,i=n.m,r=n.h&(1<<t-44)-1),M$(e,i,r)}function Pmn(n,t){switch(t.g){case 1:return n.f.n.d+n.t;case 3:return n.f.n.a+n.t;case 2:return n.f.n.c+n.s;case 4:return n.f.n.b+n.s;default:return 0}}function Cmn(n,t){var e,i;switch(i=t.c,e=t.a,n.b.g){case 0:e.d=n.e-i.a-i.d;break;case 1:e.d+=n.e;break;case 2:e.c=n.e-i.a-i.d;break;case 3:e.c=n.e+i.d}}function Imn(n,t,e,i){var r,c;this.a=t,this.c=i,$l(this,new xC(-(r=n.a).c,-r.d)),UR(this.b,e),c=i/2,t.a?Bx(this.b,0,c):Bx(this.b,c,0),WB(n.c,this)}function Omn(){Omn=O,qjt=new mC(QZn,0),Bjt=new mC(q1n,1),Hjt=new mC("EDGE_LENGTH_BY_POSITION",2),Fjt=new mC("CROSSING_MINIMIZATION_BY_POSITION",3)}function Amn(n,t){var e,i;if(e=BB(sen(n.g,t),33))return e;if(i=BB(sen(n.j,t),118))return i;throw Hp(new ek("Referenced shape does not exist: "+t))}function $mn(n,t){if(n.c==t)return n.d;if(n.d==t)return n.c;throw Hp(new _y("Node 'one' must be either source or target of edge 'edge'."))}function Lmn(n,t){if(n.c.i==t)return n.d.i;if(n.d.i==t)return n.c.i;throw Hp(new _y("Node "+t+" is neither source nor target of edge "+n))}function Nmn(n,t){var e;switch(t.g){case 2:case 4:e=n.a,n.c.d.n.b<e.d.n.b&&(e=n.c),bU(n,t,(Oun(),kst),e);break;case 1:case 3:bU(n,t,(Oun(),vst),null)}}function xmn(n,t,e,i,r,c){var a,u,o,s,h;for(a=ijn(t,e,c),u=e==(kUn(),sIt)||e==CIt?-1:1,s=n[e.g],h=0;h<s.length;h++)(o=s[h])>0&&(o+=r),s[h]=a,a+=u*(o+i)}function Dmn(n){var t,e,i;for(i=n.f,n.n=x8(xNt,qQn,25,i,15,1),n.d=x8(xNt,qQn,25,i,15,1),t=0;t<i;t++)e=BB(xq(n.c.b,t),29),n.n[t]=wpn(n,e),n.d[t]=VLn(n,e)}function Rmn(n,t){var e,i,r;for(r=0,i=2;i<t;i<<=1)0!=(n.Db&i)&&++r;if(0==r){for(e=t<<=1;e<=128;e<<=1)if(0!=(n.Db&e))return 0;return-1}return r}function Kmn(n,t){var e,i,r,c,a;for(a=axn(n.e.Tg(),t),c=null,e=BB(n.g,119),r=0;r<n.i;++r)i=e[r],a.rl(i.ak())&&(!c&&(c=new go),f9(c,i));c&&aXn(n,c)}function _mn(n){var t,e;if(!n)return null;if(n.dc())return"";for(e=new Sk,t=n.Kc();t.Ob();)cO(e,SD(t.Pb())),e.a+=" ";return KO(e,e.a.length-1)}function Fmn(n,t,e){var i,r,c,a;for(con(n),null==n.k&&(n.k=x8(Jnt,sVn,78,0,0,1)),r=0,c=(i=n.k).length;r<c;++r)Fmn(i[r],t,"\t"+e);(a=n.f)&&Fmn(a,t,e)}function Bmn(n,t){var e,i=new Array(t);switch(n){case 14:case 15:e=0;break;case 16:e=!1;break;default:return i}for(var r=0;r<t;++r)i[r]=e;return i}function Hmn(n){var t;for(t=new Wb(n.a.b);t.a<t.c.c.length;)BB(n0(t),57).c.$b();Otn(dA(n.d)?n.a.c:n.a.d,new Mw(n)),n.c.Me(n),_xn(n)}function qmn(n){var t,e,i;for(e=new Wb(n.e.c);e.a<e.c.c.length;){for(i=new Wb((t=BB(n0(e),282)).b);i.a<i.c.c.length;)_Bn(BB(n0(i),447));BCn(t)}}function Gmn(n){var t,i,r,c,a;for(r=0,a=0,c=0,i=new Wb(n.a);i.a<i.c.c.length;)t=BB(n0(i),187),a=e.Math.max(a,t.r),r+=t.d+(c>0?n.c:0),++c;n.b=r,n.d=a}function zmn(n,t){var i,r,c,a,u;for(r=0,c=0,i=0,u=new Wb(t);u.a<u.c.c.length;)a=BB(n0(u),200),r=e.Math.max(r,a.e),c+=a.b+(i>0?n.g:0),++i;n.c=c,n.d=r}function Umn(n,t){var i;return i=Pun(Gk(xNt,1),qQn,25,15,[gvn(n,(Dtn(),Git),t),gvn(n,zit,t),gvn(n,Uit,t)]),n.f&&(i[0]=e.Math.max(i[0],i[2]),i[2]=i[0]),i}function Xmn(n,t,e){try{FRn(n,t+n.j,e+n.k,!1,!0)}catch(i){throw cL(i=lun(i),73)?Hp(new Ay(i.g+CJn+t+FWn+e+").")):Hp(i)}}function Wmn(n,t,e){try{FRn(n,t+n.j,e+n.k,!0,!1)}catch(i){throw cL(i=lun(i),73)?Hp(new Ay(i.g+CJn+t+FWn+e+").")):Hp(i)}}function Vmn(n){var t;Lx(n,(HXn(),$gt))&&((t=BB(mMn(n,$gt),21)).Hc((n$n(),ICt))?(t.Mc(ICt),t.Fc(ACt)):t.Hc(ACt)&&(t.Mc(ACt),t.Fc(ICt)))}function Qmn(n){var t;Lx(n,(HXn(),$gt))&&((t=BB(mMn(n,$gt),21)).Hc((n$n(),DCt))?(t.Mc(DCt),t.Fc(NCt)):t.Hc(NCt)&&(t.Mc(NCt),t.Fc(DCt)))}function Ymn(n,t,e){OTn(e,"Self-Loop ordering",1),JT($V(AV(AV(wnn(new Rq(null,new w1(t.b,16)),new Ii),new Oi),new Ai),new $i),new bd(n)),HSn(e)}function Jmn(n,t,e,i){var r,c;for(r=t;r<n.c.length;r++){if(l1(r,n.c.length),c=BB(n.c[r],11),!e.Mb(c))return r;i.c[i.c.length]=c}return n.c.length}function Zmn(n,t,e,i){var r,c,a;return null==n.a&&dSn(n,t),a=t.b.j.c.length,c=e.d.p,(r=i.d.p-1)<0&&(r=a-1),c<=r?n.a[r]-n.a[c]:n.a[a-1]-n.a[c]+n.a[r]}function nyn(n){var t,e;if(!n.b)for(n.b=C2(BB(n.f,33).Ag().i),e=new AL(BB(n.f,33).Ag());e.e!=e.i.gc();)t=BB(kpn(e),137),WB(n.b,new Ry(t));return n.b}function tyn(n){var t,e;if(!n.e)for(n.e=C2(yV(BB(n.f,33)).i),e=new AL(yV(BB(n.f,33)));e.e!=e.i.gc();)t=BB(kpn(e),118),WB(n.e,new op(t));return n.e}function eyn(n){var t,e;if(!n.a)for(n.a=C2(YQ(BB(n.f,33)).i),e=new AL(YQ(BB(n.f,33)));e.e!=e.i.gc();)t=BB(kpn(e),33),WB(n.a,new JN(n,t));return n.a}function iyn(n){var t;if(!n.C&&(null!=n.D||null!=n.B))if(t=bzn(n))n.yk(t);else try{n.yk(null)}catch(e){if(!cL(e=lun(e),60))throw Hp(e)}return n.C}function ryn(n){switch(n.q.g){case 5:kjn(n,(kUn(),sIt)),kjn(n,SIt);break;case 4:cGn(n,(kUn(),sIt)),cGn(n,SIt);break;default:FPn(n,(kUn(),sIt)),FPn(n,SIt)}}function cyn(n){switch(n.q.g){case 5:jjn(n,(kUn(),oIt)),jjn(n,CIt);break;case 4:aGn(n,(kUn(),oIt)),aGn(n,CIt);break;default:BPn(n,(kUn(),oIt)),BPn(n,CIt)}}function ayn(n,t){var i,r,c;for(c=new Gj,r=n.Kc();r.Ob();)ZRn(i=BB(r.Pb(),37),c.a,0),c.a+=i.f.a+t,c.b=e.Math.max(c.b,i.f.b);return c.b>0&&(c.b+=t),c}function uyn(n,t){var i,r,c;for(c=new Gj,r=n.Kc();r.Ob();)ZRn(i=BB(r.Pb(),37),0,c.b),c.b+=i.f.b+t,c.a=e.Math.max(c.a,i.f.a);return c.a>0&&(c.a+=t),c}function oyn(n){var t,i,r;for(r=DWn,i=new Wb(n.a);i.a<i.c.c.length;)Lx(t=BB(n0(i),10),(hWn(),wlt))&&(r=e.Math.min(r,BB(mMn(t,wlt),19).a));return r}function syn(n,t){var e,i;if(0==t.length)return 0;for(e=ZX(n.a,t[0],(kUn(),CIt)),e+=ZX(n.a,t[t.length-1],oIt),i=0;i<t.length;i++)e+=qMn(n,i,t);return e}function hyn(){gxn(),this.c=new Np,this.i=new Np,this.e=new fA,this.f=new fA,this.g=new fA,this.j=new Np,this.a=new Np,this.b=new xp,this.k=new xp}function fyn(n,t){var e;return n.Db>>16==6?n.Cb.ih(n,5,GOt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||n.zh(),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function lyn(n){PY();var t=n.e;if(t&&t.stack){var e=t.stack,i=t+"\n";return e.substring(0,i.length)==i&&(e=e.substring(i.length)),e.split("\n")}return[]}function byn(n){var t;return Min(),(t=Ott)[n>>>28]|t[n>>24&15]<<4|t[n>>20&15]<<8|t[n>>16&15]<<12|t[n>>12&15]<<16|t[n>>8&15]<<20|t[n>>4&15]<<24|t[15&n]<<28}function wyn(n){var t,i,r;n.b==n.c&&(r=n.a.length,i=kon(e.Math.max(8,r))<<1,0!=n.b?(urn(n,t=SR(n.a,i),r),n.a=t,n.b=0):Pv(n.a,i),n.c=r)}function dyn(n,t){var e;return(e=n.b).Xe((sWn(),aPt))?e.Hf()==(kUn(),CIt)?-e.rf().a-Gy(MD(e.We(aPt))):t+Gy(MD(e.We(aPt))):e.Hf()==(kUn(),CIt)?-e.rf().a:t}function gyn(n){var t;return 0!=n.b.c.length&&BB(xq(n.b,0),70).a?BB(xq(n.b,0),70).a:null!=(t=eQ(n))?t:""+(n.c?E7(n.c.a,n,0):-1)}function pyn(n){var t;return 0!=n.f.c.length&&BB(xq(n.f,0),70).a?BB(xq(n.f,0),70).a:null!=(t=eQ(n))?t:""+(n.i?E7(n.i.j,n,0):-1)}function vyn(n,t){var e,i;if(t<0||t>=n.gc())return null;for(e=t;e<n.gc();++e)if(i=BB(n.Xb(e),128),e==n.gc()-1||!i.o)return new rI(iln(e),i);return null}function myn(n,t,e){var i,r,c,a;for(c=n.c,i=e?n:t,r=(e?t:n).p+1;r<i.p;++r)if((a=BB(xq(c.a,r),10)).k!=(uSn(),Tut)&&!Lkn(a))return!1;return!0}function yyn(n){var t,i,r,c,a;for(a=0,c=KQn,r=0,i=new Wb(n.a);i.a<i.c.c.length;)a+=(t=BB(n0(i),187)).r+(r>0?n.c:0),c=e.Math.max(c,t.d),++r;n.e=a,n.b=c}function kyn(n){var t,e;if(!n.b)for(n.b=C2(BB(n.f,118).Ag().i),e=new AL(BB(n.f,118).Ag());e.e!=e.i.gc();)t=BB(kpn(e),137),WB(n.b,new Ry(t));return n.b}function jyn(n,t){var e,i,r;if(t.dc())return dD(),dD(),pAt;for(e=new aR(n,t.gc()),r=new AL(n);r.e!=r.i.gc();)i=kpn(r),t.Hc(i)&&f9(e,i);return e}function Eyn(n,t,e,i){return 0==t?i?(!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),n.o):(!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),A8(n.o)):Zpn(n,t,e,i)}function Tyn(n){var t,e;if(n.rb)for(t=0,e=n.rb.i;t<e;++t)vx(Wtn(n.rb,t));if(n.vb)for(t=0,e=n.vb.i;t<e;++t)vx(Wtn(n.vb,t));az((IPn(),Z$t),n),n.Bb|=1}function Myn(n,t,e,i,r,c,a,u,o,s,h,f,l,b){return bCn(n,t,i,null,r,c,a,u,o,s,l,!0,b),zln(n,h),cL(n.Cb,88)&&ACn(P5(BB(n.Cb,88)),2),e&&rrn(n,e),Uln(n,f),n}function Syn(n){var t;if(null==n)return null;t=0;try{t=l_n(n,_Vn,DWn)&QVn}catch(e){if(!cL(e=lun(e),127))throw Hp(e);t=V7(n)[0]}return fun(t)}function Pyn(n){var t;if(null==n)return null;t=0;try{t=l_n(n,_Vn,DWn)&QVn}catch(e){if(!cL(e=lun(e),127))throw Hp(e);t=V7(n)[0]}return fun(t)}function Cyn(n,t){var e,i,r;return!((r=n.h-t.h)<0||(e=n.l-t.l,(r+=(i=n.m-t.m+(e>>22))>>22)<0||(n.l=e&SQn,n.m=i&SQn,n.h=r&PQn,0)))}function Iyn(n,t,e,i,r,c,a){var u,o;return!(t.Ae()&&(o=n.a.ue(e,i),o<0||!r&&0==o)||t.Be()&&(u=n.a.ue(e,c),u>0||!a&&0==u))}function Oyn(n,t){if(zsn(),0!=n.j.g-t.j.g)return 0;switch(n.j.g){case 2:return jbn(t,bst)-jbn(n,bst);case 4:return jbn(n,lst)-jbn(t,lst)}return 0}function Ayn(n){switch(n.g){case 0:return xht;case 1:return Dht;case 2:return Rht;case 3:return Kht;case 4:return _ht;case 5:return Fht;default:return null}}function $yn(n,t,e){var i,r;return Ihn(r=new Lm,t),Nrn(r,e),f9((!n.c&&(n.c=new eU(YAt,n,12,10)),n.c),r),Len(i=r,0),Nen(i,1),nln(i,!0),Yfn(i,!0),i}function Lyn(n,t){var e,i;if(t>=n.i)throw Hp(new LO(t,n.i));return++n.j,e=n.g[t],(i=n.i-t-1)>0&&aHn(n.g,t+1,n.g,t,i),$X(n.g,--n.i,null),n.fi(t,e),n.ci(),e}function Nyn(n,t){var e;return n.Db>>16==17?n.Cb.ih(n,21,qAt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||n.zh(),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function xyn(n){var t,e,i;for(SQ(),m$(n.c,n.a),i=new Wb(n.c);i.a<i.c.c.length;)for(e=n0(i),t=new Wb(n.b);t.a<t.c.c.length;)BB(n0(t),679).Ke(e)}function Dyn(n){var t,e,i;for(SQ(),m$(n.c,n.a),i=new Wb(n.c);i.a<i.c.c.length;)for(e=n0(i),t=new Wb(n.b);t.a<t.c.c.length;)BB(n0(t),369).Ke(e)}function Ryn(n){var t,e,i,r,c;for(r=DWn,c=null,i=new Wb(n.d);i.a<i.c.c.length;)(e=BB(n0(i),213)).d.j^e.e.j&&(t=e.e.e-e.d.e-e.a)<r&&(r=t,c=e);return c}function Kyn(){Kyn=O,dat=new $O(NZn,(hN(),!1)),fat=new $O(xZn,100),q7(),lat=new $O(DZn,bat=Oat),wat=new $O(RZn,lZn),gat=new $O(KZn,iln(DWn))}function _yn(n,t,e){var i,r,c,a,u,o;for(o=0,r=0,c=(i=n.a[t]).length;r<c;++r)for(u=Lfn(i[r],e).Kc();u.Ob();)a=BB(u.Pb(),11),VW(n.f,a,iln(o++))}function Fyn(n,t,e){var i,r;if(e)for(r=((i=new hz(e.a.length)).b-i.a)*i.c<0?(eS(),MNt):new XL(i);r.Ob();)JIn(n,t,kIn(dnn(e,BB(r.Pb(),19).a)))}function Byn(n,t,e){var i,r;if(e)for(r=((i=new hz(e.a.length)).b-i.a)*i.c<0?(eS(),MNt):new XL(i);r.Ob();)JIn(n,t,kIn(dnn(e,BB(r.Pb(),19).a)))}function Hyn(n){var t;return _Mn(),z9(t=BB(Emn(gz(n.k),x8(FIt,YZn,61,2,0,1)),122),0,t.length,null),t[0]==(kUn(),sIt)&&t[1]==CIt&&($X(t,0,CIt),$X(t,1,sIt)),t}function qyn(n,t,e){var i,r,c;return c=sDn(n,r=XNn(n,t,e)),K9(n.b),k0(n,t,e),SQ(),m$(r,new Vd(n)),i=sDn(n,r),K9(n.b),k0(n,e,t),new rI(iln(c),iln(i))}function Gyn(){Gyn=O,Umt=dq(new B2,(yMn(),Bat),(lWn(),dot)),Xmt=new iR("linearSegments.inputPrio",iln(0)),Wmt=new iR("linearSegments.outputPrio",iln(0))}function zyn(){zyn=O,Ryt=new fC("P1_TREEIFICATION",0),Kyt=new fC("P2_NODE_ORDERING",1),_yt=new fC("P3_NODE_PLACEMENT",2),Fyt=new fC("P4_EDGE_ROUTING",3)}function Uyn(){Uyn=O,sWn(),xjt=gPt,Kjt=LPt,Cjt=KSt,Ijt=BSt,Ojt=qSt,Pjt=DSt,Ajt=USt,Njt=fPt,KAn(),Mjt=wjt,Sjt=djt,$jt=pjt,Ljt=mjt,Djt=yjt,Rjt=kjt,_jt=Ejt}function Xyn(){Xyn=O,MCt=new qC("UNKNOWN",0),jCt=new qC("ABOVE",1),ECt=new qC("BELOW",2),TCt=new qC("INLINE",3),new iR("org.eclipse.elk.labelSide",MCt)}function Wyn(n,t){var e;if(n.ni()&&null!=t){for(e=0;e<n.i;++e)if(Nfn(t,n.g[e]))return e}else for(e=0;e<n.i;++e)if(GI(n.g[e])===GI(t))return e;return-1}function Vyn(n,t,e){var i,r;return t.c==(ain(),qvt)&&e.c==Hvt?-1:t.c==Hvt&&e.c==qvt?1:(i=dhn(t.a,n.a),r=dhn(e.a,n.a),t.c==qvt?r-i:i-r)}function Qyn(n,t,e){if(e&&(t<0||t>e.a.c.length))throw Hp(new _y("index must be >= 0 and <= layer node count"));n.c&&y7(n.c.a,n),n.c=e,e&&kG(e.a,t,n)}function Yyn(n,t){var e,i,r;for(i=new oz(ZL(hbn(n).a.Kc(),new h));dAn(i);)return e=BB(U5(i),17),new qf(yX((r=BB(t.Kb(e),10)).n.b+r.o.b/2));return iy(),iy(),Ont}function Jyn(n,t){this.c=new xp,this.a=n,this.b=t,this.d=BB(mMn(n,(hWn(),Alt)),304),GI(mMn(n,(HXn(),Lgt)))===GI((g7(),qht))?this.e=new gm:this.e=new dm}function Zyn(n,t){var i,r,c;for(c=0,r=new Wb(n);r.a<r.c.c.length;)i=BB(n0(r),33),c+=e.Math.pow(i.g*i.f-t,2);return e.Math.sqrt(c/(n.c.length-1))}function nkn(n,t){var e,i;return i=null,n.Xe((sWn(),CPt))&&(e=BB(n.We(CPt),94)).Xe(t)&&(i=e.We(t)),null==i&&n.yf()&&(i=n.yf().We(t)),null==i&&(i=mpn(t)),i}function tkn(n,t){var e,i;e=n.Zc(t);try{return i=e.Pb(),e.Qb(),i}catch(r){throw cL(r=lun(r),109)?Hp(new Ay("Can't remove element "+t)):Hp(r)}}function ekn(n,t){var e,i,r;if(0==(e=DBn(n,t,r=new von((i=new AT).q.getFullYear()-sQn,i.q.getMonth(),i.q.getDate())))||e<t.length)throw Hp(new _y(t));return r}function ikn(n,t){var e,i,r;for(kW(t),Tx(t!=n),r=n.b.c.length,i=t.Kc();i.Ob();)e=i.Pb(),WB(n.b,kW(e));return r!=n.b.c.length&&(Esn(n,0),!0)}function rkn(){rkn=O,sWn(),kat=CSt,new XA(dSt,(hN(),!0)),Tat=KSt,Mat=BSt,Sat=qSt,Eat=DSt,Pat=USt,Cat=fPt,Kyn(),yat=dat,vat=lat,mat=wat,jat=gat,pat=fat}function ckn(n,t){if(t==n.c)return n.d;if(t==n.d)return n.c;throw Hp(new _y("'port' must be either the source port or target port of the edge."))}function akn(n,t,e){var i,r;switch(r=n.o,i=n.d,t.g){case 1:return-i.d-e;case 3:return r.b+i.a+e;case 2:return r.a+i.c+e;case 4:return-i.b-e;default:return 0}}function ukn(n,t,e,i){var r,c,a;for(PZ(t,BB(i.Xb(0),29)),a=i.bd(1,i.gc()),c=BB(e.Kb(t),20).Kc();c.Ob();)ukn(n,(r=BB(c.Pb(),17)).c.i==t?r.d.i:r.c.i,e,a)}function okn(n){var t;return t=new xp,Lx(n,(hWn(),Dlt))?BB(mMn(n,Dlt),83):(JT(AV(new Rq(null,new w1(n.j,16)),new tr),new gd(t)),hon(n,Dlt,t),t)}function skn(n,t){var e;return n.Db>>16==6?n.Cb.ih(n,6,_Ot,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(CXn(),yOt),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function hkn(n,t){var e;return n.Db>>16==7?n.Cb.ih(n,1,DOt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(CXn(),jOt),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function fkn(n,t){var e;return n.Db>>16==9?n.Cb.ih(n,9,UOt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(CXn(),TOt),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function lkn(n,t){var e;return n.Db>>16==5?n.Cb.ih(n,9,XAt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(gWn(),s$t),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function bkn(n,t){var e;return n.Db>>16==3?n.Cb.ih(n,0,BOt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(gWn(),e$t),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function wkn(n,t){var e;return n.Db>>16==7?n.Cb.ih(n,6,GOt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(gWn(),v$t),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function dkn(){this.a=new lo,this.g=new Avn,this.j=new Avn,this.b=new xp,this.d=new Avn,this.i=new Avn,this.k=new xp,this.c=new xp,this.e=new xp,this.f=new xp}function gkn(n,t,e){var i,r,c;for(e<0&&(e=0),c=n.i,r=e;r<c;r++)if(i=Wtn(n,r),null==t){if(null==i)return r}else if(GI(t)===GI(i)||Nfn(t,i))return r;return-1}function pkn(n,t){var e,i;return(e=t.Hh(n.a))?(i=SD(cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),j7n)),mK(E7n,i)?az(n,Utn(t.Hj())):i):null}function vkn(n,t){var e,i;if(t){if(t==n)return!0;for(e=0,i=BB(t,49).eh();i&&i!=t;i=i.eh()){if(++e>GQn)return vkn(n,i);if(i==n)return!0}}return!1}function mkn(n){switch(DN(),n.q.g){case 5:vIn(n,(kUn(),sIt)),vIn(n,SIt);break;case 4:z$n(n,(kUn(),sIt)),z$n(n,SIt);break;default:vUn(n,(kUn(),sIt)),vUn(n,SIt)}}function ykn(n){switch(DN(),n.q.g){case 5:SOn(n,(kUn(),oIt)),SOn(n,CIt);break;case 4:Cpn(n,(kUn(),oIt)),Cpn(n,CIt);break;default:mUn(n,(kUn(),oIt)),mUn(n,CIt)}}function kkn(n){var t,e;(t=BB(mMn(n,(fRn(),nat)),19))?(e=t.a,hon(n,(Mrn(),hat),0==e?new sbn:new C4(e))):hon(n,(Mrn(),hat),new C4(1))}function jkn(n,t){var e;switch(e=n.i,t.g){case 1:return-(n.n.b+n.o.b);case 2:return n.n.a-e.o.a;case 3:return n.n.b-e.o.b;case 4:return-(n.n.a+n.o.a)}return 0}function Ekn(n,t){switch(n.g){case 0:return t==(Tbn(),Flt)?rst:cst;case 1:return t==(Tbn(),Flt)?rst:ist;case 2:return t==(Tbn(),Flt)?ist:cst;default:return ist}}function Tkn(n,t){var i,r,c;for(y7(n.a,t),n.e-=t.r+(0==n.a.c.length?0:n.c),c=n4n,r=new Wb(n.a);r.a<r.c.c.length;)i=BB(n0(r),187),c=e.Math.max(c,i.d);n.b=c}function Mkn(n,t){var e;return n.Db>>16==3?n.Cb.ih(n,12,UOt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(CXn(),mOt),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Skn(n,t){var e;return n.Db>>16==11?n.Cb.ih(n,10,UOt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(CXn(),EOt),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Pkn(n,t){var e;return n.Db>>16==10?n.Cb.ih(n,11,qAt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(gWn(),g$t),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Ckn(n,t){var e;return n.Db>>16==10?n.Cb.ih(n,12,QAt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(gWn(),m$t),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Ikn(n){var t;return 0==(1&n.Bb)&&n.r&&n.r.kh()&&(t=BB(n.r,49),n.r=BB(tfn(n,t),138),n.r!=t&&0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,9,8,t,n.r))),n.r}function Okn(n,t,i){var r;return r=Pun(Gk(xNt,1),qQn,25,15,[iMn(n,(Dtn(),Git),t,i),iMn(n,zit,t,i),iMn(n,Uit,t,i)]),n.f&&(r[0]=e.Math.max(r[0],r[2]),r[2]=r[0]),r}function Akn(n,t){var e,i,r;if(0!=(r=Yvn(n,t)).c.length)for(m$(r,new ti),e=r.c.length,i=0;i<e;i++)hPn(n,(l1(i,r.c.length),BB(r.c[i],286)),TDn(n,r,i))}function $kn(n){var t,e,i;for(i=BB(h6(n.a,(LEn(),Tst)),15).Kc();i.Ob();)for(t=gz((e=BB(i.Pb(),101)).k).Kc();t.Ob();)iX(n,e,BB(t.Pb(),61),(Crn(),Dst),1)}function Lkn(n){var t,e;if(n.k==(uSn(),Put))for(e=new oz(ZL(hbn(n).a.Kc(),new h));dAn(e);)if(!b5(t=BB(U5(e),17))&&n.c==Ajn(t,n).c)return!0;return!1}function Nkn(n){var t,e;if(n.k==(uSn(),Put))for(e=new oz(ZL(hbn(n).a.Kc(),new h));dAn(e);)if(!b5(t=BB(U5(e),17))&&t.c.i.c==t.d.i.c)return!0;return!1}function xkn(n,t){var e,i;for(OTn(t,"Dull edge routing",1),i=spn(n.b,0);i.b!=i.d.c;)for(e=spn(BB(b3(i),86).d,0);e.b!=e.d.c;)yQ(BB(b3(e),188).a)}function Dkn(n,t){var e,i,r;if(t)for(r=((e=new hz(t.a.length)).b-e.a)*e.c<0?(eS(),MNt):new XL(e);r.Ob();)(i=x2(t,BB(r.Pb(),19).a))&&O$n(n,i)}function Rkn(){var n;for(tS(),nWn((QX(),t$t)),_Xn(t$t),Tyn(t$t),gWn(),L$t=l$t,n=new Wb(V$t);n.a<n.c.c.length;)azn(BB(n0(n),241),l$t,null);return!0}function Kkn(n,t){var e,i,r,c,a,u;return(a=n.h>>19)!=(u=t.h>>19)?u-a:(i=n.h)!=(c=t.h)?i-c:(e=n.m)!=(r=t.m)?e-r:n.l-t.l}function _kn(){_kn=O,tRn(),Pit=new $O(UYn,Cit=xit),Rnn(),Mit=new $O(XYn,Sit=mit),hpn(),Eit=new $O(WYn,Tit=dit),jit=new $O(VYn,(hN(),!0))}function Fkn(n,t,e){var i,r;i=t*e,cL(n.g,145)?(r=f3(n)).f.d?r.f.a||(n.d.a+=i+fJn):(n.d.d-=i+fJn,n.d.a+=i+fJn):cL(n.g,10)&&(n.d.d-=i,n.d.a+=2*i)}function Bkn(n,t,i){var r,c,a,u,o;for(c=n[i.g],o=new Wb(t.d);o.a<o.c.c.length;)(a=(u=BB(n0(o),101)).i)&&a.i==i&&(c[r=u.d[i.g]]=e.Math.max(c[r],a.j.b))}function Hkn(n,t){var i,r,c,a,u;for(r=0,c=0,i=0,u=new Wb(t.d);u.a<u.c.c.length;)Gmn(a=BB(n0(u),443)),r=e.Math.max(r,a.b),c+=a.d+(i>0?n.g:0),++i;t.b=r,t.e=c}function qkn(n){var t,e,i;if(i=n.b,qT(n.i,i.length)){for(e=2*i.length,n.b=x8(Gnt,CVn,317,e,0,1),n.c=x8(Gnt,CVn,317,e,0,1),n.f=e-1,n.i=0,t=n.a;t;t=t.c)YCn(n,t,t);++n.g}}function Gkn(n,t,e,i){var r,c,a,u;for(r=0;r<t.o;r++)for(c=r-t.j+e,a=0;a<t.p;a++)u=a-t.k+i,vmn(t,r,a)?cmn(n,c,u)||Xmn(n,c,u):ymn(t,r,a)&&(imn(n,c,u)||Wmn(n,c,u))}function zkn(n,t,e){var i;(i=t.c.i).k==(uSn(),Put)?(hon(n,(hWn(),hlt),BB(mMn(i,hlt),11)),hon(n,flt,BB(mMn(i,flt),11))):(hon(n,(hWn(),hlt),t.c),hon(n,flt,e.d))}function Ukn(n,t,i){var r,c,a,u,o,s;return jDn(),u=t/2,a=i/2,o=1,s=1,(r=e.Math.abs(n.a))>u&&(o=u/r),(c=e.Math.abs(n.b))>a&&(s=a/c),kL(n,e.Math.min(o,s)),n}function Xkn(){var n,t;qBn();try{if(t=BB(Xjn((WM(),zAt),y6n),2014))return t}catch(e){if(!cL(e=lun(e),102))throw Hp(e);n=e,uz((u$(),n))}return new ao}function Wkn(){var n,t;d7();try{if(t=BB(Xjn((WM(),zAt),S7n),2024))return t}catch(e){if(!cL(e=lun(e),102))throw Hp(e);n=e,uz((u$(),n))}return new Ds}function Vkn(){var n,t;qBn();try{if(t=BB(Xjn((WM(),zAt),V9n),1941))return t}catch(e){if(!cL(e=lun(e),102))throw Hp(e);n=e,uz((u$(),n))}return new qo}function Qkn(n,t,e){var i,r;return r=n.e,n.e=t,0!=(4&n.Db)&&0==(1&n.Db)&&(i=new nU(n,1,4,r,t),e?e.Ei(i):e=i),r!=t&&(e=azn(n,t?kLn(n,t):n.a,e)),e}function Ykn(){AT.call(this),this.e=-1,this.a=!1,this.p=_Vn,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=_Vn}function Jkn(n,t){var e,i,r;if(i=n.b.d.d,n.a||(i+=n.b.d.a),r=t.b.d.d,t.a||(r+=t.b.d.a),0==(e=Pln(i,r))){if(!n.a&&t.a)return-1;if(!t.a&&n.a)return 1}return e}function Zkn(n,t){var e,i,r;if(i=n.b.b.d,n.a||(i+=n.b.b.a),r=t.b.b.d,t.a||(r+=t.b.b.a),0==(e=Pln(i,r))){if(!n.a&&t.a)return-1;if(!t.a&&n.a)return 1}return e}function njn(n,t){var e,i,r;if(i=n.b.g.d,n.a||(i+=n.b.g.a),r=t.b.g.d,t.a||(r+=t.b.g.a),0==(e=Pln(i,r))){if(!n.a&&t.a)return-1;if(!t.a&&n.a)return 1}return e}function tjn(){tjn=O,Nat=WG(dq(dq(dq(new B2,(yMn(),Fat),(lWn(),yot)),Fat,Tot),Bat,Aot),Bat,oot),Dat=dq(dq(new B2,Fat,Jut),Fat,sot),xat=WG(new B2,Bat,fot)}function ejn(n){var t,e,i,r,c;for(t=BB(mMn(n,(hWn(),zft)),83),c=n.n,i=t.Cc().Kc();i.Ob();)(r=(e=BB(i.Pb(),306)).i).c+=c.a,r.d+=c.b,e.c?NDn(e):xDn(e);hon(n,zft,null)}function ijn(n,t,e){var i,r;switch(i=(r=n.b).d,t.g){case 1:return-i.d-e;case 2:return r.o.a+i.c+e;case 3:return r.o.b+i.a+e;case 4:return-i.b-e;default:return-1}}function rjn(n){var t,e,i,r,c;if(i=0,r=ZJn,n.b)for(t=0;t<360;t++)e=.017453292519943295*t,UKn(n,n.d,0,0,Z3n,e),(c=n.b.ig(n.d))<r&&(i=e,r=c);UKn(n,n.d,0,0,Z3n,i)}function cjn(n,t){var e,i,r,c;for(c=new xp,t.e=null,t.f=null,i=new Wb(t.i);i.a<i.c.c.length;)e=BB(n0(i),65),r=BB(RX(n.g,e.a),46),e.a=qz(e.b),VW(c,e.a,r);n.g=c}function ajn(n,t,e){var i,r,c,a,u;for(r=(t-n.e)/n.d.c.length,c=0,u=new Wb(n.d);u.a<u.c.c.length;)a=BB(n0(u),443),i=n.b-a.b+e,kdn(a,a.e+c*r,a.f),hmn(a,r,i),++c}function ujn(n){var t;if(n.f.qj(),-1!=n.b){if(++n.b,t=n.f.d[n.a],n.b<t.i)return;++n.a}for(;n.a<n.f.d.length;++n.a)if((t=n.f.d[n.a])&&0!=t.i)return void(n.b=0);n.b=-1}function ojn(n,t){var e,i,r;for(e=$Cn(n,0==(r=t.c.length)?"":(l1(0,t.c.length),SD(t.c[0]))),i=1;i<r&&e;++i)e=BB(e,49).oh((l1(i,t.c.length),SD(t.c[i])));return e}function sjn(n,t){var e,i;for(i=new Wb(t);i.a<i.c.c.length;)e=BB(n0(i),10),n.c[e.c.p][e.p].a=OG(n.i),n.c[e.c.p][e.p].d=Gy(n.c[e.c.p][e.p].a),n.c[e.c.p][e.p].b=1}function hjn(n,t){var i,r,c;for(c=0,r=new Wb(n);r.a<r.c.c.length;)i=BB(n0(r),157),c+=e.Math.pow(iG(i)*eG(i)-t,2);return e.Math.sqrt(c/(n.c.length-1))}function fjn(n,t,e,i){var r,c,a;return a=NRn(n,c=qRn(n,t,e,i)),fMn(n,t,e,i),K9(n.b),SQ(),m$(c,new Qd(n)),r=NRn(n,c),fMn(n,e,t,i),K9(n.b),new rI(iln(a),iln(r))}function ljn(n,t,e){var i;for(OTn(e,"Interactive node placement",1),n.a=BB(mMn(t,(hWn(),Alt)),304),i=new Wb(t.b);i.a<i.c.c.length;)nDn(n,BB(n0(i),29));HSn(e)}function bjn(n,t){OTn(t,"General Compactor",1),t.n&&n&&y0(t,o2(n),(Bsn(),uOt)),dwn(BB(ZAn(n,(Uyn(),Sjt)),380)).hg(n),t.n&&n&&y0(t,o2(n),(Bsn(),uOt))}function wjn(n,t,e){var i,r;for(CA(n,n.j+t,n.k+e),r=new AL((!n.a&&(n.a=new $L(xOt,n,5)),n.a));r.e!=r.i.gc();)TA(i=BB(kpn(r),469),i.a+t,i.b+e);PA(n,n.b+t,n.c+e)}function djn(n,t,e,i){switch(e){case 7:return!n.e&&(n.e=new hK(_Ot,n,7,4)),Ywn(n.e,t,i);case 8:return!n.d&&(n.d=new hK(_Ot,n,8,5)),Ywn(n.d,t,i)}return FTn(n,t,e,i)}function gjn(n,t,e,i){switch(e){case 7:return!n.e&&(n.e=new hK(_Ot,n,7,4)),_pn(n.e,t,i);case 8:return!n.d&&(n.d=new hK(_Ot,n,8,5)),_pn(n.d,t,i)}return run(n,t,e,i)}function pjn(n,t,e){var i,r,c;if(e)for(c=((i=new hz(e.a.length)).b-i.a)*i.c<0?(eS(),MNt):new XL(i);c.Ob();)(r=x2(e,BB(c.Pb(),19).a))&&bIn(n,r,t)}function vjn(n,t,e){var i,r,c;return n.qj(),c=null==t?0:nsn(t),n.f>0&&(r=aOn(n,(c&DWn)%n.d.length,c,t))?r.ed(e):(i=n.tj(c,t,e),n.c.Fc(i),null)}function mjn(n,t){var e,i,r,c;switch(Cfn(n,t)._k()){case 3:case 2:for(r=0,c=(e=YBn(t)).i;r<c;++r)if(5==DW(B7(n,i=BB(Wtn(e,r),34))))return i}return null}function yjn(n){var t,e,i,r,c;if(qT(n.f,n.b.length))for(i=x8(Qnt,CVn,330,2*n.b.length,0,1),n.b=i,r=i.length-1,e=n.a;e!=n;e=e.Rd())t=(c=BB(e,330)).d&r,c.a=i[t],i[t]=c}function kjn(n,t){var i,r,c,a;for(a=0,c=BB(BB(h6(n.r,t),21),84).Kc();c.Ob();)r=BB(c.Pb(),111),a=e.Math.max(a,r.e.a+r.b.rf().a);(i=BB(oV(n.b,t),124)).n.b=0,i.a.a=a}function jjn(n,t){var i,r,c,a;for(i=0,a=BB(BB(h6(n.r,t),21),84).Kc();a.Ob();)c=BB(a.Pb(),111),i=e.Math.max(i,c.e.b+c.b.rf().b);(r=BB(oV(n.b,t),124)).n.d=0,r.a.b=i}function Ejn(n){var t,e;return e=BB(mMn(n,(hWn(),Zft)),21),t=kA(vyt),e.Hc((bDn(),gft))&&Jcn(t,kyt),e.Hc(vft)&&Jcn(t,Eyt),e.Hc(sft)&&Jcn(t,myt),e.Hc(fft)&&Jcn(t,yyt),t}function Tjn(n,t){var e;OTn(t,"Delaunay triangulation",1),e=new Np,Otn(n.i,new yg(e)),qy(TD(mMn(n,(Xcn(),Qrt)))),n.e?Frn(n.e,$Xn(e)):n.e=$Xn(e),HSn(t)}function Mjn(n){if(n<0)throw Hp(new _y("The input must be positive"));return n<MMt.length?j2(MMt[n]):e.Math.sqrt(Z3n*n)*(ifn(n,n)/efn(2.718281828459045,n))}function Sjn(n,t){var e;if(n.ni()&&null!=t){for(e=0;e<n.i;++e)if(Nfn(t,n.g[e]))return!0}else for(e=0;e<n.i;++e)if(GI(n.g[e])===GI(t))return!0;return!1}function Pjn(n,t){if(null==t){for(;n.a.Ob();)if(null==BB(n.a.Pb(),42).dd())return!0}else for(;n.a.Ob();)if(Nfn(t,BB(n.a.Pb(),42).dd()))return!0;return!1}function Cjn(n,t){var e;return t===n||!!cL(t,664)&&(e=BB(t,1947),ign(n.g||(n.g=new Zf(n)),e.g||(e.g=new Zf(e))))}function Ijn(n){var t,i,r;for(t="Sz",i="ez",r=e.Math.min(n.length,5)-1;r>=0;r--)if(mK(n[r].d,t)||mK(n[r].d,i)){n.length>=r+1&&n.splice(0,r+1);break}return n}function Ojn(n,t){var i;return JO(n)&&JO(t)&&$Qn<(i=n/t)&&i<OQn?i<0?e.Math.ceil(i):e.Math.floor(i):uan(Aqn(JO(n)?Pan(n):n,JO(t)?Pan(t):t,!1))}function Ajn(n,t){if(t==n.c.i)return n.d.i;if(t==n.d.i)return n.c.i;throw Hp(new _y("'node' must either be the source node or target node of the edge."))}function $jn(n){var t,e,i,r;if(r=BB(mMn(n,(hWn(),Fft)),37)){for(i=new Gj,t=vW(n.c.i);t!=r;)t=vW(e=t.e),_x(UR(UR(i,e.n),t.c),t.d.b,t.d.d);return i}return Fut}function Ljn(n){var t;JT(wnn(new Rq(null,new w1((t=BB(mMn(n,(hWn(),Olt)),403)).d,16)),new _i),new wd(n)),JT(AV(new Rq(null,new w1(t.d,16)),new Fi),new dd(n))}function Njn(n,t){var e,i;for(e=new oz(ZL((t?lbn(n):fbn(n)).a.Kc(),new h));dAn(e);)if((i=Ajn(BB(U5(e),17),n)).k==(uSn(),Put)&&i.c!=n.c)return i;return null}function xjn(n){var t,i,r;for(i=new Wb(n.p);i.a<i.c.c.length;)(t=BB(n0(i),10)).k==(uSn(),Cut)&&(r=t.o.b,n.i=e.Math.min(n.i,r),n.g=e.Math.max(n.g,r))}function Djn(n,t,e){var i,r,c;for(c=new Wb(t);c.a<c.c.c.length;)i=BB(n0(c),10),n.c[i.c.p][i.p].e=!1;for(r=new Wb(t);r.a<r.c.c.length;)xzn(n,i=BB(n0(r),10),e)}function Rjn(n,t,i){var r,c;(r=Tfn(t.j,i.s,i.c)+Tfn(i.e,t.s,t.c))==(c=Tfn(i.j,t.s,t.c)+Tfn(t.e,i.s,i.c))?r>0&&(n.b+=2,n.a+=r):(n.b+=1,n.a+=e.Math.min(r,c))}function Kjn(n,t){var e;if(e=!1,XI(t)&&(e=!0,nW(n,new GX(SD(t)))),e||cL(t,236)&&(e=!0,nW(n,new Sl(XK(BB(t,236))))),!e)throw Hp(new Ly(H6n))}function _jn(n,t,e,i){var r,c,a;return r=new N7(n.e,1,10,cL(a=t.c,88)?BB(a,26):(gWn(),d$t),cL(c=e.c,88)?BB(c,26):(gWn(),d$t),uvn(n,t),!1),i?i.Ei(r):i=r,i}function Fjn(n){var t,e;switch(BB(mMn(vW(n),(HXn(),pgt)),420).g){case 0:return t=n.n,e=n.o,new xC(t.a+e.a/2,t.b+e.b/2);case 1:return new wA(n.n);default:return null}}function Bjn(){Bjn=O,Qht=new AP(QZn,0),Vht=new AP("LEFTUP",1),Jht=new AP("RIGHTUP",2),Wht=new AP("LEFTDOWN",3),Yht=new AP("RIGHTDOWN",4),Xht=new AP("BALANCED",5)}function Hjn(n,t,e){var i,r,c;if(0==(i=Pln(n.a[t.p],n.a[e.p]))){if(r=BB(mMn(t,(hWn(),clt)),15),c=BB(mMn(e,clt),15),r.Hc(e))return-1;if(c.Hc(t))return 1}return i}function qjn(n){switch(n.g){case 1:return new _a;case 2:return new Fa;case 3:return new Ka;case 0:return null;default:throw Hp(new _y(c4n+(null!=n.f?n.f:""+n.g)))}}function Gjn(n,t,e){switch(t){case 1:return!n.n&&(n.n=new eU(zOt,n,1,7)),sqn(n.n),!n.n&&(n.n=new eU(zOt,n,1,7)),void pX(n.n,BB(e,14));case 2:return void $in(n,SD(e))}rsn(n,t,e)}function zjn(n,t,e){switch(t){case 3:return void Men(n,Gy(MD(e)));case 4:return void Sen(n,Gy(MD(e)));case 5:return void Pen(n,Gy(MD(e)));case 6:return void Cen(n,Gy(MD(e)))}Gjn(n,t,e)}function Ujn(n,t,e){var i,r;(i=HTn(r=new Lm,t,null))&&i.Fi(),Nrn(r,e),f9((!n.c&&(n.c=new eU(YAt,n,12,10)),n.c),r),Len(r,0),Nen(r,1),nln(r,!0),Yfn(r,!0)}function Xjn(n,t){var e,i;return cL(e=hS(n.g,t),235)?((i=BB(e,235)).Qh(),i.Nh()):cL(e,498)?i=BB(e,1938).b:null}function Wjn(n,t,e,i){var r,c;return yX(t),yX(e),R7(!!(c=BB(UK(n.d,t),19)),"Row %s not in %s",t,n.e),R7(!!(r=BB(UK(n.b,e),19)),"Column %s not in %s",e,n.c),Sun(n,c.a,r.a,i)}function Vjn(n,t,e,i,r,c,a){var u,o,s,h,f;if(f=Bmn(u=(s=c==a-1)?i:0,h=r[c]),10!=i&&Pun(Gk(n,a-c),t[c],e[c],u,f),!s)for(++c,o=0;o<h;++o)f[o]=Vjn(n,t,e,i,r,c,a);return f}function Qjn(n){if(-1==n.g)throw Hp(new dv);n.mj();try{n.i.$c(n.g),n.f=n.i.j,n.g<n.e&&--n.e,n.g=-1}catch(t){throw cL(t=lun(t),73)?Hp(new vv):Hp(t)}}function Yjn(n,t){return n.b.a=e.Math.min(n.b.a,t.c),n.b.b=e.Math.min(n.b.b,t.d),n.a.a=e.Math.max(n.a.a,t.c),n.a.b=e.Math.max(n.a.b,t.d),n.c[n.c.length]=t,!0}function Jjn(n){var t,e,i;for(i=-1,e=0,t=new Wb(n);t.a<t.c.c.length;){if(BB(n0(t),243).c==(ain(),Hvt)){i=0==e?0:e-1;break}e==n.c.length-1&&(i=e),e+=1}return i}function Zjn(n){var t,i,r,c;for(c=0,t=0,r=new Wb(n.c);r.a<r.c.c.length;)Pen(i=BB(n0(r),33),n.e+c),Cen(i,n.f),c+=i.g+n.b,t=e.Math.max(t,i.f+n.b);n.d=c-n.b,n.a=t-n.b}function nEn(n){var t,e,i;for(e=new Wb(n.a.b);e.a<e.c.c.length;)i=(t=BB(n0(e),57)).d.c,t.d.c=t.d.d,t.d.d=i,i=t.d.b,t.d.b=t.d.a,t.d.a=i,i=t.b.a,t.b.a=t.b.b,t.b.b=i;yNn(n)}function tEn(n){var t,e,i;for(e=new Wb(n.a.b);e.a<e.c.c.length;)i=(t=BB(n0(e),81)).g.c,t.g.c=t.g.d,t.g.d=i,i=t.g.b,t.g.b=t.g.a,t.g.a=i,i=t.e.a,t.e.a=t.e.b,t.e.b=i;kNn(n)}function eEn(n){var t,e,i,r,c;for(c=gz(n.k),kUn(),i=0,r=(e=Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])).length;i<r;++i)if((t=e[i])!=PIt&&!c.Hc(t))return t;return null}function iEn(n,t){var e,i;return(i=BB(EN(Qon(AV(new Rq(null,new w1(t.j,16)),new bc))),11))&&(e=BB(xq(i.e,0),17))?BB(mMn(e,(hWn(),wlt)),19).a:gnn(n.b)}function rEn(n,t){var e,i,r;for(r=new Wb(t.a);r.a<r.c.c.length;)for(i=BB(n0(r),10),nk(n.d),e=new oz(ZL(lbn(i).a.Kc(),new h));dAn(e);)XOn(n,i,BB(U5(e),17).d.i)}function cEn(n,t){var e,i;for(y7(n.b,t),i=new Wb(n.n);i.a<i.c.c.length;)if(-1!=E7((e=BB(n0(i),211)).c,t,0)){y7(e.c,t),Zjn(e),0==e.c.c.length&&y7(n.n,e);break}fHn(n)}function aEn(n,t){var i,r,c,a,u;for(u=n.f,c=0,a=0,r=new Wb(n.a);r.a<r.c.c.length;)Tvn(i=BB(n0(r),187),n.e,u),p9(i,t),a=e.Math.max(a,i.r),c=u+=i.d+n.c;n.d=a,n.b=c}function uEn(n){var t,e;return h3(e=wLn(n))?null:(yX(e),t=BB(emn(new oz(ZL(e.a.Kc(),new h))),79),PTn(BB(Wtn((!t.b&&(t.b=new hK(KOt,t,4,7)),t.b),0),82)))}function oEn(n){return n.o||(n.Lj()?n.o=new aW(n,n,null):n.rk()?n.o=new rR(n,null):1==DW(B7((IPn(),Z$t),n))?n.o=new g4(n):n.o=new cR(n,null)),n.o}function sEn(n,t,e,i){var r,c,a,u,o;e.mh(t)&&(r=(a=t)?BB(i,49).xh(a):null)&&(o=e.ah(t),(u=t.t)>1||-1==u?(c=BB(o,15),r.Wb(Xdn(n,c))):r.Wb(t_n(n,BB(o,56))))}function hEn(n,t,e,i){YE();var r=PWn;function c(){for(var n=0;n<r.length;n++)r[n]()}if(n)try{HNt(c)()}catch(a){n(t,a)}else HNt(c)()}function fEn(n){var t,e,i,r,c;for(i=new usn(new Pb(n.b).a);i.b;)t=BB((e=ten(i)).cd(),10),c=BB(BB(e.dd(),46).a,10),r=BB(BB(e.dd(),46).b,8),UR(kO(t.n),UR(B$(c.n),r))}function lEn(n){switch(BB(mMn(n.b,(HXn(),egt)),375).g){case 1:JT($V(wnn(new Rq(null,new w1(n.d,16)),new _r),new Fr),new Br);break;case 2:vRn(n);break;case 0:CCn(n)}}function bEn(n,t,e){OTn(e,"Straight Line Edge Routing",1),e.n&&t&&y0(e,o2(t),(Bsn(),uOt)),mHn(n,BB(ZAn(t,(wD(),Vkt)),33)),e.n&&t&&y0(e,o2(t),(Bsn(),uOt))}function wEn(){wEn=O,ZMt=new RC("V_TOP",0),JMt=new RC("V_CENTER",1),YMt=new RC("V_BOTTOM",2),VMt=new RC("H_LEFT",3),WMt=new RC("H_CENTER",4),QMt=new RC("H_RIGHT",5)}function dEn(n){var t;return 0!=(64&n.Db)?Cwn(n):((t=new fN(Cwn(n))).a+=" (abstract: ",yE(t,0!=(256&n.Bb)),t.a+=", interface: ",yE(t,0!=(512&n.Bb)),t.a+=")",t.a)}function gEn(n,t,e,i){var r,c,a;return mA(n.e)&&(a=LY(n,1,r=t.ak(),t.dd(),c=e.dd(),r.$j()?pBn(n,r,c,cL(r,99)&&0!=(BB(r,18).Bb&BQn)):-1,!0),i?i.Ei(a):i=a),i}function pEn(n){var t;null==n.c&&(t=GI(n.b)===GI(Ynt)?null:n.b,n.d=null==t?zWn:ez(t)?jN(EQ(t)):XI(t)?qVn:nE(tsn(t)),n.a=n.a+": "+(ez(t)?CR(EQ(t)):t+""),n.c="("+n.d+") "+n.a)}function vEn(n,t){this.e=n,QI(e0(t,-4294967296),0)?(this.d=1,this.a=Pun(Gk(ANt,1),hQn,25,15,[dG(t)])):(this.d=2,this.a=Pun(Gk(ANt,1),hQn,25,15,[dG(t),dG(kz(t,32))]))}function mEn(){function n(){try{return(new Map).entries().next().done}catch(n){return!1}}return typeof Map===xWn&&Map.prototype.entries&&n()?Map:bUn()}function yEn(n,t){var e,i,r;for(r=new M2(n.e,0),e=0;r.b<r.d.gc();){if((i=Gy((Px(r.b<r.d.gc()),MD(r.d.Xb(r.c=r.b++))))-t)>D3n)return e;i>-1e-6&&++e}return e}function kEn(n,t){var e;t!=n.b?(e=null,n.b&&(e=oJ(n.b,n,-4,e)),t&&(e=Npn(t,n,-4,e)),(e=Zhn(n,t,e))&&e.Fi()):0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,3,t,t))}function jEn(n,t){var e;t!=n.f?(e=null,n.f&&(e=oJ(n.f,n,-1,e)),t&&(e=Npn(t,n,-1,e)),(e=nfn(n,t,e))&&e.Fi()):0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,0,t,t))}function EEn(n){var t,e,i;if(null==n)return null;if((e=BB(n,15)).dc())return"";for(i=new Sk,t=e.Kc();t.Ob();)cO(i,(Uqn(),SD(t.Pb()))),i.a+=" ";return KO(i,i.a.length-1)}function TEn(n){var t,e,i;if(null==n)return null;if((e=BB(n,15)).dc())return"";for(i=new Sk,t=e.Kc();t.Ob();)cO(i,(Uqn(),SD(t.Pb()))),i.a+=" ";return KO(i,i.a.length-1)}function MEn(n,t,e){var i,r;return i=n.c[t.c.p][t.p],r=n.c[e.c.p][e.p],null!=i.a&&null!=r.a?Tz(i.a,r.a):null!=i.a?-1:null!=r.a?1:0}function SEn(n,t){var e,i,r;if(t)for(r=((e=new hz(t.a.length)).b-e.a)*e.c<0?(eS(),MNt):new XL(e);r.Ob();)i=x2(t,BB(r.Pb(),19).a),OV(new Bg(n).a,i)}function PEn(n,t){var e,i,r;if(t)for(r=((e=new hz(t.a.length)).b-e.a)*e.c<0?(eS(),MNt):new XL(e);r.Ob();)i=x2(t,BB(r.Pb(),19).a),IV(new $g(n).a,i)}function CEn(n){if(null!=n&&n.length>0&&33==fV(n,n.length-1))try{return null==YPn(fx(n,0,n.length-1)).e}catch(t){if(!cL(t=lun(t),32))throw Hp(t)}return!1}function IEn(n,t,e){var i,r,c;return i=t.ak(),c=t.dd(),r=i.$j()?LY(n,3,i,null,c,pBn(n,i,c,cL(i,99)&&0!=(BB(i,18).Bb&BQn)),!0):LY(n,1,i,i.zj(),c,-1,!0),e?e.Ei(r):e=r,e}function OEn(){var n,t,e;for(t=0,n=0;n<"X".length;n++){if(0==(e=QOn((b1(n,"X".length),"X".charCodeAt(n)))))throw Hp(new ak("Unknown Option: "+"X".substr(n)));t|=e}return t}function AEn(n,t,e){var i,r;switch(i=Wln(vW(t)),CZ(r=new CSn,t),e.g){case 1:qCn(r,Tln(hwn(i)));break;case 2:qCn(r,hwn(i))}return hon(r,(HXn(),tpt),MD(mMn(n,tpt))),r}function $En(n){var t,e;return t=BB(U5(new oz(ZL(fbn(n.a).a.Kc(),new h))),17),e=BB(U5(new oz(ZL(lbn(n.a).a.Kc(),new h))),17),qy(TD(mMn(t,(hWn(),Clt))))||qy(TD(mMn(e,Clt)))}function LEn(){LEn=O,Mst=new yP("ONE_SIDE",0),Pst=new yP("TWO_SIDES_CORNER",1),Cst=new yP("TWO_SIDES_OPPOSING",2),Sst=new yP("THREE_SIDES",3),Tst=new yP("FOUR_SIDES",4)}function NEn(n,t,e,i,r){var c,a;c=BB(P4(AV(t.Oc(),new Zr),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15),a=BB(gan(n.b,e,i),15),0==r?a.Wc(0,c):a.Gc(c)}function xEn(n,t){var e,i,r;for(i=new Wb(t.a);i.a<i.c.c.length;)for(e=new oz(ZL(fbn(BB(n0(i),10)).a.Kc(),new h));dAn(e);)r=BB(U5(e),17).c.i.p,n.n[r]=n.n[r]-1}function DEn(n,t){var e,i,r,c;for(r=new Wb(t.d);r.a<r.c.c.length;)for(i=BB(n0(r),101),c=BB(RX(n.c,i),112).o,e=new QT(i.b);e.a<e.c.a.length;)g9(i,BB(u4(e),61),c)}function REn(n){var t;for(t=new Wb(n.e.b);t.a<t.c.c.length;)hzn(n,BB(n0(t),29));JT(AV(wnn(wnn(new Rq(null,new w1(n.e.b,16)),new Xc),new Zc),new na),new hg(n))}function KEn(n,t){return!!t&&!n.Di(t)&&(n.i?n.i.Ei(t):cL(t,143)?(n.i=BB(t,143),!0):(n.i=new po,n.i.Ei(t)))}function _En(n){if(n=FBn(n,!0),mK(a5n,n)||mK("1",n))return hN(),vtt;if(mK(u5n,n)||mK("0",n))return hN(),ptt;throw Hp(new ik("Invalid boolean value: '"+n+"'"))}function FEn(n,t,e){var i,r,c;for(r=n.vc().Kc();r.Ob();)if(c=(i=BB(r.Pb(),42)).cd(),GI(t)===GI(c)||null!=t&&Nfn(t,c))return e&&(i=new PS(i.cd(),i.dd()),r.Qb()),i;return null}function BEn(n){var t,e,i;qD(),n.B.Hc((n_n(),qIt))&&(i=n.f.i,t=new gY(n.a.c),(e=new bm).b=t.c-i.c,e.d=t.d-i.d,e.c=i.c+i.b-(t.c+t.b),e.a=i.d+i.a-(t.d+t.a),n.e.Ff(e))}function HEn(n,t,i,r){var c,a,u;for(u=e.Math.min(i,WFn(BB(n.b,65),t,i,r)),a=new Wb(n.a);a.a<a.c.c.length;)(c=BB(n0(a),221))!=t&&(u=e.Math.min(u,HEn(c,t,u,r)));return u}function qEn(n){var t,e,i;for(i=x8(Out,sVn,193,n.b.c.length,0,2),e=new M2(n.b,0);e.b<e.d.gc();)Px(e.b<e.d.gc()),t=BB(e.d.Xb(e.c=e.b++),29),i[e.b-1]=n2(t.a);return i}function GEn(n,t,e,i,r){var c,a,u,o;for(a=nj(Zk(H_(tvn(e)),i),akn(n,e,r)),o=DSn(n,e).Kc();o.Ob();)t[(u=BB(o.Pb(),11)).p]&&(c=t[u.p].i,WB(a.d,new xG(c,kln(a,c))));Pwn(a)}function zEn(n,t){this.f=new xp,this.b=new xp,this.j=new xp,this.a=n,this.c=t,this.c>0&&_yn(this,this.c-1,(kUn(),oIt)),this.c<this.a.length-1&&_yn(this,this.c+1,(kUn(),CIt))}function UEn(n){n.length>0&&n[0].length>0&&(this.c=qy(TD(mMn(vW(n[0][0]),(hWn(),alt))))),this.a=x8(Pmt,sVn,2018,n.length,0,2),this.b=x8(Lmt,sVn,2019,n.length,0,2),this.d=new Thn}function XEn(n){return 0!=n.c.length&&((l1(0,n.c.length),BB(n.c[0],17)).c.i.k==(uSn(),Put)||o5($V(new Rq(null,new w1(n,16)),new Kc),new _c))}function WEn(n,t,e){return OTn(e,"Tree layout",1),h2(n.b),CU(n.b,(zyn(),Ryt),Ryt),CU(n.b,Kyt,Kyt),CU(n.b,_yt,_yt),CU(n.b,Fyt,Fyt),n.a=$qn(n.b,t),lxn(n,t,mcn(e,1)),HSn(e),t}function VEn(n,t){var i,r,c,a,u,o;for(u=wDn(t),c=t.f,o=t.g,a=e.Math.sqrt(c*c+o*o),r=0,i=new Wb(u);i.a<i.c.c.length;)r+=VEn(n,BB(n0(i),33));return e.Math.max(r,a)}function QEn(){QEn=O,YCt=new UC(hJn,0),QCt=new UC("FREE",1),VCt=new UC("FIXED_SIDE",2),UCt=new UC("FIXED_ORDER",3),WCt=new UC("FIXED_RATIO",4),XCt=new UC("FIXED_POS",5)}function YEn(n,t){var e,i,r;if(e=t.Hh(n.a))for(r=SD(cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),T7n)),i=1;i<(IPn(),nLt).length;++i)if(mK(nLt[i],r))return i;return 0}function JEn(n){var t,e,i,r;if(null==n)return zWn;for(r=new $an(FWn,"[","]"),e=0,i=(t=n).length;e<i;++e)b6(r,""+t[e]);return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function ZEn(n){var t,e,i,r;if(null==n)return zWn;for(r=new $an(FWn,"[","]"),e=0,i=(t=n).length;e<i;++e)b6(r,""+t[e]);return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function nTn(n){var t,e,i;for(i=new $an(FWn,"{","}"),e=n.vc().Kc();e.Ob();)b6(i,W3(n,(t=BB(e.Pb(),42)).cd())+"="+W3(n,t.dd()));return i.a?0==i.e.length?i.a.a:i.a.a+""+i.e:i.c}function tTn(n){for(var t,e,i,r;!Wy(n.o);)e=BB(dU(n.o),46),i=BB(e.a,121),r=Nbn(t=BB(e.b,213),i),t.e==i?(RN(r.g,t),i.e=r.e+t.a):(RN(r.b,t),i.e=r.e-t.a),WB(n.e.a,i)}function eTn(n,t){var e,i,r;for(e=null,r=BB(t.Kb(n),20).Kc();r.Ob();)if(i=BB(r.Pb(),17),e){if((i.c.i==n?i.d.i:i.c.i)!=e)return!1}else e=i.c.i==n?i.d.i:i.c.i;return!0}function iTn(n,t){var e,i,r;for(i=new Wb(QLn(n,!1,t));i.a<i.c.c.length;)0==(e=BB(n0(i),129)).d?(WZ(e,null),VZ(e,null)):(r=e.a,WZ(e,e.b),VZ(e,r))}function rTn(n){var t,e;return Jcn(t=new B2,Cyt),(e=BB(mMn(n,(hWn(),Zft)),21)).Hc((bDn(),vft))&&Jcn(t,$yt),e.Hc(sft)&&Jcn(t,Iyt),e.Hc(gft)&&Jcn(t,Ayt),e.Hc(fft)&&Jcn(t,Oyt),t}function cTn(n){var t,e,i,r;for(Sqn(n),e=new oz(ZL(hbn(n).a.Kc(),new h));dAn(e);)r=(i=(t=BB(U5(e),17)).c.i==n)?t.d:t.c,i?MZ(t,null):SZ(t,null),hon(t,(hWn(),mlt),r),uAn(n,r.i)}function aTn(n,t,e,i){var r,c;switch(r=e[(c=t.i).g][n.d[c.g]],c.g){case 1:r-=i+t.j.b,t.g.b=r;break;case 3:r+=i,t.g.b=r;break;case 4:r-=i+t.j.a,t.g.a=r;break;case 2:r+=i,t.g.a=r}}function uTn(n){var t,e;for(e=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));e.e!=e.i.gc();)if(!dAn(new oz(ZL(wLn(t=BB(kpn(e),33)).a.Kc(),new h))))return t;return null}function oTn(){var n;return WOt?BB($$n((WM(),zAt),y6n),2016):(n=BB(cL(SJ((WM(),zAt),y6n),555)?SJ(zAt,y6n):new sAn,555),WOt=!0,_Gn(n),jWn(n),Tyn(n),mZ(zAt,y6n,n),n)}function sTn(n,t,e){var i,r;if(0==n.j)return e;if(r=BB(_en(n,t,e),72),!(i=e.ak()).Ij()||!n.a.rl(i))throw Hp(new dy("Invalid entry feature '"+i.Hj().zb+"."+i.ne()+"'"));return r}function hTn(n,t){var e,i,r,c,a,u,o;for(u=0,o=(a=n.a).length;u<o;++u)for(r=0,c=(i=a[u]).length;r<c;++r)if(e=i[r],GI(t)===GI(e)||null!=t&&Nfn(t,e))return!0;return!1}function fTn(n){var t,e,i;return Vhn(n,0)>=0?(e=Ojn(n,AQn),i=ldn(n,AQn)):(e=Ojn(t=jz(n,1),5e8),i=rbn(yz(i=ldn(t,5e8),1),e0(n,1))),i0(yz(i,32),e0(e,UQn))}function lTn(n,t,e){var i;switch(Px(0!=t.b),i=BB(Atn(t,t.a.a),8),e.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 nX(spn(t,0),i),t}function bTn(n,t,e,i){var r,c,a,u,o;switch(o=n.b,u=zgn(a=(c=t.d).j,o.d[a.g],e),r=UR(B$(c.n),c.a),c.j.g){case 1:case 3:u.a+=r.a;break;case 2:case 4:u.b+=r.b}r5(i,u,i.c.b,i.c)}function wTn(n,t,e){var i,r,c,a;for(a=E7(n.e,t,0),(c=new rm).b=e,i=new M2(n.e,a);i.b<i.d.gc();)Px(i.b<i.d.gc()),(r=BB(i.d.Xb(i.c=i.b++),10)).p=e,WB(c.e,r),fW(i);return c}function dTn(n,t,e,i){var r,c,a,u,o;for(r=null,c=0,u=new Wb(t);u.a<u.c.c.length;)o=(a=BB(n0(u),33)).i+a.g,n<a.j+a.f+i&&(r?e.i-o<e.i-c&&(r=a):r=a,c=r.i+r.g);return r?c+i:0}function gTn(n,t,e,i){var r,c,a,u,o;for(c=null,r=0,u=new Wb(t);u.a<u.c.c.length;)o=(a=BB(n0(u),33)).j+a.f,n<a.i+a.g+i&&(c?e.j-o<e.j-r&&(c=a):c=a,r=c.j+c.f);return c?r+i:0}function pTn(n){var t,e,i;for(t=!1,i=n.b.c.length,e=0;e<i;e++)Yon(BB(xq(n.b,e),434))?!t&&e+1<i&&Yon(BB(xq(n.b,e+1),434))&&(t=!0,BB(xq(n.b,e),434).a=!0):t=!1}function vTn(n,t,e,i,r){var c,a;for(c=0,a=0;a<r;a++)c=rbn(c,ibn(e0(t[a],UQn),e0(i[a],UQn))),n[a]=dG(c),c=kz(c,32);for(;a<e;a++)c=rbn(c,e0(t[a],UQn)),n[a]=dG(c),c=kz(c,32)}function mTn(n,t){var e,i;for($On(),ODn(),i=Jtt,e=n;t>1;t>>=1)0!=(1&t)&&(i=Nnn(i,e)),e=1==e.d?Nnn(e,e):new Cgn(I_n(e.a,e.d,x8(ANt,hQn,25,e.d<<1,15,1)));return i=Nnn(i,e)}function yTn(){var n,t,e,i;for(yTn=O,Oet=x8(xNt,qQn,25,25,15,1),Aet=x8(xNt,qQn,25,33,15,1),i=152587890625e-16,t=32;t>=0;t--)Aet[t]=i,i*=.5;for(e=1,n=24;n>=0;n--)Oet[n]=e,e*=.5}function kTn(n){var t,e;if(qy(TD(ZAn(n,(HXn(),wgt)))))for(e=new oz(ZL(dLn(n).a.Kc(),new h));dAn(e);)if(QIn(t=BB(U5(e),79))&&qy(TD(ZAn(t,dgt))))return!0;return!1}function jTn(n,t){var e,i,r;TU(n.f,t)&&(t.b=n,i=t.c,-1!=E7(n.j,i,0)||WB(n.j,i),r=t.d,-1!=E7(n.j,r,0)||WB(n.j,r),0!=(e=t.a.b).c.length&&(!n.i&&(n.i=new epn(n)),van(n.i,e)))}function ETn(n){var t,e,i,r;return(e=(t=n.c.d).j)==(r=(i=n.d.d).j)?t.p<i.p?0:1:Mln(e)==r?0:Eln(e)==r?1:SN(n.b.b,Mln(e))?0:1}function TTn(){TTn=O,tvt=new RP(j3n,0),Zpt=new RP("LONGEST_PATH",1),Ypt=new RP("COFFMAN_GRAHAM",2),Jpt=new RP(B1n,3),evt=new RP("STRETCH_WIDTH",4),nvt=new RP("MIN_WIDTH",5)}function MTn(n){var t;this.d=new xp,this.c=n.c,this.e=n.d,this.b=n.b,this.f=new sG(n.e),this.a=n.a,n.f?this.g=n.f:this.g=new YK(t=BB(Vj(aAt),9),BB(SR(t,t.length),9),0)}function STn(n,t){var e,i,r,c;!(r=D2(i=n,"layoutOptions"))&&(r=D2(i,M6n)),r&&(e=null,(c=r)&&(e=new TT(c,jrn(c,x8(Qtt,sVn,2,0,6,1)))),e&&e5(e,new wI(c,t)))}function PTn(n){if(cL(n,239))return BB(n,33);if(cL(n,186))return WJ(BB(n,118));throw Hp(n?new tk("Only support nodes and ports."):new Hy(e8n))}function CTn(n,t,e,i){return t>=0&&mK(n.substr(t,"GMT".length),"GMT")||t>=0&&mK(n.substr(t,"UTC".length),"UTC")?(e[0]=t+3,y_n(n,e,i)):y_n(n,e,i)}function ITn(n,t){var e,i,r,c,a;for(c=n.g.a,a=n.g.b,i=new Wb(n.d);i.a<i.c.c.length;)(r=(e=BB(n0(i),70)).n).a=c,n.i==(kUn(),sIt)?r.b=a+n.j.b-e.o.b:r.b=a,UR(r,t),c+=e.o.a+n.e}function OTn(n,t,e){if(n.b)throw Hp(new Fy("The task is already done."));return null==n.p&&(n.p=t,n.r=e,n.k&&(n.o=($T(),cbn(fan(Date.now()),VVn))),!0)}function ATn(n){var t;return t=new py,null!=n.tg()&&AH(t,q6n,n.tg()),null!=n.ne()&&AH(t,t8n,n.ne()),null!=n.sg()&&AH(t,"description",n.sg()),t}function $Tn(n,t,e){var i,r,c;return c=n.q,n.q=t,0!=(4&n.Db)&&0==(1&n.Db)&&(r=new nU(n,1,9,c,t),e?e.Ei(r):e=r),t?(i=t.c)!=n.r&&(e=n.nk(i,e)):n.r&&(e=n.nk(null,e)),e}function LTn(n,t,e){var i,r;for(e=Npn(t,n.e,-1-n.c,e),r=new Mp(new usn(new Pb(xW(n.a).a).a));r.a.b;)e=azn(i=BB(ten(r.a).cd(),87),kLn(i,n.a),e);return e}function NTn(n,t,e){var i,r;for(e=oJ(t,n.e,-1-n.c,e),r=new Mp(new usn(new Pb(xW(n.a).a).a));r.a.b;)e=azn(i=BB(ten(r.a).cd(),87),kLn(i,n.a),e);return e}function xTn(n,t,e,i){var r,c,a;if(0==i)aHn(t,0,n,e,n.length-e);else for(a=32-i,n[n.length-1]=0,c=n.length-1;c>e;c--)n[c]|=t[c-e-1]>>>a,n[c-1]=t[c-e-1]<<i;for(r=0;r<e;r++)n[r]=0}function DTn(n){var t,i,r,c,a;for(t=0,i=0,a=n.Kc();a.Ob();)r=BB(a.Pb(),111),t=e.Math.max(t,r.d.b),i=e.Math.max(i,r.d.c);for(c=n.Kc();c.Ob();)(r=BB(c.Pb(),111)).d.b=t,r.d.c=i}function RTn(n){var t,i,r,c,a;for(i=0,t=0,a=n.Kc();a.Ob();)r=BB(a.Pb(),111),i=e.Math.max(i,r.d.d),t=e.Math.max(t,r.d.a);for(c=n.Kc();c.Ob();)(r=BB(c.Pb(),111)).d.d=i,r.d.a=t}function KTn(n,t){var e,i,r,c;for(c=new Np,r=0,i=t.Kc();i.Ob();){for(e=iln(BB(i.Pb(),19).a+r);e.a<n.f&&!tG(n,e.a);)e=iln(e.a+1),++r;if(e.a>=n.f)break;c.c[c.c.length]=e}return c}function _Tn(n){var t,e,i,r;for(t=null,r=new Wb(n.wf());r.a<r.c.c.length;)e=new UV((i=BB(n0(r),181)).qf().a,i.qf().b,i.rf().a,i.rf().b),t?CPn(t,e):t=e;return!t&&(t=new bA),t}function FTn(n,t,e,i){return 1==e?(!n.n&&(n.n=new eU(zOt,n,1,7)),Ywn(n.n,t,i)):BB(itn(BB(yan(n,16),26)||n.zh(),e),66).Nj().Qj(n,fgn(n),e-bX(n.zh()),t,i)}function BTn(n,t,e){var i,r,c,a,u;for(i=e.gc(),n.qi(n.i+i),(u=n.i-t)>0&&aHn(n.g,t,n.g,t+i,u),a=e.Kc(),n.i+=i,r=0;r<i;++r)c=a.Pb(),jL(n,t,n.oi(t,c)),n.bi(t,c),n.ci(),++t;return 0!=i}function HTn(n,t,e){var i;return t!=n.q?(n.q&&(e=oJ(n.q,n,-10,e)),t&&(e=Npn(t,n,-10,e)),e=$Tn(n,t,e)):0!=(4&n.Db)&&0==(1&n.Db)&&(i=new nU(n,1,9,t,t),e?e.Ei(i):e=i),e}function qTn(n,t,e,i){return C_(0==(e&hVn),"flatMap does not support SUBSIZED characteristic"),C_(0==(4&e),"flatMap does not support SORTED characteristic"),yX(n),yX(t),new q2(n,e,i,t)}function GTn(n,t){SU(t,"Cannot suppress a null exception."),vH(t!=n,"Exception can not suppress itself."),n.i||(null==n.k?n.k=Pun(Gk(Jnt,1),sVn,78,0,[t]):n.k[n.k.length]=t)}function zTn(n,t,e,i){var r,c,a,u,o,s;for(a=e.length,c=0,r=-1,s=atn(n.substr(t),(c_(),Tet)),u=0;u<a;++u)(o=e[u].length)>c&&sU(s,atn(e[u],Tet))&&(r=u,c=o);return r>=0&&(i[0]=t+c),r}function UTn(n,t){var e;if(0!=(e=YO(n.b.Hf(),t.b.Hf())))return e;switch(n.b.Hf().g){case 1:case 2:return E$(n.b.sf(),t.b.sf());case 3:case 4:return E$(t.b.sf(),n.b.sf())}return 0}function XTn(n){var t,e,i;for(i=n.e.c.length,n.a=kq(ANt,[sVn,hQn],[48,25],15,[i,i],2),e=new Wb(n.c);e.a<e.c.c.length;)t=BB(n0(e),282),n.a[t.c.b][t.d.b]+=BB(mMn(t,(fRn(),Zct)),19).a}function WTn(n,t,e){OTn(e,"Grow Tree",1),n.b=t.f,qy(TD(mMn(t,(Xcn(),Qrt))))?(n.c=new it,QZ(n,null)):n.c=new it,n.a=!1,FNn(n,t.f),hon(t,Yrt,(hN(),!!n.a)),HSn(e)}function VTn(n,t){var e,i,r,c,a;if(null==n)return null;for(a=x8(ONt,WVn,25,2*t,15,1),i=0,r=0;i<t;++i)e=n[i]>>4&15,c=15&n[i],a[r++]=OOt[e],a[r++]=OOt[c];return Bdn(a,0,a.length)}function QTn(n,t,e){var i,r,c;return i=t.ak(),c=t.dd(),r=i.$j()?LY(n,4,i,c,null,pBn(n,i,c,cL(i,99)&&0!=(BB(i,18).Bb&BQn)),!0):LY(n,i.Kj()?2:1,i,c,i.zj(),-1,!0),e?e.Ei(r):e=r,e}function YTn(n){var t,e;return n>=BQn?(t=HQn+(n-BQn>>10&1023)&QVn,e=56320+(n-BQn&1023)&QVn,String.fromCharCode(t)+""+String.fromCharCode(e)):String.fromCharCode(n&QVn)}function JTn(n,t){var e,i,r,c;return qD(),(r=BB(BB(h6(n.r,t),21),84)).gc()>=2&&(i=BB(r.Kc().Pb(),111),e=n.u.Hc((lIn(),tIt)),c=n.u.Hc(cIt),!i.a&&!e&&(2==r.gc()||c))}function ZTn(n,t,e,i,r){var c,a,u;for(c=eDn(n,t,e,i,r),u=!1;!c;)E$n(n,r,!0),u=!0,c=eDn(n,t,e,i,r);u&&E$n(n,r,!1),0!=(a=Dun(r)).c.length&&(n.d&&n.d.lg(a),ZTn(n,r,e,i,a))}function nMn(){nMn=O,aCt=new BC(QZn,0),rCt=new BC("DIRECTED",1),uCt=new BC("UNDIRECTED",2),eCt=new BC("ASSOCIATION",3),cCt=new BC("GENERALIZATION",4),iCt=new BC("DEPENDENCY",5)}function tMn(n,t){var e;if(!WJ(n))throw Hp(new Fy(F5n));switch(e=WJ(n),t.g){case 1:return-(n.j+n.f);case 2:return n.i-e.g;case 3:return n.j-e.f;case 4:return-(n.i+n.g)}return 0}function eMn(n,t){var e,i;for(kW(t),i=n.b.c.length,WB(n.b,t);i>0;){if(e=i,i=(i-1)/2|0,n.a.ue(xq(n.b,i),t)<=0)return c5(n.b,e,t),!0;c5(n.b,e,xq(n.b,i))}return c5(n.b,i,t),!0}function iMn(n,t,i,r){var c,a;if(c=0,i)c=mhn(n.a[i.g][t.g],r);else for(a=0;a<nrt;a++)c=e.Math.max(c,mhn(n.a[a][t.g],r));return t==(Dtn(),zit)&&n.b&&(c=e.Math.max(c,n.b.a)),c}function rMn(n,t){var e,i,r,c,a;return i=n.i,r=t.i,!(!i||!r)&&i.i==r.i&&i.i!=(kUn(),oIt)&&i.i!=(kUn(),CIt)&&(e=(c=i.g.a)+i.j.a,c<=(a=r.g.a)+r.j.a&&e>=a)}function cMn(n,t,e,i){var r;if(r=!1,XI(i)&&(r=!0,AH(t,e,SD(i))),r||zI(i)&&(r=!0,cMn(n,t,e,i)),r||cL(i,236)&&(r=!0,qQ(t,e,BB(i,236))),!r)throw Hp(new Ly(H6n))}function aMn(n,t){var e,i,r;if((e=t.Hh(n.a))&&null!=(r=cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),F9n)))for(i=1;i<(IPn(),Y$t).length;++i)if(mK(Y$t[i],r))return i;return 0}function uMn(n,t){var e,i,r;if((e=t.Hh(n.a))&&null!=(r=cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),F9n)))for(i=1;i<(IPn(),J$t).length;++i)if(mK(J$t[i],r))return i;return 0}function oMn(n,t){var e,i,r,c;if(kW(t),(c=n.a.gc())<t.gc())for(e=n.a.ec().Kc();e.Ob();)i=e.Pb(),t.Hc(i)&&e.Qb();else for(r=t.Kc();r.Ob();)i=r.Pb(),n.a.Bc(i);return c!=n.a.gc()}function sMn(n){var t,e;switch(e=B$(Aon(Pun(Gk(PMt,1),sVn,8,0,[n.i.n,n.n,n.a]))),t=n.i.d,n.j.g){case 1:e.b-=t.d;break;case 2:e.a+=t.c;break;case 3:e.b+=t.a;break;case 4:e.a-=t.b}return e}function hMn(n){var t;for(Irn(),t=BB(U5(new oz(ZL(fbn(n).a.Kc(),new h))),17).c.i;t.k==(uSn(),Put);)hon(t,(hWn(),olt),(hN(),!0)),t=BB(U5(new oz(ZL(fbn(t).a.Kc(),new h))),17).c.i}function fMn(n,t,e,i){var r,c,a;for(a=Lfn(t,i).Kc();a.Ob();)r=BB(a.Pb(),11),n.d[r.p]=n.d[r.p]+n.c[e.p];for(c=Lfn(e,i).Kc();c.Ob();)r=BB(c.Pb(),11),n.d[r.p]=n.d[r.p]-n.c[t.p]}function lMn(n,t,e){var i,r;for(r=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));r.e!=r.i.gc();)SA(i=BB(kpn(r),33),i.i+t,i.j+e);e5((!n.b&&(n.b=new eU(_Ot,n,12,3)),n.b),new tI(t,e))}function bMn(n,t,e,i){var r,c;for(r=null==(c=t).d||n.a.ue(e.d,c.d)>0?1:0;c.a[r]!=e;)c=c.a[r],r=n.a.ue(e.d,c.d)>0?1:0;c.a[r]=i,i.b=e.b,i.a[0]=e.a[0],i.a[1]=e.a[1],e.a[0]=null,e.a[1]=null}function wMn(n){return lIn(),!(Can(OJ(EG(eIt,Pun(Gk(IIt,1),$Vn,273,0,[rIt])),n))>1||Can(OJ(EG(tIt,Pun(Gk(IIt,1),$Vn,273,0,[nIt,cIt])),n))>1)}function dMn(n,t){cL(SJ((WM(),zAt),n),498)?mZ(zAt,n,new OI(this,t)):mZ(zAt,n,this),iSn(this,t),t==(iE(),n$t)?(this.wb=BB(this,1939),BB(t,1941)):this.wb=(QX(),t$t)}function gMn(n){var t,e;if(null==n)return null;for(t=null,e=0;e<IOt.length;++e)try{return BM(IOt[e],n)}catch(i){if(!cL(i=lun(i),32))throw Hp(i);t=i}throw Hp(new L7(t))}function pMn(){pMn=O,pet=Pun(Gk(Qtt,1),sVn,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),vet=Pun(Gk(Qtt,1),sVn,2,6,["Jan","Feb","Mar","Apr",tQn,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])}function vMn(n){var t,e,i;(t=mK(typeof t,gYn)?null:new ln)&&(lM(),tW(e=(i=900)>=VVn?"error":i>=900?"warn":i>=800?"info":"log",n.a),n.b&&xNn(t,e,n.b,"Exception: ",!0))}function mMn(n,t){var e,i;return!n.q&&(n.q=new xp),null!=(i=RX(n.q,t))?i:(cL(e=t.wg(),4)&&(null==e?(!n.q&&(n.q=new xp),v6(n.q,t)):(!n.q&&(n.q=new xp),VW(n.q,t,e))),e)}function yMn(){yMn=O,Rat=new VS("P1_CYCLE_BREAKING",0),Kat=new VS("P2_LAYERING",1),_at=new VS("P3_NODE_ORDERING",2),Fat=new VS("P4_NODE_PLACEMENT",3),Bat=new VS("P5_EDGE_ROUTING",4)}function kMn(n,t){var e,i,r,c;for(i=(1==t?Wat:Xat).a.ec().Kc();i.Ob();)for(e=BB(i.Pb(),103),c=BB(h6(n.f.c,e),21).Kc();c.Ob();)r=BB(c.Pb(),46),y7(n.b.b,r.b),y7(n.b.a,BB(r.b,81).d)}function jMn(n,t){var e;if(Dnn(),n.c==t.c){if(n.b==t.b||hcn(n.b,t.b)){if(e=ZO(n.b)?1:-1,n.a&&!t.a)return e;if(!n.a&&t.a)return-e}return E$(n.b.g,t.b.g)}return Pln(n.c,t.c)}function EMn(n,t){var e;OTn(t,"Hierarchical port position processing",1),(e=n.b).c.length>0&&i_n((l1(0,e.c.length),BB(e.c[0],29)),n),e.c.length>1&&i_n(BB(xq(e,e.c.length-1),29),n),HSn(t)}function TMn(n,t){var e,i;if(NMn(n,t))return!0;for(i=new Wb(t);i.a<i.c.c.length;){if(_Dn(n,e=BB(n0(i),33),uEn(e)))return!0;if($hn(n,e)-n.g<=n.a)return!0}return!1}function MMn(){MMn=O,bRn(),kTt=RTt,vTt=LTt,pTt=ATt,dTt=PTt,gTt=ITt,wTt=new WA(8),bTt=new XA((sWn(),XSt),wTt),mTt=new XA(LPt,8),yTt=xTt,hTt=jTt,fTt=TTt,lTt=new XA(lSt,(hN(),!1))}function SMn(){SMn=O,zMt=new WA(15),GMt=new XA((sWn(),XSt),zMt),XMt=new XA(LPt,15),UMt=new XA(pPt,iln(0)),_Mt=jSt,BMt=KSt,qMt=qSt,DMt=new XA(cSt,f5n),FMt=CSt,HMt=BSt,RMt=uSt,KMt=hSt}function PMn(n){if(1!=(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b).i||1!=(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c).i)throw Hp(new _y(r8n));return PTn(BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82))}function CMn(n){if(1!=(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b).i||1!=(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c).i)throw Hp(new _y(r8n));return bun(BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82))}function IMn(n){if(1!=(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b).i||1!=(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c).i)throw Hp(new _y(r8n));return bun(BB(Wtn((!n.c&&(n.c=new hK(KOt,n,5,8)),n.c),0),82))}function OMn(n){if(1!=(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b).i||1!=(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c).i)throw Hp(new _y(r8n));return PTn(BB(Wtn((!n.c&&(n.c=new hK(KOt,n,5,8)),n.c),0),82))}function AMn(n,t,e){var i,r,c;if(++n.j,t>=(r=n.Vi())||t<0)throw Hp(new Ay(u8n+t+o8n+r));if(e>=r||e<0)throw Hp(new Ay(s8n+e+o8n+r));return t!=e?(c=n.Ti(e),n.Hi(t,c),i=c):i=n.Oi(e),i}function $Mn(n){var t,e,i;if(i=n,n)for(t=0,e=n.Ug();e;e=e.Ug()){if(++t>GQn)return $Mn(e);if(i=e,e==n)throw Hp(new Fy("There is a cycle in the containment hierarchy of "+n))}return i}function LMn(n){var t,e,i;for(i=new $an(FWn,"[","]"),e=n.Kc();e.Ob();)b6(i,GI(t=e.Pb())===GI(n)?"(this Collection)":null==t?zWn:Bbn(t));return i.a?0==i.e.length?i.a.a:i.a.a+""+i.e:i.c}function NMn(n,t){var e,i;if(i=!1,t.gc()<2)return!1;for(e=0;e<t.gc();e++)e<t.gc()-1?i|=_Dn(n,BB(t.Xb(e),33),BB(t.Xb(e+1),33)):i|=_Dn(n,BB(t.Xb(e),33),BB(t.Xb(0),33));return i}function xMn(n,t){var e;t!=n.a?(e=null,n.a&&(e=BB(n.a,49).ih(n,4,GOt,e)),t&&(e=BB(t,49).gh(n,4,GOt,e)),(e=Jhn(n,t,e))&&e.Fi()):0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,1,t,t))}function DMn(n,t){var e;t!=n.e?(n.e&&_6(xW(n.e),n),t&&(!t.b&&(t.b=new Tp(new xm)),YR(t.b,n)),(e=Qkn(n,t,null))&&e.Fi()):0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,4,t,t))}function RMn(n){var t,e,i;for(e=n.length,i=0;i<e&&(b1(i,n.length),n.charCodeAt(i)<=32);)++i;for(t=e;t>i&&(b1(t-1,n.length),n.charCodeAt(t-1)<=32);)--t;return i>0||t<e?n.substr(i,t-i):n}function KMn(n,t){var i;i=t.o,dA(n.f)?(n.j.a=e.Math.max(n.j.a,i.a),n.j.b+=i.b,n.d.c.length>1&&(n.j.b+=n.e)):(n.j.a+=i.a,n.j.b=e.Math.max(n.j.b,i.b),n.d.c.length>1&&(n.j.a+=n.e))}function _Mn(){_Mn=O,$st=Pun(Gk(FIt,1),YZn,61,0,[(kUn(),sIt),oIt,SIt]),Ast=Pun(Gk(FIt,1),YZn,61,0,[oIt,SIt,CIt]),Lst=Pun(Gk(FIt,1),YZn,61,0,[SIt,CIt,sIt]),Nst=Pun(Gk(FIt,1),YZn,61,0,[CIt,sIt,oIt])}function FMn(n,t,e,i){var r,c,a,u,o;if(c=n.c.d,a=n.d.d,c.j!=a.j)for(o=n.b,r=c.j,u=null;r!=a.j;)u=0==t?Mln(r):Eln(r),DH(i,UR(zgn(r,o.d[r.g],e),zgn(u,o.d[u.g],e))),r=u}function BMn(n,t,e,i){var r,c,a,u,o;return u=BB((a=qyn(n.a,t,e)).a,19).a,c=BB(a.b,19).a,i&&(o=BB(mMn(t,(hWn(),Elt)),10),r=BB(mMn(e,Elt),10),o&&r&&(t4(n.b,o,r),u+=n.b.i,c+=n.b.e)),u>c}function HMn(n){var t,e,i,r,c,a,u,o;for(this.a=rvn(n),this.b=new Np,i=0,r=(e=n).length;i<r;++i)for(t=e[i],c=new Np,WB(this.b,c),u=0,o=(a=t).length;u<o;++u)WB(c,new t_(a[u].j))}function qMn(n,t,e){var i,r,c;return c=0,i=e[t],t<e.length-1&&(r=e[t+1],n.b[t]?(c=bWn(n.d,i,r),c+=ZX(n.a,i,(kUn(),oIt)),c+=ZX(n.a,r,CIt)):c=I9(n.a,i,r)),n.c[t]&&(c+=L6(n.a,i)),c}function GMn(n,t,e,i,r){var c,a,u,o;for(o=null,u=new Wb(i);u.a<u.c.c.length;)if((a=BB(n0(u),441))!=e&&-1!=E7(a.e,r,0)){o=a;break}SZ(c=W5(r),e.b),MZ(c,o.b),JIn(n.a,r,new L_(c,t,e.f))}function zMn(n){for(;0!=n.g.c&&0!=n.d.c;)FD(n.g).c>FD(n.d).c?(n.i+=n.g.c,gdn(n.d)):FD(n.d).c>FD(n.g).c?(n.e+=n.d.c,gdn(n.g)):(n.i+=qq(n.g),n.e+=qq(n.d),gdn(n.g),gdn(n.d))}function UMn(n,t,e){var i,r,c,a;for(c=t.q,a=t.r,new zZ((O6(),Tyt),t,c,1),new zZ(Tyt,c,a,1),r=new Wb(e);r.a<r.c.c.length;)(i=BB(n0(r),112))!=c&&i!=t&&i!=a&&(gHn(n.a,i,t),gHn(n.a,i,a))}function XMn(n,t,i,r){n.a.d=e.Math.min(t,i),n.a.a=e.Math.max(t,r)-n.a.d,t<i?(n.b=.5*(t+i),n.g=K3n*n.b+.9*t,n.f=K3n*n.b+.9*i):(n.b=.5*(t+r),n.g=K3n*n.b+.9*r,n.f=K3n*n.b+.9*t)}function WMn(){function n(){return(new Date).getTime()}SWn={},!Array.isArray&&(Array.isArray=function(n){return"[object Array]"===Object.prototype.toString.call(n)}),!Date.now&&(Date.now=n)}function VMn(n,t){var e,i;i=BB(mMn(t,(HXn(),ept)),98),hon(t,(hWn(),ylt),i),(e=t.e)&&(JT(new Rq(null,new w1(e.a,16)),new Rw(n)),JT(wnn(new Rq(null,new w1(e.b,16)),new mt),new Kw(n)))}function QMn(n){var t,i,r,c;if(gA(BB(mMn(n.b,(HXn(),Udt)),103)))return 0;for(t=0,r=new Wb(n.a);r.a<r.c.c.length;)(i=BB(n0(r),10)).k==(uSn(),Cut)&&(c=i.o.a,t=e.Math.max(t,c));return t}function YMn(n){switch(BB(mMn(n,(HXn(),kgt)),163).g){case 1:hon(n,kgt,(Tbn(),Blt));break;case 2:hon(n,kgt,(Tbn(),Hlt));break;case 3:hon(n,kgt,(Tbn(),_lt));break;case 4:hon(n,kgt,(Tbn(),Flt))}}function JMn(){JMn=O,cft=new $P(QZn,0),eft=new $P(cJn,1),aft=new $P(aJn,2),rft=new $P("LEFT_RIGHT_CONSTRAINT_LOCKING",3),ift=new $P("LEFT_RIGHT_CONNECTION_LOCKING",4),tft=new $P(q1n,5)}function ZMn(n,t,i){var r,c,a,u,o,s,h;o=i.a/2,a=i.b/2,s=1,h=1,(r=e.Math.abs(t.a-n.a))>o&&(s=o/r),(c=e.Math.abs(t.b-n.b))>a&&(h=a/c),u=e.Math.min(s,h),n.a+=u*(t.a-n.a),n.b+=u*(t.b-n.b)}function nSn(n,t,e,i,r){var c,a;for(a=!1,c=BB(xq(e.b,0),33);hBn(n,t,c,i,r)&&(a=!0,cEn(e,c),0!=e.b.c.length);)c=BB(xq(e.b,0),33);return 0==e.b.c.length&&Tkn(e.j,e),a&&Gmn(t.q),a}function tSn(n,t){var e,i,r,c;if(jDn(),t.b<2)return!1;for(i=e=BB(b3(c=spn(t,0)),8);c.b!=c.d.c;){if(cNn(n,i,r=BB(b3(c),8)))return!0;i=r}return!!cNn(n,i,e)}function eSn(n,t,e,i){return 0==e?(!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),BK(n.o,t,i)):BB(itn(BB(yan(n,16),26)||n.zh(),e),66).Nj().Rj(n,fgn(n),e-bX(n.zh()),t,i)}function iSn(n,t){var e;t!=n.sb?(e=null,n.sb&&(e=BB(n.sb,49).ih(n,1,HOt,e)),t&&(e=BB(t,49).gh(n,1,HOt,e)),(e=jfn(n,t,e))&&e.Fi()):0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,4,t,t))}function rSn(n,t){var e,i;if(!t)throw Hp(new ek("All edge sections need an end point."));e=Ren(t,"x"),Ten(new Kg(n).a,(kW(e),e)),i=Ren(t,"y"),Oen(new _g(n).a,(kW(i),i))}function cSn(n,t){var e,i;if(!t)throw Hp(new ek("All edge sections need a start point."));e=Ren(t,"x"),Ien(new xg(n).a,(kW(e),e)),i=Ren(t,"y"),Aen(new Dg(n).a,(kW(i),i))}function aSn(n,t){var e,i,r,c,a;for(i=0,c=psn(n).length;i<c;++i)vMn(t);for(a=!Qet&&n.e?Qet?null:n.d:null;a;){for(e=0,r=psn(a).length;e<r;++e)vMn(t);a=!Qet&&a.e?Qet?null:a.d:null}}function uSn(){uSn=O,Cut=new JS("NORMAL",0),Put=new JS("LONG_EDGE",1),Mut=new JS("EXTERNAL_PORT",2),Iut=new JS("NORTH_SOUTH_PORT",3),Sut=new JS("LABEL",4),Tut=new JS("BREAKING_POINT",5)}function oSn(n){var t,e,i,r;if(t=!1,Lx(n,(hWn(),zft)))for(e=BB(mMn(n,zft),83),r=new Wb(n.j);r.a<r.c.c.length;)J$n(i=BB(n0(r),11))&&(t||(iIn(vW(n)),t=!0),fpn(BB(e.xc(i),306)))}function sSn(n,t,e){var i;OTn(e,"Self-Loop routing",1),i=Vln(t),iO(mMn(t,(C6(),TMt))),JT($V(AV(AV(wnn(new Rq(null,new w1(t.b,16)),new zi),new Ui),new Xi),new Wi),new eP(n,i)),HSn(e)}function hSn(n){var t,e,i;return i=ATn(n),null!=n.e&&AH(i,n8n,n.e),!!n.k&&AH(i,"type",dx(n.k)),!WE(n.j)&&(e=new Cl,rtn(i,N6n,e),t=new cp(e),e5(n.j,t)),i}function fSn(n){var t,e,i,r;for(r=xX((lin(n.gc(),"size"),new Ik),123),i=!0,e=lz(n).Kc();e.Ob();)t=BB(e.Pb(),42),i||(r.a+=FWn),i=!1,uO(xX(uO(r,t.cd()),61),t.dd());return(r.a+="}",r).a}function lSn(n,t){var e,i,r;return(t&=63)<22?(e=n.l<<t,i=n.m<<t|n.l>>22-t,r=n.h<<t|n.m>>22-t):t<44?(e=0,i=n.l<<t-22,r=n.m<<t-22|n.l>>44-t):(e=0,i=0,r=n.l<<t-44),M$(e&SQn,i&SQn,r&PQn)}function bSn(n){if(null==ytt&&(ytt=new RegExp("^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$")),!ytt.test(n))throw Hp(new Mk(DQn+n+'"'));return parseFloat(n)}function wSn(n){var t,e,i,r;for(t=new Np,vU(e=x8($Nt,ZYn,25,n.a.c.length,16,1),e.length),r=new Wb(n.a);r.a<r.c.c.length;)e[(i=BB(n0(r),121)).d]||(t.c[t.c.length]=i,Ggn(n,i,e));return t}function dSn(n,t){var e,i,r,c;for(c=t.b.j,n.a=x8(ANt,hQn,25,c.c.length,15,1),r=0,i=0;i<c.c.length;i++)l1(i,c.c.length),0==(e=BB(c.c[i],11)).e.c.length&&0==e.g.c.length?r+=1:r+=3,n.a[i]=r}function gSn(){gSn=O,Dht=new IP("ALWAYS_UP",0),xht=new IP("ALWAYS_DOWN",1),Kht=new IP("DIRECTION_UP",2),Rht=new IP("DIRECTION_DOWN",3),Fht=new IP("SMART_UP",4),_ht=new IP("SMART_DOWN",5)}function pSn(n,t){if(n<0||t<0)throw Hp(new _y("k and n must be positive"));if(t>n)throw Hp(new _y("k must be smaller than n"));return 0==t||t==n?1:0==n?0:Mjn(n)/(Mjn(t)*Mjn(n-t))}function vSn(n,t){var e,i,r,c;for(e=new OA(n);null!=e.g||e.c?null==e.g||0!=e.i&&BB(e.g[e.i-1],47).Ob():tZ(e);)if(cL(c=BB(aLn(e),56),160))for(i=BB(c,160),r=0;r<t.length;r++)t[r].og(i)}function mSn(n){var t;return 0!=(64&n.Db)?Yln(n):((t=new fN(Yln(n))).a+=" (height: ",vE(t,n.f),t.a+=", width: ",vE(t,n.g),t.a+=", x: ",vE(t,n.i),t.a+=", y: ",vE(t,n.j),t.a+=")",t.a)}function ySn(n){var t,e,i,r,c,a;for(t=new v4,r=0,c=(i=n).length;r<c;++r)if(null!=Jgn(t,a=yX((e=i[r]).cd()),yX(e.dd())))throw Hp(new _y("duplicate key: "+a));this.b=(SQ(),new Xb(t))}function kSn(n){var t,e,i,r,c;if(null==n)return zWn;for(c=new $an(FWn,"[","]"),i=0,r=(e=n).length;i<r;++i)t=e[i],b6(c,String.fromCharCode(t));return c.a?0==c.e.length?c.a.a:c.a.a+""+c.e:c.c}function jSn(){jSn=O,Knn(),Ict=new $O(oZn,Oct=Rct),iln(1),Cct=new $O(sZn,iln(300)),iln(0),Lct=new $O(hZn,iln(0)),new $p,Nct=new $O(fZn,lZn),new $p,Act=new $O(bZn,5),xct=Rct,$ct=Dct}function ESn(n,t){var e,i,r,c;for(i=(1==t?Wat:Xat).a.ec().Kc();i.Ob();)for(e=BB(i.Pb(),103),c=BB(h6(n.f.c,e),21).Kc();c.Ob();)r=BB(c.Pb(),46),WB(n.b.b,BB(r.b,81)),WB(n.b.a,BB(r.b,81).d)}function TSn(n,t){var e;if(null!=t&&!n.c.Yj().wj(t))throw e=cL(t,56)?BB(t,56).Tg().zb:nE(tsn(t)),Hp(new Ky(r6n+n.c.ne()+"'s type '"+n.c.Yj().ne()+"' does not permit a value of type '"+e+"'"))}function MSn(n,t,e){var i,r;for(r=new M2(n.b,0);r.b<r.d.gc();)Px(r.b<r.d.gc()),GI(mMn(i=BB(r.d.Xb(r.c=r.b++),70),(hWn(),vlt)))===GI(t)&&(OPn(i.n,vW(n.c.i),e),fW(r),WB(t.b,i))}function SSn(n,t){if(t.a)switch(BB(mMn(t.b,(hWn(),ylt)),98).g){case 0:case 1:lEn(t);case 2:JT(new Rq(null,new w1(t.d,16)),new Li),oAn(n.a,t)}else JT(new Rq(null,new w1(t.d,16)),new Li)}function PSn(n){var t,i;return i=e.Math.sqrt((null==n.k&&(n.k=Wrn(n,new Ec)),Gy(n.k)/(n.b*(null==n.g&&(n.g=Xrn(n,new jc)),Gy(n.g))))),t=dG(fan(e.Math.round(i))),t=e.Math.min(t,n.f)}function CSn(){gcn(),LR.call(this),this.j=(kUn(),PIt),this.a=new Gj,new fm,this.f=(lin(2,AVn),new J6(2)),this.e=(lin(4,AVn),new J6(4)),this.g=(lin(4,AVn),new J6(4)),this.b=new hP(this.e,this.g)}function ISn(n,t){var e;return!qy(TD(mMn(t,(hWn(),Clt))))&&(e=t.c.i,(n!=(Tbn(),_lt)||e.k!=(uSn(),Sut))&&BB(mMn(e,(HXn(),kgt)),163)!=Flt)}function OSn(n,t){var e;return!qy(TD(mMn(t,(hWn(),Clt))))&&(e=t.d.i,(n!=(Tbn(),Blt)||e.k!=(uSn(),Sut))&&BB(mMn(e,(HXn(),kgt)),163)!=Hlt)}function ASn(n,t){var e,i,r,c,a,u,o;for(a=n.d,o=n.o,u=new UV(-a.b,-a.d,a.b+o.a+a.c,a.d+o.b+a.a),r=0,c=(i=t).length;r<c;++r)(e=i[r])&&CPn(u,e.i);a.b=-u.c,a.d=-u.d,a.c=u.b-a.b-o.a,a.a=u.a-a.d-o.b}function $Sn(){$Sn=O,iTt=new MC("CENTER_DISTANCE",0),rTt=new MC("CIRCLE_UNDERLAP",1),uTt=new MC("RECTANGLE_UNDERLAP",2),cTt=new MC("INVERTED_OVERLAP",3),aTt=new MC("MINIMUM_ROOT_DISTANCE",4)}function LSn(n){var t,e,i,r;if(KDn(),null==n)return null;for(i=n.length,t=x8(ONt,WVn,25,2*i,15,1),e=0;e<i;e++)(r=n[e])<0&&(r+=256),t[2*e]=YLt[r>>4],t[2*e+1]=YLt[15&r];return Bdn(t,0,t.length)}function NSn(n){var t;switch(nV(),n.c.length){case 0:return Bnt;case 1:return IH((t=BB(JCn(new Wb(n)),42)).cd(),t.dd());default:return new hy(BB(Qgn(n,x8(Hnt,kVn,42,n.c.length,0,1)),165))}}function xSn(n){var t,e,i,r,c;for(t=new Lp,e=new Lp,d3(t,n),d3(e,n);e.b!=e.c;)for(c=new Wb(BB(dU(e),37).a);c.a<c.c.c.length;)(r=BB(n0(c),10)).e&&(d3(t,i=r.e),d3(e,i));return t}function DSn(n,t){switch(t.g){case 1:return KB(n.j,(gcn(),xut));case 2:return KB(n.j,(gcn(),Lut));case 3:return KB(n.j,(gcn(),Rut));case 4:return KB(n.j,(gcn(),Kut));default:return SQ(),SQ(),set}}function RSn(n,t){var e,i,r;e=sH(t,n.e),i=BB(RX(n.g.f,e),19).a,r=n.a.c.length-1,0!=n.a.c.length&&BB(xq(n.a,r),287).c==i?(++BB(xq(n.a,r),287).a,++BB(xq(n.a,r),287).b):WB(n.a,new Gx(i))}function KSn(n,t,e){var i,r;return 0!=(i=SRn(n,t,e))?i:Lx(t,(hWn(),wlt))&&Lx(e,wlt)?((r=E$(BB(mMn(t,wlt),19).a,BB(mMn(e,wlt),19).a))<0?uKn(n,t,e):r>0&&uKn(n,e,t),r):IOn(n,t,e)}function _Sn(n,t,e){var i,r,c,a;if(0!=t.b){for(i=new YT,a=spn(t,0);a.b!=a.d.c;)Frn(i,xun(c=BB(b3(a),86))),(r=c.e).a=BB(mMn(c,(qqn(),gkt)),19).a,r.b=BB(mMn(c,pkt),19).a;_Sn(n,i,mcn(e,i.b/n.a|0))}}function FSn(n,t){var e,i,r,c,a;if(n.e<=t)return n.g;if(z1(n,n.g,t))return n.g;for(c=n.r,i=n.g,a=n.r,r=(c-i)/2+i;i+1<c;)(e=cHn(n,r,!1)).b<=r&&e.a<=t?(a=r,c=r):i=r,r=(c-i)/2+i;return a}function BSn(n,t,e){OTn(e,"Recursive Graph Layout",hDn(n,t,!0)),vSn(t,Pun(Gk(nMt,1),HWn,527,0,[new $f])),P8(t,(sWn(),mPt))||vSn(t,Pun(Gk(nMt,1),HWn,527,0,[new gu])),lXn(n,t,null,e),HSn(e)}function HSn(n){var t;if(null==n.p)throw Hp(new Fy("The task has not begun yet."));n.b||(n.k&&($T(),t=cbn(fan(Date.now()),VVn),n.q=1e-9*j2(ibn(t,n.o))),n.c<n.r&&qin(n,n.r-n.c),n.b=!0)}function qSn(n){var t,e,i;for(DH(i=new km,new xC(n.j,n.k)),e=new AL((!n.a&&(n.a=new $L(xOt,n,5)),n.a));e.e!=e.i.gc();)DH(i,new xC((t=BB(kpn(e),469)).a,t.b));return DH(i,new xC(n.b,n.c)),i}function GSn(n,t,e,i,r){var c,a,u,o;if(r)for(o=((c=new hz(r.a.length)).b-c.a)*c.c<0?(eS(),MNt):new XL(c);o.Ob();)u=x2(r,BB(o.Pb(),19).a),D_n((a=new hQ(n,t,e,i)).a,a.b,a.c,a.d,u)}function zSn(n,t){var e;if(GI(n)===GI(t))return!0;if(cL(t,21)){e=BB(t,21);try{return n.gc()==e.gc()&&n.Ic(e)}catch(i){if(cL(i=lun(i),173)||cL(i,205))return!1;throw Hp(i)}}return!1}function USn(n,t){var i;WB(n.d,t),i=t.rf(),n.c?(n.e.a=e.Math.max(n.e.a,i.a),n.e.b+=i.b,n.d.c.length>1&&(n.e.b+=n.a)):(n.e.a+=i.a,n.e.b=e.Math.max(n.e.b,i.b),n.d.c.length>1&&(n.e.a+=n.a))}function XSn(n){var t,e,i,r;switch(t=(r=n.i).b,i=r.j,e=r.g,r.a.g){case 0:e.a=(n.g.b.o.a-i.a)/2;break;case 1:e.a=t.d.n.a+t.d.a.a;break;case 2:e.a=t.d.n.a+t.d.a.a-i.a;break;case 3:e.b=t.d.n.b+t.d.a.b}}function WSn(n,t,e,i,r){if(i<t||r<e)throw Hp(new _y("The highx must be bigger then lowx and the highy must be bigger then lowy"));return n.a<t?n.a=t:n.a>i&&(n.a=i),n.b<e?n.b=e:n.b>r&&(n.b=r),n}function VSn(n){if(cL(n,149))return MNn(BB(n,149));if(cL(n,229))return Zbn(BB(n,229));if(cL(n,23))return hSn(BB(n,23));throw Hp(new _y(z6n+LMn(new Jy(Pun(Gk(Ant,1),HWn,1,5,[n])))))}function QSn(n,t,e,i,r){var c,a,u;for(c=!0,a=0;a<i;a++)c&=0==e[a];if(0==r)aHn(e,i,n,0,t),a=t;else{for(u=32-r,c&=e[a]<<u==0,a=0;a<t-1;a++)n[a]=e[a+i]>>>r|e[a+i+1]<<u;n[a]=e[a+i]>>>r,++a}return c}function YSn(n,t,e,i){var r,c;if(t.k==(uSn(),Put))for(c=new oz(ZL(fbn(t).a.Kc(),new h));dAn(c);)if((r=BB(U5(c),17)).c.i.k==Put&&n.c.a[r.c.i.c.p]==i&&n.c.a[t.c.p]==e)return!0;return!1}function JSn(n,t){var e,i,r,c;return t&=63,e=n.h&PQn,t<22?(c=e>>>t,r=n.m>>t|e<<22-t,i=n.l>>t|n.m<<22-t):t<44?(c=0,r=e>>>t-22,i=n.m>>t-22|n.h<<44-t):(c=0,r=0,i=e>>>t-44),M$(i&SQn,r&SQn,c&PQn)}function ZSn(n,t,e,i){var r;this.b=i,this.e=n==(oin(),Amt),r=t[e],this.d=kq($Nt,[sVn,ZYn],[177,25],16,[r.length,r.length],2),this.a=kq(ANt,[sVn,hQn],[48,25],15,[r.length,r.length],2),this.c=new zEn(t,e)}function nPn(n){var t,e,i;for(n.k=new o1((kUn(),Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])).length,n.j.c.length),i=new Wb(n.j);i.a<i.c.c.length;)t=(e=BB(n0(i),113)).d.j,JIn(n.k,t,e);n.e=iNn(gz(n.k))}function tPn(n,t){var e,i,r;TU(n.d,t),e=new ka,VW(n.c,t,e),e.f=Phn(t.c),e.a=Phn(t.d),e.d=(gxn(),(r=t.c.i.k)==(uSn(),Cut)||r==Tut),e.e=(i=t.d.i.k)==Cut||i==Tut,e.b=t.c.j==(kUn(),CIt),e.c=t.d.j==oIt}function ePn(n){var t,e,i,r,c;for(c=DWn,r=DWn,i=new Wb(kbn(n));i.a<i.c.c.length;)t=(e=BB(n0(i),213)).e.e-e.d.e,e.e==n&&t<r?r=t:t<c&&(c=t);return r==DWn&&(r=-1),c==DWn&&(c=-1),new rI(iln(r),iln(c))}function iPn(n,t){var i,r,c;return c=ZJn,qpn(),r=Zrt,c=e.Math.abs(n.b),(i=e.Math.abs(t.f-n.b))<c&&(c=i,r=nct),(i=e.Math.abs(n.a))<c&&(c=i,r=tct),(i=e.Math.abs(t.g-n.a))<c&&(c=i,r=Jrt),r}function rPn(n,t){var e,i,r;for(e=t.a.o.a,r=new Sb(new s1(vW(t.a).b,t.c,t.f+1));r.b<r.d.gc();)if(Px(r.b<r.d.gc()),(i=BB(r.d.Xb(r.c=r.b++),29)).c.a>=e)return hPn(n,t,i.p),!0;return!1}function cPn(n){var t;return 0!=(64&n.Db)?mSn(n):(t=new lN(Z5n),!n.a||oO(oO((t.a+=' "',t),n.a),'"'),oO(kE(oO(kE(oO(kE(oO(kE((t.a+=" (",t),n.i),","),n.j)," | "),n.g),","),n.f),")"),t.a)}function aPn(n,t,e){var i,r,c,a,u;for(u=axn(n.e.Tg(),t),r=BB(n.g,119),i=0,a=0;a<n.i;++a)if(c=r[a],u.rl(c.ak())){if(i==e)return fDn(n,a),ZM(),BB(t,66).Oj()?c:c.dd();++i}throw Hp(new Ay(e9n+e+o8n+i))}function uPn(n){var t,e,i;if(2==(t=n.c)||7==t||1==t)return wWn(),wWn(),sNt;for(i=OXn(n),e=null;2!=(t=n.c)&&7!=t&&1!=t;)e||(wWn(),wWn(),tqn(e=new r$(1),i),i=e),tqn(e,OXn(n));return i}function oPn(n,t,e){return n<0||n>e?dCn(n,e,"start index"):t<0||t>e?dCn(t,e,"end index"):$Rn("end index (%s) must not be less than start index (%s)",Pun(Gk(Ant,1),HWn,1,5,[iln(t),iln(n)]))}function sPn(n,t){var e,i,r,c;for(i=0,r=n.length;i<r;i++){c=n[i];try{c[1]?c[0].jm()&&(t=TG(t,c)):c[0].jm()}catch(a){if(!cL(a=lun(a),78))throw Hp(a);e=a,Dk(),yY(cL(e,477)?BB(e,477).ae():e)}}return t}function hPn(n,t,i){var r,c;for(i!=t.c+t.b.gc()&&wHn(t.a,ian(t,i-t.c)),c=t.a.c.p,n.a[c]=e.Math.max(n.a[c],t.a.o.a),r=BB(mMn(t.a,(hWn(),Plt)),15).Kc();r.Ob();)hon(BB(r.Pb(),70),tst,(hN(),!0))}function fPn(n,t){var i,r,c;c=qNn(t),hon(t,(hWn(),llt),c),c&&(r=DWn,AY(n.f,c)&&(r=BB(qI(AY(n.f,c)),19).a),qy(TD(mMn(i=BB(xq(t.g,0),17),Clt)))||VW(n,c,iln(e.Math.min(BB(mMn(i,wlt),19).a,r))))}function lPn(n,t,e){var i,r,c,a;for(t.p=-1,a=xwn(t,(ain(),qvt)).Kc();a.Ob();)for(r=new Wb(BB(a.Pb(),11).g);r.a<r.c.c.length;)t!=(c=(i=BB(n0(r),17)).d.i)&&(c.p<0?e.Fc(i):c.p>0&&lPn(n,c,e));t.p=0}function bPn(n){var t;this.c=new YT,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=new YK(t=BB(Vj(jMt),9),BB(SR(t,t.length),9),0),this.g=n.f}function wPn(n){var t,e,i,r;for(t=xX(oO(new lN("Predicates."),"and"),40),e=!0,r=new Sb(n);r.b<r.d.gc();)Px(r.b<r.d.gc()),i=r.d.Xb(r.c=r.b++),e||(t.a+=","),t.a+=""+i,e=!1;return(t.a+=")",t).a}function dPn(n,t,e){var i,r,c;if(!(e<=t+2))for(r=(e-t)/2|0,i=0;i<r;++i)l1(t+i,n.c.length),c=BB(n.c[t+i],11),c5(n,t+i,(l1(e-i-1,n.c.length),BB(n.c[e-i-1],11))),l1(e-i-1,n.c.length),n.c[e-i-1]=c}function gPn(n,t,e){var i,r,c,a,u,o,s;u=(c=n.d.p).e,o=c.r,n.g=new QK(o),i=(a=n.d.o.c.p)>0?u[a-1]:x8(Out,a1n,10,0,0,1),r=u[a],s=a<u.length-1?u[a+1]:x8(Out,a1n,10,0,0,1),t==e-1?uZ(n.g,r,s):uZ(n.g,i,r)}function pPn(n){var t;this.j=new Np,this.f=new Rv,this.b=new YK(t=BB(Vj(FIt),9),BB(SR(t,t.length),9),0),this.d=x8(ANt,hQn,25,(kUn(),Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])).length,15,1),this.g=n}function vPn(n,t){var e,i,r;if(0!=t.c.length){for(e=TMn(n,t),r=!1;!e;)E$n(n,t,!0),r=!0,e=TMn(n,t);r&&E$n(n,t,!1),i=Dun(t),n.b&&n.b.lg(i),n.a=$hn(n,(l1(0,t.c.length),BB(t.c[0],33))),vPn(n,i)}}function mPn(n,t){var e,i,r;if(i=itn(n.Tg(),t),(e=t-n.Ah())<0){if(!i)throw Hp(new _y(o6n+t+s6n));if(!i.Ij())throw Hp(new _y(r6n+i.ne()+c6n));(r=n.Yg(i))>=0?n.Bh(r):cIn(n,i)}else qfn(n,e,i)}function yPn(n){var t,e;if(e=null,t=!1,cL(n,204)&&(t=!0,e=BB(n,204).a),t||cL(n,258)&&(t=!0,e=""+BB(n,258).a),t||cL(n,483)&&(t=!0,e=""+BB(n,483).a),!t)throw Hp(new Ly(H6n));return e}function kPn(n,t){var e,i;if(n.f){for(;t.Ob();)if(cL(i=(e=BB(t.Pb(),72)).ak(),99)&&0!=(BB(i,18).Bb&h6n)&&(!n.e||i.Gj()!=NOt||0!=i.aj())&&null!=e.dd())return t.Ub(),!0;return!1}return t.Ob()}function jPn(n,t){var e,i;if(n.f){for(;t.Sb();)if(cL(i=(e=BB(t.Ub(),72)).ak(),99)&&0!=(BB(i,18).Bb&h6n)&&(!n.e||i.Gj()!=NOt||0!=i.aj())&&null!=e.dd())return t.Pb(),!0;return!1}return t.Sb()}function EPn(n,t,e){var i,r,c,a,u,o;for(o=axn(n.e.Tg(),t),i=0,u=n.i,r=BB(n.g,119),a=0;a<n.i;++a)if(c=r[a],o.rl(c.ak())){if(e==i)return a;++i,u=a+1}if(e==i)return u;throw Hp(new Ay(e9n+e+o8n+i))}function TPn(n,t){var i,r,c;if(0==n.f.c.length)return null;for(c=new bA,i=new Wb(n.f);i.a<i.c.c.length;)r=BB(n0(i),70).o,c.b=e.Math.max(c.b,r.a),c.a+=r.b;return c.a+=(n.f.c.length-1)*t,c}function MPn(n,t,e){var i,r,c;for(r=new oz(ZL(hbn(e).a.Kc(),new h));dAn(r);)b5(i=BB(U5(r),17))||!b5(i)&&i.c.i.c==i.d.i.c||(c=zLn(n,i,e,new um)).c.length>1&&(t.c[t.c.length]=c)}function SPn(n){var t,e,i;for(Frn(e=new YT,n.o),i=new om;0!=e.b;)WUn(n,t=BB(0==e.b?null:(Px(0!=e.b),Atn(e,e.a.a)),508),!0)&&WB(i.a,t);for(;0!=i.a.c.length;)WUn(n,t=BB(thn(i),508),!1)}function PPn(){PPn=O,kMt=new $C(hJn,0),wMt=new $C("BOOLEAN",1),vMt=new $C("INT",2),yMt=new $C("STRING",3),dMt=new $C("DOUBLE",4),gMt=new $C("ENUM",5),pMt=new $C("ENUMSET",6),mMt=new $C("OBJECT",7)}function CPn(n,t){var i,r,c,a,u;r=e.Math.min(n.c,t.c),a=e.Math.min(n.d,t.d),(c=e.Math.max(n.c+n.b,t.c+t.b))<r&&(i=r,r=c,c=i),(u=e.Math.max(n.d+n.a,t.d+t.a))<a&&(i=a,a=u,u=i),xH(n,r,a,c-r,u-a)}function IPn(){IPn=O,J$t=Pun(Gk(Qtt,1),sVn,2,6,[w7n,d7n,g7n,p7n,v7n,m7n,n8n]),Y$t=Pun(Gk(Qtt,1),sVn,2,6,[w7n,"empty",d7n,K9n,"elementOnly"]),nLt=Pun(Gk(Qtt,1),sVn,2,6,[w7n,"preserve","replace",y7n]),Z$t=new SH}function OPn(n,t,e){var i,r,c;if(t!=e){i=t;do{UR(n,i.c),(r=i.e)&&(_x(n,(c=i.d).b,c.d),UR(n,r.n),i=vW(r))}while(r);i=e;do{XR(n,i.c),(r=i.e)&&(Bx(n,(c=i.d).b,c.d),XR(n,r.n),i=vW(r))}while(r)}}function APn(n,t,e,i){var r,c,a,u,o;if(i.f.c+i.g.c==0)for(u=0,o=(a=n.a[n.c]).length;u<o;++u)VW(i,c=a[u],new kcn(n,c,e));return(r=BB(qI(AY(i.f,t)),663)).b=0,r.c=r.f,0==r.c||Tb(BB(xq(r.a,r.b),287)),r}function $Pn(){$Pn=O,Zst=new jP("MEDIAN_LAYER",0),tht=new jP("TAIL_LAYER",1),Jst=new jP("HEAD_LAYER",2),nht=new jP("SPACE_EFFICIENT_LAYER",3),eht=new jP("WIDEST_LAYER",4),Yst=new jP("CENTER_LAYER",5)}function LPn(n){switch(n.g){case 0:case 1:case 2:return kUn(),sIt;case 3:case 4:case 5:return kUn(),SIt;case 6:case 7:case 8:return kUn(),CIt;case 9:case 10:case 11:return kUn(),oIt;default:return kUn(),PIt}}function NPn(n,t){var e;return 0!=n.c.length&&(e=tdn((l1(0,n.c.length),BB(n.c[0],17)).c.i),BZ(),e==(bvn(),fvt)||e==hvt||o5($V(new Rq(null,new w1(n,16)),new Fc),new ig(t)))}function xPn(n,t,e){var i,r,c;if(!n.b[t.g]){for(n.b[t.g]=!0,!(i=e)&&(i=new P6),DH(i.b,t),c=n.a[t.g].Kc();c.Ob();)(r=BB(c.Pb(),188)).b!=t&&xPn(n,r.b,i),r.c!=t&&xPn(n,r.c,i),DH(i.a,r);return i}return null}function DPn(){DPn=O,Qyt=new lC("ROOT_PROC",0),Uyt=new lC("FAN_PROC",1),Wyt=new lC("NEIGHBORS_PROC",2),Xyt=new lC("LEVEL_HEIGHT",3),Vyt=new lC("NODE_POSITION_PROC",4),zyt=new lC("DETREEIFYING_PROC",5)}function RPn(n,t){if(cL(t,239))return zA(n,BB(t,33));if(cL(t,186))return UA(n,BB(t,118));if(cL(t,439))return GA(n,BB(t,202));throw Hp(new _y(z6n+LMn(new Jy(Pun(Gk(Ant,1),HWn,1,5,[t])))))}function KPn(n,t,e){var i,r;if(this.f=n,w6(e,r=(i=BB(RX(n.b,t),283))?i.a:0),e>=(r/2|0))for(this.e=i?i.c:null,this.d=r;e++<r;)TZ(this);else for(this.c=i?i.b:null;e-- >0;)EZ(this);this.b=t,this.a=null}function _Pn(n,t){var e,i;t.a?zNn(n,t):(!!(e=BB(kK(n.b,t.b),57))&&e==n.a[t.b.f]&&!!e.a&&e.a!=t.b.a&&e.c.Fc(t.b),!!(i=BB(yK(n.b,t.b),57))&&n.a[i.f]==t.b&&!!i.a&&i.a!=t.b.a&&t.b.c.Fc(i),MN(n.b,t.b))}function FPn(n,t){var e,i;if(e=BB(oV(n.b,t),124),BB(BB(h6(n.r,t),21),84).dc())return e.n.b=0,void(e.n.c=0);e.n.b=n.C.b,e.n.c=n.C.c,n.A.Hc((mdn(),_It))&&yRn(n,t),i=Xpn(n,t),PDn(n,t)==(cpn(),BCt)&&(i+=2*n.w),e.a.a=i}function BPn(n,t){var e,i;if(e=BB(oV(n.b,t),124),BB(BB(h6(n.r,t),21),84).dc())return e.n.d=0,void(e.n.a=0);e.n.d=n.C.d,e.n.a=n.C.a,n.A.Hc((mdn(),_It))&&kRn(n,t),i=Wpn(n,t),PDn(n,t)==(cpn(),BCt)&&(i+=2*n.w),e.a.b=i}function HPn(n,t){var e,i,r,c;for(c=new Np,i=new Wb(t);i.a<i.c.c.length;)WB(c,new RS(e=BB(n0(i),65),!0)),WB(c,new RS(e,!1));my((r=new hY(n)).a.a),e2(c,n.b,new Jy(Pun(Gk(oit,1),HWn,679,0,[r])))}function qPn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w;return u=n.a,f=n.b,o=t.a,l=t.b,s=e.a,b=e.b,new xC(((c=u*l-f*o)*(s-(h=i.a))-(a=s*(w=i.b)-b*h)*(u-o))/(r=(u-o)*(b-w)-(f-l)*(s-h)),(c*(b-w)-a*(f-l))/r)}function GPn(n,t){var e,i,r;if(!n.d[t.p]){for(n.d[t.p]=!0,n.a[t.p]=!0,i=new oz(ZL(lbn(t).a.Kc(),new h));dAn(i);)b5(e=BB(U5(i),17))||(r=e.d.i,n.a[r.p]?WB(n.b,e):GPn(n,r));n.a[t.p]=!1}}function zPn(n,t,e){var i;switch(i=0,BB(mMn(t,(HXn(),kgt)),163).g){case 2:i=2*-e+n.a,++n.a;break;case 1:i=-e;break;case 3:i=e;break;case 4:i=2*e+n.b,++n.b}return Lx(t,(hWn(),wlt))&&(i+=BB(mMn(t,wlt),19).a),i}function UPn(n,t,e){var i,r,c;for(e.zc(t,n),WB(n.n,t),c=n.p.eg(t),t.j==n.p.fg()?Obn(n.e,c):Obn(n.j,c),rX(n),r=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[new Hw(t),new Gw(t)])));dAn(r);)i=BB(U5(r),11),e._b(i)||UPn(n,i,e)}function XPn(n){var t,e;return BB(ZAn(n,(sWn(),KSt)),21).Hc((mdn(),DIt))?(e=BB(ZAn(n,qSt),21),t=new wA(BB(ZAn(n,BSt),8)),e.Hc((n_n(),GIt))&&(t.a<=0&&(t.a=20),t.b<=0&&(t.b=20)),t):new Gj}function WPn(n){var t,e,i;if(!n.b){for(i=new Co,e=new ax(RBn(n));e.e!=e.i.gc();)0!=((t=BB(jpn(e),18)).Bb&h6n)&&f9(i,t);chn(i),n.b=new NO((BB(Wtn(QQ((QX(),t$t).o),8),18),i.i),i.g),P5(n).b&=-9}return n.b}function VPn(n,t){var e,i,r,c,a,u;a=BB(Emn(gz(t.k),x8(FIt,YZn,61,2,0,1)),122),Zmn(n,u=t.g,e=o3(t,a[0]),i=u3(t,a[1]))<=Zmn(n,u,r=o3(t,a[1]),c=u3(t,a[0]))?(t.a=e,t.c=i):(t.a=r,t.c=c)}function QPn(n,t,e){var i,r,c;for(OTn(e,"Processor set neighbors",1),n.a=0==t.b.b?1:t.b.b,r=null,i=spn(t.b,0);!r&&i.b!=i.d.c;)qy(TD(mMn(c=BB(b3(i),86),(qqn(),dkt))))&&(r=c);r&&LDn(n,new bg(r),e),HSn(e)}function YPn(n){var t,e,i,r;return RHn(),t=-1==(i=GO(n,YTn(35)))?n:n.substr(0,i),e=-1==i?null:n.substr(i+1),(r=V3(EAt,t))?null!=e&&(r=Csn(r,(kW(e),e))):(r=WXn(t),a5(EAt,t,r),null!=e&&(r=Csn(r,e))),r}function JPn(n){var t,e,i,r,c,a,u;if(SQ(),cL(n,54))for(c=0,r=n.gc()-1;c<r;++c,--r)t=n.Xb(c),n._c(c,n.Xb(r)),n._c(r,t);else for(e=n.Yc(),a=n.Zc(n.gc());e.Tb()<a.Vb();)i=e.Pb(),u=a.Ub(),e.Wb(u),a.Wb(i)}function ZPn(n,t){var e,i,r;OTn(t,"End label pre-processing",1),e=Gy(MD(mMn(n,(HXn(),jpt)))),i=Gy(MD(mMn(n,Spt))),r=gA(BB(mMn(n,Udt),103)),JT(wnn(new Rq(null,new w1(n.b,16)),new he),new D_(e,i,r)),HSn(t)}function nCn(n,t){var e,i,r,c,a,u;for(u=0,d3(c=new Lp,t);c.b!=c.c;)for(u+=syn((a=BB(dU(c),214)).d,a.e),r=new Wb(a.b);r.a<r.c.c.length;)i=BB(n0(r),37),(e=BB(xq(n.b,i.p),214)).s||(u+=nCn(n,e));return u}function tCn(n,t,i){var r,c;_an(this),t==(dJ(),Lyt)?TU(this.r,n.c):TU(this.w,n.c),TU(i==Lyt?this.r:this.w,n.d),tPn(this,n),XMn(this,r=Phn(n.c),c=Phn(n.d),c),this.o=(gxn(),e.Math.abs(r-c)<.2)}function eCn(n,t,e){var i,r,c,a,u;if(null!=(a=BB(yan(n.a,8),1936)))for(r=0,c=a.length;r<c;++r)null.jm();i=e,0==(1&n.a.Db)&&(u=new uW(n,e,t),i.ui(u)),cL(i,672)?BB(i,672).wi(n.a):i.ti()==n.a&&i.vi(null)}function iCn(){var n;return ZLt?BB($$n((WM(),zAt),S7n),1945):(sUn(),n=BB(cL(SJ((WM(),zAt),S7n),586)?SJ(zAt,S7n):new zW,586),ZLt=!0,gXn(n),pWn(n),VW((VM(),ZAt),n,new Ks),Tyn(n),mZ(zAt,S7n,n),n)}function rCn(n,t,e,i){var r;return(r=zTn(n,e,Pun(Gk(Qtt,1),sVn,2,6,[bQn,wQn,dQn,gQn,pQn,vQn,mQn]),t))<0&&(r=zTn(n,e,Pun(Gk(Qtt,1),sVn,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),t)),!(r<0||(i.d=r,0))}function cCn(n,t,e,i){var r;return(r=zTn(n,e,Pun(Gk(Qtt,1),sVn,2,6,[bQn,wQn,dQn,gQn,pQn,vQn,mQn]),t))<0&&(r=zTn(n,e,Pun(Gk(Qtt,1),sVn,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),t)),!(r<0||(i.d=r,0))}function aCn(n){var t,e,i;for(_$n(n),i=new Np,e=new Wb(n.a.a.b);e.a<e.c.c.length;)WB(i,new fP(t=BB(n0(e),81),!0)),WB(i,new fP(t,!1));nmn(n.c),i2(i,n.b,new Jy(Pun(Gk(Jat,1),HWn,369,0,[n.c]))),vAn(n)}function uCn(n){var t,e,i,r;for(e=new xp,r=new Wb(n.d);r.a<r.c.c.length;)i=BB(n0(r),181),t=BB(i.We((hWn(),Uft)),17),AY(e.f,t)||VW(e,t,new TQ(t)),WB(BB(qI(AY(e.f,t)),456).b,i);return new t_(new Ob(e))}function oCn(n,t){var e,i,r,c,a;for(i=new d1(n.j.c.length),e=null,c=new Wb(n.j);c.a<c.c.c.length;)(r=BB(n0(c),11)).j!=e&&(i.b==i.c||F$n(i,e,t),o4(i),e=r.j),(a=mAn(r))&&w3(i,a);i.b==i.c||F$n(i,e,t)}function sCn(n,t){var e,i;for(i=new M2(n.b,0);i.b<i.d.gc();)Px(i.b<i.d.gc()),e=BB(i.d.Xb(i.c=i.b++),70),BB(mMn(e,(HXn(),Ydt)),272)==(Rtn(),UPt)&&(fW(i),WB(t.b,e),Lx(e,(hWn(),Uft))||hon(e,Uft,n))}function hCn(n){var t,i,r;for(t=F3(new oz(ZL(lbn(n).a.Kc(),new h))),i=new oz(ZL(fbn(n).a.Kc(),new h));dAn(i);)r=F3(new oz(ZL(lbn(BB(U5(i),17).c.i).a.Kc(),new h))),t=e.Math.max(t,r);return iln(t)}function fCn(n,t,e){var i,r,c,a;for(OTn(e,"Processor arrange node",1),r=null,c=new YT,i=spn(t.b,0);!r&&i.b!=i.d.c;)qy(TD(mMn(a=BB(b3(i),86),(qqn(),dkt))))&&(r=a);r5(c,r,c.c.b,c.c),Yzn(n,c,mcn(e,1)),HSn(e)}function lCn(n,t,e){var i,r,c;i=BB(ZAn(n,(sWn(),hSt)),21),r=0,c=0,t.a>e.a&&(i.Hc((wEn(),WMt))?r=(t.a-e.a)/2:i.Hc(QMt)&&(r=t.a-e.a)),t.b>e.b&&(i.Hc((wEn(),JMt))?c=(t.b-e.b)/2:i.Hc(YMt)&&(c=t.b-e.b)),lMn(n,r,c)}function bCn(n,t,e,i,r,c,a,u,o,s,h,f,l){cL(n.Cb,88)&&ACn(P5(BB(n.Cb,88)),4),Nrn(n,e),n.f=a,$ln(n,u),Nln(n,o),Aln(n,s),Lln(n,h),nln(n,f),qln(n,l),Yfn(n,!0),Len(n,r),n.ok(c),Ihn(n,t),null!=i&&(n.i=null,arn(n,i))}function wCn(n){var t,e;if(n.f){for(;n.n>0;){if(cL(e=(t=BB(n.k.Xb(n.n-1),72)).ak(),99)&&0!=(BB(e,18).Bb&h6n)&&(!n.e||e.Gj()!=NOt||0!=e.aj())&&null!=t.dd())return!0;--n.n}return!1}return n.n>0}function dCn(n,t,e){if(n<0)return $Rn(BWn,Pun(Gk(Ant,1),HWn,1,5,[e,iln(n)]));if(t<0)throw Hp(new _y(qWn+t));return $Rn("%s (%s) must not be greater than size (%s)",Pun(Gk(Ant,1),HWn,1,5,[e,iln(n),iln(t)]))}function gCn(n,t,e,i,r,c){var a,u,o;if(i-e<7)$bn(t,e,i,c);else if(gCn(t,n,u=e+r,o=u+((a=i+r)-u>>1),-r,c),gCn(t,n,o,a,-r,c),c.ue(n[o-1],n[o])<=0)for(;e<i;)$X(t,e++,n[u++]);else Gfn(n,u,o,a,t,e,i,c)}function pCn(n,t){var e,i,r;for(r=new Np,i=new Wb(n.c.a.b);i.a<i.c.c.length;)e=BB(n0(i),57),t.Lb(e)&&(WB(r,new OS(e,!0)),WB(r,new OS(e,!1)));Zvn(n.e),e2(r,n.d,new Jy(Pun(Gk(oit,1),HWn,679,0,[n.e])))}function vCn(n,t){var e,i,r,c,a,u,o;for(o=t.d,r=t.b.j,u=new Wb(o);u.a<u.c.c.length;)for(a=BB(n0(u),101),c=x8($Nt,ZYn,25,r.c.length,16,1),VW(n.b,a,c),e=a.a.d.p-1,i=a.c.d.p;e!=i;)c[e=(e+1)%r.c.length]=!0}function mCn(n,t){for(n.r=new Fan(n.p),Jl(n.r,n),Frn(n.r.j,n.j),yQ(n.j),DH(n.j,t),DH(n.r.e,t),rX(n),rX(n.r);0!=n.f.c.length;)G$(BB(xq(n.f,0),129));for(;0!=n.k.c.length;)G$(BB(xq(n.k,0),129));return n.r}function yCn(n,t,e){var i,r,c;if(r=itn(n.Tg(),t),(i=t-n.Ah())<0){if(!r)throw Hp(new _y(o6n+t+s6n));if(!r.Ij())throw Hp(new _y(r6n+r.ne()+c6n));(c=n.Yg(r))>=0?n.sh(c,e):TLn(n,r,e)}else Lbn(n,i,r,e)}function kCn(n){var t,e,i,r;if(e=BB(n,49).qh())try{if(i=null,(t=$$n((WM(),zAt),M_n(_bn(e))))&&(r=t.rh())&&(i=r.Wk(Xy(e.e))),i&&i!=n)return kCn(i)}catch(c){if(!cL(c=lun(c),60))throw Hp(c)}return n}function jCn(n,t,e){var i,r,c,a;if(a=null==t?0:n.b.se(t),0==(r=null==(i=n.a.get(a))?new Array:i).length)n.a.set(a,r);else if(c=hhn(n,t,r))return c.ed(e);return $X(r,r.length,new PS(t,e)),++n.c,oY(n.b),null}function ECn(n,t){var e;return h2(n.a),CU(n.a,(Prn(),Qkt),Qkt),CU(n.a,Ykt,Ykt),dq(e=new B2,Ykt,(Cbn(),ejt)),GI(ZAn(t,(Uyn(),Sjt)))!==GI((Hsn(),sjt))&&dq(e,Ykt,njt),dq(e,Ykt,tjt),aA(n.a,e),$qn(n.a,t)}function TCn(n){if(!n)return lk(),htt;var t=n.valueOf?n.valueOf():n;if(t!==n){var i=ftt[typeof t];return i?i(t):khn(typeof t)}return n instanceof Array||n instanceof e.Array?new Tl(n):new Pl(n)}function MCn(n,t,i){var r,c,a;switch(a=n.o,(c=(r=BB(oV(n.p,i),244)).i).b=SIn(r),c.a=MIn(r),c.b=e.Math.max(c.b,a.a),c.b>a.a&&!t&&(c.b=a.a),c.c=-(c.b-a.a)/2,i.g){case 1:c.d=-c.a;break;case 3:c.d=a.b}_Fn(r),GFn(r)}function SCn(n,t,i){var r,c,a;switch(a=n.o,(c=(r=BB(oV(n.p,i),244)).i).b=SIn(r),c.a=MIn(r),c.a=e.Math.max(c.a,a.b),c.a>a.b&&!t&&(c.a=a.b),c.d=-(c.a-a.b)/2,i.g){case 4:c.c=-c.b;break;case 2:c.c=a.a}_Fn(r),GFn(r)}function PCn(n,t){var e,i,r,c,a;if(!t.dc())if(r=BB(t.Xb(0),128),1!=t.gc())for(e=1;e<t.gc();)!r.j&&r.o||(c=vyn(t,e))&&(i=BB(c.a,19).a,kxn(n,r,a=BB(c.b,128),e,i,t),e=i+1,r=a);else kxn(n,r,r,1,0,t)}function CCn(n){var t,e,i,r;for(m$(r=new t_(n.d),new zr),kDn(),t=Pun(Gk(iht,1),$Vn,270,0,[Bst,Gst,Fst,Xst,qst,Hst,Ust,zst]),e=0,i=new Wb(r);i.a<i.c.c.length;)COn(BB(n0(i),101),t[e%t.length]),++e}function ICn(n,t){var e,i,r,c;if(jDn(),t.b<2)return!1;for(i=e=BB(b3(c=spn(t,0)),8);c.b!=c.d.c;){if(r=BB(b3(c),8),!Dcn(n,i)||!Dcn(n,r))return!1;i=r}return!(!Dcn(n,i)||!Dcn(n,e))}function OCn(n,t){var e,i,r,c,a;return e=Ren(a=n,"x"),nnn(new qg(t).a,e),i=Ren(a,"y"),tnn(new Gg(t).a,i),r=Ren(a,C6n),enn(new zg(t).a,r),c=Ren(a,P6n),inn(new Ug(t).a,c),c}function ACn(n,t){dRn(n,t),0!=(1&n.b)&&(n.a.a=null),0!=(2&n.b)&&(n.a.f=null),0!=(4&n.b)&&(n.a.g=null,n.a.i=null),0!=(16&n.b)&&(n.a.d=null,n.a.e=null),0!=(8&n.b)&&(n.a.b=null),0!=(32&n.b)&&(n.a.j=null,n.a.c=null)}function $Cn(n,t){var e,i;if(i=0,t.length>0)try{i=l_n(t,_Vn,DWn)}catch(r){throw cL(r=lun(r),127)?Hp(new L7(r)):Hp(r)}return!n.a&&(n.a=new Sp(n)),i<(e=n.a).i&&i>=0?BB(Wtn(e,i),56):null}function LCn(n,t){if(n<0)return $Rn(BWn,Pun(Gk(Ant,1),HWn,1,5,["index",iln(n)]));if(t<0)throw Hp(new _y(qWn+t));return $Rn("%s (%s) must be less than size (%s)",Pun(Gk(Ant,1),HWn,1,5,["index",iln(n),iln(t)]))}function NCn(n){var t,e,i,r,c;if(null==n)return zWn;for(c=new $an(FWn,"[","]"),i=0,r=(e=n).length;i<r;++i)t=e[i],c.a?oO(c.a,c.b):c.a=new lN(c.d),aO(c.a,""+t);return c.a?0==c.e.length?c.a.a:c.a.a+""+c.e:c.c}function xCn(n){var t,e,i,r,c;if(null==n)return zWn;for(c=new $an(FWn,"[","]"),i=0,r=(e=n).length;i<r;++i)t=e[i],c.a?oO(c.a,c.b):c.a=new lN(c.d),aO(c.a,""+t);return c.a?0==c.e.length?c.a.a:c.a.a+""+c.e:c.c}function DCn(n){var t,e,i,r,c;if(null==n)return zWn;for(c=new $an(FWn,"[","]"),i=0,r=(e=n).length;i<r;++i)t=e[i],c.a?oO(c.a,c.b):c.a=new lN(c.d),aO(c.a,""+t);return c.a?0==c.e.length?c.a.a:c.a.a+""+c.e:c.c}function RCn(n){var t,e,i,r,c;if(null==n)return zWn;for(c=new $an(FWn,"[","]"),i=0,r=(e=n).length;i<r;++i)t=e[i],c.a?oO(c.a,c.b):c.a=new lN(c.d),aO(c.a,""+t);return c.a?0==c.e.length?c.a.a:c.a.a+""+c.e:c.c}function KCn(n,t){var e,i,r,c,a,u;for(e=n.b.c.length,r=xq(n.b,t);2*t+1<e&&(u=c=2*t+1,(a=c+1)<e&&n.a.ue(xq(n.b,a),xq(n.b,c))<0&&(u=a),i=u,!(n.a.ue(r,xq(n.b,i))<0));)c5(n.b,t,xq(n.b,i)),t=i;c5(n.b,t,r)}function _Cn(n,t,i,r,c,a){var u,o,s,h,f;for(GI(n)===GI(i)&&(n=n.slice(t,t+c),t=0),s=i,o=t,h=t+c;o<h;)c=(u=e.Math.min(o+1e4,h))-o,(f=n.slice(o,u)).splice(0,0,r,a?c:0),Array.prototype.splice.apply(s,f),o=u,r+=c}function FCn(n,t,e){var i,r;return i=e.d,r=e.e,n.g[i.d]<=n.i[t.d]&&n.i[t.d]<=n.i[i.d]&&n.g[r.d]<=n.i[t.d]&&n.i[t.d]<=n.i[r.d]?!(n.i[i.d]<n.i[r.d]):n.i[i.d]<n.i[r.d]}function BCn(n){var t,e,i,r,c,a,u;if((i=n.a.c.length)>0)for(a=n.c.d,r=kL(XR(new xC((u=n.d.d).a,u.b),a),1/(i+1)),c=new xC(a.a,a.b),e=new Wb(n.a);e.a<e.c.c.length;)(t=BB(n0(e),559)).d.a=c.a,t.d.b=c.b,UR(c,r)}function HCn(n,t,i){var r,c,a,u,o,s;for(s=RQn,a=new Wb(GLn(n.b));a.a<a.c.c.length;)for(c=BB(n0(a),168),o=new Wb(GLn(t.b));o.a<o.c.c.length;)u=BB(n0(o),168),r=Cun(c.a,c.b,u.a,u.b,i),s=e.Math.min(s,r);return s}function qCn(n,t){if(!t)throw Hp(new gv);if(n.j=t,!n.d)switch(n.j.g){case 1:n.a.a=n.o.a/2,n.a.b=0;break;case 2:n.a.a=n.o.a,n.a.b=n.o.b/2;break;case 3:n.a.a=n.o.a/2,n.a.b=n.o.b;break;case 4:n.a.a=0,n.a.b=n.o.b/2}}function GCn(n,t){var i,r;return cL(t.g,10)&&BB(t.g,10).k==(uSn(),Mut)?RQn:f3(t)?e.Math.max(0,n.b/2-.5):(i=f2(t))?(r=Gy(MD(edn(i,(HXn(),Opt)))),e.Math.max(0,r/2-.5)):RQn}function zCn(n,t){var i,r;return cL(t.g,10)&&BB(t.g,10).k==(uSn(),Mut)?RQn:f3(t)?e.Math.max(0,n.b/2-.5):(i=f2(t))?(r=Gy(MD(edn(i,(HXn(),Opt)))),e.Math.max(0,r/2-.5)):RQn}function UCn(n){var t,e,i,r;for(r=Lfn(n.d,n.e).Kc();r.Ob();)for(i=BB(r.Pb(),11),e=new Wb(n.e==(kUn(),CIt)?i.e:i.g);e.a<e.c.c.length;)b5(t=BB(n0(e),17))||t.c.i.c==t.d.i.c||(RSn(n,t),++n.f,++n.c)}function XCn(n,t){var e,i;if(t.dc())return SQ(),SQ(),set;for(WB(i=new Np,iln(_Vn)),e=1;e<n.f;++e)null==n.a&&wRn(n),n.a[e]&&WB(i,iln(e));return 1==i.c.length?(SQ(),SQ(),set):(WB(i,iln(DWn)),dBn(t,i))}function WCn(n,t){var e,i,r,c,a,u;e=ckn(t,u=t.c.i.k!=(uSn(),Cut)?t.d:t.c).i,r=BB(RX(n.k,u),121),i=n.i[e.p].a,AK(u.i)<(e.c?E7(e.c.a,e,0):-1)?(c=r,a=i):(c=i,a=r),UNn(aM(cM(uM(rM(new Hv,0),4),c),a))}function VCn(n,t,e){var i,r,c;if(e)for(r=((i=new hz(e.a.length)).b-i.a)*i.c<0?(eS(),MNt):new XL(i);r.Ob();)(c=Amn(n,kIn(dnn(e,BB(r.Pb(),19).a))))&&(!t.b&&(t.b=new hK(KOt,t,4,7)),f9(t.b,c))}function QCn(n,t,e){var i,r,c;if(e)for(r=((i=new hz(e.a.length)).b-i.a)*i.c<0?(eS(),MNt):new XL(i);r.Ob();)(c=Amn(n,kIn(dnn(e,BB(r.Pb(),19).a))))&&(!t.c&&(t.c=new hK(KOt,t,5,8)),f9(t.c,c))}function YCn(n,t,e){var i,r;i=t.a&n.f,t.b=n.b[i],n.b[i]=t,r=t.f&n.f,t.d=n.c[r],n.c[r]=t,e?(t.e=e.e,t.e?t.e.c=t:n.a=t,t.c=e.c,t.c?t.c.e=t:n.e=t):(t.e=n.e,t.c=null,n.e?n.e.c=t:n.a=t,n.e=t),++n.i,++n.g}function JCn(n){var t,e,i;if(t=n.Pb(),!n.Ob())return t;for(i=uO(oO(new Ck,"expected one element but was: <"),t),e=0;e<4&&n.Ob();e++)uO((i.a+=FWn,i),n.Pb());throw n.Ob()&&(i.a+=", ..."),i.a+=">",Hp(new _y(i.a))}function ZCn(n,t){var e;t.d?t.d.b=t.b:n.a=t.b,t.b?t.b.d=t.d:n.e=t.d,t.e||t.c?(--(e=BB(RX(n.b,t.a),283)).a,t.e?t.e.c=t.c:e.b=t.c,t.c?t.c.e=t.e:e.c=t.e):((e=BB(v6(n.b,t.a),283)).a=0,++n.c),--n.d}function nIn(n){var t,e;return e=-n.a,t=Pun(Gk(ONt,1),WVn,25,15,[43,48,48,48,48]),e<0&&(t[0]=45,e=-e),t[1]=t[1]+((e/60|0)/10|0)&QVn,t[2]=t[2]+(e/60|0)%10&QVn,t[3]=t[3]+(e%60/10|0)&QVn,t[4]=t[4]+e%10&QVn,Bdn(t,0,t.length)}function tIn(n,t,e){var i,r;for(i=t.d,r=e.d;i.a-r.a==0&&i.b-r.b==0;)i.a+=H$n(n,26)*rYn+H$n(n,27)*cYn-.5,i.b+=H$n(n,26)*rYn+H$n(n,27)*cYn-.5,r.a+=H$n(n,26)*rYn+H$n(n,27)*cYn-.5,r.b+=H$n(n,26)*rYn+H$n(n,27)*cYn-.5}function eIn(n){var t,e,i,r;for(n.g=new Hbn(BB(yX(FIt),290)),i=0,kUn(),e=sIt,t=0;t<n.j.c.length;t++)(r=BB(xq(n.j,t),11)).j!=e&&(i!=t&&mG(n.g,e,new rI(iln(i),iln(t))),e=r.j,i=t);mG(n.g,e,new rI(iln(i),iln(t)))}function iIn(n){var t,e,i,r,c;for(e=0,t=new Wb(n.b);t.a<t.c.c.length;)for(r=new Wb(BB(n0(t),29).a);r.a<r.c.c.length;)for((i=BB(n0(r),10)).p=e++,c=new Wb(i.j);c.a<c.c.c.length;)BB(n0(c),11).p=e++}function rIn(n,t,e,i,r){var c,a,u,o;if(t)for(a=t.Kc();a.Ob();)for(o=cRn(BB(a.Pb(),10),(ain(),qvt),e).Kc();o.Ob();)u=BB(o.Pb(),11),(c=BB(qI(AY(r.f,u)),112))||(c=new Fan(n.d),i.c[i.c.length]=c,UPn(c,u,r))}function cIn(n,t){var e,i,r;if(!(r=Fqn((IPn(),Z$t),n.Tg(),t)))throw Hp(new _y(r6n+t.ne()+c6n));ZM(),BB(r,66).Oj()||(r=Z1(B7(Z$t,r))),i=BB((e=n.Yg(r))>=0?n._g(e,!0,!0):cOn(n,r,!0),153),BB(i,215).ol(t)}function aIn(n){var t,i;return n>-0x800000000000&&n<0x800000000000?0==n?0:((t=n<0)&&(n=-n),i=CJ(e.Math.floor(e.Math.log(n)/.6931471805599453)),(!t||n!=e.Math.pow(2,i))&&++i,i):Van(fan(n))}function uIn(n){var t,e,i,r,c,a,u;for(c=new fA,e=new Wb(n);e.a<e.c.c.length;)a=(t=BB(n0(e),129)).a,u=t.b,c.a._b(a)||c.a._b(u)||(r=a,i=u,a.e.b+a.j.b>2&&u.e.b+u.j.b<=2&&(r=u,i=a),c.a.zc(r,c),r.q=i);return c}function oIn(n,t){var e,i,r;return qan(i=new $vn(n),t),hon(i,(hWn(),Vft),t),hon(i,(HXn(),ept),(QEn(),XCt)),hon(i,kdt,(wvn(),OMt)),Bl(i,(uSn(),Mut)),CZ(e=new CSn,i),qCn(e,(kUn(),CIt)),CZ(r=new CSn,i),qCn(r,oIt),i}function sIn(n){switch(n.g){case 0:return new Ny((oin(),Omt));case 1:return new df;case 2:return new jf;default:throw Hp(new _y("No implementation is available for the crossing minimizer "+(null!=n.f?n.f:""+n.g)))}}function hIn(n,t){var e,i,r,c;for(n.c[t.p]=!0,WB(n.a,t),c=new Wb(t.j);c.a<c.c.c.length;)for(e=new m6((r=BB(n0(c),11)).b);y$(e.a)||y$(e.b);)i=ngn(r,BB(y$(e.a)?n0(e.a):n0(e.b),17)).i,n.c[i.p]||hIn(n,i)}function fIn(n){var t,i,r,c,a,u,o;for(u=0,i=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));i.e!=i.i.gc();)o=(t=BB(kpn(i),33)).g,c=t.f,r=e.Math.sqrt(o*o+c*c),u=e.Math.max(r,u),a=fIn(t),u=e.Math.max(a,u);return u}function lIn(){lIn=O,rIt=new XC("OUTSIDE",0),eIt=new XC("INSIDE",1),iIt=new XC("NEXT_TO_PORT_IF_POSSIBLE",2),tIt=new XC("ALWAYS_SAME_SIDE",3),nIt=new XC("ALWAYS_OTHER_SAME_SIDE",4),cIt=new XC("SPACE_EFFICIENT",5)}function bIn(n,t,e){var i,r,c,a;return $in(i=K2(n,(tE(),r=new jm,!!e&&nNn(r,e),r),t),R2(t,q6n)),STn(t,i),o$n(t,i),OCn(t,i),c=N2(t,"ports"),PLn((a=new pI(n,i)).a,a.b,c),xon(n,t,i),aun(n,t,i),i}function wIn(n){var t,e;return e=-n.a,t=Pun(Gk(ONt,1),WVn,25,15,[43,48,48,58,48,48]),e<0&&(t[0]=45,e=-e),t[1]=t[1]+((e/60|0)/10|0)&QVn,t[2]=t[2]+(e/60|0)%10&QVn,t[4]=t[4]+(e%60/10|0)&QVn,t[5]=t[5]+e%10&QVn,Bdn(t,0,t.length)}function dIn(n){var t;return t=Pun(Gk(ONt,1),WVn,25,15,[71,77,84,45,48,48,58,48,48]),n<=0&&(t[3]=43,n=-n),t[4]=t[4]+((n/60|0)/10|0)&QVn,t[5]=t[5]+(n/60|0)%10&QVn,t[7]=t[7]+(n%60/10|0)&QVn,t[8]=t[8]+n%10&QVn,Bdn(t,0,t.length)}function gIn(n){var t,e,i,r,c;if(null==n)return zWn;for(c=new $an(FWn,"[","]"),i=0,r=(e=n).length;i<r;++i)t=e[i],c.a?oO(c.a,c.b):c.a=new lN(c.d),aO(c.a,""+vz(t));return c.a?0==c.e.length?c.a.a:c.a.a+""+c.e:c.c}function pIn(n,t){var i,r,c;for(c=DWn,r=new Wb(kbn(t));r.a<r.c.c.length;)(i=BB(n0(r),213)).f&&!n.c[i.c]&&(n.c[i.c]=!0,c=e.Math.min(c,pIn(n,Nbn(i,t))));return n.i[t.d]=n.j,n.g[t.d]=e.Math.min(c,n.j++),n.g[t.d]}function vIn(n,t){var e,i,r;for(r=BB(BB(h6(n.r,t),21),84).Kc();r.Ob();)(i=BB(r.Pb(),111)).e.b=(e=i.b).Xe((sWn(),aPt))?e.Hf()==(kUn(),sIt)?-e.rf().b-Gy(MD(e.We(aPt))):Gy(MD(e.We(aPt))):e.Hf()==(kUn(),sIt)?-e.rf().b:0}function mIn(n){var t,e,i,r,c,a,u;for(e=QA(n.e),c=kL(Bx(B$(VA(n.e)),n.d*n.a,n.c*n.b),-.5),t=e.a-c.a,r=e.b-c.b,u=0;u<n.c;u++){for(i=t,a=0;a<n.d;a++)Wbn(n.e,new UV(i,r,n.a,n.b))&&FRn(n,a,u,!1,!0),i+=n.a;r+=n.b}}function yIn(n){var t,e,i;if(qy(TD(ZAn(n,(sWn(),SSt))))){for(i=new Np,e=new oz(ZL(dLn(n).a.Kc(),new h));dAn(e);)QIn(t=BB(U5(e),79))&&qy(TD(ZAn(t,PSt)))&&(i.c[i.c.length]=t);return i}return SQ(),SQ(),set}function kIn(n){var t;if(t=!1,cL(n,204))return t=!0,BB(n,204).a;if(!t&&cL(n,258)&&BB(n,258).a%1==0)return t=!0,iln(QO(BB(n,258).a));throw Hp(new ek("Id must be a string or an integer: '"+n+"'."))}function jIn(n,t){var e,i,r,c,a,u;for(c=null,r=new rU((!n.a&&(n.a=new Sp(n)),n.a));bOn(r);)if(YBn(a=(e=BB(aLn(r),56)).Tg()),null!=(i=(u=a.o)&&e.mh(u)?pK(uun(u),e.ah(u)):null)&&mK(i,t)){c=e;break}return c}function EIn(n,t,e){var i,r,c,a,u;if(lin(e,"occurrences"),0==e)return(u=BB(lfn(OQ(n.a),t),14))?u.gc():0;if(!(a=BB(lfn(OQ(n.a),t),14)))return 0;if(e>=(c=a.gc()))a.$b();else for(r=a.Kc(),i=0;i<e;i++)r.Pb(),r.Qb();return c}function TIn(n,t,e){var i,r,c;return lin(e,"oldCount"),lin(0,"newCount"),((i=BB(lfn(OQ(n.a),t),14))?i.gc():0)==e&&(lin(0,"count"),(c=-((r=BB(lfn(OQ(n.a),t),14))?r.gc():0))>0?wk():c<0&&EIn(n,t,-c),!0)}function MIn(n){var t,e,i,r,c,a;if(a=0,0==n.b){for(t=0,r=0,c=(i=Xvn(n,!0)).length;r<c;++r)(e=i[r])>0&&(a+=e,++t);t>1&&(a+=n.c*(t-1))}else a=Kk(ecn(LV(AV(LU(n.a),new Mn),new Sn)));return a>0?a+n.n.d+n.n.a:0}function SIn(n){var t,e,i,r,c,a;if(a=0,0==n.b)a=Kk(ecn(LV(AV(LU(n.a),new En),new Tn)));else{for(t=0,r=0,c=(i=Wvn(n,!0)).length;r<c;++r)(e=i[r])>0&&(a+=e,++t);t>1&&(a+=n.c*(t-1))}return a>0?a+n.n.b+n.n.c:0}function PIn(n,t){var i,r,c,a;for(i=(a=BB(oV(n.b,t),124)).a,c=BB(BB(h6(n.r,t),21),84).Kc();c.Ob();)(r=BB(c.Pb(),111)).c&&(i.a=e.Math.max(i.a,VH(r.c)));if(i.a>0)switch(t.g){case 2:a.n.c=n.s;break;case 4:a.n.b=n.s}}function CIn(n,t){var e,i,r;return 0==(e=BB(mMn(t,(fRn(),Zct)),19).a-BB(mMn(n,Zct),19).a)?(i=XR(B$(BB(mMn(n,(Mrn(),uat)),8)),BB(mMn(n,oat),8)),r=XR(B$(BB(mMn(t,uat),8)),BB(mMn(t,oat),8)),Pln(i.a*i.b,r.a*r.b)):e}function IIn(n,t){var e,i,r;return 0==(e=BB(mMn(t,(CAn(),$kt)),19).a-BB(mMn(n,$kt),19).a)?(i=XR(B$(BB(mMn(n,(qqn(),Zyt)),8)),BB(mMn(n,nkt),8)),r=XR(B$(BB(mMn(t,Zyt),8)),BB(mMn(t,nkt),8)),Pln(i.a*i.b,r.a*r.b)):e}function OIn(n){var t,e;return(e=new Ck).a+="e_",null!=(t=Xan(n))&&(e.a+=""+t),n.c&&n.d&&(oO((e.a+=" ",e),pyn(n.c)),oO(uO((e.a+="[",e),n.c.i),"]"),oO((e.a+=e1n,e),pyn(n.d)),oO(uO((e.a+="[",e),n.d.i),"]")),e.a}function AIn(n){switch(n.g){case 0:return new pf;case 1:return new vf;case 2:return new gf;case 3:return new mf;default:throw Hp(new _y("No implementation is available for the layout phase "+(null!=n.f?n.f:""+n.g)))}}function $In(n,t,i,r,c){var a;switch(a=0,c.g){case 1:a=e.Math.max(0,t.b+n.b-(i.b+r));break;case 3:a=e.Math.max(0,-n.b-r);break;case 2:a=e.Math.max(0,-n.a-r);break;case 4:a=e.Math.max(0,t.a+n.a-(i.a+r))}return a}function LIn(n,t,e){var i,r,c;if(e)for(c=((i=new hz(e.a.length)).b-i.a)*i.c<0?(eS(),MNt):new XL(i);c.Ob();)r=x2(e,BB(c.Pb(),19).a),L6n in r.a||N6n in r.a?sKn(n,r,t):EXn(n,r,t),PL(BB(RX(n.b,Qdn(r)),79))}function NIn(n){var t,e;switch(n.b){case-1:return!0;case 0:return(e=n.t)>1||-1==e||(t=Ikn(n))&&(ZM(),t.Cj()==E9n)?(n.b=-1,!0):(n.b=1,!1);default:return!1}}function xIn(n,t){var e,i,r,c,a;for(!t.s&&(t.s=new eU(FAt,t,21,17)),c=null,r=0,a=(i=t.s).i;r<a;++r)switch(DW(B7(n,e=BB(Wtn(i,r),170)))){case 2:case 3:!c&&(c=new Np),c.c[c.c.length]=e}return c||(SQ(),SQ(),set)}function DIn(n,t){var e,i,r,c;if(QXn(n),0!=n.c||123!=n.a)throw Hp(new ak(kWn((u$(),P8n))));if(c=112==t,i=n.d,(e=lx(n.i,125,i))<0)throw Hp(new ak(kWn((u$(),C8n))));return r=fx(n.i,i,e),n.d=e+1,b9(r,c,512==(512&n.e))}function RIn(n){var t;if((t=BB(mMn(n,(HXn(),qdt)),314))==(Oin(),hht))throw Hp(new ck("The hierarchy aware processor "+t+" in child node "+n+" is only allowed if the root node specifies the same hierarchical processor."))}function KIn(n,t){var e,i,r,c;for(G_(),e=null,r=t.Kc();r.Ob();)(i=BB(r.Pb(),128)).o||(WB((c=new PBn(F$(i.a),bH(i.a),null,BB(i.d.a.ec().Kc().Pb(),17))).c,i.a),n.c[n.c.length]=c,e&&WB(e.d,c),e=c)}function _In(n,t){var e,i,r;if(t)if(0!=(4&t.i))for(i="[]",e=t.c;;e=e.c){if(0==(4&e.i)){Hin(n,r=Uy((ED(e),e.o+i))),xen(n,r);break}i+="[]"}else Hin(n,r=Uy((ED(t),t.o))),xen(n,r);else Hin(n,null),xen(n,null);n.yk(t)}function FIn(n,t,e,i,r){var c,a,u,o;return GI(o=hD(n,BB(r,56)))!==GI(r)?(u=BB(n.g[e],72),jL(n,e,sTn(n,e,c=Z3(t,o))),mA(n.e)&&(KEn(a=LY(n,9,c.ak(),r,o,i,!1),new N7(n.e,9,n.c,u,c,i,!1)),$7(a)),o):r}function BIn(n,t,e){var i,r,c,a,u,o;for(i=BB(h6(n.c,t),15),r=BB(h6(n.c,e),15),c=i.Zc(i.gc()),a=r.Zc(r.gc());c.Sb()&&a.Sb();)if((u=BB(c.Ub(),19))!=(o=BB(a.Ub(),19)))return E$(u.a,o.a);return c.Ob()||a.Ob()?c.Ob()?1:-1:0}function HIn(n,t){var e,i;try{return X1(n.a,t)}catch(r){if(cL(r=lun(r),32)){try{if(i=l_n(t,_Vn,DWn),e=Vj(n.a),i>=0&&i<e.length)return e[i]}catch(c){if(!cL(c=lun(c),127))throw Hp(c)}return null}throw Hp(r)}}function qIn(n,t){var e,i,r;if(r=Fqn((IPn(),Z$t),n.Tg(),t))return ZM(),BB(r,66).Oj()||(r=Z1(B7(Z$t,r))),i=BB((e=n.Yg(r))>=0?n._g(e,!0,!0):cOn(n,r,!0),153),BB(i,215).ll(t);throw Hp(new _y(r6n+t.ne()+u6n))}function GIn(){var n;return tS(),Q$t?BB($$n((WM(),zAt),V9n),1939):(RO(Hnt,new Cs),nzn(),n=BB(cL(SJ((WM(),zAt),V9n),547)?SJ(zAt,V9n):new UW,547),Q$t=!0,oWn(n),TWn(n),VW((VM(),ZAt),n,new Go),mZ(zAt,V9n,n),n)}function zIn(n,t){var e,i,r,c;n.j=-1,mA(n.e)?(e=n.i,c=0!=n.i,c6(n,t),i=new N7(n.e,3,n.c,null,t,e,c),r=t.Qk(n.e,n.c,null),(r=IEn(n,t,r))?(r.Ei(i),r.Fi()):ban(n.e,i)):(c6(n,t),(r=t.Qk(n.e,n.c,null))&&r.Fi())}function UIn(n,t){var e,i,r;if(r=0,(i=t[0])>=n.length)return-1;for(b1(i,n.length),e=n.charCodeAt(i);e>=48&&e<=57&&(r=10*r+(e-48),!(++i>=n.length));)b1(i,n.length),e=n.charCodeAt(i);return i>t[0]?t[0]=i:r=-1,r}function XIn(n){var t,i,r,c,a;return i=c=BB(n.a,19).a,r=a=BB(n.b,19).a,t=e.Math.max(e.Math.abs(c),e.Math.abs(a)),c<=0&&c==a?(i=0,r=a-1):c==-t&&a!=t?(i=a,r=c,a>=0&&++i):(i=-a,r=c),new rI(iln(i),iln(r))}function WIn(n,t,e,i){var r,c,a,u,o,s;for(r=0;r<t.o;r++)for(c=r-t.j+e,a=0;a<t.p;a++)if(o=c,s=u=a-t.k+i,o+=n.j,s+=n.k,o>=0&&s>=0&&o<n.o&&s<n.p&&(!mmn(t,r,a)&&imn(n,c,u)||vmn(t,r,a)&&!rmn(n,c,u)))return!0;return!1}function VIn(n,t,e){var i,r,c,a;c=n.c,a=n.d,r=(Aon(Pun(Gk(PMt,1),sVn,8,0,[c.i.n,c.n,c.a])).b+Aon(Pun(Gk(PMt,1),sVn,8,0,[a.i.n,a.n,a.a])).b)/2,i=null,i=c.j==(kUn(),oIt)?new xC(t+c.i.c.c.a+e,r):new xC(t-e,r),Kx(n.a,0,i)}function QIn(n){var t,e,i;for(t=null,e=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c)])));dAn(e);)if(i=PTn(BB(U5(e),82)),t){if(t!=i)return!1}else t=i;return!0}function YIn(n,t,e){var i;if(++n.j,t>=n.i)throw Hp(new Ay(u8n+t+o8n+n.i));if(e>=n.i)throw Hp(new Ay(s8n+e+o8n+n.i));return i=n.g[e],t!=e&&(t<e?aHn(n.g,t,n.g,t+1,e-t):aHn(n.g,e+1,n.g,e,t-e),$X(n.g,t,i),n.ei(t,i,e),n.ci()),i}function JIn(n,t,e){var i;if(i=BB(n.c.xc(t),14))return!!i.Fc(e)&&(++n.d,!0);if((i=n.ic(t)).Fc(e))return++n.d,n.c.zc(t,i),!0;throw Hp(new g5("New Collection violated the Collection spec"))}function ZIn(n){var t,e,i;return n<0?0:0==n?32:(e=16-(t=(i=-(n>>16))>>16&16),e+=t=(i=(n>>=t)-256)>>16&8,e+=t=(i=(n<<=t)-_Qn)>>16&4,(e+=t=(i=(n<<=t)-hVn)>>16&2)+2-(t=(i=(n<<=t)>>14)&~(i>>1)))}function nOn(n){var t,e,i,r;for(MQ(),Sct=new Np,Mct=new xp,Tct=new Np,!n.a&&(n.a=new eU(UOt,n,10,11)),xUn(t=n.a),r=new AL(t);r.e!=r.i.gc();)i=BB(kpn(r),33),-1==E7(Sct,i,0)&&(e=new Np,WB(Tct,e),Rgn(i,e));return Tct}function tOn(n,t,e){var i,r,c,a;n.a=e.b.d,cL(t,352)?(e5(c=qSn(r=cDn(BB(t,79),!1,!1)),i=new Nw(n)),VFn(c,r),null!=t.We((sWn(),OSt))&&e5(BB(t.We(OSt),74),i)):((a=BB(t,470)).Hg(a.Dg()+n.a.a),a.Ig(a.Eg()+n.a.b))}function eOn(n,t){var i,r,c,a,u,o,s,h;for(h=Gy(MD(mMn(t,(HXn(),Npt)))),s=n[0].n.a+n[0].o.a+n[0].d.c+h,o=1;o<n.length;o++)r=n[o].n,c=n[o].o,i=n[o].d,(a=r.a-i.b-s)<0&&(r.a-=a),(u=t.f).a=e.Math.max(u.a,r.a+c.a),s=r.a+c.a+i.c+h}function iOn(n,t){var e,i,r,c,a,u;return i=BB(BB(RX(n.g,t.a),46).a,65),r=BB(BB(RX(n.g,t.b),46).a,65),(e=nqn(c=i.b,a=r.b))>=0?e:(u=lW(XR(new xC(a.c+a.b/2,a.d+a.a/2),new xC(c.c+c.b/2,c.d+c.a/2))),-(Y_n(c,a)-1)*u)}function rOn(n,t,e){var i;JT(new Rq(null,(!e.a&&(e.a=new eU(FOt,e,6,6)),new w1(e.a,16))),new eI(n,t)),JT(new Rq(null,(!e.n&&(e.n=new eU(zOt,e,1,7)),new w1(e.n,16))),new iI(n,t)),(i=BB(ZAn(e,(sWn(),OSt)),74))&&Yrn(i,n,t)}function cOn(n,t,e){var i,r,c;if(c=Fqn((IPn(),Z$t),n.Tg(),t))return ZM(),BB(c,66).Oj()||(c=Z1(B7(Z$t,c))),r=BB((i=n.Yg(c))>=0?n._g(i,!0,!0):cOn(n,c,!0),153),BB(r,215).hl(t,e);throw Hp(new _y(r6n+t.ne()+u6n))}function aOn(n,t,e,i){var r,c,a,u,o;if(r=n.d[t])if(c=r.g,o=r.i,null!=i){for(u=0;u<o;++u)if((a=BB(c[u],133)).Sh()==e&&Nfn(i,a.cd()))return a}else for(u=0;u<o;++u)if(GI((a=BB(c[u],133)).cd())===GI(i))return a;return null}function uOn(n,t){var e;if(t<0)throw Hp(new Oy("Negative exponent"));if(0==t)return Jtt;if(1==t||swn(n,Jtt)||swn(n,eet))return n;if(!fAn(n,0)){for(e=1;!fAn(n,e);)++e;return Nnn(vwn(e*t),uOn(z5(n,e),t))}return mTn(n,t)}function oOn(n,t){var e,i,r;if(GI(n)===GI(t))return!0;if(null==n||null==t)return!1;if(n.length!=t.length)return!1;for(e=0;e<n.length;++e)if(i=n[e],r=t[e],!(GI(i)===GI(r)||null!=i&&Nfn(i,r)))return!1;return!0}function sOn(n){var t,e,i;for(kM(),this.b=Vat,this.c=(Ffn(),BPt),this.f=(yM(),zat),this.a=n,tj(this,new Ct),kNn(this),i=new Wb(n.b);i.a<i.c.c.length;)(e=BB(n0(i),81)).d||(t=new Pgn(Pun(Gk(Qat,1),HWn,81,0,[e])),WB(n.a,t))}function hOn(n,t,e){var i,r,c,a,u,o;if(!n||0==n.c.length)return null;for(c=new KY(t,!e),r=new Wb(n);r.a<r.c.c.length;)i=BB(n0(r),70),USn(c,(gM(),new Bw(i)));return(a=c.i).a=(o=c.n,c.e.b+o.d+o.a),a.b=(u=c.n,c.e.a+u.b+u.c),c}function fOn(n){var t,e,i,r,c,a,u;for(hA(u=n2(n.a),new Pe),e=null,c=0,a=(r=u).length;c<a&&(i=r[c]).k==(uSn(),Mut);++c)(t=BB(mMn(i,(hWn(),Qft)),61))!=(kUn(),CIt)&&t!=oIt||(e&&BB(mMn(e,clt),15).Fc(i),e=i)}function lOn(n,t,e){var i,r,c,a,u,o;l1(t,n.c.length),u=BB(n.c[t],329),s6(n,t),u.b/2>=e&&(i=t,c=(o=(u.c+u.a)/2)-e,u.c<=o-e&&kG(n,i++,new kB(u.c,c)),(a=o+e)<=u.a&&(r=new kB(a,u.a),LZ(i,n.c.length),MS(n.c,i,r)))}function bOn(n){var t;if(n.c||null!=n.g){if(null==n.g)return!0;if(0==n.i)return!1;t=BB(n.g[n.i-1],47)}else n.d=n.si(n.f),f9(n,n.d),t=n.d;return t==n.b&&null.km>=null.jm()?(aLn(n),bOn(n)):t.Ob()}function wOn(n,t,e){var i,r,c,a;if(!(a=e)&&(a=LH(new Xm,0)),OTn(a,qZn,1),$Gn(n.c,t),1==(c=RGn(n.a,t)).gc())VHn(BB(c.Xb(0),37),a);else for(r=1/c.gc(),i=c.Kc();i.Ob();)VHn(BB(i.Pb(),37),mcn(a,r));Ek(n.a,c,t),FDn(t),HSn(a)}function dOn(n){if(this.a=n,n.c.i.k==(uSn(),Mut))this.c=n.c,this.d=BB(mMn(n.c.i,(hWn(),Qft)),61);else{if(n.d.i.k!=Mut)throw Hp(new _y("Edge "+n+" is not an external edge."));this.c=n.d,this.d=BB(mMn(n.d.i,(hWn(),Qft)),61)}}function gOn(n,t){var e,i,r;r=n.b,n.b=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,3,r,n.b)),t?t!=n&&(Nrn(n,t.zb),$en(n,t.d),Fin(n,null==(e=null==(i=t.c)?t.zb:i)||mK(e,t.zb)?null:e)):(Nrn(n,null),$en(n,0),Fin(n,null))}function pOn(n){var t,e;if(n.f){for(;n.n<n.o;){if(cL(e=(t=BB(n.j?n.j.pi(n.n):n.k.Xb(n.n),72)).ak(),99)&&0!=(BB(e,18).Bb&h6n)&&(!n.e||e.Gj()!=NOt||0!=e.aj())&&null!=t.dd())return!0;++n.n}return!1}return n.n<n.o}function vOn(n,t){var e;this.e=(WX(),yX(n),WX(),Nwn(n)),this.c=(yX(t),Nwn(t)),aN(this.e.Hd().dc()==this.c.Hd().dc()),this.d=vbn(this.e),this.b=vbn(this.c),e=kq(Ant,[sVn,HWn],[5,1],5,[this.e.Hd().gc(),this.c.Hd().gc()],2),this.a=e,din(this)}function mOn(n){var t=(!Znt&&(Znt=QUn()),Znt);return'"'+n.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,(function(n){return IJ(n,t)}))+'"'}function yOn(n){var t,e;for(CQ(),this.b=hit,this.c=lit,this.g=(pM(),sit),this.d=(Ffn(),BPt),this.a=n,yNn(this),e=new Wb(n.b);e.a<e.c.c.length;)!(t=BB(n0(e),57)).a&&IN(Xen(new Xv,Pun(Gk(bit,1),HWn,57,0,[t])),n),t.e=new gY(t.d)}function kOn(n){var t,e,i,r,c;for(r=n.e.c.length,i=x8(Rnt,nZn,15,r,0,1),c=new Wb(n.e);c.a<c.c.c.length;)i[BB(n0(c),144).b]=new YT;for(e=new Wb(n.c);e.a<e.c.c.length;)i[(t=BB(n0(e),282)).c.b].Fc(t),i[t.d.b].Fc(t);return i}function jOn(n){var t,e,i,r,c,a;for(a=sx(n.c.length),r=new Wb(n);r.a<r.c.c.length;){for(i=BB(n0(r),10),c=new Rv,e=new oz(ZL(lbn(i).a.Kc(),new h));dAn(e);)(t=BB(U5(e),17)).c.i==t.d.i||TU(c,t.d.i);a.c[a.c.length]=c}return a}function EOn(n,t){var e,i,r,c,a;if(t>=(a=null==(e=BB(yan(n.a,4),126))?0:e.length))throw Hp(new tK(t,a));return r=e[t],1==a?i=null:(aHn(e,0,i=x8(dAt,i9n,415,a-1,0,1),0,t),(c=a-t-1)>0&&aHn(e,t+1,i,t,c)),Fgn(n,i),eCn(n,t,r),r}function TOn(){TOn=O,lLt=BB(Wtn(QQ((cE(),gLt).qb),6),34),sLt=BB(Wtn(QQ(gLt.qb),3),34),hLt=BB(Wtn(QQ(gLt.qb),4),34),fLt=BB(Wtn(QQ(gLt.qb),5),18),oEn(lLt),oEn(sLt),oEn(hLt),oEn(fLt),bLt=new Jy(Pun(Gk(FAt,1),N9n,170,0,[lLt,sLt]))}function MOn(n,t){var e;this.d=new lm,this.b=t,this.e=new wA(t.qf()),e=n.u.Hc((lIn(),iIt)),n.u.Hc(eIt)?n.D?this.a=e&&!t.If():this.a=!0:n.u.Hc(rIt)?this.a=!!e&&!(t.zf().Kc().Ob()||t.Bf().Kc().Ob()):this.a=!1}function SOn(n,t){var e,i,r,c;for(e=n.o.a,c=BB(BB(h6(n.r,t),21),84).Kc();c.Ob();)(r=BB(c.Pb(),111)).e.a=(i=r.b).Xe((sWn(),aPt))?i.Hf()==(kUn(),CIt)?-i.rf().a-Gy(MD(i.We(aPt))):e+Gy(MD(i.We(aPt))):i.Hf()==(kUn(),CIt)?-i.rf().a:e}function POn(n,t){var e,i,r;e=BB(mMn(n,(HXn(),Udt)),103),r=BB(ZAn(t,upt),61),(i=BB(mMn(n,ept),98))!=(QEn(),QCt)&&i!=YCt?r==(kUn(),PIt)&&(r=OFn(t,e))==PIt&&(r=hwn(e)):r=XHn(t)>0?hwn(e):Tln(hwn(e)),Ypn(t,upt,r)}function COn(n,t){var e,i,r,c,a;for(a=n.j,t.a!=t.b&&m$(a,new Ur),r=a.c.length/2|0,i=0;i<r;i++)l1(i,a.c.length),(c=BB(a.c[i],113)).c&&qCn(c.d,t.a);for(e=r;e<a.c.length;e++)l1(e,a.c.length),(c=BB(a.c[e],113)).c&&qCn(c.d,t.b)}function IOn(n,t,e){var i,r,c;return i=n.c[t.c.p][t.p],r=n.c[e.c.p][e.p],null!=i.a&&null!=r.a?((c=Tz(i.a,r.a))<0?uKn(n,t,e):c>0&&uKn(n,e,t),c):null!=i.a?(uKn(n,t,e),-1):null!=r.a?(uKn(n,e,t),1):0}function OOn(n,t){var e,i,r,c;n.ej()?(e=n.Vi(),c=n.fj(),++n.j,n.Hi(e,n.oi(e,t)),i=n.Zi(3,null,t,e,c),n.bj()&&(r=n.cj(t,null))?(r.Ei(i),r.Fi()):n.$i(i)):(eW(n,t),n.bj()&&(r=n.cj(t,null))&&r.Fi())}function AOn(n,t){var e,i,r,c,a;for(a=axn(n.e.Tg(),t),r=new go,e=BB(n.g,119),c=n.i;--c>=0;)i=e[c],a.rl(i.ak())&&f9(r,i);!aXn(n,r)&&mA(n.e)&&Lv(n,t.$j()?LY(n,6,t,(SQ(),set),null,-1,!1):LY(n,t.Kj()?2:1,t,null,null,-1,!1))}function $On(){var n,t;for($On=O,aet=x8(oet,sVn,91,32,0,1),uet=x8(oet,sVn,91,32,0,1),n=1,t=0;t<=18;t++)aet[t]=npn(n),uet[t]=npn(yz(n,t)),n=cbn(n,5);for(;t<uet.length;t++)aet[t]=Nnn(aet[t-1],aet[1]),uet[t]=Nnn(uet[t-1],(ODn(),net))}function LOn(n,t){var e,i,r,c;return n.a==(JMn(),cft)||(r=t.a.c,e=t.a.c+t.a.b,!(t.j&&(c=(i=t.A).c.c.a-i.o.a/2,r-(i.n.a+i.o.a)>c)||t.q&&(c=(i=t.C).c.c.a-i.o.a/2,i.n.a-e>c)))}function NOn(n,t){OTn(t,"Partition preprocessing",1),JT(BB(P4(AV(wnn(AV(new Rq(null,new w1(n.a,16)),new vi),new mi),new yi),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15).Oc(),new ki),HSn(t)}function xOn(n){var t,e,i,r,c,a;for(qZ(),e=new v4,i=new Wb(n.e.b);i.a<i.c.c.length;)for(c=new Wb(BB(n0(i),29).a);c.a<c.c.c.length;)r=BB(n0(c),10),(t=BB(lnn(e,a=n.g[r.p]),15))||Jgn(e,a,t=new Np),t.Fc(r);return e}function DOn(n,t){var e,i,r,c,a;for(r=t.b.b,n.a=x8(Rnt,nZn,15,r,0,1),n.b=x8($Nt,ZYn,25,r,16,1),a=spn(t.b,0);a.b!=a.d.c;)c=BB(b3(a),86),n.a[c.g]=new YT;for(i=spn(t.a,0);i.b!=i.d.c;)e=BB(b3(i),188),n.a[e.b.g].Fc(e),n.a[e.c.g].Fc(e)}function ROn(n){var t;return 0!=(64&n.Db)?P$n(n):((t=new fN(P$n(n))).a+=" (startX: ",vE(t,n.j),t.a+=", startY: ",vE(t,n.k),t.a+=", endX: ",vE(t,n.b),t.a+=", endY: ",vE(t,n.c),t.a+=", identifier: ",cO(t,n.d),t.a+=")",t.a)}function KOn(n){var t;return 0!=(64&n.Db)?kfn(n):((t=new fN(kfn(n))).a+=" (ordered: ",yE(t,0!=(256&n.Bb)),t.a+=", unique: ",yE(t,0!=(512&n.Bb)),t.a+=", lowerBound: ",mE(t,n.s),t.a+=", upperBound: ",mE(t,n.t),t.a+=")",t.a)}function _On(n,t,e,i,r,c,a,u){var o;return cL(n.Cb,88)&&ACn(P5(BB(n.Cb,88)),4),Nrn(n,e),n.f=i,$ln(n,r),Nln(n,c),Aln(n,a),Lln(n,!1),nln(n,!0),qln(n,u),Yfn(n,!0),Len(n,0),n.b=0,Nen(n,1),(o=HTn(n,t,null))&&o.Fi(),Gln(n,!1),n}function FOn(n,t){var i,r;return BB(SJ(n.a,t),512)||(i=new y5(t),k5(),xK(i,FOn(n,fx(r=Qet?null:i.c,0,e.Math.max(0,mN(r,YTn(46)))))),0==(Qet?null:i.c).length&&zD(i,new X),mZ(n.a,Qet?null:i.c,i),i)}function BOn(n,t){var e;n.b=t,n.g=new Np,e=JOn(n.b),n.e=e,n.f=e,n.c=qy(TD(mMn(n.b,(_kn(),jit)))),n.a=MD(mMn(n.b,(sWn(),cSt))),null==n.a&&(n.a=1),Gy(n.a)>1?n.e*=Gy(n.a):n.f/=Gy(n.a),Chn(n),ggn(n),TRn(n),hon(n.b,(Epn(),gct),n.g)}function HOn(n,t,e){var i,r,c,a,u;for(i=0,u=e,t||(i=e*(n.c.length-1),u*=-1),c=new Wb(n);c.a<c.c.c.length;){for(hon(r=BB(n0(c),10),(HXn(),kdt),(wvn(),OMt)),r.o.a=i,a=DSn(r,(kUn(),oIt)).Kc();a.Ob();)BB(a.Pb(),11).n.a=i;i+=u}}function qOn(n,t,e){var i,r,c;n.ej()?(c=n.fj(),Ifn(n,t,e),i=n.Zi(3,null,e,t,c),n.bj()?(r=n.cj(e,null),n.ij()&&(r=n.jj(e,r)),r?(r.Ei(i),r.Fi()):n.$i(i)):n.$i(i)):(Ifn(n,t,e),n.bj()&&(r=n.cj(e,null))&&r.Fi())}function GOn(n,t,e){var i,r,c,a,u,o;return(u=n.Gk(e))!=e?(a=n.g[t],o=u,jL(n,t,n.oi(t,o)),c=a,n.gi(t,o,c),n.rk()&&(i=e,r=n.dj(i,null),!BB(u,49).eh()&&(r=n.cj(o,r)),r&&r.Fi()),mA(n.e)&&Lv(n,n.Zi(9,e,u,t,!1)),u):e}function zOn(n,t){var e,i,r;for(e=new Wb(n.a.a);e.a<e.c.c.length;)BB(n0(e),189).g=!0;for(r=new Wb(n.a.b);r.a<r.c.c.length;)(i=BB(n0(r),81)).k=qy(TD(n.e.Kb(new rI(i,t)))),i.d.g=i.d.g&qy(TD(n.e.Kb(new rI(i,t))));return n}function UOn(n){var t,e,i,r,c;if(e=new YK(t=BB(Vj(FIt),9),BB(SR(t,t.length),9),0),c=BB(mMn(n,(hWn(),Elt)),10))for(r=new Wb(c.j);r.a<r.c.c.length;)GI(mMn(i=BB(n0(r),11),dlt))===GI(n)&&zN(new m6(i.b))&&orn(e,i.j);return e}function XOn(n,t,e){var i,r,c,a;if(!n.d[e.p]){for(i=new oz(ZL(lbn(e).a.Kc(),new h));dAn(i);){for(c=new oz(ZL(fbn(a=BB(U5(i),17).d.i).a.Kc(),new h));dAn(c);)(r=BB(U5(c),17)).c.i==t&&(n.a[r.p]=!0);XOn(n,t,a)}n.d[e.p]=!0}}function WOn(n,t){var e,i,r,c,a,u,o;if(1==(i=pbn(254&n.Db)))n.Eb=null;else if(c=een(n.Eb),2==i)r=Rmn(n,t),n.Eb=c[0==r?1:0];else{for(a=x8(Ant,HWn,1,i-1,5,1),e=2,u=0,o=0;e<=128;e<<=1)e==t?++u:0!=(n.Db&e)&&(a[o++]=c[u++]);n.Eb=a}n.Db&=~t}function VOn(n,t){var e,i,r,c,a;for(!t.s&&(t.s=new eU(FAt,t,21,17)),c=null,r=0,a=(i=t.s).i;r<a;++r)switch(DW(B7(n,e=BB(Wtn(i,r),170)))){case 4:case 5:case 6:!c&&(c=new Np),c.c[c.c.length]=e}return c||(SQ(),SQ(),set)}function QOn(n){var t;switch(t=0,n){case 105:t=2;break;case 109:t=8;break;case 115:t=4;break;case 120:t=16;break;case 117:t=32;break;case 119:t=64;break;case 70:t=256;break;case 72:t=128;break;case 88:t=512;break;case 44:t=k6n}return t}function YOn(n,t,e,i,r){var c,a,u,o;if(GI(n)!==GI(t)||i!=r)for(u=0;u<i;u++){for(a=0,c=n[u],o=0;o<r;o++)a=rbn(rbn(cbn(e0(c,UQn),e0(t[o],UQn)),e0(e[u+o],UQn)),e0(dG(a),UQn)),e[u+o]=dG(a),a=jz(a,32);e[u+r]=dG(a)}else I_n(n,i,e)}function JOn(n){var t,i,r,c,a,u,o,s,h,f,l;for(f=0,h=0,o=(c=n.a).a.gc(),r=c.a.ec().Kc();r.Ob();)(i=BB(r.Pb(),561)).b&&VBn(i),f+=(l=(t=i.a).a)+(u=t.b),h+=l*u;return s=e.Math.sqrt(400*o*h-4*h+f*f)+f,0==(a=2*(100*o-1))?s:s/a}function ZOn(n,t){0!=t.b&&(isNaN(n.s)?n.s=Gy((Px(0!=t.b),MD(t.a.a.c))):n.s=e.Math.min(n.s,Gy((Px(0!=t.b),MD(t.a.a.c)))),isNaN(n.c)?n.c=Gy((Px(0!=t.b),MD(t.c.b.c))):n.c=e.Math.max(n.c,Gy((Px(0!=t.b),MD(t.c.b.c)))))}function nAn(n){var t,e,i;for(t=null,e=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c)])));dAn(e);)if(i=PTn(BB(U5(e),82)),t){if(t!=JJ(i))return!0}else t=JJ(i);return!1}function tAn(n,t){var e,i,r,c;n.ej()?(e=n.i,c=n.fj(),c6(n,t),i=n.Zi(3,null,t,e,c),n.bj()?(r=n.cj(t,null),n.ij()&&(r=n.jj(t,r)),r?(r.Ei(i),r.Fi()):n.$i(i)):n.$i(i)):(c6(n,t),n.bj()&&(r=n.cj(t,null))&&r.Fi())}function eAn(n,t,e){var i,r,c;n.ej()?(c=n.fj(),++n.j,n.Hi(t,n.oi(t,e)),i=n.Zi(3,null,e,t,c),n.bj()&&(r=n.cj(e,null))?(r.Ei(i),r.Fi()):n.$i(i)):(++n.j,n.Hi(t,n.oi(t,e)),n.bj()&&(r=n.cj(e,null))&&r.Fi())}function iAn(n){var t,e,i,r;for(r=n.length,t=null,i=0;i<r;i++)b1(i,n.length),GO(".*+?{[()|\\^$",YTn(e=n.charCodeAt(i)))>=0?(t||(t=new Pk,i>0&&cO(t,n.substr(0,i))),t.a+="\\",NX(t,e&QVn)):t&&NX(t,e&QVn);return t?t.a:n}function rAn(n){var t;if(!n.a)throw Hp(new Fy("IDataType class expected for layout option "+n.f));if(null==(t=I3(n.a)))throw Hp(new Fy("Couldn't create new instance of property '"+n.f+"'. "+r5n+(ED(bAt),bAt.k)+c5n));return BB(t,414)}function cAn(n){var t,e,i,r,c;return(c=n.eh())&&c.kh()&&(r=tfn(n,c))!=c?(e=n.Vg(),i=(t=n.Vg())>=0?n.Qg(null):n.eh().ih(n,-1-t,null,null),n.Rg(BB(r,49),e),i&&i.Fi(),n.Lg()&&n.Mg()&&e>-1&&ban(n,new nU(n,9,e,c,r)),r):c}function aAn(n){var t,e,i,r,c,a,u;for(c=0,r=n.f.e,e=0;e<r.c.length;++e)for(l1(e,r.c.length),a=BB(r.c[e],144),i=e+1;i<r.c.length;++i)l1(i,r.c.length),u=BB(r.c[i],144),t=W8(a.d,u.d)-n.a[a.b][u.b],c+=n.i[a.b][u.b]*t*t;return c}function uAn(n,t){var e;if(!Lx(t,(HXn(),kgt))&&(e=Ekn(BB(mMn(t,est),360),BB(mMn(n,kgt),163)),hon(t,est,e),!dAn(new oz(ZL(hbn(t).a.Kc(),new h)))))switch(e.g){case 1:hon(t,kgt,(Tbn(),_lt));break;case 2:hon(t,kgt,(Tbn(),Blt))}}function oAn(n,t){var e;mRn(n),n.a=(e=new ok,JT(new Rq(null,new w1(t.d,16)),new Od(e)),e),Mxn(n,BB(mMn(t.b,(HXn(),igt)),376)),kvn(n),OAn(n),$kn(n),jvn(n),jqn(n,t),JT(wnn(new Rq(null,Y0(SX(n.b).a)),new Wr),new Vr),t.a=!1,n.a=null}function sAn(){dMn.call(this,y6n,(tE(),dOt)),this.p=null,this.a=null,this.f=null,this.n=null,this.g=null,this.c=null,this.i=null,this.j=null,this.d=null,this.b=null,this.e=null,this.k=null,this.o=null,this.s=null,this.q=!1,this.r=!1}function hAn(){hAn=O,iAt=new MI(G1n,0),nAt=new MI("INSIDE_SELF_LOOPS",1),tAt=new MI("MULTI_EDGES",2),ZOt=new MI("EDGE_LABELS",3),eAt=new MI("PORTS",4),YOt=new MI("COMPOUND",5),QOt=new MI("CLUSTERS",6),JOt=new MI("DISCONNECTED",7)}function fAn(n,t){var e,i,r;if(0==t)return 0!=(1&n.a[0]);if(t<0)throw Hp(new Oy("Negative bit address"));if((r=t>>5)>=n.d)return n.e<0;if(e=n.a[r],t=1<<(31&t),n.e<0){if(r<(i=Ccn(n)))return!1;e=i==r?-e:~e}return 0!=(e&t)}function lAn(n,t,e,i){var r;BB(e.b,65),BB(e.b,65),BB(i.b,65),BB(i.b,65),NH(r=XR(B$(BB(e.b,65).c),BB(i.b,65).c),HCn(BB(e.b,65),BB(i.b,65),r)),BB(i.b,65),BB(i.b,65),BB(i.b,65).c.a,r.a,BB(i.b,65).c.b,r.b,BB(i.b,65),Otn(i.a,new TB(n,t,i))}function bAn(n,t){var e,i,r,c,a,u,o;if(c=t.e)for(e=cAn(c),i=BB(n.g,674),a=0;a<n.i;++a)if(qvn(o=i[a])==e&&(!o.d&&(o.d=new $L(VAt,o,1)),r=o.d,(u=BB(e.ah(gKn(c,c.Cb,c.Db>>16)),15).Xc(c))<r.i))return bAn(n,BB(Wtn(r,u),87));return t}function wAn(n,t,e){var i,r=SWn,c=r[n],a=c instanceof Array?c[0]:null;c&&!a?MWn=c:(!(i=t&&t.prototype)&&(i=SWn[t]),(MWn=qJ(i)).hm=e,!t&&(MWn.im=I),r[n]=MWn);for(var u=3;u<arguments.length;++u)arguments[u].prototype=MWn;a&&(MWn.gm=a)}function dAn(n){for(var t;!BB(yX(n.a),47).Ob();){if(n.d=osn(n),!n.d)return!1;if(n.a=BB(n.d.Pb(),47),cL(n.a,39)){if(t=BB(n.a,39),n.a=t.a,!n.b&&(n.b=new Lp),d3(n.b,n.d),t.b)for(;!Wy(t.b);)d3(n.b,BB(gU(t.b),47));n.d=t.d}}return!0}function gAn(n,t){var e,i,r,c,a;for(c=null==t?0:n.b.se(t),i=null==(e=n.a.get(c))?new Array:e,a=0;a<i.length;a++)if(r=i[a],n.b.re(t,r.cd()))return 1==i.length?(i.length=0,vR(n.a,c)):i.splice(a,1),--n.c,oY(n.b),r.dd();return null}function pAn(n,t){var e,i,r,c;for(r=1,t.j=!0,c=null,i=new Wb(kbn(t));i.a<i.c.c.length;)e=BB(n0(i),213),n.c[e.c]||(n.c[e.c]=!0,c=Nbn(e,t),e.f?r+=pAn(n,c):c.j||e.a!=e.e.e-e.d.e||(e.f=!0,TU(n.p,e),r+=pAn(n,c)));return r}function vAn(n){var t,i,r;for(i=new Wb(n.a.a.b);i.a<i.c.c.length;)t=BB(n0(i),81),kW(0),(r=0)>0&&((!dA(n.a.c)||!t.n.d)&&(!gA(n.a.c)||!t.n.b)&&(t.g.d+=e.Math.max(0,r/2-.5)),(!dA(n.a.c)||!t.n.a)&&(!gA(n.a.c)||!t.n.c)&&(t.g.a-=r-1))}function mAn(n){var t,i,r,c,a;if(a=K_n(n,c=new Np),t=BB(mMn(n,(hWn(),Elt)),10))for(r=new Wb(t.j);r.a<r.c.c.length;)GI(mMn(i=BB(n0(r),11),dlt))===GI(n)&&(a=e.Math.max(a,K_n(i,c)));return 0==c.c.length||hon(n,blt,a),-1!=a?c:null}function yAn(n,t,e){var i,r,c,a,u,o;r=(i=(c=BB(xq(t.e,0),17).c).i).k,u=(a=(o=BB(xq(e.g,0),17).d).i).k,r==(uSn(),Put)?hon(n,(hWn(),hlt),BB(mMn(i,hlt),11)):hon(n,(hWn(),hlt),c),hon(n,(hWn(),flt),u==Put?BB(mMn(a,flt),11):o)}function kAn(n,t){var e,i,r,c;for(e=(c=dG(cbn(SVn,rV(dG(cbn(null==t?0:nsn(t),PVn)),15))))&n.b.length-1,r=null,i=n.b[e];i;r=i,i=i.a)if(i.d==c&&wW(i.i,t))return r?r.a=i.a:n.b[e]=i.a,kk(i.c,i.f),iv(i.b,i.e),--n.f,++n.e,!0;return!1}function jAn(n,t){var e,i,r,c,a;return t&=63,(i=0!=((e=n.h)&CQn))&&(e|=-1048576),t<22?(a=e>>t,c=n.m>>t|e<<22-t,r=n.l>>t|n.m<<22-t):t<44?(a=i?PQn:0,c=e>>t-22,r=n.m>>t-22|e<<44-t):(a=i?PQn:0,c=i?SQn:0,r=e>>t-44),M$(r&SQn,c&SQn,a&PQn)}function EAn(n){var t,i,r,c,a,u;for(this.c=new Np,this.d=n,r=RQn,c=RQn,t=KQn,i=KQn,u=spn(n,0);u.b!=u.d.c;)a=BB(b3(u),8),r=e.Math.min(r,a.a),c=e.Math.min(c,a.b),t=e.Math.max(t,a.a),i=e.Math.max(i,a.b);this.a=new UV(r,c,t-r,i-c)}function TAn(n,t){var e,i,r,c;for(i=new Wb(n.b);i.a<i.c.c.length;)for(c=new Wb(BB(n0(i),29).a);c.a<c.c.c.length;)for((r=BB(n0(c),10)).k==(uSn(),Sut)&&hFn(r,t),e=new oz(ZL(lbn(r).a.Kc(),new h));dAn(e);)vun(BB(U5(e),17),t)}function MAn(n){var t,e,i;this.c=n,i=BB(mMn(n,(HXn(),Udt)),103),t=Gy(MD(mMn(n,Edt))),e=Gy(MD(mMn(n,Kpt))),i==(Ffn(),_Pt)||i==FPt||i==BPt?this.b=t*e:this.b=1/(t*e),this.j=Gy(MD(mMn(n,Apt))),this.e=Gy(MD(mMn(n,Opt))),this.f=n.b.c.length}function SAn(n){var t,e;for(n.e=x8(ANt,hQn,25,n.p.c.length,15,1),n.k=x8(ANt,hQn,25,n.p.c.length,15,1),e=new Wb(n.p);e.a<e.c.c.length;)t=BB(n0(e),10),n.e[t.p]=F3(new oz(ZL(fbn(t).a.Kc(),new h))),n.k[t.p]=F3(new oz(ZL(lbn(t).a.Kc(),new h)))}function PAn(n){var t,e,i,r,c;for(i=0,n.q=new Np,t=new Rv,c=new Wb(n.p);c.a<c.c.c.length;){for((r=BB(n0(c),10)).p=i,e=new oz(ZL(lbn(r).a.Kc(),new h));dAn(e);)TU(t,BB(U5(e),17).d.i);t.a.Bc(r),WB(n.q,new $q(t)),t.a.$b(),++i}}function CAn(){CAn=O,Okt=new WA(20),Ikt=new XA((sWn(),XSt),Okt),xkt=new XA(LPt,20),jkt=new XA(cSt,dZn),$kt=new XA(pPt,iln(1)),Nkt=new XA(kPt,(hN(),!0)),Ekt=lSt,Mkt=KSt,Skt=BSt,Pkt=qSt,Tkt=DSt,Ckt=USt,Akt=fPt,Ran(),Dkt=ykt,Lkt=vkt}function IAn(n,t){var e,i,r,c,a,u,o,s,h;if(n.a.f>0&&cL(t,42)&&(n.a.qj(),c=null==(o=(s=BB(t,42)).cd())?0:nsn(o),a=eR(n.a,c),e=n.a.d[a]))for(i=BB(e.g,367),h=e.i,u=0;u<h;++u)if((r=i[u]).Sh()==c&&r.Fb(s))return IAn(n,s),!0;return!1}function OAn(n){var t,e,i,r;for(r=BB(h6(n.a,(LEn(),Sst)),15).Kc();r.Ob();)iX(n,i=BB(r.Pb(),101),(e=(t=gz(i.k)).Hc((kUn(),sIt))?t.Hc(oIt)?t.Hc(SIt)?t.Hc(CIt)?null:$st:Nst:Lst:Ast)[0],(Crn(),xst),0),iX(n,i,e[1],Dst,1),iX(n,i,e[2],Rst,1)}function AAn(n,t){var e,i;Jxn(n,t,e=mKn(t)),iTn(n.a,BB(mMn(vW(t.b),(hWn(),Slt)),230)),b_n(n),DEn(n,t),i=x8(ANt,hQn,25,t.b.j.c.length,15,1),szn(n,t,(kUn(),sIt),i,e),szn(n,t,oIt,i,e),szn(n,t,SIt,i,e),szn(n,t,CIt,i,e),n.a=null,n.c=null,n.b=null}function $An(){$An=O,Sbn(),oEt=new $O(E4n,sEt=nEt),aEt=new $O(T4n,(hN(),!0)),iln(-1),iEt=new $O(M4n,iln(-1)),iln(-1),rEt=new $O(S4n,iln(-1)),uEt=new $O(P4n,!1),hEt=new $O(C4n,!0),cEt=new $O(I4n,!1),fEt=new $O(O4n,-1)}function LAn(n,t,e){switch(t){case 7:return!n.e&&(n.e=new hK(_Ot,n,7,4)),sqn(n.e),!n.e&&(n.e=new hK(_Ot,n,7,4)),void pX(n.e,BB(e,14));case 8:return!n.d&&(n.d=new hK(_Ot,n,8,5)),sqn(n.d),!n.d&&(n.d=new hK(_Ot,n,8,5)),void pX(n.d,BB(e,14))}zjn(n,t,e)}function NAn(n,t){var e,i,r,c,a;if(GI(t)===GI(n))return!0;if(!cL(t,15))return!1;if(a=BB(t,15),n.gc()!=a.gc())return!1;for(c=a.Kc(),i=n.Kc();i.Ob();)if(e=i.Pb(),r=c.Pb(),!(GI(e)===GI(r)||null!=e&&Nfn(e,r)))return!1;return!0}function xAn(n,t){var e,i,r,c;for((c=BB(P4(wnn(wnn(new Rq(null,new w1(t.b,16)),new Re),new Ke),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15)).Jc(new _e),e=0,r=c.Kc();r.Ob();)-1==(i=BB(r.Pb(),11)).p&&FAn(n,i,e++)}function DAn(n){switch(n.g){case 0:return new Cf;case 1:return new lf;case 2:return new ff;case 3:return new jI;case 4:return new _G;default:throw Hp(new _y("No implementation is available for the node placer "+(null!=n.f?n.f:""+n.g)))}}function RAn(n){switch(n.g){case 0:return new KG;case 1:return new wf;case 2:return new rf;case 3:return new cf;case 4:return new TI;default:throw Hp(new _y("No implementation is available for the cycle breaker "+(null!=n.f?n.f:""+n.g)))}}function KAn(){KAn=O,mjt=new $O(u4n,iln(0)),yjt=new $O(o4n,0),Hsn(),djt=new $O(s4n,gjt=sjt),iln(0),wjt=new $O(h4n,iln(1)),Bcn(),kjt=new $O(f4n,jjt=Xjt),D9(),Ejt=new $O(l4n,Tjt=ajt),Omn(),pjt=new $O(b4n,vjt=qjt)}function _An(n,t,e){var i;i=null,t&&(i=t.d),Yjn(n,new dP(t.n.a-i.b+e.a,t.n.b-i.d+e.b)),Yjn(n,new dP(t.n.a-i.b+e.a,t.n.b+t.o.b+i.a+e.b)),Yjn(n,new dP(t.n.a+t.o.a+i.c+e.a,t.n.b-i.d+e.b)),Yjn(n,new dP(t.n.a+t.o.a+i.c+e.a,t.n.b+t.o.b+i.a+e.b))}function FAn(n,t,e){var i,r,c;for(t.p=e,c=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[new Hw(t),new Gw(t)])));dAn(c);)-1==(i=BB(U5(c),11)).p&&FAn(n,i,e);if(t.i.k==(uSn(),Put))for(r=new Wb(t.i.j);r.a<r.c.c.length;)(i=BB(n0(r),11))!=t&&-1==i.p&&FAn(n,i,e)}function BAn(n){var t,i,r,c,a;if(c=BB(P4($Z(a1(n)),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15),r=ZJn,c.gc()>=2)for(t=MD((i=c.Kc()).Pb());i.Ob();)a=t,t=MD(i.Pb()),r=e.Math.min(r,(kW(t),t-(kW(a),a)));return r}function HAn(n,t){var e,i,r,c,a;r5(i=new YT,t,i.c.b,i.c);do{for(Px(0!=i.b),e=BB(Atn(i,i.a.a),86),n.b[e.g]=1,c=spn(e.d,0);c.b!=c.d.c;)a=(r=BB(b3(c),188)).c,1==n.b[a.g]?DH(n.a,r):2==n.b[a.g]?n.b[a.g]=1:r5(i,a,i.c.b,i.c)}while(0!=i.b)}function qAn(n,t){var e,i,r;if(GI(t)===GI(yX(n)))return!0;if(!cL(t,15))return!1;if(i=BB(t,15),(r=n.gc())!=i.gc())return!1;if(cL(i,54)){for(e=0;e<r;e++)if(!wW(n.Xb(e),i.Xb(e)))return!1;return!0}return Uvn(n.Kc(),i.Kc())}function GAn(n,t){var e;if(0!=n.c.length){if(2==n.c.length)hFn((l1(0,n.c.length),BB(n.c[0],10)),(Xyn(),jCt)),hFn((l1(1,n.c.length),BB(n.c[1],10)),ECt);else for(e=new Wb(n);e.a<e.c.c.length;)hFn(BB(n0(e),10),t);n.c=x8(Ant,HWn,1,0,5,1)}}function zAn(n){var t,e;if(2!=n.c.length)throw Hp(new Fy("Order only allowed for two paths."));l1(0,n.c.length),t=BB(n.c[0],17),l1(1,n.c.length),e=BB(n.c[1],17),t.d.i!=e.c.i&&(n.c=x8(Ant,HWn,1,0,5,1),n.c[n.c.length]=e,n.c[n.c.length]=t)}function UAn(n,t){var e,i,r,c,a;for(i=new v4,c=S4(new Jy(n.g)).a.ec().Kc();c.Ob();){if(!(r=BB(c.Pb(),10))){OH(t,"There are no classes in a balanced layout.");break}(e=BB(lnn(i,a=n.j[r.p]),15))||Jgn(i,a,e=new Np),e.Fc(r)}return i}function XAn(n,t,e){var i,r,c,a;if(e)for(r=((i=new hz(e.a.length)).b-i.a)*i.c<0?(eS(),MNt):new XL(i);r.Ob();)(c=x2(e,BB(r.Pb(),19).a))&&(a=Ken(R2(c,O6n),t),VW(n.f,a,c),q6n in c.a&&$in(a,R2(c,q6n)),STn(c,a),OCn(c,a))}function WAn(n,t){var e,i,r;for(OTn(t,"Port side processing",1),r=new Wb(n.a);r.a<r.c.c.length;)cBn(BB(n0(r),10));for(e=new Wb(n.b);e.a<e.c.c.length;)for(i=new Wb(BB(n0(e),29).a);i.a<i.c.c.length;)cBn(BB(n0(i),10));HSn(t)}function VAn(n,t,e){var i,r,c,a,u;if(!(r=n.f)&&(r=BB(n.a.a.ec().Kc().Pb(),57)),Fkn(r,t,e),1!=n.a.a.gc())for(i=t*e,a=n.a.a.ec().Kc();a.Ob();)(c=BB(a.Pb(),57))!=r&&((u=f3(c)).f.d?(c.d.d+=i+fJn,c.d.a-=i+fJn):u.f.a&&(c.d.a-=i+fJn))}function QAn(n,t,i,r,c){var a,u,o,s,h,f,l,b,w;return u=i-n,o=r-t,s=(a=e.Math.atan2(u,o))+JJn,h=a-JJn,f=c*e.Math.sin(s)+n,b=c*e.Math.cos(s)+t,l=c*e.Math.sin(h)+n,w=c*e.Math.cos(h)+t,u6(Pun(Gk(PMt,1),sVn,8,0,[new xC(f,b),new xC(l,w)]))}function YAn(n,t,i,r){var c,a,u,o,s,h,f,l;c=i,a=f=t;do{a=n.a[a.p],l=n.g[a.p],o=Gy(n.p[l.p])+Gy(n.d[a.p])-a.d.d,(s=Ain(a,r))&&(h=n.g[s.p],u=Gy(n.p[h.p])+Gy(n.d[s.p])+s.o.b+s.d.a,c=e.Math.min(c,o-(u+K$(n.k,a,s))))}while(f!=a);return c}function JAn(n,t,i,r){var c,a,u,o,s,h,f,l;c=i,a=f=t;do{a=n.a[a.p],l=n.g[a.p],u=Gy(n.p[l.p])+Gy(n.d[a.p])+a.o.b+a.d.a,(s=_un(a,r))&&(h=n.g[s.p],o=Gy(n.p[h.p])+Gy(n.d[s.p])-s.d.d,c=e.Math.min(c,o-(u+K$(n.k,a,s))))}while(f!=a);return c}function ZAn(n,t){var e,i;return!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),null!=(i=cdn(n.o,t))?i:(cL(e=t.wg(),4)&&(null==e?(!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),Wdn(n.o,t)):(!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),vjn(n.o,t,e))),e)}function n$n(){n$n=O,ICt=new GC("H_LEFT",0),CCt=new GC("H_CENTER",1),ACt=new GC("H_RIGHT",2),DCt=new GC("V_TOP",3),xCt=new GC("V_CENTER",4),NCt=new GC("V_BOTTOM",5),$Ct=new GC("INSIDE",6),LCt=new GC("OUTSIDE",7),OCt=new GC("H_PRIORITY",8)}function t$n(n){var t,e,i,r,c,a,u;if((t=n.Hh(V9n))&&null!=(u=SD(cdn((!t.b&&(t.b=new Jx((gWn(),k$t),X$t,t)),t.b),"settingDelegates")))){for(e=new Np,c=0,a=(r=kKn(u,"\\w+")).length;c<a;++c)i=r[c],e.c[e.c.length]=i;return e}return SQ(),SQ(),set}function e$n(n,t){var e,i,r,c,a,u,o;if(!t.f)throw Hp(new _y("The input edge is not a tree edge."));for(c=null,r=DWn,i=new Wb(n.d);i.a<i.c.c.length;)u=(e=BB(n0(i),213)).d,o=e.e,FCn(n,u,t)&&!FCn(n,o,t)&&(a=o.e-u.e-e.a)<r&&(r=a,c=e);return c}function i$n(n){var t,e,i,r,c,a;if(!(n.f.e.c.length<=1)){t=0,r=aAn(n),e=RQn;do{for(t>0&&(r=e),a=new Wb(n.f.e);a.a<a.c.c.length;)qy(TD(mMn(c=BB(n0(a),144),(rkn(),yat))))||(i=Z_n(n,c),UR(kO(c.d),i));e=aAn(n)}while(!JX(n,t++,r,e))}}function r$n(n,t){var e,i,r;for(OTn(t,"Layer constraint preprocessing",1),e=new Np,r=new M2(n.a,0);r.b<r.d.gc();)Px(r.b<r.d.gc()),Wun(i=BB(r.d.Xb(r.c=r.b++),10))&&(cTn(i),e.c[e.c.length]=i,fW(r));0==e.c.length||hon(n,(hWn(),nlt),e),HSn(t)}function c$n(n,t){var e,i,r,c,a;for(c=n.g.a,a=n.g.b,i=new Wb(n.d);i.a<i.c.c.length;)r=(e=BB(n0(i),70)).n,n.a==(Oun(),mst)||n.i==(kUn(),oIt)?r.a=c:n.a==yst||n.i==(kUn(),CIt)?r.a=c+n.j.a-e.o.a:r.a=c+(n.j.a-e.o.a)/2,r.b=a,UR(r,t),a+=e.o.b+n.e}function a$n(n,t,e){var i,r,c,a;for(OTn(e,"Processor set coordinates",1),n.a=0==t.b.b?1:t.b.b,c=null,i=spn(t.b,0);!c&&i.b!=i.d.c;)qy(TD(mMn(a=BB(b3(i),86),(qqn(),dkt))))&&(c=a,(r=a.e).a=BB(mMn(a,gkt),19).a,r.b=0);_Sn(n,xun(c),mcn(e,1)),HSn(e)}function u$n(n,t,e){var i,r,c;for(OTn(e,"Processor determine the height for each level",1),n.a=0==t.b.b?1:t.b.b,r=null,i=spn(t.b,0);!r&&i.b!=i.d.c;)qy(TD(mMn(c=BB(b3(i),86),(qqn(),dkt))))&&(r=c);r&&Zxn(n,u6(Pun(Gk(Yyt,1),tZn,86,0,[r])),e),HSn(e)}function o$n(n,t){var e,i,r,c,a;(c=D2(n,"individualSpacings"))&&(!P8(t,(sWn(),CPt))&&(e=new Yu,Ypn(t,CPt,e)),r=BB(ZAn(t,CPt),373),i=null,(a=c)&&(i=new TT(a,jrn(a,x8(Qtt,sVn,2,0,6,1)))),i&&e5(i,new dI(a,r)))}function s$n(n,t){var e,i,r,c,a,u;return c=null,(J6n in(a=n).a||Z6n in a.a||D6n in a.a)&&(u=qun(t),i=D2(a,J6n),Own(new Hg(u).a,i),r=D2(a,Z6n),Iwn(new Jg(u).a,r),e=N2(a,D6n),PEn(new tp(u).a,e),c=e),c}function h$n(n,t){var e,i,r;if(t===n)return!0;if(cL(t,543)){if(r=BB(t,835),n.a.d!=r.a.d||EV(n).gc()!=EV(r).gc())return!1;for(i=EV(r).Kc();i.Ob();)if(c1(n,(e=BB(i.Pb(),416)).a.cd())!=BB(e.a.dd(),14).gc())return!1;return!0}return!1}function f$n(n){var t,e,i,r;return t=i=BB(n.a,19).a,e=r=BB(n.b,19).a,0==i&&0==r?e-=1:-1==i&&r<=0?(t=0,e-=2):i<=0&&r>0?(t-=1,e-=1):i>=0&&r<0?(t+=1,e+=1):i>0&&r>=0?(t-=1,e+=1):(t+=1,e-=1),new rI(iln(t),iln(e))}function l$n(n,t){return n.c<t.c?-1:n.c>t.c?1:n.b<t.b?-1:n.b>t.b?1:n.a!=t.a?nsn(n.a)-nsn(t.a):n.d==(Q4(),Hmt)&&t.d==Bmt?-1:n.d==Bmt&&t.d==Hmt?1:0}function b$n(n,t){var e,i,r,c,a;return a=(c=t.a).c.i==t.b?c.d:c.c,i=c.c.i==t.b?c.c:c.d,(r=zwn(n.a,a,i))>0&&r<ZJn?(e=YAn(n.a,i.i,r,n.c),ren(n.a,i.i,-e),e>0):r<0&&-r<ZJn&&(e=JAn(n.a,i.i,-r,n.c),ren(n.a,i.i,e),e>0)}function w$n(n,t,e,i){var r,c,a,u,o,s;for(r=(t-n.d)/n.c.c.length,c=0,n.a+=e,n.d=t,s=new Wb(n.c);s.a<s.c.c.length;)u=(o=BB(n0(s),33)).g,a=o.f,Pen(o,o.i+c*r),Cen(o,o.j+i*e),Sen(o,o.g+r),Men(o,n.a),++c,lCn(o,new xC(o.g,o.f),new xC(u,a))}function d$n(n){var t,e,i,r,c,a,u;if(null==n)return null;for(u=n.length,a=x8(NNt,v6n,25,r=(u+1)/2|0,15,1),u%2!=0&&(a[--r]=ZDn((b1(u-1,n.length),n.charCodeAt(u-1)))),e=0,i=0;e<r;++e)t=ZDn(fV(n,i++)),c=ZDn(fV(n,i++)),a[e]=(t<<4|c)<<24>>24;return a}function g$n(n){if(n.pe()){var t=n.c;return t.qe()?n.o="["+t.n:t.pe()?n.o="["+t.ne():n.o="[L"+t.ne()+";",n.b=t.me()+"[]",void(n.k=t.oe()+"[]")}var e=n.j,i=n.d;i=i.split("/"),n.o=Fdn(".",[e,Fdn("$",i)]),n.b=Fdn(".",[e,Fdn(".",i)]),n.k=i[i.length-1]}function p$n(n,t){var e,i,r,c,a;for(a=null,c=new Wb(n.e.a);c.a<c.c.c.length;)if((r=BB(n0(c),121)).b.a.c.length==r.g.a.c.length){for(i=r.e,a=ePn(r),e=r.e-BB(a.a,19).a+1;e<r.e+BB(a.b,19).a;e++)t[e]<t[i]&&(i=e);t[i]<t[r.e]&&(--t[r.e],++t[i],r.e=i)}}function v$n(n){var t,i,r,c,a,u,o;for(r=RQn,i=KQn,t=new Wb(n.e.b);t.a<t.c.c.length;)for(a=new Wb(BB(n0(t),29).a);a.a<a.c.c.length;)c=BB(n0(a),10),u=(o=Gy(n.p[c.p]))+Gy(n.b[n.g[c.p].p]),r=e.Math.min(r,o),i=e.Math.max(i,u);return i-r}function m$n(n,t,e,i){var r,c,a,u,o,s;for(o=null,u=0,s=(r=jKn(n,t)).gc();u<s;++u)if(mK(i,kV(B7(n,c=BB(r.Xb(u),170)))))if(a=jV(B7(n,c)),null==e){if(null==a)return c;!o&&(o=c)}else{if(mK(e,a))return c;null==a&&!o&&(o=c)}return null}function y$n(n,t,e,i){var r,c,a,u,o,s;for(o=null,u=0,s=(r=EKn(n,t)).gc();u<s;++u)if(mK(i,kV(B7(n,c=BB(r.Xb(u),170)))))if(a=jV(B7(n,c)),null==e){if(null==a)return c;!o&&(o=c)}else{if(mK(e,a))return c;null==a&&!o&&(o=c)}return null}function k$n(n,t,e){var i,r,c,a,u,o;if(a=new go,u=axn(n.e.Tg(),t),i=BB(n.g,119),ZM(),BB(t,66).Oj())for(c=0;c<n.i;++c)r=i[c],u.rl(r.ak())&&f9(a,r);else for(c=0;c<n.i;++c)r=i[c],u.rl(r.ak())&&(o=r.dd(),f9(a,e?FIn(n,t,c,a.i,o):o));return N3(a)}function j$n(n,t){var e,i,r,c;for(e=new Hbn(uht),$Pn(),r=0,c=(i=Pun(Gk(uht,1),$Vn,227,0,[Zst,tht,Jst,nht,eht,Yst])).length;r<c;++r)wR(e,i[r],new Np);return JT($V(AV(wnn(new Rq(null,new w1(n.b,16)),new Ze),new ni),new hd(t)),new fd(e)),e}function E$n(n,t,i){var r,c,a,u,o,s,h,f;for(a=t.Kc();a.Ob();)s=(c=BB(a.Pb(),33)).i+c.g/2,f=c.j+c.f/2,o=s-((u=n.f).i+u.g/2),h=f-(u.j+u.f/2),r=e.Math.sqrt(o*o+h*h),o*=n.e/r,h*=n.e/r,i?(s-=o,f-=h):(s+=o,f+=h),Pen(c,s-c.g/2),Cen(c,f-c.f/2)}function T$n(n){var t,e,i;if(!n.c&&null!=n.b){for(t=n.b.length-4;t>=0;t-=2)for(e=0;e<=t;e+=2)(n.b[e]>n.b[e+2]||n.b[e]===n.b[e+2]&&n.b[e+1]>n.b[e+3])&&(i=n.b[e+2],n.b[e+2]=n.b[e],n.b[e]=i,i=n.b[e+3],n.b[e+3]=n.b[e+1],n.b[e+1]=i);n.c=!0}}function M$n(n,t){var e,i,r,c,a,u;for(c=(1==t?Wat:Xat).a.ec().Kc();c.Ob();)for(r=BB(c.Pb(),103),u=BB(h6(n.f.c,r),21).Kc();u.Ob();)switch(a=BB(u.Pb(),46),i=BB(a.b,81),e=BB(a.a,189).c,r.g){case 2:case 1:i.g.d+=e;break;case 4:case 3:i.g.c+=e}}function S$n(n,t){var e,i,r,c,a,u,o,s,h;for(s=-1,h=0,u=0,o=(a=n).length;u<o;++u){for(c=a[u],e=new kH(-1==s?n[0]:n[s],t,(Mhn(),uvt)),i=0;i<c.length;i++)for(r=i+1;r<c.length;r++)Lx(c[i],(hWn(),wlt))&&Lx(c[r],wlt)&&fXn(e,c[i],c[r])>0&&++h;++s}return h}function P$n(n){var t;return(t=new lN(nE(n.gm))).a+="@",oO(t,(nsn(n)>>>0).toString(16)),n.kh()?(t.a+=" (eProxyURI: ",uO(t,n.qh()),n.$g()&&(t.a+=" eClass: ",uO(t,n.$g())),t.a+=")"):n.$g()&&(t.a+=" (eClass: ",uO(t,n.$g()),t.a+=")"),t.a}function C$n(n){var t,e,i;if(n.e)throw Hp(new Fy((ED(git),AYn+git.k+$Yn)));for(n.d==(Ffn(),BPt)&&Tzn(n,_Pt),e=new Wb(n.a.a);e.a<e.c.c.length;)(t=BB(n0(e),307)).g=t.i;for(i=new Wb(n.a.b);i.a<i.c.c.length;)BB(n0(i),57).i=KQn;return n.b.Le(n),n}function I$n(n,t){var e,i,r,c,a;if(t<2*n.b)throw Hp(new _y("The knot vector must have at least two time the dimension elements."));for(n.f=1,r=0;r<n.b;r++)WB(n.e,0);for(e=a=t+1-2*n.b,c=1;c<a;c++)WB(n.e,c/e);if(n.d)for(i=0;i<n.b;i++)WB(n.e,1)}function O$n(n,t){var e,i,r,c,a;if(c=t,!(a=BB(Uin(PX(n.i),c),33)))throw Hp(new ek("Unable to find elk node for json object '"+R2(c,q6n)+"' Panic!"));i=N2(c,"edges"),LIn((e=new uI(n,a)).a,e.b,i),r=N2(c,A6n),Dkn(new Ng(n).a,r)}function A$n(n,t,e,i){var r,c,a,u,o;if(null!=i){if(r=n.d[t])for(c=r.g,o=r.i,u=0;u<o;++u)if((a=BB(c[u],133)).Sh()==e&&Nfn(i,a.cd()))return u}else if(r=n.d[t])for(c=r.g,o=r.i,u=0;u<o;++u)if(GI((a=BB(c[u],133)).cd())===GI(i))return u;return-1}function $$n(n,t){var e,i;return cL(e=null==t?qI(AY(n.f,null)):hS(n.g,t),235)?((i=BB(e,235)).Qh(),i):cL(e,498)?((i=BB(e,1938).a)&&(null==i.yb||(null==t?jCn(n.f,null,i):ubn(n.g,t,i))),i):null}function L$n(n){var t,e,i,r,c,a,u;if(KDn(),null==n)return null;if((r=n.length)%2!=0)return null;for(t=V7(n),e=x8(NNt,v6n,25,c=r/2|0,15,1),i=0;i<c;i++){if(-1==(a=QLt[t[2*i]]))return null;if(-1==(u=QLt[t[2*i+1]]))return null;e[i]=(a<<4|u)<<24>>24}return e}function N$n(n,t,e){var i,r,c;if(!(r=BB(oV(n.i,t),306)))if(r=new wtn(n.d,t,e),mG(n.i,t,r),agn(t))EL(n.a,t.c,t.b,r);else switch(c=LPn(t),i=BB(oV(n.p,c),244),c.g){case 1:case 3:r.j=!0,jy(i,t.b,r);break;case 4:case 2:r.k=!0,jy(i,t.c,r)}return r}function x$n(n,t,e,i){var r,c,a,u,o,s;if(u=new go,o=axn(n.e.Tg(),t),r=BB(n.g,119),ZM(),BB(t,66).Oj())for(a=0;a<n.i;++a)c=r[a],o.rl(c.ak())&&f9(u,c);else for(a=0;a<n.i;++a)c=r[a],o.rl(c.ak())&&(s=c.dd(),f9(u,i?FIn(n,t,a,u.i,s):s));return Qwn(u,e)}function D$n(n,t){var i,r,c,a,u,o;if((r=n.b[t.p])>=0)return r;for(c=1,a=new Wb(t.j);a.a<a.c.c.length;)for(i=new Wb(BB(n0(a),11).g);i.a<i.c.c.length;)t!=(o=BB(n0(i),17).d.i)&&(u=D$n(n,o),c=e.Math.max(c,u+1));return iwn(n,t,c),c}function R$n(n,t,e){var i,r,c;for(i=1;i<n.c.length;i++){for(l1(i,n.c.length),c=BB(n.c[i],10),r=i;r>0&&t.ue((l1(r-1,n.c.length),BB(n.c[r-1],10)),c)>0;)c5(n,r,(l1(r-1,n.c.length),BB(n.c[r-1],10))),--r;l1(r,n.c.length),n.c[r]=c}e.a=new xp,e.b=new xp}function K$n(n,t,e){var i,r,c,a,u,o,s;for(s=new YK(i=BB(t.e&&t.e(),9),BB(SR(i,i.length),9),0),a=0,u=(c=kKn(e,"[\\[\\]\\s,]+")).length;a<u;++a)if(0!=RMn(r=c[a]).length){if(null==(o=HIn(n,r)))return null;orn(s,BB(o,22))}return s}function _$n(n){var t,i,r;for(i=new Wb(n.a.a.b);i.a<i.c.c.length;)t=BB(n0(i),81),kW(0),(r=0)>0&&((!dA(n.a.c)||!t.n.d)&&(!gA(n.a.c)||!t.n.b)&&(t.g.d-=e.Math.max(0,r/2-.5)),(!dA(n.a.c)||!t.n.a)&&(!gA(n.a.c)||!t.n.c)&&(t.g.a+=e.Math.max(0,r-1)))}function F$n(n,t,e){var i;if(2==(n.c-n.b&n.a.length-1))t==(kUn(),sIt)||t==oIt?(jtn(BB(Eon(n),15),(Xyn(),jCt)),jtn(BB(Eon(n),15),ECt)):(jtn(BB(Eon(n),15),(Xyn(),ECt)),jtn(BB(Eon(n),15),jCt));else for(i=new bV(n);i.a!=i.b;)jtn(BB(_hn(i),15),e)}function B$n(n,t){var e,i,r,c,a,u;for(a=new M2(i=HB(new sp(n)),i.c.length),u=new M2(r=HB(new sp(t)),r.c.length),c=null;a.b>0&&u.b>0&&(Px(a.b>0),e=BB(a.a.Xb(a.c=--a.b),33),Px(u.b>0),e==BB(u.a.Xb(u.c=--u.b),33));)c=e;return c}function H$n(n,t){var i,r,c,a;return c=n.a*aYn+1502*n.b,a=n.b*aYn+11,c+=i=e.Math.floor(a*uYn),a-=i*oYn,c%=oYn,n.a=c,n.b=a,t<=24?e.Math.floor(n.a*Oet[t]):((r=n.a*(1<<t-24)+e.Math.floor(n.b*Aet[t]))>=2147483648&&(r-=XQn),r)}function q$n(n,t,e){var i,r,c,a;w0(n,t)>w0(n,e)?(i=abn(e,(kUn(),oIt)),n.d=i.dc()?0:uq(BB(i.Xb(0),11)),a=abn(t,CIt),n.b=a.dc()?0:uq(BB(a.Xb(0),11))):(r=abn(e,(kUn(),CIt)),n.d=r.dc()?0:uq(BB(r.Xb(0),11)),c=abn(t,oIt),n.b=c.dc()?0:uq(BB(c.Xb(0),11)))}function G$n(n){var t,e,i,r,c,a,u;if(n&&(t=n.Hh(V9n))&&null!=(a=SD(cdn((!t.b&&(t.b=new Jx((gWn(),k$t),X$t,t)),t.b),"conversionDelegates")))){for(u=new Np,r=0,c=(i=kKn(a,"\\w+")).length;r<c;++r)e=i[r],u.c[u.c.length]=e;return u}return SQ(),SQ(),set}function z$n(n,t){var e,i,r,c;for(e=n.o.a,c=BB(BB(h6(n.r,t),21),84).Kc();c.Ob();)(r=BB(c.Pb(),111)).e.a=e*Gy(MD(r.b.We(Lrt))),r.e.b=(i=r.b).Xe((sWn(),aPt))?i.Hf()==(kUn(),sIt)?-i.rf().b-Gy(MD(i.We(aPt))):Gy(MD(i.We(aPt))):i.Hf()==(kUn(),sIt)?-i.rf().b:0}function U$n(n){var t,e,i,r,c,a,u,o;t=!0,r=null,c=null;n:for(o=new Wb(n.a);o.a<o.c.c.length;)for(i=new oz(ZL(fbn(u=BB(n0(o),10)).a.Kc(),new h));dAn(i);){if(e=BB(U5(i),17),r&&r!=u){t=!1;break n}if(r=u,a=e.c.i,c&&c!=a){t=!1;break n}c=a}return t}function X$n(n,t,e){var i,r,c,a,u,o;for(c=-1,u=-1,a=0;a<t.c.length&&(l1(a,t.c.length),!((r=BB(t.c[a],329)).c>n.c));a++)r.a>=n.s&&(c<0&&(c=a),u=a);return o=(n.s+n.c)/2,c>=0&&(o=qM((l1(i=YRn(n,t,c,u),t.c.length),BB(t.c[i],329))),lOn(t,i,e)),o}function W$n(){W$n=O,lEt=new XA((sWn(),cSt),1.3),gEt=jSt,IEt=new WA(15),CEt=new XA(XSt,IEt),$Et=new XA(LPt,15),bEt=hSt,jEt=KSt,EEt=BSt,TEt=qSt,kEt=DSt,MEt=USt,OEt=fPt,$An(),PEt=oEt,yEt=aEt,SEt=uEt,AEt=hEt,pEt=cEt,vEt=CSt,mEt=ISt,dEt=rEt,wEt=iEt,LEt=fEt}function V$n(n,t,e){var i,r,c,a,u;for(Bin(r=new jo,(kW(t),t)),!r.b&&(r.b=new Jx((gWn(),k$t),X$t,r)),u=r.b,a=1;a<e.length;a+=2)vjn(u,e[a-1],e[a]);for(!n.Ab&&(n.Ab=new eU(KAt,n,0,3)),i=n.Ab,c=0;c<0;++c)i=mW(BB(Wtn(i,i.i-1),590));f9(i,r)}function Q$n(n,t,e){var i,r,c;for(LD.call(this,new Np),this.a=t,this.b=e,this.e=n,n.b&&VBn(n),i=n.a,this.d=JV(i.a,this.a),this.c=JV(i.b,this.b),obn(this,this.d,this.c),mIn(this),c=this.e.e.a.ec().Kc();c.Ob();)(r=BB(c.Pb(),266)).c.c.length>0&&xqn(this,r)}function Y$n(n,t,e,i,r,c){var a,u,o;if(!r[t.b]){for(r[t.b]=!0,!(a=i)&&(a=new y6),WB(a.e,t),o=c[t.b].Kc();o.Ob();)(u=BB(o.Pb(),282)).d!=e&&u.c!=e&&(u.c!=t&&Y$n(n,u.c,t,a,r,c),u.d!=t&&Y$n(n,u.d,t,a,r,c),WB(a.c,u),gun(a.d,u.b));return a}return null}function J$n(n){var t,e,i;for(t=0,e=new Wb(n.e);e.a<e.c.c.length;)o5(new Rq(null,new w1(BB(n0(e),17).b,16)),new pe)&&++t;for(i=new Wb(n.g);i.a<i.c.c.length;)o5(new Rq(null,new w1(BB(n0(i),17).b,16)),new ve)&&++t;return t>=2}function Z$n(n,t){var e,i,r,c;for(OTn(t,"Self-Loop pre-processing",1),i=new Wb(n.a);i.a<i.c.c.length;)Kbn(e=BB(n0(i),10))&&(c=new Ogn(e),hon(e,(hWn(),Olt),c),k_n(c),JT($V(wnn(new Rq(null,new w1((r=c).d,16)),new Hi),new qi),new Gi),ixn(r));HSn(t)}function nLn(n,t,e,i,r){var c,a,u,o,s;for(c=n.c.d.j,a=BB(Dpn(e,0),8),s=1;s<e.b;s++)o=BB(Dpn(e,s),8),r5(i,a,i.c.b,i.c),u=kL(UR(new wA(a),o),.5),UR(u,kL(new XZ(hsn(c)),r)),r5(i,u,i.c.b,i.c),a=o,c=0==t?Mln(c):Eln(c);DH(i,(Px(0!=e.b),BB(e.c.b.c,8)))}function tLn(n){return n$n(),!(Can(OJ(EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[LCt])),n))>1||Can(OJ(EG(ICt,Pun(Gk(GCt,1),$Vn,93,0,[CCt,ACt])),n))>1||Can(OJ(EG(DCt,Pun(Gk(GCt,1),$Vn,93,0,[xCt,NCt])),n))>1)}function eLn(n,t){var e,i,r;return(e=t.Hh(n.a))&&null!=(r=SD(cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),"affiliation")))?-1==(i=mN(r,YTn(35)))?uln(n,az(n,Utn(t.Hj())),r):0==i?uln(n,null,r.substr(1)):uln(n,r.substr(0,i),r.substr(i+1)):null}function iLn(n){var t,e;try{return null==n?zWn:Bbn(n)}catch(i){if(cL(i=lun(i),102))return t=i,e=nE(tsn(n))+"@"+($T(),(evn(n)>>>0).toString(16)),Kgn(jun(),(lM(),"Exception during lenientFormat for "+e),t),"<"+e+" threw "+nE(t.gm)+">";throw Hp(i)}}function rLn(n){switch(n.g){case 0:return new of;case 1:return new ef;case 2:return new $M;case 3:return new Ic;case 4:return new RR;case 5:return new sf;default:throw Hp(new _y("No implementation is available for the layerer "+(null!=n.f?n.f:""+n.g)))}}function cLn(n,t,e){var i,r,c;for(c=new Wb(n.t);c.a<c.c.c.length;)(i=BB(n0(c),268)).b.s<0&&i.c>0&&(i.b.n-=i.c,i.b.n<=0&&i.b.u>0&&DH(t,i.b));for(r=new Wb(n.i);r.a<r.c.c.length;)(i=BB(n0(r),268)).a.s<0&&i.c>0&&(i.a.u-=i.c,i.a.u<=0&&i.a.n>0&&DH(e,i.a))}function aLn(n){var t,e,i;if(null==n.g&&(n.d=n.si(n.f),f9(n,n.d),n.c))return n.f;if(i=(t=BB(n.g[n.i-1],47)).Pb(),n.e=t,(e=n.si(i)).Ob())n.d=e,f9(n,e);else for(n.d=null;!t.Ob()&&($X(n.g,--n.i,null),0!=n.i);)t=BB(n.g[n.i-1],47);return i}function uLn(n,t){var e,i,r,c,a,u;if(r=(i=t).ak(),$xn(n.e,r)){if(r.hi()&&G3(n,r,i.dd()))return!1}else for(u=axn(n.e.Tg(),r),e=BB(n.g,119),c=0;c<n.i;++c)if(a=e[c],u.rl(a.ak()))return!Nfn(a,i)&&(BB(ovn(n,c,t),72),!0);return f9(n,t)}function oLn(n,t,i,r){var c,a,u;for(Bl(c=new $vn(n),(uSn(),Sut)),hon(c,(hWn(),dlt),t),hon(c,Plt,r),hon(c,(HXn(),ept),(QEn(),XCt)),hon(c,hlt,t.c),hon(c,flt,t.d),zxn(t,c),u=e.Math.floor(i/2),a=new Wb(c.j);a.a<a.c.c.length;)BB(n0(a),11).n.b=u;return c}function sLn(n,t){var e,i,r,c,a,u,o,s,h;for(o=sx(n.c-n.b&n.a.length-1),s=null,h=null,c=new bV(n);c.a!=c.b;)r=BB(_hn(c),10),e=(u=BB(mMn(r,(hWn(),hlt)),11))?u.i:null,i=(a=BB(mMn(r,flt),11))?a.i:null,s==e&&h==i||(GAn(o,t),s=e,h=i),o.c[o.c.length]=r;GAn(o,t)}function hLn(n){var t,i,r,c,a,u;for(t=0,i=new Wb(n.a);i.a<i.c.c.length;)for(c=new oz(ZL(lbn(BB(n0(i),10)).a.Kc(),new h));dAn(c);)n==(r=BB(U5(c),17)).d.i.c&&r.c.j==(kUn(),CIt)&&(a=g1(r.c).b,u=g1(r.d).b,t=e.Math.max(t,e.Math.abs(u-a)));return t}function fLn(n,t,e){var i,r;OTn(e,"Remove overlaps",1),e.n&&t&&y0(e,o2(t),(Bsn(),uOt)),i=BB(ZAn(t,(wD(),Vkt)),33),n.f=i,n.a=Evn(BB(ZAn(t,(Uyn(),Rjt)),293)),ib(n,(kW(r=MD(ZAn(t,(sWn(),LPt)))),r)),Xzn(n,t,wDn(i),e),e.n&&t&&y0(e,o2(t),(Bsn(),uOt))}function lLn(n,t,i){switch(i.g){case 1:return new xC(t.a,e.Math.min(n.d.b,t.b));case 2:return new xC(e.Math.max(n.c.a,t.a),t.b);case 3:return new xC(t.a,e.Math.max(n.c.b,t.b));case 4:return new xC(e.Math.min(t.a,n.d.a),t.b)}return new xC(t.a,t.b)}function bLn(n,t,e,i){var r,c,a,u,o,s,h,f,l;for(f=i?(kUn(),CIt):(kUn(),oIt),r=!1,s=0,h=(o=t[e]).length;s<h;++s)LK(BB(mMn(u=o[s],(HXn(),ept)),98))||(a=u.e,(l=!abn(u,f).dc()&&!!a)&&(c=qEn(a),n.b=new zEn(c,i?0:c.length-1)),r|=c_n(n,u,f,l));return r}function wLn(n){var t,e,i;for(WB(t=sx(1+(!n.c&&(n.c=new eU(XOt,n,9,9)),n.c).i),(!n.d&&(n.d=new hK(_Ot,n,8,5)),n.d)),i=new AL((!n.c&&(n.c=new eU(XOt,n,9,9)),n.c));i.e!=i.i.gc();)WB(t,(!(e=BB(kpn(i),118)).d&&(e.d=new hK(_Ot,e,8,5)),e.d));return yX(t),new OO(t)}function dLn(n){var t,e,i;for(WB(t=sx(1+(!n.c&&(n.c=new eU(XOt,n,9,9)),n.c).i),(!n.e&&(n.e=new hK(_Ot,n,7,4)),n.e)),i=new AL((!n.c&&(n.c=new eU(XOt,n,9,9)),n.c));i.e!=i.i.gc();)WB(t,(!(e=BB(kpn(i),118)).e&&(e.e=new hK(_Ot,e,7,4)),e.e));return yX(t),new OO(t)}function gLn(n){var t,e,i,r;if(null==n)return null;if(i=FBn(n,!0),r=x7n.length,mK(i.substr(i.length-r,r),x7n))if(4==(e=i.length)){if(b1(0,i.length),43==(t=i.charCodeAt(0)))return HLt;if(45==t)return BLt}else if(3==e)return HLt;return bSn(i)}function pLn(n){var t,e,i,r;for(t=0,e=0,r=new Wb(n.j);r.a<r.c.c.length;)if(t=dG(rbn(t,q6(AV(new Rq(null,new w1((i=BB(n0(r),11)).e,16)),new Yc)))),e=dG(rbn(e,q6(AV(new Rq(null,new w1(i.g,16)),new Jc)))),t>1||e>1)return 2;return t+e==1?2:0}function vLn(n,t,e){var i,r,c,a;for(OTn(e,"ELK Force",1),qy(TD(ZAn(t,(fRn(),Wct))))||jJ(new Tw((GM(),new Dy(t)))),kkn(a=fon(t)),zon(n,BB(mMn(a,Gct),424)),r=(c=HFn(n.a,a)).Kc();r.Ob();)i=BB(r.Pb(),231),PKn(n.b,i,mcn(e,1/c.gc()));SUn(a=GUn(c)),HSn(e)}function mLn(n,t){var e,i,r;if(OTn(t,"Breaking Point Processor",1),Ozn(n),qy(TD(mMn(n,(HXn(),Gpt))))){for(i=new Wb(n.b);i.a<i.c.c.length;)for(e=0,r=new Wb(BB(n0(i),29).a);r.a<r.c.c.length;)BB(n0(r),10).p=e++;oHn(n),Hxn(n,!0),Hxn(n,!1)}HSn(t)}function yLn(n,t,e){var i,r,c,a,u;for(a=n.c,c=(e.q?e.q:(SQ(),SQ(),het)).vc().Kc();c.Ob();)r=BB(c.Pb(),42),!jE(AV(new Rq(null,new w1(a,16)),new aw(new LC(t,r)))).sd((dM(),tit))&&(cL(u=r.dd(),4)&&null!=(i=Jdn(u))&&(u=i),t.Ye(BB(r.cd(),146),u))}function kLn(n,t){var e,i,r,c;if(t){for(c=!(r=cL(n.Cb,88)||cL(n.Cb,99))&&cL(n.Cb,322),e=new AL((!t.a&&(t.a=new aG(t,VAt,t)),t.a));e.e!=e.i.gc();)if(i=lFn(BB(kpn(e),87)),r?cL(i,88):c?cL(i,148):i)return i;return r?(gWn(),d$t):(gWn(),l$t)}return null}function jLn(n,t){var e,i,r,c,a;for(OTn(t,"Constraints Postprocessor",1),c=0,r=new Wb(n.b);r.a<r.c.c.length;){for(a=0,i=new Wb(BB(n0(r),29).a);i.a<i.c.c.length;)(e=BB(n0(i),10)).k==(uSn(),Cut)&&(hon(e,(HXn(),jgt),iln(c)),hon(e,Bdt,iln(a)),++a);++c}HSn(t)}function ELn(n,t,e,i){var r,c,a,u,o,s;for(XR(u=new xC(e,i),BB(mMn(t,(qqn(),nkt)),8)),s=spn(t.b,0);s.b!=s.d.c;)UR((o=BB(b3(s),86)).e,u),DH(n.b,o);for(a=spn(t.a,0);a.b!=a.d.c;){for(r=spn((c=BB(b3(a),188)).a,0);r.b!=r.d.c;)UR(BB(b3(r),8),u);DH(n.a,c)}}function TLn(n,t,e){var i,r,c;if(!(c=Fqn((IPn(),Z$t),n.Tg(),t)))throw Hp(new _y(r6n+t.ne()+c6n));if(ZM(),!BB(c,66).Oj()&&!(c=Z1(B7(Z$t,c))))throw Hp(new _y(r6n+t.ne()+c6n));r=BB((i=n.Yg(c))>=0?n._g(i,!0,!0):cOn(n,c,!0),153),BB(r,215).ml(t,e)}function MLn(n,t){var e,i,r,c,a;for(e=new Np,r=wnn(new Rq(null,new w1(n,16)),new Ea),c=wnn(new Rq(null,new w1(n,16)),new Ta),a=M7(H6(LV(SNn(Pun(Gk(eit,1),HWn,833,0,[r,c])),new Ma))),i=1;i<a.length;i++)a[i]-a[i-1]>=2*t&&WB(e,new kB(a[i-1]+t,a[i]-t));return e}function SLn(n,t,e){OTn(e,"Eades radial",1),e.n&&t&&y0(e,o2(t),(Bsn(),uOt)),n.d=BB(ZAn(t,(wD(),Vkt)),33),n.c=Gy(MD(ZAn(t,(Uyn(),Djt)))),n.e=Evn(BB(ZAn(t,Rjt),293)),n.a=lwn(BB(ZAn(t,_jt),426)),n.b=qjn(BB(ZAn(t,$jt),340)),rjn(n),e.n&&t&&y0(e,o2(t),(Bsn(),uOt))}function PLn(n,t,e){var i,r,c,a,u;if(e)for(c=((i=new hz(e.a.length)).b-i.a)*i.c<0?(eS(),MNt):new XL(i);c.Ob();)(r=x2(e,BB(c.Pb(),19).a))&&($in(a=$3(n,(tE(),u=new Em,!!t&&BLn(u,t),u),r),R2(r,q6n)),STn(r,a),OCn(r,a),xon(n,r,a))}function CLn(n){var t,e,i,r;if(!n.j){if(r=new Io,null==(t=P$t).a.zc(n,t)){for(i=new AL(kY(n));i.e!=i.i.gc();)pX(r,CLn(e=BB(kpn(i),26))),f9(r,e);t.a.Bc(n)}chn(r),n.j=new NO((BB(Wtn(QQ((QX(),t$t).o),11),18),r.i),r.g),P5(n).b&=-33}return n.j}function ILn(n){var t,e,i,r;if(null==n)return null;if(i=FBn(n,!0),r=x7n.length,mK(i.substr(i.length-r,r),x7n))if(4==(e=i.length)){if(b1(0,i.length),43==(t=i.charCodeAt(0)))return GLt;if(45==t)return qLt}else if(3==e)return GLt;return new Dv(i)}function OLn(n){var t,e,i;return 0!=((e=n.l)&e-1)||0!=((i=n.m)&i-1)||0!=((t=n.h)&t-1)||0==t&&0==i&&0==e?-1:0==t&&0==i&&0!=e?gin(e):0==t&&0!=i&&0==e?gin(i)+22:0!=t&&0==i&&0==e?gin(t)+44:-1}function ALn(n,t){var e,i,r,c;for(OTn(t,"Edge joining",1),e=qy(TD(mMn(n,(HXn(),Dpt)))),i=new Wb(n.b);i.a<i.c.c.length;)for(c=new M2(BB(n0(i),29).a,0);c.b<c.d.gc();)Px(c.b<c.d.gc()),(r=BB(c.d.Xb(c.c=c.b++),10)).k==(uSn(),Put)&&(rGn(r,e),fW(c));HSn(t)}function $Ln(n,t,e){var i;if(h2(n.b),CU(n.b,(Pbn(),HEt),(OM(),GTt)),CU(n.b,qEt,t.g),CU(n.b,GEt,t.a),n.a=$qn(n.b,t),OTn(e,"Compaction by shrinking a tree",n.a.c.length),t.i.c.length>1)for(i=new Wb(n.a);i.a<i.c.c.length;)BB(n0(i),51).pf(t,mcn(e,1));HSn(e)}function LLn(n,t){var e,i,r,c,a;for(r=t.a&n.f,c=null,i=n.b[r];;i=i.b){if(i==t){c?c.b=t.b:n.b[r]=t.b;break}c=i}for(a=t.f&n.f,c=null,e=n.c[a];;e=e.d){if(e==t){c?c.d=t.d:n.c[a]=t.d;break}c=e}t.e?t.e.c=t.c:n.a=t.c,t.c?t.c.e=t.e:n.e=t.e,--n.i,++n.g}function NLn(n){var t,i,r,c,a,u,o,s,h,f;for(i=n.o,t=n.p,u=DWn,c=_Vn,o=DWn,a=_Vn,h=0;h<i;++h)for(f=0;f<t;++f)vmn(n,h,f)&&(u=e.Math.min(u,h),c=e.Math.max(c,h),o=e.Math.min(o,f),a=e.Math.max(a,f));return s=c-u+1,r=a-o+1,new VV(iln(u),iln(o),iln(s),iln(r))}function xLn(n,t){var e,i,r,c;for(Px((c=new M2(n,0)).b<c.d.gc()),e=BB(c.d.Xb(c.c=c.b++),140);c.b<c.d.gc();)Px(c.b<c.d.gc()),r=new mH((i=BB(c.d.Xb(c.c=c.b++),140)).c,e.d,t),Px(c.b>0),c.a.Xb(c.c=--c.b),yR(c,r),Px(c.b<c.d.gc()),c.d.Xb(c.c=c.b++),r.a=!1,e=i}function DLn(n){var t,e,i,r,c;for(i=BB(mMn(n,(hWn(),Kft)),11),c=new Wb(n.j);c.a<c.c.c.length;){for(e=new Wb((r=BB(n0(c),11)).g);e.a<e.c.c.length;)return MZ(BB(n0(e),17),i),r;for(t=new Wb(r.e);t.a<t.c.c.length;)return SZ(BB(n0(t),17),i),r}return null}function RLn(n,t,i){var r,c;Vhn(r=fan(i.q.getTime()),0)<0?(c=VVn-dG(ldn(j7(r),VVn)))==VVn&&(c=0):c=dG(ldn(r,VVn)),1==t?xX(n,48+(c=e.Math.min((c+50)/100|0,9))&QVn):2==t?Enn(n,c=e.Math.min((c+5)/10|0,99),2):(Enn(n,c,3),t>3&&Enn(n,0,t-3))}function KLn(n){var t,e,i,r;return GI(mMn(n,(HXn(),sgt)))===GI((ufn(),pCt))?!n.e&&GI(mMn(n,Rdt))!==GI((Kan(),kft)):(i=BB(mMn(n,Kdt),292),r=qy(TD(mMn(n,Hdt)))||GI(mMn(n,qdt))===GI((Oin(),sht)),t=BB(mMn(n,Ddt),19).a,e=n.a.c.length,!r&&i!=(Kan(),kft)&&(0==t||t>e))}function _Ln(n){var t,e;for(e=0;e<n.c.length&&!(sq((l1(e,n.c.length),BB(n.c[e],113)))>0);e++);if(e>0&&e<n.c.length-1)return e;for(t=0;t<n.c.length&&!(sq((l1(t,n.c.length),BB(n.c[t],113)))>0);t++);return t>0&&e<n.c.length-1?t:n.c.length/2|0}function FLn(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=6&&t){if(vkn(n,t))throw Hp(new _y(w6n+ROn(n)));i=null,n.Cb&&(i=(e=n.Db>>16)>=0?skn(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=Npn(t,n,6,i)),(i=QD(n,t,i))&&i.Fi()}else 0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,6,t,t))}function BLn(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=9&&t){if(vkn(n,t))throw Hp(new _y(w6n+URn(n)));i=null,n.Cb&&(i=(e=n.Db>>16)>=0?fkn(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=Npn(t,n,9,i)),(i=YD(n,t,i))&&i.Fi()}else 0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,9,t,t))}function HLn(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=3&&t){if(vkn(n,t))throw Hp(new _y(w6n+lHn(n)));i=null,n.Cb&&(i=(e=n.Db>>16)>=0?Mkn(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=Npn(t,n,12,i)),(i=VD(n,t,i))&&i.Fi()}else 0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,3,t,t))}function qLn(n){var t,e,i,r,c;if(i=Ikn(n),null==(c=n.j)&&i)return n.$j()?null:i.zj();if(cL(i,148)){if((e=i.Aj())&&(r=e.Nh())!=n.i){if((t=BB(i,148)).Ej())try{n.g=r.Kh(t,c)}catch(a){if(!cL(a=lun(a),78))throw Hp(a);n.g=null}n.i=r}return n.g}return null}function GLn(n){var t;return WB(t=new Np,new xS(new xC(n.c,n.d),new xC(n.c+n.b,n.d))),WB(t,new xS(new xC(n.c,n.d),new xC(n.c,n.d+n.a))),WB(t,new xS(new xC(n.c+n.b,n.d+n.a),new xC(n.c+n.b,n.d))),WB(t,new xS(new xC(n.c+n.b,n.d+n.a),new xC(n.c,n.d+n.a))),t}function zLn(n,t,e,i){var r,c,a;if(a=Ajn(t,e),i.c[i.c.length]=t,-1==n.j[a.p]||2==n.j[a.p]||n.a[t.p])return i;for(n.j[a.p]=-1,c=new oz(ZL(hbn(a).a.Kc(),new h));dAn(c);)if(!b5(r=BB(U5(c),17))&&(b5(r)||r.c.i.c!=r.d.i.c)&&r!=t)return zLn(n,r,a,i);return i}function ULn(n,t,e){var i,r;for(r=t.a.ec().Kc();r.Ob();)i=BB(r.Pb(),79),!BB(RX(n.b,i),266)&&(JJ(PMn(i))==JJ(OMn(i))?tDn(n,i,e):PMn(i)==JJ(OMn(i))?null==RX(n.c,i)&&null!=RX(n.b,OMn(i))&&rzn(n,i,e,!1):null==RX(n.d,i)&&null!=RX(n.b,PMn(i))&&rzn(n,i,e,!0))}function XLn(n,t){var e,i,r,c,a,u,o;for(r=n.Kc();r.Ob();)for(i=BB(r.Pb(),10),CZ(u=new CSn,i),qCn(u,(kUn(),oIt)),hon(u,(hWn(),jlt),(hN(),!0)),a=t.Kc();a.Ob();)c=BB(a.Pb(),10),CZ(o=new CSn,c),qCn(o,CIt),hon(o,jlt,!0),hon(e=new wY,jlt,!0),SZ(e,u),MZ(e,o)}function WLn(n,t,e,i){var r,c,a,u;r=Adn(n,t,e),c=Adn(n,e,t),a=BB(RX(n.c,t),112),u=BB(RX(n.c,e),112),r<c?new zZ((O6(),Myt),a,u,c-r):c<r?new zZ((O6(),Myt),u,a,r-c):(0!=r||t.i&&e.i&&i[t.i.c][e.i.c])&&(new zZ((O6(),Myt),a,u,0),new zZ(Myt,u,a,0))}function VLn(n,t){var e,i,r,c,a,u;for(r=0,a=new Wb(t.a);a.a<a.c.c.length;)for(r+=(c=BB(n0(a),10)).o.b+c.d.a+c.d.d+n.e,i=new oz(ZL(fbn(c).a.Kc(),new h));dAn(i);)(e=BB(U5(i),17)).c.i.k==(uSn(),Iut)&&(r+=(u=BB(mMn(e.c.i,(hWn(),dlt)),10)).o.b+u.d.a+u.d.d);return r}function QLn(n,t,e){var i,r,c,a,u,o,s;for(c=new Np,OBn(n,s=new YT,a=new YT,t),Ezn(n,s,a,t,e),o=new Wb(n);o.a<o.c.c.length;)for(r=new Wb((u=BB(n0(o),112)).k);r.a<r.c.c.length;)i=BB(n0(r),129),(!t||i.c==(O6(),Tyt))&&u.g>i.b.g&&(c.c[c.c.length]=i);return c}function YLn(){YLn=O,DEt=new jC("CANDIDATE_POSITION_LAST_PLACED_RIGHT",0),xEt=new jC("CANDIDATE_POSITION_LAST_PLACED_BELOW",1),KEt=new jC("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT",2),REt=new jC("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW",3),_Et=new jC("WHOLE_DRAWING",4)}function JLn(n,t){if(cL(t,239))return hln(n,BB(t,33));if(cL(t,186))return Dln(n,BB(t,118));if(cL(t,354))return tQ(n,BB(t,137));if(cL(t,352))return JFn(n,BB(t,79));if(t)return null;throw Hp(new _y(z6n+LMn(new Jy(Pun(Gk(Ant,1),HWn,1,5,[t])))))}function ZLn(n){var t,e,i,r,c,a,u;for(c=new YT,r=new Wb(n.d.a);r.a<r.c.c.length;)0==(i=BB(n0(r),121)).b.a.c.length&&r5(c,i,c.c.b,c.c);if(c.b>1)for(t=AN((e=new qv,++n.b,e),n.d),u=spn(c,0);u.b!=u.d.c;)a=BB(b3(u),121),UNn(aM(cM(uM(rM(new Hv,1),0),t),a))}function nNn(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=11&&t){if(vkn(n,t))throw Hp(new _y(w6n+zRn(n)));i=null,n.Cb&&(i=(e=n.Db>>16)>=0?Skn(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=Npn(t,n,10,i)),(i=zR(n,t,i))&&i.Fi()}else 0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,11,t,t))}function tNn(n){var t,e,i,r;for(i=new usn(new Pb(n.b).a);i.b;)r=BB((e=ten(i)).cd(),11),hon(t=BB(e.dd(),10),(hWn(),dlt),r),hon(r,Elt,t),hon(r,elt,(hN(),!0)),qCn(r,BB(mMn(t,Qft),61)),mMn(t,Qft),hon(r.i,(HXn(),ept),(QEn(),VCt)),BB(mMn(vW(r.i),Zft),21).Fc((bDn(),dft))}function eNn(n,t,e){var i,r,c;if(i=0,r=0,n.c)for(c=new Wb(n.d.i.j);c.a<c.c.c.length;)i+=BB(n0(c),11).e.c.length;else i=1;if(n.d)for(c=new Wb(n.c.i.j);c.a<c.c.c.length;)r+=BB(n0(c),11).g.c.length;else r=1;return(e+t)/2+.4*CJ(HH(r-i))*(e-t)}function iNn(n){var t,e;if(LEn(),n.Hc((kUn(),PIt)))throw Hp(new _y("Port sides must not contain UNDEFINED"));switch(n.gc()){case 1:return Mst;case 2:return t=n.Hc(oIt)&&n.Hc(CIt),e=n.Hc(sIt)&&n.Hc(SIt),t||e?Cst:Pst;case 3:return Sst;case 4:return Tst;default:return null}}function rNn(n,t,e){var i,r,c,a;for(OTn(e,"Breaking Point Removing",1),n.a=BB(mMn(t,(HXn(),Zdt)),218),r=new Wb(t.b);r.a<r.c.c.length;)for(a=new Wb(a0(BB(n0(r),29).a));a.a<a.c.c.length;)Jnn(c=BB(n0(a),10))&&!(i=BB(mMn(c,(hWn(),Rft)),305)).d&&zUn(n,i);HSn(e)}function cNn(n,t,e){return jDn(),(!Dcn(n,t)||!Dcn(n,e))&&(mzn(new xC(n.c,n.d),new xC(n.c+n.b,n.d),t,e)||mzn(new xC(n.c+n.b,n.d),new xC(n.c+n.b,n.d+n.a),t,e)||mzn(new xC(n.c+n.b,n.d+n.a),new xC(n.c,n.d+n.a),t,e)||mzn(new xC(n.c,n.d+n.a),new xC(n.c,n.d),t,e))}function aNn(n,t){var e,i,r,c;if(!n.dc())for(e=0,i=n.gc();e<i;++e)if(null==(c=SD(n.Xb(e)))?null==t:mK(c.substr(0,3),"!##")?null!=t&&(r=t.length,!mK(c.substr(c.length-r,r),t)||c.length!=t.length+3)&&!mK(S7n,t):mK(c,P7n)&&!mK(S7n,t)||mK(c,t))return!0;return!1}function uNn(n,t,e,i){var r,c,a,u,o,s;for(a=n.j.c.length,o=x8(art,rJn,306,a,0,1),u=0;u<a;u++)(c=BB(xq(n.j,u),11)).p=u,o[u]=hOn(mAn(c),e,i);for(VNn(n,o,e,t,i),s=new xp,r=0;r<o.length;r++)o[r]&&VW(s,BB(xq(n.j,r),11),o[r]);s.f.c+s.g.c!=0&&(hon(n,(hWn(),zft),s),ASn(n,o))}function oNn(n,t,e){var i,r;for(i=new Wb(n.a.b);i.a<i.c.c.length;)if((r=f2(BB(n0(i),57)))&&r.k==(uSn(),Mut))switch(BB(mMn(r,(hWn(),Qft)),61).g){case 4:r.n.a=t.a;break;case 2:r.n.a=e.a-(r.o.a+r.d.c);break;case 1:r.n.b=t.b;break;case 3:r.n.b=e.b-(r.o.b+r.d.a)}}function sNn(){sNn=O,Ivt=new HP(QZn,0),Tvt=new HP("NIKOLOV",1),Pvt=new HP("NIKOLOV_PIXEL",2),Mvt=new HP("NIKOLOV_IMPROVED",3),Svt=new HP("NIKOLOV_IMPROVED_PIXEL",4),Evt=new HP("DUMMYNODE_PERCENTAGE",5),Cvt=new HP("NODECOUNT_PERCENTAGE",6),Ovt=new HP("NO_BOUNDARY",7)}function hNn(n,t,e){var i,r,c;if(!(r=BB(ZAn(t,(SMn(),UMt)),19))&&(r=iln(0)),!(c=BB(ZAn(e,UMt),19))&&(c=iln(0)),r.a>c.a)return-1;if(r.a<c.a)return 1;if(n.a){if(0!=(i=Pln(t.j,e.j)))return i;if(0!=(i=Pln(t.i,e.i)))return i}return Pln(t.g*t.f,e.g*e.f)}function fNn(n,t){var e,i,r,c,a,u,o,s,h,f;if(++n.e,t>(o=null==n.d?0:n.d.length)){for(h=n.d,n.d=x8(oAt,c9n,63,2*o+4,0,1),c=0;c<o;++c)if(s=h[c])for(i=s.g,f=s.i,u=0;u<f;++u)a=eR(n,(r=BB(i[u],133)).Sh()),!(e=n.d[a])&&(e=n.d[a]=n.uj()),e.Fc(r);return!0}return!1}function lNn(n,t,e){var i,r,c,a,u,o;if(c=(r=e).ak(),$xn(n.e,c)){if(c.hi())for(i=BB(n.g,119),a=0;a<n.i;++a)if(Nfn(u=i[a],r)&&a!=t)throw Hp(new _y(a8n))}else for(o=axn(n.e.Tg(),c),i=BB(n.g,119),a=0;a<n.i;++a)if(u=i[a],o.rl(u.ak()))throw Hp(new _y(I7n));sln(n,t,e)}function bNn(n,t){var e,i,r,c,a,u;for(e=BB(mMn(t,(hWn(),Xft)),21),a=BB(h6((RXn(),fut),e),21),u=BB(h6(put,e),21),c=a.Kc();c.Ob();)if(i=BB(c.Pb(),21),!BB(h6(n.b,i),15).dc())return!1;for(r=u.Kc();r.Ob();)if(i=BB(r.Pb(),21),!BB(h6(n.b,i),15).dc())return!1;return!0}function wNn(n,t){var e,i,r;for(OTn(t,"Partition postprocessing",1),e=new Wb(n.b);e.a<e.c.c.length;)for(i=new Wb(BB(n0(e),29).a);i.a<i.c.c.length;)for(r=new Wb(BB(n0(i),10).j);r.a<r.c.c.length;)qy(TD(mMn(BB(n0(r),11),(hWn(),jlt))))&&AU(r);HSn(t)}function dNn(n,t){var e,i,r,c,a,u,o;if(1==n.a.c.length)return FSn(BB(xq(n.a,0),187),t);for(r=cfn(n),a=0,u=n.d,i=r,o=n.d,c=(u-i)/2+i;i+1<u;){for(a=0,e=new Wb(n.a);e.a<e.c.c.length;)a+=cHn(BB(n0(e),187),c,!1).a;a<t?(o=c,u=c):i=c,c=(u-i)/2+i}return o}function gNn(n){var t,e,i,r;return isNaN(n)?(X7(),gtt):n<-0x8000000000000000?(X7(),wtt):n>=0x8000000000000000?(X7(),btt):(i=!1,n<0&&(i=!0,n=-n),e=0,n>=OQn&&(n-=(e=CJ(n/OQn))*OQn),t=0,n>=IQn&&(n-=(t=CJ(n/IQn))*IQn),r=M$(CJ(n),t,e),i&&Oon(r),r)}function pNn(n,t){var e,i,r,c;for(e=!t||!n.u.Hc((lIn(),eIt)),c=0,r=new Wb(n.e.Cf());r.a<r.c.c.length;){if((i=BB(n0(r),838)).Hf()==(kUn(),PIt))throw Hp(new _y("Label and node size calculator can only be used with ports that have port sides assigned."));i.vf(c++),Whn(n,i,e)}}function vNn(n,t){var e,i,r,c;return(i=t.Hh(n.a))&&(!i.b&&(i.b=new Jx((gWn(),k$t),X$t,i)),null!=(e=SD(cdn(i.b,J9n)))&&cL(c=-1==(r=e.lastIndexOf("#"))?uD(n,t.Aj(),e):0==r?M9(n,null,e.substr(1)):M9(n,e.substr(0,r),e.substr(r+1)),148))?BB(c,148):null}function mNn(n,t){var e,i,r,c;return(e=t.Hh(n.a))&&(!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),null!=(r=SD(cdn(e.b,k7n)))&&cL(c=-1==(i=r.lastIndexOf("#"))?uD(n,t.Aj(),r):0==i?M9(n,null,r.substr(1)):M9(n,r.substr(0,i),r.substr(i+1)),148))?BB(c,148):null}function yNn(n){var t,e,i,r,c;for(e=new Wb(n.a.a);e.a<e.c.c.length;){for((t=BB(n0(e),307)).j=null,c=t.a.a.ec().Kc();c.Ob();)kO((i=BB(c.Pb(),57)).b),(!t.j||i.d.c<t.j.d.c)&&(t.j=i);for(r=t.a.a.ec().Kc();r.Ob();)(i=BB(r.Pb(),57)).b.a=i.d.c-t.j.d.c,i.b.b=i.d.d-t.j.d.d}return n}function kNn(n){var t,e,i,r,c;for(e=new Wb(n.a.a);e.a<e.c.c.length;){for((t=BB(n0(e),189)).f=null,c=t.a.a.ec().Kc();c.Ob();)kO((i=BB(c.Pb(),81)).e),(!t.f||i.g.c<t.f.g.c)&&(t.f=i);for(r=t.a.a.ec().Kc();r.Ob();)(i=BB(r.Pb(),81)).e.a=i.g.c-t.f.g.c,i.e.b=i.g.d-t.f.g.d}return n}function jNn(n){var t,i,r;return i=BB(n.a,19).a,r=BB(n.b,19).a,i<(t=e.Math.max(e.Math.abs(i),e.Math.abs(r)))&&r==-t?new rI(iln(i+1),iln(r)):i==t&&r<t?new rI(iln(i),iln(r+1)):i>=-t&&r==t?new rI(iln(i-1),iln(r)):new rI(iln(i),iln(r-1))}function ENn(){return lWn(),Pun(Gk(ust,1),$Vn,77,0,[rot,tot,cot,kot,Fot,Mot,Uot,Oot,Kot,got,Not,Iot,_ot,lot,Wot,Vut,Lot,Hot,jot,Bot,Qot,Dot,Qut,Rot,Yot,Got,Vot,Eot,sot,Tot,yot,Xot,Zut,uot,Pot,Jut,Cot,vot,bot,Aot,dot,eot,not,mot,wot,$ot,zot,Yut,xot,pot,Sot,hot,oot,qot,aot,fot,iot])}function TNn(n,t,e){n.d=0,n.b=0,t.k==(uSn(),Iut)&&e.k==Iut&&BB(mMn(t,(hWn(),dlt)),10)==BB(mMn(e,dlt),10)&&(S7(t).j==(kUn(),sIt)?q$n(n,t,e):q$n(n,e,t)),t.k==Iut&&e.k==Put?S7(t).j==(kUn(),sIt)?n.d=1:n.b=1:e.k==Iut&&t.k==Put&&(S7(e).j==(kUn(),sIt)?n.b=1:n.d=1),umn(n,t,e)}function MNn(n){var t,e,i,r,c;return c=ATn(n),null!=n.a&&AH(c,"category",n.a),!WE(new Cb(n.d))&&(rtn(c,"knownOptions",i=new Cl),t=new ep(i),e5(new Cb(n.d),t)),!WE(n.g)&&(rtn(c,"supportedFeatures",r=new Cl),e=new ip(r),e5(n.g,e)),c}function SNn(n){var t,e,i,r,c,a,u,o;for(t=336,e=0,r=new sR(n.length),u=0,o=(a=n).length;u<o;++u)Qln(c=a[u]),EW(c),i=c.a,WB(r.a,yX(i)),t&=i.qd(),e=Ysn(e,i.rd());return BB(BB(XU(new Rq(null,qTn(new w1((WX(),Nwn(r.a)),16),new k,t,e)),new El(n)),670),833)}function PNn(n,t){var e;n.d&&(t.c!=n.e.c||fcn(n.e.b,t.b))&&(WB(n.f,n.d),n.a=n.d.c+n.d.b,n.d=null,n.e=null),nA(t.b)?n.c=t:n.b=t,(t.b==(Aun(),Zat)&&!t.a||t.b==nut&&t.a||t.b==tut&&t.a||t.b==eut&&!t.a)&&n.c&&n.b&&(e=new UV(n.a,n.c.d,t.c-n.a,n.b.d-n.c.d),n.d=e,n.e=t)}function CNn(n){var t;if(Ym.call(this),this.i=new lu,this.g=n,this.f=BB(n.e&&n.e(),9).length,0==this.f)throw Hp(new _y("There must be at least one phase in the phase enumeration."));this.c=new YK(t=BB(Vj(this.g),9),BB(SR(t,t.length),9),0),this.a=new B2,this.b=new xp}function INn(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=7&&t){if(vkn(n,t))throw Hp(new _y(w6n+cPn(n)));i=null,n.Cb&&(i=(e=n.Db>>16)>=0?hkn(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=BB(t,49).gh(n,1,DOt,i)),(i=VG(n,t,i))&&i.Fi()}else 0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,7,t,t))}function ONn(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=3&&t){if(vkn(n,t))throw Hp(new _y(w6n+Vfn(n)));i=null,n.Cb&&(i=(e=n.Db>>16)>=0?bkn(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=BB(t,49).gh(n,0,BOt,i)),(i=QG(n,t,i))&&i.Fi()}else 0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,3,t,t))}function ANn(n,t){var e,i,r,c,a,u,o,s,h;return $On(),t.d>n.d&&(u=n,n=t,t=u),t.d<63?Xxn(n,t):(s=z5(n,a=(-2&n.d)<<4),h=z5(t,a),i=uBn(n,G5(s,a)),r=uBn(t,G5(h,a)),o=ANn(s,h),e=ANn(i,r),c=G5(c=$Hn($Hn(c=ANn(uBn(s,i),uBn(r,h)),o),e),a),$Hn($Hn(o=G5(o,a<<1),c),e))}function $Nn(n,t,e){var i,r,c,a,u;for(a=Lfn(n,e),u=x8(Out,a1n,10,t.length,0,1),i=0,c=a.Kc();c.Ob();)qy(TD(mMn(r=BB(c.Pb(),11),(hWn(),elt))))&&(u[i++]=BB(mMn(r,Elt),10));if(i<t.length)throw Hp(new Fy("Expected "+t.length+" hierarchical ports, but found only "+i+"."));return u}function LNn(n,t){var e,i,r,c,a,u;if(!n.tb){for(!n.rb&&(n.rb=new Jz(n,HAt,n)),u=new XT((c=n.rb).i),r=new AL(c);r.e!=r.i.gc();)i=BB(kpn(r),138),(e=BB(null==(a=i.ne())?jCn(u.f,null,i):ubn(u.g,a,i),138))&&(null==a?jCn(u.f,null,e):ubn(u.g,a,e));n.tb=u}return BB(SJ(n.tb,t),138)}function NNn(n,t){var e,i,r,c,a;if((null==n.i&&qFn(n),n.i).length,!n.p){for(a=new XT(1+(3*n.g.i/2|0)),r=new ax(n.g);r.e!=r.i.gc();)i=BB(jpn(r),170),(e=BB(null==(c=i.ne())?jCn(a.f,null,i):ubn(a.g,c,i),170))&&(null==c?jCn(a.f,null,e):ubn(a.g,c,e));n.p=a}return BB(SJ(n.p,t),170)}function xNn(n,t,e,i,r){var c,a,u,o;for(wgn(i+CY(e,e.$d()),r),tW(t,Lwn(e)),(c=e.f)&&xNn(n,t,c,"Caused by: ",!1),null==e.k&&(e.k=x8(Jnt,sVn,78,0,0,1)),u=0,o=(a=e.k).length;u<o;++u)xNn(n,t,a[u],"Suppressed: ",!1);null!=console.groupEnd&&console.groupEnd.call(console)}function DNn(n,t,e,i){var r,c,a,u;for(a=(u=t.e).length,c=t.q._f(u,e?0:a-1,e),c|=gRn(n,u[e?0:a-1],e,i),r=e?1:a-2;e?r<a:r>=0;r+=e?1:-1)c|=t.c.Sf(u,r,e,i&&!qy(TD(mMn(t.j,(hWn(),Jft))))&&!qy(TD(mMn(t.j,(hWn(),Ilt))))),c|=t.q._f(u,r,e),c|=gRn(n,u[r],e,i);return TU(n.c,t),c}function RNn(n,t,e){var i,r,c,a,u,o,s,h;for(s=0,h=(o=I2(n.j)).length;s<h;++s){if(u=o[s],e==(ain(),Hvt)||e==Gvt)for(c=0,a=(r=Z0(u.g)).length;c<a;++c)OSn(t,i=r[c])&&tBn(i,!0);if(e==qvt||e==Gvt)for(c=0,a=(r=Z0(u.e)).length;c<a;++c)ISn(t,i=r[c])&&tBn(i,!0)}}function KNn(n){var t,e;switch(t=null,e=null,eEn(n).g){case 1:kUn(),t=oIt,e=CIt;break;case 2:kUn(),t=SIt,e=sIt;break;case 3:kUn(),t=CIt,e=oIt;break;case 4:kUn(),t=sIt,e=SIt}Gl(n,BB($N(Oz(BB(h6(n.k,t),15).Oc(),Qst)),113)),ql(n,BB($N(Iz(BB(h6(n.k,e),15).Oc(),Qst)),113))}function _Nn(n){var t,e,i,r,c,a;if((r=BB(xq(n.j,0),11)).e.c.length+r.g.c.length==0)n.n.a=0;else{for(a=0,i=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[new Hw(r),new Gw(r)])));dAn(i);)a+=(e=BB(U5(i),11)).i.n.a+e.n.a+e.a.a;c=(t=BB(mMn(n,(HXn(),npt)),8))?t.a:0,n.n.a=a/(r.e.c.length+r.g.c.length)-c}}function FNn(n,t){var e,i,r;for(i=new Wb(t.a);i.a<i.c.c.length;)e=BB(n0(i),221),LG(BB(e.b,65),XR(B$(BB(t.b,65).c),BB(t.b,65).a)),(r=Y_n(BB(t.b,65).b,BB(e.b,65).b))>1&&(n.a=!0),NG(BB(e.b,65),UR(B$(BB(t.b,65).c),kL(XR(B$(BB(e.b,65).a),BB(t.b,65).a),r))),QZ(n,t),FNn(n,e)}function BNn(n){var t,e,i,r,c,a;for(r=new Wb(n.a.a);r.a<r.c.c.length;)(e=BB(n0(r),189)).e=0,e.d.a.$b();for(i=new Wb(n.a.a);i.a<i.c.c.length;)for(t=(e=BB(n0(i),189)).a.a.ec().Kc();t.Ob();)for(a=BB(t.Pb(),81).f.Kc();a.Ob();)(c=BB(a.Pb(),81)).d!=e&&(TU(e.d,c),++c.d.e)}function HNn(n){var t,e,i,r,c,a,u,o;for(e=0,t=o=n.j.c.length,r=2*o,u=new Wb(n.j);u.a<u.c.c.length;)switch((a=BB(n0(u),11)).j.g){case 2:case 4:a.p=-1;break;case 1:case 3:i=a.e.c.length,c=a.g.c.length,a.p=i>0&&c>0?t++:i>0?e++:c>0?r++:e++}SQ(),m$(n.j,new bi)}function qNn(n){var t,e;e=null,t=BB(xq(n.g,0),17);do{if(Lx(e=t.d.i,(hWn(),flt)))return BB(mMn(e,flt),11).i;if(e.k!=(uSn(),Cut)&&dAn(new oz(ZL(lbn(e).a.Kc(),new h))))t=BB(U5(new oz(ZL(lbn(e).a.Kc(),new h))),17);else if(e.k!=Cut)return null}while(e&&e.k!=(uSn(),Cut));return e}function GNn(n,t){var e,i,r,c,a,u,o,s,h;for(u=t.j,a=t.g,o=BB(xq(u,u.c.length-1),113),l1(0,u.c.length),s=Zmn(n,a,o,h=BB(u.c[0],113)),c=1;c<u.c.length;c++)l1(c-1,u.c.length),e=BB(u.c[c-1],113),l1(c,u.c.length),(i=Zmn(n,a,e,r=BB(u.c[c],113)))>s&&(o=e,h=r,s=i);t.a=h,t.c=o}function zNn(n,t){var e;if(!ZU(n.b,t.b))throw Hp(new Fy("Invalid hitboxes for scanline constraint calculation."));(kun(t.b,BB(MR(n.b,t.b),57))||kun(t.b,BB(TR(n.b,t.b),57)))&&($T(),t.b),n.a[t.b.f]=BB(kK(n.b,t.b),57),(e=BB(yK(n.b,t.b),57))&&(n.a[e.f]=t.b)}function UNn(n){if(!n.a.d||!n.a.e)throw Hp(new Fy((ED(Hit),Hit.k+" must have a source and target "+(ED(qit),qit.k+" specified."))));if(n.a.d==n.a.e)throw Hp(new Fy("Network simplex does not support self-loops: "+n.a+" "+n.a.d+" "+n.a.e));return RN(n.a.d.g,n.a),RN(n.a.e.b,n.a),n.a}function XNn(n,t,e){var i,r,c,a,u,o,s;for(s=new dE(new Jd(n)),u=0,o=(a=Pun(Gk(Gut,1),u1n,11,0,[t,e])).length;u<o;++u)for(c=a[u],Mon(s.a,c,(hN(),ptt)),r=new m6(c.b);y$(r.a)||y$(r.b);)(i=BB(y$(r.a)?n0(r.a):n0(r.b),17)).c==i.d||ZU(s,c==i.c?i.d:i.c);return yX(s),new t_(s)}function WNn(n,t,e){var i,r,c,a,u,o;if(i=0,0!=t.b&&0!=e.b){c=spn(t,0),a=spn(e,0),u=Gy(MD(b3(c))),o=Gy(MD(b3(a))),r=!0;do{if(u>o-n.b&&u<o+n.b)return-1;u>o-n.a&&u<o+n.a&&++i,u<=o&&c.b!=c.d.c?u=Gy(MD(b3(c))):o<=u&&a.b!=a.d.c?o=Gy(MD(b3(a))):r=!1}while(r)}return i}function VNn(n,t,e,i,r){var c,a,u,o;for(o=new YK(c=BB(Vj(FIt),9),BB(SR(c,c.length),9),0),u=new Wb(n.j);u.a<u.c.c.length;)t[(a=BB(n0(u),11)).p]&&(BUn(a,t[a.p],i),orn(o,a.j));r?(GEn(n,t,(kUn(),oIt),2*e,i),GEn(n,t,CIt,2*e,i)):(GEn(n,t,(kUn(),sIt),2*e,i),GEn(n,t,SIt,2*e,i))}function QNn(n){var t,e,i,r,c;if(c=new Np,Otn(n.b,new kw(c)),n.b.c=x8(Ant,HWn,1,0,5,1),0!=c.c.length){for(l1(0,c.c.length),t=BB(c.c[0],78),e=1,i=c.c.length;e<i;++e)l1(e,c.c.length),(r=BB(c.c[e],78))!=t&>n(t,r);if(cL(t,60))throw Hp(BB(t,60));if(cL(t,289))throw Hp(BB(t,289))}}function YNn(n,t){var e,i,r,c;for(n=null==n?zWn:(kW(n),n),e=new Ik,c=0,i=0;i<t.length&&-1!=(r=n.indexOf("%s",c));)oO(e,n.substr(c,r-c)),uO(e,t[i++]),c=r+2;if(oO(e,n.substr(c)),i<t.length){for(e.a+=" [",uO(e,t[i++]);i<t.length;)e.a+=FWn,uO(e,t[i++]);e.a+="]"}return e.a}function JNn(n){var t,e,i,r;for(t=0,r=(i=n.length)-4,e=0;e<r;)b1(e+3,n.length),t=n.charCodeAt(e+3)+(b1(e+2,n.length),31*(n.charCodeAt(e+2)+(b1(e+1,n.length),31*(n.charCodeAt(e+1)+(b1(e,n.length),31*(n.charCodeAt(e)+31*t)))))),t|=0,e+=4;for(;e<i;)t=31*t+fV(n,e++);return t|=0}function ZNn(n){var t;for(t=new oz(ZL(lbn(n).a.Kc(),new h));dAn(t);)if(BB(U5(t),17).d.i.k!=(uSn(),Sut))throw Hp(new rk(P1n+gyn(n)+"' has its layer constraint set to LAST, but has at least one outgoing edge that does not go to a LAST_SEPARATE node. That must not happen."))}function nxn(n,t,i,r){var c,a,u,o,s,f,l;for(o=0,s=new Wb(n.a);s.a<s.c.c.length;){for(u=0,a=new oz(ZL(fbn(BB(n0(s),10)).a.Kc(),new h));dAn(a);)f=g1((c=BB(U5(a),17)).c).b,l=g1(c.d).b,u=e.Math.max(u,e.Math.abs(l-f));o=e.Math.max(o,u)}return r*e.Math.min(1,t/i)*o}function txn(n){var t;return t=new Pk,0!=(256&n)&&(t.a+="F"),0!=(128&n)&&(t.a+="H"),0!=(512&n)&&(t.a+="X"),0!=(2&n)&&(t.a+="i"),0!=(8&n)&&(t.a+="m"),0!=(4&n)&&(t.a+="s"),0!=(32&n)&&(t.a+="u"),0!=(64&n)&&(t.a+="w"),0!=(16&n)&&(t.a+="x"),0!=(n&k6n)&&(t.a+=","),Uy(t.a)}function exn(n,t){var e,i,r;for(OTn(t,"Resize child graph to fit parent.",1),i=new Wb(n.b);i.a<i.c.c.length;)e=BB(n0(i),29),gun(n.a,e.a),e.a.c=x8(Ant,HWn,1,0,5,1);for(r=new Wb(n.a);r.a<r.c.c.length;)PZ(BB(n0(r),10),null);n.b.c=x8(Ant,HWn,1,0,5,1),Bxn(n),n.e&&S_n(n.e,n),HSn(t)}function ixn(n){var t,e,i,r,c,a,u;if(r=(i=n.b).e,c=LK(BB(mMn(i,(HXn(),ept)),98)),e=!!r&&BB(mMn(r,(hWn(),Zft)),21).Hc((bDn(),lft)),!c&&!e)for(u=new Kb(new Ob(n.e).a.vc().Kc());u.a.Ob();)t=BB(u.a.Pb(),42),(a=BB(t.dd(),113)).a&&(CZ(a.d,null),a.c=!0,n.a=!0)}function rxn(n){var t,e,i,r,c,a,u,o,s,h,f,l;for(f=-1,l=0,s=0,h=(o=n).length;s<h;++s){for(a=0,u=(c=o[s]).length;a<u;++a)for(r=c[a],t=new pP(-1==f?n[0]:n[f],okn(r)),e=0;e<r.j.c.length;e++)for(i=e+1;i<r.j.c.length;i++)Nz(t,BB(xq(r.j,e),11),BB(xq(r.j,i),11))>0&&++l;++f}return l}function cxn(n,t){var e,i,r,c,a;for(a=BB(mMn(t,(CAn(),Lkt)),425),c=spn(t.b,0);c.b!=c.d.c;)if(r=BB(b3(c),86),0==n.b[r.g]){switch(a.g){case 0:Qvn(n,r);break;case 1:HAn(n,r)}n.b[r.g]=2}for(i=spn(n.a,0);i.b!=i.d.c;)ywn((e=BB(b3(i),188)).b.d,e,!0),ywn(e.c.b,e,!0);hon(t,(qqn(),lkt),n.a)}function axn(n,t){var e,i,r,c;return ZM(),t?t==(Uqn(),KLt)||(t==yLt||t==vLt||t==mLt)&&n!=pLt?new cUn(n,t):((e=(i=BB(t,677)).pk())||(kV(B7((IPn(),Z$t),t)),e=i.pk()),!e.i&&(e.i=new xp),!(r=BB(qI(AY((c=e.i).f,n)),1942))&&VW(c,n,r=new cUn(n,t)),r):aLt}function uxn(n,t){var e,i,r,c,a,u,o,s;for(u=BB(mMn(n,(hWn(),dlt)),11),o=Aon(Pun(Gk(PMt,1),sVn,8,0,[u.i.n,u.n,u.a])).a,s=n.i.n.b,r=0,c=(i=Z0(n.e)).length;r<c;++r)MZ(e=i[r],u),fO(e.a,new xC(o,s)),t&&((a=BB(mMn(e,(HXn(),vgt)),74))||(a=new km,hon(e,vgt,a)),DH(a,new xC(o,s)))}function oxn(n,t){var e,i,r,c,a,u,o,s;for(i=BB(mMn(n,(hWn(),dlt)),11),o=Aon(Pun(Gk(PMt,1),sVn,8,0,[i.i.n,i.n,i.a])).a,s=n.i.n.b,a=0,u=(c=Z0(n.g)).length;a<u;++a)SZ(r=c[a],i),hO(r.a,new xC(o,s)),t&&((e=BB(mMn(r,(HXn(),vgt)),74))||(e=new km,hon(r,vgt,e)),DH(e,new xC(o,s)))}function sxn(n,t){var e,i,r,c,a;for(n.b=new Np,n.d=BB(mMn(t,(hWn(),Slt)),230),n.e=c0(n.d),c=new YT,r=u6(Pun(Gk(jut,1),JZn,37,0,[t])),a=0;a<r.c.length;)l1(a,r.c.length),(i=BB(r.c[a],37)).p=a++,gun(r,(e=new CGn(i,n.a,n.b)).b),WB(n.b,e),e.s&&nX(spn(c,0),e);return n.c=new Rv,c}function hxn(n,t){var e,i,r,c,a,u;for(a=BB(BB(h6(n.r,t),21),84).Kc();a.Ob();)(e=(c=BB(a.Pb(),111)).c?VH(c.c):0)>0?c.a?e>(u=c.b.rf().a)&&(r=(e-u)/2,c.d.b=r,c.d.c=r):c.d.c=n.s+e:Hz(n.u)&&((i=_Tn(c.b)).c<0&&(c.d.b=-i.c),i.c+i.b>c.b.rf().a&&(c.d.c=i.c+i.b-c.b.rf().a))}function fxn(n,t){var e,i;for(OTn(t,"Semi-Interactive Crossing Minimization Processor",1),e=!1,i=new Wb(n.b);i.a<i.c.c.length;)e|=null!=$fn(ytn(AV(AV(new Rq(null,new w1(BB(n0(i),29).a,16)),new Qi),new Yi),new Ji),new Zi).a;e&&hon(n,(hWn(),alt),(hN(),!0)),HSn(t)}function lxn(n,t,e){var i,r,c;if(!(r=e)&&(r=new Xm),OTn(r,"Layout",n.a.c.length),qy(TD(mMn(t,(CAn(),Ekt)))))for($T(),i=0;i<n.a.c.length;i++)i++,nE(tsn(BB(xq(n.a,i),51)));for(c=new Wb(n.a);c.a<c.c.c.length;)BB(n0(c),51).pf(t,mcn(r,1));HSn(r)}function bxn(n){var t,i;if(t=BB(n.a,19).a,i=BB(n.b,19).a,t>=0){if(t==i)return new rI(iln(-t-1),iln(-t-1));if(t==-i)return new rI(iln(-t),iln(i+1))}return e.Math.abs(t)>e.Math.abs(i)?new rI(iln(-t),iln(t<0?i:i+1)):new rI(iln(t+1),iln(i))}function wxn(n){var t,e;e=BB(mMn(n,(HXn(),kgt)),163),t=BB(mMn(n,(hWn(),ilt)),303),e==(Tbn(),Flt)?(hon(n,kgt,qlt),hon(n,ilt,(z7(),Cft))):e==Hlt?(hon(n,kgt,qlt),hon(n,ilt,(z7(),Sft))):t==(z7(),Cft)?(hon(n,kgt,Flt),hon(n,ilt,Pft)):t==Sft&&(hon(n,kgt,Hlt),hon(n,ilt,Pft))}function dxn(){dxn=O,jyt=new oa,vyt=dq(new B2,(yMn(),_at),(lWn(),jot)),kyt=WG(dq(new B2,_at,Dot),Bat,xot),Eyt=ogn(ogn(FM(WG(dq(new B2,Rat,Uot),Bat,zot),Fat),Got),Xot),myt=WG(dq(dq(dq(new B2,Kat,Mot),Fat,Pot),Fat,Cot),Bat,Sot),yyt=WG(dq(dq(new B2,Fat,Cot),Fat,uot),Bat,aot)}function gxn(){gxn=O,Cyt=dq(WG(new B2,(yMn(),Bat),(lWn(),hot)),_at,jot),$yt=ogn(ogn(FM(WG(dq(new B2,Rat,Uot),Bat,zot),Fat),Got),Xot),Iyt=WG(dq(dq(dq(new B2,Kat,Mot),Fat,Pot),Fat,Cot),Bat,Sot),Ayt=dq(dq(new B2,_at,Dot),Bat,xot),Oyt=WG(dq(dq(new B2,Fat,Cot),Fat,uot),Bat,aot)}function pxn(n,t,e,i,r){var c,a;(b5(t)||t.c.i.c!=t.d.i.c)&&nrn(Aon(Pun(Gk(PMt,1),sVn,8,0,[r.i.n,r.n,r.a])),e)||b5(t)||(t.c==r?Kx(t.a,0,new wA(e)):DH(t.a,new wA(e)),i&&!FT(n.a,e)&&((a=BB(mMn(t,(HXn(),vgt)),74))||(a=new km,hon(t,vgt,a)),r5(a,c=new wA(e),a.c.b,a.c),TU(n.a,c)))}function vxn(n){var t;for(t=new oz(ZL(fbn(n).a.Kc(),new h));dAn(t);)if(BB(U5(t),17).c.i.k!=(uSn(),Sut))throw Hp(new rk(P1n+gyn(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 mxn(n,t,e){var i,r,c,a,u,o;if(0==(r=pbn(254&n.Db)))n.Eb=e;else{if(1==r)a=x8(Ant,HWn,1,2,5,1),0==Rmn(n,t)?(a[0]=e,a[1]=n.Eb):(a[0]=n.Eb,a[1]=e);else for(a=x8(Ant,HWn,1,r+1,5,1),c=een(n.Eb),i=2,u=0,o=0;i<=128;i<<=1)i==t?a[o++]=e:0!=(n.Db&i)&&(a[o++]=c[u++]);n.Eb=a}n.Db|=t}function yxn(n,t,i){var r,c,a,u;for(this.b=new Np,c=0,r=0,u=new Wb(n);u.a<u.c.c.length;)a=BB(n0(u),167),i&&KBn(a),WB(this.b,a),c+=a.o,r+=a.p;this.b.c.length>0&&(c+=(a=BB(xq(this.b,0),167)).o,r+=a.p),c*=2,r*=2,t>1?c=CJ(e.Math.ceil(c*t)):r=CJ(e.Math.ceil(r/t)),this.a=new qwn(c,r)}function kxn(n,t,i,r,c,a){var u,o,s,h,f,l,b,w,d,g;for(h=r,t.j&&t.o?(d=(b=BB(RX(n.f,t.A),57)).d.c+b.d.b,--h):d=t.a.c+t.a.b,f=c,i.q&&i.o?(s=(b=BB(RX(n.f,i.C),57)).d.c,++f):s=i.a.c,w=d+(o=(s-d)/e.Math.max(2,f-h)),l=h;l<f;++l)g=(u=BB(a.Xb(l),128)).a.b,u.a.c=w-g/2,w+=o}function jxn(n,t,e,i,r,c){var a,u,o,s,h,f;for(s=e.c.length,c&&(n.c=x8(ANt,hQn,25,t.length,15,1)),a=r?0:t.length-1;r?a<t.length:a>=0;a+=r?1:-1){for(u=t[a],o=i==(kUn(),oIt)?r?abn(u,i):ean(abn(u,i)):r?ean(abn(u,i)):abn(u,i),c&&(n.c[u.p]=o.gc()),f=o.Kc();f.Ob();)h=BB(f.Pb(),11),n.d[h.p]=s++;gun(e,o)}}function Exn(n,t,e){var i,r,c,a,u,o,s,h;for(c=Gy(MD(n.b.Kc().Pb())),s=Gy(MD(Wan(t.b))),i=kL(B$(n.a),s-e),r=kL(B$(t.a),e-c),kL(h=UR(i,r),1/(s-c)),this.a=h,this.b=new Np,u=!0,(a=n.b.Kc()).Pb();a.Ob();)o=Gy(MD(a.Pb())),u&&o-e>D3n&&(this.b.Fc(e),u=!1),this.b.Fc(o);u&&this.b.Fc(e)}function Txn(n){var t,e,i,r;if(hKn(n,n.n),n.d.c.length>0){for(nk(n.c);pAn(n,BB(n0(new Wb(n.e.a)),121))<n.e.a.c.length;){for(r=(t=Ryn(n)).e.e-t.d.e-t.a,t.e.j&&(r=-r),i=new Wb(n.e.a);i.a<i.c.c.length;)(e=BB(n0(i),121)).j&&(e.e+=r);nk(n.c)}nk(n.c),pIn(n,BB(n0(new Wb(n.e.a)),121)),gGn(n)}}function Mxn(n,t){var e,i,r,c,a;for(r=BB(h6(n.a,(LEn(),Mst)),15).Kc();r.Ob();)switch(i=BB(r.Pb(),101),e=BB(xq(i.j,0),113).d.j,m$(c=new t_(i.j),new Jr),t.g){case 1:NEn(n,c,e,(Crn(),Dst),1);break;case 0:NEn(n,new s1(c,0,a=_Ln(c)),e,(Crn(),Dst),0),NEn(n,new s1(c,a,c.c.length),e,Dst,1)}}function Sxn(n,t){var e,i;if(Nun(),e=T5(cin(),t.tg())){if(i=e.j,cL(n,239))return rZ(BB(n,33))?SN(i,(rpn(),sMt))||SN(i,hMt):SN(i,(rpn(),sMt));if(cL(n,352))return SN(i,(rpn(),uMt));if(cL(n,186))return SN(i,(rpn(),fMt));if(cL(n,354))return SN(i,(rpn(),oMt))}return!0}function Pxn(n,t,e){var i,r,c,a,u,o;if(c=(r=e).ak(),$xn(n.e,c)){if(c.hi())for(i=BB(n.g,119),a=0;a<n.i;++a)if(Nfn(u=i[a],r)&&a!=t)throw Hp(new _y(a8n))}else for(o=axn(n.e.Tg(),c),i=BB(n.g,119),a=0;a<n.i;++a)if(u=i[a],o.rl(u.ak())&&a!=t)throw Hp(new _y(I7n));return BB(ovn(n,t,e),72)}function Cxn(n,t){if(t instanceof Object)try{if(t.__java$exception=n,-1!=navigator.userAgent.toLowerCase().indexOf("msie")&&$doc.documentMode<9)return;var e=n;Object.defineProperties(t,{cause:{get:function(){var n=e.Zd();return n&&n.Xd()}},suppressed:{get:function(){return e.Yd()}}})}catch(i){}}function Ixn(n,t){var e,i,r,c,a;if(i=t>>5,t&=31,i>=n.d)return n.e<0?(ODn(),Ytt):(ODn(),eet);if(c=n.d-i,QSn(r=x8(ANt,hQn,25,c+1,15,1),c,n.a,i,t),n.e<0){for(e=0;e<i&&0==n.a[e];e++);if(e<i||t>0&&n.a[e]<<32-t!=0){for(e=0;e<c&&-1==r[e];e++)r[e]=0;e==c&&++c,++r[e]}}return X0(a=new lU(n.e,c,r)),a}function Oxn(n){var t,e,i,r;return e=new $w(r=WJ(n)),i=new Lw(r),gun(t=new Np,(!n.d&&(n.d=new hK(_Ot,n,8,5)),n.d)),gun(t,(!n.e&&(n.e=new hK(_Ot,n,7,4)),n.e)),BB(P4($V(AV(new Rq(null,new w1(t,16)),e),i),x7(new Q,new Y,new cn,new an,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Xet),Uet]))),21)}function Axn(n,t,e,i){var r,c,a,u,o;if(ZM(),u=BB(t,66).Oj(),$xn(n.e,t)){if(t.hi()&&UFn(n,t,i,cL(t,99)&&0!=(BB(t,18).Bb&BQn)))throw Hp(new _y(a8n))}else for(o=axn(n.e.Tg(),t),r=BB(n.g,119),a=0;a<n.i;++a)if(c=r[a],o.rl(c.ak()))throw Hp(new _y(I7n));sln(n,EPn(n,t,e),u?BB(i,72):Z3(t,i))}function $xn(n,t){var e,i,r;return ZM(),!!t.$j()||-2==t.Zj()&&(t==(TOn(),lLt)||t==sLt||t==hLt||t==fLt||!(Awn(r=n.Tg(),t)>=0)&&(!(e=Fqn((IPn(),Z$t),r,t))||((i=e.Zj())>1||-1==i)&&3!=DW(B7(Z$t,e))))}function Lxn(n,t,e,i){var r,c,a,u,o;return u=PTn(BB(Wtn((!t.b&&(t.b=new hK(KOt,t,4,7)),t.b),0),82)),o=PTn(BB(Wtn((!t.c&&(t.c=new hK(KOt,t,5,8)),t.c),0),82)),JJ(u)==JJ(o)||Ctn(o,u)?null:(a=XJ(t))==e?i:(c=BB(RX(n.a,a),10))&&(r=c.e)?r:null}function Nxn(n,t){var e;switch(OTn(t,"Label side selection ("+(e=BB(mMn(n,(HXn(),Jdt)),276))+")",1),e.g){case 0:TAn(n,(Xyn(),jCt));break;case 1:TAn(n,(Xyn(),ECt));break;case 2:sBn(n,(Xyn(),jCt));break;case 3:sBn(n,(Xyn(),ECt));break;case 4:uDn(n,(Xyn(),jCt));break;case 5:uDn(n,(Xyn(),ECt))}HSn(t)}function xxn(n,t,e){var i,r,c,a,u;if((c=n[lj(e,n.length)])[0].k==(uSn(),Mut))for(r=fj(e,c.length),u=t.j,i=0;i<u.c.length;i++)l1(i,u.c.length),a=BB(u.c[i],11),(e?a.j==(kUn(),oIt):a.j==(kUn(),CIt))&&qy(TD(mMn(a,(hWn(),elt))))&&(c5(u,i,BB(mMn(c[r],(hWn(),dlt)),11)),r+=e?1:-1)}function Dxn(n,t){var e,i,r,c,a;a=new Np,e=t;do{(c=BB(RX(n.b,e),128)).B=e.c,c.D=e.d,a.c[a.c.length]=c,e=BB(RX(n.k,e),17)}while(e);return l1(0,a.c.length),(i=BB(a.c[0],128)).j=!0,i.A=BB(i.d.a.ec().Kc().Pb(),17).c.i,(r=BB(xq(a,a.c.length-1),128)).q=!0,r.C=BB(r.d.a.ec().Kc().Pb(),17).d.i,a}function Rxn(n){if(null==n.g)switch(n.p){case 0:n.g=fZ(n)?(hN(),vtt):(hN(),ptt);break;case 1:n.g=Pnn(D3(n));break;case 2:n.g=fun(Q1(n));break;case 3:n.g=OW(n);break;case 4:n.g=new Nb(IW(n));break;case 6:n.g=jgn(AW(n));break;case 5:n.g=iln(hJ(n));break;case 7:n.g=rln(_3(n))}return n.g}function Kxn(n){if(null==n.n)switch(n.p){case 0:n.n=lZ(n)?(hN(),vtt):(hN(),ptt);break;case 1:n.n=Pnn(R3(n));break;case 2:n.n=fun(Y1(n));break;case 3:n.n=LW(n);break;case 4:n.n=new Nb(NW(n));break;case 6:n.n=jgn($W(n));break;case 5:n.n=iln(fJ(n));break;case 7:n.n=rln(K3(n))}return n.n}function _xn(n){var t,e,i,r,c,a;for(r=new Wb(n.a.a);r.a<r.c.c.length;)(e=BB(n0(r),307)).g=0,e.i=0,e.e.a.$b();for(i=new Wb(n.a.a);i.a<i.c.c.length;)for(t=(e=BB(n0(i),307)).a.a.ec().Kc();t.Ob();)for(a=BB(t.Pb(),57).c.Kc();a.Ob();)(c=BB(a.Pb(),57)).a!=e&&(TU(e.e,c),++c.a.g,++c.a.i)}function Fxn(n,t){var e,i,r;if(!ZU(n.a,t.b))throw Hp(new Fy("Invalid hitboxes for scanline overlap calculation."));for(r=!1,i=new Fb(new BR(new xN(new _b(n.a.a).a).b));aS(i.a.a);)if(e=BB(mx(i.a).cd(),65),eon(t.b,e))xj(n.b.a,t.b,e),r=!0;else if(r)break}function Bxn(n){var t,i,r,c,a;c=BB(mMn(n,(HXn(),Fgt)),21),a=BB(mMn(n,qgt),21),t=new wA(i=new xC(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a)),c.Hc((mdn(),DIt))&&(r=BB(mMn(n,Hgt),8),a.Hc((n_n(),GIt))&&(r.a<=0&&(r.a=20),r.b<=0&&(r.b=20)),t.a=e.Math.max(i.a,r.a),t.b=e.Math.max(i.b,r.b)),XBn(n,i,t)}function Hxn(n,t){var e,i,r,c,a,u,o,s;r=t?new pc:new vc,c=!1;do{for(c=!1,a=(t?ean(n.b):n.b).Kc();a.Ob();)for(s=a0(BB(a.Pb(),29).a),t||new fy(s),o=new Wb(s);o.a<o.c.c.length;)u=BB(n0(o),10),r.Mb(u)&&(i=u,e=BB(mMn(u,(hWn(),Rft)),305),c=eRn(i,t?e.b:e.k,t,!1))}while(c)}function qxn(n,t,e){var i,r,c,a;for(OTn(e,"Longest path layering",1),n.a=t,a=n.a.a,n.b=x8(ANt,hQn,25,a.c.length,15,1),i=0,c=new Wb(a);c.a<c.c.c.length;)BB(n0(c),10).p=i,n.b[i]=-1,++i;for(r=new Wb(a);r.a<r.c.c.length;)D$n(n,BB(n0(r),10));a.c=x8(Ant,HWn,1,0,5,1),n.a=null,n.b=null,HSn(e)}function Gxn(n,t){var e,i,r;t.a?(ZU(n.b,t.b),n.a[t.b.i]=BB(kK(n.b,t.b),81),(e=BB(yK(n.b,t.b),81))&&(n.a[e.i]=t.b)):(!!(i=BB(kK(n.b,t.b),81))&&i==n.a[t.b.i]&&!!i.d&&i.d!=t.b.d&&i.f.Fc(t.b),!!(r=BB(yK(n.b,t.b),81))&&n.a[r.i]==t.b&&!!r.d&&r.d!=t.b.d&&t.b.f.Fc(r),MN(n.b,t.b))}function zxn(n,t){var i,r,c,a,u,o;return a=n.d,(o=Gy(MD(mMn(n,(HXn(),agt)))))<0&&hon(n,agt,o=0),t.o.b=o,u=e.Math.floor(o/2),qCn(r=new CSn,(kUn(),CIt)),CZ(r,t),r.n.b=u,qCn(c=new CSn,oIt),CZ(c,t),c.n.b=u,MZ(n,r),qan(i=new wY,n),hon(i,vgt,null),SZ(i,c),MZ(i,a),jFn(t,n,i),sCn(n,i),i}function Uxn(n){var t,e;return e=BB(mMn(n,(hWn(),Zft)),21),t=new B2,e.Hc((bDn(),bft))&&(Jcn(t,byt),Jcn(t,dyt)),(e.Hc(dft)||qy(TD(mMn(n,(HXn(),ugt)))))&&(Jcn(t,dyt),e.Hc(gft)&&Jcn(t,gyt)),e.Hc(lft)&&Jcn(t,lyt),e.Hc(vft)&&Jcn(t,pyt),e.Hc(wft)&&Jcn(t,wyt),e.Hc(sft)&&Jcn(t,hyt),e.Hc(fft)&&Jcn(t,fyt),t}function Xxn(n,t){var e,i,r,c,a,u,o,s,h;return c=(e=n.d)+(i=t.d),a=n.e!=t.e?-1:1,2==c?(h=dG(o=cbn(e0(n.a[0],UQn),e0(t.a[0],UQn))),0==(s=dG(jz(o,32)))?new X6(a,h):new lU(a,2,Pun(Gk(ANt,1),hQn,25,15,[h,s]))):(Dfn(n.a,e,t.a,i,r=x8(ANt,hQn,25,c,15,1)),X0(u=new lU(a,c,r)),u)}function Wxn(n,t,e,i){var r,c;return t?0==(r=n.a.ue(e.d,t.d))?(i.d=pR(t,e.e),i.b=!0,t):(c=r<0?0:1,t.a[c]=Wxn(n,t.a[c],e,i),Vy(t.a[c])&&(Vy(t.a[1-c])?(t.b=!0,t.a[0].b=!1,t.a[1].b=!1):Vy(t.a[c].a[c])?t=wrn(t,1-c):Vy(t.a[c].a[1-c])&&(t=r2(t,1-c))),t):e}function Vxn(n,t,i){var r,c,a,u;c=n.i,r=n.n,Y5(n,(Dtn(),Git),c.c+r.b,i),Y5(n,Uit,c.c+c.b-r.c-i[2],i),u=c.b-r.b-r.c,i[0]>0&&(i[0]+=n.d,u-=i[0]),i[2]>0&&(i[2]+=n.d,u-=i[2]),a=e.Math.max(0,u),i[1]=e.Math.max(i[1],u),Y5(n,zit,c.c+r.b+i[0]-(i[1]-u)/2,i),t==zit&&(n.c.b=a,n.c.c=c.c+r.b+(a-u)/2)}function Qxn(){this.c=x8(xNt,qQn,25,(kUn(),Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])).length,15,1),this.b=x8(xNt,qQn,25,Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt]).length,15,1),this.a=x8(xNt,qQn,25,Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt]).length,15,1),mS(this.c,RQn),mS(this.b,KQn),mS(this.a,KQn)}function Yxn(n,t,e){var i,r,c,a;if(t<=e?(r=t,c=e):(r=e,c=t),i=0,null==n.b)n.b=x8(ANt,hQn,25,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)return void(n.b[i-1]=c);a=x8(ANt,hQn,25,i+2,15,1),aHn(n.b,0,a,0,i),n.b=a,n.b[i-1]>=r&&(n.c=!1,n.a=!1),n.b[i++]=r,n.b[i]=c,n.c||T$n(n)}}function Jxn(n,t,e){var i,r,c,a,u,o,s;for(s=t.d,n.a=new J6(s.c.length),n.c=new xp,u=new Wb(s);u.a<u.c.c.length;)a=BB(n0(u),101),c=new Fan(null),WB(n.a,c),VW(n.c,a,c);for(n.b=new xp,vCn(n,t),i=0;i<s.c.length-1;i++)for(o=BB(xq(t.d,i),101),r=i+1;r<s.c.length;r++)WLn(n,o,BB(xq(t.d,r),101),e)}function Zxn(n,t,e){var i,r,c,a,u,o;if(!h3(t)){for(OTn(o=mcn(e,(cL(t,14)?BB(t,14).gc():F3(t.Kc()))/n.a|0),z3n,1),u=new Ia,a=0,c=t.Kc();c.Ob();)i=BB(c.Pb(),86),u=Wen(Pun(Gk(xnt,1),HWn,20,0,[u,new bg(i)])),a<i.f.b&&(a=i.f.b);for(r=t.Kc();r.Ob();)hon(i=BB(r.Pb(),86),(qqn(),ukt),a);HSn(o),Zxn(n,u,e)}}function nDn(n,t){var i,r,c,a,u,o,s;for(i=KQn,uSn(),o=Cut,c=new Wb(t.a);c.a<c.c.c.length;)(a=(r=BB(n0(c),10)).k)!=Cut&&(null==(u=MD(mMn(r,(hWn(),plt))))?(i=e.Math.max(i,0),r.n.b=i+XN(n.a,a,o)):r.n.b=(kW(u),u)),s=XN(n.a,a,o),r.n.b<i+s+r.d.d&&(r.n.b=i+s+r.d.d),i=r.n.b+r.o.b+r.d.a,o=a}function tDn(n,t,e){var i,r,c;for(qan(c=new EAn(XXn(qSn(cDn(t,!1,!1)),Gy(MD(ZAn(t,(Epn(),pct))))+n.a)),t),VW(n.b,t,c),e.c[e.c.length]=c,!t.n&&(t.n=new eU(zOt,t,1,7)),r=new AL(t.n);r.e!=r.i.gc();)i=JRn(n,BB(kpn(r),137),!0,0,0),e.c[e.c.length]=i;return c}function eDn(n,t,e,i,r){var c,a,u;if(n.d&&n.d.lg(r),Dvn(n,e,BB(r.Xb(0),33),!1))return!0;if(Dvn(n,i,BB(r.Xb(r.gc()-1),33),!0))return!0;if(NMn(n,r))return!0;for(u=r.Kc();u.Ob();)for(a=BB(u.Pb(),33),c=t.Kc();c.Ob();)if(_Dn(n,a,BB(c.Pb(),33)))return!0;return!1}function iDn(n,t,e){var i,r,c,a,u,o,s,h,f;f=t.c.length;n:for(c=BB((s=n.Yg(e))>=0?n._g(s,!1,!0):cOn(n,e,!1),58).Kc();c.Ob();){for(r=BB(c.Pb(),56),h=0;h<f;++h)if(l1(h,t.c.length),o=(a=BB(t.c[h],72)).dd(),u=a.ak(),i=r.bh(u,!1),null==o?null!=i:!Nfn(o,i))continue n;return r}return null}function rDn(n,t,e,i){var r,c,a,u;for(r=BB(DSn(t,(kUn(),CIt)).Kc().Pb(),11),c=BB(DSn(t,oIt).Kc().Pb(),11),u=new Wb(n.j);u.a<u.c.c.length;){for(a=BB(n0(u),11);0!=a.e.c.length;)MZ(BB(xq(a.e,0),17),r);for(;0!=a.g.c.length;)SZ(BB(xq(a.g,0),17),c)}e||hon(t,(hWn(),hlt),null),i||hon(t,(hWn(),flt),null)}function cDn(n,t,e){var i,r;if(0==(!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i)return qun(n);if(i=BB(Wtn((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a),0),202),t&&(sqn((!i.a&&(i.a=new $L(xOt,i,5)),i.a)),Ien(i,0),Aen(i,0),Ten(i,0),Oen(i,0)),e)for(!n.a&&(n.a=new eU(FOt,n,6,6)),r=n.a;r.i>1;)fDn(r,r.i-1);return i}function aDn(n,t){var e,i,r,c,a,u,o;for(OTn(t,"Comment post-processing",1),c=new Wb(n.b);c.a<c.c.c.length;){for(r=BB(n0(c),29),i=new Np,u=new Wb(r.a);u.a<u.c.c.length;)a=BB(n0(u),10),o=BB(mMn(a,(hWn(),Klt)),15),e=BB(mMn(a,Dft),15),(o||e)&&(Wzn(a,o,e),o&&gun(i,o),e&&gun(i,e));gun(r.a,i)}HSn(t)}function uDn(n,t){var e,i,r,c,a,u;for(e=new Lp,r=new Wb(n.b);r.a<r.c.c.length;){for(u=!0,i=0,a=new Wb(BB(n0(r),29).a);a.a<a.c.c.length;)switch((c=BB(n0(a),10)).k.g){case 4:++i;case 1:w3(e,c);break;case 0:oCn(c,t);default:e.b==e.c||p_n(e,i,u,!1,t),u=!1,i=0}e.b==e.c||p_n(e,i,u,!0,t)}}function oDn(n,t){var e,i,r,c,a,u;for(r=new Np,e=0;e<=n.i;e++)(i=new HX(t)).p=n.i-e,r.c[r.c.length]=i;for(u=new Wb(n.o);u.a<u.c.c.length;)PZ(a=BB(n0(u),10),BB(xq(r,n.i-n.f[a.p]),29));for(c=new Wb(r);c.a<c.c.c.length;)0==BB(n0(c),29).a.c.length&&AU(c);t.b.c=x8(Ant,HWn,1,0,5,1),gun(t.b,r)}function sDn(n,t){var e,i,r,c,a,u;for(e=0,u=new Wb(t);u.a<u.c.c.length;){for(a=BB(n0(u),11),nhn(n.b,n.d[a.p]),r=new m6(a.b);y$(r.a)||y$(r.b);)(c=ME(n,a==(i=BB(y$(r.a)?n0(r.a):n0(r.b),17)).c?i.d:i.c))>n.d[a.p]&&(e+=n5(n.b,c),d3(n.a,iln(c)));for(;!Wy(n.a);)Mnn(n.b,BB(dU(n.a),19).a)}return e}function hDn(n,t,e){var i,r,c,a;for(c=(!t.a&&(t.a=new eU(UOt,t,10,11)),t.a).i,r=new AL((!t.a&&(t.a=new eU(UOt,t,10,11)),t.a));r.e!=r.i.gc();)0==(!(i=BB(kpn(r),33)).a&&(i.a=new eU(UOt,i,10,11)),i.a).i||(c+=hDn(n,i,!1));if(e)for(a=JJ(t);a;)c+=(!a.a&&(a.a=new eU(UOt,a,10,11)),a.a).i,a=JJ(a);return c}function fDn(n,t){var e,i,r,c;return n.ej()?(i=null,r=n.fj(),n.ij()&&(i=n.kj(n.pi(t),null)),e=n.Zi(4,c=Lyn(n,t),null,t,r),n.bj()&&null!=c?(i=n.dj(c,i))?(i.Ei(e),i.Fi()):n.$i(e):i?(i.Ei(e),i.Fi()):n.$i(e),c):(c=Lyn(n,t),n.bj()&&null!=c&&(i=n.dj(c,null))&&i.Fi(),c)}function lDn(n){var t,i,r,c,a,u,o,s,h,f;for(h=n.a,t=new Rv,s=0,r=new Wb(n.d);r.a<r.c.c.length;){for(f=0,_rn((i=BB(n0(r),222)).b,new $n),u=spn(i.b,0);u.b!=u.d.c;)a=BB(b3(u),222),t.a._b(a)&&(c=i.c,f<(o=a.c).d+o.a+h&&f+c.a+h>o.d&&(f=o.d+o.a+h));i.c.d=f,t.a.zc(i,t),s=e.Math.max(s,i.c.d+i.c.a)}return s}function bDn(){bDn=O,hft=new LP("COMMENTS",0),lft=new LP("EXTERNAL_PORTS",1),bft=new LP("HYPEREDGES",2),wft=new LP("HYPERNODES",3),dft=new LP("NON_FREE_PORTS",4),gft=new LP("NORTH_SOUTH_PORTS",5),vft=new LP(G1n,6),sft=new LP("CENTER_LABELS",7),fft=new LP("END_LABELS",8),pft=new LP("PARTITIONS",9)}function wDn(n){var t,e,i,r,c;for(r=new Np,t=new $q((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a)),i=new oz(ZL(dLn(n).a.Kc(),new h));dAn(i);)cL(Wtn((!(e=BB(U5(i),79)).b&&(e.b=new hK(KOt,e,4,7)),e.b),0),186)||(c=PTn(BB(Wtn((!e.c&&(e.c=new hK(KOt,e,5,8)),e.c),0),82)),t.a._b(c)||(r.c[r.c.length]=c));return r}function dDn(n){var t,e,i,r,c;for(r=new Rv,t=new $q((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a)),i=new oz(ZL(dLn(n).a.Kc(),new h));dAn(i);)cL(Wtn((!(e=BB(U5(i),79)).b&&(e.b=new hK(KOt,e,4,7)),e.b),0),186)||(c=PTn(BB(Wtn((!e.c&&(e.c=new hK(KOt,e,5,8)),e.c),0),82)),t.a._b(c)||r.a.zc(c,r));return r}function gDn(n,t,e,i,r){return i<0?((i=zTn(n,r,Pun(Gk(Qtt,1),sVn,2,6,[YVn,JVn,ZVn,nQn,tQn,eQn,iQn,rQn,cQn,aQn,uQn,oQn]),t))<0&&(i=zTn(n,r,Pun(Gk(Qtt,1),sVn,2,6,["Jan","Feb","Mar","Apr",tQn,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),t)),!(i<0||(e.k=i,0))):i>0&&(e.k=i-1,!0)}function pDn(n,t,e,i,r){return i<0?((i=zTn(n,r,Pun(Gk(Qtt,1),sVn,2,6,[YVn,JVn,ZVn,nQn,tQn,eQn,iQn,rQn,cQn,aQn,uQn,oQn]),t))<0&&(i=zTn(n,r,Pun(Gk(Qtt,1),sVn,2,6,["Jan","Feb","Mar","Apr",tQn,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),t)),!(i<0||(e.k=i,0))):i>0&&(e.k=i-1,!0)}function vDn(n,t,e,i,r,c){var a,u,o;if(u=32,i<0){if(t[0]>=n.length)return!1;if(43!=(u=fV(n,t[0]))&&45!=u)return!1;if(++t[0],(i=UIn(n,t))<0)return!1;45==u&&(i=-i)}return 32==u&&t[0]-e==2&&2==r.b&&(a=(o=(new AT).q.getFullYear()-sQn+sQn-80)%100,c.a=i==a,i+=100*(o/100|0)+(i<a?100:0)),c.p=i,!0}function mDn(n,t){var i,r,c;JJ(n)&&(c=BB(mMn(t,(HXn(),Fgt)),174),GI(ZAn(n,ept))===GI((QEn(),YCt))&&Ypn(n,ept,QCt),GM(),r=qzn(new Dy(JJ(n)),new JN(JJ(n)?new Dy(JJ(n)):null,n),!1,!0),orn(c,(mdn(),DIt)),(i=BB(mMn(t,Hgt),8)).a=e.Math.max(r.a,i.a),i.b=e.Math.max(r.b,i.b))}function yDn(n,t,e){var i,r,c,a,u,o;for(a=BB(mMn(n,(hWn(),nlt)),15).Kc();a.Ob();){switch(c=BB(a.Pb(),10),BB(mMn(c,(HXn(),kgt)),163).g){case 2:PZ(c,t);break;case 4:PZ(c,e)}for(r=new oz(ZL(hbn(c).a.Kc(),new h));dAn(r);)(i=BB(U5(r),17)).c&&i.d||(u=!i.d,o=BB(mMn(i,mlt),11),u?MZ(i,o):SZ(i,o))}}function kDn(){kDn=O,Bst=new WV(mJn,0,(kUn(),sIt),sIt),Gst=new WV(kJn,1,SIt,SIt),Fst=new WV(yJn,2,oIt,oIt),Xst=new WV(jJn,3,CIt,CIt),qst=new WV("NORTH_WEST_CORNER",4,CIt,sIt),Hst=new WV("NORTH_EAST_CORNER",5,sIt,oIt),Ust=new WV("SOUTH_WEST_CORNER",6,SIt,CIt),zst=new WV("SOUTH_EAST_CORNER",7,oIt,SIt)}function jDn(){jDn=O,MMt=Pun(Gk(LNt,1),FQn,25,14,[1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368e3,{l:3506176,m:794077,h:1},{l:884736,m:916411,h:20},{l:3342336,m:3912489,h:363},{l:589824,m:3034138,h:6914},{l:3407872,m:1962506,h:138294}]),e.Math.pow(2,-65)}function EDn(n,t){var e,i,r,c,a;if(0==n.c.length)return new rI(iln(0),iln(0));for(e=(l1(0,n.c.length),BB(n.c[0],11)).j,a=0,c=t.g,i=t.g+1;a<n.c.length-1&&e.g<c;)e=(l1(++a,n.c.length),BB(n.c[a],11)).j;for(r=a;r<n.c.length-1&&e.g<i;)++r,e=(l1(a,n.c.length),BB(n.c[a],11)).j;return new rI(iln(a),iln(r))}function TDn(n,t,i){var r,c,a,u,o,s,h,f,l,b;for(a=t.c.length,l1(i,t.c.length),o=(u=BB(t.c[i],286)).a.o.a,l=u.c,b=0,h=u.c;h<=u.f;h++){if(o<=n.a[h])return h;for(f=n.a[h],s=null,c=i+1;c<a;c++)l1(c,t.c.length),(r=BB(t.c[c],286)).c<=h&&r.f>=h&&(s=r);s&&(f=e.Math.max(f,s.a.o.a)),f>b&&(l=h,b=f)}return l}function MDn(n,t,e){var i,r,c;if(n.e=e,n.d=0,n.b=0,n.f=1,n.i=t,16==(16&n.e)&&(n.i=pKn(n.i)),n.j=n.i.length,QXn(n),c=Vdn(n),n.d!=n.j)throw Hp(new ak(kWn((u$(),w8n))));if(n.g){for(i=0;i<n.g.a.c.length;i++)if(r=BB(bW(n.g,i),584),n.f<=r.a)throw Hp(new ak(kWn((u$(),d8n))));n.g.a.c=x8(Ant,HWn,1,0,5,1)}return c}function SDn(n,t){var e,i,r;if(null==t){for(!n.a&&(n.a=new eU(WAt,n,9,5)),i=new AL(n.a);i.e!=i.i.gc();)if(null==(null==(r=(e=BB(kpn(i),678)).c)?e.zb:r))return e}else for(!n.a&&(n.a=new eU(WAt,n,9,5)),i=new AL(n.a);i.e!=i.i.gc();)if(mK(t,null==(r=(e=BB(kpn(i),678)).c)?e.zb:r))return e;return null}function PDn(n,t){var e;switch(e=null,t.g){case 1:n.e.Xe((sWn(),ePt))&&(e=BB(n.e.We(ePt),249));break;case 3:n.e.Xe((sWn(),iPt))&&(e=BB(n.e.We(iPt),249));break;case 2:n.e.Xe((sWn(),tPt))&&(e=BB(n.e.We(tPt),249));break;case 4:n.e.Xe((sWn(),rPt))&&(e=BB(n.e.We(rPt),249))}return!e&&(e=BB(n.e.We((sWn(),ZSt)),249)),e}function CDn(n,t,e){var i,r,c,a,u,o;for(t.p=1,r=t.c,o=xwn(t,(ain(),qvt)).Kc();o.Ob();)for(i=new Wb(BB(o.Pb(),11).g);i.a<i.c.c.length;)t!=(u=BB(n0(i),17).d.i)&&u.c.p<=r.p&&((c=r.p+1)==e.b.c.length?((a=new HX(e)).p=c,WB(e.b,a),PZ(u,a)):PZ(u,a=BB(xq(e.b,c),29)),CDn(n,u,e))}function IDn(n,t,i){var r,c,a,u,o,s;for(c=i,a=0,o=new Wb(t);o.a<o.c.c.length;)Ypn(u=BB(n0(o),33),(Uyn(),Ljt),iln(c++)),s=wDn(u),r=e.Math.atan2(u.j+u.f/2,u.i+u.g/2),(r+=r<0?Z3n:0)<.7853981633974483||r>p4n?m$(s,n.b):r<=p4n&&r>v4n?m$(s,n.d):r<=v4n&&r>m4n?m$(s,n.c):r<=m4n&&m$(s,n.a),a=IDn(n,s,a);return c}function ODn(){var n;for(ODn=O,Jtt=new X6(1,1),net=new X6(1,10),eet=new X6(0,0),Ytt=new X6(-1,1),Ztt=Pun(Gk(oet,1),sVn,91,0,[eet,Jtt,new X6(1,2),new X6(1,3),new X6(1,4),new X6(1,5),new X6(1,6),new X6(1,7),new X6(1,8),new X6(1,9),net]),tet=x8(oet,sVn,91,32,0,1),n=0;n<tet.length;n++)tet[n]=npn(yz(1,n))}function ADn(n,t,e,i,r,c){var a,u,o,s;for(u=!jE(AV(n.Oc(),new aw(new Je))).sd((dM(),tit)),a=n,c==(Ffn(),HPt)&&(a=cL(a,152)?o6(BB(a,152)):cL(a,131)?BB(a,131).a:cL(a,54)?new fy(a):new CT(a)),s=a.Kc();s.Ob();)(o=BB(s.Pb(),70)).n.a=t.a,o.n.b=u?t.b+(i.b-o.o.b)/2:r?t.b:t.b+i.b-o.o.b,t.a+=o.o.a+e}function $Dn(n,t,e,i){var r,c,a,u,o;for(r=(i.c+i.a)/2,yQ(t.j),DH(t.j,r),yQ(e.e),DH(e.e,r),o=new zj,a=new Wb(n.f);a.a<a.c.c.length;)Rjn(o,t,u=BB(n0(a),129).a),Rjn(o,e,u);for(c=new Wb(n.k);c.a<c.c.c.length;)Rjn(o,t,u=BB(n0(c),129).b),Rjn(o,e,u);return o.b+=2,o.a+=LQ(t,n.q),o.a+=LQ(n.q,e),o}function LDn(n,t,e){var i,r,c,a,u;if(!h3(t)){for(OTn(u=mcn(e,(cL(t,14)?BB(t,14).gc():F3(t.Kc()))/n.a|0),z3n,1),a=new Aa,c=null,r=t.Kc();r.Ob();)i=BB(r.Pb(),86),a=Wen(Pun(Gk(xnt,1),HWn,20,0,[a,new bg(i)])),c&&(hon(c,(qqn(),bkt),i),hon(i,ckt,c),G8(i)==G8(c)&&(hon(c,wkt,i),hon(i,akt,c))),c=i;HSn(u),LDn(n,a,e)}}function NDn(n){var t,e,i,r,c,a,u;for(e=n.i,t=n.n,u=e.d,n.f==(G7(),rrt)?u+=(e.a-n.e.b)/2:n.f==irt&&(u+=e.a-n.e.b),r=new Wb(n.d);r.a<r.c.c.length;){switch(a=(i=BB(n0(r),181)).rf(),(c=new Gj).b=u,u+=a.b+n.a,n.b.g){case 0:c.a=e.c+t.b;break;case 1:c.a=e.c+t.b+(e.b-a.a)/2;break;case 2:c.a=e.c+e.b-t.c-a.a}i.tf(c)}}function xDn(n){var t,e,i,r,c,a,u;for(e=n.i,t=n.n,u=e.c,n.b==(J9(),Qit)?u+=(e.b-n.e.a)/2:n.b==Jit&&(u+=e.b-n.e.a),r=new Wb(n.d);r.a<r.c.c.length;){switch(a=(i=BB(n0(r),181)).rf(),(c=new Gj).a=u,u+=a.a+n.a,n.f.g){case 0:c.b=e.d+t.d;break;case 1:c.b=e.d+t.d+(e.a-a.b)/2;break;case 2:c.b=e.d+e.a-t.a-a.b}i.tf(c)}}function DDn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;s=e.a.c,a=e.a.c+e.a.b,l=(c=BB(RX(e.c,t),459)).f,b=c.a,u=new xC(s,l),h=new xC(a,b),r=s,e.p||(r+=n.c),o=new xC(r+=e.F+e.v*n.b,l),f=new xC(r,b),nin(t.a,Pun(Gk(PMt,1),sVn,8,0,[u,o])),e.d.a.gc()>1&&(i=new xC(r,e.b),DH(t.a,i)),nin(t.a,Pun(Gk(PMt,1),sVn,8,0,[f,h]))}function RDn(n){NM(n,new MTn(vj(wj(pj(gj(new du,_5n),"ELK Randomizer"),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new Qu))),u2(n,_5n,QJn,LIt),u2(n,_5n,vZn,15),u2(n,_5n,yZn,iln(0)),u2(n,_5n,VJn,dZn)}function KDn(){var n,t,e,i,r,c;for(KDn=O,QLt=x8(NNt,v6n,25,255,15,1),YLt=x8(ONt,WVn,25,16,15,1),t=0;t<255;t++)QLt[t]=-1;for(e=57;e>=48;e--)QLt[e]=e-48<<24>>24;for(i=70;i>=65;i--)QLt[i]=i-65+10<<24>>24;for(r=102;r>=97;r--)QLt[r]=r-97+10<<24>>24;for(c=0;c<10;c++)YLt[c]=48+c&QVn;for(n=10;n<=15;n++)YLt[n]=65+n-10&QVn}function _Dn(n,t,e){var i,r,c,a,u,o,s,h;return u=t.i-n.g/2,o=e.i-n.g/2,s=t.j-n.g/2,h=e.j-n.g/2,c=t.g+n.g/2,a=e.g+n.g/2,i=t.f+n.g/2,r=e.f+n.g/2,u<o+a&&o<u&&s<h+r&&h<s||o<u+c&&u<o&&h<s+i&&s<h||u<o+a&&o<u&&s<h&&h<s+i||o<u+c&&u<o&&s<h+r&&h<s}function FDn(n){var t,i,r,c,a;c=BB(mMn(n,(HXn(),Fgt)),21),a=BB(mMn(n,qgt),21),t=new wA(i=new xC(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a)),c.Hc((mdn(),DIt))&&(r=BB(mMn(n,Hgt),8),a.Hc((n_n(),GIt))&&(r.a<=0&&(r.a=20),r.b<=0&&(r.b=20)),t.a=e.Math.max(i.a,r.a),t.b=e.Math.max(i.b,r.b)),qy(TD(mMn(n,Bgt)))||UBn(n,i,t)}function BDn(n,t){var e,i,r,c;for(c=abn(t,(kUn(),SIt)).Kc();c.Ob();)i=BB(c.Pb(),11),(e=BB(mMn(i,(hWn(),Elt)),10))&&UNn(aM(cM(uM(rM(new Hv,0),.1),n.i[t.p].d),n.i[e.p].a));for(r=abn(t,sIt).Kc();r.Ob();)i=BB(r.Pb(),11),(e=BB(mMn(i,(hWn(),Elt)),10))&&UNn(aM(cM(uM(rM(new Hv,0),.1),n.i[e.p].d),n.i[t.p].a))}function HDn(n){var t,e,i,r,c;if(!n.c){if(c=new Eo,null==(t=P$t).a.zc(n,t)){for(i=new AL(a4(n));i.e!=i.i.gc();)cL(r=lFn(e=BB(kpn(i),87)),88)&&pX(c,HDn(BB(r,26))),f9(c,e);t.a.Bc(n),t.a.gc()}$wn(c),chn(c),n.c=new NO((BB(Wtn(QQ((QX(),t$t).o),15),18),c.i),c.g),P5(n).b&=-33}return n.c}function qDn(n){var t;if(10!=n.c)throw Hp(new ak(kWn((u$(),g8n))));switch(t=n.a){case 110:t=10;break;case 114:t=13;break;case 116:t=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 Hp(new ak(kWn((u$(),U8n))))}return t}function GDn(n){var t,e,i,r;if(0==n.l&&0==n.m&&0==n.h)return"0";if(n.h==CQn&&0==n.m&&0==n.l)return"-9223372036854775808";if(n.h>>19!=0)return"-"+GDn(aon(n));for(e=n,i="";0!=e.l||0!=e.m||0!=e.h;){if(e=Aqn(e,F5(AQn),!0),t=""+TE(ltt),0!=e.l||0!=e.m||0!=e.h)for(r=9-t.length;r>0;r--)t="0"+t;i=t+i}return i}function zDn(){if(!Object.create||!Object.getOwnPropertyNames)return!1;var n="__proto__",t=Object.create(null);return void 0===t[n]&&0==Object.getOwnPropertyNames(t).length&&(t[n]=42,42===t[n]&&0!=Object.getOwnPropertyNames(t).length)}function UDn(n){var t,e,i,r,c,a,u;for(t=!1,e=0,r=new Wb(n.d.b);r.a<r.c.c.length;)for((i=BB(n0(r),29)).p=e++,a=new Wb(i.a);a.a<a.c.c.length;)c=BB(n0(a),10),!t&&!h3(hbn(c))&&(t=!0);u=EG((Ffn(),BPt),Pun(Gk(WPt,1),$Vn,103,0,[_Pt,FPt])),t||(orn(u,HPt),orn(u,KPt)),n.a=new ltn(u),$U(n.f),$U(n.b),$U(n.e),$U(n.g)}function XDn(n,t,e){var i,r,c,a,u,o,s,h,f;for(i=e.c,r=e.d,u=g1(t.c),o=g1(t.d),i==t.c?(u=lLn(n,u,r),o=sMn(t.d)):(u=sMn(t.c),o=lLn(n,o,r)),r5(s=new Kj(t.a),u,s.a,s.a.a),r5(s,o,s.c.b,s.c),a=t.c==i,f=new Jv,c=0;c<s.b-1;++c)h=new rI(BB(Dpn(s,c),8),BB(Dpn(s,c+1),8)),a&&0==c||!a&&c==s.b-2?f.b=h:WB(f.a,h);return f}function WDn(n,t){var e,i,r,c;if(0!=(c=n.j.g-t.j.g))return c;if(e=BB(mMn(n,(HXn(),ipt)),19),i=BB(mMn(t,ipt),19),e&&i&&0!=(r=e.a-i.a))return r;switch(n.j.g){case 1:return Pln(n.n.a,t.n.a);case 2:return Pln(n.n.b,t.n.b);case 3:return Pln(t.n.a,n.n.a);case 4:return Pln(t.n.b,n.n.b);default:throw Hp(new Fy(r1n))}}function VDn(n,t,i,r){var c,a,u,o;if(F3((q_(),new oz(ZL(hbn(t).a.Kc(),new h))))>=n.a)return-1;if(!eTn(t,i))return-1;if(h3(BB(r.Kb(t),20)))return 1;for(c=0,u=BB(r.Kb(t),20).Kc();u.Ob();){if(-1==(o=VDn(n,(a=BB(u.Pb(),17)).c.i==t?a.d.i:a.c.i,i,r)))return-1;if((c=e.Math.max(c,o))>n.c-1)return-1}return c+1}function QDn(n,t){var e,i,r,c,a,u;if(GI(t)===GI(n))return!0;if(!cL(t,15))return!1;if(i=BB(t,15),u=n.gc(),i.gc()!=u)return!1;if(a=i.Kc(),n.ni()){for(e=0;e<u;++e)if(r=n.ki(e),c=a.Pb(),null==r?null!=c:!Nfn(r,c))return!1}else for(e=0;e<u;++e)if(r=n.ki(e),c=a.Pb(),GI(r)!==GI(c))return!1;return!0}function YDn(n,t){var e,i,r,c,a,u;if(n.f>0)if(n.qj(),null!=t){for(c=0;c<n.d.length;++c)if(e=n.d[c])for(i=BB(e.g,367),u=e.i,a=0;a<u;++a)if(Nfn(t,(r=i[a]).dd()))return!0}else for(c=0;c<n.d.length;++c)if(e=n.d[c])for(i=BB(e.g,367),u=e.i,a=0;a<u;++a)if(r=i[a],GI(t)===GI(r.dd()))return!0;return!1}function JDn(n,t,e){var i,r,c,a;OTn(e,"Orthogonally routing hierarchical port edges",1),n.a=0,NGn(t,i=UHn(t)),Qqn(n,t,i),fUn(t),r=BB(mMn(t,(HXn(),ept)),98),Czn((l1(0,(c=t.b).c.length),BB(c.c[0],29)),r,t),Czn(BB(xq(c,c.c.length-1),29),r,t),TBn((l1(0,(a=t.b).c.length),BB(a.c[0],29))),TBn(BB(xq(a,a.c.length-1),29)),HSn(e)}function ZDn(n){switch(n){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return n-48<<24>>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 Hp(new Mk("Invalid hexadecimal"))}}function nRn(n,t,e){var i,r,c,a;for(OTn(e,"Processor order nodes",2),n.a=Gy(MD(mMn(t,(CAn(),xkt)))),r=new YT,a=spn(t.b,0);a.b!=a.d.c;)qy(TD(mMn(c=BB(b3(a),86),(qqn(),dkt))))&&r5(r,c,r.c.b,r.c);Px(0!=r.b),KHn(n,i=BB(r.a.a.c,86)),!e.b&&qin(e,1),BRn(n,i,0-Gy(MD(mMn(i,(qqn(),ukt))))/2,0),!e.b&&qin(e,1),HSn(e)}function tRn(){tRn=O,Rit=new HS("SPIRAL",0),$it=new HS("LINE_BY_LINE",1),Lit=new HS("MANHATTAN",2),Ait=new HS("JITTER",3),xit=new HS("QUADRANTS_LINE_BY_LINE",4),Dit=new HS("QUADRANTS_MANHATTAN",5),Nit=new HS("QUADRANTS_JITTER",6),Oit=new HS("COMBINE_LINE_BY_LINE_MANHATTAN",7),Iit=new HS("COMBINE_JITTER_MANHATTAN",8)}function eRn(n,t,e,i){var r,c,a,u,o,s;for(o=Njn(n,e),s=Njn(t,e),r=!1;o&&s&&(i||myn(o,s,e));)a=Njn(o,e),u=Njn(s,e),A7(t),A7(n),c=o.c,rGn(o,!1),rGn(s,!1),e?(Qyn(t,s.p,c),t.p=s.p,Qyn(n,o.p+1,c),n.p=o.p):(Qyn(n,o.p,c),n.p=o.p,Qyn(t,s.p+1,c),t.p=s.p),PZ(o,null),PZ(s,null),o=a,s=u,r=!0;return r}function iRn(n,t,e,i){var r,c,a,u,o;for(r=!1,c=!1,u=new Wb(i.j);u.a<u.c.c.length;)GI(mMn(a=BB(n0(u),11),(hWn(),dlt)))===GI(e)&&(0==a.g.c.length?0==a.e.c.length||(r=!0):c=!0);return o=0,r&&r^c?o=e.j==(kUn(),sIt)?-n.e[i.c.p][i.p]:t-n.e[i.c.p][i.p]:c&&r^c?o=n.e[i.c.p][i.p]+1:r&&c&&(o=e.j==(kUn(),sIt)?0:t/2),o}function rRn(n,t,e,i,r,c,a,u){var o,s,h;for(o=0,null!=t&&(o^=vvn(t.toLowerCase())),null!=e&&(o^=vvn(e)),null!=i&&(o^=vvn(i)),null!=a&&(o^=vvn(a)),null!=u&&(o^=vvn(u)),s=0,h=c.length;s<h;s++)o^=vvn(c[s]);n?o|=256:o&=-257,r?o|=16:o&=-17,this.f=o,this.i=null==t?null:(kW(t),t),this.a=e,this.d=i,this.j=c,this.g=a,this.e=u}function cRn(n,t,e){var i,r;switch(r=null,t.g){case 1:gcn(),r=Nut;break;case 2:gcn(),r=Dut}switch(i=null,e.g){case 1:gcn(),i=xut;break;case 2:gcn(),i=Lut;break;case 3:gcn(),i=Rut;break;case 4:gcn(),i=Kut}return r&&i?KB(n.j,new Hf(new Jy(Pun(Gk(Lnt,1),HWn,169,0,[BB(yX(r),169),BB(yX(i),169)])))):(SQ(),SQ(),set)}function aRn(n){var t,e,i;switch(t=BB(mMn(n,(HXn(),Hgt)),8),hon(n,Hgt,new xC(t.b,t.a)),BB(mMn(n,kdt),248).g){case 1:hon(n,kdt,(wvn(),LMt));break;case 2:hon(n,kdt,(wvn(),IMt));break;case 3:hon(n,kdt,(wvn(),AMt));break;case 4:hon(n,kdt,(wvn(),$Mt))}(n.q?n.q:(SQ(),SQ(),het))._b(spt)&&(i=(e=BB(mMn(n,spt),8)).a,e.a=e.b,e.b=i)}function uRn(n,t,e,i,r,c){if(this.b=e,this.d=r,n>=t.length)throw Hp(new Ay("Greedy SwitchDecider: Free layer not in graph."));this.c=t[n],this.e=new QK(i),yrn(this.e,this.c,(kUn(),CIt)),this.i=new QK(i),yrn(this.i,this.c,oIt),this.f=new lG(this.c),this.a=!c&&r.i&&!r.s&&this.c[0].k==(uSn(),Mut),this.a&&gPn(this,n,t.length)}function oRn(n,t){var e,i,r,c,a,u;c=!n.B.Hc((n_n(),HIt)),a=n.B.Hc(zIt),n.a=new Hwn(a,c,n.c),n.n&&kQ(n.a.n,n.n),jy(n.g,(Dtn(),zit),n.a),t||((i=new Ign(1,c,n.c)).n.a=n.k,mG(n.p,(kUn(),sIt),i),(r=new Ign(1,c,n.c)).n.d=n.k,mG(n.p,SIt,r),(u=new Ign(0,c,n.c)).n.c=n.k,mG(n.p,CIt,u),(e=new Ign(0,c,n.c)).n.b=n.k,mG(n.p,oIt,e))}function sRn(n){var t,e,i;switch((t=BB(mMn(n.d,(HXn(),Zdt)),218)).g){case 2:e=MXn(n);break;case 3:i=new Np,JT(AV($V(wnn(wnn(new Rq(null,new w1(n.d.b,16)),new Or),new Ar),new $r),new pr),new Cd(i)),e=i;break;default:throw Hp(new Fy("Compaction not supported for "+t+" edges."))}gqn(n,e),e5(new Cb(n.g),new Sd(n))}function hRn(n,t){var e;return e=new Zn,t&&qan(e,BB(RX(n.a,DOt),94)),cL(t,470)&&qan(e,BB(RX(n.a,ROt),94)),cL(t,354)?(qan(e,BB(RX(n.a,zOt),94)),e):(cL(t,82)&&qan(e,BB(RX(n.a,KOt),94)),cL(t,239)?(qan(e,BB(RX(n.a,UOt),94)),e):cL(t,186)?(qan(e,BB(RX(n.a,XOt),94)),e):(cL(t,352)&&qan(e,BB(RX(n.a,_Ot),94)),e))}function fRn(){fRn=O,Zct=new XA((sWn(),pPt),iln(1)),cat=new XA(LPt,80),rat=new XA(SPt,5),Fct=new XA(cSt,dZn),nat=new XA(vPt,iln(1)),iat=new XA(kPt,(hN(),!0)),Qct=new WA(50),Vct=new XA(XSt,Qct),Hct=CSt,Yct=uPt,Bct=new XA(dSt,!1),Wct=USt,Xct=qSt,Uct=KSt,zct=DSt,Jct=fPt,jSn(),Gct=Ict,aat=Nct,qct=Cct,tat=Act,eat=Lct}function lRn(n){var t,e,i,r,c,a,u;for(u=new v5,a=new Wb(n.a);a.a<a.c.c.length;)if((c=BB(n0(a),10)).k!=(uSn(),Mut))for(_An(u,c,new Gj),r=new oz(ZL(lbn(c).a.Kc(),new h));dAn(r);)if((i=BB(U5(r),17)).c.i.k!=Mut&&i.d.i.k!=Mut)for(e=spn(i.a,0);e.b!=e.d.c;)Yjn(u,new dP((t=BB(b3(e),8)).a,t.b));return u}function bRn(){bRn=O,RTt=new up(K4n),OM(),xTt=new $O(q4n,DTt=GTt),Lun(),LTt=new $O(_4n,NTt=WTt),$Sn(),ATt=new $O(F4n,$Tt=rTt),PTt=new $O(B4n,null),$6(),ITt=new $O(H4n,OTt=ZEt),CM(),jTt=new $O(G4n,ETt=XEt),TTt=new $O(z4n,(hN(),!1)),MTt=new $O(U4n,iln(64)),STt=new $O(X4n,!0),CTt=nTt}function wRn(n){var t,e,i,r,c;if(null==n.a)if(n.a=x8($Nt,ZYn,25,n.c.b.c.length,16,1),n.a[0]=!1,Lx(n.c,(HXn(),Upt)))for(e=BB(mMn(n.c,Upt),15).Kc();e.Ob();)(t=BB(e.Pb(),19).a)>0&&t<n.a.length&&(n.a[t]=!1);else for((c=new Wb(n.c.b)).a<c.c.c.length&&n0(c),i=1;c.a<c.c.c.length;)r=BB(n0(c),29),n.a[i++]=U$n(r)}function dRn(n,t){var e,i;switch(i=n.b,t){case 1:n.b|=1,n.b|=4,n.b|=8;break;case 2:n.b|=2,n.b|=4,n.b|=8;break;case 4:n.b|=1,n.b|=2,n.b|=4,n.b|=8;break;case 3:n.b|=16,n.b|=8;break;case 0:n.b|=32,n.b|=16,n.b|=8,n.b|=1,n.b|=2,n.b|=4}if(n.b!=i&&n.c)for(e=new AL(n.c);e.e!=e.i.gc();)ACn(P5(BB(kpn(e),473)),t)}function gRn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b;for(r=!1,u=0,o=(a=t).length;u<o;++u)c=a[u],qy((hN(),!!c.e))&&!BB(xq(n.b,c.e.p),214).s&&(r|=(s=c.e,(f=(h=BB(xq(n.b,s.p),214)).e)[l=fj(e,f.length)][0].k==(uSn(),Mut)?f[l]=$Nn(c,f[l],e?(kUn(),CIt):(kUn(),oIt)):h.c.Tf(f,e),b=DNn(n,h,e,i),xxn(h.e,h.o,e),b));return r}function pRn(n,t){var e,i,r,c,a;for(c=(!t.a&&(t.a=new eU(UOt,t,10,11)),t.a).i,r=new AL((!t.a&&(t.a=new eU(UOt,t,10,11)),t.a));r.e!=r.i.gc();)GI(ZAn(i=BB(kpn(r),33),(sWn(),ESt)))!==GI((ufn(),mCt))&&((a=BB(ZAn(t,mPt),149))==(e=BB(ZAn(i,mPt),149))||a&&j5(a,e))&&0!=(!i.a&&(i.a=new eU(UOt,i,10,11)),i.a).i&&(c+=pRn(n,i));return c}function vRn(n){var t,e,i,r,c,a,u;for(i=0,u=0,a=new Wb(n.d);a.a<a.c.c.length;)c=BB(n0(a),101),r=BB(P4(AV(new Rq(null,new w1(c.j,16)),new Xr),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15),e=null,i<=u?(kUn(),e=sIt,i+=r.gc()):u<i&&(kUn(),e=SIt,u+=r.gc()),t=e,JT($V(r.Oc(),new Hr),new Ad(t))}function mRn(n){var t,e,i,r,c,a,u,o;for(n.b=new vOn(new Jy((kUn(),Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt]))),new Jy((Crn(),Pun(Gk(Wst,1),$Vn,361,0,[Rst,Dst,xst])))),u=0,o=(a=Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])).length;u<o;++u)for(c=a[u],i=0,r=(e=Pun(Gk(Wst,1),$Vn,361,0,[Rst,Dst,xst])).length;i<r;++i)t=e[i],Wjn(n.b,c,t,new Np)}function yRn(n,t){var e,i,r,c,a,u,o,s,h,f;if(a=BB(BB(h6(n.r,t),21),84),u=n.u.Hc((lIn(),rIt)),e=n.u.Hc(tIt),i=n.u.Hc(nIt),s=n.u.Hc(cIt),f=n.B.Hc((n_n(),QIt)),h=!e&&!i&&(s||2==a.gc()),hxn(n,t),r=null,o=null,u){for(o=r=BB((c=a.Kc()).Pb(),111);c.Ob();)o=BB(c.Pb(),111);r.d.b=0,o.d.c=0,h&&!r.a&&(r.d.c=0)}f&&(DTn(a),u&&(r.d.b=0,o.d.c=0))}function kRn(n,t){var e,i,r,c,a,u,o,s,h,f;if(a=BB(BB(h6(n.r,t),21),84),u=n.u.Hc((lIn(),rIt)),e=n.u.Hc(tIt),i=n.u.Hc(nIt),o=n.u.Hc(cIt),f=n.B.Hc((n_n(),QIt)),s=!e&&!i&&(o||2==a.gc()),V_n(n,t),h=null,r=null,u){for(r=h=BB((c=a.Kc()).Pb(),111);c.Ob();)r=BB(c.Pb(),111);h.d.d=0,r.d.a=0,s&&!h.a&&(h.d.a=0)}f&&(RTn(a),u&&(h.d.d=0,r.d.a=0))}function jRn(n,t,e){var i,r,c,a,u;if(i=t.k,t.p>=0)return!1;if(t.p=e.b,WB(e.e,t),i==(uSn(),Put)||i==Iut)for(r=new Wb(t.j);r.a<r.c.c.length;)for(u=new zw(new Wb(new Gw(BB(n0(r),11)).a.g));y$(u.a);)if(a=(c=BB(n0(u.a),17).d.i).k,t.c!=c.c&&(a==Put||a==Iut)&&jRn(n,c,e))return!0;return!0}function ERn(n){var t;return 0!=(64&n.Db)?KOn(n):((t=new fN(KOn(n))).a+=" (changeable: ",yE(t,0!=(n.Bb&k6n)),t.a+=", volatile: ",yE(t,0!=(n.Bb&M9n)),t.a+=", transient: ",yE(t,0!=(n.Bb&_Qn)),t.a+=", defaultValueLiteral: ",cO(t,n.j),t.a+=", unsettable: ",yE(t,0!=(n.Bb&T9n)),t.a+=", derived: ",yE(t,0!=(n.Bb&hVn)),t.a+=")",t.a)}function TRn(n){var t,e,i,r,c,a,u,o,s,h;for(e=NLn(n.d),c=(r=BB(mMn(n.b,(Epn(),vct)),116)).b+r.c,a=r.d+r.a,o=e.d.a*n.e+c,u=e.b.a*n.f+a,Ll(n.b,new xC(o,u)),h=new Wb(n.g);h.a<h.c.c.length;)t=UR(Fx(new xC((s=BB(n0(h),562)).g-e.a.a,s.i-e.c.a),s.a,s.b),kL(Bx(B$(VA(s.e)),s.d*s.a,s.c*s.b),-.5)),i=QA(s.e),ij(s.e,XR(t,i))}function MRn(n,t,e,i){var r,c,a,u,o;for(o=x8(xNt,sVn,104,(kUn(),Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])).length,0,2),a=0,u=(c=Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])).length;a<u;++a)o[(r=c[a]).g]=x8(xNt,qQn,25,n.c[r.g],15,1);return Bkn(o,n,sIt),Bkn(o,n,SIt),xmn(o,n,sIt,t,e,i),xmn(o,n,oIt,t,e,i),xmn(o,n,SIt,t,e,i),xmn(o,n,CIt,t,e,i),o}function SRn(n,t,e){if(hU(n.a,t)){if(FT(BB(RX(n.a,t),53),e))return 1}else VW(n.a,t,new Rv);if(hU(n.a,e)){if(FT(BB(RX(n.a,e),53),t))return-1}else VW(n.a,e,new Rv);if(hU(n.b,t)){if(FT(BB(RX(n.b,t),53),e))return-1}else VW(n.b,t,new Rv);if(hU(n.b,e)){if(FT(BB(RX(n.b,e),53),t))return 1}else VW(n.b,e,new Rv);return 0}function PRn(n,t,e,i){var r,c,a,u,o,s;if(null==e)for(r=BB(n.g,119),u=0;u<n.i;++u)if((a=r[u]).ak()==t)return _pn(n,a,i);return ZM(),c=BB(t,66).Oj()?BB(e,72):Z3(t,e),mA(n.e)?(s=!adn(n,t),i=Ywn(n,c,i),o=t.$j()?LY(n,3,t,null,e,pBn(n,t,e,cL(t,99)&&0!=(BB(t,18).Bb&BQn)),s):LY(n,1,t,t.zj(),e,-1,s),i?i.Ei(o):i=o):i=Ywn(n,c,i),i}function CRn(n){var t,i,r,c,a,u;n.q!=(QEn(),WCt)&&n.q!=XCt&&(c=n.f.n.d+XH(BB(oV(n.b,(kUn(),sIt)),124))+n.c,t=n.f.n.a+XH(BB(oV(n.b,SIt),124))+n.c,r=BB(oV(n.b,oIt),124),u=BB(oV(n.b,CIt),124),a=e.Math.max(0,r.n.d-c),a=e.Math.max(a,u.n.d-c),i=e.Math.max(0,r.n.a-t),i=e.Math.max(i,u.n.a-t),r.n.d=a,u.n.d=a,r.n.a=i,u.n.a=i)}function IRn(n,t){var e,i,r,c,a,u,o;for(OTn(t,"Restoring reversed edges",1),a=new Wb(n.b);a.a<a.c.c.length;)for(u=new Wb(BB(n0(a),29).a);u.a<u.c.c.length;)for(o=new Wb(BB(n0(u),10).j);o.a<o.c.c.length;)for(r=0,c=(i=Z0(BB(n0(o),11).g)).length;r<c;++r)qy(TD(mMn(e=i[r],(hWn(),Clt))))&&tBn(e,!1);HSn(t)}function ORn(){this.b=new v4,this.d=new v4,this.e=new v4,this.c=new v4,this.a=new xp,this.f=new xp,xJ(PMt,new mu,new yu),xJ(NMt,new Au,new $u),xJ(Eut,new Lu,new Nu),xJ(_ut,new Du,new Ru),xJ(hOt,new Ku,new _u),xJ(met,new ku,new ju),xJ(Iet,new Eu,new Tu),xJ(jet,new Mu,new Su),xJ(Eet,new Pu,new Cu),xJ(Bet,new Iu,new Ou)}function ARn(n){var t,e,i,r,c,a;return c=0,(t=Ikn(n)).Bj()&&(c|=4),0!=(n.Bb&T9n)&&(c|=2),cL(n,99)?(r=Cvn(e=BB(n,18)),0!=(e.Bb&h6n)&&(c|=32),r&&(bX(dZ(r)),c|=8,((a=r.t)>1||-1==a)&&(c|=16),0!=(r.Bb&h6n)&&(c|=64)),0!=(e.Bb&BQn)&&(c|=M9n),c|=k6n):cL(t,457)?c|=512:(i=t.Bj())&&0!=(1&i.i)&&(c|=256),0!=(512&n.Bb)&&(c|=128),c}function $Rn(n,t){var e,i,r,c,a;for(n=null==n?zWn:(kW(n),n),r=0;r<t.length;r++)t[r]=iLn(t[r]);for(e=new Ik,a=0,i=0;i<t.length&&-1!=(c=n.indexOf("%s",a));)e.a+=""+fx(null==n?zWn:(kW(n),n),a,c),uO(e,t[i++]),a=c+2;if(G0(e,n,a,n.length),i<t.length){for(e.a+=" [",uO(e,t[i++]);i<t.length;)e.a+=FWn,uO(e,t[i++]);e.a+="]"}return e.a}function LRn(n){var t,e,i,r,c;for(c=new J6(n.a.c.length),r=new Wb(n.a);r.a<r.c.c.length;){switch(i=BB(n0(r),10),t=null,(e=BB(mMn(i,(HXn(),kgt)),163)).g){case 1:case 2:Jun(),t=$ht;break;case 3:case 4:Jun(),t=Oht}t?(hon(i,(hWn(),Gft),(Jun(),$ht)),t==Oht?RNn(i,e,(ain(),Hvt)):t==$ht&&RNn(i,e,(ain(),qvt))):c.c[c.c.length]=i}return c}function NRn(n,t){var e,i,r,c,a,u,o;for(e=0,o=new Wb(t);o.a<o.c.c.length;){for(u=BB(n0(o),11),nhn(n.b,n.d[u.p]),a=0,r=new m6(u.b);y$(r.a)||y$(r.b);)CW(i=BB(y$(r.a)?n0(r.a):n0(r.b),17))?(c=ME(n,u==i.c?i.d:i.c))>n.d[u.p]&&(e+=n5(n.b,c),d3(n.a,iln(c))):++a;for(e+=n.b.d*a;!Wy(n.a);)Mnn(n.b,BB(dU(n.a),19).a)}return e}function xRn(n,t){var e;return n.f==uLt?(e=DW(B7((IPn(),Z$t),t)),n.e?4==e&&t!=(TOn(),lLt)&&t!=(TOn(),sLt)&&t!=(TOn(),hLt)&&t!=(TOn(),fLt):2==e):!(!n.d||!(n.d.Hc(t)||n.d.Hc(Z1(B7((IPn(),Z$t),t)))||n.d.Hc(Fqn((IPn(),Z$t),n.b,t))))||!(!n.f||!aNn((IPn(),n.f),jV(B7(Z$t,t))))&&(e=DW(B7(Z$t,t)),n.e?4==e:2==e)}function DRn(n,t,i,r){var c,a,u,o,s,h,f,l;return s=(u=BB(ZAn(i,(sWn(),gPt)),8)).a,f=u.b+n,(c=e.Math.atan2(f,s))<0&&(c+=Z3n),(c+=t)>Z3n&&(c-=Z3n),h=(o=BB(ZAn(r,gPt),8)).a,l=o.b+n,(a=e.Math.atan2(l,h))<0&&(a+=Z3n),(a+=t)>Z3n&&(a-=Z3n),h$(),rin(1e-10),e.Math.abs(c-a)<=1e-10||c==a||isNaN(c)&&isNaN(a)?0:c<a?-1:c>a?1:zO(isNaN(c),isNaN(a))}function RRn(n){var t,e,i,r,c,a,u;for(u=new xp,i=new Wb(n.a.b);i.a<i.c.c.length;)VW(u,t=BB(n0(i),57),new Np);for(r=new Wb(n.a.b);r.a<r.c.c.length;)for((t=BB(n0(r),57)).i=KQn,a=t.c.Kc();a.Ob();)c=BB(a.Pb(),57),BB(qI(AY(u.f,c)),15).Fc(t);for(e=new Wb(n.a.b);e.a<e.c.c.length;)(t=BB(n0(e),57)).c.$b(),t.c=BB(qI(AY(u.f,t)),15);_xn(n)}function KRn(n){var t,e,i,r,c,a,u;for(u=new xp,i=new Wb(n.a.b);i.a<i.c.c.length;)VW(u,t=BB(n0(i),81),new Np);for(r=new Wb(n.a.b);r.a<r.c.c.length;)for((t=BB(n0(r),81)).o=KQn,a=t.f.Kc();a.Ob();)c=BB(a.Pb(),81),BB(qI(AY(u.f,c)),15).Fc(t);for(e=new Wb(n.a.b);e.a<e.c.c.length;)(t=BB(n0(e),81)).f.$b(),t.f=BB(qI(AY(u.f,t)),15);BNn(n)}function _Rn(n,t,e,i){var r,c;for(Gkn(n,t,e,i),xl(t,n.j-t.j+e),Dl(t,n.k-t.k+i),c=new Wb(t.f);c.a<c.c.c.length;)switch((r=BB(n0(c),324)).a.g){case 0:won(n,t.g+r.b.a,0,t.g+r.c.a,t.i-1);break;case 1:won(n,t.g+t.o,t.i+r.b.a,n.o-1,t.i+r.c.a);break;case 2:won(n,t.g+r.b.a,t.i+t.p,t.g+r.c.a,n.p-1);break;default:won(n,0,t.i+r.b.a,t.g-1,t.i+r.c.a)}}function FRn(n,t,e,i,r){var c,a;try{if(t>=n.o)throw Hp(new Sv);a=t>>5,c=yz(1,dG(yz(31&t,1))),n.n[e][a]=r?i0(n.n[e][a],c):e0(n.n[e][a],uH(c)),c=yz(c,1),n.n[e][a]=i?i0(n.n[e][a],c):e0(n.n[e][a],uH(c))}catch(u){throw cL(u=lun(u),320)?Hp(new Ay(MJn+n.o+"*"+n.p+SJn+t+FWn+e+PJn)):Hp(u)}}function BRn(n,t,i,r){var c,a;t&&(c=Gy(MD(mMn(t,(qqn(),fkt))))+r,a=i+Gy(MD(mMn(t,ukt)))/2,hon(t,gkt,iln(dG(fan(e.Math.round(c))))),hon(t,pkt,iln(dG(fan(e.Math.round(a))))),0==t.d.b||BRn(n,BB(iL(new wg(spn(new bg(t).a.d,0))),86),i+Gy(MD(mMn(t,ukt)))+n.a,r+Gy(MD(mMn(t,okt)))),null!=mMn(t,wkt)&&BRn(n,BB(mMn(t,wkt),86),i,r))}function HRn(n,t){var i,r,c,a,u,o,s,h,f,l,b;for(c=2*Gy(MD(mMn(s=vW(t.a),(HXn(),Tpt)))),f=Gy(MD(mMn(s,Apt))),h=e.Math.max(c,f),a=x8(xNt,qQn,25,t.f-t.c+1,15,1),r=-h,i=0,o=t.b.Kc();o.Ob();)u=BB(o.Pb(),10),r+=n.a[u.c.p]+h,a[i++]=r;for(r+=n.a[t.a.c.p]+h,a[i++]=r,b=new Wb(t.e);b.a<b.c.c.length;)l=BB(n0(b),10),r+=n.a[l.c.p]+h,a[i++]=r;return a}function qRn(n,t,e,i){var r,c,a,u,o,s,h,f;for(f=new dE(new Yd(n)),u=0,o=(a=Pun(Gk(Out,1),a1n,10,0,[t,e])).length;u<o;++u)for(h=Lfn(a[u],i).Kc();h.Ob();)for(c=new m6((s=BB(h.Pb(),11)).b);y$(c.a)||y$(c.b);)b5(r=BB(y$(c.a)?n0(c.a):n0(c.b),17))||(Mon(f.a,s,(hN(),ptt)),CW(r)&&ZU(f,s==r.c?r.d:r.c));return yX(f),new t_(f)}function GRn(n,t){var e,i,r,c;if(0!=(c=BB(ZAn(n,(sWn(),wPt)),61).g-BB(ZAn(t,wPt),61).g))return c;if(e=BB(ZAn(n,sPt),19),i=BB(ZAn(t,sPt),19),e&&i&&0!=(r=e.a-i.a))return r;switch(BB(ZAn(n,wPt),61).g){case 1:return Pln(n.i,t.i);case 2:return Pln(n.j,t.j);case 3:return Pln(t.i,n.i);case 4:return Pln(t.j,n.j);default:throw Hp(new Fy(r1n))}}function zRn(n){var t,e,i;return 0!=(64&n.Db)?mSn(n):(t=new lN(n6n),(e=n.k)?oO(oO((t.a+=' "',t),e),'"'):(!n.n&&(n.n=new eU(zOt,n,1,7)),n.n.i>0&&(!(i=(!n.n&&(n.n=new eU(zOt,n,1,7)),BB(Wtn(n.n,0),137)).a)||oO(oO((t.a+=' "',t),i),'"'))),oO(kE(oO(kE(oO(kE(oO(kE((t.a+=" (",t),n.i),","),n.j)," | "),n.g),","),n.f),")"),t.a)}function URn(n){var t,e,i;return 0!=(64&n.Db)?mSn(n):(t=new lN(t6n),(e=n.k)?oO(oO((t.a+=' "',t),e),'"'):(!n.n&&(n.n=new eU(zOt,n,1,7)),n.n.i>0&&(!(i=(!n.n&&(n.n=new eU(zOt,n,1,7)),BB(Wtn(n.n,0),137)).a)||oO(oO((t.a+=' "',t),i),'"'))),oO(kE(oO(kE(oO(kE(oO(kE((t.a+=" (",t),n.i),","),n.j)," | "),n.g),","),n.f),")"),t.a)}function XRn(n,t){var e,i,r,c,a,u;if(null==t||0==t.length)return null;if(!(r=BB(SJ(n.a,t),149))){for(i=new Kb(new Ob(n.b).a.vc().Kc());i.a.Ob();)if(c=BB(i.a.Pb(),42),a=(e=BB(c.dd(),149)).c,u=t.length,mK(a.substr(a.length-u,u),t)&&(t.length==a.length||46==fV(a,a.length-t.length-1))){if(r)return null;r=e}r&&mZ(n.a,t,r)}return r}function WRn(n,t){var e,i,r;return e=new xn,(i=BB(P4($V(new Rq(null,new w1(n.f,16)),e),x7(new Q,new Y,new cn,new an,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Xet),Uet]))),21).gc())<(r=BB(P4($V(new Rq(null,new w1(t.f,16)),e),x7(new Q,new Y,new cn,new an,Pun(Gk(nit,1),$Vn,132,0,[Xet,Uet]))),21).gc())?-1:i==r?0:1}function VRn(n){var t,e,i;Lx(n,(HXn(),$gt))&&((i=BB(mMn(n,$gt),21)).dc()||(e=new YK(t=BB(Vj(GCt),9),BB(SR(t,t.length),9),0),i.Hc((n$n(),$Ct))?orn(e,$Ct):orn(e,LCt),i.Hc(OCt)||orn(e,OCt),i.Hc(ICt)?orn(e,DCt):i.Hc(CCt)?orn(e,xCt):i.Hc(ACt)&&orn(e,NCt),i.Hc(DCt)?orn(e,ICt):i.Hc(xCt)?orn(e,CCt):i.Hc(NCt)&&orn(e,ACt),hon(n,$gt,e)))}function QRn(n){var t,e,i,r,c,a,u;for(r=BB(mMn(n,(hWn(),rlt)),10),l1(0,(i=n.j).c.length),e=BB(i.c[0],11),a=new Wb(r.j);a.a<a.c.c.length;)if(GI(c=BB(n0(a),11))===GI(mMn(e,dlt))){c.j==(kUn(),sIt)&&n.p>r.p?(qCn(c,SIt),c.d&&(u=c.o.b,t=c.a.b,c.a.b=u-t)):c.j==SIt&&r.p>n.p&&(qCn(c,sIt),c.d&&(u=c.o.b,t=c.a.b,c.a.b=-(u-t)));break}return r}function YRn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w;if(c=e,e<i)for(b=new Fan(n.p),w=new Fan(n.p),Frn(b.e,n.e),b.q=n.q,b.r=w,rX(b),Frn(w.j,n.j),w.r=b,rX(w),f=BB((l=new rI(b,w)).a,112),h=BB(l.b,112),l1(c,t.c.length),a=$Dn(n,f,h,r=BB(t.c[c],329)),s=e+1;s<=i;s++)l1(s,t.c.length),Vpn(u=BB(t.c[s],329),o=$Dn(n,f,h,u),r,a)&&(r=u,a=o);return c}function JRn(n,t,e,i,r){var c,a,u,o,s,h,f;if(!(cL(t,239)||cL(t,354)||cL(t,186)))throw Hp(new _y("Method only works for ElkNode-, ElkLabel and ElkPort-objects."));return a=n.a/2,o=t.i+i-a,h=t.j+r-a,s=o+t.g+n.a,f=h+t.f+n.a,DH(c=new km,new xC(o,h)),DH(c,new xC(o,f)),DH(c,new xC(s,f)),DH(c,new xC(s,h)),qan(u=new EAn(c),t),e&&VW(n.b,t,u),u}function ZRn(n,t,e){var i,r,c,a,u,o,s,h;for(c=new xC(t,e),s=new Wb(n.a);s.a<s.c.c.length;)for(UR((o=BB(n0(s),10)).n,c),h=new Wb(o.j);h.a<h.c.c.length;)for(r=new Wb(BB(n0(h),11).g);r.a<r.c.c.length;)for(Ztn((i=BB(n0(r),17)).a,c),(a=BB(mMn(i,(HXn(),vgt)),74))&&Ztn(a,c),u=new Wb(i.b);u.a<u.c.c.length;)UR(BB(n0(u),70).n,c)}function nKn(n,t,e){var i,r,c,a,u,o,s,h;for(c=new xC(t,e),s=new Wb(n.a);s.a<s.c.c.length;)for(UR((o=BB(n0(s),10)).n,c),h=new Wb(o.j);h.a<h.c.c.length;)for(r=new Wb(BB(n0(h),11).g);r.a<r.c.c.length;)for(Ztn((i=BB(n0(r),17)).a,c),(a=BB(mMn(i,(HXn(),vgt)),74))&&Ztn(a,c),u=new Wb(i.b);u.a<u.c.c.length;)UR(BB(n0(u),70).n,c)}function tKn(n){if(0==(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b).i)throw Hp(new ck("Edges must have a source."));if(0==(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c).i)throw Hp(new ck("Edges must have a target."));if(!n.b&&(n.b=new hK(KOt,n,4,7)),!(n.b.i<=1&&(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c.i<=1)))throw Hp(new ck("Hyperedges are not supported."))}function eKn(n,t){var e,i,r,c,a,u,o,s,h,f;for(f=0,d3(c=new Lp,t);c.b!=c.c;)for(o=BB(dU(c),214),s=0,h=BB(mMn(t.j,(HXn(),Ldt)),339),a=Gy(MD(mMn(t.j,Idt))),u=Gy(MD(mMn(t.j,Odt))),h!=(mon(),Nvt)&&(s+=a*S$n(o.e,h),s+=u*rxn(o.e)),f+=syn(o.d,o.e)+s,r=new Wb(o.b);r.a<r.c.c.length;)i=BB(n0(r),37),(e=BB(xq(n.b,i.p),214)).s||(f+=nCn(n,e));return f}function iKn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(o=b=t.length,b1(0,t.length),45==t.charCodeAt(0)?(f=-1,l=1,--b):(f=1,l=0),r=b/(c=(uHn(),cet)[10])|0,0!=(g=b%c)&&++r,u=x8(ANt,hQn,25,r,15,1),e=ret[8],a=0,w=l+(0==g?c:g),d=l;d<o;w=(d=w)+c)i=l_n(t.substr(d,w-d),_Vn,DWn),$On(),s=dvn(u,u,a,e),s+=Uwn(u,a,i),u[a++]=s;h=a,n.e=f,n.d=h,n.a=u,X0(n)}function rKn(n,t,e,i,r,c,a){if(n.c=i.qf().a,n.d=i.qf().b,r&&(n.c+=r.qf().a,n.d+=r.qf().b),n.b=t.rf().a,n.a=t.rf().b,r)switch(r.Hf().g){case 0:case 2:n.c+=r.rf().a+a+c.a+a;break;case 4:n.c-=a+c.a+a+t.rf().a;break;case 1:n.c+=r.rf().a+a,n.d-=a+c.b+a+t.rf().b;break;case 3:n.c+=r.rf().a+a,n.d+=r.rf().b+a+c.b+a}else e?n.c-=a+t.rf().a:n.c+=i.rf().a+a}function cKn(n,t){var e,i;for(this.b=new Np,this.e=new Np,this.a=n,this.d=t,Gpn(this),pdn(this),this.b.dc()?this.c=n.c.p:this.c=BB(this.b.Xb(0),10).c.p,0==this.e.c.length?this.f=n.c.p:this.f=BB(xq(this.e,this.e.c.length-1),10).c.p,i=BB(mMn(n,(hWn(),Plt)),15).Kc();i.Ob();)if(Lx(e=BB(i.Pb(),70),(HXn(),Vdt))){this.d=BB(mMn(e,Vdt),227);break}}function aKn(n,t,e){var i,r,c,a,u,o,s,h;for(i=BB(RX(n.a,t),53),c=BB(RX(n.a,e),53),r=BB(RX(n.e,t),53),a=BB(RX(n.e,e),53),i.a.zc(e,i),a.a.zc(t,a),h=c.a.ec().Kc();h.Ob();)s=BB(h.Pb(),10),i.a.zc(s,i),TU(BB(RX(n.e,s),53),t),Frn(BB(RX(n.e,s),53),r);for(o=r.a.ec().Kc();o.Ob();)u=BB(o.Pb(),10),a.a.zc(u,a),TU(BB(RX(n.a,u),53),e),Frn(BB(RX(n.a,u),53),c)}function uKn(n,t,e){var i,r,c,a,u,o,s,h;for(i=BB(RX(n.a,t),53),c=BB(RX(n.a,e),53),r=BB(RX(n.b,t),53),a=BB(RX(n.b,e),53),i.a.zc(e,i),a.a.zc(t,a),h=c.a.ec().Kc();h.Ob();)s=BB(h.Pb(),10),i.a.zc(s,i),TU(BB(RX(n.b,s),53),t),Frn(BB(RX(n.b,s),53),r);for(o=r.a.ec().Kc();o.Ob();)u=BB(o.Pb(),10),a.a.zc(u,a),TU(BB(RX(n.a,u),53),e),Frn(BB(RX(n.a,u),53),c)}function oKn(n,t){var e,i,r;switch(OTn(t,"Breaking Point Insertion",1),i=new MAn(n),BB(mMn(n,(HXn(),Bpt)),337).g){case 2:r=new Tc;case 0:r=new wc;break;default:r=new Mc}if(e=r.Vf(n,i),qy(TD(mMn(n,qpt)))&&(e=Dqn(n,e)),!r.Wf()&&Lx(n,Xpt))switch(BB(mMn(n,Xpt),338).g){case 2:e=XCn(i,e);break;case 1:e=KTn(i,e)}e.dc()||tXn(n,e),HSn(t)}function sKn(n,t,e){var i,r,c,a,u,o,s;if(s=t,$in(o=Q3(n,L3(e),s),R2(s,q6n)),a=N2(s,L6n),VCn((i=new oI(n,o)).a,i.b,a),u=N2(s,N6n),QCn((r=new sI(n,o)).a,r.b,u),0==(!o.b&&(o.b=new hK(KOt,o,4,7)),o.b).i||0==(!o.c&&(o.c=new hK(KOt,o,5,8)),o.c).i)throw c=R2(s,q6n),Hp(new ek(X6n+c+W6n));return STn(s,o),sXn(n,s,o),xon(n,s,o)}function hKn(n,t){var i,r,c,a,u,o,s;for(c=x8(ANt,hQn,25,n.e.a.c.length,15,1),u=new Wb(n.e.a);u.a<u.c.c.length;)c[(a=BB(n0(u),121)).d]+=a.b.a.c.length;for(o=zB(t);0!=o.b;)for(r=L9(new Wb((a=BB(0==o.b?null:(Px(0!=o.b),Atn(o,o.a.a)),121)).g.a));r.Ob();)(s=(i=BB(r.Pb(),213)).e).e=e.Math.max(s.e,a.e+i.a),--c[s.d],0==c[s.d]&&r5(o,s,o.c.b,o.c)}function fKn(n){var t,i,r,c,a,u,o,s,h,f,l;for(i=_Vn,c=DWn,o=new Wb(n.e.a);o.a<o.c.c.length;)a=BB(n0(o),121),c=e.Math.min(c,a.e),i=e.Math.max(i,a.e);for(t=x8(ANt,hQn,25,i-c+1,15,1),u=new Wb(n.e.a);u.a<u.c.c.length;)(a=BB(n0(u),121)).e-=c,++t[a.e];if(r=0,null!=n.k)for(f=0,l=(h=n.k).length;f<l&&(s=h[f],t[r++]+=s,t.length!=r);++f);return t}function lKn(n){switch(n.d){case 9:case 8:return!0;case 3:case 5:case 4:case 6:return!1;case 7:return BB(Kxn(n),19).a==n.o;case 1:case 2:if(-2==n.o)return!1;switch(n.p){case 0:case 1:case 2:case 6:case 5:case 7:return QI(n.k,n.f);case 3:case 4:return n.j==n.e;default:return null==n.n?null==n.g:Nfn(n.n,n.g)}default:return!1}}function bKn(n){NM(n,new MTn(vj(wj(pj(gj(new du,K5n),"ELK Fixed"),"Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points."),new Vu))),u2(n,K5n,QJn,dCt),u2(n,K5n,g3n,mpn(gCt)),u2(n,K5n,g5n,mpn(hCt)),u2(n,K5n,PZn,mpn(fCt)),u2(n,K5n,BZn,mpn(bCt)),u2(n,K5n,Y2n,mpn(lCt))}function wKn(n,t,e){var i,r,c,a;if(i=dG(cbn(SVn,rV(dG(cbn(null==t?0:nsn(t),PVn)),15))),a=dG(cbn(SVn,rV(dG(cbn(null==e?0:nsn(e),PVn)),15))),(c=Jrn(n,t,i))&&a==c.f&&wW(e,c.i))return e;if(Zrn(n,e,a))throw Hp(new _y("value already present: "+e));return r=new qW(t,i,e,a),c?(LLn(n,c),YCn(n,r,c),c.e=null,c.c=null,c.i):(YCn(n,r,null),qkn(n),null)}function dKn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;s=e.a.c,a=e.a.c+e.a.b,l=(c=BB(RX(e.c,t),459)).f,b=c.a,u=c.b?new xC(a,l):new xC(s,l),h=c.c?new xC(s,b):new xC(a,b),r=s,e.p||(r+=n.c),o=new xC(r+=e.F+e.v*n.b,l),f=new xC(r,b),nin(t.a,Pun(Gk(PMt,1),sVn,8,0,[u,o])),e.d.a.gc()>1&&(i=new xC(r,e.b),DH(t.a,i)),nin(t.a,Pun(Gk(PMt,1),sVn,8,0,[f,h]))}function gKn(n,t,e){var i,r,c,a,u,o;if(t){if(e<=-1){if(cL(i=itn(t.Tg(),-1-e),99))return BB(i,18);for(u=0,o=(a=BB(t.ah(i),153)).gc();u<o;++u)if(GI(a.jl(u))===GI(n)&&cL(r=a.il(u),99)&&0!=((c=BB(r,18)).Bb&h6n))return c;throw Hp(new Fy("The containment feature could not be located"))}return Cvn(BB(itn(n.Tg(),e),18))}return null}function pKn(n){var t,e,i,r,c;for(i=n.length,t=new Pk,c=0;c<i;)if(9!=(e=fV(n,c++))&&10!=e&&12!=e&&13!=e&&32!=e)if(35!=e)92==e&&c<i?35==(b1(c,n.length),r=n.charCodeAt(c))||9==r||10==r||12==r||13==r||32==r?(NX(t,r&QVn),++c):(t.a+="\\",NX(t,r&QVn),++c):NX(t,e&QVn);else for(;c<i&&13!=(e=fV(n,c++))&&10!=e;);return t.a}function vKn(n,t){var e,i,r;for(i=new Wb(t);i.a<i.c.c.length;)if(e=BB(n0(i),33),JIn(n.a,e,e),JIn(n.b,e,e),0!=(r=wDn(e)).c.length)for(n.d&&n.d.lg(r),JIn(n.a,e,(l1(0,r.c.length),BB(r.c[0],33))),JIn(n.b,e,BB(xq(r,r.c.length-1),33));0!=Dun(r).c.length;)r=Dun(r),n.d&&n.d.lg(r),JIn(n.a,e,(l1(0,r.c.length),BB(r.c[0],33))),JIn(n.b,e,BB(xq(r,r.c.length-1),33))}function mKn(n){var t,e,i,r,c,a,u,o,s,h;for(e=0,u=new Wb(n.d);u.a<u.c.c.length;)(a=BB(n0(u),101)).i&&(a.i.c=e++);for(t=kq($Nt,[sVn,ZYn],[177,25],16,[e,e],2),h=n.d,r=0;r<h.c.length;r++)if(l1(r,h.c.length),(o=BB(h.c[r],101)).i)for(c=r+1;c<h.c.length;c++)l1(c,h.c.length),(s=BB(h.c[c],101)).i&&(i=rMn(o,s),t[o.i.c][s.i.c]=i,t[s.i.c][o.i.c]=i);return t}function yKn(n,t,e,i){var r,c,a;return a=new yT(t,e),n.a?i?(++(r=BB(RX(n.b,t),283)).a,a.d=i.d,a.e=i.e,a.b=i,a.c=i,i.e?i.e.c=a:BB(RX(n.b,t),283).b=a,i.d?i.d.b=a:n.a=a,i.d=a,i.e=a):(n.e.b=a,a.d=n.e,n.e=a,(r=BB(RX(n.b,t),283))?(++r.a,(c=r.c).c=a,a.e=c,r.c=a):(VW(n.b,t,r=new sY(a)),++n.c)):(n.a=n.e=a,VW(n.b,t,new sY(a)),++n.c),++n.d,a}function kKn(n,t){var e,i,r,c,a,u,o,s;for(e=new RegExp(t,"g"),o=x8(Qtt,sVn,2,0,6,1),i=0,s=n,c=null;;){if(null==(u=e.exec(s))||""==s){o[i]=s;break}a=u.index,o[i]=s.substr(0,a),s=fx(s,a+u[0].length,s.length),e.lastIndex=0,c==s&&(o[i]=s.substr(0,1),s=s.substr(1)),c=s,++i}if(n.length>0){for(r=o.length;r>0&&""==o[r-1];)--r;r<o.length&&(o.length=r)}return o}function jKn(n,t){var e,i,r,c,a,u,o,s;for(u=null,r=!1,c=0,o=a4((s=kY(t)).a).i;c<o;++c)(e=jKn(n,BB(eGn(s,c,cL(a=BB(Wtn(a4(s.a),c),87).c,88)?BB(a,26):(gWn(),d$t)),26))).dc()||(u?(r||(r=!0,u=new rG(u)),u.Gc(e)):u=e);return(i=xIn(n,t)).dc()?u||(SQ(),SQ(),set):u?(r||(u=new rG(u)),u.Gc(i),u):i}function EKn(n,t){var e,i,r,c,a,u,o,s;for(u=null,i=!1,c=0,o=a4((s=kY(t)).a).i;c<o;++c)(e=EKn(n,BB(eGn(s,c,cL(a=BB(Wtn(a4(s.a),c),87).c,88)?BB(a,26):(gWn(),d$t)),26))).dc()||(u?(i||(i=!0,u=new rG(u)),u.Gc(e)):u=e);return(r=VOn(n,t)).dc()?u||(SQ(),SQ(),set):u?(i||(u=new rG(u)),u.Gc(r),u):r}function TKn(n,t,e){var i,r,c,a,u,o;if(cL(t,72))return _pn(n,t,e);for(u=null,c=null,i=BB(n.g,119),a=0;a<n.i;++a)if(Nfn(t,(r=i[a]).dd())&&cL(c=r.ak(),99)&&0!=(BB(c,18).Bb&h6n)){u=r;break}return u&&(mA(n.e)&&(o=c.$j()?LY(n,4,c,t,null,pBn(n,c,t,cL(c,99)&&0!=(BB(c,18).Bb&BQn)),!0):LY(n,c.Kj()?2:1,c,t,c.zj(),-1,!0),e?e.Ei(o):e=o),e=TKn(n,u,e)),e}function MKn(n){var t,i,r,c;r=n.o,qD(),n.A.dc()||Nfn(n.A,$rt)?c=r.a:(c=SIn(n.f),n.A.Hc((mdn(),RIt))&&!n.B.Hc((n_n(),XIt))&&(c=e.Math.max(c,SIn(BB(oV(n.p,(kUn(),sIt)),244))),c=e.Math.max(c,SIn(BB(oV(n.p,SIt),244)))),(t=oan(n))&&(c=e.Math.max(c,t.a))),qy(TD(n.e.yf().We((sWn(),FSt))))?r.a=e.Math.max(r.a,c):r.a=c,(i=n.f.i).c=0,i.b=c,_Fn(n.f)}function SKn(n,t){var e,i,r,c,a,u,o,s,h;if((e=t.Hh(n.a))&&null!=(o=SD(cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),"memberTypes")))){for(s=new Np,a=0,u=(c=kKn(o,"\\w")).length;a<u;++a)cL(h=-1==(i=(r=c[a]).lastIndexOf("#"))?uD(n,t.Aj(),r):0==i?M9(n,null,r.substr(1)):M9(n,r.substr(0,i),r.substr(i+1)),148)&&WB(s,BB(h,148));return s}return SQ(),SQ(),set}function PKn(n,t,e){var i,r,c,a,u,o,s,h;for(OTn(e,aZn,1),n.bf(t),c=0;n.df(c);){for(h=new Wb(t.e);h.a<h.c.c.length;)for(o=BB(n0(h),144),u=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[t.e,t.d,t.b])));dAn(u);)(a=BB(U5(u),357))!=o&&(r=n.af(a,o))&&UR(o.a,r);for(s=new Wb(t.e);s.a<s.c.c.length;)WSn(i=(o=BB(n0(s),144)).a,-n.d,-n.d,n.d,n.d),UR(o.d,i),kO(i);n.cf(),++c}HSn(e)}function CKn(n,t,e){var i,r,c,a;if(a=axn(n.e.Tg(),t),i=BB(n.g,119),ZM(),BB(t,66).Oj()){for(c=0;c<n.i;++c)if(r=i[c],a.rl(r.ak())&&Nfn(r,e))return fDn(n,c),!0}else if(null!=e){for(c=0;c<n.i;++c)if(r=i[c],a.rl(r.ak())&&Nfn(e,r.dd()))return fDn(n,c),!0}else for(c=0;c<n.i;++c)if(r=i[c],a.rl(r.ak())&&null==r.dd())return fDn(n,c),!0;return!1}function IKn(n,t){var e,i,r,c,a;for(null==n.c||n.c.length<t.c.length?n.c=x8($Nt,ZYn,25,t.c.length,16,1):nk(n.c),n.a=new Np,i=0,a=new Wb(t);a.a<a.c.c.length;)(r=BB(n0(a),10)).p=i++;for(e=new YT,c=new Wb(t);c.a<c.c.c.length;)r=BB(n0(c),10),n.c[r.p]||(hIn(n,r),0==e.b||(Px(0!=e.b),BB(e.a.a.c,15)).gc()<n.a.c.length?hO(e,n.a):fO(e,n.a),n.a=new Np);return e}function OKn(n,t,e,i){var r,c,a,u,o,s,h;for(Pen(a=BB(Wtn(t,0),33),0),Cen(a,0),(o=new Np).c[o.c.length]=a,u=a,c=new eq(n.a,a.g,a.f,(YLn(),_Et)),s=1;s<t.i;s++)Pen(h=BB(Wtn(t,s),33),(r=aqn(n,nHn(n,DEt,h,u,c,o,e),nHn(n,xEt,h,u,c,o,e),nHn(n,KEt,h,u,c,o,e),nHn(n,REt,h,u,c,o,e),h,u,i)).d),Cen(h,r.e),ab(r,_Et),c=r,u=h,o.c[o.c.length]=h;return c}function AKn(n){NM(n,new MTn(vj(wj(pj(gj(new du,Q4n),"ELK SPOrE Overlap Removal"),'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'),new eu))),u2(n,Q4n,K4n,mpn(qTt)),u2(n,Q4n,QJn,BTt),u2(n,Q4n,vZn,8),u2(n,Q4n,q4n,mpn(HTt)),u2(n,Q4n,U4n,mpn(_Tt)),u2(n,Q4n,X4n,mpn(FTt)),u2(n,Q4n,X2n,(hN(),!1))}function $Kn(n,t,e,i){var r,c,a,u,o,s,h,f;for(a=_x(t.c,e,i),h=new Wb(t.a);h.a<h.c.c.length;){for(UR((s=BB(n0(h),10)).n,a),f=new Wb(s.j);f.a<f.c.c.length;)for(c=new Wb(BB(n0(f),11).g);c.a<c.c.c.length;)for(Ztn((r=BB(n0(c),17)).a,a),(u=BB(mMn(r,(HXn(),vgt)),74))&&Ztn(u,a),o=new Wb(r.b);o.a<o.c.c.length;)UR(BB(n0(o),70).n,a);WB(n.a,s),s.a=n}}function LKn(n,t){var e,i,r,c;if(OTn(t,"Node and Port Label Placement and Node Sizing",1),RA((gM(),new HV(n,!0,!0,new Ve))),BB(mMn(n,(hWn(),Zft)),21).Hc((bDn(),lft)))for(i=(r=BB(mMn(n,(HXn(),cpt)),21)).Hc((lIn(),iIt)),c=qy(TD(mMn(n,apt))),e=new Wb(n.b);e.a<e.c.c.length;)JT(AV(new Rq(null,new w1(BB(n0(e),29).a,16)),new Qe),new K_(r,i,c));HSn(t)}function NKn(n,t){var e,i,r,c,a,u;if((e=t.Hh(n.a))&&null!=(u=SD(cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),n8n))))switch(r=mN(u,YTn(35)),i=t.Hj(),-1==r?(a=az(n,Utn(i)),c=u):0==r?(a=null,c=u.substr(1)):(a=u.substr(0,r),c=u.substr(r+1)),DW(B7(n,t))){case 2:case 3:return Don(n,i,a,c);case 0:case 4:case 5:case 6:return Ron(n,i,a,c)}return null}function xKn(n,t,e){var i,r,c,a,u;if(ZM(),a=BB(t,66).Oj(),$xn(n.e,t)){if(t.hi()&&UFn(n,t,e,cL(t,99)&&0!=(BB(t,18).Bb&BQn)))return!1}else for(u=axn(n.e.Tg(),t),i=BB(n.g,119),c=0;c<n.i;++c)if(r=i[c],u.rl(r.ak()))return!(a?Nfn(r,e):null==e?null==r.dd():Nfn(e,r.dd()))&&(BB(ovn(n,c,a?BB(e,72):Z3(t,e)),72),!0);return f9(n,a?BB(e,72):Z3(t,e))}function DKn(n){var t,e,i,r,c;if(n.d)throw Hp(new Fy((ED(Yat),AYn+Yat.k+$Yn)));for(n.c==(Ffn(),BPt)&&Mzn(n,_Pt),t=new Wb(n.a.a);t.a<t.c.c.length;)BB(n0(t),189).e=0;for(r=new Wb(n.a.b);r.a<r.c.c.length;)for((i=BB(n0(r),81)).o=KQn,e=i.f.Kc();e.Ob();)++BB(e.Pb(),81).d.e;for(Gzn(n),c=new Wb(n.a.b);c.a<c.c.c.length;)BB(n0(c),81).k=!0;return n}function RKn(n,t){var e,i,r,c,a,u,o,s;for(u=new pPn(n),r5(e=new YT,t,e.c.b,e.c);0!=e.b;){for((i=BB(0==e.b?null:(Px(0!=e.b),Atn(e,e.a.a)),113)).d.p=1,a=new Wb(i.e);a.a<a.c.c.length;)jTn(u,r=BB(n0(a),409)),0==(s=r.d).d.p&&r5(e,s,e.c.b,e.c);for(c=new Wb(i.b);c.a<c.c.c.length;)jTn(u,r=BB(n0(c),409)),0==(o=r.c).d.p&&r5(e,o,e.c.b,e.c)}return u}function KKn(n){var t,e,i,r,c;if(1!=(i=Gy(MD(ZAn(n,(sWn(),yPt))))))for(MA(n,i*n.g,i*n.f),e=XO(_B((!n.c&&(n.c=new eU(XOt,n,9,9)),n.c),new Bu)),c=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[(!n.n&&(n.n=new eU(zOt,n,1,7)),n.n),(!n.c&&(n.c=new eU(XOt,n,9,9)),n.c),e])));dAn(c);)(r=BB(U5(c),470)).Gg(i*r.Dg(),i*r.Eg()),r.Fg(i*r.Cg(),i*r.Bg()),(t=BB(r.We(cPt),8))&&(t.a*=i,t.b*=i)}function _Kn(n,t,e,i,r){var c,a,u,o,s,h;for(c=new Wb(n.b);c.a<c.c.c.length;)for(s=0,h=(o=n2(BB(n0(c),29).a)).length;s<h;++s)switch(BB(mMn(u=o[s],(HXn(),kgt)),163).g){case 1:vxn(u),PZ(u,t),lvn(u,!0,i);break;case 3:ZNn(u),PZ(u,e),lvn(u,!1,r)}for(a=new M2(n.b,0);a.b<a.d.gc();)0==(Px(a.b<a.d.gc()),BB(a.d.Xb(a.c=a.b++),29)).a.c.length&&fW(a)}function FKn(n,t){var e,i,r,c,a,u,o;if((e=t.Hh(n.a))&&null!=(o=SD(cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),M7n)))){for(i=new Np,a=0,u=(c=kKn(o,"\\w")).length;a<u;++a)mK(r=c[a],"##other")?WB(i,"!##"+az(n,Utn(t.Hj()))):mK(r,"##local")?i.c[i.c.length]=null:mK(r,E7n)?WB(i,az(n,Utn(t.Hj()))):i.c[i.c.length]=r;return i}return SQ(),SQ(),set}function BKn(n,t){var e,i,r;return e=new Xn,(i=1==(i=BB(P4($V(new Rq(null,new w1(n.f,16)),e),x7(new Q,new Y,new cn,new an,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Xet),Uet]))),21).gc())?1:0)<(r=1==(r=BB(P4($V(new Rq(null,new w1(t.f,16)),e),x7(new Q,new Y,new cn,new an,Pun(Gk(nit,1),$Vn,132,0,[Xet,Uet]))),21).gc())?1:0)?-1:i==r?0:1}function HKn(n){var t,e,i,r,c,a,u,o,s,h,f,l;for(r=qy(TD(mMn(u=n.i,(HXn(),wgt)))),h=0,i=0,s=new Wb(n.g);s.a<s.c.c.length;)c=(a=b5(o=BB(n0(s),17)))&&r&&qy(TD(mMn(o,dgt))),l=o.d.i,a&&c?++i:a&&!c?++h:vW(l).e==u?++i:++h;for(e=new Wb(n.e);e.a<e.c.c.length;)c=(a=b5(t=BB(n0(e),17)))&&r&&qy(TD(mMn(t,dgt))),f=t.c.i,a&&c?++h:a&&!c?++i:vW(f).e==u?++h:++i;return h-i}function qKn(n,t,e,i){this.e=n,this.k=BB(mMn(n,(hWn(),Alt)),304),this.g=x8(Out,a1n,10,t,0,1),this.b=x8(Ptt,sVn,333,t,7,1),this.a=x8(Out,a1n,10,t,0,1),this.d=x8(Ptt,sVn,333,t,7,1),this.j=x8(Out,a1n,10,t,0,1),this.i=x8(Ptt,sVn,333,t,7,1),this.p=x8(Ptt,sVn,333,t,7,1),this.n=x8(ktt,sVn,476,t,8,1),yS(this.n,(hN(),!1)),this.f=x8(ktt,sVn,476,t,8,1),yS(this.f,!0),this.o=e,this.c=i}function GKn(n,t){var e,i,r;if(!t.dc())if(BB(t.Xb(0),286).d==($Pn(),nht))Akn(n,t);else for(i=t.Kc();i.Ob();){switch((e=BB(i.Pb(),286)).d.g){case 5:hPn(n,e,Vbn(n,e));break;case 0:hPn(n,e,(r=(e.f-e.c+1-1)/2|0,e.c+r));break;case 4:hPn(n,e,$nn(n,e));break;case 2:Kwn(e),hPn(n,e,$En(e)?e.c:e.f);break;case 1:Kwn(e),hPn(n,e,$En(e)?e.f:e.c)}hMn(e.a)}}function zKn(n,t){var e,i,r,c,a;if(!t.e){for(t.e=!0,i=t.d.a.ec().Kc();i.Ob();)e=BB(i.Pb(),17),t.o&&t.d.a.gc()<=1?(a=new xC((c=t.a.c)+(t.a.c+t.a.b-c)/2,t.b),DH(BB(t.d.a.ec().Kc().Pb(),17).a,a)):(r=BB(RX(t.c,e),459)).b||r.c?dKn(n,e,t):n.d==(Usn(),rmt)&&(r.d||r.e)&&LOn(n,t)&&t.d.a.gc()<=1?dzn(e,t):DDn(n,e,t);t.k&&e5(t.d,new Te)}}function UKn(n,t,i,r,c,a){var u,o,s,h,f,l,b,w,d,g,p,v,m;for(o=(r+c)/2+a,g=i*e.Math.cos(o),p=i*e.Math.sin(o),v=g-t.g/2,m=p-t.f/2,Pen(t,v),Cen(t,m),l=n.a.jg(t),(d=2*e.Math.acos(i/i+n.c))<c-r?(b=d/l,u=(r+c-d)/2):(b=(c-r)/l,u=r),w=wDn(t),n.e&&(n.e.kg(n.d),n.e.lg(w)),h=new Wb(w);h.a<h.c.c.length;)s=BB(n0(h),33),f=n.a.jg(s),UKn(n,s,i+n.c,u,u+b*f,a),u+=b*f}function XKn(n,t,e){var i;switch(i=e.q.getMonth(),t){case 5:oO(n,Pun(Gk(Qtt,1),sVn,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[i]);break;case 4:oO(n,Pun(Gk(Qtt,1),sVn,2,6,[YVn,JVn,ZVn,nQn,tQn,eQn,iQn,rQn,cQn,aQn,uQn,oQn])[i]);break;case 3:oO(n,Pun(Gk(Qtt,1),sVn,2,6,["Jan","Feb","Mar","Apr",tQn,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[i]);break;default:Enn(n,i+1,t)}}function WKn(n,t){var e,i,r,c;if(OTn(t,"Network simplex",1),n.e.a.c.length<1)HSn(t);else{for(r=new Wb(n.e.a);r.a<r.c.c.length;)BB(n0(r),121).e=0;for((c=n.e.a.c.length>=40)&&EFn(n),BHn(n),Txn(n),e=yln(n),i=0;e&&i<n.f;)e_n(n,e,e$n(n,e)),e=yln(n),++i;c&&tTn(n),n.a?p$n(n,fKn(n)):fKn(n),n.b=null,n.d=null,n.p=null,n.c=null,n.g=null,n.i=null,n.n=null,n.o=null,HSn(t)}}function VKn(n,t,e,i){var r,c,a,u,o,s,h,f;for(XR(u=new xC(e,i),BB(mMn(t,(Mrn(),oat)),8)),f=new Wb(t.e);f.a<f.c.c.length;)UR((h=BB(n0(f),144)).d,u),WB(n.e,h);for(a=new Wb(t.c);a.a<a.c.c.length;){for(r=new Wb((c=BB(n0(a),282)).a);r.a<r.c.c.length;)UR(BB(n0(r),559).d,u);WB(n.c,c)}for(s=new Wb(t.d);s.a<s.c.c.length;)UR((o=BB(n0(s),447)).d,u),WB(n.d,o)}function QKn(n,t){var e,i,r,c,a,u,o,s;for(o=new Wb(t.j);o.a<o.c.c.length;)for(r=new m6((u=BB(n0(o),11)).b);y$(r.a)||y$(r.b);)t!=(c=(e=(i=BB(y$(r.a)?n0(r.a):n0(r.b),17)).c==u?i.d:i.c).i)&&((s=BB(mMn(i,(HXn(),fpt)),19).a)<0&&(s=0),a=c.p,0==n.b[a]&&(i.d==e?(n.a[a]-=s+1,n.a[a]<=0&&n.c[a]>0&&DH(n.f,c)):(n.c[a]-=s+1,n.c[a]<=0&&n.a[a]>0&&DH(n.e,c))))}function YKn(n){var t,e,i,r,c,a,u;for(c=new dE(BB(yX(new Rn),62)),u=KQn,e=new Wb(n.d);e.a<e.c.c.length;){for(u=(t=BB(n0(e),222)).c.c;0!=c.a.c&&(a=BB(MU(q9(c.a)),222)).c.c+a.c.b<u;)$J(c.a,a);for(r=new Fb(new BR(new xN(new _b(c.a).a).b));aS(r.a.a);)DH((i=BB(mx(r.a).cd(),222)).b,t),DH(t.b,i);Mon(c.a,t,(hN(),ptt))}}function JKn(n,t,e){var i,r,c,a,u,o,s,h,f;for(c=new J6(t.c.length),s=new Wb(t);s.a<s.c.c.length;)a=BB(n0(s),10),WB(c,n.b[a.c.p][a.p]);for(mqn(n,c,e),f=null;f=ezn(c);)rBn(n,BB(f.a,233),BB(f.b,233),c);for(t.c=x8(Ant,HWn,1,0,5,1),r=new Wb(c);r.a<r.c.c.length;)for(o=0,h=(u=(i=BB(n0(r),233)).d).length;o<h;++o)a=u[o],t.c[t.c.length]=a,n.a[a.c.p][a.p].a=lL(i.g,i.d[0]).a}function ZKn(n,t){var e,i,r,c;if(0<(cL(n,14)?BB(n,14).gc():F3(n.Kc()))){if(1<(r=t)){for(--r,c=new pa,i=n.Kc();i.Ob();)e=BB(i.Pb(),86),c=Wen(Pun(Gk(xnt,1),HWn,20,0,[c,new bg(e)]));return ZKn(c,r)}if(r<0){for(c=new va,i=n.Kc();i.Ob();)e=BB(i.Pb(),86),c=Wen(Pun(Gk(xnt,1),HWn,20,0,[c,new bg(e)]));if(0<(cL(c,14)?BB(c,14).gc():F3(c.Kc())))return ZKn(c,r)}}return BB(iL(n.Kc()),86)}function n_n(){n_n=O,GIt=new QC("DEFAULT_MINIMUM_SIZE",0),UIt=new QC("MINIMUM_SIZE_ACCOUNTS_FOR_PADDING",1),qIt=new QC("COMPUTE_PADDING",2),XIt=new QC("OUTSIDE_NODE_LABELS_OVERHANG",3),WIt=new QC("PORTS_OVERHANG",4),QIt=new QC("UNIFORM_PORT_SPACING",5),VIt=new QC("SPACE_EFFICIENT_PORT_LABELS",6),zIt=new QC("FORCE_TABULAR_NODE_LABELS",7),HIt=new QC("ASYMMETRICAL",8)}function t_n(n,t){var e,i,r,c,a,u,o,s;if(t){if(e=(c=t.Tg())?Utn(c).Nh().Jh(c):null){for(Jgn(n,t,e),o=0,s=(null==(r=t.Tg()).i&&qFn(r),r.i).length;o<s;++o)null==r.i&&qFn(r),i=r.i,(u=o>=0&&o<i.length?i[o]:null).Ij()&&!u.Jj()&&(cL(u,322)?nvn(n,BB(u,34),t,e):0!=((a=BB(u,18)).Bb&h6n)&&sEn(n,a,t,e));t.kh()&&BB(e,49).vh(BB(t,49).qh())}return e}return null}function e_n(n,t,e){var i,r,c;if(!t.f)throw Hp(new _y("Given leave edge is no tree edge."));if(e.f)throw Hp(new _y("Given enter edge is a tree edge already."));for(t.f=!1,eL(n.p,t),e.f=!0,TU(n.p,e),i=e.e.e-e.d.e-e.a,FCn(n,e.e,t)||(i=-i),c=new Wb(n.e.a);c.a<c.c.c.length;)FCn(n,r=BB(n0(c),121),t)||(r.e+=i);n.j=1,nk(n.c),pIn(n,BB(n0(new Wb(n.e.a)),121)),gGn(n)}function i_n(n,t){var e,i,r,c,a,u;if((u=BB(mMn(t,(HXn(),ept)),98))==(QEn(),WCt)||u==XCt)for(r=new xC(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a).b,a=new Wb(n.a);a.a<a.c.c.length;)(c=BB(n0(a),10)).k==(uSn(),Mut)&&((e=BB(mMn(c,(hWn(),Qft)),61))!=(kUn(),oIt)&&e!=CIt||(i=Gy(MD(mMn(c,Tlt))),u==WCt&&(i*=r),c.n.b=i-BB(mMn(c,npt),8).b,Jan(c,!1,!0)))}function r_n(n,t,e,i){var r,c,a,u,o,s,h,f,l,b;if(Ytn(n,t,e),c=t[e],b=i?(kUn(),CIt):(kUn(),oIt),mL(t.length,e,i)){for(G6(n,r=t[i?e-1:e+1],i?(ain(),qvt):(ain(),Hvt)),h=0,l=(o=c).length;h<l;++h)xvn(n,a=o[h],b);for(G6(n,c,i?(ain(),Hvt):(ain(),qvt)),s=0,f=(u=r).length;s<f;++s)(a=u[s]).e||xvn(n,a,Tln(b))}else for(s=0,f=(u=c).length;s<f;++s)xvn(n,a=u[s],b);return!1}function c_n(n,t,e,i){var r,c,a,u,o;u=abn(t,e),(e==(kUn(),SIt)||e==CIt)&&(u=cL(u,152)?o6(BB(u,152)):cL(u,131)?BB(u,131).a:cL(u,54)?new fy(u):new CT(u)),a=!1;do{for(r=!1,c=0;c<u.gc()-1;c++)BMn(n,BB(u.Xb(c),11),BB(u.Xb(c+1),11),i)&&(a=!0,k0(n.a,BB(u.Xb(c),11),BB(u.Xb(c+1),11)),o=BB(u.Xb(c+1),11),u._c(c+1,BB(u.Xb(c),11)),u._c(c,o),r=!0)}while(r);return a}function a_n(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w;if(!mA(n.e))return BB(YIn(n,t,e),72);if(t!=e&&(a=(b=(r=BB(n.g,119))[e]).ak(),$xn(n.e,a))){for(w=axn(n.e.Tg(),a),o=-1,u=-1,i=0,s=0,f=t>e?t:e;s<=f;++s)s==e?u=i++:(c=r[s],h=w.rl(c.ak()),s==t&&(o=s!=f||h?i:i-1),h&&++i);return l=BB(Iln(n,t,e),72),u!=o&&Lv(n,new j9(n.e,7,a,iln(u),b.dd(),o)),l}return BB(Iln(n,t,e),72)}function u_n(n,t){var e,i,r,c,a,u;for(OTn(t,"Port order processing",1),u=BB(mMn(n,(HXn(),opt)),421),e=new Wb(n.b);e.a<e.c.c.length;)for(r=new Wb(BB(n0(e),29).a);r.a<r.c.c.length;)i=BB(n0(r),10),c=BB(mMn(i,ept),98),a=i.j,c==(QEn(),UCt)||c==WCt||c==XCt?(SQ(),m$(a,sst)):c!=QCt&&c!=YCt&&(SQ(),m$(a,fst),Lvn(a),u==(U7(),_vt)&&m$(a,hst)),i.i=!0,eIn(i);HSn(t)}function o_n(n){var t,i,r,c,a,u,o,s;for(s=new xp,t=new Fv,u=n.Kc();u.Ob();)c=BB(u.Pb(),10),o=AN(oM(new qv,c),t),jCn(s.f,c,o);for(a=n.Kc();a.Ob();)for(r=new oz(ZL(lbn(c=BB(a.Pb(),10)).a.Kc(),new h));dAn(r);)b5(i=BB(U5(r),17))||UNn(aM(cM(rM(uM(new Hv,e.Math.max(1,BB(mMn(i,(HXn(),lpt)),19).a)),1),BB(RX(s,i.c.i),121)),BB(RX(s,i.d.i),121)));return t}function s_n(){s_n=O,byt=dq(new B2,(yMn(),Fat),(lWn(),vot)),dyt=dq(new B2,_at,jot),gyt=WG(dq(new B2,_at,Dot),Bat,xot),lyt=WG(dq(dq(new B2,_at,lot),Fat,bot),Bat,wot),pyt=ogn(ogn(FM(WG(dq(new B2,Rat,Uot),Bat,zot),Fat),Got),Xot),wyt=WG(new B2,Bat,mot),hyt=WG(dq(dq(dq(new B2,Kat,Mot),Fat,Pot),Fat,Cot),Bat,Sot),fyt=WG(dq(dq(new B2,Fat,Cot),Fat,uot),Bat,aot)}function h_n(n,t,e,i,r,c){var a,u,o,s,h,f;for(a=lSn(t,o=jon(t)-jon(n)),u=M$(0,0,0);o>=0&&(!Cyn(n,a)||(o<22?u.l|=1<<o:o<44?u.m|=1<<o-22:u.h|=1<<o-44,0!=n.l||0!=n.m||0!=n.h));)s=a.m,h=a.h,f=a.l,a.h=h>>>1,a.m=s>>>1|(1&h)<<21,a.l=f>>>1|(1&s)<<21,--o;return e&&Oon(u),c&&(i?(ltt=aon(n),r&&(ltt=hun(ltt,(X7(),dtt)))):ltt=M$(n.l,n.m,n.h)),u}function f_n(n,t){var e,i,r,c,a,u,o,s,h,f;for(s=n.e[t.c.p][t.p]+1,o=t.c.a.c.length+1,u=new Wb(n.a);u.a<u.c.c.length;){for(a=BB(n0(u),11),f=0,c=0,r=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[new Hw(a),new Gw(a)])));dAn(r);)(i=BB(U5(r),11)).i.c==t.c&&(f+=bL(n,i.i)+1,++c);e=f/c,(h=a.j)==(kUn(),oIt)?n.f[a.p]=e<s?n.c-e:n.b+(o-e):h==CIt&&(n.f[a.p]=e<s?n.b+e:n.c-(o-e))}}function l_n(n,t,e){var i,r,c,a;if(null==n)throw Hp(new Mk(zWn));for(i=(c=n.length)>0&&(b1(0,n.length),45==n.charCodeAt(0)||(b1(0,n.length),43==n.charCodeAt(0)))?1:0;i<c;i++)if(-1==egn((b1(i,n.length),n.charCodeAt(i))))throw Hp(new Mk(DQn+n+'"'));if(r=(a=parseInt(n,10))<t,isNaN(a))throw Hp(new Mk(DQn+n+'"'));if(r||a>e)throw Hp(new Mk(DQn+n+'"'));return a}function b_n(n){var t,i,r,c,a,u;for(a=new YT,c=new Wb(n.a);c.a<c.c.c.length;)Vl(r=BB(n0(c),112),r.f.c.length),Ql(r,r.k.c.length),0==r.i&&(r.o=0,r5(a,r,a.c.b,a.c));for(;0!=a.b;)for(i=(r=BB(0==a.b?null:(Px(0!=a.b),Atn(a,a.a.a)),112)).o+1,t=new Wb(r.f);t.a<t.c.c.length;)Yl(u=BB(n0(t),129).a,e.Math.max(u.o,i)),Ql(u,u.i-1),0==u.i&&r5(a,u,a.c.b,a.c)}function w_n(n){var t,e,i,r,c,a,u,o;for(a=new Wb(n);a.a<a.c.c.length;){for(c=BB(n0(a),79),u=(i=PTn(BB(Wtn((!c.b&&(c.b=new hK(KOt,c,4,7)),c.b),0),82))).i,o=i.j,CA(r=BB(Wtn((!c.a&&(c.a=new eU(FOt,c,6,6)),c.a),0),202),r.j+u,r.k+o),PA(r,r.b+u,r.c+o),e=new AL((!r.a&&(r.a=new $L(xOt,r,5)),r.a));e.e!=e.i.gc();)TA(t=BB(kpn(e),469),t.a+u,t.b+o);Yrn(BB(ZAn(c,(sWn(),OSt)),74),u,o)}}function d_n(n){switch(n){case 100:return mWn(snt,!0);case 68:return mWn(snt,!1);case 119:return mWn(hnt,!0);case 87:return mWn(hnt,!1);case 115:return mWn(fnt,!0);case 83:return mWn(fnt,!1);case 99:return mWn(lnt,!0);case 67:return mWn(lnt,!1);case 105:return mWn(bnt,!0);case 73:return mWn(bnt,!1);default:throw Hp(new dy(ont+n.toString(16)))}}function g_n(n){var t,i,r,c,a;switch(c=BB(xq(n.a,0),10),t=new $vn(n),WB(n.a,t),t.o.a=e.Math.max(1,c.o.a),t.o.b=e.Math.max(1,c.o.b),t.n.a=c.n.a,t.n.b=c.n.b,BB(mMn(c,(hWn(),Qft)),61).g){case 4:t.n.a+=2;break;case 1:t.n.b+=2;break;case 2:t.n.a-=2;break;case 3:t.n.b-=2}return CZ(r=new CSn,t),SZ(i=new wY,a=BB(xq(c.j,0),11)),MZ(i,r),UR(kO(r.n),a.n),UR(kO(r.a),a.a),t}function p_n(n,t,e,i,r){e&&(!i||(n.c-n.b&n.a.length-1)>1)&&1==t&&BB(n.a[n.b],10).k==(uSn(),Sut)?hFn(BB(n.a[n.b],10),(Xyn(),jCt)):i&&(!e||(n.c-n.b&n.a.length-1)>1)&&1==t&&BB(n.a[n.c-1&n.a.length-1],10).k==(uSn(),Sut)?hFn(BB(n.a[n.c-1&n.a.length-1],10),(Xyn(),ECt)):2==(n.c-n.b&n.a.length-1)?(hFn(BB(Eon(n),10),(Xyn(),jCt)),hFn(BB(Eon(n),10),ECt)):sLn(n,r),o4(n)}function v_n(n,t,i){var r,c,a,u,o;for(a=0,c=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));c.e!=c.i.gc();)u="",0==(!(r=BB(kpn(c),33)).n&&(r.n=new eU(zOt,r,1,7)),r.n).i||(u=BB(Wtn((!r.n&&(r.n=new eU(zOt,r,1,7)),r.n),0),137).a),qan(o=new csn(a++,t,u),r),hon(o,(qqn(),skt),r),o.e.b=r.j+r.f/2,o.f.a=e.Math.max(r.g,1),o.e.a=r.i+r.g/2,o.f.b=e.Math.max(r.f,1),DH(t.b,o),jCn(i.f,r,o)}function m_n(n){var t,e,i,r,c;i=BB(mMn(n,(hWn(),dlt)),33),c=BB(ZAn(i,(HXn(),Fgt)),174).Hc((mdn(),_It)),n.e||(r=BB(mMn(n,Zft),21),t=new xC(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a),r.Hc((bDn(),lft))?(Ypn(i,ept,(QEn(),XCt)),KUn(i,t.a,t.b,!1,!0)):qy(TD(ZAn(i,Bgt)))||KUn(i,t.a,t.b,!0,!0)),Ypn(i,Fgt,c?nbn(_It):new YK(e=BB(Vj(YIt),9),BB(SR(e,e.length),9),0))}function y_n(n,t,e){var i,r,c,a;if(t[0]>=n.length)return e.o=0,!0;switch(fV(n,t[0])){case 43:r=1;break;case 45:r=-1;break;default:return e.o=0,!0}if(++t[0],c=t[0],0==(a=UIn(n,t))&&t[0]==c)return!1;if(t[0]<n.length&&58==fV(n,t[0])){if(i=60*a,++t[0],c=t[0],0==(a=UIn(n,t))&&t[0]==c)return!1;i+=a}else(i=a)<24&&t[0]-c<=2?i*=60:i=i%100+60*(i/100|0);return i*=r,e.o=-i,!0}function k_n(n){var t,e,i,r,c,a,u;for(r=new Np,i=new oz(ZL(lbn(n.b).a.Kc(),new h));dAn(i);)b5(e=BB(U5(i),17))&&WB(r,new j6(e,v9(n,e.c),v9(n,e.d)));for(u=new Kb(new Ob(n.e).a.vc().Kc());u.a.Ob();)t=BB(u.a.Pb(),42),(c=BB(t.dd(),113)).d.p=0;for(a=new Kb(new Ob(n.e).a.vc().Kc());a.a.Ob();)t=BB(a.a.Pb(),42),0==(c=BB(t.dd(),113)).d.p&&WB(n.d,RKn(n,c))}function j_n(n){var t,e,i,r,c;for(c=WJ(n),r=new AL((!n.e&&(n.e=new hK(_Ot,n,7,4)),n.e));r.e!=r.i.gc();)if(i=BB(kpn(r),79),!Ctn(PTn(BB(Wtn((!i.c&&(i.c=new hK(KOt,i,5,8)),i.c),0),82)),c))return!0;for(e=new AL((!n.d&&(n.d=new hK(_Ot,n,8,5)),n.d));e.e!=e.i.gc();)if(t=BB(kpn(e),79),!Ctn(PTn(BB(Wtn((!t.b&&(t.b=new hK(KOt,t,4,7)),t.b),0),82)),c))return!0;return!1}function E_n(n){var t,i,r,c,a,u,o,s;for(s=new km,o=null,i=BB(b3(t=spn(n,0)),8),c=BB(b3(t),8);t.b!=t.d.c;)o=i,i=c,c=BB(b3(t),8),a=ctn(XR(new xC(o.a,o.b),i)),u=ctn(XR(new xC(c.a,c.b),i)),r=10,r=e.Math.min(r,e.Math.abs(a.a+a.b)/2),r=e.Math.min(r,e.Math.abs(u.a+u.b)/2),a.a=HH(a.a)*r,a.b=HH(a.b)*r,u.a=HH(u.a)*r,u.b=HH(u.b)*r,DH(s,UR(a,i)),DH(s,UR(u,i));return s}function T_n(n,t,e,i){var r,c,a,u,o;return a=n.eh(),r=null,(o=n.Zg())?t&&0==(gKn(n,t,e).Bb&BQn)?(i=_pn(o.Vk(),n,i),n.uh(null),r=t.fh()):o=null:(a&&(o=a.fh()),t&&(r=t.fh())),o!=r&&o&&o.Zk(n),u=n.Vg(),n.Rg(t,e),o!=r&&r&&r.Yk(n),n.Lg()&&n.Mg()&&(a&&u>=0&&u!=e&&(c=new nU(n,1,u,a,null),i?i.Ei(c):i=c),e>=0&&(c=new nU(n,1,e,u==e?a:null,t),i?i.Ei(c):i=c)),i}function M_n(n){var t,e,i;if(null==n.b){if(i=new Sk,null!=n.i&&(cO(i,n.i),i.a+=":"),0!=(256&n.f)){for(0!=(256&n.f)&&null!=n.a&&(rQ(n.i)||(i.a+="//"),cO(i,n.a)),null!=n.d&&(i.a+="/",cO(i,n.d)),0!=(16&n.f)&&(i.a+="/"),t=0,e=n.j.length;t<e;t++)0!=t&&(i.a+="/"),cO(i,n.j[t]);null!=n.g&&(i.a+="?",cO(i,n.g))}else cO(i,n.a);null!=n.e&&(i.a+="#",cO(i,n.e)),n.b=i.a}return n.b}function S_n(n,t){var e,i,r,c,a,u;for(r=new Wb(t.a);r.a<r.c.c.length;)cL(c=mMn(i=BB(n0(r),10),(hWn(),dlt)),11)&&(u=yFn(t,i,(a=BB(c,11)).o.a,a.o.b),a.n.a=u.a,a.n.b=u.b,qCn(a,BB(mMn(i,Qft),61)));e=new xC(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a),BB(mMn(t,(hWn(),Zft)),21).Hc((bDn(),lft))?(hon(n,(HXn(),ept),(QEn(),XCt)),BB(mMn(vW(n),Zft),21).Fc(dft),bGn(n,e,!1)):bGn(n,e,!0)}function P_n(n,t,e){var i,r,c,a,u;OTn(e,"Minimize Crossings "+n.a,1),i=0==t.b.c.length||!jE(AV(new Rq(null,new w1(t.b,16)),new aw(new Ac))).sd((dM(),tit)),u=1==t.b.c.length&&1==BB(xq(t.b,0),29).a.c.length,c=GI(mMn(t,(HXn(),sgt)))===GI((ufn(),pCt)),i||u&&!c||(Ssn(r=sxn(n,t),(a=BB(Dpn(r,0),214)).c.Rf()?a.c.Lf()?new Ud(n):new Xd(n):new zd(n)),afn(n)),HSn(e)}function C_n(n,t,e,i){var r,c,a,u;if(u=dG(cbn(SVn,rV(dG(cbn(null==t?0:nsn(t),PVn)),15))),r=dG(cbn(SVn,rV(dG(cbn(null==e?0:nsn(e),PVn)),15))),a=Zrn(n,t,u),c=Jrn(n,e,r),a&&r==a.a&&wW(e,a.g))return e;if(c&&!i)throw Hp(new _y("key already present: "+e));return a&&LLn(n,a),c&&LLn(n,c),YCn(n,new qW(e,r,t,u),c),c&&(c.e=null,c.c=null),a&&(a.e=null,a.c=null),qkn(n),a?a.g:null}function I_n(n,t,e){var i,r,c,a,u;for(c=0;c<t;c++){for(i=0,u=c+1;u<t;u++)i=rbn(rbn(cbn(e0(n[c],UQn),e0(n[u],UQn)),e0(e[c+u],UQn)),e0(dG(i),UQn)),e[c+u]=dG(i),i=jz(i,32);e[c+t]=dG(i)}for(ncn(e,e,t<<1),i=0,r=0,a=0;r<t;++r,a++)i=rbn(rbn(cbn(e0(n[r],UQn),e0(n[r],UQn)),e0(e[a],UQn)),e0(dG(i),UQn)),e[a]=dG(i),i=rbn(i=jz(i,32),e0(e[++a],UQn)),e[a]=dG(i),i=jz(i,32);return e}function O_n(n,t,i){var r,c,a,u,o,s,h,f;if(!h3(t)){for(s=Gy(MD(edn(i.c,(HXn(),Npt)))),!(h=BB(edn(i.c,Lpt),142))&&(h=new lm),r=i.a,c=null,o=t.Kc();o.Ob();)u=BB(o.Pb(),11),f=0,c?(f=s,f+=c.o.b):f=h.d,a=AN(oM(new qv,u),n.f),VW(n.k,u,a),UNn(aM(cM(rM(uM(new Hv,0),CJ(e.Math.ceil(f))),r),a)),c=u,r=a;UNn(aM(cM(rM(uM(new Hv,0),CJ(e.Math.ceil(h.a+c.o.b))),r),i.d))}}function A_n(n,t,e,i,r,c,a,u){var o,s,h;return h=!1,s=c-e.s,o=e.t-t.f+cHn(e,s,!1).a,!(i.g+u>s)&&(o+u+cHn(i,s,!1).a<=t.b&&(p9(e,c-e.s),e.c=!0,p9(i,c-e.s),Tvn(i,e.s,e.t+e.d+u),i.k=!0,xcn(e.q,i),h=!0,r&&(tin(t,i),i.j=t,n.c.length>a&&(Tkn((l1(a,n.c.length),BB(n.c[a],200)),i),0==(l1(a,n.c.length),BB(n.c[a],200)).a.c.length&&s6(n,a)))),h)}function $_n(n,t){var e,i,r,c,a;if(OTn(t,"Partition midprocessing",1),r=new pJ,JT(AV(new Rq(null,new w1(n.a,16)),new di),new ld(r)),0!=r.d){for(a=BB(P4(a1(new Rq(null,(r.i||(r.i=new HL(r,r.c))).Nc())),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15),e=BB((i=a.Kc()).Pb(),19);i.Ob();)c=BB(i.Pb(),19),XLn(BB(h6(r,e),21),BB(h6(r,c),21)),e=c;HSn(t)}}function L_n(n,t,e){var i,r,c,a,u;if(0==t.p){for(t.p=1,(r=e)||(r=new rI(new Np,new YK(i=BB(Vj(FIt),9),BB(SR(i,i.length),9),0))),BB(r.a,15).Fc(t),t.k==(uSn(),Mut)&&BB(r.b,21).Fc(BB(mMn(t,(hWn(),Qft)),61)),a=new Wb(t.j);a.a<a.c.c.length;)for(c=BB(n0(a),11),u=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[new Hw(c),new Gw(c)])));dAn(u);)L_n(n,BB(U5(u),11).i,r);return r}return null}function N_n(n,t){var e,i,r,c,a;if(n.Ab)if(n.Ab){if((a=n.Ab.i)>0)if(r=BB(n.Ab.g,1934),null==t){for(c=0;c<a;++c)if(null==(e=r[c]).d)return e}else for(c=0;c<a;++c)if(mK(t,(e=r[c]).d))return e}else if(null==t){for(i=new AL(n.Ab);i.e!=i.i.gc();)if(null==(e=BB(kpn(i),590)).d)return e}else for(i=new AL(n.Ab);i.e!=i.i.gc();)if(mK(t,(e=BB(kpn(i),590)).d))return e;return null}function x_n(n,t){var e,i,r,c,a,u,o;if(null==(o=TD(mMn(t,(CAn(),Nkt))))||(kW(o),o)){for(DOn(n,t),r=new Np,u=spn(t.b,0);u.b!=u.d.c;)(e=xPn(n,BB(b3(u),86),null))&&(qan(e,t),r.c[r.c.length]=e);if(n.a=null,n.b=null,r.c.length>1)for(i=new Wb(r);i.a<i.c.c.length;)for(c=0,a=spn((e=BB(n0(i),135)).b,0);a.b!=a.d.c;)BB(b3(a),86).g=c++;return r}return u6(Pun(Gk(Gyt,1),tZn,135,0,[t]))}function D_n(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p;crn(b=A3(n,qun(t),r),R2(r,q6n)),d=D2(w=r,U6n),cSn(new Lg(b).a,d),g=D2(w,"endPoint"),rSn(new Rg(b).a,g),p=N2(w,D6n),SEn(new Fg(b).a,p),f=R2(r,K6n),qR((c=new hI(n,b)).a,c.b,f),l=R2(r,R6n),GR((a=new fI(n,b)).a,a.b,l),s=N2(r,F6n),Fyn((u=new lI(e,b)).b,u.a,s),h=N2(r,_6n),Byn((o=new bI(i,b)).b,o.a,h)}function R_n(n,t,e){var i,r,c,a,u;switch(u=null,t.g){case 1:for(r=new Wb(n.j);r.a<r.c.c.length;)if(qy(TD(mMn(i=BB(n0(r),11),(hWn(),tlt)))))return i;hon(u=new CSn,(hWn(),tlt),(hN(),!0));break;case 2:for(a=new Wb(n.j);a.a<a.c.c.length;)if(qy(TD(mMn(c=BB(n0(a),11),(hWn(),klt)))))return c;hon(u=new CSn,(hWn(),klt),(hN(),!0))}return u&&(CZ(u,n),qCn(u,e),yvn(u.n,n.o,e)),u}function K_n(n,t){var i,r,c,a,u,o;for(o=-1,u=new YT,r=new m6(n.b);y$(r.a)||y$(r.b);){for(i=BB(y$(r.a)?n0(r.a):n0(r.b),17),o=e.Math.max(o,Gy(MD(mMn(i,(HXn(),agt))))),i.c==n?JT(AV(new Rq(null,new w1(i.b,16)),new fe),new nd(u)):JT(AV(new Rq(null,new w1(i.b,16)),new le),new td(u)),a=spn(u,0);a.b!=a.d.c;)Lx(c=BB(b3(a),70),(hWn(),Uft))||hon(c,Uft,i);gun(t,u),yQ(u)}return o}function __n(n,t,e,i,r){var c,a,u,o;Bl(c=new $vn(n),(uSn(),Iut)),hon(c,(HXn(),ept),(QEn(),XCt)),hon(c,(hWn(),dlt),t.c.i),hon(a=new CSn,dlt,t.c),qCn(a,r),CZ(a,c),hon(t.c,Elt,c),Bl(u=new $vn(n),Iut),hon(u,ept,XCt),hon(u,dlt,t.d.i),hon(o=new CSn,dlt,t.d),qCn(o,r),CZ(o,u),hon(t.d,Elt,u),SZ(t,a),MZ(t,o),LZ(0,e.c.length),MS(e.c,0,c),i.c[i.c.length]=u,hon(c,Bft,iln(1)),hon(u,Bft,iln(1))}function F_n(n,t,i,r,c){var a,u,o,s,h;o=c?r.b:r.a,FT(n.a,r)||(h=o>i.s&&o<i.c,s=!1,0!=i.e.b&&0!=i.j.b&&(s|=e.Math.abs(o-Gy(MD(gx(i.e))))<lZn&&e.Math.abs(o-Gy(MD(gx(i.j))))<lZn,s|=e.Math.abs(o-Gy(MD(px(i.e))))<lZn&&e.Math.abs(o-Gy(MD(px(i.j))))<lZn),(h||s)&&((u=BB(mMn(t,(HXn(),vgt)),74))||(u=new km,hon(t,vgt,u)),r5(u,a=new wA(r),u.c.b,u.c),TU(n.a,a)))}function B_n(n,t,e,i){var r,c,a,u,o,s,h;if(WIn(n,t,e,i))return!0;for(a=new Wb(t.f);a.a<a.c.c.length;){switch(c=BB(n0(a),324),u=!1,s=(o=n.j-t.j+e)+t.o,r=(h=n.k-t.k+i)+t.p,c.a.g){case 0:u=Osn(n,o+c.b.a,0,o+c.c.a,h-1);break;case 1:u=Osn(n,s,h+c.b.a,n.o-1,h+c.c.a);break;case 2:u=Osn(n,o+c.b.a,r,o+c.c.a,n.p-1);break;default:u=Osn(n,0,h+c.b.a,o-1,h+c.c.a)}if(u)return!0}return!1}function H_n(n,t){var e,i,r,c,a,u,o,s;for(c=new Wb(t.b);c.a<c.c.c.length;)for(o=new Wb(BB(n0(c),29).a);o.a<o.c.c.length;){for(u=BB(n0(o),10),s=new Np,a=0,i=new oz(ZL(fbn(u).a.Kc(),new h));dAn(i);)b5(e=BB(U5(i),17))||!b5(e)&&e.c.i.c==e.d.i.c||((r=BB(mMn(e,(HXn(),bpt)),19).a)>a&&(a=r,s.c=x8(Ant,HWn,1,0,5,1)),r==a&&WB(s,new rI(e.c.i,e)));SQ(),m$(s,n.c),kG(n.b,u.p,s)}}function q_n(n,t){var e,i,r,c,a,u,o,s;for(c=new Wb(t.b);c.a<c.c.c.length;)for(o=new Wb(BB(n0(c),29).a);o.a<o.c.c.length;){for(u=BB(n0(o),10),s=new Np,a=0,i=new oz(ZL(lbn(u).a.Kc(),new h));dAn(i);)b5(e=BB(U5(i),17))||!b5(e)&&e.c.i.c==e.d.i.c||((r=BB(mMn(e,(HXn(),bpt)),19).a)>a&&(a=r,s.c=x8(Ant,HWn,1,0,5,1)),r==a&&WB(s,new rI(e.d.i,e)));SQ(),m$(s,n.c),kG(n.f,u.p,s)}}function G_n(n){NM(n,new MTn(vj(wj(pj(gj(new du,l5n),"ELK Box"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges."),new xu))),u2(n,l5n,QJn,zMt),u2(n,l5n,vZn,15),u2(n,l5n,pZn,iln(0)),u2(n,l5n,A4n,mpn(_Mt)),u2(n,l5n,PZn,mpn(BMt)),u2(n,l5n,SZn,mpn(qMt)),u2(n,l5n,VJn,f5n),u2(n,l5n,jZn,mpn(FMt)),u2(n,l5n,BZn,mpn(HMt)),u2(n,l5n,b5n,mpn(RMt)),u2(n,l5n,u3n,mpn(KMt))}function z_n(n,t){var e,i,r,c,a,u,o,s,h;if(a=(r=n.i).o.a,c=r.o.b,a<=0&&c<=0)return kUn(),PIt;switch(s=n.n.a,h=n.n.b,u=n.o.a,e=n.o.b,t.g){case 2:case 1:if(s<0)return kUn(),CIt;if(s+u>a)return kUn(),oIt;break;case 4:case 3:if(h<0)return kUn(),sIt;if(h+e>c)return kUn(),SIt}return(o=(s+u/2)/a)+(i=(h+e/2)/c)<=1&&o-i<=0?(kUn(),CIt):o+i>=1&&o-i>=0?(kUn(),oIt):i<.5?(kUn(),sIt):(kUn(),SIt)}function U_n(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;for(e=!1,o=Gy(MD(mMn(t,(HXn(),Opt)))),l=KVn*o,r=new Wb(t.b);r.a<r.c.c.length;)for(i=BB(n0(r),29),c=BB(n0(u=new Wb(i.a)),10),s=wU(n.a[c.p]);u.a<u.c.c.length;)a=BB(n0(u),10),s!=(h=wU(n.a[a.p]))&&(f=K$(n.b,c,a),c.n.b+c.o.b+c.d.a+s.a+f>a.n.b-a.d.d+h.a+l&&(b=s.g+h.g,h.a=(h.g*h.a+s.g*s.a)/b,h.g=b,s.f=h,e=!0)),c=a,s=h;return e}function X_n(n,t,e,i,r,c,a){var u,o,s,h,f;for(f=new bA,o=t.Kc();o.Ob();)for(h=new Wb(BB(o.Pb(),839).wf());h.a<h.c.c.length;)GI((s=BB(n0(h),181)).We((sWn(),gSt)))===GI((Rtn(),XPt))&&(rKn(f,s,!1,i,r,c,a),CPn(n,f));for(u=e.Kc();u.Ob();)for(h=new Wb(BB(u.Pb(),839).wf());h.a<h.c.c.length;)GI((s=BB(n0(h),181)).We((sWn(),gSt)))===GI((Rtn(),UPt))&&(rKn(f,s,!0,i,r,c,a),CPn(n,f))}function W_n(n,t,e){var i,r,c,a,u,o,s;for(a=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));a.e!=a.i.gc();)for(r=new oz(ZL(dLn(c=BB(kpn(a),33)).a.Kc(),new h));dAn(r);)nAn(i=BB(U5(r),79))||nAn(i)||QIn(i)||(o=BB(qI(AY(e.f,c)),86),s=BB(RX(e,PTn(BB(Wtn((!i.c&&(i.c=new hK(KOt,i,5,8)),i.c),0),82))),86),o&&s&&(hon(u=new UQ(o,s),(qqn(),skt),i),qan(u,i),DH(o.d,u),DH(s.b,u),DH(t.a,u)))}function V_n(n,t){var i,r,c,a,u,o,s;for(o=BB(BB(h6(n.r,t),21),84).Kc();o.Ob();)(r=(u=BB(o.Pb(),111)).c?WH(u.c):0)>0?u.a?r>(s=u.b.rf().b)&&(n.v||1==u.c.d.c.length?(a=(r-s)/2,u.d.d=a,u.d.a=a):(i=(BB(xq(u.c.d,0),181).rf().b-s)/2,u.d.d=e.Math.max(0,i),u.d.a=r-i-s)):u.d.a=n.t+r:Hz(n.u)&&((c=_Tn(u.b)).d<0&&(u.d.d=-c.d),c.d+c.a>u.b.rf().b&&(u.d.a=c.d+c.a-u.b.rf().b))}function Q_n(n,t){var e;switch(vnn(n)){case 6:return XI(t);case 7:return UI(t);case 8:return zI(t);case 3:return Array.isArray(t)&&!((e=vnn(t))>=14&&e<=16);case 11:return null!=t&&typeof t===xWn;case 12:return null!=t&&(typeof t===AWn||typeof t==xWn);case 0:return Qpn(t,n.__elementTypeId$);case 2:return DU(t)&&!(t.im===I);case 1:return DU(t)&&!(t.im===I)||Qpn(t,n.__elementTypeId$);default:return!0}}function Y_n(n,t){var i,r,c,a;return r=e.Math.min(e.Math.abs(n.c-(t.c+t.b)),e.Math.abs(n.c+n.b-t.c)),a=e.Math.min(e.Math.abs(n.d-(t.d+t.a)),e.Math.abs(n.d+n.a-t.d)),(i=e.Math.abs(n.c+n.b/2-(t.c+t.b/2)))>n.b/2+t.b/2||(c=e.Math.abs(n.d+n.a/2-(t.d+t.a/2)))>n.a/2+t.a/2?1:0==i&&0==c?0:0==i?a/c+1:0==c?r/i+1:e.Math.min(r/i,a/c)+1}function J_n(n,t){var i,r,c,a,u,o;return(c=iin(n))==(o=iin(t))?n.e==t.e&&n.a<54&&t.a<54?n.f<t.f?-1:n.f>t.f?1:0:(r=n.e-t.e,(i=(n.d>0?n.d:e.Math.floor((n.a-1)*zQn)+1)-(t.d>0?t.d:e.Math.floor((t.a-1)*zQn)+1))>r+1?c:i<r-1?-c:(!n.c&&(n.c=yhn(n.f)),a=n.c,!t.c&&(t.c=yhn(t.f)),u=t.c,r<0?a=Nnn(a,kBn(-r)):r>0&&(u=Nnn(u,kBn(r))),tgn(a,u))):c<o?-1:1}function Z_n(n,t){var e,i,r,c,a,u,o;for(c=0,u=0,o=0,r=new Wb(n.f.e);r.a<r.c.c.length;)t!=(i=BB(n0(r),144))&&(c+=a=n.i[t.b][i.b],(e=W8(t.d,i.d))>0&&n.d!=(q7(),Aat)&&(u+=a*(i.d.a+n.a[t.b][i.b]*(t.d.a-i.d.a)/e)),e>0&&n.d!=(q7(),Iat)&&(o+=a*(i.d.b+n.a[t.b][i.b]*(t.d.b-i.d.b)/e)));switch(n.d.g){case 1:return new xC(u/c,t.d.b);case 2:return new xC(t.d.a,o/c);default:return new xC(u/c,o/c)}}function nFn(n,t){var e,i,r,c;if(zsn(),c=BB(mMn(n.i,(HXn(),ept)),98),0!=n.j.g-t.j.g||c!=(QEn(),UCt)&&c!=WCt&&c!=XCt)return 0;if(c==(QEn(),UCt)&&(e=BB(mMn(n,ipt),19),i=BB(mMn(t,ipt),19),e&&i&&0!=(r=e.a-i.a)))return r;switch(n.j.g){case 1:return Pln(n.n.a,t.n.a);case 2:return Pln(n.n.b,t.n.b);case 3:return Pln(t.n.a,n.n.a);case 4:return Pln(t.n.b,n.n.b);default:throw Hp(new Fy(r1n))}}function tFn(n){var t,e,i,r,c;for(WB(c=new J6((!n.a&&(n.a=new $L(xOt,n,5)),n.a).i+2),new xC(n.j,n.k)),JT(new Rq(null,(!n.a&&(n.a=new $L(xOt,n,5)),new w1(n.a,16))),new Ig(c)),WB(c,new xC(n.b,n.c)),t=1;t<c.c.length-1;)l1(t-1,c.c.length),e=BB(c.c[t-1],8),l1(t,c.c.length),i=BB(c.c[t],8),l1(t+1,c.c.length),r=BB(c.c[t+1],8),e.a==i.a&&i.a==r.a||e.b==i.b&&i.b==r.b?s6(c,t):++t;return c}function eFn(n,t){var e,i,r,c,a,u,o;for(e=ON(iM(tM(eM(new Wv,t),new gY(t.e)),gst),n.a),0==t.j.c.length||V9(BB(xq(t.j,0),57).a,e),o=new Dp,VW(n.e,e,o),a=new Rv,u=new Rv,c=new Wb(t.k);c.a<c.c.c.length;)TU(a,(r=BB(n0(c),17)).c),TU(u,r.d);(i=a.a.gc()-u.a.gc())<0?(Uun(o,!0,(Ffn(),_Pt)),Uun(o,!1,FPt)):i>0&&(Uun(o,!1,(Ffn(),_Pt)),Uun(o,!0,FPt)),Otn(t.g,new sP(n,e)),VW(n.g,t,e)}function iFn(){var n;for(iFn=O,Ltt=Pun(Gk(ANt,1),hQn,25,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]),Ntt=x8(ANt,hQn,25,37,15,1),xtt=Pun(Gk(ANt,1),hQn,25,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]),Dtt=x8(LNt,FQn,25,37,14,1),n=2;n<=36;n++)Ntt[n]=CJ(e.Math.pow(n,Ltt[n])),Dtt[n]=Ojn(bVn,Ntt[n])}function rFn(n){var t;if(1!=(!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i)throw Hp(new _y(B5n+(!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i));return t=new km,bun(BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82))&&Frn(t,zXn(n,bun(BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82)),!1)),bun(BB(Wtn((!n.c&&(n.c=new hK(KOt,n,5,8)),n.c),0),82))&&Frn(t,zXn(n,bun(BB(Wtn((!n.c&&(n.c=new hK(KOt,n,5,8)),n.c),0),82)),!0)),t}function cFn(n,t){var e,i,r;for(r=!1,i=new oz(ZL((t.d?n.a.c==(gJ(),tyt)?fbn(t.b):lbn(t.b):n.a.c==(gJ(),nyt)?fbn(t.b):lbn(t.b)).a.Kc(),new h));dAn(i);)if(e=BB(U5(i),17),(qy(n.a.f[n.a.g[t.b.p].p])||b5(e)||e.c.i.c!=e.d.i.c)&&!qy(n.a.n[n.a.g[t.b.p].p])&&!qy(n.a.n[n.a.g[t.b.p].p])&&(r=!0,FT(n.b,n.a.g[Lmn(e,t.b).p])))return t.c=!0,t.a=e,t;return t.c=r,t.a=null,t}function aFn(n,t,e,i,r){var c,a,u,o,s,h,f;for(SQ(),m$(n,new Xu),u=new M2(n,0),f=new Np,c=0;u.b<u.d.gc();)Px(u.b<u.d.gc()),a=BB(u.d.Xb(u.c=u.b++),157),0!=f.c.length&&iG(a)*eG(a)>2*c?(h=new Gtn(f),s=iG(a)/eG(a),o=yXn(h,t,new bm,e,i,r,s),UR(kO(h.e),o),f.c=x8(Ant,HWn,1,0,5,1),c=0,f.c[f.c.length]=h,f.c[f.c.length]=a,c=iG(h)*eG(h)+iG(a)*eG(a)):(f.c[f.c.length]=a,c+=iG(a)*eG(a));return f}function uFn(n,t,e){var i,r,c,a,u,o,s;if(0==(i=e.gc()))return!1;if(n.ej())if(o=n.fj(),kwn(n,t,e),a=1==i?n.Zi(3,null,e.Kc().Pb(),t,o):n.Zi(5,null,e,t,o),n.bj()){for(u=i<100?null:new Fj(i),c=t+i,r=t;r<c;++r)s=n.Oi(r),u=n.cj(s,u);u?(u.Ei(a),u.Fi()):n.$i(a)}else n.$i(a);else if(kwn(n,t,e),n.bj()){for(u=i<100?null:new Fj(i),c=t+i,r=t;r<c;++r)u=n.cj(n.Oi(r),u);u&&u.Fi()}return!0}function oFn(n,t,e){var i,r,c,a;return n.ej()?(r=null,c=n.fj(),i=n.Zi(1,a=n.Ui(t,n.oi(t,e)),e,t,c),n.bj()&&!(n.ni()&&a?Nfn(a,e):GI(a)===GI(e))?(a&&(r=n.dj(a,r)),(r=n.cj(e,r))?(r.Ei(i),r.Fi()):n.$i(i)):r?(r.Ei(i),r.Fi()):n.$i(i),a):(a=n.Ui(t,n.oi(t,e)),n.bj()&&!(n.ni()&&a?Nfn(a,e):GI(a)===GI(e))&&(r=null,a&&(r=n.dj(a,null)),(r=n.cj(e,r))&&r.Fi()),a)}function sFn(n,t){var i,r,c,a,u,o,s,h;if(n.e=t,n.f=BB(mMn(t,(Mrn(),hat)),230),XTn(t),n.d=e.Math.max(16*t.e.c.length+t.c.c.length,256),!qy(TD(mMn(t,(fRn(),Hct)))))for(h=n.e.e.c.length,o=new Wb(t.e);o.a<o.c.c.length;)(s=BB(n0(o),144).d).a=OG(n.f)*h,s.b=OG(n.f)*h;for(i=t.b,a=new Wb(t.c);a.a<a.c.c.length;)if(c=BB(n0(a),282),(r=BB(mMn(c,eat),19).a)>0){for(u=0;u<r;u++)WB(i,new hX(c));BCn(c)}}function hFn(n,t){var i,r,c,a,u;if(n.k==(uSn(),Sut)&&(i=jE(AV(BB(mMn(n,(hWn(),Plt)),15).Oc(),new aw(new ri))).sd((dM(),tit))?t:(Xyn(),TCt),hon(n,ult,i),i!=(Xyn(),ECt)))for(r=BB(mMn(n,dlt),17),u=Gy(MD(mMn(r,(HXn(),agt)))),a=0,i==jCt?a=n.o.b-e.Math.ceil(u/2):i==TCt&&(n.o.b-=Gy(MD(mMn(vW(n),jpt))),a=(n.o.b-e.Math.ceil(u))/2),c=new Wb(n.j);c.a<c.c.c.length;)BB(n0(c),11).n.b=a}function fFn(){fFn=O,JM(),TNt=new Rh,Pun(Gk(A$t,2),sVn,368,0,[Pun(Gk(A$t,1),jnt,592,0,[new UE(z7n)])]),Pun(Gk(A$t,2),sVn,368,0,[Pun(Gk(A$t,1),jnt,592,0,[new UE(U7n)])]),Pun(Gk(A$t,2),sVn,368,0,[Pun(Gk(A$t,1),jnt,592,0,[new UE(X7n)]),Pun(Gk(A$t,1),jnt,592,0,[new UE(U7n)])]),new $A("-1"),Pun(Gk(A$t,2),sVn,368,0,[Pun(Gk(A$t,1),jnt,592,0,[new UE("\\c+")])]),new $A("0"),new $A("0"),new $A("1"),new $A("0"),new $A(int)}function lFn(n){var t,e;return n.c&&n.c.kh()&&(e=BB(n.c,49),n.c=BB(tfn(n,e),138),n.c!=e&&(0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,9,2,e,n.c)),cL(n.Cb,399)?n.Db>>16==-15&&n.Cb.nh()&&$7(new k9(n.Cb,9,13,e,n.c,uvn(H7(BB(n.Cb,59)),n))):cL(n.Cb,88)&&n.Db>>16==-23&&n.Cb.nh()&&(cL(t=n.c,88)||(gWn(),t=d$t),cL(e,88)||(gWn(),e=d$t),$7(new k9(n.Cb,9,10,e,t,uvn(a4(BB(n.Cb,26)),n)))))),n.c}function bFn(n,t){var e,i,r,c,a,u,o,s;for(OTn(t,"Hypernodes processing",1),i=new Wb(n.b);i.a<i.c.c.length;)for(a=new Wb(BB(n0(i),29).a);a.a<a.c.c.length;)if(qy(TD(mMn(c=BB(n0(a),10),(HXn(),bgt))))&&c.j.c.length<=2){for(s=0,o=0,e=0,r=0,u=new Wb(c.j);u.a<u.c.c.length;)switch(BB(n0(u),11).j.g){case 1:++s;break;case 2:++o;break;case 3:++e;break;case 4:++r}0==s&&0==e&&jXn(n,c,r<=o)}HSn(t)}function wFn(n,t){var e,i,r,c,a,u,o,s,h;for(OTn(t,"Layer constraint edge reversal",1),a=new Wb(n.b);a.a<a.c.c.length;){for(c=BB(n0(a),29),h=-1,e=new Np,s=n2(c.a),r=0;r<s.length;r++)i=BB(mMn(s[r],(hWn(),ilt)),303),-1==h?i!=(z7(),Cft)&&(h=r):i==(z7(),Cft)&&(PZ(s[r],null),Qyn(s[r],h++,c)),i==(z7(),Sft)&&WB(e,s[r]);for(o=new Wb(e);o.a<o.c.c.length;)PZ(u=BB(n0(o),10),null),PZ(u,c)}HSn(t)}function dFn(n,t,e){var i,r,c,a,u,o,s,h;for(OTn(e,"Hyperedge merging",1),xAn(n,t),u=new M2(t.b,0);u.b<u.d.gc();)if(Px(u.b<u.d.gc()),0!=(s=BB(u.d.Xb(u.c=u.b++),29).a).c.length)for(i=null,r=null,c=null,a=null,o=0;o<s.c.length;o++)l1(o,s.c.length),(r=(i=BB(s.c[o],10)).k)==(uSn(),Put)&&a==Put&&(h=hHn(i,c)).a&&(rDn(i,c,h.b,h.c),l1(o,s.c.length),PE(s.c,o,1),--o,i=c,r=a),c=i,a=r;HSn(e)}function gFn(n,t){var e,i,r;i=0!=H$n(n.d,1),!qy(TD(mMn(t.j,(hWn(),Jft))))&&!qy(TD(mMn(t.j,Ilt)))||GI(mMn(t.j,(HXn(),Ldt)))===GI((mon(),Nvt))?t.c.Tf(t.e,i):i=qy(TD(mMn(t.j,Jft))),DNn(n,t,i,!0),qy(TD(mMn(t.j,Ilt)))&&hon(t.j,Ilt,(hN(),!1)),qy(TD(mMn(t.j,Jft)))&&(hon(t.j,Jft,(hN(),!1)),hon(t.j,Ilt,!0)),e=eKn(n,t);do{if($rn(n),0==e)return 0;r=e,DNn(n,t,i=!i,!1),e=eKn(n,t)}while(r>e);return r}function pFn(n,t){var e,i,r;i=0!=H$n(n.d,1),!qy(TD(mMn(t.j,(hWn(),Jft))))&&!qy(TD(mMn(t.j,Ilt)))||GI(mMn(t.j,(HXn(),Ldt)))===GI((mon(),Nvt))?t.c.Tf(t.e,i):i=qy(TD(mMn(t.j,Jft))),DNn(n,t,i,!0),qy(TD(mMn(t.j,Ilt)))&&hon(t.j,Ilt,(hN(),!1)),qy(TD(mMn(t.j,Jft)))&&(hon(t.j,Jft,(hN(),!1)),hon(t.j,Ilt,!0)),e=nCn(n,t);do{if($rn(n),0==e)return 0;r=e,DNn(n,t,i=!i,!1),e=nCn(n,t)}while(r>e);return r}function vFn(n,t,e){var i,r,c,a,u,o,s;if(t==e)return!0;if(t=bAn(n,t),e=bAn(n,e),i=qvn(t)){if((o=qvn(e))!=i)return!!o&&(a=i.Dj())==o.Dj()&&null!=a;if(!t.d&&(t.d=new $L(VAt,t,1)),r=(c=t.d).i,!e.d&&(e.d=new $L(VAt,e,1)),r==(s=e.d).i)for(u=0;u<r;++u)if(!vFn(n,BB(Wtn(c,u),87),BB(Wtn(s,u),87)))return!1;return!0}return t.e==e.e}function mFn(n,t,e,i){var r,c,a,u,o,s,h,f;if($xn(n.e,t)){for(f=axn(n.e.Tg(),t),c=BB(n.g,119),h=null,o=-1,u=-1,r=0,s=0;s<n.i;++s)a=c[s],f.rl(a.ak())&&(r==e&&(o=s),r==i&&(u=s,h=a.dd()),++r);if(-1==o)throw Hp(new Ay(u8n+e+o8n+r));if(-1==u)throw Hp(new Ay(s8n+i+o8n+r));return Iln(n,o,u),mA(n.e)&&Lv(n,LY(n,7,t,iln(i),h,e,!0)),h}throw Hp(new _y("The feature must be many-valued to support move"))}function yFn(n,t,e,i){var r,c,a,u,o;switch((o=new wA(t.n)).a+=t.o.a/2,o.b+=t.o.b/2,u=Gy(MD(mMn(t,(HXn(),tpt)))),c=n.f,a=n.d,r=n.c,BB(mMn(t,(hWn(),Qft)),61).g){case 1:o.a+=a.b+r.a-e/2,o.b=-i-u,t.n.b=-(a.d+u+r.b);break;case 2:o.a=c.a+a.b+a.c+u,o.b+=a.d+r.b-i/2,t.n.a=c.a+a.c+u-r.a;break;case 3:o.a+=a.b+r.a-e/2,o.b=c.b+a.d+a.a+u,t.n.b=c.b+a.a+u-r.b;break;case 4:o.a=-e-u,o.b+=a.d+r.b-i/2,t.n.a=-(a.b+u+r.a)}return o}function kFn(n){var t,e,i,r,c,a;return qan(i=new min,n),GI(mMn(i,(HXn(),Udt)))===GI((Ffn(),BPt))&&hon(i,Udt,Wln(i)),null==mMn(i,(C6(),TMt))&&(a=BB($Mn(n),160),hon(i,TMt,iO(a.We(TMt)))),hon(i,(hWn(),dlt),n),hon(i,Zft,new YK(t=BB(Vj(Tft),9),BB(SR(t,t.length),9),0)),r=Pzn((JJ(n)&&(GM(),new Dy(JJ(n))),GM(),new JN(JJ(n)?new Dy(JJ(n)):null,n)),FPt),c=BB(mMn(i,zgt),116),eZ(e=i.d,c),eZ(e,r),i}function jFn(n,t,e){var i,r;i=t.c.i,r=e.d.i,i.k==(uSn(),Put)?(hon(n,(hWn(),hlt),BB(mMn(i,hlt),11)),hon(n,flt,BB(mMn(i,flt),11)),hon(n,slt,TD(mMn(i,slt)))):i.k==Sut?(hon(n,(hWn(),hlt),BB(mMn(i,hlt),11)),hon(n,flt,BB(mMn(i,flt),11)),hon(n,slt,(hN(),!0))):r.k==Sut?(hon(n,(hWn(),hlt),BB(mMn(r,hlt),11)),hon(n,flt,BB(mMn(r,flt),11)),hon(n,slt,(hN(),!0))):(hon(n,(hWn(),hlt),t.c),hon(n,flt,e.d))}function EFn(n){var t,e,i,r,c,a,u;for(n.o=new Lp,i=new YT,a=new Wb(n.e.a);a.a<a.c.c.length;)1==kbn(c=BB(n0(a),121)).c.length&&r5(i,c,i.c.b,i.c);for(;0!=i.b;)0!=kbn(c=BB(0==i.b?null:(Px(0!=i.b),Atn(i,i.a.a)),121)).c.length&&(t=BB(xq(kbn(c),0),213),e=c.g.a.c.length>0,u=Nbn(t,c),KN(e?u.b:u.g,t),1==kbn(u).c.length&&r5(i,u,i.c.b,i.c),r=new rI(c,t),d3(n.o,r),y7(n.e.a,c))}function TFn(n,t){var i,r,c,a;return r=e.Math.abs(qz(n.b).a-qz(t.b).a),a=e.Math.abs(qz(n.b).b-qz(t.b).b),i=1,c=1,r>n.b.b/2+t.b.b/2&&(i=1-e.Math.min(e.Math.abs(n.b.c-(t.b.c+t.b.b)),e.Math.abs(n.b.c+n.b.b-t.b.c))/r),a>n.b.a/2+t.b.a/2&&(c=1-e.Math.min(e.Math.abs(n.b.d-(t.b.d+t.b.a)),e.Math.abs(n.b.d+n.b.a-t.b.d))/a),(1-e.Math.min(i,c))*e.Math.sqrt(r*r+a*a)}function MFn(n){var t,e,i;for(nUn(n,n.e,n.f,(dJ(),Lyt),!0,n.c,n.i),nUn(n,n.e,n.f,Lyt,!1,n.c,n.i),nUn(n,n.e,n.f,Nyt,!0,n.c,n.i),nUn(n,n.e,n.f,Nyt,!1,n.c,n.i),IFn(n,n.c,n.e,n.f,n.i),e=new M2(n.i,0);e.b<e.d.gc();)for(Px(e.b<e.d.gc()),t=BB(e.d.Xb(e.c=e.b++),128),i=new M2(n.i,e.b);i.b<i.d.gc();)Px(i.b<i.d.gc()),Nqn(t,BB(i.d.Xb(i.c=i.b++),128));IXn(n.i,BB(mMn(n.d,(hWn(),Slt)),230)),GGn(n.i)}function SFn(n,t){var e,i;if(null!=t)if(i=iyn(n)){if(0==(1&i.i))return nS(),!(e=BB(RX(mAt,i),55))||e.wj(t);if(i==$Nt)return zI(t);if(i==ANt)return cL(t,19);if(i==DNt)return cL(t,155);if(i==NNt)return cL(t,217);if(i==ONt)return cL(t,172);if(i==xNt)return UI(t);if(i==RNt)return cL(t,184);if(i==LNt)return cL(t,162)}else if(cL(t,56))return n.uk(BB(t,56));return!1}function PFn(){var n,t,e,i,r,c,a,u,o;for(PFn=O,WLt=x8(NNt,v6n,25,255,15,1),VLt=x8(ONt,WVn,25,64,15,1),t=0;t<255;t++)WLt[t]=-1;for(e=90;e>=65;e--)WLt[e]=e-65<<24>>24;for(i=122;i>=97;i--)WLt[i]=i-97+26<<24>>24;for(r=57;r>=48;r--)WLt[r]=r-48+52<<24>>24;for(WLt[43]=62,WLt[47]=63,c=0;c<=25;c++)VLt[c]=65+c&QVn;for(a=26,o=0;a<=51;++a,o++)VLt[a]=97+o&QVn;for(n=52,u=0;n<=61;++n,u++)VLt[n]=48+u&QVn;VLt[62]=43,VLt[63]=47}function CFn(n,t){var i,r,c,a,u,o,s,h,f,l,b;if(n.dc())return new Gj;for(s=0,f=0,r=n.Kc();r.Ob();)c=BB(r.Pb(),37).f,s=e.Math.max(s,c.a),f+=c.a*c.b;for(s=e.Math.max(s,e.Math.sqrt(f)*Gy(MD(mMn(BB(n.Kc().Pb(),37),(HXn(),Edt))))),l=0,b=0,o=0,i=t,u=n.Kc();u.Ob();)l+(h=(a=BB(u.Pb(),37)).f).a>s&&(l=0,b+=o+t,o=0),ZRn(a,l,b),i=e.Math.max(i,l+h.a),o=e.Math.max(o,h.b),l+=h.a+t;return new xC(i+t,b+o+t)}function IFn(n,t,e,i,r){var c,a,u,o,s,h,f;for(a=new Wb(t);a.a<a.c.c.length;){if(o=(c=BB(n0(a),17)).c,e.a._b(o))dJ(),s=Lyt;else{if(!i.a._b(o))throw Hp(new _y("Source port must be in one of the port sets."));dJ(),s=Nyt}if(h=c.d,e.a._b(h))dJ(),f=Lyt;else{if(!i.a._b(h))throw Hp(new _y("Target port must be in one of the port sets."));dJ(),f=Nyt}u=new tCn(c,s,f),VW(n.b,c,u),r.c[r.c.length]=u}}function OFn(n,t){var e,i,r,c,a,u,o;if(!WJ(n))throw Hp(new Fy(F5n));if(c=(i=WJ(n)).g,r=i.f,c<=0&&r<=0)return kUn(),PIt;switch(u=n.i,o=n.j,t.g){case 2:case 1:if(u<0)return kUn(),CIt;if(u+n.g>c)return kUn(),oIt;break;case 4:case 3:if(o<0)return kUn(),sIt;if(o+n.f>r)return kUn(),SIt}return(a=(u+n.g/2)/c)+(e=(o+n.f/2)/r)<=1&&a-e<=0?(kUn(),CIt):a+e>=1&&a-e>=0?(kUn(),oIt):e<.5?(kUn(),sIt):(kUn(),SIt)}function AFn(n,t,e,i,r){var c,a;if(c=rbn(e0(t[0],UQn),e0(i[0],UQn)),n[0]=dG(c),c=kz(c,32),e>=r){for(a=1;a<r;a++)c=rbn(c,rbn(e0(t[a],UQn),e0(i[a],UQn))),n[a]=dG(c),c=kz(c,32);for(;a<e;a++)c=rbn(c,e0(t[a],UQn)),n[a]=dG(c),c=kz(c,32)}else{for(a=1;a<e;a++)c=rbn(c,rbn(e0(t[a],UQn),e0(i[a],UQn))),n[a]=dG(c),c=kz(c,32);for(;a<r;a++)c=rbn(c,e0(i[a],UQn)),n[a]=dG(c),c=kz(c,32)}0!=Vhn(c,0)&&(n[a]=dG(c))}function $Fn(n){var t,e,i,r,c,a;if(wWn(),4!=n.e&&5!=n.e)throw Hp(new _y("Token#complementRanges(): must be RANGE: "+n.e));for(T$n(c=n),qHn(c),i=c.b.length+2,0==c.b[0]&&(i-=2),(e=c.b[c.b.length-1])==unt&&(i-=2),(r=new M0(4)).b=x8(ANt,hQn,25,i,15,1),a=0,c.b[0]>0&&(r.b[a++]=0,r.b[a++]=c.b[0]-1),t=1;t<c.b.length-2;t+=2)r.b[a++]=c.b[t]+1,r.b[a++]=c.b[t+1]-1;return e!=unt&&(r.b[a++]=e+1,r.b[a]=unt),r.a=!0,r}function LFn(n,t,e){var i,r,c,a,u,o,s,h;if(0==(i=e.gc()))return!1;if(n.ej())if(s=n.fj(),BTn(n,t,e),a=1==i?n.Zi(3,null,e.Kc().Pb(),t,s):n.Zi(5,null,e,t,s),n.bj()){for(u=i<100?null:new Fj(i),c=t+i,r=t;r<c;++r)h=n.g[r],u=n.cj(h,u),u=n.jj(h,u);u?(u.Ei(a),u.Fi()):n.$i(a)}else n.$i(a);else if(BTn(n,t,e),n.bj()){for(u=i<100?null:new Fj(i),c=t+i,r=t;r<c;++r)o=n.g[r],u=n.cj(o,u);u&&u.Fi()}return!0}function NFn(n,t,e,i){var r,c,a,u,o;for(a=new Wb(n.k);a.a<a.c.c.length;)r=BB(n0(a),129),i&&r.c!=(O6(),Tyt)||(o=r.b).g<0&&r.d>0&&(Vl(o,o.d-r.d),r.c==(O6(),Tyt)&&Xl(o,o.a-r.d),o.d<=0&&o.i>0&&r5(t,o,t.c.b,t.c));for(c=new Wb(n.f);c.a<c.c.c.length;)r=BB(n0(c),129),i&&r.c!=(O6(),Tyt)||(u=r.a).g<0&&r.d>0&&(Ql(u,u.i-r.d),r.c==(O6(),Tyt)&&Wl(u,u.b-r.d),u.i<=0&&u.d>0&&r5(e,u,e.c.b,e.c))}function xFn(n,t,e){var i,r,c,a,u,o,s,h;for(OTn(e,"Processor compute fanout",1),$U(n.b),$U(n.a),u=null,c=spn(t.b,0);!u&&c.b!=c.d.c;)qy(TD(mMn(s=BB(b3(c),86),(qqn(),dkt))))&&(u=s);for(r5(o=new YT,u,o.c.b,o.c),jUn(n,o),h=spn(t.b,0);h.b!=h.d.c;)a=SD(mMn(s=BB(b3(h),86),(qqn(),rkt))),r=null!=SJ(n.b,a)?BB(SJ(n.b,a),19).a:0,hon(s,ikt,iln(r)),i=1+(null!=SJ(n.a,a)?BB(SJ(n.a,a),19).a:0),hon(s,tkt,iln(i));HSn(e)}function DFn(n,t,e,i,r){var c,a,u,o,s,h,f,l,b;for(f=yEn(n,e),u=0;u<t;u++){for(yR(r,e),l=new Np,Px(i.b<i.d.gc()),b=BB(i.d.Xb(i.c=i.b++),407),s=f+u;s<n.b;s++)a=b,Px(i.b<i.d.gc()),WB(l,new Exn(a,b=BB(i.d.Xb(i.c=i.b++),407),e));for(h=f+u;h<n.b;h++)Px(i.b>0),i.a.Xb(i.c=--i.b),h>f+u&&fW(i);for(c=new Wb(l);c.a<c.c.c.length;)yR(i,BB(n0(c),407));if(u<t-1)for(o=f+u;o<n.b;o++)Px(i.b>0),i.a.Xb(i.c=--i.b)}}function RFn(){var n,t,e,i,r,c;if(wWn(),CNt)return CNt;for(sHn(n=new M0(4),ZUn(pnt,!0)),WGn(n,ZUn("M",!0)),WGn(n,ZUn("C",!0)),c=new M0(4),i=0;i<11;i++)Yxn(c,i,i);return sHn(t=new M0(4),ZUn("M",!0)),Yxn(t,4448,4607),Yxn(t,65438,65439),tqn(r=new r$(2),n),tqn(r,sNt),(e=new r$(2)).$l(gG(c,ZUn("L",!0))),e.$l(t),e=new h4(3,e),e=new UU(r,e),CNt=e}function KFn(n){var t,e;if(!Ycn(t=SD(ZAn(n,(sWn(),eSt))),n)&&!P8(n,mPt)&&(0!=(!n.a&&(n.a=new eU(UOt,n,10,11)),n.a).i||qy(TD(ZAn(n,SSt))))){if(null!=t&&0!=RMn(t).length)throw gzn(n,e=oO(oO(new lN("Layout algorithm '"),t),"' not found for ")),Hp(new rk(e.a));if(!Ycn(w1n,n))throw gzn(n,e=oO(oO(new lN("Unable to load default layout algorithm "),w1n)," for unconfigured node ")),Hp(new rk(e.a))}}function _Fn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w;if(i=n.i,t=n.n,0==n.b)for(w=i.c+t.b,b=i.b-t.b-t.c,s=0,f=(u=n.a).length;s<f;++s)UG(c=u[s],w,b);else r=Wvn(n,!1),UG(n.a[0],i.c+t.b,r[0]),UG(n.a[2],i.c+i.b-t.c-r[2],r[2]),l=i.b-t.b-t.c,r[0]>0&&(l-=r[0]+n.c,r[0]+=n.c),r[2]>0&&(l-=r[2]+n.c),r[1]=e.Math.max(r[1],l),UG(n.a[1],i.c+t.b+r[0]-(r[1]-l)/2,r[1]);for(o=0,h=(a=n.a).length;o<h;++o)cL(c=a[o],326)&&BB(c,326).Te()}function FFn(n){var t,e,i,r,c,a,u,o,s,h,f;for((f=new aa).d=0,a=new Wb(n.b);a.a<a.c.c.length;)c=BB(n0(a),29),f.d+=c.a.c.length;for(i=0,r=0,f.a=x8(ANt,hQn,25,n.b.c.length,15,1),s=0,h=0,f.e=x8(ANt,hQn,25,f.d,15,1),e=new Wb(n.b);e.a<e.c.c.length;)for((t=BB(n0(e),29)).p=i++,f.a[t.p]=r++,h=0,o=new Wb(t.a);o.a<o.c.c.length;)(u=BB(n0(o),10)).p=s++,f.e[u.p]=h++;return f.c=new fg(f),f.b=sx(f.d),H_n(f,n),f.f=sx(f.d),q_n(f,n),f}function BFn(n,t){var i,r,c;for(c=BB(xq(n.n,n.n.c.length-1),211).d,n.p=e.Math.min(n.p,t.g),n.r=e.Math.max(n.r,c),n.g=e.Math.max(n.g,t.g+(1==n.b.c.length?0:n.i)),n.o=e.Math.min(n.o,t.f),n.e+=t.f+(1==n.b.c.length?0:n.i),n.f=e.Math.max(n.f,t.f),r=n.n.c.length>0?(n.n.c.length-1)*n.i:0,i=new Wb(n.n);i.a<i.c.c.length;)r+=BB(n0(i),211).a;n.d=r,n.a=n.e/n.b.c.length-n.i*((n.b.c.length-1)/n.b.c.length),yyn(n.j)}function HFn(n,t){var e,i,r,c,a,u,o,s,h;if(null==(s=TD(mMn(t,(fRn(),iat))))||(kW(s),s)){for(h=x8($Nt,ZYn,25,t.e.c.length,16,1),a=kOn(t),r=new YT,o=new Wb(t.e);o.a<o.c.c.length;)(e=Y$n(n,BB(n0(o),144),null,null,h,a))&&(qan(e,t),r5(r,e,r.c.b,r.c));if(r.b>1)for(i=spn(r,0);i.b!=i.d.c;)for(c=0,u=new Wb((e=BB(b3(i),231)).e);u.a<u.c.c.length;)BB(n0(u),144).b=c++;return r}return u6(Pun(Gk(Kct,1),tZn,231,0,[t]))}function qFn(n){var t,e,i,r,c;if(!n.g){if(c=new To,null==(t=P$t).a.zc(n,t)){for(e=new AL(kY(n));e.e!=e.i.gc();)pX(c,qFn(BB(kpn(e),26)));t.a.Bc(n),t.a.gc()}for(i=c.i,!n.s&&(n.s=new eU(FAt,n,21,17)),r=new AL(n.s);r.e!=r.i.gc();++i)ub(BB(kpn(r),449),i);pX(c,(!n.s&&(n.s=new eU(FAt,n,21,17)),n.s)),chn(c),n.g=new don(n,c),n.i=BB(c.g,247),null==n.i&&(n.i=I$t),n.p=null,P5(n).b&=-5}return n.g}function GFn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w;if(r=n.i,i=n.n,0==n.b)t=Xvn(n,!1),XG(n.a[0],r.d+i.d,t[0]),XG(n.a[2],r.d+r.a-i.a-t[2],t[2]),l=r.a-i.d-i.a,t[0]>0&&(t[0]+=n.c,l-=t[0]),t[2]>0&&(l-=t[2]+n.c),t[1]=e.Math.max(t[1],l),XG(n.a[1],r.d+i.d+t[0]-(t[1]-l)/2,t[1]);else for(w=r.d+i.d,b=r.a-i.d-i.a,s=0,f=(u=n.a).length;s<f;++s)XG(c=u[s],w,b);for(o=0,h=(a=n.a).length;o<h;++o)cL(c=a[o],326)&&BB(c,326).Ue()}function zFn(n){var t,e,i,r,c,a,u,o,s;for(s=x8(ANt,hQn,25,n.b.c.length+1,15,1),o=new Rv,i=0,c=new Wb(n.b);c.a<c.c.c.length;){for(r=BB(n0(c),29),s[i++]=o.a.gc(),u=new Wb(r.a);u.a<u.c.c.length;)for(e=new oz(ZL(lbn(BB(n0(u),10)).a.Kc(),new h));dAn(e);)t=BB(U5(e),17),o.a.zc(t,o);for(a=new Wb(r.a);a.a<a.c.c.length;)for(e=new oz(ZL(fbn(BB(n0(a),10)).a.Kc(),new h));dAn(e);)t=BB(U5(e),17),o.a.Bc(t)}return s}function UFn(n,t,e,i){var r,c,a,u,o;if(o=axn(n.e.Tg(),t),r=BB(n.g,119),ZM(),BB(t,66).Oj()){for(a=0;a<n.i;++a)if(c=r[a],o.rl(c.ak())&&Nfn(c,e))return!0}else if(null!=e){for(u=0;u<n.i;++u)if(c=r[u],o.rl(c.ak())&&Nfn(e,c.dd()))return!0;if(i)for(a=0;a<n.i;++a)if(c=r[a],o.rl(c.ak())&&GI(e)===GI(hD(n,BB(c.dd(),56))))return!0}else for(a=0;a<n.i;++a)if(c=r[a],o.rl(c.ak())&&null==c.dd())return!1;return!1}function XFn(n,t,e,i){var r,c,a,u,o,s;if(s=axn(n.e.Tg(),t),a=BB(n.g,119),$xn(n.e,t)){if(t.hi()&&(c=pBn(n,t,i,cL(t,99)&&0!=(BB(t,18).Bb&BQn)))>=0&&c!=e)throw Hp(new _y(a8n));for(r=0,o=0;o<n.i;++o)if(u=a[o],s.rl(u.ak())){if(r==e)return BB(ovn(n,o,(ZM(),BB(t,66).Oj()?BB(i,72):Z3(t,i))),72);++r}throw Hp(new Ay(e9n+e+o8n+r))}for(o=0;o<n.i;++o)if(u=a[o],s.rl(u.ak()))return ZM(),BB(t,66).Oj()?u:u.dd();return null}function WFn(n,t,i,r){var c,a,u,o;for(o=i,u=new Wb(t.a);u.a<u.c.c.length;){if(a=BB(n0(u),221),c=BB(a.b,65),Ibn(n.b.c,c.b.c+c.b.b)<=0&&Ibn(c.b.c,n.b.c+n.b.b)<=0&&Ibn(n.b.d,c.b.d+c.b.a)<=0&&Ibn(c.b.d,n.b.d+n.b.a)<=0){if(0==Ibn(c.b.c,n.b.c+n.b.b)&&r.a<0||0==Ibn(c.b.c+c.b.b,n.b.c)&&r.a>0||0==Ibn(c.b.d,n.b.d+n.b.a)&&r.b<0||0==Ibn(c.b.d+c.b.a,n.b.d)&&r.b>0){o=0;break}}else o=e.Math.min(o,HCn(n,c,r));o=e.Math.min(o,WFn(n,a,o,r))}return o}function VFn(n,t){var e,i,r,c,a,u;if(n.b<2)throw Hp(new _y("The vector chain must contain at least a source and a target point."));for(Px(0!=n.b),CA(t,(i=BB(n.a.a.c,8)).a,i.b),u=new cx((!t.a&&(t.a=new $L(xOt,t,5)),t.a)),c=spn(n,1);c.a<n.b-1;)a=BB(b3(c),8),u.e!=u.i.gc()?e=BB(kpn(u),469):(tE(),odn(u,e=new ro)),TA(e,a.a,a.b);for(;u.e!=u.i.gc();)kpn(u),Qjn(u);Px(0!=n.b),PA(t,(r=BB(n.c.b.c,8)).a,r.b)}function QFn(n,t){var e,i,r,c,a,u,o,s;for(e=0,i=new Wb((l1(0,n.c.length),BB(n.c[0],101)).g.b.j);i.a<i.c.c.length;)BB(n0(i),11).p=e++;for(t==(kUn(),sIt)?m$(n,new nc):m$(n,new tc),a=0,s=n.c.length-1;a<s;)l1(a,n.c.length),c=BB(n.c[a],101),l1(s,n.c.length),o=BB(n.c[s],101),r=t==sIt?c.c:c.a,u=t==sIt?o.a:o.c,bU(c,t,(Oun(),yst),r),bU(o,t,mst,u),++a,--s;a==s&&bU((l1(a,n.c.length),BB(n.c[a],101)),t,(Oun(),vst),null)}function YFn(n,t,e){var i,r,c,a,u,o,s,h,f,l;return h=n.a.i+n.a.g/2,f=n.a.i+n.a.g/2,a=new xC(t.i+t.g/2,t.j+t.f/2),(o=BB(ZAn(t,(sWn(),gPt)),8)).a=o.a+h,o.b=o.b+f,r=(a.b-o.b)/(a.a-o.a),i=a.b-r*a.a,u=new xC(e.i+e.g/2,e.j+e.f/2),(s=BB(ZAn(e,gPt),8)).a=s.a+h,s.b=s.b+f,c=(u.b-s.b)/(u.a-s.a),l=(i-(u.b-c*u.a))/(c-r),!(o.a<l&&a.a<l||l<o.a&&l<a.a||s.a<l&&u.a<l||l<s.a&&l<u.a)}function JFn(n,t){var e,i,r,c,a,u;if(!(a=BB(RX(n.c,t),183)))throw Hp(new ek("Edge did not exist in input."));return i=Qdn(a),!WE((!t.a&&(t.a=new eU(FOt,t,6,6)),t.a))&&(e=new MB(n,i,u=new Cl),wO((!t.a&&(t.a=new eU(FOt,t,6,6)),t.a),e),rtn(a,x6n,u)),P8(t,(sWn(),OSt))&&!(!(r=BB(ZAn(t,OSt),74))||pW(r))&&(e5(r,new Qg(c=new Cl)),rtn(a,"junctionPoints",c)),AH(a,"container",XJ(t).k),null}function ZFn(n,t,e){var i,r,c,a,u,o;this.a=n,this.b=t,this.c=e,this.e=u6(Pun(Gk(uit,1),HWn,168,0,[new xS(n,t),new xS(t,e),new xS(e,n)])),this.f=u6(Pun(Gk(PMt,1),sVn,8,0,[n,t,e])),this.d=(i=XR(B$(this.b),this.a),r=XR(B$(this.c),this.a),c=XR(B$(this.c),this.b),a=i.a*(this.a.a+this.b.a)+i.b*(this.a.b+this.b.b),u=r.a*(this.a.a+this.c.a)+r.b*(this.a.b+this.c.b),o=2*(i.a*c.b-i.b*c.a),new xC((r.b*a-i.b*u)/o,(i.a*u-r.a*a)/o))}function nBn(n,t,e,i){var r,c,a,u,o,s,h,f,l;if(f=new GX(n.p),rtn(t,t8n,f),e&&!(n.f?rY(n.f):null).a.dc())for(rtn(t,"logs",s=new Cl),u=0,l=new qb((n.f?rY(n.f):null).b.Kc());l.b.Ob();)h=new GX(SD(l.b.Pb())),dnn(s,u),r4(s,u,h),++u;if(i&&rtn(t,"executionTime",new Sl(n.q)),!rY(n.a).a.dc())for(a=new Cl,rtn(t,A6n,a),u=0,c=new qb(rY(n.a).b.Kc());c.b.Ob();)r=BB(c.b.Pb(),1949),o=new py,dnn(a,u),r4(a,u,o),nBn(r,o,e,i),++u}function tBn(n,t){var e,i,r,c,a,u;for(c=n.c,a=n.d,SZ(n,null),MZ(n,null),t&&qy(TD(mMn(a,(hWn(),tlt))))?SZ(n,R_n(a.i,(ain(),qvt),(kUn(),oIt))):SZ(n,a),t&&qy(TD(mMn(c,(hWn(),klt))))?MZ(n,R_n(c.i,(ain(),Hvt),(kUn(),CIt))):MZ(n,c),i=new Wb(n.b);i.a<i.c.c.length;)e=BB(n0(i),70),(r=BB(mMn(e,(HXn(),Ydt)),272))==(Rtn(),XPt)?hon(e,Ydt,UPt):r==UPt&&hon(e,Ydt,XPt);u=qy(TD(mMn(n,(hWn(),Clt)))),hon(n,Clt,(hN(),!u)),n.a=Jon(n.a)}function eBn(n,t,i){var r,c,a,u,o;for(r=0,a=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));a.e!=a.i.gc();)u="",0==(!(c=BB(kpn(a),33)).n&&(c.n=new eU(zOt,c,1,7)),c.n).i||(u=BB(Wtn((!c.n&&(c.n=new eU(zOt,c,1,7)),c.n),0),137).a),qan(o=new qX(u),c),hon(o,(Mrn(),sat),c),o.b=r++,o.d.a=c.i+c.g/2,o.d.b=c.j+c.f/2,o.e.a=e.Math.max(c.g,1),o.e.b=e.Math.max(c.f,1),WB(t.e,o),jCn(i.f,c,o),BB(ZAn(c,(fRn(),Yct)),98),QEn()}function iBn(n,t){var i,r,c,a,u,o,s,h,f,l,b;i=AN(new qv,n.f),o=n.i[t.c.i.p],l=n.i[t.d.i.p],u=t.c,f=t.d,a=u.a.b,h=f.a.b,o.b||(a+=u.n.b),l.b||(h+=f.n.b),s=CJ(e.Math.max(0,a-h)),c=CJ(e.Math.max(0,h-a)),b=e.Math.max(1,BB(mMn(t,(HXn(),bpt)),19).a)*X3(t.c.i.k,t.d.i.k),r=new nC(UNn(aM(cM(rM(uM(new Hv,b),c),i),BB(RX(n.k,t.c),121))),UNn(aM(cM(rM(uM(new Hv,b),s),i),BB(RX(n.k,t.d),121)))),n.c[t.p]=r}function rBn(n,t,e,i){var r,c,a,u,o,s;for(a=new uGn(n,t,e),o=new M2(i,0),r=!1;o.b<o.d.gc();)Px(o.b<o.d.gc()),(u=BB(o.d.Xb(o.c=o.b++),233))==t||u==e?fW(o):!r&&Gy(lL(u.g,u.d[0]).a)>Gy(lL(a.g,a.d[0]).a)?(Px(o.b>0),o.a.Xb(o.c=--o.b),yR(o,a),r=!0):u.e&&u.e.gc()>0&&(c=(!u.e&&(u.e=new Np),u.e).Mc(t),s=(!u.e&&(u.e=new Np),u.e).Mc(e),(c||s)&&((!u.e&&(u.e=new Np),u.e).Fc(a),++a.c));r||(i.c[i.c.length]=a)}function cBn(n){var t,e,i;if(vA(BB(mMn(n,(HXn(),ept)),98)))for(e=new Wb(n.j);e.a<e.c.c.length;)(t=BB(n0(e),11)).j==(kUn(),PIt)&&((i=BB(mMn(t,(hWn(),Elt)),10))?qCn(t,BB(mMn(i,Qft),61)):t.e.c.length-t.g.c.length<0?qCn(t,oIt):qCn(t,CIt));else{for(e=new Wb(n.j);e.a<e.c.c.length;)t=BB(n0(e),11),(i=BB(mMn(t,(hWn(),Elt)),10))?qCn(t,BB(mMn(i,Qft),61)):t.e.c.length-t.g.c.length<0?qCn(t,(kUn(),oIt)):qCn(t,(kUn(),CIt));hon(n,ept,(QEn(),VCt))}}function aBn(n){var t,e;switch(n){case 91:case 93:case 45:case 94:case 44:case 92:e="\\"+String.fromCharCode(n&QVn);break;case 12:e="\\f";break;case 10:e="\\n";break;case 13:e="\\r";break;case 9:e="\\t";break;case 27:e="\\e";break;default:e=n<32?"\\x"+fx(t="0"+(n>>>0).toString(16),t.length-2,t.length):n>=BQn?"\\v"+fx(t="0"+(n>>>0).toString(16),t.length-6,t.length):""+String.fromCharCode(n&QVn)}return e}function uBn(n,t){var e,i,r,c,a,u,o,s,h,f;if(a=n.e,0==(o=t.e))return n;if(0==a)return 0==t.e?t:new lU(-t.e,t.d,t.a);if((c=n.d)+(u=t.d)==2)return e=e0(n.a[0],UQn),i=e0(t.a[0],UQn),a<0&&(e=j7(e)),o<0&&(i=j7(i)),npn(ibn(e,i));if(-1==(r=c!=u?c>u?1:-1:Msn(n.a,t.a,c)))f=-o,h=a==o?d6(t.a,u,n.a,c):N8(t.a,u,n.a,c);else if(f=a,a==o){if(0==r)return ODn(),eet;h=d6(n.a,c,t.a,u)}else h=N8(n.a,c,t.a,u);return X0(s=new lU(f,h.length,h)),s}function oBn(n){var t,e,i,r,c,a;for(this.e=new Np,this.a=new Np,e=n.b-1;e<3;e++)Kx(n,0,BB(Dpn(n,0),8));if(n.b<4)throw Hp(new _y("At (least dimension + 1) control points are necessary!"));for(this.b=3,this.d=!0,this.c=!1,I$n(this,n.b+this.b-1),a=new Np,c=new Wb(this.e),t=0;t<this.b-1;t++)WB(a,MD(n0(c)));for(r=spn(n,0);r.b!=r.d.c;)i=BB(b3(r),8),WB(a,MD(n0(c))),WB(this.a,new wJ(i,a)),l1(0,a.c.length),a.c.splice(0,1)}function sBn(n,t){var e,i,r,c,a,u,o;for(r=new Wb(n.b);r.a<r.c.c.length;)for(a=new Wb(BB(n0(r),29).a);a.a<a.c.c.length;)for((c=BB(n0(a),10)).k==(uSn(),Sut)&&(u=BB(U5(new oz(ZL(fbn(c).a.Kc(),new h))),17),o=BB(U5(new oz(ZL(lbn(c).a.Kc(),new h))),17),hFn(c,qy(TD(mMn(u,(hWn(),Clt))))&&qy(TD(mMn(o,Clt)))?Xun(t):t)),i=new oz(ZL(lbn(c).a.Kc(),new h));dAn(i);)vun(e=BB(U5(i),17),qy(TD(mMn(e,(hWn(),Clt))))?Xun(t):t)}function hBn(n,t,e,i,r){var c,a;if(e.f>=t.o&&e.f<=t.f||.5*t.a<=e.f&&1.5*t.a>=e.f){if((c=BB(xq(t.n,t.n.c.length-1),211)).e+c.d+e.g+r<=i&&(BB(xq(t.n,t.n.c.length-1),211).f-n.f+e.f<=n.b||1==n.a.c.length))return ybn(t,e),!0;if(t.s+e.g<=i&&(t.t+t.d+e.f+r<=n.b||1==n.a.c.length))return WB(t.b,e),a=BB(xq(t.n,t.n.c.length-1),211),WB(t.n,new RJ(t.s,a.f+a.a+t.i,t.i)),smn(BB(xq(t.n,t.n.c.length-1),211),e),BFn(t,e),!0}return!1}function fBn(n,t,e){var i,r,c,a;return n.ej()?(r=null,c=n.fj(),i=n.Zi(1,a=onn(n,t,e),e,t,c),n.bj()&&!(n.ni()&&null!=a?Nfn(a,e):GI(a)===GI(e))?(null!=a&&(r=n.dj(a,r)),r=n.cj(e,r),n.ij()&&(r=n.lj(a,e,r)),r?(r.Ei(i),r.Fi()):n.$i(i)):(n.ij()&&(r=n.lj(a,e,r)),r?(r.Ei(i),r.Fi()):n.$i(i)),a):(a=onn(n,t,e),n.bj()&&!(n.ni()&&null!=a?Nfn(a,e):GI(a)===GI(e))&&(r=null,null!=a&&(r=n.dj(a,null)),(r=n.cj(e,r))&&r.Fi()),a)}function lBn(n,t){var i,r,c,a,u,o,s;t%=24,n.q.getHours()!=t&&((i=new e.Date(n.q.getTime())).setDate(i.getDate()+1),(u=n.q.getTimezoneOffset()-i.getTimezoneOffset())>0&&(o=u/60|0,s=u%60,r=n.q.getDate(),n.q.getHours()+o>=24&&++r,c=new e.Date(n.q.getFullYear(),n.q.getMonth(),r,t+o,n.q.getMinutes()+s,n.q.getSeconds(),n.q.getMilliseconds()),n.q.setTime(c.getTime()))),a=n.q.getTime(),n.q.setTime(a+36e5),n.q.getHours()!=t&&n.q.setTime(a)}function bBn(n,t){var e,i,r,c;if(OTn(t,"Path-Like Graph Wrapping",1),0!=n.b.c.length)if(null==(r=new MAn(n)).i&&(r.i=Wrn(r,new kc)),e=Gy(r.i)*r.f/(null==r.i&&(r.i=Wrn(r,new kc)),Gy(r.i)),r.b>e)HSn(t);else{switch(BB(mMn(n,(HXn(),Bpt)),337).g){case 2:c=new Tc;break;case 0:c=new wc;break;default:c=new Mc}if(i=c.Vf(n,r),!c.Wf())switch(BB(mMn(n,Xpt),338).g){case 2:i=XCn(r,i);break;case 1:i=KTn(r,i)}iqn(n,r,i),HSn(t)}else HSn(t)}function wBn(n,t){var e,i,r,c;if(f1(n.d,n.e),n.c.a.$b(),0!=Gy(MD(mMn(t.j,(HXn(),Idt))))||0!=Gy(MD(mMn(t.j,Idt))))for(e=ZJn,GI(mMn(t.j,Ldt))!==GI((mon(),Nvt))&&hon(t.j,(hWn(),Jft),(hN(),!0)),c=BB(mMn(t.j,xpt),19).a,r=0;r<c&&!((i=gFn(n,t))<e&&(e=i,Lrn(n),0==e));r++);else for(e=DWn,GI(mMn(t.j,Ldt))!==GI((mon(),Nvt))&&hon(t.j,(hWn(),Jft),(hN(),!0)),c=BB(mMn(t.j,xpt),19).a,r=0;r<c&&!((i=pFn(n,t))<e&&(e=i,Lrn(n),0==e));r++);}function dBn(n,t){var e,i,r,c,a,u;for(r=new Np,c=0,e=0,a=0;c<t.c.length-1&&e<n.gc();){for(i=BB(n.Xb(e),19).a+a;(l1(c+1,t.c.length),BB(t.c[c+1],19)).a<i;)++c;for(u=0,i-(l1(c,t.c.length),BB(t.c[c],19)).a>(l1(c+1,t.c.length),BB(t.c[c+1],19)).a-i&&++u,WB(r,(l1(c+u,t.c.length),BB(t.c[c+u],19))),a+=(l1(c+u,t.c.length),BB(t.c[c+u],19)).a-i,++e;e<n.gc()&&BB(n.Xb(e),19).a+a<=(l1(c+u,t.c.length),BB(t.c[c+u],19)).a;)++e;c+=1+u}return r}function gBn(n){var t,e,i,r,c;if(!n.d){if(c=new Po,null==(t=P$t).a.zc(n,t)){for(e=new AL(kY(n));e.e!=e.i.gc();)pX(c,gBn(BB(kpn(e),26)));t.a.Bc(n),t.a.gc()}for(r=c.i,!n.q&&(n.q=new eU(QAt,n,11,10)),i=new AL(n.q);i.e!=i.i.gc();++r)BB(kpn(i),399);pX(c,(!n.q&&(n.q=new eU(QAt,n,11,10)),n.q)),chn(c),n.d=new NO((BB(Wtn(QQ((QX(),t$t).o),9),18),c.i),c.g),n.e=BB(c.g,673),null==n.e&&(n.e=C$t),P5(n).b&=-17}return n.d}function pBn(n,t,e,i){var r,c,a,u,o,s;if(s=axn(n.e.Tg(),t),o=0,r=BB(n.g,119),ZM(),BB(t,66).Oj()){for(a=0;a<n.i;++a)if(c=r[a],s.rl(c.ak())){if(Nfn(c,e))return o;++o}}else if(null!=e){for(u=0;u<n.i;++u)if(c=r[u],s.rl(c.ak())){if(Nfn(e,c.dd()))return o;++o}if(i)for(o=0,a=0;a<n.i;++a)if(c=r[a],s.rl(c.ak())){if(GI(e)===GI(hD(n,BB(c.dd(),56))))return o;++o}}else for(a=0;a<n.i;++a)if(c=r[a],s.rl(c.ak())){if(null==c.dd())return o;++o}return-1}function vBn(n,t,e,i,r){var c,a,u,o,s,h,f,l,b;for(SQ(),m$(n,new zu),a=zB(n),b=new Np,l=new Np,u=null,o=0;0!=a.b;)c=BB(0==a.b?null:(Px(0!=a.b),Atn(a,a.a.a)),157),!u||iG(u)*eG(u)/2<iG(c)*eG(c)?(u=c,b.c[b.c.length]=c):(o+=iG(c)*eG(c),l.c[l.c.length]=c,l.c.length>1&&(o>iG(u)*eG(u)/2||0==a.b)&&(f=new Gtn(l),h=iG(u)/eG(u),s=yXn(f,t,new bm,e,i,r,h),UR(kO(f.e),s),u=f,b.c[b.c.length]=f,o=0,l.c=x8(Ant,HWn,1,0,5,1)));return gun(b,l),b}function mBn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d;if(e.mh(t)&&(h=(b=t)?BB(i,49).xh(b):null))if(d=e.bh(t,n.a),(w=t.t)>1||-1==w)if(f=BB(d,69),l=BB(h,69),f.dc())l.$b();else for(a=!!Cvn(t),c=0,u=n.a?f.Kc():f.Zh();u.Ob();)s=BB(u.Pb(),56),(r=BB(lnn(n,s),56))?(a?-1==(o=l.Xc(r))?l.Xh(c,r):c!=o&&l.ji(c,r):l.Xh(c,r),++c):n.b&&!a&&(l.Xh(c,s),++c);else null==d?h.Wb(null):null==(r=lnn(n,d))?n.b&&!Cvn(t)&&h.Wb(d):h.Wb(r)}function yBn(n,t){var i,r,c,a,u,o,s,f;for(i=new Le,c=new oz(ZL(fbn(t).a.Kc(),new h));dAn(c);)if(!b5(r=BB(U5(c),17))&&eTn(o=r.c.i,Xut)){if(-1==(f=VDn(n,o,Xut,Uut)))continue;i.b=e.Math.max(i.b,f),!i.a&&(i.a=new Np),WB(i.a,o)}for(u=new oz(ZL(lbn(t).a.Kc(),new h));dAn(u);)if(!b5(a=BB(U5(u),17))&&eTn(s=a.d.i,Uut)){if(-1==(f=VDn(n,s,Uut,Xut)))continue;i.d=e.Math.max(i.d,f),!i.c&&(i.c=new Np),WB(i.c,s)}return i}function kBn(n){var t,e,i,r;if($On(),t=CJ(n),n<uet.length)return uet[t];if(n<=50)return uOn((ODn(),net),t);if(n<=VVn)return G5(uOn(aet[1],t),t);if(n>1e6)throw Hp(new Oy("power of ten too big"));if(n<=DWn)return G5(uOn(aet[1],t),t);for(r=i=uOn(aet[1],DWn),e=fan(n-DWn),t=CJ(n%DWn);Vhn(e,DWn)>0;)r=Nnn(r,i),e=ibn(e,DWn);for(r=G5(r=Nnn(r,uOn(aet[1],t)),DWn),e=fan(n-DWn);Vhn(e,DWn)>0;)r=G5(r,DWn),e=ibn(e,DWn);return r=G5(r,t)}function jBn(n,t){var e,i,r,c,a,u,o,s;for(OTn(t,"Hierarchical port dummy size processing",1),u=new Np,s=new Np,e=2*Gy(MD(mMn(n,(HXn(),kpt)))),r=new Wb(n.b);r.a<r.c.c.length;){for(i=BB(n0(r),29),u.c=x8(Ant,HWn,1,0,5,1),s.c=x8(Ant,HWn,1,0,5,1),a=new Wb(i.a);a.a<a.c.c.length;)(c=BB(n0(a),10)).k==(uSn(),Mut)&&((o=BB(mMn(c,(hWn(),Qft)),61))==(kUn(),sIt)?u.c[u.c.length]=c:o==SIt&&(s.c[s.c.length]=c));HOn(u,!0,e),HOn(s,!1,e)}HSn(t)}function EBn(n,t){var e,i,r,c,a;OTn(t,"Layer constraint postprocessing",1),0!=(a=n.b).c.length&&(l1(0,a.c.length),_Kn(n,BB(a.c[0],29),BB(xq(a,a.c.length-1),29),e=new HX(n),r=new HX(n)),0==e.a.c.length||(LZ(0,a.c.length),MS(a.c,0,e)),0==r.a.c.length||(a.c[a.c.length]=r)),Lx(n,(hWn(),nlt))&&(yDn(n,i=new HX(n),c=new HX(n)),0==i.a.c.length||(LZ(0,a.c.length),MS(a.c,0,i)),0==c.a.c.length||(a.c[a.c.length]=c)),HSn(t)}function TBn(n){var t,e,i,r,c,a,u,o;for(a=new Wb(n.a);a.a<a.c.c.length;)if((c=BB(n0(a),10)).k==(uSn(),Mut)&&((r=BB(mMn(c,(hWn(),Qft)),61))==(kUn(),oIt)||r==CIt))for(i=new oz(ZL(hbn(c).a.Kc(),new h));dAn(i);)0!=(t=(e=BB(U5(i),17)).a).b&&((u=e.c).i==c&&(Px(0!=t.b),BB(t.a.a.c,8).b=Aon(Pun(Gk(PMt,1),sVn,8,0,[u.i.n,u.n,u.a])).b),(o=e.d).i==c&&(Px(0!=t.b),BB(t.c.b.c,8).b=Aon(Pun(Gk(PMt,1),sVn,8,0,[o.i.n,o.n,o.a])).b))}function MBn(n,t){var e,i,r,c,a,u,o;for(OTn(t,"Sort By Input Model "+mMn(n,(HXn(),Ldt)),1),r=0,i=new Wb(n.b);i.a<i.c.c.length;){for(e=BB(n0(i),29),o=0==r?0:r-1,u=BB(xq(n.b,o),29),a=new Wb(e.a);a.a<a.c.c.length;)GI(mMn(c=BB(n0(a),10),ept))!==GI((QEn(),UCt))&&GI(mMn(c,ept))!==GI(XCt)&&(SQ(),m$(c.j,new O7(u,okn(c))),OH(t,"Node "+c+" ports: "+c.j));SQ(),m$(e.a,new Grn(u,BB(mMn(n,Ldt),339),BB(mMn(n,Adt),378))),OH(t,"Layer "+r+": "+e),++r}HSn(t)}function SBn(n,t){var e,i,r;if(r=kFn(t),JT(new Rq(null,(!t.c&&(t.c=new eU(XOt,t,9,9)),new w1(t.c,16))),new Uw(r)),uzn(t,i=BB(mMn(r,(hWn(),Zft)),21)),i.Hc((bDn(),lft)))for(e=new AL((!t.c&&(t.c=new eU(XOt,t,9,9)),t.c));e.e!=e.i.gc();)Qzn(n,t,r,BB(kpn(e),118));return 0!=BB(ZAn(t,(HXn(),Fgt)),174).gc()&&mDn(t,r),qy(TD(mMn(r,Xgt)))&&i.Fc(pft),Lx(r,gpt)&&My(new uwn(Gy(MD(mMn(r,gpt)))),r),GI(ZAn(t,sgt))===GI((ufn(),pCt))?cWn(n,t,r):eXn(n,t,r),r}function PBn(n,t,i,r){var c,a,u;if(this.j=new Np,this.k=new Np,this.b=new Np,this.c=new Np,this.e=new bA,this.i=new km,this.f=new Dp,this.d=new Np,this.g=new Np,WB(this.b,n),WB(this.b,t),this.e.c=e.Math.min(n.a,t.a),this.e.d=e.Math.min(n.b,t.b),this.e.b=e.Math.abs(n.a-t.a),this.e.a=e.Math.abs(n.b-t.b),c=BB(mMn(r,(HXn(),vgt)),74))for(u=spn(c,0);u.b!=u.d.c;)aen((a=BB(b3(u),8)).a,n.a)&&DH(this.i,a);i&&WB(this.j,i),WB(this.k,r)}function CBn(n,t,e){var i,r,c,a,u,o,s,h,f,l;for(h=new Xz(new xw(e)),vU(u=x8($Nt,ZYn,25,n.f.e.c.length,16,1),u.length),e[t.b]=0,s=new Wb(n.f.e);s.a<s.c.c.length;)(o=BB(n0(s),144)).b!=t.b&&(e[o.b]=DWn),F8(eMn(h,o));for(;0!=h.b.c.length;)for(u[(f=BB(mnn(h),144)).b]=!0,c=vN(new mT(n.b,f),0);c.c;)u[(l=$mn(r=BB(EZ(c),282),f)).b]||(a=Lx(r,(rkn(),pat))?Gy(MD(mMn(r,pat))):n.c,(i=e[f.b]+a)<e[l.b]&&(e[l.b]=i,srn(h,l),F8(eMn(h,l))))}function IBn(n,t,e){var i,r,c,a,u,o,s,h,f;for(r=!0,a=new Wb(n.b);a.a<a.c.c.length;){for(c=BB(n0(a),29),s=KQn,h=null,o=new Wb(c.a);o.a<o.c.c.length;){if(u=BB(n0(o),10),f=Gy(t.p[u.p])+Gy(t.d[u.p])-u.d.d,i=Gy(t.p[u.p])+Gy(t.d[u.p])+u.o.b+u.d.a,!(f>s&&i>s)){r=!1,e.n&&OH(e,"bk node placement breaks on "+u+" which should have been after "+h);break}h=u,s=Gy(t.p[u.p])+Gy(t.d[u.p])+u.o.b+u.d.a}if(!r)break}return e.n&&OH(e,t+" is feasible: "+r),r}function OBn(n,t,e,i){var r,c,a,u,o,s,h;for(u=-1,h=new Wb(n);h.a<h.c.c.length;)(s=BB(n0(h),112)).g=u--,a=r=dG(E2(NV(AV(new Rq(null,new w1(s.f,16)),new sa),new ha)).d),o=c=dG(E2(NV(AV(new Rq(null,new w1(s.k,16)),new fa),new la)).d),i||(a=dG(E2(NV(new Rq(null,new w1(s.f,16)),new ba)).d),o=dG(E2(NV(new Rq(null,new w1(s.k,16)),new wa)).d)),s.d=a,s.a=r,s.i=o,s.b=c,0==o?r5(e,s,e.c.b,e.c):0==a&&r5(t,s,t.c.b,t.c)}function ABn(n,t,e,i){var r,c,a,u,o,s,h;if(e.d.i!=t.i){for(Bl(r=new $vn(n),(uSn(),Put)),hon(r,(hWn(),dlt),e),hon(r,(HXn(),ept),(QEn(),XCt)),i.c[i.c.length]=r,CZ(a=new CSn,r),qCn(a,(kUn(),CIt)),CZ(u=new CSn,r),qCn(u,oIt),h=e.d,MZ(e,a),qan(c=new wY,e),hon(c,vgt,null),SZ(c,u),MZ(c,h),s=new M2(e.b,0);s.b<s.d.gc();)Px(s.b<s.d.gc()),GI(mMn(o=BB(s.d.Xb(s.c=s.b++),70),Ydt))===GI((Rtn(),UPt))&&(hon(o,Uft,e),fW(s),WB(c.b,o));yAn(r,a,u)}}function $Bn(n,t,e,i){var r,c,a,u,o,s;if(e.c.i!=t.i)for(Bl(r=new $vn(n),(uSn(),Put)),hon(r,(hWn(),dlt),e),hon(r,(HXn(),ept),(QEn(),XCt)),i.c[i.c.length]=r,CZ(a=new CSn,r),qCn(a,(kUn(),CIt)),CZ(u=new CSn,r),qCn(u,oIt),MZ(e,a),qan(c=new wY,e),hon(c,vgt,null),SZ(c,u),MZ(c,t),yAn(r,a,u),s=new M2(e.b,0);s.b<s.d.gc();)Px(s.b<s.d.gc()),o=BB(s.d.Xb(s.c=s.b++),70),BB(mMn(o,Ydt),272)==(Rtn(),UPt)&&(Lx(o,Uft)||hon(o,Uft,e),fW(s),WB(c.b,o))}function LBn(n,t,i,r,c){var a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(l=new Np,p=S4(r),g=t*n.a,w=0,a=new Rv,u=new Rv,o=new Np,v=0,m=0,b=0,d=0,h=0,f=0;0!=p.a.gc();)(s=tbn(p,c,u))&&(p.a.Bc(s),o.c[o.c.length]=s,a.a.zc(s,a),w=n.f[s.p],v+=n.e[s.p]-w*n.b,m+=n.c[s.p]*n.b,f+=w*n.b,d+=n.e[s.p]),(!s||0==p.a.gc()||v>=g&&n.e[s.p]>w*n.b||m>=i*g)&&(l.c[l.c.length]=o,o=new Np,Frn(u,a),a.a.$b(),h-=f,b=e.Math.max(b,h*n.b+d),h+=m,v=m,m=0,f=0,d=0);return new rI(b,l)}function NBn(n){var t,e,i,r,c,a,u,o,s,h,f,l;for(e=new Kb(new Ob(n.c.b).a.vc().Kc());e.a.Ob();)u=BB(e.a.Pb(),42),null==(r=(t=BB(u.dd(),149)).a)&&(r=""),!(i=_D(n.c,r))&&0==r.length&&(i=yfn(n)),i&&!ywn(i.c,t,!1)&&DH(i.c,t);for(a=spn(n.a,0);a.b!=a.d.c;)c=BB(b3(a),478),s=T5(n.c,c.a),l=T5(n.c,c.b),s&&l&&DH(s.c,new rI(l,c.c));for(yQ(n.a),f=spn(n.b,0);f.b!=f.d.c;)h=BB(b3(f),478),t=KD(n.c,h.a),o=T5(n.c,h.b),t&&o&&DM(t,o,h.c);yQ(n.b)}function xBn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;c=new Pl(n),d5((a=new dkn).g),d5(a.j),$U(a.b),d5(a.d),d5(a.i),$U(a.k),$U(a.c),$U(a.e),b=bIn(a,c,null),O$n(a,c),r=b,t&&(u=eHn(s=new Pl(t)),vSn(r,Pun(Gk(nMt,1),HWn,527,0,[u]))),l=!1,f=!1,e&&(s=new Pl(e),l8n in s.a&&(l=zJ(s,l8n).ge().a),b8n in s.a&&(f=zJ(s,b8n).ge().a)),h=$j(Fen(new Xm,l),f),BSn(new su,r,h),l8n in c.a&&rtn(c,l8n,null),(l||f)&&(nBn(h,o=new py,l,f),rtn(c,l8n,o)),i=new Xg(a),Uon(new OA(r),i)}function DBn(n,t,e){var i,r,c,a,u,o,s,h,f;for(a=new Ykn,s=Pun(Gk(ANt,1),hQn,25,15,[0]),r=-1,c=0,i=0,o=0;o<n.b.c.length;++o){if(!((h=BB(xq(n.b,o),434)).b>0)){if(r=-1,32==fV(h.c,0)){if(f=s[0],ynn(t,s),s[0]>f)continue}else if($Y(t,h.c,s[0])){s[0]+=h.c.length;continue}return 0}if(r<0&&h.a&&(r=o,c=s[0],i=0),r>=0){if(u=h.b,o==r&&0==(u-=i++))return 0;if(!LUn(t,s,h,u,a)){o=r-1,s[0]=c;continue}}else if(r=-1,!LUn(t,s,h,0,a))return 0}return dUn(a,e)?s[0]:0}function RBn(n){var t,e,i,r,c,a;if(!n.f){if(a=new Mo,c=new Mo,null==(t=P$t).a.zc(n,t)){for(r=new AL(kY(n));r.e!=r.i.gc();)pX(a,RBn(BB(kpn(r),26)));t.a.Bc(n),t.a.gc()}for(!n.s&&(n.s=new eU(FAt,n,21,17)),i=new AL(n.s);i.e!=i.i.gc();)cL(e=BB(kpn(i),170),99)&&f9(c,BB(e,18));chn(c),n.r=new TH(n,(BB(Wtn(QQ((QX(),t$t).o),6),18),c.i),c.g),pX(a,n.r),chn(a),n.f=new NO((BB(Wtn(QQ(t$t.o),5),18),a.i),a.g),P5(n).b&=-3}return n.f}function KBn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w;for(a=n.o,i=x8(ANt,hQn,25,a,15,1),r=x8(ANt,hQn,25,a,15,1),e=n.p,t=x8(ANt,hQn,25,e,15,1),c=x8(ANt,hQn,25,e,15,1),s=0;s<a;s++){for(f=0;f<e&&!vmn(n,s,f);)++f;i[s]=f}for(h=0;h<a;h++){for(f=e-1;f>=0&&!vmn(n,h,f);)--f;r[h]=f}for(b=0;b<e;b++){for(u=0;u<a&&!vmn(n,u,b);)++u;t[b]=u}for(w=0;w<e;w++){for(u=a-1;u>=0&&!vmn(n,u,w);)--u;c[w]=u}for(o=0;o<a;o++)for(l=0;l<e;l++)o<c[l]&&o>t[l]&&l<r[o]&&l>i[o]&&FRn(n,o,l,!1,!0)}function _Bn(n){var t,e,i,r,c,a,u,o;e=qy(TD(mMn(n,(fRn(),Bct)))),c=n.a.c.d,u=n.a.d.d,e?(a=kL(XR(new xC(u.a,u.b),c),.5),o=kL(B$(n.e),.5),t=XR(UR(new xC(c.a,c.b),a),o),Hx(n.d,t)):(r=Gy(MD(mMn(n.a,rat))),i=n.d,c.a>=u.a?c.b>=u.b?(i.a=u.a+(c.a-u.a)/2+r,i.b=u.b+(c.b-u.b)/2-r-n.e.b):(i.a=u.a+(c.a-u.a)/2+r,i.b=c.b+(u.b-c.b)/2+r):c.b>=u.b?(i.a=c.a+(u.a-c.a)/2+r,i.b=u.b+(c.b-u.b)/2+r):(i.a=c.a+(u.a-c.a)/2+r,i.b=c.b+(u.b-c.b)/2-r-n.e.b))}function FBn(n,t){var e,i,r,c,a,u,o;if(null==n)return null;if(0==(c=n.length))return"";for(o=x8(ONt,WVn,25,c,15,1),_8(0,c,n.length),_8(0,c,o.length),YU(n,0,c,o,0),e=null,u=t,r=0,a=0;r<c;r++)i=o[r],EWn(),i<=32&&0!=(2&JLt[i])?u?(!e&&(e=new fN(n)),aY(e,r-a++)):(u=t,32!=i&&(!e&&(e=new fN(n)),sV(e,r-a,r-a+1,String.fromCharCode(32)))):u=!1;return u?e?(c=e.a.length)>0?fx(e.a,0,c-1):"":n.substr(0,c-1):e?e.a:n}function BBn(n){NM(n,new MTn(vj(wj(pj(gj(new du,UJn),"ELK DisCo"),"Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."),new at))),u2(n,UJn,XJn,mpn(Ect)),u2(n,UJn,WJn,mpn(pct)),u2(n,UJn,VJn,mpn(lct)),u2(n,UJn,QJn,mpn(vct)),u2(n,UJn,XYn,mpn(kct)),u2(n,UJn,WYn,mpn(yct)),u2(n,UJn,UYn,mpn(jct)),u2(n,UJn,VYn,mpn(mct)),u2(n,UJn,BJn,mpn(wct)),u2(n,UJn,HJn,mpn(bct)),u2(n,UJn,qJn,mpn(dct)),u2(n,UJn,GJn,mpn(gct))}function HBn(n,t,e,i){var r,c,a,u,o,s,h;if(Bl(c=new $vn(n),(uSn(),Iut)),hon(c,(HXn(),ept),(QEn(),XCt)),r=0,t){for(hon(a=new CSn,(hWn(),dlt),t),hon(c,dlt,t.i),qCn(a,(kUn(),CIt)),CZ(a,c),s=0,h=(o=Z0(t.e)).length;s<h;++s)MZ(o[s],a);hon(t,Elt,c),++r}if(e){for(u=new CSn,hon(c,(hWn(),dlt),e.i),hon(u,dlt,e),qCn(u,(kUn(),oIt)),CZ(u,c),s=0,h=(o=Z0(e.g)).length;s<h;++s)SZ(o[s],u);hon(e,Elt,c),++r}return hon(c,(hWn(),Bft),iln(r)),i.c[i.c.length]=c,c}function qBn(){qBn=O,OOt=Pun(Gk(ONt,1),WVn,25,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]),AOt=new RegExp("[ \t\n\r\f]+");try{IOt=Pun(Gk(D$t,1),HWn,2015,0,[new vp((s$(),sdn("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",fR((fk(),fk(),rtt))))),new vp(sdn("yyyy-MM-dd'T'HH:mm:ss'.'SSS",fR(rtt))),new vp(sdn("yyyy-MM-dd'T'HH:mm:ss",fR(rtt))),new vp(sdn("yyyy-MM-dd'T'HH:mm",fR(rtt))),new vp(sdn("yyyy-MM-dd",fR(rtt)))])}catch(n){if(!cL(n=lun(n),78))throw Hp(n)}}function GBn(n){var t,i,r,c;if(r=qXn((!n.c&&(n.c=yhn(n.f)),n.c),0),0==n.e||0==n.a&&-1!=n.f&&n.e<0)return r;if(t=iin(n)<0?1:0,i=n.e,r.length,e.Math.abs(CJ(n.e)),c=new Ik,1==t&&(c.a+="-"),n.e>0)if((i-=r.length-t)>=0){for(c.a+="0.";i>qtt.length;i-=qtt.length)Nq(c,qtt);gR(c,qtt,CJ(i)),oO(c,r.substr(t))}else oO(c,fx(r,t,CJ(i=t-i))),c.a+=".",oO(c,nO(r,CJ(i)));else{for(oO(c,r.substr(t));i<-qtt.length;i+=qtt.length)Nq(c,qtt);gR(c,qtt,CJ(-i))}return c.a}function zBn(n,t,i,r){var c,a,u,o,s,h,f,l,b;return h=(s=XR(new xC(i.a,i.b),n)).a*t.b-s.b*t.a,f=t.a*r.b-t.b*r.a,l=(s.a*r.b-s.b*r.a)/f,b=h/f,0==f?0==h?(a=W8(n,c=UR(new xC(i.a,i.b),kL(new xC(r.a,r.b),.5))),u=W8(UR(new xC(n.a,n.b),t),c),o=.5*e.Math.sqrt(r.a*r.a+r.b*r.b),a<u&&a<=o?new xC(n.a,n.b):u<=o?UR(new xC(n.a,n.b),t):null):null:l>=0&&l<=1&&b>=0&&b<=1?UR(new xC(n.a,n.b),kL(new xC(t.a,t.b),l)):null}function UBn(n,t,e){var i,r,c,a,u;if(i=BB(mMn(n,(HXn(),Ndt)),21),e.a>t.a&&(i.Hc((wEn(),WMt))?n.c.a+=(e.a-t.a)/2:i.Hc(QMt)&&(n.c.a+=e.a-t.a)),e.b>t.b&&(i.Hc((wEn(),JMt))?n.c.b+=(e.b-t.b)/2:i.Hc(YMt)&&(n.c.b+=e.b-t.b)),BB(mMn(n,(hWn(),Zft)),21).Hc((bDn(),lft))&&(e.a>t.a||e.b>t.b))for(u=new Wb(n.a);u.a<u.c.c.length;)(a=BB(n0(u),10)).k==(uSn(),Mut)&&((r=BB(mMn(a,Qft),61))==(kUn(),oIt)?a.n.a+=e.a-t.a:r==SIt&&(a.n.b+=e.b-t.b));c=n.d,n.f.a=e.a-c.b-c.c,n.f.b=e.b-c.d-c.a}function XBn(n,t,e){var i,r,c,a,u;if(i=BB(mMn(n,(HXn(),Ndt)),21),e.a>t.a&&(i.Hc((wEn(),WMt))?n.c.a+=(e.a-t.a)/2:i.Hc(QMt)&&(n.c.a+=e.a-t.a)),e.b>t.b&&(i.Hc((wEn(),JMt))?n.c.b+=(e.b-t.b)/2:i.Hc(YMt)&&(n.c.b+=e.b-t.b)),BB(mMn(n,(hWn(),Zft)),21).Hc((bDn(),lft))&&(e.a>t.a||e.b>t.b))for(a=new Wb(n.a);a.a<a.c.c.length;)(c=BB(n0(a),10)).k==(uSn(),Mut)&&((r=BB(mMn(c,Qft),61))==(kUn(),oIt)?c.n.a+=e.a-t.a:r==SIt&&(c.n.b+=e.b-t.b));u=n.d,n.f.a=e.a-u.b-u.c,n.f.b=e.b-u.d-u.a}function WBn(n){var t,i,r,c,a,u,o,s,h,f;for(s=new Ib(new Cb(xOn(n)).a.vc().Kc());s.a.Ob();){for(r=BB(s.a.Pb(),42),h=0,f=0,h=(o=BB(r.cd(),10)).d.d,f=o.o.b+o.d.a,n.d[o.p]=0,t=o;(c=n.a[t.p])!=o;)i=Mgn(t,c),u=0,u=n.c==(gJ(),nyt)?i.d.n.b+i.d.a.b-i.c.n.b-i.c.a.b:i.c.n.b+i.c.a.b-i.d.n.b-i.d.a.b,a=Gy(n.d[t.p])+u,n.d[c.p]=a,h=e.Math.max(h,c.d.d-a),f=e.Math.max(f,a+c.o.b+c.d.a),t=c;t=o;do{n.d[t.p]=Gy(n.d[t.p])+h,t=n.a[t.p]}while(t!=o);n.b[o.p]=h+f}}function VBn(n){var t,i,r,c,a,u,o,s,h,f,l;for(n.b=!1,f=RQn,o=KQn,l=RQn,s=KQn,i=n.e.a.ec().Kc();i.Ob();)for(r=(t=BB(i.Pb(),266)).a,f=e.Math.min(f,r.c),o=e.Math.max(o,r.c+r.b),l=e.Math.min(l,r.d),s=e.Math.max(s,r.d+r.a),a=new Wb(t.c);a.a<a.c.c.length;)(c=BB(n0(a),395)).a.a?(u=(h=r.d+c.b.b)+c.c,l=e.Math.min(l,h),s=e.Math.max(s,u)):(u=(h=r.c+c.b.a)+c.c,f=e.Math.min(f,h),o=e.Math.max(o,u));n.a=new xC(o-f,s-l),n.c=new xC(f+n.d.a,l+n.d.b)}function QBn(n,t,e){var i,r,c,a,u,o,s,h;for(h=new Np,c=0,tin(s=new x0(0,e),new asn(0,0,s,e)),r=0,o=new AL(n);o.e!=o.i.gc();)u=BB(kpn(o),33),i=BB(xq(s.a,s.a.c.length-1),187),r+u.g+(0==BB(xq(s.a,0),187).b.c.length?0:e)>t&&(r=0,c+=s.b+e,h.c[h.c.length]=s,tin(s=new x0(c,e),i=new asn(0,s.f,s,e)),r=0),0==i.b.c.length||u.f>=i.o&&u.f<=i.f||.5*i.a<=u.f&&1.5*i.a>=u.f?ybn(i,u):(tin(s,a=new asn(i.s+i.r+e,s.f,s,e)),ybn(a,u)),r=u.i+u.g;return h.c[h.c.length]=s,h}function YBn(n){var t,e,i,r,c,a;if(!n.a){if(n.o=null,a=new gp(n),t=new So,null==(e=P$t).a.zc(n,e)){for(c=new AL(kY(n));c.e!=c.i.gc();)pX(a,YBn(BB(kpn(c),26)));e.a.Bc(n),e.a.gc()}for(!n.s&&(n.s=new eU(FAt,n,21,17)),r=new AL(n.s);r.e!=r.i.gc();)cL(i=BB(kpn(r),170),322)&&f9(t,BB(i,34));chn(t),n.k=new EH(n,(BB(Wtn(QQ((QX(),t$t).o),7),18),t.i),t.g),pX(a,n.k),chn(a),n.a=new NO((BB(Wtn(QQ(t$t.o),4),18),a.i),a.g),P5(n).b&=-2}return n.a}function JBn(n,t,e,i,r,c,a){var u,o,s,h,f;return h=!1,u=dNn(e.q,t.f+t.b-e.q.f),!((f=r-(e.q.e+u-a))<i.g)&&(o=c==n.c.length-1&&f>=(l1(c,n.c.length),BB(n.c[c],200)).e,!((s=cHn(i,f,!1).a)>t.b&&!o)&&((o||s<=t.b)&&(o&&s>t.b?(e.d=s,p9(e,FSn(e,s))):(aEn(e.q,u),e.c=!0),p9(i,r-(e.s+e.r)),Tvn(i,e.q.e+e.q.d,t.f),tin(t,i),n.c.length>c&&(Tkn((l1(c,n.c.length),BB(n.c[c],200)),i),0==(l1(c,n.c.length),BB(n.c[c],200)).a.c.length&&s6(n,c)),h=!0),h))}function ZBn(n,t,e,i){var r,c,a,u,o,s,h;if(h=axn(n.e.Tg(),t),r=0,c=BB(n.g,119),o=null,ZM(),BB(t,66).Oj()){for(u=0;u<n.i;++u)if(a=c[u],h.rl(a.ak())){if(Nfn(a,e)){o=a;break}++r}}else if(null!=e){for(u=0;u<n.i;++u)if(a=c[u],h.rl(a.ak())){if(Nfn(e,a.dd())){o=a;break}++r}}else for(u=0;u<n.i;++u)if(a=c[u],h.rl(a.ak())){if(null==a.dd()){o=a;break}++r}return o&&(mA(n.e)&&(s=t.$j()?new b4(n.e,4,t,e,null,r,!0):LY(n,t.Kj()?2:1,t,e,t.zj(),-1,!0),i?i.Ei(s):i=s),i=TKn(n,o,i)),i}function nHn(n,t,i,r,c,a,u){var o,s,h,f,l,b,w,d;switch(w=0,d=0,s=c.c,o=c.b,f=i.f,b=i.g,t.g){case 0:w=r.i+r.g+u,d=n.c?gTn(w,a,r,u):r.j,l=e.Math.max(s,w+b),h=e.Math.max(o,d+f);break;case 1:d=r.j+r.f+u,w=n.c?dTn(d,a,r,u):r.i,l=e.Math.max(s,w+b),h=e.Math.max(o,d+f);break;case 2:w=s+u,d=0,l=s+u+b,h=e.Math.max(o,f);break;case 3:w=0,d=o+u,l=e.Math.max(s,b),h=o+u+f;break;default:throw Hp(new _y("IllegalPlacementOption."))}return new awn(n.a,l,h,t,w,d)}function tHn(n){var t,i,r,c,a,u,o,s,h,f,l,b;if(o=n.d,l=BB(mMn(n,(hWn(),Klt)),15),t=BB(mMn(n,Dft),15),l||t){if(a=Gy(MD(edn(n,(HXn(),ppt)))),u=Gy(MD(edn(n,vpt))),b=0,l){for(h=0,c=l.Kc();c.Ob();)r=BB(c.Pb(),10),h=e.Math.max(h,r.o.b),b+=r.o.a;b+=a*(l.gc()-1),o.d+=h+u}if(i=0,t){for(h=0,c=t.Kc();c.Ob();)r=BB(c.Pb(),10),h=e.Math.max(h,r.o.b),i+=r.o.a;i+=a*(t.gc()-1),o.a+=h+u}(s=e.Math.max(b,i))>n.o.a&&(f=(s-n.o.a)/2,o.b=e.Math.max(o.b,f),o.c=e.Math.max(o.c,f))}}function eHn(n){var t,e,i,r,c,a;for(cA(r=new R0,(Nun(),JTt)),i=new Sb(new Jy(new TT(n,jrn(n,x8(Qtt,sVn,2,0,6,1))).b));i.b<i.d.gc();)Px(i.b<i.d.gc()),e=SD(i.d.Xb(i.c=i.b++)),(c=pGn(lAt,e))&&null!=(a=Zqn(c,(t=zJ(n,e)).je()?t.je().a:t.ge()?""+t.ge().a:t.he()?""+t.he().a:t.Ib()))&&((SN(c.j,(rpn(),sMt))||SN(c.j,hMt))&&son(Ynn(r,UOt),c,a),SN(c.j,uMt)&&son(Ynn(r,_Ot),c,a),SN(c.j,fMt)&&son(Ynn(r,XOt),c,a),SN(c.j,oMt)&&son(Ynn(r,zOt),c,a));return r}function iHn(n,t,e,i){var r,c,a,u,o,s;if(o=axn(n.e.Tg(),t),c=BB(n.g,119),$xn(n.e,t)){for(r=0,u=0;u<n.i;++u)if(a=c[u],o.rl(a.ak())){if(r==e)return ZM(),BB(t,66).Oj()?a:(null!=(s=a.dd())&&i&&cL(t,99)&&0!=(BB(t,18).Bb&BQn)&&(s=FIn(n,t,u,r,s)),s);++r}throw Hp(new Ay(e9n+e+o8n+r))}for(r=0,u=0;u<n.i;++u){if(a=c[u],o.rl(a.ak()))return ZM(),BB(t,66).Oj()?a:(null!=(s=a.dd())&&i&&cL(t,99)&&0!=(BB(t,18).Bb&BQn)&&(s=FIn(n,t,u,r,s)),s);++r}return t.zj()}function rHn(n,t,e){var i,r,c,a,u,o,s,h;if(r=BB(n.g,119),$xn(n.e,t))return ZM(),BB(t,66).Oj()?new lq(t,n):new xI(t,n);for(s=axn(n.e.Tg(),t),i=0,u=0;u<n.i;++u){if(a=(c=r[u]).ak(),s.rl(a)){if(ZM(),BB(t,66).Oj())return c;if(a==(TOn(),lLt)||a==sLt){for(o=new lN(Bbn(c.dd()));++u<n.i;)((a=(c=r[u]).ak())==lLt||a==sLt)&&oO(o,Bbn(c.dd()));return gK(BB(t.Yj(),148),o.a)}return null!=(h=c.dd())&&e&&cL(t,99)&&0!=(BB(t,18).Bb&BQn)&&(h=FIn(n,t,u,i,h)),h}++i}return t.zj()}function cHn(n,t,i){var r,c,a,u,o,s,h,f,l,b;for(a=0,u=n.t,c=0,r=0,s=0,b=0,l=0,i&&(n.n.c=x8(Ant,HWn,1,0,5,1),WB(n.n,new RJ(n.s,n.t,n.i))),o=0,f=new Wb(n.b);f.a<f.c.c.length;)a+(h=BB(n0(f),33)).g+(o>0?n.i:0)>t&&s>0&&(a=0,u+=s+n.i,c=e.Math.max(c,b),r+=s+n.i,s=0,b=0,i&&(++l,WB(n.n,new RJ(n.s,u,n.i))),o=0),b+=h.g+(o>0?n.i:0),s=e.Math.max(s,h.f),i&&smn(BB(xq(n.n,l),211),h),a+=h.g+(o>0?n.i:0),++o;return c=e.Math.max(c,b),r+=s,i&&(n.r=c,n.d=r,yyn(n.j)),new UV(n.s,n.t,c,r)}function aHn(n,t,e,i,r){var c,a,u,o,s,h,f,l,b;if($T(),SU(n,"src"),SU(e,"dest"),l=tsn(n),o=tsn(e),pH(0!=(4&l.i),"srcType is not an array"),pH(0!=(4&o.i),"destType is not an array"),f=l.c,a=o.c,pH(0!=(1&f.i)?f==a:0==(1&a.i),"Array types don't match"),b=n.length,s=e.length,t<0||i<0||r<0||t+r>b||i+r>s)throw Hp(new fv);if(0==(1&f.i)&&l!=o)if(h=een(n),c=een(e),GI(n)===GI(e)&&t<i)for(t+=r,u=i+r;u-- >i;)$X(c,u,h[--t]);else for(u=i+r;i<u;)$X(c,i++,h[t++]);else r>0&&_Cn(n,t,e,i,r,!0)}function uHn(){uHn=O,ret=Pun(Gk(ANt,1),hQn,25,15,[_Vn,1162261467,OVn,1220703125,362797056,1977326743,OVn,387420489,AQn,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,128e7,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729e6,887503681,OVn,1291467969,1544804416,1838265625,60466176]),cet=Pun(Gk(ANt,1),hQn,25,15,[-1,-1,31,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])}function oHn(n){var t,e,i,r,c,a,u;for(i=new Wb(n.b);i.a<i.c.c.length;)for(c=new Wb(a0(BB(n0(i),29).a));c.a<c.c.c.length;)if(Znn(r=BB(n0(c),10))&&!(e=BB(mMn(r,(hWn(),Rft)),305)).g&&e.d)for(t=e,u=e.d;u;)eRn(u.i,u.k,!1,!0),A7(t.a),A7(u.i),A7(u.k),A7(u.b),MZ(u.c,t.c.d),MZ(t.c,null),PZ(t.a,null),PZ(u.i,null),PZ(u.k,null),PZ(u.b,null),(a=new v3(t.i,u.a,t.e,u.j,u.f)).k=t.k,a.n=t.n,a.b=t.b,a.c=u.c,a.g=t.g,a.d=u.d,hon(t.i,Rft,a),hon(u.a,Rft,a),u=u.d,t=a}function sHn(n,t){var e,i,r,c,a;if(a=BB(t,136),T$n(n),T$n(a),null!=a.b){if(n.c=!0,null==n.b)return n.b=x8(ANt,hQn,25,a.b.length,15,1),void aHn(a.b,0,n.b,0,a.b.length);for(c=x8(ANt,hQn,25,n.b.length+a.b.length,15,1),e=0,i=0,r=0;e<n.b.length||i<a.b.length;)e>=n.b.length?(c[r++]=a.b[i++],c[r++]=a.b[i++]):i>=a.b.length?(c[r++]=n.b[e++],c[r++]=n.b[e++]):a.b[i]<n.b[e]||a.b[i]===n.b[e]&&a.b[i+1]<n.b[e+1]?(c[r++]=a.b[i++],c[r++]=a.b[i++]):(c[r++]=n.b[e++],c[r++]=n.b[e++]);n.b=c}}function hHn(n,t){var e,i,r,c,a,u,o,s,h,f;return e=qy(TD(mMn(n,(hWn(),slt)))),u=qy(TD(mMn(t,slt))),i=BB(mMn(n,hlt),11),o=BB(mMn(t,hlt),11),r=BB(mMn(n,flt),11),s=BB(mMn(t,flt),11),h=!!i&&i==o,f=!!r&&r==s,e||u?(c=(!qy(TD(mMn(n,slt)))||qy(TD(mMn(n,olt))))&&(!qy(TD(mMn(t,slt)))||qy(TD(mMn(t,olt)))),a=!(qy(TD(mMn(n,slt)))&&qy(TD(mMn(n,olt)))||qy(TD(mMn(t,slt)))&&qy(TD(mMn(t,olt)))),new R_(h&&c||f&&a,h,f)):new R_(BB(n0(new Wb(n.j)),11).p==BB(n0(new Wb(t.j)),11).p,h,f)}function fHn(n){var t,i,r,c,a,u,o,s;for(r=0,i=0,s=new YT,t=0,o=new Wb(n.n);o.a<o.c.c.length;)0==(u=BB(n0(o),211)).c.c.length?r5(s,u,s.c.b,s.c):(r=e.Math.max(r,u.d),i+=u.a+(t>0?n.i:0)),++t;for(nwn(n.n,s),n.d=i,n.r=r,n.g=0,n.f=0,n.e=0,n.o=RQn,n.p=RQn,a=new Wb(n.b);a.a<a.c.c.length;)c=BB(n0(a),33),n.p=e.Math.min(n.p,c.g),n.g=e.Math.max(n.g,c.g),n.f=e.Math.max(n.f,c.f),n.o=e.Math.min(n.o,c.f),n.e+=c.f+n.i;n.a=n.e/n.b.c.length-n.i*((n.b.c.length-1)/n.b.c.length),yyn(n.j)}function lHn(n){var t,e,i,r;return 0!=(64&n.Db)?Yln(n):(t=new lN(V5n),(i=n.k)?oO(oO((t.a+=' "',t),i),'"'):(!n.n&&(n.n=new eU(zOt,n,1,7)),n.n.i>0&&(!(r=(!n.n&&(n.n=new eU(zOt,n,1,7)),BB(Wtn(n.n,0),137)).a)||oO(oO((t.a+=' "',t),r),'"'))),!n.b&&(n.b=new hK(KOt,n,4,7)),e=!(n.b.i<=1&&(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c.i<=1)),t.a+=e?" [":" ",oO(t,JL(new mk,new AL(n.b))),e&&(t.a+="]"),t.a+=e1n,e&&(t.a+="["),oO(t,JL(new mk,new AL(n.c))),e&&(t.a+="]"),t.a)}function bHn(n,t){var e,i,r,c,a,u,o;if(n.a){if(o=null,null!=(u=n.a.ne())?t.a+=""+u:null!=(a=n.a.Dj())&&(-1!=(c=GO(a,YTn(91)))?(o=a.substr(c),t.a+=""+fx(null==a?zWn:(kW(a),a),0,c)):t.a+=""+a),n.d&&0!=n.d.i){for(r=!0,t.a+="<",i=new AL(n.d);i.e!=i.i.gc();)e=BB(kpn(i),87),r?r=!1:t.a+=FWn,bHn(e,t);t.a+=">"}null!=o&&(t.a+=""+o)}else n.e?null!=(u=n.e.zb)&&(t.a+=""+u):(t.a+="?",n.b?(t.a+=" super ",bHn(n.b,t)):n.f&&(t.a+=" extends ",bHn(n.f,t)))}function wHn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M;for(y=n.c,k=t.c,e=E7(y.a,n,0),i=E7(k.a,t,0),v=BB(xwn(n,(ain(),Hvt)).Kc().Pb(),11),T=BB(xwn(n,qvt).Kc().Pb(),11),m=BB(xwn(t,Hvt).Kc().Pb(),11),M=BB(xwn(t,qvt).Kc().Pb(),11),g=Z0(v.e),j=Z0(T.g),p=Z0(m.e),E=Z0(M.g),Qyn(n,i,k),s=0,b=(c=p).length;s<b;++s)MZ(c[s],v);for(h=0,w=(a=E).length;h<w;++h)SZ(a[h],T);for(Qyn(t,e,y),f=0,d=(u=g).length;f<d;++f)MZ(u[f],m);for(o=0,l=(r=j).length;o<l;++o)SZ(r[o],M)}function dHn(n,t,e,i){var r,c,a,u,o,s;if(c=Wln(i),!qy(TD(mMn(i,(HXn(),Igt))))&&!qy(TD(mMn(n,bgt)))||vA(BB(mMn(n,ept),98)))switch(CZ(u=new CSn,n),t?((s=u.n).a=t.a-n.n.a,s.b=t.b-n.n.b,WSn(s,0,0,n.o.a,n.o.b),qCn(u,z_n(u,c))):(r=hwn(c),qCn(u,e==(ain(),qvt)?r:Tln(r))),a=BB(mMn(i,(hWn(),Zft)),21),o=u.j,c.g){case 2:case 1:(o==(kUn(),sIt)||o==SIt)&&a.Fc((bDn(),gft));break;case 4:case 3:(o==(kUn(),oIt)||o==CIt)&&a.Fc((bDn(),gft))}else r=hwn(c),u=R_n(n,e,e==(ain(),qvt)?r:Tln(r));return u}function gHn(n,t,i){var r,c,a,u,o,s,h;return e.Math.abs(t.s-t.c)<lZn||e.Math.abs(i.s-i.c)<lZn?0:(r=WNn(n,t.j,i.e),c=WNn(n,i.j,t.e),a=0,-1==r||-1==c?(-1==r&&(new zZ((O6(),Tyt),i,t,1),++a),-1==c&&(new zZ((O6(),Tyt),t,i,1),++a)):(u=Tfn(t.j,i.s,i.c),u+=Tfn(i.e,t.s,t.c),o=Tfn(i.j,t.s,t.c),(s=r+16*u)<(h=c+16*(o+=Tfn(t.e,i.s,i.c)))?new zZ((O6(),Myt),t,i,h-s):s>h?new zZ((O6(),Myt),i,t,s-h):s>0&&h>0&&(new zZ((O6(),Myt),t,i,0),new zZ(Myt,i,t,0))),a)}function pHn(n,t){var i,r,c,a,u;for(u=new usn(new Pb(n.f.b).a);u.b;){if(c=BB((a=ten(u)).cd(),594),1==t){if(c.gf()!=(Ffn(),HPt)&&c.gf()!=KPt)continue}else if(c.gf()!=(Ffn(),_Pt)&&c.gf()!=FPt)continue;switch(r=BB(BB(a.dd(),46).b,81),i=BB(BB(a.dd(),46).a,189).c,c.gf().g){case 2:r.g.c=n.e.a,r.g.b=e.Math.max(1,r.g.b+i);break;case 1:r.g.c=r.g.c+i,r.g.b=e.Math.max(1,r.g.b-i);break;case 4:r.g.d=n.e.b,r.g.a=e.Math.max(1,r.g.a+i);break;case 3:r.g.d=r.g.d+i,r.g.a=e.Math.max(1,r.g.a-i)}}}function vHn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(o=x8(ANt,hQn,25,t.b.c.length,15,1),h=x8($ut,$Vn,267,t.b.c.length,0,1),s=x8(Out,a1n,10,t.b.c.length,0,1),b=0,w=(l=n.a).length;b<w;++b){for(g=0,u=new Wb((f=l[b]).e);u.a<u.c.c.length;)++o[r=tA((c=BB(n0(u),10)).c)],d=Gy(MD(mMn(t,(HXn(),ypt)))),o[r]>0&&s[r]&&(d=K$(n.b,s[r],c)),g=e.Math.max(g,c.c.c.b+d);for(a=new Wb(f.e);a.a<a.c.c.length;)(c=BB(n0(a),10)).n.b=g+c.d.d,(i=c.c).c.b=g+c.d.d+c.o.b+c.d.a,h[E7(i.b.b,i,0)]=c.k,s[E7(i.b.b,i,0)]=c}}function mHn(n,t){var e,i,r,c,a,u,o,s,f,l,b;for(i=new oz(ZL(dLn(t).a.Kc(),new h));dAn(i);)cL(Wtn((!(e=BB(U5(i),79)).b&&(e.b=new hK(KOt,e,4,7)),e.b),0),186)||(o=PTn(BB(Wtn((!e.c&&(e.c=new hK(KOt,e,5,8)),e.c),0),82)),nAn(e)||(a=t.i+t.g/2,u=t.j+t.f/2,f=o.i+o.g/2,l=o.j+o.f/2,(b=new Gj).a=f-a,b.b=l-u,Ukn(c=new xC(b.a,b.b),t.g,t.f),b.a-=c.a,b.b-=c.b,a=f-b.a,u=l-b.b,Ukn(s=new xC(b.a,b.b),o.g,o.f),b.a-=s.a,b.b-=s.b,f=a+b.a,l=u+b.b,Ien(r=cDn(e,!0,!0),a),Aen(r,u),Ten(r,f),Oen(r,l),mHn(n,o)))}function yHn(n){NM(n,new MTn(vj(wj(pj(gj(new du,R4n),"ELK SPOrE Compaction"),"ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree."),new tu))),u2(n,R4n,K4n,mpn(kTt)),u2(n,R4n,_4n,mpn(vTt)),u2(n,R4n,F4n,mpn(pTt)),u2(n,R4n,B4n,mpn(dTt)),u2(n,R4n,H4n,mpn(gTt)),u2(n,R4n,QJn,wTt),u2(n,R4n,vZn,8),u2(n,R4n,q4n,mpn(yTt)),u2(n,R4n,G4n,mpn(hTt)),u2(n,R4n,z4n,mpn(fTt)),u2(n,R4n,X2n,(hN(),!1))}function kHn(n,t){var i,r,c,a,u,o,s,h,f,l;for(OTn(t,"Simple node placement",1),l=BB(mMn(n,(hWn(),Alt)),304),o=0,a=new Wb(n.b);a.a<a.c.c.length;){for((u=(r=BB(n0(a),29)).c).b=0,i=null,h=new Wb(r.a);h.a<h.c.c.length;)s=BB(n0(h),10),i&&(u.b+=Idn(s,i,l.c)),u.b+=s.d.d+s.o.b+s.d.a,i=s;o=e.Math.max(o,u.b)}for(c=new Wb(n.b);c.a<c.c.c.length;)for(f=(o-(u=(r=BB(n0(c),29)).c).b)/2,i=null,h=new Wb(r.a);h.a<h.c.c.length;)s=BB(n0(h),10),i&&(f+=Idn(s,i,l.c)),f+=s.d.d,s.n.b=f,f+=s.o.b+s.d.a,i=s;HSn(t)}function jHn(n,t,e,i){var r,c,a,u,o,s,h,f;if(0==i.gc())return!1;if(ZM(),a=(o=BB(t,66).Oj())?i:new gtn(i.gc()),$xn(n.e,t)){if(t.hi())for(h=i.Kc();h.Ob();)UFn(n,t,s=h.Pb(),cL(t,99)&&0!=(BB(t,18).Bb&BQn))||(c=Z3(t,s),a.Fc(c));else if(!o)for(h=i.Kc();h.Ob();)c=Z3(t,s=h.Pb()),a.Fc(c)}else{for(f=axn(n.e.Tg(),t),r=BB(n.g,119),u=0;u<n.i;++u)if(c=r[u],f.rl(c.ak()))throw Hp(new _y(I7n));if(i.gc()>1)throw Hp(new _y(I7n));o||(c=Z3(t,i.Kc().Pb()),a.Fc(c))}return oon(n,EPn(n,t,e),a)}function EHn(n,t){var e,i,r,c;for(Qtn(t.b.j),JT($V(new Rq(null,new w1(t.d,16)),new cc),new ac),c=new Wb(t.d);c.a<c.c.c.length;){switch((r=BB(n0(c),101)).e.g){case 0:e=BB(xq(r.j,0),113).d.j,Gl(r,BB($N(Oz(BB(h6(r.k,e),15).Oc(),Qst)),113)),ql(r,BB($N(Iz(BB(h6(r.k,e),15).Oc(),Qst)),113));break;case 1:i=Hyn(r),Gl(r,BB($N(Oz(BB(h6(r.k,i[0]),15).Oc(),Qst)),113)),ql(r,BB($N(Iz(BB(h6(r.k,i[1]),15).Oc(),Qst)),113));break;case 2:VPn(n,r);break;case 3:KNn(r);break;case 4:GNn(n,r)}Vtn(r)}n.a=null}function THn(n,t,e){var i,r,c,a,u,o,s,h;return i=n.a.o==(oZ(),cyt)?RQn:KQn,!(u=cFn(n,new aC(t,e))).a&&u.c?(DH(n.d,u),i):u.a?(r=u.a.c,o=u.a.d,e?(s=n.a.c==(gJ(),tyt)?o:r,c=n.a.c==tyt?r:o,a=n.a.g[c.i.p],h=Gy(n.a.p[a.p])+Gy(n.a.d[c.i.p])+c.n.b+c.a.b-Gy(n.a.d[s.i.p])-s.n.b-s.a.b):(s=n.a.c==(gJ(),nyt)?o:r,c=n.a.c==nyt?r:o,h=Gy(n.a.p[n.a.g[c.i.p].p])+Gy(n.a.d[c.i.p])+c.n.b+c.a.b-Gy(n.a.d[s.i.p])-s.n.b-s.a.b),n.a.n[n.a.g[r.i.p].p]=(hN(),!0),n.a.n[n.a.g[o.i.p].p]=!0,h):i}function MHn(n,t,e){var i,r,c,a,u,o,s;if($xn(n.e,t))ZM(),AOn((u=BB(t,66).Oj()?new lq(t,n):new xI(t,n)).c,u.b),Z$(u,BB(e,14));else{for(s=axn(n.e.Tg(),t),i=BB(n.g,119),c=0;c<n.i;++c)if(r=i[c].ak(),s.rl(r)){if(r==(TOn(),lLt)||r==sLt){for(a=c,(o=Ovn(n,t,e))?fDn(n,c):++c;c<n.i;)(r=i[c].ak())==lLt||r==sLt?fDn(n,c):++c;o||BB(ovn(n,a,Z3(t,e)),72)}else Ovn(n,t,e)?fDn(n,c):BB(ovn(n,c,(ZM(),BB(t,66).Oj()?BB(e,72):Z3(t,e))),72);return}Ovn(n,t,e)||f9(n,(ZM(),BB(t,66).Oj()?BB(e,72):Z3(t,e)))}}function SHn(n,t,e){var i,r,c,a,u,o,s,h;return Nfn(e,n.b)||(n.b=e,c=new Jn,a=BB(P4($V(new Rq(null,new w1(e.f,16)),c),x7(new Q,new Y,new cn,new an,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Xet),Uet]))),21),n.e=!0,n.f=!0,n.c=!0,n.d=!0,r=a.Hc((Hpn(),Brt)),i=a.Hc(Hrt),r&&!i&&(n.f=!1),!r&&i&&(n.d=!1),r=a.Hc(Frt),i=a.Hc(qrt),r&&!i&&(n.c=!1),!r&&i&&(n.e=!1)),h=BB(n.a.Ce(t,e),46),o=BB(h.a,19).a,s=BB(h.b,19).a,u=!1,o<0?n.c||(u=!0):n.e||(u=!0),s<0?n.d||(u=!0):n.f||(u=!0),u?SHn(n,h,e):h}function PHn(n){var t,i,r,c;c=n.o,qD(),n.A.dc()||Nfn(n.A,$rt)?t=c.b:(t=MIn(n.f),n.A.Hc((mdn(),RIt))&&!n.B.Hc((n_n(),XIt))&&(t=e.Math.max(t,MIn(BB(oV(n.p,(kUn(),oIt)),244))),t=e.Math.max(t,MIn(BB(oV(n.p,CIt),244)))),(i=oan(n))&&(t=e.Math.max(t,i.b)),n.A.Hc(KIt)&&(n.q!=(QEn(),WCt)&&n.q!=XCt||(t=e.Math.max(t,XH(BB(oV(n.b,(kUn(),oIt)),124))),t=e.Math.max(t,XH(BB(oV(n.b,CIt),124)))))),qy(TD(n.e.yf().We((sWn(),FSt))))?c.b=e.Math.max(c.b,t):c.b=t,(r=n.f.i).d=0,r.a=t,GFn(n.f)}function CHn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;for(h=0;h<t.length;h++){for(a=n.Kc();a.Ob();)BB(a.Pb(),225).Of(h,t);for(f=0;f<t[h].length;f++){for(u=n.Kc();u.Ob();)BB(u.Pb(),225).Pf(h,f,t);for(b=t[h][f].j,l=0;l<b.c.length;l++){for(o=n.Kc();o.Ob();)BB(o.Pb(),225).Qf(h,f,l,t);for(l1(l,b.c.length),e=0,r=new m6(BB(b.c[l],11).b);y$(r.a)||y$(r.b);)for(i=BB(y$(r.a)?n0(r.a):n0(r.b),17),s=n.Kc();s.Ob();)BB(s.Pb(),225).Nf(h,f,l,e++,i,t)}}}for(c=n.Kc();c.Ob();)BB(c.Pb(),225).Mf()}function IHn(n,t){var e,i,r,c,a;for(n.b=Gy(MD(mMn(t,(HXn(),kpt)))),n.c=Gy(MD(mMn(t,Tpt))),n.d=BB(mMn(t,rgt),336),n.a=BB(mMn(t,Pdt),275),fmn(t),r=(c=BB(P4(AV(AV(wnn(wnn(new Rq(null,new w1(t.b,16)),new ye),new ke),new je),new Ee),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15)).Kc();r.Ob();)e=BB(r.Pb(),17),BB(mMn(e,(hWn(),Nlt)),15).Jc(new ed(n)),hon(e,Nlt,null);for(i=c.Kc();i.Ob();)e=BB(i.Pb(),17),a=BB(mMn(e,(hWn(),xlt)),17),FXn(n,BB(mMn(e,$lt),15),a),hon(e,$lt,null)}function OHn(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 AHn(n){var t,e,i,r,c;if(n.k!=(uSn(),Cut))return!1;if(n.j.c.length<=1)return!1;if(BB(mMn(n,(HXn(),ept)),98)==(QEn(),XCt))return!1;if(bvn(),(i=(n.q?n.q:(SQ(),SQ(),het))._b(Rgt)?BB(mMn(n,Rgt),197):BB(mMn(vW(n),Kgt),197))==lvt)return!1;if(i!=fvt&&i!=hvt){if(r=Gy(MD(edn(n,Npt))),!(t=BB(mMn(n,Lpt),142))&&(t=new HR(r,r,r,r)),c=abn(n,(kUn(),CIt)),t.d+t.a+(c.gc()-1)*r>n.o.b)return!1;if(e=abn(n,oIt),t.d+t.a+(e.gc()-1)*r>n.o.b)return!1}return!0}function $Hn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w;if(a=n.e,o=t.e,0==a)return t;if(0==o)return n;if((c=n.d)+(u=t.d)==2)return e=e0(n.a[0],UQn),i=e0(t.a[0],UQn),a==o?(w=dG(h=rbn(e,i)),0==(b=dG(jz(h,32)))?new X6(a,w):new lU(a,2,Pun(Gk(ANt,1),hQn,25,15,[w,b]))):npn(a<0?ibn(i,e):ibn(e,i));if(a==o)l=a,f=c>=u?N8(n.a,c,t.a,u):N8(t.a,u,n.a,c);else{if(0==(r=c!=u?c>u?1:-1:Msn(n.a,t.a,c)))return ODn(),eet;1==r?(l=a,f=d6(n.a,c,t.a,u)):(l=o,f=d6(t.a,u,n.a,c))}return X0(s=new lU(l,f.length,f)),s}function LHn(n,t,i,r,c,a,u){var o,s,h,f,l,b,w;return l=qy(TD(mMn(t,(HXn(),Ogt)))),b=null,a==(ain(),Hvt)&&r.c.i==i?b=r.c:a==qvt&&r.d.i==i&&(b=r.d),(h=u)&&l&&!b?(WB(h.e,r),w=e.Math.max(Gy(MD(mMn(h.d,agt))),Gy(MD(mMn(r,agt)))),hon(h.d,agt,w)):(kUn(),f=PIt,b?f=b.j:vA(BB(mMn(i,ept),98))&&(f=a==Hvt?CIt:oIt),s=xHn(n,t,i,a,f,r),o=W5((vW(i),r)),a==Hvt?(SZ(o,BB(xq(s.j,0),11)),MZ(o,c)):(SZ(o,c),MZ(o,BB(xq(s.j,0),11))),h=new zfn(r,o,s,BB(mMn(s,(hWn(),dlt)),11),a,!b)),JIn(n.a,r,new L_(h.d,t,a)),h}function NHn(n,t){var e,i,r,c,a,u,o,s,h,f;if(h=null,n.d&&(h=BB(SJ(n.d,t),138)),!h){if(f=(c=n.a.Mh()).i,!n.d||NT(n.d)!=f){for(o=new xp,n.d&&Tcn(o,n.d),u=s=o.f.c+o.g.c;u<f;++u)i=BB(Wtn(c,u),138),(e=BB(null==(r=Cfn(n.e,i).ne())?jCn(o.f,null,i):ubn(o.g,r,i),138))&&e!=i&&(null==r?jCn(o.f,null,e):ubn(o.g,r,e));if(o.f.c+o.g.c!=f)for(a=0;a<s;++a)i=BB(Wtn(c,a),138),(e=BB(null==(r=Cfn(n.e,i).ne())?jCn(o.f,null,i):ubn(o.g,r,i),138))&&e!=i&&(null==r?jCn(o.f,null,e):ubn(o.g,r,e));n.d=o}h=BB(SJ(n.d,t),138)}return h}function xHn(n,t,e,i,r,c){var a,u,o,s,h,f;return a=null,s=i==(ain(),Hvt)?c.c:c.d,o=Wln(t),s.i==e?(a=BB(RX(n.b,s),10))||(hon(a=bXn(s,BB(mMn(e,(HXn(),ept)),98),r,HKn(s),null,s.n,s.o,o,t),(hWn(),dlt),s),VW(n.b,s,a)):(u=AEn(a=bXn((h=new Zn,f=Gy(MD(mMn(t,(HXn(),ypt))))/2,son(h,tpt,f),h),BB(mMn(e,ept),98),r,i==Hvt?-1:1,null,new Gj,new xC(0,0),o,t),e,i),hon(a,(hWn(),dlt),u),VW(n.b,u,a)),BB(mMn(t,(hWn(),Zft)),21).Fc((bDn(),lft)),vA(BB(mMn(t,(HXn(),ept)),98))?hon(t,ept,(QEn(),VCt)):hon(t,ept,(QEn(),QCt)),a}function DHn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d;OTn(t,"Orthogonal edge routing",1),s=Gy(MD(mMn(n,(HXn(),Apt)))),e=Gy(MD(mMn(n,kpt))),i=Gy(MD(mMn(n,Tpt))),l=new fX(0,e),d=0,a=new M2(n.b,0),u=null,h=null,o=null,f=null;do{f=(h=a.b<a.d.gc()?(Px(a.b<a.d.gc()),BB(a.d.Xb(a.c=a.b++),29)):null)?h.a:null,u&&(Tqn(u,d),d+=u.c.a),w=AGn(l,n,o,f,u?d+i:d),r=!u||VI(o,(dxn(),jyt)),c=!h||VI(f,(dxn(),jyt)),w>0?(b=(w-1)*e,u&&(b+=i),h&&(b+=i),b<s&&!r&&!c&&(b=s),d+=b):!r&&!c&&(d+=s),u=h,o=f}while(h);n.f.a=d,HSn(t)}function RHn(){var n;RHn=O,EAt=new Sm,kAt=x8(Qtt,sVn,2,0,6,1),SAt=i0(Bun(33,58),Bun(1,26)),PAt=i0(Bun(97,122),Bun(65,90)),CAt=Bun(48,57),TAt=i0(SAt,0),MAt=i0(PAt,CAt),IAt=i0(i0(0,Bun(1,6)),Bun(33,38)),OAt=i0(i0(CAt,Bun(65,70)),Bun(97,102)),xAt=i0(TAt,dpn("-_.!~*'()")),DAt=i0(MAt,Xwn("-_.!~*'()")),dpn(u9n),Xwn(u9n),i0(xAt,dpn(";:@&=+$,")),i0(DAt,Xwn(";:@&=+$,")),AAt=dpn(":/?#"),$At=Xwn(":/?#"),LAt=dpn("/?#"),NAt=Xwn("/?#"),(n=new Rv).a.zc("jar",n),n.a.zc("zip",n),n.a.zc("archive",n),SQ(),jAt=new Ak(n)}function KHn(n,t){var e,i,r,c,a;if(hon(t,(qqn(),okt),0),r=BB(mMn(t,akt),86),0==t.d.b)r?(a=Gy(MD(mMn(r,fkt)))+n.a+E5(r,t),hon(t,fkt,a)):hon(t,fkt,0);else{for(e=new wg(spn(new bg(t).a.d,0));EE(e.a);)KHn(n,BB(b3(e.a),188).c);i=BB(iL(new wg(spn(new bg(t).a.d,0))),86),c=(Gy(MD(mMn(BB(TN(new wg(spn(new bg(t).a.d,0))),86),fkt)))+Gy(MD(mMn(i,fkt))))/2,r?(a=Gy(MD(mMn(r,fkt)))+n.a+E5(r,t),hon(t,fkt,a),hon(t,okt,Gy(MD(mMn(t,fkt)))-c),IGn(n,t)):hon(t,fkt,c)}}function _Hn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;u=0,b=0,o=TJ(n.f,n.f.length),c=n.d,a=n.i,i=n.a,r=n.b;do{for(l=0,s=new Wb(n.p);s.a<s.c.c.length;)f=OGn(n,BB(n0(s),10)),e=!0,(n.q==(sNn(),Tvt)||n.q==Pvt)&&(e=qy(TD(f.b))),BB(f.a,19).a<0&&e?(++l,o=TJ(n.f,n.f.length),n.d=n.d+BB(f.a,19).a,b+=c-n.d,c=n.d+BB(f.a,19).a,a=n.i,i=a0(n.a),r=a0(n.b)):(n.f=TJ(o,o.length),n.d=c,n.a=(yX(i),i?new t_(i):HB(new Wb(i))),n.b=(yX(r),r?new t_(r):HB(new Wb(r))),n.i=a);++u,h=0!=l&&qy(TD(t.Kb(new rI(iln(b),iln(u)))))}while(h)}function FHn(n,t,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;return a=n.f,l=t.f,u=a==(YLn(),xEt)||a==REt,o=a==DEt||a==KEt,b=l==DEt||l==KEt,s=a==DEt||a==xEt,w=l==DEt||l==xEt,!u||l!=xEt&&l!=REt?o&&b?n.f==KEt?n:t:s&&w?(a==DEt?(f=n,h=t):(f=t,h=n),d=i.j+i.f,g=f.e+r.f,p=e.Math.max(d,g)-e.Math.min(i.j,f.e),c=(f.d+r.g-i.i)*p,v=i.i+i.g,m=h.d+r.g,c<=(e.Math.max(v,m)-e.Math.min(i.i,h.d))*(h.e+r.f-i.j)?n.f==DEt?n:t:n.f==xEt?n:t):n:n.f==REt?n:t}function BHn(n){var t,e,i,r,c,a,u,o,s,h;for(s=n.e.a.c.length,c=new Wb(n.e.a);c.a<c.c.c.length;)BB(n0(c),121).j=!1;for(n.i=x8(ANt,hQn,25,s,15,1),n.g=x8(ANt,hQn,25,s,15,1),n.n=new Np,r=0,h=new Np,u=new Wb(n.e.a);u.a<u.c.c.length;)(a=BB(n0(u),121)).d=r++,0==a.b.a.c.length&&WB(n.n,a),gun(h,a.g);for(t=0,i=new Wb(h);i.a<i.c.c.length;)(e=BB(n0(i),213)).c=t++,e.f=!1;o=h.c.length,null==n.b||n.b.length<o?(n.b=x8(xNt,qQn,25,o,15,1),n.c=x8($Nt,ZYn,25,o,16,1)):nk(n.c),n.d=h,n.p=new LN(etn(n.d.c.length)),n.j=1}function HHn(n,t){var e,i,r,c,a,u,o,s,h;if(!(t.e.c.length<=1)){for(n.f=t,n.d=BB(mMn(n.f,(rkn(),vat)),379),n.g=BB(mMn(n.f,jat),19).a,n.e=Gy(MD(mMn(n.f,mat))),n.c=Gy(MD(mMn(n.f,pat))),cX(n.b),r=new Wb(n.f.c);r.a<r.c.c.length;)i=BB(n0(r),282),yKn(n.b,i.c,i,null),yKn(n.b,i.d,i,null);for(u=n.f.e.c.length,n.a=kq(xNt,[sVn,qQn],[104,25],15,[u,u],2),s=new Wb(n.f.e);s.a<s.c.c.length;)CBn(n,o=BB(n0(s),144),n.a[o.b]);for(n.i=kq(xNt,[sVn,qQn],[104,25],15,[u,u],2),c=0;c<u;++c)for(a=0;a<u;++a)h=1/((e=n.a[c][a])*e),n.i[c][a]=h}}function qHn(n){var t,e,i,r;if(!(null==n.b||n.b.length<=2||n.a)){for(t=0,r=0;r<n.b.length;){for(t!=r?(n.b[t]=n.b[r++],n.b[t+1]=n.b[r++]):r+=2,e=n.b[t+1];r<n.b.length&&!(e+1<n.b[r]);)if(e+1==n.b[r])n.b[t+1]=n.b[r+1],e=n.b[t+1],r+=2;else if(e>=n.b[r+1])r+=2;else{if(!(e<n.b[r+1]))throw Hp(new dy("Token#compactRanges(): Internel Error: ["+n.b[t]+","+n.b[t+1]+"] ["+n.b[r]+","+n.b[r+1]+"]"));n.b[t+1]=n.b[r+1],e=n.b[t+1],r+=2}t+=2}t!=n.b.length&&(i=x8(ANt,hQn,25,t,15,1),aHn(n.b,0,i,0,t),n.b=i),n.a=!0}}function GHn(n,t){var e,i,r,c,a,u,o;for(a=gz(n.a).Kc();a.Ob();){if((c=BB(a.Pb(),17)).b.c.length>0)for(i=new t_(BB(h6(n.a,c),21)),SQ(),m$(i,new _w(t)),r=new M2(c.b,0);r.b<r.d.gc();){switch(Px(r.b<r.d.gc()),e=BB(r.d.Xb(r.c=r.b++),70),u=-1,BB(mMn(e,(HXn(),Ydt)),272).g){case 1:u=i.c.length-1;break;case 0:u=Jjn(i);break;case 2:u=0}-1!=u&&(l1(u,i.c.length),WB((o=BB(i.c[u],243)).b.b,e),BB(mMn(vW(o.b.c.i),(hWn(),Zft)),21).Fc((bDn(),fft)),BB(mMn(vW(o.b.c.i),Zft),21).Fc(sft),fW(r),hon(e,vlt,c))}SZ(c,null),MZ(c,null)}}function zHn(n,t){var e,i,r,c;return e=new _n,1==(r=2==(r=(i=BB(P4($V(new Rq(null,new w1(n.f,16)),e),x7(new Q,new Y,new cn,new an,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Xet),Uet]))),21)).gc())?1:0)&&QI(ldn(BB(P4(AV(i.Lc(),new Fn),Wcn(jgn(0),new en)),162).a,2),0)&&(r=0),1==(c=2==(c=(i=BB(P4($V(new Rq(null,new w1(t.f,16)),e),x7(new Q,new Y,new cn,new an,Pun(Gk(nit,1),$Vn,132,0,[Xet,Uet]))),21)).gc())?1:0)&&QI(ldn(BB(P4(AV(i.Lc(),new Bn),Wcn(jgn(0),new en)),162).a,2),0)&&(c=0),r<c?-1:r==c?0:1}function UHn(n){var t,e,i,r,c,a,u,o,s,h,f;if(o=new Np,!Lx(n,(hWn(),Wft)))return o;for(i=BB(mMn(n,Wft),15).Kc();i.Ob();)dqn(t=BB(i.Pb(),10),n),o.c[o.c.length]=t;for(r=new Wb(n.b);r.a<r.c.c.length;)for(a=new Wb(BB(n0(r),29).a);a.a<a.c.c.length;)(c=BB(n0(a),10)).k==(uSn(),Mut)&&(u=BB(mMn(c,Vft),10))&&(CZ(s=new CSn,c),qCn(s,BB(mMn(c,Qft),61)),h=BB(xq(u.j,0),11),SZ(f=new wY,s),MZ(f,h));for(e=new Wb(o);e.a<e.c.c.length;)PZ(t=BB(n0(e),10),BB(xq(n.b,n.b.c.length-1),29));return o}function XHn(n){var t,e,i,r,c,a,u,o,s,h,f,l;for(c=qy(TD(ZAn(t=WJ(n),(HXn(),wgt)))),h=0,r=0,s=new AL((!n.e&&(n.e=new hK(_Ot,n,7,4)),n.e));s.e!=s.i.gc();)a=(u=QIn(o=BB(kpn(s),79)))&&c&&qy(TD(ZAn(o,dgt))),l=PTn(BB(Wtn((!o.c&&(o.c=new hK(KOt,o,5,8)),o.c),0),82)),u&&a?++r:u&&!a?++h:JJ(l)==t||l==t?++r:++h;for(i=new AL((!n.d&&(n.d=new hK(_Ot,n,8,5)),n.d));i.e!=i.i.gc();)a=(u=QIn(e=BB(kpn(i),79)))&&c&&qy(TD(ZAn(e,dgt))),f=PTn(BB(Wtn((!e.b&&(e.b=new hK(KOt,e,4,7)),e.b),0),82)),u&&a?++h:u&&!a?++r:JJ(f)==t||f==t?++h:++r;return h-r}function WHn(n,t){var e,i,r,c,a,u,o,s,h;if(OTn(t,"Edge splitting",1),n.b.c.length<=2)HSn(t);else{for(Px((c=new M2(n.b,0)).b<c.d.gc()),a=BB(c.d.Xb(c.c=c.b++),29);c.b<c.d.gc();)for(r=a,Px(c.b<c.d.gc()),a=BB(c.d.Xb(c.c=c.b++),29),u=new Wb(r.a);u.a<u.c.c.length;)for(o=new Wb(BB(n0(u),10).j);o.a<o.c.c.length;)for(i=new Wb(BB(n0(o),11).g);i.a<i.c.c.length;)(s=(e=BB(n0(i),17)).d.i.c)!=r&&s!=a&&zxn(e,(Bl(h=new $vn(n),(uSn(),Put)),hon(h,(hWn(),dlt),e),hon(h,(HXn(),ept),(QEn(),XCt)),PZ(h,a),h));HSn(t)}}function VHn(n,t){var e,i,r,c,a,u,o,s,h;if((a=null!=t.p&&!t.b)||OTn(t,aZn,1),c=1/(e=BB(mMn(n,(hWn(),Mlt)),15)).gc(),t.n)for(OH(t,"ELK Layered uses the following "+e.gc()+" modules:"),h=0,s=e.Kc();s.Ob();)OH(t," Slot "+(h<10?"0":"")+h+++": "+nE(tsn(BB(s.Pb(),51))));for(o=e.Kc();o.Ob();)BB(o.Pb(),51).pf(n,mcn(t,c));for(r=new Wb(n.b);r.a<r.c.c.length;)i=BB(n0(r),29),gun(n.a,i.a),i.a.c=x8(Ant,HWn,1,0,5,1);for(u=new Wb(n.a);u.a<u.c.c.length;)PZ(BB(n0(u),10),null);n.b.c=x8(Ant,HWn,1,0,5,1),a||HSn(t)}function QHn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;r=Gy(MD(mMn(t,(HXn(),Dgt)))),l=4,c=3,j=20/(k=BB(mMn(t,xpt),19).a),b=!1,s=0,u=DWn;do{for(a=1!=s,f=0!=s,E=0,v=0,y=(g=n.a).length;v<y;++v)(w=g[v]).f=null,Bzn(n,w,a,f,r),E+=e.Math.abs(w.a);do{o=U_n(n,t)}while(o);for(p=0,m=(d=n.a).length;p<m;++p)if(0!=(i=wU(w=d[p]).a))for(h=new Wb(w.e);h.a<h.c.c.length;)BB(n0(h),10).n.b+=i;0==s||1==s?--l<=0&&(E<u||-l>k)?(s=2,u=DWn):0==s?(s=1,u=E):(s=0,u=E):(b=E>=u||u-E<j,u=E,b&&--c)}while(!(b&&c<=0))}function YHn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w;for(w=new xp,c=n.a.ec().Kc();c.Ob();)VW(w,i=BB(c.Pb(),168),e.Je(i));for(yX(n),m$(a=n?new t_(n):HB(n.a.ec().Kc()),new Ew(w)),u=S4(a),o=new C$(t),jCn((b=new xp).f,t,o);0!=u.a.gc();){for(s=null,h=null,f=null,r=u.a.ec().Kc();r.Ob();)if(i=BB(r.Pb(),168),Gy(MD(qI(AY(w.f,i))))<=RQn){if(hU(b,i.a)&&!hU(b,i.b)){h=i.b,f=i.a,s=i;break}if(hU(b,i.b)&&!hU(b,i.a)){h=i.a,f=i.b,s=i;break}}if(!s)break;l=new C$(h),WB(BB(qI(AY(b.f,f)),221).a,l),jCn(b.f,h,l),u.a.Bc(s)}return o}function JHn(n,t,e){var i,r,c,a,u,o,s,h;for(OTn(e,"Depth-first cycle removal",1),o=(s=t.a).c.length,n.c=new Np,n.d=x8($Nt,ZYn,25,o,16,1),n.a=x8($Nt,ZYn,25,o,16,1),n.b=new Np,c=0,u=new Wb(s);u.a<u.c.c.length;)(a=BB(n0(u),10)).p=c,h3(fbn(a))&&WB(n.c,a),++c;for(h=new Wb(n.c);h.a<h.c.c.length;)GPn(n,BB(n0(h),10));for(r=0;r<o;r++)n.d[r]||(l1(r,s.c.length),GPn(n,BB(s.c[r],10)));for(i=new Wb(n.b);i.a<i.c.c.length;)tBn(BB(n0(i),17),!0),hon(t,(hWn(),qft),(hN(),!0));n.c=null,n.d=null,n.a=null,n.b=null,HSn(e)}function ZHn(n,t){var e,i,r,c,a,u,o;for(n.a.c=x8(Ant,HWn,1,0,5,1),i=spn(t.b,0);i.b!=i.d.c;)0==(e=BB(b3(i),86)).b.b&&(hon(e,(qqn(),dkt),(hN(),!0)),WB(n.a,e));switch(n.a.c.length){case 0:hon(r=new csn(0,t,"DUMMY_ROOT"),(qqn(),dkt),(hN(),!0)),hon(r,ekt,!0),DH(t.b,r);break;case 1:break;default:for(c=new csn(0,t,"SUPER_ROOT"),u=new Wb(n.a);u.a<u.c.c.length;)hon(o=new UQ(c,a=BB(n0(u),86)),(qqn(),ekt),(hN(),!0)),DH(c.a.a,o),DH(c.d,o),DH(a.b,o),hon(a,dkt,!1);hon(c,(qqn(),dkt),(hN(),!0)),hon(c,ekt,!0),DH(t.b,c)}}function nqn(n,t){var i,r,c,a,u,o;return jDn(),a=t.c-(n.c+n.b),c=n.c-(t.c+t.b),u=n.d-(t.d+t.a),i=t.d-(n.d+n.a),r=e.Math.max(c,a),o=e.Math.max(u,i),h$(),rin(A3n),(e.Math.abs(r)<=A3n||0==r||isNaN(r)&&isNaN(0)?0:r<0?-1:r>0?1:zO(isNaN(r),isNaN(0)))>=0^(rin(A3n),(e.Math.abs(o)<=A3n||0==o||isNaN(o)&&isNaN(0)?0:o<0?-1:o>0?1:zO(isNaN(o),isNaN(0)))>=0)?e.Math.max(o,r):(rin(A3n),(e.Math.abs(r)<=A3n||0==r||isNaN(r)&&isNaN(0)?0:r<0?-1:r>0?1:zO(isNaN(r),isNaN(0)))>0?e.Math.sqrt(o*o+r*r):-e.Math.sqrt(o*o+r*r))}function tqn(n,t){var e,i,r,c,a;if(t)if(!n.a&&(n.a=new _v),2!=n.e)if(1!=t.e)0!=(a=n.a.a.c.length)?0!=(c=BB(bW(n.a,a-1),117)).e&&10!=c.e||0!=t.e&&10!=t.e?Cv(n.a,t):(0==t.e||t.bm().length,0==c.e?(e=new Pk,(i=c._l())>=BQn?cO(e,Xln(i)):NX(e,i&QVn),c=new vJ(10,null,0),kU(n.a,c,a-1)):(c.bm().length,cO(e=new Pk,c.bm())),0==t.e?(i=t._l())>=BQn?cO(e,Xln(i)):NX(e,i&QVn):cO(e,t.bm()),BB(c,521).b=e.a):Cv(n.a,t);else for(r=0;r<t.em();r++)tqn(n,t.am(r));else Cv(n.a,t)}function eqn(n){var t,e,i,r,c;return null!=n.g?n.g:n.a<32?(n.g=DUn(fan(n.f),CJ(n.e)),n.g):(r=qXn((!n.c&&(n.c=yhn(n.f)),n.c),0),0==n.e?r:(t=(!n.c&&(n.c=yhn(n.f)),n.c).e<0?2:1,e=r.length,i=-n.e+e-t,(c=new Ck).a+=""+r,n.e>0&&i>=-6?i>=0?kZ(c,e-CJ(n.e),String.fromCharCode(46)):(c.a=fx(c.a,0,t-1)+"0."+nO(c.a,t-1),kZ(c,t+1,Bdn(qtt,0,-CJ(i)-1))):(e-t>=1&&(kZ(c,t,String.fromCharCode(46)),++e),kZ(c,e,String.fromCharCode(69)),i>0&&kZ(c,++e,String.fromCharCode(43)),kZ(c,++e,""+vz(fan(i)))),n.g=c.a,n.g))}function iqn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;if(!e.dc()){for(a=0,h=0,l=BB((i=e.Kc()).Pb(),19).a;a<t.f;){if(a==l&&(h=0,l=i.Ob()?BB(i.Pb(),19).a:t.f+1),a!=h)for(b=BB(xq(n.b,a),29),f=BB(xq(n.b,h),29),s=new Wb(a0(b.a));s.a<s.c.c.length;)if(Qyn(o=BB(n0(s),10),f.a.c.length,f),0==h)for(c=new Wb(a0(fbn(o)));c.a<c.c.c.length;)tBn(r=BB(n0(c),17),!0),hon(n,(hWn(),qft),(hN(),!0)),iGn(n,r,1);++h,++a}for(u=new M2(n.b,0);u.b<u.d.gc();)Px(u.b<u.d.gc()),0==BB(u.d.Xb(u.c=u.b++),29).a.c.length&&fW(u)}}function rqn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(h=(a=t.b).o,o=a.d,i=Gy(MD(gpn(a,(HXn(),ypt)))),r=Gy(MD(gpn(a,jpt))),s=Gy(MD(gpn(a,$pt))),rH(u=new fm,o.d,o.c,o.a,o.b),l=MRn(t,i,r,s),p=new Wb(t.d);p.a<p.c.c.length;){for(w=(g=BB(n0(p),101)).f.a.ec().Kc();w.Ob();)c=(b=BB(w.Pb(),409)).a,f=ETn(b),v=new km,bTn(b,b.c,l,v),FMn(b,f,l,v),bTn(b,b.d,l,v),e=v,e=n.Uf(b,f,e),yQ(c.a),Frn(c.a,e),JT(new Rq(null,new w1(e,16)),new wP(h,u));(d=g.i)&&(aTn(g,d,l,r),pgn(h,u,m=new wA(d.g)),UR(m,d.j),pgn(h,u,m))}rH(o,u.d,u.c,u.a,u.b)}function cqn(n,t,e){var i,r,c;if((r=BB(mMn(t,(HXn(),Pdt)),275))!=(JMn(),cft)){switch(OTn(e,"Horizontal Compaction",1),n.a=t,Vk(i=new yOn(((c=new I7).d=t,c.c=BB(mMn(c.d,Zdt),218),UDn(c),SGn(c),sRn(c),c.a)),n.b),1===BB(mMn(t,Sdt),422).g?Wk(i,new grn(n.a)):Wk(i,(CQ(),fit)),r.g){case 1:C$n(i);break;case 2:C$n(Tzn(i,(Ffn(),FPt)));break;case 3:C$n(Uk(Tzn(C$n(i),(Ffn(),FPt)),new gr));break;case 4:C$n(Uk(Tzn(C$n(i),(Ffn(),FPt)),new kd(c)));break;case 5:C$n(Xk(i,wst))}Tzn(i,(Ffn(),_Pt)),i.e=!0,Lzn(c),HSn(e)}}function aqn(n,t,e,i,r,c,a,u){var o,s,h,f;switch(o=u6(Pun(Gk(FEt,1),HWn,220,0,[t,e,i,r])),f=null,n.b.g){case 1:f=u6(Pun(Gk(tEt,1),HWn,526,0,[new Ja,new Qa,new Ya]));break;case 0:f=u6(Pun(Gk(tEt,1),HWn,526,0,[new Ya,new Qa,new Ja]));break;case 2:f=u6(Pun(Gk(tEt,1),HWn,526,0,[new Qa,new Ja,new Ya]))}for(h=new Wb(f);h.a<h.c.c.length;)s=BB(n0(h),526),o.c.length>1&&(o=s.mg(o,n.a,u));return 1==o.c.length?BB(xq(o,o.c.length-1),220):2==o.c.length?FHn((l1(0,o.c.length),BB(o.c[0],220)),(l1(1,o.c.length),BB(o.c[1],220)),a,c):null}function uqn(n){var t,i,r,c,a,u;for(Otn(n.a,new nt),i=new Wb(n.a);i.a<i.c.c.length;)t=BB(n0(i),221),r=XR(B$(BB(n.b,65).c),BB(t.b,65).c),ect?(u=BB(n.b,65).b,a=BB(t.b,65).b,e.Math.abs(r.a)>=e.Math.abs(r.b)?(r.b=0,a.d+a.a>u.d&&a.d<u.d+u.a&&NH(r,e.Math.max(u.c-(a.c+a.b),a.c-(u.c+u.b)))):(r.a=0,a.c+a.b>u.c&&a.c<u.c+u.b&&NH(r,e.Math.max(u.d-(a.d+a.a),a.d-(u.d+u.a))))):NH(r,TFn(BB(n.b,65),BB(t.b,65))),c=e.Math.sqrt(r.a*r.a+r.b*r.b),NH(r,c=HEn(Wrt,t,c,r)),LG(BB(t.b,65),r),Otn(t.a,new Aw(r)),BB(Wrt.b,65),K8(Wrt,Vrt,t)}function oqn(n){var t,i,r,c,a,u,o,s,f,l,b,w;for(n.f=new Fv,o=0,r=0,c=new Wb(n.e.b);c.a<c.c.c.length;)for(u=new Wb(BB(n0(c),29).a);u.a<u.c.c.length;){for((a=BB(n0(u),10)).p=o++,i=new oz(ZL(lbn(a).a.Kc(),new h));dAn(i);)BB(U5(i),17).p=r++;for(t=AHn(a),l=new Wb(a.j);l.a<l.c.c.length;)f=BB(n0(l),11),t&&(w=f.a.b)!=e.Math.floor(w)&&(s=w-j2(fan(e.Math.round(w))),f.a.b-=s),(b=f.n.b+f.a.b)!=e.Math.floor(b)&&(s=b-j2(fan(e.Math.round(b))),f.n.b-=s)}n.g=o,n.b=r,n.i=x8(eyt,HWn,401,o,0,1),n.c=x8(Jmt,HWn,649,r,0,1),n.d.a.$b()}function sqn(n){var t,e,i,r,c,a,u,o,s;if(n.ej())if(o=n.fj(),n.i>0){if(t=new DI(n.i,n.g),c=(e=n.i)<100?null:new Fj(e),n.ij())for(i=0;i<n.i;++i)a=n.g[i],c=n.kj(a,c);if(a6(n),r=1==e?n.Zi(4,Wtn(t,0),null,0,o):n.Zi(6,t,null,-1,o),n.bj()){for(i=new ax(t);i.e!=i.i.gc();)c=n.dj(jpn(i),c);c?(c.Ei(r),c.Fi()):n.$i(r)}else c?(c.Ei(r),c.Fi()):n.$i(r)}else a6(n),n.$i(n.Zi(6,(SQ(),set),null,-1,o));else if(n.bj())if(n.i>0){for(u=n.g,s=n.i,a6(n),c=s<100?null:new Fj(s),i=0;i<s;++i)a=u[i],c=n.dj(a,c);c&&c.Fi()}else a6(n);else a6(n)}function hqn(n,t,i){var r,c,a,u,o,s,h,f,l;for(_an(this),i==(dJ(),Lyt)?TU(this.r,n):TU(this.w,n),f=RQn,h=KQn,u=t.a.ec().Kc();u.Ob();)c=BB(u.Pb(),46),o=BB(c.a,455),(s=(r=BB(c.b,17)).c)==n&&(s=r.d),TU(o==Lyt?this.r:this.w,s),l=(kUn(),yIt).Hc(s.j)?Gy(MD(mMn(s,(hWn(),Llt)))):Aon(Pun(Gk(PMt,1),sVn,8,0,[s.i.n,s.n,s.a])).b,f=e.Math.min(f,l),h=e.Math.max(h,l);for(XMn(this,(kUn(),yIt).Hc(n.j)?Gy(MD(mMn(n,(hWn(),Llt)))):Aon(Pun(Gk(PMt,1),sVn,8,0,[n.i.n,n.n,n.a])).b,f,h),a=t.a.ec().Kc();a.Ob();)c=BB(a.Pb(),46),tPn(this,BB(c.b,17));this.o=!1}function fqn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;return e=8191&n.l,i=n.l>>13|(15&n.m)<<9,r=n.m>>4&8191,c=n.m>>17|(255&n.h)<<5,a=(1048320&n.h)>>8,g=i*(u=8191&t.l),p=r*u,v=c*u,m=a*u,0!=(o=t.l>>13|(15&t.m)<<9)&&(g+=e*o,p+=i*o,v+=r*o,m+=c*o),0!=(s=t.m>>4&8191)&&(p+=e*s,v+=i*s,m+=r*s),0!=(h=t.m>>17|(255&t.h)<<5)&&(v+=e*h,m+=i*h),0!=(f=(1048320&t.h)>>8)&&(m+=e*f),b=((d=e*u)>>22)+(g>>9)+((262143&p)<<4)+((31&v)<<17),w=(p>>18)+(v>>5)+((4095&m)<<8),w+=(b+=(l=(d&SQn)+((511&g)<<13))>>22)>>22,M$(l&=SQn,b&=SQn,w&=PQn)}function lqn(n){var t,i,r,c,a,u,o;if(0!=(o=BB(xq(n.j,0),11)).g.c.length&&0!=o.e.c.length)throw Hp(new Fy("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));if(0!=o.g.c.length){for(a=RQn,i=new Wb(o.g);i.a<i.c.c.length;)t=BB(n0(i),17),r=BB(mMn(u=t.d.i,(HXn(),Cgt)),142),a=e.Math.min(a,u.n.a-r.b);return new qf(yX(a))}if(0!=o.e.c.length){for(c=KQn,i=new Wb(o.e);i.a<i.c.c.length;)t=BB(n0(i),17),r=BB(mMn(u=t.c.i,(HXn(),Cgt)),142),c=e.Math.max(c,u.n.a+u.o.a+r.c);return new qf(yX(c))}return iy(),iy(),Ont}function bqn(n,t){var e,i,r,c,a,u;if(n.Fk()){if(n.i>4){if(!n.wj(t))return!1;if(n.rk()){if(u=(e=(i=BB(t,49)).Ug())==n.e&&(n.Dk()?i.Og(i.Vg(),n.zk())==n.Ak():-1-i.Vg()==n.aj()),n.Ek()&&!u&&!e&&i.Zg())for(r=0;r<n.i;++r)if(GI(n.Gk(BB(n.g[r],56)))===GI(t))return!0;return u}if(n.Dk()&&!n.Ck()){if(GI(c=BB(t,56).ah(Cvn(BB(n.ak(),18))))===GI(n.e))return!0;if(null==c||!BB(c,56).kh())return!1}}if(a=Sjn(n,t),n.Ek()&&!a)for(r=0;r<n.i;++r)if(GI(i=n.Gk(BB(n.g[r],56)))===GI(t))return!0;return a}return Sjn(n,t)}function wqn(n,t){var e,i,r,c,a,u,o,s,h,f,l;for(h=new Np,l=new Rv,a=t.b,r=0;r<a.c.length;r++){for(s=(l1(r,a.c.length),BB(a.c[r],29)).a,h.c=x8(Ant,HWn,1,0,5,1),c=0;c<s.c.length;c++)(u=n.a[r][c]).p=c,u.k==(uSn(),Iut)&&(h.c[h.c.length]=u),c5(BB(xq(t.b,r),29).a,c,u),u.j.c=x8(Ant,HWn,1,0,5,1),gun(u.j,BB(BB(xq(n.b,r),15).Xb(c),14)),LK(BB(mMn(u,(HXn(),ept)),98))||hon(u,ept,(QEn(),UCt));for(i=new Wb(h);i.a<i.c.c.length;)f=QRn(e=BB(n0(i),10)),l.a.zc(f,l),l.a.zc(e,l)}for(o=l.a.ec().Kc();o.Ob();)u=BB(o.Pb(),10),SQ(),m$(u.j,(zsn(),sst)),u.i=!0,eIn(u)}function dqn(n,t){var e,i,r,c,a,u,o,s,h,f;if(h=BB(mMn(n,(hWn(),Qft)),61),i=BB(xq(n.j,0),11),h==(kUn(),sIt)?qCn(i,SIt):h==SIt&&qCn(i,sIt),BB(mMn(t,(HXn(),Fgt)),174).Hc((mdn(),_It))){if(o=Gy(MD(mMn(n,Cpt))),s=Gy(MD(mMn(n,Ipt))),a=Gy(MD(mMn(n,Spt))),(u=BB(mMn(t,cpt),21)).Hc((lIn(),eIt)))for(e=s,f=n.o.a/2-i.n.a,c=new Wb(i.f);c.a<c.c.c.length;)(r=BB(n0(c),70)).n.b=e,r.n.a=f-r.o.a/2,e+=r.o.b+a;else if(u.Hc(rIt))for(c=new Wb(i.f);c.a<c.c.c.length;)(r=BB(n0(c),70)).n.a=o+n.o.a-i.n.a;f0(new Pw((gM(),new HV(t,!1,!1,new Ft))),new __(null,n,!1))}}function gqn(n,t){var i,r,c,a,u,o,s;if(0!=t.c.length){for(SQ(),yG(t.c,t.c.length,null),r=BB(n0(c=new Wb(t)),145);c.a<c.c.c.length;)i=BB(n0(c),145),!aen(r.e.c,i.e.c)||Kdn(BD(r.e).b,i.e.d)||Kdn(BD(i.e).b,r.e.d)?(eFn(n,r),r=i):(gun(r.k,i.k),gun(r.b,i.b),gun(r.c,i.c),Frn(r.i,i.i),gun(r.d,i.d),gun(r.j,i.j),a=e.Math.min(r.e.c,i.e.c),u=e.Math.min(r.e.d,i.e.d),o=e.Math.max(r.e.c+r.e.b,i.e.c+i.e.b)-a,s=e.Math.max(r.e.d+r.e.a,i.e.d+i.e.a)-u,xH(r.e,a,u,o,s),t0(r.f,i.f),!r.a&&(r.a=i.a),gun(r.g,i.g),WB(r.g,i));eFn(n,r)}}function pqn(n,t,e,i){var r,c,a,u,o,s;if((u=n.j)==(kUn(),PIt)&&t!=(QEn(),QCt)&&t!=(QEn(),YCt)&&(qCn(n,u=z_n(n,e)),!(n.q?n.q:(SQ(),SQ(),het))._b((HXn(),tpt))&&u!=PIt&&(0!=n.n.a||0!=n.n.b)&&hon(n,tpt,jkn(n,u))),t==(QEn(),WCt)){switch(s=0,u.g){case 1:case 3:(c=n.i.o.a)>0&&(s=n.n.a/c);break;case 2:case 4:(r=n.i.o.b)>0&&(s=n.n.b/r)}hon(n,(hWn(),Tlt),s)}if(o=n.o,a=n.a,i)a.a=i.a,a.b=i.b,n.d=!0;else if(t!=QCt&&t!=YCt&&u!=PIt)switch(u.g){case 1:a.a=o.a/2;break;case 2:a.a=o.a,a.b=o.b/2;break;case 3:a.a=o.a/2,a.b=o.b;break;case 4:a.b=o.b/2}else a.a=o.a/2,a.b=o.b/2}function vqn(n){var t,e,i,r,c,a,u,o,s,h;if(n.ej())if(h=n.Vi(),o=n.fj(),h>0)if(t=new jcn(n.Gi()),c=(e=h)<100?null:new Fj(e),JD(n,e,t.g),r=1==e?n.Zi(4,Wtn(t,0),null,0,o):n.Zi(6,t,null,-1,o),n.bj()){for(i=new AL(t);i.e!=i.i.gc();)c=n.dj(kpn(i),c);c?(c.Ei(r),c.Fi()):n.$i(r)}else c?(c.Ei(r),c.Fi()):n.$i(r);else JD(n,n.Vi(),n.Wi()),n.$i(n.Zi(6,(SQ(),set),null,-1,o));else if(n.bj())if((h=n.Vi())>0){for(u=n.Wi(),s=h,JD(n,h,u),c=s<100?null:new Fj(s),i=0;i<s;++i)a=u[i],c=n.dj(a,c);c&&c.Fi()}else JD(n,n.Vi(),n.Wi());else JD(n,n.Vi(),n.Wi())}function mqn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;for(u=new Wb(t);u.a<u.c.c.length;)(c=BB(n0(u),233)).e=null,c.c=0;for(o=null,a=new Wb(t);a.a<a.c.c.length;)if(f=(c=BB(n0(a),233)).d[0],!e||f.k==(uSn(),Cut)){for(b=BB(mMn(f,(hWn(),clt)),15).Kc();b.Ob();)l=BB(b.Pb(),10),e&&l.k!=(uSn(),Cut)||((!c.e&&(c.e=new Np),c.e).Fc(n.b[l.c.p][l.p]),++n.b[l.c.p][l.p].c);if(!e&&f.k==(uSn(),Cut)){if(o)for(h=BB(h6(n.d,o),21).Kc();h.Ob();)for(s=BB(h.Pb(),10),r=BB(h6(n.d,f),21).Kc();r.Ob();)i=BB(r.Pb(),10),UB(n.b[s.c.p][s.p]).Fc(n.b[i.c.p][i.p]),++n.b[i.c.p][i.p].c;o=f}}}function yqn(n,t){var e,i,r,c,a,u,o;for(e=0,o=new Np,c=new Wb(t);c.a<c.c.c.length;){switch(r=BB(n0(c),11),nhn(n.b,n.d[r.p]),o.c=x8(Ant,HWn,1,0,5,1),r.i.k.g){case 0:Otn(BB(mMn(r,(hWn(),Elt)),10).j,new Zd(o));break;case 1:S$(Qon(AV(new Rq(null,new w1(r.i.j,16)),new ng(r))),new tg(o));break;case 3:WB(o,new rI(BB(mMn(r,(hWn(),dlt)),11),iln(r.e.c.length+r.g.c.length)))}for(u=new Wb(o);u.a<u.c.c.length;)a=BB(n0(u),46),(i=ME(n,BB(a.a,11)))>n.d[r.p]&&(e+=n5(n.b,i)*BB(a.b,19).a,d3(n.a,iln(i)));for(;!Wy(n.a);)Mnn(n.b,BB(dU(n.a),19).a)}return e}function kqn(n,t,i,r){var c,a,u,o,s,h,f,l,b,w;for((f=new wA(BB(ZAn(n,(SMn(),HMt)),8))).a=e.Math.max(f.a-i.b-i.c,0),f.b=e.Math.max(f.b-i.d-i.a,0),(null==(c=MD(ZAn(n,DMt)))||(kW(c),c<=0))&&(c=1.3),u=new Np,l=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));l.e!=l.i.gc();)a=new zx(BB(kpn(l),33)),u.c[u.c.length]=a;switch(BB(ZAn(n,RMt),311).g){case 3:w=aFn(u,t,f.a,f.b,(s=r,kW(c),s));break;case 1:w=vBn(u,t,f.a,f.b,(h=r,kW(c),h));break;default:w=Mqn(u,t,f.a,f.b,(o=r,kW(c),o))}KUn(n,(b=yXn(new Gtn(w),t,i,f.a,f.b,r,(kW(c),c))).a,b.b,!1,!0)}function jqn(n,t){var e,i,r,c;c=new t_((e=t.b).j),r=0,(i=e.j).c=x8(Ant,HWn,1,0,5,1),eX(BB(gan(n.b,(kUn(),sIt),(Crn(),Rst)),15),e),r=Jmn(c,r,new xr,i),eX(BB(gan(n.b,sIt,Dst),15),e),r=Jmn(c,r,new Nr,i),eX(BB(gan(n.b,sIt,xst),15),e),eX(BB(gan(n.b,oIt,Rst),15),e),eX(BB(gan(n.b,oIt,Dst),15),e),r=Jmn(c,r,new Dr,i),eX(BB(gan(n.b,oIt,xst),15),e),eX(BB(gan(n.b,SIt,Rst),15),e),r=Jmn(c,r,new Rr,i),eX(BB(gan(n.b,SIt,Dst),15),e),r=Jmn(c,r,new Kr,i),eX(BB(gan(n.b,SIt,xst),15),e),eX(BB(gan(n.b,CIt,Rst),15),e),r=Jmn(c,r,new Qr,i),eX(BB(gan(n.b,CIt,Dst),15),e),eX(BB(gan(n.b,CIt,xst),15),e)}function Eqn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(OTn(t,"Layer size calculation",1),f=RQn,h=KQn,c=!1,o=new Wb(n.b);o.a<o.c.c.length;)if((s=(u=BB(n0(o),29)).c).a=0,s.b=0,0!=u.a.c.length){for(c=!0,b=new Wb(u.a);b.a<b.c.c.length;)d=(l=BB(n0(b),10)).o,w=l.d,s.a=e.Math.max(s.a,d.a+w.b+w.c);g=(r=BB(xq(u.a,0),10)).n.b-r.d.d,r.k==(uSn(),Mut)&&(g-=BB(mMn(n,(HXn(),Lpt)),142).d),i=(a=BB(xq(u.a,u.a.c.length-1),10)).n.b+a.o.b+a.d.a,a.k==Mut&&(i+=BB(mMn(n,(HXn(),Lpt)),142).a),s.b=i-g,f=e.Math.min(f,g),h=e.Math.max(h,i)}c||(f=0,h=0),n.f.b=h-f,n.c.b-=f,HSn(t)}function Tqn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;for(c=0,a=0,s=new Wb(n.a);s.a<s.c.c.length;)u=BB(n0(s),10),c=e.Math.max(c,u.d.b),a=e.Math.max(a,u.d.c);for(o=new Wb(n.a);o.a<o.c.c.length;){switch(u=BB(n0(o),10),BB(mMn(u,(HXn(),kdt)),248).g){case 1:w=0;break;case 2:w=1;break;case 5:w=.5;break;default:for(i=0,f=0,b=new Wb(u.j);b.a<b.c.c.length;)0==(l=BB(n0(b),11)).e.c.length||++i,0==l.g.c.length||++f;w=i+f==0?.5:f/(i+f)}g=n.c,h=u.o.a,p=(g.a-h)*w,w>.5?p-=2*a*(w-.5):w<.5&&(p+=2*c*(.5-w)),p<(r=u.d.b)&&(p=r),d=u.d.c,p>g.a-d-h&&(p=g.a-d-h),u.n.a=t+p}}function Mqn(n,t,e,i,r){var c,a,u,o,s,h,f,l,b;for(u=x8(xNt,qQn,25,n.c.length,15,1),ikn(l=new Xz(new Uu),n),s=0,b=new Np;0!=l.b.c.length;)if(a=BB(0==l.b.c.length?null:xq(l.b,0),157),s>1&&iG(a)*eG(a)/2>u[0]){for(c=0;c<b.c.length-1&&iG(a)*eG(a)/2>u[c];)++c;f=new Gtn(new s1(b,0,c+1)),h=iG(a)/eG(a),o=yXn(f,t,new bm,e,i,r,h),UR(kO(f.e),o),F8(eMn(l,f)),ikn(l,new s1(b,c+1,b.c.length)),b.c=x8(Ant,HWn,1,0,5,1),s=0,jG(u,u.length,0)}else null!=(0==l.b.c.length?null:xq(l.b,0))&&hrn(l,0),s>0&&(u[s]=u[s-1]),u[s]+=iG(a)*eG(a),++s,b.c[b.c.length]=a;return b}function Sqn(n){var t,e,i;if((e=BB(mMn(n,(HXn(),kgt)),163))==(Tbn(),Flt)){for(t=new oz(ZL(fbn(n).a.Kc(),new h));dAn(t);)if(!X5(BB(U5(t),17)))throw Hp(new rk(P1n+gyn(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(e==Hlt)for(i=new oz(ZL(lbn(n).a.Kc(),new h));dAn(i);)if(!X5(BB(U5(i),17)))throw Hp(new rk(P1n+gyn(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 Pqn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;for(OTn(t,"Label dummy removal",1),i=Gy(MD(mMn(n,(HXn(),jpt)))),r=Gy(MD(mMn(n,Spt))),o=BB(mMn(n,Udt),103),u=new Wb(n.b);u.a<u.c.c.length;)for(h=new M2(BB(n0(u),29).a,0);h.b<h.d.gc();)Px(h.b<h.d.gc()),(s=BB(h.d.Xb(h.c=h.b++),10)).k==(uSn(),Sut)&&(f=BB(mMn(s,(hWn(),dlt)),17),b=Gy(MD(mMn(f,agt))),a=GI(mMn(s,ult))===GI((Xyn(),ECt)),e=new wA(s.n),a&&(e.b+=b+i),c=new xC(s.o.a,s.o.b-b-i),l=BB(mMn(s,Plt),15),o==(Ffn(),HPt)||o==KPt?ADn(l,e,r,c,a,o):qhn(l,e,r,c),gun(f.b,l),rGn(s,GI(mMn(n,Zdt))===GI((Mbn(),YPt))),fW(h));HSn(t)}function Cqn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y;for(u=new Np,r=new Wb(t.a);r.a<r.c.c.length;)for(a=new Wb(BB(n0(r),10).j);a.a<a.c.c.length;){for(s=null,m=0,y=(v=Z0((c=BB(n0(a),11)).g)).length;m<y;++m)wan((p=v[m]).d.i,e)||((g=LHn(n,t,e,p,p.c,(ain(),qvt),s))!=s&&(u.c[u.c.length]=g),g.c&&(s=g));for(o=null,w=0,d=(b=Z0(c.e)).length;w<d;++w)wan((l=b[w]).c.i,e)||((g=LHn(n,t,e,l,l.d,(ain(),Hvt),o))!=o&&(u.c[u.c.length]=g),g.c&&(o=g))}for(f=new Wb(u);f.a<f.c.c.length;)h=BB(n0(f),441),-1!=E7(t.a,h.a,0)||WB(t.a,h.a),h.c&&(i.c[i.c.length]=h)}function Iqn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w;for(OTn(e,"Interactive cycle breaking",1),h=new Np,l=new Wb(t.a);l.a<l.c.c.length;)for((f=BB(n0(l),10)).p=1,b=Fjn(f).a,s=xwn(f,(ain(),qvt)).Kc();s.Ob();)for(c=new Wb(BB(s.Pb(),11).g);c.a<c.c.c.length;)(w=(i=BB(n0(c),17)).d.i)!=f&&Fjn(w).a<b&&(h.c[h.c.length]=i);for(a=new Wb(h);a.a<a.c.c.length;)tBn(i=BB(n0(a),17),!0);for(h.c=x8(Ant,HWn,1,0,5,1),o=new Wb(t.a);o.a<o.c.c.length;)(u=BB(n0(o),10)).p>0&&lPn(n,u,h);for(r=new Wb(h);r.a<r.c.c.length;)tBn(i=BB(n0(r),17),!0);h.c=x8(Ant,HWn,1,0,5,1),HSn(e)}function Oqn(n,t){var e,i,r,c,a,u,o,s,h;return s="",0==t.length?n.de(XVn,zVn,-1,-1):(mK((h=RMn(t)).substr(0,3),"at ")&&(h=h.substr(3)),-1==(a=(h=h.replace(/\[.*?\]/g,"")).indexOf("("))?-1==(a=h.indexOf("@"))?(s=h,h=""):(s=RMn(h.substr(a+1)),h=RMn(h.substr(0,a))):(e=h.indexOf(")",a),s=h.substr(a+1,e-(a+1)),h=RMn(h.substr(0,a))),-1!=(a=GO(h,YTn(46)))&&(h=h.substr(a+1)),(0==h.length||mK(h,"Anonymous function"))&&(h=zVn),u=mN(s,YTn(58)),r=MK(s,YTn(58),u-1),o=-1,i=-1,c=XVn,-1!=u&&-1!=r&&(c=s.substr(0,r),o=hx(s.substr(r+1,u-(r+1))),i=hx(s.substr(u+1))),n.de(c,h,o,i))}function Aqn(n,t,e){var i,r,c,a,u,o;if(0==t.l&&0==t.m&&0==t.h)throw Hp(new Oy("divide by zero"));if(0==n.l&&0==n.m&&0==n.h)return e&&(ltt=M$(0,0,0)),M$(0,0,0);if(t.h==CQn&&0==t.m&&0==t.l)return Fbn(n,e);if(o=!1,t.h>>19!=0&&(t=aon(t),o=!o),a=OLn(t),c=!1,r=!1,i=!1,n.h==CQn&&0==n.m&&0==n.l){if(r=!0,c=!0,-1!=a)return u=jAn(n,a),o&&Oon(u),e&&(ltt=M$(0,0,0)),u;n=WO((X7(),btt)),i=!0,o=!o}else n.h>>19!=0&&(c=!0,n=aon(n),i=!0,o=!o);return-1!=a?Bon(n,a,o,c,e):Kkn(n,t)<0?(e&&(ltt=c?aon(n):M$(n.l,n.m,n.h)),M$(0,0,0)):h_n(i?n:M$(n.l,n.m,n.h),t,o,c,r,e)}function $qn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w;if(n.e&&n.c.c<n.f)throw Hp(new Fy("Expected "+n.f+" phases to be configured; only found "+n.c.c));for(h=BB(Vj(n.g),9),b=sx(n.f),u=0,s=(c=h).length;u<s;++u)(f=BB(D7(n,(i=c[u]).g),246))?WB(b,BB(own(n,f),123)):b.c[b.c.length]=null;for(w=new B2,JT(AV($V(AV(new Rq(null,new w1(b,16)),new hu),new Eg(t)),new fu),new Tg(w)),Jcn(w,n.a),e=new Np,a=0,o=(r=h).length;a<o;++a)gun(e,Eun(n,JQ(BB(D7(w,(i=r[a]).g),20)))),(l=BB(xq(b,i.g),123))&&(e.c[e.c.length]=l);return gun(e,Eun(n,JQ(BB(D7(w,h[h.length-1].g+1),20)))),e}function Lqn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w;for(OTn(i,"Model order cycle breaking",1),n.a=0,n.b=0,l=new Np,h=t.a.c.length,s=new Wb(t.a);s.a<s.c.c.length;)Lx(o=BB(n0(s),10),(hWn(),wlt))&&(h=e.Math.max(h,BB(mMn(o,wlt),19).a+1));for(w=new Wb(t.a);w.a<w.c.c.length;)for(u=zPn(n,b=BB(n0(w),10),h),f=xwn(b,(ain(),qvt)).Kc();f.Ob();)for(a=new Wb(BB(f.Pb(),11).g);a.a<a.c.c.length;)zPn(n,(r=BB(n0(a),17)).d.i,h)<u&&(l.c[l.c.length]=r);for(c=new Wb(l);c.a<c.c.c.length;)tBn(r=BB(n0(c),17),!0),hon(t,(hWn(),qft),(hN(),!0));l.c=x8(Ant,HWn,1,0,5,1),HSn(i)}function Nqn(n,t){var e,i,r,c,a,u,o;if(!(n.g>t.f||t.g>n.f)){for(e=0,i=0,a=n.w.a.ec().Kc();a.Ob();)r=BB(a.Pb(),11),phn(Aon(Pun(Gk(PMt,1),sVn,8,0,[r.i.n,r.n,r.a])).b,t.g,t.f)&&++e;for(u=n.r.a.ec().Kc();u.Ob();)r=BB(u.Pb(),11),phn(Aon(Pun(Gk(PMt,1),sVn,8,0,[r.i.n,r.n,r.a])).b,t.g,t.f)&&--e;for(o=t.w.a.ec().Kc();o.Ob();)r=BB(o.Pb(),11),phn(Aon(Pun(Gk(PMt,1),sVn,8,0,[r.i.n,r.n,r.a])).b,n.g,n.f)&&++i;for(c=t.r.a.ec().Kc();c.Ob();)r=BB(c.Pb(),11),phn(Aon(Pun(Gk(PMt,1),sVn,8,0,[r.i.n,r.n,r.a])).b,n.g,n.f)&&--i;e<i?new S6(n,t,i-e):i<e?new S6(t,n,e-i):(new S6(t,n,0),new S6(n,t,0))}}function xqn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(s=t.c,r=QA(n.e),f=kL(Bx(B$(VA(n.e)),n.d*n.a,n.c*n.b),-.5),e=r.a-f.a,i=r.b-f.b,e=(a=t.a).c-e,i=a.d-i,o=new Wb(s);o.a<o.c.c.length;){switch(b=e+(l=(u=BB(n0(o),395)).b).a,g=i+l.b,w=CJ(b/n.a),p=CJ(g/n.b),(c=u.a).g){case 0:Hpn(),h=Brt;break;case 1:Hpn(),h=Frt;break;case 2:Hpn(),h=Hrt;break;default:Hpn(),h=qrt}c.a?(v=CJ((g+u.c)/n.b),WB(n.f,new x_(h,iln(p),iln(v))),c==(qpn(),tct)?won(n,0,p,w,v):won(n,w,p,n.d-1,v)):(d=CJ((b+u.c)/n.a),WB(n.f,new x_(h,iln(w),iln(d))),c==(qpn(),Zrt)?won(n,w,0,d,p):won(n,w,p,d,n.c-1))}}function Dqn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y;for(l=new Np,c=new Np,d=null,u=t.Kc();u.Ob();)a=new Hd(BB(u.Pb(),19).a),c.c[c.c.length]=a,d&&(a.d=d,d.e=a),d=a;for(m=zFn(n),h=0;h<c.c.length;++h){for(b=null,g=D6((l1(0,c.c.length),BB(c.c[0],652))),i=null,r=RQn,f=1;f<n.b.c.length;++f)p=g?e.Math.abs(g.b-f):e.Math.abs(f-b.b)+1,(w=b?e.Math.abs(f-b.b):p+1)<p?(s=b,o=w):(s=g,o=p),y=Gy(MD(mMn(n,(HXn(),Hpt)))),(v=m[f]+e.Math.pow(o,y))<r&&(r=v,(i=s).c=f),g&&f==g.b&&(b=g,g=xz(g));i&&(WB(l,iln(i.c)),i.a=!0,vln(i))}return SQ(),yG(l.c,l.c.length,null),l}function Rqn(n){var t,e,i,r,c,a,u,o,s,h;for(t=new To,e=new To,s=mK(K9n,(r=N_n(n.b,_9n))?SD(cdn((!r.b&&(r.b=new Jx((gWn(),k$t),X$t,r)),r.b),F9n)):null),o=0;o<n.i;++o)cL(u=BB(n.g[o],170),99)?0!=((a=BB(u,18)).Bb&h6n)?(0==(a.Bb&hVn)||!s&&null==((c=N_n(a,_9n))?SD(cdn((!c.b&&(c.b=new Jx((gWn(),k$t),X$t,c)),c.b),n8n)):null))&&f9(t,a):(h=Cvn(a))&&0!=(h.Bb&h6n)||(0==(a.Bb&hVn)||!s&&null==((i=N_n(a,_9n))?SD(cdn((!i.b&&(i.b=new Jx((gWn(),k$t),X$t,i)),i.b),n8n)):null))&&f9(e,a):(ZM(),BB(u,66).Oj()&&(u.Jj()||(f9(t,u),f9(e,u))));chn(t),chn(e),n.a=BB(t.g,247),BB(e.g,247)}function Kqn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;for(o=xSn(t),BB(mMn(t,(HXn(),qdt)),314)!=(Oin(),hht)&&e5(o,new vt),e5(o,new Dw(BB(mMn(t,Rdt),292))),b=0,s=new Np,r=new bV(o);r.a!=r.b;)i=BB(_hn(r),37),$Gn(n.c,i),b+=(f=BB(mMn(i,(hWn(),Mlt)),15)).gc(),WB(s,new rI(i,f.Kc()));for(OTn(e,"Recursive hierarchical layout",b),l=BB(BB(xq(s,s.c.length-1),46).b,47);l.Ob();)for(u=new Wb(s);u.a<u.c.c.length;)for(a=BB(n0(u),46),f=BB(a.b,47),c=BB(a.a,37);f.Ob();){if(cL(h=BB(f.Pb(),51),507)){if(c.e)break;h.pf(c,mcn(e,1));break}h.pf(c,mcn(e,1))}HSn(e)}function _qn(n,t){var e,i,r,c,a,u,o,s;if(b1(u=t.length-1,t.length),93==(a=t.charCodeAt(u))){if((c=GO(t,YTn(91)))>=0)return r=dbn(n,t.substr(1,c-1)),YUn(n,t.substr(c+1,u-(c+1)),r)}else{if(e=-1,null==Ett&&(Ett=new RegExp("\\d")),Ett.test(String.fromCharCode(a))&&(e=MK(t,YTn(46),u-1))>=0){i=BB(V5(n,Ptn(n,t.substr(1,e-1)),!1),58),o=0;try{o=l_n(t.substr(e+1),_Vn,DWn)}catch(h){throw cL(h=lun(h),127)?Hp(new L7(h)):Hp(h)}if(o<i.gc())return cL(s=i.Xb(o),72)&&(s=BB(s,72).dd()),BB(s,56)}if(e<0)return BB(V5(n,Ptn(n,t.substr(1)),!1),56)}return null}function Fqn(n,t,e){var i,r,c,a,u,o,s;if(Awn(t,e)>=0)return e;switch(DW(B7(n,e))){case 2:if(mK("",Cfn(n,e.Hj()).ne())){if(o=m$n(n,t,u=jV(B7(n,e)),kV(B7(n,e))))return o;for(a=0,s=(r=jKn(n,t)).gc();a<s;++a)if(aNn(OU(B7(n,o=BB(r.Xb(a),170))),u))return o}return null;case 4:if(mK("",Cfn(n,e.Hj()).ne())){for(i=e;i;i=J1(B7(n,i)))if(o=y$n(n,t,jV(B7(n,i)),kV(B7(n,i))))return o;if(u=jV(B7(n,e)),mK(S7n,u))return mjn(n,t);for(a=0,s=(c=EKn(n,t)).gc();a<s;++a)if(aNn(OU(B7(n,o=BB(c.Xb(a),170))),u))return o}return null;default:return null}}function Bqn(n,t,e){var i,r,c,a,u,o,s,h;if(0==e.gc())return!1;if(ZM(),c=(u=BB(t,66).Oj())?e:new gtn(e.gc()),$xn(n.e,t)){if(t.hi())for(s=e.Kc();s.Ob();)UFn(n,t,o=s.Pb(),cL(t,99)&&0!=(BB(t,18).Bb&BQn))||(r=Z3(t,o),c.Hc(r)||c.Fc(r));else if(!u)for(s=e.Kc();s.Ob();)r=Z3(t,o=s.Pb()),c.Fc(r)}else{if(e.gc()>1)throw Hp(new _y(I7n));for(h=axn(n.e.Tg(),t),i=BB(n.g,119),a=0;a<n.i;++a)if(r=i[a],h.rl(r.ak())){if(e.Hc(u?r:r.dd()))return!1;for(s=e.Kc();s.Ob();)o=s.Pb(),BB(ovn(n,a,u?BB(o,72):Z3(t,o)),72);return!0}u||(r=Z3(t,e.Kc().Pb()),c.Fc(r))}return pX(n,c)}function Hqn(n,t){var i,r,c,a,u,o,s;for(s=new YT,o=new Kb(new Ob(n.c).a.vc().Kc());o.a.Ob();)c=BB(o.a.Pb(),42),0==(a=BB(c.dd(),458)).b&&r5(s,a,s.c.b,s.c);for(;0!=s.b;)for(null==(a=BB(0==s.b?null:(Px(0!=s.b),Atn(s,s.a.a)),458)).a&&(a.a=0),r=new Wb(a.d);r.a<r.c.c.length;)null==(i=BB(n0(r),654)).b.a?i.b.a=Gy(a.a)+i.a:t.o==(oZ(),ryt)?i.b.a=e.Math.min(Gy(i.b.a),Gy(a.a)+i.a):i.b.a=e.Math.max(Gy(i.b.a),Gy(a.a)+i.a),--i.b.b,0==i.b.b&&DH(s,i.b);for(u=new Kb(new Ob(n.c).a.vc().Kc());u.a.Ob();)c=BB(u.a.Pb(),42),a=BB(c.dd(),458),t.i[a.c.p]=a.a}function qqn(){qqn=O,skt=new up(OZn),new up(AZn),new iR("DEPTH",iln(0)),ikt=new iR("FAN",iln(0)),tkt=new iR(U3n,iln(0)),dkt=new iR("ROOT",(hN(),!1)),ckt=new iR("LEFTNEIGHBOR",null),bkt=new iR("RIGHTNEIGHBOR",null),akt=new iR("LEFTSIBLING",null),wkt=new iR("RIGHTSIBLING",null),ekt=new iR("DUMMY",!1),new iR("LEVEL",iln(0)),lkt=new iR("REMOVABLE_EDGES",new YT),gkt=new iR("XCOOR",iln(0)),pkt=new iR("YCOOR",iln(0)),ukt=new iR("LEVELHEIGHT",0),rkt=new iR("ID",""),hkt=new iR("POSITION",iln(0)),fkt=new iR("PRELIM",0),okt=new iR("MODIFIER",0),nkt=new up($Zn),Zyt=new up(LZn)}function Gqn(n,t,i,r){var c,a,u,o,s,h,f,l,b,w;for(f=i+t.c.c.a,w=new Wb(t.j);w.a<w.c.c.length;){if(b=BB(n0(w),11),c=Aon(Pun(Gk(PMt,1),sVn,8,0,[b.i.n,b.n,b.a])),t.k==(uSn(),Iut)&&(o=BB(mMn(b,(hWn(),dlt)),11),c.a=Aon(Pun(Gk(PMt,1),sVn,8,0,[o.i.n,o.n,o.a])).a,t.n.a=c.a),u=new xC(0,c.b),b.j==(kUn(),oIt))u.a=f;else{if(b.j!=CIt)continue;u.a=i}if(!(e.Math.abs(c.a-u.a)<=r)||Nkn(t))for(a=b.g.c.length+b.e.c.length>1,h=new m6(b.b);y$(h.a)||y$(h.b);)l=(s=BB(y$(h.a)?n0(h.a):n0(h.b),17)).c==b?s.d:s.c,e.Math.abs(Aon(Pun(Gk(PMt,1),sVn,8,0,[l.i.n,l.n,l.a])).b-u.b)>1&&pxn(n,s,u,a,b)}}function zqn(n){var t,i,r,c,a,u;if(c=new M2(n.e,0),r=new M2(n.a,0),n.d)for(i=0;i<n.b;i++)Px(c.b<c.d.gc()),c.d.Xb(c.c=c.b++);else for(i=0;i<n.b-1;i++)Px(c.b<c.d.gc()),c.d.Xb(c.c=c.b++),fW(c);for(t=Gy((Px(c.b<c.d.gc()),MD(c.d.Xb(c.c=c.b++))));n.f-t>D3n;){for(a=t,u=0;e.Math.abs(t-a)<D3n;)++u,t=Gy((Px(c.b<c.d.gc()),MD(c.d.Xb(c.c=c.b++)))),Px(r.b<r.d.gc()),r.d.Xb(r.c=r.b++);u<n.b&&(Px(c.b>0),c.a.Xb(c.c=--c.b),DFn(n,n.b-u,a,r,c),Px(c.b<c.d.gc()),c.d.Xb(c.c=c.b++)),Px(r.b>0),r.a.Xb(r.c=--r.b)}if(!n.d)for(i=0;i<n.b-1;i++)Px(c.b<c.d.gc()),c.d.Xb(c.c=c.b++),fW(c);n.d=!0,n.c=!0}function Uqn(){Uqn=O,pLt=(cE(),gLt).b,yLt=BB(Wtn(QQ(gLt.b),0),34),vLt=BB(Wtn(QQ(gLt.b),1),34),mLt=BB(Wtn(QQ(gLt.b),2),34),OLt=gLt.bb,BB(Wtn(QQ(gLt.bb),0),34),BB(Wtn(QQ(gLt.bb),1),34),$Lt=gLt.fb,LLt=BB(Wtn(QQ(gLt.fb),0),34),BB(Wtn(QQ(gLt.fb),1),34),BB(Wtn(QQ(gLt.fb),2),18),xLt=gLt.qb,KLt=BB(Wtn(QQ(gLt.qb),0),34),BB(Wtn(QQ(gLt.qb),1),18),BB(Wtn(QQ(gLt.qb),2),18),DLt=BB(Wtn(QQ(gLt.qb),3),34),RLt=BB(Wtn(QQ(gLt.qb),4),34),FLt=BB(Wtn(QQ(gLt.qb),6),34),_Lt=BB(Wtn(QQ(gLt.qb),5),18),kLt=gLt.j,jLt=gLt.k,ELt=gLt.q,TLt=gLt.w,MLt=gLt.B,SLt=gLt.A,PLt=gLt.C,CLt=gLt.D,ILt=gLt._,ALt=gLt.cb,NLt=gLt.hb}function Xqn(n,t,i){var r,c,a,u,o,s,h,f,l;n.c=0,n.b=0,r=2*t.c.a.c.length+1;n:for(h=i.Kc();h.Ob();){if(l=0,u=(s=BB(h.Pb(),11)).j==(kUn(),sIt)||s.j==SIt){if(!(f=BB(mMn(s,(hWn(),Elt)),10)))continue;l+=iRn(n,r,s,f)}else{for(o=new Wb(s.g);o.a<o.c.c.length;){if((c=BB(n0(o),17).d).i.c==t.c){WB(n.a,s);continue n}l+=n.g[c.p]}for(a=new Wb(s.e);a.a<a.c.c.length;){if((c=BB(n0(a),17).c).i.c==t.c){WB(n.a,s);continue n}l-=n.g[c.p]}}s.e.c.length+s.g.c.length>0?(n.f[s.p]=l/(s.e.c.length+s.g.c.length),n.c=e.Math.min(n.c,n.f[s.p]),n.b=e.Math.max(n.b,n.f[s.p])):u&&(n.f[s.p]=l)}}function Wqn(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 Vqn(n,t,e){var i,r;for(OTn(e,"Graph transformation ("+n.a+")",1),r=a0(t.a),i=new Wb(t.b);i.a<i.c.c.length;)gun(r,BB(n0(i),29).a);if(BB(mMn(t,(HXn(),Xdt)),419)==(_nn(),Sht))switch(BB(mMn(t,Udt),103).g){case 2:L2(t,r);break;case 3:bdn(t,r);break;case 4:n.a==(Srn(),qut)?(bdn(t,r),$2(t,r)):($2(t,r),bdn(t,r))}else if(n.a==(Srn(),qut))switch(BB(mMn(t,Udt),103).g){case 2:L2(t,r),$2(t,r);break;case 3:bdn(t,r),L2(t,r);break;case 4:L2(t,r),bdn(t,r)}else switch(BB(mMn(t,Udt),103).g){case 2:L2(t,r),$2(t,r);break;case 3:L2(t,r),bdn(t,r);break;case 4:bdn(t,r),L2(t,r)}HSn(e)}function Qqn(n,t,e){var i,r,c,a,u,o,s,f,l,b,w;for(o=new fA,s=new fA,b=new fA,w=new fA,u=Gy(MD(mMn(t,(HXn(),Opt)))),r=Gy(MD(mMn(t,ypt))),a=new Wb(e);a.a<a.c.c.length;)if(c=BB(n0(a),10),(f=BB(mMn(c,(hWn(),Qft)),61))==(kUn(),sIt))for(s.a.zc(c,s),i=new oz(ZL(fbn(c).a.Kc(),new h));dAn(i);)TU(o,BB(U5(i),17).c.i);else if(f==SIt)for(w.a.zc(c,w),i=new oz(ZL(fbn(c).a.Kc(),new h));dAn(i);)TU(b,BB(U5(i),17).c.i);0!=o.a.gc()&&(l=AGn(new fX(2,r),t,o,s,-u-t.c.b))>0&&(n.a=u+(l-1)*r,t.c.b+=n.a,t.f.b+=n.a),0!=b.a.gc()&&(l=AGn(new fX(1,r),t,b,w,t.f.b+u-t.c.b))>0&&(t.f.b+=u+(l-1)*r)}function Yqn(n,t){var e,i,r,c;c=n.F,null==t?(n.F=null,Dsn(n,null)):(n.F=(kW(t),t),-1!=(i=GO(t,YTn(60)))?(r=t.substr(0,i),-1==GO(t,YTn(46))&&!mK(r,$Wn)&&!mK(r,S9n)&&!mK(r,P9n)&&!mK(r,C9n)&&!mK(r,I9n)&&!mK(r,O9n)&&!mK(r,A9n)&&!mK(r,$9n)&&(r=L9n),-1!=(e=mN(t,YTn(62)))&&(r+=""+t.substr(e+1)),Dsn(n,r)):(r=t,-1==GO(t,YTn(46))&&(-1!=(i=GO(t,YTn(91)))&&(r=t.substr(0,i)),mK(r,$Wn)||mK(r,S9n)||mK(r,P9n)||mK(r,C9n)||mK(r,I9n)||mK(r,O9n)||mK(r,A9n)||mK(r,$9n)?r=t:(r=L9n,-1!=i&&(r+=""+t.substr(i)))),Dsn(n,r),r==t&&(n.F=n.D))),0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,5,c,t))}function Jqn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;if(!((d=t.b.c.length)<3)){for(b=x8(ANt,hQn,25,d,15,1),f=0,h=new Wb(t.b);h.a<h.c.c.length;)s=BB(n0(h),29),b[f++]=s.a.c.length;for(l=new M2(t.b,2),i=1;i<d-1;i++)for(Px(l.b<l.d.gc()),w=new Wb((e=BB(l.d.Xb(l.c=l.b++),29)).a),c=0,u=0,o=0;o<b[i+1];o++)if(m=BB(n0(w),10),o==b[i+1]-1||YSn(n,m,i+1,i)){for(a=b[i]-1,YSn(n,m,i+1,i)&&(a=n.c.e[BB(BB(BB(xq(n.c.b,m.p),15).Xb(0),46).a,10).p]);u<=o;){if(!YSn(n,v=BB(xq(e.a,u),10),i+1,i))for(p=BB(xq(n.c.b,v.p),15).Kc();p.Ob();)g=BB(p.Pb(),46),((r=n.c.e[BB(g.a,10).p])<c||r>a)&&TU(n.b,BB(g.b,17));++u}c=a}}}function Zqn(n,t){var e;if(null==t||mK(t,zWn))return null;if(0==t.length&&n.k!=(PPn(),pMt))return null;switch(n.k.g){case 1:return mgn(t,a5n)?(hN(),vtt):mgn(t,u5n)?(hN(),ptt):null;case 2:try{return iln(l_n(t,_Vn,DWn))}catch(i){if(cL(i=lun(i),127))return null;throw Hp(i)}case 4:try{return bSn(t)}catch(i){if(cL(i=lun(i),127))return null;throw Hp(i)}case 3:return t;case 5:return rhn(n),HIn(n,t);case 6:return rhn(n),K$n(n,n.a,t);case 7:try{return(e=rAn(n)).Jf(t),e}catch(i){if(cL(i=lun(i),32))return null;throw Hp(i)}default:throw Hp(new Fy("Invalid type set for this layout option."))}}function nGn(n){var t,e,i,r,c,a,u;for(Dnn(),u=new Vv,e=new Wb(n);e.a<e.c.c.length;)t=BB(n0(e),140),(!u.b||t.c>=u.b.c)&&(u.b=t),(!u.c||t.c<=u.c.c)&&(u.d=u.c,u.c=t),(!u.e||t.d>=u.e.d)&&(u.e=t),(!u.f||t.d<=u.f.d)&&(u.f=t);return i=new Tpn((Aun(),Zat)),i2(n,out,new Jy(Pun(Gk(Jat,1),HWn,369,0,[i]))),a=new Tpn(eut),i2(n,uut,new Jy(Pun(Gk(Jat,1),HWn,369,0,[a]))),r=new Tpn(nut),i2(n,aut,new Jy(Pun(Gk(Jat,1),HWn,369,0,[r]))),c=new Tpn(tut),i2(n,cut,new Jy(Pun(Gk(Jat,1),HWn,369,0,[c]))),xLn(i.c,Zat),xLn(r.c,nut),xLn(c.c,tut),xLn(a.c,eut),u.a.c=x8(Ant,HWn,1,0,5,1),gun(u.a,i.c),gun(u.a,ean(r.c)),gun(u.a,c.c),gun(u.a,ean(a.c)),u}function tGn(n){var t;switch(n.d){case 1:if(n.hj())return-2!=n.o;break;case 2:if(n.hj())return-2==n.o;break;case 3:case 5:case 4:case 6:case 7:return n.o>-2;default:return!1}switch(t=n.gj(),n.p){case 0:return null!=t&&qy(TD(t))!=JI(n.k,0);case 1:return null!=t&&BB(t,217).a!=dG(n.k)<<24>>24;case 2:return null!=t&&BB(t,172).a!=(dG(n.k)&QVn);case 6:return null!=t&&JI(BB(t,162).a,n.k);case 5:return null!=t&&BB(t,19).a!=dG(n.k);case 7:return null!=t&&BB(t,184).a!=dG(n.k)<<16>>16;case 3:return null!=t&&Gy(MD(t))!=n.j;case 4:return null!=t&&BB(t,155).a!=n.j;default:return null==t?null!=n.n:!Nfn(t,n.n)}}function eGn(n,t,e){var i,r,c,a;return n.Fk()&&n.Ek()&&GI(a=Gz(n,BB(e,56)))!==GI(e)?(n.Oi(t),n.Ui(t,B9(n,t,a)),n.rk()&&(r=BB(e,49),c=n.Dk()?n.Bk()?r.ih(n.b,Cvn(BB(itn(jY(n.b),n.aj()),18)).n,BB(itn(jY(n.b),n.aj()).Yj(),26).Bj(),null):r.ih(n.b,Awn(r.Tg(),Cvn(BB(itn(jY(n.b),n.aj()),18))),null,null):r.ih(n.b,-1-n.aj(),null,null),!BB(a,49).eh()&&(i=BB(a,49),c=n.Dk()?n.Bk()?i.gh(n.b,Cvn(BB(itn(jY(n.b),n.aj()),18)).n,BB(itn(jY(n.b),n.aj()).Yj(),26).Bj(),c):i.gh(n.b,Awn(i.Tg(),Cvn(BB(itn(jY(n.b),n.aj()),18))),null,c):i.gh(n.b,-1-n.aj(),null,c)),c&&c.Fi()),mA(n.b)&&n.$i(n.Zi(9,e,a,t,!1)),a):e}function iGn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;for(f=Gy(MD(mMn(n,(HXn(),Ept)))),r=Gy(MD(mMn(n,Rpt))),hon(b=new Yu,Ept,f+r),v=(h=t).d,g=h.c.i,m=h.d.i,p=tA(g.c),y=tA(m.c),c=new Np,l=p;l<=y;l++)Bl(o=new $vn(n),(uSn(),Put)),hon(o,(hWn(),dlt),h),hon(o,ept,(QEn(),XCt)),hon(o,Mpt,b),w=BB(xq(n.b,l),29),l==p?Qyn(o,w.a.c.length-i,w):PZ(o,w),(k=Gy(MD(mMn(h,agt))))<0&&hon(h,agt,k=0),o.o.b=k,d=e.Math.floor(k/2),qCn(u=new CSn,(kUn(),CIt)),CZ(u,o),u.n.b=d,qCn(s=new CSn,oIt),CZ(s,o),s.n.b=d,MZ(h,u),qan(a=new wY,h),hon(a,vgt,null),SZ(a,s),MZ(a,v),zkn(o,h,a),c.c[c.c.length]=a,h=a;return c}function rGn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(u=BB(DSn(n,(kUn(),CIt)).Kc().Pb(),11).e,f=BB(DSn(n,oIt).Kc().Pb(),11).g,a=u.c.length,g=g1(BB(xq(n.j,0),11));a-- >0;){for(l1(0,u.c.length),b=BB(u.c[0],17),l1(0,f.c.length),r=E7((i=BB(f.c[0],17)).d.e,i,0),A2(b,i.d,r),SZ(i,null),MZ(i,null),l=b.a,t&&DH(l,new wA(g)),e=spn(i.a,0);e.b!=e.d.c;)DH(l,new wA(BB(b3(e),8)));for(d=b.b,h=new Wb(i.b);h.a<h.c.c.length;)s=BB(n0(h),70),d.c[d.c.length]=s;if(w=BB(mMn(b,(HXn(),vgt)),74),c=BB(mMn(i,vgt),74))for(w||(w=new km,hon(b,vgt,w)),o=spn(c,0);o.b!=o.d.c;)DH(w,new wA(BB(b3(o),8)))}}function cGn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w;if(i=BB(oV(n.b,t),124),(s=BB(BB(h6(n.r,t),21),84)).dc())return i.n.b=0,void(i.n.c=0);for(h=n.u.Hc((lIn(),eIt)),u=0,o=s.Kc(),f=null,l=0,b=0;o.Ob();)c=Gy(MD((r=BB(o.Pb(),111)).b.We((DN(),Lrt)))),a=r.b.rf().a,n.A.Hc((mdn(),_It))&&yRn(n,t),f?(w=b+f.d.c+n.w+r.d.b,u=e.Math.max(u,(h$(),rin(fJn),e.Math.abs(l-c)<=fJn||l==c||isNaN(l)&&isNaN(c)?0:w/(c-l)))):n.C&&n.C.b>0&&(u=e.Math.max(u,lcn(n.C.b+r.d.b,c))),f=r,l=c,b=a;n.C&&n.C.c>0&&(w=b+n.C.c,h&&(w+=f.d.c),u=e.Math.max(u,(h$(),rin(fJn),e.Math.abs(l-1)<=fJn||1==l||isNaN(l)&&isNaN(1)?0:w/(1-l)))),i.n.b=0,i.a.a=u}function aGn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w;if(i=BB(oV(n.b,t),124),(s=BB(BB(h6(n.r,t),21),84)).dc())return i.n.d=0,void(i.n.a=0);for(h=n.u.Hc((lIn(),eIt)),u=0,n.A.Hc((mdn(),_It))&&kRn(n,t),o=s.Kc(),f=null,b=0,l=0;o.Ob();)a=Gy(MD((r=BB(o.Pb(),111)).b.We((DN(),Lrt)))),c=r.b.rf().b,f?(w=l+f.d.a+n.w+r.d.d,u=e.Math.max(u,(h$(),rin(fJn),e.Math.abs(b-a)<=fJn||b==a||isNaN(b)&&isNaN(a)?0:w/(a-b)))):n.C&&n.C.d>0&&(u=e.Math.max(u,lcn(n.C.d+r.d.d,a))),f=r,b=a,l=c;n.C&&n.C.a>0&&(w=l+n.C.a,h&&(w+=f.d.a),u=e.Math.max(u,(h$(),rin(fJn),e.Math.abs(b-1)<=fJn||1==b||isNaN(b)&&isNaN(1)?0:w/(1-b)))),i.n.d=0,i.a.b=u}function uGn(n,t,e){var i,r,c,a,u,o;for(this.g=n,u=t.d.length,o=e.d.length,this.d=x8(Out,a1n,10,u+o,0,1),a=0;a<u;a++)this.d[a]=t.d[a];for(c=0;c<o;c++)this.d[u+c]=e.d[c];if(t.e){if(this.e=zB(t.e),this.e.Mc(e),e.e)for(r=e.e.Kc();r.Ob();)(i=BB(r.Pb(),233))!=t&&(this.e.Hc(i)?--i.c:this.e.Fc(i))}else e.e&&(this.e=zB(e.e),this.e.Mc(t));this.f=t.f+e.f,this.a=t.a+e.a,this.a>0?Jtn(this,this.f/this.a):null!=lL(t.g,t.d[0]).a&&null!=lL(e.g,e.d[0]).a?Jtn(this,(Gy(lL(t.g,t.d[0]).a)+Gy(lL(e.g,e.d[0]).a))/2):null!=lL(t.g,t.d[0]).a?Jtn(this,lL(t.g,t.d[0]).a):null!=lL(e.g,e.d[0]).a&&Jtn(this,lL(e.g,e.d[0]).a)}function oGn(n,t){var e,i,r,c,a,u,o,s,h;for(n.a=new BX($cn(WPt)),i=new Wb(t.a);i.a<i.c.c.length;){for(e=BB(n0(i),841),a=new Pgn(Pun(Gk(Qat,1),HWn,81,0,[])),WB(n.a.a,a),o=new Wb(e.d);o.a<o.c.c.length;)FGn(s=new NN(n,u=BB(n0(o),110)),BB(mMn(e.c,(hWn(),Xft)),21)),hU(n.g,e)||(VW(n.g,e,new xC(u.c,u.d)),VW(n.f,e,s)),WB(n.a.b,s),g2(a,s);for(c=new Wb(e.b);c.a<c.c.c.length;)s=new NN(n,(r=BB(n0(c),594)).kf()),VW(n.b,r,new rI(a,s)),FGn(s,BB(mMn(e.c,(hWn(),Xft)),21)),r.hf()&&(FGn(h=new Sgn(n,r.hf(),1),BB(mMn(e.c,Xft),21)),g2(new Pgn(Pun(Gk(Qat,1),HWn,81,0,[])),h),JIn(n.c,r.gf(),new rI(a,h)))}return n.a}function sGn(n){var t;this.a=n,t=(uSn(),Pun(Gk($ut,1),$Vn,267,0,[Cut,Put,Mut,Iut,Sut,Tut])).length,this.b=kq(lMt,[sVn,k3n],[593,146],0,[t,t],2),this.c=kq(lMt,[sVn,k3n],[593,146],0,[t,t],2),FY(this,Cut,(HXn(),Opt),Apt),tun(this,Cut,Put,Ept,Tpt),_Y(this,Cut,Iut,Ept),_Y(this,Cut,Mut,Ept),tun(this,Cut,Sut,Opt,Apt),FY(this,Put,ypt,kpt),_Y(this,Put,Iut,ypt),_Y(this,Put,Mut,ypt),tun(this,Put,Sut,Ept,Tpt),ZA(this,Iut,ypt),_Y(this,Iut,Mut,ypt),_Y(this,Iut,Sut,Ppt),ZA(this,Mut,Npt),tun(this,Mut,Sut,Ipt,Cpt),FY(this,Sut,ypt,ypt),FY(this,Tut,ypt,kpt),tun(this,Tut,Cut,Ept,Tpt),tun(this,Tut,Sut,Ept,Tpt),tun(this,Tut,Put,Ept,Tpt)}function hGn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g;if(cL(a=e.ak(),99)&&0!=(BB(a,18).Bb&BQn)&&(l=BB(e.dd(),49),(d=tfn(n.e,l))!=l)){if(jL(n,t,sTn(n,t,h=Z3(a,d))),f=null,mA(n.e)&&(i=Fqn((IPn(),Z$t),n.e.Tg(),a))!=itn(n.e.Tg(),n.c)){for(g=axn(n.e.Tg(),a),u=0,c=BB(n.g,119),o=0;o<t;++o)r=c[o],g.rl(r.ak())&&++u;(f=new b4(n.e,9,i,l,d,u,!1)).Ei(new N7(n.e,9,n.c,e,h,t,!1))}return(b=Cvn(w=BB(a,18)))?(f=l.ih(n.e,Awn(l.Tg(),b),null,f),f=BB(d,49).gh(n.e,Awn(d.Tg(),b),null,f)):0!=(w.Bb&h6n)&&(s=-1-Awn(n.e.Tg(),w),f=l.ih(n.e,s,null,null),!BB(d,49).eh()&&(f=BB(d,49).gh(n.e,s,null,f))),f&&f.Fi(),h}return e}function fGn(n){var t,i,r,c,a,u,o,s;for(a=new Wb(n.a.b);a.a<a.c.c.length;)(c=BB(n0(a),81)).b.c=c.g.c,c.b.d=c.g.d;for(s=new xC(RQn,RQn),t=new xC(KQn,KQn),r=new Wb(n.a.b);r.a<r.c.c.length;)i=BB(n0(r),81),s.a=e.Math.min(s.a,i.g.c),s.b=e.Math.min(s.b,i.g.d),t.a=e.Math.max(t.a,i.g.c+i.g.b),t.b=e.Math.max(t.b,i.g.d+i.g.a);for(o=TX(n.c).a.nc();o.Ob();)u=BB(o.Pb(),46),i=BB(u.b,81),s.a=e.Math.min(s.a,i.g.c),s.b=e.Math.min(s.b,i.g.d),t.a=e.Math.max(t.a,i.g.c+i.g.b),t.b=e.Math.max(t.b,i.g.d+i.g.a);n.d=qx(new xC(s.a,s.b)),n.e=XR(new xC(t.a,t.b),s),n.a.a.c=x8(Ant,HWn,1,0,5,1),n.a.b.c=x8(Ant,HWn,1,0,5,1)}function lGn(n){var t,e,i;for(ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new Nf])),e=new Tl(n),i=0;i<e.a.length;++i)mK(t=dnn(e,i).je().a,"layered")?ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new hf])):mK(t,"force")?ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new zh])):mK(t,"stress")?ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new Xh])):mK(t,"mrtree")?ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new Pf])):mK(t,"radial")?ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new yf])):mK(t,"disco")?ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new Gh,new Hh])):mK(t,"sporeOverlap")||mK(t,"sporeCompaction")?ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new Tf])):mK(t,"rectpacking")&&ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new Of]))}function bGn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;if(l=new wA(n.o),p=t.a/l.a,u=t.b/l.b,d=t.a-l.a,c=t.b-l.b,e)for(r=GI(mMn(n,(HXn(),ept)))===GI((QEn(),XCt)),w=new Wb(n.j);w.a<w.c.c.length;)switch((b=BB(n0(w),11)).j.g){case 1:r||(b.n.a*=p);break;case 2:b.n.a+=d,r||(b.n.b*=u);break;case 3:r||(b.n.a*=p),b.n.b+=c;break;case 4:r||(b.n.b*=u)}for(s=new Wb(n.b);s.a<s.c.c.length;)h=(o=BB(n0(s),70)).n.a+o.o.a/2,f=o.n.b+o.o.b/2,(g=h/l.a)+(a=f/l.b)>=1&&(g-a>0&&f>=0?(o.n.a+=d,o.n.b+=c*a):g-a<0&&h>=0&&(o.n.a+=d*g,o.n.b+=c));n.o.a=t.a,n.o.b=t.b,hon(n,(HXn(),Fgt),(mdn(),new YK(i=BB(Vj(YIt),9),BB(SR(i,i.length),9),0)))}function wGn(n,t,e,i,r,c){if(null!=t&&Xbn(t,AAt,$At))throw Hp(new _y("invalid scheme: "+t));if(!(n||null!=e&&-1==GO(e,YTn(35))&&e.length>0&&(b1(0,e.length),47!=e.charCodeAt(0))))throw Hp(new _y("invalid opaquePart: "+e));if(n&&(null==t||!xT(jAt,t.toLowerCase()))&&null!=e&&Xbn(e,LAt,NAt))throw Hp(new _y(o9n+e));if(n&&null!=t&&xT(jAt,t.toLowerCase())&&!CEn(e))throw Hp(new _y(o9n+e));if(!Ubn(i))throw Hp(new _y("invalid device: "+i));if(!Rhn(r))throw Hp(new _y(null==r?"invalid segments: null":"invalid segment: "+shn(r)));if(null!=c&&-1!=GO(c,YTn(35)))throw Hp(new _y("invalid query: "+c))}function dGn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(OTn(t,"Calculate Graph Size",1),t.n&&n&&y0(t,o2(n),(Bsn(),uOt)),o=ZJn,s=ZJn,a=n4n,u=n4n,l=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));l.e!=l.i.gc();)d=(h=BB(kpn(l),33)).i,g=h.j,v=h.g,r=h.f,c=BB(ZAn(h,(sWn(),$St)),142),o=e.Math.min(o,d-c.b),s=e.Math.min(s,g-c.d),a=e.Math.max(a,d+v+c.c),u=e.Math.max(u,g+r+c.a);for(b=new xC(o-(w=BB(ZAn(n,(sWn(),XSt)),116)).b,s-w.d),f=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));f.e!=f.i.gc();)Pen(h=BB(kpn(f),33),h.i-b.a),Cen(h,h.j-b.b);p=a-o+(w.b+w.c),i=u-s+(w.d+w.a),Sen(n,p),Men(n,i),t.n&&n&&y0(t,o2(n),(Bsn(),uOt))}function gGn(n){var t,e,i,r,c,a,u,o,s,h;for(i=new Np,a=new Wb(n.e.a);a.a<a.c.c.length;){for(h=0,(r=BB(n0(a),121)).k.c=x8(Ant,HWn,1,0,5,1),e=new Wb(kbn(r));e.a<e.c.c.length;)(t=BB(n0(e),213)).f&&(WB(r.k,t),++h);1==h&&(i.c[i.c.length]=r)}for(c=new Wb(i);c.a<c.c.c.length;)for(r=BB(n0(c),121);1==r.k.c.length;){for(s=BB(n0(new Wb(r.k)),213),n.b[s.c]=s.g,u=s.d,o=s.e,e=new Wb(kbn(r));e.a<e.c.c.length;)Nfn(t=BB(n0(e),213),s)||(t.f?u==t.d||o==t.e?n.b[s.c]-=n.b[t.c]-t.g:n.b[s.c]+=n.b[t.c]-t.g:r==u?t.d==r?n.b[s.c]+=t.g:n.b[s.c]-=t.g:t.d==r?n.b[s.c]-=t.g:n.b[s.c]+=t.g);y7(u.k,s),y7(o.k,s),r=u==r?s.e:s.d}}function pGn(n,t){var e,i,r,c,a,u,o,s,h,f,l;if(null==t||0==t.length)return null;if(!(c=BB(SJ(n.f,t),23))){for(r=new Kb(new Ob(n.d).a.vc().Kc());r.a.Ob();)if(a=BB(r.a.Pb(),42),u=(e=BB(a.dd(),23)).f,l=t.length,mK(u.substr(u.length-l,l),t)&&(t.length==u.length||46==fV(u,u.length-t.length-1))){if(c)return null;c=e}if(!c)for(i=new Kb(new Ob(n.d).a.vc().Kc());i.a.Ob();)if(a=BB(i.a.Pb(),42),null!=(f=(e=BB(a.dd(),23)).g))for(s=0,h=(o=f).length;s<h;++s)if(u=o[s],l=t.length,mK(u.substr(u.length-l,l),t)&&(t.length==u.length||46==fV(u,u.length-t.length-1))){if(c)return null;c=e}c&&mZ(n.f,t,c)}return c}function vGn(n,t){var e,i,r,c,a;for(e=new Ik,a=!1,c=0;c<t.length;c++)if(b1(c,t.length),32!=(i=t.charCodeAt(c)))a?39==i?c+1<t.length&&(b1(c+1,t.length),39==t.charCodeAt(c+1))?(e.a+=String.fromCharCode(i),++c):a=!1:e.a+=String.fromCharCode(i):GO("GyMLdkHmsSEcDahKzZv",YTn(i))>0?(Ppn(n,e,0),e.a+=String.fromCharCode(i),Ppn(n,e,r=cgn(t,c)),c+=r-1):39==i?c+1<t.length&&(b1(c+1,t.length),39==t.charCodeAt(c+1))?(e.a+="'",++c):a=!0:e.a+=String.fromCharCode(i);else for(Ppn(n,e,0),e.a+=" ",Ppn(n,e,0);c+1<t.length&&(b1(c+1,t.length),32==t.charCodeAt(c+1));)++c;Ppn(n,e,0),pTn(n)}function mGn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p;if(OTn(i,"Network simplex layering",1),n.b=t,p=4*BB(mMn(t,(HXn(),xpt)),19).a,(g=n.b.a).c.length<1)HSn(i);else{for(d=null,c=spn(a=IKn(n,g),0);c.b!=c.d.c;){for(r=BB(b3(c),15),o=p*CJ(e.Math.sqrt(r.gc())),WKn(Qk(Jk(Yk(B_(u=o_n(r)),o),d),!0),mcn(i,1)),l=n.b.b,w=new Wb(u.a);w.a<w.c.c.length;){for(b=BB(n0(w),121);l.c.length<=b.e;)kG(l,l.c.length,new HX(n.b));PZ(BB(b.f,10),BB(xq(l,b.e),29))}if(a.b>1)for(d=x8(ANt,hQn,25,n.b.b.c.length,15,1),f=0,h=new Wb(n.b.b);h.a<h.c.c.length;)s=BB(n0(h),29),d[f++]=s.a.c.length}g.c=x8(Ant,HWn,1,0,5,1),n.a=null,n.b=null,n.c=null,HSn(i)}}function yGn(n){var t,i,r,c,a,u,o;for(t=0,a=new Wb(n.b.a);a.a<a.c.c.length;)(r=BB(n0(a),189)).b=0,r.c=0;for(ESn(n,0),ewn(n,n.g),kNn(n.c),Zy(n.c),Ffn(),i=_Pt,DKn(eO(Mzn(DKn(eO(Mzn(DKn(Mzn(n.c,i)),jln(i)))),i))),Mzn(n.c,_Pt),Bln(n,n.g),kMn(n,0),pHn(n,0),M$n(n,1),ESn(n,1),ewn(n,n.d),kNn(n.c),u=new Wb(n.b.a);u.a<u.c.c.length;)r=BB(n0(u),189),t+=e.Math.abs(r.c);for(o=new Wb(n.b.a);o.a<o.c.c.length;)(r=BB(n0(o),189)).b=0,r.c=0;for(i=HPt,DKn(eO(Mzn(DKn(eO(Mzn(DKn(Zy(Mzn(n.c,i))),jln(i)))),i))),Mzn(n.c,_Pt),Bln(n,n.d),kMn(n,1),pHn(n,1),M$n(n,0),Zy(n.c),c=new Wb(n.b.a);c.a<c.c.c.length;)r=BB(n0(c),189),t+=e.Math.abs(r.c);return t}function kGn(n,t){var e,i,r,c,a,u,o,s,h;if(null!=(s=t).b&&null!=n.b){for(T$n(n),qHn(n),T$n(s),qHn(s),e=x8(ANt,hQn,25,n.b.length+s.b.length,15,1),h=0,i=0,a=0;i<n.b.length&&a<s.b.length;)if(r=n.b[i],c=n.b[i+1],u=s.b[a],o=s.b[a+1],c<u)i+=2;else if(c>=u&&r<=o)u<=r&&c<=o?(e[h++]=r,e[h++]=c,i+=2):u<=r?(e[h++]=r,e[h++]=o,n.b[i]=o+1,a+=2):c<=o?(e[h++]=u,e[h++]=c,i+=2):(e[h++]=u,e[h++]=o,n.b[i]=o+1);else{if(!(o<r))throw Hp(new dy("Token#intersectRanges(): Internal Error: ["+n.b[i]+","+n.b[i+1]+"] & ["+s.b[a]+","+s.b[a+1]+"]"));a+=2}for(;i<n.b.length;)e[h++]=n.b[i++],e[h++]=n.b[i++];n.b=x8(ANt,hQn,25,h,15,1),aHn(e,0,n.b,0,h)}}function jGn(n){var t,i,r,c,a,u,o;for(t=new Np,n.g=new Np,n.d=new Np,u=new usn(new Pb(n.f.b).a);u.b;)WB(t,BB(BB((a=ten(u)).dd(),46).b,81)),dA(BB(a.cd(),594).gf())?WB(n.d,BB(a.dd(),46)):WB(n.g,BB(a.dd(),46));for(ewn(n,n.d),ewn(n,n.g),n.c=new sOn(n.b),ej(n.c,(vM(),Gat)),Bln(n,n.d),Bln(n,n.g),gun(t,n.c.a.b),n.e=new xC(RQn,RQn),n.a=new xC(KQn,KQn),r=new Wb(t);r.a<r.c.c.length;)i=BB(n0(r),81),n.e.a=e.Math.min(n.e.a,i.g.c),n.e.b=e.Math.min(n.e.b,i.g.d),n.a.a=e.Math.max(n.a.a,i.g.c+i.g.b),n.a.b=e.Math.max(n.a.b,i.g.d+i.g.a);tj(n.c,new jt),o=0;do{c=yGn(n),++o}while((o<2||c>KVn)&&o<10);tj(n.c,new Et),yGn(n),IU(n.c),fGn(n.f)}function EGn(n,t,e){var i,r,c,a,u,o,s,h,f,l;if(qy(TD(mMn(e,(HXn(),wgt)))))for(r=new Wb(e.j);r.a<r.c.c.length;)for(u=0,o=(a=Z0(BB(n0(r),11).g)).length;u<o;++u)(c=a[u]).d.i==e&&qy(TD(mMn(c,dgt)))&&(h=c.c,(s=BB(RX(n.b,h),10))||(hon(s=bXn(h,(QEn(),QCt),h.j,-1,null,null,h.o,BB(mMn(t,Udt),103),t),(hWn(),dlt),h),VW(n.b,h,s),WB(t.a,s)),l=c.d,(f=BB(RX(n.b,l),10))||(hon(f=bXn(l,(QEn(),QCt),l.j,1,null,null,l.o,BB(mMn(t,Udt),103),t),(hWn(),dlt),l),VW(n.b,l,f),WB(t.a,f)),SZ(i=W5(c),BB(xq(s.j,0),11)),MZ(i,BB(xq(f.j,0),11)),JIn(n.a,c,new L_(i,t,(ain(),qvt))),BB(mMn(t,(hWn(),Zft)),21).Fc((bDn(),lft)))}function TGn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w;for(OTn(e,"Label dummy switching",1),i=BB(mMn(t,(HXn(),Vdt)),227),pcn(t),r=j$n(t,i),n.a=x8(xNt,qQn,25,t.b.c.length,15,1),$Pn(),h=0,b=(u=Pun(Gk(uht,1),$Vn,227,0,[Zst,tht,Jst,nht,eht,Yst])).length;h<b;++h)if(((c=u[h])==eht||c==Yst||c==nht)&&!BB(SN(r.a,c)?r.b[c.g]:null,15).dc()){Zcn(n,t);break}for(f=0,w=(o=Pun(Gk(uht,1),$Vn,227,0,[Zst,tht,Jst,nht,eht,Yst])).length;f<w;++f)(c=o[f])==eht||c==Yst||c==nht||GKn(n,BB(SN(r.a,c)?r.b[c.g]:null,15));for(s=0,l=(a=Pun(Gk(uht,1),$Vn,227,0,[Zst,tht,Jst,nht,eht,Yst])).length;s<l;++s)((c=a[s])==eht||c==Yst||c==nht)&&GKn(n,BB(SN(r.a,c)?r.b[c.g]:null,15));n.a=null,HSn(e)}function MGn(n,t){var e,i,r,c,a,u,o,s,h,f,l;switch(n.k.g){case 1:if(i=BB(mMn(n,(hWn(),dlt)),17),(e=BB(mMn(i,glt),74))?qy(TD(mMn(i,Clt)))&&(e=Jon(e)):e=new km,s=BB(mMn(n,hlt),11)){if(t<=(h=Aon(Pun(Gk(PMt,1),sVn,8,0,[s.i.n,s.n,s.a]))).a)return h.b;r5(e,h,e.a,e.a.a)}if(f=BB(mMn(n,flt),11)){if((l=Aon(Pun(Gk(PMt,1),sVn,8,0,[f.i.n,f.n,f.a]))).a<=t)return l.b;r5(e,l,e.c.b,e.c)}if(e.b>=2){for(a=BB(b3(o=spn(e,0)),8),u=BB(b3(o),8);u.a<t&&o.b!=o.d.c;)a=u,u=BB(b3(o),8);return a.b+(t-a.a)/(u.a-a.a)*(u.b-a.b)}break;case 3:switch(r=(c=BB(mMn(BB(xq(n.j,0),11),(hWn(),dlt)),11)).i,c.j.g){case 1:return r.n.b;case 3:return r.n.b+r.o.b}}return Fjn(n).b}function SGn(n){var t,e,i,r,c,a,u,o,s,f;for(c=new Wb(n.d.b);c.a<c.c.c.length;)for(u=new Wb(BB(n0(c),29).a);u.a<u.c.c.length;)!qy(TD(mMn(a=BB(n0(u),10),(HXn(),Tdt))))||h3(hbn(a))?(r=new UV(a.n.a-a.d.b,a.n.b-a.d.d,a.o.a+a.d.b+a.d.c,a.o.b+a.d.d+a.d.a),t=ON(iM(tM(eM(new Wv,a),r),dst),n.a),IN(nM(Xen(new Xv,Pun(Gk(bit,1),HWn,57,0,[t])),t),n.a),o=new Dp,VW(n.e,t,o),(e=F3(new oz(ZL(fbn(a).a.Kc(),new h)))-F3(new oz(ZL(lbn(a).a.Kc(),new h))))<0?Uun(o,!0,(Ffn(),_Pt)):e>0&&Uun(o,!0,(Ffn(),FPt)),a.k==(uSn(),Mut)&&wV(o),VW(n.f,a,t)):((s=(i=BB(iY(hbn(a)),17)).c.i)==a&&(s=i.d.i),f=new rI(s,XR(B$(a.n),s.n)),VW(n.b,a,f))}function PGn(n,t,i){var r,c,a,u,o,s,h,f;switch(OTn(i,"Node promotion heuristic",1),n.g=t,yUn(n),n.q=BB(mMn(t,(HXn(),Sgt)),260),f=BB(mMn(n.g,Mgt),19).a,a=new hi,n.q.g){case 2:case 1:default:_Hn(n,a);break;case 3:for(n.q=(sNn(),Ovt),_Hn(n,a),s=0,o=new Wb(n.a);o.a<o.c.c.length;)u=BB(n0(o),19),s=e.Math.max(s,u.a);s>n.j&&(n.q=Tvt,_Hn(n,a));break;case 4:for(n.q=(sNn(),Ovt),_Hn(n,a),h=0,c=new Wb(n.b);c.a<c.c.c.length;)r=MD(n0(c)),h=e.Math.max(h,(kW(r),r));h>n.k&&(n.q=Pvt,_Hn(n,a));break;case 6:_Hn(n,new od(CJ(e.Math.ceil(n.f.length*f/100))));break;case 5:_Hn(n,new sd(CJ(e.Math.ceil(n.d*f/100))))}oDn(n,t),HSn(i)}function CGn(n,t,e){var i,r,c,a;this.j=n,this.e=qEn(n),this.o=this.j.e,this.i=!!this.o,this.p=this.i?BB(xq(e,vW(this.o).p),214):null,r=BB(mMn(n,(hWn(),Zft)),21),this.g=r.Hc((bDn(),lft)),this.b=new Np,this.d=new wdn(this.e),a=BB(mMn(this.j,Slt),230),this.q=Han(t,a,this.e),this.k=new aZ(this),c=u6(Pun(Gk(jst,1),HWn,225,0,[this,this.d,this.k,this.q])),t!=(oin(),Omt)||qy(TD(mMn(n,(HXn(),xdt))))?t==Omt&&qy(TD(mMn(n,(HXn(),xdt))))?(i=new UEn(this.e),c.c[c.c.length]=i,this.c=new prn(i,a,BB(this.q,402))):this.c=new vP(t,this):(i=new UEn(this.e),c.c[c.c.length]=i,this.c=new G2(i,a,BB(this.q,402))),WB(c,this.c),CHn(c,this.e),this.s=wXn(this.k)}function IGn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(l=(s=BB(iL(new wg(spn(new bg(t).a.d,0))),86))?BB(mMn(s,(qqn(),ckt)),86):null,r=1;s&&l;){for(a=0,v=0,e=s,i=l,c=0;c<r;c++)e=G8(e),i=G8(i),v+=Gy(MD(mMn(e,(qqn(),okt)))),a+=Gy(MD(mMn(i,okt)));if(p=Gy(MD(mMn(l,(qqn(),fkt)))),g=Gy(MD(mMn(s,fkt))),h=E5(s,l),0<(f=p+a+n.a+h-g-v)){for(u=t,o=0;u&&u!=i;)++o,u=BB(mMn(u,akt),86);if(!u)return;for(d=f/o,u=t;u!=i;)w=Gy(MD(mMn(u,fkt)))+f,hon(u,fkt,w),b=Gy(MD(mMn(u,okt)))+f,hon(u,okt,b),f-=d,u=BB(mMn(u,akt),86)}++r,l=(s=0==s.d.b?ZKn(new bg(t),r):BB(iL(new wg(spn(new bg(s).a.d,0))),86))?BB(mMn(s,ckt),86):null}}function OGn(n,t){var e,i,r,c,a,u,o,s,f;for(u=!0,r=0,o=n.f[t.p],s=t.o.b+n.n,e=n.c[t.p][2],c5(n.a,o,iln(BB(xq(n.a,o),19).a-1+e)),c5(n.b,o,Gy(MD(xq(n.b,o)))-s+e*n.e),++o>=n.i?(++n.i,WB(n.a,iln(1)),WB(n.b,s)):(i=n.c[t.p][1],c5(n.a,o,iln(BB(xq(n.a,o),19).a+1-i)),c5(n.b,o,Gy(MD(xq(n.b,o)))+s-i*n.e)),(n.q==(sNn(),Tvt)&&(BB(xq(n.a,o),19).a>n.j||BB(xq(n.a,o-1),19).a>n.j)||n.q==Pvt&&(Gy(MD(xq(n.b,o)))>n.k||Gy(MD(xq(n.b,o-1)))>n.k))&&(u=!1),c=new oz(ZL(fbn(t).a.Kc(),new h));dAn(c);)a=BB(U5(c),17).c.i,n.f[a.p]==o&&(r+=BB((f=OGn(n,a)).a,19).a,u=u&&qy(TD(f.b)));return n.f[t.p]=o,new rI(iln(r+=n.c[t.p][0]),(hN(),!!u))}function AGn(n,t,i,r,c){var a,u,o,s,h,f,l,b,w,d,g,p,v;for(l=new xp,u=new Np,rIn(n,i,n.d.fg(),u,l),rIn(n,r,n.d.gg(),u,l),n.b=.2*(g=BAn(wnn(new Rq(null,new w1(u,16)),new Sa)),p=BAn(wnn(new Rq(null,new w1(u,16)),new Pa)),e.Math.min(g,p)),a=0,o=0;o<u.c.length-1;o++)for(l1(o,u.c.length),s=BB(u.c[o],112),d=o+1;d<u.c.length;d++)a+=gHn(n,s,(l1(d,u.c.length),BB(u.c[d],112)));for(b=BB(mMn(t,(hWn(),Slt)),230),a>=2&&(v=QLn(u,!0,b),!n.e&&(n.e=new lg(n)),sgn(n.e,v,u,n.b)),iTn(u,b),czn(u),w=-1,f=new Wb(u);f.a<f.c.c.length;)h=BB(n0(f),112),e.Math.abs(h.s-h.c)<lZn||(w=e.Math.max(w,h.o),n.d.dg(h,c,n.c));return n.d.a.a.$b(),w+1}function $Gn(n,t){var e,i;Gy(MD(mMn(t,(HXn(),ypt))))<2&&hon(t,ypt,2),BB(mMn(t,Udt),103)==(Ffn(),BPt)&&hon(t,Udt,Wln(t)),0==(e=BB(mMn(t,wpt),19)).a?hon(t,(hWn(),Slt),new sbn):hon(t,(hWn(),Slt),new C4(e.a)),null==TD(mMn(t,xgt))&&hon(t,xgt,(hN(),GI(mMn(t,Zdt))===GI((Mbn(),QPt)))),JT(new Rq(null,new w1(t.a,16)),new Rw(n)),JT(wnn(new Rq(null,new w1(t.b,16)),new mt),new Kw(n)),i=new sGn(t),hon(t,(hWn(),Alt),i),h2(n.a),CU(n.a,(yMn(),Rat),BB(mMn(t,Gdt),246)),CU(n.a,Kat,BB(mMn(t,Pgt),246)),CU(n.a,_at,BB(mMn(t,qdt),246)),CU(n.a,Fat,BB(mMn(t,_gt),246)),CU(n.a,Bat,San(BB(mMn(t,Zdt),218))),aA(n.a,LXn(t)),hon(t,Mlt,$qn(n.a,t))}function LGn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;return l=n.c[t],b=n.c[e],!((w=BB(mMn(l,(hWn(),clt)),15))&&0!=w.gc()&&w.Hc(b)||(d=l.k!=(uSn(),Put)&&b.k!=Put,v=(g=BB(mMn(l,rlt),10))!=(p=BB(mMn(b,rlt),10)),m=!!g&&g!=l||!!p&&p!=b,y=omn(l,(kUn(),sIt)),k=omn(b,SIt),m|=omn(l,SIt)||omn(b,sIt),d&&(m&&v||y||k))||l.k==(uSn(),Iut)&&b.k==Cut||b.k==(uSn(),Iut)&&l.k==Cut)&&(h=n.c[t],c=n.c[e],r=fjn(n.e,h,c,(kUn(),CIt)),o=fjn(n.i,h,c,oIt),TNn(n.f,h,c),s=Nsn(n.b,h,c)+BB(r.a,19).a+BB(o.a,19).a+n.f.d,u=Nsn(n.b,c,h)+BB(r.b,19).a+BB(o.b,19).a+n.f.b,n.a&&(f=BB(mMn(h,dlt),11),a=BB(mMn(c,dlt),11),s+=BB((i=qyn(n.g,f,a)).a,19).a,u+=BB(i.b,19).a),s>u)}function NGn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(i=BB(mMn(n,(HXn(),ept)),98),u=n.f,a=n.d,o=u.a+a.b+a.c,s=0-a.d-n.c.b,f=u.b+a.d+a.a-n.c.b,h=new Np,l=new Np,c=new Wb(t);c.a<c.c.c.length;){switch(r=BB(n0(c),10),i.g){case 1:case 2:case 3:_Nn(r);break;case 4:w=(b=BB(mMn(r,npt),8))?b.a:0,r.n.a=o*Gy(MD(mMn(r,(hWn(),Tlt))))-w,Jan(r,!0,!1);break;case 5:g=(d=BB(mMn(r,npt),8))?d.a:0,r.n.a=Gy(MD(mMn(r,(hWn(),Tlt))))-g,Jan(r,!0,!1),u.a=e.Math.max(u.a,r.n.a+r.o.a/2)}switch(BB(mMn(r,(hWn(),Qft)),61).g){case 1:r.n.b=s,h.c[h.c.length]=r;break;case 3:r.n.b=f,l.c[l.c.length]=r}}switch(i.g){case 1:case 2:Rfn(h,n),Rfn(l,n);break;case 3:Kfn(h,n),Kfn(l,n)}}function xGn(n,t){var e,i,r,c,a,u,o,s,h,f;for(h=new Np,f=new Lp,c=null,r=0,i=0;i<t.length;++i)switch(Rsn(c,e=t[i])&&(r=Cdn(n,f,h,Kmt,r)),Lx(e,(hWn(),rlt))&&(c=BB(mMn(e,rlt),10)),e.k.g){case 0:for(o=qA(KB(abn(e,(kUn(),sIt)),new xc));Zin(o);)a=BB(P7(o),11),n.d[a.p]=r++,h.c[h.c.length]=a;for(r=Cdn(n,f,h,Kmt,r),s=qA(KB(abn(e,SIt),new xc));Zin(s);)a=BB(P7(s),11),n.d[a.p]=r++,h.c[h.c.length]=a;break;case 3:abn(e,Rmt).dc()||(a=BB(abn(e,Rmt).Xb(0),11),n.d[a.p]=r++,h.c[h.c.length]=a),abn(e,Kmt).dc()||d3(f,e);break;case 1:for(u=abn(e,(kUn(),CIt)).Kc();u.Ob();)a=BB(u.Pb(),11),n.d[a.p]=r++,h.c[h.c.length]=a;abn(e,oIt).Jc(new ZP(f,e))}return Cdn(n,f,h,Kmt,r),h}function DGn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(h=RQn,f=RQn,o=KQn,s=KQn,b=new Wb(t.i);b.a<b.c.c.length;)l=BB(n0(b),65),SA(c=BB(BB(RX(n.g,l.a),46).b,33),l.b.c,l.b.d),h=e.Math.min(h,c.i),f=e.Math.min(f,c.j),o=e.Math.max(o,c.i+c.g),s=e.Math.max(s,c.j+c.f);for(w=BB(ZAn(n.c,(MMn(),bTt)),116),KUn(n.c,o-h+(w.b+w.c),s-f+(w.d+w.a),!0,!0),lMn(n.c,-h+w.b,-f+w.d),r=new AL(iQ(n.c));r.e!=r.i.gc();)u=cDn(i=BB(kpn(r),79),!0,!0),d=PMn(i),p=OMn(i),g=new xC(d.i+d.g/2,d.j+d.f/2),a=new xC(p.i+p.g/2,p.j+p.f/2),Ukn(v=XR(new xC(a.a,a.b),g),d.g,d.f),UR(g,v),Ukn(m=XR(new xC(g.a,g.b),a),p.g,p.f),UR(a,m),CA(u,g.a,g.b),PA(u,a.a,a.b)}function RGn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;if(n.c=n.d,l=null==(b=TD(mMn(t,(HXn(),dpt))))||(kW(b),b),c=BB(mMn(t,(hWn(),Zft)),21).Hc((bDn(),lft)),e=!((r=BB(mMn(t,ept),98))==(QEn(),UCt)||r==WCt||r==XCt),!l||!e&&c)f=new Jy(Pun(Gk(jut,1),JZn,37,0,[t]));else{for(h=new Wb(t.a);h.a<h.c.c.length;)BB(n0(h),10).p=0;for(f=new Np,s=new Wb(t.a);s.a<s.c.c.length;)if(i=L_n(n,BB(n0(s),10),null)){for(qan(o=new min,t),hon(o,Xft,BB(i.b,21)),kQ(o.d,t.d),hon(o,Hgt,null),u=BB(i.a,15).Kc();u.Ob();)a=BB(u.Pb(),10),WB(o.a,a),a.a=o;f.Fc(o)}c&&(GI(mMn(t,Cdt))===GI((Bfn(),lut))?n.c=n.b:n.c=n.a)}return GI(mMn(t,Cdt))!==GI((Bfn(),wut))&&(SQ(),f.ad(new xt)),f}function KGn(n){NM(n,new MTn(mj(dj(vj(wj(pj(gj(new du,Q3n),"ELK Mr. Tree"),"Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."),new Na),Y3n),nbn((hAn(),JOt))))),u2(n,Q3n,QJn,Okt),u2(n,Q3n,vZn,20),u2(n,Q3n,VJn,dZn),u2(n,Q3n,pZn,iln(1)),u2(n,Q3n,kZn,(hN(),!0)),u2(n,Q3n,X2n,mpn(Ekt)),u2(n,Q3n,PZn,mpn(Mkt)),u2(n,Q3n,BZn,mpn(Skt)),u2(n,Q3n,SZn,mpn(Pkt)),u2(n,Q3n,CZn,mpn(Tkt)),u2(n,Q3n,MZn,mpn(Ckt)),u2(n,Q3n,IZn,mpn(Akt)),u2(n,Q3n,X3n,mpn(Dkt)),u2(n,Q3n,W3n,mpn(Lkt))}function _Gn(n){n.q||(n.q=!0,n.p=kan(n,0),n.a=kan(n,1),Krn(n.a,0),n.f=kan(n,2),Krn(n.f,1),Rrn(n.f,2),n.n=kan(n,3),Rrn(n.n,3),Rrn(n.n,4),Rrn(n.n,5),Rrn(n.n,6),n.g=kan(n,4),Krn(n.g,7),Rrn(n.g,8),n.c=kan(n,5),Krn(n.c,7),Krn(n.c,8),n.i=kan(n,6),Krn(n.i,9),Krn(n.i,10),Krn(n.i,11),Krn(n.i,12),Rrn(n.i,13),n.j=kan(n,7),Krn(n.j,9),n.d=kan(n,8),Krn(n.d,3),Krn(n.d,4),Krn(n.d,5),Krn(n.d,6),Rrn(n.d,7),Rrn(n.d,8),Rrn(n.d,9),Rrn(n.d,10),n.b=kan(n,9),Rrn(n.b,0),Rrn(n.b,1),n.e=kan(n,10),Rrn(n.e,1),Rrn(n.e,2),Rrn(n.e,3),Rrn(n.e,4),Krn(n.e,5),Krn(n.e,6),Krn(n.e,7),Krn(n.e,8),Krn(n.e,9),Krn(n.e,10),Rrn(n.e,11),n.k=kan(n,11),Rrn(n.k,0),Rrn(n.k,1),n.o=jan(n,12),n.s=jan(n,13))}function FGn(n,t){t.dc()&&eH(n.j,!0,!0,!0,!0),Nfn(t,(kUn(),dIt))&&eH(n.j,!0,!0,!0,!1),Nfn(t,hIt)&&eH(n.j,!1,!0,!0,!0),Nfn(t,EIt)&&eH(n.j,!0,!0,!1,!0),Nfn(t,MIt)&&eH(n.j,!0,!1,!0,!0),Nfn(t,gIt)&&eH(n.j,!1,!0,!0,!1),Nfn(t,fIt)&&eH(n.j,!1,!0,!1,!0),Nfn(t,TIt)&&eH(n.j,!0,!1,!1,!0),Nfn(t,jIt)&&eH(n.j,!0,!1,!0,!1),Nfn(t,yIt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,bIt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,yIt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,lIt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,kIt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,mIt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,vIt)&&eH(n.j,!0,!0,!0,!0)}function BGn(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g;for(c=new Np,s=new Wb(i);s.a<s.c.c.length;)if(a=null,(u=BB(n0(s),441)).f==(ain(),qvt))for(w=new Wb(u.e);w.a<w.c.c.length;)vW(g=(b=BB(n0(w),17)).d.i)==t?Stn(n,t,u,b,u.b,b.d):!e||wan(g,e)?GMn(n,t,u,i,b):((l=LHn(n,t,e,b,u.b,qvt,a))!=a&&(c.c[c.c.length]=l),l.c&&(a=l));else for(f=new Wb(u.e);f.a<f.c.c.length;)if(vW(d=(h=BB(n0(f),17)).c.i)==t)Stn(n,t,u,h,h.c,u.b);else{if(!e||wan(d,e))continue;(l=LHn(n,t,e,h,u.b,Hvt,a))!=a&&(c.c[c.c.length]=l),l.c&&(a=l)}for(o=new Wb(c);o.a<o.c.c.length;)u=BB(n0(o),441),-1!=E7(t.a,u.a,0)||WB(t.a,u.a),u.c&&(r.c[r.c.length]=u)}function HGn(n,t,e){var i,r,c,a,u,o,s,h;for(o=new Np,u=new Wb(t.a);u.a<u.c.c.length;)for(h=abn(BB(n0(u),10),(kUn(),oIt)).Kc();h.Ob();)for(r=new Wb(BB(h.Pb(),11).g);r.a<r.c.c.length;)!b5(i=BB(n0(r),17))&&i.c.i.c==i.d.i.c||b5(i)||i.d.i.c!=e||(o.c[o.c.length]=i);for(a=ean(e.a).Kc();a.Ob();)for(h=abn(BB(a.Pb(),10),(kUn(),CIt)).Kc();h.Ob();)for(r=new Wb(BB(h.Pb(),11).e);r.a<r.c.c.length;)if((b5(i=BB(n0(r),17))||i.c.i.c!=i.d.i.c)&&!b5(i)&&i.c.i.c==t){for(Px((s=new M2(o,o.c.length)).b>0),c=BB(s.a.Xb(s.c=--s.b),17);c!=i&&s.b>0;)n.a[c.p]=!0,n.a[i.p]=!0,Px(s.b>0),c=BB(s.a.Xb(s.c=--s.b),17);s.b>0&&fW(s)}}function qGn(n,t,e){var i,r,c,a,u,o,s,h,f;if(n.a!=t.Aj())throw Hp(new _y(d6n+t.ne()+g6n));if(i=Cfn((IPn(),Z$t),t).$k())return i.Aj().Nh().Ih(i,e);if(a=Cfn(Z$t,t).al()){if(null==e)return null;if((u=BB(e,15)).dc())return"";for(f=new Sk,c=u.Kc();c.Ob();)r=c.Pb(),cO(f,a.Aj().Nh().Ih(a,r)),f.a+=" ";return KO(f,f.a.length-1)}if(!(h=Cfn(Z$t,t).bl()).dc()){for(s=h.Kc();s.Ob();)if((o=BB(s.Pb(),148)).wj(e))try{if(null!=(f=o.Aj().Nh().Ih(o,e)))return f}catch(l){if(!cL(l=lun(l),102))throw Hp(l)}throw Hp(new _y("Invalid value: '"+e+"' for datatype :"+t.ne()))}return BB(t,834).Fj(),null==e?null:cL(e,172)?""+BB(e,172).a:tsn(e)==mtt?H$(IOt[0],BB(e,199)):Bbn(e)}function GGn(n){var t,i,r,c,a,u,o,s,h;for(s=new YT,u=new YT,c=new Wb(n);c.a<c.c.c.length;)(i=BB(n0(c),128)).v=0,i.n=i.i.c.length,i.u=i.t.c.length,0==i.n&&r5(s,i,s.c.b,s.c),0==i.u&&0==i.r.a.gc()&&r5(u,i,u.c.b,u.c);for(a=-1;0!=s.b;)for(t=new Wb((i=BB(tkn(s,0),128)).t);t.a<t.c.c.length;)(h=BB(n0(t),268).b).v=e.Math.max(h.v,i.v+1),a=e.Math.max(a,h.v),--h.n,0==h.n&&r5(s,h,s.c.b,s.c);if(a>-1){for(r=spn(u,0);r.b!=r.d.c;)(i=BB(b3(r),128)).v=a;for(;0!=u.b;)for(t=new Wb((i=BB(tkn(u,0),128)).i);t.a<t.c.c.length;)0==(o=BB(n0(t),268).a).r.a.gc()&&(o.v=e.Math.min(o.v,i.v-1),--o.u,0==o.u&&r5(u,o,u.c.b,u.c))}}function zGn(n,t,i,r,c){var a,u,o,s;return s=RQn,u=!1,a=!!(o=zBn(n,XR(new xC(t.a,t.b),n),UR(new xC(i.a,i.b),c),XR(new xC(r.a,r.b),i)))&&!(e.Math.abs(o.a-n.a)<=s5n&&e.Math.abs(o.b-n.b)<=s5n||e.Math.abs(o.a-t.a)<=s5n&&e.Math.abs(o.b-t.b)<=s5n),(o=zBn(n,XR(new xC(t.a,t.b),n),i,c))&&((e.Math.abs(o.a-n.a)<=s5n&&e.Math.abs(o.b-n.b)<=s5n)==(e.Math.abs(o.a-t.a)<=s5n&&e.Math.abs(o.b-t.b)<=s5n)||a?s=e.Math.min(s,lW(XR(o,i))):u=!0),(o=zBn(n,XR(new xC(t.a,t.b),n),r,c))&&(u||(e.Math.abs(o.a-n.a)<=s5n&&e.Math.abs(o.b-n.b)<=s5n)==(e.Math.abs(o.a-t.a)<=s5n&&e.Math.abs(o.b-t.b)<=s5n)||a)&&(s=e.Math.min(s,lW(XR(o,r)))),s}function UGn(n){NM(n,new MTn(dj(vj(wj(pj(gj(new du,_Zn),FZn),"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 gt),gZn))),u2(n,_Zn,jZn,mpn(kat)),u2(n,_Zn,TZn,(hN(),!0)),u2(n,_Zn,PZn,mpn(Tat)),u2(n,_Zn,BZn,mpn(Mat)),u2(n,_Zn,SZn,mpn(Sat)),u2(n,_Zn,CZn,mpn(Eat)),u2(n,_Zn,MZn,mpn(Pat)),u2(n,_Zn,IZn,mpn(Cat)),u2(n,_Zn,NZn,mpn(yat)),u2(n,_Zn,DZn,mpn(vat)),u2(n,_Zn,RZn,mpn(mat)),u2(n,_Zn,KZn,mpn(jat)),u2(n,_Zn,xZn,mpn(pat))}function XGn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(OTn(t,"Interactive crossing minimization",1),a=0,c=new Wb(n.b);c.a<c.c.c.length;)(i=BB(n0(c),29)).p=a++;for(d=new Rj((l=qEn(n)).length),CHn(new Jy(Pun(Gk(jst,1),HWn,225,0,[d])),l),w=0,a=0,r=new Wb(n.b);r.a<r.c.c.length;){for(e=0,f=0,h=new Wb((i=BB(n0(r),29)).a);h.a<h.c.c.length;)for((o=BB(n0(h),10)).n.a>0&&(e+=o.n.a+o.o.a/2,++f),b=new Wb(o.j);b.a<b.c.c.length;)BB(n0(b),11).p=w++;for(f>0&&(e/=f),g=x8(xNt,qQn,25,i.a.c.length,15,1),u=0,s=new Wb(i.a);s.a<s.c.c.length;)(o=BB(n0(s),10)).p=u++,g[o.p]=MGn(o,e),o.k==(uSn(),Put)&&hon(o,(hWn(),plt),g[o.p]);SQ(),m$(i.a,new Gd(g)),r_n(d,l,a,!0),++a}HSn(t)}function WGn(n,t){var e,i,r,c,a,u,o,s,h;if(5!=t.e){if(null!=(s=t).b&&null!=n.b){for(T$n(n),qHn(n),T$n(s),qHn(s),e=x8(ANt,hQn,25,n.b.length+s.b.length,15,1),h=0,i=0,a=0;i<n.b.length&&a<s.b.length;)if(r=n.b[i],c=n.b[i+1],u=s.b[a],o=s.b[a+1],c<u)e[h++]=n.b[i++],e[h++]=n.b[i++];else if(c>=u&&r<=o)u<=r&&c<=o?i+=2:u<=r?(n.b[i]=o+1,a+=2):c<=o?(e[h++]=r,e[h++]=u-1,i+=2):(e[h++]=r,e[h++]=u-1,n.b[i]=o+1,a+=2);else{if(!(o<r))throw Hp(new dy("Token#subtractRanges(): Internal Error: ["+n.b[i]+","+n.b[i+1]+"] - ["+s.b[a]+","+s.b[a+1]+"]"));a+=2}for(;i<n.b.length;)e[h++]=n.b[i++],e[h++]=n.b[i++];n.b=x8(ANt,hQn,25,h,15,1),aHn(e,0,n.b,0,h)}}else kGn(n,t)}function VGn(n){var t,e,i,r,c,a,u;if(!n.A.dc()){if(n.A.Hc((mdn(),KIt))&&(BB(oV(n.b,(kUn(),sIt)),124).k=!0,BB(oV(n.b,SIt),124).k=!0,t=n.q!=(QEn(),WCt)&&n.q!=XCt,Nl(BB(oV(n.b,oIt),124),t),Nl(BB(oV(n.b,CIt),124),t),Nl(n.g,t),n.A.Hc(_It)&&(BB(oV(n.b,sIt),124).j=!0,BB(oV(n.b,SIt),124).j=!0,BB(oV(n.b,oIt),124).k=!0,BB(oV(n.b,CIt),124).k=!0,n.g.k=!0)),n.A.Hc(RIt))for(n.a.j=!0,n.a.k=!0,n.g.j=!0,n.g.k=!0,u=n.B.Hc((n_n(),XIt)),c=0,a=(r=tpn()).length;c<a;++c)i=r[c],(e=BB(oV(n.i,i),306))&&(agn(i)?(e.j=!0,e.k=!0):(e.j=!u,e.k=!u));n.A.Hc(DIt)&&n.B.Hc((n_n(),UIt))&&(n.g.j=!0,n.g.j=!0,n.a.j||(n.a.j=!0,n.a.k=!0,n.a.e=!0))}}function QGn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d;for(e=new Wb(n.e.b);e.a<e.c.c.length;)for(r=new Wb(BB(n0(e),29).a);r.a<r.c.c.length;)if(i=BB(n0(r),10),o=(f=n.i[i.p]).a.e,u=f.d.e,i.n.b=o,d=u-o-i.o.b,t=AHn(i),bvn(),h=(i.q?i.q:(SQ(),SQ(),het))._b((HXn(),Rgt))?BB(mMn(i,Rgt),197):BB(mMn(vW(i),Kgt),197),t&&(h==fvt||h==hvt)&&(i.o.b+=d),t&&(h==bvt||h==fvt||h==hvt)){for(b=new Wb(i.j);b.a<b.c.c.length;)l=BB(n0(b),11),(kUn(),bIt).Hc(l.j)&&(s=BB(RX(n.k,l),121),l.n.b=s.e-o);for(a=new Wb(i.b);a.a<a.c.c.length;)c=BB(n0(a),70),(w=BB(mMn(i,$gt),21)).Hc((n$n(),NCt))?c.n.b+=d:w.Hc(xCt)&&(c.n.b+=d/2);(h==fvt||h==hvt)&&abn(i,(kUn(),SIt)).Jc(new ag(d))}}function YGn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;if(!n.b)return!1;for(a=null,l=null,r=1,(o=new H8(null,null)).a[1]=n.b,f=o;f.a[r];)s=r,u=l,l=f,f=f.a[r],r=(i=n.a.ue(t,f.d))<0?0:1,0==i&&(!e.c||cV(f.e,e.d))&&(a=f),f&&f.b||Vy(f.a[r])||(Vy(f.a[1-r])?l=l.a[s]=wrn(f,r):Vy(f.a[1-r])||(b=l.a[1-s])&&(Vy(b.a[1-s])||Vy(b.a[s])?(c=u.a[1]==l?1:0,Vy(b.a[s])?u.a[c]=r2(l,s):Vy(b.a[1-s])&&(u.a[c]=wrn(l,s)),f.b=u.a[c].b=!0,u.a[c].a[0].b=!1,u.a[c].a[1].b=!1):(l.b=!1,b.b=!0,f.b=!0)));return a&&(e.b=!0,e.d=a.e,f!=a&&(bMn(n,o,a,h=new H8(f.d,f.e)),l==a&&(l=h)),l.a[l.a[1]==f?1:0]=f.a[f.a[0]?0:1],--n.c),n.b=o.a[1],n.b&&(n.b.b=!1),e.b}function JGn(n){var t,i,r,c,a,u,o,s,h,f,l,b;for(c=new Wb(n.a.a.b);c.a<c.c.c.length;)for(s=(r=BB(n0(c),57)).c.Kc();s.Ob();)o=BB(s.Pb(),57),r.a!=o.a&&(l=dA(n.a.d)?n.a.g.Oe(r,o):n.a.g.Pe(r,o),a=r.b.a+r.d.b+l-o.b.a,a=e.Math.ceil(a),a=e.Math.max(0,a),Z7(r,o)?(u=AN(new qv,n.d),t=(h=CJ(e.Math.ceil(o.b.a-r.b.a)))-(o.b.a-r.b.a),i=r,(f=f3(r).a)||(f=f3(o).a,t=-t,i=o),f&&(i.b.a-=t,f.n.a-=t),UNn(aM(cM(uM(rM(new Hv,e.Math.max(0,h)),1),u),n.c[r.a.d])),UNn(aM(cM(uM(rM(new Hv,e.Math.max(0,-h)),1),u),n.c[o.a.d]))):(b=1,(cL(r.g,145)&&cL(o.g,10)||cL(o.g,145)&&cL(r.g,10))&&(b=2),UNn(aM(cM(uM(rM(new Hv,CJ(a)),b),n.c[r.a.d]),n.c[o.a.d]))))}function ZGn(n,t,i){var r,c,a,u,o,s,h,f,l,b;if(i)for(r=-1,f=new M2(t,0);f.b<f.d.gc();){if(Px(f.b<f.d.gc()),o=BB(f.d.Xb(f.c=f.b++),10),null==(l=n.c[o.c.p][o.p].a)){for(u=r+1,a=new M2(t,f.b);a.b<a.d.gc();)if(null!=(b=wL(n,(Px(a.b<a.d.gc()),BB(a.d.Xb(a.c=a.b++),10))).a)){kW(b),u=b;break}l=(r+u)/2,n.c[o.c.p][o.p].a=l,n.c[o.c.p][o.p].d=(kW(l),l),n.c[o.c.p][o.p].b=1}kW(l),r=l}else{for(c=0,h=new Wb(t);h.a<h.c.c.length;)o=BB(n0(h),10),null!=n.c[o.c.p][o.p].a&&(c=e.Math.max(c,Gy(n.c[o.c.p][o.p].a)));for(c+=2,s=new Wb(t);s.a<s.c.c.length;)o=BB(n0(s),10),null==n.c[o.c.p][o.p].a&&(l=H$n(n.i,24)*uYn*c-1,n.c[o.c.p][o.p].a=l,n.c[o.c.p][o.p].d=l,n.c[o.c.p][o.p].b=1)}}function nzn(){RO(BAt,new ts),RO(KAt,new ls),RO(qAt,new Es),RO(HAt,new Is),RO(GAt,new Os),RO(XAt,new As),RO(WAt,new $s),RO(HOt,new Ls),RO(BOt,new zo),RO(qOt,new Uo),RO(LOt,new Xo),RO(QAt,new Wo),RO(GOt,new Vo),RO(YAt,new Qo),RO(JAt,new Yo),RO(FAt,new Jo),RO(_At,new Zo),RO(X$t,new ns),RO(VAt,new es),RO(O$t,new is),RO(ktt,new rs),RO(Gk(NNt,1),new cs),RO(Ttt,new as),RO(Stt,new us),RO(mtt,new os),RO(_Nt,new ss),RO(Ptt,new hs),RO(uAt,new fs),RO(yAt,new bs),RO(oLt,new ws),RO($$t,new ds),RO(Ctt,new gs),RO(Att,new ps),RO($nt,new vs),RO(Rtt,new ms),RO(Nnt,new ys),RO(iLt,new ks),RO(FNt,new js),RO(_tt,new Ts),RO(Qtt,new Ms),RO(sAt,new Ss),RO(BNt,new Ps)}function tzn(n,t,e){var i,r,c,a,u,o,s,h,f;for(!e&&(e=Gun(t.q.getTimezoneOffset())),r=6e4*(t.q.getTimezoneOffset()-e.a),o=u=new PD(rbn(fan(t.q.getTime()),r)),u.q.getTimezoneOffset()!=t.q.getTimezoneOffset()&&(r>0?r-=864e5:r+=864e5,o=new PD(rbn(fan(t.q.getTime()),r))),h=new Ik,s=n.a.length,c=0;c<s;)if((i=fV(n.a,c))>=97&&i<=122||i>=65&&i<=90){for(a=c+1;a<s&&fV(n.a,a)==i;++a);aWn(h,i,a-c,u,o,e),c=a}else if(39==i){if(++c<s&&39==fV(n.a,c)){h.a+="'",++c;continue}for(f=!1;!f;){for(a=c;a<s&&39!=fV(n.a,a);)++a;if(a>=s)throw Hp(new _y("Missing trailing '"));a+1<s&&39==fV(n.a,a+1)?++a:f=!0,oO(h,fx(n.a,c,a)),c=a+1}}else h.a+=String.fromCharCode(i),++c;return h.a}function ezn(n){var t,e,i,r,c,a,u,o;for(t=null,i=new Wb(n);i.a<i.c.c.length;)Gy(lL((e=BB(n0(i),233)).g,e.d[0]).a),e.b=null,e.e&&e.e.gc()>0&&0==e.c&&(!t&&(t=new Np),t.c[t.c.length]=e);if(t)for(;0!=t.c.length;){if((e=BB(s6(t,0),233)).b&&e.b.c.length>0)for(!e.b&&(e.b=new Np),c=new Wb(e.b);c.a<c.c.c.length;)if(zy(lL((r=BB(n0(c),233)).g,r.d[0]).a)==zy(lL(e.g,e.d[0]).a)){if(E7(n,r,0)>E7(n,e,0))return new rI(r,e)}else if(Gy(lL(r.g,r.d[0]).a)>Gy(lL(e.g,e.d[0]).a))return new rI(r,e);for(u=(!e.e&&(e.e=new Np),e.e).Kc();u.Ob();)!(a=BB(u.Pb(),233)).b&&(a.b=new Np),LZ(0,(o=a.b).c.length),MS(o.c,0,e),a.c==o.c.length&&(t.c[t.c.length]=a)}return null}function izn(n,t){var e,i,r,c,a,u;if(null==n)return zWn;if(null!=t.a.zc(n,t))return"[...]";for(e=new $an(FWn,"[","]"),c=0,a=(r=n).length;c<a;++c)null!=(i=r[c])&&0!=(4&tsn(i).i)?!Array.isArray(i)||(u=vnn(i))>=14&&u<=16?cL(i,177)?b6(e,RCn(BB(i,177))):cL(i,190)?b6(e,JEn(BB(i,190))):cL(i,195)?b6(e,kSn(BB(i,195))):cL(i,2012)?b6(e,ZEn(BB(i,2012))):cL(i,48)?b6(e,DCn(BB(i,48))):cL(i,364)?b6(e,gIn(BB(i,364))):cL(i,832)?b6(e,xCn(BB(i,832))):cL(i,104)&&b6(e,NCn(BB(i,104))):t.a._b(i)?(e.a?oO(e.a,e.b):e.a=new lN(e.d),aO(e.a,"[...]")):b6(e,izn(een(i),new $q(t))):b6(e,null==i?zWn:Bbn(i));return e.a?0==e.e.length?e.a.a:e.a.a+""+e.e:e.c}function rzn(n,t,i,r){var c,a,u,o,s,h,f,l,b,w,d,g;for(w=qSn(cDn(t,!1,!1)),r&&(w=Jon(w)),g=Gy(MD(ZAn(t,(Epn(),pct)))),Px(0!=w.b),b=BB(w.a.a.c,8),h=BB(Dpn(w,1),8),w.b>2?(gun(s=new Np,new s1(w,1,w.b)),qan(d=new EAn(XXn(s,g+n.a)),t),i.c[i.c.length]=d):d=BB(RX(n.b,r?PMn(t):OMn(t)),266),u=PMn(t),r&&(u=OMn(t)),a=iPn(b,u),o=g+n.a,a.a?(o+=e.Math.abs(b.b-h.b),l=new xC(h.a,(h.b+b.b)/2)):(o+=e.Math.abs(b.a-h.a),l=new xC((h.a+b.a)/2,h.b)),VW(r?n.d:n.c,t,new Imn(d,a,l,o)),VW(n.b,t,d),!t.n&&(t.n=new eU(zOt,t,1,7)),f=new AL(t.n);f.e!=f.i.gc();)c=JRn(n,BB(kpn(f),137),!0,0,0),i.c[i.c.length]=c}function czn(n){var t,i,r,c,a,u,o,s,h;for(s=new Np,u=new Np,a=new Wb(n);a.a<a.c.c.length;)Vl(r=BB(n0(a),112),r.f.c.length),Ql(r,r.k.c.length),0==r.d&&(s.c[s.c.length]=r),0==r.i&&0==r.e.b&&(u.c[u.c.length]=r);for(i=-1;0!=s.c.length;)for(t=new Wb((r=BB(s6(s,0),112)).k);t.a<t.c.c.length;)Yl(h=BB(n0(t),129).b,e.Math.max(h.o,r.o+1)),i=e.Math.max(i,h.o),Vl(h,h.d-1),0==h.d&&(s.c[s.c.length]=h);if(i>-1){for(c=new Wb(u);c.a<c.c.c.length;)(r=BB(n0(c),112)).o=i;for(;0!=u.c.length;)for(t=new Wb((r=BB(s6(u,0),112)).f);t.a<t.c.c.length;)(o=BB(n0(t),129).a).e.b>0||(Yl(o,e.Math.min(o.o,r.o-1)),Ql(o,o.i-1),0==o.i&&(u.c[u.c.length]=o))}}function azn(n,t,e){var i,r,c,a,u;if(u=n.c,!t&&(t=L$t),n.c=t,0!=(4&n.Db)&&0==(1&n.Db)&&(a=new nU(n,1,2,u,n.c),e?e.Ei(a):e=a),u!=t)if(cL(n.Cb,284))n.Db>>16==-10?e=BB(n.Cb,284).nk(t,e):n.Db>>16==-15&&(!t&&(gWn(),t=l$t),!u&&(gWn(),u=l$t),n.Cb.nh()&&(a=new N7(n.Cb,1,13,u,t,uvn(H7(BB(n.Cb,59)),n),!1),e?e.Ei(a):e=a));else if(cL(n.Cb,88))n.Db>>16==-23&&(cL(t,88)||(gWn(),t=d$t),cL(u,88)||(gWn(),u=d$t),n.Cb.nh()&&(a=new N7(n.Cb,1,10,u,t,uvn(a4(BB(n.Cb,26)),n),!1),e?e.Ei(a):e=a));else if(cL(n.Cb,444))for(!(c=BB(n.Cb,836)).b&&(c.b=new Tp(new xm)),r=new Mp(new usn(new Pb(c.b.a).a));r.a.b;)e=azn(i=BB(ten(r.a).cd(),87),kLn(i,c),e);return e}function uzn(n,t){var e,i,r,c,a,u,o,s,h,f,l;for(a=qy(TD(ZAn(n,(HXn(),wgt)))),l=BB(ZAn(n,cpt),21),o=!1,s=!1,f=new AL((!n.c&&(n.c=new eU(XOt,n,9,9)),n.c));!(f.e==f.i.gc()||o&&s);){for(c=BB(kpn(f),118),u=0,r=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[(!c.d&&(c.d=new hK(_Ot,c,8,5)),c.d),(!c.e&&(c.e=new hK(_Ot,c,7,4)),c.e)])));dAn(r)&&(i=BB(U5(r),79),h=a&&QIn(i)&&qy(TD(ZAn(i,dgt))),e=bqn((!i.b&&(i.b=new hK(KOt,i,4,7)),i.b),c)?n==JJ(PTn(BB(Wtn((!i.c&&(i.c=new hK(KOt,i,5,8)),i.c),0),82))):n==JJ(PTn(BB(Wtn((!i.b&&(i.b=new hK(KOt,i,4,7)),i.b),0),82))),!((h||e)&&++u>1)););(u>0||l.Hc((lIn(),eIt))&&(!c.n&&(c.n=new eU(zOt,c,1,7)),c.n).i>0)&&(o=!0),u>1&&(s=!0)}o&&t.Fc((bDn(),lft)),s&&t.Fc((bDn(),bft))}function ozn(n){var t,i,r,c,a,u,o,s,h,f,l,b;if((b=BB(ZAn(n,(sWn(),KSt)),21)).dc())return null;if(o=0,u=0,b.Hc((mdn(),KIt))){for(f=BB(ZAn(n,uPt),98),r=2,i=2,c=2,a=2,t=JJ(n)?BB(ZAn(JJ(n),bSt),103):BB(ZAn(n,bSt),103),h=new AL((!n.c&&(n.c=new eU(XOt,n,9,9)),n.c));h.e!=h.i.gc();)if(s=BB(kpn(h),118),(l=BB(ZAn(s,wPt),61))==(kUn(),PIt)&&(l=OFn(s,t),Ypn(s,wPt,l)),f==(QEn(),XCt))switch(l.g){case 1:r=e.Math.max(r,s.i+s.g);break;case 2:i=e.Math.max(i,s.j+s.f);break;case 3:c=e.Math.max(c,s.i+s.g);break;case 4:a=e.Math.max(a,s.j+s.f)}else switch(l.g){case 1:r+=s.g+2;break;case 2:i+=s.f+2;break;case 3:c+=s.g+2;break;case 4:a+=s.f+2}o=e.Math.max(r,c),u=e.Math.max(i,a)}return KUn(n,o,u,!0,!0)}function szn(n,t,i,r,c){var a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;for(m=BB(P4(ytn(AV(new Rq(null,new w1(t.d,16)),new $d(i)),new Ld(i)),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15),l=DWn,f=_Vn,s=new Wb(t.b.j);s.a<s.c.c.length;)(o=BB(n0(s),11)).j==i&&(l=e.Math.min(l,o.p),f=e.Math.max(f,o.p));if(l==DWn)for(u=0;u<m.gc();u++)g9(BB(m.Xb(u),101),i,u);else for(Zq(y=x8(ANt,hQn,25,c.length,15,1),y.length),v=m.Kc();v.Ob();){for(p=BB(v.Pb(),101),a=BB(RX(n.b,p),177),h=0,g=l;g<=f;g++)a[g]&&(h=e.Math.max(h,r[g]));if(p.i){for(w=p.i.c,k=new Rv,b=0;b<c.length;b++)c[w][b]&&TU(k,iln(y[b]));for(;FT(k,iln(h));)++h}for(g9(p,i,h),d=l;d<=f;d++)a[d]&&(r[d]=h+1);p.i&&(y[p.i.c]=h)}}function hzn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d;for(c=null,r=new Wb(t.a);r.a<r.c.c.length;)AHn(i=BB(n0(r),10))?(h=new GV(i,!0,o=AN(oM(new qv,i),n.f),s=AN(oM(new qv,i),n.f)),f=i.o.b,bvn(),b=1e4,(l=(i.q?i.q:(SQ(),SQ(),het))._b((HXn(),Rgt))?BB(mMn(i,Rgt),197):BB(mMn(vW(i),Kgt),197))==hvt&&(b=1),w=UNn(aM(cM(rM(uM(new Hv,b),CJ(e.Math.ceil(f))),o),s)),l==fvt&&TU(n.d,w),O_n(n,ean(abn(i,(kUn(),CIt))),h),O_n(n,abn(i,oIt),h),a=h):(d=AN(oM(new qv,i),n.f),JT(AV(new Rq(null,new w1(i.j,16)),new Bc),new tC(n,d)),a=new GV(i,!1,d,d)),n.i[i.p]=a,c&&(u=c.c.d.a+K$(n.n,c.c,i)+i.d.d,c.b||(u+=c.c.o.b),UNn(aM(cM(uM(rM(new Hv,CJ(e.Math.ceil(u))),0),c.d),a.a))),c=a}function fzn(n,t){var i,r,c,a,u,o,s,f,l,b,w,d,g;for(OTn(t,"Label dummy insertions",1),b=new Np,u=Gy(MD(mMn(n,(HXn(),jpt)))),f=Gy(MD(mMn(n,Spt))),l=BB(mMn(n,Udt),103),w=new Wb(n.a);w.a<w.c.c.length;)for(a=new oz(ZL(lbn(BB(n0(w),10)).a.Kc(),new h));dAn(a);)if((c=BB(U5(a),17)).c.i!=c.d.i&&tL(c.b,nst)){for(i=oLn(n,c,g=Etn(c),d=sx(c.b.c.length)),b.c[b.c.length]=i,r=i.o,o=new M2(c.b,0);o.b<o.d.gc();)Px(o.b<o.d.gc()),GI(mMn(s=BB(o.d.Xb(o.c=o.b++),70),Ydt))===GI((Rtn(),zPt))&&(l==(Ffn(),HPt)||l==KPt?(r.a+=s.o.a+f,r.b=e.Math.max(r.b,s.o.b)):(r.a=e.Math.max(r.a,s.o.a),r.b+=s.o.b+f),d.c[d.c.length]=s,fW(o));l==(Ffn(),HPt)||l==KPt?(r.a-=f,r.b+=u+g):r.b+=u-f+g}gun(n.a,b),HSn(t)}function lzn(n,t,i,r){var c,a,u,o,s,h,f,l,b,w;for(l=XDn(n,t,a=new dOn(t)),w=e.Math.max(Gy(MD(mMn(t,(HXn(),agt)))),1),f=new Wb(l.a);f.a<f.c.c.length;)h=BB(n0(f),46),s=Bgn(BB(h.a,8),BB(h.b,8),w),zH(i,new xC(s.c,s.d)),zH(i,_x(new xC(s.c,s.d),s.b,0)),zH(i,_x(new xC(s.c,s.d),0,s.a)),zH(i,_x(new xC(s.c,s.d),s.b,s.a));switch(b=a.d,o=Bgn(BB(l.b.a,8),BB(l.b.b,8),w),b==(kUn(),CIt)||b==oIt?(r.c[b.g]=e.Math.min(r.c[b.g],o.d),r.b[b.g]=e.Math.max(r.b[b.g],o.d+o.a)):(r.c[b.g]=e.Math.min(r.c[b.g],o.c),r.b[b.g]=e.Math.max(r.b[b.g],o.c+o.b)),c=KQn,u=a.c.i.d,b.g){case 4:c=u.c;break;case 2:c=u.b;break;case 1:c=u.a;break;case 3:c=u.d}return r.a[b.g]=e.Math.max(r.a[b.g],c),a}function bzn(n){var t,e,i,r;if(-1!=(t=GO(e=null!=n.D?n.D:n.B,YTn(91)))){i=e.substr(0,t),r=new Sk;do{r.a+="["}while(-1!=(t=lx(e,91,++t)));mK(i,$Wn)?r.a+="Z":mK(i,S9n)?r.a+="B":mK(i,P9n)?r.a+="C":mK(i,C9n)?r.a+="D":mK(i,I9n)?r.a+="F":mK(i,O9n)?r.a+="I":mK(i,A9n)?r.a+="J":mK(i,$9n)?r.a+="S":(r.a+="L",r.a+=""+i,r.a+=";");try{return null}catch(c){if(!cL(c=lun(c),60))throw Hp(c)}}else if(-1==GO(e,YTn(46))){if(mK(e,$Wn))return $Nt;if(mK(e,S9n))return NNt;if(mK(e,P9n))return ONt;if(mK(e,C9n))return xNt;if(mK(e,I9n))return DNt;if(mK(e,O9n))return ANt;if(mK(e,A9n))return LNt;if(mK(e,$9n))return RNt}return null}function wzn(n,t,e){var i,r,c,a,u,o,s,h;for(qan(s=new $vn(e),t),hon(s,(hWn(),dlt),t),s.o.a=t.g,s.o.b=t.f,s.n.a=t.i,s.n.b=t.j,WB(e.a,s),VW(n.a,t,s),(0!=(!t.a&&(t.a=new eU(UOt,t,10,11)),t.a).i||qy(TD(ZAn(t,(HXn(),wgt)))))&&hon(s,_ft,(hN(),!0)),o=BB(mMn(e,Zft),21),(h=BB(mMn(s,(HXn(),ept)),98))==(QEn(),YCt)?hon(s,ept,QCt):h!=QCt&&o.Fc((bDn(),dft)),i=BB(mMn(e,Udt),103),u=new AL((!t.c&&(t.c=new eU(XOt,t,9,9)),t.c));u.e!=u.i.gc();)qy(TD(ZAn(a=BB(kpn(u),118),Ggt)))||Zzn(n,a,s,o,i,h);for(c=new AL((!t.n&&(t.n=new eU(zOt,t,1,7)),t.n));c.e!=c.i.gc();)!qy(TD(ZAn(r=BB(kpn(c),137),Ggt)))&&r.a&&WB(s.b,Hhn(r));return qy(TD(mMn(s,Tdt)))&&o.Fc((bDn(),hft)),qy(TD(mMn(s,bgt)))&&(o.Fc((bDn(),wft)),o.Fc(bft),hon(s,ept,QCt)),s}function dzn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T;u=BB(RX(t.c,n),459),g=t.a.c,o=t.a.c+t.a.b,a=(E=u.f)<(T=u.a),b=new xC(g,E),p=new xC(o,T),w=new xC(r=(g+o)/2,E),v=new xC(r,T),c=eNn(n,E,T),y=g1(t.B),k=new xC(r,c),j=g1(t.D),e=lon(Pun(Gk(PMt,1),sVn,8,0,[y,k,j])),f=!1,(d=t.B.i)&&d.c&&u.d&&((s=a&&d.p<d.c.a.c.length-1||!a&&d.p>0)?s&&(h=d.p,a?++h:--h,f=!(cNn(i=ion(BB(xq(d.c.a,h),10)),y,e[0])||Bz(i,y,e[0]))):f=!0),l=!1,(m=t.D.i)&&m.c&&u.e&&(a&&m.p>0||!a&&m.p<m.c.a.c.length-1?(h=m.p,a?--h:++h,l=!(cNn(i=ion(BB(xq(m.c.a,h),10)),e[0],j)||Bz(i,e[0],j))):l=!0),f&&l&&DH(n.a,k),f||nin(n.a,Pun(Gk(PMt,1),sVn,8,0,[b,w])),l||nin(n.a,Pun(Gk(PMt,1),sVn,8,0,[v,p]))}function gzn(n,t){var e,i,r,c,a,u,o;if(cL(n.Ug(),160)?(gzn(BB(n.Ug(),160),t),t.a+=" > "):t.a+="Root ",mK((e=n.Tg().zb).substr(0,3),"Elk")?oO(t,e.substr(3)):t.a+=""+e,r=n.zg())oO((t.a+=" ",t),r);else if(cL(n,354)&&(o=BB(n,137).a))oO((t.a+=" ",t),o);else{for(c=new AL(n.Ag());c.e!=c.i.gc();)if(o=BB(kpn(c),137).a)return void oO((t.a+=" ",t),o);if(cL(n,352)&&(!(i=BB(n,79)).b&&(i.b=new hK(KOt,i,4,7)),0!=i.b.i&&(!i.c&&(i.c=new hK(KOt,i,5,8)),0!=i.c.i))){for(t.a+=" (",a=new cx((!i.b&&(i.b=new hK(KOt,i,4,7)),i.b));a.e!=a.i.gc();)a.e>0&&(t.a+=FWn),gzn(BB(kpn(a),160),t);for(t.a+=e1n,u=new cx((!i.c&&(i.c=new hK(KOt,i,5,8)),i.c));u.e!=u.i.gc();)u.e>0&&(t.a+=FWn),gzn(BB(kpn(u),160),t);t.a+=")"}}}function pzn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;if(c=BB(mMn(n,(hWn(),dlt)),79)){for(i=n.a,UR(r=new wA(e),$jn(n)),wan(n.d.i,n.c.i)?(l=n.c,XR(f=Aon(Pun(Gk(PMt,1),sVn,8,0,[l.n,l.a])),e)):f=g1(n.c),r5(i,f,i.a,i.a.a),b=g1(n.d),null!=mMn(n,Rlt)&&UR(b,BB(mMn(n,Rlt),8)),r5(i,b,i.c.b,i.c),Ztn(i,r),Lin(a=cDn(c,!0,!0),BB(Wtn((!c.b&&(c.b=new hK(KOt,c,4,7)),c.b),0),82)),Nin(a,BB(Wtn((!c.c&&(c.c=new hK(KOt,c,5,8)),c.c),0),82)),VFn(i,a),h=new Wb(n.b);h.a<h.c.c.length;)s=BB(n0(h),70),Sen(u=BB(mMn(s,dlt),137),s.o.a),Men(u,s.o.b),SA(u,s.n.a+r.a,s.n.b+r.b),Ypn(u,(Irn(),tst),TD(mMn(s,tst)));(o=BB(mMn(n,(HXn(),vgt)),74))?(Ztn(o,r),Ypn(c,vgt,o)):Ypn(c,vgt,null),t==(Mbn(),JPt)?Ypn(c,Zdt,JPt):Ypn(c,Zdt,null)}}function vzn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(b=t.c.length,l=0,f=new Wb(n.b);f.a<f.c.c.length;)if(0!=(p=(h=BB(n0(f),29)).a).c.length){for(s=0,v=null,r=BB(n0(g=new Wb(p)),10),c=null;r;){if((c=BB(xq(t,r.p),257)).c>=0){for(o=null,u=new M2(h.a,s+1);u.b<u.d.gc()&&(Px(u.b<u.d.gc()),a=BB(u.d.Xb(u.c=u.b++),10),!((o=BB(xq(t,a.p),257)).d==c.d&&o.c<c.c));)o=null;o&&(v&&(c5(i,r.p,iln(BB(xq(i,r.p),19).a-1)),BB(xq(e,v.p),15).Mc(c)),c=wTn(c,r,b++),t.c[t.c.length]=c,WB(e,new Np),v?(BB(xq(e,v.p),15).Fc(c),WB(i,iln(1))):WB(i,iln(0)))}w=null,g.a<g.c.c.length&&(w=BB(n0(g),10),d=BB(xq(t,w.p),257),BB(xq(e,r.p),15).Fc(d),c5(i,w.p,iln(BB(xq(i,w.p),19).a+1))),c.d=l,c.c=s++,v=r,r=w}++l}}function mzn(n,t,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;return o=n,h=XR(new xC(t.a,t.b),n),s=i,f=XR(new xC(r.a,r.b),i),l=o.a,g=o.b,w=s.a,v=s.b,b=h.a,p=h.b,c=(d=f.a)*p-b*(m=f.b),h$(),rin(A3n),!(e.Math.abs(0-c)<=A3n||0==c||isNaN(0)&&isNaN(c))&&(a=1/c*((l-w)*p-(g-v)*b),u=1/c*-(-(l-w)*m+(g-v)*d),rin(A3n),(e.Math.abs(0-a)<=A3n||0==a||isNaN(0)&&isNaN(a)?0:0<a?-1:0>a?1:zO(isNaN(0),isNaN(a)))<0&&(rin(A3n),(e.Math.abs(a-1)<=A3n||1==a||isNaN(a)&&isNaN(1)?0:a<1?-1:a>1?1:zO(isNaN(a),isNaN(1)))<0)&&(rin(A3n),(e.Math.abs(0-u)<=A3n||0==u||isNaN(0)&&isNaN(u)?0:0<u?-1:0>u?1:zO(isNaN(0),isNaN(u)))<0)&&(rin(A3n),(e.Math.abs(u-1)<=A3n||1==u||isNaN(u)&&isNaN(1)?0:u<1?-1:u>1?1:zO(isNaN(u),isNaN(1)))<0))}function yzn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j;for(f=new hW(new iw(n));f.b!=f.c.a.d;)for(u=BB((h=s9(f)).d,56),t=BB(h.e,56),d=0,y=(null==(a=u.Tg()).i&&qFn(a),a.i).length;d<y;++d)if(null==a.i&&qFn(a),c=a.i,(s=d>=0&&d<c.length?c[d]:null).Ij()&&!s.Jj())if(cL(s,99))0==((o=BB(s,18)).Bb&h6n)&&(!(j=Cvn(o))||0==(j.Bb&h6n))&&mBn(n,o,u,t);else if(ZM(),BB(s,66).Oj()&&(e=BB((k=s)?BB(t,49).xh(k):null,153)))for(b=BB(u.ah(s),153),i=e.gc(),g=0,w=b.gc();g<w;++g)if(cL(l=b.il(g),99)){if(null==(r=lnn(n,m=b.jl(g)))&&null!=m){if(v=BB(l,18),!n.b||0!=(v.Bb&h6n)||Cvn(v))continue;r=m}if(!e.dl(l,r))for(p=0;p<i;++p)if(e.il(p)==l&&GI(e.jl(p))===GI(r)){e.ii(e.gc()-1,p),--i;break}}else e.dl(b.il(g),b.jl(g))}function kzn(n,t,i,r,c,a,u){var o,s,h,f,l,b,w,d,g,p,v,m;if(p=QBn(t,i,n.g),c.n&&c.n&&a&&y0(c,o2(a),(Bsn(),uOt)),n.b)for(g=0;g<p.c.length;g++)l1(g,p.c.length),f=BB(p.c[g],200),0!=g&&(l1(g-1,p.c.length),ghn(f,(b=BB(p.c[g-1],200)).f+b.b+n.g)),mXn(g,p,i,n.g),Hkn(n,f),c.n&&a&&y0(c,o2(a),(Bsn(),uOt));else for(d=new Wb(p);d.a<d.c.c.length;)for(h=new Wb((w=BB(n0(d),200)).a);h.a<h.c.c.length;)xcn(v=new KJ((s=BB(n0(h),187)).s,s.t,n.g),s),WB(w.d,v);return zmn(n,p),c.n&&c.n&&a&&y0(c,o2(a),(Bsn(),uOt)),m=e.Math.max(n.d,r.a-(u.b+u.c)),o=(l=e.Math.max(n.c,r.b-(u.d+u.a)))-n.c,n.e&&n.f&&(m/l<n.a?m=l*n.a:o+=m/n.a-l),n.e&&Odn(p,m,o),c.n&&c.n&&a&&y0(c,o2(a),(Bsn(),uOt)),new eq(n.a,m,n.c+o,(YLn(),_Et))}function jzn(n){var t,i,r,c,a,u,o,s,h,f;for(n.j=x8(ANt,hQn,25,n.g,15,1),n.o=new Np,JT(wnn(new Rq(null,new w1(n.e.b,16)),new Wc),new ug(n)),n.a=x8($Nt,ZYn,25,n.b,16,1),$fn(new Rq(null,new w1(n.e.b,16)),new sg(n)),f=new Np,JT(AV(wnn(new Rq(null,new w1(n.e.b,16)),new Qc),new og(n)),new eC(n,f)),o=new Wb(f);o.a<o.c.c.length;)if(!((u=BB(n0(o),508)).c.length<=1))if(2!=u.c.length){if(!XEn(u)&&!NPn(u,new Vc))for(s=new Wb(u),r=null;s.a<s.c.c.length;)t=BB(n0(s),17),i=n.c[t.p],h=!r||s.a>=s.c.c.length?X3((uSn(),Cut),Put):X3((uSn(),Put),Put),h*=2,c=i.a.g,i.a.g=e.Math.max(c,c+(h-c)),a=i.b.g,i.b.g=e.Math.max(a,a+(h-a)),r=t}else zAn(u),AHn((l1(0,u.c.length),BB(u.c[0],17)).d.i)||WB(n.o,u)}function Ezn(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(m=GB(n),o=new Np,s=(c=n.c.length)-1,h=c+1;0!=m.a.c;){for(;0!=e.b;)Px(0!=e.b),p=BB(Atn(e,e.a.a),112),$J(m.a,p),p.g=s--,NFn(p,t,e,i);for(;0!=t.b;)Px(0!=t.b),v=BB(Atn(t,t.a.a),112),$J(m.a,v),v.g=h++,NFn(v,t,e,i);for(u=_Vn,d=new Fb(new BR(new xN(new _b(m.a).a).b));aS(d.a.a);){if(w=BB(mx(d.a).cd(),112),!i&&w.b>0&&w.a<=0){o.c=x8(Ant,HWn,1,0,5,1),o.c[o.c.length]=w;break}(b=w.i-w.d)>=u&&(b>u&&(o.c=x8(Ant,HWn,1,0,5,1),u=b),o.c[o.c.length]=w)}0!=o.c.length&&(a=BB(xq(o,pvn(r,o.c.length)),112),$J(m.a,a),a.g=h++,NFn(a,t,e,i),o.c=x8(Ant,HWn,1,0,5,1))}for(g=n.c.length+1,l=new Wb(n);l.a<l.c.c.length;)(f=BB(n0(l),112)).g<c&&(f.g=f.g+g)}function Tzn(n,t){var e;if(n.e)throw Hp(new Fy((ED(git),AYn+git.k+$Yn)));if(!SS(n.a,t))throw Hp(new dy(LYn+t+NYn));if(t==n.d)return n;switch(e=n.d,n.d=t,e.g){case 0:switch(t.g){case 2:Hmn(n);break;case 1:Con(n),Hmn(n);break;case 4:nEn(n),Hmn(n);break;case 3:nEn(n),Con(n),Hmn(n)}break;case 2:switch(t.g){case 1:Con(n),RRn(n);break;case 4:nEn(n),Hmn(n);break;case 3:nEn(n),Con(n),Hmn(n)}break;case 1:switch(t.g){case 2:Con(n),RRn(n);break;case 4:Con(n),nEn(n),Hmn(n);break;case 3:Con(n),nEn(n),Con(n),Hmn(n)}break;case 4:switch(t.g){case 2:nEn(n),Hmn(n);break;case 1:nEn(n),Con(n),Hmn(n);break;case 3:Con(n),RRn(n)}break;case 3:switch(t.g){case 2:Con(n),nEn(n),Hmn(n);break;case 1:Con(n),nEn(n),Con(n),Hmn(n);break;case 4:Con(n),RRn(n)}}return n}function Mzn(n,t){var e;if(n.d)throw Hp(new Fy((ED(Yat),AYn+Yat.k+$Yn)));if(!PC(n.a,t))throw Hp(new dy(LYn+t+NYn));if(t==n.c)return n;switch(e=n.c,n.c=t,e.g){case 0:switch(t.g){case 2:Zon(n);break;case 1:Pon(n),Zon(n);break;case 4:tEn(n),Zon(n);break;case 3:tEn(n),Pon(n),Zon(n)}break;case 2:switch(t.g){case 1:Pon(n),KRn(n);break;case 4:tEn(n),Zon(n);break;case 3:tEn(n),Pon(n),Zon(n)}break;case 1:switch(t.g){case 2:Pon(n),KRn(n);break;case 4:Pon(n),tEn(n),Zon(n);break;case 3:Pon(n),tEn(n),Pon(n),Zon(n)}break;case 4:switch(t.g){case 2:tEn(n),Zon(n);break;case 1:tEn(n),Pon(n),Zon(n);break;case 3:Pon(n),KRn(n)}break;case 3:switch(t.g){case 2:Pon(n),tEn(n),Zon(n);break;case 1:Pon(n),tEn(n),Pon(n),Zon(n);break;case 4:Pon(n),KRn(n)}}return n}function Szn(n,t,i){var r,c,a,u,o,s,f,l;for(s=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));s.e!=s.i.gc();)for(c=new oz(ZL(dLn(o=BB(kpn(s),33)).a.Kc(),new h));dAn(c);){if(!(r=BB(U5(c),79)).b&&(r.b=new hK(KOt,r,4,7)),!(r.b.i<=1&&(!r.c&&(r.c=new hK(KOt,r,5,8)),r.c.i<=1)))throw Hp(new ck("Graph must not contain hyperedges."));if(!nAn(r)&&o!=PTn(BB(Wtn((!r.c&&(r.c=new hK(KOt,r,5,8)),r.c),0),82)))for(qan(f=new IR,r),hon(f,(Mrn(),sat),r),Rl(f,BB(qI(AY(i.f,o)),144)),Kl(f,BB(RX(i,PTn(BB(Wtn((!r.c&&(r.c=new hK(KOt,r,5,8)),r.c),0),82))),144)),WB(t.c,f),u=new AL((!r.n&&(r.n=new eU(zOt,r,1,7)),r.n));u.e!=u.i.gc();)qan(l=new m4(f,(a=BB(kpn(u),137)).a),a),hon(l,sat,a),l.e.a=e.Math.max(a.g,1),l.e.b=e.Math.max(a.f,1),_Bn(l),WB(t.d,l)}}function Pzn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(EJ(l=new eUn(n),!(t==(Ffn(),HPt)||t==KPt)),f=l.a,b=new bm,Dtn(),u=0,s=(c=Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length;u<s;++u)i=c[u],(h=fL(f,Git,i))&&(b.d=e.Math.max(b.d,h.Re()));for(a=0,o=(r=Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length;a<o;++a)i=r[a],(h=fL(f,Uit,i))&&(b.a=e.Math.max(b.a,h.Re()));for(p=0,m=(d=Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length;p<m;++p)(h=fL(f,d[p],Git))&&(b.b=e.Math.max(b.b,h.Se()));for(g=0,v=(w=Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length;g<v;++g)(h=fL(f,w[g],Uit))&&(b.c=e.Math.max(b.c,h.Se()));return b.d>0&&(b.d+=f.n.d,b.d+=f.d),b.a>0&&(b.a+=f.n.a,b.a+=f.d),b.b>0&&(b.b+=f.n.b,b.b+=f.d),b.c>0&&(b.c+=f.n.c,b.c+=f.d),b}function Czn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d;for(b=i.d,l=i.c,u=(a=new xC(i.f.a+i.d.b+i.d.c,i.f.b+i.d.d+i.d.a)).b,h=new Wb(n.a);h.a<h.c.c.length;)if((o=BB(n0(h),10)).k==(uSn(),Mut)){switch(r=BB(mMn(o,(hWn(),Qft)),61),c=BB(mMn(o,Yft),8),f=o.n,r.g){case 2:f.a=i.f.a+b.c-l.a;break;case 4:f.a=-l.a-b.b}switch(d=0,r.g){case 2:case 4:t==(QEn(),WCt)?(w=Gy(MD(mMn(o,Tlt))),f.b=a.b*w-BB(mMn(o,(HXn(),npt)),8).b,d=f.b+c.b,Jan(o,!1,!0)):t==XCt&&(f.b=Gy(MD(mMn(o,Tlt)))-BB(mMn(o,(HXn(),npt)),8).b,d=f.b+c.b,Jan(o,!1,!0))}u=e.Math.max(u,d)}for(i.f.b+=u-a.b,s=new Wb(n.a);s.a<s.c.c.length;)if((o=BB(n0(s),10)).k==(uSn(),Mut))switch(r=BB(mMn(o,(hWn(),Qft)),61),f=o.n,r.g){case 1:f.b=-l.b-b.d;break;case 3:f.b=i.f.b+b.a-l.b}}function Izn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j;for(r=BB(mMn(n,(qqn(),skt)),33),o=DWn,s=DWn,a=_Vn,u=_Vn,k=spn(n.b,0);k.b!=k.d.c;)w=(m=BB(b3(k),86)).e,d=m.f,o=e.Math.min(o,w.a-d.a/2),s=e.Math.min(s,w.b-d.b/2),a=e.Math.max(a,w.a+d.a/2),u=e.Math.max(u,w.b+d.b/2);for(l=new xC((b=BB(ZAn(r,(CAn(),Ikt)),116)).b-o,b.d-s),y=spn(n.b,0);y.b!=y.d.c;)cL(f=mMn(m=BB(b3(y),86),skt),239)&&SA(c=BB(f,33),(h=UR(m.e,l)).a-c.g/2,h.b-c.f/2);for(v=spn(n.a,0);v.b!=v.d.c;)p=BB(b3(v),188),(i=BB(mMn(p,skt),79))&&(r5(t=p.a,g=new wA(p.b.e),t.a,t.a.a),r5(t,j=new wA(p.c.e),t.c.b,t.c),ZMn(g,BB(Dpn(t,1),8),p.b.f),ZMn(j,BB(Dpn(t,t.b-2),8),p.c.f),VFn(t,cDn(i,!0,!0)));KUn(r,a-o+(b.b+b.c),u-s+(b.d+b.a),!1,!1)}function Ozn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;for(yR(o=new M2(s=n.b,0),new HX(n)),g=!1,c=1;o.b<o.d.gc();){for(Px(o.b<o.d.gc()),u=BB(o.d.Xb(o.c=o.b++),29),l1(c,s.c.length),b=BB(s.c[c],29),d=(w=a0(u.a)).c.length,l=new Wb(w);l.a<l.c.c.length;)PZ(h=BB(n0(l),10),b);if(g){for(f=W1(new fy(w),0);f.c.Sb();)for(r=new Wb(a0(fbn(h=BB(w5(f),10))));r.a<r.c.c.length;)tBn(i=BB(n0(r),17),!0),hon(n,(hWn(),qft),(hN(),!0)),e=iGn(n,i,d),t=BB(mMn(h,Rft),305),p=BB(xq(e,e.c.length-1),17),t.k=p.c.i,t.n=p,t.b=i.d.i,t.c=i;g=!1}else 0!=w.c.length&&(l1(0,w.c.length),BB(w.c[0],10).k==(uSn(),Tut)&&(g=!0,c=-1));++c}for(a=new M2(n.b,0);a.b<a.d.gc();)Px(a.b<a.d.gc()),0==BB(a.d.Xb(a.c=a.b++),29).a.c.length&&fW(a)}function Azn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;if((f=BB(BB(h6(n.r,t),21),84)).gc()<=2||t==(kUn(),oIt)||t==(kUn(),CIt))JUn(n,t);else{for(g=n.u.Hc((lIn(),cIt)),i=t==(kUn(),sIt)?(Dan(),Rrt):(Dan(),Nrt),v=t==sIt?(G7(),irt):(G7(),crt),r=Zk(H_(i),n.s),p=t==sIt?RQn:KQn,h=f.Kc();h.Ob();)!(o=BB(h.Pb(),111)).c||o.c.d.c.length<=0||(d=o.b.rf(),w=o.e,(b=(l=o.c).i).b=(a=l.n,l.e.a+a.b+a.c),b.a=(u=l.n,l.e.b+u.d+u.a),g?(b.c=w.a-(c=l.n,l.e.a+c.b+c.c)-n.s,g=!1):b.c=w.a+d.a+n.s,OY(v,uJn),l.f=v,l9(l,(J9(),Jit)),WB(r.d,new xG(b,kln(r,b))),p=t==sIt?e.Math.min(p,w.b):e.Math.max(p,w.b+o.b.rf().b));for(p+=t==sIt?-n.t:n.t,Pwn((r.e=p,r)),s=f.Kc();s.Ob();)!(o=BB(s.Pb(),111)).c||o.c.d.c.length<=0||((b=o.c.i).c-=o.e.a,b.d-=o.e.b)}}function $zn(n,t,i){var r;if(OTn(i,"StretchWidth layering",1),0!=t.a.c.length){for(n.c=t,n.t=0,n.u=0,n.i=RQn,n.g=KQn,n.d=Gy(MD(mMn(t,(HXn(),ypt)))),zpn(n),PAn(n),SAn(n),xjn(n),ddn(n),n.i=e.Math.max(1,n.i),n.g=e.Math.max(1,n.g),n.d=n.d/n.i,n.f=n.g/n.i,n.s=_vn(n),r=new HX(n.c),WB(n.c.b,r),n.r=a0(n.p),n.n=TJ(n.k,n.k.length);0!=n.r.c.length;)n.o=zhn(n),!n.o||Ton(n)&&0!=n.b.a.gc()?(xEn(n,r),r=new HX(n.c),WB(n.c.b,r),Frn(n.a,n.b),n.b.a.$b(),n.t=n.u,n.u=0):Ton(n)?(n.c.b.c=x8(Ant,HWn,1,0,5,1),r=new HX(n.c),WB(n.c.b,r),n.t=0,n.u=0,n.b.a.$b(),n.a.a.$b(),++n.f,n.r=a0(n.p),n.n=TJ(n.k,n.k.length)):(PZ(n.o,r),y7(n.r,n.o),TU(n.b,n.o),n.t=n.t-n.k[n.o.p]*n.d+n.j[n.o.p],n.u+=n.e[n.o.p]*n.d);t.a.c=x8(Ant,HWn,1,0,5,1),JPn(t.b),HSn(i)}else HSn(i)}function Lzn(n){var t,i,r,c;for(JT(AV(new Rq(null,new w1(n.a.b,16)),new yr),new kr),fEn(n),JT(AV(new Rq(null,new w1(n.a.b,16)),new jr),new Er),n.c==(Mbn(),JPt)&&(JT(AV(wnn(new Rq(null,new w1(new Cb(n.f),1)),new Tr),new Mr),new Md(n)),JT(AV($V(wnn(wnn(new Rq(null,new w1(n.d.b,16)),new Sr),new Pr),new Cr),new Ir),new Pd(n))),c=new xC(RQn,RQn),t=new xC(KQn,KQn),r=new Wb(n.a.b);r.a<r.c.c.length;)i=BB(n0(r),57),c.a=e.Math.min(c.a,i.d.c),c.b=e.Math.min(c.b,i.d.d),t.a=e.Math.max(t.a,i.d.c+i.d.b),t.b=e.Math.max(t.b,i.d.d+i.d.a);UR(kO(n.d.c),qx(new xC(c.a,c.b))),UR(kO(n.d.f),XR(new xC(t.a,t.b),c)),oNn(n,c,t),$U(n.f),$U(n.b),$U(n.g),$U(n.e),n.a.a.c=x8(Ant,HWn,1,0,5,1),n.a.b.c=x8(Ant,HWn,1,0,5,1),n.a=null,n.d=null}function Nzn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(i=new Np,w=new Wb(t.a);w.a<w.c.c.length;)if((l=(b=BB(n0(w),10)).e)&&(gun(i,Nzn(n,l,b)),EGn(n,l,b),BB(mMn(l,(hWn(),Zft)),21).Hc((bDn(),lft))))for(p=BB(mMn(b,(HXn(),ept)),98),f=BB(mMn(b,cpt),174).Hc((lIn(),eIt)),g=new Wb(b.j);g.a<g.c.c.length;)for(d=BB(n0(g),11),(r=BB(RX(n.b,d),10))||(hon(r=bXn(d,p,d.j,-(d.e.c.length-d.g.c.length),null,new Gj,d.o,BB(mMn(l,Udt),103),l),dlt,d),VW(n.b,d,r),WB(l.a,r)),c=BB(xq(r.j,0),11),s=new Wb(d.f);s.a<s.c.c.length;)o=BB(n0(s),70),(a=new qj).o.a=o.o.a,a.o.b=o.o.b,WB(c.f,a),f||(v=d.j,h=0,Hz(BB(mMn(b,cpt),21))&&(h=$In(o.n,o.o,d.o,0,v)),p==(QEn(),QCt)||(kUn(),bIt).Hc(v)?a.o.a=h:a.o.b=h);return BGn(n,t,e,i,u=new Np),e&&Cqn(n,t,e,u),u}function xzn(n,t,e){var i,r,c,a,u,o,s,h;if(!n.c[t.c.p][t.p].e){for(n.c[t.c.p][t.p].e=!0,n.c[t.c.p][t.p].b=0,n.c[t.c.p][t.p].d=0,n.c[t.c.p][t.p].a=null,h=new Wb(t.j);h.a<h.c.c.length;)for(s=BB(n0(h),11),o=(e?new Hw(s):new Gw(s)).Kc();o.Ob();)(a=(u=BB(o.Pb(),11)).i).c==t.c?a!=t&&(xzn(n,a,e),n.c[t.c.p][t.p].b+=n.c[a.c.p][a.p].b,n.c[t.c.p][t.p].d+=n.c[a.c.p][a.p].d):(n.c[t.c.p][t.p].d+=n.g[u.p],++n.c[t.c.p][t.p].b);if(c=BB(mMn(t,(hWn(),xft)),15))for(r=c.Kc();r.Ob();)i=BB(r.Pb(),10),t.c==i.c&&(xzn(n,i,e),n.c[t.c.p][t.p].b+=n.c[i.c.p][i.p].b,n.c[t.c.p][t.p].d+=n.c[i.c.p][i.p].d);n.c[t.c.p][t.p].b>0&&(n.c[t.c.p][t.p].d+=H$n(n.i,24)*uYn*.07000000029802322-.03500000014901161,n.c[t.c.p][t.p].a=n.c[t.c.p][t.p].d/n.c[t.c.p][t.p].b)}}function Dzn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w;for(l=new Wb(n);l.a<l.c.c.length;){for(nx((f=BB(n0(l),10)).n),nx(f.o),V6(f.f),VRn(f),aRn(f),w=new Wb(f.j);w.a<w.c.c.length;){for(nx((b=BB(n0(w),11)).n),nx(b.a),nx(b.o),qCn(b,amn(b.j)),(r=BB(mMn(b,(HXn(),ipt)),19))&&hon(b,ipt,iln(-r.a)),i=new Wb(b.g);i.a<i.c.c.length;){for(t=spn((e=BB(n0(i),17)).a,0);t.b!=t.d.c;)nx(BB(b3(t),8));if(a=BB(mMn(e,vgt),74))for(c=spn(a,0);c.b!=c.d.c;)nx(BB(b3(c),8));for(s=new Wb(e.b);s.a<s.c.c.length;)nx((u=BB(n0(s),70)).n),nx(u.o)}for(h=new Wb(b.f);h.a<h.c.c.length;)nx((u=BB(n0(h),70)).n),nx(u.o)}for(f.k==(uSn(),Mut)&&(hon(f,(hWn(),Qft),amn(BB(mMn(f,Qft),61))),wxn(f)),o=new Wb(f.b);o.a<o.c.c.length;)VRn(u=BB(n0(o),70)),nx(u.o),nx(u.n)}}function Rzn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y;for(n.e=t,u=nOn(t),m=new Np,i=new Wb(u);i.a<i.c.c.length;){for(e=BB(n0(i),15),y=new Np,m.c[m.c.length]=y,o=new Rv,l=e.Kc();l.Ob();){for(c=JRn(n,f=BB(l.Pb(),33),!0,0,0),y.c[y.c.length]=c,new xC(b=f.i,w=f.j),!f.n&&(f.n=new eU(zOt,f,1,7)),h=new AL(f.n);h.e!=h.i.gc();)r=JRn(n,BB(kpn(h),137),!1,b,w),y.c[y.c.length]=r;for(!f.c&&(f.c=new eU(XOt,f,9,9)),g=new AL(f.c);g.e!=g.i.gc();)for(a=JRn(n,d=BB(kpn(g),118),!1,b,w),y.c[y.c.length]=a,p=d.i+b,v=d.j+w,!d.n&&(d.n=new eU(zOt,d,1,7)),s=new AL(d.n);s.e!=s.i.gc();)r=JRn(n,BB(kpn(s),137),!1,p,v),y.c[y.c.length]=r;Frn(o,JQ(Wen(Pun(Gk(xnt,1),HWn,20,0,[dLn(f),wLn(f)]))))}ULn(n,o,y)}return n.f=new _j(m),qan(n.f,t),n.f}function Kzn(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g;null==(w=RX(n.e,i))&&(s=BB(w=new py,183),o=new GX(t+"_s"+r),rtn(s,q6n,o)),nW(e,b=BB(w,183)),qQ(g=new py,"x",i.j),qQ(g,"y",i.k),rtn(b,U6n,g),qQ(f=new py,"x",i.b),qQ(f,"y",i.c),rtn(b,"endPoint",f),!WE((!i.a&&(i.a=new $L(xOt,i,5)),i.a))&&(c=new Wg(h=new Cl),e5((!i.a&&(i.a=new $L(xOt,i,5)),i.a),c),rtn(b,D6n,h)),!!Svn(i)&&cMn(n.a,b,K6n,RPn(n,Svn(i))),!!Pvn(i)&&cMn(n.a,b,R6n,RPn(n,Pvn(i))),!(0==(!i.e&&(i.e=new hK(FOt,i,10,9)),i.e).i)&&(a=new SI(n,l=new Cl),e5((!i.e&&(i.e=new hK(FOt,i,10,9)),i.e),a),rtn(b,F6n,l)),0!=(!i.g&&(i.g=new hK(FOt,i,9,10)),i.g).i&&(u=new PI(n,d=new Cl),e5((!i.g&&(i.g=new hK(FOt,i,9,10)),i.g),u),rtn(b,_6n,d))}function _zn(n){var t,i,r,c,a,u,o;for(qD(),r=n.f.n,u=EX(n.r).a.nc();u.Ob();){if(c=0,(a=BB(u.Pb(),111)).b.Xe((sWn(),aPt))&&(c=Gy(MD(a.b.We(aPt))))<0)switch(a.b.Hf().g){case 1:r.d=e.Math.max(r.d,-c);break;case 3:r.a=e.Math.max(r.a,-c);break;case 2:r.c=e.Math.max(r.c,-c);break;case 4:r.b=e.Math.max(r.b,-c)}if(Hz(n.u))switch(t=vcn(a.b,c),o=!BB(n.e.We(qSt),174).Hc((n_n(),HIt)),i=!1,a.b.Hf().g){case 1:i=t>r.d,r.d=e.Math.max(r.d,t),o&&i&&(r.d=e.Math.max(r.d,r.a),r.a=r.d+c);break;case 3:i=t>r.a,r.a=e.Math.max(r.a,t),o&&i&&(r.a=e.Math.max(r.a,r.d),r.d=r.a+c);break;case 2:i=t>r.c,r.c=e.Math.max(r.c,t),o&&i&&(r.c=e.Math.max(r.b,r.c),r.b=r.c+c);break;case 4:i=t>r.b,r.b=e.Math.max(r.b,t),o&&i&&(r.b=e.Math.max(r.b,r.c),r.c=r.b+c)}}}function Fzn(n){var t,e,i,r,c,a,u,o,s,h,f;for(s=new Wb(n);s.a<s.c.c.length;){switch(o=BB(n0(s),10),c=null,(a=BB(mMn(o,(HXn(),kgt)),163)).g){case 1:case 2:Jun(),c=$ht;break;case 3:case 4:Jun(),c=Oht}if(c)hon(o,(hWn(),Gft),(Jun(),$ht)),c==Oht?RNn(o,a,(ain(),Hvt)):c==$ht&&RNn(o,a,(ain(),qvt));else if(vA(BB(mMn(o,ept),98))&&0!=o.j.c.length){for(t=!0,f=new Wb(o.j);f.a<f.c.c.length;){if(!((h=BB(n0(f),11)).j==(kUn(),oIt)&&h.e.c.length-h.g.c.length>0||h.j==CIt&&h.e.c.length-h.g.c.length<0)){t=!1;break}for(r=new Wb(h.g);r.a<r.c.c.length;)if(e=BB(n0(r),17),(u=BB(mMn(e.d.i,kgt),163))==(Tbn(),Blt)||u==Hlt){t=!1;break}for(i=new Wb(h.e);i.a<i.c.c.length;)if(e=BB(n0(i),17),(u=BB(mMn(e.c.i,kgt),163))==(Tbn(),_lt)||u==Flt){t=!1;break}}t&&RNn(o,a,(ain(),Gvt))}}}function Bzn(n,t,i,r,c){var a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;for(E=0,w=0,l=new Wb(t.e);l.a<l.c.c.length;){for(f=BB(n0(l),10),b=0,o=0,s=i?BB(mMn(f,Xmt),19).a:_Vn,v=r?BB(mMn(f,Wmt),19).a:_Vn,h=e.Math.max(s,v),y=new Wb(f.j);y.a<y.c.c.length;){if(m=BB(n0(y),11),k=f.n.b+m.n.b+m.a.b,r)for(u=new Wb(m.g);u.a<u.c.c.length;)d=(g=(a=BB(n0(u),17)).d).i,t!=n.a[d.p]&&(p=e.Math.max(BB(mMn(d,Xmt),19).a,BB(mMn(d,Wmt),19).a),(j=BB(mMn(a,(HXn(),bpt)),19).a)>=h&&j>=p&&(b+=d.n.b+g.n.b+g.a.b-k,++o));if(i)for(u=new Wb(m.e);u.a<u.c.c.length;)d=(g=(a=BB(n0(u),17)).c).i,t!=n.a[d.p]&&(p=e.Math.max(BB(mMn(d,Xmt),19).a,BB(mMn(d,Wmt),19).a),(j=BB(mMn(a,(HXn(),bpt)),19).a)>=h&&j>=p&&(b+=d.n.b+g.n.b+g.a.b-k,++o))}o>0&&(E+=b/o,++w)}w>0?(t.a=c*E/w,t.g=w):(t.a=0,t.g=0)}function Hzn(n,t){var e,i,r,c,a,u,o,s,h,f;for(i=new Wb(n.a.b);i.a<i.c.c.length;)for(u=new Wb(BB(n0(i),29).a);u.a<u.c.c.length;)a=BB(n0(u),10),t.j[a.p]=a,t.i[a.p]=t.o==(oZ(),cyt)?KQn:RQn;for($U(n.c),c=n.a.b,t.c==(gJ(),nyt)&&(c=cL(c,152)?o6(BB(c,152)):cL(c,131)?BB(c,131).a:cL(c,54)?new fy(c):new CT(c)),R9(n.e,t,n.b),yS(t.p,null),r=c.Kc();r.Ob();)for(o=BB(r.Pb(),29).a,t.o==(oZ(),cyt)&&(o=cL(o,152)?o6(BB(o,152)):cL(o,131)?BB(o,131).a:cL(o,54)?new fy(o):new CT(o)),f=o.Kc();f.Ob();)h=BB(f.Pb(),10),t.g[h.p]==h&&oXn(n,h,t);for(Hqn(n,t),e=c.Kc();e.Ob();)for(f=new Wb(BB(e.Pb(),29).a);f.a<f.c.c.length;)h=BB(n0(f),10),t.p[h.p]=t.p[t.g[h.p].p],h==t.g[h.p]&&(s=Gy(t.i[t.j[h.p].p]),(t.o==(oZ(),cyt)&&s>KQn||t.o==ryt&&s<RQn)&&(t.p[h.p]=Gy(t.p[h.p])+s));n.e.cg()}function qzn(n,t,e,i){var r,c,a,u,o;return pNn(u=new eUn(t),i),r=!0,n&&n.Xe((sWn(),bSt))&&(r=(c=BB(n.We((sWn(),bSt)),103))==(Ffn(),BPt)||c==_Pt||c==FPt),oRn(u,!1),Otn(u.e.wf(),new $_(u,!1,r)),LJ(u,u.f,(Dtn(),Git),(kUn(),sIt)),LJ(u,u.f,Uit,SIt),LJ(u,u.g,Git,CIt),LJ(u,u.g,Uit,oIt),Bpn(u,sIt),Bpn(u,SIt),hV(u,oIt),hV(u,CIt),qD(),(a=u.A.Hc((mdn(),DIt))&&u.B.Hc((n_n(),UIt))?ndn(u):null)&&rj(u.a,a),_zn(u),ryn(u),cyn(u),VGn(u),MKn(u),mkn(u),_gn(u,sIt),_gn(u,SIt),CRn(u),PHn(u),e?(Gbn(u),ykn(u),_gn(u,oIt),_gn(u,CIt),o=u.B.Hc((n_n(),XIt)),MCn(u,o,sIt),MCn(u,o,SIt),SCn(u,o,oIt),SCn(u,o,CIt),JT(new Rq(null,new w1(new Ob(u.i),0)),new In),JT(AV(new Rq(null,EX(u.r).a.oc()),new On),new An),BEn(u),u.e.uf(u.o),JT(new Rq(null,EX(u.r).a.oc()),new Ln),u.o):u.o}function Gzn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(h=RQn,r=new Wb(n.a.b);r.a<r.c.c.length;)t=BB(n0(r),81),h=e.Math.min(h,t.d.f.g.c+t.e.a);for(w=new YT,u=new Wb(n.a.a);u.a<u.c.c.length;)(a=BB(n0(u),189)).i=h,0==a.e&&r5(w,a,w.c.b,w.c);for(;0!=w.b;){for(c=(a=BB(0==w.b?null:(Px(0!=w.b),Atn(w,w.a.a)),189)).f.g.c,b=a.a.a.ec().Kc();b.Ob();)f=BB(b.Pb(),81),g=a.i+f.e.a,f.d.g||f.g.c<g?f.o=g:f.o=f.g.c;for(c-=a.f.o,a.b+=c,n.c==(Ffn(),FPt)||n.c==KPt?a.c+=c:a.c-=c,l=a.a.a.ec().Kc();l.Ob();)for(s=(f=BB(l.Pb(),81)).f.Kc();s.Ob();)o=BB(s.Pb(),81),d=dA(n.c)?n.f.ef(f,o):n.f.ff(f,o),o.d.i=e.Math.max(o.d.i,f.o+f.g.b+d-o.e.a),o.k||(o.d.i=e.Math.max(o.d.i,o.g.c-o.e.a)),--o.d.e,0==o.d.e&&DH(w,o.d)}for(i=new Wb(n.a.b);i.a<i.c.c.length;)(t=BB(n0(i),81)).g.c=t.o}function zzn(n){var t,e,i,r,c,a,u,o;switch(u=n.b,t=n.a,0===BB(mMn(n,(_kn(),Mit)),427).g?m$(u,new nw(new Gn)):m$(u,new nw(new zn)),1===BB(mMn(n,Eit),428).g?(m$(u,new qn),m$(u,new Un),m$(u,new Kn)):(m$(u,new qn),m$(u,new Hn)),BB(mMn(n,Pit),250).g){case 0:o=new Yn;break;case 1:o=new Vn;break;case 2:o=new Qn;break;case 3:o=new Wn;break;case 5:o=new Ow(new Qn);break;case 4:o=new Ow(new Vn);break;case 7:o=new DS(new Ow(new Vn),new Ow(new Qn));break;case 8:o=new DS(new Ow(new Wn),new Ow(new Qn));break;default:o=new Ow(new Wn)}for(a=new Wb(u);a.a<a.c.c.length;){for(c=BB(n0(a),167),r=0,e=new rI(iln(i=0),iln(r));B_n(t,c,i,r);)e=BB(o.Ce(e,c),46),i=BB(e.a,19).a,r=BB(e.b,19).a;_Rn(t,c,i,r)}}function Uzn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;for(l=(c=n.f.b).a,h=c.b,w=n.e.g,b=n.e.f,MA(n.e,c.a,c.b),j=l/w,E=h/b,s=new AL(mV(n.e));s.e!=s.i.gc();)Pen(o=BB(kpn(s),137),o.i*j),Cen(o,o.j*E);for(v=new AL(yV(n.e));v.e!=v.i.gc();)y=(p=BB(kpn(v),118)).i,k=p.j,y>0&&Pen(p,y*j),k>0&&Cen(p,k*E);for(nan(n.b,new lt),t=new Np,u=new usn(new Pb(n.c).a);u.b;)i=BB((a=ten(u)).cd(),79),e=BB(a.dd(),395).a,r=cDn(i,!1,!1),VFn(f=lTn(PMn(i),qSn(r),e),r),(m=CMn(i))&&-1==E7(t,m,0)&&(t.c[t.c.length]=m,sQ(m,(Px(0!=f.b),BB(f.a.a.c,8)),e));for(g=new usn(new Pb(n.d).a);g.b;)i=BB((d=ten(g)).cd(),79),e=BB(d.dd(),395).a,r=cDn(i,!1,!1),f=lTn(OMn(i),Jon(qSn(r)),e),VFn(f=Jon(f),r),(m=IMn(i))&&-1==E7(t,m,0)&&(t.c[t.c.length]=m,sQ(m,(Px(0!=f.b),BB(f.c.b.c,8)),e))}function Xzn(n,t,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;if(0!=i.c.length){for(w=new Np,b=new Wb(i);b.a<b.c.c.length;)WB(w,new xC((l=BB(n0(b),33)).i,l.j));for(r.n&&t&&y0(r,o2(t),(Bsn(),uOt));NMn(n,i);)E$n(n,i,!1);for(r.n&&t&&y0(r,o2(t),(Bsn(),uOt)),u=0,o=0,c=null,0!=i.c.length&&(l1(0,i.c.length),u=(c=BB(i.c[0],33)).i-(l1(0,w.c.length),BB(w.c[0],8)).a,o=c.j-(l1(0,w.c.length),BB(w.c[0],8)).b),a=e.Math.sqrt(u*u+o*o),f=Uhn(i);0!=f.a.gc();){for(h=f.a.ec().Kc();h.Ob();)s=BB(h.Pb(),33),g=(d=n.f).i+d.g/2,p=d.j+d.f/2,v=s.i+s.g/2,y=s.j+s.f/2-p,j=(m=v-g)/(k=e.Math.sqrt(m*m+y*y)),E=y/k,Pen(s,s.i+j*a),Cen(s,s.j+E*a);r.n&&t&&y0(r,o2(t),(Bsn(),uOt)),f=Uhn(new t_(f))}n.a&&n.a.lg(new t_(f)),r.n&&t&&y0(r,o2(t),(Bsn(),uOt)),Xzn(n,t,new t_(f),r)}}function Wzn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;if(g=n.n,p=n.o,b=n.d,l=Gy(MD(edn(n,(HXn(),ppt)))),t){for(f=l*(t.gc()-1),w=0,s=t.Kc();s.Ob();)f+=(u=BB(s.Pb(),10)).o.a,w=e.Math.max(w,u.o.b);for(v=g.a-(f-p.a)/2,a=g.b-b.d+w,c=r=p.a/(t.gc()+1),o=t.Kc();o.Ob();)(u=BB(o.Pb(),10)).n.a=v,u.n.b=a-u.o.b,v+=u.o.a+l,(h=DLn(u)).n.a=u.o.a/2-h.a.a,h.n.b=u.o.b,(d=BB(mMn(u,(hWn(),Kft)),11)).e.c.length+d.g.c.length==1&&(d.n.a=c-d.a.a,d.n.b=0,CZ(d,n)),c+=r}if(i){for(f=l*(i.gc()-1),w=0,s=i.Kc();s.Ob();)f+=(u=BB(s.Pb(),10)).o.a,w=e.Math.max(w,u.o.b);for(v=g.a-(f-p.a)/2,a=g.b+p.b+b.a-w,c=r=p.a/(i.gc()+1),o=i.Kc();o.Ob();)(u=BB(o.Pb(),10)).n.a=v,u.n.b=a,v+=u.o.a+l,(h=DLn(u)).n.a=u.o.a/2-h.a.a,h.n.b=0,(d=BB(mMn(u,(hWn(),Kft)),11)).e.c.length+d.g.c.length==1&&(d.n.a=c-d.a.a,d.n.b=p.b,CZ(d,n)),c+=r}}function Vzn(n,t){var i,r,c,a,u,o;if(BB(mMn(t,(hWn(),Zft)),21).Hc((bDn(),lft))){for(o=new Wb(t.a);o.a<o.c.c.length;)(a=BB(n0(o),10)).k==(uSn(),Cut)&&(c=BB(mMn(a,(HXn(),Cgt)),142),n.c=e.Math.min(n.c,a.n.a-c.b),n.a=e.Math.max(n.a,a.n.a+a.o.a+c.c),n.d=e.Math.min(n.d,a.n.b-c.d),n.b=e.Math.max(n.b,a.n.b+a.o.b+c.a));for(u=new Wb(t.a);u.a<u.c.c.length;)if((a=BB(n0(u),10)).k!=(uSn(),Cut))switch(a.k.g){case 2:if((r=BB(mMn(a,(HXn(),kgt)),163))==(Tbn(),Flt)){a.n.a=n.c-10,Yyn(a,new Ge).Jb(new rd(a));break}if(r==Hlt){a.n.a=n.a+10,Yyn(a,new ze).Jb(new cd(a));break}if((i=BB(mMn(a,ilt),303))==(z7(),Cft)){lqn(a).Jb(new ad(a)),a.n.b=n.d-10;break}if(i==Sft){lqn(a).Jb(new ud(a)),a.n.b=n.b+10;break}break;default:throw Hp(new _y("The node type "+a.k+" is not supported by the "+Jot))}}}function Qzn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d;for(o=new xC(i.i+i.g/2,i.j+i.f/2),l=XHn(i),b=BB(ZAn(t,(HXn(),ept)),98),d=BB(ZAn(i,upt),61),BI(lpn(i),tpt)||(w=0==i.i&&0==i.j?0:tMn(i,d),Ypn(i,tpt,w)),hon(r=bXn(i,b,d,l,new xC(t.g,t.f),o,new xC(i.g,i.f),BB(mMn(e,Udt),103),e),(hWn(),dlt),i),Hl(c=BB(xq(r.j,0),11),j_n(i)),hon(r,cpt,(lIn(),nbn(rIt))),h=BB(ZAn(t,cpt),174).Hc(eIt),u=new AL((!i.n&&(i.n=new eU(zOt,i,1,7)),i.n));u.e!=u.i.gc();)if(!qy(TD(ZAn(a=BB(kpn(u),137),Ggt)))&&a.a&&(f=Hhn(a),WB(c.f,f),!h))switch(s=0,Hz(BB(ZAn(t,cpt),21))&&(s=$In(new xC(a.i,a.j),new xC(a.g,a.f),new xC(i.g,i.f),0,d)),d.g){case 2:case 4:f.o.a=s;break;case 1:case 3:f.o.b=s}hon(r,Cpt,MD(ZAn(JJ(t),Cpt))),hon(r,Ipt,MD(ZAn(JJ(t),Ipt))),hon(r,Spt,MD(ZAn(JJ(t),Spt))),WB(e.a,r),VW(n.a,i,r)}function Yzn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(OTn(e,"Processor arrange level",1),h=0,SQ(),_rn(t,new ap((qqn(),ikt))),c=t.b,u=spn(t,t.b),s=!0;s&&u.b.b!=u.d.a;)g=BB(U0(u),86),0==BB(mMn(g,ikt),19).a?--c:s=!1;if(a=new n_(new s1(t,0,c)),o=new n_(new s1(t,c,t.b)),0==a.b)for(b=spn(o,0);b.b!=b.d.c;)hon(BB(b3(b),86),hkt,iln(h++));else for(f=a.b,m=spn(a,0);m.b!=m.d.c;){for(hon(v=BB(b3(m),86),hkt,iln(h++)),Yzn(n,i=xun(v),mcn(e,1/f|0)),_rn(i,QW(new ap(hkt))),l=new YT,p=spn(i,0);p.b!=p.d.c;)for(g=BB(b3(p),86),d=spn(v.d,0);d.b!=d.d.c;)(w=BB(b3(d),188)).c==g&&r5(l,w,l.c.b,l.c);for(yQ(v.d),Frn(v.d,l),u=spn(o,o.b),r=v.d.b,s=!0;0<r&&s&&u.b.b!=u.d.a;)g=BB(U0(u),86),0==BB(mMn(g,ikt),19).a?(hon(g,hkt,iln(h++)),--r,mtn(u)):s=!1}HSn(e)}function Jzn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(OTn(t,"Inverted port preprocessing",1),u=new M2(n.b,0),e=null,g=new Np;u.b<u.d.gc();){for(d=e,Px(u.b<u.d.gc()),e=BB(u.d.Xb(u.c=u.b++),29),h=new Wb(g);h.a<h.c.c.length;)PZ(o=BB(n0(h),10),d);for(g.c=x8(Ant,HWn,1,0,5,1),f=new Wb(e.a);f.a<f.c.c.length;)if((o=BB(n0(f),10)).k==(uSn(),Cut)&&vA(BB(mMn(o,(HXn(),ept)),98))){for(w=cRn(o,(ain(),Hvt),(kUn(),oIt)).Kc();w.Ob();)for(l=BB(w.Pb(),11),r=0,c=(i=BB(Qgn(a=l.e,x8(yut,c1n,17,a.c.length,0,1)),474)).length;r<c;++r)$Bn(n,l,i[r],g);for(b=cRn(o,qvt,CIt).Kc();b.Ob();)for(l=BB(b.Pb(),11),r=0,c=(i=BB(Qgn(a=l.g,x8(yut,c1n,17,a.c.length,0,1)),474)).length;r<c;++r)ABn(n,l,i[r],g)}}for(s=new Wb(g);s.a<s.c.c.length;)PZ(o=BB(n0(s),10),e);HSn(t)}function Zzn(n,t,e,i,r,c){var a,u,o,s,h,f;for(qan(s=new CSn,t),qCn(s,BB(ZAn(t,(HXn(),upt)),61)),hon(s,(hWn(),dlt),t),CZ(s,e),(f=s.o).a=t.g,f.b=t.f,(h=s.n).a=t.i,h.b=t.j,VW(n.a,t,s),(a=o5($V(wnn(new Rq(null,(!t.e&&(t.e=new hK(_Ot,t,7,4)),new w1(t.e,16))),new Vt),new Xt),new Ww(t)))||(a=o5($V(wnn(new Rq(null,(!t.d&&(t.d=new hK(_Ot,t,8,5)),new w1(t.d,16))),new Qt),new Wt),new Vw(t))),a||(a=o5(new Rq(null,(!t.e&&(t.e=new hK(_Ot,t,7,4)),new w1(t.e,16))),new Yt)),hon(s,elt,(hN(),!!a)),pqn(s,c,r,BB(ZAn(t,npt),8)),o=new AL((!t.n&&(t.n=new eU(zOt,t,1,7)),t.n));o.e!=o.i.gc();)!qy(TD(ZAn(u=BB(kpn(o),137),Ggt)))&&u.a&&WB(s.f,Hhn(u));switch(r.g){case 2:case 1:(s.j==(kUn(),sIt)||s.j==SIt)&&i.Fc((bDn(),gft));break;case 4:case 3:(s.j==(kUn(),oIt)||s.j==CIt)&&i.Fc((bDn(),gft))}return s}function nUn(n,t,i,r,c,a,u){var o,s,h,f,l,b,w,d,g,p,v,m;for(l=null,r==(dJ(),Lyt)?l=t:r==Nyt&&(l=i),d=l.a.ec().Kc();d.Ob();){for(w=BB(d.Pb(),11),g=Aon(Pun(Gk(PMt,1),sVn,8,0,[w.i.n,w.n,w.a])).b,m=new Rv,o=new Rv,h=new m6(w.b);y$(h.a)||y$(h.b);)if(qy(TD(mMn(s=BB(y$(h.a)?n0(h.a):n0(h.b),17),(hWn(),Clt))))==c&&-1!=E7(a,s,0)){if(p=s.d==w?s.c:s.d,v=Aon(Pun(Gk(PMt,1),sVn,8,0,[p.i.n,p.n,p.a])).b,e.Math.abs(v-g)<.2)continue;v<g?t.a._b(p)?TU(m,new rI(Lyt,s)):TU(m,new rI(Nyt,s)):t.a._b(p)?TU(o,new rI(Lyt,s)):TU(o,new rI(Nyt,s))}if(m.a.gc()>1)for(e5(m,new sC(n,b=new hqn(w,m,r))),u.c[u.c.length]=b,f=m.a.ec().Kc();f.Ob();)y7(a,BB(f.Pb(),46).b);if(o.a.gc()>1)for(e5(o,new hC(n,b=new hqn(w,o,r))),u.c[u.c.length]=b,f=o.a.ec().Kc();f.Ob();)y7(a,BB(f.Pb(),46).b)}}function tUn(n){NM(n,new MTn(dj(vj(wj(pj(gj(new du,w4n),"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 Ha),w4n))),u2(n,w4n,g3n,mpn(xjt)),u2(n,w4n,vZn,mpn(Kjt)),u2(n,w4n,PZn,mpn(Cjt)),u2(n,w4n,BZn,mpn(Ijt)),u2(n,w4n,SZn,mpn(Ojt)),u2(n,w4n,CZn,mpn(Pjt)),u2(n,w4n,MZn,mpn(Ajt)),u2(n,w4n,IZn,mpn(Njt)),u2(n,w4n,h4n,mpn(Mjt)),u2(n,w4n,s4n,mpn(Sjt)),u2(n,w4n,b4n,mpn($jt)),u2(n,w4n,u4n,mpn(Ljt)),u2(n,w4n,o4n,mpn(Djt)),u2(n,w4n,f4n,mpn(Rjt)),u2(n,w4n,l4n,mpn(_jt))}function eUn(n){var t;if(this.r=xV(new Pn,new Cn),this.b=new Hbn(BB(yX(FIt),290)),this.p=new Hbn(BB(yX(FIt),290)),this.i=new Hbn(BB(yX(Krt),290)),this.e=n,this.o=new wA(n.rf()),this.D=n.Df()||qy(TD(n.We((sWn(),SSt)))),this.A=BB(n.We((sWn(),KSt)),21),this.B=BB(n.We(qSt),21),this.q=BB(n.We(uPt),98),this.u=BB(n.We(fPt),21),!wMn(this.u))throw Hp(new rk("Invalid port label placement: "+this.u));if(this.v=qy(TD(n.We(bPt))),this.j=BB(n.We(DSt),21),!tLn(this.j))throw Hp(new rk("Invalid node label placement: "+this.j));this.n=BB(nkn(n,NSt),116),this.k=Gy(MD(nkn(n,OPt))),this.d=Gy(MD(nkn(n,IPt))),this.w=Gy(MD(nkn(n,RPt))),this.s=Gy(MD(nkn(n,APt))),this.t=Gy(MD(nkn(n,$Pt))),this.C=BB(nkn(n,xPt),142),this.c=2*this.d,t=!this.B.Hc((n_n(),HIt)),this.f=new Ign(0,t,0),this.g=new Ign(1,t,0),jy(this.f,(Dtn(),zit),this.g)}function iUn(n,t,i,r,c){var a,u,o,s,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S;for(y=0,g=0,d=0,w=1,m=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));m.e!=m.i.gc();)w+=F3(new oz(ZL(dLn(p=BB(kpn(m),33)).a.Kc(),new h))),T=p.g,g=e.Math.max(g,T),b=p.f,d=e.Math.max(d,b),y+=T*b;for(u=y+2*r*r*w*(!n.a&&(n.a=new eU(UOt,n,10,11)),n.a).i,a=e.Math.sqrt(u),s=e.Math.max(a*i,g),o=e.Math.max(a/i,d),v=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));v.e!=v.i.gc();)p=BB(kpn(v),33),M=c.b+(H$n(t,26)*rYn+H$n(t,27)*cYn)*(s-p.g),S=c.b+(H$n(t,26)*rYn+H$n(t,27)*cYn)*(o-p.f),Pen(p,M),Cen(p,S);for(E=s+(c.b+c.c),j=o+(c.d+c.a),k=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));k.e!=k.i.gc();)for(l=new oz(ZL(dLn(BB(kpn(k),33)).a.Kc(),new h));dAn(l);)nAn(f=BB(U5(l),79))||BXn(f,t,E,j);KUn(n,E+=c.b+c.c,j+=c.d+c.a,!1,!0)}function rUn(n){var t,e,i,r,c,a,u,o,s,h,f;if(null==n)throw Hp(new Mk(zWn));if(s=n,o=!1,(c=n.length)>0&&(b1(0,n.length),45!=(t=n.charCodeAt(0))&&43!=t||(n=n.substr(1),--c,o=45==t)),0==c)throw Hp(new Mk(DQn+s+'"'));for(;n.length>0&&(b1(0,n.length),48==n.charCodeAt(0));)n=n.substr(1),--c;if(c>(iFn(),xtt)[10])throw Hp(new Mk(DQn+s+'"'));for(r=0;r<c;r++)if(-1==egn((b1(r,n.length),n.charCodeAt(r))))throw Hp(new Mk(DQn+s+'"'));for(f=0,a=Ltt[10],h=Ntt[10],u=j7(Dtt[10]),e=!0,(i=c%a)>0&&(f=-parseInt(n.substr(0,i),10),n=n.substr(i),c-=i,e=!1);c>=a;){if(i=parseInt(n.substr(0,a),10),n=n.substr(a),c-=a,e)e=!1;else{if(Vhn(f,u)<0)throw Hp(new Mk(DQn+s+'"'));f=cbn(f,h)}f=ibn(f,i)}if(Vhn(f,0)>0)throw Hp(new Mk(DQn+s+'"'));if(!o&&Vhn(f=j7(f),0)<0)throw Hp(new Mk(DQn+s+'"'));return f}function cUn(n,t){var e,i,r,c,a,u,o;if(ZH(),this.a=new X$(this),this.b=n,this.c=t,this.f=OU(B7((IPn(),Z$t),t)),this.f.dc())if((u=mjn(Z$t,n))==t)for(this.e=!0,this.d=new Np,this.f=new fo,this.f.Fc(S7n),BB(NHn(F7(Z$t,Utn(n)),""),26)==n&&this.f.Fc(az(Z$t,Utn(n))),r=EKn(Z$t,n).Kc();r.Ob();)switch(i=BB(r.Pb(),170),DW(B7(Z$t,i))){case 4:this.d.Fc(i);break;case 5:this.f.Gc(OU(B7(Z$t,i)))}else if(ZM(),BB(t,66).Oj())for(this.e=!0,this.f=null,this.d=new Np,a=0,o=(null==n.i&&qFn(n),n.i).length;a<o;++a)for(null==n.i&&qFn(n),e=n.i,i=a>=0&&a<e.length?e[a]:null,c=Z1(B7(Z$t,i));c;c=Z1(B7(Z$t,c)))c==t&&this.d.Fc(i);else 1==DW(B7(Z$t,t))&&u?(this.f=null,this.d=(TOn(),bLt)):(this.f=null,this.e=!0,this.d=(SQ(),new Gb(t)));else this.e=5==DW(B7(Z$t,t)),this.f.Fb(uLt)&&(this.f=uLt)}function aUn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d;for(i=0,r=Pmn(n,t),b=n.s,w=n.t,h=BB(BB(h6(n.r,t),21),84).Kc();h.Ob();)if((s=BB(h.Pb(),111)).c&&!(s.c.d.c.length<=0)){switch(d=s.b.rf(),o=s.b.Xe((sWn(),aPt))?Gy(MD(s.b.We(aPt))):0,(l=(f=s.c).i).b=(u=f.n,f.e.a+u.b+u.c),l.a=(a=f.n,f.e.b+a.d+a.a),t.g){case 1:l.c=s.a?(d.a-l.b)/2:d.a+b,l.d=d.b+o+r,l9(f,(J9(),Qit)),WD(f,(G7(),crt));break;case 3:l.c=s.a?(d.a-l.b)/2:d.a+b,l.d=-o-r-l.a,l9(f,(J9(),Qit)),WD(f,(G7(),irt));break;case 2:l.c=-o-r-l.b,s.a?(c=n.v?l.a:BB(xq(f.d,0),181).rf().b,l.d=(d.b-c)/2):l.d=d.b+w,l9(f,(J9(),Jit)),WD(f,(G7(),rrt));break;case 4:l.c=d.a+o+r,s.a?(c=n.v?l.a:BB(xq(f.d,0),181).rf().b,l.d=(d.b-c)/2):l.d=d.b+w,l9(f,(J9(),Yit)),WD(f,(G7(),rrt))}(t==(kUn(),sIt)||t==SIt)&&(i=e.Math.max(i,l.a))}i>0&&(BB(oV(n.b,t),124).a.b=i)}function uUn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(OTn(t,"Comment pre-processing",1),e=0,o=new Wb(n.a);o.a<o.c.c.length;)if(qy(TD(mMn(u=BB(n0(o),10),(HXn(),Tdt))))){for(++e,r=0,i=null,s=null,w=new Wb(u.j);w.a<w.c.c.length;)r+=(l=BB(n0(w),11)).e.c.length+l.g.c.length,1==l.e.c.length&&(s=(i=BB(xq(l.e,0),17)).c),1==l.g.c.length&&(s=(i=BB(xq(l.g,0),17)).d);if(1!=r||s.e.c.length+s.g.c.length!=1||qy(TD(mMn(s.i,Tdt)))){for(g=new Np,b=new Wb(u.j);b.a<b.c.c.length;){for(f=new Wb((l=BB(n0(b),11)).g);f.a<f.c.c.length;)0==(h=BB(n0(f),17)).d.g.c.length||(g.c[g.c.length]=h);for(a=new Wb(l.e);a.a<a.c.c.length;)0==(c=BB(n0(a),17)).c.e.c.length||(g.c[g.c.length]=c)}for(d=new Wb(g);d.a<d.c.c.length;)tBn(BB(n0(d),17),!0)}else nXn(u,i,s,s.i),AU(o)}t.n&&OH(t,"Found "+e+" comment boxes"),HSn(t)}function oUn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d;if(l=Gy(MD(mMn(n,(HXn(),Cpt)))),b=Gy(MD(mMn(n,Ipt))),f=Gy(MD(mMn(n,Spt))),u=n.o,a=(c=BB(xq(n.j,0),11)).n,d=TPn(c,f)){if(t.Hc((lIn(),eIt)))switch(BB(mMn(n,(hWn(),Qft)),61).g){case 1:d.c=(u.a-d.b)/2-a.a,d.d=b;break;case 3:d.c=(u.a-d.b)/2-a.a,d.d=-b-d.a;break;case 2:e&&0==c.e.c.length&&0==c.g.c.length?(h=i?d.a:BB(xq(c.f,0),70).o.b,d.d=(u.b-h)/2-a.b):d.d=u.b+b-a.b,d.c=-l-d.b;break;case 4:e&&0==c.e.c.length&&0==c.g.c.length?(h=i?d.a:BB(xq(c.f,0),70).o.b,d.d=(u.b-h)/2-a.b):d.d=u.b+b-a.b,d.c=l}else if(t.Hc(rIt))switch(BB(mMn(n,(hWn(),Qft)),61).g){case 1:case 3:d.c=a.a+l;break;case 2:case 4:e&&!c.c?(h=i?d.a:BB(xq(c.f,0),70).o.b,d.d=(u.b-h)/2-a.b):d.d=a.b+b}for(r=d.d,s=new Wb(c.f);s.a<s.c.c.length;)(w=(o=BB(n0(s),70)).n).a=d.c,w.b=r,r+=o.o.b+f}}function sUn(){RO(wLt,new Vs),RO(zLt,new ah),RO(ULt,new ph),RO(XLt,new Ch),RO(Qtt,new $h),RO(Gk(NNt,1),new Lh),RO(ktt,new Nh),RO(Ttt,new xh),RO(Qtt,new _s),RO(Qtt,new Fs),RO(Qtt,new Bs),RO(Ptt,new Hs),RO(Qtt,new qs),RO(Rnt,new Gs),RO(Rnt,new zs),RO(Qtt,new Us),RO(Ctt,new Xs),RO(Qtt,new Ws),RO(Qtt,new Qs),RO(Qtt,new Ys),RO(Qtt,new Js),RO(Qtt,new Zs),RO(Gk(NNt,1),new nh),RO(Qtt,new th),RO(Qtt,new eh),RO(Rnt,new ih),RO(Rnt,new rh),RO(Qtt,new ch),RO(Att,new uh),RO(Qtt,new oh),RO(Rtt,new sh),RO(Qtt,new hh),RO(Qtt,new fh),RO(Qtt,new lh),RO(Qtt,new bh),RO(Rnt,new wh),RO(Rnt,new dh),RO(Qtt,new gh),RO(Qtt,new vh),RO(Qtt,new mh),RO(Qtt,new yh),RO(Qtt,new kh),RO(Qtt,new jh),RO(_tt,new Eh),RO(Qtt,new Th),RO(Qtt,new Mh),RO(Qtt,new Sh),RO(_tt,new Ph),RO(Rtt,new Ih),RO(Qtt,new Oh),RO(Att,new Ah)}function hUn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;if((f=t.length)>0&&(b1(0,t.length),64!=(u=t.charCodeAt(0)))){if(37==u&&(o=!1,0!=(h=t.lastIndexOf("%"))&&(h==f-1||(b1(h+1,t.length),o=46==t.charCodeAt(h+1))))){if(v=mK("%",a=t.substr(1,h-1))?null:$Un(a),i=0,o)try{i=l_n(t.substr(h+2),_Vn,DWn)}catch(m){throw cL(m=lun(m),127)?Hp(new L7(m)):Hp(m)}for(d=Ern(n.Wg());d.Ob();)if(cL(b=Man(d),510)&&(p=(r=BB(b,590)).d,(null==v?null==p:mK(v,p))&&0==i--))return r;return null}if(l=-1==(s=t.lastIndexOf("."))?t:t.substr(0,s),e=0,-1!=s)try{e=l_n(t.substr(s+1),_Vn,DWn)}catch(m){if(!cL(m=lun(m),127))throw Hp(m);l=t}for(l=mK("%",l)?null:$Un(l),w=Ern(n.Wg());w.Ob();)if(cL(b=Man(w),191)&&(g=(c=BB(b,191)).ne(),(null==l?null==g:mK(l,g))&&0==e--))return c;return null}return _qn(n,t)}function fUn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T;for(m=new Np,f=new Wb(n.b);f.a<f.c.c.length;)for(w=new Wb(BB(n0(f),29).a);w.a<w.c.c.length;)if((l=BB(n0(w),10)).k==(uSn(),Mut)&&Lx(l,(hWn(),Vft))){for(d=null,p=null,g=null,j=new Wb(l.j);j.a<j.c.c.length;)switch((k=BB(n0(j),11)).j.g){case 4:d=k;break;case 2:p=k;break;default:g=k}for(s=new Kj((v=BB(xq(g.g,0),17)).a),UR(o=new wA(g.n),l.n),nX(spn(s,0),o),y=Jon(v.a),UR(h=new wA(g.n),l.n),r5(y,h,y.c.b,y.c),E=BB(mMn(l,Vft),10),T=BB(xq(E.j,0),11),c=0,u=(i=BB(Qgn(d.e,x8(yut,c1n,17,0,0,1)),474)).length;c<u;++c)MZ(t=i[c],T),Wsn(t.a,t.a.b,s);for(r=0,a=(e=Z0(p.g)).length;r<a;++r)SZ(t=e[r],T),Wsn(t.a,0,y);SZ(v,null),MZ(v,null),m.c[m.c.length]=l}for(b=new Wb(m);b.a<b.c.c.length;)PZ(l=BB(n0(b),10),null)}function lUn(){var n,t,e;for(lUn=O,new knn(1,0),new knn(10,0),new knn(0,0),Htt=x8(iet,sVn,240,11,0,1),qtt=x8(ONt,WVn,25,100,15,1),Gtt=Pun(Gk(xNt,1),qQn,25,15,[1,5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125,6103515625,30517578125,152587890625,762939453125,3814697265625,19073486328125,95367431640625,476837158203125,0x878678326eac9]),ztt=x8(ANt,hQn,25,Gtt.length,15,1),Utt=Pun(Gk(xNt,1),qQn,25,15,[1,10,100,VVn,1e4,GQn,1e6,1e7,1e8,AQn,1e10,1e11,1e12,1e13,1e14,1e15,1e16]),Xtt=x8(ANt,hQn,25,Utt.length,15,1),Wtt=x8(iet,sVn,240,11,0,1),n=0;n<Wtt.length;n++)Htt[n]=new knn(n,0),Wtt[n]=new knn(0,n),qtt[n]=48;for(;n<qtt.length;n++)qtt[n]=48;for(e=0;e<ztt.length;e++)ztt[e]=aIn(Gtt[e]);for(t=0;t<Xtt.length;t++)Xtt[t]=aIn(Utt[t]);$On()}function bUn(){function n(){this.obj=this.createObject()}return n.prototype.createObject=function(n){return Object.create(null)},n.prototype.get=function(n){return this.obj[n]},n.prototype.set=function(n,t){this.obj[n]=t},n.prototype[iYn]=function(n){delete this.obj[n]},n.prototype.keys=function(){return Object.getOwnPropertyNames(this.obj)},n.prototype.entries=function(){var n=this.keys(),t=this,e=0;return{next:function(){if(e>=n.length)return{done:!0};var i=n[e++];return{value:[i,t.get(i)],done:!1}}}},zDn()||(n.prototype.createObject=function(){return{}},n.prototype.get=function(n){return this.obj[":"+n]},n.prototype.set=function(n,t){this.obj[":"+n]=t},n.prototype[iYn]=function(n){delete this.obj[":"+n]},n.prototype.keys=function(){var n=[];for(var t in this.obj)58==t.charCodeAt(0)&&n.push(t.substring(1));return n}),n}function wUn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d;if(PFn(),null==n)return null;if(0==(f=8*n.length))return"";for(l=f/24|0,c=null,c=x8(ONt,WVn,25,4*(0!=(u=f%24)?l+1:l),15,1),s=0,h=0,t=0,e=0,i=0,a=0,r=0,o=0;o<l;o++)t=n[r++],h=(15&(e=n[r++]))<<24>>24,s=(3&t)<<24>>24,b=0==(-128&t)?t>>2<<24>>24:(t>>2^192)<<24>>24,w=0==(-128&e)?e>>4<<24>>24:(e>>4^240)<<24>>24,d=0==(-128&(i=n[r++]))?i>>6<<24>>24:(i>>6^252)<<24>>24,c[a++]=VLt[b],c[a++]=VLt[w|s<<4],c[a++]=VLt[h<<2|d],c[a++]=VLt[63&i];return 8==u?(s=(3&(t=n[r]))<<24>>24,b=0==(-128&t)?t>>2<<24>>24:(t>>2^192)<<24>>24,c[a++]=VLt[b],c[a++]=VLt[s<<4],c[a++]=61,c[a++]=61):16==u&&(t=n[r],h=(15&(e=n[r+1]))<<24>>24,s=(3&t)<<24>>24,b=0==(-128&t)?t>>2<<24>>24:(t>>2^192)<<24>>24,w=0==(-128&e)?e>>4<<24>>24:(e>>4^240)<<24>>24,c[a++]=VLt[b],c[a++]=VLt[w|s<<4],c[a++]=VLt[h<<2],c[a++]=61),Bdn(c,0,c.length)}function dUn(n,t){var i,r,c,a,u,o;if(0==n.e&&n.p>0&&(n.p=-(n.p-1)),n.p>_Vn&&e4(t,n.p-sQn),u=t.q.getDate(),FJ(t,1),n.k>=0&&vZ(t,n.k),n.c>=0?FJ(t,n.c):n.k>=0?(r=35-new von(t.q.getFullYear()-sQn,t.q.getMonth(),35).q.getDate(),FJ(t,e.Math.min(r,u))):FJ(t,u),n.f<0&&(n.f=t.q.getHours()),n.b>0&&n.f<12&&(n.f+=12),aL(t,24==n.f&&n.g?0:n.f),n.j>=0&&g6(t,n.j),n.n>=0&&U8(t,n.n),n.i>=0&&dO(t,rbn(cbn(Ojn(fan(t.q.getTime()),VVn),VVn),n.i)),n.a&&(e4(c=new AT,c.q.getFullYear()-sQn-80),sS(fan(t.q.getTime()),fan(c.q.getTime()))&&e4(t,c.q.getFullYear()-sQn+100)),n.d>=0)if(-1==n.c)(i=(7+n.d-t.q.getDay())%7)>3&&(i-=7),o=t.q.getMonth(),FJ(t,t.q.getDate()+i),t.q.getMonth()!=o&&FJ(t,t.q.getDate()+(i>0?-7:7));else if(t.q.getDay()!=n.d)return!1;return n.o>_Vn&&(a=t.q.getTimezoneOffset(),dO(t,rbn(fan(t.q.getTime()),60*(n.o-a)*VVn))),!0}function gUn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;if(cL(r=mMn(t,(hWn(),dlt)),239)){for(b=BB(r,33),w=t.e,f=new wA(t.c),c=t.d,f.a+=c.b,f.b+=c.d,SN(BB(ZAn(b,(HXn(),qgt)),174),(n_n(),qIt))&&(Ol(l=BB(ZAn(b,zgt),116),c.a),_l(l,c.d),Al(l,c.b),Fl(l,c.c)),e=new Np,s=new Wb(t.a);s.a<s.c.c.length;)for(cL(mMn(u=BB(n0(s),10),dlt),239)?CUn(u,f):cL(mMn(u,dlt),186)&&!w&&SA(i=BB(mMn(u,dlt),118),(g=yFn(t,u,i.g,i.f)).a,g.b),d=new Wb(u.j);d.a<d.c.c.length;)JT(AV(new Rq(null,new w1(BB(n0(d),11).g,16)),new Qw(u)),new Yw(e));if(w)for(d=new Wb(w.j);d.a<d.c.c.length;)JT(AV(new Rq(null,new w1(BB(n0(d),11).g,16)),new Jw(w)),new Zw(e));for(p=BB(ZAn(b,Zdt),218),a=new Wb(e);a.a<a.c.c.length;)pzn(BB(n0(a),17),p,f);for(m_n(t),o=new Wb(t.a);o.a<o.c.c.length;)(h=(u=BB(n0(o),10)).e)&&gUn(n,h)}}function pUn(n){NM(n,new MTn(mj(dj(vj(wj(pj(gj(new du,gZn),"ELK Force"),"Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported."),new dt),gZn),EG((hAn(),tAt),Pun(Gk(aAt,1),$Vn,237,0,[ZOt]))))),u2(n,gZn,pZn,iln(1)),u2(n,gZn,vZn,80),u2(n,gZn,mZn,5),u2(n,gZn,VJn,dZn),u2(n,gZn,yZn,iln(1)),u2(n,gZn,kZn,(hN(),!0)),u2(n,gZn,QJn,Qct),u2(n,gZn,jZn,mpn(Hct)),u2(n,gZn,EZn,mpn(Yct)),u2(n,gZn,TZn,!1),u2(n,gZn,MZn,mpn(Wct)),u2(n,gZn,SZn,mpn(Xct)),u2(n,gZn,PZn,mpn(Uct)),u2(n,gZn,CZn,mpn(zct)),u2(n,gZn,IZn,mpn(Jct)),u2(n,gZn,oZn,mpn(Gct)),u2(n,gZn,fZn,mpn(aat)),u2(n,gZn,sZn,mpn(qct)),u2(n,gZn,bZn,mpn(tat)),u2(n,gZn,hZn,mpn(eat))}function vUn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w;if(!BB(BB(h6(n.r,t),21),84).dc()){if(s=(u=BB(oV(n.b,t),124)).i,o=u.n,f=PDn(n,t),r=s.b-o.b-o.c,c=u.a.a,a=s.c+o.b,w=n.w,f!=(cpn(),BCt)&&f!=qCt||1!=BB(BB(h6(n.r,t),21),84).gc()||(c=f==BCt?c-2*n.w:c,f=FCt),r<c&&!n.B.Hc((n_n(),WIt)))f==BCt?a+=w+=(r-c)/(BB(BB(h6(n.r,t),21),84).gc()+1):w+=(r-c)/(BB(BB(h6(n.r,t),21),84).gc()-1);else switch(r<c&&(c=f==BCt?c-2*n.w:c,f=FCt),f.g){case 3:a+=(r-c)/2;break;case 4:a+=r-c;break;case 0:i=(r-c)/(BB(BB(h6(n.r,t),21),84).gc()+1),a+=w+=e.Math.max(0,i);break;case 1:i=(r-c)/(BB(BB(h6(n.r,t),21),84).gc()-1),w+=e.Math.max(0,i)}for(b=BB(BB(h6(n.r,t),21),84).Kc();b.Ob();)(l=BB(b.Pb(),111)).e.a=a+l.d.b,l.e.b=(h=l.b).Xe((sWn(),aPt))?h.Hf()==(kUn(),sIt)?-h.rf().b-Gy(MD(h.We(aPt))):Gy(MD(h.We(aPt))):h.Hf()==(kUn(),sIt)?-h.rf().b:0,a+=l.d.b+l.b.rf().a+l.d.c+w}}function mUn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d;if(!BB(BB(h6(n.r,t),21),84).dc()){if(s=(u=BB(oV(n.b,t),124)).i,o=u.n,l=PDn(n,t),r=s.a-o.d-o.a,c=u.a.b,a=s.d+o.d,d=n.w,h=n.o.a,l!=(cpn(),BCt)&&l!=qCt||1!=BB(BB(h6(n.r,t),21),84).gc()||(c=l==BCt?c-2*n.w:c,l=FCt),r<c&&!n.B.Hc((n_n(),WIt)))l==BCt?a+=d+=(r-c)/(BB(BB(h6(n.r,t),21),84).gc()+1):d+=(r-c)/(BB(BB(h6(n.r,t),21),84).gc()-1);else switch(r<c&&(c=l==BCt?c-2*n.w:c,l=FCt),l.g){case 3:a+=(r-c)/2;break;case 4:a+=r-c;break;case 0:i=(r-c)/(BB(BB(h6(n.r,t),21),84).gc()+1),a+=d+=e.Math.max(0,i);break;case 1:i=(r-c)/(BB(BB(h6(n.r,t),21),84).gc()-1),d+=e.Math.max(0,i)}for(w=BB(BB(h6(n.r,t),21),84).Kc();w.Ob();)(b=BB(w.Pb(),111)).e.a=(f=b.b).Xe((sWn(),aPt))?f.Hf()==(kUn(),CIt)?-f.rf().a-Gy(MD(f.We(aPt))):h+Gy(MD(f.We(aPt))):f.Hf()==(kUn(),CIt)?-f.rf().a:h,b.e.b=a+b.d.d,a+=b.d.d+b.b.rf().b+b.d.a+d}}function yUn(n){var t,i,r,c,a,u,o,s,f,l,b,w,d,g,p;for(n.n=Gy(MD(mMn(n.g,(HXn(),Opt)))),n.e=Gy(MD(mMn(n.g,Tpt))),n.i=n.g.b.c.length,o=n.i-1,w=0,n.j=0,n.k=0,n.a=u6(x8(Att,sVn,19,n.i,0,1)),n.b=u6(x8(Ptt,sVn,333,n.i,7,1)),u=new Wb(n.g.b);u.a<u.c.c.length;){for((c=BB(n0(u),29)).p=o,b=new Wb(c.a);b.a<b.c.c.length;)(l=BB(n0(b),10)).p=w,++w;--o}for(n.f=x8(ANt,hQn,25,w,15,1),n.c=kq(ANt,[sVn,hQn],[48,25],15,[w,3],2),n.o=new Np,n.p=new Np,t=0,n.d=0,a=new Wb(n.g.b);a.a<a.c.c.length;){for(o=(c=BB(n0(a),29)).p,r=0,p=0,s=c.a.c.length,f=0,b=new Wb(c.a);b.a<b.c.c.length;)w=(l=BB(n0(b),10)).p,n.f[w]=l.c.p,f+=l.o.b+n.n,i=F3(new oz(ZL(fbn(l).a.Kc(),new h))),g=F3(new oz(ZL(lbn(l).a.Kc(),new h))),n.c[w][0]=g-i,n.c[w][1]=i,n.c[w][2]=g,r+=i,p+=g,i>0&&WB(n.p,l),WB(n.o,l);d=s+(t-=r),f+=t*n.e,c5(n.a,o,iln(d)),c5(n.b,o,f),n.j=e.Math.max(n.j,d),n.k=e.Math.max(n.k,f),n.d+=t,t+=p}}function kUn(){var n;kUn=O,PIt=new WC(hJn,0),sIt=new WC(mJn,1),oIt=new WC(yJn,2),SIt=new WC(kJn,3),CIt=new WC(jJn,4),SQ(),wIt=new Ak(new YK(n=BB(Vj(FIt),9),BB(SR(n,n.length),9),0)),dIt=ffn(EG(sIt,Pun(Gk(FIt,1),YZn,61,0,[]))),hIt=ffn(EG(oIt,Pun(Gk(FIt,1),YZn,61,0,[]))),EIt=ffn(EG(SIt,Pun(Gk(FIt,1),YZn,61,0,[]))),MIt=ffn(EG(CIt,Pun(Gk(FIt,1),YZn,61,0,[]))),yIt=ffn(EG(sIt,Pun(Gk(FIt,1),YZn,61,0,[SIt]))),bIt=ffn(EG(oIt,Pun(Gk(FIt,1),YZn,61,0,[CIt]))),jIt=ffn(EG(sIt,Pun(Gk(FIt,1),YZn,61,0,[CIt]))),gIt=ffn(EG(sIt,Pun(Gk(FIt,1),YZn,61,0,[oIt]))),TIt=ffn(EG(SIt,Pun(Gk(FIt,1),YZn,61,0,[CIt]))),fIt=ffn(EG(oIt,Pun(Gk(FIt,1),YZn,61,0,[SIt]))),mIt=ffn(EG(sIt,Pun(Gk(FIt,1),YZn,61,0,[oIt,CIt]))),lIt=ffn(EG(oIt,Pun(Gk(FIt,1),YZn,61,0,[SIt,CIt]))),kIt=ffn(EG(sIt,Pun(Gk(FIt,1),YZn,61,0,[SIt,CIt]))),pIt=ffn(EG(sIt,Pun(Gk(FIt,1),YZn,61,0,[oIt,SIt]))),vIt=ffn(EG(sIt,Pun(Gk(FIt,1),YZn,61,0,[oIt,SIt,CIt])))}function jUn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;if(0!=t.b){for(l=new YT,a=null,b=null,i=CJ(e.Math.floor(e.Math.log(t.b)*e.Math.LOG10E)+1),u=0,v=spn(t,0);v.b!=v.d.c;)for(g=BB(b3(v),86),GI(b)!==GI(mMn(g,(qqn(),rkt)))&&(b=SD(mMn(g,rkt)),u=0),a=null!=b?b+d0(u++,i):d0(u++,i),hon(g,rkt,a),d=new wg(spn(new bg(g).a.d,0));EE(d.a);)r5(l,w=BB(b3(d.a),188).c,l.c.b,l.c),hon(w,rkt,a);for(f=new xp,c=0;c<a.length-i;c++)for(p=spn(t,0);p.b!=p.d.c;)mZ(f,o=fx(SD(mMn(g=BB(b3(p),86),(qqn(),rkt))),0,c+1),iln(null!=(null==o?qI(AY(f.f,null)):hS(f.g,o))?BB(null==o?qI(AY(f.f,null)):hS(f.g,o),19).a+1:1));for(h=new usn(new Pb(f).a);h.b;)s=ten(h),r=iln(null!=RX(n.a,s.cd())?BB(RX(n.a,s.cd()),19).a:0),mZ(n.a,SD(s.cd()),iln(BB(s.dd(),19).a+r.a)),(!(r=BB(RX(n.b,s.cd()),19))||r.a<BB(s.dd(),19).a)&&mZ(n.b,SD(s.cd()),BB(s.dd(),19));jUn(n,l)}}function EUn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(OTn(i,"Interactive node layering",1),r=new Np,w=new Wb(t.a);w.a<w.c.c.length;){for(s=(h=(l=BB(n0(w),10)).n.a)+l.o.a,s=e.Math.max(h+1,s),v=new M2(r,0),c=null;v.b<v.d.gc();){if(Px(v.b<v.d.gc()),(g=BB(v.d.Xb(v.c=v.b++),569)).c>=s){Px(v.b>0),v.a.Xb(v.c=--v.b);break}g.a>h&&(c?(gun(c.b,g.b),c.a=e.Math.max(c.a,g.a),fW(v)):(WB(g.b,l),g.c=e.Math.min(g.c,h),g.a=e.Math.max(g.a,s),c=g))}c||((c=new im).c=h,c.a=s,yR(v,c),WB(c.b,l))}for(o=t.b,f=0,p=new Wb(r);p.a<p.c.c.length;)for(g=BB(n0(p),569),(a=new HX(t)).p=f++,o.c[o.c.length]=a,d=new Wb(g.b);d.a<d.c.c.length;)PZ(l=BB(n0(d),10),a),l.p=0;for(b=new Wb(t.a);b.a<b.c.c.length;)0==(l=BB(n0(b),10)).p&&CDn(n,l,t);for(u=new M2(o,0);u.b<u.d.gc();)0==(Px(u.b<u.d.gc()),BB(u.d.Xb(u.c=u.b++),29)).a.c.length&&fW(u);t.a.c=x8(Ant,HWn,1,0,5,1),HSn(i)}function TUn(n,t,e){var i,r,c,a,u,o,s,h,f,l;if(0!=t.e.c.length&&0!=e.e.c.length){if((i=BB(xq(t.e,0),17).c.i)==(a=BB(xq(e.e,0),17).c.i))return E$(BB(mMn(BB(xq(t.e,0),17),(hWn(),wlt)),19).a,BB(mMn(BB(xq(e.e,0),17),wlt),19).a);for(f=0,l=(h=n.a).length;f<l;++f){if((s=h[f])==i)return 1;if(s==a)return-1}}return 0!=t.g.c.length&&0!=e.g.c.length?(c=BB(mMn(t,(hWn(),llt)),10),o=BB(mMn(e,llt),10),r=0,u=0,Lx(BB(xq(t.g,0),17),wlt)&&(r=BB(mMn(BB(xq(t.g,0),17),wlt),19).a),Lx(BB(xq(e.g,0),17),wlt)&&(u=BB(mMn(BB(xq(t.g,0),17),wlt),19).a),c&&c==o?qy(TD(mMn(BB(xq(t.g,0),17),Clt)))&&!qy(TD(mMn(BB(xq(e.g,0),17),Clt)))?1:!qy(TD(mMn(BB(xq(t.g,0),17),Clt)))&&qy(TD(mMn(BB(xq(e.g,0),17),Clt)))||r<u?-1:r>u?1:0:(n.b&&(n.b._b(c)&&(r=BB(n.b.xc(c),19).a),n.b._b(o)&&(u=BB(n.b.xc(o),19).a)),r<u?-1:r>u?1:0)):0!=t.e.c.length&&0!=e.g.c.length?1:-1}function MUn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;for(OTn(t,O1n,1),w=new Np,y=new Np,s=new Wb(n.b);s.a<s.c.c.length;)for(g=-1,l=0,b=(f=n2((o=BB(n0(s),29)).a)).length;l<b;++l)if(++g,(h=f[l]).k==(uSn(),Cut)&&vA(BB(mMn(h,(HXn(),ept)),98))){for(LK(BB(mMn(h,(HXn(),ept)),98))||HNn(h),hon(h,(hWn(),rlt),h),w.c=x8(Ant,HWn,1,0,5,1),y.c=x8(Ant,HWn,1,0,5,1),e=new Np,qrn(v=new YT,DSn(h,(kUn(),sIt))),AXn(n,v,w,y,e),u=g,k=h,c=new Wb(w);c.a<c.c.c.length;)Qyn(i=BB(n0(c),10),u,o),++g,hon(i,rlt,h),a=BB(xq(i.j,0),11),d=BB(mMn(a,dlt),11),qy(TD(mMn(d,jdt)))||BB(mMn(i,clt),15).Fc(k);for(yQ(v),p=DSn(h,SIt).Kc();p.Ob();)r5(v,BB(p.Pb(),11),v.a,v.a.a);for(AXn(n,v,y,null,e),m=h,r=new Wb(y);r.a<r.c.c.length;)Qyn(i=BB(n0(r),10),++g,o),hon(i,rlt,h),a=BB(xq(i.j,0),11),d=BB(mMn(a,dlt),11),qy(TD(mMn(d,jdt)))||BB(mMn(m,clt),15).Fc(i);0==e.c.length||hon(h,xft,e)}HSn(t)}function SUn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P;for(h=BB(mMn(n,(Mrn(),sat)),33),d=DWn,g=DWn,b=_Vn,w=_Vn,v=new Wb(n.e);v.a<v.c.c.length;)E=(p=BB(n0(v),144)).d,T=p.e,d=e.Math.min(d,E.a-T.a/2),g=e.Math.min(g,E.b-T.b/2),b=e.Math.max(b,E.a+T.a/2),w=e.Math.max(w,E.b+T.b/2);for(k=new xC((j=BB(ZAn(h,(fRn(),Vct)),116)).b-d,j.d-g),o=new Wb(n.e);o.a<o.c.c.length;)cL(y=mMn(u=BB(n0(o),144),sat),239)&&SA(f=BB(y,33),(m=UR(u.d,k)).a-f.g/2,m.b-f.f/2);for(r=new Wb(n.c);r.a<r.c.c.length;)i=BB(n0(r),282),s=cDn(BB(mMn(i,sat),79),!0,!0),Ukn(S=XR(B$(i.d.d),i.c.d),i.c.e.a,i.c.e.b),CA(s,(M=UR(S,i.c.d)).a,M.b),Ukn(P=XR(B$(i.c.d),i.d.d),i.d.e.a,i.d.e.b),PA(s,(t=UR(P,i.d.d)).a,t.b);for(a=new Wb(n.d);a.a<a.c.c.length;)c=BB(n0(a),447),SA(BB(mMn(c,sat),137),(l=UR(c.d,k)).a,l.b);KUn(h,b-d+(j.b+j.c),w-g+(j.d+j.a),!1,!0)}function PUn(n){var t,e,i,r,c,a,u,o,s,h,f;for(e=null,u=null,(r=BB(mMn(n.b,(HXn(),igt)),376))==(A6(),Jvt)&&(e=new Np,u=new Np),a=new Wb(n.d);a.a<a.c.c.length;)if((c=BB(n0(a),101)).i)switch(c.e.g){case 0:t=BB(u4(new QT(c.b)),61),r==Jvt&&t==(kUn(),sIt)?e.c[e.c.length]=c:r==Jvt&&t==(kUn(),SIt)?u.c[u.c.length]=c:Nmn(c,t);break;case 1:o=c.a.d.j,s=c.c.d.j,o==(kUn(),sIt)?bU(c,sIt,(Oun(),mst),c.a):s==sIt?bU(c,sIt,(Oun(),yst),c.c):o==SIt?bU(c,SIt,(Oun(),yst),c.a):s==SIt&&bU(c,SIt,(Oun(),mst),c.c);break;case 2:case 3:SN(i=c.b,(kUn(),sIt))?SN(i,SIt)?SN(i,CIt)?SN(i,oIt)||bU(c,sIt,(Oun(),yst),c.c):bU(c,sIt,(Oun(),mst),c.a):bU(c,sIt,(Oun(),vst),null):bU(c,SIt,(Oun(),vst),null);break;case 4:h=c.a.d.j,f=c.a.d.j,h==(kUn(),sIt)||f==sIt?bU(c,SIt,(Oun(),vst),null):bU(c,sIt,(Oun(),vst),null)}e&&(0==e.c.length||QFn(e,(kUn(),sIt)),0==u.c.length||QFn(u,(kUn(),SIt)))}function CUn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w;for(i=BB(mMn(n,(hWn(),dlt)),33),b=BB(mMn(n,(HXn(),Bdt)),19).a,c=BB(mMn(n,jgt),19).a,Ypn(i,Bdt,iln(b)),Ypn(i,jgt,iln(c)),Pen(i,n.n.a+t.a),Cen(i,n.n.b+t.b),(0!=BB(ZAn(i,Fgt),174).gc()||n.e||GI(mMn(vW(n),_gt))===GI((Nvn(),mvt))&&pA((bvn(),(n.q?n.q:(SQ(),SQ(),het))._b(Rgt)?BB(mMn(n,Rgt),197):BB(mMn(vW(n),Kgt),197))))&&(Sen(i,n.o.a),Men(i,n.o.b)),f=new Wb(n.j);f.a<f.c.c.length;)cL(w=mMn(s=BB(n0(f),11),dlt),186)&&(SA(r=BB(w,118),s.n.a,s.n.b),Ypn(r,upt,s.j));for(l=0!=BB(mMn(n,$gt),174).gc(),o=new Wb(n.b);o.a<o.c.c.length;)a=BB(n0(o),70),(l||0!=BB(mMn(a,$gt),174).gc())&&(MA(e=BB(mMn(a,dlt),137),a.o.a,a.o.b),SA(e,a.n.a,a.n.b));if(!Hz(BB(mMn(n,cpt),21)))for(h=new Wb(n.j);h.a<h.c.c.length;)for(u=new Wb((s=BB(n0(h),11)).f);u.a<u.c.c.length;)a=BB(n0(u),70),Sen(e=BB(mMn(a,dlt),137),a.o.a),Men(e,a.o.b),SA(e,a.n.a,a.n.b)}function IUn(n){var t,e,i,r,c;switch(OY(n,i8n),(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b).i+(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c).i){case 0:throw Hp(new _y("The edge must have at least one source or target."));case 1:return 0==(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b).i?JJ(PTn(BB(Wtn((!n.c&&(n.c=new hK(KOt,n,5,8)),n.c),0),82))):JJ(PTn(BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82)))}if(1==(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b).i&&1==(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c).i){if(r=PTn(BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82)),c=PTn(BB(Wtn((!n.c&&(n.c=new hK(KOt,n,5,8)),n.c),0),82)),JJ(r)==JJ(c))return JJ(r);if(r==JJ(c))return r;if(c==JJ(r))return c}for(t=PTn(BB(U5(i=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c)])))),82));dAn(i);)if((e=PTn(BB(U5(i),82)))!=t&&!Ctn(e,t))if(JJ(e)==JJ(t))t=JJ(e);else if(!(t=B$n(t,e)))return null;return t}function OUn(n,t,i){var r,c,a,u,o,s,f,l,b,w,d,g,p,v,m,y,k,j;for(OTn(i,"Polyline edge routing",1),v=Gy(MD(mMn(t,(HXn(),tgt)))),d=Gy(MD(mMn(t,Apt))),c=Gy(MD(mMn(t,kpt))),r=e.Math.min(1,c/d),k=0,s=0,0!=t.b.c.length&&(k=.4*r*(j=hLn(BB(xq(t.b,0),29)))),o=new M2(t.b,0);o.b<o.d.gc();){for(Px(o.b<o.d.gc()),(a=VI(u=BB(o.d.Xb(o.c=o.b++),29),jyt))&&k>0&&(k-=d),Tqn(u,k),l=0,w=new Wb(u.a);w.a<w.c.c.length;){for(f=0,p=new oz(ZL(lbn(b=BB(n0(w),10)).a.Kc(),new h));dAn(p);)m=g1((g=BB(U5(p),17)).c).b,y=g1(g.d).b,u!=g.d.i.c||b5(g)||(VIn(g,k,.4*r*e.Math.abs(m-y)),g.c.j==(kUn(),CIt)&&(m=0,y=0)),f=e.Math.max(f,e.Math.abs(y-m));switch(b.k.g){case 0:case 4:case 1:case 3:case 5:Gqn(n,b,k,v)}l=e.Math.max(l,f)}o.b<o.d.gc()&&(j=hLn((Px(o.b<o.d.gc()),BB(o.d.Xb(o.c=o.b++),29))),l=e.Math.max(l,j),Px(o.b>0),o.a.Xb(o.c=--o.b)),s=.4*r*l,!a&&o.b<o.d.gc()&&(s+=d),k+=u.c.a+s}n.a.a.$b(),t.f.a=k,HSn(i)}function AUn(n){var t,e,i,r,c,a,u,o,s,f,l,b,w,d,g,p,v;for(s=new xp,u=new pJ,i=new Wb(n.a.a.b);i.a<i.c.c.length;)if(o=f2(t=BB(n0(i),57)))jCn(s.f,o,t);else if(v=f3(t))for(r=new Wb(v.k);r.a<r.c.c.length;)JIn(u,BB(n0(r),17),t);for(e=new Wb(n.a.a.b);e.a<e.c.c.length;)if(o=f2(t=BB(n0(e),57)))for(a=new oz(ZL(lbn(o).a.Kc(),new h));dAn(a);)if(!b5(c=BB(U5(a),17))&&(w=c.c,p=c.d,!(kUn(),yIt).Hc(c.c.j)||!yIt.Hc(c.d.j))){if(d=BB(RX(s,c.d.i),57),UNn(aM(cM(uM(rM(new Hv,0),100),n.c[t.a.d]),n.c[d.a.d])),w.j==CIt&&$z((gcn(),w)))for(l=BB(h6(u,c),21).Kc();l.Ob();)if((f=BB(l.Pb(),57)).d.c<t.d.c){if((b=n.c[f.a.d])==(g=n.c[t.a.d]))continue;UNn(aM(cM(uM(rM(new Hv,1),100),b),g))}if(p.j==oIt&&Az((gcn(),p)))for(l=BB(h6(u,c),21).Kc();l.Ob();)if((f=BB(l.Pb(),57)).d.c>t.d.c){if((b=n.c[t.a.d])==(g=n.c[f.a.d]))continue;UNn(aM(cM(uM(rM(new Hv,1),100),b),g))}}}function $Un(n){var t,e,i,r,c,a,u,o;if(RHn(),null==n)return null;if((r=GO(n,YTn(37)))<0)return n;for(o=new lN(n.substr(0,r)),t=x8(NNt,v6n,25,4,15,1),u=0,i=0,a=n.length;r<a;r++)if(b1(r,n.length),37==n.charCodeAt(r)&&n.length>r+2&&ton((b1(r+1,n.length),n.charCodeAt(r+1)),IAt,OAt)&&ton((b1(r+2,n.length),n.charCodeAt(r+2)),IAt,OAt))if(e=CH((b1(r+1,n.length),n.charCodeAt(r+1)),(b1(r+2,n.length),n.charCodeAt(r+2))),r+=2,i>0?128==(192&e)?t[u++]=e<<24>>24:i=0:e>=128&&(192==(224&e)?(t[u++]=e<<24>>24,i=2):224==(240&e)?(t[u++]=e<<24>>24,i=3):240==(248&e)&&(t[u++]=e<<24>>24,i=4)),i>0){if(u==i){switch(u){case 2:xX(o,((31&t[0])<<6|63&t[1])&QVn);break;case 3:xX(o,((15&t[0])<<12|(63&t[1])<<6|63&t[2])&QVn)}u=0,i=0}}else{for(c=0;c<u;++c)xX(o,t[c]&QVn);u=0,o.a+=String.fromCharCode(e)}else{for(c=0;c<u;++c)xX(o,t[c]&QVn);u=0,xX(o,(b1(r,n.length),n.charCodeAt(r)))}return o.a}function LUn(n,t,e,i,r){var c,a,u;if(ynn(n,t),a=t[0],c=fV(e.c,0),u=-1,Yon(e))if(i>0){if(a+i>n.length)return!1;u=UIn(n.substr(0,a+i),t)}else u=UIn(n,t);switch(c){case 71:return u=zTn(n,a,Pun(Gk(Qtt,1),sVn,2,6,[fQn,lQn]),t),r.e=u,!0;case 77:return gDn(n,t,r,u,a);case 76:return pDn(n,t,r,u,a);case 69:return rCn(n,t,a,r);case 99:return cCn(n,t,a,r);case 97:return u=zTn(n,a,Pun(Gk(Qtt,1),sVn,2,6,["AM","PM"]),t),r.b=u,!0;case 121:return vDn(n,t,a,u,e,r);case 100:return!(u<=0||(r.c=u,0));case 83:return!(u<0)&&jwn(u,a,t[0],r);case 104:12==u&&(u=0);case 75:case 72:return!(u<0||(r.f=u,r.g=!1,0));case 107:return!(u<0||(r.f=u,r.g=!0,0));case 109:return!(u<0||(r.j=u,0));case 115:return!(u<0||(r.n=u,0));case 90:if(a<n.length&&(b1(a,n.length),90==n.charCodeAt(a)))return++t[0],r.o=0,!0;case 122:case 118:return CTn(n,a,t,r);default:return!1}}function NUn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;if(b=BB(BB(h6(n.r,t),21),84),t!=(kUn(),oIt)&&t!=CIt){for(a=t==sIt?(Dan(),Nrt):(Dan(),Rrt),k=t==sIt?(G7(),crt):(G7(),irt),c=(r=(i=BB(oV(n.b,t),124)).i).c+Lon(Pun(Gk(xNt,1),qQn,25,15,[i.n.b,n.C.b,n.k])),v=r.c+r.b-Lon(Pun(Gk(xNt,1),qQn,25,15,[i.n.c,n.C.c,n.k])),u=Zk(H_(a),n.t),m=t==sIt?KQn:RQn,l=b.Kc();l.Ob();)!(h=BB(l.Pb(),111)).c||h.c.d.c.length<=0||(p=h.b.rf(),g=h.e,(d=(w=h.c).i).b=(s=w.n,w.e.a+s.b+s.c),d.a=(o=w.n,w.e.b+o.d+o.a),OY(k,uJn),w.f=k,l9(w,(J9(),Jit)),d.c=g.a-(d.b-p.a)/2,j=e.Math.min(c,g.a),E=e.Math.max(v,g.a+p.a),d.c<j?d.c=j:d.c+d.b>E&&(d.c=E-d.b),WB(u.d,new xG(d,kln(u,d))),m=t==sIt?e.Math.max(m,g.b+h.b.rf().b):e.Math.min(m,g.b));for(m+=t==sIt?n.t:-n.t,(y=Pwn((u.e=m,u)))>0&&(BB(oV(n.b,t),124).a.b=y),f=b.Kc();f.Ob();)!(h=BB(f.Pb(),111)).c||h.c.d.c.length<=0||((d=h.c.i).c-=h.e.a,d.d-=h.e.b)}else aUn(n,t)}function xUn(n){var t,e,i,r,c,a,u,o,s,f;for(t=new xp,a=new AL(n);a.e!=a.i.gc();){for(c=BB(kpn(a),33),e=new Rv,VW(Mct,c,e),f=new ut,i=BB(P4(new Rq(null,new zU(new oz(ZL(wLn(c).a.Kc(),new h)))),SG(f,m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)])))),83),Jen(e,BB(i.xc((hN(),!0)),14),new ot),r=BB(P4(AV(BB(i.xc(!1),15).Lc(),new st),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[Uet]))),15).Kc();r.Ob();)(s=CMn(BB(r.Pb(),79)))&&((u=BB(qI(AY(t.f,s)),21))||(u=Oxn(s),jCn(t.f,s,u)),Frn(e,u));for(i=BB(P4(new Rq(null,new zU(new oz(ZL(dLn(c).a.Kc(),new h)))),SG(f,m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[Uet])))),83),Jen(e,BB(i.xc(!0),14),new ht),o=BB(P4(AV(BB(i.xc(!1),15).Lc(),new ft),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[Uet]))),15).Kc();o.Ob();)(s=IMn(BB(o.Pb(),79)))&&((u=BB(qI(AY(t.f,s)),21))||(u=Oxn(s),jCn(t.f,s,u)),Frn(e,u))}}function DUn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d;if(uHn(),(o=Vhn(n,0)<0)&&(n=j7(n)),0==Vhn(n,0))switch(t){case 0:return"0";case 1:return WQn;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(b=new Ck).a+=t<0?"0E+":"0E",b.a+=t==_Vn?"2147483648":""+-t,b.a}f=x8(ONt,WVn,25,1+(h=18),15,1),e=h,d=n;do{s=d,d=Ojn(d,10),f[--e]=dG(rbn(48,ibn(s,cbn(d,10))))&QVn}while(0!=Vhn(d,0));if(r=ibn(ibn(ibn(h,e),t),1),0==t)return o&&(f[--e]=45),Bdn(f,e,h-e);if(t>0&&Vhn(r,-6)>=0){if(Vhn(r,0)>=0){for(c=e+dG(r),u=h-1;u>=c;u--)f[u+1]=f[u];return f[++c]=46,o&&(f[--e]=45),Bdn(f,e,h-e+1)}for(a=2;sS(a,rbn(j7(r),1));a++)f[--e]=48;return f[--e]=46,f[--e]=48,o&&(f[--e]=45),Bdn(f,e,h-e)}return w=e+1,i=h,l=new Ik,o&&(l.a+="-"),i-w>=1?(xX(l,f[e]),l.a+=".",l.a+=Bdn(f,e+1,h-e-1)):l.a+=Bdn(f,e,h-e),l.a+="E",Vhn(r,0)>0&&(l.a+="+"),l.a+=""+vz(r),l.a}function RUn(n,t,e){var i,r,c,a,u,o,s,h,f,l;if(n.e.a.$b(),n.f.a.$b(),n.c.c=x8(Ant,HWn,1,0,5,1),n.i.c=x8(Ant,HWn,1,0,5,1),n.g.a.$b(),t)for(a=new Wb(t.a);a.a<a.c.c.length;)for(h=DSn(c=BB(n0(a),10),(kUn(),oIt)).Kc();h.Ob();)for(s=BB(h.Pb(),11),TU(n.e,s),r=new Wb(s.g);r.a<r.c.c.length;)b5(i=BB(n0(r),17))||(WB(n.c,i),ppn(n,i),((u=i.c.i.k)==(uSn(),Cut)||u==Iut||u==Mut||u==Tut)&&WB(n.j,i),(f=(l=i.d).i.c)==e?TU(n.f,l):f==t?TU(n.e,l):y7(n.c,i));if(e)for(a=new Wb(e.a);a.a<a.c.c.length;){for(o=new Wb((c=BB(n0(a),10)).j);o.a<o.c.c.length;)for(r=new Wb(BB(n0(o),11).g);r.a<r.c.c.length;)b5(i=BB(n0(r),17))&&TU(n.g,i);for(h=DSn(c,(kUn(),CIt)).Kc();h.Ob();)for(s=BB(h.Pb(),11),TU(n.f,s),r=new Wb(s.g);r.a<r.c.c.length;)b5(i=BB(n0(r),17))||(WB(n.c,i),ppn(n,i),((u=i.c.i.k)==(uSn(),Cut)||u==Iut||u==Mut||u==Tut)&&WB(n.j,i),(f=(l=i.d).i.c)==e?TU(n.f,l):f==t?TU(n.e,l):y7(n.c,i))}}function KUn(n,t,i,r,c){var a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;if(p=new xC(n.g,n.f),(g=XPn(n)).a=e.Math.max(g.a,t),g.b=e.Math.max(g.b,i),E=g.a/p.a,f=g.b/p.b,k=g.a-p.a,s=g.b-p.b,r)for(u=JJ(n)?BB(ZAn(JJ(n),(sWn(),bSt)),103):BB(ZAn(n,(sWn(),bSt)),103),o=GI(ZAn(n,(sWn(),uPt)))===GI((QEn(),XCt)),m=new AL((!n.c&&(n.c=new eU(XOt,n,9,9)),n.c));m.e!=m.i.gc();)switch(v=BB(kpn(m),118),(y=BB(ZAn(v,wPt),61))==(kUn(),PIt)&&(y=OFn(v,u),Ypn(v,wPt,y)),y.g){case 1:o||Pen(v,v.i*E);break;case 2:Pen(v,v.i+k),o||Cen(v,v.j*f);break;case 3:o||Pen(v,v.i*E),Cen(v,v.j+s);break;case 4:o||Cen(v,v.j*f)}if(MA(n,g.a,g.b),c)for(b=new AL((!n.n&&(n.n=new eU(zOt,n,1,7)),n.n));b.e!=b.i.gc();)w=(l=BB(kpn(b),137)).i+l.g/2,d=l.j+l.f/2,(j=w/p.a)+(h=d/p.b)>=1&&(j-h>0&&d>=0?(Pen(l,l.i+k),Cen(l,l.j+s*h)):j-h<0&&w>=0&&(Pen(l,l.i+k*j),Cen(l,l.j+s)));return Ypn(n,(sWn(),KSt),(mdn(),new YK(a=BB(Vj(YIt),9),BB(SR(a,a.length),9),0))),new xC(E,f)}function _Un(n){var t,i,r,c,a,u,o,s,h,f,l;if(f=JJ(PTn(BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82)))==JJ(PTn(BB(Wtn((!n.c&&(n.c=new hK(KOt,n,5,8)),n.c),0),82))),u=new Gj,(t=BB(ZAn(n,(Xsn(),hCt)),74))&&t.b>=2){if(0==(!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i)tE(),i=new co,f9((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a),i);else if((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i>1)for(l=new cx((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a));l.e!=l.i.gc();)Qjn(l);VFn(t,BB(Wtn((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a),0),202))}if(f)for(r=new AL((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a));r.e!=r.i.gc();)for(s=new AL((!(i=BB(kpn(r),202)).a&&(i.a=new $L(xOt,i,5)),i.a));s.e!=s.i.gc();)o=BB(kpn(s),469),u.a=e.Math.max(u.a,o.a),u.b=e.Math.max(u.b,o.b);for(a=new AL((!n.n&&(n.n=new eU(zOt,n,1,7)),n.n));a.e!=a.i.gc();)c=BB(kpn(a),137),(h=BB(ZAn(c,gCt),8))&&SA(c,h.a,h.b),f&&(u.a=e.Math.max(u.a,c.i+c.g),u.b=e.Math.max(u.b,c.j+c.f));return u}function FUn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;for(v=t.c.length,c=new qKn(n.a,i,null,null),E=x8(xNt,qQn,25,v,15,1),w=x8(xNt,qQn,25,v,15,1),b=x8(xNt,qQn,25,v,15,1),d=0,o=0;o<v;o++)w[o]=DWn,b[o]=_Vn;for(s=0;s<v;s++)for(l1(s,t.c.length),r=BB(t.c[s],180),E[s]=v$n(r),E[d]>E[s]&&(d=s),f=new Wb(n.a.b);f.a<f.c.c.length;)for(p=new Wb(BB(n0(f),29).a);p.a<p.c.c.length;)g=BB(n0(p),10),k=Gy(r.p[g.p])+Gy(r.d[g.p]),w[s]=e.Math.min(w[s],k),b[s]=e.Math.max(b[s],k+g.o.b);for(j=x8(xNt,qQn,25,v,15,1),h=0;h<v;h++)(l1(h,t.c.length),BB(t.c[h],180)).o==(oZ(),ryt)?j[h]=w[d]-w[h]:j[h]=b[d]-b[h];for(a=x8(xNt,qQn,25,v,15,1),l=new Wb(n.a.b);l.a<l.c.c.length;)for(y=new Wb(BB(n0(l),29).a);y.a<y.c.c.length;){for(m=BB(n0(y),10),u=0;u<v;u++)a[u]=Gy((l1(u,t.c.length),BB(t.c[u],180)).p[m.p])+Gy((l1(u,t.c.length),BB(t.c[u],180)).d[m.p])+j[u];a.sort(ien(T.prototype.te,T,[])),c.p[m.p]=(a[1]+a[2])/2,c.d[m.p]=0}return c}function BUn(n,t,e){var i,r,c,a,u;switch(i=t.i,c=n.i.o,r=n.i.d,u=n.n,a=Aon(Pun(Gk(PMt,1),sVn,8,0,[u,n.a])),n.j.g){case 1:WD(t,(G7(),irt)),i.d=-r.d-e-i.a,BB(BB(xq(t.d,0),181).We((hWn(),ult)),285)==(Xyn(),jCt)?(l9(t,(J9(),Jit)),i.c=a.a-Gy(MD(mMn(n,blt)))-e-i.b):(l9(t,(J9(),Yit)),i.c=a.a+Gy(MD(mMn(n,blt)))+e);break;case 2:l9(t,(J9(),Yit)),i.c=c.a+r.c+e,BB(BB(xq(t.d,0),181).We((hWn(),ult)),285)==(Xyn(),jCt)?(WD(t,(G7(),irt)),i.d=a.b-Gy(MD(mMn(n,blt)))-e-i.a):(WD(t,(G7(),crt)),i.d=a.b+Gy(MD(mMn(n,blt)))+e);break;case 3:WD(t,(G7(),crt)),i.d=c.b+r.a+e,BB(BB(xq(t.d,0),181).We((hWn(),ult)),285)==(Xyn(),jCt)?(l9(t,(J9(),Jit)),i.c=a.a-Gy(MD(mMn(n,blt)))-e-i.b):(l9(t,(J9(),Yit)),i.c=a.a+Gy(MD(mMn(n,blt)))+e);break;case 4:l9(t,(J9(),Jit)),i.c=-r.b-e-i.b,BB(BB(xq(t.d,0),181).We((hWn(),ult)),285)==(Xyn(),jCt)?(WD(t,(G7(),irt)),i.d=a.b-Gy(MD(mMn(n,blt)))-e-i.a):(WD(t,(G7(),crt)),i.d=a.b+Gy(MD(mMn(n,blt)))+e)}}function HUn(n,t,i,r,c,a,u){var o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C,I,O;for(w=0,S=0,s=new Wb(n);s.a<s.c.c.length;)ozn(o=BB(n0(s),33)),w=e.Math.max(w,o.g),S+=o.g*o.f;for(M=Zyn(n,S/n.c.length),S+=n.c.length*M,w=e.Math.max(w,e.Math.sqrt(S*u))+i.b,I=i.b,O=i.d,b=0,f=i.b+i.c,DH(T=new YT,iln(0)),j=new YT,h=new M2(n,0);h.b<h.d.gc();)Px(h.b<h.d.gc()),C=(o=BB(h.d.Xb(h.c=h.b++),33)).g,l=o.f,I+C>w&&(a&&(fO(j,b),fO(T,iln(h.b-1))),I=i.b,O+=b+t,b=0,f=e.Math.max(f,i.b+i.c+C)),Pen(o,I),Cen(o,O),f=e.Math.max(f,I+C+i.c),b=e.Math.max(b,l),I+=C+t;if(f=e.Math.max(f,r),(P=O+b+i.a)<c&&(b+=c-P,P=c),a)for(I=i.b,h=new M2(n,0),fO(T,iln(n.c.length)),p=BB(b3(E=spn(T,0)),19).a,fO(j,b),k=spn(j,0),y=0;h.b<h.d.gc();)h.b==p&&(I=i.b,y=Gy(MD(b3(k))),p=BB(b3(E),19).a),Px(h.b<h.d.gc()),v=(o=BB(h.d.Xb(h.c=h.b++),33)).f,Men(o,y),d=y,h.b==p&&(g=f-I-i.c,m=o.g,Sen(o,g),lCn(o,new xC(g,d),new xC(m,v))),I+=o.g+t;return new xC(f,P)}function qUn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S;for(OTn(t,"Compound graph postprocessor",1),i=qy(TD(mMn(n,(HXn(),Dpt)))),o=BB(mMn(n,(hWn(),Hft)),224),f=new Rv,v=o.ec().Kc();v.Ob();){for(p=BB(v.Pb(),17),u=new t_(o.cc(p)),SQ(),m$(u,new _w(n)),j=ccn((l1(0,u.c.length),BB(u.c[0],243))),T=acn(BB(xq(u,u.c.length-1),243)),y=j.i,m=wan(T.i,y)?y.e:vW(y),l=Apn(p,u),yQ(p.a),b=null,a=new Wb(u);a.a<a.c.c.length;)c=BB(n0(a),243),OPn(g=new Gj,c.a,m),w=c.b,Wsn(r=new km,0,w.a),Ztn(r,g),k=new wA(g1(w.c)),E=new wA(g1(w.d)),UR(k,g),UR(E,g),b&&(0==r.b?d=E:(Px(0!=r.b),d=BB(r.a.a.c,8)),M=e.Math.abs(b.a-d.a)>lZn,S=e.Math.abs(b.b-d.b)>lZn,(!i&&M&&S||i&&(M||S))&&DH(p.a,k)),Frn(p.a,r),0==r.b?b=k:(Px(0!=r.b),b=BB(r.c.b.c,8)),Yan(w,l,g),acn(c)==T&&(vW(T.i)!=c.a&&OPn(g=new Gj,vW(T.i),m),hon(p,Rlt,g)),MSn(w,p,m),f.a.zc(w,f);SZ(p,j),MZ(p,T)}for(h=f.a.ec().Kc();h.Ob();)SZ(s=BB(h.Pb(),17),null),MZ(s,null);HSn(t)}function GUn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;if(1==n.gc())return BB(n.Xb(0),231);if(n.gc()<=0)return new y6;for(c=n.Kc();c.Ob();){for(i=BB(c.Pb(),231),d=0,f=DWn,l=DWn,s=_Vn,h=_Vn,w=new Wb(i.e);w.a<w.c.c.length;)b=BB(n0(w),144),d+=BB(mMn(b,(fRn(),Zct)),19).a,f=e.Math.min(f,b.d.a-b.e.a/2),l=e.Math.min(l,b.d.b-b.e.b/2),s=e.Math.max(s,b.d.a+b.e.a/2),h=e.Math.max(h,b.d.b+b.e.b/2);hon(i,(fRn(),Zct),iln(d)),hon(i,(Mrn(),oat),new xC(f,l)),hon(i,uat,new xC(s,h))}for(SQ(),n.ad(new wt),qan(g=new y6,BB(n.Xb(0),94)),o=0,m=0,a=n.Kc();a.Ob();)i=BB(a.Pb(),231),p=XR(B$(BB(mMn(i,(Mrn(),uat)),8)),BB(mMn(i,oat),8)),o=e.Math.max(o,p.a),m+=p.a*p.b;for(o=e.Math.max(o,e.Math.sqrt(m)*Gy(MD(mMn(g,(fRn(),Fct))))),y=0,k=0,u=0,t=v=Gy(MD(mMn(g,cat))),r=n.Kc();r.Ob();)i=BB(r.Pb(),231),y+(p=XR(B$(BB(mMn(i,(Mrn(),uat)),8)),BB(mMn(i,oat),8))).a>o&&(y=0,k+=u+v,u=0),VKn(g,i,y,k),t=e.Math.max(t,y+p.a),u=e.Math.max(u,p.b),y+=p.a+v;return g}function zUn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w;switch(h=new km,n.a.g){case 3:l=BB(mMn(t.e,(hWn(),Nlt)),15),b=BB(mMn(t.j,Nlt),15),w=BB(mMn(t.f,Nlt),15),e=BB(mMn(t.e,$lt),15),i=BB(mMn(t.j,$lt),15),r=BB(mMn(t.f,$lt),15),gun(a=new Np,l),b.Jc(new yc),gun(a,cL(b,152)?o6(BB(b,152)):cL(b,131)?BB(b,131).a:cL(b,54)?new fy(b):new CT(b)),gun(a,w),gun(c=new Np,e),gun(c,cL(i,152)?o6(BB(i,152)):cL(i,131)?BB(i,131).a:cL(i,54)?new fy(i):new CT(i)),gun(c,r),hon(t.f,Nlt,a),hon(t.f,$lt,c),hon(t.f,xlt,t.f),hon(t.e,Nlt,null),hon(t.e,$lt,null),hon(t.j,Nlt,null),hon(t.j,$lt,null);break;case 1:Frn(h,t.e.a),DH(h,t.i.n),Frn(h,ean(t.j.a)),DH(h,t.a.n),Frn(h,t.f.a);break;default:Frn(h,t.e.a),Frn(h,ean(t.j.a)),Frn(h,t.f.a)}yQ(t.f.a),Frn(t.f.a,h),SZ(t.f,t.e.c),u=BB(mMn(t.e,(HXn(),vgt)),74),s=BB(mMn(t.j,vgt),74),o=BB(mMn(t.f,vgt),74),(u||s||o)&&(PU(f=new km,o),PU(f,s),PU(f,u),hon(t.f,vgt,f)),SZ(t.j,null),MZ(t.j,null),SZ(t.e,null),MZ(t.e,null),PZ(t.a,null),PZ(t.i,null),t.g&&zUn(n,t.g)}function UUn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;if(PFn(),null==n)return null;if((w=bln(c=V7(n)))%4!=0)return null;if(0==(d=w/4|0))return x8(NNt,v6n,25,0,15,1);for(f=null,t=0,e=0,i=0,r=0,a=0,u=0,o=0,s=0,b=0,l=0,h=0,f=x8(NNt,v6n,25,3*d,15,1);b<d-1;b++){if(!(VE(a=c[h++])&&VE(u=c[h++])&&VE(o=c[h++])&&VE(s=c[h++])))return null;t=WLt[a],e=WLt[u],i=WLt[o],r=WLt[s],f[l++]=(t<<2|e>>4)<<24>>24,f[l++]=((15&e)<<4|i>>2&15)<<24>>24,f[l++]=(i<<6|r)<<24>>24}return VE(a=c[h++])&&VE(u=c[h++])?(t=WLt[a],e=WLt[u],o=c[h++],s=c[h++],-1==WLt[o]||-1==WLt[s]?61==o&&61==s?0!=(15&e)?null:(aHn(f,0,g=x8(NNt,v6n,25,3*b+1,15,1),0,3*b),g[l]=(t<<2|e>>4)<<24>>24,g):61!=o&&61==s?0!=(3&(i=WLt[o]))?null:(aHn(f,0,g=x8(NNt,v6n,25,3*b+2,15,1),0,3*b),g[l++]=(t<<2|e>>4)<<24>>24,g[l]=((15&e)<<4|i>>2&15)<<24>>24,g):null:(i=WLt[o],r=WLt[s],f[l++]=(t<<2|e>>4)<<24>>24,f[l++]=((15&e)<<4|i>>2&15)<<24>>24,f[l++]=(i<<6|r)<<24>>24,f)):null}function XUn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(OTn(t,O1n,1),l=BB(mMn(n,(HXn(),Zdt)),218),i=new Wb(n.b);i.a<i.c.c.length;)for(a=0,u=(c=n2(BB(n0(i),29).a)).length;a<u;++a)if((r=c[a]).k==(uSn(),Iut)){if(l==(Mbn(),JPt))for(s=new Wb(r.j);s.a<s.c.c.length;)0==(o=BB(n0(s),11)).e.c.length||Agn(o),0==o.g.c.length||$gn(o);else if(cL(mMn(r,(hWn(),dlt)),17))w=BB(mMn(r,dlt),17),d=BB(DSn(r,(kUn(),CIt)).Kc().Pb(),11),g=BB(DSn(r,oIt).Kc().Pb(),11),p=BB(mMn(d,dlt),11),SZ(w,v=BB(mMn(g,dlt),11)),MZ(w,p),(m=new wA(g.i.n)).a=Aon(Pun(Gk(PMt,1),sVn,8,0,[v.i.n,v.n,v.a])).a,DH(w.a,m),(m=new wA(d.i.n)).a=Aon(Pun(Gk(PMt,1),sVn,8,0,[p.i.n,p.n,p.a])).a,DH(w.a,m);else{if(r.j.c.length>=2){for(b=!0,e=BB(n0(h=new Wb(r.j)),11),f=null;h.a<h.c.c.length;)if(f=e,e=BB(n0(h),11),!Nfn(mMn(f,dlt),mMn(e,dlt))){b=!1;break}}else b=!1;for(s=new Wb(r.j);s.a<s.c.c.length;)0==(o=BB(n0(s),11)).e.c.length||uxn(o,b),0==o.g.c.length||oxn(o,b)}PZ(r,null)}HSn(t)}function WUn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M;return y=n.c[(l1(0,t.c.length),BB(t.c[0],17)).p],T=n.c[(l1(1,t.c.length),BB(t.c[1],17)).p],!(y.a.e.e-y.a.a-(y.b.e.e-y.b.a)==0&&T.a.e.e-T.a.a-(T.b.e.e-T.b.a)==0||!cL(v=y.b.e.f,10)||(p=BB(v,10),j=n.i[p.p],E=p.c?E7(p.c.a,p,0):-1,a=RQn,E>0&&(c=BB(xq(p.c.a,E-1),10),u=n.i[c.p],M=e.Math.ceil(K$(n.n,c,p)),a=j.a.e-p.d.d-(u.a.e+c.o.b+c.d.a)-M),h=RQn,E<p.c.a.c.length-1&&(s=BB(xq(p.c.a,E+1),10),f=n.i[s.p],M=e.Math.ceil(K$(n.n,s,p)),h=f.a.e-s.d.d-(j.a.e+p.o.b+p.d.a)-M),!(i&&(h$(),rin(A3n),e.Math.abs(a-h)<=A3n||a==h||isNaN(a)&&isNaN(h)))&&(r=aX(y.a),o=-aX(y.b),l=-aX(T.a),m=aX(T.b),g=y.a.e.e-y.a.a-(y.b.e.e-y.b.a)>0&&T.a.e.e-T.a.a-(T.b.e.e-T.b.a)<0,d=y.a.e.e-y.a.a-(y.b.e.e-y.b.a)<0&&T.a.e.e-T.a.a-(T.b.e.e-T.b.a)>0,w=y.a.e.e+y.b.a<T.b.e.e+T.a.a,b=y.a.e.e+y.b.a>T.b.e.e+T.a.a,k=0,!g&&!d&&(b?a+l>0?k=l:h-r>0&&(k=r):w&&(a+o>0?k=o:h-m>0&&(k=m))),j.a.e+=k,j.b&&(j.d.e+=k),1)))}function VUn(n,t,i){var r,c,a,u,o,s,h,f,l,b;if(r=new UV(t.qf().a,t.qf().b,t.rf().a,t.rf().b),c=new bA,n.c)for(u=new Wb(t.wf());u.a<u.c.c.length;)a=BB(n0(u),181),c.c=a.qf().a+t.qf().a,c.d=a.qf().b+t.qf().b,c.b=a.rf().a,c.a=a.rf().b,CPn(r,c);for(h=new Wb(t.Cf());h.a<h.c.c.length;){if(f=(s=BB(n0(h),838)).qf().a+t.qf().a,l=s.qf().b+t.qf().b,n.e&&(c.c=f,c.d=l,c.b=s.rf().a,c.a=s.rf().b,CPn(r,c)),n.d)for(u=new Wb(s.wf());u.a<u.c.c.length;)a=BB(n0(u),181),c.c=a.qf().a+f,c.d=a.qf().b+l,c.b=a.rf().a,c.a=a.rf().b,CPn(r,c);if(n.b){if(b=new xC(-i,-i),BB(t.We((sWn(),fPt)),174).Hc((lIn(),rIt)))for(u=new Wb(s.wf());u.a<u.c.c.length;)a=BB(n0(u),181),b.a+=a.rf().a+i,b.b+=a.rf().b+i;b.a=e.Math.max(b.a,0),b.b=e.Math.max(b.b,0),X_n(r,s.Bf(),s.zf(),t,s,b,i)}}n.b&&X_n(r,t.Bf(),t.zf(),t,null,null,i),(o=new A_(t.Af())).d=e.Math.max(0,t.qf().b-r.d),o.a=e.Math.max(0,r.d+r.a-(t.qf().b+t.rf().b)),o.b=e.Math.max(0,t.qf().a-r.c),o.c=e.Math.max(0,r.c+r.b-(t.qf().a+t.rf().a)),t.Ef(o)}function QUn(){var n=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000B","\\f","\\r","\\u000E","\\u000F","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001A","\\u001B","\\u001C","\\u001D","\\u001E","\\u001F"];return n[34]='\\"',n[92]="\\\\",n[173]="\\u00ad",n[1536]="\\u0600",n[1537]="\\u0601",n[1538]="\\u0602",n[1539]="\\u0603",n[1757]="\\u06dd",n[1807]="\\u070f",n[6068]="\\u17b4",n[6069]="\\u17b5",n[8203]="\\u200b",n[8204]="\\u200c",n[8205]="\\u200d",n[8206]="\\u200e",n[8207]="\\u200f",n[8232]="\\u2028",n[8233]="\\u2029",n[8234]="\\u202a",n[8235]="\\u202b",n[8236]="\\u202c",n[8237]="\\u202d",n[8238]="\\u202e",n[8288]="\\u2060",n[8289]="\\u2061",n[8290]="\\u2062",n[8291]="\\u2063",n[8292]="\\u2064",n[8298]="\\u206a",n[8299]="\\u206b",n[8300]="\\u206c",n[8301]="\\u206d",n[8302]="\\u206e",n[8303]="\\u206f",n[65279]="\\ufeff",n[65529]="\\ufff9",n[65530]="\\ufffa",n[65531]="\\ufffb",n}function YUn(n,t,e){var i,r,c,a,u,o,s,h,f,l;for(o=new Np,f=t.length,a=Ion(e),s=0;s<f;++s){switch(h=yN(t,YTn(61),s),c=(r=uun(i=fln(a,t.substr(s,h-s)))).Aj().Nh(),fV(t,++h)){case 39:u=lx(t,39,++h),WB(o,new CI(i,YV(t.substr(h,u-h),c,r))),s=u+1;break;case 34:u=lx(t,34,++h),WB(o,new CI(i,YV(t.substr(h,u-h),c,r))),s=u+1;break;case 91:WB(o,new CI(i,l=new Np));n:for(;;){switch(fV(t,++h)){case 39:u=lx(t,39,++h),WB(l,YV(t.substr(h,u-h),c,r)),h=u+1;break;case 34:u=lx(t,34,++h),WB(l,YV(t.substr(h,u-h),c,r)),h=u+1;break;case 110:if(++h,t.indexOf("ull",h)!=h)throw Hp(new dy(a6n));l.c[l.c.length]=null,h+=3}if(!(h<f))break;switch(b1(h,t.length),t.charCodeAt(h)){case 44:break;case 93:break n;default:throw Hp(new dy("Expecting , or ]"))}}s=h+1;break;case 110:if(++h,t.indexOf("ull",h)!=h)throw Hp(new dy(a6n));WB(o,new CI(i,null)),s=h+3}if(!(s<f))break;if(b1(s,t.length),44!=t.charCodeAt(s))throw Hp(new dy("Expecting ,"))}return iDn(n,o,e)}function JUn(n,t){var e,i,r,c,a,u,o,s,h,f,l;for(s=BB(BB(h6(n.r,t),21),84),a=JTn(n,t),e=n.u.Hc((lIn(),nIt)),o=s.Kc();o.Ob();)if((u=BB(o.Pb(),111)).c&&!(u.c.d.c.length<=0)){switch(l=u.b.rf(),(f=(h=u.c).i).b=(c=h.n,h.e.a+c.b+c.c),f.a=(r=h.n,h.e.b+r.d+r.a),t.g){case 1:u.a?(f.c=(l.a-f.b)/2,l9(h,(J9(),Qit))):a||e?(f.c=-f.b-n.s,l9(h,(J9(),Jit))):(f.c=l.a+n.s,l9(h,(J9(),Yit))),f.d=-f.a-n.t,WD(h,(G7(),irt));break;case 3:u.a?(f.c=(l.a-f.b)/2,l9(h,(J9(),Qit))):a||e?(f.c=-f.b-n.s,l9(h,(J9(),Jit))):(f.c=l.a+n.s,l9(h,(J9(),Yit))),f.d=l.b+n.t,WD(h,(G7(),crt));break;case 2:u.a?(i=n.v?f.a:BB(xq(h.d,0),181).rf().b,f.d=(l.b-i)/2,WD(h,(G7(),rrt))):a||e?(f.d=-f.a-n.t,WD(h,(G7(),irt))):(f.d=l.b+n.t,WD(h,(G7(),crt))),f.c=l.a+n.s,l9(h,(J9(),Yit));break;case 4:u.a?(i=n.v?f.a:BB(xq(h.d,0),181).rf().b,f.d=(l.b-i)/2,WD(h,(G7(),rrt))):a||e?(f.d=-f.a-n.t,WD(h,(G7(),irt))):(f.d=l.b+n.t,WD(h,(G7(),crt))),f.c=-f.b-n.s,l9(h,(J9(),Jit))}a=!1}}function ZUn(n,t){var e,i,r,c,a,u,o,s,h,f,l;if(wWn(),0==NT(iNt)){for(f=x8(INt,sVn,117,cNt.length,0,1),a=0;a<f.length;a++)f[a]=new M0(4);for(i=new Pk,c=0;c<eNt.length;c++){if(h=new M0(4),c<84?(b1(u=2*c,vnt.length),l=vnt.charCodeAt(u),b1(u+1,vnt.length),Yxn(h,l,vnt.charCodeAt(u+1))):Yxn(h,aNt[u=2*(c-84)],aNt[u+1]),mK(o=eNt[c],"Specials")&&Yxn(h,65520,65533),mK(o,gnt)&&(Yxn(h,983040,1048573),Yxn(h,1048576,1114109)),mZ(iNt,o,h),mZ(rNt,o,$Fn(h)),0<(s=i.a.length)?i.a=i.a.substr(0,0):0>s&&(i.a+=rL(x8(ONt,WVn,25,-s,15,1))),i.a+="Is",GO(o,YTn(32))>=0)for(r=0;r<o.length;r++)b1(r,o.length),32!=o.charCodeAt(r)&&NX(i,(b1(r,o.length),o.charCodeAt(r)));else i.a+=""+o;Tdn(i.a,o,!0)}Tdn(pnt,"Cn",!1),Tdn(mnt,"Cn",!0),Yxn(e=new M0(4),0,unt),mZ(iNt,"ALL",e),mZ(rNt,"ALL",$Fn(e)),!SNt&&(SNt=new xp),mZ(SNt,pnt,pnt),!SNt&&(SNt=new xp),mZ(SNt,mnt,mnt),!SNt&&(SNt=new xp),mZ(SNt,"ALL","ALL")}return BB(SJ(t?iNt:rNt,n),136)}function nXn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p;if(l=!1,f=!1,vA(BB(mMn(i,(HXn(),ept)),98))){a=!1,u=!1;n:for(w=new Wb(i.j);w.a<w.c.c.length;)for(b=BB(n0(w),11),d=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[new Hw(b),new Gw(b)])));dAn(d);)if(!qy(TD(mMn(BB(U5(d),11).i,Tdt)))){if(b.j==(kUn(),sIt)){a=!0;break n}if(b.j==SIt){u=!0;break n}}l=u&&!a,f=a&&!u}if(l||f||0==i.b.c.length)p=!f;else{for(h=0,s=new Wb(i.b);s.a<s.c.c.length;)h+=(o=BB(n0(s),70)).n.b+o.o.b/2;p=(h/=i.b.c.length)>=i.o.b/2}p?(g=BB(mMn(i,(hWn(),Klt)),15))?l?c=g:(r=BB(mMn(i,Dft),15))?c=g.gc()<=r.gc()?g:r:(c=new Np,hon(i,Dft,c)):(c=new Np,hon(i,Klt,c)):(r=BB(mMn(i,(hWn(),Dft)),15))?f?c=r:(g=BB(mMn(i,Klt),15))?c=r.gc()<=g.gc()?r:g:(c=new Np,hon(i,Klt,c)):(c=new Np,hon(i,Dft,c)),c.Fc(n),hon(n,(hWn(),Kft),e),t.d==e?(MZ(t,null),e.e.c.length+e.g.c.length==0&&CZ(e,null),gsn(e)):(SZ(t,null),e.e.c.length+e.g.c.length==0&&CZ(e,null)),yQ(t.a)}function tXn(n,t){var e,i,r,c,a,u,o,s,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C,I;for(v=new M2(n.b,0),d=0,s=BB((f=t.Kc()).Pb(),19).a,k=0,e=new Rv,E=new fA;v.b<v.d.gc();){for(Px(v.b<v.d.gc()),y=new Wb(BB(v.d.Xb(v.c=v.b++),29).a);y.a<y.c.c.length;){for(w=new oz(ZL(lbn(m=BB(n0(y),10)).a.Kc(),new h));dAn(w);)l=BB(U5(w),17),E.a.zc(l,E);for(b=new oz(ZL(fbn(m).a.Kc(),new h));dAn(b);)l=BB(U5(b),17),E.a.Bc(l)}if(d+1==s){for(yR(v,r=new HX(n)),yR(v,c=new HX(n)),M=E.a.ec().Kc();M.Ob();)T=BB(M.Pb(),17),e.a._b(T)||(++k,e.a.zc(T,e)),hon(a=new $vn(n),(HXn(),ept),(QEn(),VCt)),PZ(a,r),Bl(a,(uSn(),Tut)),CZ(g=new CSn,a),qCn(g,(kUn(),CIt)),CZ(S=new CSn,a),qCn(S,oIt),hon(i=new $vn(n),ept,VCt),PZ(i,c),Bl(i,Tut),CZ(p=new CSn,i),qCn(p,CIt),CZ(P=new CSn,i),qCn(P,oIt),SZ(j=new wY,T.c),MZ(j,g),SZ(I=new wY,S),MZ(I,p),SZ(T,P),u=new v3(a,i,j,I,T),hon(a,(hWn(),Rft),u),hon(i,Rft,u),(C=j.c.i).k==Tut&&((o=BB(mMn(C,Rft),305)).d=u,u.g=o);if(!f.Ob())break;s=BB(f.Pb(),19).a}++d}return iln(k)}function eXn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d;for(f=0,r=new AL((!t.a&&(t.a=new eU(UOt,t,10,11)),t.a));r.e!=r.i.gc();)qy(TD(ZAn(i=BB(kpn(r),33),(HXn(),Ggt))))||(GI(ZAn(t,Ldt))===GI((mon(),Nvt))&&GI(ZAn(t,Gdt))!==GI((Vvn(),Eht))&&GI(ZAn(t,Gdt))!==GI((Vvn(),kht))&&!qy(TD(ZAn(t,xdt)))&&GI(ZAn(t,Cdt))===GI((Bfn(),wut))||qy(TD(ZAn(i,$dt)))||(Ypn(i,(hWn(),wlt),iln(f)),++f),wzn(n,i,e));for(f=0,s=new AL((!t.b&&(t.b=new eU(_Ot,t,12,3)),t.b));s.e!=s.i.gc();)u=BB(kpn(s),79),(GI(ZAn(t,(HXn(),Ldt)))!==GI((mon(),Nvt))||GI(ZAn(t,Gdt))===GI((Vvn(),Eht))||GI(ZAn(t,Gdt))===GI((Vvn(),kht))||qy(TD(ZAn(t,xdt)))||GI(ZAn(t,Cdt))!==GI((Bfn(),wut)))&&(Ypn(u,(hWn(),wlt),iln(f)),++f),w=PMn(u),d=OMn(u),h=qy(TD(ZAn(w,wgt))),b=!qy(TD(ZAn(u,Ggt))),l=h&&QIn(u)&&qy(TD(ZAn(u,dgt))),c=JJ(w)==t&&JJ(w)==JJ(d),a=(JJ(w)==t&&d==t)^(JJ(d)==t&&w==t),b&&!l&&(a||c)&&uWn(n,u,t,e);if(JJ(t))for(o=new AL(iQ(JJ(t)));o.e!=o.i.gc();)(w=PMn(u=BB(kpn(o),79)))==t&&QIn(u)&&(l=qy(TD(ZAn(w,(HXn(),wgt))))&&qy(TD(ZAn(u,dgt))))&&uWn(n,u,t,e)}function iXn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C,I,O,A;for(OTn(i,"MinWidth layering",1),w=t.b,T=t.a,A=BB(mMn(t,(HXn(),Egt)),19).a,o=BB(mMn(t,Tgt),19).a,n.b=Gy(MD(mMn(t,ypt))),n.d=RQn,k=new Wb(T);k.a<k.c.c.length;)(m=BB(n0(k),10)).k==(uSn(),Cut)&&(P=m.o.b,n.d=e.Math.min(n.d,P));for(n.d=e.Math.max(1,n.d),M=T.c.length,n.c=x8(ANt,hQn,25,M,15,1),n.f=x8(ANt,hQn,25,M,15,1),n.e=x8(xNt,qQn,25,M,15,1),h=0,n.a=0,j=new Wb(T);j.a<j.c.c.length;)(m=BB(n0(j),10)).p=h++,n.c[m.p]=whn(fbn(m)),n.f[m.p]=whn(lbn(m)),n.e[m.p]=m.o.b/n.d,n.a+=n.e[m.p];for(n.b/=n.d,n.a/=M,E=jOn(T),m$(T,QW(new Kd(n))),g=RQn,d=DWn,u=null,O=A,I=A,a=o,c=o,A<0&&(O=BB(Tmt.a.zd(),19).a,I=BB(Tmt.b.zd(),19).a),o<0&&(a=BB(Emt.a.zd(),19).a,c=BB(Emt.b.zd(),19).a),C=O;C<=I;C++)for(r=a;r<=c;r++)v=Gy(MD((S=LBn(n,C,r,T,E)).a)),p=(b=BB(S.b,15)).gc(),(v<g||v==g&&p<d)&&(g=v,d=p,u=b);for(l=u.Kc();l.Ob();){for(f=BB(l.Pb(),15),s=new HX(t),y=f.Kc();y.Ob();)PZ(m=BB(y.Pb(),10),s);w.c[w.c.length]=s}JPn(w),T.c=x8(Ant,HWn,1,0,5,1),HSn(i)}function rXn(n,t){var i,r,c,a,u,o,s,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M;for(n.b=t,n.a=BB(mMn(t,(HXn(),hgt)),19).a,n.c=BB(mMn(t,lgt),19).a,0==n.c&&(n.c=DWn),g=new M2(t.b,0);g.b<g.d.gc();){for(Px(g.b<g.d.gc()),d=BB(g.d.Xb(g.c=g.b++),29),o=new Np,l=-1,y=-1,m=new Wb(d.a);m.a<m.c.c.length;)v=BB(n0(m),10),F3((q_(),new oz(ZL(hbn(v).a.Kc(),new h))))>=n.a&&(r=yBn(n,v),l=e.Math.max(l,r.b),y=e.Math.max(y,r.d),WB(o,new rI(v,r)));for(E=new Np,f=0;f<l;++f)kG(E,0,(Px(g.b>0),g.a.Xb(g.c=--g.b),yR(g,T=new HX(n.b)),Px(g.b<g.d.gc()),g.d.Xb(g.c=g.b++),T));for(u=new Wb(o);u.a<u.c.c.length;)if(c=BB(n0(u),46),w=BB(c.b,571).a)for(b=new Wb(w);b.a<b.c.c.length;)ukn(n,BB(n0(b),10),Uut,E);for(i=new Np,s=0;s<y;++s)WB(i,(yR(g,M=new HX(n.b)),M));for(a=new Wb(o);a.a<a.c.c.length;)if(c=BB(n0(a),46),j=BB(c.b,571).c)for(k=new Wb(j);k.a<k.c.c.length;)ukn(n,BB(n0(k),10),Xut,i)}for(p=new M2(t.b,0);p.b<p.d.gc();)Px(p.b<p.d.gc()),0==BB(p.d.Xb(p.c=p.b++),29).a.c.length&&fW(p)}function cXn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C;if(OTn(i,"Spline edge routing",1),0==t.b.c.length)return t.f.a=0,void HSn(i);v=Gy(MD(mMn(t,(HXn(),Apt)))),o=Gy(MD(mMn(t,Tpt))),u=Gy(MD(mMn(t,kpt))),T=BB(mMn(t,rgt),336)==(Usn(),rmt),E=Gy(MD(mMn(t,cgt))),n.d=t,n.j.c=x8(Ant,HWn,1,0,5,1),n.a.c=x8(Ant,HWn,1,0,5,1),$U(n.k),f=VI((s=BB(xq(t.b,0),29)).a,(dxn(),jyt)),l=VI((d=BB(xq(t.b,t.b.c.length-1),29)).a,jyt),g=new Wb(t.b),p=null,C=0;do{for(RUn(n,p,m=g.a<g.c.c.length?BB(n0(g),29):null),MFn(n),P=0,y=C,b=!p||f&&p==s,w=!m||l&&m==d,(M=_k(rcn(NV(AV(new Rq(null,new w1(n.i,16)),new ya),new ma))))>0?(h=0,p&&(h+=o),h+=(M-1)*u,m&&(h+=o),T&&m&&(h=e.Math.max(h,nxn(m,u,v,E))),h<v&&!b&&!w&&(P=(v-h)/2,h=v),y+=h):!b&&!w&&(y+=v),m&&Tqn(m,y),j=new Wb(n.i);j.a<j.c.c.length;)(k=BB(n0(j),128)).a.c=C,k.a.b=y-C,k.F=P,k.p=!p;gun(n.a,n.i),C=y,m&&(C+=m.c.a),p=m,b=w}while(m);for(c=new Wb(n.j);c.a<c.c.c.length;)a=man(n,r=BB(n0(c),17)),hon(r,(hWn(),$lt),a),S=Dxn(n,r),hon(r,Nlt,S);t.f.a=C,n.d=null,HSn(i)}function aXn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;if(d=0!=n.i,v=!1,g=null,mA(n.e)){if((h=t.gc())>0){for(l=h<100?null:new Fj(h),w=(s=new jcn(t)).g,g=x8(ANt,hQn,25,h,15,1),i=0,m=new gtn(h),r=0;r<n.i;++r){b=u=n.g[r];n:for(p=0;p<2;++p){for(o=h;--o>=0;)if(null!=b?Nfn(b,w[o]):GI(b)===GI(w[o])){g.length<=i&&aHn(g,0,g=x8(ANt,hQn,25,2*g.length,15,1),0,i),g[i++]=r,f9(m,w[o]);break n}if(GI(b)===GI(u))break}}if(s=m,w=m.g,h=i,i>g.length&&aHn(g,0,g=x8(ANt,hQn,25,i,15,1),0,i),i>0){for(v=!0,c=0;c<i;++c)l=zK(n,BB(b=w[c],72),l);for(a=i;--a>=0;)Lyn(n,g[a]);if(i!=h){for(r=h;--r>=i;)Lyn(s,r);aHn(g,0,g=x8(ANt,hQn,25,i,15,1),0,i)}t=s}}}else for(t=jyn(n,t),r=n.i;--r>=0;)t.Hc(n.g[r])&&(Lyn(n,r),v=!0);if(v){if(null!=g){for(f=1==(e=t.gc())?yZ(n,4,t.Kc().Pb(),null,g[0],d):yZ(n,6,t,g,g[0],d),l=e<100?null:new Fj(e),r=t.Kc();r.Ob();)l=qK(n,BB(b=r.Pb(),72),l);l?(l.Ei(f),l.Fi()):ban(n.e,f)}else{for(l=$K(t.gc()),r=t.Kc();r.Ob();)l=qK(n,BB(b=r.Pb(),72),l);l&&l.Fi()}return!0}return!1}function uXn(n,t){var e,i,r,c,a,u,o,s,f,l,b,w,d,g,p,v,m;for((e=new hvn(t)).a||g_n(t),s=lRn(t),o=new pJ,g=new Qxn,d=new Wb(t.a);d.a<d.c.c.length;)for(r=new oz(ZL(lbn(BB(n0(d),10)).a.Kc(),new h));dAn(r);)(i=BB(U5(r),17)).c.i.k!=(uSn(),Mut)&&i.d.i.k!=Mut||JIn(o,upn((f=lzn(n,i,s,g)).d),f.a);for(a=new Np,m=BB(mMn(e.c,(hWn(),Xft)),21).Kc();m.Ob();){switch(v=BB(m.Pb(),61),w=g.c[v.g],b=g.b[v.g],u=g.a[v.g],c=null,p=null,v.g){case 4:c=new UV(n.d.a,w,s.b.a-n.d.a,b-w),p=new UV(n.d.a,w,u,b-w),zH(s,new xC(c.c+c.b,c.d)),zH(s,new xC(c.c+c.b,c.d+c.a));break;case 2:c=new UV(s.a.a,w,n.c.a-s.a.a,b-w),p=new UV(n.c.a-u,w,u,b-w),zH(s,new xC(c.c,c.d)),zH(s,new xC(c.c,c.d+c.a));break;case 1:c=new UV(w,n.d.b,b-w,s.b.b-n.d.b),p=new UV(w,n.d.b,b-w,u),zH(s,new xC(c.c,c.d+c.a)),zH(s,new xC(c.c+c.b,c.d+c.a));break;case 3:c=new UV(w,s.a.b,b-w,n.c.b-s.a.b),p=new UV(w,n.c.b-u,b-w,u),zH(s,new xC(c.c,c.d)),zH(s,new xC(c.c+c.b,c.d))}c&&((l=new nm).d=v,l.b=c,l.c=p,l.a=JQ(BB(h6(o,upn(v)),21)),a.c[a.c.length]=l)}return gun(e.b,a),e.d=Bhn(nGn(s)),e}function oXn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d;if(null==i.p[t.p]){o=!0,i.p[t.p]=0,u=t,d=i.o==(oZ(),ryt)?KQn:RQn;do{c=n.b.e[u.p],a=u.c.a.c.length,i.o==ryt&&c>0||i.o==cyt&&c<a-1?(s=null,h=null,s=i.o==cyt?BB(xq(u.c.a,c+1),10):BB(xq(u.c.a,c-1),10),oXn(n,h=i.g[s.p],i),d=n.e.bg(d,t,u),i.j[t.p]==t&&(i.j[t.p]=i.j[h.p]),i.j[t.p]==i.j[h.p]?(w=K$(n.d,u,s),i.o==cyt?(r=Gy(i.p[t.p]),l=Gy(i.p[h.p])+Gy(i.d[s.p])-s.d.d-w-u.d.a-u.o.b-Gy(i.d[u.p]),o?(o=!1,i.p[t.p]=e.Math.min(l,d)):i.p[t.p]=e.Math.min(r,e.Math.min(l,d))):(r=Gy(i.p[t.p]),l=Gy(i.p[h.p])+Gy(i.d[s.p])+s.o.b+s.d.a+w+u.d.d-Gy(i.d[u.p]),o?(o=!1,i.p[t.p]=e.Math.max(l,d)):i.p[t.p]=e.Math.max(r,e.Math.max(l,d)))):(w=Gy(MD(mMn(n.a,(HXn(),Opt)))),b=krn(n,i.j[t.p]),f=krn(n,i.j[h.p]),i.o==cyt?U1(b,f,Gy(i.p[t.p])+Gy(i.d[u.p])+u.o.b+u.d.a+w-(Gy(i.p[h.p])+Gy(i.d[s.p])-s.d.d)):U1(b,f,Gy(i.p[t.p])+Gy(i.d[u.p])-u.d.d-Gy(i.p[h.p])-Gy(i.d[s.p])-s.o.b-s.d.a-w))):d=n.e.bg(d,t,u),u=i.a[u.p]}while(u!=t);Ov(n.e,t)}}function sXn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(f=t,h=new pJ,l=new pJ,c=N2(f,x6n),GSn((i=new fQ(n,e,h,l)).a,i.b,i.c,i.d,c),d=(h.i||(h.i=new HL(h,h.c))).Kc();d.Ob();)for(w=BB(d.Pb(),202),u=BB(h6(h,w),21).Kc();u.Ob();){if(a=u.Pb(),!(b=BB(sen(n.d,a),202)))throw r=R2(f,q6n),Hp(new ek(V6n+a+Q6n+r+W6n));!w.e&&(w.e=new hK(FOt,w,10,9)),f9(w.e,b)}for(p=(l.i||(l.i=new HL(l,l.c))).Kc();p.Ob();)for(g=BB(p.Pb(),202),s=BB(h6(l,g),21).Kc();s.Ob();){if(o=s.Pb(),!(b=BB(sen(n.d,o),202)))throw r=R2(f,q6n),Hp(new ek(V6n+o+Q6n+r+W6n));!g.g&&(g.g=new hK(FOt,g,9,10)),f9(g.g,b)}!e.b&&(e.b=new hK(KOt,e,4,7)),0!=e.b.i&&(!e.c&&(e.c=new hK(KOt,e,5,8)),0!=e.c.i)&&(!e.b&&(e.b=new hK(KOt,e,4,7)),e.b.i<=1&&(!e.c&&(e.c=new hK(KOt,e,5,8)),e.c.i<=1))&&1==(!e.a&&(e.a=new eU(FOt,e,6,6)),e.a).i&&(Svn(v=BB(Wtn((!e.a&&(e.a=new eU(FOt,e,6,6)),e.a),0),202))||Pvn(v)||(Lin(v,BB(Wtn((!e.b&&(e.b=new hK(KOt,e,4,7)),e.b),0),82)),Nin(v,BB(Wtn((!e.c&&(e.c=new hK(KOt,e,5,8)),e.c),0),82))))}function hXn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S;for(y=0,k=(m=n.a).length;y<k;++y){for(v=m[y],s=DWn,h=DWn,w=new Wb(v.e);w.a<w.c.c.length;)(a=(l=BB(n0(w),10)).c?E7(l.c.a,l,0):-1)>0?(f=BB(xq(l.c.a,a-1),10),T=K$(n.b,l,f),g=l.n.b-l.d.d-(f.n.b+f.o.b+f.d.a+T)):g=l.n.b-l.d.d,s=e.Math.min(g,s),a<l.c.a.c.length-1?(f=BB(xq(l.c.a,a+1),10),T=K$(n.b,l,f),p=f.n.b-f.d.d-(l.n.b+l.o.b+l.d.a+T)):p=2*l.n.b,h=e.Math.min(p,h);for(o=DWn,c=!1,S=new Wb((r=BB(xq(v.e,0),10)).j);S.a<S.c.c.length;)for(M=BB(n0(S),11),d=r.n.b+M.n.b+M.a.b,i=new Wb(M.e);i.a<i.c.c.length;)t=(j=BB(n0(i),17).c).i.n.b+j.n.b+j.a.b-d,e.Math.abs(t)<e.Math.abs(o)&&e.Math.abs(t)<(t<0?s:h)&&(o=t,c=!0);for(E=new Wb((u=BB(xq(v.e,v.e.c.length-1),10)).j);E.a<E.c.c.length;)for(j=BB(n0(E),11),d=u.n.b+j.n.b+j.a.b,i=new Wb(j.g);i.a<i.c.c.length;)t=(M=BB(n0(i),17).d).i.n.b+M.n.b+M.a.b-d,e.Math.abs(t)<e.Math.abs(o)&&e.Math.abs(t)<(t<0?s:h)&&(o=t,c=!0);if(c&&0!=o)for(b=new Wb(v.e);b.a<b.c.c.length;)(l=BB(n0(b),10)).n.b+=o}}function fXn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g;if(hU(n.a,t)){if(FT(BB(RX(n.a,t),53),e))return 1}else VW(n.a,t,new Rv);if(hU(n.a,e)){if(FT(BB(RX(n.a,e),53),t))return-1}else VW(n.a,e,new Rv);if(hU(n.e,t)){if(FT(BB(RX(n.e,t),53),e))return-1}else VW(n.e,t,new Rv);if(hU(n.e,e)){if(FT(BB(RX(n.a,e),53),t))return 1}else VW(n.e,e,new Rv);if(n.c==(mon(),xvt)||!Lx(t,(hWn(),wlt))||!Lx(e,(hWn(),wlt))){if(o=BB(EN(M4(Qon(AV(new Rq(null,new w1(t.j,16)),new sc)),new hc)),11),h=BB(EN(M4(Qon(AV(new Rq(null,new w1(e.j,16)),new fc)),new lc)),11),o&&h){if(u=o.i,s=h.i,u&&u==s){for(l=new Wb(u.j);l.a<l.c.c.length;){if((f=BB(n0(l),11))==o)return aKn(n,e,t),-1;if(f==h)return aKn(n,t,e),1}return E$(iEn(n,t),iEn(n,e))}for(d=0,g=(w=n.d).length;d<g;++d){if((b=w[d])==u)return aKn(n,e,t),-1;if(b==s)return aKn(n,t,e),1}}if(!Lx(t,(hWn(),wlt))||!Lx(e,wlt))return(r=iEn(n,t))>(a=iEn(n,e))?aKn(n,t,e):aKn(n,e,t),r<a?-1:r>a?1:0}return(i=BB(mMn(t,(hWn(),wlt)),19).a)>(c=BB(mMn(e,wlt),19).a)?aKn(n,t,e):aKn(n,e,t),i<c?-1:i>c?1:0}function lXn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d;if(qy(TD(ZAn(t,(sWn(),zSt)))))return SQ(),SQ(),set;if(o=0!=(!t.a&&(t.a=new eU(UOt,t,10,11)),t.a).i,s=!(h=yIn(t)).dc(),o||s){if(!(r=BB(ZAn(t,mPt),149)))throw Hp(new rk("Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout."));if(d=OC(r,(hAn(),nAt)),Ngn(t),!o&&s&&!d)return SQ(),SQ(),set;if(u=new Np,GI(ZAn(t,ESt))===GI((ufn(),pCt))&&(OC(r,YOt)||OC(r,QOt)))for(l=pRn(n,t),Frn(b=new YT,(!t.a&&(t.a=new eU(UOt,t,10,11)),t.a));0!=b.b;)Ngn(f=BB(0==b.b?null:(Px(0!=b.b),Atn(b,b.a.a)),33)),GI(ZAn(f,ESt))===GI(mCt)||P8(f,eSt)&&!j5(r,ZAn(f,mPt))?(gun(u,lXn(n,f,e,i)),Ypn(f,ESt,mCt),KKn(f)):Frn(b,(!f.a&&(f.a=new eU(UOt,f,10,11)),f.a));else for(l=(!t.a&&(t.a=new eU(UOt,t,10,11)),t.a).i,a=new AL((!t.a&&(t.a=new eU(UOt,t,10,11)),t.a));a.e!=a.i.gc();)gun(u,lXn(n,c=BB(kpn(a),33),e,i)),KKn(c);for(w=new Wb(u);w.a<w.c.c.length;)Ypn(BB(n0(w),79),zSt,(hN(),!0));return Ugn(t,r,mcn(i,l)),w_n(u),s&&d?h:(SQ(),SQ(),set)}return SQ(),SQ(),set}function bXn(n,t,e,i,r,c,a,u,o){var s,h,f,l,b,w,d;switch(b=e,Bl(h=new $vn(o),(uSn(),Mut)),hon(h,(hWn(),Yft),a),hon(h,(HXn(),ept),(QEn(),XCt)),d=Gy(MD(n.We(tpt))),hon(h,tpt,d),CZ(f=new CSn,h),t!=QCt&&t!=YCt||(b=i>=0?hwn(u):Tln(hwn(u)),n.Ye(upt,b)),s=new Gj,l=!1,n.Xe(npt)?(Hx(s,BB(n.We(npt),8)),l=!0):yL(s,a.a/2,a.b/2),b.g){case 4:hon(h,kgt,(Tbn(),Flt)),hon(h,Gft,(Jun(),$ht)),h.o.b=a.b,d<0&&(h.o.a=-d),qCn(f,(kUn(),oIt)),l||(s.a=a.a),s.a-=a.a;break;case 2:hon(h,kgt,(Tbn(),Hlt)),hon(h,Gft,(Jun(),Oht)),h.o.b=a.b,d<0&&(h.o.a=-d),qCn(f,(kUn(),CIt)),l||(s.a=0);break;case 1:hon(h,ilt,(z7(),Cft)),h.o.a=a.a,d<0&&(h.o.b=-d),qCn(f,(kUn(),SIt)),l||(s.b=a.b),s.b-=a.b;break;case 3:hon(h,ilt,(z7(),Sft)),h.o.a=a.a,d<0&&(h.o.b=-d),qCn(f,(kUn(),sIt)),l||(s.b=0)}if(Hx(f.n,s),hon(h,npt,s),t==UCt||t==WCt||t==XCt){if(w=0,t==UCt&&n.Xe(ipt))switch(b.g){case 1:case 2:w=BB(n.We(ipt),19).a;break;case 3:case 4:w=-BB(n.We(ipt),19).a}else switch(b.g){case 4:case 2:w=c.b,t==WCt&&(w/=r.b);break;case 1:case 3:w=c.a,t==WCt&&(w/=r.a)}hon(h,Tlt,w)}return hon(h,Qft,b),h}function wXn(n){var t,e,i,r,c,a,u,o,s,f,l,b,w,d,g,p,v,m,y,k,j,E;if((e=Gy(MD(mMn(n.a.j,(HXn(),_dt)))))<-1||!n.a.i||LK(BB(mMn(n.a.o,ept),98))||abn(n.a.o,(kUn(),oIt)).gc()<2&&abn(n.a.o,CIt).gc()<2)return!0;if(n.a.c.Rf())return!1;for(y=0,m=0,v=new Np,o=0,s=(u=n.a.e).length;o<s;++o){for(b=0,d=(l=u[o]).length;b<d;++b)if((f=l[b]).k!=(uSn(),Iut)){for(i=n.b[f.c.p][f.p],f.k==Mut?(i.b=1,BB(mMn(f,(hWn(),dlt)),11).j==(kUn(),oIt)&&(m+=i.a)):(E=abn(f,(kUn(),CIt))).dc()||!tL(E,new Nc)?i.c=1:((r=abn(f,oIt)).dc()||!tL(r,new Lc))&&(y+=i.a),a=new oz(ZL(lbn(f).a.Kc(),new h));dAn(a);)c=BB(U5(a),17),y+=i.c,m+=i.b,X8(n,i,c.d.i);for(j=new oz(new WL((g=Wen(Pun(Gk(xnt,1),HWn,20,0,[abn(f,(kUn(),sIt)),abn(f,SIt)]))).a.length,g.a));dAn(j);)k=BB(U5(j),11),(p=BB(mMn(k,(hWn(),Elt)),10))&&(y+=i.c,m+=i.b,X8(n,i,p))}else v.c[v.c.length]=f;for(w=new Wb(v);w.a<w.c.c.length;)for(f=BB(n0(w),10),i=n.b[f.c.p][f.p],a=new oz(ZL(lbn(f).a.Kc(),new h));dAn(a);)c=BB(U5(a),17),y+=i.c,m+=i.b,X8(n,i,c.d.i);v.c=x8(Ant,HWn,1,0,5,1)}return(0==(t=y+m)?RQn:(y-m)/t)>=e}function dXn(){function n(n){var t=this;this.dispatch=function(t){var e=t.data;switch(e.cmd){case"algorithms":var i=Swn((SQ(),new Hb(new Ob(lAt.b))));n.postMessage({id:e.id,data:i});break;case"categories":var r=Swn((SQ(),new Hb(new Ob(lAt.c))));n.postMessage({id:e.id,data:r});break;case"options":var c=Swn((SQ(),new Hb(new Ob(lAt.d))));n.postMessage({id:e.id,data:c});break;case"register":lGn(e.algorithms),n.postMessage({id:e.id});break;case"layout":xBn(e.graph,e.layoutOptions||{},e.options||{}),n.postMessage({id:e.id,data:e.graph})}},this.saveDispatch=function(e){try{t.dispatch(e)}catch(i){n.postMessage({id:e.data.id,error:i})}}}function e(t){var e=this;this.dispatcher=new n({postMessage:function(n){e.onmessage({data:n})}}),this.postMessage=function(n){setTimeout((function(){e.dispatcher.saveDispatch({data:n})}),0)}}if(aE(),typeof document===gYn&&typeof self!==gYn){var r=new n(self);self.onmessage=r.saveDispatch}else typeof t!==gYn&&t.exports&&(Object.defineProperty(i,"__esModule",{value:!0}),t.exports={default:e,Worker:e})}function gXn(n){n.N||(n.N=!0,n.b=kan(n,0),Rrn(n.b,0),Rrn(n.b,1),Rrn(n.b,2),n.bb=kan(n,1),Rrn(n.bb,0),Rrn(n.bb,1),n.fb=kan(n,2),Rrn(n.fb,3),Rrn(n.fb,4),Krn(n.fb,5),n.qb=kan(n,3),Rrn(n.qb,0),Krn(n.qb,1),Krn(n.qb,2),Rrn(n.qb,3),Rrn(n.qb,4),Krn(n.qb,5),Rrn(n.qb,6),n.a=jan(n,4),n.c=jan(n,5),n.d=jan(n,6),n.e=jan(n,7),n.f=jan(n,8),n.g=jan(n,9),n.i=jan(n,10),n.j=jan(n,11),n.k=jan(n,12),n.n=jan(n,13),n.o=jan(n,14),n.p=jan(n,15),n.q=jan(n,16),n.s=jan(n,17),n.r=jan(n,18),n.t=jan(n,19),n.u=jan(n,20),n.v=jan(n,21),n.w=jan(n,22),n.B=jan(n,23),n.A=jan(n,24),n.C=jan(n,25),n.D=jan(n,26),n.F=jan(n,27),n.G=jan(n,28),n.H=jan(n,29),n.J=jan(n,30),n.I=jan(n,31),n.K=jan(n,32),n.M=jan(n,33),n.L=jan(n,34),n.P=jan(n,35),n.Q=jan(n,36),n.R=jan(n,37),n.S=jan(n,38),n.T=jan(n,39),n.U=jan(n,40),n.V=jan(n,41),n.X=jan(n,42),n.W=jan(n,43),n.Y=jan(n,44),n.Z=jan(n,45),n.$=jan(n,46),n._=jan(n,47),n.ab=jan(n,48),n.cb=jan(n,49),n.db=jan(n,50),n.eb=jan(n,51),n.gb=jan(n,52),n.hb=jan(n,53),n.ib=jan(n,54),n.jb=jan(n,55),n.kb=jan(n,56),n.lb=jan(n,57),n.mb=jan(n,58),n.nb=jan(n,59),n.ob=jan(n,60),n.pb=jan(n,61))}function pXn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;if(m=0,0==t.f.a)for(p=new Wb(n);p.a<p.c.c.length;)d=BB(n0(p),10),m=e.Math.max(m,d.n.a+d.o.a+d.d.c);else m=t.f.a-t.c.a;for(m-=t.c.a,g=new Wb(n);g.a<g.c.c.length;){switch(Zp((d=BB(n0(g),10)).n,m-d.o.a),cH(d.f),Vmn(d),(d.q?d.q:(SQ(),SQ(),het))._b((HXn(),spt))&&Zp(BB(mMn(d,spt),8),m-d.o.a),BB(mMn(d,kdt),248).g){case 1:hon(d,kdt,(wvn(),$Mt));break;case 2:hon(d,kdt,(wvn(),AMt))}for(v=d.o,k=new Wb(d.j);k.a<k.c.c.length;){for(Zp((y=BB(n0(k),11)).n,v.a-y.o.a),Zp(y.a,y.o.a),qCn(y,Icn(y.j)),(u=BB(mMn(y,ipt),19))&&hon(y,ipt,iln(-u.a)),a=new Wb(y.g);a.a<a.c.c.length;){for(r=spn((c=BB(n0(a),17)).a,0);r.b!=r.d.c;)(i=BB(b3(r),8)).a=m-i.a;if(h=BB(mMn(c,vgt),74))for(s=spn(h,0);s.b!=s.d.c;)(o=BB(b3(s),8)).a=m-o.a;for(b=new Wb(c.b);b.a<b.c.c.length;)Zp((f=BB(n0(b),70)).n,m-f.o.a)}for(w=new Wb(y.f);w.a<w.c.c.length;)Zp((f=BB(n0(w),70)).n,y.o.a-f.o.a)}for(d.k==(uSn(),Mut)&&(hon(d,(hWn(),Qft),Icn(BB(mMn(d,Qft),61))),YMn(d)),l=new Wb(d.b);l.a<l.c.c.length;)Vmn(f=BB(n0(l),70)),Zp(f.n,v.a-f.o.a)}}function vXn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;if(m=0,0==t.f.b)for(p=new Wb(n);p.a<p.c.c.length;)d=BB(n0(p),10),m=e.Math.max(m,d.n.b+d.o.b+d.d.a);else m=t.f.b-t.c.b;for(m-=t.c.b,g=new Wb(n);g.a<g.c.c.length;){switch(Jp((d=BB(n0(g),10)).n,m-d.o.b),aH(d.f),Qmn(d),(d.q?d.q:(SQ(),SQ(),het))._b((HXn(),spt))&&Jp(BB(mMn(d,spt),8),m-d.o.b),BB(mMn(d,kdt),248).g){case 3:hon(d,kdt,(wvn(),IMt));break;case 4:hon(d,kdt,(wvn(),LMt))}for(v=d.o,k=new Wb(d.j);k.a<k.c.c.length;){for(Jp((y=BB(n0(k),11)).n,v.b-y.o.b),Jp(y.a,y.o.b),qCn(y,Ocn(y.j)),(u=BB(mMn(y,ipt),19))&&hon(y,ipt,iln(-u.a)),a=new Wb(y.g);a.a<a.c.c.length;){for(r=spn((c=BB(n0(a),17)).a,0);r.b!=r.d.c;)(i=BB(b3(r),8)).b=m-i.b;if(h=BB(mMn(c,vgt),74))for(s=spn(h,0);s.b!=s.d.c;)(o=BB(b3(s),8)).b=m-o.b;for(b=new Wb(c.b);b.a<b.c.c.length;)Jp((f=BB(n0(b),70)).n,m-f.o.b)}for(w=new Wb(y.f);w.a<w.c.c.length;)Jp((f=BB(n0(w),70)).n,y.o.b-f.o.b)}for(d.k==(uSn(),Mut)&&(hon(d,(hWn(),Qft),Ocn(BB(mMn(d,Qft),61))),gln(d)),l=new Wb(d.b);l.a<l.c.c.length;)Qmn(f=BB(n0(l),70)),Jp(f.n,v.b-f.o.b)}}function mXn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b;for(f=!1,s=n+1,l1(n,t.c.length),a=(h=BB(t.c[n],200)).a,u=null,c=0;c<h.a.c.length;c++)if(l1(c,a.c.length),!(r=BB(a.c[c],187)).c)if(0!=r.b.c.length){if(r.k||(u&&Gmn(u),Tvn(r,(u=new KJ(u?u.e+u.d+i:0,h.f,i)).e+u.d,h.f),WB(h.d,u),xcn(u,r),r.k=!0),o=null,b=null,c<h.a.c.length-1?b=BB(xq(h.a,c+1),187):s<t.c.length&&0!=(l1(s,t.c.length),BB(t.c[s],200)).a.c.length&&(b=BB(xq((l1(s,t.c.length),BB(t.c[s],200)).a,0),187)),l=!1,(o=b)&&(l=!Nfn(o.j,h)),o){if(0==o.b.c.length){Tkn(h,o);break}if(p9(r,e-r.s),Gmn(r.q),f|=nSn(h,r,o,e,i),0==o.b.c.length)for(Tkn((l1(s,t.c.length),BB(t.c[s],200)),o),o=null;t.c.length>s&&0==(l1(s,t.c.length),BB(t.c[s],200)).a.c.length;)y7(t,(l1(s,t.c.length),t.c[s]));if(!o){--c;continue}if(A_n(t,h,r,o,l,e,s,i)){f=!0;continue}if(l){if(JBn(t,h,r,o,e,s,i)){f=!0;continue}if(Ahn(h,r)){r.c=!0,f=!0;continue}}else if(Ahn(h,r)){r.c=!0,f=!0;continue}if(f)continue}Ahn(h,r)?(r.c=!0,f=!0,o&&(o.k=!1)):Gmn(r.q)}else $T(),Tkn(h,r),--c,f=!0;return f}function yXn(n,t,i,r,c,a,u){var o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C,I,O,A;for(g=0,P=0,h=new Wb(n.b);h.a<h.c.c.length;)(s=BB(n0(h),157)).c&&ozn(s.c),g=e.Math.max(g,iG(s)),P+=iG(s)*eG(s);for(p=P/n.b.c.length,S=hjn(n.b,p),P+=n.b.c.length*S,g=e.Math.max(g,e.Math.sqrt(P*u))+i.b,O=i.b,A=i.d,w=0,l=i.b+i.c,DH(M=new YT,iln(0)),E=new YT,f=new M2(n.b,0),d=null,o=new Np;f.b<f.d.gc();)Px(f.b<f.d.gc()),I=iG(s=BB(f.d.Xb(f.c=f.b++),157)),b=eG(s),O+I>g&&(a&&(fO(E,w),fO(M,iln(f.b-1)),WB(n.d,d),o.c=x8(Ant,HWn,1,0,5,1)),O=i.b,A+=w+t,w=0,l=e.Math.max(l,i.b+i.c+I)),o.c[o.c.length]=s,Mpn(s,O,A),l=e.Math.max(l,O+I+i.c),w=e.Math.max(w,b),O+=I+t,d=s;if(gun(n.a,o),WB(n.d,BB(xq(o,o.c.length-1),157)),l=e.Math.max(l,r),(C=A+w+i.a)<c&&(w+=c-C,C=c),a)for(O=i.b,f=new M2(n.b,0),fO(M,iln(n.b.c.length)),m=BB(b3(T=spn(M,0)),19).a,fO(E,w),j=spn(E,0),k=0;f.b<f.d.gc();)f.b==m&&(O=i.b,k=Gy(MD(b3(j))),m=BB(b3(T),19).a),Px(f.b<f.d.gc()),Udn(s=BB(f.d.Xb(f.c=f.b++),157),k),f.b==m&&(v=l-O-i.c,y=iG(s),zdn(s,v),Fln(s,(v-y)/2,0)),O+=iG(s)+t;return new xC(l,C)}function kXn(n){var t,e,i,r;switch(r=null,n.c){case 6:return n.Vl();case 13:return n.Wl();case 23:return n.Nl();case 22:return n.Sl();case 18:return n.Pl();case 8:QXn(n),wWn(),r=oNt;break;case 9:return n.vl(!0);case 19:return n.wl();case 10:switch(n.a){case 100:case 68:case 119:case 87:case 115:case 83:return r=n.ul(n.a),QXn(n),r;case 101:case 102:case 110:case 114:case 116:case 117:case 118:case 120:(t=n.tl())<BQn?(wWn(),wWn(),r=new oG(0,t)):r=pz(Xln(t));break;case 99:return n.Fl();case 67:return n.Al();case 105:return n.Il();case 73:return n.Bl();case 103:return n.Gl();case 88:return n.Cl();case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return n.xl();case 80:case 112:if(!(r=DIn(n,n.a)))throw Hp(new ak(kWn((u$(),O8n))));break;default:r=QH(n.a)}QXn(n);break;case 0:if(93==n.a||123==n.a||125==n.a)throw Hp(new ak(kWn((u$(),I8n))));r=QH(n.a),e=n.a,QXn(n),(64512&e)==HQn&&0==n.c&&56320==(64512&n.a)&&((i=x8(ONt,WVn,25,2,15,1))[0]=e&QVn,i[1]=n.a&QVn,r=oU(pz(Bdn(i,0,i.length)),0),QXn(n));break;default:throw Hp(new ak(kWn((u$(),I8n))))}return r}function jXn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g;if(r=new Np,c=DWn,a=DWn,u=DWn,i)for(c=n.f.a,d=new Wb(t.j);d.a<d.c.c.length;)for(s=new Wb(BB(n0(d),11).g);s.a<s.c.c.length;)0!=(o=BB(n0(s),17)).a.b&&((f=BB(gx(o.a),8)).a<c&&(a=c-f.a,u=DWn,r.c=x8(Ant,HWn,1,0,5,1),c=f.a),f.a<=c&&(r.c[r.c.length]=o,o.a.b>1&&(u=e.Math.min(u,e.Math.abs(BB(Dpn(o.a,1),8).b-f.b)))));else for(d=new Wb(t.j);d.a<d.c.c.length;)for(s=new Wb(BB(n0(d),11).e);s.a<s.c.c.length;)0!=(o=BB(n0(s),17)).a.b&&((b=BB(px(o.a),8)).a>c&&(a=b.a-c,u=DWn,r.c=x8(Ant,HWn,1,0,5,1),c=b.a),b.a>=c&&(r.c[r.c.length]=o,o.a.b>1&&(u=e.Math.min(u,e.Math.abs(BB(Dpn(o.a,o.a.b-2),8).b-b.b)))));if(0!=r.c.length&&a>t.o.a/2&&u>t.o.b/2){for(CZ(w=new CSn,t),qCn(w,(kUn(),sIt)),w.n.a=t.o.a/2,CZ(g=new CSn,t),qCn(g,SIt),g.n.a=t.o.a/2,g.n.b=t.o.b,s=new Wb(r);s.a<s.c.c.length;)o=BB(n0(s),17),i?(h=BB(dH(o.a),8),(0==o.a.b?g1(o.d):BB(gx(o.a),8)).b>=h.b?SZ(o,g):SZ(o,w)):(h=BB(gH(o.a),8),(0==o.a.b?g1(o.c):BB(px(o.a),8)).b>=h.b?MZ(o,g):MZ(o,w)),(l=BB(mMn(o,(HXn(),vgt)),74))&&ywn(l,h,!0);t.n.a=c-t.o.a/2}}function EXn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;if(s=t,$in(o=Q3(n,L3(e),s),R2(s,q6n)),h=BB(sen(n.g,kIn(zJ(s,T6n))),33),i=null,(a=zJ(s,"sourcePort"))&&(i=kIn(a)),f=BB(sen(n.j,i),118),!h)throw Hp(new ek("An edge must have a source node (edge id: '"+Qdn(s)+W6n));if(f&&!wW(WJ(f),h))throw Hp(new ek("The source port of an edge must be a port of the edge's source node (edge id: '"+R2(s,q6n)+W6n));if(!o.b&&(o.b=new hK(KOt,o,4,7)),f9(o.b,f||h),l=BB(sen(n.g,kIn(zJ(s,Y6n))),33),r=null,(u=zJ(s,"targetPort"))&&(r=kIn(u)),b=BB(sen(n.j,r),118),!l)throw Hp(new ek("An edge must have a target node (edge id: '"+Qdn(s)+W6n));if(b&&!wW(WJ(b),l))throw Hp(new ek("The target port of an edge must be a port of the edge's target node (edge id: '"+R2(s,q6n)+W6n));if(!o.c&&(o.c=new hK(KOt,o,5,8)),f9(o.c,b||l),0==(!o.b&&(o.b=new hK(KOt,o,4,7)),o.b).i||0==(!o.c&&(o.c=new hK(KOt,o,5,8)),o.c).i)throw c=R2(s,q6n),Hp(new ek(X6n+c+W6n));return STn(s,o),s$n(s,o),xon(n,s,o)}function TXn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S;return f=CFn(HN(n,(kUn(),wIt)),t),w=ayn(HN(n,dIt),t),y=ayn(HN(n,EIt),t),T=uyn(HN(n,MIt),t),l=uyn(HN(n,hIt),t),v=ayn(HN(n,jIt),t),d=ayn(HN(n,gIt),t),j=ayn(HN(n,TIt),t),k=ayn(HN(n,fIt),t),M=uyn(HN(n,bIt),t),p=ayn(HN(n,yIt),t),m=ayn(HN(n,mIt),t),E=ayn(HN(n,lIt),t),S=uyn(HN(n,kIt),t),b=uyn(HN(n,pIt),t),g=ayn(HN(n,vIt),t),e=Lon(Pun(Gk(xNt,1),qQn,25,15,[v.a,T.a,j.a,S.a])),i=Lon(Pun(Gk(xNt,1),qQn,25,15,[w.a,f.a,y.a,g.a])),r=p.a,c=Lon(Pun(Gk(xNt,1),qQn,25,15,[d.a,l.a,k.a,b.a])),s=Lon(Pun(Gk(xNt,1),qQn,25,15,[v.b,w.b,d.b,m.b])),o=Lon(Pun(Gk(xNt,1),qQn,25,15,[T.b,f.b,l.b,g.b])),h=M.b,u=Lon(Pun(Gk(xNt,1),qQn,25,15,[j.b,y.b,k.b,E.b])),w9(HN(n,wIt),e+r,s+h),w9(HN(n,vIt),e+r,s+h),w9(HN(n,dIt),e+r,0),w9(HN(n,EIt),e+r,s+h+o),w9(HN(n,MIt),0,s+h),w9(HN(n,hIt),e+r+i,s+h),w9(HN(n,gIt),e+r+i,0),w9(HN(n,TIt),0,s+h+o),w9(HN(n,fIt),e+r+i,s+h+o),w9(HN(n,bIt),0,s),w9(HN(n,yIt),e,0),w9(HN(n,lIt),0,s+h+o),w9(HN(n,pIt),e+r+i,0),(a=new Gj).a=Lon(Pun(Gk(xNt,1),qQn,25,15,[e+i+r+c,M.a,m.a,E.a])),a.b=Lon(Pun(Gk(xNt,1),qQn,25,15,[s+o+h+u,p.b,S.b,b.b])),a}function MXn(n){var t,e,i,r,c,a,u,o,s,f,l,b,w,d,g;for(d=new Np,l=new Wb(n.d.b);l.a<l.c.c.length;)for(w=new Wb(BB(n0(l),29).a);w.a<w.c.c.length;){for(b=BB(n0(w),10),r=BB(RX(n.f,b),57),o=new oz(ZL(lbn(b).a.Kc(),new h));dAn(o);)if(s=!0,f=null,(i=spn((a=BB(U5(o),17)).a,0)).b!=i.d.c){for(t=BB(b3(i),8),e=null,a.c.j==(kUn(),sIt)&&((g=new PBn(t,new xC(t.a,r.d.d),r,a)).f.a=!0,g.a=a.c,d.c[d.c.length]=g),a.c.j==SIt&&((g=new PBn(t,new xC(t.a,r.d.d+r.d.a),r,a)).f.d=!0,g.a=a.c,d.c[d.c.length]=g);i.b!=i.d.c;)e=BB(b3(i),8),aen(t.b,e.b)||(f=new PBn(t,e,null,a),d.c[d.c.length]=f,s&&(s=!1,e.b<r.d.d?f.f.a=!0:e.b>r.d.d+r.d.a?f.f.d=!0:(f.f.d=!0,f.f.a=!0))),i.b!=i.d.c&&(t=e);f&&(c=BB(RX(n.f,a.d.i),57),t.b<c.d.d?f.f.a=!0:t.b>c.d.d+c.d.a?f.f.d=!0:(f.f.d=!0,f.f.a=!0))}for(u=new oz(ZL(fbn(b).a.Kc(),new h));dAn(u);)0!=(a=BB(U5(u),17)).a.b&&(t=BB(px(a.a),8),a.d.j==(kUn(),sIt)&&((g=new PBn(t,new xC(t.a,r.d.d),r,a)).f.a=!0,g.a=a.d,d.c[d.c.length]=g),a.d.j==SIt&&((g=new PBn(t,new xC(t.a,r.d.d+r.d.a),r,a)).f.d=!0,g.a=a.d,d.c[d.c.length]=g))}return d}function SXn(n,t,e){var i,r,c,a,u,o,s;if(OTn(e,"Network simplex node placement",1),n.e=t,n.n=BB(mMn(t,(hWn(),Alt)),304),oqn(n),REn(n),JT(wnn(new Rq(null,new w1(n.e.b,16)),new Hc),new cg(n)),JT(AV(wnn(AV(wnn(new Rq(null,new w1(n.e.b,16)),new ta),new ea),new ia),new ra),new rg(n)),qy(TD(mMn(n.e,(HXn(),xgt))))&&(OTn(c=mcn(e,1),"Straight Edges Pre-Processing",1),jzn(n),HSn(c)),Mvn(n.f),r=BB(mMn(t,xpt),19).a*n.f.a.c.length,WKn(Qk(Yk(B_(n.f),r),!1),mcn(e,1)),0!=n.d.a.gc()){for(OTn(c=mcn(e,1),"Flexible Where Space Processing",1),a=BB($N(Oz($V(new Rq(null,new w1(n.f.a,16)),new qc),new Dc)),19).a,u=BB($N(Iz($V(new Rq(null,new w1(n.f.a,16)),new Gc),new Rc)),19).a-a,o=AN(new qv,n.f),s=AN(new qv,n.f),UNn(aM(cM(rM(uM(new Hv,2e4),u),o),s)),JT(AV(AV(LU(n.i),new zc),new Uc),new zV(a,o,u,s)),i=n.d.a.ec().Kc();i.Ob();)BB(i.Pb(),213).g=1;WKn(Qk(Yk(B_(n.f),r),!1),mcn(c,1)),HSn(c)}qy(TD(mMn(t,xgt)))&&(OTn(c=mcn(e,1),"Straight Edges Post-Processing",1),SPn(n),HSn(c)),QGn(n),n.e=null,n.f=null,n.i=null,n.c=null,$U(n.k),n.j=null,n.a=null,n.o=null,n.d.a.$b(),HSn(e)}function PXn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;for(u=new Wb(n.a.b);u.a<u.c.c.length;)for(m=new Wb(BB(n0(u),29).a);m.a<m.c.c.length;)v=BB(n0(m),10),t.g[v.p]=v,t.a[v.p]=v,t.d[v.p]=0;for(o=n.a.b,t.c==(gJ(),nyt)&&(o=cL(o,152)?o6(BB(o,152)):cL(o,131)?BB(o,131).a:cL(o,54)?new fy(o):new CT(o)),a=o.Kc();a.Ob();)for(b=-1,l=BB(a.Pb(),29).a,t.o==(oZ(),cyt)&&(b=DWn,l=cL(l,152)?o6(BB(l,152)):cL(l,131)?BB(l,131).a:cL(l,54)?new fy(l):new CT(l)),k=l.Kc();k.Ob();)if(y=BB(k.Pb(),10),f=null,(f=t.c==nyt?BB(xq(n.b.f,y.p),15):BB(xq(n.b.b,y.p),15)).gc()>0)if(r=f.gc(),s=CJ(e.Math.floor((r+1)/2))-1,c=CJ(e.Math.ceil((r+1)/2))-1,t.o==cyt)for(h=c;h>=s;h--)t.a[y.p]==y&&(d=BB(f.Xb(h),46),w=BB(d.a,10),!FT(i,d.b)&&b>n.b.e[w.p]&&(t.a[w.p]=y,t.g[y.p]=t.g[w.p],t.a[y.p]=t.g[y.p],t.f[t.g[y.p].p]=(hN(),!!(qy(t.f[t.g[y.p].p])&y.k==(uSn(),Put))),b=n.b.e[w.p]));else for(h=s;h<=c;h++)t.a[y.p]==y&&(p=BB(f.Xb(h),46),g=BB(p.a,10),!FT(i,p.b)&&b<n.b.e[g.p]&&(t.a[g.p]=y,t.g[y.p]=t.g[g.p],t.a[y.p]=t.g[y.p],t.f[t.g[y.p].p]=(hN(),!!(qy(t.f[t.g[y.p].p])&y.k==(uSn(),Put))),b=n.b.e[g.p]))}function CXn(){CXn=O,eE(),POt=gOt.a,BB(Wtn(QQ(gOt.a),0),18),kOt=gOt.f,BB(Wtn(QQ(gOt.f),0),18),BB(Wtn(QQ(gOt.f),1),34),SOt=gOt.n,BB(Wtn(QQ(gOt.n),0),34),BB(Wtn(QQ(gOt.n),1),34),BB(Wtn(QQ(gOt.n),2),34),BB(Wtn(QQ(gOt.n),3),34),jOt=gOt.g,BB(Wtn(QQ(gOt.g),0),18),BB(Wtn(QQ(gOt.g),1),34),vOt=gOt.c,BB(Wtn(QQ(gOt.c),0),18),BB(Wtn(QQ(gOt.c),1),18),EOt=gOt.i,BB(Wtn(QQ(gOt.i),0),18),BB(Wtn(QQ(gOt.i),1),18),BB(Wtn(QQ(gOt.i),2),18),BB(Wtn(QQ(gOt.i),3),18),BB(Wtn(QQ(gOt.i),4),34),TOt=gOt.j,BB(Wtn(QQ(gOt.j),0),18),mOt=gOt.d,BB(Wtn(QQ(gOt.d),0),18),BB(Wtn(QQ(gOt.d),1),18),BB(Wtn(QQ(gOt.d),2),18),BB(Wtn(QQ(gOt.d),3),18),BB(Wtn(QQ(gOt.d),4),34),BB(Wtn(QQ(gOt.d),5),34),BB(Wtn(QQ(gOt.d),6),34),BB(Wtn(QQ(gOt.d),7),34),pOt=gOt.b,BB(Wtn(QQ(gOt.b),0),34),BB(Wtn(QQ(gOt.b),1),34),yOt=gOt.e,BB(Wtn(QQ(gOt.e),0),34),BB(Wtn(QQ(gOt.e),1),34),BB(Wtn(QQ(gOt.e),2),34),BB(Wtn(QQ(gOt.e),3),34),BB(Wtn(QQ(gOt.e),4),18),BB(Wtn(QQ(gOt.e),5),18),BB(Wtn(QQ(gOt.e),6),18),BB(Wtn(QQ(gOt.e),7),18),BB(Wtn(QQ(gOt.e),8),18),BB(Wtn(QQ(gOt.e),9),18),BB(Wtn(QQ(gOt.e),10),34),MOt=gOt.k,BB(Wtn(QQ(gOt.k),0),34),BB(Wtn(QQ(gOt.k),1),34)}function IXn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P;for(M=new YT,j=new YT,g=-1,o=new Wb(n);o.a<o.c.c.length;){for((a=BB(n0(o),128)).s=g--,h=0,m=0,c=new Wb(a.t);c.a<c.c.c.length;)m+=(i=BB(n0(c),268)).c;for(r=new Wb(a.i);r.a<r.c.c.length;)h+=(i=BB(n0(r),268)).c;a.n=h,a.u=m,0==m?r5(j,a,j.c.b,j.c):0==h&&r5(M,a,M.c.b,M.c)}for(P=S4(n),d=(f=n.c.length)+1,p=f-1,b=new Np;0!=P.a.gc();){for(;0!=j.b;)Px(0!=j.b),k=BB(Atn(j,j.a.a),128),P.a.Bc(k),k.s=p--,cLn(k,M,j);for(;0!=M.b;)Px(0!=M.b),E=BB(Atn(M,M.a.a),128),P.a.Bc(E),E.s=d++,cLn(E,M,j);for(w=_Vn,s=P.a.ec().Kc();s.Ob();)(v=(a=BB(s.Pb(),128)).u-a.n)>=w&&(v>w&&(b.c=x8(Ant,HWn,1,0,5,1),w=v),b.c[b.c.length]=a);0!=b.c.length&&(l=BB(xq(b,pvn(t,b.c.length)),128),P.a.Bc(l),l.s=d++,cLn(l,M,j),b.c=x8(Ant,HWn,1,0,5,1))}for(y=n.c.length+1,u=new Wb(n);u.a<u.c.c.length;)(a=BB(n0(u),128)).s<f&&(a.s+=y);for(T=new Wb(n);T.a<T.c.c.length;)for(e=new M2((E=BB(n0(T),128)).t,0);e.b<e.d.gc();)Px(e.b<e.d.gc()),S=(i=BB(e.d.Xb(e.c=e.b++),268)).b,E.s>S.s&&(fW(e),y7(S.i,i),i.c>0&&(i.a=S,WB(S.t,i),i.b=E,WB(E.i,i)))}function OXn(n){var t,e,i,r,c;switch(t=n.c){case 11:return n.Ml();case 12:return n.Ol();case 14:return n.Ql();case 15:return n.Tl();case 16:return n.Rl();case 17:return n.Ul();case 21:return QXn(n),wWn(),wWn(),sNt;case 10:switch(n.a){case 65:return n.yl();case 90:return n.Dl();case 122:return n.Kl();case 98:return n.El();case 66:return n.zl();case 60:return n.Jl();case 62:return n.Hl()}}switch(c=kXn(n),t=n.c){case 3:return n.Zl(c);case 4:return n.Xl(c);case 5:return n.Yl(c);case 0:if(123==n.a&&n.d<n.j){if(r=n.d,i=0,e=-1,!((t=fV(n.i,r++))>=48&&t<=57))throw Hp(new ak(kWn((u$(),X8n))));for(i=t-48;r<n.j&&(t=fV(n.i,r++))>=48&&t<=57;)if((i=10*i+t-48)<0)throw Hp(new ak(kWn((u$(),Y8n))));if(e=i,44==t){if(r>=n.j)throw Hp(new ak(kWn((u$(),V8n))));if((t=fV(n.i,r++))>=48&&t<=57){for(e=t-48;r<n.j&&(t=fV(n.i,r++))>=48&&t<=57;)if((e=10*e+t-48)<0)throw Hp(new ak(kWn((u$(),Y8n))));if(i>e)throw Hp(new ak(kWn((u$(),Q8n))))}else e=-1}if(125!=t)throw Hp(new ak(kWn((u$(),W8n))));n.sl(r)?(wWn(),wWn(),c=new h4(9,c),n.d=r+1):(wWn(),wWn(),c=new h4(3,c),n.d=r),c.dm(i),c.cm(e),QXn(n)}}return c}function AXn(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M;for(w=new J6(t.b),v=new J6(t.b),l=new J6(t.b),j=new J6(t.b),d=new J6(t.b),k=spn(t,0);k.b!=k.d.c;)for(u=new Wb((m=BB(b3(k),11)).g);u.a<u.c.c.length;)if((c=BB(n0(u),17)).c.i==c.d.i){if(m.j==c.d.j){j.c[j.c.length]=c;continue}if(m.j==(kUn(),sIt)&&c.d.j==SIt){d.c[d.c.length]=c;continue}}for(o=new Wb(d);o.a<o.c.c.length;)__n(n,c=BB(n0(o),17),e,i,(kUn(),oIt));for(a=new Wb(j);a.a<a.c.c.length;)c=BB(n0(a),17),Bl(E=new $vn(n),(uSn(),Iut)),hon(E,(HXn(),ept),(QEn(),XCt)),hon(E,(hWn(),dlt),c),hon(T=new CSn,dlt,c.d),qCn(T,(kUn(),CIt)),CZ(T,E),hon(M=new CSn,dlt,c.c),qCn(M,oIt),CZ(M,E),hon(c.c,Elt,E),hon(c.d,Elt,E),SZ(c,null),MZ(c,null),e.c[e.c.length]=E,hon(E,Bft,iln(2));for(y=spn(t,0);y.b!=y.d.c;)s=(m=BB(b3(y),11)).e.c.length>0,g=m.g.c.length>0,s&&g?l.c[l.c.length]=m:s?w.c[w.c.length]=m:g&&(v.c[v.c.length]=m);for(b=new Wb(w);b.a<b.c.c.length;)WB(r,HBn(n,BB(n0(b),11),null,e));for(p=new Wb(v);p.a<p.c.c.length;)WB(r,HBn(n,null,BB(n0(p),11),e));for(f=new Wb(l);f.a<f.c.c.length;)WB(r,HBn(n,h=BB(n0(f),11),h,e))}function $Xn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;for(d=new xC(RQn,RQn),t=new xC(KQn,KQn),k=new Wb(n);k.a<k.c.c.length;)y=BB(n0(k),8),d.a=e.Math.min(d.a,y.a),d.b=e.Math.min(d.b,y.b),t.a=e.Math.max(t.a,y.a),t.b=e.Math.max(t.b,y.b);for(s=new xC(t.a-d.a,t.b-d.b),h=new ZFn(new xC(d.a-50,d.b-s.a-50),new xC(d.a-50,t.b+s.a+50),new xC(t.a+s.b/2+50,d.b+s.b/2)),m=new Rv,c=new Np,i=new Np,m.a.zc(h,m),E=new Wb(n);E.a<E.c.c.length;){for(j=BB(n0(E),8),c.c=x8(Ant,HWn,1,0,5,1),v=m.a.ec().Kc();v.Ob();)W8((g=BB(v.Pb(),308)).d,g.a),Ibn(W8(g.d,j),W8(g.d,g.a))<0&&(c.c[c.c.length]=g);for(i.c=x8(Ant,HWn,1,0,5,1),p=new Wb(c);p.a<p.c.c.length;)for(b=new Wb((g=BB(n0(p),308)).e);b.a<b.c.c.length;){for(f=BB(n0(b),168),a=!0,o=new Wb(c);o.a<o.c.c.length;)(u=BB(n0(o),308))!=g&&(cV(f,xq(u.e,0))||cV(f,xq(u.e,1))||cV(f,xq(u.e,2)))&&(a=!1);a&&(i.c[i.c.length]=f)}for(oMn(m,c),e5(m,new bn),l=new Wb(i);l.a<l.c.c.length;)TU(m,new ZFn(j,(f=BB(n0(l),168)).a,f.b))}for(e5(m,new jw(w=new Rv)),r=w.a.ec().Kc();r.Ob();)(K7(h,(f=BB(r.Pb(),168)).a)||K7(h,f.b))&&r.Qb();return e5(w,new wn),w}function LXn(n){var t,e,i;switch(e=BB(mMn(n,(hWn(),Zft)),21),t=kA(Nat),BB(mMn(n,(HXn(),sgt)),334)==(ufn(),pCt)&&Jcn(t,xat),qy(TD(mMn(n,ugt)))?dq(t,(yMn(),Rat),(lWn(),Hot)):dq(t,(yMn(),_at),(lWn(),Hot)),null!=mMn(n,(C6(),TMt))&&Jcn(t,Dat),(qy(TD(mMn(n,ggt)))||qy(TD(mMn(n,ogt))))&&WG(t,(yMn(),Bat),(lWn(),eot)),BB(mMn(n,Udt),103).g){case 2:case 3:case 4:WG(dq(t,(yMn(),Rat),(lWn(),rot)),Bat,iot)}switch(e.Hc((bDn(),hft))&&WG(dq(dq(t,(yMn(),Rat),(lWn(),tot)),Fat,Zut),Bat,not),GI(mMn(n,Sgt))!==GI((sNn(),Ivt))&&dq(t,(yMn(),_at),(lWn(),Not)),e.Hc(pft)&&(dq(t,(yMn(),Rat),(lWn(),Fot)),dq(t,Kat,Kot),dq(t,_at,_ot)),GI(mMn(n,Pdt))!==GI((JMn(),cft))&&GI(mMn(n,Zdt))!==GI((Mbn(),YPt))&&WG(t,(yMn(),Bat),(lWn(),pot)),qy(TD(mMn(n,fgt)))&&dq(t,(yMn(),_at),(lWn(),got)),qy(TD(mMn(n,Hdt)))&&dq(t,(yMn(),_at),(lWn(),Wot)),KLn(n)&&(i=(GI(mMn(n,sgt))===GI(pCt)?BB(mMn(n,Rdt),292):BB(mMn(n,Kdt),292))==(Kan(),jft)?(lWn(),Rot):(lWn(),Yot),dq(t,(yMn(),Fat),i)),BB(mMn(n,zpt),377).g){case 1:dq(t,(yMn(),Fat),(lWn(),Vot));break;case 2:WG(dq(dq(t,(yMn(),_at),(lWn(),Vut)),Fat,Qut),Bat,Yut)}return GI(mMn(n,Ldt))!==GI((mon(),Nvt))&&dq(t,(yMn(),_at),(lWn(),Qot)),t}function NXn(n){NM(n,new MTn(vj(wj(pj(gj(new du,$4n),"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 Za))),u2(n,$4n,VJn,1.3),u2(n,$4n,A4n,mpn(gEt)),u2(n,$4n,QJn,IEt),u2(n,$4n,vZn,15),u2(n,$4n,u3n,mpn(bEt)),u2(n,$4n,PZn,mpn(jEt)),u2(n,$4n,BZn,mpn(EEt)),u2(n,$4n,SZn,mpn(TEt)),u2(n,$4n,CZn,mpn(kEt)),u2(n,$4n,MZn,mpn(MEt)),u2(n,$4n,IZn,mpn(OEt)),u2(n,$4n,E4n,mpn(PEt)),u2(n,$4n,T4n,mpn(yEt)),u2(n,$4n,P4n,mpn(SEt)),u2(n,$4n,C4n,mpn(AEt)),u2(n,$4n,I4n,mpn(pEt)),u2(n,$4n,jZn,mpn(vEt)),u2(n,$4n,m3n,mpn(mEt)),u2(n,$4n,S4n,mpn(dEt)),u2(n,$4n,M4n,mpn(wEt)),u2(n,$4n,O4n,mpn(LEt))}function xXn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d;if(null==e)return null;if(n.a!=t.Aj())throw Hp(new _y(d6n+t.ne()+g6n));if(cL(t,457)){if(!(d=SDn(BB(t,671),e)))throw Hp(new _y(p6n+e+"' is not a valid enumerator of '"+t.ne()+"'"));return d}switch(Cfn((IPn(),Z$t),t).cl()){case 2:e=FBn(e,!1);break;case 3:e=FBn(e,!0)}if(i=Cfn(Z$t,t).$k())return i.Aj().Nh().Kh(i,e);if(f=Cfn(Z$t,t).al()){for(d=new Np,s=0,h=(o=ysn(e)).length;s<h;++s)u=o[s],WB(d,f.Aj().Nh().Kh(f,u));return d}if(!(w=Cfn(Z$t,t).bl()).dc()){for(b=w.Kc();b.Ob();){l=BB(b.Pb(),148);try{if(null!=(d=l.Aj().Nh().Kh(l,e)))return d}catch(g){if(!cL(g=lun(g),60))throw Hp(g)}}throw Hp(new _y(p6n+e+"' does not match any member types of the union datatype '"+t.ne()+"'"))}if(BB(t,834).Fj(),!(r=xfn(t.Bj())))return null;if(r==Stt){c=0;try{c=l_n(e,_Vn,DWn)&QVn}catch(g){if(!cL(g=lun(g),127))throw Hp(g);c=V7(e)[0]}return fun(c)}if(r==mtt){for(a=0;a<IOt.length;++a)try{return BM(IOt[a],e)}catch(g){if(!cL(g=lun(g),32))throw Hp(g)}throw Hp(new _y(p6n+e+"' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof"))}throw Hp(new _y(p6n+e+"' is invalid. "))}function DXn(n,t){var e,i,r,c,a,u,o,s;if(e=0,a=0,c=t.length,u=null,s=new Ik,a<c&&(b1(a,t.length),43==t.charCodeAt(a))&&(++e,++a<c&&(b1(a,t.length),43==t.charCodeAt(a)||(b1(a,t.length),45==t.charCodeAt(a)))))throw Hp(new Mk(DQn+t+'"'));for(;a<c&&(b1(a,t.length),46!=t.charCodeAt(a))&&(b1(a,t.length),101!=t.charCodeAt(a))&&(b1(a,t.length),69!=t.charCodeAt(a));)++a;if(s.a+=""+fx(null==t?zWn:(kW(t),t),e,a),a<c&&(b1(a,t.length),46==t.charCodeAt(a))){for(e=++a;a<c&&(b1(a,t.length),101!=t.charCodeAt(a))&&(b1(a,t.length),69!=t.charCodeAt(a));)++a;n.e=a-e,s.a+=""+fx(null==t?zWn:(kW(t),t),e,a)}else n.e=0;if(a<c&&(b1(a,t.length),101==t.charCodeAt(a)||(b1(a,t.length),69==t.charCodeAt(a)))&&(e=++a,a<c&&(b1(a,t.length),43==t.charCodeAt(a))&&++a<c&&(b1(a,t.length),45!=t.charCodeAt(a))&&++e,u=t.substr(e,c-e),n.e=n.e-l_n(u,_Vn,DWn),n.e!=CJ(n.e)))throw Hp(new Mk("Scale out of range."));if((o=s.a).length<16){if(n.f=(null==Vtt&&(Vtt=new RegExp("^[+-]?\\d*$","i")),Vtt.test(o)?parseInt(o,10):NaN),isNaN(n.f))throw Hp(new Mk(DQn+t+'"'));n.a=aIn(n.f)}else fdn(n,new $A(o));for(n.d=s.a.length,r=0;r<s.a.length&&(45==(i=fV(s.a,r))||48==i);++r)--n.d;0==n.d&&(n.d=1)}function RXn(){RXn=O,JIn(fut=new pJ,(kUn(),wIt),vIt),JIn(fut,MIt,vIt),JIn(fut,MIt,kIt),JIn(fut,hIt,pIt),JIn(fut,hIt,vIt),JIn(fut,dIt,vIt),JIn(fut,dIt,mIt),JIn(fut,EIt,lIt),JIn(fut,EIt,vIt),JIn(fut,yIt,bIt),JIn(fut,yIt,vIt),JIn(fut,yIt,mIt),JIn(fut,yIt,lIt),JIn(fut,bIt,yIt),JIn(fut,bIt,kIt),JIn(fut,bIt,pIt),JIn(fut,bIt,vIt),JIn(fut,jIt,jIt),JIn(fut,jIt,mIt),JIn(fut,jIt,kIt),JIn(fut,gIt,gIt),JIn(fut,gIt,mIt),JIn(fut,gIt,pIt),JIn(fut,TIt,TIt),JIn(fut,TIt,lIt),JIn(fut,TIt,kIt),JIn(fut,fIt,fIt),JIn(fut,fIt,lIt),JIn(fut,fIt,pIt),JIn(fut,mIt,dIt),JIn(fut,mIt,yIt),JIn(fut,mIt,jIt),JIn(fut,mIt,gIt),JIn(fut,mIt,vIt),JIn(fut,mIt,mIt),JIn(fut,mIt,kIt),JIn(fut,mIt,pIt),JIn(fut,lIt,EIt),JIn(fut,lIt,yIt),JIn(fut,lIt,TIt),JIn(fut,lIt,fIt),JIn(fut,lIt,lIt),JIn(fut,lIt,kIt),JIn(fut,lIt,pIt),JIn(fut,lIt,vIt),JIn(fut,kIt,MIt),JIn(fut,kIt,bIt),JIn(fut,kIt,jIt),JIn(fut,kIt,TIt),JIn(fut,kIt,mIt),JIn(fut,kIt,lIt),JIn(fut,kIt,kIt),JIn(fut,kIt,vIt),JIn(fut,pIt,hIt),JIn(fut,pIt,bIt),JIn(fut,pIt,gIt),JIn(fut,pIt,fIt),JIn(fut,pIt,mIt),JIn(fut,pIt,lIt),JIn(fut,pIt,pIt),JIn(fut,pIt,vIt),JIn(fut,vIt,wIt),JIn(fut,vIt,MIt),JIn(fut,vIt,hIt),JIn(fut,vIt,dIt),JIn(fut,vIt,EIt),JIn(fut,vIt,yIt),JIn(fut,vIt,bIt),JIn(fut,vIt,mIt),JIn(fut,vIt,lIt),JIn(fut,vIt,kIt),JIn(fut,vIt,pIt),JIn(fut,vIt,vIt)}function KXn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T;for(n.d=new xC(RQn,RQn),n.c=new xC(KQn,KQn),l=t.Kc();l.Ob();)for(m=new Wb(BB(l.Pb(),37).a);m.a<m.c.c.length;)v=BB(n0(m),10),n.d.a=e.Math.min(n.d.a,v.n.a-v.d.b),n.d.b=e.Math.min(n.d.b,v.n.b-v.d.d),n.c.a=e.Math.max(n.c.a,v.n.a+v.o.a+v.d.c),n.c.b=e.Math.max(n.c.b,v.n.b+v.o.b+v.d.a);for(o=new Yv,f=t.Kc();f.Ob();)r=uXn(n,BB(f.Pb(),37)),WB(o.a,r),r.a=r.a|!BB(mMn(r.c,(hWn(),Xft)),21).dc();for(n.b=(Shn(),(T=new kt).f=new vin(i),T.b=oGn(T.f,o),T),jGn((w=n.b,new Xm,w)),n.e=new Gj,n.a=n.b.f.e,u=new Wb(o.a);u.a<u.c.c.length;)for(c=BB(n0(u),841),y=AJ(n.b,c),nKn(c.c,y.a,y.b),g=new Wb(c.c.a);g.a<g.c.c.length;)(d=BB(n0(g),10)).k==(uSn(),Mut)&&(p=lLn(n,d.n,BB(mMn(d,(hWn(),Qft)),61)),UR(kO(d.n),p));for(a=new Wb(o.a);a.a<a.c.c.length;)for(h=new Wb(wln(c=BB(n0(a),841)));h.a<h.c.c.length;)for(Kx(E=new Kj((s=BB(n0(h),17)).a),0,g1(s.c)),DH(E,g1(s.d)),b=null,j=spn(E,0);j.b!=j.d.c;)k=BB(b3(j),8),b?(uen(b.a,k.a)?(n.e.a=e.Math.min(n.e.a,b.a),n.a.a=e.Math.max(n.a.a,b.a)):uen(b.b,k.b)&&(n.e.b=e.Math.min(n.e.b,b.b),n.a.b=e.Math.max(n.a.b,b.b)),b=k):b=k;qx(n.e),UR(n.a,n.e)}function _Xn(n){V$n(n.b,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"ConsistentTransient"])),V$n(n.a,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"WellFormedSourceURI"])),V$n(n.o,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures"])),V$n(n.p,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"WellFormedInstanceTypeName UniqueTypeParameterNames"])),V$n(n.v,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"UniqueEnumeratorNames UniqueEnumeratorLiterals"])),V$n(n.R,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"WellFormedName"])),V$n(n.T,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"])),V$n(n.U,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"])),V$n(n.W,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer"])),V$n(n.bb,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"ValidDefaultValueLiteral"])),V$n(n.eb,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"ValidLowerBound ValidUpperBound ConsistentBounds ValidType"])),V$n(n.H,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"ConsistentType ConsistentBounds ConsistentArguments"]))}function FXn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;if(!t.dc()){if(r=new km,f=(a=e||BB(t.Xb(0),17)).c,gxn(),(s=f.i.k)!=(uSn(),Cut)&&s!=Iut&&s!=Mut&&s!=Tut)throw Hp(new _y("The target node of the edge must be a normal node or a northSouthPort."));for(fO(r,Aon(Pun(Gk(PMt,1),sVn,8,0,[f.i.n,f.n,f.a]))),(kUn(),yIt).Hc(f.j)&&(b=Gy(MD(mMn(f,(hWn(),Llt)))),r5(r,new xC(Aon(Pun(Gk(PMt,1),sVn,8,0,[f.i.n,f.n,f.a])).a,b),r.c.b,r.c)),o=null,i=!1,u=t.Kc();u.Ob();)0!=(c=BB(u.Pb(),17).a).b&&(i?(r5(r,kL(UR(o,(Px(0!=c.b),BB(c.a.a.c,8))),.5),r.c.b,r.c),i=!1):i=!0,o=B$((Px(0!=c.b),BB(c.c.b.c,8))),Frn(r,c),yQ(c));l=a.d,yIt.Hc(l.j)&&(b=Gy(MD(mMn(l,(hWn(),Llt)))),r5(r,new xC(Aon(Pun(Gk(PMt,1),sVn,8,0,[l.i.n,l.n,l.a])).a,b),r.c.b,r.c)),fO(r,Aon(Pun(Gk(PMt,1),sVn,8,0,[l.i.n,l.n,l.a]))),n.d==(Usn(),emt)&&(Px(0!=r.b),w=BB(r.a.a.c,8),d=BB(Dpn(r,1),8),(g=new XZ(hsn(f.j))).a*=5,g.b*=5,p=XR(new xC(d.a,d.b),w),UR(v=new xC(iZ(g.a,p.a),iZ(g.b,p.b)),w),nX(spn(r,1),v),Px(0!=r.b),m=BB(r.c.b.c,8),y=BB(Dpn(r,r.b-2),8),(g=new XZ(hsn(l.j))).a*=5,g.b*=5,p=XR(new xC(y.a,y.b),m),UR(k=new xC(iZ(g.a,p.a),iZ(g.b,p.b)),m),Kx(r,r.b-1,k)),h=new oBn(r),Frn(a.a,Fvn(h))}}function BXn(n,t,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C,I,O,A,$,L,N,x;if(y=(v=BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82)).Dg(),k=v.Eg(),m=v.Cg()/2,w=v.Bg()/2,cL(v,186)&&(y+=WJ(p=BB(v,118)).i,y+=WJ(p).i),y+=m,k+=w,C=(S=BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82)).Dg(),I=S.Eg(),P=S.Cg()/2,j=S.Bg()/2,cL(S,186)&&(C+=WJ(M=BB(S,118)).i,C+=WJ(M).i),C+=P,I+=j,0==(!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i)tE(),o=new co,f9((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a),o);else if((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i>1)for(b=new cx((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a));b.e!=b.i.gc();)Qjn(b);for(d=C,C>y+m?d=y+m:C<y-m&&(d=y-m),g=I,I>k+w?g=k+w:I<k-w&&(g=k-w),d>y-m&&d<y+m&&g>k-w&&g<k+w&&(d=y+m),Ien(u=BB(Wtn((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a),0),202),d),Aen(u,g),E=y,y>C+P?E=C+P:y<C-P&&(E=C-P),T=k,k>I+j?T=I+j:k<I-j&&(T=I-j),E>C-P&&E<C+P&&T>I-j&&T<I+j&&(T=I+j),Ten(u,E),Oen(u,T),sqn((!u.a&&(u.a=new $L(xOt,u,5)),u.a)),a=pvn(t,5),v==S&&++a,A=E-d,N=T-g,h=.20000000298023224*e.Math.sqrt(A*A+N*N),$=A/(a+1),x=N/(a+1),O=d,L=g,s=0;s<a;s++)L+=x,(f=(O+=$)+H$n(t,24)*uYn*h-h/2)<0?f=1:f>i&&(f=i-1),(l=L+H$n(t,24)*uYn*h-h/2)<0?l=1:l>r&&(l=r-1),tE(),jen(c=new ro,f),Een(c,l),f9((!u.a&&(u.a=new $L(xOt,u,5)),u.a),c)}function HXn(){HXn=O,sWn(),ppt=jPt,vpt=EPt,mpt=TPt,ypt=MPt,jpt=SPt,Ept=PPt,Spt=IPt,Cpt=APt,Ipt=$Pt,Ppt=OPt,Opt=LPt,$pt=NPt,Npt=RPt,Mpt=CPt,fWn(),gpt=_wt,kpt=Fwt,Tpt=Bwt,Apt=Hwt,hpt=new XA(pPt,iln(0)),fpt=Dwt,lpt=Rwt,bpt=Kwt,zpt=ldt,Rpt=zwt,Kpt=Wwt,Bpt=edt,_pt=Ywt,Fpt=Zwt,Xpt=pdt,Upt=wdt,qpt=odt,Hpt=adt,Gpt=hdt,Rgt=Pwt,Kgt=Cwt,rgt=Kbt,cgt=Bbt,Ugt=new WA(12),zgt=new XA(XSt,Ugt),Mbn(),Zdt=new XA(vSt,ngt=QPt),tpt=new XA(aPt,0),wpt=new XA(vPt,iln(1)),Edt=new XA(cSt,dZn),Ggt=zSt,ept=uPt,upt=wPt,zdt=lSt,kdt=iSt,sgt=ESt,dpt=new XA(kPt,(hN(),!0)),wgt=SSt,dgt=PSt,Fgt=KSt,qgt=qSt,Bgt=FSt,Ffn(),Udt=new XA(bSt,Wdt=BPt),$gt=DSt,Agt=NSt,cpt=fPt,rpt=hPt,apt=bPt,cpn(),new XA(ZSt,Vgt=qCt),Ygt=ePt,Jgt=iPt,Zgt=rPt,Qgt=tPt,Dpt=Gwt,Pgt=lwt,Sgt=hwt,xpt=qwt,kgt=ewt,Gdt=Tbt,qdt=jbt,xdt=ubt,Ddt=obt,Kdt=bbt,Rdt=sbt,Hdt=ybt,Igt=wwt,Ogt=dwt,pgt=Vbt,_gt=$wt,Ngt=mwt,ugt=Gbt,Dgt=Mwt,egt=Nbt,igt=Dbt,Ndt=hSt,Lgt=gwt,Pdt=Qlt,Sdt=Wlt,Mdt=Xlt,fgt=Xbt,hgt=Ubt,lgt=Wbt,Hgt=BSt,vgt=OSt,agt=ySt,Ydt=gSt,Qdt=dSt,_dt=gbt,ipt=sPt,Tdt=sSt,bgt=MSt,npt=cPt,Xgt=VSt,Wgt=YSt,Egt=cwt,Tgt=uwt,spt=gPt,jdt=Ult,Mgt=swt,Jdt=Obt,Vdt=Cbt,Cgt=$St,mgt=Zbt,xgt=jwt,Lpt=xPt,Xdt=Sbt,opt=Nwt,tgt=$bt,ygt=twt,Fdt=vbt,ggt=ISt,jgt=rwt,Bdt=mbt,Ldt=cbt,Adt=ebt,Idt=nbt,Odt=tbt,$dt=rbt,Cdt=Jlt,ogt=zbt}function qXn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C;if(uHn(),T=n.e,w=n.d,r=n.a,0==T)switch(t){case 0:return"0";case 1:return WQn;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(j=new Ck).a+=t<0?"0E+":"0E",j.a+=-t,j.a}if(y=x8(ONt,WVn,25,1+(m=10*w+1+7),15,1),e=m,1==w)if((u=r[0])<0){C=e0(u,UQn);do{d=C,C=Ojn(C,10),y[--e]=48+dG(ibn(d,cbn(C,10)))&QVn}while(0!=Vhn(C,0))}else{C=u;do{d=C,C=C/10|0,y[--e]=d-10*C+48&QVn}while(0!=C)}else{aHn(r,0,S=x8(ANt,hQn,25,w,15,1),0,P=w);n:for(;;){for(E=0,s=P-1;s>=0;s--)p=fTn(rbn(yz(E,32),e0(S[s],UQn))),S[s]=dG(p),E=dG(kz(p,32));v=dG(E),g=e;do{y[--e]=48+v%10&QVn}while(0!=(v=v/10|0)&&0!=e);for(i=9-g+e,o=0;o<i&&e>0;o++)y[--e]=48;for(f=P-1;0==S[f];f--)if(0==f)break n;P=f+1}for(;48==y[e];)++e}if(b=T<0,a=m-e-t-1,0==t)return b&&(y[--e]=45),Bdn(y,e,m-e);if(t>0&&a>=-6){if(a>=0){for(h=e+a,l=m-1;l>=h;l--)y[l+1]=y[l];return y[++h]=46,b&&(y[--e]=45),Bdn(y,e,m-e+1)}for(f=2;f<1-a;f++)y[--e]=48;return y[--e]=46,y[--e]=48,b&&(y[--e]=45),Bdn(y,e,m-e)}return M=e+1,c=m,k=new Ik,b&&(k.a+="-"),c-M>=1?(xX(k,y[e]),k.a+=".",k.a+=Bdn(y,e+1,m-e-1)):k.a+=Bdn(y,e,m-e),k.a+="E",a>0&&(k.a+="+"),k.a+=""+a,k.a}function GXn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;switch(n.c=t,n.g=new xp,GM(),twn(new Pw(new Dy(n.c))),v=SD(ZAn(n.c,(MMn(),dTt))),u=BB(ZAn(n.c,pTt),316),y=BB(ZAn(n.c,vTt),429),c=BB(ZAn(n.c,hTt),482),m=BB(ZAn(n.c,gTt),430),n.j=Gy(MD(ZAn(n.c,mTt))),a=n.a,u.g){case 0:a=n.a;break;case 1:a=n.b;break;case 2:a=n.i;break;case 3:a=n.e;break;case 4:a=n.f;break;default:throw Hp(new _y(N4n+(null!=u.f?u.f:""+u.g)))}if(n.d=new DJ(a,y,c),hon(n.d,(Xcn(),Qrt),TD(ZAn(n.c,lTt))),n.d.c=qy(TD(ZAn(n.c,fTt))),0==YQ(n.c).i)return n.d;for(h=new AL(YQ(n.c));h.e!=h.i.gc();){for(l=(s=BB(kpn(h),33)).g/2,f=s.f/2,k=new xC(s.i+l,s.j+f);hU(n.g,k);)_x(k,(e.Math.random()-.5)*lZn,(e.Math.random()-.5)*lZn);w=BB(ZAn(s,(sWn(),$St)),142),d=new AZ(k,new UV(k.a-l-n.j/2-w.b,k.b-f-n.j/2-w.d,s.g+n.j+(w.b+w.c),s.f+n.j+(w.d+w.a))),WB(n.d.i,d),VW(n.g,k,new rI(d,s))}switch(m.g){case 0:if(null==v)n.d.d=BB(xq(n.d.i,0),65);else for(p=new Wb(n.d.i);p.a<p.c.c.length;)d=BB(n0(p),65),null!=(b=BB(BB(RX(n.g,d.a),46).b,33).zg())&&mK(b,v)&&(n.d.d=d);break;case 1:for((i=new xC(n.c.g,n.c.f)).a*=.5,i.b*=.5,_x(i,n.c.i,n.c.j),r=RQn,g=new Wb(n.d.i);g.a<g.c.c.length;)(o=W8((d=BB(n0(g),65)).a,i))<r&&(r=o,n.d.d=d);break;default:throw Hp(new _y(N4n+(null!=m.f?m.f:""+m.g)))}return n.d}function zXn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;for(j=BB(Wtn((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a),0),202),f=new km,k=new xp,E=tFn(j),jCn(k.f,j,E),b=new xp,r=new YT,d=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[(!t.d&&(t.d=new hK(_Ot,t,8,5)),t.d),(!t.e&&(t.e=new hK(_Ot,t,7,4)),t.e)])));dAn(d);){if(w=BB(U5(d),79),1!=(!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i)throw Hp(new _y(B5n+(!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i));w!=n&&(r5(r,p=BB(Wtn((!w.a&&(w.a=new eU(FOt,w,6,6)),w.a),0),202),r.c.b,r.c),(g=BB(qI(AY(k.f,p)),12))||(g=tFn(p),jCn(k.f,p,g)),l=i?XR(new wA(BB(xq(E,E.c.length-1),8)),BB(xq(g,g.c.length-1),8)):XR(new wA((l1(0,E.c.length),BB(E.c[0],8))),(l1(0,g.c.length),BB(g.c[0],8))),jCn(b.f,p,l))}if(0!=r.b)for(v=BB(xq(E,i?E.c.length-1:0),8),h=1;h<E.c.length;h++){for(m=BB(xq(E,i?E.c.length-1-h:h),8),c=spn(r,0);c.b!=c.d.c;)p=BB(b3(c),202),(g=BB(qI(AY(k.f,p)),12)).c.length<=h?mtn(c):(y=UR(new wA(BB(xq(g,i?g.c.length-1-h:h),8)),BB(qI(AY(b.f,p)),8)),m.a==y.a&&m.b==y.b||(a=m.a-v.a,o=m.b-v.b,(u=y.a-v.a)*o==(s=y.b-v.b)*a&&(0==a||isNaN(a)?a:a<0?-1:1)==(0==u||isNaN(u)?u:u<0?-1:1)&&(0==o||isNaN(o)?o:o<0?-1:1)==(0==s||isNaN(s)?s:s<0?-1:1)?(e.Math.abs(a)<e.Math.abs(u)||e.Math.abs(o)<e.Math.abs(s))&&r5(f,m,f.c.b,f.c):h>1&&r5(f,v,f.c.b,f.c),mtn(c)));v=m}return f}function UXn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C,I,O,A;for(OTn(e,"Greedy cycle removal",1),A=(m=t.a).c.length,n.a=x8(ANt,hQn,25,A,15,1),n.c=x8(ANt,hQn,25,A,15,1),n.b=x8(ANt,hQn,25,A,15,1),s=0,p=new Wb(m);p.a<p.c.c.length;){for((d=BB(n0(p),10)).p=s,T=new Wb(d.j);T.a<T.c.c.length;){for(u=new Wb((k=BB(n0(T),11)).e);u.a<u.c.c.length;)(i=BB(n0(u),17)).c.i!=d&&(S=BB(mMn(i,(HXn(),fpt)),19).a,n.a[s]+=S>0?S+1:1);for(a=new Wb(k.g);a.a<a.c.c.length;)(i=BB(n0(a),17)).d.i!=d&&(S=BB(mMn(i,(HXn(),fpt)),19).a,n.c[s]+=S>0?S+1:1)}0==n.c[s]?DH(n.e,d):0==n.a[s]&&DH(n.f,d),++s}for(w=-1,b=1,f=new Np,n.d=BB(mMn(t,(hWn(),Slt)),230);A>0;){for(;0!=n.e.b;)C=BB(dH(n.e),10),n.b[C.p]=w--,QKn(n,C),--A;for(;0!=n.f.b;)I=BB(dH(n.f),10),n.b[I.p]=b++,QKn(n,I),--A;if(A>0){for(l=_Vn,v=new Wb(m);v.a<v.c.c.length;)d=BB(n0(v),10),0==n.b[d.p]&&(y=n.c[d.p]-n.a[d.p])>=l&&(y>l&&(f.c=x8(Ant,HWn,1,0,5,1),l=y),f.c[f.c.length]=d);h=n.Zf(f),n.b[h.p]=b++,QKn(n,h),--A}}for(P=m.c.length+1,s=0;s<m.c.length;s++)n.b[s]<0&&(n.b[s]+=P);for(g=new Wb(m);g.a<g.c.c.length;)for(E=0,M=(j=I2((d=BB(n0(g),10)).j)).length;E<M;++E)for(c=0,o=(r=Z0((k=j[E]).g)).length;c<o;++c)O=(i=r[c]).d.i.p,n.b[d.p]>n.b[O]&&(tBn(i,!0),hon(t,qft,(hN(),!0)));n.a=null,n.c=null,n.b=null,yQ(n.f),yQ(n.e),HSn(e)}function XXn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;for(i=new Np,u=new Np,g=t/2,b=n.gc(),r=BB(n.Xb(0),8),p=BB(n.Xb(1),8),WB(i,(l1(0,(w=QAn(r.a,r.b,p.a,p.b,g)).c.length),BB(w.c[0],8))),WB(u,(l1(1,w.c.length),BB(w.c[1],8))),s=2;s<b;s++)d=r,r=p,p=BB(n.Xb(s),8),WB(i,(l1(1,(w=QAn(r.a,r.b,d.a,d.b,g)).c.length),BB(w.c[1],8))),WB(u,(l1(0,w.c.length),BB(w.c[0],8))),WB(i,(l1(0,(w=QAn(r.a,r.b,p.a,p.b,g)).c.length),BB(w.c[0],8))),WB(u,(l1(1,w.c.length),BB(w.c[1],8)));for(WB(i,(l1(1,(w=QAn(p.a,p.b,r.a,r.b,g)).c.length),BB(w.c[1],8))),WB(u,(l1(0,w.c.length),BB(w.c[0],8))),e=new km,a=new Np,DH(e,(l1(0,i.c.length),BB(i.c[0],8))),h=1;h<i.c.length-2;h+=2)l1(h,i.c.length),c=BB(i.c[h],8),l=qPn((l1(h-1,i.c.length),BB(i.c[h-1],8)),c,(l1(h+1,i.c.length),BB(i.c[h+1],8)),(l1(h+2,i.c.length),BB(i.c[h+2],8))),isFinite(l.a)&&isFinite(l.b)?r5(e,l,e.c.b,e.c):r5(e,c,e.c.b,e.c);for(DH(e,BB(xq(i,i.c.length-1),8)),WB(a,(l1(0,u.c.length),BB(u.c[0],8))),f=1;f<u.c.length-2;f+=2)l1(f,u.c.length),c=BB(u.c[f],8),l=qPn((l1(f-1,u.c.length),BB(u.c[f-1],8)),c,(l1(f+1,u.c.length),BB(u.c[f+1],8)),(l1(f+2,u.c.length),BB(u.c[f+2],8))),isFinite(l.a)&&isFinite(l.b)?a.c[a.c.length]=l:a.c[a.c.length]=c;for(WB(a,BB(xq(u,u.c.length-1),8)),o=a.c.length-1;o>=0;o--)DH(e,(l1(o,a.c.length),BB(a.c[o],8)));return e}function WXn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b;if(a=!0,f=null,i=null,r=null,t=!1,b=kAt,s=null,c=null,(o=Vgn(n,u=0,AAt,$At))<n.length&&(b1(o,n.length),58==n.charCodeAt(o))&&(f=n.substr(u,o-u),u=o+1),e=null!=f&&xT(jAt,f.toLowerCase())){if(-1==(o=n.lastIndexOf("!/")))throw Hp(new _y("no archive separator"));a=!0,i=fx(n,u,++o),u=o}else u>=0&&mK(n.substr(u,"//".length),"//")?(o=Vgn(n,u+=2,LAt,NAt),i=n.substr(u,o-u),u=o):null==f||u!=n.length&&(b1(u,n.length),47==n.charCodeAt(u))||(a=!1,-1==(o=yN(n,YTn(35),u))&&(o=n.length),i=n.substr(u,o-u),u=o);if(!e&&u<n.length&&(b1(u,n.length),47==n.charCodeAt(u))&&(o=Vgn(n,u+1,LAt,NAt),(h=n.substr(u+1,o-(u+1))).length>0&&58==fV(h,h.length-1)&&(r=h,u=o)),u<n.length&&(b1(u,n.length),47==n.charCodeAt(u))&&(++u,t=!0),u<n.length&&(b1(u,n.length),63!=n.charCodeAt(u))&&(b1(u,n.length),35!=n.charCodeAt(u))){for(l=new Np;u<n.length&&(b1(u,n.length),63!=n.charCodeAt(u))&&(b1(u,n.length),35!=n.charCodeAt(u));)o=Vgn(n,u,LAt,NAt),WB(l,n.substr(u,o-u)),(u=o)<n.length&&(b1(u,n.length),47==n.charCodeAt(u))&&(Qhn(n,++u)||(l.c[l.c.length]=""));Qgn(l,b=x8(Qtt,sVn,2,l.c.length,6,1))}return u<n.length&&(b1(u,n.length),63==n.charCodeAt(u))&&(-1==(o=lx(n,35,++u))&&(o=n.length),s=n.substr(u,o-u),u=o),u<n.length&&(c=nO(n,++u)),wGn(a,f,i,r,b,s),new rRn(a,f,i,r,t,b,s,c)}function VXn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C,I,O,A,$;for(O=new Np,w=new Wb(t.b);w.a<w.c.c.length;)for(k=new Wb(BB(n0(w),29).a);k.a<k.c.c.length;){for((y=BB(n0(k),10)).p=-1,l=_Vn,T=_Vn,S=new Wb(y.j);S.a<S.c.c.length;){for(c=new Wb((M=BB(n0(S),11)).e);c.a<c.c.c.length;)i=BB(n0(c),17),P=BB(mMn(i,(HXn(),bpt)),19).a,l=e.Math.max(l,P);for(r=new Wb(M.g);r.a<r.c.c.length;)i=BB(n0(r),17),P=BB(mMn(i,(HXn(),bpt)),19).a,T=e.Math.max(T,P)}hon(y,Xmt,iln(l)),hon(y,Wmt,iln(T))}for(p=0,b=new Wb(t.b);b.a<b.c.c.length;)for(k=new Wb(BB(n0(b),29).a);k.a<k.c.c.length;)(y=BB(n0(k),10)).p<0&&((I=new rm).b=p++,jRn(n,y,I),O.c[O.c.length]=I);for(E=sx(O.c.length),f=sx(O.c.length),u=0;u<O.c.length;u++)WB(E,new Np),WB(f,iln(0));for(vzn(t,O,E,f),A=BB(Qgn(O,x8(Ymt,O3n,257,O.c.length,0,1)),840),j=BB(Qgn(E,x8(Rnt,nZn,15,E.c.length,0,1)),192),h=x8(ANt,hQn,25,f.c.length,15,1),o=0;o<h.length;o++)h[o]=(l1(o,f.c.length),BB(f.c[o],19)).a;for(v=0,m=new Np,s=0;s<A.length;s++)0==h[s]&&WB(m,A[s]);for(g=x8(ANt,hQn,25,A.length,15,1);0!=m.c.length;)for(g[(I=BB(s6(m,0),257)).b]=v++;!j[I.b].dc();)--h[($=BB(j[I.b].$c(0),257)).b],0==h[$.b]&&(m.c[m.c.length]=$);for(n.a=x8(Ymt,O3n,257,A.length,0,1),a=0;a<A.length;a++)for(d=A[a],C=g[a],n.a[C]=d,d.b=C,k=new Wb(d.e);k.a<k.c.c.length;)(y=BB(n0(k),10)).p=C;return n.a}function QXn(n){var t,e,i;if(n.d>=n.j)return n.a=-1,void(n.c=1);if(t=fV(n.i,n.d++),n.a=t,1!=n.b){switch(t){case 124:i=2;break;case 42:i=3;break;case 43:i=4;break;case 63:i=5;break;case 41:i=7;break;case 46:i=8;break;case 91:i=9;break;case 94:i=11;break;case 36:i=12;break;case 40:if(i=6,n.d>=n.j)break;if(63!=fV(n.i,n.d))break;if(++n.d>=n.j)throw Hp(new ak(kWn((u$(),p8n))));switch(t=fV(n.i,n.d++)){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 Hp(new ak(kWn((u$(),p8n))));if(61==(t=fV(n.i,n.d++)))i=16;else{if(33!=t)throw Hp(new ak(kWn((u$(),v8n))));i=17}break;case 35:for(;n.d<n.j&&41!=(t=fV(n.i,n.d++)););if(41!=t)throw Hp(new ak(kWn((u$(),m8n))));i=21;break;default:if(45==t||97<=t&&t<=122||65<=t&&t<=90){--n.d,i=22;break}if(40==t){i=23;break}throw Hp(new ak(kWn((u$(),p8n))))}break;case 92:if(i=10,n.d>=n.j)throw Hp(new ak(kWn((u$(),g8n))));n.a=fV(n.i,n.d++);break;default:i=0}n.c=i}else{switch(t){case 92:if(i=10,n.d>=n.j)throw Hp(new ak(kWn((u$(),g8n))));n.a=fV(n.i,n.d++);break;case 45:512==(512&n.e)&&n.d<n.j&&91==fV(n.i,n.d)?(++n.d,i=24):i=0;break;case 91:if(512!=(512&n.e)&&n.d<n.j&&58==fV(n.i,n.d)){++n.d,i=20;break}default:(64512&t)==HQn&&n.d<n.j&&56320==(64512&(e=fV(n.i,n.d)))&&(n.a=BQn+(t-HQn<<10)+e-56320,++n.d),i=0}n.c=i}}function YXn(n){var t,e,i,r,c,a,u,o,s,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P;if((j=BB(mMn(n,(HXn(),ept)),98))!=(QEn(),QCt)&&j!=YCt){for(s=new J6((lin((b=(w=n.b).c.length)+2,NVn),ttn(rbn(rbn(5,b+2),(b+2)/10|0)))),d=new J6((lin(b+2,NVn),ttn(rbn(rbn(5,b+2),(b+2)/10|0)))),WB(s,new xp),WB(s,new xp),WB(d,new Np),WB(d,new Np),k=new Np,t=0;t<b;t++)for(l1(t,w.c.length),e=BB(w.c[t],29),l1(t,s.c.length),E=BB(s.c[t],83),g=new xp,s.c[s.c.length]=g,l1(t,d.c.length),M=BB(d.c[t],15),v=new Np,d.c[d.c.length]=v,r=new Wb(e.a);r.a<r.c.c.length;)if(cln(i=BB(n0(r),10)))k.c[k.c.length]=i;else{for(o=new oz(ZL(fbn(i).a.Kc(),new h));dAn(o);)cln(S=(a=BB(U5(o),17)).c.i)&&((T=BB(E.xc(mMn(S,(hWn(),dlt))),10))||(T=oIn(n,S),E.zc(mMn(S,dlt),T),M.Fc(T)),SZ(a,BB(xq(T.j,1),11)));for(u=new oz(ZL(lbn(i).a.Kc(),new h));dAn(u);)cln(P=(a=BB(U5(u),17)).d.i)&&((p=BB(RX(g,mMn(P,(hWn(),dlt))),10))||(p=oIn(n,P),VW(g,mMn(P,dlt),p),v.c[v.c.length]=p),MZ(a,BB(xq(p.j,0),11)))}for(f=0;f<d.c.length;f++)if(l1(f,d.c.length),!(m=BB(d.c[f],15)).dc())for(l=null,0==f?(l=new HX(n),LZ(0,w.c.length),MS(w.c,0,l)):f==s.c.length-1?(l=new HX(n),w.c[w.c.length]=l):(l1(f-1,w.c.length),l=BB(w.c[f-1],29)),c=m.Kc();c.Ob();)PZ(BB(c.Pb(),10),l);for(y=new Wb(k);y.a<y.c.c.length;)PZ(BB(n0(y),10),null);hon(n,(hWn(),Wft),k)}}function JXn(n,t,e){var i,r,c,a,u,o,s,f,l,b,w,d,g,p,v,m,y,k,j;if(OTn(e,"Coffman-Graham Layering",1),0!=t.a.c.length){for(j=BB(mMn(t,(HXn(),mgt)),19).a,o=0,a=0,b=new Wb(t.a);b.a<b.c.c.length;)for((l=BB(n0(b),10)).p=o++,c=new oz(ZL(lbn(l).a.Kc(),new h));dAn(c);)(r=BB(U5(c),17)).p=a++;for(n.d=x8($Nt,ZYn,25,o,16,1),n.a=x8($Nt,ZYn,25,a,16,1),n.b=x8(ANt,hQn,25,o,15,1),n.e=x8(ANt,hQn,25,o,15,1),n.f=x8(ANt,hQn,25,o,15,1),win(n.c),rEn(n,t),d=new Xz(new Dd(n)),k=new Wb(t.a);k.a<k.c.c.length;){for(c=new oz(ZL(fbn(m=BB(n0(k),10)).a.Kc(),new h));dAn(c);)r=BB(U5(c),17),n.a[r.p]||++n.b[m.p];0==n.b[m.p]&&F8(eMn(d,m))}for(u=0;0!=d.b.c.length;)for(m=BB(mnn(d),10),n.f[m.p]=u++,c=new oz(ZL(lbn(m).a.Kc(),new h));dAn(c);)r=BB(U5(c),17),n.a[r.p]||(p=r.d.i,--n.b[p.p],JIn(n.c,p,iln(n.f[m.p])),0==n.b[p.p]&&F8(eMn(d,p)));for(w=new Xz(new Rd(n)),y=new Wb(t.a);y.a<y.c.c.length;){for(c=new oz(ZL(lbn(m=BB(n0(y),10)).a.Kc(),new h));dAn(c);)r=BB(U5(c),17),n.a[r.p]||++n.e[m.p];0==n.e[m.p]&&F8(eMn(w,m))}for(i=r1(t,f=new Np);0!=w.b.c.length;)for(v=BB(mnn(w),10),(i.a.c.length>=j||!Ndn(v,i))&&(i=r1(t,f)),PZ(v,i),c=new oz(ZL(fbn(v).a.Kc(),new h));dAn(c);)r=BB(U5(c),17),n.a[r.p]||(g=r.c.i,--n.e[g.p],0==n.e[g.p]&&F8(eMn(w,g)));for(s=f.c.length-1;s>=0;--s)WB(t.b,(l1(s,f.c.length),BB(f.c[s],29)));t.a.c=x8(Ant,HWn,1,0,5,1),HSn(e)}else HSn(e)}function ZXn(n){var t,e,i,r,c,a,u,o;for(n.b=1,QXn(n),t=null,0==n.c&&94==n.a?(QXn(n),wWn(),wWn(),Yxn(t=new M0(4),0,unt),a=new M0(4)):(wWn(),wWn(),a=new M0(4)),r=!0;1!=(o=n.c);){if(0==o&&93==n.a&&!r){t&&(WGn(t,a),a=t);break}if(e=n.a,i=!1,10==o)switch(e){case 100:case 68:case 119:case 87:case 115:case 83:sHn(a,d_n(e)),i=!0;break;case 105:case 73:case 99:case 67:sHn(a,d_n(e)),(e=-1)<0&&(i=!0);break;case 112:case 80:if(!(u=DIn(n,e)))throw Hp(new ak(kWn((u$(),O8n))));sHn(a,u),i=!0;break;default:e=qDn(n)}else if(24==o&&!r){if(t&&(WGn(t,a),a=t),WGn(a,ZXn(n)),0!=n.c||93!=n.a)throw Hp(new ak(kWn((u$(),N8n))));break}if(QXn(n),!i){if(0==o){if(91==e)throw Hp(new ak(kWn((u$(),x8n))));if(93==e)throw Hp(new ak(kWn((u$(),D8n))));if(45==e&&!r&&93!=n.a)throw Hp(new ak(kWn((u$(),R8n))))}if(0!=n.c||45!=n.a||45==e&&r)Yxn(a,e,e);else{if(QXn(n),1==(o=n.c))throw Hp(new ak(kWn((u$(),$8n))));if(0==o&&93==n.a)Yxn(a,e,e),Yxn(a,45,45);else{if(0==o&&93==n.a||24==o)throw Hp(new ak(kWn((u$(),R8n))));if(c=n.a,0==o){if(91==c)throw Hp(new ak(kWn((u$(),x8n))));if(93==c)throw Hp(new ak(kWn((u$(),D8n))));if(45==c)throw Hp(new ak(kWn((u$(),R8n))))}else 10==o&&(c=qDn(n));if(QXn(n),e>c)throw Hp(new ak(kWn((u$(),F8n))));Yxn(a,e,c)}}}r=!1}if(1==n.c)throw Hp(new ak(kWn((u$(),$8n))));return T$n(a),qHn(a),n.b=0,QXn(n),a}function nWn(n){V$n(n.c,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#decimal"])),V$n(n.d,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#integer"])),V$n(n.e,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#boolean"])),V$n(n.f,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EBoolean",t8n,"EBoolean:Object"])),V$n(n.i,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#byte"])),V$n(n.g,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#hexBinary"])),V$n(n.j,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EByte",t8n,"EByte:Object"])),V$n(n.n,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EChar",t8n,"EChar:Object"])),V$n(n.t,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#double"])),V$n(n.u,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EDouble",t8n,"EDouble:Object"])),V$n(n.F,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#float"])),V$n(n.G,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EFloat",t8n,"EFloat:Object"])),V$n(n.I,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#int"])),V$n(n.J,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EInt",t8n,"EInt:Object"])),V$n(n.N,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#long"])),V$n(n.O,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"ELong",t8n,"ELong:Object"])),V$n(n.Z,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#short"])),V$n(n.$,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EShort",t8n,"EShort:Object"])),V$n(n._,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#string"]))}function tWn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C;if(1==n.c.length)return l1(0,n.c.length),BB(n.c[0],135);if(n.c.length<=0)return new P6;for(s=new Wb(n);s.a<s.c.c.length;){for(u=BB(n0(s),135),m=0,d=DWn,g=DWn,b=_Vn,w=_Vn,v=spn(u.b,0);v.b!=v.d.c;)p=BB(b3(v),86),m+=BB(mMn(p,(CAn(),$kt)),19).a,d=e.Math.min(d,p.e.a),g=e.Math.min(g,p.e.b),b=e.Math.max(b,p.e.a+p.f.a),w=e.Math.max(w,p.e.b+p.f.b);hon(u,(CAn(),$kt),iln(m)),hon(u,(qqn(),nkt),new xC(d,g)),hon(u,Zyt,new xC(b,w))}for(SQ(),m$(n,new ga),qan(k=new P6,(l1(0,n.c.length),BB(n.c[0],94))),l=0,S=0,h=new Wb(n);h.a<h.c.c.length;)u=BB(n0(h),135),j=XR(B$(BB(mMn(u,(qqn(),Zyt)),8)),BB(mMn(u,nkt),8)),l=e.Math.max(l,j.a),S+=j.a*j.b;for(l=e.Math.max(l,e.Math.sqrt(S)*Gy(MD(mMn(k,(CAn(),jkt))))),P=0,C=0,f=0,t=E=Gy(MD(mMn(k,xkt))),o=new Wb(n);o.a<o.c.c.length;)u=BB(n0(o),135),P+(j=XR(B$(BB(mMn(u,(qqn(),Zyt)),8)),BB(mMn(u,nkt),8))).a>l&&(P=0,C+=f+E,f=0),ELn(k,u,P,C),t=e.Math.max(t,P+j.a),f=e.Math.max(f,j.b),P+=j.a+E;for(y=new xp,i=new xp,M=new Wb(n);M.a<M.c.c.length;)for(r=qy(TD(mMn(T=BB(n0(M),135),(sWn(),lSt)))),a=(T.q?T.q:het).vc().Kc();a.Ob();)hU(y,(c=BB(a.Pb(),42)).cd())?GI(BB(c.cd(),146).wg())!==GI(c.dd())&&(r&&hU(i,c.cd())?($T(),BB(c.cd(),146).tg()):(VW(y,BB(c.cd(),146),c.dd()),hon(k,BB(c.cd(),146),c.dd()),r&&VW(i,BB(c.cd(),146),c.dd()))):(VW(y,BB(c.cd(),146),c.dd()),hon(k,BB(c.cd(),146),c.dd()));return k}function eWn(){eWn=O,RXn(),JIn(put=new pJ,(kUn(),dIt),wIt),JIn(put,MIt,wIt),JIn(put,gIt,wIt),JIn(put,jIt,wIt),JIn(put,kIt,wIt),JIn(put,mIt,wIt),JIn(put,jIt,dIt),JIn(put,wIt,hIt),JIn(put,dIt,hIt),JIn(put,MIt,hIt),JIn(put,gIt,hIt),JIn(put,yIt,hIt),JIn(put,jIt,hIt),JIn(put,kIt,hIt),JIn(put,mIt,hIt),JIn(put,bIt,hIt),JIn(put,wIt,EIt),JIn(put,dIt,EIt),JIn(put,hIt,EIt),JIn(put,MIt,EIt),JIn(put,gIt,EIt),JIn(put,yIt,EIt),JIn(put,jIt,EIt),JIn(put,bIt,EIt),JIn(put,TIt,EIt),JIn(put,kIt,EIt),JIn(put,pIt,EIt),JIn(put,mIt,EIt),JIn(put,dIt,MIt),JIn(put,gIt,MIt),JIn(put,jIt,MIt),JIn(put,mIt,MIt),JIn(put,dIt,gIt),JIn(put,MIt,gIt),JIn(put,jIt,gIt),JIn(put,gIt,gIt),JIn(put,kIt,gIt),JIn(put,wIt,fIt),JIn(put,dIt,fIt),JIn(put,hIt,fIt),JIn(put,EIt,fIt),JIn(put,MIt,fIt),JIn(put,gIt,fIt),JIn(put,yIt,fIt),JIn(put,jIt,fIt),JIn(put,TIt,fIt),JIn(put,bIt,fIt),JIn(put,mIt,fIt),JIn(put,kIt,fIt),JIn(put,vIt,fIt),JIn(put,wIt,TIt),JIn(put,dIt,TIt),JIn(put,hIt,TIt),JIn(put,MIt,TIt),JIn(put,gIt,TIt),JIn(put,yIt,TIt),JIn(put,jIt,TIt),JIn(put,bIt,TIt),JIn(put,mIt,TIt),JIn(put,pIt,TIt),JIn(put,vIt,TIt),JIn(put,dIt,bIt),JIn(put,MIt,bIt),JIn(put,gIt,bIt),JIn(put,jIt,bIt),JIn(put,TIt,bIt),JIn(put,mIt,bIt),JIn(put,kIt,bIt),JIn(put,wIt,lIt),JIn(put,dIt,lIt),JIn(put,hIt,lIt),JIn(put,MIt,lIt),JIn(put,gIt,lIt),JIn(put,yIt,lIt),JIn(put,jIt,lIt),JIn(put,bIt,lIt),JIn(put,mIt,lIt),JIn(put,dIt,kIt),JIn(put,hIt,kIt),JIn(put,EIt,kIt),JIn(put,gIt,kIt),JIn(put,wIt,pIt),JIn(put,dIt,pIt),JIn(put,EIt,pIt),JIn(put,MIt,pIt),JIn(put,gIt,pIt),JIn(put,yIt,pIt),JIn(put,jIt,pIt),JIn(put,jIt,vIt),JIn(put,gIt,vIt),JIn(put,bIt,wIt),JIn(put,bIt,MIt),JIn(put,bIt,hIt),JIn(put,yIt,wIt),JIn(put,yIt,dIt),JIn(put,yIt,EIt)}function iWn(n,t){switch(n.e){case 0:case 2:case 4:case 6:case 42:case 44:case 46:case 48:case 8:case 10:case 12:case 14:case 16:case 18:case 20:case 22:case 24:case 26:case 28:case 30:case 32:case 34:case 36:case 38:return new zQ(n.b,n.a,t,n.c);case 1:return new LL(n.a,t,Awn(t.Tg(),n.c));case 43:return new xL(n.a,t,Awn(t.Tg(),n.c));case 3:return new $L(n.a,t,Awn(t.Tg(),n.c));case 45:return new NL(n.a,t,Awn(t.Tg(),n.c));case 41:return new y9(BB(Ikn(n.c),26),n.a,t,Awn(t.Tg(),n.c));case 50:return new yin(BB(Ikn(n.c),26),n.a,t,Awn(t.Tg(),n.c));case 5:return new iK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 47:return new rK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 7:return new eU(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 49:return new eK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 9:return new FL(n.a,t,Awn(t.Tg(),n.c));case 11:return new _L(n.a,t,Awn(t.Tg(),n.c));case 13:return new KL(n.a,t,Awn(t.Tg(),n.c));case 15:return new MH(n.a,t,Awn(t.Tg(),n.c));case 17:return new BL(n.a,t,Awn(t.Tg(),n.c));case 19:return new RL(n.a,t,Awn(t.Tg(),n.c));case 21:return new DL(n.a,t,Awn(t.Tg(),n.c));case 23:return new yH(n.a,t,Awn(t.Tg(),n.c));case 25:return new fK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 27:return new hK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 29:return new oK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 31:return new cK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 33:return new sK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 35:return new uK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 37:return new aK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 39:return new iU(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 40:return new Ecn(t,Awn(t.Tg(),n.c));default:throw Hp(new dy("Unknown feature style: "+n.e))}}function rWn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;switch(OTn(e,"Brandes & Koepf node placement",1),n.a=t,n.c=FFn(t),i=BB(mMn(t,(HXn(),Ngt)),274),b=qy(TD(mMn(t,xgt))),n.d=i==(Bjn(),Qht)&&!b||i==Xht,Jqn(n,t),y=null,k=null,g=null,p=null,lin(4,AVn),d=new J6(4),BB(mMn(t,Ngt),274).g){case 3:g=new qKn(t,n.c.d,(oZ(),ryt),(gJ(),nyt)),d.c[d.c.length]=g;break;case 1:p=new qKn(t,n.c.d,(oZ(),cyt),(gJ(),nyt)),d.c[d.c.length]=p;break;case 4:y=new qKn(t,n.c.d,(oZ(),ryt),(gJ(),tyt)),d.c[d.c.length]=y;break;case 2:k=new qKn(t,n.c.d,(oZ(),cyt),(gJ(),tyt)),d.c[d.c.length]=k;break;default:g=new qKn(t,n.c.d,(oZ(),ryt),(gJ(),nyt)),p=new qKn(t,n.c.d,cyt,nyt),y=new qKn(t,n.c.d,ryt,tyt),k=new qKn(t,n.c.d,cyt,tyt),d.c[d.c.length]=y,d.c[d.c.length]=k,d.c[d.c.length]=g,d.c[d.c.length]=p}for(r=new iC(t,n.c),u=new Wb(d);u.a<u.c.c.length;)PXn(r,c=BB(n0(u),180),n.b),WBn(c);for(l=new Jyn(t,n.c),o=new Wb(d);o.a<o.c.c.length;)Hzn(l,c=BB(n0(o),180));if(e.n)for(s=new Wb(d);s.a<s.c.c.length;)OH(e,(c=BB(n0(s),180))+" size is "+v$n(c));if(f=null,n.d&&IBn(t,h=FUn(n,d,n.c.d),e)&&(f=h),!f)for(s=new Wb(d);s.a<s.c.c.length;)IBn(t,c=BB(n0(s),180),e)&&(!f||v$n(f)>v$n(c))&&(f=c);for(!f&&(l1(0,d.c.length),f=BB(d.c[0],180)),w=new Wb(t.b);w.a<w.c.c.length;)for(m=new Wb(BB(n0(w),29).a);m.a<m.c.c.length;)(v=BB(n0(m),10)).n.b=Gy(f.p[v.p])+Gy(f.d[v.p]);for(e.n&&(OH(e,"Chosen node placement: "+f),OH(e,"Blocks: "+xOn(f)),OH(e,"Classes: "+UAn(f,e)),OH(e,"Marked edges: "+n.b)),a=new Wb(d);a.a<a.c.c.length;)(c=BB(n0(a),180)).g=null,c.b=null,c.a=null,c.d=null,c.j=null,c.i=null,c.p=null;zrn(n.c),n.b.a.$b(),HSn(e)}function cWn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T;for(a=new YT,v=BB(mMn(e,(HXn(),Udt)),103),w=0,Frn(a,(!t.a&&(t.a=new eU(UOt,t,10,11)),t.a));0!=a.b;)s=BB(0==a.b?null:(Px(0!=a.b),Atn(a,a.a.a)),33),(GI(ZAn(t,Ldt))!==GI((mon(),Nvt))||GI(ZAn(t,Gdt))===GI((Vvn(),Eht))||GI(ZAn(t,Gdt))===GI((Vvn(),kht))||qy(TD(ZAn(t,xdt)))||GI(ZAn(t,Cdt))!==GI((Bfn(),wut)))&&!qy(TD(ZAn(s,$dt)))&&Ypn(s,(hWn(),wlt),iln(w++)),!qy(TD(ZAn(s,Ggt)))&&(f=0!=(!s.a&&(s.a=new eU(UOt,s,10,11)),s.a).i,b=kTn(s),l=GI(ZAn(s,sgt))===GI((ufn(),pCt)),g=null,(T=!P8(s,(sWn(),eSt))||mK(SD(ZAn(s,eSt)),w1n))&&l&&(f||b)&&(hon(g=kFn(s),Udt,v),Lx(g,gpt)&&My(new uwn(Gy(MD(mMn(g,gpt)))),g),0!=BB(ZAn(s,Fgt),174).gc()&&(h=g,JT(new Rq(null,(!s.c&&(s.c=new eU(XOt,s,9,9)),new w1(s.c,16))),new Xw(h)),mDn(s,g))),m=e,(y=BB(RX(n.a,JJ(s)),10))&&(m=y.e),d=wzn(n,s,m),g&&(d.e=g,g.e=d,Frn(a,(!s.a&&(s.a=new eU(UOt,s,10,11)),s.a))));for(w=0,r5(a,t,a.c.b,a.c);0!=a.b;){for(o=new AL((!(c=BB(0==a.b?null:(Px(0!=a.b),Atn(a,a.a.a)),33)).b&&(c.b=new eU(_Ot,c,12,3)),c.b));o.e!=o.i.gc();)tKn(u=BB(kpn(o),79)),(GI(ZAn(t,Ldt))!==GI((mon(),Nvt))||GI(ZAn(t,Gdt))===GI((Vvn(),Eht))||GI(ZAn(t,Gdt))===GI((Vvn(),kht))||qy(TD(ZAn(t,xdt)))||GI(ZAn(t,Cdt))!==GI((Bfn(),wut)))&&Ypn(u,(hWn(),wlt),iln(w++)),j=PTn(BB(Wtn((!u.b&&(u.b=new hK(KOt,u,4,7)),u.b),0),82)),E=PTn(BB(Wtn((!u.c&&(u.c=new hK(KOt,u,5,8)),u.c),0),82)),qy(TD(ZAn(u,Ggt)))||qy(TD(ZAn(j,Ggt)))||qy(TD(ZAn(E,Ggt)))||(p=c,QIn(u)&&qy(TD(ZAn(j,wgt)))&&qy(TD(ZAn(u,dgt)))||Ctn(E,j)?p=j:Ctn(j,E)&&(p=E),m=e,(y=BB(RX(n.a,p),10))&&(m=y.e),hon(uWn(n,u,p,m),(hWn(),Fft),Lxn(n,u,t,e)));if(l=GI(ZAn(c,sgt))===GI((ufn(),pCt)))for(r=new AL((!c.a&&(c.a=new eU(UOt,c,10,11)),c.a));r.e!=r.i.gc();)T=!P8(i=BB(kpn(r),33),(sWn(),eSt))||mK(SD(ZAn(i,eSt)),w1n),k=GI(ZAn(i,sgt))===GI(pCt),T&&k&&r5(a,i,a.c.b,a.c)}}function aWn(n,t,e,i,r,c){var a,u,o,s,h,f,l;switch(t){case 71:a=i.q.getFullYear()-sQn>=-1900?1:0,oO(n,e>=4?Pun(Gk(Qtt,1),sVn,2,6,[fQn,lQn])[a]:Pun(Gk(Qtt,1),sVn,2,6,["BC","AD"])[a]);break;case 121:opn(n,e,i);break;case 77:XKn(n,e,i);break;case 107:Enn(n,0==(u=r.q.getHours())?24:u,e);break;case 83:RLn(n,e,r);break;case 69:o=i.q.getDay(),oO(n,5==e?Pun(Gk(Qtt,1),sVn,2,6,["S","M","T","W","T","F","S"])[o]:4==e?Pun(Gk(Qtt,1),sVn,2,6,[bQn,wQn,dQn,gQn,pQn,vQn,mQn])[o]:Pun(Gk(Qtt,1),sVn,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[o]);break;case 97:r.q.getHours()>=12&&r.q.getHours()<24?oO(n,Pun(Gk(Qtt,1),sVn,2,6,["AM","PM"])[1]):oO(n,Pun(Gk(Qtt,1),sVn,2,6,["AM","PM"])[0]);break;case 104:Enn(n,0==(s=r.q.getHours()%12)?12:s,e);break;case 75:Enn(n,r.q.getHours()%12,e);break;case 72:Enn(n,r.q.getHours(),e);break;case 99:h=i.q.getDay(),5==e?oO(n,Pun(Gk(Qtt,1),sVn,2,6,["S","M","T","W","T","F","S"])[h]):4==e?oO(n,Pun(Gk(Qtt,1),sVn,2,6,[bQn,wQn,dQn,gQn,pQn,vQn,mQn])[h]):3==e?oO(n,Pun(Gk(Qtt,1),sVn,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[h]):Enn(n,h,1);break;case 76:f=i.q.getMonth(),5==e?oO(n,Pun(Gk(Qtt,1),sVn,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[f]):4==e?oO(n,Pun(Gk(Qtt,1),sVn,2,6,[YVn,JVn,ZVn,nQn,tQn,eQn,iQn,rQn,cQn,aQn,uQn,oQn])[f]):3==e?oO(n,Pun(Gk(Qtt,1),sVn,2,6,["Jan","Feb","Mar","Apr",tQn,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[f]):Enn(n,f+1,e);break;case 81:l=i.q.getMonth()/3|0,oO(n,e<4?Pun(Gk(Qtt,1),sVn,2,6,["Q1","Q2","Q3","Q4"])[l]:Pun(Gk(Qtt,1),sVn,2,6,["1st quarter","2nd quarter","3rd quarter","4th quarter"])[l]);break;case 100:Enn(n,i.q.getDate(),e);break;case 109:Enn(n,r.q.getMinutes(),e);break;case 115:Enn(n,r.q.getSeconds(),e);break;case 122:oO(n,e<4?c.c[0]:c.c[1]);break;case 118:oO(n,c.b);break;case 90:oO(n,e<3?nIn(c):3==e?wIn(c):dIn(c.a));break;default:return!1}return!0}function uWn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C;if(tKn(t),o=BB(Wtn((!t.b&&(t.b=new hK(KOt,t,4,7)),t.b),0),82),h=BB(Wtn((!t.c&&(t.c=new hK(KOt,t,5,8)),t.c),0),82),u=PTn(o),s=PTn(h),a=0==(!t.a&&(t.a=new eU(FOt,t,6,6)),t.a).i?null:BB(Wtn((!t.a&&(t.a=new eU(FOt,t,6,6)),t.a),0),202),j=BB(RX(n.a,u),10),S=BB(RX(n.a,s),10),E=null,P=null,cL(o,186)&&(cL(k=BB(RX(n.a,o),299),11)?E=BB(k,11):cL(k,10)&&(j=BB(k,10),E=BB(xq(j.j,0),11))),cL(h,186)&&(cL(M=BB(RX(n.a,h),299),11)?P=BB(M,11):cL(M,10)&&(S=BB(M,10),P=BB(xq(S.j,0),11))),!j||!S)throw Hp(new ck("The source or the target of edge "+t+" 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(qan(d=new wY,t),hon(d,(hWn(),dlt),t),hon(d,(HXn(),vgt),null),b=BB(mMn(i,Zft),21),j==S&&b.Fc((bDn(),vft)),E||(ain(),y=qvt,T=null,a&&vA(BB(mMn(j,ept),98))&&(Y3(T=new xC(a.j,a.k),XJ(t)),t5(T,e),Ctn(s,u)&&(y=Hvt,UR(T,j.n))),E=dHn(j,T,y,i)),P||(ain(),y=Hvt,C=null,a&&vA(BB(mMn(S,ept),98))&&(Y3(C=new xC(a.b,a.c),XJ(t)),t5(C,e)),P=dHn(S,C,y,vW(S))),SZ(d,E),MZ(d,P),(E.e.c.length>1||E.g.c.length>1||P.e.c.length>1||P.g.c.length>1)&&b.Fc((bDn(),bft)),l=new AL((!t.n&&(t.n=new eU(zOt,t,1,7)),t.n));l.e!=l.i.gc();)if(!qy(TD(ZAn(f=BB(kpn(l),137),Ggt)))&&f.a)switch(g=Hhn(f),WB(d.b,g),BB(mMn(g,Ydt),272).g){case 1:case 2:b.Fc((bDn(),fft));break;case 0:b.Fc((bDn(),sft)),hon(g,Ydt,(Rtn(),zPt))}if(c=BB(mMn(i,qdt),314),p=BB(mMn(i,_gt),315),r=c==(Oin(),sht)||p==(Nvn(),pvt),a&&0!=(!a.a&&(a.a=new $L(xOt,a,5)),a.a).i&&r){for(v=qSn(a),w=new km,m=spn(v,0);m.b!=m.d.c;)DH(w,new wA(BB(b3(m),8)));hon(d,glt,w)}return d}function oWn(n){n.gb||(n.gb=!0,n.b=kan(n,0),Rrn(n.b,18),Krn(n.b,19),n.a=kan(n,1),Rrn(n.a,1),Krn(n.a,2),Krn(n.a,3),Krn(n.a,4),Krn(n.a,5),n.o=kan(n,2),Rrn(n.o,8),Rrn(n.o,9),Krn(n.o,10),Krn(n.o,11),Krn(n.o,12),Krn(n.o,13),Krn(n.o,14),Krn(n.o,15),Krn(n.o,16),Krn(n.o,17),Krn(n.o,18),Krn(n.o,19),Krn(n.o,20),Krn(n.o,21),Krn(n.o,22),Krn(n.o,23),otn(n.o),otn(n.o),otn(n.o),otn(n.o),otn(n.o),otn(n.o),otn(n.o),otn(n.o),otn(n.o),otn(n.o),n.p=kan(n,3),Rrn(n.p,2),Rrn(n.p,3),Rrn(n.p,4),Rrn(n.p,5),Krn(n.p,6),Krn(n.p,7),otn(n.p),otn(n.p),n.q=kan(n,4),Rrn(n.q,8),n.v=kan(n,5),Krn(n.v,9),otn(n.v),otn(n.v),otn(n.v),n.w=kan(n,6),Rrn(n.w,2),Rrn(n.w,3),Rrn(n.w,4),Krn(n.w,5),n.B=kan(n,7),Krn(n.B,1),otn(n.B),otn(n.B),otn(n.B),n.Q=kan(n,8),Krn(n.Q,0),otn(n.Q),n.R=kan(n,9),Rrn(n.R,1),n.S=kan(n,10),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),n.T=kan(n,11),Krn(n.T,10),Krn(n.T,11),Krn(n.T,12),Krn(n.T,13),Krn(n.T,14),otn(n.T),otn(n.T),n.U=kan(n,12),Rrn(n.U,2),Rrn(n.U,3),Krn(n.U,4),Krn(n.U,5),Krn(n.U,6),Krn(n.U,7),otn(n.U),n.V=kan(n,13),Krn(n.V,10),n.W=kan(n,14),Rrn(n.W,18),Rrn(n.W,19),Rrn(n.W,20),Krn(n.W,21),Krn(n.W,22),Krn(n.W,23),n.bb=kan(n,15),Rrn(n.bb,10),Rrn(n.bb,11),Rrn(n.bb,12),Rrn(n.bb,13),Rrn(n.bb,14),Rrn(n.bb,15),Rrn(n.bb,16),Krn(n.bb,17),otn(n.bb),otn(n.bb),n.eb=kan(n,16),Rrn(n.eb,2),Rrn(n.eb,3),Rrn(n.eb,4),Rrn(n.eb,5),Rrn(n.eb,6),Rrn(n.eb,7),Krn(n.eb,8),Krn(n.eb,9),n.ab=kan(n,17),Rrn(n.ab,0),Rrn(n.ab,1),n.H=kan(n,18),Krn(n.H,0),Krn(n.H,1),Krn(n.H,2),Krn(n.H,3),Krn(n.H,4),Krn(n.H,5),otn(n.H),n.db=kan(n,19),Krn(n.db,2),n.c=jan(n,20),n.d=jan(n,21),n.e=jan(n,22),n.f=jan(n,23),n.i=jan(n,24),n.g=jan(n,25),n.j=jan(n,26),n.k=jan(n,27),n.n=jan(n,28),n.r=jan(n,29),n.s=jan(n,30),n.t=jan(n,31),n.u=jan(n,32),n.fb=jan(n,33),n.A=jan(n,34),n.C=jan(n,35),n.D=jan(n,36),n.F=jan(n,37),n.G=jan(n,38),n.I=jan(n,39),n.J=jan(n,40),n.L=jan(n,41),n.M=jan(n,42),n.N=jan(n,43),n.O=jan(n,44),n.P=jan(n,45),n.X=jan(n,46),n.Y=jan(n,47),n.Z=jan(n,48),n.$=jan(n,49),n._=jan(n,50),n.cb=jan(n,51),n.K=jan(n,52))}function sWn(){var n,t;sWn=O,eSt=new up(w5n),mPt=new up(d5n),wvn(),iSt=new $O(W2n,rSt=CMt),new $p,cSt=new $O(VJn,null),aSt=new up(g5n),wEn(),fSt=EG(ZMt,Pun(Gk(qPt,1),$Vn,291,0,[VMt])),hSt=new $O(u3n,fSt),lSt=new $O(X2n,(hN(),!1)),Ffn(),bSt=new $O(J2n,wSt=BPt),Mbn(),vSt=new $O(y2n,mSt=ZPt),jSt=new $O(A4n,!1),ufn(),ESt=new $O(d2n,TSt=vCt),WSt=new WA(12),XSt=new $O(QJn,WSt),CSt=new $O(jZn,!1),ISt=new $O(m3n,!1),USt=new $O(MZn,!1),QEn(),uPt=new $O(EZn,oPt=YCt),gPt=new up(g3n),pPt=new up(pZn),vPt=new up(yZn),kPt=new up(kZn),ASt=new km,OSt=new $O(o3n,ASt),sSt=new $O(f3n,!1),MSt=new $O(l3n,!1),new up(p5n),LSt=new lm,$St=new $O(p3n,LSt),zSt=new $O(z2n,!1),new $p,yPt=new $O(v5n,1),new $O(m5n,!0),iln(0),new $O(y5n,iln(100)),new $O(k5n,!1),iln(0),new $O(j5n,iln(4e3)),iln(0),new $O(E5n,iln(400)),new $O(T5n,!1),new $O(M5n,!1),new $O(S5n,!0),new $O(P5n,!1),Fwn(),uSt=new $O(b5n,oSt=eOt),jPt=new $O(L2n,10),EPt=new $O(N2n,10),TPt=new $O(XJn,20),MPt=new $O(x2n,10),SPt=new $O(mZn,2),PPt=new $O(D2n,10),IPt=new $O(R2n,0),OPt=new $O(F2n,5),APt=new $O(K2n,1),$Pt=new $O(_2n,1),LPt=new $O(vZn,20),NPt=new $O(B2n,10),RPt=new $O(H2n,10),CPt=new up(q2n),DPt=new lA,xPt=new $O(v3n,DPt),YSt=new up(d3n),VSt=new $O(w3n,QSt=!1),xSt=new WA(5),NSt=new $O(Z2n,xSt),n$n(),t=BB(Vj(GCt),9),RSt=new YK(t,BB(SR(t,t.length),9),0),DSt=new $O(CZn,RSt),cpn(),ZSt=new $O(e3n,nPt=BCt),ePt=new up(i3n),iPt=new up(r3n),rPt=new up(c3n),tPt=new up(a3n),n=BB(Vj(YIt),9),_St=new YK(n,BB(SR(n,n.length),9),0),KSt=new $O(PZn,_St),GSt=nbn((n_n(),GIt)),qSt=new $O(SZn,GSt),HSt=new xC(0,0),BSt=new $O(BZn,HSt),FSt=new $O(Y2n,!1),Rtn(),gSt=new $O(s3n,pSt=zPt),dSt=new $O(TZn,!1),new up(C5n),iln(1),new $O(I5n,null),cPt=new up(b3n),sPt=new up(h3n),kUn(),wPt=new $O(U2n,dPt=PIt),aPt=new up(G2n),lIn(),lPt=nbn(rIt),fPt=new $O(IZn,lPt),hPt=new $O(n3n,!1),bPt=new $O(t3n,!0),SSt=new $O(V2n,!1),PSt=new $O(Q2n,!1),ySt=new $O(WJn,1),nMn(),new $O(O5n,kSt=aCt),JSt=!0}function hWn(){var n,t;hWn=O,dlt=new up(OZn),Fft=new up("coordinateOrigin"),Mlt=new up("processors"),_ft=new iR("compoundNode",(hN(),!1)),elt=new iR("insideConnections",!1),glt=new up("originalBendpoints"),plt=new up("originalDummyNodePosition"),vlt=new up("originalLabelEdge"),Plt=new up("representedLabels"),zft=new up("endLabels"),Uft=new up("endLabel.origin"),ult=new iR("labelSide",(Xyn(),MCt)),blt=new iR("maxEdgeThickness",0),Clt=new iR("reversed",!1),Slt=new up(AZn),hlt=new iR("longEdgeSource",null),flt=new iR("longEdgeTarget",null),slt=new iR("longEdgeHasLabelDummies",!1),olt=new iR("longEdgeBeforeLabelDummy",!1),Gft=new iR("edgeConstraint",(Jun(),Aht)),rlt=new up("inLayerLayoutUnit"),ilt=new iR("inLayerConstraint",(z7(),Pft)),clt=new iR("inLayerSuccessorConstraint",new Np),alt=new iR("inLayerSuccessorConstraintBetweenNonDummies",!1),Elt=new up("portDummy"),Bft=new iR("crossingHint",iln(0)),Zft=new iR("graphProperties",new YK(t=BB(Vj(Tft),9),BB(SR(t,t.length),9),0)),Qft=new iR("externalPortSide",(kUn(),PIt)),Yft=new iR("externalPortSize",new Gj),Wft=new up("externalPortReplacedDummies"),Vft=new up("externalPortReplacedDummy"),Xft=new iR("externalPortConnections",new YK(n=BB(Vj(FIt),9),BB(SR(n,n.length),9),0)),Tlt=new iR(dJn,0),xft=new up("barycenterAssociates"),Klt=new up("TopSideComments"),Dft=new up("BottomSideComments"),Kft=new up("CommentConnectionPort"),tlt=new iR("inputCollect",!1),klt=new iR("outputCollect",!1),qft=new iR("cyclic",!1),Hft=new up("crossHierarchyMap"),Rlt=new up("targetOffset"),new iR("splineLabelSize",new Gj),Alt=new up("spacings"),jlt=new iR("partitionConstraint",!1),Rft=new up("breakingPoint.info"),xlt=new up("splines.survivingEdge"),Nlt=new up("splines.route.start"),$lt=new up("splines.edgeChain"),ylt=new up("originalPortConstraints"),Olt=new up("selfLoopHolder"),Llt=new up("splines.nsPortY"),wlt=new up("modelOrder"),llt=new up("longEdgeTargetNode"),Jft=new iR(z1n,!1),Ilt=new iR(z1n,!1),nlt=new up("layerConstraints.hiddenNodes"),mlt=new up("layerConstraints.opposidePort"),Dlt=new up("targetNode.modelOrder")}function fWn(){fWn=O,_nn(),Sbt=new $O(U1n,Pbt=Sht),Gbt=new $O(X1n,(hN(),!1)),z2(),Vbt=new $O(W1n,Qbt=Aft),wwt=new $O(V1n,!1),dwt=new $O(Q1n,!0),Ult=new $O(Y1n,!1),U7(),Nwt=new $O(J1n,xwt=Kvt),iln(1),qwt=new $O(Z1n,iln(7)),Gwt=new $O(n0n,!1),zbt=new $O(t0n,!1),Vvn(),Tbt=new $O(e0n,Mbt=yht),TTn(),lwt=new $O(i0n,bwt=tvt),Tbn(),ewt=new $O(r0n,iwt=qlt),iln(-1),twt=new $O(c0n,iln(-1)),iln(-1),rwt=new $O(a0n,iln(-1)),iln(-1),cwt=new $O(u0n,iln(4)),iln(-1),uwt=new $O(o0n,iln(2)),sNn(),hwt=new $O(s0n,fwt=Ivt),iln(0),swt=new $O(h0n,iln(0)),Zbt=new $O(f0n,iln(DWn)),Oin(),jbt=new $O(l0n,Ebt=hht),ubt=new $O(b0n,!1),gbt=new $O(w0n,.1),ybt=new $O(d0n,!1),iln(-1),vbt=new $O(g0n,iln(-1)),iln(-1),mbt=new $O(p0n,iln(-1)),iln(0),obt=new $O(v0n,iln(40)),Kan(),bbt=new $O(m0n,wbt=Eft),sbt=new $O(y0n,hbt=kft),Nvn(),$wt=new $O(k0n,Lwt=gvt),jwt=new up(j0n),g7(),gwt=new $O(E0n,pwt=qht),Bjn(),mwt=new $O(T0n,ywt=Qht),new $p,Mwt=new $O(M0n,.3),Pwt=new up(S0n),bvn(),Cwt=new $O(P0n,Iwt=lvt),Hcn(),Nbt=new $O(C0n,xbt=Wvt),A6(),Dbt=new $O(I0n,Rbt=Zvt),Usn(),Kbt=new $O(O0n,_bt=rmt),Bbt=new $O(A0n,.2),$bt=new $O($0n,2),_wt=new $O(L0n,null),Bwt=new $O(N0n,10),Fwt=new $O(x0n,10),Hwt=new $O(D0n,20),iln(0),Dwt=new $O(R0n,iln(0)),iln(0),Rwt=new $O(K0n,iln(0)),iln(0),Kwt=new $O(_0n,iln(0)),Xlt=new $O(F0n,!1),JMn(),Qlt=new $O(B0n,Ylt=cft),V8(),Wlt=new $O(H0n,Vlt=aht),Xbt=new $O(q0n,!1),iln(0),Ubt=new $O(G0n,iln(16)),iln(0),Wbt=new $O(z0n,iln(5)),$un(),ldt=new $O(U0n,bdt=bmt),zwt=new $O(X0n,10),Wwt=new $O(W0n,1),uin(),edt=new $O(V0n,idt=ght),Ywt=new up(Q0n),ndt=iln(1),iln(0),Zwt=new $O(Y0n,ndt),dcn(),pdt=new $O(J0n,vdt=umt),wdt=new up(Z0n),odt=new $O(n2n,!0),adt=new $O(t2n,2),hdt=new $O(e2n,!0),gSn(),Obt=new $O(i2n,Abt=_ht),$Pn(),Cbt=new $O(r2n,Ibt=Zst),mon(),cbt=new $O(c2n,abt=Nvt),rbt=new $O(a2n,!1),Bfn(),Jlt=new $O(u2n,Zlt=wut),Mhn(),ebt=new $O(o2n,ibt=cvt),nbt=new $O(s2n,0),tbt=new $O(h2n,0),Jbt=jht,Ybt=sht,awt=nvt,owt=nvt,nwt=Ypt,ufn(),pbt=pCt,kbt=hht,dbt=hht,fbt=hht,lbt=pCt,Ewt=mvt,Twt=gvt,vwt=gvt,kwt=gvt,Swt=vvt,Awt=mvt,Owt=mvt,Mbn(),Fbt=JPt,Hbt=JPt,qbt=rmt,Lbt=YPt,Uwt=wmt,Xwt=lmt,Vwt=wmt,Qwt=lmt,rdt=wmt,cdt=lmt,Jwt=dht,tdt=ght,mdt=wmt,ydt=lmt,ddt=wmt,gdt=lmt,sdt=lmt,udt=lmt,fdt=lmt}function lWn(){lWn=O,rot=new nP("DIRECTION_PREPROCESSOR",0),tot=new nP("COMMENT_PREPROCESSOR",1),cot=new nP("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER",2),kot=new nP("INTERACTIVE_EXTERNAL_PORT_POSITIONER",3),Fot=new nP("PARTITION_PREPROCESSOR",4),Mot=new nP("LABEL_DUMMY_INSERTER",5),Uot=new nP("SELF_LOOP_PREPROCESSOR",6),Oot=new nP("LAYER_CONSTRAINT_PREPROCESSOR",7),Kot=new nP("PARTITION_MIDPROCESSOR",8),got=new nP("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),Not=new nP("NODE_PROMOTION",10),Iot=new nP("LAYER_CONSTRAINT_POSTPROCESSOR",11),_ot=new nP("PARTITION_POSTPROCESSOR",12),lot=new nP("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR",13),Wot=new nP("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR",14),Vut=new nP("BREAKING_POINT_INSERTER",15),Lot=new nP("LONG_EDGE_SPLITTER",16),Hot=new nP("PORT_SIDE_PROCESSOR",17),jot=new nP("INVERTED_PORT_PROCESSOR",18),Bot=new nP("PORT_LIST_SORTER",19),Qot=new nP("SORT_BY_INPUT_ORDER_OF_MODEL",20),Dot=new nP("NORTH_SOUTH_PORT_PREPROCESSOR",21),Qut=new nP("BREAKING_POINT_PROCESSOR",22),Rot=new nP(E1n,23),Yot=new nP(T1n,24),Got=new nP("SELF_LOOP_PORT_RESTORER",25),Vot=new nP("SINGLE_EDGE_GRAPH_WRAPPER",26),Eot=new nP("IN_LAYER_CONSTRAINT_PROCESSOR",27),sot=new nP("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR",28),Tot=new nP("LABEL_AND_NODE_SIZE_PROCESSOR",29),yot=new nP("INNERMOST_NODE_MARGIN_CALCULATOR",30),Xot=new nP("SELF_LOOP_ROUTER",31),Zut=new nP("COMMENT_NODE_MARGIN_CALCULATOR",32),uot=new nP("END_LABEL_PREPROCESSOR",33),Pot=new nP("LABEL_DUMMY_SWITCHER",34),Jut=new nP("CENTER_LABEL_MANAGEMENT_PROCESSOR",35),Cot=new nP("LABEL_SIDE_SELECTOR",36),vot=new nP("HYPEREDGE_DUMMY_MERGER",37),bot=new nP("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR",38),Aot=new nP("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR",39),dot=new nP("HIERARCHICAL_PORT_POSITION_PROCESSOR",40),eot=new nP("CONSTRAINTS_POSTPROCESSOR",41),not=new nP("COMMENT_POSTPROCESSOR",42),mot=new nP("HYPERNODE_PROCESSOR",43),wot=new nP("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER",44),$ot=new nP("LONG_EDGE_JOINER",45),zot=new nP("SELF_LOOP_POSTPROCESSOR",46),Yut=new nP("BREAKING_POINT_REMOVER",47),xot=new nP("NORTH_SOUTH_PORT_POSTPROCESSOR",48),pot=new nP("HORIZONTAL_COMPACTOR",49),Sot=new nP("LABEL_DUMMY_REMOVER",50),hot=new nP("FINAL_SPLINE_BENDPOINTS_CALCULATOR",51),oot=new nP("END_LABEL_SORTER",52),qot=new nP("REVERSED_EDGE_RESTORER",53),aot=new nP("END_LABEL_POSTPROCESSOR",54),fot=new nP("HIERARCHICAL_NODE_RESIZER",55),iot=new nP("DIRECTION_POSTPROCESSOR",56)}function bWn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C,I,O,A,$,L,N,x,D,R,K,_,F,B,H,q,G,z,U,X,W,V,Q,Y,J,Z,nn,tn,en,rn,cn,an,un,on;for(J=0,L=0,D=(O=t).length;L<D;++L)for(G=new Wb((C=O[L]).j);G.a<G.c.c.length;){for(U=0,o=new Wb((q=BB(n0(G),11)).g);o.a<o.c.c.length;)u=BB(n0(o),17),C.c!=u.d.i.c&&++U;U>0&&(n.a[q.p]=J++)}for(rn=0,N=0,R=(A=i).length;N<R;++N){for(K=0,G=new Wb((C=A[N]).j);G.a<G.c.c.length&&(q=BB(n0(G),11)).j==(kUn(),sIt);)for(o=new Wb(q.e);o.a<o.c.c.length;)if(u=BB(n0(o),17),C.c!=u.c.i.c){++K;break}for(F=0,X=new M2(C.j,C.j.c.length);X.b>0;){for(Px(X.b>0),U=0,o=new Wb((q=BB(X.a.Xb(X.c=--X.b),11)).e);o.a<o.c.c.length;)u=BB(n0(o),17),C.c!=u.c.i.c&&++U;U>0&&(q.j==(kUn(),sIt)?(n.a[q.p]=rn,++rn):(n.a[q.p]=rn+K+F,++F))}rn+=F}for(z=new xp,d=new fA,$=0,x=(I=t).length;$<x;++$)for(tn=new Wb((C=I[$]).j);tn.a<tn.c.c.length;)for(o=new Wb((nn=BB(n0(tn),11)).g);o.a<o.c.c.length;)if(an=(u=BB(n0(o),17)).d,C.c!=an.i.c)if(Z=BB(qI(AY(z.f,nn)),467),cn=BB(qI(AY(z.f,an)),467),Z||cn)if(Z)if(cn)if(Z==cn)WB(Z.a,u);else{for(WB(Z.a,u),H=new Wb(cn.d);H.a<H.c.c.length;)B=BB(n0(H),11),jCn(z.f,B,Z);gun(Z.a,cn.a),gun(Z.d,cn.d),d.a.Bc(cn)}else WB(Z.a,u),WB(Z.d,an),jCn(z.f,an,Z);else WB(cn.a,u),WB(cn.d,nn),jCn(z.f,nn,cn);else w=new DR,d.a.zc(w,d),WB(w.a,u),WB(w.d,nn),jCn(z.f,nn,w),WB(w.d,an),jCn(z.f,an,w);for(g=BB(Emn(d,x8(Fmt,{3:1,4:1,5:1,1946:1},467,d.a.gc(),0,1)),1946),P=t[0].c,Y=i[0].c,l=0,b=(f=g).length;l<b;++l)for((h=f[l]).e=J,h.f=rn,G=new Wb(h.d);G.a<G.c.c.length;)q=BB(n0(G),11),W=n.a[q.p],q.i.c==P?(W<h.e&&(h.e=W),W>h.b&&(h.b=W)):q.i.c==Y&&(W<h.f&&(h.f=W),W>h.c&&(h.c=W));for(z9(g,0,g.length,null),en=x8(ANt,hQn,25,g.length,15,1),r=x8(ANt,hQn,25,rn+1,15,1),v=0;v<g.length;v++)en[v]=g[v].f,r[en[v]]=1;for(a=0,m=0;m<r.length;m++)1==r[m]?r[m]=a:--a;for(V=0,y=0;y<en.length;y++)en[y]+=r[en[y]],V=e.Math.max(V,en[y]+1);for(s=1;s<V;)s*=2;for(on=2*s-1,s-=1,un=x8(ANt,hQn,25,on,15,1),c=0,M=0;M<en.length;M++)for(++un[T=en[M]+s];T>0;)T%2>0&&(c+=un[T+1]),++un[T=(T-1)/2|0];for(S=x8(qmt,HWn,362,2*g.length,0,1),k=0;k<g.length;k++)S[2*k]=new qV(g[k],g[k].e,g[k].b,(Q4(),Hmt)),S[2*k+1]=new qV(g[k],g[k].b,g[k].e,Bmt);for(z9(S,0,S.length,null),_=0,j=0;j<S.length;j++)switch(S[j].d.g){case 0:++_;break;case 1:c+=--_}for(Q=x8(qmt,HWn,362,2*g.length,0,1),E=0;E<g.length;E++)Q[2*E]=new qV(g[E],g[E].f,g[E].c,(Q4(),Hmt)),Q[2*E+1]=new qV(g[E],g[E].c,g[E].f,Bmt);for(z9(Q,0,Q.length,null),_=0,p=0;p<Q.length;p++)switch(Q[p].d.g){case 0:++_;break;case 1:c+=--_}return c}function wWn(){wWn=O,sNt=new Ap(7),hNt=new oG(8,94),new oG(8,64),fNt=new oG(8,36),pNt=new oG(8,65),vNt=new oG(8,122),mNt=new oG(8,90),jNt=new oG(8,98),dNt=new oG(8,66),yNt=new oG(8,60),ENt=new oG(8,62),oNt=new Ap(11),Yxn(uNt=new M0(4),48,57),Yxn(kNt=new M0(4),48,57),Yxn(kNt,65,90),Yxn(kNt,95,95),Yxn(kNt,97,122),Yxn(gNt=new M0(4),9,9),Yxn(gNt,10,10),Yxn(gNt,12,12),Yxn(gNt,13,13),Yxn(gNt,32,32),lNt=$Fn(uNt),wNt=$Fn(kNt),bNt=$Fn(gNt),iNt=new xp,rNt=new xp,cNt=Pun(Gk(Qtt,1),sVn,2,6,["Cn","Lu","Ll","Lt","Lm","Lo","Mn","Me","Mc","Nd","Nl","No","Zs","Zl","Zp","Cc","Cf",null,"Co","Cs","Pd","Ps","Pe","Pc","Po","Sm","Sc","Sk","So","Pi","Pf","L","M","N","Z","C","P","S"]),eNt=Pun(Gk(Qtt,1),sVn,2,6,["Basic Latin","Latin-1 Supplement","Latin Extended-A","Latin Extended-B","IPA Extensions","Spacing Modifier Letters","Combining Diacritical Marks","Greek","Cyrillic","Armenian","Hebrew","Arabic","Syriac","Thaana","Devanagari","Bengali","Gurmukhi","Gujarati","Oriya","Tamil","Telugu","Kannada","Malayalam","Sinhala","Thai","Lao","Tibetan","Myanmar","Georgian","Hangul Jamo","Ethiopic","Cherokee","Unified Canadian Aboriginal Syllabics","Ogham","Runic","Khmer","Mongolian","Latin Extended Additional","Greek Extended","General Punctuation","Superscripts and Subscripts","Currency Symbols","Combining Marks for Symbols","Letterlike Symbols","Number Forms","Arrows","Mathematical Operators","Miscellaneous Technical","Control Pictures","Optical Character Recognition","Enclosed Alphanumerics","Box Drawing","Block Elements","Geometric Shapes","Miscellaneous Symbols","Dingbats","Braille Patterns","CJK Radicals Supplement","Kangxi Radicals","Ideographic Description Characters","CJK Symbols and Punctuation","Hiragana","Katakana","Bopomofo","Hangul Compatibility Jamo","Kanbun","Bopomofo Extended","Enclosed CJK Letters and Months","CJK Compatibility","CJK Unified Ideographs Extension A","CJK Unified Ideographs","Yi Syllables","Yi Radicals","Hangul Syllables",gnt,"CJK Compatibility Ideographs","Alphabetic Presentation Forms","Arabic Presentation Forms-A","Combining Half Marks","CJK Compatibility Forms","Small Form Variants","Arabic Presentation Forms-B","Specials","Halfwidth and Fullwidth Forms","Old Italic","Gothic","Deseret","Byzantine Musical Symbols","Musical Symbols","Mathematical Alphanumeric Symbols","CJK Unified Ideographs Extension B","CJK Compatibility Ideographs Supplement","Tags"]),aNt=Pun(Gk(ANt,1),hQn,25,15,[66304,66351,66352,66383,66560,66639,118784,119039,119040,119295,119808,120831,131072,173782,194560,195103,917504,917631])}function dWn(){dWn=O,Prt=new ocn("OUT_T_L",0,(J9(),Yit),(G7(),irt),(Dtn(),Git),Git,Pun(Gk(Dnt,1),HWn,21,0,[EG((n$n(),LCt),Pun(Gk(GCt,1),$Vn,93,0,[DCt,ICt]))])),Srt=new ocn("OUT_T_C",1,Qit,irt,Git,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[DCt,CCt])),EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[DCt,CCt,OCt]))])),Crt=new ocn("OUT_T_R",2,Jit,irt,Git,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[DCt,ACt]))])),vrt=new ocn("OUT_B_L",3,Yit,crt,Uit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[NCt,ICt]))])),prt=new ocn("OUT_B_C",4,Qit,crt,Uit,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[NCt,CCt])),EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[NCt,CCt,OCt]))])),mrt=new ocn("OUT_B_R",5,Jit,crt,Uit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[NCt,ACt]))])),jrt=new ocn("OUT_L_T",6,Jit,crt,Git,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[ICt,DCt,OCt]))])),krt=new ocn("OUT_L_C",7,Jit,rrt,zit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[ICt,xCt])),EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[ICt,xCt,OCt]))])),yrt=new ocn("OUT_L_B",8,Jit,irt,Uit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[ICt,NCt,OCt]))])),Mrt=new ocn("OUT_R_T",9,Yit,crt,Git,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[ACt,DCt,OCt]))])),Trt=new ocn("OUT_R_C",10,Yit,rrt,zit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[ACt,xCt])),EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[ACt,xCt,OCt]))])),Ert=new ocn("OUT_R_B",11,Yit,irt,Uit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[ACt,NCt,OCt]))])),drt=new ocn("IN_T_L",12,Yit,crt,Git,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[DCt,ICt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[DCt,ICt,OCt]))])),wrt=new ocn("IN_T_C",13,Qit,crt,Git,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[DCt,CCt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[DCt,CCt,OCt]))])),grt=new ocn("IN_T_R",14,Jit,crt,Git,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[DCt,ACt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[DCt,ACt,OCt]))])),lrt=new ocn("IN_C_L",15,Yit,rrt,zit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[xCt,ICt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[xCt,ICt,OCt]))])),frt=new ocn("IN_C_C",16,Qit,rrt,zit,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[xCt,CCt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[xCt,CCt,OCt]))])),brt=new ocn("IN_C_R",17,Jit,rrt,zit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[xCt,ACt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[xCt,ACt,OCt]))])),srt=new ocn("IN_B_L",18,Yit,irt,Uit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[NCt,ICt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[NCt,ICt,OCt]))])),ort=new ocn("IN_B_C",19,Qit,irt,Uit,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[NCt,CCt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[NCt,CCt,OCt]))])),hrt=new ocn("IN_B_R",20,Jit,irt,Uit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[NCt,ACt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[NCt,ACt,OCt]))])),Irt=new ocn(hJn,21,null,null,null,null,Pun(Gk(Dnt,1),HWn,21,0,[]))}function gWn(){gWn=O,i$t=(QX(),t$t).b,BB(Wtn(QQ(t$t.b),0),34),BB(Wtn(QQ(t$t.b),1),18),e$t=t$t.a,BB(Wtn(QQ(t$t.a),0),34),BB(Wtn(QQ(t$t.a),1),18),BB(Wtn(QQ(t$t.a),2),18),BB(Wtn(QQ(t$t.a),3),18),BB(Wtn(QQ(t$t.a),4),18),r$t=t$t.o,BB(Wtn(QQ(t$t.o),0),34),BB(Wtn(QQ(t$t.o),1),34),a$t=BB(Wtn(QQ(t$t.o),2),18),BB(Wtn(QQ(t$t.o),3),18),BB(Wtn(QQ(t$t.o),4),18),BB(Wtn(QQ(t$t.o),5),18),BB(Wtn(QQ(t$t.o),6),18),BB(Wtn(QQ(t$t.o),7),18),BB(Wtn(QQ(t$t.o),8),18),BB(Wtn(QQ(t$t.o),9),18),BB(Wtn(QQ(t$t.o),10),18),BB(Wtn(QQ(t$t.o),11),18),BB(Wtn(QQ(t$t.o),12),18),BB(Wtn(QQ(t$t.o),13),18),BB(Wtn(QQ(t$t.o),14),18),BB(Wtn(QQ(t$t.o),15),18),BB(Wtn(VQ(t$t.o),0),59),BB(Wtn(VQ(t$t.o),1),59),BB(Wtn(VQ(t$t.o),2),59),BB(Wtn(VQ(t$t.o),3),59),BB(Wtn(VQ(t$t.o),4),59),BB(Wtn(VQ(t$t.o),5),59),BB(Wtn(VQ(t$t.o),6),59),BB(Wtn(VQ(t$t.o),7),59),BB(Wtn(VQ(t$t.o),8),59),BB(Wtn(VQ(t$t.o),9),59),c$t=t$t.p,BB(Wtn(QQ(t$t.p),0),34),BB(Wtn(QQ(t$t.p),1),34),BB(Wtn(QQ(t$t.p),2),34),BB(Wtn(QQ(t$t.p),3),34),BB(Wtn(QQ(t$t.p),4),18),BB(Wtn(QQ(t$t.p),5),18),BB(Wtn(VQ(t$t.p),0),59),BB(Wtn(VQ(t$t.p),1),59),u$t=t$t.q,BB(Wtn(QQ(t$t.q),0),34),o$t=t$t.v,BB(Wtn(QQ(t$t.v),0),18),BB(Wtn(VQ(t$t.v),0),59),BB(Wtn(VQ(t$t.v),1),59),BB(Wtn(VQ(t$t.v),2),59),s$t=t$t.w,BB(Wtn(QQ(t$t.w),0),34),BB(Wtn(QQ(t$t.w),1),34),BB(Wtn(QQ(t$t.w),2),34),BB(Wtn(QQ(t$t.w),3),18),h$t=t$t.B,BB(Wtn(QQ(t$t.B),0),18),BB(Wtn(VQ(t$t.B),0),59),BB(Wtn(VQ(t$t.B),1),59),BB(Wtn(VQ(t$t.B),2),59),b$t=t$t.Q,BB(Wtn(QQ(t$t.Q),0),18),BB(Wtn(VQ(t$t.Q),0),59),w$t=t$t.R,BB(Wtn(QQ(t$t.R),0),34),d$t=t$t.S,BB(Wtn(VQ(t$t.S),0),59),BB(Wtn(VQ(t$t.S),1),59),BB(Wtn(VQ(t$t.S),2),59),BB(Wtn(VQ(t$t.S),3),59),BB(Wtn(VQ(t$t.S),4),59),BB(Wtn(VQ(t$t.S),5),59),BB(Wtn(VQ(t$t.S),6),59),BB(Wtn(VQ(t$t.S),7),59),BB(Wtn(VQ(t$t.S),8),59),BB(Wtn(VQ(t$t.S),9),59),BB(Wtn(VQ(t$t.S),10),59),BB(Wtn(VQ(t$t.S),11),59),BB(Wtn(VQ(t$t.S),12),59),BB(Wtn(VQ(t$t.S),13),59),BB(Wtn(VQ(t$t.S),14),59),g$t=t$t.T,BB(Wtn(QQ(t$t.T),0),18),BB(Wtn(QQ(t$t.T),2),18),p$t=BB(Wtn(QQ(t$t.T),3),18),BB(Wtn(QQ(t$t.T),4),18),BB(Wtn(VQ(t$t.T),0),59),BB(Wtn(VQ(t$t.T),1),59),BB(Wtn(QQ(t$t.T),1),18),v$t=t$t.U,BB(Wtn(QQ(t$t.U),0),34),BB(Wtn(QQ(t$t.U),1),34),BB(Wtn(QQ(t$t.U),2),18),BB(Wtn(QQ(t$t.U),3),18),BB(Wtn(QQ(t$t.U),4),18),BB(Wtn(QQ(t$t.U),5),18),BB(Wtn(VQ(t$t.U),0),59),m$t=t$t.V,BB(Wtn(QQ(t$t.V),0),18),y$t=t$t.W,BB(Wtn(QQ(t$t.W),0),34),BB(Wtn(QQ(t$t.W),1),34),BB(Wtn(QQ(t$t.W),2),34),BB(Wtn(QQ(t$t.W),3),18),BB(Wtn(QQ(t$t.W),4),18),BB(Wtn(QQ(t$t.W),5),18),j$t=t$t.bb,BB(Wtn(QQ(t$t.bb),0),34),BB(Wtn(QQ(t$t.bb),1),34),BB(Wtn(QQ(t$t.bb),2),34),BB(Wtn(QQ(t$t.bb),3),34),BB(Wtn(QQ(t$t.bb),4),34),BB(Wtn(QQ(t$t.bb),5),34),BB(Wtn(QQ(t$t.bb),6),34),BB(Wtn(QQ(t$t.bb),7),18),BB(Wtn(VQ(t$t.bb),0),59),BB(Wtn(VQ(t$t.bb),1),59),E$t=t$t.eb,BB(Wtn(QQ(t$t.eb),0),34),BB(Wtn(QQ(t$t.eb),1),34),BB(Wtn(QQ(t$t.eb),2),34),BB(Wtn(QQ(t$t.eb),3),34),BB(Wtn(QQ(t$t.eb),4),34),BB(Wtn(QQ(t$t.eb),5),34),BB(Wtn(QQ(t$t.eb),6),18),BB(Wtn(QQ(t$t.eb),7),18),k$t=t$t.ab,BB(Wtn(QQ(t$t.ab),0),34),BB(Wtn(QQ(t$t.ab),1),34),f$t=t$t.H,BB(Wtn(QQ(t$t.H),0),18),BB(Wtn(QQ(t$t.H),1),18),BB(Wtn(QQ(t$t.H),2),18),BB(Wtn(QQ(t$t.H),3),18),BB(Wtn(QQ(t$t.H),4),18),BB(Wtn(QQ(t$t.H),5),18),BB(Wtn(VQ(t$t.H),0),59),T$t=t$t.db,BB(Wtn(QQ(t$t.db),0),18),l$t=t$t.M}function pWn(n){var t;n.O||(n.O=!0,Nrn(n,"type"),xrn(n,"ecore.xml.type"),Drn(n,S7n),t=BB($$n((WM(),zAt),S7n),1945),f9(kY(n.fb),n.b),z0(n.b,wLt,"AnyType",!1,!1,!0),ucn(BB(Wtn(QQ(n.b),0),34),n.wb.D,K9n,null,0,-1,wLt,!1,!1,!0,!1,!1,!1),ucn(BB(Wtn(QQ(n.b),1),34),n.wb.D,"any",null,0,-1,wLt,!0,!0,!0,!1,!1,!0),ucn(BB(Wtn(QQ(n.b),2),34),n.wb.D,"anyAttribute",null,0,-1,wLt,!1,!1,!0,!1,!1,!1),z0(n.bb,zLt,A7n,!1,!1,!0),ucn(BB(Wtn(QQ(n.bb),0),34),n.gb,"data",null,0,1,zLt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.bb),1),34),n.gb,Y6n,null,1,1,zLt,!1,!1,!0,!1,!0,!1),z0(n.fb,ULt,$7n,!1,!1,!0),ucn(BB(Wtn(QQ(n.fb),0),34),t.gb,"rawValue",null,0,1,ULt,!0,!0,!0,!1,!0,!0),ucn(BB(Wtn(QQ(n.fb),1),34),t.a,E6n,null,0,1,ULt,!0,!0,!0,!1,!0,!0),Myn(BB(Wtn(QQ(n.fb),2),18),n.wb.q,null,"instanceType",1,1,ULt,!1,!1,!0,!1,!1,!1,!1),z0(n.qb,XLt,L7n,!1,!1,!0),ucn(BB(Wtn(QQ(n.qb),0),34),n.wb.D,K9n,null,0,-1,null,!1,!1,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.qb),1),18),n.wb.ab,null,"xMLNSPrefixMap",0,-1,null,!0,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.qb),2),18),n.wb.ab,null,"xSISchemaLocation",0,-1,null,!0,!1,!0,!0,!1,!1,!1),ucn(BB(Wtn(QQ(n.qb),3),34),n.gb,"cDATA",null,0,-2,null,!0,!0,!0,!1,!1,!0),ucn(BB(Wtn(QQ(n.qb),4),34),n.gb,"comment",null,0,-2,null,!0,!0,!0,!1,!1,!0),Myn(BB(Wtn(QQ(n.qb),5),18),n.bb,null,cnt,0,-2,null,!0,!0,!0,!0,!1,!1,!0),ucn(BB(Wtn(QQ(n.qb),6),34),n.gb,O6n,null,0,-2,null,!0,!0,!0,!1,!1,!0),dV(n.a,Ant,"AnySimpleType",!0),dV(n.c,Qtt,"AnyURI",!0),dV(n.d,Gk(NNt,1),"Base64Binary",!0),dV(n.e,$Nt,"Boolean",!0),dV(n.f,ktt,"BooleanObject",!0),dV(n.g,NNt,"Byte",!0),dV(n.i,Ttt,"ByteObject",!0),dV(n.j,Qtt,"Date",!0),dV(n.k,Qtt,"DateTime",!0),dV(n.n,iet,"Decimal",!0),dV(n.o,xNt,"Double",!0),dV(n.p,Ptt,"DoubleObject",!0),dV(n.q,Qtt,"Duration",!0),dV(n.s,Rnt,"ENTITIES",!0),dV(n.r,Rnt,"ENTITIESBase",!0),dV(n.t,Qtt,_7n,!0),dV(n.u,DNt,"Float",!0),dV(n.v,Ctt,"FloatObject",!0),dV(n.w,Qtt,"GDay",!0),dV(n.B,Qtt,"GMonth",!0),dV(n.A,Qtt,"GMonthDay",!0),dV(n.C,Qtt,"GYear",!0),dV(n.D,Qtt,"GYearMonth",!0),dV(n.F,Gk(NNt,1),"HexBinary",!0),dV(n.G,Qtt,"ID",!0),dV(n.H,Qtt,"IDREF",!0),dV(n.J,Rnt,"IDREFS",!0),dV(n.I,Rnt,"IDREFSBase",!0),dV(n.K,ANt,"Int",!0),dV(n.M,oet,"Integer",!0),dV(n.L,Att,"IntObject",!0),dV(n.P,Qtt,"Language",!0),dV(n.Q,LNt,"Long",!0),dV(n.R,Rtt,"LongObject",!0),dV(n.S,Qtt,"Name",!0),dV(n.T,Qtt,F7n,!0),dV(n.U,oet,"NegativeInteger",!0),dV(n.V,Qtt,Q7n,!0),dV(n.X,Rnt,"NMTOKENS",!0),dV(n.W,Rnt,"NMTOKENSBase",!0),dV(n.Y,oet,"NonNegativeInteger",!0),dV(n.Z,oet,"NonPositiveInteger",!0),dV(n.$,Qtt,"NormalizedString",!0),dV(n._,Qtt,"NOTATION",!0),dV(n.ab,Qtt,"PositiveInteger",!0),dV(n.cb,Qtt,"QName",!0),dV(n.db,RNt,"Short",!0),dV(n.eb,_tt,"ShortObject",!0),dV(n.gb,Qtt,qVn,!0),dV(n.hb,Qtt,"Time",!0),dV(n.ib,Qtt,"Token",!0),dV(n.jb,RNt,"UnsignedByte",!0),dV(n.kb,_tt,"UnsignedByteObject",!0),dV(n.lb,LNt,"UnsignedInt",!0),dV(n.mb,Rtt,"UnsignedIntObject",!0),dV(n.nb,oet,"UnsignedLong",!0),dV(n.ob,ANt,"UnsignedShort",!0),dV(n.pb,Att,"UnsignedShortObject",!0),Lhn(n,S7n),yWn(n))}function vWn(n){NM(n,new MTn(mj(dj(vj(wj(pj(gj(new du,w1n),"ELK Layered"),"Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level."),new Cc),w1n),EG((hAn(),iAt),Pun(Gk(aAt,1),$Vn,237,0,[nAt,tAt,ZOt,eAt,YOt,QOt]))))),u2(n,w1n,L2n,mpn(ppt)),u2(n,w1n,N2n,mpn(vpt)),u2(n,w1n,XJn,mpn(mpt)),u2(n,w1n,x2n,mpn(ypt)),u2(n,w1n,mZn,mpn(jpt)),u2(n,w1n,D2n,mpn(Ept)),u2(n,w1n,R2n,mpn(Spt)),u2(n,w1n,K2n,mpn(Cpt)),u2(n,w1n,_2n,mpn(Ipt)),u2(n,w1n,F2n,mpn(Ppt)),u2(n,w1n,vZn,mpn(Opt)),u2(n,w1n,B2n,mpn($pt)),u2(n,w1n,H2n,mpn(Npt)),u2(n,w1n,q2n,mpn(Mpt)),u2(n,w1n,L0n,mpn(gpt)),u2(n,w1n,x0n,mpn(kpt)),u2(n,w1n,N0n,mpn(Tpt)),u2(n,w1n,D0n,mpn(Apt)),u2(n,w1n,pZn,iln(0)),u2(n,w1n,R0n,mpn(fpt)),u2(n,w1n,K0n,mpn(lpt)),u2(n,w1n,_0n,mpn(bpt)),u2(n,w1n,U0n,mpn(zpt)),u2(n,w1n,X0n,mpn(Rpt)),u2(n,w1n,W0n,mpn(Kpt)),u2(n,w1n,V0n,mpn(Bpt)),u2(n,w1n,Q0n,mpn(_pt)),u2(n,w1n,Y0n,mpn(Fpt)),u2(n,w1n,J0n,mpn(Xpt)),u2(n,w1n,Z0n,mpn(Upt)),u2(n,w1n,n2n,mpn(qpt)),u2(n,w1n,t2n,mpn(Hpt)),u2(n,w1n,e2n,mpn(Gpt)),u2(n,w1n,S0n,mpn(Rgt)),u2(n,w1n,P0n,mpn(Kgt)),u2(n,w1n,O0n,mpn(rgt)),u2(n,w1n,A0n,mpn(cgt)),u2(n,w1n,QJn,Ugt),u2(n,w1n,y2n,ngt),u2(n,w1n,G2n,0),u2(n,w1n,yZn,iln(1)),u2(n,w1n,VJn,dZn),u2(n,w1n,z2n,mpn(Ggt)),u2(n,w1n,EZn,mpn(ept)),u2(n,w1n,U2n,mpn(upt)),u2(n,w1n,X2n,mpn(zdt)),u2(n,w1n,W2n,mpn(kdt)),u2(n,w1n,d2n,mpn(sgt)),u2(n,w1n,kZn,(hN(),!0)),u2(n,w1n,V2n,mpn(wgt)),u2(n,w1n,Q2n,mpn(dgt)),u2(n,w1n,PZn,mpn(Fgt)),u2(n,w1n,SZn,mpn(qgt)),u2(n,w1n,Y2n,mpn(Bgt)),u2(n,w1n,J2n,Wdt),u2(n,w1n,CZn,mpn($gt)),u2(n,w1n,Z2n,mpn(Agt)),u2(n,w1n,IZn,mpn(cpt)),u2(n,w1n,n3n,mpn(rpt)),u2(n,w1n,t3n,mpn(apt)),u2(n,w1n,e3n,Vgt),u2(n,w1n,i3n,mpn(Ygt)),u2(n,w1n,r3n,mpn(Jgt)),u2(n,w1n,c3n,mpn(Zgt)),u2(n,w1n,a3n,mpn(Qgt)),u2(n,w1n,n0n,mpn(Dpt)),u2(n,w1n,i0n,mpn(Pgt)),u2(n,w1n,s0n,mpn(Sgt)),u2(n,w1n,Z1n,mpn(xpt)),u2(n,w1n,r0n,mpn(kgt)),u2(n,w1n,e0n,mpn(Gdt)),u2(n,w1n,l0n,mpn(qdt)),u2(n,w1n,b0n,mpn(xdt)),u2(n,w1n,v0n,mpn(Ddt)),u2(n,w1n,m0n,mpn(Kdt)),u2(n,w1n,y0n,mpn(Rdt)),u2(n,w1n,d0n,mpn(Hdt)),u2(n,w1n,V1n,mpn(Igt)),u2(n,w1n,Q1n,mpn(Ogt)),u2(n,w1n,W1n,mpn(pgt)),u2(n,w1n,k0n,mpn(_gt)),u2(n,w1n,T0n,mpn(Ngt)),u2(n,w1n,X1n,mpn(ugt)),u2(n,w1n,M0n,mpn(Dgt)),u2(n,w1n,C0n,mpn(egt)),u2(n,w1n,I0n,mpn(igt)),u2(n,w1n,u3n,mpn(Ndt)),u2(n,w1n,E0n,mpn(Lgt)),u2(n,w1n,B0n,mpn(Pdt)),u2(n,w1n,H0n,mpn(Sdt)),u2(n,w1n,F0n,mpn(Mdt)),u2(n,w1n,q0n,mpn(fgt)),u2(n,w1n,G0n,mpn(hgt)),u2(n,w1n,z0n,mpn(lgt)),u2(n,w1n,BZn,mpn(Hgt)),u2(n,w1n,o3n,mpn(vgt)),u2(n,w1n,WJn,mpn(agt)),u2(n,w1n,s3n,mpn(Ydt)),u2(n,w1n,TZn,mpn(Qdt)),u2(n,w1n,w0n,mpn(_dt)),u2(n,w1n,h3n,mpn(ipt)),u2(n,w1n,f3n,mpn(Tdt)),u2(n,w1n,l3n,mpn(bgt)),u2(n,w1n,b3n,mpn(npt)),u2(n,w1n,w3n,mpn(Xgt)),u2(n,w1n,d3n,mpn(Wgt)),u2(n,w1n,u0n,mpn(Egt)),u2(n,w1n,o0n,mpn(Tgt)),u2(n,w1n,g3n,mpn(spt)),u2(n,w1n,Y1n,mpn(jdt)),u2(n,w1n,h0n,mpn(Mgt)),u2(n,w1n,i2n,mpn(Jdt)),u2(n,w1n,r2n,mpn(Vdt)),u2(n,w1n,p3n,mpn(Cgt)),u2(n,w1n,f0n,mpn(mgt)),u2(n,w1n,j0n,mpn(xgt)),u2(n,w1n,v3n,mpn(Lpt)),u2(n,w1n,U1n,mpn(Xdt)),u2(n,w1n,J1n,mpn(opt)),u2(n,w1n,$0n,mpn(tgt)),u2(n,w1n,c0n,mpn(ygt)),u2(n,w1n,g0n,mpn(Fdt)),u2(n,w1n,m3n,mpn(ggt)),u2(n,w1n,a0n,mpn(jgt)),u2(n,w1n,p0n,mpn(Bdt)),u2(n,w1n,c2n,mpn(Ldt)),u2(n,w1n,o2n,mpn(Adt)),u2(n,w1n,s2n,mpn(Idt)),u2(n,w1n,h2n,mpn(Odt)),u2(n,w1n,a2n,mpn($dt)),u2(n,w1n,u2n,mpn(Cdt)),u2(n,w1n,t0n,mpn(ogt))}function mWn(n,t){var e;return nNt||(nNt=new xp,tNt=new xp,wWn(),wWn(),ydn(e=new M0(4),"\t\n\r\r "),mZ(nNt,fnt,e),mZ(tNt,fnt,$Fn(e)),ydn(e=new M0(4),wnt),mZ(nNt,snt,e),mZ(tNt,snt,$Fn(e)),ydn(e=new M0(4),wnt),mZ(nNt,snt,e),mZ(tNt,snt,$Fn(e)),ydn(e=new M0(4),dnt),sHn(e,BB(SJ(nNt,snt),117)),mZ(nNt,hnt,e),mZ(tNt,hnt,$Fn(e)),ydn(e=new M0(4),"-.0:AZ__az\xb7\xb7\xc0\xd6\xd8\xf6\xf8\u0131\u0134\u013e\u0141\u0148\u014a\u017e\u0180\u01c3\u01cd\u01f0\u01f4\u01f5\u01fa\u0217\u0250\u02a8\u02bb\u02c1\u02d0\u02d1\u0300\u0345\u0360\u0361\u0386\u038a\u038c\u038c\u038e\u03a1\u03a3\u03ce\u03d0\u03d6\u03da\u03da\u03dc\u03dc\u03de\u03de\u03e0\u03e0\u03e2\u03f3\u0401\u040c\u040e\u044f\u0451\u045c\u045e\u0481\u0483\u0486\u0490\u04c4\u04c7\u04c8\u04cb\u04cc\u04d0\u04eb\u04ee\u04f5\u04f8\u04f9\u0531\u0556\u0559\u0559\u0561\u0586\u0591\u05a1\u05a3\u05b9\u05bb\u05bd\u05bf\u05bf\u05c1\u05c2\u05c4\u05c4\u05d0\u05ea\u05f0\u05f2\u0621\u063a\u0640\u0652\u0660\u0669\u0670\u06b7\u06ba\u06be\u06c0\u06ce\u06d0\u06d3\u06d5\u06e8\u06ea\u06ed\u06f0\u06f9\u0901\u0903\u0905\u0939\u093c\u094d\u0951\u0954\u0958\u0963\u0966\u096f\u0981\u0983\u0985\u098c\u098f\u0990\u0993\u09a8\u09aa\u09b0\u09b2\u09b2\u09b6\u09b9\u09bc\u09bc\u09be\u09c4\u09c7\u09c8\u09cb\u09cd\u09d7\u09d7\u09dc\u09dd\u09df\u09e3\u09e6\u09f1\u0a02\u0a02\u0a05\u0a0a\u0a0f\u0a10\u0a13\u0a28\u0a2a\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3c\u0a3e\u0a42\u0a47\u0a48\u0a4b\u0a4d\u0a59\u0a5c\u0a5e\u0a5e\u0a66\u0a74\u0a81\u0a83\u0a85\u0a8b\u0a8d\u0a8d\u0a8f\u0a91\u0a93\u0aa8\u0aaa\u0ab0\u0ab2\u0ab3\u0ab5\u0ab9\u0abc\u0ac5\u0ac7\u0ac9\u0acb\u0acd\u0ae0\u0ae0\u0ae6\u0aef\u0b01\u0b03\u0b05\u0b0c\u0b0f\u0b10\u0b13\u0b28\u0b2a\u0b30\u0b32\u0b33\u0b36\u0b39\u0b3c\u0b43\u0b47\u0b48\u0b4b\u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f\u0b61\u0b66\u0b6f\u0b82\u0b83\u0b85\u0b8a\u0b8e\u0b90\u0b92\u0b95\u0b99\u0b9a\u0b9c\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8\u0baa\u0bae\u0bb5\u0bb7\u0bb9\u0bbe\u0bc2\u0bc6\u0bc8\u0bca\u0bcd\u0bd7\u0bd7\u0be7\u0bef\u0c01\u0c03\u0c05\u0c0c\u0c0e\u0c10\u0c12\u0c28\u0c2a\u0c33\u0c35\u0c39\u0c3e\u0c44\u0c46\u0c48\u0c4a\u0c4d\u0c55\u0c56\u0c60\u0c61\u0c66\u0c6f\u0c82\u0c83\u0c85\u0c8c\u0c8e\u0c90\u0c92\u0ca8\u0caa\u0cb3\u0cb5\u0cb9\u0cbe\u0cc4\u0cc6\u0cc8\u0cca\u0ccd\u0cd5\u0cd6\u0cde\u0cde\u0ce0\u0ce1\u0ce6\u0cef\u0d02\u0d03\u0d05\u0d0c\u0d0e\u0d10\u0d12\u0d28\u0d2a\u0d39\u0d3e\u0d43\u0d46\u0d48\u0d4a\u0d4d\u0d57\u0d57\u0d60\u0d61\u0d66\u0d6f\u0e01\u0e2e\u0e30\u0e3a\u0e40\u0e4e\u0e50\u0e59\u0e81\u0e82\u0e84\u0e84\u0e87\u0e88\u0e8a\u0e8a\u0e8d\u0e8d\u0e94\u0e97\u0e99\u0e9f\u0ea1\u0ea3\u0ea5\u0ea5\u0ea7\u0ea7\u0eaa\u0eab\u0ead\u0eae\u0eb0\u0eb9\u0ebb\u0ebd\u0ec0\u0ec4\u0ec6\u0ec6\u0ec8\u0ecd\u0ed0\u0ed9\u0f18\u0f19\u0f20\u0f29\u0f35\u0f35\u0f37\u0f37\u0f39\u0f39\u0f3e\u0f47\u0f49\u0f69\u0f71\u0f84\u0f86\u0f8b\u0f90\u0f95\u0f97\u0f97\u0f99\u0fad\u0fb1\u0fb7\u0fb9\u0fb9\u10a0\u10c5\u10d0\u10f6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110b\u110c\u110e\u1112\u113c\u113c\u113e\u113e\u1140\u1140\u114c\u114c\u114e\u114e\u1150\u1150\u1154\u1155\u1159\u1159\u115f\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116d\u116e\u1172\u1173\u1175\u1175\u119e\u119e\u11a8\u11a8\u11ab\u11ab\u11ae\u11af\u11b7\u11b8\u11ba\u11ba\u11bc\u11c2\u11eb\u11eb\u11f0\u11f0\u11f9\u11f9\u1e00\u1e9b\u1ea0\u1ef9\u1f00\u1f15\u1f18\u1f1d\u1f20\u1f45\u1f48\u1f4d\u1f50\u1f57\u1f59\u1f59\u1f5b\u1f5b\u1f5d\u1f5d\u1f5f\u1f7d\u1f80\u1fb4\u1fb6\u1fbc\u1fbe\u1fbe\u1fc2\u1fc4\u1fc6\u1fcc\u1fd0\u1fd3\u1fd6\u1fdb\u1fe0\u1fec\u1ff2\u1ff4\u1ff6\u1ffc\u20d0\u20dc\u20e1\u20e1\u2126\u2126\u212a\u212b\u212e\u212e\u2180\u2182\u3005\u3005\u3007\u3007\u3021\u302f\u3031\u3035\u3041\u3094\u3099\u309a\u309d\u309e\u30a1\u30fa\u30fc\u30fe\u3105\u312c\u4e00\u9fa5\uac00\ud7a3"),mZ(nNt,lnt,e),mZ(tNt,lnt,$Fn(e)),ydn(e=new M0(4),dnt),Yxn(e,95,95),Yxn(e,58,58),mZ(nNt,bnt,e),mZ(tNt,bnt,$Fn(e))),BB(SJ(t?nNt:tNt,n),136)}function yWn(n){V$n(n.a,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"anySimpleType"])),V$n(n.b,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"anyType",F9n,K9n])),V$n(BB(Wtn(QQ(n.b),0),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,m7n,t8n,":mixed"])),V$n(BB(Wtn(QQ(n.b),1),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,m7n,M7n,P7n,t8n,":1",D7n,"lax"])),V$n(BB(Wtn(QQ(n.b),2),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,p7n,M7n,P7n,t8n,":2",D7n,"lax"])),V$n(n.c,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"anyURI",T7n,y7n])),V$n(n.d,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"base64Binary",T7n,y7n])),V$n(n.e,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,$Wn,T7n,y7n])),V$n(n.f,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"boolean:Object",J9n,$Wn])),V$n(n.g,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,S9n])),V$n(n.i,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"byte:Object",J9n,S9n])),V$n(n.j,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"date",T7n,y7n])),V$n(n.k,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"dateTime",T7n,y7n])),V$n(n.n,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"decimal",T7n,y7n])),V$n(n.o,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,C9n,T7n,y7n])),V$n(n.p,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"double:Object",J9n,C9n])),V$n(n.q,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"duration",T7n,y7n])),V$n(n.s,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"ENTITIES",J9n,R7n,K7n,"1"])),V$n(n.r,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,R7n,k7n,_7n])),V$n(n.t,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,_7n,J9n,F7n])),V$n(n.u,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,I9n,T7n,y7n])),V$n(n.v,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"float:Object",J9n,I9n])),V$n(n.w,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gDay",T7n,y7n])),V$n(n.B,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gMonth",T7n,y7n])),V$n(n.A,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gMonthDay",T7n,y7n])),V$n(n.C,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gYear",T7n,y7n])),V$n(n.D,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gYearMonth",T7n,y7n])),V$n(n.F,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"hexBinary",T7n,y7n])),V$n(n.G,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"ID",J9n,F7n])),V$n(n.H,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"IDREF",J9n,F7n])),V$n(n.J,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"IDREFS",J9n,B7n,K7n,"1"])),V$n(n.I,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,B7n,k7n,"IDREF"])),V$n(n.K,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,O9n])),V$n(n.M,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,H7n])),V$n(n.L,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"int:Object",J9n,O9n])),V$n(n.P,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"language",J9n,q7n,G7n,z7n])),V$n(n.Q,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,A9n])),V$n(n.R,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"long:Object",J9n,A9n])),V$n(n.S,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"Name",J9n,q7n,G7n,U7n])),V$n(n.T,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,F7n,J9n,"Name",G7n,X7n])),V$n(n.U,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"negativeInteger",J9n,W7n,V7n,"-1"])),V$n(n.V,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,Q7n,J9n,q7n,G7n,"\\c+"])),V$n(n.X,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"NMTOKENS",J9n,Y7n,K7n,"1"])),V$n(n.W,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,Y7n,k7n,Q7n])),V$n(n.Y,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,J7n,J9n,H7n,Z7n,"0"])),V$n(n.Z,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,W7n,J9n,H7n,V7n,"0"])),V$n(n.$,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,nnt,J9n,NWn,T7n,"replace"])),V$n(n._,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"NOTATION",T7n,y7n])),V$n(n.ab,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"positiveInteger",J9n,J7n,Z7n,"1"])),V$n(n.bb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"processingInstruction_._type",F9n,"empty"])),V$n(BB(Wtn(QQ(n.bb),0),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,g7n,t8n,"data"])),V$n(BB(Wtn(QQ(n.bb),1),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,g7n,t8n,Y6n])),V$n(n.cb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"QName",T7n,y7n])),V$n(n.db,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,$9n])),V$n(n.eb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"short:Object",J9n,$9n])),V$n(n.fb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"simpleAnyType",F9n,d7n])),V$n(BB(Wtn(QQ(n.fb),0),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,":3",F9n,d7n])),V$n(BB(Wtn(QQ(n.fb),1),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,":4",F9n,d7n])),V$n(BB(Wtn(QQ(n.fb),2),18),_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,":5",F9n,d7n])),V$n(n.gb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,NWn,T7n,"preserve"])),V$n(n.hb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"time",T7n,y7n])),V$n(n.ib,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,q7n,J9n,nnt,T7n,y7n])),V$n(n.jb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,tnt,V7n,"255",Z7n,"0"])),V$n(n.kb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"unsignedByte:Object",J9n,tnt])),V$n(n.lb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,ent,V7n,"4294967295",Z7n,"0"])),V$n(n.mb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"unsignedInt:Object",J9n,ent])),V$n(n.nb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"unsignedLong",J9n,J7n,V7n,int,Z7n,"0"])),V$n(n.ob,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,rnt,V7n,"65535",Z7n,"0"])),V$n(n.pb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"unsignedShort:Object",J9n,rnt])),V$n(n.qb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"",F9n,K9n])),V$n(BB(Wtn(QQ(n.qb),0),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,m7n,t8n,":mixed"])),V$n(BB(Wtn(QQ(n.qb),1),18),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,g7n,t8n,"xmlns:prefix"])),V$n(BB(Wtn(QQ(n.qb),2),18),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,g7n,t8n,"xsi:schemaLocation"])),V$n(BB(Wtn(QQ(n.qb),3),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,v7n,t8n,"cDATA",j7n,E7n])),V$n(BB(Wtn(QQ(n.qb),4),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,v7n,t8n,"comment",j7n,E7n])),V$n(BB(Wtn(QQ(n.qb),5),18),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,v7n,t8n,cnt,j7n,E7n])),V$n(BB(Wtn(QQ(n.qb),6),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,v7n,t8n,O6n,j7n,E7n]))}function kWn(n){return mK("_UI_EMFDiagnostic_marker",n)?"EMF Problem":mK("_UI_CircularContainment_diagnostic",n)?"An object may not circularly contain itself":mK(w8n,n)?"Wrong character.":mK(d8n,n)?"Invalid reference number.":mK(g8n,n)?"A character is required after \\.":mK(p8n,n)?"'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?":mK(v8n,n)?"'(?<' or '(?<!' is expected.":mK(m8n,n)?"A comment is not terminated.":mK(y8n,n)?"')' is expected.":mK(k8n,n)?"Unexpected end of the pattern in a modifier group.":mK(j8n,n)?"':' is expected.":mK(E8n,n)?"Unexpected end of the pattern in a conditional group.":mK(T8n,n)?"A back reference or an anchor or a lookahead or a look-behind is expected in a conditional pattern.":mK(M8n,n)?"There are more than three choices in a conditional group.":mK(S8n,n)?"A character in U+0040-U+005f must follow \\c.":mK(P8n,n)?"A '{' is required before a character category.":mK(C8n,n)?"A property name is not closed by '}'.":mK(I8n,n)?"Unexpected meta character.":mK(O8n,n)?"Unknown property.":mK(A8n,n)?"A POSIX character class must be closed by ':]'.":mK($8n,n)?"Unexpected end of the pattern in a character class.":mK(L8n,n)?"Unknown name for a POSIX character class.":mK("parser.cc.4",n)?"'-' is invalid here.":mK(N8n,n)?"']' is expected.":mK(x8n,n)?"'[' is invalid in a character class. Write '\\['.":mK(D8n,n)?"']' is invalid in a character class. Write '\\]'.":mK(R8n,n)?"'-' is an invalid character range. Write '\\-'.":mK(K8n,n)?"'[' is expected.":mK(_8n,n)?"')' or '-[' or '+[' or '&[' is expected.":mK(F8n,n)?"The range end code point is less than the start code point.":mK(B8n,n)?"Invalid Unicode hex notation.":mK(H8n,n)?"Overflow in a hex notation.":mK(q8n,n)?"'\\x{' must be closed by '}'.":mK(G8n,n)?"Invalid Unicode code point.":mK(z8n,n)?"An anchor must not be here.":mK(U8n,n)?"This expression is not supported in the current option setting.":mK(X8n,n)?"Invalid quantifier. A digit is expected.":mK(W8n,n)?"Invalid quantifier. Invalid quantity or a '}' is missing.":mK(V8n,n)?"Invalid quantifier. A digit or '}' is expected.":mK(Q8n,n)?"Invalid quantifier. A min quantity must be <= a max quantity.":mK(Y8n,n)?"Invalid quantifier. A quantity value overflow.":mK("_UI_PackageRegistry_extensionpoint",n)?"Ecore Package Registry for Generated Packages":mK("_UI_DynamicPackageRegistry_extensionpoint",n)?"Ecore Package Registry for Dynamic Packages":mK("_UI_FactoryRegistry_extensionpoint",n)?"Ecore Factory Override Registry":mK("_UI_URIExtensionParserRegistry_extensionpoint",n)?"URI Extension Parser Registry":mK("_UI_URIProtocolParserRegistry_extensionpoint",n)?"URI Protocol Parser Registry":mK("_UI_URIContentParserRegistry_extensionpoint",n)?"URI Content Parser Registry":mK("_UI_ContentHandlerRegistry_extensionpoint",n)?"Content Handler Registry":mK("_UI_URIMappingRegistry_extensionpoint",n)?"URI Converter Mapping Registry":mK("_UI_PackageRegistryImplementation_extensionpoint",n)?"Ecore Package Registry Implementation":mK("_UI_ValidationDelegateRegistry_extensionpoint",n)?"Validation Delegate Registry":mK("_UI_SettingDelegateRegistry_extensionpoint",n)?"Feature Setting Delegate Factory Registry":mK("_UI_InvocationDelegateRegistry_extensionpoint",n)?"Operation Invocation Delegate Factory Registry":mK("_UI_EClassInterfaceNotAbstract_diagnostic",n)?"A class that is an interface must also be abstract":mK("_UI_EClassNoCircularSuperTypes_diagnostic",n)?"A class may not be a super type of itself":mK("_UI_EClassNotWellFormedMapEntryNoInstanceClassName_diagnostic",n)?"A class that inherits from a map entry class must have instance class name 'java.util.Map$Entry'":mK("_UI_EReferenceOppositeOfOppositeInconsistent_diagnostic",n)?"The opposite of the opposite may not be a reference different from this one":mK("_UI_EReferenceOppositeNotFeatureOfType_diagnostic",n)?"The opposite must be a feature of the reference's type":mK("_UI_EReferenceTransientOppositeNotTransient_diagnostic",n)?"The opposite of a transient reference must be transient if it is proxy resolving":mK("_UI_EReferenceOppositeBothContainment_diagnostic",n)?"The opposite of a containment reference must not be a containment reference":mK("_UI_EReferenceConsistentUnique_diagnostic",n)?"A containment or bidirectional reference must be unique if its upper bound is different from 1":mK("_UI_ETypedElementNoType_diagnostic",n)?"The typed element must have a type":mK("_UI_EAttributeNoDataType_diagnostic",n)?"The generic attribute type must not refer to a class":mK("_UI_EReferenceNoClass_diagnostic",n)?"The generic reference type must not refer to a data type":mK("_UI_EGenericTypeNoTypeParameterAndClassifier_diagnostic",n)?"A generic type can't refer to both a type parameter and a classifier":mK("_UI_EGenericTypeNoClass_diagnostic",n)?"A generic super type must refer to a class":mK("_UI_EGenericTypeNoTypeParameterOrClassifier_diagnostic",n)?"A generic type in this context must refer to a classifier or a type parameter":mK("_UI_EGenericTypeBoundsOnlyForTypeArgument_diagnostic",n)?"A generic type may have bounds only when used as a type argument":mK("_UI_EGenericTypeNoUpperAndLowerBound_diagnostic",n)?"A generic type must not have both a lower and an upper bound":mK("_UI_EGenericTypeNoTypeParameterOrClassifierAndBound_diagnostic",n)?"A generic type with bounds must not also refer to a type parameter or classifier":mK("_UI_EGenericTypeNoArguments_diagnostic",n)?"A generic type may have arguments only if it refers to a classifier":mK("_UI_EGenericTypeOutOfScopeTypeParameter_diagnostic",n)?"A generic type may only refer to a type parameter that is in scope":n}function jWn(n){var t,e,i,r,c,a,u;n.r||(n.r=!0,Nrn(n,"graph"),xrn(n,"graph"),Drn(n,y6n),cun(n.o,"T"),f9(kY(n.a),n.p),f9(kY(n.f),n.a),f9(kY(n.n),n.f),f9(kY(n.g),n.n),f9(kY(n.c),n.n),f9(kY(n.i),n.c),f9(kY(n.j),n.c),f9(kY(n.d),n.f),f9(kY(n.e),n.a),z0(n.p,Xrt,OJn,!0,!0,!1),u=Tun(a=msn(n.p,n.p,"setProperty")),t=ZV(n.o),e=new Kp,f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),kEn(e,i=nQ(u)),Ujn(a,t,j6n),Ujn(a,t=nQ(u),E6n),u=Tun(a=msn(n.p,null,"getProperty")),t=ZV(n.o),e=nQ(u),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),Ujn(a,t,j6n),(c=HTn(a,t=nQ(u),null))&&c.Fi(),a=msn(n.p,n.wb.e,"hasProperty"),t=ZV(n.o),e=new Kp,f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),Ujn(a,t,j6n),$yn(a=msn(n.p,n.p,"copyProperties"),n.p,T6n),a=msn(n.p,null,"getAllProperties"),t=ZV(n.wb.P),e=ZV(n.o),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),i=new Kp,f9((!e.d&&(e.d=new $L(VAt,e,1)),e.d),i),e=ZV(n.wb.M),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),(r=HTn(a,t,null))&&r.Fi(),z0(n.a,NOt,z5n,!0,!1,!0),Myn(BB(Wtn(QQ(n.a),0),18),n.k,null,M6n,0,-1,NOt,!1,!1,!0,!0,!1,!1,!1),z0(n.f,DOt,X5n,!0,!1,!0),Myn(BB(Wtn(QQ(n.f),0),18),n.g,BB(Wtn(QQ(n.g),0),18),"labels",0,-1,DOt,!1,!1,!0,!0,!1,!1,!1),ucn(BB(Wtn(QQ(n.f),1),34),n.wb._,S6n,null,0,1,DOt,!1,!1,!0,!1,!0,!1),z0(n.n,ROt,"ElkShape",!0,!1,!0),ucn(BB(Wtn(QQ(n.n),0),34),n.wb.t,P6n,WQn,1,1,ROt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.n),1),34),n.wb.t,C6n,WQn,1,1,ROt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.n),2),34),n.wb.t,"x",WQn,1,1,ROt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.n),3),34),n.wb.t,"y",WQn,1,1,ROt,!1,!1,!0,!1,!0,!1),$yn(a=msn(n.n,null,"setDimensions"),n.wb.t,C6n),$yn(a,n.wb.t,P6n),$yn(a=msn(n.n,null,"setLocation"),n.wb.t,"x"),$yn(a,n.wb.t,"y"),z0(n.g,zOt,Z5n,!1,!1,!0),Myn(BB(Wtn(QQ(n.g),0),18),n.f,BB(Wtn(QQ(n.f),0),18),I6n,0,1,zOt,!1,!1,!0,!1,!1,!1,!1),ucn(BB(Wtn(QQ(n.g),1),34),n.wb._,O6n,"",0,1,zOt,!1,!1,!0,!1,!0,!1),z0(n.c,KOt,W5n,!0,!1,!0),Myn(BB(Wtn(QQ(n.c),0),18),n.d,BB(Wtn(QQ(n.d),1),18),"outgoingEdges",0,-1,KOt,!1,!1,!0,!1,!0,!1,!1),Myn(BB(Wtn(QQ(n.c),1),18),n.d,BB(Wtn(QQ(n.d),2),18),"incomingEdges",0,-1,KOt,!1,!1,!0,!1,!0,!1,!1),z0(n.i,UOt,n6n,!1,!1,!0),Myn(BB(Wtn(QQ(n.i),0),18),n.j,BB(Wtn(QQ(n.j),0),18),"ports",0,-1,UOt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.i),1),18),n.i,BB(Wtn(QQ(n.i),2),18),A6n,0,-1,UOt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.i),2),18),n.i,BB(Wtn(QQ(n.i),1),18),I6n,0,1,UOt,!1,!1,!0,!1,!1,!1,!1),Myn(BB(Wtn(QQ(n.i),3),18),n.d,BB(Wtn(QQ(n.d),0),18),"containedEdges",0,-1,UOt,!1,!1,!0,!0,!1,!1,!1),ucn(BB(Wtn(QQ(n.i),4),34),n.wb.e,$6n,null,0,1,UOt,!0,!0,!1,!1,!0,!0),z0(n.j,XOt,t6n,!1,!1,!0),Myn(BB(Wtn(QQ(n.j),0),18),n.i,BB(Wtn(QQ(n.i),0),18),I6n,0,1,XOt,!1,!1,!0,!1,!1,!1,!1),z0(n.d,_Ot,V5n,!1,!1,!0),Myn(BB(Wtn(QQ(n.d),0),18),n.i,BB(Wtn(QQ(n.i),3),18),"containingNode",0,1,_Ot,!1,!1,!0,!1,!1,!1,!1),Myn(BB(Wtn(QQ(n.d),1),18),n.c,BB(Wtn(QQ(n.c),0),18),L6n,0,-1,_Ot,!1,!1,!0,!1,!0,!1,!1),Myn(BB(Wtn(QQ(n.d),2),18),n.c,BB(Wtn(QQ(n.c),1),18),N6n,0,-1,_Ot,!1,!1,!0,!1,!0,!1,!1),Myn(BB(Wtn(QQ(n.d),3),18),n.e,BB(Wtn(QQ(n.e),5),18),x6n,0,-1,_Ot,!1,!1,!0,!0,!1,!1,!1),ucn(BB(Wtn(QQ(n.d),4),34),n.wb.e,"hyperedge",null,0,1,_Ot,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.d),5),34),n.wb.e,$6n,null,0,1,_Ot,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.d),6),34),n.wb.e,"selfloop",null,0,1,_Ot,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.d),7),34),n.wb.e,"connected",null,0,1,_Ot,!0,!0,!1,!1,!0,!0),z0(n.b,xOt,U5n,!1,!1,!0),ucn(BB(Wtn(QQ(n.b),0),34),n.wb.t,"x",WQn,1,1,xOt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.b),1),34),n.wb.t,"y",WQn,1,1,xOt,!1,!1,!0,!1,!0,!1),$yn(a=msn(n.b,null,"set"),n.wb.t,"x"),$yn(a,n.wb.t,"y"),z0(n.e,FOt,Q5n,!1,!1,!0),ucn(BB(Wtn(QQ(n.e),0),34),n.wb.t,"startX",null,0,1,FOt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.e),1),34),n.wb.t,"startY",null,0,1,FOt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.e),2),34),n.wb.t,"endX",null,0,1,FOt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.e),3),34),n.wb.t,"endY",null,0,1,FOt,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.e),4),18),n.b,null,D6n,0,-1,FOt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.e),5),18),n.d,BB(Wtn(QQ(n.d),3),18),I6n,0,1,FOt,!1,!1,!0,!1,!1,!1,!1),Myn(BB(Wtn(QQ(n.e),6),18),n.c,null,R6n,0,1,FOt,!1,!1,!0,!1,!0,!1,!1),Myn(BB(Wtn(QQ(n.e),7),18),n.c,null,K6n,0,1,FOt,!1,!1,!0,!1,!0,!1,!1),Myn(BB(Wtn(QQ(n.e),8),18),n.e,BB(Wtn(QQ(n.e),9),18),_6n,0,-1,FOt,!1,!1,!0,!1,!0,!1,!1),Myn(BB(Wtn(QQ(n.e),9),18),n.e,BB(Wtn(QQ(n.e),8),18),F6n,0,-1,FOt,!1,!1,!0,!1,!0,!1,!1),ucn(BB(Wtn(QQ(n.e),10),34),n.wb._,S6n,null,0,1,FOt,!1,!1,!0,!1,!0,!1),$yn(a=msn(n.e,null,"setStartLocation"),n.wb.t,"x"),$yn(a,n.wb.t,"y"),$yn(a=msn(n.e,null,"setEndLocation"),n.wb.t,"x"),$yn(a,n.wb.t,"y"),z0(n.k,Hnt,"ElkPropertyToValueMapEntry",!1,!1,!1),t=ZV(n.o),e=new Kp,f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),_On(BB(Wtn(QQ(n.k),0),34),t,"key",Hnt,!1,!1,!0,!1),ucn(BB(Wtn(QQ(n.k),1),34),n.s,E6n,null,0,1,Hnt,!1,!1,!0,!1,!0,!1),dV(n.o,lMt,"IProperty",!0),dV(n.s,Ant,"PropertyValue",!0),Lhn(n,y6n))}function EWn(){EWn=O,(JLt=x8(NNt,v6n,25,BQn,15,1))[9]=35,JLt[10]=19,JLt[13]=19,JLt[32]=51,JLt[33]=49,JLt[34]=33,yU(JLt,35,38,49),JLt[38]=1,yU(JLt,39,45,49),yU(JLt,45,47,-71),JLt[47]=49,yU(JLt,48,58,-71),JLt[58]=61,JLt[59]=49,JLt[60]=1,JLt[61]=49,JLt[62]=33,yU(JLt,63,65,49),yU(JLt,65,91,-3),yU(JLt,91,93,33),JLt[93]=1,JLt[94]=33,JLt[95]=-3,JLt[96]=33,yU(JLt,97,123,-3),yU(JLt,123,183,33),JLt[183]=-87,yU(JLt,184,192,33),yU(JLt,192,215,-19),JLt[215]=33,yU(JLt,216,247,-19),JLt[247]=33,yU(JLt,248,306,-19),yU(JLt,306,308,33),yU(JLt,308,319,-19),yU(JLt,319,321,33),yU(JLt,321,329,-19),JLt[329]=33,yU(JLt,330,383,-19),JLt[383]=33,yU(JLt,384,452,-19),yU(JLt,452,461,33),yU(JLt,461,497,-19),yU(JLt,497,500,33),yU(JLt,500,502,-19),yU(JLt,502,506,33),yU(JLt,506,536,-19),yU(JLt,536,592,33),yU(JLt,592,681,-19),yU(JLt,681,699,33),yU(JLt,699,706,-19),yU(JLt,706,720,33),yU(JLt,720,722,-87),yU(JLt,722,768,33),yU(JLt,768,838,-87),yU(JLt,838,864,33),yU(JLt,864,866,-87),yU(JLt,866,902,33),JLt[902]=-19,JLt[903]=-87,yU(JLt,904,907,-19),JLt[907]=33,JLt[908]=-19,JLt[909]=33,yU(JLt,910,930,-19),JLt[930]=33,yU(JLt,931,975,-19),JLt[975]=33,yU(JLt,976,983,-19),yU(JLt,983,986,33),JLt[986]=-19,JLt[987]=33,JLt[988]=-19,JLt[989]=33,JLt[990]=-19,JLt[991]=33,JLt[992]=-19,JLt[993]=33,yU(JLt,994,1012,-19),yU(JLt,1012,1025,33),yU(JLt,1025,1037,-19),JLt[1037]=33,yU(JLt,1038,1104,-19),JLt[1104]=33,yU(JLt,1105,1117,-19),JLt[1117]=33,yU(JLt,1118,1154,-19),JLt[1154]=33,yU(JLt,1155,1159,-87),yU(JLt,1159,1168,33),yU(JLt,1168,1221,-19),yU(JLt,1221,1223,33),yU(JLt,1223,1225,-19),yU(JLt,1225,1227,33),yU(JLt,1227,1229,-19),yU(JLt,1229,1232,33),yU(JLt,1232,1260,-19),yU(JLt,1260,1262,33),yU(JLt,1262,1270,-19),yU(JLt,1270,1272,33),yU(JLt,1272,1274,-19),yU(JLt,1274,1329,33),yU(JLt,1329,1367,-19),yU(JLt,1367,1369,33),JLt[1369]=-19,yU(JLt,1370,1377,33),yU(JLt,1377,1415,-19),yU(JLt,1415,1425,33),yU(JLt,1425,1442,-87),JLt[1442]=33,yU(JLt,1443,1466,-87),JLt[1466]=33,yU(JLt,1467,1470,-87),JLt[1470]=33,JLt[1471]=-87,JLt[1472]=33,yU(JLt,1473,1475,-87),JLt[1475]=33,JLt[1476]=-87,yU(JLt,1477,1488,33),yU(JLt,1488,1515,-19),yU(JLt,1515,1520,33),yU(JLt,1520,1523,-19),yU(JLt,1523,1569,33),yU(JLt,1569,1595,-19),yU(JLt,1595,1600,33),JLt[1600]=-87,yU(JLt,1601,1611,-19),yU(JLt,1611,1619,-87),yU(JLt,1619,1632,33),yU(JLt,1632,1642,-87),yU(JLt,1642,1648,33),JLt[1648]=-87,yU(JLt,1649,1720,-19),yU(JLt,1720,1722,33),yU(JLt,1722,1727,-19),JLt[1727]=33,yU(JLt,1728,1743,-19),JLt[1743]=33,yU(JLt,1744,1748,-19),JLt[1748]=33,JLt[1749]=-19,yU(JLt,1750,1765,-87),yU(JLt,1765,1767,-19),yU(JLt,1767,1769,-87),JLt[1769]=33,yU(JLt,1770,1774,-87),yU(JLt,1774,1776,33),yU(JLt,1776,1786,-87),yU(JLt,1786,2305,33),yU(JLt,2305,2308,-87),JLt[2308]=33,yU(JLt,2309,2362,-19),yU(JLt,2362,2364,33),JLt[2364]=-87,JLt[2365]=-19,yU(JLt,2366,2382,-87),yU(JLt,2382,2385,33),yU(JLt,2385,2389,-87),yU(JLt,2389,2392,33),yU(JLt,2392,2402,-19),yU(JLt,2402,2404,-87),yU(JLt,2404,2406,33),yU(JLt,2406,2416,-87),yU(JLt,2416,2433,33),yU(JLt,2433,2436,-87),JLt[2436]=33,yU(JLt,2437,2445,-19),yU(JLt,2445,2447,33),yU(JLt,2447,2449,-19),yU(JLt,2449,2451,33),yU(JLt,2451,2473,-19),JLt[2473]=33,yU(JLt,2474,2481,-19),JLt[2481]=33,JLt[2482]=-19,yU(JLt,2483,2486,33),yU(JLt,2486,2490,-19),yU(JLt,2490,2492,33),JLt[2492]=-87,JLt[2493]=33,yU(JLt,2494,2501,-87),yU(JLt,2501,2503,33),yU(JLt,2503,2505,-87),yU(JLt,2505,2507,33),yU(JLt,2507,2510,-87),yU(JLt,2510,2519,33),JLt[2519]=-87,yU(JLt,2520,2524,33),yU(JLt,2524,2526,-19),JLt[2526]=33,yU(JLt,2527,2530,-19),yU(JLt,2530,2532,-87),yU(JLt,2532,2534,33),yU(JLt,2534,2544,-87),yU(JLt,2544,2546,-19),yU(JLt,2546,2562,33),JLt[2562]=-87,yU(JLt,2563,2565,33),yU(JLt,2565,2571,-19),yU(JLt,2571,2575,33),yU(JLt,2575,2577,-19),yU(JLt,2577,2579,33),yU(JLt,2579,2601,-19),JLt[2601]=33,yU(JLt,2602,2609,-19),JLt[2609]=33,yU(JLt,2610,2612,-19),JLt[2612]=33,yU(JLt,2613,2615,-19),JLt[2615]=33,yU(JLt,2616,2618,-19),yU(JLt,2618,2620,33),JLt[2620]=-87,JLt[2621]=33,yU(JLt,2622,2627,-87),yU(JLt,2627,2631,33),yU(JLt,2631,2633,-87),yU(JLt,2633,2635,33),yU(JLt,2635,2638,-87),yU(JLt,2638,2649,33),yU(JLt,2649,2653,-19),JLt[2653]=33,JLt[2654]=-19,yU(JLt,2655,2662,33),yU(JLt,2662,2674,-87),yU(JLt,2674,2677,-19),yU(JLt,2677,2689,33),yU(JLt,2689,2692,-87),JLt[2692]=33,yU(JLt,2693,2700,-19),JLt[2700]=33,JLt[2701]=-19,JLt[2702]=33,yU(JLt,2703,2706,-19),JLt[2706]=33,yU(JLt,2707,2729,-19),JLt[2729]=33,yU(JLt,2730,2737,-19),JLt[2737]=33,yU(JLt,2738,2740,-19),JLt[2740]=33,yU(JLt,2741,2746,-19),yU(JLt,2746,2748,33),JLt[2748]=-87,JLt[2749]=-19,yU(JLt,2750,2758,-87),JLt[2758]=33,yU(JLt,2759,2762,-87),JLt[2762]=33,yU(JLt,2763,2766,-87),yU(JLt,2766,2784,33),JLt[2784]=-19,yU(JLt,2785,2790,33),yU(JLt,2790,2800,-87),yU(JLt,2800,2817,33),yU(JLt,2817,2820,-87),JLt[2820]=33,yU(JLt,2821,2829,-19),yU(JLt,2829,2831,33),yU(JLt,2831,2833,-19),yU(JLt,2833,2835,33),yU(JLt,2835,2857,-19),JLt[2857]=33,yU(JLt,2858,2865,-19),JLt[2865]=33,yU(JLt,2866,2868,-19),yU(JLt,2868,2870,33),yU(JLt,2870,2874,-19),yU(JLt,2874,2876,33),JLt[2876]=-87,JLt[2877]=-19,yU(JLt,2878,2884,-87),yU(JLt,2884,2887,33),yU(JLt,2887,2889,-87),yU(JLt,2889,2891,33),yU(JLt,2891,2894,-87),yU(JLt,2894,2902,33),yU(JLt,2902,2904,-87),yU(JLt,2904,2908,33),yU(JLt,2908,2910,-19),JLt[2910]=33,yU(JLt,2911,2914,-19),yU(JLt,2914,2918,33),yU(JLt,2918,2928,-87),yU(JLt,2928,2946,33),yU(JLt,2946,2948,-87),JLt[2948]=33,yU(JLt,2949,2955,-19),yU(JLt,2955,2958,33),yU(JLt,2958,2961,-19),JLt[2961]=33,yU(JLt,2962,2966,-19),yU(JLt,2966,2969,33),yU(JLt,2969,2971,-19),JLt[2971]=33,JLt[2972]=-19,JLt[2973]=33,yU(JLt,2974,2976,-19),yU(JLt,2976,2979,33),yU(JLt,2979,2981,-19),yU(JLt,2981,2984,33),yU(JLt,2984,2987,-19),yU(JLt,2987,2990,33),yU(JLt,2990,2998,-19),JLt[2998]=33,yU(JLt,2999,3002,-19),yU(JLt,3002,3006,33),yU(JLt,3006,3011,-87),yU(JLt,3011,3014,33),yU(JLt,3014,3017,-87),JLt[3017]=33,yU(JLt,3018,3022,-87),yU(JLt,3022,3031,33),JLt[3031]=-87,yU(JLt,3032,3047,33),yU(JLt,3047,3056,-87),yU(JLt,3056,3073,33),yU(JLt,3073,3076,-87),JLt[3076]=33,yU(JLt,3077,3085,-19),JLt[3085]=33,yU(JLt,3086,3089,-19),JLt[3089]=33,yU(JLt,3090,3113,-19),JLt[3113]=33,yU(JLt,3114,3124,-19),JLt[3124]=33,yU(JLt,3125,3130,-19),yU(JLt,3130,3134,33),yU(JLt,3134,3141,-87),JLt[3141]=33,yU(JLt,3142,3145,-87),JLt[3145]=33,yU(JLt,3146,3150,-87),yU(JLt,3150,3157,33),yU(JLt,3157,3159,-87),yU(JLt,3159,3168,33),yU(JLt,3168,3170,-19),yU(JLt,3170,3174,33),yU(JLt,3174,3184,-87),yU(JLt,3184,3202,33),yU(JLt,3202,3204,-87),JLt[3204]=33,yU(JLt,3205,3213,-19),JLt[3213]=33,yU(JLt,3214,3217,-19),JLt[3217]=33,yU(JLt,3218,3241,-19),JLt[3241]=33,yU(JLt,3242,3252,-19),JLt[3252]=33,yU(JLt,3253,3258,-19),yU(JLt,3258,3262,33),yU(JLt,3262,3269,-87),JLt[3269]=33,yU(JLt,3270,3273,-87),JLt[3273]=33,yU(JLt,3274,3278,-87),yU(JLt,3278,3285,33),yU(JLt,3285,3287,-87),yU(JLt,3287,3294,33),JLt[3294]=-19,JLt[3295]=33,yU(JLt,3296,3298,-19),yU(JLt,3298,3302,33),yU(JLt,3302,3312,-87),yU(JLt,3312,3330,33),yU(JLt,3330,3332,-87),JLt[3332]=33,yU(JLt,3333,3341,-19),JLt[3341]=33,yU(JLt,3342,3345,-19),JLt[3345]=33,yU(JLt,3346,3369,-19),JLt[3369]=33,yU(JLt,3370,3386,-19),yU(JLt,3386,3390,33),yU(JLt,3390,3396,-87),yU(JLt,3396,3398,33),yU(JLt,3398,3401,-87),JLt[3401]=33,yU(JLt,3402,3406,-87),yU(JLt,3406,3415,33),JLt[3415]=-87,yU(JLt,3416,3424,33),yU(JLt,3424,3426,-19),yU(JLt,3426,3430,33),yU(JLt,3430,3440,-87),yU(JLt,3440,3585,33),yU(JLt,3585,3631,-19),JLt[3631]=33,JLt[3632]=-19,JLt[3633]=-87,yU(JLt,3634,3636,-19),yU(JLt,3636,3643,-87),yU(JLt,3643,3648,33),yU(JLt,3648,3654,-19),yU(JLt,3654,3663,-87),JLt[3663]=33,yU(JLt,3664,3674,-87),yU(JLt,3674,3713,33),yU(JLt,3713,3715,-19),JLt[3715]=33,JLt[3716]=-19,yU(JLt,3717,3719,33),yU(JLt,3719,3721,-19),JLt[3721]=33,JLt[3722]=-19,yU(JLt,3723,3725,33),JLt[3725]=-19,yU(JLt,3726,3732,33),yU(JLt,3732,3736,-19),JLt[3736]=33,yU(JLt,3737,3744,-19),JLt[3744]=33,yU(JLt,3745,3748,-19),JLt[3748]=33,JLt[3749]=-19,JLt[3750]=33,JLt[3751]=-19,yU(JLt,3752,3754,33),yU(JLt,3754,3756,-19),JLt[3756]=33,yU(JLt,3757,3759,-19),JLt[3759]=33,JLt[3760]=-19,JLt[3761]=-87,yU(JLt,3762,3764,-19),yU(JLt,3764,3770,-87),JLt[3770]=33,yU(JLt,3771,3773,-87),JLt[3773]=-19,yU(JLt,3774,3776,33),yU(JLt,3776,3781,-19),JLt[3781]=33,JLt[3782]=-87,JLt[3783]=33,yU(JLt,3784,3790,-87),yU(JLt,3790,3792,33),yU(JLt,3792,3802,-87),yU(JLt,3802,3864,33),yU(JLt,3864,3866,-87),yU(JLt,3866,3872,33),yU(JLt,3872,3882,-87),yU(JLt,3882,3893,33),JLt[3893]=-87,JLt[3894]=33,JLt[3895]=-87,JLt[3896]=33,JLt[3897]=-87,yU(JLt,3898,3902,33),yU(JLt,3902,3904,-87),yU(JLt,3904,3912,-19),JLt[3912]=33,yU(JLt,3913,3946,-19),yU(JLt,3946,3953,33),yU(JLt,3953,3973,-87),JLt[3973]=33,yU(JLt,3974,3980,-87),yU(JLt,3980,3984,33),yU(JLt,3984,3990,-87),JLt[3990]=33,JLt[3991]=-87,JLt[3992]=33,yU(JLt,3993,4014,-87),yU(JLt,4014,4017,33),yU(JLt,4017,4024,-87),JLt[4024]=33,JLt[4025]=-87,yU(JLt,4026,4256,33),yU(JLt,4256,4294,-19),yU(JLt,4294,4304,33),yU(JLt,4304,4343,-19),yU(JLt,4343,4352,33),JLt[4352]=-19,JLt[4353]=33,yU(JLt,4354,4356,-19),JLt[4356]=33,yU(JLt,4357,4360,-19),JLt[4360]=33,JLt[4361]=-19,JLt[4362]=33,yU(JLt,4363,4365,-19),JLt[4365]=33,yU(JLt,4366,4371,-19),yU(JLt,4371,4412,33),JLt[4412]=-19,JLt[4413]=33,JLt[4414]=-19,JLt[4415]=33,JLt[4416]=-19,yU(JLt,4417,4428,33),JLt[4428]=-19,JLt[4429]=33,JLt[4430]=-19,JLt[4431]=33,JLt[4432]=-19,yU(JLt,4433,4436,33),yU(JLt,4436,4438,-19),yU(JLt,4438,4441,33),JLt[4441]=-19,yU(JLt,4442,4447,33),yU(JLt,4447,4450,-19),JLt[4450]=33,JLt[4451]=-19,JLt[4452]=33,JLt[4453]=-19,JLt[4454]=33,JLt[4455]=-19,JLt[4456]=33,JLt[4457]=-19,yU(JLt,4458,4461,33),yU(JLt,4461,4463,-19),yU(JLt,4463,4466,33),yU(JLt,4466,4468,-19),JLt[4468]=33,JLt[4469]=-19,yU(JLt,4470,4510,33),JLt[4510]=-19,yU(JLt,4511,4520,33),JLt[4520]=-19,yU(JLt,4521,4523,33),JLt[4523]=-19,yU(JLt,4524,4526,33),yU(JLt,4526,4528,-19),yU(JLt,4528,4535,33),yU(JLt,4535,4537,-19),JLt[4537]=33,JLt[4538]=-19,JLt[4539]=33,yU(JLt,4540,4547,-19),yU(JLt,4547,4587,33),JLt[4587]=-19,yU(JLt,4588,4592,33),JLt[4592]=-19,yU(JLt,4593,4601,33),JLt[4601]=-19,yU(JLt,4602,7680,33),yU(JLt,7680,7836,-19),yU(JLt,7836,7840,33),yU(JLt,7840,7930,-19),yU(JLt,7930,7936,33),yU(JLt,7936,7958,-19),yU(JLt,7958,7960,33),yU(JLt,7960,7966,-19),yU(JLt,7966,7968,33),yU(JLt,7968,8006,-19),yU(JLt,8006,8008,33),yU(JLt,8008,8014,-19),yU(JLt,8014,8016,33),yU(JLt,8016,8024,-19),JLt[8024]=33,JLt[8025]=-19,JLt[8026]=33,JLt[8027]=-19,JLt[8028]=33,JLt[8029]=-19,JLt[8030]=33,yU(JLt,8031,8062,-19),yU(JLt,8062,8064,33),yU(JLt,8064,8117,-19),JLt[8117]=33,yU(JLt,8118,8125,-19),JLt[8125]=33,JLt[8126]=-19,yU(JLt,8127,8130,33),yU(JLt,8130,8133,-19),JLt[8133]=33,yU(JLt,8134,8141,-19),yU(JLt,8141,8144,33),yU(JLt,8144,8148,-19),yU(JLt,8148,8150,33),yU(JLt,8150,8156,-19),yU(JLt,8156,8160,33),yU(JLt,8160,8173,-19),yU(JLt,8173,8178,33),yU(JLt,8178,8181,-19),JLt[8181]=33,yU(JLt,8182,8189,-19),yU(JLt,8189,8400,33),yU(JLt,8400,8413,-87),yU(JLt,8413,8417,33),JLt[8417]=-87,yU(JLt,8418,8486,33),JLt[8486]=-19,yU(JLt,8487,8490,33),yU(JLt,8490,8492,-19),yU(JLt,8492,8494,33),JLt[8494]=-19,yU(JLt,8495,8576,33),yU(JLt,8576,8579,-19),yU(JLt,8579,12293,33),JLt[12293]=-87,JLt[12294]=33,JLt[12295]=-19,yU(JLt,12296,12321,33),yU(JLt,12321,12330,-19),yU(JLt,12330,12336,-87),JLt[12336]=33,yU(JLt,12337,12342,-87),yU(JLt,12342,12353,33),yU(JLt,12353,12437,-19),yU(JLt,12437,12441,33),yU(JLt,12441,12443,-87),yU(JLt,12443,12445,33),yU(JLt,12445,12447,-87),yU(JLt,12447,12449,33),yU(JLt,12449,12539,-19),JLt[12539]=33,yU(JLt,12540,12543,-87),yU(JLt,12543,12549,33),yU(JLt,12549,12589,-19),yU(JLt,12589,19968,33),yU(JLt,19968,40870,-19),yU(JLt,40870,44032,33),yU(JLt,44032,55204,-19),yU(JLt,55204,HQn,33),yU(JLt,57344,65534,33)}function TWn(n){var t,e,i,r,c,a,u;n.hb||(n.hb=!0,Nrn(n,"ecore"),xrn(n,"ecore"),Drn(n,V9n),cun(n.fb,"E"),cun(n.L,"T"),cun(n.P,"K"),cun(n.P,"V"),cun(n.cb,"E"),f9(kY(n.b),n.bb),f9(kY(n.a),n.Q),f9(kY(n.o),n.p),f9(kY(n.p),n.R),f9(kY(n.q),n.p),f9(kY(n.v),n.q),f9(kY(n.w),n.R),f9(kY(n.B),n.Q),f9(kY(n.R),n.Q),f9(kY(n.T),n.eb),f9(kY(n.U),n.R),f9(kY(n.V),n.eb),f9(kY(n.W),n.bb),f9(kY(n.bb),n.eb),f9(kY(n.eb),n.R),f9(kY(n.db),n.R),z0(n.b,BAt,l9n,!1,!1,!0),ucn(BB(Wtn(QQ(n.b),0),34),n.e,"iD",null,0,1,BAt,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.b),1),18),n.q,null,"eAttributeType",1,1,BAt,!0,!0,!1,!1,!0,!1,!0),z0(n.a,KAt,s9n,!1,!1,!0),ucn(BB(Wtn(QQ(n.a),0),34),n._,T6n,null,0,1,KAt,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.a),1),18),n.ab,null,"details",0,-1,KAt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.a),2),18),n.Q,BB(Wtn(QQ(n.Q),0),18),"eModelElement",0,1,KAt,!0,!1,!0,!1,!1,!1,!1),Myn(BB(Wtn(QQ(n.a),3),18),n.S,null,"contents",0,-1,KAt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.a),4),18),n.S,null,"references",0,-1,KAt,!1,!1,!0,!1,!0,!1,!1),z0(n.o,qAt,"EClass",!1,!1,!0),ucn(BB(Wtn(QQ(n.o),0),34),n.e,"abstract",null,0,1,qAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.o),1),34),n.e,"interface",null,0,1,qAt,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.o),2),18),n.o,null,"eSuperTypes",0,-1,qAt,!1,!1,!0,!1,!0,!0,!1),Myn(BB(Wtn(QQ(n.o),3),18),n.T,BB(Wtn(QQ(n.T),0),18),"eOperations",0,-1,qAt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.o),4),18),n.b,null,"eAllAttributes",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.o),5),18),n.W,null,"eAllReferences",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.o),6),18),n.W,null,"eReferences",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.o),7),18),n.b,null,"eAttributes",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.o),8),18),n.W,null,"eAllContainments",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.o),9),18),n.T,null,"eAllOperations",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.o),10),18),n.bb,null,"eAllStructuralFeatures",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.o),11),18),n.o,null,"eAllSuperTypes",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.o),12),18),n.b,null,"eIDAttribute",0,1,qAt,!0,!0,!1,!1,!1,!1,!0),Myn(BB(Wtn(QQ(n.o),13),18),n.bb,BB(Wtn(QQ(n.bb),7),18),"eStructuralFeatures",0,-1,qAt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.o),14),18),n.H,null,"eGenericSuperTypes",0,-1,qAt,!1,!1,!0,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.o),15),18),n.H,null,"eAllGenericSuperTypes",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),$yn(u=fin(BB(Wtn(VQ(n.o),0),59),n.e,"isSuperTypeOf"),n.o,"someClass"),fin(BB(Wtn(VQ(n.o),1),59),n.I,"getFeatureCount"),$yn(u=fin(BB(Wtn(VQ(n.o),2),59),n.bb,Z9n),n.I,"featureID"),$yn(u=fin(BB(Wtn(VQ(n.o),3),59),n.I,n7n),n.bb,t7n),$yn(u=fin(BB(Wtn(VQ(n.o),4),59),n.bb,Z9n),n._,"featureName"),fin(BB(Wtn(VQ(n.o),5),59),n.I,"getOperationCount"),$yn(u=fin(BB(Wtn(VQ(n.o),6),59),n.T,"getEOperation"),n.I,"operationID"),$yn(u=fin(BB(Wtn(VQ(n.o),7),59),n.I,e7n),n.T,i7n),$yn(u=fin(BB(Wtn(VQ(n.o),8),59),n.T,"getOverride"),n.T,i7n),$yn(u=fin(BB(Wtn(VQ(n.o),9),59),n.H,"getFeatureType"),n.bb,t7n),z0(n.p,HAt,b9n,!0,!1,!0),ucn(BB(Wtn(QQ(n.p),0),34),n._,"instanceClassName",null,0,1,HAt,!1,!0,!0,!0,!0,!1),t=ZV(n.L),e=s2(),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),_On(BB(Wtn(QQ(n.p),1),34),t,"instanceClass",HAt,!0,!0,!1,!0),ucn(BB(Wtn(QQ(n.p),2),34),n.M,r7n,null,0,1,HAt,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.p),3),34),n._,"instanceTypeName",null,0,1,HAt,!1,!0,!0,!0,!0,!1),Myn(BB(Wtn(QQ(n.p),4),18),n.U,BB(Wtn(QQ(n.U),3),18),"ePackage",0,1,HAt,!0,!1,!1,!1,!0,!1,!1),Myn(BB(Wtn(QQ(n.p),5),18),n.db,null,c7n,0,-1,HAt,!1,!1,!0,!0,!0,!1,!1),$yn(u=fin(BB(Wtn(VQ(n.p),0),59),n.e,a7n),n.M,AWn),fin(BB(Wtn(VQ(n.p),1),59),n.I,"getClassifierID"),z0(n.q,GAt,"EDataType",!1,!1,!0),ucn(BB(Wtn(QQ(n.q),0),34),n.e,"serializable",a5n,0,1,GAt,!1,!1,!0,!1,!0,!1),z0(n.v,XAt,"EEnum",!1,!1,!0),Myn(BB(Wtn(QQ(n.v),0),18),n.w,BB(Wtn(QQ(n.w),3),18),"eLiterals",0,-1,XAt,!1,!1,!0,!0,!1,!1,!1),$yn(u=fin(BB(Wtn(VQ(n.v),0),59),n.w,u7n),n._,t8n),$yn(u=fin(BB(Wtn(VQ(n.v),1),59),n.w,u7n),n.I,E6n),$yn(u=fin(BB(Wtn(VQ(n.v),2),59),n.w,"getEEnumLiteralByLiteral"),n._,"literal"),z0(n.w,WAt,w9n,!1,!1,!0),ucn(BB(Wtn(QQ(n.w),0),34),n.I,E6n,null,0,1,WAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.w),1),34),n.A,"instance",null,0,1,WAt,!0,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.w),2),34),n._,"literal",null,0,1,WAt,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.w),3),18),n.v,BB(Wtn(QQ(n.v),0),18),"eEnum",0,1,WAt,!0,!1,!1,!1,!1,!1,!1),z0(n.B,HOt,"EFactory",!1,!1,!0),Myn(BB(Wtn(QQ(n.B),0),18),n.U,BB(Wtn(QQ(n.U),2),18),"ePackage",1,1,HOt,!0,!1,!0,!1,!1,!1,!1),$yn(u=fin(BB(Wtn(VQ(n.B),0),59),n.S,"create"),n.o,"eClass"),$yn(u=fin(BB(Wtn(VQ(n.B),1),59),n.M,"createFromString"),n.q,"eDataType"),$yn(u,n._,"literalValue"),$yn(u=fin(BB(Wtn(VQ(n.B),2),59),n._,"convertToString"),n.q,"eDataType"),$yn(u,n.M,"instanceValue"),z0(n.Q,BOt,Y5n,!0,!1,!0),Myn(BB(Wtn(QQ(n.Q),0),18),n.a,BB(Wtn(QQ(n.a),2),18),"eAnnotations",0,-1,BOt,!1,!1,!0,!0,!1,!1,!1),$yn(u=fin(BB(Wtn(VQ(n.Q),0),59),n.a,"getEAnnotation"),n._,T6n),z0(n.R,qOt,J5n,!0,!1,!0),ucn(BB(Wtn(QQ(n.R),0),34),n._,t8n,null,0,1,qOt,!1,!1,!0,!1,!0,!1),z0(n.S,LOt,"EObject",!1,!1,!0),fin(BB(Wtn(VQ(n.S),0),59),n.o,"eClass"),fin(BB(Wtn(VQ(n.S),1),59),n.e,"eIsProxy"),fin(BB(Wtn(VQ(n.S),2),59),n.X,"eResource"),fin(BB(Wtn(VQ(n.S),3),59),n.S,"eContainer"),fin(BB(Wtn(VQ(n.S),4),59),n.bb,"eContainingFeature"),fin(BB(Wtn(VQ(n.S),5),59),n.W,"eContainmentFeature"),u=fin(BB(Wtn(VQ(n.S),6),59),null,"eContents"),t=ZV(n.fb),e=ZV(n.S),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),(r=HTn(u,t,null))&&r.Fi(),u=fin(BB(Wtn(VQ(n.S),7),59),null,"eAllContents"),t=ZV(n.cb),e=ZV(n.S),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),(c=HTn(u,t,null))&&c.Fi(),u=fin(BB(Wtn(VQ(n.S),8),59),null,"eCrossReferences"),t=ZV(n.fb),e=ZV(n.S),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),(a=HTn(u,t,null))&&a.Fi(),$yn(u=fin(BB(Wtn(VQ(n.S),9),59),n.M,"eGet"),n.bb,t7n),$yn(u=fin(BB(Wtn(VQ(n.S),10),59),n.M,"eGet"),n.bb,t7n),$yn(u,n.e,"resolve"),$yn(u=fin(BB(Wtn(VQ(n.S),11),59),null,"eSet"),n.bb,t7n),$yn(u,n.M,"newValue"),$yn(u=fin(BB(Wtn(VQ(n.S),12),59),n.e,"eIsSet"),n.bb,t7n),$yn(u=fin(BB(Wtn(VQ(n.S),13),59),null,"eUnset"),n.bb,t7n),$yn(u=fin(BB(Wtn(VQ(n.S),14),59),n.M,"eInvoke"),n.T,i7n),t=ZV(n.fb),e=s2(),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),Ujn(u,t,"arguments"),_W(u,n.K),z0(n.T,QAt,g9n,!1,!1,!0),Myn(BB(Wtn(QQ(n.T),0),18),n.o,BB(Wtn(QQ(n.o),3),18),o7n,0,1,QAt,!0,!1,!1,!1,!1,!1,!1),Myn(BB(Wtn(QQ(n.T),1),18),n.db,null,c7n,0,-1,QAt,!1,!1,!0,!0,!0,!1,!1),Myn(BB(Wtn(QQ(n.T),2),18),n.V,BB(Wtn(QQ(n.V),0),18),"eParameters",0,-1,QAt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.T),3),18),n.p,null,"eExceptions",0,-1,QAt,!1,!1,!0,!1,!0,!0,!1),Myn(BB(Wtn(QQ(n.T),4),18),n.H,null,"eGenericExceptions",0,-1,QAt,!1,!1,!0,!0,!1,!0,!1),fin(BB(Wtn(VQ(n.T),0),59),n.I,e7n),$yn(u=fin(BB(Wtn(VQ(n.T),1),59),n.e,"isOverrideOf"),n.T,"someOperation"),z0(n.U,GOt,"EPackage",!1,!1,!0),ucn(BB(Wtn(QQ(n.U),0),34),n._,"nsURI",null,0,1,GOt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.U),1),34),n._,"nsPrefix",null,0,1,GOt,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.U),2),18),n.B,BB(Wtn(QQ(n.B),0),18),"eFactoryInstance",1,1,GOt,!0,!1,!0,!1,!1,!1,!1),Myn(BB(Wtn(QQ(n.U),3),18),n.p,BB(Wtn(QQ(n.p),4),18),"eClassifiers",0,-1,GOt,!1,!1,!0,!0,!0,!1,!1),Myn(BB(Wtn(QQ(n.U),4),18),n.U,BB(Wtn(QQ(n.U),5),18),"eSubpackages",0,-1,GOt,!1,!1,!0,!0,!0,!1,!1),Myn(BB(Wtn(QQ(n.U),5),18),n.U,BB(Wtn(QQ(n.U),4),18),"eSuperPackage",0,1,GOt,!0,!1,!1,!1,!0,!1,!1),$yn(u=fin(BB(Wtn(VQ(n.U),0),59),n.p,"getEClassifier"),n._,t8n),z0(n.V,YAt,p9n,!1,!1,!0),Myn(BB(Wtn(QQ(n.V),0),18),n.T,BB(Wtn(QQ(n.T),2),18),"eOperation",0,1,YAt,!0,!1,!1,!1,!1,!1,!1),z0(n.W,JAt,v9n,!1,!1,!0),ucn(BB(Wtn(QQ(n.W),0),34),n.e,"containment",null,0,1,JAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.W),1),34),n.e,"container",null,0,1,JAt,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.W),2),34),n.e,"resolveProxies",a5n,0,1,JAt,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.W),3),18),n.W,null,"eOpposite",0,1,JAt,!1,!1,!0,!1,!0,!1,!1),Myn(BB(Wtn(QQ(n.W),4),18),n.o,null,"eReferenceType",1,1,JAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.W),5),18),n.b,null,"eKeys",0,-1,JAt,!1,!1,!0,!1,!0,!1,!1),z0(n.bb,FAt,f9n,!0,!1,!0),ucn(BB(Wtn(QQ(n.bb),0),34),n.e,"changeable",a5n,0,1,FAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.bb),1),34),n.e,"volatile",null,0,1,FAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.bb),2),34),n.e,"transient",null,0,1,FAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.bb),3),34),n._,"defaultValueLiteral",null,0,1,FAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.bb),4),34),n.M,r7n,null,0,1,FAt,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.bb),5),34),n.e,"unsettable",null,0,1,FAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.bb),6),34),n.e,"derived",null,0,1,FAt,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.bb),7),18),n.o,BB(Wtn(QQ(n.o),13),18),o7n,0,1,FAt,!0,!1,!1,!1,!1,!1,!1),fin(BB(Wtn(VQ(n.bb),0),59),n.I,n7n),u=fin(BB(Wtn(VQ(n.bb),1),59),null,"getContainerClass"),t=ZV(n.L),e=s2(),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),(i=HTn(u,t,null))&&i.Fi(),z0(n.eb,_At,h9n,!0,!1,!0),ucn(BB(Wtn(QQ(n.eb),0),34),n.e,"ordered",a5n,0,1,_At,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.eb),1),34),n.e,"unique",a5n,0,1,_At,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.eb),2),34),n.I,"lowerBound",null,0,1,_At,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.eb),3),34),n.I,"upperBound","1",0,1,_At,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.eb),4),34),n.e,"many",null,0,1,_At,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.eb),5),34),n.e,"required",null,0,1,_At,!0,!0,!1,!1,!0,!0),Myn(BB(Wtn(QQ(n.eb),6),18),n.p,null,"eType",0,1,_At,!1,!0,!0,!1,!0,!0,!1),Myn(BB(Wtn(QQ(n.eb),7),18),n.H,null,"eGenericType",0,1,_At,!1,!0,!0,!0,!1,!0,!1),z0(n.ab,Hnt,"EStringToStringMapEntry",!1,!1,!1),ucn(BB(Wtn(QQ(n.ab),0),34),n._,"key",null,0,1,Hnt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.ab),1),34),n._,E6n,null,0,1,Hnt,!1,!1,!0,!1,!0,!1),z0(n.H,VAt,d9n,!1,!1,!0),Myn(BB(Wtn(QQ(n.H),0),18),n.H,null,"eUpperBound",0,1,VAt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.H),1),18),n.H,null,"eTypeArguments",0,-1,VAt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.H),2),18),n.p,null,"eRawType",1,1,VAt,!0,!1,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.H),3),18),n.H,null,"eLowerBound",0,1,VAt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.H),4),18),n.db,null,"eTypeParameter",0,1,VAt,!1,!1,!0,!1,!1,!1,!1),Myn(BB(Wtn(QQ(n.H),5),18),n.p,null,"eClassifier",0,1,VAt,!1,!1,!0,!1,!0,!1,!1),$yn(u=fin(BB(Wtn(VQ(n.H),0),59),n.e,a7n),n.M,AWn),z0(n.db,O$t,m9n,!1,!1,!0),Myn(BB(Wtn(QQ(n.db),0),18),n.H,null,"eBounds",0,-1,O$t,!1,!1,!0,!0,!1,!1,!1),dV(n.c,iet,"EBigDecimal",!0),dV(n.d,oet,"EBigInteger",!0),dV(n.e,$Nt,"EBoolean",!0),dV(n.f,ktt,"EBooleanObject",!0),dV(n.i,NNt,"EByte",!0),dV(n.g,Gk(NNt,1),"EByteArray",!0),dV(n.j,Ttt,"EByteObject",!0),dV(n.k,ONt,"EChar",!0),dV(n.n,Stt,"ECharacterObject",!0),dV(n.r,mtt,"EDate",!0),dV(n.s,_Nt,"EDiagnosticChain",!1),dV(n.t,xNt,"EDouble",!0),dV(n.u,Ptt,"EDoubleObject",!0),dV(n.fb,uAt,"EEList",!1),dV(n.A,yAt,"EEnumerator",!1),dV(n.C,oLt,"EFeatureMap",!1),dV(n.D,$$t,"EFeatureMapEntry",!1),dV(n.F,DNt,"EFloat",!0),dV(n.G,Ctt,"EFloatObject",!0),dV(n.I,ANt,"EInt",!0),dV(n.J,Att,"EIntegerObject",!0),dV(n.L,$nt,"EJavaClass",!0),dV(n.M,Ant,"EJavaObject",!0),dV(n.N,LNt,"ELong",!0),dV(n.O,Rtt,"ELongObject",!0),dV(n.P,Nnt,"EMap",!1),dV(n.X,iLt,"EResource",!1),dV(n.Y,FNt,"EResourceSet",!1),dV(n.Z,RNt,"EShort",!0),dV(n.$,_tt,"EShortObject",!0),dV(n._,Qtt,"EString",!0),dV(n.cb,sAt,"ETreeIterator",!1),dV(n.K,BNt,"EInvocationTargetException",!1),Lhn(n,V9n))}"undefined"!=typeof window?e=window:void 0!==n?e=n:"undefined"!=typeof self&&(e=self);var MWn,SWn,PWn,CWn,IWn,OWn,AWn="object",$Wn="boolean",LWn="number",NWn="string",xWn="function",DWn=2147483647,RWn="java.lang",KWn={3:1},_Wn="com.google.common.base",FWn=", ",BWn="%s (%s) must not be negative",HWn={3:1,4:1,5:1},qWn="negative size: ",GWn="Optional.of(",zWn="null",UWn={198:1,47:1},XWn="com.google.common.collect",WWn={198:1,47:1,125:1},VWn={224:1,3:1},QWn={47:1},YWn="java.util",JWn={83:1},ZWn={20:1,28:1,14:1},nVn=1965,tVn={20:1,28:1,14:1,21:1},eVn={83:1,171:1,161:1},iVn={20:1,28:1,14:1,21:1,84:1},rVn={20:1,28:1,14:1,271:1,21:1,84:1},cVn={47:1,125:1},aVn={345:1,42:1},uVn="AbstractMapEntry",oVn="expectedValuesPerKey",sVn={3:1,6:1,4:1,5:1},hVn=16384,fVn={164:1},lVn={38:1},bVn={l:4194303,m:4194303,h:524287},wVn={196:1},dVn={245:1,3:1,35:1},gVn="range unbounded on this side",pVn={20:1},vVn={20:1,14:1},mVn={3:1,20:1,28:1,14:1},yVn={152:1,3:1,20:1,28:1,14:1,15:1,54:1},kVn={3:1,4:1,5:1,165:1},jVn={3:1,83:1},EVn={20:1,14:1,21:1},TVn={3:1,20:1,28:1,14:1,21:1},MVn={20:1,14:1,21:1,84:1},SVn=461845907,PVn=-862048943,CVn={3:1,6:1,4:1,5:1,165:1},IVn="expectedSize",OVn=1073741824,AVn="initialArraySize",$Vn={3:1,6:1,4:1,9:1,5:1},LVn={20:1,28:1,52:1,14:1,15:1},NVn="arraySize",xVn={20:1,28:1,52:1,14:1,15:1,54:1},DVn={45:1},RVn={365:1},KVn=1e-4,_Vn=-2147483648,FVn="__noinit__",BVn={3:1,102:1,60:1,78:1},HVn="com.google.gwt.core.client.impl",qVn="String",GVn="com.google.gwt.core.client",zVn="anonymous",UVn="fnStack",XVn="Unknown",WVn={195:1,3:1,4:1},VVn=1e3,QVn=65535,YVn="January",JVn="February",ZVn="March",nQn="April",tQn="May",eQn="June",iQn="July",rQn="August",cQn="September",aQn="October",uQn="November",oQn="December",sQn=1900,hQn={48:1,3:1,4:1},fQn="Before Christ",lQn="Anno Domini",bQn="Sunday",wQn="Monday",dQn="Tuesday",gQn="Wednesday",pQn="Thursday",vQn="Friday",mQn="Saturday",yQn="com.google.gwt.i18n.shared",kQn="DateTimeFormat",jQn="com.google.gwt.i18n.client",EQn="DefaultDateTimeFormatInfo",TQn={3:1,4:1,35:1,199:1},MQn="com.google.gwt.json.client",SQn=4194303,PQn=1048575,CQn=524288,IQn=4194304,OQn=17592186044416,AQn=1e9,$Qn=-17592186044416,LQn="java.io",NQn={3:1,102:1,73:1,60:1,78:1},xQn={3:1,289:1,78:1},DQn='For input string: "',RQn=1/0,KQn=-1/0,_Qn=4096,FQn={3:1,4:1,364:1},BQn=65536,HQn=55296,qQn={104:1,3:1,4:1},GQn=1e5,zQn=.3010299956639812,UQn=4294967295,XQn=4294967296,WQn="0.0",VQn={42:1},QQn={3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1},YQn={3:1,20:1,28:1,52:1,14:1,15:1,54:1},JQn={20:1,14:1,15:1},ZQn={3:1,62:1},nYn={182:1},tYn={3:1,4:1,83:1},eYn={3:1,4:1,20:1,28:1,14:1,53:1,21:1},iYn="delete",rYn=1.4901161193847656e-8,cYn=11102230246251565e-32,aYn=15525485,uYn=5.960464477539063e-8,oYn=16777216,sYn=16777215,hYn=", length: ",fYn={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1},lYn={3:1,35:1,22:1,297:1},bYn="java.util.function",wYn="java.util.logging",dYn={3:1,4:1,5:1,842:1},gYn="undefined",pYn="java.util.stream",vYn={525:1,670:1},mYn="fromIndex: ",yYn=" > toIndex: ",kYn=", toIndex: ",jYn="Index: ",EYn=", Size: ",TYn="org.eclipse.elk.alg.common",MYn={62:1},SYn="org.eclipse.elk.alg.common.compaction",PYn="Scanline/EventHandler",CYn="org.eclipse.elk.alg.common.compaction.oned",IYn="CNode belongs to another CGroup.",OYn="ISpacingsHandler/1",AYn="The ",$Yn=" instance has been finished already.",LYn="The direction ",NYn=" is not supported by the CGraph instance.",xYn="OneDimensionalCompactor",DYn="OneDimensionalCompactor/lambda$0$Type",RYn="Quadruplet",KYn="ScanlineConstraintCalculator",_Yn="ScanlineConstraintCalculator/ConstraintsScanlineHandler",FYn="ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type",BYn="ScanlineConstraintCalculator/Timestamp",HYn="ScanlineConstraintCalculator/lambda$0$Type",qYn={169:1,45:1},GYn="org.eclipse.elk.alg.common.compaction.options",zYn="org.eclipse.elk.core.data",UYn="org.eclipse.elk.polyomino.traversalStrategy",XYn="org.eclipse.elk.polyomino.lowLevelSort",WYn="org.eclipse.elk.polyomino.highLevelSort",VYn="org.eclipse.elk.polyomino.fill",QYn={130:1},YYn="polyomino",JYn="org.eclipse.elk.alg.common.networksimplex",ZYn={177:1,3:1,4:1},nJn="org.eclipse.elk.alg.common.nodespacing",tJn="org.eclipse.elk.alg.common.nodespacing.cellsystem",eJn="CENTER",iJn={212:1,326:1},rJn={3:1,4:1,5:1,595:1},cJn="LEFT",aJn="RIGHT",uJn="Vertical alignment cannot be null",oJn="BOTTOM",sJn="org.eclipse.elk.alg.common.nodespacing.internal",hJn="UNDEFINED",fJn=.01,lJn="org.eclipse.elk.alg.common.nodespacing.internal.algorithm",bJn="LabelPlacer/lambda$0$Type",wJn="LabelPlacer/lambda$1$Type",dJn="portRatioOrPosition",gJn="org.eclipse.elk.alg.common.overlaps",pJn="DOWN",vJn="org.eclipse.elk.alg.common.polyomino",mJn="NORTH",yJn="EAST",kJn="SOUTH",jJn="WEST",EJn="org.eclipse.elk.alg.common.polyomino.structures",TJn="Direction",MJn="Grid is only of size ",SJn=". Requested point (",PJn=") is out of bounds.",CJn=" Given center based coordinates were (",IJn="org.eclipse.elk.graph.properties",OJn="IPropertyHolder",AJn={3:1,94:1,134:1},$Jn="org.eclipse.elk.alg.common.spore",LJn="org.eclipse.elk.alg.common.utils",NJn={209:1},xJn="org.eclipse.elk.core",DJn="Connected Components Compaction",RJn="org.eclipse.elk.alg.disco",KJn="org.eclipse.elk.alg.disco.graph",_Jn="org.eclipse.elk.alg.disco.options",FJn="CompactionStrategy",BJn="org.eclipse.elk.disco.componentCompaction.strategy",HJn="org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm",qJn="org.eclipse.elk.disco.debug.discoGraph",GJn="org.eclipse.elk.disco.debug.discoPolys",zJn="componentCompaction",UJn="org.eclipse.elk.disco",XJn="org.eclipse.elk.spacing.componentComponent",WJn="org.eclipse.elk.edge.thickness",VJn="org.eclipse.elk.aspectRatio",QJn="org.eclipse.elk.padding",YJn="org.eclipse.elk.alg.disco.transform",JJn=1.5707963267948966,ZJn=17976931348623157e292,nZn={3:1,4:1,5:1,192:1},tZn={3:1,6:1,4:1,5:1,106:1,120:1},eZn="org.eclipse.elk.alg.force",iZn="ComponentsProcessor",rZn="ComponentsProcessor/1",cZn="org.eclipse.elk.alg.force.graph",aZn="Component Layout",uZn="org.eclipse.elk.alg.force.model",oZn="org.eclipse.elk.force.model",sZn="org.eclipse.elk.force.iterations",hZn="org.eclipse.elk.force.repulsivePower",fZn="org.eclipse.elk.force.temperature",lZn=.001,bZn="org.eclipse.elk.force.repulsion",wZn="org.eclipse.elk.alg.force.options",dZn=1.600000023841858,gZn="org.eclipse.elk.force",pZn="org.eclipse.elk.priority",vZn="org.eclipse.elk.spacing.nodeNode",mZn="org.eclipse.elk.spacing.edgeLabel",yZn="org.eclipse.elk.randomSeed",kZn="org.eclipse.elk.separateConnectedComponents",jZn="org.eclipse.elk.interactive",EZn="org.eclipse.elk.portConstraints",TZn="org.eclipse.elk.edgeLabels.inline",MZn="org.eclipse.elk.omitNodeMicroLayout",SZn="org.eclipse.elk.nodeSize.options",PZn="org.eclipse.elk.nodeSize.constraints",CZn="org.eclipse.elk.nodeLabels.placement",IZn="org.eclipse.elk.portLabels.placement",OZn="origin",AZn="random",$Zn="boundingBox.upLeft",LZn="boundingBox.lowRight",NZn="org.eclipse.elk.stress.fixed",xZn="org.eclipse.elk.stress.desiredEdgeLength",DZn="org.eclipse.elk.stress.dimension",RZn="org.eclipse.elk.stress.epsilon",KZn="org.eclipse.elk.stress.iterationLimit",_Zn="org.eclipse.elk.stress",FZn="ELK Stress",BZn="org.eclipse.elk.nodeSize.minimum",HZn="org.eclipse.elk.alg.force.stress",qZn="Layered layout",GZn="org.eclipse.elk.alg.layered",zZn="org.eclipse.elk.alg.layered.compaction.components",UZn="org.eclipse.elk.alg.layered.compaction.oned",XZn="org.eclipse.elk.alg.layered.compaction.oned.algs",WZn="org.eclipse.elk.alg.layered.compaction.recthull",VZn="org.eclipse.elk.alg.layered.components",QZn="NONE",YZn={3:1,6:1,4:1,9:1,5:1,122:1},JZn={3:1,6:1,4:1,5:1,141:1,106:1,120:1},ZZn="org.eclipse.elk.alg.layered.compound",n1n={51:1},t1n="org.eclipse.elk.alg.layered.graph",e1n=" -> ",i1n="Not supported by LGraph",r1n="Port side is undefined",c1n={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},a1n={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},u1n={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},o1n="([{\"' \t\r\n",s1n=")]}\"' \t\r\n",h1n="The given string contains parts that cannot be parsed as numbers.",f1n="org.eclipse.elk.core.math",l1n={3:1,4:1,142:1,207:1,414:1},b1n={3:1,4:1,116:1,207:1,414:1},w1n="org.eclipse.elk.layered",d1n="org.eclipse.elk.alg.layered.graph.transform",g1n="ElkGraphImporter",p1n="ElkGraphImporter/lambda$0$Type",v1n="ElkGraphImporter/lambda$1$Type",m1n="ElkGraphImporter/lambda$2$Type",y1n="ElkGraphImporter/lambda$4$Type",k1n="Node margin calculation",j1n="org.eclipse.elk.alg.layered.intermediate",E1n="ONE_SIDED_GREEDY_SWITCH",T1n="TWO_SIDED_GREEDY_SWITCH",M1n="No implementation is available for the layout processor ",S1n="IntermediateProcessorStrategy",P1n="Node '",C1n="FIRST_SEPARATE",I1n="LAST_SEPARATE",O1n="Odd port side processing",A1n="org.eclipse.elk.alg.layered.intermediate.compaction",$1n="org.eclipse.elk.alg.layered.intermediate.greedyswitch",L1n="org.eclipse.elk.alg.layered.p3order.counting",N1n={225:1},x1n="org.eclipse.elk.alg.layered.intermediate.loops",D1n="org.eclipse.elk.alg.layered.intermediate.loops.ordering",R1n="org.eclipse.elk.alg.layered.intermediate.loops.routing",K1n="org.eclipse.elk.alg.layered.intermediate.preserveorder",_1n="org.eclipse.elk.alg.layered.intermediate.wrapping",F1n="org.eclipse.elk.alg.layered.options",B1n="INTERACTIVE",H1n="DEPTH_FIRST",q1n="EDGE_LENGTH",G1n="SELF_LOOPS",z1n="firstTryWithInitialOrder",U1n="org.eclipse.elk.layered.directionCongruency",X1n="org.eclipse.elk.layered.feedbackEdges",W1n="org.eclipse.elk.layered.interactiveReferencePoint",V1n="org.eclipse.elk.layered.mergeEdges",Q1n="org.eclipse.elk.layered.mergeHierarchyEdges",Y1n="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",J1n="org.eclipse.elk.layered.portSortingStrategy",Z1n="org.eclipse.elk.layered.thoroughness",n0n="org.eclipse.elk.layered.unnecessaryBendpoints",t0n="org.eclipse.elk.layered.generatePositionAndLayerIds",e0n="org.eclipse.elk.layered.cycleBreaking.strategy",i0n="org.eclipse.elk.layered.layering.strategy",r0n="org.eclipse.elk.layered.layering.layerConstraint",c0n="org.eclipse.elk.layered.layering.layerChoiceConstraint",a0n="org.eclipse.elk.layered.layering.layerId",u0n="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",o0n="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",s0n="org.eclipse.elk.layered.layering.nodePromotion.strategy",h0n="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",f0n="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",l0n="org.eclipse.elk.layered.crossingMinimization.strategy",b0n="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",w0n="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",d0n="org.eclipse.elk.layered.crossingMinimization.semiInteractive",g0n="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",p0n="org.eclipse.elk.layered.crossingMinimization.positionId",v0n="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",m0n="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",y0n="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",k0n="org.eclipse.elk.layered.nodePlacement.strategy",j0n="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",E0n="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",T0n="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",M0n="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",S0n="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility",P0n="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",C0n="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",I0n="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",O0n="org.eclipse.elk.layered.edgeRouting.splines.mode",A0n="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",$0n="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",L0n="org.eclipse.elk.layered.spacing.baseValue",N0n="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",x0n="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",D0n="org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers",R0n="org.eclipse.elk.layered.priority.direction",K0n="org.eclipse.elk.layered.priority.shortness",_0n="org.eclipse.elk.layered.priority.straightness",F0n="org.eclipse.elk.layered.compaction.connectedComponents",B0n="org.eclipse.elk.layered.compaction.postCompaction.strategy",H0n="org.eclipse.elk.layered.compaction.postCompaction.constraints",q0n="org.eclipse.elk.layered.highDegreeNodes.treatment",G0n="org.eclipse.elk.layered.highDegreeNodes.threshold",z0n="org.eclipse.elk.layered.highDegreeNodes.treeHeight",U0n="org.eclipse.elk.layered.wrapping.strategy",X0n="org.eclipse.elk.layered.wrapping.additionalEdgeSpacing",W0n="org.eclipse.elk.layered.wrapping.correctionFactor",V0n="org.eclipse.elk.layered.wrapping.cutting.strategy",Q0n="org.eclipse.elk.layered.wrapping.cutting.cuts",Y0n="org.eclipse.elk.layered.wrapping.cutting.msd.freedom",J0n="org.eclipse.elk.layered.wrapping.validify.strategy",Z0n="org.eclipse.elk.layered.wrapping.validify.forbiddenIndices",n2n="org.eclipse.elk.layered.wrapping.multiEdge.improveCuts",t2n="org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty",e2n="org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges",i2n="org.eclipse.elk.layered.edgeLabels.sideSelection",r2n="org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy",c2n="org.eclipse.elk.layered.considerModelOrder.strategy",a2n="org.eclipse.elk.layered.considerModelOrder.noModelOrder",u2n="org.eclipse.elk.layered.considerModelOrder.components",o2n="org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy",s2n="org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence",h2n="org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence",f2n="layering",l2n="layering.minWidth",b2n="layering.nodePromotion",w2n="crossingMinimization",d2n="org.eclipse.elk.hierarchyHandling",g2n="crossingMinimization.greedySwitch",p2n="nodePlacement",v2n="nodePlacement.bk",m2n="edgeRouting",y2n="org.eclipse.elk.edgeRouting",k2n="spacing",j2n="priority",E2n="compaction",T2n="compaction.postCompaction",M2n="Specifies whether and how post-process compaction is applied.",S2n="highDegreeNodes",P2n="wrapping",C2n="wrapping.cutting",I2n="wrapping.validify",O2n="wrapping.multiEdge",A2n="edgeLabels",$2n="considerModelOrder",L2n="org.eclipse.elk.spacing.commentComment",N2n="org.eclipse.elk.spacing.commentNode",x2n="org.eclipse.elk.spacing.edgeEdge",D2n="org.eclipse.elk.spacing.edgeNode",R2n="org.eclipse.elk.spacing.labelLabel",K2n="org.eclipse.elk.spacing.labelPortHorizontal",_2n="org.eclipse.elk.spacing.labelPortVertical",F2n="org.eclipse.elk.spacing.labelNode",B2n="org.eclipse.elk.spacing.nodeSelfLoop",H2n="org.eclipse.elk.spacing.portPort",q2n="org.eclipse.elk.spacing.individual",G2n="org.eclipse.elk.port.borderOffset",z2n="org.eclipse.elk.noLayout",U2n="org.eclipse.elk.port.side",X2n="org.eclipse.elk.debugMode",W2n="org.eclipse.elk.alignment",V2n="org.eclipse.elk.insideSelfLoops.activate",Q2n="org.eclipse.elk.insideSelfLoops.yo",Y2n="org.eclipse.elk.nodeSize.fixedGraphSize",J2n="org.eclipse.elk.direction",Z2n="org.eclipse.elk.nodeLabels.padding",n3n="org.eclipse.elk.portLabels.nextToPortIfPossible",t3n="org.eclipse.elk.portLabels.treatAsGroup",e3n="org.eclipse.elk.portAlignment.default",i3n="org.eclipse.elk.portAlignment.north",r3n="org.eclipse.elk.portAlignment.south",c3n="org.eclipse.elk.portAlignment.west",a3n="org.eclipse.elk.portAlignment.east",u3n="org.eclipse.elk.contentAlignment",o3n="org.eclipse.elk.junctionPoints",s3n="org.eclipse.elk.edgeLabels.placement",h3n="org.eclipse.elk.port.index",f3n="org.eclipse.elk.commentBox",l3n="org.eclipse.elk.hypernode",b3n="org.eclipse.elk.port.anchor",w3n="org.eclipse.elk.partitioning.activate",d3n="org.eclipse.elk.partitioning.partition",g3n="org.eclipse.elk.position",p3n="org.eclipse.elk.margins",v3n="org.eclipse.elk.spacing.portsSurrounding",m3n="org.eclipse.elk.interactiveLayout",y3n="org.eclipse.elk.core.util",k3n={3:1,4:1,5:1,593:1},j3n="NETWORK_SIMPLEX",E3n={123:1,51:1},T3n="org.eclipse.elk.alg.layered.p1cycles",M3n="org.eclipse.elk.alg.layered.p2layers",S3n={402:1,225:1},P3n={832:1,3:1,4:1},C3n="org.eclipse.elk.alg.layered.p3order",I3n="org.eclipse.elk.alg.layered.p4nodes",O3n={3:1,4:1,5:1,840:1},A3n=1e-5,$3n="org.eclipse.elk.alg.layered.p4nodes.bk",L3n="org.eclipse.elk.alg.layered.p5edges",N3n="org.eclipse.elk.alg.layered.p5edges.orthogonal",x3n="org.eclipse.elk.alg.layered.p5edges.orthogonal.direction",D3n=1e-6,R3n="org.eclipse.elk.alg.layered.p5edges.splines",K3n=.09999999999999998,_3n=1e-8,F3n=4.71238898038469,B3n=3.141592653589793,H3n="org.eclipse.elk.alg.mrtree",q3n="org.eclipse.elk.alg.mrtree.graph",G3n="org.eclipse.elk.alg.mrtree.intermediate",z3n="Set neighbors in level",U3n="DESCENDANTS",X3n="org.eclipse.elk.mrtree.weighting",W3n="org.eclipse.elk.mrtree.searchOrder",V3n="org.eclipse.elk.alg.mrtree.options",Q3n="org.eclipse.elk.mrtree",Y3n="org.eclipse.elk.tree",J3n="org.eclipse.elk.alg.radial",Z3n=6.283185307179586,n4n=5e-324,t4n="org.eclipse.elk.alg.radial.intermediate",e4n="org.eclipse.elk.alg.radial.intermediate.compaction",i4n={3:1,4:1,5:1,106:1},r4n="org.eclipse.elk.alg.radial.intermediate.optimization",c4n="No implementation is available for the layout option ",a4n="org.eclipse.elk.alg.radial.options",u4n="org.eclipse.elk.radial.orderId",o4n="org.eclipse.elk.radial.radius",s4n="org.eclipse.elk.radial.compactor",h4n="org.eclipse.elk.radial.compactionStepSize",f4n="org.eclipse.elk.radial.sorter",l4n="org.eclipse.elk.radial.wedgeCriteria",b4n="org.eclipse.elk.radial.optimizationCriteria",w4n="org.eclipse.elk.radial",d4n="org.eclipse.elk.alg.radial.p1position.wedge",g4n="org.eclipse.elk.alg.radial.sorting",p4n=5.497787143782138,v4n=3.9269908169872414,m4n=2.356194490192345,y4n="org.eclipse.elk.alg.rectpacking",k4n="org.eclipse.elk.alg.rectpacking.firstiteration",j4n="org.eclipse.elk.alg.rectpacking.options",E4n="org.eclipse.elk.rectpacking.optimizationGoal",T4n="org.eclipse.elk.rectpacking.lastPlaceShift",M4n="org.eclipse.elk.rectpacking.currentPosition",S4n="org.eclipse.elk.rectpacking.desiredPosition",P4n="org.eclipse.elk.rectpacking.onlyFirstIteration",C4n="org.eclipse.elk.rectpacking.rowCompaction",I4n="org.eclipse.elk.rectpacking.expandToAspectRatio",O4n="org.eclipse.elk.rectpacking.targetWidth",A4n="org.eclipse.elk.expandNodes",$4n="org.eclipse.elk.rectpacking",L4n="org.eclipse.elk.alg.rectpacking.util",N4n="No implementation available for ",x4n="org.eclipse.elk.alg.spore",D4n="org.eclipse.elk.alg.spore.options",R4n="org.eclipse.elk.sporeCompaction",K4n="org.eclipse.elk.underlyingLayoutAlgorithm",_4n="org.eclipse.elk.processingOrder.treeConstruction",F4n="org.eclipse.elk.processingOrder.spanningTreeCostFunction",B4n="org.eclipse.elk.processingOrder.preferredRoot",H4n="org.eclipse.elk.processingOrder.rootSelection",q4n="org.eclipse.elk.structure.structureExtractionStrategy",G4n="org.eclipse.elk.compaction.compactionStrategy",z4n="org.eclipse.elk.compaction.orthogonal",U4n="org.eclipse.elk.overlapRemoval.maxIterations",X4n="org.eclipse.elk.overlapRemoval.runScanline",W4n="processingOrder",V4n="overlapRemoval",Q4n="org.eclipse.elk.sporeOverlap",Y4n="org.eclipse.elk.alg.spore.p1structure",J4n="org.eclipse.elk.alg.spore.p2processingorder",Z4n="org.eclipse.elk.alg.spore.p3execution",n5n="Invalid index: ",t5n="org.eclipse.elk.core.alg",e5n={331:1},i5n={288:1},r5n="Make sure its type is registered with the ",c5n=" utility class.",a5n="true",u5n="false",o5n="Couldn't clone property '",s5n=.05,h5n="org.eclipse.elk.core.options",f5n=1.2999999523162842,l5n="org.eclipse.elk.box",b5n="org.eclipse.elk.box.packingMode",w5n="org.eclipse.elk.algorithm",d5n="org.eclipse.elk.resolvedAlgorithm",g5n="org.eclipse.elk.bendPoints",p5n="org.eclipse.elk.labelManager",v5n="org.eclipse.elk.scaleFactor",m5n="org.eclipse.elk.animate",y5n="org.eclipse.elk.animTimeFactor",k5n="org.eclipse.elk.layoutAncestors",j5n="org.eclipse.elk.maxAnimTime",E5n="org.eclipse.elk.minAnimTime",T5n="org.eclipse.elk.progressBar",M5n="org.eclipse.elk.validateGraph",S5n="org.eclipse.elk.validateOptions",P5n="org.eclipse.elk.zoomToFit",C5n="org.eclipse.elk.font.name",I5n="org.eclipse.elk.font.size",O5n="org.eclipse.elk.edge.type",A5n="partitioning",$5n="nodeLabels",L5n="portAlignment",N5n="nodeSize",x5n="port",D5n="portLabels",R5n="insideSelfLoops",K5n="org.eclipse.elk.fixed",_5n="org.eclipse.elk.random",F5n="port must have a parent node to calculate the port side",B5n="The edge needs to have exactly one edge section. Found: ",H5n="org.eclipse.elk.core.util.adapters",q5n="org.eclipse.emf.ecore",G5n="org.eclipse.elk.graph",z5n="EMapPropertyHolder",U5n="ElkBendPoint",X5n="ElkGraphElement",W5n="ElkConnectableShape",V5n="ElkEdge",Q5n="ElkEdgeSection",Y5n="EModelElement",J5n="ENamedElement",Z5n="ElkLabel",n6n="ElkNode",t6n="ElkPort",e6n={92:1,90:1},i6n="org.eclipse.emf.common.notify.impl",r6n="The feature '",c6n="' is not a valid changeable feature",a6n="Expecting null",u6n="' is not a valid feature",o6n="The feature ID",s6n=" is not a valid feature ID",h6n=32768,f6n={105:1,92:1,90:1,56:1,49:1,97:1},l6n="org.eclipse.emf.ecore.impl",b6n="org.eclipse.elk.graph.impl",w6n="Recursive containment not allowed for ",d6n="The datatype '",g6n="' is not a valid classifier",p6n="The value '",v6n={190:1,3:1,4:1},m6n="The class '",y6n="http://www.eclipse.org/elk/ElkGraph",k6n=1024,j6n="property",E6n="value",T6n="source",M6n="properties",S6n="identifier",P6n="height",C6n="width",I6n="parent",O6n="text",A6n="children",$6n="hierarchical",L6n="sources",N6n="targets",x6n="sections",D6n="bendPoints",R6n="outgoingShape",K6n="incomingShape",_6n="outgoingSections",F6n="incomingSections",B6n="org.eclipse.emf.common.util",H6n="Severe implementation error in the Json to ElkGraph importer.",q6n="id",G6n="org.eclipse.elk.graph.json",z6n="Unhandled parameter types: ",U6n="startPoint",X6n="An edge must have at least one source and one target (edge id: '",W6n="').",V6n="Referenced edge section does not exist: ",Q6n=" (edge id: '",Y6n="target",J6n="sourcePoint",Z6n="targetPoint",n8n="group",t8n="name",e8n="connectableShape cannot be null",i8n="edge cannot be null",r8n="Passed edge is not 'simple'.",c8n="org.eclipse.elk.graph.util",a8n="The 'no duplicates' constraint is violated",u8n="targetIndex=",o8n=", size=",s8n="sourceIndex=",h8n={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},f8n={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},l8n="logging",b8n="measureExecutionTime",w8n="parser.parse.1",d8n="parser.parse.2",g8n="parser.next.1",p8n="parser.next.2",v8n="parser.next.3",m8n="parser.next.4",y8n="parser.factor.1",k8n="parser.factor.2",j8n="parser.factor.3",E8n="parser.factor.4",T8n="parser.factor.5",M8n="parser.factor.6",S8n="parser.atom.1",P8n="parser.atom.2",C8n="parser.atom.3",I8n="parser.atom.4",O8n="parser.atom.5",A8n="parser.cc.1",$8n="parser.cc.2",L8n="parser.cc.3",N8n="parser.cc.5",x8n="parser.cc.6",D8n="parser.cc.7",R8n="parser.cc.8",K8n="parser.ope.1",_8n="parser.ope.2",F8n="parser.ope.3",B8n="parser.descape.1",H8n="parser.descape.2",q8n="parser.descape.3",G8n="parser.descape.4",z8n="parser.descape.5",U8n="parser.process.1",X8n="parser.quantifier.1",W8n="parser.quantifier.2",V8n="parser.quantifier.3",Q8n="parser.quantifier.4",Y8n="parser.quantifier.5",J8n="org.eclipse.emf.common.notify",Z8n={415:1,672:1},n9n={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},t9n={366:1,143:1},e9n="index=",i9n={3:1,4:1,5:1,126:1},r9n={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},c9n={3:1,6:1,4:1,5:1,192:1},a9n={3:1,4:1,5:1,165:1,367:1},u9n=";/?:@&=+$,",o9n="invalid authority: ",s9n="EAnnotation",h9n="ETypedElement",f9n="EStructuralFeature",l9n="EAttribute",b9n="EClassifier",w9n="EEnumLiteral",d9n="EGenericType",g9n="EOperation",p9n="EParameter",v9n="EReference",m9n="ETypeParameter",y9n="org.eclipse.emf.ecore.util",k9n={76:1},j9n={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},E9n="org.eclipse.emf.ecore.util.FeatureMap$Entry",T9n=8192,M9n=2048,S9n="byte",P9n="char",C9n="double",I9n="float",O9n="int",A9n="long",$9n="short",L9n="java.lang.Object",N9n={3:1,4:1,5:1,247:1},x9n={3:1,4:1,5:1,673:1},D9n={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},R9n={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},K9n="mixed",_9n="http:///org/eclipse/emf/ecore/util/ExtendedMetaData",F9n="kind",B9n={3:1,4:1,5:1,674:1},H9n={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},q9n={20:1,28:1,52:1,14:1,15:1,58:1,69:1},G9n={47:1,125:1,279:1},z9n={72:1,332:1},U9n="The value of type '",X9n="' must be of type '",W9n=1316,V9n="http://www.eclipse.org/emf/2002/Ecore",Q9n=-32768,Y9n="constraints",J9n="baseType",Z9n="getEStructuralFeature",n7n="getFeatureID",t7n="feature",e7n="getOperationID",i7n="operation",r7n="defaultValue",c7n="eTypeParameters",a7n="isInstance",u7n="getEEnumLiteral",o7n="eContainingClass",s7n={55:1},h7n={3:1,4:1,5:1,119:1},f7n="org.eclipse.emf.ecore.resource",l7n={92:1,90:1,591:1,1935:1},b7n="org.eclipse.emf.ecore.resource.impl",w7n="unspecified",d7n="simple",g7n="attribute",p7n="attributeWildcard",v7n="element",m7n="elementWildcard",y7n="collapse",k7n="itemType",j7n="namespace",E7n="##targetNamespace",T7n="whiteSpace",M7n="wildcards",S7n="http://www.eclipse.org/emf/2003/XMLType",P7n="##any",C7n="uninitialized",I7n="The multiplicity constraint is violated",O7n="org.eclipse.emf.ecore.xml.type",A7n="ProcessingInstruction",$7n="SimpleAnyType",L7n="XMLTypeDocumentRoot",N7n="org.eclipse.emf.ecore.xml.type.impl",x7n="INF",D7n="processing",R7n="ENTITIES_._base",K7n="minLength",_7n="ENTITY",F7n="NCName",B7n="IDREFS_._base",H7n="integer",q7n="token",G7n="pattern",z7n="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",U7n="\\i\\c*",X7n="[\\i-[:]][\\c-[:]]*",W7n="nonPositiveInteger",V7n="maxInclusive",Q7n="NMTOKEN",Y7n="NMTOKENS_._base",J7n="nonNegativeInteger",Z7n="minInclusive",nnt="normalizedString",tnt="unsignedByte",ent="unsignedInt",int="18446744073709551615",rnt="unsignedShort",cnt="processingInstruction",ant="org.eclipse.emf.ecore.xml.type.internal",unt=1114111,ont="Internal Error: shorthands: \\u",snt="xml:isDigit",hnt="xml:isWord",fnt="xml:isSpace",lnt="xml:isNameChar",bnt="xml:isInitialNameChar",wnt="09\u0660\u0669\u06f0\u06f9\u0966\u096f\u09e6\u09ef\u0a66\u0a6f\u0ae6\u0aef\u0b66\u0b6f\u0be7\u0bef\u0c66\u0c6f\u0ce6\u0cef\u0d66\u0d6f\u0e50\u0e59\u0ed0\u0ed9\u0f20\u0f29",dnt="AZaz\xc0\xd6\xd8\xf6\xf8\u0131\u0134\u013e\u0141\u0148\u014a\u017e\u0180\u01c3\u01cd\u01f0\u01f4\u01f5\u01fa\u0217\u0250\u02a8\u02bb\u02c1\u0386\u0386\u0388\u038a\u038c\u038c\u038e\u03a1\u03a3\u03ce\u03d0\u03d6\u03da\u03da\u03dc\u03dc\u03de\u03de\u03e0\u03e0\u03e2\u03f3\u0401\u040c\u040e\u044f\u0451\u045c\u045e\u0481\u0490\u04c4\u04c7\u04c8\u04cb\u04cc\u04d0\u04eb\u04ee\u04f5\u04f8\u04f9\u0531\u0556\u0559\u0559\u0561\u0586\u05d0\u05ea\u05f0\u05f2\u0621\u063a\u0641\u064a\u0671\u06b7\u06ba\u06be\u06c0\u06ce\u06d0\u06d3\u06d5\u06d5\u06e5\u06e6\u0905\u0939\u093d\u093d\u0958\u0961\u0985\u098c\u098f\u0990\u0993\u09a8\u09aa\u09b0\u09b2\u09b2\u09b6\u09b9\u09dc\u09dd\u09df\u09e1\u09f0\u09f1\u0a05\u0a0a\u0a0f\u0a10\u0a13\u0a28\u0a2a\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59\u0a5c\u0a5e\u0a5e\u0a72\u0a74\u0a85\u0a8b\u0a8d\u0a8d\u0a8f\u0a91\u0a93\u0aa8\u0aaa\u0ab0\u0ab2\u0ab3\u0ab5\u0ab9\u0abd\u0abd\u0ae0\u0ae0\u0b05\u0b0c\u0b0f\u0b10\u0b13\u0b28\u0b2a\u0b30\u0b32\u0b33\u0b36\u0b39\u0b3d\u0b3d\u0b5c\u0b5d\u0b5f\u0b61\u0b85\u0b8a\u0b8e\u0b90\u0b92\u0b95\u0b99\u0b9a\u0b9c\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8\u0baa\u0bae\u0bb5\u0bb7\u0bb9\u0c05\u0c0c\u0c0e\u0c10\u0c12\u0c28\u0c2a\u0c33\u0c35\u0c39\u0c60\u0c61\u0c85\u0c8c\u0c8e\u0c90\u0c92\u0ca8\u0caa\u0cb3\u0cb5\u0cb9\u0cde\u0cde\u0ce0\u0ce1\u0d05\u0d0c\u0d0e\u0d10\u0d12\u0d28\u0d2a\u0d39\u0d60\u0d61\u0e01\u0e2e\u0e30\u0e30\u0e32\u0e33\u0e40\u0e45\u0e81\u0e82\u0e84\u0e84\u0e87\u0e88\u0e8a\u0e8a\u0e8d\u0e8d\u0e94\u0e97\u0e99\u0e9f\u0ea1\u0ea3\u0ea5\u0ea5\u0ea7\u0ea7\u0eaa\u0eab\u0ead\u0eae\u0eb0\u0eb0\u0eb2\u0eb3\u0ebd\u0ebd\u0ec0\u0ec4\u0f40\u0f47\u0f49\u0f69\u10a0\u10c5\u10d0\u10f6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110b\u110c\u110e\u1112\u113c\u113c\u113e\u113e\u1140\u1140\u114c\u114c\u114e\u114e\u1150\u1150\u1154\u1155\u1159\u1159\u115f\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116d\u116e\u1172\u1173\u1175\u1175\u119e\u119e\u11a8\u11a8\u11ab\u11ab\u11ae\u11af\u11b7\u11b8\u11ba\u11ba\u11bc\u11c2\u11eb\u11eb\u11f0\u11f0\u11f9\u11f9\u1e00\u1e9b\u1ea0\u1ef9\u1f00\u1f15\u1f18\u1f1d\u1f20\u1f45\u1f48\u1f4d\u1f50\u1f57\u1f59\u1f59\u1f5b\u1f5b\u1f5d\u1f5d\u1f5f\u1f7d\u1f80\u1fb4\u1fb6\u1fbc\u1fbe\u1fbe\u1fc2\u1fc4\u1fc6\u1fcc\u1fd0\u1fd3\u1fd6\u1fdb\u1fe0\u1fec\u1ff2\u1ff4\u1ff6\u1ffc\u2126\u2126\u212a\u212b\u212e\u212e\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30a1\u30fa\u3105\u312c\u4e00\u9fa5\uac00\ud7a3",gnt="Private Use",pnt="ASSIGNED",vnt="\0\x7f\x80\xff\u0100\u017f\u0180\u024f\u0250\u02af\u02b0\u02ff\u0300\u036f\u0370\u03ff\u0400\u04ff\u0530\u058f\u0590\u05ff\u0600\u06ff\u0700\u074f\u0780\u07bf\u0900\u097f\u0980\u09ff\u0a00\u0a7f\u0a80\u0aff\u0b00\u0b7f\u0b80\u0bff\u0c00\u0c7f\u0c80\u0cff\u0d00\u0d7f\u0d80\u0dff\u0e00\u0e7f\u0e80\u0eff\u0f00\u0fff\u1000\u109f\u10a0\u10ff\u1100\u11ff\u1200\u137f\u13a0\u13ff\u1400\u167f\u1680\u169f\u16a0\u16ff\u1780\u17ff\u1800\u18af\u1e00\u1eff\u1f00\u1fff\u2000\u206f\u2070\u209f\u20a0\u20cf\u20d0\u20ff\u2100\u214f\u2150\u218f\u2190\u21ff\u2200\u22ff\u2300\u23ff\u2400\u243f\u2440\u245f\u2460\u24ff\u2500\u257f\u2580\u259f\u25a0\u25ff\u2600\u26ff\u2700\u27bf\u2800\u28ff\u2e80\u2eff\u2f00\u2fdf\u2ff0\u2fff\u3000\u303f\u3040\u309f\u30a0\u30ff\u3100\u312f\u3130\u318f\u3190\u319f\u31a0\u31bf\u3200\u32ff\u3300\u33ff\u3400\u4db5\u4e00\u9fff\ua000\ua48f\ua490\ua4cf\uac00\ud7a3\ue000\uf8ff\uf900\ufaff\ufb00\ufb4f\ufb50\ufdff\ufe20\ufe2f\ufe30\ufe4f\ufe50\ufe6f\ufe70\ufefe\ufeff\ufeff\uff00\uffef",mnt="UNASSIGNED",ynt={3:1,117:1},knt="org.eclipse.emf.ecore.xml.type.util",jnt={3:1,4:1,5:1,368:1},Ent="org.eclipse.xtext.xbase.lib",Tnt="Cannot add elements to a Range",Mnt="Cannot set elements in a Range",Snt="Cannot remove elements from a Range",Pnt="locale",Cnt="default",Int="user.agent";e.goog=e.goog||{},e.goog.global=e.goog.global||e,WMn(),wAn(1,null,{},r),MWn.Fb=function(n){return FO(this,n)},MWn.Gb=function(){return this.gm},MWn.Hb=function(){return PN(this)},MWn.Ib=function(){return nE(tsn(this))+"@"+(nsn(this)>>>0).toString(16)},MWn.equals=function(n){return this.Fb(n)},MWn.hashCode=function(){return this.Hb()},MWn.toString=function(){return this.Ib()},wAn(290,1,{290:1,2026:1},pon),MWn.le=function(n){var t;return(t=new pon).i=4,t.c=n>1?gZ(this,n-1):this,t},MWn.me=function(){return ED(this),this.b},MWn.ne=function(){return nE(this)},MWn.oe=function(){return ED(this),this.k},MWn.pe=function(){return 0!=(4&this.i)},MWn.qe=function(){return 0!=(1&this.i)},MWn.Ib=function(){return utn(this)},MWn.i=0;var Ont,Ant=vX(RWn,"Object",1),$nt=vX(RWn,"Class",290);wAn(1998,1,KWn),vX(_Wn,"Optional",1998),wAn(1170,1998,KWn,c),MWn.Fb=function(n){return n===this},MWn.Hb=function(){return 2040732332},MWn.Ib=function(){return"Optional.absent()"},MWn.Jb=function(n){return yX(n),iy(),Ont},vX(_Wn,"Absent",1170),wAn(628,1,{},mk),vX(_Wn,"Joiner",628);var Lnt=bq(_Wn,"Predicate");wAn(582,1,{169:1,582:1,3:1,45:1},Hf),MWn.Mb=function(n){return Kon(this,n)},MWn.Lb=function(n){return Kon(this,n)},MWn.Fb=function(n){var t;return!!cL(n,582)&&(t=BB(n,582),NAn(this.a,t.a))},MWn.Hb=function(){return Fon(this.a)+306654252},MWn.Ib=function(){return wPn(this.a)},vX(_Wn,"Predicates/AndPredicate",582),wAn(408,1998,{408:1,3:1},qf),MWn.Fb=function(n){var t;return!!cL(n,408)&&(t=BB(n,408),Nfn(this.a,t.a))},MWn.Hb=function(){return 1502476572+nsn(this.a)},MWn.Ib=function(){return GWn+this.a+")"},MWn.Jb=function(n){return new qf(WQ(n.Kb(this.a),"the Function passed to Optional.transform() must not return null."))},vX(_Wn,"Present",408),wAn(198,1,UWn),MWn.Nb=function(n){fU(this,n)},MWn.Qb=function(){bk()},vX(XWn,"UnmodifiableIterator",198),wAn(1978,198,WWn),MWn.Qb=function(){bk()},MWn.Rb=function(n){throw Hp(new pv)},MWn.Wb=function(n){throw Hp(new pv)},vX(XWn,"UnmodifiableListIterator",1978),wAn(386,1978,WWn),MWn.Ob=function(){return this.c<this.d},MWn.Sb=function(){return this.c>0},MWn.Pb=function(){if(this.c>=this.d)throw Hp(new yv);return this.Xb(this.c++)},MWn.Tb=function(){return this.c},MWn.Ub=function(){if(this.c<=0)throw Hp(new yv);return this.Xb(--this.c)},MWn.Vb=function(){return this.c-1},MWn.c=0,MWn.d=0,vX(XWn,"AbstractIndexedListIterator",386),wAn(699,198,UWn),MWn.Ob=function(){return Zin(this)},MWn.Pb=function(){return P7(this)},MWn.e=1,vX(XWn,"AbstractIterator",699),wAn(1986,1,{224:1}),MWn.Zb=function(){return this.f||(this.f=this.ac())},MWn.Fb=function(n){return jsn(this,n)},MWn.Hb=function(){return nsn(this.Zb())},MWn.dc=function(){return 0==this.gc()},MWn.ec=function(){return gz(this)},MWn.Ib=function(){return Bbn(this.Zb())},vX(XWn,"AbstractMultimap",1986),wAn(726,1986,VWn),MWn.$b=function(){win(this)},MWn._b=function(n){return Wj(this,n)},MWn.ac=function(){return new pT(this,this.c)},MWn.ic=function(n){return this.hc()},MWn.bc=function(){return new HL(this,this.c)},MWn.jc=function(){return this.mc(this.hc())},MWn.kc=function(){return new Hm(this)},MWn.lc=function(){return qTn(this.c.vc().Nc(),new u,64,this.d)},MWn.cc=function(n){return h6(this,n)},MWn.fc=function(n){return Nhn(this,n)},MWn.gc=function(){return this.d},MWn.mc=function(n){return SQ(),new Hb(n)},MWn.nc=function(){return new Bm(this)},MWn.oc=function(){return qTn(this.c.Cc().Nc(),new a,64,this.d)},MWn.pc=function(n,t){return new W6(this,n,t,null)},MWn.d=0,vX(XWn,"AbstractMapBasedMultimap",726),wAn(1631,726,VWn),MWn.hc=function(){return new J6(this.a)},MWn.jc=function(){return SQ(),SQ(),set},MWn.cc=function(n){return BB(h6(this,n),15)},MWn.fc=function(n){return BB(Nhn(this,n),15)},MWn.Zb=function(){return OQ(this)},MWn.Fb=function(n){return jsn(this,n)},MWn.qc=function(n){return BB(h6(this,n),15)},MWn.rc=function(n){return BB(Nhn(this,n),15)},MWn.mc=function(n){return rY(BB(n,15))},MWn.pc=function(n,t){return i3(this,n,BB(t,15),null)},vX(XWn,"AbstractListMultimap",1631),wAn(732,1,QWn),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return this.c.Ob()||this.e.Ob()},MWn.Pb=function(){var n;return this.e.Ob()||(n=BB(this.c.Pb(),42),this.b=n.cd(),this.a=BB(n.dd(),14),this.e=this.a.Kc()),this.sc(this.b,this.e.Pb())},MWn.Qb=function(){this.e.Qb(),this.a.dc()&&this.c.Qb(),--this.d.d},vX(XWn,"AbstractMapBasedMultimap/Itr",732),wAn(1099,732,QWn,Bm),MWn.sc=function(n,t){return t},vX(XWn,"AbstractMapBasedMultimap/1",1099),wAn(1100,1,{},a),MWn.Kb=function(n){return BB(n,14).Nc()},vX(XWn,"AbstractMapBasedMultimap/1methodref$spliterator$Type",1100),wAn(1101,732,QWn,Hm),MWn.sc=function(n,t){return new vT(n,t)},vX(XWn,"AbstractMapBasedMultimap/2",1101);var Nnt=bq(YWn,"Map");wAn(1967,1,JWn),MWn.wc=function(n){nan(this,n)},MWn.yc=function(n,t,e){return Zln(this,n,t,e)},MWn.$b=function(){this.vc().$b()},MWn.tc=function(n){return Mmn(this,n)},MWn._b=function(n){return!!FEn(this,n,!1)},MWn.uc=function(n){var t,e;for(t=this.vc().Kc();t.Ob();)if(e=BB(t.Pb(),42).dd(),GI(n)===GI(e)||null!=n&&Nfn(n,e))return!0;return!1},MWn.Fb=function(n){var t,e,i;if(n===this)return!0;if(!cL(n,83))return!1;if(i=BB(n,83),this.gc()!=i.gc())return!1;for(e=i.vc().Kc();e.Ob();)if(t=BB(e.Pb(),42),!this.tc(t))return!1;return!0},MWn.xc=function(n){return qI(FEn(this,n,!1))},MWn.Hb=function(){return Hun(this.vc())},MWn.dc=function(){return 0==this.gc()},MWn.ec=function(){return new Cb(this)},MWn.zc=function(n,t){throw Hp(new tk("Put not supported on this map"))},MWn.Ac=function(n){Tcn(this,n)},MWn.Bc=function(n){return qI(FEn(this,n,!0))},MWn.gc=function(){return this.vc().gc()},MWn.Ib=function(){return nTn(this)},MWn.Cc=function(){return new Ob(this)},vX(YWn,"AbstractMap",1967),wAn(1987,1967,JWn),MWn.bc=function(){return new ST(this)},MWn.vc=function(){return dz(this)},MWn.ec=function(){return this.g||(this.g=this.bc())},MWn.Cc=function(){return this.i||(this.i=new PT(this))},vX(XWn,"Maps/ViewCachingAbstractMap",1987),wAn(389,1987,JWn,pT),MWn.xc=function(n){return ktn(this,n)},MWn.Bc=function(n){return Zsn(this,n)},MWn.$b=function(){this.d==this.e.c?this.e.$b():Cq(new Oq(this))},MWn._b=function(n){return gfn(this.d,n)},MWn.Ec=function(){return new Xf(this)},MWn.Dc=function(){return this.Ec()},MWn.Fb=function(n){return this===n||Nfn(this.d,n)},MWn.Hb=function(){return nsn(this.d)},MWn.ec=function(){return this.e.ec()},MWn.gc=function(){return this.d.gc()},MWn.Ib=function(){return Bbn(this.d)},vX(XWn,"AbstractMapBasedMultimap/AsMap",389);var xnt=bq(RWn,"Iterable");wAn(28,1,ZWn),MWn.Jc=function(n){e5(this,n)},MWn.Lc=function(){return this.Oc()},MWn.Nc=function(){return new w1(this,0)},MWn.Oc=function(){return new Rq(null,this.Nc())},MWn.Fc=function(n){throw Hp(new tk("Add not supported on this collection"))},MWn.Gc=function(n){return Frn(this,n)},MWn.$b=function(){TV(this)},MWn.Hc=function(n){return ywn(this,n,!1)},MWn.Ic=function(n){return oun(this,n)},MWn.dc=function(){return 0==this.gc()},MWn.Mc=function(n){return ywn(this,n,!0)},MWn.Pc=function(){return cz(this)},MWn.Qc=function(n){return Emn(this,n)},MWn.Ib=function(){return LMn(this)},vX(YWn,"AbstractCollection",28);var Dnt=bq(YWn,"Set");wAn(nVn,28,tVn),MWn.Nc=function(){return new w1(this,1)},MWn.Fb=function(n){return ign(this,n)},MWn.Hb=function(){return Hun(this)},vX(YWn,"AbstractSet",nVn),wAn(1970,nVn,tVn),vX(XWn,"Sets/ImprovedAbstractSet",1970),wAn(1971,1970,tVn),MWn.$b=function(){this.Rc().$b()},MWn.Hc=function(n){return idn(this,n)},MWn.dc=function(){return this.Rc().dc()},MWn.Mc=function(n){var t;return!!this.Hc(n)&&(t=BB(n,42),this.Rc().ec().Mc(t.cd()))},MWn.gc=function(){return this.Rc().gc()},vX(XWn,"Maps/EntrySet",1971),wAn(1097,1971,tVn,Xf),MWn.Hc=function(n){return wfn(this.a.d.vc(),n)},MWn.Kc=function(){return new Oq(this.a)},MWn.Rc=function(){return this.a},MWn.Mc=function(n){var t;return!!wfn(this.a.d.vc(),n)&&(t=BB(n,42),H5(this.a.e,t.cd()),!0)},MWn.Nc=function(){return RB(this.a.d.vc().Nc(),new Wf(this.a))},vX(XWn,"AbstractMapBasedMultimap/AsMap/AsMapEntries",1097),wAn(1098,1,{},Wf),MWn.Kb=function(n){return i5(this.a,BB(n,42))},vX(XWn,"AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type",1098),wAn(730,1,QWn,Oq),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){var n;return n=BB(this.b.Pb(),42),this.a=BB(n.dd(),14),i5(this.c,n)},MWn.Ob=function(){return this.b.Ob()},MWn.Qb=function(){han(!!this.a),this.b.Qb(),this.c.e.d-=this.a.gc(),this.a.$b(),this.a=null},vX(XWn,"AbstractMapBasedMultimap/AsMap/AsMapIterator",730),wAn(532,1970,tVn,ST),MWn.$b=function(){this.b.$b()},MWn.Hc=function(n){return this.b._b(n)},MWn.Jc=function(n){yX(n),this.b.wc(new vl(n))},MWn.dc=function(){return this.b.dc()},MWn.Kc=function(){return new ly(this.b.vc().Kc())},MWn.Mc=function(n){return!!this.b._b(n)&&(this.b.Bc(n),!0)},MWn.gc=function(){return this.b.gc()},vX(XWn,"Maps/KeySet",532),wAn(318,532,tVn,HL),MWn.$b=function(){Cq(new eT(this,this.b.vc().Kc()))},MWn.Ic=function(n){return this.b.ec().Ic(n)},MWn.Fb=function(n){return this===n||Nfn(this.b.ec(),n)},MWn.Hb=function(){return nsn(this.b.ec())},MWn.Kc=function(){return new eT(this,this.b.vc().Kc())},MWn.Mc=function(n){var t,e;return e=0,(t=BB(this.b.Bc(n),14))&&(e=t.gc(),t.$b(),this.a.d-=e),e>0},MWn.Nc=function(){return this.b.ec().Nc()},vX(XWn,"AbstractMapBasedMultimap/KeySet",318),wAn(731,1,QWn,eT),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return this.c.Ob()},MWn.Pb=function(){return this.a=BB(this.c.Pb(),42),this.a.cd()},MWn.Qb=function(){var n;han(!!this.a),n=BB(this.a.dd(),14),this.c.Qb(),this.b.a.d-=n.gc(),n.$b(),this.a=null},vX(XWn,"AbstractMapBasedMultimap/KeySet/1",731),wAn(491,389,{83:1,161:1},CD),MWn.bc=function(){return this.Sc()},MWn.ec=function(){return this.Tc()},MWn.Sc=function(){return new nT(this.c,this.Uc())},MWn.Tc=function(){return this.b||(this.b=this.Sc())},MWn.Uc=function(){return BB(this.d,161)},vX(XWn,"AbstractMapBasedMultimap/SortedAsMap",491),wAn(542,491,eVn,ID),MWn.bc=function(){return new tT(this.a,BB(BB(this.d,161),171))},MWn.Sc=function(){return new tT(this.a,BB(BB(this.d,161),171))},MWn.ec=function(){return BB(this.b||(this.b=new tT(this.a,BB(BB(this.d,161),171))),271)},MWn.Tc=function(){return BB(this.b||(this.b=new tT(this.a,BB(BB(this.d,161),171))),271)},MWn.Uc=function(){return BB(BB(this.d,161),171)},vX(XWn,"AbstractMapBasedMultimap/NavigableAsMap",542),wAn(490,318,iVn,nT),MWn.Nc=function(){return this.b.ec().Nc()},vX(XWn,"AbstractMapBasedMultimap/SortedKeySet",490),wAn(388,490,rVn,tT),vX(XWn,"AbstractMapBasedMultimap/NavigableKeySet",388),wAn(541,28,ZWn,W6),MWn.Fc=function(n){var t,e;return zbn(this),e=this.d.dc(),(t=this.d.Fc(n))&&(++this.f.d,e&&jR(this)),t},MWn.Gc=function(n){var t,e,i;return!n.dc()&&(zbn(this),i=this.d.gc(),(t=this.d.Gc(n))&&(e=this.d.gc(),this.f.d+=e-i,0==i&&jR(this)),t)},MWn.$b=function(){var n;zbn(this),0!=(n=this.d.gc())&&(this.d.$b(),this.f.d-=n,$G(this))},MWn.Hc=function(n){return zbn(this),this.d.Hc(n)},MWn.Ic=function(n){return zbn(this),this.d.Ic(n)},MWn.Fb=function(n){return n===this||(zbn(this),Nfn(this.d,n))},MWn.Hb=function(){return zbn(this),nsn(this.d)},MWn.Kc=function(){return zbn(this),new QB(this)},MWn.Mc=function(n){var t;return zbn(this),(t=this.d.Mc(n))&&(--this.f.d,$G(this)),t},MWn.gc=function(){return tO(this)},MWn.Nc=function(){return zbn(this),this.d.Nc()},MWn.Ib=function(){return zbn(this),Bbn(this.d)},vX(XWn,"AbstractMapBasedMultimap/WrappedCollection",541);var Rnt=bq(YWn,"List");wAn(728,541,{20:1,28:1,14:1,15:1},sz),MWn.ad=function(n){_rn(this,n)},MWn.Nc=function(){return zbn(this),this.d.Nc()},MWn.Vc=function(n,t){var e;zbn(this),e=this.d.dc(),BB(this.d,15).Vc(n,t),++this.a.d,e&&jR(this)},MWn.Wc=function(n,t){var e,i,r;return!t.dc()&&(zbn(this),r=this.d.gc(),(e=BB(this.d,15).Wc(n,t))&&(i=this.d.gc(),this.a.d+=i-r,0==r&&jR(this)),e)},MWn.Xb=function(n){return zbn(this),BB(this.d,15).Xb(n)},MWn.Xc=function(n){return zbn(this),BB(this.d,15).Xc(n)},MWn.Yc=function(){return zbn(this),new g$(this)},MWn.Zc=function(n){return zbn(this),new gQ(this,n)},MWn.$c=function(n){var t;return zbn(this),t=BB(this.d,15).$c(n),--this.a.d,$G(this),t},MWn._c=function(n,t){return zbn(this),BB(this.d,15)._c(n,t)},MWn.bd=function(n,t){return zbn(this),i3(this.a,this.e,BB(this.d,15).bd(n,t),this.b?this.b:this)},vX(XWn,"AbstractMapBasedMultimap/WrappedList",728),wAn(1096,728,{20:1,28:1,14:1,15:1,54:1},Ox),vX(XWn,"AbstractMapBasedMultimap/RandomAccessWrappedList",1096),wAn(620,1,QWn,QB),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return MV(this),this.b.Ob()},MWn.Pb=function(){return MV(this),this.b.Pb()},MWn.Qb=function(){eN(this)},vX(XWn,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",620),wAn(729,620,cVn,g$,gQ),MWn.Qb=function(){eN(this)},MWn.Rb=function(n){var t;t=0==tO(this.a),(MV(this),BB(this.b,125)).Rb(n),++this.a.a.d,t&&jR(this.a)},MWn.Sb=function(){return(MV(this),BB(this.b,125)).Sb()},MWn.Tb=function(){return(MV(this),BB(this.b,125)).Tb()},MWn.Ub=function(){return(MV(this),BB(this.b,125)).Ub()},MWn.Vb=function(){return(MV(this),BB(this.b,125)).Vb()},MWn.Wb=function(n){(MV(this),BB(this.b,125)).Wb(n)},vX(XWn,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",729),wAn(727,541,iVn,ND),MWn.Nc=function(){return zbn(this),this.d.Nc()},vX(XWn,"AbstractMapBasedMultimap/WrappedSortedSet",727),wAn(1095,727,rVn,AA),vX(XWn,"AbstractMapBasedMultimap/WrappedNavigableSet",1095),wAn(1094,541,tVn,xD),MWn.Nc=function(){return zbn(this),this.d.Nc()},vX(XWn,"AbstractMapBasedMultimap/WrappedSet",1094),wAn(1103,1,{},u),MWn.Kb=function(n){return F6(BB(n,42))},vX(XWn,"AbstractMapBasedMultimap/lambda$1$Type",1103),wAn(1102,1,{},Vf),MWn.Kb=function(n){return new vT(this.a,n)},vX(XWn,"AbstractMapBasedMultimap/lambda$2$Type",1102);var Knt,_nt,Fnt,Bnt,Hnt=bq(YWn,"Map/Entry");wAn(345,1,aVn),MWn.Fb=function(n){var t;return!!cL(n,42)&&(t=BB(n,42),wW(this.cd(),t.cd())&&wW(this.dd(),t.dd()))},MWn.Hb=function(){var n,t;return n=this.cd(),t=this.dd(),(null==n?0:nsn(n))^(null==t?0:nsn(t))},MWn.ed=function(n){throw Hp(new pv)},MWn.Ib=function(){return this.cd()+"="+this.dd()},vX(XWn,uVn,345),wAn(1988,28,ZWn),MWn.$b=function(){this.fd().$b()},MWn.Hc=function(n){var t;return!!cL(n,42)&&(t=BB(n,42),H0(this.fd(),t.cd(),t.dd()))},MWn.Mc=function(n){var t;return!!cL(n,42)&&(t=BB(n,42),q0(this.fd(),t.cd(),t.dd()))},MWn.gc=function(){return this.fd().d},vX(XWn,"Multimaps/Entries",1988),wAn(733,1988,ZWn,Qf),MWn.Kc=function(){return this.a.kc()},MWn.fd=function(){return this.a},MWn.Nc=function(){return this.a.lc()},vX(XWn,"AbstractMultimap/Entries",733),wAn(734,733,tVn,qm),MWn.Nc=function(){return this.a.lc()},MWn.Fb=function(n){return zSn(this,n)},MWn.Hb=function(){return Brn(this)},vX(XWn,"AbstractMultimap/EntrySet",734),wAn(735,28,ZWn,Yf),MWn.$b=function(){this.a.$b()},MWn.Hc=function(n){return Isn(this.a,n)},MWn.Kc=function(){return this.a.nc()},MWn.gc=function(){return this.a.d},MWn.Nc=function(){return this.a.oc()},vX(XWn,"AbstractMultimap/Values",735),wAn(1989,28,{835:1,20:1,28:1,14:1}),MWn.Jc=function(n){yX(n),EV(this).Jc(new pl(n))},MWn.Nc=function(){var n;return qTn(n=EV(this).Nc(),new y,64|1296&n.qd(),this.a.d)},MWn.Fc=function(n){return wk(),!0},MWn.Gc=function(n){return yX(this),yX(n),cL(n,543)?l2(BB(n,835)):!n.dc()&&fnn(this,n.Kc())},MWn.Hc=function(n){var t;return((t=BB(lfn(OQ(this.a),n),14))?t.gc():0)>0},MWn.Fb=function(n){return h$n(this,n)},MWn.Hb=function(){return nsn(EV(this))},MWn.dc=function(){return EV(this).dc()},MWn.Mc=function(n){return EIn(this,n,1)>0},MWn.Ib=function(){return Bbn(EV(this))},vX(XWn,"AbstractMultiset",1989),wAn(1991,1970,tVn),MWn.$b=function(){win(this.a.a)},MWn.Hc=function(n){var t;return!(!cL(n,492)||(t=BB(n,416),BB(t.a.dd(),14).gc()<=0||c1(this.a,t.a.cd())!=BB(t.a.dd(),14).gc()))},MWn.Mc=function(n){var t,e,i;return!(!cL(n,492)||(t=(e=BB(n,416)).a.cd(),0==(i=BB(e.a.dd(),14).gc())))&&TIn(this.a,t,i)},vX(XWn,"Multisets/EntrySet",1991),wAn(1109,1991,tVn,Jf),MWn.Kc=function(){return new wy(dz(OQ(this.a.a)).Kc())},MWn.gc=function(){return OQ(this.a.a).gc()},vX(XWn,"AbstractMultiset/EntrySet",1109),wAn(619,726,VWn),MWn.hc=function(){return this.gd()},MWn.jc=function(){return this.hd()},MWn.cc=function(n){return this.jd(n)},MWn.fc=function(n){return this.kd(n)},MWn.Zb=function(){return this.f||(this.f=this.ac())},MWn.hd=function(){return SQ(),SQ(),fet},MWn.Fb=function(n){return jsn(this,n)},MWn.jd=function(n){return BB(h6(this,n),21)},MWn.kd=function(n){return BB(Nhn(this,n),21)},MWn.mc=function(n){return SQ(),new Ak(BB(n,21))},MWn.pc=function(n,t){return new xD(this,n,BB(t,21))},vX(XWn,"AbstractSetMultimap",619),wAn(1657,619,VWn),MWn.hc=function(){return new dE(this.b)},MWn.gd=function(){return new dE(this.b)},MWn.jc=function(){return IX(new dE(this.b))},MWn.hd=function(){return IX(new dE(this.b))},MWn.cc=function(n){return BB(BB(h6(this,n),21),84)},MWn.jd=function(n){return BB(BB(h6(this,n),21),84)},MWn.fc=function(n){return BB(BB(Nhn(this,n),21),84)},MWn.kd=function(n){return BB(BB(Nhn(this,n),21),84)},MWn.mc=function(n){return cL(n,271)?IX(BB(n,271)):(SQ(),new dN(BB(n,84)))},MWn.Zb=function(){return this.f||(this.f=cL(this.c,171)?new ID(this,BB(this.c,171)):cL(this.c,161)?new CD(this,BB(this.c,161)):new pT(this,this.c))},MWn.pc=function(n,t){return cL(t,271)?new AA(this,n,BB(t,271)):new ND(this,n,BB(t,84))},vX(XWn,"AbstractSortedSetMultimap",1657),wAn(1658,1657,VWn),MWn.Zb=function(){return BB(BB(this.f||(this.f=cL(this.c,171)?new ID(this,BB(this.c,171)):cL(this.c,161)?new CD(this,BB(this.c,161)):new pT(this,this.c)),161),171)},MWn.ec=function(){return BB(BB(this.i||(this.i=cL(this.c,171)?new tT(this,BB(this.c,171)):cL(this.c,161)?new nT(this,BB(this.c,161)):new HL(this,this.c)),84),271)},MWn.bc=function(){return cL(this.c,171)?new tT(this,BB(this.c,171)):cL(this.c,161)?new nT(this,BB(this.c,161)):new HL(this,this.c)},vX(XWn,"AbstractSortedKeySortedSetMultimap",1658),wAn(2010,1,{1947:1}),MWn.Fb=function(n){return Cjn(this,n)},MWn.Hb=function(){return Hun(this.g||(this.g=new Zf(this)))},MWn.Ib=function(){return nTn(this.f||(this.f=new UL(this)))},vX(XWn,"AbstractTable",2010),wAn(665,nVn,tVn,Zf),MWn.$b=function(){dk()},MWn.Hc=function(n){var t,e;return!!cL(n,468)&&(t=BB(n,682),!!(e=BB(lfn(jX(this.a),WI(t.c.e,t.b)),83))&&wfn(e.vc(),new vT(WI(t.c.c,t.a),U6(t.c,t.b,t.a))))},MWn.Kc=function(){return ZQ(this.a)},MWn.Mc=function(n){var t,e;return!!cL(n,468)&&(t=BB(n,682),!!(e=BB(lfn(jX(this.a),WI(t.c.e,t.b)),83))&&dfn(e.vc(),new vT(WI(t.c.c,t.a),U6(t.c,t.b,t.a))))},MWn.gc=function(){return zq(this.a)},MWn.Nc=function(){return P2(this.a)},vX(XWn,"AbstractTable/CellSet",665),wAn(1928,28,ZWn,nl),MWn.$b=function(){dk()},MWn.Hc=function(n){return hTn(this.a,n)},MWn.Kc=function(){return nY(this.a)},MWn.gc=function(){return zq(this.a)},MWn.Nc=function(){return Y0(this.a)},vX(XWn,"AbstractTable/Values",1928),wAn(1632,1631,VWn),vX(XWn,"ArrayListMultimapGwtSerializationDependencies",1632),wAn(513,1632,VWn,ok,o1),MWn.hc=function(){return new J6(this.a)},MWn.a=0,vX(XWn,"ArrayListMultimap",513),wAn(664,2010,{664:1,1947:1,3:1},vOn),vX(XWn,"ArrayTable",664),wAn(1924,386,WWn,qL),MWn.Xb=function(n){return new gon(this.a,n)},vX(XWn,"ArrayTable/1",1924),wAn(1925,1,{},Gf),MWn.ld=function(n){return new gon(this.a,n)},vX(XWn,"ArrayTable/1methodref$getCell$Type",1925),wAn(2011,1,{682:1}),MWn.Fb=function(n){var t;return n===this||!!cL(n,468)&&(t=BB(n,682),wW(WI(this.c.e,this.b),WI(t.c.e,t.b))&&wW(WI(this.c.c,this.a),WI(t.c.c,t.a))&&wW(U6(this.c,this.b,this.a),U6(t.c,t.b,t.a)))},MWn.Hb=function(){return fhn(Pun(Gk(Ant,1),HWn,1,5,[WI(this.c.e,this.b),WI(this.c.c,this.a),U6(this.c,this.b,this.a)]))},MWn.Ib=function(){return"("+WI(this.c.e,this.b)+","+WI(this.c.c,this.a)+")="+U6(this.c,this.b,this.a)},vX(XWn,"Tables/AbstractCell",2011),wAn(468,2011,{468:1,682:1},gon),MWn.a=0,MWn.b=0,MWn.d=0,vX(XWn,"ArrayTable/2",468),wAn(1927,1,{},zf),MWn.ld=function(n){return Y9(this.a,n)},vX(XWn,"ArrayTable/2methodref$getValue$Type",1927),wAn(1926,386,WWn,GL),MWn.Xb=function(n){return Y9(this.a,n)},vX(XWn,"ArrayTable/3",1926),wAn(1979,1967,JWn),MWn.$b=function(){Cq(this.kc())},MWn.vc=function(){return new ml(this)},MWn.lc=function(){return new CV(this.kc(),this.gc())},vX(XWn,"Maps/IteratorBasedAbstractMap",1979),wAn(828,1979,JWn),MWn.$b=function(){throw Hp(new pv)},MWn._b=function(n){return Yj(this.c,n)},MWn.kc=function(){return new zL(this,this.c.b.c.gc())},MWn.lc=function(){return yq(this.c.b.c.gc(),16,new Uf(this))},MWn.xc=function(n){var t;return(t=BB(UK(this.c,n),19))?this.nd(t.a):null},MWn.dc=function(){return this.c.b.c.dc()},MWn.ec=function(){return bz(this.c)},MWn.zc=function(n,t){var e;if(!(e=BB(UK(this.c,n),19)))throw Hp(new _y(this.md()+" "+n+" not in "+bz(this.c)));return this.od(e.a,t)},MWn.Bc=function(n){throw Hp(new pv)},MWn.gc=function(){return this.c.b.c.gc()},vX(XWn,"ArrayTable/ArrayMap",828),wAn(1923,1,{},Uf),MWn.ld=function(n){return OX(this.a,n)},vX(XWn,"ArrayTable/ArrayMap/0methodref$getEntry$Type",1923),wAn(1921,345,aVn,sT),MWn.cd=function(){return YL(this.a,this.b)},MWn.dd=function(){return this.a.nd(this.b)},MWn.ed=function(n){return this.a.od(this.b,n)},MWn.b=0,vX(XWn,"ArrayTable/ArrayMap/1",1921),wAn(1922,386,WWn,zL),MWn.Xb=function(n){return OX(this.a,n)},vX(XWn,"ArrayTable/ArrayMap/2",1922),wAn(1920,828,JWn,cU),MWn.md=function(){return"Column"},MWn.nd=function(n){return U6(this.b,this.a,n)},MWn.od=function(n,t){return Sun(this.b,this.a,n,t)},MWn.a=0,vX(XWn,"ArrayTable/Row",1920),wAn(829,828,JWn,UL),MWn.nd=function(n){return new cU(this.a,n)},MWn.zc=function(n,t){return BB(t,83),gk()},MWn.od=function(n,t){return BB(t,83),pk()},MWn.md=function(){return"Row"},vX(XWn,"ArrayTable/RowMap",829),wAn(1120,1,fVn,hT),MWn.qd=function(){return-262&this.a.qd()},MWn.rd=function(){return this.a.rd()},MWn.Nb=function(n){this.a.Nb(new cT(n,this.b))},MWn.sd=function(n){return this.a.sd(new rT(n,this.b))},vX(XWn,"CollectSpliterators/1",1120),wAn(1121,1,lVn,rT),MWn.td=function(n){this.a.td(this.b.Kb(n))},vX(XWn,"CollectSpliterators/1/lambda$0$Type",1121),wAn(1122,1,lVn,cT),MWn.td=function(n){this.a.td(this.b.Kb(n))},vX(XWn,"CollectSpliterators/1/lambda$1$Type",1122),wAn(1123,1,fVn,q2),MWn.qd=function(){return this.a},MWn.rd=function(){return this.d&&(this.b=T$(this.b,this.d.rd())),T$(this.b,0)},MWn.Nb=function(n){this.d&&(this.d.Nb(n),this.d=null),this.c.Nb(new iT(this.e,n)),this.b=0},MWn.sd=function(n){for(;;){if(this.d&&this.d.sd(n))return JI(this.b,bVn)&&(this.b=ibn(this.b,1)),!0;if(this.d=null,!this.c.sd(new aT(this,this.e)))return!1}},MWn.a=0,MWn.b=0,vX(XWn,"CollectSpliterators/1FlatMapSpliterator",1123),wAn(1124,1,lVn,aT),MWn.td=function(n){dK(this.a,this.b,n)},vX(XWn,"CollectSpliterators/1FlatMapSpliterator/lambda$0$Type",1124),wAn(1125,1,lVn,iT),MWn.td=function(n){oL(this.b,this.a,n)},vX(XWn,"CollectSpliterators/1FlatMapSpliterator/lambda$1$Type",1125),wAn(1117,1,fVn,wK),MWn.qd=function(){return 16464|this.b},MWn.rd=function(){return this.a.rd()},MWn.Nb=function(n){this.a.xe(new oT(n,this.c))},MWn.sd=function(n){return this.a.ye(new uT(n,this.c))},MWn.b=0,vX(XWn,"CollectSpliterators/1WithCharacteristics",1117),wAn(1118,1,wVn,uT),MWn.ud=function(n){this.a.td(this.b.ld(n))},vX(XWn,"CollectSpliterators/1WithCharacteristics/lambda$0$Type",1118),wAn(1119,1,wVn,oT),MWn.ud=function(n){this.a.td(this.b.ld(n))},vX(XWn,"CollectSpliterators/1WithCharacteristics/lambda$1$Type",1119),wAn(245,1,dVn),MWn.wd=function(n){return this.vd(BB(n,245))},MWn.vd=function(n){var t;return n==(ty(),_nt)?1:n==(ey(),Knt)?-1:(nq(),0!=(t=Ncn(this.a,n.a))?t:cL(this,519)==cL(n,519)?0:cL(this,519)?1:-1)},MWn.zd=function(){return this.a},MWn.Fb=function(n){return xdn(this,n)},vX(XWn,"Cut",245),wAn(1761,245,dVn,Nk),MWn.vd=function(n){return n==this?0:1},MWn.xd=function(n){throw Hp(new hv)},MWn.yd=function(n){n.a+="+\u221e)"},MWn.zd=function(){throw Hp(new Fy(gVn))},MWn.Hb=function(){return $T(),evn(this)},MWn.Ad=function(n){return!1},MWn.Ib=function(){return"+\u221e"},vX(XWn,"Cut/AboveAll",1761),wAn(519,245,{245:1,519:1,3:1,35:1},iN),MWn.xd=function(n){uO((n.a+="(",n),this.a)},MWn.yd=function(n){xX(uO(n,this.a),93)},MWn.Hb=function(){return~nsn(this.a)},MWn.Ad=function(n){return nq(),Ncn(this.a,n)<0},MWn.Ib=function(){return"/"+this.a+"\\"},vX(XWn,"Cut/AboveValue",519),wAn(1760,245,dVn,xk),MWn.vd=function(n){return n==this?0:-1},MWn.xd=function(n){n.a+="(-\u221e"},MWn.yd=function(n){throw Hp(new hv)},MWn.zd=function(){throw Hp(new Fy(gVn))},MWn.Hb=function(){return $T(),evn(this)},MWn.Ad=function(n){return!0},MWn.Ib=function(){return"-\u221e"},vX(XWn,"Cut/BelowAll",1760),wAn(1762,245,dVn,rN),MWn.xd=function(n){uO((n.a+="[",n),this.a)},MWn.yd=function(n){xX(uO(n,this.a),41)},MWn.Hb=function(){return nsn(this.a)},MWn.Ad=function(n){return nq(),Ncn(this.a,n)<=0},MWn.Ib=function(){return"\\"+this.a+"/"},vX(XWn,"Cut/BelowValue",1762),wAn(537,1,pVn),MWn.Jc=function(n){e5(this,n)},MWn.Ib=function(){return Hln(BB(WQ(this,"use Optional.orNull() instead of Optional.or(null)"),20).Kc())},vX(XWn,"FluentIterable",537),wAn(433,537,pVn,OO),MWn.Kc=function(){return new oz(ZL(this.a.Kc(),new h))},vX(XWn,"FluentIterable/2",433),wAn(1046,537,pVn,AO),MWn.Kc=function(){return NU(this)},vX(XWn,"FluentIterable/3",1046),wAn(708,386,WWn,WL),MWn.Xb=function(n){return this.a[n].Kc()},vX(XWn,"FluentIterable/3/1",708),wAn(1972,1,{}),MWn.Ib=function(){return Bbn(this.Bd().b)},vX(XWn,"ForwardingObject",1972),wAn(1973,1972,vVn),MWn.Bd=function(){return this.Cd()},MWn.Jc=function(n){e5(this,n)},MWn.Lc=function(){return this.Oc()},MWn.Nc=function(){return new w1(this,0)},MWn.Oc=function(){return new Rq(null,this.Nc())},MWn.Fc=function(n){return this.Cd(),oE()},MWn.Gc=function(n){return this.Cd(),sE()},MWn.$b=function(){this.Cd(),hE()},MWn.Hc=function(n){return this.Cd().Hc(n)},MWn.Ic=function(n){return this.Cd().Ic(n)},MWn.dc=function(){return this.Cd().b.dc()},MWn.Kc=function(){return this.Cd().Kc()},MWn.Mc=function(n){return this.Cd(),fE()},MWn.gc=function(){return this.Cd().b.gc()},MWn.Pc=function(){return this.Cd().Pc()},MWn.Qc=function(n){return this.Cd().Qc(n)},vX(XWn,"ForwardingCollection",1973),wAn(1980,28,mVn),MWn.Kc=function(){return this.Ed()},MWn.Fc=function(n){throw Hp(new pv)},MWn.Gc=function(n){throw Hp(new pv)},MWn.$b=function(){throw Hp(new pv)},MWn.Hc=function(n){return null!=n&&ywn(this,n,!1)},MWn.Dd=function(){switch(this.gc()){case 0:return WX(),WX(),Fnt;case 1:return WX(),new Pq(yX(this.Ed().Pb()));default:return new aU(this,this.Pc())}},MWn.Mc=function(n){throw Hp(new pv)},vX(XWn,"ImmutableCollection",1980),wAn(712,1980,mVn,rv),MWn.Kc=function(){return L9(this.a.Kc())},MWn.Hc=function(n){return null!=n&&this.a.Hc(n)},MWn.Ic=function(n){return this.a.Ic(n)},MWn.dc=function(){return this.a.dc()},MWn.Ed=function(){return L9(this.a.Kc())},MWn.gc=function(){return this.a.gc()},MWn.Pc=function(){return this.a.Pc()},MWn.Qc=function(n){return this.a.Qc(n)},MWn.Ib=function(){return Bbn(this.a)},vX(XWn,"ForwardingImmutableCollection",712),wAn(152,1980,yVn),MWn.Kc=function(){return this.Ed()},MWn.Yc=function(){return this.Fd(0)},MWn.Zc=function(n){return this.Fd(n)},MWn.ad=function(n){_rn(this,n)},MWn.Nc=function(){return new w1(this,16)},MWn.bd=function(n,t){return this.Gd(n,t)},MWn.Vc=function(n,t){throw Hp(new pv)},MWn.Wc=function(n,t){throw Hp(new pv)},MWn.Fb=function(n){return qAn(this,n)},MWn.Hb=function(){return Ian(this)},MWn.Xc=function(n){return null==n?-1:Tmn(this,n)},MWn.Ed=function(){return this.Fd(0)},MWn.Fd=function(n){return ix(this,n)},MWn.$c=function(n){throw Hp(new pv)},MWn._c=function(n,t){throw Hp(new pv)},MWn.Gd=function(n,t){return sfn(new s1(new IT(this),n,t))},vX(XWn,"ImmutableList",152),wAn(2006,152,yVn),MWn.Kc=function(){return L9(this.Hd().Kc())},MWn.bd=function(n,t){return sfn(this.Hd().bd(n,t))},MWn.Hc=function(n){return null!=n&&this.Hd().Hc(n)},MWn.Ic=function(n){return this.Hd().Ic(n)},MWn.Fb=function(n){return Nfn(this.Hd(),n)},MWn.Xb=function(n){return WI(this,n)},MWn.Hb=function(){return nsn(this.Hd())},MWn.Xc=function(n){return this.Hd().Xc(n)},MWn.dc=function(){return this.Hd().dc()},MWn.Ed=function(){return L9(this.Hd().Kc())},MWn.gc=function(){return this.Hd().gc()},MWn.Gd=function(n,t){return sfn(this.Hd().bd(n,t))},MWn.Pc=function(){return this.Hd().Qc(x8(Ant,HWn,1,this.Hd().gc(),5,1))},MWn.Qc=function(n){return this.Hd().Qc(n)},MWn.Ib=function(){return Bbn(this.Hd())},vX(XWn,"ForwardingImmutableList",2006),wAn(714,1,jVn),MWn.vc=function(){return lz(this)},MWn.wc=function(n){nan(this,n)},MWn.ec=function(){return bz(this)},MWn.yc=function(n,t,e){return Zln(this,n,t,e)},MWn.Cc=function(){return this.Ld()},MWn.$b=function(){throw Hp(new pv)},MWn._b=function(n){return null!=this.xc(n)},MWn.uc=function(n){return this.Ld().Hc(n)},MWn.Jd=function(){return new cv(this)},MWn.Kd=function(){return new av(this)},MWn.Fb=function(n){return $sn(this,n)},MWn.Hb=function(){return lz(this).Hb()},MWn.dc=function(){return 0==this.gc()},MWn.zc=function(n,t){return vk()},MWn.Bc=function(n){throw Hp(new pv)},MWn.Ib=function(){return fSn(this)},MWn.Ld=function(){return this.e?this.e:this.e=this.Kd()},MWn.c=null,MWn.d=null,MWn.e=null,vX(XWn,"ImmutableMap",714),wAn(715,714,jVn),MWn._b=function(n){return Yj(this,n)},MWn.uc=function(n){return _T(this.b,n)},MWn.Id=function(){return hfn(new el(this))},MWn.Jd=function(){return hfn(iV(this.b))},MWn.Kd=function(){return s_(),new rv(tV(this.b))},MWn.Fb=function(n){return BT(this.b,n)},MWn.xc=function(n){return UK(this,n)},MWn.Hb=function(){return nsn(this.b.c)},MWn.dc=function(){return this.b.c.dc()},MWn.gc=function(){return this.b.c.gc()},MWn.Ib=function(){return Bbn(this.b.c)},vX(XWn,"ForwardingImmutableMap",715),wAn(1974,1973,EVn),MWn.Bd=function(){return this.Md()},MWn.Cd=function(){return this.Md()},MWn.Nc=function(){return new w1(this,1)},MWn.Fb=function(n){return n===this||this.Md().Fb(n)},MWn.Hb=function(){return this.Md().Hb()},vX(XWn,"ForwardingSet",1974),wAn(1069,1974,EVn,el),MWn.Bd=function(){return eV(this.a.b)},MWn.Cd=function(){return eV(this.a.b)},MWn.Hc=function(n){if(cL(n,42)&&null==BB(n,42).cd())return!1;try{return KT(eV(this.a.b),n)}catch(t){if(cL(t=lun(t),205))return!1;throw Hp(t)}},MWn.Md=function(){return eV(this.a.b)},MWn.Qc=function(n){var t;return t=IY(eV(this.a.b),n),eV(this.a.b).b.gc()<t.length&&$X(t,eV(this.a.b).b.gc(),null),t},vX(XWn,"ForwardingImmutableMap/1",1069),wAn(1981,1980,TVn),MWn.Kc=function(){return this.Ed()},MWn.Nc=function(){return new w1(this,1)},MWn.Fb=function(n){return zSn(this,n)},MWn.Hb=function(){return Brn(this)},vX(XWn,"ImmutableSet",1981),wAn(703,1981,TVn),MWn.Kc=function(){return L9(new qb(this.a.b.Kc()))},MWn.Hc=function(n){return null!=n&&xT(this.a,n)},MWn.Ic=function(n){return DT(this.a,n)},MWn.Hb=function(){return nsn(this.a.b)},MWn.dc=function(){return this.a.b.dc()},MWn.Ed=function(){return L9(new qb(this.a.b.Kc()))},MWn.gc=function(){return this.a.b.gc()},MWn.Pc=function(){return this.a.b.Pc()},MWn.Qc=function(n){return RT(this.a,n)},MWn.Ib=function(){return Bbn(this.a.b)},vX(XWn,"ForwardingImmutableSet",703),wAn(1975,1974,MVn),MWn.Bd=function(){return this.b},MWn.Cd=function(){return this.b},MWn.Md=function(){return this.b},MWn.Nc=function(){return new wS(this)},vX(XWn,"ForwardingSortedSet",1975),wAn(533,1979,jVn,Avn),MWn.Ac=function(n){Tcn(this,n)},MWn.Cc=function(){return new p$(this.d||(this.d=new il(this)))},MWn.$b=function(){d5(this)},MWn._b=function(n){return!!Jrn(this,n,dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15))))},MWn.uc=function(n){return Ltn(this,n)},MWn.kc=function(){return new VL(this,this)},MWn.wc=function(n){BJ(this,n)},MWn.xc=function(n){return sen(this,n)},MWn.ec=function(){return new v$(this)},MWn.zc=function(n,t){return wKn(this,n,t)},MWn.Bc=function(n){var t;return(t=Jrn(this,n,dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15)))))?(LLn(this,t),t.e=null,t.c=null,t.i):null},MWn.gc=function(){return this.i},MWn.pd=function(){return new p$(this.d||(this.d=new il(this)))},MWn.f=0,MWn.g=0,MWn.i=0,vX(XWn,"HashBiMap",533),wAn(534,1,QWn),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return l3(this)},MWn.Pb=function(){var n;if(!l3(this))throw Hp(new yv);return n=this.c,this.c=n.c,this.f=n,--this.d,this.Nd(n)},MWn.Qb=function(){if(this.e.g!=this.b)throw Hp(new vv);han(!!this.f),LLn(this.e,this.f),this.b=this.e.g,this.f=null},MWn.b=0,MWn.d=0,MWn.f=null,vX(XWn,"HashBiMap/Itr",534),wAn(1011,534,QWn,VL),MWn.Nd=function(n){return new bT(this,n)},vX(XWn,"HashBiMap/1",1011),wAn(1012,345,aVn,bT),MWn.cd=function(){return this.a.g},MWn.dd=function(){return this.a.i},MWn.ed=function(n){var t,e,i;return e=this.a.i,(i=dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15))))==this.a.f&&(GI(n)===GI(e)||null!=n&&Nfn(n,e))?n:(yun(!Zrn(this.b.a,n,i),n),LLn(this.b.a,this.a),t=new qW(this.a.g,this.a.a,n,i),YCn(this.b.a,t,this.a),this.a.e=null,this.a.c=null,this.b.b=this.b.a.g,this.b.f==this.a&&(this.b.f=t),this.a=t,e)},vX(XWn,"HashBiMap/1/MapEntry",1012),wAn(238,345,{345:1,238:1,3:1,42:1},vT),MWn.cd=function(){return this.g},MWn.dd=function(){return this.i},MWn.ed=function(n){throw Hp(new pv)},vX(XWn,"ImmutableEntry",238),wAn(317,238,{345:1,317:1,238:1,3:1,42:1},qW),MWn.a=0,MWn.f=0;var qnt,Gnt=vX(XWn,"HashBiMap/BiEntry",317);wAn(610,1979,jVn,il),MWn.Ac=function(n){Tcn(this,n)},MWn.Cc=function(){return new v$(this.a)},MWn.$b=function(){d5(this.a)},MWn._b=function(n){return Ltn(this.a,n)},MWn.kc=function(){return new QL(this,this.a)},MWn.wc=function(n){yX(n),BJ(this.a,new rl(n))},MWn.xc=function(n){return Uin(this,n)},MWn.ec=function(){return new p$(this)},MWn.zc=function(n,t){return C_n(this.a,n,t,!1)},MWn.Bc=function(n){var t;return(t=Zrn(this.a,n,dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15)))))?(LLn(this.a,t),t.e=null,t.c=null,t.g):null},MWn.gc=function(){return this.a.i},MWn.pd=function(){return new v$(this.a)},vX(XWn,"HashBiMap/Inverse",610),wAn(1008,534,QWn,QL),MWn.Nd=function(n){return new wT(this,n)},vX(XWn,"HashBiMap/Inverse/1",1008),wAn(1009,345,aVn,wT),MWn.cd=function(){return this.a.i},MWn.dd=function(){return this.a.g},MWn.ed=function(n){var t,e,i;return i=this.a.g,(t=dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15))))==this.a.a&&(GI(n)===GI(i)||null!=n&&Nfn(n,i))?n:(yun(!Jrn(this.b.a.a,n,t),n),LLn(this.b.a.a,this.a),e=new qW(n,t,this.a.i,this.a.f),this.a=e,YCn(this.b.a.a,e,null),this.b.b=this.b.a.a.g,i)},vX(XWn,"HashBiMap/Inverse/1/InverseEntry",1009),wAn(611,532,tVn,p$),MWn.Kc=function(){return new uy(this.a.a)},MWn.Mc=function(n){var t;return!!(t=Zrn(this.a.a,n,dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15)))))&&(LLn(this.a.a,t),!0)},vX(XWn,"HashBiMap/Inverse/InverseKeySet",611),wAn(1007,534,QWn,uy),MWn.Nd=function(n){return n.i},vX(XWn,"HashBiMap/Inverse/InverseKeySet/1",1007),wAn(1010,1,{},rl),MWn.Od=function(n,t){ev(this.a,n,t)},vX(XWn,"HashBiMap/Inverse/lambda$0$Type",1010),wAn(609,532,tVn,v$),MWn.Kc=function(){return new oy(this.a)},MWn.Mc=function(n){var t;return!!(t=Jrn(this.a,n,dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15)))))&&(LLn(this.a,t),t.e=null,t.c=null,!0)},vX(XWn,"HashBiMap/KeySet",609),wAn(1006,534,QWn,oy),MWn.Nd=function(n){return n.g},vX(XWn,"HashBiMap/KeySet/1",1006),wAn(1093,619,VWn),vX(XWn,"HashMultimapGwtSerializationDependencies",1093),wAn(265,1093,VWn,pJ),MWn.hc=function(){return new bE(etn(this.a))},MWn.gd=function(){return new bE(etn(this.a))},MWn.a=2,vX(XWn,"HashMultimap",265),wAn(1999,152,yVn),MWn.Hc=function(n){return this.Pd().Hc(n)},MWn.dc=function(){return this.Pd().dc()},MWn.gc=function(){return this.Pd().gc()},vX(XWn,"ImmutableAsList",1999),wAn(1931,715,jVn),MWn.Ld=function(){return s_(),new yk(this.a)},MWn.Cc=function(){return s_(),new yk(this.a)},MWn.pd=function(){return s_(),new yk(this.a)},vX(XWn,"ImmutableBiMap",1931),wAn(1977,1,{}),vX(XWn,"ImmutableCollection/Builder",1977),wAn(1022,703,TVn,sy),vX(XWn,"ImmutableEnumSet",1022),wAn(969,386,WWn,bK),MWn.Xb=function(n){return this.a.Xb(n)},vX(XWn,"ImmutableList/1",969),wAn(968,1977,{},sR),vX(XWn,"ImmutableList/Builder",968),wAn(614,198,UWn,cl),MWn.Ob=function(){return this.a.Ob()},MWn.Pb=function(){return BB(this.a.Pb(),42).cd()},vX(XWn,"ImmutableMap/1",614),wAn(1041,1,{},o),MWn.Kb=function(n){return BB(n,42).cd()},vX(XWn,"ImmutableMap/2methodref$getKey$Type",1041),wAn(1040,1,{},hR),vX(XWn,"ImmutableMap/Builder",1040),wAn(2e3,1981,TVn),MWn.Kc=function(){return new cl(lz(this.a).Ed())},MWn.Dd=function(){return new uv(this)},MWn.Jc=function(n){var t,e;for(yX(n),e=this.gc(),t=0;t<e;t++)n.td(BB(wz(lz(this.a)).Xb(t),42).cd())},MWn.Ed=function(){var n;return(n=this.c,n||(this.c=new uv(this))).Ed()},MWn.Nc=function(){return yq(this.gc(),1296,new ul(this))},vX(XWn,"IndexedImmutableSet",2e3),wAn(1180,2e3,TVn,cv),MWn.Kc=function(){return new cl(lz(this.a).Ed())},MWn.Hc=function(n){return this.a._b(n)},MWn.Jc=function(n){yX(n),nan(this.a,new al(n))},MWn.Ed=function(){return new cl(lz(this.a).Ed())},MWn.gc=function(){return this.a.gc()},MWn.Nc=function(){return RB(lz(this.a).Nc(),new o)},vX(XWn,"ImmutableMapKeySet",1180),wAn(1181,1,{},al),MWn.Od=function(n,t){s_(),this.a.td(n)},vX(XWn,"ImmutableMapKeySet/lambda$0$Type",1181),wAn(1178,1980,mVn,av),MWn.Kc=function(){return new KH(this)},MWn.Hc=function(n){return null!=n&&Pjn(new KH(this),n)},MWn.Ed=function(){return new KH(this)},MWn.gc=function(){return this.a.gc()},MWn.Nc=function(){return RB(lz(this.a).Nc(),new s)},vX(XWn,"ImmutableMapValues",1178),wAn(1179,1,{},s),MWn.Kb=function(n){return BB(n,42).dd()},vX(XWn,"ImmutableMapValues/0methodref$getValue$Type",1179),wAn(626,198,UWn,KH),MWn.Ob=function(){return this.a.Ob()},MWn.Pb=function(){return BB(this.a.Pb(),42).dd()},vX(XWn,"ImmutableMapValues/1",626),wAn(1182,1,{},ul),MWn.ld=function(n){return HU(this.a,n)},vX(XWn,"IndexedImmutableSet/0methodref$get$Type",1182),wAn(752,1999,yVn,uv),MWn.Pd=function(){return this.a},MWn.Xb=function(n){return HU(this.a,n)},MWn.gc=function(){return this.a.a.gc()},vX(XWn,"IndexedImmutableSet/1",752),wAn(44,1,{},h),MWn.Kb=function(n){return BB(n,20).Kc()},MWn.Fb=function(n){return this===n},vX(XWn,"Iterables/10",44),wAn(1042,537,pVn,_H),MWn.Jc=function(n){yX(n),this.b.Jc(new dT(this.a,n))},MWn.Kc=function(){return qA(this)},vX(XWn,"Iterables/4",1042),wAn(1043,1,lVn,dT),MWn.td=function(n){TS(this.b,this.a,n)},vX(XWn,"Iterables/4/lambda$0$Type",1043),wAn(1044,537,pVn,FH),MWn.Jc=function(n){yX(n),e5(this.a,new fT(n,this.b))},MWn.Kc=function(){return ZL(new AL(this.a),this.b)},vX(XWn,"Iterables/5",1044),wAn(1045,1,lVn,fT),MWn.td=function(n){this.a.td(yA(n))},vX(XWn,"Iterables/5/lambda$0$Type",1045),wAn(1071,198,UWn,ol),MWn.Ob=function(){return this.a.Ob()},MWn.Pb=function(){return this.a.Pb()},vX(XWn,"Iterators/1",1071),wAn(1072,699,UWn,lT),MWn.Yb=function(){for(var n;this.b.Ob();)if(n=this.b.Pb(),this.a.Lb(n))return n;return this.e=2,null},vX(XWn,"Iterators/5",1072),wAn(487,1,QWn),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return this.b.Ob()},MWn.Pb=function(){return this.Qd(this.b.Pb())},MWn.Qb=function(){this.b.Qb()},vX(XWn,"TransformedIterator",487),wAn(1073,487,QWn,nN),MWn.Qd=function(n){return this.a.Kb(n)},vX(XWn,"Iterators/6",1073),wAn(717,198,UWn,sl),MWn.Ob=function(){return!this.a},MWn.Pb=function(){if(this.a)throw Hp(new yv);return this.a=!0,this.b},MWn.a=!1,vX(XWn,"Iterators/9",717),wAn(1070,386,WWn,fG),MWn.Xb=function(n){return this.a[this.b+n]},MWn.b=0,vX(XWn,"Iterators/ArrayItr",1070),wAn(39,1,{39:1,47:1},oz),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return dAn(this)},MWn.Pb=function(){return U5(this)},MWn.Qb=function(){han(!!this.c),this.c.Qb(),this.c=null},vX(XWn,"Iterators/ConcatenatedIterator",39),wAn(22,1,{3:1,35:1,22:1}),MWn.wd=function(n){return Py(this,BB(n,22))},MWn.Fb=function(n){return this===n},MWn.Hb=function(){return PN(this)},MWn.Ib=function(){return dx(this)},MWn.g=0;var znt,Unt=vX(RWn,"Enum",22);wAn(538,22,{538:1,3:1,35:1,22:1,47:1},cN),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return!1},MWn.Pb=function(){throw Hp(new yv)},MWn.Qb=function(){han(!1)};var Xnt,Wnt=Ben(XWn,"Iterators/EmptyModifiableIterator",538,Unt,oX,rx);wAn(1834,619,VWn),vX(XWn,"LinkedHashMultimapGwtSerializationDependencies",1834),wAn(1835,1834,VWn,Thn),MWn.hc=function(){return new LN(etn(this.b))},MWn.$b=function(){win(this),iv(this.a,this.a)},MWn.gd=function(){return new LN(etn(this.b))},MWn.ic=function(n){return new Tsn(this,n,this.b)},MWn.kc=function(){return new tN(this)},MWn.lc=function(){return new w1(BB(this.g||(this.g=new qm(this)),21),17)},MWn.ec=function(){return this.i||(this.i=new HL(this,this.c))},MWn.nc=function(){return new by(new tN(this))},MWn.oc=function(){return RB(new w1(BB(this.g||(this.g=new qm(this)),21),17),new f)},MWn.b=2,vX(XWn,"LinkedHashMultimap",1835),wAn(1838,1,{},f),MWn.Kb=function(n){return BB(n,42).dd()},vX(XWn,"LinkedHashMultimap/0methodref$getValue$Type",1838),wAn(824,1,QWn,tN),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return vtn(this)},MWn.Ob=function(){return this.a!=this.b.a},MWn.Qb=function(){han(!!this.c),q0(this.b,this.c.g,this.c.i),this.c=null},vX(XWn,"LinkedHashMultimap/1",824),wAn(330,238,{345:1,238:1,330:1,2020:1,3:1,42:1},HW),MWn.Rd=function(){return this.f},MWn.Sd=function(n){this.c=n},MWn.Td=function(n){this.f=n},MWn.d=0;var Vnt,Qnt=vX(XWn,"LinkedHashMultimap/ValueEntry",330);wAn(1836,1970,{2020:1,20:1,28:1,14:1,21:1},Tsn),MWn.Fc=function(n){var t,e,i,r,c;for(t=(c=dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15))))&this.b.length-1,e=r=this.b[t];e;e=e.a)if(e.d==c&&wW(e.i,n))return!1;return i=new HW(this.c,n,c,r),kk(this.d,i),i.f=this,this.d=i,iv(this.g.a.b,i),iv(i,this.g.a),this.b[t]=i,++this.f,++this.e,yjn(this),!0},MWn.$b=function(){var n,t;for(yS(this.b,null),this.f=0,n=this.a;n!=this;n=n.Rd())iv((t=BB(n,330)).b,t.e);this.a=this,this.d=this,++this.e},MWn.Hc=function(n){var t,e;for(e=dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15))),t=this.b[e&this.b.length-1];t;t=t.a)if(t.d==e&&wW(t.i,n))return!0;return!1},MWn.Jc=function(n){var t;for(yX(n),t=this.a;t!=this;t=t.Rd())n.td(BB(t,330).i)},MWn.Rd=function(){return this.a},MWn.Kc=function(){return new sW(this)},MWn.Mc=function(n){return kAn(this,n)},MWn.Sd=function(n){this.d=n},MWn.Td=function(n){this.a=n},MWn.gc=function(){return this.f},MWn.e=0,MWn.f=0,vX(XWn,"LinkedHashMultimap/ValueSet",1836),wAn(1837,1,QWn,sW),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return wG(this),this.b!=this.c},MWn.Pb=function(){var n,t;if(wG(this),this.b==this.c)throw Hp(new yv);return t=(n=BB(this.b,330)).i,this.d=n,this.b=n.f,t},MWn.Qb=function(){wG(this),han(!!this.d),kAn(this.c,this.d.i),this.a=this.c.e,this.d=null},MWn.a=0,vX(XWn,"LinkedHashMultimap/ValueSet/1",1837),wAn(766,1986,VWn,PO),MWn.Zb=function(){return this.f||(this.f=new rS(this))},MWn.Fb=function(n){return jsn(this,n)},MWn.cc=function(n){return new mT(this,n)},MWn.fc=function(n){return J3(this,n)},MWn.$b=function(){cX(this)},MWn._b=function(n){return HT(this,n)},MWn.ac=function(){return new rS(this)},MWn.bc=function(){return new yl(this)},MWn.qc=function(n){return new mT(this,n)},MWn.dc=function(){return!this.a},MWn.rc=function(n){return J3(this,n)},MWn.gc=function(){return this.d},MWn.c=0,MWn.d=0,vX(XWn,"LinkedListMultimap",766),wAn(52,28,LVn),MWn.ad=function(n){_rn(this,n)},MWn.Nc=function(){return new w1(this,16)},MWn.Vc=function(n,t){throw Hp(new tk("Add not supported on this list"))},MWn.Fc=function(n){return this.Vc(this.gc(),n),!0},MWn.Wc=function(n,t){var e,i,r;for(kW(t),e=!1,r=t.Kc();r.Ob();)i=r.Pb(),this.Vc(n++,i),e=!0;return e},MWn.$b=function(){this.Ud(0,this.gc())},MWn.Fb=function(n){return NAn(this,n)},MWn.Hb=function(){return Fon(this)},MWn.Xc=function(n){return bin(this,n)},MWn.Kc=function(){return new Sb(this)},MWn.Yc=function(){return this.Zc(0)},MWn.Zc=function(n){return new M2(this,n)},MWn.$c=function(n){throw Hp(new tk("Remove not supported on this list"))},MWn.Ud=function(n,t){var e,i;for(i=this.Zc(n),e=n;e<t;++e)i.Pb(),i.Qb()},MWn._c=function(n,t){throw Hp(new tk("Set not supported on this list"))},MWn.bd=function(n,t){return new s1(this,n,t)},MWn.j=0,vX(YWn,"AbstractList",52),wAn(1964,52,LVn),MWn.Vc=function(n,t){Kx(this,n,t)},MWn.Wc=function(n,t){return Asn(this,n,t)},MWn.Xb=function(n){return Dpn(this,n)},MWn.Kc=function(){return this.Zc(0)},MWn.$c=function(n){return tkn(this,n)},MWn._c=function(n,t){var e,i;e=this.Zc(n);try{return i=e.Pb(),e.Wb(t),i}catch(r){throw cL(r=lun(r),109)?Hp(new Ay("Can't set element "+n)):Hp(r)}},vX(YWn,"AbstractSequentialList",1964),wAn(636,1964,LVn,mT),MWn.Zc=function(n){return vN(this,n)},MWn.gc=function(){var n;return(n=BB(RX(this.a.b,this.b),283))?n.a:0},vX(XWn,"LinkedListMultimap/1",636),wAn(1297,1970,tVn,yl),MWn.Hc=function(n){return HT(this.a,n)},MWn.Kc=function(){return new vrn(this.a)},MWn.Mc=function(n){return!J3(this.a,n).a.dc()},MWn.gc=function(){return NT(this.a.b)},vX(XWn,"LinkedListMultimap/1KeySetImpl",1297),wAn(1296,1,QWn,vrn),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return bG(this),!!this.c},MWn.Pb=function(){bG(this),oN(this.c),this.a=this.c,TU(this.d,this.a.a);do{this.c=this.c.b}while(this.c&&!TU(this.d,this.c.a));return this.a.a},MWn.Qb=function(){bG(this),han(!!this.a),Cq(new C7(this.e,this.a.a)),this.a=null,this.b=this.e.c},MWn.b=0,vX(XWn,"LinkedListMultimap/DistinctKeyIterator",1296),wAn(283,1,{283:1},sY),MWn.a=0,vX(XWn,"LinkedListMultimap/KeyList",283),wAn(1295,345,aVn,yT),MWn.cd=function(){return this.a},MWn.dd=function(){return this.f},MWn.ed=function(n){var t;return t=this.f,this.f=n,t},vX(XWn,"LinkedListMultimap/Node",1295),wAn(560,1,cVn,C7,KPn),MWn.Nb=function(n){fU(this,n)},MWn.Rb=function(n){this.e=yKn(this.f,this.b,n,this.c),++this.d,this.a=null},MWn.Ob=function(){return!!this.c},MWn.Sb=function(){return!!this.e},MWn.Pb=function(){return EZ(this)},MWn.Tb=function(){return this.d},MWn.Ub=function(){return TZ(this)},MWn.Vb=function(){return this.d-1},MWn.Qb=function(){han(!!this.a),this.a!=this.c?(this.e=this.a.e,--this.d):this.c=this.a.c,ZCn(this.f,this.a),this.a=null},MWn.Wb=function(n){uN(!!this.a),this.a.f=n},MWn.d=0,vX(XWn,"LinkedListMultimap/ValueForKeyIterator",560),wAn(1018,52,LVn),MWn.Vc=function(n,t){this.a.Vc(n,t)},MWn.Wc=function(n,t){return this.a.Wc(n,t)},MWn.Hc=function(n){return this.a.Hc(n)},MWn.Xb=function(n){return this.a.Xb(n)},MWn.$c=function(n){return this.a.$c(n)},MWn._c=function(n,t){return this.a._c(n,t)},MWn.gc=function(){return this.a.gc()},vX(XWn,"Lists/AbstractListWrapper",1018),wAn(1019,1018,xVn),vX(XWn,"Lists/RandomAccessListWrapper",1019),wAn(1021,1019,xVn,IT),MWn.Zc=function(n){return this.a.Zc(n)},vX(XWn,"Lists/1",1021),wAn(131,52,{131:1,20:1,28:1,52:1,14:1,15:1},CT),MWn.Vc=function(n,t){this.a.Vc(pU(this,n),t)},MWn.$b=function(){this.a.$b()},MWn.Xb=function(n){return this.a.Xb(LX(this,n))},MWn.Kc=function(){return W1(this,0)},MWn.Zc=function(n){return W1(this,n)},MWn.$c=function(n){return this.a.$c(LX(this,n))},MWn.Ud=function(n,t){(d2(n,t,this.a.gc()),ean(this.a.bd(pU(this,t),pU(this,n)))).$b()},MWn._c=function(n,t){return this.a._c(LX(this,n),t)},MWn.gc=function(){return this.a.gc()},MWn.bd=function(n,t){return d2(n,t,this.a.gc()),ean(this.a.bd(pU(this,t),pU(this,n)))},vX(XWn,"Lists/ReverseList",131),wAn(280,131,{131:1,20:1,28:1,52:1,14:1,15:1,54:1},fy),vX(XWn,"Lists/RandomAccessReverseList",280),wAn(1020,1,cVn,kT),MWn.Nb=function(n){fU(this,n)},MWn.Rb=function(n){this.c.Rb(n),this.c.Ub(),this.a=!1},MWn.Ob=function(){return this.c.Sb()},MWn.Sb=function(){return this.c.Ob()},MWn.Pb=function(){return w5(this)},MWn.Tb=function(){return pU(this.b,this.c.Tb())},MWn.Ub=function(){if(!this.c.Ob())throw Hp(new yv);return this.a=!0,this.c.Pb()},MWn.Vb=function(){return pU(this.b,this.c.Tb())-1},MWn.Qb=function(){han(this.a),this.c.Qb(),this.a=!1},MWn.Wb=function(n){uN(this.a),this.c.Wb(n)},MWn.a=!1,vX(XWn,"Lists/ReverseList/1",1020),wAn(432,487,QWn,ly),MWn.Qd=function(n){return cS(n)},vX(XWn,"Maps/1",432),wAn(698,487,QWn,by),MWn.Qd=function(n){return BB(n,42).dd()},vX(XWn,"Maps/2",698),wAn(962,487,QWn,pN),MWn.Qd=function(n){return new vT(n,_O(this.a,n))},vX(XWn,"Maps/3",962),wAn(959,1971,tVn,ml),MWn.Jc=function(n){xv(this.a,n)},MWn.Kc=function(){return this.a.kc()},MWn.Rc=function(){return this.a},MWn.Nc=function(){return this.a.lc()},vX(XWn,"Maps/IteratorBasedAbstractMap/1",959),wAn(960,1,{},vl),MWn.Od=function(n,t){this.a.td(n)},vX(XWn,"Maps/KeySet/lambda$0$Type",960),wAn(958,28,ZWn,PT),MWn.$b=function(){this.a.$b()},MWn.Hc=function(n){return this.a.uc(n)},MWn.Jc=function(n){yX(n),this.a.wc(new ll(n))},MWn.dc=function(){return this.a.dc()},MWn.Kc=function(){return new by(this.a.vc().Kc())},MWn.Mc=function(n){var t,e;try{return ywn(this,n,!0)}catch(i){if(cL(i=lun(i),41)){for(e=this.a.vc().Kc();e.Ob();)if(wW(n,(t=BB(e.Pb(),42)).dd()))return this.a.Bc(t.cd()),!0;return!1}throw Hp(i)}},MWn.gc=function(){return this.a.gc()},vX(XWn,"Maps/Values",958),wAn(961,1,{},ll),MWn.Od=function(n,t){this.a.td(t)},vX(XWn,"Maps/Values/lambda$0$Type",961),wAn(736,1987,JWn,rS),MWn.xc=function(n){return this.a._b(n)?this.a.cc(n):null},MWn.Bc=function(n){return this.a._b(n)?this.a.fc(n):null},MWn.$b=function(){this.a.$b()},MWn._b=function(n){return this.a._b(n)},MWn.Ec=function(){return new fl(this)},MWn.Dc=function(){return this.Ec()},MWn.dc=function(){return this.a.dc()},MWn.ec=function(){return this.a.ec()},MWn.gc=function(){return this.a.ec().gc()},vX(XWn,"Multimaps/AsMap",736),wAn(1104,1971,tVn,fl),MWn.Kc=function(){return nL(this.a.a.ec(),new bl(this))},MWn.Rc=function(){return this.a},MWn.Mc=function(n){var t;return!!idn(this,n)&&(t=BB(n,42),jk(this.a,t.cd()),!0)},vX(XWn,"Multimaps/AsMap/EntrySet",1104),wAn(1108,1,{},bl),MWn.Kb=function(n){return _O(this,n)},MWn.Fb=function(n){return this===n},vX(XWn,"Multimaps/AsMap/EntrySet/1",1108),wAn(543,1989,{543:1,835:1,20:1,28:1,14:1},wl),MWn.$b=function(){win(this.a)},MWn.Hc=function(n){return Wj(this.a,n)},MWn.Jc=function(n){yX(n),e5(MX(this.a),new gl(n))},MWn.Kc=function(){return new ly(MX(this.a).a.kc())},MWn.gc=function(){return this.a.d},MWn.Nc=function(){return RB(MX(this.a).Nc(),new l)},vX(XWn,"Multimaps/Keys",543),wAn(1106,1,{},l),MWn.Kb=function(n){return BB(n,42).cd()},vX(XWn,"Multimaps/Keys/0methodref$getKey$Type",1106),wAn(1105,487,QWn,wy),MWn.Qd=function(n){return new dl(BB(n,42))},vX(XWn,"Multimaps/Keys/1",1105),wAn(1990,1,{416:1}),MWn.Fb=function(n){var t;return!!cL(n,492)&&(t=BB(n,416),BB(this.a.dd(),14).gc()==BB(t.a.dd(),14).gc()&&wW(this.a.cd(),t.a.cd()))},MWn.Hb=function(){var n;return(null==(n=this.a.cd())?0:nsn(n))^BB(this.a.dd(),14).gc()},MWn.Ib=function(){var n,t;return t=kN(this.a.cd()),1==(n=BB(this.a.dd(),14).gc())?t:t+" x "+n},vX(XWn,"Multisets/AbstractEntry",1990),wAn(492,1990,{492:1,416:1},dl),vX(XWn,"Multimaps/Keys/1/1",492),wAn(1107,1,lVn,gl),MWn.td=function(n){this.a.td(BB(n,42).cd())},vX(XWn,"Multimaps/Keys/lambda$1$Type",1107),wAn(1110,1,lVn,b),MWn.td=function(n){Iq(BB(n,416))},vX(XWn,"Multiset/lambda$0$Type",1110),wAn(737,1,lVn,pl),MWn.td=function(n){Itn(this.a,BB(n,416))},vX(XWn,"Multiset/lambda$1$Type",737),wAn(1111,1,{},m),vX(XWn,"Multisets/0methodref$add$Type",1111),wAn(738,1,{},y),MWn.Kb=function(n){return s3(BB(n,416))},vX(XWn,"Multisets/lambda$3$Type",738),wAn(2008,1,KWn),vX(XWn,"RangeGwtSerializationDependencies",2008),wAn(514,2008,{169:1,514:1,3:1,45:1},svn),MWn.Lb=function(n){return Mz(this,BB(n,35))},MWn.Mb=function(n){return Mz(this,BB(n,35))},MWn.Fb=function(n){var t;return!!cL(n,514)&&(t=BB(n,514),xdn(this.a,t.a)&&xdn(this.b,t.b))},MWn.Hb=function(){return 31*this.a.Hb()+this.b.Hb()},MWn.Ib=function(){return B3(this.a,this.b)},vX(XWn,"Range",514),wAn(778,1999,yVn,aU),MWn.Zc=function(n){return ix(this.b,n)},MWn.Pd=function(){return this.a},MWn.Xb=function(n){return WI(this.b,n)},MWn.Fd=function(n){return ix(this.b,n)},vX(XWn,"RegularImmutableAsList",778),wAn(646,2006,yVn,SY),MWn.Hd=function(){return this.a},vX(XWn,"RegularImmutableList",646),wAn(616,715,jVn,hy),vX(XWn,"RegularImmutableMap",616),wAn(716,703,TVn,vS),vX(XWn,"RegularImmutableSet",716),wAn(1976,nVn,tVn),MWn.Kc=function(){return new SV(this.a,this.b)},MWn.Fc=function(n){throw Hp(new pv)},MWn.Gc=function(n){throw Hp(new pv)},MWn.$b=function(){throw Hp(new pv)},MWn.Mc=function(n){throw Hp(new pv)},vX(XWn,"Sets/SetView",1976),wAn(963,1976,tVn,ET),MWn.Kc=function(){return new SV(this.a,this.b)},MWn.Hc=function(n){return CG(this.a,n)&&this.b.Hc(n)},MWn.Ic=function(n){return oun(this.a,n)&&this.b.Ic(n)},MWn.dc=function(){return Kpn(this.b,this.a)},MWn.Lc=function(){return AV(new Rq(null,new w1(this.a,1)),new jl(this.b))},MWn.gc=function(){return Can(this)},MWn.Oc=function(){return AV(new Rq(null,new w1(this.a,1)),new kl(this.b))},vX(XWn,"Sets/2",963),wAn(700,699,UWn,SV),MWn.Yb=function(){for(var n;k$(this.a);)if(n=u4(this.a),this.c.Hc(n))return n;return this.e=2,null},vX(XWn,"Sets/2/1",700),wAn(964,1,DVn,kl),MWn.Mb=function(n){return this.a.Hc(n)},vX(XWn,"Sets/2/4methodref$contains$Type",964),wAn(965,1,DVn,jl),MWn.Mb=function(n){return this.a.Hc(n)},vX(XWn,"Sets/2/5methodref$contains$Type",965),wAn(607,1975,{607:1,3:1,20:1,14:1,271:1,21:1,84:1},bJ),MWn.Bd=function(){return this.b},MWn.Cd=function(){return this.b},MWn.Md=function(){return this.b},MWn.Jc=function(n){this.a.Jc(n)},MWn.Lc=function(){return this.a.Lc()},MWn.Oc=function(){return this.a.Oc()},vX(XWn,"Sets/UnmodifiableNavigableSet",607),wAn(1932,1931,jVn,GW),MWn.Ld=function(){return s_(),new yk(this.a)},MWn.Cc=function(){return s_(),new yk(this.a)},MWn.pd=function(){return s_(),new yk(this.a)},vX(XWn,"SingletonImmutableBiMap",1932),wAn(647,2006,yVn,Pq),MWn.Hd=function(){return this.a},vX(XWn,"SingletonImmutableList",647),wAn(350,1981,TVn,yk),MWn.Kc=function(){return new sl(this.a)},MWn.Hc=function(n){return Nfn(this.a,n)},MWn.Ed=function(){return new sl(this.a)},MWn.gc=function(){return 1},vX(XWn,"SingletonImmutableSet",350),wAn(1115,1,{},k),MWn.Kb=function(n){return BB(n,164)},vX(XWn,"Streams/lambda$0$Type",1115),wAn(1116,1,RVn,El),MWn.Vd=function(){B5(this.a)},vX(XWn,"Streams/lambda$1$Type",1116),wAn(1659,1658,VWn,pY),MWn.Zb=function(){return BB(BB(this.f||(this.f=cL(this.c,171)?new ID(this,BB(this.c,171)):cL(this.c,161)?new CD(this,BB(this.c,161)):new pT(this,this.c)),161),171)},MWn.hc=function(){return new dE(this.b)},MWn.gd=function(){return new dE(this.b)},MWn.ec=function(){return BB(BB(this.i||(this.i=cL(this.c,171)?new tT(this,BB(this.c,171)):cL(this.c,161)?new nT(this,BB(this.c,161)):new HL(this,this.c)),84),271)},MWn.ac=function(){return cL(this.c,171)?new ID(this,BB(this.c,171)):cL(this.c,161)?new CD(this,BB(this.c,161)):new pT(this,this.c)},MWn.ic=function(n){return null==n&&this.a.ue(n,n),new dE(this.b)},vX(XWn,"TreeMultimap",1659),wAn(78,1,{3:1,78:1}),MWn.Wd=function(n){return new Error(n)},MWn.Xd=function(){return this.e},MWn.Yd=function(){return _wn($V(LU((null==this.k&&(this.k=x8(Jnt,sVn,78,0,0,1)),this.k)),new x),new on)},MWn.Zd=function(){return this.f},MWn.$d=function(){return this.g},MWn._d=function(){yy(this,b2(this.Wd(CY(this,this.g)))),ov(this)},MWn.Ib=function(){return CY(this,this.$d())},MWn.e=FVn,MWn.i=!1,MWn.n=!0;var Ynt,Jnt=vX(RWn,"Throwable",78);wAn(102,78,{3:1,102:1,78:1}),vX(RWn,"Exception",102),wAn(60,102,BVn,sv,dy),vX(RWn,"RuntimeException",60),wAn(598,60,BVn),vX(RWn,"JsException",598),wAn(863,598,BVn),vX(HVn,"JavaScriptExceptionBase",863),wAn(477,863,{477:1,3:1,102:1,60:1,78:1},jhn),MWn.$d=function(){return pEn(this),this.c},MWn.ae=function(){return GI(this.b)===GI(Ynt)?null:this.b},vX(GVn,"JavaScriptException",477);var Znt,ntt=vX(GVn,"JavaScriptObject$",0);wAn(1948,1,{}),vX(GVn,"Scheduler",1948);var ttt,ett,itt,rtt,ctt=0,att=0,utt=-1;wAn(890,1948,{},j),vX(HVn,"SchedulerImpl",890),wAn(1960,1,{}),vX(HVn,"StackTraceCreator/Collector",1960),wAn(864,1960,{},E),MWn.be=function(n){var t={},e=[];n[UVn]=e;for(var i=arguments.callee.caller;i;){var r=(PY(),i.name||(i.name=Ven(i.toString())));e.push(r);var c,a,u=":"+r,o=t[u];if(o)for(c=0,a=o.length;c<a;c++)if(o[c]===i)return;(o||(t[u]=[])).push(i),i=i.caller}},MWn.ce=function(n){var t,e,i,r;for(PY(),e=(i=n&&n[UVn]?n[UVn]:[]).length,r=x8(Ftt,sVn,310,e,0,1),t=0;t<e;t++)r[t]=new PV(i[t],null,-1);return r},vX(HVn,"StackTraceCreator/CollectorLegacy",864),wAn(1961,1960,{}),MWn.be=function(n){},MWn.de=function(n,t,e,i){return new PV(t,n+"@"+i,e<0?-1:e)},MWn.ce=function(n){var t,e,i,r,c,a;if(r=lyn(n),c=x8(Ftt,sVn,310,0,0,1),t=0,0==(i=r.length))return c;for(mK((a=Oqn(this,r[0])).d,zVn)||(c[t++]=a),e=1;e<i;e++)c[t++]=Oqn(this,r[e]);return c},vX(HVn,"StackTraceCreator/CollectorModern",1961),wAn(865,1961,{},d),MWn.de=function(n,t,e,i){return new PV(t,n,-1)},vX(HVn,"StackTraceCreator/CollectorModernNoSourceMap",865),wAn(1050,1,{}),vX(yQn,kQn,1050),wAn(615,1050,{615:1},zX),vX(jQn,kQn,615),wAn(2001,1,{}),vX(yQn,EQn,2001),wAn(2002,2001,{}),vX(jQn,EQn,2002),wAn(1090,1,{},g),vX(jQn,"LocaleInfo",1090),wAn(1918,1,{},p),MWn.a=0,vX(jQn,"TimeZone",1918),wAn(1258,2002,{},w),vX("com.google.gwt.i18n.client.impl.cldr","DateTimeFormatInfoImpl",1258),wAn(434,1,{434:1},VB),MWn.a=!1,MWn.b=0,vX(yQn,"DateTimeFormat/PatternPart",434),wAn(199,1,TQn,AT,von,PD),MWn.wd=function(n){return J0(this,BB(n,199))},MWn.Fb=function(n){return cL(n,199)&&QI(fan(this.q.getTime()),fan(BB(n,199).q.getTime()))},MWn.Hb=function(){var n;return dG(r0(n=fan(this.q.getTime()),jz(n,32)))},MWn.Ib=function(){var n,t,i;return n=((i=-this.q.getTimezoneOffset())>=0?"+":"")+(i/60|0),t=UO(e.Math.abs(i)%60),(pMn(),pet)[this.q.getDay()]+" "+vet[this.q.getMonth()]+" "+UO(this.q.getDate())+" "+UO(this.q.getHours())+":"+UO(this.q.getMinutes())+":"+UO(this.q.getSeconds())+" GMT"+n+t+" "+this.q.getFullYear()};var ott,stt,htt,ftt,ltt,btt,wtt,dtt,gtt,ptt,vtt,mtt=vX(YWn,"Date",199);wAn(1915,199,TQn,Ykn),MWn.a=!1,MWn.b=0,MWn.c=0,MWn.d=0,MWn.e=0,MWn.f=0,MWn.g=!1,MWn.i=0,MWn.j=0,MWn.k=0,MWn.n=0,MWn.o=0,MWn.p=0,vX("com.google.gwt.i18n.shared.impl","DateRecord",1915),wAn(1966,1,{}),MWn.fe=function(){return null},MWn.ge=function(){return null},MWn.he=function(){return null},MWn.ie=function(){return null},MWn.je=function(){return null},vX(MQn,"JSONValue",1966),wAn(216,1966,{216:1},Cl,Tl),MWn.Fb=function(n){return!!cL(n,216)&&v0(this.a,BB(n,216).a)},MWn.ee=function(){return qp},MWn.Hb=function(){return tY(this.a)},MWn.fe=function(){return this},MWn.Ib=function(){var n,t,e;for(e=new lN("["),t=0,n=this.a.length;t<n;t++)t>0&&(e.a+=","),uO(e,dnn(this,t));return e.a+="]",e.a},vX(MQn,"JSONArray",216),wAn(483,1966,{483:1},Ml),MWn.ee=function(){return Gp},MWn.ge=function(){return this},MWn.Ib=function(){return hN(),""+this.a},MWn.a=!1,vX(MQn,"JSONBoolean",483),wAn(985,60,BVn,gy),vX(MQn,"JSONException",985),wAn(1023,1966,{},v),MWn.ee=function(){return Vp},MWn.Ib=function(){return zWn},vX(MQn,"JSONNull",1023),wAn(258,1966,{258:1},Sl),MWn.Fb=function(n){return!!cL(n,258)&&this.a==BB(n,258).a},MWn.ee=function(){return zp},MWn.Hb=function(){return VO(this.a)},MWn.he=function(){return this},MWn.Ib=function(){return this.a+""},MWn.a=0,vX(MQn,"JSONNumber",258),wAn(183,1966,{183:1},py,Pl),MWn.Fb=function(n){return!!cL(n,183)&&v0(this.a,BB(n,183).a)},MWn.ee=function(){return Up},MWn.Hb=function(){return tY(this.a)},MWn.ie=function(){return this},MWn.Ib=function(){var n,t,e,i,r,c;for(c=new lN("{"),n=!0,i=0,r=(e=jrn(this,x8(Qtt,sVn,2,0,6,1))).length;i<r;++i)t=e[i],n?n=!1:c.a+=FWn,oO(c,mOn(t)),c.a+=":",uO(c,zJ(this,t));return c.a+="}",c.a},vX(MQn,"JSONObject",183),wAn(596,nVn,tVn,TT),MWn.Hc=function(n){return XI(n)&&zk(this.a,SD(n))},MWn.Kc=function(){return new Sb(new Jy(this.b))},MWn.gc=function(){return this.b.length},vX(MQn,"JSONObject/1",596),wAn(204,1966,{204:1},GX),MWn.Fb=function(n){return!!cL(n,204)&&mK(this.a,BB(n,204).a)},MWn.ee=function(){return Xp},MWn.Hb=function(){return vvn(this.a)},MWn.je=function(){return this},MWn.Ib=function(){return mOn(this.a)},vX(MQn,"JSONString",204),wAn(1962,1,{525:1}),vX(LQn,"OutputStream",1962),wAn(1963,1962,{525:1}),vX(LQn,"FilterOutputStream",1963),wAn(866,1963,{525:1},A),vX(LQn,"PrintStream",866),wAn(418,1,{475:1}),MWn.Ib=function(){return this.a},vX(RWn,"AbstractStringBuilder",418),wAn(529,60,BVn,Oy),vX(RWn,"ArithmeticException",529),wAn(73,60,NQn,fv,Ay),vX(RWn,"IndexOutOfBoundsException",73),wAn(320,73,{3:1,320:1,102:1,73:1,60:1,78:1},Sv,Tk),vX(RWn,"ArrayIndexOutOfBoundsException",320),wAn(528,60,BVn,lv,$y),vX(RWn,"ArrayStoreException",528),wAn(289,78,xQn,Ly),vX(RWn,"Error",289),wAn(194,289,xQn,hv,g5),vX(RWn,"AssertionError",194),CWn={3:1,476:1,35:1};var ytt,ktt=vX(RWn,"Boolean",476);wAn(236,1,{3:1,236:1}),vX(RWn,"Number",236),wAn(217,236,{3:1,217:1,35:1,236:1},$b),MWn.wd=function(n){return Fk(this,BB(n,217))},MWn.ke=function(){return this.a},MWn.Fb=function(n){return cL(n,217)&&BB(n,217).a==this.a},MWn.Hb=function(){return this.a},MWn.Ib=function(){return""+this.a},MWn.a=0;var jtt,Ett,Ttt=vX(RWn,"Byte",217);wAn(172,1,{3:1,172:1,35:1},Lb),MWn.wd=function(n){return Bk(this,BB(n,172))},MWn.Fb=function(n){return cL(n,172)&&BB(n,172).a==this.a},MWn.Hb=function(){return this.a},MWn.Ib=function(){return String.fromCharCode(this.a)},MWn.a=0;var Mtt,Stt=vX(RWn,"Character",172);wAn(205,60,{3:1,205:1,102:1,60:1,78:1},bv,Ky),vX(RWn,"ClassCastException",205),IWn={3:1,35:1,333:1,236:1};var Ptt=vX(RWn,"Double",333);wAn(155,236,{3:1,35:1,155:1,236:1},Nb,Dv),MWn.wd=function(n){return BO(this,BB(n,155))},MWn.ke=function(){return this.a},MWn.Fb=function(n){return cL(n,155)&&vK(this.a,BB(n,155).a)},MWn.Hb=function(){return CJ(this.a)},MWn.Ib=function(){return""+this.a},MWn.a=0;var Ctt=vX(RWn,"Float",155);wAn(32,60,{3:1,102:1,32:1,60:1,78:1},wv,_y,Fsn),vX(RWn,"IllegalArgumentException",32),wAn(71,60,BVn,dv,Fy),vX(RWn,"IllegalStateException",71),wAn(19,236,{3:1,35:1,19:1,236:1},xb),MWn.wd=function(n){return HO(this,BB(n,19))},MWn.ke=function(){return this.a},MWn.Fb=function(n){return cL(n,19)&&BB(n,19).a==this.a},MWn.Hb=function(){return this.a},MWn.Ib=function(){return""+this.a},MWn.a=0;var Itt,Ott,Att=vX(RWn,"Integer",19);wAn(162,236,{3:1,35:1,162:1,236:1},Db),MWn.wd=function(n){return qO(this,BB(n,162))},MWn.ke=function(){return j2(this.a)},MWn.Fb=function(n){return cL(n,162)&&QI(BB(n,162).a,this.a)},MWn.Hb=function(){return dG(this.a)},MWn.Ib=function(){return""+vz(this.a)},MWn.a=0;var $tt,Ltt,Ntt,xtt,Dtt,Rtt=vX(RWn,"Long",162);wAn(2039,1,{}),wAn(1831,60,BVn,By),vX(RWn,"NegativeArraySizeException",1831),wAn(173,598,{3:1,102:1,173:1,60:1,78:1},gv,Hy),MWn.Wd=function(n){return new TypeError(n)},vX(RWn,"NullPointerException",173),wAn(127,32,{3:1,102:1,32:1,127:1,60:1,78:1},Mk),vX(RWn,"NumberFormatException",127),wAn(184,236,{3:1,35:1,236:1,184:1},Rb),MWn.wd=function(n){return Hk(this,BB(n,184))},MWn.ke=function(){return this.a},MWn.Fb=function(n){return cL(n,184)&&BB(n,184).a==this.a},MWn.Hb=function(){return this.a},MWn.Ib=function(){return""+this.a},MWn.a=0;var Ktt,_tt=vX(RWn,"Short",184);wAn(310,1,{3:1,310:1},PV),MWn.Fb=function(n){var t;return!!cL(n,310)&&(t=BB(n,310),this.c==t.c&&this.d==t.d&&this.a==t.a&&this.b==t.b)},MWn.Hb=function(){return fhn(Pun(Gk(Ant,1),HWn,1,5,[iln(this.c),this.a,this.d,this.b]))},MWn.Ib=function(){return this.a+"."+this.d+"("+(null!=this.b?this.b:"Unknown Source")+(this.c>=0?":"+this.c:"")+")"},MWn.c=0;var Ftt=vX(RWn,"StackTraceElement",310);OWn={3:1,475:1,35:1,2:1};var Btt,Htt,qtt,Gtt,ztt,Utt,Xtt,Wtt,Vtt,Qtt=vX(RWn,qVn,2);wAn(107,418,{475:1},Sk,Pk,fN),vX(RWn,"StringBuffer",107),wAn(100,418,{475:1},Ck,Ik,lN),vX(RWn,"StringBuilder",100),wAn(687,73,NQn,Ok),vX(RWn,"StringIndexOutOfBoundsException",687),wAn(2043,1,{}),wAn(844,1,{},x),MWn.Kb=function(n){return BB(n,78).e},vX(RWn,"Throwable/lambda$0$Type",844),wAn(41,60,{3:1,102:1,60:1,78:1,41:1},pv,tk),vX(RWn,"UnsupportedOperationException",41),wAn(240,236,{3:1,35:1,236:1,240:1},knn,wE),MWn.wd=function(n){return J_n(this,BB(n,240))},MWn.ke=function(){return bSn(eqn(this))},MWn.Fb=function(n){var t;return this===n||!!cL(n,240)&&(t=BB(n,240),this.e==t.e&&0==J_n(this,t))},MWn.Hb=function(){var n;return 0!=this.b?this.b:this.a<54?(n=fan(this.f),this.b=dG(e0(n,-1)),this.b=33*this.b+dG(e0(kz(n,32),-1)),this.b=17*this.b+CJ(this.e),this.b):(this.b=17*Khn(this.c)+CJ(this.e),this.b)},MWn.Ib=function(){return eqn(this)},MWn.a=0,MWn.b=0,MWn.d=0,MWn.e=0,MWn.f=0;var Ytt,Jtt,Ztt,net,tet,eet,iet=vX("java.math","BigDecimal",240);wAn(91,236,{3:1,35:1,236:1,91:1},Rpn,X6,lU,vEn,Cgn,$A),MWn.wd=function(n){return tgn(this,BB(n,91))},MWn.ke=function(){return bSn(qXn(this,0))},MWn.Fb=function(n){return swn(this,n)},MWn.Hb=function(){return Khn(this)},MWn.Ib=function(){return qXn(this,0)},MWn.b=-2,MWn.c=0,MWn.d=0,MWn.e=0;var ret,cet,aet,uet,oet=vX("java.math","BigInteger",91);wAn(488,1967,JWn),MWn.$b=function(){$U(this)},MWn._b=function(n){return hU(this,n)},MWn.uc=function(n){return Lsn(this,n,this.g)||Lsn(this,n,this.f)},MWn.vc=function(){return new Pb(this)},MWn.xc=function(n){return RX(this,n)},MWn.zc=function(n,t){return VW(this,n,t)},MWn.Bc=function(n){return v6(this,n)},MWn.gc=function(){return NT(this)},vX(YWn,"AbstractHashMap",488),wAn(261,nVn,tVn,Pb),MWn.$b=function(){this.a.$b()},MWn.Hc=function(n){return m2(this,n)},MWn.Kc=function(){return new usn(this.a)},MWn.Mc=function(n){var t;return!!m2(this,n)&&(t=BB(n,42).cd(),this.a.Bc(t),!0)},MWn.gc=function(){return this.a.gc()},vX(YWn,"AbstractHashMap/EntrySet",261),wAn(262,1,QWn,usn),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return ten(this)},MWn.Ob=function(){return this.b},MWn.Qb=function(){o9(this)},MWn.b=!1,vX(YWn,"AbstractHashMap/EntrySetIterator",262),wAn(417,1,QWn,Sb),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return aS(this)},MWn.Pb=function(){return mQ(this)},MWn.Qb=function(){fW(this)},MWn.b=0,MWn.c=-1,vX(YWn,"AbstractList/IteratorImpl",417),wAn(96,417,cVn,M2),MWn.Qb=function(){fW(this)},MWn.Rb=function(n){yR(this,n)},MWn.Sb=function(){return this.b>0},MWn.Tb=function(){return this.b},MWn.Ub=function(){return Px(this.b>0),this.a.Xb(this.c=--this.b)},MWn.Vb=function(){return this.b-1},MWn.Wb=function(n){Mx(-1!=this.c),this.a._c(this.c,n)},vX(YWn,"AbstractList/ListIteratorImpl",96),wAn(219,52,LVn,s1),MWn.Vc=function(n,t){LZ(n,this.b),this.c.Vc(this.a+n,t),++this.b},MWn.Xb=function(n){return l1(n,this.b),this.c.Xb(this.a+n)},MWn.$c=function(n){var t;return l1(n,this.b),t=this.c.$c(this.a+n),--this.b,t},MWn._c=function(n,t){return l1(n,this.b),this.c._c(this.a+n,t)},MWn.gc=function(){return this.b},MWn.a=0,MWn.b=0,vX(YWn,"AbstractList/SubList",219),wAn(384,nVn,tVn,Cb),MWn.$b=function(){this.a.$b()},MWn.Hc=function(n){return this.a._b(n)},MWn.Kc=function(){return new Ib(this.a.vc().Kc())},MWn.Mc=function(n){return!!this.a._b(n)&&(this.a.Bc(n),!0)},MWn.gc=function(){return this.a.gc()},vX(YWn,"AbstractMap/1",384),wAn(691,1,QWn,Ib),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return this.a.Ob()},MWn.Pb=function(){return BB(this.a.Pb(),42).cd()},MWn.Qb=function(){this.a.Qb()},vX(YWn,"AbstractMap/1/1",691),wAn(226,28,ZWn,Ob),MWn.$b=function(){this.a.$b()},MWn.Hc=function(n){return this.a.uc(n)},MWn.Kc=function(){return new Kb(this.a.vc().Kc())},MWn.gc=function(){return this.a.gc()},vX(YWn,"AbstractMap/2",226),wAn(294,1,QWn,Kb),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return this.a.Ob()},MWn.Pb=function(){return BB(this.a.Pb(),42).dd()},MWn.Qb=function(){this.a.Qb()},vX(YWn,"AbstractMap/2/1",294),wAn(484,1,{484:1,42:1}),MWn.Fb=function(n){var t;return!!cL(n,42)&&(t=BB(n,42),cV(this.d,t.cd())&&cV(this.e,t.dd()))},MWn.cd=function(){return this.d},MWn.dd=function(){return this.e},MWn.Hb=function(){return KA(this.d)^KA(this.e)},MWn.ed=function(n){return pR(this,n)},MWn.Ib=function(){return this.d+"="+this.e},vX(YWn,"AbstractMap/AbstractEntry",484),wAn(383,484,{484:1,383:1,42:1},PS),vX(YWn,"AbstractMap/SimpleEntry",383),wAn(1984,1,VQn),MWn.Fb=function(n){var t;return!!cL(n,42)&&(t=BB(n,42),cV(this.cd(),t.cd())&&cV(this.dd(),t.dd()))},MWn.Hb=function(){return KA(this.cd())^KA(this.dd())},MWn.Ib=function(){return this.cd()+"="+this.dd()},vX(YWn,uVn,1984),wAn(1992,1967,eVn),MWn.tc=function(n){return q5(this,n)},MWn._b=function(n){return DK(this,n)},MWn.vc=function(){return new Bb(this)},MWn.xc=function(n){return qI(lsn(this,n))},MWn.ec=function(){return new _b(this)},vX(YWn,"AbstractNavigableMap",1992),wAn(739,nVn,tVn,Bb),MWn.Hc=function(n){return cL(n,42)&&q5(this.b,BB(n,42))},MWn.Kc=function(){return new BR(this.b)},MWn.Mc=function(n){var t;return!!cL(n,42)&&(t=BB(n,42),z8(this.b,t))},MWn.gc=function(){return this.b.c},vX(YWn,"AbstractNavigableMap/EntrySet",739),wAn(493,nVn,rVn,_b),MWn.Nc=function(){return new wS(this)},MWn.$b=function(){my(this.a)},MWn.Hc=function(n){return DK(this.a,n)},MWn.Kc=function(){return new Fb(new BR(new xN(this.a).b))},MWn.Mc=function(n){return!!DK(this.a,n)&&($J(this.a,n),!0)},MWn.gc=function(){return this.a.c},vX(YWn,"AbstractNavigableMap/NavigableKeySet",493),wAn(494,1,QWn,Fb),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return aS(this.a.a)},MWn.Pb=function(){return mx(this.a).cd()},MWn.Qb=function(){e_(this.a)},vX(YWn,"AbstractNavigableMap/NavigableKeySet/1",494),wAn(2004,28,ZWn),MWn.Fc=function(n){return F8(eMn(this,n)),!0},MWn.Gc=function(n){return kW(n),vH(n!=this,"Can't add a queue to itself"),Frn(this,n)},MWn.$b=function(){for(;null!=mnn(this););},vX(YWn,"AbstractQueue",2004),wAn(302,28,{4:1,20:1,28:1,14:1},Lp,d1),MWn.Fc=function(n){return w3(this,n),!0},MWn.$b=function(){o4(this)},MWn.Hc=function(n){return wun(new bV(this),n)},MWn.dc=function(){return Wy(this)},MWn.Kc=function(){return new bV(this)},MWn.Mc=function(n){return GJ(new bV(this),n)},MWn.gc=function(){return this.c-this.b&this.a.length-1},MWn.Nc=function(){return new w1(this,272)},MWn.Qc=function(n){var t;return t=this.c-this.b&this.a.length-1,n.length<t&&(n=qk(new Array(t),n)),urn(this,n,t),n.length>t&&$X(n,t,null),n},MWn.b=0,MWn.c=0,vX(YWn,"ArrayDeque",302),wAn(446,1,QWn,bV),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return this.a!=this.b},MWn.Pb=function(){return _hn(this)},MWn.Qb=function(){ein(this)},MWn.a=0,MWn.b=0,MWn.c=-1,vX(YWn,"ArrayDeque/IteratorImpl",446),wAn(12,52,QQn,Np,J6,t_),MWn.Vc=function(n,t){kG(this,n,t)},MWn.Fc=function(n){return WB(this,n)},MWn.Wc=function(n,t){return ohn(this,n,t)},MWn.Gc=function(n){return gun(this,n)},MWn.$b=function(){this.c=x8(Ant,HWn,1,0,5,1)},MWn.Hc=function(n){return-1!=E7(this,n,0)},MWn.Jc=function(n){Otn(this,n)},MWn.Xb=function(n){return xq(this,n)},MWn.Xc=function(n){return E7(this,n,0)},MWn.dc=function(){return 0==this.c.length},MWn.Kc=function(){return new Wb(this)},MWn.$c=function(n){return s6(this,n)},MWn.Mc=function(n){return y7(this,n)},MWn.Ud=function(n,t){h1(this,n,t)},MWn._c=function(n,t){return c5(this,n,t)},MWn.gc=function(){return this.c.length},MWn.ad=function(n){m$(this,n)},MWn.Pc=function(){return bx(this)},MWn.Qc=function(n){return Qgn(this,n)};var set,het,fet,bet,wet,det,get,pet,vet,met=vX(YWn,"ArrayList",12);wAn(7,1,QWn,Wb),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return y$(this)},MWn.Pb=function(){return n0(this)},MWn.Qb=function(){AU(this)},MWn.a=0,MWn.b=-1,vX(YWn,"ArrayList/1",7),wAn(2013,e.Function,{},T),MWn.te=function(n,t){return Pln(n,t)},wAn(154,52,YQn,Jy),MWn.Hc=function(n){return-1!=bin(this,n)},MWn.Jc=function(n){var t,e,i,r;for(kW(n),i=0,r=(e=this.a).length;i<r;++i)t=e[i],n.td(t)},MWn.Xb=function(n){return Dq(this,n)},MWn._c=function(n,t){var e;return l1(n,this.a.length),e=this.a[n],$X(this.a,n,t),e},MWn.gc=function(){return this.a.length},MWn.ad=function(n){yG(this.a,this.a.length,n)},MWn.Pc=function(){return Ygn(this,x8(Ant,HWn,1,this.a.length,5,1))},MWn.Qc=function(n){return Ygn(this,n)},vX(YWn,"Arrays/ArrayList",154),wAn(940,52,YQn,S),MWn.Hc=function(n){return!1},MWn.Xb=function(n){return yO(n)},MWn.Kc=function(){return SQ(),LT(),bet},MWn.Yc=function(){return SQ(),LT(),bet},MWn.gc=function(){return 0},vX(YWn,"Collections/EmptyList",940),wAn(941,1,cVn,P),MWn.Nb=function(n){fU(this,n)},MWn.Rb=function(n){throw Hp(new pv)},MWn.Ob=function(){return!1},MWn.Sb=function(){return!1},MWn.Pb=function(){throw Hp(new yv)},MWn.Tb=function(){return 0},MWn.Ub=function(){throw Hp(new yv)},MWn.Vb=function(){return-1},MWn.Qb=function(){throw Hp(new dv)},MWn.Wb=function(n){throw Hp(new dv)},vX(YWn,"Collections/EmptyListIterator",941),wAn(943,1967,jVn,C),MWn._b=function(n){return!1},MWn.uc=function(n){return!1},MWn.vc=function(){return SQ(),fet},MWn.xc=function(n){return null},MWn.ec=function(){return SQ(),fet},MWn.gc=function(){return 0},MWn.Cc=function(){return SQ(),set},vX(YWn,"Collections/EmptyMap",943),wAn(942,nVn,TVn,M),MWn.Hc=function(n){return!1},MWn.Kc=function(){return SQ(),LT(),bet},MWn.gc=function(){return 0},vX(YWn,"Collections/EmptySet",942),wAn(599,52,{3:1,20:1,28:1,52:1,14:1,15:1},Gb),MWn.Hc=function(n){return cV(this.a,n)},MWn.Xb=function(n){return l1(n,1),this.a},MWn.gc=function(){return 1},vX(YWn,"Collections/SingletonList",599),wAn(372,1,vVn,Hb),MWn.Jc=function(n){e5(this,n)},MWn.Lc=function(){return new Rq(null,this.Nc())},MWn.Nc=function(){return new w1(this,0)},MWn.Oc=function(){return new Rq(null,this.Nc())},MWn.Fc=function(n){return oE()},MWn.Gc=function(n){return sE()},MWn.$b=function(){hE()},MWn.Hc=function(n){return xT(this,n)},MWn.Ic=function(n){return DT(this,n)},MWn.dc=function(){return this.b.dc()},MWn.Kc=function(){return new qb(this.b.Kc())},MWn.Mc=function(n){return fE()},MWn.gc=function(){return this.b.gc()},MWn.Pc=function(){return this.b.Pc()},MWn.Qc=function(n){return RT(this,n)},MWn.Ib=function(){return Bbn(this.b)},vX(YWn,"Collections/UnmodifiableCollection",372),wAn(371,1,QWn,qb),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return this.b.Ob()},MWn.Pb=function(){return this.b.Pb()},MWn.Qb=function(){lE()},vX(YWn,"Collections/UnmodifiableCollectionIterator",371),wAn(531,372,JQn,bN),MWn.Nc=function(){return new w1(this,16)},MWn.Vc=function(n,t){throw Hp(new pv)},MWn.Wc=function(n,t){throw Hp(new pv)},MWn.Fb=function(n){return Nfn(this.a,n)},MWn.Xb=function(n){return this.a.Xb(n)},MWn.Hb=function(){return nsn(this.a)},MWn.Xc=function(n){return this.a.Xc(n)},MWn.dc=function(){return this.a.dc()},MWn.Yc=function(){return new wN(this.a.Zc(0))},MWn.Zc=function(n){return new wN(this.a.Zc(n))},MWn.$c=function(n){throw Hp(new pv)},MWn._c=function(n,t){throw Hp(new pv)},MWn.ad=function(n){throw Hp(new pv)},MWn.bd=function(n,t){return new bN(this.a.bd(n,t))},vX(YWn,"Collections/UnmodifiableList",531),wAn(690,371,cVn,wN),MWn.Qb=function(){lE()},MWn.Rb=function(n){throw Hp(new pv)},MWn.Sb=function(){return this.a.Sb()},MWn.Tb=function(){return this.a.Tb()},MWn.Ub=function(){return this.a.Ub()},MWn.Vb=function(){return this.a.Vb()},MWn.Wb=function(n){throw Hp(new pv)},vX(YWn,"Collections/UnmodifiableListIterator",690),wAn(600,1,JWn,Xb),MWn.wc=function(n){nan(this,n)},MWn.yc=function(n,t,e){return Zln(this,n,t,e)},MWn.$b=function(){throw Hp(new pv)},MWn._b=function(n){return this.c._b(n)},MWn.uc=function(n){return _T(this,n)},MWn.vc=function(){return eV(this)},MWn.Fb=function(n){return BT(this,n)},MWn.xc=function(n){return this.c.xc(n)},MWn.Hb=function(){return nsn(this.c)},MWn.dc=function(){return this.c.dc()},MWn.ec=function(){return iV(this)},MWn.zc=function(n,t){throw Hp(new pv)},MWn.Bc=function(n){throw Hp(new pv)},MWn.gc=function(){return this.c.gc()},MWn.Ib=function(){return Bbn(this.c)},MWn.Cc=function(){return tV(this)},vX(YWn,"Collections/UnmodifiableMap",600),wAn(382,372,EVn,Ak),MWn.Nc=function(){return new w1(this,1)},MWn.Fb=function(n){return Nfn(this.b,n)},MWn.Hb=function(){return nsn(this.b)},vX(YWn,"Collections/UnmodifiableSet",382),wAn(944,382,EVn,Lk),MWn.Hc=function(n){return KT(this,n)},MWn.Ic=function(n){return this.b.Ic(n)},MWn.Kc=function(){return new zb(this.b.Kc())},MWn.Pc=function(){var n;return j4(n=this.b.Pc(),n.length),n},MWn.Qc=function(n){return IY(this,n)},vX(YWn,"Collections/UnmodifiableMap/UnmodifiableEntrySet",944),wAn(945,1,QWn,zb),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return new Ub(BB(this.a.Pb(),42))},MWn.Ob=function(){return this.a.Ob()},MWn.Qb=function(){throw Hp(new pv)},vX(YWn,"Collections/UnmodifiableMap/UnmodifiableEntrySet/1",945),wAn(688,1,VQn,Ub),MWn.Fb=function(n){return this.a.Fb(n)},MWn.cd=function(){return this.a.cd()},MWn.dd=function(){return this.a.dd()},MWn.Hb=function(){return this.a.Hb()},MWn.ed=function(n){throw Hp(new pv)},MWn.Ib=function(){return Bbn(this.a)},vX(YWn,"Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry",688),wAn(601,531,{20:1,14:1,15:1,54:1},$k),vX(YWn,"Collections/UnmodifiableRandomAccessList",601),wAn(689,382,MVn,dN),MWn.Nc=function(){return new wS(this)},MWn.Fb=function(n){return Nfn(this.a,n)},MWn.Hb=function(){return nsn(this.a)},vX(YWn,"Collections/UnmodifiableSortedSet",689),wAn(847,1,ZQn,D),MWn.ue=function(n,t){var e;return 0!=(e=T4(BB(n,11),BB(t,11)))?e:nFn(BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(YWn,"Comparator/lambda$0$Type",847),wAn(751,1,ZQn,R),MWn.ue=function(n,t){return _q(BB(n,35),BB(t,35))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return PQ(),get},vX(YWn,"Comparators/NaturalOrderComparator",751),wAn(1177,1,ZQn,K),MWn.ue=function(n,t){return Fq(BB(n,35),BB(t,35))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return PQ(),det},vX(YWn,"Comparators/ReverseNaturalOrderComparator",1177),wAn(64,1,ZQn,nw),MWn.Fb=function(n){return this===n},MWn.ue=function(n,t){return this.a.ue(t,n)},MWn.ve=function(){return this.a},vX(YWn,"Comparators/ReversedComparator",64),wAn(166,60,BVn,vv),vX(YWn,"ConcurrentModificationException",166),wAn(1904,1,nYn,_),MWn.we=function(n){hdn(this,n)},MWn.Ib=function(){return"DoubleSummaryStatistics[count = "+vz(this.a)+", avg = "+(oS(this.a,0)?l6(this)/j2(this.a):0)+", min = "+this.c+", max = "+this.b+", sum = "+l6(this)+"]"},MWn.a=0,MWn.b=KQn,MWn.c=RQn,MWn.d=0,MWn.e=0,MWn.f=0,vX(YWn,"DoubleSummaryStatistics",1904),wAn(1805,60,BVn,mv),vX(YWn,"EmptyStackException",1805),wAn(451,1967,JWn,Hbn),MWn.zc=function(n,t){return wR(this,n,t)},MWn.$b=function(){TW(this)},MWn._b=function(n){return uS(this,n)},MWn.uc=function(n){var t,e;for(e=new QT(this.a);e.a<e.c.a.length;)if(t=u4(e),cV(n,this.b[t.g]))return!0;return!1},MWn.vc=function(){return new tw(this)},MWn.xc=function(n){return oV(this,n)},MWn.Bc=function(n){return NZ(this,n)},MWn.gc=function(){return this.a.c},vX(YWn,"EnumMap",451),wAn(1352,nVn,tVn,tw),MWn.$b=function(){TW(this.a)},MWn.Hc=function(n){return v2(this,n)},MWn.Kc=function(){return new Aq(this.a)},MWn.Mc=function(n){var t;return!!v2(this,n)&&(t=BB(n,42).cd(),NZ(this.a,t),!0)},MWn.gc=function(){return this.a.a.c},vX(YWn,"EnumMap/EntrySet",1352),wAn(1353,1,QWn,Aq),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return this.b=u4(this.a),new CS(this.c,this.b)},MWn.Ob=function(){return k$(this.a)},MWn.Qb=function(){Mx(!!this.b),NZ(this.c,this.b),this.b=null},vX(YWn,"EnumMap/EntrySetIterator",1353),wAn(1354,1984,VQn,CS),MWn.cd=function(){return this.a},MWn.dd=function(){return this.b.b[this.a.g]},MWn.ed=function(n){return EU(this.b,this.a.g,n)},vX(YWn,"EnumMap/MapEntry",1354),wAn(174,nVn,{20:1,28:1,14:1,174:1,21:1});var yet=vX(YWn,"EnumSet",174);wAn(156,174,{20:1,28:1,14:1,174:1,156:1,21:1},YK),MWn.Fc=function(n){return orn(this,BB(n,22))},MWn.Hc=function(n){return CG(this,n)},MWn.Kc=function(){return new QT(this)},MWn.Mc=function(n){return IG(this,n)},MWn.gc=function(){return this.c},MWn.c=0,vX(YWn,"EnumSet/EnumSetImpl",156),wAn(343,1,QWn,QT),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return u4(this)},MWn.Ob=function(){return k$(this)},MWn.Qb=function(){Mx(-1!=this.b),$X(this.c.b,this.b,null),--this.c.c,this.b=-1},MWn.a=-1,MWn.b=-1,vX(YWn,"EnumSet/EnumSetImpl/IteratorImpl",343),wAn(43,488,tYn,xp,XT,mO),MWn.re=function(n,t){return GI(n)===GI(t)||null!=n&&Nfn(n,t)},MWn.se=function(n){return 0|nsn(n)},vX(YWn,"HashMap",43),wAn(53,nVn,eYn,Rv,bE,$q),MWn.Fc=function(n){return TU(this,n)},MWn.$b=function(){this.a.$b()},MWn.Hc=function(n){return FT(this,n)},MWn.dc=function(){return 0==this.a.gc()},MWn.Kc=function(){return this.a.ec().Kc()},MWn.Mc=function(n){return eL(this,n)},MWn.gc=function(){return this.a.gc()};var ket,jet=vX(YWn,"HashSet",53);wAn(1781,1,wVn,F),MWn.ud=function(n){ran(this,n)},MWn.Ib=function(){return"IntSummaryStatistics[count = "+vz(this.a)+", avg = "+(oS(this.a,0)?j2(this.d)/j2(this.a):0)+", min = "+this.c+", max = "+this.b+", sum = "+vz(this.d)+"]"},MWn.a=0,MWn.b=_Vn,MWn.c=DWn,MWn.d=0,vX(YWn,"IntSummaryStatistics",1781),wAn(1049,1,pVn,eA),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new S2(this)},MWn.c=0,vX(YWn,"InternalHashCodeMap",1049),wAn(711,1,QWn,S2),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return this.d=this.a[this.c++],this.d},MWn.Ob=function(){var n;return this.c<this.a.length||!(n=this.b.next()).done&&(this.a=n.value[1],this.c=0,!0)},MWn.Qb=function(){gAn(this.e,this.d.cd()),0!=this.c&&--this.c},MWn.c=0,MWn.d=null,vX(YWn,"InternalHashCodeMap/1",711),wAn(1047,1,pVn,iA),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new p4(this)},MWn.c=0,MWn.d=0,vX(YWn,"InternalStringMap",1047),wAn(710,1,QWn,p4),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return this.c=this.a,this.a=this.b.next(),new JK(this.d,this.c,this.d.d)},MWn.Ob=function(){return!this.a.done},MWn.Qb=function(){Gan(this.d,this.c.value[0])},vX(YWn,"InternalStringMap/1",710),wAn(1048,1984,VQn,JK),MWn.cd=function(){return this.b.value[0]},MWn.dd=function(){return this.a.d!=this.c?hS(this.a,this.b.value[0]):this.b.value[1]},MWn.ed=function(n){return ubn(this.a,this.b.value[0],n)},MWn.c=0,vX(YWn,"InternalStringMap/2",1048),wAn(228,43,tYn,v4,q8),MWn.$b=function(){kR(this)},MWn._b=function(n){return lS(this,n)},MWn.uc=function(n){var t;for(t=this.d.a;t!=this.d;){if(cV(t.e,n))return!0;t=t.a}return!1},MWn.vc=function(){return new iw(this)},MWn.xc=function(n){return lnn(this,n)},MWn.zc=function(n,t){return Jgn(this,n,t)},MWn.Bc=function(n){return k7(this,n)},MWn.gc=function(){return NT(this.e)},MWn.c=!1,vX(YWn,"LinkedHashMap",228),wAn(387,383,{484:1,383:1,387:1,42:1},Cx,nH),vX(YWn,"LinkedHashMap/ChainEntry",387),wAn(701,nVn,tVn,iw),MWn.$b=function(){kR(this.a)},MWn.Hc=function(n){return y2(this,n)},MWn.Kc=function(){return new hW(this)},MWn.Mc=function(n){var t;return!!y2(this,n)&&(t=BB(n,42).cd(),k7(this.a,t),!0)},MWn.gc=function(){return NT(this.a.e)},vX(YWn,"LinkedHashMap/EntrySet",701),wAn(702,1,QWn,hW),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return s9(this)},MWn.Ob=function(){return this.b!=this.c.a.d},MWn.Qb=function(){Mx(!!this.a),p2(this.c.a.e,this),RH(this.a),v6(this.c.a.e,this.a.d),bD(this.c.a.e,this),this.a=null},vX(YWn,"LinkedHashMap/EntrySet/EntryIterator",702),wAn(178,53,eYn,fA,LN,Lq);var Eet=vX(YWn,"LinkedHashSet",178);wAn(68,1964,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1},YT,n_),MWn.Fc=function(n){return DH(this,n)},MWn.$b=function(){yQ(this)},MWn.Zc=function(n){return spn(this,n)},MWn.gc=function(){return this.b},MWn.b=0;var Tet,Met,Set,Pet,Cet,Iet=vX(YWn,"LinkedList",68);wAn(970,1,cVn,ZK),MWn.Nb=function(n){fU(this,n)},MWn.Rb=function(n){nX(this,n)},MWn.Ob=function(){return EE(this)},MWn.Sb=function(){return this.b.b!=this.d.a},MWn.Pb=function(){return b3(this)},MWn.Tb=function(){return this.a},MWn.Ub=function(){return U0(this)},MWn.Vb=function(){return this.a-1},MWn.Qb=function(){mtn(this)},MWn.Wb=function(n){Mx(!!this.c),this.c.c=n},MWn.a=0,MWn.c=null,vX(YWn,"LinkedList/ListIteratorImpl",970),wAn(608,1,{},$),vX(YWn,"LinkedList/Node",608),wAn(1959,1,{}),vX(YWn,"Locale",1959),wAn(861,1959,{},L),MWn.Ib=function(){return""},vX(YWn,"Locale/1",861),wAn(862,1959,{},N),MWn.Ib=function(){return"unknown"},vX(YWn,"Locale/4",862),wAn(109,60,{3:1,102:1,60:1,78:1,109:1},yv,lV),vX(YWn,"NoSuchElementException",109),wAn(404,1,{404:1},vy),MWn.Fb=function(n){var t;return n===this||!!cL(n,404)&&(t=BB(n,404),cV(this.a,t.a))},MWn.Hb=function(){return KA(this.a)},MWn.Ib=function(){return null!=this.a?GWn+kN(this.a)+")":"Optional.empty()"},vX(YWn,"Optional",404),wAn(463,1,{463:1},CO,yx),MWn.Fb=function(n){var t;return n===this||!!cL(n,463)&&(t=BB(n,463),this.a==t.a&&0==Pln(this.b,t.b))},MWn.Hb=function(){return this.a?CJ(this.b):0},MWn.Ib=function(){return this.a?"OptionalDouble.of("+this.b+")":"OptionalDouble.empty()"},MWn.a=!1,MWn.b=0,vX(YWn,"OptionalDouble",463),wAn(517,1,{517:1},IO,kx),MWn.Fb=function(n){var t;return n===this||!!cL(n,517)&&(t=BB(n,517),this.a==t.a&&0==E$(this.b,t.b))},MWn.Hb=function(){return this.a?this.b:0},MWn.Ib=function(){return this.a?"OptionalInt.of("+this.b+")":"OptionalInt.empty()"},MWn.a=!1,MWn.b=0,vX(YWn,"OptionalInt",517),wAn(503,2004,ZWn,Xz),MWn.Gc=function(n){return ikn(this,n)},MWn.$b=function(){this.b.c=x8(Ant,HWn,1,0,5,1)},MWn.Hc=function(n){return-1!=(null==n?-1:E7(this.b,n,0))},MWn.Kc=function(){return new Vb(this)},MWn.Mc=function(n){return srn(this,n)},MWn.gc=function(){return this.b.c.length},MWn.Nc=function(){return new w1(this,256)},MWn.Pc=function(){return bx(this.b)},MWn.Qc=function(n){return Qgn(this.b,n)},vX(YWn,"PriorityQueue",503),wAn(1277,1,QWn,Vb),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return this.a<this.c.b.c.length},MWn.Pb=function(){return Px(this.a<this.c.b.c.length),this.b=this.a++,xq(this.c.b,this.b)},MWn.Qb=function(){Mx(-1!=this.b),hrn(this.c,this.a=this.b),this.b=-1},MWn.a=0,MWn.b=-1,vX(YWn,"PriorityQueue/1",1277),wAn(230,1,{230:1},sbn,C4),MWn.a=0,MWn.b=0;var Oet,Aet,$et,Let=0;vX(YWn,"Random",230),wAn(27,1,fVn,w1,zU,CV),MWn.qd=function(){return this.a},MWn.rd=function(){return Dz(this),this.c},MWn.Nb=function(n){Dz(this),this.d.Nb(n)},MWn.sd=function(n){return ntn(this,n)},MWn.a=0,MWn.c=0,vX(YWn,"Spliterators/IteratorSpliterator",27),wAn(485,27,fVn,wS),vX(YWn,"SortedSet/1",485),wAn(602,1,nYn,Qb),MWn.we=function(n){this.a.td(n)},vX(YWn,"Spliterator/OfDouble/0methodref$accept$Type",602),wAn(603,1,nYn,Yb),MWn.we=function(n){this.a.td(n)},vX(YWn,"Spliterator/OfDouble/1methodref$accept$Type",603),wAn(604,1,wVn,Jb),MWn.ud=function(n){this.a.td(iln(n))},vX(YWn,"Spliterator/OfInt/2methodref$accept$Type",604),wAn(605,1,wVn,Zb),MWn.ud=function(n){this.a.td(iln(n))},vX(YWn,"Spliterator/OfInt/3methodref$accept$Type",605),wAn(617,1,fVn),MWn.Nb=function(n){pE(this,n)},MWn.qd=function(){return this.d},MWn.rd=function(){return this.e},MWn.d=0,MWn.e=0,vX(YWn,"Spliterators/BaseSpliterator",617),wAn(721,617,fVn),MWn.xe=function(n){gE(this,n)},MWn.Nb=function(n){cL(n,182)?gE(this,BB(n,182)):gE(this,new Yb(n))},MWn.sd=function(n){return cL(n,182)?this.ye(BB(n,182)):this.ye(new Qb(n))},vX(YWn,"Spliterators/AbstractDoubleSpliterator",721),wAn(720,617,fVn),MWn.xe=function(n){gE(this,n)},MWn.Nb=function(n){cL(n,196)?gE(this,BB(n,196)):gE(this,new Zb(n))},MWn.sd=function(n){return cL(n,196)?this.ye(BB(n,196)):this.ye(new Jb(n))},vX(YWn,"Spliterators/AbstractIntSpliterator",720),wAn(540,617,fVn),vX(YWn,"Spliterators/AbstractSpliterator",540),wAn(692,1,fVn),MWn.Nb=function(n){pE(this,n)},MWn.qd=function(){return this.b},MWn.rd=function(){return this.d-this.c},MWn.b=0,MWn.c=0,MWn.d=0,vX(YWn,"Spliterators/BaseArraySpliterator",692),wAn(947,692,fVn,BH),MWn.ze=function(n,t){cj(this,BB(n,38),t)},MWn.Nb=function(n){DX(this,n)},MWn.sd=function(n){return K6(this,n)},vX(YWn,"Spliterators/ArraySpliterator",947),wAn(693,692,fVn,_K),MWn.ze=function(n,t){aj(this,BB(n,182),t)},MWn.xe=function(n){DX(this,n)},MWn.Nb=function(n){cL(n,182)?DX(this,BB(n,182)):DX(this,new Yb(n))},MWn.ye=function(n){return K6(this,n)},MWn.sd=function(n){return cL(n,182)?K6(this,BB(n,182)):K6(this,new Qb(n))},vX(YWn,"Spliterators/DoubleArraySpliterator",693),wAn(1968,1,fVn),MWn.Nb=function(n){pE(this,n)},MWn.qd=function(){return 16448},MWn.rd=function(){return 0},vX(YWn,"Spliterators/EmptySpliterator",1968),wAn(946,1968,fVn,z),MWn.xe=function(n){Bf(n)},MWn.Nb=function(n){cL(n,196)?Bf(BB(n,196)):Bf(new Zb(n))},MWn.ye=function(n){return bS(n)},MWn.sd=function(n){return cL(n,196)?bS(BB(n,196)):bS(new Jb(n))},vX(YWn,"Spliterators/EmptySpliterator/OfInt",946),wAn(580,52,fYn,_v),MWn.Vc=function(n,t){Kz(n,this.a.c.length+1),kG(this.a,n,t)},MWn.Fc=function(n){return WB(this.a,n)},MWn.Wc=function(n,t){return Kz(n,this.a.c.length+1),ohn(this.a,n,t)},MWn.Gc=function(n){return gun(this.a,n)},MWn.$b=function(){this.a.c=x8(Ant,HWn,1,0,5,1)},MWn.Hc=function(n){return-1!=E7(this.a,n,0)},MWn.Ic=function(n){return oun(this.a,n)},MWn.Jc=function(n){Otn(this.a,n)},MWn.Xb=function(n){return Kz(n,this.a.c.length),xq(this.a,n)},MWn.Xc=function(n){return E7(this.a,n,0)},MWn.dc=function(){return 0==this.a.c.length},MWn.Kc=function(){return new Wb(this.a)},MWn.$c=function(n){return Kz(n,this.a.c.length),s6(this.a,n)},MWn.Ud=function(n,t){h1(this.a,n,t)},MWn._c=function(n,t){return Kz(n,this.a.c.length),c5(this.a,n,t)},MWn.gc=function(){return this.a.c.length},MWn.ad=function(n){m$(this.a,n)},MWn.bd=function(n,t){return new s1(this.a,n,t)},MWn.Pc=function(){return bx(this.a)},MWn.Qc=function(n){return Qgn(this.a,n)},MWn.Ib=function(){return LMn(this.a)},vX(YWn,"Vector",580),wAn(809,580,fYn,om),vX(YWn,"Stack",809),wAn(206,1,{206:1},$an),MWn.Ib=function(){return W0(this)},vX(YWn,"StringJoiner",206),wAn(544,1992,{3:1,83:1,171:1,161:1},WT,Wz),MWn.$b=function(){my(this)},MWn.vc=function(){return new xN(this)},MWn.zc=function(n,t){return Mon(this,n,t)},MWn.Bc=function(n){return $J(this,n)},MWn.gc=function(){return this.c},MWn.c=0,vX(YWn,"TreeMap",544),wAn(390,1,QWn,BR),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return mx(this)},MWn.Ob=function(){return aS(this.a)},MWn.Qb=function(){e_(this)},vX(YWn,"TreeMap/EntryIterator",390),wAn(435,739,tVn,xN),MWn.$b=function(){my(this.a)},vX(YWn,"TreeMap/EntrySet",435),wAn(436,383,{484:1,383:1,42:1,436:1},H8),MWn.b=!1;var Net,xet,Det,Ret,Ket=vX(YWn,"TreeMap/Node",436);wAn(621,1,{},q),MWn.Ib=function(){return"State: mv="+this.c+" value="+this.d+" done="+this.a+" found="+this.b},MWn.a=!1,MWn.b=!1,MWn.c=!1,vX(YWn,"TreeMap/State",621),wAn(297,22,lYn,gS),MWn.Ae=function(){return!1},MWn.Be=function(){return!1};var _et,Fet=Ben(YWn,"TreeMap/SubMapType",297,Unt,J2,h_);wAn(1112,297,lYn,LA),MWn.Be=function(){return!0},Ben(YWn,"TreeMap/SubMapType/1",1112,Fet,null,null),wAn(1113,297,lYn,A$),MWn.Ae=function(){return!0},MWn.Be=function(){return!0},Ben(YWn,"TreeMap/SubMapType/2",1113,Fet,null,null),wAn(1114,297,lYn,NA),MWn.Ae=function(){return!0},Ben(YWn,"TreeMap/SubMapType/3",1114,Fet,null,null),wAn(208,nVn,{3:1,20:1,28:1,14:1,271:1,21:1,84:1,208:1},zv,dE),MWn.Nc=function(){return new wS(this)},MWn.Fc=function(n){return ZU(this,n)},MWn.$b=function(){my(this.a)},MWn.Hc=function(n){return DK(this.a,n)},MWn.Kc=function(){return new Fb(new BR(new xN(new _b(this.a).a).b))},MWn.Mc=function(n){return MN(this,n)},MWn.gc=function(){return this.a.c};var Bet=vX(YWn,"TreeSet",208);wAn(966,1,{},rw),MWn.Ce=function(n,t){return DD(this.a,n,t)},vX(bYn,"BinaryOperator/lambda$0$Type",966),wAn(967,1,{},cw),MWn.Ce=function(n,t){return RD(this.a,n,t)},vX(bYn,"BinaryOperator/lambda$1$Type",967),wAn(846,1,{},G),MWn.Kb=function(n){return n},vX(bYn,"Function/lambda$0$Type",846),wAn(431,1,DVn,aw),MWn.Mb=function(n){return!this.a.Mb(n)},vX(bYn,"Predicate/lambda$2$Type",431),wAn(572,1,{572:1});var Het,qet,Get=vX(wYn,"Handler",572);wAn(2007,1,KWn),MWn.ne=function(){return"DUMMY"},MWn.Ib=function(){return this.ne()},vX(wYn,"Level",2007),wAn(1621,2007,KWn,U),MWn.ne=function(){return"INFO"},vX(wYn,"Level/LevelInfo",1621),wAn(1640,1,{},Kv),vX(wYn,"LogManager",1640),wAn(1780,1,KWn,i_),MWn.b=null,vX(wYn,"LogRecord",1780),wAn(512,1,{512:1},y5),MWn.e=!1;var zet,Uet,Xet,Wet=!1,Vet=!1,Qet=!1,Yet=!1,Jet=!1;vX(wYn,"Logger",512),wAn(819,572,{572:1},X),vX(wYn,"SimpleConsoleLogHandler",819),wAn(132,22,{3:1,35:1,22:1,132:1},pS);var Zet,nit=Ben(pYn,"Collector/Characteristics",132,Unt,p1,f_);wAn(744,1,{},jU),vX(pYn,"CollectorImpl",744),wAn(1060,1,{},W),MWn.Ce=function(n,t){return Ofn(BB(n,206),BB(t,206))},vX(pYn,"Collectors/10methodref$merge$Type",1060),wAn(1061,1,{},V),MWn.Kb=function(n){return W0(BB(n,206))},vX(pYn,"Collectors/11methodref$toString$Type",1061),wAn(1062,1,{},uw),MWn.Kb=function(n){return hN(),!!TO(n)},vX(pYn,"Collectors/12methodref$test$Type",1062),wAn(251,1,{},B),MWn.Od=function(n,t){BB(n,14).Fc(t)},vX(pYn,"Collectors/20methodref$add$Type",251),wAn(253,1,{},H),MWn.Ee=function(){return new Np},vX(pYn,"Collectors/21methodref$ctor$Type",253),wAn(346,1,{},Q),MWn.Ee=function(){return new Rv},vX(pYn,"Collectors/23methodref$ctor$Type",346),wAn(347,1,{},Y),MWn.Od=function(n,t){TU(BB(n,53),t)},vX(pYn,"Collectors/24methodref$add$Type",347),wAn(1055,1,{},J),MWn.Ce=function(n,t){return ZT(BB(n,15),BB(t,14))},vX(pYn,"Collectors/4methodref$addAll$Type",1055),wAn(1059,1,{},Z),MWn.Od=function(n,t){b6(BB(n,206),BB(t,475))},vX(pYn,"Collectors/9methodref$add$Type",1059),wAn(1058,1,{},YB),MWn.Ee=function(){return new $an(this.a,this.b,this.c)},vX(pYn,"Collectors/lambda$15$Type",1058),wAn(1063,1,{},nn),MWn.Ee=function(){var n;return Jgn(n=new v4,(hN(),!1),new Np),Jgn(n,!0,new Np),n},vX(pYn,"Collectors/lambda$22$Type",1063),wAn(1064,1,{},ow),MWn.Ee=function(){return Pun(Gk(Ant,1),HWn,1,5,[this.a])},vX(pYn,"Collectors/lambda$25$Type",1064),wAn(1065,1,{},sw),MWn.Od=function(n,t){Bq(this.a,een(n))},vX(pYn,"Collectors/lambda$26$Type",1065),wAn(1066,1,{},hw),MWn.Ce=function(n,t){return _z(this.a,een(n),een(t))},vX(pYn,"Collectors/lambda$27$Type",1066),wAn(1067,1,{},tn),MWn.Kb=function(n){return een(n)[0]},vX(pYn,"Collectors/lambda$28$Type",1067),wAn(713,1,{},en),MWn.Ce=function(n,t){return Hq(n,t)},vX(pYn,"Collectors/lambda$4$Type",713),wAn(252,1,{},rn),MWn.Ce=function(n,t){return GT(BB(n,14),BB(t,14))},vX(pYn,"Collectors/lambda$42$Type",252),wAn(348,1,{},cn),MWn.Ce=function(n,t){return zT(BB(n,53),BB(t,53))},vX(pYn,"Collectors/lambda$50$Type",348),wAn(349,1,{},an),MWn.Kb=function(n){return BB(n,53)},vX(pYn,"Collectors/lambda$51$Type",349),wAn(1054,1,{},fw),MWn.Od=function(n,t){bsn(this.a,BB(n,83),t)},vX(pYn,"Collectors/lambda$7$Type",1054),wAn(1056,1,{},un),MWn.Ce=function(n,t){return pun(BB(n,83),BB(t,83),new J)},vX(pYn,"Collectors/lambda$8$Type",1056),wAn(1057,1,{},lw),MWn.Kb=function(n){return mbn(this.a,BB(n,83))},vX(pYn,"Collectors/lambda$9$Type",1057),wAn(539,1,{}),MWn.He=function(){jW(this)},MWn.d=!1,vX(pYn,"TerminatableStream",539),wAn(812,539,vYn,AD),MWn.He=function(){jW(this)},vX(pYn,"DoubleStreamImpl",812),wAn(1784,721,fVn,ZB),MWn.ye=function(n){return pmn(this,BB(n,182))},MWn.a=null,vX(pYn,"DoubleStreamImpl/2",1784),wAn(1785,1,nYn,bw),MWn.we=function(n){HA(this.a,n)},vX(pYn,"DoubleStreamImpl/2/lambda$0$Type",1785),wAn(1782,1,nYn,ww),MWn.we=function(n){BA(this.a,n)},vX(pYn,"DoubleStreamImpl/lambda$0$Type",1782),wAn(1783,1,nYn,dw),MWn.we=function(n){hdn(this.a,n)},vX(pYn,"DoubleStreamImpl/lambda$2$Type",1783),wAn(1358,720,fVn,m5),MWn.ye=function(n){return k2(this,BB(n,196))},MWn.a=0,MWn.b=0,MWn.c=0,vX(pYn,"IntStream/5",1358),wAn(787,539,vYn,$D),MWn.He=function(){jW(this)},MWn.Ie=function(){return EW(this),this.a},vX(pYn,"IntStreamImpl",787),wAn(788,539,vYn,VT),MWn.He=function(){jW(this)},MWn.Ie=function(){return EW(this),IL(),$et},vX(pYn,"IntStreamImpl/Empty",788),wAn(1463,1,wVn,gw),MWn.ud=function(n){ran(this.a,n)},vX(pYn,"IntStreamImpl/lambda$4$Type",1463);var tit,eit=bq(pYn,"Stream");wAn(30,539,{525:1,670:1,833:1},Rq),MWn.He=function(){jW(this)},vX(pYn,"StreamImpl",30),wAn(845,1,{},on),MWn.ld=function(n){return lH(n)},vX(pYn,"StreamImpl/0methodref$lambda$2$Type",845),wAn(1084,540,fVn,KK),MWn.sd=function(n){for(;$9(this);){if(this.a.sd(n))return!0;jW(this.b),this.b=null,this.a=null}return!1},vX(pYn,"StreamImpl/1",1084),wAn(1085,1,lVn,pw),MWn.td=function(n){iH(this.a,BB(n,833))},vX(pYn,"StreamImpl/1/lambda$0$Type",1085),wAn(1086,1,DVn,vw),MWn.Mb=function(n){return TU(this.a,n)},vX(pYn,"StreamImpl/1methodref$add$Type",1086),wAn(1087,540,fVn,vQ),MWn.sd=function(n){var t;return this.a||(t=new Np,this.b.a.Nb(new mw(t)),SQ(),m$(t,this.c),this.a=new w1(t,16)),ntn(this.a,n)},MWn.a=null,vX(pYn,"StreamImpl/5",1087),wAn(1088,1,lVn,mw),MWn.td=function(n){WB(this.a,n)},vX(pYn,"StreamImpl/5/2methodref$add$Type",1088),wAn(722,540,fVn,Q9),MWn.sd=function(n){for(this.b=!1;!this.b&&this.c.sd(new AS(this,n)););return this.b},MWn.b=!1,vX(pYn,"StreamImpl/FilterSpliterator",722),wAn(1079,1,lVn,AS),MWn.td=function(n){Rz(this.a,this.b,n)},vX(pYn,"StreamImpl/FilterSpliterator/lambda$0$Type",1079),wAn(1075,721,fVn,E6),MWn.ye=function(n){return jK(this,BB(n,182))},vX(pYn,"StreamImpl/MapToDoubleSpliterator",1075),wAn(1078,1,lVn,$S),MWn.td=function(n){jS(this.a,this.b,n)},vX(pYn,"StreamImpl/MapToDoubleSpliterator/lambda$0$Type",1078),wAn(1074,720,fVn,T6),MWn.ye=function(n){return EK(this,BB(n,196))},vX(pYn,"StreamImpl/MapToIntSpliterator",1074),wAn(1077,1,lVn,LS),MWn.td=function(n){kS(this.a,this.b,n)},vX(pYn,"StreamImpl/MapToIntSpliterator/lambda$0$Type",1077),wAn(719,540,fVn,M6),MWn.sd=function(n){return TK(this,n)},vX(pYn,"StreamImpl/MapToObjSpliterator",719),wAn(1076,1,lVn,NS),MWn.td=function(n){ES(this.a,this.b,n)},vX(pYn,"StreamImpl/MapToObjSpliterator/lambda$0$Type",1076),wAn(618,1,lVn,sn),MWn.td=function(n){Il(this,n)},vX(pYn,"StreamImpl/ValueConsumer",618),wAn(1080,1,lVn,hn),MWn.td=function(n){dM()},vX(pYn,"StreamImpl/lambda$0$Type",1080),wAn(1081,1,lVn,fn),MWn.td=function(n){dM()},vX(pYn,"StreamImpl/lambda$1$Type",1081),wAn(1082,1,{},yw),MWn.Ce=function(n,t){return F_(this.a,n,t)},vX(pYn,"StreamImpl/lambda$4$Type",1082),wAn(1083,1,lVn,IS),MWn.td=function(n){ER(this.b,this.a,n)},vX(pYn,"StreamImpl/lambda$5$Type",1083),wAn(1089,1,lVn,kw),MWn.td=function(n){Hon(this.a,BB(n,365))},vX(pYn,"TerminatableStream/lambda$0$Type",1089),wAn(2041,1,{}),wAn(1914,1,{},ln),vX("javaemul.internal","ConsoleLogger",1914),wAn(2038,1,{});var iit,rit,cit=0,ait=0;wAn(1768,1,lVn,bn),MWn.td=function(n){BB(n,308)},vX(TYn,"BowyerWatsonTriangulation/lambda$0$Type",1768),wAn(1769,1,lVn,jw),MWn.td=function(n){Frn(this.a,BB(n,308).e)},vX(TYn,"BowyerWatsonTriangulation/lambda$1$Type",1769),wAn(1770,1,lVn,wn),MWn.td=function(n){BB(n,168)},vX(TYn,"BowyerWatsonTriangulation/lambda$2$Type",1770),wAn(1765,1,MYn,Ew),MWn.ue=function(n,t){return q3(this.a,BB(n,168),BB(t,168))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(TYn,"NaiveMinST/lambda$0$Type",1765),wAn(499,1,{},Tw),vX(TYn,"NodeMicroLayout",499),wAn(168,1,{168:1},xS),MWn.Fb=function(n){var t;return!!cL(n,168)&&(t=BB(n,168),cV(this.a,t.a)&&cV(this.b,t.b)||cV(this.a,t.b)&&cV(this.b,t.a))},MWn.Hb=function(){return KA(this.a)+KA(this.b)};var uit=vX(TYn,"TEdge",168);wAn(308,1,{308:1},ZFn),MWn.Fb=function(n){var t;return!!cL(n,308)&&K7(this,(t=BB(n,308)).a)&&K7(this,t.b)&&K7(this,t.c)},MWn.Hb=function(){return KA(this.a)+KA(this.b)+KA(this.c)},vX(TYn,"TTriangle",308),wAn(221,1,{221:1},C$),vX(TYn,"Tree",221),wAn(1254,1,{},IZ),vX(SYn,"Scanline",1254);var oit=bq(SYn,PYn);wAn(1692,1,{},ltn),vX(CYn,"CGraph",1692),wAn(307,1,{307:1},cZ),MWn.b=0,MWn.c=0,MWn.d=0,MWn.g=0,MWn.i=0,MWn.k=KQn,vX(CYn,"CGroup",307),wAn(815,1,{},Xv),vX(CYn,"CGroup/CGroupBuilder",815),wAn(57,1,{57:1},AR),MWn.Ib=function(){return this.j?SD(this.j.Kb(this)):(ED(bit),bit.o+"@"+(PN(this)>>>0).toString(16))},MWn.f=0,MWn.i=KQn;var sit,hit,fit,lit,bit=vX(CYn,"CNode",57);wAn(814,1,{},Wv),vX(CYn,"CNode/CNodeBuilder",814),wAn(1525,1,{},dn),MWn.Oe=function(n,t){return 0},MWn.Pe=function(n,t){return 0},vX(CYn,OYn,1525),wAn(1790,1,{},gn),MWn.Le=function(n){var t,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(h=RQn,r=new Wb(n.a.b);r.a<r.c.c.length;)t=BB(n0(r),57),h=e.Math.min(h,t.a.j.d.c+t.b.a);for(w=new YT,u=new Wb(n.a.a);u.a<u.c.c.length;)(a=BB(n0(u),307)).k=h,0==a.g&&r5(w,a,w.c.b,w.c);for(;0!=w.b;){for(c=(a=BB(0==w.b?null:(Px(0!=w.b),Atn(w,w.a.a)),307)).j.d.c,b=a.a.a.ec().Kc();b.Ob();)f=BB(b.Pb(),57),g=a.k+f.b.a,!Ghn(n,a,n.d)||f.d.c<g?f.i=g:f.i=f.d.c;for(c-=a.j.i,a.b+=c,n.d==(Ffn(),FPt)||n.d==KPt?a.c+=c:a.c-=c,l=a.a.a.ec().Kc();l.Ob();)for(s=(f=BB(l.Pb(),57)).c.Kc();s.Ob();)o=BB(s.Pb(),57),d=dA(n.d)?n.g.Oe(f,o):n.g.Pe(f,o),o.a.k=e.Math.max(o.a.k,f.i+f.d.b+d-o.b.a),cY(n,o,n.d)&&(o.a.k=e.Math.max(o.a.k,o.d.c-o.b.a)),--o.a.g,0==o.a.g&&DH(w,o.a)}for(i=new Wb(n.a.b);i.a<i.c.c.length;)(t=BB(n0(i),57)).d.c=t.i},vX(CYn,"LongestPathCompaction",1790),wAn(1690,1,{},yOn),MWn.e=!1;var wit,dit,git=vX(CYn,xYn,1690);wAn(1691,1,lVn,Mw),MWn.td=function(n){iun(this.a,BB(n,46))},vX(CYn,DYn,1691),wAn(1791,1,{},pn),MWn.Me=function(n){var t,e,i,r,c,a;for(t=new Wb(n.a.b);t.a<t.c.c.length;)BB(n0(t),57).c.$b();for(i=new Wb(n.a.b);i.a<i.c.c.length;)for(e=BB(n0(i),57),c=new Wb(n.a.b);c.a<c.c.c.length;)e!=(r=BB(n0(c),57))&&(e.a&&e.a==r.a||(a=dA(n.d)?n.g.Pe(e,r):n.g.Oe(e,r),(r.d.c>e.d.c||e.d.c==r.d.c&&e.d.b<r.d.b)&&Rdn(r.d.d+r.d.a+a,e.d.d)&&Kdn(r.d.d,e.d.d+e.d.a+a)&&e.c.Fc(r)))},vX(CYn,"QuadraticConstraintCalculation",1791),wAn(522,1,{522:1},Dp),MWn.a=!1,MWn.b=!1,MWn.c=!1,MWn.d=!1,vX(CYn,RYn,522),wAn(803,1,{},RG),MWn.Me=function(n){this.c=n,pCn(this,new yn)},vX(CYn,KYn,803),wAn(1718,1,{679:1},fY),MWn.Ke=function(n){_Pn(this,BB(n,464))},vX(CYn,_Yn,1718),wAn(1719,1,MYn,vn),MWn.ue=function(n,t){return uQ(BB(n,57),BB(t,57))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(CYn,FYn,1719),wAn(464,1,{464:1},OS),MWn.a=!1,vX(CYn,BYn,464),wAn(1720,1,MYn,mn),MWn.ue=function(n,t){return Jkn(BB(n,464),BB(t,464))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(CYn,HYn,1720),wAn(1721,1,qYn,yn),MWn.Lb=function(n){return BB(n,57),!0},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return BB(n,57),!0},vX(CYn,"ScanlineConstraintCalculator/lambda$1$Type",1721),wAn(428,22,{3:1,35:1,22:1,428:1},FS);var pit,vit,mit,yit=Ben(GYn,"HighLevelSortingCriterion",428,Unt,rJ,l_);wAn(427,22,{3:1,35:1,22:1,427:1},BS);var kit,jit,Eit,Tit,Mit,Sit,Pit,Cit,Iit,Oit,Ait,$it,Lit,Nit,xit,Dit,Rit,Kit=Ben(GYn,"LowLevelSortingCriterion",427,Unt,cJ,b_),_it=bq(zYn,"ILayoutMetaDataProvider");wAn(853,1,QYn,Gh),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,UYn),YYn),"Polyomino Traversal Strategy"),"Traversal strategy for trying different candidate positions for polyominoes."),Cit),(PPn(),gMt)),Bit),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,XYn),YYn),"Polyomino Secondary Sorting Criterion"),"Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion."),Sit),gMt),Kit),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,WYn),YYn),"Polyomino Primary Sorting Criterion"),"Possible primary sorting criteria for the processing order of polyominoes."),Tit),gMt),yit),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,VYn),YYn),"Fill Polyominoes"),"Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area."),(hN(),!0)),wMt),ktt),nbn(hMt))))},vX(GYn,"PolyominoOptions",853),wAn(250,22,{3:1,35:1,22:1,250:1},HS);var Fit,Bit=Ben(GYn,"TraversalStrategy",250,Unt,Tin,w_);wAn(213,1,{213:1},kn),MWn.Ib=function(){return"NEdge[id="+this.b+" w="+this.g+" d="+this.a+"]"},MWn.a=1,MWn.b=0,MWn.c=0,MWn.f=!1,MWn.g=0;var Hit=vX(JYn,"NEdge",213);wAn(176,1,{},Hv),vX(JYn,"NEdge/NEdgeBuilder",176),wAn(653,1,{},Fv),vX(JYn,"NGraph",653),wAn(121,1,{121:1},k6),MWn.c=-1,MWn.d=0,MWn.e=0,MWn.i=-1,MWn.j=!1;var qit=vX(JYn,"NNode",121);wAn(795,1,JQn,Bv),MWn.Jc=function(n){e5(this,n)},MWn.Lc=function(){return new Rq(null,new w1(this,16))},MWn.ad=function(n){_rn(this,n)},MWn.Nc=function(){return new w1(this,16)},MWn.Oc=function(){return new Rq(null,new w1(this,16))},MWn.Vc=function(n,t){++this.b,kG(this.a,n,t)},MWn.Fc=function(n){return RN(this,n)},MWn.Wc=function(n,t){return++this.b,ohn(this.a,n,t)},MWn.Gc=function(n){return++this.b,gun(this.a,n)},MWn.$b=function(){++this.b,this.a.c=x8(Ant,HWn,1,0,5,1)},MWn.Hc=function(n){return-1!=E7(this.a,n,0)},MWn.Ic=function(n){return oun(this.a,n)},MWn.Xb=function(n){return xq(this.a,n)},MWn.Xc=function(n){return E7(this.a,n,0)},MWn.dc=function(){return 0==this.a.c.length},MWn.Kc=function(){return L9(new Wb(this.a))},MWn.Yc=function(){throw Hp(new pv)},MWn.Zc=function(n){throw Hp(new pv)},MWn.$c=function(n){return++this.b,s6(this.a,n)},MWn.Mc=function(n){return KN(this,n)},MWn._c=function(n,t){return++this.b,c5(this.a,n,t)},MWn.gc=function(){return this.a.c.length},MWn.bd=function(n,t){return new s1(this.a,n,t)},MWn.Pc=function(){return bx(this.a)},MWn.Qc=function(n){return Qgn(this.a,n)},MWn.b=0,vX(JYn,"NNode/ChangeAwareArrayList",795),wAn(269,1,{},qv),vX(JYn,"NNode/NNodeBuilder",269),wAn(1630,1,{},jn),MWn.a=!1,MWn.f=DWn,MWn.j=0,vX(JYn,"NetworkSimplex",1630),wAn(1294,1,lVn,Sw),MWn.td=function(n){qzn(this.a,BB(n,680),!0,!1)},vX(nJn,"NodeLabelAndSizeCalculator/lambda$0$Type",1294),wAn(558,1,{},Pw),MWn.b=!0,MWn.c=!0,MWn.d=!0,MWn.e=!0,vX(nJn,"NodeMarginCalculator",558),wAn(212,1,{212:1}),MWn.j=!1,MWn.k=!1;var Git,zit,Uit,Xit=vX(tJn,"Cell",212);wAn(124,212,{124:1,212:1},FR),MWn.Re=function(){return XH(this)},MWn.Se=function(){var n;return n=this.n,this.a.a+n.b+n.c},vX(tJn,"AtomicCell",124),wAn(232,22,{3:1,35:1,22:1,232:1},qS);var Wit,Vit=Ben(tJn,"ContainerArea",232,Unt,v1,d_);wAn(326,212,iJn),vX(tJn,"ContainerCell",326),wAn(1473,326,iJn,Hwn),MWn.Re=function(){var n;return n=0,this.e?this.b?n=this.b.b:this.a[1][1]&&(n=this.a[1][1].Re()):n=Ybn(this,Umn(this,!0)),n>0?n+this.n.d+this.n.a:0},MWn.Se=function(){var n,t,i,r,c;if(c=0,this.e)this.b?c=this.b.a:this.a[1][1]&&(c=this.a[1][1].Se());else if(this.g)c=Ybn(this,Okn(this,null,!0));else for(Dtn(),i=0,r=(t=Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length;i<r;++i)n=t[i],c=e.Math.max(c,Ybn(this,Okn(this,n,!0)));return c>0?c+this.n.b+this.n.c:0},MWn.Te=function(){var n,t,e,i,r;if(this.g)for(n=Okn(this,null,!1),Dtn(),i=0,r=(e=Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length;i<r;++i)Vxn(this,t=e[i],n);else for(Dtn(),i=0,r=(e=Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length;i<r;++i)Vxn(this,t=e[i],n=Okn(this,t,!1))},MWn.Ue=function(){var n,t,i,r;t=this.i,n=this.n,r=Umn(this,!1),Q5(this,(Dtn(),Git),t.d+n.d,r),Q5(this,Uit,t.d+t.a-n.a-r[2],r),i=t.a-n.d-n.a,r[0]>0&&(r[0]+=this.d,i-=r[0]),r[2]>0&&(r[2]+=this.d,i-=r[2]),this.c.a=e.Math.max(0,i),this.c.d=t.d+n.d+(this.c.a-i)/2,r[1]=e.Math.max(r[1],i),Q5(this,zit,t.d+n.d+r[0]-(r[1]-i)/2,r)},MWn.b=null,MWn.d=0,MWn.e=!1,MWn.f=!1,MWn.g=!1;var Qit,Yit,Jit,Zit=0,nrt=0;vX(tJn,"GridContainerCell",1473),wAn(461,22,{3:1,35:1,22:1,461:1},GS);var trt,ert=Ben(tJn,"HorizontalLabelAlignment",461,Unt,m1,g_);wAn(306,212,{212:1,306:1},yJ,wtn,KY),MWn.Re=function(){return WH(this)},MWn.Se=function(){return VH(this)},MWn.a=0,MWn.c=!1;var irt,rrt,crt,art=vX(tJn,"LabelCell",306);wAn(244,326,{212:1,326:1,244:1},Ign),MWn.Re=function(){return MIn(this)},MWn.Se=function(){return SIn(this)},MWn.Te=function(){_Fn(this)},MWn.Ue=function(){GFn(this)},MWn.b=0,MWn.c=0,MWn.d=!1,vX(tJn,"StripContainerCell",244),wAn(1626,1,DVn,En),MWn.Mb=function(n){return Qy(BB(n,212))},vX(tJn,"StripContainerCell/lambda$0$Type",1626),wAn(1627,1,{},Tn),MWn.Fe=function(n){return BB(n,212).Se()},vX(tJn,"StripContainerCell/lambda$1$Type",1627),wAn(1628,1,DVn,Mn),MWn.Mb=function(n){return Yy(BB(n,212))},vX(tJn,"StripContainerCell/lambda$2$Type",1628),wAn(1629,1,{},Sn),MWn.Fe=function(n){return BB(n,212).Re()},vX(tJn,"StripContainerCell/lambda$3$Type",1629),wAn(462,22,{3:1,35:1,22:1,462:1},zS);var urt,ort,srt,hrt,frt,lrt,brt,wrt,drt,grt,prt,vrt,mrt,yrt,krt,jrt,Ert,Trt,Mrt,Srt,Prt,Crt,Irt,Ort=Ben(tJn,"VerticalLabelAlignment",462,Unt,y1,p_);wAn(789,1,{},eUn),MWn.c=0,MWn.d=0,MWn.k=0,MWn.s=0,MWn.t=0,MWn.v=!1,MWn.w=0,MWn.D=!1,vX(sJn,"NodeContext",789),wAn(1471,1,MYn,Pn),MWn.ue=function(n,t){return YO(BB(n,61),BB(t,61))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(sJn,"NodeContext/0methodref$comparePortSides$Type",1471),wAn(1472,1,MYn,Cn),MWn.ue=function(n,t){return UTn(BB(n,111),BB(t,111))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(sJn,"NodeContext/1methodref$comparePortContexts$Type",1472),wAn(159,22,{3:1,35:1,22:1,159:1},ocn);var Art,$rt,Lrt,Nrt,xrt,Drt,Rrt,Krt=Ben(sJn,"NodeLabelLocation",159,Unt,tpn,v_);wAn(111,1,{111:1},MOn),MWn.a=!1,vX(sJn,"PortContext",111),wAn(1476,1,lVn,In),MWn.td=function(n){CE(BB(n,306))},vX(lJn,bJn,1476),wAn(1477,1,DVn,On),MWn.Mb=function(n){return!!BB(n,111).c},vX(lJn,wJn,1477),wAn(1478,1,lVn,An),MWn.td=function(n){CE(BB(n,111).c)},vX(lJn,"LabelPlacer/lambda$2$Type",1478),wAn(1475,1,lVn,Ln),MWn.td=function(n){qD(),Yp(BB(n,111))},vX(lJn,"NodeLabelAndSizeUtilities/lambda$0$Type",1475),wAn(790,1,lVn,$_),MWn.td=function(n){RM(this.b,this.c,this.a,BB(n,181))},MWn.a=!1,MWn.c=!1,vX(lJn,"NodeLabelCellCreator/lambda$0$Type",790),wAn(1474,1,lVn,Cw),MWn.td=function(n){Iv(this.a,BB(n,181))},vX(lJn,"PortContextCreator/lambda$0$Type",1474),wAn(1829,1,{},Nn),vX(gJn,"GreedyRectangleStripOverlapRemover",1829),wAn(1830,1,MYn,$n),MWn.ue=function(n,t){return FN(BB(n,222),BB(t,222))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(gJn,"GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type",1830),wAn(1786,1,{},Zv),MWn.a=5,MWn.e=0,vX(gJn,"RectangleStripOverlapRemover",1786),wAn(1787,1,MYn,Dn),MWn.ue=function(n,t){return BN(BB(n,222),BB(t,222))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(gJn,"RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type",1787),wAn(1789,1,MYn,Rn),MWn.ue=function(n,t){return JU(BB(n,222),BB(t,222))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(gJn,"RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type",1789),wAn(406,22,{3:1,35:1,22:1,406:1},US);var _rt,Frt,Brt,Hrt,qrt,Grt=Ben(gJn,"RectangleStripOverlapRemover/OverlapRemovalDirection",406,Unt,Y2,m_);wAn(222,1,{222:1},xG),vX(gJn,"RectangleStripOverlapRemover/RectangleNode",222),wAn(1788,1,lVn,Iw),MWn.td=function(n){Cmn(this.a,BB(n,222))},vX(gJn,"RectangleStripOverlapRemover/lambda$1$Type",1788),wAn(1304,1,MYn,Kn),MWn.ue=function(n,t){return zHn(BB(n,167),BB(t,167))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(vJn,"PolyominoCompactor/CornerCasesGreaterThanRestComparator",1304),wAn(1307,1,{},_n),MWn.Kb=function(n){return BB(n,324).a},vX(vJn,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type",1307),wAn(1308,1,DVn,Fn),MWn.Mb=function(n){return BB(n,323).a},vX(vJn,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type",1308),wAn(1309,1,DVn,Bn),MWn.Mb=function(n){return BB(n,323).a},vX(vJn,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type",1309),wAn(1302,1,MYn,Hn),MWn.ue=function(n,t){return WRn(BB(n,167),BB(t,167))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(vJn,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator",1302),wAn(1305,1,{},xn),MWn.Kb=function(n){return BB(n,324).a},vX(vJn,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type",1305),wAn(767,1,MYn,qn),MWn.ue=function(n,t){return Uan(BB(n,167),BB(t,167))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(vJn,"PolyominoCompactor/MinNumOfExtensionsComparator",767),wAn(1300,1,MYn,Gn),MWn.ue=function(n,t){return Qin(BB(n,321),BB(t,321))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(vJn,"PolyominoCompactor/MinPerimeterComparator",1300),wAn(1301,1,MYn,zn),MWn.ue=function(n,t){return avn(BB(n,321),BB(t,321))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(vJn,"PolyominoCompactor/MinPerimeterComparatorWithShape",1301),wAn(1303,1,MYn,Un),MWn.ue=function(n,t){return BKn(BB(n,167),BB(t,167))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(vJn,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator",1303),wAn(1306,1,{},Xn),MWn.Kb=function(n){return BB(n,324).a},vX(vJn,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type",1306),wAn(777,1,{},DS),MWn.Ce=function(n,t){return O2(this,BB(n,46),BB(t,167))},vX(vJn,"SuccessorCombination",777),wAn(644,1,{},Wn),MWn.Ce=function(n,t){var e;return XIn((e=BB(n,46),BB(t,167),e))},vX(vJn,"SuccessorJitter",644),wAn(643,1,{},Vn),MWn.Ce=function(n,t){var e;return bxn((e=BB(n,46),BB(t,167),e))},vX(vJn,"SuccessorLineByLine",643),wAn(568,1,{},Qn),MWn.Ce=function(n,t){var e;return f$n((e=BB(n,46),BB(t,167),e))},vX(vJn,"SuccessorManhattan",568),wAn(1356,1,{},Yn),MWn.Ce=function(n,t){var e;return jNn((e=BB(n,46),BB(t,167),e))},vX(vJn,"SuccessorMaxNormWindingInMathPosSense",1356),wAn(400,1,{},Ow),MWn.Ce=function(n,t){return BU(this,n,t)},MWn.c=!1,MWn.d=!1,MWn.e=!1,MWn.f=!1,vX(vJn,"SuccessorQuadrantsGeneric",400),wAn(1357,1,{},Jn),MWn.Kb=function(n){return BB(n,324).a},vX(vJn,"SuccessorQuadrantsGeneric/lambda$0$Type",1357),wAn(323,22,{3:1,35:1,22:1,323:1},_S),MWn.a=!1;var zrt,Urt=Ben(EJn,TJn,323,Unt,n3,y_);wAn(1298,1,{}),MWn.Ib=function(){var n,t,e,i,r,c;for(e=" ",n=iln(0),r=0;r<this.o;r++)e+=""+n.a,n=iln(lR(n.a));for(e+="\n",n=iln(0),c=0;c<this.p;c++){for(e+=""+n.a,n=iln(lR(n.a)),i=0;i<this.o;i++)0==Vhn(t=trn(this,i,c),0)?e+="_":0==Vhn(t,1)?e+="X":e+="0";e+="\n"}return fx(e,0,e.length-1)},MWn.o=0,MWn.p=0,vX(EJn,"TwoBitGrid",1298),wAn(321,1298,{321:1},qwn),MWn.j=0,MWn.k=0,vX(EJn,"PlanarGrid",321),wAn(167,321,{321:1,167:1}),MWn.g=0,MWn.i=0,vX(EJn,"Polyomino",167);var Xrt=bq(IJn,OJn);wAn(134,1,AJn,Zn),MWn.Ye=function(n,t){return son(this,n,t)},MWn.Ve=function(){return Gq(this)},MWn.We=function(n){return mMn(this,n)},MWn.Xe=function(n){return Lx(this,n)},vX(IJn,"MapPropertyHolder",134),wAn(1299,134,AJn,yxn),vX(EJn,"Polyominoes",1299);var Wrt,Vrt,Qrt,Yrt,Jrt,Zrt,nct,tct,ect=!1;wAn(1766,1,lVn,nt),MWn.td=function(n){uqn(BB(n,221))},vX($Jn,"DepthFirstCompaction/0methodref$compactTree$Type",1766),wAn(810,1,lVn,Aw),MWn.td=function(n){KW(this.a,BB(n,221))},vX($Jn,"DepthFirstCompaction/lambda$1$Type",810),wAn(1767,1,lVn,N_),MWn.td=function(n){dgn(this.a,this.b,this.c,BB(n,221))},vX($Jn,"DepthFirstCompaction/lambda$2$Type",1767),wAn(65,1,{65:1},AZ),vX($Jn,"Node",65),wAn(1250,1,{},I$),vX($Jn,"ScanlineOverlapCheck",1250),wAn(1251,1,{679:1},hY),MWn.Ke=function(n){GD(this,BB(n,440))},vX($Jn,"ScanlineOverlapCheck/OverlapsScanlineHandler",1251),wAn(1252,1,MYn,tt),MWn.ue=function(n,t){return xln(BB(n,65),BB(t,65))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX($Jn,"ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type",1252),wAn(440,1,{440:1},RS),MWn.a=!1,vX($Jn,"ScanlineOverlapCheck/Timestamp",440),wAn(1253,1,MYn,et),MWn.ue=function(n,t){return Zkn(BB(n,440),BB(t,440))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX($Jn,"ScanlineOverlapCheck/lambda$0$Type",1253),wAn(550,1,{},it),vX(LJn,"SVGImage",550),wAn(324,1,{324:1},x_),MWn.Ib=function(){return"("+this.a+FWn+this.b+FWn+this.c+")"},vX(LJn,"UniqueTriple",324),wAn(209,1,NJn),vX(xJn,"AbstractLayoutProvider",209),wAn(1132,209,NJn,rt),MWn.Ze=function(n,t){var e,i,r;OTn(t,DJn,1),this.a=Gy(MD(ZAn(n,(Epn(),Ect)))),P8(n,bct)&&(i=SD(ZAn(n,bct)),(e=XRn(cin(),i))&&BB(sJ(e.f),209).Ze(n,mcn(t,1))),r=new s4(this.a),this.b=Rzn(r,n),0===BB(ZAn(n,(Gsn(),oct)),481).g?(BOn(new ct,this.b),Ypn(n,gct,mMn(this.b,gct))):$T(),Uzn(r),Ypn(n,dct,this.b),HSn(t)},MWn.a=0,vX(RJn,"DisCoLayoutProvider",1132),wAn(1244,1,{},ct),MWn.c=!1,MWn.e=0,MWn.f=0,vX(RJn,"DisCoPolyominoCompactor",1244),wAn(561,1,{561:1},hG),MWn.b=!0,vX(KJn,"DCComponent",561),wAn(394,22,{3:1,35:1,22:1,394:1},KS),MWn.a=!1;var ict,rct,cct=Ben(KJn,"DCDirection",394,Unt,Z2,k_);wAn(266,134,{3:1,266:1,94:1,134:1},EAn),vX(KJn,"DCElement",266),wAn(395,1,{395:1},Imn),MWn.c=0,vX(KJn,"DCExtension",395),wAn(755,134,AJn,_j),vX(KJn,"DCGraph",755),wAn(481,22,{3:1,35:1,22:1,481:1},Ix);var act,uct,oct,sct,hct,fct,lct,bct,wct,dct,gct,pct,vct,mct,yct,kct,jct,Ect,Tct,Mct,Sct,Pct=Ben(_Jn,FJn,481,Unt,RV,j_);wAn(854,1,QYn,Hh),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,BJn),zJn),"Connected Components Compaction Strategy"),"Strategy for packing different connected components in order to save space and enhance readability of a graph."),sct),(PPn(),gMt)),Pct),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,HJn),zJn),"Connected Components Layout Algorithm"),"A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."),yMt),Qtt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,qJn),"debug"),"DCGraph"),"Access to the DCGraph is intended for the debug view,"),mMt),Ant),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,GJn),"debug"),"List of Polyominoes"),"Access to the polyominoes is intended for the debug view,"),mMt),Ant),nbn(hMt)))),BBn((new qh,n))},vX(_Jn,"DisCoMetaDataProvider",854),wAn(998,1,QYn,qh),MWn.Qe=function(n){BBn(n)},vX(_Jn,"DisCoOptions",998),wAn(999,1,{},at),MWn.$e=function(){return new rt},MWn._e=function(n){},vX(_Jn,"DisCoOptions/DiscoFactory",999),wAn(562,167,{321:1,167:1,562:1},Q$n),MWn.a=0,MWn.b=0,MWn.c=0,MWn.d=0,vX("org.eclipse.elk.alg.disco.structures","DCPolyomino",562),wAn(1268,1,DVn,ut),MWn.Mb=function(n){return TO(n)},vX(YJn,"ElkGraphComponentsProcessor/lambda$0$Type",1268),wAn(1269,1,{},ot),MWn.Kb=function(n){return MQ(),PMn(BB(n,79))},vX(YJn,"ElkGraphComponentsProcessor/lambda$1$Type",1269),wAn(1270,1,DVn,st),MWn.Mb=function(n){return qH(BB(n,79))},vX(YJn,"ElkGraphComponentsProcessor/lambda$2$Type",1270),wAn(1271,1,{},ht),MWn.Kb=function(n){return MQ(),OMn(BB(n,79))},vX(YJn,"ElkGraphComponentsProcessor/lambda$3$Type",1271),wAn(1272,1,DVn,ft),MWn.Mb=function(n){return GH(BB(n,79))},vX(YJn,"ElkGraphComponentsProcessor/lambda$4$Type",1272),wAn(1273,1,DVn,$w),MWn.Mb=function(n){return MJ(this.a,BB(n,79))},vX(YJn,"ElkGraphComponentsProcessor/lambda$5$Type",1273),wAn(1274,1,{},Lw),MWn.Kb=function(n){return KX(this.a,BB(n,79))},vX(YJn,"ElkGraphComponentsProcessor/lambda$6$Type",1274),wAn(1241,1,{},s4),MWn.a=0,vX(YJn,"ElkGraphTransformer",1241),wAn(1242,1,{},lt),MWn.Od=function(n,t){tOn(this,BB(n,160),BB(t,266))},vX(YJn,"ElkGraphTransformer/OffsetApplier",1242),wAn(1243,1,lVn,Nw),MWn.td=function(n){TL(this,BB(n,8))},vX(YJn,"ElkGraphTransformer/OffsetApplier/OffSetToChainApplier",1243),wAn(753,1,{},bt),vX(eZn,iZn,753),wAn(1232,1,MYn,wt),MWn.ue=function(n,t){return CIn(BB(n,231),BB(t,231))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(eZn,rZn,1232),wAn(740,209,NJn,Gv),MWn.Ze=function(n,t){vLn(this,n,t)},vX(eZn,"ForceLayoutProvider",740),wAn(357,134,{3:1,357:1,94:1,134:1}),vX(cZn,"FParticle",357),wAn(559,357,{3:1,559:1,357:1,94:1,134:1},hX),MWn.Ib=function(){var n;return this.a?(n=E7(this.a.a,this,0))>=0?"b"+n+"["+u5(this.a)+"]":"b["+u5(this.a)+"]":"b_"+PN(this)},vX(cZn,"FBendpoint",559),wAn(282,134,{3:1,282:1,94:1,134:1},IR),MWn.Ib=function(){return u5(this)},vX(cZn,"FEdge",282),wAn(231,134,{3:1,231:1,94:1,134:1},y6);var Cct,Ict,Oct,Act,$ct,Lct,Nct,xct,Dct,Rct,Kct=vX(cZn,"FGraph",231);wAn(447,357,{3:1,447:1,357:1,94:1,134:1},m4),MWn.Ib=function(){return null==this.b||0==this.b.length?"l["+u5(this.a)+"]":"l_"+this.b},vX(cZn,"FLabel",447),wAn(144,357,{3:1,144:1,357:1,94:1,134:1},qX),MWn.Ib=function(){return p0(this)},MWn.b=0,vX(cZn,"FNode",144),wAn(2003,1,{}),MWn.bf=function(n){sFn(this,n)},MWn.cf=function(){qmn(this)},MWn.d=0,vX(uZn,"AbstractForceModel",2003),wAn(631,2003,{631:1},Lan),MWn.af=function(n,t){var i,r,c,a;return tIn(this.f,n,t),c=XR(B$(t.d),n.d),a=e.Math.sqrt(c.a*c.a+c.b*c.b),r=e.Math.max(0,a-lW(n.e)/2-lW(t.e)/2),kL(c,((i=qon(this.e,n,t))>0?-_U(r,this.c)*i:xx(r,this.b)*BB(mMn(n,(fRn(),Zct)),19).a)/a),c},MWn.bf=function(n){sFn(this,n),this.a=BB(mMn(n,(fRn(),qct)),19).a,this.c=Gy(MD(mMn(n,cat))),this.b=Gy(MD(mMn(n,tat)))},MWn.df=function(n){return n<this.a},MWn.a=0,MWn.b=0,MWn.c=0,vX(uZn,"EadesModel",631),wAn(632,2003,{632:1},fH),MWn.af=function(n,t){var i,r,c,a,u;return tIn(this.f,n,t),c=XR(B$(t.d),n.d),u=e.Math.sqrt(c.a*c.a+c.b*c.b),a=Nx(r=e.Math.max(0,u-lW(n.e)/2-lW(t.e)/2),this.a)*BB(mMn(n,(fRn(),Zct)),19).a,(i=qon(this.e,n,t))>0&&(a-=Sy(r,this.a)*i),kL(c,a*this.b/u),c},MWn.bf=function(n){var t,i,r,c,a,u,o;for(sFn(this,n),this.b=Gy(MD(mMn(n,(fRn(),aat)))),this.c=this.b/BB(mMn(n,qct),19).a,r=n.e.c.length,a=0,c=0,o=new Wb(n.e);o.a<o.c.c.length;)a+=(u=BB(n0(o),144)).e.a,c+=u.e.b;t=a*c,i=Gy(MD(mMn(n,cat)))*fJn,this.a=e.Math.sqrt(t/(2*r))*i},MWn.cf=function(){qmn(this),this.b-=this.c},MWn.df=function(n){return this.b>0},MWn.a=0,MWn.b=0,MWn.c=0,vX(uZn,"FruchtermanReingoldModel",632),wAn(849,1,QYn,zh),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,oZn),""),"Force Model"),"Determines the model for force calculation."),Oct),(PPn(),gMt)),$at),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,sZn),""),"Iterations"),"The number of iterations on the force model."),iln(300)),vMt),Att),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,hZn),""),"Repulsive Power"),"Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"),iln(0)),vMt),Att),nbn(uMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,fZn),""),"FR Temperature"),"The temperature is used as a scaling factor for particle displacements."),lZn),dMt),Ptt),nbn(hMt)))),a2(n,fZn,oZn,xct),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,bZn),""),"Eades Repulsion"),"Factor for repulsive forces in Eades' model."),5),dMt),Ptt),nbn(hMt)))),a2(n,bZn,oZn,$ct),pUn((new Uh,n))},vX(wZn,"ForceMetaDataProvider",849),wAn(424,22,{3:1,35:1,22:1,424:1},XS);var _ct,Fct,Bct,Hct,qct,Gct,zct,Uct,Xct,Wct,Vct,Qct,Yct,Jct,Zct,nat,tat,eat,iat,rat,cat,aat,uat,oat,sat,hat,fat,lat,bat,wat,dat,gat,pat,vat,mat,yat,kat,jat,Eat,Tat,Mat,Sat,Pat,Cat,Iat,Oat,Aat,$at=Ben(wZn,"ForceModelStrategy",424,Unt,aJ,E_);wAn(988,1,QYn,Uh),MWn.Qe=function(n){pUn(n)},vX(wZn,"ForceOptions",988),wAn(989,1,{},dt),MWn.$e=function(){return new Gv},MWn._e=function(n){},vX(wZn,"ForceOptions/ForceFactory",989),wAn(850,1,QYn,Xh),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,NZn),""),"Fixed Position"),"Prevent that the node is moved by the layout algorithm."),(hN(),!1)),(PPn(),wMt)),ktt),nbn((rpn(),sMt))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,xZn),""),"Desired Edge Length"),"Either specified for parent nodes or for individual edges, where the latter takes higher precedence."),100),dMt),Ptt),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[uMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,DZn),""),"Layout Dimension"),"Dimensions that are permitted to be altered during layout."),bat),gMt),Hat),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,RZn),""),"Stress Epsilon"),"Termination criterion for the iterative process."),lZn),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,KZn),""),"Iteration Limit"),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),iln(DWn)),vMt),Att),nbn(hMt)))),UGn((new Wh,n))},vX(wZn,"StressMetaDataProvider",850),wAn(992,1,QYn,Wh),MWn.Qe=function(n){UGn(n)},vX(wZn,"StressOptions",992),wAn(993,1,{},gt),MWn.$e=function(){return new OR},MWn._e=function(n){},vX(wZn,"StressOptions/StressFactory",993),wAn(1128,209,NJn,OR),MWn.Ze=function(n,t){var e,i,r,c;for(OTn(t,FZn,1),qy(TD(ZAn(n,(rkn(),kat))))?qy(TD(ZAn(n,Pat)))||jJ(new Tw((GM(),new Dy(n)))):vLn(new Gv,n,mcn(t,1)),i=fon(n),c=(e=HFn(this.a,i)).Kc();c.Ob();)(r=BB(c.Pb(),231)).e.c.length<=1||(HHn(this.b,r),i$n(this.b),Otn(r.d,new pt));SUn(i=GUn(e)),HSn(t)},vX(HZn,"StressLayoutProvider",1128),wAn(1129,1,lVn,pt),MWn.td=function(n){_Bn(BB(n,447))},vX(HZn,"StressLayoutProvider/lambda$0$Type",1129),wAn(990,1,{},Tv),MWn.c=0,MWn.e=0,MWn.g=0,vX(HZn,"StressMajorization",990),wAn(379,22,{3:1,35:1,22:1,379:1},WS);var Lat,Nat,xat,Dat,Rat,Kat,_at,Fat,Bat,Hat=Ben(HZn,"StressMajorization/Dimension",379,Unt,j1,T_);wAn(991,1,MYn,xw),MWn.ue=function(n,t){return SK(this.a,BB(n,144),BB(t,144))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(HZn,"StressMajorization/lambda$0$Type",991),wAn(1229,1,{},D0),vX(GZn,"ElkLayered",1229),wAn(1230,1,lVn,vt),MWn.td=function(n){RIn(BB(n,37))},vX(GZn,"ElkLayered/lambda$0$Type",1230),wAn(1231,1,lVn,Dw),MWn.td=function(n){PK(this.a,BB(n,37))},vX(GZn,"ElkLayered/lambda$1$Type",1231),wAn(1263,1,{},$$),vX(GZn,"GraphConfigurator",1263),wAn(759,1,lVn,Rw),MWn.td=function(n){VMn(this.a,BB(n,10))},vX(GZn,"GraphConfigurator/lambda$0$Type",759),wAn(760,1,{},mt),MWn.Kb=function(n){return tjn(),new Rq(null,new w1(BB(n,29).a,16))},vX(GZn,"GraphConfigurator/lambda$1$Type",760),wAn(761,1,lVn,Kw),MWn.td=function(n){VMn(this.a,BB(n,10))},vX(GZn,"GraphConfigurator/lambda$2$Type",761),wAn(1127,209,NJn,Uv),MWn.Ze=function(n,t){var e;e=SBn(new tm,n),GI(ZAn(n,(HXn(),sgt)))===GI((ufn(),pCt))?rwn(this.a,e,t):wOn(this.a,e,t),gUn(new Qh,e)},vX(GZn,"LayeredLayoutProvider",1127),wAn(356,22,{3:1,35:1,22:1,356:1},VS);var qat,Gat,zat,Uat=Ben(GZn,"LayeredPhases",356,Unt,s5,M_);wAn(1651,1,{},vin),MWn.i=0,vX(zZn,"ComponentsToCGraphTransformer",1651),wAn(1652,1,{},yt),MWn.ef=function(n,t){return e.Math.min(null!=n.a?Gy(n.a):n.c.i,null!=t.a?Gy(t.a):t.c.i)},MWn.ff=function(n,t){return e.Math.min(null!=n.a?Gy(n.a):n.c.i,null!=t.a?Gy(t.a):t.c.i)},vX(zZn,"ComponentsToCGraphTransformer/1",1652),wAn(81,1,{81:1}),MWn.i=0,MWn.k=!0,MWn.o=KQn;var Xat,Wat,Vat,Qat=vX(UZn,"CNode",81);wAn(460,81,{460:1,81:1},NN,Sgn),MWn.Ib=function(){return""},vX(zZn,"ComponentsToCGraphTransformer/CRectNode",460),wAn(1623,1,{},kt),vX(zZn,"OneDimensionalComponentsCompaction",1623),wAn(1624,1,{},jt),MWn.Kb=function(n){return xZ(BB(n,46))},MWn.Fb=function(n){return this===n},vX(zZn,"OneDimensionalComponentsCompaction/lambda$0$Type",1624),wAn(1625,1,{},Et),MWn.Kb=function(n){return Ewn(BB(n,46))},MWn.Fb=function(n){return this===n},vX(zZn,"OneDimensionalComponentsCompaction/lambda$1$Type",1625),wAn(1654,1,{},BX),vX(UZn,"CGraph",1654),wAn(189,1,{189:1},Pgn),MWn.b=0,MWn.c=0,MWn.e=0,MWn.g=!0,MWn.i=KQn,vX(UZn,"CGroup",189),wAn(1653,1,{},Pt),MWn.ef=function(n,t){return e.Math.max(null!=n.a?Gy(n.a):n.c.i,null!=t.a?Gy(t.a):t.c.i)},MWn.ff=function(n,t){return e.Math.max(null!=n.a?Gy(n.a):n.c.i,null!=t.a?Gy(t.a):t.c.i)},vX(UZn,OYn,1653),wAn(1655,1,{},sOn),MWn.d=!1;var Yat=vX(UZn,xYn,1655);wAn(1656,1,{},Ct),MWn.Kb=function(n){return kM(),hN(),0!=BB(BB(n,46).a,81).d.e},MWn.Fb=function(n){return this===n},vX(UZn,DYn,1656),wAn(823,1,{},Sq),MWn.a=!1,MWn.b=!1,MWn.c=!1,MWn.d=!1,vX(UZn,RYn,823),wAn(1825,1,{},DG),vX(XZn,KYn,1825);var Jat=bq(WZn,PYn);wAn(1826,1,{369:1},lY),MWn.Ke=function(n){Gxn(this,BB(n,466))},vX(XZn,_Yn,1826),wAn(1827,1,MYn,It),MWn.ue=function(n,t){return oQ(BB(n,81),BB(t,81))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(XZn,FYn,1827),wAn(466,1,{466:1},fP),MWn.a=!1,vX(XZn,BYn,466),wAn(1828,1,MYn,Ot),MWn.ue=function(n,t){return njn(BB(n,466),BB(t,466))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(XZn,HYn,1828),wAn(140,1,{140:1},dP,mH),MWn.Fb=function(n){var t;return null!=n&&iut==tsn(n)&&(t=BB(n,140),cV(this.c,t.c)&&cV(this.d,t.d))},MWn.Hb=function(){return fhn(Pun(Gk(Ant,1),HWn,1,5,[this.c,this.d]))},MWn.Ib=function(){return"("+this.c+FWn+this.d+(this.a?"cx":"")+this.b+")"},MWn.a=!0,MWn.c=0,MWn.d=0;var Zat,nut,tut,eut,iut=vX(WZn,"Point",140);wAn(405,22,{3:1,35:1,22:1,405:1},QS);var rut,cut,aut,uut,out,sut,hut,fut,lut,but,wut,dut=Ben(WZn,"Point/Quadrant",405,Unt,t3,S_);wAn(1642,1,{},Vv),MWn.b=null,MWn.c=null,MWn.d=null,MWn.e=null,MWn.f=null,vX(WZn,"RectilinearConvexHull",1642),wAn(574,1,{369:1},Tpn),MWn.Ke=function(n){_9(this,BB(n,140))},MWn.b=0,vX(WZn,"RectilinearConvexHull/MaximalElementsEventHandler",574),wAn(1644,1,MYn,Mt),MWn.ue=function(n,t){return DV(MD(n),MD(t))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(WZn,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",1644),wAn(1643,1,{369:1},ftn),MWn.Ke=function(n){PNn(this,BB(n,140))},MWn.a=0,MWn.b=null,MWn.c=null,MWn.d=null,MWn.e=null,vX(WZn,"RectilinearConvexHull/RectangleEventHandler",1643),wAn(1645,1,MYn,St),MWn.ue=function(n,t){return u0(BB(n,140),BB(t,140))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(WZn,"RectilinearConvexHull/lambda$0$Type",1645),wAn(1646,1,MYn,Tt),MWn.ue=function(n,t){return o0(BB(n,140),BB(t,140))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(WZn,"RectilinearConvexHull/lambda$1$Type",1646),wAn(1647,1,MYn,At),MWn.ue=function(n,t){return h0(BB(n,140),BB(t,140))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(WZn,"RectilinearConvexHull/lambda$2$Type",1647),wAn(1648,1,MYn,$t),MWn.ue=function(n,t){return s0(BB(n,140),BB(t,140))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(WZn,"RectilinearConvexHull/lambda$3$Type",1648),wAn(1649,1,MYn,Lt),MWn.ue=function(n,t){return jMn(BB(n,140),BB(t,140))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(WZn,"RectilinearConvexHull/lambda$4$Type",1649),wAn(1650,1,{},OZ),vX(WZn,"Scanline",1650),wAn(2005,1,{}),vX(VZn,"AbstractGraphPlacer",2005),wAn(325,1,{325:1},Xx),MWn.mf=function(n){return!!this.nf(n)&&(JIn(this.b,BB(mMn(n,(hWn(),Xft)),21),n),!0)},MWn.nf=function(n){var t,e,i;for(t=BB(mMn(n,(hWn(),Xft)),21),i=BB(h6(fut,t),21).Kc();i.Ob();)if(e=BB(i.Pb(),21),!BB(h6(this.b,e),15).dc())return!1;return!0},vX(VZn,"ComponentGroup",325),wAn(765,2005,{},Qv),MWn.of=function(n){var t;for(t=new Wb(this.a);t.a<t.c.c.length;)if(BB(n0(t),325).mf(n))return;WB(this.a,new Xx(n))},MWn.lf=function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w;if(this.a.c=x8(Ant,HWn,1,0,5,1),t.a.c=x8(Ant,HWn,1,0,5,1),n.dc())return t.f.a=0,void(t.f.b=0);for(qan(t,a=BB(n.Xb(0),37)),r=n.Kc();r.Ob();)i=BB(r.Pb(),37),this.of(i);for(w=new Gj,c=Gy(MD(mMn(a,(HXn(),mpt)))),s=new Wb(this.a);s.a<s.c.c.length;)h=TXn(u=BB(n0(s),325),c),w9(TX(u.b),w.a,w.b),w.a+=h.a,w.b+=h.b;if(t.f.a=w.a-c,t.f.b=w.b-c,qy(TD(mMn(a,Mdt)))&&GI(mMn(a,Zdt))===GI((Mbn(),QPt))){for(b=n.Kc();b.Ob();)ZRn(f=BB(b.Pb(),37),f.c.a,f.c.b);for(KXn(e=new Nt,n,c),l=n.Kc();l.Ob();)UR(kO((f=BB(l.Pb(),37)).c),e.e);UR(kO(t.f),e.a)}for(o=new Wb(this.a);o.a<o.c.c.length;)d9(t,TX((u=BB(n0(o),325)).b))},vX(VZn,"ComponentGroupGraphPlacer",765),wAn(1293,765,{},hm),MWn.of=function(n){pfn(this,n)},MWn.lf=function(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;if(this.a.c=x8(Ant,HWn,1,0,5,1),t.a.c=x8(Ant,HWn,1,0,5,1),n.dc())return t.f.a=0,void(t.f.b=0);for(qan(t,a=BB(n.Xb(0),37)),r=n.Kc();r.Ob();)pfn(this,BB(r.Pb(),37));for(v=new Gj,p=new Gj,d=new Gj,w=new Gj,c=Gy(MD(mMn(a,(HXn(),mpt)))),s=new Wb(this.a);s.a<s.c.c.length;){if(u=BB(n0(s),325),dA(BB(mMn(t,(sWn(),bSt)),103))){for(d.a=v.a,g=new ly(MX(kX(u.b).a).a.kc());g.b.Ob();)if(BB(cS(g.b.Pb()),21).Hc((kUn(),sIt))){d.a=p.a;break}}else if(gA(BB(mMn(t,bSt),103)))for(d.b=v.b,g=new ly(MX(kX(u.b).a).a.kc());g.b.Ob();)if(BB(cS(g.b.Pb()),21).Hc((kUn(),CIt))){d.b=p.b;break}if(h=TXn(BB(u,570),c),w9(TX(u.b),d.a,d.b),dA(BB(mMn(t,bSt),103))){for(p.a=d.a+h.a,w.a=e.Math.max(w.a,p.a),g=new ly(MX(kX(u.b).a).a.kc());g.b.Ob();)if(BB(cS(g.b.Pb()),21).Hc((kUn(),SIt))){v.a=d.a+h.a;break}p.b=d.b+h.b,d.b=p.b,w.b=e.Math.max(w.b,d.b)}else if(gA(BB(mMn(t,bSt),103))){for(p.b=d.b+h.b,w.b=e.Math.max(w.b,p.b),g=new ly(MX(kX(u.b).a).a.kc());g.b.Ob();)if(BB(cS(g.b.Pb()),21).Hc((kUn(),oIt))){v.b=d.b+h.b;break}p.a=d.a+h.a,d.a=p.a,w.a=e.Math.max(w.a,d.a)}}if(t.f.a=w.a-c,t.f.b=w.b-c,qy(TD(mMn(a,Mdt)))&&GI(mMn(a,Zdt))===GI((Mbn(),QPt))){for(b=n.Kc();b.Ob();)ZRn(f=BB(b.Pb(),37),f.c.a,f.c.b);for(KXn(i=new Nt,n,c),l=n.Kc();l.Ob();)UR(kO((f=BB(l.Pb(),37)).c),i.e);UR(kO(t.f),i.a)}for(o=new Wb(this.a);o.a<o.c.c.length;)d9(t,TX((u=BB(n0(o),325)).b))},vX(VZn,"ComponentGroupModelOrderGraphPlacer",1293),wAn(423,22,{3:1,35:1,22:1,423:1},YS);var gut,put,vut,mut=Ben(VZn,"ComponentOrderingStrategy",423,Unt,k1,P_);wAn(650,1,{},Nt),vX(VZn,"ComponentsCompactor",650),wAn(1468,12,QQn,v5),MWn.Fc=function(n){return Yjn(this,BB(n,140))},vX(VZn,"ComponentsCompactor/Hullpoints",1468),wAn(1465,1,{841:1},hvn),MWn.a=!1,vX(VZn,"ComponentsCompactor/InternalComponent",1465),wAn(1464,1,pVn,Yv),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new Wb(this.a)},vX(VZn,"ComponentsCompactor/InternalConnectedComponents",1464),wAn(1467,1,{594:1},dOn),MWn.hf=function(){return null},MWn.jf=function(){return this.a},MWn.gf=function(){return upn(this.d)},MWn.kf=function(){return this.b},vX(VZn,"ComponentsCompactor/InternalExternalExtension",1467),wAn(1466,1,{594:1},nm),MWn.jf=function(){return this.a},MWn.gf=function(){return upn(this.d)},MWn.hf=function(){return this.c},MWn.kf=function(){return this.b},vX(VZn,"ComponentsCompactor/InternalUnionExternalExtension",1466),wAn(1470,1,{},Qxn),vX(VZn,"ComponentsCompactor/OuterSegments",1470),wAn(1469,1,{},Jv),vX(VZn,"ComponentsCompactor/Segments",1469),wAn(1264,1,{},bY),vX(VZn,iZn,1264),wAn(1265,1,MYn,xt),MWn.ue=function(n,t){return b0(BB(n,37),BB(t,37))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(VZn,"ComponentsProcessor/lambda$0$Type",1265),wAn(570,325,{325:1,570:1},p5),MWn.mf=function(n){return dsn(this,n)},MWn.nf=function(n){return bNn(this,n)},vX(VZn,"ModelOrderComponentGroup",570),wAn(1291,2005,{},Dt),MWn.lf=function(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j;if(1!=n.gc()){if(n.dc())return t.a.c=x8(Ant,HWn,1,0,5,1),t.f.a=0,void(t.f.b=0);if(GI(mMn(t,(HXn(),Cdt)))===GI((Bfn(),wut))){for(s=n.Kc();s.Ob();){for(p=0,d=new Wb((u=BB(s.Pb(),37)).a);d.a<d.c.c.length;)w=BB(n0(d),10),p+=BB(mMn(w,hpt),19).a;u.p=p}SQ(),n.ad(new Rt)}for(a=BB(n.Xb(0),37),t.a.c=x8(Ant,HWn,1,0,5,1),qan(t,a),b=0,y=0,h=n.Kc();h.Ob();)v=(u=BB(h.Pb(),37)).f,b=e.Math.max(b,v.a),y+=v.a*v.b;for(b=e.Math.max(b,e.Math.sqrt(y)*Gy(MD(mMn(t,Edt)))),k=0,j=0,l=0,i=c=Gy(MD(mMn(t,mpt))),o=n.Kc();o.Ob();)k+(v=(u=BB(o.Pb(),37)).f).a>b&&(k=0,j+=l+c,l=0),ZRn(u,k+(g=u.c).a,j+g.b),kO(g),i=e.Math.max(i,k+v.a),l=e.Math.max(l,v.b),k+=v.a+c;if(t.f.a=i,t.f.b=j+l,qy(TD(mMn(a,Mdt)))){for(KXn(r=new Nt,n,c),f=n.Kc();f.Ob();)UR(kO(BB(f.Pb(),37).c),r.e);UR(kO(t.f),r.a)}d9(t,n)}else(m=BB(n.Xb(0),37))!=t&&(t.a.c=x8(Ant,HWn,1,0,5,1),$Kn(t,m,0,0),qan(t,m),kQ(t.d,m.d),t.f.a=m.f.a,t.f.b=m.f.b)},vX(VZn,"SimpleRowGraphPlacer",1291),wAn(1292,1,MYn,Rt),MWn.ue=function(n,t){return zan(BB(n,37),BB(t,37))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(VZn,"SimpleRowGraphPlacer/1",1292),wAn(1262,1,qYn,Kt),MWn.Lb=function(n){var t;return!!(t=BB(mMn(BB(n,243).b,(HXn(),vgt)),74))&&0!=t.b},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){var t;return!!(t=BB(mMn(BB(n,243).b,(HXn(),vgt)),74))&&0!=t.b},vX(ZZn,"CompoundGraphPostprocessor/1",1262),wAn(1261,1,n1n,em),MWn.pf=function(n,t){mvn(this,BB(n,37),t)},vX(ZZn,"CompoundGraphPreprocessor",1261),wAn(441,1,{441:1},zfn),MWn.c=!1,vX(ZZn,"CompoundGraphPreprocessor/ExternalPort",441),wAn(243,1,{243:1},L_),MWn.Ib=function(){return dx(this.c)+":"+OIn(this.b)},vX(ZZn,"CrossHierarchyEdge",243),wAn(763,1,MYn,_w),MWn.ue=function(n,t){return Vyn(this,BB(n,243),BB(t,243))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(ZZn,"CrossHierarchyEdgeComparator",763),wAn(299,134,{3:1,299:1,94:1,134:1}),MWn.p=0,vX(t1n,"LGraphElement",299),wAn(17,299,{3:1,17:1,299:1,94:1,134:1},wY),MWn.Ib=function(){return OIn(this)};var yut=vX(t1n,"LEdge",17);wAn(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},min),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new Wb(this.b)},MWn.Ib=function(){return 0==this.b.c.length?"G-unlayered"+LMn(this.a):0==this.a.c.length?"G-layered"+LMn(this.b):"G[layerless"+LMn(this.a)+", layers"+LMn(this.b)+"]"};var kut,jut=vX(t1n,"LGraph",37);wAn(657,1,{}),MWn.qf=function(){return this.e.n},MWn.We=function(n){return mMn(this.e,n)},MWn.rf=function(){return this.e.o},MWn.sf=function(){return this.e.p},MWn.Xe=function(n){return Lx(this.e,n)},MWn.tf=function(n){this.e.n.a=n.a,this.e.n.b=n.b},MWn.uf=function(n){this.e.o.a=n.a,this.e.o.b=n.b},MWn.vf=function(n){this.e.p=n},vX(t1n,"LGraphAdapters/AbstractLShapeAdapter",657),wAn(577,1,{839:1},Fw),MWn.wf=function(){var n,t;if(!this.b)for(this.b=sx(this.a.b.c.length),t=new Wb(this.a.b);t.a<t.c.c.length;)n=BB(n0(t),70),WB(this.b,new Bw(n));return this.b},MWn.b=null,vX(t1n,"LGraphAdapters/LEdgeAdapter",577),wAn(656,1,{},HV),MWn.xf=function(){var n,t,e,i,r;if(!this.b)for(this.b=new Np,e=new Wb(this.a.b);e.a<e.c.c.length;)for(r=new Wb(BB(n0(e),29).a);r.a<r.c.c.length;)if(i=BB(n0(r),10),this.c.Mb(i)&&(WB(this.b,new __(this,i,this.e)),this.d)){if(Lx(i,(hWn(),Klt)))for(t=BB(mMn(i,Klt),15).Kc();t.Ob();)n=BB(t.Pb(),10),WB(this.b,new __(this,n,!1));if(Lx(i,Dft))for(t=BB(mMn(i,Dft),15).Kc();t.Ob();)n=BB(t.Pb(),10),WB(this.b,new __(this,n,!1))}return this.b},MWn.qf=function(){throw Hp(new tk(i1n))},MWn.We=function(n){return mMn(this.a,n)},MWn.rf=function(){return this.a.f},MWn.sf=function(){return this.a.p},MWn.Xe=function(n){return Lx(this.a,n)},MWn.tf=function(n){throw Hp(new tk(i1n))},MWn.uf=function(n){this.a.f.a=n.a,this.a.f.b=n.b},MWn.vf=function(n){this.a.p=n},MWn.b=null,MWn.d=!1,MWn.e=!1,vX(t1n,"LGraphAdapters/LGraphAdapter",656),wAn(576,657,{181:1},Bw),vX(t1n,"LGraphAdapters/LLabelAdapter",576),wAn(575,657,{680:1},__),MWn.yf=function(){return this.b},MWn.zf=function(){return SQ(),SQ(),set},MWn.wf=function(){var n,t;if(!this.a)for(this.a=sx(BB(this.e,10).b.c.length),t=new Wb(BB(this.e,10).b);t.a<t.c.c.length;)n=BB(n0(t),70),WB(this.a,new Bw(n));return this.a},MWn.Af=function(){var n;return new HR((n=BB(this.e,10).d).d,n.c,n.a,n.b)},MWn.Bf=function(){return SQ(),SQ(),set},MWn.Cf=function(){var n,t;if(!this.c)for(this.c=sx(BB(this.e,10).j.c.length),t=new Wb(BB(this.e,10).j);t.a<t.c.c.length;)n=BB(n0(t),11),WB(this.c,new gP(n,this.d));return this.c},MWn.Df=function(){return qy(TD(mMn(BB(this.e,10),(hWn(),_ft))))},MWn.Ef=function(n){BB(this.e,10).d.b=n.b,BB(this.e,10).d.d=n.d,BB(this.e,10).d.c=n.c,BB(this.e,10).d.a=n.a},MWn.Ff=function(n){BB(this.e,10).f.b=n.b,BB(this.e,10).f.d=n.d,BB(this.e,10).f.c=n.c,BB(this.e,10).f.a=n.a},MWn.Gf=function(){Ntn(this,(gM(),kut))},MWn.a=null,MWn.b=null,MWn.c=null,MWn.d=!1,vX(t1n,"LGraphAdapters/LNodeAdapter",575),wAn(1722,657,{838:1},gP),MWn.zf=function(){var n,t,e,i;if(this.d&&BB(this.e,11).i.k==(uSn(),Iut))return SQ(),SQ(),set;if(!this.a){for(this.a=new Np,e=new Wb(BB(this.e,11).e);e.a<e.c.c.length;)n=BB(n0(e),17),WB(this.a,new Fw(n));if(this.d&&(i=BB(mMn(BB(this.e,11),(hWn(),Elt)),10)))for(t=new oz(ZL(fbn(i).a.Kc(),new h));dAn(t);)n=BB(U5(t),17),WB(this.a,new Fw(n))}return this.a},MWn.wf=function(){var n,t;if(!this.b)for(this.b=sx(BB(this.e,11).f.c.length),t=new Wb(BB(this.e,11).f);t.a<t.c.c.length;)n=BB(n0(t),70),WB(this.b,new Bw(n));return this.b},MWn.Bf=function(){var n,t,e,i;if(this.d&&BB(this.e,11).i.k==(uSn(),Iut))return SQ(),SQ(),set;if(!this.c){for(this.c=new Np,e=new Wb(BB(this.e,11).g);e.a<e.c.c.length;)n=BB(n0(e),17),WB(this.c,new Fw(n));if(this.d&&(i=BB(mMn(BB(this.e,11),(hWn(),Elt)),10)))for(t=new oz(ZL(lbn(i).a.Kc(),new h));dAn(t);)n=BB(U5(t),17),WB(this.c,new Fw(n))}return this.c},MWn.Hf=function(){return BB(this.e,11).j},MWn.If=function(){return qy(TD(mMn(BB(this.e,11),(hWn(),elt))))},MWn.a=null,MWn.b=null,MWn.c=null,MWn.d=!1,vX(t1n,"LGraphAdapters/LPortAdapter",1722),wAn(1723,1,MYn,_t),MWn.ue=function(n,t){return WDn(BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(t1n,"LGraphAdapters/PortComparator",1723),wAn(804,1,DVn,Ft),MWn.Mb=function(n){return BB(n,10),gM(),!0},vX(t1n,"LGraphAdapters/lambda$0$Type",804),wAn(392,299,{3:1,299:1,392:1,94:1,134:1}),vX(t1n,"LShape",392),wAn(70,392,{3:1,299:1,70:1,392:1,94:1,134:1},qj,O$),MWn.Ib=function(){var n;return null==(n=YH(this))?"label":"l_"+n},vX(t1n,"LLabel",70),wAn(207,1,{3:1,4:1,207:1,414:1}),MWn.Fb=function(n){var t;return!!cL(n,207)&&(t=BB(n,207),this.d==t.d&&this.a==t.a&&this.b==t.b&&this.c==t.c)},MWn.Hb=function(){var n,t;return n=VO(this.b)<<16,n|=VO(this.a)&QVn,t=VO(this.c)<<16,n^(t|=VO(this.d)&QVn)},MWn.Jf=function(n){var t,e,i,r,c,a,u,o,s;for(r=0;r<n.length&&Dhn((b1(r,n.length),n.charCodeAt(r)),o1n);)++r;for(t=n.length;t>0&&Dhn((b1(t-1,n.length),n.charCodeAt(t-1)),s1n);)--t;if(r<t){o=kKn(n.substr(r,t-r),",|;");try{for(a=0,u=(c=o).length;a<u;++a){if(2!=(i=kKn(c[a],"=")).length)throw Hp(new _y("Expecting a list of key-value pairs."));e=RMn(i[0]),s=bSn(RMn(i[1])),mK(e,"top")?this.d=s:mK(e,"left")?this.b=s:mK(e,"bottom")?this.a=s:mK(e,"right")&&(this.c=s)}}catch(h){throw cL(h=lun(h),127)?Hp(new _y(h1n+h)):Hp(h)}}},MWn.Ib=function(){return"[top="+this.d+",left="+this.b+",bottom="+this.a+",right="+this.c+"]"},MWn.a=0,MWn.b=0,MWn.c=0,MWn.d=0,vX(f1n,"Spacing",207),wAn(142,207,l1n,lm,lA,HR,A_);var Eut=vX(f1n,"ElkMargin",142);wAn(651,142,l1n,fm),vX(t1n,"LMargin",651),wAn(10,392,{3:1,299:1,10:1,392:1,94:1,134:1},$vn),MWn.Ib=function(){return $pn(this)},MWn.i=!1;var Tut,Mut,Sut,Put,Cut,Iut,Out=vX(t1n,"LNode",10);wAn(267,22,{3:1,35:1,22:1,267:1},JS);var Aut,$ut=Ben(t1n,"LNode/NodeType",267,Unt,u9,I_);wAn(116,207,b1n,bm,WA,O_);var Lut,Nut,xut,Dut,Rut,Kut,_ut=vX(f1n,"ElkPadding",116);wAn(764,116,b1n,wm),vX(t1n,"LPadding",764),wAn(11,392,{3:1,299:1,11:1,392:1,94:1,134:1},CSn),MWn.Ib=function(){var n,t,e;return oO(((n=new Ck).a+="p_",n),pyn(this)),this.i&&oO(uO((n.a+="[",n),this.i),"]"),1==this.e.c.length&&0==this.g.c.length&&BB(xq(this.e,0),17).c!=this&&(t=BB(xq(this.e,0),17).c,oO((n.a+=" << ",n),pyn(t)),oO(uO((n.a+="[",n),t.i),"]")),0==this.e.c.length&&1==this.g.c.length&&BB(xq(this.g,0),17).d!=this&&(e=BB(xq(this.g,0),17).d,oO((n.a+=" >> ",n),pyn(e)),oO(uO((n.a+="[",n),e.i),"]")),n.a},MWn.c=!0,MWn.d=!1;var Fut,But,Hut,qut,Gut=vX(t1n,"LPort",11);wAn(397,1,pVn,Hw),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new qw(new Wb(this.a.e))},vX(t1n,"LPort/1",397),wAn(1290,1,QWn,qw),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return BB(n0(this.a),17).c},MWn.Ob=function(){return y$(this.a)},MWn.Qb=function(){AU(this.a)},vX(t1n,"LPort/1/1",1290),wAn(359,1,pVn,Gw),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new zw(new Wb(this.a.g))},vX(t1n,"LPort/2",359),wAn(762,1,QWn,zw),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return BB(n0(this.a),17).d},MWn.Ob=function(){return y$(this.a)},MWn.Qb=function(){AU(this.a)},vX(t1n,"LPort/2/1",762),wAn(1283,1,pVn,hP),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new m6(this)},vX(t1n,"LPort/CombineIter",1283),wAn(201,1,QWn,m6),MWn.Nb=function(n){fU(this,n)},MWn.Qb=function(){uE()},MWn.Ob=function(){return zN(this)},MWn.Pb=function(){return y$(this.a)?n0(this.a):n0(this.b)},vX(t1n,"LPort/CombineIter/1",201),wAn(1285,1,qYn,Bt),MWn.Lb=function(n){return Az(n)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),0!=BB(n,11).e.c.length},vX(t1n,"LPort/lambda$0$Type",1285),wAn(1284,1,qYn,Ht),MWn.Lb=function(n){return $z(n)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),0!=BB(n,11).g.c.length},vX(t1n,"LPort/lambda$1$Type",1284),wAn(1286,1,qYn,qt),MWn.Lb=function(n){return gcn(),BB(n,11).j==(kUn(),sIt)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),BB(n,11).j==(kUn(),sIt)},vX(t1n,"LPort/lambda$2$Type",1286),wAn(1287,1,qYn,Gt),MWn.Lb=function(n){return gcn(),BB(n,11).j==(kUn(),oIt)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),BB(n,11).j==(kUn(),oIt)},vX(t1n,"LPort/lambda$3$Type",1287),wAn(1288,1,qYn,zt),MWn.Lb=function(n){return gcn(),BB(n,11).j==(kUn(),SIt)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),BB(n,11).j==(kUn(),SIt)},vX(t1n,"LPort/lambda$4$Type",1288),wAn(1289,1,qYn,Ut),MWn.Lb=function(n){return gcn(),BB(n,11).j==(kUn(),CIt)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),BB(n,11).j==(kUn(),CIt)},vX(t1n,"LPort/lambda$5$Type",1289),wAn(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},HX),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new Wb(this.a)},MWn.Ib=function(){return"L_"+E7(this.b.b,this,0)+LMn(this.a)},vX(t1n,"Layer",29),wAn(1342,1,{},tm),vX(d1n,g1n,1342),wAn(1346,1,{},Xt),MWn.Kb=function(n){return PTn(BB(n,82))},vX(d1n,"ElkGraphImporter/0methodref$connectableShapeToNode$Type",1346),wAn(1349,1,{},Wt),MWn.Kb=function(n){return PTn(BB(n,82))},vX(d1n,"ElkGraphImporter/1methodref$connectableShapeToNode$Type",1349),wAn(1343,1,lVn,Uw),MWn.td=function(n){POn(this.a,BB(n,118))},vX(d1n,p1n,1343),wAn(1344,1,lVn,Xw),MWn.td=function(n){POn(this.a,BB(n,118))},vX(d1n,v1n,1344),wAn(1345,1,{},Vt),MWn.Kb=function(n){return new Rq(null,new w1(pV(BB(n,79)),16))},vX(d1n,m1n,1345),wAn(1347,1,DVn,Ww),MWn.Mb=function(n){return _A(this.a,BB(n,33))},vX(d1n,y1n,1347),wAn(1348,1,{},Qt),MWn.Kb=function(n){return new Rq(null,new w1(vV(BB(n,79)),16))},vX(d1n,"ElkGraphImporter/lambda$5$Type",1348),wAn(1350,1,DVn,Vw),MWn.Mb=function(n){return FA(this.a,BB(n,33))},vX(d1n,"ElkGraphImporter/lambda$7$Type",1350),wAn(1351,1,DVn,Yt),MWn.Mb=function(n){return AQ(BB(n,79))},vX(d1n,"ElkGraphImporter/lambda$8$Type",1351),wAn(1278,1,{},Qh),vX(d1n,"ElkGraphLayoutTransferrer",1278),wAn(1279,1,DVn,Qw),MWn.Mb=function(n){return JR(this.a,BB(n,17))},vX(d1n,"ElkGraphLayoutTransferrer/lambda$0$Type",1279),wAn(1280,1,lVn,Yw),MWn.td=function(n){mM(),WB(this.a,BB(n,17))},vX(d1n,"ElkGraphLayoutTransferrer/lambda$1$Type",1280),wAn(1281,1,DVn,Jw),MWn.Mb=function(n){return UD(this.a,BB(n,17))},vX(d1n,"ElkGraphLayoutTransferrer/lambda$2$Type",1281),wAn(1282,1,lVn,Zw),MWn.td=function(n){mM(),WB(this.a,BB(n,17))},vX(d1n,"ElkGraphLayoutTransferrer/lambda$3$Type",1282),wAn(1485,1,n1n,Jt),MWn.pf=function(n,t){Vrn(BB(n,37),t)},vX(j1n,"CommentNodeMarginCalculator",1485),wAn(1486,1,{},Zt),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"CommentNodeMarginCalculator/lambda$0$Type",1486),wAn(1487,1,lVn,ne),MWn.td=function(n){tHn(BB(n,10))},vX(j1n,"CommentNodeMarginCalculator/lambda$1$Type",1487),wAn(1488,1,n1n,te),MWn.pf=function(n,t){aDn(BB(n,37),t)},vX(j1n,"CommentPostprocessor",1488),wAn(1489,1,n1n,ee),MWn.pf=function(n,t){uUn(BB(n,37),t)},vX(j1n,"CommentPreprocessor",1489),wAn(1490,1,n1n,ie),MWn.pf=function(n,t){jLn(BB(n,37),t)},vX(j1n,"ConstraintsPostprocessor",1490),wAn(1491,1,n1n,re),MWn.pf=function(n,t){can(BB(n,37),t)},vX(j1n,"EdgeAndLayerConstraintEdgeReverser",1491),wAn(1492,1,n1n,ce),MWn.pf=function(n,t){Gwn(BB(n,37),t)},vX(j1n,"EndLabelPostprocessor",1492),wAn(1493,1,{},ae),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"EndLabelPostprocessor/lambda$0$Type",1493),wAn(1494,1,DVn,ue),MWn.Mb=function(n){return MY(BB(n,10))},vX(j1n,"EndLabelPostprocessor/lambda$1$Type",1494),wAn(1495,1,lVn,oe),MWn.td=function(n){ejn(BB(n,10))},vX(j1n,"EndLabelPostprocessor/lambda$2$Type",1495),wAn(1496,1,n1n,se),MWn.pf=function(n,t){ZPn(BB(n,37),t)},vX(j1n,"EndLabelPreprocessor",1496),wAn(1497,1,{},he),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"EndLabelPreprocessor/lambda$0$Type",1497),wAn(1498,1,lVn,D_),MWn.td=function(n){KM(this.a,this.b,this.c,BB(n,10))},MWn.a=0,MWn.b=0,MWn.c=!1,vX(j1n,"EndLabelPreprocessor/lambda$1$Type",1498),wAn(1499,1,DVn,fe),MWn.Mb=function(n){return GI(mMn(BB(n,70),(HXn(),Ydt)))===GI((Rtn(),XPt))},vX(j1n,"EndLabelPreprocessor/lambda$2$Type",1499),wAn(1500,1,lVn,nd),MWn.td=function(n){DH(this.a,BB(n,70))},vX(j1n,"EndLabelPreprocessor/lambda$3$Type",1500),wAn(1501,1,DVn,le),MWn.Mb=function(n){return GI(mMn(BB(n,70),(HXn(),Ydt)))===GI((Rtn(),UPt))},vX(j1n,"EndLabelPreprocessor/lambda$4$Type",1501),wAn(1502,1,lVn,td),MWn.td=function(n){DH(this.a,BB(n,70))},vX(j1n,"EndLabelPreprocessor/lambda$5$Type",1502),wAn(1551,1,n1n,Vh),MWn.pf=function(n,t){Cln(BB(n,37),t)},vX(j1n,"EndLabelSorter",1551),wAn(1552,1,MYn,be),MWn.ue=function(n,t){return Hgn(BB(n,456),BB(t,456))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"EndLabelSorter/1",1552),wAn(456,1,{456:1},TQ),vX(j1n,"EndLabelSorter/LabelGroup",456),wAn(1553,1,{},we),MWn.Kb=function(n){return EM(),new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"EndLabelSorter/lambda$0$Type",1553),wAn(1554,1,DVn,de),MWn.Mb=function(n){return EM(),BB(n,10).k==(uSn(),Cut)},vX(j1n,"EndLabelSorter/lambda$1$Type",1554),wAn(1555,1,lVn,ge),MWn.td=function(n){oSn(BB(n,10))},vX(j1n,"EndLabelSorter/lambda$2$Type",1555),wAn(1556,1,DVn,pe),MWn.Mb=function(n){return EM(),GI(mMn(BB(n,70),(HXn(),Ydt)))===GI((Rtn(),UPt))},vX(j1n,"EndLabelSorter/lambda$3$Type",1556),wAn(1557,1,DVn,ve),MWn.Mb=function(n){return EM(),GI(mMn(BB(n,70),(HXn(),Ydt)))===GI((Rtn(),XPt))},vX(j1n,"EndLabelSorter/lambda$4$Type",1557),wAn(1503,1,n1n,me),MWn.pf=function(n,t){IHn(this,BB(n,37))},MWn.b=0,MWn.c=0,vX(j1n,"FinalSplineBendpointsCalculator",1503),wAn(1504,1,{},ye),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"FinalSplineBendpointsCalculator/lambda$0$Type",1504),wAn(1505,1,{},ke),MWn.Kb=function(n){return new Rq(null,new zU(new oz(ZL(lbn(BB(n,10)).a.Kc(),new h))))},vX(j1n,"FinalSplineBendpointsCalculator/lambda$1$Type",1505),wAn(1506,1,DVn,je),MWn.Mb=function(n){return!b5(BB(n,17))},vX(j1n,"FinalSplineBendpointsCalculator/lambda$2$Type",1506),wAn(1507,1,DVn,Ee),MWn.Mb=function(n){return Lx(BB(n,17),(hWn(),Nlt))},vX(j1n,"FinalSplineBendpointsCalculator/lambda$3$Type",1507),wAn(1508,1,lVn,ed),MWn.td=function(n){zKn(this.a,BB(n,128))},vX(j1n,"FinalSplineBendpointsCalculator/lambda$4$Type",1508),wAn(1509,1,lVn,Te),MWn.td=function(n){JPn(BB(n,17).a)},vX(j1n,"FinalSplineBendpointsCalculator/lambda$5$Type",1509),wAn(792,1,n1n,id),MWn.pf=function(n,t){Vqn(this,BB(n,37),t)},vX(j1n,"GraphTransformer",792),wAn(511,22,{3:1,35:1,22:1,511:1},ZS);var zut,Uut,Xut,Wut=Ben(j1n,"GraphTransformer/Mode",511,Unt,uJ,tB);wAn(1510,1,n1n,Me),MWn.pf=function(n,t){exn(BB(n,37),t)},vX(j1n,"HierarchicalNodeResizingProcessor",1510),wAn(1511,1,n1n,Se),MWn.pf=function(n,t){lrn(BB(n,37),t)},vX(j1n,"HierarchicalPortConstraintProcessor",1511),wAn(1512,1,MYn,Pe),MWn.ue=function(n,t){return Ipn(BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"HierarchicalPortConstraintProcessor/NodeComparator",1512),wAn(1513,1,n1n,Ce),MWn.pf=function(n,t){jBn(BB(n,37),t)},vX(j1n,"HierarchicalPortDummySizeProcessor",1513),wAn(1514,1,n1n,Ie),MWn.pf=function(n,t){JDn(this,BB(n,37),t)},MWn.a=0,vX(j1n,"HierarchicalPortOrthogonalEdgeRouter",1514),wAn(1515,1,MYn,Oe),MWn.ue=function(n,t){return _N(BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"HierarchicalPortOrthogonalEdgeRouter/1",1515),wAn(1516,1,MYn,Ae),MWn.ue=function(n,t){return P9(BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"HierarchicalPortOrthogonalEdgeRouter/2",1516),wAn(1517,1,n1n,$e),MWn.pf=function(n,t){EMn(BB(n,37),t)},vX(j1n,"HierarchicalPortPositionProcessor",1517),wAn(1518,1,n1n,Yh),MWn.pf=function(n,t){rXn(this,BB(n,37))},MWn.a=0,MWn.c=0,vX(j1n,"HighDegreeNodeLayeringProcessor",1518),wAn(571,1,{571:1},Le),MWn.b=-1,MWn.d=-1,vX(j1n,"HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation",571),wAn(1519,1,{},Ne),MWn.Kb=function(n){return q_(),fbn(BB(n,10))},MWn.Fb=function(n){return this===n},vX(j1n,"HighDegreeNodeLayeringProcessor/lambda$0$Type",1519),wAn(1520,1,{},xe),MWn.Kb=function(n){return q_(),lbn(BB(n,10))},MWn.Fb=function(n){return this===n},vX(j1n,"HighDegreeNodeLayeringProcessor/lambda$1$Type",1520),wAn(1526,1,n1n,De),MWn.pf=function(n,t){dFn(this,BB(n,37),t)},vX(j1n,"HyperedgeDummyMerger",1526),wAn(793,1,{},R_),MWn.a=!1,MWn.b=!1,MWn.c=!1,vX(j1n,"HyperedgeDummyMerger/MergeState",793),wAn(1527,1,{},Re),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"HyperedgeDummyMerger/lambda$0$Type",1527),wAn(1528,1,{},Ke),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,10).j,16))},vX(j1n,"HyperedgeDummyMerger/lambda$1$Type",1528),wAn(1529,1,lVn,_e),MWn.td=function(n){BB(n,11).p=-1},vX(j1n,"HyperedgeDummyMerger/lambda$2$Type",1529),wAn(1530,1,n1n,Fe),MWn.pf=function(n,t){bFn(BB(n,37),t)},vX(j1n,"HypernodesProcessor",1530),wAn(1531,1,n1n,Be),MWn.pf=function(n,t){wFn(BB(n,37),t)},vX(j1n,"InLayerConstraintProcessor",1531),wAn(1532,1,n1n,He),MWn.pf=function(n,t){Lcn(BB(n,37),t)},vX(j1n,"InnermostNodeMarginCalculator",1532),wAn(1533,1,n1n,qe),MWn.pf=function(n,t){Vzn(this,BB(n,37))},MWn.a=KQn,MWn.b=KQn,MWn.c=RQn,MWn.d=RQn;var Vut,Qut,Yut,Jut,Zut,not,tot,eot,iot,rot,cot,aot,uot,oot,sot,hot,fot,lot,bot,wot,dot,got,pot,vot,mot,yot,kot,jot,Eot,Tot,Mot,Sot,Pot,Cot,Iot,Oot,Aot,$ot,Lot,Not,xot,Dot,Rot,Kot,_ot,Fot,Bot,Hot,qot,Got,zot,Uot,Xot,Wot,Vot,Qot,Yot,Jot=vX(j1n,"InteractiveExternalPortPositioner",1533);wAn(1534,1,{},Ge),MWn.Kb=function(n){return BB(n,17).d.i},MWn.Fb=function(n){return this===n},vX(j1n,"InteractiveExternalPortPositioner/lambda$0$Type",1534),wAn(1535,1,{},rd),MWn.Kb=function(n){return qN(this.a,MD(n))},MWn.Fb=function(n){return this===n},vX(j1n,"InteractiveExternalPortPositioner/lambda$1$Type",1535),wAn(1536,1,{},ze),MWn.Kb=function(n){return BB(n,17).c.i},MWn.Fb=function(n){return this===n},vX(j1n,"InteractiveExternalPortPositioner/lambda$2$Type",1536),wAn(1537,1,{},cd),MWn.Kb=function(n){return GN(this.a,MD(n))},MWn.Fb=function(n){return this===n},vX(j1n,"InteractiveExternalPortPositioner/lambda$3$Type",1537),wAn(1538,1,{},ad),MWn.Kb=function(n){return WR(this.a,MD(n))},MWn.Fb=function(n){return this===n},vX(j1n,"InteractiveExternalPortPositioner/lambda$4$Type",1538),wAn(1539,1,{},ud),MWn.Kb=function(n){return VR(this.a,MD(n))},MWn.Fb=function(n){return this===n},vX(j1n,"InteractiveExternalPortPositioner/lambda$5$Type",1539),wAn(77,22,{3:1,35:1,22:1,77:1,234:1},nP),MWn.Kf=function(){switch(this.g){case 15:return new dc;case 22:return new gc;case 47:return new mc;case 28:case 35:return new ei;case 32:return new Jt;case 42:return new te;case 1:return new ee;case 41:return new ie;case 56:return new id((Srn(),qut));case 0:return new id((Srn(),Hut));case 2:return new re;case 54:return new ce;case 33:return new se;case 51:return new me;case 55:return new Me;case 13:return new Se;case 38:return new Ce;case 44:return new Ie;case 40:return new $e;case 9:return new Yh;case 49:return new ox;case 37:return new De;case 43:return new Fe;case 27:return new Be;case 30:return new He;case 3:return new qe;case 18:return new Xe;case 29:return new We;case 5:return new Jh;case 50:return new Ue;case 34:return new Zh;case 36:return new ii;case 52:return new Vh;case 11:return new ci;case 7:return new tf;case 39:return new ai;case 45:return new ui;case 16:return new oi;case 10:return new si;case 48:return new fi;case 21:return new li;case 23:return new Ny((oin(),Amt));case 8:return new wi;case 12:return new gi;case 4:return new pi;case 19:return new af;case 17:return new Pi;case 53:return new Ci;case 6:return new Bi;case 25:return new am;case 46:return new Ni;case 31:return new xR;case 14:return new Vi;case 26:return new Sc;case 20:return new nr;case 24:return new Ny((oin(),$mt));default:throw Hp(new _y(M1n+(null!=this.f?this.f:""+this.g)))}};var Zot,nst,tst,est,ist,rst,cst,ast,ust=Ben(j1n,S1n,77,Unt,ENn,nB);wAn(1540,1,n1n,Xe),MWn.pf=function(n,t){Jzn(BB(n,37),t)},vX(j1n,"InvertedPortProcessor",1540),wAn(1541,1,n1n,We),MWn.pf=function(n,t){LKn(BB(n,37),t)},vX(j1n,"LabelAndNodeSizeProcessor",1541),wAn(1542,1,DVn,Ve),MWn.Mb=function(n){return BB(n,10).k==(uSn(),Cut)},vX(j1n,"LabelAndNodeSizeProcessor/lambda$0$Type",1542),wAn(1543,1,DVn,Qe),MWn.Mb=function(n){return BB(n,10).k==(uSn(),Mut)},vX(j1n,"LabelAndNodeSizeProcessor/lambda$1$Type",1543),wAn(1544,1,lVn,K_),MWn.td=function(n){_M(this.b,this.a,this.c,BB(n,10))},MWn.a=!1,MWn.c=!1,vX(j1n,"LabelAndNodeSizeProcessor/lambda$2$Type",1544),wAn(1545,1,n1n,Jh),MWn.pf=function(n,t){fzn(BB(n,37),t)},vX(j1n,"LabelDummyInserter",1545),wAn(1546,1,qYn,Ye),MWn.Lb=function(n){return GI(mMn(BB(n,70),(HXn(),Ydt)))===GI((Rtn(),zPt))},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return GI(mMn(BB(n,70),(HXn(),Ydt)))===GI((Rtn(),zPt))},vX(j1n,"LabelDummyInserter/1",1546),wAn(1547,1,n1n,Ue),MWn.pf=function(n,t){Pqn(BB(n,37),t)},vX(j1n,"LabelDummyRemover",1547),wAn(1548,1,DVn,Je),MWn.Mb=function(n){return qy(TD(mMn(BB(n,70),(HXn(),Qdt))))},vX(j1n,"LabelDummyRemover/lambda$0$Type",1548),wAn(1359,1,n1n,Zh),MWn.pf=function(n,t){TGn(this,BB(n,37),t)},MWn.a=null,vX(j1n,"LabelDummySwitcher",1359),wAn(286,1,{286:1},cKn),MWn.c=0,MWn.d=null,MWn.f=0,vX(j1n,"LabelDummySwitcher/LabelDummyInfo",286),wAn(1360,1,{},Ze),MWn.Kb=function(n){return Irn(),new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"LabelDummySwitcher/lambda$0$Type",1360),wAn(1361,1,DVn,ni),MWn.Mb=function(n){return Irn(),BB(n,10).k==(uSn(),Sut)},vX(j1n,"LabelDummySwitcher/lambda$1$Type",1361),wAn(1362,1,{},hd),MWn.Kb=function(n){return XD(this.a,BB(n,10))},vX(j1n,"LabelDummySwitcher/lambda$2$Type",1362),wAn(1363,1,lVn,fd),MWn.td=function(n){YX(this.a,BB(n,286))},vX(j1n,"LabelDummySwitcher/lambda$3$Type",1363),wAn(1364,1,MYn,ti),MWn.ue=function(n,t){return Lz(BB(n,286),BB(t,286))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"LabelDummySwitcher/lambda$4$Type",1364),wAn(791,1,n1n,ei),MWn.pf=function(n,t){Y6(BB(n,37),t)},vX(j1n,"LabelManagementProcessor",791),wAn(1549,1,n1n,ii),MWn.pf=function(n,t){Nxn(BB(n,37),t)},vX(j1n,"LabelSideSelector",1549),wAn(1550,1,DVn,ri),MWn.Mb=function(n){return qy(TD(mMn(BB(n,70),(HXn(),Qdt))))},vX(j1n,"LabelSideSelector/lambda$0$Type",1550),wAn(1558,1,n1n,ci),MWn.pf=function(n,t){EBn(BB(n,37),t)},vX(j1n,"LayerConstraintPostprocessor",1558),wAn(1559,1,n1n,tf),MWn.pf=function(n,t){r$n(BB(n,37),t)},vX(j1n,"LayerConstraintPreprocessor",1559),wAn(360,22,{3:1,35:1,22:1,360:1},tP);var ost,sst,hst,fst,lst,bst,wst,dst,gst,pst=Ben(j1n,"LayerConstraintPreprocessor/HiddenNodeConnections",360,Unt,e3,z_);wAn(1560,1,n1n,ai),MWn.pf=function(n,t){Eqn(BB(n,37),t)},vX(j1n,"LayerSizeAndGraphHeightCalculator",1560),wAn(1561,1,n1n,ui),MWn.pf=function(n,t){ALn(BB(n,37),t)},vX(j1n,"LongEdgeJoiner",1561),wAn(1562,1,n1n,oi),MWn.pf=function(n,t){WHn(BB(n,37),t)},vX(j1n,"LongEdgeSplitter",1562),wAn(1563,1,n1n,si),MWn.pf=function(n,t){PGn(this,BB(n,37),t)},MWn.d=0,MWn.e=0,MWn.i=0,MWn.j=0,MWn.k=0,MWn.n=0,vX(j1n,"NodePromotion",1563),wAn(1564,1,{},hi),MWn.Kb=function(n){return BB(n,46),hN(),!0},MWn.Fb=function(n){return this===n},vX(j1n,"NodePromotion/lambda$0$Type",1564),wAn(1565,1,{},od),MWn.Kb=function(n){return aV(this.a,BB(n,46))},MWn.Fb=function(n){return this===n},MWn.a=0,vX(j1n,"NodePromotion/lambda$1$Type",1565),wAn(1566,1,{},sd),MWn.Kb=function(n){return uV(this.a,BB(n,46))},MWn.Fb=function(n){return this===n},MWn.a=0,vX(j1n,"NodePromotion/lambda$2$Type",1566),wAn(1567,1,n1n,fi),MWn.pf=function(n,t){XUn(BB(n,37),t)},vX(j1n,"NorthSouthPortPostprocessor",1567),wAn(1568,1,n1n,li),MWn.pf=function(n,t){MUn(BB(n,37),t)},vX(j1n,"NorthSouthPortPreprocessor",1568),wAn(1569,1,MYn,bi),MWn.ue=function(n,t){return Zan(BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"NorthSouthPortPreprocessor/lambda$0$Type",1569),wAn(1570,1,n1n,wi),MWn.pf=function(n,t){$_n(BB(n,37),t)},vX(j1n,"PartitionMidprocessor",1570),wAn(1571,1,DVn,di),MWn.Mb=function(n){return Lx(BB(n,10),(HXn(),Wgt))},vX(j1n,"PartitionMidprocessor/lambda$0$Type",1571),wAn(1572,1,lVn,ld),MWn.td=function(n){$Q(this.a,BB(n,10))},vX(j1n,"PartitionMidprocessor/lambda$1$Type",1572),wAn(1573,1,n1n,gi),MWn.pf=function(n,t){wNn(BB(n,37),t)},vX(j1n,"PartitionPostprocessor",1573),wAn(1574,1,n1n,pi),MWn.pf=function(n,t){NOn(BB(n,37),t)},vX(j1n,"PartitionPreprocessor",1574),wAn(1575,1,DVn,vi),MWn.Mb=function(n){return Lx(BB(n,10),(HXn(),Wgt))},vX(j1n,"PartitionPreprocessor/lambda$0$Type",1575),wAn(1576,1,{},mi),MWn.Kb=function(n){return new Rq(null,new zU(new oz(ZL(lbn(BB(n,10)).a.Kc(),new h))))},vX(j1n,"PartitionPreprocessor/lambda$1$Type",1576),wAn(1577,1,DVn,yi),MWn.Mb=function(n){return Lgn(BB(n,17))},vX(j1n,"PartitionPreprocessor/lambda$2$Type",1577),wAn(1578,1,lVn,ki),MWn.td=function(n){Run(BB(n,17))},vX(j1n,"PartitionPreprocessor/lambda$3$Type",1578),wAn(1579,1,n1n,af),MWn.pf=function(n,t){u_n(BB(n,37),t)},vX(j1n,"PortListSorter",1579),wAn(1580,1,{},ji),MWn.Kb=function(n){return zsn(),BB(n,11).e},vX(j1n,"PortListSorter/lambda$0$Type",1580),wAn(1581,1,{},Ei),MWn.Kb=function(n){return zsn(),BB(n,11).g},vX(j1n,"PortListSorter/lambda$1$Type",1581),wAn(1582,1,MYn,Ti),MWn.ue=function(n,t){return T4(BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"PortListSorter/lambda$2$Type",1582),wAn(1583,1,MYn,Mi),MWn.ue=function(n,t){return Oyn(BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"PortListSorter/lambda$3$Type",1583),wAn(1584,1,MYn,Si),MWn.ue=function(n,t){return nFn(BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"PortListSorter/lambda$4$Type",1584),wAn(1585,1,n1n,Pi),MWn.pf=function(n,t){WAn(BB(n,37),t)},vX(j1n,"PortSideProcessor",1585),wAn(1586,1,n1n,Ci),MWn.pf=function(n,t){IRn(BB(n,37),t)},vX(j1n,"ReversedEdgeRestorer",1586),wAn(1591,1,n1n,am),MWn.pf=function(n,t){Ymn(this,BB(n,37),t)},vX(j1n,"SelfLoopPortRestorer",1591),wAn(1592,1,{},Ii),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"SelfLoopPortRestorer/lambda$0$Type",1592),wAn(1593,1,DVn,Oi),MWn.Mb=function(n){return BB(n,10).k==(uSn(),Cut)},vX(j1n,"SelfLoopPortRestorer/lambda$1$Type",1593),wAn(1594,1,DVn,Ai),MWn.Mb=function(n){return Lx(BB(n,10),(hWn(),Olt))},vX(j1n,"SelfLoopPortRestorer/lambda$2$Type",1594),wAn(1595,1,{},$i),MWn.Kb=function(n){return BB(mMn(BB(n,10),(hWn(),Olt)),403)},vX(j1n,"SelfLoopPortRestorer/lambda$3$Type",1595),wAn(1596,1,lVn,bd),MWn.td=function(n){SSn(this.a,BB(n,403))},vX(j1n,"SelfLoopPortRestorer/lambda$4$Type",1596),wAn(794,1,lVn,Li),MWn.td=function(n){nPn(BB(n,101))},vX(j1n,"SelfLoopPortRestorer/lambda$5$Type",794),wAn(1597,1,n1n,Ni),MWn.pf=function(n,t){Lpn(BB(n,37),t)},vX(j1n,"SelfLoopPostProcessor",1597),wAn(1598,1,{},xi),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"SelfLoopPostProcessor/lambda$0$Type",1598),wAn(1599,1,DVn,Di),MWn.Mb=function(n){return BB(n,10).k==(uSn(),Cut)},vX(j1n,"SelfLoopPostProcessor/lambda$1$Type",1599),wAn(1600,1,DVn,Ri),MWn.Mb=function(n){return Lx(BB(n,10),(hWn(),Olt))},vX(j1n,"SelfLoopPostProcessor/lambda$2$Type",1600),wAn(1601,1,lVn,Ki),MWn.td=function(n){Ljn(BB(n,10))},vX(j1n,"SelfLoopPostProcessor/lambda$3$Type",1601),wAn(1602,1,{},_i),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,101).f,1))},vX(j1n,"SelfLoopPostProcessor/lambda$4$Type",1602),wAn(1603,1,lVn,wd),MWn.td=function(n){a3(this.a,BB(n,409))},vX(j1n,"SelfLoopPostProcessor/lambda$5$Type",1603),wAn(1604,1,DVn,Fi),MWn.Mb=function(n){return!!BB(n,101).i},vX(j1n,"SelfLoopPostProcessor/lambda$6$Type",1604),wAn(1605,1,lVn,dd),MWn.td=function(n){Ty(this.a,BB(n,101))},vX(j1n,"SelfLoopPostProcessor/lambda$7$Type",1605),wAn(1587,1,n1n,Bi),MWn.pf=function(n,t){Z$n(BB(n,37),t)},vX(j1n,"SelfLoopPreProcessor",1587),wAn(1588,1,{},Hi),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,101).f,1))},vX(j1n,"SelfLoopPreProcessor/lambda$0$Type",1588),wAn(1589,1,{},qi),MWn.Kb=function(n){return BB(n,409).a},vX(j1n,"SelfLoopPreProcessor/lambda$1$Type",1589),wAn(1590,1,lVn,Gi),MWn.td=function(n){q$(BB(n,17))},vX(j1n,"SelfLoopPreProcessor/lambda$2$Type",1590),wAn(1606,1,n1n,xR),MWn.pf=function(n,t){sSn(this,BB(n,37),t)},vX(j1n,"SelfLoopRouter",1606),wAn(1607,1,{},zi),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"SelfLoopRouter/lambda$0$Type",1607),wAn(1608,1,DVn,Ui),MWn.Mb=function(n){return BB(n,10).k==(uSn(),Cut)},vX(j1n,"SelfLoopRouter/lambda$1$Type",1608),wAn(1609,1,DVn,Xi),MWn.Mb=function(n){return Lx(BB(n,10),(hWn(),Olt))},vX(j1n,"SelfLoopRouter/lambda$2$Type",1609),wAn(1610,1,{},Wi),MWn.Kb=function(n){return BB(mMn(BB(n,10),(hWn(),Olt)),403)},vX(j1n,"SelfLoopRouter/lambda$3$Type",1610),wAn(1611,1,lVn,eP),MWn.td=function(n){QV(this.a,this.b,BB(n,403))},vX(j1n,"SelfLoopRouter/lambda$4$Type",1611),wAn(1612,1,n1n,Vi),MWn.pf=function(n,t){fxn(BB(n,37),t)},vX(j1n,"SemiInteractiveCrossMinProcessor",1612),wAn(1613,1,DVn,Qi),MWn.Mb=function(n){return BB(n,10).k==(uSn(),Cut)},vX(j1n,"SemiInteractiveCrossMinProcessor/lambda$0$Type",1613),wAn(1614,1,DVn,Yi),MWn.Mb=function(n){return Gq(BB(n,10))._b((HXn(),spt))},vX(j1n,"SemiInteractiveCrossMinProcessor/lambda$1$Type",1614),wAn(1615,1,MYn,Ji),MWn.ue=function(n,t){return drn(BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"SemiInteractiveCrossMinProcessor/lambda$2$Type",1615),wAn(1616,1,{},Zi),MWn.Ce=function(n,t){return XQ(BB(n,10),BB(t,10))},vX(j1n,"SemiInteractiveCrossMinProcessor/lambda$3$Type",1616),wAn(1618,1,n1n,nr),MWn.pf=function(n,t){MBn(BB(n,37),t)},vX(j1n,"SortByInputModelProcessor",1618),wAn(1619,1,DVn,tr),MWn.Mb=function(n){return 0!=BB(n,11).g.c.length},vX(j1n,"SortByInputModelProcessor/lambda$0$Type",1619),wAn(1620,1,lVn,gd),MWn.td=function(n){fPn(this.a,BB(n,11))},vX(j1n,"SortByInputModelProcessor/lambda$1$Type",1620),wAn(1693,803,{},grn),MWn.Me=function(n){var t,e,i,r;switch(this.c=n,this.a.g){case 2:t=new Np,JT(AV(new Rq(null,new w1(this.c.a.b,16)),new dr),new uP(this,t)),pCn(this,new rr),Otn(t,new cr),t.c=x8(Ant,HWn,1,0,5,1),JT(AV(new Rq(null,new w1(this.c.a.b,16)),new ar),new vd(t)),pCn(this,new ur),Otn(t,new or),t.c=x8(Ant,HWn,1,0,5,1),e=j$(icn(LV(new Rq(null,new w1(this.c.a.b,16)),new md(this))),new sr),JT(new Rq(null,new w1(this.c.a.a,16)),new rP(e,t)),pCn(this,new fr),Otn(t,new er),t.c=x8(Ant,HWn,1,0,5,1);break;case 3:i=new Np,pCn(this,new ir),r=j$(icn(LV(new Rq(null,new w1(this.c.a.b,16)),new pd(this))),new hr),JT(AV(new Rq(null,new w1(this.c.a.b,16)),new lr),new aP(r,i)),pCn(this,new br),Otn(i,new wr),i.c=x8(Ant,HWn,1,0,5,1);break;default:throw Hp(new kv)}},MWn.b=0,vX(A1n,"EdgeAwareScanlineConstraintCalculation",1693),wAn(1694,1,qYn,ir),MWn.Lb=function(n){return cL(BB(n,57).g,145)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return cL(BB(n,57).g,145)},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$0$Type",1694),wAn(1695,1,{},pd),MWn.Fe=function(n){return GCn(this.a,BB(n,57))},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$1$Type",1695),wAn(1703,1,RVn,iP),MWn.Vd=function(){Fkn(this.a,this.b,-1)},MWn.b=0,vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$10$Type",1703),wAn(1705,1,qYn,rr),MWn.Lb=function(n){return cL(BB(n,57).g,145)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return cL(BB(n,57).g,145)},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$11$Type",1705),wAn(1706,1,lVn,cr),MWn.td=function(n){BB(n,365).Vd()},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$12$Type",1706),wAn(1707,1,DVn,ar),MWn.Mb=function(n){return cL(BB(n,57).g,10)},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$13$Type",1707),wAn(1709,1,lVn,vd),MWn.td=function(n){Ebn(this.a,BB(n,57))},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$14$Type",1709),wAn(1708,1,RVn,lP),MWn.Vd=function(){Fkn(this.b,this.a,-1)},MWn.a=0,vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$15$Type",1708),wAn(1710,1,qYn,ur),MWn.Lb=function(n){return cL(BB(n,57).g,10)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return cL(BB(n,57).g,10)},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$16$Type",1710),wAn(1711,1,lVn,or),MWn.td=function(n){BB(n,365).Vd()},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$17$Type",1711),wAn(1712,1,{},md),MWn.Fe=function(n){return zCn(this.a,BB(n,57))},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$18$Type",1712),wAn(1713,1,{},sr),MWn.De=function(){return 0},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$19$Type",1713),wAn(1696,1,{},hr),MWn.De=function(){return 0},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$2$Type",1696),wAn(1715,1,lVn,rP),MWn.td=function(n){HG(this.a,this.b,BB(n,307))},MWn.a=0,vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$20$Type",1715),wAn(1714,1,RVn,cP),MWn.Vd=function(){VAn(this.a,this.b,-1)},MWn.b=0,vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$21$Type",1714),wAn(1716,1,qYn,fr),MWn.Lb=function(n){return BB(n,57),!0},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return BB(n,57),!0},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$22$Type",1716),wAn(1717,1,lVn,er),MWn.td=function(n){BB(n,365).Vd()},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$23$Type",1717),wAn(1697,1,DVn,lr),MWn.Mb=function(n){return cL(BB(n,57).g,10)},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$3$Type",1697),wAn(1699,1,lVn,aP),MWn.td=function(n){qG(this.a,this.b,BB(n,57))},MWn.a=0,vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$4$Type",1699),wAn(1698,1,RVn,bP),MWn.Vd=function(){Fkn(this.b,this.a,-1)},MWn.a=0,vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$5$Type",1698),wAn(1700,1,qYn,br),MWn.Lb=function(n){return BB(n,57),!0},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return BB(n,57),!0},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$6$Type",1700),wAn(1701,1,lVn,wr),MWn.td=function(n){BB(n,365).Vd()},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$7$Type",1701),wAn(1702,1,DVn,dr),MWn.Mb=function(n){return cL(BB(n,57).g,145)},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$8$Type",1702),wAn(1704,1,lVn,uP),MWn.td=function(n){Ttn(this.a,this.b,BB(n,57))},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$9$Type",1704),wAn(1521,1,n1n,ox),MWn.pf=function(n,t){cqn(this,BB(n,37),t)},vX(A1n,"HorizontalGraphCompactor",1521),wAn(1522,1,{},yd),MWn.Oe=function(n,t){var e,i;return Z7(n,t)?0:(e=f2(n),i=f2(t),e&&e.k==(uSn(),Mut)||i&&i.k==(uSn(),Mut)?0:UN(BB(mMn(this.a.a,(hWn(),Alt)),304),e?e.k:(uSn(),Put),i?i.k:(uSn(),Put)))},MWn.Pe=function(n,t){var e,i;return Z7(n,t)?1:(e=f2(n),i=f2(t),XN(BB(mMn(this.a.a,(hWn(),Alt)),304),e?e.k:(uSn(),Put),i?i.k:(uSn(),Put)))},vX(A1n,"HorizontalGraphCompactor/1",1522),wAn(1523,1,{},gr),MWn.Ne=function(n,t){return MM(),0==n.a.i},vX(A1n,"HorizontalGraphCompactor/lambda$0$Type",1523),wAn(1524,1,{},kd),MWn.Ne=function(n,t){return _Q(this.a,n,t)},vX(A1n,"HorizontalGraphCompactor/lambda$1$Type",1524),wAn(1664,1,{},I7),vX(A1n,"LGraphToCGraphTransformer",1664),wAn(1672,1,DVn,pr),MWn.Mb=function(n){return null!=n},vX(A1n,"LGraphToCGraphTransformer/0methodref$nonNull$Type",1672),wAn(1665,1,{},vr),MWn.Kb=function(n){return G_(),Bbn(mMn(BB(BB(n,57).g,10),(hWn(),dlt)))},vX(A1n,"LGraphToCGraphTransformer/lambda$0$Type",1665),wAn(1666,1,{},mr),MWn.Kb=function(n){return G_(),mfn(BB(BB(n,57).g,145))},vX(A1n,"LGraphToCGraphTransformer/lambda$1$Type",1666),wAn(1675,1,DVn,yr),MWn.Mb=function(n){return G_(),cL(BB(n,57).g,10)},vX(A1n,"LGraphToCGraphTransformer/lambda$10$Type",1675),wAn(1676,1,lVn,kr),MWn.td=function(n){KQ(BB(n,57))},vX(A1n,"LGraphToCGraphTransformer/lambda$11$Type",1676),wAn(1677,1,DVn,jr),MWn.Mb=function(n){return G_(),cL(BB(n,57).g,145)},vX(A1n,"LGraphToCGraphTransformer/lambda$12$Type",1677),wAn(1681,1,lVn,Er),MWn.td=function(n){vfn(BB(n,57))},vX(A1n,"LGraphToCGraphTransformer/lambda$13$Type",1681),wAn(1678,1,lVn,jd),MWn.td=function(n){uA(this.a,BB(n,8))},MWn.a=0,vX(A1n,"LGraphToCGraphTransformer/lambda$14$Type",1678),wAn(1679,1,lVn,Ed),MWn.td=function(n){sA(this.a,BB(n,110))},MWn.a=0,vX(A1n,"LGraphToCGraphTransformer/lambda$15$Type",1679),wAn(1680,1,lVn,Td),MWn.td=function(n){oA(this.a,BB(n,8))},MWn.a=0,vX(A1n,"LGraphToCGraphTransformer/lambda$16$Type",1680),wAn(1682,1,{},Tr),MWn.Kb=function(n){return G_(),new Rq(null,new zU(new oz(ZL(lbn(BB(n,10)).a.Kc(),new h))))},vX(A1n,"LGraphToCGraphTransformer/lambda$17$Type",1682),wAn(1683,1,DVn,Mr),MWn.Mb=function(n){return G_(),b5(BB(n,17))},vX(A1n,"LGraphToCGraphTransformer/lambda$18$Type",1683),wAn(1684,1,lVn,Md),MWn.td=function(n){Snn(this.a,BB(n,17))},vX(A1n,"LGraphToCGraphTransformer/lambda$19$Type",1684),wAn(1668,1,lVn,Sd),MWn.td=function(n){l0(this.a,BB(n,145))},vX(A1n,"LGraphToCGraphTransformer/lambda$2$Type",1668),wAn(1685,1,{},Sr),MWn.Kb=function(n){return G_(),new Rq(null,new w1(BB(n,29).a,16))},vX(A1n,"LGraphToCGraphTransformer/lambda$20$Type",1685),wAn(1686,1,{},Pr),MWn.Kb=function(n){return G_(),new Rq(null,new zU(new oz(ZL(lbn(BB(n,10)).a.Kc(),new h))))},vX(A1n,"LGraphToCGraphTransformer/lambda$21$Type",1686),wAn(1687,1,{},Cr),MWn.Kb=function(n){return G_(),BB(mMn(BB(n,17),(hWn(),Nlt)),15)},vX(A1n,"LGraphToCGraphTransformer/lambda$22$Type",1687),wAn(1688,1,DVn,Ir),MWn.Mb=function(n){return tx(BB(n,15))},vX(A1n,"LGraphToCGraphTransformer/lambda$23$Type",1688),wAn(1689,1,lVn,Pd),MWn.td=function(n){PCn(this.a,BB(n,15))},vX(A1n,"LGraphToCGraphTransformer/lambda$24$Type",1689),wAn(1667,1,lVn,oP),MWn.td=function(n){H3(this.a,this.b,BB(n,145))},vX(A1n,"LGraphToCGraphTransformer/lambda$3$Type",1667),wAn(1669,1,{},Or),MWn.Kb=function(n){return G_(),new Rq(null,new w1(BB(n,29).a,16))},vX(A1n,"LGraphToCGraphTransformer/lambda$4$Type",1669),wAn(1670,1,{},Ar),MWn.Kb=function(n){return G_(),new Rq(null,new zU(new oz(ZL(lbn(BB(n,10)).a.Kc(),new h))))},vX(A1n,"LGraphToCGraphTransformer/lambda$5$Type",1670),wAn(1671,1,{},$r),MWn.Kb=function(n){return G_(),BB(mMn(BB(n,17),(hWn(),Nlt)),15)},vX(A1n,"LGraphToCGraphTransformer/lambda$6$Type",1671),wAn(1673,1,lVn,Cd),MWn.td=function(n){KIn(this.a,BB(n,15))},vX(A1n,"LGraphToCGraphTransformer/lambda$8$Type",1673),wAn(1674,1,lVn,sP),MWn.td=function(n){x$(this.a,this.b,BB(n,145))},vX(A1n,"LGraphToCGraphTransformer/lambda$9$Type",1674),wAn(1663,1,{},Lr),MWn.Le=function(n){var t,e,i,r,c;for(this.a=n,this.d=new Fv,this.c=x8(qit,HWn,121,this.a.a.a.c.length,0,1),this.b=0,e=new Wb(this.a.a.a);e.a<e.c.c.length;)(t=BB(n0(e),307)).d=this.b,c=AN(oM(new qv,t),this.d),this.c[this.b]=c,++this.b;for(JGn(this),AUn(this),ZLn(this),WKn(B_(this.d),new Xm),r=new Wb(this.a.a.b);r.a<r.c.c.length;)(i=BB(n0(r),57)).d.c=this.c[i.a.d].e+i.b.a},MWn.b=0,vX(A1n,"NetworkSimplexCompaction",1663),wAn(145,1,{35:1,145:1},PBn),MWn.wd=function(n){return Lnn(this,BB(n,145))},MWn.Ib=function(){return mfn(this)},vX(A1n,"VerticalSegment",145),wAn(827,1,{},zEn),MWn.c=0,MWn.e=0,MWn.i=0,vX($1n,"BetweenLayerEdgeTwoNodeCrossingsCounter",827),wAn(663,1,{663:1},kcn),MWn.Ib=function(){return"AdjacencyList [node="+this.d+", adjacencies= "+this.a+"]"},MWn.b=0,MWn.c=0,MWn.f=0,vX($1n,"BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList",663),wAn(287,1,{35:1,287:1},Gx),MWn.wd=function(n){return aq(this,BB(n,287))},MWn.Ib=function(){return"Adjacency [position="+this.c+", cardinality="+this.a+", currentCardinality="+this.b+"]"},MWn.a=0,MWn.b=0,MWn.c=0,vX($1n,"BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency",287),wAn(1929,1,{},ZSn),MWn.b=0,MWn.e=!1,vX($1n,"CrossingMatrixFiller",1929);var vst,mst,yst,kst,jst=bq(L1n,"IInitializable");wAn(1804,1,N1n,vP),MWn.Nf=function(n,t,e,i,r,c){},MWn.Pf=function(n,t,e){},MWn.Lf=function(){return this.c!=(oin(),Amt)},MWn.Mf=function(){this.e=x8(ANt,hQn,25,this.d,15,1)},MWn.Of=function(n,t){t[n][0].c.p=n},MWn.Qf=function(n,t,e,i){++this.d},MWn.Rf=function(){return!0},MWn.Sf=function(n,t,e,i){return Yhn(this,n,t,e),Z4(this,t)},MWn.Tf=function(n,t){var e;return Yhn(this,n,e=hj(t,n.length),t),bon(this,e)},MWn.d=0,vX($1n,"GreedySwitchHeuristic",1804),wAn(1930,1,{},lG),MWn.b=0,MWn.d=0,vX($1n,"NorthSouthEdgeNeighbouringNodeCrossingsCounter",1930),wAn(1917,1,{},uRn),MWn.a=!1,vX($1n,"SwitchDecider",1917),wAn(101,1,{101:1},pPn),MWn.a=null,MWn.c=null,MWn.i=null,vX(x1n,"SelfHyperLoop",101),wAn(1916,1,{},epn),MWn.c=0,MWn.e=0,vX(x1n,"SelfHyperLoopLabels",1916),wAn(411,22,{3:1,35:1,22:1,411:1},mP);var Est,Tst,Mst,Sst,Pst,Cst,Ist=Ben(x1n,"SelfHyperLoopLabels/Alignment",411,Unt,r3,U_);wAn(409,1,{409:1},j6),vX(x1n,"SelfLoopEdge",409),wAn(403,1,{403:1},Ogn),MWn.a=!1,vX(x1n,"SelfLoopHolder",403),wAn(1724,1,DVn,qr),MWn.Mb=function(n){return b5(BB(n,17))},vX(x1n,"SelfLoopHolder/lambda$0$Type",1724),wAn(113,1,{113:1},ipn),MWn.a=!1,MWn.c=!1,vX(x1n,"SelfLoopPort",113),wAn(1792,1,DVn,Gr),MWn.Mb=function(n){return b5(BB(n,17))},vX(x1n,"SelfLoopPort/lambda$0$Type",1792),wAn(363,22,{3:1,35:1,22:1,363:1},yP);var Ost,Ast,$st,Lst,Nst,xst,Dst,Rst,Kst=Ben(x1n,"SelfLoopType",363,Unt,x5,Y_);wAn(1732,1,{},uf),vX(D1n,"PortRestorer",1732),wAn(361,22,{3:1,35:1,22:1,361:1},kP);var _st,Fst,Bst,Hst,qst,Gst,zst,Ust,Xst,Wst=Ben(D1n,"PortRestorer/PortSideArea",361,Unt,P1,J_);wAn(1733,1,{},Wr),MWn.Kb=function(n){return _Mn(),BB(n,15).Oc()},vX(D1n,"PortRestorer/lambda$0$Type",1733),wAn(1734,1,lVn,Vr),MWn.td=function(n){_Mn(),BB(n,113).c=!1},vX(D1n,"PortRestorer/lambda$1$Type",1734),wAn(1743,1,DVn,Qr),MWn.Mb=function(n){return _Mn(),BB(n,11).j==(kUn(),CIt)},vX(D1n,"PortRestorer/lambda$10$Type",1743),wAn(1744,1,{},Yr),MWn.Kb=function(n){return _Mn(),BB(n,113).d},vX(D1n,"PortRestorer/lambda$11$Type",1744),wAn(1745,1,lVn,Id),MWn.td=function(n){Nj(this.a,BB(n,11))},vX(D1n,"PortRestorer/lambda$12$Type",1745),wAn(1735,1,lVn,Od),MWn.td=function(n){Ax(this.a,BB(n,101))},vX(D1n,"PortRestorer/lambda$2$Type",1735),wAn(1736,1,MYn,Jr),MWn.ue=function(n,t){return oen(BB(n,113),BB(t,113))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(D1n,"PortRestorer/lambda$3$Type",1736),wAn(1737,1,DVn,Zr),MWn.Mb=function(n){return _Mn(),BB(n,113).c},vX(D1n,"PortRestorer/lambda$4$Type",1737),wAn(1738,1,DVn,xr),MWn.Mb=function(n){return Acn(BB(n,11))},vX(D1n,"PortRestorer/lambda$5$Type",1738),wAn(1739,1,DVn,Nr),MWn.Mb=function(n){return _Mn(),BB(n,11).j==(kUn(),sIt)},vX(D1n,"PortRestorer/lambda$6$Type",1739),wAn(1740,1,DVn,Dr),MWn.Mb=function(n){return _Mn(),BB(n,11).j==(kUn(),oIt)},vX(D1n,"PortRestorer/lambda$7$Type",1740),wAn(1741,1,DVn,Rr),MWn.Mb=function(n){return c3(BB(n,11))},vX(D1n,"PortRestorer/lambda$8$Type",1741),wAn(1742,1,DVn,Kr),MWn.Mb=function(n){return _Mn(),BB(n,11).j==(kUn(),SIt)},vX(D1n,"PortRestorer/lambda$9$Type",1742),wAn(270,22,{3:1,35:1,22:1,270:1},WV);var Vst,Qst,Yst,Jst,Zst,nht,tht,eht,iht=Ben(D1n,"PortSideAssigner/Target",270,Unt,Ftn,X_);wAn(1725,1,{},_r),MWn.Kb=function(n){return AV(new Rq(null,new w1(BB(n,101).j,16)),new Xr)},vX(D1n,"PortSideAssigner/lambda$1$Type",1725),wAn(1726,1,{},Fr),MWn.Kb=function(n){return BB(n,113).d},vX(D1n,"PortSideAssigner/lambda$2$Type",1726),wAn(1727,1,lVn,Br),MWn.td=function(n){qCn(BB(n,11),(kUn(),sIt))},vX(D1n,"PortSideAssigner/lambda$3$Type",1727),wAn(1728,1,{},Hr),MWn.Kb=function(n){return BB(n,113).d},vX(D1n,"PortSideAssigner/lambda$4$Type",1728),wAn(1729,1,lVn,Ad),MWn.td=function(n){tv(this.a,BB(n,11))},vX(D1n,"PortSideAssigner/lambda$5$Type",1729),wAn(1730,1,MYn,zr),MWn.ue=function(n,t){return MW(BB(n,101),BB(t,101))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(D1n,"PortSideAssigner/lambda$6$Type",1730),wAn(1731,1,MYn,Ur),MWn.ue=function(n,t){return oH(BB(n,113),BB(t,113))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(D1n,"PortSideAssigner/lambda$7$Type",1731),wAn(805,1,DVn,Xr),MWn.Mb=function(n){return BB(n,113).c},vX(D1n,"PortSideAssigner/lambda$8$Type",805),wAn(2009,1,{}),vX(R1n,"AbstractSelfLoopRouter",2009),wAn(1750,1,MYn,nc),MWn.ue=function(n,t){return IK(BB(n,101),BB(t,101))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(R1n,bJn,1750),wAn(1751,1,MYn,tc),MWn.ue=function(n,t){return CK(BB(n,101),BB(t,101))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(R1n,wJn,1751),wAn(1793,2009,{},ec),MWn.Uf=function(n,t,e){return e},vX(R1n,"OrthogonalSelfLoopRouter",1793),wAn(1795,1,lVn,wP),MWn.td=function(n){pgn(this.b,this.a,BB(n,8))},vX(R1n,"OrthogonalSelfLoopRouter/lambda$0$Type",1795),wAn(1794,1793,{},ic),MWn.Uf=function(n,t,e){var i,r;return Kx(e,0,UR(B$((i=n.c.d).n),i.a)),DH(e,UR(B$((r=n.d.d).n),r.a)),E_n(e)},vX(R1n,"PolylineSelfLoopRouter",1794),wAn(1746,1,{},nf),MWn.a=null,vX(R1n,"RoutingDirector",1746),wAn(1747,1,MYn,rc),MWn.ue=function(n,t){return wH(BB(n,113),BB(t,113))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(R1n,"RoutingDirector/lambda$0$Type",1747),wAn(1748,1,{},cc),MWn.Kb=function(n){return SM(),BB(n,101).j},vX(R1n,"RoutingDirector/lambda$1$Type",1748),wAn(1749,1,lVn,ac),MWn.td=function(n){SM(),BB(n,15).ad(Qst)},vX(R1n,"RoutingDirector/lambda$2$Type",1749),wAn(1752,1,{},uc),vX(R1n,"RoutingSlotAssigner",1752),wAn(1753,1,DVn,$d),MWn.Mb=function(n){return CC(this.a,BB(n,101))},vX(R1n,"RoutingSlotAssigner/lambda$0$Type",1753),wAn(1754,1,MYn,Ld),MWn.ue=function(n,t){return Uq(this.a,BB(n,101),BB(t,101))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(R1n,"RoutingSlotAssigner/lambda$1$Type",1754),wAn(1796,1793,{},oc),MWn.Uf=function(n,t,e){var i,r,c,a;return i=Gy(MD(gpn(n.b.g.b,(HXn(),jpt)))),nLn(n,t,e,a=new Ux(Pun(Gk(PMt,1),sVn,8,0,[(c=n.c.d,UR(new wA(c.n),c.a))])),i),DH(a,UR(new wA((r=n.d.d).n),r.a)),Fvn(new oBn(a))},vX(R1n,"SplineSelfLoopRouter",1796),wAn(578,1,MYn,Grn,kH),MWn.ue=function(n,t){return fXn(this,BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(K1n,"ModelOrderNodeComparator",578),wAn(1755,1,DVn,sc),MWn.Mb=function(n){return 0!=BB(n,11).e.c.length},vX(K1n,"ModelOrderNodeComparator/lambda$0$Type",1755),wAn(1756,1,{},hc),MWn.Kb=function(n){return BB(xq(BB(n,11).e,0),17).c},vX(K1n,"ModelOrderNodeComparator/lambda$1$Type",1756),wAn(1757,1,DVn,fc),MWn.Mb=function(n){return 0!=BB(n,11).e.c.length},vX(K1n,"ModelOrderNodeComparator/lambda$2$Type",1757),wAn(1758,1,{},lc),MWn.Kb=function(n){return BB(xq(BB(n,11).e,0),17).c},vX(K1n,"ModelOrderNodeComparator/lambda$3$Type",1758),wAn(1759,1,DVn,bc),MWn.Mb=function(n){return 0!=BB(n,11).e.c.length},vX(K1n,"ModelOrderNodeComparator/lambda$4$Type",1759),wAn(806,1,MYn,O7,pP),MWn.ue=function(n,t){return Nz(this,n,t)},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(K1n,"ModelOrderPortComparator",806),wAn(801,1,{},wc),MWn.Vf=function(n,t){var i,r,c,a;for(c=PSn(t),i=new Np,a=t.f/c,r=1;r<c;++r)WB(i,iln(dG(fan(e.Math.round(r*a)))));return i},MWn.Wf=function(){return!1},vX(_1n,"ARDCutIndexHeuristic",801),wAn(1479,1,n1n,dc),MWn.pf=function(n,t){oKn(BB(n,37),t)},vX(_1n,"BreakingPointInserter",1479),wAn(305,1,{305:1},v3),MWn.Ib=function(){var n;return(n=new Ck).a+="BPInfo[",n.a+="\n\tstart=",uO(n,this.i),n.a+="\n\tend=",uO(n,this.a),n.a+="\n\tnodeStartEdge=",uO(n,this.e),n.a+="\n\tstartEndEdge=",uO(n,this.j),n.a+="\n\toriginalEdge=",uO(n,this.f),n.a+="\n\tstartInLayerDummy=",uO(n,this.k),n.a+="\n\tstartInLayerEdge=",uO(n,this.n),n.a+="\n\tendInLayerDummy=",uO(n,this.b),n.a+="\n\tendInLayerEdge=",uO(n,this.c),n.a},vX(_1n,"BreakingPointInserter/BPInfo",305),wAn(652,1,{652:1},Hd),MWn.a=!1,MWn.b=0,MWn.c=0,vX(_1n,"BreakingPointInserter/Cut",652),wAn(1480,1,n1n,gc),MWn.pf=function(n,t){mLn(BB(n,37),t)},vX(_1n,"BreakingPointProcessor",1480),wAn(1481,1,DVn,pc),MWn.Mb=function(n){return Jnn(BB(n,10))},vX(_1n,"BreakingPointProcessor/0methodref$isEnd$Type",1481),wAn(1482,1,DVn,vc),MWn.Mb=function(n){return Znn(BB(n,10))},vX(_1n,"BreakingPointProcessor/1methodref$isStart$Type",1482),wAn(1483,1,n1n,mc),MWn.pf=function(n,t){rNn(this,BB(n,37),t)},vX(_1n,"BreakingPointRemover",1483),wAn(1484,1,lVn,yc),MWn.td=function(n){BB(n,128).k=!0},vX(_1n,"BreakingPointRemover/lambda$0$Type",1484),wAn(797,1,{},MAn),MWn.b=0,MWn.e=0,MWn.f=0,MWn.j=0,vX(_1n,"GraphStats",797),wAn(798,1,{},kc),MWn.Ce=function(n,t){return e.Math.max(Gy(MD(n)),Gy(MD(t)))},vX(_1n,"GraphStats/0methodref$max$Type",798),wAn(799,1,{},jc),MWn.Ce=function(n,t){return e.Math.max(Gy(MD(n)),Gy(MD(t)))},vX(_1n,"GraphStats/2methodref$max$Type",799),wAn(1660,1,{},Ec),MWn.Ce=function(n,t){return vB(MD(n),MD(t))},vX(_1n,"GraphStats/lambda$1$Type",1660),wAn(1661,1,{},Nd),MWn.Kb=function(n){return wpn(this.a,BB(n,29))},vX(_1n,"GraphStats/lambda$2$Type",1661),wAn(1662,1,{},xd),MWn.Kb=function(n){return VLn(this.a,BB(n,29))},vX(_1n,"GraphStats/lambda$6$Type",1662),wAn(800,1,{},Tc),MWn.Vf=function(n,t){return BB(mMn(n,(HXn(),_pt)),15)||(SQ(),SQ(),set)},MWn.Wf=function(){return!1},vX(_1n,"ICutIndexCalculator/ManualCutIndexCalculator",800),wAn(802,1,{},Mc),MWn.Vf=function(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;for(null==t.n&&Dmn(t),k=t.n,null==t.d&&Dmn(t),s=t.d,(y=x8(xNt,qQn,25,k.length,15,1))[0]=k[0],v=k[0],h=1;h<k.length;h++)y[h]=y[h-1]+k[h],v+=k[h];for(c=PSn(t)-1,u=BB(mMn(n,(HXn(),Fpt)),19).a,r=KQn,i=new Np,b=e.Math.max(0,c-u);b<=e.Math.min(t.f-1,c+u);b++){if(g=v/(b+1),p=0,f=1,a=new Np,m=KQn,l=0,o=0,d=s[0],0==b)m=v,null==t.g&&(t.g=Xrn(t,new jc)),o=Gy(t.g);else{for(;f<t.f;)y[f-1]-p>=g&&(WB(a,iln(f)),m=e.Math.max(m,y[f-1]-l),o+=d,p+=y[f-1]-p,l=y[f-1],d=s[f]),d=e.Math.max(d,s[f]),++f;o+=d}(w=e.Math.min(1/m,1/t.b/o))>r&&(r=w,i=a)}return i},MWn.Wf=function(){return!1},vX(_1n,"MSDCutIndexHeuristic",802),wAn(1617,1,n1n,Sc),MWn.pf=function(n,t){bBn(BB(n,37),t)},vX(_1n,"SingleEdgeGraphWrapper",1617),wAn(227,22,{3:1,35:1,22:1,227:1},jP);var rht,cht,aht,uht=Ben(F1n,"CenterEdgeLabelPlacementStrategy",227,Unt,Z8,W_);wAn(422,22,{3:1,35:1,22:1,422:1},EP);var oht,sht,hht,fht,lht=Ben(F1n,"ConstraintCalculationStrategy",422,Unt,GY,V_);wAn(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},TP),MWn.Kf=function(){return sIn(this)},MWn.Xf=function(){return sIn(this)};var bht,wht,dht,ght,pht=Ben(F1n,"CrossingMinimizationStrategy",314,Unt,T1,Q_);wAn(337,22,{3:1,35:1,22:1,337:1},MP);var vht,mht,yht,kht,jht,Eht,Tht=Ben(F1n,"CuttingStrategy",337,Unt,M1,Z_);wAn(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},SP),MWn.Kf=function(){return RAn(this)},MWn.Xf=function(){return RAn(this)};var Mht,Sht,Pht,Cht=Ben(F1n,"CycleBreakingStrategy",335,Unt,L5,nF);wAn(419,22,{3:1,35:1,22:1,419:1},PP);var Iht,Oht,Aht,$ht,Lht=Ben(F1n,"DirectionCongruency",419,Unt,qY,tF);wAn(450,22,{3:1,35:1,22:1,450:1},CP);var Nht,xht,Dht,Rht,Kht,_ht,Fht,Bht=Ben(F1n,"EdgeConstraint",450,Unt,S1,eF);wAn(276,22,{3:1,35:1,22:1,276:1},IP);var Hht,qht,Ght,zht=Ben(F1n,"EdgeLabelSideSelection",276,Unt,i9,iF);wAn(479,22,{3:1,35:1,22:1,479:1},OP);var Uht,Xht,Wht,Vht,Qht,Yht,Jht,Zht=Ben(F1n,"EdgeStraighteningStrategy",479,Unt,HY,rF);wAn(274,22,{3:1,35:1,22:1,274:1},AP);var nft,tft,eft,ift,rft,cft,aft,uft=Ben(F1n,"FixedAlignment",274,Unt,t9,cF);wAn(275,22,{3:1,35:1,22:1,275:1},$P);var oft,sft,hft,fft,lft,bft,wft,dft,gft,pft,vft,mft=Ben(F1n,"GraphCompactionStrategy",275,Unt,n9,aF);wAn(256,22,{3:1,35:1,22:1,256:1},LP);var yft,kft,jft,Eft,Tft=Ben(F1n,"GraphProperties",256,Unt,bcn,uF);wAn(292,22,{3:1,35:1,22:1,292:1},NP);var Mft,Sft,Pft,Cft,Ift=Ben(F1n,"GreedySwitchType",292,Unt,I1,oF);wAn(303,22,{3:1,35:1,22:1,303:1},xP);var Oft,Aft,$ft,Lft=Ben(F1n,"InLayerConstraint",303,Unt,C1,sF);wAn(420,22,{3:1,35:1,22:1,420:1},DP);var Nft,xft,Dft,Rft,Kft,_ft,Fft,Bft,Hft,qft,Gft,zft,Uft,Xft,Wft,Vft,Qft,Yft,Jft,Zft,nlt,tlt,elt,ilt,rlt,clt,alt,ult,olt,slt,hlt,flt,llt,blt,wlt,dlt,glt,plt,vlt,mlt,ylt,klt,jlt,Elt,Tlt,Mlt,Slt,Plt,Clt,Ilt,Olt,Alt,$lt,Llt,Nlt,xlt,Dlt,Rlt,Klt,_lt,Flt,Blt,Hlt,qlt,Glt=Ben(F1n,"InteractiveReferencePoint",420,Unt,zY,hF);wAn(163,22,{3:1,35:1,22:1,163:1},BP);var zlt,Ult,Xlt,Wlt,Vlt,Qlt,Ylt,Jlt,Zlt,nbt,tbt,ebt,ibt,rbt,cbt,abt,ubt,obt,sbt,hbt,fbt,lbt,bbt,wbt,dbt,gbt,pbt,vbt,mbt,ybt,kbt,jbt,Ebt,Tbt,Mbt,Sbt,Pbt,Cbt,Ibt,Obt,Abt,$bt,Lbt,Nbt,xbt,Dbt,Rbt,Kbt,_bt,Fbt,Bbt,Hbt,qbt,Gbt,zbt,Ubt,Xbt,Wbt,Vbt,Qbt,Ybt,Jbt,Zbt,nwt,twt,ewt,iwt,rwt,cwt,awt,uwt,owt,swt,hwt,fwt,lwt,bwt,wwt,dwt,gwt,pwt,vwt,mwt,ywt,kwt,jwt,Ewt,Twt,Mwt,Swt,Pwt,Cwt,Iwt,Owt,Awt,$wt,Lwt,Nwt,xwt,Dwt,Rwt,Kwt,_wt,Fwt,Bwt,Hwt,qwt,Gwt,zwt,Uwt,Xwt,Wwt,Vwt,Qwt,Ywt,Jwt,Zwt,ndt,tdt,edt,idt,rdt,cdt,adt,udt,odt,sdt,hdt,fdt,ldt,bdt,wdt,ddt,gdt,pdt,vdt,mdt,ydt,kdt,jdt,Edt,Tdt,Mdt,Sdt,Pdt,Cdt,Idt,Odt,Adt,$dt,Ldt,Ndt,xdt,Ddt,Rdt,Kdt,_dt,Fdt,Bdt,Hdt,qdt,Gdt,zdt,Udt,Xdt,Wdt,Vdt,Qdt,Ydt,Jdt,Zdt,ngt,tgt,egt,igt,rgt,cgt,agt,ugt,ogt,sgt,hgt,fgt,lgt,bgt,wgt,dgt,ggt,pgt,vgt,mgt,ygt,kgt,jgt,Egt,Tgt,Mgt,Sgt,Pgt,Cgt,Igt,Ogt,Agt,$gt,Lgt,Ngt,xgt,Dgt,Rgt,Kgt,_gt,Fgt,Bgt,Hgt,qgt,Ggt,zgt,Ugt,Xgt,Wgt,Vgt,Qgt,Ygt,Jgt,Zgt,npt,tpt,ept,ipt,rpt,cpt,apt,upt,opt,spt,hpt,fpt,lpt,bpt,wpt,dpt,gpt,ppt,vpt,mpt,ypt,kpt,jpt,Ept,Tpt,Mpt,Spt,Ppt,Cpt,Ipt,Opt,Apt,$pt,Lpt,Npt,xpt,Dpt,Rpt,Kpt,_pt,Fpt,Bpt,Hpt,qpt,Gpt,zpt,Upt,Xpt,Wpt,Vpt,Qpt,Ypt,Jpt,Zpt,nvt,tvt,evt,ivt=Ben(F1n,"LayerConstraint",163,Unt,D5,fF);wAn(848,1,QYn,hf),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,U1n),""),"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."),Pbt),(PPn(),gMt)),Lht),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,X1n),""),"Feedback Edges"),"Whether feedback edges should be highlighted by routing around the nodes."),(hN(),!1)),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,W1n),""),"Interactive Reference Point"),"Determines which point of a node is considered by interactive layout phases."),Qbt),gMt),Glt),nbn(hMt)))),a2(n,W1n,e0n,Jbt),a2(n,W1n,l0n,Ybt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,V1n),""),"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),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,Q1n),""),"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),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Pj(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,Y1n),""),"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),wMt),ktt),nbn(fMt)),Pun(Gk(Qtt,1),sVn,2,6,["org.eclipse.elk.layered.northOrSouthPort"])))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,J1n),""),"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."),xwt),gMt),zvt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,Z1n),""),"Thoroughness"),"How much effort should be spent to produce a nice layout."),iln(7)),vMt),Att),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,n0n),""),"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),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,t0n),""),"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),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,e0n),"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)."),Mbt),gMt),Cht),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,i0n),f2n),"Node Layering Strategy"),"Strategy for node layering."),bwt),gMt),ovt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,r0n),f2n),"Layer Constraint"),"Determines a constraint on the placement of the node regarding the layering."),iwt),gMt),ivt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,c0n),f2n),"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."),iln(-1)),vMt),Att),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,a0n),f2n),"Layer ID"),"Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),iln(-1)),vMt),Att),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,u0n),l2n),"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."),iln(4)),vMt),Att),nbn(hMt)))),a2(n,u0n,i0n,awt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,o0n),l2n),"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."),iln(2)),vMt),Att),nbn(hMt)))),a2(n,o0n,i0n,owt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,s0n),b2n),"Node Promotion Strategy"),"Reduces number of dummy nodes after layering phase (if possible)."),fwt),gMt),Dvt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,h0n),b2n),"Max Node Promotion Iterations"),"Limits the number of iterations for node promotion."),iln(0)),vMt),Att),nbn(hMt)))),a2(n,h0n,s0n,null),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,f0n),"layering.coffmanGraham"),"Layer Bound"),"The maximum number of nodes allowed per layer."),iln(DWn)),vMt),Att),nbn(hMt)))),a2(n,f0n,i0n,nwt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,l0n),w2n),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),Ebt),gMt),pht),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,b0n),w2n),"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),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,w0n),w2n),"Hierarchical Sweepiness"),"How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."),.1),dMt),Ptt),nbn(hMt)))),a2(n,w0n,d2n,pbt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,d0n),w2n),"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),wMt),ktt),nbn(hMt)))),a2(n,d0n,l0n,kbt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,g0n),w2n),"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."),iln(-1)),vMt),Att),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,p0n),w2n),"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."),iln(-1)),vMt),Att),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,v0n),g2n),"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."),iln(40)),vMt),Att),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,m0n),g2n),"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."),wbt),gMt),Ift),nbn(hMt)))),a2(n,m0n,l0n,dbt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,y0n),"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."),hbt),gMt),Ift),nbn(hMt)))),a2(n,y0n,l0n,fbt),a2(n,y0n,d2n,lbt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,k0n),p2n),"Node Placement Strategy"),"Strategy for node placement."),Lwt),gMt),Avt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,j0n),p2n),"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."),wMt),ktt),nbn(hMt)))),a2(n,j0n,k0n,Ewt),a2(n,j0n,k0n,Twt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,E0n),v2n),"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."),pwt),gMt),Zht),nbn(hMt)))),a2(n,E0n,k0n,vwt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,T0n),v2n),"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."),ywt),gMt),uft),nbn(hMt)))),a2(n,T0n,k0n,kwt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,M0n),"nodePlacement.linearSegments"),"Linear Segments Deflection Dampening"),"Dampens the movement of nodes to keep the diagram from getting too large."),.3),dMt),Ptt),nbn(hMt)))),a2(n,M0n,k0n,Swt),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,S0n),"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."),gMt),kvt),nbn(sMt)))),a2(n,S0n,k0n,Awt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,P0n),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),Iwt),gMt),kvt),nbn(hMt)))),a2(n,P0n,k0n,Owt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,C0n),m2n),"Self-Loop Distribution"),"Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."),xbt),gMt),nmt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,I0n),m2n),"Self-Loop Ordering"),"Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."),Rbt),gMt),cmt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,O0n),"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."),_bt),gMt),hmt),nbn(hMt)))),a2(n,O0n,y2n,Fbt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,A0n),"edgeRouting.splines.sloppy"),"Sloppy Spline Layer Spacing Factor"),"Spacing factor for routing area between layers when using sloppy spline routing."),.2),dMt),Ptt),nbn(hMt)))),a2(n,A0n,y2n,Hbt),a2(n,A0n,O0n,qbt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,$0n),"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),dMt),Ptt),nbn(hMt)))),a2(n,$0n,y2n,Lbt),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,L0n),k2n),"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."),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,N0n),k2n),"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),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,x0n),k2n),"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),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,D0n),k2n),"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),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,R0n),j2n),"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."),iln(0)),vMt),Att),nbn(uMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,K0n),j2n),"Shortness Priority"),"Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."),iln(0)),vMt),Att),nbn(uMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,_0n),j2n),"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."),iln(0)),vMt),Att),nbn(uMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,F0n),E2n),DJn),"Tries to further compact components (disconnected sub-graphs)."),!1),wMt),ktt),nbn(hMt)))),a2(n,F0n,kZn,!0),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,B0n),T2n),"Post Compaction Strategy"),M2n),Ylt),gMt),mft),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,H0n),T2n),"Post Compaction Constraint Calculation"),M2n),Vlt),gMt),lht),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,q0n),S2n),"High Degree Node Treatment"),"Makes room around high degree nodes to place leafs and trees."),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,G0n),S2n),"High Degree Node Threshold"),"Whether a node is considered to have a high degree."),iln(16)),vMt),Att),nbn(hMt)))),a2(n,G0n,q0n,!0),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,z0n),S2n),"High Degree Node Maximum Tree Height"),"Maximum height of a subtree connected to a high degree node to be moved to separate layers."),iln(5)),vMt),Att),nbn(hMt)))),a2(n,z0n,q0n,!0),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,U0n),P2n),"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'."),bdt),gMt),Smt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,X0n),P2n),"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),dMt),Ptt),nbn(hMt)))),a2(n,X0n,U0n,Uwt),a2(n,X0n,U0n,Xwt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,W0n),P2n),"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),dMt),Ptt),nbn(hMt)))),a2(n,W0n,U0n,Vwt),a2(n,W0n,U0n,Qwt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,V0n),C2n),"Cutting Strategy"),"The strategy by which the layer indexes are determined at which the layering crumbles into chunks."),idt),gMt),Tht),nbn(hMt)))),a2(n,V0n,U0n,rdt),a2(n,V0n,U0n,cdt),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,Q0n),C2n),"Manually Specified Cuts"),"Allows the user to specify her own cuts for a certain graph."),mMt),Rnt),nbn(hMt)))),a2(n,Q0n,V0n,Jwt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,Y0n),"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."),ndt),vMt),Att),nbn(hMt)))),a2(n,Y0n,V0n,tdt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,J0n),I2n),"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."),vdt),gMt),dmt),nbn(hMt)))),a2(n,J0n,U0n,mdt),a2(n,J0n,U0n,ydt),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,Z0n),I2n),"Valid Indices for Wrapping"),null),mMt),Rnt),nbn(hMt)))),a2(n,Z0n,U0n,ddt),a2(n,Z0n,U0n,gdt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,n2n),O2n),"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),wMt),ktt),nbn(hMt)))),a2(n,n2n,U0n,sdt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,t2n),O2n),"Distance Penalty When Improving Cuts"),null),2),dMt),Ptt),nbn(hMt)))),a2(n,t2n,U0n,udt),a2(n,t2n,n2n,!0),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,e2n),O2n),"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),wMt),ktt),nbn(hMt)))),a2(n,e2n,U0n,fdt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,i2n),A2n),"Edge Label Side Selection"),"Method to decide on edge label sides."),Abt),gMt),zht),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,r2n),A2n),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),Ibt),gMt),uht),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[oMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,c2n),$2n),"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."),abt),gMt),Fvt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,a2n),$2n),"No Model Order"),"Set on a node to not set a model order for this node even though it is a real node."),!1),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,u2n),$2n),"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."),Zlt),gMt),mut),nbn(hMt)))),a2(n,u2n,kZn,null),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,o2n),$2n),"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."),ibt),gMt),wvt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,s2n),$2n),"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),dMt),Ptt),nbn(hMt)))),a2(n,s2n,c2n,null),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,h2n),$2n),"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),dMt),Ptt),nbn(hMt)))),a2(n,h2n,c2n,null),vWn((new bf,n))},vX(F1n,"LayeredMetaDataProvider",848),wAn(986,1,QYn,bf),MWn.Qe=function(n){vWn(n)},vX(F1n,"LayeredOptions",986),wAn(987,1,{},Cc),MWn.$e=function(){return new Uv},MWn._e=function(n){},vX(F1n,"LayeredOptions/LayeredFactory",987),wAn(1372,1,{}),MWn.a=0,vX(y3n,"ElkSpacings/AbstractSpacingsBuilder",1372),wAn(779,1372,{},uwn),vX(F1n,"LayeredSpacings/LayeredSpacingsBuilder",779),wAn(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},RP),MWn.Kf=function(){return rLn(this)},MWn.Xf=function(){return rLn(this)};var rvt,cvt,avt,uvt,ovt=Ben(F1n,"LayeringStrategy",313,Unt,e9,lF);wAn(378,22,{3:1,35:1,22:1,378:1},KP);var svt,hvt,fvt,lvt,bvt,wvt=Ben(F1n,"LongEdgeOrderingStrategy",378,Unt,E1,bF);wAn(197,22,{3:1,35:1,22:1,197:1},_P);var dvt,gvt,pvt,vvt,mvt,yvt,kvt=Ben(F1n,"NodeFlexibility",197,Unt,k3,wF);wAn(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},FP),MWn.Kf=function(){return DAn(this)},MWn.Xf=function(){return DAn(this)};var jvt,Evt,Tvt,Mvt,Svt,Pvt,Cvt,Ivt,Ovt,Avt=Ben(F1n,"NodePlacementStrategy",315,Unt,$5,yF);wAn(260,22,{3:1,35:1,22:1,260:1},HP);var $vt,Lvt,Nvt,xvt,Dvt=Ben(F1n,"NodePromotionStrategy",260,Unt,Btn,gF);wAn(339,22,{3:1,35:1,22:1,339:1},qP);var Rvt,Kvt,_vt,Fvt=Ben(F1n,"OrderingStrategy",339,Unt,A1,pF);wAn(421,22,{3:1,35:1,22:1,421:1},GP);var Bvt,Hvt,qvt,Gvt,zvt=Ben(F1n,"PortSortingStrategy",421,Unt,UY,vF);wAn(452,22,{3:1,35:1,22:1,452:1},zP);var Uvt,Xvt,Wvt,Vvt,Qvt=Ben(F1n,"PortType",452,Unt,O1,dF);wAn(375,22,{3:1,35:1,22:1,375:1},UP);var Yvt,Jvt,Zvt,nmt=Ben(F1n,"SelfLoopDistributionStrategy",375,Unt,$1,mF);wAn(376,22,{3:1,35:1,22:1,376:1},XP);var tmt,emt,imt,rmt,cmt=Ben(F1n,"SelfLoopOrderingStrategy",376,Unt,BY,kF);wAn(304,1,{304:1},sGn),vX(F1n,"Spacings",304),wAn(336,22,{3:1,35:1,22:1,336:1},WP);var amt,umt,omt,smt,hmt=Ben(F1n,"SplineRoutingMode",336,Unt,N1,jF);wAn(338,22,{3:1,35:1,22:1,338:1},VP);var fmt,lmt,bmt,wmt,dmt=Ben(F1n,"ValidifyStrategy",338,Unt,x1,EF);wAn(377,22,{3:1,35:1,22:1,377:1},QP);var gmt,pmt,vmt,mmt,ymt,kmt,jmt,Emt,Tmt,Mmt,Smt=Ben(F1n,"WrappingStrategy",377,Unt,L1,TF);wAn(1383,1,E3n,wf),MWn.Yf=function(n){return BB(n,37),pmt},MWn.pf=function(n,t){JHn(this,BB(n,37),t)},vX(T3n,"DepthFirstCycleBreaker",1383),wAn(782,1,E3n,KG),MWn.Yf=function(n){return BB(n,37),vmt},MWn.pf=function(n,t){UXn(this,BB(n,37),t)},MWn.Zf=function(n){return BB(xq(n,pvn(this.d,n.c.length)),10)},vX(T3n,"GreedyCycleBreaker",782),wAn(1386,782,E3n,TI),MWn.Zf=function(n){var t,e,i,r;for(r=null,t=DWn,i=new Wb(n);i.a<i.c.c.length;)Lx(e=BB(n0(i),10),(hWn(),wlt))&&BB(mMn(e,wlt),19).a<t&&(t=BB(mMn(e,wlt),19).a,r=e);return r||BB(xq(n,pvn(this.d,n.c.length)),10)},vX(T3n,"GreedyModelOrderCycleBreaker",1386),wAn(1384,1,E3n,rf),MWn.Yf=function(n){return BB(n,37),mmt},MWn.pf=function(n,t){Iqn(this,BB(n,37),t)},vX(T3n,"InteractiveCycleBreaker",1384),wAn(1385,1,E3n,cf),MWn.Yf=function(n){return BB(n,37),ymt},MWn.pf=function(n,t){Lqn(this,BB(n,37),t)},MWn.a=0,MWn.b=0,vX(T3n,"ModelOrderCycleBreaker",1385),wAn(1389,1,E3n,$M),MWn.Yf=function(n){return BB(n,37),kmt},MWn.pf=function(n,t){JXn(this,BB(n,37),t)},vX(M3n,"CoffmanGrahamLayerer",1389),wAn(1390,1,MYn,Dd),MWn.ue=function(n,t){return BIn(this.a,BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(M3n,"CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type",1390),wAn(1391,1,MYn,Rd),MWn.ue=function(n,t){return zG(this.a,BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(M3n,"CoffmanGrahamLayerer/lambda$1$Type",1391),wAn(1392,1,E3n,Ic),MWn.Yf=function(n){return BB(n,37),dq(dq(dq(new B2,(yMn(),Rat),(lWn(),kot)),Kat,Oot),_at,Iot)},MWn.pf=function(n,t){EUn(this,BB(n,37),t)},vX(M3n,"InteractiveLayerer",1392),wAn(569,1,{569:1},im),MWn.a=0,MWn.c=0,vX(M3n,"InteractiveLayerer/LayerSpan",569),wAn(1388,1,E3n,ef),MWn.Yf=function(n){return BB(n,37),jmt},MWn.pf=function(n,t){qxn(this,BB(n,37),t)},vX(M3n,"LongestPathLayerer",1388),wAn(1395,1,E3n,sf),MWn.Yf=function(n){return BB(n,37),dq(dq(dq(new B2,(yMn(),Rat),(lWn(),cot)),Kat,Oot),_at,Iot)},MWn.pf=function(n,t){iXn(this,BB(n,37),t)},MWn.a=0,MWn.b=0,MWn.d=0,vX(M3n,"MinWidthLayerer",1395),wAn(1396,1,MYn,Kd),MWn.ue=function(n,t){return dan(this,BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(M3n,"MinWidthLayerer/MinOutgoingEdgesComparator",1396),wAn(1387,1,E3n,of),MWn.Yf=function(n){return BB(n,37),Mmt},MWn.pf=function(n,t){mGn(this,BB(n,37),t)},vX(M3n,"NetworkSimplexLayerer",1387),wAn(1393,1,E3n,RR),MWn.Yf=function(n){return BB(n,37),dq(dq(dq(new B2,(yMn(),Rat),(lWn(),cot)),Kat,Oot),_at,Iot)},MWn.pf=function(n,t){$zn(this,BB(n,37),t)},MWn.d=0,MWn.f=0,MWn.g=0,MWn.i=0,MWn.s=0,MWn.t=0,MWn.u=0,vX(M3n,"StretchWidthLayerer",1393),wAn(1394,1,MYn,Oc),MWn.ue=function(n,t){return R6(BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(M3n,"StretchWidthLayerer/1",1394),wAn(402,1,S3n),MWn.Nf=function(n,t,e,i,r,c){},MWn._f=function(n,t,e){return r_n(this,n,t,e)},MWn.Mf=function(){this.g=x8(DNt,P3n,25,this.d,15,1),this.f=x8(DNt,P3n,25,this.d,15,1)},MWn.Of=function(n,t){this.e[n]=x8(ANt,hQn,25,t[n].length,15,1)},MWn.Pf=function(n,t,e){e[n][t].p=t,this.e[n][t]=t},MWn.Qf=function(n,t,e,i){BB(xq(i[n][t].j,e),11).p=this.d++},MWn.b=0,MWn.c=0,MWn.d=0,vX(C3n,"AbstractBarycenterPortDistributor",402),wAn(1633,1,MYn,_d),MWn.ue=function(n,t){return qgn(this.a,BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(C3n,"AbstractBarycenterPortDistributor/lambda$0$Type",1633),wAn(817,1,N1n,G2),MWn.Nf=function(n,t,e,i,r,c){},MWn.Pf=function(n,t,e){},MWn.Qf=function(n,t,e,i){},MWn.Lf=function(){return!1},MWn.Mf=function(){this.c=this.e.a,this.g=this.f.g},MWn.Of=function(n,t){t[n][0].c.p=n},MWn.Rf=function(){return!1},MWn.ag=function(n,t,e,i){e?sjn(this,n):(Djn(this,n,i),ZGn(this,n,t)),n.c.length>1&&(qy(TD(mMn(vW((l1(0,n.c.length),BB(n.c[0],10))),(HXn(),xdt))))?R$n(n,this.d,BB(this,660)):(SQ(),m$(n,this.d)),Ban(this.e,n))},MWn.Sf=function(n,t,e,i){var r,c,a,u,o,s,h;for(t!=Jq(e,n.length)&&(c=n[t-(e?1:-1)],G6(this.f,c,e?(ain(),qvt):(ain(),Hvt))),r=n[t][0],h=!i||r.k==(uSn(),Mut),s=u6(n[t]),this.ag(s,h,!1,e),a=0,o=new Wb(s);o.a<o.c.c.length;)u=BB(n0(o),10),n[t][a++]=u;return!1},MWn.Tf=function(n,t){var e,i,r,c,a;for(c=u6(n[a=Jq(t,n.length)]),this.ag(c,!1,!0,t),e=0,r=new Wb(c);r.a<r.c.c.length;)i=BB(n0(r),10),n[a][e++]=i;return!1},vX(C3n,"BarycenterHeuristic",817),wAn(658,1,{658:1},Bd),MWn.Ib=function(){return"BarycenterState [node="+this.c+", summedWeight="+this.d+", degree="+this.b+", barycenter="+this.a+", visited="+this.e+"]"},MWn.b=0,MWn.d=0,MWn.e=!1;var Pmt=vX(C3n,"BarycenterHeuristic/BarycenterState",658);wAn(1802,1,MYn,Fd),MWn.ue=function(n,t){return MEn(this.a,BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(C3n,"BarycenterHeuristic/lambda$0$Type",1802),wAn(816,1,N1n,UEn),MWn.Mf=function(){},MWn.Nf=function(n,t,e,i,r,c){},MWn.Qf=function(n,t,e,i){},MWn.Of=function(n,t){this.a[n]=x8(Pmt,{3:1,4:1,5:1,2018:1},658,t[n].length,0,1),this.b[n]=x8(Lmt,{3:1,4:1,5:1,2019:1},233,t[n].length,0,1)},MWn.Pf=function(n,t,e){Dgn(this,e[n][t],!0)},MWn.c=!1,vX(C3n,"ForsterConstraintResolver",816),wAn(233,1,{233:1},DY,uGn),MWn.Ib=function(){var n,t;for((t=new Ck).a+="[",n=0;n<this.d.length;n++)oO(t,$pn(this.d[n])),null!=lL(this.g,this.d[0]).a&&oO(oO((t.a+="<",t),ZI(lL(this.g,this.d[0]).a)),">"),n<this.d.length-1&&(t.a+=FWn);return(t.a+="]",t).a},MWn.a=0,MWn.c=0,MWn.f=0;var Cmt,Imt,Omt,Amt,$mt,Lmt=vX(C3n,"ForsterConstraintResolver/ConstraintGroup",233);wAn(1797,1,lVn,qd),MWn.td=function(n){Dgn(this.a,BB(n,10),!1)},vX(C3n,"ForsterConstraintResolver/lambda$0$Type",1797),wAn(214,1,{214:1,225:1},CGn),MWn.Nf=function(n,t,e,i,r,c){},MWn.Of=function(n,t){},MWn.Mf=function(){this.r=x8(ANt,hQn,25,this.n,15,1)},MWn.Pf=function(n,t,e){var i;(i=e[n][t].e)&&WB(this.b,i)},MWn.Qf=function(n,t,e,i){++this.n},MWn.Ib=function(){return izn(this.e,new Rv)},MWn.g=!1,MWn.i=!1,MWn.n=0,MWn.s=!1,vX(C3n,"GraphInfoHolder",214),wAn(1832,1,N1n,Pc),MWn.Nf=function(n,t,e,i,r,c){},MWn.Of=function(n,t){},MWn.Qf=function(n,t,e,i){},MWn._f=function(n,t,e){return e&&t>0?uZ(this.a,n[t-1],n[t]):!e&&t<n.length-1?uZ(this.a,n[t],n[t+1]):yrn(this.a,n[t],e?(kUn(),CIt):(kUn(),oIt)),bLn(this,n,t,e)},MWn.Mf=function(){this.d=x8(ANt,hQn,25,this.c,15,1),this.a=new QK(this.d)},MWn.Pf=function(n,t,e){var i;i=e[n][t],this.c+=i.j.c.length},MWn.c=0,vX(C3n,"GreedyPortDistributor",1832),wAn(1401,1,E3n,df),MWn.Yf=function(n){return Xhn(BB(n,37))},MWn.pf=function(n,t){XGn(BB(n,37),t)},vX(C3n,"InteractiveCrossingMinimizer",1401),wAn(1402,1,MYn,Gd),MWn.ue=function(n,t){return Hjn(this,BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(C3n,"InteractiveCrossingMinimizer/1",1402),wAn(507,1,{507:1,123:1,51:1},Ny),MWn.Yf=function(n){var t;return BB(n,37),dq(t=kA(Imt),(yMn(),_at),(lWn(),Bot)),t},MWn.pf=function(n,t){P_n(this,BB(n,37),t)},MWn.e=0,vX(C3n,"LayerSweepCrossingMinimizer",507),wAn(1398,1,lVn,zd),MWn.td=function(n){wBn(this.a,BB(n,214))},vX(C3n,"LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type",1398),wAn(1399,1,lVn,Ud),MWn.td=function(n){Ohn(this.a,BB(n,214))},vX(C3n,"LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type",1399),wAn(1400,1,lVn,Xd),MWn.td=function(n){pFn(this.a,BB(n,214))},vX(C3n,"LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type",1400),wAn(454,22,{3:1,35:1,22:1,454:1},YP);var Nmt,xmt=Ben(C3n,"LayerSweepCrossingMinimizer/CrossMinType",454,Unt,D1,MF);wAn(1397,1,DVn,Ac),MWn.Mb=function(n){return _cn(),0==BB(n,29).a.c.length},vX(C3n,"LayerSweepCrossingMinimizer/lambda$0$Type",1397),wAn(1799,1,N1n,aZ),MWn.Mf=function(){},MWn.Nf=function(n,t,e,i,r,c){},MWn.Qf=function(n,t,e,i){},MWn.Of=function(n,t){t[n][0].c.p=n,this.b[n]=x8(_mt,{3:1,4:1,5:1,1944:1},659,t[n].length,0,1)},MWn.Pf=function(n,t,e){e[n][t].p=t,$X(this.b[n],t,new $c)},vX(C3n,"LayerSweepTypeDecider",1799),wAn(659,1,{659:1},$c),MWn.Ib=function(){return"NodeInfo [connectedEdges="+this.a+", hierarchicalInfluence="+this.b+", randomInfluence="+this.c+"]"},MWn.a=0,MWn.b=0,MWn.c=0;var Dmt,Rmt,Kmt,_mt=vX(C3n,"LayerSweepTypeDecider/NodeInfo",659);wAn(1800,1,qYn,Lc),MWn.Lb=function(n){return zN(new m6(BB(n,11).b))},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return zN(new m6(BB(n,11).b))},vX(C3n,"LayerSweepTypeDecider/lambda$0$Type",1800),wAn(1801,1,qYn,Nc),MWn.Lb=function(n){return zN(new m6(BB(n,11).b))},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return zN(new m6(BB(n,11).b))},vX(C3n,"LayerSweepTypeDecider/lambda$1$Type",1801),wAn(1833,402,S3n,Dj),MWn.$f=function(n,t,e){var i,r,c,a,u,o,s,h,f;switch(s=this.g,e.g){case 1:for(i=0,r=0,o=new Wb(n.j);o.a<o.c.c.length;)0!=(a=BB(n0(o),11)).e.c.length&&(++i,a.j==(kUn(),sIt)&&++r);for(c=t+r,f=t+i,u=xwn(n,(ain(),Hvt)).Kc();u.Ob();)(a=BB(u.Pb(),11)).j==(kUn(),sIt)?(s[a.p]=c,--c):(s[a.p]=f,--f);return i;case 2:for(h=0,u=xwn(n,(ain(),qvt)).Kc();u.Ob();)++h,s[(a=BB(u.Pb(),11)).p]=t+h;return h;default:throw Hp(new wv)}},vX(C3n,"LayerTotalPortDistributor",1833),wAn(660,817,{660:1,225:1},prn),MWn.ag=function(n,t,e,i){e?sjn(this,n):(Djn(this,n,i),ZGn(this,n,t)),n.c.length>1&&(qy(TD(mMn(vW((l1(0,n.c.length),BB(n.c[0],10))),(HXn(),xdt))))?R$n(n,this.d,this):(SQ(),m$(n,this.d)),qy(TD(mMn(vW((l1(0,n.c.length),BB(n.c[0],10))),xdt)))||Ban(this.e,n))},vX(C3n,"ModelOrderBarycenterHeuristic",660),wAn(1803,1,MYn,Wd),MWn.ue=function(n,t){return KSn(this.a,BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(C3n,"ModelOrderBarycenterHeuristic/lambda$0$Type",1803),wAn(1403,1,E3n,jf),MWn.Yf=function(n){var t;return BB(n,37),dq(t=kA(Dmt),(yMn(),_at),(lWn(),Bot)),t},MWn.pf=function(n,t){mY((BB(n,37),t))},vX(C3n,"NoCrossingMinimizer",1403),wAn(796,402,S3n,Rj),MWn.$f=function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;switch(f=this.g,e.g){case 1:for(r=0,c=0,h=new Wb(n.j);h.a<h.c.c.length;)0!=(o=BB(n0(h),11)).e.c.length&&(++r,o.j==(kUn(),sIt)&&++c);for(a=t+c*(i=1/(r+1)),b=t+1-i,s=xwn(n,(ain(),Hvt)).Kc();s.Ob();)(o=BB(s.Pb(),11)).j==(kUn(),sIt)?(f[o.p]=a,a-=i):(f[o.p]=b,b-=i);break;case 2:for(u=0,h=new Wb(n.j);h.a<h.c.c.length;)0==(o=BB(n0(h),11)).g.c.length||++u;for(l=t+(i=1/(u+1)),s=xwn(n,(ain(),qvt)).Kc();s.Ob();)f[(o=BB(s.Pb(),11)).p]=l,l+=i;break;default:throw Hp(new _y("Port type is undefined"))}return 1},vX(C3n,"NodeRelativePortDistributor",796),wAn(807,1,{},Vz,HMn),vX(C3n,"SweepCopy",807),wAn(1798,1,N1n,wdn),MWn.Of=function(n,t){},MWn.Mf=function(){var n;n=x8(ANt,hQn,25,this.f,15,1),this.d=new eg(n),this.a=new QK(n)},MWn.Nf=function(n,t,e,i,r,c){var a;a=BB(xq(c[n][t].j,e),11),r.c==a&&r.c.i.c==r.d.i.c&&++this.e[n]},MWn.Pf=function(n,t,e){var i;i=e[n][t],this.c[n]=this.c[n]|i.k==(uSn(),Iut)},MWn.Qf=function(n,t,e,i){var r;(r=BB(xq(i[n][t].j,e),11)).p=this.f++,r.g.c.length+r.e.c.length>1&&(r.j==(kUn(),oIt)?this.b[n]=!0:r.j==CIt&&n>0&&(this.b[n-1]=!0))},MWn.f=0,vX(L1n,"AllCrossingsCounter",1798),wAn(587,1,{},mrn),MWn.b=0,MWn.d=0,vX(L1n,"BinaryIndexedTree",587),wAn(524,1,{},QK),vX(L1n,"CrossingsCounter",524),wAn(1906,1,MYn,Vd),MWn.ue=function(n,t){return Xq(this.a,BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(L1n,"CrossingsCounter/lambda$0$Type",1906),wAn(1907,1,MYn,Qd),MWn.ue=function(n,t){return Wq(this.a,BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(L1n,"CrossingsCounter/lambda$1$Type",1907),wAn(1908,1,MYn,Yd),MWn.ue=function(n,t){return Vq(this.a,BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(L1n,"CrossingsCounter/lambda$2$Type",1908),wAn(1909,1,MYn,Jd),MWn.ue=function(n,t){return Qq(this.a,BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(L1n,"CrossingsCounter/lambda$3$Type",1909),wAn(1910,1,lVn,Zd),MWn.td=function(n){p7(this.a,BB(n,11))},vX(L1n,"CrossingsCounter/lambda$4$Type",1910),wAn(1911,1,DVn,ng),MWn.Mb=function(n){return yI(this.a,BB(n,11))},vX(L1n,"CrossingsCounter/lambda$5$Type",1911),wAn(1912,1,lVn,tg),MWn.td=function(n){mI(this,n)},vX(L1n,"CrossingsCounter/lambda$6$Type",1912),wAn(1913,1,lVn,ZP),MWn.td=function(n){var t;hH(),d3(this.b,(t=this.a,BB(n,11),t))},vX(L1n,"CrossingsCounter/lambda$7$Type",1913),wAn(826,1,qYn,xc),MWn.Lb=function(n){return hH(),Lx(BB(n,11),(hWn(),Elt))},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return hH(),Lx(BB(n,11),(hWn(),Elt))},vX(L1n,"CrossingsCounter/lambda$8$Type",826),wAn(1905,1,{},eg),vX(L1n,"HyperedgeCrossingsCounter",1905),wAn(467,1,{35:1,467:1},DR),MWn.wd=function(n){return vgn(this,BB(n,467))},MWn.b=0,MWn.c=0,MWn.e=0,MWn.f=0;var Fmt=vX(L1n,"HyperedgeCrossingsCounter/Hyperedge",467);wAn(362,1,{35:1,362:1},qV),MWn.wd=function(n){return l$n(this,BB(n,362))},MWn.b=0,MWn.c=0;var Bmt,Hmt,qmt=vX(L1n,"HyperedgeCrossingsCounter/HyperedgeCorner",362);wAn(523,22,{3:1,35:1,22:1,523:1},JP);var Gmt,zmt,Umt,Xmt,Wmt,Vmt=Ben(L1n,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",523,Unt,XY,SF);wAn(1405,1,E3n,lf),MWn.Yf=function(n){return BB(mMn(BB(n,37),(hWn(),Zft)),21).Hc((bDn(),lft))?zmt:null},MWn.pf=function(n,t){ljn(this,BB(n,37),t)},vX(I3n,"InteractiveNodePlacer",1405),wAn(1406,1,E3n,ff),MWn.Yf=function(n){return BB(mMn(BB(n,37),(hWn(),Zft)),21).Hc((bDn(),lft))?Umt:null},MWn.pf=function(n,t){jmn(this,BB(n,37),t)},vX(I3n,"LinearSegmentsNodePlacer",1406),wAn(257,1,{35:1,257:1},rm),MWn.wd=function(n){return uj(this,BB(n,257))},MWn.Fb=function(n){var t;return!!cL(n,257)&&(t=BB(n,257),this.b==t.b)},MWn.Hb=function(){return this.b},MWn.Ib=function(){return"ls"+LMn(this.e)},MWn.a=0,MWn.b=0,MWn.c=-1,MWn.d=-1,MWn.g=0;var Qmt,Ymt=vX(I3n,"LinearSegmentsNodePlacer/LinearSegment",257);wAn(1408,1,E3n,_G),MWn.Yf=function(n){return BB(mMn(BB(n,37),(hWn(),Zft)),21).Hc((bDn(),lft))?Qmt:null},MWn.pf=function(n,t){SXn(this,BB(n,37),t)},MWn.b=0,MWn.g=0,vX(I3n,"NetworkSimplexPlacer",1408),wAn(1427,1,MYn,Dc),MWn.ue=function(n,t){return E$(BB(n,19).a,BB(t,19).a)},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(I3n,"NetworkSimplexPlacer/0methodref$compare$Type",1427),wAn(1429,1,MYn,Rc),MWn.ue=function(n,t){return E$(BB(n,19).a,BB(t,19).a)},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(I3n,"NetworkSimplexPlacer/1methodref$compare$Type",1429),wAn(649,1,{649:1},nC);var Jmt=vX(I3n,"NetworkSimplexPlacer/EdgeRep",649);wAn(401,1,{401:1},GV),MWn.b=!1;var Zmt,nyt,tyt,eyt=vX(I3n,"NetworkSimplexPlacer/NodeRep",401);wAn(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},um),vX(I3n,"NetworkSimplexPlacer/Path",508),wAn(1409,1,{},Kc),MWn.Kb=function(n){return BB(n,17).d.i.k},vX(I3n,"NetworkSimplexPlacer/Path/lambda$0$Type",1409),wAn(1410,1,DVn,_c),MWn.Mb=function(n){return BB(n,267)==(uSn(),Put)},vX(I3n,"NetworkSimplexPlacer/Path/lambda$1$Type",1410),wAn(1411,1,{},Fc),MWn.Kb=function(n){return BB(n,17).d.i},vX(I3n,"NetworkSimplexPlacer/Path/lambda$2$Type",1411),wAn(1412,1,DVn,ig),MWn.Mb=function(n){return HD(tdn(BB(n,10)))},vX(I3n,"NetworkSimplexPlacer/Path/lambda$3$Type",1412),wAn(1413,1,DVn,Bc),MWn.Mb=function(n){return hq(BB(n,11))},vX(I3n,"NetworkSimplexPlacer/lambda$0$Type",1413),wAn(1414,1,lVn,tC),MWn.td=function(n){D$(this.a,this.b,BB(n,11))},vX(I3n,"NetworkSimplexPlacer/lambda$1$Type",1414),wAn(1423,1,lVn,rg),MWn.td=function(n){WCn(this.a,BB(n,17))},vX(I3n,"NetworkSimplexPlacer/lambda$10$Type",1423),wAn(1424,1,{},Hc),MWn.Kb=function(n){return BZ(),new Rq(null,new w1(BB(n,29).a,16))},vX(I3n,"NetworkSimplexPlacer/lambda$11$Type",1424),wAn(1425,1,lVn,cg),MWn.td=function(n){BDn(this.a,BB(n,10))},vX(I3n,"NetworkSimplexPlacer/lambda$12$Type",1425),wAn(1426,1,{},qc),MWn.Kb=function(n){return BZ(),iln(BB(n,121).e)},vX(I3n,"NetworkSimplexPlacer/lambda$13$Type",1426),wAn(1428,1,{},Gc),MWn.Kb=function(n){return BZ(),iln(BB(n,121).e)},vX(I3n,"NetworkSimplexPlacer/lambda$15$Type",1428),wAn(1430,1,DVn,zc),MWn.Mb=function(n){return BZ(),BB(n,401).c.k==(uSn(),Cut)},vX(I3n,"NetworkSimplexPlacer/lambda$17$Type",1430),wAn(1431,1,DVn,Uc),MWn.Mb=function(n){return BZ(),BB(n,401).c.j.c.length>1},vX(I3n,"NetworkSimplexPlacer/lambda$18$Type",1431),wAn(1432,1,lVn,zV),MWn.td=function(n){cwn(this.c,this.b,this.d,this.a,BB(n,401))},MWn.c=0,MWn.d=0,vX(I3n,"NetworkSimplexPlacer/lambda$19$Type",1432),wAn(1415,1,{},Xc),MWn.Kb=function(n){return BZ(),new Rq(null,new w1(BB(n,29).a,16))},vX(I3n,"NetworkSimplexPlacer/lambda$2$Type",1415),wAn(1433,1,lVn,ag),MWn.td=function(n){N$(this.a,BB(n,11))},MWn.a=0,vX(I3n,"NetworkSimplexPlacer/lambda$20$Type",1433),wAn(1434,1,{},Wc),MWn.Kb=function(n){return BZ(),new Rq(null,new w1(BB(n,29).a,16))},vX(I3n,"NetworkSimplexPlacer/lambda$21$Type",1434),wAn(1435,1,lVn,ug),MWn.td=function(n){dL(this.a,BB(n,10))},vX(I3n,"NetworkSimplexPlacer/lambda$22$Type",1435),wAn(1436,1,DVn,Vc),MWn.Mb=function(n){return HD(n)},vX(I3n,"NetworkSimplexPlacer/lambda$23$Type",1436),wAn(1437,1,{},Qc),MWn.Kb=function(n){return BZ(),new Rq(null,new w1(BB(n,29).a,16))},vX(I3n,"NetworkSimplexPlacer/lambda$24$Type",1437),wAn(1438,1,DVn,og),MWn.Mb=function(n){return EO(this.a,BB(n,10))},vX(I3n,"NetworkSimplexPlacer/lambda$25$Type",1438),wAn(1439,1,lVn,eC),MWn.td=function(n){MPn(this.a,this.b,BB(n,10))},vX(I3n,"NetworkSimplexPlacer/lambda$26$Type",1439),wAn(1440,1,DVn,Yc),MWn.Mb=function(n){return BZ(),!b5(BB(n,17))},vX(I3n,"NetworkSimplexPlacer/lambda$27$Type",1440),wAn(1441,1,DVn,Jc),MWn.Mb=function(n){return BZ(),!b5(BB(n,17))},vX(I3n,"NetworkSimplexPlacer/lambda$28$Type",1441),wAn(1442,1,{},sg),MWn.Ce=function(n,t){return sL(this.a,BB(n,29),BB(t,29))},vX(I3n,"NetworkSimplexPlacer/lambda$29$Type",1442),wAn(1416,1,{},Zc),MWn.Kb=function(n){return BZ(),new Rq(null,new zU(new oz(ZL(lbn(BB(n,10)).a.Kc(),new h))))},vX(I3n,"NetworkSimplexPlacer/lambda$3$Type",1416),wAn(1417,1,DVn,na),MWn.Mb=function(n){return BZ(),t2(BB(n,17))},vX(I3n,"NetworkSimplexPlacer/lambda$4$Type",1417),wAn(1418,1,lVn,hg),MWn.td=function(n){iBn(this.a,BB(n,17))},vX(I3n,"NetworkSimplexPlacer/lambda$5$Type",1418),wAn(1419,1,{},ta),MWn.Kb=function(n){return BZ(),new Rq(null,new w1(BB(n,29).a,16))},vX(I3n,"NetworkSimplexPlacer/lambda$6$Type",1419),wAn(1420,1,DVn,ea),MWn.Mb=function(n){return BZ(),BB(n,10).k==(uSn(),Cut)},vX(I3n,"NetworkSimplexPlacer/lambda$7$Type",1420),wAn(1421,1,{},ia),MWn.Kb=function(n){return BZ(),new Rq(null,new zU(new oz(ZL(hbn(BB(n,10)).a.Kc(),new h))))},vX(I3n,"NetworkSimplexPlacer/lambda$8$Type",1421),wAn(1422,1,DVn,ra),MWn.Mb=function(n){return BZ(),UH(BB(n,17))},vX(I3n,"NetworkSimplexPlacer/lambda$9$Type",1422),wAn(1404,1,E3n,Cf),MWn.Yf=function(n){return BB(mMn(BB(n,37),(hWn(),Zft)),21).Hc((bDn(),lft))?Zmt:null},MWn.pf=function(n,t){kHn(BB(n,37),t)},vX(I3n,"SimpleNodePlacer",1404),wAn(180,1,{180:1},qKn),MWn.Ib=function(){var n;return n="",this.c==(gJ(),tyt)?n+=aJn:this.c==nyt&&(n+=cJn),this.o==(oZ(),ryt)?n+=pJn:this.o==cyt?n+="UP":n+="BALANCED",n},vX($3n,"BKAlignedLayout",180),wAn(516,22,{3:1,35:1,22:1,516:1},cC);var iyt,ryt,cyt,ayt=Ben($3n,"BKAlignedLayout/HDirection",516,Unt,VY,PF);wAn(515,22,{3:1,35:1,22:1,515:1},rC);var uyt,oyt,syt,hyt,fyt,lyt,byt,wyt,dyt,gyt,pyt,vyt,myt,yyt,kyt,jyt,Eyt,Tyt,Myt,Syt=Ben($3n,"BKAlignedLayout/VDirection",515,Unt,QY,CF);wAn(1634,1,{},iC),vX($3n,"BKAligner",1634),wAn(1637,1,{},Jyn),vX($3n,"BKCompactor",1637),wAn(654,1,{654:1},ca),MWn.a=0,vX($3n,"BKCompactor/ClassEdge",654),wAn(458,1,{458:1},cm),MWn.a=null,MWn.b=0,vX($3n,"BKCompactor/ClassNode",458),wAn(1407,1,E3n,jI),MWn.Yf=function(n){return BB(mMn(BB(n,37),(hWn(),Zft)),21).Hc((bDn(),lft))?oyt:null},MWn.pf=function(n,t){rWn(this,BB(n,37),t)},MWn.d=!1,vX($3n,"BKNodePlacer",1407),wAn(1635,1,{},aa),MWn.d=0,vX($3n,"NeighborhoodInformation",1635),wAn(1636,1,MYn,fg),MWn.ue=function(n,t){return Mtn(this,BB(n,46),BB(t,46))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX($3n,"NeighborhoodInformation/NeighborComparator",1636),wAn(808,1,{}),vX($3n,"ThresholdStrategy",808),wAn(1763,808,{},dm),MWn.bg=function(n,t,e){return this.a.o==(oZ(),cyt)?RQn:KQn},MWn.cg=function(){},vX($3n,"ThresholdStrategy/NullThresholdStrategy",1763),wAn(579,1,{579:1},aC),MWn.c=!1,MWn.d=!1,vX($3n,"ThresholdStrategy/Postprocessable",579),wAn(1764,808,{},gm),MWn.bg=function(n,t,e){var i,r,c;return r=t==e,i=this.a.a[e.p]==t,r||i?(c=n,this.a.c,gJ(),r&&(c=THn(this,t,!0)),!isNaN(c)&&!isFinite(c)&&i&&(c=THn(this,e,!1)),c):n},MWn.cg=function(){for(var n,t,e;0!=this.d.b;)(t=cFn(this,e=BB(PJ(this.d),579))).a&&(n=t.a,(qy(this.a.f[this.a.g[e.b.p].p])||b5(n)||n.c.i.c!=n.d.i.c)&&(b$n(this,e)||rA(this.e,e)));for(;0!=this.e.a.c.length;)b$n(this,BB(thn(this.e),579))},vX($3n,"ThresholdStrategy/SimpleThresholdStrategy",1764),wAn(635,1,{635:1,246:1,234:1},ua),MWn.Kf=function(){return Tan(this)},MWn.Xf=function(){return Tan(this)},vX(L3n,"EdgeRouterFactory",635),wAn(1458,1,E3n,If),MWn.Yf=function(n){return Uxn(BB(n,37))},MWn.pf=function(n,t){DHn(BB(n,37),t)},vX(L3n,"OrthogonalEdgeRouter",1458),wAn(1451,1,E3n,EI),MWn.Yf=function(n){return Ejn(BB(n,37))},MWn.pf=function(n,t){OUn(this,BB(n,37),t)},vX(L3n,"PolylineEdgeRouter",1451),wAn(1452,1,qYn,oa),MWn.Lb=function(n){return Qan(BB(n,10))},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return Qan(BB(n,10))},vX(L3n,"PolylineEdgeRouter/1",1452),wAn(1809,1,DVn,sa),MWn.Mb=function(n){return BB(n,129).c==(O6(),Tyt)},vX(N3n,"HyperEdgeCycleDetector/lambda$0$Type",1809),wAn(1810,1,{},ha),MWn.Ge=function(n){return BB(n,129).d},vX(N3n,"HyperEdgeCycleDetector/lambda$1$Type",1810),wAn(1811,1,DVn,fa),MWn.Mb=function(n){return BB(n,129).c==(O6(),Tyt)},vX(N3n,"HyperEdgeCycleDetector/lambda$2$Type",1811),wAn(1812,1,{},la),MWn.Ge=function(n){return BB(n,129).d},vX(N3n,"HyperEdgeCycleDetector/lambda$3$Type",1812),wAn(1813,1,{},ba),MWn.Ge=function(n){return BB(n,129).d},vX(N3n,"HyperEdgeCycleDetector/lambda$4$Type",1813),wAn(1814,1,{},wa),MWn.Ge=function(n){return BB(n,129).d},vX(N3n,"HyperEdgeCycleDetector/lambda$5$Type",1814),wAn(112,1,{35:1,112:1},Fan),MWn.wd=function(n){return oj(this,BB(n,112))},MWn.Fb=function(n){var t;return!!cL(n,112)&&(t=BB(n,112),this.g==t.g)},MWn.Hb=function(){return this.g},MWn.Ib=function(){var n,t,e,i;for(n=new lN("{"),i=new Wb(this.n);i.a<i.c.c.length;)null==(t=gyn((e=BB(n0(i),11)).i))&&(t="n"+AK(e.i)),n.a+=""+t,i.a<i.c.c.length&&(n.a+=",");return n.a+="}",n.a},MWn.a=0,MWn.b=0,MWn.c=NaN,MWn.d=0,MWn.g=0,MWn.i=0,MWn.o=0,MWn.s=NaN,vX(N3n,"HyperEdgeSegment",112),wAn(129,1,{129:1},zZ),MWn.Ib=function(){return this.a+"->"+this.b+" ("+wx(this.c)+")"},MWn.d=0,vX(N3n,"HyperEdgeSegmentDependency",129),wAn(520,22,{3:1,35:1,22:1,520:1},uC);var Pyt,Cyt,Iyt,Oyt,Ayt,$yt,Lyt,Nyt,xyt=Ben(N3n,"HyperEdgeSegmentDependency/DependencyType",520,Unt,WY,IF);wAn(1815,1,{},lg),vX(N3n,"HyperEdgeSegmentSplitter",1815),wAn(1816,1,{},zj),MWn.a=0,MWn.b=0,vX(N3n,"HyperEdgeSegmentSplitter/AreaRating",1816),wAn(329,1,{329:1},kB),MWn.a=0,MWn.b=0,MWn.c=0,vX(N3n,"HyperEdgeSegmentSplitter/FreeArea",329),wAn(1817,1,MYn,ja),MWn.ue=function(n,t){return OK(BB(n,112),BB(t,112))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(N3n,"HyperEdgeSegmentSplitter/lambda$0$Type",1817),wAn(1818,1,lVn,XV),MWn.td=function(n){n4(this.a,this.d,this.c,this.b,BB(n,112))},MWn.b=0,vX(N3n,"HyperEdgeSegmentSplitter/lambda$1$Type",1818),wAn(1819,1,{},Ea),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,112).e,16))},vX(N3n,"HyperEdgeSegmentSplitter/lambda$2$Type",1819),wAn(1820,1,{},Ta),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,112).j,16))},vX(N3n,"HyperEdgeSegmentSplitter/lambda$3$Type",1820),wAn(1821,1,{},Ma),MWn.Fe=function(n){return Gy(MD(n))},vX(N3n,"HyperEdgeSegmentSplitter/lambda$4$Type",1821),wAn(655,1,{},fX),MWn.a=0,MWn.b=0,MWn.c=0,vX(N3n,"OrthogonalRoutingGenerator",655),wAn(1638,1,{},Sa),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,112).e,16))},vX(N3n,"OrthogonalRoutingGenerator/lambda$0$Type",1638),wAn(1639,1,{},Pa),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,112).j,16))},vX(N3n,"OrthogonalRoutingGenerator/lambda$1$Type",1639),wAn(661,1,{}),vX(x3n,"BaseRoutingDirectionStrategy",661),wAn(1807,661,{},pm),MWn.dg=function(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g;if(!n.r||n.q)for(f=t+n.o*i,h=new Wb(n.n);h.a<h.c.c.length;)for(s=BB(n0(h),11),l=Aon(Pun(Gk(PMt,1),sVn,8,0,[s.i.n,s.n,s.a])).a,o=new Wb(s.g);o.a<o.c.c.length;)b5(u=BB(n0(o),17))||(d=u.d,g=Aon(Pun(Gk(PMt,1),sVn,8,0,[d.i.n,d.n,d.a])).a,e.Math.abs(l-g)>lZn&&(c=n,r=new xC(l,a=f),DH(u.a,r),F_n(this,u,c,r,!1),(b=n.r)&&(r=new xC(w=Gy(MD(Dpn(b.e,0))),a),DH(u.a,r),F_n(this,u,c,r,!1),c=b,r=new xC(w,a=t+b.o*i),DH(u.a,r),F_n(this,u,c,r,!1)),r=new xC(g,a),DH(u.a,r),F_n(this,u,c,r,!1)))},MWn.eg=function(n){return n.i.n.a+n.n.a+n.a.a},MWn.fg=function(){return kUn(),SIt},MWn.gg=function(){return kUn(),sIt},vX(x3n,"NorthToSouthRoutingStrategy",1807),wAn(1808,661,{},vm),MWn.dg=function(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g;if(!n.r||n.q)for(f=t-n.o*i,h=new Wb(n.n);h.a<h.c.c.length;)for(s=BB(n0(h),11),l=Aon(Pun(Gk(PMt,1),sVn,8,0,[s.i.n,s.n,s.a])).a,o=new Wb(s.g);o.a<o.c.c.length;)b5(u=BB(n0(o),17))||(d=u.d,g=Aon(Pun(Gk(PMt,1),sVn,8,0,[d.i.n,d.n,d.a])).a,e.Math.abs(l-g)>lZn&&(c=n,r=new xC(l,a=f),DH(u.a,r),F_n(this,u,c,r,!1),(b=n.r)&&(r=new xC(w=Gy(MD(Dpn(b.e,0))),a),DH(u.a,r),F_n(this,u,c,r,!1),c=b,r=new xC(w,a=t-b.o*i),DH(u.a,r),F_n(this,u,c,r,!1)),r=new xC(g,a),DH(u.a,r),F_n(this,u,c,r,!1)))},MWn.eg=function(n){return n.i.n.a+n.n.a+n.a.a},MWn.fg=function(){return kUn(),sIt},MWn.gg=function(){return kUn(),SIt},vX(x3n,"SouthToNorthRoutingStrategy",1808),wAn(1806,661,{},mm),MWn.dg=function(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g;if(!n.r||n.q)for(f=t+n.o*i,h=new Wb(n.n);h.a<h.c.c.length;)for(s=BB(n0(h),11),l=Aon(Pun(Gk(PMt,1),sVn,8,0,[s.i.n,s.n,s.a])).b,o=new Wb(s.g);o.a<o.c.c.length;)b5(u=BB(n0(o),17))||(d=u.d,g=Aon(Pun(Gk(PMt,1),sVn,8,0,[d.i.n,d.n,d.a])).b,e.Math.abs(l-g)>lZn&&(c=n,r=new xC(a=f,l),DH(u.a,r),F_n(this,u,c,r,!0),(b=n.r)&&(r=new xC(a,w=Gy(MD(Dpn(b.e,0)))),DH(u.a,r),F_n(this,u,c,r,!0),c=b,r=new xC(a=t+b.o*i,w),DH(u.a,r),F_n(this,u,c,r,!0)),r=new xC(a,g),DH(u.a,r),F_n(this,u,c,r,!0)))},MWn.eg=function(n){return n.i.n.b+n.n.b+n.a.b},MWn.fg=function(){return kUn(),oIt},MWn.gg=function(){return kUn(),CIt},vX(x3n,"WestToEastRoutingStrategy",1806),wAn(813,1,{},oBn),MWn.Ib=function(){return LMn(this.a)},MWn.b=0,MWn.c=!1,MWn.d=!1,MWn.f=0,vX(R3n,"NubSpline",813),wAn(407,1,{407:1},Exn,wJ),vX(R3n,"NubSpline/PolarCP",407),wAn(1453,1,E3n,hyn),MWn.Yf=function(n){return rTn(BB(n,37))},MWn.pf=function(n,t){cXn(this,BB(n,37),t)},vX(R3n,"SplineEdgeRouter",1453),wAn(268,1,{268:1},S6),MWn.Ib=function(){return this.a+" ->("+this.c+") "+this.b},MWn.c=0,vX(R3n,"SplineEdgeRouter/Dependency",268),wAn(455,22,{3:1,35:1,22:1,455:1},oC);var Dyt,Ryt,Kyt,_yt,Fyt,Byt=Ben(R3n,"SplineEdgeRouter/SideToProcess",455,Unt,YY,OF);wAn(1454,1,DVn,ya),MWn.Mb=function(n){return gxn(),!BB(n,128).o},vX(R3n,"SplineEdgeRouter/lambda$0$Type",1454),wAn(1455,1,{},ma),MWn.Ge=function(n){return gxn(),BB(n,128).v+1},vX(R3n,"SplineEdgeRouter/lambda$1$Type",1455),wAn(1456,1,lVn,sC),MWn.td=function(n){iq(this.a,this.b,BB(n,46))},vX(R3n,"SplineEdgeRouter/lambda$2$Type",1456),wAn(1457,1,lVn,hC),MWn.td=function(n){rq(this.a,this.b,BB(n,46))},vX(R3n,"SplineEdgeRouter/lambda$3$Type",1457),wAn(128,1,{35:1,128:1},tCn,hqn),MWn.wd=function(n){return sj(this,BB(n,128))},MWn.b=0,MWn.e=!1,MWn.f=0,MWn.g=0,MWn.j=!1,MWn.k=!1,MWn.n=0,MWn.o=!1,MWn.p=!1,MWn.q=!1,MWn.s=0,MWn.u=0,MWn.v=0,MWn.F=0,vX(R3n,"SplineSegment",128),wAn(459,1,{459:1},ka),MWn.a=0,MWn.b=!1,MWn.c=!1,MWn.d=!1,MWn.e=!1,MWn.f=0,vX(R3n,"SplineSegment/EdgeInformation",459),wAn(1234,1,{},da),vX(H3n,iZn,1234),wAn(1235,1,MYn,ga),MWn.ue=function(n,t){return IIn(BB(n,135),BB(t,135))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(H3n,rZn,1235),wAn(1233,1,{},AE),vX(H3n,"MrTree",1233),wAn(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},fC),MWn.Kf=function(){return AIn(this)},MWn.Xf=function(){return AIn(this)};var Hyt,qyt=Ben(H3n,"TreeLayoutPhases",393,Unt,j3,AF);wAn(1130,209,NJn,_R),MWn.Ze=function(n,t){var e,i,r,c,a,u;for(qy(TD(ZAn(n,(CAn(),Ckt))))||jJ(new Tw((GM(),new Dy(n)))),qan(a=new P6,n),hon(a,(qqn(),skt),n),v_n(n,a,u=new xp),W_n(n,a,u),c=a,i=new Wb(r=x_n(this.a,c));i.a<i.c.c.length;)e=BB(n0(i),135),WEn(this.b,e,mcn(t,1/r.c.length));Izn(c=tWn(r))},vX(H3n,"TreeLayoutProvider",1130),wAn(1847,1,pVn,pa),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return SQ(),LT(),bet},vX(H3n,"TreeUtil/1",1847),wAn(1848,1,pVn,va),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return SQ(),LT(),bet},vX(H3n,"TreeUtil/2",1848),wAn(502,134,{3:1,502:1,94:1,134:1}),MWn.g=0,vX(q3n,"TGraphElement",502),wAn(188,502,{3:1,188:1,502:1,94:1,134:1},UQ),MWn.Ib=function(){return this.b&&this.c?g0(this.b)+"->"+g0(this.c):"e_"+nsn(this)},vX(q3n,"TEdge",188),wAn(135,134,{3:1,135:1,94:1,134:1},P6),MWn.Ib=function(){var n,t,e,i,r;for(r=null,i=spn(this.b,0);i.b!=i.d.c;)r+=(null==(e=BB(b3(i),86)).c||0==e.c.length?"n_"+e.g:"n_"+e.c)+"\n";for(t=spn(this.a,0);t.b!=t.d.c;)r+=((n=BB(b3(t),188)).b&&n.c?g0(n.b)+"->"+g0(n.c):"e_"+nsn(n))+"\n";return r};var Gyt=vX(q3n,"TGraph",135);wAn(633,502,{3:1,502:1,633:1,94:1,134:1}),vX(q3n,"TShape",633),wAn(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},csn),MWn.Ib=function(){return g0(this)};var zyt,Uyt,Xyt,Wyt,Vyt,Qyt,Yyt=vX(q3n,"TNode",86);wAn(255,1,pVn,bg),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new wg(spn(this.a.d,0))},vX(q3n,"TNode/2",255),wAn(358,1,QWn,wg),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return BB(b3(this.a),188).c},MWn.Ob=function(){return EE(this.a)},MWn.Qb=function(){mtn(this.a)},vX(q3n,"TNode/2/1",358),wAn(1840,1,n1n,KR),MWn.pf=function(n,t){xFn(this,BB(n,135),t)},vX(G3n,"FanProcessor",1840),wAn(327,22,{3:1,35:1,22:1,327:1,234:1},lC),MWn.Kf=function(){switch(this.g){case 0:return new Qm;case 1:return new KR;case 2:return new Oa;case 3:return new Ca;case 4:return new $a;case 5:return new La;default:throw Hp(new _y(M1n+(null!=this.f?this.f:""+this.g)))}};var Jyt,Zyt,nkt,tkt,ekt,ikt,rkt,ckt,akt,ukt,okt,skt,hkt,fkt,lkt,bkt,wkt,dkt,gkt,pkt,vkt,mkt,ykt,kkt,jkt,Ekt,Tkt,Mkt,Skt,Pkt,Ckt,Ikt,Okt,Akt,$kt,Lkt,Nkt,xkt,Dkt,Rkt,Kkt,_kt=Ben(G3n,S1n,327,Unt,r9,$F);wAn(1843,1,n1n,Ca),MWn.pf=function(n,t){u$n(this,BB(n,135),t)},MWn.a=0,vX(G3n,"LevelHeightProcessor",1843),wAn(1844,1,pVn,Ia),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return SQ(),LT(),bet},vX(G3n,"LevelHeightProcessor/1",1844),wAn(1841,1,n1n,Oa),MWn.pf=function(n,t){QPn(this,BB(n,135),t)},MWn.a=0,vX(G3n,"NeighborsProcessor",1841),wAn(1842,1,pVn,Aa),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return SQ(),LT(),bet},vX(G3n,"NeighborsProcessor/1",1842),wAn(1845,1,n1n,$a),MWn.pf=function(n,t){a$n(this,BB(n,135),t)},MWn.a=0,vX(G3n,"NodePositionProcessor",1845),wAn(1839,1,n1n,Qm),MWn.pf=function(n,t){ZHn(this,BB(n,135))},vX(G3n,"RootProcessor",1839),wAn(1846,1,n1n,La),MWn.pf=function(n,t){dln(BB(n,135))},vX(G3n,"Untreeifyer",1846),wAn(851,1,QYn,Pf),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,X3n),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),kkt),(PPn(),gMt)),qkt),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,W3n),""),"Search Order"),"Which search order to use when computing a spanning tree."),mkt),gMt),Jkt),nbn(hMt)))),KGn((new Sf,n))},vX(V3n,"MrTreeMetaDataProvider",851),wAn(994,1,QYn,Sf),MWn.Qe=function(n){KGn(n)},vX(V3n,"MrTreeOptions",994),wAn(995,1,{},Na),MWn.$e=function(){return new _R},MWn._e=function(n){},vX(V3n,"MrTreeOptions/MrtreeFactory",995),wAn(480,22,{3:1,35:1,22:1,480:1},bC);var Fkt,Bkt,Hkt,qkt=Ben(V3n,"OrderWeighting",480,Unt,ZY,LF);wAn(425,22,{3:1,35:1,22:1,425:1},wC);var Gkt,zkt,Ukt,Xkt,Wkt,Vkt,Qkt,Ykt,Jkt=Ben(V3n,"TreeifyingOrder",425,Unt,JY,xF);wAn(1459,1,E3n,pf),MWn.Yf=function(n){return BB(n,135),zkt},MWn.pf=function(n,t){ycn(this,BB(n,135),t)},vX("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1459),wAn(1460,1,E3n,vf),MWn.Yf=function(n){return BB(n,135),Ukt},MWn.pf=function(n,t){fCn(this,BB(n,135),t)},vX("org.eclipse.elk.alg.mrtree.p2order","NodeOrderer",1460),wAn(1461,1,E3n,gf),MWn.Yf=function(n){return BB(n,135),Xkt},MWn.pf=function(n,t){nRn(this,BB(n,135),t)},MWn.a=0,vX("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1461),wAn(1462,1,E3n,mf),MWn.Yf=function(n){return BB(n,135),Wkt},MWn.pf=function(n,t){xkn(BB(n,135),t)},vX("org.eclipse.elk.alg.mrtree.p4route","EdgeRouter",1462),wAn(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},dC),MWn.Kf=function(){return bwn(this)},MWn.Xf=function(){return bwn(this)};var Zkt,njt,tjt,ejt,ijt=Ben(J3n,"RadialLayoutPhases",495,Unt,nJ,NF);wAn(1131,209,NJn,OE),MWn.Ze=function(n,t){var e,i,r;if(OTn(t,"Radial layout",ECn(this,n).c.length),qy(TD(ZAn(n,(Uyn(),Ajt))))||jJ(new Tw((GM(),new Dy(n)))),r=uTn(n),Ypn(n,(wD(),Vkt),r),!r)throw Hp(new _y("The given graph is not a tree!"));for(0==(e=Gy(MD(ZAn(n,Djt))))&&(e=fIn(n)),Ypn(n,Djt,e),i=new Wb(ECn(this,n));i.a<i.c.c.length;)BB(n0(i),51).pf(n,mcn(t,1));HSn(t)},vX(J3n,"RadialLayoutProvider",1131),wAn(549,1,MYn,IE),MWn.ue=function(n,t){return DRn(this.a,this.b,BB(n,33),BB(t,33))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},MWn.a=0,MWn.b=0,vX(J3n,"RadialUtil/lambda$0$Type",549),wAn(1375,1,n1n,Da),MWn.pf=function(n,t){dGn(BB(n,33),t)},vX(t4n,"CalculateGraphSize",1375),wAn(442,22,{3:1,35:1,22:1,442:1,234:1},gC),MWn.Kf=function(){switch(this.g){case 0:return new Ba;case 1:return new xa;case 2:return new Da;default:throw Hp(new _y(M1n+(null!=this.f?this.f:""+this.g)))}};var rjt,cjt,ajt,ujt=Ben(t4n,S1n,442,Unt,R1,DF);wAn(645,1,{}),MWn.e=1,MWn.g=0,vX(e4n,"AbstractRadiusExtensionCompaction",645),wAn(1772,645,{},gD),MWn.hg=function(n){var t,e,i,r,c,a,u,o,s;for(this.c=BB(ZAn(n,(wD(),Vkt)),33),eb(this,this.c),this.d=Evn(BB(ZAn(n,(Uyn(),Rjt)),293)),(o=BB(ZAn(n,Mjt),19))&&tb(this,o.a),ib(this,(kW(u=MD(ZAn(n,(sWn(),LPt)))),u)),s=wDn(this.c),this.d&&this.d.lg(s),vKn(this,s),a=new Jy(Pun(Gk(UOt,1),i4n,33,0,[this.c])),e=0;e<2;e++)for(t=0;t<s.c.length;t++)r=new Jy(Pun(Gk(UOt,1),i4n,33,0,[(l1(t,s.c.length),BB(s.c[t],33))])),c=t<s.c.length-1?(l1(t+1,s.c.length),BB(s.c[t+1],33)):(l1(0,s.c.length),BB(s.c[0],33)),i=0==t?BB(xq(s,s.c.length-1),33):(l1(t-1,s.c.length),BB(s.c[t-1],33)),ZTn(this,(l1(t,s.c.length),BB(s.c[t],33),a),i,c,r)},vX(e4n,"AnnulusWedgeCompaction",1772),wAn(1374,1,n1n,xa),MWn.pf=function(n,t){bjn(BB(n,33),t)},vX(e4n,"GeneralCompactor",1374),wAn(1771,645,{},Ra),MWn.hg=function(n){var t,e,i,r;e=BB(ZAn(n,(wD(),Vkt)),33),this.f=e,this.b=Evn(BB(ZAn(n,(Uyn(),Rjt)),293)),(r=BB(ZAn(n,Mjt),19))&&tb(this,r.a),ib(this,(kW(i=MD(ZAn(n,(sWn(),LPt)))),i)),t=wDn(e),this.b&&this.b.lg(t),vPn(this,t)},MWn.a=0,vX(e4n,"RadialCompaction",1771),wAn(1779,1,{},Ka),MWn.ig=function(n){var t,e,i,r,c,a;for(this.a=n,t=0,i=0,c=new Wb(a=wDn(n));c.a<c.c.c.length;)for(r=BB(n0(c),33),e=++i;e<a.c.length;e++)YFn(this,r,(l1(e,a.c.length),BB(a.c[e],33)))&&(t+=1);return t},vX(r4n,"CrossingMinimizationPosition",1779),wAn(1777,1,{},_a),MWn.ig=function(n){var t,i,r,c,a,u,o,s,f,l,b,w,d;for(r=0,i=new oz(ZL(dLn(n).a.Kc(),new h));dAn(i);)t=BB(U5(i),79),f=(o=PTn(BB(Wtn((!t.c&&(t.c=new hK(KOt,t,5,8)),t.c),0),82))).i+o.g/2,l=o.j+o.f/2,c=n.i+n.g/2,a=n.j+n.f/2,(b=new Gj).a=f-c,b.b=l-a,Ukn(u=new xC(b.a,b.b),n.g,n.f),b.a-=u.a,b.b-=u.b,c=f-b.a,a=l-b.b,Ukn(s=new xC(b.a,b.b),o.g,o.f),b.a-=s.a,b.b-=s.b,w=(f=c+b.a)-c,d=(l=a+b.b)-a,r+=e.Math.sqrt(w*w+d*d);return r},vX(r4n,"EdgeLengthOptimization",1777),wAn(1778,1,{},Fa),MWn.ig=function(n){var t,i,r,c,a,u,o,s,f;for(r=0,i=new oz(ZL(dLn(n).a.Kc(),new h));dAn(i);)t=BB(U5(i),79),u=(a=PTn(BB(Wtn((!t.c&&(t.c=new hK(KOt,t,5,8)),t.c),0),82))).i+a.g/2,o=a.j+a.f/2,c=BB(ZAn(a,(sWn(),gPt)),8),s=u-(n.i+c.a+n.g/2),f=o-(n.j+c.b+n.f),r+=e.Math.sqrt(s*s+f*f);return r},vX(r4n,"EdgeLengthPositionOptimization",1778),wAn(1373,645,n1n,Ba),MWn.pf=function(n,t){fLn(this,BB(n,33),t)},vX("org.eclipse.elk.alg.radial.intermediate.overlaps","RadiusExtensionOverlapRemoval",1373),wAn(426,22,{3:1,35:1,22:1,426:1},pC);var ojt,sjt,hjt,fjt,ljt=Ben(a4n,"AnnulusWedgeCriteria",426,Unt,tJ,RF);wAn(380,22,{3:1,35:1,22:1,380:1},vC);var bjt,wjt,djt,gjt,pjt,vjt,mjt,yjt,kjt,jjt,Ejt,Tjt,Mjt,Sjt,Pjt,Cjt,Ijt,Ojt,Ajt,$jt,Ljt,Njt,xjt,Djt,Rjt,Kjt,_jt,Fjt,Bjt,Hjt,qjt,Gjt=Ben(a4n,FJn,380,Unt,K1,KF);wAn(852,1,QYn,yf),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,u4n),""),"Order ID"),"The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly."),iln(0)),(PPn(),vMt)),Att),nbn((rpn(),sMt))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,o4n),""),"Radius"),"The radius option can be used to set the initial radius for the radial layouter."),0),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,s4n),""),"Compaction"),"With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately."),gjt),gMt),Gjt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,h4n),""),"Compaction Step Size"),"Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration."),iln(1)),vMt),Att),nbn(hMt)))),a2(n,h4n,s4n,null),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,f4n),""),"Sorter"),"Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates."),jjt),gMt),Yjt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,l4n),""),"Annulus Wedge Criteria"),"Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals."),Tjt),gMt),ljt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,b4n),""),"Translation Optimization"),"Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized."),vjt),gMt),Vjt),nbn(hMt)))),tUn((new kf,n))},vX(a4n,"RadialMetaDataProvider",852),wAn(996,1,QYn,kf),MWn.Qe=function(n){tUn(n)},vX(a4n,"RadialOptions",996),wAn(997,1,{},Ha),MWn.$e=function(){return new OE},MWn._e=function(n){},vX(a4n,"RadialOptions/RadialFactory",997),wAn(340,22,{3:1,35:1,22:1,340:1},mC);var zjt,Ujt,Xjt,Wjt,Vjt=Ben(a4n,"RadialTranslationStrategy",340,Unt,E3,_F);wAn(293,22,{3:1,35:1,22:1,293:1},yC);var Qjt,Yjt=Ben(a4n,"SortingStrategy",293,Unt,F1,FF);wAn(1449,1,E3n,qa),MWn.Yf=function(n){return BB(n,33),null},MWn.pf=function(n,t){SLn(this,BB(n,33),t)},MWn.c=0,vX("org.eclipse.elk.alg.radial.p1position","EadesRadial",1449),wAn(1775,1,{},Ga),MWn.jg=function(n){return Upn(n)},vX(d4n,"AnnulusWedgeByLeafs",1775),wAn(1776,1,{},za),MWn.jg=function(n){return VEn(this,n)},vX(d4n,"AnnulusWedgeByNodeSpace",1776),wAn(1450,1,E3n,Ua),MWn.Yf=function(n){return BB(n,33),null},MWn.pf=function(n,t){bEn(this,BB(n,33),t)},vX("org.eclipse.elk.alg.radial.p2routing","StraightLineEdgeRouter",1450),wAn(811,1,{},Jm),MWn.kg=function(n){},MWn.lg=function(n){nv(this,n)},vX(g4n,"IDSorter",811),wAn(1774,1,MYn,Xa),MWn.ue=function(n,t){return Qrn(BB(n,33),BB(t,33))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(g4n,"IDSorter/lambda$0$Type",1774),wAn(1773,1,{},Arn),MWn.kg=function(n){c2(this,n)},MWn.lg=function(n){n.dc()||(this.e||c2(this,nG(BB(n.Xb(0),33))),nv(this.e,n))},vX(g4n,"PolarCoordinateSorter",1773),wAn(1136,209,NJn,Wa),MWn.Ze=function(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T;if(OTn(t,"Rectangle Packing",1),t.n&&t.n&&n&&y0(t,o2(n),(Bsn(),uOt)),i=Gy(MD(ZAn(n,(W$n(),lEt)))),w=BB(ZAn(n,PEt),381),p=qy(TD(ZAn(n,yEt))),y=qy(TD(ZAn(n,SEt))),f=qy(TD(ZAn(n,gEt))),k=BB(ZAn(n,CEt),116),m=Gy(MD(ZAn(n,$Et))),r=qy(TD(ZAn(n,AEt))),l=qy(TD(ZAn(n,pEt))),g=qy(TD(ZAn(n,vEt))),T=Gy(MD(ZAn(n,LEt))),!n.a&&(n.a=new eU(UOt,n,10,11)),Trn(E=n.a),g){for(b=new Np,o=new AL(E);o.e!=o.i.gc();)P8(a=BB(kpn(o),33),dEt)&&(b.c[b.c.length]=a);for(s=new Wb(b);s.a<s.c.c.length;)snn(E,a=BB(n0(s),33));for(SQ(),m$(b,new Va),h=new Wb(b);h.a<h.c.c.length;)a=BB(n0(h),33),j=BB(ZAn(a,dEt),19).a,sln(E,j=e.Math.min(j,E.i),a);for(d=0,u=new AL(E);u.e!=u.i.gc();)Ypn(a=BB(kpn(u),33),wEt,iln(d)),++d}(v=XPn(n)).a-=k.b+k.c,v.b-=k.d+k.a,v.a,T<0||T<v.a?(c=OKn(new jB(i,w,p),E,m,k),t.n&&t.n&&n&&y0(t,o2(n),(Bsn(),uOt))):c=new eq(i,T,0,(YLn(),_Et)),v.a+=k.b+k.c,v.b+=k.d+k.a,y||(Trn(E),c=kzn(new m3(i,f,l,r,m),E,e.Math.max(v.a,c.c),v,t,n,k)),pan(E,k),KUn(n,c.c+(k.b+k.c),c.b+(k.d+k.a),!1,!0),qy(TD(ZAn(n,MEt)))||jJ(new Tw((GM(),new Dy(n)))),t.n&&t.n&&n&&y0(t,o2(n),(Bsn(),uOt)),HSn(t)},vX(y4n,"RectPackingLayoutProvider",1136),wAn(1137,1,MYn,Va),MWn.ue=function(n,t){return wsn(BB(n,33),BB(t,33))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(y4n,"RectPackingLayoutProvider/lambda$0$Type",1137),wAn(1256,1,{},jB),MWn.a=0,MWn.c=!1,vX(k4n,"AreaApproximation",1256);var Jjt,Zjt,nEt,tEt=bq(k4n,"BestCandidateFilter");wAn(638,1,{526:1},Qa),MWn.mg=function(n,t,i){var r,c,a,u,o,s;for(s=new Np,a=RQn,o=new Wb(n);o.a<o.c.c.length;)u=BB(n0(o),220),a=e.Math.min(a,(u.c+(i.b+i.c))*(u.b+(i.d+i.a)));for(c=new Wb(n);c.a<c.c.c.length;)((r=BB(n0(c),220)).c+(i.b+i.c))*(r.b+(i.d+i.a))==a&&(s.c[s.c.length]=r);return s},vX(k4n,"AreaFilter",638),wAn(639,1,{526:1},Ya),MWn.mg=function(n,t,i){var r,c,a,u,o,s;for(o=new Np,s=RQn,u=new Wb(n);u.a<u.c.c.length;)a=BB(n0(u),220),s=e.Math.min(s,e.Math.abs((a.c+(i.b+i.c))/(a.b+(i.d+i.a))-t));for(c=new Wb(n);c.a<c.c.c.length;)r=BB(n0(c),220),e.Math.abs((r.c+(i.b+i.c))/(r.b+(i.d+i.a))-t)==s&&(o.c[o.c.length]=r);return o},vX(k4n,"AspectRatioFilter",639),wAn(637,1,{526:1},Ja),MWn.mg=function(n,t,i){var r,c,a,u,o,s;for(s=new Np,a=KQn,o=new Wb(n);o.a<o.c.c.length;)u=BB(n0(o),220),a=e.Math.max(a,Yq(u.c+(i.b+i.c),u.b+(i.d+i.a),u.a));for(c=new Wb(n);c.a<c.c.c.length;)Yq((r=BB(n0(c),220)).c+(i.b+i.c),r.b+(i.d+i.a),r.a)==a&&(s.c[s.c.length]=r);return s},vX(k4n,"ScaleMeasureFilter",637),wAn(381,22,{3:1,35:1,22:1,381:1},kC);var eEt,iEt,rEt,cEt,aEt,uEt,oEt,sEt,hEt,fEt,lEt,bEt,wEt,dEt,gEt,pEt,vEt,mEt,yEt,kEt,jEt,EEt,TEt,MEt,SEt,PEt,CEt,IEt,OEt,AEt,$Et,LEt,NEt=Ben(j4n,"OptimizationGoal",381,Unt,_1,BF);wAn(856,1,QYn,Of),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,E4n),""),"Optimization Goal"),"Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored."),sEt),(PPn(),gMt)),NEt),nbn((rpn(),sMt))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,T4n),""),"Shift Last Placed."),"When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces."),(hN(),!0)),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,M4n),""),"Current position of a node in the order of nodes"),"The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node."),iln(-1)),vMt),Att),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,S4n),""),"Desired index of node"),"The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position."),iln(-1)),vMt),Att),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,P4n),""),"Only Area Approximation"),"If enabled only the width approximation step is executed and the nodes are placed accordingly. The nodes are layouted according to the packingStrategy. If set to true not expansion of nodes is taking place."),!1),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,C4n),""),"Compact Rows"),"Enables compaction. Compacts blocks if they do not use the full height of the row. This option allows to have a smaller drawing. If this option is disabled all nodes are placed next to each other in rows."),!0),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,I4n),""),"Fit Aspect Ratio"),"Expands nodes if expandNodes is true to fit the aspect ratio instead of only in their bounds. The option is only useful if the used packingStrategy is ASPECT_RATIO_DRIVEN, otherwise this may result in unreasonable ndoe expansion."),!1),wMt),ktt),nbn(sMt)))),a2(n,I4n,A4n,null),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,O4n),""),"Target Width"),"Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding."),-1),dMt),Ptt),nbn(sMt)))),NXn((new Af,n))},vX(j4n,"RectPackingMetaDataProvider",856),wAn(1004,1,QYn,Af),MWn.Qe=function(n){NXn(n)},vX(j4n,"RectPackingOptions",1004),wAn(1005,1,{},Za),MWn.$e=function(){return new Wa},MWn._e=function(n){},vX(j4n,"RectPackingOptions/RectpackingFactory",1005),wAn(1257,1,{},m3),MWn.a=0,MWn.b=!1,MWn.c=0,MWn.d=0,MWn.e=!1,MWn.f=!1,MWn.g=0,vX("org.eclipse.elk.alg.rectpacking.seconditeration","RowFillingAndCompaction",1257),wAn(187,1,{187:1},asn),MWn.a=0,MWn.c=!1,MWn.d=0,MWn.e=0,MWn.f=0,MWn.g=0,MWn.i=0,MWn.k=!1,MWn.o=RQn,MWn.p=RQn,MWn.r=0,MWn.s=0,MWn.t=0,vX(L4n,"Block",187),wAn(211,1,{211:1},RJ),MWn.a=0,MWn.b=0,MWn.d=0,MWn.e=0,MWn.f=0,vX(L4n,"BlockRow",211),wAn(443,1,{443:1},KJ),MWn.b=0,MWn.c=0,MWn.d=0,MWn.e=0,MWn.f=0,vX(L4n,"BlockStack",443),wAn(220,1,{220:1},eq,awn),MWn.a=0,MWn.b=0,MWn.c=0,MWn.d=0,MWn.e=0;var xEt,DEt,REt,KEt,_Et,FEt=vX(L4n,"DrawingData",220);wAn(355,22,{3:1,35:1,22:1,355:1},jC);var BEt,HEt,qEt,GEt,zEt=Ben(L4n,"DrawingDataDescriptor",355,Unt,N5,HF);wAn(200,1,{200:1},x0),MWn.b=0,MWn.c=0,MWn.e=0,MWn.f=0,vX(L4n,"RectRow",200),wAn(756,1,{},Ehn),MWn.j=0,vX(x4n,g1n,756),wAn(1245,1,{},nu),MWn.Je=function(n){return W8(n.a,n.b)},vX(x4n,p1n,1245),wAn(1246,1,{},dg),MWn.Je=function(n){return p6(this.a,n)},vX(x4n,v1n,1246),wAn(1247,1,{},gg),MWn.Je=function(n){return Opn(this.a,n)},vX(x4n,m1n,1247),wAn(1248,1,{},pg),MWn.Je=function(n){return uon(this.a,n)},vX(x4n,"ElkGraphImporter/lambda$3$Type",1248),wAn(1249,1,{},vg),MWn.Je=function(n){return iOn(this.a,n)},vX(x4n,y1n,1249),wAn(1133,209,NJn,$E),MWn.Ze=function(n,t){var e,i,r,c,a,u,o,s,h,f;for(P8(n,(MMn(),kTt))&&(f=SD(ZAn(n,(Bvn(),qTt))),(c=XRn(cin(),f))&&BB(sJ(c.f),209).Ze(n,mcn(t,1))),Ypn(n,gTt,($6(),ZEt)),Ypn(n,pTt,($Sn(),cTt)),Ypn(n,vTt,(Lun(),WTt)),a=BB(ZAn(n,(Bvn(),_Tt)),19).a,OTn(t,"Overlap removal",1),qy(TD(ZAn(n,KTt))),o=new mg(u=new Rv),e=GXn(i=new Ehn,n),s=!0,r=0;r<a&&s;){if(qy(TD(ZAn(n,FTt)))){if(u.a.$b(),HPn(new I$(o),e.i),0==u.a.gc())break;e.e=u}for(h2(this.b),CU(this.b,(Pbn(),HEt),(OM(),GTt)),CU(this.b,qEt,e.g),CU(this.b,GEt,(IM(),QEt)),this.a=$qn(this.b,e),h=new Wb(this.a);h.a<h.c.c.length;)BB(n0(h),51).pf(e,mcn(t,1));cjn(i,e),s=qy(TD(mMn(e,(Xcn(),Yrt)))),++r}DGn(i,e),HSn(t)},vX(x4n,"OverlapRemovalLayoutProvider",1133),wAn(1134,1,{},mg),vX(x4n,"OverlapRemovalLayoutProvider/lambda$0$Type",1134),wAn(437,22,{3:1,35:1,22:1,437:1},EC);var UEt,XEt,WEt=Ben(x4n,"SPOrEPhases",437,Unt,B1,qF);wAn(1255,1,{},LE),vX(x4n,"ShrinkTree",1255),wAn(1135,209,NJn,Zm),MWn.Ze=function(n,t){var e,i,r,c;P8(n,(MMn(),kTt))&&(c=SD(ZAn(n,kTt)),(r=XRn(cin(),c))&&BB(sJ(r.f),209).Ze(n,mcn(t,1))),e=GXn(i=new Ehn,n),$Ln(this.a,e,mcn(t,1)),DGn(i,e)},vX(x4n,"ShrinkTreeLayoutProvider",1135),wAn(300,134,{3:1,300:1,94:1,134:1},DJ),MWn.c=!1,vX("org.eclipse.elk.alg.spore.graph","Graph",300),wAn(482,22,{3:1,35:1,22:1,482:1,246:1,234:1},LM),MWn.Kf=function(){return esn(this)},MWn.Xf=function(){return esn(this)};var VEt,QEt,YEt=Ben(D4n,FJn,482,Unt,KV,GF);wAn(551,22,{3:1,35:1,22:1,551:1,246:1,234:1},vD),MWn.Kf=function(){return new ru},MWn.Xf=function(){return new ru};var JEt,ZEt,nTt,tTt=Ben(D4n,"OverlapRemovalStrategy",551,Unt,_V,zF);wAn(430,22,{3:1,35:1,22:1,430:1},TC);var eTt,iTt,rTt,cTt,aTt,uTt,oTt=Ben(D4n,"RootSelection",430,Unt,iJ,UF);wAn(316,22,{3:1,35:1,22:1,316:1},MC);var sTt,hTt,fTt,lTt,bTt,wTt,dTt,gTt,pTt,vTt,mTt,yTt,kTt,jTt,ETt,TTt,MTt,STt,PTt,CTt,ITt,OTt,ATt,$Tt,LTt,NTt,xTt,DTt,RTt,KTt,_Tt,FTt,BTt,HTt,qTt,GTt,zTt=Ben(D4n,"SpanningTreeCostFunction",316,Unt,A5,XF);wAn(1002,1,QYn,Ef),MWn.Qe=function(n){yHn(n)},vX(D4n,"SporeCompactionOptions",1002),wAn(1003,1,{},tu),MWn.$e=function(){return new Zm},MWn._e=function(n){},vX(D4n,"SporeCompactionOptions/SporeCompactionFactory",1003),wAn(855,1,QYn,Tf),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,K4n),""),"Underlying Layout Algorithm"),"A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction."),(PPn(),yMt)),Qtt),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,q4n),"structure"),"Structure Extraction Strategy"),"This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices."),DTt),gMt),VTt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,_4n),W4n),"Tree Construction Strategy"),"Whether a minimum spanning tree or a maximum spanning tree should be constructed."),NTt),gMt),YTt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,F4n),W4n),"Cost Function for Spanning Tree"),"The cost function is used in the creation of the spanning tree."),$Tt),gMt),zTt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,B4n),W4n),"Root node for spanning tree construction"),"The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen."),null),yMt),Qtt),nbn(hMt)))),a2(n,B4n,H4n,CTt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,H4n),W4n),"Root selection for spanning tree"),"This sets the method used to select a root node for the construction of a spanning tree"),OTt),gMt),oTt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,G4n),E2n),"Compaction Strategy"),"This option defines how the compaction is applied."),ETt),gMt),YEt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,z4n),E2n),"Orthogonal Compaction"),"Restricts the translation of nodes to orthogonal directions in the compaction phase."),(hN(),!1)),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,U4n),V4n),"Upper limit for iterations of overlap removal"),null),iln(64)),vMt),Att),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,X4n),V4n),"Whether to run a supplementary scanline overlap check."),null),!0),wMt),ktt),nbn(hMt)))),AKn((new Mf,n)),yHn((new Ef,n))},vX(D4n,"SporeMetaDataProvider",855),wAn(VVn,1,QYn,Mf),MWn.Qe=function(n){AKn(n)},vX(D4n,"SporeOverlapRemovalOptions",VVn),wAn(1001,1,{},eu),MWn.$e=function(){return new $E},MWn._e=function(n){},vX(D4n,"SporeOverlapRemovalOptions/SporeOverlapFactory",1001),wAn(530,22,{3:1,35:1,22:1,530:1,246:1,234:1},XW),MWn.Kf=function(){return isn(this)},MWn.Xf=function(){return isn(this)};var UTt,XTt,WTt,VTt=Ben(D4n,"StructureExtractionStrategy",530,Unt,FV,WF);wAn(429,22,{3:1,35:1,22:1,429:1,246:1,234:1},SC),MWn.Kf=function(){return wwn(this)},MWn.Xf=function(){return wwn(this)};var QTt,YTt=Ben(D4n,"TreeConstructionStrategy",429,Unt,eJ,VF);wAn(1443,1,E3n,iu),MWn.Yf=function(n){return BB(n,300),new B2},MWn.pf=function(n,t){Tjn(BB(n,300),t)},vX(Y4n,"DelaunayTriangulationPhase",1443),wAn(1444,1,lVn,yg),MWn.td=function(n){WB(this.a,BB(n,65).a)},vX(Y4n,"DelaunayTriangulationPhase/lambda$0$Type",1444),wAn(783,1,E3n,Vm),MWn.Yf=function(n){return BB(n,300),new B2},MWn.pf=function(n,t){this.ng(BB(n,300),t)},MWn.ng=function(n,t){var e;OTn(t,"Minimum spanning tree construction",1),e=n.d?n.d.a:BB(xq(n.i,0),65).a,Kun(this,(qy(TD(mMn(n,(Xcn(),Qrt)))),YHn(n.e,e,n.b)),n),HSn(t)},vX(J4n,"MinSTPhase",783),wAn(1446,783,E3n,ym),MWn.ng=function(n,t){var e,i;OTn(t,"Maximum spanning tree construction",1),e=new kg(n),i=n.d?n.d.c:BB(xq(n.i,0),65).c,Kun(this,(qy(TD(mMn(n,(Xcn(),Qrt)))),YHn(n.e,i,e)),n),HSn(t)},vX(J4n,"MaxSTPhase",1446),wAn(1447,1,{},kg),MWn.Je=function(n){return IC(this.a,n)},vX(J4n,"MaxSTPhase/lambda$0$Type",1447),wAn(1445,1,lVn,jg),MWn.td=function(n){R$(this.a,BB(n,65))},vX(J4n,"MinSTPhase/lambda$0$Type",1445),wAn(785,1,E3n,ru),MWn.Yf=function(n){return BB(n,300),new B2},MWn.pf=function(n,t){WTn(this,BB(n,300),t)},MWn.a=!1,vX(Z4n,"GrowTreePhase",785),wAn(786,1,lVn,EB),MWn.td=function(n){eun(this.a,this.b,this.c,BB(n,221))},vX(Z4n,"GrowTreePhase/lambda$0$Type",786),wAn(1448,1,E3n,cu),MWn.Yf=function(n){return BB(n,300),new B2},MWn.pf=function(n,t){tmn(this,BB(n,300),t)},vX(Z4n,"ShrinkTreeCompactionPhase",1448),wAn(784,1,lVn,TB),MWn.td=function(n){lAn(this.a,this.b,this.c,BB(n,221))},vX(Z4n,"ShrinkTreeCompactionPhase/lambda$0$Type",784);var JTt,ZTt,nMt=bq(y3n,"IGraphElementVisitor");wAn(860,1,{527:1},R0),MWn.og=function(n){var t;qan(t=hRn(this,n),BB(RX(this.b,n),94)),yLn(this,n,t)},vX(xJn,"LayoutConfigurator",860);var tMt,eMt,iMt,rMt=bq(xJn,"LayoutConfigurator/IPropertyHolderOptionFilter");wAn(932,1,{1933:1},au),MWn.pg=function(n,t){return Nun(),!n.Xe(t)},vX(xJn,"LayoutConfigurator/lambda$0$Type",932),wAn(933,1,{1933:1},uu),MWn.pg=function(n,t){return SE(n,t)},vX(xJn,"LayoutConfigurator/lambda$1$Type",933),wAn(931,1,{831:1},ou),MWn.qg=function(n,t){return Nun(),!n.Xe(t)},vX(xJn,"LayoutConfigurator/lambda$2$Type",931),wAn(934,1,DVn,LC),MWn.Mb=function(n){return YW(this.a,this.b,BB(n,1933))},vX(xJn,"LayoutConfigurator/lambda$3$Type",934),wAn(858,1,{},su),vX(xJn,"RecursiveGraphLayoutEngine",858),wAn(296,60,BVn,kv,rk),vX(xJn,"UnsupportedConfigurationException",296),wAn(453,60,BVn,ck),vX(xJn,"UnsupportedGraphException",453),wAn(754,1,{}),vX(y3n,"AbstractRandomListAccessor",754),wAn(500,754,{},CNn),MWn.rg=function(){return null},MWn.d=!0,MWn.e=!0,MWn.f=0,vX(t5n,"AlgorithmAssembler",500),wAn(1236,1,DVn,hu),MWn.Mb=function(n){return!!BB(n,123)},vX(t5n,"AlgorithmAssembler/lambda$0$Type",1236),wAn(1237,1,{},Eg),MWn.Kb=function(n){return bj(this.a,BB(n,123))},vX(t5n,"AlgorithmAssembler/lambda$1$Type",1237),wAn(1238,1,DVn,fu),MWn.Mb=function(n){return!!BB(n,80)},vX(t5n,"AlgorithmAssembler/lambda$2$Type",1238),wAn(1239,1,lVn,Tg),MWn.td=function(n){Jcn(this.a,BB(n,80))},vX(t5n,"AlgorithmAssembler/lambda$3$Type",1239),wAn(1240,1,lVn,NC),MWn.td=function(n){Dx(this.a,this.b,BB(n,234))},vX(t5n,"AlgorithmAssembler/lambda$4$Type",1240),wAn(1355,1,MYn,lu),MWn.ue=function(n,t){return FQ(BB(n,234),BB(t,234))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(t5n,"EnumBasedFactoryComparator",1355),wAn(80,754,{80:1},B2),MWn.rg=function(){return new Rv},MWn.a=0,vX(t5n,"LayoutProcessorConfiguration",80),wAn(1013,1,{527:1},$f),MWn.og=function(n){nan(eMt,new Mg(n))},vX(zYn,"DeprecatedLayoutOptionReplacer",1013),wAn(1014,1,lVn,bu),MWn.td=function(n){N9(BB(n,160))},vX(zYn,"DeprecatedLayoutOptionReplacer/lambda$0$Type",1014),wAn(1015,1,lVn,wu),MWn.td=function(n){Twn(BB(n,160))},vX(zYn,"DeprecatedLayoutOptionReplacer/lambda$1$Type",1015),wAn(1016,1,{},Mg),MWn.Od=function(n,t){Rx(this.a,BB(n,146),BB(t,38))},vX(zYn,"DeprecatedLayoutOptionReplacer/lambda$2$Type",1016),wAn(149,1,{686:1,149:1},MTn),MWn.Fb=function(n){return j5(this,n)},MWn.sg=function(){return this.b},MWn.tg=function(){return this.c},MWn.ne=function(){return this.e},MWn.Hb=function(){return vvn(this.c)},MWn.Ib=function(){return"Layout Algorithm: "+this.c};var cMt,aMt=vX(zYn,"LayoutAlgorithmData",149);wAn(263,1,{},du),vX(zYn,"LayoutAlgorithmData/Builder",263),wAn(1017,1,{527:1},gu),MWn.og=function(n){cL(n,239)&&!qy(TD(n.We((sWn(),zSt))))&&KFn(BB(n,33))},vX(zYn,"LayoutAlgorithmResolver",1017),wAn(229,1,{686:1,229:1},UZ),MWn.Fb=function(n){return!!cL(n,229)&&mK(this.b,BB(n,229).b)},MWn.sg=function(){return this.a},MWn.tg=function(){return this.b},MWn.ne=function(){return this.d},MWn.Hb=function(){return vvn(this.b)},MWn.Ib=function(){return"Layout Type: "+this.b},vX(zYn,"LayoutCategoryData",229),wAn(344,1,{},pu),vX(zYn,"LayoutCategoryData/Builder",344),wAn(867,1,{},ORn),vX(zYn,"LayoutMetaDataService",867),wAn(868,1,{},UX),vX(zYn,"LayoutMetaDataService/Registry",868),wAn(478,1,{478:1},vu),vX(zYn,"LayoutMetaDataService/Registry/Triple",478),wAn(869,1,e5n,mu),MWn.ug=function(){return new Gj},vX(zYn,"LayoutMetaDataService/lambda$0$Type",869),wAn(870,1,i5n,yu),MWn.vg=function(n){return B$(BB(n,8))},vX(zYn,"LayoutMetaDataService/lambda$1$Type",870),wAn(879,1,e5n,ku),MWn.ug=function(){return new Np},vX(zYn,"LayoutMetaDataService/lambda$10$Type",879),wAn(880,1,i5n,ju),MWn.vg=function(n){return new t_(BB(n,12))},vX(zYn,"LayoutMetaDataService/lambda$11$Type",880),wAn(881,1,e5n,Eu),MWn.ug=function(){return new YT},vX(zYn,"LayoutMetaDataService/lambda$12$Type",881),wAn(882,1,i5n,Tu),MWn.vg=function(n){return zB(BB(n,68))},vX(zYn,"LayoutMetaDataService/lambda$13$Type",882),wAn(883,1,e5n,Mu),MWn.ug=function(){return new Rv},vX(zYn,"LayoutMetaDataService/lambda$14$Type",883),wAn(884,1,i5n,Su),MWn.vg=function(n){return JQ(BB(n,53))},vX(zYn,"LayoutMetaDataService/lambda$15$Type",884),wAn(885,1,e5n,Pu),MWn.ug=function(){return new fA},vX(zYn,"LayoutMetaDataService/lambda$16$Type",885),wAn(886,1,i5n,Cu),MWn.vg=function(n){return S4(BB(n,53))},vX(zYn,"LayoutMetaDataService/lambda$17$Type",886),wAn(887,1,e5n,Iu),MWn.ug=function(){return new zv},vX(zYn,"LayoutMetaDataService/lambda$18$Type",887),wAn(888,1,i5n,Ou),MWn.vg=function(n){return GB(BB(n,208))},vX(zYn,"LayoutMetaDataService/lambda$19$Type",888),wAn(871,1,e5n,Au),MWn.ug=function(){return new km},vX(zYn,"LayoutMetaDataService/lambda$2$Type",871),wAn(872,1,i5n,$u),MWn.vg=function(n){return new Kj(BB(n,74))},vX(zYn,"LayoutMetaDataService/lambda$3$Type",872),wAn(873,1,e5n,Lu),MWn.ug=function(){return new lm},vX(zYn,"LayoutMetaDataService/lambda$4$Type",873),wAn(874,1,i5n,Nu),MWn.vg=function(n){return new A_(BB(n,142))},vX(zYn,"LayoutMetaDataService/lambda$5$Type",874),wAn(875,1,e5n,Du),MWn.ug=function(){return new bm},vX(zYn,"LayoutMetaDataService/lambda$6$Type",875),wAn(876,1,i5n,Ru),MWn.vg=function(n){return new O_(BB(n,116))},vX(zYn,"LayoutMetaDataService/lambda$7$Type",876),wAn(877,1,e5n,Ku),MWn.ug=function(){return new Yu},vX(zYn,"LayoutMetaDataService/lambda$8$Type",877),wAn(878,1,i5n,_u),MWn.vg=function(n){return new rnn(BB(n,373))},vX(zYn,"LayoutMetaDataService/lambda$9$Type",878);var uMt,oMt,sMt,hMt,fMt,lMt=bq(IJn,"IProperty");wAn(23,1,{35:1,686:1,23:1,146:1},bPn),MWn.wd=function(n){return gL(this,BB(n,146))},MWn.Fb=function(n){return cL(n,23)?mK(this.f,BB(n,23).f):cL(n,146)&&mK(this.f,BB(n,146).tg())},MWn.wg=function(){var n;if(cL(this.b,4)){if(null==(n=Jdn(this.b)))throw Hp(new Fy(o5n+this.f+"'. Make sure it's type is registered with the "+(ED(bAt),bAt.k)+c5n));return n}return this.b},MWn.sg=function(){return this.d},MWn.tg=function(){return this.f},MWn.ne=function(){return this.i},MWn.Hb=function(){return vvn(this.f)},MWn.Ib=function(){return"Layout Option: "+this.f},vX(zYn,"LayoutOptionData",23),wAn(24,1,{},Fu),vX(zYn,"LayoutOptionData/Builder",24),wAn(175,22,{3:1,35:1,22:1,175:1},AC);var bMt,wMt,dMt,gMt,pMt,vMt,mMt,yMt,kMt,jMt=Ben(zYn,"LayoutOptionData/Target",175,Unt,O5,QF);wAn(277,22,{3:1,35:1,22:1,277:1},$C);var EMt,TMt,MMt,SMt=Ben(zYn,"LayoutOptionData/Type",277,Unt,_tn,YF);wAn(110,1,{110:1},bA,UV,gY),MWn.Fb=function(n){var t;return!(null==n||!cL(n,110))&&(t=BB(n,110),cV(this.c,t.c)&&cV(this.d,t.d)&&cV(this.b,t.b)&&cV(this.a,t.a))},MWn.Hb=function(){return fhn(Pun(Gk(Ant,1),HWn,1,5,[this.c,this.d,this.b,this.a]))},MWn.Ib=function(){return"Rect[x="+this.c+",y="+this.d+",w="+this.b+",h="+this.a+"]"},MWn.a=0,MWn.b=0,MWn.c=0,MWn.d=0,vX(f1n,"ElkRectangle",110),wAn(8,1,{3:1,4:1,8:1,414:1},Gj,XZ,xC,wA),MWn.Fb=function(n){return nrn(this,n)},MWn.Hb=function(){return VO(this.a)+byn(VO(this.b))},MWn.Jf=function(n){var t,e,i;for(e=0;e<n.length&&xhn((b1(e,n.length),n.charCodeAt(e)),o1n);)++e;for(t=n.length;t>0&&xhn((b1(t-1,n.length),n.charCodeAt(t-1)),s1n);)--t;if(e>=t)throw Hp(new _y("The given string does not contain any numbers."));if(2!=(i=kKn(n.substr(e,t-e),",|;|\r|\n")).length)throw Hp(new _y("Exactly two numbers are expected, "+i.length+" were found."));try{this.a=bSn(RMn(i[0])),this.b=bSn(RMn(i[1]))}catch(r){throw cL(r=lun(r),127)?Hp(new _y(h1n+r)):Hp(r)}},MWn.Ib=function(){return"("+this.a+","+this.b+")"},MWn.a=0,MWn.b=0;var PMt=vX(f1n,"KVector",8);wAn(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},km,Kj,Ux),MWn.Pc=function(){return Vsn(this)},MWn.Jf=function(n){var t,e,i,r,c;e=kKn(n,",|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n"),yQ(this);try{for(t=0,r=0,i=0,c=0;t<e.length;)null!=e[t]&&RMn(e[t]).length>0&&(r%2==0?i=bSn(e[t]):c=bSn(e[t]),r>0&&r%2!=0&&DH(this,new xC(i,c)),++r),++t}catch(a){throw cL(a=lun(a),127)?Hp(new _y("The given string does not match the expected format for vectors."+a)):Hp(a)}},MWn.Ib=function(){var n,t,e;for(n=new lN("("),t=spn(this,0);t.b!=t.d.c;)oO(n,(e=BB(b3(t),8)).a+","+e.b),t.b!=t.d.c&&(n.a+="; ");return(n.a+=")",n).a};var CMt,IMt,OMt,AMt,$Mt,LMt,NMt=vX(f1n,"KVectorChain",74);wAn(248,22,{3:1,35:1,22:1,248:1},DC);var xMt,DMt,RMt,KMt,_Mt,FMt,BMt,HMt,qMt,GMt,zMt,UMt,XMt,WMt,VMt,QMt,YMt,JMt,ZMt,nSt=Ben(h5n,"Alignment",248,Unt,J8,JF);wAn(979,1,QYn,Lf),MWn.Qe=function(n){G_n(n)},vX(h5n,"BoxLayouterOptions",979),wAn(980,1,{},xu),MWn.$e=function(){return new Gu},MWn._e=function(n){},vX(h5n,"BoxLayouterOptions/BoxFactory",980),wAn(291,22,{3:1,35:1,22:1,291:1},RC);var tSt,eSt,iSt,rSt,cSt,aSt,uSt,oSt,sSt,hSt,fSt,lSt,bSt,wSt,dSt,gSt,pSt,vSt,mSt,ySt,kSt,jSt,ESt,TSt,MSt,SSt,PSt,CSt,ISt,OSt,ASt,$St,LSt,NSt,xSt,DSt,RSt,KSt,_St,FSt,BSt,HSt,qSt,GSt,zSt,USt,XSt,WSt,VSt,QSt,YSt,JSt,ZSt,nPt,tPt,ePt,iPt,rPt,cPt,aPt,uPt,oPt,sPt,hPt,fPt,lPt,bPt,wPt,dPt,gPt,pPt,vPt,mPt,yPt,kPt,jPt,EPt,TPt,MPt,SPt,PPt,CPt,IPt,OPt,APt,$Pt,LPt,NPt,xPt,DPt,RPt,KPt,_Pt,FPt,BPt,HPt,qPt=Ben(h5n,"ContentAlignment",291,Unt,Y8,ZF);wAn(684,1,QYn,Nf),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,w5n),""),"Layout Algorithm"),"Select a specific layout algorithm."),(PPn(),yMt)),Qtt),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,d5n),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),mMt),aMt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,W2n),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),rSt),gMt),nSt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,VJn),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,g5n),""),"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."),mMt),NMt),nbn(uMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,u3n),""),"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."),fSt),pMt),qPt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,X2n),""),"Debug Mode"),"Whether additional debug information shall be generated."),(hN(),!1)),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,J2n),""),TJn),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),wSt),gMt),WPt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,y2n),""),"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."),mSt),gMt),oCt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,A4n),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,d2n),""),"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`."),TSt),gMt),SCt),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[sMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,QJn),""),"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."),WSt),mMt),_ut),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[sMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,jZn),""),"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),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,m3n),""),"interactive Layout"),"Whether the graph should be changeable interactively and by setting constraints"),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,MZn),""),"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),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,EZn),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),oPt),gMt),aIt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,g3n),""),"Position"),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),mMt),PMt),EG(sMt,Pun(Gk(jMt,1),$Vn,175,0,[fMt,oMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,pZn),""),"Priority"),"Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."),vMt),Att),EG(sMt,Pun(Gk(jMt,1),$Vn,175,0,[uMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,yZn),""),"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)."),vMt),Att),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,kZn),""),"Separate Connected Components"),"Whether each connected component should be processed separately."),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,o3n),""),"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."),ASt),mMt),NMt),nbn(uMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,f3n),""),"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),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,l3n),""),"Hypernode"),"Whether the node should be handled as a hypernode."),!1),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,p5n),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),mMt),KNt),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[oMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,p3n),""),"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."),LSt),mMt),Eut),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,z2n),""),"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),wMt),ktt),EG(sMt,Pun(Gk(jMt,1),$Vn,175,0,[uMt,fMt,oMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,v5n),""),"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),dMt),Ptt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,m5n),""),"Animate"),"Whether the shift from the old layout to the new computed layout shall be animated."),!0),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,y5n),""),"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'."),iln(100)),vMt),Att),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,k5n),""),"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),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,j5n),""),"Maximal Animation Time"),"The maximal time for animations, in milliseconds."),iln(4e3)),vMt),Att),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,E5n),""),"Minimal Animation Time"),"The minimal time for animations, in milliseconds."),iln(400)),vMt),Att),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,T5n),""),"Progress Bar"),"Whether a progress bar shall be displayed during layout computations."),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,M5n),""),"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),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,S5n),""),"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),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,P5n),""),"Zoom to Fit"),"Whether the zoom level shall be set to view the whole diagram after layout."),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,b5n),"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."),oSt),gMt),cOt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,L2n),k2n),"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),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,N2n),k2n),"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),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,XJn),k2n),"Components Spacing"),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,x2n),k2n),"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),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,mZn),k2n),"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),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,D2n),k2n),"Edge Node Spacing"),"Spacing to be preserved between nodes and edges."),10),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,R2n),k2n),"Label Spacing"),"Determines the amount of space to be left between two labels of the same graph element."),0),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,F2n),k2n),"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),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,K2n),k2n),"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),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,_2n),k2n),"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),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,vZn),k2n),"Node Spacing"),"The minimal distance to be preserved between each two nodes."),20),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,B2n),k2n),"Node Self Loop Spacing"),"Spacing to be preserved between a node and its self loops."),10),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,H2n),k2n),"Port Spacing"),"Spacing between pairs of ports of the same node."),10),dMt),Ptt),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[sMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,q2n),k2n),"Individual Spacing"),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),mMt),hOt),EG(sMt,Pun(Gk(jMt,1),$Vn,175,0,[uMt,fMt,oMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,v3n),k2n),"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."),DPt),mMt),Eut),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,d3n),A5n),"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)."),vMt),Att),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[sMt]))))),a2(n,d3n,w3n,JSt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,w3n),A5n),"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."),QSt),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,Z2n),$5n),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),xSt),mMt),_ut),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,CZn),$5n),"Node Label Placement"),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),RSt),pMt),GCt),EG(sMt,Pun(Gk(jMt,1),$Vn,175,0,[oMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,e3n),L5n),"Port Alignment"),"Defines the default port distribution for a node. May be overridden for each side individually."),nPt),gMt),JCt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,i3n),L5n),"Port Alignment (North)"),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),gMt),JCt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,r3n),L5n),"Port Alignment (South)"),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),gMt),JCt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,c3n),L5n),"Port Alignment (West)"),"Defines how ports on the western side are placed, overriding the node's general port alignment."),gMt),JCt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,a3n),L5n),"Port Alignment (East)"),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),gMt),JCt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,PZn),N5n),"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."),_St),pMt),YIt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,SZn),N5n),"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."),GSt),pMt),iOt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,BZn),N5n),"Node Size Minimum"),"The minimal size to which a node can be reduced."),HSt),mMt),PMt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,Y2n),N5n),"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),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,s3n),A2n),"Edge Label Placement"),"Gives a hint on where to put edge labels."),pSt),gMt),nCt),nbn(oMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,TZn),A2n),"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),wMt),ktt),nbn(oMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,C5n),"font"),"Font Name"),"Font name used for a label."),yMt),Qtt),nbn(oMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,I5n),"font"),"Font Size"),"Font size used for a label."),vMt),Att),nbn(oMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,b3n),x5n),"Port Anchor Offset"),"The offset to the port position where connections shall be attached."),mMt),PMt),nbn(fMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,h3n),x5n),"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."),vMt),Att),nbn(fMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,U2n),x5n),"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."),dPt),gMt),FIt),nbn(fMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,G2n),x5n),"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."),dMt),Ptt),nbn(fMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,IZn),D5n),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),lPt),pMt),IIt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,n3n),D5n),"Port Labels Next to Port"),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),!1),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,t3n),D5n),"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),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,V2n),R5n),"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),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,Q2n),R5n),"Inside Self Loop"),"Whether a self loop should be routed inside a node instead of around that node."),!1),wMt),ktt),nbn(uMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,WJn),"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),dMt),Ptt),nbn(uMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,O5n),"edge"),"Edge Type"),"The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."),kSt),gMt),yCt),nbn(uMt)))),xM(n,new UZ(yj(jj(kj(new pu,w1n),"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.'))),xM(n,new UZ(yj(jj(kj(new pu,"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.'))),xM(n,new UZ(yj(jj(kj(new pu,gZn),"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."))),xM(n,new UZ(yj(jj(kj(new pu,"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."))),xM(n,new UZ(yj(jj(kj(new pu,Y3n),"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."))),xM(n,new UZ(yj(jj(kj(new pu,"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."))),xM(n,new UZ(yj(jj(kj(new pu,w4n),"Radial"),"Radial layout algorithms usually position the nodes of the graph on concentric circles."))),bKn((new xf,n)),G_n((new Lf,n)),RDn((new Df,n))},vX(h5n,"CoreOptions",684),wAn(103,22,{3:1,35:1,22:1,103:1},KC);var GPt,zPt,UPt,XPt,WPt=Ben(h5n,TJn,103,Unt,C5,eB);wAn(272,22,{3:1,35:1,22:1,272:1},_C);var VPt,QPt,YPt,JPt,ZPt,nCt=Ben(h5n,"EdgeLabelPlacement",272,Unt,q1,iB);wAn(218,22,{3:1,35:1,22:1,218:1},FC);var tCt,eCt,iCt,rCt,cCt,aCt,uCt,oCt=Ben(h5n,"EdgeRouting",218,Unt,S3,rB);wAn(312,22,{3:1,35:1,22:1,312:1},BC);var sCt,hCt,fCt,lCt,bCt,wCt,dCt,gCt,pCt,vCt,mCt,yCt=Ben(h5n,"EdgeType",312,Unt,a9,cB);wAn(977,1,QYn,xf),MWn.Qe=function(n){bKn(n)},vX(h5n,"FixedLayouterOptions",977),wAn(978,1,{},Vu),MWn.$e=function(){return new Hu},MWn._e=function(n){},vX(h5n,"FixedLayouterOptions/FixedFactory",978),wAn(334,22,{3:1,35:1,22:1,334:1},HC);var kCt,jCt,ECt,TCt,MCt,SCt=Ben(h5n,"HierarchyHandling",334,Unt,H1,aB);wAn(285,22,{3:1,35:1,22:1,285:1},qC);var PCt,CCt,ICt,OCt,ACt,$Ct,LCt,NCt,xCt,DCt,RCt=Ben(h5n,"LabelSide",285,Unt,M3,uB);wAn(93,22,{3:1,35:1,22:1,93:1},GC);var KCt,_Ct,FCt,BCt,HCt,qCt,GCt=Ben(h5n,"NodeLabelPlacement",93,Unt,ken,oB);wAn(249,22,{3:1,35:1,22:1,249:1},zC);var zCt,UCt,XCt,WCt,VCt,QCt,YCt,JCt=Ben(h5n,"PortAlignment",249,Unt,I5,sB);wAn(98,22,{3:1,35:1,22:1,98:1},UC);var ZCt,nIt,tIt,eIt,iIt,rIt,cIt,aIt=Ben(h5n,"PortConstraints",98,Unt,S8,hB);wAn(273,22,{3:1,35:1,22:1,273:1},XC);var uIt,oIt,sIt,hIt,fIt,lIt,bIt,wIt,dIt,gIt,pIt,vIt,mIt,yIt,kIt,jIt,EIt,TIt,MIt,SIt,PIt,CIt,IIt=Ben(h5n,"PortLabelPlacement",273,Unt,c9,fB);wAn(61,22,{3:1,35:1,22:1,61:1},WC);var OIt,AIt,$It,LIt,NIt,xIt,DIt,RIt,KIt,_It,FIt=Ben(h5n,"PortSide",61,Unt,h5,wB);wAn(981,1,QYn,Df),MWn.Qe=function(n){RDn(n)},vX(h5n,"RandomLayouterOptions",981),wAn(982,1,{},Qu),MWn.$e=function(){return new no},MWn._e=function(n){},vX(h5n,"RandomLayouterOptions/RandomFactory",982),wAn(374,22,{3:1,35:1,22:1,374:1},VC);var BIt,HIt,qIt,GIt,zIt,UIt,XIt,WIt,VIt,QIt,YIt=Ben(h5n,"SizeConstraint",374,Unt,T3,lB);wAn(259,22,{3:1,35:1,22:1,259:1},QC);var JIt,ZIt,nOt,tOt,eOt,iOt=Ben(h5n,"SizeOptions",259,Unt,Ein,bB);wAn(370,1,{1949:1},Xm),MWn.b=!1,MWn.c=0,MWn.d=-1,MWn.e=null,MWn.f=null,MWn.g=-1,MWn.j=!1,MWn.k=!1,MWn.n=!1,MWn.o=0,MWn.q=0,MWn.r=0,vX(y3n,"BasicProgressMonitor",370),wAn(972,209,NJn,Gu),MWn.Ze=function(n,t){var e,i,r,c,a,u,o,s,h;OTn(t,"Box layout",2),r=zy(MD(ZAn(n,(SMn(),XMt)))),c=BB(ZAn(n,GMt),116),e=qy(TD(ZAn(n,_Mt))),i=qy(TD(ZAn(n,FMt))),0===BB(ZAn(n,RMt),311).g?(u=new t_((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a)),SQ(),m$(u,new Sg(i)),a=u,o=XPn(n),(null==(s=MD(ZAn(n,DMt)))||(kW(s),s<=0))&&(s=1.3),KUn(n,(h=HUn(a,r,c,o.a,o.b,e,(kW(s),s))).a,h.b,!1,!0)):kqn(n,r,c,e),HSn(t)},vX(y3n,"BoxLayoutProvider",972),wAn(973,1,MYn,Sg),MWn.ue=function(n,t){return hNn(this,BB(n,33),BB(t,33))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},MWn.a=!1,vX(y3n,"BoxLayoutProvider/1",973),wAn(157,1,{157:1},Gtn,zx),MWn.Ib=function(){return this.c?zRn(this.c):LMn(this.b)},vX(y3n,"BoxLayoutProvider/Group",157),wAn(311,22,{3:1,35:1,22:1,311:1},YC);var rOt,cOt=Ben(y3n,"BoxLayoutProvider/PackingMode",311,Unt,P3,dB);wAn(974,1,MYn,zu),MWn.ue=function(n,t){return DQ(BB(n,157),BB(t,157))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(y3n,"BoxLayoutProvider/lambda$0$Type",974),wAn(975,1,MYn,Uu),MWn.ue=function(n,t){return cQ(BB(n,157),BB(t,157))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(y3n,"BoxLayoutProvider/lambda$1$Type",975),wAn(976,1,MYn,Xu),MWn.ue=function(n,t){return aQ(BB(n,157),BB(t,157))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(y3n,"BoxLayoutProvider/lambda$2$Type",976),wAn(1365,1,{831:1},Wu),MWn.qg=function(n,t){return AM(),!cL(t,160)||SE((Nun(),BB(n,160)),t)},vX(y3n,"ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type",1365),wAn(1366,1,lVn,Pg),MWn.td=function(n){Jsn(this.a,BB(n,146))},vX(y3n,"ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type",1366),wAn(1367,1,lVn,qu),MWn.td=function(n){BB(n,94),AM()},vX(y3n,"ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type",1367),wAn(1371,1,lVn,Cg),MWn.td=function(n){Orn(this.a,BB(n,94))},vX(y3n,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1371),wAn(1369,1,DVn,JC),MWn.Mb=function(n){return Von(this.a,this.b,BB(n,146))},vX(y3n,"ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type",1369),wAn(1368,1,DVn,ZC),MWn.Mb=function(n){return $x(this.a,this.b,BB(n,831))},vX(y3n,"ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type",1368),wAn(1370,1,lVn,nI),MWn.td=function(n){Fz(this.a,this.b,BB(n,146))},vX(y3n,"ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type",1370),wAn(935,1,{},Bu),MWn.Kb=function(n){return yA(n)},MWn.Fb=function(n){return this===n},vX(y3n,"ElkUtil/lambda$0$Type",935),wAn(936,1,lVn,tI),MWn.td=function(n){rOn(this.a,this.b,BB(n,79))},MWn.a=0,MWn.b=0,vX(y3n,"ElkUtil/lambda$1$Type",936),wAn(937,1,lVn,eI),MWn.td=function(n){Ey(this.a,this.b,BB(n,202))},MWn.a=0,MWn.b=0,vX(y3n,"ElkUtil/lambda$2$Type",937),wAn(938,1,lVn,iI),MWn.td=function(n){t$(this.a,this.b,BB(n,137))},MWn.a=0,MWn.b=0,vX(y3n,"ElkUtil/lambda$3$Type",938),wAn(939,1,lVn,Ig),MWn.td=function(n){cq(this.a,BB(n,469))},vX(y3n,"ElkUtil/lambda$4$Type",939),wAn(342,1,{35:1,342:1},$p),MWn.wd=function(n){return vL(this,BB(n,236))},MWn.Fb=function(n){var t;return!!cL(n,342)&&(t=BB(n,342),this.a==t.a)},MWn.Hb=function(){return CJ(this.a)},MWn.Ib=function(){return this.a+" (exclusive)"},MWn.a=0,vX(y3n,"ExclusiveBounds/ExclusiveLowerBound",342),wAn(1138,209,NJn,Hu),MWn.Ze=function(n,t){var i,r,c,a,u,o,s,f,l,b,w,d,g,p,v,m,y,k,j,E,T;for(OTn(t,"Fixed Layout",1),a=BB(ZAn(n,(sWn(),vSt)),218),b=0,w=0,v=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));v.e!=v.i.gc();){for(g=BB(kpn(v),33),(T=BB(ZAn(g,(Xsn(),gCt)),8))&&(SA(g,T.a,T.b),BB(ZAn(g,fCt),174).Hc((mdn(),DIt))&&(d=BB(ZAn(g,bCt),8)).a>0&&d.b>0&&KUn(g,d.a,d.b,!0,!0)),b=e.Math.max(b,g.i+g.g),w=e.Math.max(w,g.j+g.f),f=new AL((!g.n&&(g.n=new eU(zOt,g,1,7)),g.n));f.e!=f.i.gc();)o=BB(kpn(f),137),(T=BB(ZAn(o,gCt),8))&&SA(o,T.a,T.b),b=e.Math.max(b,g.i+o.i+o.g),w=e.Math.max(w,g.j+o.j+o.f);for(k=new AL((!g.c&&(g.c=new eU(XOt,g,9,9)),g.c));k.e!=k.i.gc();)for(y=BB(kpn(k),118),(T=BB(ZAn(y,gCt),8))&&SA(y,T.a,T.b),j=g.i+y.i,E=g.j+y.j,b=e.Math.max(b,j+y.g),w=e.Math.max(w,E+y.f),s=new AL((!y.n&&(y.n=new eU(zOt,y,1,7)),y.n));s.e!=s.i.gc();)o=BB(kpn(s),137),(T=BB(ZAn(o,gCt),8))&&SA(o,T.a,T.b),b=e.Math.max(b,j+o.i+o.g),w=e.Math.max(w,E+o.j+o.f);for(c=new oz(ZL(dLn(g).a.Kc(),new h));dAn(c);)l=_Un(i=BB(U5(c),79)),b=e.Math.max(b,l.a),w=e.Math.max(w,l.b);for(r=new oz(ZL(wLn(g).a.Kc(),new h));dAn(r);)JJ(PMn(i=BB(U5(r),79)))!=n&&(l=_Un(i),b=e.Math.max(b,l.a),w=e.Math.max(w,l.b))}if(a==(Mbn(),QPt))for(p=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));p.e!=p.i.gc();)for(r=new oz(ZL(dLn(g=BB(kpn(p),33)).a.Kc(),new h));dAn(r);)0==(u=rFn(i=BB(U5(r),79))).b?Ypn(i,OSt,null):Ypn(i,OSt,u);qy(TD(ZAn(n,(Xsn(),lCt))))||KUn(n,b+(m=BB(ZAn(n,wCt),116)).b+m.c,w+m.d+m.a,!0,!0),HSn(t)},vX(y3n,"FixedLayoutProvider",1138),wAn(373,134,{3:1,414:1,373:1,94:1,134:1},Yu,rnn),MWn.Jf=function(n){var t,e,i,r,c,a,u;if(n)try{for(a=kKn(n,";,;"),r=0,c=(i=a).length;r<c;++r){if(t=kKn(i[r],"\\:"),!(e=pGn(cin(),t[0])))throw Hp(new _y("Invalid option id: "+t[0]));if(null==(u=Zqn(e,t[1])))throw Hp(new _y("Invalid option value: "+t[1]));null==u?(!this.q&&(this.q=new xp),v6(this.q,e)):(!this.q&&(this.q=new xp),VW(this.q,e,u))}}catch(o){throw cL(o=lun(o),102)?Hp(new Fsn(o)):Hp(o)}},MWn.Ib=function(){return SD(P4($V((this.q?this.q:(SQ(),SQ(),het)).vc().Oc(),new Ju),x7(new YB,new Z,new W,new V,Pun(Gk(nit,1),$Vn,132,0,[]))))};var aOt,uOt,oOt,sOt,hOt=vX(y3n,"IndividualSpacings",373);wAn(971,1,{},Ju),MWn.Kb=function(n){return RQ(BB(n,42))},vX(y3n,"IndividualSpacings/lambda$0$Type",971),wAn(709,1,{},sG),MWn.c=0,vX(y3n,"InstancePool",709),wAn(1275,1,{},Zu),vX(y3n,"LoggedGraph",1275),wAn(396,22,{3:1,35:1,22:1,396:1},cI);var fOt,lOt,bOt,wOt=Ben(y3n,"LoggedGraph/Type",396,Unt,C3,gB);wAn(46,1,{20:1,46:1},rI),MWn.Jc=function(n){e5(this,n)},MWn.Fb=function(n){var t,e,i;return!!cL(n,46)&&(e=BB(n,46),t=null==this.a?null==e.a:Nfn(this.a,e.a),i=null==this.b?null==e.b:Nfn(this.b,e.b),t&&i)},MWn.Hb=function(){var n,t,e;return n=-65536&(t=null==this.a?0:nsn(this.a)),t&QVn^(-65536&(e=null==this.b?0:nsn(this.b)))>>16&QVn|n^(e&QVn)<<16},MWn.Kc=function(){return new Og(this)},MWn.Ib=function(){return null==this.a&&null==this.b?"pair(null,null)":null==this.a?"pair(null,"+Bbn(this.b)+")":null==this.b?"pair("+Bbn(this.a)+",null)":"pair("+Bbn(this.a)+","+Bbn(this.b)+")"},vX(y3n,"Pair",46),wAn(983,1,QWn,Og),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return!this.c&&(!this.b&&null!=this.a.a||null!=this.a.b)},MWn.Pb=function(){if(!this.c&&!this.b&&null!=this.a.a)return this.b=!0,this.a.a;if(!this.c&&null!=this.a.b)return this.c=!0,this.a.b;throw Hp(new yv)},MWn.Qb=function(){throw this.c&&null!=this.a.b?this.a.b=null:this.b&&null!=this.a.a&&(this.a.a=null),Hp(new dv)},MWn.b=!1,MWn.c=!1,vX(y3n,"Pair/1",983),wAn(448,1,{448:1},VV),MWn.Fb=function(n){return cV(this.a,BB(n,448).a)&&cV(this.c,BB(n,448).c)&&cV(this.d,BB(n,448).d)&&cV(this.b,BB(n,448).b)},MWn.Hb=function(){return fhn(Pun(Gk(Ant,1),HWn,1,5,[this.a,this.c,this.d,this.b]))},MWn.Ib=function(){return"("+this.a+FWn+this.c+FWn+this.d+FWn+this.b+")"},vX(y3n,"Quadruple",448),wAn(1126,209,NJn,no),MWn.Ze=function(n,t){var e;OTn(t,"Random Layout",1),0!=(!n.a&&(n.a=new eU(UOt,n,10,11)),n.a).i?(iUn(n,(e=BB(ZAn(n,(vdn(),NIt)),19))&&0!=e.a?new C4(e.a):new sbn,zy(MD(ZAn(n,AIt))),zy(MD(ZAn(n,xIt))),BB(ZAn(n,$It),116)),HSn(t)):HSn(t)},vX(y3n,"RandomLayoutProvider",1126),wAn(553,1,{}),MWn.qf=function(){return new xC(this.f.i,this.f.j)},MWn.We=function(n){return EY(n,(sWn(),aPt))?ZAn(this.f,bOt):ZAn(this.f,n)},MWn.rf=function(){return new xC(this.f.g,this.f.f)},MWn.sf=function(){return this.g},MWn.Xe=function(n){return P8(this.f,n)},MWn.tf=function(n){Pen(this.f,n.a),Cen(this.f,n.b)},MWn.uf=function(n){Sen(this.f,n.a),Men(this.f,n.b)},MWn.vf=function(n){this.g=n},MWn.g=0,vX(H5n,"ElkGraphAdapters/AbstractElkGraphElementAdapter",553),wAn(554,1,{839:1},Ag),MWn.wf=function(){var n,t;if(!this.b)for(this.b=C2(mV(this.a).i),t=new AL(mV(this.a));t.e!=t.i.gc();)n=BB(kpn(t),137),WB(this.b,new Ry(n));return this.b},MWn.b=null,vX(H5n,"ElkGraphAdapters/ElkEdgeAdapter",554),wAn(301,553,{},Dy),MWn.xf=function(){return eyn(this)},MWn.a=null,vX(H5n,"ElkGraphAdapters/ElkGraphAdapter",301),wAn(630,553,{181:1},Ry),vX(H5n,"ElkGraphAdapters/ElkLabelAdapter",630),wAn(629,553,{680:1},JN),MWn.wf=function(){return nyn(this)},MWn.Af=function(){var n;return!(n=BB(ZAn(this.f,(sWn(),$St)),142))&&(n=new lm),n},MWn.Cf=function(){return tyn(this)},MWn.Ef=function(n){var t;t=new A_(n),Ypn(this.f,(sWn(),$St),t)},MWn.Ff=function(n){Ypn(this.f,(sWn(),XSt),new O_(n))},MWn.yf=function(){return this.d},MWn.zf=function(){var n,t;if(!this.a)for(this.a=new Np,t=new oz(ZL(wLn(BB(this.f,33)).a.Kc(),new h));dAn(t);)n=BB(U5(t),79),WB(this.a,new Ag(n));return this.a},MWn.Bf=function(){var n,t;if(!this.c)for(this.c=new Np,t=new oz(ZL(dLn(BB(this.f,33)).a.Kc(),new h));dAn(t);)n=BB(U5(t),79),WB(this.c,new Ag(n));return this.c},MWn.Df=function(){return 0!=YQ(BB(this.f,33)).i||qy(TD(BB(this.f,33).We((sWn(),SSt))))},MWn.Gf=function(){_7(this,(GM(),lOt))},MWn.a=null,MWn.b=null,MWn.c=null,MWn.d=null,MWn.e=null,vX(H5n,"ElkGraphAdapters/ElkNodeAdapter",629),wAn(1266,553,{838:1},op),MWn.wf=function(){return kyn(this)},MWn.zf=function(){var n,t;if(!this.a)for(this.a=sx(BB(this.f,118).xg().i),t=new AL(BB(this.f,118).xg());t.e!=t.i.gc();)n=BB(kpn(t),79),WB(this.a,new Ag(n));return this.a},MWn.Bf=function(){var n,t;if(!this.c)for(this.c=sx(BB(this.f,118).yg().i),t=new AL(BB(this.f,118).yg());t.e!=t.i.gc();)n=BB(kpn(t),79),WB(this.c,new Ag(n));return this.c},MWn.Hf=function(){return BB(BB(this.f,118).We((sWn(),wPt)),61)},MWn.If=function(){var n,t,e,i,r,c,a;for(i=WJ(BB(this.f,118)),e=new AL(BB(this.f,118).yg());e.e!=e.i.gc();)for(a=new AL((!(n=BB(kpn(e),79)).c&&(n.c=new hK(KOt,n,5,8)),n.c));a.e!=a.i.gc();){if(Ctn(PTn(c=BB(kpn(a),82)),i))return!0;if(PTn(c)==i&&qy(TD(ZAn(n,(sWn(),PSt)))))return!0}for(t=new AL(BB(this.f,118).xg());t.e!=t.i.gc();)for(r=new AL((!(n=BB(kpn(t),79)).b&&(n.b=new hK(KOt,n,4,7)),n.b));r.e!=r.i.gc();)if(Ctn(PTn(BB(kpn(r),82)),i))return!0;return!1},MWn.a=null,MWn.b=null,MWn.c=null,vX(H5n,"ElkGraphAdapters/ElkPortAdapter",1266),wAn(1267,1,MYn,to),MWn.ue=function(n,t){return GRn(BB(n,118),BB(t,118))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(H5n,"ElkGraphAdapters/PortComparator",1267);var dOt,gOt,pOt,vOt,mOt,yOt,kOt,jOt,EOt,TOt,MOt,SOt,POt,COt,IOt,OOt,AOt,$Ot,LOt=bq(q5n,"EObject"),NOt=bq(G5n,z5n),xOt=bq(G5n,U5n),DOt=bq(G5n,X5n),ROt=bq(G5n,"ElkShape"),KOt=bq(G5n,W5n),_Ot=bq(G5n,V5n),FOt=bq(G5n,Q5n),BOt=bq(q5n,Y5n),HOt=bq(q5n,"EFactory"),qOt=bq(q5n,J5n),GOt=bq(q5n,"EPackage"),zOt=bq(G5n,Z5n),UOt=bq(G5n,n6n),XOt=bq(G5n,t6n);wAn(90,1,e6n),MWn.Jg=function(){return this.Kg(),null},MWn.Kg=function(){return null},MWn.Lg=function(){return this.Kg(),!1},MWn.Mg=function(){return!1},MWn.Ng=function(n){ban(this,n)},vX(i6n,"BasicNotifierImpl",90),wAn(97,90,f6n),MWn.nh=function(){return mA(this)},MWn.Og=function(n,t){return n},MWn.Pg=function(){throw Hp(new pv)},MWn.Qg=function(n){var t;return t=Cvn(BB(itn(this.Tg(),this.Vg()),18)),this.eh().ih(this,t.n,t.f,n)},MWn.Rg=function(n,t){throw Hp(new pv)},MWn.Sg=function(n,t,e){return T_n(this,n,t,e)},MWn.Tg=function(){var n;return this.Pg()&&(n=this.Pg().ck())?n:this.zh()},MWn.Ug=function(){return cAn(this)},MWn.Vg=function(){throw Hp(new pv)},MWn.Wg=function(){var n,t;return!(t=this.ph().dk())&&this.Pg().ik((QM(),t=null==(n=lJ(qFn(this.Tg())))?N$t:new QN(this,n))),t},MWn.Xg=function(n,t){return n},MWn.Yg=function(n){return n.Gj()?n.aj():Awn(this.Tg(),n)},MWn.Zg=function(){var n;return(n=this.Pg())?n.fk():null},MWn.$g=function(){return this.Pg()?this.Pg().ck():null},MWn._g=function(n,t,e){return Zpn(this,n,t,e)},MWn.ah=function(n){return S9(this,n)},MWn.bh=function(n,t){return V5(this,n,t)},MWn.dh=function(){var n;return!!(n=this.Pg())&&n.gk()},MWn.eh=function(){throw Hp(new pv)},MWn.fh=function(){return Ydn(this)},MWn.gh=function(n,t,e,i){return Npn(this,n,t,i)},MWn.hh=function(n,t,e){return BB(itn(this.Tg(),t),66).Nj().Qj(this,this.yh(),t-this.Ah(),n,e)},MWn.ih=function(n,t,e,i){return oJ(this,n,t,i)},MWn.jh=function(n,t,e){return BB(itn(this.Tg(),t),66).Nj().Rj(this,this.yh(),t-this.Ah(),n,e)},MWn.kh=function(){return!!this.Pg()&&!!this.Pg().ek()},MWn.lh=function(n){return vpn(this,n)},MWn.mh=function(n){return ZJ(this,n)},MWn.oh=function(n){return _qn(this,n)},MWn.ph=function(){throw Hp(new pv)},MWn.qh=function(){return this.Pg()?this.Pg().ek():null},MWn.rh=function(){return Ydn(this)},MWn.sh=function(n,t){yCn(this,n,t)},MWn.th=function(n){this.ph().hk(n)},MWn.uh=function(n){this.ph().kk(n)},MWn.vh=function(n){this.ph().jk(n)},MWn.wh=function(n,t){var e,i,r,c;return(c=this.Zg())&&n&&(t=_pn(c.Vk(),this,t),c.Zk(this)),(i=this.eh())&&(0!=(gKn(this,this.eh(),this.Vg()).Bb&BQn)?(r=i.fh())&&(n?!c&&r.Zk(this):r.Yk(this)):(t=(e=this.Vg())>=0?this.Qg(t):this.eh().ih(this,-1-e,null,t),t=this.Sg(null,-1,t))),this.uh(n),t},MWn.xh=function(n){var t,e,i,r,c,a,u;if((c=Awn(e=this.Tg(),n))>=(t=this.Ah()))return BB(n,66).Nj().Uj(this,this.yh(),c-t);if(c<=-1){if(!(a=Fqn((IPn(),Z$t),e,n)))throw Hp(new _y(r6n+n.ne()+u6n));if(ZM(),BB(a,66).Oj()||(a=Z1(B7(Z$t,a))),r=BB((i=this.Yg(a))>=0?this._g(i,!0,!0):cOn(this,a,!0),153),(u=a.Zj())>1||-1==u)return BB(BB(r,215).hl(n,!1),76)}else if(n.$j())return BB((i=this.Yg(n))>=0?this._g(i,!1,!0):cOn(this,n,!1),76);return new II(this,n)},MWn.yh=function(){return Q7(this)},MWn.zh=function(){return(QX(),t$t).S},MWn.Ah=function(){return bX(this.zh())},MWn.Bh=function(n){mPn(this,n)},MWn.Ib=function(){return P$n(this)},vX(l6n,"BasicEObjectImpl",97),wAn(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1}),MWn.Ch=function(n){return Y7(this)[n]},MWn.Dh=function(n,t){$X(Y7(this),n,t)},MWn.Eh=function(n){$X(Y7(this),n,null)},MWn.Jg=function(){return BB(yan(this,4),126)},MWn.Kg=function(){throw Hp(new pv)},MWn.Lg=function(){return 0!=(4&this.Db)},MWn.Pg=function(){throw Hp(new pv)},MWn.Fh=function(n){hgn(this,2,n)},MWn.Rg=function(n,t){this.Db=t<<16|255&this.Db,this.Fh(n)},MWn.Tg=function(){return jY(this)},MWn.Vg=function(){return this.Db>>16},MWn.Wg=function(){var n;return QM(),null==(n=lJ(qFn(BB(yan(this,16),26)||this.zh())))?N$t:new QN(this,n)},MWn.Mg=function(){return 0==(1&this.Db)},MWn.Zg=function(){return BB(yan(this,128),1935)},MWn.$g=function(){return BB(yan(this,16),26)},MWn.dh=function(){return 0!=(32&this.Db)},MWn.eh=function(){return BB(yan(this,2),49)},MWn.kh=function(){return 0!=(64&this.Db)},MWn.ph=function(){throw Hp(new pv)},MWn.qh=function(){return BB(yan(this,64),281)},MWn.th=function(n){hgn(this,16,n)},MWn.uh=function(n){hgn(this,128,n)},MWn.vh=function(n){hgn(this,64,n)},MWn.yh=function(){return fgn(this)},MWn.Db=0,vX(l6n,"MinimalEObjectImpl",114),wAn(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),MWn.Fh=function(n){this.Cb=n},MWn.eh=function(){return this.Cb},vX(l6n,"MinimalEObjectImpl/Container",115),wAn(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),MWn._g=function(n,t,e){return Eyn(this,n,t,e)},MWn.jh=function(n,t,e){return eSn(this,n,t,e)},MWn.lh=function(n){return m0(this,n)},MWn.sh=function(n,t){rsn(this,n,t)},MWn.zh=function(){return CXn(),POt},MWn.Bh=function(n){zun(this,n)},MWn.Ve=function(){return lpn(this)},MWn.We=function(n){return ZAn(this,n)},MWn.Xe=function(n){return P8(this,n)},MWn.Ye=function(n,t){return Ypn(this,n,t)},vX(b6n,"EMapPropertyHolderImpl",1985),wAn(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ro),MWn._g=function(n,t,e){switch(n){case 0:return this.a;case 1:return this.b}return Zpn(this,n,t,e)},MWn.lh=function(n){switch(n){case 0:return 0!=this.a;case 1:return 0!=this.b}return vpn(this,n)},MWn.sh=function(n,t){switch(n){case 0:return void jen(this,Gy(MD(t)));case 1:return void Een(this,Gy(MD(t)))}yCn(this,n,t)},MWn.zh=function(){return CXn(),pOt},MWn.Bh=function(n){switch(n){case 0:return void jen(this,0);case 1:return void Een(this,0)}mPn(this,n)},MWn.Ib=function(){var n;return 0!=(64&this.Db)?P$n(this):((n=new fN(P$n(this))).a+=" (x: ",vE(n,this.a),n.a+=", y: ",vE(n,this.b),n.a+=")",n.a)},MWn.a=0,MWn.b=0,vX(b6n,"ElkBendPointImpl",567),wAn(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),MWn._g=function(n,t,e){return _fn(this,n,t,e)},MWn.hh=function(n,t,e){return FTn(this,n,t,e)},MWn.jh=function(n,t,e){return run(this,n,t,e)},MWn.lh=function(n){return Ean(this,n)},MWn.sh=function(n,t){Gjn(this,n,t)},MWn.zh=function(){return CXn(),kOt},MWn.Bh=function(n){ofn(this,n)},MWn.zg=function(){return this.k},MWn.Ag=function(){return mV(this)},MWn.Ib=function(){return Yln(this)},MWn.k=null,vX(b6n,"ElkGraphElementImpl",723),wAn(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),MWn._g=function(n,t,e){return Rbn(this,n,t,e)},MWn.lh=function(n){return fwn(this,n)},MWn.sh=function(n,t){zjn(this,n,t)},MWn.zh=function(){return CXn(),SOt},MWn.Bh=function(n){Dwn(this,n)},MWn.Bg=function(){return this.f},MWn.Cg=function(){return this.g},MWn.Dg=function(){return this.i},MWn.Eg=function(){return this.j},MWn.Fg=function(n,t){MA(this,n,t)},MWn.Gg=function(n,t){SA(this,n,t)},MWn.Hg=function(n){Pen(this,n)},MWn.Ig=function(n){Cen(this,n)},MWn.Ib=function(){return mSn(this)},MWn.f=0,MWn.g=0,MWn.i=0,MWn.j=0,vX(b6n,"ElkShapeImpl",724),wAn(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),MWn._g=function(n,t,e){return Hvn(this,n,t,e)},MWn.hh=function(n,t,e){return djn(this,n,t,e)},MWn.jh=function(n,t,e){return gjn(this,n,t,e)},MWn.lh=function(n){return Gon(this,n)},MWn.sh=function(n,t){LAn(this,n,t)},MWn.zh=function(){return CXn(),vOt},MWn.Bh=function(n){xpn(this,n)},MWn.xg=function(){return!this.d&&(this.d=new hK(_Ot,this,8,5)),this.d},MWn.yg=function(){return!this.e&&(this.e=new hK(_Ot,this,7,4)),this.e},vX(b6n,"ElkConnectableShapeImpl",725),wAn(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},io),MWn.Qg=function(n){return Mkn(this,n)},MWn._g=function(n,t,e){switch(n){case 3:return XJ(this);case 4:return!this.b&&(this.b=new hK(KOt,this,4,7)),this.b;case 5:return!this.c&&(this.c=new hK(KOt,this,5,8)),this.c;case 6:return!this.a&&(this.a=new eU(FOt,this,6,6)),this.a;case 7:return hN(),!this.b&&(this.b=new hK(KOt,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new hK(KOt,this,5,8)),this.c.i<=1));case 8:return hN(),!!nAn(this);case 9:return hN(),!!QIn(this);case 10:return hN(),!this.b&&(this.b=new hK(KOt,this,4,7)),0!=this.b.i&&(!this.c&&(this.c=new hK(KOt,this,5,8)),0!=this.c.i)}return _fn(this,n,t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 3:return this.Cb&&(e=(i=this.Db>>16)>=0?Mkn(this,e):this.Cb.ih(this,-1-i,null,e)),VD(this,BB(n,33),e);case 4:return!this.b&&(this.b=new hK(KOt,this,4,7)),Ywn(this.b,n,e);case 5:return!this.c&&(this.c=new hK(KOt,this,5,8)),Ywn(this.c,n,e);case 6:return!this.a&&(this.a=new eU(FOt,this,6,6)),Ywn(this.a,n,e)}return FTn(this,n,t,e)},MWn.jh=function(n,t,e){switch(t){case 3:return VD(this,null,e);case 4:return!this.b&&(this.b=new hK(KOt,this,4,7)),_pn(this.b,n,e);case 5:return!this.c&&(this.c=new hK(KOt,this,5,8)),_pn(this.c,n,e);case 6:return!this.a&&(this.a=new eU(FOt,this,6,6)),_pn(this.a,n,e)}return run(this,n,t,e)},MWn.lh=function(n){switch(n){case 3:return!!XJ(this);case 4:return!!this.b&&0!=this.b.i;case 5:return!!this.c&&0!=this.c.i;case 6:return!!this.a&&0!=this.a.i;case 7:return!this.b&&(this.b=new hK(KOt,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new hK(KOt,this,5,8)),this.c.i<=1));case 8:return nAn(this);case 9:return QIn(this);case 10:return!this.b&&(this.b=new hK(KOt,this,4,7)),0!=this.b.i&&(!this.c&&(this.c=new hK(KOt,this,5,8)),0!=this.c.i)}return Ean(this,n)},MWn.sh=function(n,t){switch(n){case 3:return void HLn(this,BB(t,33));case 4:return!this.b&&(this.b=new hK(KOt,this,4,7)),sqn(this.b),!this.b&&(this.b=new hK(KOt,this,4,7)),void pX(this.b,BB(t,14));case 5:return!this.c&&(this.c=new hK(KOt,this,5,8)),sqn(this.c),!this.c&&(this.c=new hK(KOt,this,5,8)),void pX(this.c,BB(t,14));case 6:return!this.a&&(this.a=new eU(FOt,this,6,6)),sqn(this.a),!this.a&&(this.a=new eU(FOt,this,6,6)),void pX(this.a,BB(t,14))}Gjn(this,n,t)},MWn.zh=function(){return CXn(),mOt},MWn.Bh=function(n){switch(n){case 3:return void HLn(this,null);case 4:return!this.b&&(this.b=new hK(KOt,this,4,7)),void sqn(this.b);case 5:return!this.c&&(this.c=new hK(KOt,this,5,8)),void sqn(this.c);case 6:return!this.a&&(this.a=new eU(FOt,this,6,6)),void sqn(this.a)}ofn(this,n)},MWn.Ib=function(){return lHn(this)},vX(b6n,"ElkEdgeImpl",352),wAn(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},co),MWn.Qg=function(n){return skn(this,n)},MWn._g=function(n,t,e){switch(n){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 $L(xOt,this,5)),this.a;case 6:return VJ(this);case 7:return t?Pvn(this):this.i;case 8:return t?Svn(this):this.f;case 9:return!this.g&&(this.g=new hK(FOt,this,9,10)),this.g;case 10:return!this.e&&(this.e=new hK(FOt,this,10,9)),this.e;case 11:return this.d}return Eyn(this,n,t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 6:return this.Cb&&(e=(i=this.Db>>16)>=0?skn(this,e):this.Cb.ih(this,-1-i,null,e)),QD(this,BB(n,79),e);case 9:return!this.g&&(this.g=new hK(FOt,this,9,10)),Ywn(this.g,n,e);case 10:return!this.e&&(this.e=new hK(FOt,this,10,9)),Ywn(this.e,n,e)}return BB(itn(BB(yan(this,16),26)||(CXn(),yOt),t),66).Nj().Qj(this,fgn(this),t-bX((CXn(),yOt)),n,e)},MWn.jh=function(n,t,e){switch(t){case 5:return!this.a&&(this.a=new $L(xOt,this,5)),_pn(this.a,n,e);case 6:return QD(this,null,e);case 9:return!this.g&&(this.g=new hK(FOt,this,9,10)),_pn(this.g,n,e);case 10:return!this.e&&(this.e=new hK(FOt,this,10,9)),_pn(this.e,n,e)}return eSn(this,n,t,e)},MWn.lh=function(n){switch(n){case 1:return 0!=this.j;case 2:return 0!=this.k;case 3:return 0!=this.b;case 4:return 0!=this.c;case 5:return!!this.a&&0!=this.a.i;case 6:return!!VJ(this);case 7:return!!this.i;case 8:return!!this.f;case 9:return!!this.g&&0!=this.g.i;case 10:return!!this.e&&0!=this.e.i;case 11:return null!=this.d}return m0(this,n)},MWn.sh=function(n,t){switch(n){case 1:return void Ien(this,Gy(MD(t)));case 2:return void Aen(this,Gy(MD(t)));case 3:return void Ten(this,Gy(MD(t)));case 4:return void Oen(this,Gy(MD(t)));case 5:return!this.a&&(this.a=new $L(xOt,this,5)),sqn(this.a),!this.a&&(this.a=new $L(xOt,this,5)),void pX(this.a,BB(t,14));case 6:return void FLn(this,BB(t,79));case 7:return void Nin(this,BB(t,82));case 8:return void Lin(this,BB(t,82));case 9:return!this.g&&(this.g=new hK(FOt,this,9,10)),sqn(this.g),!this.g&&(this.g=new hK(FOt,this,9,10)),void pX(this.g,BB(t,14));case 10:return!this.e&&(this.e=new hK(FOt,this,10,9)),sqn(this.e),!this.e&&(this.e=new hK(FOt,this,10,9)),void pX(this.e,BB(t,14));case 11:return void crn(this,SD(t))}rsn(this,n,t)},MWn.zh=function(){return CXn(),yOt},MWn.Bh=function(n){switch(n){case 1:return void Ien(this,0);case 2:return void Aen(this,0);case 3:return void Ten(this,0);case 4:return void Oen(this,0);case 5:return!this.a&&(this.a=new $L(xOt,this,5)),void sqn(this.a);case 6:return void FLn(this,null);case 7:return void Nin(this,null);case 8:return void Lin(this,null);case 9:return!this.g&&(this.g=new hK(FOt,this,9,10)),void sqn(this.g);case 10:return!this.e&&(this.e=new hK(FOt,this,10,9)),void sqn(this.e);case 11:return void crn(this,null)}zun(this,n)},MWn.Ib=function(){return ROn(this)},MWn.b=0,MWn.c=0,MWn.d=null,MWn.j=0,MWn.k=0,vX(b6n,"ElkEdgeSectionImpl",439),wAn(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),MWn._g=function(n,t,e){return 0==n?(!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab):U9(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t,e)},MWn.hh=function(n,t,e){return 0==t?(!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e)):BB(itn(BB(yan(this,16),26)||this.zh(),t),66).Nj().Qj(this,fgn(this),t-bX(this.zh()),n,e)},MWn.jh=function(n,t,e){return 0==t?(!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e)):BB(itn(BB(yan(this,16),26)||this.zh(),t),66).Nj().Rj(this,fgn(this),t-bX(this.zh()),n,e)},MWn.lh=function(n){return 0==n?!!this.Ab&&0!=this.Ab.i:O3(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.oh=function(n){return hUn(this,n)},MWn.sh=function(n,t){if(0===n)return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));Lbn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t)},MWn.uh=function(n){hgn(this,128,n)},MWn.zh=function(){return gWn(),b$t},MWn.Bh=function(n){if(0===n)return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);qfn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.Gh=function(){this.Bb|=1},MWn.Hh=function(n){return N_n(this,n)},MWn.Bb=0,vX(l6n,"EModelElementImpl",150),wAn(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},Rf),MWn.Ih=function(n,t){return qGn(this,n,t)},MWn.Jh=function(n){var t,e,i,r;if(this.a!=Utn(n)||0!=(256&n.Bb))throw Hp(new _y(m6n+n.zb+g6n));for(e=kY(n);0!=a4(e.a).i;){if(iyn(t=BB(eGn(e,0,cL(r=BB(Wtn(a4(e.a),0),87).c,88)?BB(r,26):(gWn(),d$t)),26)))return BB(i=Utn(t).Nh().Jh(t),49).th(n),i;e=kY(t)}return"java.util.Map$Entry"==(null!=n.D?n.D:n.B)?new fq(n):new jH(n)},MWn.Kh=function(n,t){return xXn(this,n,t)},MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.a}return U9(this,n-bX((gWn(),h$t)),itn(BB(yan(this,16),26)||h$t,n),t,e)},MWn.hh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 1:return this.a&&(e=BB(this.a,49).ih(this,4,GOt,e)),Jhn(this,BB(n,235),e)}return BB(itn(BB(yan(this,16),26)||(gWn(),h$t),t),66).Nj().Qj(this,fgn(this),t-bX((gWn(),h$t)),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 1:return Jhn(this,null,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),h$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),h$t)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return!!this.a}return O3(this,n-bX((gWn(),h$t)),itn(BB(yan(this,16),26)||h$t,n))},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void xMn(this,BB(t,235))}Lbn(this,n-bX((gWn(),h$t)),itn(BB(yan(this,16),26)||h$t,n),t)},MWn.zh=function(){return gWn(),h$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return void xMn(this,null)}qfn(this,n-bX((gWn(),h$t)),itn(BB(yan(this,16),26)||h$t,n))},vX(l6n,"EFactoryImpl",704),wAn(k6n,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},ao),MWn.Ih=function(n,t){switch(n.yj()){case 12:return BB(t,146).tg();case 13:return Bbn(t);default:throw Hp(new _y(d6n+n.ne()+g6n))}},MWn.Jh=function(n){var t;switch(-1==n.G&&(n.G=(t=Utn(n))?uvn(t.Mh(),n):-1),n.G){case 4:return new uo;case 6:return new jm;case 7:return new Em;case 8:return new io;case 9:return new ro;case 10:return new co;case 11:return new so;default:throw Hp(new _y(m6n+n.zb+g6n))}},MWn.Kh=function(n,t){switch(n.yj()){case 13:case 12:return null;default:throw Hp(new _y(d6n+n.ne()+g6n))}},vX(b6n,"ElkGraphFactoryImpl",k6n),wAn(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),MWn.Wg=function(){var n;return null==(n=lJ(qFn(BB(yan(this,16),26)||this.zh())))?(QM(),QM(),N$t):new Wx(this,n)},MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.ne()}return U9(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb}return O3(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void this.Lh(SD(t))}Lbn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t)},MWn.zh=function(){return gWn(),w$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return void this.Lh(null)}qfn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.ne=function(){return this.zb},MWn.Lh=function(n){Nrn(this,n)},MWn.Ib=function(){return kfn(this)},MWn.zb=null,vX(l6n,"ENamedElementImpl",438),wAn(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},vY),MWn.Qg=function(n){return wkn(this,n)},MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,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 Jz(this,HAt,this)),this.rb;case 6:return!this.vb&&(this.vb=new eK(GOt,this,6,7)),this.vb;case 7:return t?this.Db>>16==7?BB(this.Cb,235):null:QJ(this)}return U9(this,n-bX((gWn(),v$t)),itn(BB(yan(this,16),26)||v$t,n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 4:return this.sb&&(e=BB(this.sb,49).ih(this,1,HOt,e)),jfn(this,BB(n,471),e);case 5:return!this.rb&&(this.rb=new Jz(this,HAt,this)),Ywn(this.rb,n,e);case 6:return!this.vb&&(this.vb=new eK(GOt,this,6,7)),Ywn(this.vb,n,e);case 7:return this.Cb&&(e=(i=this.Db>>16)>=0?wkn(this,e):this.Cb.ih(this,-1-i,null,e)),T_n(this,n,7,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),v$t),t),66).Nj().Qj(this,fgn(this),t-bX((gWn(),v$t)),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 4:return jfn(this,null,e);case 5:return!this.rb&&(this.rb=new Jz(this,HAt,this)),_pn(this.rb,n,e);case 6:return!this.vb&&(this.vb=new eK(GOt,this,6,7)),_pn(this.vb,n,e);case 7:return T_n(this,null,7,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),v$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),v$t)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.yb;case 3:return null!=this.xb;case 4:return!!this.sb;case 5:return!!this.rb&&0!=this.rb.i;case 6:return!!this.vb&&0!=this.vb.i;case 7:return!!QJ(this)}return O3(this,n-bX((gWn(),v$t)),itn(BB(yan(this,16),26)||v$t,n))},MWn.oh=function(n){return LNn(this,n)||hUn(this,n)},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void Nrn(this,SD(t));case 2:return void Drn(this,SD(t));case 3:return void xrn(this,SD(t));case 4:return void iSn(this,BB(t,471));case 5:return!this.rb&&(this.rb=new Jz(this,HAt,this)),sqn(this.rb),!this.rb&&(this.rb=new Jz(this,HAt,this)),void pX(this.rb,BB(t,14));case 6:return!this.vb&&(this.vb=new eK(GOt,this,6,7)),sqn(this.vb),!this.vb&&(this.vb=new eK(GOt,this,6,7)),void pX(this.vb,BB(t,14))}Lbn(this,n-bX((gWn(),v$t)),itn(BB(yan(this,16),26)||v$t,n),t)},MWn.vh=function(n){var t,e;if(n&&this.rb)for(e=new AL(this.rb);e.e!=e.i.gc();)cL(t=kpn(e),351)&&(BB(t,351).w=null);hgn(this,64,n)},MWn.zh=function(){return gWn(),v$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return void Nrn(this,null);case 2:return void Drn(this,null);case 3:return void xrn(this,null);case 4:return void iSn(this,null);case 5:return!this.rb&&(this.rb=new Jz(this,HAt,this)),void sqn(this.rb);case 6:return!this.vb&&(this.vb=new eK(GOt,this,6,7)),void sqn(this.vb)}qfn(this,n-bX((gWn(),v$t)),itn(BB(yan(this,16),26)||v$t,n))},MWn.Gh=function(){Tyn(this)},MWn.Mh=function(){return!this.rb&&(this.rb=new Jz(this,HAt,this)),this.rb},MWn.Nh=function(){return this.sb},MWn.Oh=function(){return this.ub},MWn.Ph=function(){return this.xb},MWn.Qh=function(){return this.yb},MWn.Rh=function(n){this.ub=n},MWn.Ib=function(){var n;return 0!=(64&this.Db)?kfn(this):((n=new fN(kfn(this))).a+=" (nsURI: ",cO(n,this.yb),n.a+=", nsPrefix: ",cO(n,this.xb),n.a+=")",n.a)},MWn.xb=null,MWn.yb=null,vX(l6n,"EPackageImpl",179),wAn(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},sAn),MWn.q=!1,MWn.r=!1;var WOt=!1;vX(b6n,"ElkGraphPackageImpl",555),wAn(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},uo),MWn.Qg=function(n){return hkn(this,n)},MWn._g=function(n,t,e){switch(n){case 7:return YJ(this);case 8:return this.a}return Rbn(this,n,t,e)},MWn.hh=function(n,t,e){var i;return 7===t?(this.Cb&&(e=(i=this.Db>>16)>=0?hkn(this,e):this.Cb.ih(this,-1-i,null,e)),VG(this,BB(n,160),e)):FTn(this,n,t,e)},MWn.jh=function(n,t,e){return 7==t?VG(this,null,e):run(this,n,t,e)},MWn.lh=function(n){switch(n){case 7:return!!YJ(this);case 8:return!mK("",this.a)}return fwn(this,n)},MWn.sh=function(n,t){switch(n){case 7:return void INn(this,BB(t,160));case 8:return void xin(this,SD(t))}zjn(this,n,t)},MWn.zh=function(){return CXn(),jOt},MWn.Bh=function(n){switch(n){case 7:return void INn(this,null);case 8:return void xin(this,"")}Dwn(this,n)},MWn.Ib=function(){return cPn(this)},MWn.a="",vX(b6n,"ElkLabelImpl",354),wAn(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},jm),MWn.Qg=function(n){return Skn(this,n)},MWn._g=function(n,t,e){switch(n){case 9:return!this.c&&(this.c=new eU(XOt,this,9,9)),this.c;case 10:return!this.a&&(this.a=new eU(UOt,this,10,11)),this.a;case 11:return JJ(this);case 12:return!this.b&&(this.b=new eU(_Ot,this,12,3)),this.b;case 13:return hN(),!this.a&&(this.a=new eU(UOt,this,10,11)),this.a.i>0}return Hvn(this,n,t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 9:return!this.c&&(this.c=new eU(XOt,this,9,9)),Ywn(this.c,n,e);case 10:return!this.a&&(this.a=new eU(UOt,this,10,11)),Ywn(this.a,n,e);case 11:return this.Cb&&(e=(i=this.Db>>16)>=0?Skn(this,e):this.Cb.ih(this,-1-i,null,e)),zR(this,BB(n,33),e);case 12:return!this.b&&(this.b=new eU(_Ot,this,12,3)),Ywn(this.b,n,e)}return djn(this,n,t,e)},MWn.jh=function(n,t,e){switch(t){case 9:return!this.c&&(this.c=new eU(XOt,this,9,9)),_pn(this.c,n,e);case 10:return!this.a&&(this.a=new eU(UOt,this,10,11)),_pn(this.a,n,e);case 11:return zR(this,null,e);case 12:return!this.b&&(this.b=new eU(_Ot,this,12,3)),_pn(this.b,n,e)}return gjn(this,n,t,e)},MWn.lh=function(n){switch(n){case 9:return!!this.c&&0!=this.c.i;case 10:return!!this.a&&0!=this.a.i;case 11:return!!JJ(this);case 12:return!!this.b&&0!=this.b.i;case 13:return!this.a&&(this.a=new eU(UOt,this,10,11)),this.a.i>0}return Gon(this,n)},MWn.sh=function(n,t){switch(n){case 9:return!this.c&&(this.c=new eU(XOt,this,9,9)),sqn(this.c),!this.c&&(this.c=new eU(XOt,this,9,9)),void pX(this.c,BB(t,14));case 10:return!this.a&&(this.a=new eU(UOt,this,10,11)),sqn(this.a),!this.a&&(this.a=new eU(UOt,this,10,11)),void pX(this.a,BB(t,14));case 11:return void nNn(this,BB(t,33));case 12:return!this.b&&(this.b=new eU(_Ot,this,12,3)),sqn(this.b),!this.b&&(this.b=new eU(_Ot,this,12,3)),void pX(this.b,BB(t,14))}LAn(this,n,t)},MWn.zh=function(){return CXn(),EOt},MWn.Bh=function(n){switch(n){case 9:return!this.c&&(this.c=new eU(XOt,this,9,9)),void sqn(this.c);case 10:return!this.a&&(this.a=new eU(UOt,this,10,11)),void sqn(this.a);case 11:return void nNn(this,null);case 12:return!this.b&&(this.b=new eU(_Ot,this,12,3)),void sqn(this.b)}xpn(this,n)},MWn.Ib=function(){return zRn(this)},vX(b6n,"ElkNodeImpl",239),wAn(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Em),MWn.Qg=function(n){return fkn(this,n)},MWn._g=function(n,t,e){return 9==n?WJ(this):Hvn(this,n,t,e)},MWn.hh=function(n,t,e){var i;return 9===t?(this.Cb&&(e=(i=this.Db>>16)>=0?fkn(this,e):this.Cb.ih(this,-1-i,null,e)),YD(this,BB(n,33),e)):djn(this,n,t,e)},MWn.jh=function(n,t,e){return 9==t?YD(this,null,e):gjn(this,n,t,e)},MWn.lh=function(n){return 9==n?!!WJ(this):Gon(this,n)},MWn.sh=function(n,t){9!==n?LAn(this,n,t):BLn(this,BB(t,33))},MWn.zh=function(){return CXn(),TOt},MWn.Bh=function(n){9!==n?xpn(this,n):BLn(this,null)},MWn.Ib=function(){return URn(this)},vX(b6n,"ElkPortImpl",186);var VOt=bq(B6n,"BasicEMap/Entry");wAn(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},so),MWn.Fb=function(n){return this===n},MWn.cd=function(){return this.b},MWn.Hb=function(){return PN(this)},MWn.Uh=function(n){Din(this,BB(n,146))},MWn._g=function(n,t,e){switch(n){case 0:return this.b;case 1:return this.c}return Zpn(this,n,t,e)},MWn.lh=function(n){switch(n){case 0:return!!this.b;case 1:return null!=this.c}return vpn(this,n)},MWn.sh=function(n,t){switch(n){case 0:return void Din(this,BB(t,146));case 1:return void _in(this,t)}yCn(this,n,t)},MWn.zh=function(){return CXn(),MOt},MWn.Bh=function(n){switch(n){case 0:return void Din(this,null);case 1:return void _in(this,null)}mPn(this,n)},MWn.Sh=function(){var n;return-1==this.a&&(n=this.b,this.a=n?nsn(n):0),this.a},MWn.dd=function(){return this.c},MWn.Th=function(n){this.a=n},MWn.ed=function(n){var t;return t=this.c,_in(this,n),t},MWn.Ib=function(){var n;return 0!=(64&this.Db)?P$n(this):(oO(oO(oO(n=new Ck,this.b?this.b.tg():zWn),e1n),kN(this.c)),n.a)},MWn.a=-1,MWn.c=null;var QOt,YOt,JOt,ZOt,nAt,tAt,eAt,iAt,rAt=vX(b6n,"ElkPropertyToValueMapEntryImpl",1092);wAn(984,1,{},lo),vX(G6n,"JsonAdapter",984),wAn(210,60,BVn,ek),vX(G6n,"JsonImportException",210),wAn(857,1,{},dkn),vX(G6n,"JsonImporter",857),wAn(891,1,{},aI),vX(G6n,"JsonImporter/lambda$0$Type",891),wAn(892,1,{},uI),vX(G6n,"JsonImporter/lambda$1$Type",892),wAn(900,1,{},$g),vX(G6n,"JsonImporter/lambda$10$Type",900),wAn(902,1,{},oI),vX(G6n,"JsonImporter/lambda$11$Type",902),wAn(903,1,{},sI),vX(G6n,"JsonImporter/lambda$12$Type",903),wAn(909,1,{},fQ),vX(G6n,"JsonImporter/lambda$13$Type",909),wAn(908,1,{},hQ),vX(G6n,"JsonImporter/lambda$14$Type",908),wAn(904,1,{},hI),vX(G6n,"JsonImporter/lambda$15$Type",904),wAn(905,1,{},fI),vX(G6n,"JsonImporter/lambda$16$Type",905),wAn(906,1,{},lI),vX(G6n,"JsonImporter/lambda$17$Type",906),wAn(907,1,{},bI),vX(G6n,"JsonImporter/lambda$18$Type",907),wAn(912,1,{},Lg),vX(G6n,"JsonImporter/lambda$19$Type",912),wAn(893,1,{},Ng),vX(G6n,"JsonImporter/lambda$2$Type",893),wAn(910,1,{},xg),vX(G6n,"JsonImporter/lambda$20$Type",910),wAn(911,1,{},Dg),vX(G6n,"JsonImporter/lambda$21$Type",911),wAn(915,1,{},Rg),vX(G6n,"JsonImporter/lambda$22$Type",915),wAn(913,1,{},Kg),vX(G6n,"JsonImporter/lambda$23$Type",913),wAn(914,1,{},_g),vX(G6n,"JsonImporter/lambda$24$Type",914),wAn(917,1,{},Fg),vX(G6n,"JsonImporter/lambda$25$Type",917),wAn(916,1,{},Bg),vX(G6n,"JsonImporter/lambda$26$Type",916),wAn(918,1,lVn,wI),MWn.td=function(n){E9(this.b,this.a,SD(n))},vX(G6n,"JsonImporter/lambda$27$Type",918),wAn(919,1,lVn,dI),MWn.td=function(n){T9(this.b,this.a,SD(n))},vX(G6n,"JsonImporter/lambda$28$Type",919),wAn(920,1,{},gI),vX(G6n,"JsonImporter/lambda$29$Type",920),wAn(896,1,{},Hg),vX(G6n,"JsonImporter/lambda$3$Type",896),wAn(921,1,{},pI),vX(G6n,"JsonImporter/lambda$30$Type",921),wAn(922,1,{},qg),vX(G6n,"JsonImporter/lambda$31$Type",922),wAn(923,1,{},Gg),vX(G6n,"JsonImporter/lambda$32$Type",923),wAn(924,1,{},zg),vX(G6n,"JsonImporter/lambda$33$Type",924),wAn(925,1,{},Ug),vX(G6n,"JsonImporter/lambda$34$Type",925),wAn(859,1,{},Xg),vX(G6n,"JsonImporter/lambda$35$Type",859),wAn(929,1,{},MB),vX(G6n,"JsonImporter/lambda$36$Type",929),wAn(926,1,lVn,Wg),MWn.td=function(n){Y4(this.a,BB(n,469))},vX(G6n,"JsonImporter/lambda$37$Type",926),wAn(927,1,lVn,SI),MWn.td=function(n){lO(this.a,this.b,BB(n,202))},vX(G6n,"JsonImporter/lambda$38$Type",927),wAn(928,1,lVn,PI),MWn.td=function(n){bO(this.a,this.b,BB(n,202))},vX(G6n,"JsonImporter/lambda$39$Type",928),wAn(894,1,{},Vg),vX(G6n,"JsonImporter/lambda$4$Type",894),wAn(930,1,lVn,Qg),MWn.td=function(n){J4(this.a,BB(n,8))},vX(G6n,"JsonImporter/lambda$40$Type",930),wAn(895,1,{},Yg),vX(G6n,"JsonImporter/lambda$5$Type",895),wAn(899,1,{},Jg),vX(G6n,"JsonImporter/lambda$6$Type",899),wAn(897,1,{},Zg),vX(G6n,"JsonImporter/lambda$7$Type",897),wAn(898,1,{},np),vX(G6n,"JsonImporter/lambda$8$Type",898),wAn(901,1,{},tp),vX(G6n,"JsonImporter/lambda$9$Type",901),wAn(948,1,lVn,ep),MWn.td=function(n){nW(this.a,new GX(SD(n)))},vX(G6n,"JsonMetaDataConverter/lambda$0$Type",948),wAn(949,1,lVn,ip),MWn.td=function(n){_X(this.a,BB(n,237))},vX(G6n,"JsonMetaDataConverter/lambda$1$Type",949),wAn(950,1,lVn,rp),MWn.td=function(n){t1(this.a,BB(n,149))},vX(G6n,"JsonMetaDataConverter/lambda$2$Type",950),wAn(951,1,lVn,cp),MWn.td=function(n){FX(this.a,BB(n,175))},vX(G6n,"JsonMetaDataConverter/lambda$3$Type",951),wAn(237,22,{3:1,35:1,22:1,237:1},MI);var cAt,aAt=Ben(IJn,"GraphFeature",237,Unt,Ktn,pB);wAn(13,1,{35:1,146:1},up,iR,$O,XA),MWn.wd=function(n){return pL(this,BB(n,146))},MWn.Fb=function(n){return EY(this,n)},MWn.wg=function(){return mpn(this)},MWn.tg=function(){return this.b},MWn.Hb=function(){return vvn(this.b)},MWn.Ib=function(){return this.b},vX(IJn,"Property",13),wAn(818,1,MYn,ap),MWn.ue=function(n,t){return _ln(this,BB(n,94),BB(t,94))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(IJn,"PropertyHolderComparator",818),wAn(695,1,QWn,sp),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return A9(this)},MWn.Qb=function(){uE()},MWn.Ob=function(){return!!this.a},vX(c8n,"ElkGraphUtil/AncestorIterator",695);var uAt=bq(B6n,"EList");wAn(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1}),MWn.Vc=function(n,t){sln(this,n,t)},MWn.Fc=function(n){return f9(this,n)},MWn.Wc=function(n,t){return oon(this,n,t)},MWn.Gc=function(n){return pX(this,n)},MWn.Zh=function(){return new ax(this)},MWn.$h=function(){return new ux(this)},MWn._h=function(n){return sin(this,n)},MWn.ai=function(){return!0},MWn.bi=function(n,t){},MWn.ci=function(){},MWn.di=function(n,t){L8(this,n,t)},MWn.ei=function(n,t,e){},MWn.fi=function(n,t){},MWn.gi=function(n,t,e){},MWn.Fb=function(n){return QDn(this,n)},MWn.Hb=function(){return Mun(this)},MWn.hi=function(){return!1},MWn.Kc=function(){return new AL(this)},MWn.Yc=function(){return new cx(this)},MWn.Zc=function(n){var t;if(t=this.gc(),n<0||n>t)throw Hp(new tK(n,t));return new GU(this,n)},MWn.ji=function(n,t){this.ii(n,this.Xc(t))},MWn.Mc=function(n){return snn(this,n)},MWn.li=function(n,t){return t},MWn._c=function(n,t){return ovn(this,n,t)},MWn.Ib=function(){return Jbn(this)},MWn.ni=function(){return!0},MWn.oi=function(n,t){return xsn(this,t)},vX(B6n,"AbstractEList",67),wAn(63,67,h8n,go,gtn,jcn),MWn.Vh=function(n,t){return BTn(this,n,t)},MWn.Wh=function(n){return bmn(this,n)},MWn.Xh=function(n,t){Ifn(this,n,t)},MWn.Yh=function(n){c6(this,n)},MWn.pi=function(n){return F9(this,n)},MWn.$b=function(){a6(this)},MWn.Hc=function(n){return Sjn(this,n)},MWn.Xb=function(n){return Wtn(this,n)},MWn.qi=function(n){var t,e,i;++this.j,n>(e=null==this.g?0:this.g.length)&&(i=this.g,(t=e+(e/2|0)+4)<n&&(t=n),this.g=this.ri(t),null!=i&&aHn(i,0,this.g,0,this.i))},MWn.Xc=function(n){return Wyn(this,n)},MWn.dc=function(){return 0==this.i},MWn.ii=function(n,t){return YIn(this,n,t)},MWn.ri=function(n){return x8(Ant,HWn,1,n,5,1)},MWn.ki=function(n){return this.g[n]},MWn.$c=function(n){return Lyn(this,n)},MWn.mi=function(n,t){return onn(this,n,t)},MWn.gc=function(){return this.i},MWn.Pc=function(){return N3(this)},MWn.Qc=function(n){return Qwn(this,n)},MWn.i=0;var oAt=vX(B6n,"BasicEList",63),sAt=bq(B6n,"TreeIterator");wAn(694,63,f8n),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return null!=this.g||this.c?null==this.g||0!=this.i&&BB(this.g[this.i-1],47).Ob():tZ(this)},MWn.Pb=function(){return aLn(this)},MWn.Qb=function(){if(!this.e)throw Hp(new Fy("There is no valid object to remove."));this.e.Qb()},MWn.c=!1,vX(B6n,"AbstractTreeIterator",694),wAn(685,694,f8n,OA),MWn.si=function(n){var t;return cL(t=BB(n,56).Wg().Kc(),279)&&BB(t,279).Nk(new bo),t},vX(c8n,"ElkGraphUtil/PropertiesSkippingTreeIterator",685),wAn(952,1,{},bo),vX(c8n,"ElkGraphUtil/PropertiesSkippingTreeIterator/1",952);var hAt,fAt,lAt,bAt=vX(c8n,"ElkReflect",null);wAn(889,1,i5n,wo),MWn.vg=function(n){return hZ(),B6(BB(n,174))},vX(c8n,"ElkReflect/lambda$0$Type",889),bq(B6n,"ResourceLocator"),wAn(1051,1,{}),vX(B6n,"DelegatingResourceLocator",1051),wAn(1052,1051,{}),vX("org.eclipse.emf.common","EMFPlugin",1052);var wAt,dAt=bq(J8n,"Adapter"),gAt=bq(J8n,"Notification");wAn(1153,1,Z8n),MWn.ti=function(){return this.d},MWn.ui=function(n){},MWn.vi=function(n){this.d=n},MWn.wi=function(n){this.d==n&&(this.d=null)},MWn.d=null,vX(i6n,"AdapterImpl",1153),wAn(1995,67,n9n),MWn.Vh=function(n,t){return kwn(this,n,t)},MWn.Wh=function(n){var t,e,i;if(++this.j,n.dc())return!1;for(t=this.Vi(),i=n.Kc();i.Ob();)e=i.Pb(),this.Ii(this.oi(t,e)),++t;return!0},MWn.Xh=function(n,t){ZD(this,n,t)},MWn.Yh=function(n){eW(this,n)},MWn.Gi=function(){return this.Ji()},MWn.$b=function(){JD(this,this.Vi(),this.Wi())},MWn.Hc=function(n){return this.Li(n)},MWn.Ic=function(n){return this.Mi(n)},MWn.Hi=function(n,t){this.Si().jm()},MWn.Ii=function(n){this.Si().jm()},MWn.Ji=function(){return this.Si()},MWn.Ki=function(){this.Si().jm()},MWn.Li=function(n){return this.Si().jm()},MWn.Mi=function(n){return this.Si().jm()},MWn.Ni=function(n){return this.Si().jm()},MWn.Oi=function(n){return this.Si().jm()},MWn.Pi=function(){return this.Si().jm()},MWn.Qi=function(n){return this.Si().jm()},MWn.Ri=function(){return this.Si().jm()},MWn.Ti=function(n){return this.Si().jm()},MWn.Ui=function(n,t){return this.Si().jm()},MWn.Vi=function(){return this.Si().jm()},MWn.Wi=function(){return this.Si().jm()},MWn.Xi=function(n){return this.Si().jm()},MWn.Yi=function(){return this.Si().jm()},MWn.Fb=function(n){return this.Ni(n)},MWn.Xb=function(n){return this.li(n,this.Oi(n))},MWn.Hb=function(){return this.Pi()},MWn.Xc=function(n){return this.Qi(n)},MWn.dc=function(){return this.Ri()},MWn.ii=function(n,t){return AMn(this,n,t)},MWn.ki=function(n){return this.Oi(n)},MWn.$c=function(n){return wq(this,n)},MWn.Mc=function(n){var t;return(t=this.Xc(n))>=0&&(this.$c(t),!0)},MWn.mi=function(n,t){return this.Ui(n,this.oi(n,t))},MWn.gc=function(){return this.Vi()},MWn.Pc=function(){return this.Wi()},MWn.Qc=function(n){return this.Xi(n)},MWn.Ib=function(){return this.Yi()},vX(B6n,"DelegatingEList",1995),wAn(1996,1995,n9n),MWn.Vh=function(n,t){return uFn(this,n,t)},MWn.Wh=function(n){return this.Vh(this.Vi(),n)},MWn.Xh=function(n,t){eAn(this,n,t)},MWn.Yh=function(n){OOn(this,n)},MWn.ai=function(){return!this.bj()},MWn.$b=function(){vqn(this)},MWn.Zi=function(n,t,e,i,r){return new NY(this,n,t,e,i,r)},MWn.$i=function(n){ban(this.Ai(),n)},MWn._i=function(){return null},MWn.aj=function(){return-1},MWn.Ai=function(){return null},MWn.bj=function(){return!1},MWn.cj=function(n,t){return t},MWn.dj=function(n,t){return t},MWn.ej=function(){return!1},MWn.fj=function(){return!this.Ri()},MWn.ii=function(n,t){var e,i;return this.ej()?(i=this.fj(),e=AMn(this,n,t),this.$i(this.Zi(7,iln(t),e,n,i)),e):AMn(this,n,t)},MWn.$c=function(n){var t,e,i,r;return this.ej()?(e=null,i=this.fj(),t=this.Zi(4,r=wq(this,n),null,n,i),this.bj()&&r?(e=this.dj(r,e))?(e.Ei(t),e.Fi()):this.$i(t):e?(e.Ei(t),e.Fi()):this.$i(t),r):(r=wq(this,n),this.bj()&&r&&(e=this.dj(r,null))&&e.Fi(),r)},MWn.mi=function(n,t){return oFn(this,n,t)},vX(i6n,"DelegatingNotifyingListImpl",1996),wAn(143,1,t9n),MWn.Ei=function(n){return KEn(this,n)},MWn.Fi=function(){$7(this)},MWn.xi=function(){return this.d},MWn._i=function(){return null},MWn.gj=function(){return null},MWn.yi=function(n){return-1},MWn.zi=function(){return Rxn(this)},MWn.Ai=function(){return null},MWn.Bi=function(){return Kxn(this)},MWn.Ci=function(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o},MWn.hj=function(){return!1},MWn.Di=function(n){var t,e,i,r,c,a,u,o;switch(this.d){case 1:case 2:switch(n.xi()){case 1:case 2:if(GI(n.Ai())===GI(this.Ai())&&this.yi(null)==n.yi(null))return this.g=n.zi(),1==n.xi()&&(this.d=1),!0}case 4:if(4===n.xi()&&GI(n.Ai())===GI(this.Ai())&&this.yi(null)==n.yi(null))return a=tGn(this),c=this.o<0?this.o<-2?-2-this.o-1:-1:this.o,i=n.Ci(),this.d=6,o=new gtn(2),c<=i?(f9(o,this.n),f9(o,n.Bi()),this.g=Pun(Gk(ANt,1),hQn,25,15,[this.o=c,i+1])):(f9(o,n.Bi()),f9(o,this.n),this.g=Pun(Gk(ANt,1),hQn,25,15,[this.o=i,c])),this.n=o,a||(this.o=-2-this.o-1),!0;break;case 6:if(4===n.xi()&&GI(n.Ai())===GI(this.Ai())&&this.yi(null)==n.yi(null)){for(a=tGn(this),i=n.Ci(),u=BB(this.g,48),e=x8(ANt,hQn,25,u.length+1,15,1),t=0;t<u.length&&(r=u[t])<=i;)e[t++]=r,++i;for(BB(this.n,15).Vc(t,n.Bi()),e[t]=i;++t<e.length;)e[t]=u[t-1];return this.g=e,a||(this.o=-2-e[0]),!0}}return!1},MWn.Ib=function(){var n,t,e;switch((e=new fN(nE(this.gm)+"@"+(nsn(this)>>>0).toString(16))).a+=" (eventType: ",this.d){case 1:e.a+="SET";break;case 2:e.a+="UNSET";break;case 3:e.a+="ADD";break;case 5:e.a+="ADD_MANY";break;case 4:e.a+="REMOVE";break;case 6:e.a+="REMOVE_MANY";break;case 7:e.a+="MOVE";break;case 8:e.a+="REMOVING_ADAPTER";break;case 9:e.a+="RESOLVE";break;default:mE(e,this.d)}if(lKn(this)&&(e.a+=", touch: true"),e.a+=", position: ",mE(e,this.o<0?this.o<-2?-2-this.o-1:-1:this.o),e.a+=", notifier: ",rO(e,this.Ai()),e.a+=", feature: ",rO(e,this._i()),e.a+=", oldValue: ",rO(e,Kxn(this)),e.a+=", newValue: ",6==this.d&&cL(this.g,48)){for(t=BB(this.g,48),e.a+="[",n=0;n<t.length;)e.a+=t[n],++n<t.length&&(e.a+=FWn);e.a+="]"}else rO(e,Rxn(this));return e.a+=", isTouch: ",yE(e,lKn(this)),e.a+=", wasSet: ",yE(e,tGn(this)),e.a+=")",e.a},MWn.d=0,MWn.e=0,MWn.f=0,MWn.j=0,MWn.k=0,MWn.o=0,MWn.p=0,vX(i6n,"NotificationImpl",143),wAn(1167,143,t9n,NY),MWn._i=function(){return this.a._i()},MWn.yi=function(n){return this.a.aj()},MWn.Ai=function(){return this.a.Ai()},vX(i6n,"DelegatingNotifyingListImpl/1",1167),wAn(242,63,h8n,po,Fj),MWn.Fc=function(n){return Mwn(this,BB(n,366))},MWn.Ei=function(n){return Mwn(this,n)},MWn.Fi=function(){var n,t,e;for(n=0;n<this.i;++n)null!=(e=(t=BB(this.g[n],366)).Ai())&&-1!=t.xi()&&BB(e,92).Ng(t)},MWn.ri=function(n){return x8(gAt,HWn,366,n,0,1)},vX(i6n,"NotificationChainImpl",242),wAn(1378,90,e6n),MWn.Kg=function(){return this.e},MWn.Mg=function(){return 0!=(1&this.f)},MWn.f=1,vX(i6n,"NotifierImpl",1378),wAn(1993,63,h8n),MWn.Vh=function(n,t){return LFn(this,n,t)},MWn.Wh=function(n){return this.Vh(this.i,n)},MWn.Xh=function(n,t){qOn(this,n,t)},MWn.Yh=function(n){tAn(this,n)},MWn.ai=function(){return!this.bj()},MWn.$b=function(){sqn(this)},MWn.Zi=function(n,t,e,i,r){return new xY(this,n,t,e,i,r)},MWn.$i=function(n){ban(this.Ai(),n)},MWn._i=function(){return null},MWn.aj=function(){return-1},MWn.Ai=function(){return null},MWn.bj=function(){return!1},MWn.ij=function(){return!1},MWn.cj=function(n,t){return t},MWn.dj=function(n,t){return t},MWn.ej=function(){return!1},MWn.fj=function(){return 0!=this.i},MWn.ii=function(n,t){return Iln(this,n,t)},MWn.$c=function(n){return fDn(this,n)},MWn.mi=function(n,t){return fBn(this,n,t)},MWn.jj=function(n,t){return t},MWn.kj=function(n,t){return t},MWn.lj=function(n,t,e){return e},vX(i6n,"NotifyingListImpl",1993),wAn(1166,143,t9n,xY),MWn._i=function(){return this.a._i()},MWn.yi=function(n){return this.a.aj()},MWn.Ai=function(){return this.a.Ai()},vX(i6n,"NotifyingListImpl/1",1166),wAn(953,63,h8n,aR),MWn.Hc=function(n){return this.i>10?(this.b&&this.c.j==this.a||(this.b=new $q(this),this.a=this.j),FT(this.b,n)):Sjn(this,n)},MWn.ni=function(){return!0},MWn.a=0,vX(B6n,"AbstractEList/1",953),wAn(295,73,NQn,tK),vX(B6n,"AbstractEList/BasicIndexOutOfBoundsException",295),wAn(40,1,QWn,AL),MWn.Nb=function(n){fU(this,n)},MWn.mj=function(){if(this.i.j!=this.f)throw Hp(new vv)},MWn.nj=function(){return kpn(this)},MWn.Ob=function(){return this.e!=this.i.gc()},MWn.Pb=function(){return this.nj()},MWn.Qb=function(){Qjn(this)},MWn.e=0,MWn.f=0,MWn.g=-1,vX(B6n,"AbstractEList/EIterator",40),wAn(278,40,cVn,cx,GU),MWn.Qb=function(){Qjn(this)},MWn.Rb=function(n){odn(this,n)},MWn.oj=function(){var n;try{return n=this.d.Xb(--this.e),this.mj(),this.g=this.e,n}catch(t){throw cL(t=lun(t),73)?(this.mj(),Hp(new yv)):Hp(t)}},MWn.pj=function(n){kmn(this,n)},MWn.Sb=function(){return 0!=this.e},MWn.Tb=function(){return this.e},MWn.Ub=function(){return this.oj()},MWn.Vb=function(){return this.e-1},MWn.Wb=function(n){this.pj(n)},vX(B6n,"AbstractEList/EListIterator",278),wAn(341,40,QWn,ax),MWn.nj=function(){return jpn(this)},MWn.Qb=function(){throw Hp(new pv)},vX(B6n,"AbstractEList/NonResolvingEIterator",341),wAn(385,278,cVn,ux,RK),MWn.Rb=function(n){throw Hp(new pv)},MWn.nj=function(){var n;try{return n=this.c.ki(this.e),this.mj(),this.g=this.e++,n}catch(t){throw cL(t=lun(t),73)?(this.mj(),Hp(new yv)):Hp(t)}},MWn.oj=function(){var n;try{return n=this.c.ki(--this.e),this.mj(),this.g=this.e,n}catch(t){throw cL(t=lun(t),73)?(this.mj(),Hp(new yv)):Hp(t)}},MWn.Qb=function(){throw Hp(new pv)},MWn.Wb=function(n){throw Hp(new pv)},vX(B6n,"AbstractEList/NonResolvingEListIterator",385),wAn(1982,67,r9n),MWn.Vh=function(n,t){var e,i,r,c,a,u,o,s,h;if(0!=(i=t.gc())){for(e=Psn(this,(s=null==(o=BB(yan(this.a,4),126))?0:o.length)+i),(h=s-n)>0&&aHn(o,n,e,n+i,h),u=t.Kc(),c=0;c<i;++c)JA(e,n+c,xsn(this,a=u.Pb()));for(Fgn(this,e),r=0;r<i;++r)a=e[n],this.bi(n,a),++n;return!0}return++this.j,!1},MWn.Wh=function(n){var t,e,i,r,c,a,u,o,s;if(0!=(i=n.gc())){for(t=Psn(this,s=(o=null==(e=BB(yan(this.a,4),126))?0:e.length)+i),u=n.Kc(),c=o;c<s;++c)JA(t,c,xsn(this,a=u.Pb()));for(Fgn(this,t),r=o;r<s;++r)a=t[r],this.bi(r,a);return!0}return++this.j,!1},MWn.Xh=function(n,t){var e,i,r,c;e=Psn(this,(r=null==(i=BB(yan(this.a,4),126))?0:i.length)+1),c=xsn(this,t),n!=r&&aHn(i,n,e,n+1,r-n),$X(e,n,c),Fgn(this,e),this.bi(n,t)},MWn.Yh=function(n){var t,e,i;JA(t=Psn(this,(i=null==(e=BB(yan(this.a,4),126))?0:e.length)+1),i,xsn(this,n)),Fgn(this,t),this.bi(i,n)},MWn.Zh=function(){return new S5(this)},MWn.$h=function(){return new Yz(this)},MWn._h=function(n){var t,e;if(e=null==(t=BB(yan(this.a,4),126))?0:t.length,n<0||n>e)throw Hp(new tK(n,e));return new BW(this,n)},MWn.$b=function(){var n,t;++this.j,t=null==(n=BB(yan(this.a,4),126))?0:n.length,Fgn(this,null),L8(this,t,n)},MWn.Hc=function(n){var t,e,i,r;if(null!=(t=BB(yan(this.a,4),126)))if(null!=n){for(i=0,r=(e=t).length;i<r;++i)if(Nfn(n,e[i]))return!0}else for(i=0,r=(e=t).length;i<r;++i)if(GI(e[i])===GI(n))return!0;return!1},MWn.Xb=function(n){var t,e;if(n>=(e=null==(t=BB(yan(this.a,4),126))?0:t.length))throw Hp(new tK(n,e));return t[n]},MWn.Xc=function(n){var t,e,i;if(null!=(t=BB(yan(this.a,4),126)))if(null!=n){for(e=0,i=t.length;e<i;++e)if(Nfn(n,t[e]))return e}else for(e=0,i=t.length;e<i;++e)if(GI(t[e])===GI(n))return e;return-1},MWn.dc=function(){return null==BB(yan(this.a,4),126)},MWn.Kc=function(){return new M5(this)},MWn.Yc=function(){return new Qz(this)},MWn.Zc=function(n){var t,e;if(e=null==(t=BB(yan(this.a,4),126))?0:t.length,n<0||n>e)throw Hp(new tK(n,e));return new FW(this,n)},MWn.ii=function(n,t){var e,i,r;if(n>=(r=null==(e=$dn(this))?0:e.length))throw Hp(new Ay(u8n+n+o8n+r));if(t>=r)throw Hp(new Ay(s8n+t+o8n+r));return i=e[t],n!=t&&(n<t?aHn(e,n,e,n+1,t-n):aHn(e,t+1,e,t,n-t),$X(e,n,i),Fgn(this,e)),i},MWn.ki=function(n){return BB(yan(this.a,4),126)[n]},MWn.$c=function(n){return EOn(this,n)},MWn.mi=function(n,t){var e,i;return i=(e=$dn(this))[n],JA(e,n,xsn(this,t)),Fgn(this,e),i},MWn.gc=function(){var n;return null==(n=BB(yan(this.a,4),126))?0:n.length},MWn.Pc=function(){var n,t,e;return e=null==(n=BB(yan(this.a,4),126))?0:n.length,t=x8(dAt,i9n,415,e,0,1),e>0&&aHn(n,0,t,0,e),t},MWn.Qc=function(n){var t,e;return(e=null==(t=BB(yan(this.a,4),126))?0:t.length)>0&&(n.length<e&&(n=Den(tsn(n).c,e)),aHn(t,0,n,0,e)),n.length>e&&$X(n,e,null),n},vX(B6n,"ArrayDelegatingEList",1982),wAn(1038,40,QWn,M5),MWn.mj=function(){if(this.b.j!=this.f||GI(BB(yan(this.b.a,4),126))!==GI(this.a))throw Hp(new vv)},MWn.Qb=function(){Qjn(this),this.a=BB(yan(this.b.a,4),126)},vX(B6n,"ArrayDelegatingEList/EIterator",1038),wAn(706,278,cVn,Qz,FW),MWn.mj=function(){if(this.b.j!=this.f||GI(BB(yan(this.b.a,4),126))!==GI(this.a))throw Hp(new vv)},MWn.pj=function(n){kmn(this,n),this.a=BB(yan(this.b.a,4),126)},MWn.Qb=function(){Qjn(this),this.a=BB(yan(this.b.a,4),126)},vX(B6n,"ArrayDelegatingEList/EListIterator",706),wAn(1039,341,QWn,S5),MWn.mj=function(){if(this.b.j!=this.f||GI(BB(yan(this.b.a,4),126))!==GI(this.a))throw Hp(new vv)},vX(B6n,"ArrayDelegatingEList/NonResolvingEIterator",1039),wAn(707,385,cVn,Yz,BW),MWn.mj=function(){if(this.b.j!=this.f||GI(BB(yan(this.b.a,4),126))!==GI(this.a))throw Hp(new vv)},vX(B6n,"ArrayDelegatingEList/NonResolvingEListIterator",707),wAn(606,295,NQn,LO),vX(B6n,"BasicEList/BasicIndexOutOfBoundsException",606),wAn(696,63,h8n,DI),MWn.Vc=function(n,t){throw Hp(new pv)},MWn.Fc=function(n){throw Hp(new pv)},MWn.Wc=function(n,t){throw Hp(new pv)},MWn.Gc=function(n){throw Hp(new pv)},MWn.$b=function(){throw Hp(new pv)},MWn.qi=function(n){throw Hp(new pv)},MWn.Kc=function(){return this.Zh()},MWn.Yc=function(){return this.$h()},MWn.Zc=function(n){return this._h(n)},MWn.ii=function(n,t){throw Hp(new pv)},MWn.ji=function(n,t){throw Hp(new pv)},MWn.$c=function(n){throw Hp(new pv)},MWn.Mc=function(n){throw Hp(new pv)},MWn._c=function(n,t){throw Hp(new pv)},vX(B6n,"BasicEList/UnmodifiableEList",696),wAn(705,1,{3:1,20:1,14:1,15:1,58:1,589:1}),MWn.Vc=function(n,t){Q$(this,n,BB(t,42))},MWn.Fc=function(n){return aD(this,BB(n,42))},MWn.Jc=function(n){e5(this,n)},MWn.Xb=function(n){return BB(Wtn(this.c,n),133)},MWn.ii=function(n,t){return BB(this.c.ii(n,t),42)},MWn.ji=function(n,t){Y$(this,n,BB(t,42))},MWn.Lc=function(){return new Rq(null,new w1(this,16))},MWn.$c=function(n){return BB(this.c.$c(n),42)},MWn._c=function(n,t){return uX(this,n,BB(t,42))},MWn.ad=function(n){_rn(this,n)},MWn.Nc=function(){return new w1(this,16)},MWn.Oc=function(){return new Rq(null,new w1(this,16))},MWn.Wc=function(n,t){return this.c.Wc(n,t)},MWn.Gc=function(n){return this.c.Gc(n)},MWn.$b=function(){this.c.$b()},MWn.Hc=function(n){return this.c.Hc(n)},MWn.Ic=function(n){return oun(this.c,n)},MWn.qj=function(){var n,t;if(null==this.d){for(this.d=x8(oAt,c9n,63,2*this.f+1,0,1),t=this.e,this.f=0,n=this.c.Kc();n.e!=n.i.gc();)Ivn(this,BB(n.nj(),133));this.e=t}},MWn.Fb=function(n){return NK(this,n)},MWn.Hb=function(){return Mun(this.c)},MWn.Xc=function(n){return this.c.Xc(n)},MWn.rj=function(){this.c=new hp(this)},MWn.dc=function(){return 0==this.f},MWn.Kc=function(){return this.c.Kc()},MWn.Yc=function(){return this.c.Yc()},MWn.Zc=function(n){return this.c.Zc(n)},MWn.sj=function(){return A8(this)},MWn.tj=function(n,t,e){return new SB(n,t,e)},MWn.uj=function(){return new vo},MWn.Mc=function(n){return hin(this,n)},MWn.gc=function(){return this.f},MWn.bd=function(n,t){return new s1(this.c,n,t)},MWn.Pc=function(){return this.c.Pc()},MWn.Qc=function(n){return this.c.Qc(n)},MWn.Ib=function(){return Jbn(this.c)},MWn.e=0,MWn.f=0,vX(B6n,"BasicEMap",705),wAn(1033,63,h8n,hp),MWn.bi=function(n,t){Av(this,BB(t,133))},MWn.ei=function(n,t,e){var i;++(i=this,BB(t,133),i).a.e},MWn.fi=function(n,t){$v(this,BB(t,133))},MWn.gi=function(n,t,e){VN(this,BB(t,133),BB(e,133))},MWn.di=function(n,t){aan(this.a)},vX(B6n,"BasicEMap/1",1033),wAn(1034,63,h8n,vo),MWn.ri=function(n){return x8(vAt,a9n,612,n,0,1)},vX(B6n,"BasicEMap/2",1034),wAn(1035,nVn,tVn,fp),MWn.$b=function(){this.a.c.$b()},MWn.Hc=function(n){return rdn(this.a,n)},MWn.Kc=function(){return 0==this.a.f?(dD(),pAt.a):new Bj(this.a)},MWn.Mc=function(n){var t;return t=this.a.f,Wdn(this.a,n),this.a.f!=t},MWn.gc=function(){return this.a.f},vX(B6n,"BasicEMap/3",1035),wAn(1036,28,ZWn,lp),MWn.$b=function(){this.a.c.$b()},MWn.Hc=function(n){return YDn(this.a,n)},MWn.Kc=function(){return 0==this.a.f?(dD(),pAt.a):new Hj(this.a)},MWn.gc=function(){return this.a.f},vX(B6n,"BasicEMap/4",1036),wAn(1037,nVn,tVn,bp),MWn.$b=function(){this.a.c.$b()},MWn.Hc=function(n){var t,e,i,r,c,a,u,o,s;if(this.a.f>0&&cL(n,42)&&(this.a.qj(),r=null==(u=(o=BB(n,42)).cd())?0:nsn(u),c=eR(this.a,r),t=this.a.d[c]))for(e=BB(t.g,367),s=t.i,a=0;a<s;++a)if((i=e[a]).Sh()==r&&i.Fb(o))return!0;return!1},MWn.Kc=function(){return 0==this.a.f?(dD(),pAt.a):new pQ(this.a)},MWn.Mc=function(n){return IAn(this,n)},MWn.gc=function(){return this.a.f},vX(B6n,"BasicEMap/5",1037),wAn(613,1,QWn,pQ),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return-1!=this.b},MWn.Pb=function(){var n;if(this.f.e!=this.c)throw Hp(new vv);if(-1==this.b)throw Hp(new yv);return this.d=this.a,this.e=this.b,ujn(this),n=BB(this.f.d[this.d].g[this.e],133),this.vj(n)},MWn.Qb=function(){if(this.f.e!=this.c)throw Hp(new vv);if(-1==this.e)throw Hp(new dv);this.f.c.Mc(Wtn(this.f.d[this.d],this.e)),this.c=this.f.e,this.e=-1,this.a==this.d&&-1!=this.b&&--this.b},MWn.vj=function(n){return n},MWn.a=0,MWn.b=-1,MWn.c=0,MWn.d=0,MWn.e=0,vX(B6n,"BasicEMap/BasicEMapIterator",613),wAn(1031,613,QWn,Bj),MWn.vj=function(n){return n.cd()},vX(B6n,"BasicEMap/BasicEMapKeyIterator",1031),wAn(1032,613,QWn,Hj),MWn.vj=function(n){return n.dd()},vX(B6n,"BasicEMap/BasicEMapValueIterator",1032),wAn(1030,1,JWn,wp),MWn.wc=function(n){nan(this,n)},MWn.yc=function(n,t,e){return Zln(this,n,t,e)},MWn.$b=function(){this.a.c.$b()},MWn._b=function(n){return BI(this,n)},MWn.uc=function(n){return YDn(this.a,n)},MWn.vc=function(){return I8(this.a)},MWn.Fb=function(n){return NK(this.a,n)},MWn.xc=function(n){return cdn(this.a,n)},MWn.Hb=function(){return Mun(this.a.c)},MWn.dc=function(){return 0==this.a.f},MWn.ec=function(){return O8(this.a)},MWn.zc=function(n,t){return vjn(this.a,n,t)},MWn.Bc=function(n){return Wdn(this.a,n)},MWn.gc=function(){return this.a.f},MWn.Ib=function(){return Jbn(this.a.c)},MWn.Cc=function(){return C8(this.a)},vX(B6n,"BasicEMap/DelegatingMap",1030),wAn(612,1,{42:1,133:1,612:1},SB),MWn.Fb=function(n){var t;return!!cL(n,42)&&(t=BB(n,42),(null!=this.b?Nfn(this.b,t.cd()):GI(this.b)===GI(t.cd()))&&(null!=this.c?Nfn(this.c,t.dd()):GI(this.c)===GI(t.dd())))},MWn.Sh=function(){return this.a},MWn.cd=function(){return this.b},MWn.dd=function(){return this.c},MWn.Hb=function(){return this.a^(null==this.c?0:nsn(this.c))},MWn.Th=function(n){this.a=n},MWn.Uh=function(n){throw Hp(new sv)},MWn.ed=function(n){var t;return t=this.c,this.c=n,t},MWn.Ib=function(){return this.b+"->"+this.c},MWn.a=0;var pAt,vAt=vX(B6n,"BasicEMap/EntryImpl",612);wAn(536,1,{},oo),vX(B6n,"BasicEMap/View",536),wAn(768,1,{}),MWn.Fb=function(n){return NAn((SQ(),set),n)},MWn.Hb=function(){return Fon((SQ(),set))},MWn.Ib=function(){return LMn((SQ(),set))},vX(B6n,"ECollections/BasicEmptyUnmodifiableEList",768),wAn(1312,1,cVn,mo),MWn.Nb=function(n){fU(this,n)},MWn.Rb=function(n){throw Hp(new pv)},MWn.Ob=function(){return!1},MWn.Sb=function(){return!1},MWn.Pb=function(){throw Hp(new yv)},MWn.Tb=function(){return 0},MWn.Ub=function(){throw Hp(new yv)},MWn.Vb=function(){return-1},MWn.Qb=function(){throw Hp(new pv)},MWn.Wb=function(n){throw Hp(new pv)},vX(B6n,"ECollections/BasicEmptyUnmodifiableEList/1",1312),wAn(1310,768,{20:1,14:1,15:1,58:1},Tm),MWn.Vc=function(n,t){NE()},MWn.Fc=function(n){return xE()},MWn.Wc=function(n,t){return DE()},MWn.Gc=function(n){return RE()},MWn.$b=function(){KE()},MWn.Hc=function(n){return!1},MWn.Ic=function(n){return!1},MWn.Jc=function(n){e5(this,n)},MWn.Xb=function(n){return yO((SQ(),n)),null},MWn.Xc=function(n){return-1},MWn.dc=function(){return!0},MWn.Kc=function(){return this.a},MWn.Yc=function(){return this.a},MWn.Zc=function(n){return this.a},MWn.ii=function(n,t){return _E()},MWn.ji=function(n,t){FE()},MWn.Lc=function(){return new Rq(null,new w1(this,16))},MWn.$c=function(n){return BE()},MWn.Mc=function(n){return HE()},MWn._c=function(n,t){return qE()},MWn.gc=function(){return 0},MWn.ad=function(n){_rn(this,n)},MWn.Nc=function(){return new w1(this,16)},MWn.Oc=function(){return new Rq(null,new w1(this,16))},MWn.bd=function(n,t){return SQ(),new s1(set,n,t)},MWn.Pc=function(){return cz((SQ(),set))},MWn.Qc=function(n){return SQ(),Emn(set,n)},vX(B6n,"ECollections/EmptyUnmodifiableEList",1310),wAn(1311,768,{20:1,14:1,15:1,58:1,589:1},Mm),MWn.Vc=function(n,t){NE()},MWn.Fc=function(n){return xE()},MWn.Wc=function(n,t){return DE()},MWn.Gc=function(n){return RE()},MWn.$b=function(){KE()},MWn.Hc=function(n){return!1},MWn.Ic=function(n){return!1},MWn.Jc=function(n){e5(this,n)},MWn.Xb=function(n){return yO((SQ(),n)),null},MWn.Xc=function(n){return-1},MWn.dc=function(){return!0},MWn.Kc=function(){return this.a},MWn.Yc=function(){return this.a},MWn.Zc=function(n){return this.a},MWn.ii=function(n,t){return _E()},MWn.ji=function(n,t){FE()},MWn.Lc=function(){return new Rq(null,new w1(this,16))},MWn.$c=function(n){return BE()},MWn.Mc=function(n){return HE()},MWn._c=function(n,t){return qE()},MWn.gc=function(){return 0},MWn.ad=function(n){_rn(this,n)},MWn.Nc=function(){return new w1(this,16)},MWn.Oc=function(){return new Rq(null,new w1(this,16))},MWn.bd=function(n,t){return SQ(),new s1(set,n,t)},MWn.Pc=function(){return cz((SQ(),set))},MWn.Qc=function(n){return SQ(),Emn(set,n)},MWn.sj=function(){return SQ(),SQ(),het},vX(B6n,"ECollections/EmptyUnmodifiableEMap",1311);var mAt,yAt=bq(B6n,"Enumerator");wAn(281,1,{281:1},rRn),MWn.Fb=function(n){var t;return this===n||!!cL(n,281)&&(t=BB(n,281),this.f==t.f&&vG(this.i,t.i)&&pG(this.a,0!=(256&this.f)?0!=(256&t.f)?t.a:null:0!=(256&t.f)?null:t.a)&&pG(this.d,t.d)&&pG(this.g,t.g)&&pG(this.e,t.e)&&Spn(this,t))},MWn.Hb=function(){return this.f},MWn.Ib=function(){return M_n(this)},MWn.f=0;var kAt,jAt,EAt,TAt=0,MAt=0,SAt=0,PAt=0,CAt=0,IAt=0,OAt=0,AAt=0,$At=0,LAt=0,NAt=0,xAt=0,DAt=0;vX(B6n,"URI",281),wAn(1091,43,tYn,Sm),MWn.zc=function(n,t){return BB(mZ(this,SD(n),BB(t,281)),281)},vX(B6n,"URI/URICache",1091),wAn(497,63,h8n,fo,rG),MWn.hi=function(){return!0},vX(B6n,"UniqueEList",497),wAn(581,60,BVn,L7),vX(B6n,"WrappedException",581);var RAt,KAt=bq(q5n,s9n),_At=bq(q5n,h9n),FAt=bq(q5n,f9n),BAt=bq(q5n,l9n),HAt=bq(q5n,b9n),qAt=bq(q5n,"EClass"),GAt=bq(q5n,"EDataType");wAn(1183,43,tYn,Pm),MWn.xc=function(n){return XI(n)?SJ(this,n):qI(AY(this.f,n))},vX(q5n,"EDataType/Internal/ConversionDelegate/Factory/Registry/Impl",1183);var zAt,UAt,XAt=bq(q5n,"EEnum"),WAt=bq(q5n,w9n),VAt=bq(q5n,d9n),QAt=bq(q5n,g9n),YAt=bq(q5n,p9n),JAt=bq(q5n,v9n);wAn(1029,1,{},ho),MWn.Ib=function(){return"NIL"},vX(q5n,"EStructuralFeature/Internal/DynamicValueHolder/1",1029),wAn(1028,43,tYn,Cm),MWn.xc=function(n){return XI(n)?SJ(this,n):qI(AY(this.f,n))},vX(q5n,"EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl",1028);var ZAt,n$t,t$t,e$t,i$t,r$t,c$t,a$t,u$t,o$t,s$t,h$t,f$t,l$t,b$t,w$t,d$t,g$t,p$t,v$t,m$t,y$t,k$t,j$t,E$t,T$t,M$t,S$t,P$t,C$t,I$t,O$t=bq(q5n,m9n),A$t=bq(q5n,"EValidator/PatternMatcher"),$$t=bq(y9n,"FeatureMap/Entry");wAn(535,1,{72:1},CI),MWn.ak=function(){return this.a},MWn.dd=function(){return this.b},vX(l6n,"BasicEObjectImpl/1",535),wAn(1027,1,k9n,II),MWn.Wj=function(n){return V5(this.a,this.b,n)},MWn.fj=function(){return ZJ(this.a,this.b)},MWn.Wb=function(n){NJ(this.a,this.b,n)},MWn.Xj=function(){PW(this.a,this.b)},vX(l6n,"BasicEObjectImpl/4",1027),wAn(1983,1,{108:1}),MWn.bk=function(n){this.e=0==n?M$t:x8(Ant,HWn,1,n,5,1)},MWn.Ch=function(n){return this.e[n]},MWn.Dh=function(n,t){this.e[n]=t},MWn.Eh=function(n){this.e[n]=null},MWn.ck=function(){return this.c},MWn.dk=function(){throw Hp(new pv)},MWn.ek=function(){throw Hp(new pv)},MWn.fk=function(){return this.d},MWn.gk=function(){return null!=this.e},MWn.hk=function(n){this.c=n},MWn.ik=function(n){throw Hp(new pv)},MWn.jk=function(n){throw Hp(new pv)},MWn.kk=function(n){this.d=n},vX(l6n,"BasicEObjectImpl/EPropertiesHolderBaseImpl",1983),wAn(185,1983,{108:1},Kf),MWn.dk=function(){return this.a},MWn.ek=function(){return this.b},MWn.ik=function(n){this.a=n},MWn.jk=function(n){this.b=n},vX(l6n,"BasicEObjectImpl/EPropertiesHolderImpl",185),wAn(506,97,f6n,yo),MWn.Kg=function(){return this.f},MWn.Pg=function(){return this.k},MWn.Rg=function(n,t){this.g=n,this.i=t},MWn.Tg=function(){return 0==(2&this.j)?this.zh():this.ph().ck()},MWn.Vg=function(){return this.i},MWn.Mg=function(){return 0!=(1&this.j)},MWn.eh=function(){return this.g},MWn.kh=function(){return 0!=(4&this.j)},MWn.ph=function(){return!this.k&&(this.k=new Kf),this.k},MWn.th=function(n){this.ph().hk(n),n?this.j|=2:this.j&=-3},MWn.vh=function(n){this.ph().jk(n),n?this.j|=4:this.j&=-5},MWn.zh=function(){return(QX(),t$t).S},MWn.i=0,MWn.j=1,vX(l6n,"EObjectImpl",506),wAn(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},jH),MWn.Ch=function(n){return this.e[n]},MWn.Dh=function(n,t){this.e[n]=t},MWn.Eh=function(n){this.e[n]=null},MWn.Tg=function(){return this.d},MWn.Yg=function(n){return Awn(this.d,n)},MWn.$g=function(){return this.d},MWn.dh=function(){return null!=this.e},MWn.ph=function(){return!this.k&&(this.k=new ko),this.k},MWn.th=function(n){this.d=n},MWn.yh=function(){var n;return null==this.e&&(n=bX(this.d),this.e=0==n?S$t:x8(Ant,HWn,1,n,5,1)),this},MWn.Ah=function(){return 0},vX(l6n,"DynamicEObjectImpl",780),wAn(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},fq),MWn.Fb=function(n){return this===n},MWn.Hb=function(){return PN(this)},MWn.th=function(n){this.d=n,this.b=NNn(n,"key"),this.c=NNn(n,E6n)},MWn.Sh=function(){var n;return-1==this.a&&(n=J7(this,this.b),this.a=null==n?0:nsn(n)),this.a},MWn.cd=function(){return J7(this,this.b)},MWn.dd=function(){return J7(this,this.c)},MWn.Th=function(n){this.a=n},MWn.Uh=function(n){NJ(this,this.b,n)},MWn.ed=function(n){var t;return t=J7(this,this.c),NJ(this,this.c,n),t},MWn.a=0,vX(l6n,"DynamicEObjectImpl/BasicEMapEntry",1376),wAn(1377,1,{108:1},ko),MWn.bk=function(n){throw Hp(new pv)},MWn.Ch=function(n){throw Hp(new pv)},MWn.Dh=function(n,t){throw Hp(new pv)},MWn.Eh=function(n){throw Hp(new pv)},MWn.ck=function(){throw Hp(new pv)},MWn.dk=function(){return this.a},MWn.ek=function(){return this.b},MWn.fk=function(){return this.c},MWn.gk=function(){throw Hp(new pv)},MWn.hk=function(n){throw Hp(new pv)},MWn.ik=function(n){this.a=n},MWn.jk=function(n){this.b=n},MWn.kk=function(n){this.c=n},vX(l6n,"DynamicEObjectImpl/DynamicEPropertiesHolderImpl",1377),wAn(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},jo),MWn.Qg=function(n){return bkn(this,n)},MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.d;case 2:return e?(!this.b&&(this.b=new Jx((gWn(),k$t),X$t,this)),this.b):(!this.b&&(this.b=new Jx((gWn(),k$t),X$t,this)),A8(this.b));case 3:return bZ(this);case 4:return!this.a&&(this.a=new $L(LOt,this,4)),this.a;case 5:return!this.c&&(this.c=new RL(LOt,this,5)),this.c}return U9(this,n-bX((gWn(),e$t)),itn(BB(yan(this,16),26)||e$t,n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 3:return this.Cb&&(e=(i=this.Db>>16)>=0?bkn(this,e):this.Cb.ih(this,-1-i,null,e)),QG(this,BB(n,147),e)}return BB(itn(BB(yan(this,16),26)||(gWn(),e$t),t),66).Nj().Qj(this,fgn(this),t-bX((gWn(),e$t)),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 2:return!this.b&&(this.b=new Jx((gWn(),k$t),X$t,this)),BK(this.b,n,e);case 3:return QG(this,null,e);case 4:return!this.a&&(this.a=new $L(LOt,this,4)),_pn(this.a,n,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),e$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),e$t)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.d;case 2:return!!this.b&&0!=this.b.f;case 3:return!!bZ(this);case 4:return!!this.a&&0!=this.a.i;case 5:return!!this.c&&0!=this.c.i}return O3(this,n-bX((gWn(),e$t)),itn(BB(yan(this,16),26)||e$t,n))},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void pq(this,SD(t));case 2:return!this.b&&(this.b=new Jx((gWn(),k$t),X$t,this)),void tan(this.b,t);case 3:return void ONn(this,BB(t,147));case 4:return!this.a&&(this.a=new $L(LOt,this,4)),sqn(this.a),!this.a&&(this.a=new $L(LOt,this,4)),void pX(this.a,BB(t,14));case 5:return!this.c&&(this.c=new RL(LOt,this,5)),sqn(this.c),!this.c&&(this.c=new RL(LOt,this,5)),void pX(this.c,BB(t,14))}Lbn(this,n-bX((gWn(),e$t)),itn(BB(yan(this,16),26)||e$t,n),t)},MWn.zh=function(){return gWn(),e$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return void Bin(this,null);case 2:return!this.b&&(this.b=new Jx((gWn(),k$t),X$t,this)),void this.b.c.$b();case 3:return void ONn(this,null);case 4:return!this.a&&(this.a=new $L(LOt,this,4)),void sqn(this.a);case 5:return!this.c&&(this.c=new RL(LOt,this,5)),void sqn(this.c)}qfn(this,n-bX((gWn(),e$t)),itn(BB(yan(this,16),26)||e$t,n))},MWn.Ib=function(){return Vfn(this)},MWn.d=null,vX(l6n,"EAnnotationImpl",510),wAn(151,705,j9n,y9),MWn.Xh=function(n,t){n$(this,n,BB(t,42))},MWn.lk=function(n,t){return FK(this,BB(n,42),t)},MWn.pi=function(n){return BB(BB(this.c,69).pi(n),133)},MWn.Zh=function(){return BB(this.c,69).Zh()},MWn.$h=function(){return BB(this.c,69).$h()},MWn._h=function(n){return BB(this.c,69)._h(n)},MWn.mk=function(n,t){return BK(this,n,t)},MWn.Wj=function(n){return BB(this.c,76).Wj(n)},MWn.rj=function(){},MWn.fj=function(){return BB(this.c,76).fj()},MWn.tj=function(n,t,e){var i;return(i=BB(Utn(this.b).Nh().Jh(this.b),133)).Th(n),i.Uh(t),i.ed(e),i},MWn.uj=function(){return new Ip(this)},MWn.Wb=function(n){tan(this,n)},MWn.Xj=function(){BB(this.c,76).Xj()},vX(y9n,"EcoreEMap",151),wAn(158,151,j9n,Jx),MWn.qj=function(){var n,t,e,i,r;if(null==this.d){for(r=x8(oAt,c9n,63,2*this.f+1,0,1),e=this.c.Kc();e.e!=e.i.gc();)!(n=r[i=((t=BB(e.nj(),133)).Sh()&DWn)%r.length])&&(n=r[i]=new Ip(this)),n.Fc(t);this.d=r}},vX(l6n,"EAnnotationImpl/1",158),wAn(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1}),MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return hN(),0!=(256&this.Bb);case 3:return hN(),0!=(512&this.Bb);case 4:return iln(this.s);case 5:return iln(this.t);case 6:return hN(),!!this.$j();case 7:return hN(),this.s>=1;case 8:return t?Ikn(this):this.r;case 9:return this.q}return U9(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 9:return gX(this,e)}return BB(itn(BB(yan(this,16),26)||this.zh(),t),66).Nj().Rj(this,fgn(this),t-bX(this.zh()),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return this.$j();case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yW(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yW(this.q).i)}return O3(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.sh=function(n,t){var e;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void this.Lh(SD(t));case 2:return void Yfn(this,qy(TD(t)));case 3:return void nln(this,qy(TD(t)));case 4:return void Len(this,BB(t,19).a);case 5:return void this.ok(BB(t,19).a);case 8:return void Ihn(this,BB(t,138));case 9:return void((e=HTn(this,BB(t,87),null))&&e.Fi())}Lbn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t)},MWn.zh=function(){return gWn(),E$t},MWn.Bh=function(n){var t;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return void this.Lh(null);case 2:return void Yfn(this,!0);case 3:return void nln(this,!0);case 4:return void Len(this,0);case 5:return void this.ok(1);case 8:return void Ihn(this,null);case 9:return void((t=HTn(this,null,null))&&t.Fi())}qfn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.Gh=function(){Ikn(this),this.Bb|=1},MWn.Yj=function(){return Ikn(this)},MWn.Zj=function(){return this.t},MWn.$j=function(){var n;return(n=this.t)>1||-1==n},MWn.hi=function(){return 0!=(512&this.Bb)},MWn.nk=function(n,t){return Pfn(this,n,t)},MWn.ok=function(n){Nen(this,n)},MWn.Ib=function(){return KOn(this)},MWn.s=0,MWn.t=1,vX(l6n,"ETypedElementImpl",284),wAn(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1}),MWn.Qg=function(n){return Nyn(this,n)},MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return hN(),0!=(256&this.Bb);case 3:return hN(),0!=(512&this.Bb);case 4:return iln(this.s);case 5:return iln(this.t);case 6:return hN(),!!this.$j();case 7:return hN(),this.s>=1;case 8:return t?Ikn(this):this.r;case 9:return this.q;case 10:return hN(),0!=(this.Bb&k6n);case 11:return hN(),0!=(this.Bb&M9n);case 12:return hN(),0!=(this.Bb&_Qn);case 13:return this.j;case 14:return qLn(this);case 15:return hN(),0!=(this.Bb&T9n);case 16:return hN(),0!=(this.Bb&hVn);case 17:return dZ(this)}return U9(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 17:return this.Cb&&(e=(i=this.Db>>16)>=0?Nyn(this,e):this.Cb.ih(this,-1-i,null,e)),T_n(this,n,17,e)}return BB(itn(BB(yan(this,16),26)||this.zh(),t),66).Nj().Qj(this,fgn(this),t-bX(this.zh()),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 9:return gX(this,e);case 17:return T_n(this,null,17,e)}return BB(itn(BB(yan(this,16),26)||this.zh(),t),66).Nj().Rj(this,fgn(this),t-bX(this.zh()),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return this.$j();case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yW(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yW(this.q).i);case 10:return 0==(this.Bb&k6n);case 11:return 0!=(this.Bb&M9n);case 12:return 0!=(this.Bb&_Qn);case 13:return null!=this.j;case 14:return null!=qLn(this);case 15:return 0!=(this.Bb&T9n);case 16:return 0!=(this.Bb&hVn);case 17:return!!dZ(this)}return O3(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.sh=function(n,t){var e;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void JZ(this,SD(t));case 2:return void Yfn(this,qy(TD(t)));case 3:return void nln(this,qy(TD(t)));case 4:return void Len(this,BB(t,19).a);case 5:return void this.ok(BB(t,19).a);case 8:return void Ihn(this,BB(t,138));case 9:return void((e=HTn(this,BB(t,87),null))&&e.Fi());case 10:return void Aln(this,qy(TD(t)));case 11:return void Nln(this,qy(TD(t)));case 12:return void $ln(this,qy(TD(t)));case 13:return void _I(this,SD(t));case 15:return void Lln(this,qy(TD(t)));case 16:return void qln(this,qy(TD(t)))}Lbn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t)},MWn.zh=function(){return gWn(),j$t},MWn.Bh=function(n){var t;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,88)&&ACn(P5(BB(this.Cb,88)),4),void Nrn(this,null);case 2:return void Yfn(this,!0);case 3:return void nln(this,!0);case 4:return void Len(this,0);case 5:return void this.ok(1);case 8:return void Ihn(this,null);case 9:return void((t=HTn(this,null,null))&&t.Fi());case 10:return void Aln(this,!0);case 11:return void Nln(this,!1);case 12:return void $ln(this,!1);case 13:return this.i=null,void arn(this,null);case 15:return void Lln(this,!1);case 16:return void qln(this,!1)}qfn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.Gh=function(){kV(B7((IPn(),Z$t),this)),Ikn(this),this.Bb|=1},MWn.Gj=function(){return this.f},MWn.zj=function(){return qLn(this)},MWn.Hj=function(){return dZ(this)},MWn.Lj=function(){return null},MWn.pk=function(){return this.k},MWn.aj=function(){return this.n},MWn.Mj=function(){return oEn(this)},MWn.Nj=function(){var n,t,e,i,r,c,a,u,o;return this.p||((null==(e=dZ(this)).i&&qFn(e),e.i).length,(i=this.Lj())&&bX(dZ(i)),n=(a=(r=Ikn(this)).Bj())?0!=(1&a.i)?a==$Nt?ktt:a==ANt?Att:a==DNt?Ctt:a==xNt?Ptt:a==LNt?Rtt:a==RNt?_tt:a==NNt?Ttt:Stt:a:null,t=qLn(this),u=r.zj(),bbn(this),0!=(this.Bb&hVn)&&((c=mjn((IPn(),Z$t),e))&&c!=this||(c=Z1(B7(Z$t,this))))?this.p=new AI(this,c):this.$j()?this.rk()?i?0!=(this.Bb&T9n)?n?this.sk()?this.p=new lQ(47,n,this,i):this.p=new lQ(5,n,this,i):this.sk()?this.p=new w4(46,this,i):this.p=new w4(4,this,i):n?this.sk()?this.p=new lQ(49,n,this,i):this.p=new lQ(7,n,this,i):this.sk()?this.p=new w4(48,this,i):this.p=new w4(6,this,i):0!=(this.Bb&T9n)?n?n==Hnt?this.p=new PB(50,VOt,this):this.sk()?this.p=new PB(43,n,this):this.p=new PB(1,n,this):this.sk()?this.p=new RY(42,this):this.p=new RY(0,this):n?n==Hnt?this.p=new PB(41,VOt,this):this.sk()?this.p=new PB(45,n,this):this.p=new PB(3,n,this):this.sk()?this.p=new RY(44,this):this.p=new RY(2,this):cL(r,148)?n==$$t?this.p=new RY(40,this):0!=(512&this.Bb)?0!=(this.Bb&T9n)?this.p=n?new PB(9,n,this):new RY(8,this):this.p=n?new PB(11,n,this):new RY(10,this):0!=(this.Bb&T9n)?this.p=n?new PB(13,n,this):new RY(12,this):this.p=n?new PB(15,n,this):new RY(14,this):i?(o=i.t)>1||-1==o?this.sk()?0!=(this.Bb&T9n)?this.p=n?new lQ(25,n,this,i):new w4(24,this,i):this.p=n?new lQ(27,n,this,i):new w4(26,this,i):0!=(this.Bb&T9n)?this.p=n?new lQ(29,n,this,i):new w4(28,this,i):this.p=n?new lQ(31,n,this,i):new w4(30,this,i):this.sk()?0!=(this.Bb&T9n)?this.p=n?new lQ(33,n,this,i):new w4(32,this,i):this.p=n?new lQ(35,n,this,i):new w4(34,this,i):0!=(this.Bb&T9n)?this.p=n?new lQ(37,n,this,i):new w4(36,this,i):this.p=n?new lQ(39,n,this,i):new w4(38,this,i):this.sk()?0!=(this.Bb&T9n)?this.p=n?new PB(17,n,this):new RY(16,this):this.p=n?new PB(19,n,this):new RY(18,this):0!=(this.Bb&T9n)?this.p=n?new PB(21,n,this):new RY(20,this):this.p=n?new PB(23,n,this):new RY(22,this):this.qk()?this.sk()?this.p=new CB(BB(r,26),this,i):this.p=new mJ(BB(r,26),this,i):cL(r,148)?n==$$t?this.p=new RY(40,this):0!=(this.Bb&T9n)?this.p=n?new nz(t,u,this,(Bwn(),a==ANt?q$t:a==$Nt?K$t:a==LNt?G$t:a==DNt?H$t:a==xNt?B$t:a==RNt?U$t:a==NNt?_$t:a==ONt?F$t:z$t)):new dQ(BB(r,148),t,u,this):this.p=n?new ZG(t,u,this,(Bwn(),a==ANt?q$t:a==$Nt?K$t:a==LNt?G$t:a==DNt?H$t:a==xNt?B$t:a==RNt?U$t:a==NNt?_$t:a==ONt?F$t:z$t)):new wQ(BB(r,148),t,u,this):this.rk()?i?0!=(this.Bb&T9n)?this.sk()?this.p=new NB(BB(r,26),this,i):this.p=new LB(BB(r,26),this,i):this.sk()?this.p=new $B(BB(r,26),this,i):this.p=new IB(BB(r,26),this,i):0!=(this.Bb&T9n)?this.sk()?this.p=new eD(BB(r,26),this):this.p=new tD(BB(r,26),this):this.sk()?this.p=new nD(BB(r,26),this):this.p=new Zx(BB(r,26),this):this.sk()?i?0!=(this.Bb&T9n)?this.p=new xB(BB(r,26),this,i):this.p=new OB(BB(r,26),this,i):0!=(this.Bb&T9n)?this.p=new rD(BB(r,26),this):this.p=new iD(BB(r,26),this):i?0!=(this.Bb&T9n)?this.p=new DB(BB(r,26),this,i):this.p=new AB(BB(r,26),this,i):0!=(this.Bb&T9n)?this.p=new cD(BB(r,26),this):this.p=new cG(BB(r,26),this)),this.p},MWn.Ij=function(){return 0!=(this.Bb&k6n)},MWn.qk=function(){return!1},MWn.rk=function(){return!1},MWn.Jj=function(){return 0!=(this.Bb&hVn)},MWn.Oj=function(){return hnn(this)},MWn.sk=function(){return!1},MWn.Kj=function(){return 0!=(this.Bb&T9n)},MWn.tk=function(n){this.k=n},MWn.Lh=function(n){JZ(this,n)},MWn.Ib=function(){return ERn(this)},MWn.e=!1,MWn.n=0,vX(l6n,"EStructuralFeatureImpl",449),wAn(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},Om),MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return hN(),0!=(256&this.Bb);case 3:return hN(),0!=(512&this.Bb);case 4:return iln(this.s);case 5:return iln(this.t);case 6:return hN(),!!NIn(this);case 7:return hN(),this.s>=1;case 8:return t?Ikn(this):this.r;case 9:return this.q;case 10:return hN(),0!=(this.Bb&k6n);case 11:return hN(),0!=(this.Bb&M9n);case 12:return hN(),0!=(this.Bb&_Qn);case 13:return this.j;case 14:return qLn(this);case 15:return hN(),0!=(this.Bb&T9n);case 16:return hN(),0!=(this.Bb&hVn);case 17:return dZ(this);case 18:return hN(),0!=(this.Bb&h6n);case 19:return t?uun(this):x6(this)}return U9(this,n-bX((gWn(),i$t)),itn(BB(yan(this,16),26)||i$t,n),t,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return NIn(this);case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yW(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yW(this.q).i);case 10:return 0==(this.Bb&k6n);case 11:return 0!=(this.Bb&M9n);case 12:return 0!=(this.Bb&_Qn);case 13:return null!=this.j;case 14:return null!=qLn(this);case 15:return 0!=(this.Bb&T9n);case 16:return 0!=(this.Bb&hVn);case 17:return!!dZ(this);case 18:return 0!=(this.Bb&h6n);case 19:return!!x6(this)}return O3(this,n-bX((gWn(),i$t)),itn(BB(yan(this,16),26)||i$t,n))},MWn.sh=function(n,t){var e;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void JZ(this,SD(t));case 2:return void Yfn(this,qy(TD(t)));case 3:return void nln(this,qy(TD(t)));case 4:return void Len(this,BB(t,19).a);case 5:return void Uj(this,BB(t,19).a);case 8:return void Ihn(this,BB(t,138));case 9:return void((e=HTn(this,BB(t,87),null))&&e.Fi());case 10:return void Aln(this,qy(TD(t)));case 11:return void Nln(this,qy(TD(t)));case 12:return void $ln(this,qy(TD(t)));case 13:return void _I(this,SD(t));case 15:return void Lln(this,qy(TD(t)));case 16:return void qln(this,qy(TD(t)));case 18:return void Gln(this,qy(TD(t)))}Lbn(this,n-bX((gWn(),i$t)),itn(BB(yan(this,16),26)||i$t,n),t)},MWn.zh=function(){return gWn(),i$t},MWn.Bh=function(n){var t;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,88)&&ACn(P5(BB(this.Cb,88)),4),void Nrn(this,null);case 2:return void Yfn(this,!0);case 3:return void nln(this,!0);case 4:return void Len(this,0);case 5:return this.b=0,void Nen(this,1);case 8:return void Ihn(this,null);case 9:return void((t=HTn(this,null,null))&&t.Fi());case 10:return void Aln(this,!0);case 11:return void Nln(this,!1);case 12:return void $ln(this,!1);case 13:return this.i=null,void arn(this,null);case 15:return void Lln(this,!1);case 16:return void qln(this,!1);case 18:return void Gln(this,!1)}qfn(this,n-bX((gWn(),i$t)),itn(BB(yan(this,16),26)||i$t,n))},MWn.Gh=function(){uun(this),kV(B7((IPn(),Z$t),this)),Ikn(this),this.Bb|=1},MWn.$j=function(){return NIn(this)},MWn.nk=function(n,t){return this.b=0,this.a=null,Pfn(this,n,t)},MWn.ok=function(n){Uj(this,n)},MWn.Ib=function(){var n;return 0!=(64&this.Db)?ERn(this):((n=new fN(ERn(this))).a+=" (iD: ",yE(n,0!=(this.Bb&h6n)),n.a+=")",n.a)},MWn.b=0,vX(l6n,"EAttributeImpl",322),wAn(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1}),MWn.uk=function(n){return n.Tg()==this},MWn.Qg=function(n){return fyn(this,n)},MWn.Rg=function(n,t){this.w=null,this.Db=t<<16|255&this.Db,this.Cb=n},MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return iyn(this);case 4:return this.zj();case 5:return this.F;case 6:return t?Utn(this):wZ(this);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),this.A}return U9(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 6:return this.Cb&&(e=(i=this.Db>>16)>=0?fyn(this,e):this.Cb.ih(this,-1-i,null,e)),T_n(this,n,6,e)}return BB(itn(BB(yan(this,16),26)||this.zh(),t),66).Nj().Qj(this,fgn(this),t-bX(this.zh()),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 6:return T_n(this,null,6,e);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),_pn(this.A,n,e)}return BB(itn(BB(yan(this,16),26)||this.zh(),t),66).Nj().Rj(this,fgn(this),t-bX(this.zh()),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!iyn(this);case 4:return null!=this.zj();case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!wZ(this);case 7:return!!this.A&&0!=this.A.i}return O3(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void ZZ(this,SD(t));case 2:return void IA(this,SD(t));case 5:return void Yqn(this,SD(t));case 7:return!this.A&&(this.A=new NL(O$t,this,7)),sqn(this.A),!this.A&&(this.A=new NL(O$t,this,7)),void pX(this.A,BB(t,14))}Lbn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t)},MWn.zh=function(){return gWn(),c$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,179)&&(BB(this.Cb,179).tb=null),void Nrn(this,null);case 2:return Dsn(this,null),void xen(this,this.D);case 5:return void Yqn(this,null);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),void sqn(this.A)}qfn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.yj=function(){var n;return-1==this.G&&(this.G=(n=Utn(this))?uvn(n.Mh(),this):-1),this.G},MWn.zj=function(){return null},MWn.Aj=function(){return Utn(this)},MWn.vk=function(){return this.v},MWn.Bj=function(){return iyn(this)},MWn.Cj=function(){return null!=this.D?this.D:this.B},MWn.Dj=function(){return this.F},MWn.wj=function(n){return SFn(this,n)},MWn.wk=function(n){this.v=n},MWn.xk=function(n){Urn(this,n)},MWn.yk=function(n){this.C=n},MWn.Lh=function(n){ZZ(this,n)},MWn.Ib=function(){return Cwn(this)},MWn.C=null,MWn.D=null,MWn.G=-1,vX(l6n,"EClassifierImpl",351),wAn(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},_f),MWn.uk=function(n){return QR(this,n.Tg())},MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return iyn(this);case 4:return null;case 5:return this.F;case 6:return t?Utn(this):wZ(this);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),this.A;case 8:return hN(),0!=(256&this.Bb);case 9:return hN(),0!=(512&this.Bb);case 10:return kY(this);case 11:return!this.q&&(this.q=new eU(QAt,this,11,10)),this.q;case 12:return YBn(this);case 13:return RBn(this);case 14:return RBn(this),this.r;case 15:return YBn(this),this.k;case 16:return WPn(this);case 17:return gBn(this);case 18:return qFn(this);case 19:return CLn(this);case 20:return YBn(this),this.o;case 21:return!this.s&&(this.s=new eU(FAt,this,21,17)),this.s;case 22:return a4(this);case 23:return HDn(this)}return U9(this,n-bX((gWn(),r$t)),itn(BB(yan(this,16),26)||r$t,n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 6:return this.Cb&&(e=(i=this.Db>>16)>=0?fyn(this,e):this.Cb.ih(this,-1-i,null,e)),T_n(this,n,6,e);case 11:return!this.q&&(this.q=new eU(QAt,this,11,10)),Ywn(this.q,n,e);case 21:return!this.s&&(this.s=new eU(FAt,this,21,17)),Ywn(this.s,n,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),r$t),t),66).Nj().Qj(this,fgn(this),t-bX((gWn(),r$t)),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 6:return T_n(this,null,6,e);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),_pn(this.A,n,e);case 11:return!this.q&&(this.q=new eU(QAt,this,11,10)),_pn(this.q,n,e);case 21:return!this.s&&(this.s=new eU(FAt,this,21,17)),_pn(this.s,n,e);case 22:return _pn(a4(this),n,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),r$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),r$t)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!iyn(this);case 4:return!1;case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!wZ(this);case 7:return!!this.A&&0!=this.A.i;case 8:return 0!=(256&this.Bb);case 9:return 0!=(512&this.Bb);case 10:return!(!this.u||0==a4(this.u.a).i||this.n&&Rvn(this.n));case 11:return!!this.q&&0!=this.q.i;case 12:return 0!=YBn(this).i;case 13:return 0!=RBn(this).i;case 14:return RBn(this),0!=this.r.i;case 15:return YBn(this),0!=this.k.i;case 16:return 0!=WPn(this).i;case 17:return 0!=gBn(this).i;case 18:return 0!=qFn(this).i;case 19:return 0!=CLn(this).i;case 20:return YBn(this),!!this.o;case 21:return!!this.s&&0!=this.s.i;case 22:return!!this.n&&Rvn(this.n);case 23:return 0!=HDn(this).i}return O3(this,n-bX((gWn(),r$t)),itn(BB(yan(this,16),26)||r$t,n))},MWn.oh=function(n){return(null==this.i||this.q&&0!=this.q.i?null:NNn(this,n))||hUn(this,n)},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void ZZ(this,SD(t));case 2:return void IA(this,SD(t));case 5:return void Yqn(this,SD(t));case 7:return!this.A&&(this.A=new NL(O$t,this,7)),sqn(this.A),!this.A&&(this.A=new NL(O$t,this,7)),void pX(this.A,BB(t,14));case 8:return void Jfn(this,qy(TD(t)));case 9:return void tln(this,qy(TD(t)));case 10:return vqn(kY(this)),void pX(kY(this),BB(t,14));case 11:return!this.q&&(this.q=new eU(QAt,this,11,10)),sqn(this.q),!this.q&&(this.q=new eU(QAt,this,11,10)),void pX(this.q,BB(t,14));case 21:return!this.s&&(this.s=new eU(FAt,this,21,17)),sqn(this.s),!this.s&&(this.s=new eU(FAt,this,21,17)),void pX(this.s,BB(t,14));case 22:return sqn(a4(this)),void pX(a4(this),BB(t,14))}Lbn(this,n-bX((gWn(),r$t)),itn(BB(yan(this,16),26)||r$t,n),t)},MWn.zh=function(){return gWn(),r$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,179)&&(BB(this.Cb,179).tb=null),void Nrn(this,null);case 2:return Dsn(this,null),void xen(this,this.D);case 5:return void Yqn(this,null);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),void sqn(this.A);case 8:return void Jfn(this,!1);case 9:return void tln(this,!1);case 10:return void(this.u&&vqn(this.u));case 11:return!this.q&&(this.q=new eU(QAt,this,11,10)),void sqn(this.q);case 21:return!this.s&&(this.s=new eU(FAt,this,21,17)),void sqn(this.s);case 22:return void(this.n&&sqn(this.n))}qfn(this,n-bX((gWn(),r$t)),itn(BB(yan(this,16),26)||r$t,n))},MWn.Gh=function(){var n,t;if(YBn(this),RBn(this),WPn(this),gBn(this),qFn(this),CLn(this),HDn(this),a6(XB(P5(this))),this.s)for(n=0,t=this.s.i;n<t;++n)vx(Wtn(this.s,n));if(this.q)for(n=0,t=this.q.i;n<t;++n)vx(Wtn(this.q,n));Cfn((IPn(),Z$t),this).ne(),this.Bb|=1},MWn.Ib=function(){return dEn(this)},MWn.k=null,MWn.r=null,vX(l6n,"EClassImpl",88),wAn(1994,1993,D9n),MWn.Vh=function(n,t){return LFn(this,n,t)},MWn.Wh=function(n){return LFn(this,this.i,n)},MWn.Xh=function(n,t){qOn(this,n,t)},MWn.Yh=function(n){tAn(this,n)},MWn.lk=function(n,t){return Ywn(this,n,t)},MWn.pi=function(n){return F9(this,n)},MWn.mk=function(n,t){return _pn(this,n,t)},MWn.mi=function(n,t){return fBn(this,n,t)},MWn.Zh=function(){return new ax(this)},MWn.$h=function(){return new ux(this)},MWn._h=function(n){return sin(this,n)},vX(y9n,"NotifyingInternalEListImpl",1994),wAn(622,1994,R9n),MWn.Hc=function(n){return bqn(this,n)},MWn.Zi=function(n,t,e,i,r){return yZ(this,n,t,e,i,r)},MWn.$i=function(n){Lv(this,n)},MWn.Wj=function(n){return this},MWn.ak=function(){return itn(this.e.Tg(),this.aj())},MWn._i=function(){return this.ak()},MWn.aj=function(){return Awn(this.e.Tg(),this.ak())},MWn.zk=function(){return BB(this.ak().Yj(),26).Bj()},MWn.Ak=function(){return Cvn(BB(this.ak(),18)).n},MWn.Ai=function(){return this.e},MWn.Bk=function(){return!0},MWn.Ck=function(){return!1},MWn.Dk=function(){return!1},MWn.Ek=function(){return!1},MWn.Xc=function(n){return uvn(this,n)},MWn.cj=function(n,t){var e;return e=BB(n,49),this.Dk()?this.Bk()?e.gh(this.e,this.Ak(),this.zk(),t):e.gh(this.e,Awn(e.Tg(),Cvn(BB(this.ak(),18))),null,t):e.gh(this.e,-1-this.aj(),null,t)},MWn.dj=function(n,t){var e;return e=BB(n,49),this.Dk()?this.Bk()?e.ih(this.e,this.Ak(),this.zk(),t):e.ih(this.e,Awn(e.Tg(),Cvn(BB(this.ak(),18))),null,t):e.ih(this.e,-1-this.aj(),null,t)},MWn.rk=function(){return!1},MWn.Fk=function(){return!0},MWn.wj=function(n){return x3(this.d,n)},MWn.ej=function(){return mA(this.e)},MWn.fj=function(){return 0!=this.i},MWn.ri=function(n){return Den(this.d,n)},MWn.li=function(n,t){return this.Fk()&&this.Ek()?GOn(this,n,BB(t,56)):t},MWn.Gk=function(n){return n.kh()?tfn(this.e,BB(n,49)):n},MWn.Wb=function(n){J$(this,n)},MWn.Pc=function(){return H9(this)},MWn.Qc=function(n){var t;if(this.Ek())for(t=this.i-1;t>=0;--t)Wtn(this,t);return Qwn(this,n)},MWn.Xj=function(){sqn(this)},MWn.oi=function(n,t){return _en(this,n,t)},vX(y9n,"EcoreEList",622),wAn(496,622,R9n,yH),MWn.ai=function(){return!1},MWn.aj=function(){return this.c},MWn.bj=function(){return!1},MWn.Fk=function(){return!0},MWn.hi=function(){return!0},MWn.li=function(n,t){return t},MWn.ni=function(){return!1},MWn.c=0,vX(y9n,"EObjectEList",496),wAn(85,496,R9n,$L),MWn.bj=function(){return!0},MWn.Dk=function(){return!1},MWn.rk=function(){return!0},vX(y9n,"EObjectContainmentEList",85),wAn(545,85,R9n,LL),MWn.ci=function(){this.b=!0},MWn.fj=function(){return this.b},MWn.Xj=function(){var n;sqn(this),mA(this.e)?(n=this.b,this.b=!1,ban(this.e,new t6(this.e,2,this.c,n,!1))):this.b=!1},MWn.b=!1,vX(y9n,"EObjectContainmentEList/Unsettable",545),wAn(1140,545,R9n,YG),MWn.ii=function(n,t){var e,i;return e=BB(Iln(this,n,t),87),mA(this.e)&&Lv(this,new j9(this.a,7,(gWn(),a$t),iln(t),cL(i=e.c,88)?BB(i,26):d$t,n)),e},MWn.jj=function(n,t){return Zwn(this,BB(n,87),t)},MWn.kj=function(n,t){return Jwn(this,BB(n,87),t)},MWn.lj=function(n,t,e){return _jn(this,BB(n,87),BB(t,87),e)},MWn.Zi=function(n,t,e,i,r){switch(n){case 3:return yZ(this,n,t,e,i,this.i>1);case 5:return yZ(this,n,t,e,i,this.i-BB(e,15).gc()>0);default:return new N7(this.e,n,this.c,t,e,i,!0)}},MWn.ij=function(){return!0},MWn.fj=function(){return Rvn(this)},MWn.Xj=function(){sqn(this)},vX(l6n,"EClassImpl/1",1140),wAn(1154,1153,Z8n),MWn.ui=function(n){var t,e,i,r,c,a,u;if(8!=(e=n.xi())){if(0==(i=apn(n)))switch(e){case 1:case 9:null!=(u=n.Bi())&&(!(t=P5(BB(u,473))).c&&(t.c=new Bo),snn(t.c,n.Ai())),null!=(a=n.zi())&&0==(1&(r=BB(a,473)).Bb)&&(!(t=P5(r)).c&&(t.c=new Bo),f9(t.c,BB(n.Ai(),26)));break;case 3:null!=(a=n.zi())&&0==(1&(r=BB(a,473)).Bb)&&(!(t=P5(r)).c&&(t.c=new Bo),f9(t.c,BB(n.Ai(),26)));break;case 5:if(null!=(a=n.zi()))for(c=BB(a,14).Kc();c.Ob();)0==(1&(r=BB(c.Pb(),473)).Bb)&&(!(t=P5(r)).c&&(t.c=new Bo),f9(t.c,BB(n.Ai(),26)));break;case 4:null!=(u=n.Bi())&&0==(1&(r=BB(u,473)).Bb)&&(!(t=P5(r)).c&&(t.c=new Bo),snn(t.c,n.Ai()));break;case 6:if(null!=(u=n.Bi()))for(c=BB(u,14).Kc();c.Ob();)0==(1&(r=BB(c.Pb(),473)).Bb)&&(!(t=P5(r)).c&&(t.c=new Bo),snn(t.c,n.Ai()))}this.Hk(i)}},MWn.Hk=function(n){dRn(this,n)},MWn.b=63,vX(l6n,"ESuperAdapter",1154),wAn(1155,1154,Z8n,dp),MWn.Hk=function(n){ACn(this,n)},vX(l6n,"EClassImpl/10",1155),wAn(1144,696,R9n),MWn.Vh=function(n,t){return BTn(this,n,t)},MWn.Wh=function(n){return bmn(this,n)},MWn.Xh=function(n,t){Ifn(this,n,t)},MWn.Yh=function(n){c6(this,n)},MWn.pi=function(n){return F9(this,n)},MWn.mi=function(n,t){return onn(this,n,t)},MWn.lk=function(n,t){throw Hp(new pv)},MWn.Zh=function(){return new ax(this)},MWn.$h=function(){return new ux(this)},MWn._h=function(n){return sin(this,n)},MWn.mk=function(n,t){throw Hp(new pv)},MWn.Wj=function(n){return this},MWn.fj=function(){return 0!=this.i},MWn.Wb=function(n){throw Hp(new pv)},MWn.Xj=function(){throw Hp(new pv)},vX(y9n,"EcoreEList/UnmodifiableEList",1144),wAn(319,1144,R9n,NO),MWn.ni=function(){return!1},vX(y9n,"EcoreEList/UnmodifiableEList/FastCompare",319),wAn(1147,319,R9n,don),MWn.Xc=function(n){var t,e;if(cL(n,170)&&-1!=(t=BB(n,170).aj()))for(e=this.i;t<e;++t)if(GI(this.g[t])===GI(n))return t;return-1},vX(l6n,"EClassImpl/1EAllStructuralFeaturesList",1147),wAn(1141,497,h8n,Eo),MWn.ri=function(n){return x8(VAt,B9n,87,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"EClassImpl/1EGenericSuperTypeEList",1141),wAn(623,497,h8n,To),MWn.ri=function(n){return x8(FAt,N9n,170,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"EClassImpl/1EStructuralFeatureUniqueEList",623),wAn(741,497,h8n,Mo),MWn.ri=function(n){return x8(JAt,N9n,18,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"EClassImpl/1ReferenceList",741),wAn(1142,497,h8n,gp),MWn.bi=function(n,t){tz(this,BB(t,34))},MWn.ri=function(n){return x8(BAt,N9n,34,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"EClassImpl/2",1142),wAn(1143,497,h8n,So),MWn.ri=function(n){return x8(BAt,N9n,34,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"EClassImpl/3",1143),wAn(1145,319,R9n,EH),MWn.Fc=function(n){return mB(this,BB(n,34))},MWn.Yh=function(n){JE(this,BB(n,34))},vX(l6n,"EClassImpl/4",1145),wAn(1146,319,R9n,TH),MWn.Fc=function(n){return yB(this,BB(n,18))},MWn.Yh=function(n){ZE(this,BB(n,18))},vX(l6n,"EClassImpl/5",1146),wAn(1148,497,h8n,Po),MWn.ri=function(n){return x8(QAt,x9n,59,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"EClassImpl/6",1148),wAn(1149,497,h8n,Co),MWn.ri=function(n){return x8(JAt,N9n,18,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"EClassImpl/7",1149),wAn(1997,1996,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,69:1}),MWn.Vh=function(n,t){return uFn(this,n,t)},MWn.Wh=function(n){return uFn(this,this.Vi(),n)},MWn.Xh=function(n,t){eAn(this,n,t)},MWn.Yh=function(n){OOn(this,n)},MWn.lk=function(n,t){return wmn(this,n,t)},MWn.mk=function(n,t){return Fpn(this,n,t)},MWn.mi=function(n,t){return oFn(this,n,t)},MWn.pi=function(n){return this.Oi(n)},MWn.Zh=function(){return new ax(this)},MWn.Gi=function(){return this.Ji()},MWn.$h=function(){return new ux(this)},MWn._h=function(n){return sin(this,n)},vX(y9n,"DelegatingNotifyingInternalEListImpl",1997),wAn(742,1997,H9n),MWn.ai=function(){var n;return cL(n=itn(jY(this.b),this.aj()).Yj(),148)&&!cL(n,457)&&0==(1&n.Bj().i)},MWn.Hc=function(n){var t,e,i,r,c,a,u;if(this.Fk()){if((u=this.Vi())>4){if(!this.wj(n))return!1;if(this.rk()){if(a=(t=(e=BB(n,49)).Ug())==this.b&&(this.Dk()?e.Og(e.Vg(),BB(itn(jY(this.b),this.aj()).Yj(),26).Bj())==Cvn(BB(itn(jY(this.b),this.aj()),18)).n:-1-e.Vg()==this.aj()),this.Ek()&&!a&&!t&&e.Zg())for(i=0;i<u;++i)if(GI(Gz(this,this.Oi(i)))===GI(n))return!0;return a}if(this.Dk()&&!this.Ck()){if(GI(r=BB(n,56).ah(Cvn(BB(itn(jY(this.b),this.aj()),18))))===GI(this.b))return!0;if(null==r||!BB(r,56).kh())return!1}}if(c=this.Li(n),this.Ek()&&!c)for(i=0;i<u;++i)if(GI(e=Gz(this,this.Oi(i)))===GI(n))return!0;return c}return this.Li(n)},MWn.Zi=function(n,t,e,i,r){return new N7(this.b,n,this.aj(),t,e,i,r)},MWn.$i=function(n){ban(this.b,n)},MWn.Wj=function(n){return this},MWn._i=function(){return itn(jY(this.b),this.aj())},MWn.aj=function(){return Awn(jY(this.b),itn(jY(this.b),this.aj()))},MWn.Ai=function(){return this.b},MWn.Bk=function(){return!!itn(jY(this.b),this.aj()).Yj().Bj()},MWn.bj=function(){var n;return!(!cL(n=itn(jY(this.b),this.aj()),99)||0==(BB(n,18).Bb&h6n)&&!Cvn(BB(n,18)))},MWn.Ck=function(){var n,t,e;return!!cL(n=itn(jY(this.b),this.aj()),99)&&!!(t=Cvn(BB(n,18)))&&((e=t.t)>1||-1==e)},MWn.Dk=function(){var n;return!!cL(n=itn(jY(this.b),this.aj()),99)&&!!Cvn(BB(n,18))},MWn.Ek=function(){var n;return!!cL(n=itn(jY(this.b),this.aj()),99)&&0!=(BB(n,18).Bb&BQn)},MWn.Xc=function(n){var t,e,i;if((e=this.Qi(n))>=0)return e;if(this.Fk())for(t=0,i=this.Vi();t<i;++t)if(GI(Gz(this,this.Oi(t)))===GI(n))return t;return-1},MWn.cj=function(n,t){var e;return e=BB(n,49),this.Dk()?this.Bk()?e.gh(this.b,Cvn(BB(itn(jY(this.b),this.aj()),18)).n,BB(itn(jY(this.b),this.aj()).Yj(),26).Bj(),t):e.gh(this.b,Awn(e.Tg(),Cvn(BB(itn(jY(this.b),this.aj()),18))),null,t):e.gh(this.b,-1-this.aj(),null,t)},MWn.dj=function(n,t){var e;return e=BB(n,49),this.Dk()?this.Bk()?e.ih(this.b,Cvn(BB(itn(jY(this.b),this.aj()),18)).n,BB(itn(jY(this.b),this.aj()).Yj(),26).Bj(),t):e.ih(this.b,Awn(e.Tg(),Cvn(BB(itn(jY(this.b),this.aj()),18))),null,t):e.ih(this.b,-1-this.aj(),null,t)},MWn.rk=function(){var n;return!!cL(n=itn(jY(this.b),this.aj()),99)&&0!=(BB(n,18).Bb&h6n)},MWn.Fk=function(){return cL(itn(jY(this.b),this.aj()).Yj(),88)},MWn.wj=function(n){return itn(jY(this.b),this.aj()).Yj().wj(n)},MWn.ej=function(){return mA(this.b)},MWn.fj=function(){return!this.Ri()},MWn.hi=function(){return itn(jY(this.b),this.aj()).hi()},MWn.li=function(n,t){return eGn(this,n,t)},MWn.Wb=function(n){vqn(this),pX(this,BB(n,15))},MWn.Pc=function(){var n;if(this.Ek())for(n=this.Vi()-1;n>=0;--n)eGn(this,n,this.Oi(n));return this.Wi()},MWn.Qc=function(n){var t;if(this.Ek())for(t=this.Vi()-1;t>=0;--t)eGn(this,t,this.Oi(t));return this.Xi(n)},MWn.Xj=function(){vqn(this)},MWn.oi=function(n,t){return B9(this,n,t)},vX(y9n,"DelegatingEcoreEList",742),wAn(1150,742,H9n,uR),MWn.Hi=function(n,t){lD(this,n,BB(t,26))},MWn.Ii=function(n){e$(this,BB(n,26))},MWn.Oi=function(n){var t;return cL(t=BB(Wtn(a4(this.a),n),87).c,88)?BB(t,26):(gWn(),d$t)},MWn.Ti=function(n){var t;return cL(t=BB(fDn(a4(this.a),n),87).c,88)?BB(t,26):(gWn(),d$t)},MWn.Ui=function(n,t){return dmn(this,n,BB(t,26))},MWn.ai=function(){return!1},MWn.Zi=function(n,t,e,i,r){return null},MWn.Ji=function(){return new pp(this)},MWn.Ki=function(){sqn(a4(this.a))},MWn.Li=function(n){return Ufn(this,n)},MWn.Mi=function(n){var t;for(t=n.Kc();t.Ob();)if(!Ufn(this,t.Pb()))return!1;return!0},MWn.Ni=function(n){var t,e,i;if(cL(n,15)&&(i=BB(n,15)).gc()==a4(this.a).i){for(t=i.Kc(),e=new AL(this);t.Ob();)if(GI(t.Pb())!==GI(kpn(e)))return!1;return!0}return!1},MWn.Pi=function(){var n,t,e,i;for(t=1,n=new AL(a4(this.a));n.e!=n.i.gc();)t=31*t+((e=cL(i=BB(kpn(n),87).c,88)?BB(i,26):(gWn(),d$t))?PN(e):0);return t},MWn.Qi=function(n){var t,e,i,r;for(i=0,e=new AL(a4(this.a));e.e!=e.i.gc();){if(t=BB(kpn(e),87),GI(n)===GI(cL(r=t.c,88)?BB(r,26):(gWn(),d$t)))return i;++i}return-1},MWn.Ri=function(){return 0==a4(this.a).i},MWn.Si=function(){return null},MWn.Vi=function(){return a4(this.a).i},MWn.Wi=function(){var n,t,e,i,r,c;for(c=a4(this.a).i,r=x8(Ant,HWn,1,c,5,1),e=0,t=new AL(a4(this.a));t.e!=t.i.gc();)n=BB(kpn(t),87),r[e++]=cL(i=n.c,88)?BB(i,26):(gWn(),d$t);return r},MWn.Xi=function(n){var t,e,i,r;for(r=a4(this.a).i,n.length<r&&(n=Den(tsn(n).c,r)),n.length>r&&$X(n,r,null),e=0,t=new AL(a4(this.a));t.e!=t.i.gc();)$X(n,e++,cL(i=BB(kpn(t),87).c,88)?BB(i,26):(gWn(),d$t));return n},MWn.Yi=function(){var n,t,e,i,r;for((r=new Sk).a+="[",n=a4(this.a),t=0,i=a4(this.a).i;t<i;)cO(r,kN(cL(e=BB(Wtn(n,t),87).c,88)?BB(e,26):(gWn(),d$t))),++t<i&&(r.a+=FWn);return r.a+="]",r.a},MWn.$i=function(n){},MWn.aj=function(){return 10},MWn.Bk=function(){return!0},MWn.bj=function(){return!1},MWn.Ck=function(){return!1},MWn.Dk=function(){return!1},MWn.Ek=function(){return!0},MWn.rk=function(){return!1},MWn.Fk=function(){return!0},MWn.wj=function(n){return cL(n,88)},MWn.fj=function(){return Q0(this.a)},MWn.hi=function(){return!0},MWn.ni=function(){return!0},vX(l6n,"EClassImpl/8",1150),wAn(1151,1964,LVn,pp),MWn.Zc=function(n){return sin(this.a,n)},MWn.gc=function(){return a4(this.a.a).i},vX(l6n,"EClassImpl/8/1",1151),wAn(1152,497,h8n,Io),MWn.ri=function(n){return x8(HAt,HWn,138,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"EClassImpl/9",1152),wAn(1139,53,eYn,Im),vX(l6n,"EClassImpl/MyHashSet",1139),wAn(566,351,{105:1,92:1,90:1,138:1,148:1,834:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1},Ev),MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return iyn(this);case 4:return this.zj();case 5:return this.F;case 6:return t?Utn(this):wZ(this);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),this.A;case 8:return hN(),0!=(256&this.Bb)}return U9(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!iyn(this);case 4:return null!=this.zj();case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!wZ(this);case 7:return!!this.A&&0!=this.A.i;case 8:return 0==(256&this.Bb)}return O3(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void ZZ(this,SD(t));case 2:return void IA(this,SD(t));case 5:return void Yqn(this,SD(t));case 7:return!this.A&&(this.A=new NL(O$t,this,7)),sqn(this.A),!this.A&&(this.A=new NL(O$t,this,7)),void pX(this.A,BB(t,14));case 8:return void Zfn(this,qy(TD(t)))}Lbn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t)},MWn.zh=function(){return gWn(),u$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,179)&&(BB(this.Cb,179).tb=null),void Nrn(this,null);case 2:return Dsn(this,null),void xen(this,this.D);case 5:return void Yqn(this,null);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),void sqn(this.A);case 8:return void Zfn(this,!0)}qfn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.Gh=function(){Cfn((IPn(),Z$t),this).ne(),this.Bb|=1},MWn.Fj=function(){var n,t;if(!this.c&&!(n=G$n(Utn(this))).dc())for(t=n.Kc();t.Ob();)N_n(this,SD(t.Pb()))&&Rln(this);return this.b},MWn.zj=function(){var n;if(!this.e){n=null;try{n=iyn(this)}catch(t){if(!cL(t=lun(t),102))throw Hp(t)}this.d=null,n&&0!=(1&n.i)&&(this.d=n==$Nt?(hN(),ptt):n==ANt?iln(0):n==DNt?new Nb(0):n==xNt?0:n==LNt?jgn(0):n==RNt?rln(0):n==NNt?Pnn(0):fun(0)),this.e=!0}return this.d},MWn.Ej=function(){return 0!=(256&this.Bb)},MWn.Ik=function(n){n&&(this.D="org.eclipse.emf.common.util.AbstractEnumerator")},MWn.xk=function(n){Urn(this,n),this.Ik(n)},MWn.yk=function(n){this.C=n,this.e=!1},MWn.Ib=function(){var n;return 0!=(64&this.Db)?Cwn(this):((n=new fN(Cwn(this))).a+=" (serializable: ",yE(n,0!=(256&this.Bb)),n.a+=")",n.a)},MWn.c=!1,MWn.d=null,MWn.e=!1,vX(l6n,"EDataTypeImpl",566),wAn(457,566,{105:1,92:1,90:1,138:1,148:1,834:1,671:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,457:1,150:1,114:1,115:1,676:1},Am),MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return iyn(this);case 4:return Qsn(this);case 5:return this.F;case 6:return t?Utn(this):wZ(this);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),this.A;case 8:return hN(),0!=(256&this.Bb);case 9:return!this.a&&(this.a=new eU(WAt,this,9,5)),this.a}return U9(this,n-bX((gWn(),o$t)),itn(BB(yan(this,16),26)||o$t,n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 6:return this.Cb&&(e=(i=this.Db>>16)>=0?fyn(this,e):this.Cb.ih(this,-1-i,null,e)),T_n(this,n,6,e);case 9:return!this.a&&(this.a=new eU(WAt,this,9,5)),Ywn(this.a,n,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),o$t),t),66).Nj().Qj(this,fgn(this),t-bX((gWn(),o$t)),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 6:return T_n(this,null,6,e);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),_pn(this.A,n,e);case 9:return!this.a&&(this.a=new eU(WAt,this,9,5)),_pn(this.a,n,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),o$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),o$t)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!iyn(this);case 4:return!!Qsn(this);case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!wZ(this);case 7:return!!this.A&&0!=this.A.i;case 8:return 0==(256&this.Bb);case 9:return!!this.a&&0!=this.a.i}return O3(this,n-bX((gWn(),o$t)),itn(BB(yan(this,16),26)||o$t,n))},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void ZZ(this,SD(t));case 2:return void IA(this,SD(t));case 5:return void Yqn(this,SD(t));case 7:return!this.A&&(this.A=new NL(O$t,this,7)),sqn(this.A),!this.A&&(this.A=new NL(O$t,this,7)),void pX(this.A,BB(t,14));case 8:return void Zfn(this,qy(TD(t)));case 9:return!this.a&&(this.a=new eU(WAt,this,9,5)),sqn(this.a),!this.a&&(this.a=new eU(WAt,this,9,5)),void pX(this.a,BB(t,14))}Lbn(this,n-bX((gWn(),o$t)),itn(BB(yan(this,16),26)||o$t,n),t)},MWn.zh=function(){return gWn(),o$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,179)&&(BB(this.Cb,179).tb=null),void Nrn(this,null);case 2:return Dsn(this,null),void xen(this,this.D);case 5:return void Yqn(this,null);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),void sqn(this.A);case 8:return void Zfn(this,!0);case 9:return!this.a&&(this.a=new eU(WAt,this,9,5)),void sqn(this.a)}qfn(this,n-bX((gWn(),o$t)),itn(BB(yan(this,16),26)||o$t,n))},MWn.Gh=function(){var n,t;if(this.a)for(n=0,t=this.a.i;n<t;++n)vx(Wtn(this.a,n));Cfn((IPn(),Z$t),this).ne(),this.Bb|=1},MWn.zj=function(){return Qsn(this)},MWn.wj=function(n){return null!=n},MWn.Ik=function(n){},vX(l6n,"EEnumImpl",457),wAn(573,438,{105:1,92:1,90:1,1940:1,678:1,147:1,191:1,56:1,108:1,49:1,97:1,573:1,150:1,114:1,115:1},jv),MWn.ne=function(){return this.zb},MWn.Qg=function(n){return lkn(this,n)},MWn._g=function(n,t,e){var i;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return iln(this.d);case 3:return this.b?this.b:this.a;case 4:return null==(i=this.c)?this.zb:i;case 5:return this.Db>>16==5?BB(this.Cb,671):null}return U9(this,n-bX((gWn(),s$t)),itn(BB(yan(this,16),26)||s$t,n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 5:return this.Cb&&(e=(i=this.Db>>16)>=0?lkn(this,e):this.Cb.ih(this,-1-i,null,e)),T_n(this,n,5,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),s$t),t),66).Nj().Qj(this,fgn(this),t-bX((gWn(),s$t)),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 5:return T_n(this,null,5,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),s$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),s$t)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0!=this.d;case 3:return!!this.b;case 4:return null!=this.c;case 5:return!(this.Db>>16!=5||!BB(this.Cb,671))}return O3(this,n-bX((gWn(),s$t)),itn(BB(yan(this,16),26)||s$t,n))},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void Nrn(this,SD(t));case 2:return void $en(this,BB(t,19).a);case 3:return void gOn(this,BB(t,1940));case 4:return void Fin(this,SD(t))}Lbn(this,n-bX((gWn(),s$t)),itn(BB(yan(this,16),26)||s$t,n),t)},MWn.zh=function(){return gWn(),s$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return void Nrn(this,null);case 2:return void $en(this,0);case 3:return void gOn(this,null);case 4:return void Fin(this,null)}qfn(this,n-bX((gWn(),s$t)),itn(BB(yan(this,16),26)||s$t,n))},MWn.Ib=function(){var n;return null==(n=this.c)?this.zb:n},MWn.b=null,MWn.c=null,MWn.d=0,vX(l6n,"EEnumLiteralImpl",573);var L$t,N$t,x$t,D$t=bq(l6n,"EFactoryImpl/InternalEDateTimeFormat");wAn(489,1,{2015:1},vp),vX(l6n,"EFactoryImpl/1ClientInternalEDateTimeFormat",489),wAn(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},Kp),MWn.Sg=function(n,t,e){var i;return e=T_n(this,n,t,e),this.e&&cL(n,170)&&(i=kLn(this,this.e))!=this.c&&(e=azn(this,i,e)),e},MWn._g=function(n,t,e){switch(n){case 0:return this.f;case 1:return!this.d&&(this.d=new $L(VAt,this,1)),this.d;case 2:return t?lFn(this):this.c;case 3:return this.b;case 4:return this.e;case 5:return t?qvn(this):this.a}return U9(this,n-bX((gWn(),f$t)),itn(BB(yan(this,16),26)||f$t,n),t,e)},MWn.jh=function(n,t,e){switch(t){case 0:return nfn(this,null,e);case 1:return!this.d&&(this.d=new $L(VAt,this,1)),_pn(this.d,n,e);case 3:return Zhn(this,null,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),f$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),f$t)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.f;case 1:return!!this.d&&0!=this.d.i;case 2:return!!this.c;case 3:return!!this.b;case 4:return!!this.e;case 5:return!!this.a}return O3(this,n-bX((gWn(),f$t)),itn(BB(yan(this,16),26)||f$t,n))},MWn.sh=function(n,t){switch(n){case 0:return void jEn(this,BB(t,87));case 1:return!this.d&&(this.d=new $L(VAt,this,1)),sqn(this.d),!this.d&&(this.d=new $L(VAt,this,1)),void pX(this.d,BB(t,14));case 3:return void kEn(this,BB(t,87));case 4:return void DMn(this,BB(t,836));case 5:return void cen(this,BB(t,138))}Lbn(this,n-bX((gWn(),f$t)),itn(BB(yan(this,16),26)||f$t,n),t)},MWn.zh=function(){return gWn(),f$t},MWn.Bh=function(n){switch(n){case 0:return void jEn(this,null);case 1:return!this.d&&(this.d=new $L(VAt,this,1)),void sqn(this.d);case 3:return void kEn(this,null);case 4:return void DMn(this,null);case 5:return void cen(this,null)}qfn(this,n-bX((gWn(),f$t)),itn(BB(yan(this,16),26)||f$t,n))},MWn.Ib=function(){var n;return(n=new lN(P$n(this))).a+=" (expression: ",bHn(this,n),n.a+=")",n.a},vX(l6n,"EGenericTypeImpl",241),wAn(1969,1964,q9n),MWn.Xh=function(n,t){nR(this,n,t)},MWn.lk=function(n,t){return nR(this,this.gc(),n),t},MWn.pi=function(n){return Dpn(this.Gi(),n)},MWn.Zh=function(){return this.$h()},MWn.Gi=function(){return new Pp(this)},MWn.$h=function(){return this._h(0)},MWn._h=function(n){return this.Gi().Zc(n)},MWn.mk=function(n,t){return ywn(this,n,!0),t},MWn.ii=function(n,t){var e;return e=tkn(this,t),this.Zc(n).Rb(e),e},MWn.ji=function(n,t){ywn(this,t,!0),this.Zc(n).Rb(t)},vX(y9n,"AbstractSequentialInternalEList",1969),wAn(486,1969,q9n,QN),MWn.pi=function(n){return Dpn(this.Gi(),n)},MWn.Zh=function(){return null==this.b?(YM(),YM(),x$t):this.Jk()},MWn.Gi=function(){return new DO(this.a,this.b)},MWn.$h=function(){return null==this.b?(YM(),YM(),x$t):this.Jk()},MWn._h=function(n){var t,e;if(null==this.b){if(n<0||n>1)throw Hp(new Ay(e9n+n+", size=0"));return YM(),YM(),x$t}for(e=this.Jk(),t=0;t<n;++t)Man(e);return e},MWn.dc=function(){var n,t,e,i,r,c;if(null!=this.b)for(e=0;e<this.b.length;++e)if(n=this.b[e],!this.Mk()||this.a.mh(n))if(c=this.a.bh(n,!1),ZM(),BB(n,66).Oj()){for(i=0,r=(t=BB(c,153)).gc();i<r;++i)if(wX(t.il(i))&&null!=t.jl(i))return!1}else if(n.$j()){if(!BB(c,14).dc())return!1}else if(null!=c)return!1;return!0},MWn.Kc=function(){return Ern(this)},MWn.Zc=function(n){var t,e;if(null==this.b){if(0!=n)throw Hp(new Ay(e9n+n+", size=0"));return YM(),YM(),x$t}for(e=this.Lk()?this.Kk():this.Jk(),t=0;t<n;++t)Man(e);return e},MWn.ii=function(n,t){throw Hp(new pv)},MWn.ji=function(n,t){throw Hp(new pv)},MWn.Jk=function(){return new YN(this.a,this.b)},MWn.Kk=function(){return new Vx(this.a,this.b)},MWn.Lk=function(){return!0},MWn.gc=function(){var n,t,e,i,r,c,a;if(r=0,null!=this.b)for(e=0;e<this.b.length;++e)if(n=this.b[e],!this.Mk()||this.a.mh(n))if(a=this.a.bh(n,!1),ZM(),BB(n,66).Oj())for(i=0,c=(t=BB(a,153)).gc();i<c;++i)wX(t.il(i))&&null!=t.jl(i)&&++r;else n.$j()?r+=BB(a,14).gc():null!=a&&++r;return r},MWn.Mk=function(){return!0},vX(y9n,"EContentsEList",486),wAn(1156,486,q9n,Wx),MWn.Jk=function(){return new Qx(this.a,this.b)},MWn.Kk=function(){return new Yx(this.a,this.b)},MWn.Mk=function(){return!1},vX(l6n,"ENamedElementImpl/1",1156),wAn(279,1,G9n,YN),MWn.Nb=function(n){fU(this,n)},MWn.Rb=function(n){throw Hp(new pv)},MWn.Nk=function(n){if(0!=this.g||this.e)throw Hp(new Fy("Iterator already in use or already filtered"));this.e=n},MWn.Ob=function(){var n,t,e,i,r,c;switch(this.g){case 3:case 2:return!0;case 1:return!1;case-3:this.p?this.p.Pb():++this.n;default:if(this.k&&(this.p?kPn(this,this.p):pOn(this)))return r=this.p?this.p.Pb():this.j?this.j.pi(this.n++):this.k.Xb(this.n++),this.f?((n=BB(r,72)).ak(),e=n.dd(),this.i=e):(e=r,this.i=e),this.g=3,!0;for(;this.d<this.c.length;)if(t=this.c[this.d++],(!this.e||t.Gj()!=NOt||0!=t.aj())&&(!this.Mk()||this.b.mh(t)))if(c=this.b.bh(t,this.Lk()),this.f=(ZM(),BB(t,66).Oj()),this.f||t.$j()){if(this.Lk()?(i=BB(c,15),this.k=i):(i=BB(c,69),this.k=this.j=i),cL(this.k,54)?(this.p=null,this.o=this.k.gc(),this.n=0):this.p=this.j?this.j.$h():this.k.Yc(),this.p?kPn(this,this.p):pOn(this))return r=this.p?this.p.Pb():this.j?this.j.pi(this.n++):this.k.Xb(this.n++),this.f?((n=BB(r,72)).ak(),e=n.dd(),this.i=e):(e=r,this.i=e),this.g=3,!0}else if(null!=c)return this.k=null,this.p=null,e=c,this.i=e,this.g=2,!0;return this.k=null,this.p=null,this.f=!1,this.g=1,!1}},MWn.Sb=function(){var n,t,e,i,r,c;switch(this.g){case-3:case-2:return!0;case-1:return!1;case 3:this.p?this.p.Ub():--this.n;default:if(this.k&&(this.p?jPn(this,this.p):wCn(this)))return r=this.p?this.p.Ub():this.j?this.j.pi(--this.n):this.k.Xb(--this.n),this.f?((n=BB(r,72)).ak(),e=n.dd(),this.i=e):(e=r,this.i=e),this.g=-3,!0;for(;this.d>0;)if(t=this.c[--this.d],(!this.e||t.Gj()!=NOt||0!=t.aj())&&(!this.Mk()||this.b.mh(t)))if(c=this.b.bh(t,this.Lk()),this.f=(ZM(),BB(t,66).Oj()),this.f||t.$j()){if(this.Lk()?(i=BB(c,15),this.k=i):(i=BB(c,69),this.k=this.j=i),cL(this.k,54)?(this.o=this.k.gc(),this.n=this.o):this.p=this.j?this.j._h(this.k.gc()):this.k.Zc(this.k.gc()),this.p?jPn(this,this.p):wCn(this))return r=this.p?this.p.Ub():this.j?this.j.pi(--this.n):this.k.Xb(--this.n),this.f?((n=BB(r,72)).ak(),e=n.dd(),this.i=e):(e=r,this.i=e),this.g=-3,!0}else if(null!=c)return this.k=null,this.p=null,e=c,this.i=e,this.g=-2,!0;return this.k=null,this.p=null,this.g=-1,!1}},MWn.Pb=function(){return Man(this)},MWn.Tb=function(){return this.a},MWn.Ub=function(){var n;if(this.g<-1||this.Sb())return--this.a,this.g=0,n=this.i,this.Sb(),n;throw Hp(new yv)},MWn.Vb=function(){return this.a-1},MWn.Qb=function(){throw Hp(new pv)},MWn.Lk=function(){return!1},MWn.Wb=function(n){throw Hp(new pv)},MWn.Mk=function(){return!0},MWn.a=0,MWn.d=0,MWn.f=!1,MWn.g=0,MWn.n=0,MWn.o=0,vX(y9n,"EContentsEList/FeatureIteratorImpl",279),wAn(697,279,G9n,Vx),MWn.Lk=function(){return!0},vX(y9n,"EContentsEList/ResolvingFeatureIteratorImpl",697),wAn(1157,697,G9n,Yx),MWn.Mk=function(){return!1},vX(l6n,"ENamedElementImpl/1/1",1157),wAn(1158,279,G9n,Qx),MWn.Mk=function(){return!1},vX(l6n,"ENamedElementImpl/1/2",1158),wAn(36,143,t9n,f4,l4,nU,k9,N7,t6,Hen,S0,qen,P0,J5,C0,Uen,I0,Z5,O0,Gen,A0,tU,j9,GQ,zen,$0,n6,L0),MWn._i=function(){return h9(this)},MWn.gj=function(){var n;return(n=h9(this))?n.zj():null},MWn.yi=function(n){return-1==this.b&&this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj())),this.c.Og(this.b,n)},MWn.Ai=function(){return this.c},MWn.hj=function(){var n;return!!(n=h9(this))&&n.Kj()},MWn.b=-1,vX(l6n,"ENotificationImpl",36),wAn(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},$m),MWn.Qg=function(n){return Pkn(this,n)},MWn._g=function(n,t,e){var i;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return hN(),0!=(256&this.Bb);case 3:return hN(),0!=(512&this.Bb);case 4:return iln(this.s);case 5:return iln(this.t);case 6:return hN(),(i=this.t)>1||-1==i;case 7:return hN(),this.s>=1;case 8:return t?Ikn(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?BB(this.Cb,26):null;case 11:return!this.d&&(this.d=new NL(O$t,this,11)),this.d;case 12:return!this.c&&(this.c=new eU(YAt,this,12,10)),this.c;case 13:return!this.a&&(this.a=new oR(this,this)),this.a;case 14:return H7(this)}return U9(this,n-bX((gWn(),g$t)),itn(BB(yan(this,16),26)||g$t,n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 10:return this.Cb&&(e=(i=this.Db>>16)>=0?Pkn(this,e):this.Cb.ih(this,-1-i,null,e)),T_n(this,n,10,e);case 12:return!this.c&&(this.c=new eU(YAt,this,12,10)),Ywn(this.c,n,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),g$t),t),66).Nj().Qj(this,fgn(this),t-bX((gWn(),g$t)),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 9:return gX(this,e);case 10:return T_n(this,null,10,e);case 11:return!this.d&&(this.d=new NL(O$t,this,11)),_pn(this.d,n,e);case 12:return!this.c&&(this.c=new eU(YAt,this,12,10)),_pn(this.c,n,e);case 14:return _pn(H7(this),n,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),g$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),g$t)),n,e)},MWn.lh=function(n){var t;switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(t=this.t)>1||-1==t;case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yW(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yW(this.q).i);case 10:return!(this.Db>>16!=10||!BB(this.Cb,26));case 11:return!!this.d&&0!=this.d.i;case 12:return!!this.c&&0!=this.c.i;case 13:return!(!this.a||0==H7(this.a.a).i||this.b&&Kvn(this.b));case 14:return!!this.b&&Kvn(this.b)}return O3(this,n-bX((gWn(),g$t)),itn(BB(yan(this,16),26)||g$t,n))},MWn.sh=function(n,t){var e;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void Nrn(this,SD(t));case 2:return void Yfn(this,qy(TD(t)));case 3:return void nln(this,qy(TD(t)));case 4:return void Len(this,BB(t,19).a);case 5:return void Nen(this,BB(t,19).a);case 8:return void Ihn(this,BB(t,138));case 9:return void((e=HTn(this,BB(t,87),null))&&e.Fi());case 11:return!this.d&&(this.d=new NL(O$t,this,11)),sqn(this.d),!this.d&&(this.d=new NL(O$t,this,11)),void pX(this.d,BB(t,14));case 12:return!this.c&&(this.c=new eU(YAt,this,12,10)),sqn(this.c),!this.c&&(this.c=new eU(YAt,this,12,10)),void pX(this.c,BB(t,14));case 13:return!this.a&&(this.a=new oR(this,this)),vqn(this.a),!this.a&&(this.a=new oR(this,this)),void pX(this.a,BB(t,14));case 14:return sqn(H7(this)),void pX(H7(this),BB(t,14))}Lbn(this,n-bX((gWn(),g$t)),itn(BB(yan(this,16),26)||g$t,n),t)},MWn.zh=function(){return gWn(),g$t},MWn.Bh=function(n){var t;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return void Nrn(this,null);case 2:return void Yfn(this,!0);case 3:return void nln(this,!0);case 4:return void Len(this,0);case 5:return void Nen(this,1);case 8:return void Ihn(this,null);case 9:return void((t=HTn(this,null,null))&&t.Fi());case 11:return!this.d&&(this.d=new NL(O$t,this,11)),void sqn(this.d);case 12:return!this.c&&(this.c=new eU(YAt,this,12,10)),void sqn(this.c);case 13:return void(this.a&&vqn(this.a));case 14:return void(this.b&&sqn(this.b))}qfn(this,n-bX((gWn(),g$t)),itn(BB(yan(this,16),26)||g$t,n))},MWn.Gh=function(){var n,t;if(this.c)for(n=0,t=this.c.i;n<t;++n)vx(Wtn(this.c,n));Ikn(this),this.Bb|=1},vX(l6n,"EOperationImpl",399),wAn(505,742,H9n,oR),MWn.Hi=function(n,t){fD(this,n,BB(t,138))},MWn.Ii=function(n){i$(this,BB(n,138))},MWn.Oi=function(n){return BB(Wtn(H7(this.a),n),87).c||(gWn(),l$t)},MWn.Ti=function(n){return BB(fDn(H7(this.a),n),87).c||(gWn(),l$t)},MWn.Ui=function(n,t){return bgn(this,n,BB(t,138))},MWn.ai=function(){return!1},MWn.Zi=function(n,t,e,i,r){return null},MWn.Ji=function(){return new mp(this)},MWn.Ki=function(){sqn(H7(this.a))},MWn.Li=function(n){return oln(this,n)},MWn.Mi=function(n){var t;for(t=n.Kc();t.Ob();)if(!oln(this,t.Pb()))return!1;return!0},MWn.Ni=function(n){var t,e,i;if(cL(n,15)&&(i=BB(n,15)).gc()==H7(this.a).i){for(t=i.Kc(),e=new AL(this);t.Ob();)if(GI(t.Pb())!==GI(kpn(e)))return!1;return!0}return!1},MWn.Pi=function(){var n,t,e;for(t=1,n=new AL(H7(this.a));n.e!=n.i.gc();)t=31*t+((e=BB(kpn(n),87).c||(gWn(),l$t))?nsn(e):0);return t},MWn.Qi=function(n){var t,e,i;for(i=0,e=new AL(H7(this.a));e.e!=e.i.gc();){if(t=BB(kpn(e),87),GI(n)===GI(t.c||(gWn(),l$t)))return i;++i}return-1},MWn.Ri=function(){return 0==H7(this.a).i},MWn.Si=function(){return null},MWn.Vi=function(){return H7(this.a).i},MWn.Wi=function(){var n,t,e,i,r;for(r=H7(this.a).i,i=x8(Ant,HWn,1,r,5,1),e=0,t=new AL(H7(this.a));t.e!=t.i.gc();)n=BB(kpn(t),87),i[e++]=n.c||(gWn(),l$t);return i},MWn.Xi=function(n){var t,e,i;for(i=H7(this.a).i,n.length<i&&(n=Den(tsn(n).c,i)),n.length>i&&$X(n,i,null),e=0,t=new AL(H7(this.a));t.e!=t.i.gc();)$X(n,e++,BB(kpn(t),87).c||(gWn(),l$t));return n},MWn.Yi=function(){var n,t,e,i;for((i=new Sk).a+="[",n=H7(this.a),t=0,e=H7(this.a).i;t<e;)cO(i,kN(BB(Wtn(n,t),87).c||(gWn(),l$t))),++t<e&&(i.a+=FWn);return i.a+="]",i.a},MWn.$i=function(n){},MWn.aj=function(){return 13},MWn.Bk=function(){return!0},MWn.bj=function(){return!1},MWn.Ck=function(){return!1},MWn.Dk=function(){return!1},MWn.Ek=function(){return!0},MWn.rk=function(){return!1},MWn.Fk=function(){return!0},MWn.wj=function(n){return cL(n,138)},MWn.fj=function(){return V0(this.a)},MWn.hi=function(){return!0},MWn.ni=function(){return!0},vX(l6n,"EOperationImpl/1",505),wAn(1340,1964,LVn,mp),MWn.Zc=function(n){return sin(this.a,n)},MWn.gc=function(){return H7(this.a.a).i},vX(l6n,"EOperationImpl/1/1",1340),wAn(1341,545,R9n,JG),MWn.ii=function(n,t){var e;return e=BB(Iln(this,n,t),87),mA(this.e)&&Lv(this,new j9(this.a,7,(gWn(),p$t),iln(t),e.c||l$t,n)),e},MWn.jj=function(n,t){return Mfn(this,BB(n,87),t)},MWn.kj=function(n,t){return Sfn(this,BB(n,87),t)},MWn.lj=function(n,t,e){return Wgn(this,BB(n,87),BB(t,87),e)},MWn.Zi=function(n,t,e,i,r){switch(n){case 3:return yZ(this,n,t,e,i,this.i>1);case 5:return yZ(this,n,t,e,i,this.i-BB(e,15).gc()>0);default:return new N7(this.e,n,this.c,t,e,i,!0)}},MWn.ij=function(){return!0},MWn.fj=function(){return Kvn(this)},MWn.Xj=function(){sqn(this)},vX(l6n,"EOperationImpl/2",1341),wAn(498,1,{1938:1,498:1},OI),vX(l6n,"EPackageImpl/1",498),wAn(16,85,R9n,eU),MWn.zk=function(){return this.d},MWn.Ak=function(){return this.b},MWn.Dk=function(){return!0},MWn.b=0,vX(y9n,"EObjectContainmentWithInverseEList",16),wAn(353,16,R9n,eK),MWn.Ek=function(){return!0},MWn.li=function(n,t){return GOn(this,n,BB(t,56))},vX(y9n,"EObjectContainmentWithInverseEList/Resolving",353),wAn(298,353,R9n,Jz),MWn.ci=function(){this.a.tb=null},vX(l6n,"EPackageImpl/2",298),wAn(1228,1,{},Oo),vX(l6n,"EPackageImpl/3",1228),wAn(718,43,tYn,Nm),MWn._b=function(n){return XI(n)?eY(this,n):!!AY(this.f,n)},vX(l6n,"EPackageRegistryImpl",718),wAn(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},Lm),MWn.Qg=function(n){return Ckn(this,n)},MWn._g=function(n,t,e){var i;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return hN(),0!=(256&this.Bb);case 3:return hN(),0!=(512&this.Bb);case 4:return iln(this.s);case 5:return iln(this.t);case 6:return hN(),(i=this.t)>1||-1==i;case 7:return hN(),this.s>=1;case 8:return t?Ikn(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?BB(this.Cb,59):null}return U9(this,n-bX((gWn(),m$t)),itn(BB(yan(this,16),26)||m$t,n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 10:return this.Cb&&(e=(i=this.Db>>16)>=0?Ckn(this,e):this.Cb.ih(this,-1-i,null,e)),T_n(this,n,10,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),m$t),t),66).Nj().Qj(this,fgn(this),t-bX((gWn(),m$t)),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 9:return gX(this,e);case 10:return T_n(this,null,10,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),m$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),m$t)),n,e)},MWn.lh=function(n){var t;switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(t=this.t)>1||-1==t;case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yW(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yW(this.q).i);case 10:return!(this.Db>>16!=10||!BB(this.Cb,59))}return O3(this,n-bX((gWn(),m$t)),itn(BB(yan(this,16),26)||m$t,n))},MWn.zh=function(){return gWn(),m$t},vX(l6n,"EParameterImpl",509),wAn(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},pD),MWn._g=function(n,t,e){var i,r;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return hN(),0!=(256&this.Bb);case 3:return hN(),0!=(512&this.Bb);case 4:return iln(this.s);case 5:return iln(this.t);case 6:return hN(),(r=this.t)>1||-1==r;case 7:return hN(),this.s>=1;case 8:return t?Ikn(this):this.r;case 9:return this.q;case 10:return hN(),0!=(this.Bb&k6n);case 11:return hN(),0!=(this.Bb&M9n);case 12:return hN(),0!=(this.Bb&_Qn);case 13:return this.j;case 14:return qLn(this);case 15:return hN(),0!=(this.Bb&T9n);case 16:return hN(),0!=(this.Bb&hVn);case 17:return dZ(this);case 18:return hN(),0!=(this.Bb&h6n);case 19:return hN(),!(!(i=Cvn(this))||0==(i.Bb&h6n));case 20:return hN(),0!=(this.Bb&BQn);case 21:return t?Cvn(this):this.b;case 22:return t?Ion(this):K5(this);case 23:return!this.a&&(this.a=new RL(BAt,this,23)),this.a}return U9(this,n-bX((gWn(),y$t)),itn(BB(yan(this,16),26)||y$t,n),t,e)},MWn.lh=function(n){var t,e;switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(e=this.t)>1||-1==e;case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yW(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yW(this.q).i);case 10:return 0==(this.Bb&k6n);case 11:return 0!=(this.Bb&M9n);case 12:return 0!=(this.Bb&_Qn);case 13:return null!=this.j;case 14:return null!=qLn(this);case 15:return 0!=(this.Bb&T9n);case 16:return 0!=(this.Bb&hVn);case 17:return!!dZ(this);case 18:return 0!=(this.Bb&h6n);case 19:return!!(t=Cvn(this))&&0!=(t.Bb&h6n);case 20:return 0==(this.Bb&BQn);case 21:return!!this.b;case 22:return!!K5(this);case 23:return!!this.a&&0!=this.a.i}return O3(this,n-bX((gWn(),y$t)),itn(BB(yan(this,16),26)||y$t,n))},MWn.sh=function(n,t){var e;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void JZ(this,SD(t));case 2:return void Yfn(this,qy(TD(t)));case 3:return void nln(this,qy(TD(t)));case 4:return void Len(this,BB(t,19).a);case 5:return void Nen(this,BB(t,19).a);case 8:return void Ihn(this,BB(t,138));case 9:return void((e=HTn(this,BB(t,87),null))&&e.Fi());case 10:return void Aln(this,qy(TD(t)));case 11:return void Nln(this,qy(TD(t)));case 12:return void $ln(this,qy(TD(t)));case 13:return void _I(this,SD(t));case 15:return void Lln(this,qy(TD(t)));case 16:return void qln(this,qy(TD(t)));case 18:return void YZ(this,qy(TD(t)));case 20:return void Uln(this,qy(TD(t)));case 21:return void rrn(this,BB(t,18));case 23:return!this.a&&(this.a=new RL(BAt,this,23)),sqn(this.a),!this.a&&(this.a=new RL(BAt,this,23)),void pX(this.a,BB(t,14))}Lbn(this,n-bX((gWn(),y$t)),itn(BB(yan(this,16),26)||y$t,n),t)},MWn.zh=function(){return gWn(),y$t},MWn.Bh=function(n){var t;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,88)&&ACn(P5(BB(this.Cb,88)),4),void Nrn(this,null);case 2:return void Yfn(this,!0);case 3:return void nln(this,!0);case 4:return void Len(this,0);case 5:return void Nen(this,1);case 8:return void Ihn(this,null);case 9:return void((t=HTn(this,null,null))&&t.Fi());case 10:return void Aln(this,!0);case 11:return void Nln(this,!1);case 12:return void $ln(this,!1);case 13:return this.i=null,void arn(this,null);case 15:return void Lln(this,!1);case 16:return void qln(this,!1);case 18:return zln(this,!1),void(cL(this.Cb,88)&&ACn(P5(BB(this.Cb,88)),2));case 20:return void Uln(this,!0);case 21:return void rrn(this,null);case 23:return!this.a&&(this.a=new RL(BAt,this,23)),void sqn(this.a)}qfn(this,n-bX((gWn(),y$t)),itn(BB(yan(this,16),26)||y$t,n))},MWn.Gh=function(){Ion(this),kV(B7((IPn(),Z$t),this)),Ikn(this),this.Bb|=1},MWn.Lj=function(){return Cvn(this)},MWn.qk=function(){var n;return!!(n=Cvn(this))&&0!=(n.Bb&h6n)},MWn.rk=function(){return 0!=(this.Bb&h6n)},MWn.sk=function(){return 0!=(this.Bb&BQn)},MWn.nk=function(n,t){return this.c=null,Pfn(this,n,t)},MWn.Ib=function(){var n;return 0!=(64&this.Db)?ERn(this):((n=new fN(ERn(this))).a+=" (containment: ",yE(n,0!=(this.Bb&h6n)),n.a+=", resolveProxies: ",yE(n,0!=(this.Bb&BQn)),n.a+=")",n.a)},vX(l6n,"EReferenceImpl",99),wAn(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},Ao),MWn.Fb=function(n){return this===n},MWn.cd=function(){return this.b},MWn.dd=function(){return this.c},MWn.Hb=function(){return PN(this)},MWn.Uh=function(n){vq(this,SD(n))},MWn.ed=function(n){return $H(this,SD(n))},MWn._g=function(n,t,e){switch(n){case 0:return this.b;case 1:return this.c}return U9(this,n-bX((gWn(),k$t)),itn(BB(yan(this,16),26)||k$t,n),t,e)},MWn.lh=function(n){switch(n){case 0:return null!=this.b;case 1:return null!=this.c}return O3(this,n-bX((gWn(),k$t)),itn(BB(yan(this,16),26)||k$t,n))},MWn.sh=function(n,t){switch(n){case 0:return void mq(this,SD(t));case 1:return void Kin(this,SD(t))}Lbn(this,n-bX((gWn(),k$t)),itn(BB(yan(this,16),26)||k$t,n),t)},MWn.zh=function(){return gWn(),k$t},MWn.Bh=function(n){switch(n){case 0:return void Rin(this,null);case 1:return void Kin(this,null)}qfn(this,n-bX((gWn(),k$t)),itn(BB(yan(this,16),26)||k$t,n))},MWn.Sh=function(){var n;return-1==this.a&&(n=this.b,this.a=null==n?0:vvn(n)),this.a},MWn.Th=function(n){this.a=n},MWn.Ib=function(){var n;return 0!=(64&this.Db)?P$n(this):((n=new fN(P$n(this))).a+=" (key: ",cO(n,this.b),n.a+=", value: ",cO(n,this.c),n.a+=")",n.a)},MWn.a=-1,MWn.b=null,MWn.c=null;var R$t,K$t,_$t,F$t,B$t,H$t,q$t,G$t,z$t,U$t,X$t=vX(l6n,"EStringToStringMapEntryImpl",548),W$t=bq(y9n,"FeatureMap/Entry/Internal");wAn(565,1,z9n),MWn.Ok=function(n){return this.Pk(BB(n,49))},MWn.Pk=function(n){return this.Ok(n)},MWn.Fb=function(n){var t,e;return this===n||!!cL(n,72)&&(t=BB(n,72)).ak()==this.c&&(null==(e=this.dd())?null==t.dd():Nfn(e,t.dd()))},MWn.ak=function(){return this.c},MWn.Hb=function(){var n;return n=this.dd(),nsn(this.c)^(null==n?0:nsn(n))},MWn.Ib=function(){var n,t;return t=Utn((n=this.c).Hj()).Ph(),n.ne(),(null!=t&&0!=t.length?t+":"+n.ne():n.ne())+"="+this.dd()},vX(l6n,"EStructuralFeatureImpl/BasicFeatureMapEntry",565),wAn(776,565,z9n,rR),MWn.Pk=function(n){return new rR(this.c,n)},MWn.dd=function(){return this.a},MWn.Qk=function(n,t,e){return Scn(this,n,this.a,t,e)},MWn.Rk=function(n,t,e){return Pcn(this,n,this.a,t,e)},vX(l6n,"EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry",776),wAn(1314,1,{},AI),MWn.Pj=function(n,t,e,i,r){return BB(S9(n,this.b),215).nl(this.a).Wj(i)},MWn.Qj=function(n,t,e,i,r){return BB(S9(n,this.b),215).el(this.a,i,r)},MWn.Rj=function(n,t,e,i,r){return BB(S9(n,this.b),215).fl(this.a,i,r)},MWn.Sj=function(n,t,e){return BB(S9(n,this.b),215).nl(this.a).fj()},MWn.Tj=function(n,t,e,i){BB(S9(n,this.b),215).nl(this.a).Wb(i)},MWn.Uj=function(n,t,e){return BB(S9(n,this.b),215).nl(this.a)},MWn.Vj=function(n,t,e){BB(S9(n,this.b),215).nl(this.a).Xj()},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator",1314),wAn(89,1,{},PB,lQ,RY,w4),MWn.Pj=function(n,t,e,i,r){var c;if(null==(c=t.Ch(e))&&t.Dh(e,c=iWn(this,n)),!r)switch(this.e){case 50:case 41:return BB(c,589).sj();case 40:return BB(c,215).kl()}return c},MWn.Qj=function(n,t,e,i,r){var c;return null==(c=t.Ch(e))&&t.Dh(e,c=iWn(this,n)),BB(c,69).lk(i,r)},MWn.Rj=function(n,t,e,i,r){var c;return null!=(c=t.Ch(e))&&(r=BB(c,69).mk(i,r)),r},MWn.Sj=function(n,t,e){var i;return null!=(i=t.Ch(e))&&BB(i,76).fj()},MWn.Tj=function(n,t,e,i){var r;!(r=BB(t.Ch(e),76))&&t.Dh(e,r=iWn(this,n)),r.Wb(i)},MWn.Uj=function(n,t,e){var i;return null==(i=t.Ch(e))&&t.Dh(e,i=iWn(this,n)),cL(i,76)?BB(i,76):new Ep(BB(t.Ch(e),15))},MWn.Vj=function(n,t,e){var i;!(i=BB(t.Ch(e),76))&&t.Dh(e,i=iWn(this,n)),i.Xj()},MWn.b=0,MWn.e=0,vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateMany",89),wAn(504,1,{}),MWn.Qj=function(n,t,e,i,r){throw Hp(new pv)},MWn.Rj=function(n,t,e,i,r){throw Hp(new pv)},MWn.Uj=function(n,t,e){return new bQ(this,n,t,e)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingle",504),wAn(1331,1,k9n,bQ),MWn.Wj=function(n){return this.a.Pj(this.c,this.d,this.b,n,!0)},MWn.fj=function(){return this.a.Sj(this.c,this.d,this.b)},MWn.Wb=function(n){this.a.Tj(this.c,this.d,this.b,n)},MWn.Xj=function(){this.a.Vj(this.c,this.d,this.b)},MWn.b=0,vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingle/1",1331),wAn(769,504,{},mJ),MWn.Pj=function(n,t,e,i,r){return gKn(n,n.eh(),n.Vg())==this.b?this.sk()&&i?cAn(n):n.eh():null},MWn.Qj=function(n,t,e,i,r){var c,a;return n.eh()&&(r=(c=n.Vg())>=0?n.Qg(r):n.eh().ih(n,-1-c,null,r)),a=Awn(n.Tg(),this.e),n.Sg(i,a,r)},MWn.Rj=function(n,t,e,i,r){var c;return c=Awn(n.Tg(),this.e),n.Sg(null,c,r)},MWn.Sj=function(n,t,e){var i;return i=Awn(n.Tg(),this.e),!!n.eh()&&n.Vg()==i},MWn.Tj=function(n,t,e,i){var r,c,a,u,o;if(null!=i&&!SFn(this.a,i))throw Hp(new Ky(U9n+(cL(i,56)?dEn(BB(i,56).Tg()):utn(tsn(i)))+X9n+this.a+"'"));if(r=n.eh(),a=Awn(n.Tg(),this.e),GI(i)!==GI(r)||n.Vg()!=a&&null!=i){if(vkn(n,BB(i,56)))throw Hp(new _y(w6n+n.Ib()));o=null,r&&(o=(c=n.Vg())>=0?n.Qg(o):n.eh().ih(n,-1-c,null,o)),(u=BB(i,49))&&(o=u.gh(n,Awn(u.Tg(),this.b),null,o)),(o=n.Sg(u,a,o))&&o.Fi()}else n.Lg()&&n.Mg()&&ban(n,new nU(n,1,a,i,i))},MWn.Vj=function(n,t,e){var i,r,c;n.eh()?(c=(i=n.Vg())>=0?n.Qg(null):n.eh().ih(n,-1-i,null,null),r=Awn(n.Tg(),this.e),(c=n.Sg(null,r,c))&&c.Fi()):n.Lg()&&n.Mg()&&ban(n,new tU(n,1,this.e,null,null))},MWn.sk=function(){return!1},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainer",769),wAn(1315,769,{},CB),MWn.sk=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving",1315),wAn(563,504,{}),MWn.Pj=function(n,t,e,i,r){var c;return null==(c=t.Ch(e))?this.b:GI(c)===GI(R$t)?null:c},MWn.Sj=function(n,t,e){var i;return null!=(i=t.Ch(e))&&(GI(i)===GI(R$t)||!Nfn(i,this.b))},MWn.Tj=function(n,t,e,i){var r,c;n.Lg()&&n.Mg()?(r=null==(c=t.Ch(e))?this.b:GI(c)===GI(R$t)?null:c,null==i?null!=this.c?(t.Dh(e,null),i=this.b):null!=this.b?t.Dh(e,R$t):t.Dh(e,null):(this.Sk(i),t.Dh(e,i)),ban(n,this.d.Tk(n,1,this.e,r,i))):null==i?null!=this.c?t.Dh(e,null):null!=this.b?t.Dh(e,R$t):t.Dh(e,null):(this.Sk(i),t.Dh(e,i))},MWn.Vj=function(n,t,e){var i,r;n.Lg()&&n.Mg()?(i=null==(r=t.Ch(e))?this.b:GI(r)===GI(R$t)?null:r,t.Eh(e),ban(n,this.d.Tk(n,1,this.e,i,this.b))):t.Eh(e)},MWn.Sk=function(n){throw Hp(new bv)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData",563),wAn(W9n,1,{},$o),MWn.Tk=function(n,t,e,i,r){return new tU(n,t,e,i,r)},MWn.Uk=function(n,t,e,i,r,c){return new GQ(n,t,e,i,r,c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator",W9n),wAn(1332,W9n,{},Lo),MWn.Tk=function(n,t,e,i,r){return new n6(n,t,e,qy(TD(i)),qy(TD(r)))},MWn.Uk=function(n,t,e,i,r,c){return new L0(n,t,e,qy(TD(i)),qy(TD(r)),c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1",1332),wAn(1333,W9n,{},No),MWn.Tk=function(n,t,e,i,r){return new Hen(n,t,e,BB(i,217).a,BB(r,217).a)},MWn.Uk=function(n,t,e,i,r,c){return new S0(n,t,e,BB(i,217).a,BB(r,217).a,c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2",1333),wAn(1334,W9n,{},xo),MWn.Tk=function(n,t,e,i,r){return new qen(n,t,e,BB(i,172).a,BB(r,172).a)},MWn.Uk=function(n,t,e,i,r,c){return new P0(n,t,e,BB(i,172).a,BB(r,172).a,c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3",1334),wAn(1335,W9n,{},Do),MWn.Tk=function(n,t,e,i,r){return new J5(n,t,e,Gy(MD(i)),Gy(MD(r)))},MWn.Uk=function(n,t,e,i,r,c){return new C0(n,t,e,Gy(MD(i)),Gy(MD(r)),c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4",1335),wAn(1336,W9n,{},Ro),MWn.Tk=function(n,t,e,i,r){return new Uen(n,t,e,BB(i,155).a,BB(r,155).a)},MWn.Uk=function(n,t,e,i,r,c){return new I0(n,t,e,BB(i,155).a,BB(r,155).a,c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1336),wAn(1337,W9n,{},Ko),MWn.Tk=function(n,t,e,i,r){return new Z5(n,t,e,BB(i,19).a,BB(r,19).a)},MWn.Uk=function(n,t,e,i,r,c){return new O0(n,t,e,BB(i,19).a,BB(r,19).a,c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6",1337),wAn(1338,W9n,{},_o),MWn.Tk=function(n,t,e,i,r){return new Gen(n,t,e,BB(i,162).a,BB(r,162).a)},MWn.Uk=function(n,t,e,i,r,c){return new A0(n,t,e,BB(i,162).a,BB(r,162).a,c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7",1338),wAn(1339,W9n,{},Fo),MWn.Tk=function(n,t,e,i,r){return new zen(n,t,e,BB(i,184).a,BB(r,184).a)},MWn.Uk=function(n,t,e,i,r,c){return new $0(n,t,e,BB(i,184).a,BB(r,184).a,c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8",1339),wAn(1317,563,{},wQ),MWn.Sk=function(n){if(!this.a.wj(n))throw Hp(new Ky(U9n+tsn(n)+X9n+this.a+"'"))},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic",1317),wAn(1318,563,{},ZG),MWn.Sk=function(n){},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic",1318),wAn(770,563,{}),MWn.Sj=function(n,t,e){return null!=t.Ch(e)},MWn.Tj=function(n,t,e,i){var r,c;n.Lg()&&n.Mg()?(r=!0,null==(c=t.Ch(e))?(r=!1,c=this.b):GI(c)===GI(R$t)&&(c=null),null==i?null!=this.c?(t.Dh(e,null),i=this.b):t.Dh(e,R$t):(this.Sk(i),t.Dh(e,i)),ban(n,this.d.Uk(n,1,this.e,c,i,!r))):null==i?null!=this.c?t.Dh(e,null):t.Dh(e,R$t):(this.Sk(i),t.Dh(e,i))},MWn.Vj=function(n,t,e){var i,r;n.Lg()&&n.Mg()?(i=!0,null==(r=t.Ch(e))?(i=!1,r=this.b):GI(r)===GI(R$t)&&(r=null),t.Eh(e),ban(n,this.d.Uk(n,2,this.e,r,this.b,i))):t.Eh(e)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable",770),wAn(1319,770,{},dQ),MWn.Sk=function(n){if(!this.a.wj(n))throw Hp(new Ky(U9n+tsn(n)+X9n+this.a+"'"))},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic",1319),wAn(1320,770,{},nz),MWn.Sk=function(n){},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic",1320),wAn(398,504,{},cG),MWn.Pj=function(n,t,e,i,r){var c,a,u,o,s;if(s=t.Ch(e),this.Kj()&&GI(s)===GI(R$t))return null;if(this.sk()&&i&&null!=s){if((u=BB(s,49)).kh()&&u!=(o=tfn(n,u))){if(!SFn(this.a,o))throw Hp(new Ky(U9n+tsn(o)+X9n+this.a+"'"));t.Dh(e,s=o),this.rk()&&(c=BB(o,49),a=u.ih(n,this.b?Awn(u.Tg(),this.b):-1-Awn(n.Tg(),this.e),null,null),!c.eh()&&(a=c.gh(n,this.b?Awn(c.Tg(),this.b):-1-Awn(n.Tg(),this.e),null,a)),a&&a.Fi()),n.Lg()&&n.Mg()&&ban(n,new tU(n,9,this.e,u,o))}return s}return s},MWn.Qj=function(n,t,e,i,r){var c,a;return GI(a=t.Ch(e))===GI(R$t)&&(a=null),t.Dh(e,i),this.bj()?GI(a)!==GI(i)&&null!=a&&(r=(c=BB(a,49)).ih(n,Awn(c.Tg(),this.b),null,r)):this.rk()&&null!=a&&(r=BB(a,49).ih(n,-1-Awn(n.Tg(),this.e),null,r)),n.Lg()&&n.Mg()&&(!r&&(r=new Fj(4)),r.Ei(new tU(n,1,this.e,a,i))),r},MWn.Rj=function(n,t,e,i,r){var c;return GI(c=t.Ch(e))===GI(R$t)&&(c=null),t.Eh(e),n.Lg()&&n.Mg()&&(!r&&(r=new Fj(4)),this.Kj()?r.Ei(new tU(n,2,this.e,c,null)):r.Ei(new tU(n,1,this.e,c,null))),r},MWn.Sj=function(n,t,e){return null!=t.Ch(e)},MWn.Tj=function(n,t,e,i){var r,c,a,u,o;if(null!=i&&!SFn(this.a,i))throw Hp(new Ky(U9n+(cL(i,56)?dEn(BB(i,56).Tg()):utn(tsn(i)))+X9n+this.a+"'"));u=null!=(o=t.Ch(e)),this.Kj()&&GI(o)===GI(R$t)&&(o=null),a=null,this.bj()?GI(o)!==GI(i)&&(null!=o&&(a=(r=BB(o,49)).ih(n,Awn(r.Tg(),this.b),null,a)),null!=i&&(a=(r=BB(i,49)).gh(n,Awn(r.Tg(),this.b),null,a))):this.rk()&&GI(o)!==GI(i)&&(null!=o&&(a=BB(o,49).ih(n,-1-Awn(n.Tg(),this.e),null,a)),null!=i&&(a=BB(i,49).gh(n,-1-Awn(n.Tg(),this.e),null,a))),null==i&&this.Kj()?t.Dh(e,R$t):t.Dh(e,i),n.Lg()&&n.Mg()?(c=new GQ(n,1,this.e,o,i,this.Kj()&&!u),a?(a.Ei(c),a.Fi()):ban(n,c)):a&&a.Fi()},MWn.Vj=function(n,t,e){var i,r,c,a,u;a=null!=(u=t.Ch(e)),this.Kj()&&GI(u)===GI(R$t)&&(u=null),c=null,null!=u&&(this.bj()?c=(i=BB(u,49)).ih(n,Awn(i.Tg(),this.b),null,c):this.rk()&&(c=BB(u,49).ih(n,-1-Awn(n.Tg(),this.e),null,c))),t.Eh(e),n.Lg()&&n.Mg()?(r=new GQ(n,this.Kj()?2:1,this.e,u,null,a),c?(c.Ei(r),c.Fi()):ban(n,r)):c&&c.Fi()},MWn.bj=function(){return!1},MWn.rk=function(){return!1},MWn.sk=function(){return!1},MWn.Kj=function(){return!1},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObject",398),wAn(564,398,{},Zx),MWn.rk=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment",564),wAn(1323,564,{},nD),MWn.sk=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving",1323),wAn(772,564,{},tD),MWn.Kj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable",772),wAn(1325,772,{},eD),MWn.sk=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving",1325),wAn(640,564,{},IB),MWn.bj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse",640),wAn(1324,640,{},$B),MWn.sk=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving",1324),wAn(773,640,{},LB),MWn.Kj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable",773),wAn(1326,773,{},NB),MWn.sk=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving",1326),wAn(641,398,{},iD),MWn.sk=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving",641),wAn(1327,641,{},rD),MWn.Kj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable",1327),wAn(774,641,{},OB),MWn.bj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse",774),wAn(1328,774,{},xB),MWn.Kj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable",1328),wAn(1321,398,{},cD),MWn.Kj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable",1321),wAn(771,398,{},AB),MWn.bj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse",771),wAn(1322,771,{},DB),MWn.Kj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable",1322),wAn(775,565,z9n,aW),MWn.Pk=function(n){return new aW(this.a,this.c,n)},MWn.dd=function(){return this.b},MWn.Qk=function(n,t,e){return D8(this,n,this.b,e)},MWn.Rk=function(n,t,e){return R8(this,n,this.b,e)},vX(l6n,"EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry",775),wAn(1329,1,k9n,Ep),MWn.Wj=function(n){return this.a},MWn.fj=function(){return cL(this.a,95)?BB(this.a,95).fj():!this.a.dc()},MWn.Wb=function(n){this.a.$b(),this.a.Gc(BB(n,15))},MWn.Xj=function(){cL(this.a,95)?BB(this.a,95).Xj():this.a.$b()},vX(l6n,"EStructuralFeatureImpl/SettingMany",1329),wAn(1330,565,z9n,g4),MWn.Ok=function(n){return new cR((Uqn(),FLt),this.b.Ih(this.a,n))},MWn.dd=function(){return null},MWn.Qk=function(n,t,e){return e},MWn.Rk=function(n,t,e){return e},vX(l6n,"EStructuralFeatureImpl/SimpleContentFeatureMapEntry",1330),wAn(642,565,z9n,cR),MWn.Ok=function(n){return new cR(this.c,n)},MWn.dd=function(){return this.a},MWn.Qk=function(n,t,e){return e},MWn.Rk=function(n,t,e){return e},vX(l6n,"EStructuralFeatureImpl/SimpleFeatureMapEntry",642),wAn(391,497,h8n,Bo),MWn.ri=function(n){return x8(qAt,HWn,26,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"ESuperAdapter/1",391),wAn(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},Ho),MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return!this.a&&(this.a=new aG(this,VAt,this)),this.a}return U9(this,n-bX((gWn(),T$t)),itn(BB(yan(this,16),26)||T$t,n),t,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 2:return!this.a&&(this.a=new aG(this,VAt,this)),_pn(this.a,n,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),T$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),T$t)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return!!this.a&&0!=this.a.i}return O3(this,n-bX((gWn(),T$t)),itn(BB(yan(this,16),26)||T$t,n))},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void Nrn(this,SD(t));case 2:return!this.a&&(this.a=new aG(this,VAt,this)),sqn(this.a),!this.a&&(this.a=new aG(this,VAt,this)),void pX(this.a,BB(t,14))}Lbn(this,n-bX((gWn(),T$t)),itn(BB(yan(this,16),26)||T$t,n),t)},MWn.zh=function(){return gWn(),T$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return void Nrn(this,null);case 2:return!this.a&&(this.a=new aG(this,VAt,this)),void sqn(this.a)}qfn(this,n-bX((gWn(),T$t)),itn(BB(yan(this,16),26)||T$t,n))},vX(l6n,"ETypeParameterImpl",444),wAn(445,85,R9n,aG),MWn.cj=function(n,t){return LTn(this,BB(n,87),t)},MWn.dj=function(n,t){return NTn(this,BB(n,87),t)},vX(l6n,"ETypeParameterImpl/1",445),wAn(634,43,tYn,xm),MWn.ec=function(){return new Tp(this)},vX(l6n,"ETypeParameterImpl/2",634),wAn(556,nVn,tVn,Tp),MWn.Fc=function(n){return YR(this,BB(n,87))},MWn.Gc=function(n){var t,e,i;for(i=!1,e=n.Kc();e.Ob();)t=BB(e.Pb(),87),null==VW(this.a,t,"")&&(i=!0);return i},MWn.$b=function(){$U(this.a)},MWn.Hc=function(n){return hU(this.a,n)},MWn.Kc=function(){return new Mp(new usn(new Pb(this.a).a))},MWn.Mc=function(n){return _6(this,n)},MWn.gc=function(){return NT(this.a)},vX(l6n,"ETypeParameterImpl/2/1",556),wAn(557,1,QWn,Mp),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return BB(ten(this.a).cd(),87)},MWn.Ob=function(){return this.a.b},MWn.Qb=function(){o9(this.a)},vX(l6n,"ETypeParameterImpl/2/1/1",557),wAn(1276,43,tYn,Dm),MWn._b=function(n){return XI(n)?eY(this,n):!!AY(this.f,n)},MWn.xc=function(n){var t;return cL(t=XI(n)?SJ(this,n):qI(AY(this.f,n)),837)?(t=BB(t,837)._j(),VW(this,BB(n,235),t),t):null!=t?t:null==n?(JM(),rLt):null},vX(l6n,"EValidatorRegistryImpl",1276),wAn(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},qo),MWn.Ih=function(n,t){switch(n.yj()){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 null==t?null:Bbn(t);case 25:return Xtn(t);case 27:return X9(t);case 28:return W9(t);case 29:return null==t?null:H$(IOt[0],BB(t,199));case 41:return null==t?"":nE(BB(t,290));case 42:return Bbn(t);case 50:return SD(t);default:throw Hp(new _y(d6n+n.ne()+g6n))}},MWn.Jh=function(n){var t;switch(-1==n.G&&(n.G=(t=Utn(n))?uvn(t.Mh(),n):-1),n.G){case 0:return new Om;case 1:return new jo;case 2:return new _f;case 4:return new Ev;case 5:return new Am;case 6:return new jv;case 7:return new Rf;case 10:return new yo;case 11:return new $m;case 12:return new vY;case 13:return new Lm;case 14:return new pD;case 17:return new Ao;case 18:return new Kp;case 19:return new Ho;default:throw Hp(new _y(m6n+n.zb+g6n))}},MWn.Kh=function(n,t){switch(n.yj()){case 20:return null==t?null:new wE(t);case 21:return null==t?null:new $A(t);case 23:case 22:return null==t?null:Zdn(t);case 26:case 24:return null==t?null:Pnn(l_n(t,-128,127)<<24>>24);case 25:return d$n(t);case 27:return Syn(t);case 28:return Pyn(t);case 29:return gMn(t);case 32:case 31:return null==t?null:bSn(t);case 38:case 37:return null==t?null:new Dv(t);case 40:case 39:return null==t?null:iln(l_n(t,_Vn,DWn));case 41:case 42:return null;case 44:case 43:return null==t?null:jgn(rUn(t));case 49:case 48:return null==t?null:rln(l_n(t,Q9n,32767)<<16>>16);case 50:return t;default:throw Hp(new _y(d6n+n.ne()+g6n))}},vX(l6n,"EcoreFactoryImpl",1313),wAn(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},UW),MWn.gb=!1,MWn.hb=!1;var V$t,Q$t=!1;vX(l6n,"EcorePackageImpl",547),wAn(1184,1,{837:1},Go),MWn._j=function(){return sN(),cLt},vX(l6n,"EcorePackageImpl/1",1184),wAn(1193,1,s7n,zo),MWn.wj=function(n){return cL(n,147)},MWn.xj=function(n){return x8(BOt,HWn,147,n,0,1)},vX(l6n,"EcorePackageImpl/10",1193),wAn(1194,1,s7n,Uo),MWn.wj=function(n){return cL(n,191)},MWn.xj=function(n){return x8(qOt,HWn,191,n,0,1)},vX(l6n,"EcorePackageImpl/11",1194),wAn(1195,1,s7n,Xo),MWn.wj=function(n){return cL(n,56)},MWn.xj=function(n){return x8(LOt,HWn,56,n,0,1)},vX(l6n,"EcorePackageImpl/12",1195),wAn(1196,1,s7n,Wo),MWn.wj=function(n){return cL(n,399)},MWn.xj=function(n){return x8(QAt,x9n,59,n,0,1)},vX(l6n,"EcorePackageImpl/13",1196),wAn(1197,1,s7n,Vo),MWn.wj=function(n){return cL(n,235)},MWn.xj=function(n){return x8(GOt,HWn,235,n,0,1)},vX(l6n,"EcorePackageImpl/14",1197),wAn(1198,1,s7n,Qo),MWn.wj=function(n){return cL(n,509)},MWn.xj=function(n){return x8(YAt,HWn,2017,n,0,1)},vX(l6n,"EcorePackageImpl/15",1198),wAn(1199,1,s7n,Yo),MWn.wj=function(n){return cL(n,99)},MWn.xj=function(n){return x8(JAt,N9n,18,n,0,1)},vX(l6n,"EcorePackageImpl/16",1199),wAn(1200,1,s7n,Jo),MWn.wj=function(n){return cL(n,170)},MWn.xj=function(n){return x8(FAt,N9n,170,n,0,1)},vX(l6n,"EcorePackageImpl/17",1200),wAn(1201,1,s7n,Zo),MWn.wj=function(n){return cL(n,472)},MWn.xj=function(n){return x8(_At,HWn,472,n,0,1)},vX(l6n,"EcorePackageImpl/18",1201),wAn(1202,1,s7n,ns),MWn.wj=function(n){return cL(n,548)},MWn.xj=function(n){return x8(X$t,a9n,548,n,0,1)},vX(l6n,"EcorePackageImpl/19",1202),wAn(1185,1,s7n,ts),MWn.wj=function(n){return cL(n,322)},MWn.xj=function(n){return x8(BAt,N9n,34,n,0,1)},vX(l6n,"EcorePackageImpl/2",1185),wAn(1203,1,s7n,es),MWn.wj=function(n){return cL(n,241)},MWn.xj=function(n){return x8(VAt,B9n,87,n,0,1)},vX(l6n,"EcorePackageImpl/20",1203),wAn(1204,1,s7n,is),MWn.wj=function(n){return cL(n,444)},MWn.xj=function(n){return x8(O$t,HWn,836,n,0,1)},vX(l6n,"EcorePackageImpl/21",1204),wAn(1205,1,s7n,rs),MWn.wj=function(n){return zI(n)},MWn.xj=function(n){return x8(ktt,sVn,476,n,8,1)},vX(l6n,"EcorePackageImpl/22",1205),wAn(1206,1,s7n,cs),MWn.wj=function(n){return cL(n,190)},MWn.xj=function(n){return x8(NNt,sVn,190,n,0,2)},vX(l6n,"EcorePackageImpl/23",1206),wAn(1207,1,s7n,as),MWn.wj=function(n){return cL(n,217)},MWn.xj=function(n){return x8(Ttt,sVn,217,n,0,1)},vX(l6n,"EcorePackageImpl/24",1207),wAn(1208,1,s7n,us),MWn.wj=function(n){return cL(n,172)},MWn.xj=function(n){return x8(Stt,sVn,172,n,0,1)},vX(l6n,"EcorePackageImpl/25",1208),wAn(1209,1,s7n,os),MWn.wj=function(n){return cL(n,199)},MWn.xj=function(n){return x8(mtt,sVn,199,n,0,1)},vX(l6n,"EcorePackageImpl/26",1209),wAn(1210,1,s7n,ss),MWn.wj=function(n){return!1},MWn.xj=function(n){return x8(_Nt,HWn,2110,n,0,1)},vX(l6n,"EcorePackageImpl/27",1210),wAn(1211,1,s7n,hs),MWn.wj=function(n){return UI(n)},MWn.xj=function(n){return x8(Ptt,sVn,333,n,7,1)},vX(l6n,"EcorePackageImpl/28",1211),wAn(1212,1,s7n,fs),MWn.wj=function(n){return cL(n,58)},MWn.xj=function(n){return x8(uAt,nZn,58,n,0,1)},vX(l6n,"EcorePackageImpl/29",1212),wAn(1186,1,s7n,ls),MWn.wj=function(n){return cL(n,510)},MWn.xj=function(n){return x8(KAt,{3:1,4:1,5:1,1934:1},590,n,0,1)},vX(l6n,"EcorePackageImpl/3",1186),wAn(1213,1,s7n,bs),MWn.wj=function(n){return cL(n,573)},MWn.xj=function(n){return x8(yAt,HWn,1940,n,0,1)},vX(l6n,"EcorePackageImpl/30",1213),wAn(1214,1,s7n,ws),MWn.wj=function(n){return cL(n,153)},MWn.xj=function(n){return x8(oLt,nZn,153,n,0,1)},vX(l6n,"EcorePackageImpl/31",1214),wAn(1215,1,s7n,ds),MWn.wj=function(n){return cL(n,72)},MWn.xj=function(n){return x8($$t,h7n,72,n,0,1)},vX(l6n,"EcorePackageImpl/32",1215),wAn(1216,1,s7n,gs),MWn.wj=function(n){return cL(n,155)},MWn.xj=function(n){return x8(Ctt,sVn,155,n,0,1)},vX(l6n,"EcorePackageImpl/33",1216),wAn(1217,1,s7n,ps),MWn.wj=function(n){return cL(n,19)},MWn.xj=function(n){return x8(Att,sVn,19,n,0,1)},vX(l6n,"EcorePackageImpl/34",1217),wAn(1218,1,s7n,vs),MWn.wj=function(n){return cL(n,290)},MWn.xj=function(n){return x8($nt,HWn,290,n,0,1)},vX(l6n,"EcorePackageImpl/35",1218),wAn(1219,1,s7n,ms),MWn.wj=function(n){return cL(n,162)},MWn.xj=function(n){return x8(Rtt,sVn,162,n,0,1)},vX(l6n,"EcorePackageImpl/36",1219),wAn(1220,1,s7n,ys),MWn.wj=function(n){return cL(n,83)},MWn.xj=function(n){return x8(Nnt,HWn,83,n,0,1)},vX(l6n,"EcorePackageImpl/37",1220),wAn(1221,1,s7n,ks),MWn.wj=function(n){return cL(n,591)},MWn.xj=function(n){return x8(iLt,HWn,591,n,0,1)},vX(l6n,"EcorePackageImpl/38",1221),wAn(1222,1,s7n,js),MWn.wj=function(n){return!1},MWn.xj=function(n){return x8(FNt,HWn,2111,n,0,1)},vX(l6n,"EcorePackageImpl/39",1222),wAn(1187,1,s7n,Es),MWn.wj=function(n){return cL(n,88)},MWn.xj=function(n){return x8(qAt,HWn,26,n,0,1)},vX(l6n,"EcorePackageImpl/4",1187),wAn(1223,1,s7n,Ts),MWn.wj=function(n){return cL(n,184)},MWn.xj=function(n){return x8(_tt,sVn,184,n,0,1)},vX(l6n,"EcorePackageImpl/40",1223),wAn(1224,1,s7n,Ms),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(l6n,"EcorePackageImpl/41",1224),wAn(1225,1,s7n,Ss),MWn.wj=function(n){return cL(n,588)},MWn.xj=function(n){return x8(sAt,HWn,588,n,0,1)},vX(l6n,"EcorePackageImpl/42",1225),wAn(1226,1,s7n,Ps),MWn.wj=function(n){return!1},MWn.xj=function(n){return x8(BNt,sVn,2112,n,0,1)},vX(l6n,"EcorePackageImpl/43",1226),wAn(1227,1,s7n,Cs),MWn.wj=function(n){return cL(n,42)},MWn.xj=function(n){return x8(Hnt,kVn,42,n,0,1)},vX(l6n,"EcorePackageImpl/44",1227),wAn(1188,1,s7n,Is),MWn.wj=function(n){return cL(n,138)},MWn.xj=function(n){return x8(HAt,HWn,138,n,0,1)},vX(l6n,"EcorePackageImpl/5",1188),wAn(1189,1,s7n,Os),MWn.wj=function(n){return cL(n,148)},MWn.xj=function(n){return x8(GAt,HWn,148,n,0,1)},vX(l6n,"EcorePackageImpl/6",1189),wAn(1190,1,s7n,As),MWn.wj=function(n){return cL(n,457)},MWn.xj=function(n){return x8(XAt,HWn,671,n,0,1)},vX(l6n,"EcorePackageImpl/7",1190),wAn(1191,1,s7n,$s),MWn.wj=function(n){return cL(n,573)},MWn.xj=function(n){return x8(WAt,HWn,678,n,0,1)},vX(l6n,"EcorePackageImpl/8",1191),wAn(1192,1,s7n,Ls),MWn.wj=function(n){return cL(n,471)},MWn.xj=function(n){return x8(HOt,HWn,471,n,0,1)},vX(l6n,"EcorePackageImpl/9",1192),wAn(1025,1982,r9n,xy),MWn.bi=function(n,t){Afn(this,BB(t,415))},MWn.fi=function(n,t){eCn(this,n,BB(t,415))},vX(l6n,"MinimalEObjectImpl/1ArrayDelegatingAdapterList",1025),wAn(1026,143,t9n,uW),MWn.Ai=function(){return this.a.a},vX(l6n,"MinimalEObjectImpl/1ArrayDelegatingAdapterList/1",1026),wAn(1053,1052,{},o$),vX("org.eclipse.emf.ecore.plugin","EcorePlugin",1053);var Y$t,J$t,Z$t,nLt,tLt,eLt,iLt=bq(f7n,"Resource");wAn(781,1378,l7n),MWn.Yk=function(n){},MWn.Zk=function(n){},MWn.Vk=function(){return!this.a&&(this.a=new Sp(this)),this.a},MWn.Wk=function(n){var t,e,i,r,c;if((i=n.length)>0){if(b1(0,n.length),47==n.charCodeAt(0)){for(c=new J6(4),r=1,t=1;t<i;++t)b1(t,n.length),47==n.charCodeAt(t)&&(WB(c,r==t?"":n.substr(r,t-r)),r=t+1);return WB(c,n.substr(r)),ojn(this,c)}b1(i-1,n.length),63==n.charCodeAt(i-1)&&(e=MK(n,YTn(63),i-2))>0&&(n=n.substr(0,e))}return jIn(this,n)},MWn.Xk=function(){return this.c},MWn.Ib=function(){return nE(this.gm)+"@"+(nsn(this)>>>0).toString(16)+" uri='"+this.d+"'"},MWn.b=!1,vX(b7n,"ResourceImpl",781),wAn(1379,781,l7n,Cp),vX(b7n,"BinaryResourceImpl",1379),wAn(1169,694,f8n),MWn.si=function(n){return cL(n,56)?TY(this,BB(n,56)):cL(n,591)?new AL(BB(n,591).Vk()):GI(n)===GI(this.f)?BB(n,14).Kc():(dD(),pAt.a)},MWn.Ob=function(){return bOn(this)},MWn.a=!1,vX(y9n,"EcoreUtil/ContentTreeIterator",1169),wAn(1380,1169,f8n,rU),MWn.si=function(n){return GI(n)===GI(this.f)?BB(n,15).Kc():new F2(BB(n,56))},vX(b7n,"ResourceImpl/5",1380),wAn(648,1994,D9n,Sp),MWn.Hc=function(n){return this.i<=4?Sjn(this,n):cL(n,49)&&BB(n,49).Zg()==this.a},MWn.bi=function(n,t){n==this.i-1&&(this.a.b||(this.a.b=!0))},MWn.di=function(n,t){0==n?this.a.b||(this.a.b=!0):L8(this,n,t)},MWn.fi=function(n,t){},MWn.gi=function(n,t,e){},MWn.aj=function(){return 2},MWn.Ai=function(){return this.a},MWn.bj=function(){return!0},MWn.cj=function(n,t){return t=BB(n,49).wh(this.a,t)},MWn.dj=function(n,t){return BB(n,49).wh(null,t)},MWn.ej=function(){return!1},MWn.hi=function(){return!0},MWn.ri=function(n){return x8(LOt,HWn,56,n,0,1)},MWn.ni=function(){return!1},vX(b7n,"ResourceImpl/ContentsEList",648),wAn(957,1964,LVn,Pp),MWn.Zc=function(n){return this.a._h(n)},MWn.gc=function(){return this.a.gc()},vX(y9n,"AbstractSequentialInternalEList/1",957),wAn(624,1,{},SH),vX(y9n,"BasicExtendedMetaData",624),wAn(1160,1,{},$I),MWn.$k=function(){return null},MWn._k=function(){return-2==this.a&&ob(this,aMn(this.d,this.b)),this.a},MWn.al=function(){return null},MWn.bl=function(){return SQ(),SQ(),set},MWn.ne=function(){return this.c==C7n&&hb(this,Egn(this.d,this.b)),this.c},MWn.cl=function(){return 0},MWn.a=-2,MWn.c=C7n,vX(y9n,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1160),wAn(1161,1,{},_0),MWn.$k=function(){return this.a==(R5(),tLt)&&sb(this,vNn(this.f,this.b)),this.a},MWn._k=function(){return 0},MWn.al=function(){return this.c==(R5(),tLt)&&fb(this,mNn(this.f,this.b)),this.c},MWn.bl=function(){return!this.d&&lb(this,SKn(this.f,this.b)),this.d},MWn.ne=function(){return this.e==C7n&&bb(this,Egn(this.f,this.b)),this.e},MWn.cl=function(){return-2==this.g&&wb(this,YEn(this.f,this.b)),this.g},MWn.e=C7n,MWn.g=-2,vX(y9n,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1161),wAn(1159,1,{},RI),MWn.b=!1,MWn.c=!1,vX(y9n,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1159),wAn(1162,1,{},K0),MWn.c=-2,MWn.e=C7n,MWn.f=C7n,vX(y9n,"BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl",1162),wAn(585,622,R9n,MH),MWn.aj=function(){return this.c},MWn.Fk=function(){return!1},MWn.li=function(n,t){return t},MWn.c=0,vX(y9n,"EDataTypeEList",585);var rLt,cLt,aLt,uLt,oLt=bq(y9n,"FeatureMap");wAn(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},Ecn),MWn.Vc=function(n,t){lNn(this,n,BB(t,72))},MWn.Fc=function(n){return uLn(this,BB(n,72))},MWn.Yh=function(n){dX(this,BB(n,72))},MWn.cj=function(n,t){return HK(this,BB(n,72),t)},MWn.dj=function(n,t){return qK(this,BB(n,72),t)},MWn.ii=function(n,t){return a_n(this,n,t)},MWn.li=function(n,t){return hGn(this,n,BB(t,72))},MWn._c=function(n,t){return Pxn(this,n,BB(t,72))},MWn.jj=function(n,t){return GK(this,BB(n,72),t)},MWn.kj=function(n,t){return zK(this,BB(n,72),t)},MWn.lj=function(n,t,e){return gEn(this,BB(n,72),BB(t,72),e)},MWn.oi=function(n,t){return sTn(this,n,BB(t,72))},MWn.dl=function(n,t){return xKn(this,n,t)},MWn.Wc=function(n,t){var e,i,r,c,a,u,o,s,h;for(s=new gtn(t.gc()),r=t.Kc();r.Ob();)if(c=(i=BB(r.Pb(),72)).ak(),$xn(this.e,c))(!c.hi()||!G3(this,c,i.dd())&&!Sjn(s,i))&&f9(s,i);else{for(h=axn(this.e.Tg(),c),e=BB(this.g,119),a=!0,u=0;u<this.i;++u)if(o=e[u],h.rl(o.ak())){BB(ovn(this,u,i),72),a=!1;break}a&&f9(s,i)}return oon(this,n,s)},MWn.Gc=function(n){var t,e,i,r,c,a,u,o,s;for(o=new gtn(n.gc()),i=n.Kc();i.Ob();)if(r=(e=BB(i.Pb(),72)).ak(),$xn(this.e,r))(!r.hi()||!G3(this,r,e.dd())&&!Sjn(o,e))&&f9(o,e);else{for(s=axn(this.e.Tg(),r),t=BB(this.g,119),c=!0,a=0;a<this.i;++a)if(u=t[a],s.rl(u.ak())){BB(ovn(this,a,e),72),c=!1;break}c&&f9(o,e)}return pX(this,o)},MWn.Wh=function(n){return this.j=-1,LFn(this,this.i,n)},MWn.el=function(n,t,e){return PRn(this,n,t,e)},MWn.mk=function(n,t){return TKn(this,n,t)},MWn.fl=function(n,t,e){return ZBn(this,n,t,e)},MWn.gl=function(){return this},MWn.hl=function(n,t){return rHn(this,n,t)},MWn.il=function(n){return BB(Wtn(this,n),72).ak()},MWn.jl=function(n){return BB(Wtn(this,n),72).dd()},MWn.kl=function(){return this.b},MWn.bj=function(){return!0},MWn.ij=function(){return!0},MWn.ll=function(n){return!adn(this,n)},MWn.ri=function(n){return x8(W$t,h7n,332,n,0,1)},MWn.Gk=function(n){return hD(this,n)},MWn.Wb=function(n){tX(this,n)},MWn.ml=function(n,t){MHn(this,n,t)},MWn.nl=function(n){return zin(this,n)},MWn.ol=function(n){Kmn(this,n)},vX(y9n,"BasicFeatureMap",75),wAn(1851,1,cVn),MWn.Nb=function(n){fU(this,n)},MWn.Rb=function(n){if(-1==this.g)throw Hp(new dv);mz(this);try{Axn(this.e,this.b,this.a,n),this.d=this.e.j,cvn(this)}catch(t){throw cL(t=lun(t),73)?Hp(new vv):Hp(t)}},MWn.Ob=function(){return Ksn(this)},MWn.Sb=function(){return _sn(this)},MWn.Pb=function(){return cvn(this)},MWn.Tb=function(){return this.a},MWn.Ub=function(){var n;if(_sn(this))return mz(this),this.g=--this.a,this.Lk()&&(n=FIn(this.e,this.b,this.c,this.a,this.j),this.j=n),this.i=0,this.j;throw Hp(new yv)},MWn.Vb=function(){return this.a-1},MWn.Qb=function(){if(-1==this.g)throw Hp(new dv);mz(this);try{aPn(this.e,this.b,this.g),this.d=this.e.j,this.g<this.a&&(--this.a,--this.c),--this.g}catch(n){throw cL(n=lun(n),73)?Hp(new vv):Hp(n)}},MWn.Lk=function(){return!1},MWn.Wb=function(n){if(-1==this.g)throw Hp(new dv);mz(this);try{XFn(this.e,this.b,this.g,n),this.d=this.e.j}catch(t){throw cL(t=lun(t),73)?Hp(new vv):Hp(t)}},MWn.a=0,MWn.c=0,MWn.d=0,MWn.f=!1,MWn.g=0,MWn.i=0,vX(y9n,"FeatureMapUtil/BasicFeatureEIterator",1851),wAn(410,1851,cVn,Aan),MWn.pl=function(){var n,t,e;for(e=this.e.i,n=BB(this.e.g,119);this.c<e;){if(t=n[this.c],this.k.rl(t.ak()))return this.j=this.f?t:t.dd(),this.i=2,!0;++this.c}return this.i=1,this.g=-1,!1},MWn.ql=function(){var n,t;for(n=BB(this.e.g,119);--this.c>=0;)if(t=n[this.c],this.k.rl(t.ak()))return this.j=this.f?t:t.dd(),this.i=-2,!0;return this.i=-1,this.g=-1,!1},vX(y9n,"BasicFeatureMap/FeatureEIterator",410),wAn(662,410,cVn,xO),MWn.Lk=function(){return!0},vX(y9n,"BasicFeatureMap/ResolvingFeatureEIterator",662),wAn(955,486,q9n,z$),MWn.Gi=function(){return this},vX(y9n,"EContentsEList/1",955),wAn(956,486,q9n,DO),MWn.Lk=function(){return!1},vX(y9n,"EContentsEList/2",956),wAn(954,279,G9n,U$),MWn.Nk=function(n){},MWn.Ob=function(){return!1},MWn.Sb=function(){return!1},vX(y9n,"EContentsEList/FeatureIteratorImpl/1",954),wAn(825,585,R9n,KL),MWn.ci=function(){this.a=!0},MWn.fj=function(){return this.a},MWn.Xj=function(){var n;sqn(this),mA(this.e)?(n=this.a,this.a=!1,ban(this.e,new t6(this.e,2,this.c,n,!1))):this.a=!1},MWn.a=!1,vX(y9n,"EDataTypeEList/Unsettable",825),wAn(1849,585,R9n,_L),MWn.hi=function(){return!0},vX(y9n,"EDataTypeUniqueEList",1849),wAn(1850,825,R9n,FL),MWn.hi=function(){return!0},vX(y9n,"EDataTypeUniqueEList/Unsettable",1850),wAn(139,85,R9n,NL),MWn.Ek=function(){return!0},MWn.li=function(n,t){return GOn(this,n,BB(t,56))},vX(y9n,"EObjectContainmentEList/Resolving",139),wAn(1163,545,R9n,xL),MWn.Ek=function(){return!0},MWn.li=function(n,t){return GOn(this,n,BB(t,56))},vX(y9n,"EObjectContainmentEList/Unsettable/Resolving",1163),wAn(748,16,R9n,iK),MWn.ci=function(){this.a=!0},MWn.fj=function(){return this.a},MWn.Xj=function(){var n;sqn(this),mA(this.e)?(n=this.a,this.a=!1,ban(this.e,new t6(this.e,2,this.c,n,!1))):this.a=!1},MWn.a=!1,vX(y9n,"EObjectContainmentWithInverseEList/Unsettable",748),wAn(1173,748,R9n,rK),MWn.Ek=function(){return!0},MWn.li=function(n,t){return GOn(this,n,BB(t,56))},vX(y9n,"EObjectContainmentWithInverseEList/Unsettable/Resolving",1173),wAn(743,496,R9n,DL),MWn.ci=function(){this.a=!0},MWn.fj=function(){return this.a},MWn.Xj=function(){var n;sqn(this),mA(this.e)?(n=this.a,this.a=!1,ban(this.e,new t6(this.e,2,this.c,n,!1))):this.a=!1},MWn.a=!1,vX(y9n,"EObjectEList/Unsettable",743),wAn(328,496,R9n,RL),MWn.Ek=function(){return!0},MWn.li=function(n,t){return GOn(this,n,BB(t,56))},vX(y9n,"EObjectResolvingEList",328),wAn(1641,743,R9n,BL),MWn.Ek=function(){return!0},MWn.li=function(n,t){return GOn(this,n,BB(t,56))},vX(y9n,"EObjectResolvingEList/Unsettable",1641),wAn(1381,1,{},Ns),vX(y9n,"EObjectValidator",1381),wAn(546,496,R9n,iU),MWn.zk=function(){return this.d},MWn.Ak=function(){return this.b},MWn.bj=function(){return!0},MWn.Dk=function(){return!0},MWn.b=0,vX(y9n,"EObjectWithInverseEList",546),wAn(1176,546,R9n,cK),MWn.Ck=function(){return!0},vX(y9n,"EObjectWithInverseEList/ManyInverse",1176),wAn(625,546,R9n,aK),MWn.ci=function(){this.a=!0},MWn.fj=function(){return this.a},MWn.Xj=function(){var n;sqn(this),mA(this.e)?(n=this.a,this.a=!1,ban(this.e,new t6(this.e,2,this.c,n,!1))):this.a=!1},MWn.a=!1,vX(y9n,"EObjectWithInverseEList/Unsettable",625),wAn(1175,625,R9n,oK),MWn.Ck=function(){return!0},vX(y9n,"EObjectWithInverseEList/Unsettable/ManyInverse",1175),wAn(749,546,R9n,uK),MWn.Ek=function(){return!0},MWn.li=function(n,t){return GOn(this,n,BB(t,56))},vX(y9n,"EObjectWithInverseResolvingEList",749),wAn(31,749,R9n,hK),MWn.Ck=function(){return!0},vX(y9n,"EObjectWithInverseResolvingEList/ManyInverse",31),wAn(750,625,R9n,sK),MWn.Ek=function(){return!0},MWn.li=function(n,t){return GOn(this,n,BB(t,56))},vX(y9n,"EObjectWithInverseResolvingEList/Unsettable",750),wAn(1174,750,R9n,fK),MWn.Ck=function(){return!0},vX(y9n,"EObjectWithInverseResolvingEList/Unsettable/ManyInverse",1174),wAn(1164,622,R9n),MWn.ai=function(){return 0==(1792&this.b)},MWn.ci=function(){this.b|=1},MWn.Bk=function(){return 0!=(4&this.b)},MWn.bj=function(){return 0!=(40&this.b)},MWn.Ck=function(){return 0!=(16&this.b)},MWn.Dk=function(){return 0!=(8&this.b)},MWn.Ek=function(){return 0!=(this.b&M9n)},MWn.rk=function(){return 0!=(32&this.b)},MWn.Fk=function(){return 0!=(this.b&k6n)},MWn.wj=function(n){return this.d?x3(this.d,n):this.ak().Yj().wj(n)},MWn.fj=function(){return 0!=(2&this.b)?0!=(1&this.b):0!=this.i},MWn.hi=function(){return 0!=(128&this.b)},MWn.Xj=function(){var n;sqn(this),0!=(2&this.b)&&(mA(this.e)?(n=0!=(1&this.b),this.b&=-2,Lv(this,new t6(this.e,2,Awn(this.e.Tg(),this.ak()),n,!1))):this.b&=-2)},MWn.ni=function(){return 0==(1536&this.b)},MWn.b=0,vX(y9n,"EcoreEList/Generic",1164),wAn(1165,1164,R9n,zQ),MWn.ak=function(){return this.a},vX(y9n,"EcoreEList/Dynamic",1165),wAn(747,63,h8n,Ip),MWn.ri=function(n){return Den(this.a.a,n)},vX(y9n,"EcoreEMap/1",747),wAn(746,85,R9n,Zz),MWn.bi=function(n,t){Ivn(this.b,BB(t,133))},MWn.di=function(n,t){aan(this.b)},MWn.ei=function(n,t,e){var i;++(i=this.b,BB(t,133),i).e},MWn.fi=function(n,t){Oln(this.b,BB(t,133))},MWn.gi=function(n,t,e){Oln(this.b,BB(e,133)),GI(e)===GI(t)&&BB(e,133).Th(c$(BB(t,133).cd())),Ivn(this.b,BB(t,133))},vX(y9n,"EcoreEMap/DelegateEObjectContainmentEList",746),wAn(1171,151,j9n,yin),vX(y9n,"EcoreEMap/Unsettable",1171),wAn(1172,746,R9n,lK),MWn.ci=function(){this.a=!0},MWn.fj=function(){return this.a},MWn.Xj=function(){var n;sqn(this),mA(this.e)?(n=this.a,this.a=!1,ban(this.e,new t6(this.e,2,this.c,n,!1))):this.a=!1},MWn.a=!1,vX(y9n,"EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList",1172),wAn(1168,228,tYn,lX),MWn.a=!1,MWn.b=!1,vX(y9n,"EcoreUtil/Copier",1168),wAn(745,1,QWn,F2),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return udn(this)},MWn.Pb=function(){var n;return udn(this),n=this.b,this.b=null,n},MWn.Qb=function(){this.a.Qb()},vX(y9n,"EcoreUtil/ProperContentIterator",745),wAn(1382,1381,{},Ff),vX(y9n,"EcoreValidator",1382),bq(y9n,"FeatureMapUtil/Validator"),wAn(1260,1,{1942:1},xs),MWn.rl=function(n){return!0},vX(y9n,"FeatureMapUtil/1",1260),wAn(757,1,{1942:1},cUn),MWn.rl=function(n){var t;return this.c==n||(null==(t=TD(RX(this.a,n)))?xRn(this,n)?(r6(this.a,n,(hN(),vtt)),!0):(r6(this.a,n,(hN(),ptt)),!1):t==(hN(),vtt))},MWn.e=!1,vX(y9n,"FeatureMapUtil/BasicValidator",757),wAn(758,43,tYn,X$),vX(y9n,"FeatureMapUtil/BasicValidator/Cache",758),wAn(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},xI),MWn.Vc=function(n,t){Axn(this.c,this.b,n,t)},MWn.Fc=function(n){return xKn(this.c,this.b,n)},MWn.Wc=function(n,t){return jHn(this.c,this.b,n,t)},MWn.Gc=function(n){return Z$(this,n)},MWn.Xh=function(n,t){htn(this.c,this.b,n,t)},MWn.lk=function(n,t){return PRn(this.c,this.b,n,t)},MWn.pi=function(n){return iHn(this.c,this.b,n,!1)},MWn.Zh=function(){return jA(this.c,this.b)},MWn.$h=function(){return EA(this.c,this.b)},MWn._h=function(n){return $8(this.c,this.b,n)},MWn.mk=function(n,t){return tR(this,n,t)},MWn.$b=function(){Nv(this)},MWn.Hc=function(n){return G3(this.c,this.b,n)},MWn.Ic=function(n){return Mcn(this.c,this.b,n)},MWn.Xb=function(n){return iHn(this.c,this.b,n,!0)},MWn.Wj=function(n){return this},MWn.Xc=function(n){return z3(this.c,this.b,n)},MWn.dc=function(){return HI(this)},MWn.fj=function(){return!adn(this.c,this.b)},MWn.Kc=function(){return cnn(this.c,this.b)},MWn.Yc=function(){return ann(this.c,this.b)},MWn.Zc=function(n){return lln(this.c,this.b,n)},MWn.ii=function(n,t){return mFn(this.c,this.b,n,t)},MWn.ji=function(n,t){Q6(this.c,this.b,n,t)},MWn.$c=function(n){return aPn(this.c,this.b,n)},MWn.Mc=function(n){return CKn(this.c,this.b,n)},MWn._c=function(n,t){return XFn(this.c,this.b,n,t)},MWn.Wb=function(n){AOn(this.c,this.b),Z$(this,BB(n,15))},MWn.gc=function(){return Kln(this.c,this.b)},MWn.Pc=function(){return G1(this.c,this.b)},MWn.Qc=function(n){return U3(this.c,this.b,n)},MWn.Ib=function(){var n,t;for((t=new Sk).a+="[",n=jA(this.c,this.b);Ksn(n);)cO(t,kN(cvn(n))),Ksn(n)&&(t.a+=FWn);return t.a+="]",t.a},MWn.Xj=function(){AOn(this.c,this.b)},vX(y9n,"FeatureMapUtil/FeatureEList",501),wAn(627,36,t9n,b4),MWn.yi=function(n){return eln(this,n)},MWn.Di=function(n){var t,e,i,r;switch(this.d){case 1:case 2:if(GI(n.Ai())===GI(this.c)&&eln(this,null)==n.yi(null))return this.g=n.zi(),1==n.xi()&&(this.d=1),!0;break;case 3:if(3===n.xi()&&GI(n.Ai())===GI(this.c)&&eln(this,null)==n.yi(null))return this.d=5,f9(t=new gtn(2),this.g),f9(t,n.zi()),this.g=t,!0;break;case 5:if(3===n.xi()&&GI(n.Ai())===GI(this.c)&&eln(this,null)==n.yi(null))return BB(this.g,14).Fc(n.zi()),!0;break;case 4:switch(n.xi()){case 3:if(GI(n.Ai())===GI(this.c)&&eln(this,null)==n.yi(null))return this.d=1,this.g=n.zi(),!0;break;case 4:if(GI(n.Ai())===GI(this.c)&&eln(this,null)==n.yi(null))return this.d=6,f9(r=new gtn(2),this.n),f9(r,n.Bi()),this.n=r,i=Pun(Gk(ANt,1),hQn,25,15,[this.o,n.Ci()]),this.g=i,!0}break;case 6:if(4===n.xi()&&GI(n.Ai())===GI(this.c)&&eln(this,null)==n.yi(null))return BB(this.n,14).Fc(n.Bi()),aHn(i=BB(this.g,48),0,e=x8(ANt,hQn,25,i.length+1,15,1),0,i.length),e[i.length]=n.Ci(),this.g=e,!0}return!1},vX(y9n,"FeatureMapUtil/FeatureENotificationImpl",627),wAn(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},lq),MWn.dl=function(n,t){return xKn(this.c,n,t)},MWn.el=function(n,t,e){return PRn(this.c,n,t,e)},MWn.fl=function(n,t,e){return ZBn(this.c,n,t,e)},MWn.gl=function(){return this},MWn.hl=function(n,t){return rHn(this.c,n,t)},MWn.il=function(n){return BB(iHn(this.c,this.b,n,!1),72).ak()},MWn.jl=function(n){return BB(iHn(this.c,this.b,n,!1),72).dd()},MWn.kl=function(){return this.a},MWn.ll=function(n){return!adn(this.c,n)},MWn.ml=function(n,t){MHn(this.c,n,t)},MWn.nl=function(n){return zin(this.c,n)},MWn.ol=function(n){Kmn(this.c,n)},vX(y9n,"FeatureMapUtil/FeatureFeatureMap",552),wAn(1259,1,k9n,KI),MWn.Wj=function(n){return iHn(this.b,this.a,-1,n)},MWn.fj=function(){return!adn(this.b,this.a)},MWn.Wb=function(n){MHn(this.b,this.a,n)},MWn.Xj=function(){AOn(this.b,this.a)},vX(y9n,"FeatureMapUtil/FeatureValue",1259);var sLt,hLt,fLt,lLt,bLt,wLt=bq(O7n,"AnyType");wAn(666,60,BVn,ik),vX(O7n,"InvalidDatatypeValueException",666);var dLt,gLt,pLt,vLt,mLt,yLt,kLt,jLt,ELt,TLt,MLt,SLt,PLt,CLt,ILt,OLt,ALt,$Lt,LLt,NLt,xLt,DLt,RLt,KLt,_Lt,FLt,BLt,HLt,qLt,GLt,zLt=bq(O7n,A7n),ULt=bq(O7n,$7n),XLt=bq(O7n,L7n);wAn(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},Rm),MWn._g=function(n,t,e){switch(n){case 0:return e?(!this.c&&(this.c=new Ecn(this,0)),this.c):(!this.c&&(this.c=new Ecn(this,0)),this.c.b);case 1:return e?(!this.c&&(this.c=new Ecn(this,0)),BB(n1(this.c,(Uqn(),vLt)),153)):(!this.c&&(this.c=new Ecn(this,0)),BB(BB(n1(this.c,(Uqn(),vLt)),153),215)).kl();case 2:return e?(!this.b&&(this.b=new Ecn(this,2)),this.b):(!this.b&&(this.b=new Ecn(this,2)),this.b.b)}return U9(this,n-bX(this.zh()),itn(0==(2&this.j)?this.zh():(!this.k&&(this.k=new Kf),this.k).ck(),n),t,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.c&&(this.c=new Ecn(this,0)),TKn(this.c,n,e);case 1:return(!this.c&&(this.c=new Ecn(this,0)),BB(BB(n1(this.c,(Uqn(),vLt)),153),69)).mk(n,e);case 2:return!this.b&&(this.b=new Ecn(this,2)),TKn(this.b,n,e)}return BB(itn(0==(2&this.j)?this.zh():(!this.k&&(this.k=new Kf),this.k).ck(),t),66).Nj().Rj(this,Q7(this),t-bX(this.zh()),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.c&&0!=this.c.i;case 1:return!(!this.c&&(this.c=new Ecn(this,0)),BB(n1(this.c,(Uqn(),vLt)),153)).dc();case 2:return!!this.b&&0!=this.b.i}return O3(this,n-bX(this.zh()),itn(0==(2&this.j)?this.zh():(!this.k&&(this.k=new Kf),this.k).ck(),n))},MWn.sh=function(n,t){switch(n){case 0:return!this.c&&(this.c=new Ecn(this,0)),void tX(this.c,t);case 1:return void(!this.c&&(this.c=new Ecn(this,0)),BB(BB(n1(this.c,(Uqn(),vLt)),153),215)).Wb(t);case 2:return!this.b&&(this.b=new Ecn(this,2)),void tX(this.b,t)}Lbn(this,n-bX(this.zh()),itn(0==(2&this.j)?this.zh():(!this.k&&(this.k=new Kf),this.k).ck(),n),t)},MWn.zh=function(){return Uqn(),pLt},MWn.Bh=function(n){switch(n){case 0:return!this.c&&(this.c=new Ecn(this,0)),void sqn(this.c);case 1:return void(!this.c&&(this.c=new Ecn(this,0)),BB(n1(this.c,(Uqn(),vLt)),153)).$b();case 2:return!this.b&&(this.b=new Ecn(this,2)),void sqn(this.b)}qfn(this,n-bX(this.zh()),itn(0==(2&this.j)?this.zh():(!this.k&&(this.k=new Kf),this.k).ck(),n))},MWn.Ib=function(){var n;return 0!=(4&this.j)?P$n(this):((n=new fN(P$n(this))).a+=" (mixed: ",rO(n,this.c),n.a+=", anyAttribute: ",rO(n,this.b),n.a+=")",n.a)},vX(N7n,"AnyTypeImpl",830),wAn(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},Rs),MWn._g=function(n,t,e){switch(n){case 0:return this.a;case 1:return this.b}return U9(this,n-bX((Uqn(),OLt)),itn(0==(2&this.j)?OLt:(!this.k&&(this.k=new Kf),this.k).ck(),n),t,e)},MWn.lh=function(n){switch(n){case 0:return null!=this.a;case 1:return null!=this.b}return O3(this,n-bX((Uqn(),OLt)),itn(0==(2&this.j)?OLt:(!this.k&&(this.k=new Kf),this.k).ck(),n))},MWn.sh=function(n,t){switch(n){case 0:return void kb(this,SD(t));case 1:return void jb(this,SD(t))}Lbn(this,n-bX((Uqn(),OLt)),itn(0==(2&this.j)?OLt:(!this.k&&(this.k=new Kf),this.k).ck(),n),t)},MWn.zh=function(){return Uqn(),OLt},MWn.Bh=function(n){switch(n){case 0:return void(this.a=null);case 1:return void(this.b=null)}qfn(this,n-bX((Uqn(),OLt)),itn(0==(2&this.j)?OLt:(!this.k&&(this.k=new Kf),this.k).ck(),n))},MWn.Ib=function(){var n;return 0!=(4&this.j)?P$n(this):((n=new fN(P$n(this))).a+=" (data: ",cO(n,this.a),n.a+=", target: ",cO(n,this.b),n.a+=")",n.a)},MWn.a=null,MWn.b=null,vX(N7n,"ProcessingInstructionImpl",667),wAn(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},_m),MWn._g=function(n,t,e){switch(n){case 0:return e?(!this.c&&(this.c=new Ecn(this,0)),this.c):(!this.c&&(this.c=new Ecn(this,0)),this.c.b);case 1:return e?(!this.c&&(this.c=new Ecn(this,0)),BB(n1(this.c,(Uqn(),vLt)),153)):(!this.c&&(this.c=new Ecn(this,0)),BB(BB(n1(this.c,(Uqn(),vLt)),153),215)).kl();case 2:return e?(!this.b&&(this.b=new Ecn(this,2)),this.b):(!this.b&&(this.b=new Ecn(this,2)),this.b.b);case 3:return!this.c&&(this.c=new Ecn(this,0)),SD(rHn(this.c,(Uqn(),LLt),!0));case 4:return gK(this.a,(!this.c&&(this.c=new Ecn(this,0)),SD(rHn(this.c,(Uqn(),LLt),!0))));case 5:return this.a}return U9(this,n-bX((Uqn(),$Lt)),itn(0==(2&this.j)?$Lt:(!this.k&&(this.k=new Kf),this.k).ck(),n),t,e)},MWn.lh=function(n){switch(n){case 0:return!!this.c&&0!=this.c.i;case 1:return!(!this.c&&(this.c=new Ecn(this,0)),BB(n1(this.c,(Uqn(),vLt)),153)).dc();case 2:return!!this.b&&0!=this.b.i;case 3:return!this.c&&(this.c=new Ecn(this,0)),null!=SD(rHn(this.c,(Uqn(),LLt),!0));case 4:return null!=gK(this.a,(!this.c&&(this.c=new Ecn(this,0)),SD(rHn(this.c,(Uqn(),LLt),!0))));case 5:return!!this.a}return O3(this,n-bX((Uqn(),$Lt)),itn(0==(2&this.j)?$Lt:(!this.k&&(this.k=new Kf),this.k).ck(),n))},MWn.sh=function(n,t){switch(n){case 0:return!this.c&&(this.c=new Ecn(this,0)),void tX(this.c,t);case 1:return void(!this.c&&(this.c=new Ecn(this,0)),BB(BB(n1(this.c,(Uqn(),vLt)),153),215)).Wb(t);case 2:return!this.b&&(this.b=new Ecn(this,2)),void tX(this.b,t);case 3:return void F0(this,SD(t));case 4:return void F0(this,pK(this.a,t));case 5:return void Eb(this,BB(t,148))}Lbn(this,n-bX((Uqn(),$Lt)),itn(0==(2&this.j)?$Lt:(!this.k&&(this.k=new Kf),this.k).ck(),n),t)},MWn.zh=function(){return Uqn(),$Lt},MWn.Bh=function(n){switch(n){case 0:return!this.c&&(this.c=new Ecn(this,0)),void sqn(this.c);case 1:return void(!this.c&&(this.c=new Ecn(this,0)),BB(n1(this.c,(Uqn(),vLt)),153)).$b();case 2:return!this.b&&(this.b=new Ecn(this,2)),void sqn(this.b);case 3:return!this.c&&(this.c=new Ecn(this,0)),void MHn(this.c,(Uqn(),LLt),null);case 4:return void F0(this,pK(this.a,null));case 5:return void(this.a=null)}qfn(this,n-bX((Uqn(),$Lt)),itn(0==(2&this.j)?$Lt:(!this.k&&(this.k=new Kf),this.k).ck(),n))},vX(N7n,"SimpleAnyTypeImpl",668),wAn(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},Km),MWn._g=function(n,t,e){switch(n){case 0:return e?(!this.a&&(this.a=new Ecn(this,0)),this.a):(!this.a&&(this.a=new Ecn(this,0)),this.a.b);case 1:return e?(!this.b&&(this.b=new y9((gWn(),k$t),X$t,this,1)),this.b):(!this.b&&(this.b=new y9((gWn(),k$t),X$t,this,1)),A8(this.b));case 2:return e?(!this.c&&(this.c=new y9((gWn(),k$t),X$t,this,2)),this.c):(!this.c&&(this.c=new y9((gWn(),k$t),X$t,this,2)),A8(this.c));case 3:return!this.a&&(this.a=new Ecn(this,0)),n1(this.a,(Uqn(),DLt));case 4:return!this.a&&(this.a=new Ecn(this,0)),n1(this.a,(Uqn(),RLt));case 5:return!this.a&&(this.a=new Ecn(this,0)),n1(this.a,(Uqn(),_Lt));case 6:return!this.a&&(this.a=new Ecn(this,0)),n1(this.a,(Uqn(),FLt))}return U9(this,n-bX((Uqn(),xLt)),itn(0==(2&this.j)?xLt:(!this.k&&(this.k=new Kf),this.k).ck(),n),t,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.a&&(this.a=new Ecn(this,0)),TKn(this.a,n,e);case 1:return!this.b&&(this.b=new y9((gWn(),k$t),X$t,this,1)),BK(this.b,n,e);case 2:return!this.c&&(this.c=new y9((gWn(),k$t),X$t,this,2)),BK(this.c,n,e);case 5:return!this.a&&(this.a=new Ecn(this,0)),tR(n1(this.a,(Uqn(),_Lt)),n,e)}return BB(itn(0==(2&this.j)?(Uqn(),xLt):(!this.k&&(this.k=new Kf),this.k).ck(),t),66).Nj().Rj(this,Q7(this),t-bX((Uqn(),xLt)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.a&&0!=this.a.i;case 1:return!!this.b&&0!=this.b.f;case 2:return!!this.c&&0!=this.c.f;case 3:return!this.a&&(this.a=new Ecn(this,0)),!HI(n1(this.a,(Uqn(),DLt)));case 4:return!this.a&&(this.a=new Ecn(this,0)),!HI(n1(this.a,(Uqn(),RLt)));case 5:return!this.a&&(this.a=new Ecn(this,0)),!HI(n1(this.a,(Uqn(),_Lt)));case 6:return!this.a&&(this.a=new Ecn(this,0)),!HI(n1(this.a,(Uqn(),FLt)))}return O3(this,n-bX((Uqn(),xLt)),itn(0==(2&this.j)?xLt:(!this.k&&(this.k=new Kf),this.k).ck(),n))},MWn.sh=function(n,t){switch(n){case 0:return!this.a&&(this.a=new Ecn(this,0)),void tX(this.a,t);case 1:return!this.b&&(this.b=new y9((gWn(),k$t),X$t,this,1)),void tan(this.b,t);case 2:return!this.c&&(this.c=new y9((gWn(),k$t),X$t,this,2)),void tan(this.c,t);case 3:return!this.a&&(this.a=new Ecn(this,0)),Nv(n1(this.a,(Uqn(),DLt))),!this.a&&(this.a=new Ecn(this,0)),void Z$(n1(this.a,DLt),BB(t,14));case 4:return!this.a&&(this.a=new Ecn(this,0)),Nv(n1(this.a,(Uqn(),RLt))),!this.a&&(this.a=new Ecn(this,0)),void Z$(n1(this.a,RLt),BB(t,14));case 5:return!this.a&&(this.a=new Ecn(this,0)),Nv(n1(this.a,(Uqn(),_Lt))),!this.a&&(this.a=new Ecn(this,0)),void Z$(n1(this.a,_Lt),BB(t,14));case 6:return!this.a&&(this.a=new Ecn(this,0)),Nv(n1(this.a,(Uqn(),FLt))),!this.a&&(this.a=new Ecn(this,0)),void Z$(n1(this.a,FLt),BB(t,14))}Lbn(this,n-bX((Uqn(),xLt)),itn(0==(2&this.j)?xLt:(!this.k&&(this.k=new Kf),this.k).ck(),n),t)},MWn.zh=function(){return Uqn(),xLt},MWn.Bh=function(n){switch(n){case 0:return!this.a&&(this.a=new Ecn(this,0)),void sqn(this.a);case 1:return!this.b&&(this.b=new y9((gWn(),k$t),X$t,this,1)),void this.b.c.$b();case 2:return!this.c&&(this.c=new y9((gWn(),k$t),X$t,this,2)),void this.c.c.$b();case 3:return!this.a&&(this.a=new Ecn(this,0)),void Nv(n1(this.a,(Uqn(),DLt)));case 4:return!this.a&&(this.a=new Ecn(this,0)),void Nv(n1(this.a,(Uqn(),RLt)));case 5:return!this.a&&(this.a=new Ecn(this,0)),void Nv(n1(this.a,(Uqn(),_Lt)));case 6:return!this.a&&(this.a=new Ecn(this,0)),void Nv(n1(this.a,(Uqn(),FLt)))}qfn(this,n-bX((Uqn(),xLt)),itn(0==(2&this.j)?xLt:(!this.k&&(this.k=new Kf),this.k).ck(),n))},MWn.Ib=function(){var n;return 0!=(4&this.j)?P$n(this):((n=new fN(P$n(this))).a+=" (mixed: ",rO(n,this.a),n.a+=")",n.a)},vX(N7n,"XMLTypeDocumentRootImpl",669),wAn(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},Ds),MWn.Ih=function(n,t){switch(n.yj()){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 null==t?null:Bbn(t);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return SD(t);case 6:return mD(BB(t,190));case 12:case 47:case 49:case 11:return qGn(this,n,t);case 13:return null==t?null:GBn(BB(t,240));case 15:case 14:return null==t?null:RU(Gy(MD(t)));case 17:return EEn((Uqn(),t));case 18:return EEn(t);case 21:case 20:return null==t?null:KU(BB(t,155).a);case 27:return yD(BB(t,190));case 30:return _mn((Uqn(),BB(t,15)));case 31:return _mn(BB(t,15));case 40:return jD((Uqn(),t));case 42:return TEn((Uqn(),t));case 43:return TEn(t);case 59:case 48:return kD((Uqn(),t));default:throw Hp(new _y(d6n+n.ne()+g6n))}},MWn.Jh=function(n){var t;switch(-1==n.G&&(n.G=(t=Utn(n))?uvn(t.Mh(),n):-1),n.G){case 0:return new Rm;case 1:return new Rs;case 2:return new _m;case 3:return new Km;default:throw Hp(new _y(m6n+n.zb+g6n))}},MWn.Kh=function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;switch(n.yj()){case 5:case 52:case 4:return t;case 6:return ypn(t);case 8:case 7:return null==t?null:_En(t);case 9:return null==t?null:Pnn(l_n((i=FBn(t,!0)).length>0&&(b1(0,i.length),43==i.charCodeAt(0))?i.substr(1):i,-128,127)<<24>>24);case 10:return null==t?null:Pnn(l_n((r=FBn(t,!0)).length>0&&(b1(0,r.length),43==r.charCodeAt(0))?r.substr(1):r,-128,127)<<24>>24);case 11:return SD(xXn(this,(Uqn(),kLt),t));case 12:return SD(xXn(this,(Uqn(),jLt),t));case 13:return null==t?null:new wE(FBn(t,!0));case 15:case 14:return gLn(t);case 16:return SD(xXn(this,(Uqn(),ELt),t));case 17:return Hdn((Uqn(),t));case 18:return Hdn(t);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return FBn(t,!0);case 21:case 20:return ILn(t);case 22:return SD(xXn(this,(Uqn(),TLt),t));case 23:return SD(xXn(this,(Uqn(),MLt),t));case 24:return SD(xXn(this,(Uqn(),SLt),t));case 25:return SD(xXn(this,(Uqn(),PLt),t));case 26:return SD(xXn(this,(Uqn(),CLt),t));case 27:return Zgn(t);case 30:return qdn((Uqn(),t));case 31:return qdn(t);case 32:return null==t?null:iln(l_n((h=FBn(t,!0)).length>0&&(b1(0,h.length),43==h.charCodeAt(0))?h.substr(1):h,_Vn,DWn));case 33:return null==t?null:new $A((f=FBn(t,!0)).length>0&&(b1(0,f.length),43==f.charCodeAt(0))?f.substr(1):f);case 34:return null==t?null:iln(l_n((l=FBn(t,!0)).length>0&&(b1(0,l.length),43==l.charCodeAt(0))?l.substr(1):l,_Vn,DWn));case 36:return null==t?null:jgn(rUn((b=FBn(t,!0)).length>0&&(b1(0,b.length),43==b.charCodeAt(0))?b.substr(1):b));case 37:return null==t?null:jgn(rUn((w=FBn(t,!0)).length>0&&(b1(0,w.length),43==w.charCodeAt(0))?w.substr(1):w));case 40:return Vwn((Uqn(),t));case 42:return Gdn((Uqn(),t));case 43:return Gdn(t);case 44:return null==t?null:new $A((d=FBn(t,!0)).length>0&&(b1(0,d.length),43==d.charCodeAt(0))?d.substr(1):d);case 45:return null==t?null:new $A((g=FBn(t,!0)).length>0&&(b1(0,g.length),43==g.charCodeAt(0))?g.substr(1):g);case 46:return FBn(t,!1);case 47:return SD(xXn(this,(Uqn(),ILt),t));case 59:case 48:return Wwn((Uqn(),t));case 49:return SD(xXn(this,(Uqn(),ALt),t));case 50:return null==t?null:rln(l_n((p=FBn(t,!0)).length>0&&(b1(0,p.length),43==p.charCodeAt(0))?p.substr(1):p,Q9n,32767)<<16>>16);case 51:return null==t?null:rln(l_n((c=FBn(t,!0)).length>0&&(b1(0,c.length),43==c.charCodeAt(0))?c.substr(1):c,Q9n,32767)<<16>>16);case 53:return SD(xXn(this,(Uqn(),NLt),t));case 55:return null==t?null:rln(l_n((a=FBn(t,!0)).length>0&&(b1(0,a.length),43==a.charCodeAt(0))?a.substr(1):a,Q9n,32767)<<16>>16);case 56:return null==t?null:rln(l_n((u=FBn(t,!0)).length>0&&(b1(0,u.length),43==u.charCodeAt(0))?u.substr(1):u,Q9n,32767)<<16>>16);case 57:return null==t?null:jgn(rUn((o=FBn(t,!0)).length>0&&(b1(0,o.length),43==o.charCodeAt(0))?o.substr(1):o));case 58:return null==t?null:jgn(rUn((s=FBn(t,!0)).length>0&&(b1(0,s.length),43==s.charCodeAt(0))?s.substr(1):s));case 60:return null==t?null:iln(l_n((e=FBn(t,!0)).length>0&&(b1(0,e.length),43==e.charCodeAt(0))?e.substr(1):e,_Vn,DWn));case 61:return null==t?null:iln(l_n(FBn(t,!0),_Vn,DWn));default:throw Hp(new _y(d6n+n.ne()+g6n))}},vX(N7n,"XMLTypeFactoryImpl",1919),wAn(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},zW),MWn.N=!1,MWn.O=!1;var WLt,VLt,QLt,YLt,JLt,ZLt=!1;vX(N7n,"XMLTypePackageImpl",586),wAn(1852,1,{837:1},Ks),MWn._j=function(){return fFn(),TNt},vX(N7n,"XMLTypePackageImpl/1",1852),wAn(1861,1,s7n,_s),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/10",1861),wAn(1862,1,s7n,Fs),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/11",1862),wAn(1863,1,s7n,Bs),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/12",1863),wAn(1864,1,s7n,Hs),MWn.wj=function(n){return UI(n)},MWn.xj=function(n){return x8(Ptt,sVn,333,n,7,1)},vX(N7n,"XMLTypePackageImpl/13",1864),wAn(1865,1,s7n,qs),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/14",1865),wAn(1866,1,s7n,Gs),MWn.wj=function(n){return cL(n,15)},MWn.xj=function(n){return x8(Rnt,nZn,15,n,0,1)},vX(N7n,"XMLTypePackageImpl/15",1866),wAn(1867,1,s7n,zs),MWn.wj=function(n){return cL(n,15)},MWn.xj=function(n){return x8(Rnt,nZn,15,n,0,1)},vX(N7n,"XMLTypePackageImpl/16",1867),wAn(1868,1,s7n,Us),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/17",1868),wAn(1869,1,s7n,Xs),MWn.wj=function(n){return cL(n,155)},MWn.xj=function(n){return x8(Ctt,sVn,155,n,0,1)},vX(N7n,"XMLTypePackageImpl/18",1869),wAn(1870,1,s7n,Ws),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/19",1870),wAn(1853,1,s7n,Vs),MWn.wj=function(n){return cL(n,843)},MWn.xj=function(n){return x8(wLt,HWn,843,n,0,1)},vX(N7n,"XMLTypePackageImpl/2",1853),wAn(1871,1,s7n,Qs),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/20",1871),wAn(1872,1,s7n,Ys),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/21",1872),wAn(1873,1,s7n,Js),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/22",1873),wAn(1874,1,s7n,Zs),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/23",1874),wAn(1875,1,s7n,nh),MWn.wj=function(n){return cL(n,190)},MWn.xj=function(n){return x8(NNt,sVn,190,n,0,2)},vX(N7n,"XMLTypePackageImpl/24",1875),wAn(1876,1,s7n,th),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/25",1876),wAn(1877,1,s7n,eh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/26",1877),wAn(1878,1,s7n,ih),MWn.wj=function(n){return cL(n,15)},MWn.xj=function(n){return x8(Rnt,nZn,15,n,0,1)},vX(N7n,"XMLTypePackageImpl/27",1878),wAn(1879,1,s7n,rh),MWn.wj=function(n){return cL(n,15)},MWn.xj=function(n){return x8(Rnt,nZn,15,n,0,1)},vX(N7n,"XMLTypePackageImpl/28",1879),wAn(1880,1,s7n,ch),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/29",1880),wAn(1854,1,s7n,ah),MWn.wj=function(n){return cL(n,667)},MWn.xj=function(n){return x8(zLt,HWn,2021,n,0,1)},vX(N7n,"XMLTypePackageImpl/3",1854),wAn(1881,1,s7n,uh),MWn.wj=function(n){return cL(n,19)},MWn.xj=function(n){return x8(Att,sVn,19,n,0,1)},vX(N7n,"XMLTypePackageImpl/30",1881),wAn(1882,1,s7n,oh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/31",1882),wAn(1883,1,s7n,sh),MWn.wj=function(n){return cL(n,162)},MWn.xj=function(n){return x8(Rtt,sVn,162,n,0,1)},vX(N7n,"XMLTypePackageImpl/32",1883),wAn(1884,1,s7n,hh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/33",1884),wAn(1885,1,s7n,fh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/34",1885),wAn(1886,1,s7n,lh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/35",1886),wAn(1887,1,s7n,bh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/36",1887),wAn(1888,1,s7n,wh),MWn.wj=function(n){return cL(n,15)},MWn.xj=function(n){return x8(Rnt,nZn,15,n,0,1)},vX(N7n,"XMLTypePackageImpl/37",1888),wAn(1889,1,s7n,dh),MWn.wj=function(n){return cL(n,15)},MWn.xj=function(n){return x8(Rnt,nZn,15,n,0,1)},vX(N7n,"XMLTypePackageImpl/38",1889),wAn(1890,1,s7n,gh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/39",1890),wAn(1855,1,s7n,ph),MWn.wj=function(n){return cL(n,668)},MWn.xj=function(n){return x8(ULt,HWn,2022,n,0,1)},vX(N7n,"XMLTypePackageImpl/4",1855),wAn(1891,1,s7n,vh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/40",1891),wAn(1892,1,s7n,mh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/41",1892),wAn(1893,1,s7n,yh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/42",1893),wAn(1894,1,s7n,kh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/43",1894),wAn(1895,1,s7n,jh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/44",1895),wAn(1896,1,s7n,Eh),MWn.wj=function(n){return cL(n,184)},MWn.xj=function(n){return x8(_tt,sVn,184,n,0,1)},vX(N7n,"XMLTypePackageImpl/45",1896),wAn(1897,1,s7n,Th),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/46",1897),wAn(1898,1,s7n,Mh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/47",1898),wAn(1899,1,s7n,Sh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/48",1899),wAn(sQn,1,s7n,Ph),MWn.wj=function(n){return cL(n,184)},MWn.xj=function(n){return x8(_tt,sVn,184,n,0,1)},vX(N7n,"XMLTypePackageImpl/49",sQn),wAn(1856,1,s7n,Ch),MWn.wj=function(n){return cL(n,669)},MWn.xj=function(n){return x8(XLt,HWn,2023,n,0,1)},vX(N7n,"XMLTypePackageImpl/5",1856),wAn(1901,1,s7n,Ih),MWn.wj=function(n){return cL(n,162)},MWn.xj=function(n){return x8(Rtt,sVn,162,n,0,1)},vX(N7n,"XMLTypePackageImpl/50",1901),wAn(1902,1,s7n,Oh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/51",1902),wAn(1903,1,s7n,Ah),MWn.wj=function(n){return cL(n,19)},MWn.xj=function(n){return x8(Att,sVn,19,n,0,1)},vX(N7n,"XMLTypePackageImpl/52",1903),wAn(1857,1,s7n,$h),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/6",1857),wAn(1858,1,s7n,Lh),MWn.wj=function(n){return cL(n,190)},MWn.xj=function(n){return x8(NNt,sVn,190,n,0,2)},vX(N7n,"XMLTypePackageImpl/7",1858),wAn(1859,1,s7n,Nh),MWn.wj=function(n){return zI(n)},MWn.xj=function(n){return x8(ktt,sVn,476,n,8,1)},vX(N7n,"XMLTypePackageImpl/8",1859),wAn(1860,1,s7n,xh),MWn.wj=function(n){return cL(n,217)},MWn.xj=function(n){return x8(Ttt,sVn,217,n,0,1)},vX(N7n,"XMLTypePackageImpl/9",1860),wAn(50,60,BVn,ak),vX(ant,"RegEx/ParseException",50),wAn(820,1,{},Dh),MWn.sl=function(n){return n<this.j&&63==fV(this.i,n)},MWn.tl=function(){var n,t,e,i,r;if(10!=this.c)throw Hp(new ak(kWn((u$(),g8n))));switch(n=this.a){case 101:n=27;break;case 102:n=12;break;case 110:n=10;break;case 114:n=13;break;case 116:n=9;break;case 120:if(QXn(this),0!=this.c)throw Hp(new ak(kWn((u$(),B8n))));if(123==this.a){for(r=0,e=0;;){if(QXn(this),0!=this.c)throw Hp(new ak(kWn((u$(),B8n))));if((r=Gvn(this.a))<0)break;if(e>16*e)throw Hp(new ak(kWn((u$(),H8n))));e=16*e+r}if(125!=this.a)throw Hp(new ak(kWn((u$(),q8n))));if(e>unt)throw Hp(new ak(kWn((u$(),G8n))));n=e}else{if(r=0,0!=this.c||(r=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(e=r,QXn(this),0!=this.c||(r=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));n=e=16*e+r}break;case 117:if(i=0,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(t=i,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(t=16*t+i,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(t=16*t+i,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));n=t=16*t+i;break;case 118:if(QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(t=i,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(t=16*t+i,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(t=16*t+i,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(t=16*t+i,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(t=16*t+i,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if((t=16*t+i)>unt)throw Hp(new ak(kWn((u$(),"parser.descappe.4"))));n=t;break;case 65:case 90:case 122:throw Hp(new ak(kWn((u$(),z8n))))}return n},MWn.ul=function(n){var t;switch(n){case 100:t=32==(32&this.e)?ZUn("Nd",!0):(wWn(),uNt);break;case 68:t=32==(32&this.e)?ZUn("Nd",!1):(wWn(),lNt);break;case 119:t=32==(32&this.e)?ZUn("IsWord",!0):(wWn(),kNt);break;case 87:t=32==(32&this.e)?ZUn("IsWord",!1):(wWn(),wNt);break;case 115:t=32==(32&this.e)?ZUn("IsSpace",!0):(wWn(),gNt);break;case 83:t=32==(32&this.e)?ZUn("IsSpace",!1):(wWn(),bNt);break;default:throw Hp(new dy(ont+n.toString(16)))}return t},MWn.vl=function(n){var t,e,i,r,c,a,u,o,s,h,f;for(this.b=1,QXn(this),t=null,0==this.c&&94==this.a?(QXn(this),n?(wWn(),wWn(),s=new M0(5)):(wWn(),wWn(),Yxn(t=new M0(4),0,unt),s=new M0(4))):(wWn(),wWn(),s=new M0(4)),r=!0;1!=(f=this.c)&&(0!=f||93!=this.a||r);){if(r=!1,e=this.a,i=!1,10==f)switch(e){case 100:case 68:case 119:case 87:case 115:case 83:sHn(s,this.ul(e)),i=!0;break;case 105:case 73:case 99:case 67:(e=this.Ll(s,e))<0&&(i=!0);break;case 112:case 80:if(!(h=DIn(this,e)))throw Hp(new ak(kWn((u$(),O8n))));sHn(s,h),i=!0;break;default:e=this.tl()}else if(20==f){if((c=lx(this.i,58,this.d))<0)throw Hp(new ak(kWn((u$(),A8n))));if(a=!0,94==fV(this.i,this.d)&&(++this.d,a=!1),!(u=b9(fx(this.i,this.d,c),a,512==(512&this.e))))throw Hp(new ak(kWn((u$(),L8n))));if(sHn(s,u),i=!0,c+1>=this.j||93!=fV(this.i,c+1))throw Hp(new ak(kWn((u$(),A8n))));this.d=c+2}if(QXn(this),!i)if(0!=this.c||45!=this.a)Yxn(s,e,e);else{if(QXn(this),1==(f=this.c))throw Hp(new ak(kWn((u$(),$8n))));0==f&&93==this.a?(Yxn(s,e,e),Yxn(s,45,45)):(o=this.a,10==f&&(o=this.tl()),QXn(this),Yxn(s,e,o))}(this.e&k6n)==k6n&&0==this.c&&44==this.a&&QXn(this)}if(1==this.c)throw Hp(new ak(kWn((u$(),$8n))));return t&&(WGn(t,s),s=t),T$n(s),qHn(s),this.b=0,QXn(this),s},MWn.wl=function(){var n,t,e,i;for(e=this.vl(!1);7!=(i=this.c);){if(n=this.a,(0!=i||45!=n&&38!=n)&&4!=i)throw Hp(new ak(kWn((u$(),_8n))));if(QXn(this),9!=this.c)throw Hp(new ak(kWn((u$(),K8n))));if(t=this.vl(!1),4==i)sHn(e,t);else if(45==n)WGn(e,t);else{if(38!=n)throw Hp(new dy("ASSERT"));kGn(e,t)}}return QXn(this),e},MWn.xl=function(){var n,t;return n=this.a-48,wWn(),wWn(),t=new vJ(12,null,n),!this.g&&(this.g=new _v),Cv(this.g,new Op(n)),QXn(this),t},MWn.yl=function(){return QXn(this),wWn(),pNt},MWn.zl=function(){return QXn(this),wWn(),dNt},MWn.Al=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Bl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Cl=function(){return QXn(this),fsn()},MWn.Dl=function(){return QXn(this),wWn(),mNt},MWn.El=function(){return QXn(this),wWn(),jNt},MWn.Fl=function(){var n;if(this.d>=this.j||64!=(65504&(n=fV(this.i,this.d++))))throw Hp(new ak(kWn((u$(),S8n))));return QXn(this),wWn(),wWn(),new oG(0,n-64)},MWn.Gl=function(){return QXn(this),RFn()},MWn.Hl=function(){return QXn(this),wWn(),ENt},MWn.Il=function(){var n;return wWn(),wWn(),n=new oG(0,105),QXn(this),n},MWn.Jl=function(){return QXn(this),wWn(),yNt},MWn.Kl=function(){return QXn(this),wWn(),vNt},MWn.Ll=function(n,t){return this.tl()},MWn.Ml=function(){return QXn(this),wWn(),hNt},MWn.Nl=function(){var n,t,e,i,r;if(this.d+1>=this.j)throw Hp(new ak(kWn((u$(),E8n))));if(i=-1,t=null,49<=(n=fV(this.i,this.d))&&n<=57){if(i=n-48,!this.g&&(this.g=new _v),Cv(this.g,new Op(i)),++this.d,41!=fV(this.i,this.d))throw Hp(new ak(kWn((u$(),y8n))));++this.d}else switch(63==n&&--this.d,QXn(this),(t=OXn(this)).e){case 20:case 21:case 22:case 23:break;case 8:if(7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));break;default:throw Hp(new ak(kWn((u$(),T8n))))}if(QXn(this),e=null,2==(r=Vdn(this)).e){if(2!=r.em())throw Hp(new ak(kWn((u$(),M8n))));e=r.am(1),r=r.am(0)}if(7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),wWn(),wWn(),new jnn(i,t,r,e)},MWn.Ol=function(){return QXn(this),wWn(),fNt},MWn.Pl=function(){var n;if(QXn(this),n=uU(24,Vdn(this)),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),n},MWn.Ql=function(){var n;if(QXn(this),n=uU(20,Vdn(this)),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),n},MWn.Rl=function(){var n;if(QXn(this),n=uU(22,Vdn(this)),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),n},MWn.Sl=function(){var n,t,e,i,r;for(n=0,e=0,t=-1;this.d<this.j&&0!=(r=QOn(t=fV(this.i,this.d)));)n|=r,++this.d;if(this.d>=this.j)throw Hp(new ak(kWn((u$(),k8n))));if(45==t){for(++this.d;this.d<this.j&&0!=(r=QOn(t=fV(this.i,this.d)));)e|=r,++this.d;if(this.d>=this.j)throw Hp(new ak(kWn((u$(),k8n))))}if(58==t){if(++this.d,QXn(this),i=AX(Vdn(this),n,e),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));QXn(this)}else{if(41!=t)throw Hp(new ak(kWn((u$(),j8n))));++this.d,QXn(this),i=AX(Vdn(this),n,e)}return i},MWn.Tl=function(){var n;if(QXn(this),n=uU(21,Vdn(this)),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),n},MWn.Ul=function(){var n;if(QXn(this),n=uU(23,Vdn(this)),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),n},MWn.Vl=function(){var n,t;if(QXn(this),n=this.f++,t=oU(Vdn(this),n),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),t},MWn.Wl=function(){var n;if(QXn(this),n=oU(Vdn(this),0),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),n},MWn.Xl=function(n){return QXn(this),5==this.c?(QXn(this),gG(n,(wWn(),wWn(),new h4(9,n)))):gG(n,(wWn(),wWn(),new h4(3,n)))},MWn.Yl=function(n){var t;return QXn(this),wWn(),wWn(),t=new r$(2),5==this.c?(QXn(this),tqn(t,sNt),tqn(t,n)):(tqn(t,n),tqn(t,sNt)),t},MWn.Zl=function(n){return QXn(this),5==this.c?(QXn(this),wWn(),wWn(),new h4(9,n)):(wWn(),wWn(),new h4(3,n))},MWn.a=0,MWn.b=0,MWn.c=0,MWn.d=0,MWn.e=0,MWn.f=1,MWn.g=null,MWn.j=0,vX(ant,"RegEx/RegexParser",820),wAn(1824,820,{},Fm),MWn.sl=function(n){return!1},MWn.tl=function(){return qDn(this)},MWn.ul=function(n){return d_n(n)},MWn.vl=function(n){return ZXn(this)},MWn.wl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.xl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.yl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.zl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Al=function(){return QXn(this),d_n(67)},MWn.Bl=function(){return QXn(this),d_n(73)},MWn.Cl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Dl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.El=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Fl=function(){return QXn(this),d_n(99)},MWn.Gl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Hl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Il=function(){return QXn(this),d_n(105)},MWn.Jl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Kl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Ll=function(n,t){return sHn(n,d_n(t)),-1},MWn.Ml=function(){return QXn(this),wWn(),wWn(),new oG(0,94)},MWn.Nl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Ol=function(){return QXn(this),wWn(),wWn(),new oG(0,36)},MWn.Pl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Ql=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Rl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Sl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Tl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Ul=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Vl=function(){var n;if(QXn(this),n=oU(Vdn(this),0),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),n},MWn.Wl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Xl=function(n){return QXn(this),gG(n,(wWn(),wWn(),new h4(3,n)))},MWn.Yl=function(n){var t;return QXn(this),wWn(),wWn(),tqn(t=new r$(2),n),tqn(t,sNt),t},MWn.Zl=function(n){return QXn(this),wWn(),wWn(),new h4(3,n)};var nNt=null,tNt=null;vX(ant,"RegEx/ParserForXMLSchema",1824),wAn(117,1,ynt,Ap),MWn.$l=function(n){throw Hp(new dy("Not supported."))},MWn._l=function(){return-1},MWn.am=function(n){return null},MWn.bm=function(){return null},MWn.cm=function(n){},MWn.dm=function(n){},MWn.em=function(){return 0},MWn.Ib=function(){return this.fm(0)},MWn.fm=function(n){return 11==this.e?".":""},MWn.e=0;var eNt,iNt,rNt,cNt,aNt,uNt,oNt,sNt,hNt,fNt,lNt,bNt,wNt,dNt,gNt,pNt,vNt,mNt,yNt,kNt,jNt,ENt,TNt,MNt,SNt=null,PNt=null,CNt=null,INt=vX(ant,"RegEx/Token",117);wAn(136,117,{3:1,136:1,117:1},M0),MWn.fm=function(n){var t,e,i;if(4==this.e)if(this==oNt)e=".";else if(this==uNt)e="\\d";else if(this==kNt)e="\\w";else if(this==gNt)e="\\s";else{for((i=new Sk).a+="[",t=0;t<this.b.length;t+=2)0!=(n&k6n)&&t>0&&(i.a+=","),this.b[t]===this.b[t+1]?cO(i,aBn(this.b[t])):(cO(i,aBn(this.b[t])),i.a+="-",cO(i,aBn(this.b[t+1])));i.a+="]",e=i.a}else if(this==lNt)e="\\D";else if(this==wNt)e="\\W";else if(this==bNt)e="\\S";else{for((i=new Sk).a+="[^",t=0;t<this.b.length;t+=2)0!=(n&k6n)&&t>0&&(i.a+=","),this.b[t]===this.b[t+1]?cO(i,aBn(this.b[t])):(cO(i,aBn(this.b[t])),i.a+="-",cO(i,aBn(this.b[t+1])));i.a+="]",e=i.a}return e},MWn.a=!1,MWn.c=!1,vX(ant,"RegEx/RangeToken",136),wAn(584,1,{584:1},Op),MWn.a=0,vX(ant,"RegEx/RegexParser/ReferencePosition",584),wAn(583,1,{3:1,583:1},XE),MWn.Fb=function(n){var t;return null!=n&&!!cL(n,583)&&(t=BB(n,583),mK(this.b,t.b)&&this.a==t.a)},MWn.Hb=function(){return vvn(this.b+"/"+txn(this.a))},MWn.Ib=function(){return this.c.fm(this.a)},MWn.a=0,vX(ant,"RegEx/RegularExpression",583),wAn(223,117,ynt,oG),MWn._l=function(){return this.a},MWn.fm=function(n){var t,e;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:e="\\"+PR(this.a&QVn);break;case 12:e="\\f";break;case 10:e="\\n";break;case 13:e="\\r";break;case 9:e="\\t";break;case 27:e="\\e";break;default:e=this.a>=BQn?"\\v"+fx(t="0"+(this.a>>>0).toString(16),t.length-6,t.length):""+PR(this.a&QVn)}break;case 8:e=this==hNt||this==fNt?""+PR(this.a&QVn):"\\"+PR(this.a&QVn);break;default:e=null}return e},MWn.a=0,vX(ant,"RegEx/Token/CharToken",223),wAn(309,117,ynt,h4),MWn.am=function(n){return this.a},MWn.cm=function(n){this.b=n},MWn.dm=function(n){this.c=n},MWn.em=function(){return 1},MWn.fm=function(n){var t;if(3==this.e)if(this.c<0&&this.b<0)t=this.a.fm(n)+"*";else if(this.c==this.b)t=this.a.fm(n)+"{"+this.c+"}";else if(this.c>=0&&this.b>=0)t=this.a.fm(n)+"{"+this.c+","+this.b+"}";else{if(!(this.c>=0&&this.b<0))throw Hp(new dy("Token#toString(): CLOSURE "+this.c+FWn+this.b));t=this.a.fm(n)+"{"+this.c+",}"}else if(this.c<0&&this.b<0)t=this.a.fm(n)+"*?";else if(this.c==this.b)t=this.a.fm(n)+"{"+this.c+"}?";else if(this.c>=0&&this.b>=0)t=this.a.fm(n)+"{"+this.c+","+this.b+"}?";else{if(!(this.c>=0&&this.b<0))throw Hp(new dy("Token#toString(): NONGREEDYCLOSURE "+this.c+FWn+this.b));t=this.a.fm(n)+"{"+this.c+",}?"}return t},MWn.b=0,MWn.c=0,vX(ant,"RegEx/Token/ClosureToken",309),wAn(821,117,ynt,UU),MWn.am=function(n){return 0==n?this.a:this.b},MWn.em=function(){return 2},MWn.fm=function(n){return 3==this.b.e&&this.b.am(0)==this.a?this.a.fm(n)+"+":9==this.b.e&&this.b.am(0)==this.a?this.a.fm(n)+"+?":this.a.fm(n)+""+this.b.fm(n)},vX(ant,"RegEx/Token/ConcatToken",821),wAn(1822,117,ynt,jnn),MWn.am=function(n){if(0==n)return this.d;if(1==n)return this.b;throw Hp(new dy("Internal Error: "+n))},MWn.em=function(){return this.b?2:1},MWn.fm=function(n){var t;return t=this.c>0?"(?("+this.c+")":8==this.a.e?"(?("+this.a+")":"(?"+this.a,this.b?t+=this.d+"|"+this.b+")":t+=this.d+")",t},MWn.c=0,vX(ant,"RegEx/Token/ConditionToken",1822),wAn(1823,117,ynt,T0),MWn.am=function(n){return this.b},MWn.em=function(){return 1},MWn.fm=function(n){return"(?"+(0==this.a?"":txn(this.a))+(0==this.c?"":txn(this.c))+":"+this.b.fm(n)+")"},MWn.a=0,MWn.c=0,vX(ant,"RegEx/Token/ModifierToken",1823),wAn(822,117,ynt,cW),MWn.am=function(n){return this.a},MWn.em=function(){return 1},MWn.fm=function(n){var t;switch(t=null,this.e){case 6:t=0==this.b?"(?:"+this.a.fm(n)+")":"("+this.a.fm(n)+")";break;case 20:t="(?="+this.a.fm(n)+")";break;case 21:t="(?!"+this.a.fm(n)+")";break;case 22:t="(?<="+this.a.fm(n)+")";break;case 23:t="(?<!"+this.a.fm(n)+")";break;case 24:t="(?>"+this.a.fm(n)+")"}return t},MWn.b=0,vX(ant,"RegEx/Token/ParenToken",822),wAn(521,117,{3:1,117:1,521:1},vJ),MWn.bm=function(){return this.b},MWn.fm=function(n){return 12==this.e?"\\"+this.a:iAn(this.b)},MWn.a=0,vX(ant,"RegEx/Token/StringToken",521),wAn(465,117,ynt,r$),MWn.$l=function(n){tqn(this,n)},MWn.am=function(n){return BB(bW(this.a,n),117)},MWn.em=function(){return this.a?this.a.a.c.length:0},MWn.fm=function(n){var t,e,i,r,c;if(1==this.e){if(2==this.a.a.c.length)t=BB(bW(this.a,0),117),r=3==(e=BB(bW(this.a,1),117)).e&&e.am(0)==t?t.fm(n)+"+":9==e.e&&e.am(0)==t?t.fm(n)+"+?":t.fm(n)+""+e.fm(n);else{for(c=new Sk,i=0;i<this.a.a.c.length;i++)cO(c,BB(bW(this.a,i),117).fm(n));r=c.a}return r}if(2==this.a.a.c.length&&7==BB(bW(this.a,1),117).e)r=BB(bW(this.a,0),117).fm(n)+"?";else if(2==this.a.a.c.length&&7==BB(bW(this.a,0),117).e)r=BB(bW(this.a,1),117).fm(n)+"??";else{for(cO(c=new Sk,BB(bW(this.a,0),117).fm(n)),i=1;i<this.a.a.c.length;i++)c.a+="|",cO(c,BB(bW(this.a,i),117).fm(n));r=c.a}return r},vX(ant,"RegEx/Token/UnionToken",465),wAn(518,1,{592:1},UE),MWn.Ib=function(){return this.a.b},vX(knt,"XMLTypeUtil/PatternMatcherImpl",518),wAn(1622,1381,{},Rh),vX(knt,"XMLTypeValidator",1622),wAn(264,1,pVn,hz),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return(this.b-this.a)*this.c<0?MNt:new XL(this)},MWn.a=0,MWn.b=0,MWn.c=0,vX(Ent,"ExclusiveRange",264),wAn(1068,1,cVn,Kh),MWn.Rb=function(n){BB(n,19),l$()},MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return GE()},MWn.Ub=function(){return zE()},MWn.Wb=function(n){BB(n,19),w$()},MWn.Ob=function(){return!1},MWn.Sb=function(){return!1},MWn.Tb=function(){return-1},MWn.Vb=function(){return-1},MWn.Qb=function(){throw Hp(new tk(Snt))},vX(Ent,"ExclusiveRange/1",1068),wAn(254,1,cVn,XL),MWn.Rb=function(n){BB(n,19),b$()},MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return Fhn(this)},MWn.Ub=function(){return O9(this)},MWn.Wb=function(n){BB(n,19),d$()},MWn.Ob=function(){return this.c.c<0?this.a>=this.c.b:this.a<=this.c.b},MWn.Sb=function(){return this.b>0},MWn.Tb=function(){return this.b},MWn.Vb=function(){return this.b-1},MWn.Qb=function(){throw Hp(new tk(Snt))},MWn.a=0,MWn.b=0,vX(Ent,"ExclusiveRange/RangeIterator",254);var ONt=RW(P9n,"C"),ANt=RW(O9n,"I"),$Nt=RW($Wn,"Z"),LNt=RW(A9n,"J"),NNt=RW(S9n,"B"),xNt=RW(C9n,"D"),DNt=RW(I9n,"F"),RNt=RW($9n,"S"),KNt=bq("org.eclipse.elk.core.labels","ILabelManager"),_Nt=bq(B6n,"DiagnosticChain"),FNt=bq(f7n,"ResourceSet"),BNt=vX(B6n,"InvocationTargetException",null),HNt=(Dk(),f5),qNt=qNt=hEn;Zen(Qp),scn("permProps",[[[Pnt,Cnt],[Int,"gecko1_8"]],[[Pnt,Cnt],[Int,"ie10"]],[[Pnt,Cnt],[Int,"ie8"]],[[Pnt,Cnt],[Int,"ie9"]],[[Pnt,Cnt],[Int,"safari"]]]),qNt(null,"elk",null)}).call(this)}).call(this,void 0!==e.g?e.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],3:[function(n,t,e){"use strict";function i(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}function r(n,t){if(!n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?n:t}function c(n,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);n.prototype=Object.create(t&&t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(n,t):n.__proto__=t)}var a=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,e);var c=Object.assign({},t),a=!1;try{n.resolve("web-worker"),a=!0}catch(s){}if(t.workerUrl)if(a){var u=n("web-worker");c.workerFactory=function(n){return new u(n)}}else console.warn("Web worker requested but 'web-worker' package not installed. \nConsider installing the package or pass your own 'workerFactory' to ELK's constructor.\n... Falling back to non-web worker version.");if(!c.workerFactory){var o=n("./elk-worker.min.js").Worker;c.workerFactory=function(n){return new o(n)}}return r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,c))}return c(e,t),e}(n("./elk-api.js").default);Object.defineProperty(t.exports,"__esModule",{value:!0}),t.exports=a,a.default=a},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(n,t,e){t.exports=Worker},{}]},{},[3])(3)},19487:(n,t,e)=>{"use strict";e.r(t),e.d(t,{diagram:()=>k});var i=e(16432),r=e(59373),c=e(43349),a=e(17295),u=e.n(a);e(27484),e(17967),e(27856),e(70277),e(45625),e(39354),e(91518),e(59542),e(10285),e(28734);const o=new(u()),s={},h={};let f={};const l=(n,t,e)=>{const r={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 r.TD=r.TB,i.l.info("abc88",e,t,n),r[e][t][n]},b=(n,t,e)=>{if(i.l.info("getNextPort abc88",{node:n,edgeDirection:t,graphDirection:e}),!s[n])switch(e){case"TB":case"TD":s[n]={inPosition:"north",outPosition:"south"};break;case"BT":s[n]={inPosition:"south",outPosition:"north"};break;case"RL":s[n]={inPosition:"east",outPosition:"west"};break;case"LR":s[n]={inPosition:"west",outPosition:"east"}}const r="in"===t?s[n].inPosition:s[n].outPosition;return"in"===t?s[n].inPosition=l(s[n].inPosition,t,e):s[n].outPosition=l(s[n].outPosition,t,e),r},w=function(n,t,e,c){i.l.info("abc78 edges = ",n);const a=c.insert("g").attr("class","edgeLabels");let u,o,s={},l=t.db.getDirection();if(void 0!==n.defaultStyle){const t=(0,i.a)(n.defaultStyle);u=t.style,o=t.labelStyle}return n.forEach((function(t){var c="L-"+t.start+"-"+t.end;void 0===s[c]?(s[c]=0,i.l.info("abc78 new entry",c,s[c])):(s[c]++,i.l.info("abc78 new entry",c,s[c]));let w=c+"-"+s[c];i.l.info("abc78 new link id to be used is",c,w,s[c]);var d="LS-"+t.start,g="LE-"+t.end;const p={style:"",labelStyle:""};switch(p.minlen=t.length||1,"arrow_open"===t.type?p.arrowhead="none":p.arrowhead="normal",p.arrowTypeStart="arrow_open",p.arrowTypeEnd="arrow_open",t.type){case"double_arrow_cross":p.arrowTypeStart="arrow_cross";case"arrow_cross":p.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":p.arrowTypeStart="arrow_point";case"arrow_point":p.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":p.arrowTypeStart="arrow_circle";case"arrow_circle":p.arrowTypeEnd="arrow_circle"}let v="",m="";switch(t.stroke){case"normal":v="fill:none;",void 0!==u&&(v=u),void 0!==o&&(m=o),p.thickness="normal",p.pattern="solid";break;case"dotted":p.thickness="normal",p.pattern="dotted",p.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":p.thickness="thick",p.pattern="solid",p.style="stroke-width: 3.5px;fill:none;"}if(void 0!==t.style){const n=(0,i.a)(t.style);v=n.style,m=n.labelStyle}p.style=p.style+=v,p.labelStyle=p.labelStyle+=m,void 0!==t.interpolate?p.curve=(0,i.d)(t.interpolate,r.c_6):void 0!==n.defaultInterpolate?p.curve=(0,i.d)(n.defaultInterpolate,r.c_6):p.curve=(0,i.d)(h.curve,r.c_6),void 0===t.text?void 0!==t.style&&(p.arrowheadStyle="fill: #333"):(p.arrowheadStyle="fill: #333",p.labelpos="c"),p.labelType="text",p.label=t.text.replace(i.c.lineBreakRegex,"\n"),void 0===t.style&&(p.style=p.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),p.labelStyle=p.labelStyle.replace("color:","fill:"),p.id=w,p.classes="flowchart-link "+d+" "+g;const y=(0,i.f)(a,p),{source:k,target:j}=((n,t)=>{let e=n.start,i=n.end;const r=f[e],c=f[i];return r&&c?("diamond"===r.type&&(e=`${e}-${b(e,"out",t)}`),"diamond"===c.type&&(i=`${i}-${b(i,"in",t)}`),{source:e,target:i}):{source:e,target:i}})(t,l);i.l.debug("abc78 source and target",k,j),e.edges.push({id:"e"+t.start+t.end,sources:[k],targets:[j],labelEl:y,labels:[{width:p.width,height:p.height,orgWidth:p.width,orgHeight:p.height,text:p.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:p})})),e},d=function(n,t,e){const i=((n,t,e)=>{const{parentById:i}=e,r=new Set;let c=n;for(;c;){if(r.add(c),c===t)return c;c=i[c]}for(c=t;c;){if(r.has(c))return c;c=i[c]}return"root"})(n,t,e);if(void 0===i||"root"===i)return{x:0,y:0};const r=f[i].offset;return{x:r.posX,y:r.posY}},g=function(n,t,e,i,c){const a=d(t.sources[0],t.targets[0],c),u=t.sections[0].startPoint,o=t.sections[0].endPoint,s=(t.sections[0].bendPoints?t.sections[0].bendPoints:[]).map((n=>[n.x+a.x,n.y+a.y])),h=[[u.x+a.x,u.y+a.y],...s,[o.x+a.x,o.y+a.y]],f=(0,r.jvg)().curve(r.c_6),l=n.insert("path").attr("d",f(h)).attr("class","path").attr("fill","none"),b=n.insert("g").attr("class","edgeLabel"),w=(0,r.Ys)(b.node().appendChild(t.labelEl)),g=w.node().firstChild.getBoundingClientRect();w.attr("width",g.width),w.attr("height",g.height),b.attr("transform",`translate(${t.labels[0].x+a.x}, ${t.labels[0].y+a.y})`),function(n,t,e,i){let r="";switch(i&&(r=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,r=r.replace(/\(/g,"\\("),r=r.replace(/\)/g,"\\)")),t.arrowTypeStart){case"arrow_cross":n.attr("marker-start","url("+r+"#"+e+"-crossStart)");break;case"arrow_point":n.attr("marker-start","url("+r+"#"+e+"-pointStart)");break;case"arrow_barb":n.attr("marker-start","url("+r+"#"+e+"-barbStart)");break;case"arrow_circle":n.attr("marker-start","url("+r+"#"+e+"-circleStart)");break;case"aggregation":n.attr("marker-start","url("+r+"#"+e+"-aggregationStart)");break;case"extension":n.attr("marker-start","url("+r+"#"+e+"-extensionStart)");break;case"composition":n.attr("marker-start","url("+r+"#"+e+"-compositionStart)");break;case"dependency":n.attr("marker-start","url("+r+"#"+e+"-dependencyStart)");break;case"lollipop":n.attr("marker-start","url("+r+"#"+e+"-lollipopStart)")}switch(t.arrowTypeEnd){case"arrow_cross":n.attr("marker-end","url("+r+"#"+e+"-crossEnd)");break;case"arrow_point":n.attr("marker-end","url("+r+"#"+e+"-pointEnd)");break;case"arrow_barb":n.attr("marker-end","url("+r+"#"+e+"-barbEnd)");break;case"arrow_circle":n.attr("marker-end","url("+r+"#"+e+"-circleEnd)");break;case"aggregation":n.attr("marker-end","url("+r+"#"+e+"-aggregationEnd)");break;case"extension":n.attr("marker-end","url("+r+"#"+e+"-extensionEnd)");break;case"composition":n.attr("marker-end","url("+r+"#"+e+"-compositionEnd)");break;case"dependency":n.attr("marker-end","url("+r+"#"+e+"-dependencyEnd)");break;case"lollipop":n.attr("marker-end","url("+r+"#"+e+"-lollipopEnd)")}}(l,e,i.type,i.arrowMarkerAbsolute)},p=(n,t)=>{n.forEach((n=>{n.children||(n.children=[]);const e=t.childrenById[n.id];e&&e.forEach((t=>{n.children.push(f[t])})),p(n.children,t)}))},v=(n,t,e,r,c,a,u)=>{e.forEach((function(e){if(e)if(f[e.id].offset={posX:e.x+n,posY:e.y+t,x:n,y:t,depth:u,width:e.width,height:e.height},"group"===e.type){const r=c.insert("g").attr("class","subgraph");r.insert("rect").attr("class","subgraph subgraph-lvl-"+u%5+" node").attr("x",e.x+n).attr("y",e.y+t).attr("width",e.width).attr("height",e.height);const a=r.insert("g").attr("class","label");a.attr("transform",`translate(${e.labels[0].x+n+e.x}, ${e.labels[0].y+t+e.y})`),a.node().appendChild(e.labelData.labelNode),i.l.info("Id (UGH)= ",e.type,e.labels)}else i.l.info("Id (UGH)= ",e.id),e.el.attr("transform",`translate(${e.x+n+e.width/2}, ${e.y+t+e.height/2})`)})),e.forEach((function(e){e&&"group"===e.type&&v(n+e.x,t+e.y,e.children,r,c,a,u+1)}))},m={getClasses:function(n,t){i.l.info("Extracting classes"),t.db.clear("ver-2");try{return t.parse(n),t.db.getClasses()}catch(e){return{}}},draw:async function(n,t,e,a){var u;a.db.clear(),f={},a.db.setGen("gen-2"),a.parser.parse(n);const s=(0,r.Ys)("body").append("div").attr("style","height:400px").attr("id","cy");let h={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(i.l.info("Drawing flowchart using v3 renderer",o),a.db.getDirection()){case"BT":h.layoutOptions["elk.direction"]="UP";break;case"TB":h.layoutOptions["elk.direction"]="DOWN";break;case"LR":h.layoutOptions["elk.direction"]="RIGHT";break;case"RL":h.layoutOptions["elk.direction"]="LEFT"}const{securityLevel:l,flowchart:b}=(0,i.g)();let d;"sandbox"===l&&(d=(0,r.Ys)("#i"+t));const m="sandbox"===l?(0,r.Ys)(d.nodes()[0].contentDocument.body):(0,r.Ys)("body"),y="sandbox"===l?d.nodes()[0].contentDocument:document,k=m.select(`[id="${t}"]`);(0,i.i)(k,["point","circle","cross"],a.type,a.arrowMarkerAbsolute);const j=a.db.getVertices();let E;const T=a.db.getSubGraphs();i.l.info("Subgraphs - ",T);for(let i=T.length-1;i>=0;i--)E=T[i],a.db.addVertex(E.id,E.title,"group",void 0,E.classes,E.dir);const M=k.insert("g").attr("class","subgraphs"),S=function(n){const t={parentById:{},childrenById:{}},e=n.getSubGraphs();return i.l.info("Subgraphs - ",e),e.forEach((function(n){n.nodes.forEach((function(e){t.parentById[e]=n.id,void 0===t.childrenById[n.id]&&(t.childrenById[n.id]=[]),t.childrenById[n.id].push(e)}))})),e.forEach((function(n){n.id,void 0!==t.parentById[n.id]&&t.parentById[n.id]})),t}(a.db);h=function(n,t,e,r,a,u,o){const s=e.select(`[id="${t}"]`),h=s.insert("g").attr("class","nodes");return Object.keys(n).forEach((function(t){const e=n[t];let o="default";e.classes.length>0&&(o=e.classes.join(" "));const l=(0,i.a)(e.styles);let b,w=void 0!==e.text?e.text:e.id;const d={width:0,height:0};if((0,i.e)((0,i.g)().flowchart.htmlLabels)){const n={label:w.replace(/fa[blrs]?:fa-[\w-]+/g,(n=>`<i class='${n.replace(":"," ")}'></i>`))};b=(0,c.a)(s,n).node();const t=b.getBBox();d.width=t.width,d.height=t.height,d.labelNode=b,b.parentNode.removeChild(b)}else{const n=r.createElementNS("http://www.w3.org/2000/svg","text");n.setAttribute("style",l.labelStyle.replace("color:","fill:"));const t=w.split(i.c.lineBreakRegex);for(const i of t){const t=r.createElementNS("http://www.w3.org/2000/svg","tspan");t.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),t.setAttribute("dy","1em"),t.setAttribute("x","1"),t.textContent=i,n.appendChild(t)}b=n;const e=b.getBBox();d.width=e.width,d.height=e.height,d.labelNode=b}const g=[{id:e.id+"-west",layoutOptions:{"port.side":"WEST"}},{id:e.id+"-east",layoutOptions:{"port.side":"EAST"}},{id:e.id+"-south",layoutOptions:{"port.side":"SOUTH"}},{id:e.id+"-north",layoutOptions:{"port.side":"NORTH"}}];let p=0,v="",m={};switch(e.type){case"round":p=5,v="rect";break;case"square":case"group":default:v="rect";break;case"diamond":v="question",m={portConstraints:"FIXED_SIDE"};break;case"hexagon":v="hexagon";break;case"odd":case"odd_right":v="rect_left_inv_arrow";break;case"lean_right":v="lean_right";break;case"lean_left":v="lean_left";break;case"trapezoid":v="trapezoid";break;case"inv_trapezoid":v="inv_trapezoid";break;case"circle":v="circle";break;case"ellipse":v="ellipse";break;case"stadium":v="stadium";break;case"subroutine":v="subroutine";break;case"cylinder":v="cylinder";break;case"doublecircle":v="doublecircle"}const y={labelStyle:l.labelStyle,shape:v,labelText:w,rx:p,ry:p,class:o,style:l.style,id:e.id,link:e.link,linkTarget:e.linkTarget,tooltip:a.db.getTooltip(e.id)||"",domId:a.db.lookUpDomId(e.id),haveCallback:e.haveCallback,width:"group"===e.type?500:void 0,dir:e.dir,type:e.type,props:e.props,padding:(0,i.g)().flowchart.padding};let k,j;"group"!==y.type&&(j=(0,i.b)(h,y,e.dir),k=j.node().getBBox());const E={id:e.id,ports:"diamond"===e.type?g:[],layoutOptions:m,labelText:w,labelData:d,domId:a.db.lookUpDomId(e.id),width:null==k?void 0:k.width,height:null==k?void 0:k.height,type:e.type,el:j,parent:u.parentById[e.id]};f[y.id]=E})),o}(j,t,m,y,a,S,h);const P=k.insert("g").attr("class","edges edgePath"),C=a.db.getEdges();h=w(C,a,h,k);Object.keys(f).forEach((n=>{const t=f[n];t.parent||h.children.push(t),void 0!==S.childrenById[n]&&(t.labels=[{text:t.labelText,layoutOptions:{"nodeLabels.placement":"[H_CENTER, V_TOP, INSIDE]"},width:t.labelData.width,height:t.labelData.height}],delete t.x,delete t.y,delete t.width,delete t.height)})),p(h.children,S),i.l.info("after layout",JSON.stringify(h,null,2));const I=await o.layout(h);v(0,0,I.children,k,M,a,0),i.l.info("after layout",I),null==(u=I.edges)||u.map((n=>{g(P,n,n.edgeData,a,S)})),(0,i.s)({},k,b.diagramPadding,b.useMaxWidth),s.remove()}},y=n=>`.label {\n font-family: ${n.fontFamily};\n color: ${n.nodeTextColor||n.textColor};\n }\n .cluster-label text {\n fill: ${n.titleColor};\n }\n .cluster-label span {\n color: ${n.titleColor};\n }\n\n .label text,span {\n fill: ${n.nodeTextColor||n.textColor};\n color: ${n.nodeTextColor||n.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${n.mainBkg};\n stroke: ${n.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${n.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${n.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${n.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${n.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${n.edgeLabelBackground};\n fill: ${n.edgeLabelBackground};\n }\n text-align: center;\n }\n\n .cluster rect {\n fill: ${n.clusterBkg};\n stroke: ${n.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${n.titleColor};\n }\n\n .cluster span {\n color: ${n.titleColor};\n }\n /* .cluster div {\n color: ${n.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${n.fontFamily};\n font-size: 12px;\n background: ${n.tertiaryColor};\n border: 1px solid ${n.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${n.textColor};\n }\n .subgraph {\n stroke-width:2;\n rx:3;\n }\n // .subgraph-lvl-1 {\n // fill:#ccc;\n // // stroke:black;\n // }\n ${(n=>{let t="";for(let e=0;e<5;e++)t+=`\n .subgraph-lvl-${e} {\n fill: ${n[`surface${e}`]};\n stroke: ${n[`surfacePeer${e}`]};\n }\n `;return t})(n)}\n`,k={db:i.h,renderer:m,parser:i.p,styles:y}}}]); \ No newline at end of file diff --git a/assets/js/9506.368ed619.js b/assets/js/9506.368ed619.js new file mode 100644 index 00000000000..1d9b4d9e8e7 --- /dev/null +++ b/assets/js/9506.368ed619.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9506],{29506:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>n,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>m});var o=r(87462),s=(r(67294),r(3905));const a={title:"Better Flow Error Messages for the JavaScript Ecosystem","short-title":"Better Error Messages",author:"Caleb Meredith","medium-link":"https://medium.com/flow-type/better-flow-error-messages-for-the-javascript-ecosystem-73b6da948ae2"},n=void 0,i={permalink:"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem",source:"@site/blog/2018-02-20-Better-Flow-Error-Messages-for-the-Javascript-Ecosystem.md",title:"Better Flow Error Messages for the JavaScript Ecosystem",description:"Over the last year, the Flow team has been slowly auditing and improving all the",date:"2018-02-20T00:00:00.000Z",formattedDate:"February 20, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Caleb Meredith"}],frontMatter:{title:"Better Flow Error Messages for the JavaScript Ecosystem","short-title":"Better Error Messages",author:"Caleb Meredith","medium-link":"https://medium.com/flow-type/better-flow-error-messages-for-the-javascript-ecosystem-73b6da948ae2"},prevItem:{title:"New Flow Errors on Unknown Property Access in Conditionals",permalink:"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals"},nextItem:{title:"Typing Higher-Order Components in Recompose With Flow",permalink:"/blog/2017/09/03/Flow-Support-in-Recompose"}},l={authorsImageUrls:[void 0]},m=[],c={toc:m};function p(e){let{components:t,...r}=e;return(0,s.mdx)("wrapper",(0,o.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Over the last year, the Flow team has been slowly auditing and improving all the\npossible error messages generated by the type checker. In Flow 0.66 we\u2019re\nexcited to announce a new error message format designed to decrease the time it\ntakes you to read and fix each bug Flow finds."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9537.02320fdb.js b/assets/js/9537.02320fdb.js new file mode 100644 index 00000000000..4f96ad69ba5 --- /dev/null +++ b/assets/js/9537.02320fdb.js @@ -0,0 +1,2 @@ +/*! For license information please see 9537.02320fdb.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9537],{79537:(e,n,o)=>{o.r(n),o.d(n,{conf:()=>t,language:()=>s});var t={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},s={defaultToken:"",tokenPostfix:".objective-c",keywords:["#import","#include","#define","#else","#endif","#if","#ifdef","#ifndef","#ident","#undef","@class","@defs","@dynamic","@encode","@end","@implementation","@interface","@package","@private","@protected","@property","@protocol","@public","@selector","@synthesize","__declspec","assign","auto","BOOL","break","bycopy","byref","case","char","Class","const","copy","continue","default","do","double","else","enum","extern","FALSE","false","float","for","goto","if","in","int","id","inout","IMP","long","nil","nonatomic","NULL","oneway","out","private","public","protected","readwrite","readonly","register","return","SEL","self","short","signed","sizeof","static","struct","super","switch","typedef","TRUE","true","union","unsigned","volatile","void","while"],decpart:/\d(_?\d)*/,decimal:/0|@decpart/,tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},[/[,:;]/,"delimiter"],[/[{}\[\]()<>]/,"@brackets"],[/[a-zA-Z@#]\w*/,{cases:{"@keywords":"keyword","@default":"identifier"}}],[/[<>=\\+\\-\\*\\/\\^\\|\\~,]|and\\b|or\\b|not\\b]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],numbers:[[/0[xX][0-9a-fA-F]*(_?[0-9a-fA-F])*/,"number.hex"],[/@decimal((\.@decpart)?([eE][\-+]?@decpart)?)[fF]*/,{cases:{"(\\d)*":"number",$0:"number.float"}}]],strings:[[/'$/,"string.escape","@popall"],[/'/,"string.escape","@stringBody"],[/"$/,"string.escape","@popall"],[/"/,"string.escape","@dblStringBody"]],stringBody:[[/[^\\']+$/,"string","@popall"],[/[^\\']+/,"string"],[/\\./,"string"],[/'/,"string.escape","@popall"],[/\\$/,"string"]],dblStringBody:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string"],[/"/,"string.escape","@popall"],[/\\$/,"string"]]}}}}]); \ No newline at end of file diff --git a/assets/js/9537.02320fdb.js.LICENSE.txt b/assets/js/9537.02320fdb.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/9537.02320fdb.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/9537.18e73c82.js b/assets/js/9537.18e73c82.js new file mode 100644 index 00000000000..2963bce9fae --- /dev/null +++ b/assets/js/9537.18e73c82.js @@ -0,0 +1,207 @@ +"use strict"; +exports.id = 9537; +exports.ids = [9537]; +exports.modules = { + +/***/ 79537: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/objective-c/objective-c.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".objective-c", + keywords: [ + "#import", + "#include", + "#define", + "#else", + "#endif", + "#if", + "#ifdef", + "#ifndef", + "#ident", + "#undef", + "@class", + "@defs", + "@dynamic", + "@encode", + "@end", + "@implementation", + "@interface", + "@package", + "@private", + "@protected", + "@property", + "@protocol", + "@public", + "@selector", + "@synthesize", + "__declspec", + "assign", + "auto", + "BOOL", + "break", + "bycopy", + "byref", + "case", + "char", + "Class", + "const", + "copy", + "continue", + "default", + "do", + "double", + "else", + "enum", + "extern", + "FALSE", + "false", + "float", + "for", + "goto", + "if", + "in", + "int", + "id", + "inout", + "IMP", + "long", + "nil", + "nonatomic", + "NULL", + "oneway", + "out", + "private", + "public", + "protected", + "readwrite", + "readonly", + "register", + "return", + "SEL", + "self", + "short", + "signed", + "sizeof", + "static", + "struct", + "super", + "switch", + "typedef", + "TRUE", + "true", + "union", + "unsigned", + "volatile", + "void", + "while" + ], + decpart: /\d(_?\d)*/, + decimal: /0|@decpart/, + tokenizer: { + root: [ + { include: "@comments" }, + { include: "@whitespace" }, + { include: "@numbers" }, + { include: "@strings" }, + [/[,:;]/, "delimiter"], + [/[{}\[\]()<>]/, "@brackets"], + [ + /[a-zA-Z@#]\w*/, + { + cases: { + "@keywords": "keyword", + "@default": "identifier" + } + } + ], + [/[<>=\\+\\-\\*\\/\\^\\|\\~,]|and\\b|or\\b|not\\b]/, "operator"] + ], + whitespace: [[/\s+/, "white"]], + comments: [ + ["\\/\\*", "comment", "@comment"], + ["\\/\\/+.*", "comment"] + ], + comment: [ + ["\\*\\/", "comment", "@pop"], + [".", "comment"] + ], + numbers: [ + [/0[xX][0-9a-fA-F]*(_?[0-9a-fA-F])*/, "number.hex"], + [ + /@decimal((\.@decpart)?([eE][\-+]?@decpart)?)[fF]*/, + { + cases: { + "(\\d)*": "number", + $0: "number.float" + } + } + ] + ], + strings: [ + [/'$/, "string.escape", "@popall"], + [/'/, "string.escape", "@stringBody"], + [/"$/, "string.escape", "@popall"], + [/"/, "string.escape", "@dblStringBody"] + ], + stringBody: [ + [/[^\\']+$/, "string", "@popall"], + [/[^\\']+/, "string"], + [/\\./, "string"], + [/'/, "string.escape", "@popall"], + [/\\$/, "string"] + ], + dblStringBody: [ + [/[^\\"]+$/, "string", "@popall"], + [/[^\\"]+/, "string"], + [/\\./, "string"], + [/"/, "string.escape", "@popall"], + [/\\$/, "string"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/9541.4560e197.js b/assets/js/9541.4560e197.js new file mode 100644 index 00000000000..aabc026076e --- /dev/null +++ b/assets/js/9541.4560e197.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9541],{99541:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var o=n(87462),i=(n(67294),n(3905));const a={title:"Clarity on Flow's Direction and Open Source Engagement","short-title":"Flow Direction Update",author:"Vladan Djeric","medium-link":"https://medium.com/flow-type/clarity-on-flows-direction-and-open-source-engagement-e721a4eb4d8b"},r=void 0,l={permalink:"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement",source:"@site/blog/2021-05-25-Clarity-on-Flows-Direction-and-Open-Source-Engagement.md",title:"Clarity on Flow's Direction and Open Source Engagement",description:"An update on Flow's direction and open source engagement.",date:"2021-05-25T00:00:00.000Z",formattedDate:"May 25, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"Vladan Djeric"}],frontMatter:{title:"Clarity on Flow's Direction and Open Source Engagement","short-title":"Flow Direction Update",author:"Vladan Djeric","medium-link":"https://medium.com/flow-type/clarity-on-flows-direction-and-open-source-engagement-e721a4eb4d8b"},prevItem:{title:"Sound Typing for 'this' in Flow",permalink:"/blog/2021/06/02/Sound-Typing-for-this-in-Flow"},nextItem:{title:"Types-First the only supported mode in Flow (Jan 2021)",permalink:"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow"}},s={authorsImageUrls:[void 0]},d=[],c={toc:d};function p(e){let{components:t,...n}=e;return(0,i.mdx)("wrapper",(0,o.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"An update on Flow's direction and open source engagement."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/957.de39d01c.js b/assets/js/957.de39d01c.js new file mode 100644 index 00000000000..158df863dec --- /dev/null +++ b/assets/js/957.de39d01c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[957],{80957:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var a=t(87462),r=(t(67294),t(3905));const o={title:"Typing Generators with Flow","short-title":"Generators",author:"Sam Goldman",hide_table_of_contents:!0},i=void 0,l={permalink:"/blog/2015/11/09/Generators",source:"@site/blog/2015-11-09-Generators.md",title:"Typing Generators with Flow",description:"Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an upcoming feature already supported by Flow.",date:"2015-11-09T00:00:00.000Z",formattedDate:"November 9, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Sam Goldman"}],frontMatter:{title:"Typing Generators with Flow","short-title":"Generators",author:"Sam Goldman",hide_table_of_contents:!0},prevItem:{title:"Version-0.19.0",permalink:"/blog/2015/12/01/Version-0.19.0"},nextItem:{title:"Version-0.17.0",permalink:"/blog/2015/10/07/Version-0.17.0"}},s={authorsImageUrls:[void 0]},d=[],p={toc:d};function m(e){let{components:n,...t}=e;return(0,r.mdx)("wrapper",(0,a.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an ",(0,r.mdx)("a",{parentName:"p",href:"https://github.com/tc39/ecmascript-asyncawait"},"upcoming feature")," already supported by Flow."),(0,r.mdx)("p",null,"So much wonderful material has already been produced describing generators. I am going to focus on the interaction of static typing with generators. Please refer to the following materials for information about generators:"),(0,r.mdx)("ul",null,(0,r.mdx)("li",{parentName:"ul"},"Jafar Husain gave an ",(0,r.mdx)("a",{parentName:"li",href:"https://www.youtube.com/watch?v=DqMFX91ToLw#t=970"},"incredibly lucid and well-illustrated talk")," that covers generators. I have linked to the point where he gets into generators, but I highly recommend the entire talk."),(0,r.mdx)("li",{parentName:"ul"},"Exploring ES6, a comprehensive book by Axel Rauschmayer, who has generously made the contents available for free online, has a ",(0,r.mdx)("a",{parentName:"li",href:"http://exploringjs.com/es6/ch_generators.html"},"chapter on generators"),"."),(0,r.mdx)("li",{parentName:"ul"},"The venerable MDN has a ",(0,r.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators"},"useful page")," describing the ",(0,r.mdx)("inlineCode",{parentName:"li"},"Iterator")," interface and generators.")),(0,r.mdx)("p",null,"In Flow, the ",(0,r.mdx)("inlineCode",{parentName:"p"},"Generator")," interface has three type parameters: ",(0,r.mdx)("inlineCode",{parentName:"p"},"Yield"),", ",(0,r.mdx)("inlineCode",{parentName:"p"},"Return"),", and ",(0,r.mdx)("inlineCode",{parentName:"p"},"Next"),". ",(0,r.mdx)("inlineCode",{parentName:"p"},"Yield")," is the type of values which are yielded from the generator function. ",(0,r.mdx)("inlineCode",{parentName:"p"},"Return")," is the type of the value which is returned from the generator function. ",(0,r.mdx)("inlineCode",{parentName:"p"},"Next")," is the type of values which are passed into the generator via the ",(0,r.mdx)("inlineCode",{parentName:"p"},"next")," method on the ",(0,r.mdx)("inlineCode",{parentName:"p"},"Generator")," itself. For example, a generator value of type ",(0,r.mdx)("inlineCode",{parentName:"p"},"Generator<string,number,boolean>")," will yield ",(0,r.mdx)("inlineCode",{parentName:"p"},"string"),"s, return a ",(0,r.mdx)("inlineCode",{parentName:"p"},"number"),", and will receive ",(0,r.mdx)("inlineCode",{parentName:"p"},"boolean"),"s from its caller."),(0,r.mdx)("p",null,"For any type ",(0,r.mdx)("inlineCode",{parentName:"p"},"T"),", a ",(0,r.mdx)("inlineCode",{parentName:"p"},"Generator<T,void,void>")," is both an ",(0,r.mdx)("inlineCode",{parentName:"p"},"Iterable<T>")," and an ",(0,r.mdx)("inlineCode",{parentName:"p"},"Iterator<T>"),"."),(0,r.mdx)("p",null,"The unique nature of generators allows us to represent infinite sequences naturally. Consider the infinite sequence of natural numbers:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},"function *nats() {\n let i = 0;\n while (true) {\n yield i++;\n }\n}\n")),(0,r.mdx)("p",null,"Because generators are also iterators, we can manually iterate the generator:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},"const gen = nats();\nconsole.log(gen.next()); // { done: false, value: 0 }\nconsole.log(gen.next()); // { done: false, value: 1 }\nconsole.log(gen.next()); // { done: false, value: 2 }\n")),(0,r.mdx)("p",null,"When ",(0,r.mdx)("inlineCode",{parentName:"p"},"done")," is false, ",(0,r.mdx)("inlineCode",{parentName:"p"},"value")," will have the generator's ",(0,r.mdx)("inlineCode",{parentName:"p"},"Yield")," type. When ",(0,r.mdx)("inlineCode",{parentName:"p"},"done")," is true, ",(0,r.mdx)("inlineCode",{parentName:"p"},"value")," will have the generator's ",(0,r.mdx)("inlineCode",{parentName:"p"},"Return")," type or ",(0,r.mdx)("inlineCode",{parentName:"p"},"void")," if the consumer iterates past the completion value."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},'function *test() {\n yield 1;\n return "complete";\n}\nconst gen = test();\nconsole.log(gen.next()); // { done: false, value: 1 }\nconsole.log(gen.next()); // { done: true, value: "complete" }\nconsole.log(gen.next()); // { done: true, value: undefined }\n')),(0,r.mdx)("p",null,"Because of this behavior, manually iterating poses typing difficulties. Let's try to take the first 10 values from the ",(0,r.mdx)("inlineCode",{parentName:"p"},"nats")," generator through manual iteration:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},"const gen = nats();\nconst take10: number[] = [];\nfor (let i = 0; i < 10; i++) {\n const { done, value } = gen.next();\n if (done) {\n break;\n } else {\n take10.push(value); // error!\n }\n}\n")),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},"test.js:13\n 13: const { done, value } = gen.next();\n ^^^^^^^^^^ call of method `next`\n 17: take10.push(value); // error!\n ^^^^^ undefined. This type is incompatible with\n 11: const take10: number[] = [];\n ^^^^^^ number\n")),(0,r.mdx)("p",null,"Flow is complaining that ",(0,r.mdx)("inlineCode",{parentName:"p"},"value")," might be ",(0,r.mdx)("inlineCode",{parentName:"p"},"undefined"),". This is because the type of ",(0,r.mdx)("inlineCode",{parentName:"p"},"value")," is ",(0,r.mdx)("inlineCode",{parentName:"p"},"Yield | Return | void"),", which simplifies in the instance of ",(0,r.mdx)("inlineCode",{parentName:"p"},"nats")," to ",(0,r.mdx)("inlineCode",{parentName:"p"},"number | void"),". We can introduce a dynamic type test to convince Flow of the invariant that ",(0,r.mdx)("inlineCode",{parentName:"p"},"value")," will always be ",(0,r.mdx)("inlineCode",{parentName:"p"},"number")," when ",(0,r.mdx)("inlineCode",{parentName:"p"},"done")," is false."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},'const gen = nats();\nconst take10: number[] = [];\nfor (let i = 0; i < 10; i++) {\n const { done, value } = gen.next();\n if (done) {\n break;\n } else {\n if (typeof value === "undefined") {\n throw new Error("`value` must be a number.");\n }\n take10.push(value); // no error\n }\n}\n')),(0,r.mdx)("p",null,"There is an ",(0,r.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/577"},"open issue")," which would make the dynamic type test above unnecessary, by using the ",(0,r.mdx)("inlineCode",{parentName:"p"},"done")," value as a sentinel to refine a tagged union. That is, when ",(0,r.mdx)("inlineCode",{parentName:"p"},"done")," is ",(0,r.mdx)("inlineCode",{parentName:"p"},"true"),", Flow would know that ",(0,r.mdx)("inlineCode",{parentName:"p"},"value")," is always of type ",(0,r.mdx)("inlineCode",{parentName:"p"},"Yield")," and otherwise of type ",(0,r.mdx)("inlineCode",{parentName:"p"},"Return | void"),"."),(0,r.mdx)("p",null,"Even without the dynamic type test, this code is quite verbose and it's hard to see the intent. Because generators are also iterable, we can also use ",(0,r.mdx)("inlineCode",{parentName:"p"},"for...of")," loops:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},"const take10: number[] = [];\nlet i = 0;\nfor (let nat of nats()) {\n if (i === 10) break;\n take10.push(nat);\n i++;\n}\n")),(0,r.mdx)("p",null,"That's much better. The ",(0,r.mdx)("inlineCode",{parentName:"p"},"for...of")," looping construct ignores completion values, so Flow understands that ",(0,r.mdx)("inlineCode",{parentName:"p"},"nat")," will always be ",(0,r.mdx)("inlineCode",{parentName:"p"},"number"),". Let's generalize this pattern further using generator functions:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},"function *take<T>(n: number, xs: Iterable<T>): Iterable<T> {\n if (n <= 0) return;\n let i = 0;\n for (let x of xs) {\n yield x;\n if (++i === n) return;\n }\n}\n\nfor (let n of take(10, nats())) {\n console.log(n); // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9\n}\n")),(0,r.mdx)("p",null,"Note that we explicitly annotated the parameters and return type of the ",(0,r.mdx)("inlineCode",{parentName:"p"},"take")," generator. This is necessary to ensure Flow understands the fully generic type. This is because Flow does not currently infer a fully generic type, but instead accumulates lower bounds, resulting in a union type."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},'function identity(x) { return x }\nvar a: string = identity(""); // error\nvar b: number = identity(0); // error\n')),(0,r.mdx)("p",null,"The above code produces errors because Flow adds ",(0,r.mdx)("inlineCode",{parentName:"p"},"string")," and ",(0,r.mdx)("inlineCode",{parentName:"p"},"number")," as lower bounds to the type variable describing the type of the value bound by ",(0,r.mdx)("inlineCode",{parentName:"p"},"x"),". That is, Flow believes the type of ",(0,r.mdx)("inlineCode",{parentName:"p"},"identity")," is ",(0,r.mdx)("inlineCode",{parentName:"p"},"(x: string | number) => string | number")," because those are the types which actually passed through the function."),(0,r.mdx)("p",null,"Another important feature of generators is the ability to pass values into the generator from the consumer. Let's consider a generator ",(0,r.mdx)("inlineCode",{parentName:"p"},"scan"),", which reduces values passed into the generator using a provided function. Our ",(0,r.mdx)("inlineCode",{parentName:"p"},"scan")," is similar to ",(0,r.mdx)("inlineCode",{parentName:"p"},"Array.prototype.reduce"),", but it returns each intermediate value and the values are provided imperatively via ",(0,r.mdx)("inlineCode",{parentName:"p"},"next"),"."),(0,r.mdx)("p",null,"As a first pass, we might write this:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},"function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {\n let acc = init;\n while (true) {\n const next = yield acc;\n acc = f(acc, next);\n }\n}\n")),(0,r.mdx)("p",null,"We can use this definition to implement an imperative sum procedure:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},"let sum = scan(0, (a,b) => a + b);\nconsole.log(sum.next()); // { done: false, value: 0 }\nconsole.log(sum.next(1)); // { done: false, value: 1 }\nconsole.log(sum.next(2)); // { done: false, value: 3 }\nconsole.log(sum.next(3)); // { done: false, value: 6 }\n")),(0,r.mdx)("p",null,"However, when we try to check the above definition of ",(0,r.mdx)("inlineCode",{parentName:"p"},"scan"),", Flow complains:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},"test.js:7\n 7: acc = f(acc, next);\n ^^^^^^^^^^^^ function call\n 7: acc = f(acc, next);\n ^^^^ undefined. This type is incompatible with\n 3: function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {\n ^ some incompatible instantiation of T\n")),(0,r.mdx)("p",null,"Flow is complaining that our value, ",(0,r.mdx)("inlineCode",{parentName:"p"},"next"),", may be ",(0,r.mdx)("inlineCode",{parentName:"p"},"void")," instead of the expected ",(0,r.mdx)("inlineCode",{parentName:"p"},"T"),", which is ",(0,r.mdx)("inlineCode",{parentName:"p"},"number")," in the ",(0,r.mdx)("inlineCode",{parentName:"p"},"sum")," example. This behavior is necessary to ensure type safety. In order to prime the generator, our consumer must first call ",(0,r.mdx)("inlineCode",{parentName:"p"},"next")," without an argument. To accommodate this, Flow understands the argument to ",(0,r.mdx)("inlineCode",{parentName:"p"},"next")," to be optional. This means Flow will allow the following code:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},"let sum = scan(0, (a,b) => a + b);\nconsole.log(sum.next()); // first call primes the generator\nconsole.log(sum.next()); // we should pass a value, but don't need to\n")),(0,r.mdx)("p",null,'In general, Flow doesn\'t know which invocation is "first." While it should be an error to pass a value to the first ',(0,r.mdx)("inlineCode",{parentName:"p"},"next"),", and an error to ",(0,r.mdx)("em",{parentName:"p"},"not")," pass a value to subsequent ",(0,r.mdx)("inlineCode",{parentName:"p"},"next"),"s, Flow compromises and forces your generator to deal with a potentially ",(0,r.mdx)("inlineCode",{parentName:"p"},"void")," value. In short, given a generator of type ",(0,r.mdx)("inlineCode",{parentName:"p"},"Generator<Y,R,N>")," and a value ",(0,r.mdx)("inlineCode",{parentName:"p"},"x")," of type ",(0,r.mdx)("inlineCode",{parentName:"p"},"Y"),", the type of the expression ",(0,r.mdx)("inlineCode",{parentName:"p"},"yield x")," is ",(0,r.mdx)("inlineCode",{parentName:"p"},"N | void"),"."),(0,r.mdx)("p",null,"We can update our definition to use a dynamic type test that enforces the non-",(0,r.mdx)("inlineCode",{parentName:"p"},"void")," invariant at runtime:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},'function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {\n let acc = init;\n while (true) {\n const next = yield acc;\n if (typeof next === "undefined") {\n throw new Error("Caller must provide an argument to `next`.");\n }\n acc = f(acc, next);\n }\n}\n')),(0,r.mdx)("p",null,"There is one more important caveat when dealing with typed generators. Every value yielded from the generator must be described by a single type. Similarly, every value passed to the generator via ",(0,r.mdx)("inlineCode",{parentName:"p"},"next")," must be described by a single type."),(0,r.mdx)("p",null,"Consider the following generator:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},'function *foo() {\n yield 0;\n yield "";\n}\n\nconst gen = foo();\nconst a: number = gen.next().value; // error\nconst b: string = gen.next().value; // error\n')),(0,r.mdx)("p",null,"This is perfectly legal JavaScript and the values ",(0,r.mdx)("inlineCode",{parentName:"p"},"a")," and ",(0,r.mdx)("inlineCode",{parentName:"p"},"b")," do have the correct types at runtime. However, Flow rejects this program. Our generator's ",(0,r.mdx)("inlineCode",{parentName:"p"},"Yield")," type parameter has a concrete type of ",(0,r.mdx)("inlineCode",{parentName:"p"},"number | string"),". The ",(0,r.mdx)("inlineCode",{parentName:"p"},"value")," property of the iterator result object has the type ",(0,r.mdx)("inlineCode",{parentName:"p"},"number | string | void"),"."),(0,r.mdx)("p",null,"We can observe similar behavior for values passed into the generator:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},'function *bar() {\n var a = yield;\n var b = yield;\n return {a,b};\n}\n\nconst gen = bar();\ngen.next(); // prime the generator\ngen.next(0);\nconst ret: { a: number, b: string } = gen.next("").value; // error\n')),(0,r.mdx)("p",null,"The value ",(0,r.mdx)("inlineCode",{parentName:"p"},"ret")," has the annotated type at runtime, but Flow also rejects this program. Our generator's ",(0,r.mdx)("inlineCode",{parentName:"p"},"Next")," type parameter has a concrete type of ",(0,r.mdx)("inlineCode",{parentName:"p"},"number | string"),". The ",(0,r.mdx)("inlineCode",{parentName:"p"},"value")," property of the iterator result object thus has the type ",(0,r.mdx)("inlineCode",{parentName:"p"},"void | { a: void | number | string, b: void | number | string }"),"."),(0,r.mdx)("p",null,"While it may be possible to use dynamic type tests to resolve these issues, another practical option is to use ",(0,r.mdx)("inlineCode",{parentName:"p"},"any")," to take on the type safety responsibility yourself."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},'function *bar(): Generator {\n var a = yield;\n var b = yield;\n return {a,b};\n}\n\nconst gen = bar();\ngen.next(); // prime the generator\ngen.next(0);\nconst ret: void | { a: number, b: string } = gen.next("").value; // OK\n')),(0,r.mdx)("p",null,"(Note that the annotation ",(0,r.mdx)("inlineCode",{parentName:"p"},"Generator")," is equivalent to ",(0,r.mdx)("inlineCode",{parentName:"p"},"Generator<any,any,any>"),".)"),(0,r.mdx)("p",null,"Phew! I hope that this will help you use generators in your own code. I also hope this gave you a little insight into the difficulties of applying static analysis to a highly dynamic language such as JavaScript."),(0,r.mdx)("p",null,"To summarize, here are some of the lessons we've learned for using generators in statically typed JS:"),(0,r.mdx)("ul",null,(0,r.mdx)("li",{parentName:"ul"},"Use generators to implement custom iterables."),(0,r.mdx)("li",{parentName:"ul"},"Use dynamic type tests to unpack the optional return type of yield expressions."),(0,r.mdx)("li",{parentName:"ul"},"Avoid generators that yield or receive values of multiple types, or use ",(0,r.mdx)("inlineCode",{parentName:"li"},"any"),".")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9607.622810b9.js b/assets/js/9607.622810b9.js new file mode 100644 index 00000000000..4e4f4130e8d --- /dev/null +++ b/assets/js/9607.622810b9.js @@ -0,0 +1,2 @@ +/*! For license information please see 9607.622810b9.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9607],{52798:(e,n,s)=>{s.r(n),s.d(n,{conf:()=>t,language:()=>i});var t={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},i={defaultToken:"",tokenPostfix:".ini",escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^\[[^\]]*\]/,"metatag"],[/(^\w+)(\s*)(\=)/,["key","","delimiter"]],{include:"@whitespace"},[/\d+/,"number"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,""],[/^\s*[#;].*$/,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}}}}]); \ No newline at end of file diff --git a/assets/js/9607.622810b9.js.LICENSE.txt b/assets/js/9607.622810b9.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/9607.622810b9.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/9647.b1861c7a.js b/assets/js/9647.b1861c7a.js new file mode 100644 index 00000000000..0232b8d93c2 --- /dev/null +++ b/assets/js/9647.b1861c7a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9647],{29647:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>i,contentTitle:()=>n,default:()=>g,frontMatter:()=>s,metadata:()=>d,toc:()=>l});var a=t(87462),r=(t(67294),t(3905));const s={title:"Upgrading Flow Codebases","short-title":"Upgrading Flow Codebases",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/upgrading-flow-codebases-40ef8dd3ccd8"},n=void 0,d={permalink:"/blog/2019/4/9/Upgrading-Flow-Codebases",source:"@site/blog/2019-4-9-Upgrading-Flow-Codebases.md",title:"Upgrading Flow Codebases",description:"Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!",date:"2019-04-09T00:00:00.000Z",formattedDate:"April 9, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Upgrading Flow Codebases","short-title":"Upgrading Flow Codebases",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/upgrading-flow-codebases-40ef8dd3ccd8"},prevItem:{title:"Coming Soon: Changes to Object Spreads",permalink:"/blog/2019/08/20/Changes-to-Object-Spreads"},nextItem:{title:"A More Responsive Flow",permalink:"/blog/2019/2/8/A-More-Responsive-Flow"}},i={authorsImageUrls:[void 0]},l=[],p={toc:l};function g(e){let{components:o,...t}=e;return(0,r.mdx)("wrapper",(0,a.Z)({},p,t,{components:o,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!"))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9684.19d777f5.js b/assets/js/9684.19d777f5.js new file mode 100644 index 00000000000..f60a8a0ab91 --- /dev/null +++ b/assets/js/9684.19d777f5.js @@ -0,0 +1,2 @@ +/*! For license information please see 9684.19d777f5.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9684],{69684:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>r,language:()=>s});var r={comments:{lineComment:"#",blockComment:["=begin","=end"]},brackets:[["(",")"],["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],indentationRules:{increaseIndentPattern:new RegExp("^\\s*((begin|class|(private|protected)\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\sdo\\b)|([^#]*=\\s*(case|if|unless)))\\b([^#\\{;]|(\"|'|/).*\\4)*(#.*)?$"),decreaseIndentPattern:new RegExp("^\\s*([}\\]]([,)]?\\s*(#|$)|\\.[a-zA-Z_]\\w*\\b)|(end|rescue|ensure|else|elsif|when)\\b)")}},s={tokenPostfix:".ruby",keywords:["__LINE__","__ENCODING__","__FILE__","BEGIN","END","alias","and","begin","break","case","class","def","defined?","do","else","elsif","end","ensure","for","false","if","in","module","next","nil","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield"],keywordops:["::","..","...","?",":","=>"],builtins:["require","public","private","include","extend","attr_reader","protected","private_class_method","protected_class_method","new"],declarations:["module","class","def","case","do","begin","for","if","while","until","unless"],linedecls:["def","case","do","begin","for","if","while","until","unless"],operators:["^","&","|","<=>","==","===","!~","=~",">",">=","<","<=","<<",">>","+","-","*","/","%","**","~","+@","-@","[]","[]=","`","+=","-=","*=","**=","/=","^=","%=","<<=",">>=","&=","&&=","||=","|="],brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],symbols:/[=><!~?:&|+\-*\/\^%\.]+/,escape:/(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,escapes:/\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/,decpart:/\d(_?\d)*/,decimal:/0|@decpart/,delim:/[^a-zA-Z0-9\s\n\r]/,heredelim:/(?:\w+|'[^']*'|"[^"]*"|`[^`]*`)/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[AzZbBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})?/,tokenizer:{root:[[/^(\s*)([a-z_]\w*[!?=]?)/,["white",{cases:{"for|until|while":{token:"keyword.$2",next:"@dodecl.$2"},"@declarations":{token:"keyword.$2",next:"@root.$2"},end:{token:"keyword.$S2",next:"@pop"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}]],[/[a-z_]\w*[!?=]?/,{cases:{"if|unless|while|until":{token:"keyword.$0x",next:"@modifier.$0x"},for:{token:"keyword.$2",next:"@dodecl.$2"},"@linedecls":{token:"keyword.$0",next:"@root.$0"},end:{token:"keyword.$S2",next:"@pop"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}],[/[A-Z][\w]*[!?=]?/,"constructor.identifier"],[/\$[\w]*/,"global.constant"],[/@[\w]*/,"namespace.instance.identifier"],[/@@@[\w]*/,"namespace.class.identifier"],[/<<[-~](@heredelim).*/,{token:"string.heredoc.delimiter",next:"@heredoc.$1"}],[/[ \t\r\n]+<<(@heredelim).*/,{token:"string.heredoc.delimiter",next:"@heredoc.$1"}],[/^<<(@heredelim).*/,{token:"string.heredoc.delimiter",next:"@heredoc.$1"}],{include:"@whitespace"},[/"/,{token:"string.d.delim",next:'@dstring.d."'}],[/'/,{token:"string.sq.delim",next:"@sstring.sq"}],[/%([rsqxwW]|Q?)/,{token:"@rematch",next:"pstring"}],[/`/,{token:"string.x.delim",next:"@dstring.x.`"}],[/:(\w|[$@])\w*[!?=]?/,"string.s"],[/:"/,{token:"string.s.delim",next:'@dstring.s."'}],[/:'/,{token:"string.s.delim",next:"@sstring.s"}],[/\/(?=(\\\/|[^\/\n])+\/)/,{token:"regexp.delim",next:"@regexp"}],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@keywordops":"keyword","@operators":"operator","@default":""}}],[/[;,]/,"delimiter"],[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/,"number.hex"],[/0[_oO][0-7](_?[0-7])*/,"number.octal"],[/0[bB][01](_?[01])*/,"number.binary"],[/0[dD]@decpart/,"number"],[/@decimal((\.@decpart)?([eE][\-+]?@decpart)?)/,{cases:{$1:"number.float","@default":"number"}}]],dodecl:[[/^/,{token:"",switchTo:"@root.$S2"}],[/[a-z_]\w*[!?=]?/,{cases:{end:{token:"keyword.$S2",next:"@pop"},do:{token:"keyword",switchTo:"@root.$S2"},"@linedecls":{token:"@rematch",switchTo:"@root.$S2"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}],{include:"@root"}],modifier:[[/^/,"","@pop"],[/[a-z_]\w*[!?=]?/,{cases:{end:{token:"keyword.$S2",next:"@pop"},"then|else|elsif|do":{token:"keyword",switchTo:"@root.$S2"},"@linedecls":{token:"@rematch",switchTo:"@root.$S2"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}],{include:"@root"}],sstring:[[/[^\\']+/,"string.$S2"],[/\\\\|\\'|\\$/,"string.$S2.escape"],[/\\./,"string.$S2.invalid"],[/'/,{token:"string.$S2.delim",next:"@pop"}]],dstring:[[/[^\\`"#]+/,"string.$S2"],[/#/,"string.$S2.escape","@interpolated"],[/\\$/,"string.$S2.escape"],[/@escapes/,"string.$S2.escape"],[/\\./,"string.$S2.escape.invalid"],[/[`"]/,{cases:{"$#==$S3":{token:"string.$S2.delim",next:"@pop"},"@default":"string.$S2"}}]],heredoc:[[/^(\s*)(@heredelim)$/,{cases:{"$2==$S2":["string.heredoc",{token:"string.heredoc.delimiter",next:"@pop"}],"@default":["string.heredoc","string.heredoc"]}}],[/.*/,"string.heredoc"]],interpolated:[[/\$\w*/,"global.constant","@pop"],[/@\w*/,"namespace.class.identifier","@pop"],[/@@@\w*/,"namespace.instance.identifier","@pop"],[/[{]/,{token:"string.escape.curly",switchTo:"@interpolated_compound"}],["","","@pop"]],interpolated_compound:[[/[}]/,{token:"string.escape.curly",next:"@pop"}],{include:"@root"}],pregexp:[{include:"@whitespace"},[/[^\(\{\[\\]/,{cases:{"$#==$S3":{token:"regexp.delim",next:"@pop"},"$#==$S2":{token:"regexp.delim",next:"@push"},"~[)}\\]]":"@brackets.regexp.escape.control","~@regexpctl":"regexp.escape.control","@default":"regexp"}}],{include:"@regexcontrol"}],regexp:[{include:"@regexcontrol"},[/[^\\\/]/,"regexp"],["/[ixmp]*",{token:"regexp.delim"},"@pop"]],regexcontrol:[[/(\{)(\d+(?:,\d*)?)(\})/,["@brackets.regexp.escape.control","regexp.escape.control","@brackets.regexp.escape.control"]],[/(\[)(\^?)/,["@brackets.regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?[:=!])/,["@brackets.regexp.escape.control","regexp.escape.control"]],[/\(\?#/,{token:"regexp.escape.control",next:"@regexpcomment"}],[/[()]/,"@brackets.regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/\\$/,"regexp.escape"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/#/,"regexp.escape","@interpolated"]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/\\$/,"regexp.escape"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,"@brackets.regexp.escape.control","@pop"]],regexpcomment:[[/[^)]+/,"comment"],[/\)/,{token:"regexp.escape.control",next:"@pop"}]],pstring:[[/%([qws])\(/,{token:"string.$1.delim",switchTo:"@qstring.$1.(.)"}],[/%([qws])\[/,{token:"string.$1.delim",switchTo:"@qstring.$1.[.]"}],[/%([qws])\{/,{token:"string.$1.delim",switchTo:"@qstring.$1.{.}"}],[/%([qws])</,{token:"string.$1.delim",switchTo:"@qstring.$1.<.>"}],[/%([qws])(@delim)/,{token:"string.$1.delim",switchTo:"@qstring.$1.$2.$2"}],[/%r\(/,{token:"regexp.delim",switchTo:"@pregexp.(.)"}],[/%r\[/,{token:"regexp.delim",switchTo:"@pregexp.[.]"}],[/%r\{/,{token:"regexp.delim",switchTo:"@pregexp.{.}"}],[/%r</,{token:"regexp.delim",switchTo:"@pregexp.<.>"}],[/%r(@delim)/,{token:"regexp.delim",switchTo:"@pregexp.$1.$1"}],[/%(x|W|Q?)\(/,{token:"string.$1.delim",switchTo:"@qqstring.$1.(.)"}],[/%(x|W|Q?)\[/,{token:"string.$1.delim",switchTo:"@qqstring.$1.[.]"}],[/%(x|W|Q?)\{/,{token:"string.$1.delim",switchTo:"@qqstring.$1.{.}"}],[/%(x|W|Q?)</,{token:"string.$1.delim",switchTo:"@qqstring.$1.<.>"}],[/%(x|W|Q?)(@delim)/,{token:"string.$1.delim",switchTo:"@qqstring.$1.$2.$2"}],[/%([rqwsxW]|Q?)./,{token:"invalid",next:"@pop"}],[/./,{token:"invalid",next:"@pop"}]],qstring:[[/\\$/,"string.$S2.escape"],[/\\./,"string.$S2.escape"],[/./,{cases:{"$#==$S4":{token:"string.$S2.delim",next:"@pop"},"$#==$S3":{token:"string.$S2.delim",next:"@push"},"@default":"string.$S2"}}]],qqstring:[[/#/,"string.$S2.escape","@interpolated"],{include:"@qstring"}],whitespace:[[/[ \t\r\n]+/,""],[/^\s*=begin\b/,"comment","@comment"],[/#.*$/,"comment"]],comment:[[/[^=]+/,"comment"],[/^\s*=begin\b/,"comment.invalid"],[/^\s*=end\b.*/,"comment","@pop"],[/[=]/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/9684.19d777f5.js.LICENSE.txt b/assets/js/9684.19d777f5.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/9684.19d777f5.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/9684.2bbdb36e.js b/assets/js/9684.2bbdb36e.js new file mode 100644 index 00000000000..114a6456d37 --- /dev/null +++ b/assets/js/9684.2bbdb36e.js @@ -0,0 +1,463 @@ +"use strict"; +exports.id = 9684; +exports.ids = [9684]; +exports.modules = { + +/***/ 69684: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/ruby/ruby.ts +var conf = { + comments: { + lineComment: "#", + blockComment: ["=begin", "=end"] + }, + brackets: [ + ["(", ")"], + ["{", "}"], + ["[", "]"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + indentationRules: { + increaseIndentPattern: new RegExp(`^\\s*((begin|class|(private|protected)\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\sdo\\b)|([^#]*=\\s*(case|if|unless)))\\b([^#\\{;]|("|'|/).*\\4)*(#.*)?$`), + decreaseIndentPattern: new RegExp("^\\s*([}\\]]([,)]?\\s*(#|$)|\\.[a-zA-Z_]\\w*\\b)|(end|rescue|ensure|else|elsif|when)\\b)") + } +}; +var language = { + tokenPostfix: ".ruby", + keywords: [ + "__LINE__", + "__ENCODING__", + "__FILE__", + "BEGIN", + "END", + "alias", + "and", + "begin", + "break", + "case", + "class", + "def", + "defined?", + "do", + "else", + "elsif", + "end", + "ensure", + "for", + "false", + "if", + "in", + "module", + "next", + "nil", + "not", + "or", + "redo", + "rescue", + "retry", + "return", + "self", + "super", + "then", + "true", + "undef", + "unless", + "until", + "when", + "while", + "yield" + ], + keywordops: ["::", "..", "...", "?", ":", "=>"], + builtins: [ + "require", + "public", + "private", + "include", + "extend", + "attr_reader", + "protected", + "private_class_method", + "protected_class_method", + "new" + ], + declarations: [ + "module", + "class", + "def", + "case", + "do", + "begin", + "for", + "if", + "while", + "until", + "unless" + ], + linedecls: ["def", "case", "do", "begin", "for", "if", "while", "until", "unless"], + operators: [ + "^", + "&", + "|", + "<=>", + "==", + "===", + "!~", + "=~", + ">", + ">=", + "<", + "<=", + "<<", + ">>", + "+", + "-", + "*", + "/", + "%", + "**", + "~", + "+@", + "-@", + "[]", + "[]=", + "`", + "+=", + "-=", + "*=", + "**=", + "/=", + "^=", + "%=", + "<<=", + ">>=", + "&=", + "&&=", + "||=", + "|=" + ], + brackets: [ + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" } + ], + symbols: /[=><!~?:&|+\-*\/\^%\.]+/, + escape: /(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/, + escapes: /\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/, + decpart: /\d(_?\d)*/, + decimal: /0|@decpart/, + delim: /[^a-zA-Z0-9\s\n\r]/, + heredelim: /(?:\w+|'[^']*'|"[^"]*"|`[^`]*`)/, + regexpctl: /[(){}\[\]\$\^|\-*+?\.]/, + regexpesc: /\\(?:[AzZbBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})?/, + tokenizer: { + root: [ + [ + /^(\s*)([a-z_]\w*[!?=]?)/, + [ + "white", + { + cases: { + "for|until|while": { + token: "keyword.$2", + next: "@dodecl.$2" + }, + "@declarations": { + token: "keyword.$2", + next: "@root.$2" + }, + end: { token: "keyword.$S2", next: "@pop" }, + "@keywords": "keyword", + "@builtins": "predefined", + "@default": "identifier" + } + } + ] + ], + [ + /[a-z_]\w*[!?=]?/, + { + cases: { + "if|unless|while|until": { + token: "keyword.$0x", + next: "@modifier.$0x" + }, + for: { token: "keyword.$2", next: "@dodecl.$2" }, + "@linedecls": { token: "keyword.$0", next: "@root.$0" }, + end: { token: "keyword.$S2", next: "@pop" }, + "@keywords": "keyword", + "@builtins": "predefined", + "@default": "identifier" + } + } + ], + [/[A-Z][\w]*[!?=]?/, "constructor.identifier"], + [/\$[\w]*/, "global.constant"], + [/@[\w]*/, "namespace.instance.identifier"], + [/@@@[\w]*/, "namespace.class.identifier"], + [/<<[-~](@heredelim).*/, { token: "string.heredoc.delimiter", next: "@heredoc.$1" }], + [/[ \t\r\n]+<<(@heredelim).*/, { token: "string.heredoc.delimiter", next: "@heredoc.$1" }], + [/^<<(@heredelim).*/, { token: "string.heredoc.delimiter", next: "@heredoc.$1" }], + { include: "@whitespace" }, + [/"/, { token: "string.d.delim", next: '@dstring.d."' }], + [/'/, { token: "string.sq.delim", next: "@sstring.sq" }], + [/%([rsqxwW]|Q?)/, { token: "@rematch", next: "pstring" }], + [/`/, { token: "string.x.delim", next: "@dstring.x.`" }], + [/:(\w|[$@])\w*[!?=]?/, "string.s"], + [/:"/, { token: "string.s.delim", next: '@dstring.s."' }], + [/:'/, { token: "string.s.delim", next: "@sstring.s" }], + [/\/(?=(\\\/|[^\/\n])+\/)/, { token: "regexp.delim", next: "@regexp" }], + [/[{}()\[\]]/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@keywordops": "keyword", + "@operators": "operator", + "@default": "" + } + } + ], + [/[;,]/, "delimiter"], + [/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/, "number.hex"], + [/0[_oO][0-7](_?[0-7])*/, "number.octal"], + [/0[bB][01](_?[01])*/, "number.binary"], + [/0[dD]@decpart/, "number"], + [ + /@decimal((\.@decpart)?([eE][\-+]?@decpart)?)/, + { + cases: { + $1: "number.float", + "@default": "number" + } + } + ] + ], + dodecl: [ + [/^/, { token: "", switchTo: "@root.$S2" }], + [ + /[a-z_]\w*[!?=]?/, + { + cases: { + end: { token: "keyword.$S2", next: "@pop" }, + do: { token: "keyword", switchTo: "@root.$S2" }, + "@linedecls": { + token: "@rematch", + switchTo: "@root.$S2" + }, + "@keywords": "keyword", + "@builtins": "predefined", + "@default": "identifier" + } + } + ], + { include: "@root" } + ], + modifier: [ + [/^/, "", "@pop"], + [ + /[a-z_]\w*[!?=]?/, + { + cases: { + end: { token: "keyword.$S2", next: "@pop" }, + "then|else|elsif|do": { + token: "keyword", + switchTo: "@root.$S2" + }, + "@linedecls": { + token: "@rematch", + switchTo: "@root.$S2" + }, + "@keywords": "keyword", + "@builtins": "predefined", + "@default": "identifier" + } + } + ], + { include: "@root" } + ], + sstring: [ + [/[^\\']+/, "string.$S2"], + [/\\\\|\\'|\\$/, "string.$S2.escape"], + [/\\./, "string.$S2.invalid"], + [/'/, { token: "string.$S2.delim", next: "@pop" }] + ], + dstring: [ + [/[^\\`"#]+/, "string.$S2"], + [/#/, "string.$S2.escape", "@interpolated"], + [/\\$/, "string.$S2.escape"], + [/@escapes/, "string.$S2.escape"], + [/\\./, "string.$S2.escape.invalid"], + [ + /[`"]/, + { + cases: { + "$#==$S3": { token: "string.$S2.delim", next: "@pop" }, + "@default": "string.$S2" + } + } + ] + ], + heredoc: [ + [ + /^(\s*)(@heredelim)$/, + { + cases: { + "$2==$S2": ["string.heredoc", { token: "string.heredoc.delimiter", next: "@pop" }], + "@default": ["string.heredoc", "string.heredoc"] + } + } + ], + [/.*/, "string.heredoc"] + ], + interpolated: [ + [/\$\w*/, "global.constant", "@pop"], + [/@\w*/, "namespace.class.identifier", "@pop"], + [/@@@\w*/, "namespace.instance.identifier", "@pop"], + [ + /[{]/, + { + token: "string.escape.curly", + switchTo: "@interpolated_compound" + } + ], + ["", "", "@pop"] + ], + interpolated_compound: [ + [/[}]/, { token: "string.escape.curly", next: "@pop" }], + { include: "@root" } + ], + pregexp: [ + { include: "@whitespace" }, + [ + /[^\(\{\[\\]/, + { + cases: { + "$#==$S3": { token: "regexp.delim", next: "@pop" }, + "$#==$S2": { token: "regexp.delim", next: "@push" }, + "~[)}\\]]": "@brackets.regexp.escape.control", + "~@regexpctl": "regexp.escape.control", + "@default": "regexp" + } + } + ], + { include: "@regexcontrol" } + ], + regexp: [ + { include: "@regexcontrol" }, + [/[^\\\/]/, "regexp"], + ["/[ixmp]*", { token: "regexp.delim" }, "@pop"] + ], + regexcontrol: [ + [ + /(\{)(\d+(?:,\d*)?)(\})/, + [ + "@brackets.regexp.escape.control", + "regexp.escape.control", + "@brackets.regexp.escape.control" + ] + ], + [ + /(\[)(\^?)/, + ["@brackets.regexp.escape.control", { token: "regexp.escape.control", next: "@regexrange" }] + ], + [/(\()(\?[:=!])/, ["@brackets.regexp.escape.control", "regexp.escape.control"]], + [/\(\?#/, { token: "regexp.escape.control", next: "@regexpcomment" }], + [/[()]/, "@brackets.regexp.escape.control"], + [/@regexpctl/, "regexp.escape.control"], + [/\\$/, "regexp.escape"], + [/@regexpesc/, "regexp.escape"], + [/\\\./, "regexp.invalid"], + [/#/, "regexp.escape", "@interpolated"] + ], + regexrange: [ + [/-/, "regexp.escape.control"], + [/\^/, "regexp.invalid"], + [/\\$/, "regexp.escape"], + [/@regexpesc/, "regexp.escape"], + [/[^\]]/, "regexp"], + [/\]/, "@brackets.regexp.escape.control", "@pop"] + ], + regexpcomment: [ + [/[^)]+/, "comment"], + [/\)/, { token: "regexp.escape.control", next: "@pop" }] + ], + pstring: [ + [/%([qws])\(/, { token: "string.$1.delim", switchTo: "@qstring.$1.(.)" }], + [/%([qws])\[/, { token: "string.$1.delim", switchTo: "@qstring.$1.[.]" }], + [/%([qws])\{/, { token: "string.$1.delim", switchTo: "@qstring.$1.{.}" }], + [/%([qws])</, { token: "string.$1.delim", switchTo: "@qstring.$1.<.>" }], + [/%([qws])(@delim)/, { token: "string.$1.delim", switchTo: "@qstring.$1.$2.$2" }], + [/%r\(/, { token: "regexp.delim", switchTo: "@pregexp.(.)" }], + [/%r\[/, { token: "regexp.delim", switchTo: "@pregexp.[.]" }], + [/%r\{/, { token: "regexp.delim", switchTo: "@pregexp.{.}" }], + [/%r</, { token: "regexp.delim", switchTo: "@pregexp.<.>" }], + [/%r(@delim)/, { token: "regexp.delim", switchTo: "@pregexp.$1.$1" }], + [/%(x|W|Q?)\(/, { token: "string.$1.delim", switchTo: "@qqstring.$1.(.)" }], + [/%(x|W|Q?)\[/, { token: "string.$1.delim", switchTo: "@qqstring.$1.[.]" }], + [/%(x|W|Q?)\{/, { token: "string.$1.delim", switchTo: "@qqstring.$1.{.}" }], + [/%(x|W|Q?)</, { token: "string.$1.delim", switchTo: "@qqstring.$1.<.>" }], + [/%(x|W|Q?)(@delim)/, { token: "string.$1.delim", switchTo: "@qqstring.$1.$2.$2" }], + [/%([rqwsxW]|Q?)./, { token: "invalid", next: "@pop" }], + [/./, { token: "invalid", next: "@pop" }] + ], + qstring: [ + [/\\$/, "string.$S2.escape"], + [/\\./, "string.$S2.escape"], + [ + /./, + { + cases: { + "$#==$S4": { token: "string.$S2.delim", next: "@pop" }, + "$#==$S3": { token: "string.$S2.delim", next: "@push" }, + "@default": "string.$S2" + } + } + ] + ], + qqstring: [[/#/, "string.$S2.escape", "@interpolated"], { include: "@qstring" }], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/^\s*=begin\b/, "comment", "@comment"], + [/#.*$/, "comment"] + ], + comment: [ + [/[^=]+/, "comment"], + [/^\s*=begin\b/, "comment.invalid"], + [/^\s*=end\b.*/, "comment", "@pop"], + [/[=]/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/9701.b0601203.js b/assets/js/9701.b0601203.js new file mode 100644 index 00000000000..2d2beba0418 --- /dev/null +++ b/assets/js/9701.b0601203.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9701],{19701:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>a,contentTitle:()=>d,default:()=>l,frontMatter:()=>s,metadata:()=>n,toc:()=>u});var i=o(87462),r=(o(67294),o(3905));o(45475);const s={title:"Editors",description:"Detailed guides, tips, and resources on how to integrate Flow with different code editors.",slug:"/editors"},d=void 0,n={unversionedId:"editors/index",id:"editors/index",title:"Editors",description:"Detailed guides, tips, and resources on how to integrate Flow with different code editors.",source:"@site/docs/editors/index.md",sourceDirName:"editors",slug:"/editors",permalink:"/en/docs/editors",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/editors/index.md",tags:[],version:"current",frontMatter:{title:"Editors",description:"Detailed guides, tips, and resources on how to integrate Flow with different code editors.",slug:"/editors"},sidebar:"docsSidebar",previous:{title:"flow-remove-types",permalink:"/en/docs/tools/flow-remove-types"},next:{title:"Visual Studio Code",permalink:"/en/docs/editors/vscode"}},a={},u=[],c={toc:u};function l(e){let{components:t,...o}=e;return(0,r.mdx)("wrapper",(0,i.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"You can benefit from having Flow run as you develop by integrating into your editor."),(0,r.mdx)("p",null,"Editor plugins are provided and maintained by the community. If you have trouble configuring or using a specific plugin for your IDE, please visit the project's repo or search for a community provided answer."))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/972.de4b56d9.js b/assets/js/972.de4b56d9.js new file mode 100644 index 00000000000..75a167983af --- /dev/null +++ b/assets/js/972.de4b56d9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[972],{30972:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>l});var a=t(87462),i=(t(67294),t(3905));t(45475);const o={title:"Subsets & Subtypes",slug:"/lang/subtypes"},s=void 0,p={unversionedId:"lang/subtypes",id:"lang/subtypes",title:"Subsets & Subtypes",description:"What is a subtype?",source:"@site/docs/lang/subtypes.md",sourceDirName:"lang",slug:"/lang/subtypes",permalink:"/en/docs/lang/subtypes",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/subtypes.md",tags:[],version:"current",frontMatter:{title:"Subsets & Subtypes",slug:"/lang/subtypes"},sidebar:"docsSidebar",previous:{title:"Variable Declarations",permalink:"/en/docs/lang/variables"},next:{title:"Type Hierarchy",permalink:"/en/docs/lang/type-hierarchy"}},r={},l=[{value:"What is a subtype?",id:"toc-what-is-a-subtype",level:2},{value:"When are subtypes used?",id:"toc-when-are-subtypes-used",level:2},{value:"Subtypes of complex types",id:"toc-subtypes-of-complex-types",level:2},{value:"Subtypes of objects",id:"toc-subtypes-of-objects",level:3},{value:"Subtypes of functions",id:"toc-subtypes-of-functions",level:3}],m={toc:l};function d(e){let{components:n,...t}=e;return(0,i.mdx)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("h2",{id:"toc-what-is-a-subtype"},"What is a subtype?"),(0,i.mdx)("p",null,"A type like ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),", ",(0,i.mdx)("inlineCode",{parentName:"p"},"boolean"),", or ",(0,i.mdx)("inlineCode",{parentName:"p"},"string")," describes a set of possible\nvalues. A ",(0,i.mdx)("inlineCode",{parentName:"p"},"number")," describes every possible number, so a single number\n(such as ",(0,i.mdx)("inlineCode",{parentName:"p"},"42"),") would be a ",(0,i.mdx)("em",{parentName:"p"},"subtype")," of the ",(0,i.mdx)("inlineCode",{parentName:"p"},"number")," type. Conversely, ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),"\nwould be a ",(0,i.mdx)("em",{parentName:"p"},"supertype")," of the type ",(0,i.mdx)("inlineCode",{parentName:"p"},"42"),"."),(0,i.mdx)("p",null,"If we want to know whether one type is the subtype of another, we need to look at\nall the possible values for both types and figure out if the other has a\n",(0,i.mdx)("em",{parentName:"p"},"subset")," of the values."),(0,i.mdx)("p",null,"For example, if we had a ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeA")," which described the numbers 1 through 3\n(a ",(0,i.mdx)("a",{parentName:"p",href:"../../types/unions"},"union")," of ",(0,i.mdx)("a",{parentName:"p",href:"../../types/literals"},"literal types"),"), and\na ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeB")," which described the numbers 1 through 5: ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeA")," would be considered\na ",(0,i.mdx)("em",{parentName:"p"},"subtype")," of ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeB"),", because ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeA")," is a subset of ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeB"),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type TypeA = 1 | 2 | 3;\ntype TypeB = 1 | 2 | 3 | 4 | 5;\n")),(0,i.mdx)("p",null,"Consider a ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeLetters"),' which described the strings: "A", "B", "C", and a\n',(0,i.mdx)("inlineCode",{parentName:"p"},"TypeNumbers")," which described the numbers: 1, 2, 3. Neither of them would\nbe a subtype of the other, as they each contain a completely different set of\nvalues."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'type TypeLetters = "A" | "B" | "C";\ntype TypeNumbers = 1 | 2 | 3;\n')),(0,i.mdx)("p",null,"Finally, if we had a ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeA")," which described the numbers 1 through 3, and a\n",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeB")," which described the numbers 3 through 5. Neither of them would be a\nsubtype of the other. Even though they both have 3 and describe numbers, they\neach have some unique items."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type TypeA = 1 | 2 | 3;\ntype TypeB = 3 | 4 | 5;\n")),(0,i.mdx)("h2",{id:"toc-when-are-subtypes-used"},"When are subtypes used?"),(0,i.mdx)("p",null,"Most of the work that Flow does is comparing types against one another."),(0,i.mdx)("p",null,"For example, in order to know if you are calling a function correctly, Flow\nneeds to compare the arguments you are passing with the parameters the\nfunction expects."),(0,i.mdx)("p",null,"This often means figuring out if the value you are passing in is a subtype of\nthe value you are expecting."),(0,i.mdx)("p",null,"So if you write a function that expects the numbers 1 through 5, any subtype of\nthat set will be acceptable."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":3,"endLine":9,"endColumn":11,"description":"Cannot call `f` with `fiveOrSix` bound to `param` because number literal `6` [1] is incompatible with literal union [2]. [incompatible-call]"}]','[{"startLine":9,"startColumn":3,"endLine":9,"endColumn":11,"description":"Cannot':!0,call:!0,"`f`":!0,with:!0,"`fiveOrSix`":!0,bound:!0,to:!0,"`param`":!0,because:!0,number:!0,literal:!0,"`6`":!0,"[1]":!0,is:!0,incompatible:!0,union:!0,"[2].":!0,'[incompatible-call]"}]':!0},"function f(param: 1 | 2 | 3 | 4 | 5) {\n // ...\n}\n\ndeclare const oneOrTwo: 1 | 2; // Subset of the input parameters type.\ndeclare const fiveOrSix: 5 | 6; // Not a subset of the input parameters type.\n\nf(oneOrTwo); // Works!\nf(fiveOrSix); // Error!\n")),(0,i.mdx)("h2",{id:"toc-subtypes-of-complex-types"},"Subtypes of complex types"),(0,i.mdx)("p",null,"Flow needs to compare more than just sets of primitive values, it also needs to\nbe able to compare objects, functions, and every other type that appears in the\nlanguage."),(0,i.mdx)("h3",{id:"toc-subtypes-of-objects"},"Subtypes of objects"),(0,i.mdx)("p",null,"You can start to compare two objects by their keys. If one object contains all\nthe keys of another object, then it may be a subtype."),(0,i.mdx)("p",null,"For example, if we had an ",(0,i.mdx)("inlineCode",{parentName:"p"},"ObjectA")," which contained the key ",(0,i.mdx)("inlineCode",{parentName:"p"},"foo"),", and an\n",(0,i.mdx)("inlineCode",{parentName:"p"},"ObjectB")," which contained the keys ",(0,i.mdx)("inlineCode",{parentName:"p"},"foo")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"bar"),". Then it's possible that\n",(0,i.mdx)("inlineCode",{parentName:"p"},"ObjectB")," is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"ObjectA"),", if ",(0,i.mdx)("inlineCode",{parentName:"p"},"ObjectA")," is inexact."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type ObjectA = {foo: string, ...};\ntype ObjectB = {foo: string, bar: number};\n\nlet objectB: ObjectB = {foo: 'test', bar: 42};\nlet objectA: ObjectA = objectB; // Works!\n")),(0,i.mdx)("p",null,"But we also need to compare the types of the values. If both objects had a key\n",(0,i.mdx)("inlineCode",{parentName:"p"},"foo")," but one was a ",(0,i.mdx)("inlineCode",{parentName:"p"},"number")," and the other was a ",(0,i.mdx)("inlineCode",{parentName:"p"},"string"),", then one would not\nbe the subtype of the other."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":24,"endLine":5,"endColumn":30,"description":"Cannot assign `objectB` to `objectA` because number [1] is incompatible with string [2] in property `foo`. [incompatible-type]"}]','[{"startLine":5,"startColumn":24,"endLine":5,"endColumn":30,"description":"Cannot':!0,assign:!0,"`objectB`":!0,to:!0,"`objectA`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,string:!0,"[2]":!0,in:!0,property:!0,"`foo`.":!0,'[incompatible-type]"}]':!0},"type ObjectA = {foo: string, ...};\ntype ObjectB = {foo: number, bar: number};\n\nlet objectB: ObjectB = { foo: 1, bar: 2 };\nlet objectA: ObjectA = objectB; // Error!\n")),(0,i.mdx)("p",null,"If these values on the object happen to be other objects, we would have to\ncompare those against one another. We need to compare every value\nrecursively until we can decide if we have a subtype or not."),(0,i.mdx)("h3",{id:"toc-subtypes-of-functions"},"Subtypes of functions"),(0,i.mdx)("p",null,"Subtyping rules for functions are more complicated. So far, we've seen that ",(0,i.mdx)("inlineCode",{parentName:"p"},"A"),"\nis a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"B")," if ",(0,i.mdx)("inlineCode",{parentName:"p"},"B")," contains all possible values for ",(0,i.mdx)("inlineCode",{parentName:"p"},"A"),". For functions,\nit's not clear how this relationship would apply. To simplify things, you can think\nof a function type ",(0,i.mdx)("inlineCode",{parentName:"p"},"A")," as being a subtype of a function type ",(0,i.mdx)("inlineCode",{parentName:"p"},"B")," if functions of type\n",(0,i.mdx)("inlineCode",{parentName:"p"},"A")," can be used wherever a function of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"B")," is expected."),(0,i.mdx)("p",null,"Let's say we have a function type and a few functions. Which of the functions can\nbe used safely in code that expects the given function type?"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":2,"endLine":7,"endColumn":3,"description":"Cannot cast `f1` to `FuncType` because string literal `C` [1] is incompatible with literal union [2] in the return value. [incompatible-cast]"},{"startLine":8,"startColumn":2,"endLine":8,"endColumn":3,"description":"Cannot cast `f2` to `FuncType` because literal union [1] is incompatible with number literal `2` [2] in the first parameter. [incompatible-cast]"}]','[{"startLine":7,"startColumn":2,"endLine":7,"endColumn":3,"description":"Cannot':!0,cast:!0,"`f1`":!0,to:!0,"`FuncType`":!0,because:!0,string:!0,literal:!0,"`C`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,union:!0,"[2]":!0,in:!0,the:!0,return:!0,"value.":!0,'[incompatible-cast]"},{"startLine":8,"startColumn":2,"endLine":8,"endColumn":3,"description":"Cannot':!0,"`f2`":!0,number:!0,"`2`":!0,first:!0,"parameter.":!0,'[incompatible-cast]"}]':!0},'type FuncType = (1 | 2) => "A" | "B";\n\ndeclare function f1(1 | 2): "A" | "B" | "C";\ndeclare function f2(1 | null): "A" | "B";\ndeclare function f3(1 | 2 | 3): "A";\n\n(f1: FuncType); // Error\n(f2: FuncType); // Error\n(f3: FuncType); // Works!\n')),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"f1")," can return a value that ",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType")," never does, so code that relies on ",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType"),"\nmight not be safe if ",(0,i.mdx)("inlineCode",{parentName:"li"},"f1")," is used. Its type is not a subtype of ",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType"),"."),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"f2")," can't handle all the argument values that ",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType")," does, so code that relies on\n",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType")," can't safely use ",(0,i.mdx)("inlineCode",{parentName:"li"},"f2"),". Its type is also not a subtype of ",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType"),"."),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"f3")," can accept all the argument values that ",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType")," does, and only returns\nvalues that ",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType")," does, so its type is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType"),".")),(0,i.mdx)("p",null,"In general, the function subtyping rule is this: a function type ",(0,i.mdx)("inlineCode",{parentName:"p"},"B")," is a subtype\nof a function type ",(0,i.mdx)("inlineCode",{parentName:"p"},"A")," if and only if ",(0,i.mdx)("inlineCode",{parentName:"p"},"B"),"'s inputs are a superset of ",(0,i.mdx)("inlineCode",{parentName:"p"},"A"),"'s, and ",(0,i.mdx)("inlineCode",{parentName:"p"},"B"),"'s outputs\nare a subset of ",(0,i.mdx)("inlineCode",{parentName:"p"},"A"),"'s. The subtype must accept ",(0,i.mdx)("em",{parentName:"p"},"at least")," the same inputs as its parent,\nand must return ",(0,i.mdx)("em",{parentName:"p"},"at most")," the same outputs."),(0,i.mdx)("p",null,"The decision of which direction to apply the subtyping rule on inputs and outputs is\ngoverned by ",(0,i.mdx)("a",{parentName:"p",href:"../variance"},"variance"),", which is the topic of the next section."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9837.a4f6fb00.js b/assets/js/9837.a4f6fb00.js new file mode 100644 index 00000000000..399513dfe75 --- /dev/null +++ b/assets/js/9837.a4f6fb00.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9837],{29837:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>r,toc:()=>p});var a=t(87462),s=(t(67294),t(3905));t(45475);const o={title:"Type Casting Expressions",slug:"/types/casting"},i=void 0,r={unversionedId:"types/casting",id:"types/casting",title:"Type Casting Expressions",description:"Sometimes it is useful to assert a type without using something like a function",source:"@site/docs/types/casting.md",sourceDirName:"types",slug:"/types/casting",permalink:"/en/docs/types/casting",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/casting.md",tags:[],version:"current",frontMatter:{title:"Type Casting Expressions",slug:"/types/casting"},sidebar:"docsSidebar",previous:{title:"Typeof Types",permalink:"/en/docs/types/typeof"},next:{title:"Utility Types",permalink:"/en/docs/types/utilities"}},l={},p=[{value:"Type Cast Expression Syntax",id:"toc-type-cast-expression-syntax",level:2},{value:"Type Assertions",id:"toc-type-assertions",level:2},{value:"Type Casting",id:"toc-type-casting",level:2},{value:"Using type cast expressions",id:"toc-using-type-cast-expressions",level:2},{value:"Type Casting through any",id:"toc-type-casting-through-any",level:3}],u={toc:p};function c(e){let{components:n,...t}=e;return(0,s.mdx)("wrapper",(0,a.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Sometimes it is useful to assert a type without using something like a function\nor a variable to do so. For this Flow supports an inline type cast expression\nsyntax which can be used in a number of different ways."),(0,s.mdx)("h2",{id:"toc-type-cast-expression-syntax"},"Type Cast Expression Syntax"),(0,s.mdx)("p",null,"In order to create a type cast expression around a ",(0,s.mdx)("inlineCode",{parentName:"p"},"value"),", add a colon ",(0,s.mdx)("inlineCode",{parentName:"p"},":"),"\nwith the ",(0,s.mdx)("inlineCode",{parentName:"p"},"Type")," and wrap the expression with parentheses ",(0,s.mdx)("inlineCode",{parentName:"p"},"(")," ",(0,s.mdx)("inlineCode",{parentName:"p"},")"),"."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"(value: Type)\n")),(0,s.mdx)("blockquote",null,(0,s.mdx)("p",{parentName:"blockquote"},(0,s.mdx)("strong",{parentName:"p"},"Note:")," The parentheses are necessary to avoid ambiguity with other syntax.")),(0,s.mdx)("p",null,"Type cast expressions can appear anywhere an expression can appear."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"let val = (value: Type);\nlet obj = { prop: (value: Type) };\nlet arr = ([(value: Type), (value: Type)]: Array<Type>);\n")),(0,s.mdx)("p",null,"The value itself can also be an expression:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"(2 + 2: number);\n")),(0,s.mdx)("p",null,"When you strip the types all that is left is the value."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"(value: Type);\n")),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"value;\n")),(0,s.mdx)("h2",{id:"toc-type-assertions"},"Type Assertions"),(0,s.mdx)("p",null,"Using type cast expressions you can assert that values are certain types."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":2,"endLine":5,"endColumn":6,"description":"Cannot cast `value` to string because number [1] is incompatible with string [2]. [incompatible-cast]"}]','[{"startLine":5,"startColumn":2,"endLine":5,"endColumn":6,"description":"Cannot':!0,cast:!0,"`value`":!0,to:!0,string:!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"let value = 42;\n\n(value: 42); // Works!\n(value: number); // Works!\n(value: string); // Error!\n")),(0,s.mdx)("p",null,"Asserting types in this way works the same as types do anywhere else."),(0,s.mdx)("h2",{id:"toc-type-casting"},"Type Casting"),(0,s.mdx)("p",null,"When you write a type cast expression, the result of that expression is the\nvalue with the provided type. If you hold onto the resulting value, it will\nhave the new type."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":8,"startColumn":2,"endLine":8,"endColumn":9,"description":"Cannot cast `newValue` to number literal `42` because number [1] is incompatible with number literal `42` [2]. [incompatible-cast]"}]','[{"startLine":8,"startColumn":2,"endLine":8,"endColumn":9,"description":"Cannot':!0,cast:!0,"`newValue`":!0,to:!0,number:!0,literal:!0,"`42`":!0,because:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"let value = 42;\n\n(value: 42); // Works!\n(value: number); // Works!\n\nlet newValue = (value: number);\n\n(newValue: 42); // Error!\n(newValue: number); // Works!\n")),(0,s.mdx)("h2",{id:"toc-using-type-cast-expressions"},"Using type cast expressions"),(0,s.mdx)("blockquote",null,(0,s.mdx)("p",{parentName:"blockquote"},(0,s.mdx)("strong",{parentName:"p"},"Note:")," We're going to go through a stripped down example for\ndemonstrating how to make use of type cast expressions. This example is not\nsolved well in practice.")),(0,s.mdx)("h3",{id:"toc-type-casting-through-any"},"Type Casting through any"),(0,s.mdx)("p",null,"Because type casts work the same as all other type annotations, you can only\ncast values to less specific types. You cannot change the type or make it\nsomething more specific."),(0,s.mdx)("p",null,"But you can use ",(0,s.mdx)("a",{parentName:"p",href:"../any"},"any")," to cast to whatever type you want."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":2,"endLine":4,"endColumn":6,"description":"Cannot cast `value` to string because number [1] is incompatible with string [2]. [incompatible-cast]"},{"startLine":8,"startColumn":2,"endLine":8,"endColumn":9,"description":"Cannot cast `newValue` to number because string [1] is incompatible with number [2]. [incompatible-cast]"}]','[{"startLine":4,"startColumn":2,"endLine":4,"endColumn":6,"description":"Cannot':!0,cast:!0,"`value`":!0,to:!0,string:!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"},{"startLine":8,"startColumn":2,"endLine":8,"endColumn":9,"description":"Cannot':!0,"`newValue`":!0,'[incompatible-cast]"}]':!0},"let value = 42;\n\n(value: number); // Works!\n(value: string); // Error!\n\nlet newValue = ((value: any): string);\n\n(newValue: number); // Error!\n(newValue: string); // Works!\n")),(0,s.mdx)("p",null,"By casting the value to any, you can then cast to whatever you want."),(0,s.mdx)("p",null,"This is unsafe and not recommended. But it's sometimes useful when you are\ndoing something with a value which is very difficult or impossible to type and\nwant to make sure that the result has the desired type."),(0,s.mdx)("p",null,"For example, the following function for cloning an object."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function cloneObject(obj: any) {\n const clone: {[string]: mixed} = {};\n\n Object.keys(obj).forEach(key => {\n clone[key] = obj[key];\n });\n\n return clone;\n}\n")),(0,s.mdx)("p",null,"It would be hard to create a type for this because we're creating a new object\nbased on another object."),(0,s.mdx)("p",null,"If we cast through any, we can return a type which is more useful."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function cloneObject<T: {+[key: string]: mixed }>(obj: T): T {\n const clone: {[string]: mixed} = {};\n\n Object.keys(obj).forEach(key => {\n clone[key] = obj[key];\n });\n\n return ((clone: any): T);\n}\n\nconst clone = cloneObject({\n foo: 1,\n bar: true,\n baz: 'three'\n});\n\n(clone.foo: 1); // Works!\n(clone.bar: true); // Works!\n(clone.baz: 'three'); // Works!\n")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9850.0f22bc6f.js b/assets/js/9850.0f22bc6f.js new file mode 100644 index 00000000000..3a8fa93564e --- /dev/null +++ b/assets/js/9850.0f22bc6f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9850],{79850:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>c,frontMatter:()=>r,metadata:()=>p,toc:()=>l});var n=a(87462),s=(a(67294),a(3905));const r={title:"Announcing Typecasts","short-title":"Typecasts",author:"Basil Hosmer",hide_table_of_contents:!0},o=void 0,p={permalink:"/blog/2015/02/18/Typecasts",source:"@site/blog/2015-02-18-Typecasts.md",title:"Announcing Typecasts",description:"As of version 0.3.0, Flow supports typecast expression.",date:"2015-02-18T00:00:00.000Z",formattedDate:"February 18, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Basil Hosmer"}],frontMatter:{title:"Announcing Typecasts","short-title":"Typecasts",author:"Basil Hosmer",hide_table_of_contents:!0},prevItem:{title:"Announcing Import Type",permalink:"/blog/2015/02/18/Import-Types"}},i={authorsImageUrls:[void 0]},l=[],m={toc:l};function c(e){let{components:t,...a}=e;return(0,s.mdx)("wrapper",(0,n.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"As of version 0.3.0, Flow supports typecast expression."),(0,s.mdx)("p",null,"A typecast expression is a simple way to type-annotate any JavaScript expression. Here are some examples of typecasts:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"(1 + 1 : number);\nvar a = { name: (null: ?string) };\n([1, 'a', true]: Array<mixed>).map(fn);\n")),(0,s.mdx)("p",null,"For any JavaScript expression ",(0,s.mdx)("inlineCode",{parentName:"p"},"<expr>")," and any Flow type ",(0,s.mdx)("inlineCode",{parentName:"p"},"<type>"),", you can write"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"(<expr> : <type>)\n")),(0,s.mdx)("p",null,(0,s.mdx)("strong",{parentName:"p"},"Note:")," the parentheses are necessary."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9907.6f8b4686.js b/assets/js/9907.6f8b4686.js new file mode 100644 index 00000000000..fbafa88686b --- /dev/null +++ b/assets/js/9907.6f8b4686.js @@ -0,0 +1,383 @@ +"use strict"; +exports.id = 9907; +exports.ids = [9907]; +exports.modules = { + +/***/ 39907: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/vb/vb.ts +var conf = { + comments: { + lineComment: "'", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["<", ">"], + ["addhandler", "end addhandler"], + ["class", "end class"], + ["enum", "end enum"], + ["event", "end event"], + ["function", "end function"], + ["get", "end get"], + ["if", "end if"], + ["interface", "end interface"], + ["module", "end module"], + ["namespace", "end namespace"], + ["operator", "end operator"], + ["property", "end property"], + ["raiseevent", "end raiseevent"], + ["removehandler", "end removehandler"], + ["select", "end select"], + ["set", "end set"], + ["structure", "end structure"], + ["sub", "end sub"], + ["synclock", "end synclock"], + ["try", "end try"], + ["while", "end while"], + ["with", "end with"], + ["using", "end using"], + ["do", "loop"], + ["for", "next"] + ], + autoClosingPairs: [ + { open: "{", close: "}", notIn: ["string", "comment"] }, + { open: "[", close: "]", notIn: ["string", "comment"] }, + { open: "(", close: ")", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string", "comment"] }, + { open: "<", close: ">", notIn: ["string", "comment"] } + ], + folding: { + markers: { + start: new RegExp("^\\s*#Region\\b"), + end: new RegExp("^\\s*#End Region\\b") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".vb", + ignoreCase: true, + brackets: [ + { token: "delimiter.bracket", open: "{", close: "}" }, + { token: "delimiter.array", open: "[", close: "]" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.angle", open: "<", close: ">" }, + { + token: "keyword.tag-addhandler", + open: "addhandler", + close: "end addhandler" + }, + { token: "keyword.tag-class", open: "class", close: "end class" }, + { token: "keyword.tag-enum", open: "enum", close: "end enum" }, + { token: "keyword.tag-event", open: "event", close: "end event" }, + { + token: "keyword.tag-function", + open: "function", + close: "end function" + }, + { token: "keyword.tag-get", open: "get", close: "end get" }, + { token: "keyword.tag-if", open: "if", close: "end if" }, + { + token: "keyword.tag-interface", + open: "interface", + close: "end interface" + }, + { token: "keyword.tag-module", open: "module", close: "end module" }, + { + token: "keyword.tag-namespace", + open: "namespace", + close: "end namespace" + }, + { + token: "keyword.tag-operator", + open: "operator", + close: "end operator" + }, + { + token: "keyword.tag-property", + open: "property", + close: "end property" + }, + { + token: "keyword.tag-raiseevent", + open: "raiseevent", + close: "end raiseevent" + }, + { + token: "keyword.tag-removehandler", + open: "removehandler", + close: "end removehandler" + }, + { token: "keyword.tag-select", open: "select", close: "end select" }, + { token: "keyword.tag-set", open: "set", close: "end set" }, + { + token: "keyword.tag-structure", + open: "structure", + close: "end structure" + }, + { token: "keyword.tag-sub", open: "sub", close: "end sub" }, + { + token: "keyword.tag-synclock", + open: "synclock", + close: "end synclock" + }, + { token: "keyword.tag-try", open: "try", close: "end try" }, + { token: "keyword.tag-while", open: "while", close: "end while" }, + { token: "keyword.tag-with", open: "with", close: "end with" }, + { token: "keyword.tag-using", open: "using", close: "end using" }, + { token: "keyword.tag-do", open: "do", close: "loop" }, + { token: "keyword.tag-for", open: "for", close: "next" } + ], + keywords: [ + "AddHandler", + "AddressOf", + "Alias", + "And", + "AndAlso", + "As", + "Async", + "Boolean", + "ByRef", + "Byte", + "ByVal", + "Call", + "Case", + "Catch", + "CBool", + "CByte", + "CChar", + "CDate", + "CDbl", + "CDec", + "Char", + "CInt", + "Class", + "CLng", + "CObj", + "Const", + "Continue", + "CSByte", + "CShort", + "CSng", + "CStr", + "CType", + "CUInt", + "CULng", + "CUShort", + "Date", + "Decimal", + "Declare", + "Default", + "Delegate", + "Dim", + "DirectCast", + "Do", + "Double", + "Each", + "Else", + "ElseIf", + "End", + "EndIf", + "Enum", + "Erase", + "Error", + "Event", + "Exit", + "False", + "Finally", + "For", + "Friend", + "Function", + "Get", + "GetType", + "GetXMLNamespace", + "Global", + "GoSub", + "GoTo", + "Handles", + "If", + "Implements", + "Imports", + "In", + "Inherits", + "Integer", + "Interface", + "Is", + "IsNot", + "Let", + "Lib", + "Like", + "Long", + "Loop", + "Me", + "Mod", + "Module", + "MustInherit", + "MustOverride", + "MyBase", + "MyClass", + "NameOf", + "Namespace", + "Narrowing", + "New", + "Next", + "Not", + "Nothing", + "NotInheritable", + "NotOverridable", + "Object", + "Of", + "On", + "Operator", + "Option", + "Optional", + "Or", + "OrElse", + "Out", + "Overloads", + "Overridable", + "Overrides", + "ParamArray", + "Partial", + "Private", + "Property", + "Protected", + "Public", + "RaiseEvent", + "ReadOnly", + "ReDim", + "RemoveHandler", + "Resume", + "Return", + "SByte", + "Select", + "Set", + "Shadows", + "Shared", + "Short", + "Single", + "Static", + "Step", + "Stop", + "String", + "Structure", + "Sub", + "SyncLock", + "Then", + "Throw", + "To", + "True", + "Try", + "TryCast", + "TypeOf", + "UInteger", + "ULong", + "UShort", + "Using", + "Variant", + "Wend", + "When", + "While", + "Widening", + "With", + "WithEvents", + "WriteOnly", + "Xor" + ], + tagwords: [ + "If", + "Sub", + "Select", + "Try", + "Class", + "Enum", + "Function", + "Get", + "Interface", + "Module", + "Namespace", + "Operator", + "Set", + "Structure", + "Using", + "While", + "With", + "Do", + "Loop", + "For", + "Next", + "Property", + "Continue", + "AddHandler", + "RemoveHandler", + "Event", + "RaiseEvent", + "SyncLock" + ], + symbols: /[=><!~?;\.,:&|+\-*\/\^%]+/, + integersuffix: /U?[DI%L&S@]?/, + floatsuffix: /[R#F!]?/, + tokenizer: { + root: [ + { include: "@whitespace" }, + [/next(?!\w)/, { token: "keyword.tag-for" }], + [/loop(?!\w)/, { token: "keyword.tag-do" }], + [ + /end\s+(?!for|do)(addhandler|class|enum|event|function|get|if|interface|module|namespace|operator|property|raiseevent|removehandler|select|set|structure|sub|synclock|try|while|with|using)/, + { token: "keyword.tag-$1" } + ], + [ + /[a-zA-Z_]\w*/, + { + cases: { + "@tagwords": { token: "keyword.tag-$0" }, + "@keywords": { token: "keyword.$0" }, + "@default": "identifier" + } + } + ], + [/^\s*#\w+/, "keyword"], + [/\d*\d+e([\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/\d*\.\d+(e[\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/&H[0-9a-f]+(@integersuffix)/, "number.hex"], + [/&0[0-7]+(@integersuffix)/, "number.octal"], + [/\d+(@integersuffix)/, "number"], + [/#.*#/, "number"], + [/[{}()\[\]]/, "@brackets"], + [/@symbols/, "delimiter"], + [/["\u201c\u201d]/, { token: "string.quote", next: "@string" }] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/(\'|REM(?!\w)).*$/, "comment"] + ], + string: [ + [/[^"\u201c\u201d]+/, "string"], + [/["\u201c\u201d]{2}/, "string.escape"], + [/["\u201c\u201d]C?/, { token: "string.quote", next: "@pop" }] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/9907.ddc37b5f.js b/assets/js/9907.ddc37b5f.js new file mode 100644 index 00000000000..46bf2f8f5ff --- /dev/null +++ b/assets/js/9907.ddc37b5f.js @@ -0,0 +1,2 @@ +/*! For license information please see 9907.ddc37b5f.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9907],{39907:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>o,language:()=>r});var o={comments:{lineComment:"'",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"],["addhandler","end addhandler"],["class","end class"],["enum","end enum"],["event","end event"],["function","end function"],["get","end get"],["if","end if"],["interface","end interface"],["module","end module"],["namespace","end namespace"],["operator","end operator"],["property","end property"],["raiseevent","end raiseevent"],["removehandler","end removehandler"],["select","end select"],["set","end set"],["structure","end structure"],["sub","end sub"],["synclock","end synclock"],["try","end try"],["while","end while"],["with","end with"],["using","end using"],["do","loop"],["for","next"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"<",close:">",notIn:["string","comment"]}],folding:{markers:{start:new RegExp("^\\s*#Region\\b"),end:new RegExp("^\\s*#End Region\\b")}}},r={defaultToken:"",tokenPostfix:".vb",ignoreCase:!0,brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.angle",open:"<",close:">"},{token:"keyword.tag-addhandler",open:"addhandler",close:"end addhandler"},{token:"keyword.tag-class",open:"class",close:"end class"},{token:"keyword.tag-enum",open:"enum",close:"end enum"},{token:"keyword.tag-event",open:"event",close:"end event"},{token:"keyword.tag-function",open:"function",close:"end function"},{token:"keyword.tag-get",open:"get",close:"end get"},{token:"keyword.tag-if",open:"if",close:"end if"},{token:"keyword.tag-interface",open:"interface",close:"end interface"},{token:"keyword.tag-module",open:"module",close:"end module"},{token:"keyword.tag-namespace",open:"namespace",close:"end namespace"},{token:"keyword.tag-operator",open:"operator",close:"end operator"},{token:"keyword.tag-property",open:"property",close:"end property"},{token:"keyword.tag-raiseevent",open:"raiseevent",close:"end raiseevent"},{token:"keyword.tag-removehandler",open:"removehandler",close:"end removehandler"},{token:"keyword.tag-select",open:"select",close:"end select"},{token:"keyword.tag-set",open:"set",close:"end set"},{token:"keyword.tag-structure",open:"structure",close:"end structure"},{token:"keyword.tag-sub",open:"sub",close:"end sub"},{token:"keyword.tag-synclock",open:"synclock",close:"end synclock"},{token:"keyword.tag-try",open:"try",close:"end try"},{token:"keyword.tag-while",open:"while",close:"end while"},{token:"keyword.tag-with",open:"with",close:"end with"},{token:"keyword.tag-using",open:"using",close:"end using"},{token:"keyword.tag-do",open:"do",close:"loop"},{token:"keyword.tag-for",open:"for",close:"next"}],keywords:["AddHandler","AddressOf","Alias","And","AndAlso","As","Async","Boolean","ByRef","Byte","ByVal","Call","Case","Catch","CBool","CByte","CChar","CDate","CDbl","CDec","Char","CInt","Class","CLng","CObj","Const","Continue","CSByte","CShort","CSng","CStr","CType","CUInt","CULng","CUShort","Date","Decimal","Declare","Default","Delegate","Dim","DirectCast","Do","Double","Each","Else","ElseIf","End","EndIf","Enum","Erase","Error","Event","Exit","False","Finally","For","Friend","Function","Get","GetType","GetXMLNamespace","Global","GoSub","GoTo","Handles","If","Implements","Imports","In","Inherits","Integer","Interface","Is","IsNot","Let","Lib","Like","Long","Loop","Me","Mod","Module","MustInherit","MustOverride","MyBase","MyClass","NameOf","Namespace","Narrowing","New","Next","Not","Nothing","NotInheritable","NotOverridable","Object","Of","On","Operator","Option","Optional","Or","OrElse","Out","Overloads","Overridable","Overrides","ParamArray","Partial","Private","Property","Protected","Public","RaiseEvent","ReadOnly","ReDim","RemoveHandler","Resume","Return","SByte","Select","Set","Shadows","Shared","Short","Single","Static","Step","Stop","String","Structure","Sub","SyncLock","Then","Throw","To","True","Try","TryCast","TypeOf","UInteger","ULong","UShort","Using","Variant","Wend","When","While","Widening","With","WithEvents","WriteOnly","Xor"],tagwords:["If","Sub","Select","Try","Class","Enum","Function","Get","Interface","Module","Namespace","Operator","Set","Structure","Using","While","With","Do","Loop","For","Next","Property","Continue","AddHandler","RemoveHandler","Event","RaiseEvent","SyncLock"],symbols:/[=><!~?;\.,:&|+\-*\/\^%]+/,integersuffix:/U?[DI%L&S@]?/,floatsuffix:/[R#F!]?/,tokenizer:{root:[{include:"@whitespace"},[/next(?!\w)/,{token:"keyword.tag-for"}],[/loop(?!\w)/,{token:"keyword.tag-do"}],[/end\s+(?!for|do)(addhandler|class|enum|event|function|get|if|interface|module|namespace|operator|property|raiseevent|removehandler|select|set|structure|sub|synclock|try|while|with|using)/,{token:"keyword.tag-$1"}],[/[a-zA-Z_]\w*/,{cases:{"@tagwords":{token:"keyword.tag-$0"},"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/^\s*#\w+/,"keyword"],[/\d*\d+e([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+(e[\-+]?\d+)?(@floatsuffix)/,"number.float"],[/&H[0-9a-f]+(@integersuffix)/,"number.hex"],[/&0[0-7]+(@integersuffix)/,"number.octal"],[/\d+(@integersuffix)/,"number"],[/#.*#/,"number"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/["\u201c\u201d]/,{token:"string.quote",next:"@string"}]],whitespace:[[/[ \t\r\n]+/,""],[/(\'|REM(?!\w)).*$/,"comment"]],string:[[/[^"\u201c\u201d]+/,"string"],[/["\u201c\u201d]{2}/,"string.escape"],[/["\u201c\u201d]C?/,{token:"string.quote",next:"@pop"}]]}}}}]); \ No newline at end of file diff --git a/assets/js/9907.ddc37b5f.js.LICENSE.txt b/assets/js/9907.ddc37b5f.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/9907.ddc37b5f.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/996.a97ccabb.js b/assets/js/996.a97ccabb.js new file mode 100644 index 00000000000..852f4f73d5b --- /dev/null +++ b/assets/js/996.a97ccabb.js @@ -0,0 +1,2 @@ +/*! For license information please see 996.a97ccabb.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[996],{20996:(e,_,t)=>{t.r(_),t.d(_,{conf:()=>s,language:()=>r});var s={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},r={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ALL","ANALYSE","ANALYZE","AND","ANY","ARRAY","AS","ASC","ASYMMETRIC","AUTHORIZATION","BINARY","BOTH","CASE","CAST","CHECK","COLLATE","COLLATION","COLUMN","CONCURRENTLY","CONSTRAINT","CREATE","CROSS","CURRENT_CATALOG","CURRENT_DATE","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DEFAULT","DEFERRABLE","DESC","DISTINCT","DO","ELSE","END","EXCEPT","FALSE","FETCH","FOR","FOREIGN","FREEZE","FROM","FULL","GRANT","GROUP","HAVING","ILIKE","IN","INITIALLY","INNER","INTERSECT","INTO","IS","ISNULL","JOIN","LATERAL","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","NATURAL","NOT","NOTNULL","NULL","OFFSET","ON","ONLY","OR","ORDER","OUTER","OVERLAPS","PLACING","PRIMARY","REFERENCES","RETURNING","RIGHT","SELECT","SESSION_USER","SIMILAR","SOME","SYMMETRIC","TABLE","TABLESAMPLE","THEN","TO","TRAILING","TRUE","UNION","UNIQUE","USER","USING","VARIADIC","VERBOSE","WHEN","WHERE","WINDOW","WITH"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["abbrev","abs","acldefault","aclexplode","acos","acosd","acosh","age","any","area","array_agg","array_append","array_cat","array_dims","array_fill","array_length","array_lower","array_ndims","array_position","array_positions","array_prepend","array_remove","array_replace","array_to_json","array_to_string","array_to_tsvector","array_upper","ascii","asin","asind","asinh","atan","atan2","atan2d","atand","atanh","avg","bit","bit_and","bit_count","bit_length","bit_or","bit_xor","bool_and","bool_or","bound_box","box","brin_desummarize_range","brin_summarize_new_values","brin_summarize_range","broadcast","btrim","cardinality","cbrt","ceil","ceiling","center","char_length","character_length","chr","circle","clock_timestamp","coalesce","col_description","concat","concat_ws","convert","convert_from","convert_to","corr","cos","cosd","cosh","cot","cotd","count","covar_pop","covar_samp","cume_dist","current_catalog","current_database","current_date","current_query","current_role","current_schema","current_schemas","current_setting","current_time","current_timestamp","current_user","currval","cursor_to_xml","cursor_to_xmlschema","date_bin","date_part","date_trunc","database_to_xml","database_to_xml_and_xmlschema","database_to_xmlschema","decode","degrees","dense_rank","diagonal","diameter","div","encode","enum_first","enum_last","enum_range","every","exp","extract","factorial","family","first_value","floor","format","format_type","gcd","gen_random_uuid","generate_series","generate_subscripts","get_bit","get_byte","get_current_ts_config","gin_clean_pending_list","greatest","grouping","has_any_column_privilege","has_column_privilege","has_database_privilege","has_foreign_data_wrapper_privilege","has_function_privilege","has_language_privilege","has_schema_privilege","has_sequence_privilege","has_server_privilege","has_table_privilege","has_tablespace_privilege","has_type_privilege","height","host","hostmask","inet_client_addr","inet_client_port","inet_merge","inet_same_family","inet_server_addr","inet_server_port","initcap","isclosed","isempty","isfinite","isopen","json_agg","json_array_elements","json_array_elements_text","json_array_length","json_build_array","json_build_object","json_each","json_each_text","json_extract_path","json_extract_path_text","json_object","json_object_agg","json_object_keys","json_populate_record","json_populate_recordset","json_strip_nulls","json_to_record","json_to_recordset","json_to_tsvector","json_typeof","jsonb_agg","jsonb_array_elements","jsonb_array_elements_text","jsonb_array_length","jsonb_build_array","jsonb_build_object","jsonb_each","jsonb_each_text","jsonb_extract_path","jsonb_extract_path_text","jsonb_insert","jsonb_object","jsonb_object_agg","jsonb_object_keys","jsonb_path_exists","jsonb_path_match","jsonb_path_query","jsonb_path_query_array","jsonb_path_exists_tz","jsonb_path_query_first","jsonb_path_query_array_tz","jsonb_path_query_first_tz","jsonb_path_query_tz","jsonb_path_match_tz","jsonb_populate_record","jsonb_populate_recordset","jsonb_pretty","jsonb_set","jsonb_set_lax","jsonb_strip_nulls","jsonb_to_record","jsonb_to_recordset","jsonb_to_tsvector","jsonb_typeof","justify_days","justify_hours","justify_interval","lag","last_value","lastval","lcm","lead","least","left","length","line","ln","localtime","localtimestamp","log","log10","lower","lower_inc","lower_inf","lpad","lseg","ltrim","macaddr8_set7bit","make_date","make_interval","make_time","make_timestamp","make_timestamptz","makeaclitem","masklen","max","md5","min","min_scale","mod","mode","multirange","netmask","network","nextval","normalize","now","npoints","nth_value","ntile","nullif","num_nonnulls","num_nulls","numnode","obj_description","octet_length","overlay","parse_ident","path","pclose","percent_rank","percentile_cont","percentile_disc","pg_advisory_lock","pg_advisory_lock_shared","pg_advisory_unlock","pg_advisory_unlock_all","pg_advisory_unlock_shared","pg_advisory_xact_lock","pg_advisory_xact_lock_shared","pg_backend_pid","pg_backup_start_time","pg_blocking_pids","pg_cancel_backend","pg_client_encoding","pg_collation_actual_version","pg_collation_is_visible","pg_column_compression","pg_column_size","pg_conf_load_time","pg_control_checkpoint","pg_control_init","pg_control_recovery","pg_control_system","pg_conversion_is_visible","pg_copy_logical_replication_slot","pg_copy_physical_replication_slot","pg_create_logical_replication_slot","pg_create_physical_replication_slot","pg_create_restore_point","pg_current_logfile","pg_current_snapshot","pg_current_wal_flush_lsn","pg_current_wal_insert_lsn","pg_current_wal_lsn","pg_current_xact_id","pg_current_xact_id_if_assigned","pg_current_xlog_flush_location","pg_current_xlog_insert_location","pg_current_xlog_location","pg_database_size","pg_describe_object","pg_drop_replication_slot","pg_event_trigger_ddl_commands","pg_event_trigger_dropped_objects","pg_event_trigger_table_rewrite_oid","pg_event_trigger_table_rewrite_reason","pg_export_snapshot","pg_filenode_relation","pg_function_is_visible","pg_get_catalog_foreign_keys","pg_get_constraintdef","pg_get_expr","pg_get_function_arguments","pg_get_function_identity_arguments","pg_get_function_result","pg_get_functiondef","pg_get_indexdef","pg_get_keywords","pg_get_object_address","pg_get_owned_sequence","pg_get_ruledef","pg_get_serial_sequence","pg_get_statisticsobjdef","pg_get_triggerdef","pg_get_userbyid","pg_get_viewdef","pg_get_wal_replay_pause_state","pg_has_role","pg_identify_object","pg_identify_object_as_address","pg_import_system_collations","pg_index_column_has_property","pg_index_has_property","pg_indexam_has_property","pg_indexes_size","pg_is_in_backup","pg_is_in_recovery","pg_is_other_temp_schema","pg_is_wal_replay_paused","pg_is_xlog_replay_paused","pg_jit_available","pg_last_committed_xact","pg_last_wal_receive_lsn","pg_last_wal_replay_lsn","pg_last_xact_replay_timestamp","pg_last_xlog_receive_location","pg_last_xlog_replay_location","pg_listening_channels","pg_log_backend_memory_contexts","pg_logical_emit_message","pg_logical_slot_get_binary_changes","pg_logical_slot_get_changes","pg_logical_slot_peek_binary_changes","pg_logical_slot_peek_changes","pg_ls_archive_statusdir","pg_ls_dir","pg_ls_logdir","pg_ls_tmpdir","pg_ls_waldir","pg_mcv_list_items","pg_my_temp_schema","pg_notification_queue_usage","pg_opclass_is_visible","pg_operator_is_visible","pg_opfamily_is_visible","pg_options_to_table","pg_partition_ancestors","pg_partition_root","pg_partition_tree","pg_postmaster_start_time","pg_promote","pg_read_binary_file","pg_read_file","pg_relation_filenode","pg_relation_filepath","pg_relation_size","pg_reload_conf","pg_replication_origin_advance","pg_replication_origin_create","pg_replication_origin_drop","pg_replication_origin_oid","pg_replication_origin_progress","pg_replication_origin_session_is_setup","pg_replication_origin_session_progress","pg_replication_origin_session_reset","pg_replication_origin_session_setup","pg_replication_origin_xact_reset","pg_replication_origin_xact_setup","pg_replication_slot_advance","pg_rotate_logfile","pg_safe_snapshot_blocking_pids","pg_size_bytes","pg_size_pretty","pg_sleep","pg_sleep_for","pg_sleep_until","pg_snapshot_xip","pg_snapshot_xmax","pg_snapshot_xmin","pg_start_backup","pg_stat_file","pg_statistics_obj_is_visible","pg_stop_backup","pg_switch_wal","pg_switch_xlog","pg_table_is_visible","pg_table_size","pg_tablespace_databases","pg_tablespace_location","pg_tablespace_size","pg_terminate_backend","pg_total_relation_size","pg_trigger_depth","pg_try_advisory_lock","pg_try_advisory_lock_shared","pg_try_advisory_xact_lock","pg_try_advisory_xact_lock_shared","pg_ts_config_is_visible","pg_ts_dict_is_visible","pg_ts_parser_is_visible","pg_ts_template_is_visible","pg_type_is_visible","pg_typeof","pg_visible_in_snapshot","pg_wal_lsn_diff","pg_wal_replay_pause","pg_wal_replay_resume","pg_walfile_name","pg_walfile_name_offset","pg_xact_commit_timestamp","pg_xact_commit_timestamp_origin","pg_xact_status","pg_xlog_location_diff","pg_xlog_replay_pause","pg_xlog_replay_resume","pg_xlogfile_name","pg_xlogfile_name_offset","phraseto_tsquery","pi","plainto_tsquery","point","polygon","popen","position","power","pqserverversion","query_to_xml","query_to_xml_and_xmlschema","query_to_xmlschema","querytree","quote_ident","quote_literal","quote_nullable","radians","radius","random","range_agg","range_intersect_agg","range_merge","rank","regexp_match","regexp_matches","regexp_replace","regexp_split_to_array","regexp_split_to_table","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","repeat","replace","reverse","right","round","row_number","row_security_active","row_to_json","rpad","rtrim","scale","schema_to_xml","schema_to_xml_and_xmlschema","schema_to_xmlschema","session_user","set_bit","set_byte","set_config","set_masklen","setseed","setval","setweight","sha224","sha256","sha384","sha512","shobj_description","sign","sin","sind","sinh","slope","split_part","sprintf","sqrt","starts_with","statement_timestamp","stddev","stddev_pop","stddev_samp","string_agg","string_to_array","string_to_table","strip","strpos","substr","substring","sum","suppress_redundant_updates_trigger","table_to_xml","table_to_xml_and_xmlschema","table_to_xmlschema","tan","tand","tanh","text","timeofday","timezone","to_ascii","to_char","to_date","to_hex","to_json","to_number","to_regclass","to_regcollation","to_regnamespace","to_regoper","to_regoperator","to_regproc","to_regprocedure","to_regrole","to_regtype","to_timestamp","to_tsquery","to_tsvector","transaction_timestamp","translate","trim","trim_array","trim_scale","trunc","ts_debug","ts_delete","ts_filter","ts_headline","ts_lexize","ts_parse","ts_rank","ts_rank_cd","ts_rewrite","ts_stat","ts_token_type","tsquery_phrase","tsvector_to_array","tsvector_update_trigger","tsvector_update_trigger_column","txid_current","txid_current_if_assigned","txid_current_snapshot","txid_snapshot_xip","txid_snapshot_xmax","txid_snapshot_xmin","txid_status","txid_visible_in_snapshot","unistr","unnest","upper","upper_inc","upper_inf","user","var_pop","var_samp","variance","version","websearch_to_tsquery","width","width_bucket","xml_is_well_formed","xml_is_well_formed_content","xml_is_well_formed_document","xmlagg","xmlcomment","xmlconcat","xmlelement","xmlexists","xmlforest","xmlparse","xmlpi","xmlroot","xmlserialize","xpath","xpath_exists"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@keywords":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}}}}]); \ No newline at end of file diff --git a/assets/js/996.a97ccabb.js.LICENSE.txt b/assets/js/996.a97ccabb.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/996.a97ccabb.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/996.b4571109.js b/assets/js/996.b4571109.js new file mode 100644 index 00000000000..32425f2a7ff --- /dev/null +++ b/assets/js/996.b4571109.js @@ -0,0 +1,862 @@ +"use strict"; +exports.id = 996; +exports.ids = [996]; +exports.modules = { + +/***/ 20996: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/pgsql/pgsql.ts +var conf = { + comments: { + lineComment: "--", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".sql", + ignoreCase: true, + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + keywords: [ + "ALL", + "ANALYSE", + "ANALYZE", + "AND", + "ANY", + "ARRAY", + "AS", + "ASC", + "ASYMMETRIC", + "AUTHORIZATION", + "BINARY", + "BOTH", + "CASE", + "CAST", + "CHECK", + "COLLATE", + "COLLATION", + "COLUMN", + "CONCURRENTLY", + "CONSTRAINT", + "CREATE", + "CROSS", + "CURRENT_CATALOG", + "CURRENT_DATE", + "CURRENT_ROLE", + "CURRENT_SCHEMA", + "CURRENT_TIME", + "CURRENT_TIMESTAMP", + "CURRENT_USER", + "DEFAULT", + "DEFERRABLE", + "DESC", + "DISTINCT", + "DO", + "ELSE", + "END", + "EXCEPT", + "FALSE", + "FETCH", + "FOR", + "FOREIGN", + "FREEZE", + "FROM", + "FULL", + "GRANT", + "GROUP", + "HAVING", + "ILIKE", + "IN", + "INITIALLY", + "INNER", + "INTERSECT", + "INTO", + "IS", + "ISNULL", + "JOIN", + "LATERAL", + "LEADING", + "LEFT", + "LIKE", + "LIMIT", + "LOCALTIME", + "LOCALTIMESTAMP", + "NATURAL", + "NOT", + "NOTNULL", + "NULL", + "OFFSET", + "ON", + "ONLY", + "OR", + "ORDER", + "OUTER", + "OVERLAPS", + "PLACING", + "PRIMARY", + "REFERENCES", + "RETURNING", + "RIGHT", + "SELECT", + "SESSION_USER", + "SIMILAR", + "SOME", + "SYMMETRIC", + "TABLE", + "TABLESAMPLE", + "THEN", + "TO", + "TRAILING", + "TRUE", + "UNION", + "UNIQUE", + "USER", + "USING", + "VARIADIC", + "VERBOSE", + "WHEN", + "WHERE", + "WINDOW", + "WITH" + ], + operators: [ + "AND", + "BETWEEN", + "IN", + "LIKE", + "NOT", + "OR", + "IS", + "NULL", + "INTERSECT", + "UNION", + "INNER", + "JOIN", + "LEFT", + "OUTER", + "RIGHT" + ], + builtinFunctions: [ + "abbrev", + "abs", + "acldefault", + "aclexplode", + "acos", + "acosd", + "acosh", + "age", + "any", + "area", + "array_agg", + "array_append", + "array_cat", + "array_dims", + "array_fill", + "array_length", + "array_lower", + "array_ndims", + "array_position", + "array_positions", + "array_prepend", + "array_remove", + "array_replace", + "array_to_json", + "array_to_string", + "array_to_tsvector", + "array_upper", + "ascii", + "asin", + "asind", + "asinh", + "atan", + "atan2", + "atan2d", + "atand", + "atanh", + "avg", + "bit", + "bit_and", + "bit_count", + "bit_length", + "bit_or", + "bit_xor", + "bool_and", + "bool_or", + "bound_box", + "box", + "brin_desummarize_range", + "brin_summarize_new_values", + "brin_summarize_range", + "broadcast", + "btrim", + "cardinality", + "cbrt", + "ceil", + "ceiling", + "center", + "char_length", + "character_length", + "chr", + "circle", + "clock_timestamp", + "coalesce", + "col_description", + "concat", + "concat_ws", + "convert", + "convert_from", + "convert_to", + "corr", + "cos", + "cosd", + "cosh", + "cot", + "cotd", + "count", + "covar_pop", + "covar_samp", + "cume_dist", + "current_catalog", + "current_database", + "current_date", + "current_query", + "current_role", + "current_schema", + "current_schemas", + "current_setting", + "current_time", + "current_timestamp", + "current_user", + "currval", + "cursor_to_xml", + "cursor_to_xmlschema", + "date_bin", + "date_part", + "date_trunc", + "database_to_xml", + "database_to_xml_and_xmlschema", + "database_to_xmlschema", + "decode", + "degrees", + "dense_rank", + "diagonal", + "diameter", + "div", + "encode", + "enum_first", + "enum_last", + "enum_range", + "every", + "exp", + "extract", + "factorial", + "family", + "first_value", + "floor", + "format", + "format_type", + "gcd", + "gen_random_uuid", + "generate_series", + "generate_subscripts", + "get_bit", + "get_byte", + "get_current_ts_config", + "gin_clean_pending_list", + "greatest", + "grouping", + "has_any_column_privilege", + "has_column_privilege", + "has_database_privilege", + "has_foreign_data_wrapper_privilege", + "has_function_privilege", + "has_language_privilege", + "has_schema_privilege", + "has_sequence_privilege", + "has_server_privilege", + "has_table_privilege", + "has_tablespace_privilege", + "has_type_privilege", + "height", + "host", + "hostmask", + "inet_client_addr", + "inet_client_port", + "inet_merge", + "inet_same_family", + "inet_server_addr", + "inet_server_port", + "initcap", + "isclosed", + "isempty", + "isfinite", + "isopen", + "json_agg", + "json_array_elements", + "json_array_elements_text", + "json_array_length", + "json_build_array", + "json_build_object", + "json_each", + "json_each_text", + "json_extract_path", + "json_extract_path_text", + "json_object", + "json_object_agg", + "json_object_keys", + "json_populate_record", + "json_populate_recordset", + "json_strip_nulls", + "json_to_record", + "json_to_recordset", + "json_to_tsvector", + "json_typeof", + "jsonb_agg", + "jsonb_array_elements", + "jsonb_array_elements_text", + "jsonb_array_length", + "jsonb_build_array", + "jsonb_build_object", + "jsonb_each", + "jsonb_each_text", + "jsonb_extract_path", + "jsonb_extract_path_text", + "jsonb_insert", + "jsonb_object", + "jsonb_object_agg", + "jsonb_object_keys", + "jsonb_path_exists", + "jsonb_path_match", + "jsonb_path_query", + "jsonb_path_query_array", + "jsonb_path_exists_tz", + "jsonb_path_query_first", + "jsonb_path_query_array_tz", + "jsonb_path_query_first_tz", + "jsonb_path_query_tz", + "jsonb_path_match_tz", + "jsonb_populate_record", + "jsonb_populate_recordset", + "jsonb_pretty", + "jsonb_set", + "jsonb_set_lax", + "jsonb_strip_nulls", + "jsonb_to_record", + "jsonb_to_recordset", + "jsonb_to_tsvector", + "jsonb_typeof", + "justify_days", + "justify_hours", + "justify_interval", + "lag", + "last_value", + "lastval", + "lcm", + "lead", + "least", + "left", + "length", + "line", + "ln", + "localtime", + "localtimestamp", + "log", + "log10", + "lower", + "lower_inc", + "lower_inf", + "lpad", + "lseg", + "ltrim", + "macaddr8_set7bit", + "make_date", + "make_interval", + "make_time", + "make_timestamp", + "make_timestamptz", + "makeaclitem", + "masklen", + "max", + "md5", + "min", + "min_scale", + "mod", + "mode", + "multirange", + "netmask", + "network", + "nextval", + "normalize", + "now", + "npoints", + "nth_value", + "ntile", + "nullif", + "num_nonnulls", + "num_nulls", + "numnode", + "obj_description", + "octet_length", + "overlay", + "parse_ident", + "path", + "pclose", + "percent_rank", + "percentile_cont", + "percentile_disc", + "pg_advisory_lock", + "pg_advisory_lock_shared", + "pg_advisory_unlock", + "pg_advisory_unlock_all", + "pg_advisory_unlock_shared", + "pg_advisory_xact_lock", + "pg_advisory_xact_lock_shared", + "pg_backend_pid", + "pg_backup_start_time", + "pg_blocking_pids", + "pg_cancel_backend", + "pg_client_encoding", + "pg_collation_actual_version", + "pg_collation_is_visible", + "pg_column_compression", + "pg_column_size", + "pg_conf_load_time", + "pg_control_checkpoint", + "pg_control_init", + "pg_control_recovery", + "pg_control_system", + "pg_conversion_is_visible", + "pg_copy_logical_replication_slot", + "pg_copy_physical_replication_slot", + "pg_create_logical_replication_slot", + "pg_create_physical_replication_slot", + "pg_create_restore_point", + "pg_current_logfile", + "pg_current_snapshot", + "pg_current_wal_flush_lsn", + "pg_current_wal_insert_lsn", + "pg_current_wal_lsn", + "pg_current_xact_id", + "pg_current_xact_id_if_assigned", + "pg_current_xlog_flush_location", + "pg_current_xlog_insert_location", + "pg_current_xlog_location", + "pg_database_size", + "pg_describe_object", + "pg_drop_replication_slot", + "pg_event_trigger_ddl_commands", + "pg_event_trigger_dropped_objects", + "pg_event_trigger_table_rewrite_oid", + "pg_event_trigger_table_rewrite_reason", + "pg_export_snapshot", + "pg_filenode_relation", + "pg_function_is_visible", + "pg_get_catalog_foreign_keys", + "pg_get_constraintdef", + "pg_get_expr", + "pg_get_function_arguments", + "pg_get_function_identity_arguments", + "pg_get_function_result", + "pg_get_functiondef", + "pg_get_indexdef", + "pg_get_keywords", + "pg_get_object_address", + "pg_get_owned_sequence", + "pg_get_ruledef", + "pg_get_serial_sequence", + "pg_get_statisticsobjdef", + "pg_get_triggerdef", + "pg_get_userbyid", + "pg_get_viewdef", + "pg_get_wal_replay_pause_state", + "pg_has_role", + "pg_identify_object", + "pg_identify_object_as_address", + "pg_import_system_collations", + "pg_index_column_has_property", + "pg_index_has_property", + "pg_indexam_has_property", + "pg_indexes_size", + "pg_is_in_backup", + "pg_is_in_recovery", + "pg_is_other_temp_schema", + "pg_is_wal_replay_paused", + "pg_is_xlog_replay_paused", + "pg_jit_available", + "pg_last_committed_xact", + "pg_last_wal_receive_lsn", + "pg_last_wal_replay_lsn", + "pg_last_xact_replay_timestamp", + "pg_last_xlog_receive_location", + "pg_last_xlog_replay_location", + "pg_listening_channels", + "pg_log_backend_memory_contexts", + "pg_logical_emit_message", + "pg_logical_slot_get_binary_changes", + "pg_logical_slot_get_changes", + "pg_logical_slot_peek_binary_changes", + "pg_logical_slot_peek_changes", + "pg_ls_archive_statusdir", + "pg_ls_dir", + "pg_ls_logdir", + "pg_ls_tmpdir", + "pg_ls_waldir", + "pg_mcv_list_items", + "pg_my_temp_schema", + "pg_notification_queue_usage", + "pg_opclass_is_visible", + "pg_operator_is_visible", + "pg_opfamily_is_visible", + "pg_options_to_table", + "pg_partition_ancestors", + "pg_partition_root", + "pg_partition_tree", + "pg_postmaster_start_time", + "pg_promote", + "pg_read_binary_file", + "pg_read_file", + "pg_relation_filenode", + "pg_relation_filepath", + "pg_relation_size", + "pg_reload_conf", + "pg_replication_origin_advance", + "pg_replication_origin_create", + "pg_replication_origin_drop", + "pg_replication_origin_oid", + "pg_replication_origin_progress", + "pg_replication_origin_session_is_setup", + "pg_replication_origin_session_progress", + "pg_replication_origin_session_reset", + "pg_replication_origin_session_setup", + "pg_replication_origin_xact_reset", + "pg_replication_origin_xact_setup", + "pg_replication_slot_advance", + "pg_rotate_logfile", + "pg_safe_snapshot_blocking_pids", + "pg_size_bytes", + "pg_size_pretty", + "pg_sleep", + "pg_sleep_for", + "pg_sleep_until", + "pg_snapshot_xip", + "pg_snapshot_xmax", + "pg_snapshot_xmin", + "pg_start_backup", + "pg_stat_file", + "pg_statistics_obj_is_visible", + "pg_stop_backup", + "pg_switch_wal", + "pg_switch_xlog", + "pg_table_is_visible", + "pg_table_size", + "pg_tablespace_databases", + "pg_tablespace_location", + "pg_tablespace_size", + "pg_terminate_backend", + "pg_total_relation_size", + "pg_trigger_depth", + "pg_try_advisory_lock", + "pg_try_advisory_lock_shared", + "pg_try_advisory_xact_lock", + "pg_try_advisory_xact_lock_shared", + "pg_ts_config_is_visible", + "pg_ts_dict_is_visible", + "pg_ts_parser_is_visible", + "pg_ts_template_is_visible", + "pg_type_is_visible", + "pg_typeof", + "pg_visible_in_snapshot", + "pg_wal_lsn_diff", + "pg_wal_replay_pause", + "pg_wal_replay_resume", + "pg_walfile_name", + "pg_walfile_name_offset", + "pg_xact_commit_timestamp", + "pg_xact_commit_timestamp_origin", + "pg_xact_status", + "pg_xlog_location_diff", + "pg_xlog_replay_pause", + "pg_xlog_replay_resume", + "pg_xlogfile_name", + "pg_xlogfile_name_offset", + "phraseto_tsquery", + "pi", + "plainto_tsquery", + "point", + "polygon", + "popen", + "position", + "power", + "pqserverversion", + "query_to_xml", + "query_to_xml_and_xmlschema", + "query_to_xmlschema", + "querytree", + "quote_ident", + "quote_literal", + "quote_nullable", + "radians", + "radius", + "random", + "range_agg", + "range_intersect_agg", + "range_merge", + "rank", + "regexp_match", + "regexp_matches", + "regexp_replace", + "regexp_split_to_array", + "regexp_split_to_table", + "regr_avgx", + "regr_avgy", + "regr_count", + "regr_intercept", + "regr_r2", + "regr_slope", + "regr_sxx", + "regr_sxy", + "regr_syy", + "repeat", + "replace", + "reverse", + "right", + "round", + "row_number", + "row_security_active", + "row_to_json", + "rpad", + "rtrim", + "scale", + "schema_to_xml", + "schema_to_xml_and_xmlschema", + "schema_to_xmlschema", + "session_user", + "set_bit", + "set_byte", + "set_config", + "set_masklen", + "setseed", + "setval", + "setweight", + "sha224", + "sha256", + "sha384", + "sha512", + "shobj_description", + "sign", + "sin", + "sind", + "sinh", + "slope", + "split_part", + "sprintf", + "sqrt", + "starts_with", + "statement_timestamp", + "stddev", + "stddev_pop", + "stddev_samp", + "string_agg", + "string_to_array", + "string_to_table", + "strip", + "strpos", + "substr", + "substring", + "sum", + "suppress_redundant_updates_trigger", + "table_to_xml", + "table_to_xml_and_xmlschema", + "table_to_xmlschema", + "tan", + "tand", + "tanh", + "text", + "timeofday", + "timezone", + "to_ascii", + "to_char", + "to_date", + "to_hex", + "to_json", + "to_number", + "to_regclass", + "to_regcollation", + "to_regnamespace", + "to_regoper", + "to_regoperator", + "to_regproc", + "to_regprocedure", + "to_regrole", + "to_regtype", + "to_timestamp", + "to_tsquery", + "to_tsvector", + "transaction_timestamp", + "translate", + "trim", + "trim_array", + "trim_scale", + "trunc", + "ts_debug", + "ts_delete", + "ts_filter", + "ts_headline", + "ts_lexize", + "ts_parse", + "ts_rank", + "ts_rank_cd", + "ts_rewrite", + "ts_stat", + "ts_token_type", + "tsquery_phrase", + "tsvector_to_array", + "tsvector_update_trigger", + "tsvector_update_trigger_column", + "txid_current", + "txid_current_if_assigned", + "txid_current_snapshot", + "txid_snapshot_xip", + "txid_snapshot_xmax", + "txid_snapshot_xmin", + "txid_status", + "txid_visible_in_snapshot", + "unistr", + "unnest", + "upper", + "upper_inc", + "upper_inf", + "user", + "var_pop", + "var_samp", + "variance", + "version", + "websearch_to_tsquery", + "width", + "width_bucket", + "xml_is_well_formed", + "xml_is_well_formed_content", + "xml_is_well_formed_document", + "xmlagg", + "xmlcomment", + "xmlconcat", + "xmlelement", + "xmlexists", + "xmlforest", + "xmlparse", + "xmlpi", + "xmlroot", + "xmlserialize", + "xpath", + "xpath_exists" + ], + builtinVariables: [], + pseudoColumns: [], + tokenizer: { + root: [ + { include: "@comments" }, + { include: "@whitespace" }, + { include: "@pseudoColumns" }, + { include: "@numbers" }, + { include: "@strings" }, + { include: "@complexIdentifiers" }, + { include: "@scopes" }, + [/[;,.]/, "delimiter"], + [/[()]/, "@brackets"], + [ + /[\w@#$]+/, + { + cases: { + "@operators": "operator", + "@builtinVariables": "predefined", + "@builtinFunctions": "predefined", + "@keywords": "keyword", + "@default": "identifier" + } + } + ], + [/[<>=!%&+\-*/|~^]/, "operator"] + ], + whitespace: [[/\s+/, "white"]], + comments: [ + [/--+.*/, "comment"], + [/\/\*/, { token: "comment.quote", next: "@comment" }] + ], + comment: [ + [/[^*/]+/, "comment"], + [/\*\//, { token: "comment.quote", next: "@pop" }], + [/./, "comment"] + ], + pseudoColumns: [ + [ + /[$][A-Za-z_][\w@#$]*/, + { + cases: { + "@pseudoColumns": "predefined", + "@default": "identifier" + } + } + ] + ], + numbers: [ + [/0[xX][0-9a-fA-F]*/, "number"], + [/[$][+-]*\d*(\.\d*)?/, "number"], + [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, "number"] + ], + strings: [[/'/, { token: "string", next: "@string" }]], + string: [ + [/[^']+/, "string"], + [/''/, "string"], + [/'/, { token: "string", next: "@pop" }] + ], + complexIdentifiers: [[/"/, { token: "identifier.quote", next: "@quotedIdentifier" }]], + quotedIdentifier: [ + [/[^"]+/, "identifier"], + [/""/, "identifier"], + [/"/, { token: "identifier.quote", next: "@pop" }] + ], + scopes: [] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/9963.4a87e5a1.js b/assets/js/9963.4a87e5a1.js new file mode 100644 index 00000000000..4c619e7e884 --- /dev/null +++ b/assets/js/9963.4a87e5a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9963,4972],{19963:(e,t,a)=>{a.r(t),a.d(t,{default:()=>Se});var n=a(67294),l=a(86010),r=a(10833),o=a(35281),i=a(43320),c=a(53438),s=a(74477),d=a(1116),m=a(89007),u=a(95999),b=a(12466),p=a(85936);const h="backToTopButton_sjWU",f="backToTopButtonShow_xfvO";function E(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[a,l]=(0,n.useState)(!1),r=(0,n.useRef)(!1),{startScroll:o,cancelScroll:i}=(0,b.Ct)();return(0,b.RF)(((e,a)=>{let{scrollY:n}=e;const o=null==a?void 0:a.scrollY;o&&(r.current?r.current=!1:n>=o?(i(),l(!1)):n<t?l(!1):n+window.innerHeight<document.documentElement.scrollHeight&&l(!0))})),(0,p.S)((e=>{e.location.hash&&(r.current=!0,l(!1))})),{shown:a,scrollToTop:()=>o(0)}}({threshold:300});return n.createElement("button",{"aria-label":(0,u.translate)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.default)("clean-btn",o.k.common.backToTopButton,h,e&&f),type:"button",onClick:t})}var g=a(91442),v=a(76775),_=a(87524),k=a(86668),C=a(21327),S=a(87462);function N(e){return n.createElement("svg",(0,S.Z)({width:"20",height:"20","aria-hidden":"true"},e),n.createElement("g",{fill:"#7a7a7a"},n.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),n.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const I="collapseSidebarButton_PEFL",T="collapseSidebarButtonIcon_kv0_";function y(e){let{onClick:t}=e;return n.createElement("button",{type:"button",title:(0,u.translate)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.translate)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.default)("button button--secondary button--outline",I),onClick:t},n.createElement(N,{className:T}))}var w=a(59689),x=a(902);const L=Symbol("EmptyContext"),A=n.createContext(L);function M(e){let{children:t}=e;const[a,l]=(0,n.useState)(null),r=(0,n.useMemo)((()=>({expandedItem:a,setExpandedItem:l})),[a]);return n.createElement(A.Provider,{value:r},t)}var B=a(86043),F=a(48596),H=a(39960),P=a(72389);function Z(e){let{categoryLabel:t,onClick:a}=e;return n.createElement("button",{"aria-label":(0,u.translate)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:a})}function W(e){let{item:t,onItemClick:a,activePath:r,level:i,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,k.L)(),E=function(e){const t=(0,P.default)();return(0,n.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,c.Wl)(e):void 0),[e,t])}(t),g=(0,c._F)(t,r),v=(0,F.Mg)(h,r),{collapsed:_,setCollapsed:C}=(0,B.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:N,setExpandedItem:I}=function(){const e=(0,n.useContext)(A);if(e===L)throw new x.i6("DocSidebarItemsExpandedStateProvider");return e}(),T=function(e){void 0===e&&(e=!_),I(e?null:s),C(e)};return function(e){let{isActive:t,collapsed:a,updateCollapsed:l}=e;const r=(0,x.D9)(t);(0,n.useEffect)((()=>{t&&!r&&a&&l(!1)}),[t,r,a,l])}({isActive:g,collapsed:_,updateCollapsed:T}),(0,n.useEffect)((()=>{b&&null!=N&&N!==s&&f&&C(!0)}),[b,N,s,C,f]),n.createElement("li",{className:(0,l.default)(o.k.docs.docSidebarItemCategory,o.k.docs.docSidebarItemCategoryLevel(i),"menu__list-item",{"menu__list-item--collapsed":_},p)},n.createElement("div",{className:(0,l.default)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":v})},n.createElement(H.default,(0,S.Z)({className:(0,l.default)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{null==a||a(t),h?T(!1):(e.preventDefault(),T())}:()=>{null==a||a(t)},"aria-current":v?"page":void 0,"aria-expanded":b?!_:void 0,href:b?null!=E?E:"#":E},d),u),h&&b&&n.createElement(Z,{categoryLabel:u,onClick:e=>{e.preventDefault(),T()}})),n.createElement(B.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:_},n.createElement(Y,{items:m,tabIndex:_?-1:0,onItemClick:a,activePath:r,level:i+1})))}var D=a(13919),R=a(39471);const V="menuExternalLink_NmtK";function z(e){let{item:t,onItemClick:a,activePath:r,level:i,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,c._F)(t,r),f=(0,D.Z)(m);return n.createElement("li",{className:(0,l.default)(o.k.docs.docSidebarItemLink,o.k.docs.docSidebarItemLinkLevel(i),"menu__list-item",b),key:u},n.createElement(H.default,(0,S.Z)({className:(0,l.default)("menu__link",!f&&V,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},f&&{onClick:a?()=>a(t):void 0},d),u,!f&&n.createElement(R.Z,null)))}const U="menuHtmlItem_M9Kj";function K(e){let{item:t,level:a,index:r}=e;const{value:i,defaultStyle:c,className:s}=t;return n.createElement("li",{className:(0,l.default)(o.k.docs.docSidebarItemLink,o.k.docs.docSidebarItemLinkLevel(a),c&&[U,"menu__list-item"],s),key:r,dangerouslySetInnerHTML:{__html:i}})}function j(e){let{item:t,...a}=e;switch(t.type){case"category":return n.createElement(W,(0,S.Z)({item:t},a));case"html":return n.createElement(K,(0,S.Z)({item:t},a));default:return n.createElement(z,(0,S.Z)({item:t},a))}}function G(e){let{items:t,...a}=e;return n.createElement(M,null,t.map(((e,t)=>n.createElement(j,(0,S.Z)({key:t,item:e,index:t},a)))))}const Y=(0,n.memo)(G),q="menu_SIkG",O="menuWithAnnouncementBar_GW3s";function X(e){let{path:t,sidebar:a,className:r}=e;const i=function(){const{isActive:e}=(0,w.nT)(),[t,a]=(0,n.useState)(e);return(0,b.RF)((t=>{let{scrollY:n}=t;e&&a(0===n)}),[e]),e&&t}();return n.createElement("nav",{"aria-label":(0,u.translate)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,l.default)("menu thin-scrollbar",q,i&&O,r)},n.createElement("ul",{className:(0,l.default)(o.k.docs.docSidebarMenu,"menu__list")},n.createElement(Y,{items:a,activePath:t,level:1})))}const J="sidebar_njMd",Q="sidebarWithHideableNavbar_wUlq",$="sidebarHidden_VK0M",ee="sidebarLogo_isFc";function te(e){let{path:t,sidebar:a,onCollapse:r,isHidden:o}=e;const{navbar:{hideOnScroll:i},docs:{sidebar:{hideable:c}}}=(0,k.L)();return n.createElement("div",{className:(0,l.default)(J,i&&Q,o&&$)},i&&n.createElement(C.Z,{tabIndex:-1,className:ee}),n.createElement(X,{path:t,sidebar:a}),c&&n.createElement(y,{onClick:r}))}const ae=n.memo(te);var ne=a(13102),le=a(93163);const re=e=>{let{sidebar:t,path:a}=e;const r=(0,le.e)();return n.createElement("ul",{className:(0,l.default)(o.k.docs.docSidebarMenu,"menu__list")},n.createElement(Y,{items:t,activePath:a,onItemClick:e=>{"category"===e.type&&e.href&&r.toggle(),"link"===e.type&&r.toggle()},level:1}))};function oe(e){return n.createElement(ne.Zo,{component:re,props:e})}const ie=n.memo(oe);function ce(e){const t=(0,_.i)(),a="desktop"===t||"ssr"===t,l="mobile"===t;return n.createElement(n.Fragment,null,a&&n.createElement(ae,e),l&&n.createElement(ie,e))}const se="expandButton_m80_",de="expandButtonIcon_BlDH";function me(e){let{toggleSidebar:t}=e;return n.createElement("div",{className:se,title:(0,u.translate)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.translate)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},n.createElement(N,{className:de}))}const ue={docSidebarContainer:"docSidebarContainer_b6E3",docSidebarContainerHidden:"docSidebarContainerHidden_b3ry",sidebarViewport:"sidebarViewport_Xe31"};function be(e){var t;let{children:a}=e;const l=(0,d.V)();return n.createElement(n.Fragment,{key:null!=(t=null==l?void 0:l.name)?t:"noSidebar"},a)}function pe(e){let{sidebar:t,hiddenSidebarContainer:a,setHiddenSidebarContainer:r}=e;const{pathname:i}=(0,v.TH)(),[c,s]=(0,n.useState)(!1),d=(0,n.useCallback)((()=>{c&&s(!1),!c&&(0,g.n)()&&s(!0),r((e=>!e))}),[r,c]);return n.createElement("aside",{className:(0,l.default)(o.k.docs.docSidebarContainer,ue.docSidebarContainer,a&&ue.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ue.docSidebarContainer)&&a&&s(!0)}},n.createElement(be,null,n.createElement("div",{className:(0,l.default)(ue.sidebarViewport,c&&ue.sidebarViewportHidden)},n.createElement(ce,{sidebar:t,path:i,onCollapse:d,isHidden:c}),c&&n.createElement(me,{toggleSidebar:d}))))}const he={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function fe(e){let{hiddenSidebarContainer:t,children:a}=e;const r=(0,d.V)();return n.createElement("main",{className:(0,l.default)(he.docMainContainer,(t||!r)&&he.docMainContainerEnhanced)},n.createElement("div",{className:(0,l.default)("container padding-top--md padding-bottom--lg",he.docItemWrapper,t&&he.docItemWrapperEnhanced)},a))}const Ee="docPage__5DB",ge="docsWrapper_BCFX";function ve(e){let{children:t}=e;const a=(0,d.V)(),[l,r]=(0,n.useState)(!1);return n.createElement(m.Z,{wrapperClassName:ge},n.createElement(E,null),n.createElement("div",{className:Ee},a&&n.createElement(pe,{sidebar:a.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:r}),n.createElement(fe,{hiddenSidebarContainer:l},t)))}var _e=a(4972),ke=a(90197);function Ce(e){const{versionMetadata:t}=e;return n.createElement(n.Fragment,null,n.createElement(ke.Z,{version:t.version,tag:(0,i.os)(t.pluginId,t.version)}),n.createElement(r.d,null,t.noIndex&&n.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function Se(e){const{versionMetadata:t}=e,a=(0,c.hI)(e);if(!a)return n.createElement(_e.default,null);const{docElement:i,sidebarName:m,sidebarItems:u}=a;return n.createElement(n.Fragment,null,n.createElement(Ce,e),n.createElement(r.FG,{className:(0,l.default)(o.k.wrapper.docsPages,o.k.page.docsDocPage,e.versionMetadata.className)},n.createElement(s.q,{version:t},n.createElement(d.b,{name:m,items:u},n.createElement(ve,null,i)))))}},4972:(e,t,a)=>{a.r(t),a.d(t,{default:()=>i});var n=a(67294),l=a(95999),r=a(10833),o=a(89007);function i(){return n.createElement(n.Fragment,null,n.createElement(r.d,{title:(0,l.translate)({id:"theme.NotFound.title",message:"Page Not Found"})}),n.createElement(o.Z,null,n.createElement("main",{className:"container margin-vert--xl"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col col--6 col--offset-3"},n.createElement("h1",{className:"hero__title"},n.createElement(l.default,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),n.createElement("p",null,n.createElement(l.default,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),n.createElement("p",null,n.createElement(l.default,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/9993.dfbc0bca.js b/assets/js/9993.dfbc0bca.js new file mode 100644 index 00000000000..96956e7cea1 --- /dev/null +++ b/assets/js/9993.dfbc0bca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9993],{89993:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>s});var a=t(87462),i=(t(67294),t(3905));t(45475);const o={title:"Conditional Types",slug:"/types/conditional"},l=void 0,r={unversionedId:"types/conditional",id:"types/conditional",title:"Conditional Types",description:"Flow's conditional type allows you to conditionally choose between two different output types by inspecting an input type. It is useful to extract parts of a type, or to describe a complex overload.",source:"@site/docs/types/conditional.md",sourceDirName:"types",slug:"/types/conditional",permalink:"/en/docs/types/conditional",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/conditional.md",tags:[],version:"current",frontMatter:{title:"Conditional Types",slug:"/types/conditional"},sidebar:"docsSidebar",previous:{title:"Indexed Access Types",permalink:"/en/docs/types/indexed-access"},next:{title:"Mapped Types",permalink:"/en/docs/types/mapped-types"}},p={},s=[{value:"Basic Usage",id:"toc-basic-usage",level:2},{value:"Generic Conditional Types",id:"toc-generic-conditional-types",level:2},{value:"Function return types dependent on input types",id:"toc-dependent-function-return",level:2},{value:"Inferring Within Conditional Types",id:"toc-infer-type",level:2},{value:"Distributive Conditional Types",id:"toc-distributive-conditional-type",level:2},{value:"Adoption",id:"toc-adoption",level:2}],d={toc:s};function u(e){let{components:n,...t}=e;return(0,i.mdx)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Flow's conditional type allows you to conditionally choose between two different output types by inspecting an input type. It is useful to extract parts of a type, or to describe a complex overload."),(0,i.mdx)("h2",{id:"toc-basic-usage"},"Basic Usage"),(0,i.mdx)("p",null,"It has a syntax that is similar to conditional expressions: ",(0,i.mdx)("inlineCode",{parentName:"p"},"CheckType extends ExtendsType ? TrueType : FalseType"),"."),(0,i.mdx)("p",null,"If ",(0,i.mdx)("inlineCode",{parentName:"p"},"CheckType")," is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"ExtendsType"),", the conditional type will be evaluated to ",(0,i.mdx)("inlineCode",{parentName:"p"},"TrueType"),". Otherwise, it will be evaluated to ",(0,i.mdx)("inlineCode",{parentName:"p"},"FalseType"),"."),(0,i.mdx)("p",null,"The following example illustrates both cases."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class Animal {}\nclass Dog extends Animal {}\n\ntype TypeofAnimal = Dog extends Animal ? 'animal' : 'unknown'; // evaluates to 'animal'\ntype TypeofString = string extends Animal ? 'animal' : 'unknown'; // evaluates to 'unknown'\n")),(0,i.mdx)("h2",{id:"toc-generic-conditional-types"},"Generic Conditional Types"),(0,i.mdx)("p",null,"This might not look very useful, since you already know what type it will evaluate to. However, combining with generics, you can perform complex computations over types. For example, you can write down a type-level ",(0,i.mdx)("inlineCode",{parentName:"p"},"typeof")," operator:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type TypeOf<T> =\n T extends null ? 'null' :\n T extends void ? 'undefined' :\n T extends string ? 'string' :\n T extends number ? 'number' :\n T extends boolean ? 'boolean' :\n T extends (...$ReadOnlyArray<empty>)=>mixed ? 'function' : 'object'\n\ntype T1 = TypeOf<null>; // evaluates to 'null'\ntype T2 = TypeOf<void>; // evaluates to 'undefined'\ntype T3 = TypeOf<string>; // evaluates to 'string'\ntype T4 = TypeOf<number>; // evaluates to 'number'\ntype T5 = TypeOf<boolean>; // evaluates to 'boolean'\ntype T6 = TypeOf<(string)=>boolean>; // evaluates to 'function'\ntype T7 = TypeOf<{foo: string}>; // evaluates to 'object'\n")),(0,i.mdx)("h2",{id:"toc-dependent-function-return"},"Function return types dependent on input types"),(0,i.mdx)("p",null,"Conditional types also allow you to intuitively describe the conditions for choosing different function overloads:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare function wrap<T>(value: T): T extends string ? { type: 'string', value: string }\n : T extends number ? { type: 'number', value: number }\n : { type: 'unsupported' }\n\nconst v1 = wrap(3); // has type { type: 'number', value: number }\nconst v2 = wrap('4'); // has type { type: 'string', value: string }\nconst v3 = wrap({}); // has type { type: 'unsupported' }\n")),(0,i.mdx)("p",null,"The above example can also be written with function overload:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare function wrap(value: string): { type: 'string', value: string }\ndeclare function wrap(value: number): { type: 'number', value: number }\ndeclare function wrap(value: mixed): { type: 'unsupported' }\n\nconst v1 = wrap(3); // has type { type: 'number', value: number }\nconst v2 = wrap('4'); // has type { type: 'string', value: string }\nconst v3 = wrap({}); // has type { type: 'unsupported' }\n")),(0,i.mdx)("h2",{id:"toc-infer-type"},"Inferring Within Conditional Types"),(0,i.mdx)("p",null,"You can use the power of conditional types to extract parts of a type using ",(0,i.mdx)("inlineCode",{parentName:"p"},"infer")," types. For example, the builtin ",(0,i.mdx)("inlineCode",{parentName:"p"},"ReturnType")," is powered by conditional types:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type ReturnType<T> = T extends (...args: $ReadOnlyArray<empty>) => infer Return ? Return : empty;\n\ntype N = ReturnType<(string) => number>; // evaluates to `number`\ntype S = ReturnType<(number) => string>; // evaluates to `string`\n")),(0,i.mdx)("p",null,"We used the infer type here to introduce a new generic type variable named ",(0,i.mdx)("inlineCode",{parentName:"p"},"Return"),", which can be used in the type branch of the conditional type. Infer types can only appear on the right hand side of the ",(0,i.mdx)("inlineCode",{parentName:"p"},"extends")," clause in conditional types. Flow will perform a subtyping check between the check type and the extends type to automatically figure out its type based on the input type ",(0,i.mdx)("inlineCode",{parentName:"p"},"T"),"."),(0,i.mdx)("p",null,"In the example of ",(0,i.mdx)("inlineCode",{parentName:"p"},"type N = ReturnType<(string) => number>"),", Flow checks if ",(0,i.mdx)("inlineCode",{parentName:"p"},"(string) => number")," is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"(...args: $ReadOnlyArray<empty>) => infer Return"),", and during this process ",(0,i.mdx)("inlineCode",{parentName:"p"},"Return")," is constrained to ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,i.mdx)("p",null,"When doing extractions like the above example, you usually want the conditional type to always choose the true branch where the type is successfully extracted. For example, silently choosing the false branch is not great:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type ExtractReturnTypeNoValidation<T> =\n T extends (...args: $ReadOnlyArray<empty>) => infer Return ? Return : any;\n\n(1: ExtractReturnTypeNoValidation<string>); // no error :(\n")),(0,i.mdx)("p",null,"Instead, you might want Flow to error when the input is not a function type. This can be accomplished by adding constraints to the type parameter:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":16,"endLine":5,"endColumn":21,"description":"Cannot instantiate `ReturnType` because string [1] is incompatible with function type [2] in type argument `T`. [incompatible-type-arg]"}]','[{"startLine":5,"startColumn":16,"endLine":5,"endColumn":21,"description":"Cannot':!0,instantiate:!0,"`ReturnType`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,function:!0,type:!0,"[2]":!0,in:!0,argument:!0,"`T`.":!0,'[incompatible-type-arg]"}]':!0},"type ReturnType<T: (...args: $ReadOnlyArray<empty>) => mixed> =\n T extends (...args: $ReadOnlyArray<empty>) => infer Return ? Return : any;\n\n(1: ReturnType<(string) => number>);\n(1: ReturnType<string>);\n")),(0,i.mdx)("h2",{id:"toc-distributive-conditional-type"},"Distributive Conditional Types"),(0,i.mdx)("p",null,"When a generic conditional type is given a union type as a type argument, the conditional ",(0,i.mdx)("em",{parentName:"p"},"distributes")," over the union's members. For example, the ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeOf")," example above can distribute over a union:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type TypeOf<T> =\n T extends null ? 'null' :\n T extends void ? 'undefined' :\n T extends string ? 'string' : 'other';\n\ntype StringOrNull = TypeOf<string | null>; // evaluates to 'string' | 'null'\n")),(0,i.mdx)("p",null,"This works by first breaking up the union type, and then passing each type to the conditional type to be evaluated separately. In the example above, this looks something like:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre"},"TypeOf<string | null>\n--\x3e (break up the union) --\x3e TypeOf<string> | TypeOf<null>\n--\x3e (evaluate each conditional type separately) --\x3e 'string' | 'null'\n")),(0,i.mdx)("p",null,"If you want to avoid this behavior, you can wrap the check type and extends type with unary tuple type:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type NonDistributiveTypeOf<T> =\n [T] extends [null] ? 'null' :\n [T] extends [void] ? 'undefined' :\n [T] extends [string] ? 'string' : 'other';\n\ntype Other = NonDistributiveTypeOf<string | null>; // evaluates to 'other'\n")),(0,i.mdx)("p",null,"This trick works because Flow will only enable the distributive behavior of conditional type if the check type is a generic type. The example above does not choose any true branch of the conditional type, because ",(0,i.mdx)("inlineCode",{parentName:"p"},"[string | null]")," is not a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"[null]"),", ",(0,i.mdx)("inlineCode",{parentName:"p"},"[void]"),", or ",(0,i.mdx)("inlineCode",{parentName:"p"},"[string]"),", since tuples are ",(0,i.mdx)("a",{parentName:"p",href:"../../lang/variance/#toc-invariance"},"invariantly")," typed."),(0,i.mdx)("h2",{id:"toc-adoption"},"Adoption"),(0,i.mdx)("p",null,"To use conditional types, you need to upgrade your infrastructure so that it supports the syntax:"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"flow")," and ",(0,i.mdx)("inlineCode",{parentName:"li"},"flow-parser"),": 0.208.0. Between v0.208 to v0.211.1, you need to explicitly enable it in your .flowconfig, under the ",(0,i.mdx)("inlineCode",{parentName:"li"},"[options]")," heading, add ",(0,i.mdx)("inlineCode",{parentName:"li"},"conditional_type=true"),"."),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"prettier"),": 3"),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"babel")," with ",(0,i.mdx)("inlineCode",{parentName:"li"},"babel-plugin-syntax-hermes-parser"),". See ",(0,i.mdx)("a",{parentName:"li",href:"../../tools/babel/"},"our Babel guide")," for setup instructions."),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"eslint")," with ",(0,i.mdx)("inlineCode",{parentName:"li"},"hermes-eslint"),". See ",(0,i.mdx)("a",{parentName:"li",href:"../../tools/eslint/"},"our ESLint guide")," for setup instructions.")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/common.1e30ee28.js b/assets/js/common.1e30ee28.js new file mode 100644 index 00000000000..731b44a79c8 --- /dev/null +++ b/assets/js/common.1e30ee28.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8592],{3905:(e,t,n)=>{n.r(t),n.d(t,{MDXContext:()=>i,MDXProvider:()=>y,mdx:()=>f,useMDXComponents:()=>u,withMDXComponents:()=>p});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(){return a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=r.createContext({}),p=function(e){return function(t){var n=u(t.components);return r.createElement(e,a({},t,{components:n}))}},u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},y=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,i=s(e,["components","mdxType","originalType","parentName"]),p=u(n),y=o,d=p["".concat(l,".").concat(y)]||p[y]||m[y]||a;return n?r.createElement(d,c(c({ref:t},i),{},{components:n})):r.createElement(d,c({ref:t},i))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,l=new Array(a);l[0]=d;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:o,l[1]=c;for(var i=2;i<a;i++)l[i]=n[i];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},66412:(e,t,n)=>{n.d(t,{p:()=>a});var r=n(92949),o=n(86668);function a(){const{prism:e}=(0,o.L)(),{colorMode:t}=(0,r.I)(),n=e.theme,a=e.darkTheme||n;return"dark"===t?a:n}},45475:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(87462),o=n(67294),a=n(86010),l=n(23746),c=n(10195),s=n(66412),i=n(95999);const p="codeBlockContainer_r6yT",u="codeBlockContent_Ttwj",y="codeBlock_ec6o",m="copyButton_Szi8",d="codeBlockLines_pvST",f="codeBlockLine_WHOb",g="codeBlockLineNumber_gZUW",h="codeBlockLineContent_Nema",v="flowErrors_qefp",b="flowErrorUnderlineContainer_r80d",k="flowErrorUnderlineLeftPadding_BT3g",O="flowErrorUnderline_swOQ";var E=n(86668);function w(e){let{children:t,metastring:n}=e;const w=JSON.parse(n||"[]"),{prism:P}=(0,E.L)(),[j,C]=(0,o.useState)(!1),[N,T]=(0,o.useState)(!1);(0,o.useEffect)((()=>{T(!0)}),[]);const L=(0,o.useRef)(null),x=(0,s.p)(),D=Array.isArray(t)?t.join(""):t,_=D.replace(/\n$/,""),S=_.split("\n").map((e=>e.length)),B=()=>{(0,c.Z)(_),C(!0),setTimeout((()=>C(!1)),2e3)};return o.createElement(l.ZP,(0,r.Z)({},l.lG,{key:String(N),theme:x,code:_,language:"tsx"}),(e=>{let{className:t,style:n,tokens:l,getLineProps:c,getTokenProps:s}=e;return o.createElement("div",{className:p},o.createElement("div",{className:(0,a.default)(u,"tsx")},o.createElement("pre",{tabIndex:0,className:(0,a.default)(t,y,"thin-scrollbar"),style:n},o.createElement("code",{className:d},l.map(((e,t)=>{1===e.length&&""===e[0].content&&(e[0].content="\n");const n=c({line:e,key:t});return n.className+=" "+f,o.createElement("span",(0,r.Z)({key:t},n),o.createElement("span",{className:g},t+1),o.createElement("span",{className:h},e.map(((e,t)=>o.createElement("span",(0,r.Z)({key:t},s({token:e,key:t}))))),function(e,t,n){return e.map((e=>{if(!(e.startLine<=t&&t<=e.endLine))return null;const r={start:e.startColumn-1,end:e.endColumn};return e.startLine<t&&(r.start=1),t<e.endLine&&(r.end=n),r})).filter(Boolean)}(w,t+1,S[t]).map(((e,t)=>o.createElement("div",{key:t,className:b},o.createElement("span",{className:k}," ".repeat(e.start)),o.createElement("span",{key:t,className:O}," ".repeat(e.end-e.start)))))))})))),o.createElement("button",{ref:L,type:"button","aria-label":(0,i.translate)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"",description:"The ARIA label for copy code blocks button"}),className:(0,a.default)(m,"clean-btn"),onClick:B},j?o.createElement(i.default,{id:"theme.CodeBlock.copied",description:"The copied button label on code blocks"},"Copied"):o.createElement(i.default,{id:"theme.CodeBlock.copy",description:"The copy button label on code blocks"},"Copy")),w.length>0&&o.createElement("pre",{className:v},w.map(((e,t)=>{let{startLine:n,startColumn:r,endLine:a,endColumn:l,description:c}=e;return o.createElement("div",{key:t},n+":"+r+"-"+a+":"+l+": "+c)})))))}))}},23746:(e,t,n)=>{n.d(t,{ZP:()=>d,lG:()=>l});var r=n(87410);const o={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var a=n(67294),l={Prism:r.Z,theme:o};function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}var i=/\r\n|\r|\n/,p=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},u=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},y=function(e,t){var n=e.plain,r=Object.create(null),o=e.styles.reduce((function(e,n){var r=n.languages,o=n.style;return r&&!r.includes(t)||n.types.forEach((function(t){var n=s({},e[t],o);e[t]=n})),e}),r);return o.root=n,o.plain=s({},n,{backgroundColor:null}),o};function m(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===t.indexOf(r)&&(n[r]=e[r]);return n}const d=function(e){function t(){for(var t=this,n=[],r=arguments.length;r--;)n[r]=arguments[r];e.apply(this,n),c(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?y(e.theme,e.language):void 0;return t.themeDict=n})),c(this,"getLineProps",(function(e){var n=e.key,r=e.className,o=e.style,a=s({},m(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(a.style=l.plain),void 0!==o&&(a.style=void 0!==a.style?s({},a.style,o):o),void 0!==n&&(a.key=n),r&&(a.className+=" "+r),a})),c(this,"getStyleForToken",(function(e){var n=e.types,r=e.empty,o=n.length,a=t.getThemeDict(t.props);if(void 0!==a){if(1===o&&"plain"===n[0])return r?{display:"inline-block"}:void 0;if(1===o&&!r)return a[n[0]];var l=r?{display:"inline-block"}:{},c=n.map((function(e){return a[e]}));return Object.assign.apply(Object,[l].concat(c))}})),c(this,"getTokenProps",(function(e){var n=e.key,r=e.className,o=e.style,a=e.token,l=s({},m(e,["key","className","style","token"]),{className:"token "+a.types.join(" "),children:a.content,style:t.getStyleForToken(a),key:void 0});return void 0!==o&&(l.style=void 0!==l.style?s({},l.style,o):o),void 0!==n&&(l.key=n),r&&(l.className+=" "+r),l})),c(this,"tokenize",(function(e,t,n,r){var o={code:t,grammar:n,language:r,tokens:[]};e.hooks.run("before-tokenize",o);var a=o.tokens=e.tokenize(o.code,o.grammar,o.language);return e.hooks.run("after-tokenize",o),a}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,r=e.code,o=e.children,a=this.getThemeDict(this.props),l=t.languages[n];return o({tokens:function(e){for(var t=[[]],n=[e],r=[0],o=[e.length],a=0,l=0,c=[],s=[c];l>-1;){for(;(a=r[l]++)<o[l];){var y=void 0,m=t[l],d=n[l][a];if("string"==typeof d?(m=l>0?m:["plain"],y=d):(m=u(m,d.type),d.alias&&(m=u(m,d.alias)),y=d.content),"string"==typeof y){var f=y.split(i),g=f.length;c.push({types:m,content:f[0]});for(var h=1;h<g;h++)p(c),s.push(c=[]),c.push({types:m,content:f[h]})}else l++,t.push(m),n.push(y),r.push(0),o.push(y.length)}l--,t.pop(),n.pop(),r.pop(),o.pop()}return p(c),s}(void 0!==l?this.tokenize(t,r,l,n):[r]),className:"prism-code language-"+n,style:void 0!==a?a.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(a.Component)},10195:(e,t,n)=>{function r(e,t){let{target:n=document.body}=void 0===t?{}:t;const r=document.createElement("textarea"),o=document.activeElement;r.value=e,r.setAttribute("readonly",""),r.style.contain="strict",r.style.position="absolute",r.style.left="-9999px",r.style.fontSize="12pt";const a=document.getSelection();let l=!1;a.rangeCount>0&&(l=a.getRangeAt(0)),n.append(r),r.select(),r.selectionStart=0,r.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}return r.remove(),l&&(a.removeAllRanges(),a.addRange(l)),o&&o.focus(),c}n.d(t,{Z:()=>r})}}]); \ No newline at end of file diff --git a/assets/js/main.2b7a990f.js b/assets/js/main.2b7a990f.js new file mode 100644 index 00000000000..3e8cfd40f4a --- /dev/null +++ b/assets/js/main.2b7a990f.js @@ -0,0 +1,2 @@ +/*! For license information please see main.2b7a990f.js.LICENSE.txt */ +(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[179],{20830:(e,t,n)=>{"use strict";n.d(t,{W:()=>o});var r=n(67294);function o(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(67294),o=n(87462),a=n(68356),i=n.n(a),l=n(16887);const s={"03f7d77f":[()=>Promise.all([n.e(532),n.e(8592),n.e(3426)]).then(n.bind(n,23426)),"@site/docs/types/functions.md",23426],"0480b142":[()=>Promise.all([n.e(532),n.e(8592),n.e(3584)]).then(n.bind(n,43584)),"@site/docs/faq.md",43584],"05615bb4":[()=>Promise.all([n.e(532),n.e(8592),n.e(4397)]).then(n.bind(n,14397)),"@site/docs/types/literals.md",14397],"062e05b4":[()=>Promise.all([n.e(532),n.e(8592),n.e(8880)]).then(n.bind(n,18880)),"@site/docs/types/tuples.md",18880],"06d7817c":[()=>Promise.all([n.e(8592),n.e(7357)]).then(n.bind(n,87357)),"@site/blog/2021-09-27-Introducing-Local-Type-Inference-for-Flow.md?truncated=true",87357],"06f797e0":[()=>n.e(3769).then(n.t.bind(n,83769,19)),"/home/circleci/flow/website/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",83769],"0801aa48":[()=>Promise.all([n.e(532),n.e(8592),n.e(2040)]).then(n.bind(n,32040)),"@site/docs/lang/nominal-structural.md",32040],"0821ba19":[()=>Promise.all([n.e(8592),n.e(3490)]).then(n.bind(n,83490)),"@site/blog/2020-03-09-What-were-building-in-2020.md",83490],"08b677a9":[()=>Promise.all([n.e(8592),n.e(4370)]).then(n.bind(n,34370)),"@site/blog/2023-02-16-Exact-object-types-by-default-by-default.md?truncated=true",34370],"0abc5904":[()=>Promise.all([n.e(532),n.e(8592),n.e(3808)]).then(n.bind(n,73808)),"@site/docs/types/utilities.md",73808],"0b9b5b1e":[()=>Promise.all([n.e(8592),n.e(1992)]).then(n.bind(n,61992)),"@site/blog/2018-10-18-Exact-Objects-By-Default.md?truncated=true",61992],"0d31b876":[()=>Promise.all([n.e(8592),n.e(6329)]).then(n.bind(n,46329)),"@site/blog/2022-08-05-New-Flow-Language-Rule-Constrained-Writes.md",46329],"0d725906":[()=>Promise.all([n.e(8592),n.e(6065)]).then(n.bind(n,26065)),"@site/blog/2016-10-13-Flow-Typed.md?truncated=true",26065],"0d9d4513":[()=>Promise.all([n.e(8592),n.e(5975)]).then(n.bind(n,55975)),"@site/blog/2016-08-01-Windows-Support.md?truncated=true",55975],"0eb64d46":[()=>Promise.all([n.e(532),n.e(8592),n.e(3851)]).then(n.bind(n,93851)),"@site/docs/lang/types-first.md",93851],"0f5f1bf5":[()=>Promise.all([n.e(8592),n.e(4702)]).then(n.bind(n,94702)),"@site/blog/2023-08-17-Announcing-5-new-Flow-tuple-type-features.md?truncated=true",94702],"145fd8c8":[()=>Promise.all([n.e(532),n.e(8592),n.e(6686)]).then(n.bind(n,56686)),"@site/docs/lang/variables.md",56686],"149f1a8f":[()=>Promise.all([n.e(8592),n.e(8748)]).then(n.bind(n,28748)),"@site/blog/2016-02-02-Version-0.21.0.md?truncated=true",28748],"14a09451":[()=>Promise.all([n.e(8592),n.e(4588)]).then(n.bind(n,54588)),"@site/blog/2023-04-10-Unused-Promise.md?truncated=true",54588],"1686a5bc":[()=>Promise.all([n.e(532),n.e(8592),n.e(4860)]).then(n.bind(n,34860)),"@site/docs/react/multiplatform.md",34860],"16da00f1":[()=>Promise.all([n.e(8592),n.e(4840)]).then(n.bind(n,24840)),"@site/blog/2018-10-29-Asking-for-Required-Annotations.md?truncated=true",24840],"16eb21a1":[()=>Promise.all([n.e(8592),n.e(9506)]).then(n.bind(n,29506)),"@site/blog/2018-02-20-Better-Flow-Error-Messages-for-the-Javascript-Ecosystem.md",29506],17896441:[()=>Promise.all([n.e(532),n.e(8592),n.e(6894),n.e(5414)]).then(n.t.bind(n,62466,23)),"@theme/DocItem",62466],"17f3f5fa":[()=>Promise.all([n.e(8592),n.e(565)]).then(n.bind(n,60565)),"@site/blog/2021-06-02-Sound-Typing-for-this-in-Flow.md?truncated=true",60565],"188153c4":[()=>Promise.all([n.e(532),n.e(8592),n.e(5562)]).then(n.bind(n,35562)),"@site/docs/linting/rule-reference.md",35562],"18a5105d":[()=>Promise.all([n.e(8592),n.e(3271)]).then(n.bind(n,53271)),"@site/blog/2018-10-29-Asking-for-Required-Annotations.md",53271],"1a4e3797":[()=>Promise.all([n.e(532),n.e(9172)]).then(n.bind(n,39172)),"@theme/SearchPage",39172],"1a87007a":[()=>Promise.all([n.e(8592),n.e(4896)]).then(n.bind(n,74896)),"@site/blog/2015-02-20-Flow-Comments.md",74896],"1b0eafb0":[()=>Promise.all([n.e(8592),n.e(3377)]).then(n.bind(n,73377)),"@site/blog/2018-02-20-Better-Flow-Error-Messages-for-the-Javascript-Ecosystem.md?truncated=true",73377],"1be78505":[()=>Promise.all([n.e(532),n.e(9963)]).then(n.bind(n,19963)),"@theme/DocPage",19963],"1c79b411":[()=>Promise.all([n.e(8592),n.e(9541)]).then(n.bind(n,99541)),"@site/blog/2021-05-25-Clarity-on-Flows-Direction-and-Open-Source-Engagement.md",99541],"1d1d2623":[()=>Promise.all([n.e(8592),n.e(6990)]).then(n.bind(n,66990)),"@site/blog/2020-03-16-Making-Flow-error-suppressions-more-specific.md?truncated=true",66990],"1dec3c22":[()=>Promise.all([n.e(532),n.e(8592),n.e(5237)]).then(n.bind(n,45237)),"@site/docs/linting/flowlint-comments.md",45237],"1deff68a":[()=>Promise.all([n.e(8592),n.e(529)]).then(n.bind(n,10529)),"@site/blog/2022-10-20-Improved-handling-of-the-empty-object-in-Flow.md?truncated=true",10529],"1e640efa":[()=>Promise.all([n.e(8592),n.e(2524)]).then(n.bind(n,22524)),"@site/blog/2019-08-20-Changes-to-Object-Spreads.md",22524],"1fea74a6":[()=>Promise.all([n.e(532),n.e(8592),n.e(7550)]).then(n.bind(n,57550)),"@site/docs/types/opaque-types.md",57550],21198339:[()=>Promise.all([n.e(8592),n.e(957)]).then(n.bind(n,80957)),"@site/blog/2015-11-09-Generators.md",80957],22864986:[()=>Promise.all([n.e(532),n.e(8592),n.e(8063)]).then(n.bind(n,78063)),"@site/docs/config/libs.md",78063],"22d19fd2":[()=>Promise.all([n.e(8592),n.e(5097)]).then(n.bind(n,65097)),"@site/blog/2015-07-29-Version-0.14.0.md?truncated=true",65097],"23d108aa":[()=>Promise.all([n.e(8592),n.e(9647)]).then(n.bind(n,29647)),"@site/blog/2019-4-9-Upgrading-Flow-Codebases.md?truncated=true",29647],"2758e022":[()=>Promise.all([n.e(8592),n.e(4392)]).then(n.bind(n,54392)),"@site/blog/2017-08-04-Linting-in-Flow.md",54392],"2882eb4d":[()=>Promise.all([n.e(8592),n.e(486)]).then(n.bind(n,10486)),"@site/blog/2020-02-19-Improvements-to-Flow-in-2019.md?truncated=true",10486],"2981723c":[()=>Promise.all([n.e(532),n.e(8592),n.e(3698)]).then(n.bind(n,3698)),"@site/docs/tools/eslint.md",3698],"2a98dbd2":[()=>Promise.all([n.e(8592),n.e(8713)]).then(n.bind(n,40974)),"@site/blog/2021-09-13-Introducing-Flow-Enums.md",40974],"2cfb3ef2":[()=>Promise.all([n.e(8592),n.e(2378)]).then(n.bind(n,12378)),"@site/blog/2016-10-13-Flow-Typed.md",12378],"2d59284f":[()=>Promise.all([n.e(8592),n.e(1345)]).then(n.bind(n,28592)),"@site/blog/2015-09-22-Version-0.16.0.md?truncated=true",28592],"2dc2c6fe":[()=>Promise.all([n.e(8592),n.e(6956)]).then(n.bind(n,86956)),"@site/blog/2017-08-25-Private-Object-Properties-Using-Flows-Opaque-Type-Aliases.md",86956],"2e83a3f1":[()=>Promise.all([n.e(8592),n.e(6641)]).then(n.bind(n,56641)),"@site/blog/2017-05-07-Strict-Function-Call-Arity.md?truncated=true",56641],"2e848c4d":[()=>Promise.all([n.e(532),n.e(8592),n.e(4170)]).then(n.bind(n,14170)),"@site/docs/react/events.md",14170],"2fb2f756":[()=>Promise.all([n.e(532),n.e(8592),n.e(2394)]).then(n.bind(n,82394)),"@site/docs/config/options.md",82394],"2fccebec":[()=>Promise.all([n.e(532),n.e(8592),n.e(5221)]).then(n.bind(n,35221)),"@site/docs/enums/index.md",35221],"3098e178":[()=>Promise.all([n.e(532),n.e(8592),n.e(3292)]).then(n.bind(n,53292)),"@site/docs/types/typeof.md",53292],"31b1f40d":[()=>Promise.all([n.e(8592),n.e(6479)]).then(n.bind(n,56479)),"@site/blog/2015-11-09-Generators.md?truncated=true",56479],"3436f537":[()=>Promise.all([n.e(8592),n.e(3903)]).then(n.bind(n,23903)),"@site/blog/2020-03-09-What-were-building-in-2020.md?truncated=true",23903],"3546858d":[()=>Promise.all([n.e(8592),n.e(4352)]).then(n.bind(n,44352)),"@site/blog/2017-08-04-Linting-in-Flow.md?truncated=true",44352],"3696a2ba":[()=>Promise.all([n.e(8592),n.e(9850)]).then(n.bind(n,79850)),"@site/blog/2015-02-18-Typecasts.md?truncated=true",79850],"36dd8a2a":[()=>Promise.all([n.e(8592),n.e(7454)]).then(n.bind(n,87454)),"@site/blog/2015-03-12-Bounded-Polymorphism.md",87454],"38b6d82d":[()=>Promise.all([n.e(532),n.e(8592),n.e(6393)]).then(n.bind(n,46393)),"@site/docs/libdefs/index.md",46393],"38bf0af0":[()=>Promise.all([n.e(8592),n.e(3103)]).then(n.bind(n,92879)),"@site/blog/2023-03-15-Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations.md?truncated=true",92879],39814850:[()=>Promise.all([n.e(532),n.e(8592),n.e(6432)]).then(n.bind(n,6432)),"@site/docs/declarations/index.md",6432],"3a0474a4":[()=>Promise.all([n.e(532),n.e(8592),n.e(1151)]).then(n.bind(n,1151)),"@site/docs/types/index.md",1151],"3c67c6f1":[()=>Promise.all([n.e(8592),n.e(6290)]).then(n.bind(n,86290)),"@site/blog/2021-07-21-Introducing-Flow-Indexed-Access-Types.md",86290],"3c73173e":[()=>Promise.all([n.e(532),n.e(8592),n.e(6798)]).then(n.bind(n,16798)),"@site/docs/config/include.md",16798],"3fde744a":[()=>Promise.all([n.e(532),n.e(8592),n.e(3835)]).then(n.bind(n,63835)),"@site/docs/react/components.md",63835],"400005bc":[()=>Promise.all([n.e(532),n.e(8592),n.e(1091)]).then(n.bind(n,21091)),"@site/docs/lang/lazy-modes.md",21091],41545044:[()=>Promise.all([n.e(532),n.e(8592),n.e(813)]).then(n.bind(n,10813)),"@site/docs/editors/vim.md",10813],43854727:[()=>Promise.all([n.e(532),n.e(8592),n.e(5789)]).then(n.bind(n,5789)),"@site/docs/types/mapped-types.md",5789],"43b0182c":[()=>Promise.all([n.e(532),n.e(8592),n.e(3430)]).then(n.bind(n,63430)),"@site/docs/types/unions.md",63430],"4499f1d5":[()=>Promise.all([n.e(532),n.e(8592),n.e(9277)]).then(n.bind(n,69277)),"@site/docs/react/hoc.md",69277],"45e3d4a1":[()=>Promise.all([n.e(8592),n.e(8506)]).then(n.bind(n,18506)),"@site/blog/2018-12-13-React-Abstract-Component.md?truncated=true",18506],"45f3947e":[()=>Promise.all([n.e(532),n.e(8592),n.e(6586)]).then(n.bind(n,6586)),"@site/docs/types/primitives.md",6586],"47fceb5c":[()=>Promise.all([n.e(8592),n.e(1706)]).then(n.bind(n,1706)),"@site/blog/2018-10-18-Exact-Objects-By-Default.md",1706],"4854ca19":[()=>Promise.all([n.e(532),n.e(8592),n.e(4506)]).then(n.bind(n,64506)),"@site/docs/config/version.md",64506],"4981a61b":[()=>Promise.all([n.e(532),n.e(8592),n.e(3418)]).then(n.bind(n,53418)),"@site/docs/types/type-guards.md",53418],"498260da":[()=>Promise.all([n.e(8592),n.e(753)]).then(n.bind(n,50753)),"@site/blog/2016-02-02-Version-0.21.0.md",50753],"49f38925":[()=>Promise.all([n.e(532),n.e(8592),n.e(2601)]).then(n.bind(n,52601)),"@site/docs/react/index.md",52601],"49fc8451":[()=>Promise.all([n.e(8592),n.e(5172)]).then(n.bind(n,45172)),"@site/blog/2020-11-16-Flows-Improved-Handling-of-Generic-Types.md",45172],"4a874b56":[()=>Promise.all([n.e(532),n.e(8592),n.e(1540)]).then(n.bind(n,31540)),"@site/docs/types/mixed.md",31540],"4b798296":[()=>Promise.all([n.e(532),n.e(8592),n.e(3470)]).then(n.bind(n,73470)),"@site/docs/strict/index.md",73470],"4ca37602":[()=>Promise.all([n.e(8592),n.e(8757)]).then(n.bind(n,28757)),"@site/blog/2022-09-30-Requiring-More-Annotations-on-Functions-and-Classes.md",28757],"4da00481":[()=>Promise.all([n.e(532),n.e(8592),n.e(9993)]).then(n.bind(n,89993)),"@site/docs/types/conditional.md",89993],"4e1bb112":[()=>Promise.all([n.e(532),n.e(8592),n.e(6522)]).then(n.bind(n,66522)),"@site/docs/lang/annotation-requirement.md",66522],"4f679c8d":[()=>Promise.all([n.e(532),n.e(8592),n.e(4721)]).then(n.bind(n,74721)),"@site/docs/tools/babel.md",74721],"534636ef":[()=>Promise.all([n.e(8592),n.e(3590)]).then(n.bind(n,83590)),"@site/blog/2021-09-13-TypeScript-Enums-vs-Flow-Enums.md",83590],"53bdc07c":[()=>Promise.all([n.e(532),n.e(8592),n.e(9206)]).then(n.bind(n,89206)),"@site/docs/react/refs.md",89206],"57c2009f":[()=>Promise.all([n.e(532),n.e(8592),n.e(6923)]).then(n.bind(n,66923)),"@site/docs/editors/emacs.md",66923],"57cbb641":[()=>Promise.all([n.e(8592),n.e(2259)]).then(n.bind(n,82259)),"@site/blog/2015-07-03-Disjoint-Unions.md",82259],"5a63fcc7":[()=>Promise.all([n.e(532),n.e(8592),n.e(1209)]).then(n.bind(n,41209)),"@site/docs/editors/sublime-text.md",41209],"5af46b94":[()=>Promise.all([n.e(532),n.e(8592),n.e(3397)]).then(n.bind(n,3397)),"@site/docs/config/lints.md",3397],"5b39b3b8":[()=>n.e(4469).then(n.t.bind(n,24469,19)),"/home/circleci/flow/website/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",24469],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,36809)),"@generated/docusaurus.config",36809],"627ee67b":[()=>Promise.all([n.e(8592),n.e(728)]).then(n.bind(n,20728)),"@site/blog/2020-05-18-Types-First-A-Scalable-New-Architecture-for-Flow.md?truncated=true",20728],"6283dc52":[()=>Promise.all([n.e(8592),n.e(1217)]).then(n.bind(n,91217)),"@site/blog/2015-07-29-Version-0.14.0.md",91217],"6476eba6":[()=>Promise.all([n.e(532),n.e(8592),n.e(2175)]).then(n.bind(n,22175)),"@site/docs/usage.md",22175],"67fab80a":[()=>Promise.all([n.e(8592),n.e(5215)]).then(n.bind(n,90908)),"@site/blog/2020-01-29-How-to-Upgrade-to-exact-by-default-object-type-syntax.md?truncated=true",90908],"685b7887":[()=>Promise.all([n.e(8592),n.e(2974)]).then(n.bind(n,2974)),"@site/blog/2019-1-28-What-the-flow-team-has-been-up-to.md?truncated=true",2974],"6baa791a":[()=>Promise.all([n.e(8592),n.e(4099)]).then(n.bind(n,74099)),"@site/blog/2015-02-18-Import-Types.md?truncated=true",74099],"6bd3f849":[()=>Promise.all([n.e(532),n.e(8592),n.e(7210)]).then(n.bind(n,97210)),"@site/docs/config/ignore.md",97210],"6e17e746":[()=>Promise.all([n.e(532),n.e(8592),n.e(588)]).then(n.bind(n,90588)),"@site/docs/types/maybe.md",90588],"6f13cf50":[()=>Promise.all([n.e(8592),n.e(3482)]).then(n.bind(n,13482)),"@site/blog/2017-08-25-Private-Object-Properties-Using-Flows-Opaque-Type-Aliases.md?truncated=true",13482],"6fbe3924":[()=>Promise.all([n.e(8592),n.e(6104)]).then(n.bind(n,56104)),"@site/blog/2019-10-25-Live-Flow-Errors-in-your-IDE.md",56104],"708dfd19":[()=>Promise.all([n.e(532),n.e(8592),n.e(9837)]).then(n.bind(n,29837)),"@site/docs/types/casting.md",29837],"716a2b3a":[()=>Promise.all([n.e(8592),n.e(836)]).then(n.bind(n,80836)),"@site/blog/2020-12-01-Types-first-the-only-supported-mode-in-flow.md?truncated=true",80836],"7355e963":[()=>Promise.all([n.e(532),n.e(8592),n.e(3361)]).then(n.bind(n,93361)),"@site/docs/enums/migrating-legacy-patterns.md",93361],"754aff6f":[()=>Promise.all([n.e(532),n.e(8592),n.e(7758)]).then(n.bind(n,57758)),"@site/docs/tools/flow-remove-types.md",57758],"75d6ea67":[()=>Promise.all([n.e(532),n.e(8592),n.e(8073)]).then(n.bind(n,88073)),"@site/docs/enums/enabling-enums.md",88073],"7760e989":[()=>Promise.all([n.e(532),n.e(8592),n.e(7997)]).then(n.bind(n,97997)),"@site/docs/cli/index.md",97997],"797bdcb3":[()=>Promise.all([n.e(532),n.e(8592),n.e(4367)]).then(n.bind(n,43634)),"@site/docs/lang/width-subtyping.md",43634],"7a0b48af":[()=>Promise.all([n.e(532),n.e(8592),n.e(2565)]).then(n.bind(n,42565)),"@site/docs/types/any.md",42565],"7c31194e":[()=>Promise.all([n.e(8592),n.e(4314)]).then(n.bind(n,74314)),"@site/blog/2022-08-05-New-Flow-Language-Rule-Constrained-Writes.md?truncated=true",74314],"7db70a13":[()=>Promise.all([n.e(8592),n.e(7678)]).then(n.bind(n,67678)),"@site/blog/2023-04-10-Unused-Promise.md",67678],"814f3328":[()=>n.e(5641).then(n.t.bind(n,45641,19)),"~blog/default/blog-post-list-prop-default.json",45641],"835b28c9":[()=>Promise.all([n.e(8592),n.e(1e3)]).then(n.bind(n,91e3)),"@site/blog/2015-12-01-Version-0.19.0.md?truncated=true",91e3],"8450619c":[()=>Promise.all([n.e(8592),n.e(7966)]).then(n.bind(n,87966)),"@site/blog/2017-08-16-Even-Better-Support-for-React-in-Flow.md",87966],"849c3168":[()=>Promise.all([n.e(8592),n.e(5501)]).then(n.bind(n,55501)),"@site/blog/2021-09-13-Introducing-Flow-Enums.md?truncated=true",55501],"855f8093":[()=>Promise.all([n.e(532),n.e(8592),n.e(8985)]).then(n.bind(n,48985)),"@site/docs/lang/variance.md",48985],"87ccf64d":[()=>Promise.all([n.e(532),n.e(8592),n.e(4502)]).then(n.bind(n,64502)),"@site/docs/linting/index.md",64502],"8ad8f3b7":[()=>Promise.all([n.e(8592),n.e(8899)]).then(n.bind(n,68899)),"@site/blog/2021-07-21-Introducing-Flow-Indexed-Access-Types.md?truncated=true",68899],"8c284244":[()=>Promise.all([n.e(8592),n.e(5898)]).then(n.bind(n,15898)),"@site/blog/2015-10-07-Version-0.17.0.md",15898],"8d4addf8":[()=>Promise.all([n.e(532),n.e(8592),n.e(9701)]).then(n.bind(n,19701)),"@site/docs/editors/index.md",19701],"8d8646df":[()=>Promise.all([n.e(8592),n.e(2886)]).then(n.bind(n,62886)),"@site/blog/2021-09-27-Introducing-Local-Type-Inference-for-Flow.md",62886],"8eb4e46b":[()=>n.e(2638).then(n.t.bind(n,82638,19)),"~blog/default/blog-page-2-677.json",82638],"9202bab2":[()=>Promise.all([n.e(8592),n.e(4340)]).then(n.bind(n,64340)),"@site/blog/2020-12-01-Types-first-the-only-supported-mode-in-flow.md",64340],"9271a7d9":[()=>Promise.all([n.e(8592),n.e(6272)]).then(n.bind(n,36272)),"@site/blog/2019-4-9-Upgrading-Flow-Codebases.md",36272],"935f2afb":[()=>n.e(1109).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"945c2ff6":[()=>Promise.all([n.e(8592),n.e(5691)]).then(n.bind(n,45691)),"@site/blog/2019-1-28-What-the-flow-team-has-been-up-to.md",45691],"96e46681":[()=>Promise.all([n.e(532),n.e(8592),n.e(8528)]).then(n.bind(n,98528)),"@site/docs/config/index.md",98528],"96f8b763":[()=>Promise.all([n.e(532),n.e(8592),n.e(2657)]).then(n.bind(n,52657)),"@site/docs/tools/index.md",52657],"9b7118e6":[()=>Promise.all([n.e(8592),n.e(3175)]).then(n.bind(n,53175)),"@site/blog/2015-03-12-Bounded-Polymorphism.md?truncated=true",53175],"9d1a18d2":[()=>Promise.all([n.e(8592),n.e(8071)]).then(n.bind(n,68071)),"@site/blog/2016-07-01-New-Unions-Intersections.md",68071],"9d6b221c":[()=>Promise.all([n.e(532),n.e(8592),n.e(4784)]).then(n.bind(n,34784)),"@site/docs/lang/types-and-expressions.md",34784],"9e4087bc":[()=>n.e(3169).then(n.bind(n,63169)),"@theme/BlogArchivePage",63169],"9f241a4b":[()=>Promise.all([n.e(532),n.e(8592),n.e(7521)]).then(n.bind(n,93632)),"@site/docs/types/interfaces.md",93632],a0f1eb17:[()=>Promise.all([n.e(8592),n.e(6618)]).then(n.bind(n,36618)),"@site/blog/2023-03-15-Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations.md",36618],a1182569:[()=>Promise.all([n.e(8592),n.e(8819)]).then(n.bind(n,98819)),"@site/blog/2015-12-01-Version-0.19.0.md",98819],a34bf502:[()=>Promise.all([n.e(8592),n.e(2160)]).then(n.bind(n,92160)),"@site/blog/2016-10-04-Property-Variance.md?truncated=true",92160],a45c950d:[()=>Promise.all([n.e(532),n.e(8592),n.e(7667)]).then(n.bind(n,7667)),"@site/docs/lang/refinements.md",7667],a4903c78:[()=>Promise.all([n.e(8592),n.e(6943)]).then(n.bind(n,56943)),"@site/blog/2019-2-8-A-More-Responsive-Flow.md",56943],a6aa9e1f:[()=>Promise.all([n.e(532),n.e(8592),n.e(6894),n.e(908)]).then(n.bind(n,93269)),"@theme/BlogListPage",93269],a6ec1ca4:[()=>Promise.all([n.e(532),n.e(8592),n.e(972)]).then(n.bind(n,30972)),"@site/docs/lang/subtypes.md",30972],a7997f86:[()=>Promise.all([n.e(8592),n.e(650)]).then(n.bind(n,30650)),"@site/blog/2017-07-27-Opaque-Types.md?truncated=true",30650],a81db0a3:[()=>Promise.all([n.e(8592),n.e(1049)]).then(n.bind(n,11049)),"@site/blog/2021-05-25-Clarity-on-Flows-Direction-and-Open-Source-Engagement.md?truncated=true",11049],a914a609:[()=>Promise.all([n.e(532),n.e(8592),n.e(2490)]).then(n.bind(n,52490)),"@site/docs/cli/annotate-exports.md",52490],ab2e47c1:[()=>Promise.all([n.e(532),n.e(8592),n.e(3939)]).then(n.bind(n,93939)),"@site/docs/types/generators.md",93939],aca2d3c0:[()=>Promise.all([n.e(532),n.e(8592),n.e(8480)]).then(n.bind(n,78480)),"@site/docs/types/empty.md",78480],ad260ef5:[()=>Promise.all([n.e(8592),n.e(8118)]).then(n.bind(n,48118)),"@site/blog/2020-01-29-How-to-Upgrade-to-exact-by-default-object-type-syntax.md",48118],ad9c98c9:[()=>Promise.all([n.e(8592),n.e(4244)]).then(n.bind(n,64244)),"@site/blog/2015-09-10-Version-0.15.0.md",64244],ada421c5:[()=>Promise.all([n.e(8592),n.e(7473)]).then(n.bind(n,57473)),"@site/blog/2017-09-03-Flow-Support-in-Recompose.md?truncated=true",57473],ae57f6c5:[()=>Promise.all([n.e(8592),n.e(385)]).then(n.bind(n,385)),"@site/blog/2015-09-10-Version-0.15.0.md?truncated=true",385],aeadb6e0:[()=>Promise.all([n.e(8592),n.e(6136)]).then(n.bind(n,26136)),"@site/blog/2015-07-03-Disjoint-Unions.md?truncated=true",26136],af591461:[()=>Promise.all([n.e(532),n.e(8592),n.e(1930)]).then(n.bind(n,71930)),"@site/docs/react/types.md",71930],b2b675dd:[()=>n.e(8017).then(n.t.bind(n,28017,19)),"~blog/default/blog-c06.json",28017],b2f554cd:[()=>n.e(10).then(n.t.bind(n,30010,19)),"~blog/default/blog-archive-80c.json",30010],b5e58b9e:[()=>Promise.all([n.e(8592),n.e(4132)]).then(n.bind(n,64132)),"@site/blog/2020-03-16-Making-Flow-error-suppressions-more-specific.md",64132],b638890a:[()=>Promise.all([n.e(8592),n.e(7493)]).then(n.bind(n,37493)),"@site/blog/2016-07-01-New-Unions-Intersections.md?truncated=true",37493],b8605767:[()=>Promise.all([n.e(8592),n.e(7322)]).then(n.bind(n,87322)),"@site/blog/2017-07-27-Opaque-Types.md",87322],ba134b70:[()=>Promise.all([n.e(8592),n.e(3619)]).then(n.bind(n,43619)),"@site/blog/2020-05-18-Types-First-A-Scalable-New-Architecture-for-Flow.md",43619],ba3cba1f:[()=>Promise.all([n.e(8592),n.e(1908)]).then(n.bind(n,11908)),"@site/blog/2015-10-07-Version-0.17.0.md?truncated=true",11908],ba769f8c:[()=>Promise.all([n.e(8592),n.e(7324)]).then(n.bind(n,97324)),"@site/blog/2023-08-17-Announcing-5-new-Flow-tuple-type-features.md",97324],ba8405e9:[()=>Promise.all([n.e(8592),n.e(287)]).then(n.bind(n,60287)),"@site/blog/2023-01-17-Local-Type-Inference.md?truncated=true",60287],bac2ecab:[()=>Promise.all([n.e(8592),n.e(1466)]).then(n.bind(n,11466)),"@site/blog/2017-05-07-Strict-Function-Call-Arity.md",11466],bc1ef7db:[()=>Promise.all([n.e(8592),n.e(1848)]).then(n.bind(n,1848)),"@site/blog/2018-03-16-New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals.md?truncated=true",1848],bd2c9af2:[()=>Promise.all([n.e(532),n.e(8592),n.e(9466)]).then(n.bind(n,29466)),"@site/docs/types/modules.md",29466],bd3efcef:[()=>Promise.all([n.e(532),n.e(8592),n.e(3389)]).then(n.bind(n,23389)),"@site/docs/types/arrays.md",23389],bda0a621:[()=>Promise.all([n.e(8592),n.e(168)]).then(n.bind(n,10168)),"@site/blog/2023-01-17-Local-Type-Inference.md",10168],c0c47fbb:[()=>Promise.all([n.e(8592),n.e(1105)]).then(n.bind(n,41105)),"@site/blog/2019-10-30-Spreads-Common-Errors-and-Fixes.md?truncated=true",41105],c28c9f4c:[()=>Promise.all([n.e(8592),n.e(8641)]).then(n.bind(n,58641)),"@site/blog/2021-09-13-TypeScript-Enums-vs-Flow-Enums.md?truncated=true",58641],c3387ac1:[()=>Promise.all([n.e(532),n.e(8592),n.e(5131)]).then(n.bind(n,45131)),"@site/docs/types/indexed-access.md",45131],c377a04b:[()=>Promise.all([n.e(532),n.e(8592),n.e(3847)]).then(n.bind(n,73847)),"@site/docs/index.md",73847],c4de80f8:[()=>Promise.all([n.e(532),n.e(8592),n.e(7520)]).then(n.bind(n,7520)),"@site/docs/install.md",7520],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(5239)]).then(n.bind(n,95239)),"@site/src/pages/index.js",95239],c56ec64d:[()=>Promise.all([n.e(8592),n.e(6470)]).then(n.bind(n,46470)),"@site/blog/2017-08-16-Even-Better-Support-for-React-in-Flow.md?truncated=true",46470],c61e173e:[()=>Promise.all([n.e(8592),n.e(9307)]).then(n.bind(n,19307)),"@site/blog/2023-02-16-Exact-object-types-by-default-by-default.md",19307],c935ef9f:[()=>Promise.all([n.e(532),n.e(8592),n.e(2860)]).then(n.bind(n,2860)),"@site/docs/lang/type-hierarchy.md",2860],c9e6dd55:[()=>Promise.all([n.e(8592),n.e(6020)]).then(n.bind(n,16020)),"@site/blog/2015-02-20-Flow-Comments.md?truncated=true",16020],ccc49370:[()=>Promise.all([n.e(532),n.e(8592),n.e(6894),n.e(3539)]).then(n.bind(n,65203)),"@theme/BlogPostPage",65203],ccf70fff:[()=>Promise.all([n.e(8592),n.e(1313)]).then(n.bind(n,61313)),"@site/blog/2022-10-20-Improved-handling-of-the-empty-object-in-Flow.md",61313],cdf37a1d:[()=>Promise.all([n.e(8592),n.e(2837)]).then(n.bind(n,52837)),"@site/blog/2015-02-18-Import-Types.md",52837],ce2beed8:[()=>Promise.all([n.e(532),n.e(8592),n.e(6081)]).then(n.bind(n,66081)),"@site/docs/types/classes.md",66081],cee75076:[()=>Promise.all([n.e(8592),n.e(7466)]).then(n.bind(n,7466)),"@site/blog/2018-12-13-React-Abstract-Component.md",7466],d25022d5:[()=>n.e(5745).then(n.t.bind(n,15745,19)),"/home/circleci/flow/website/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",15745],d589d3a7:[()=>Promise.all([n.e(532),n.e(8592),n.e(9390)]).then(n.bind(n,99390)),"@site/docs/getting-started.md",99390],d94d234a:[()=>Promise.all([n.e(8592),n.e(3905)]).then(n.bind(n,73905)),"@site/blog/2019-10-25-Live-Flow-Errors-in-your-IDE.md?truncated=true",73905],db9c8b69:[()=>Promise.all([n.e(532),n.e(8592),n.e(1086)]).then(n.bind(n,61086)),"@site/docs/enums/using-enums.md",61086],deed17e4:[()=>Promise.all([n.e(532),n.e(8592),n.e(3898)]).then(n.bind(n,73898)),"@site/docs/types/aliases.md",73898],e06cc5ae:[()=>Promise.all([n.e(532),n.e(8592),n.e(4991)]).then(n.bind(n,94991)),"@site/docs/config/declarations.md",94991],e1d0b0e7:[()=>Promise.all([n.e(8592),n.e(4422)]).then(n.bind(n,74422)),"@site/blog/2018-03-16-New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals.md",74422],e23ef6ec:[()=>Promise.all([n.e(532),n.e(8592),n.e(1958)]).then(n.bind(n,1958)),"@site/docs/types/comments.md",1958],e2c2b05a:[()=>Promise.all([n.e(532),n.e(8592),n.e(3525)]).then(n.bind(n,73525)),"@site/docs/libdefs/creation.md",73525],e3555d4f:[()=>Promise.all([n.e(532),n.e(8592),n.e(9337)]).then(n.bind(n,89337)),"@site/docs/enums/defining-enums.md",89337],e58aeffb:[()=>n.e(7085).then(n.t.bind(n,7085,19)),"/home/circleci/flow/website/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],ec7083e4:[()=>Promise.all([n.e(532),n.e(8592),n.e(2798)]).then(n.bind(n,22798)),"@site/docs/lang/depth-subtyping.md",22798],ec748175:[()=>Promise.all([n.e(8592),n.e(1984)]).then(n.bind(n,81984)),"@site/blog/2019-10-30-Spreads-Common-Errors-and-Fixes.md",81984],ed6c4993:[()=>Promise.all([n.e(532),n.e(8592),n.e(2975)]).then(n.bind(n,2975)),"@site/docs/errors/index.md",2975],ef1d3ef7:[()=>Promise.all([n.e(8592),n.e(3818)]).then(n.bind(n,23818)),"@site/blog/2016-08-01-Windows-Support.md",23818],f0993487:[()=>Promise.all([n.e(8592),n.e(6778)]).then(n.bind(n,16778)),"@site/blog/2020-02-19-Improvements-to-Flow-in-2019.md",16778],f1ce6d33:[()=>Promise.all([n.e(8592),n.e(8712)]).then(n.bind(n,68712)),"@site/blog/2019-2-8-A-More-Responsive-Flow.md?truncated=true",68712],f3aa7666:[()=>Promise.all([n.e(532),n.e(8592),n.e(8396)]).then(n.bind(n,88396)),"@site/docs/types/generics.md",88396],f3ccad72:[()=>Promise.all([n.e(532),n.e(8592),n.e(3997)]).then(n.bind(n,13997)),"@site/docs/cli/coverage.md",13997],f3f01bf9:[()=>Promise.all([n.e(8592),n.e(2625)]).then(n.bind(n,12625)),"@site/blog/2021-06-02-Sound-Typing-for-this-in-Flow.md",12625],f4043d76:[()=>Promise.all([n.e(8592),n.e(2108)]).then(n.bind(n,22108)),"@site/blog/2016-10-04-Property-Variance.md",22108],f5c59384:[()=>Promise.all([n.e(8592),n.e(776)]).then(n.bind(n,10776)),"@site/blog/2020-11-16-Flows-Improved-Handling-of-Generic-Types.md?truncated=true",10776],f6a97d3f:[()=>Promise.all([n.e(532),n.e(8592),n.e(7216)]).then(n.bind(n,17216)),"@site/docs/config/untyped.md",17216],f7269812:[()=>Promise.all([n.e(8592),n.e(3031)]).then(n.bind(n,33031)),"@site/blog/2015-09-22-Version-0.16.0.md",33031],f73cdd84:[()=>Promise.all([n.e(8592),n.e(6094)]).then(n.bind(n,56094)),"@site/blog/2015-02-18-Typecasts.md",56094],f7710724:[()=>Promise.all([n.e(532),n.e(8592),n.e(9225)]).then(n.bind(n,79225)),"@site/docs/types/intersections.md",79225],f8222af9:[()=>Promise.all([n.e(532),n.e(8592),n.e(8027)]).then(n.bind(n,38027)),"@site/docs/editors/webstorm.md",38027],f85b6e96:[()=>Promise.all([n.e(532),n.e(8592),n.e(64)]).then(n.bind(n,40064)),"@site/docs/editors/vscode.md",40064],f8910b2d:[()=>n.e(1661).then(n.bind(n,51661)),"@site/src/pages/try.js",51661],f9dfb1df:[()=>Promise.all([n.e(8592),n.e(6567)]).then(n.bind(n,96567)),"@site/blog/2022-09-30-Requiring-More-Annotations-on-Functions-and-Classes.md?truncated=true",96567],fad02e7a:[()=>Promise.all([n.e(8592),n.e(2554)]).then(n.bind(n,52554)),"@site/blog/2017-09-03-Flow-Support-in-Recompose.md",52554],fe33e49c:[()=>Promise.all([n.e(8592),n.e(4511)]).then(n.bind(n,4511)),"@site/blog/2019-08-20-Changes-to-Object-Spreads.md?truncated=true",4511],fed34737:[()=>Promise.all([n.e(532),n.e(8592),n.e(4508)]).then(n.bind(n,94508)),"@site/docs/types/objects.md",94508]};function c(e){let{error:t,retry:n,pastDelay:o}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):o?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(99670),d=n(30226);function p(e,t){if("*"===e)return i()({loading:c,loader:()=>n.e(4972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const a=l[e+"-"+t],p={},f=[],m=[],h=(0,u.Z)(a);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),i().Map({loading:c,loader:p,modules:f,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(a));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error("The page component at "+e+" doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.");"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let a=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{a=a[e]})),a[l[l.length-1]]=o}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,o.Z)({},i,n)))}})}const f=[{path:"/blog/",component:p("/blog/","739"),exact:!0},{path:"/blog/2015/02/18/Import-Types/",component:p("/blog/2015/02/18/Import-Types/","296"),exact:!0},{path:"/blog/2015/02/18/Typecasts/",component:p("/blog/2015/02/18/Typecasts/","7b4"),exact:!0},{path:"/blog/2015/02/20/Flow-Comments/",component:p("/blog/2015/02/20/Flow-Comments/","618"),exact:!0},{path:"/blog/2015/03/12/Bounded-Polymorphism/",component:p("/blog/2015/03/12/Bounded-Polymorphism/","a7c"),exact:!0},{path:"/blog/2015/07/03/Disjoint-Unions/",component:p("/blog/2015/07/03/Disjoint-Unions/","db3"),exact:!0},{path:"/blog/2015/07/29/Version-0.14.0/",component:p("/blog/2015/07/29/Version-0.14.0/","2ba"),exact:!0},{path:"/blog/2015/09/10/Version-0.15.0/",component:p("/blog/2015/09/10/Version-0.15.0/","202"),exact:!0},{path:"/blog/2015/09/22/Version-0.16.0/",component:p("/blog/2015/09/22/Version-0.16.0/","87a"),exact:!0},{path:"/blog/2015/10/07/Version-0.17.0/",component:p("/blog/2015/10/07/Version-0.17.0/","f21"),exact:!0},{path:"/blog/2015/11/09/Generators/",component:p("/blog/2015/11/09/Generators/","e2d"),exact:!0},{path:"/blog/2015/12/01/Version-0.19.0/",component:p("/blog/2015/12/01/Version-0.19.0/","c77"),exact:!0},{path:"/blog/2016/02/02/Version-0.21.0/",component:p("/blog/2016/02/02/Version-0.21.0/","779"),exact:!0},{path:"/blog/2016/07/01/New-Unions-Intersections/",component:p("/blog/2016/07/01/New-Unions-Intersections/","a42"),exact:!0},{path:"/blog/2016/08/01/Windows-Support/",component:p("/blog/2016/08/01/Windows-Support/","605"),exact:!0},{path:"/blog/2016/10/04/Property-Variance/",component:p("/blog/2016/10/04/Property-Variance/","de3"),exact:!0},{path:"/blog/2016/10/13/Flow-Typed/",component:p("/blog/2016/10/13/Flow-Typed/","5b7"),exact:!0},{path:"/blog/2017/05/07/Strict-Function-Call-Arity/",component:p("/blog/2017/05/07/Strict-Function-Call-Arity/","625"),exact:!0},{path:"/blog/2017/07/27/Opaque-Types/",component:p("/blog/2017/07/27/Opaque-Types/","ec2"),exact:!0},{path:"/blog/2017/08/04/Linting-in-Flow/",component:p("/blog/2017/08/04/Linting-in-Flow/","33e"),exact:!0},{path:"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow/",component:p("/blog/2017/08/16/Even-Better-Support-for-React-in-Flow/","469"),exact:!0},{path:"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases/",component:p("/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases/","61d"),exact:!0},{path:"/blog/2017/09/03/Flow-Support-in-Recompose/",component:p("/blog/2017/09/03/Flow-Support-in-Recompose/","045"),exact:!0},{path:"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem/",component:p("/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem/","2ff"),exact:!0},{path:"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals/",component:p("/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals/","f09"),exact:!0},{path:"/blog/2018/10/18/Exact-Objects-By-Default/",component:p("/blog/2018/10/18/Exact-Objects-By-Default/","f68"),exact:!0},{path:"/blog/2018/10/29/Asking-for-Required-Annotations/",component:p("/blog/2018/10/29/Asking-for-Required-Annotations/","558"),exact:!0},{path:"/blog/2018/12/13/React-Abstract-Component/",component:p("/blog/2018/12/13/React-Abstract-Component/","5d1"),exact:!0},{path:"/blog/2019/08/20/Changes-to-Object-Spreads/",component:p("/blog/2019/08/20/Changes-to-Object-Spreads/","9cd"),exact:!0},{path:"/blog/2019/1/28/What-the-flow-team-has-been-up-to/",component:p("/blog/2019/1/28/What-the-flow-team-has-been-up-to/","f39"),exact:!0},{path:"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE/",component:p("/blog/2019/10/25/Live-Flow-Errors-in-your-IDE/","b62"),exact:!0},{path:"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes/",component:p("/blog/2019/10/30/Spreads-Common-Errors-and-Fixes/","6ad"),exact:!0},{path:"/blog/2019/2/8/A-More-Responsive-Flow/",component:p("/blog/2019/2/8/A-More-Responsive-Flow/","2f8"),exact:!0},{path:"/blog/2019/4/9/Upgrading-Flow-Codebases/",component:p("/blog/2019/4/9/Upgrading-Flow-Codebases/","46e"),exact:!0},{path:"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax/",component:p("/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax/","892"),exact:!0},{path:"/blog/2020/02/19/Improvements-to-Flow-in-2019/",component:p("/blog/2020/02/19/Improvements-to-Flow-in-2019/","2d9"),exact:!0},{path:"/blog/2020/03/09/What-were-building-in-2020/",component:p("/blog/2020/03/09/What-were-building-in-2020/","51b"),exact:!0},{path:"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific/",component:p("/blog/2020/03/16/Making-Flow-error-suppressions-more-specific/","566"),exact:!0},{path:"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow/",component:p("/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow/","f26"),exact:!0},{path:"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types/",component:p("/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types/","d53"),exact:!0},{path:"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow/",component:p("/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow/","41b"),exact:!0},{path:"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement/",component:p("/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement/","5d9"),exact:!0},{path:"/blog/2021/06/02/Sound-Typing-for-this-in-Flow/",component:p("/blog/2021/06/02/Sound-Typing-for-this-in-Flow/","584"),exact:!0},{path:"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/",component:p("/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/","74f"),exact:!0},{path:"/blog/2021/09/13/Introducing-Flow-Enums/",component:p("/blog/2021/09/13/Introducing-Flow-Enums/","4f6"),exact:!0},{path:"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/",component:p("/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/","2b4"),exact:!0},{path:"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/",component:p("/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/","c88"),exact:!0},{path:"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/",component:p("/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/","8f4"),exact:!0},{path:"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/",component:p("/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/","382"),exact:!0},{path:"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/",component:p("/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/","03f"),exact:!0},{path:"/blog/2023/01/17/Local-Type-Inference/",component:p("/blog/2023/01/17/Local-Type-Inference/","662"),exact:!0},{path:"/blog/2023/02/16/Exact-object-types-by-default-by-default/",component:p("/blog/2023/02/16/Exact-object-types-by-default-by-default/","6cd"),exact:!0},{path:"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/",component:p("/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/","f6c"),exact:!0},{path:"/blog/2023/04/10/Unused-Promise/",component:p("/blog/2023/04/10/Unused-Promise/","77d"),exact:!0},{path:"/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/",component:p("/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/","27f"),exact:!0},{path:"/blog/archive/",component:p("/blog/archive/","6f6"),exact:!0},{path:"/blog/page/2/",component:p("/blog/page/2/","e19"),exact:!0},{path:"/search/",component:p("/search/","6a7"),exact:!0},{path:"/try/",component:p("/try/","4ee"),exact:!0},{path:"/en/docs/",component:p("/en/docs/","397"),routes:[{path:"/en/docs/",component:p("/en/docs/","afb"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/cli/",component:p("/en/docs/cli/","2b2"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/cli/annotate-exports/",component:p("/en/docs/cli/annotate-exports/","28e"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/cli/coverage/",component:p("/en/docs/cli/coverage/","341"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/",component:p("/en/docs/config/","2a9"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/declarations/",component:p("/en/docs/config/declarations/","9bc"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/ignore/",component:p("/en/docs/config/ignore/","5a7"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/include/",component:p("/en/docs/config/include/","8c0"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/libs/",component:p("/en/docs/config/libs/","175"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/lints/",component:p("/en/docs/config/lints/","690"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/options/",component:p("/en/docs/config/options/","4ed"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/untyped/",component:p("/en/docs/config/untyped/","d06"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/version/",component:p("/en/docs/config/version/","38c"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/declarations/",component:p("/en/docs/declarations/","38e"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/editors/",component:p("/en/docs/editors/","de9"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/editors/emacs/",component:p("/en/docs/editors/emacs/","05a"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/editors/sublime-text/",component:p("/en/docs/editors/sublime-text/","615"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/editors/vim/",component:p("/en/docs/editors/vim/","427"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/editors/vscode/",component:p("/en/docs/editors/vscode/","71c"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/editors/webstorm/",component:p("/en/docs/editors/webstorm/","ecd"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/enums/",component:p("/en/docs/enums/","613"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/enums/defining-enums/",component:p("/en/docs/enums/defining-enums/","a51"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/enums/enabling-enums/",component:p("/en/docs/enums/enabling-enums/","616"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/enums/migrating-legacy-patterns/",component:p("/en/docs/enums/migrating-legacy-patterns/","329"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/enums/using-enums/",component:p("/en/docs/enums/using-enums/","cc2"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/errors/",component:p("/en/docs/errors/","06a"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/faq/",component:p("/en/docs/faq/","9fc"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/getting-started/",component:p("/en/docs/getting-started/","ba1"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/install/",component:p("/en/docs/install/","d51"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/annotation-requirement/",component:p("/en/docs/lang/annotation-requirement/","c98"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/depth-subtyping/",component:p("/en/docs/lang/depth-subtyping/","902"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/lazy-modes/",component:p("/en/docs/lang/lazy-modes/","4b6"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/nominal-structural/",component:p("/en/docs/lang/nominal-structural/","5a3"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/refinements/",component:p("/en/docs/lang/refinements/","5f1"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/subtypes/",component:p("/en/docs/lang/subtypes/","eac"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/type-hierarchy/",component:p("/en/docs/lang/type-hierarchy/","145"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/types-and-expressions/",component:p("/en/docs/lang/types-and-expressions/","31d"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/types-first/",component:p("/en/docs/lang/types-first/","774"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/variables/",component:p("/en/docs/lang/variables/","b43"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/variance/",component:p("/en/docs/lang/variance/","a0b"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/width-subtyping/",component:p("/en/docs/lang/width-subtyping/","412"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/libdefs/",component:p("/en/docs/libdefs/","8aa"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/libdefs/creation/",component:p("/en/docs/libdefs/creation/","f58"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/linting/",component:p("/en/docs/linting/","250"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/linting/flowlint-comments/",component:p("/en/docs/linting/flowlint-comments/","d2a"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/linting/rule-reference/",component:p("/en/docs/linting/rule-reference/","288"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/react/",component:p("/en/docs/react/","235"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/react/components/",component:p("/en/docs/react/components/","2cc"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/react/events/",component:p("/en/docs/react/events/","0b4"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/react/hoc/",component:p("/en/docs/react/hoc/","6e8"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/react/multiplatform/",component:p("/en/docs/react/multiplatform/","fe6"),exact:!0},{path:"/en/docs/react/refs/",component:p("/en/docs/react/refs/","353"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/react/types/",component:p("/en/docs/react/types/","e09"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/strict/",component:p("/en/docs/strict/","ead"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/tools/",component:p("/en/docs/tools/","605"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/tools/babel/",component:p("/en/docs/tools/babel/","226"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/tools/eslint/",component:p("/en/docs/tools/eslint/","d1a"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/tools/flow-remove-types/",component:p("/en/docs/tools/flow-remove-types/","64a"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/",component:p("/en/docs/types/","04d"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/aliases/",component:p("/en/docs/types/aliases/","c04"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/any/",component:p("/en/docs/types/any/","31c"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/arrays/",component:p("/en/docs/types/arrays/","b21"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/casting/",component:p("/en/docs/types/casting/","a86"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/classes/",component:p("/en/docs/types/classes/","458"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/comments/",component:p("/en/docs/types/comments/","ddf"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/conditional/",component:p("/en/docs/types/conditional/","075"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/empty/",component:p("/en/docs/types/empty/","ea1"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/functions/",component:p("/en/docs/types/functions/","3ea"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/generators/",component:p("/en/docs/types/generators/","695"),exact:!0},{path:"/en/docs/types/generics/",component:p("/en/docs/types/generics/","375"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/indexed-access/",component:p("/en/docs/types/indexed-access/","601"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/interfaces/",component:p("/en/docs/types/interfaces/","d50"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/intersections/",component:p("/en/docs/types/intersections/","3bf"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/literals/",component:p("/en/docs/types/literals/","8c4"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/mapped-types/",component:p("/en/docs/types/mapped-types/","685"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/maybe/",component:p("/en/docs/types/maybe/","99c"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/mixed/",component:p("/en/docs/types/mixed/","a27"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/modules/",component:p("/en/docs/types/modules/","0b1"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/objects/",component:p("/en/docs/types/objects/","83b"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/opaque-types/",component:p("/en/docs/types/opaque-types/","699"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/primitives/",component:p("/en/docs/types/primitives/","90e"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/tuples/",component:p("/en/docs/types/tuples/","e39"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/type-guards/",component:p("/en/docs/types/type-guards/","613"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/typeof/",component:p("/en/docs/types/typeof/","38e"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/unions/",component:p("/en/docs/types/unions/","438"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/utilities/",component:p("/en/docs/types/utilities/","231"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/usage/",component:p("/en/docs/usage/","6bd"),exact:!0,sidebar:"docsSidebar"}]},{path:"/",component:p("/","f2c"),exact:!0},{path:"*",component:p("*")}]},98934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>a});var r=n(67294);const o=r.createContext(!1);function a(e){let{children:t}=e;const[n,a]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{a(!0)}),[]),r.createElement(o.Provider,{value:n},t)}},49383:(e,t,n)=>{"use strict";var r=n(67294),o=n(73935),a=n(73727),i=n(70405),l=n(10412);const s=[n(74367),n(32497),n(3310),n(18320),n(52295),n(92509)];var c=n(723),u=n(76775),d=n(18790);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(87462),m=n(35742),h=n(52263),g=n(44996),b=n(86668),v=n(10833),y=n(94711),w=n(19727),k=n(43320),S=n(90197);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.default)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:o}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:o})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.default)(),o=function(){const{siteConfig:{url:e}}=(0,h.default)(),{pathname:t}=(0,u.TH)();return e+(0,g.default)(t)}(),a=t?""+n+t:o;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:a}),r.createElement("link",{rel:"canonical",href:a}))}function x(){const{i18n:{currentLocale:e}}=(0,h.default)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(_,null),r.createElement(E,null),r.createElement(S.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,f.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var P=n(98934),A=n(58940);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const o=s.map((t=>{var r,o;const a=null!=(r=null==(o=t.default)?void 0:o[e])?r:t[e];return null==a?void 0:a(...n)}));return()=>o.forEach((e=>null==e?void 0:e()))}const L=function(e){let{children:t,location:n,previousLocation:o}=e;return(0,r.useLayoutEffect)((()=>{o!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);null==t||t.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:o}),R("onRouteDidUpdate",{previousLocation:o,location:n}))}),[o,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(c.Z,e))).flat();return Promise.all(t.map((e=>null==e.route.component.preload?void 0:e.route.component.preload())))}class N extends r.Component{constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.default.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(L,{previousLocation:this.previousLocation,location:t},r.createElement(u.AW,{location:t,render:()=>e}))}}const I=N,D="__docusaurus-base-url-issue-banner-container",F="__docusaurus-base-url-issue-banner-suggestion-container",M="__DOCUSAURUS_INSERT_BASEURL_BANNER";function j(e){return"\nwindow['"+M+"'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['"+M+"'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('"+D+"');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = "+JSON.stringify(function(e){return'\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">'+e+"</span> "+("/"===e?" (default value)":"")+'</p>\n <p>We suggest trying baseUrl = <span id="'+F+'" style="font-weight: bold; color: green;"></span></p>\n</div>\n'}(e)).replace(/</g,"\\<")+";\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('"+F+"');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n"}function B(){const{siteConfig:{baseUrl:e}}=(0,h.default)();return(0,r.useLayoutEffect)((()=>{window[M]=!1}),[]),r.createElement(r.Fragment,null,!l.default.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,j(e))),r.createElement("div",{id:D}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.default)(),{pathname:n}=(0,u.TH)();return t&&n===e?r.createElement(B,null):null}function z(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:o,localeConfigs:a}}=(0,h.default)(),i=(0,g.default)(e),{htmlLang:l,direction:s}=a[o];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(44763);function G(){const e=(0,d.H)(c.Z),t=(0,u.TH)();return r.createElement(q.Z,null,r.createElement(A.M,null,r.createElement(P.t,null,r.createElement(p,null,r.createElement(z,null),r.createElement(x,null),r.createElement(U,null),r.createElement(I,{location:T(t)},e)))))}var H=n(16887);const $=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{var r,o;if("undefined"==typeof document)return void n();const a=document.createElement("link");a.setAttribute("rel","prefetch"),a.setAttribute("href",e),a.onload=()=>t(),a.onerror=()=>n();const i=null!=(r=document.getElementsByTagName("head")[0])?r:null==(o=document.getElementsByName("script")[0])?void 0:o.parentNode;null==i||i.appendChild(a)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(99670);const W=new Set,Z=new Set,K=()=>{var e,t;return(null==(e=navigator.connection)?void 0:e.effectiveType.includes("2g"))||(null==(t=navigator.connection)?void 0:t.saveData)},Y={prefetch(e){if(!(e=>!K()&&!Z.has(e)&&!W.has(e))(e))return!1;W.add(e);const t=(0,d.f)(c.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(H).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?$(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!Z.has(e))(e)&&(Z.add(e),O(e))},Q=Object.freeze(Y);if(l.default.canUseDOM){window.docusaurus=Q;const e=o.hydrate;O(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(a.VK,null,r.createElement(G,null))),document.getElementById("__docusaurus"))}))}},58940:(e,t,n)=>{"use strict";n.d(t,{_:()=>u,M:()=>d});var r=n(67294),o=n(36809);const a=JSON.parse('{"internaldocs-fb":{"default":{"opts":{"docs":{"routeBasePath":"en/docs","sidebarPath":"/home/circleci/flow/website/sidebars.js","editUrl":"https://github.com/facebook/flow/edit/main/website/","remarkPlugins":[[null,{"sync":true}],null,[null,{"strippedFilePattern":{}}],[null,{}],[null,{"version":"v1"}],null]},"staticDocsProject":"flow","blog":{"path":"blog","postsPerPage":50,"showReadingTime":false,"blogSidebarCount":"ALL","blogSidebarTitle":"All our posts"},"theme":{"customCss":"/home/circleci/flow/website/src/css/custom.css"},"googleAnalytics":{"trackingID":"UA-49208336-4","anonymizeIP":true},"id":"default"},"docsDir":"/home/circleci/flow/website/docs","repoRootToWebsiteRoot":"home/circleci/flow/website"}},"docusaurus-plugin-content-docs":{"default":{"path":"/en/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/en/docs","mainDocId":"index","docs":[{"id":"cli/annotate-exports","path":"/en/docs/cli/annotate-exports","sidebar":"docsSidebar"},{"id":"cli/coverage","path":"/en/docs/cli/coverage","sidebar":"docsSidebar"},{"id":"cli/index","path":"/en/docs/cli","sidebar":"docsSidebar"},{"id":"config/declarations","path":"/en/docs/config/declarations","sidebar":"docsSidebar"},{"id":"config/ignore","path":"/en/docs/config/ignore","sidebar":"docsSidebar"},{"id":"config/include","path":"/en/docs/config/include","sidebar":"docsSidebar"},{"id":"config/index","path":"/en/docs/config","sidebar":"docsSidebar"},{"id":"config/libs","path":"/en/docs/config/libs","sidebar":"docsSidebar"},{"id":"config/lints","path":"/en/docs/config/lints","sidebar":"docsSidebar"},{"id":"config/options","path":"/en/docs/config/options","sidebar":"docsSidebar"},{"id":"config/untyped","path":"/en/docs/config/untyped","sidebar":"docsSidebar"},{"id":"config/version","path":"/en/docs/config/version","sidebar":"docsSidebar"},{"id":"declarations/index","path":"/en/docs/declarations","sidebar":"docsSidebar"},{"id":"editors/emacs","path":"/en/docs/editors/emacs","sidebar":"docsSidebar"},{"id":"editors/index","path":"/en/docs/editors","sidebar":"docsSidebar"},{"id":"editors/sublime-text","path":"/en/docs/editors/sublime-text","sidebar":"docsSidebar"},{"id":"editors/vim","path":"/en/docs/editors/vim","sidebar":"docsSidebar"},{"id":"editors/vscode","path":"/en/docs/editors/vscode","sidebar":"docsSidebar"},{"id":"editors/webstorm","path":"/en/docs/editors/webstorm","sidebar":"docsSidebar"},{"id":"enums/defining-enums","path":"/en/docs/enums/defining-enums","sidebar":"docsSidebar"},{"id":"enums/enabling-enums","path":"/en/docs/enums/enabling-enums","sidebar":"docsSidebar"},{"id":"enums/index","path":"/en/docs/enums","sidebar":"docsSidebar"},{"id":"enums/migrating-legacy-patterns","path":"/en/docs/enums/migrating-legacy-patterns","sidebar":"docsSidebar"},{"id":"enums/using-enums","path":"/en/docs/enums/using-enums","sidebar":"docsSidebar"},{"id":"errors/index","path":"/en/docs/errors","sidebar":"docsSidebar"},{"id":"faq","path":"/en/docs/faq","sidebar":"docsSidebar"},{"id":"getting-started","path":"/en/docs/getting-started","sidebar":"docsSidebar"},{"id":"index","path":"/en/docs/","sidebar":"docsSidebar"},{"id":"install","path":"/en/docs/install","sidebar":"docsSidebar"},{"id":"lang/annotation-requirement","path":"/en/docs/lang/annotation-requirement","sidebar":"docsSidebar"},{"id":"lang/depth-subtyping","path":"/en/docs/lang/depth-subtyping","sidebar":"docsSidebar"},{"id":"lang/lazy-modes","path":"/en/docs/lang/lazy-modes","sidebar":"docsSidebar"},{"id":"lang/nominal-structural","path":"/en/docs/lang/nominal-structural","sidebar":"docsSidebar"},{"id":"lang/refinements","path":"/en/docs/lang/refinements","sidebar":"docsSidebar"},{"id":"lang/subtypes","path":"/en/docs/lang/subtypes","sidebar":"docsSidebar"},{"id":"lang/type-hierarchy","path":"/en/docs/lang/type-hierarchy","sidebar":"docsSidebar"},{"id":"lang/types-and-expressions","path":"/en/docs/lang/types-and-expressions","sidebar":"docsSidebar"},{"id":"lang/types-first","path":"/en/docs/lang/types-first","sidebar":"docsSidebar"},{"id":"lang/variables","path":"/en/docs/lang/variables","sidebar":"docsSidebar"},{"id":"lang/variance","path":"/en/docs/lang/variance","sidebar":"docsSidebar"},{"id":"lang/width-subtyping","path":"/en/docs/lang/width-subtyping","sidebar":"docsSidebar"},{"id":"libdefs/creation","path":"/en/docs/libdefs/creation","sidebar":"docsSidebar"},{"id":"libdefs/index","path":"/en/docs/libdefs","sidebar":"docsSidebar"},{"id":"linting/flowlint-comments","path":"/en/docs/linting/flowlint-comments","sidebar":"docsSidebar"},{"id":"linting/index","path":"/en/docs/linting","sidebar":"docsSidebar"},{"id":"linting/rule-reference","path":"/en/docs/linting/rule-reference","sidebar":"docsSidebar"},{"id":"react/components","path":"/en/docs/react/components","sidebar":"docsSidebar"},{"id":"react/events","path":"/en/docs/react/events","sidebar":"docsSidebar"},{"id":"react/hoc","path":"/en/docs/react/hoc","sidebar":"docsSidebar"},{"id":"react/index","path":"/en/docs/react","sidebar":"docsSidebar"},{"id":"react/multiplatform","path":"/en/docs/react/multiplatform"},{"id":"react/refs","path":"/en/docs/react/refs","sidebar":"docsSidebar"},{"id":"react/types","path":"/en/docs/react/types","sidebar":"docsSidebar"},{"id":"strict/index","path":"/en/docs/strict","sidebar":"docsSidebar"},{"id":"tools/babel","path":"/en/docs/tools/babel","sidebar":"docsSidebar"},{"id":"tools/eslint","path":"/en/docs/tools/eslint","sidebar":"docsSidebar"},{"id":"tools/flow-remove-types","path":"/en/docs/tools/flow-remove-types","sidebar":"docsSidebar"},{"id":"tools/index","path":"/en/docs/tools","sidebar":"docsSidebar"},{"id":"types/aliases","path":"/en/docs/types/aliases","sidebar":"docsSidebar"},{"id":"types/any","path":"/en/docs/types/any","sidebar":"docsSidebar"},{"id":"types/arrays","path":"/en/docs/types/arrays","sidebar":"docsSidebar"},{"id":"types/casting","path":"/en/docs/types/casting","sidebar":"docsSidebar"},{"id":"types/classes","path":"/en/docs/types/classes","sidebar":"docsSidebar"},{"id":"types/comments","path":"/en/docs/types/comments","sidebar":"docsSidebar"},{"id":"types/conditional","path":"/en/docs/types/conditional","sidebar":"docsSidebar"},{"id":"types/empty","path":"/en/docs/types/empty","sidebar":"docsSidebar"},{"id":"types/functions","path":"/en/docs/types/functions","sidebar":"docsSidebar"},{"id":"types/generators","path":"/en/docs/types/generators"},{"id":"types/generics","path":"/en/docs/types/generics","sidebar":"docsSidebar"},{"id":"types/index","path":"/en/docs/types","sidebar":"docsSidebar"},{"id":"types/indexed-access","path":"/en/docs/types/indexed-access","sidebar":"docsSidebar"},{"id":"types/interfaces","path":"/en/docs/types/interfaces","sidebar":"docsSidebar"},{"id":"types/intersections","path":"/en/docs/types/intersections","sidebar":"docsSidebar"},{"id":"types/literals","path":"/en/docs/types/literals","sidebar":"docsSidebar"},{"id":"types/mapped-types","path":"/en/docs/types/mapped-types","sidebar":"docsSidebar"},{"id":"types/maybe","path":"/en/docs/types/maybe","sidebar":"docsSidebar"},{"id":"types/mixed","path":"/en/docs/types/mixed","sidebar":"docsSidebar"},{"id":"types/modules","path":"/en/docs/types/modules","sidebar":"docsSidebar"},{"id":"types/objects","path":"/en/docs/types/objects","sidebar":"docsSidebar"},{"id":"types/opaque-types","path":"/en/docs/types/opaque-types","sidebar":"docsSidebar"},{"id":"types/primitives","path":"/en/docs/types/primitives","sidebar":"docsSidebar"},{"id":"types/tuples","path":"/en/docs/types/tuples","sidebar":"docsSidebar"},{"id":"types/type-guards","path":"/en/docs/types/type-guards","sidebar":"docsSidebar"},{"id":"types/typeof","path":"/en/docs/types/typeof","sidebar":"docsSidebar"},{"id":"types/unions","path":"/en/docs/types/unions","sidebar":"docsSidebar"},{"id":"types/utilities","path":"/en/docs/types/utilities","sidebar":"docsSidebar"},{"id":"usage","path":"/en/docs/usage","sidebar":"docsSidebar"}],"draftIds":[],"sidebars":{"docsSidebar":{"link":{"path":"/en/docs/getting-started","label":"getting-started"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(57529);const s=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-google-analytics":{"type":"package","name":"@docusaurus/plugin-google-analytics","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.1"},"internaldocs-fb":{"type":"package","name":"docusaurus-plugin-internaldocs-fb","version":"1.4.0"},"polyfillNodeBuiltinsForFlowJS":{"type":"local"},"enableWasm":{"type":"local"},"enableSomeEnvVarsAsBuildTimeConstants":{"type":"local"},"enableMonacoEditorPlugin":{"type":"local"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"2.4.1"}}}'),c={siteConfig:o.default,siteMetadata:s,globalData:a,i18n:i,codeTranslations:l},u=r.createContext(c);function d(e){let{children:t}=e;return r.createElement(u.Provider,{value:c},t)}},44763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(67294),o=n(10412),a=n(35742),i=n(18780),l=n(89007);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(c,{error:t}))}function c(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function u(e){let{error:t,tryAgain:n}=e;return r.createElement(p,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(a.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(u,e);class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.default.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){var n;const e={error:t,tryAgain:()=>this.setState({error:null})};return(null!=(n=this.props.fallback)?n:d)(e)}return null!=e?e:null}}},10412:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},35742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294),o=n(70405);function a(e){return r.createElement(o.ql,e)}},39960:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>f});var r=n(87462),o=n(67294),a=n(73727),i=n(18780),l=n(52263),s=n(13919),c=n(10412);const u=o.createContext({collectLink:()=>{}});var d=n(44996);function p(e,t){var n,p;let{isNavLink:f,to:m,href:h,activeClassName:g,isActive:b,"data-noBrokenLinkCheck":v,autoAddBaseUrl:y=!0,...w}=e;const{siteConfig:{trailingSlash:k,baseUrl:S}}=(0,l.default)(),{withBaseUrl:E}=(0,d.useBaseUrlUtils)(),_=(0,o.useContext)(u),x=(0,o.useRef)(null);(0,o.useImperativeHandle)(t,(()=>x.current));const C=m||h;const T=(0,s.Z)(C),P=null==C?void 0:C.replace("pathname://","");let A=void 0!==P?(R=P,y&&(e=>e.startsWith("/"))(R)?E(R):R):void 0;var R;A&&T&&(A=(0,i.applyTrailingSlash)(A,{trailingSlash:k,baseUrl:S}));const L=(0,o.useRef)(!1),O=f?a.OL:a.rU,N=c.default.canUseIntersectionObserver,I=(0,o.useRef)(),D=()=>{L.current||null==A||(window.docusaurus.preload(A),L.current=!0)};(0,o.useEffect)((()=>(!N&&T&&null!=A&&window.docusaurus.prefetch(A),()=>{N&&I.current&&I.current.disconnect()})),[I,A,N,T]);const F=null!=(n=null==(p=A)?void 0:p.startsWith("#"))&&n,M=!A||!T||F;return M||v||_.collectLink(A),M?o.createElement("a",(0,r.Z)({ref:x,href:A},C&&!T&&{target:"_blank",rel:"noopener noreferrer"},w)):o.createElement(O,(0,r.Z)({},w,{onMouseEnter:D,onTouchStart:D,innerRef:e=>{x.current=e,N&&e&&T&&(I.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(I.current.unobserve(e),I.current.disconnect(),null!=A&&window.docusaurus.prefetch(A))}))})),I.current.observe(e))},to:A},f&&{isActive:b,activeClassName:g}))}const f=o.forwardRef(p)},95999:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s,translate:()=>l});var r=n(67294);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=null==t?void 0:t[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var a=n(57529);function i(e){var t,n;let{id:r,message:o}=e;if(void 0===r&&void 0===o)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return null!=(t=null!=(n=a[null!=r?r:o])?n:o)?t:r}function l(e,t){let{message:n,id:r}=e;return o(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:a}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,o(l,a))}},29935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},13919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>o,b:()=>r})},44996:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l,useBaseUrlUtils:()=>i});var r=n(67294),o=n(52263),a=n(13919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.default)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},52263:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(67294),o=n(58940);function a(){return(0,r.useContext)(o._)}},28084:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a,useAllPluginInstancesData:()=>i,usePluginData:()=>l});var r=n(52263),o=n(29935);function a(){const{globalData:e}=(0,r.default)();return e}function i(e,t){void 0===t&&(t={});const n=a()[e];if(!n&&t.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin.');return n}function l(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=null==r?void 0:r[t];if(!a&&n.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin with id "'+t+'".');return a}},72389:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(67294),o=n(98934);function a(){return(0,r.useContext)(o._)}},99670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});function r(e){const t={};return function e(n,r){Object.entries(n).forEach((n=>{let[o,a]=n;const i=r?r+"."+o:o;var l;"object"==typeof(l=a)&&l&&Object.keys(l).length>0?e(a,i):t[i]=a}))}(e),t}},30226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>a});var r=n(67294);const o=r.createContext(null);function a(e){let{children:t,value:n}=e;const a=r.useContext(o),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...null==n?void 0:n.data};return{plugin:t.plugin,data:r}}({parent:a,value:n})),[a,n]);return r.createElement(o.Provider,{value:i},t)}},94104:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>h,gA:()=>d,WS:()=>p,_r:()=>c,Jo:()=>g,zh:()=>u,yW:()=>m,gB:()=>f});var r=n(76775),o=n(28084);const a=e=>e.versions.find((e=>e.isLast));function i(e,t){const n=a(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function l(e,t){const n=i(e,t),o=null==n?void 0:n.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const s={},c=()=>{var e;return null!=(e=(0,o.useAllPluginInstancesData)("docusaurus-plugin-content-docs"))?e:s},u=e=>(0,o.usePluginData)("docusaurus-plugin-content-docs",e,{failfast:!0});function d(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error("Can't find active docs plugin for \""+t+'" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: '+Object.values(e).map((e=>e.path)).join(", "));return a}(t,n,e)}function p(e){void 0===e&&(e={});const t=d(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:i(t.pluginData,n)}}function f(e){return u(e).versions}function m(e){const t=u(e);return a(t)}function h(e){const t=u(e),{pathname:n}=(0,r.TH)();return l(t,n)}function g(e){const t=u(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=a(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},74367:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate(e){let{location:t,previousLocation:n}=e;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||(window.ga("set","page",t.pathname+t.search+t.hash),window.ga("send","pageview"))}}},18320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(74865),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(87410),o=n(36809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)("./prism-"+e)})),delete globalThis.Prism}(r.Z)},97245:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(87462),o=n(67294);function a(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:i=1.2,className:l,...s}=e;return o.createElement("svg",(0,r.Z)({viewBox:"0 0 15 15",width:t,height:n},s),o.createElement("g",{stroke:a,strokeWidth:i},o.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}},39471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294);const o="iconExternalLink_nPIU";function a(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:o},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},89007:(e,t,n)=>{"use strict";n.d(t,{Z:()=>oe});var r=n(67294),o=n(86010),a=n(44763),i=n(10833),l=n(55225),s=n(35281),c=n(19727);const u="skipToContent_fXgn";function d(){return r.createElement(l.l,{className:u})}var p=n(86668),f=n(59689),m=n(87462),h=n(95999),g=n(97245);const b="closeButton_CVFx";function v(e){return r.createElement("button",(0,m.Z)({type:"button","aria-label":(0,h.translate)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,o.default)("clean-btn close",b,e.className)}),r.createElement(g.Z,{width:14,height:14,strokeWidth:3.1}))}const y="content_knG7";function w(e){const{announcementBar:t}=(0,p.L)(),{content:n}=t;return r.createElement("div",(0,m.Z)({},e,{className:(0,o.default)(y,e.className),dangerouslySetInnerHTML:{__html:n}}))}const k="announcementBar_mb4j",S="announcementBarPlaceholder_vyr4",E="announcementBarClose_gvF7",_="announcementBarContent_xLdY";function x(){const{announcementBar:e}=(0,p.L)(),{isActive:t,close:n}=(0,f.nT)();if(!t)return null;const{backgroundColor:o,textColor:a,isCloseable:i}=e;return r.createElement("div",{className:k,style:{backgroundColor:o,color:a},role:"banner"},i&&r.createElement("div",{className:S}),r.createElement(w,{className:_}),i&&r.createElement(v,{onClick:n,className:E}))}var C=n(51854),T=n(42489),P=n(39960),A=n(44996),R=n(13919),L=n(39471);function O(e){let{item:t}=e;const{to:n,href:o,label:a,prependBaseUrlToHref:i,...l}=t,s=(0,A.default)(n),c=(0,A.default)(o,{forcePrependBaseUrl:!0});return r.createElement(P.default,(0,m.Z)({className:"footer__link-item"},o?{href:i?c:o}:{to:s},l),a,o&&!(0,R.Z)(o)&&r.createElement(L.Z,null))}function N(e){var t;let{item:n}=e;return n.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:n.html}}):r.createElement("li",{key:null!=(t=n.href)?t:n.to,className:"footer__item"},r.createElement(O,{item:n}))}function I(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(N,{key:t,item:e})))))}function D(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(I,{key:t,column:e}))))}function F(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function M(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(O,{item:t})}function j(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(M,{item:e}),t.length!==n+1&&r.createElement(F,null))))))}function B(e){let{links:t}=e;return(0,T.a)(t)?r.createElement(D,{columns:t}):r.createElement(j,{links:t})}var U=n(50941);const z="footerLogoLink_BH7S";function q(e){var t;let{logo:n}=e;const{withBaseUrl:a}=(0,A.useBaseUrlUtils)(),i={light:a(n.src),dark:a(null!=(t=n.srcDark)?t:n.src)};return r.createElement(U.Z,{className:(0,o.default)("footer__logo",n.className),alt:n.alt,sources:i,width:n.width,height:n.height,style:n.style})}function G(e){let{logo:t}=e;return t.href?r.createElement(P.default,{href:t.href,className:z,target:t.target},r.createElement(q,{logo:t})):r.createElement(q,{logo:t})}function H(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function $(e){let{style:t,links:n,logo:a,copyright:i}=e;return r.createElement("footer",{className:(0,o.default)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(a||i)&&r.createElement("div",{className:"footer__bottom text--center"},a&&r.createElement("div",{className:"margin-bottom--sm"},a),i)))}function V(){const{footer:e}=(0,p.L)();if(!e)return null;const{copyright:t,links:n,logo:o,style:a}=e;return r.createElement($,{style:a,links:n&&n.length>0&&r.createElement(B,{links:n}),logo:o&&r.createElement(G,{logo:o}),copyright:t&&r.createElement(H,{copyright:t})})}const W=r.memo(V);var Z=n(902),K=n(92949),Y=n(12466),Q=n(60373),X=n(58978);const J=(0,Z.Qc)([K.S,f.pl,Y.OC,Q.L5,i.VC,X.V]);function ee(e){let{children:t}=e;return r.createElement(J,null,t)}var te=n(69690);function ne(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(h.default,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(te.Cw,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(te.aG,{error:t})))))}const re="mainWrapper_z2l0";function oe(e){const{children:t,noFooter:n,wrapperClassName:u,title:p,description:f}=e;return(0,c.t)(),r.createElement(ee,null,r.createElement(i.d,{title:p,description:f}),r.createElement(d,null),r.createElement(x,null),r.createElement(C.Z,null),r.createElement("div",{id:l.u,className:(0,o.default)(s.k.wrapper.main,re,u)},r.createElement(a.Z,{fallback:e=>r.createElement(ne,e)},t)),!n&&r.createElement(W,null))}},21327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(87462),o=n(67294),a=n(39960),i=n(44996),l=n(52263),s=n(86668),c=n(50941);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,i.default)(t.src),dark:(0,i.default)(t.srcDark||t.src)},l=o.createElement(c.Z,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?o.createElement("div",{className:r},l):l}function d(e){var t;const{siteConfig:{title:n}}=(0,l.default)(),{navbar:{title:c,logo:d}}=(0,s.L)(),{imageClassName:p,titleClassName:f,...m}=e,h=(0,i.default)((null==d?void 0:d.href)||"/"),g=c?"":n,b=null!=(t=null==d?void 0:d.alt)?t:g;return o.createElement(a.default,(0,r.Z)({to:h},m,(null==d?void 0:d.target)&&{target:d.target}),d&&o.createElement(u,{logo:d,alt:b,imageClassName:p}),null!=c&&o.createElement("b",{className:f},c))}},51854:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Me});var r=n(67294),o=n(87462),a=n(86010),i=n(86668),l=n(93163),s=n(85936),c=n(12466);var u=n(95999);var d=n(76857);function p(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=(0,d.Y)();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.default)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var f=n(92949),m=n(72389);function h(e){return r.createElement("svg",(0,o.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function g(e){return r.createElement("svg",(0,o.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const b={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function v(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const l=(0,m.default)(),s=(0,u.translate)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,u.translate)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.translate)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.default)(b.toggle,t)},r.createElement("button",{className:(0,a.default)("clean-btn",b.toggleButton,!l&&b.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(h,{className:(0,a.default)(b.toggleIcon,b.lightToggleIcon)}),r.createElement(g,{className:(0,a.default)(b.toggleIcon,b.darkToggleIcon)})))}const y=r.memo(v),w="darkNavbarColorModeToggle_X3D1";function k(e){let{className:t}=e;const n=(0,i.L)().navbar.style,o=(0,i.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:l}=(0,f.I)();return o?null:r.createElement(y,{className:t,buttonClassName:"dark"===n?w:void 0,value:a,onChange:l})}var S=n(97245),E=n(21327);function _(){return r.createElement(E.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function x(){const e=(0,l.e)();return r.createElement("button",{type:"button","aria-label":(0,u.translate)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(S.Z,{color:"var(--ifm-color-emphasis-600)"}))}function C(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(_,null),r.createElement(k,{className:"margin-right--md"}),r.createElement(x,null))}var T=n(39960),P=n(44996),A=n(13919),R=n(98022),L=n(39471);function O(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:i,label:l,html:s,isDropdownLink:c,prependBaseUrlToHref:u,...d}=e;const p=(0,P.default)(a),f=(0,P.default)(t),m=(0,P.default)(i,{forcePrependBaseUrl:!0}),h=l&&i&&!(0,A.Z)(i),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,l,h&&r.createElement(L.Z,c&&{width:12,height:12}))};return i?r.createElement(T.default,(0,o.Z)({href:u?m:i},d,g)):r.createElement(T.default,(0,o.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,R.F)(n,t.pathname):t.pathname.startsWith(f)},d,g))}function N(e){let{className:t,isDropdownItem:n=!1,...i}=e;const l=r.createElement(O,(0,o.Z)({className:(0,a.default)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},i));return n?r.createElement("li",null,l):l}function I(e){let{className:t,isDropdownItem:n,...i}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(O,(0,o.Z)({className:(0,a.default)("menu__link",t)},i)))}function D(e){var t;let{mobile:n=!1,position:a,...i}=e;const l=n?I:N;return r.createElement(l,(0,o.Z)({},i,{activeClassName:null!=(t=i.activeClassName)?t:n?"menu__link--active":"navbar__link--active"}))}var F=n(86043),M=n(48596),j=n(76775),B=n(52263);function U(e,t){return e.some((e=>function(e,t){return!!(0,M.Mg)(e.to,t)||!!(0,R.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function z(e){var t;let{items:n,position:i,className:l,onClick:s,...c}=e;const u=(0,r.useRef)(null),[d,p]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&p(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.default)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===i,"dropdown--show":d})},r.createElement(O,(0,o.Z)({"aria-haspopup":"true","aria-expanded":d,role:"button",href:c.to?void 0:"#",className:(0,a.default)("navbar__link",l)},c,{onClick:c.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),p(!d))}}),null!=(t=c.children)?t:c.label),r.createElement("ul",{className:"dropdown__menu"},n.map(((e,t)=>r.createElement(we,(0,o.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function q(e){var t;let{items:n,className:i,position:l,onClick:s,...c}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,B.default)(),{pathname:t}=(0,j.TH)();return t.replace(e,"/")}(),d=U(n,u),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,F.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[u,d,m]),r.createElement("li",{className:(0,a.default)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(O,(0,o.Z)({role:"button",className:(0,a.default)("menu__link menu__link--sublist menu__link--sublist-caret",i)},c,{onClick:e=>{e.preventDefault(),f()}}),null!=(t=c.children)?t:c.label),r.createElement(F.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},n.map(((e,t)=>r.createElement(we,(0,o.Z)({mobile:!0,isDropdownItem:!0,onClick:s,activeClassName:"menu__link--active"},e,{key:t}))))))}function G(e){let{mobile:t=!1,...n}=e;const o=t?q:z;return r.createElement(o,n)}var H=n(94711);function $(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,o.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const V="iconLanguage_nlXk";function W(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var Z=n(20830),K=["translations"];function Y(){return Y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Y.apply(this,arguments)}function Q(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,a=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(s){l=!0,o=s}finally{try{i||null==n.return||n.return()}finally{if(l)throw o}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return X(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return X(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function X(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function J(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ee="Ctrl";var te=r.forwardRef((function(e,t){var n=e.translations,o=void 0===n?{}:n,a=J(e,K),i=o.buttonText,l=void 0===i?"Search":i,s=o.buttonAriaLabel,c=void 0===s?"Search":s,u=Q((0,r.useState)(null),2),d=u[0],p=u[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?p("\u2318"):p(ee))}),[]),r.createElement("button",Y({type:"button",className:"DocSearch DocSearch-Button","aria-label":c},a,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(Z.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},l)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===ee?r.createElement(W,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),ne=n(35742),re=n(66177),oe=n(239),ae=n(43320);var ie=n(73935);const le={button:{buttonText:(0,u.translate)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,u.translate)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,u.translate)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,u.translate)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,u.translate)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,u.translate)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,u.translate)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,u.translate)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,u.translate)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,u.translate)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,u.translate)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,u.translate)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,u.translate)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,u.translate)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,u.translate)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,u.translate)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,u.translate)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,u.translate)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,u.translate)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,u.translate)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,u.translate)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,u.translate)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,u.translate)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,u.translate)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,u.translate)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,u.translate)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,u.translate)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let se=null;function ce(e){let{hit:t,children:n}=e;return r.createElement(T.default,{to:t.url},n)}function ue(e){let{state:t,onClose:n}=e;const o=(0,re.M)();return r.createElement(T.default,{to:o(t.query),onClick:n},r.createElement(u.default,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function de(e){var t,a;let{contextualSearch:i,externalUrlRegex:l,...s}=e;const{siteMetadata:c}=(0,B.default)(),u=(0,oe.l)(),d=function(){const{locale:e,tags:t}=(0,ae._q)();return["language:"+e,t.map((e=>"docusaurus_tag:"+e))]}(),p=null!=(t=null==(a=s.searchParameters)?void 0:a.facetFilters)?t:[],f=i?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(d,p):p,m={...s.searchParameters,facetFilters:f},h=(0,j.k6)(),g=(0,r.useRef)(null),b=(0,r.useRef)(null),[v,y]=(0,r.useState)(!1),[w,k]=(0,r.useState)(void 0),S=(0,r.useCallback)((()=>se?Promise.resolve():Promise.all([n.e(6780).then(n.bind(n,76780)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,46945)),Promise.all([n.e(532),n.e(8894)]).then(n.bind(n,18894))]).then((e=>{let[{DocSearchModal:t}]=e;se=t}))),[]),E=(0,r.useCallback)((()=>{S().then((()=>{g.current=document.createElement("div"),document.body.insertBefore(g.current,document.body.firstChild),y(!0)}))}),[S,y]),_=(0,r.useCallback)((()=>{var e;y(!1),null==(e=g.current)||e.remove()}),[y]),x=(0,r.useCallback)((e=>{S().then((()=>{y(!0),k(e.key)}))}),[S,y,k]),C=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,R.F)(l,t)?window.location.href=t:h.push(t)}}).current,T=(0,r.useRef)((e=>s.transformItems?s.transformItems(e):e.map((e=>({...e,url:u(e.url)}))))).current,P=(0,r.useMemo)((()=>e=>r.createElement(ue,(0,o.Z)({},e,{onClose:_}))),[_]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",c.docusaurusVersion),e)),[c.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,o=e.onClose,a=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){(27===e.keyCode&&t||"k"===e.key&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?o():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&a&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&a(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,o,a,i])}({isOpen:v,onOpen:E,onClose:_,onInput:x,searchButtonRef:b}),r.createElement(r.Fragment,null,r.createElement(ne.Z,null,r.createElement("link",{rel:"preconnect",href:"https://"+s.appId+"-dsn.algolia.net",crossOrigin:"anonymous"})),r.createElement(te,{onTouchStart:S,onFocus:S,onMouseOver:S,onClick:E,ref:b,translations:le.button}),v&&se&&g.current&&(0,ie.createPortal)(r.createElement(se,(0,o.Z)({onClose:_,initialScrollY:window.scrollY,initialQuery:w,navigator:C,transformItems:T,hitComponent:ce,transformSearchClient:A},s.searchPagePath&&{resultsFooterComponent:P},s,{searchParameters:m,placeholder:le.placeholder,translations:le.modal})),g.current))}function pe(){const{siteConfig:e}=(0,B.default)();return r.createElement(de,e.themeConfig.algolia)}const fe="searchBox_ZlJk";function me(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.default)(n,fe)},t)}var he=n(94104),ge=n(53438);var be=n(60373);const ve=e=>e.docs.find((t=>t.id===e.mainDocId));const ye={default:D,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...i}=e;const{i18n:{currentLocale:l,locales:s,localeConfigs:c}}=(0,B.default)(),d=(0,H.l)(),{search:p,hash:f}=(0,j.TH)(),m=[...n,...s.map((e=>{const n=""+("pathname://"+d.createUrl({locale:e,fullyQualified:!1}))+p+f;return{label:c[e].label,lang:c[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===l?t?"menu__link--active":"dropdown__link--active":""}})),...a],h=t?(0,u.translate)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):c[l].label;return r.createElement(G,(0,o.Z)({},i,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement($,{className:V}),h),items:m}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(me,{className:n},r.createElement(pe,null))},dropdown:G,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.default)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:l}=(0,he.Iw)(a),s=(0,ge.vY)(t,a);return null===s?null:r.createElement(D,(0,o.Z)({exact:!0},i,{isActive:()=>(null==l?void 0:l.path)===s.path||!(null==l||!l.sidebar)&&l.sidebar===s.sidebar,label:null!=n?n:s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:l}=(0,he.Iw)(a),s=(0,ge.oz)(t,a).link;if(!s)throw new Error('DocSidebarNavbarItem: Sidebar with ID "'+t+"\" doesn't have anything to be linked to.");return r.createElement(D,(0,o.Z)({exact:!0},i,{isActive:()=>(null==l?void 0:l.sidebar)===t,label:null!=n?n:s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...i}=e;const l=(0,ge.lO)(a)[0],s=null!=t?t:l.label,c=null!=n?n:(e=>e.docs.find((t=>t.id===e.mainDocId)))(l).path;return r.createElement(D,(0,o.Z)({},i,{label:s,to:c}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:i,dropdownItemsAfter:l,...s}=e;const{search:c,hash:d}=(0,j.TH)(),p=(0,he.Iw)(n),f=(0,he.gB)(n),{savePreferredVersionName:m}=(0,be.J)(n),h=[...i,...f.map((e=>{var t;const n=null!=(t=p.alternateDocVersions[e.name])?t:ve(e);return{label:e.label,to:""+n.path+c+d,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...l],g=(0,ge.lO)(n)[0],b=t&&h.length>1?(0,u.translate)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,v=t&&h.length>1?void 0:ve(g).path;return h.length<=1?r.createElement(D,(0,o.Z)({},s,{mobile:t,label:b,to:v,isActive:a?()=>!1:void 0})):r.createElement(G,(0,o.Z)({},s,{mobile:t,label:b,to:v,items:h,isActive:a?()=>!1:void 0}))}};function we(e){let{type:t,...n}=e;const o=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=ye[o];if(!a)throw new Error('No NavbarItem component found for type "'+t+'".');return r.createElement(a,n)}function ke(){const e=(0,l.e)(),t=(0,i.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(we,(0,o.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Se(e){return r.createElement("button",(0,o.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.default,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ee(){const e=0===(0,i.L)().navbar.items.length,t=(0,d.Y)();return r.createElement(r.Fragment,null,!e&&r.createElement(Se,{onClick:()=>t.hide()}),t.content)}function _e(){const e=(0,l.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(p,{header:r.createElement(C,null),primaryMenu:r.createElement(ke,null),secondaryMenu:r.createElement(Ee,null)}):null}const xe="navbarHideable_m1mJ",Ce="navbarHidden_jGov";function Te(e){return r.createElement("div",(0,o.Z)({role:"presentation"},e,{className:(0,a.default)("navbar-sidebar__backdrop",e.className)}))}function Pe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,i.L)(),d=(0,l.e)(),{navbarRef:p,isNavbarVisible:f}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,c.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<a.current)return void n(!0);if(o.current)return void(o.current=!1);const l=null==r?void 0:r.scrollY,s=document.documentElement.scrollHeight-a.current,c=window.innerHeight;l&&i>=l?n(!1):i+c<s&&n(!0)})),(0,s.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:p,"aria-label":(0,u.translate)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.default)("navbar","navbar--fixed-top",n&&[xe,!f&&Ce],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":d.shown})},t,r.createElement(Te,{onClick:d.toggle}),r.createElement(_e,null))}var Ae=n(69690),Re=n(58978);function Le(e){let{width:t=30,height:n=30,className:a,...i}=e;return r.createElement("svg",(0,o.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},i),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function Oe(){const{toggle:e,shown:t}=(0,l.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.translate)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(Le,null))}const Ne="colorModeToggle_DEke";function Ie(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(Ae.QW,{key:t,onError:t=>new Error("A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n"+JSON.stringify(e,null,2),{cause:t})},r.createElement(we,e)))))}function De(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function Fe(){const e=(0,l.e)(),t=(0,i.L)().navbar.items,[n,o]=(0,Re.A)(t),a=t.find((e=>"search"===e.type));return r.createElement(De,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(Oe,null),r.createElement(_,null),r.createElement(Ie,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(Ie,{items:o}),r.createElement(k,{className:Ne}),!a&&r.createElement(me,null,r.createElement(pe,null)))})}function Me(){return r.createElement(Pe,null,r.createElement(Fe,null))}},90197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294),o=n(35742);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return r.createElement(o.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),a&&r.createElement("meta",{name:"docusaurus_tag",content:a}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),a&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:a}))}},50941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(87462),o=n(67294),a=n(86010),i=n(72389),l=n(92949);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function c(e){const t=(0,i.default)(),{colorMode:n}=(0,l.I)(),{sources:c,className:u,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,f.map((e=>o.createElement("img",(0,r.Z)({key:e,src:c[e],alt:d,className:(0,a.default)(s.themedImage,s["themedImage--"+e],u)},p)))))}},86043:(e,t,n)=>{"use strict";n.d(t,{u:()=>l,z:()=>h});var r=n(87462),o=n(67294),a=n(10412),i=n(91442);function l(e){let{initialState:t}=e;const[n,r]=(0,o.useState)(null!=t&&t),a=(0,o.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:a}}const s={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function u(e,t){const n=t?s:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const a=(0,o.useRef)(!1);(0,o.useEffect)((()=>{const e=t.current;function o(){var t,n;const o=e.scrollHeight,a=null!=(t=null==r?void 0:r.duration)?t:function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(o);return{transition:"height "+a+"ms "+(null!=(n=null==r?void 0:r.easing)?n:"ease-in-out"),height:o+"px"}}function l(){const t=o();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return u(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(l(),requestAnimationFrame((()=>{e.style.height=s.height,e.style.overflow=s.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{l()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function p(e){if(!a.default.canUseDOM)return e?s:c}function f(e){let{as:t="div",collapsed:n,children:r,animation:a,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const c=(0,o.useRef)(null);return d({collapsibleRef:c,collapsed:n,animation:a}),o.createElement(t,{ref:c,style:s?void 0:p(n),onTransitionEnd:e=>{"height"===e.propertyName&&(u(c.current,n),null==i||i(n))},className:l},r)}function m(e){let{collapsed:t,...n}=e;const[a,i]=(0,o.useState)(!t),[l,s]=(0,o.useState)(t);return(0,o.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,o.useLayoutEffect)((()=>{a&&s(t)}),[a,t]),a?o.createElement(f,(0,r.Z)({},n,{collapsed:l})):null}function h(e){let{lazy:t,...n}=e;const r=t?m:f;return o.createElement(r,n)}},59689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>f});var r=n(67294),o=n(72389),a=n(50012),i=n(902),l=n(86668);const s=(0,a.WA)("docusaurus.announcement.dismiss"),c=(0,a.WA)("docusaurus.announcement.id"),u=()=>"true"===s.get(),d=e=>s.set(String(e)),p=r.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,o.default)(),[n,a]=(0,r.useState)((()=>!!t&&u()));(0,r.useEffect)((()=>{a(u())}),[]);const i=(0,r.useCallback)((()=>{d(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&d(!1),!r&&u()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(p.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},92949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(67294),o=n(10412),a=n(902),i=n(50012),l=n(86668);const s=r.createContext(void 0),c="theme",u=(0,i.WA)(c),d="light",p="dark",f=e=>e===p?p:d;function m(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,i]=(0,r.useState)((e=>o.default.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e))(e));(0,r.useEffect)((()=>{t&&u.del()}),[t]);const s=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(i(t),o&&(e=>{u.set(f(e))})(t)):(i(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p:d:e),u.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=u.get();null!==t&&s(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,s]);const m=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||m.current?m.current=window.matchMedia("print").matches:s(null)};return e.addListener(r),()=>e.removeListener(r)}),[s,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:s,get isDarkTheme(){return a===p},setLightTheme(){s(d)},setDarkTheme(){s(p)}})),[a,s])}function h(e){let{children:t}=e;const n=m();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},60373:(e,t,n)=>{"use strict";n.d(t,{J:()=>y,L5:()=>b,Oh:()=>w});var r=n(67294),o=n(94104),a=n(29935),i=n(86668),l=n(53438),s=n(902),c=n(50012);const u=e=>"docs-preferred-version-"+e,d=(e,t,n)=>{(0,c.WA)(u(e),{persistence:t}).set(n)},p=(e,t)=>(0,c.WA)(u(e),{persistence:t}).get(),f=(e,t)=>{(0,c.WA)(u(e),{persistence:t}).del()};const m=r.createContext(null);function h(){const e=(0,o._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,l]=(0,r.useState)((()=>(e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}]))))(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=p(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(f(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=h();return r.createElement(m.Provider,{value:n},t)}function b(e){let{children:t}=e;return l.cE?r.createElement(g,null,t):r.createElement(r.Fragment,null,t)}function v(){const e=(0,r.useContext)(m);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function y(e){var t;void 0===e&&(e=a.m);const n=(0,o.zh)(e),[i,l]=v(),{preferredVersionName:s}=i[e];return{preferredVersion:null!=(t=n.versions.find((e=>e.name===s)))?t:null,savePreferredVersionName:(0,r.useCallback)((t=>{l.savePreferredVersion(e,t)}),[l,e])}}function w(){const e=(0,o._r)(),[t]=v();function n(n){var r;const o=e[n],{preferredVersionName:a}=t[n];return null!=(r=o.versions.find((e=>e.name===a)))?r:null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(67294),o=n(902);const a=Symbol("EmptyContext"),i=r.createContext(a);function l(e){let{children:t,name:n,items:o}=e;const a=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return r.createElement(i.Provider,{value:a},t)}function s(){const e=(0,r.useContext)(i);if(e===a)throw new o.i6("DocsSidebarProvider");return e}},74477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(67294),o=n(902);const a=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(a.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(a);if(null===e)throw new o.i6("DocsVersionProvider");return e}},93163:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>p});var r=n(67294),o=n(13102),a=n(87524),i=n(91980),l=n(86668),s=n(902);const c=r.createContext(void 0);function u(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,a.i)(),n=!e&&"mobile"===t,[s,c]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return c(!1),!1}));const u=(0,r.useCallback)((()=>{c((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&c(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:s})),[e,n,u,s])}function d(e){let{children:t}=e;const n=u();return r.createElement(c.Provider,{value:n},t)}function p(){const e=r.useContext(c);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},13102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(67294),o=n(902);const a=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(a.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(a);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(a);if(!i)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,o.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},76857:(e,t,n)=>{"use strict";n.d(t,{P:()=>s,Y:()=>u});var r=n(67294),o=n(902),a=n(93163),i=n(13102);const l=r.createContext(null);function s(e){let{children:t}=e;const n=function(){const e=(0,a.e)(),t=(0,i.HY)(),[n,l]=(0,r.useState)(!1),s=null!==t.component,c=(0,o.D9)(s);return(0,r.useEffect)((()=>{s&&!c&&l(!0)}),[s,c]),(0,r.useEffect)((()=>{s?e.shown||l(!0):l(!1)}),[e.shown,s]),(0,r.useMemo)((()=>[n,l]),[n])}();return r.createElement(l.Provider,{value:n},t)}function c(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function u(){const e=(0,r.useContext)(l);if(!e)throw new o.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),s=(0,i.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:c(s)})),[a,s,t])}},19727:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var r=n(67294);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},66177:(e,t,n)=>{"use strict";n.d(t,{K:()=>i,M:()=>l});var r=n(67294),o=n(52263),a=n(91980);function i(){return(0,a.Nc)("q")}function l(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,o.default)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>""+e+n+"?q="+encodeURIComponent(t)),[e,n])}},87524:(e,t,n)=>{"use strict";n.d(t,{i:()=>c});var r=n(67294),o=n(10412);const a="desktop",i="mobile",l="ssr";function s(){return o.default.canUseDOM?window.innerWidth>996?a:i:l}function c(){const[e,t]=(0,r.useState)((()=>s()));return(0,r.useEffect)((()=>{function e(){t(s())}return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),e}},35281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>"theme-admonition-"+e},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>"theme-doc-sidebar-item-category-level-"+e,docSidebarItemLinkLevel:e=>"theme-doc-sidebar-item-link-level-"+e},blog:{}}},91442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},53438:(e,t,n)=>{"use strict";n.d(t,{MN:()=>E,Wl:()=>m,_F:()=>b,cE:()=>p,hI:()=>S,jA:()=>h,lO:()=>y,oz:()=>w,vY:()=>k,xz:()=>f});var r=n(67294),o=n(76775),a=n(18790),i=n(94104),l=n(60373),s=n(74477),c=n(1116),u=n(67392),d=n(48596);const p=!!i._r;function f(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error("no version doc found by id="+e);return n}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function h(){const{pathname:e}=(0,o.TH)(),t=(0,c.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=v({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(e+" is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.");return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t);function b(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||((e,t)=>e.some((e=>b(e,t))))(e.items,t))}function v(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,d.Mg)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.Mg)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function y(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),o=(0,i.yW)(e);return(0,r.useMemo)((()=>(0,u.j)([t,n,o].filter(Boolean))),[t,n,o])}function w(e,t){const n=y(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error("Can't find any sidebar with id \""+e+'" in version'+(n.length>1?"s":"")+" "+n.map((e=>e.name)).join(", ")+'".\nAvailable sidebar ids are:\n- '+t.map((e=>e[0])).join("\n- "));return r[1]}),[e,n])}function k(e,t){const n=y(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error("Couldn't find any doc with id \""+e+'" in version'+(n.length>1?"s":"")+' "'+n.map((e=>e.name)).join(", ")+'".\nAvailable doc ids are:\n- '+(0,u.j)(t.map((e=>e.id))).join("\n- "))}return r}),[e,n])}function S(e){let{route:t,versionMetadata:n}=e;const r=(0,o.TH)(),i=t.routes,l=i.find((e=>(0,o.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,c=s?n.docsSidebars[s]:void 0;return{docElement:(0,a.H)(i),sidebarName:s,sidebarItems:c}}function E(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},69690:(e,t,n)=>{"use strict";n.d(t,{aG:()=>c,Cw:()=>s,QW:()=>u});var r=n(87462),o=n(67294),a=n(95999),i=n(18780);const l="errorBoundaryError_a6uf";function s(e){return o.createElement("button",(0,r.Z)({type:"button"},e),o.createElement(a.default,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function c(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return o.createElement("p",{className:l},n)}class u extends o.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}},42489:(e,t,n)=>{"use strict";function r(e){return"title"in e[0]}n.d(t,{a:()=>r})},82128:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(52263);function o(e){const{siteConfig:t}=(0,r.default)(),{title:n,titleDelimiter:o}=t;return null!=e&&e.trim().length?e.trim()+" "+o+" "+n:n}},91980:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>c,Rb:()=>l,_X:()=>s});var r=n(67294),o=n(76775),a=n(61688),i=n(902);function l(e){!function(e){const t=(0,o.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,o.k6)();return(0,a.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function c(e){var t;const n=null!=(t=s(e))?t:"",a=function(){const e=(0,o.k6)();return(0,r.useCallback)(((t,n,r)=>{const o=new URLSearchParams(e.location.search);n?o.set(t,n):o.delete(t),(null!=r&&r.push?e.push:e.replace)({search:o.toString()})}),[e])}();return[n,(0,r.useCallback)(((t,n)=>{a(e,t,n)}),[a,e])]}},67392:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function o(e){return Array.from(new Set(e))}n.d(t,{j:()=>o,l:()=>r})},10833:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>u,VC:()=>f});var r=n(67294),o=n(86010),a=n(35742),i=n(30226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(44996),c=n(82128);function u(e){let{title:t,description:n,keywords:o,image:i,children:l}=e;const u=(0,c.p)(t),{withBaseUrl:d}=(0,s.useBaseUrlUtils)(),p=i?d(i,{absolute:!0}):void 0;return r.createElement(a.Z,null,t&&r.createElement("title",null,u),t&&r.createElement("meta",{property:"og:title",content:u}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),o&&r.createElement("meta",{name:"keywords",content:Array.isArray(o)?o.join(","):o}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),l)}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,o.default)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(a.Z,null,r.createElement("html",{className:l})),n)}function f(e){let{children:t}=e;const n=l(),a="plugin-"+n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"");const i="plugin-id-"+n.plugin.id;return r.createElement(p,{className:(0,o.default)(a,i)},t)}},58978:(e,t,n)=>{"use strict";n.d(t,{A:()=>l,V:()=>s});var r=n(67294),o=n(93163),a=n(13102),i=n(76857);function l(e){function t(e){var t;return"left"===(null!=(t=e.position)?t:"right")}return[e.filter(t),e.filter((e=>!t(e)))]}function s(e){let{children:t}=e;return r.createElement(a.n2,null,r.createElement(o.M,null,r.createElement(i.P,null,t)))}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,LI:()=>o,Qc:()=>c,Ql:()=>s,i6:()=>l,zX:()=>a});var r=n(67294);const o=n(10412).default.canUseDOM?r.useLayoutEffect:r.useEffect;function a(e){const t=(0,r.useRef)(e);return o((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return o((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){var n,r,o,a;super(),this.name="ReactContextError",this.message="Hook "+(null!=(n=null==(r=this.stack)||null==(o=r.split("\n")[1])||null==(a=o.match(/at (?:\w+\.)?(?<name>\w+)/))?void 0:a.groups.name)?n:"")+" is called outside the <"+e+">. "+(null!=t?t:"")}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},98022:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},48596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>r});n(67294),n(723),n(52263);function r(e,t){const n=e=>{var t;return null==(t=!e||e.endsWith("/")?e:e+"/")?void 0:t.toLowerCase()};return n(e)===n(t)}},12466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>s,RF:()=>d,o5:()=>p});var r=n(67294),o=n(10412),a=n(72389),i=n(902);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function c(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const u=()=>o.default.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),o=(0,r.useRef)(u()),a=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=u();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function p(){const e=c(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),o=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>null==n.current?void 0:n.current()))})),{blockElementScrollPositionUntilNextRender:o}}function f(){const e=(0,r.useRef)(null),t=(0,a.default)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&o<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(o-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>null==e.current?void 0:e.current()}}},43320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(94104),o=n(52263),a=n(60373);const i="default";function l(e,t){return"docs-"+e+"-"+t}function s(){const{i18n:e}=(0,o.default)(),t=(0,r._r)(),n=(0,r.WS)(),s=(0,a.Oh)();const c=[i,...Object.keys(t).map((function(e){var r;const o=(null==n?void 0:n.activePlugin.pluginId)===e?n.activeVersion:void 0,a=s[e],i=t[e].versions.find((e=>e.isLast));return l(e,(null!=(r=null!=o?o:a)?r:i).name)}))];return{locale:e.currentLocale,tags:c}}},55225:(e,t,n)=>{"use strict";n.d(t,{l:()=>p,u:()=>s});var r=n(87462),o=n(67294),a=n(76775),i=n(95999),l=n(85936);const s="__docusaurus_skipToContent_fallback";function c(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function u(){const e=(0,o.useRef)(null),{action:t}=(0,a.k6)(),n=(0,o.useCallback)((e=>{e.preventDefault();const t=null!=(n=document.querySelector("main:first-of-type"))?n:document.getElementById(s);var n;t&&c(t)}),[]);return(0,l.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&c(e.current)})),{containerRef:e,onClick:n}}const d=(0,i.translate)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function p(e){var t;const n=null!=(t=e.children)?t:d,{containerRef:a,onClick:i}=u();return o.createElement("div",{ref:a,role:"region","aria-label":d},o.createElement("a",(0,r.Z)({},e,{href:"#"+s,onClick:i}),n))}},50012:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>u,_f:()=>p});var r=n(67294),o=n(61688);const a="localStorage";function i(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function l(e){if(void 0===e&&(e=a),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const c={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function u(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error('Illegal storage API usage for storage key "'+e+'".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.')}return{get:t,set:t,del:t,listen:t}}(e);const n=l(null==t?void 0:t.persistence);return null===n?c:{get:()=>{try{return n.getItem(e)}catch(t){return console.error("Docusaurus storage error, can't get key="+e,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error("Docusaurus storage error, can't set "+e+"="+t,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error("Docusaurus storage error, can't delete key="+e,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error("Docusaurus storage error, can't listen for changes of key="+e,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?c:u(e,t))).current(),a=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,o.useSyncExternalStore)(a,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}function p(e){void 0===e&&(e=a);const t=l(e);if(!t)return[];const n=[];for(let r=0;r<t.length;r+=1){const e=t.key(r);null!==e&&n.push(e)}return n}},94711:(e,t,n)=>{"use strict";n.d(t,{l:()=>a});var r=n(52263),o=n(76775);function a(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:a}}=(0,r.default)(),{pathname:i}=(0,o.TH)(),l=a===n?e:e.replace("/"+a+"/","/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:o}=e;return""+(o?t:"")+function(e){return e===n?""+l:""+l+e+"/"}(r)+s}}}},85936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(67294),o=n(76775),a=n(902);function i(e){const t=(0,o.TH)(),n=(0,a.D9)(t),i=(0,a.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},86668:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(52263);function o(){return(0,r.default)().siteConfig.themeConfig}},6278:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(52263);function o(){const{siteConfig:{themeConfig:e}}=(0,r.default)();return e}},239:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(67294),o=n(98022),a=n(44996),i=n(6278);function l(){const{withBaseUrl:e}=(0,a.useBaseUrlUtils)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const a=new URL(r);if((0,o.F)(t,a.href))return r;const i=""+(a.pathname+a.hash);return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:e+"/"}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},54143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},18780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(54143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},88991:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getSpecInfo=void 0;const r=n(38157);t.getSpecInfo=function(e){return(0,r.call)({module:"bloks",api:"getSpecInfo",args:{styleId:e}})}},38157:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.call=void 0;let n=!1,r=0;const o={},a=["staticdocs.thefacebook.com","localhost"];const i="undefined"!=typeof window&&new URL(window.location.href).searchParams.get("parentHostname")||"https://www.internalfb.com";t.call=function(e){if(!a.includes(window.location.hostname)&&!window.location.hostname.endsWith(".internalfb.com"))return Promise.reject(new Error("Not running on static docs"));n||(n=!0,window.addEventListener("message",(e=>{if("static-docs-bridge-response"!==e.data.event)return;const t=e.data.id;t in o||console.error("Recieved response for id: "+t+" with no matching receiver"),"response"in e.data?o[t].resolve(e.data.response):o[t].reject(new Error(e.data.error)),delete o[t]})));const t=r++,l=new Promise(((e,n)=>{o[t]={resolve:e,reject:n}})),s={event:"static-docs-bridge-call",id:t,module:e.module,api:e.api,args:e.args},c="localhost"===window.location.hostname?"*":i;return window.parent.postMessage(s,c),l}},86735:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.gk=t.getGKs=void 0;const r=n(38157);function o(){return(0,r.call)({module:"gks",api:"getGKs",args:{}})}t.getGKs=o;const a={};t.gk=function(e){return e in a?Promise.resolve(a[e]):o().then((t=>(a[e]=-1!==t.xfb_static_docs_query.static_docs_gks.findIndex((t=>t.name==e)),a[e]))).catch((()=>(a[e]=!1,a[e])))}},75707:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.reportContentSelected=t.reportFeatureUsage=t.reportContentCopied=void 0;const r=n(38157),o=()=>{};t.reportContentCopied=function(e){const{textContent:t}=e;return(0,r.call)({module:"feedback",api:"reportContentCopied",args:{textContent:t}}).then(o).catch(o)},t.reportFeatureUsage=function(e){const{featureName:t,id:n}=e;return console.log("used feature"),(0,r.call)({module:"feedback",api:"reportFeatureUsage",args:{featureName:t,id:n}}).then(o).catch(o)},t.reportContentSelected=function(e){const{textContent:t}=e;return(0,r.call)({module:"feedback",api:"reportContentSelected",args:{textContent:t}}).then(o).catch(o)}},86341:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.OssOnly=t.FbInternalOnly=t.getEphemeralDiffNumber=t.hasEphemeralDiffNumber=t.isInternal=t.validateFbContentArgs=t.fbInternalOnly=t.fbContent=t.checkGKs=t.inpageeditor=t.feedback=t.uidocs=t.bloks=void 0,t.bloks=a(n(88991)),t.uidocs=a(n(87688)),t.feedback=a(n(75707)),t.inpageeditor=a(n(19445)),t.checkGKs=a(n(86735));const i=["internal","external"];function l(e){return c(e),u()?"internal"in e?s(e.internal):[]:"external"in e?s(e.external):[]}function s(e){return"function"==typeof e?e():e}function c(e){if("object"!=typeof e)throw new Error("fbContent() args must be an object containing keys: "+i+". Instead got "+e);if(!Object.keys(e).find((e=>i.find((t=>t===e)))))throw new Error("No valid args found in "+JSON.stringify(e)+". Accepted keys: "+i);const t=Object.keys(e).filter((e=>!i.find((t=>t===e))));if(t.length>0)throw new Error("Unexpected keys "+t+" found in fbContent() args. Accepted keys: "+i)}function u(){try{return Boolean(!1)}catch(e){return console.log("process.env.FB_INTERNAL couldn't be read, maybe you forgot to add the required webpack EnvironmentPlugin config?",e),!1}}function d(){try{return null}catch(e){return console.log("process.env.PHABRICATOR_DIFF_NUMBER couldn't be read, maybe you forgot to add the required webpack EnvironmentPlugin config?",e),null}}t.fbContent=l,t.fbInternalOnly=function(e){return l({internal:e})},t.validateFbContentArgs=c,t.isInternal=u,t.hasEphemeralDiffNumber=function(){return Boolean(d())},t.getEphemeralDiffNumber=d,t.FbInternalOnly=function(e){return u()?e.children:null},t.OssOnly=function(e){return u()?null:e.children}},19445:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.submitDiff=t.DiffKind=void 0;const r=n(38157);!function(e){e.modify="modify",e.add="add"}(t.DiffKind||(t.DiffKind={})),t.submitDiff=function(e){const{file_path:t,new_content:n,project_name:o,diff_number:a,diff_kind:i}=e;return(0,r.call)({module:"inpageeditor",api:"createPhabricatorDiffApi",args:{file_path:t,new_content:n,project_name:o,diff_number:a,diff_kind:i}}).catch((e=>{throw new Error("Error occurred while trying to submit diff. Stack trace: "+e)}))}},87688:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getApi=t.docsets=void 0;const r=n(38157);t.docsets={BLOKS_CORE:"887372105406659"},t.getApi=function(e){const{name:t,framework:n,docset:o}=e;return(0,r.call)({module:"uidocs",api:"getApi",args:{name:t,framework:n,docset:o}})}},92509:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=r(n(10412)),a=n(86341),i=/^\//,l=/\/$/,s="__internaldocs_auto_redirect",c="internalfb.com",u="/intern/staticdocs",d="disableRedirect",p="[docusaurus-plugin-internaldocs-fb]";function f(e){const t=new URLSearchParams(window.location.search).get(e);return console.log('query "'+e+'": '+t),null!==t}t.default=function(){function e(e){if(window.location.hostname.endsWith(c))return;if(window.top==window.self&&window.location.hostname.endsWith(".thefacebook.com")&&!f(d)){const t=new URL(window.location.href);return t.hostname=c,t.port="","staticdocs.thefacebook.com"===window.location.hostname?t.pathname=u+e.pathname:t.pathname=u+window.location.hostname.split(".")[0]+e.pathname,console.log(p+" Redirecting to "+t.href),void(window.location.href=t.href)}const t=new AbortController,o=setTimeout((()=>t.abort()),2e3);fetch("https://staticdocs.thefacebook.com/ping",{signal:t.signal}).then((()=>{clearTimeout(o),fetch("https://www.internalfb.com/intern/internaldocs/check",{credentials:"include",referrerPolicy:"no-referrer-when-downgrade"}).then((e=>e.json())).then((e=>function(e){if(!e.showBanner||!e.redirectTo||!e.template)return;const t=document.getElementById("internaldocs-banner");if(t){const o=location.href,a=new URL(o).host,s=o.slice(o.indexOf(a)+a.length),c=e.redirectTo.replace(l,"")+"/"+(s?s.replace(i,""):"");f(d)&&(console.log(p+" Disabling redirect because of query parameter"),r(!1)),e.autoRedirectEnabled&&n()&&(console.log(p+" Redirecting to "+c),window.location.href=c),function(e,t,o,a){const i=t.match(/(.*)\{\{([^}]+)\}\}(.*)/);if(!i)return;const l=i[1]||"",s=i[2]||"",c=i[3]||"";Array.from(e.childNodes).map((t=>e.removeChild(t))),e.appendChild(document.createTextNode(l));const u=document.createElement("a");u.href=o,u.style.color="#3578e5",u.appendChild(document.createTextNode(s)),e.appendChild(u),e.appendChild(document.createTextNode(c));const d=document.createElement("p");d.style.fontSize="11px",d.style.marginBottom="3px";const p=document.createElement("input");p.id="internaldocs-remember-checkbox",p.type="checkbox",p.style.height="8px",p.checked=n(),p.addEventListener("change",(()=>{r(Boolean(p.checked))})),d.appendChild(p),a&&e.appendChild(d);const f=document.createElement("label");f.htmlFor="internaldocs-remember-checkbox",f.appendChild(document.createTextNode("Redirect me automatically in future")),d.appendChild(f),e.style.display="block"}(t,e.template,c,e.autoRedirectEnabled)}}(e))).catch((()=>{}))})).catch((()=>{}))}function t(){setTimeout((()=>{var e;null===(e=window.parent)||void 0===e||e.postMessage({event:"page-update",title:document.title,location:window.location.href,version:2},"*")}),0)}function n(){const e=localStorage.getItem(s);return"true"===e?(console.log(p+" opted in to auto redirects"),!0):"false"===e?(console.log(p+" opted out of auto redirects"),!1):(console.log(p+" using default auto-redirect behaviour: true"),!0)}function r(e){localStorage.setItem(s,e?"true":"false")}o.default.canUseDOM&&(e(window.location),t(),document.addEventListener("copy",(()=>{const e=document.getSelection();e&&a.feedback.reportContentCopied({textContent:e.toString()})})));return{onRouteUpdate:n=>{let{location:r}=n;e(r),t()}}}()},86010:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n);else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}function o(){for(var e,t,n=0,o="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}n.r(t),n.d(t,{clsx:()=>o,default:()=>a});const a=o},99318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>P,Ep:()=>p});var r=n(87462);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&o(e),s=t&&o(t),c=l||s;if(e&&o(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(2177);function s(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t,n=window.history,o=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,a=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,c=i.forceRefresh,w=void 0!==c&&c,k=i.getUserConfirmation,S=void 0===k?g:k,E=i.keyLength,_=void 0===E?6:E,x=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname+o.search+o.hash;return x&&(a=u(a,x)),f(a,r,n)}function T(){return Math.random().toString(36).substr(2,_)}var P=m();function A(e){(0,r.Z)(z,e),z.length=n.length,P.notifyListeners(z.location,z.action)}function R(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||N(C(e.state))}function L(){N(C(y()))}var O=!1;function N(e){if(O)O=!1,A();else{P.confirmTransitionTo(e,"POP",S,(function(t){t?A({action:"POP",location:e}):function(e){var t=z.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(O=!0,M(o))}(e)}))}}var I=C(y()),D=[I.key];function F(e){return x+p(e)}function M(e){n.go(e)}var j=0;function B(e){1===(j+=e)&&1===e?(window.addEventListener(b,R),a&&window.addEventListener(v,L)):0===j&&(window.removeEventListener(b,R),a&&window.removeEventListener(v,L))}var U=!1;var z={length:n.length,action:"POP",location:I,createHref:F,push:function(e,t){var r="PUSH",a=f(e,t,T(),z.location);P.confirmTransitionTo(a,r,S,(function(e){if(e){var t=F(a),i=a.key,l=a.state;if(o)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=D.indexOf(z.location.key),c=D.slice(0,s+1);c.push(a.key),D=c,A({action:r,location:a})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,T(),z.location);P.confirmTransitionTo(a,r,S,(function(e){if(e){var t=F(a),i=a.key,l=a.state;if(o)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=D.indexOf(z.location.key);-1!==s&&(D[s]=a.key),A({action:r,location:a})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=P.setPrompt(e);return U||(B(1),U=!0),function(){return U&&(U=!1,B(-1)),t()}},listen:function(e){var t=P.appendListener(e);return B(1),function(){B(-1),t()}}};return z}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+c(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:c,decodePath:s},slash:{encodePath:s,decodePath:s}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function _(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function x(e){window.location.replace(E(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,a=void 0===o?g:o,i=n.hashType,c=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",v=S[c],y=v.encodePath,w=v.decodePath;function C(){var e=w(_());return b&&(e=u(e,b)),f(e)}var T=m();function P(e){(0,r.Z)(U,e),U.length=t.length,T.notifyListeners(U.location,U.action)}var A=!1,R=null;function L(){var e,t,n=_(),r=y(n);if(n!==r)x(r);else{var o=C(),i=U.location;if(!A&&(t=o,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(R===p(o))return;R=null,function(e){if(A)A=!1,P();else{var t="POP";T.confirmTransitionTo(e,t,a,(function(n){n?P({action:t,location:e}):function(e){var t=U.location,n=D.lastIndexOf(p(t));-1===n&&(n=0);var r=D.lastIndexOf(p(e));-1===r&&(r=0);var o=n-r;o&&(A=!0,F(o))}(e)}))}}(o)}}var O=_(),N=y(O);O!==N&&x(N);var I=C(),D=[p(I)];function F(e){t.go(e)}var M=0;function j(e){1===(M+=e)&&1===e?window.addEventListener(k,L):0===M&&window.removeEventListener(k,L)}var B=!1;var U={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+y(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,U.location);T.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=y(b+t);if(_()!==o){R=t,function(e){window.location.hash=e}(o);var a=D.lastIndexOf(p(U.location)),i=D.slice(0,a+1);i.push(t),D=i,P({action:n,location:r})}else P()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,U.location);T.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=y(b+t);_()!==o&&(R=t,x(o));var a=D.indexOf(p(U.location));-1!==a&&(D[a]=t),P({action:n,location:r})}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return B||(j(1),B=!0),function(){return B&&(B=!1,j(-1)),t()}},listen:function(e){var t=T.appendListener(e);return j(1),function(){j(-1),t()}}};return U}function T(e,t,n){return Math.min(Math.max(e,t),n)}function P(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,a=void 0===o?["/"]:o,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,c=void 0===s?6:s,u=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,u.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,c)}var g=T(l,0,a.length-1),b=a.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),v=p;function y(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",o=f(e,t,h(),w.location);u.confirmTransitionTo(o,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,h(),w.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(59864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var b=i[g];if(!(a[b]||r&&r[b]||h&&h[b]||l&&l[b])){var v=p(n,b);try{c(t,b,v)}catch(y){}}}}return t}},41143:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,l],u=0;(s=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},32497:(e,t,n)=>{"use strict";n.r(t)},52295:(e,t,n)=>{"use strict";n.r(t)},74865:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,t,n){return e<t?t:e>n?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,i(e,u,d)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){s(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},27418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,a){for(var i,l,s=o(e),c=1;c<arguments.length;c++){for(var u in i=Object(arguments[c]))n.call(i,u)&&(s[u]=i[u]);if(t){l=t(i);for(var d=0;d<l.length;d++)r.call(i,l[d])&&(s[l[d]]=i[l[d]])}}return s}},87410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var o,a;switch(n=n||{},r.util.type(t)){case"Object":if(a=r.util.objId(t),n[a])return n[a];for(var i in o={},n[a]=o,t)t.hasOwnProperty(i)&&(o[i]=e(t[i],n));return o;case"Array":return a=r.util.objId(t),n[a]?n[a]:(o=[],n[a]=o,t.forEach((function(t,r){o[r]=e(t,n)})),o);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var a=(o=o||r.languages)[e],i={};for(var l in a)if(a.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=a[l])}var c=o[e];return o[e]=i,r.languages.DFS(r.languages,(function(t,n){n===c&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,o,a){a=a||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],o||l);var s=t[l],c=r.util.type(s);"Object"!==c||a[i(s)]?"Array"!==c||a[i(s)]||(a[i(s)]=!0,e(s,n,l,a)):(a[i(s)]=!0,e(s,n,null,a))}}},plugins:{},highlight:function(e,t,n){var a={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",a),a.tokens=r.tokenize(a.code,a.grammar),r.hooks.run("after-tokenize",a),o.stringify(r.util.encode(a.tokens),a.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var o=new l;return s(o,o.head,e),i(e,o,t,o.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(o)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var o,a=0;o=n[a++];)o(t)}},Token:o};function o(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function a(e,t,n,r){e.lastIndex=t;var o=e.exec(n);if(o&&r&&o[1]){var a=o[1].length;o.index+=a,o[0]=o[0].slice(a)}return o}function i(e,t,n,l,u,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=l.next,E=u;S!==t.tail&&!(d&&E>=d.reach);E+=S.value.length,S=S.next){var _=S.value;if(t.length>e.length)return;if(!(_ instanceof o)){var x,C=1;if(v){if(!(x=a(k,E,e,b))||x.index>=e.length)break;var T=x.index,P=x.index+x[0].length,A=E;for(A+=S.value.length;T>=A;)A+=(S=S.next).value.length;if(E=A-=S.value.length,S.value instanceof o)continue;for(var R=S;R!==t.tail&&(A<P||"string"==typeof R.value);R=R.next)C++,A+=R.value.length;C--,_=e.slice(E,A),x.index-=E}else if(!(x=a(k,0,_,b)))continue;T=x.index;var L=x[0],O=_.slice(0,T),N=_.slice(T+L.length),I=E+_.length;d&&I>d.reach&&(d.reach=I);var D=S.prev;if(O&&(D=s(t,D,O),E+=O.length),c(t,D,C),S=s(t,D,new o(p,g?r.tokenize(L,g):L,y,L)),N&&s(t,S,N),C>1){var F={cause:p+","+m,reach:I};i(e,t,n,S.prev,E,F),d&&F.reach>d.reach&&(d.reach=F.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function c(e,t,n){for(var r=t.next,o=0;o<n&&r!==e.tail;o++)r=r.next;t.next=r,r.prev=t,e.length-=o}return o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach((function(t){o+=e(t,n)})),o}var a={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(a.classes,i):a.classes.push(i)),r.hooks.run("wrap",a);var l="";for(var s in a.attributes)l+=" "+s+'="'+(a.attributes[s]||"").replace(/"/g,""")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+l+">"+a.content+"</"+a.tag+">"},r}(),o=r;r.default=r,o.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},o.languages.markup.tag.inside["attr-value"].inside.entity=o.languages.markup.entity,o.languages.markup.doctype.inside["internal-subset"].inside=o.languages.markup,o.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(o.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:o.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:o.languages[t]};var a={};a[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},o.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(o.languages.markup.tag,"addAttribute",{value:function(e,t){o.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:o.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),o.languages.html=o.languages.markup,o.languages.mathml=o.languages.markup,o.languages.svg=o.languages.markup,o.languages.xml=o.languages.extend("markup",{}),o.languages.ssml=o.languages.xml,o.languages.atom=o.languages.xml,o.languages.rss=o.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i<o.length;i++)a[o[i]]=e.languages.bash[o[i]];e.languages.shell=e.languages.bash}(o),o.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},o.languages.c=o.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),o.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),o.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},o.languages.c.string],char:o.languages.c.char,comment:o.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:o.languages.c}}}}),o.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete o.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(o),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(o),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},o={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:o})}(o),o.languages.javascript=o.languages.extend("clike",{"class-name":[o.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),o.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,o.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:o.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:o.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:o.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:o.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:o.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),o.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:o.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),o.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),o.languages.markup&&(o.languages.markup.tag.addInlined("script","javascript"),o.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),o.languages.js=o.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(o),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(o),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var o=t[n];if("code"===o.type){var a=o.content[1],i=o.content[3];if(a&&i&&"code-language"===a.type&&"code-block"===i.type&&"string"==typeof a.content){var l=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(o.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,o=t.classes.length;r<o;r++){var a=t.classes[r],c=/language-(.+)/.exec(a);if(c){n=c[1];break}}var u,d=e.languages[n];if(d)t.content=e.highlight((u=t.content,u.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var p="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=p,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(p);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(o),o.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:o.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},o.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var o=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var a=p(/^\($/,/^\)$/);if(-1===a)continue;for(;n<a;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),o.push(i.content))}n=a+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),o.length>0)){var l=p(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var c=t[s];"variable"===c.type&&o.indexOf(c.content)>=0&&f(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return!1}return!0}function p(e,r){for(var o=1,a=n;a<t.length;a++){var i=t[a],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))o++;else if(r.test(l)&&0===--o)return a}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),o.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var o={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function c(t){var n={};n["interpolation-punctuation"]=o;var a=e.tokenize(t,n);if(3===a.length){var i=[1,1];i.push.apply(i,s(a[1],e.languages.javascript,"javascript")),a.splice.apply(a,i)}return new e.Token("interpolation",a,r.alias,t)}function u(t,n,r){var o=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),i=0,u={},d=s(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=l(i++,r)););return u[n]=o,n})).join(""),n,r),p=Object.keys(u);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var o=p[i],a="string"==typeof r?r:r.content,l=a.indexOf(o);if(-1!==l){++i;var s=a.substring(0,l),d=c(u[o]),f=a.substring(l+o.length),m=[];if(s&&m.push(s),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,o=n.length;r<o;r++){var a=n[r];if("string"!=typeof a){var i=a.content;if(Array.isArray(i))if("template-string"===a.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=p(l),c=l.alias,d=Array.isArray(c)?c[0]:c,f=e.languages[d];if(!f)continue;i[1]=u(s,f,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(o),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(o),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var o=n[r],a=e.languages.javascript[o];"RegExp"===e.util.type(a)&&(a=e.languages.javascript[o]={pattern:a});var i=a.inside||{};a.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(o),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,o=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function a(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return o})),RegExp(e,t)}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var o=t[r],a=!1;if("string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(o.content[0].content[1])&&n.pop():"/>"===o.content[o.content.length-1].content||n.push({tagName:i(o.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(o);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}o.content&&"string"!=typeof o.content&&l(o.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(o),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(o),o.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},o.languages.go=o.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),o.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete o.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(o>=a.length);s++){var c=l[s];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++o;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof c?l.splice.apply(l,[s,1].concat(v)):c.content=v}}else c.content&&i(c.content)}return l}(n.tokens)}}}})}(o),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(o),o.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},o.languages.webmanifest=o.languages.json,o.languages.less=o.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),o.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),o.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},o.languages.objectivec=o.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete o.languages.objectivec["class-name"],o.languages.objc=o.languages.objectivec,o.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},o.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},o.languages.python["string-interpolation"].inside.interpolation.inside.rest=o.languages.python,o.languages.py=o.languages.python,o.languages.reason=o.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),o.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete o.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(o),o.languages.scss=o.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),o.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),o.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),o.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),o.languages.scss.atrule.inside.rest=o.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(o),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(o),o.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const a=o},29901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:"shell",aliasTitles:{shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (Scss)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(29901),o=n(39642),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(16500).resolve(t)],delete Prism.languages[e],n(16500)(t),a.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=6726},16500:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=16500},39642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function o(r,a){if(!(r in n)){a.push(r);var i=a.indexOf(r);if(i<a.length-1)throw new Error("Circular dependency: "+a.slice(i).join(" -> "));var l={},s=e[r];if(s){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in o(t,a),l[t]=!0,n[t])l[i]=!0}t(s.require,c),t(s.optional,c),t(s.modify,c)}n[r]=l,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(s);i=i.map(c),l=(l||[]).map(c);var u=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(s),m=u;o(m);){for(var h in p={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var v in f(b))if(v in u){p[b]=!0;break}for(var y in m=p)u[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,l={},s={};function c(e){if(e in l)return l[e];s[e]=!0;var o,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)o=r(e);else{var p=i(u.map((function(e){var t=c(e);return delete s[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return l[e]=o}for(var u in n)c(u);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},92703:(e,t,n)=>{"use strict";var r=n(50414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},45697:(e,t,n)=>{e.exports=n(92703)()},50414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},64448:(e,t,n)=>{"use strict";var r=n(67294),o=n(27418),a=n(63840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function c(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var o=b.hasOwnProperty(t)?b[t]:null;(null!==o?0===o.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!f.call(h,e)||!f.call(m,e)&&(p.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=60103,E=60106,_=60107,x=60108,C=60114,T=60109,P=60110,A=60112,R=60113,L=60120,O=60115,N=60116,I=60121,D=60128,F=60129,M=60130,j=60131;if("function"==typeof Symbol&&Symbol.for){var B=Symbol.for;S=B("react.element"),E=B("react.portal"),_=B("react.fragment"),x=B("react.strict_mode"),C=B("react.profiler"),T=B("react.provider"),P=B("react.context"),A=B("react.forward_ref"),R=B("react.suspense"),L=B("react.suspense_list"),O=B("react.memo"),N=B("react.lazy"),I=B("react.block"),B("react.scope"),D=B("react.opaque.id"),F=B("react.debug_trace_mode"),M=B("react.offscreen"),j=B("react.legacy_hidden")}var U,z="function"==typeof Symbol&&Symbol.iterator;function q(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=z&&e[z]||e["@@iterator"])?e:null}function G(e){if(void 0===U)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);U=t&&t[1]||""}return"\n"+U+e}var H=!1;function $(e,t){if(!e||H)return"";H=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var o=s.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,l=a.length-1;1<=i&&0<=l&&o[i]!==a[l];)l--;for(;1<=i&&0<=l;i--,l--)if(o[i]!==a[l]){if(1!==i||1!==l)do{if(i--,0>--l||o[i]!==a[l])return"\n"+o[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{H=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?G(e):""}function V(e){switch(e.tag){case 5:return G(e.type);case 16:return G("Lazy");case 13:return G("Suspense");case 19:return G("SuspenseList");case 0:case 2:case 15:return e=$(e.type,!1);case 11:return e=$(e.type.render,!1);case 22:return e=$(e.type._render,!1);case 1:return e=$(e.type,!0);default:return""}}function W(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case _:return"Fragment";case E:return"Portal";case C:return"Profiler";case x:return"StrictMode";case R:return"Suspense";case L:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case P:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case A:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case O:return W(e.type);case I:return W(e._render);case N:t=e._payload,e=e._init;try{return W(e(t))}catch(n){}}return null}function Z(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function K(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Y(e){e._valueTracker||(e._valueTracker=function(e){var t=K(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Q(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=K(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function X(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Z(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Z(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?oe(e,t.type,n):t.hasOwnProperty("defaultValue")&&oe(e,t.type,Z(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function oe(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function ae(e,t){return e=o({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Z(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Z(n)}}function ce(e,t){var n=Z(t.value),r=Z(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ue(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de="http://www.w3.org/1999/xhtml",pe="http://www.w3.org/2000/svg";function fe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function me(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?fe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var he,ge,be=(ge=function(e,t){if(e.namespaceURI!==pe||"innerHTML"in e)e.innerHTML=t;else{for((he=he||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=he.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ge(e,t)}))}:ge);function ve(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ye={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},we=["Webkit","ms","Moz","O"];function ke(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ye.hasOwnProperty(e)&&ye[e]?(""+t).trim():t+"px"}function Se(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=ke(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(ye).forEach((function(e){we.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ye[t]=ye[e]}))}));var Ee=o({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function _e(e,t){if(t){if(Ee[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Ce(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Te=null,Pe=null,Ae=null;function Re(e){if(e=ro(e)){if("function"!=typeof Te)throw Error(i(280));var t=e.stateNode;t&&(t=ao(t),Te(e.stateNode,e.type,t))}}function Le(e){Pe?Ae?Ae.push(e):Ae=[e]:Pe=e}function Oe(){if(Pe){var e=Pe,t=Ae;if(Ae=Pe=null,Re(e),t)for(e=0;e<t.length;e++)Re(t[e])}}function Ne(e,t){return e(t)}function Ie(e,t,n,r,o){return e(t,n,r,o)}function De(){}var Fe=Ne,Me=!1,je=!1;function Be(){null===Pe&&null===Ae||(De(),Oe())}function Ue(e,t){var n=e.stateNode;if(null===n)return null;var r=ao(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var qe={};Object.defineProperty(qe,"passive",{get:function(){ze=!0}}),window.addEventListener("test",qe,qe),window.removeEventListener("test",qe,qe)}catch(ge){ze=!1}function Ge(e,t,n,r,o,a,i,l,s){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var He=!1,$e=null,Ve=!1,We=null,Ze={onError:function(e){He=!0,$e=e}};function Ke(e,t,n,r,o,a,i,l,s){He=!1,$e=null,Ge.apply(Ze,arguments)}function Ye(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Xe(e){if(Ye(e)!==e)throw Error(i(188))}function Je(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ye(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var a=o.alternate;if(null===a){if(null!==(r=o.return)){n=r;continue}break}if(o.child===a.child){for(a=o.child;a;){if(a===n)return Xe(o),e;if(a===r)return Xe(o),t;a=a.sibling}throw Error(i(188))}if(n.return!==r.return)n=o,r=a;else{for(var l=!1,s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l){for(s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function et(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var tt,nt,rt,ot,at=!1,it=[],lt=null,st=null,ct=null,ut=new Map,dt=new Map,pt=[],ft="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function mt(e,t,n,r,o){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:o,targetContainers:[r]}}function ht(e,t){switch(e){case"focusin":case"focusout":lt=null;break;case"dragenter":case"dragleave":st=null;break;case"mouseover":case"mouseout":ct=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":dt.delete(t.pointerId)}}function gt(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e=mt(t,n,r,o,a),null!==t&&(null!==(t=ro(t))&&nt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function bt(e){var t=no(e.target);if(null!==t){var n=Ye(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Qe(n)))return e.blockedOn=t,void ot(e.lanePriority,(function(){a.unstable_runWithPriority(e.priority,(function(){rt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function vt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=ro(n))&&nt(t),e.blockedOn=n,!1;t.shift()}return!0}function yt(e,t,n){vt(e)&&n.delete(t)}function wt(){for(at=!1;0<it.length;){var e=it[0];if(null!==e.blockedOn){null!==(e=ro(e.blockedOn))&&tt(e);break}for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&it.shift()}null!==lt&&vt(lt)&&(lt=null),null!==st&&vt(st)&&(st=null),null!==ct&&vt(ct)&&(ct=null),ut.forEach(yt),dt.forEach(yt)}function kt(e,t){e.blockedOn===t&&(e.blockedOn=null,at||(at=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,wt)))}function St(e){function t(t){return kt(t,e)}if(0<it.length){kt(it[0],e);for(var n=1;n<it.length;n++){var r=it[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==lt&&kt(lt,e),null!==st&&kt(st,e),null!==ct&&kt(ct,e),ut.forEach(t),dt.forEach(t),n=0;n<pt.length;n++)(r=pt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<pt.length&&null===(n=pt[0]).blockedOn;)bt(n),null===n.blockedOn&&pt.shift()}function Et(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var _t={animationend:Et("Animation","AnimationEnd"),animationiteration:Et("Animation","AnimationIteration"),animationstart:Et("Animation","AnimationStart"),transitionend:Et("Transition","TransitionEnd")},xt={},Ct={};function Tt(e){if(xt[e])return xt[e];if(!_t[e])return e;var t,n=_t[e];for(t in n)if(n.hasOwnProperty(t)&&t in Ct)return xt[e]=n[t];return e}d&&(Ct=document.createElement("div").style,"AnimationEvent"in window||(delete _t.animationend.animation,delete _t.animationiteration.animation,delete _t.animationstart.animation),"TransitionEvent"in window||delete _t.transitionend.transition);var Pt=Tt("animationend"),At=Tt("animationiteration"),Rt=Tt("animationstart"),Lt=Tt("transitionend"),Ot=new Map,Nt=new Map,It=["abort","abort",Pt,"animationEnd",At,"animationIteration",Rt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Lt,"transitionEnd","waiting","waiting"];function Dt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],o=e[n+1];o="on"+(o[0].toUpperCase()+o.slice(1)),Nt.set(r,t),Ot.set(r,o),c(o,[r])}}(0,a.unstable_now)();var Ft=8;function Mt(e){if(0!=(1&e))return Ft=15,1;if(0!=(2&e))return Ft=14,2;if(0!=(4&e))return Ft=13,4;var t=24&e;return 0!==t?(Ft=12,t):0!=(32&e)?(Ft=11,32):0!==(t=192&e)?(Ft=10,t):0!=(256&e)?(Ft=9,256):0!==(t=3584&e)?(Ft=8,t):0!=(4096&e)?(Ft=7,4096):0!==(t=4186112&e)?(Ft=6,t):0!==(t=62914560&e)?(Ft=5,t):67108864&e?(Ft=4,67108864):0!=(134217728&e)?(Ft=3,134217728):0!==(t=805306368&e)?(Ft=2,t):0!=(1073741824&e)?(Ft=1,1073741824):(Ft=8,e)}function jt(e,t){var n=e.pendingLanes;if(0===n)return Ft=0;var r=0,o=0,a=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==a)r=a,o=Ft=15;else if(0!==(a=134217727&n)){var s=a&~i;0!==s?(r=Mt(s),o=Ft):0!==(l&=a)&&(r=Mt(l),o=Ft)}else 0!==(a=n&~i)?(r=Mt(a),o=Ft):0!==l&&(r=Mt(l),o=Ft);if(0===r)return 0;if(r=n&((0>(r=31-Ht(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Mt(t),o<=Ft)return t;Ft=o}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-Ht(t)),r|=e[n],t&=~o;return r}function Bt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Ut(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=zt(24&~t))?Ut(10,t):e;case 10:return 0===(e=zt(192&~t))?Ut(8,t):e;case 8:return 0===(e=zt(3584&~t))&&(0===(e=zt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=zt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function zt(e){return e&-e}function qt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Gt(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-Ht(t)]=n}var Ht=Math.clz32?Math.clz32:function(e){return 0===e?32:31-($t(e)/Vt|0)|0},$t=Math.log,Vt=Math.LN2;var Wt=a.unstable_UserBlockingPriority,Zt=a.unstable_runWithPriority,Kt=!0;function Yt(e,t,n,r){Me||De();var o=Xt,a=Me;Me=!0;try{Ie(o,e,t,n,r)}finally{(Me=a)||Be()}}function Qt(e,t,n,r){Zt(Wt,Xt.bind(null,e,t,n,r))}function Xt(e,t,n,r){var o;if(Kt)if((o=0==(4&t))&&0<it.length&&-1<ft.indexOf(e))e=mt(null,e,t,n,r),it.push(e);else{var a=Jt(e,t,n,r);if(null===a)o&&ht(e,r);else{if(o){if(-1<ft.indexOf(e))return e=mt(a,e,t,n,r),void it.push(e);if(function(e,t,n,r,o){switch(t){case"focusin":return lt=gt(lt,e,t,n,r,o),!0;case"dragenter":return st=gt(st,e,t,n,r,o),!0;case"mouseover":return ct=gt(ct,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return ut.set(a,gt(ut.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,dt.set(a,gt(dt.get(a)||null,e,t,n,r,o)),!0}return!1}(a,e,t,n,r))return;ht(e,r)}Dr(e,t,r,null,n)}}}function Jt(e,t,n,r){var o=Ce(r);if(null!==(o=no(o))){var a=Ye(o);if(null===a)o=null;else{var i=a.tag;if(13===i){if(null!==(o=Qe(a)))return o;o=null}else if(3===i){if(a.stateNode.hydrate)return 3===a.tag?a.stateNode.containerInfo:null;o=null}else a!==o&&(o=null)}}return Dr(e,t,r,o,n),null}var en=null,tn=null,nn=null;function rn(){if(nn)return nn;var e,t,n=tn,r=n.length,o="value"in en?en.value:en.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return nn=o.slice(e,1<t?1-t:void 0)}function on(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function an(){return!0}function ln(){return!1}function sn(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?an:ln,this.isPropagationStopped=ln,this}return o(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=an)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=an)},persist:function(){},isPersistent:an}),t}var cn,un,dn,pn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},fn=sn(pn),mn=o({},pn,{view:0,detail:0}),hn=sn(mn),gn=o({},mn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Pn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==dn&&(dn&&"mousemove"===e.type?(cn=e.screenX-dn.screenX,un=e.screenY-dn.screenY):un=cn=0,dn=e),cn)},movementY:function(e){return"movementY"in e?e.movementY:un}}),bn=sn(gn),vn=sn(o({},gn,{dataTransfer:0})),yn=sn(o({},mn,{relatedTarget:0})),wn=sn(o({},pn,{animationName:0,elapsedTime:0,pseudoElement:0})),kn=o({},pn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Sn=sn(kn),En=sn(o({},pn,{data:0})),_n={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Cn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Tn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Cn[e])&&!!t[e]}function Pn(){return Tn}var An=o({},mn,{key:function(e){if(e.key){var t=_n[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=on(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Pn,charCode:function(e){return"keypress"===e.type?on(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?on(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Rn=sn(An),Ln=sn(o({},gn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),On=sn(o({},mn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Pn})),Nn=sn(o({},pn,{propertyName:0,elapsedTime:0,pseudoElement:0})),In=o({},gn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Dn=sn(In),Fn=[9,13,27,32],Mn=d&&"CompositionEvent"in window,jn=null;d&&"documentMode"in document&&(jn=document.documentMode);var Bn=d&&"TextEvent"in window&&!jn,Un=d&&(!Mn||jn&&8<jn&&11>=jn),zn=String.fromCharCode(32),qn=!1;function Gn(e,t){switch(e){case"keyup":return-1!==Fn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Hn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var $n=!1;var Vn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Wn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Vn[e.type]:"textarea"===t}function Zn(e,t,n,r){Le(r),0<(t=Mr(t,"onChange")).length&&(n=new fn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Kn=null,Yn=null;function Qn(e){Ar(e,0)}function Xn(e){if(Q(oo(e)))return e}function Jn(e,t){if("change"===e)return t}var er=!1;if(d){var tr;if(d){var nr="oninput"in document;if(!nr){var rr=document.createElement("div");rr.setAttribute("oninput","return;"),nr="function"==typeof rr.oninput}tr=nr}else tr=!1;er=tr&&(!document.documentMode||9<document.documentMode)}function or(){Kn&&(Kn.detachEvent("onpropertychange",ar),Yn=Kn=null)}function ar(e){if("value"===e.propertyName&&Xn(Yn)){var t=[];if(Zn(t,Yn,e,Ce(e)),e=Qn,Me)e(t);else{Me=!0;try{Ne(e,t)}finally{Me=!1,Be()}}}}function ir(e,t,n){"focusin"===e?(or(),Yn=n,(Kn=t).attachEvent("onpropertychange",ar)):"focusout"===e&&or()}function lr(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(Yn)}function sr(e,t){if("click"===e)return Xn(t)}function cr(e,t){if("input"===e||"change"===e)return Xn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},dr=Object.prototype.hasOwnProperty;function pr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!dr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function fr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function mr(e,t){var n,r=fr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=fr(r)}}function hr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?hr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function gr(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function br(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var vr=d&&"documentMode"in document&&11>=document.documentMode,yr=null,wr=null,kr=null,Sr=!1;function Er(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;Sr||null==yr||yr!==X(r)||("selectionStart"in(r=yr)&&br(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},kr&&pr(kr,r)||(kr=r,0<(r=Mr(wr,"onSelect")).length&&(t=new fn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=yr)))}Dt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Dt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Dt(It,2);for(var _r="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),xr=0;xr<_r.length;xr++)Nt.set(_r[xr],0);u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),c("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),c("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),c("onBeforeInput",["compositionend","keypress","textInput","paste"]),c("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Cr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Tr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Cr));function Pr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,a,l,s,c){if(Ke.apply(this,arguments),He){if(!He)throw Error(i(198));var u=$e;He=!1,$e=null,Ve||(Ve=!0,We=u)}}(r,t,void 0,e),e.currentTarget=null}function Ar(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,c=l.currentTarget;if(l=l.listener,s!==a&&o.isPropagationStopped())break e;Pr(o,l,c),a=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,c=l.currentTarget,l=l.listener,s!==a&&o.isPropagationStopped())break e;Pr(o,l,c),a=s}}}if(Ve)throw e=We,Ve=!1,We=null,e}function Rr(e,t){var n=io(t),r=e+"__bubble";n.has(r)||(Ir(t,e,2,!1),n.add(r))}var Lr="_reactListening"+Math.random().toString(36).slice(2);function Or(e){e[Lr]||(e[Lr]=!0,l.forEach((function(t){Tr.has(t)||Nr(t,!1,e,null),Nr(t,!0,e,null)})))}function Nr(e,t,n,r){var o=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,a=n;if("selectionchange"===e&&9!==n.nodeType&&(a=n.ownerDocument),null!==r&&!t&&Tr.has(e)){if("scroll"!==e)return;o|=2,a=r}var i=io(a),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(o|=4),Ir(a,e,o,t),i.add(l))}function Ir(e,t,n,r){var o=Nt.get(t);switch(void 0===o?2:o){case 0:o=Yt;break;case 1:o=Qt;break;default:o=Xt}n=o.bind(null,t,n,e),o=void 0,!ze||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Dr(e,t,n,r,o){var a=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===o||8===l.nodeType&&l.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===o||8===s.nodeType&&s.parentNode===o))return;i=i.return}for(;null!==l;){if(null===(i=no(l)))return;if(5===(s=i.tag)||6===s){r=a=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(je)return e(t,n);je=!0;try{Fe(e,t,n)}finally{je=!1,Be()}}((function(){var r=a,o=Ce(n),i=[];e:{var l=Ot.get(e);if(void 0!==l){var s=fn,c=e;switch(e){case"keypress":if(0===on(n))break e;case"keydown":case"keyup":s=Rn;break;case"focusin":c="focus",s=yn;break;case"focusout":c="blur",s=yn;break;case"beforeblur":case"afterblur":s=yn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=bn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=vn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=On;break;case Pt:case At:case Rt:s=wn;break;case Lt:s=Nn;break;case"scroll":s=hn;break;case"wheel":s=Dn;break;case"copy":case"cut":case"paste":s=Sn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Ln}var u=0!=(4&t),d=!u&&"scroll"===e,p=u?null!==l?l+"Capture":null:l;u=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=Ue(m,p))&&u.push(Fr(m,h,f)))),d)break;m=m.return}0<u.length&&(l=new s(l,c,null,n,o),i.push({event:l,listeners:u}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(c=n.relatedTarget||n.fromElement)||!no(c)&&!c[eo])&&(s||l)&&(l=o.window===o?o:(l=o.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(c=(c=n.relatedTarget||n.toElement)?no(c):null)&&(c!==(d=Ye(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(s=null,c=r),s!==c)){if(u=bn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(u=Ln,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==s?l:oo(s),f=null==c?l:oo(c),(l=new u(h,m+"leave",s,n,o)).target=d,l.relatedTarget=f,h=null,no(o)===r&&((u=new u(p,m+"enter",c,n,o)).target=f,u.relatedTarget=d,h=u),d=h,s&&c)e:{for(p=c,m=0,f=u=s;f;f=jr(f))m++;for(f=0,h=p;h;h=jr(h))f++;for(;0<m-f;)u=jr(u),m--;for(;0<f-m;)p=jr(p),f--;for(;m--;){if(u===p||null!==p&&u===p.alternate)break e;u=jr(u),p=jr(p)}u=null}else u=null;null!==s&&Br(i,l,s,u,!1),null!==c&&null!==d&&Br(i,d,c,u,!0)}if("select"===(s=(l=r?oo(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Jn;else if(Wn(l))if(er)g=cr;else{g=lr;var b=ir}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=sr);switch(g&&(g=g(e,r))?Zn(i,g,n,o):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&oe(l,"number",l.value)),b=r?oo(r):window,e){case"focusin":(Wn(b)||"true"===b.contentEditable)&&(yr=b,wr=r,kr=null);break;case"focusout":kr=wr=yr=null;break;case"mousedown":Sr=!0;break;case"contextmenu":case"mouseup":case"dragend":Sr=!1,Er(i,n,o);break;case"selectionchange":if(vr)break;case"keydown":case"keyup":Er(i,n,o)}var v;if(Mn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else $n?Gn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Un&&"ko"!==n.locale&&($n||"onCompositionStart"!==y?"onCompositionEnd"===y&&$n&&(v=rn()):(tn="value"in(en=o)?en.value:en.textContent,$n=!0)),0<(b=Mr(r,y)).length&&(y=new En(y,e,null,n,o),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=Hn(n))&&(y.data=v))),(v=Bn?function(e,t){switch(e){case"compositionend":return Hn(t);case"keypress":return 32!==t.which?null:(qn=!0,zn);case"textInput":return(e=t.data)===zn&&qn?null:e;default:return null}}(e,n):function(e,t){if($n)return"compositionend"===e||!Mn&&Gn(e,t)?(e=rn(),nn=tn=en=null,$n=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Un&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Mr(r,"onBeforeInput")).length&&(o=new En("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=v))}Ar(i,t)}))}function Fr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Mr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=Ue(e,n))&&r.unshift(Fr(e,a,o)),null!=(a=Ue(e,t))&&r.push(Fr(e,a,o))),e=e.return}return r}function jr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Br(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,c=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==c&&(l=c,o?null!=(s=Ue(n,a))&&i.unshift(Fr(n,s,l)):o||null!=(s=Ue(n,a))&&i.push(Fr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function Ur(){}var zr=null,qr=null;function Gr(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Hr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var $r="function"==typeof setTimeout?setTimeout:void 0,Vr="function"==typeof clearTimeout?clearTimeout:void 0;function Wr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Zr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Kr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Yr=0;var Qr=Math.random().toString(36).slice(2),Xr="__reactFiber$"+Qr,Jr="__reactProps$"+Qr,eo="__reactContainer$"+Qr,to="__reactEvents$"+Qr;function no(e){var t=e[Xr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[eo]||n[Xr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Kr(e);null!==e;){if(n=e[Xr])return n;e=Kr(e)}return t}n=(e=n).parentNode}return null}function ro(e){return!(e=e[Xr]||e[eo])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function oo(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function ao(e){return e[Jr]||null}function io(e){var t=e[to];return void 0===t&&(t=e[to]=new Set),t}var lo=[],so=-1;function co(e){return{current:e}}function uo(e){0>so||(e.current=lo[so],lo[so]=null,so--)}function po(e,t){so++,lo[so]=e.current,e.current=t}var fo={},mo=co(fo),ho=co(!1),go=fo;function bo(e,t){var n=e.type.contextTypes;if(!n)return fo;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function vo(e){return null!=(e=e.childContextTypes)}function yo(){uo(ho),uo(mo)}function wo(e,t,n){if(mo.current!==fo)throw Error(i(168));po(mo,t),po(ho,n)}function ko(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in e))throw Error(i(108,W(t)||"Unknown",a));return o({},n,r)}function So(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||fo,go=mo.current,po(mo,e),po(ho,ho.current),!0}function Eo(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ko(e,t,go),r.__reactInternalMemoizedMergedChildContext=e,uo(ho),uo(mo),po(mo,e)):uo(ho),po(ho,n)}var _o=null,xo=null,Co=a.unstable_runWithPriority,To=a.unstable_scheduleCallback,Po=a.unstable_cancelCallback,Ao=a.unstable_shouldYield,Ro=a.unstable_requestPaint,Lo=a.unstable_now,Oo=a.unstable_getCurrentPriorityLevel,No=a.unstable_ImmediatePriority,Io=a.unstable_UserBlockingPriority,Do=a.unstable_NormalPriority,Fo=a.unstable_LowPriority,Mo=a.unstable_IdlePriority,jo={},Bo=void 0!==Ro?Ro:function(){},Uo=null,zo=null,qo=!1,Go=Lo(),Ho=1e4>Go?Lo:function(){return Lo()-Go};function $o(){switch(Oo()){case No:return 99;case Io:return 98;case Do:return 97;case Fo:return 96;case Mo:return 95;default:throw Error(i(332))}}function Vo(e){switch(e){case 99:return No;case 98:return Io;case 97:return Do;case 96:return Fo;case 95:return Mo;default:throw Error(i(332))}}function Wo(e,t){return e=Vo(e),Co(e,t)}function Zo(e,t,n){return e=Vo(e),To(e,t,n)}function Ko(){if(null!==zo){var e=zo;zo=null,Po(e)}Yo()}function Yo(){if(!qo&&null!==Uo){qo=!0;var e=0;try{var t=Uo;Wo(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Uo=null}catch(n){throw null!==Uo&&(Uo=Uo.slice(e+1)),To(No,Ko),n}finally{qo=!1}}}var Qo=k.ReactCurrentBatchConfig;function Xo(e,t){if(e&&e.defaultProps){for(var n in t=o({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Jo=co(null),ea=null,ta=null,na=null;function ra(){na=ta=ea=null}function oa(e){var t=Jo.current;uo(Jo),e.type._context._currentValue=t}function aa(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ia(e,t){ea=e,na=ta=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Mi=!0),e.firstContext=null)}function la(e,t){if(na!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(na=e,t=1073741823),t={context:e,observedBits:t,next:null},null===ta){if(null===ea)throw Error(i(308));ta=t,ea.dependencies={lanes:0,firstContext:t,responders:null}}else ta=ta.next=t;return e._currentValue}var sa=!1;function ca(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function ua(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function da(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function pa(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function fa(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function ma(e,t,n,r){var a=e.updateQueue;sa=!1;var i=a.firstBaseUpdate,l=a.lastBaseUpdate,s=a.shared.pending;if(null!==s){a.shared.pending=null;var c=s,u=c.next;c.next=null,null===l?i=u:l.next=u,l=c;var d=e.alternate;if(null!==d){var p=(d=d.updateQueue).lastBaseUpdate;p!==l&&(null===p?d.firstBaseUpdate=u:p.next=u,d.lastBaseUpdate=c)}}if(null!==i){for(p=a.baseState,l=0,d=u=c=null;;){s=i.lane;var f=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:f,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(s=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){p=m.call(f,p,s);break e}p=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(s="function"==typeof(m=h.payload)?m.call(f,p,s):m))break e;p=o({},p,s);break e;case 2:sa=!0}}null!==i.callback&&(e.flags|=32,null===(s=a.effects)?a.effects=[i]:s.push(i))}else f={eventTime:f,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(u=d=f,c=p):d=d.next=f,l|=s;if(null===(i=i.next)){if(null===(s=a.shared.pending))break;i=s.next,s.next=null,a.lastBaseUpdate=s,a.shared.pending=null}}null===d&&(c=p),a.baseState=c,a.firstBaseUpdate=u,a.lastBaseUpdate=d,zl|=l,e.lanes=l,e.memoizedState=p}}function ha(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(i(191,o));o.call(r)}}}var ga=(new r.Component).refs;function ba(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:o({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var va={isMounted:function(e){return!!(e=e._reactInternals)&&Ye(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ps(),o=fs(e),a=da(r,o);a.payload=t,null!=n&&(a.callback=n),pa(e,a),ms(e,o,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ps(),o=fs(e),a=da(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),pa(e,a),ms(e,o,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ps(),r=fs(e),o=da(n,r);o.tag=2,null!=t&&(o.callback=t),pa(e,o),ms(e,r,n)}};function ya(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!pr(n,r)||!pr(o,a))}function wa(e,t,n){var r=!1,o=fo,a=t.contextType;return"object"==typeof a&&null!==a?a=la(a):(o=vo(t)?go:mo.current,a=(r=null!=(r=t.contextTypes))?bo(e,o):fo),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=va,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function ka(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&va.enqueueReplaceState(t,t.state,null)}function Sa(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=ga,ca(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=la(a):(a=vo(t)?go:mo.current,o.context=bo(e,a)),ma(e,n,o,r),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(ba(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&va.enqueueReplaceState(o,o.state,null),ma(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4)}var Ea=Array.isArray;function _a(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var o=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===o?t.ref:(t=function(e){var t=r.refs;t===ga&&(t=r.refs={}),null===e?delete t[o]:t[o]=e},t._stringRef=o,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function xa(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function Ca(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Vs(e,t)).index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ys(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function c(e,t,n,r){return null!==t&&t.elementType===n.type?((r=o(t,n.props)).ref=_a(e,t,n),r.return=e,r):((r=Ws(n.type,n.key,n.props,null,e.mode,r)).ref=_a(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Qs(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function d(e,t,n,r,a){return null===t||7!==t.tag?((t=Zs(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ys(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case S:return(n=Ws(t.type,t.key,t.props,null,e.mode,n)).ref=_a(e,null,t),n.return=e,n;case E:return(t=Qs(t,e.mode,n)).return=e,t}if(Ea(t)||q(t))return(t=Zs(t,e.mode,n,null)).return=e,t;xa(e,t)}return null}function f(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==o?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===o?n.type===_?d(e,t,n.props.children,r,o):c(e,t,n,r):null;case E:return n.key===o?u(e,t,n,r):null}if(Ea(n)||q(n))return null!==o?null:d(e,t,n,r,null);xa(e,n)}return null}function m(e,t,n,r,o){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case S:return e=e.get(null===r.key?n:r.key)||null,r.type===_?d(t,e,r.props.children,o,r.key):c(t,e,r,o);case E:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o)}if(Ea(r)||q(r))return d(t,e=e.get(n)||null,r,o,null);xa(t,r)}return null}function h(o,i,l,s){for(var c=null,u=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(o,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(o,d),i=a(b,i,h),null===u?c=b:u.sibling=b,u=b,d=g}if(h===l.length)return n(o,d),c;if(null===d){for(;h<l.length;h++)null!==(d=p(o,l[h],s))&&(i=a(d,i,h),null===u?c=d:u.sibling=d,u=d);return c}for(d=r(o,d);h<l.length;h++)null!==(g=m(d,o,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=a(g,i,h),null===u?c=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(o,e)})),c}function g(o,l,s,c){var u=q(s);if("function"!=typeof u)throw Error(i(150));if(null==(s=u.call(s)))throw Error(i(151));for(var d=u=null,h=l,g=l=0,b=null,v=s.next();null!==h&&!v.done;g++,v=s.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(o,h,v.value,c);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(o,h),l=a(y,l,g),null===d?u=y:d.sibling=y,d=y,h=b}if(v.done)return n(o,h),u;if(null===h){for(;!v.done;g++,v=s.next())null!==(v=p(o,v.value,c))&&(l=a(v,l,g),null===d?u=v:d.sibling=v,d=v);return u}for(h=r(o,h);!v.done;g++,v=s.next())null!==(v=m(h,o,g,v.value,c))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),l=a(v,l,g),null===d?u=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(o,e)})),u}return function(e,r,a,s){var c="object"==typeof a&&null!==a&&a.type===_&&null===a.key;c&&(a=a.props.children);var u="object"==typeof a&&null!==a;if(u)switch(a.$$typeof){case S:e:{for(u=a.key,c=r;null!==c;){if(c.key===u){if(7===c.tag){if(a.type===_){n(e,c.sibling),(r=o(c,a.props.children)).return=e,e=r;break e}}else if(c.elementType===a.type){n(e,c.sibling),(r=o(c,a.props)).ref=_a(e,c,a),r.return=e,e=r;break e}n(e,c);break}t(e,c),c=c.sibling}a.type===_?((r=Zs(a.props.children,e.mode,s,a.key)).return=e,e=r):((s=Ws(a.type,a.key,a.props,null,e.mode,s)).ref=_a(e,r,a),s.return=e,e=s)}return l(e);case E:e:{for(c=a.key;null!==r;){if(r.key===c){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=o(r,a.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Qs(a,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof a||"number"==typeof a)return a=""+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=o(r,a)).return=e,e=r):(n(e,r),(r=Ys(a,e.mode,s)).return=e,e=r),l(e);if(Ea(a))return h(e,r,a,s);if(q(a))return g(e,r,a,s);if(u&&xa(e,a),void 0===a&&!c)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,W(e.type)||"Component"))}return n(e,r)}}var Ta=Ca(!0),Pa=Ca(!1),Aa={},Ra=co(Aa),La=co(Aa),Oa=co(Aa);function Na(e){if(e===Aa)throw Error(i(174));return e}function Ia(e,t){switch(po(Oa,t),po(La,e),po(Ra,Aa),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:me(null,"");break;default:t=me(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}uo(Ra),po(Ra,t)}function Da(){uo(Ra),uo(La),uo(Oa)}function Fa(e){Na(Oa.current);var t=Na(Ra.current),n=me(t,e.type);t!==n&&(po(La,e),po(Ra,n))}function Ma(e){La.current===e&&(uo(Ra),uo(La))}var ja=co(0);function Ba(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Ua=null,za=null,qa=!1;function Ga(e,t){var n=Hs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Ha(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function $a(e){if(qa){var t=za;if(t){var n=t;if(!Ha(e,t)){if(!(t=Zr(n.nextSibling))||!Ha(e,t))return e.flags=-1025&e.flags|2,qa=!1,void(Ua=e);Ga(Ua,n)}Ua=e,za=Zr(t.firstChild)}else e.flags=-1025&e.flags|2,qa=!1,Ua=e}}function Va(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Ua=e}function Wa(e){if(e!==Ua)return!1;if(!qa)return Va(e),qa=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Hr(t,e.memoizedProps))for(t=za;t;)Ga(e,t),t=Zr(t.nextSibling);if(Va(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){za=Zr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}za=null}}else za=Ua?Zr(e.stateNode.nextSibling):null;return!0}function Za(){za=Ua=null,qa=!1}var Ka=[];function Ya(){for(var e=0;e<Ka.length;e++)Ka[e]._workInProgressVersionPrimary=null;Ka.length=0}var Qa=k.ReactCurrentDispatcher,Xa=k.ReactCurrentBatchConfig,Ja=0,ei=null,ti=null,ni=null,ri=!1,oi=!1;function ai(){throw Error(i(321))}function ii(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function li(e,t,n,r,o,a){if(Ja=a,ei=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Qa.current=null===e||null===e.memoizedState?Ni:Ii,e=n(r,o),oi){a=0;do{if(oi=!1,!(25>a))throw Error(i(301));a+=1,ni=ti=null,t.updateQueue=null,Qa.current=Di,e=n(r,o)}while(oi)}if(Qa.current=Oi,t=null!==ti&&null!==ti.next,Ja=0,ni=ti=ei=null,ri=!1,t)throw Error(i(300));return e}function si(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ni?ei.memoizedState=ni=e:ni=ni.next=e,ni}function ci(){if(null===ti){var e=ei.alternate;e=null!==e?e.memoizedState:null}else e=ti.next;var t=null===ni?ei.memoizedState:ni.next;if(null!==t)ni=t,ti=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ti=e).memoizedState,baseState:ti.baseState,baseQueue:ti.baseQueue,queue:ti.queue,next:null},null===ni?ei.memoizedState=ni=e:ni=ni.next=e}return ni}function ui(e,t){return"function"==typeof t?t(e):t}function di(e){var t=ci(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ti,o=r.baseQueue,a=n.pending;if(null!==a){if(null!==o){var l=o.next;o.next=a.next,a.next=l}r.baseQueue=o=a,n.pending=null}if(null!==o){o=o.next,r=r.baseState;var s=l=a=null,c=o;do{var u=c.lane;if((Ja&u)===u)null!==s&&(s=s.next={lane:0,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null}),r=c.eagerReducer===e?c.eagerState:e(r,c.action);else{var d={lane:u,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null};null===s?(l=s=d,a=r):s=s.next=d,ei.lanes|=u,zl|=u}c=c.next}while(null!==c&&c!==o);null===s?a=r:s.next=l,ur(r,t.memoizedState)||(Mi=!0),t.memoizedState=r,t.baseState=a,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function pi(e){var t=ci(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,a=t.memoizedState;if(null!==o){n.pending=null;var l=o=o.next;do{a=e(a,l.action),l=l.next}while(l!==o);ur(a,t.memoizedState)||(Mi=!0),t.memoizedState=a,null===t.baseQueue&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function fi(e,t,n){var r=t._getVersion;r=r(t._source);var o=t._workInProgressVersionPrimary;if(null!==o?e=o===r:(e=e.mutableReadLanes,(e=(Ja&e)===e)&&(t._workInProgressVersionPrimary=r,Ka.push(t))),e)return n(t._source);throw Ka.push(t),Error(i(350))}function mi(e,t,n,r){var o=Nl;if(null===o)throw Error(i(349));var a=t._getVersion,l=a(t._source),s=Qa.current,c=s.useState((function(){return fi(o,t,n)})),u=c[1],d=c[0];c=ni;var p=e.memoizedState,f=p.refs,m=f.getSnapshot,h=p.source;p=p.subscribe;var g=ei;return e.memoizedState={refs:f,source:t,subscribe:r},s.useEffect((function(){f.getSnapshot=n,f.setSnapshot=u;var e=a(t._source);if(!ur(l,e)){e=n(t._source),ur(d,e)||(u(e),e=fs(g),o.mutableReadLanes|=e&o.pendingLanes),e=o.mutableReadLanes,o.entangledLanes|=e;for(var r=o.entanglements,i=e;0<i;){var s=31-Ht(i),c=1<<s;r[s]|=e,i&=~c}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var r=fs(g);o.mutableReadLanes|=r&o.pendingLanes}catch(a){n((function(){throw a}))}}))}),[t,r]),ur(m,n)&&ur(h,t)&&ur(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:d}).dispatch=u=Li.bind(null,ei,e),c.queue=e,c.baseQueue=null,d=fi(o,t,n),c.memoizedState=c.baseState=d),d}function hi(e,t,n){return mi(ci(),e,t,n)}function gi(e){var t=si();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=Li.bind(null,ei,e),[t.memoizedState,e]}function bi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=ei.updateQueue)?(t={lastEffect:null},ei.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function vi(e){return e={current:e},si().memoizedState=e}function yi(){return ci().memoizedState}function wi(e,t,n,r){var o=si();ei.flags|=e,o.memoizedState=bi(1|t,n,void 0,void 0===r?null:r)}function ki(e,t,n,r){var o=ci();r=void 0===r?null:r;var a=void 0;if(null!==ti){var i=ti.memoizedState;if(a=i.destroy,null!==r&&ii(r,i.deps))return void bi(t,n,a,r)}ei.flags|=e,o.memoizedState=bi(1|t,n,a,r)}function Si(e,t){return wi(516,4,e,t)}function Ei(e,t){return ki(516,4,e,t)}function _i(e,t){return ki(4,2,e,t)}function xi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Ci(e,t,n){return n=null!=n?n.concat([e]):null,ki(4,2,xi.bind(null,t,e),n)}function Ti(){}function Pi(e,t){var n=ci();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ii(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ai(e,t){var n=ci();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ii(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Ri(e,t){var n=$o();Wo(98>n?98:n,(function(){e(!0)})),Wo(97<n?97:n,(function(){var n=Xa.transition;Xa.transition=1;try{e(!1),t()}finally{Xa.transition=n}}))}function Li(e,t,n){var r=ps(),o=fs(e),a={lane:o,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?a.next=a:(a.next=i.next,i.next=a),t.pending=a,i=e.alternate,e===ei||null!==i&&i===ei)oi=ri=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(a.eagerReducer=i,a.eagerState=s,ur(s,l))return}catch(c){}ms(e,o,r)}}var Oi={readContext:la,useCallback:ai,useContext:ai,useEffect:ai,useImperativeHandle:ai,useLayoutEffect:ai,useMemo:ai,useReducer:ai,useRef:ai,useState:ai,useDebugValue:ai,useDeferredValue:ai,useTransition:ai,useMutableSource:ai,useOpaqueIdentifier:ai,unstable_isNewReconciler:!1},Ni={readContext:la,useCallback:function(e,t){return si().memoizedState=[e,void 0===t?null:t],e},useContext:la,useEffect:Si,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,xi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return wi(4,2,e,t)},useMemo:function(e,t){var n=si();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=si();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Li.bind(null,ei,e),[r.memoizedState,e]},useRef:vi,useState:gi,useDebugValue:Ti,useDeferredValue:function(e){var t=gi(e),n=t[0],r=t[1];return Si((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=gi(!1),t=e[0];return vi(e=Ri.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=si();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},mi(r,e,t,n)},useOpaqueIdentifier:function(){if(qa){var e=!1,t=function(e){return{$$typeof:D,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Yr++).toString(36))),Error(i(355))})),n=gi(t)[1];return 0==(2&ei.mode)&&(ei.flags|=516,bi(5,(function(){n("r:"+(Yr++).toString(36))}),void 0,null)),t}return gi(t="r:"+(Yr++).toString(36)),t},unstable_isNewReconciler:!1},Ii={readContext:la,useCallback:Pi,useContext:la,useEffect:Ei,useImperativeHandle:Ci,useLayoutEffect:_i,useMemo:Ai,useReducer:di,useRef:yi,useState:function(){return di(ui)},useDebugValue:Ti,useDeferredValue:function(e){var t=di(ui),n=t[0],r=t[1];return Ei((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=di(ui)[0];return[yi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return di(ui)[0]},unstable_isNewReconciler:!1},Di={readContext:la,useCallback:Pi,useContext:la,useEffect:Ei,useImperativeHandle:Ci,useLayoutEffect:_i,useMemo:Ai,useReducer:pi,useRef:yi,useState:function(){return pi(ui)},useDebugValue:Ti,useDeferredValue:function(e){var t=pi(ui),n=t[0],r=t[1];return Ei((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=pi(ui)[0];return[yi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return pi(ui)[0]},unstable_isNewReconciler:!1},Fi=k.ReactCurrentOwner,Mi=!1;function ji(e,t,n,r){t.child=null===e?Pa(t,null,n,r):Ta(t,e.child,n,r)}function Bi(e,t,n,r,o){n=n.render;var a=t.ref;return ia(t,o),r=li(e,t,n,r,a,o),null===e||Mi?(t.flags|=1,ji(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,al(e,t,o))}function Ui(e,t,n,r,o,a){if(null===e){var i=n.type;return"function"!=typeof i||$s(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ws(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,zi(e,t,i,r,o,a))}return i=e.child,0==(o&a)&&(o=i.memoizedProps,(n=null!==(n=n.compare)?n:pr)(o,r)&&e.ref===t.ref)?al(e,t,a):(t.flags|=1,(e=Vs(i,r)).ref=t.ref,e.return=t,t.child=e)}function zi(e,t,n,r,o,a){if(null!==e&&pr(e.memoizedProps,r)&&e.ref===t.ref){if(Mi=!1,0==(a&o))return t.lanes=e.lanes,al(e,t,a);0!=(16384&e.flags)&&(Mi=!0)}return Hi(e,t,n,r,a)}function qi(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Ss(t,n);else{if(0==(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Ss(t,e),null;t.memoizedState={baseLanes:0},Ss(t,null!==a?a.baseLanes:n)}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,Ss(t,r);return ji(e,t,o,n),t.child}function Gi(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function Hi(e,t,n,r,o){var a=vo(n)?go:mo.current;return a=bo(t,a),ia(t,o),n=li(e,t,n,r,a,o),null===e||Mi?(t.flags|=1,ji(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,al(e,t,o))}function $i(e,t,n,r,o){if(vo(n)){var a=!0;So(t)}else a=!1;if(ia(t,o),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),wa(t,n,r),Sa(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=la(c):c=bo(t,c=vo(n)?go:mo.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==c)&&ka(t,i,r,c),sa=!1;var p=t.memoizedState;i.state=p,ma(t,r,i,o),s=t.memoizedState,l!==r||p!==s||ho.current||sa?("function"==typeof u&&(ba(t,n,u,r),s=t.memoizedState),(l=sa||ya(t,n,l,r,p,s,c))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=c,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,ua(e,t),l=t.memoizedProps,c=t.type===t.elementType?l:Xo(t.type,l),i.props=c,d=t.pendingProps,p=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=la(s):s=bo(t,s=vo(n)?go:mo.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||p!==s)&&ka(t,i,r,s),sa=!1,p=t.memoizedState,i.state=p,ma(t,r,i,o);var m=t.memoizedState;l!==d||p!==m||ho.current||sa?("function"==typeof f&&(ba(t,n,f,r),m=t.memoizedState),(c=sa||ya(t,n,c,r,p,m,s))?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=c):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),r=!1)}return Vi(e,t,n,r,a,o)}function Vi(e,t,n,r,o,a){Gi(e,t);var i=0!=(64&t.flags);if(!r&&!i)return o&&Eo(t,n,!1),al(e,t,a);r=t.stateNode,Fi.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Ta(t,e.child,null,a),t.child=Ta(t,null,l,a)):ji(e,t,l,a),t.memoizedState=r.state,o&&Eo(t,n,!0),t.child}function Wi(e){var t=e.stateNode;t.pendingContext?wo(0,t.pendingContext,t.pendingContext!==t.context):t.context&&wo(0,t.context,!1),Ia(e,t.containerInfo)}var Zi,Ki,Yi,Qi={dehydrated:null,retryLane:0};function Xi(e,t,n){var r,o=t.pendingProps,a=ja.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&a)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===o.fallback||!0===o.unstable_avoidThisFallback||(a|=1),po(ja,1&a),null===e?(void 0!==o.fallback&&$a(t),e=o.children,a=o.fallback,i?(e=Ji(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Qi,e):"number"==typeof o.unstable_expectedLoadTime?(e=Ji(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Qi,t.lanes=33554432,e):((n=Ks({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(o=tl(e,t,o.children,o.fallback,n),i=t.child,a=e.child.memoizedState,i.memoizedState=null===a?{baseLanes:n}:{baseLanes:a.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Qi,o):(n=el(e,t,o.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var o=e.mode,a=e.child;return t={mode:"hidden",children:t},0==(2&o)&&null!==a?(a.childLanes=0,a.pendingProps=t):a=Ks(t,o,0,null),n=Zs(n,o,r,null),a.return=e,n.return=e,a.sibling=n,e.child=a,n}function el(e,t,n,r){var o=e.child;return e=o.sibling,n=Vs(o,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,o){var a=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&a)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Vs(i,l),null!==e?r=Vs(e,r):(r=Zs(r,a,o,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),aa(e.return,t)}function rl(e,t,n,r,o,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o,lastEffect:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=o,i.lastEffect=a)}function ol(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(ji(e,t,r.children,n),0!=(2&(r=ja.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(po(ja,r),0==(2&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===Ba(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),rl(t,!1,o,n,a,t.lastEffect);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===Ba(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}rl(t,!0,n,null,a,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function al(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),zl|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Vs(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Vs(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!qa)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return vo(t.type)&&yo(),null;case 3:return Da(),uo(ho),uo(mo),Ya(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Wa(t)?t.flags|=4:r.hydrate||(t.flags|=256)),null;case 5:Ma(t);var a=Na(Oa.current);if(n=t.type,null!==e&&null!=t.stateNode)Ki(e,t,n,r),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Na(Ra.current),Wa(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Xr]=t,r[Jr]=l,n){case"dialog":Rr("cancel",r),Rr("close",r);break;case"iframe":case"object":case"embed":Rr("load",r);break;case"video":case"audio":for(e=0;e<Cr.length;e++)Rr(Cr[e],r);break;case"source":Rr("error",r);break;case"img":case"image":case"link":Rr("error",r),Rr("load",r);break;case"details":Rr("toggle",r);break;case"input":ee(r,l),Rr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Rr("invalid",r);break;case"textarea":se(r,l),Rr("invalid",r)}for(var c in _e(n,l),e=null,l)l.hasOwnProperty(c)&&(a=l[c],"children"===c?"string"==typeof a?r.textContent!==a&&(e=["children",a]):"number"==typeof a&&r.textContent!==""+a&&(e=["children",""+a]):s.hasOwnProperty(c)&&null!=a&&"onScroll"===c&&Rr("scroll",r));switch(n){case"input":Y(r),re(r,l,!0);break;case"textarea":Y(r),ue(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=Ur)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(c=9===a.nodeType?a:a.ownerDocument,e===de&&(e=fe(n)),e===de?"script"===n?((e=c.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=c.createElement(n,{is:r.is}):(e=c.createElement(n),"select"===n&&(c=e,r.multiple?c.multiple=!0:r.size&&(c.size=r.size))):e=c.createElementNS(e,n),e[Xr]=t,e[Jr]=r,Zi(e,t),t.stateNode=e,c=xe(n,r),n){case"dialog":Rr("cancel",e),Rr("close",e),a=r;break;case"iframe":case"object":case"embed":Rr("load",e),a=r;break;case"video":case"audio":for(a=0;a<Cr.length;a++)Rr(Cr[a],e);a=r;break;case"source":Rr("error",e),a=r;break;case"img":case"image":case"link":Rr("error",e),Rr("load",e),a=r;break;case"details":Rr("toggle",e),a=r;break;case"input":ee(e,r),a=J(e,r),Rr("invalid",e);break;case"option":a=ae(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=o({},r,{value:void 0}),Rr("invalid",e);break;case"textarea":se(e,r),a=le(e,r),Rr("invalid",e);break;default:a=r}_e(n,a);var u=a;for(l in u)if(u.hasOwnProperty(l)){var d=u[l];"style"===l?Se(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&be(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&ve(e,d):"number"==typeof d&&ve(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Rr("scroll",e):null!=d&&w(e,l,d,c))}switch(n){case"input":Y(e),re(e,r,!1);break;case"textarea":Y(e),ue(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Z(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Ur)}Gr(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Yi(0,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Na(Oa.current),Na(Ra.current),Wa(t)?(r=t.stateNode,n=t.memoizedProps,r[Xr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Xr]=t,t.stateNode=r)}return null;case 13:return uo(ja),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Wa(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&ja.current)?0===jl&&(jl=3):(0!==jl&&3!==jl||(jl=4),null===Nl||0==(134217727&zl)&&0==(134217727&ql)||vs(Nl,Dl))),(r||n)&&(t.flags|=4),null);case 4:return Da(),null===e&&Or(t.stateNode.containerInfo),null;case 10:return oa(t),null;case 19:if(uo(ja),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(c=r.rendering))if(l)il(r,!1);else{if(0!==jl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(c=Ba(e))){for(t.flags|=64,il(r,!1),null!==(l=c.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(c=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=c.childLanes,l.lanes=c.lanes,l.child=c.child,l.memoizedProps=c.memoizedProps,l.memoizedState=c.memoizedState,l.updateQueue=c.updateQueue,l.type=c.type,e=c.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return po(ja,1&ja.current|2),t.child}e=e.sibling}null!==r.tail&&Ho()>Vl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Ba(c))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!c.alternate&&!qa)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Ho()-r.renderingStartTime>Vl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(c.sibling=t.child,t.child=c):(null!==(n=r.last)?n.sibling=c:t.child=c,r.last=c)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Ho(),n.sibling=null,t=ja.current,po(ja,l?1&t|2:1&t),n):null;case 23:case 24:return Es(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:vo(e.type)&&yo();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Da(),uo(ho),uo(mo),Ya(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Ma(e),null;case 13:return uo(ja),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return uo(ja),null;case 4:return Da(),null;case 10:return oa(e),null;case 23:case 24:return Es(),null;default:return null}}function cl(e,t){try{var n="",r=t;do{n+=V(r),r=r.return}while(r);var o=n}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:o}}function ul(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Zi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ki=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Na(Ra.current);var i,l=null;switch(n){case"input":a=J(e,a),r=J(e,r),l=[];break;case"option":a=ae(e,a),r=ae(e,r),l=[];break;case"select":a=o({},a,{value:void 0}),r=o({},r,{value:void 0}),l=[];break;case"textarea":a=le(e,a),r=le(e,r),l=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Ur)}for(d in _e(n,r),n=null,a)if(!r.hasOwnProperty(d)&&a.hasOwnProperty(d)&&null!=a[d])if("style"===d){var c=a[d];for(i in c)c.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var u=r[d];if(c=null!=a?a[d]:void 0,r.hasOwnProperty(d)&&u!==c&&(null!=u||null!=c))if("style"===d)if(c){for(i in c)!c.hasOwnProperty(i)||u&&u.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in u)u.hasOwnProperty(i)&&c[i]!==u[i]&&(n||(n={}),n[i]=u[i])}else n||(l||(l=[]),l.push(d,n)),n=u;else"dangerouslySetInnerHTML"===d?(u=u?u.__html:void 0,c=c?c.__html:void 0,null!=u&&c!==u&&(l=l||[]).push(d,u)):"children"===d?"string"!=typeof u&&"number"!=typeof u||(l=l||[]).push(d,""+u):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=u&&"onScroll"===d&&Rr("scroll",e),l||c===u||(l=[])):"object"==typeof u&&null!==u&&u.$$typeof===D?u.toString():(l=l||[]).push(d,u))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Yi=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function pl(e,t,n){(n=da(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Yl||(Yl=!0,Ql=r),ul(0,t)},n}function fl(e,t,n){(n=da(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return ul(0,t),r(o)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Xl?Xl=new Set([this]):Xl.add(this),ul(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){Us(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Xo(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Wr(t.stateNode.containerInfo))}throw Error(i(163))}function bl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var o=e;r=o.next,0!=(4&(o=o.tag))&&0!=(1&o)&&(Ms(n,e),Fs(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Xo(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ha(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}ha(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&Gr(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&St(n)))))}throw Error(i(163))}function vl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var o=n.memoizedProps.style;o=null!=o&&o.hasOwnProperty("display")?o.display:null,r.style.display=ke("display",o)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(xo&&"function"==typeof xo.onCommitFiberUnmount)try{xo.onCommitFiberUnmount(_o,t)}catch(a){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,o=r.destroy;if(r=r.tag,void 0!==o)if(0!=(4&r))Ms(t,n);else{r=t;try{o()}catch(a){Us(r,a)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(a){Us(t,a)}break;case 5:hl(t);break;case 4:xl(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function kl(e){return 5===e.tag||3===e.tag||4===e.tag}function Sl(e){e:{for(var t=e.return;null!==t;){if(kl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(ve(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||kl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?El(e,n,t):_l(e,n,t)}function El(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Ur));else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function _l(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(_l(e,t,n),e=e.sibling;null!==e;)_l(e,t,n),e=e.sibling}function xl(e,t){for(var n,r,o=t,a=!1;;){if(!a){a=o.return;e:for(;;){if(null===a)throw Error(i(160));switch(n=a.stateNode,a.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}a=a.return}a=!0}if(5===o.tag||6===o.tag){e:for(var l=e,s=o,c=s;;)if(yl(l,c),null!==c.child&&4!==c.tag)c.child.return=c,c=c.child;else{if(c===s)break e;for(;null===c.sibling;){if(null===c.return||c.return===s)break e;c=c.return}c.sibling.return=c.return,c=c.sibling}r?(l=n,s=o.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(o.stateNode)}else if(4===o.tag){if(null!==o.child){n=o.stateNode.containerInfo,r=!0,o.child.return=o,o=o.child;continue}}else if(yl(e,o),null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break;for(;null===o.sibling;){if(null===o.return||o.return===t)return;4===(o=o.return).tag&&(a=!1)}o.sibling.return=o.return,o=o.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var o=null!==e?e.memoizedProps:r;e=t.type;var a=t.updateQueue;if(t.updateQueue=null,null!==a){for(n[Jr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,o),t=xe(e,r),o=0;o<a.length;o+=2){var l=a[o],s=a[o+1];"style"===l?Se(n,s):"dangerouslySetInnerHTML"===l?be(n,s):"children"===l?ve(n,s):w(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ce(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(a=r.value)?ie(n,!!r.multiple,a,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,St(n.containerInfo)));case 13:return null!==t.memoizedState&&($l=Ho(),vl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void vl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=qs.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Pl(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Al=Math.ceil,Rl=k.ReactCurrentDispatcher,Ll=k.ReactCurrentOwner,Ol=0,Nl=null,Il=null,Dl=0,Fl=0,Ml=co(0),jl=0,Bl=null,Ul=0,zl=0,ql=0,Gl=0,Hl=null,$l=0,Vl=1/0;function Wl(){Vl=Ho()+500}var Zl,Kl=null,Yl=!1,Ql=null,Xl=null,Jl=!1,es=null,ts=90,ns=[],rs=[],os=null,as=0,is=null,ls=-1,ss=0,cs=0,us=null,ds=!1;function ps(){return 0!=(48&Ol)?Ho():-1!==ls?ls:ls=Ho()}function fs(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===$o()?1:2;if(0===ss&&(ss=Ul),0!==Qo.transition){0!==cs&&(cs=null!==Hl?Hl.pendingLanes:0),e=ss;var t=4186112&~cs;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=$o(),0!=(4&Ol)&&98===e?e=Ut(12,ss):e=Ut(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function ms(e,t,n){if(50<as)throw as=0,is=null,Error(i(185));if(null===(e=hs(e,t)))return null;Gt(e,t,n),e===Nl&&(ql|=t,4===jl&&vs(e,Dl));var r=$o();1===t?0!=(8&Ol)&&0==(48&Ol)?ys(e):(gs(e,n),0===Ol&&(Wl(),Ko())):(0==(4&Ol)||98!==r&&99!==r||(null===os?os=new Set([e]):os.add(e)),gs(e,n)),Hl=e}function hs(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,o=e.pingedLanes,a=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-Ht(l),c=1<<s,u=a[s];if(-1===u){if(0==(c&r)||0!=(c&o)){u=t,Mt(c);var d=Ft;a[s]=10<=d?u+250:6<=d?u+5e3:-1}}else u<=t&&(e.expiredLanes|=c);l&=~c}if(r=jt(e,e===Nl?Dl:0),t=Ft,0===r)null!==n&&(n!==jo&&Po(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==jo&&Po(n)}15===t?(n=ys.bind(null,e),null===Uo?(Uo=[n],zo=To(No,Yo)):Uo.push(n),n=jo):14===t?n=Zo(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Zo(n,bs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bs(e){if(ls=-1,cs=ss=0,0!=(48&Ol))throw Error(i(327));var t=e.callbackNode;if(Ds()&&e.callbackNode!==t)return null;var n=jt(e,e===Nl?Dl:0);if(0===n)return null;var r=n,o=Ol;Ol|=16;var a=Cs();for(Nl===e&&Dl===r||(Wl(),_s(e,r));;)try{As();break}catch(s){xs(e,s)}if(ra(),Rl.current=a,Ol=o,null!==Il?r=0:(Nl=null,Dl=0,r=jl),0!=(Ul&ql))_s(e,0);else if(0!==r){if(2===r&&(Ol|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(n=Bt(e))&&(r=Ts(e,n))),1===r)throw t=Bl,_s(e,0),vs(e,n),gs(e,Ho()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Os(e);break;case 3:if(vs(e,n),(62914560&n)===n&&10<(r=$l+500-Ho())){if(0!==jt(e,0))break;if(((o=e.suspendedLanes)&n)!==n){ps(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=$r(Os.bind(null,e),r);break}Os(e);break;case 4:if(vs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,o=-1;0<n;){var l=31-Ht(n);a=1<<l,(l=r[l])>o&&(o=l),n&=~a}if(n=o,10<(n=(120>(n=Ho()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Al(n/1960))-n)){e.timeoutHandle=$r(Os.bind(null,e),n);break}Os(e);break;default:throw Error(i(329))}}return gs(e,Ho()),e.callbackNode===t?bs.bind(null,e):null}function vs(e,t){for(t&=~Gl,t&=~ql,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Ht(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Ol))throw Error(i(327));if(Ds(),e===Nl&&0!=(e.expiredLanes&Dl)){var t=Dl,n=Ts(e,t);0!=(Ul&ql)&&(n=Ts(e,t=jt(e,t)))}else n=Ts(e,t=jt(e,0));if(0!==e.tag&&2===n&&(Ol|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(t=Bt(e))&&(n=Ts(e,t))),1===n)throw n=Bl,_s(e,0),vs(e,t),gs(e,Ho()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Os(e),gs(e,Ho()),null}function ws(e,t){var n=Ol;Ol|=1;try{return e(t)}finally{0===(Ol=n)&&(Wl(),Ko())}}function ks(e,t){var n=Ol;Ol&=-2,Ol|=8;try{return e(t)}finally{0===(Ol=n)&&(Wl(),Ko())}}function Ss(e,t){po(Ml,Fl),Fl|=t,Ul|=t}function Es(){Fl=Ml.current,uo(Ml)}function _s(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Vr(n)),null!==Il)for(n=Il.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&yo();break;case 3:Da(),uo(ho),uo(mo),Ya();break;case 5:Ma(r);break;case 4:Da();break;case 13:case 19:uo(ja);break;case 10:oa(r);break;case 23:case 24:Es()}n=n.return}Nl=e,Il=Vs(e.current,null),Dl=Fl=Ul=t,jl=0,Bl=null,Gl=ql=zl=0}function xs(e,t){for(;;){var n=Il;try{if(ra(),Qa.current=Oi,ri){for(var r=ei.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}ri=!1}if(Ja=0,ni=ti=ei=null,oi=!1,Ll.current=null,null===n||null===n.return){jl=1,Bl=t,Il=null;break}e:{var a=e,i=n.return,l=n,s=t;if(t=Dl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var c=s;if(0==(2&l.mode)){var u=l.alternate;u?(l.updateQueue=u.updateQueue,l.memoizedState=u.memoizedState,l.lanes=u.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&ja.current),p=i;do{var f;if(f=13===p.tag){var m=p.memoizedState;if(null!==m)f=null!==m.dehydrated;else{var h=p.memoizedProps;f=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(f){var g=p.updateQueue;if(null===g){var b=new Set;b.add(c),p.updateQueue=b}else g.add(c);if(0==(2&p.mode)){if(p.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var v=da(-1,1);v.tag=2,pa(l,v)}l.lanes|=1;break e}s=void 0,l=t;var y=a.pingCache;if(null===y?(y=a.pingCache=new dl,s=new Set,y.set(c,s)):void 0===(s=y.get(c))&&(s=new Set,y.set(c,s)),!s.has(l)){s.add(l);var w=zs.bind(null,a,c,l);c.then(w,w)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);s=Error((W(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==jl&&(jl=2),s=cl(s,l),p=i;do{switch(p.tag){case 3:a=s,p.flags|=4096,t&=-t,p.lanes|=t,fa(p,pl(0,a,t));break e;case 1:a=s;var k=p.type,S=p.stateNode;if(0==(64&p.flags)&&("function"==typeof k.getDerivedStateFromError||null!==S&&"function"==typeof S.componentDidCatch&&(null===Xl||!Xl.has(S)))){p.flags|=4096,t&=-t,p.lanes|=t,fa(p,fl(p,a,t));break e}}p=p.return}while(null!==p)}Ls(n)}catch(E){t=E,Il===n&&null!==n&&(Il=n=n.return);continue}break}}function Cs(){var e=Rl.current;return Rl.current=Oi,null===e?Oi:e}function Ts(e,t){var n=Ol;Ol|=16;var r=Cs();for(Nl===e&&Dl===t||_s(e,t);;)try{Ps();break}catch(o){xs(e,o)}if(ra(),Ol=n,Rl.current=r,null!==Il)throw Error(i(261));return Nl=null,Dl=0,jl}function Ps(){for(;null!==Il;)Rs(Il)}function As(){for(;null!==Il&&!Ao();)Rs(Il)}function Rs(e){var t=Zl(e.alternate,e,Fl);e.memoizedProps=e.pendingProps,null===t?Ls(e):Il=t,Ll.current=null}function Ls(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Fl)))return void(Il=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Fl)||0==(4&n.mode)){for(var r=0,o=n.child;null!==o;)r|=o.lanes|o.childLanes,o=o.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Il=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Il=t);Il=t=e}while(null!==t);0===jl&&(jl=5)}function Os(e){var t=$o();return Wo(99,Ns.bind(null,e,t)),null}function Ns(e,t){do{Ds()}while(null!==es);if(0!=(48&Ol))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,o=r,a=e.pendingLanes&~o;e.pendingLanes=o,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=o,e.mutableReadLanes&=o,e.entangledLanes&=o,o=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<a;){var c=31-Ht(a),u=1<<c;o[c]=0,l[c]=-1,s[c]=-1,a&=~u}if(null!==os&&0==(24&r)&&os.has(e)&&os.delete(e),e===Nl&&(Il=Nl=null,Dl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(o=Ol,Ol|=32,Ll.current=null,zr=Kt,br(l=gr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(u=s.getSelection&&s.getSelection())&&0!==u.rangeCount){s=u.anchorNode,a=u.anchorOffset,c=u.focusNode,u=u.focusOffset;try{s.nodeType,c.nodeType}catch(C){s=null;break e}var d=0,p=-1,f=-1,m=0,h=0,g=l,b=null;t:for(;;){for(var v;g!==s||0!==a&&3!==g.nodeType||(p=d+a),g!==c||0!==u&&3!==g.nodeType||(f=d+u),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===l)break t;if(b===s&&++m===a&&(p=d),b===c&&++h===u&&(f=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}s=-1===p||-1===f?null:{start:p,end:f}}else s=null;s=s||{start:0,end:0}}else s=null;qr={focusedElem:l,selectionRange:s},Kt=!1,us=null,ds=!1,Kl=r;do{try{Is()}catch(C){if(null===Kl)throw Error(i(330));Us(Kl,C),Kl=Kl.nextEffect}}while(null!==Kl);us=null,Kl=r;do{try{for(l=e;null!==Kl;){var y=Kl.flags;if(16&y&&ve(Kl.stateNode,""),128&y){var w=Kl.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:Sl(Kl),Kl.flags&=-3;break;case 6:Sl(Kl),Kl.flags&=-3,Cl(Kl.alternate,Kl);break;case 1024:Kl.flags&=-1025;break;case 1028:Kl.flags&=-1025,Cl(Kl.alternate,Kl);break;case 4:Cl(Kl.alternate,Kl);break;case 8:xl(l,s=Kl);var S=s.alternate;wl(s),null!==S&&wl(S)}Kl=Kl.nextEffect}}catch(C){if(null===Kl)throw Error(i(330));Us(Kl,C),Kl=Kl.nextEffect}}while(null!==Kl);if(k=qr,w=gr(),y=k.focusedElem,l=k.selectionRange,w!==y&&y&&y.ownerDocument&&hr(y.ownerDocument.documentElement,y)){null!==l&&br(y)&&(w=l.start,void 0===(k=l.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),s=y.textContent.length,S=Math.min(l.start,s),l=void 0===l.end?S:Math.min(l.end,s),!k.extend&&S>l&&(s=l,l=S,S=s),s=mr(y,S),a=mr(y,l),s&&a&&(1!==k.rangeCount||k.anchorNode!==s.node||k.anchorOffset!==s.offset||k.focusNode!==a.node||k.focusOffset!==a.offset)&&((w=w.createRange()).setStart(s.node,s.offset),k.removeAllRanges(),S>l?(k.addRange(w),k.extend(a.node,a.offset)):(w.setEnd(a.node,a.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Kt=!!zr,qr=zr=null,e.current=n,Kl=r;do{try{for(y=e;null!==Kl;){var E=Kl.flags;if(36&E&&bl(y,Kl.alternate,Kl),128&E){w=void 0;var _=Kl.ref;if(null!==_){var x=Kl.stateNode;Kl.tag,w=x,"function"==typeof _?_(w):_.current=w}}Kl=Kl.nextEffect}}catch(C){if(null===Kl)throw Error(i(330));Us(Kl,C),Kl=Kl.nextEffect}}while(null!==Kl);Kl=null,Bo(),Ol=o}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Kl=r;null!==Kl;)t=Kl.nextEffect,Kl.nextEffect=null,8&Kl.flags&&((E=Kl).sibling=null,E.stateNode=null),Kl=t;if(0===(r=e.pendingLanes)&&(Xl=null),1===r?e===is?as++:(as=0,is=e):as=0,n=n.stateNode,xo&&"function"==typeof xo.onCommitFiberRoot)try{xo.onCommitFiberRoot(_o,n,void 0,64==(64&n.current.flags))}catch(C){}if(gs(e,Ho()),Yl)throw Yl=!1,e=Ql,Ql=null,e;return 0!=(8&Ol)||Ko(),null}function Is(){for(;null!==Kl;){var e=Kl.alternate;ds||null===us||(0!=(8&Kl.flags)?et(Kl,us)&&(ds=!0):13===Kl.tag&&Pl(e,Kl)&&et(Kl,us)&&(ds=!0));var t=Kl.flags;0!=(256&t)&&gl(e,Kl),0==(512&t)||Jl||(Jl=!0,Zo(97,(function(){return Ds(),null}))),Kl=Kl.nextEffect}}function Ds(){if(90!==ts){var e=97<ts?97:ts;return ts=90,Wo(e,js)}return!1}function Fs(e,t){ns.push(t,e),Jl||(Jl=!0,Zo(97,(function(){return Ds(),null})))}function Ms(e,t){rs.push(t,e),Jl||(Jl=!0,Zo(97,(function(){return Ds(),null})))}function js(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Ol))throw Error(i(331));var t=Ol;Ol|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var o=n[r],a=n[r+1],l=o.destroy;if(o.destroy=void 0,"function"==typeof l)try{l()}catch(c){if(null===a)throw Error(i(330));Us(a,c)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){o=n[r],a=n[r+1];try{var s=o.create;o.destroy=s()}catch(c){if(null===a)throw Error(i(330));Us(a,c)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Ol=t,Ko(),!0}function Bs(e,t,n){pa(e,t=pl(0,t=cl(n,t),1)),t=ps(),null!==(e=hs(e,1))&&(Gt(e,1,t),gs(e,t))}function Us(e,t){if(3===e.tag)Bs(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Bs(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r))){var o=fl(n,e=cl(t,e),1);if(pa(n,o),o=ps(),null!==(n=hs(n,1)))Gt(n,1,o),gs(n,o);else if("function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r)))try{r.componentDidCatch(t,e)}catch(a){}break}}n=n.return}}function zs(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ps(),e.pingedLanes|=e.suspendedLanes&n,Nl===e&&(Dl&n)===n&&(4===jl||3===jl&&(62914560&Dl)===Dl&&500>Ho()-$l?_s(e,0):Gl|=n),gs(e,t)}function qs(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===$o()?1:2:(0===ss&&(ss=Ul),0===(t=zt(62914560&~ss))&&(t=4194304))),n=ps(),null!==(e=hs(e,t))&&(Gt(e,t,n),gs(e,n))}function Gs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Hs(e,t,n,r){return new Gs(e,t,n,r)}function $s(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Vs(e,t){var n=e.alternate;return null===n?((n=Hs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ws(e,t,n,r,o,a){var l=2;if(r=e,"function"==typeof e)$s(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case _:return Zs(n.children,o,a,t);case F:l=8,o|=16;break;case x:l=8,o|=1;break;case C:return(e=Hs(12,n,t,8|o)).elementType=C,e.type=C,e.lanes=a,e;case R:return(e=Hs(13,n,t,o)).type=R,e.elementType=R,e.lanes=a,e;case L:return(e=Hs(19,n,t,o)).elementType=L,e.lanes=a,e;case M:return Ks(n,o,a,t);case j:return(e=Hs(24,n,t,o)).elementType=j,e.lanes=a,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case P:l=9;break e;case A:l=11;break e;case O:l=14;break e;case N:l=16,r=null;break e;case I:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Hs(l,n,t,o)).elementType=e,t.type=r,t.lanes=a,t}function Zs(e,t,n,r){return(e=Hs(7,e,r,t)).lanes=n,e}function Ks(e,t,n,r){return(e=Hs(23,e,r,t)).elementType=M,e.lanes=n,e}function Ys(e,t,n){return(e=Hs(6,e,null,t)).lanes=n,e}function Qs(e,t,n){return(t=Hs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xs(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=qt(0),this.expirationTimes=qt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=qt(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function ec(e,t,n,r){var o=t.current,a=ps(),l=fs(o);e:if(n){t:{if(Ye(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(vo(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var c=n.type;if(vo(c)){n=ko(n,c,s);break e}}n=s}else n=fo;return null===t.context?t.context=n:t.pendingContext=n,(t=da(a,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),pa(o,t),ms(o,l,a),l}function tc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function nc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function rc(e,t){nc(e,t),(e=e.alternate)&&nc(e,t)}function oc(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xs(e,t,null!=n&&!0===n.hydrate),t=Hs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,ca(t),e[eo]=n.current,Or(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var o=(t=r[e])._getVersion;o=o(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,o]:n.mutableSourceEagerHydrationData.push(t,o)}this._internalRoot=n}function ac(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ic(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a._internalRoot;if("function"==typeof o){var l=o;o=function(){var e=tc(i);l.call(e)}}ec(t,i,e,o)}else{if(a=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new oc(e,0,t?{hydrate:!0}:void 0)}(n,r),i=a._internalRoot,"function"==typeof o){var s=o;o=function(){var e=tc(i);s.call(e)}}ks((function(){ec(t,i,e,o)}))}return tc(i)}function lc(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ac(t))throw Error(i(200));return Js(e,t,null,n)}Zl=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||ho.current)Mi=!0;else{if(0==(n&r)){switch(Mi=!1,t.tag){case 3:Wi(t),Za();break;case 5:Fa(t);break;case 1:vo(t.type)&&So(t);break;case 4:Ia(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var o=t.type._context;po(Jo,o._currentValue),o._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Xi(e,t,n):(po(ja,1&ja.current),null!==(t=al(e,t,n))?t.sibling:null);po(ja,1&ja.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return ol(e,t,n);t.flags|=64}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),po(ja,ja.current),r)break;return null;case 23:case 24:return t.lanes=0,qi(e,t,n)}return al(e,t,n)}Mi=0!=(16384&e.flags)}else Mi=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=bo(t,mo.current),ia(t,n),o=li(null,t,r,e,o,n),t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,vo(r)){var a=!0;So(t)}else a=!1;t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,ca(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&ba(t,r,l,e),o.updater=va,t.stateNode=o,o._reactInternals=t,Sa(t,r,e,n),t=Vi(null,t,r,!0,a,n)}else t.tag=0,ji(null,t,o,n),t=t.child;return t;case 16:o=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=(a=o._init)(o._payload),t.type=o,a=t.tag=function(e){if("function"==typeof e)return $s(e)?1:0;if(null!=e){if((e=e.$$typeof)===A)return 11;if(e===O)return 14}return 2}(o),e=Xo(o,e),a){case 0:t=Hi(null,t,o,e,n);break e;case 1:t=$i(null,t,o,e,n);break e;case 11:t=Bi(null,t,o,e,n);break e;case 14:t=Ui(null,t,o,Xo(o.type,e),r,n);break e}throw Error(i(306,o,""))}return t;case 0:return r=t.type,o=t.pendingProps,Hi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 1:return r=t.type,o=t.pendingProps,$i(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 3:if(Wi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,o=null!==(o=t.memoizedState)?o.element:null,ua(e,t),ma(t,r,null,n),(r=t.memoizedState.element)===o)Za(),t=al(e,t,n);else{if((a=(o=t.stateNode).hydrate)&&(za=Zr(t.stateNode.containerInfo.firstChild),Ua=t,a=qa=!0),a){if(null!=(e=o.mutableSourceEagerHydrationData))for(o=0;o<e.length;o+=2)(a=e[o])._workInProgressVersionPrimary=e[o+1],Ka.push(a);for(n=Pa(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else ji(e,t,r,n),Za();t=t.child}return t;case 5:return Fa(t),null===e&&$a(t),r=t.type,o=t.pendingProps,a=null!==e?e.memoizedProps:null,l=o.children,Hr(r,o)?l=null:null!==a&&Hr(r,a)&&(t.flags|=16),Gi(e,t),ji(e,t,l,n),t.child;case 6:return null===e&&$a(t),null;case 13:return Xi(e,t,n);case 4:return Ia(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ta(t,null,r,n):ji(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,Bi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 7:return ji(e,t,t.pendingProps,n),t.child;case 8:case 12:return ji(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,o=t.pendingProps,l=t.memoizedProps,a=o.value;var s=t.type._context;if(po(Jo,s._currentValue),s._currentValue=a,null!==l)if(s=l.value,0===(a=ur(s,a)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,a):1073741823))){if(l.children===o.children&&!ho.current){t=al(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var c=s.dependencies;if(null!==c){l=s.child;for(var u=c.firstContext;null!==u;){if(u.context===r&&0!=(u.observedBits&a)){1===s.tag&&((u=da(-1,n&-n)).tag=2,pa(s,u)),s.lanes|=n,null!==(u=s.alternate)&&(u.lanes|=n),aa(s.return,n),c.lanes|=n;break}u=u.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}ji(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=(a=t.pendingProps).children,ia(t,n),r=r(o=la(o,a.unstable_observedBits)),t.flags|=1,ji(e,t,r,n),t.child;case 14:return a=Xo(o=t.type,t.pendingProps),Ui(e,t,o,a=Xo(o.type,a),r,n);case 15:return zi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Xo(r,o),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,vo(r)?(e=!0,So(t)):e=!1,ia(t,n),wa(t,r,o),Sa(t,r,o,n),Vi(null,t,r,!0,e,n);case 19:return ol(e,t,n);case 23:case 24:return qi(e,t,n)}throw Error(i(156,t.tag))},oc.prototype.render=function(e){ec(e,this._internalRoot,null,null)},oc.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;ec(null,e,null,(function(){t[eo]=null}))},tt=function(e){13===e.tag&&(ms(e,4,ps()),rc(e,4))},nt=function(e){13===e.tag&&(ms(e,67108864,ps()),rc(e,67108864))},rt=function(e){if(13===e.tag){var t=ps(),n=fs(e);ms(e,n,t),rc(e,n)}},ot=function(e,t){return t()},Te=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=ao(r);if(!o)throw Error(i(90));Q(r),ne(r,o)}}}break;case"textarea":ce(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ne=ws,Ie=function(e,t,n,r,o){var a=Ol;Ol|=4;try{return Wo(98,e.bind(null,t,n,r,o))}finally{0===(Ol=a)&&(Wl(),Ko())}},De=function(){0==(49&Ol)&&(function(){if(null!==os){var e=os;os=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,Ho())}))}Ko()}(),Ds())},Fe=function(e,t){var n=Ol;Ol|=2;try{return e(t)}finally{0===(Ol=n)&&(Wl(),Ko())}};var sc={Events:[ro,oo,ao,Le,Oe,Ds,{current:!1}]},cc={findFiberByHostInstance:no,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},uc={bundleType:cc.bundleType,version:cc.version,rendererPackageName:cc.rendererPackageName,rendererConfig:cc.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Je(e))?null:e.stateNode},findFiberByHostInstance:cc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var dc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!dc.isDisabled&&dc.supportsFiber)try{_o=dc.inject(uc),xo=dc}catch(ge){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sc,t.createPortal=lc,t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(i(188));throw Error(i(268,Object.keys(e)))}return e=null===(e=Je(t))?null:e.stateNode},t.flushSync=function(e,t){var n=Ol;if(0!=(48&n))return e(t);Ol|=1;try{if(e)return Wo(99,e.bind(null,t))}finally{Ol=n,Ko()}},t.hydrate=function(e,t,n){if(!ac(t))throw Error(i(200));return ic(null,e,t,!0,n)},t.render=function(e,t,n){if(!ac(t))throw Error(i(200));return ic(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!ac(e))throw Error(i(40));return!!e._reactRootContainer&&(ks((function(){ic(null,null,e,!1,(function(){e._reactRootContainer=null,e[eo]=null}))})),!0)},t.unstable_batchedUpdates=ws,t.unstable_createPortal=function(e,t){return lc(e,t,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)},t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!ac(n))throw Error(i(200));if(null==e||void 0===e._reactInternals)throw Error(i(38));return ic(e,t,n,!1,r)},t.version="17.0.2"},73935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(64448)},69590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function a(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,c,u;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!a(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(s=u.next()).done;)if(!i.has(s.value[0]))return!1;for(u=e.entries();!(s=u.next()).done;)if(!a(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(s=u.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===i.toString();if((l=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,c[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==c[s]&&"__v"!==c[s]&&"__o"!==c[s]||!e.$$typeof)&&!a(e[c[s]],i[c[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return a(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},70405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>$,ql:()=>J});var r=n(67294),o=n(45697),a=n.n(o),i=n(69590),l=n.n(i),s=n(41143),c=n.n(s),u=n(96774),d=n.n(u);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(o[n]=e[n]);return o}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),E=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},_=function(e){var t=E(e,g.TITLE),n=E(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=E(e,"defaultTitle");return t||r||void 0},x=function(e){return E(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o<r.length;o+=1){var a=r[o].toLowerCase();if(-1!==e.indexOf(a)&&n[a])return t.concat(n)}return t}),[])},P=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var o={};n.filter((function(e){for(var n,a=Object.keys(e),i=0;i<a.length;i+=1){var l=a[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var c=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][c]&&(o[n][c]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var a=Object.keys(o),i=0;i<a.length;i+=1){var l=a[i],s=p({},r[l],o[l]);r[l]=s}return e}),[]).reverse()},A=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},R=function(e){return Array.isArray(e)?e.join(""):e},L=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},O=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},N=[g.NOSCRIPT,g.SCRIPT,g.STYLE],I=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},F=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var o,a=((o={key:n})["data-rh"]=!0,o);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?a.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:a[n]=t[e]})),r.createElement(e,a)}))},j=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,a=F(n,o),[r.createElement(g.TITLE,a,e)];var e,n,o,a},toString:function(){return function(e,t,n,r){var o=D(n),a=R(t);return o?"<"+e+' data-rh="true" '+o+">"+I(a,r)+"</"+e+">":"<"+e+' data-rh="true">'+I(a,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return F(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var o=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var o=void 0===r[t]?t:t+'="'+I(r[t],n)+'"';return e?e+" "+o:o}),""),a=r.innerHTML||r.cssText||"",i=-1===N.indexOf(e);return t+"<"+e+' data-rh="true" '+o+(i?"/>":">"+a+"</"+e+">")}),"")}(e,t,n)}}}},B=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,a=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,c=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,o=L(e.metaTags,y),a=L(t,b),i=L(n,v);return{priorityMethods:{toComponent:function(){return[].concat(M(g.META,o.priority),M(g.LINK,a.priority),M(g.SCRIPT,i.priority))},toString:function(){return j(g.META,o.priority,r)+" "+j(g.LINK,a.priority,r)+" "+j(g.SCRIPT,i.priority,r)}},metaTags:o.default,linkTags:a.default,scriptTags:i.default}}(e);f=m.priorityMethods,u=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:j(g.BASE,t,r),bodyAttributes:j("bodyAttributes",n,r),htmlAttributes:j("htmlAttributes",o,r),link:j(g.LINK,u,r),meta:j(g.META,d,r),noscript:j(g.NOSCRIPT,a,r),script:j(g.SCRIPT,p,r),style:j(g.STYLE,i,r),title:j(g.TITLE,{title:s,titleAttributes:c},r)}},U=[],z=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?U:n.instances},add:function(e){(n.canUseDOM?U:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?U:n.instances).indexOf(e);(n.canUseDOM?U:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=B({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},q=r.createContext({}),G=a().shape({setHelmet:a().func,helmetInstances:a().shape({get:a().func,add:a().func,remove:a().func})}),H="undefined"!=typeof document,$=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new z(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement(q.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);$.canUseDOM=H,$.propTypes={context:a().shape({helmet:a().shape()}),children:a().node.isRequired},$.defaultProps={context:{}},$.displayName="HelmetProvider";var V=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),o=r.querySelectorAll(e+"[data-rh]"),a=[].slice.call(o),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&("innerHTML"===o?r.innerHTML=t.innerHTML:"cssText"===o?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(o,void 0===t[o]?"":t[o]));r.setAttribute("data-rh","true"),a.some((function(e,t){return n=t,r.isEqualNode(e)}))?a.splice(n,1):i.push(r)})),a.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:a,newTags:i}},W=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),o=r?r.split(","):[],a=[].concat(o),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],c=t[s]||"";n.getAttribute(s)!==c&&n.setAttribute(s,c),-1===o.indexOf(s)&&o.push(s);var u=a.indexOf(s);-1!==u&&a.splice(u,1)}for(var d=a.length-1;d>=0;d-=1)n.removeAttribute(a[d]);o.length===a.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Z=function(e,t){var n=e.baseTag,r=e.htmlAttributes,o=e.linkTags,a=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,c=e.styleTags,u=e.title,d=e.titleAttributes;W(g.BODY,e.bodyAttributes),W(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=R(e)),W(g.TITLE,t)}(u,d);var p={baseTag:V(g.BASE,n),linkTags:V(g.LINK,o),metaTags:V(g.META,a),noscriptTags:V(g.NOSCRIPT,i),scriptTags:V(g.SCRIPT,s),styleTags:V(g.STYLE,c)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),l(e,f,m)},K=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,o=null,a=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:E(e,"defer"),encode:E(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:P(g.LINK,["rel","href"],e),metaTags:P(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:P(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:x(e),scriptTags:P(g.SCRIPT,["src","innerHTML"],e),styleTags:P(g.STYLE,["cssText"],e),title:_(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:A(e,"prioritizeSeoTags")});$.canUseDOM?(t=a,K&&cancelAnimationFrame(K),t.defer?K=requestAnimationFrame((function(){Z(t,(function(){K=null}))})):(Z(t),K=null)):B&&(o=B(a)),r(o)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Y.propTypes={context:G.isRequired},Y.displayName="HelmetDispatcher";var Q=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(O(this.props,"helmetData"),O(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,a=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},o,((t={})[r.type]=i,t.titleAttributes=p({},a),t));case g.BODY:return p({},o,{bodyAttributes:p({},a)});case g.HTML:return p({},o,{htmlAttributes:p({},a)});default:return p({},o,((n={})[r.type]=p({},a),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return c()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),c()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,o={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,a=r.children,i=h(r,Q),l=Object.keys(i).reduce((function(e,t){return e[S[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,a),s){case g.FRAGMENT:t=n.mapChildrenToProps(a,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:l,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:a})}}})),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),o=p({},n),a=n.helmetData;return t&&(o=this.mapChildrenToProps(t,o)),!a||a instanceof z||(a=new z(a.context,a.instances)),a?r.createElement(Y,p({},o,{context:a.value,helmetData:void 0})):r.createElement(q.Consumer,null,(function(e){return r.createElement(Y,p({},o,{context:e}))}))},t}(r.Component);J.propTypes={base:a().object,bodyAttributes:a().object,children:a().oneOfType([a().arrayOf(a().node),a().node]),defaultTitle:a().string,defer:a().bool,encodeSpecialCharacters:a().bool,htmlAttributes:a().object,link:a().arrayOf(a().object),meta:a().arrayOf(a().object),noscript:a().arrayOf(a().object),onChangeClientState:a().func,script:a().arrayOf(a().object),style:a().arrayOf(a().object),title:a().string,titleAttributes:a().object,titleTemplate:a().string,prioritizeSeoTags:a().bool,helmetData:a().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},69921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case a:case l:case i:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case g:case h:case s:return e;default:return t}}case o:return t}}}function S(e){return k(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=g,t.Memo=h,t.Portal=o,t.Profiler=l,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return S(e)||k(e)===u},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===c},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===a},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===o},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===l||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===c||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},59864:(e,t,n)=>{"use strict";e.exports=n(69921)},68356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(67294),s=n(45697),c=[],u=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var o=d(e[r]);o.loading?t.loading=!0:(t.loaded[r]=o.loaded,t.error=o.error),n.push(o.promise),o.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return c.push(g),"function"==typeof m.webpack&&u.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return a(o(o(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),a(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}a(g,"propTypes",{report:s.func.isRequired}),a(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(c).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=h},18790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(76775),o=n(87462),a=n(67294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&i(e.routes,t,n)),o})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?a.createElement(r.rs,n,e.map((function(e,n){return a.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,o.Z)({},n,{},t,{route:e})):a.createElement(e.component,(0,o.Z)({},n,t,{route:e}))}})}))):null}},73727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>u,rU:()=>g});var r=n(76775),o=n(75068),a=n(67294),i=n(99318),l=n(87462),s=n(63366),c=n(2177),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,o.Z)(t,e),t.prototype.render=function(){return a.createElement(r.F0,{history:this.history,children:this.props.children})},t}(a.Component);a.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},f=function(e){return e},m=a.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,o=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),c=i.target,u=(0,l.Z)({},i,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||c&&"_self"!==c||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=f!==m&&t||n,a.createElement("a",u)}));var g=m((function(e,t){var n=e.component,o=void 0===n?h:n,u=e.replace,g=e.to,b=e.innerRef,v=(0,s.Z)(e,["component","replace","to","innerRef"]);return a.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=e.history,r=p(d(g,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.Z)({},v,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(p(t));(u||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||b:h.innerRef=b,a.createElement(o,h)}))})),b=function(e){return e},v=a.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,f=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,S=e.strict,E=e.style,_=e.to,x=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=w||e.location,i=p(d(_,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),P=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:S}):null,A=!!(y?y(P,n):P),R="function"==typeof m?m(A):m,L="function"==typeof E?E(A):E;A&&(R=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(R,u),L=(0,l.Z)({},L,f));var O=(0,l.Z)({"aria-current":A&&o||null,className:R,style:L,to:i},C);return b!==v?O.ref=t||x:O.innerRef=x,a.createElement(g,O)}))}))},76775:(e,t,n)=>{"use strict";n.d(t,{AW:()=>x,F0:()=>k,rs:()=>L,s6:()=>w,LX:()=>_,k6:()=>N,TH:()=>I});var r=n(75068),o=n(67294),a=n(99318),i=n(45697),l=n.n(i),s=1073741823,c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};function u(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter((function(t){return t!==e}))},get:function(){return e},set:function(n,r){e=n,t.forEach((function(t){return t(e,r)}))}}}var d=o.createContext||function(e,t){var n,a,i="__create-react-context-"+function(){var e="__global_unique_id__";return c[e]=(c[e]||0)+1}()+"__",d=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).emitter=u(t.props.value),t}(0,r.Z)(n,e);var o=n.prototype;return o.getChildContext=function(){var e;return(e={})[i]=this.emitter,e},o.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,o=e.value;((a=r)===(i=o)?0!==a||1/a==1/i:a!=a&&i!=i)?n=0:(n="function"==typeof t?t(r,o):s,0!==(n|=0)&&this.emitter.set(e.value,n))}var a,i},o.render=function(){return this.props.children},n}(o.Component);d.childContextTypes=((n={})[i]=l().object.isRequired,n);var p=function(t){function n(){var e;return(e=t.apply(this,arguments)||this).state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var o=n.prototype;return o.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?s:t},o.componentDidMount=function(){this.context[i]&&this.context[i].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?s:e},o.componentWillUnmount=function(){this.context[i]&&this.context[i].off(this.onUpdate)},o.getValue=function(){return this.context[i]?this.context[i].get():e},o.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(o.Component);return p.contextTypes=((a={})[i]=l().object,a),{Provider:d,Consumer:p}};const p=d;var f=n(2177),m=n(87462),h=n(39658),g=n.n(h),b=(n(59864),n(63366)),v=(n(8679),function(e){var t=p();return t.displayName=e,t}),y=v("Router-History"),w=v("Router"),k=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return o.createElement(w.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.createElement(y.Provider,{children:this.props.children||null,value:this.props.history}))},t}(o.Component);o.Component;o.Component;var S={},E=0;function _(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,o=n.exact,a=void 0!==o&&o,i=n.strict,l=void 0!==i&&i,s=n.sensitive,c=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=S[n]||(S[n]={});if(r[e])return r[e];var o=[],a={regexp:g()(e,o,t),keys:o};return E<1e4&&(r[e]=a,E++),a}(n,{end:a,strict:l,sensitive:c}),o=r.regexp,i=r.keys,s=o.exec(e);if(!s)return null;var u=s[0],d=s.slice(1),p=e===u;return a&&!p?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:p,params:i.reduce((function(e,t,n){return e[t.name]=d[n],e}),{})}}),null)}var x=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(w.Consumer,null,(function(t){t||(0,f.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?_(n.pathname,e.props):t.match,a=(0,m.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,s=i.component,c=i.render;return Array.isArray(l)&&function(e){return 0===o.Children.count(e)}(l)&&(l=null),o.createElement(w.Provider,{value:a},a.match?l?"function"==typeof l?l(a):l:s?o.createElement(s,a):c?c(a):null:"function"==typeof l?l(a):null)}))},t}(o.Component);function C(e){return"/"===e.charAt(0)?e:"/"+e}function T(e,t){if(!e)return t;var n=C(e);return 0!==t.pathname.indexOf(n)?t:(0,m.Z)({},t,{pathname:t.pathname.substr(n.length)})}function P(e){return"string"==typeof e?e:(0,a.Ep)(e)}function A(e){return function(){(0,f.Z)(!1)}}function R(){}o.Component;var L=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(w.Consumer,null,(function(t){t||(0,f.Z)(!1);var n,r,a=e.props.location||t.location;return o.Children.forEach(e.props.children,(function(e){if(null==r&&o.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?_(a.pathname,(0,m.Z)({},e.props,{path:i})):t.match}})),r?o.cloneElement(n,{location:a,computedMatch:r}):null}))},t}(o.Component);var O=o.useContext;function N(){return O(y)}function I(){return O(w).location}},39658:(e,t,n)=>{var r=n(5826);e.exports=f,e.exports.parse=a,e.exports.compile=function(e,t){return l(a(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,l="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,E="?"===y||"*"===y,_=n[2]||u,x=b||v;r.push({name:g||a++,prefix:h||"",delimiter:_,optional:E,repeat:S,partial:k,asterisk:!!w,pattern:x?c(x):w?".*":"[^"+s(_)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),o=0;o<e.length;o++)"object"==typeof e[o]&&(n[o]=new RegExp("^(?:"+e[o].pattern+")$",d(t)));return function(t,o){for(var a="",l=t||{},s=(o||{}).pretty?i:encodeURIComponent,c=0;c<e.length;c++){var u=e[c];if("string"!=typeof u){var d,p=l[u.name];if(null==p){if(u.optional){u.partial&&(a+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=s(p[f]),!n[c].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");a+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(p),!n[c].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');a+=u.prefix+d}}else a+=u}return a}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function c(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var o=(n=n||{}).strict,a=!1!==n.end,i="",l=0;l<e.length;l++){var c=e[l];if("string"==typeof c)i+=s(c);else{var p=s(c.prefix),f="(?:"+c.pattern+")";t.push(c),c.repeat&&(f+="(?:"+p+f+")*"),i+=f=c.optional?c.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=s(n.delimiter||"/"),h=i.slice(-m.length)===m;return o||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=a?"$":o&&h?"":"(?="+m+"|$)",u(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(f(e[o],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(a(e,n),t,n)}(e,t,n)}},72408:(e,t,n)=>{"use strict";var r=n(27418),o=60103,a=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var c=60115,u=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;o=d("react.element"),a=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),c=d("react.memo"),u=d("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,a={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!S.hasOwnProperty(r)&&(a[r]=t[r]);var s=arguments.length-2;if(1===s)a.children=n;else if(1<s){for(var c=Array(s),u=0;u<s;u++)c[u]=arguments[u+2];a.children=c}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===a[r]&&(a[r]=s[r]);return{$$typeof:o,type:e,key:i,ref:l,props:a,_owner:w.current}}function _(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var x=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case o:case a:s=!0}}if(s)return i=i(s=e),e=""===r?"."+C(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(x,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(_(i)&&(i=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(x,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var c=0;c<e.length;c++){var u=r+C(l=e[c],c);s+=T(l,t,n,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),c=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,u=r+C(l,c++),i);else if("object"===l)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function P(e,t,n){if(null==e)return e;var r=[],o=0;return T(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function A(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var R={current:null};function L(){var e=R.current;if(null===e)throw Error(f(321));return e}var O={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:P,forEach:function(e,t,n){P(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return P(e,(function(){t++})),t},toArray:function(e){return P(e,(function(e){return e}))||[]},only:function(e){if(!_(e))throw Error(f(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O,t.cloneElement=function(e,t,n){if(null==e)throw Error(f(267,e));var a=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(u in t)k.call(t,u)&&!S.hasOwnProperty(u)&&(a[u]=void 0===t[u]&&void 0!==c?c[u]:t[u])}var u=arguments.length-2;if(1===u)a.children=n;else if(1<u){c=Array(u);for(var d=0;d<u;d++)c[d]=arguments[d+2];a.children=c}return{$$typeof:o,type:e.type,key:i,ref:l,props:a,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=_,t.lazy=function(e){return{$$typeof:u,_payload:{_status:-1,_result:e},_init:A}},t.memo=function(e,t){return{$$typeof:c,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return L().useCallback(e,t)},t.useContext=function(e,t){return L().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return L().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return L().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return L().useLayoutEffect(e,t)},t.useMemo=function(e,t){return L().useMemo(e,t)},t.useReducer=function(e,t,n){return L().useReducer(e,t,n)},t.useRef=function(e){return L().useRef(e)},t.useState=function(e){return L().useState(e)},t.version="17.0.2"},67294:(e,t,n)=>{"use strict";e.exports=n(72408)},60053:(e,t)=>{"use strict";var n,r,o,a;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var c=null,u=null,d=function(){if(null!==c)try{var e=t.unstable_now();c(!0,e),c=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==c?setTimeout(n,0,e):(c=e,setTimeout(d,0))},r=function(e,t){u=setTimeout(e,t)},o=function(){clearTimeout(u)},t.unstable_shouldYield=function(){return!1},a=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,f=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},a=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){b=p((function(){e(t.unstable_now())}),n)},o=function(){f(b),b=-1}}function S(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,o=e[r];if(!(void 0!==o&&0<x(o,t)))break e;e[r]=t,e[n]=o,n=r}}function E(e){return void 0===(e=e[0])?null:e}function _(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length;r<o;){var a=2*(r+1)-1,i=e[a],l=a+1,s=e[l];if(void 0!==i&&0>x(i,n))void 0!==s&&0>x(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[a]=n,r=a);else{if(!(void 0!==s&&0>x(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function x(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],P=1,A=null,R=3,L=!1,O=!1,N=!1;function I(e){for(var t=E(T);null!==t;){if(null===t.callback)_(T);else{if(!(t.startTime<=e))break;_(T),t.sortIndex=t.expirationTime,S(C,t)}t=E(T)}}function D(e){if(N=!1,I(e),!O)if(null!==E(C))O=!0,n(F);else{var t=E(T);null!==t&&r(D,t.startTime-e)}}function F(e,n){O=!1,N&&(N=!1,o()),L=!0;var a=R;try{for(I(n),A=E(C);null!==A&&(!(A.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=A.callback;if("function"==typeof i){A.callback=null,R=A.priorityLevel;var l=i(A.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?A.callback=l:A===E(C)&&_(C),I(n)}else _(C);A=E(C)}if(null!==A)var s=!0;else{var c=E(T);null!==c&&r(D,c.startTime-n),s=!1}return s}finally{A=null,R=a,L=!1}}var M=a;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){O||L||(O=!0,n(F))},t.unstable_getCurrentPriorityLevel=function(){return R},t.unstable_getFirstCallbackNode=function(){return E(C)},t.unstable_next=function(e){switch(R){case 1:case 2:case 3:var t=3;break;default:t=R}var n=R;R=t;try{return e()}finally{R=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=M,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=R;R=e;try{return t()}finally{R=n}},t.unstable_scheduleCallback=function(e,a,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:P++,callback:a,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,S(T,e),null===E(C)&&e===E(T)&&(N?o():N=!0,r(D,i-l))):(e.sortIndex=s,S(C,e),O||L||(O=!0,n(F))),e},t.unstable_wrapCallback=function(e){var t=R;return function(){var n=R;R=t;try{return e.apply(this,arguments)}finally{R=n}}}},63840:(e,t,n)=>{"use strict";e.exports=n(60053)},96774:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<a.length;s++){var c=a[s];if(!l(c))return!1;var u=e[c],d=t[c];if(!1===(o=n?n.call(r,u,d,c):void 0)||void 0===o&&u!==d)return!1}return!0}},2177:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r="Invariant failed";function o(e,t){if(!e)throw new Error(r)}},53250:(e,t,n)=>{"use strict";var r=n(67294);var o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}catch(r){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),o=r[0].inst,u=r[1];return l((function(){o.value=n,o.getSnapshot=t,c(o)&&u({inst:o})}),[e,n,t]),i((function(){return c(o)&&u({inst:o}),e((function(){c(o)&&u({inst:o})}))}),[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:u},61688:(e,t,n)=>{"use strict";e.exports=n(53250)},36809:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"Flow",tagline:"A Static Type Checker for JavaScript",url:"https://flow.org",baseUrl:"/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",favicon:"img/favicon.png",organizationName:"facebook",projectName:"flow",trailingSlash:!0,markdown:{mermaid:!0},themes:["@docusaurus/theme-mermaid"],plugins:[null,null,null,null],themeConfig:{algolia:{appId:"P6T3E8XPGT",apiKey:"01f111c0b2980e54f1307e982fa2c218",indexName:"flow",contextualSearch:!0,searchParameters:{},searchPagePath:"search"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!0,respectPrefersColorScheme:!1},navbar:{logo:{alt:"My Facebook Project Logo",src:"img/logo.svg"},items:[{to:"en/docs/getting-started",activeBasePath:"en/docs/getting-started",label:"Getting Started",position:"left"},{to:"en/docs/",activeBasePath:"en/docs",label:"Docs",position:"left"},{to:"try/",activeBasePath:"try",label:"Try",position:"left"},{to:"blog/",label:"Blog",position:"left"},{href:"https://twitter.com/flowtype","aria-label":"Twitter",position:"right",className:"navbar__icon twitter__link"},{href:"http://stackoverflow.com/questions/tagged/flowtype","aria-label":"Stack Overflow",position:"right",className:"navbar__icon stackoverflow__link"},{href:"https://github.com/facebook/flow","aria-label":"GitHub",position:"right",className:"navbar__icon github__link"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Learn",items:[{label:"Getting Started",to:"en/docs/getting-started"}]},{title:"Community",items:[{label:"Twitter",href:"https://twitter.com/flowtype"},{label:"Discord",href:"https://discordapp.com/invite/8ezwRUK"}]},{title:"More",items:[{label:"Medium",to:"https://medium.com/flow-type"},{label:"GitHub",href:"https://github.com/facebook/flow"}]},{title:"Legal",items:[{label:"Privacy",href:"https://opensource.facebook.com/legal/privacy/"},{label:"Terms",href:"https://opensource.facebook.com/legal/terms/"},{label:"Data Policy",href:"https://opensource.facebook.com/legal/data-policy/"},{label:"Cookie Policy",href:"https://opensource.facebook.com/legal/cookie-policy/"}]}],logo:{alt:"Facebook Open Source Logo",src:"img/oss_logo.png",href:"https://opensource.facebook.com"},copyright:"Copyright \xa9 2024 Meta Platforms, Inc. Built with Docusaurus."},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3},mermaid:{theme:{dark:"dark",light:"default"},options:{}}},customFields:{flowVersion:"v0.226.0",allFlowVersions:["master","v0.226.0","v0.225.1","v0.225.0","v0.224.0","v0.223.3","v0.223.2","v0.223.0","v0.222.0","v0.221.0","v0.220.1","v0.220.0","v0.219.4","v0.219.3","v0.219.2","v0.219.0","v0.218.1","v0.218.0","v0.217.2","v0.217.1","v0.217.0","v0.216.0","v0.215.0","v0.214.0","v0.213.1","v0.213.0","v0.212.0","v0.211.1","v0.211.0","v0.210.2","v0.210.1","v0.210.0","v0.209.1","v0.209.0","v0.208.1","v0.208.0","v0.207.0","v0.206.0","v0.205.1","v0.205.0","v0.204.1","v0.204.0","v0.203.1","v0.203.0","v0.202.1","v0.202.0","v0.201.0","v0.200.1","v0.200.0","v0.199.1","v0.199.0","v0.198.2","v0.198.1","v0.198.0","v0.197.0","v0.196.3","v0.196.2","v0.196.1","v0.196.0","v0.195.2","v0.195.1","v0.195.0","v0.194.0","v0.193.0","v0.192.0","v0.191.0","v0.190.1","v0.190.0","v0.189.0","v0.188.2","v0.188.1","v0.188.0","v0.187.1","v0.187.0","v0.186.0","v0.185.2","v0.185.1","v0.185.0","v0.184.0","v0.183.1","v0.183.0"],fbRepoName:"fbsource"},presets:[["/home/circleci/flow/website/node_modules/docusaurus-plugin-internaldocs-fb/docusaurus-preset.js",{docs:{routeBasePath:"en/docs",sidebarPath:"/home/circleci/flow/website/sidebars.js",editUrl:"https://github.com/facebook/flow/edit/main/website/",remarkPlugins:[[null,{sync:!0}],null,[null,{strippedFilePattern:{}}],[null,{}],[null,{version:"v1"}],null]},staticDocsProject:"flow",blog:{path:"blog",postsPerPage:50,showReadingTime:!1,blogSidebarCount:"ALL",blogSidebarTitle:"All our posts"},theme:{customCss:"/home/circleci/flow/website/src/css/custom.css"},googleAnalytics:{trackingID:"UA-49208336-4",anonymizeIP:!0}}]],baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},onDuplicateRoutes:"warn",staticDirectories:["static"],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1}},87462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},75068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>o})},63366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{Z:()=>r})},57529:e=>{"use strict";e.exports={}},16887:e=>{"use strict";e.exports=JSON.parse('{"/blog/-739":{"__comp":"a6aa9e1f","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","items":[{"content":"0f5f1bf5"},{"content":"14a09451"},{"content":"38bf0af0"},{"content":"08b677a9"},{"content":"ba8405e9"},{"content":"1deff68a"},{"content":"f9dfb1df"},{"content":"7c31194e"},{"content":"06d7817c"},{"content":"849c3168"},{"content":"c28c9f4c"},{"content":"8ad8f3b7"},{"content":"17f3f5fa"},{"content":"a81db0a3"},{"content":"716a2b3a"},{"content":"f5c59384"},{"content":"627ee67b"},{"content":"1d1d2623"},{"content":"3436f537"},{"content":"2882eb4d"},{"content":"67fab80a"},{"content":"c0c47fbb"},{"content":"d94d234a"},{"content":"fe33e49c"},{"content":"23d108aa"},{"content":"f1ce6d33"},{"content":"685b7887"},{"content":"45e3d4a1"},{"content":"16da00f1"},{"content":"0b9b5b1e"},{"content":"bc1ef7db"},{"content":"1b0eafb0"},{"content":"ada421c5"},{"content":"6f13cf50"},{"content":"c56ec64d"},{"content":"3546858d"},{"content":"a7997f86"},{"content":"2e83a3f1"},{"content":"0d725906"},{"content":"a34bf502"},{"content":"0d9d4513"},{"content":"b638890a"},{"content":"149f1a8f"},{"content":"835b28c9"},{"content":"31b1f40d"},{"content":"ba3cba1f"},{"content":"2d59284f"},{"content":"ae57f6c5"},{"content":"22d19fd2"},{"content":"aeadb6e0"}],"metadata":"b2b675dd"},"/blog/2015/02/18/Import-Types/-296":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"cdf37a1d"},"/blog/2015/02/18/Typecasts/-7b4":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"f73cdd84"},"/blog/2015/02/20/Flow-Comments/-618":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"1a87007a"},"/blog/2015/03/12/Bounded-Polymorphism/-a7c":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"36dd8a2a"},"/blog/2015/07/03/Disjoint-Unions/-db3":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"57cbb641"},"/blog/2015/07/29/Version-0.14.0/-2ba":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"6283dc52"},"/blog/2015/09/10/Version-0.15.0/-202":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"ad9c98c9"},"/blog/2015/09/22/Version-0.16.0/-87a":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"f7269812"},"/blog/2015/10/07/Version-0.17.0/-f21":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"8c284244"},"/blog/2015/11/09/Generators/-e2d":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"21198339"},"/blog/2015/12/01/Version-0.19.0/-c77":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"a1182569"},"/blog/2016/02/02/Version-0.21.0/-779":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"498260da"},"/blog/2016/07/01/New-Unions-Intersections/-a42":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"9d1a18d2"},"/blog/2016/08/01/Windows-Support/-605":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"ef1d3ef7"},"/blog/2016/10/04/Property-Variance/-de3":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"f4043d76"},"/blog/2016/10/13/Flow-Typed/-5b7":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"2cfb3ef2"},"/blog/2017/05/07/Strict-Function-Call-Arity/-625":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"bac2ecab"},"/blog/2017/07/27/Opaque-Types/-ec2":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"b8605767"},"/blog/2017/08/04/Linting-in-Flow/-33e":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"2758e022"},"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow/-469":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"8450619c"},"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases/-61d":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"2dc2c6fe"},"/blog/2017/09/03/Flow-Support-in-Recompose/-045":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"fad02e7a"},"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem/-2ff":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"16eb21a1"},"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals/-f09":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"e1d0b0e7"},"/blog/2018/10/18/Exact-Objects-By-Default/-f68":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"47fceb5c"},"/blog/2018/10/29/Asking-for-Required-Annotations/-558":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"18a5105d"},"/blog/2018/12/13/React-Abstract-Component/-5d1":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"cee75076"},"/blog/2019/08/20/Changes-to-Object-Spreads/-9cd":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"1e640efa"},"/blog/2019/1/28/What-the-flow-team-has-been-up-to/-f39":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"945c2ff6"},"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE/-b62":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"6fbe3924"},"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes/-6ad":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"ec748175"},"/blog/2019/2/8/A-More-Responsive-Flow/-2f8":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"a4903c78"},"/blog/2019/4/9/Upgrading-Flow-Codebases/-46e":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"9271a7d9"},"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax/-892":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"ad260ef5"},"/blog/2020/02/19/Improvements-to-Flow-in-2019/-2d9":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"f0993487"},"/blog/2020/03/09/What-were-building-in-2020/-51b":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"0821ba19"},"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific/-566":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"b5e58b9e"},"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow/-f26":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"ba134b70"},"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types/-d53":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"49fc8451"},"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow/-41b":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"9202bab2"},"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement/-5d9":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"1c79b411"},"/blog/2021/06/02/Sound-Typing-for-this-in-Flow/-584":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"f3f01bf9"},"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/-74f":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"3c67c6f1"},"/blog/2021/09/13/Introducing-Flow-Enums/-4f6":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"2a98dbd2"},"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/-2b4":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"534636ef"},"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/-c88":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"8d8646df"},"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/-8f4":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"0d31b876"},"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/-382":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"4ca37602"},"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/-03f":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"ccf70fff"},"/blog/2023/01/17/Local-Type-Inference/-662":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"bda0a621"},"/blog/2023/02/16/Exact-object-types-by-default-by-default/-6cd":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"c61e173e"},"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/-f6c":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"a0f1eb17"},"/blog/2023/04/10/Unused-Promise/-77d":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"7db70a13"},"/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/-27f":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"ba769f8c"},"/blog/archive/-6f6":{"__comp":"9e4087bc","__context":{"plugin":"5b39b3b8"},"archive":"b2f554cd"},"/blog/page/2/-e19":{"__comp":"a6aa9e1f","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","items":[{"content":"9b7118e6"},{"content":"c9e6dd55"},{"content":"6baa791a"},{"content":"3696a2ba"}],"metadata":"8eb4e46b"},"/search/-6a7":{"__comp":"1a4e3797","__context":{"plugin":"e58aeffb"}},"/try/-4ee":{"__comp":"f8910b2d","__context":{"plugin":"d25022d5"},"config":"5e9f5e1a"},"/en/docs/-397":{"__comp":"1be78505","__context":{"plugin":"06f797e0"},"versionMetadata":"935f2afb"},"/en/docs/-afb":{"__comp":"17896441","content":"c377a04b"},"/en/docs/cli/-2b2":{"__comp":"17896441","content":"7760e989"},"/en/docs/cli/annotate-exports/-28e":{"__comp":"17896441","content":"a914a609"},"/en/docs/cli/coverage/-341":{"__comp":"17896441","content":"f3ccad72"},"/en/docs/config/-2a9":{"__comp":"17896441","content":"96e46681"},"/en/docs/config/declarations/-9bc":{"__comp":"17896441","content":"e06cc5ae"},"/en/docs/config/ignore/-5a7":{"__comp":"17896441","content":"6bd3f849"},"/en/docs/config/include/-8c0":{"__comp":"17896441","content":"3c73173e"},"/en/docs/config/libs/-175":{"__comp":"17896441","content":"22864986"},"/en/docs/config/lints/-690":{"__comp":"17896441","content":"5af46b94"},"/en/docs/config/options/-4ed":{"__comp":"17896441","content":"2fb2f756"},"/en/docs/config/untyped/-d06":{"__comp":"17896441","content":"f6a97d3f"},"/en/docs/config/version/-38c":{"__comp":"17896441","content":"4854ca19"},"/en/docs/declarations/-38e":{"__comp":"17896441","content":"39814850"},"/en/docs/editors/-de9":{"__comp":"17896441","content":"8d4addf8"},"/en/docs/editors/emacs/-05a":{"__comp":"17896441","content":"57c2009f"},"/en/docs/editors/sublime-text/-615":{"__comp":"17896441","content":"5a63fcc7"},"/en/docs/editors/vim/-427":{"__comp":"17896441","content":"41545044"},"/en/docs/editors/vscode/-71c":{"__comp":"17896441","content":"f85b6e96"},"/en/docs/editors/webstorm/-ecd":{"__comp":"17896441","content":"f8222af9"},"/en/docs/enums/-613":{"__comp":"17896441","content":"2fccebec"},"/en/docs/enums/defining-enums/-a51":{"__comp":"17896441","content":"e3555d4f"},"/en/docs/enums/enabling-enums/-616":{"__comp":"17896441","content":"75d6ea67"},"/en/docs/enums/migrating-legacy-patterns/-329":{"__comp":"17896441","content":"7355e963"},"/en/docs/enums/using-enums/-cc2":{"__comp":"17896441","content":"db9c8b69"},"/en/docs/errors/-06a":{"__comp":"17896441","content":"ed6c4993"},"/en/docs/faq/-9fc":{"__comp":"17896441","content":"0480b142"},"/en/docs/getting-started/-ba1":{"__comp":"17896441","content":"d589d3a7"},"/en/docs/install/-d51":{"__comp":"17896441","content":"c4de80f8"},"/en/docs/lang/annotation-requirement/-c98":{"__comp":"17896441","content":"4e1bb112"},"/en/docs/lang/depth-subtyping/-902":{"__comp":"17896441","content":"ec7083e4"},"/en/docs/lang/lazy-modes/-4b6":{"__comp":"17896441","content":"400005bc"},"/en/docs/lang/nominal-structural/-5a3":{"__comp":"17896441","content":"0801aa48"},"/en/docs/lang/refinements/-5f1":{"__comp":"17896441","content":"a45c950d"},"/en/docs/lang/subtypes/-eac":{"__comp":"17896441","content":"a6ec1ca4"},"/en/docs/lang/type-hierarchy/-145":{"__comp":"17896441","content":"c935ef9f"},"/en/docs/lang/types-and-expressions/-31d":{"__comp":"17896441","content":"9d6b221c"},"/en/docs/lang/types-first/-774":{"__comp":"17896441","content":"0eb64d46"},"/en/docs/lang/variables/-b43":{"__comp":"17896441","content":"145fd8c8"},"/en/docs/lang/variance/-a0b":{"__comp":"17896441","content":"855f8093"},"/en/docs/lang/width-subtyping/-412":{"__comp":"17896441","content":"797bdcb3"},"/en/docs/libdefs/-8aa":{"__comp":"17896441","content":"38b6d82d"},"/en/docs/libdefs/creation/-f58":{"__comp":"17896441","content":"e2c2b05a"},"/en/docs/linting/-250":{"__comp":"17896441","content":"87ccf64d"},"/en/docs/linting/flowlint-comments/-d2a":{"__comp":"17896441","content":"1dec3c22"},"/en/docs/linting/rule-reference/-288":{"__comp":"17896441","content":"188153c4"},"/en/docs/react/-235":{"__comp":"17896441","content":"49f38925"},"/en/docs/react/components/-2cc":{"__comp":"17896441","content":"3fde744a"},"/en/docs/react/events/-0b4":{"__comp":"17896441","content":"2e848c4d"},"/en/docs/react/hoc/-6e8":{"__comp":"17896441","content":"4499f1d5"},"/en/docs/react/multiplatform/-fe6":{"__comp":"17896441","content":"1686a5bc"},"/en/docs/react/refs/-353":{"__comp":"17896441","content":"53bdc07c"},"/en/docs/react/types/-e09":{"__comp":"17896441","content":"af591461"},"/en/docs/strict/-ead":{"__comp":"17896441","content":"4b798296"},"/en/docs/tools/-605":{"__comp":"17896441","content":"96f8b763"},"/en/docs/tools/babel/-226":{"__comp":"17896441","content":"4f679c8d"},"/en/docs/tools/eslint/-d1a":{"__comp":"17896441","content":"2981723c"},"/en/docs/tools/flow-remove-types/-64a":{"__comp":"17896441","content":"754aff6f"},"/en/docs/types/-04d":{"__comp":"17896441","content":"3a0474a4"},"/en/docs/types/aliases/-c04":{"__comp":"17896441","content":"deed17e4"},"/en/docs/types/any/-31c":{"__comp":"17896441","content":"7a0b48af"},"/en/docs/types/arrays/-b21":{"__comp":"17896441","content":"bd3efcef"},"/en/docs/types/casting/-a86":{"__comp":"17896441","content":"708dfd19"},"/en/docs/types/classes/-458":{"__comp":"17896441","content":"ce2beed8"},"/en/docs/types/comments/-ddf":{"__comp":"17896441","content":"e23ef6ec"},"/en/docs/types/conditional/-075":{"__comp":"17896441","content":"4da00481"},"/en/docs/types/empty/-ea1":{"__comp":"17896441","content":"aca2d3c0"},"/en/docs/types/functions/-3ea":{"__comp":"17896441","content":"03f7d77f"},"/en/docs/types/generators/-695":{"__comp":"17896441","content":"ab2e47c1"},"/en/docs/types/generics/-375":{"__comp":"17896441","content":"f3aa7666"},"/en/docs/types/indexed-access/-601":{"__comp":"17896441","content":"c3387ac1"},"/en/docs/types/interfaces/-d50":{"__comp":"17896441","content":"9f241a4b"},"/en/docs/types/intersections/-3bf":{"__comp":"17896441","content":"f7710724"},"/en/docs/types/literals/-8c4":{"__comp":"17896441","content":"05615bb4"},"/en/docs/types/mapped-types/-685":{"__comp":"17896441","content":"43854727"},"/en/docs/types/maybe/-99c":{"__comp":"17896441","content":"6e17e746"},"/en/docs/types/mixed/-a27":{"__comp":"17896441","content":"4a874b56"},"/en/docs/types/modules/-0b1":{"__comp":"17896441","content":"bd2c9af2"},"/en/docs/types/objects/-83b":{"__comp":"17896441","content":"fed34737"},"/en/docs/types/opaque-types/-699":{"__comp":"17896441","content":"1fea74a6"},"/en/docs/types/primitives/-90e":{"__comp":"17896441","content":"45f3947e"},"/en/docs/types/tuples/-e39":{"__comp":"17896441","content":"062e05b4"},"/en/docs/types/type-guards/-613":{"__comp":"17896441","content":"4981a61b"},"/en/docs/types/typeof/-38e":{"__comp":"17896441","content":"3098e178"},"/en/docs/types/unions/-438":{"__comp":"17896441","content":"43b0182c"},"/en/docs/types/utilities/-231":{"__comp":"17896441","content":"0abc5904"},"/en/docs/usage/-6bd":{"__comp":"17896441","content":"6476eba6"},"/-f2c":{"__comp":"c4f5d8e4","__context":{"plugin":"d25022d5"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[532],(()=>{return t=49383,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.2b7a990f.js.LICENSE.txt b/assets/js/main.2b7a990f.js.LICENSE.txt new file mode 100644 index 00000000000..eb75d69107c --- /dev/null +++ b/assets/js/main.2b7a990f.js.LICENSE.txt @@ -0,0 +1,63 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ + +/** + * @license React + * use-sync-external-store-shim.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT <https://opensource.org/licenses/MIT> + * @author Lea Verou <https://lea.verou.me> + * @namespace + * @public + */ + +/** @license React v0.20.2 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v17.0.2 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v17.0.2 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/assets/js/runtime~main.2221b8d0.js b/assets/js/runtime~main.2221b8d0.js new file mode 100644 index 00000000000..eb40310447d --- /dev/null +++ b/assets/js/runtime~main.2221b8d0.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,f,d,c,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=b,r.c=t,r.amdO={},e=[],r.O=(a,f,d,c)=>{if(!f){var b=1/0;for(i=0;i<e.length;i++){f=e[i][0],d=e[i][1],c=e[i][2];for(var t=!0,o=0;o<f.length;o++)(!1&c||b>=c)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,c<b&&(b=c));if(t){e.splice(i--,1);var n=d();void 0!==n&&(a=n)}}return a}c=c||0;for(var i=e.length;i>0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[f,d,c]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};a=a||[null,f({}),f([]),f(f)];for(var t=2&d&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(c,b),c},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+(8592===e?"common":e)+"."+{10:"5cab9749",64:"d7c257b8",168:"4084be54",180:"f35ada22",249:"b447d2e4",287:"79aaf96f",385:"c9dbdd20",486:"d9b07c81",525:"a08afd69",529:"44b442f7",565:"69ec915e",588:"e5ea213f",650:"f276d9bc",665:"9d4b2055",728:"1f188d20",753:"c21fceb8",776:"52166cee",813:"efa2999f",836:"b690b489",848:"6ccac2fb",854:"8e35156d",908:"7a4eb83a",911:"cb5ea3c2",931:"d69b8a0f",957:"de39d01c",972:"de4b56d9",996:"a97ccabb",1e3:"14e9de8a",1049:"9e530d57",1065:"de3b9f15",1086:"14a78e6c",1091:"b8bfd1e4",1105:"80237606",1109:"53b35ea5",1134:"17105716",1147:"9c78ae5a",1151:"03a36ca2",1156:"414b1ab6",1209:"76276011",1217:"6123c62f",1259:"ec012273",1313:"d10cc958",1345:"d7ea927e",1448:"3246558a",1466:"b69bd1b6",1471:"0d410d50",1540:"23466b6d",1661:"2e609aed",1706:"b21a58bf",1848:"6e365ebf",1886:"622d7f2a",1908:"2c382ba8",1930:"0b17c84b",1958:"d7cfea40",1960:"e580ef88",1961:"6af70c85",1984:"9797305a",1992:"689143a6",2040:"39c04ae1",2060:"1ce6877c",2075:"42cb52d9",2108:"c89cbfba",2140:"0307ae92",2160:"b1954ec2",2175:"a467d67a",2240:"a40b3926",2259:"ff9afb23",2378:"08f000fc",2394:"d9de10ba",2490:"26bb2f27",2524:"7afc641b",2554:"0673177f",2565:"75cc8af7",2571:"0debfd3f",2601:"785852cd",2625:"8dd63d43",2638:"edecc05b",2657:"35cf273e",2798:"58a5b297",2814:"5021f04e",2837:"c1fc15db",2860:"ccd1e606",2886:"f51502cb",2892:"fda2dc1b",2911:"c5e65e38",2954:"39c6182a",2974:"5a120feb",2975:"1a577c1a",3031:"07faec4d",3036:"cbfd34be",3103:"d424af1a",3169:"75d3a922",3175:"4623d4bd",3271:"c17eb19a",3292:"37fedcae",3361:"a09822ec",3377:"4e54056b",3389:"44c31390",3397:"d81097d9",3418:"fe6aa13b",3426:"7a8d681d",3430:"3a4d3a20",3470:"1f5577ea",3482:"f5cd412a",3490:"7c9a646b",3525:"b75f8037",3539:"8e41f2f8",3584:"b7d0f7d5",3585:"a0fdd2fe",3590:"380dfa4c",3619:"0c068931",3632:"512d8b35",3682:"78f44c31",3698:"df8b743d",3760:"70ebeccd",3769:"c0a74c56",3808:"9cc0ee5e",3818:"52e10916",3835:"10b298c2",3847:"5182a5d7",3851:"4a9ebda0",3898:"a25efbec",3903:"181d5c6e",3905:"294ba8eb",3919:"4432453c",3939:"7eaae777",3997:"380b744e",4028:"0f7be909",4099:"d293f4c8",4129:"b574e251",4132:"cf0d068b",4170:"1dc21c14",4188:"c58fea82",4244:"296d7732",4314:"ca390dec",4340:"d90bec6c",4352:"37108b95",4367:"f9d15811",4368:"6242d162",4370:"b23daaa9",4386:"e5410b3b",4392:"88be3c03",4397:"c0bddcab",4407:"f24a98c4",4422:"1cb367d3",4469:"b5252e80",4502:"f5fec547",4506:"77a2991a",4508:"81b19c11",4511:"4e5e46a7",4588:"f2f9f239",4702:"38902698",4721:"175dbe5c",4784:"6b9d1e1e",4840:"4be9bbc8",4860:"a333a6da",4896:"a33bc4d6",4902:"57b8a462",4912:"6e0d306b",4946:"53bdd182",4972:"a00ed942",4991:"033580af",5062:"190662bd",5097:"c41b7b2f",5131:"8b42d5f9",5172:"55cc621c",5215:"9ac72533",5221:"d6f374a8",5237:"407b1995",5239:"5d7ca55a",5288:"fdc26891",5316:"f1f4648e",5377:"e1e1a1eb",5414:"65f24c3a",5501:"b615e78d",5562:"cd4ead74",5593:"2e65fb56",5641:"2eef5e08",5691:"cef8c333",5703:"b3646744",5745:"ffd36961",5789:"7ab12558",5849:"5c57243a",5880:"14f5a392",5898:"367d7429",5962:"cf4e9fcb",5975:"ba58926b",6020:"fd5de0c7",6065:"9ee332e5",6081:"624ea89b",6082:"4af8a070",6094:"dd70aa33",6104:"007d544c",6136:"dfc4bfad",6241:"2e9f5bdf",6272:"f9b3cdc6",6290:"068917a8",6316:"3a9fab01",6329:"369e2ba8",6393:"7cb3deb5",6423:"a0154131",6424:"3a507a7e",6432:"8f67f499",6449:"3e8636c3",6470:"33bec0d3",6479:"5de341cd",6489:"897c8385",6522:"00dd2490",6567:"031c15cf",6586:"89a16f93",6587:"1466021b",6618:"901a3e8a",6641:"0726fefc",6686:"555ef1a4",6717:"86d17675",6778:"a7f9f534",6780:"e538d469",6798:"a0a87077",6894:"61d518cf",6923:"4bd4b036",6943:"36e5dcf5",6945:"7839b727",6956:"75567b7a",6990:"60c608ae",7043:"6c28e0ba",7085:"2da88da6",7131:"af65a3d6",7210:"dccd8a9d",7216:"82683887",7287:"94bb8d3f",7322:"62a440b9",7324:"55dbe265",7357:"60f17144",7454:"c4cbd7ac",7466:"0592b0a0",7473:"75d32f9d",7493:"35ce4f7a",7520:"851d616b",7521:"710cbe18",7550:"c71fbb00",7562:"8aeb83c2",7637:"a10259f0",7667:"b9d7153f",7678:"09b0f00f",7724:"ccc7d3de",7758:"dda2fbc1",7778:"70985237",7835:"fed695f5",7966:"b4ef84f5",7997:"402d61b8",8002:"799b71bc",8017:"5a10ad1f",8027:"0a3be280",8063:"96e4bd2b",8070:"b2932ef2",8071:"e0b453f4",8073:"856ade5f",8084:"1629b62c",8118:"3febc31b",8180:"b2381f36",8396:"b75cac9d",8401:"ba60f1a3",8424:"b47120a1",8480:"07b41f57",8506:"dc7fd971",8528:"45e71d7f",8592:"1e30ee28",8641:"3df11c4b",8670:"522cc23d",8712:"1d41ff09",8713:"c204a0f9",8715:"172094c4",8719:"644b750e",8748:"af6aff9f",8757:"e063498f",8819:"8f01a10a",8880:"0e52c112",8894:"52aa9cfa",8899:"b1fe8204",8906:"90c5de7a",8946:"a7036c9d",8985:"e67ce2b4",9172:"7f698d9b",9206:"16398572",9225:"872a1216",9277:"9908b298",9307:"228f79a3",9337:"6c20da2f",9343:"bdc8d465",9390:"f01d7d65",9398:"a4b8a2d7",9400:"1d5fbae2",9466:"2e6a88ec",9487:"c9fbf014",9506:"368ed619",9537:"02320fdb",9541:"4560e197",9607:"622810b9",9647:"b1861c7a",9684:"19d777f5",9701:"b0601203",9837:"a4f6fb00",9850:"0f22bc6f",9907:"ddc37b5f",9963:"4a87e5a1",9993:"dfbc0bca"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),d={},c="new-website:",r.l=(e,a,f,b)=>{if(d[e])d[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var l=n[i];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==c+f){t=l;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",c+f),t.src=e),d[e]=[a];var u=(a,f)=>{t.onerror=t.onload=null,clearTimeout(s);var c=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((e=>e(f))),a)return a(f)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={common:"8592"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,f)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)f.push(d[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var c=new Promise(((f,c)=>d=e[a]=[f,c]));f.push(d[2]=c);var b=r.p+r.u(a),t=new Error;r.l(b,(f=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var c=f&&("load"===f.type?"missing":f.type),b=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,d[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var d,c,b=f[0],t=f[1],o=f[2],n=0;if(b.some((a=>0!==e[a]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(a&&a(f);n<b.length;n++)c=b[n],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0;return r.O(i)},f=self.webpackChunknew_website=self.webpackChunknew_website||[];f.forEach(a.bind(null,0)),f.push=a.bind(null,f.push.bind(f))})()})(); \ No newline at end of file diff --git a/blog/2015/02/18/Import-Types/index.html b/blog/2015/02/18/Import-Types/index.html new file mode 100644 index 00000000000..cf6201ce2b0 --- /dev/null +++ b/blog/2015/02/18/Import-Types/index.html @@ -0,0 +1,26 @@ +<!doctype html> +<html lang="en" dir="ltr" class="blog-wrapper blog-post-page plugin-blog plugin-id-default"> +<head> +<meta charset="UTF-8"> +<meta name="generator" content="Docusaurus v2.4.1"> +<title data-rh="true">Announcing Import Type | Flow + + + + + + + + + + + + + + +
+

Announcing Import Type

As of Flow 0.3.0, it's now possible to import types from another module. So, for example, if you're only importing a class for purposes of referencing it in a type annotation, you can now use the new import type syntax to do this.

Motivation

Has this ever happened to you:

// @flow

// Post-transformation lint error: Unused variable 'URI'
import URI from "URI";

// But if you delete the require you get a Flow error:
// identifier URI - Unknown global name
module.exports = function(x: URI): URI {
return x;
}

Now you have an out! To solve this problem (and with an eye toward a near future with ES6 module syntax), we've added the new import type syntax. With import type, you can convey what you really mean here — that you want to import the type of the class and not really the class itself.

Enter Import Type

So instead of the above code, you can now write this:

// @flow

import type URI from 'URI';
module.exports = function(x: URI): URI {
return x;
};

If you have a module that exports multiple classes (like, say, a Crayon and a Marker class), you can import the type for each of them together or separately like this:

// @flow

import type {Crayon, Marker} from 'WritingUtensils';
module.exports = function junkDrawer(x: Crayon, y: Marker): void {}

Transformations

Like type annotations and other Flow features, import type need to be transformed away before the code can be run. The transforms will be available in react-tools 0.13.0 when it is published soon, but for now they're available in 0.13.0-beta.2, which you can install with

npm install react-tools@0.13.0-beta.2

Anticipatory Q&A

Wait, but what happens at runtime after I've added an import type declaration?

Nothing! All import type declarations get stripped away just like other flow syntax.

Can I use import type to pull in type aliases from another module, too?

Not quite yet...but soon! There are a few other moving parts that we need to build first, but we're working on it.

EDIT: Yes! As of Flow 0.10 you can use the export type MyType = ... ; syntax to compliment the import type syntax. Here's a trivial example:

// @flow

// MyTypes.js
export type UserID = number;
export type User = {
id: UserID,
firstName: string,
lastName: string
};
// @flow

// User.js
import type {UserID, User} from "MyTypes";

function getUserID(user: User): UserID {
return user.id;
}

Note that we only support the explicit named-export statements for now (i.e. export type UserID = number;). In a future version we can add support for latent named-export statements (i.e. type UserID = number; export {UserID};) and default type exports (i.e. export default type MyType = ... ;)...but for now these forms aren't yet supported for type exports.

+ + + + \ No newline at end of file diff --git a/blog/2015/02/18/Typecasts/index.html b/blog/2015/02/18/Typecasts/index.html new file mode 100644 index 00000000000..8f2ae99d3e2 --- /dev/null +++ b/blog/2015/02/18/Typecasts/index.html @@ -0,0 +1,26 @@ + + + + + +Announcing Typecasts | Flow + + + + + + + + + + + + + + +
+

Announcing Typecasts

As of version 0.3.0, Flow supports typecast expression.

A typecast expression is a simple way to type-annotate any JavaScript expression. Here are some examples of typecasts:

(1 + 1 : number);
var a = { name: (null: ?string) };
([1, 'a', true]: Array<mixed>).map(fn);

For any JavaScript expression <expr> and any Flow type <type>, you can write

(<expr> : <type>)

Note: the parentheses are necessary.

How Typecasts Work

To evaluate a typecast expression, Flow will first check that <expr> is a <type>.

(1+1: number); // this is fine
(1+1: string); // but this is is an error

Second, Flow will infer that the typecast expression (<expr>: <type>) has the type <type>.

[(0: ?number)]; // Flow will infer the type Array<?number>
[0]; // Without the typecast, Flow infers the type Array<number>

Safety

Typecasts obey the same rules as other type annotations, so they provide the same safety guarantees. This means they are safe unless you explicitly use the any type to defeat Flow's typechecking. Here are examples of upcasting (which is allowed), downcasting (which is forbidden), and using any.

class Base {}
class Child extends Base {}
var child: Child = new Child();

// Upcast from Child to Base, a more general type: OK
var base: Base = new Child();

// Upcast from Child to Base, a more general type: OK
(child: Base);

// Downcast from Base to Child: unsafe, ERROR
(base: Child);

// Upcast base to any then downcast any to Child.
// Unsafe downcasting from any is allowed: OK
((base: any): Child);

More examples

Typecasts are particularly useful to check assumptions and help Flow infer the types you intend. Here are some examples:

(x: number) // Make Flow check that x is a number
(0: ?number) // Tells Flow that this expression is actually nullable.
(null: ?number) // Tells Flow that this expression is a nullable number.

Transformations

Like type annotations and other Flow features, typecasts need to be transformed away before the code can be run. The transforms will be available in react-tools 0.13.0 when it is published soon, but for now they're available in 0.13.0-beta.2, which you can install with

npm install react-tools@0.13.0-beta.2
+ + + + \ No newline at end of file diff --git a/blog/2015/02/20/Flow-Comments/index.html b/blog/2015/02/20/Flow-Comments/index.html new file mode 100644 index 00000000000..d68b4442820 --- /dev/null +++ b/blog/2015/02/20/Flow-Comments/index.html @@ -0,0 +1,26 @@ + + + + + +Announcing Flow Comments | Flow + + + + + + + + + + + + + + +
+

Announcing Flow Comments

As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can't fit a Flow-stripping transformation into their setup. This was one of our most requested features and hopefully it will enable even more people to use Flow!

This feature introduces 3 special comments: /*:, /*::, and /*flow-include. Flow will read the code inside these special comments and treat the code as if the special comment tokens didn't exist. These special comments are valid JavaScript block comments, so your JavaScript engine will ignore the code inside the comments.

The Flow Comment Syntax

There are 3 special comments that Flow currently supports. You may recognize this syntax from Jarno Rantanen's excellent project, flotate.

1. /*:

/*: <your code> */ is interpreted by Flow as : <your code>

function foo(x/*: number*/)/* : string */ { ... }

is interpreted by Flow as

function foo(x: number): string { ... }

but appears to the JavaScript engine (ignoring comments) as

function foo(x) { ... }

2. /*::

/*:: <your code> */ is interpreted by Flow as <your code>

/*:: type foo = number; */

is interpreted by Flow as

type foo = number;

but appears to the runtime (ignoring comments) as


3. /*flow-include

/*flow-include <your code> */ is interpreted by Flow as <your code>. It behaves the same as /*::

/*flow-include type foo = number; */

is interpreted by Flow as

type foo = number;

but appears to the runtime (ignoring comments) as


Note: whitespace is ignored after the /* but before the :, ::, or flow-include. So you can write things like

/* : number */
/* :: type foo = number */
/* flow-include type foo = number */

Future Work

We plan to update our Flow transformation to wrap Flow syntax with these special comments, rather than stripping it away completely. This will help people write Flow code but publish code that works with or without Flow.

Thanks

Special thanks to Jarno Rantanen for building flotate and supporting us merging his syntax upstream into Flow.

+ + + + \ No newline at end of file diff --git a/blog/2015/03/12/Bounded-Polymorphism/index.html b/blog/2015/03/12/Bounded-Polymorphism/index.html new file mode 100644 index 00000000000..6f8208bf094 --- /dev/null +++ b/blog/2015/03/12/Bounded-Polymorphism/index.html @@ -0,0 +1,26 @@ + + + + + +Announcing Bounded Polymorphism | Flow + + + + + + + + + + + + + + +
+

Announcing Bounded Polymorphism

As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow's bounded polymorphism syntax looks like

class BagOfBones<T: Bone> { ... }
function eat<T: Food>(meal: T): Indigestion<T> { ... }

The problem

Consider the following code that defines a polymorphic function in Flow:

function fooBad<T>(obj: T): T {
console.log(Math.abs(obj.x));
return obj;
}

This code does not (and should not!) type check. Not all values obj: T have a property x, let alone a property x that is a number, given the additional requirement imposed by Math.abs().

But what if you wanted T to not range over all types, but instead over only the types of objects with an x property that has the type number? Intuitively, given that condition, the body should type check. Unfortunately, the only way you could enforce this condition prior to Flow 0.5.0 was by giving up on polymorphism entirely! For example you could write:

// Old lame workaround
function fooStillBad(obj: { x: number }): {x: number } {
console.log(Math.abs(obj.x));
return obj;
}

But while this change would make the body type check, it would cause Flow to lose information across call sites. For example:

// The return type of fooStillBad() is {x: number}
// so Flow thinks result has the type {x: number}
var result = fooStillBad({x: 42, y: "oops"});

// This will be an error since result's type
// doesn't have a property "y"
var test: {x: number; y: string} = result;

The solution

As of version 0.5.0, such typing problems can be solved elegantly using bounded polymorphism. Type parameters such as T can specify bounds that constrain the types that the type parameters range over. For example, we can write:

function fooGood<T: { x: number }>(obj: T): T {
console.log(Math.abs(obj.x));
return obj;
}

Now the body type checks under the assumption that T is a subtype of { x: number }. Furthermore, no information is lost across call sites. Using the example from above:

// With bounded polymorphism, Flow knows the return
// type is {x: number; y: string}
var result = fooGood({x: 42, y: "yay"});

// This works!
var test: {x: number; y: string} = result;

Of course, polymorphic classes may also specify bounds. For example, the following code type checks:

class Store<T: { x: number }> {
obj: T;
constructor(obj: T) { this.obj = obj; }
foo() { console.log(Math.abs(this.obj.x)); }
}

Instantiations of the class are appropriately constrained. If you write

var store = new Store({x: 42, y: "hi"});

Then store.obj has type {x: number; y: string}.

Any type may be used as a type parameter's bound. The type does not need to be an object type (as in the examples above). It may even be another type parameter that is in scope. For example, consider adding the following method to the above Store class:

class Store<T: { x: number }> {
...
bar<U: T>(obj: U): U {
this.obj = obj;
console.log(Math.abs(obj.x));
return obj;
}
}

Since U is a subtype of T, the method body type checks (as you may expect, U must also satisfy T's bound, by transitivity of subtyping). Now the following code type checks:

  // store is a Store<{x: number; y: string}>
var store = new Store({x: 42, y: "yay"});

var result = store.bar({x: 0, y: "hello", z: "world"});

// This works!
var test: {x: number; y: string; z: string } = result;

Also, in a polymorphic definition with multiple type parameters, any type parameter may appear in the bound of any following type parameter. This is useful for type checking examples like the following:

function copyArray<T, S: T>(from: Array<S>, to: Array<T>) {
from.forEach(elem => to.push(elem));
}

Why we built this

The addition of bounded polymorphism significantly increases the expressiveness of Flow's type system, by enabling signatures and definitions to specify relationships between their type parameters, without having to sacrifice the benefits of generics. We expect that the increased expressiveness will be particularly useful to library writers, and will also allow us to write better declarations for framework APIs such as those provided by React.

Transformations

Like type annotations and other Flow features, polymorphic function and class definitions need to be transformed before the code can be run. The transforms are available in react-tools 0.13.0, which was recently released

+ + + + \ No newline at end of file diff --git a/blog/2015/07/03/Disjoint-Unions/index.html b/blog/2015/07/03/Disjoint-Unions/index.html new file mode 100644 index 00000000000..3d746a1132b --- /dev/null +++ b/blog/2015/07/03/Disjoint-Unions/index.html @@ -0,0 +1,41 @@ + + + + + +Announcing Disjoint Unions | Flow + + + + + + + + + + + + + + +
+

Announcing Disjoint Unions

Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:

  • Specifying such data by a set of disjoint cases, distinguished by “tags”, where each tag is associated with a different “record” of properties. (These descriptions are called “disjoint union” or “variant” types.)
  • Doing case analysis on such data, by checking tags and then directly accessing the associated record of properties. (The common way to do such case analysis is by pattern matching.)

Examples of programs that analyze or transform such data range from compilers working with abstract syntax trees, to operations that may return exceptional values, with much more in between!

As of Flow 0.13.1 it is now possible to program in this style in JavaScript in a type-safe manner. You can define a disjoint union of object types and do case analysis on objects of that type by switching on the value of some common property (called a "sentinel") in those object types.

Flow's syntax for disjoint unions looks like:

type BinaryTree =
{ kind: "leaf", value: number } |
{ kind: "branch", left: BinaryTree, right: BinaryTree }

function sumLeaves(tree: BinaryTree): number {
if (tree.kind === "leaf") {
return tree.value;
} else {
return sumLeaves(tree.left) + sumLeaves(tree.right);
}
}

The problem

Consider the following function that returns different objects depending on the data passed into it:

type Result = { status: string, errorCode?: number }

function getResult(op): Result {
var statusCode = op();
if (statusCode === 0) {
return { status: 'done' };
} else {
return { status: 'error', errorCode: statusCode };
}
}

The result contains a status property that is either 'done' or 'error', +and an optional errorCode property that holds a numeric status code when the +status is 'error'.

One may now try to write another function that gets the error code from a result:

function getErrorCode(result: Result): number {
switch (result.status) {
case 'error':
return result.errorCode;
default:
return 0;
}
}

Unfortunately, this code does not typecheck. The Result type does not precisely +capture the relationship between the status property and the errorCode property. +Namely it doesn't capture that when the status property is 'error', the errorCode +property will be present and defined on the object. As a result, Flow thinks that +result.errorCode in the above function may return undefined instead of number.

Prior to version 0.13.1 there was no way to express this relationship, which meant +that it was not possible to check the type safety of this simple, familiar idiom!

The solution

As of version 0.13.1 it is possible to write a more precise type for Result +that better captures the intent and helps Flow narrow down the possible shapes +of an object based on the outcome of a dynamic === check. Now, we can write:

type Result = Done | Error
type Done = { status: 'done' }
type Error = { status: 'error', errorCode: number }

In other words, we can explicitly list out the possible shapes of results. These +cases are distinguished by the value of the status property. Note that here +we use the string literal types 'done' and 'error'. These match exactly the strings +'done' and 'error', which means that === checks on those values are enough for +Flow to narrow down the corresponding type cases. With this additional reasoning, the +function getErrorCode now typechecks, without needing any changes to the code!

In addition to string literals, Flow also supports number literals as singleton types +so they can also be used in disjoint unions and case analyses.

Why we built this

Disjoint unions are at the heart of several good programming practices pervasive in functional programming languages. Supporting them in Flow means that JavaScript can use these practices in a type-safe manner. For example, disjoint unions can be used to write type-safe Flux dispatchers. They are also heavily used in a recently released reference implementation of GraphQL.

+ + + + \ No newline at end of file diff --git a/blog/2015/07/29/Version-0.14.0/index.html b/blog/2015/07/29/Version-0.14.0/index.html new file mode 100644 index 00000000000..67e58b08e78 --- /dev/null +++ b/blog/2015/07/29/Version-0.14.0/index.html @@ -0,0 +1,26 @@ + + + + + +Version-0.14.0 | Flow + + + + + + + + + + + + + + +
+

Version-0.14.0

It has come to our attention that not everyone obsessively checks GitHub for Flow releases. This came as a surprise, but we would like to support these users too. Therefore, we will start announcing each Flow release on the blog, starting with this release.

So here is Flow v0.14.0! Check out the Changelog for the canonical list of what has changed.

+ + + + \ No newline at end of file diff --git a/blog/2015/09/10/Version-0.15.0/index.html b/blog/2015/09/10/Version-0.15.0/index.html new file mode 100644 index 00000000000..d06634402aa --- /dev/null +++ b/blog/2015/09/10/Version-0.15.0/index.html @@ -0,0 +1,26 @@ + + + + + +Version-0.15.0 | Flow + + + + + + + + + + + + + + +
+

Version-0.15.0

Today we released Flow v0.15.0! A lot has changed in the last month and we're excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!

Check out the Changelog to see what's new.

+ + + + \ No newline at end of file diff --git a/blog/2015/09/22/Version-0.16.0/index.html b/blog/2015/09/22/Version-0.16.0/index.html new file mode 100644 index 00000000000..50470f55501 --- /dev/null +++ b/blog/2015/09/22/Version-0.16.0/index.html @@ -0,0 +1,26 @@ + + + + + +Version-0.16.0 | Flow + + + + + + + + + + + + + + +
+

Version-0.16.0

On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again @samwgoldman)!

As always, the Changelog is best at summing up the big changes.

+ + + + \ No newline at end of file diff --git a/blog/2015/10/07/Version-0.17.0/index.html b/blog/2015/10/07/Version-0.17.0/index.html new file mode 100644 index 00000000000..f586fdddafb --- /dev/null +++ b/blog/2015/10/07/Version-0.17.0/index.html @@ -0,0 +1,26 @@ + + + + + +Version-0.17.0 | Flow + + + + + + + + + + + + + + +
+

Version-0.17.0

Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:

![New error format]({{ site.baseurl }}/static/new_error_format_v0_17_0.png)

This should hopefully help our command line users understand many errors without having to refer to their source code. We'll keep iterating on this format, so tell us what you like and what you don't like! Thanks to @frantic for building this feature!

There are a whole bunch of other features and fixes in this release! Head on over to our Release for the full list!

+ + + + \ No newline at end of file diff --git a/blog/2015/11/09/Generators/index.html b/blog/2015/11/09/Generators/index.html new file mode 100644 index 00000000000..080f589574e --- /dev/null +++ b/blog/2015/11/09/Generators/index.html @@ -0,0 +1,26 @@ + + + + + +Typing Generators with Flow | Flow + + + + + + + + + + + + + + +
+

Typing Generators with Flow

Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an upcoming feature already supported by Flow.

So much wonderful material has already been produced describing generators. I am going to focus on the interaction of static typing with generators. Please refer to the following materials for information about generators:

  • Jafar Husain gave an incredibly lucid and well-illustrated talk that covers generators. I have linked to the point where he gets into generators, but I highly recommend the entire talk.
  • Exploring ES6, a comprehensive book by Axel Rauschmayer, who has generously made the contents available for free online, has a chapter on generators.
  • The venerable MDN has a useful page describing the Iterator interface and generators.

In Flow, the Generator interface has three type parameters: Yield, Return, and Next. Yield is the type of values which are yielded from the generator function. Return is the type of the value which is returned from the generator function. Next is the type of values which are passed into the generator via the next method on the Generator itself. For example, a generator value of type Generator<string,number,boolean> will yield strings, return a number, and will receive booleans from its caller.

For any type T, a Generator<T,void,void> is both an Iterable<T> and an Iterator<T>.

The unique nature of generators allows us to represent infinite sequences naturally. Consider the infinite sequence of natural numbers:

function *nats() {
let i = 0;
while (true) {
yield i++;
}
}

Because generators are also iterators, we can manually iterate the generator:

const gen = nats();
console.log(gen.next()); // { done: false, value: 0 }
console.log(gen.next()); // { done: false, value: 1 }
console.log(gen.next()); // { done: false, value: 2 }

When done is false, value will have the generator's Yield type. When done is true, value will have the generator's Return type or void if the consumer iterates past the completion value.

function *test() {
yield 1;
return "complete";
}
const gen = test();
console.log(gen.next()); // { done: false, value: 1 }
console.log(gen.next()); // { done: true, value: "complete" }
console.log(gen.next()); // { done: true, value: undefined }

Because of this behavior, manually iterating poses typing difficulties. Let's try to take the first 10 values from the nats generator through manual iteration:

const gen = nats();
const take10: number[] = [];
for (let i = 0; i < 10; i++) {
const { done, value } = gen.next();
if (done) {
break;
} else {
take10.push(value); // error!
}
}
test.js:13
13: const { done, value } = gen.next();
^^^^^^^^^^ call of method `next`
17: take10.push(value); // error!
^^^^^ undefined. This type is incompatible with
11: const take10: number[] = [];
^^^^^^ number

Flow is complaining that value might be undefined. This is because the type of value is Yield | Return | void, which simplifies in the instance of nats to number | void. We can introduce a dynamic type test to convince Flow of the invariant that value will always be number when done is false.

const gen = nats();
const take10: number[] = [];
for (let i = 0; i < 10; i++) {
const { done, value } = gen.next();
if (done) {
break;
} else {
if (typeof value === "undefined") {
throw new Error("`value` must be a number.");
}
take10.push(value); // no error
}
}

There is an open issue which would make the dynamic type test above unnecessary, by using the done value as a sentinel to refine a tagged union. That is, when done is true, Flow would know that value is always of type Yield and otherwise of type Return | void.

Even without the dynamic type test, this code is quite verbose and it's hard to see the intent. Because generators are also iterable, we can also use for...of loops:

const take10: number[] = [];
let i = 0;
for (let nat of nats()) {
if (i === 10) break;
take10.push(nat);
i++;
}

That's much better. The for...of looping construct ignores completion values, so Flow understands that nat will always be number. Let's generalize this pattern further using generator functions:

function *take<T>(n: number, xs: Iterable<T>): Iterable<T> {
if (n <= 0) return;
let i = 0;
for (let x of xs) {
yield x;
if (++i === n) return;
}
}

for (let n of take(10, nats())) {
console.log(n); // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
}

Note that we explicitly annotated the parameters and return type of the take generator. This is necessary to ensure Flow understands the fully generic type. This is because Flow does not currently infer a fully generic type, but instead accumulates lower bounds, resulting in a union type.

function identity(x) { return x }
var a: string = identity(""); // error
var b: number = identity(0); // error

The above code produces errors because Flow adds string and number as lower bounds to the type variable describing the type of the value bound by x. That is, Flow believes the type of identity is (x: string | number) => string | number because those are the types which actually passed through the function.

Another important feature of generators is the ability to pass values into the generator from the consumer. Let's consider a generator scan, which reduces values passed into the generator using a provided function. Our scan is similar to Array.prototype.reduce, but it returns each intermediate value and the values are provided imperatively via next.

As a first pass, we might write this:

function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
let acc = init;
while (true) {
const next = yield acc;
acc = f(acc, next);
}
}

We can use this definition to implement an imperative sum procedure:

let sum = scan(0, (a,b) => a + b);
console.log(sum.next()); // { done: false, value: 0 }
console.log(sum.next(1)); // { done: false, value: 1 }
console.log(sum.next(2)); // { done: false, value: 3 }
console.log(sum.next(3)); // { done: false, value: 6 }

However, when we try to check the above definition of scan, Flow complains:

test.js:7
7: acc = f(acc, next);
^^^^^^^^^^^^ function call
7: acc = f(acc, next);
^^^^ undefined. This type is incompatible with
3: function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
^ some incompatible instantiation of T

Flow is complaining that our value, next, may be void instead of the expected T, which is number in the sum example. This behavior is necessary to ensure type safety. In order to prime the generator, our consumer must first call next without an argument. To accommodate this, Flow understands the argument to next to be optional. This means Flow will allow the following code:

let sum = scan(0, (a,b) => a + b);
console.log(sum.next()); // first call primes the generator
console.log(sum.next()); // we should pass a value, but don't need to

In general, Flow doesn't know which invocation is "first." While it should be an error to pass a value to the first next, and an error to not pass a value to subsequent nexts, Flow compromises and forces your generator to deal with a potentially void value. In short, given a generator of type Generator<Y,R,N> and a value x of type Y, the type of the expression yield x is N | void.

We can update our definition to use a dynamic type test that enforces the non-void invariant at runtime:

function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
let acc = init;
while (true) {
const next = yield acc;
if (typeof next === "undefined") {
throw new Error("Caller must provide an argument to `next`.");
}
acc = f(acc, next);
}
}

There is one more important caveat when dealing with typed generators. Every value yielded from the generator must be described by a single type. Similarly, every value passed to the generator via next must be described by a single type.

Consider the following generator:

function *foo() {
yield 0;
yield "";
}

const gen = foo();
const a: number = gen.next().value; // error
const b: string = gen.next().value; // error

This is perfectly legal JavaScript and the values a and b do have the correct types at runtime. However, Flow rejects this program. Our generator's Yield type parameter has a concrete type of number | string. The value property of the iterator result object has the type number | string | void.

We can observe similar behavior for values passed into the generator:

function *bar() {
var a = yield;
var b = yield;
return {a,b};
}

const gen = bar();
gen.next(); // prime the generator
gen.next(0);
const ret: { a: number, b: string } = gen.next("").value; // error

The value ret has the annotated type at runtime, but Flow also rejects this program. Our generator's Next type parameter has a concrete type of number | string. The value property of the iterator result object thus has the type void | { a: void | number | string, b: void | number | string }.

While it may be possible to use dynamic type tests to resolve these issues, another practical option is to use any to take on the type safety responsibility yourself.

function *bar(): Generator {
var a = yield;
var b = yield;
return {a,b};
}

const gen = bar();
gen.next(); // prime the generator
gen.next(0);
const ret: void | { a: number, b: string } = gen.next("").value; // OK

(Note that the annotation Generator is equivalent to Generator<any,any,any>.)

Phew! I hope that this will help you use generators in your own code. I also hope this gave you a little insight into the difficulties of applying static analysis to a highly dynamic language such as JavaScript.

To summarize, here are some of the lessons we've learned for using generators in statically typed JS:

  • Use generators to implement custom iterables.
  • Use dynamic type tests to unpack the optional return type of yield expressions.
  • Avoid generators that yield or receive values of multiple types, or use any.
+ + + + \ No newline at end of file diff --git a/blog/2015/12/01/Version-0.19.0/index.html b/blog/2015/12/01/Version-0.19.0/index.html new file mode 100644 index 00000000000..a2a5137f358 --- /dev/null +++ b/blog/2015/12/01/Version-0.19.0/index.html @@ -0,0 +1,48 @@ + + + + + +Version-0.19.0 | Flow + + + + + + + + + + + + + + +
+

Version-0.19.0

Flow v0.19.0 was deployed today! It has a ton of changes, which the +Changelog +summarizes. The Changelog can be a little concise, though, so here are some +longer explanations for some of the changes. Hope this helps!

@noflow

Flow is opt-in by default (you add @flow to a file). However we noticed that +sometimes people would add Flow annotations to files that were missing @flow. +Often, these people didn't notice that the file was being ignored by Flow. So +we decided to stop allowing Flow syntax in non-Flow files. This is easily fixed +by adding either @flow or @noflow to your file. The former will make the +file a Flow file. The latter will tell Flow to completely ignore the file.

Declaration files

Files that end with .flow are now treated specially. They are the preferred +provider of modules. That is if both foo.js and foo.js.flow exist, then +when you write import Foo from './foo', Flow will use the type exported from +foo.js.flow rather than foo.js.

We imagine two main ways people will use .flow files.

  1. As interface files. Maybe you have some library coolLibrary.js that is +really hard to type with inline Flow types. You could put +coolLibrary.js.flow next to it and declare the types that coolLibrary.js +exports.

    // coolLibrary.js.flow
    declare export var coolVar: number;
    declare export function coolFunction(): void;
    declare export class coolClass {}
  2. As the original source. Maybe you want to ship the minified, transformed +version of awesomeLibrary.js, but people who use awesomeLibrary.js also +use Flow. Well you could do something like

    cp awesomeLibraryOriginalCode.js awesomeLibrary.js.flow
    babel awesomeLibraryOriginalCode --out-file awesomeLibrary.js

Order of precedence for lib files

Now your local lib files will override the builtin lib files. Is one of the +builtin flow libs wrong? Send a pull request! But then while you're waiting for +the next release, you can use your own definition! The order of precedence is +as follows:

  1. Any paths supplied on the command line via --lib
  2. The files found in the paths specified in the .flowconfig [libs] (in +listing order)
  3. The Flow core library files

For example, if I want to override the builtin definition of Array and instead +use my own version, I could update my .flowconfig to contain

// .flowconfig
[libs]
myArray.js
// myArray.js
declare class Array<T> {
// Put whatever you like in here!
}

Deferred initialization

Previously the following code was an error, because the initialization of +myString happens later. Now Flow is fine with it.

function foo(someFlag: boolean): string {
var myString:string;
if (someFlag) {
myString = "yup";
} else {
myString = "nope";
}
return myString;
}
+ + + + \ No newline at end of file diff --git a/blog/2016/02/02/Version-0.21.0/index.html b/blog/2016/02/02/Version-0.21.0/index.html new file mode 100644 index 00000000000..7226c08f12e --- /dev/null +++ b/blog/2016/02/02/Version-0.21.0/index.html @@ -0,0 +1,46 @@ + + + + + +Version 0.21.0 | Flow + + + + + + + + + + + + + + +
+

Version 0.21.0

Yesterday we deployed Flow v0.21.0! As always, we've listed out the most +interesting changes in the +Changelog. +However, since I'm on a plane and can't sleep, I thought it might be fun to +dive into a couple of the changes! Hope this blog post turns out interesting +and legible!

JSX Intrinsics

If you're writing JSX, it's probably a mix of your own React Components and +some intrinsics. For example, you might write

render() {
return <div><FluffyBunny name="Fifi" /></div>;
}

In this example, FluffyBunny is a React Component you wrote and div is a +JSX intrinsic. Lower-cased JSX elements are assumed to be intrinsics by React +and by Flow. Up until Flow v0.21.0, Flow ignored intrinsics and gave them the +type any. This meant Flow let you set any property on JSX intrinsics. Flow +v0.21.0 will, by default, do the same thing as v0.20.0, However now you can +also configure Flow to properly type your JSX intrinsics!

Example of how to use JSX intrinsics

.flowconfig

[libs]
myLib.js

myLib.js

// JSXHelper is a type alias to make this example more concise.
// There's nothing special or magic here.
// JSXHelper<{name: string}> is a React component
// with the single string property "name", which has a default
type JSXHelper<T> = Class<ReactComponent<T,T,mixed>>;

// $JSXIntrinsics is special and magic.
// This declares the types for `div` and `span`
type $JSXIntrinsics = {
div: JSXHelper<{id: string}>,
span: JSXHelper<{id: string, class: string}>,
};

myCode.js

<div id="asdf" />; // No error
<div id={42} />; // Error: `id` prop is a string, not a number!

What is going on here?

The new bit of magic is this $JSXIntrinsics type alias. When Flow sees +<foo /> it will look to see if $JSXIntrinsics exists and if so will grab +the type of $JSXIntrinsics['foo']. It will use this type to figure out which +properties are available and need to be set.

We haven't hardcoded the intrinsics into Flow since the available intrinsics +will depend on your environment. For example, React native would have different +intrinsics than React for the web would.

Smarter string refinements

One of the main ways that we make Flow smarter is by teaching it to recognize +more ways that JavaScript programmers refine types. Here's an example of a +common way to refine nullable values:

class Person {
name: ?string;
...
getName(): string {
// Before the if, this.name could be null, undefined, or a string
if (this.name != null) {
// But now the programmer has refined this.name to definitely be a string
return this.name;
}
// And now we know that this.name is null or undefined.
return 'You know who';
}
}

New string refinements

In v0.21.0, one of the refinements we added is the ability to refine types by +comparing them to strings.

This is useful for refining unions of string literals into string literals

function test(x: 'foo' | 'bar'): 'foo' {
if (x === 'foo') {
// Now Flow understands that x has the type 'foo'
return x;
} else {
return 'foo';
}
}

And can also narrow the value of strings:

function test(x: string): 'foo' {
if (x === 'foo') {
// Now Flow knows x has the type 'foo'
return x;
} else {
return 'foo';
}
}

This is one of the many refinements that Flow currently can recognize and +follow, and we'll keep adding more! Stay tuned!

+ + + + \ No newline at end of file diff --git a/blog/2016/07/01/New-Unions-Intersections/index.html b/blog/2016/07/01/New-Unions-Intersections/index.html new file mode 100644 index 00000000000..882deb33963 --- /dev/null +++ b/blog/2016/07/01/New-Unions-Intersections/index.html @@ -0,0 +1,64 @@ + + + + + +New Implementation of Unions and Intersections | Flow + + + + + + + + + + + + + + +
+

New Implementation of Unions and Intersections

Summary

Before Flow 0.28, the implementation of union/intersection types had serious +bugs and was the root cause of +a lot of weird behaviors you +may have run into with Flow in the past. These bugs have now been addressed in +a diff landing in 0.28.

As you might expect after a major rewrite of a tricky part of the type system +implementation, there will be a short period of adjustment: you may run into +kinks that we will try to iron out promptly, and you may run into some +unfamiliar error messages.

New Error Messages

<error location> Could not decide which case to select
<location of union/intersection type>

Case 1 may work:
<location of 1st case of union/intersection type>

But if it doesn't, case 2 looks promising too:
<location of 2nd case of union/intersection type>

Please provide additional annotation(s) to determine whether case 1 works
(or consider merging it with case 2):
<location to annotate>
<location to annotate>
...

What this means is that at <error location>, Flow needs to make a choice: one +of the members of the union/intersection type at +<location of union/intersection type> must be applied, but Flow can't choose +safely based on available information. In particular, it cannot decide between +case 1 and 2, so Flow lists a bunch of annotations that can help it +disambiguate the two cases.

Actions Needed

You can fix the errors in two ways:

  • Actually go and annotate the listed locations. This should be by far the most +common fix.
  • Discover that there is real, unintentional ambiguity between case 1 and 2, +and rewrite the two cases in the union type to remove the ambiguity. When +this happens, typically it will fix a large number of errors.

There are two more possibilities, however:

  • There's no real ambiguity and Flow is being too conservative / dumb. In this +case, go ahead and do the annotations anyway and file an issue on GitHub. We +plan to do a lot of short-term follow-up work to disambiguate more cases +automatically, so over time you should see less of (3).
  • You have no idea what's going on. The cases being pointed to don't make sense. +They don't correspond to what you have at <error location>. Hopefully you +won't run into (4) too often, but if you do please file an issue, since +this means there are still latent bugs in the implementation.

If you file an issue on GitHub, please include code to reproduce the issue. You +can use Try Flow to share your repro case easily.

If you're curious about the whys and hows of these new error messages, here's +an excerpt from the commit message of the "fate of the union" diff:

Problem

Flow's inference engine is designed to find more errors over time as +constraints are added...but it is not designed to backtrack. Unfortunately, +checking the type of an expression against a union type does need backtracking: +if some branch of the union doesn't work out, the next branch must be tried, +and so on. (The same is true for checks that involve intersection types.)

The situation is further complicated by the fact that the type of the +expression may not be completely known at the point of checking, so that a +branch that looks promising now might turn out to be incorrect later.

Solution

The basic idea is to delay trying a branch until a point where we can decide +whether the branch will definitely fail or succeed, without further +information. If trying a branch results in failure, we can move on to the next +branch without needing to backtrack. If a branch succeeds, we are done. The +final case is where the branch looks promising, but we cannot be sure without +adding constraints: in this case we try other branches, and bail when we run +into ambiguities...requesting additional annotations to decide which branch to +select. Overall, this means that (1) we never commit to a branch that might +turn out to be incorrect and (2) can always select a correct branch (if such +exists) given enough annotations.

+ + + + \ No newline at end of file diff --git a/blog/2016/08/01/Windows-Support/index.html b/blog/2016/08/01/Windows-Support/index.html new file mode 100644 index 00000000000..a9dc57cbb9b --- /dev/null +++ b/blog/2016/08/01/Windows-Support/index.html @@ -0,0 +1,55 @@ + + + + + +Windows Support is Here! | Flow + + + + + + + + + + + + + + +
+

Windows Support is Here!

We are excited to announce that Flow is now officially available on 64-bit +Windows! Starting with +Flow v0.30.0, we will +publish a Windows binary with each release. You can download the Windows binary +in a .zip file directly from the +GitHub releases page or install it +using the flow-bin npm package. Try +it out and report any issues you +come across!

![Windows Support GIF]({{ site.baseurl }}/static/windows.gif)

Getting Flow working on Windows was not easy, and it was made possible by the +hard work of Grégoire, +Çagdas and +Fabrice from +OCamlPro.

Getting Started with Windows

Getting Started with flow-bin on Windows

Does your JavaScript project use npm to manage dependencies? Well, then the +easiest way for you to install Flow is with npm! Just run

> npm install --save-dev flow-bin

(Note: on Windows, it is recommended to use npm v3, to avoid the long +node_modules paths that npm v2 creates)

This will install the +flow-bin npm package and +automatically add it to your package.json. Once installed, there are a few ways +to use the Flow binary. One is to use ./node_modules/.bin/flow directly. For +example, every Flow project needs a .flowconfig file in the root directory. +If you don't already have a .flowconfig, you could create it with Powershell, +like

> New-Item .flowconfig

or you could run the flow init command, using ./node_modules/.bin/flow

> ./node_modules/.bin/flow init

Another way to run Flow is via an npm script. In your package.json file, there +is a "scripts" section. Maybe it looks like this:

"scripts": {
"test": "make test"
}

You can run the Flow binary directly from a script by referencing flow in a +script, like so:

"scripts": {
"test": "make test",
"flow_check": "flow check || exit 0"
}

and then running that script via npm run

> npm run flow_check

(Note: the || exit 0 part of the script is optional, but npm run will show +an error message if the script finishes with a non-zero exit code)

You can also install flow-bin globally with

> npm install --global flow-bin

Getting Started with flow.exe

Each GitHub release of Flow +starting with v0.30.0 will have a zipped Windows binary. For example, the +v0.30.0 release +includes flow-win64-v0.30.0.zip. +If you download and unzip that, you will find a flow/ directory, which +contains flow.exe. flow.exe is the Flow binary, so if you put that +somewhere in your path, and you should be good to go.

> mkdir demo
> cd demo
> flow.exe init
> "/* @flow */ var x: number = true;" | Out-File -Encoding ascii test.js
> flow.exe check
test.js:1
1: /* @flow */ var x: number = true;
^^^^ boolean. This type is incompatible with

1: /* @flow */ var x: number = true;
^^^^^^ number
+ + + + \ No newline at end of file diff --git a/blog/2016/10/04/Property-Variance/index.html b/blog/2016/10/04/Property-Variance/index.html new file mode 100644 index 00000000000..bdb2ad687f9 --- /dev/null +++ b/blog/2016/10/04/Property-Variance/index.html @@ -0,0 +1,77 @@ + + + + + +Property Variance and Other Upcoming Changes | Flow + + + + + + + + + + + + + + +
+

Property Variance and Other Upcoming Changes

The next release of Flow, 0.34, will include a few important changes to object +types:

  • property variance,
  • invariant-by-default dictionary types,
  • covariant-by-default method types,
  • and more flexible getters and setters.

What is Variance?

Defining the subtype relationship between types is a core responsibility of Flow +as a type system. These relationships are determined either directly for +simple types or, for complex types, defined in terms of their parts.

Variance describes the subtyping relationship for complex types as it relates +to the subtyping relationships of their parts.

For example, Flow directly encodes the knowledge that string is a subtype of +?string. Intuitively, a string type contains string values while a ?string +type contains null, undefined, and also string values, so membership in the +former naturally implies membership in the later.

The subtype relationships between two function types is not as direct. Rather, +it is derived from the subtype relationships between the functions' parameter +and return types.

Let's see how this works for two simple function types:

type F1 = (x: P1) => R1;
type F2 = (x: P2) => R2;

Whether F2 is a subtype of F1 depends on the relationships between P1 and +P2 and R1 and R2. Let's use the notation B <: A to mean B is a +subtype of A.

It turns out that F2 <: F1 if P1 <: P2 and R2 <: R1. Notice that the +relationship for parameters is reversed? In technical terms, we can say that +function types are "contravariant" with respect to their parameter types and +"covariant" with respect to their return types.

Let's look at an example:

function f(callback: (x: string) => ?number): number {
return callback("hi") || 0;
}

What kinds of functions can we pass to f? Based on the subtyping rule above, +then we can pass a function whose parameter type is a supertype of string and +whose return type is a subtype of ?number.

function g(x: ?string): number {
return x ? x.length : 0;
}
f(g);

The body of f will only ever pass string values into g, which is safe +because g takes at least string by taking ?string. Conversely, g will +only ever return number values to f, which is safe because f handles at +least number by handling ?number.

Input and Output

One convenient way to remember when something is covariant vs. contravariant is +to think about "input" and "output."

Parameters are in an input position, often called a "negative" position. +Complex types are contravariant in their input positions.

Return is an output position, often called a "positive" position. Complex +types are covariant in their output positions.

Property Invariance

Just as function types are composed of parameter and return types, so too are +object types composed of property types. Thus, the subtyping relationship +between objects is derived from the subtyping relationships of their +properties.

However, unlike functions which have input parameters and an output return, +object properties can be read and written. That is, properties are both input +and output.

Let's see how this works for two simple object types:

type O1 = {p: T1};
type O2 = {p: T2};

As with function types, whether O2 is a subtype of O1 depends on the +relationship between its parts, T1 and T2.

Here it turns out that O2 <: O1 if T2 <: T1 and T1 <: T2. In technical +terms, object types are "invariant" with respect to their property types.

Let's look at an example:

function f(o: {p: ?string}): void {
// We can read p from o
let len: number;
if (o.p) {
len = o.p.length;
} else {
len = 0;
}

// We can also write into p
o.p = null;
}

What kinds of objects can we pass into f, then? If we try to pass in an +object with a subtype property, we get an error:

var o1: {p: string} = {p: ""};
f(o1);
function f(o: {p: ?string}) {}
^ null. This type is incompatible with
var o1: {p: string} = {p: ""};
^ string
function f(o: {p: ?string}) {}
^ undefined. This type is incompatible with
var o1: {p: string} = {p: ""};
^ string

Flow has correctly identified an error here. If the body of f writes null +into o.p, then o1.p would no longer have type string.

If we try to pass an object with a supertype property, we again get an error:

var o2: {p: ?(string|number)} = {p: 0};
f(o2);
var o1: {p: ?(string|number)} = {p: ""};
^ number. This type is incompatible with
function f(o: {p: ?string}) {}
^ string

Again, Flow correctly identifies an error, because if f tried to read p +from o, it would find a number.

Property Variance

So objects have to be invariant with respect to their property types because +properties can be read from and written to. But just because you can read and +write, doesn't mean you always do.

Consider a function that gets the length of an nullable string property:

function f(o: {p: ?string}): number {
return o.p ? o.p.length : 0;
}

We never write into o.p, so we should be able to pass in an object where the +type of property p is a subtype of ?string. Until now, this wasn't possible +in Flow.

With property variance, you can explicitly annotate object properties as being +covariant and contravariant. For example, we can rewrite the above function:

function f(o: {+p: ?string}): number {
return o.p ? o.p.length : 0;
}

var o: {p: string} = {p: ""};
f(o); // no type error!

It's crucial that covariant properties only ever appear in output positions. It +is an error to write to a covariant property:

function f(o: {+p: ?string}) {
o.p = null;
}
o.p = null;
^ object type. Covariant property `p` incompatible with contravariant use in
o.p = null;
^ assignment of property `p`

Conversely, if a function only ever writes to a property, we can annotate the +property as contravariant. This might come up in a function that initializes an +object with default values, for example.

function g(o: {-p: string}): void {
o.p = "default";
}
var o: {p: ?string} = {p: null};
g(o);

Contravariant properties can only ever appear in input positions. It is an +error to read from a contravariant property:

function f(o: {-p: string}) {
o.p.length;
}
o.p.length;
^ object type. Contravariant property `p` incompatible with covariant use in
o.p.length;
^ property `p`

Invariant-by-default Dictionary Types

The object type {[key: string]: ?number} describes an object that can be used +as a map. We can read any property and Flow will infer the result type as +?number. We can also write null or undefined or number into any +property.

In Flow 0.33 and earlier, these dictionary types were treated covariantly by +the type system. For example, Flow accepted the following code:

function f(o: {[key: string]: ?number}) {
o.p = null;
}
declare var o: {p: number};
f(o);

This is unsound because f can overwrite property p with null. In Flow +0.34, dictionaries are invariant, like named properties. The same code now +results in the following type error:

function f(o: {[key: string]: ?number}) {}
^ null. This type is incompatible with
declare var o: {p: number};
^ number
function f(o: {[key: string]: ?number}) {}
^ undefined. This type is incompatible with
declare var o: {p: number};
^ number

Covariant and contravariant dictionaries can be incredibly useful, though. To +support this, the same syntax used to support variance for named properties can +be used for dictionaries as well.

function f(o: {+[key: string]: ?number}) {}
declare var o: {p: number};
f(o); // no type error!

Covariant-by-default Method Types

ES6 gave us a shorthand way to write object properties which are functions.

var o = {
m(x) {
return x * 2
}
}

Flow now interprets properties which use this shorthand method syntax as +covariant by default. This means it is an error to write to the property m.

If you don't want covariance, you can use the long form syntax:

var o = {
m: function(x) {
return x * 2;
}
}

More Flexible Getters and Setters

In Flow 0.33 and earlier, getters and setters had to agree exactly on their +return type and parameter type, respectively. Flow 0.34 lifts that restriction.

This means you can write code like the following:

// @flow
declare var x: string;

var o = {
get x(): string {
return x;
},
set x(value: ?string) {
x = value || "default";
}
}
+ + + + \ No newline at end of file diff --git a/blog/2016/10/13/Flow-Typed/index.html b/blog/2016/10/13/Flow-Typed/index.html new file mode 100644 index 00000000000..e37cf0220e8 --- /dev/null +++ b/blog/2016/10/13/Flow-Typed/index.html @@ -0,0 +1,98 @@ + + + + + +Introducing Flow-Typed | Flow + + + + + + + + + + + + + + +
+

Introducing Flow-Typed

Having high-quality and community-driven library definitions (“libdefs”) are +important for having a great experience with Flow. Today, we are introducing +flow-typed: A repository and +CLI tool that represent the first parts +of a new workflow for building, sharing, and distributing Flow libdefs.

The goal of this project is to grow an ecosystem of libdefs that +allows Flow's type inference to shine +and that aligns with Flow's mission: To extract precise and accurate types +from real-world JavaScript. We've learned a lot from similar efforts like +DefinitelyTyped for TypeScript and we want to bring some of the lessons we've +learned to the Flow ecosystem.

Here are some of the objectives of this project:

  • Libdefs should be versioned — both against the libraries they describe +and against the version(s) of Flow they are compatible with.
  • Libdefs should meet a high quality bar, including libdef tests to +ensure that their quality persists over time.
  • There must be a straightforward way to contribute libdef improvements over +time and for developers to benefit from those improvements over time.
  • The process of managing libdefs for a Flow project should be automated, +simple, and easy to get right.

Versioned & Tested Libdefs

Anyone can contribute a libdef (or improve on an existing one), but when doing +so it's important that we maintain a high quality bar so that all developers +feel confident in the libdefs they are using. To address this, flow-typed +requires that all libdef contributions are explicitly versioned against both +the version of the library they are describing and the version(s) of Flow the +libdef is compatible with.

Additionally, all libdefs must be accompanied by tests that exercise the +important parts of the API and assert that they yield the correct types. By +including both version information and tests with each libdef, we can +automatically verify in Travis that the tests work as expected for all versions +of Flow a libdef is compatible with. Tests also help to ensure that future +changes to the libdef don't regress its features over time.

Automating Libdef Installation

We've built a simple CLI tool called flow-typed that helps to automate the +process of finding, installing, and upgrading libdefs in your Flow projects. It +uses the explicit version info associated with each libdef to find all +necessary libdefs based on your project's package.json dependencies. This +minimizes the work you need to do in order to pull in and update libdefs in +your projects.

You can get the flow-typed CLI using either yarn (yarn global add flow-typed) +or npm (npm install -g flow-typed).

Installing Libdefs

Installing libdefs from the flow-typed repository is a matter of running a +single command on your project after installing your dependencies:

> yarn install # Or `npm install` if you're old-school :)
> flow-typed install

The flow-typed install command reads your project's package.json file, +queries the flow-typed repository for libdefs matching your dependencies, and +installs the correctly-versioned libdefs into the flow-typed/ directory for +you. By default, Flow knows to look in the flow-typed/ directory for libdefs +— so there is no additional configuration necessary.

Note that it's necessary to run this command after running yarn or +npm install. This is because this command will also generate stub libdefs for +you if one of your dependencies doesn't have types.

Once libdefs have been installed, we recommend that you check them in to your +project's repo. Libdefs in the flow-typed repository may be improved over +time (fixing a bug, more precise types, etc). If this happens for a libdef that +you depend on, you'll want to have control over when that update is applied to +your project. Periodically you can run flow-typed update to download any +libdef updates, verify that your project still typechecks, and the commit the +updates.

Why Not Just Use Npm To Distribute Libdefs?

Over time libdefs in the flow-typed repo may be updated to fix bugs, improve +accuracy, or make use of new Flow features that better describe the types of +the library. As a result, there are really 3 versions that apply to each +libdef: The version of the library being described, the current version of the +libdef in the flow-typed repo, and the version(s) of Flow the libdef is +compatible with.

If an update is made to some libdef that you use in your project after you've +already installed it, there's a good chance that update may find new type +errors in your project that were previously unknown. While it is certainly a +good thing to find errors that were previously missed, you'll want to have +control over when those changes get pulled in to your project.

This is the reason we advise that you commit your installed libdefs to version +control rather than rely on a system like npm+semver to download and install a +non-deterministic semver-ranged version from npm. Checking in your libdefs +ensures that all collaborators on your project have consistent output from Flow +at any given commit in version history.

Building a Community

This is first and foremost a community project. It was started by a community +member (hey @splodingsocks!) and has +already benefitted from hours of work by many others. Moreover, this will +continue to be a community effort: Anyone can create and/or help maintain a +libdef for any npm library. Authors may create libdefs for their packages when +publishing, and/or consumers can create them when someone else hasn't already +done so. Either way, everyone benefits!

We'd like to send a big shout-out to @marudor for +contributing so many of his own libdefs and spending time helping others to +write and contribute libdefs. Additionally we'd like to thank +@ryyppy for helping to design and iterate on the +CLI and installation workflow as well as manage libdef reviews.

The Flow core team intends to stay invested in developing and improving this +project, but in order for it to truly succeed we need your help! If you've +already written some libdefs for Flow projects that you work on, we encourage +you to contribute +them for others to benefit from them as well. By managing libdefs in a +community-driven repository, the community as a whole can work together to +extend Flow's capabilities beyond just explicitly-typed JS.

It's still early days and there's still a lot to do, so we're excited to hear +your ideas/feedback and read your pull requests! :)

Happy typing!

+ + + + \ No newline at end of file diff --git a/blog/2017/05/07/Strict-Function-Call-Arity/index.html b/blog/2017/05/07/Strict-Function-Call-Arity/index.html new file mode 100644 index 00000000000..9639e36b16d --- /dev/null +++ b/blog/2017/05/07/Strict-Function-Call-Arity/index.html @@ -0,0 +1,68 @@ + + + + + +Strict Checking of Function Call Arity | Flow + + + + + + + + + + + + + + +
+

Strict Checking of Function Call Arity

One of Flow's original goals was to be able to understand idiomatic JavaScript. +In JavaScript, you can call a function with more arguments than the function +expects. Therefore, Flow never complained about calling a function with +extraneous arguments.

We are changing this behavior.

What is arity?

A function's arity is the number of arguments it expects. Since some functions +have optional parameters and some use rest parameters, we can define the +minimum arity as the smallest number of arguments it expects and the maximum +arity as the largest number of arguments it expects.

function no_args() {} // arity of 0
function two_args(a, b) {} // arity of 2
function optional_args(a, b?) {} // min arity of 1, max arity of 2
function many_args(a, ...rest) {} // min arity of 1, no max arity

Motivation

Consider the following code:

function add(a, b) { return a + b; }
const sum = add(1, 1, 1, 1);

The author apparently thought the add() function adds up all its +arguments, and that sum will have the value 4. However, only the first two +arguments are summed, and sum actually will have the value 2. This is +obviously a bug, so why doesn't JavaScript or Flow complain?

And while the error in the above example is easy to see, in real code it's often +a lot harder to notice. For example, what is the value of total here:

const total = parseInt("10", 2) + parseFloat("10.1", 2);

"10" in base 2 is 2 in decimal and "10.1" in base 2 is 2.5 in decimal. +So the author probably thought that total would be 4.5. However, the correct +answer is 12.1. parseInt("10", 2) does evaluates to 2, as expected. +However, parseFloat("10.1", 2) evaluates to 10.1. parseFloat() only takes +a single argument. The second argument is ignored!

Why JavaScript allows extraneous arguments

At this point, you might feel like this is just an example of JavaScript making +terrible life decisions. However, this behavior is very convenient in a bunch of +situations!

Callbacks

If you couldn't call a function with more arguments than it handles, then +mapping over an array would look like

const doubled_arr = [1, 2, 3].map((element, index, arr) => element * 2);

When you call Array.prototype.map, you pass in a callback. For each element in +the array, that callback is invoked and passed 3 arguments:

  1. The element
  2. The index of the element
  3. The array over which you're mapping

However, your callback often only needs to reference the first argument: the +element. It's really nice that you can write

const doubled_arr = [1, 2, 3].map(element => element * 2);

Stubbing

Sometimes I come across code like this

let log = () => {};
if (DEBUG) {
log = (message) => console.log(message);
}
log("Hello world");

The idea is that in a development environment, calling log() will output a +message, but in production it does nothing. Since you can call a +function with more arguments than it expects, it is easy to stub out log() in +production.

Variadic functions using arguments

A variadic function is a function that can take an indefinite number of +arguments. The old-school way to write variadic functions in JavaScript is by +using arguments. For example

function sum_all() {
let ret = 0;
for (let i = 0; i < arguments.length; i++) { ret += arguments[i]; }
return ret;
}
const total = sum_all(1, 2, 3); // returns 6

For all intents and purposes, sum_all appears like it takes no arguments. So +even though it appears to have an arity of 0, it is convenient that we can call +it with more arguments.

Changes to Flow

We think we have found a compromise which catches the motivating bugs without +breaking the convenience of JavaScript.

Calling a function

If a function has a maximum arity of N, then Flow will start complaining if you +call it with more than N arguments.

test:1
1: const num = parseFloat("10.5", 2);
^ unused function argument
19: declare function parseFloat(string: mixed): number;
^^^^^^^^^^^^^^^^^^^^^^^ function type expects no more than 1 argument. See lib: <BUILTINS>/core.js:19

Function subtyping

Flow will not change its function subtyping behavior. A function +with a smaller maximum arity is still a subtype of a function with a larger +maximum arity. This allows callbacks to still work as before.

class Array<T> {
...
map<U>(callbackfn: (value: T, index: number, array: Array<T>) => U, thisArg?: any): Array<U>;
...
}
const arr = [1,2,3].map(() => 4); // No error, evaluates to [4,4,4]

In this example, () => number is a subtype of (number, number, Array<number>) => number.

Stubbing and variadic functions

This will, unfortunately, cause Flow to complain about stubs and variadic +functions which are written using arguments. However, you can fix these by +using rest parameters

let log (...rest) => {};

function sum_all(...rest) {
let ret = 0;
for (let i = 0; i < rest.length; i++) { ret += rest[i]; }
return ret;
}

Rollout plan

Flow v0.46.0 will ship with strict function call arity turned off by default. It +can be enabled via your .flowconfig with the flag

experimental.strict_call_arity=true

Flow v0.47.0 will ship with strict function call arity turned on and the +experimental.strict_call_arity flag will be removed.

Why turn this on over two releases?

This decouples the switch to strict checking of function call arity from the +release.

Why not keep the experimental.strict_call_arity flag?

This is a pretty core change. If we kept both behaviors, we'd have to test that +everything works with and without this change. As we add more flags, the number +of combinations grows exponentially, and Flow's behavior gets harder to reason +about. For this reason, we're choosing only one behavior: strict checking of +function call arity.

What do you think?

This change was motivated by feedback from Flow users. We really appreciate +all the members of our community who take the time to share their feedback with +us. This feedback is invaluable and helps us make Flow better, so please keep +it coming!

+ + + + \ No newline at end of file diff --git a/blog/2017/07/27/Opaque-Types/index.html b/blog/2017/07/27/Opaque-Types/index.html new file mode 100644 index 00000000000..e24249ac266 --- /dev/null +++ b/blog/2017/07/27/Opaque-Types/index.html @@ -0,0 +1,27 @@ + + + + + +Opaque Type Aliases | Flow + + + + + + + + + + + + + + +
+

Do you ever wish that you could hide your implementation details away +from your users? Find out how opaque type aliases can get the job done!

+ + + + \ No newline at end of file diff --git a/blog/2017/08/04/Linting-in-Flow/index.html b/blog/2017/08/04/Linting-in-Flow/index.html new file mode 100644 index 00000000000..50c2bf1b6bd --- /dev/null +++ b/blog/2017/08/04/Linting-in-Flow/index.html @@ -0,0 +1,26 @@ + + + + + +Linting in Flow | Flow + + + + + + + + + + + + + + +
+

Flow’s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter.

+ + + + \ No newline at end of file diff --git a/blog/2017/08/16/Even-Better-Support-for-React-in-Flow/index.html b/blog/2017/08/16/Even-Better-Support-for-React-in-Flow/index.html new file mode 100644 index 00000000000..64e099987cd --- /dev/null +++ b/blog/2017/08/16/Even-Better-Support-for-React-in-Flow/index.html @@ -0,0 +1,28 @@ + + + + + +Even Better Support for React in Flow | Flow + + + + + + + + + + + + + + +
+

The first version of Flow support for React was a magical implementation of +React.createClass(). Since then, React has evolved significantly. It is time +to rethink how Flow models React.

+ + + + \ No newline at end of file diff --git a/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases/index.html b/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases/index.html new file mode 100644 index 00000000000..6b7bedfeb4b --- /dev/null +++ b/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases/index.html @@ -0,0 +1,31 @@ + + + + + +Private Object Properties Using Flow’s Opaque Type Aliases | Flow + + + + + + + + + + + + + + +
+

In the last few weeks, a proposal for private class fields in Javascript reached +stage 3. This is going to be a great way to hide implementation details away +from users of your classes. However, locking yourself in to an OOP style of +programming is not always ideal if you prefer a more functional style. Let’s +talk about how you can use Flow’s opaque type aliases to get private properties +on any object type.

+ + + + \ No newline at end of file diff --git a/blog/2017/09/03/Flow-Support-in-Recompose/index.html b/blog/2017/09/03/Flow-Support-in-Recompose/index.html new file mode 100644 index 00000000000..7c2a4b11737 --- /dev/null +++ b/blog/2017/09/03/Flow-Support-in-Recompose/index.html @@ -0,0 +1,29 @@ + + + + + +Typing Higher-Order Components in Recompose With Flow | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem/index.html b/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem/index.html new file mode 100644 index 00000000000..b7be8f60ecb --- /dev/null +++ b/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem/index.html @@ -0,0 +1,29 @@ + + + + + +Better Flow Error Messages for the JavaScript Ecosystem | Flow + + + + + + + + + + + + + + +
+

Over the last year, the Flow team has been slowly auditing and improving all the +possible error messages generated by the type checker. In Flow 0.66 we’re +excited to announce a new error message format designed to decrease the time it +takes you to read and fix each bug Flow finds.

+ + + + \ No newline at end of file diff --git a/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals/index.html b/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals/index.html new file mode 100644 index 00000000000..7b42bb0adff --- /dev/null +++ b/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals/index.html @@ -0,0 +1,27 @@ + + + + + +New Flow Errors on Unknown Property Access in Conditionals | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/2018/10/18/Exact-Objects-By-Default/index.html b/blog/2018/10/18/Exact-Objects-By-Default/index.html new file mode 100644 index 00000000000..0be422fa9f9 --- /dev/null +++ b/blog/2018/10/18/Exact-Objects-By-Default/index.html @@ -0,0 +1,26 @@ + + + + + +On the Roadmap: Exact Objects by Default | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/2018/10/29/Asking-for-Required-Annotations/index.html b/blog/2018/10/29/Asking-for-Required-Annotations/index.html new file mode 100644 index 00000000000..498c51955f4 --- /dev/null +++ b/blog/2018/10/29/Asking-for-Required-Annotations/index.html @@ -0,0 +1,27 @@ + + + + + +Asking for Required Annotations | Flow + + + + + + + + + + + + + + +
+

Flow will be asking for more annotations starting in 0.85.0. Learn how +to deal with these errors in our latest blog post.

+ + + + \ No newline at end of file diff --git a/blog/2018/12/13/React-Abstract-Component/index.html b/blog/2018/12/13/React-Abstract-Component/index.html new file mode 100644 index 00000000000..434917100df --- /dev/null +++ b/blog/2018/12/13/React-Abstract-Component/index.html @@ -0,0 +1,27 @@ + + + + + +Supporting React.forwardRef and Beyond | Flow + + + + + + + + + + + + + + +
+

We made some major changes to our React model to better model new React components. Let's +talk about React.AbstractComponent!

+ + + + \ No newline at end of file diff --git a/blog/2019/08/20/Changes-to-Object-Spreads/index.html b/blog/2019/08/20/Changes-to-Object-Spreads/index.html new file mode 100644 index 00000000000..14b41c106d0 --- /dev/null +++ b/blog/2019/08/20/Changes-to-Object-Spreads/index.html @@ -0,0 +1,26 @@ + + + + + +Coming Soon: Changes to Object Spreads | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/2019/1/28/What-the-flow-team-has-been-up-to/index.html b/blog/2019/1/28/What-the-flow-team-has-been-up-to/index.html new file mode 100644 index 00000000000..f6bc71e7dd6 --- /dev/null +++ b/blog/2019/1/28/What-the-flow-team-has-been-up-to/index.html @@ -0,0 +1,26 @@ + + + + + +What the Flow Team Has Been Up To | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/2019/10/25/Live-Flow-Errors-in-your-IDE/index.html b/blog/2019/10/25/Live-Flow-Errors-in-your-IDE/index.html new file mode 100644 index 00000000000..82ff0430d58 --- /dev/null +++ b/blog/2019/10/25/Live-Flow-Errors-in-your-IDE/index.html @@ -0,0 +1,26 @@ + + + + + +Live Flow errors in your IDE | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/2019/10/30/Spreads-Common-Errors-and-Fixes/index.html b/blog/2019/10/30/Spreads-Common-Errors-and-Fixes/index.html new file mode 100644 index 00000000000..158600a3ec1 --- /dev/null +++ b/blog/2019/10/30/Spreads-Common-Errors-and-Fixes/index.html @@ -0,0 +1,26 @@ + + + + + +Spreads: Common Errors & Fixes | Flow + + + + + + + + + + + + + + +
+

Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them.

+ + + + \ No newline at end of file diff --git a/blog/2019/2/8/A-More-Responsive-Flow/index.html b/blog/2019/2/8/A-More-Responsive-Flow/index.html new file mode 100644 index 00000000000..4aac6bdd2b6 --- /dev/null +++ b/blog/2019/2/8/A-More-Responsive-Flow/index.html @@ -0,0 +1,26 @@ + + + + + +A More Responsive Flow | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/2019/4/9/Upgrading-Flow-Codebases/index.html b/blog/2019/4/9/Upgrading-Flow-Codebases/index.html new file mode 100644 index 00000000000..04362d65ad1 --- /dev/null +++ b/blog/2019/4/9/Upgrading-Flow-Codebases/index.html @@ -0,0 +1,26 @@ + + + + + +Upgrading Flow Codebases | Flow + + + + + + + + + + + + + + +
+

Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!

+ + + + \ No newline at end of file diff --git a/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax/index.html b/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax/index.html new file mode 100644 index 00000000000..2c3effc05d9 --- /dev/null +++ b/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax/index.html @@ -0,0 +1,26 @@ + + + + + +How to upgrade to exact-by-default object type syntax | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/2020/02/19/Improvements-to-Flow-in-2019/index.html b/blog/2020/02/19/Improvements-to-Flow-in-2019/index.html new file mode 100644 index 00000000000..57819f39e7b --- /dev/null +++ b/blog/2020/02/19/Improvements-to-Flow-in-2019/index.html @@ -0,0 +1,26 @@ + + + + + +Improvements to Flow in 2019 | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/2020/03/09/What-were-building-in-2020/index.html b/blog/2020/03/09/What-were-building-in-2020/index.html new file mode 100644 index 00000000000..1deb6751968 --- /dev/null +++ b/blog/2020/03/09/What-were-building-in-2020/index.html @@ -0,0 +1,26 @@ + + + + + +What we’re building in 2020 | Flow + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/2020/03/16/Making-Flow-error-suppressions-more-specific/index.html b/blog/2020/03/16/Making-Flow-error-suppressions-more-specific/index.html new file mode 100644 index 00000000000..a9aff7eeea3 --- /dev/null +++ b/blog/2020/03/16/Making-Flow-error-suppressions-more-specific/index.html @@ -0,0 +1,26 @@ + + + + + +Making Flow error suppressions more specific | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow/index.html b/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow/index.html new file mode 100644 index 00000000000..3c9ef13e197 --- /dev/null +++ b/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow/index.html @@ -0,0 +1,26 @@ + + + + + +Types-First: A Scalable New Architecture for Flow | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types/index.html b/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types/index.html new file mode 100644 index 00000000000..a625b7a197f --- /dev/null +++ b/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types/index.html @@ -0,0 +1,26 @@ + + + + + +Flow's Improved Handling of Generic Types | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow/index.html b/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow/index.html new file mode 100644 index 00000000000..efe77ff4dbe --- /dev/null +++ b/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow/index.html @@ -0,0 +1,26 @@ + + + + + +Types-First the only supported mode in Flow (Jan 2021) | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement/index.html b/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement/index.html new file mode 100644 index 00000000000..36a5027537a --- /dev/null +++ b/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement/index.html @@ -0,0 +1,26 @@ + + + + + +Clarity on Flow's Direction and Open Source Engagement | Flow + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/2021/06/02/Sound-Typing-for-this-in-Flow/index.html b/blog/2021/06/02/Sound-Typing-for-this-in-Flow/index.html new file mode 100644 index 00000000000..ce1c99b0dae --- /dev/null +++ b/blog/2021/06/02/Sound-Typing-for-this-in-Flow/index.html @@ -0,0 +1,26 @@ + + + + + +Sound Typing for 'this' in Flow | Flow + + + + + + + + + + + + + + +
+

Improvements in soundness for this-typing in Flow, including the ability to annotate this on functions and methods.

+ + + + \ No newline at end of file diff --git a/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/index.html b/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/index.html new file mode 100644 index 00000000000..947753c288c --- /dev/null +++ b/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/index.html @@ -0,0 +1,26 @@ + + + + + +Introducing Flow Indexed Access Types | Flow + + + + + + + + + + + + + + +
+

Flow’s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type.

+ + + + \ No newline at end of file diff --git a/blog/2021/09/13/Introducing-Flow-Enums/index.html b/blog/2021/09/13/Introducing-Flow-Enums/index.html new file mode 100644 index 00000000000..996397f0c84 --- /dev/null +++ b/blog/2021/09/13/Introducing-Flow-Enums/index.html @@ -0,0 +1,26 @@ + + + + + +Introducing Flow Enums | Flow + + + + + + + + + + + + + + +
+

Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type.

+ + + + \ No newline at end of file diff --git a/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/index.html b/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/index.html new file mode 100644 index 00000000000..fcd2ec6cd47 --- /dev/null +++ b/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/index.html @@ -0,0 +1,26 @@ + + + + + +TypeScript Enums vs. Flow Enums | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/index.html b/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/index.html new file mode 100644 index 00000000000..913f175505b --- /dev/null +++ b/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/index.html @@ -0,0 +1,26 @@ + + + + + +Introducing: Local Type Inference for Flow | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/index.html b/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/index.html new file mode 100644 index 00000000000..86ded585b0c --- /dev/null +++ b/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/index.html @@ -0,0 +1,26 @@ + + + + + +New Flow Language Rule: Constrained Writes | Flow + + + + + + + + + + + + + + +
+

Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated.

+ + + + \ No newline at end of file diff --git a/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/index.html b/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/index.html new file mode 100644 index 00000000000..a65c83a718d --- /dev/null +++ b/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/index.html @@ -0,0 +1,26 @@ + + + + + +Requiring More Annotations to Functions and Classes in Flow | Flow + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/index.html b/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/index.html new file mode 100644 index 00000000000..72c54d7cb92 --- /dev/null +++ b/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/index.html @@ -0,0 +1,26 @@ + + + + + +Improved handling of the empty object in Flow | Flow + + + + + + + + + + + + + + +
+

Flow handled the empty object literal {} in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior.

+ + + + \ No newline at end of file diff --git a/blog/2023/01/17/Local-Type-Inference/index.html b/blog/2023/01/17/Local-Type-Inference/index.html new file mode 100644 index 00000000000..0790eb2c78d --- /dev/null +++ b/blog/2023/01/17/Local-Type-Inference/index.html @@ -0,0 +1,26 @@ + + + + + +Local Type Inference for Flow | Flow + + + + + + + + + + + + + + +
+

Local Type Inference makes Flow’s inference behavior more reliable and predictable, by modestly increasing Flow’s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases.

+ + + + \ No newline at end of file diff --git a/blog/2023/02/16/Exact-object-types-by-default-by-default/index.html b/blog/2023/02/16/Exact-object-types-by-default-by-default/index.html new file mode 100644 index 00000000000..10fb18f24d5 --- /dev/null +++ b/blog/2023/02/16/Exact-object-types-by-default-by-default/index.html @@ -0,0 +1,26 @@ + + + + + +Exact object types by default, by default | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/index.html b/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/index.html new file mode 100644 index 00000000000..b8c8f0d276f --- /dev/null +++ b/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/index.html @@ -0,0 +1,27 @@ + + + + + +Announcing Partial & Required Flow utility types + catch annotations | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/2023/04/10/Unused-Promise/index.html b/blog/2023/04/10/Unused-Promise/index.html new file mode 100644 index 00000000000..6c08c64d1f6 --- /dev/null +++ b/blog/2023/04/10/Unused-Promise/index.html @@ -0,0 +1,28 @@ + + + + + +Flow can now detect unused Promises | Flow + + + + + + + + + + + + + + +
+

As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous, +because errors are potentially unhandled, and the code may not execute in the intended order. They are +usually mistakes that Flow is perfectly positioned to warn you about.

+ + + + \ No newline at end of file diff --git a/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/index.html b/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/index.html new file mode 100644 index 00000000000..de492455133 --- /dev/null +++ b/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/index.html @@ -0,0 +1,26 @@ + + + + + +Announcing 5 new Flow tuple type features | Flow + + + + + + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/blog/archive/index.html b/blog/archive/index.html new file mode 100644 index 00000000000..bd0194a9aae --- /dev/null +++ b/blog/archive/index.html @@ -0,0 +1,26 @@ + + + + + +Archive | Flow + + + + + + + + + + + + + + +
+

Archive

Archive

+ + + + \ No newline at end of file diff --git a/blog/atom.xml b/blog/atom.xml new file mode 100644 index 00000000000..8694a3a1ef7 --- /dev/null +++ b/blog/atom.xml @@ -0,0 +1,913 @@ + + + https://flow.org/blog + Flow Blog + 2023-08-17T00:00:00.000Z + https://github.com/jpmonette/feed + + Flow Blog + https://flow.org/img/favicon.png + + <![CDATA[Announcing 5 new Flow tuple type features]]> + https://flow.org/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features + + 2023-08-17T00:00:00.000Z + + Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more.

]]>
+ + George Zahariev + +
+ + <![CDATA[Flow can now detect unused Promises]]> + https://flow.org/blog/2023/04/10/Unused-Promise + + 2023-04-10T00:00:00.000Z + + As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous, +because errors are potentially unhandled, and the code may not execute in the intended order. They are +usually mistakes that Flow is perfectly positioned to warn you about.

]]>
+ + David Richey + +
+ + <![CDATA[Announcing Partial & Required Flow utility types + catch annotations]]> + https://flow.org/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations + + 2023-03-15T00:00:00.000Z + + Starting in Flow version 0.201, make an object type’s fields all optional using Partial<ObjType> (use instead of the unsafe $Shape), +and make an object type’s optional fields required with Required<ObjType>.

]]>
+ + George Zahariev + +
+ + <![CDATA[Exact object types by default, by default]]> + https://flow.org/blog/2023/02/16/Exact-object-types-by-default-by-default + + 2023-02-16T00:00:00.000Z + + We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan.

]]>
+ + George Zahariev + +
+ + <![CDATA[Local Type Inference for Flow]]> + https://flow.org/blog/2023/01/17/Local-Type-Inference + + 2023-01-17T00:00:00.000Z + + Local Type Inference makes Flow’s inference behavior more reliable and predictable, by modestly increasing Flow’s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases.

]]>
+ + Sam Zhou + +
+ + <![CDATA[Improved handling of the empty object in Flow]]> + https://flow.org/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow + + 2022-10-20T00:00:00.000Z + + Flow handled the empty object literal {} in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior.

]]>
+ + George Zahariev + +
+ + <![CDATA[Requiring More Annotations to Functions and Classes in Flow]]> + https://flow.org/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes + + 2022-09-30T00:00:00.000Z + + Flow will now require more annotations to functions and classes.

]]>
+ + Sam Zhou + +
+ + <![CDATA[New Flow Language Rule: Constrained Writes]]> + https://flow.org/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes + + 2022-08-05T00:00:00.000Z + + Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated.

]]>
+ + Jordan Brown + +
+ + <![CDATA[Introducing: Local Type Inference for Flow]]> + https://flow.org/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow + + 2021-09-27T00:00:00.000Z + + We're replacing Flow’s current inference engine with a system that behaves more predictably and can be reasoned about more locally.

]]>
+ + Michael Vitousek + +
+ + <![CDATA[Introducing Flow Enums]]> + https://flow.org/blog/2021/09/13/Introducing-Flow-Enums + + 2021-09-13T00:00:00.000Z + + Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type.

]]>
+ + George Zahariev + +
+ + <![CDATA[TypeScript Enums vs. Flow Enums]]> + https://flow.org/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums + + 2021-09-13T00:00:00.000Z + + A comparison of the enums features of TypeScript and Flow.

]]>
+ + George Zahariev + +
+ + <![CDATA[Introducing Flow Indexed Access Types]]> + https://flow.org/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types + + 2021-07-21T00:00:00.000Z + + Flow’s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type.

]]>
+ + George Zahariev + +
+ + <![CDATA[Sound Typing for 'this' in Flow]]> + https://flow.org/blog/2021/06/02/Sound-Typing-for-this-in-Flow + + 2021-06-02T00:00:00.000Z + + Improvements in soundness for this-typing in Flow, including the ability to annotate this on functions and methods.

]]>
+ + Daniel Sainati + +
+ + <![CDATA[Clarity on Flow's Direction and Open Source Engagement]]> + https://flow.org/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement + + 2021-05-25T00:00:00.000Z + + An update on Flow's direction and open source engagement.

]]>
+ + Vladan Djeric + +
+ + <![CDATA[Types-First the only supported mode in Flow (Jan 2021)]]> + https://flow.org/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow + + 2020-12-01T00:00:00.000Z + + Types-First will become the only mode in Flow in v0.143 (mid Jan 2021).

]]>
+ + Panagiotis Vekris + +
+ + <![CDATA[Flow's Improved Handling of Generic Types]]> + https://flow.org/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types + + 2020-11-16T00:00:00.000Z + + Flow has improved its handling of generic types by banning unsafe behaviors previously allowed and clarifying error messages.

]]>
+ + Michael Vitousek + +
+ + <![CDATA[Types-First: A Scalable New Architecture for Flow]]> + https://flow.org/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow + + 2020-05-18T00:00:00.000Z + + Flow Types-First mode is out! It unlocks Flow’s potential at scale by leveraging fully typed module boundaries. Read more in our latest blog post.

]]>
+ + Panagiotis Vekris + +
+ + <![CDATA[Making Flow error suppressions more specific]]> + https://flow.org/blog/2020/03/16/Making-Flow-error-suppressions-more-specific + + 2020-03-16T00:00:00.000Z + + We’re improving Flow error suppressions so that they don’t accidentally hide errors.

]]>
+ + Daniel Sainati + +
+ + <![CDATA[What we’re building in 2020]]> + https://flow.org/blog/2020/03/09/What-were-building-in-2020 + + 2020-03-09T00:00:00.000Z + + Learn about how Flow will improve in 2020.

]]>
+ + Andrew Pardoe + +
+ + <![CDATA[Improvements to Flow in 2019]]> + https://flow.org/blog/2020/02/19/Improvements-to-Flow-in-2019 + + 2020-02-19T00:00:00.000Z + + Take a look back at improvements we made to Flow in 2019.

]]>
+ + Andrew Pardoe + +
+ + <![CDATA[How to upgrade to exact-by-default object type syntax]]> + https://flow.org/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax + + 2020-01-29T00:00:00.000Z + + Object types will become exact-by-default. Read this post to learn how to get your code ready!

]]>
+ + Jordan Brown + +
+ + <![CDATA[Spreads: Common Errors & Fixes]]> + https://flow.org/blog/2019/10/30/Spreads-Common-Errors-and-Fixes + + 2019-10-30T00:00:00.000Z + + Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them.

]]>
+ + Jordan Brown + +
+ + <![CDATA[Live Flow errors in your IDE]]> + https://flow.org/blog/2019/10/25/Live-Flow-Errors-in-your-IDE + + 2019-10-25T00:00:00.000Z + + Live errors while you type makes Flow feel faster in your IDE!

]]>
+ + Gabe Levi + +
+ + <![CDATA[Coming Soon: Changes to Object Spreads]]> + https://flow.org/blog/2019/08/20/Changes-to-Object-Spreads + + 2019-08-20T00:00:00.000Z + + Changes are coming to how Flow models object spreads! Learn more in this post.

]]>
+ + Jordan Brown + +
+ + <![CDATA[Upgrading Flow Codebases]]> + https://flow.org/blog/2019/4/9/Upgrading-Flow-Codebases + + 2019-04-09T00:00:00.000Z + + Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!

]]>
+ + Jordan Brown + +
+ + <![CDATA[A More Responsive Flow]]> + https://flow.org/blog/2019/2/8/A-More-Responsive-Flow + + 2019-02-08T00:00:00.000Z + + Flow 0.92 improves on the Flow developer experience.

]]>
+ + Gabe Levi + +
+ + <![CDATA[What the Flow Team Has Been Up To]]> + https://flow.org/blog/2019/1/28/What-the-flow-team-has-been-up-to + + 2019-01-28T00:00:00.000Z + + Take a look at what the Flow was up to in 2018.

]]>
+ + Avik Chaudhuri + +
+ + <![CDATA[Supporting React.forwardRef and Beyond]]> + https://flow.org/blog/2018/12/13/React-Abstract-Component + + 2018-12-13T00:00:00.000Z + + We made some major changes to our React model to better model new React components. Let's +talk about React.AbstractComponent!

]]>
+ + Jordan Brown + +
+ + <![CDATA[Asking for Required Annotations]]> + https://flow.org/blog/2018/10/29/Asking-for-Required-Annotations + + 2018-10-29T00:00:00.000Z + + Flow will be asking for more annotations starting in 0.85.0. Learn how +to deal with these errors in our latest blog post.

]]>
+ + Sam Goldman + +
+ + <![CDATA[On the Roadmap: Exact Objects by Default]]> + https://flow.org/blog/2018/10/18/Exact-Objects-By-Default + + 2018-10-18T00:00:00.000Z + + We are changing object types to be exact by default. We'll be releasing codemods to help you upgrade.

]]>
+ + Jordan Brown + +
+ + <![CDATA[New Flow Errors on Unknown Property Access in Conditionals]]> + https://flow.org/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals + + 2018-03-16T00:00:00.000Z + + TL;DR: Starting in 0.68.0, Flow will now error when you access unknown +properties in conditionals.

]]>
+ + Gabe Levi + +
+ + <![CDATA[Better Flow Error Messages for the JavaScript Ecosystem]]> + https://flow.org/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem + + 2018-02-20T00:00:00.000Z + + Over the last year, the Flow team has been slowly auditing and improving all the +possible error messages generated by the type checker. In Flow 0.66 we’re +excited to announce a new error message format designed to decrease the time it +takes you to read and fix each bug Flow finds.

]]>
+ + Caleb Meredith + +
+ + <![CDATA[Typing Higher-Order Components in Recompose With Flow]]> + https://flow.org/blog/2017/09/03/Flow-Support-in-Recompose + + 2017-09-03T00:00:00.000Z + + One month ago Recompose landed an +official Flow library definition. The definitions were a long time coming, +considering the original PR was created by +@GiulioCanti a year ago.

]]>
+ + Ivan Starkov + +
+ + <![CDATA[Private Object Properties Using Flow’s Opaque Type Aliases]]> + https://flow.org/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases + + 2017-08-25T00:00:00.000Z + + In the last few weeks, a proposal for private class fields in Javascript reached +stage 3. This is going to be a great way to hide implementation details away +from users of your classes. However, locking yourself in to an OOP style of +programming is not always ideal if you prefer a more functional style. Let’s +talk about how you can use Flow’s opaque type aliases to get private properties +on any object type.

]]>
+ + Jordan Brown + +
+ + <![CDATA[Even Better Support for React in Flow]]> + https://flow.org/blog/2017/08/16/Even-Better-Support-for-React-in-Flow + + 2017-08-16T00:00:00.000Z + + The first version of Flow support for React was a magical implementation of +React.createClass(). Since then, React has evolved significantly. It is time +to rethink how Flow models React.

]]>
+ + Caleb Meredith + +
+ + <![CDATA[Linting in Flow]]> + https://flow.org/blog/2017/08/04/Linting-in-Flow + + 2017-08-04T00:00:00.000Z + + Flow’s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter.

]]>
+ + Roger Ballard + +
+ + <![CDATA[Opaque Type Aliases]]> + https://flow.org/blog/2017/07/27/Opaque-Types + + 2017-07-27T00:00:00.000Z + + Do you ever wish that you could hide your implementation details away +from your users? Find out how opaque type aliases can get the job done!

]]>
+ + Jordan Brown + +
+ + <![CDATA[Strict Checking of Function Call Arity]]> + https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity + + 2017-05-07T00:00:00.000Z + + One of Flow's original goals was to be able to understand idiomatic JavaScript. +In JavaScript, you can call a function with more arguments than the function +expects. Therefore, Flow never complained about calling a function with +extraneous arguments.

We are changing this behavior.

What is arity?

A function's arity is the number of arguments it expects. Since some functions +have optional parameters and some use rest parameters, we can define the +minimum arity as the smallest number of arguments it expects and the maximum +arity as the largest number of arguments it expects.

function no_args() {} // arity of 0
function two_args(a, b) {} // arity of 2
function optional_args(a, b?) {} // min arity of 1, max arity of 2
function many_args(a, ...rest) {} // min arity of 1, no max arity

Motivation

Consider the following code:

function add(a, b) { return a + b; }
const sum = add(1, 1, 1, 1);

The author apparently thought the add() function adds up all its +arguments, and that sum will have the value 4. However, only the first two +arguments are summed, and sum actually will have the value 2. This is +obviously a bug, so why doesn't JavaScript or Flow complain?

And while the error in the above example is easy to see, in real code it's often +a lot harder to notice. For example, what is the value of total here:

const total = parseInt("10", 2) + parseFloat("10.1", 2);

"10" in base 2 is 2 in decimal and "10.1" in base 2 is 2.5 in decimal. +So the author probably thought that total would be 4.5. However, the correct +answer is 12.1. parseInt("10", 2) does evaluates to 2, as expected. +However, parseFloat("10.1", 2) evaluates to 10.1. parseFloat() only takes +a single argument. The second argument is ignored!

Why JavaScript allows extraneous arguments

At this point, you might feel like this is just an example of JavaScript making +terrible life decisions. However, this behavior is very convenient in a bunch of +situations!

Callbacks

If you couldn't call a function with more arguments than it handles, then +mapping over an array would look like

const doubled_arr = [1, 2, 3].map((element, index, arr) => element * 2);

When you call Array.prototype.map, you pass in a callback. For each element in +the array, that callback is invoked and passed 3 arguments:

  1. The element
  2. The index of the element
  3. The array over which you're mapping

However, your callback often only needs to reference the first argument: the +element. It's really nice that you can write

const doubled_arr = [1, 2, 3].map(element => element * 2);

Stubbing

Sometimes I come across code like this

let log = () => {};
if (DEBUG) {
log = (message) => console.log(message);
}
log("Hello world");

The idea is that in a development environment, calling log() will output a +message, but in production it does nothing. Since you can call a +function with more arguments than it expects, it is easy to stub out log() in +production.

Variadic functions using arguments

A variadic function is a function that can take an indefinite number of +arguments. The old-school way to write variadic functions in JavaScript is by +using arguments. For example

function sum_all() {
let ret = 0;
for (let i = 0; i < arguments.length; i++) { ret += arguments[i]; }
return ret;
}
const total = sum_all(1, 2, 3); // returns 6

For all intents and purposes, sum_all appears like it takes no arguments. So +even though it appears to have an arity of 0, it is convenient that we can call +it with more arguments.

Changes to Flow

We think we have found a compromise which catches the motivating bugs without +breaking the convenience of JavaScript.

Calling a function

If a function has a maximum arity of N, then Flow will start complaining if you +call it with more than N arguments.

test:1
1: const num = parseFloat("10.5", 2);
^ unused function argument
19: declare function parseFloat(string: mixed): number;
^^^^^^^^^^^^^^^^^^^^^^^ function type expects no more than 1 argument. See lib: <BUILTINS>/core.js:19

Function subtyping

Flow will not change its function subtyping behavior. A function +with a smaller maximum arity is still a subtype of a function with a larger +maximum arity. This allows callbacks to still work as before.

class Array<T> {
...
map<U>(callbackfn: (value: T, index: number, array: Array<T>) => U, thisArg?: any): Array<U>;
...
}
const arr = [1,2,3].map(() => 4); // No error, evaluates to [4,4,4]

In this example, () => number is a subtype of (number, number, Array<number>) => number.

Stubbing and variadic functions

This will, unfortunately, cause Flow to complain about stubs and variadic +functions which are written using arguments. However, you can fix these by +using rest parameters

let log (...rest) => {};

function sum_all(...rest) {
let ret = 0;
for (let i = 0; i < rest.length; i++) { ret += rest[i]; }
return ret;
}

Rollout plan

Flow v0.46.0 will ship with strict function call arity turned off by default. It +can be enabled via your .flowconfig with the flag

experimental.strict_call_arity=true

Flow v0.47.0 will ship with strict function call arity turned on and the +experimental.strict_call_arity flag will be removed.

Why turn this on over two releases?

This decouples the switch to strict checking of function call arity from the +release.

Why not keep the experimental.strict_call_arity flag?

This is a pretty core change. If we kept both behaviors, we'd have to test that +everything works with and without this change. As we add more flags, the number +of combinations grows exponentially, and Flow's behavior gets harder to reason +about. For this reason, we're choosing only one behavior: strict checking of +function call arity.

What do you think?

This change was motivated by feedback from Flow users. We really appreciate +all the members of our community who take the time to share their feedback with +us. This feedback is invaluable and helps us make Flow better, so please keep +it coming!

]]>
+ + Gabe Levi + +
+ + <![CDATA[Introducing Flow-Typed]]> + https://flow.org/blog/2016/10/13/Flow-Typed + + 2016-10-13T00:00:00.000Z + + Having high-quality and community-driven library definitions (“libdefs”) are +important for having a great experience with Flow. Today, we are introducing +flow-typed: A repository and +CLI tool that represent the first parts +of a new workflow for building, sharing, and distributing Flow libdefs.

The goal of this project is to grow an ecosystem of libdefs that +allows Flow's type inference to shine +and that aligns with Flow's mission: To extract precise and accurate types +from real-world JavaScript. We've learned a lot from similar efforts like +DefinitelyTyped for TypeScript and we want to bring some of the lessons we've +learned to the Flow ecosystem.

Here are some of the objectives of this project:

  • Libdefs should be versioned — both against the libraries they describe +and against the version(s) of Flow they are compatible with.
  • Libdefs should meet a high quality bar, including libdef tests to +ensure that their quality persists over time.
  • There must be a straightforward way to contribute libdef improvements over +time and for developers to benefit from those improvements over time.
  • The process of managing libdefs for a Flow project should be automated, +simple, and easy to get right.

Versioned & Tested Libdefs

Anyone can contribute a libdef (or improve on an existing one), but when doing +so it's important that we maintain a high quality bar so that all developers +feel confident in the libdefs they are using. To address this, flow-typed +requires that all libdef contributions are explicitly versioned against both +the version of the library they are describing and the version(s) of Flow the +libdef is compatible with.

Additionally, all libdefs must be accompanied by tests that exercise the +important parts of the API and assert that they yield the correct types. By +including both version information and tests with each libdef, we can +automatically verify in Travis that the tests work as expected for all versions +of Flow a libdef is compatible with. Tests also help to ensure that future +changes to the libdef don't regress its features over time.

Automating Libdef Installation

We've built a simple CLI tool called flow-typed that helps to automate the +process of finding, installing, and upgrading libdefs in your Flow projects. It +uses the explicit version info associated with each libdef to find all +necessary libdefs based on your project's package.json dependencies. This +minimizes the work you need to do in order to pull in and update libdefs in +your projects.

You can get the flow-typed CLI using either yarn (yarn global add flow-typed) +or npm (npm install -g flow-typed).

Installing Libdefs

Installing libdefs from the flow-typed repository is a matter of running a +single command on your project after installing your dependencies:

> yarn install # Or `npm install` if you're old-school :)
> flow-typed install

The flow-typed install command reads your project's package.json file, +queries the flow-typed repository for libdefs matching your dependencies, and +installs the correctly-versioned libdefs into the flow-typed/ directory for +you. By default, Flow knows to look in the flow-typed/ directory for libdefs +— so there is no additional configuration necessary.

Note that it's necessary to run this command after running yarn or +npm install. This is because this command will also generate stub libdefs for +you if one of your dependencies doesn't have types.

Once libdefs have been installed, we recommend that you check them in to your +project's repo. Libdefs in the flow-typed repository may be improved over +time (fixing a bug, more precise types, etc). If this happens for a libdef that +you depend on, you'll want to have control over when that update is applied to +your project. Periodically you can run flow-typed update to download any +libdef updates, verify that your project still typechecks, and the commit the +updates.

Why Not Just Use Npm To Distribute Libdefs?

Over time libdefs in the flow-typed repo may be updated to fix bugs, improve +accuracy, or make use of new Flow features that better describe the types of +the library. As a result, there are really 3 versions that apply to each +libdef: The version of the library being described, the current version of the +libdef in the flow-typed repo, and the version(s) of Flow the libdef is +compatible with.

If an update is made to some libdef that you use in your project after you've +already installed it, there's a good chance that update may find new type +errors in your project that were previously unknown. While it is certainly a +good thing to find errors that were previously missed, you'll want to have +control over when those changes get pulled in to your project.

This is the reason we advise that you commit your installed libdefs to version +control rather than rely on a system like npm+semver to download and install a +non-deterministic semver-ranged version from npm. Checking in your libdefs +ensures that all collaborators on your project have consistent output from Flow +at any given commit in version history.

Building a Community

This is first and foremost a community project. It was started by a community +member (hey @splodingsocks!) and has +already benefitted from hours of work by many others. Moreover, this will +continue to be a community effort: Anyone can create and/or help maintain a +libdef for any npm library. Authors may create libdefs for their packages when +publishing, and/or consumers can create them when someone else hasn't already +done so. Either way, everyone benefits!

We'd like to send a big shout-out to @marudor for +contributing so many of his own libdefs and spending time helping others to +write and contribute libdefs. Additionally we'd like to thank +@ryyppy for helping to design and iterate on the +CLI and installation workflow as well as manage libdef reviews.

The Flow core team intends to stay invested in developing and improving this +project, but in order for it to truly succeed we need your help! If you've +already written some libdefs for Flow projects that you work on, we encourage +you to contribute +them for others to benefit from them as well. By managing libdefs in a +community-driven repository, the community as a whole can work together to +extend Flow's capabilities beyond just explicitly-typed JS.

It's still early days and there's still a lot to do, so we're excited to hear +your ideas/feedback and read your pull requests! :)

Happy typing!

]]>
+ + Jeff Morrison + +
+ + <![CDATA[Property Variance and Other Upcoming Changes]]> + https://flow.org/blog/2016/10/04/Property-Variance + + 2016-10-04T00:00:00.000Z + + The next release of Flow, 0.34, will include a few important changes to object +types:

  • property variance,
  • invariant-by-default dictionary types,
  • covariant-by-default method types,
  • and more flexible getters and setters.

What is Variance?

Defining the subtype relationship between types is a core responsibility of Flow +as a type system. These relationships are determined either directly for +simple types or, for complex types, defined in terms of their parts.

Variance describes the subtyping relationship for complex types as it relates +to the subtyping relationships of their parts.

For example, Flow directly encodes the knowledge that string is a subtype of +?string. Intuitively, a string type contains string values while a ?string +type contains null, undefined, and also string values, so membership in the +former naturally implies membership in the later.

The subtype relationships between two function types is not as direct. Rather, +it is derived from the subtype relationships between the functions' parameter +and return types.

Let's see how this works for two simple function types:

type F1 = (x: P1) => R1;
type F2 = (x: P2) => R2;

Whether F2 is a subtype of F1 depends on the relationships between P1 and +P2 and R1 and R2. Let's use the notation B <: A to mean B is a +subtype of A.

It turns out that F2 <: F1 if P1 <: P2 and R2 <: R1. Notice that the +relationship for parameters is reversed? In technical terms, we can say that +function types are "contravariant" with respect to their parameter types and +"covariant" with respect to their return types.

Let's look at an example:

function f(callback: (x: string) => ?number): number {
return callback("hi") || 0;
}

What kinds of functions can we pass to f? Based on the subtyping rule above, +then we can pass a function whose parameter type is a supertype of string and +whose return type is a subtype of ?number.

function g(x: ?string): number {
return x ? x.length : 0;
}
f(g);

The body of f will only ever pass string values into g, which is safe +because g takes at least string by taking ?string. Conversely, g will +only ever return number values to f, which is safe because f handles at +least number by handling ?number.

Input and Output

One convenient way to remember when something is covariant vs. contravariant is +to think about "input" and "output."

Parameters are in an input position, often called a "negative" position. +Complex types are contravariant in their input positions.

Return is an output position, often called a "positive" position. Complex +types are covariant in their output positions.

Property Invariance

Just as function types are composed of parameter and return types, so too are +object types composed of property types. Thus, the subtyping relationship +between objects is derived from the subtyping relationships of their +properties.

However, unlike functions which have input parameters and an output return, +object properties can be read and written. That is, properties are both input +and output.

Let's see how this works for two simple object types:

type O1 = {p: T1};
type O2 = {p: T2};

As with function types, whether O2 is a subtype of O1 depends on the +relationship between its parts, T1 and T2.

Here it turns out that O2 <: O1 if T2 <: T1 and T1 <: T2. In technical +terms, object types are "invariant" with respect to their property types.

Let's look at an example:

function f(o: {p: ?string}): void {
// We can read p from o
let len: number;
if (o.p) {
len = o.p.length;
} else {
len = 0;
}

// We can also write into p
o.p = null;
}

What kinds of objects can we pass into f, then? If we try to pass in an +object with a subtype property, we get an error:

var o1: {p: string} = {p: ""};
f(o1);
function f(o: {p: ?string}) {}
^ null. This type is incompatible with
var o1: {p: string} = {p: ""};
^ string
function f(o: {p: ?string}) {}
^ undefined. This type is incompatible with
var o1: {p: string} = {p: ""};
^ string

Flow has correctly identified an error here. If the body of f writes null +into o.p, then o1.p would no longer have type string.

If we try to pass an object with a supertype property, we again get an error:

var o2: {p: ?(string|number)} = {p: 0};
f(o2);
var o1: {p: ?(string|number)} = {p: ""};
^ number. This type is incompatible with
function f(o: {p: ?string}) {}
^ string

Again, Flow correctly identifies an error, because if f tried to read p +from o, it would find a number.

Property Variance

So objects have to be invariant with respect to their property types because +properties can be read from and written to. But just because you can read and +write, doesn't mean you always do.

Consider a function that gets the length of an nullable string property:

function f(o: {p: ?string}): number {
return o.p ? o.p.length : 0;
}

We never write into o.p, so we should be able to pass in an object where the +type of property p is a subtype of ?string. Until now, this wasn't possible +in Flow.

With property variance, you can explicitly annotate object properties as being +covariant and contravariant. For example, we can rewrite the above function:

function f(o: {+p: ?string}): number {
return o.p ? o.p.length : 0;
}

var o: {p: string} = {p: ""};
f(o); // no type error!

It's crucial that covariant properties only ever appear in output positions. It +is an error to write to a covariant property:

function f(o: {+p: ?string}) {
o.p = null;
}
o.p = null;
^ object type. Covariant property `p` incompatible with contravariant use in
o.p = null;
^ assignment of property `p`

Conversely, if a function only ever writes to a property, we can annotate the +property as contravariant. This might come up in a function that initializes an +object with default values, for example.

function g(o: {-p: string}): void {
o.p = "default";
}
var o: {p: ?string} = {p: null};
g(o);

Contravariant properties can only ever appear in input positions. It is an +error to read from a contravariant property:

function f(o: {-p: string}) {
o.p.length;
}
o.p.length;
^ object type. Contravariant property `p` incompatible with covariant use in
o.p.length;
^ property `p`

Invariant-by-default Dictionary Types

The object type {[key: string]: ?number} describes an object that can be used +as a map. We can read any property and Flow will infer the result type as +?number. We can also write null or undefined or number into any +property.

In Flow 0.33 and earlier, these dictionary types were treated covariantly by +the type system. For example, Flow accepted the following code:

function f(o: {[key: string]: ?number}) {
o.p = null;
}
declare var o: {p: number};
f(o);

This is unsound because f can overwrite property p with null. In Flow +0.34, dictionaries are invariant, like named properties. The same code now +results in the following type error:

function f(o: {[key: string]: ?number}) {}
^ null. This type is incompatible with
declare var o: {p: number};
^ number
function f(o: {[key: string]: ?number}) {}
^ undefined. This type is incompatible with
declare var o: {p: number};
^ number

Covariant and contravariant dictionaries can be incredibly useful, though. To +support this, the same syntax used to support variance for named properties can +be used for dictionaries as well.

function f(o: {+[key: string]: ?number}) {}
declare var o: {p: number};
f(o); // no type error!

Covariant-by-default Method Types

ES6 gave us a shorthand way to write object properties which are functions.

var o = {
m(x) {
return x * 2
}
}

Flow now interprets properties which use this shorthand method syntax as +covariant by default. This means it is an error to write to the property m.

If you don't want covariance, you can use the long form syntax:

var o = {
m: function(x) {
return x * 2;
}
}

More Flexible Getters and Setters

In Flow 0.33 and earlier, getters and setters had to agree exactly on their +return type and parameter type, respectively. Flow 0.34 lifts that restriction.

This means you can write code like the following:

// @flow
declare var x: string;

var o = {
get x(): string {
return x;
},
set x(value: ?string) {
x = value || "default";
}
}
]]>
+ + Sam Goldman + +
+ + <![CDATA[Windows Support is Here!]]> + https://flow.org/blog/2016/08/01/Windows-Support + + 2016-08-01T00:00:00.000Z + + We are excited to announce that Flow is now officially available on 64-bit +Windows! Starting with +Flow v0.30.0, we will +publish a Windows binary with each release. You can download the Windows binary +in a .zip file directly from the +GitHub releases page or install it +using the flow-bin npm package. Try +it out and report any issues you +come across!

![Windows Support GIF]({{ site.baseurl }}/static/windows.gif)

Getting Flow working on Windows was not easy, and it was made possible by the +hard work of Grégoire, +Çagdas and +Fabrice from +OCamlPro.

Getting Started with Windows

Getting Started with flow-bin on Windows

Does your JavaScript project use npm to manage dependencies? Well, then the +easiest way for you to install Flow is with npm! Just run

> npm install --save-dev flow-bin

(Note: on Windows, it is recommended to use npm v3, to avoid the long +node_modules paths that npm v2 creates)

This will install the +flow-bin npm package and +automatically add it to your package.json. Once installed, there are a few ways +to use the Flow binary. One is to use ./node_modules/.bin/flow directly. For +example, every Flow project needs a .flowconfig file in the root directory. +If you don't already have a .flowconfig, you could create it with Powershell, +like

> New-Item .flowconfig

or you could run the flow init command, using ./node_modules/.bin/flow

> ./node_modules/.bin/flow init

Another way to run Flow is via an npm script. In your package.json file, there +is a "scripts" section. Maybe it looks like this:

"scripts": {
"test": "make test"
}

You can run the Flow binary directly from a script by referencing flow in a +script, like so:

"scripts": {
"test": "make test",
"flow_check": "flow check || exit 0"
}

and then running that script via npm run

> npm run flow_check

(Note: the || exit 0 part of the script is optional, but npm run will show +an error message if the script finishes with a non-zero exit code)

You can also install flow-bin globally with

> npm install --global flow-bin

Getting Started with flow.exe

Each GitHub release of Flow +starting with v0.30.0 will have a zipped Windows binary. For example, the +v0.30.0 release +includes flow-win64-v0.30.0.zip. +If you download and unzip that, you will find a flow/ directory, which +contains flow.exe. flow.exe is the Flow binary, so if you put that +somewhere in your path, and you should be good to go.

> mkdir demo
> cd demo
> flow.exe init
> "/* @flow */ var x: number = true;" | Out-File -Encoding ascii test.js
> flow.exe check
test.js:1
1: /* @flow */ var x: number = true;
^^^^ boolean. This type is incompatible with

1: /* @flow */ var x: number = true;
^^^^^^ number
]]>
+ + Gabe Levi + +
+ + <![CDATA[New Implementation of Unions and Intersections]]> + https://flow.org/blog/2016/07/01/New-Unions-Intersections + + 2016-07-01T00:00:00.000Z + + Summary

Before Flow 0.28, the implementation of union/intersection types had serious +bugs and was the root cause of +a lot of weird behaviors you +may have run into with Flow in the past. These bugs have now been addressed in +a diff landing in 0.28.

As you might expect after a major rewrite of a tricky part of the type system +implementation, there will be a short period of adjustment: you may run into +kinks that we will try to iron out promptly, and you may run into some +unfamiliar error messages.

New Error Messages

<error location> Could not decide which case to select
<location of union/intersection type>

Case 1 may work:
<location of 1st case of union/intersection type>

But if it doesn't, case 2 looks promising too:
<location of 2nd case of union/intersection type>

Please provide additional annotation(s) to determine whether case 1 works
(or consider merging it with case 2):
<location to annotate>
<location to annotate>
...

What this means is that at <error location>, Flow needs to make a choice: one +of the members of the union/intersection type at +<location of union/intersection type> must be applied, but Flow can't choose +safely based on available information. In particular, it cannot decide between +case 1 and 2, so Flow lists a bunch of annotations that can help it +disambiguate the two cases.

Actions Needed

You can fix the errors in two ways:

  • Actually go and annotate the listed locations. This should be by far the most +common fix.
  • Discover that there is real, unintentional ambiguity between case 1 and 2, +and rewrite the two cases in the union type to remove the ambiguity. When +this happens, typically it will fix a large number of errors.

There are two more possibilities, however:

  • There's no real ambiguity and Flow is being too conservative / dumb. In this +case, go ahead and do the annotations anyway and file an issue on GitHub. We +plan to do a lot of short-term follow-up work to disambiguate more cases +automatically, so over time you should see less of (3).
  • You have no idea what's going on. The cases being pointed to don't make sense. +They don't correspond to what you have at <error location>. Hopefully you +won't run into (4) too often, but if you do please file an issue, since +this means there are still latent bugs in the implementation.

If you file an issue on GitHub, please include code to reproduce the issue. You +can use Try Flow to share your repro case easily.

If you're curious about the whys and hows of these new error messages, here's +an excerpt from the commit message of the "fate of the union" diff:

Problem

Flow's inference engine is designed to find more errors over time as +constraints are added...but it is not designed to backtrack. Unfortunately, +checking the type of an expression against a union type does need backtracking: +if some branch of the union doesn't work out, the next branch must be tried, +and so on. (The same is true for checks that involve intersection types.)

The situation is further complicated by the fact that the type of the +expression may not be completely known at the point of checking, so that a +branch that looks promising now might turn out to be incorrect later.

Solution

The basic idea is to delay trying a branch until a point where we can decide +whether the branch will definitely fail or succeed, without further +information. If trying a branch results in failure, we can move on to the next +branch without needing to backtrack. If a branch succeeds, we are done. The +final case is where the branch looks promising, but we cannot be sure without +adding constraints: in this case we try other branches, and bail when we run +into ambiguities...requesting additional annotations to decide which branch to +select. Overall, this means that (1) we never commit to a branch that might +turn out to be incorrect and (2) can always select a correct branch (if such +exists) given enough annotations.

]]>
+ + Sam Goldman + +
+ + <![CDATA[Version 0.21.0]]> + https://flow.org/blog/2016/02/02/Version-0.21.0 + + 2016-02-02T00:00:00.000Z + + Yesterday we deployed Flow v0.21.0! As always, we've listed out the most +interesting changes in the +Changelog. +However, since I'm on a plane and can't sleep, I thought it might be fun to +dive into a couple of the changes! Hope this blog post turns out interesting +and legible!

JSX Intrinsics

If you're writing JSX, it's probably a mix of your own React Components and +some intrinsics. For example, you might write

render() {
return <div><FluffyBunny name="Fifi" /></div>;
}

In this example, FluffyBunny is a React Component you wrote and div is a +JSX intrinsic. Lower-cased JSX elements are assumed to be intrinsics by React +and by Flow. Up until Flow v0.21.0, Flow ignored intrinsics and gave them the +type any. This meant Flow let you set any property on JSX intrinsics. Flow +v0.21.0 will, by default, do the same thing as v0.20.0, However now you can +also configure Flow to properly type your JSX intrinsics!

Example of how to use JSX intrinsics

.flowconfig

[libs]
myLib.js

myLib.js

// JSXHelper is a type alias to make this example more concise.
// There's nothing special or magic here.
// JSXHelper<{name: string}> is a React component
// with the single string property "name", which has a default
type JSXHelper<T> = Class<ReactComponent<T,T,mixed>>;

// $JSXIntrinsics is special and magic.
// This declares the types for `div` and `span`
type $JSXIntrinsics = {
div: JSXHelper<{id: string}>,
span: JSXHelper<{id: string, class: string}>,
};

myCode.js

<div id="asdf" />; // No error
<div id={42} />; // Error: `id` prop is a string, not a number!

What is going on here?

The new bit of magic is this $JSXIntrinsics type alias. When Flow sees +<foo /> it will look to see if $JSXIntrinsics exists and if so will grab +the type of $JSXIntrinsics['foo']. It will use this type to figure out which +properties are available and need to be set.

We haven't hardcoded the intrinsics into Flow since the available intrinsics +will depend on your environment. For example, React native would have different +intrinsics than React for the web would.

Smarter string refinements

One of the main ways that we make Flow smarter is by teaching it to recognize +more ways that JavaScript programmers refine types. Here's an example of a +common way to refine nullable values:

class Person {
name: ?string;
...
getName(): string {
// Before the if, this.name could be null, undefined, or a string
if (this.name != null) {
// But now the programmer has refined this.name to definitely be a string
return this.name;
}
// And now we know that this.name is null or undefined.
return 'You know who';
}
}

New string refinements

In v0.21.0, one of the refinements we added is the ability to refine types by +comparing them to strings.

This is useful for refining unions of string literals into string literals

function test(x: 'foo' | 'bar'): 'foo' {
if (x === 'foo') {
// Now Flow understands that x has the type 'foo'
return x;
} else {
return 'foo';
}
}

And can also narrow the value of strings:

function test(x: string): 'foo' {
if (x === 'foo') {
// Now Flow knows x has the type 'foo'
return x;
} else {
return 'foo';
}
}

This is one of the many refinements that Flow currently can recognize and +follow, and we'll keep adding more! Stay tuned!

]]>
+ + Gabe Levi + +
+ + <![CDATA[Version-0.19.0]]> + https://flow.org/blog/2015/12/01/Version-0.19.0 + + 2015-12-01T00:00:00.000Z + + Flow v0.19.0 was deployed today! It has a ton of changes, which the +Changelog +summarizes. The Changelog can be a little concise, though, so here are some +longer explanations for some of the changes. Hope this helps!

@noflow

Flow is opt-in by default (you add @flow to a file). However we noticed that +sometimes people would add Flow annotations to files that were missing @flow. +Often, these people didn't notice that the file was being ignored by Flow. So +we decided to stop allowing Flow syntax in non-Flow files. This is easily fixed +by adding either @flow or @noflow to your file. The former will make the +file a Flow file. The latter will tell Flow to completely ignore the file.

Declaration files

Files that end with .flow are now treated specially. They are the preferred +provider of modules. That is if both foo.js and foo.js.flow exist, then +when you write import Foo from './foo', Flow will use the type exported from +foo.js.flow rather than foo.js.

We imagine two main ways people will use .flow files.

  1. As interface files. Maybe you have some library coolLibrary.js that is +really hard to type with inline Flow types. You could put +coolLibrary.js.flow next to it and declare the types that coolLibrary.js +exports.

    // coolLibrary.js.flow
    declare export var coolVar: number;
    declare export function coolFunction(): void;
    declare export class coolClass {}
  2. As the original source. Maybe you want to ship the minified, transformed +version of awesomeLibrary.js, but people who use awesomeLibrary.js also +use Flow. Well you could do something like

    cp awesomeLibraryOriginalCode.js awesomeLibrary.js.flow
    babel awesomeLibraryOriginalCode --out-file awesomeLibrary.js

Order of precedence for lib files

Now your local lib files will override the builtin lib files. Is one of the +builtin flow libs wrong? Send a pull request! But then while you're waiting for +the next release, you can use your own definition! The order of precedence is +as follows:

  1. Any paths supplied on the command line via --lib
  2. The files found in the paths specified in the .flowconfig [libs] (in +listing order)
  3. The Flow core library files

For example, if I want to override the builtin definition of Array and instead +use my own version, I could update my .flowconfig to contain

// .flowconfig
[libs]
myArray.js
// myArray.js
declare class Array<T> {
// Put whatever you like in here!
}

Deferred initialization

Previously the following code was an error, because the initialization of +myString happens later. Now Flow is fine with it.

function foo(someFlag: boolean): string {
var myString:string;
if (someFlag) {
myString = "yup";
} else {
myString = "nope";
}
return myString;
}
]]>
+ + Gabe Levi + +
+ + <![CDATA[Typing Generators with Flow]]> + https://flow.org/blog/2015/11/09/Generators + + 2015-11-09T00:00:00.000Z + + Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an upcoming feature already supported by Flow.

So much wonderful material has already been produced describing generators. I am going to focus on the interaction of static typing with generators. Please refer to the following materials for information about generators:

  • Jafar Husain gave an incredibly lucid and well-illustrated talk that covers generators. I have linked to the point where he gets into generators, but I highly recommend the entire talk.
  • Exploring ES6, a comprehensive book by Axel Rauschmayer, who has generously made the contents available for free online, has a chapter on generators.
  • The venerable MDN has a useful page describing the Iterator interface and generators.

In Flow, the Generator interface has three type parameters: Yield, Return, and Next. Yield is the type of values which are yielded from the generator function. Return is the type of the value which is returned from the generator function. Next is the type of values which are passed into the generator via the next method on the Generator itself. For example, a generator value of type Generator<string,number,boolean> will yield strings, return a number, and will receive booleans from its caller.

For any type T, a Generator<T,void,void> is both an Iterable<T> and an Iterator<T>.

The unique nature of generators allows us to represent infinite sequences naturally. Consider the infinite sequence of natural numbers:

function *nats() {
let i = 0;
while (true) {
yield i++;
}
}

Because generators are also iterators, we can manually iterate the generator:

const gen = nats();
console.log(gen.next()); // { done: false, value: 0 }
console.log(gen.next()); // { done: false, value: 1 }
console.log(gen.next()); // { done: false, value: 2 }

When done is false, value will have the generator's Yield type. When done is true, value will have the generator's Return type or void if the consumer iterates past the completion value.

function *test() {
yield 1;
return "complete";
}
const gen = test();
console.log(gen.next()); // { done: false, value: 1 }
console.log(gen.next()); // { done: true, value: "complete" }
console.log(gen.next()); // { done: true, value: undefined }

Because of this behavior, manually iterating poses typing difficulties. Let's try to take the first 10 values from the nats generator through manual iteration:

const gen = nats();
const take10: number[] = [];
for (let i = 0; i < 10; i++) {
const { done, value } = gen.next();
if (done) {
break;
} else {
take10.push(value); // error!
}
}
test.js:13
13: const { done, value } = gen.next();
^^^^^^^^^^ call of method `next`
17: take10.push(value); // error!
^^^^^ undefined. This type is incompatible with
11: const take10: number[] = [];
^^^^^^ number

Flow is complaining that value might be undefined. This is because the type of value is Yield | Return | void, which simplifies in the instance of nats to number | void. We can introduce a dynamic type test to convince Flow of the invariant that value will always be number when done is false.

const gen = nats();
const take10: number[] = [];
for (let i = 0; i < 10; i++) {
const { done, value } = gen.next();
if (done) {
break;
} else {
if (typeof value === "undefined") {
throw new Error("`value` must be a number.");
}
take10.push(value); // no error
}
}

There is an open issue which would make the dynamic type test above unnecessary, by using the done value as a sentinel to refine a tagged union. That is, when done is true, Flow would know that value is always of type Yield and otherwise of type Return | void.

Even without the dynamic type test, this code is quite verbose and it's hard to see the intent. Because generators are also iterable, we can also use for...of loops:

const take10: number[] = [];
let i = 0;
for (let nat of nats()) {
if (i === 10) break;
take10.push(nat);
i++;
}

That's much better. The for...of looping construct ignores completion values, so Flow understands that nat will always be number. Let's generalize this pattern further using generator functions:

function *take<T>(n: number, xs: Iterable<T>): Iterable<T> {
if (n <= 0) return;
let i = 0;
for (let x of xs) {
yield x;
if (++i === n) return;
}
}

for (let n of take(10, nats())) {
console.log(n); // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
}

Note that we explicitly annotated the parameters and return type of the take generator. This is necessary to ensure Flow understands the fully generic type. This is because Flow does not currently infer a fully generic type, but instead accumulates lower bounds, resulting in a union type.

function identity(x) { return x }
var a: string = identity(""); // error
var b: number = identity(0); // error

The above code produces errors because Flow adds string and number as lower bounds to the type variable describing the type of the value bound by x. That is, Flow believes the type of identity is (x: string | number) => string | number because those are the types which actually passed through the function.

Another important feature of generators is the ability to pass values into the generator from the consumer. Let's consider a generator scan, which reduces values passed into the generator using a provided function. Our scan is similar to Array.prototype.reduce, but it returns each intermediate value and the values are provided imperatively via next.

As a first pass, we might write this:

function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
let acc = init;
while (true) {
const next = yield acc;
acc = f(acc, next);
}
}

We can use this definition to implement an imperative sum procedure:

let sum = scan(0, (a,b) => a + b);
console.log(sum.next()); // { done: false, value: 0 }
console.log(sum.next(1)); // { done: false, value: 1 }
console.log(sum.next(2)); // { done: false, value: 3 }
console.log(sum.next(3)); // { done: false, value: 6 }

However, when we try to check the above definition of scan, Flow complains:

test.js:7
7: acc = f(acc, next);
^^^^^^^^^^^^ function call
7: acc = f(acc, next);
^^^^ undefined. This type is incompatible with
3: function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
^ some incompatible instantiation of T

Flow is complaining that our value, next, may be void instead of the expected T, which is number in the sum example. This behavior is necessary to ensure type safety. In order to prime the generator, our consumer must first call next without an argument. To accommodate this, Flow understands the argument to next to be optional. This means Flow will allow the following code:

let sum = scan(0, (a,b) => a + b);
console.log(sum.next()); // first call primes the generator
console.log(sum.next()); // we should pass a value, but don't need to

In general, Flow doesn't know which invocation is "first." While it should be an error to pass a value to the first next, and an error to not pass a value to subsequent nexts, Flow compromises and forces your generator to deal with a potentially void value. In short, given a generator of type Generator<Y,R,N> and a value x of type Y, the type of the expression yield x is N | void.

We can update our definition to use a dynamic type test that enforces the non-void invariant at runtime:

function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
let acc = init;
while (true) {
const next = yield acc;
if (typeof next === "undefined") {
throw new Error("Caller must provide an argument to `next`.");
}
acc = f(acc, next);
}
}

There is one more important caveat when dealing with typed generators. Every value yielded from the generator must be described by a single type. Similarly, every value passed to the generator via next must be described by a single type.

Consider the following generator:

function *foo() {
yield 0;
yield "";
}

const gen = foo();
const a: number = gen.next().value; // error
const b: string = gen.next().value; // error

This is perfectly legal JavaScript and the values a and b do have the correct types at runtime. However, Flow rejects this program. Our generator's Yield type parameter has a concrete type of number | string. The value property of the iterator result object has the type number | string | void.

We can observe similar behavior for values passed into the generator:

function *bar() {
var a = yield;
var b = yield;
return {a,b};
}

const gen = bar();
gen.next(); // prime the generator
gen.next(0);
const ret: { a: number, b: string } = gen.next("").value; // error

The value ret has the annotated type at runtime, but Flow also rejects this program. Our generator's Next type parameter has a concrete type of number | string. The value property of the iterator result object thus has the type void | { a: void | number | string, b: void | number | string }.

While it may be possible to use dynamic type tests to resolve these issues, another practical option is to use any to take on the type safety responsibility yourself.

function *bar(): Generator {
var a = yield;
var b = yield;
return {a,b};
}

const gen = bar();
gen.next(); // prime the generator
gen.next(0);
const ret: void | { a: number, b: string } = gen.next("").value; // OK

(Note that the annotation Generator is equivalent to Generator<any,any,any>.)

Phew! I hope that this will help you use generators in your own code. I also hope this gave you a little insight into the difficulties of applying static analysis to a highly dynamic language such as JavaScript.

To summarize, here are some of the lessons we've learned for using generators in statically typed JS:

  • Use generators to implement custom iterables.
  • Use dynamic type tests to unpack the optional return type of yield expressions.
  • Avoid generators that yield or receive values of multiple types, or use any.
]]>
+ + Sam Goldman + +
+ + <![CDATA[Version-0.17.0]]> + https://flow.org/blog/2015/10/07/Version-0.17.0 + + 2015-10-07T00:00:00.000Z + + Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:

![New error format]({{ site.baseurl }}/static/new_error_format_v0_17_0.png)

This should hopefully help our command line users understand many errors without having to refer to their source code. We'll keep iterating on this format, so tell us what you like and what you don't like! Thanks to @frantic for building this feature!

There are a whole bunch of other features and fixes in this release! Head on over to our Release for the full list!

]]>
+ + Gabe Levi + +
+ + <![CDATA[Version-0.16.0]]> + https://flow.org/blog/2015/09/22/Version-0.16.0 + + 2015-09-22T00:00:00.000Z + + On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again @samwgoldman)!

As always, the Changelog is best at summing up the big changes.

]]>
+ + Jeff Morrison + +
+ + <![CDATA[Version-0.15.0]]> + https://flow.org/blog/2015/09/10/Version-0.15.0 + + 2015-09-10T00:00:00.000Z + + Today we released Flow v0.15.0! A lot has changed in the last month and we're excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!

Check out the Changelog to see what's new.

]]>
+ + Gabe Levi + +
+ + <![CDATA[Version-0.14.0]]> + https://flow.org/blog/2015/07/29/Version-0.14.0 + + 2015-07-29T00:00:00.000Z + + It has come to our attention that not everyone obsessively checks GitHub for Flow releases. This came as a surprise, but we would like to support these users too. Therefore, we will start announcing each Flow release on the blog, starting with this release.

So here is Flow v0.14.0! Check out the Changelog for the canonical list of what has changed.

]]>
+ + Gabe Levi + +
+ + <![CDATA[Announcing Disjoint Unions]]> + https://flow.org/blog/2015/07/03/Disjoint-Unions + + 2015-07-03T00:00:00.000Z + + Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:

  • Specifying such data by a set of disjoint cases, distinguished by “tags”, where each tag is associated with a different “record” of properties. (These descriptions are called “disjoint union” or “variant” types.)
  • Doing case analysis on such data, by checking tags and then directly accessing the associated record of properties. (The common way to do such case analysis is by pattern matching.)

Examples of programs that analyze or transform such data range from compilers working with abstract syntax trees, to operations that may return exceptional values, with much more in between!

As of Flow 0.13.1 it is now possible to program in this style in JavaScript in a type-safe manner. You can define a disjoint union of object types and do case analysis on objects of that type by switching on the value of some common property (called a "sentinel") in those object types.

Flow's syntax for disjoint unions looks like:

type BinaryTree =
{ kind: "leaf", value: number } |
{ kind: "branch", left: BinaryTree, right: BinaryTree }

function sumLeaves(tree: BinaryTree): number {
if (tree.kind === "leaf") {
return tree.value;
} else {
return sumLeaves(tree.left) + sumLeaves(tree.right);
}
}

The problem

Consider the following function that returns different objects depending on the data passed into it:

type Result = { status: string, errorCode?: number }

function getResult(op): Result {
var statusCode = op();
if (statusCode === 0) {
return { status: 'done' };
} else {
return { status: 'error', errorCode: statusCode };
}
}

The result contains a status property that is either 'done' or 'error', +and an optional errorCode property that holds a numeric status code when the +status is 'error'.

One may now try to write another function that gets the error code from a result:

function getErrorCode(result: Result): number {
switch (result.status) {
case 'error':
return result.errorCode;
default:
return 0;
}
}

Unfortunately, this code does not typecheck. The Result type does not precisely +capture the relationship between the status property and the errorCode property. +Namely it doesn't capture that when the status property is 'error', the errorCode +property will be present and defined on the object. As a result, Flow thinks that +result.errorCode in the above function may return undefined instead of number.

Prior to version 0.13.1 there was no way to express this relationship, which meant +that it was not possible to check the type safety of this simple, familiar idiom!

The solution

As of version 0.13.1 it is possible to write a more precise type for Result +that better captures the intent and helps Flow narrow down the possible shapes +of an object based on the outcome of a dynamic === check. Now, we can write:

type Result = Done | Error
type Done = { status: 'done' }
type Error = { status: 'error', errorCode: number }

In other words, we can explicitly list out the possible shapes of results. These +cases are distinguished by the value of the status property. Note that here +we use the string literal types 'done' and 'error'. These match exactly the strings +'done' and 'error', which means that === checks on those values are enough for +Flow to narrow down the corresponding type cases. With this additional reasoning, the +function getErrorCode now typechecks, without needing any changes to the code!

In addition to string literals, Flow also supports number literals as singleton types +so they can also be used in disjoint unions and case analyses.

Why we built this

Disjoint unions are at the heart of several good programming practices pervasive in functional programming languages. Supporting them in Flow means that JavaScript can use these practices in a type-safe manner. For example, disjoint unions can be used to write type-safe Flux dispatchers. They are also heavily used in a recently released reference implementation of GraphQL.

]]>
+ + Avik Chaudhuri + +
+ + <![CDATA[Announcing Bounded Polymorphism]]> + https://flow.org/blog/2015/03/12/Bounded-Polymorphism + + 2015-03-12T00:00:00.000Z + + As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow's bounded polymorphism syntax looks like

class BagOfBones<T: Bone> { ... }
function eat<T: Food>(meal: T): Indigestion<T> { ... }

The problem

Consider the following code that defines a polymorphic function in Flow:

function fooBad<T>(obj: T): T {
console.log(Math.abs(obj.x));
return obj;
}

This code does not (and should not!) type check. Not all values obj: T have a property x, let alone a property x that is a number, given the additional requirement imposed by Math.abs().

But what if you wanted T to not range over all types, but instead over only the types of objects with an x property that has the type number? Intuitively, given that condition, the body should type check. Unfortunately, the only way you could enforce this condition prior to Flow 0.5.0 was by giving up on polymorphism entirely! For example you could write:

// Old lame workaround
function fooStillBad(obj: { x: number }): {x: number } {
console.log(Math.abs(obj.x));
return obj;
}

But while this change would make the body type check, it would cause Flow to lose information across call sites. For example:

// The return type of fooStillBad() is {x: number}
// so Flow thinks result has the type {x: number}
var result = fooStillBad({x: 42, y: "oops"});

// This will be an error since result's type
// doesn't have a property "y"
var test: {x: number; y: string} = result;

The solution

As of version 0.5.0, such typing problems can be solved elegantly using bounded polymorphism. Type parameters such as T can specify bounds that constrain the types that the type parameters range over. For example, we can write:

function fooGood<T: { x: number }>(obj: T): T {
console.log(Math.abs(obj.x));
return obj;
}

Now the body type checks under the assumption that T is a subtype of { x: number }. Furthermore, no information is lost across call sites. Using the example from above:

// With bounded polymorphism, Flow knows the return
// type is {x: number; y: string}
var result = fooGood({x: 42, y: "yay"});

// This works!
var test: {x: number; y: string} = result;

Of course, polymorphic classes may also specify bounds. For example, the following code type checks:

class Store<T: { x: number }> {
obj: T;
constructor(obj: T) { this.obj = obj; }
foo() { console.log(Math.abs(this.obj.x)); }
}

Instantiations of the class are appropriately constrained. If you write

var store = new Store({x: 42, y: "hi"});

Then store.obj has type {x: number; y: string}.

Any type may be used as a type parameter's bound. The type does not need to be an object type (as in the examples above). It may even be another type parameter that is in scope. For example, consider adding the following method to the above Store class:

class Store<T: { x: number }> {
...
bar<U: T>(obj: U): U {
this.obj = obj;
console.log(Math.abs(obj.x));
return obj;
}
}

Since U is a subtype of T, the method body type checks (as you may expect, U must also satisfy T's bound, by transitivity of subtyping). Now the following code type checks:

  // store is a Store<{x: number; y: string}>
var store = new Store({x: 42, y: "yay"});

var result = store.bar({x: 0, y: "hello", z: "world"});

// This works!
var test: {x: number; y: string; z: string } = result;

Also, in a polymorphic definition with multiple type parameters, any type parameter may appear in the bound of any following type parameter. This is useful for type checking examples like the following:

function copyArray<T, S: T>(from: Array<S>, to: Array<T>) {
from.forEach(elem => to.push(elem));
}

Why we built this

The addition of bounded polymorphism significantly increases the expressiveness of Flow's type system, by enabling signatures and definitions to specify relationships between their type parameters, without having to sacrifice the benefits of generics. We expect that the increased expressiveness will be particularly useful to library writers, and will also allow us to write better declarations for framework APIs such as those provided by React.

Transformations

Like type annotations and other Flow features, polymorphic function and class definitions need to be transformed before the code can be run. The transforms are available in react-tools 0.13.0, which was recently released

]]>
+ + Avik Chaudhuri + +
+ + <![CDATA[Announcing Flow Comments]]> + https://flow.org/blog/2015/02/20/Flow-Comments + + 2015-02-20T00:00:00.000Z + + As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can't fit a Flow-stripping transformation into their setup. This was one of our most requested features and hopefully it will enable even more people to use Flow!

This feature introduces 3 special comments: /*:, /*::, and /*flow-include. Flow will read the code inside these special comments and treat the code as if the special comment tokens didn't exist. These special comments are valid JavaScript block comments, so your JavaScript engine will ignore the code inside the comments.

The Flow Comment Syntax

There are 3 special comments that Flow currently supports. You may recognize this syntax from Jarno Rantanen's excellent project, flotate.

1. /*:

/*: <your code> */ is interpreted by Flow as : <your code>

function foo(x/*: number*/)/* : string */ { ... }

is interpreted by Flow as

function foo(x: number): string { ... }

but appears to the JavaScript engine (ignoring comments) as

function foo(x) { ... }

2. /*::

/*:: <your code> */ is interpreted by Flow as <your code>

/*:: type foo = number; */

is interpreted by Flow as

type foo = number;

but appears to the runtime (ignoring comments) as


3. /*flow-include

/*flow-include <your code> */ is interpreted by Flow as <your code>. It behaves the same as /*::

/*flow-include type foo = number; */

is interpreted by Flow as

type foo = number;

but appears to the runtime (ignoring comments) as


Note: whitespace is ignored after the /* but before the :, ::, or flow-include. So you can write things like

/* : number */
/* :: type foo = number */
/* flow-include type foo = number */

Future Work

We plan to update our Flow transformation to wrap Flow syntax with these special comments, rather than stripping it away completely. This will help people write Flow code but publish code that works with or without Flow.

Thanks

Special thanks to Jarno Rantanen for building flotate and supporting us merging his syntax upstream into Flow.

]]>
+ + Gabe Levi + +
+ + <![CDATA[Announcing Import Type]]> + https://flow.org/blog/2015/02/18/Import-Types + + 2015-02-18T00:00:00.000Z + + As of Flow 0.3.0, it's now possible to import types from another module. So, for example, if you're only importing a class for purposes of referencing it in a type annotation, you can now use the new import type syntax to do this.

Motivation

Has this ever happened to you:

// @flow

// Post-transformation lint error: Unused variable 'URI'
import URI from "URI";

// But if you delete the require you get a Flow error:
// identifier URI - Unknown global name
module.exports = function(x: URI): URI {
return x;
}

Now you have an out! To solve this problem (and with an eye toward a near future with ES6 module syntax), we've added the new import type syntax. With import type, you can convey what you really mean here — that you want to import the type of the class and not really the class itself.

Enter Import Type

So instead of the above code, you can now write this:

// @flow

import type URI from 'URI';
module.exports = function(x: URI): URI {
return x;
};

If you have a module that exports multiple classes (like, say, a Crayon and a Marker class), you can import the type for each of them together or separately like this:

// @flow

import type {Crayon, Marker} from 'WritingUtensils';
module.exports = function junkDrawer(x: Crayon, y: Marker): void {}

Transformations

Like type annotations and other Flow features, import type need to be transformed away before the code can be run. The transforms will be available in react-tools 0.13.0 when it is published soon, but for now they're available in 0.13.0-beta.2, which you can install with

npm install react-tools@0.13.0-beta.2

Anticipatory Q&A

Wait, but what happens at runtime after I've added an import type declaration?

Nothing! All import type declarations get stripped away just like other flow syntax.

Can I use import type to pull in type aliases from another module, too?

Not quite yet...but soon! There are a few other moving parts that we need to build first, but we're working on it.

EDIT: Yes! As of Flow 0.10 you can use the export type MyType = ... ; syntax to compliment the import type syntax. Here's a trivial example:

// @flow

// MyTypes.js
export type UserID = number;
export type User = {
id: UserID,
firstName: string,
lastName: string
};
// @flow

// User.js
import type {UserID, User} from "MyTypes";

function getUserID(user: User): UserID {
return user.id;
}

Note that we only support the explicit named-export statements for now (i.e. export type UserID = number;). In a future version we can add support for latent named-export statements (i.e. type UserID = number; export {UserID};) and default type exports (i.e. export default type MyType = ... ;)...but for now these forms aren't yet supported for type exports.

]]>
+ + Jeff Morrison + +
+ + <![CDATA[Announcing Typecasts]]> + https://flow.org/blog/2015/02/18/Typecasts + + 2015-02-18T00:00:00.000Z + + As of version 0.3.0, Flow supports typecast expression.

A typecast expression is a simple way to type-annotate any JavaScript expression. Here are some examples of typecasts:

(1 + 1 : number);
var a = { name: (null: ?string) };
([1, 'a', true]: Array<mixed>).map(fn);

For any JavaScript expression <expr> and any Flow type <type>, you can write

(<expr> : <type>)

Note: the parentheses are necessary.

How Typecasts Work

To evaluate a typecast expression, Flow will first check that <expr> is a <type>.

(1+1: number); // this is fine
(1+1: string); // but this is is an error

Second, Flow will infer that the typecast expression (<expr>: <type>) has the type <type>.

[(0: ?number)]; // Flow will infer the type Array<?number>
[0]; // Without the typecast, Flow infers the type Array<number>

Safety

Typecasts obey the same rules as other type annotations, so they provide the same safety guarantees. This means they are safe unless you explicitly use the any type to defeat Flow's typechecking. Here are examples of upcasting (which is allowed), downcasting (which is forbidden), and using any.

class Base {}
class Child extends Base {}
var child: Child = new Child();

// Upcast from Child to Base, a more general type: OK
var base: Base = new Child();

// Upcast from Child to Base, a more general type: OK
(child: Base);

// Downcast from Base to Child: unsafe, ERROR
(base: Child);

// Upcast base to any then downcast any to Child.
// Unsafe downcasting from any is allowed: OK
((base: any): Child);

More examples

Typecasts are particularly useful to check assumptions and help Flow infer the types you intend. Here are some examples:

(x: number) // Make Flow check that x is a number
(0: ?number) // Tells Flow that this expression is actually nullable.
(null: ?number) // Tells Flow that this expression is a nullable number.

Transformations

Like type annotations and other Flow features, typecasts need to be transformed away before the code can be run. The transforms will be available in react-tools 0.13.0 when it is published soon, but for now they're available in 0.13.0-beta.2, which you can install with

npm install react-tools@0.13.0-beta.2
]]>
+ + Basil Hosmer + +
+
\ No newline at end of file diff --git a/blog/index.html b/blog/index.html new file mode 100644 index 00000000000..08dcd168b34 --- /dev/null +++ b/blog/index.html @@ -0,0 +1,97 @@ + + + + + +Blog | Flow + + + + + + + + + + + + + + +
+

As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous, +because errors are potentially unhandled, and the code may not execute in the intended order. They are +usually mistakes that Flow is perfectly positioned to warn you about.

Local Type Inference makes Flow’s inference behavior more reliable and predictable, by modestly increasing Flow’s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases.

Flow handled the empty object literal {} in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior.

Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated.

Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type.

Flow’s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type.

Improvements in soundness for this-typing in Flow, including the ability to annotate this on functions and methods.

Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them.

Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!

We made some major changes to our React model to better model new React components. Let's +talk about React.AbstractComponent!

Flow will be asking for more annotations starting in 0.85.0. Learn how +to deal with these errors in our latest blog post.

Over the last year, the Flow team has been slowly auditing and improving all the +possible error messages generated by the type checker. In Flow 0.66 we’re +excited to announce a new error message format designed to decrease the time it +takes you to read and fix each bug Flow finds.

In the last few weeks, a proposal for private class fields in Javascript reached +stage 3. This is going to be a great way to hide implementation details away +from users of your classes. However, locking yourself in to an OOP style of +programming is not always ideal if you prefer a more functional style. Let’s +talk about how you can use Flow’s opaque type aliases to get private properties +on any object type.

The first version of Flow support for React was a magical implementation of +React.createClass(). Since then, React has evolved significantly. It is time +to rethink how Flow models React.

Flow’s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter.

Do you ever wish that you could hide your implementation details away +from your users? Find out how opaque type aliases can get the job done!

Strict Checking of Function Call Arity

One of Flow's original goals was to be able to understand idiomatic JavaScript. +In JavaScript, you can call a function with more arguments than the function +expects. Therefore, Flow never complained about calling a function with +extraneous arguments.

We are changing this behavior.

Introducing Flow-Typed

Having high-quality and community-driven library definitions (“libdefs”) are +important for having a great experience with Flow. Today, we are introducing +flow-typed: A repository and +CLI tool that represent the first parts +of a new workflow for building, sharing, and distributing Flow libdefs.

The goal of this project is to grow an ecosystem of libdefs that +allows Flow's type inference to shine +and that aligns with Flow's mission: To extract precise and accurate types +from real-world JavaScript. We've learned a lot from similar efforts like +DefinitelyTyped for TypeScript and we want to bring some of the lessons we've +learned to the Flow ecosystem.

Here are some of the objectives of this project:

Property Variance and Other Upcoming Changes

The next release of Flow, 0.34, will include a few important changes to object +types:

  • property variance,
  • invariant-by-default dictionary types,
  • covariant-by-default method types,
  • and more flexible getters and setters.

Windows Support is Here!

We are excited to announce that Flow is now officially available on 64-bit +Windows! Starting with +Flow v0.30.0, we will +publish a Windows binary with each release. You can download the Windows binary +in a .zip file directly from the +GitHub releases page or install it +using the flow-bin npm package. Try +it out and report any issues you +come across!

![Windows Support GIF]({{ site.baseurl }}/static/windows.gif)

Getting Flow working on Windows was not easy, and it was made possible by the +hard work of Grégoire, +Çagdas and +Fabrice from +OCamlPro.

New Implementation of Unions and Intersections

Summary

Before Flow 0.28, the implementation of union/intersection types had serious +bugs and was [the][gh1759] [root][gh1664] [cause][gh1663] [of][gh1462] +[a][gh1455] [lot][gh1371] [of][gh1349] [weird][gh842] [behaviors][gh815] you +may have run into with Flow in the past. These bugs have now been addressed in +[a diff landing in 0.28][fotu].

Version 0.21.0

Yesterday we deployed Flow v0.21.0! As always, we've listed out the most +interesting changes in the +Changelog. +However, since I'm on a plane and can't sleep, I thought it might be fun to +dive into a couple of the changes! Hope this blog post turns out interesting +and legible!

JSX Intrinsics

If you're writing JSX, it's probably a mix of your own React Components and +some intrinsics. For example, you might write

render() {
return <div><FluffyBunny name="Fifi" /></div>;
}

In this example, FluffyBunny is a React Component you wrote and div is a +JSX intrinsic. Lower-cased JSX elements are assumed to be intrinsics by React +and by Flow. Up until Flow v0.21.0, Flow ignored intrinsics and gave them the +type any. This meant Flow let you set any property on JSX intrinsics. Flow +v0.21.0 will, by default, do the same thing as v0.20.0, However now you can +also configure Flow to properly type your JSX intrinsics!

Version-0.19.0

Flow v0.19.0 was deployed today! It has a ton of changes, which the +Changelog +summarizes. The Changelog can be a little concise, though, so here are some +longer explanations for some of the changes. Hope this helps!

@noflow

Flow is opt-in by default (you add @flow to a file). However we noticed that +sometimes people would add Flow annotations to files that were missing @flow. +Often, these people didn't notice that the file was being ignored by Flow. So +we decided to stop allowing Flow syntax in non-Flow files. This is easily fixed +by adding either @flow or @noflow to your file. The former will make the +file a Flow file. The latter will tell Flow to completely ignore the file.

Declaration files

Files that end with .flow are now treated specially. They are the preferred +provider of modules. That is if both foo.js and foo.js.flow exist, then +when you write import Foo from './foo', Flow will use the type exported from +foo.js.flow rather than foo.js.

We imagine two main ways people will use .flow files.

Typing Generators with Flow

Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an upcoming feature already supported by Flow.

Version-0.17.0

Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:

![New error format]({{ site.baseurl }}/static/new_error_format_v0_17_0.png)

This should hopefully help our command line users understand many errors without having to refer to their source code. We'll keep iterating on this format, so tell us what you like and what you don't like! Thanks to @frantic for building this feature!

There are a whole bunch of other features and fixes in this release! Head on over to our Release for the full list!

Version-0.16.0

On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again @samwgoldman)!

As always, the Changelog is best at summing up the big changes.

Version-0.15.0

Today we released Flow v0.15.0! A lot has changed in the last month and we're excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!

Check out the Changelog to see what's new.

Version-0.14.0

It has come to our attention that not everyone obsessively checks GitHub for Flow releases. This came as a surprise, but we would like to support these users too. Therefore, we will start announcing each Flow release on the blog, starting with this release.

So here is Flow v0.14.0! Check out the Changelog for the canonical list of what has changed.

Announcing Disjoint Unions

Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:

  • Specifying such data by a set of disjoint cases, distinguished by “tags”, where each tag is associated with a different “record” of properties. (These descriptions are called “disjoint union” or “variant” types.)
  • Doing case analysis on such data, by checking tags and then directly accessing the associated record of properties. (The common way to do such case analysis is by pattern matching.)

Examples of programs that analyze or transform such data range from compilers working with abstract syntax trees, to operations that may return exceptional values, with much more in between!

As of Flow 0.13.1 it is now possible to program in this style in JavaScript in a type-safe manner. You can define a disjoint union of object types and do case analysis on objects of that type by switching on the value of some common property (called a "sentinel") in those object types.

Flow's syntax for disjoint unions looks like:

type BinaryTree =
{ kind: "leaf", value: number } |
{ kind: "branch", left: BinaryTree, right: BinaryTree }

function sumLeaves(tree: BinaryTree): number {
if (tree.kind === "leaf") {
return tree.value;
} else {
return sumLeaves(tree.left) + sumLeaves(tree.right);
}
}
+ + + + \ No newline at end of file diff --git a/blog/page/2/index.html b/blog/page/2/index.html new file mode 100644 index 00000000000..ed9572cfd67 --- /dev/null +++ b/blog/page/2/index.html @@ -0,0 +1,26 @@ + + + + + +Blog | Flow + + + + + + + + + + + + + + +
+

Announcing Bounded Polymorphism

As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow's bounded polymorphism syntax looks like

class BagOfBones<T: Bone> { ... }
function eat<T: Food>(meal: T): Indigestion<T> { ... }

The problem

Consider the following code that defines a polymorphic function in Flow:

function fooBad<T>(obj: T): T {
console.log(Math.abs(obj.x));
return obj;
}

This code does not (and should not!) type check. Not all values obj: T have a property x, let alone a property x that is a number, given the additional requirement imposed by Math.abs().

Announcing Flow Comments

As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can't fit a Flow-stripping transformation into their setup. This was one of our most requested features and hopefully it will enable even more people to use Flow!

This feature introduces 3 special comments: /*:, /*::, and /*flow-include. Flow will read the code inside these special comments and treat the code as if the special comment tokens didn't exist. These special comments are valid JavaScript block comments, so your JavaScript engine will ignore the code inside the comments.

Announcing Import Type

As of Flow 0.3.0, it's now possible to import types from another module. So, for example, if you're only importing a class for purposes of referencing it in a type annotation, you can now use the new import type syntax to do this.

Motivation

Has this ever happened to you:

// @flow

// Post-transformation lint error: Unused variable 'URI'
import URI from "URI";

// But if you delete the require you get a Flow error:
// identifier URI - Unknown global name
module.exports = function(x: URI): URI {
return x;
}

Now you have an out! To solve this problem (and with an eye toward a near future with ES6 module syntax), we've added the new import type syntax. With import type, you can convey what you really mean here — that you want to import the type of the class and not really the class itself.

Announcing Typecasts

As of version 0.3.0, Flow supports typecast expression.

A typecast expression is a simple way to type-annotate any JavaScript expression. Here are some examples of typecasts:

(1 + 1 : number);
var a = { name: (null: ?string) };
([1, 'a', true]: Array<mixed>).map(fn);

For any JavaScript expression <expr> and any Flow type <type>, you can write

(<expr> : <type>)

Note: the parentheses are necessary.

+ + + + \ No newline at end of file diff --git a/blog/rss.xml b/blog/rss.xml new file mode 100644 index 00000000000..4950e43754a --- /dev/null +++ b/blog/rss.xml @@ -0,0 +1,753 @@ + + + + Flow Blog + https://flow.org/blog + Flow Blog + Thu, 17 Aug 2023 00:00:00 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + + <![CDATA[Announcing 5 new Flow tuple type features]]> + https://flow.org/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features + https://flow.org/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features + Thu, 17 Aug 2023 00:00:00 GMT + + Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more.

]]>
+
+ + <![CDATA[Flow can now detect unused Promises]]> + https://flow.org/blog/2023/04/10/Unused-Promise + https://flow.org/blog/2023/04/10/Unused-Promise + Mon, 10 Apr 2023 00:00:00 GMT + + As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous, +because errors are potentially unhandled, and the code may not execute in the intended order. They are +usually mistakes that Flow is perfectly positioned to warn you about.

]]>
+
+ + <![CDATA[Announcing Partial & Required Flow utility types + catch annotations]]> + https://flow.org/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations + https://flow.org/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations + Wed, 15 Mar 2023 00:00:00 GMT + + Starting in Flow version 0.201, make an object type’s fields all optional using Partial<ObjType> (use instead of the unsafe $Shape), +and make an object type’s optional fields required with Required<ObjType>.

]]>
+
+ + <![CDATA[Exact object types by default, by default]]> + https://flow.org/blog/2023/02/16/Exact-object-types-by-default-by-default + https://flow.org/blog/2023/02/16/Exact-object-types-by-default-by-default + Thu, 16 Feb 2023 00:00:00 GMT + + We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan.

]]>
+
+ + <![CDATA[Local Type Inference for Flow]]> + https://flow.org/blog/2023/01/17/Local-Type-Inference + https://flow.org/blog/2023/01/17/Local-Type-Inference + Tue, 17 Jan 2023 00:00:00 GMT + + Local Type Inference makes Flow’s inference behavior more reliable and predictable, by modestly increasing Flow’s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases.

]]>
+
+ + <![CDATA[Improved handling of the empty object in Flow]]> + https://flow.org/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow + https://flow.org/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow + Thu, 20 Oct 2022 00:00:00 GMT + + Flow handled the empty object literal {} in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior.

]]>
+
+ + <![CDATA[Requiring More Annotations to Functions and Classes in Flow]]> + https://flow.org/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes + https://flow.org/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes + Fri, 30 Sep 2022 00:00:00 GMT + + Flow will now require more annotations to functions and classes.

]]>
+
+ + <![CDATA[New Flow Language Rule: Constrained Writes]]> + https://flow.org/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes + https://flow.org/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes + Fri, 05 Aug 2022 00:00:00 GMT + + Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated.

]]>
+
+ + <![CDATA[Introducing: Local Type Inference for Flow]]> + https://flow.org/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow + https://flow.org/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow + Mon, 27 Sep 2021 00:00:00 GMT + + We're replacing Flow’s current inference engine with a system that behaves more predictably and can be reasoned about more locally.

]]>
+
+ + <![CDATA[Introducing Flow Enums]]> + https://flow.org/blog/2021/09/13/Introducing-Flow-Enums + https://flow.org/blog/2021/09/13/Introducing-Flow-Enums + Mon, 13 Sep 2021 00:00:00 GMT + + Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type.

]]>
+
+ + <![CDATA[TypeScript Enums vs. Flow Enums]]> + https://flow.org/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums + https://flow.org/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums + Mon, 13 Sep 2021 00:00:00 GMT + + A comparison of the enums features of TypeScript and Flow.

]]>
+
+ + <![CDATA[Introducing Flow Indexed Access Types]]> + https://flow.org/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types + https://flow.org/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types + Wed, 21 Jul 2021 00:00:00 GMT + + Flow’s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type.

]]>
+
+ + <![CDATA[Sound Typing for 'this' in Flow]]> + https://flow.org/blog/2021/06/02/Sound-Typing-for-this-in-Flow + https://flow.org/blog/2021/06/02/Sound-Typing-for-this-in-Flow + Wed, 02 Jun 2021 00:00:00 GMT + + Improvements in soundness for this-typing in Flow, including the ability to annotate this on functions and methods.

]]>
+
+ + <![CDATA[Clarity on Flow's Direction and Open Source Engagement]]> + https://flow.org/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement + https://flow.org/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement + Tue, 25 May 2021 00:00:00 GMT + + An update on Flow's direction and open source engagement.

]]>
+
+ + <![CDATA[Types-First the only supported mode in Flow (Jan 2021)]]> + https://flow.org/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow + https://flow.org/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow + Tue, 01 Dec 2020 00:00:00 GMT + + Types-First will become the only mode in Flow in v0.143 (mid Jan 2021).

]]>
+
+ + <![CDATA[Flow's Improved Handling of Generic Types]]> + https://flow.org/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types + https://flow.org/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types + Mon, 16 Nov 2020 00:00:00 GMT + + Flow has improved its handling of generic types by banning unsafe behaviors previously allowed and clarifying error messages.

]]>
+
+ + <![CDATA[Types-First: A Scalable New Architecture for Flow]]> + https://flow.org/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow + https://flow.org/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow + Mon, 18 May 2020 00:00:00 GMT + + Flow Types-First mode is out! It unlocks Flow’s potential at scale by leveraging fully typed module boundaries. Read more in our latest blog post.

]]>
+
+ + <![CDATA[Making Flow error suppressions more specific]]> + https://flow.org/blog/2020/03/16/Making-Flow-error-suppressions-more-specific + https://flow.org/blog/2020/03/16/Making-Flow-error-suppressions-more-specific + Mon, 16 Mar 2020 00:00:00 GMT + + We’re improving Flow error suppressions so that they don’t accidentally hide errors.

]]>
+
+ + <![CDATA[What we’re building in 2020]]> + https://flow.org/blog/2020/03/09/What-were-building-in-2020 + https://flow.org/blog/2020/03/09/What-were-building-in-2020 + Mon, 09 Mar 2020 00:00:00 GMT + + Learn about how Flow will improve in 2020.

]]>
+
+ + <![CDATA[Improvements to Flow in 2019]]> + https://flow.org/blog/2020/02/19/Improvements-to-Flow-in-2019 + https://flow.org/blog/2020/02/19/Improvements-to-Flow-in-2019 + Wed, 19 Feb 2020 00:00:00 GMT + + Take a look back at improvements we made to Flow in 2019.

]]>
+
+ + <![CDATA[How to upgrade to exact-by-default object type syntax]]> + https://flow.org/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax + https://flow.org/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax + Wed, 29 Jan 2020 00:00:00 GMT + + Object types will become exact-by-default. Read this post to learn how to get your code ready!

]]>
+
+ + <![CDATA[Spreads: Common Errors & Fixes]]> + https://flow.org/blog/2019/10/30/Spreads-Common-Errors-and-Fixes + https://flow.org/blog/2019/10/30/Spreads-Common-Errors-and-Fixes + Wed, 30 Oct 2019 00:00:00 GMT + + Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them.

]]>
+
+ + <![CDATA[Live Flow errors in your IDE]]> + https://flow.org/blog/2019/10/25/Live-Flow-Errors-in-your-IDE + https://flow.org/blog/2019/10/25/Live-Flow-Errors-in-your-IDE + Fri, 25 Oct 2019 00:00:00 GMT + + Live errors while you type makes Flow feel faster in your IDE!

]]>
+
+ + <![CDATA[Coming Soon: Changes to Object Spreads]]> + https://flow.org/blog/2019/08/20/Changes-to-Object-Spreads + https://flow.org/blog/2019/08/20/Changes-to-Object-Spreads + Tue, 20 Aug 2019 00:00:00 GMT + + Changes are coming to how Flow models object spreads! Learn more in this post.

]]>
+
+ + <![CDATA[Upgrading Flow Codebases]]> + https://flow.org/blog/2019/4/9/Upgrading-Flow-Codebases + https://flow.org/blog/2019/4/9/Upgrading-Flow-Codebases + Tue, 09 Apr 2019 00:00:00 GMT + + Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!

]]>
+
+ + <![CDATA[A More Responsive Flow]]> + https://flow.org/blog/2019/2/8/A-More-Responsive-Flow + https://flow.org/blog/2019/2/8/A-More-Responsive-Flow + Fri, 08 Feb 2019 00:00:00 GMT + + Flow 0.92 improves on the Flow developer experience.

]]>
+
+ + <![CDATA[What the Flow Team Has Been Up To]]> + https://flow.org/blog/2019/1/28/What-the-flow-team-has-been-up-to + https://flow.org/blog/2019/1/28/What-the-flow-team-has-been-up-to + Mon, 28 Jan 2019 00:00:00 GMT + + Take a look at what the Flow was up to in 2018.

]]>
+
+ + <![CDATA[Supporting React.forwardRef and Beyond]]> + https://flow.org/blog/2018/12/13/React-Abstract-Component + https://flow.org/blog/2018/12/13/React-Abstract-Component + Thu, 13 Dec 2018 00:00:00 GMT + + We made some major changes to our React model to better model new React components. Let's +talk about React.AbstractComponent!

]]>
+
+ + <![CDATA[Asking for Required Annotations]]> + https://flow.org/blog/2018/10/29/Asking-for-Required-Annotations + https://flow.org/blog/2018/10/29/Asking-for-Required-Annotations + Mon, 29 Oct 2018 00:00:00 GMT + + Flow will be asking for more annotations starting in 0.85.0. Learn how +to deal with these errors in our latest blog post.

]]>
+
+ + <![CDATA[On the Roadmap: Exact Objects by Default]]> + https://flow.org/blog/2018/10/18/Exact-Objects-By-Default + https://flow.org/blog/2018/10/18/Exact-Objects-By-Default + Thu, 18 Oct 2018 00:00:00 GMT + + We are changing object types to be exact by default. We'll be releasing codemods to help you upgrade.

]]>
+
+ + <![CDATA[New Flow Errors on Unknown Property Access in Conditionals]]> + https://flow.org/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals + https://flow.org/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals + Fri, 16 Mar 2018 00:00:00 GMT + + TL;DR: Starting in 0.68.0, Flow will now error when you access unknown +properties in conditionals.

]]>
+
+ + <![CDATA[Better Flow Error Messages for the JavaScript Ecosystem]]> + https://flow.org/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem + https://flow.org/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem + Tue, 20 Feb 2018 00:00:00 GMT + + Over the last year, the Flow team has been slowly auditing and improving all the +possible error messages generated by the type checker. In Flow 0.66 we’re +excited to announce a new error message format designed to decrease the time it +takes you to read and fix each bug Flow finds.

]]>
+
+ + <![CDATA[Typing Higher-Order Components in Recompose With Flow]]> + https://flow.org/blog/2017/09/03/Flow-Support-in-Recompose + https://flow.org/blog/2017/09/03/Flow-Support-in-Recompose + Sun, 03 Sep 2017 00:00:00 GMT + + One month ago Recompose landed an +official Flow library definition. The definitions were a long time coming, +considering the original PR was created by +@GiulioCanti a year ago.

]]>
+
+ + <![CDATA[Private Object Properties Using Flow’s Opaque Type Aliases]]> + https://flow.org/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases + https://flow.org/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases + Fri, 25 Aug 2017 00:00:00 GMT + + In the last few weeks, a proposal for private class fields in Javascript reached +stage 3. This is going to be a great way to hide implementation details away +from users of your classes. However, locking yourself in to an OOP style of +programming is not always ideal if you prefer a more functional style. Let’s +talk about how you can use Flow’s opaque type aliases to get private properties +on any object type.

]]>
+
+ + <![CDATA[Even Better Support for React in Flow]]> + https://flow.org/blog/2017/08/16/Even-Better-Support-for-React-in-Flow + https://flow.org/blog/2017/08/16/Even-Better-Support-for-React-in-Flow + Wed, 16 Aug 2017 00:00:00 GMT + + The first version of Flow support for React was a magical implementation of +React.createClass(). Since then, React has evolved significantly. It is time +to rethink how Flow models React.

]]>
+
+ + <![CDATA[Linting in Flow]]> + https://flow.org/blog/2017/08/04/Linting-in-Flow + https://flow.org/blog/2017/08/04/Linting-in-Flow + Fri, 04 Aug 2017 00:00:00 GMT + + Flow’s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter.

]]>
+
+ + <![CDATA[Opaque Type Aliases]]> + https://flow.org/blog/2017/07/27/Opaque-Types + https://flow.org/blog/2017/07/27/Opaque-Types + Thu, 27 Jul 2017 00:00:00 GMT + + Do you ever wish that you could hide your implementation details away +from your users? Find out how opaque type aliases can get the job done!

]]>
+
+ + <![CDATA[Strict Checking of Function Call Arity]]> + https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity + https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity + Sun, 07 May 2017 00:00:00 GMT + + One of Flow's original goals was to be able to understand idiomatic JavaScript. +In JavaScript, you can call a function with more arguments than the function +expects. Therefore, Flow never complained about calling a function with +extraneous arguments.

We are changing this behavior.

What is arity?

A function's arity is the number of arguments it expects. Since some functions +have optional parameters and some use rest parameters, we can define the +minimum arity as the smallest number of arguments it expects and the maximum +arity as the largest number of arguments it expects.

function no_args() {} // arity of 0
function two_args(a, b) {} // arity of 2
function optional_args(a, b?) {} // min arity of 1, max arity of 2
function many_args(a, ...rest) {} // min arity of 1, no max arity

Motivation

Consider the following code:

function add(a, b) { return a + b; }
const sum = add(1, 1, 1, 1);

The author apparently thought the add() function adds up all its +arguments, and that sum will have the value 4. However, only the first two +arguments are summed, and sum actually will have the value 2. This is +obviously a bug, so why doesn't JavaScript or Flow complain?

And while the error in the above example is easy to see, in real code it's often +a lot harder to notice. For example, what is the value of total here:

const total = parseInt("10", 2) + parseFloat("10.1", 2);

"10" in base 2 is 2 in decimal and "10.1" in base 2 is 2.5 in decimal. +So the author probably thought that total would be 4.5. However, the correct +answer is 12.1. parseInt("10", 2) does evaluates to 2, as expected. +However, parseFloat("10.1", 2) evaluates to 10.1. parseFloat() only takes +a single argument. The second argument is ignored!

Why JavaScript allows extraneous arguments

At this point, you might feel like this is just an example of JavaScript making +terrible life decisions. However, this behavior is very convenient in a bunch of +situations!

Callbacks

If you couldn't call a function with more arguments than it handles, then +mapping over an array would look like

const doubled_arr = [1, 2, 3].map((element, index, arr) => element * 2);

When you call Array.prototype.map, you pass in a callback. For each element in +the array, that callback is invoked and passed 3 arguments:

  1. The element
  2. The index of the element
  3. The array over which you're mapping

However, your callback often only needs to reference the first argument: the +element. It's really nice that you can write

const doubled_arr = [1, 2, 3].map(element => element * 2);

Stubbing

Sometimes I come across code like this

let log = () => {};
if (DEBUG) {
log = (message) => console.log(message);
}
log("Hello world");

The idea is that in a development environment, calling log() will output a +message, but in production it does nothing. Since you can call a +function with more arguments than it expects, it is easy to stub out log() in +production.

Variadic functions using arguments

A variadic function is a function that can take an indefinite number of +arguments. The old-school way to write variadic functions in JavaScript is by +using arguments. For example

function sum_all() {
let ret = 0;
for (let i = 0; i < arguments.length; i++) { ret += arguments[i]; }
return ret;
}
const total = sum_all(1, 2, 3); // returns 6

For all intents and purposes, sum_all appears like it takes no arguments. So +even though it appears to have an arity of 0, it is convenient that we can call +it with more arguments.

Changes to Flow

We think we have found a compromise which catches the motivating bugs without +breaking the convenience of JavaScript.

Calling a function

If a function has a maximum arity of N, then Flow will start complaining if you +call it with more than N arguments.

test:1
1: const num = parseFloat("10.5", 2);
^ unused function argument
19: declare function parseFloat(string: mixed): number;
^^^^^^^^^^^^^^^^^^^^^^^ function type expects no more than 1 argument. See lib: <BUILTINS>/core.js:19

Function subtyping

Flow will not change its function subtyping behavior. A function +with a smaller maximum arity is still a subtype of a function with a larger +maximum arity. This allows callbacks to still work as before.

class Array<T> {
...
map<U>(callbackfn: (value: T, index: number, array: Array<T>) => U, thisArg?: any): Array<U>;
...
}
const arr = [1,2,3].map(() => 4); // No error, evaluates to [4,4,4]

In this example, () => number is a subtype of (number, number, Array<number>) => number.

Stubbing and variadic functions

This will, unfortunately, cause Flow to complain about stubs and variadic +functions which are written using arguments. However, you can fix these by +using rest parameters

let log (...rest) => {};

function sum_all(...rest) {
let ret = 0;
for (let i = 0; i < rest.length; i++) { ret += rest[i]; }
return ret;
}

Rollout plan

Flow v0.46.0 will ship with strict function call arity turned off by default. It +can be enabled via your .flowconfig with the flag

experimental.strict_call_arity=true

Flow v0.47.0 will ship with strict function call arity turned on and the +experimental.strict_call_arity flag will be removed.

Why turn this on over two releases?

This decouples the switch to strict checking of function call arity from the +release.

Why not keep the experimental.strict_call_arity flag?

This is a pretty core change. If we kept both behaviors, we'd have to test that +everything works with and without this change. As we add more flags, the number +of combinations grows exponentially, and Flow's behavior gets harder to reason +about. For this reason, we're choosing only one behavior: strict checking of +function call arity.

What do you think?

This change was motivated by feedback from Flow users. We really appreciate +all the members of our community who take the time to share their feedback with +us. This feedback is invaluable and helps us make Flow better, so please keep +it coming!

]]>
+
+ + <![CDATA[Introducing Flow-Typed]]> + https://flow.org/blog/2016/10/13/Flow-Typed + https://flow.org/blog/2016/10/13/Flow-Typed + Thu, 13 Oct 2016 00:00:00 GMT + + Having high-quality and community-driven library definitions (“libdefs”) are +important for having a great experience with Flow. Today, we are introducing +flow-typed: A repository and +CLI tool that represent the first parts +of a new workflow for building, sharing, and distributing Flow libdefs.

The goal of this project is to grow an ecosystem of libdefs that +allows Flow's type inference to shine +and that aligns with Flow's mission: To extract precise and accurate types +from real-world JavaScript. We've learned a lot from similar efforts like +DefinitelyTyped for TypeScript and we want to bring some of the lessons we've +learned to the Flow ecosystem.

Here are some of the objectives of this project:

  • Libdefs should be versioned — both against the libraries they describe +and against the version(s) of Flow they are compatible with.
  • Libdefs should meet a high quality bar, including libdef tests to +ensure that their quality persists over time.
  • There must be a straightforward way to contribute libdef improvements over +time and for developers to benefit from those improvements over time.
  • The process of managing libdefs for a Flow project should be automated, +simple, and easy to get right.

Versioned & Tested Libdefs

Anyone can contribute a libdef (or improve on an existing one), but when doing +so it's important that we maintain a high quality bar so that all developers +feel confident in the libdefs they are using. To address this, flow-typed +requires that all libdef contributions are explicitly versioned against both +the version of the library they are describing and the version(s) of Flow the +libdef is compatible with.

Additionally, all libdefs must be accompanied by tests that exercise the +important parts of the API and assert that they yield the correct types. By +including both version information and tests with each libdef, we can +automatically verify in Travis that the tests work as expected for all versions +of Flow a libdef is compatible with. Tests also help to ensure that future +changes to the libdef don't regress its features over time.

Automating Libdef Installation

We've built a simple CLI tool called flow-typed that helps to automate the +process of finding, installing, and upgrading libdefs in your Flow projects. It +uses the explicit version info associated with each libdef to find all +necessary libdefs based on your project's package.json dependencies. This +minimizes the work you need to do in order to pull in and update libdefs in +your projects.

You can get the flow-typed CLI using either yarn (yarn global add flow-typed) +or npm (npm install -g flow-typed).

Installing Libdefs

Installing libdefs from the flow-typed repository is a matter of running a +single command on your project after installing your dependencies:

> yarn install # Or `npm install` if you're old-school :)
> flow-typed install

The flow-typed install command reads your project's package.json file, +queries the flow-typed repository for libdefs matching your dependencies, and +installs the correctly-versioned libdefs into the flow-typed/ directory for +you. By default, Flow knows to look in the flow-typed/ directory for libdefs +— so there is no additional configuration necessary.

Note that it's necessary to run this command after running yarn or +npm install. This is because this command will also generate stub libdefs for +you if one of your dependencies doesn't have types.

Once libdefs have been installed, we recommend that you check them in to your +project's repo. Libdefs in the flow-typed repository may be improved over +time (fixing a bug, more precise types, etc). If this happens for a libdef that +you depend on, you'll want to have control over when that update is applied to +your project. Periodically you can run flow-typed update to download any +libdef updates, verify that your project still typechecks, and the commit the +updates.

Why Not Just Use Npm To Distribute Libdefs?

Over time libdefs in the flow-typed repo may be updated to fix bugs, improve +accuracy, or make use of new Flow features that better describe the types of +the library. As a result, there are really 3 versions that apply to each +libdef: The version of the library being described, the current version of the +libdef in the flow-typed repo, and the version(s) of Flow the libdef is +compatible with.

If an update is made to some libdef that you use in your project after you've +already installed it, there's a good chance that update may find new type +errors in your project that were previously unknown. While it is certainly a +good thing to find errors that were previously missed, you'll want to have +control over when those changes get pulled in to your project.

This is the reason we advise that you commit your installed libdefs to version +control rather than rely on a system like npm+semver to download and install a +non-deterministic semver-ranged version from npm. Checking in your libdefs +ensures that all collaborators on your project have consistent output from Flow +at any given commit in version history.

Building a Community

This is first and foremost a community project. It was started by a community +member (hey @splodingsocks!) and has +already benefitted from hours of work by many others. Moreover, this will +continue to be a community effort: Anyone can create and/or help maintain a +libdef for any npm library. Authors may create libdefs for their packages when +publishing, and/or consumers can create them when someone else hasn't already +done so. Either way, everyone benefits!

We'd like to send a big shout-out to @marudor for +contributing so many of his own libdefs and spending time helping others to +write and contribute libdefs. Additionally we'd like to thank +@ryyppy for helping to design and iterate on the +CLI and installation workflow as well as manage libdef reviews.

The Flow core team intends to stay invested in developing and improving this +project, but in order for it to truly succeed we need your help! If you've +already written some libdefs for Flow projects that you work on, we encourage +you to contribute +them for others to benefit from them as well. By managing libdefs in a +community-driven repository, the community as a whole can work together to +extend Flow's capabilities beyond just explicitly-typed JS.

It's still early days and there's still a lot to do, so we're excited to hear +your ideas/feedback and read your pull requests! :)

Happy typing!

]]>
+
+ + <![CDATA[Property Variance and Other Upcoming Changes]]> + https://flow.org/blog/2016/10/04/Property-Variance + https://flow.org/blog/2016/10/04/Property-Variance + Tue, 04 Oct 2016 00:00:00 GMT + + The next release of Flow, 0.34, will include a few important changes to object +types:

  • property variance,
  • invariant-by-default dictionary types,
  • covariant-by-default method types,
  • and more flexible getters and setters.

What is Variance?

Defining the subtype relationship between types is a core responsibility of Flow +as a type system. These relationships are determined either directly for +simple types or, for complex types, defined in terms of their parts.

Variance describes the subtyping relationship for complex types as it relates +to the subtyping relationships of their parts.

For example, Flow directly encodes the knowledge that string is a subtype of +?string. Intuitively, a string type contains string values while a ?string +type contains null, undefined, and also string values, so membership in the +former naturally implies membership in the later.

The subtype relationships between two function types is not as direct. Rather, +it is derived from the subtype relationships between the functions' parameter +and return types.

Let's see how this works for two simple function types:

type F1 = (x: P1) => R1;
type F2 = (x: P2) => R2;

Whether F2 is a subtype of F1 depends on the relationships between P1 and +P2 and R1 and R2. Let's use the notation B <: A to mean B is a +subtype of A.

It turns out that F2 <: F1 if P1 <: P2 and R2 <: R1. Notice that the +relationship for parameters is reversed? In technical terms, we can say that +function types are "contravariant" with respect to their parameter types and +"covariant" with respect to their return types.

Let's look at an example:

function f(callback: (x: string) => ?number): number {
return callback("hi") || 0;
}

What kinds of functions can we pass to f? Based on the subtyping rule above, +then we can pass a function whose parameter type is a supertype of string and +whose return type is a subtype of ?number.

function g(x: ?string): number {
return x ? x.length : 0;
}
f(g);

The body of f will only ever pass string values into g, which is safe +because g takes at least string by taking ?string. Conversely, g will +only ever return number values to f, which is safe because f handles at +least number by handling ?number.

Input and Output

One convenient way to remember when something is covariant vs. contravariant is +to think about "input" and "output."

Parameters are in an input position, often called a "negative" position. +Complex types are contravariant in their input positions.

Return is an output position, often called a "positive" position. Complex +types are covariant in their output positions.

Property Invariance

Just as function types are composed of parameter and return types, so too are +object types composed of property types. Thus, the subtyping relationship +between objects is derived from the subtyping relationships of their +properties.

However, unlike functions which have input parameters and an output return, +object properties can be read and written. That is, properties are both input +and output.

Let's see how this works for two simple object types:

type O1 = {p: T1};
type O2 = {p: T2};

As with function types, whether O2 is a subtype of O1 depends on the +relationship between its parts, T1 and T2.

Here it turns out that O2 <: O1 if T2 <: T1 and T1 <: T2. In technical +terms, object types are "invariant" with respect to their property types.

Let's look at an example:

function f(o: {p: ?string}): void {
// We can read p from o
let len: number;
if (o.p) {
len = o.p.length;
} else {
len = 0;
}

// We can also write into p
o.p = null;
}

What kinds of objects can we pass into f, then? If we try to pass in an +object with a subtype property, we get an error:

var o1: {p: string} = {p: ""};
f(o1);
function f(o: {p: ?string}) {}
^ null. This type is incompatible with
var o1: {p: string} = {p: ""};
^ string
function f(o: {p: ?string}) {}
^ undefined. This type is incompatible with
var o1: {p: string} = {p: ""};
^ string

Flow has correctly identified an error here. If the body of f writes null +into o.p, then o1.p would no longer have type string.

If we try to pass an object with a supertype property, we again get an error:

var o2: {p: ?(string|number)} = {p: 0};
f(o2);
var o1: {p: ?(string|number)} = {p: ""};
^ number. This type is incompatible with
function f(o: {p: ?string}) {}
^ string

Again, Flow correctly identifies an error, because if f tried to read p +from o, it would find a number.

Property Variance

So objects have to be invariant with respect to their property types because +properties can be read from and written to. But just because you can read and +write, doesn't mean you always do.

Consider a function that gets the length of an nullable string property:

function f(o: {p: ?string}): number {
return o.p ? o.p.length : 0;
}

We never write into o.p, so we should be able to pass in an object where the +type of property p is a subtype of ?string. Until now, this wasn't possible +in Flow.

With property variance, you can explicitly annotate object properties as being +covariant and contravariant. For example, we can rewrite the above function:

function f(o: {+p: ?string}): number {
return o.p ? o.p.length : 0;
}

var o: {p: string} = {p: ""};
f(o); // no type error!

It's crucial that covariant properties only ever appear in output positions. It +is an error to write to a covariant property:

function f(o: {+p: ?string}) {
o.p = null;
}
o.p = null;
^ object type. Covariant property `p` incompatible with contravariant use in
o.p = null;
^ assignment of property `p`

Conversely, if a function only ever writes to a property, we can annotate the +property as contravariant. This might come up in a function that initializes an +object with default values, for example.

function g(o: {-p: string}): void {
o.p = "default";
}
var o: {p: ?string} = {p: null};
g(o);

Contravariant properties can only ever appear in input positions. It is an +error to read from a contravariant property:

function f(o: {-p: string}) {
o.p.length;
}
o.p.length;
^ object type. Contravariant property `p` incompatible with covariant use in
o.p.length;
^ property `p`

Invariant-by-default Dictionary Types

The object type {[key: string]: ?number} describes an object that can be used +as a map. We can read any property and Flow will infer the result type as +?number. We can also write null or undefined or number into any +property.

In Flow 0.33 and earlier, these dictionary types were treated covariantly by +the type system. For example, Flow accepted the following code:

function f(o: {[key: string]: ?number}) {
o.p = null;
}
declare var o: {p: number};
f(o);

This is unsound because f can overwrite property p with null. In Flow +0.34, dictionaries are invariant, like named properties. The same code now +results in the following type error:

function f(o: {[key: string]: ?number}) {}
^ null. This type is incompatible with
declare var o: {p: number};
^ number
function f(o: {[key: string]: ?number}) {}
^ undefined. This type is incompatible with
declare var o: {p: number};
^ number

Covariant and contravariant dictionaries can be incredibly useful, though. To +support this, the same syntax used to support variance for named properties can +be used for dictionaries as well.

function f(o: {+[key: string]: ?number}) {}
declare var o: {p: number};
f(o); // no type error!

Covariant-by-default Method Types

ES6 gave us a shorthand way to write object properties which are functions.

var o = {
m(x) {
return x * 2
}
}

Flow now interprets properties which use this shorthand method syntax as +covariant by default. This means it is an error to write to the property m.

If you don't want covariance, you can use the long form syntax:

var o = {
m: function(x) {
return x * 2;
}
}

More Flexible Getters and Setters

In Flow 0.33 and earlier, getters and setters had to agree exactly on their +return type and parameter type, respectively. Flow 0.34 lifts that restriction.

This means you can write code like the following:

// @flow
declare var x: string;

var o = {
get x(): string {
return x;
},
set x(value: ?string) {
x = value || "default";
}
}
]]>
+
+ + <![CDATA[Windows Support is Here!]]> + https://flow.org/blog/2016/08/01/Windows-Support + https://flow.org/blog/2016/08/01/Windows-Support + Mon, 01 Aug 2016 00:00:00 GMT + + We are excited to announce that Flow is now officially available on 64-bit +Windows! Starting with +Flow v0.30.0, we will +publish a Windows binary with each release. You can download the Windows binary +in a .zip file directly from the +GitHub releases page or install it +using the flow-bin npm package. Try +it out and report any issues you +come across!

![Windows Support GIF]({{ site.baseurl }}/static/windows.gif)

Getting Flow working on Windows was not easy, and it was made possible by the +hard work of Grégoire, +Çagdas and +Fabrice from +OCamlPro.

Getting Started with Windows

Getting Started with flow-bin on Windows

Does your JavaScript project use npm to manage dependencies? Well, then the +easiest way for you to install Flow is with npm! Just run

> npm install --save-dev flow-bin

(Note: on Windows, it is recommended to use npm v3, to avoid the long +node_modules paths that npm v2 creates)

This will install the +flow-bin npm package and +automatically add it to your package.json. Once installed, there are a few ways +to use the Flow binary. One is to use ./node_modules/.bin/flow directly. For +example, every Flow project needs a .flowconfig file in the root directory. +If you don't already have a .flowconfig, you could create it with Powershell, +like

> New-Item .flowconfig

or you could run the flow init command, using ./node_modules/.bin/flow

> ./node_modules/.bin/flow init

Another way to run Flow is via an npm script. In your package.json file, there +is a "scripts" section. Maybe it looks like this:

"scripts": {
"test": "make test"
}

You can run the Flow binary directly from a script by referencing flow in a +script, like so:

"scripts": {
"test": "make test",
"flow_check": "flow check || exit 0"
}

and then running that script via npm run

> npm run flow_check

(Note: the || exit 0 part of the script is optional, but npm run will show +an error message if the script finishes with a non-zero exit code)

You can also install flow-bin globally with

> npm install --global flow-bin

Getting Started with flow.exe

Each GitHub release of Flow +starting with v0.30.0 will have a zipped Windows binary. For example, the +v0.30.0 release +includes flow-win64-v0.30.0.zip. +If you download and unzip that, you will find a flow/ directory, which +contains flow.exe. flow.exe is the Flow binary, so if you put that +somewhere in your path, and you should be good to go.

> mkdir demo
> cd demo
> flow.exe init
> "/* @flow */ var x: number = true;" | Out-File -Encoding ascii test.js
> flow.exe check
test.js:1
1: /* @flow */ var x: number = true;
^^^^ boolean. This type is incompatible with

1: /* @flow */ var x: number = true;
^^^^^^ number
]]>
+
+ + <![CDATA[New Implementation of Unions and Intersections]]> + https://flow.org/blog/2016/07/01/New-Unions-Intersections + https://flow.org/blog/2016/07/01/New-Unions-Intersections + Fri, 01 Jul 2016 00:00:00 GMT + + Summary

Before Flow 0.28, the implementation of union/intersection types had serious +bugs and was the root cause of +a lot of weird behaviors you +may have run into with Flow in the past. These bugs have now been addressed in +a diff landing in 0.28.

As you might expect after a major rewrite of a tricky part of the type system +implementation, there will be a short period of adjustment: you may run into +kinks that we will try to iron out promptly, and you may run into some +unfamiliar error messages.

New Error Messages

<error location> Could not decide which case to select
<location of union/intersection type>

Case 1 may work:
<location of 1st case of union/intersection type>

But if it doesn't, case 2 looks promising too:
<location of 2nd case of union/intersection type>

Please provide additional annotation(s) to determine whether case 1 works
(or consider merging it with case 2):
<location to annotate>
<location to annotate>
...

What this means is that at <error location>, Flow needs to make a choice: one +of the members of the union/intersection type at +<location of union/intersection type> must be applied, but Flow can't choose +safely based on available information. In particular, it cannot decide between +case 1 and 2, so Flow lists a bunch of annotations that can help it +disambiguate the two cases.

Actions Needed

You can fix the errors in two ways:

  • Actually go and annotate the listed locations. This should be by far the most +common fix.
  • Discover that there is real, unintentional ambiguity between case 1 and 2, +and rewrite the two cases in the union type to remove the ambiguity. When +this happens, typically it will fix a large number of errors.

There are two more possibilities, however:

  • There's no real ambiguity and Flow is being too conservative / dumb. In this +case, go ahead and do the annotations anyway and file an issue on GitHub. We +plan to do a lot of short-term follow-up work to disambiguate more cases +automatically, so over time you should see less of (3).
  • You have no idea what's going on. The cases being pointed to don't make sense. +They don't correspond to what you have at <error location>. Hopefully you +won't run into (4) too often, but if you do please file an issue, since +this means there are still latent bugs in the implementation.

If you file an issue on GitHub, please include code to reproduce the issue. You +can use Try Flow to share your repro case easily.

If you're curious about the whys and hows of these new error messages, here's +an excerpt from the commit message of the "fate of the union" diff:

Problem

Flow's inference engine is designed to find more errors over time as +constraints are added...but it is not designed to backtrack. Unfortunately, +checking the type of an expression against a union type does need backtracking: +if some branch of the union doesn't work out, the next branch must be tried, +and so on. (The same is true for checks that involve intersection types.)

The situation is further complicated by the fact that the type of the +expression may not be completely known at the point of checking, so that a +branch that looks promising now might turn out to be incorrect later.

Solution

The basic idea is to delay trying a branch until a point where we can decide +whether the branch will definitely fail or succeed, without further +information. If trying a branch results in failure, we can move on to the next +branch without needing to backtrack. If a branch succeeds, we are done. The +final case is where the branch looks promising, but we cannot be sure without +adding constraints: in this case we try other branches, and bail when we run +into ambiguities...requesting additional annotations to decide which branch to +select. Overall, this means that (1) we never commit to a branch that might +turn out to be incorrect and (2) can always select a correct branch (if such +exists) given enough annotations.

]]>
+
+ + <![CDATA[Version 0.21.0]]> + https://flow.org/blog/2016/02/02/Version-0.21.0 + https://flow.org/blog/2016/02/02/Version-0.21.0 + Tue, 02 Feb 2016 00:00:00 GMT + + Yesterday we deployed Flow v0.21.0! As always, we've listed out the most +interesting changes in the +Changelog. +However, since I'm on a plane and can't sleep, I thought it might be fun to +dive into a couple of the changes! Hope this blog post turns out interesting +and legible!

JSX Intrinsics

If you're writing JSX, it's probably a mix of your own React Components and +some intrinsics. For example, you might write

render() {
return <div><FluffyBunny name="Fifi" /></div>;
}

In this example, FluffyBunny is a React Component you wrote and div is a +JSX intrinsic. Lower-cased JSX elements are assumed to be intrinsics by React +and by Flow. Up until Flow v0.21.0, Flow ignored intrinsics and gave them the +type any. This meant Flow let you set any property on JSX intrinsics. Flow +v0.21.0 will, by default, do the same thing as v0.20.0, However now you can +also configure Flow to properly type your JSX intrinsics!

Example of how to use JSX intrinsics

.flowconfig

[libs]
myLib.js

myLib.js

// JSXHelper is a type alias to make this example more concise.
// There's nothing special or magic here.
// JSXHelper<{name: string}> is a React component
// with the single string property "name", which has a default
type JSXHelper<T> = Class<ReactComponent<T,T,mixed>>;

// $JSXIntrinsics is special and magic.
// This declares the types for `div` and `span`
type $JSXIntrinsics = {
div: JSXHelper<{id: string}>,
span: JSXHelper<{id: string, class: string}>,
};

myCode.js

<div id="asdf" />; // No error
<div id={42} />; // Error: `id` prop is a string, not a number!

What is going on here?

The new bit of magic is this $JSXIntrinsics type alias. When Flow sees +<foo /> it will look to see if $JSXIntrinsics exists and if so will grab +the type of $JSXIntrinsics['foo']. It will use this type to figure out which +properties are available and need to be set.

We haven't hardcoded the intrinsics into Flow since the available intrinsics +will depend on your environment. For example, React native would have different +intrinsics than React for the web would.

Smarter string refinements

One of the main ways that we make Flow smarter is by teaching it to recognize +more ways that JavaScript programmers refine types. Here's an example of a +common way to refine nullable values:

class Person {
name: ?string;
...
getName(): string {
// Before the if, this.name could be null, undefined, or a string
if (this.name != null) {
// But now the programmer has refined this.name to definitely be a string
return this.name;
}
// And now we know that this.name is null or undefined.
return 'You know who';
}
}

New string refinements

In v0.21.0, one of the refinements we added is the ability to refine types by +comparing them to strings.

This is useful for refining unions of string literals into string literals

function test(x: 'foo' | 'bar'): 'foo' {
if (x === 'foo') {
// Now Flow understands that x has the type 'foo'
return x;
} else {
return 'foo';
}
}

And can also narrow the value of strings:

function test(x: string): 'foo' {
if (x === 'foo') {
// Now Flow knows x has the type 'foo'
return x;
} else {
return 'foo';
}
}

This is one of the many refinements that Flow currently can recognize and +follow, and we'll keep adding more! Stay tuned!

]]>
+
+ + <![CDATA[Version-0.19.0]]> + https://flow.org/blog/2015/12/01/Version-0.19.0 + https://flow.org/blog/2015/12/01/Version-0.19.0 + Tue, 01 Dec 2015 00:00:00 GMT + + Flow v0.19.0 was deployed today! It has a ton of changes, which the +Changelog +summarizes. The Changelog can be a little concise, though, so here are some +longer explanations for some of the changes. Hope this helps!

@noflow

Flow is opt-in by default (you add @flow to a file). However we noticed that +sometimes people would add Flow annotations to files that were missing @flow. +Often, these people didn't notice that the file was being ignored by Flow. So +we decided to stop allowing Flow syntax in non-Flow files. This is easily fixed +by adding either @flow or @noflow to your file. The former will make the +file a Flow file. The latter will tell Flow to completely ignore the file.

Declaration files

Files that end with .flow are now treated specially. They are the preferred +provider of modules. That is if both foo.js and foo.js.flow exist, then +when you write import Foo from './foo', Flow will use the type exported from +foo.js.flow rather than foo.js.

We imagine two main ways people will use .flow files.

  1. As interface files. Maybe you have some library coolLibrary.js that is +really hard to type with inline Flow types. You could put +coolLibrary.js.flow next to it and declare the types that coolLibrary.js +exports.

    // coolLibrary.js.flow
    declare export var coolVar: number;
    declare export function coolFunction(): void;
    declare export class coolClass {}
  2. As the original source. Maybe you want to ship the minified, transformed +version of awesomeLibrary.js, but people who use awesomeLibrary.js also +use Flow. Well you could do something like

    cp awesomeLibraryOriginalCode.js awesomeLibrary.js.flow
    babel awesomeLibraryOriginalCode --out-file awesomeLibrary.js

Order of precedence for lib files

Now your local lib files will override the builtin lib files. Is one of the +builtin flow libs wrong? Send a pull request! But then while you're waiting for +the next release, you can use your own definition! The order of precedence is +as follows:

  1. Any paths supplied on the command line via --lib
  2. The files found in the paths specified in the .flowconfig [libs] (in +listing order)
  3. The Flow core library files

For example, if I want to override the builtin definition of Array and instead +use my own version, I could update my .flowconfig to contain

// .flowconfig
[libs]
myArray.js
// myArray.js
declare class Array<T> {
// Put whatever you like in here!
}

Deferred initialization

Previously the following code was an error, because the initialization of +myString happens later. Now Flow is fine with it.

function foo(someFlag: boolean): string {
var myString:string;
if (someFlag) {
myString = "yup";
} else {
myString = "nope";
}
return myString;
}
]]>
+
+ + <![CDATA[Typing Generators with Flow]]> + https://flow.org/blog/2015/11/09/Generators + https://flow.org/blog/2015/11/09/Generators + Mon, 09 Nov 2015 00:00:00 GMT + + Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an upcoming feature already supported by Flow.

So much wonderful material has already been produced describing generators. I am going to focus on the interaction of static typing with generators. Please refer to the following materials for information about generators:

  • Jafar Husain gave an incredibly lucid and well-illustrated talk that covers generators. I have linked to the point where he gets into generators, but I highly recommend the entire talk.
  • Exploring ES6, a comprehensive book by Axel Rauschmayer, who has generously made the contents available for free online, has a chapter on generators.
  • The venerable MDN has a useful page describing the Iterator interface and generators.

In Flow, the Generator interface has three type parameters: Yield, Return, and Next. Yield is the type of values which are yielded from the generator function. Return is the type of the value which is returned from the generator function. Next is the type of values which are passed into the generator via the next method on the Generator itself. For example, a generator value of type Generator<string,number,boolean> will yield strings, return a number, and will receive booleans from its caller.

For any type T, a Generator<T,void,void> is both an Iterable<T> and an Iterator<T>.

The unique nature of generators allows us to represent infinite sequences naturally. Consider the infinite sequence of natural numbers:

function *nats() {
let i = 0;
while (true) {
yield i++;
}
}

Because generators are also iterators, we can manually iterate the generator:

const gen = nats();
console.log(gen.next()); // { done: false, value: 0 }
console.log(gen.next()); // { done: false, value: 1 }
console.log(gen.next()); // { done: false, value: 2 }

When done is false, value will have the generator's Yield type. When done is true, value will have the generator's Return type or void if the consumer iterates past the completion value.

function *test() {
yield 1;
return "complete";
}
const gen = test();
console.log(gen.next()); // { done: false, value: 1 }
console.log(gen.next()); // { done: true, value: "complete" }
console.log(gen.next()); // { done: true, value: undefined }

Because of this behavior, manually iterating poses typing difficulties. Let's try to take the first 10 values from the nats generator through manual iteration:

const gen = nats();
const take10: number[] = [];
for (let i = 0; i < 10; i++) {
const { done, value } = gen.next();
if (done) {
break;
} else {
take10.push(value); // error!
}
}
test.js:13
13: const { done, value } = gen.next();
^^^^^^^^^^ call of method `next`
17: take10.push(value); // error!
^^^^^ undefined. This type is incompatible with
11: const take10: number[] = [];
^^^^^^ number

Flow is complaining that value might be undefined. This is because the type of value is Yield | Return | void, which simplifies in the instance of nats to number | void. We can introduce a dynamic type test to convince Flow of the invariant that value will always be number when done is false.

const gen = nats();
const take10: number[] = [];
for (let i = 0; i < 10; i++) {
const { done, value } = gen.next();
if (done) {
break;
} else {
if (typeof value === "undefined") {
throw new Error("`value` must be a number.");
}
take10.push(value); // no error
}
}

There is an open issue which would make the dynamic type test above unnecessary, by using the done value as a sentinel to refine a tagged union. That is, when done is true, Flow would know that value is always of type Yield and otherwise of type Return | void.

Even without the dynamic type test, this code is quite verbose and it's hard to see the intent. Because generators are also iterable, we can also use for...of loops:

const take10: number[] = [];
let i = 0;
for (let nat of nats()) {
if (i === 10) break;
take10.push(nat);
i++;
}

That's much better. The for...of looping construct ignores completion values, so Flow understands that nat will always be number. Let's generalize this pattern further using generator functions:

function *take<T>(n: number, xs: Iterable<T>): Iterable<T> {
if (n <= 0) return;
let i = 0;
for (let x of xs) {
yield x;
if (++i === n) return;
}
}

for (let n of take(10, nats())) {
console.log(n); // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
}

Note that we explicitly annotated the parameters and return type of the take generator. This is necessary to ensure Flow understands the fully generic type. This is because Flow does not currently infer a fully generic type, but instead accumulates lower bounds, resulting in a union type.

function identity(x) { return x }
var a: string = identity(""); // error
var b: number = identity(0); // error

The above code produces errors because Flow adds string and number as lower bounds to the type variable describing the type of the value bound by x. That is, Flow believes the type of identity is (x: string | number) => string | number because those are the types which actually passed through the function.

Another important feature of generators is the ability to pass values into the generator from the consumer. Let's consider a generator scan, which reduces values passed into the generator using a provided function. Our scan is similar to Array.prototype.reduce, but it returns each intermediate value and the values are provided imperatively via next.

As a first pass, we might write this:

function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
let acc = init;
while (true) {
const next = yield acc;
acc = f(acc, next);
}
}

We can use this definition to implement an imperative sum procedure:

let sum = scan(0, (a,b) => a + b);
console.log(sum.next()); // { done: false, value: 0 }
console.log(sum.next(1)); // { done: false, value: 1 }
console.log(sum.next(2)); // { done: false, value: 3 }
console.log(sum.next(3)); // { done: false, value: 6 }

However, when we try to check the above definition of scan, Flow complains:

test.js:7
7: acc = f(acc, next);
^^^^^^^^^^^^ function call
7: acc = f(acc, next);
^^^^ undefined. This type is incompatible with
3: function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
^ some incompatible instantiation of T

Flow is complaining that our value, next, may be void instead of the expected T, which is number in the sum example. This behavior is necessary to ensure type safety. In order to prime the generator, our consumer must first call next without an argument. To accommodate this, Flow understands the argument to next to be optional. This means Flow will allow the following code:

let sum = scan(0, (a,b) => a + b);
console.log(sum.next()); // first call primes the generator
console.log(sum.next()); // we should pass a value, but don't need to

In general, Flow doesn't know which invocation is "first." While it should be an error to pass a value to the first next, and an error to not pass a value to subsequent nexts, Flow compromises and forces your generator to deal with a potentially void value. In short, given a generator of type Generator<Y,R,N> and a value x of type Y, the type of the expression yield x is N | void.

We can update our definition to use a dynamic type test that enforces the non-void invariant at runtime:

function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
let acc = init;
while (true) {
const next = yield acc;
if (typeof next === "undefined") {
throw new Error("Caller must provide an argument to `next`.");
}
acc = f(acc, next);
}
}

There is one more important caveat when dealing with typed generators. Every value yielded from the generator must be described by a single type. Similarly, every value passed to the generator via next must be described by a single type.

Consider the following generator:

function *foo() {
yield 0;
yield "";
}

const gen = foo();
const a: number = gen.next().value; // error
const b: string = gen.next().value; // error

This is perfectly legal JavaScript and the values a and b do have the correct types at runtime. However, Flow rejects this program. Our generator's Yield type parameter has a concrete type of number | string. The value property of the iterator result object has the type number | string | void.

We can observe similar behavior for values passed into the generator:

function *bar() {
var a = yield;
var b = yield;
return {a,b};
}

const gen = bar();
gen.next(); // prime the generator
gen.next(0);
const ret: { a: number, b: string } = gen.next("").value; // error

The value ret has the annotated type at runtime, but Flow also rejects this program. Our generator's Next type parameter has a concrete type of number | string. The value property of the iterator result object thus has the type void | { a: void | number | string, b: void | number | string }.

While it may be possible to use dynamic type tests to resolve these issues, another practical option is to use any to take on the type safety responsibility yourself.

function *bar(): Generator {
var a = yield;
var b = yield;
return {a,b};
}

const gen = bar();
gen.next(); // prime the generator
gen.next(0);
const ret: void | { a: number, b: string } = gen.next("").value; // OK

(Note that the annotation Generator is equivalent to Generator<any,any,any>.)

Phew! I hope that this will help you use generators in your own code. I also hope this gave you a little insight into the difficulties of applying static analysis to a highly dynamic language such as JavaScript.

To summarize, here are some of the lessons we've learned for using generators in statically typed JS:

  • Use generators to implement custom iterables.
  • Use dynamic type tests to unpack the optional return type of yield expressions.
  • Avoid generators that yield or receive values of multiple types, or use any.
]]>
+
+ + <![CDATA[Version-0.17.0]]> + https://flow.org/blog/2015/10/07/Version-0.17.0 + https://flow.org/blog/2015/10/07/Version-0.17.0 + Wed, 07 Oct 2015 00:00:00 GMT + + Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:

![New error format]({{ site.baseurl }}/static/new_error_format_v0_17_0.png)

This should hopefully help our command line users understand many errors without having to refer to their source code. We'll keep iterating on this format, so tell us what you like and what you don't like! Thanks to @frantic for building this feature!

There are a whole bunch of other features and fixes in this release! Head on over to our Release for the full list!

]]>
+
+ + <![CDATA[Version-0.16.0]]> + https://flow.org/blog/2015/09/22/Version-0.16.0 + https://flow.org/blog/2015/09/22/Version-0.16.0 + Tue, 22 Sep 2015 00:00:00 GMT + + On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again @samwgoldman)!

As always, the Changelog is best at summing up the big changes.

]]>
+
+ + <![CDATA[Version-0.15.0]]> + https://flow.org/blog/2015/09/10/Version-0.15.0 + https://flow.org/blog/2015/09/10/Version-0.15.0 + Thu, 10 Sep 2015 00:00:00 GMT + + Today we released Flow v0.15.0! A lot has changed in the last month and we're excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!

Check out the Changelog to see what's new.

]]>
+
+ + <![CDATA[Version-0.14.0]]> + https://flow.org/blog/2015/07/29/Version-0.14.0 + https://flow.org/blog/2015/07/29/Version-0.14.0 + Wed, 29 Jul 2015 00:00:00 GMT + + It has come to our attention that not everyone obsessively checks GitHub for Flow releases. This came as a surprise, but we would like to support these users too. Therefore, we will start announcing each Flow release on the blog, starting with this release.

So here is Flow v0.14.0! Check out the Changelog for the canonical list of what has changed.

]]>
+
+ + <![CDATA[Announcing Disjoint Unions]]> + https://flow.org/blog/2015/07/03/Disjoint-Unions + https://flow.org/blog/2015/07/03/Disjoint-Unions + Fri, 03 Jul 2015 00:00:00 GMT + + Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:

  • Specifying such data by a set of disjoint cases, distinguished by “tags”, where each tag is associated with a different “record” of properties. (These descriptions are called “disjoint union” or “variant” types.)
  • Doing case analysis on such data, by checking tags and then directly accessing the associated record of properties. (The common way to do such case analysis is by pattern matching.)

Examples of programs that analyze or transform such data range from compilers working with abstract syntax trees, to operations that may return exceptional values, with much more in between!

As of Flow 0.13.1 it is now possible to program in this style in JavaScript in a type-safe manner. You can define a disjoint union of object types and do case analysis on objects of that type by switching on the value of some common property (called a "sentinel") in those object types.

Flow's syntax for disjoint unions looks like:

type BinaryTree =
{ kind: "leaf", value: number } |
{ kind: "branch", left: BinaryTree, right: BinaryTree }

function sumLeaves(tree: BinaryTree): number {
if (tree.kind === "leaf") {
return tree.value;
} else {
return sumLeaves(tree.left) + sumLeaves(tree.right);
}
}

The problem

Consider the following function that returns different objects depending on the data passed into it:

type Result = { status: string, errorCode?: number }

function getResult(op): Result {
var statusCode = op();
if (statusCode === 0) {
return { status: 'done' };
} else {
return { status: 'error', errorCode: statusCode };
}
}

The result contains a status property that is either 'done' or 'error', +and an optional errorCode property that holds a numeric status code when the +status is 'error'.

One may now try to write another function that gets the error code from a result:

function getErrorCode(result: Result): number {
switch (result.status) {
case 'error':
return result.errorCode;
default:
return 0;
}
}

Unfortunately, this code does not typecheck. The Result type does not precisely +capture the relationship between the status property and the errorCode property. +Namely it doesn't capture that when the status property is 'error', the errorCode +property will be present and defined on the object. As a result, Flow thinks that +result.errorCode in the above function may return undefined instead of number.

Prior to version 0.13.1 there was no way to express this relationship, which meant +that it was not possible to check the type safety of this simple, familiar idiom!

The solution

As of version 0.13.1 it is possible to write a more precise type for Result +that better captures the intent and helps Flow narrow down the possible shapes +of an object based on the outcome of a dynamic === check. Now, we can write:

type Result = Done | Error
type Done = { status: 'done' }
type Error = { status: 'error', errorCode: number }

In other words, we can explicitly list out the possible shapes of results. These +cases are distinguished by the value of the status property. Note that here +we use the string literal types 'done' and 'error'. These match exactly the strings +'done' and 'error', which means that === checks on those values are enough for +Flow to narrow down the corresponding type cases. With this additional reasoning, the +function getErrorCode now typechecks, without needing any changes to the code!

In addition to string literals, Flow also supports number literals as singleton types +so they can also be used in disjoint unions and case analyses.

Why we built this

Disjoint unions are at the heart of several good programming practices pervasive in functional programming languages. Supporting them in Flow means that JavaScript can use these practices in a type-safe manner. For example, disjoint unions can be used to write type-safe Flux dispatchers. They are also heavily used in a recently released reference implementation of GraphQL.

]]>
+
+ + <![CDATA[Announcing Bounded Polymorphism]]> + https://flow.org/blog/2015/03/12/Bounded-Polymorphism + https://flow.org/blog/2015/03/12/Bounded-Polymorphism + Thu, 12 Mar 2015 00:00:00 GMT + + As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow's bounded polymorphism syntax looks like

class BagOfBones<T: Bone> { ... }
function eat<T: Food>(meal: T): Indigestion<T> { ... }

The problem

Consider the following code that defines a polymorphic function in Flow:

function fooBad<T>(obj: T): T {
console.log(Math.abs(obj.x));
return obj;
}

This code does not (and should not!) type check. Not all values obj: T have a property x, let alone a property x that is a number, given the additional requirement imposed by Math.abs().

But what if you wanted T to not range over all types, but instead over only the types of objects with an x property that has the type number? Intuitively, given that condition, the body should type check. Unfortunately, the only way you could enforce this condition prior to Flow 0.5.0 was by giving up on polymorphism entirely! For example you could write:

// Old lame workaround
function fooStillBad(obj: { x: number }): {x: number } {
console.log(Math.abs(obj.x));
return obj;
}

But while this change would make the body type check, it would cause Flow to lose information across call sites. For example:

// The return type of fooStillBad() is {x: number}
// so Flow thinks result has the type {x: number}
var result = fooStillBad({x: 42, y: "oops"});

// This will be an error since result's type
// doesn't have a property "y"
var test: {x: number; y: string} = result;

The solution

As of version 0.5.0, such typing problems can be solved elegantly using bounded polymorphism. Type parameters such as T can specify bounds that constrain the types that the type parameters range over. For example, we can write:

function fooGood<T: { x: number }>(obj: T): T {
console.log(Math.abs(obj.x));
return obj;
}

Now the body type checks under the assumption that T is a subtype of { x: number }. Furthermore, no information is lost across call sites. Using the example from above:

// With bounded polymorphism, Flow knows the return
// type is {x: number; y: string}
var result = fooGood({x: 42, y: "yay"});

// This works!
var test: {x: number; y: string} = result;

Of course, polymorphic classes may also specify bounds. For example, the following code type checks:

class Store<T: { x: number }> {
obj: T;
constructor(obj: T) { this.obj = obj; }
foo() { console.log(Math.abs(this.obj.x)); }
}

Instantiations of the class are appropriately constrained. If you write

var store = new Store({x: 42, y: "hi"});

Then store.obj has type {x: number; y: string}.

Any type may be used as a type parameter's bound. The type does not need to be an object type (as in the examples above). It may even be another type parameter that is in scope. For example, consider adding the following method to the above Store class:

class Store<T: { x: number }> {
...
bar<U: T>(obj: U): U {
this.obj = obj;
console.log(Math.abs(obj.x));
return obj;
}
}

Since U is a subtype of T, the method body type checks (as you may expect, U must also satisfy T's bound, by transitivity of subtyping). Now the following code type checks:

  // store is a Store<{x: number; y: string}>
var store = new Store({x: 42, y: "yay"});

var result = store.bar({x: 0, y: "hello", z: "world"});

// This works!
var test: {x: number; y: string; z: string } = result;

Also, in a polymorphic definition with multiple type parameters, any type parameter may appear in the bound of any following type parameter. This is useful for type checking examples like the following:

function copyArray<T, S: T>(from: Array<S>, to: Array<T>) {
from.forEach(elem => to.push(elem));
}

Why we built this

The addition of bounded polymorphism significantly increases the expressiveness of Flow's type system, by enabling signatures and definitions to specify relationships between their type parameters, without having to sacrifice the benefits of generics. We expect that the increased expressiveness will be particularly useful to library writers, and will also allow us to write better declarations for framework APIs such as those provided by React.

Transformations

Like type annotations and other Flow features, polymorphic function and class definitions need to be transformed before the code can be run. The transforms are available in react-tools 0.13.0, which was recently released

]]>
+
+ + <![CDATA[Announcing Flow Comments]]> + https://flow.org/blog/2015/02/20/Flow-Comments + https://flow.org/blog/2015/02/20/Flow-Comments + Fri, 20 Feb 2015 00:00:00 GMT + + As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can't fit a Flow-stripping transformation into their setup. This was one of our most requested features and hopefully it will enable even more people to use Flow!

This feature introduces 3 special comments: /*:, /*::, and /*flow-include. Flow will read the code inside these special comments and treat the code as if the special comment tokens didn't exist. These special comments are valid JavaScript block comments, so your JavaScript engine will ignore the code inside the comments.

The Flow Comment Syntax

There are 3 special comments that Flow currently supports. You may recognize this syntax from Jarno Rantanen's excellent project, flotate.

1. /*:

/*: <your code> */ is interpreted by Flow as : <your code>

function foo(x/*: number*/)/* : string */ { ... }

is interpreted by Flow as

function foo(x: number): string { ... }

but appears to the JavaScript engine (ignoring comments) as

function foo(x) { ... }

2. /*::

/*:: <your code> */ is interpreted by Flow as <your code>

/*:: type foo = number; */

is interpreted by Flow as

type foo = number;

but appears to the runtime (ignoring comments) as


3. /*flow-include

/*flow-include <your code> */ is interpreted by Flow as <your code>. It behaves the same as /*::

/*flow-include type foo = number; */

is interpreted by Flow as

type foo = number;

but appears to the runtime (ignoring comments) as


Note: whitespace is ignored after the /* but before the :, ::, or flow-include. So you can write things like

/* : number */
/* :: type foo = number */
/* flow-include type foo = number */

Future Work

We plan to update our Flow transformation to wrap Flow syntax with these special comments, rather than stripping it away completely. This will help people write Flow code but publish code that works with or without Flow.

Thanks

Special thanks to Jarno Rantanen for building flotate and supporting us merging his syntax upstream into Flow.

]]>
+
+ + <![CDATA[Announcing Import Type]]> + https://flow.org/blog/2015/02/18/Import-Types + https://flow.org/blog/2015/02/18/Import-Types + Wed, 18 Feb 2015 00:00:00 GMT + + As of Flow 0.3.0, it's now possible to import types from another module. So, for example, if you're only importing a class for purposes of referencing it in a type annotation, you can now use the new import type syntax to do this.

Motivation

Has this ever happened to you:

// @flow

// Post-transformation lint error: Unused variable 'URI'
import URI from "URI";

// But if you delete the require you get a Flow error:
// identifier URI - Unknown global name
module.exports = function(x: URI): URI {
return x;
}

Now you have an out! To solve this problem (and with an eye toward a near future with ES6 module syntax), we've added the new import type syntax. With import type, you can convey what you really mean here — that you want to import the type of the class and not really the class itself.

Enter Import Type

So instead of the above code, you can now write this:

// @flow

import type URI from 'URI';
module.exports = function(x: URI): URI {
return x;
};

If you have a module that exports multiple classes (like, say, a Crayon and a Marker class), you can import the type for each of them together or separately like this:

// @flow

import type {Crayon, Marker} from 'WritingUtensils';
module.exports = function junkDrawer(x: Crayon, y: Marker): void {}

Transformations

Like type annotations and other Flow features, import type need to be transformed away before the code can be run. The transforms will be available in react-tools 0.13.0 when it is published soon, but for now they're available in 0.13.0-beta.2, which you can install with

npm install react-tools@0.13.0-beta.2

Anticipatory Q&A

Wait, but what happens at runtime after I've added an import type declaration?

Nothing! All import type declarations get stripped away just like other flow syntax.

Can I use import type to pull in type aliases from another module, too?

Not quite yet...but soon! There are a few other moving parts that we need to build first, but we're working on it.

EDIT: Yes! As of Flow 0.10 you can use the export type MyType = ... ; syntax to compliment the import type syntax. Here's a trivial example:

// @flow

// MyTypes.js
export type UserID = number;
export type User = {
id: UserID,
firstName: string,
lastName: string
};
// @flow

// User.js
import type {UserID, User} from "MyTypes";

function getUserID(user: User): UserID {
return user.id;
}

Note that we only support the explicit named-export statements for now (i.e. export type UserID = number;). In a future version we can add support for latent named-export statements (i.e. type UserID = number; export {UserID};) and default type exports (i.e. export default type MyType = ... ;)...but for now these forms aren't yet supported for type exports.

]]>
+
+ + <![CDATA[Announcing Typecasts]]> + https://flow.org/blog/2015/02/18/Typecasts + https://flow.org/blog/2015/02/18/Typecasts + Wed, 18 Feb 2015 00:00:00 GMT + + As of version 0.3.0, Flow supports typecast expression.

A typecast expression is a simple way to type-annotate any JavaScript expression. Here are some examples of typecasts:

(1 + 1 : number);
var a = { name: (null: ?string) };
([1, 'a', true]: Array<mixed>).map(fn);

For any JavaScript expression <expr> and any Flow type <type>, you can write

(<expr> : <type>)

Note: the parentheses are necessary.

How Typecasts Work

To evaluate a typecast expression, Flow will first check that <expr> is a <type>.

(1+1: number); // this is fine
(1+1: string); // but this is is an error

Second, Flow will infer that the typecast expression (<expr>: <type>) has the type <type>.

[(0: ?number)]; // Flow will infer the type Array<?number>
[0]; // Without the typecast, Flow infers the type Array<number>

Safety

Typecasts obey the same rules as other type annotations, so they provide the same safety guarantees. This means they are safe unless you explicitly use the any type to defeat Flow's typechecking. Here are examples of upcasting (which is allowed), downcasting (which is forbidden), and using any.

class Base {}
class Child extends Base {}
var child: Child = new Child();

// Upcast from Child to Base, a more general type: OK
var base: Base = new Child();

// Upcast from Child to Base, a more general type: OK
(child: Base);

// Downcast from Base to Child: unsafe, ERROR
(base: Child);

// Upcast base to any then downcast any to Child.
// Unsafe downcasting from any is allowed: OK
((base: any): Child);

More examples

Typecasts are particularly useful to check assumptions and help Flow infer the types you intend. Here are some examples:

(x: number) // Make Flow check that x is a number
(0: ?number) // Tells Flow that this expression is actually nullable.
(null: ?number) // Tells Flow that this expression is a nullable number.

Transformations

Like type annotations and other Flow features, typecasts need to be transformed away before the code can be run. The transforms will be available in react-tools 0.13.0 when it is published soon, but for now they're available in 0.13.0-beta.2, which you can install with

npm install react-tools@0.13.0-beta.2
]]>
+
+
+
\ No newline at end of file diff --git a/cd3c4b260f85aac6f600f3c017046ef9.wasm b/cd3c4b260f85aac6f600f3c017046ef9.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7879f1df2168ddc2ddbf5f2730a4d48994dd666e GIT binary patch literal 471543 zcmd44YqVY0b>Fx5KJVAP2jB$>5|Fje(KUGq0un4iAVpCYH$ws-MM_HS(cuqnDVm0D z-b;}L2t8~m1nkJQY{`k5s40`EF_WsboGLAyC=Q*d4KtdK=!2RliQKA$ex3-avO+H1`<=Unr(=2|;@=*jozS(fF0C%^uE#pTQS z<@e?KXW!3RHd@sUgCvsUZ;V;?+t{{2rreDRSdE}ehu!5=<<>A}Yy z|4??V9$edaaPj<;kNnvA2Y=-JLr-M69v*5ueE<3PKm5dxKKKKV{BTz2+33mhm%jJ> z`=9tz=P#Yi+O6Nue=lEaXZa+{+eOhDXIas1XGNa(yE&B=oz}4EwMMPca9E66gI254 z$~)shQDmJ?mKW`Uvb<7c-B!2PEqXj?=S8>ZK%J~rw0PX>WxaORZ;uAUac3|bj(S;} zfAQBZXthNx{NJKQ+V4$hfdkh} zyZJ#%wfoti$OnV<_3QFBCAvA);fM4f`(oaE{QbQB_`})1$UBe! z(8crTv#;h;D0%-wPhNV@V~_msJr^%Nelh!%{J_H(&p&kOyl#EZ!w)_7*!hdu*Yb6} z(7g4(=7)cX=HGq(!+trHeBhx=5C2H^zvV}+_U!H-_~Gnd=7T3MJ@oL-_dN8$^Vz@3 z$G-Se=bxlo=d<6>hrX^1>c7s%Klr1M{R#DY`;qNOvOmZN-l8$<)6y`ll*7%pU!_K{|ouE`6u!}pa0k|=0Eng z^1q#bfsy)4`G1lB-Tc4KKbJq3|8oBK@_(BDv-~Uh@c;gQhQF7$vV5ff|HHhvT;;Q( zxU?A9*vUP9!&KBiPWLcT>vokLyMVVLm_AD=fc6&}4 zijGEAHY-MDF?u_-M})5SRY*iU^Nt6=}z z=;PVEU!sq#=wtS#9E2LM=l}-N|s9oNg z{?&X0s?Y`Z)bYt}blMi}sym!4(C3kDsa-ZG#r7btki`csGSqde(wQ8PtT} zRdH#14uZ=zDANUp(**zqN%iVENHccRxzGsBRLgWxcnZl!pF&(TNG7mnq7;?2)w6rr zcUC|D)GSj)`_i*rwYP($V#T~szPNMIhcyYS5pd_w9WbjrYUBp};s%wQBg$;_Q^UL~ zh{~P$cr&Y>erh(Po=(+%7oF%;8Qm&7Wlx7z)w&?8xAoJhav_RGJF^K$>Xw7l)%ob2 zi3ZD{oT$X8n!an&uJUqpsrrjo+7~AIxIN--zEgD|wVv-(`MV~q5jDW&gR&C?esU~<>Vr; zP_bUi4&+%mPy>ZnO!V2Inw+jxU--iV6qpUlu}CpCE(g>*)|fiVfiZPB9&T_&nJJZy zK_Wk6QDiou%UN~h-yAptyc7OM2;5)g#@PPVsPNv3ZWxtgjgiScV5%5ZpZ@A}`k8z_ z5UD>h8;)BeL0b+)M%}2!(_hbBx}22eyXjBlbKvEicghJ&u6m{_R#2%rE(uYX>x5F3 z<}RM6t-;vB#;hBU4^ zjH_9$tDUMPZthecy)bK)bqm$u?O6f)3&i5me6X#-R!g9QirW|G?QP^mw|TR_-_7yG zU9S(3Cji%~+B@@BC>M?Hy6LO6dl*pAX^c;Ro@1zim0s$NBmx}6U|OlAFDm?i8JMm| zUx4>;)jmU)vl5C|Eu?H0^pyOx#m2n`>GX;U5yxyWuU zwxF1x9T;f1rxRoxiSFa7L^YPf(Vd}O=#XfFy!d!)o(UJ6GXB%ejkuRrU(X&bv+e3m zp?qdde(Ni%0F?3WHa|P@-hd`T5luN0E~bZkXEgd!5voaWNG2`+S)i>AGVI_^yPM}d zRN7W?@}5c8@Jc;)K~Vl~p3_856T0VHQ}w9>gHgkD#!C`Ep(+opsLOc< zp~s9OHKmu@I>Y*LjkQ{hcDD4q<$hef;R;(QMEYK+4yytlCS=r=a1#i3-Q3fqQZIwe z1tx#9C^|SpAjCrG$7U^<5N((-zWb=UDldym)jzg^t8S}hQuPslL5jp^=eiHEt0FTWO#mc;#4rt|4Mv1kXgwJbnbb@<#7X{sJ#Xu3V`%W4qw7BohID!V<)q!`4^ zWk=GYRUOz?2U->nK!JUMhQi_jPQBGmZ_yc*h1!?P4lj1-!EfY3L5ufCh`ii1-qV~) zP|GeT=y+fB0TB>Jc+gl;xdH)X3-3YM*k&LbXF^eqg)lGfLK1;#9Uymw4C6{vITbgL z$6+%LN8_*&MZ^lCUzv|yY5lv^ zMc1f;t>O+e1pM0*|4I+c5Ke`RlOlw?DZN!}%J6|{E%9hfw!Aza`BJ(!dNaKaX%S;B z^KgkCh}>d5*;I5&#uHZJ=n76fZbK3l^sT5)Qg4vC5F>Zexel0HjVpwPu1emK#E2*D zXcHC{>FTks2B+8AY^z6_@I*I9U+xI48dBg*j5x~+VV2XwZB95XBxSG|c>}{HuUveC zA$R%A5m23n+3*PT>+*a215OE;g`X(URKSrE}Ip=Aykl$ zs>>pW1su|r$~dh7Yb^k4CBS&NF{cp#6FVH4wF5B3Sp%?k4VWuf0OpsQy#krDRsgoF zK!CLau(rDgOo+CN)n$puz`$9QR=lAzs4#uU9NfJdwEW$t*3(<+joz&eKU!VE%kCuC zr^G?XVw_LCyg=g8iivKsDkwlH>AD~0ZhzKp0R);%V)p}cZ24_2hv;GPHXerT+;`18N9Gg)F`Tr+itd9C z5XVp%9GMR^e&=m_V^jgt_GhvzAzssN4@4UyW)I?0- z$UJQH>Tf><3c#z(eq5AZ*+;flpZX_RgeUT|;6m!(+CW6Y4J!xlI)br}nX$Z$(O(Yl z1>1~ZVCgHUVAYXRhVIR}u0&@z7Rh*_XKh@vOElXBF(sO+KX1QF3XIbEC7@LZ!={3; zkK~{qSRlWV&qeRDoy-f}o-qXFqR~O@h2Hd=>L?G|4`9$@xInO^tupGZ%c%hNluEmH zo^Xk=L2c^Z9Cq0@ihvw`waI5_j z)9|uqTp^?sc;-%e%4ETv^qU(SWj`$2!j`R~!JKVM@F|K=RGY*iXhtFzl!o{_UQIE9 z3sn(~M}S)m`b-5C{m8022)zlDh-Qd+=MLv4lgK+Q6-P3?9F;_iRe$Lz`i_Z!(!%){ z@!AM>qsqZAG#cI0NEdhvd&(iKj0e;M4q2H*eTUZI?R@n0x8-9o`!mJPd?0SuD~uta zMFzOWVL7S#J8Og1ApVL09b>eDIfiN!851WNO}g|={SyJM(imQJw|WsR zgQBX8lam@GL@eJ+M+F925C@!_?aO7qQ{7wr!e#Cb>$^uV0pRND@{?8jg9xSSIl|dv ztU^S+1h#mveMvnURb8Ur9MG2xhO#4QH7-UInb!$Wu=sMIBHWiy0cE$kRWhnC*QZ^* zsqCW5_5($X1+dl09YZtN4UM9*g2r4#a39s?UbWrsfqXe^bTWBHd*U1aHW=sfOX`M8dn1?S zEys?nAA9Su-fVQV)jo#3s$Tb*h`4inN4hGxdgu6d@zx}sU(rm(caPuh0=R%&y@RkR z5f>Z}%*`9;Ly3;>E{AKax4+}occgNv_70E&HnLQEUa9uCb8}5M>l$_Qc5bfg=IwsH zsM_3o8y?O0RB=eMQjQ{KImn^y>R=%Hpr#LeBL5C!Sv?zR2cX! zIy7i>=DQltPV(%hcXjq;dj5RI%WtAUyYcdynh)Q|!;kHH`;9KpHStgIeAIaPMB~|U zo_%81yT{XWw|onox<>fDCEYc<9OJI06UV`1n9TrrGdBzkL~Nuev4F$)TRXY=Xi_-MK`KyRS%3hLkBr=5zYlOyAK ztR zN!@P~MVCimh z!?Q=gT>YXvLF`HzsyoKuR9UFzer~FnHCwjampPRO?{%ssiO0M~|D>U#l#a_`0xoUI zB(|MwCR+~LMz=DzroNZ!YlD0<{xZs8KpKUC{PAYk=vV6~K>`D*<{R*3W3 zgDHrJ>8x0RV7?w7k}9%#4P0L~VaGP%0zO%R-I}ySlEUV`XEH2h1>ZS*W^zmgk9ulI zHky^x7LKpxinuY+4VT>%ixDxA(m5gC>{NrDwM%PjC-`sAAGan$?)Lgc>%@s{_w)Ad z8;$GHiSeLux#zUgMg8LUBR|ozF{L6X(GC~Tfaue%?9@#u(Jm^Da$D+}x~m47XC_SZCuU5hMo$*e0{)u$z|W04YyFJuPclDSyuBabTQ$xH)lu^6xGD)i zRU3ptrZSJkE(%i|RfPB`^RH_n#6L$GGlAH!2H?y%CWOp3ncy6zRjEG6UpWHm#>n_ZvH7ytm7==hNZ6tvww(%!za@__`!j4A z#tXr7071DaDDfUFx}tjFUrZHnR+QhZjZb7qF5dJN9a}^)Duww!H6Y%a1)-Tn09UAq z5k#NM9SkGb#7hi7fNzc|E*sZskWfPEn10JymKA1H*PtBoi(w`i=z)t4~9E zh=-BM`d#4OVl^g*aF<}W)lr98a=7~G7*W>wx_U-WiklC z%XPG3XYRV%%tXi}=P*XVbZb7;h%(EWG7MKurD#Mjc{aX&MD`61!m>g<~7aOF9CIJCRt5(P9dslJk(@o9BX(_b`0uW zR3a^az;AVj%&m5H(^)4*P%0epJtAiz5a>0?oFhR(nw9OfRE&Er~w(5m_MYlpG`tgeOo! zmvwecLe9ZJju3b7H6Ul8kw7E{*cVvZ2*FGoG$WmW`vgO8h7*-#z%9hnrh4l^v>AMP z2y;Mbz*GdNJ(Iw~s4}SiPsj zQ6WO(P&nS?08L7x##-uVBoFg05|Q9=$aRT#laO0e?b>EpKEQ`A1!k2>4J#01f zMiUFA8eWhPoH*wraaGNJ^1qIXxe}Wl^uQ#u2>v=?;uwWUQTii~sU?~>grS48N$^0v zrAx4|sxhUj{}$c#VHwlI_m`xFD&cteXtJ15MY!#n{k<0)3la%mN_?~Dfb5B^NH#4m zy_=C9dVAiv?}&`_8k>PR&~*-}K?+8VF8D{R(oPtos|y~1ibyA!8)6lviw}NeqT)mTcUXg9EgWyN>~LHH*hfuWsjHeAb!&8OZ)-#;MHt1|adSp;bIR_$G(m79 zW)8sM$SzGcT2D%VF||~MDF0=9SW3wuBviTR9davtDq`UoO%=_idW)vWTvNXn=(nOC z2dy9yWLJc!bLPnH*~S=K(5lVM+6jwaB%pv@SbRUILQKB_DW2p4Gn4Sf+6EVUzH0cd zlN3T>!lCX%!+&kB_^&dZclocfSIdb!R%aBX5K1BY-ytX=PXQGe9k21;i89E|@3z9! zVYn|kEY9hkv0+E)h#^TSYIc5MjF?px6!$po%urz1cZwi@wr1zBKuuoyC=0OJ!_ifO zL=?30e`R!UAX0&Vt{DstXtvZ%Efp)cB)1VmTJt~UNN9nt#2gwB4n#FL19NqSGsN_X zGjLv#Bx63yV_M2UDAjCIMrbp%u4C9tZyD<<;v29Z<2ro677+&f&T@(KIK`h-t(wf> zm0==OXd13$3}Wkq6j;Gmg_~$u)v{RweQ^oo!z>B8+bNR_v}`&mF>IM-r)b~mZ=rf< zjuqKP@lK^TX(6jd1eahVG^t{yja#pF10EVd{8}8L?-y(YsXYR>#8)l zY0WD(V*>RVC9lkpvYb3IQxv#Yef+Cast{u;EePh4xj_R+KT(lX+he5JIK>QHj^{)^ zn4~51sY4DAn2^muMJPe5HUXvpMOn=HR##jysoJk53adG@v@1(Hz#>JcuS6DjiyD;& zsns=I&8YXK1~gi1k9mGwu_ug#Q>Cwt$6+%LN8_*&MW(3aP$nA78PbO+wYozBKtJY? zSG$S#dkjznJW4b5cSv4&IRvnw07Iu3d?oeQt!Rx&T|moO9PPyE(u)fmVO;jqqjB^I z?_K!m>56_wk9>7JZf?fmXdE`8$dq+E=5K_iCdzxr8IVeF)Twdcn_P4WC?{DhsJ$av zOJAi#(?Ig5`o!hx14w~&5)~PS0}LZrr9YZc4^|OryLFO3si@q6+m#nqWg{i|EAN0Q z5lzBxj()MjWV%cy0@;21UN|T>W6vEh&a2N{E=Na{<0VsU5Ej0(z<8p(Hj0CGuZrqa zTRW9BEFG#C1xM(1Pz<@cJi5ZoMxo-NC%$%Og9Fn@60?A!0 z9l`}@H&2C2tLL_Kcy3mG=4Vj|k_8%{^Um4%8YD-O+cL!4?%NszshAo{e`<8WYKHC@ zup#53TODUy@Urv|Ru#Dkyf${8kNQURRTKG?)O|7|oHwBOwX!7Cz4a9vj=QOQD>hvB z9302|eQm?3we@Asc;rsCG`KGFY+TjQwsblV5@uRgO8^ zpP3Ipd>gqr@e-*n_W)L^kO9v0L}k7wd0%20TV&yFpdDuDmEJlrlIkbLi=$6;^BxJ^ z;1~4ELm=JG*+N{8NN&T z+plifNj|d+MFEVV*#ye2m2_3m>eYUQjT6-puKyf0Mym28YEPx30{Ea?Ds}=|0JPBh zu42}sU1Tb&N>=)o)qP`WQQbXFR1w3>d0iRqysqAb^|k1o*sTH84GEFbAI;lR^+*T& zs^}v4gMCuH##|4S(?k$6$kK1!N!uj02sjTe=u!iUuxgsfOJvh-xJX#XmL1f2S+sqQ zENUJy(853#MMtDGmA!D5U{{J!B0I;hkJ6}o_yg+~1XKm{Sd!CBG(0N2hVz;+P|Q25 zSODAwrlmuTX-#9)9Y8_V9gy)T7K4$r&{3FPAc;~+ekjNrWdNAn?Kw$!gL({EFAS)@h2;|KW2qR?Upt zg=!u!#MULkSr$uDq?^@R{H6eJC~O3{q^dh*JnIDtOLFH$2GM$2dPM5R>;PD*uX3(H zR)(miFlJ!L?js|sf(Q!Dgr~7chnSEEM4QtDqGQ0S@+R~wBMrksENGD330_$biye8b zh2_kC;w@;|`yu%%hzf)*MyOodBjwr=w1%hQb*;?Lt8|)~ai&w(C|lD21pT_M>vRB-14XIZYOUUWG07_DfPeN8LHXBxeo0t|*CU7gMb0$~jW zo3JUPKJK>EnXA+?OH}|=^Ia}SNnfnhwx&h@NQz?3wx%FsRTUM7qJW?a4T0T2#D_Q< z0!{G+%VeLoS z!+q6$B*|RDm;=uIAXsNzIL0s{j^$H=)RiCr-tjGfV^HPGI~ssTN!-15+gmYQ#amTR zWV4?dJ(c0WDs8G&YZe>P-&ms=>wB~kr0$x-EVy6w6aol26|tA&ao9|em^di*Ly;+V zkWeDsClqqm@qRjor5Ygc(31+tF&;YlkGQFs3%BJNgr1#d3R1#e@h?A>9}vqtpYp|n zLZM{La^#p})?q1W{s5ss4T(4$3YyVOHPW`p|`W@=0{`>BCwzJ}$11_7l zIoDu1B^JA3bZXZM|rU=ZBXOQ=$2um>dkmEt=(D3rs5ixwg(oa6Dgf8a;f z!8DCcQi+#hq1gy2#@}8eh{Z)Cw_T+X@|1TqB4#)R_*nbM4fX4I9QFpRnhlWC4AYn+ zoaOrV>LzKLB~#trHW9QJ_E$*-T!saLZoLYE z=+`a;y~;)~aun8$;EY&Z&2y5ze@r7cnr1k*$m9{l(wDkq7HH*#ERt2R(BTSFaS9+F zT9!fJmY*%g%7|B0EK1ekWE{5QP*New?NeJWpk17zdv%j{{fy)cf7*D6_ted=P}R8V zuY&PLFv9TCBvwgimw13`0(h&(XNwiEQS~J6Te(V1%RKm8u?_Pmo(>hyO>X1X=ed8dTMD=lMG}mg%1^=yoA}SYAvM30Tqzcz>q|0^yEk!u0_{@ zT6AUQb@UWMmD6&)JXm4*O;32Yr-1Z}pe{)4$s$Aloa5FDS@_DpF|Q|ZK*K6HF}lSZ z3|8f_VRa&7dXv{_DvFRF1Mk^FGKW!>MvHHLftwPj&3n)7bMK3O86lerj*s&?2x^t^ z7F(Ld@bR5p;|9K(%3BN7087FNP32Ha+o=F0m-*F_$zv|zg}E@NiqupZE~&(9Sf#CP zmRhN9c*70TpI1qcX2WQ<750dRNnVumwv-pQ#L!1N#jqY)DA&WhcR+Gc6K-;o zrry2GCc$O^geIxUzZ{;+Q2|RD^RL-D(70r)qJ{pRWH*Fnc;yztf|j*~;IW=8grJfJ zR}Hj6Ds|r^S&XUI*4oS22;yvOibxX zyYBToTgo&gYReq%HbiBWt{L#N^lWKRp_*d(xkTwE3Sg<#NkRjd-?I9&o^(D<-@Tl+1M#oYh?S0j2*tman6bjhs{93!^~0SD;#|E6-;am2TtB zJnG&M|6KNFLT@JS4HP`UE9s34W3XhcaWZl~ro^4o#m6vWRqd6&Om+z&koZh7^T==> ztq4q)p0%S4FgBpH#u1o;{A3k}rJ$Xac^wO3U0m+Wku46C+*Ar}PYbMdOsTZ%7Hmy1ydV1_!rKMF(cs<&H~(f7W0fD9J%Pc{kbBBG(i9fg z)X@kJI~@9tIW^2X8dm=eb5D~wn>lQs^;i1N=&^J)aQW zZvfG2Hy1RA$kf?wx3Z~>&rZt8^_e#n^I0hi$Yref99mc7R0C2e>^ z8}k}w0Vn3UG@1bvVn?Xfcq8MdzYQy>2bZ7R=9ad}O?-a`e9t(&0w;L_{}lK|G0EHX zG)>9IAY)=Qe_f)gU%mc5Ex<Of^9KpEO*`O9Fs zd1viU4)4DE?lt~j{EZf8-No76clYnUyT@gxaVt)94lSP+`ppJ+BZ=-IKXO$4X|l4k z(#?J{Y1DBAmM)ITS_yV0y;h6L#&`KGt>^xT%BAOGVJ&-?e5*cmK@|^g;FQp|%aBKi z7<3Kp@wjp|pgXD|LlJ6SRL*Ar@#2fFo}^F)#1)<(KUWq~Kajm+^)G*idiA^%7PIB|6Zs?XsQ@@zR`5XDXYnA5 z2QS&jmw^Z{$jbsfZi1Rfe|Yg9JawV$UDVutiny{D#6sX~EYdZ7OR+xd)t8JFN2r@2 zDxHjE(4i$)ha4HYMvxoQDQza@G+rg@gg#phIPUQ%%2AfNP&gune@PxvvqL|`PkB-0k&f|1av>YQ1M(=h>RG~q>L z6m>H&oBVj1oYSRc_%ib#%#KPJW}4fKaU5z%9>i7ES<|>iTM^P4vjvDv8yU9WwIK1a zC5eNcv7yy#*D3v4rwp|e37s;Wybc-cM0|pPoHTVxuc=eCJ`dF?oq`YY9pI?eDL%7K z@tJjs&#Y5?W}V_Q>lB|^r}%8CQ%IyrI)ye~CybtAk{6vKQ!#W3XVNKNVLn{w6y`+t z(XVvd3ks6y}6aW2!6!N)#q#Z}2W#F5Rx8Ce)mR$OXkMc*mnpn#k0MD{7( zXY*F6E;?Z|#_7R|B9k4JY*Ovguj~c#kFeUft969Hkp%$REUvC+&@0=8w%FnrENi!R zSB-fmTT^k#v~M}6!mt5f3M&%0%*sVRH)s>8w`s`c{*|Ze&ZK%X(F?#sa1(6UkK`&dtSa4oCD%mqR z9k*Rc0Cp6>W-J-8aN9%5dLucJ(ji~^`*NgA{#G@c+NfZ%z#!Y8mDtVD} zQz^G07S#8aLJysTUl)ka4 zpir_0tf+SrjmP`pELgNbr3JW?Sd7I4pmy{iPj zrYp3DSHW6);RMCiA#X7xUVsJL6(7HlY}IICS4D6jsUsHkbPMmCQ+ z^pR*VEKd?qg``#E#d7>r#0LeTGG{C_?9gN~O2%V$-}0F0Czcgh8YDxpAH!4!@vEl2 z)`Mp)&Wi@_caITIiP1=S5{1+T?_jJ`AA?41Hijh=u`3X0rJX^j_1$X$At}78fspVl zV?&ZbbHPp9Fj_QvHQl_J@}s(1Jl2MyiY_fgAw_65iUQ53eLQ9jTNc{Y-)-{ZvK%hb zd?r|7yilUl&!&Ee&=C3vL{DxpjIgGPpi?*;M(}bt%G(?^FfjKWJiJq|0myt!P|}PD zdrdmmfsw5P^o^}8_9g0CWRkHWP~l|ez12lau9DdbGh)y+JmiyTRDFJ+&yF_&_#Tcd zN6`B+wNSPZH8v`bvZb;$BIq zc~_>9qIacC$LF&%T3F|9XkG zM1Qdht5;But3M~R59(i-9N(W%ykiru9(A${YBeRyyaE$14LX+9EcDX248mwLlzN&* zcJ6YjY`3&!s%*g#`(e33B?N9`$RrLh{$Y~HzZlAqkh}*UACK7P$8&bKsqmGT(ovQY z=C|@>O9fzVA)Pj!vyHYbC`70WF{o9DS$`E`;MT~5#f-k%loI-Co_{&?B{U-qg|`K> zlf5OqXE+g?*i;iOgIQX;(KZeQlig|~r3jEP5K7(jNO=Jy3k2qTAU!}=NR0?3V^DmH z#-|Ew47HE)u$oL6HytI`FUGZn0G#GQoXq-t#BzYL{}>4vEV<;1TNZ!k?k3pG$t;jq zj-kFXlj&!e6sl|KYUoO2_e^H0d6W38kg7StEfio{J5u*Zqe-t_eYD4O?X0{XD{7od z5^0=9thF&Xt&tTTkJkEPEj5->Zg^{@Q+|fXica}Z#+ByJ()28?eL*!gGkyHUj=Gnr z(bS}rdb3R`ltY%3+M+3dk1rSW@A{a|wToyLF9MKggas_P_`q8*mahm%YoOQpMZl4a z%GXY|8vNb;v#IqGeQZbpgGMYZ2=~CTy$`^!h{1cm7XoMcT@5*7sf3Ql-FS2 zvrbsBDA1-^_Op@1$Okr*;6%z=`kl?lV8IksgBLW)5IH}|Qo(#$PIBP*-1AxW3(se| zN+W_sAcT6CM1(^|NyJ1?jha`|TTMy9bdjBwL=8)KBynhi!&njP#eD0+?jz*hp0i+= zB|;iPtT#-BI|9H?SJOCK$55PneMD0Ir{Ac==5w0|@}{C9N^ zQn7k!aaCwtVSOgcURkhKlI#NIK6w9sIhYs+Q#lj6dQ_`D^{AHTF?201_U)0W!IGlr z5j}_=aZryC-&g6;{?U!pk9~Snj#_u_jxm(P82Cb1ZVTR>vQJe<64)Z^^|rLDY~XD#pJ~8+-s6IeieMur-La`m+}5`) zbsBSGT9FYevz?I5NEz|Qh>8Bl&?cp)5!Yt1p#}{9FG@Y5U<$9f#-*S5lC#@P5kM1m z5P=t<`4Sq%0-DW{&l=qU87~`^PqSv&Z@cm4cyJBzm@Zk7uZEDxTdY0Px}@N82${iJ zqfuYX!p_zcr7#*7B;3Is>PswP=@Vok3(tEYD4-=}=lr`lA5zrh#l$ZVb7#yUV^l<2 z!E-g{naNBba;i4c*`KH6`AqtF-8_a zY?xBiNkVf$>(ZJtVFC%Yk{04Y&c-XX+|up?@{Q?Kxv0TxVw58278QZajlJ1vhxgt( zy7yMO_txg#TU$~Rl4WTy5R+J-RkUP6+<2`~t$S#em3!_Wb61KE*7+35pin+V%m$NP z!K#^?6f`_HarEgFbHICMRC`3fi7dyADyt+F??f2hF^3Gz==bW3D!H_a=(o@QsAg2x zmouu4Mhj-osFI$+j4D8t>oT;xol`xdN6LzHKr!U+f@go8k}22%L}YSIetb?(@-A$<0w!dOBWBFY;sQIGvEB zVO9fiqz*F6tIQ7Y%AN6?X?J}NiSrHGlz#AeIn@NZ=HB;I$RmB57Q2Pc$b;5rUp4*S z-UZRng$<(RS+$n8D5HmUxP^q=yM9s@@$*YbM>dB99+{Lvulnl) z{c)!x)HV>S`IF`PMUimVoPBbGZ?g}~?3{yc0;%Q^rkZza63E#OMqAY$F#!o5Pf-pj zz=_CVMzR(;RHg<5)YxZp99g!}6`?qrVkWUXOs5;+=aK}47r9IuV$k!IscnmD*-|w2 zIayffou1}s7X}14-Un>imV00hQPrHL#Jn(7=qRiC;3M#+X%p?UEWG4I2^H^<0a{0F z6tFbvMN~!T`Kh~2Wi?YflYlrcuhL18XfdG^aHLtC6{%b6Ane18IR%#7X$gI@9+9yx zQJn;{W{NTTyblnvxiL#@T4`R+#sQuM7C1mFYA)B?v;w`hOod_S=MYC7hm3WKwn7y# zgY$@!iye>0VKWXXilz7nMYN+23{d;qOnPGj&8$%IPM!2ZMNSLfdBstH@LuCvFPk$A%FGlhCp>a%ysGQjet@;zr&~ zp^*r;Xm&`biho)ckgatx_G`(Jf@35icgCc9X~6&!5QsS#P-9IS>kyFPc06SV3hm@0 zLD=5`lP-t0>rFqF+o_a`MqMhTx0Wk*RjZuFwbVEc<2lwXw*S&Y~w2YN|g(*6s(iM8JrO z?_zr8tx%|!3Us)?in-?{IoDLAk7**4WX)do;u>`u3K#@%P=mnknhg+mum=R)OP}Vf zLGVip5ca$T2=z+~5Fk|lqI9S&Bvd0A6bikH_CjZT%aXW(KgTy8uNA;WevFgYzy^e} z3=jv1yzID65W33drRxgme-j=+`NxgWeB4ljD3VkiKKBv5|N(+D#4K?9baqc2LU9Z(kIvh+ypp+&}%Jt zS3=p3EsB$<=9a|JLM5fiUT4o|)=9EoR^v9d4t7Bpg4;JY>j;~#6qT~zPVx@mXfL`w zbg%Uk^d^98*8u8J*l-O%7`kGpMx@etW6u&XJ=20R4#bC}Nz|RNVO2yg@j_>2PNp5j zqdA96NkA;LYs76Ex>$X8V94Ka275BFUguw;-*$K#R z>GN??QtB!-qa9Tqi$;f&abUAxU6pY-9EWKfG~ouIJJNMpN#zd!wjicHS6b;?(g{XJ zmmAdvHN2}vvBq24sHQ#o@jhK%ZZP5HQ3wNCZ86y6o9K?H62y>+$J$wDgSKMJh3(@*4!q%OZFNgL6ZupjIcdE_r|+RXj(*T zP@E3xrUqVO4mixBI@BxPV){l0WQW4?X*W7#h1f(9Z7)JdkaTOY86!cAotiY8CdNJm ze>->EH?KM>Ks%E%sf%uA50brT;8h~ojV2_EXWgl^OseJCk`n6fCg*G6qh?DapzI>2 z=G@vB7ZlY~DOoYof|O{V#Ag~>i`C6i7ot3hMBB*9U&3X9#z+Z%8RCkI`aV&0v1#*G zfAtn(-5wVr?Mn?e=yO$OGJJdzp6wZW?fdINGuiBm7tZ_JnAy<{>u!vkSmm# zRScQcxVl5_DFcAIRk-!xAUiap~SU{%|=w!z@I+3vCD0uV-h6%yXcZbt}ja0w2s%-#+i_f+*VbyXW#PVdTCIDCo+iAL$20 zi$OPiC*|>Uk(zS+{VC()j5jt{!V#LjJ)V-B%_IuZu||d9M@96-0a>ML(I2F3Yq+py z8*Hrm+J9f!$4PYf6RV8Sq`>_#;Wmtg+|yVoyuI+03MD?14B<-l z5*uJj1hY%HuDla90NvHHI#Tw@PJHXufi>KMn9_9~+9q}m$!l!Pg>EMFCLr2a7@D^V zvlF907?jq>#xGz;uRMcOwB2~bB}8ZThlCgOSc}Bcrb544un$!TO$SqCUfBO;Lu2*B zLK+@XH?{GxwT9=hR`)+%-S~J5`78{U1tilKWzY$df-=?Xgf%^ZHPFg=TAfz5d=HGV zsj?n5*RA1Nidx>=2n1@e9|Tz>>*lE4KBSPk%f2SL<~?Zz+W7s7SpjmaQ@djVPo!vX;uzQ^C1hG}j${ z`I`KCZ{d{h%!eV86-=;5UTccva?Q)tGyztQ6l7A^KoYT*VbXxLTp)i{fzr12-4w6= zTMM(cWTJc3FV`f^KBI6g+GTAvurxzw)z#rQHl5LqmvM6?ZrHmIcsp=cI@85^{Q0^z+XKd4}rU?v!z1hYNJ(PGnL zLt()@S?LNNNU&gDM_`O8QM}BPHPvHlI<;%mm03^IEPGDZQ(39kQ8y$ zw+Ou&k?+KTTDM_g+*f1)vw7^_qgDX|9g98SkQ@_yBnxj7h*Ei?E%M_a zgiEq1X+!@a$Wc*R`>HJf?%1B*G4D0Ad9+aLw-^apB9^qwM-D=bwES_2I0c zzVFp0*i^2i(S)PoumzatlG`g_XuqWhb3)%x+n8+#eUwqq;5z=-o+1a$zAAT3LYk<{ zd2JRl*HC53uFFX0sdIfRS=7{4)lM8Wjh)N~o9};nf2S zfceqNyK!Edc1JwGka+)ng!GOQryV}JJ-b#z^9F6TLV524+QM*P1JLV*og1j~h~h^Z z9uWErD<4rWuPv{C6d6x}LnWVemOi4E!{s4D#dCeUwq#C<46(GuoN02Xdi{si1_L5> z11y$;HiSo^?ktmTbCdu4)Y(T`t=<^Xz$oJi%&j0z=VYa!cx3@3mY>ud%9|I6=Y{n!Za&` zuXUBdM@1fd(wXM1&dT7UvLd~yUC;3m>xd?v#QoB<8qG0~abRWyzf33?R=SnLYKe^< zF{TGGYDg1E5})5jJreED=kl+6qyKJ$O`s#h zhA|iVOq2yw4ZFOWU`$q87TY?J73{2yHKsm=`^Iyx5t8SI|0YMx#Rgis6CL;UFkRCD zUytLuG2x^p0n23Jqbca!Q(Dx5HrZxJ=T3(AG?XJGGZR0C^FHh>8ETn~jSf^TYJnxC z+H6%*WdTkJb&y}ki)G6ni-4xs*Y7%Feqc^WW(Loy)(5K>ScZ^a*mgkI;~R^lrKRY4 z4kf(JcNYGKsxET~CK?gPC{zIc4lbYtMvd;r@ouh#gsI4@OK2$~)dhf0zUG`5gbIf04l*M5z4KpHsJGc#tTC6QoqU?PF* zOzm^KfL_-6U|HT$EsTEd)ZZ-HOIc46Q94Olb;pBD*+L3ws)36HFa?vQxk-bO9Rc?4^EzwQypf-A9(|-m{sZppU*^Z z@WYtZr!*nz%eA_+VLT>6GTFEvAt&NX&!zo;1zeC4 zZC67U8h8(j@jW7}W;B};XgplArJ!s{7fUY2M;@ty;R+69iZFf_>cO(Eh5Z_Ws;0GT zg-av^+SICdEr9EK>$?2D=Qb8f*3w({qeHLV(YJ2O56XPJLTG_+-cYGSrc8L$pUA_R zct)SdQ;e`v=TgC>m@21>50m&H*9|*O(z9w!--^dku-h`@3afKnE;v*~q&31W&_}<`mX2MzkSAv`gK@rO(dgAuPCRZRFB=MZ z+yEC}6@MQW*yO;1eFLKY)Aeocd?VXd21`6@ep{S`9U$UcVX{o=bef$UNE`(XLbj?lD4ksYe#IM z77j==g=i9Q;PE_31|R}s__#u00MVN+)oy6-14Rx4A0p2f*?~`sK5%I`|G>faisEmTusAm^2?y_ zPVAT!gq4{N$04OVa$UTS#(+39xGnSR>IBK_(a61Hg1 zYXe-O`af5me}2#NUp>%#|G7QSKYy_K{2%Rk{yQtrzq04~r>|+g|Mfl3zqIoFn|q%B z>y_t!u;=+_H=6ZdA>nPc|G%>G{F8g0f9g>4{ipXl|5cuM7x?|`p67pt>SpWXBP zFY~<3`w*>PeK8*6PO;MqB-anqgY22nnXHRywUE=;oKNJ%#_kuG0uM~s{}EQfjknxY zWQlW!3SkouWSa2q7uQ^q%ON!1Z|zi?MS@)wGbOyJx0<_OV74j}?T z011P_*|mHU3x9a6ofR$eKT8RMT4dyi48oP?CM4oB_=r4ICnEO2AUnLX#+TFc48M6P z{|U~g zMsN(&l@4Te2i5^zad3B{+_;A(u0MN$T_6lRmIFrB87}vO-gjRTdZd80*DCacPWM$_ zTJN#Mn2~~7UDcSryU>`1Ks%{4F!tWmrb6yZjro8^}ROeIG4c+RBC1%CzzC*~SN0G_y3$j(QqLRVAPOPwyB zrvY7&8_m@}N>_({^`&%m)K_0lSEaAMlCCy=_0@E><*ToytK+`(9I z5pZ-;OSp89L{Za2D4Rxjbi*i65?s>g$>;Wq!C$+vT#v z3AA#Z_U2@M05Q)sW`@eMu{l3n6SOa{kqPcJGJW+yt?NCX0g?9bQH$Qx$8AOIo_i!k zE11vOVTo^_vC82%a^E#B2(9I4Om(ebB z=gFrYP);;-Uuc2iZuMmz-{wKiL|7z4q^v(pX!u*_priv#&>IwR;)S?r#>1iQFXJ4( zppZ0+@swm3)k{qtK>ce%Nq)&mb~RQNuFKOU2lNYG7$QUJtyj&e8YbrA9- z?W>Zb=a2pkoMmt&w%*32vNoT-4YP*}Mq+@oU)KgKObut|(V>cMXSpepoz9o*CO zsiB!x-mcqw7LN&E@aAw@lB7g_i>ypZgGK0J$AJe}0ZR{#z*WWI#PU>vfNW36HJZci zxLsnaZ)aapk_Qd|U|3Wenj6C7k{H0j(fR6|iaRb|@dtcWj)s=y@HH1Dl=SecL^E2| zPswP5x1wE^kyP6DZCTRpQY=JBE>hWlW8RWB%6f7H^;JhQcG+cre?r9>JgZ2?ie0w9Z2^1BXeHBt zxI$R3P)c&mEC2sIaRoc{8nY~o>g6GSxxB<|j=sQSNkE8}TVKp2;E`tZNelQ80Tvs& zzbhQNm>KJMW-JYG88Qf!4_99I;#dtB_5PD2Gb*P}a0pXilKAz#5h;e@Z4s6Xhefc! z(PQjw(&E7_%g31akf)t%9IB^@;ZyB+7+%>Iezp;?d{?fI7C>QnA+c?Ffm})2RkN#u z+#gbppwv6ESdt?HUhK%cTf#Il69h%z8KF2RwHih-0t>J@yR<1;WuggDSK2Xg{9HdD zEAm%H;E()=HWRWOl+Ao6|6&<-LGQsF)oMvdd-?;j5FoPa6cWrlSDR^D1Apo`<2mOj z2)!}~EX7l(LEs9?i1(k-ch1|2>FWNRL600r>FB8;$A3>`G8Y+-z`<-jWKhJa{s)Q( zq>-*Poc_(6XsU7-BC7(;#aNfDPKT8AfUJzrnV(@3Md-|j&A2+QP}3!9`_$KDl#|bz z7NINNDqW3ryGEI(dCVsp=x__UO4Kfr0hD_HUfg>IZ|c3xxVr1m0T(j5%(*IChWnS( zzU{=^cy`-!1al~MS1b`8XvKmwLF&3K6F{r(*J$OQi*>8(nTCZdSbU0>VroJdEyyGP zTGXOi#5YqtUI79Q74<*4$V^e!>!obQ7+fs;fm9u~;!yGq2Ay-0;RT@^;3Ef_@fDV; zLGcg%-gQ9H!HckIAqJO1+h9{@tWS-%h%G>oC6)w<*$L#7HKLR(?C!Apgc@bIDgYx+ zgYoJ6qCra-&!LNBNUVW`ep{pm71KR=;qWy97qUraA(HF$;*pRJA`yMnv`8Q+&2tM!ym~ zv2UPG`;t=ahYD9~H6^UiHjt&VJ4Tu%8+syE;UfSA5ibX-hR*^jpzK$-I#ERSX197% z+24V;_W=c4`x3yC!DwjshWRQqIZ|HG6dpoK{2C)WuZKM){@FZ-U;5?Sda5rPBQ%_T z2?3%w+)OcLMT>haVl?WMA6?U4t1(EkhsO!cBj4uns%lo1o_NVLNcuuXbwV~|$F?1# zv%-yaiwUwYT$XHSW4Y|uu$3t-+o4}QeHo^4sy6EWr9ffy(&-u$%wAyF|DWXV&f2|e z>2K2bYjNI7*Zs+)!)e}lJSn*7#*G2b+Y@a6A-nx#ca0?(SZ1I;vaMEj*C!*zaB-7Z zWOi4(QHnrpcGt&tm122scGsX$iU3e{*H7;%#RLT2MwiU9dnOZ}j~Xuk&Egpdx$6_V z-o?BoAL{{aQM5#-7KPO>YQs^ni=!eYG{dAOboG_&jG`7P#SM?dQhDnpAi?KAY7|=bj3Us3&qC% zBg98TnC1vmGID8g0UyG2kc4S>MVLw)>=LH%L&BGYsD!DIrMW*22vbbZ5T*-cX=C>w zAU#?^mpCbKmen|00IGeDkVj^%6~55QJ5`5tm-bQcpi!w56I`f!wM>&2IF=5=Iyvja zKf3{A);sifY?)4M)?lgcX0N@9u@*nbc`3-8jYAfH?F@=lC`jo9rI6=vzPXoGDVf@k zS`=K1$)F{SAc-o^R(f~HR>3(X!D^&14(U_$7TKXTaEx417BdmR1`8ky z1DP%8(W(lua!v_-D-(aqqppYo=mW+gn!3IeNywzYhN=y-MB0J)vs2v|T3w6KaB9VQ zFlq>)q-#96W~ktA+-bnaFK$tD#zA+h^dQP^m}qI~8B)geu|ELR;5=!)ugF*GqF z>?b7FqNqbyJu}-&)kr)aE2gv*qD%B=AkUp@rkVE2&wHzN$UomNUzm^%~~+P5MY!OCwg{q zIq_5o^Q(w#dYHL`09rnyh}1T%X)vH?WS^owm4VUJqB880B!$P_fM42OGdES8y#j_~ zM}|O2dJ~gy8gnFjr)K0tymT`#RT5gw4k*ItA@4QHD=jd*C4QO>i9#}Q4G&L988nK+ z?5!N;#psc)F8gPW+@5WC5wR>iR!yDAI^tR!0T2rYtl5TWnU2Q!a2tfVAm3* zhQRGw;1Zf$QluepJ1d4khcN3d!$7lj(8r>EX&6LGvqY3spUea#8EKmeDh7YTQv^oG z3)Wh8SS+S6hfN}xqRR1G2mvX~CDp}T;6O=s`)d=J2Lg2H<8ISucomgG!H{Cek7cWp zCN-~t<-`O<6OqzftspAf!qnUiE^CjqSixn%0)xP%co7p&SX7e8CpwD$hurf)AfhOc!w|J61(#E>whw$q7qb;BlyhlpzBuy zXJ~L#^nQ3v1M(bIr5M3L0RnK#(|ubhG&tQ2_@?fGym;P-j_v!JO3+6%J|z9M6hafPP^#sPGsyyGL8e?Kg{7*Z z&M?Q8Z86&OBT`2cDqBZ5*{_tUIx-`INwJoTcdD^g_G^m+0&(bHrkVl7sP5ymWQwIz zd%)Kf8IX$J41imt*|TnikYxh5`iOjTTIo!0TQ^q&zIP2U4ce z8^DV~@0=rhb*{Mw?`Pm;w_%ajUJYXR(p(X2`Y*HEv*wVyn|wExqx2M{t-P^>s3QwW z%T2&STb7;hFN}aE8mY3;w{o_mfNO*1CH)6Z3d|GUyuy>ka}sDv;(L{NUfjuORB|s+ z(P2X~%Rs!ASUC?s3p2F}KbQkZwe3J zQKasvHZO26v|gCyIs~?88#6!=(9X3+jVgI(3BFz){n9v}C_wv-Y-ipwtDlQ^}=C-(q1R8CKObwAglPZYxnY-gjWY3(7 zi%6ciAC6}J#d6cz*yVyn6BfA2;0SzU)S+(Xq&+M5h0A~g3r`mThq7L{2so7T!bQMQ z#znxvRFIwo99wY_a2y8?=6x7;JUQb+Acic2w=-eG5rF-s>yR)kd zxjVb=kh`<%&eongr-W9=Q5g=;A%3zFEH{5lBhi%G&Z2nHN?|Rju7aDSuU5aKsh>C>Y<@GoO7BnjX=-OqWi{wB7F?1w~qi52k zQXEd~K*E}G3SvM7^##6>sMTBE&7yuwrd?NiGpzKOx3Q`!&w@q+(_1Ol5oCZIf&iXr zOK1p@oHK-_gTw`kA`pF1L<|r`V0^0$&6a*YIEU4hxYZQ`JD$TN(r#8X(|K1b*`?W^%OBN7>-yf! zq5^Jfk9F-e3U7I{gF@3f+U*C^SsEPYN_VJ32X-OUp^Rr+RK!SUKWop6(xcJe*LGBB zz^OAM=n`B8#$($EAx8SAN;~H>x?}*d3n;{|3sIhM@s3j#y!nSU6fXi1ac5{v3GXt2 zZKK9fVeeGB#%&Qd_ly4$K78Gc4 z20hgF`!opJpdD1xPPg>csi;~=4oi7ovf9u=HKm&y?ER_7;{UWm7@|V7%hd*R%i29q z+f=~@{n6hjU;~gxS_#&JH)tyE6loOOC_G6@pT!|g-dgTprx982U?*?5%f2Vt=1@D= z^)a&V%L9G}8Q7n&{ zpF`3DWL91IHwPRI7Q*#)@%Ww{v7~*fQQ^H6X~Qis@CqCVNNAtvA&5PZ-W%PRsa0cF zKOp(h>M|b~fAPg$nZLix?mHrzZ}bl4+tu@rx4aE&by$N)Yiw-Krp;e{VAof%Hinvn z%f}h)`RIq1Z@2W0-}ae&gH{X-9~xV~(qX+#qvu3sZFdt)X5(2#v1kaDa&L75kl(bE zw6HgGsL9)m>UV1^fnw#Ko?vmOREw&&vvxf1cDs4b3XV4aalZdw$A5?&V5&AAMc^YA zRojNRhvVT=p(YJPR5otwOP14fm6I*Es82V9x0M_4Ub-RsUv{*Hi@zTPn>8MVX`+W= zY!}iQVPb195+KZQu;jYx6dO~Y&(OK+WW0)_vP46Z#w8J-ysbU>;~~3P^UkHkU0>e4 zdI`7qC5diPLtRBi0(M;L7Mq@D)4xV%rhip1@sQE3mY^Ir$vTKO1(*3@%5>jPU6=Qr z!O_{7w;A))A*g-$B4PrtTW}z(Giz0!`pJWOoK>Iv$%7h3nK&MUG9;GeKvq4IOR9%> zvgd7#RORxn@?B(pQk9rn9vgkurIK3PPOXCsJktJN)7iYmc*1M~9sx4FOE*+rZLo@isad{WTR zxY}b7*t}YdT=q@%%w5>)XgX;DqYx*7lRk5M&w@;ML5)MGGioxme|Ghe8bMDqUzpyz zEY8dK85TqtOA%RL6{x{7amU^z&~@`OqP`#U%Ki0O6nY@NyniZ~{QKkZgK>CNRbs#b zpRAR5;Zh<8CL<~jT%Rt!1Ry&7-qXdGITbTLuUmqeMINXwPQOMbCi4;b_VhjOc~*V( zO3wd0+bX`1;}&!;94Ye)y8JDIG1X7BE)dZBK>)wf@_dS(e2uRENTA{CoIYw`UPvwl z&p*%TCp725d5-qJ=~kaEwx{m}Lllre4+n&c7w`n&uZj-jj}eqfw-}^f^49jP>W)WQ zZa|HYdPYP_#M>%zuYHSztX{k(yS#qOSzBfCC~~%=-P$;$!SgM{_|5!YB5L%D>A+IrHb|C|I8(RK0=w|7=7>C?k1-hhKpe4Kb9mw$R16MDI3{E6#nQfS$)j1$6*PzG;;X+XNy0!VB)Fvvq0@ot2!&_$dh<`g7y zTDWK+yG0AUtKphaytREI(-N!OvyZ}GhRpj}$e?99LXFAesMtcL92}X6pJdQ5Jc8O9 zfpBi(hSSBz#2-{7oSVixq9u}ww~Z(A>ffh2p!px<6)73I`-CokFDH@dB8>h78>FBe zxphu(IxCtyKILx6ew1eA*~e*wPEeN?lfmGhY;6lg+J`Vx&Q=2PTZM>QgZKile@r6a zas(_yGpU;v!&7i2Sgy1L3(QGFA8SDy=7=*-t!7ciu&VC{{p-1~sUp(H4AZs-EIiNa zPs2L3*l0`6JT22%Poy4z8`1tJ3Bgf@d(S``l0wx8euxg!d5(F3f$b}LMhl`J5<-OB zsC|;!>ef4y!MsV%iXH$c3QUBvcp6*ynckB8?i0dKMvah_cKlvgWG&kQQ8Be!y=FVr z#`|SMRsWPexdu`cQvE)2F`wbizWV-%r-0Wruk=R`{y6(X-C1E`nEfD;trpWoysc|K zgVVZ`Lc$cgu4yYPBDwm}Fm*tP6RCE@B0Q_{tso9)pjZ50`(rPvd#YVx4t7@PLL-$3 zjQE_JYAV9B;Ux2Zxd4O#&Gp^9Ifia9lPZ^GC^`leU8P=9t+1W`soW_U{8jDw%o_+vsa2GJ!{qMe?D>`# znT_3GJm!|X(aiW!~p&pCI_a4yLq z?}*&zXe147j!a7wMah&jnaju;I^D{7>0Mvg2fh!Hb}+^UUR z$gNM&#ieR zBDt15fnF2q5JmC&Oo9qTx`m-hGTecu@!Qz%n&DP_RrBAtmmX`-%aUjbUC6N;(10oF zALTPXnf*J7upU_8FUdr9c6R+`E+Drv(B!f-50GDW5+icYx`e)5?Q;CPC2@)dyUnlr zxG|Csl@)Bfhcl!>V9h@WM*D;WEB50O|77~arher8Lt=!DEO3c8;|eIBo#p`w|LDey z=b-g$cI%?YPHt!@s*;Yy$>vHzt`K!995dSlF*M|)sVYxb7-VU9S90rgjnBCViHAkNOET| zd!LP2*NMTQ8VYS+4C^v6g?ULwiM=#3APSr+u0URh(QJz!MOU#BD8%nw1+fGOT-%(3 z1~@_^fkV#CRYK8GaHU|VQ1AS>6mZjS3#BI4C7wUMKysx_tEO?re5a;@p`RKed+u3h z-zFi_tE)#e`KD^`mo~f??&Rl$Naq9Lz19lU{-&akeL*CSzhZRD^&8y=SZ&cZfMk=M zjYLrVIh|7RPja8l(=d@a12nRHV|!!J%gTb_W>DAcAp}6L!TIc=MV=_F!MMW*9s2PH ziFznrh^7En5N13Nr#tss`9uv_LO+^~)elmGZ(&c}|HJ2H>ncws6dc0Ngf{-QB1wc2 z)^7e(Um6GkANNFAs%_Sh&0Hyg2;IIekpjQB!vI86hm^|(dc&O4T z7mO%CWC&HcO7f=PQSUQtM^fbK0a;{lVy3e6R!j34cfFh>%Q46i_ySW~RV%eqC#-r} z`IR2Bt+hlZA4-bJHgCUA$ZPN6+kN`6oSIAhFp>g?I!%_^H$4Hv^ZSKH8lk7lz=^04 zB%RJMiQ#fuMxui;-R`>bkjNBwB)mb$J~ z!k8ef$Ze7rznv3R?J}9@Nxi^3fR;E6CChrDYysBntX?G+OS*^&nxvLy^$ee0HjG)C zq|^XApP4GmYaV|iC*nCs=QFyRJ_9q^?CEjRg79s|A!xtNmN>{^b=BPi$eJj2cbQ{j z)mC2iGmI?UShR%71Qj}LB@eC7Q>z(hQZ^9kc-LsUpCqvW_R#@hw4Rc=CJ0EbSUO0o zq$nt>PNQ#Hd=7(JE;H1Bp8(RjgX7XMrqbPjI5s)*_b?p@UX@PE9k+XBRmEQSO$*INu;BW@ibF zKTCCrMny5z23c~RD0Sw5&Hbqg2*5=|(Uxr#$Nbse7?#-IETPa6cVYnwWvF?I2^GNT zr+2XGfBs|nQ7NkL5JqAv#w8UrSNcBN81;ukCQ0&aFf@3)ja|h!@n{~4#m7L@lZ!nl zlIh}!O|uN^4`W@41by)}+^++XyjGVDQBWYrt$cdKagz9#rcRI6rL-sKFnSxK+SY86o4v2&eFzuhtEI_ufPZ`RDK%|TGraq5Lt_o<> zM1UZqjtioTp3c#fsut>uBoeF)+q4qC1wz$h?EN068kRtRS)MhHsnZ^${YFwfJ0jkL z46RHN4Knn=L=n1@#&*CNS3Fw)>0UouS8MFJRWK?Z^92Y}GCMbJ&OUpk&6of>-%+kd z4mxD!66|U0gJq()nzrHK$~Zfd8d-T{aZxe@3*Onz7r^6b043E&KM)`pEpn&TMRb`I z3SFa8=bc%iSH9zK7xP zKr=>ABoXekC4eSwi1g^)<`y++v9j~;MCh`xmT9Gop~@t-RYi@UbI4Jd`Cg1A!x3mG zufx2lc2gq?AvKLG2)^!UX0?KM!)hZHH<#EF8>To%Q+W6u#rqVx&GZWN<`b zBx1VHYEr8+`sFS|xH>nN?S~8kcu?RYUyt)$<^V%@6nk(s0vY#N-T$=w&55ia0fby3 zr+n%+fu3(UW~TC%WYtiGj!=dn98rc#j3c$q=NdH;D$me^jC)A+hhxeDAjE~-gGS`E%gIRZOSq43(&J)cw{NHr*F01Qs}i881J<&hF`epspr_!GMO zb(u0$5HA&ue%OW*FIBtZ9i&;L>gJ?Qnb!SEGMep2k(?XiZ}0DsNhNYTgwwGhrMhs~ zTZ47@05~5>dJ$$(p4Pe^>HBOEM+apU#x%I5vs%ZUe|iCcE^w>WK+KRtjujg_Er#~P z0Y4W=4Y}8RtgUZ_yf|Qjv$SYY=%Q0yI%j_;(Fps=R&0Npu<$8%dD7x}`jj|Qz+SN9 zFQ2Q5b6X3jiy?{_5w@}@waU+^p3`NzD!Cv6rUp}8e>}TA2LD+kG0XM%N`{!NWg-{% zsHiuO=qZj+5}&9^@zY8eekScRv^K}MNO`Zf&qygeQcc@i@;tR`7C%SZXG870(AOCT zH#N_ye!3D5()=;q!Z;IdX>v2&3W~Jm9`JU`t#+$OZ;x_IL+%T2iOi`Dx63UqRw{R_ z8pe?#75k&5t4Xzyt~iY;U9DHMbj9{t=?YN9RbefZL2D=@ZNX%vr8JSw1R8BmM``R8ZxOy&*x~Ji*EdBSgw@pfKRK!rB+69^uKinEU)d?ejgpc$xMo z=I*coDYg|~yZDU4Te9d?8Ie5X$$S`H0t6!&Ja)5)4x^Tq%G1MiEK??P<9|!+=mYYt zvA8Xa!VwU$3l@Nw>O}4We_Pbqa2y;?;c88v3K&>axC8VYu9QAq45c)*DUA)Swl2p- zo4U9$9_@}wSg8h;r*?gwG+t^MNpI0*??iwZXvIoZG9mvn*ltK7Z?N{|0?ZKm*d|}- zvs(Pn0F+dt7c{&3{qO6rl;$yjqb=njeWgI<>f&2PkdVNQ4EJUy!kPGG9fKKh(KB{u zCyXkpKoG$E4!ne43=ldI~9EZXAhm8Yv*AgC%!J0rTY!DPZQD zwcknxw0y2yIi!F&bSVYQp){mpMpmT2n&nU8Uv}2$N&&LiBn29_hZ{5`w`(b|rlu@k zxW%a6B?VZnnz(x@1=d?BFsqKHw=51zSLE%sQUIVy3h>jiHO$M%=o8ZnU_=302!^G7 zjVKTo@C`ruMq7-DqD+R{7x>UIcwXpp3>w!WlIvR!vCAJswKls2l4jl5sp8uO1|;+% zX)d$g%%G2Kb@StIt&TPm!Nj>Xafo~8H9EE{92D~+tEM4D>RZG8@U02ybT;zd5RwH# z34E40mSxUECMtK2)zY&MiumY_dYif91Nj0)-7^geKD6Z+fu2^~r`Ad#Y?=gB#R)E- zt&y6jzAZq=^w{h}!U6$zQeRJ?Uo4hz1O;7-CVeDFkWX<0dE7dJy+^i^xat>Y1g(Tn zCJ$vJD_~x1*MI8e;HCP?^a?E*r-+^Hs=QeLt4uNR>_Mw7b4^O_^P^MorV6s~PCz0N z=(I>*=tt^+S~$_E(36H)N$gF%nbkNyp3u>a2k-<@6a2)1 zoK#w7O{o+lPvon5!z-TPI{9mCB1>|2$5wJY1|F1P3dWs=uH4Ty08Ez{B!QQl5CGC0 z!}4(=XSo4-U-7tpJ1UeH5c%V1!}zdLbg5teaKydj(;{YVo%7vlc*{}B)$msHD22D8 zCDAs)0a@c}n+RLWqZ+C8pOuu||4>(Qm3;-)py_~fs7pJ{Fl-A|mQV`{)SWCqab`10 z92Xi4U2gO<20-7_xEr34aq4#tk#W_$q|?b$Ce;Fbn0HQ5pD17PIpQ9gpwjfA>{q1@ z>wq{YlW{F{&LJ}g)FKyGaW@4ANv8##b&gYnc|-UO(ga?|qliCr5Rpv4DA#MtZ3bNV zOdB%Np;$brky|0BlmqSw*F#be5S*_c_)@vO&nt=+SXkH3Y=Lo4q)ABTI8Zqu-n*ki z;0&u|dthEYjT4~UWe#dRb+pVD9Ga@>>1jX-g~OOhJ#t7@Yh@|Sq5}1_U(Ix28ZbD@ zV|HELG)18YXRm|VlH>=crI?Kg;Ms9Nt7AN>V$Mw2oW-BvwrgubXY->fsxiDhk@?e? z;6}Ru51J%(L5bl$&ig2RUbDzR^m}7SI&qUKp4R0h&JV>B6!Q4L)TR$CURO5nwEi3} zEHx`ryL>kC4cKkg_eFb8dKB-;D|9|WhSQ<@bfdG(NSb2dseaijmtXKfLYD5=9#!yG zk{zdpPUAB2M!!S24Z8f0GOV!s&o$pfC*# zs-pm1kMY*oX$R=1Q-|-vZZ#cnh=m0G%7A?8o%l4FpkWlVj+g0bo}%n9br|JbQmHdq zY)~0G94f;VcJ%B{3?8q${&oR{H^W0Onf%f?)wdX;LZCZnTjO%!bOya~Cmq`lmDHsO zdMn#nyGBZ0pf{*`EF+7Nj{rMy+BH5k)y{5Pu=?iPXgb^tDNV*A2#vZB3Z_wSaSvCS zMO_WJh#_zR1e}%|45H>W3dS?6yj}}tS$SP9zfO7fE3XM*Sj6u5x)fuONG$Wwj3GV* z*-fK@Kp@O(wOl0tB8%MLG?>!9FH2-W;#T~$<*X_vdc_eAb%syW5njOy3@GFL7E@4C z1<*(81f-^&FR|kAqtM#varBTyH@B)U(8>~B+C`_FF;Qe2IgnC@I@Y?v1E@A+lRlyLn6a+ zN|wQyukuhHBWCDETap~-1t@v0ZDne8btupBf0Oy=|}hGC;yK8!7=%wJfCBFzIoGHd|O zGH53J$ZP>bb~{U)_geVDdJ&+C2EeuOgZVFTExm2wNA5O2Te{oA58+LLuJyN<_|YlD zbitSdsM`F8#+wKkMuD1bTwu0mP=oFTg(uw7l-uW4$CJ=V6Ku=yeglsnE1r>(8c-dGA3zvTNG^`8t=4rGI|!rv2&0KPv~ZJQIQ$_?mdBkhk}Ng@?TMgQ zmVq=O4}z8qRCW=hjMxANRIV~m!-kB$MbKdx2(kJy5Cqf7gaJ4F2u1uz zeqmX)D1ssMc!?q;v7DPEq$P~ekVh3F?>qv@s1x%WiAt2gFj0=*Q9efF7idk}Qn0h! zv&K0=5X!WrN6sqZD~|E-CNjP8m-95EU6EC(r08X!QWMW;ME1ok^DJ}97>_2{L619O zjtTsjaN=oXM$iQfHN!lzv#C3!h%#6{@>?f^a4Yws`(}=C(+qruMK~V+`Lb7Z0@a`y z->^;qqWgqz8huKGEoM(Fhv{iBjk$EjhQ8!G;=sKu&ok>;AgeFi>1^Gd=*)!!PrYwa zE*ZcRexf?PvPx^2n!IJ=Hr^T%k;cHBtm9NM3`M1im0K*2z-x+Rf^HgA)Y%OCUlgoN zQ{*Cs>TXkEN`A|kkT1dkj_j?@2vEN2Ewl1Z>LLZgF-uPj~r~*;=FZ%gp{Cp;Uu7LA8duR3~{eD#^5ot~M zpXKC(`}wITR>cpiIVGz~)sw{|pci+L24j%fpX&-y?*++zMw{u`b8$tvuhL?A__e$^ zv-clNj8w@uS!{i@#yo$P6LS*$Xu-M7T-{X+wZ73;ifA{aBQpi7{V6O+xgeMIC%BUp zqaSJ}#Zh5H0PBBs_o>IU(OtLri74LNzc}tFLs4_HkC`4VnMksrClZx@1;42$>!1Ni zDJw8OslTBWSKeJ99#HV-!L^wkMAyU)G}9|OPxf4lkOrDe8mvTAzk`>^pzGB}gXo}wQ9+;fYAc#{YH+hDlIu~ZjMc0%! z1ybPF$7@6%T_9YmJTBGldxhf&=MW@RQ`p_&yWCtz?Tg|<{SDDF*F1-=-vnEVY zAAhbs{)>ntxdXRHKA=xb!c%7fm`*0qQn>GJc>x{W%j*~2KM|joEV(1NGKyx&qcH&6 z*k=Npps8qJ)}23_Jq4&Wd!~NgOCNG#_V?1gKCq)2ix{>*B8Vgvz-rYwxxbgy2_REk zQWOi(f|g=Qr<&JVoz%RCu19J_fdri^dxf=&a^~~X*^~@0LW;C5%7#c4e9%Xm?5#lr z=8h*Q2c(^F;HiJ$5FY?`!dRapiZzsjdLVB^H#(dlZ?wZ1cmm>#o~F0N6Ar6m9doxA zXSg^J*{^t)GX#icNU;DR_#!w|R&B#WDrtg09zkchC$Mrb5OS%x{dvPS6o@kuLJ~DG z)ux!(t{*K+*LkNb0TyJ7N?k0tFtUpTf(L?Pxw?PB1~VDCK7(ZyWE<#-lQT|254VyH zt-AV3?w`U(mhTU+1C}0etm2$z@jnN(W?FfV3j~<8B#|5n=7!EMwBHO3uply+QqFZ^ zN}^!EH!-C+5CSU2h%T(@NUkZLm{ME&DU(xu*G3Qo(!`Y`Duh9*b*4!i!)H?SZA|1) z>|SY~6ADGvYx3-+4E2YC8q zzaWNEDP`%JjOnyuXnyzJwg}3VPt((}R(eBs28DD8Z}=8{5436}*N8iuZ{-)n!I3J` zdq@sVArP?@J5kA%D>|&g`+ml4u3Na3Au{9>Ti}aJ>FC@201?-_Xcf_WrYauWV#FdZ z{>MM2Qj_ZkN z9_DQJ3sEuHQi@_nazVxKQ9>{yYLiBubZ z)K{l;Hi@q)?fc@Z<03g<&Dbj@u7*sX#YBWP+ZF0%n%vV4$U++7G#=S2QlN-p@|y)E zF;|>$42(oSN?j`$a(yLPi9@2t#;oYL2~E{Lxi8LvfUHn7-zW7M)hSgqIBiu0uc4|c zE%t7e)&8mq{Ise{bc&|ZCIaqgqgTmuhzSci%^FneZiY}Sdm|dZft^|D2>V<)isgL& zEBU-A&+Kfx2PCAlkVMxP6kx~Ua2i}+Qa)&soHky;mSa9C7f`x&AT}cDQqys=INq6k zL%*9f;c#JIDaSDAi*Zbp@&twtR)0qviM&=2211Bono!8p3K9}_yLnu&q*Sk%P61FD zU%%pzy=<913B>dy@a}KV5QdH3+RVZ1N-#l^e4g#GVGP?7(li`fc@p_G{y(&eO#~xT zp>a9z$b=#~m!dnqGS~UaT<0ruov+Mwz7p3dT^%t|X#N}9hM&5J3KZF6tsEzo9flf8 z1^Lak1~ISzVi;;f|6A(!96us@=ZEP#p)s%}n07vl9j*EZ8PVH$*cNrityazH7UjZo zdf?vL$`sRCc9-6f0k+dTV6!0uGlb|8Jf>zp1_H~?&I;qX#>&@INYCl(J&=MCBc0GZOA4x)$ccWwsnqICICFAiw`@K9LrKMBrCmD15 z=iJTqZuuPf*Emp2!LJQRI8f_H<(LTG6}@AjeUG!FxlKN{mrvSl$!8zYeg~jmaqQM3 z(O_6}${y2gHM5ThW>f*uNv+8br4W$d2e&0w>q9!yqiY1}MeEyOg!ZSNV_#;#aQt2XBP$OkgE*nS>b0x6h{lgEg0(kZQ?S21-Z-zez5^>FmWZjR}eVo zlxdl_gtfH=dwB-_ME5#zTF>nO%W#cDr0`iF3fEaNkLKD+j0Y%_F5%WK@DC#Owo}we zuBZfwI(j;hwb7xv{tl{B#9vegNjFqS80QGY!vxU|s!J~t)$!h#y{=SuwBA6+uxC^xZ2`4ulqfG#kj!wd zk{QmG41%3-ghQAK)YE+cICZ+2bdm}|gcmk8vgX(<{pQM1m$I?;Z^QnTg@_v zZ6ySfvY_(`lKuuXCS{RcSo9mxiESMdLREK_g(~y>k{O07{8gr4CWB28&b<}J&6sdL z62XUJ5M5+|9ABZI%|-|vYBbZJi`}EqiyJ+f*VV|xt@=cb|Hg_sk14jNfn{n!)R$}t zamo2Cq5CvgiCRRK62~By9Z35DleKSY^&cp@8;ijP{8je)RpaI#rPp#(1Y)s91N0uA zx3EEG8*iApzAE5LL+mM(^kSD#vhz=)vWOd_s=mj)xytqqr??;r15m9GZd55s+ z+L2mr8RODqmP3lYn_&@LEfht~jk$Vt@I2i34mMZA3_FC$%7`p1LSb3khon_RsK{~! zrZl2MNufjtyQPqgi!i_&<76_w&NB5b5xb0>Lw8$a*OjUqcd{ajD6 za%lSb;Z^!Ug?Rv0m*kA@FHn?0mNrq7Zt`wqe5zc`c6T+sK+=e6c%M|T865ArtAazc z5T4d5PGibR^xPe&e&1Z5Za7!U%6&JV!@=SEIm?P}`6=^+)Q(MzQnOcy6{ut}o7FsX zIhptgibN4CD%eTW_7TU1%;k@g8ml>g5*Dk=m~?YgsZ?I9at8BKeiBQ|pIfk*nVQnt zLY6~pBS!^rECj79#6%l*9}WFz(tR}Hk=j)L9`$Hxs4=F5S3EF1U&CV~@!{d=dfRM# zL;l|CH+Wfi&UBld&hhd{Su?Ve^LhZX%Ye4w+FLr5sZmh_xbPN$ZF;rP zFX2H%K!!8hmZuh=Dp|)&_oEdY;m61!qYMNX5xf&AXQCNF6oqmk`m>pWS-7(w0TE6I zFQX9V=}2OF^-tdt7t>q@SI+nM)x=(OOnYd(pq82Y#cVOstOgecVy{;|u znW%YGo3ns_2vEuRI@OTxB08gNPbKX0h7X=#uAd3b0~W744Xug<}o*u9rXx%=;zhb*=;p*VG<`H55UApV18Ot;o*G0w)E1i^(`@+hy;}NSkr6- zKtw}uMT?rNWB==E>>LU$ZRAP^M48hR#PRBV1`%;ys8h4T5z3TP8uY2jgtQnI!geHs z*?Ht;jNgoYRk{utD>1Q*O*XnNy-2#wQbM5B?Df)W&DC6EMju+&wd41oB%Ywm6p{>~ zg5dCEF_WvX^Y9tyUg1wTR80PuHfSI`NoD~ok;FjEL%Swr_Iv6*pr@GyeHrH$v81*d zuqa&+k2<}oXTa7()P>a5)HpNCltHv*T1>-6`NL134gX74_#kJ77m+#45J*U^Jvl{T zb!l&Hhgi_^J&A?2rC4Be0wyW`JH$eIkyH=wjnC^Eq5H8`8pt~60A6`KK!AyPsa2+I zOlmseH2zdnyZq!uDMvbOg0e#1Pak!ZIs}88pekj@{-q>mq)ob18OCUY1bfmO@yib zCz(zY^WG0Qv2`IY14{ywu&w4|MO0qon{uEarj!Fkt`lO8iC?l9jF}|S4+tPO#s>T& z846qPW-PtfWzg;!p18NoG_vwZhM>4zOPvuASdh}RBs@>%%qYSVl7{DX{syenXe*y~$$3PbkjCFi_zo8j@kr#YiTh3_eA+jj2@*13K0p=2? zha9-#1P-h%aoQQUHbOb%z(XP)V(=ZjHU^%f07~}WAsw|`3xTLfWV~+Ko-#Xm+SLp` zWG=}}(jP4|N2KuU0MWG0hdNo*<(9wxez z7YpQg~Ls|D_YNpb5ioE?MyR_X} z&*L>qsLs|g$uvB>HN7R;Z;YKsBM`Bl{WcxB{aca*JEZKs^+4H8PYx@)4@EDpm$sC7 zakHRwg_sjdfx58o*sgoQz6s82@cV0^n{V(aPBx=pt@*X|p1~i`do7MSr2ae<4&Ko8 z{@8)tP}1Fv?8Y0LZji`zEkL~Kz}~Y3%MI=Qo0{Hpdd9W%UW4ABfECZak+45S@73*? zIWa?Wd?jl+Feb!}jU?)D<3XOJGtgG8qE3uHCFC3?MvrXp@ULbbsP)xt>T()(_%99) z?%k*4gxX|6>=>@kK$LcookC_n?=>l&`_ zc#93?CvS0uGGB{PfOoforWx6x9l%#NjIj)w9a18^y4`+9qyI7YAtG<4dR+Nq4a>hQ zL4E+cysAO7>&*JEz*znV)Iyj#MpL7MBL>KDEXF6R8tSzu2lmuZj6DpDAkwPc;bWaF z3+++742NBl-FE<)z5-JHpSGyQmDWM7&GMBBT^JED#(iD*agVTHqrRYF1&VH@VfBa0 zfi_ul#5rYHT?;?Hx?_p+PtAB3=d7hveim~Ks}|BB{f`5NgoV^W&(cD=j<){(*2Q&3 z&nqyNHp1+rn(IwpufPD>plS_A#-z((z1dfnnmP=!o7ru(;!0hEkN)b8O6JmQu-joh zVBZ~Q#$H0pMnoJwW*NqE3sOG`SFj~Y63Cnp;)SQLIUM~ntCjpZez85o*40;au{93&z| z%uIGXG7>d&-Ixg7DQiyZF=k;)G7{x?!H1oA%0bb}10-RZ^-IRwjgCb$)<_q-*U$2K z1;)}^3+y1|@RKv6?>hYl3Ix?*u@LcFFVpyFGNh`V|jh2y$k z))YLUDfJsEqxN(-A)9M+IA7hdbTrV4!}+q}a|aBGct8g|jRL<>;p|35y$lud>W-zW zLWZ7Rzz%2wRagUIcQ3SLfc?_h5>GQJ&cCkUf?a{EYa`JEOoCS+zH=3UEbOCear$0e z+`huz)2ln!J-ny1)zKlD~wr+5|!q#j=@Q7)uH-k;3ICs0hSQGV znwB(b5j^IQWz5PdKfTyBh&`7yzV$loxTJwt{Lyku(wqD4U7ixEw|lSabRxeu^c~mt z)o+XS)9gaFwIgq}V5^H}X_B(*h#-4K&+4WULLe5_4xq5xL&1=q zPrP#3tPG?el;hqJUNM76rfhSUuWntlP`xK(bZDUUBVGb2he1gFoMnmuvMtG*CP(7xxQ21>%{6+lOPyRtY;^md;(#qO z94K6|qhDH#rT*>~V|sB&F?MKVw4_D)+DN%;I!%Fm#AYw2W;-7G;{5@b-t3NOkCbs@ zl|W(d?P&A@Nv2urWl-9h{`zdawj7PLSg4fOM$eZ-RW5_eX}tm~)wE%vhEt_=@Kub> zV_LA^)}v&71EWSHO2>i?DvvbS1o(??k*j)`xErY)8Y)eC{bD zJ`-Ca-?OqgvPh<8Cglu0=jWlc@uyZh^2tN&H^E*L!+PSq0NXVTCN$1m>VBo-+7L-Q z1Wwp+m)+kr#neli1tNv@+P&YxGy0kZ8$8yn&8_n|nIII64 zi;Z;EzOy)OUt-U3Tr7u9_~eHFyWkj+;>_|-!)0r9uNC2xLUs?z;zYobgYD^eG5g5{ zdf*)9SGyU%q={Yw*G>U#U5A9hT%t19r<-zihmLj7pDQ3VQP2k}IGwT9M4QPv3quQ^ zb?~MzK|`A?eZL@}v6R)P8Td5vl`cIw)p73VOp0@2GQV~}bxto2qhqk09-rG{9ofzS zK?SrUo2TAf87c7c8I!!`fOwr$+m7Ji5Ui7l8zdR~o_CC&sOdDwFqf^C zY8#j+wmh0p1!6N=jwjSoS4yB(v^~DRM!Yj>p8dn;^-#EpGwh=ftt_2mKD|!b&{EHUp-Z z$-+8_4YqVz6&zik(9wH3LBu+X&(&0?1LGwPX5(!9?-hAzkbvoY2^f8VhYVPHWu9e4 zOVzXYSDdh#>wP-?BS!DzI7=x-5BmKJ{AEA^AmvYb7x2`JIKWZ~_~o-9TwGZzTKI;o zIO`dptaDl_8mRJY3Dx(j5BjiI|Mgfw8P(~uE}jBeDCKrW|NgN`YQM~a)AkDYA7>PP zc{bFVxG{B`E1iP|r9V6VSET{Np>4e-SahYz0yIUh_ZCFP!Bu8X|NciyWtoxbNw(1Yy)W6TXwz0OEZD5)pi&EI$ShKa#?{Pe<%K}gE`2n;L z=bGqPO1@8^m7!pOs{k(<5iokLe&Keh02kCkYC=}}wo`UmBGyW^>Ow%U-_N5qMCRwe zQ0XvD*&$#GSQu179F*#sM2j>z<*4bjH=7i217-IGnsQ&hvg}LXfex#z^+D>l#LVf8 zd{tqt5jwMIw}glTVs-t^P%Aow?VaMx~=}`~6`#7-e~HZCyvj z^_CDFU^^lN)>zc#Z8g^cg>*g)!~r^Yl|CGXD+DA)wv2Wt$%h(x^EqOq!Xn2>#<`w^ z2RP%C10vhgJv+sLn~L}LFV1@(v8CoLpDE7N^;vdBN~iWMkyw(^}M;>=AwUg4n$OC40OmY-I7aU40Uoo5lFIX z$iBwZJMlvw<5pCdtpw&cFtg5Jw)L$!1p&`oyLKB4>zrdmWp=Ilb1HJqn6VwLX&#E;a zp2WVcCA7mo;EPv8{Cu*HP7u{*scVK|oR4JMXQyj9oQjF_lePR8a#@Mg+5kQHgtFd& zObs_Z6r*&}6b)EVhdF`(%;F@>>={Ls;?!inLzwxUYIqcv)JN(T@&~|*etL9=#(H}a zgtsu;oU8pH9;tZ|ErOtFP#adW7dK>E2F*W1VZyIY4`*g6jUX=NWObxZR zD1$gh5Ez80HMJ%#;2^WB;TMt4zX12$EYyJv#irQU-J*YgE5v zO>{0nopF`7?x#M zX~{uWL2Z4(;JXnOqXf)zf)hr(k)|=r1zmFu_Tx-_Y8@?roIF10SlQn=R09FGzA2BYL zpaJ+4c z&1>AEvpV3Fke3eRh@vtk)eChZ$p1uicynoE_Qc272Pd3;3ga%cIQk}$O&Hnfba#fLP})){MH2;U_jxuV3a6b zgyGN~^}&VXyag&Hmf`bM9zzNcBE=ApI&&{FwDd)B(nZx4TEw++0R+VX3ZGayIY;U2E(Gpcb`H+R0@xkta zl!CD_EWo!h%<{EjZEdX-a9b!90lDaTXJerlT0E{iKfp&5^+C^;eV4vsci?IC&TOWC zVt1l?uzcKBve7(SRw5Rnk|TN}c`TMJ2{hJ!6PAenqc$A~PMFrHVF94T>r*~}yPVUr z{`l)<-n(3LcyJ2<_-cEj%<@u-Lm$C@qNo0&Lp`cQq9;1 zR>JB0Xf|@SlEI)r(t#SptBw#;7O z=bs=pZ}BUm6YkP93dZX!4kK&NBy;8b!*;K9ra4185+y(ntiAyFy~LXRdd;!1qR4Y; zF1|Sj7JIW_!i*OseO5YNwc(V|4_%?wU3ttKdj4qt&-N}nTom>hD*r^i%-GWMfU|CI zXXa)6-2rOO7>{Y;6P!Q=n>&GR_7n698E|s0_>2TK!j>PnG}04%hq{MR03n!QHn_nA zNs~En@LUkzEHRN@0A8ghG*i^qbqS9d)*2)DXW%oh^@~MToBE{-NcX1STt_1v|RS9Y6~<+g)E%2RdEQgzvEa?=#5(gu+!ds5C%EWQe2j zmLu-u2kt*&M9JZSEQIdaq+aX^=7uYPz8Y<~@2kr}|Q9RFQK&4I?R#Cg+#Ph?17eE!BipMi8Zj?yadXAZ8{|LETw zJ)LSs3j%RHg!4@Q z{|Oj0y!ezLRGK`gd_fvgU%q;V;RdZsGz+@uh;C(@__TP)N2JH=-mKtt@N5O426hr zaZyIE83RTvMVG$v6C@p}X*yGWy8cVTJ^3Z(KM;*Fvpj!L6&z~M&8NoW|0`FnNGqw3 zTELHvb*En1sms~VK^VE`q*N&RTPc{w1Vx^7{Y(l7C_vpY+ugGR*f^TdlL|9Lm57-n zzEsV6!b`<2s6XX7wDmSF+0S7K1HyoRnmuvz$U0S^N4)eS1^OlOG@UY)hQfLMtr0mI z<~t;xf>qFvSP^9pI(UGZWagE!Rrz(@PGOtg1B8xLH zA%A>!=&wGGgJwsFnq0*RVN+kLy{%`{=b0=Lp1g=jqYu>!eSfO>TJCy&$MFl1iu()m zgk*RxtWM!74S;Uv;FoF&@hTNXuLzmL<@oG&HlzEJhr~Zj3 ztPKAhBYfIZUDq^1Nwh7x7u zLQ=h9IEX_ofauWiBu4kO9HCCMG`k(P#*&6+IkC3>ml^r2JVuUoJnIt-x zEyNuT4-&Y>@fUM66B3=`#6(q`xcz>`d*k0Lt?dg5j$<1C zK!;e9jEm7K=8h<7#1iNMbc(1$Lid3!0)e!bpU%GF%4KeR!-pFqlD~n7tHreSX5Ck{ z=%n*oW0K4Ad4ZsTk1y2Ui2kV(Zc{xF2nLLZS8@m{AJ>ZM7WMbDC*+9>qu<*S88D?m zGz1YPiKuuL76_3Mu@RkqF$V$?vDm!~MhN*G?X)hy{O-!*-}Pez@ zL1+wK)+x4w;^pNT2)K}D-TfzUXB&jdnHyMRX1+fn-nSZe{skbqPuzK-2mv)DMLg`p z3jGyE0N(G8QW37%8FL;+tWr}4o<@=#L;w{;7WGZf)p!14ie-u+tt_wPfFVWi!vyO@ z?;Xk$3NiVpU}uc}7f=rna5ca+7uF1E#t|`k*%N90RAH0L(X!&V8mnT1zp%h5$sq~u zi9GZDMo~&JGTsP_m(NtiV@l{TbZEihUL&C*+}llLqI()91y5l|Ym%i;T2zh|$`WG*efg``G35~035m9wKJmC>Or^ovuabD~hEdPZzSgvtELC|rNIF+(! z{_BFk2vC3~9s6^)NLDaoCvxW4nCPvA4L6hzshTVT^BJKUbZ;MCsxW!rvg6I1nfa1A z30nqe_Vc|n@dZppiYF!c!oO#UQc71YkdNXpNmAk{CeY0%L7wH^rmcby3J|Wk+CJwB zxT=JHXAg_NGrLW7j#Q{DQk3`0+nw@|a(ZkQo?OCSfGvgo@UwU;o56RD4>taFfv?H} z_ns3#ZEA4z0m@F9tKpS=+&uzSykLlVg?-Nu3zwe2G*+Lu4rGskE8dIbbYLV`oZ{Z2 zUR4>QW0NqKg^XG%}6b8P#{J!iJZJ=5+NsGA)5ZI%xi!~k%m%S}O~rhQKi&~-ud zU+4}R76dM%Veoay zJwuYK;e4tGlerdz4;fxe>XX+cVw0UZO;>4JU0<7T^w~^j!e`ZR_HkA&1c-6fE-VcG zR80D-g=_^Cp% z8U?DF9!c?`qt!Yw zU`^D*?{F>@^ZefUImv4%sp1Zd-yId5;wPx)IVL5M~=JYNm5 zx@J!#ssXJU@Hl88$a^u}iBznfX)B|$`O$>Uz0oI;Qa%T-NQek=NMNB6Tiq#r~Xl=bLvBjPqVq};CtR&eLL$>HR zLq`P`37HwhQU7@L;#*$#|T6zF+m3hQh_2u)^fu@k*#tY7j z<(aspWhf7wZ)Z;-^u~O%Zr4vaqU#sLBg!isRx_BQkA!371dzdYgI!Tk%rtX_JmdTI zYRvo}f=p%dXAP8tijgdKfhNGvb|l0Cu$u(IrVT+f=DY<_m|Mba9shzhj)Zt)09dum zxMutrThL|hBw){&B_sukS5Sp_kwG8U)?iD-C~SeZ8-XjvIkv<*ReTK9fT{tTSWS{H zw7h~rvh0Mx$ERyj>wDo%-3D=%l9h4iOQe95l*Hx^Y-WPaM6vcYUgg`3+@uqF+NfV$ zt3{}XU)Uk+0w`f%Qr{4EHVE^ee83Hwn){JH0(F)H1B)>16}-L2nb&s#A#bWHG)S^E zxRT!CXEIN$1QSb9E!LBLK|Wz)b3nwX8hss>23O=zN8=v{>rghvT#8Yu+fj_}dglHA z3j+Zk8^+ENfArY?`tgHM2=#Xed&+3W9~#@u!J*96lhldy9sSakdcg?d(@lM;G>XM6 zStX40={XY>n2hrc{X9OuwdyM?5qX8O=Syi>o}8G!PCwOR-3-O$Nm&T5gI`{U$a$Ul z;l$j@7Z1$m0x``mW|X!e@*CnUl+0KBtCusuV}ZhX!EAS5@#SDYUO9I_r@zS-QPIVE z{Z<+O%c=}-%*fj=NC`*9o`aFOkDUd+(Ve@i*B4FAgih}(=onH{*julE^|lN3CocgW zNJWw$DsaD=uDAVdDjK5?y{cCTVr~&p2H4cuO;OWCcgZc@6y=~5F{zXZ++pQeV&$X8 z^J1KCsk`%Hi1D-M3u2>7snC3({l%?5AQX&!gxP7O46?>bny@xs`0V(VUZiWg8S{ z01?j59I*s&w&r9-yte=zZ6=FjQUb?NCRiY&>JI&nnSKWtBYQEV0@ zU502`e*D}*#HQgUJ5|pv#A<7k&Olr56y z-W^|GmJPG~u3xRE^3dp1wV)mwZjf@L8_FDz(A_*s8L2x>;hB=D|878mRAR(zK_Quc zT!LdLP#&{}bfDnp(eE+KHf)v+;6OTbR2@_OvuZdW81NyM#OYA7EPZl7aY)n=y1jtg zFdjaxr&x(H8_?278tYy)43%yLK7rQ_iYd@ z-M2xsBnvu9LxGi*E=R??WdII|Eo_5`g&qo`8Hn-&2Ngsk^BZE)6p_`stLK+(b)~Dkq@yNjzBG(~pj;*9-LU|Ky`Gj~1fTUNyqYs(N!4(?Q-pJFZOXQHU_Y z=&|Wv5xw72aRj-q?&f=n-Nbe<0_8`lF=6y-bUGsl%necs8jzDbAGPI(V}7_>&NnQ4 zIi2N?OyAy={&1=lKj%Z;(!Pn(nEaj6v`kZ{vmzd2ypJYS()OX$gO8+IF~L6At<^WX zYW)zO?@?Oq>`h z{h6kf3GI1^#kuKEcZcYkT|@jp^BuJtKUCz;LB~&ZKljb9&sp5N7dqncE(qyy0}8{2 z*4^0P-1Pn3#(cA@v7g$zv3R_zv3R@-9r1W1(DnmMMv5LcT_eGAG*MrLCHVij7FAD6 zX33BNH5b5$5jPOpz>u+Z7N~JU_>F(gPVY@%l{B{OW$r`>MWi8+*M+^woHX!gd!k-M zqa}Hsi9X(U6^*{X+vtz#hFFLgZ~7K`P%gC+4(h@CqX+87WZ8wE6kYBdw* zGmZOc8j?^^Z)G*{g&N{Vl)P)GY-3^6L+(FeIJz35J)|q0P^wZ^4Pu@4PoRu9xF^ye z-=5M9qAbJS7ZvI7zjM>~cFR68b!LN_iMLO!zO}8;*1aHA!M;LgR+d>Z%m*B2xF2+t%>Skc`p`G78w4?MRZEr`_O;1f9hF;OSzk*LCD}F(^ z_Lz2@TC0CU`ndjz|NXN6{T2WF0{`}BmzeW7r*FQ3SA{89Ja@s4O;jVL53x(>6VjBm z1uZDnh`R;;>=ATE=>DIdKD08-hl1$nCBdZeN%-QVsZdc>10t3KO(~ z^XldI?^f`UsoGyBcj(>w6hE^p{;vI-o4#wG&)>8B{DHQ$=>z+eem9ts1*Iq!GEgLT z6J8YhfU6t{MFHn@rg1BV%4KKV1V&T24QkNP5T<(aE`n&PbM^(n8=b1kyLIW|uDX~W zRGS+RRH{o)-bIGT%D21W4^rGmEQFPM*TId%aszmkOO-RUN2U)nw5ks8ghejlhe;{@ zwJ!uTdD0nhU^ieu<%flVYKtMa{Z!(P9zAfQpm28jV=WZuvPJ$oB93B^bcVkh@DD?Z zA{{!}jy2&z&RiGAL-R=)q|xxf1Ns^b-1fkP(^M5y@Xq!n9Zhs9kiVlr*|KS^i|OKP zl^TLm-)VAGhxg~^d_toQr93=+M|`4)d~|%OwryoZ!9?kU`csN;2zUnFMv>+8Szl?f zNiq9R9fn-q|2CNg1L<;^LR$~xGNxLo-+;MKJ}R-vFT`BAhW+-YY17^PO4|a0Z%YNg zbR{;lpx}LNLD3JNCD@UugwLX&imF?dN|h&O)i-ZjQgEO$X6Em0ddat`wCikJ=DVcO zR12jN;l$@}Z9b=1^SKAv>HEDaHBfM+hPQAF_GH;2Wh-0j0Vh>~>7Jl?FX4a{WDuBV zVFn`X?DVY_eMTKHagtBoYP!ehZ<^H;%Y*e5tvfh`>2vS?dWt!1v`Ct6jCcpZPz-lX zh+-!#h|eluC36VRqdJOV?OR^+06XBzi0REw*lLPw5r;}%$Q#Qk0f6z$JPyaSXi@ny z3S>-v^kt9lEr%N4i&s25+!^8CKupdbSJAxreMcAvy96vgS zU+9V#6S5W*JvL4CBlwfS{m}LdndZs0cYr}LoIJ^z`bA(38JH>qz1koX@cz$vQn=ax|0K;8*f*k zdt?W63C7-|0FY5Rsqd6q!n}i5M0-LKpPF?m;)3WncvfUrHbMKSI+Az^v~}E^!|?i# z?2jq)x>G6!^_5>T6F?k0`1CZHYcVAlLPy}XARq-)oDbMZz&`~wF^^<~*LNt7x86pm9V4)My@oN2&#=m#bwiJLHYuhf-NK+Y+mo2e{doYA+ z#49q7D*{n>Vc|QL&_>}Lej_31^h-wJ?rP=k54Du$ST*C9AdK<9Y3KOgr19J{*Z7AA zj(>OY6Di>-*Y}vwq zNQ9H0e%7(fp+(i^^%< zK=U2|+tH=7Q2rRRim0iG~EMTbA$%e!s1{xuIvKT=s#|-bGhn1z>LLpdqow z&A}Q2(j*?9z5(h7bZ-h}xMU2V3fe;ZRyQjzP|*;RNy8O42W>aB-{Fc|c5%f^F~tf? zG#ElH@52#8$SXL)I|~l0n-fRSZ6>toD-Q~|VqJM1;%Yx9fubTJJ$Zw3qnK{6?J(AT zSX{&yJx>6mq=4S*b>(N8QWbBGCS-%;QtH@g7&nXQ>?TMBa=5H1cQYMq1vSi$(lRq! zM`X>OBIayajkJa=ZNWJIc&$2dUvV)6(#QEBOYvj;FuD6te$Yi9=7+?E5AcJr`7}RM zElXaLE%7)%CIqclUaMH9d_}SiL-lj<<^{g|4Cvs8FrN}+Kgk_y^irRWS8~4>L%g85 z^OlI^yKfo_{c}9AjVc~S-M&#B+uJa*x@8dJTN^~A)p#xuxfjvJM)wMJ0X%X-q{yiA zntJnwtLn{z-%Gm}(y<*qX-H(UApac#V_K6X1H%cF!>oB&H_gAMi;Y1R=>Znw3dshh z7VA$;`_3P0joSK(?I_L!*hY+q*Xp6J=65KGdSLmc&11*PfCB7o!)*dFJ7p0T$-#_`0^P5CLWTLd_ ztGEhwHMrnLZhP8lrBE7ChrA9GLO-c5_a=6Q(A8T=M&`Pb?yq2KTA;3m(v^~StsQv% zOLPGKzlsh3t84AR;w3tOAlst@2)piNLW`w4S35G$gre|dV^{byQD5~8#{r$QEP~gS z&+rA7iO8bCH1uw_!>gY|neRXRT`e#+8cWkB$<@EZWT{Md5I`2zK(@>ZC;z=jA05(5 z#c3OkMRG{uhkut+G7^AVK3;+qOD;Gkj}&1yCb%l*O6Vz;czCT3xx$kz?foSqiho$> z>tw(#fgDC3-1!m^Qu2C;U7^C0O@WCHwAz83P!5R*BHSDIooP&#r;N1Vmae1xwdgQ6 zx1%|*S~|Ran2z6ZaL1#o0=eb1Xoq14tuY|{4HjoGqz2(K1Z3V3;MrOZqt5I!pmD)` zH*&@dRPoqUJ25&wPq0oHVYYK}!UpbnH5+#BP$~i*4pc(P+g*s<)ABK!2WZWTNnVU$INq)|HT`fklZyvH52JgGViM1-C4f1@5QTHA2G@x8zOGO` z3@uaU_O12TycNtN(_2U{{MNr=H4;9VtOHJba%LG0xfbvcmebY_pFm9?r!C8mYbFB| z(B2{*4!>1BytRvXRBw!|#XNp+1}p>hO^5I;t#6qJAopGrPUX#y^z((k`sCm!#V;%3(TO*A&Z9=IHo?P zNXu|UJK_O|{C2I`1_&vDXIsQX1)jb7$W{v2lSj57eDNq!aERBdq&3kqlpx3r9v8`( z01u;@_rx2hc!(AZdQWnvjMo@}?E}=cdD&VU+YPJ z0>dBD(b!s`OLnDk0#bxiLib_%#I`91QZ(XbA7WO2Cbt-gT8!~B#l@}r_d^CjScLX6 zr0yD~lB^KFy^tda3>##xSC=3Ja5@E{V1dJEumfP?zI2uCQgtnL7BE2shupgPdI88D z{NAGHssOYK9;vCr1LmcWv;!~!1QE~*Y(gAtN|$?Lmbk#_4C!%NS*hH-JiYT$aN5~N zE0}%ycr1x1B@^t`)qo)X9x{W7P|$u%XZOc_Y~`uQA7Y9=?v$$PV!TIn+$8zdOksq( z916!8zut7DVo?98<6E$97YIMAX^n>1FGrN^1-W;NH#BqERf z0A|BIM8Sr9MgoMDvPwkFK#}Y(vomaIwI8+YC5{g2%!a5%-AU4k={)(rA4Yi?7&%IZe3A)gxn64O;{xgx=aBrx~3@@=V{|5QnDRLfj@*4)+1-kselyL zK{Hj7kV3$B6)AeV11U1q8>9eq+(c{p9YB{Ayiu%YAT6=K{3K|lwO0o+`j!N}=hzzn zcK|?>W46UZtSTqFt?-({sWzSWmnRY=9cLc;59DgVUBQNO@PyR5`ZHt#(F~)>L{Vjk z>%eia*5b&cY#Bk>$^7QP+WZ(;1{lK1Qe?j{lqQG?e^LLmx>?daWH~&o%;%fgIfBUn zEu}gZ3S$l>h%uxbs816^?C&ERTr&|6l)e%3M6!Y6dU9$c2yz0o8jBqsVzwUD#PL{< z45Ws{@d60BGelC=4O%>EN{BXTn!FNT$9gNRX^a~sH>a+cwh4Xea~|rbBtpQ^G*6L6 zsr{P+s-Dhcc2A9By(J~6t~U|s+qB@@Q1z6cq>~_l5j>dVVvCPrLR-FDh_q0bOnz-M zuLy)Sd&U*OIZ_>`2v;$EZc>*T4gdCBnN$WO3FXLdoBbs|i6bcPI9*1~h z&Q6`PeaFZWGGN@in1qx0WxDW6{m+$9?VSSm>WW8x7@E#h+ zo{0H1CIVyHN7I3bKtuxbT%Kw1JQp^A<1`*YBL!p{L)nMMf>vxt#7qRTG`bI6(ZM(n zHpi@4*X~Y>6I#>%*Xw60wy9-(J9~2sAp@xr0;&Hkq&{xd<_XWDp zlw|b*ALaEC);+~~@}{sBxNAGObuBan;F+^rz08zBI+np|`1Q0SXjJ(XSv?G*{*yem zG5CMh@(oU`(*fh)5219Wj7_B2Cu+N5UnTZxs)iVG7FY|mmVhZdA244NNpg1%-qO~C z+IE8EOZKYLZV1(g#l&VENxFCy=ijYAYA|VIpZQS{ZS$ulK8%ECGeON{vUQW5Jh!m0 z{LEssU9owkEdnLF50mZS?x>b%r>iZ){9N z-}q%P+BxGX^v;H^H)vK9r_}~RZM1M_kEFE^JS7%MU%(DU{f@5FjQc9elFq5dk88|~ zYkYwh{Qo%s!W!%CC#8I1fq^YpZ%XnRHyd4Mtb5F#*N;q6n%-6s{B@ z?Sf!gmyX$MNpz=VZ(2ZRD)!73*fpp6r_P}l30*-^Q0aSHKJgXhDw63O(uV<+5EGOx zb_8x_V|poeWp^UJC7GOut`gqoWA4=A8as|4tUaIvJO*J3nT&t=C_AyUiOCtzaxzmX zcFh}sO$m36r;2@E5L?cN-~l+O7U&Gw7F?f5{+%|B*LXx+l@f#(C=?QLa-maU@PL9wl6- z*c~G%2ab?&yWF^9$96XQ8p#Fuan;$*#*xyQ(rB~`nf8Q-Fv=h$I<(veFCe6k?Hx>@eRWPKH_r-(n)4q6W zRF$TA(;Z~Uwx87~wpkk~S7AgAG$l4qb*eq^mhPxk+vLStImE2iYgEm=uc;LZJ?JWWvs*Y4!>Y0KxQ{y5U#`{>K7k&n@U3Xd-AefR8Vb z;^vx*yk_WVWKlG=CK$kIvRs?J=|#f)XSp z5~kZmpv2e+w1R@v97HtX6QM#^qit=TtZGWMnrZ>+e61GF5t6|q(mG~pL8OTkL>LS} zL)Z!ek<=v0DHQC5q5bfJ<12)8@B$;AS|TLSqkeSoLO?j!_6qY10%-=u^+$OwugQT494-rZ4P8i(3yVr%=Q$@B^_YlaVYw;+ z8#s$3jj@wk`w0u$`J^Eed2c2W`vyi8fV8;tno0~AvARYw)nU{0RMfV!WlQys)n87~EUM@v4<&87pU0wr%G9Cq`+p25G9K!Iu^q9y-)3JmQ zRgVcv+rYHL6O2aNI#Wb&P5O}9(b;0BmWJ3QM#nswXc85%zu}1UXPwUzDowA6ha%wH z`jM5L(I@boXCpZLO^p2c341eRC35H?S=ZDo~d%eNWMAFi*G5;D))B2By{0z!E)05JpaVx|pwLT^)axES%m z`^bf&rK`>6aXWM@p15>uk#sEBkdDnR#Bw8yymY0+RS4`QbS$twvyIiUKK`v9W=KsS zp*T}{J9wliCQo^Wdwd>cf~Q##2XrvsguA|C*-#{#?^ONR-XO=q7&Ke&fDdoBqYVua zdTgGf?Pajf<&4r<)xtiX7)mC=S)7=Pp(E2K!{P@J+WQ;31&vl$m@#HyG!{(3jzR3U zhlw*@P#v3?A-L!+->`pVHR3!Qia55X#&OOB6R1(42z^Tcu6a?g?{~ZaX7ct*u%mA; z)a50iO%zIB*oe3NihUM!*a)@qK@eaqYlWgJMHlo%)5P+I+27@j0zPfA2_I?)a?dwF z&{<5+@P4LK`zy0sHU_1pb802F_maAl#`oPgY{fw=Y!@ zwLn}}ikPygm;zW#N_+zTJarMzSaB)g zYTajAumPP&3r{!gQ|vyNCFDP&lo)v;1)YDu?NFXIL65BdY*m2X+Zh~|wLEGa23G)T zZEri4PDHaxxhpD#5J7WvtD}`pZPX=Gm=P_jyTo1i2DL7UplJ8*UAoV|61zotuxvmN&o6k!%A_N%Cu|_J2p6&dhI$zqf~zJ9L*#?1 zkU^ZGgNmh29cY2|6JZ$cb;uEIg!$lzJ7h@>7Ze?k<*@wJ-SMaLYLuY~O=>%M#_>t0 zHG%<%bVWqb;WFoPCLzOsk)9u>P6)PL!wkU?PKLiJ_y(6l5g@@VA_mjkH-eHYk@%v0 z)SHDUW{o@$1ca7EE}l}*$F~=lRpRam{_nJZr&Hc^o55} z`OcKrG$}x#W>G8>w8kV=TA6|lVI64FC&@ZreN0Md7S|t_t>LE^6^8fKhlO7m%*^6p z!IRmHsG@fpGK%odP5u=4SR5U~COiT)4?d0s5p^xhR-6M3zS#^ssdnbTXd< zUsX;ZJ9^rXxahGM|3wZ}QC5_*@X=4a=Ufs!&`?zGJQLxj{aJJE&ngiK5CIT^H5XHH z(b-K`?>LmC*`K$4Bc$t1yQOdY=2Uvq?&;gUd4N_}e#v0HtuMxdw)O3sQFMlLrz^WV zB7*d%%rR#O2Sk()NE!FQsQ$S;ekg;f@*+T>@eXG<>7c;OAkb=`to{$4p99)c#RChz zIPVAaH=F(Yc^v3I{*;dt@q)Ee3-D$wJ0uWzK~YK3gG`T2d1HAnmVfS#yL;m2RQy!& z!vQ)fiDjxEq^oOyXGOpH?D_Hciel|@{=E7Hi$%Y4vF~3+WQYeH4O^M$wm&tyCCz?Z`U51 z4n~)hxd73O9;C`EpZweS8-og*IVYMavSQ)AEP!q%vdCB9NpcphN z*0a{A@~?BUqEwDMA$xCAauS*7@iQvV<22pom%{>EB!GUhLg_mGfkeAvP*Jx>!~Qgk z=fV7Q47q-oY3!b!oXC$Wv-#FM7((-UOt3)MV^v@ zPvRqT1L51KVu)O!gDHi9v@9j|P$}ck(0vJl6>-wls`xs4$_7XIWYI2N!XUlz-&y0_ zQYfQLQfy(HN^)#3Bzg1+Nx(!AmPB76xg;fT06pzM5*^cXH56N)E(!v@e41xXb zT`FY`;}T=}$HNrfT;vhITq!#cQ&35_Xikm;b12pwWfN_nPs4h?y>Umrw(oyMR<2<_ z5!87X-q7vJxl$4tH^uEt1Jugg=LQ#kz_f@srB(!pM=UoZ-cpxiL_fqFV8=_<=_w6` zBDl%kXrwLN{j2hgf#>P_%rp_)ePo__ z){4E8xsvv&dgr;qr{d}yS5gF3?@6wxovX*^Qpk1wDIdf){&tD~tQP98{e_O$js%$c zn}6>0R>WWEK>c0E2ogn=;1}bu{*&;F>nneLR6>z235`^UEU8B|(U#%xG@3p-#Kt5o zZ&{f_6pV0>3Z;453Jf!QiER^#qtrL~#172A=nIO{z%A4xsaYD537|*{QKR}Rf3fe7 z_UZ-4f$uRaO6JR+LGC)!WarT6$UZ}((gTOaETH^W+TgTGrfjIY9Ueomc#VU~V|cXW z;pr1VGJa1O(h^iK8QiwLD14Se*oPJM5{#nyGK2&71S?UGIxDTp#&1MLtB}Z7fd+9O zUXE_fk2&#wa)$4a^++*I3h;wiYd(N~$Kyw%7b2e25GbY`QH*ekRzC3=m@0QZ44iE^ z$u=(r%zv22<}Ina{BQ;nWeLy{WuaC-ktA65kkLsaq=Nv?k)gqh zzn^U@$ELnrSpVoet0ArWe@_o@BaIP)Dgg;>X{t2uN`@rg0}!gJWem_?+{58VbuSa1gxG>3wMrc8Iiwi%JLre;cSU|knItO|nIXI(V5)(M)efh(5 z%fFJ7(US#f8rCVyxY>MslUk!-U48;Wiy&F884-l#Mcn@9wm&V>8~^5zg7rTg&GX{S z59%MZ_^-|dO$A0wx zrS47O>#VB1|NWek`J~C|KxqlclL%6VKqylgo2NiaTS_Z~iW8)5T9TBcO;QF08z^A$ zs?_0nuUv=9RY4T3I4eU%1RS_lQ3Nka0rfglQ4|F2`~9uG&dEvIdU1F^|Nq-`o!>h9 z>}QW_uf6v8bR2eQ`ymG(bl{8w{#g+zoR{ps-@+HSwWj;NXrH}X_L@Fz;ht0Xm@;|N z#D7X0#TZI+(}ab!HPu!5#zI5Aoa%B5lW_XNLiWisDx@q|9Ep3cW7_3^kqHtH49pV7xR_3<-(Tz4QJAJoT}^zooRp4P{|AH>Iv z`nXpgzthKC4(4NvK7Or_w;aO92lcT*Fu__}30TZq>)b`uMFrt~s2K_v+(TeSAY7kLu&fnS6XeAGghn z2GhRu4B4ZyTr+KS;S2MEKb|Q?gs)I|XLa1FH-bTtXMG8!$X!i2dF0NxtY&eh06y@B zc`X|Euvv&j9h6@c-I#o-d(t4aDh_Pn>d>G-Xk(PaMTn-Ch>N~P&7im{lKHJ7MPs|Y2WYyUZX7atGxA-LtJbV;Q4QiuU z4Jpd<+4uB&TK>Jxf7h#fYRbPC%fF*THIr4t+?hYDkgKwWUX3cMvOTn^ND-9+TC$7e z@M^PCdMv!oF^TEyi$T`(YIsu0Oqx?quFkMPPh-P8H$Phye+xDeBMgdaK8x1n=aNjT zaWZ*HQplcoLh-9+*jx#|1@BuT5}Tuk@$&+HN0|RV!;b z{e;OCeFSz!Y0zTnY|9llcw*`Q62*t0>3NmUh<1<{K3X45ywn#xHJoIs8mmT&2F2U0 z`gv2lUGtBtwoHfO_9SJ~$QQTVmK+`MYw>N6TPq1-(+Mz zrLU#!B7TgkCJPM1G&*Bbga*Fa8$qSjWVLJBs(l-gtX*YWW|<<3xi_B-`FWr;J)YHa zBEbxT@*^^plj8#E6o+77HHpg~7ck1iRUH?Y{uf8tYH0%iBMz?U-K`xa5`s6URjhgHcEK^D!99M<3GZzs&QxjP%%T3Y9Qo)o>#!jxXLrGwwB)Gsxsl_7R zS!8TfXNLUWBRO@}ME<`K8|lc3+Ci!d)~KY*G!oTLD4Y2?42>xLmr7Z^)QtVCy7*qU z^;nz9idwn##XH)X)`|cu`nWs`6d$uaK#eJ5r!+^oYo(FV26dG$tj}v)W2=B!EhC65 zX_bH$X^vUW*i>xZ*ezO9%&LqZQH#y0BhN@XWHpi3qGX1uCzKKGFUgpF6K_E>eh_bA zHbg!KT8Lj_sEz)`f}P-BEZiplVgWb%7Yn)QUo7Z}{w0Pz$-l+GCzrli=u=AHEciW2 z-z@y8rEeC&o~3UV!?e=37{&C`*BHlM<*ybA%VV5lCg1$4I>UzRiHxI-N60uT6kbcU zYPg4KQyN}sHUqJb12XMMpfzIuyUuq)KB9yq~2CwBM;cZ&yO(}RH zBNF%SlQSK}em#Y0S;j>YVksWmwZFbcwj>7sL}KK_b;e zumCk5nbsD5Xxr+N${f}x8>L)YTve;FM7%(iPg0;rEni9*iP9N$b@;KQlrm1wjOI&r zR5@R9^Ikb$C^j8^!oaF{n#6j(bi`-pd}(qwuNa8Xc37~N>%y!COO}+=q4cVu)7Q!9 zz}i(ASF1V4cR`zjc?`bSqcQG@Rn7YO;QCUID@2HbO^KJhr`1;TGN4f!+QDTTLnsTA zqI$_xy{<=)OxZ56pm(M>raZ|6s;1bhS2Jx9wNQC~32H`~hyv9tE0rpRWTnbfm=e^c zQc*bks^9pd0EkU9R@&->K#@WVh6$x#n*ig5gn0wWb)vy!cQDssCElo}sl z#vr5oqGUp_`awcSx^h)|!WyFIkiEKWzsuXSk|jVHl~F^(;7y9y;)TLStt041(t}<5 zD_cKME0Jl&B6|Fugto*yY1Ud9Eq)9`N<$}0qszVdqK$C5J$Tl0I?0#P=6bXy}y6K^bRt2T+ zTenT5SFJ`+th*y2n(vMppfZRy3W?DLg{ygAOB@AHDBS-p!A}Z5$+2xW&I4Cz9yklx zj(yXFzV(Cb^rMg4v2S)|TInEN<_ce%hyf`rUX;f)SHo_ z(i5iV`HeJ;b=KsyM)lGHl5lnl=e0bBUeYeGhSOTL^Vcp}u$02H-%oEvYm@fLR1IWJ zc_NL>DSs3?!jlki^98b|-O>yoCnzaH z+8!O{$I3`oM#RZ^-uBK`6}1Ts>FW3p%BWlz`sKE2}|j&L3cMz=n)5G{ngC&$vifc!-5p6IH7#0JhfK1C2zY;BE7LOfTxH{xr5` z@04JKOS(C28Z4i;&)DYN(ppd*v5A%Ed!qr)H>xGqTWAXl%A-Up`a{TL6Su2PsnxVJ1Nz;_H3nZv-AnI!3`wkytJ{sF-k1w ztTI|#EckjWc*eR>V)caGIpw)$X$$jJJ_p z+EIm`)^@3~mZm`?GKict(;8`Mt{@^6rs9Z}pXc=KRccrKp?4$^ROye;!y4!echi7Fx zSYYTo>y*f3)ac4?NjN^kKKni7z9kl2#~dkU&j#^fs*L{shB zYh`2PG1;eFMZv65Y=9)?1x3SVYnkg(s-_sx59p(md^4GNi-vXU77&(9fA-tGGj@1N zxiTwHY^@~Xf9D7D6ldl5o!ev-tn>|&nUoj;&dKR&O=AA<;U39}gIxy7Hf9SHQ(N&f z$w**T@$y}j9!V=DlH!Yryqjs%TntTKViMIPB~#5>scJ}zSt8=9j3zt0p-w~=7R{VS zZI{OIb1Bp5B*N)!ok;agK%tN|{bHLC8n_&V3x>E#LTg-pB=|o))n2WM%SxDTD)cWPPKq-qeO+lM(7TnyF)+)RY!x6;f9ocex_hMMs=A z;NClFlS%qENq4lFBnJESqIkj>I# z4Vt^*1ZjMX3j~z((qpc4m|)~u1xXb9_9aoA+hmMJ?xH9uxd}EAFB=#x%M@jD8YjHX z&BV%P&ep`Xr>&i_&@7*He^t_)VSGLtET8q23Fauc63hg)^2sQwGQrAcLn)sxym&mH z7_2@xusgcAghLrBX@AR*j{4$e9e`&DTTtp_OolXo`2SUg@+DQkQKzU)Pn#fP6Kz^m z)}|QU(N(IRYUX>Xe}h#eu&rZ_*{VBrJXQ_6>EF16t+FdDd$nU{))`q+)W6Z?mCt6H zl#c60%g-w55)Nbmqk)AQz_PQ8&Vin0mwkh-$)a2qOsLk)4-;e}#r9=V$4Y}v9F-bM zRh(f!3Zk+eBX<~&5({;&mZs6pRXT%=C~4(#9@n+nZ@cYXOG+e$?Hw&jUk%AS+KM>Z z{)X(ga(&~dAsEBoU7x#i+STLkHs##-V4be+xI|*~9yLU15-Njmh~I@ zOgzZ|Q&GmAl}4ow*DU-TuXAE-VRA?~qt!x^B|hGVTD2fY>O*Baa7N4wn|f7@Mh;RK zQvi-d7B%G2!5{OV#z3a=O-C`KvefMyJg-4I^QW;8 zBgWjBeEC=K7|H7^mG&#{#R$gwl$(D&}ovHqebSYJKw7Go^FgvZi#L zYClYi!kZ>BvxWZBf&h7vj%8FN&>3&iLN;{>lsR`9yDER*WZsZHR%_L*0q3Z*7JnJ< zG7EB%hG^_0C)16qvW>GSJR0--w%QhEjj*gzm>Ml}Au_xRj4W4Y+iE$Q#5H8FjjNdX zwx=iyx#DJDx#zxKaciP>OiZ%YMq?^iOiWP6n5sP{U29Sk;{hupDG*6H4h~7<5ese* zIf7#*i=ra}oyGRkupGC~CM;rVFG=f%v#ah7Yg&+tx{_O6+0CAxB*SdWcXVr57lmol z-1XVS7^*-niZh!;LI{)Rw~pvO4F5&50L19O5~Kf`s*-dqM;nU_fk~Khz0|TGG+Hwa z73HP<6qHPDMR`#(g;+Br(QC$Q1Z#LqNl_hginY;ZNy11~A;csl6-ko3Ddm>-V$2yH zM{cTGgMh`SuC(_R%CgN=cWp@YFVM{X z?^P&~sgY@W*0>yUQIpbF%M@gs-1W@XlrmdWnOVM6WOg*Yu{F~wHF;lK6ZEf!B{~9T z=R+Z@rRg#_p~Y8QzVm%eO(9?LubSnMq+E8TD$aWqGs5_1RIjFAsa~!>mQphHlJ_LJ zTOFI!o0>yasHrOd3zz`As#f(8dbPO?R#-kT?n~ct|}L(nbAZcn|N(vjaPY# zbI|pfGN+Qtnry;MSM7Kkf%0<`mAm)iwbp_z1^@rZuP6Dz+@hjJ04r_$MP9Ws|P8n>bdIt zOr7ZqrBIhONq`1kGArB10fiR*`9Ky5D%DHr=O*Hr>-lvzH>fTh|a~uQN_Zsz;vF*hqUj zaN>N(#^+?{qpXTuIv#*|n{9vGY=1cw3b)tjMhCOIi1cr>yjWhSP=hS(=|%{>gfz*v zG{p7Jyuz#=Emal>RH~c)RR{JlVCT2hx3FM<1(3p&Y@=$k!jkMxv$ryGEH%kyPkRiz zloCb=Xjtd(-pWl8SpJWQk>T^A!p_Yy1;JgP1NNk3~zMLw5`VT z)&^uC!I4)S_;%L1Xy{2A^0M)Pa;vwZ$iBZrZS!>&&h)m7-g2s4v|B!W>Er7j?m!XOSyG8C;gnd7});XG}PQ zKWU|d)sU*R3rWLj&5E|_I}#}StMZS-u+1E*sLIoE@=w_!J8aKs5Bo|5ZvMAs=|C3m zb$Ji2En{4n8z(jGVUIDc%;T}Er9Dg;<4U+>s6DVcQV}j4t8FNmIL1|aS#dLv;fW&E zn+%f<3Re3xDB`5IJ-B1wMyu>P%Q6FF>Uz_J-b0h10@XYP$EbGX*JPXTZ;H2Pr(uZG z3Tv!znP6qtf|UymJ5PI*GTrpCW_IOhm#QM6fMQ+~07;h9A7o0RNRPktqT@418O&@P&v6N<_ zK0kid;)&KuBab~lLQsI*!@9x)r6<38?sFwY(_iL>OBG#IHj0V zxrk>WJ3G$KsSqepZU0IsDq_%F8c&XmVJOB>SB~MsF$P6h3Uy2jd>I?R;+#+!=iL=? zYR)&ykBhU-&gc0FKnc2^0F1^6>*j^RPqbZ(y$D>}mfMd4%{K57ppfe%TO3T#dcE=; z*k_L{Wb6vVi~SYVp42unHIn=F)b5_aa2xkbnw#@BwzH0JbJQVfJiu+%d2DO&YzGL+BgR$fpb z*Rce<+d!C9+hrgenV*ry^4St7AWP0wlXe>tLZQ7|%2S|0s9N@2n+BHPw7zWj-i5-X zAVbf3v5jA~ZE%Hesqv|zQ?{YdnE08(Qv-<}*u{n-;HrG4SET|0&J<+pGK`SE;cVSd ziXp5l=%9}dg2zpwgp*{m*B}cu!-M`i$_?pL4)XFH_lGjiPp_ZvRLoU+0?frH8;A8p z!6=ZyEPl_Iz7r}dpbCyFd59d_L2dX%9WqT?6Y@kyE=$ojp^p^B=k2i(JGYfp`RU^k z{I$r&F5H*I2CCz-Rw(qNx_6UZVbTmcnyuw!H5X-_gRNwPJlWlJ{InzQkLYCWwq!6K z&%h_?A6X~gIr*jp)WtrjW6wKw$R3cr&zDITW!vLZ`bHRfP7eB78BE@SVGmZy4$F{I z_^9TxZ)*g-1-pAd8aW(7jaJ3Y7Fy(!O5fe_Y!!j3yLdxVpsp=!zI`|;OoS&jY92&T zyg4ZxVOk~CiMW&kQVpie@#@%;gn?pKua|Wy6R`)&6>ds6D3x*VP0oDBc{lC0p`LZV zZi}v*mha34e-f5FUiCv?cBGxsju&Uhw3mSLQ(QEVcm(QI=2hc6;zn9BiIft~`_&}WpQHbdjG(28H>g2s z#KRDai<>F>S^7~^mU!GRdSo$!n3SljDQhm?ozNQ8qiGAz-e_%Orp@h(2i_1n5}TbU z%XOW_NrE+p9|}iWZ89yd?ZSkI#ac}BG*X4l?c;f6gV<%srg^ptPodjr;5%JL)-b>D z#Y6#6Z}Ze~#{AlR4l2QBa;%CO$MA%y0F?%cM*d@pX_^>PG+|pNpu8j#3WDRCt|1U+ z>KT=j%dWWcs=7Xe1-xVp`E^ZzUxlhy6-XIW#Ee*KQ}~$JrR$7@>YV=DM5_~@E;WdTt#c;8|`(AHRdd*M#UUZesQL}jHp3u z$;Sh#awt7V$?&a0b@0twy(xh#9|Ia;zGlac*(D30^myJLAJriWtm5%<=q3M@6ensW z4$2HKBf#z~sDM(oa#KpyS7>(KN{t1aFSD;Um)P}Xx3}fz9J%2}GS4N7e9o)7j9ODc zrQwv||GH@Dff*ck*naX21oD+c0!p!RtsRE|g4GG~mi?ucUF~!XbJRfi_r{TR>+Q}e z?1SyIuey_f3Weu$(Ms8h=xE0zrpwW}Z%SFnY(|vn`ex|v6n`>>|nt#6`PB=b7UaM1$8IwG>(t;^7ya5vUm?TR3Z6n69zQ_=v-n`AkJ5g_|el znyG%YoOZ0*?Y=skaXRCVV|rV88*MhLw{;Sgk!bjn>(qt;8HTD(t|{(g3os>Jp@8ho zbxDeyhTO3~{q#0c$434N-B~Uo+!;%i|_9!M<~ZhE@GG zR((&$3z~)jI0i*4n~YkypE%oJvl(o{N(<_tf>j*tvv`kMGq>$38Ha?Vc&Bu;z7T+2 zmTk&J*Y@VJ{WSkkhc9#=+X;F1C{g9DS6|mU(V{I#Un54XMG~K=2X17r-&UXPYu9JR zERgn0D_%HX`)!;4CM(JSDxO^or!yQb4zm4{=Xv{Pd_L8i5b8LLQ1PI0L^O@rK^kkt z)GB#oLi*E6c3i^QkHIE$^{VVK^UUOjQS8}BUi%tZUa81dI(b43d6^7Nuri~omDI$8 z^}!mn-U*_ZNPNsZi~hE`jx8R2JXS>O1#+XdP@8>|Q|R|5Z7kxP#$Co%&NM$>H>2XB z>a#;_s!7$VOvOUXRb~iZ`B)PaPYx?!Ooq&DOorG9N6B)YKoz6O=E*v>gU;VYUO4Wd zE6nZHZOn@LGfKEsj;f}V1$mQ{kb34$s6Snjzm81~s`Tv3p)WgjA^WntR@tI*y8VJw z=@_1N_Z_#YH+%H{qK1=N?C#5af|@+nWs~PoqipqVNZGck(JL>mlEo8mpJx(GG$7Y&-zhZO|?x^3RCcd>PfN(md%(nO6Gpv19U~anI7X2AfC9T@*S%>+<{!xBd0wRGI zkqhmS%C$D>n0|bu`1MiWYN@FcvOAz+BS90x|ge!&k5<&%iE?>?X*F_s)K5=Hla@BT6}KdK;7tHbthJ!MrVw&M zc5vc*1ACa$24#T9$doFRUMbZUA+8Glrp=TyyC8F$_D7CSVq**(W-hzOr6P>i{tX_r zi8j0CT{~<@dM!;nZ7kj;g&9t3(HHl%wXTNJET*Tt%StKAcr#$iyAya<7B8eACk<&M69}BR;x&MDY7-cwQ6jOJ18?GMqWh)r zJIFAu9C5C)qLE9HA`B|0kg{?f{iP*;u?P`-i4l7rYh_ts7d9291sgul4$WlHfTs8h zt{y3zf(4n%POLn!6N6~+1^V|mUTG(J89X}s)_z3w%sZ8I@ZP?o|xShs+7cgOhOm?*@VYbxQtV1d7*HOfmeS0pIEhe$3~vsqD5UOFCWVG>1&&;hf5)E&ThcsE_-8FD+%i864;Wo^~QCuz;+KVZ*v-+zC0LuG!DK1!T- zi8FFyw=@S(7>+i@*KY!HBGP=ekBBZLk8eU{!+mPE+2n6&-D^&0osOp(Do(Q9ygsc# zhopO5b6MMTRpvW?`AB{Q$uQ;(m+Rtk?eb9&dU;4X{l+$X^CX=bqdsk<4QfQ(f5^^D zl4YKCB9OwHZ0Z%!-v@2Xx!$buO~0 zsz3+Sye6HnN(D$zZEX0^T;I5mbvp!kkLT`nLzhmPd3G=tEIUm+GnG9gn9{Psc~f&* z*O%qirW3KCcob1kPDxCiXMiAiNPe>VRTzp5N~Q)+4NRNa#5cy7#Grwv8&@*9nRo)OA^Y^F70b= zv;^=@TT;VT`mB};$t!>cl}-am!7=Xl&2^Fn-si3on>aU`Jrn4_^ZmRwH?OB#CX{A( zw#_aHeTjKyw&jS0|EY6Z{72l_|Igq6Tap*tO*O zin4YM1*cu#$_ovymyylpqLdd8H>kf$(rKI0qzey?G-6&e$het;ixR@jG+D!bkXx-X zf;pn`cNArFS8zJ8tBm`zJKjNyi00bgQ*%~csw0R@)~K=6P-(S`?9EUVwHjBcy^v8= zu7-KcldtPYi!XQy)d(w9foJ7n=@@Z*4B)zez9Ez zCfi+6NW`#-xuMk#w5lE(R-3%lARlBmqcvPa zTJJEfp^yoU-q3_C>&$Q5yt zL}Jw(SCM8=$5K`sYrQo?x1>czFKsn_SrP?TdY;5|Xd#52gl1t4khIZNPK;Y8Y;R9{ zcCf-fttI-L*r#Mn>LsPUs(bpIaXnQ>sTYdYs9ScHE-FhMl16@dw-;PJV?ecY{+gJq zXDV@*AC~ErD zM@k{0i<|V)#dIp6hU_Qw(q;=t(y+`Co_KX}ITh5DqNV}tHtHBlA=4Wm>rZP@R4}@g z&0|D6<>j=1nyaB3MA~$|f$X82v^+@cq)ou+*b9eZYAP2KznGFn6{~piR-Kx+^1QNz zQo+%^yztVJC@S*;33l_T8N&q%00mW9G%7+`rH&Ah^t9kPM4ONm?-_VcxiZZ}iPW%$ zAcbsFZ^pc4l#hvs*+f->M&#^Xi+*Y{ZbhI2!;c(xVZltn2QU0K%cqXkLLT#3f%?wS zT!=7j(6wON**c9Hn&w|SI&VPrMNv_87fdIr#H0|@X&=~xR+P+`E}ZrOsmP)mK|D6T z<&=xMnG$E}l?-q$dXUC#){t%vq2=g0jOJc76-At>@h~WljmPwq4pd>1nV7d}8a#Qo zr*~VnjI<>;%hF-;e&mt@TWU(ieVv)>2=M2k#S?(7QSyBYyt?sFPIr@^>OYj_MQ5CP_*YLQ0jlT}P9It8KkCZX9FoM@j|D1Jv1 zBGMdj#~9lJ8S3cey9BFQ1@?sUYCE>L=|xsLfF+Gy-9lkVvb5qs-ZFYe9OXfd7*BF$ zPnmR#MXHf30anLtfn0#Cl$8=-ZL)?Jd`Sjq+OqV?ht^OmJ1RXKJBX~9+DlX@CHtLs zAmz2Y0bhe#N%yGwK#KIUc_xl zp*;@r;^pp$%A2pAM2@lzS5H#*Lh*VML@~0bhTBdH4=3!{rK<4GDzSV~gpIvQ7wfv& zGY=Gbs(8M=ZZowPWZJ9itl~&pn%FDWRAfwO@J(y7EMu|lO2^0Yk`?A-ZToI6*QxO} z)*(H29Qfjr)4)ip-hL-eO|P_xu9Q>~a`x?BI$m@eqOkz;0^mm(?|O|CYrpDKSsLbB zU~08|@6Hp67JvgA?9?6UP8Ei;nBQ1F$ccIc9NB$X972!Ciu{#2rFyC z;)7h?qAH{(V&08p>x-YX^Rnh>i5B&1iff^5v>L@h$y0)o(Rgr~o>V9IsDB0E*UIDz z=h_Aqf-R+l>{d+rY2ikfiGhv9KIRYLkrPeos$8P=q(}4v7>XAo#-t$>p36r?L+;BH z3p$fKl|6PNBTbwvw~EVWKdZHkc9sTiOp*ZRJ9E^zQc}7IyX>XDUzv5o^zqui#Vz>N~aaOzunR2s@{P zMqf&YJbKAR8IfH13lm1up)*UnNCyjWy&m|8-4b#fDzoFs)u zsykrOIlJmRy0w~XVt$pxilzp!(2Gx+X;L90%=5c6=muV;#>7Gi(CgFEYqi(yE(?vz zY<`s#HTi6UV~H$F%><;TwYHd~O&@4&GP%>5c!dbj8N2v2NCz-xJ~m&>9~jm)2VVROka_l&3Y7R3UOqeUMl3#ss#~ zVKrB45;R(KCBf1Chq31HJ+|hU_E*hSp+QW7YNG_jX2VOyU0!OV1TnKwa`DuR)?5vX zfK*d`VM$^$q4{h}usJCDxX#{Nu4&E93DIyg6N%<=OIy`7=z=Y%roLM?T!l)eC0rwW z5)H_FG>|(cUpGELo>YJvT6xi6t980DKo5u@EocH%i?7?U(acbId6B{`HIY+la<@)a^c`B(Q! zJm$(@w}i{$HKe7$Mn*a>r}>7`p_%kgZczMChmkF@^Y;b`@E?r5wHH1_`ZP zMpk5bUT7HeK3Y<-Xpj;LCe8D+%m6c+uuw`_8({;_Rd*IXdT7$<7EhxpcGrJs#NQ{( z^=0?nExQRL1zRmEXlX;p{xi0TUev~9l6Hxi^}q}XQ|GimHl5N5XV2U{Nln34LRw9N zXh&@_=(h7qo35T!=qRZ-q`8Z=hes94@9I*l52ZIrC_F;r0}GK(6N`v`QN|&+dg0Q@ zCWoqQYfNOFhS|Y3Cr~rP8O=o+pJviGxW*Z_(sQ1KJg~2eH_is~kX2u#85``KK}Db} z@>9wza|#Hf z3cv;kxtM3XRMUm2m#U-W+39kT8Tl3+JAogu(vWFI+2WU{?Nqi3n`2fowbLpqYtqS8 znv^-Vx?WTbG%5iRFxa?^h|rWy_87q^Qi?qLW-M^-nqz^G05Q^x?uk;w zp_nQOAL9~KfI4(^5+)Pds4Er4q_MsZwMm%`I%pY5SB6JQ#F}DMd}JQNX|= zIu^p8#uN(c4s_RT)tc&nqZ+e^EU)vm*OC&^aUIo{7U1*Q6zX0wZfU^3QlmG5qa0AG zbQv1Q=`{*vkEjkAhNyCEN4#rvjK!mJWtN)v_aK^gu45KL%}fV5bh~S*yw#Cq`x2y9 za(38UJU4M8pm-kn%j{mg&;m&gyuuf88rin5xk!>}LI~2x2!mMsAj=eO^F&(_IO3>68gl$eZp04^lgXfxg07Rj9d3bzl3a0ir&5{Wi1H*fuT1ktdPT z#5Ve&90xVt;BJm`BTtoi?d~9G8vV{Pne(=e5AvPTa7t}Gr?zfwKeqKT-)Zaqo#A&` zCR?dG6S;h6rO=Vf`J@tHM;{p^p<>Jw*4xC{;AH%ig4I4|i_DY6l^6xCGQzyj$Ea&xgn6Q^;a=~~l7lf~@{iBt24vL?}t!WTue2GOjLVWN$KE6I1!tcjw@ zNwBh()js@D9YfYhG77q=qq8L)VOj%4Vv97^?p$?|QCD4MJtql5$yh`Rz!(aTj>UAo z9+8BXb$&@z(qKr{ccUuO+d0ImQQK5X$hHv{WbIQ)F^!2zC?}<)XlX-eUbVk~lvQPi zvGTyUbklu$mSAr(M(O<6eUs*_J0=&h55kOWk{wf}uXtrTp95Q~*JKaf{Jop2homt- zeV^y*suDAj7I?e1&DEnW^#YKzYSDxS7K<#I36VW>ud(O{&B^2z(ZQi(=d&9oBbfHU zzUnm-s?{J%nbT7n?wiyakVA@1`PG{Qk#Ch5b2kfh02UsRQPW`>>?hn;oUNP7_R4A| zo5+k6l2kZCtL_|;?IW;!Z$`=Yt+822Ms|yNq9*%`l+QwTAbPS@MxJbD04eA+Su_E? zmvRV_jWRWg4k6HjFZ~?j6I2AN&82YA29_X8dQ9_NDN)*2u9NCuUAKmLbp(PGbEBe{ zmCd~?eMuh*&I2Rq7;B0qAx!3_a8Q~wX<+X7XU6^~iQZf)Cxtq1LJeDGf~vooojpKa zzfwZH6xfPgMNbj2fJeQmb$JocI4$Y1NP}jotz4-FB^DsFD7C6=hE^DOztp{xyr@)A zQv2ESR^e%o0K?m;)+StXyR2bSY&C2J#nB3lipq7X{adlWYBLo`-zFPaZq|vLglBI? zTD58{sfm62&uA*^ zh3##{Bs(Em-{=+Ie`7jU56M=vhor_K1XTw6*oR0pN=a_&_w{l{L?lmNO$Y>xy`zJRz_0Bb$v1V*rD2>8A7YH&YO{aS4TyN|jc6wLX*p)raz^w1qOu;sX7A zDRPbil`IJh*76=Jl~-fP-gBFe93|x(G53>A(L6mf9&=lmuaXcjwkK~~y>62#)^k&C zmKDvf>}k&C## zFe6vnhANC)Qdcr^^Ccr!ZM?$BrCuy@4tQxgU87vL@MQOv4DUR7!m5trC@P0ithPK^ z`pJuAY?@>&XLc~{13MU7U3M@6NV&v~L2Wj4WgNpg2Q`76Yh4g_tuz|j1lC}nGjFPb z%$x97gYpQJRxdA=p0vG8p53cit=3TV)|yE&0jnZ(mB(LIvm_;#9Z;by4v^kx>CFy9 zQBrkU1Y-)II%|=baPaTGNeAYv^s1%GjOXSSdKca9t_1Ad<&^psyi7xW(38AiNWqyk zrm|tb4?=*VRXNbps>I9)F3Bfu=y)xln9fH1D|b4UZ<<3As=@P45~|u{o|DT}&{-N4 z6Ulf9MNCX@@SBf{O+tB41<%G>NhtGc5*cFj(HK|n>`G8=>@_+XBktV@Dx-|DpklF% z6I5i-md?r&n#=v~5^Cv}aFKA6P)vG8YU3nSqga>F(twTo5LFqK5~`8eE+n+ncblf6 z@yF={piUYdiO2Aaa%;^+w?&c>UHfQWt^HxKX-7F79F`YJ&?EM%r5{BRAF*s`j)DM~ zoIv{3QV1Ob(b@v+-)a7%b#xSpTO$JsUZzHlJrGf6(;oLmmRvKK#zr31Uyae(%*EJT zmMtgAR;f_f)w@>Mab&i$!p41<3Y#=>qC@hnl|V){qr)VcH;uDAOp-QYc;TZc+mvq2 zgtdOg1ZpYT?5dDZ2kziTobX#_ts&IvAUd=LdmfLCp8`~DU=##P23v3U+~EZdT%6%+in_(76Pj5m8F`F zvX@I)BT-v1HBMhyY9!bIob;CZvZX;5Lo5PBy;M{xIO{f|#9IMcVsvK68i_sPrAi}_ zLPa>uMB$F`K(2^oC*iagd!gx7&DGJMKp4vtt%zoW*%A%1B{&_#5lr)Hwgk7PsCk+N z6HL-biEIh{U`yccqG?lMvL);XlH#J7PsfQStIp#^lX1F>CMv=;cw%Q%l#ueoCZ1e@ z=iJaVTZ8ba$F!!b!r^00mP%852TEpzKYP@HmNy1xW!YV5NgiFJ+yn zV5KoF5va}aR&G@}N7&j}xmc|17^zg6+Dreysp4vnevVr7M=+W9$&6cd9TpXa-Q4qa%xb(O##tY;Q<6V+RYm5_2 zWXxQRi2BnJzvFJ_+H3Vp1Y*>q${u*l;-Ma+~*OUK_K zW@N5H%y#aZP0T2tU5Xj*CT2)+rI^w5b`~MpR2&~O`&E`Y)$?DII|lf!7;M~&*zRn^ zvH&)Im}Rq5++AF=Qx9DJ9G|@29 zO5#Y1$k8%x$J$O1H3!X*CDD#mqR6u*OLk$$Rz#qLdXWLvMQbBT8wpSeT4HoPIOT~t zipH&#E*;CyXw48Q(S$13W3cK((hG%G<#byExwSn{XcE?xZkdz2rY(0P1+Lje3?5yr zu@}!IX>Lxs;l>swjJ3zid!VYm_Mq94*dI~6I+%pG6s}2Zmywi`{3BsW)~PA^QJWSw zbz!XJCccsj&TlC`k?1fLnW^j5V~Q=V?(j_#eOY#i5@#FO^Tgdk>0Po$^JYj1!?Tun z6N$DbLK&AamxJL&OC!NbST>^DXl#p_PJT1HjVtv>jDZBlA+^Sv*11$D?a^s3p5tZRdPPJ;rmc@c7{6>LoLoEB{{Gq6ocKay%&V5Pwp<0MLh^{(1mWWBd{ z8u^kAD&LA{iNHP_Z=2-Hnd2T|Y!mkM@D487CMYBPo7HSDx|kN1+SHybE0{2*u*?9N zLc1a-_5-)|_z!IQwq_9JxpuU6?d@-)wOb(q!ge|T%<+WjfpfJvtDsy1xbDq`CuA|L8fwWJVwn zeAf?>2>l=%o+hJeiPmbg8`PY!8gg!}QitVfFa3nJG`UjmZsQwr<)Q4_RFz#SZRT?* zracwKXu#!4e}Sf|g;-&#N*|94kyuPGsb`U?>M~XmDH1GGbtjQxj?si_C#~ZmWu~fi z%rWz7Dm<|pQ}wUQm}woE5xT!FYMs)zQ5n^RpTicD!st^6J5GYRku-zK&>C`gQJaZ zG4}oFga=t5hhtJNyV?9{LrZFJAd$91OssOe)byQ=yEet+Cq(SHaFKe=CgKf5DDpk12 zEw;b6_y(4ewIQ)p_07uGF?miC3N*b1Xb=zZ06Tk40@#|3I??JFN}%xb9LIff)VJoO z`Jha+fTtuS!+p`hR9obPk~PIdEl~Fp#AhTuTojwijKXvoZH9T-BT-dRne=bFXp7oD zK>ezctt}#vget3DRgYT~n^Secm(oMR3)kp=N%X3L;=(a%}($cLs3+*(Qn<^=nr;;ZoZ?)7(Em~!&uFwv> zl$Wj)!cbLy_8u-v%1Yv9iExGp+0%q4$Z`+@f_z z4#j@D-7t~e#32n-4p;uz35PM?3(ACyZS@gJ;ZRC9p2*8F2hT&aux#WzI*6yJne_== ztIALm^Pd}5{x|PUW4&Karx!y{2%QUsjtkAXPSWaDdfc6<0;f!<11irFMB)G3o6ohPu6xFTY4;_oSM@CG8D4d1ShV#Bz8=G>2EjbNJDg`mXLTIW5f(0< zKdb%BaPpGFXC8HUXg@ej(~ehkToMMmSFT;vHK-yT>>e8G8R$r`k3i+*Yl=peytbq(f_0uO1j2PJ8;(;R||((q#kvD|%M09qbzB`LLM! zT06M*!mhMb6X|j3$pfn|9qd_o!Eid`09UU{iyI(F1;pG0|!Bt^JSI??+cp$y7`@(_2OH%}PU|B4OMcFG9YZibqhSPcmyHaM||?sR$g>fsA2Lp^!%IcJ<5DAvW{oNxvOJeCg&yN0{^l*KYL|BShWE$KOZ;9}A> z*gZUWX}cw~y{Et3QXf-%_Tsa%)6er5&L)PlDZtaid1GSRoqLGQJ%09g^@pV<8%qXz z`iIBIIn>=Xxa@)$>B);|@+VVAKpDd;V$nLBk)08iS&c7Q+rMl$46R*Cn`xJZ8qLU< zK+SU$l0(CCtERJ7cP;A zS6hy)8LsUo*WHNb@^st-F>mp6$nr@pyVkB6PA}x6N50#;`-!2ae`Si&=pPtPhq{Le z$%P_{2C9WzFY7Y(KhTd9536}y+_Sv9UCn~-ARQtFJu7-h!_Gmw=tcp)Bo=$AjgEFA z-fUtGcMUD;>7k%6qJLSQb`7pvdto;MbFtJ;cmHxqo>UI@qY7yJD~8jhw9W2t+-r9G zV_&z#Z8>Gz)jyo}cMqw!2D?{x6T$%5>lz*y4BZ#59= z5Br7}g?;$jJG6wo_?sT4@wX>`Q~BG2zbW=NIp}Ya{Y?z|<3bYqYbHhdYpVF0fPGo| zYh(+1>5r}K&;ig4=y2#T zr~{e_9RVE)9R(c?9RtmR4uTGZ4u%+VFq#VCPzakfoCuu+&4xOm44MO-44nd<3eAP) zLB~Rjxsc=#PJk9b3n5uyi=Z>0#gIBj8B+5hSrRXWLXyi@`3_PFCuIPs*}on1?p z(M_zppr^NQ)rI{7tJe$;4X?fE;!7@l-K$>xn%ACp{_cN&{biTGVI8l>Sbx>k*SvAV zwQu^DH^1er*KK^;+u!lde|^`#{rkJG|Bv^)_kHi*^nn}x^MfDy@QpWpOLqPn>;Hz!D*lFVctL;V5MH_|d;F4$ zztxYwpuf`db)6yG@{+=bxPdT)E=VG_6q1-NgCuIpA&FZzB#~PIN$gfa5~m9wiBu0H z(d&gIetnQca1|smybzKo_CpfK0Z1ab8j>ikfh3lLkea{{B-3;lItN+{y$retdO374 zB+L8~=v?Sh=#|jxpugH>xS_C{{<@-nTDEEc^BKDhYvO|Lp`M{J-K$1d>1b!RJ8yJq zD+dSGuCA~e?K_5qjkZc=%aX-s&3}cNCRiV4SeCo&lKnzZs|E)8+Lv};(9^%X{IeS- zu{V9a*^!5s6?S~N{Y-qyFn3+110RjuKr8MKVrW!hQl^0+l-cr zp$jyAEnAN%#63%LkLhe>}`4F5Jk~knrN} z<%gy-)*=q_f1t%-31(z1(`~36>!_h?wvxH88o*>8|3fJ~RyL~#7$-#ADMay5JgN#S z=W<(&9bIs$NxS$Jh1Te4Ar=z8? zJtzwt%iAJ*{r>%zmp%2YXzyM{6}e$sD&VfALo{G78gEPGXU6=vvb#ST_oX32*_-4+ zQz_#gFS#o*6~#Hmxs;BQN|8|$c@N2N?we;*Nm-)Ay${ih9jPo9)Zqlt^INpvP(er^0u^Z@*ye;NnazFxh*X;WeF&&9WQU6s zRtF>-y9tt=EmC~4w?*=wL9c|6cILVwRfAp7>ma#b?WDBb>?HSFoNB<&ILZBUPKxV` zPIBJ@JqU?^2>OHb&w$@2vvU6txWjo3lm;MLU|0}4WLN*S_g{c z{~Ayv{*9nWY1;t4$=%-!isa|5;0K)lPw;8y{|H_|V&rE%crB!~y@`**C^Wer4!+F! zbHP_T|5{KaKj(oWrQv*VgS%e~ij@90fg<^T8+bdUxb6f+;=c^u<^0{?SDn8X6v@w4 z@E1@m{FC5Q&i@V+Dg57qBBe(I(rQR`+Q`QQNa-npdqE0wZ&1X4wz6V8LkedhcpfA_ z=Yu_vWUmhtiC+bZ6lOm-0O{G)ph(ZI0UvPp?|~xuc@TUAlAj-fBL0U*`S>v;_n&}2 zh2;N#z@NGMFTh_r{~Pd0NPf11&q7MupTOtceFrF#pJobA#Me*+MRK1AiWKi8@Gy7p z02jFXBJe}*{$X&lyMGcCDV#0f*C3_g>)eHAcg;X@M(8{1{A3b{{)H@&YwY% z{A)sC4@mA)!Re6P_X0(7ZvkKI?)!lvx$h4i;O;X(k=zdi+ugkre1*H83%<(T&j)+m zeG~X;=RXVH>-+=YW02DGI4DxtJ^|)YhH|e0kA)QPao`E=ej+H6`$^zpcV7aE3&He-wPo`NzR0Ao=+z z_#~t}ZU=u0DV*m)k@&xWBKc2H0C`A!HP`^jPcv9_elj@2`Gdd?=VyXPIDZs)wDYsT zW1T+%6e;|Zz&Xy(15a~)A-Kr-mx3bsKNoy8r1ZQN6p3E}4nWG|YH$rC|AXK#BtL6G zk=(BU*E@eT_!dZht^?oZ{5!y#oWB{|?EJ0Zr=0%`_yy;014Rn|c2J}+?*PB*?)QRU zbN(CP{myR%Me@H5e9ZaB!6zVv`BU&oNO^n~6v_Xez#WkMBq)PCB)%GKgyg3gl-((Q zGC0HegTM~wXM#sKe-wDE^Cy5Jg?S<DlwZ zF6Wnm%OHin0vv#>J%Vc>`M(kr$$2`oB437p~lLEy2@p9qTN|0M7fNa4%{Pjh|&xXAf)z?V7y3hx{~7QL&ff-#6wd9SNa5cB z-tF%9fcH87b?|=YzXv|({EtA9p4|pM=KSN}6Oh9HDflF$y!;k?3X*>r*X(97KO7$5 z0>tRv1Qwm21Rm%7@!$!N!aNZaDV&qQQ{0_RMB3qFez-lGcN|Ba>+pj}{?7)vebo4u zgCd1_9@ypXOTlICz5*P8l>XO&>mY@51-Ks4vsZ)fa`)@OPdfi8@Jr6$4vO^b7VsYD zzYdBN&bPqtI{zRjlKVs8qt5>nd=gT6o&ta8?uX+blK&&Yi zq%h}$tDIj0UIoejHQ*ba-vGWDlK;1W|K{%R25)oz9#Eub4`x7i5+uG8oDV6TF9XkY z_t%2wJHHfM?)*ydLg&|j!_Hp`zQy_LK#{`V2)-Lq_}7E)b@xr+S0SbOUQi_deo!QS zEBGhpp9fEy6x|nqi=1BqzRdYofFeEnO7Jz#pAT+u{!QRpoZkp;cK%lIGtPe=yunB2Uod!Ke*cYL2w9Cn4bn8aQ=s&NbcLfpF@%d-qRQ+Kyq&aMK*o`r|UcJ zDR>E_^pAj7Ie#^H4Wwt^2;SuG9|1*jzZn$i+0Ee7&TA3!MUdQ6@L)*(JHX?ep9?OA zl!mR~!_I5*aw?=}_XJxYJ$nxLTIbIPFLQn!D3YHM@LEV=ZUo=${AO?qBtKdhtrEdj zgGWG$>qzhvcRv+e=%mQs!ubGri@Sdu{Dix22EPC)oG*eu zard8szk@7oEZDvnQaJm8$3SxL1m{C~b`iK3lAk5ux$gc-@N#z_0XI0m5&WX_w}W>& zzZLurr0~BB{>=HGgTI0l{;xri{QL&|oxA@Y6v_Q*@DJ|(NAOv9{}U)uI9i0h6B54# zd=}EP&w)Ff*CO>EEKpv^Nc?%=<<5_Q zpLYJU;BC&|0gB}RF7R&W?*YH*{8sP*=N|z0-GVV*=gW(2s0+^2a3cW0E!p_gc;z05M6UP2s{+hvxk8qrgy?@ zu+#ZdKoO>CI2#nn&v~Fo={z4?4k?@!;DGaMK#|I79VimN5qyvHTfyy+@|A0iBtNzA zBJmC2Wasw)MG5ZH!F`QaA^IBJu5@ z$ifF#IzIr4b@l;0{Rf9(HIXrN<_eJECk4?nQ84=Tq=NsEJ?>0uOfgPO#tk0dNpfUWUQTonHsO7gCzv2fp9kH-S&O z`*!fR?p}8zd4c5rF7WHlKP|i|y5~TV;>v^7?p_0mhvkm;MyFUf~5mGqMfgCAf{~Y*v=kEaTbpFerNdC8hzkrmsUxH7%`%~cW-Ti6s5AL3P6gh$9zaDII zej+&4`4oJK^E1Fho$mm9oL>z-?)($rFCeAoSKzOm-wr+tDZk-kA^hj}W4xQedz}9U z_?+|MIno9xZIi)0o!70e&(lYJi^tisYVxhe7gx z1b8H*K6eqg*!d-(NdC_RMUC)hgCe<~1Bw*>YH%1*`Y!^XcYX&bs=>W>MTrJ__Djx$ zd!7F}_$}wZ1AgE6AApZI|19_%q`WAE0;F&z@c9zwXMnu7kUwOB&l8=W4K8wi3HTc4 zN5DTh--mUmg ze6PE20>9$?ec-p8|2FtN=R+0#Axi`J5lD5k8GOLq9|E6qK2#^+07(8jz-7*dnj{=u z8{Ip>bDTdPTifloRA zd+=%JLwyqVfD}#&9_#!F_&MkA0Pl1@G~g4G{{+lKD%)zX#`#9D+4&+k8Iu1!z&)Lx z4j$$FEbur;;mig_;?D;!gY@hO_#WrCfcHB8HSovI{{;Lgq-R5c@F6|h37+Hp`QV`Q zBjDSd=ky_SxgHmItMgmHr<@NHlJH_kVeSVW04c5x@K{K)G17#bK=SiZ@MDntYz9B+ z?x8sedqeVb04NgQ0iNpoTyP0w&w_Wm`!?_o&WB;rvYS z2(JxG2!z+)k~hiSM&3jYxBI7ogrfseZT zHt^?={OXZgu|K;P)Yg^8;|3^N)cd`F{cwiT^PulK-$5E|A<4 zumO^L0i5aXM}Wt=`*EO1{*MPwa`$ zGtP&->FXi6H-Lvae;9Z)q_}2*vz_k*Me@G{JQq^A4T9IX``f`AAwByM@UzZ`eW-Ux z&(?wU&KJNA=MM*uhV<-lph)});EB%922XWDdbY+TFK< zzlW5b&__Fh6mJK3G$i*<@ML#i0-g&goMqs}?tVFVo%5ajNmvJ2z6Q{Zkod)*NMSAk zMRI>B_(pfX4t%@w?*QKq$=)vfI z6S&3syTBhf{|NXe=bs0sd_Vf13LfeF(cl@*F9G|VUkz?>{!QRb&fg6FANKA8KFTs{ z|M-L=U?70#0wNL=r3ezF*Cf(ANH3ZoRRIBk6$>T^2ucff6iirAnh1zADGAbhkSaxj zfPx@JK)Un)U72&gJDW`qu&eNJNhS$N=FI(^`zt$ML9VysO{5q49`@|! z`yBfGS0;Pdaeq=&A3}hoA6d|j?@bScP4aBBDn)P z$8(f_*HFC%Sr4k$Cq?xpWE&*k&I$gmgX$T{0(M-Gyw8pck)m@7lcM9IWMeySN{J@SUk{{Xe$K+Hy zo=z^Z6QyX^(e&J@eEQ_*Z;W{ z-2N-3f6t0$-HnXG&8N01S?||>C9?m@;?!0U>vsHC5T~_j*sTKA`Ti?^{a5??ukiI> zz3aa+*MBvx{|a3HRk!{tZT(l*rnYicACFefrsIpJuWEWy)B)AXSy8<*DXLc?MRl#B z4YPVUS;y*i$p%($NQ%yHL^ig%|4Li`)wP3oz3BW`$ia60Vp3Gs>Q~WmJedG}Y|F@$ zt728xs@M&7j#kII6|(-TV!xw)5V}pRY84%8WotUcT>Q<8a zuNY0aGE}QWbvxhnqJ9ijKD z6`Z1Dt)>(m$CIMlOdv(|W#m^@cPlP+j#gZ5u)0=Wiq7|6ahcrC<_DJQ0c3jUZIf4C zT3stB!|XVm)M`qdb3Lmm{Z~y6;_XE5>lIQfC3QRgs~xq%QB;p7Mdv4w%dGwtDXK3g zwIWjIYel4}zM9nPNY%AEa=jgIAX8f@`5kq)B2quN1EAYUM`{(MZpVLxqgFMF&Iu*M z?3{2iSHcOGB+kAv9Z}o~~B|EN6R)Nl`O1hPdTD{oH z>aEGtRx+ksv8YvxdcQ+R(QOVTU$wecG>XodK#GpF^dtg&`8<*2Wbi-F6#mZ(PNS>G zIneq3tL^+(*!i!jOSyV(Zf@V(&Lc%1+kA3~)t8bht-gvBy|2~e8mq4*Q(J|X+R8iq zP2#_*&VMDHR>|E5-TwXLgV4uQm@H!TqNG;RsjiiDrR?|-QuMZ^$qH7lNV?T_T1l73 zR>0*Y?}lzitLyw%*lCrW>McppZMGss_12{SDm<;k(>YI)qT|kF4?FHjJ`25VUoy2- zdns4vrO)TPo#a(|9P4ehI5wAFtmwOUYhtq^<&IxbF@hTgUeS=Q?1NVkeG<%+)~JO2PFx}EPxw-V5Q^`HNW zKdtf;oqvIJEB?}2*%uhh;|J*bKPxHvIJ1$WZcPxG9Xh87`LG>FlD+IWkvs*xt^Z1^ zs1p2~gz8D8*N**HB>AsAN^9kg|7soo6*~T_Z~Rx>_^-0j%9=vZ=i~wMLFnVrY8y%Z z8j)_rjay}-x>nXKw{upIE0KI(NVl@af7Q%`Q~$X-rZ&e-q4OUjwK_((=~l;N<5;U> zUa@nuN=9^!R>z3m_6u^Z)#s55t^Oss$m)y9C01WbYGsXX$A1NlR?0jK-DXKL1Ujb_ z`H0m^lVz-4mUJs?{8!Ux1&!!-w30@2J1>!nDKj&F1YjaJQwZu2<#likhWQSNzJ)wy_2ZqMfIv=E33CAMfEmhU#s^cMfLvV7^}ySqWV~Jy461=MfDlvYOAjy zMfJ7hL8~7kMfJm^*Xo`*6rg$lnGe}HzK0am^ONPRUV#+VE0WEu-kcQGTadl1-kTKF z`;a57K9UsGN0F1QK7|z3r;^L9zJe6hSCad!o3VVnhc!pyI)yJQ9T=3*y=?{QN1Wx-Rd<+QN1P^Vf9E-RPR8(X!Vy!QGFo!uGQZo zMfGvy9IJmpit2O8%~nq&MfEM@F{>XZMfIP^ObdMXD>EsoXCd#mdLdF&e}D|NdKf9H zhm-BB-kucIA19x)`T$Z?f1Z5P>Ti*v`rG78tIr}u_1WZlt8XAh^^N2YRzE_D>PN}+ z3w`%111YL!BnwzQm=x6ul9jDqg%s7RlC7-XniSRBkbSM*j}+DWlVhwNLyGES$>~=A zloZuxkgKh}h7{G;k_WARh!oWilU}R45lN~Ce96y$B>(&;?}6(1$?{gOK#J-W$!1n> zPKxR+$X-_OO^WJ$$Prc_Ns8*D$jMfpLW=5B$>mmGL5k`t$^BMOB1QEBRIf{Rw0b8}RPRhiSv{H*)d!IuSbaPxs!t&2TYUj3sxKtB zT74TSs&6MxTKyC$s-GqUm-_BkR#H^YMi#bu5mHnyN>;ae4N_FENk&*bk`&cDkS|*O zB~nx$NWN?J_efEF96878Uy!2uTynG36G>5h3wg}y$4OEBCo)sK?|x+_MfEJ?{Z=nT zis}!Lp;iwgMfGs9oz>fuqWa_Hb5wu0)dNm0EG*%zw!BSrQ8 z~u2Q&Lo)L9T}CYe-RjEqM^CA0kEd!=x9gdzSgA9>8%vsD2MAs^=%m zTfG7)s#heNS-m+as<$9}S-m$Ys`nvBSbZcZs*fTkTYU;Cs!t`CTYUv7s;?yXTRn*s z)en%Dt$u|R)vuDdzw+I$Jfx_emn?1dGNh#D7f4b4BAIKs?|$7$it2ZfC9NJpit44v z`c`j1is}u?u2%0xit101gRMS<6xD~4u~v^GMfHi~BC9VZMfD}*POI-CMfGpUGgd!K zit6W7Tj9H3IY?1GC;5=oi<6>y39`1;>yV;)U9zLqJCUM#XEMs_(WIz8i2T6n<4I9{ z0y*F63rJCYA-UD++elG;J9*OTr$|x#G#R+kcfYcdqIx#6u+@u@qIyxXy47otqIyj- z!s?NvsNR8m(dsXeqWVDcU8}!Git6LYIadFI6xHXFo2{Nmit1a)V^%*-it0a+nO6Dk zS7uUF&qCgB^+Kem{s0+j^)OOY4=3AMy*(+aKTbYp^#P=){yh1n)!!mT^|#5HR-Z+R z>a)r9R^LF1>Kn-)tbT+P)sK?tSNrZ)22xbdNEWbqFe$1RBr99J3Mr~rC0kj&H7TmM zA^TdrA1SK$C&ySlh7{GulGCmJDJiPYAXi&`4JoRxB@bHt5Gkr3CcReotf2ta1ITXS%O{bMrT>ItN%zKq;s^}VF1zK=X_^$Vn^ev!+lcM?(a;MdI zk)rxHcvS>y#!g?>UBs_y)N0&>YYeYy)zkQ^=ML5 zA4Gm&_3@;rK7pKX^#!D;zL4B%^=+i6zMVX2^;4v%ewqy2;JaU0Nl`r;S=j1DNKw5g zS>5V2NKw5e8DaHEQdI9izG(HANKt(t`L5O9BSrObOnRZZXS0v$0UYOp>i3YMdVaDzvU6O46xAz|&5)hr=A@|Jg6xIt9QP(g z^*-bXWaoG!DXNbmCnGz@Q%F&LD!CllIbK1E>MP0p$j)&RDXJeJFC#n0S4dI)Dw#Xc zSIUqi1Rxd+}>Sf8sR&PRz>P^Y+R_{TI>OIL}Rv%7^>aUR>S$z^Is((zzTRnjk z)t8ZbtiG2N)%TI-t$u+N)i08{w)pPXousIK7g^HkA*85YimY$-2BfIoknC#pZltLG z6gk-HLr775C>d+@I8s!fNG`JaVp3FJLhiKsE>cwghCE~Sv!tkgPPMOn_bUe}s^=sh zvU+h+R4+l+wt5{>RIf{Rw0b8}RPRhiSv{H*)d!IuSbaPxs!t&2TYUj3sxKtBT74TS zs&6MxTKyC$s-GqUxBBi^R#H^YMi#bu5mHnyN>;ae4N_FENk&*bk`&cDkS|*OB~nx$ zNWN?J_efEF96878Uy!2uTynG36G>5h3wg}y$4OEBCokGx6xAOf zL#-Z0it6EHJFB-RMfJzY=d3<}6xE+6-?aK$q^SNjIn(O1NKt(@x!&pKVxbRu3jc^@3z&t5+dK^{QkmtG6aa^)_T*tM?;C_5S1-tH+R{ z`dD(h)juUg^%>-9tFIwN^|jd9Lo?C{kC$b8Vx&wEJG`T5E6RJ`amR&P#<>Mh7#R_{%U>V3!&Rv$@<>Z8cXR-ZzO>Ql+(R$oDi>MP0pR!<^D^#kN( zt6w2S^{Zs=oxb~(hZNQGlBKO)h7{Gyl8vq2gcQ}AlHIM|gA~rE2Cq3u;PqjJa<^Do-|H&~)>Haw(#((CYZ8h7WD)<#AN~_Q{3mv3GKXa1V+$Z91IL=yA*%aN>Cj}3L3WNNbcoK;WRB16 zcn&!ax}Evt0;?}1Q%>*5$T@C$hmQTHbZ9ciL(uIMCq?h81nDMrxXB!<`%mD|)Qv&V z+iLoT=p0Smm}|%L$feLZ@ua44=$x;}<NQ& zWNE9HAw~7Fr0D!|WNMQ+G*LrzeiHc|bpAooP1^72-LWZVdh|UQm zMdyT(qIx)~$r-A<$r(C!lQVSeKP|&e$WT442^pG-Q64&{0vQUuuP`#)>W`8&tX`88 zov&#cZlZ?&6xFMdqVq#ZH_1a&Iz;DuN{Y^zL5k|1ku$A6i=1oqd8FukP5N-tJ~Y*%0Q9!O zWI^bh`^X2Z{vau;7be{l5Ka4d7^;^f%R{$QffUs%l5Qf1rgwZ$#Y;AAbhICUshH$K@ z9=aV(^>_z*U+>gTkCf9pG{HmXOe1GO zZ#$b5)jucaSp5r9RG&+_$sad6)kF7J6Fo%l*G=ir?Wdg5@fPQ({x&H({~c0P*Ax#o z$wN~*&f1iYbEGDA=o~k7L%-AgCujIi%kZCa;U-(?ZT%-(q&Bre=cG1mLhnn{CPW`| z7gBV7SJHn9g(gv`{tTINB86_}h9^?&{?AWG@Slj_KjFZCl7av90(aH>ZQNh~tKRij zUjgXz5KOu&-J?17THV7H@4lzx_1se^V9LOglvlrcmdPQTvEO? z2_%2w{?D#v7dT$V+poeFB;gQ_n-iqeDh`Ala-0op+=P-A@eK4Q+R%n9=JOl06 zwH?}_>j1R#mUi6IPFt6towc;1mgL|YI276)OS@pXU9a3OSK84^bb(NA+>PQ0gLa*Y zgm#&VgLasjht=4I{m}LBM{x?e=DjL(ExWE=Z-N%+h&~vMp%{rVh=JSTX&T3~;C6PJ z$FX*G(hg3#M&0e&3ccWE=~J!5T|e&S4_a|Ja#}v+>Y$Xfm|qpVhF(_ zD2=kv&Pr}qC0(=rDBKQ8^*L^Urlt+q9#5FwWPj+obX|)+6r(T(WAP@YU>auObIie9 zEQEG8S_!wC(Rz+`EqbC!A`jvst{@(sx3y9Rw7$GZO9?e^oYJNIPeej+2Zt4|QLqt6{Ef?}wMs?fFOwNMB3&;Tva5^krS zNRB%q8iO$uBQYA|IC!8B;Mow-IFk(9mI zkK~2{O@lCKw-~omjIPlh1nml=onYK9FuEwY94Z)HM;(eL&~7d7L)SOEomt$jEE}mw zA}+!0#8U4L?jzg|EZTWR+Cn?8L_)i+ypBR@p^eyQ;Vy zRoreWZub+*U zY~rrVj^=m{=0Vq2?=*W!aXXc0mlEwd;&vSIB8hXf1y3PMp6bt_fG*h1)H`?UdklNpL$Pc*^ko z)6l~winoa+To+BxLpsl%fX9?f_5^7rOR&IaV6CYk=D^K)VHap&bE=Aq2X%ITD)qAC1rP1>&Kp{*r`~ zxP)J!Kh(=147z?e5`V`F&}97t^A#z3un$Q%2~E>K2RA)G%XEIG!A;E%=J-Jr!NUka zTeQbh=nY->>-p5ze|EiR*LU_@FaLtx|_Q0CayYAReiRsbM zwDdS=Qo5Ux?k1#rGWe#WyJ_fd61s<}=bD1b9-{qH__Tnv(_Z*BTzqGJ#;sz z+D)l;6RO>GYB!nMO{LZZYW2@u?_7QJ25{4+UGH2|rZrjGLqAzP@aj;{+f9vjlcA%j zsrT%rK)VUh(e#YfW7dRc^^rB*SreT#%~?HQ^?t=oagOF#JzY&`77zW{yP-aAF=!gI zdarK!vYWQ-CM~-u%WlH5rYoxt>w2)R|EdYf>Yv6z6OlCyS-nzCKUQzlO+MDdWA#Nf z;aJm*%R&>2HJwj!dP00tdp$O#*VB#r^fdPen$GK{@w(}|ZrX0g?!M`|ZnAFJGrp<1o?gC*y6Q7( zYOeZoFh2jo**Rh)If_ZR&~)5;XY+NyW9S4;$?c8HpY!^~ zzDc=mO0Jub>!#ysDz3PxwQgdqn^x;4)w(IQZbGe_PU|Mqx~a5oBCVT7>n72!!-OiL!2*teYh3rpUSpvTo9=oAT-= zyt?VG4<`90ySk~aZi=g$+Uh2@dYHnhsjO}aYi*{iikrUbIpLeO>L#taDXW^UDuqo^ zQj=BPR8>t=mCD9VQq=@i(ezYt(^K8#R5vx%O-yyuQZ*%2G$B>ogj6>j)lEj#L{#Yt zO+ie7O$N}32#Jp4_K z@PznufjM=v`mX?@5bFs~qQ3m$s=S~RDozE+@}E!R>|N_L^wIZ_74F#5Ztz7bNgoPkR!C z@Y_y%5V*Ys+#G*5m)^~QceC2vjC42S+|7x0vzOgWWj7P~l+DrQOYE7(cS1q(WlY3# ze50vTuP*%%ypGg5^CjuD`*-4B=jBlt15LtJx81+fewLR#d=K4&dy$RrBTb*J2iGyz z_m?{4nk-u)Gv9}(hA_0l6DE>Oty8W^vNzNDUYzCMJKxvpc=X)dXCuQebKesMH9q=3Nd^hB6(&~J>pM%eF&h>P@HE}g%=X)cyv^wAJ=j*jP z;3+%bjrsYjj<-79`nh~Fo$htKooq&G9dGw@UY+l=aGmc^y3*}%BOUM5I^Axsb@%(j zzvG><)9v5kUdr#74cLU;@bEikB~t5T*P*-opXy+1GU!WCCwm-HcCtNmvRwyzJbwYG zgRT9%J^Ze8oonsg9gK1a!*6x2_i>K!XIoPyuRzlyD?@(=sFSUI zrTshCt9dyQu0yT8owcv?UHql=M|P&Q7qdFi+I!h`p!acn68;_NUwJt&n2sZg;bDZ} z2}Gh3x}XpGVKiKaI*#LbB;pkGi+%)R@L(an9;k;%^nHlmDR>+2B4vm9OmV&k@LL__ z-X-|@;E(DkKlU(RKa9f%I0H{feg@(cE+Zg>&N;%Njrq)4@DaA8{PzU+mNBH*u z|ITsDB)%q42l=5-`265JJd^*u6RgRXA*cv-f}evr!Ri8Ug7%Y5LNoq;jDYL(Zsb_q zUHyIeEmG_3y1zHuPy1&l_ZN=)-*e}Nx$8>z21)Pvdg}XZ73bu z)H=3TscS`YUT8J4_5#%&pk2@n-I21R>sBfUc(1RMo5XqF;|NaRBCdkZ;7xUSJ#=`} zArnfYJVql1;}K^PNv)Vp*$Gaf8+_S1!uQkhO{*gu>(>$1UYV{F>>g+QR!6uO-C_Bo zI>W6p`}VnYg|u<*sT)RK9zOQ1g)XYaV*p^ z);^TS@C!V2g|!!DMW|!k8tNDifI7zGFdkDe6KQpjFVRg_2iZN2iwxq?KBA#LC)H7& z0soG&y2*3!?Zb%3DF=&rStwLW0w{qNdmfhn-b(pn6T#pxBhgscab(Z(z z0M5d{gRHLc^>mDJYof%l@5Wt>D$;=TN9)T-iFtKa)4pF|I`i*ggJE ztz+yu#M-}3o#B7rS{>n~t_b$XUTu9j&cB@L$>JYoW#4}Ix?*Oi2tQDx|pw4kkxV}X@jyoW=4)XiY zaDK0}JIGp@`e%2J$1nEnqvlEEVnZpx4>qNT1gGENtTJ1pb1@PBM$1Osf_SVlYf0H)Hj$EOz9wax z*+I%KvzwH?*oXb*04WE}VN!lDM@czmej?>0^b_oiIY-Jx!@qL>*{J*-y#=bC8t7<_A)anq#E=WKNQ2aL!yH&_r1Uq>k@CEGk(7ZZij+ZS1SzA;7*fWXH%WQhyi3YB^8qOnOe`rA z%}1nsY$lU3)l4U4hM7sqY%_p954q-Ic$C)<)}GE%1`DbDW}aDQqGz4q+B$YNx5pgqy+FZrldC+ zNy%igkP>LJk&@lyBqf)*ih2gi>2J+ z{Hr;*UvP`!-C}OHI6L58?l01tjHF~TSx5;q*+|K5a*~qE+(k-mlb4iyCO;_!OhHoa zHxH0f*c2t@Aya~slBN_XrA=8<%A1O$R5n#f2{qxQR5vwAscq_#Qr|QrrLk#BN;A`f zlvbtv6^}!+*4mWIZnb4@PF#-JTLbN_K6}T2IFyiL7yNpJ93$lq?9ogNvVRW zsD-*{WO|cP7-A9&@%e_kxS|73c}ZtDLqUdQu?AF{*HkdWCoKm)C?o#H8X;g zQDzJ&W6hhSylvhkWt{ndlnEx5l!@jeQa(15NttSq*&YHj}c&Y$av8*-6SbW)CU*%zjc1n1iG)k~wa4p^Tg{9-gvH z?WxUhp8k{SrY0%1OUo z8Ds{NGSmzs33DPzr>q`Yn3C1srXfSiE)d5TmXFoj7eY91n`gegguLTOW$ zl=7w`DV0rCQbJ8QDb-C)QfiyJq|`SJNoj1FlG4nyAf=UQLrOdII4KdP11TL%XHvSF zr%35;dXmx$1Mq@*iIgZah?K!*C@I6tNK!_dv823-xACqSN6H6g0x7X(A}Jr4k4c$q zrjjz#%q3;MSxCwvvxJm*vz(MQW*sTNmw2nxj0lIJ-Mu zMJ&F=R-8a48XotdGFqY+UdPAqU&MWYm;D!U=iA9serNzu?v?PX4TAb?9%+A-JAZoVQkQ^2>`=n*Tqo-qbJV!YGDL z=mI^g{lB_eQ}`*cOCz&)ta|fYnIN%ida;{t<{?UetrL~ z)tUjx>uPFgT}`)ty`KNpYRy}#HS4k_=hkY?KW84mt<{?UovSrH{I?JVaX%hFG4RZg zE;RF0LS=*^4DIkZBFu}V3^Wr-p}U<--E5hM`B-G)NqL!NOES!~WqC#fUW2ZxUuqIa zS#DO5at6A(KFe)9C5o)bhI~d>+ZVvo=!tE{lZo?i9v9)Rws%+AccNd~8NJO_Qgr3H zoHFWz$q=I}e5El9W2G&0m2U!~72+XbfFBDY`l`Ju)LF?nD8En5v}2naia7 zI*Hpywom90qpx|Hl%JuiBl~fcqpp6`Rgar-0he&aJUo?uN6=M}vJAQkQdd9jhpuvr zz_-|sQ#g%d{G*X-TrsGt33L3)QXz!kF*HX9bTr*ac^bNkP*)44M@HO^tjLbLkq-qB zjLN8rP}7c-$4vy;8J+;&Re-umPZEv0>Q0ZpL|4O!yBf}2#TIotPfg(zboH99S__4{ zN=;XoNsH{htIBHU2=M4CvPD>orO;JmVL5r~2mR0=E3pO}%^p(rL06AexPz-EpewlRc6^;toBFv-*`W8S6x-f%{(jUiYlp*m-$8b&V=60%XlB-@ga0I zRQNqy6$4%E)CcG9^<8zOtBk~5UF5D3(v?9{zB}&+HO#v_wWq6qzU$=^yO^&7hVAxU zwc@T8;VYFq^E?a5k0DR68A?i=NjWd4NHG54+n9?5F>qI-ldZZf_|y3|jX%O&HB;1NFQ$@rvd zD47P1CF2w7kzjKlDTT~~q!cm5NGWa}CMCo?LP{A^j+Ba~GAUI}C@JBlIw>_xZBpu) z2Bb7HO-OmnG$*B{X-!I7)1H(kOe85!nogv2G2KXc+Vmjh8Pl7TXH7p+{%!`4&*Mci zkd#4q1w+iM$7b_2xedF_Zc_G|Z%Iiq-;r|2d{4>|^CKz8%?VP@n)9Sw#3fus$qf8kHcyh$ z$#fy5n|Yd)9_ATRdYflS>1X~<$^i2MDKD9qNr^VvaY9C#(WJzfH%NKQyhF-+=6zDe zn-58eGyfoElKF&`DP|fepPJ7|nPomF9lm+HXQWl$~q$FS&mYbENtTt;&S#LIy zl4!mrWt-VS$}Y2;l)dI#Qj*Mfq#QEelXArTNXl_@f|OI{XHw3ZUr4!NE|GG@{7Q<4 zM@f>-WFX}>lbMv;O;%EZOb$}+Fn5yjHRi9SxE^pIY_y~+)2vcOdeA1HusQn zuL&mQK2wO42Tc)Dikaf1JZwTpdBl_m<=|RdfrZ*|intr7G-3%b*1@jUqFPmsm zUNJ*RdDRRj<#jWXl+h-JlsC*-3Mtdfr=)ylW|8u_`GS;rW&tT* zn#H6nH3_7AWmb@~%B&$}o!LOjCX-0Y*Jc|jJIpRpcALGVd~1?O`OX|7<$H64lpoD; zQcjptr2K5olJbkWK*}X^g_K`S<^nvjMIPiw5tKv)grW`_;#xZ=X!nF}=!FGXgf&=? zUD$&o&<+U~a2e?e`eY&{5ZRCeci=9Qm&}hs=0Q@5m||oJgrGF4Arv)DB-smt&AdYV z%>uU*f_6ZVC(#LA%~PawH$BPTc-HhMb`DY7$8K%B&z|m03f| zInH>^6Hz`PL+n@|`(G%1`EJQZ$cC9yK*csb%VrQqMFXrIBeu z%44QEDJ@NFQrepKqFNqN$ABBhJzM#|Hs2Px6!6;g(nS4kOeUMFRw8BI!zd4rU< z%sZsKXWl18J6K2|^B^fjOfgc5n}WZC)W|hq$IGD#$x|rBK9!a?q<5*tzdv{`d>Nfs;!hZ+G z{k(hxKjI3!CPyZIwxA(qBLU}d$y_DHlbOFW;O0qRYmW2*&eM*I+ELNXJHOeT6>ny~ zwEvEZnl=5Oo;Th9cKV&TnH?5yWZtyq$NwkhO>18LU%BIAT63p0FW-}u{~-uDa0iN@ z7%HMFYM>VCpdK2c1zMst+9DDi;jUPS=6EoMVkAZ*25(>rreO}|Vj&h|1y*4V)?p*I zV+X!9N#sF%kCQl!pOM-Qj49_&YuCl*XoU#4In>%8;AVGTypeg-DR*LQ6vW>mXoEqx z-klh4bS|}aW6XoRaQhvUzQ}GmGk^}X!M_d9muMIY`EFE*V?Dzx8_}I z{|XPQ5Bzs8e~oSUv*%zh zrjL-?kbn);{f7jo|DYiOsqN4h8q9q|bJK^EDC33(B=Yhpr0iSVUeGr{;4V_Gw_j0` zb1R|>T)(0&$Bm5o7Q>-_g@y`vit{)NA$S6jID})+h3IKrgdS3Yo(9~Gjeq2P?X-4m zEE&SzcSvo=M$OlLAAiNpjSqdo*A~x0J2no4c5FP2+>=?wf%`BVdOW5Jko8z+9rV~n zJ2h%nw`fkc+p$q|y4}7nn$vwA{yR37n9A1)n%^A>H@`c9V>iD$iQ{X{?~ddTdACDj zT01h{=v;4iv9$k=jK^6eb6s=3FYOYi3{ZRj*ByMiFm%1jsmP2Lq zKz}oYls{vxxUN=lbH&{}@kAD%?a%@=dbR%Z#Ba?F_stDYtAG7_=VN=Ag{^tm;R%y6 zu$5$Lt?mvy%K0-|+-`2Imc{*%t?t)KC%)qA+n)_4Qn=8tZTFX1**w#GM5 z`#r7kO0>MIB4vxb0X4PB|BP1o^=#RgvPE8tws=ExGp+K4yzL^S)-vBnT~gc1Q7v=V zDi7m0WlMYzwc+q@iK`V}4i!vgQdPpNda$7(d`N z)G9BB>ur@E<=o>qfipOVU!b-AKzkx&+H{5Qk4N1)pIS=3xPrA_1$g2AhzG z9oU6$k%Y8b=0!u&Zkhj;t@39+@wLidB-JWEiR)>VXPm+^PN-$>-zs0u%PWm*ng7ho zDO={nrutgukCFZ@^Urzt3&i7QTIWlr@pUn3qo>tMKga8CWQ)wyTIs*JRpx)Fh5lPD z^1r$@9!>juJmQdes}=6aN*g;D?m}+lMOj>{^?iuf|0i1CHPdK)*Ys$}VyTyJ@Z8?Q=wYB9D{NAlCtLCD0huWxv z`e=Z(wzkxDx#6geny3x`7I*|NyB7E|j#uEfTH#Amw8E>=_EtMQt(N#)UZ=KrTCMS7 zxqVw=N!{E@r)HvzTG)hd4%*V8JmMyp)y@;|y| z9-g1CpQ%OOXbb%v-bUMLrrc8V&uFEqghpVji_E0O$P z6#uWK-zlGR@E=N%{Ca*S-;Mn6->NwIc4{y{qZZqoCf_2DGqjat%+?HnKc}y#(rqlz z$888iHr$PSjOP4EFhUWIdT5DW=!3oZ7Fs#ogjR7B;xhB+Ip$$Cw!*D`_Hx|hGONt7 z6;+wTlGd*7DgQ)`4D#)wed}2l-?!lZ%>Uv`$+HUovU*-~o(w0AAgD0{aNedHO1_|WnFyZY`%5zZasVyFAu_C z48=QmAG0wBi?GBbkgISb>)O$+%hr@qXnt#5xEC2qvCbEzFd8v9h*P-t z5k7sm66@hlPk!D`;`LaCM7Z_dnk?v<{O{|zwT?Rk6`>}zCJ#nK4Qfpw{03Ujt##X) zHt5!EYvQ15K5O#ewbpHGBB5(C-{|`6?$dcJjq6&E&EUA-T8~|hzXmIy3aXhfG91-W z1GV7(Lf53kwEjZZI_$jAI&3#Vu?xqVn%EsF|AO~YlK?Njqwy71V;wf*YwW~s>_rm3 z#}S;sMO+29;0Z)FJcuHwges_tP&7mnJdS8wf}6OQDS*wqP#&WZgYk$niDX*qv@ct8 z`u=OI)7CUcw@!OI#~#*XPr&uA&vp|aJ-5*q%|xRLEf9&W(9pk($ZT#W%c49gpo$44 zTR>AJKg49rL=t|+S)9XVZ$rCvK8JAEv8xPJ= z5$+MA|2l3>#PnasU6|%|2--mFx7Q;Hzd*wiH8Jxsxb@qbn7PqhYaMs(oZN4yfgKG^ z&OCs#&@jfF$c5`|PHWPpn$!O+>$BaYPuG;zn(WlpWACF0?V+ixHP~+bbtK0<5RJ5& z&Hl{{t;5!YP_4uM88@>ITa!hvwGR8%B!9k6)-bv?$)6`-zUJou&OpN~TOtwz@Za2g zcI&4{?EZ7sM>jse&u?oQdr5K4W^BPZXz1w-e2;WL2Y7OzGQv;?P0$pP=nT&pCNclQ_ce~=6t2K?KETr# z(b$C~9D|0a1|kP)qY2s|62lOK8JLCH@Lc5I2VTH>Y(%q5oR6O9jeZz_7Z8nC5rZk1 zg?UK8S4hMTcrFKc-oRT}hu^!dJirsgUxPuOU_`;KGv}&8{=Q_zAFKSX(k$11$?a19 z<|qp{VLLo&P{u$Fe@$K%=9Yo+NHje9m5hP8^olqhZX`eC=;qrLB|Of(#{Xg#jinAx z;5ErNmXMFH5NuF$@3Z`KeJ~#8og}9kHA@n=LlLluD zyg!5P-aY)0iQ7>Q6`;}Ey3nWx!efSH47^Wgx+e{Sg83w(7#@Zm(moZ;o#ez?dcxvI zK0C+Y9@E9~7%m?AFZl_L9RL0|R}?kA3m96#Y19R$tZ*IDlB zeC=VY{|X=qv6x{7@UEUmGzMdY8AZxJObGpRX@%Apfsu$YYsk$wh7&l4j64^jPe*?2 zGeJBrk{$KY0G}fsmvIFTXXX(uLQQ+}aYUHzWGv>IHRRX$&J5wJEu%0RWAO&2n%Shx z!CZWaMOcYdSc`Soj2+m8J^0ofA`in04MWdh0?8oc#2qMVN|92=lqaPUDx<2YPS!$Q z)I%dQ!DDER$4vy;8P6daL(FJW-Y`>1nQguxY^SRp*dQk9iA|q$j%smK^S62kfSixyhFZ+56lEo z;_wfAjLDde8Tb-QupBF~)@&j-V+(d*7Y^exyvRo9T5_7Aq*Ou`)HHQTX@urzW!jMu z=!DMbjlW}*8B5Ak^93niVi8uFwWMsqHtfVc>^FzV!#HKmkX~e?`z$$4O;YNbCS)^o zLT5yqA*8&EaroRUCS@t&u^MZ!9-FY;>?9=#hj9w0aSr-LQyJCJ9?=+VhLSSEOd{nI zvy_a-O0$}jP1uax*n=c^QHNh*(i6S$o>@Z5Mze?1FT7R!vXeE~fKAwpx^%6j5gMbF zX+z2rh`?)RG&u&d%{+2G;>|KrR$(=Enw(5&k-s4~+MzuLA`0Qf&;euWnk*q74X5trkQGiai z6h}!^K`6pe9nYW_`XdUTVkXvMGxlH~?%{V>engmo-o3^C1H&2lA zGNLfotR!U{wqvh3MV`hv<0U09_+S5wh~(v7couyz#!Mh%k$}xO4KGF({@ZGlrByIEey}_*{+U?J;T+ug7X^ zM)6Ph{NMt-NSMs`6xQP`N=)H?qY^?f08vOo6K%GATtf@N5PwMfJk?7}zLhyD1$oFp&fS9pB}C8xk22Fp`3y7hIlL%B_q!z8 zVkS0VKhDF8Mm!>Gir#n`OUzf~W*o&yT!I&6>3T~YG{$p?LXtU0dU3}cKA~h3hMCt$ z8Erl!Wg2GU7*666yvUHtCmR`roVWu;O({~!m`bG7L@m@sJv2gNG(}6aMtgKZXY@ob z^oJMi>4M9Xh{76d#%{e#Cwv~}<6C%9^KaZf+9Coy5ru__$2xeCFE`(dD2|c{gBMlu z@b3p_@GCOqSQ60(7SkkDu`?-oKxZ1HB6Q^e3ZG;{oa=`5c!atMmC``J}fiAKTOXyg`I{n(T?* z*o+f6iC^GFt?qo>XltG%WdL463__owLklnJ_u_jE!!a6h*pI_FiJ#%cg<&Lij3kj| z6giV;?q>7;&tJ{lQ9J|%$KArHY-TEZM#n(nH6`L{G?Pe zp`_F_waL0@YChS)`^1KwbR#ixH}@HFW)|t)&-Y@IPhRqF+-Dvj6H=O)7Gz7bHf>31Z=N6}(sU%HGrFL==}XE0 zGmw=3$KIX5*Sy8rQhnz_axC zDSA(FryTc%OOk#XO|(O?y#$)sibW;|{xr9E7l^tyT=b z4`HQn?QbgwyHdFJw-xokt6p0Y(Y@~p+?Q79f@J%ER84m+!ph-VN=3C@Il|&etsp)D zY4{$|%cz7E#E&hUvx0bM@)D?5K3@?YL#t0pB3huewI@5`3TWAs-qxQKRsLlOv>eJ? z_64~f>S_+1&H0M*JuH!IjOJ*8R%ng(mQ41BmMRI$l?>pvR^*l?2+NSHjj zwP*EyYJeJVdkz8b*$k2(ZZqzHRJ9!;$ zLSOW=uuMdBXKMbF_!;eNvM%adV^X45RPN9HXE7d=pk*YcVj4EsH{`eY(KeD=UgAt@ zcGaOJCe-wmSxCZ_=z(77ZT(0YhSA8tCiFd%pAQ?c8NDj! z=toK>vQXu$90lSzzM~>4BdkDNkK3XS(`T?7zu}nF9NVdl?Ln~#IeL+~R}AjQ$3|le zHbE;0tHZQ3l1-}!-;eFsfqav46eK0q&LGPotSr2Y+v-47=jmo-S=q__9B7XANWlQi zvN_~@EWkpjLsh=Q22_~B^ z1zVx6SGi;=@2Aje!|H7P%Dy2*U9NKKt{gK-b)u@%R4e`-W$HN9%D?J5l@1mLRf%>SPZS``YF^&Sp8V8Z_vORkqMY;(@05! zrnApAO^+;v({KjLK^=xwj_2n_9cZQ3dek~JExn;>^;UTgYw$5XL8ir=NDTwkQ5*FT zy@G3d?q7t?xCHm(aXbmF>>7VEk3G~_(EyF?5pp7?APqAy3$rl?RjF^Bjk;E!Y=A~M z2hD95IUJAK6QpdRF0vKzHTd4xbPe|rPhBE# z==o00%BHFt>~}@ekNH0Mt5^1n=Q>=|oqymOd?UijolUvU)->i_Tev>LzB+&sH@#LM zc3_c*IN~JYVsynF;OLcYHYqPzI{5)U#4p&6mw3hSXharc8Afnf^BA}Si=<--GNH|t zqF0){iA$WnYEz}$D@`VGxibW*C3$N>?#*5^_}EVDfvx~^Z<>+9X+rMFG})WMa(bW@ zss5K&qN-6kXXA!CWPLQkIcSMCmPGc$K-`0a*~H;sR;JQs2G=76PeYp*42Cu@co@Tw zdlQ3S_?S*fb|Rj)+lz52u0k>vgR!AVL3sLbq%?1bb&-gR5jl)Q19C4mpSvkvP1|ds z&EERqpWHnAcPwTcR#e#6iUB;55e@^tFU}t(eF5#Alb(LGdyb00ku)82F2qs~io9&$D` z10pel&tx|U>e#6>%>=YYJ9LKTMs=A&=j8hZVrP}@!6T8#52^!iIMAkZI~-uwayz>S z#q%hi@f_51F~Ve-Y=ueTv@2UNQaJ6(#_5zMc4!htHcmUV`c8yXg={=mBf{HrHr{U4 z2N~h*GFu!er&$?N%366+D%zQ(oMrK(R5RXw8F%H;u{xyGvj(IzvP4pv*g2#$x0d9& zIM3RU($3B&5jflu~b^|HNb|Wc$>=sgP!|k}! z?joh1^(P159=n%hC?s+p9>BvGjuChikK;*<#?u&sR6J|Xkum`jG1;CcVahq{P{2 zq?EC;q?EUcq?~DIkrHp!NU4i@Xn=-Dv?gRTw6JqYInUaV5`BWE<-l(=ov2AayO)$9 zxE~MN!{ks5$5@QRR4lbs z!>_i3+=)G?LTx?Ct{~+~>p{v@b`2@l*$t#5+l{33v0F&F&F&zjuiZ^bis?jF9<+x^ z8D@`=@~Ayd%9HjKDWmNfQc~?%Ql7I3q)f6Yq&#mgkdkIINqN!ckTTC+B4vRsA|)M5 z@QS@k$_jgplsD`xQZnpaQr@!>w+rmHn`6Vr&DPf9~eAf>T2C8e3QAmv;; zkCZmnj+FE5LQ*cWPNZCHmy&Y1C6RK4T}et0yNZ-+>^f3zuw+thv_7QVVz-fUhxH}p zZc8C$fZapNy*7lD`|Uwe9=2hmJYtWM@)Snl8A~PQS$mF@2{wt8DfT=mFIXBWGwnrE z=GZ(^Ua|$GEV6V`mfA8>mfK2FUbi<%dD}8bdDq?}gqG}{iv?H;tva#-+U@c~e1dNfz02jV+~19|rE^pyE1{aHP|*tmO@)e82)j*c zmr1z-SE8p~P0F=)J(-Lf?PgN$MhXVlJ*3=gLrA&b9wg;q8%D|__9!Wj+moa`Wur-X z#!^Xn)}A9}f=wc2iak%t3zkO8OnZ@(IW~`!muvwki!7a#rM8Te<+hTP*X>PG-nI-< z-nI8g`M^FTkDN;7Lg%DHwPDQ&DBDd*dTq+Dd3 zNV(W9CFOEUBIOFZl9V2H6)D%)b)=-&08;L;dr28$_mlFVJxt0ldxVrn?Qv3`w5Lc> z!A;6oSyIYdMN-bRvq-6CHAp$zYLime>XXvY5=d!mO-X5HEl4@n&LgFbwIk(xyO5NN ztP?30+ohyjZb_tEVONsU!>%Ib8oQ2^8|-#c?zFqeyOCl8NV&)EB}D~IdB{}Qlt=7w zQl7M@NEvOEw9G>#$55XU94F3YP!m(~~JB6LJ&yM(+HN$84h)}8Eut8g89S#R=2+-!G| zl41kMff$Sj@rXT5K7;5>^yo2^JGqp-3kP$F9xlzprFghB-sMZ;{#?4;k1Cw|s(OoKoaIwL6Bl@^ESq$L)W@?jQR)wK$ZqkYwJ9Zp2N{>BBA1 zDa3l{ZR?MYk&N;oy9zHw9fEs7hodlNqQi?0E002llW+*w+Zf6PjFZTLUebSh%!HS@ zR%K318(1)Q+@|{=p=4zGG*n_Ql@2lD!+J&Om z+Rbhc;*?dVt@-RQQVLpOQi@tJQi@wiQjWBvNjcVzC*?#tnUqs4j+E1^3@K%;JSi3J zOj6FWcv7la4N}gw+N9LA`lK|p1X3DXQ&O5)3sTOt^GIo9?MOM_E+pk5>qN@Mb}1>B zTM{W(*p;O8u&YS9#;zmf21_R8M(ab$Ep{6zcUWIi?zR+C2G~8M+-pNfx!)cnrReM!m&`-YV7><3bQvQ4D?Y+FhB#kP~O({_{c zn-%7g^RKLK58>+##giC=Nl>+W9#rLCiM>^~xAXD5s&-ygJFlvpSJhT!JFlvpQ`!Dc zRkcHV@E@&St7LTz^{lR>+U!HgdM&p@sXB|>Fq^Jxpb*(-r4K0C`#@3XS zX4ZmiiB{H{l(yEMlnbl_DIKjdDVNw~q;#>aq;#|Hr1Z3_Nx9apC#9G5Cgmo(nUq`Y z4pREs-DC;|+8|Pfn1(Cl5qpf3k0kk+R;tBIRrQmXz=9M^ZLoGq%_^Qg+xb zQubIDDKWeTCBGFQrH~aNCDslnrGyU;-qff>!&##J+9V8V4db>vkGGM5Fm$zs z+aK8{qN%_jYCgofEo|GSLBe?|{9+T~+VKRxQrqTsnts5!bttTm0+qI-z zZ@ozAZ8wo}v)xL{?RF}cs!bzhy3HVEmdz$*uFWUqWm`zfVp~eeGFwi{N_(A@H|=e572dJcq`YryNcqS< zA>}h$OUgQ1Ps&&JH7VcP_oV!28%f!0TS(bvzml@Uc9F8jvPg-cRwenZ04as62r034 zI4LFU2vUx+V@Ns9P9WtZJB5@|R+^O4?F>@NSp`xmS!Gf*Y%E=&uF>4xq5B&0jo~_5 z@>>B?3Rw|SV(oBJO4t#k9A(Fla-5w&%1L$#DW$A5DW}^Rq?EG?q*SuXq*Sr0q*S+> zq|~xHq|~zpq%^WbQkvK~q%^mdq_ncuq_nm6q+DPfNa<*uNx8%>Bc+RVC8e8nC#9!d zP0F=)Jt@7cHz_yS&7|CFx07rcu+8$`-ryN{Fy>>*Ny+Hg`v*kj}U zq>qnv`$tds2S1jihY0Eu?I-UrE_vyGYq%S!5wPbA|mq+l?H;R&Q-BGRC4&^efkMHae3mveswG7$EpTf^;4e2wTm z>3-#Yo6iT|>%sruGd{`-b$lfuszw!KB=050LVZ z4JBo`jUeSQdxDgaHj0#|Z44=6Z5%1%Z6Ya?Z7M0#Y&t13Y!)fAZ7wPE?PXFH+G0|c z*ej&GYAZ;2&E6p8En7v(JGPpX_iYU+AK53Qd}eD&S!e4>`N7mqBU>!OYAR=-oK+?z zkv1A>V&{<3+**>-%371s*4mSDfps9Iqje_b61$9)F4mQlZq}WYo^~}U*P5nCOMe?k z${-s|%6;|#DG%9DQij_IQXaD>NEvBrGm_J(Madafj+6>kiImEwwj`-;HA$&ubx5ga z4M=HZiKH~Kb4Y1!ElFu*tx0KX?Mb=7I*`)QI+JpVT}Db5>q<&D>rP5fyPA}1?Rrww zh9!4cUsC#6e^Lh8AW{a~gQN_%5u{qUp0JUmjIyUm8DnEf8E4~3nP`(qnQe1PnQt$X zvd|Wj@`|k_<#qdolmoSph1Rk1hviJS|B&2;u;*Pm9if_DpL9dc^!n2%3S_s6Wv(h1 zJGk7nT-J8YE3IXh*YZkh|LoG*t1&rcwUwmGYHvVgwSPiMZ4>_vO`=v=Ew7}OQ&!6> zspXW_@=9tsWwqgyXJmvuM#>X5l9W;QG$~^&ucVe&Qd3#&P)lmLXItcz*mBBjbtpMV zJ!?QpBTFQuiJe1Ab8AUTD{D#3Ix>B4wxzCuM{^MvlT*8%N4`n@GxJ zn@Y+wn@-9Mn?=fOn@h@kdzqAlwwRP9_6jMl+6q!$vo}b2%T|%{j;$u;eOp7yNA?LR zpV?Yc*4cVezOt`L`PRNCPeCyRaLFy614-Uc+>s z73HnVW{{G%*D$A`v7BlmZ?9o4nGVm9x7RS27VJNgx7RS2oa|k)uf2w~&v4#e!*n)t zY1CYoM`(*q_IK?y+&zwR1M>D3ru!tGaxL=q7N&EBg*^^>Z{an}nB2*q$3Jmz;opAa zTr?}kVsZ&q;$Zg}-p-%R+hdr$BMRm1G5p`!V_16&zlpbzx5sea9>f2C*kf4x4A;T` z(q6;QE#T)}_3wKP=j}1fr!#odu{r~44!&D?A`A`Ze_`f}ei*tTig1v`J zkR^ZLgIML&NG7MQ+Epu3BC?0iGq6XpLlyr`%l<#tE#xIg!ku8N!w9GEk@oST!8wj6tj~^DP;+yd}d)+o-2!Rory;5<0|j- zqkM>6{3!DMu?&Ht=5eepgM8Ej@}q#QW&r`MUz7k#jcnnV< z3)&$1d~B-1&x;7xnTMgE6(-{lk6NgYMi_dA6y|ISt z0%W204>6G!5yN!o2AUGRiM<{Xj}b`43z&h$Sb|k}2iu_O)6=j4S%{(UGapK#9um+3 z?a&@c=nnOUu3>YXO#FaN*o_Fs@|%!?50Q!Qp-p&VQ4-D34xN#N!5D^VNW%_F~azIaAv4|i$L z8O;Jt@eGk2WES{J9MHJEHjNI{b`7#ABhtx#-r zj+Cqd785Ce!d8^5iCUsshMS!5CI!iItzilt;6oh7)y?j+>_JMuIZEW>de z?&L(POV&ezoy=iObjXu%h^xxKtQtC5H&PDguprZl^VC3M=JZ0b1M(da$$2N#yJ1^? zGot9T=O&U%K3qNZ}7;n@-A$HkX`-G~V;u@QAfTM_h(0pmTtm zafjVQ>O5eepK6_Xa>#Iu#W*a)Vp~Ek#WHKfqi{Ytq7&946JKEizQYfQFU0#PCLj&p zV;hd=VLbus@f+&%(@Se>PhN=Lwt$qktUhCu(%Ke~@|Nu(vrs=aM{80#*juEuE|y~f zDQ{W5!})t?ZLgEkoF~P3(Ej%Fl4(!-H*ugn?HlrJX@miY-qSwpVXuAbqxY`w#{DaC zHLk~CXn*>l_7ph^VQ>1d$9&jZKI{>H^NGwrLfGqFd%Q11*xSA7Nvy&c?(0>16_NcSAq6A*LjrAout=<9DT{V zp#986dzwFu+H^QQ|)344;Kb6d0rx!gI0?+5K0z7+e~ z8~lfK|!`{|mFKg{tEpwp#skINaggvMmoRG8sbl7`3>@{8E zME;#-p*k!=S`e1ZbsO%`TBQaA~)hr>}~I6?X7$^ z_O`cjGiIH&z`00FSy(7`OHqzc9Iq&sqlgtFkHRrH7RRF|YN0l?{dP07LuX{a2^`PI z!BLds4X3Y2Mqi|02!>%KMq>>0A4heLr7@ASD6fT$OtU{zfTsa;JF^63DCoZ@ak^C` zg;zBQY6Ma3Wv$B$T&RqUYWvwD9XQ2veqb?GxF)1x@0lFXw-K;y= z16SFdq}+{ucmz*iq>Um+BNbyY(Wa17k%k#qh(%b2SFzIGCRgDdTTQ-)Z}A;AVHzJ zUZ%g%0e3dj9G}|yuKe|_}67u%bM5 z^^zLI-<73Uh86ZY`6e3kt8ap4XonuS4SlUYIS_*|7(;D1DO0QuznYt&r-|f#YMjHv z-W;u$f50ZwJAv%+Q9c~a!_ikqR2gA9f=W1g=00lbXel~EijI)-GqylS zO3{%r`e+%BlKPd#A{_M&baV?xwcJOueI31WAD#AhG*S^}Z%3oE`FQQU9F^jDs#Qi! z)Iwj}4IQOYp{L_2tVSkul-g?B$%Z`55=>9o-3UjmRy^IJk6Pg=7=2XIk!csAj~?Nv zmci34`X~~P8e94JfAVO-Q<0Z9{~gIYJkCXHw8KT{WEYc{AqhipKOVv`q+upzV;&YE z-IkKCVkJJnhbVaz-wwy%cw7u!i1kGZMk*__^A1um0h90o(l7_}un6f`j+J;D8TbGn z;&a4IrCNg`D2^j=EaFfW<#E>3NMicCoUb0%h6m!WKF=G%t6Bbv^SuJRN(;|*b2Que#0?T9Zs||q?EUK zvLO=C371#z18?GO`;`0)Yq1U+um?KrmjWn?5-5qIP#zT#k7}rnnm8M^ zQ3nl?fX=uSms=0A7j8r!++qVs8H9&06vHtBlQ0Eon2A}KjrmxJbi8J7kZ&TxGRbw= zfX&!p`C|F`PyoeH0wr-2%A+FUQ4Q5m6LrwQ5=d!|7HEa@a49ZB7j#7r+=_uVh`b*U zV;CO6V;G62Fxs9W$6y?u!z4_>3z(0^wuD@YKg1FaQtYVGP3~n1m^qh1r;og;<1iEWs;Sh80+e*YO5E zw@h*!Hee$*<7ebMoPR%xqa=<*T{N&pWCEI@1OF;Zv*y?Jbexa3X5pY^zO5T{K5aT!(%(h?F6C5R33CR^Uy% zjgLXwOyo>dwc4cALwz(tM_i1{&=twJ8T~O3_dw$*58`2r#xr;oE9@;&^nU%{ysSvd zby*R1s0z!1Xh3%~qrR!wuF+pcBa5LpjzAo$BJ|@VaJxN{a2;+yGEy)Lb8Hd$Dpp`6 z-ovNJ#JAXl9f1EZ#WWnoSXgz`vj$`$ znxGZh;TrToUkt!lOu$5FJWXD}SNPh#BY(h8_A|K!yHSa=-5RKgdT5E(7=q~Y#TDHD z!~Il@$1O(WRL(O>@$17Wh{K=VbaxqFV>!agtewAs38p72@~RQ(=%InR#7S7yl;^g=RH z@K;>MN6yOW8%rTaVidL@QibzKME8?bi09u8^^GOsaj1VR3k9n3S5OrXL;Yjw8{33a ztMRa6_ZYrzD#y3y_&k;)1C=K5dcqC3$?hgKPMV61_!+-K{bgGDQG0;Dj%|pU#Ctgk zpb(0p7|Ng=Dk1ctC2;#zq~I02jgRm%euJtMXF$Db&2T<6-r5CyF%UEHB4*G2Q9ho?)}eIhc=yNH>l7 z$|v|9KVcgVvRo61pURj!lJO-r;A?yfjTvvk4(Ot2+!~H^SdKTa3y~chyLR&T@ev}s zxMsmoI1Z;+De`R8MtwB21Tqm#&=k$E1goL`z;+mlN3a5$um=a~8%+L<*Dh|sZm56o zX{hUF5td>FUdJlDi#7NdpCWf3;ch;b-A5Rq&kTp7EXt!U>Z1V~p*7m!GNfQ9_SS#+ za151psQ)n4LLXuZW9_4niVUoS`Vu2tHlL2lzJzW^-i#DHjWKuyEAc)ebo@MxR7^%1 zRwJx@8u0*bJlPGsEK-p1Y364opaYW76Mv+!tOJc@9q|k%VmdPMGqz$IcHyKVj1Hg< z8d(ZC7Ynco?;=u^ngEW%F*pt!`4G)HTkk6svnnV5@tco_?@2uqNGZ?FkFkpBptr#REjCYz%jZbTp4f&rL~ z#aM~A@HR5A7VEGTkt1UwN8l)&g=(k{^>s*XG(ZaO#SpundgvP5!!^`TG~iX6@3jRYj(9BWQqg3GK6*%c|6jv1JV`Svoo0E=u1 zDa)_|8Tbe(RP|m!8fIV~UdAF@LVkkCu{_48hx%w}iDXl>LuVx6I;3C=+ z%(HazHE7GO6A_2fC~NU#BSenp_l(-6<`GH7&&a}ono_Eq5W~4N&kuy=6!qmuBQ!=+ zL^rFXa(^PGU^PC)TCBsDh)@lcSX4tD)I}pSLp$q8cEY8&4^P-rxefipT9qQc^J) znWyr&V;i<3tyGS5ax=29zZT)p#G`G`nrYj!tN7hs!}A`OBMDdI2J}J(e#AD@)?`&s z3+JF6I^z;_MK|1vyD$_9H_!|LZDDpU+F>w8U<_2rRuwz+PeqbxY#7X+AHw_BgXBXz zmeAH>r_SK-<9u9+o=C>7nS6f1ft#5^LsNEBQwBd1qWk%;d?%-;KlJshhihMb{gHP$ zPT(BNB)1^4`v1W`|Bv{6e$49!*P{<^!9Wbc1JL$qXQCD~(vX0bXoI#$|AO~eY{Cv? zS>zjzeOQ52&^BvYQN5M5BRk`Abiu#PH~5M70Te(fl*VZ&W93MxfNH3LTBu|7NNH@% zNoi@VNNJ6>Xpi%8p>-ssvt2^UW!8n1uDAkMT2JyCT!$Oc2e;yO^u^tlLf(f5FbZQa z4&yNyQ}Hr3VKe^B{EPp^c^7J3{A>aPITQ0mYRt_SNx&)d@_U(L;G-Q6y=eP6m zon$0`tEt)e1q@sBaSGPV{fhNTlm}_JGL<8C7guQaR$nv0xF|3F2QQ7gIeA56`}NL^+`!Y z3q-fRcjW#R=!X8bfRshHgj|Nu62FGq@&(r8H;XCC_eFh6BpahSTA&rwM&I6&$=v!7A>{yLb;D*jiGm7SB)7gsBLXOHw*PHAGKIXu$o3=!DL=97*VnJ{Vww$a|sb z3i7mtsR~CPNACx!p$5*!1-KD6Ax!d_%k70&Zn>v8XcExj7=(K<+2SYxpN4WMk7^dC zL>xz1_jsIS7m?Blmm|rpAf-F5!%fINl_H&wMNZ;S1x=}_i~81>lrXg-h1>n{EXHFJ zCPULLreTA9Lw<`NZ6moEXHxF1jxaSNgWK=oJ!Ikw>}`t1c0R5t8tJEy*ac0=C>EC^ zgWQBL<)U9@hGme6EJRPecq*P_@&tZY=!3iP48~v+HY4Ap90f^U0SHqu=5TvH7GNR1vI zn1@Bsw2meA1NkF)J6k@DL0RBdm^SF4Kpzd zvoQx%x%@pFb*(fj&l6}T>a$S~*WqTnhm=tmgRz*7gYBT&-_#*Z8H#h0xyIl(B5~9B z!m+dRpUpc&IK>O6Y&z|da0;c)dweemAPxf=?gDE?@>S-7@R+u8oE ztvd7hOA+0UMhjYE+6#qaAIV3LM`T|E!=dH15NBRe8X6$3je3aG;Q7*;Y~z979sfEo z_Lan2A-2}w~|AG25|Q^aCwjefr%Mug=3e- zs4x)m`A!(};fS5x)}jL%FQmN=ZDkeKpQ39XsvD>_kh{fGL!<{gG}@LwtN#i@4|*LW zq8YlP2TC$jc>+qKEE3Tyi;Bj~!m*9{{=bjqt7~}-V$%M#wwk>++s`?zx?`WCKLGkM z#th)ZdI0Yye4+Ds5=A&E&o+$|HM&al$__`wF~)FKj$M2+$-M%D7IHyi#;n4zTPo|Z zRvW@*Y=xG$(YODZ+=7q!1ALL+fA)*H-Np16+<_@Jo0Pfs5-I8U03YHPY{wG5?sBMM zJQH6+%NWT|reCy{GPnhMI|}RQyRW0}Ha_<&`cp$vElDeE?5$l`EyGC|f`hF!ML(y0 z=I@2tQyfo}t8oKXL#@K0_7rMPyZKm_sZChRC8#}Et-v*fW)_>wXY9rrA?Y^NFmY);4KiclA+L>x)(QUpuK@2ssOSv7|eN{VCyKgV_Hr3Jw z;;(A^RXuJgqT79Sq8i$LLv2oNzZ;?Y+=1GC)#kgenq74JuWENap!VMs48$NDO#82D zeQNhrT`#ozM%VVD+kRE!+koh{U)B6_xBaTt*9@V}S1rD3?^VsO3sm##fnK-+YV%bM z@Q<|lM%N0XYlLe1RgEyZ?RN|Jx!lOU5J(_ZD{P0(=#PVK_f?B;?)KhLW87PtuUdUW z?Je)t`VGW*a7Y zg=J|L^XEfNHMG}u=E5|(hN?E%2=&ZbNI+B64hGxMiz3n*``+IDhq0} z&BDK3b*1LC+p5iW4gJ(l-jCa=l^-{eB{y*zhTs9@Zo5@$Z79H~ zt@b9UtyZ=345+PEHS}Mx%l43}p~pjons8N?!tHc~_SsBshqhVO$`hd0*mmfQB;0~K z5ZYZeaWWGd@iSEX`6F$w7fuiqgolk``#y_V-%ts)Ng+HMAaR&B2h_V9Bf zciZbOK9;+tU!B(08fcBS$ldlDeJxlwi`S6pn($)uz`?Y`>I&>o+Fn(y>4PxlkiwWl zbX#kt#~>n%Ka@grTdT$-QlPfhRD`zHRos3Dhtl5qSGBb!ab154QlR$M+-YV=roJ?TZwQhT2Z6k&89JR5Av7Iz-hc?!eOE9KjYG-W+wXrTkbQ`M*u05c(RTW)dLhkldjR9%Q zM{TK%&=jFPRpUTvO%;s=EkhUsQfunR_|&4?QlrO!4yFxt(vkf8p@MH{KRwjx$QoPP zU%P1-V+w7jxyPC!6qnCMJ9LJ|mqNSgtK3!#Y3?>sjUlOhG#wv8V@DB+(HbjKi)eJ4 zXbSh$0-BEK_D_u&sd%ln&pJ@sXI-ex^IIHDn`d-;r^b{tjuh4&i*Dx(V@hh}T#wMs z89j!i_DziyJ#Bky(+p!sYSC1CW@p?8wP%L0B(-U3>}YRonfn?`(m2wA+BEl7(p7ur zF9>a!k+^?t#|$gAM&fhUQaex^W@x_*V^(UvJR1pUg3x~1joZ1~F8kfU&)qAh?NZ}g zYP-}JS7^Ho3kYbu>-Xwx^54^b89kP!F|-3MkN5i++IzI(;UbL2GZ=$sZ9F*vlkq%W zz5w#@9dOfT=uRn8%`8U8*-o3W14ci9^#GbeJEcQLx+4sceREtIlf z;=ZKg1N_kvwgwUpRKivndw&Cn(WUGIm9TS{rsE1yVuni6VFim&npSx_tYGmIw>M%Z za+j!8rry^|7O(TUu#!b|=~^Z0{jF%BQnpsI*jFk0up(TFqJe3(3JEJ#sHB~OLHHvj z?S=e#+1H8`oA_LG3A;eiLmMK@J@gk=pcus0dkBAI#R;uC5j`xrj{7P#%O5Quto8rEtM(Iw!n+*j#W4z~2Gl^-O!#Ji6BVMT|-4*&Pk zZuE){D(i;Qu2ybPX}2pvN%vq^Y*1-79$`fWm1wmh!yhTlrt#+wv=T$~3JfaECgdu) zhLsgmTCE7JlprdxcEH8B3|*}|*#kEq8DRwlt(YMH^pfmfS%QsTNkJvp{jH!7U3yjd zHF`ya{jG%1?f|7#l~lE|fl8_uB9u-GoRqUd!8xQ#rUQ`*tvE0pFF`90sAPINw30wu zT#WsdO!u}k%P;($-*;v?#f>Vb{`HM2e?@q$>7S8Xd*Q|L)RgsRr$N1Gqg4T7e*U zsZ=Wx6rG&2B7sV#&5#5&vfP822y4lyWcnpGU?X-Slu*l0$tj^WCYwSl4J09yP*p~~ z8-H|#flzY&j=!st>sI`klIs_gTqDo_`IQC!j#6vxQmWc%R6_kvmriq+Oe2&&bC*h^ zR{%)m^ZP569%u!Ce^QB5Wzv1k_}^bCR5Sh~vGj8y0h;Nbgo7=GYG!{Zf$p#LshRw_ zOP~2Eb86=PKukv{d4`$zDshG~XDD@QCVnV&4&?SsEP+a%Ds%3u)LDs=W{~f%BzYF4MwKHa zlp^<5dW@&U7-od;t!wl?cZ#Z8G|c$^vn9n)N(?i&LkaOfr9;iwmJ!HZI@HYVziYm@%@im%{Ih6dY=mkbeS|LAot@D}xr*>4L;z_ZNv>AH&7a?~{}V z(NuabH0ihl!ldK&MYvjn8eG)a65WWB$rm`3NqdLK@pZ5Xnw(b|YGlylyy$`I$_z}0 z0pKv;tAR2JlWO+0PtNZJ(v$~_#2%#wA-s=k#h!jhObwq2@AO*Jr;9$5&S%O}%FLd+ zr`5VL@Da3H*IMwZ%AS76Pm;JPe3=y9w3py5OC0u45%z_nZ!TmQxs?+WV4deGhZ)lY(t(GBI&d6CMgO5b?IEY+tqkJK+A!h@&2jw(44)A>Y`!ukYfUVn68J9^!w z#9_nyd;a}J^+3)_Ac<*w<~02))m#?cOcvIF%%pOWbpjJI!k36171pf4#FXLw;qw@ zZu)n$Dj%pG{}m^ydG&bCQ#g0eL|#4q?{8(^UmZSyntNlkMD7)NbJyb|tiG!idGqS< z2X0ButHU#fL6t;19p%;Gb87Mbv^xC3w)E!J-~ZXIw|VvVKes~ZA=lqi=M{+^SNI;z zj1zG&y5bImme+J{=WcaUi&eYgR-U@=VM~FB1DjzE~dFKhm}O zhZYpzYsVoG(T5@plE_PzPUb!&v83?t3&-fCdC46=fYD|6JD=G4`||Rc#7tFY9^+?QY7}37>=92 zPjQdl0ZM(F`j2Da?>lJao}!|S3Vv6zOt74zd)=1Xw)nwCI?q>5n(TsY=ubC#7$vrF&kY% znm8FLVRY(fLZc=RW~0+3BFCA!Oyne^yF=X}5&o6gN|SQBok2=Dt3XO6t4vB2t4d0B zt4T^N)J9#aPf9~eAf>T2B}MxKNDH(?D{D#3Ix>DShp3G6e%|5Gg~<`wm1N;l4a(Bgs*C#>SE|&c>56 z$)=D~G0i+G8+noYGRNkVI-gmH#aM2yk@BX!O-hEnOA2oX**+lUL;IMNPw^Sn+B#C! z+gGG~ZQqjez5PhaMr^_s+eXR`V=`1k_E;7vF}(I9zZD>*kQE^%)($77gdIVO#{cCQ zJC2kS>?Bf7u~MXzw$n*D!^)9T!77oWCCH?TRVAf5>Y%GfT9MM)+LF=d zsl7QKiq>@$ttckpe03PN<$1h~47`K)u?8R6C!~C4Ye~^MkFwsrBIRrQmXz=9M^ZLo z3v>=F+ie%Q8}W?7cR^R{MoM?6}EWS@}onXM&dovkP3EBl(1Z|!?hezc9GY_=_= zY_nfU*_Wlu}ljl+*1D zQp#BcQYu+xQmR%g#CYPkN}*Y#cuCxnvU3XoFBijWd(hm%smjv(bI zJBF0w>;zIyvQtPYWu-|u-OeDToK+yDl2s<9id7}0y4575menDpo;4t)ktLGS#Lgk5 zxwRyvm9-|Nt+glR0_#9ZN9#<=C3YDpU92l9-K;w)J?&~zuC?n)>1Dl1xyf!Od>{U`$*lVP`VQ-PL%HAPmwY^Wu8vBTpPwX>N*4jE!*4tO4 zd~M&7^1b~?%0}Bv$`;#3%CEMAlwG!mlq?itIJ+dY+Lt!FEr)p2LISk;Z98;C5_%#T zcOeCXF$_;26%&z$FjPL5+k0E}YXu+AK-d&_4YxD#HKJGj`jz`dOXny~mcUU~g_Igr zhm`tgfM#fkHg*pwVO6fKT&PNS^uSei4Jp@IZ&GeTAKU`fclz5vQU=*zQtq<{NO{PH zk}}*zkn)&4LCQ!QMat7QhLo{3j+F5>k(9|cm6T~Vos=0ii=RNxv$dqGv-PCvY(JQ4ZL-DoHI*=t8k;n+ zb4Y1!ElFu*tx0KX?Mb=7I*`)QI+JpVT}Db5>q<&D>rP5fyPA}1O|?PkZv#mgWP?e$ z&mJJq~H;Rl&8KirisZ z!CMjv<_JrgY%Roj0(RPobj(W`D^H4+5)m!WAj?gw%SxEq--MM?B}~D;jk2t!(yQpK zJsfVcQKa^A=pC1%A1T8y8htr#-vzCJDbcN9Y6pvM1yehiTEL!xTEBk7F{wGWKgW3v zwBn>_3bl-ercxir^RyI_O)E{xcI-fy+N>$fl1#;2)aE2xpee^HVs~)?JA3uUEdCtA z4o6{X+rFl(g(+5H6Uqqx>DSJe{+A;E%Y01I@d_U0xgdL6(xy>Cj-lA!(l$Tw`9HIy zO<2O_&n{JSBhRh8rE0jQj^%lZ5-5qIP#zT#k7}rnny7=krD}M*msM)c4?FJsZ5~7!7gQ@9e<=0{u4`=E#bi@DJ5+!Of$ZLiE=e0r~%&N%$3rmq4Y72BX8akp^Ee@*{ zhb2e$wVr~ewx2qKc5s}JFwOn;Y@siEvJ$4S}+sotv=)a61;TVBO@i?BuXgrNENX4`E94Qkp5tHqCQeMDx zaL|g(!fcyM&cgy*M#>6%os_q16)Er7YEmeiW}}!Hk&o;XQa-m#QogV+N!eiEkn)}V zK*~?HnUt;e3%MOTZ8s^uS%lY|#_DQJaBDQd+?DQ+c6(c&X=v>i*z@pd99C)=r{ z#Mx=2l(Dj;l(&kcoM~r~5^vQ=sf&7OfQCr4CS)_TuyaW{&)Sfp847ZvX{Lf`Ctum$ z427Y5emKTr9HwHGy-U7_5A9=8KDEzD$+Ry>`O-F!@{N5*$`AGvDO*kZS;`LV#2!>R zjMuVVLCTfZgOsc68d9#a8%RmE8%gP7w~%t1-9buUyPK30)8gdvpgl~=FnffQNB=+e z?gKumYVG^}p7dnWKn27?P^1eH=`D%U1&JO-KqL{dD`4*=Vn->KV^^X_5l|t3Vnc{1 z#Y$|TScoVbI}w#G^Zx#Ot~E}EBAn-(bKlSVzI;Akt~Gn_+0(Miy7pRonR|(Hzj=@- z51U7cQf3|}$`fWPQKp$0M0v){BucrNLzL&tJfgg4UM9+Xvw$cScnzkzZk)OaNSsL^N|H$-N}5S0N~XysN^P@0QRojJcau+)V@waC^fG;j($DlK z%JHU)66I!dD^bRqJBTvTOeV@*<{qLvYRZW6xOsvoQ_VD@%rMUoWu_@7${h0? zQRbN!iSn|UPm~3wf+&m38$?-RmJ#JG^A1toGnGX7zH)9*(8ipkkC5Q}Uqc#pO2NDlKBh#2DO-*y+k;ui- z=#D(}G&c~%-TXw|mShA*;%sv+QO-9P635_Ta~V<8)2|fc%#B33+1yH$@#YSqOf-{; za+kS>DEFHCiSnR%m?)2$GNL?go*>FpGmR)S%riupY08N*$2>=rdFDl;ylmzZWr3+6 z$|CayQI?oxM0v}+LzMSSB~d;w9}#7R`GhE|%;!Y;(o_*;jroBnKbZ|gQ4dQw#`GXc zFVlx8{Y-zN9B&GVa-unjD1*#kq6{^|h%($16J>-MNtCn9IYc?nTtJjkGma=XnwyDo zs~Jy}JIq9)Og48B*V%l%}RRQCgZ-L}_E%5~aQANR-Z|D^a?e ze4-pFpGmR)SFcal? z4)e^5M0wfFC&~h|h$wGhDc&@{6UBAcRC1~b+|6WM&tdf#UI_IVE`qv;9f-CVfOBv? zG^X0#j;r=O%U0q$B#>y>(|BqfnZGyVsa?QwH=ztK;UoNnlobK5A-dvZjKOViO$lolMf-(gyg zD(q<7Ky~9b+{x+st5|4WBQC-lSd676JBib09ET!|F)N6lV>Q0PKk+TT$4{u09F|M$ zhp8yX5BL>-m^w5JI}iuqa2$aqXoe#(1gGLde1)$OPeY&1=!)(b2;B+z6pX+bxE?oP zzF9zg152?CZ{uC8G;4@oV}}Wlsf|Zh)17z>dZQ1H!vLIM#t<*UW#)R~4VZ5h5Eo-9 z-o)E@7i;h}wjzW84RYeq)pRHJKyUQHaTtJ;aSBG@42&}ih>NfU%kUQ7#Y*F)Q^i7e z^gu84K|c(@$rywYI0M(?2Fy1Lh;LvCmf`XY|JLm~EaT&c`ymi+YUPbRgQ94n*l> zx)bwo5pKlIxCIk%A0EJbEHN#z`D_@3AsCKgjKD~ojSF!RF2y)Zz$Eh^@e#No?rYQ7 zL_^ZIfrg|%5gL--4MG1LWeq{EI|Yjya{eY7quh+?Cbr*t-TG`}I2o}+#+NY7-9g)9 zETaUpMGr&|4L^>@kKtLYgNBN4L^WPR#Yf+H`&%CWWPT&cCTu|k4L04-@FB{TIaD#Q zz9p$wXsB|jf`%H`9k?~bxVr=Q=&5`ca6^4RN_h&Zp&`HHriCRDC1?&OMi2F^A-=E2 zb65-w@%;-zrtx(4Kj;k&@m-1=Fc%eAYnsjA^aRJ6{zMJ&eGRTdxtT+J4lm$EEWkp% zW_}=Q$nW2=5nn&ez7%fg?nAecwt%;TDiw0j8nJgEznq2$8e%$-w(}jUvzQh;^zvG! zX^7=UT#Ro5H#BmuEG|Ss*M8#A5gPhfLmrPqIW+XK?hFuzCeV<_J<$sq=2$eu@i@#y z1)_&KUe4o|wHa3gx{Rr(tyBdPn4Lv-9`DY+@=;3zz^M0Tqhou~^ zW7YuyFM5dK&v~pNhI8w1dV#0$0^AV7EjjJb(80L}a={)Q&=DFExI6OAF+>d!{65@} zz*Uqr9IynqK9+`~(Ft7;Jw)&cJU$iUp`n6XA56n^d1xFL4$qU`Qp?uOR=mxsVz#p|F8F2H5x zMxs1~DR>OCpzAtGNI^XugoZdAjnEj)p&?+~luRSIaVj1J{F+SIFO= z#-~wPRTF&-14 zW5eh8%B&@>!w*=G*fdXC!*Hj*1Bg-&hrp$Gno@3tmQY%!HIBm3=!mZ9i{s2>;!~K8 znJC9>%)<+qkI(Rh`G&X_zaexO-@)M=e~^QQxYj&Gd>${DN}_y@H7GlR<1A+41jZ71wG(#J-MF(^;U5Ijw=}nZr<~X7Zz(AaU6LFF`g(ySJsYE%= z6cOcgjKD~9Ht{@MfQxY{uE15e7Gq5*@iyF!hwvEwfhRE?PvaF-;};Z^uSg5N5S+y? z7@r!}g(#|)<)bh9<9Mi=HV&$msXA7H=<3)zJa*MFRlP*ju6(E}C8|bMKvgJLje3W& z?w+M;ld4OSZ=$PB{h6jJlc<`s5U(M&y7UgyTy-gs&U#S*RhPy=)ge`bqynlAErqKN zy-nFwhcv#5szIv$(~&4$&=snV zoPyYD$PG-p5x3wDL{~!|=JC9`VGD?hu@uX2IBlC6qZwKt7f0b}bi{#FA?jQ8LRE}Y z%;`iq10!)EE{3WY(#~`tN;eeXSg87;Du=6fsOm8lPhp1nCsDq~kNDYaAiC;F3#uJ$ z(GFi3RY#;%Zn%1(>Omu@iXhR|gV%X{;`DGeKve*F4$tFdyn+Q#wV?G3z8f5kwop~T zRR>&^K-B`B?#s_`r~Nwh*J=MZSciY&JGg3qssgSlmQKkdB7@H`Y?Z%)T``rQHfC_qo6)9^WX z$-F{bfY*#p&u8OByn+Qrr{`_Z1zpkIJVTV3n1y*Jr!Ko`G&VYoZ-tH~_H@1*r|1%W zI29VIWwv>aDDJfUZcf+k!M)~pJ1uvo-|lq# z%=f9{;6hvs{Y%8HmeyOqwk2QWa7v3c_y%L9hO5nbhO(y*qM-V#wBXV4Oi>R3RXWw; z|0h&qi~id9r;}MXNZV2xPpv>f`I@v~6FswxEaMB9kLCCPA?S5ViBnKe#nQj-uf<(c zSk)|CtwN*k>0fUJ7IIn2TmCQ4QpTl*vy?7VscdBd`e1)EGnnYIm&KGvm@|nN z;1XO5Wi(w@^Hs_Vq45Eg-HeB_o6;Vg(bXJ7l<2JI^*nwYPhuLT<7v1os4}77;ye6g z))Rk0OHMJ4Mtj6&N&l7c33pW^{;TY1^!SC!p31&vPmkafs4-faH;8|gH9cW^IBPnN zsH~~X!%LWtR}q~>Z8d{aO0+>c#Aa2MS-sZmZC3S1mj4MlxXIe5!@ebo4tDZCm0b;R zswUCd)$4gY7xVBEVzaC*Y6ZL_p=@h(mi2lb&%*+^EUPlC(wbAaqtMp0C&p%7m3jRd zF8dnb6whT}^C?SgcC{m?Yk4>ZJ)lf$bhdRak6*;gW+AZxi=Zs*98T+$g`JOAu@Dt- z+1R5wjq8kVCXeW{v&zsuYs!hwLm69_wQayD-(ffcP0#|ZIqmC!PEa;i+1svA23M51 zm5<=Ex1Ui~23Ml9w;egv+g0{<5YvaiWpVGNd_NvQE~k7ho7;`DGP==O-5ESC#~jSX z^O%Rd&GNeJ?%z3$6lHi_miISKDR-CUoy0jpU%Kb*>rBkt!6xN0w&=ROu=;MpMNUMA$JPYJ9r0***%p&|87DqI$;jx z;w3YmxB$gTv?)V1wxEI!`6kXvWfzZiSdZVZ1!tu(9qX_jX9anTi*W_kVFS+MbZIoM z#8|AudJN_iXgHMUz7p%O9)(;~9fC@HiX2X1jz&J8tuH3y0i3%ZyKnqlhxd#sP8Gg` z8|Kvg4!t=1>&DuZScOs!+qYpd9zY?7)gdUyOUUQY+82cwf-yN^mlCf+DQ-hyLox}t z3AdrR5qCVo_Xy!~5}$YDkCtH?F?m;`Cf{`wcTYkN1JyP|9}L6^C_*W2!)z=>&QzAe zI;=-7ht77W#HaA4bJt6_L42zzZ$aSfk+NeLq|TY#CY6}ui^sUHso;e z?{E~Denfd6AES(RHPbOTB|O^lRm2iJg<05!5b98KI|!=Ty^0D%*YNVw0yKmOc-LVp z9>Emoy2g6A;fmdW#?ynWA6wH|KXSR)*a^j%JRgT-QA@`OI0=jKHcsRaI2zU1g7zHF z@=%FS@fChUHQUw}6mnP@f=YY}w=1Y%TYeL{90t0eirxPP6tY_%fXf>UuiN~uxbi>eQ}sD|PX`F-%-N))+d*k(BzxMy6!Fn+Gk>*%+1DM3+i|!Zz-4?r zd)fi~PjBFRvtggf2JJTB&bDEGZyV-N+aTQr_*Wa6+o1M!L*mcItBuM(*g<0lJJ}F+ zgxGMgBNRuBBgPZsi3!96Vj?k-m_$q>CKHp1DZ~_FDlwIqMoc3Hi9upIF`bw}%phhG zGl^NmEMhh>o5p*$*>?BUXuc)5j^G7V%vl=Hw(I(Q>#}z@xV?<}fDc4~MM^o^J`9z0 zlq`Y%Y2V;lR#v35H-y_eYrdcP!h9W2prE?$7c?!z!uy5Ek zGOW*zRZSy0WKxtZ&Dw>|j+rJU2heQip4N)ktR?5auSS4@v?QmN*Y zu}v!T*wMNsm1;s+7rSag*^=oWVKvlr@;g*R*Xxv+bl2*luhE^%^j$Tj)HS=|AovHJ#M8yVzu8f2RFalSy6Ub4kePYkX^%{x#H8ayyiObl3c1e|=r+Q{qwA`eKuh zyJ{jCea%maNL}+&5>nUvdcif3>`!@jO(bpEOJS4fCiKe21zdIUqnuvuog*9J;24u}utPuN^8;Cecj`n@x{a_ zsOyQ*P5pEo(IuC3Em7AGl~8g?B_)y67WqjVhnCWLHR?$;0JN+k-dQ&Hl?T*rvy-|W?fG>Gbd~$6>QNhy`&nOLCVG# zM{IyngiuY3zEGCtQAvglRpOeHxMm?b9Ec79veGPKH!W^gt>zlynrEn4hN$JaxMmCK zIb61aYew)W?{NzBCoAqxRDX){s?ndM=ub;@Syx6umvwXaOeN621iWBw;X4!6O)i4f zNeU)E8Vnw$1>HWgUc+$nw^l@Xh-}8gxtvq7;N!YsqQ?%x_cBp*S6~hGR)N=0g>T@_ za<1lOWnb^YJBC*;L1m-x-t^j*;k)ua%$`(t&mHqr*k+>cmTPyxEvTNtc~;8JytCnE zPt6WBo==^eT{ky8o#`WS9mZk;CZZCb<14e4xDG#HJ>q!R;(C#$QQi*+m;;H2U|*US z=COQF^u^!t03OB^Jch^d1fGPN9=hg-&r&YOY|O(8n2&c+iTClL`Iz__zA&y?qHB)$ z+~K=!eyFC0vCR+X9l`6M0{hzhaBrF&j%v)Yu?g$OI;_VH&FH0uPw*MG;}59Wp`2k{ z^TXKYhX0$J6IQIKd7p3f_KLpGw|afG$MGnHdVfXV=UctNqVMzl|2I$Exp`ti`Ltm0 z>_m@43tPZw=uB=oc6VfAQ9p;Tq4;_tHn$ghN4J31O|DIO(}J?;!Qh&J>eRfF*BYIX zk5i$YSFyQLvdLuUa3vkN=#B#X4JTtbCiBLM z`1l?h@nvja_aM}Q$F0~kBf!BS9x2E{uIWxTBo95=;Ck&~$jPUJ!4CRfQ^8Tt%P}_* zC6ftRXo_YCcB+EWui%CCoF0=F3ruk{AO~#xsWKM%|%4H z#OQYx?O5fX<~ySNV16QscD!;UA4G08w-RN%xq~PZ&19n7W$q!$y+%87`P68KF502X z;rtYGglR&QW+s)NLxLuQC|RZ!Q4TP5iE^Mhh$x4m0rWR5_4sL}z3E7l&Za9-x|@8W z9AkPArH>g(lwoE#QBwJHk#6QRq7<7mh$twX6AWHLQp4ZSwXq+_AA}rYIuj+HFGdng z8c{OLAw+3tv<>D{`@902&hc)-*L4~YrJ!_fF!*{pC&HfgLsBm%>>%R7Xka=KC5}}~ zf=MMxx;dCAImY9k20d>G{+zWN^7vEpnj6jtJz??4{<90^Jmh1Td5kDe8SNimz(O-N zo^1*4EO{uqha%i&Dv0vBSwfUw@f%XvJEb8V892xsN^F4ha3MZ2UNXyJ6Sg2Xg})bA zpC4~zDzzDmF@F%{a(-v2Hdmzc^WaAF8~aunm>D*dcq$Uuht$UY<|d+4;v;;DRp^(^ z^RUenQ&TtxquB4r5BLe~>hkxGkFWxtU=?(!JQ2xAgT^}Ui9_r2J)jIzF%8dR=t2BF zV>?37n96w=3niN?uoNGfIyr2k$Uzh6xYZF|&>aOh7QJx-bS#TLo^9ceWjl5tgfSc! zM1Md5Bq0SslS!dVnL~*U&>XFhi%#f@JQSE?i34$>amUMUxop?iW_CQm`$5K3 z_D{IPj3vqjY{I3sIlf0+j?LJL?WWaqwgVKI*NE@pORUDQ8O+0%SdD7@f*;s;C7bB})*5^?^9|87J@km56(o8y0GLeP)I0y}p19xJ6 zI%OG&GvNhD6k!S%2&B@CPUKQAPT{ml+%77Q-INsSva(%3&_#r5s0&@EAoKA69>&RB zY#4&xB&7!670ky1yoUT*Buj89F2iCh!@K4)qI`kX=twfE8`OM5j-wVo5JTavhw7T> z67w20`;{mlnRF~%Qw2L zzeEaOm@M{jvL+?$RlZAk*A!GP35IbnwqrKh=$ zC=-n8u##q)5#^jFVdoL$0yByzW6Z@wxzwocDXM$Qx8{4I{AhkAit46vlevW`x0&0C zGQmtD%AMwJqWs<5M-TBCdCbSq#rlU7#-hx%tVGo}X<@n&yJNU1Cd##DEKwc@ha8VXi(lV-hA1;J8_$^+iL%mcBFdsT zHV}M()mV!k@RM0jOW2id1cCbICQ`Hm=mU9+u-{e1b=_!_E38bH4QeF65V#&+3Nda~>sXToc0S2eHG#rMMQa zHV9itd=2knIljPZ{Dk%R13S4 zmSQccF|HZkC062dY{L#*(t`77{2li}IgPa~*@95WMtA~Bv8xTUx;5)T0voy1#(q%# zL)xPQx+4#kK=&pe#m*e}VhSqoHM}-_cW92@C^W^y5{ySVDiAuFIDm-BPf!PeDm8VG zgNC>bs^Wpkt&)LS`4YsrM{sSX+gpDMs&-S?{A;jlK zY~StfOp|;Q+jqN)>Fe+4yahC473lkqUhOeJwUuHgLcN-X32P4YM| zl8-r``2}6i=P{IylZQD^5wDVS8|WV4jnNDvaUL$f4Y(0^U^-^vTX-L^14d7y`-%_3 zYb0RhGqa5-2doThN0fnPG*NCd(~0uB@jhW^|0(BQoKJPeg}4-#;|AP>o1w-z5~3-f zJo95%IZ;~C)K6SrYc6qlEs%@5QHGhAjfHp(%ke&bN5(ItsGx&S+=hUcjV{PX9~9yQ z6yr>IzjDsHk>-o|5!KiZZxg)?P>N4bg&&~%q6d+U-YCQn6yp|5#T_( z#=H32R+h(w7=uf3C9Xy(ZpLIxLpkQ50*g?I74T>Rc^B@%ThKoaN9^Fj_Ybo=c|qyN zc8Jy0d0mZH<%{;W1!c^5J?Q|Rp}mkijwhkRmAFGy>>)^ppXfu-mLQ)J?hxa4`DHob zU2sQUQM74F?53zq>np5nw(p0@PBsT|sdqXQxt{n;~`3kymj=W~v&2V(18+Wst*b_~6^PAnBaE6+b zNaG9bf!^p3cj6U$q7{2$6?-DJhM!B^O>q9*CnD~|p0@8$*9B)1 zrQAf<)g~tHeceoTF^R5&Z4QR(VSB2J{kQ92e^vL=5jB8#?5>VfmwAWcaO`azsUOQq zf9$G`^mnE|fIT$?d6xOJ@GdIxK0Y)b6Mu!rpS`PVHK2SLT%GG0%GcpRr~$}lP-BnX z)y35C<3&_p5jMeN(@}$sF>rOYg-w{=luZ)a*R)1Y^uhrAH|uEssk&Ko9jpU~4%Ne= z>td>B$v14yqPmg%g#T0>>2ppDzrugBuC%Xp8&{`sb(#N09cC*>KaJn?|Ax9uLFLcE z;4N_t*s{*Wd1%e2lfImQ$vNf`qRcVB#X~N*u6w~!b~H|k%xx8O_Ymr z!uqg#=?k^qlfyouUkC=_6pY91Sb&AtfM3!0W7-2_C{D#hOu{0(j*Zxa<}0Y)VmOL$ z7w!fh)yvHaU(PA0styK6@BzI_&bGgW>l3J@3OV!D#S+a|OYenn7alcV=X<(+0bc@p z$?%2SETV2sJpcnyoWi%9LQ|Drtg`5lwM$1P_OHtsE;HKjwR*)&xB#Ot2JZH}TDjgq zA*sC!F$R~a58Vbj<0Ud9hYFFqgN3_OMRfO8U0c;PRsHin3Kf<`_zYa@D=7Wdx~!De zp=&)Vpni=7Wy}dTlNlG}A_Z>3cud4(+=aj60X&F@&7;IA_y?ZAG|a$Eyo3c_v*2w{gS&rRZ#I;FnGAW_^Q!VX%RgHW@tQ*CvaCw6jZb1h;)5; z{!2$DvQZmN(Hx!74LuOuIV1Z1)q|Ng6va?a#IvAo&AQG`Zn&W8cUo;Fox=+?G%blj zjnmhe*adkewsnE4X1mq|YBeCStp=j2-)a1jrJK#fJ+&HeSN&76NM;}dy87>`<)_C~ z$9H#CUsv=cj_SFt>ZklgHT^U;99K<`zKY*9XV2AiceT7fU!WWhT{YL$a#i1Bua2ww zzNc#YQchE&tL?hdy{oI;u~)HO^*#FPw5sv-;jT_cSLa7EU1G0B$6keY)qY)d{vDlz zWGLY-K}Dwnbk*5iZQh%7Kx`Ud!2W+;T~<0^G5*zbz+<*!R9fIz=n8W5RpdQgJ??b= zpJ@VJJ&sNj=&JE}Xy;nW-|}o|j}^$|>HzXVtCfPv?X+xS9!VQ&P3VgYpngZuw^Y}q z6?aJ`x;cxUs(o(mk(_p7G}PRq#Av?1tK>^tib|;GcR}SJZeK|QgGa2ffqv$KYUWIB z!Rv9MheO2x;_)Qqrm(-+%KJnuvmbGPG%yW`ayS~H37SD~;ftxfji=(gwlBna`8b63 z^f`F!y*RHNRl0D-N9nhpJ`Vd^9$rcDDwN^|+-@ci<#ChC!9z~LVBC&7Fxf04F2@h} z8NY+hsoo*%ktCB}K#oIy%)vrz!*;ad(AOGyW*G4_6q)mhQ}Dc5M*ILbQty)qn20-Z z7p9xpM45}{@iJb)Vl2U%cniz10-xYBd}+QRt_2-wxw_5a+XRW3sD;{SW{x6CThoCk zozVr|%(28?=!LJPM55efrW0khd5$PA;}tA1ZxQ7^EXVs; zjc>3P8?YH3$5BZz8N^J~LTxlNM-ip1=}hc`p6G?X=!fHR5(eW`3^yZ*XW~j+j~mVH z#0j|5+)KP451B`ZQijLzB%Z?4cor|?RlJVHc+#kUIxc!sb!iG zr8Bysr|C*^G?0DipoMMI$WjKm(o0&+QgxO{u@dYe2uMuSlmSUx;#aWcp zL0z1RVYm(@co0*t5u30BAw0r0{VCXj5HdK!k^|5H9gv5UP=pK3MMSw2CHNAn@jcdK zD?-TPEKTa80j@#`p2jR}LY?`JZ}~g|)|2m}DLy zPC*5h;}?W*2i1p3Xwr!99mhd^EiP@rcaD2a>z4dJC^EkhH>2^9VNHoG(F(0`4o2Z3 zjKzJJf~U+ZqP$=h5@o4bPL!2qHBtW7ith&xn%{^atZ2>OAGRZe{M@kni1)*zjY9%* z%_O3HgY{_8ChU(XJRcLDU_O>&Ia+eIpNGu|q2ek2hVV9i!;#bY+~|xvT!|7a!Mj+6 z)i`N7zca2w3EnfSh+iONI?P}_I35Er6sO{KtimREPm>8i3bK%mx@dqVrZrJ6z-au8 z_1KCKo>#zOgEzBnPZ63(<~x>fc!uB9GHwd zu?+s*N{AuU-@*IF-^|%Wxd5YanfZgb170X>A@MaV!<(qY`}hQ(;tQ74&d6Vrt#-OcgDff$YwY(og~0miaGTeQa{^9XSY9>a3%KuH{@@0f!3u^QVELL*M+ zTjDqj#5E|vqvj3bQmjBo)3|^+1v4-UA7Lf7BZQ{3KW>eY7=XY(fafQ=>isV=xwr@DAR?a(svN z*oqL^anV}(U?8qQ398KR#1Lw80bcS@f?LdOM44zFCCUuU!Vg%Ftq37uzpxBqCTgKJ znwg`B($;h)N>B7cU-ZNA7>E-v2!k;UBXK4!#AsZG5Qb6Fl@TbxGAzd`Jtk`~4=>LF`MiG&H6w^} zC9cI}cMnXrgp9or%&F1vnPH z(8u&6N`F&Gl)ssiiGwiM3?<4iGn^>J<_w~oiL-FNxr8WJn(K&CV#X8YVU*zsGlMAe zu^t-`TF-v3n(rO=Us&N%wO1M5WgYdWuYtb&=&)7B8qSpLil7Of7kd4 z>+uIdxO5Zm8J}V`enbfAn^`aVU?7H~2)AMqW?~lRAcU*7guO$QleV%vMqxBA!xgv& zCAbBXFdeh-0v6(REXPWOa5rr%P%!k^2m7 zV)|Ah9R`l`bD)`IO?Po87w&$?U#H&+v&B@dY)wxOk5l0WyYx7L)gXwk4L<)#w~Fcd}RbmG-eMM2bqRbDVJ z6Qu$x@Ci18lYjpPDoa@R`>29$r1GQrnJCI>Uy93d1+Kw$C^0t^$Kwt&k@y(?f#0zS z*C&w4fyT-hkJe;-kHR1fF~!7Nv9}}sRRRgNr%*$KU4-?@C_jgJSc>QofX_(fiXKMe zBHVzRa0ez~GVaDS%s@Hjn0dsPFduIqdI+lbc`k_UMRC=xVwXV{exiJ;Lx1<`2Vga~AP3Tn`P6brU9F67Iy^ zn1&fB#~jSX^LPpKu^6!<5?3-!s-WBLt%GhDy#*lzg8b3AHrf7~_w87D6 zhfercZqhiK=UrsR5&x&IYOm+D|5I0_OVjyWxCwV)A|~T5Ov4P!#q)Rx8tdc@MBirc zT^_r8SA9uYs_-?|K{xRJ1sk9SxPLXWT zy^()8S@PfEk>x%VIdDVRX{;IDa6YQ3&Temq?bWCK0RE~4&r>WT8c{oT?3v>Z;&+5@ zU>`lkjE1W7$bxH(n0)Al_5*MoN^vVD<7K>xg@_(;dn=EN7-CK(%4w#EcpXad9Ohv@7MMlEH?Rcnpb{Tq1wKO+e#8d+hK<;cyc|9oPBIq} zrNm4oK8#9yj<3vGVm0C#h9wgv4g28$Q;&EE8kxpKX=<7iJE1G`&=Y-eyeTH$3N-?1 zgu6RqiEWKh(t`Xo}`&kB;by?k1mDfMd}Ey)YXe;z7=$8{0YQ1PvnS*@(tyiq7bYZpgy`6yh|LVk`0k)T;4^DUBlwfHG8~%5X`-YXIHq zTmxnlLboYGWatKTm!lLK_@N3L@Ed-IZuE2ja?lB-&`^yFun=Av*$N~g z3F+7m2cRwvL_2guXXF{(!u?v5;$c)^Dc;07ctM_re4LD8T#QoamJMDySq#M9dfv<6 zdx9Gnq%@Q76HntAlw&r$EHcy3E#*bcg9}lPH&BI*(CvzQ;VftXkrHSut=PuHUajz0 zT5e#G9z5<1jSjEzwJta63ik%w*jn#VUWLz%SDUOq_CxgTj7xcZGxjtv&@|?kLt}5b zflS=(j}!Ofw?P)Nu^*bEIdahkN247&L1T99YG~F%ri;5L?P-+Hz*)EeV{j=n%11vG zLIbG`$LT1=VyKB-bThl?Zh#dBklBK|1A2A%8-T`RiXM}xl*iExm%X}VK%v_%Ym6=p z(9#JWsTz&ZrPR%LQ0gY>Kr+uJowy$kKpoUWJ9I!t=r+w7%gYV$va4ZGzGD8@@P|XG zPc{_2jT)3|%&td_yOE)HFxx27;KuUGr>p^FhTvjMLhS9EJ+2TWAqA-jqCGmBuEcK0 zgKpvM2BImZd?wDuIXDj!;l}#X(6RT!4Ommf6^M-}=cj)l8f<{6Z)z;&2}{84Ok*xi_~ zY6q@SExyJ#aJQX~ZX5pb9Xx*m-x<7eu8hv+^>89a;%tn;wmHn7&v%0{xE7_j6_fD* z+?Zy%&+@r&L+JkH*k&L7?;V}~KYBaaRs7EAf(vk&xsfP4_3f?V?;9zohl9`%hocc1 zqdE38WQm3?aYk8H(-+YGsiC^q5&G>Ff=kvh|&yg&=wug$#fyg zF{U?B`kLd2G5`Z{0#3w9<`kj~F{cvcG*d*B(=h@g&Dq5BZ~-pHrMLoD;aZF}rNrBC zJ08Mg_y?ZEbUck$@aI5Kd)WecGcA+J!be&nM9kEH@D zu&;UVG32fPD(|h__pR8Q{P$nwy<_v)IZ5PHpgi_yTm+ZTR!(~@*5PNY$5zDVwUyhh zjn+_p`$;IrEpOp_{D$a!x0ga)74=OcqBJ%6#K9;Aosf3QeP_NR+`i9m<23 z;wJ1%9{g377v;VsI`91zkE;=#_fAav*Ye!4`Rj{W&!xBt`;xbQmE|QmPyH2-m7kV< z%}aL+@|_}jkf76f?DEdaIsZHJ&aT%~Vmhb7$i(h?IH{LYbWf(!d8~Y~>}|gIRhE_L zyzo~%cKP6h4BiJak&W8ujBZA`V3!XbL|OUZ)8X>Kdz=4NJ~tO_Og^y}_9dTN&hm4N za=W|A@5bhH^U2{x=V@={@g4B8sY@fzC@*_5hT=4wZq6j0g;5xT%Wyp=nlj@5<~;7d zGjCg~uIJ}%k0R#d1Qa8>D`Y8;=OQ{^tDJ3gUUnM!SPil&vH97Uu9G|EW0i-k1La{) zg3Gri9z@OpJ)u174JgA*%)-l93*}i4hw`ffF%)~svwp|?AMrDO#qZb%9fb>Shb z_t5{HdDn|_*q5QiOeQ{zxQ74p`P83Vl4rxdqw}nfkVh@Ue9WjVCwS z0XJY4T%I((7Ik+hFY0omE| zOmTTnPWA$N1CSu{&b=`sQc4N->3d@^k zPr5{%wf%B7%}SuMQXjO{4o|N|8U8XfDO2ZZm6d)_2Wo$LqB>9e%g}60&Bgp>i0Vx3 zFGEy^YJVBh1`VKc4l&QlN<9==S?PxoD=YO7va$xTQAcS#S1AT{miE_4bFYC=S*Zqf zidMOlxZ289#E_MhZqT4NT1F`cb$(V^&AZeAT4j&4f;vC@>me?*as@GDWu+aIZt#~O zsx!38YSyLZTq;)()hSwKHSbc#XqDBps{|^S5|wW7mnVj-tn@<&{_+hd!!PIXHwKl* z5T{tVjJVv&mBf&hy@tF`X!%0oBr8uQhOF!zMi~K?@eZd9zubu52rB0j)e&0dVq(b3 z-VuBjXnHAeij~WVAuH3q!wbP*XA?dzRIVVdw{kU6_v`eRX~sI?uag+Eve%q4{AF5D zhF@;UdxOeq-c@4dQew!;-jVDRpk>swOU=1dR{B95sa38bs%e(WUMrS?zYI~Gs{QG$ zSsp6urt|7t?N86;yMoI3L^ah?xs0f0TK+Oe@gAVEI$o>8waU8Dp>96!FHcnSEtPdM zdUeKD*)``<*=xf(;g^r548LqQzfsxUklvquJj+b6Wy*NnC&FbNLe!aC%cwb+?#Apd z|0JJfYPhWCU{kED)J4e3y2Y)UgK7C3V#vzgG(ICVJ(sA?-zqCzp$_0GmlDv~zqXW{9k#E_M}&nd6A=T=ePY~?MK zw_14{+a|RBLZUi;`>(ZwRxwaHo2ZW9D!Zm!Dr*3!fi_*Y%o=UwF~pFSb&ypDZ!KR< zR0nUB^}jlAt6a+e>cH(!4^Ul!%4%k%PTVT%rvK`^t+H19N9V&yX8YBxQBsw=dN(go_!t+JY6sZ+PgYKEmj zru^wN#VVocm0wQbvq0s1Vv&{AylR$})x;`fWi_vA04=X3RvMs6M*S7sv6I-vZ}!$Xu6u?s8g`Yx=EsLkf^ekL-}wkH{x?a z)74aG;1M=Gm*25%xSUJOv$C4+l+b*~U(Y#AKQCNXGoH~_Rux*EgZ*XB4>!+ISxt1N zz@I)kTuoM4Rb_Sh^{0=ae2bNDr99rsw^P2u$~4cJ1b_K*ro%7K<~>8@T%tM#tE?tF zp*gn9d|nrtUPhc{Wp*5XhhTp_?^A|f{($cUDpwKJDcGO>A>Th#E+&>(S=I5-N?Ya= z*1yWiRlGO&&;5#ZLS;2SQU5`I`nUWY!Y_Zv`k}Hq&@O~O{U@Fazx*@LgozPL*|IJ9X?-SvR*+=T4P% zgS+)~^7NOds@i}iCVttA=Y|IHRt^tq?@#A?u=;L>m&xK-lV#;>%Gum9^%1I$@$K~% zQ#hqS6{k+RM~%m!q6Ag!_Cs*@=qP1Zu6uI0du!yg8!kav8b24@Ju3>?ed?YS`5FAA znY1`U2xHg<>fRHDwV997{g{rb{dvqTsIm@^;qHY{$nIncirIZkL3w>%2i`#}hl+!V zC}&rodjoiE?z%TXA)B=N{O7X?tFM14o3Hx%k6{y4pMKXzzibrKQO2gY8k5Km@U;G_97u0RNd{28k+IKPYE z2bzI;_$m1O*0;CX`tashAKpTK)(~~aQtFK%RP%F&s52H+mt_Q>-x$#8!``4RLS(r_ zj+xQVNoMWQk5x|R*sGZ3JrbE$+iUL~;7#-&*Z1!98rU*gu94Rw(8_D-&pV2Ns@pOM zLPvDtUAuK3<2@WHyJ@|>l*oJO&yT0+Cwd(s%bo1q8!2nvVDIJ{kKKA=<1p`Jf4S4W z${Nd$+{I^&e(nX{9scqcc}={_;pScEz0Wfrh&-O)4e`r&dGAD~{oT9YFF(e9bta!; zt}Wx%@sd~Oy$U^E#``c* z)^h8;18Y3iw5?tW`U8-ou;)5T(HM=cMfFKc>kvbx<}S=W}vbE-17n-`0=K|joz(+yLP+234yn~#{-=L zGXgL9>zEt($d9iE?(p6Y#MO8mz2_eT5AJeZzXVqENuKlK88j*_ZokO;ai4Q{v3^|p zT`qe>+`3&(-_?3r$A!0FH?Kq7u$`WpA9s!azK@N&yTg6 ziaggX7aJGHy|vRa%i>0PU&dWmWBS+j_`A53k?B9i9lG21^Lt#6$h?I3YXVvEbp!R| zTlv!(#y=35=iX1#_{_+(7V&E$WjDWVe0U$?9!JMc@iq5l{o^}F-edG~ds`kDf3W}h zgX6=0|9ks9x7@J!U;O8fj1O<$=f+>{oge?7m z#}nc&sqy&U_)-4jhvNS{mbmx$c>I-t#qmpOe9z0{5A!~XPYP7Ux2`eWJtsP@i`Vg% zZ8`qWW74Mh1H2vaQ~c>E2@eJiO8BhCdU6x4_UCm-*!$zNUZZD1S>SI8A4Jx5X2M|a zf`p6xb!q-ZR=z6X*~l{Pz22Gd)K1gfygkL43F`yTCtMnNjh7Q@Zo7*T8u`D`TM4uM z^?#gj_)fpsHwn4^v_BGNMAnm*7>q1eFEMGS_jX8PyU6_L_t!G9)h?$;FViuxq5nF0 ziLXS~dtBlYe_CPUi;-#3&vE4;iD&O|zFY3P#N?fp8<+S|L;z^{?>E-b>}8c4)jgxR%0Ep&l!_+j(2I&`#Zgt*yZ;1@y$t-{B_=wbXMg3 zPEC3#Qhp}sJ8yPUeeZ>&+HuR0N_TqwkCVnkmi;WLc&GWhdOur|n$`HM$;k&t))BjW zdh#j$yxMzMM$f62yezVgLz5>2+9uD5JdRywr{sfnn%6x!!=Kh8`P`l6#Xi4Ja0VaJsy|**%500j({k>8xcGa@7kgZ0bIRHN{6A8{=fm!K(J?!7vACbB^ z&?&Vd@)_K6$EL=|4NKjBr|E8fY`iQrZ@0@{pW1JapY@j1zusnIU+=FTPfBg(zvkal zkFD|A52XIhfBZyhUS#@HsXhGiGpWz}pJ7qz!#jPJRjG|5)7GZ`xzE!3_$Bqz$h!XO zef`z^jj31dab4R|U;T4_>S+HxWv6BTIgR(@UgLnYn)R^yY2ODLr+pon@0N>=tFrKQ&kG)TY9Yn1NQ_?_CP z-x*nFLHh8((DZWu@rd*(k?-S*^!EZ2(kr;TQ~$^`z23v=Z39oG-x!&;Ed68uxhvAI zh)mOR|4a{WV?U+e>upQ_(VrKWF*fqLS|&N;5PI}kP+VIwM^HH7Xrs+ zEUoc8P2Zg%8Mp0n-mr{zJ54`3W5rI>qSre*V2HbjA;n zY0=MD`T2}m-plsd3o{O@vE0&(D%^`{k3Y@$JhHqVf0=P%#VOtNd(c$!_Oq{@l!#{`x=6yvJYelg!8b_(kSn zk=I?9d6M@-=4syg%$oyAS)C&5%g8z{QjUJz+F6%IzOTkv#k*XlMb>?h>A6||jFgYg z`ZCZh>#WH0``B_PWqlP{Mz1v_YQ3jt9qhl?%d@@>lw_S;V>vB*3-9@kte*n+W*z4} znf126?wMJC*5O~y3jZxE&Z--?I%}l&P1eW$GTXCm@shGvMBYpEXWU)+knGlx?`>Dh zw8?JjuJUUIBg^h-y*+DP zA9;SiTE|A7GpJTUWV(C)@LF&A^Utf56!|@_uQfLEobk1`M#}Cviucxf!=GMOtIJO7 zj9%`^TAls%E~ynhrmd`X)lTc%Q0q{C9h++X`CID_C2l=Qwco7qoZ7X+%WM9@wZosa zQSDd#WpZmDS7TYX4i`Js-Vs@EUhVMt!g003`|iTp&v`>@?_4j@bBk(+&l4`Hea|k} ze@*SC{||fb0w7cU|Noye_shRp&E5D)C{EFr6;qqxDt|VNlUIIR zIR1mmk5Tz-C-e>#GX#1j16@}t6XFO)y6yi~qj`1(@WE4_XNAGehEDEoQT zN7p%0{)R9w(k_=tW9Y^p{H6=wHG(m7^ci_@wBV@R*{@UrK97 zpH^E%mtMAZ(Qon8OM_DFcPYiMyQ2GteYn(4R`fC@5M3ec&yeUBmC@11OUOSS-BC-M z7Clm36J4lokA70S-XGmiqer9nm+Fsh?|5{5P3~0mG>z)%kyMGvQC%^q;ryyG&s`QX zQa3qflzKzV&sQuTse3uTMa;cw$C%f{J_*?#G2*KZtXX2}Xta0C#$x#*uYXLl5^1`f zp)r-i@z&D>9UoJ@gw8WDH*2zsW2zO?c_pT{x;iw^kTM>Dzr4*Twy@5G+pn{(0eOf7xwpo3a!)$6+Tv`R=7Tl zyR^ciVg6FwbrtRj>t31{dHqU-)ynP&*#i|emC!p<;bJ)LScNF%M1|0vG!o~B3jROz zMaY>d)(B%bDu&LyM0(YVA8YAJ6%!3j`EjCl6>kj7MdJS}zGKB7O6YZ~IJ{U|uZm{A zR^L}itC(5L*GDV5ie3LJTao$WD?U-ohRBf@3E96&H+*xY+x{3ki zm5R?OZ&WN(!oOn`Z!e*9qGGc8eZ>}rGO;bSyqMSr!ZMX&Plx$xvG<4h$g*6@C&!j- z3qqz*Y{@lc+t^x~kGIDLiecX!8(*w14T-&2qAZbiAB$aIOkdA?Job(f>62q)OQg+= z-JmRpy+gC{a_lpu+IllKt(e~7*r!UB({1bYG2{ExNa?%U_Nf z<7S2Rgx(mlu|MJZ^cI*YhLkoQN2#itDP$ZjCG1 z9wK!v$M22nTB=V%=bgCP#qvIjo1lIhS3|S;b6m;x_FG)HQhl#nspz~%;3igT7nZA2 zDRc&KLnTkKz9Hl~R+?DMeq=druQV%+A<}zE*_2A(D(RJy|4=Whl1qK4l1a;dq*9?W zu~JMi9Nos!O52KItg6(jR5@M#QhK=3dG$o4E@7RYDmB#b&R2RkoF;TCR(@TnS^4f_ zX(GKzDHwi?{cKm0!_xKB!!L?Qtpg*OgZ)rz^jwl~=8DSGe4|T-7R{DOXil zSt4D}zm&G9Qu2Oz>nh)t@V`TqvL#}8ZOSykH?voopcgWC11s^1jD6!zy;T~i`W_iJI*7qqNaIp)nlb%9Im>hSo)_`TNm?7$NIYJjisjR`IpjjRWnMJkBT2q%-*GX zrCrCz-%z4WmL^wPTC?~zCG6c4U$l-EI(No5`9u5x5&9$Je=C8d+k7m(gO>Mr{2$LH zLiV}%8pUj_kN-u}+Z4Z8c|Crs#_y78`{U1t?Y$Eps>>tsHH+!%_9N+c@#n&NXX96g z`AC^x;v?34@g?U9bG3U)t-nZ&e}|8&*3fWmwNN}8Rm&=2>+WjDOZa_XwfjoQmF7c1 zwM8Z5##A$xNGnbE&!jzB?Rm||Y1Ph@@b%B&Tq--K+N*yVZ(%iu);`u$8?WxFwt!zO zsI6Tet(IC0^W$o_DksUm)b^#<-&M1hXm97Mh1&Y1vih}}5Sr)p>xv13|D_!vo0w3w z)H-UEaBEn`%~ zo+~0_GBM$nE5?k}`>Xuqgicp%Z+gP!u!u1|$V?*L2n*Q5~yTUl1CcY5ne@`qv&PVG0 zE8d!P-G8i2RZhD6-l;TSl9DQyTINXEYm!ceWtt^LhxtgEE9F}z-F{j9_DRLhH?9;n zQtrN_n=Wf3QnoaHVA2AuZYL-G6t3gawmHPO1mU|`XL^yuC zl8T=V{TaXaCAAIX2)*}`epNn9QvT1x`SYam#mfI@V)sX~Undov75|zvwnQxL)i0E4 z)BOkOe`M#sonE2(Utjsn^LM@8 zRsFF)U8nC=KlP_|{;uW!$FIxZGy8AH=i}^2&eO%0K<( zPq%^f$xZ&W&OhVK|J`xspSu62?*C~6|FnU>a~s%{+~)s@JM@h|5vb~vJ{>kx^8iSZ0?ULcr}pMiickSC-_&(1?RFAz}h4QQXZRMG=E z*??zeqZSBKg27%mQIgaQuMdk9GY^w~jTI2&3jb4K5XsD@jDhUzfQUg(n%6JVvj=;D z$P*lK3BvXFdPQmdX}$nu%+2tp1_x)S1hRtYdp7%Xfj$%va&^NQZb#A<4esCp}tbQL%eyx{srDV zpF)M?DE+k(zzT$*mn*+0U}R+xpbVdgX)$|LMXHi3iWN-F^XH1Nd$TY`Ye7HDo3H)j z&rxV~{+#>_uV^i@USy?-OK(0^tL3B)&huwwY4Ju{D^P|vTNxq(lIit}R+vrW%5Y3jH?0|?HZHcBV-N?<$r|;3Hw1`Hu zvov40m^9ZsZ)!f(j3K>?rR3rAAirp1`Tm>&QFWrXdV{I-&|02*FFPz2qZLK$i3 z>47ZS8$!)oYXO>b{+zsmY(Qu>-Yh*7^5+j04Of)q()4igMWz<4Om7xr2t~{bWRd1g z%c6z|eXcK+D$&FuhZX99ktmppOE{hF%`IM-P-hX?zBFH7uRkr1<|1N95=|}`)WsRb zvIF^k3EkZG7}o`>CPG{p)%Q7Ubq;`DpCA-JQ0W(-=7br>1L7U-DS5usK)UF+ z+Sr^Hpmk$33ylB6_%v_IAoPKKsSQ8KYMATDCYPS?t%HTXc#o6htv(nNT&{aQ&1 zvgo&>XN0m*_T`8%DRS%;D}(eb z4J@4|C(MPB!~#Oe&B_yHN+sUjpb*VU!56K6GZy>ue4^4>-4M3HG)S!r%1M|E(cQ%K z%m^%d^;Ze|+rr?v3p5+xovxqK}04bu+%3iNkU8wVEZM10c z4fka&#szuV1({4(T7QtkC5wqXB}n&Gv}vb!6H8SXOPTEaIT={X%qU3n4kSWCK7+AD zVIaUCF>DoiD`$j3X+$tz$(EIs6-XD2J&>11j0UCpw3%5+FUaW!PH3qh#>fnU+1H;J z$RJAET21uvAhQAuO2p5fmKN$fseuA9qowBs(kQq#BPo$nP>vX_GW>Z=NKE5m9m*%5 z49aC%6+?y+Ud-ewxfubLfZ8Z6QWdQV^g042BA?EvtvUuU^oo@pgP1mz=~E8TrEO|M zX=q}`4xL>tCFOcS48|GWexeQQAdDV9B@h}6wc4axrE0?!_5U+&lcROTh~#1`>SCirzArU{*wT}5Hp7q8+9ay2BO?F^iJY+_ zT_7OBk0MPUvt59JLxA+lWEo5^N-J6qgj>5;>0cm+Fl`~JO%LgVXb!Yju_6d9p+i9t z9a8K>Si|@RdX+36%SSPQ{VOBdI#_lD(L0eRw*Fv#AehErtIxB+!Gvp&k|mm4c%dyF zQSyB0S`BH_r(6(g^{-DE#T%p6Opq1hrc$&n(AMjz8La%odM}Gfgnfpnr-7`va?(?2 z223OcA|9PQr^~T$%>p1>Yu~HBcT6>jS0KHDUB13Fd)A}kwF&pShGEs{; z=`0w6A~U>p6r+|T%~i0bpO7+bX-txto(0U_$o%P7eAh8lrb9JA`s zmK7OZv4myT3hy|z3Jy!l2(@z;7CAIr!|V{mJ3E`7OphG3>FwdGhK`k;m#0I@mMWV(+4xX5}8JW_@)oQ zp=5xHEwPvs)5Y*DhR(>AVioSLwM4lQHEa=6q(iIj{? z#tj0U9q7x>P|Ob)5Sy35d916HA}{3PpWIMnvqN(Z<0UEuqAiBT1$o*bs)SKr)Pax; z1X;=r5KTZ#NjQ{v5H`*Owb|^;E#xQTmlVn4w%hbJB)Y z(c`3CXv+|q4+LCjXP@DdtFOp&7CBp%T;sCU$`ZSOv82%^n3RHazam-@J59;vsRKoQ|LbO`n-aZVJ7mN~x$cWVW0WXb&ZQUh%M%T#Xp$iXW!61`(1<3srpiFJ z9||WX%pgUZKLQb2G|6)jR>eX>+Yz#fk34n=W@wu~EPFFqAm$c$Q!@&D8QT6-Q<4pY zxh9L=?H}N0J1EwZVq+_|3j$O`u-Fp0l%t>&Wk{})O()>2P(QZO_del@Wlg4!(fzyw z*yPY0mp(%!ie=W-vD}&JgK{EW%6D!mJ|y6v2@DA^e(znC_Y+P=}C<2 zm!9C#81?82$K(JISxik?Yv>F+p;-yPitPqDLrzg>3W`@AZd1Mb&Ry)tN{#}0BhlLr z%QSue$I+#a{T8klou9FXVLQdx78=}(hRV`*BHGR%BO3&t7}S{**q!RL>m@6L(2-ox z&$2)dr!^$W&q~WPG8ah#4`TeGL^P7DfX&Y7$$P(3qm_Oe1F%O@cj*R_4$- zy(~W4*g^T?jD<6Vl4lkAshNII;~l{9hqlwbB(9OINA5ntgL*K~H$N@FVWOBNLMyoN z8kH5WH>01H9_j|+EiV%{`>TQsR&exCty>huK6GeMkdv7c7$`;`@IrSq!n<7BJgu7= zV1X}s=^u*_vZA(Cw11(U$+IE7p-?lCy9j!OJeXlEOW)3CGpzOQ@Z>A3GQ6_F8eC){ zG}DA8Q*neSrX_I_loCo}98tpOV`9#~WFZuch;+oZEo3-!$e!1a_9r$9;yi&;1P5{h zL@Wk4!p@}<7yv{A(ryBz2GV@F9DC-o?qYXNYZXnZ*by1cITtTWId2xLX6^2YxMLJ7 zNRby*DY4MHD|*@?hiH~sQN;Afiab}5_dE0k5m749LWEw?DzxYXP_GI)m6r_^8&@Q~ zzI5)<6-|^yyyt2+It(CC;6qspJwBe#LEwYb=x?a9NpA~D-$}6G@ z!dY^135V#?5lIO$TPylb`=NGr~xHVJaFe_Yp#3aj??oAymI(&h){1CMh*)YSsMMU

@HaF7Wcj&!5T2e&hA34L-Xb2E6*ERIw-PY$0p z6b*7BvKjq2L=WA*3GGm{J`p)N)7c41c*NicyKiVR(F+w>Jw<~-Q4x r{7R^F>VM~m0DWZvlW?*DEuJy5R58s~TtWsM-gB47GojtRZoW{5mBFRE6i z{Gt+xe(hBl5ON}GkQG7+5K-$9M|R=GV19a*ScQi+i}~IGqJxX>_y|&VpTHWL4NrB zX^(TXX;RGp_J4|!#E&nIQ_Cyw8=D!UO;#n_Y*Xf{>HMO58KsHoK|>SeCFK@%py4OW zc2hZHx+O}n@aycl-~X<@j`M$)Dy_H7@;G;x?21`2@Pp;66jd3j%(52!=aN^QH5wnz z>nS-aRH43RS+7?z3>VC!m0!#$hSTQWhL)B#hVRWL*BM?g|DrB2Kc+rw{#e~;TxYIinQnf@{FeHODPWE>XPc{;cAF}gW|{-W zV+OlniRo8$qOpTkZ9}b<`WoU#l_ZF6tDsNu6MRKuI<2Q+kR=QlhV5(`fDetLEjjtPiHtbbzGXJRjV9HRBn&zna=A%kk(|+Yk z)9vazrdi4!)9dOM)2)iZl&)Mb-lUv1UayojZdcsKeC2n;eah#??#eOaI^|TJ`y#;eUws%FC|^$p`1<4x*9<2uu9<7Cqc(|FS! z<4cBTO|KdTsS}lZ)&9yD(`4l#(;{WCX|CaUe%3zEG)9@B&a%!h@J%f9ENi;?P9??M zTDjj`OS#M3SozT~%lf`ynbOT{S2~(`O|khM^|Z1;X<$~Arsi}|gpy`ldo#_F^u5?p!%v}|m(n(1-Ta-1XQHB>y_ZXg5+A3-0o0UF< zR8gGD17@Rg%uqqCs4P*Z8d|9%4AII^LlRB2sxsABSs7s94YW zI>+2zoov3rFxvdEy3+iHTGiOo*uuQS*hcwMc}Cr*OfsKP#+zSNo;3|sUHr!G3eyY9 z0p&VFKbm7Dv#L%romQgEzo}D9C)GoyR}5ZbH{+M;V#8U(0`(!oFq2RmtXA$Y-DYZMYHGU1Xg4-CH89mMC7CLjVvJt(f-%|fozZOg(AY)2Xjr72 zF^p5bFr+DajCUz-8?IB{GImmS7+Wf{)Zxl2#{SA#(~as2#`=`7hWf4P4Z~7ndG(ZP zRS&7-)tk-F@eAEEj9ry@n!-7y^}Gch=X;~nW=)&i(D?dBWg0a1G>>bp{TV|f^zU`` zudP?N&Na2eX)$3=GKNbNid|n7U8`mdw>df58kbZxp-l5?&6^w4=5e0p?&i&_G#9$g zV)B=}h;3d$7q>Q7nl~@gTowN`$MxpTEkcvTKlx`dy0t$wM8v;J5ql-vm57_%ZnN9X zzyJQ9LxZrpBOKN|w*58eCjaiAVsykcX%eqAX`)1fE7i9--` z6NUfGLgxQ3fB%n{Ur`N4li6am*&WU(m)ldOY`OB$F%>Gt##O3ZrD}Y&gv6xk$u(-$ zy6WoM*VL(7@7ns;HE7uA`o=djY1*uLiyK?s)XJNZ%2p~p!_P@&Hs5OOpBKz87%*_q z;34<+zVH4A`uuVJ&bje8uxCUs$#J#WibRTDN|~%Nt+WwE5N7w!FS|+x8thckSNu z#@>Bz?tkm;0|(!E_t4?@j=cZD(GQP(^zrdePJDXuv(LZy@~cx{fAj5k-=9A7!`UBy zI`{K0=P&&F+r{4tLx19VB=Ps}Q-?`ahPc!)-mldZCEuz1>n92?r88bR46!4fis%)S4b~F?{@S?FIJSz=#G~7qe*{Iq?2|V zcrW7f2b3!vy+!E#TAp{YQl1yF(*Zj#Qm(PcyojAm`28Yw&SU3AzD7TXxP6U&C-gU9=ML;_z|JIOHehEu<=KGTK;$+c zXGiWLe%%D#2JD;#a|3qjVP^w&Vo6^FPGfKufl~m^B5)St&mwTX$KOTZd`J1dg?0gN z5jbCfvk07D%usMnfVW7L1%DTS*ATn~;N^k00K75ywE(=&z*_*$*Wi7{^%(qI0NzP- z7l8KzcniS$5WEGXtpINxcy+;>2VNF<^S~Pc-aPaVfHx1k&%jGhRFnna%>(ZvbmxKh zIe7EHdmFrYA`QHi;I#p7C3qvjTM6D8%DYmQcO`fi!25#hYuPBQ1n&uv4_+B?R)Tjy zQ1IRWZv}Wafwuy@;oz+RZvy_UKwp%11$aM$_W;)o@NWfp!@yeso&%f};Qc5lc-z67 z4_0^rv-MFVP`0I4$&+p(*Kr8JIk>1BX%}mXEt`0VP_0}FT;)r z{AJkrPEhQ;ik%JENyLtW)uIzW9ISfH$Q!^;q5Uobr!P1!bNxNn2JCmC{TZ=u*?*nb&+h7h-R(7TcJkMT2Bv?K8P2t53`4nJPTpUU991I{|i_YQh- zly?DmpP}~-dSk&q2AvOm54laqy@y;iA{usYkf;Swz*~IM#F`A8^9}t(>__-Z_XOlJ+oR#1i ziQ7QZ?Dsb9?vkIKi$UMfX{8P#`AH0vj zTLsQV%2i1E2c)l}T)PFOTov$p75*y%hjP7*e30u~NneJYJnWpuPDAo9qW>;>OR(1z zdrPo42z$%0^D}x&D6i<(OR#qadp}{vhQCXor@&rP01-a&MygSQ{N>ELYuZ#rp@g7-51BvUT|^g9yA z0Q$Z0dm47ifHw_0_hDxmb|#2)EkUuf8#~jm^CEVpk@hfl z77>s7wEtA}+7X}r<(Ndih}R_W-voaic>J`4 zG70>h;7_6)>nO)0{G5lMlSs>@9KJ+FnFFqY{$B{5f&PCUdtTBflU^4)AAz%q_>U(3 zb+K~}`*pGNGI*Xsh3UQp9f!GH*Eqx8T>=Cem8>g19tTMWu&*n z&yCpWft`)mnSzX-zY#l~@na))qOfE56^h-B*g1!tjg+Gi<=BXwc~z7-I_ykD<{|X5(O-w1X5g+v-h!Q~e2C)s;sBpb|JSAnO*p`khtwa&cisnmbByG@4~NC z{Mv;b1J`TuuM;?H(Hn=19*4E)HNd~M;2ZI8HgPM9{k7)NT zWhOYO;M|LT9pX3>x<;gf^C5no2PYq#ncy4(XC^rB(ynKM^D1~VNqd~~y-NF8iQO~E zCn5hX_(SpYUGPPnen@&x(qEv|Hx=A<*r|-2?X-_)X&>9cZA|@a z2e-1&2d)>m+bP$+i19||5=fGZF%F%#wyqe5BMZIsuULWk~a%<6> zgx*%{UBup2?D6x2%2w=k$KF=#6=H8K{>9+mar7smf1Eh%!^Uy^-7Cfc@ZSahIQs3- zpNd><{P+m zRm5u@cD6>?se+vX`coCkvk1K^*f~Ues$l06>{r1~8g|BDr!rW&e}=DAWiD~kujhax z)@yUX@ndTjc7DRn9B{;ZIR~5*5pkJ=zemBFgTKd#%N+cD1Apg`HWPmz2QLx(kArsy zc#q@P4(j7^S^metdjq`f)bkeVB!R zfnOQ?ao~3Xe;oNa#CII|^zK}7_dfQXT6}<8H1e>*vZAt z2+~?%=Qi**(=K$J+wi+0e%}UOb?nb1E)Mi=!+tgF-v-_wbhlyKh5iWal;ipa#=)M{ zua2_~|K=jIJ(+zBINQK$kAEGpw-I~W!0QQKN9;vouOsVf+S{?tS7H2L+=J5N07QSOh z6fz^gsY2Xq689?1KM9mC3Y`1Ei2}!o3?X2=f`YRLoG5S_fl~*$iOAJK?kN7&LGD}R z>L7O(xjM*AMa~9BK6dI5&rX1CC5|G^!?~Z zqdyV-X!Q4>|3D6FX~wN+^lyvs!vanYI8CwN8~bCha|}BcaC(4a0p~n8R1Nn&RKR3$AM-KN|U($nQqJCL$-1pM$@#;u`sfk-wgDbfp|Msh>8~Pt~tfcTqlU{tn(*`rYH;wFmDi^2cKDD)RS>Yx2Lq-c{7+7wBDuy+w4(5Mz0=vO^{2* zx83OJ`NQzz0sKtHzmfQtjDK6PmrVL6_%}?HTcqRPgZMX$ew9w;C6j&={#63MI{1~q zuL}MNa3)cn6X3jstrOtv2mb`+OlH0~0Zs?nRXzN_9zSBy=V!c>SoABQe-!zx$R9;M zg>uwPq+jCCQO2v;_@n!s1ol?+-RPG^-;KT#{Uq!U$KNFEi*wE-@IFGXA#xp&OTzvD z$|2ThU!k8wIa*MTDDvIpM}cDlNBDjngT#8_57+DQ$ASNKkZXxt9ptVTa^$bV-}Q|D z*ASQW#3u&(Z{hDy>>dE;25|1=x;fW2^lj+d&^MspkT|r(j|1SW0cQgK#}mH^_}>NH z1L%!JZvytkx$6Y{--Z7bz^MvO1#l{YQwN-D!I^;lsrWI0GNoa64H(Br*W;$sX!NG>{59CIQ%(ywW^gRv6rz6`{}-Fva`EFk^ygEq@6i7Q{qN8}j{a5HYl6M2uy-x`(dcKR zKM`DU4u2npCZS)mkouzh6TuyY+8T5mR`2RHJn24=({9lgVar7+URE4f*qKij= zIeG)pTTZ#H$S+6ljG*Yfj-Cm5GwpLIe)Sf9VXr#&lJTzr{w3qz)#wieN5o1&Ufjta z3XT_?r6fI1{!;88CS8x)V$vT2Z!zgVlD-uCs*p$TYeB(!1^bIh{}nrnN&k%W#iYMP z`WnhPk#g#I*WpiF;Sc`tv+&{cHI%a)<;+Q>{;3aL{;nKV8BTf1HJ0#^+2yFdiN5KaroB*y(Z}OKyNg9 zUC`Tt-U;IH0OMX4^eUmZoN^aX-k$jP9kdI2HPGvV-ca;iT?2g{@hBuCJ-+@y$gCL&|8ZA08~%!4vsi?Sxma0 z^jP#iL4PUse-!r7`;zqf_%#K;7L)!R>Gko;tQz>v0_QxGuPgc6$akZ^4gId1{vxssgfIAf21lr9S@DlLvDEc<+tj10P?K3x`ea3^c4xA3)9Ere*2WJpC z@!*JkOguP8z^MSvQE=kH=?6|Z^e3Z#8vn(9LXUSj^!uV;4t=pdDTn?}^rO)~gnl{n zZ$ZB^<*iA1%YZWhoX(V&pU(>8lmRCdoHF2y0H+K%+sLl9n{x+ zWOfh-ac;C9e{19Ke*7JTzdNA41;zd{@V6jq0`Dd0r?i9a;4A}Y3%K`zy9GQkmp_W1 z$B};t+^4|Z0&WbrTfplK-b+w%?x_3q660y^VjU+P`ge*yjS=)ZveML~(xn-S&K<(>!U6gVBgc?_Hm*y)O$=PBP)f`a2h z|9NnJ78IOa;M6a~AIhua+=l)8u)k2^>FEjJ)&VyG++p~=5WJtbUI^aD;4K92g;M;| z^`8Sz%FN=O> zuBUVTEc#ywivBz3Ka2iz==Y`mJ|pgZslP<(uPFy#_nElp2qG=*nJw^N3eSf?Z88OxCOibX}W%2 z#yJbuZNXU$&Kt?xr=nkM0dFmMFF~h3b@{g7*uiNFPF4iYOUw_k#O)UF4k5oAoL|6s z0sWB?`f1oXft@tUFUHz5%GF%7JM=B+r_p{FP|mjC97Hb-JK~<>^WY4Pz-dOj9-y4f zh}S&EyPeqk0ejDbqkxlzo$s)dg`L{i$s)NucCv_HYvdM!mn!hFV+217JK~<4Ue3OW zw0|K7-j~F$A9!Db*AKi};PnHqEqMLFYmVG=;N1savqHuP+HXJbL>tucvasXf`Z@4U zfVUri9r(Qi`aSy3qJJ0q8QA#}I~mv!d&CUvw8l;bcCHt4=zl2u0WS)?4D5(|=DM9N z;2lRU1)Pt;NdZTk1*L$~1RPy1g*Z%jQ{e0+tp<8;B3FRiEwt}ZwC`JJ-<_$az344R zW-oeTzTOLdZ}jwX?L{wuULWwDApJFDRq)z^GYp)z;H-d1k-Yd|q&^^fcg&gh6jJ_@x56)R|Ucv7~ z{MOT-#_mPpHJ5llD=0W(+|7oz1uq*vA0WLP`fs5>m-2r~oach`CUFpB_A~g~4t+QE z^$c_l^3R~Z6`XeX6NNvzy)xkJ0p}TTj)C(GIJ>}k2ArqCnMK@0|GSlV^*~P7n+4tm z@bv398AtXIKmB?Zc<+HX3%u9Cn+4vJ;7!4wA^0=p5`A5-750{6ZwmUap+5!vrRYyV ze=z#u3+e4iZ$P_h2~I2G+Lyc;=+(xb*YIO?gda1ovogZZ&Ezj9|24+5#*}9Ub`F3y z13Rx^M~p?|v9p={`sBBwzwbl-N&N0lJfDf;XlSs?r=WW1z)p9Jq^uAc<& zIq;qYF9_aP^fS>Pi~fQLfAn(ebS(N}+#HMkBj}4g;hpHeg5L`x%9TfXeLZtn zTxaA4AlD7KT<}te_dUoRL~bv7Dth-IR|mOV)IDSMw=q36u@tsUOH3 z`H{FJf*S<)1N6FU`OM$Qv?2d3@^1%c4mf(8U&nq|>>okCEAsomH=*A%hcgo5cY$)O zWxTjxV%`Af0_FUca$cYu{qf^4dg6N?cO&-}1qS*-qNw_XzxMM|*#bblv}M=mpSwg1A3J z+@An5+YLVDJwtha#INPx{fM1Y`2QogU*Ok|;QDBPnTecl;8%BW^1!*k_dyy{j<+e7 zxR3J#`b*IN0sSw~{{emR{iz?&S5<@Z1M$8CJKrET7rAec`v|#jkUNIlH^@B(zV2@; z%F&;4bj6+@d#BKwjovBrj-q!8y${ekg9H*@XedM@RzOntQG z+Q#+G)R%?&(*1AEH6`cC4l$k^l-KEx>nZ;u&p>0KqevI~&8O(kJ1F;4 z)YA*p(^J&bL)6nK(nUKSMfzaUN0ELj=_9f4BmN`N7vI~R1)dwZ&Xl(g<<~moBC?cby==kg0}>` z`)Q{ah+li6T8_B3M6N7yO~{{1{*&N+g`X|KO9ih9`Gu6LH+ny#r`v5p{ypS3MsGHH zdU|8*osX!$QHk^)@Lx}+9YY(VcNcn%(3^ptSX(~JxYG!|bLb@&;&;S+U6FV`O}rbS z*8{yg{M(Oz6^ZAaj2q3-D@3n3e%ipl2Kgh%4?yk!a@UZ48vn0B{z>F3WAFJ0{9NSr zBB%Rb8U5$bk3()Ta+T5l2>r_Fd(qeB;*fg=xftYTAs2_-5#-{KyBE1@3t4}Y9)sMI z$dyO#sR+9<$lV@+S01@>$m#eV>tFw2l*Q#X>{;OP<=lUG&ZzXolA@?m<=V(Xy__Bj`NXgj9fl)-N6||f4-aktowTl<47kl z{-T$Oo}QkM+-(tZUy`3e{*A;jgE-zu9EX6{p6fAOw*{x27=MxTA=i@hOwwB-_Z;PF zfj{P`22YT0h4zP5LoOS+M(DNYx-4>| zkh4O6gAS&?dJ*5U$lZ*b6t0`E3g-b+{r7Di$U(l708uG?jUmaP(NcYBj1Mno5=Sdzww;eE z5lhNAPgD-Mm*dK_cCsGi3zZMJ##(1uzThjccUd>{h14y!>gL}}3;D|AAzKr3Gt2!J zx7lVMYTaf#%GWwK+frN$op(9U+g3VzyH43gJL{N-Is?vbmL<+ju6vyOjb+sy&RZ;Z zJHB^KwCywPRo6Sa@_2yJ`kebKb1Tabb&UO2*A&}9(*d=&u{VomkM#xjPv)79pX`s> ze{xN-y=B_3rWkwjl|s99sr!2~kL)?Va*ea?G3{2@m>)2IuzB9#q%znZeZ)&dAHb!y7QPjtm)?`y_wXMC-)75;`TG4d9+RQC( zf)y6_HqYQox6_LY+sl@RUcEwax~b~dbg#T<$2di>ubi^p2ET}Y_~cF z8spsaZJ(Hqs|og@eC@EV^-Xtqbj!Qv+CDNJQ`b5R_>xC0>n^v;@)|!One1`7XWNdN zK2URv0d5;6T3>ftEuXn}T2C7juz%Jz*pX=*Zrf}sEF5L1V{h#I%<_nPuUSNCf?-?K zF!dhK7H4PUFvCpcJM1ky^P@hqCYoBR_j$^3OR=wMpY=CmP4#0(NBbj=p5~~i>)b1C-+J_z zTdXIImDGivEKfFdH^*#pd}~`zq*ik(tLdcj#(=yhy# zK5kj;T5erue9LMuU9H~i=&z1aNbQH`fMq#W=t+)V9&o+up!6!rajLvE?E64)ZsLI<7O;x~7im4#QPE{83n# z>T$aY3w!c8V9znHx1BScR=;%4=f>3_+j`Rt)OZ(9edqg@!S2`0Rgsz-HN^0pwYI6f zdL$}|TONC?=Zw{<-@W#S9K8$~=GR>7tp|+P(qo24-RpSSwbr`VSU;+%r>Egg#~Rma z>keaK;WSTo!|je`E=$x#zOT17s;2!Ghtu_)v%g_z)K)`P`(v)z)~Ai8!u*B|waw5F(^aL922 zo!@L7UDum!t~;X6*`75wFdwx&YpCfO?)lic$2r_O(en`-gPqQ!&R9{GQQMrAT&Hd0 zoY$K7Ij0-WILo>!xGlCera_){_CdTNptki5cNt5XWwSHi?y*fb`_$h&9~d?`%6X0% z6k7{ZU(Ygod%l8GSXj$;muY!aVPS^-ZN~(2HTOc>N!op;I+7P2G_=0sjMZkYQ&!ZMmPg(D&5JCzxR2Yf=gnIl zyeTZKV|dkazx!+FV#C#j52&NNqE=CNEsaN&#|TtZkV6kn?dzkEqwR5v-=+ zpfkqSDavo#YG0_n>Sz;{=zPU;FW%jxA>Lz~!CSNz@D{If&Sxxl*`}FhsWXVC$N99S zo%MM`Wn&BE?yyZVO~+D<(e4~in=;yNGEMTVvLCeCOm);YR3GS>C< zaaOe7sChlmHN`s0IL1}WGu2q$(cd-6n&ddmLqG<~To_f>p6Kzp##ujhpW^WGM)z9V zS<|;_-Kg0-rd?P##naq;gL}2@wCNNcPva|c!;E&%b$C6R$Nm~y54)>a)*146RYkIO zyW2r}zR`rwo>v3(zXpakEdAWI zoVzUP?%AGHaDJp;bu=zFEmhkavyj+sNpmkWB|BfYc->v1HdyXI`h)-`sr zjWZ<~+u25&jLwIM@I^pHZZMbQIItj0ScJNL@TL)7^ z8}Cn3Uvk8FzINPhIc}(H%QB5n7ZByo95-9~M0q^r@Hs>C;}yrV_LjUd>Oq8PAeIRhKJ+PCtP!_&)`{MVSD>Ej_ziQCzeCIzSdOhPQFyx!)o-bX!AiVn9WUXgG{HRF48j2IPSGva3|Y(n9jH-I>$QSblhR}J6CgP+1OTK zT5NC2*Ji(S+-cc|p26(1f9-zE+{Id0xRS3G^)U@pKLq1_M-{ihwbPdBEHn-0anSnK zx7`(pNfwU+$6H@@n=BtXI@rcii}z7KigU1~jcufs-uxR;Mp8i*5Ecw5wnpx!d1^Q zktlZZ3~^O)j4|fBh8RZ}D>$6?a#3X*cVW|PzeluDTY)uTJ;Wm!l+5~@x{n9J3JbUJ zIvKyIra8fUkM)FOBM(y)7M}8yHDB*Kk2j~HTG)n~oaW`uxy~OQUdzs?8P1U)j&z>K zVxsL1)5DH0q6(aEIO1(xc)y}3-!8{lUIABF*xLS}qqBLF;b2sA;?UkaS^d`dnBfcK zgO&l5IM-1-YPV~v>!|Tv^vyMYSfqIiCbWC2+)FMZ>kOt6ffc)m_sw%PWz8 zGK?#(ivAi(FEb-#3k#1H^F5Ak~w?ZOsrlH5n(lp>u!!_|uLA~}NpGZ=pl z*>6jU#3!YsmFDeRVYxjTx6PxpKE17slizi^$oIyo@=WOWN+0gZ_T~<_i6;|myzSr= zPqZxHZh8;yn2Ya|HCD`O1MY$k=1Cbc$2_N-jWfmB=OAkOrB$!#IwO;l#$rpUdH*1ttGDxs>b6DSM!K>BOVir#<+*a ztvGAe{qCWI@J{iM_$#Y;9ON4vR)!C|lXSae>k|mM^(#%luC$(V00cam3yr~1 z@mwl@nzvfn$$L}C;L-cg(=hy%a91gM6=Ul*H@9tfOZ}lH#WB2;KSw)$fsdb$N>AW- zSJJxh&h*=J{OR3O`8^X~UT0qKp3$sEz1l&CQa2&UkHn;Ai0p2@^mc=Cni#nbc$;@l-qp# zfZk=CaVV|dey5DHY|leK7akn?^}wUfd1FNcdMmAeA^nK@HeWi>n_uBW^H3XjyFPgdFr@{*=KD*&9l0OS?m3%T4 z2b3mrCp=jiKM7vcsn9(JBifYqH&WUXDYw&5! zrw@%`#Njf|8l$-oA0Z$zguoI$@AKiW)re`+DSzu#$f`XEBy^Q3UN)fz;u<{B1Mxb% z9*Aa?N)N;qcs&pmD4`yR0K6WEPvP}IG@#^qAhO~0K+J^E1F;_-pEdpS@OmI>BOrV) z9*9Xt$~Yexp?b*>&bH>0BKbDZRLS2AO_O|Es890kpnWBO3p8Ew?V%Zx?*Q#5`Hs*` zJ|Y;M_|#4mPqBq;-v-T=d}nBmvXn)Dy0nL+qH)xQLupyqJ6mPJ~ zhl=uvr$GxOFP=0XAbIh0=|IVgH(L#oy!bZiV9AR&pA3<__}1=m$!~#vBKg;$CnUcW z`l;l%K~GA4JM=R?!oMASu1Vz01W@7MPCj2qei!sh$?t}KCHXzjQ<8rJ`nBZuLcfvx zKIpfSe-rwhcr15+K ziM4i!=Zi!NU#Qa3`QndamposV5-&*A()r?#!j}g$o-YfD2a+`24J|8q@#JQC$&05! zVt2`wIp8?dbQ-Q zf?gx}+R(a^uLHeS^7Wt%B`==jxnA<(+nP5>UVP)TndHS=gjz^md^5A98Oq5TSMDQ{$}Vcl5Yp?Ao=#tPLl5k?JW7*ptnoD3-k`jizkx1OTHWQPRaLx-X-~- z&|Z=k-yFYJ^5R?d_eoxSLdh?H zE|L6V=<||a0bM2e7ock;zXrNa@-IPOmiz|jX31}Yz9#vfp*#7AF>yO|2cJFidKYvz zpMCQB4d`Az`}y#{_N3O^l79<&Q1S<$?@In1=wZnpf*z6ld(aOg|336X$sdItllp1V#`ZjJZT#vdGXeiijo&^V2P8wc#BPC$%o#E6Y^8MJ*t{a z4?Xc4N*8als3FtE8#-!9z9#f)$%{9OTqAk$7R0)e7jK}sR`T_r*GXPHS=~_b;wh;X zk{91-y-D)oDS%dz7jM37BYE*{>GqPp1$wLG#Z%OsBro1T)LHVkL2sA5ctX9a>>Fv@I58}82nw59|zw{@=w6uEBQ(Ay(KT+jM7K)Q%Ltp zeg)~NlAlVtPx9goEPW*}-qM^Q`KOWbOMV)BKgq8|CR6g_>D4UBizmthlAn!yf60qC z$>d4?8PW?RKNo(Oq(3Hk@pR=lU551W zl7A6?g5<@MLz5-Hp7dvQ88GKaUc8;SzcJJ%#ghm@$&05P21;H$$uLy%;;qCFN?yEq zWtil}+m2UAUcCA1dC7~n1+0|3cvJEVk{55US}l3;#K((#a7lZcoOlvxjm#5Iv8H=FM07Kw709aKEEBHn@FlCw*R({2b_Ok{3@BZQ&zy=0Okhd0k$Mr%KQ8 z*(R^WQ>t6}Z095FiMJ8&ki2*zb|)W!vj}>K&n`YfPP`>zx8#>V_wW&N;;j-j6M3Vf z%v%QCD|zw8i+z%x0DV*P;tgf{B`=J(58|XPv$g}d?jde$%`j@T1Z~JE%Zjoi#G+gm!(DsrS zPf&D_{8i9fB`==T=*UOdtqm1#NbMx^u7Tbr`8v?flCKNxBKdmI+a)iae(WlF1$u|% z#nUp~ByWIrm%I_$L-Ho*osu_0drIB{y-V`qsfxQLZ-e%dyd8Rvp^CGUjxmV6ZS zKFN!xmhP9l8~T9cJy5UY`#@9qh`6Lc#S^?fnU@AlmwaESU-B8yOv(3yW=lQ`8jySr zw7=xVQ@KIO=Rpf3FP`=pDER@YQ6i=ay-zXZBm^2?ylOMV6P1<9|3u9o~N=o-nt2z^QNYoY5UzYhAc7>&z zx7QUabgsRT-fVB8x7gYARy&X0Zf~P^*!lD>dndiy zE}-|?d+2?3A$`E!Pam|4=)?9Q`iNajAG43rC+y?&Df=XS+Ag8b+GpraEA;R7Z}cDbRr)XcPj&gS&v|{vv78-7m$x;2@Orxf{Wn`v87te`$nkeu zQz8Fpmra^1dwfmJxzXn}iRUI;Qx$KqHKFlVTT?D?vo$gEc3abB@31uysHPoB*S2fX zb!<)Zt7q4x8`zpc*wEI*^v1TPRW`LX3ADGZDSUlwO;qS>Yf5H6TUXHaw>1TIfUPU? z2HKiRJjm7+euHgIe;s0LV$M)oSJx%lx{_#^t*Z>5wRI)obGD|~CfPCc^L8x#g58!L zZnvXH*qT7{qOGgwN7@h4FWDXGQMM*Vy=-fm-7EG(^sBa}5sbFu=rOjYFTG}KV%O`o zrVb?Anrt=J*3^h`_G9#TThq2u?C$ggThj<9+E37V5oMo;+Agux*5rw8wx-%|w>3#4 z-`4c>9k#Aa-)U>x#x7fvoC<7h``B%3QpO%z)BpF{n)Fd(z}Cc) zB3oOB4%(Vrb;zE958IlERcveP(Ggpdw~pG{u5`@SB+BEqwx67^HM#Pnt*tz#Y)#ZG zv9)FBw5>^DXKZaVI%{hZS*fjUF6V4bBt36yJJkhS6H_nR+P-kf)6hQynlw7s)^zUgY)usY-q!SiA8c*h$gnk4 zeV(m}2lH)Bb^p=UB!vZb3jWESfEU`D=D*0+gq2KN(?A#7+Jv^m)^z%%wk88+*_yKZ zv;7WUW@}pha$A!*vTbdDSz&83%t~8ZCsx^-bdzIiyTNK(lOxvH+J>{%)}*y{wzl!C zw>8OTgRSix8*NSE$+fjrX_KvqKbviB57=UBqEMclhPT?9EVs?p_N?u;Cf4QK>3D}d z6YsQV;a&D@TwrTE(QaFlW%t?)q`)FO10S?CG5C-@ zA0M`V#Krake8kqo!lSmfx*W4L>G`;wiBH&z@kx6LK4mY(CAPNRoVGQ&>WsY%pS73c zQd`@4&e_@wb>7z0mJ7Bv>Rq(8rRtKcjdm~JUiLhoY2IV(zI+erU0YKtuj7h+{d+M$ zm$Sp@@^(0Vy0m^Ra=upZ?rX?^d`F+eT#iFeXCuazRms@ zeY>rV8+X|Mrfb@fbZuMH!0XsibUnK+-N3F-H?;4h8{3WOrgjs$nH^2vWoyb@OIwpf zTG^ULa*wTvCimI*()Zh%knn)5sVK3wCSbL*HBG65-Jb4fKS+1BJJDV2hv=?$9Q}x` z>A;WL@pL!)G5T@4JKe*6f_~EONk3(4`qR_4Cc`{qYr0HtqJIM?(3%?7m+14U58dDH zM-Q|I(1Yzk^iX>UJ6h(M^sDwO^cZ_I{kr`c zJ=RX9$J^uR33dwohCPvf)1E}XZNEjoV^5~vv)`rPw^Qj4?GNaW>?!ngJB|Lzo7VQc^dfs9z1YsAm)c9{pY1GqxxI{D zVQ15;?3MItJBMCtuc6o5>*$U426~g7OK-6^(_8I4db_=i-eKp{yX>9xZo7cqYww}= z*@g50dp~{9E}{?Hhv*}AF@4NFN}sTg)2Hl{^l7_+rQC&*jMSl>_2IKllI!zT}8F6X*OYYCAyrg={n(d6}r5w={yx|ZAiJ^)^wi; zyE)D#77Hzkto7wl!&23F$zRT9srWUp))U>oUz3OgT6RKL-+Kv=sccNqM&U9P*A-bL2 zg>G-h(H-or^rQBZbT|7c`f>Ydx`+J?onQ~5d)u1+(#IY`_qB)8{p>`#zdei|U~2=y zK>Im5$zDP~Z!e`^u-DPU?e+8sdjtKVy^$Vi@1b9^_tK;6EA-3uuk;(FGyEpxU-G?4- z_oYYJ{pc6%{`5$D0R56ZkRD|ZqF=TL)34Y==vVEb^k_Sg9%B!qU$dX3U$>v5Q|$3{ zUR2rpwUFLwFQT{Ene=vhF`aKOp?BCz>78~Kz03ZYF0hx;yY1!l9y^=fYpb+Wa6 ztFx`ia}U|t>ea>8 z9r_8oF5SbfNB6Yr(@)wB=>OVx(ofl%+}F!)L_cjervJ}wLie^4=>E2*g%7YbA#IR7 zkRD?!mo_Q&+6_Eh?F`!o7~_B8rS`wM!yoko9U&!A`8>GW)S7X7t7hyK?7hW^f; zOaEYhPtUV6=pXI*^iTEzdXc@5UTkO5OYJ4}&vq8Q++Ienu(Rn^_DXuSokOp+*U;8*Aiz1`kM@38afUG`3Tw_QN*wfE5b>_Ym0y`Mg47tx39Lv)FK ziaukXrZ3p%=|JPM=fgC8kI~iy`7nD1E@x{peYl;D%iEfOU%}Rv^XqMGgsEt23-RA< zZIG#CYddyjTbpgF*xL5}cUu$t|6yyZ_&;rJ1cr|P!0z~5?XgZ95{ZI!*v)qt8r z*R(Z>wwApT*S1&TC_4w&v9+!c2?P+ucltNvo%4vgWaC)Xlvs_XS);K zh3Mb^+OVXpk6ryTZJd0>)>fcLZEeiyW^3!uYjbjKeIJiM18uddV{21i zJ-aU5z}AMrhPJk$H@3BjvZ>vKzRT8zgqF6Z;I^_gN%tOG(|GT*wbAB&Thl!sur<*) z*4Fg)cD5#gcd)hPqob|OA)Re)U+Q9Ob7@yQj()_}W~)bSZGGxyYjf4(wzg*Vu(f&X zNn6vopRzT%{ApWLji0eK8M(KeK=-x#(EV*~4;g3=pa$nB6}gd*v_Pv+Dqu4?JRn^y^LOE zucX)6Yv~R4dit_`iSEYt+x4}hO^306mANL})~-djvuo4s?I^l~U59?qu1j~c>(QO; z`gCWz0sWADC*8$vNXOZY=&p8S`eC~X{fOO^j<=)fN9|_xV|H`8n|&AE-EKiYZnvbL zuCCK869hfvpM2+JvL?ny}o^)+FUdwzj}(E2D0s z3C&IH3UpIjlXSJ2K)2C^=w`MiJ2$s0(b|Tf+i22s3tQWKTiTjbtqIAxjV4mJvNh?t zwXH2^+LoZ(Xp--}wzjO@XKRwSCNk?bnt*-3tx4Sfv9*;~TLX0)O&E`{wdFY0)`ai2 zwl+Vsvo#^Syoz~qg|;@i?6ZHOwJAWiSx6tS7tuv_CVkLe zOdqnB(1-1%bg`X9AF;Jz=BT}lK4veckK5Vw33~;t4GDUCR??^JRdk7+Lu)#>ZnK&` zW3Qpl+H2`jdmVkwUQeI5H_#XCjr2u3m%e0gqA%N<>0j(E^c6dg{?*<}|7LHaf48^O z*;UHk=45(>txW+d?Q!%fTN?;+Y;BZWZBL-r*c0iswl7;A9eu{ugz>ZX4|J)WL7%hd(dX^? zbawT!&#^Rmg{^I2EA1KdDqCB~a_n?^wXJPuYwTI{T3g#c*V%LE^|rQ!Zm_?hH`>}_ znrqLcH`&_Gw%Puk-ePO}Tb`XkZ?&}rcAGt)-fnA4ZN9yL-eGGC-A;QUz0212-U2(5 z-fb_Y_t;D5y|%XZ6xvzzK3m&}_S?(o1GcspB|Ka9@sFW<+nSEr$JS)uzP6^Q_Oms? zzrU?1)B|j72pDK<8t5Qf8&?L~+6Fbm*5<;Ywx)R}+S;Hv%+~gjXKih~dCu0)+VsKY)!LmVQbS^OIy>V z@3yr;ww0}E)UEBC>3eKV*}m7-rr-N)O}TDkYlHCpwx(qN$F4y?VBb#1*xH;HYil}h zTU(pi+SxVf!Tgcv&!ux9Hm#s)Q0U}m{GfCItz7%V z9>%dQ{BP!qOFriQy7<3}k4t%w;T$XaCddKu1-H?$F4EUIjm+0tZyi_k{XXF~xto* zqKl-0w^`%k;B8iMoJ({ZyvIQYxNTGgQA;4cwt^@NUtzv!zK4f>_r z;IUS_2Y4O9w;>r%BG-kS8;jp0VIk+n;kQV+kaOel+ax^XTne5{%7>hrfZrh%Le5RZ z?-Kn`J@~e~f!`yMA?H%@R8lkK-23=bQY+-#2lz8mJLKGl_;V5!a&8KqM(Tu|`w0J! z)D1cJG5&(+hv~t$?-TqbNeDTYhUbvpA?K#!uSuVfb2IQaq;JT%ukg2|U&y(1JeTwj zIX4r3M+StPn}xq8`k{63?VF8%AW1%_&!_o#M9A?bHV#Q!MWg9 zaq#{5g>z|d@=rjL^d-OIN{UF{bbegAh?i~TxQLe@<=gGYILF5+p2Xb1Ux^L)YY0cv z@kEc2NRJ|^B%vWqvSavPXQFLvktBvBkRlS%mSd7YMw3*MPBKVo50+Q=Z_4R5={cdEC(bBB#mq7qq$yQf0bpQ;`SvRbG>{bN!E4qXSiR* zut4bzVSx;;F)!kJ^8~IhPb1M>Z=OfuxyHO7Ng}DFh(vPzc@oJZ#iUf`I`DX|4=yDU zx(1l*xg$vo=|z%AD$(`cX(XFOaGiHFNg&B2jYM*tb$kME56SM$>mw0;xE)C%sU&+O zFCWEYP2xPC12J?OnKF$g*(84^_a&tydKQmKl1M7aBhlaT7#U%KLQ+a1=5db1kpz-V zvX}B0Br+>35JQqkD#^~~yuzP#USL=*c9Fr0xg{WRW})v6K6fz;0d_Ng&Cj zh@>9iHYEBGuZLulLQ+a14s)I)oaFW-jl`b{3oJOz?MNOeB@t(MxpJ1rJI8H);bV4% z`;ieOnM@&RB#)Gmh+lbZl0cG48j1Oh_mdQns6Tl*i6^NfgXED?lJpn%=j(cMwQ_+p zl1++;zTVk<7>H=Zxd%8$0x{(R?MXc8MUse~1Lo41B!}dYLUNp3B!Sp+fhwdri6YUY z4e3O>lLV4TMv)YfN~V!HWC6)0xuk#;lTvb(RBT%=P>n>AMx-@qPvS{0GKh>I$z(E_ zO43ON$s+4WJ}Dw4MC+SC$h(6y&)04;)l1Ao|Op-(LNFg~+ zE|NfdJ_e*Zi6YUY4e3O>lLV4TMv)YfN~V!HWC6)0dTz|63rI03C09ws4tyL)Bxyui zllCN@^df`E2$D=Dlc^+~WRNVfj^vXfQbMkf@CSJxNexn;v>-7gj`Sq`ND>)MCXp#5 zjm#yPB!}dYLUNp3B!P~63`lhnMWRU?(us5@2_%t>A}J)5Oe1s10+LN~NdYM)rQ|B9 z*opU_M3P3NHEB=cNiQ;pj3CKmGMP%!Ne0Ox>&Ug|e!lkdaSgl&a^Dx^AzBGIG`=|uG0 z(49^oiDVQ>A*o~3F5eX25s1ye*YUVn z>gYghKK+koysSCt^ct@rJP=!=7xI6=ztiQf&7tPpm8zA?C5_{y>A#|w^zQ!;HWkZ+ literal 0 HcmV?d00001 diff --git a/css.worker.js b/css.worker.js new file mode 100644 index 00000000000..2ee0b98c6d9 --- /dev/null +++ b/css.worker.js @@ -0,0 +1,49832 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +var __webpack_exports__ = {}; + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/errors.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Avoid circular dependency on EventEmitter by implementing a subset of the interface. +class ErrorHandler { + constructor() { + this.listeners = []; + this.unexpectedErrorHandler = function (e) { + setTimeout(() => { + if (e.stack) { + if (ErrorNoTelemetry.isErrorNoTelemetry(e)) { + throw new ErrorNoTelemetry(e.message + '\n\n' + e.stack); + } + throw new Error(e.message + '\n\n' + e.stack); + } + throw e; + }, 0); + }; + } + emit(e) { + this.listeners.forEach((listener) => { + listener(e); + }); + } + onUnexpectedError(e) { + this.unexpectedErrorHandler(e); + this.emit(e); + } + // For external errors, we don't want the listeners to be called + onUnexpectedExternalError(e) { + this.unexpectedErrorHandler(e); + } +} +const errorHandler = new ErrorHandler(); +function onUnexpectedError(e) { + // ignore errors from cancelled promises + if (!isCancellationError(e)) { + errorHandler.onUnexpectedError(e); + } + return undefined; +} +function onUnexpectedExternalError(e) { + // ignore errors from cancelled promises + if (!isCancellationError(e)) { + errorHandler.onUnexpectedExternalError(e); + } + return undefined; +} +function transformErrorForSerialization(error) { + if (error instanceof Error) { + const { name, message } = error; + const stack = error.stacktrace || error.stack; + return { + $isError: true, + name, + message, + stack, + noTelemetry: ErrorNoTelemetry.isErrorNoTelemetry(error) + }; + } + // return as is + return error; +} +const canceledName = 'Canceled'; +/** + * Checks if the given error is a promise in canceled state + */ +function isCancellationError(error) { + if (error instanceof CancellationError) { + return true; + } + return error instanceof Error && error.name === canceledName && error.message === canceledName; +} +// !!!IMPORTANT!!! +// Do NOT change this class because it is also used as an API-type. +class CancellationError extends Error { + constructor() { + super(canceledName); + this.name = this.message; + } +} +/** + * @deprecated use {@link CancellationError `new CancellationError()`} instead + */ +function canceled() { + const error = new Error(canceledName); + error.name = error.message; + return error; +} +function illegalArgument(name) { + if (name) { + return new Error(`Illegal argument: ${name}`); + } + else { + return new Error('Illegal argument'); + } +} +function illegalState(name) { + if (name) { + return new Error(`Illegal state: ${name}`); + } + else { + return new Error('Illegal state'); + } +} +class NotSupportedError extends Error { + constructor(message) { + super('NotSupported'); + if (message) { + this.message = message; + } + } +} +/** + * Error that when thrown won't be logged in telemetry as an unhandled error. + */ +class ErrorNoTelemetry extends Error { + constructor(msg) { + super(msg); + this.name = 'ErrorNoTelemetry'; + } + static fromError(err) { + if (err instanceof ErrorNoTelemetry) { + return err; + } + const result = new ErrorNoTelemetry(); + result.message = err.message; + result.stack = err.stack; + return result; + } + static isErrorNoTelemetry(err) { + return err.name === 'ErrorNoTelemetry'; + } +} +/** + * This error indicates a bug. + * Do not throw this for invalid user input. + * Only catch this error to recover gracefully from bugs. + */ +class BugIndicatingError extends Error { + constructor(message) { + super(message || 'An unexpected bug occurred.'); + Object.setPrototypeOf(this, BugIndicatingError.prototype); + // Because we know for sure only buggy code throws this, + // we definitely want to break here and fix the bug. + // eslint-disable-next-line no-debugger + debugger; + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/functional.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function once(fn) { + const _this = this; + let didCall = false; + let result; + return function () { + if (didCall) { + return result; + } + didCall = true; + result = fn.apply(_this, arguments); + return result; + }; +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/iterator.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +var Iterable; +(function (Iterable) { + function is(thing) { + return thing && typeof thing === 'object' && typeof thing[Symbol.iterator] === 'function'; + } + Iterable.is = is; + const _empty = Object.freeze([]); + function empty() { + return _empty; + } + Iterable.empty = empty; + function* single(element) { + yield element; + } + Iterable.single = single; + function from(iterable) { + return iterable || _empty; + } + Iterable.from = from; + function isEmpty(iterable) { + return !iterable || iterable[Symbol.iterator]().next().done === true; + } + Iterable.isEmpty = isEmpty; + function first(iterable) { + return iterable[Symbol.iterator]().next().value; + } + Iterable.first = first; + function some(iterable, predicate) { + for (const element of iterable) { + if (predicate(element)) { + return true; + } + } + return false; + } + Iterable.some = some; + function find(iterable, predicate) { + for (const element of iterable) { + if (predicate(element)) { + return element; + } + } + return undefined; + } + Iterable.find = find; + function* filter(iterable, predicate) { + for (const element of iterable) { + if (predicate(element)) { + yield element; + } + } + } + Iterable.filter = filter; + function* map(iterable, fn) { + let index = 0; + for (const element of iterable) { + yield fn(element, index++); + } + } + Iterable.map = map; + function* concat(...iterables) { + for (const iterable of iterables) { + for (const element of iterable) { + yield element; + } + } + } + Iterable.concat = concat; + function* concatNested(iterables) { + for (const iterable of iterables) { + for (const element of iterable) { + yield element; + } + } + } + Iterable.concatNested = concatNested; + function reduce(iterable, reducer, initialValue) { + let value = initialValue; + for (const element of iterable) { + value = reducer(value, element); + } + return value; + } + Iterable.reduce = reduce; + function forEach(iterable, fn) { + let index = 0; + for (const element of iterable) { + fn(element, index++); + } + } + Iterable.forEach = forEach; + /** + * Returns an iterable slice of the array, with the same semantics as `array.slice()`. + */ + function* slice(arr, from, to = arr.length) { + if (from < 0) { + from += arr.length; + } + if (to < 0) { + to += arr.length; + } + else if (to > arr.length) { + to = arr.length; + } + for (; from < to; from++) { + yield arr[from]; + } + } + Iterable.slice = slice; + /** + * Consumes `atMost` elements from iterable and returns the consumed elements, + * and an iterable for the rest of the elements. + */ + function consume(iterable, atMost = Number.POSITIVE_INFINITY) { + const consumed = []; + if (atMost === 0) { + return [consumed, iterable]; + } + const iterator = iterable[Symbol.iterator](); + for (let i = 0; i < atMost; i++) { + const next = iterator.next(); + if (next.done) { + return [consumed, Iterable.empty()]; + } + consumed.push(next.value); + } + return [consumed, { [Symbol.iterator]() { return iterator; } }]; + } + Iterable.consume = consume; + /** + * Consumes `atMost` elements from iterable and returns the consumed elements, + * and an iterable for the rest of the elements. + */ + function collect(iterable) { + return consume(iterable)[0]; + } + Iterable.collect = collect; + /** + * Returns whether the iterables are the same length and all items are + * equal using the comparator function. + */ + function equals(a, b, comparator = (at, bt) => at === bt) { + const ai = a[Symbol.iterator](); + const bi = b[Symbol.iterator](); + while (true) { + const an = ai.next(); + const bn = bi.next(); + if (an.done !== bn.done) { + return false; + } + else if (an.done) { + return true; + } + else if (!comparator(an.value, bn.value)) { + return false; + } + } + } + Iterable.equals = equals; +})(Iterable || (Iterable = {})); + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/lifecycle.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + + +/** + * Enables logging of potentially leaked disposables. + * + * A disposable is considered leaked if it is not disposed or not registered as the child of + * another disposable. This tracking is very simple an only works for classes that either + * extend Disposable or use a DisposableStore. This means there are a lot of false positives. + */ +const TRACK_DISPOSABLES = false; +let disposableTracker = null; +function setDisposableTracker(tracker) { + disposableTracker = tracker; +} +if (TRACK_DISPOSABLES) { + const __is_disposable_tracked__ = '__is_disposable_tracked__'; + setDisposableTracker(new class { + trackDisposable(x) { + const stack = new Error('Potentially leaked disposable').stack; + setTimeout(() => { + if (!x[__is_disposable_tracked__]) { + console.log(stack); + } + }, 3000); + } + setParent(child, parent) { + if (child && child !== lifecycle_Disposable.None) { + try { + child[__is_disposable_tracked__] = true; + } + catch (_a) { + // noop + } + } + } + markAsDisposed(disposable) { + if (disposable && disposable !== lifecycle_Disposable.None) { + try { + disposable[__is_disposable_tracked__] = true; + } + catch (_a) { + // noop + } + } + } + markAsSingleton(disposable) { } + }); +} +function trackDisposable(x) { + disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.trackDisposable(x); + return x; +} +function markAsDisposed(disposable) { + disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.markAsDisposed(disposable); +} +function setParentOfDisposable(child, parent) { + disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.setParent(child, parent); +} +function setParentOfDisposables(children, parent) { + if (!disposableTracker) { + return; + } + for (const child of children) { + disposableTracker.setParent(child, parent); + } +} +/** + * Indicates that the given object is a singleton which does not need to be disposed. +*/ +function markAsSingleton(singleton) { + disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.markAsSingleton(singleton); + return singleton; +} +class MultiDisposeError extends Error { + constructor(errors) { + super(`Encountered errors while disposing of store. Errors: [${errors.join(', ')}]`); + this.errors = errors; + } +} +function isDisposable(thing) { + return typeof thing.dispose === 'function' && thing.dispose.length === 0; +} +function dispose(arg) { + if (Iterable.is(arg)) { + const errors = []; + for (const d of arg) { + if (d) { + try { + d.dispose(); + } + catch (e) { + errors.push(e); + } + } + } + if (errors.length === 1) { + throw errors[0]; + } + else if (errors.length > 1) { + throw new MultiDisposeError(errors); + } + return Array.isArray(arg) ? [] : arg; + } + else if (arg) { + arg.dispose(); + return arg; + } +} +function combinedDisposable(...disposables) { + const parent = toDisposable(() => dispose(disposables)); + setParentOfDisposables(disposables, parent); + return parent; +} +function toDisposable(fn) { + const self = trackDisposable({ + dispose: once(() => { + markAsDisposed(self); + fn(); + }) + }); + return self; +} +class DisposableStore { + constructor() { + this._toDispose = new Set(); + this._isDisposed = false; + trackDisposable(this); + } + /** + * Dispose of all registered disposables and mark this object as disposed. + * + * Any future disposables added to this object will be disposed of on `add`. + */ + dispose() { + if (this._isDisposed) { + return; + } + markAsDisposed(this); + this._isDisposed = true; + this.clear(); + } + /** + * Returns `true` if this object has been disposed + */ + get isDisposed() { + return this._isDisposed; + } + /** + * Dispose of all registered disposables but do not mark this object as disposed. + */ + clear() { + try { + dispose(this._toDispose.values()); + } + finally { + this._toDispose.clear(); + } + } + add(o) { + if (!o) { + return o; + } + if (o === this) { + throw new Error('Cannot register a disposable on itself!'); + } + setParentOfDisposable(o, this); + if (this._isDisposed) { + if (!DisposableStore.DISABLE_DISPOSED_WARNING) { + console.warn(new Error('Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!').stack); + } + } + else { + this._toDispose.add(o); + } + return o; + } +} +DisposableStore.DISABLE_DISPOSED_WARNING = false; +class lifecycle_Disposable { + constructor() { + this._store = new DisposableStore(); + trackDisposable(this); + setParentOfDisposable(this._store, this); + } + dispose() { + markAsDisposed(this); + this._store.dispose(); + } + _register(o) { + if (o === this) { + throw new Error('Cannot register a disposable on itself!'); + } + return this._store.add(o); + } +} +lifecycle_Disposable.None = Object.freeze({ dispose() { } }); +/** + * Manages the lifecycle of a disposable value that may be changed. + * + * This ensures that when the disposable value is changed, the previously held disposable is disposed of. You can + * also register a `MutableDisposable` on a `Disposable` to ensure it is automatically cleaned up. + */ +class MutableDisposable { + constructor() { + this._isDisposed = false; + trackDisposable(this); + } + get value() { + return this._isDisposed ? undefined : this._value; + } + set value(value) { + var _a; + if (this._isDisposed || value === this._value) { + return; + } + (_a = this._value) === null || _a === void 0 ? void 0 : _a.dispose(); + if (value) { + setParentOfDisposable(value, this); + } + this._value = value; + } + clear() { + this.value = undefined; + } + dispose() { + var _a; + this._isDisposed = true; + markAsDisposed(this); + (_a = this._value) === null || _a === void 0 ? void 0 : _a.dispose(); + this._value = undefined; + } + /** + * Clears the value, but does not dispose it. + * The old value is returned. + */ + clearAndLeak() { + const oldValue = this._value; + this._value = undefined; + if (oldValue) { + setParentOfDisposable(oldValue, null); + } + return oldValue; + } +} +class RefCountedDisposable { + constructor(_disposable) { + this._disposable = _disposable; + this._counter = 1; + } + acquire() { + this._counter++; + return this; + } + release() { + if (--this._counter === 0) { + this._disposable.dispose(); + } + return this; + } +} +/** + * A safe disposable can be `unset` so that a leaked reference (listener) + * can be cut-off. + */ +class SafeDisposable { + constructor() { + this.dispose = () => { }; + this.unset = () => { }; + this.isset = () => false; + trackDisposable(this); + } + set(fn) { + let callback = fn; + this.unset = () => callback = undefined; + this.isset = () => callback !== undefined; + this.dispose = () => { + if (callback) { + callback(); + callback = undefined; + markAsDisposed(this); + } + }; + return this; + } +} +class ImmortalReference { + constructor(object) { + this.object = object; + } + dispose() { } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/linkedList.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class Node { + constructor(element) { + this.element = element; + this.next = Node.Undefined; + this.prev = Node.Undefined; + } +} +Node.Undefined = new Node(undefined); +class linkedList_LinkedList { + constructor() { + this._first = Node.Undefined; + this._last = Node.Undefined; + this._size = 0; + } + get size() { + return this._size; + } + isEmpty() { + return this._first === Node.Undefined; + } + clear() { + let node = this._first; + while (node !== Node.Undefined) { + const next = node.next; + node.prev = Node.Undefined; + node.next = Node.Undefined; + node = next; + } + this._first = Node.Undefined; + this._last = Node.Undefined; + this._size = 0; + } + unshift(element) { + return this._insert(element, false); + } + push(element) { + return this._insert(element, true); + } + _insert(element, atTheEnd) { + const newNode = new Node(element); + if (this._first === Node.Undefined) { + this._first = newNode; + this._last = newNode; + } + else if (atTheEnd) { + // push + const oldLast = this._last; + this._last = newNode; + newNode.prev = oldLast; + oldLast.next = newNode; + } + else { + // unshift + const oldFirst = this._first; + this._first = newNode; + newNode.next = oldFirst; + oldFirst.prev = newNode; + } + this._size += 1; + let didRemove = false; + return () => { + if (!didRemove) { + didRemove = true; + this._remove(newNode); + } + }; + } + shift() { + if (this._first === Node.Undefined) { + return undefined; + } + else { + const res = this._first.element; + this._remove(this._first); + return res; + } + } + pop() { + if (this._last === Node.Undefined) { + return undefined; + } + else { + const res = this._last.element; + this._remove(this._last); + return res; + } + } + _remove(node) { + if (node.prev !== Node.Undefined && node.next !== Node.Undefined) { + // middle + const anchor = node.prev; + anchor.next = node.next; + node.next.prev = anchor; + } + else if (node.prev === Node.Undefined && node.next === Node.Undefined) { + // only node + this._first = Node.Undefined; + this._last = Node.Undefined; + } + else if (node.next === Node.Undefined) { + // last + this._last = this._last.prev; + this._last.next = Node.Undefined; + } + else if (node.prev === Node.Undefined) { + // first + this._first = this._first.next; + this._first.prev = Node.Undefined; + } + // done + this._size -= 1; + } + *[Symbol.iterator]() { + let node = this._first; + while (node !== Node.Undefined) { + yield node.element; + node = node.next; + } + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/nls.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +let isPseudo = (typeof document !== 'undefined' && document.location && document.location.hash.indexOf('pseudo=true') >= 0); +const DEFAULT_TAG = 'i-default'; +function _format(message, args) { + let result; + if (args.length === 0) { + result = message; + } + else { + result = message.replace(/\{(\d+)\}/g, (match, rest) => { + const index = rest[0]; + const arg = args[index]; + let result = match; + if (typeof arg === 'string') { + result = arg; + } + else if (typeof arg === 'number' || typeof arg === 'boolean' || arg === void 0 || arg === null) { + result = String(arg); + } + return result; + }); + } + if (isPseudo) { + // FF3B and FF3D is the Unicode zenkaku representation for [ and ] + result = '\uFF3B' + result.replace(/[aouei]/g, '$&$&') + '\uFF3D'; + } + return result; +} +function findLanguageForModule(config, name) { + let result = config[name]; + if (result) { + return result; + } + result = config['*']; + if (result) { + return result; + } + return null; +} +function endWithSlash(path) { + if (path.charAt(path.length - 1) === '/') { + return path; + } + return path + '/'; +} +function getMessagesFromTranslationsService(translationServiceUrl, language, name) { + return __awaiter(this, void 0, void 0, function* () { + const url = endWithSlash(translationServiceUrl) + endWithSlash(language) + 'vscode/' + endWithSlash(name); + const res = yield fetch(url); + if (res.ok) { + const messages = yield res.json(); + return messages; + } + throw new Error(`${res.status} - ${res.statusText}`); + }); +} +function createScopedLocalize(scope) { + return function (idx, defaultValue) { + const restArgs = Array.prototype.slice.call(arguments, 2); + return _format(scope[idx], restArgs); + }; +} +function localize(data, message, ...args) { + return _format(message, args); +} +function getConfiguredDefaultLocale(_) { + // This returns undefined because this implementation isn't used and is overwritten by the loader + // when loaded. + return undefined; +} +function setPseudoTranslation(value) { + isPseudo = value; +} +/** + * Invoked in a built product at run-time + */ +function create(key, data) { + var _a; + return { + localize: createScopedLocalize(data[key]), + getConfiguredDefaultLocale: (_a = data.getConfiguredDefaultLocale) !== null && _a !== void 0 ? _a : ((_) => undefined) + }; +} +/** + * Invoked by the loader at run-time + */ +function load(name, req, load, config) { + var _a; + const pluginConfig = (_a = config['vs/nls']) !== null && _a !== void 0 ? _a : {}; + if (!name || name.length === 0) { + return load({ + localize: localize, + getConfiguredDefaultLocale: () => { var _a; return (_a = pluginConfig.availableLanguages) === null || _a === void 0 ? void 0 : _a['*']; } + }); + } + const language = pluginConfig.availableLanguages ? findLanguageForModule(pluginConfig.availableLanguages, name) : null; + const useDefaultLanguage = language === null || language === DEFAULT_TAG; + let suffix = '.nls'; + if (!useDefaultLanguage) { + suffix = suffix + '.' + language; + } + const messagesLoaded = (messages) => { + if (Array.isArray(messages)) { + messages.localize = createScopedLocalize(messages); + } + else { + messages.localize = createScopedLocalize(messages[name]); + } + messages.getConfiguredDefaultLocale = () => { var _a; return (_a = pluginConfig.availableLanguages) === null || _a === void 0 ? void 0 : _a['*']; }; + load(messages); + }; + if (typeof pluginConfig.loadBundle === 'function') { + pluginConfig.loadBundle(name, language, (err, messages) => { + // We have an error. Load the English default strings to not fail + if (err) { + req([name + '.nls'], messagesLoaded); + } + else { + messagesLoaded(messages); + } + }); + } + else if (pluginConfig.translationServiceUrl && !useDefaultLanguage) { + (() => __awaiter(this, void 0, void 0, function* () { + var _b; + try { + const messages = yield getMessagesFromTranslationsService(pluginConfig.translationServiceUrl, language, name); + return messagesLoaded(messages); + } + catch (err) { + // Language is already as generic as it gets, so require default messages + if (!language.includes('-')) { + console.error(err); + return req([name + '.nls'], messagesLoaded); + } + try { + // Since there is a dash, the language configured is a specific sub-language of the same generic language. + // Since we were unable to load the specific language, try to load the generic language. Ex. we failed to find a + // Swiss German (de-CH), so try to load the generic German (de) messages instead. + const genericLanguage = language.split('-')[0]; + const messages = yield getMessagesFromTranslationsService(pluginConfig.translationServiceUrl, genericLanguage, name); + // We got some messages, so we configure the configuration to use the generic language for this session. + (_b = pluginConfig.availableLanguages) !== null && _b !== void 0 ? _b : (pluginConfig.availableLanguages = {}); + pluginConfig.availableLanguages['*'] = genericLanguage; + return messagesLoaded(messages); + } + catch (err) { + console.error(err); + return req([name + '.nls'], messagesLoaded); + } + } + }))(); + } + else { + req([name + suffix], messagesLoaded, (err) => { + if (suffix === '.nls') { + console.error('Failed trying to load default language strings', err); + return; + } + console.error(`Failed to load message bundle for language ${language}. Falling back to the default language:`, err); + req([name + '.nls'], messagesLoaded); + }); + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/platform.js +var _a; +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +const LANGUAGE_DEFAULT = 'en'; +let _isWindows = false; +let _isMacintosh = false; +let _isLinux = false; +let _isLinuxSnap = false; +let _isNative = false; +let _isWeb = false; +let _isElectron = false; +let _isIOS = false; +let _isCI = false; +let _locale = undefined; +let _language = (/* unused pure expression or super */ null && (LANGUAGE_DEFAULT)); +let _translationsConfigFile = (/* unused pure expression or super */ null && (undefined)); +let _userAgent = undefined; +const platform_globals = (typeof self === 'object' ? self : typeof global === 'object' ? global : {}); +let nodeProcess = undefined; +if (typeof platform_globals.vscode !== 'undefined' && typeof platform_globals.vscode.process !== 'undefined') { + // Native environment (sandboxed) + nodeProcess = platform_globals.vscode.process; +} +else if (typeof process !== 'undefined') { + // Native environment (non-sandboxed) + nodeProcess = process; +} +const isElectronProcess = typeof ((_a = nodeProcess === null || nodeProcess === void 0 ? void 0 : nodeProcess.versions) === null || _a === void 0 ? void 0 : _a.electron) === 'string'; +const isElectronRenderer = isElectronProcess && (nodeProcess === null || nodeProcess === void 0 ? void 0 : nodeProcess.type) === 'renderer'; +// Web environment +if (typeof navigator === 'object' && !isElectronRenderer) { + _userAgent = navigator.userAgent; + _isWindows = _userAgent.indexOf('Windows') >= 0; + _isMacintosh = _userAgent.indexOf('Macintosh') >= 0; + _isIOS = (_userAgent.indexOf('Macintosh') >= 0 || _userAgent.indexOf('iPad') >= 0 || _userAgent.indexOf('iPhone') >= 0) && !!navigator.maxTouchPoints && navigator.maxTouchPoints > 0; + _isLinux = _userAgent.indexOf('Linux') >= 0; + _isWeb = true; + const configuredLocale = getConfiguredDefaultLocale( + // This call _must_ be done in the file that calls `nls.getConfiguredDefaultLocale` + // to ensure that the NLS AMD Loader plugin has been loaded and configured. + // This is because the loader plugin decides what the default locale is based on + // how it's able to resolve the strings. + localize({ key: 'ensureLoaderPluginIsLoaded', comment: ['{Locked}'] }, '_')); + _locale = configuredLocale || LANGUAGE_DEFAULT; + _language = _locale; +} +// Native environment +else if (typeof nodeProcess === 'object') { + _isWindows = (nodeProcess.platform === 'win32'); + _isMacintosh = (nodeProcess.platform === 'darwin'); + _isLinux = (nodeProcess.platform === 'linux'); + _isLinuxSnap = _isLinux && !!nodeProcess.env['SNAP'] && !!nodeProcess.env['SNAP_REVISION']; + _isElectron = isElectronProcess; + _isCI = !!nodeProcess.env['CI'] || !!nodeProcess.env['BUILD_ARTIFACTSTAGINGDIRECTORY']; + _locale = LANGUAGE_DEFAULT; + _language = LANGUAGE_DEFAULT; + const rawNlsConfig = nodeProcess.env['VSCODE_NLS_CONFIG']; + if (rawNlsConfig) { + try { + const nlsConfig = JSON.parse(rawNlsConfig); + const resolved = nlsConfig.availableLanguages['*']; + _locale = nlsConfig.locale; + // VSCode's default language is 'en' + _language = resolved ? resolved : LANGUAGE_DEFAULT; + _translationsConfigFile = nlsConfig._translationsConfigFile; + } + catch (e) { + } + } + _isNative = true; +} +// Unknown environment +else { + console.error('Unable to resolve platform.'); +} +let _platform = 0 /* Platform.Web */; +if (_isMacintosh) { + _platform = 1 /* Platform.Mac */; +} +else if (_isWindows) { + _platform = 3 /* Platform.Windows */; +} +else if (_isLinux) { + _platform = 2 /* Platform.Linux */; +} +const isWindows = _isWindows; +const isMacintosh = _isMacintosh; +const isLinux = (/* unused pure expression or super */ null && (_isLinux)); +const isNative = (/* unused pure expression or super */ null && (_isNative)); +const platform_isWeb = (/* unused pure expression or super */ null && (_isWeb)); +const isWebWorker = (_isWeb && typeof platform_globals.importScripts === 'function'); +const isIOS = (/* unused pure expression or super */ null && (_isIOS)); +const userAgent = _userAgent; +/** + * The language used for the user interface. The format of + * the string is all lower case (e.g. zh-tw for Traditional + * Chinese) + */ +const language = (/* unused pure expression or super */ null && (_language)); +const setTimeout0IsFaster = (typeof platform_globals.postMessage === 'function' && !platform_globals.importScripts); +/** + * See https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#:~:text=than%204%2C%20then-,set%20timeout%20to%204,-. + * + * Works similarly to `setTimeout(0)` but doesn't suffer from the 4ms artificial delay + * that browsers set when the nesting level is > 5. + */ +const setTimeout0 = (() => { + if (setTimeout0IsFaster) { + const pending = []; + platform_globals.addEventListener('message', (e) => { + if (e.data && e.data.vscodeScheduleAsyncWork) { + for (let i = 0, len = pending.length; i < len; i++) { + const candidate = pending[i]; + if (candidate.id === e.data.vscodeScheduleAsyncWork) { + pending.splice(i, 1); + candidate.callback(); + return; + } + } + } + }); + let lastId = 0; + return (callback) => { + const myId = ++lastId; + pending.push({ + id: myId, + callback: callback + }); + platform_globals.postMessage({ vscodeScheduleAsyncWork: myId }, '*'); + }; + } + return (callback) => setTimeout(callback); +})(); +const OS = (_isMacintosh || _isIOS ? 2 /* OperatingSystem.Macintosh */ : (_isWindows ? 1 /* OperatingSystem.Windows */ : 3 /* OperatingSystem.Linux */)); +let _isLittleEndian = true; +let _isLittleEndianComputed = false; +function isLittleEndian() { + if (!_isLittleEndianComputed) { + _isLittleEndianComputed = true; + const test = new Uint8Array(2); + test[0] = 1; + test[1] = 2; + const view = new Uint16Array(test.buffer); + _isLittleEndian = (view[0] === (2 << 8) + 1); + } + return _isLittleEndian; +} +const isChrome = !!(userAgent && userAgent.indexOf('Chrome') >= 0); +const isFirefox = !!(userAgent && userAgent.indexOf('Firefox') >= 0); +const isSafari = !!(!isChrome && (userAgent && userAgent.indexOf('Safari') >= 0)); +const isEdge = !!(userAgent && userAgent.indexOf('Edg/') >= 0); +const isAndroid = !!(userAgent && userAgent.indexOf('Android') >= 0); + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/stopwatch.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +const hasPerformanceNow = (platform_globals.performance && typeof platform_globals.performance.now === 'function'); +class StopWatch { + constructor(highResolution) { + this._highResolution = hasPerformanceNow && highResolution; + this._startTime = this._now(); + this._stopTime = -1; + } + static create(highResolution = true) { + return new StopWatch(highResolution); + } + stop() { + this._stopTime = this._now(); + } + elapsed() { + if (this._stopTime !== -1) { + return this._stopTime - this._startTime; + } + return this._now() - this._startTime; + } + _now() { + return this._highResolution ? platform_globals.performance.now() : Date.now(); + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/event.js + + + + +// ----------------------------------------------------------------------------------------------------------------------- +// Uncomment the next line to print warnings whenever an emitter with listeners is disposed. That is a sign of code smell. +// ----------------------------------------------------------------------------------------------------------------------- +const _enableDisposeWithListenerWarning = false; +// _enableDisposeWithListenerWarning = Boolean("TRUE"); // causes a linter warning so that it cannot be pushed +// ----------------------------------------------------------------------------------------------------------------------- +// Uncomment the next line to print warnings whenever a snapshotted event is used repeatedly without cleanup. +// See https://github.com/microsoft/vscode/issues/142851 +// ----------------------------------------------------------------------------------------------------------------------- +const _enableSnapshotPotentialLeakWarning = false; +var Event; +(function (Event) { + Event.None = () => lifecycle_Disposable.None; + function _addLeakageTraceLogic(options) { + if (_enableSnapshotPotentialLeakWarning) { + const { onListenerDidAdd: origListenerDidAdd } = options; + const stack = Stacktrace.create(); + let count = 0; + options.onListenerDidAdd = () => { + if (++count === 2) { + console.warn('snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here'); + stack.print(); + } + origListenerDidAdd === null || origListenerDidAdd === void 0 ? void 0 : origListenerDidAdd(); + }; + } + } + /** + * Given an event, returns another event which only fires once. + */ + function once(event) { + return (listener, thisArgs = null, disposables) => { + // we need this, in case the event fires during the listener call + let didFire = false; + let result = undefined; + result = event(e => { + if (didFire) { + return; + } + else if (result) { + result.dispose(); + } + else { + didFire = true; + } + return listener.call(thisArgs, e); + }, null, disposables); + if (didFire) { + result.dispose(); + } + return result; + }; + } + Event.once = once; + /** + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + */ + function map(event, map, disposable) { + return snapshot((listener, thisArgs = null, disposables) => event(i => listener.call(thisArgs, map(i)), null, disposables), disposable); + } + Event.map = map; + /** + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + */ + function forEach(event, each, disposable) { + return snapshot((listener, thisArgs = null, disposables) => event(i => { each(i); listener.call(thisArgs, i); }, null, disposables), disposable); + } + Event.forEach = forEach; + function filter(event, filter, disposable) { + return snapshot((listener, thisArgs = null, disposables) => event(e => filter(e) && listener.call(thisArgs, e), null, disposables), disposable); + } + Event.filter = filter; + /** + * Given an event, returns the same event but typed as `Event`. + */ + function signal(event) { + return event; + } + Event.signal = signal; + function any(...events) { + return (listener, thisArgs = null, disposables) => combinedDisposable(...events.map(event => event(e => listener.call(thisArgs, e), null, disposables))); + } + Event.any = any; + /** + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + */ + function reduce(event, merge, initial, disposable) { + let output = initial; + return map(event, e => { + output = merge(output, e); + return output; + }, disposable); + } + Event.reduce = reduce; + function snapshot(event, disposable) { + let listener; + const options = { + onFirstListenerAdd() { + listener = event(emitter.fire, emitter); + }, + onLastListenerRemove() { + listener === null || listener === void 0 ? void 0 : listener.dispose(); + } + }; + if (!disposable) { + _addLeakageTraceLogic(options); + } + const emitter = new Emitter(options); + disposable === null || disposable === void 0 ? void 0 : disposable.add(emitter); + return emitter.event; + } + function debounce(event, merge, delay = 100, leading = false, leakWarningThreshold, disposable) { + let subscription; + let output = undefined; + let handle = undefined; + let numDebouncedCalls = 0; + const options = { + leakWarningThreshold, + onFirstListenerAdd() { + subscription = event(cur => { + numDebouncedCalls++; + output = merge(output, cur); + if (leading && !handle) { + emitter.fire(output); + output = undefined; + } + clearTimeout(handle); + handle = setTimeout(() => { + const _output = output; + output = undefined; + handle = undefined; + if (!leading || numDebouncedCalls > 1) { + emitter.fire(_output); + } + numDebouncedCalls = 0; + }, delay); + }); + }, + onLastListenerRemove() { + subscription.dispose(); + } + }; + if (!disposable) { + _addLeakageTraceLogic(options); + } + const emitter = new Emitter(options); + disposable === null || disposable === void 0 ? void 0 : disposable.add(emitter); + return emitter.event; + } + Event.debounce = debounce; + /** + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + */ + function latch(event, equals = (a, b) => a === b, disposable) { + let firstCall = true; + let cache; + return filter(event, value => { + const shouldEmit = firstCall || !equals(value, cache); + firstCall = false; + cache = value; + return shouldEmit; + }, disposable); + } + Event.latch = latch; + /** + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + */ + function split(event, isT, disposable) { + return [ + Event.filter(event, isT, disposable), + Event.filter(event, e => !isT(e), disposable), + ]; + } + Event.split = split; + /** + * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned + * event is accessible to "third parties", e.g the event is a public property. Otherwise a leaked listener on the + * returned event causes this utility to leak a listener on the original event. + */ + function buffer(event, flushAfterTimeout = false, _buffer = []) { + let buffer = _buffer.slice(); + let listener = event(e => { + if (buffer) { + buffer.push(e); + } + else { + emitter.fire(e); + } + }); + const flush = () => { + buffer === null || buffer === void 0 ? void 0 : buffer.forEach(e => emitter.fire(e)); + buffer = null; + }; + const emitter = new Emitter({ + onFirstListenerAdd() { + if (!listener) { + listener = event(e => emitter.fire(e)); + } + }, + onFirstListenerDidAdd() { + if (buffer) { + if (flushAfterTimeout) { + setTimeout(flush); + } + else { + flush(); + } + } + }, + onLastListenerRemove() { + if (listener) { + listener.dispose(); + } + listener = null; + } + }); + return emitter.event; + } + Event.buffer = buffer; + class ChainableEvent { + constructor(event) { + this.event = event; + this.disposables = new DisposableStore(); + } + map(fn) { + return new ChainableEvent(map(this.event, fn, this.disposables)); + } + forEach(fn) { + return new ChainableEvent(forEach(this.event, fn, this.disposables)); + } + filter(fn) { + return new ChainableEvent(filter(this.event, fn, this.disposables)); + } + reduce(merge, initial) { + return new ChainableEvent(reduce(this.event, merge, initial, this.disposables)); + } + latch() { + return new ChainableEvent(latch(this.event, undefined, this.disposables)); + } + debounce(merge, delay = 100, leading = false, leakWarningThreshold) { + return new ChainableEvent(debounce(this.event, merge, delay, leading, leakWarningThreshold, this.disposables)); + } + on(listener, thisArgs, disposables) { + return this.event(listener, thisArgs, disposables); + } + once(listener, thisArgs, disposables) { + return once(this.event)(listener, thisArgs, disposables); + } + dispose() { + this.disposables.dispose(); + } + } + function chain(event) { + return new ChainableEvent(event); + } + Event.chain = chain; + function fromNodeEventEmitter(emitter, eventName, map = id => id) { + const fn = (...args) => result.fire(map(...args)); + const onFirstListenerAdd = () => emitter.on(eventName, fn); + const onLastListenerRemove = () => emitter.removeListener(eventName, fn); + const result = new Emitter({ onFirstListenerAdd, onLastListenerRemove }); + return result.event; + } + Event.fromNodeEventEmitter = fromNodeEventEmitter; + function fromDOMEventEmitter(emitter, eventName, map = id => id) { + const fn = (...args) => result.fire(map(...args)); + const onFirstListenerAdd = () => emitter.addEventListener(eventName, fn); + const onLastListenerRemove = () => emitter.removeEventListener(eventName, fn); + const result = new Emitter({ onFirstListenerAdd, onLastListenerRemove }); + return result.event; + } + Event.fromDOMEventEmitter = fromDOMEventEmitter; + function toPromise(event) { + return new Promise(resolve => once(event)(resolve)); + } + Event.toPromise = toPromise; + function runAndSubscribe(event, handler) { + handler(undefined); + return event(e => handler(e)); + } + Event.runAndSubscribe = runAndSubscribe; + function runAndSubscribeWithStore(event, handler) { + let store = null; + function run(e) { + store === null || store === void 0 ? void 0 : store.dispose(); + store = new DisposableStore(); + handler(e, store); + } + run(undefined); + const disposable = event(e => run(e)); + return toDisposable(() => { + disposable.dispose(); + store === null || store === void 0 ? void 0 : store.dispose(); + }); + } + Event.runAndSubscribeWithStore = runAndSubscribeWithStore; + class EmitterObserver { + constructor(obs, store) { + this.obs = obs; + this._counter = 0; + this._hasChanged = false; + const options = { + onFirstListenerAdd: () => { + obs.addObserver(this); + }, + onLastListenerRemove: () => { + obs.removeObserver(this); + } + }; + if (!store) { + _addLeakageTraceLogic(options); + } + this.emitter = new Emitter(options); + if (store) { + store.add(this.emitter); + } + } + beginUpdate(_observable) { + // console.assert(_observable === this.obs); + this._counter++; + } + handleChange(_observable, _change) { + this._hasChanged = true; + } + endUpdate(_observable) { + if (--this._counter === 0) { + if (this._hasChanged) { + this._hasChanged = false; + this.emitter.fire(this.obs.get()); + } + } + } + } + function fromObservable(obs, store) { + const observer = new EmitterObserver(obs, store); + return observer.emitter.event; + } + Event.fromObservable = fromObservable; +})(Event || (Event = {})); +class EventProfiling { + constructor(name) { + this._listenerCount = 0; + this._invocationCount = 0; + this._elapsedOverall = 0; + this._name = `${name}_${EventProfiling._idPool++}`; + } + start(listenerCount) { + this._stopWatch = new StopWatch(true); + this._listenerCount = listenerCount; + } + stop() { + if (this._stopWatch) { + const elapsed = this._stopWatch.elapsed(); + this._elapsedOverall += elapsed; + this._invocationCount += 1; + console.info(`did FIRE ${this._name}: elapsed_ms: ${elapsed.toFixed(5)}, listener: ${this._listenerCount} (elapsed_overall: ${this._elapsedOverall.toFixed(2)}, invocations: ${this._invocationCount})`); + this._stopWatch = undefined; + } + } +} +EventProfiling._idPool = 0; +let _globalLeakWarningThreshold = -1; +class LeakageMonitor { + constructor(customThreshold, name = Math.random().toString(18).slice(2, 5)) { + this.customThreshold = customThreshold; + this.name = name; + this._warnCountdown = 0; + } + dispose() { + if (this._stacks) { + this._stacks.clear(); + } + } + check(stack, listenerCount) { + let threshold = _globalLeakWarningThreshold; + if (typeof this.customThreshold === 'number') { + threshold = this.customThreshold; + } + if (threshold <= 0 || listenerCount < threshold) { + return undefined; + } + if (!this._stacks) { + this._stacks = new Map(); + } + const count = (this._stacks.get(stack.value) || 0); + this._stacks.set(stack.value, count + 1); + this._warnCountdown -= 1; + if (this._warnCountdown <= 0) { + // only warn on first exceed and then every time the limit + // is exceeded by 50% again + this._warnCountdown = threshold * 0.5; + // find most frequent listener and print warning + let topStack; + let topCount = 0; + for (const [stack, count] of this._stacks) { + if (!topStack || topCount < count) { + topStack = stack; + topCount = count; + } + } + console.warn(`[${this.name}] potential listener LEAK detected, having ${listenerCount} listeners already. MOST frequent listener (${topCount}):`); + console.warn(topStack); + } + return () => { + const count = (this._stacks.get(stack.value) || 0); + this._stacks.set(stack.value, count - 1); + }; + } +} +class Stacktrace { + constructor(value) { + this.value = value; + } + static create() { + var _a; + return new Stacktrace((_a = new Error().stack) !== null && _a !== void 0 ? _a : ''); + } + print() { + console.warn(this.value.split('\n').slice(2).join('\n')); + } +} +class Listener { + constructor(callback, callbackThis, stack) { + this.callback = callback; + this.callbackThis = callbackThis; + this.stack = stack; + this.subscription = new SafeDisposable(); + } + invoke(e) { + this.callback.call(this.callbackThis, e); + } +} +/** + * The Emitter can be used to expose an Event to the public + * to fire it from the insides. + * Sample: + class Document { + + private readonly _onDidChange = new Emitter<(value:string)=>any>(); + + public onDidChange = this._onDidChange.event; + + // getter-style + // get onDidChange(): Event<(value:string)=>any> { + // return this._onDidChange.event; + // } + + private _doIt() { + //... + this._onDidChange.fire(value); + } + } + */ +class Emitter { + constructor(options) { + var _a, _b; + this._disposed = false; + this._options = options; + this._leakageMon = _globalLeakWarningThreshold > 0 ? new LeakageMonitor(this._options && this._options.leakWarningThreshold) : undefined; + this._perfMon = ((_a = this._options) === null || _a === void 0 ? void 0 : _a._profName) ? new EventProfiling(this._options._profName) : undefined; + this._deliveryQueue = (_b = this._options) === null || _b === void 0 ? void 0 : _b.deliveryQueue; + } + dispose() { + var _a, _b, _c, _d; + if (!this._disposed) { + this._disposed = true; + // It is bad to have listeners at the time of disposing an emitter, it is worst to have listeners keep the emitter + // alive via the reference that's embedded in their disposables. Therefore we loop over all remaining listeners and + // unset their subscriptions/disposables. Looping and blaming remaining listeners is done on next tick because the + // the following programming pattern is very popular: + // + // const someModel = this._disposables.add(new ModelObject()); // (1) create and register model + // this._disposables.add(someModel.onDidChange(() => { ... }); // (2) subscribe and register model-event listener + // ...later... + // this._disposables.dispose(); disposes (1) then (2): don't warn after (1) but after the "overall dispose" is done + if (this._listeners) { + if (_enableDisposeWithListenerWarning) { + const listeners = Array.from(this._listeners); + queueMicrotask(() => { + var _a; + for (const listener of listeners) { + if (listener.subscription.isset()) { + listener.subscription.unset(); + (_a = listener.stack) === null || _a === void 0 ? void 0 : _a.print(); + } + } + }); + } + this._listeners.clear(); + } + (_a = this._deliveryQueue) === null || _a === void 0 ? void 0 : _a.clear(this); + (_c = (_b = this._options) === null || _b === void 0 ? void 0 : _b.onLastListenerRemove) === null || _c === void 0 ? void 0 : _c.call(_b); + (_d = this._leakageMon) === null || _d === void 0 ? void 0 : _d.dispose(); + } + } + /** + * For the public to allow to subscribe + * to events from this Emitter + */ + get event() { + if (!this._event) { + this._event = (callback, thisArgs, disposables) => { + var _a, _b, _c; + if (!this._listeners) { + this._listeners = new linkedList_LinkedList(); + } + const firstListener = this._listeners.isEmpty(); + if (firstListener && ((_a = this._options) === null || _a === void 0 ? void 0 : _a.onFirstListenerAdd)) { + this._options.onFirstListenerAdd(this); + } + let removeMonitor; + let stack; + if (this._leakageMon && this._listeners.size >= 30) { + // check and record this emitter for potential leakage + stack = Stacktrace.create(); + removeMonitor = this._leakageMon.check(stack, this._listeners.size + 1); + } + if (_enableDisposeWithListenerWarning) { + stack = stack !== null && stack !== void 0 ? stack : Stacktrace.create(); + } + const listener = new Listener(callback, thisArgs, stack); + const removeListener = this._listeners.push(listener); + if (firstListener && ((_b = this._options) === null || _b === void 0 ? void 0 : _b.onFirstListenerDidAdd)) { + this._options.onFirstListenerDidAdd(this); + } + if ((_c = this._options) === null || _c === void 0 ? void 0 : _c.onListenerDidAdd) { + this._options.onListenerDidAdd(this, callback, thisArgs); + } + const result = listener.subscription.set(() => { + removeMonitor === null || removeMonitor === void 0 ? void 0 : removeMonitor(); + if (!this._disposed) { + removeListener(); + if (this._options && this._options.onLastListenerRemove) { + const hasListeners = (this._listeners && !this._listeners.isEmpty()); + if (!hasListeners) { + this._options.onLastListenerRemove(this); + } + } + } + }); + if (disposables instanceof DisposableStore) { + disposables.add(result); + } + else if (Array.isArray(disposables)) { + disposables.push(result); + } + return result; + }; + } + return this._event; + } + /** + * To be kept private to fire an event to + * subscribers + */ + fire(event) { + var _a, _b; + if (this._listeners) { + // put all [listener,event]-pairs into delivery queue + // then emit all event. an inner/nested event might be + // the driver of this + if (!this._deliveryQueue) { + this._deliveryQueue = new PrivateEventDeliveryQueue(); + } + for (const listener of this._listeners) { + this._deliveryQueue.push(this, listener, event); + } + // start/stop performance insight collection + (_a = this._perfMon) === null || _a === void 0 ? void 0 : _a.start(this._deliveryQueue.size); + this._deliveryQueue.deliver(); + (_b = this._perfMon) === null || _b === void 0 ? void 0 : _b.stop(); + } + } +} +class EventDeliveryQueue { + constructor() { + this._queue = new linkedList_LinkedList(); + } + get size() { + return this._queue.size; + } + push(emitter, listener, event) { + this._queue.push(new EventDeliveryQueueElement(emitter, listener, event)); + } + clear(emitter) { + const newQueue = new linkedList_LinkedList(); + for (const element of this._queue) { + if (element.emitter !== emitter) { + newQueue.push(element); + } + } + this._queue = newQueue; + } + deliver() { + while (this._queue.size > 0) { + const element = this._queue.shift(); + try { + element.listener.invoke(element.event); + } + catch (e) { + onUnexpectedError(e); + } + } + } +} +/** + * An `EventDeliveryQueue` that is guaranteed to be used by a single `Emitter`. + */ +class PrivateEventDeliveryQueue extends EventDeliveryQueue { + clear(emitter) { + // Here we can just clear the entire linked list because + // all elements are guaranteed to belong to this emitter + this._queue.clear(); + } +} +class EventDeliveryQueueElement { + constructor(emitter, listener, event) { + this.emitter = emitter; + this.listener = listener; + this.event = event; + } +} +class PauseableEmitter extends (/* unused pure expression or super */ null && (Emitter)) { + constructor(options) { + super(options); + this._isPaused = 0; + this._eventQueue = new LinkedList(); + this._mergeFn = options === null || options === void 0 ? void 0 : options.merge; + } + pause() { + this._isPaused++; + } + resume() { + if (this._isPaused !== 0 && --this._isPaused === 0) { + if (this._mergeFn) { + // use the merge function to create a single composite + // event. make a copy in case firing pauses this emitter + const events = Array.from(this._eventQueue); + this._eventQueue.clear(); + super.fire(this._mergeFn(events)); + } + else { + // no merging, fire each event individually and test + // that this emitter isn't paused halfway through + while (!this._isPaused && this._eventQueue.size !== 0) { + super.fire(this._eventQueue.shift()); + } + } + } + } + fire(event) { + if (this._listeners) { + if (this._isPaused !== 0) { + this._eventQueue.push(event); + } + else { + super.fire(event); + } + } + } +} +class DebounceEmitter extends (/* unused pure expression or super */ null && (PauseableEmitter)) { + constructor(options) { + var _a; + super(options); + this._delay = (_a = options.delay) !== null && _a !== void 0 ? _a : 100; + } + fire(event) { + if (!this._handle) { + this.pause(); + this._handle = setTimeout(() => { + this._handle = undefined; + this.resume(); + }, this._delay); + } + super.fire(event); + } +} +/** + * The EventBufferer is useful in situations in which you want + * to delay firing your events during some code. + * You can wrap that code and be sure that the event will not + * be fired during that wrap. + * + * ``` + * const emitter: Emitter; + * const delayer = new EventDelayer(); + * const delayedEvent = delayer.wrapEvent(emitter.event); + * + * delayedEvent(console.log); + * + * delayer.bufferEvents(() => { + * emitter.fire(); // event will not be fired yet + * }); + * + * // event will only be fired at this point + * ``` + */ +class EventBufferer { + constructor() { + this.buffers = []; + } + wrapEvent(event) { + return (listener, thisArgs, disposables) => { + return event(i => { + const buffer = this.buffers[this.buffers.length - 1]; + if (buffer) { + buffer.push(() => listener.call(thisArgs, i)); + } + else { + listener.call(thisArgs, i); + } + }, undefined, disposables); + }; + } + bufferEvents(fn) { + const buffer = []; + this.buffers.push(buffer); + const r = fn(); + this.buffers.pop(); + buffer.forEach(flush => flush()); + return r; + } +} +/** + * A Relay is an event forwarder which functions as a replugabble event pipe. + * Once created, you can connect an input event to it and it will simply forward + * events from that input event through its own `event` property. The `input` + * can be changed at any point in time. + */ +class Relay { + constructor() { + this.listening = false; + this.inputEvent = Event.None; + this.inputEventListener = Disposable.None; + this.emitter = new Emitter({ + onFirstListenerDidAdd: () => { + this.listening = true; + this.inputEventListener = this.inputEvent(this.emitter.fire, this.emitter); + }, + onLastListenerRemove: () => { + this.listening = false; + this.inputEventListener.dispose(); + } + }); + this.event = this.emitter.event; + } + set input(event) { + this.inputEvent = event; + if (this.listening) { + this.inputEventListener.dispose(); + this.inputEventListener = event(this.emitter.fire, this.emitter); + } + } + dispose() { + this.inputEventListener.dispose(); + this.emitter.dispose(); + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/types.js +/** + * @returns whether the provided parameter is a JavaScript Array or not. + */ +function types_isArray(array) { + return Array.isArray(array); +} +/** + * @returns whether the provided parameter is a JavaScript String or not. + */ +function isString(str) { + return (typeof str === 'string'); +} +/** + * + * @returns whether the provided parameter is of type `object` but **not** + * `null`, an `array`, a `regexp`, nor a `date`. + */ +function types_isObject(obj) { + // The method can't do a type cast since there are type (like strings) which + // are subclasses of any put not positvely matched by the function. Hence type + // narrowing results in wrong results. + return typeof obj === 'object' + && obj !== null + && !Array.isArray(obj) + && !(obj instanceof RegExp) + && !(obj instanceof Date); +} +/** + * + * @returns whether the provided parameter is of type `Buffer` or Uint8Array dervived type + */ +function types_isTypedArray(obj) { + const TypedArray = Object.getPrototypeOf(Uint8Array); + return typeof obj === 'object' + && obj instanceof TypedArray; +} +/** + * In **contrast** to just checking `typeof` this will return `false` for `NaN`. + * @returns whether the provided parameter is a JavaScript Number or not. + */ +function isNumber(obj) { + return (typeof obj === 'number' && !isNaN(obj)); +} +/** + * @returns whether the provided parameter is an Iterable, casting to the given generic + */ +function isIterable(obj) { + return !!obj && typeof obj[Symbol.iterator] === 'function'; +} +/** + * @returns whether the provided parameter is a JavaScript Boolean or not. + */ +function isBoolean(obj) { + return (obj === true || obj === false); +} +/** + * @returns whether the provided parameter is undefined. + */ +function isUndefined(obj) { + return (typeof obj === 'undefined'); +} +/** + * @returns whether the provided parameter is defined. + */ +function isDefined(arg) { + return !types_isUndefinedOrNull(arg); +} +/** + * @returns whether the provided parameter is undefined or null. + */ +function types_isUndefinedOrNull(obj) { + return (isUndefined(obj) || obj === null); +} +function assertType(condition, type) { + if (!condition) { + throw new Error(type ? `Unexpected type, expected '${type}'` : 'Unexpected type'); + } +} +/** + * Asserts that the argument passed in is neither undefined nor null. + */ +function assertIsDefined(arg) { + if (types_isUndefinedOrNull(arg)) { + throw new Error('Assertion Failed: argument is undefined or null'); + } + return arg; +} +/** + * @returns whether the provided parameter is a JavaScript Function or not. + */ +function isFunction(obj) { + return (typeof obj === 'function'); +} +function validateConstraints(args, constraints) { + const len = Math.min(args.length, constraints.length); + for (let i = 0; i < len; i++) { + validateConstraint(args[i], constraints[i]); + } +} +function validateConstraint(arg, constraint) { + if (isString(constraint)) { + if (typeof arg !== constraint) { + throw new Error(`argument does not match constraint: typeof ${constraint}`); + } + } + else if (isFunction(constraint)) { + try { + if (arg instanceof constraint) { + return; + } + } + catch (_a) { + // ignore + } + if (!types_isUndefinedOrNull(arg) && arg.constructor === constraint) { + return; + } + if (constraint.length === 1 && constraint.call(undefined, arg) === true) { + return; + } + throw new Error(`argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true`); + } +} +function getAllPropertyNames(obj) { + let res = []; + let proto = Object.getPrototypeOf(obj); + while (Object.prototype !== proto) { + res = res.concat(Object.getOwnPropertyNames(proto)); + proto = Object.getPrototypeOf(proto); + } + return res; +} +function getAllMethodNames(obj) { + const methods = []; + for (const prop of getAllPropertyNames(obj)) { + if (typeof obj[prop] === 'function') { + methods.push(prop); + } + } + return methods; +} +function createProxyObject(methodNames, invoke) { + const createProxyMethod = (method) => { + return function () { + const args = Array.prototype.slice.call(arguments, 0); + return invoke(method, args); + }; + }; + const result = {}; + for (const methodName of methodNames) { + result[methodName] = createProxyMethod(methodName); + } + return result; +} +/** + * Converts null to undefined, passes all other values through. + */ +function withNullAsUndefined(x) { + return x === null ? undefined : x; +} +function assertNever(value, message = 'Unreachable') { + throw new Error(message); +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/cache.js +/** + * Uses a LRU cache to make a given parametrized function cached. + * Caches just the last value. + * The key must be JSON serializable. +*/ +class LRUCachedFunction { + constructor(fn) { + this.fn = fn; + this.lastCache = undefined; + this.lastArgKey = undefined; + } + get(arg) { + const key = JSON.stringify(arg); + if (this.lastArgKey !== key) { + this.lastArgKey = key; + this.lastCache = this.fn(arg); + } + return this.lastCache; + } +} +/** + * Uses an unbounded cache (referential equality) to memoize the results of the given function. +*/ +class CachedFunction { + constructor(fn) { + this.fn = fn; + this._map = new Map(); + } + get cachedValues() { + return this._map; + } + get(arg) { + if (this._map.has(arg)) { + return this._map.get(arg); + } + const value = this.fn(arg); + this._map.set(arg, value); + return value; + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/lazy.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class Lazy { + constructor(executor) { + this.executor = executor; + this._didRun = false; + } + /** + * True if the lazy value has been resolved. + */ + hasValue() { return this._didRun; } + /** + * Get the wrapped value. + * + * This will force evaluation of the lazy value if it has not been resolved yet. Lazy values are only + * resolved once. `getValue` will re-throw exceptions that are hit while resolving the value + */ + getValue() { + if (!this._didRun) { + try { + this._value = this.executor(); + } + catch (err) { + this._error = err; + } + finally { + this._didRun = true; + } + } + if (this._error) { + throw this._error; + } + return this._value; + } + /** + * Get the wrapped value without forcing evaluation. + */ + get rawValue() { return this._value; } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/strings.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +var strings_a; + + +function isFalsyOrWhitespace(str) { + if (!str || typeof str !== 'string') { + return true; + } + return str.trim().length === 0; +} +const _formatRegexp = /{(\d+)}/g; +/** + * Helper to produce a string with a variable number of arguments. Insert variable segments + * into the string using the {n} notation where N is the index of the argument following the string. + * @param value string to which formatting is applied + * @param args replacements for {n}-entries + */ +function format(value, ...args) { + if (args.length === 0) { + return value; + } + return value.replace(_formatRegexp, function (match, group) { + const idx = parseInt(group, 10); + return isNaN(idx) || idx < 0 || idx >= args.length ? + match : + args[idx]; + }); +} +/** + * Converts HTML characters inside the string to use entities instead. Makes the string safe from + * being used e.g. in HTMLElement.innerHTML. + */ +function strings_escape(html) { + return html.replace(/[<>&]/g, function (match) { + switch (match) { + case '<': return '<'; + case '>': return '>'; + case '&': return '&'; + default: return match; + } + }); +} +/** + * Escapes regular expression characters in a given string + */ +function escapeRegExpCharacters(value) { + return value.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g, '\\$&'); +} +/** + * Removes all occurrences of needle from the beginning and end of haystack. + * @param haystack string to trim + * @param needle the thing to trim (default is a blank) + */ +function trim(haystack, needle = ' ') { + const trimmed = ltrim(haystack, needle); + return rtrim(trimmed, needle); +} +/** + * Removes all occurrences of needle from the beginning of haystack. + * @param haystack string to trim + * @param needle the thing to trim + */ +function ltrim(haystack, needle) { + if (!haystack || !needle) { + return haystack; + } + const needleLen = needle.length; + if (needleLen === 0 || haystack.length === 0) { + return haystack; + } + let offset = 0; + while (haystack.indexOf(needle, offset) === offset) { + offset = offset + needleLen; + } + return haystack.substring(offset); +} +/** + * Removes all occurrences of needle from the end of haystack. + * @param haystack string to trim + * @param needle the thing to trim + */ +function rtrim(haystack, needle) { + if (!haystack || !needle) { + return haystack; + } + const needleLen = needle.length, haystackLen = haystack.length; + if (needleLen === 0 || haystackLen === 0) { + return haystack; + } + let offset = haystackLen, idx = -1; + while (true) { + idx = haystack.lastIndexOf(needle, offset - 1); + if (idx === -1 || idx + needleLen !== offset) { + break; + } + if (idx === 0) { + return ''; + } + offset = idx; + } + return haystack.substring(0, offset); +} +function convertSimple2RegExpPattern(pattern) { + return pattern.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g, '\\$&').replace(/[\*]/g, '.*'); +} +function stripWildcards(pattern) { + return pattern.replace(/\*/g, ''); +} +function createRegExp(searchString, isRegex, options = {}) { + if (!searchString) { + throw new Error('Cannot create regex from empty string'); + } + if (!isRegex) { + searchString = escapeRegExpCharacters(searchString); + } + if (options.wholeWord) { + if (!/\B/.test(searchString.charAt(0))) { + searchString = '\\b' + searchString; + } + if (!/\B/.test(searchString.charAt(searchString.length - 1))) { + searchString = searchString + '\\b'; + } + } + let modifiers = ''; + if (options.global) { + modifiers += 'g'; + } + if (!options.matchCase) { + modifiers += 'i'; + } + if (options.multiline) { + modifiers += 'm'; + } + if (options.unicode) { + modifiers += 'u'; + } + return new RegExp(searchString, modifiers); +} +function regExpLeadsToEndlessLoop(regexp) { + // Exit early if it's one of these special cases which are meant to match + // against an empty string + if (regexp.source === '^' || regexp.source === '^$' || regexp.source === '$' || regexp.source === '^\\s*$') { + return false; + } + // We check against an empty string. If the regular expression doesn't advance + // (e.g. ends in an endless loop) it will match an empty string. + const match = regexp.exec(''); + return !!(match && regexp.lastIndex === 0); +} +function regExpFlags(regexp) { + return (regexp.global ? 'g' : '') + + (regexp.ignoreCase ? 'i' : '') + + (regexp.multiline ? 'm' : '') + + (regexp /* standalone editor compilation */.unicode ? 'u' : ''); +} +function splitLines(str) { + return str.split(/\r\n|\r|\n/); +} +/** + * Returns first index of the string that is not whitespace. + * If string is empty or contains only whitespaces, returns -1 + */ +function firstNonWhitespaceIndex(str) { + for (let i = 0, len = str.length; i < len; i++) { + const chCode = str.charCodeAt(i); + if (chCode !== 32 /* CharCode.Space */ && chCode !== 9 /* CharCode.Tab */) { + return i; + } + } + return -1; +} +/** + * Returns the leading whitespace of the string. + * If the string contains only whitespaces, returns entire string + */ +function getLeadingWhitespace(str, start = 0, end = str.length) { + for (let i = start; i < end; i++) { + const chCode = str.charCodeAt(i); + if (chCode !== 32 /* CharCode.Space */ && chCode !== 9 /* CharCode.Tab */) { + return str.substring(start, i); + } + } + return str.substring(start, end); +} +/** + * Returns last index of the string that is not whitespace. + * If string is empty or contains only whitespaces, returns -1 + */ +function lastNonWhitespaceIndex(str, startIndex = str.length - 1) { + for (let i = startIndex; i >= 0; i--) { + const chCode = str.charCodeAt(i); + if (chCode !== 32 /* CharCode.Space */ && chCode !== 9 /* CharCode.Tab */) { + return i; + } + } + return -1; +} +function compare(a, b) { + if (a < b) { + return -1; + } + else if (a > b) { + return 1; + } + else { + return 0; + } +} +function compareSubstring(a, b, aStart = 0, aEnd = a.length, bStart = 0, bEnd = b.length) { + for (; aStart < aEnd && bStart < bEnd; aStart++, bStart++) { + const codeA = a.charCodeAt(aStart); + const codeB = b.charCodeAt(bStart); + if (codeA < codeB) { + return -1; + } + else if (codeA > codeB) { + return 1; + } + } + const aLen = aEnd - aStart; + const bLen = bEnd - bStart; + if (aLen < bLen) { + return -1; + } + else if (aLen > bLen) { + return 1; + } + return 0; +} +function compareIgnoreCase(a, b) { + return compareSubstringIgnoreCase(a, b, 0, a.length, 0, b.length); +} +function compareSubstringIgnoreCase(a, b, aStart = 0, aEnd = a.length, bStart = 0, bEnd = b.length) { + for (; aStart < aEnd && bStart < bEnd; aStart++, bStart++) { + let codeA = a.charCodeAt(aStart); + let codeB = b.charCodeAt(bStart); + if (codeA === codeB) { + // equal + continue; + } + if (codeA >= 128 || codeB >= 128) { + // not ASCII letters -> fallback to lower-casing strings + return compareSubstring(a.toLowerCase(), b.toLowerCase(), aStart, aEnd, bStart, bEnd); + } + // mapper lower-case ascii letter onto upper-case varinats + // [97-122] (lower ascii) --> [65-90] (upper ascii) + if (isLowerAsciiLetter(codeA)) { + codeA -= 32; + } + if (isLowerAsciiLetter(codeB)) { + codeB -= 32; + } + // compare both code points + const diff = codeA - codeB; + if (diff === 0) { + continue; + } + return diff; + } + const aLen = aEnd - aStart; + const bLen = bEnd - bStart; + if (aLen < bLen) { + return -1; + } + else if (aLen > bLen) { + return 1; + } + return 0; +} +function isAsciiDigit(code) { + return code >= 48 /* CharCode.Digit0 */ && code <= 57 /* CharCode.Digit9 */; +} +function isLowerAsciiLetter(code) { + return code >= 97 /* CharCode.a */ && code <= 122 /* CharCode.z */; +} +function isUpperAsciiLetter(code) { + return code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */; +} +function equalsIgnoreCase(a, b) { + return a.length === b.length && compareSubstringIgnoreCase(a, b) === 0; +} +function startsWithIgnoreCase(str, candidate) { + const candidateLength = candidate.length; + if (candidate.length > str.length) { + return false; + } + return compareSubstringIgnoreCase(str, candidate, 0, candidateLength) === 0; +} +/** + * @returns the length of the common prefix of the two strings. + */ +function commonPrefixLength(a, b) { + const len = Math.min(a.length, b.length); + let i; + for (i = 0; i < len; i++) { + if (a.charCodeAt(i) !== b.charCodeAt(i)) { + return i; + } + } + return len; +} +/** + * @returns the length of the common suffix of the two strings. + */ +function commonSuffixLength(a, b) { + const len = Math.min(a.length, b.length); + let i; + const aLastIndex = a.length - 1; + const bLastIndex = b.length - 1; + for (i = 0; i < len; i++) { + if (a.charCodeAt(aLastIndex - i) !== b.charCodeAt(bLastIndex - i)) { + return i; + } + } + return len; +} +/** + * See http://en.wikipedia.org/wiki/Surrogate_pair + */ +function isHighSurrogate(charCode) { + return (0xD800 <= charCode && charCode <= 0xDBFF); +} +/** + * See http://en.wikipedia.org/wiki/Surrogate_pair + */ +function isLowSurrogate(charCode) { + return (0xDC00 <= charCode && charCode <= 0xDFFF); +} +/** + * See http://en.wikipedia.org/wiki/Surrogate_pair + */ +function computeCodePoint(highSurrogate, lowSurrogate) { + return ((highSurrogate - 0xD800) << 10) + (lowSurrogate - 0xDC00) + 0x10000; +} +/** + * get the code point that begins at offset `offset` + */ +function getNextCodePoint(str, len, offset) { + const charCode = str.charCodeAt(offset); + if (isHighSurrogate(charCode) && offset + 1 < len) { + const nextCharCode = str.charCodeAt(offset + 1); + if (isLowSurrogate(nextCharCode)) { + return computeCodePoint(charCode, nextCharCode); + } + } + return charCode; +} +/** + * get the code point that ends right before offset `offset` + */ +function getPrevCodePoint(str, offset) { + const charCode = str.charCodeAt(offset - 1); + if (isLowSurrogate(charCode) && offset > 1) { + const prevCharCode = str.charCodeAt(offset - 2); + if (isHighSurrogate(prevCharCode)) { + return computeCodePoint(prevCharCode, charCode); + } + } + return charCode; +} +class CodePointIterator { + constructor(str, offset = 0) { + this._str = str; + this._len = str.length; + this._offset = offset; + } + get offset() { + return this._offset; + } + setOffset(offset) { + this._offset = offset; + } + prevCodePoint() { + const codePoint = getPrevCodePoint(this._str, this._offset); + this._offset -= (codePoint >= 65536 /* Constants.UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1); + return codePoint; + } + nextCodePoint() { + const codePoint = getNextCodePoint(this._str, this._len, this._offset); + this._offset += (codePoint >= 65536 /* Constants.UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1); + return codePoint; + } + eol() { + return (this._offset >= this._len); + } +} +class GraphemeIterator { + constructor(str, offset = 0) { + this._iterator = new CodePointIterator(str, offset); + } + get offset() { + return this._iterator.offset; + } + nextGraphemeLength() { + const graphemeBreakTree = GraphemeBreakTree.getInstance(); + const iterator = this._iterator; + const initialOffset = iterator.offset; + let graphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.nextCodePoint()); + while (!iterator.eol()) { + const offset = iterator.offset; + const nextGraphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.nextCodePoint()); + if (breakBetweenGraphemeBreakType(graphemeBreakType, nextGraphemeBreakType)) { + // move iterator back + iterator.setOffset(offset); + break; + } + graphemeBreakType = nextGraphemeBreakType; + } + return (iterator.offset - initialOffset); + } + prevGraphemeLength() { + const graphemeBreakTree = GraphemeBreakTree.getInstance(); + const iterator = this._iterator; + const initialOffset = iterator.offset; + let graphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.prevCodePoint()); + while (iterator.offset > 0) { + const offset = iterator.offset; + const prevGraphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.prevCodePoint()); + if (breakBetweenGraphemeBreakType(prevGraphemeBreakType, graphemeBreakType)) { + // move iterator back + iterator.setOffset(offset); + break; + } + graphemeBreakType = prevGraphemeBreakType; + } + return (initialOffset - iterator.offset); + } + eol() { + return this._iterator.eol(); + } +} +function nextCharLength(str, initialOffset) { + const iterator = new GraphemeIterator(str, initialOffset); + return iterator.nextGraphemeLength(); +} +function prevCharLength(str, initialOffset) { + const iterator = new GraphemeIterator(str, initialOffset); + return iterator.prevGraphemeLength(); +} +function getCharContainingOffset(str, offset) { + if (offset > 0 && isLowSurrogate(str.charCodeAt(offset))) { + offset--; + } + const endOffset = offset + nextCharLength(str, offset); + const startOffset = endOffset - prevCharLength(str, endOffset); + return [startOffset, endOffset]; +} +/** + * Generated using https://github.com/alexdima/unicode-utils/blob/main/rtl-test.js + */ +const CONTAINS_RTL = /(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/; +/** + * Returns true if `str` contains any Unicode character that is classified as "R" or "AL". + */ +function containsRTL(str) { + return CONTAINS_RTL.test(str); +} +const IS_BASIC_ASCII = /^[\t\n\r\x20-\x7E]*$/; +/** + * Returns true if `str` contains only basic ASCII characters in the range 32 - 126 (including 32 and 126) or \n, \r, \t + */ +function strings_isBasicASCII(str) { + return IS_BASIC_ASCII.test(str); +} +const UNUSUAL_LINE_TERMINATORS = /[\u2028\u2029]/; // LINE SEPARATOR (LS) or PARAGRAPH SEPARATOR (PS) +/** + * Returns true if `str` contains unusual line terminators, like LS or PS + */ +function containsUnusualLineTerminators(str) { + return UNUSUAL_LINE_TERMINATORS.test(str); +} +function isFullWidthCharacter(charCode) { + // Do a cheap trick to better support wrapping of wide characters, treat them as 2 columns + // http://jrgraphix.net/research/unicode_blocks.php + // 2E80 - 2EFF CJK Radicals Supplement + // 2F00 - 2FDF Kangxi Radicals + // 2FF0 - 2FFF Ideographic Description Characters + // 3000 - 303F CJK Symbols and Punctuation + // 3040 - 309F Hiragana + // 30A0 - 30FF Katakana + // 3100 - 312F Bopomofo + // 3130 - 318F Hangul Compatibility Jamo + // 3190 - 319F Kanbun + // 31A0 - 31BF Bopomofo Extended + // 31F0 - 31FF Katakana Phonetic Extensions + // 3200 - 32FF Enclosed CJK Letters and Months + // 3300 - 33FF CJK Compatibility + // 3400 - 4DBF CJK Unified Ideographs Extension A + // 4DC0 - 4DFF Yijing Hexagram Symbols + // 4E00 - 9FFF CJK Unified Ideographs + // A000 - A48F Yi Syllables + // A490 - A4CF Yi Radicals + // AC00 - D7AF Hangul Syllables + // [IGNORE] D800 - DB7F High Surrogates + // [IGNORE] DB80 - DBFF High Private Use Surrogates + // [IGNORE] DC00 - DFFF Low Surrogates + // [IGNORE] E000 - F8FF Private Use Area + // F900 - FAFF CJK Compatibility Ideographs + // [IGNORE] FB00 - FB4F Alphabetic Presentation Forms + // [IGNORE] FB50 - FDFF Arabic Presentation Forms-A + // [IGNORE] FE00 - FE0F Variation Selectors + // [IGNORE] FE20 - FE2F Combining Half Marks + // [IGNORE] FE30 - FE4F CJK Compatibility Forms + // [IGNORE] FE50 - FE6F Small Form Variants + // [IGNORE] FE70 - FEFF Arabic Presentation Forms-B + // FF00 - FFEF Halfwidth and Fullwidth Forms + // [https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms] + // of which FF01 - FF5E fullwidth ASCII of 21 to 7E + // [IGNORE] and FF65 - FFDC halfwidth of Katakana and Hangul + // [IGNORE] FFF0 - FFFF Specials + return ((charCode >= 0x2E80 && charCode <= 0xD7AF) + || (charCode >= 0xF900 && charCode <= 0xFAFF) + || (charCode >= 0xFF01 && charCode <= 0xFF5E)); +} +/** + * A fast function (therefore imprecise) to check if code points are emojis. + * Generated using https://github.com/alexdima/unicode-utils/blob/main/emoji-test.js + */ +function isEmojiImprecise(x) { + return ((x >= 0x1F1E6 && x <= 0x1F1FF) || (x === 8986) || (x === 8987) || (x === 9200) + || (x === 9203) || (x >= 9728 && x <= 10175) || (x === 11088) || (x === 11093) + || (x >= 127744 && x <= 128591) || (x >= 128640 && x <= 128764) + || (x >= 128992 && x <= 129008) || (x >= 129280 && x <= 129535) + || (x >= 129648 && x <= 129782)); +} +// -- UTF-8 BOM +const UTF8_BOM_CHARACTER = String.fromCharCode(65279 /* CharCode.UTF8_BOM */); +function startsWithUTF8BOM(str) { + return !!(str && str.length > 0 && str.charCodeAt(0) === 65279 /* CharCode.UTF8_BOM */); +} +function containsUppercaseCharacter(target, ignoreEscapedChars = false) { + if (!target) { + return false; + } + if (ignoreEscapedChars) { + target = target.replace(/\\./g, ''); + } + return target.toLowerCase() !== target; +} +/** + * Produces 'a'-'z', followed by 'A'-'Z'... followed by 'a'-'z', etc. + */ +function singleLetterHash(n) { + const LETTERS_CNT = (90 /* CharCode.Z */ - 65 /* CharCode.A */ + 1); + n = n % (2 * LETTERS_CNT); + if (n < LETTERS_CNT) { + return String.fromCharCode(97 /* CharCode.a */ + n); + } + return String.fromCharCode(65 /* CharCode.A */ + n - LETTERS_CNT); +} +function breakBetweenGraphemeBreakType(breakTypeA, breakTypeB) { + // http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundary_Rules + // !!! Let's make the common case a bit faster + if (breakTypeA === 0 /* GraphemeBreakType.Other */) { + // see https://www.unicode.org/Public/13.0.0/ucd/auxiliary/GraphemeBreakTest-13.0.0d10.html#table + return (breakTypeB !== 5 /* GraphemeBreakType.Extend */ && breakTypeB !== 7 /* GraphemeBreakType.SpacingMark */); + } + // Do not break between a CR and LF. Otherwise, break before and after controls. + // GB3 CR × LF + // GB4 (Control | CR | LF) ÷ + // GB5 ÷ (Control | CR | LF) + if (breakTypeA === 2 /* GraphemeBreakType.CR */) { + if (breakTypeB === 3 /* GraphemeBreakType.LF */) { + return false; // GB3 + } + } + if (breakTypeA === 4 /* GraphemeBreakType.Control */ || breakTypeA === 2 /* GraphemeBreakType.CR */ || breakTypeA === 3 /* GraphemeBreakType.LF */) { + return true; // GB4 + } + if (breakTypeB === 4 /* GraphemeBreakType.Control */ || breakTypeB === 2 /* GraphemeBreakType.CR */ || breakTypeB === 3 /* GraphemeBreakType.LF */) { + return true; // GB5 + } + // Do not break Hangul syllable sequences. + // GB6 L × (L | V | LV | LVT) + // GB7 (LV | V) × (V | T) + // GB8 (LVT | T) × T + if (breakTypeA === 8 /* GraphemeBreakType.L */) { + if (breakTypeB === 8 /* GraphemeBreakType.L */ || breakTypeB === 9 /* GraphemeBreakType.V */ || breakTypeB === 11 /* GraphemeBreakType.LV */ || breakTypeB === 12 /* GraphemeBreakType.LVT */) { + return false; // GB6 + } + } + if (breakTypeA === 11 /* GraphemeBreakType.LV */ || breakTypeA === 9 /* GraphemeBreakType.V */) { + if (breakTypeB === 9 /* GraphemeBreakType.V */ || breakTypeB === 10 /* GraphemeBreakType.T */) { + return false; // GB7 + } + } + if (breakTypeA === 12 /* GraphemeBreakType.LVT */ || breakTypeA === 10 /* GraphemeBreakType.T */) { + if (breakTypeB === 10 /* GraphemeBreakType.T */) { + return false; // GB8 + } + } + // Do not break before extending characters or ZWJ. + // GB9 × (Extend | ZWJ) + if (breakTypeB === 5 /* GraphemeBreakType.Extend */ || breakTypeB === 13 /* GraphemeBreakType.ZWJ */) { + return false; // GB9 + } + // The GB9a and GB9b rules only apply to extended grapheme clusters: + // Do not break before SpacingMarks, or after Prepend characters. + // GB9a × SpacingMark + // GB9b Prepend × + if (breakTypeB === 7 /* GraphemeBreakType.SpacingMark */) { + return false; // GB9a + } + if (breakTypeA === 1 /* GraphemeBreakType.Prepend */) { + return false; // GB9b + } + // Do not break within emoji modifier sequences or emoji zwj sequences. + // GB11 \p{Extended_Pictographic} Extend* ZWJ × \p{Extended_Pictographic} + if (breakTypeA === 13 /* GraphemeBreakType.ZWJ */ && breakTypeB === 14 /* GraphemeBreakType.Extended_Pictographic */) { + // Note: we are not implementing the rule entirely here to avoid introducing states + return false; // GB11 + } + // GB12 sot (RI RI)* RI × RI + // GB13 [^RI] (RI RI)* RI × RI + if (breakTypeA === 6 /* GraphemeBreakType.Regional_Indicator */ && breakTypeB === 6 /* GraphemeBreakType.Regional_Indicator */) { + // Note: we are not implementing the rule entirely here to avoid introducing states + return false; // GB12 & GB13 + } + // GB999 Any ÷ Any + return true; +} +class GraphemeBreakTree { + constructor() { + this._data = getGraphemeBreakRawData(); + } + static getInstance() { + if (!GraphemeBreakTree._INSTANCE) { + GraphemeBreakTree._INSTANCE = new GraphemeBreakTree(); + } + return GraphemeBreakTree._INSTANCE; + } + getGraphemeBreakType(codePoint) { + // !!! Let's make 7bit ASCII a bit faster: 0..31 + if (codePoint < 32) { + if (codePoint === 10 /* CharCode.LineFeed */) { + return 3 /* GraphemeBreakType.LF */; + } + if (codePoint === 13 /* CharCode.CarriageReturn */) { + return 2 /* GraphemeBreakType.CR */; + } + return 4 /* GraphemeBreakType.Control */; + } + // !!! Let's make 7bit ASCII a bit faster: 32..126 + if (codePoint < 127) { + return 0 /* GraphemeBreakType.Other */; + } + const data = this._data; + const nodeCount = data.length / 3; + let nodeIndex = 1; + while (nodeIndex <= nodeCount) { + if (codePoint < data[3 * nodeIndex]) { + // go left + nodeIndex = 2 * nodeIndex; + } + else if (codePoint > data[3 * nodeIndex + 1]) { + // go right + nodeIndex = 2 * nodeIndex + 1; + } + else { + // hit + return data[3 * nodeIndex + 2]; + } + } + return 0 /* GraphemeBreakType.Other */; + } +} +GraphemeBreakTree._INSTANCE = null; +function getGraphemeBreakRawData() { + // generated using https://github.com/alexdima/unicode-utils/blob/main/grapheme-break.js + return JSON.parse('[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]'); +} +//#endregion +/** + * Computes the offset after performing a left delete on the given string, + * while considering unicode grapheme/emoji rules. +*/ +function getLeftDeleteOffset(offset, str) { + if (offset === 0) { + return 0; + } + // Try to delete emoji part. + const emojiOffset = getOffsetBeforeLastEmojiComponent(offset, str); + if (emojiOffset !== undefined) { + return emojiOffset; + } + // Otherwise, just skip a single code point. + const iterator = new CodePointIterator(str, offset); + iterator.prevCodePoint(); + return iterator.offset; +} +function getOffsetBeforeLastEmojiComponent(initialOffset, str) { + // See https://www.unicode.org/reports/tr51/tr51-14.html#EBNF_and_Regex for the + // structure of emojis. + const iterator = new CodePointIterator(str, initialOffset); + let codePoint = iterator.prevCodePoint(); + // Skip modifiers + while ((isEmojiModifier(codePoint) || codePoint === 65039 /* CodePoint.emojiVariantSelector */ || codePoint === 8419 /* CodePoint.enclosingKeyCap */)) { + if (iterator.offset === 0) { + // Cannot skip modifier, no preceding emoji base. + return undefined; + } + codePoint = iterator.prevCodePoint(); + } + // Expect base emoji + if (!isEmojiImprecise(codePoint)) { + // Unexpected code point, not a valid emoji. + return undefined; + } + let resultOffset = iterator.offset; + if (resultOffset > 0) { + // Skip optional ZWJ code points that combine multiple emojis. + // In theory, we should check if that ZWJ actually combines multiple emojis + // to prevent deleting ZWJs in situations we didn't account for. + const optionalZwjCodePoint = iterator.prevCodePoint(); + if (optionalZwjCodePoint === 8205 /* CodePoint.zwj */) { + resultOffset = iterator.offset; + } + } + return resultOffset; +} +function isEmojiModifier(codePoint) { + return 0x1F3FB <= codePoint && codePoint <= 0x1F3FF; +} +const noBreakWhitespace = '\xa0'; +class AmbiguousCharacters { + constructor(confusableDictionary) { + this.confusableDictionary = confusableDictionary; + } + static getInstance(locales) { + return AmbiguousCharacters.cache.get(Array.from(locales)); + } + static getLocales() { + return AmbiguousCharacters._locales.getValue(); + } + isAmbiguous(codePoint) { + return this.confusableDictionary.has(codePoint); + } + /** + * Returns the non basic ASCII code point that the given code point can be confused, + * or undefined if such code point does note exist. + */ + getPrimaryConfusable(codePoint) { + return this.confusableDictionary.get(codePoint); + } + getConfusableCodePoints() { + return new Set(this.confusableDictionary.keys()); + } +} +strings_a = AmbiguousCharacters; +AmbiguousCharacters.ambiguousCharacterData = new Lazy(() => { + // Generated using https://github.com/hediet/vscode-unicode-data + // Stored as key1, value1, key2, value2, ... + return JSON.parse('{\"_common\":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125],\"_default\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"cs\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"de\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"es\":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"fr\":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"it\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"ja\":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],\"ko\":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"pl\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"pt-BR\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"qps-ploc\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"ru\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"tr\":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"zh-hans\":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],\"zh-hant\":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}'); +}); +AmbiguousCharacters.cache = new LRUCachedFunction((locales) => { + function arrayToMap(arr) { + const result = new Map(); + for (let i = 0; i < arr.length; i += 2) { + result.set(arr[i], arr[i + 1]); + } + return result; + } + function mergeMaps(map1, map2) { + const result = new Map(map1); + for (const [key, value] of map2) { + result.set(key, value); + } + return result; + } + function intersectMaps(map1, map2) { + if (!map1) { + return map2; + } + const result = new Map(); + for (const [key, value] of map1) { + if (map2.has(key)) { + result.set(key, value); + } + } + return result; + } + const data = strings_a.ambiguousCharacterData.getValue(); + let filteredLocales = locales.filter((l) => !l.startsWith('_') && l in data); + if (filteredLocales.length === 0) { + filteredLocales = ['_default']; + } + let languageSpecificMap = undefined; + for (const locale of filteredLocales) { + const map = arrayToMap(data[locale]); + languageSpecificMap = intersectMaps(languageSpecificMap, map); + } + const commonMap = arrayToMap(data['_common']); + const map = mergeMaps(commonMap, languageSpecificMap); + return new AmbiguousCharacters(map); +}); +AmbiguousCharacters._locales = new Lazy(() => Object.keys(AmbiguousCharacters.ambiguousCharacterData.getValue()).filter((k) => !k.startsWith('_'))); +class InvisibleCharacters { + static getRawData() { + // Generated using https://github.com/hediet/vscode-unicode-data + return JSON.parse('[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]'); + } + static getData() { + if (!this._data) { + this._data = new Set(InvisibleCharacters.getRawData()); + } + return this._data; + } + static isInvisibleCharacter(codePoint) { + return InvisibleCharacters.getData().has(codePoint); + } + static get codePoints() { + return InvisibleCharacters.getData(); + } +} +InvisibleCharacters._data = undefined; + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/worker/simpleWorker.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + + + + + + +const INITIALIZE = '$initialize'; +let webWorkerWarningLogged = false; +function logOnceWebWorkerWarning(err) { + if (!isWeb) { + // running tests + return; + } + if (!webWorkerWarningLogged) { + webWorkerWarningLogged = true; + console.warn('Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq'); + } + console.warn(err.message); +} +class RequestMessage { + constructor(vsWorker, req, method, args) { + this.vsWorker = vsWorker; + this.req = req; + this.method = method; + this.args = args; + this.type = 0 /* MessageType.Request */; + } +} +class ReplyMessage { + constructor(vsWorker, seq, res, err) { + this.vsWorker = vsWorker; + this.seq = seq; + this.res = res; + this.err = err; + this.type = 1 /* MessageType.Reply */; + } +} +class SubscribeEventMessage { + constructor(vsWorker, req, eventName, arg) { + this.vsWorker = vsWorker; + this.req = req; + this.eventName = eventName; + this.arg = arg; + this.type = 2 /* MessageType.SubscribeEvent */; + } +} +class EventMessage { + constructor(vsWorker, req, event) { + this.vsWorker = vsWorker; + this.req = req; + this.event = event; + this.type = 3 /* MessageType.Event */; + } +} +class UnsubscribeEventMessage { + constructor(vsWorker, req) { + this.vsWorker = vsWorker; + this.req = req; + this.type = 4 /* MessageType.UnsubscribeEvent */; + } +} +class SimpleWorkerProtocol { + constructor(handler) { + this._workerId = -1; + this._handler = handler; + this._lastSentReq = 0; + this._pendingReplies = Object.create(null); + this._pendingEmitters = new Map(); + this._pendingEvents = new Map(); + } + setWorkerId(workerId) { + this._workerId = workerId; + } + sendMessage(method, args) { + const req = String(++this._lastSentReq); + return new Promise((resolve, reject) => { + this._pendingReplies[req] = { + resolve: resolve, + reject: reject + }; + this._send(new RequestMessage(this._workerId, req, method, args)); + }); + } + listen(eventName, arg) { + let req = null; + const emitter = new Emitter({ + onFirstListenerAdd: () => { + req = String(++this._lastSentReq); + this._pendingEmitters.set(req, emitter); + this._send(new SubscribeEventMessage(this._workerId, req, eventName, arg)); + }, + onLastListenerRemove: () => { + this._pendingEmitters.delete(req); + this._send(new UnsubscribeEventMessage(this._workerId, req)); + req = null; + } + }); + return emitter.event; + } + handleMessage(message) { + if (!message || !message.vsWorker) { + return; + } + if (this._workerId !== -1 && message.vsWorker !== this._workerId) { + return; + } + this._handleMessage(message); + } + _handleMessage(msg) { + switch (msg.type) { + case 1 /* MessageType.Reply */: + return this._handleReplyMessage(msg); + case 0 /* MessageType.Request */: + return this._handleRequestMessage(msg); + case 2 /* MessageType.SubscribeEvent */: + return this._handleSubscribeEventMessage(msg); + case 3 /* MessageType.Event */: + return this._handleEventMessage(msg); + case 4 /* MessageType.UnsubscribeEvent */: + return this._handleUnsubscribeEventMessage(msg); + } + } + _handleReplyMessage(replyMessage) { + if (!this._pendingReplies[replyMessage.seq]) { + console.warn('Got reply to unknown seq'); + return; + } + const reply = this._pendingReplies[replyMessage.seq]; + delete this._pendingReplies[replyMessage.seq]; + if (replyMessage.err) { + let err = replyMessage.err; + if (replyMessage.err.$isError) { + err = new Error(); + err.name = replyMessage.err.name; + err.message = replyMessage.err.message; + err.stack = replyMessage.err.stack; + } + reply.reject(err); + return; + } + reply.resolve(replyMessage.res); + } + _handleRequestMessage(requestMessage) { + const req = requestMessage.req; + const result = this._handler.handleMessage(requestMessage.method, requestMessage.args); + result.then((r) => { + this._send(new ReplyMessage(this._workerId, req, r, undefined)); + }, (e) => { + if (e.detail instanceof Error) { + // Loading errors have a detail property that points to the actual error + e.detail = transformErrorForSerialization(e.detail); + } + this._send(new ReplyMessage(this._workerId, req, undefined, transformErrorForSerialization(e))); + }); + } + _handleSubscribeEventMessage(msg) { + const req = msg.req; + const disposable = this._handler.handleEvent(msg.eventName, msg.arg)((event) => { + this._send(new EventMessage(this._workerId, req, event)); + }); + this._pendingEvents.set(req, disposable); + } + _handleEventMessage(msg) { + if (!this._pendingEmitters.has(msg.req)) { + console.warn('Got event for unknown req'); + return; + } + this._pendingEmitters.get(msg.req).fire(msg.event); + } + _handleUnsubscribeEventMessage(msg) { + if (!this._pendingEvents.has(msg.req)) { + console.warn('Got unsubscribe for unknown req'); + return; + } + this._pendingEvents.get(msg.req).dispose(); + this._pendingEvents.delete(msg.req); + } + _send(msg) { + const transfer = []; + if (msg.type === 0 /* MessageType.Request */) { + for (let i = 0; i < msg.args.length; i++) { + if (msg.args[i] instanceof ArrayBuffer) { + transfer.push(msg.args[i]); + } + } + } + else if (msg.type === 1 /* MessageType.Reply */) { + if (msg.res instanceof ArrayBuffer) { + transfer.push(msg.res); + } + } + this._handler.sendMessage(msg, transfer); + } +} +/** + * Main thread side + */ +class SimpleWorkerClient extends (/* unused pure expression or super */ null && (Disposable)) { + constructor(workerFactory, moduleId, host) { + super(); + let lazyProxyReject = null; + this._worker = this._register(workerFactory.create('vs/base/common/worker/simpleWorker', (msg) => { + this._protocol.handleMessage(msg); + }, (err) => { + // in Firefox, web workers fail lazily :( + // we will reject the proxy + lazyProxyReject === null || lazyProxyReject === void 0 ? void 0 : lazyProxyReject(err); + })); + this._protocol = new SimpleWorkerProtocol({ + sendMessage: (msg, transfer) => { + this._worker.postMessage(msg, transfer); + }, + handleMessage: (method, args) => { + if (typeof host[method] !== 'function') { + return Promise.reject(new Error('Missing method ' + method + ' on main thread host.')); + } + try { + return Promise.resolve(host[method].apply(host, args)); + } + catch (e) { + return Promise.reject(e); + } + }, + handleEvent: (eventName, arg) => { + if (propertyIsDynamicEvent(eventName)) { + const event = host[eventName].call(host, arg); + if (typeof event !== 'function') { + throw new Error(`Missing dynamic event ${eventName} on main thread host.`); + } + return event; + } + if (propertyIsEvent(eventName)) { + const event = host[eventName]; + if (typeof event !== 'function') { + throw new Error(`Missing event ${eventName} on main thread host.`); + } + return event; + } + throw new Error(`Malformed event name ${eventName}`); + } + }); + this._protocol.setWorkerId(this._worker.getId()); + // Gather loader configuration + let loaderConfiguration = null; + if (typeof globals.require !== 'undefined' && typeof globals.require.getConfig === 'function') { + // Get the configuration from the Monaco AMD Loader + loaderConfiguration = globals.require.getConfig(); + } + else if (typeof globals.requirejs !== 'undefined') { + // Get the configuration from requirejs + loaderConfiguration = globals.requirejs.s.contexts._.config; + } + const hostMethods = types.getAllMethodNames(host); + // Send initialize message + this._onModuleLoaded = this._protocol.sendMessage(INITIALIZE, [ + this._worker.getId(), + JSON.parse(JSON.stringify(loaderConfiguration)), + moduleId, + hostMethods, + ]); + // Create proxy to loaded code + const proxyMethodRequest = (method, args) => { + return this._request(method, args); + }; + const proxyListen = (eventName, arg) => { + return this._protocol.listen(eventName, arg); + }; + this._lazyProxy = new Promise((resolve, reject) => { + lazyProxyReject = reject; + this._onModuleLoaded.then((availableMethods) => { + resolve(simpleWorker_createProxyObject(availableMethods, proxyMethodRequest, proxyListen)); + }, (e) => { + reject(e); + this._onError('Worker failed to load ' + moduleId, e); + }); + }); + } + getProxyObject() { + return this._lazyProxy; + } + _request(method, args) { + return new Promise((resolve, reject) => { + this._onModuleLoaded.then(() => { + this._protocol.sendMessage(method, args).then(resolve, reject); + }, reject); + }); + } + _onError(message, error) { + console.error(message); + console.info(error); + } +} +function propertyIsEvent(name) { + // Assume a property is an event if it has a form of "onSomething" + return name[0] === 'o' && name[1] === 'n' && isUpperAsciiLetter(name.charCodeAt(2)); +} +function propertyIsDynamicEvent(name) { + // Assume a property is a dynamic event (a method that returns an event) if it has a form of "onDynamicSomething" + return /^onDynamic/.test(name) && isUpperAsciiLetter(name.charCodeAt(9)); +} +function simpleWorker_createProxyObject(methodNames, invoke, proxyListen) { + const createProxyMethod = (method) => { + return function () { + const args = Array.prototype.slice.call(arguments, 0); + return invoke(method, args); + }; + }; + const createProxyDynamicEvent = (eventName) => { + return function (arg) { + return proxyListen(eventName, arg); + }; + }; + const result = {}; + for (const methodName of methodNames) { + if (propertyIsDynamicEvent(methodName)) { + result[methodName] = createProxyDynamicEvent(methodName); + continue; + } + if (propertyIsEvent(methodName)) { + result[methodName] = proxyListen(methodName, undefined); + continue; + } + result[methodName] = createProxyMethod(methodName); + } + return result; +} +/** + * Worker side + */ +class SimpleWorkerServer { + constructor(postMessage, requestHandlerFactory) { + this._requestHandlerFactory = requestHandlerFactory; + this._requestHandler = null; + this._protocol = new SimpleWorkerProtocol({ + sendMessage: (msg, transfer) => { + postMessage(msg, transfer); + }, + handleMessage: (method, args) => this._handleMessage(method, args), + handleEvent: (eventName, arg) => this._handleEvent(eventName, arg) + }); + } + onmessage(msg) { + this._protocol.handleMessage(msg); + } + _handleMessage(method, args) { + if (method === INITIALIZE) { + return this.initialize(args[0], args[1], args[2], args[3]); + } + if (!this._requestHandler || typeof this._requestHandler[method] !== 'function') { + return Promise.reject(new Error('Missing requestHandler or method: ' + method)); + } + try { + return Promise.resolve(this._requestHandler[method].apply(this._requestHandler, args)); + } + catch (e) { + return Promise.reject(e); + } + } + _handleEvent(eventName, arg) { + if (!this._requestHandler) { + throw new Error(`Missing requestHandler`); + } + if (propertyIsDynamicEvent(eventName)) { + const event = this._requestHandler[eventName].call(this._requestHandler, arg); + if (typeof event !== 'function') { + throw new Error(`Missing dynamic event ${eventName} on request handler.`); + } + return event; + } + if (propertyIsEvent(eventName)) { + const event = this._requestHandler[eventName]; + if (typeof event !== 'function') { + throw new Error(`Missing event ${eventName} on request handler.`); + } + return event; + } + throw new Error(`Malformed event name ${eventName}`); + } + initialize(workerId, loaderConfig, moduleId, hostMethods) { + this._protocol.setWorkerId(workerId); + const proxyMethodRequest = (method, args) => { + return this._protocol.sendMessage(method, args); + }; + const proxyListen = (eventName, arg) => { + return this._protocol.listen(eventName, arg); + }; + const hostProxy = simpleWorker_createProxyObject(hostMethods, proxyMethodRequest, proxyListen); + if (this._requestHandlerFactory) { + // static request handler + this._requestHandler = this._requestHandlerFactory(hostProxy); + return Promise.resolve(getAllMethodNames(this._requestHandler)); + } + if (loaderConfig) { + // Remove 'baseUrl', handling it is beyond scope for now + if (typeof loaderConfig.baseUrl !== 'undefined') { + delete loaderConfig['baseUrl']; + } + if (typeof loaderConfig.paths !== 'undefined') { + if (typeof loaderConfig.paths.vs !== 'undefined') { + delete loaderConfig.paths['vs']; + } + } + if (typeof loaderConfig.trustedTypesPolicy !== undefined) { + // don't use, it has been destroyed during serialize + delete loaderConfig['trustedTypesPolicy']; + } + // Since this is in a web worker, enable catching errors + loaderConfig.catchError = true; + platform_globals.require.config(loaderConfig); + } + return new Promise((resolve, reject) => { + // Use the global require to be sure to get the global config + // ESM-comment-begin + // const req = (globals.require || require); + // ESM-comment-end + // ESM-uncomment-begin + const req = platform_globals.require; + // ESM-uncomment-end + req([moduleId], (module) => { + this._requestHandler = module.create(hostProxy); + if (!this._requestHandler) { + reject(new Error(`No RequestHandler!`)); + return; + } + resolve(getAllMethodNames(this._requestHandler)); + }, reject); + }); + } +} +/** + * Called on the worker side + */ +function simpleWorker_create(postMessage) { + return new SimpleWorkerServer(postMessage, null); +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/diff/diffChange.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Represents information about a specific difference between two sequences. + */ +class DiffChange { + /** + * Constructs a new DiffChange with the given sequence information + * and content. + */ + constructor(originalStart, originalLength, modifiedStart, modifiedLength) { + //Debug.Assert(originalLength > 0 || modifiedLength > 0, "originalLength and modifiedLength cannot both be <= 0"); + this.originalStart = originalStart; + this.originalLength = originalLength; + this.modifiedStart = modifiedStart; + this.modifiedLength = modifiedLength; + } + /** + * The end point (exclusive) of the change in the original sequence. + */ + getOriginalEnd() { + return this.originalStart + this.originalLength; + } + /** + * The end point (exclusive) of the change in the modified sequence. + */ + getModifiedEnd() { + return this.modifiedStart + this.modifiedLength; + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/hash.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +/** + * Return a hash value for an object. + */ +function hash(obj) { + return doHash(obj, 0); +} +function doHash(obj, hashVal) { + switch (typeof obj) { + case 'object': + if (obj === null) { + return numberHash(349, hashVal); + } + else if (Array.isArray(obj)) { + return arrayHash(obj, hashVal); + } + return objectHash(obj, hashVal); + case 'string': + return stringHash(obj, hashVal); + case 'boolean': + return booleanHash(obj, hashVal); + case 'number': + return numberHash(obj, hashVal); + case 'undefined': + return numberHash(937, hashVal); + default: + return numberHash(617, hashVal); + } +} +function numberHash(val, initialHashVal) { + return (((initialHashVal << 5) - initialHashVal) + val) | 0; // hashVal * 31 + ch, keep as int32 +} +function booleanHash(b, initialHashVal) { + return numberHash(b ? 433 : 863, initialHashVal); +} +function stringHash(s, hashVal) { + hashVal = numberHash(149417, hashVal); + for (let i = 0, length = s.length; i < length; i++) { + hashVal = numberHash(s.charCodeAt(i), hashVal); + } + return hashVal; +} +function arrayHash(arr, initialHashVal) { + initialHashVal = numberHash(104579, initialHashVal); + return arr.reduce((hashVal, item) => doHash(item, hashVal), initialHashVal); +} +function objectHash(obj, initialHashVal) { + initialHashVal = numberHash(181387, initialHashVal); + return Object.keys(obj).sort().reduce((hashVal, key) => { + hashVal = stringHash(key, hashVal); + return doHash(obj[key], hashVal); + }, initialHashVal); +} +function leftRotate(value, bits, totalBits = 32) { + // delta + bits = totalBits + const delta = totalBits - bits; + // All ones, expect `delta` zeros aligned to the right + const mask = ~((1 << delta) - 1); + // Join (value left-shifted `bits` bits) with (masked value right-shifted `delta` bits) + return ((value << bits) | ((mask & value) >>> delta)) >>> 0; +} +function fill(dest, index = 0, count = dest.byteLength, value = 0) { + for (let i = 0; i < count; i++) { + dest[index + i] = value; + } +} +function leftPad(value, length, char = '0') { + while (value.length < length) { + value = char + value; + } + return value; +} +function toHexString(bufferOrValue, bitsize = 32) { + if (bufferOrValue instanceof ArrayBuffer) { + return Array.from(new Uint8Array(bufferOrValue)).map(b => b.toString(16).padStart(2, '0')).join(''); + } + return leftPad((bufferOrValue >>> 0).toString(16), bitsize / 4); +} +/** + * A SHA1 implementation that works with strings and does not allocate. + */ +class StringSHA1 { + constructor() { + this._h0 = 0x67452301; + this._h1 = 0xEFCDAB89; + this._h2 = 0x98BADCFE; + this._h3 = 0x10325476; + this._h4 = 0xC3D2E1F0; + this._buff = new Uint8Array(64 /* SHA1Constant.BLOCK_SIZE */ + 3 /* to fit any utf-8 */); + this._buffDV = new DataView(this._buff.buffer); + this._buffLen = 0; + this._totalLen = 0; + this._leftoverHighSurrogate = 0; + this._finished = false; + } + update(str) { + const strLen = str.length; + if (strLen === 0) { + return; + } + const buff = this._buff; + let buffLen = this._buffLen; + let leftoverHighSurrogate = this._leftoverHighSurrogate; + let charCode; + let offset; + if (leftoverHighSurrogate !== 0) { + charCode = leftoverHighSurrogate; + offset = -1; + leftoverHighSurrogate = 0; + } + else { + charCode = str.charCodeAt(0); + offset = 0; + } + while (true) { + let codePoint = charCode; + if (isHighSurrogate(charCode)) { + if (offset + 1 < strLen) { + const nextCharCode = str.charCodeAt(offset + 1); + if (isLowSurrogate(nextCharCode)) { + offset++; + codePoint = computeCodePoint(charCode, nextCharCode); + } + else { + // illegal => unicode replacement character + codePoint = 65533 /* SHA1Constant.UNICODE_REPLACEMENT */; + } + } + else { + // last character is a surrogate pair + leftoverHighSurrogate = charCode; + break; + } + } + else if (isLowSurrogate(charCode)) { + // illegal => unicode replacement character + codePoint = 65533 /* SHA1Constant.UNICODE_REPLACEMENT */; + } + buffLen = this._push(buff, buffLen, codePoint); + offset++; + if (offset < strLen) { + charCode = str.charCodeAt(offset); + } + else { + break; + } + } + this._buffLen = buffLen; + this._leftoverHighSurrogate = leftoverHighSurrogate; + } + _push(buff, buffLen, codePoint) { + if (codePoint < 0x0080) { + buff[buffLen++] = codePoint; + } + else if (codePoint < 0x0800) { + buff[buffLen++] = 0b11000000 | ((codePoint & 0b00000000000000000000011111000000) >>> 6); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0); + } + else if (codePoint < 0x10000) { + buff[buffLen++] = 0b11100000 | ((codePoint & 0b00000000000000001111000000000000) >>> 12); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0); + } + else { + buff[buffLen++] = 0b11110000 | ((codePoint & 0b00000000000111000000000000000000) >>> 18); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000111111000000000000) >>> 12); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6); + buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0); + } + if (buffLen >= 64 /* SHA1Constant.BLOCK_SIZE */) { + this._step(); + buffLen -= 64 /* SHA1Constant.BLOCK_SIZE */; + this._totalLen += 64 /* SHA1Constant.BLOCK_SIZE */; + // take last 3 in case of UTF8 overflow + buff[0] = buff[64 /* SHA1Constant.BLOCK_SIZE */ + 0]; + buff[1] = buff[64 /* SHA1Constant.BLOCK_SIZE */ + 1]; + buff[2] = buff[64 /* SHA1Constant.BLOCK_SIZE */ + 2]; + } + return buffLen; + } + digest() { + if (!this._finished) { + this._finished = true; + if (this._leftoverHighSurrogate) { + // illegal => unicode replacement character + this._leftoverHighSurrogate = 0; + this._buffLen = this._push(this._buff, this._buffLen, 65533 /* SHA1Constant.UNICODE_REPLACEMENT */); + } + this._totalLen += this._buffLen; + this._wrapUp(); + } + return toHexString(this._h0) + toHexString(this._h1) + toHexString(this._h2) + toHexString(this._h3) + toHexString(this._h4); + } + _wrapUp() { + this._buff[this._buffLen++] = 0x80; + fill(this._buff, this._buffLen); + if (this._buffLen > 56) { + this._step(); + fill(this._buff); + } + // this will fit because the mantissa can cover up to 52 bits + const ml = 8 * this._totalLen; + this._buffDV.setUint32(56, Math.floor(ml / 4294967296), false); + this._buffDV.setUint32(60, ml % 4294967296, false); + this._step(); + } + _step() { + const bigBlock32 = StringSHA1._bigBlock32; + const data = this._buffDV; + for (let j = 0; j < 64 /* 16*4 */; j += 4) { + bigBlock32.setUint32(j, data.getUint32(j, false), false); + } + for (let j = 64; j < 320 /* 80*4 */; j += 4) { + bigBlock32.setUint32(j, leftRotate((bigBlock32.getUint32(j - 12, false) ^ bigBlock32.getUint32(j - 32, false) ^ bigBlock32.getUint32(j - 56, false) ^ bigBlock32.getUint32(j - 64, false)), 1), false); + } + let a = this._h0; + let b = this._h1; + let c = this._h2; + let d = this._h3; + let e = this._h4; + let f, k; + let temp; + for (let j = 0; j < 80; j++) { + if (j < 20) { + f = (b & c) | ((~b) & d); + k = 0x5A827999; + } + else if (j < 40) { + f = b ^ c ^ d; + k = 0x6ED9EBA1; + } + else if (j < 60) { + f = (b & c) | (b & d) | (c & d); + k = 0x8F1BBCDC; + } + else { + f = b ^ c ^ d; + k = 0xCA62C1D6; + } + temp = (leftRotate(a, 5) + f + e + k + bigBlock32.getUint32(j * 4, false)) & 0xffffffff; + e = d; + d = c; + c = leftRotate(b, 30); + b = a; + a = temp; + } + this._h0 = (this._h0 + a) & 0xffffffff; + this._h1 = (this._h1 + b) & 0xffffffff; + this._h2 = (this._h2 + c) & 0xffffffff; + this._h3 = (this._h3 + d) & 0xffffffff; + this._h4 = (this._h4 + e) & 0xffffffff; + } +} +StringSHA1._bigBlock32 = new DataView(new ArrayBuffer(320)); // 80 * 4 = 320 + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/diff/diff.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + + +class StringDiffSequence { + constructor(source) { + this.source = source; + } + getElements() { + const source = this.source; + const characters = new Int32Array(source.length); + for (let i = 0, len = source.length; i < len; i++) { + characters[i] = source.charCodeAt(i); + } + return characters; + } +} +function stringDiff(original, modified, pretty) { + return new LcsDiff(new StringDiffSequence(original), new StringDiffSequence(modified)).ComputeDiff(pretty).changes; +} +// +// The code below has been ported from a C# implementation in VS +// +class Debug { + static Assert(condition, message) { + if (!condition) { + throw new Error(message); + } + } +} +class MyArray { + /** + * Copies a range of elements from an Array starting at the specified source index and pastes + * them to another Array starting at the specified destination index. The length and the indexes + * are specified as 64-bit integers. + * sourceArray: + * The Array that contains the data to copy. + * sourceIndex: + * A 64-bit integer that represents the index in the sourceArray at which copying begins. + * destinationArray: + * The Array that receives the data. + * destinationIndex: + * A 64-bit integer that represents the index in the destinationArray at which storing begins. + * length: + * A 64-bit integer that represents the number of elements to copy. + */ + static Copy(sourceArray, sourceIndex, destinationArray, destinationIndex, length) { + for (let i = 0; i < length; i++) { + destinationArray[destinationIndex + i] = sourceArray[sourceIndex + i]; + } + } + static Copy2(sourceArray, sourceIndex, destinationArray, destinationIndex, length) { + for (let i = 0; i < length; i++) { + destinationArray[destinationIndex + i] = sourceArray[sourceIndex + i]; + } + } +} +/** + * A utility class which helps to create the set of DiffChanges from + * a difference operation. This class accepts original DiffElements and + * modified DiffElements that are involved in a particular change. The + * MarkNextChange() method can be called to mark the separation between + * distinct changes. At the end, the Changes property can be called to retrieve + * the constructed changes. + */ +class DiffChangeHelper { + /** + * Constructs a new DiffChangeHelper for the given DiffSequences. + */ + constructor() { + this.m_changes = []; + this.m_originalStart = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */; + this.m_modifiedStart = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */; + this.m_originalCount = 0; + this.m_modifiedCount = 0; + } + /** + * Marks the beginning of the next change in the set of differences. + */ + MarkNextChange() { + // Only add to the list if there is something to add + if (this.m_originalCount > 0 || this.m_modifiedCount > 0) { + // Add the new change to our list + this.m_changes.push(new DiffChange(this.m_originalStart, this.m_originalCount, this.m_modifiedStart, this.m_modifiedCount)); + } + // Reset for the next change + this.m_originalCount = 0; + this.m_modifiedCount = 0; + this.m_originalStart = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */; + this.m_modifiedStart = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */; + } + /** + * Adds the original element at the given position to the elements + * affected by the current change. The modified index gives context + * to the change position with respect to the original sequence. + * @param originalIndex The index of the original element to add. + * @param modifiedIndex The index of the modified element that provides corresponding position in the modified sequence. + */ + AddOriginalElement(originalIndex, modifiedIndex) { + // The 'true' start index is the smallest of the ones we've seen + this.m_originalStart = Math.min(this.m_originalStart, originalIndex); + this.m_modifiedStart = Math.min(this.m_modifiedStart, modifiedIndex); + this.m_originalCount++; + } + /** + * Adds the modified element at the given position to the elements + * affected by the current change. The original index gives context + * to the change position with respect to the modified sequence. + * @param originalIndex The index of the original element that provides corresponding position in the original sequence. + * @param modifiedIndex The index of the modified element to add. + */ + AddModifiedElement(originalIndex, modifiedIndex) { + // The 'true' start index is the smallest of the ones we've seen + this.m_originalStart = Math.min(this.m_originalStart, originalIndex); + this.m_modifiedStart = Math.min(this.m_modifiedStart, modifiedIndex); + this.m_modifiedCount++; + } + /** + * Retrieves all of the changes marked by the class. + */ + getChanges() { + if (this.m_originalCount > 0 || this.m_modifiedCount > 0) { + // Finish up on whatever is left + this.MarkNextChange(); + } + return this.m_changes; + } + /** + * Retrieves all of the changes marked by the class in the reverse order + */ + getReverseChanges() { + if (this.m_originalCount > 0 || this.m_modifiedCount > 0) { + // Finish up on whatever is left + this.MarkNextChange(); + } + this.m_changes.reverse(); + return this.m_changes; + } +} +/** + * An implementation of the difference algorithm described in + * "An O(ND) Difference Algorithm and its variations" by Eugene W. Myers + */ +class LcsDiff { + /** + * Constructs the DiffFinder + */ + constructor(originalSequence, modifiedSequence, continueProcessingPredicate = null) { + this.ContinueProcessingPredicate = continueProcessingPredicate; + this._originalSequence = originalSequence; + this._modifiedSequence = modifiedSequence; + const [originalStringElements, originalElementsOrHash, originalHasStrings] = LcsDiff._getElements(originalSequence); + const [modifiedStringElements, modifiedElementsOrHash, modifiedHasStrings] = LcsDiff._getElements(modifiedSequence); + this._hasStrings = (originalHasStrings && modifiedHasStrings); + this._originalStringElements = originalStringElements; + this._originalElementsOrHash = originalElementsOrHash; + this._modifiedStringElements = modifiedStringElements; + this._modifiedElementsOrHash = modifiedElementsOrHash; + this.m_forwardHistory = []; + this.m_reverseHistory = []; + } + static _isStringArray(arr) { + return (arr.length > 0 && typeof arr[0] === 'string'); + } + static _getElements(sequence) { + const elements = sequence.getElements(); + if (LcsDiff._isStringArray(elements)) { + const hashes = new Int32Array(elements.length); + for (let i = 0, len = elements.length; i < len; i++) { + hashes[i] = stringHash(elements[i], 0); + } + return [elements, hashes, true]; + } + if (elements instanceof Int32Array) { + return [[], elements, false]; + } + return [[], new Int32Array(elements), false]; + } + ElementsAreEqual(originalIndex, newIndex) { + if (this._originalElementsOrHash[originalIndex] !== this._modifiedElementsOrHash[newIndex]) { + return false; + } + return (this._hasStrings ? this._originalStringElements[originalIndex] === this._modifiedStringElements[newIndex] : true); + } + ElementsAreStrictEqual(originalIndex, newIndex) { + if (!this.ElementsAreEqual(originalIndex, newIndex)) { + return false; + } + const originalElement = LcsDiff._getStrictElement(this._originalSequence, originalIndex); + const modifiedElement = LcsDiff._getStrictElement(this._modifiedSequence, newIndex); + return (originalElement === modifiedElement); + } + static _getStrictElement(sequence, index) { + if (typeof sequence.getStrictElement === 'function') { + return sequence.getStrictElement(index); + } + return null; + } + OriginalElementsAreEqual(index1, index2) { + if (this._originalElementsOrHash[index1] !== this._originalElementsOrHash[index2]) { + return false; + } + return (this._hasStrings ? this._originalStringElements[index1] === this._originalStringElements[index2] : true); + } + ModifiedElementsAreEqual(index1, index2) { + if (this._modifiedElementsOrHash[index1] !== this._modifiedElementsOrHash[index2]) { + return false; + } + return (this._hasStrings ? this._modifiedStringElements[index1] === this._modifiedStringElements[index2] : true); + } + ComputeDiff(pretty) { + return this._ComputeDiff(0, this._originalElementsOrHash.length - 1, 0, this._modifiedElementsOrHash.length - 1, pretty); + } + /** + * Computes the differences between the original and modified input + * sequences on the bounded range. + * @returns An array of the differences between the two input sequences. + */ + _ComputeDiff(originalStart, originalEnd, modifiedStart, modifiedEnd, pretty) { + const quitEarlyArr = [false]; + let changes = this.ComputeDiffRecursive(originalStart, originalEnd, modifiedStart, modifiedEnd, quitEarlyArr); + if (pretty) { + // We have to clean up the computed diff to be more intuitive + // but it turns out this cannot be done correctly until the entire set + // of diffs have been computed + changes = this.PrettifyChanges(changes); + } + return { + quitEarly: quitEarlyArr[0], + changes: changes + }; + } + /** + * Private helper method which computes the differences on the bounded range + * recursively. + * @returns An array of the differences between the two input sequences. + */ + ComputeDiffRecursive(originalStart, originalEnd, modifiedStart, modifiedEnd, quitEarlyArr) { + quitEarlyArr[0] = false; + // Find the start of the differences + while (originalStart <= originalEnd && modifiedStart <= modifiedEnd && this.ElementsAreEqual(originalStart, modifiedStart)) { + originalStart++; + modifiedStart++; + } + // Find the end of the differences + while (originalEnd >= originalStart && modifiedEnd >= modifiedStart && this.ElementsAreEqual(originalEnd, modifiedEnd)) { + originalEnd--; + modifiedEnd--; + } + // In the special case where we either have all insertions or all deletions or the sequences are identical + if (originalStart > originalEnd || modifiedStart > modifiedEnd) { + let changes; + if (modifiedStart <= modifiedEnd) { + Debug.Assert(originalStart === originalEnd + 1, 'originalStart should only be one more than originalEnd'); + // All insertions + changes = [ + new DiffChange(originalStart, 0, modifiedStart, modifiedEnd - modifiedStart + 1) + ]; + } + else if (originalStart <= originalEnd) { + Debug.Assert(modifiedStart === modifiedEnd + 1, 'modifiedStart should only be one more than modifiedEnd'); + // All deletions + changes = [ + new DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, 0) + ]; + } + else { + Debug.Assert(originalStart === originalEnd + 1, 'originalStart should only be one more than originalEnd'); + Debug.Assert(modifiedStart === modifiedEnd + 1, 'modifiedStart should only be one more than modifiedEnd'); + // Identical sequences - No differences + changes = []; + } + return changes; + } + // This problem can be solved using the Divide-And-Conquer technique. + const midOriginalArr = [0]; + const midModifiedArr = [0]; + const result = this.ComputeRecursionPoint(originalStart, originalEnd, modifiedStart, modifiedEnd, midOriginalArr, midModifiedArr, quitEarlyArr); + const midOriginal = midOriginalArr[0]; + const midModified = midModifiedArr[0]; + if (result !== null) { + // Result is not-null when there was enough memory to compute the changes while + // searching for the recursion point + return result; + } + else if (!quitEarlyArr[0]) { + // We can break the problem down recursively by finding the changes in the + // First Half: (originalStart, modifiedStart) to (midOriginal, midModified) + // Second Half: (midOriginal + 1, minModified + 1) to (originalEnd, modifiedEnd) + // NOTE: ComputeDiff() is inclusive, therefore the second range starts on the next point + const leftChanges = this.ComputeDiffRecursive(originalStart, midOriginal, modifiedStart, midModified, quitEarlyArr); + let rightChanges = []; + if (!quitEarlyArr[0]) { + rightChanges = this.ComputeDiffRecursive(midOriginal + 1, originalEnd, midModified + 1, modifiedEnd, quitEarlyArr); + } + else { + // We didn't have time to finish the first half, so we don't have time to compute this half. + // Consider the entire rest of the sequence different. + rightChanges = [ + new DiffChange(midOriginal + 1, originalEnd - (midOriginal + 1) + 1, midModified + 1, modifiedEnd - (midModified + 1) + 1) + ]; + } + return this.ConcatenateChanges(leftChanges, rightChanges); + } + // If we hit here, we quit early, and so can't return anything meaningful + return [ + new DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, modifiedEnd - modifiedStart + 1) + ]; + } + WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr) { + let forwardChanges = null; + let reverseChanges = null; + // First, walk backward through the forward diagonals history + let changeHelper = new DiffChangeHelper(); + let diagonalMin = diagonalForwardStart; + let diagonalMax = diagonalForwardEnd; + let diagonalRelative = (midOriginalArr[0] - midModifiedArr[0]) - diagonalForwardOffset; + let lastOriginalIndex = -1073741824 /* Constants.MIN_SAFE_SMALL_INTEGER */; + let historyIndex = this.m_forwardHistory.length - 1; + do { + // Get the diagonal index from the relative diagonal number + const diagonal = diagonalRelative + diagonalForwardBase; + // Figure out where we came from + if (diagonal === diagonalMin || (diagonal < diagonalMax && forwardPoints[diagonal - 1] < forwardPoints[diagonal + 1])) { + // Vertical line (the element is an insert) + originalIndex = forwardPoints[diagonal + 1]; + modifiedIndex = originalIndex - diagonalRelative - diagonalForwardOffset; + if (originalIndex < lastOriginalIndex) { + changeHelper.MarkNextChange(); + } + lastOriginalIndex = originalIndex; + changeHelper.AddModifiedElement(originalIndex + 1, modifiedIndex); + diagonalRelative = (diagonal + 1) - diagonalForwardBase; //Setup for the next iteration + } + else { + // Horizontal line (the element is a deletion) + originalIndex = forwardPoints[diagonal - 1] + 1; + modifiedIndex = originalIndex - diagonalRelative - diagonalForwardOffset; + if (originalIndex < lastOriginalIndex) { + changeHelper.MarkNextChange(); + } + lastOriginalIndex = originalIndex - 1; + changeHelper.AddOriginalElement(originalIndex, modifiedIndex + 1); + diagonalRelative = (diagonal - 1) - diagonalForwardBase; //Setup for the next iteration + } + if (historyIndex >= 0) { + forwardPoints = this.m_forwardHistory[historyIndex]; + diagonalForwardBase = forwardPoints[0]; //We stored this in the first spot + diagonalMin = 1; + diagonalMax = forwardPoints.length - 1; + } + } while (--historyIndex >= -1); + // Ironically, we get the forward changes as the reverse of the + // order we added them since we technically added them backwards + forwardChanges = changeHelper.getReverseChanges(); + if (quitEarlyArr[0]) { + // TODO: Calculate a partial from the reverse diagonals. + // For now, just assume everything after the midOriginal/midModified point is a diff + let originalStartPoint = midOriginalArr[0] + 1; + let modifiedStartPoint = midModifiedArr[0] + 1; + if (forwardChanges !== null && forwardChanges.length > 0) { + const lastForwardChange = forwardChanges[forwardChanges.length - 1]; + originalStartPoint = Math.max(originalStartPoint, lastForwardChange.getOriginalEnd()); + modifiedStartPoint = Math.max(modifiedStartPoint, lastForwardChange.getModifiedEnd()); + } + reverseChanges = [ + new DiffChange(originalStartPoint, originalEnd - originalStartPoint + 1, modifiedStartPoint, modifiedEnd - modifiedStartPoint + 1) + ]; + } + else { + // Now walk backward through the reverse diagonals history + changeHelper = new DiffChangeHelper(); + diagonalMin = diagonalReverseStart; + diagonalMax = diagonalReverseEnd; + diagonalRelative = (midOriginalArr[0] - midModifiedArr[0]) - diagonalReverseOffset; + lastOriginalIndex = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */; + historyIndex = (deltaIsEven) ? this.m_reverseHistory.length - 1 : this.m_reverseHistory.length - 2; + do { + // Get the diagonal index from the relative diagonal number + const diagonal = diagonalRelative + diagonalReverseBase; + // Figure out where we came from + if (diagonal === diagonalMin || (diagonal < diagonalMax && reversePoints[diagonal - 1] >= reversePoints[diagonal + 1])) { + // Horizontal line (the element is a deletion)) + originalIndex = reversePoints[diagonal + 1] - 1; + modifiedIndex = originalIndex - diagonalRelative - diagonalReverseOffset; + if (originalIndex > lastOriginalIndex) { + changeHelper.MarkNextChange(); + } + lastOriginalIndex = originalIndex + 1; + changeHelper.AddOriginalElement(originalIndex + 1, modifiedIndex + 1); + diagonalRelative = (diagonal + 1) - diagonalReverseBase; //Setup for the next iteration + } + else { + // Vertical line (the element is an insertion) + originalIndex = reversePoints[diagonal - 1]; + modifiedIndex = originalIndex - diagonalRelative - diagonalReverseOffset; + if (originalIndex > lastOriginalIndex) { + changeHelper.MarkNextChange(); + } + lastOriginalIndex = originalIndex; + changeHelper.AddModifiedElement(originalIndex + 1, modifiedIndex + 1); + diagonalRelative = (diagonal - 1) - diagonalReverseBase; //Setup for the next iteration + } + if (historyIndex >= 0) { + reversePoints = this.m_reverseHistory[historyIndex]; + diagonalReverseBase = reversePoints[0]; //We stored this in the first spot + diagonalMin = 1; + diagonalMax = reversePoints.length - 1; + } + } while (--historyIndex >= -1); + // There are cases where the reverse history will find diffs that + // are correct, but not intuitive, so we need shift them. + reverseChanges = changeHelper.getChanges(); + } + return this.ConcatenateChanges(forwardChanges, reverseChanges); + } + /** + * Given the range to compute the diff on, this method finds the point: + * (midOriginal, midModified) + * that exists in the middle of the LCS of the two sequences and + * is the point at which the LCS problem may be broken down recursively. + * This method will try to keep the LCS trace in memory. If the LCS recursion + * point is calculated and the full trace is available in memory, then this method + * will return the change list. + * @param originalStart The start bound of the original sequence range + * @param originalEnd The end bound of the original sequence range + * @param modifiedStart The start bound of the modified sequence range + * @param modifiedEnd The end bound of the modified sequence range + * @param midOriginal The middle point of the original sequence range + * @param midModified The middle point of the modified sequence range + * @returns The diff changes, if available, otherwise null + */ + ComputeRecursionPoint(originalStart, originalEnd, modifiedStart, modifiedEnd, midOriginalArr, midModifiedArr, quitEarlyArr) { + let originalIndex = 0, modifiedIndex = 0; + let diagonalForwardStart = 0, diagonalForwardEnd = 0; + let diagonalReverseStart = 0, diagonalReverseEnd = 0; + // To traverse the edit graph and produce the proper LCS, our actual + // start position is just outside the given boundary + originalStart--; + modifiedStart--; + // We set these up to make the compiler happy, but they will + // be replaced before we return with the actual recursion point + midOriginalArr[0] = 0; + midModifiedArr[0] = 0; + // Clear out the history + this.m_forwardHistory = []; + this.m_reverseHistory = []; + // Each cell in the two arrays corresponds to a diagonal in the edit graph. + // The integer value in the cell represents the originalIndex of the furthest + // reaching point found so far that ends in that diagonal. + // The modifiedIndex can be computed mathematically from the originalIndex and the diagonal number. + const maxDifferences = (originalEnd - originalStart) + (modifiedEnd - modifiedStart); + const numDiagonals = maxDifferences + 1; + const forwardPoints = new Int32Array(numDiagonals); + const reversePoints = new Int32Array(numDiagonals); + // diagonalForwardBase: Index into forwardPoints of the diagonal which passes through (originalStart, modifiedStart) + // diagonalReverseBase: Index into reversePoints of the diagonal which passes through (originalEnd, modifiedEnd) + const diagonalForwardBase = (modifiedEnd - modifiedStart); + const diagonalReverseBase = (originalEnd - originalStart); + // diagonalForwardOffset: Geometric offset which allows modifiedIndex to be computed from originalIndex and the + // diagonal number (relative to diagonalForwardBase) + // diagonalReverseOffset: Geometric offset which allows modifiedIndex to be computed from originalIndex and the + // diagonal number (relative to diagonalReverseBase) + const diagonalForwardOffset = (originalStart - modifiedStart); + const diagonalReverseOffset = (originalEnd - modifiedEnd); + // delta: The difference between the end diagonal and the start diagonal. This is used to relate diagonal numbers + // relative to the start diagonal with diagonal numbers relative to the end diagonal. + // The Even/Oddn-ness of this delta is important for determining when we should check for overlap + const delta = diagonalReverseBase - diagonalForwardBase; + const deltaIsEven = (delta % 2 === 0); + // Here we set up the start and end points as the furthest points found so far + // in both the forward and reverse directions, respectively + forwardPoints[diagonalForwardBase] = originalStart; + reversePoints[diagonalReverseBase] = originalEnd; + // Remember if we quit early, and thus need to do a best-effort result instead of a real result. + quitEarlyArr[0] = false; + // A couple of points: + // --With this method, we iterate on the number of differences between the two sequences. + // The more differences there actually are, the longer this will take. + // --Also, as the number of differences increases, we have to search on diagonals further + // away from the reference diagonal (which is diagonalForwardBase for forward, diagonalReverseBase for reverse). + // --We extend on even diagonals (relative to the reference diagonal) only when numDifferences + // is even and odd diagonals only when numDifferences is odd. + for (let numDifferences = 1; numDifferences <= (maxDifferences / 2) + 1; numDifferences++) { + let furthestOriginalIndex = 0; + let furthestModifiedIndex = 0; + // Run the algorithm in the forward direction + diagonalForwardStart = this.ClipDiagonalBound(diagonalForwardBase - numDifferences, numDifferences, diagonalForwardBase, numDiagonals); + diagonalForwardEnd = this.ClipDiagonalBound(diagonalForwardBase + numDifferences, numDifferences, diagonalForwardBase, numDiagonals); + for (let diagonal = diagonalForwardStart; diagonal <= diagonalForwardEnd; diagonal += 2) { + // STEP 1: We extend the furthest reaching point in the present diagonal + // by looking at the diagonals above and below and picking the one whose point + // is further away from the start point (originalStart, modifiedStart) + if (diagonal === diagonalForwardStart || (diagonal < diagonalForwardEnd && forwardPoints[diagonal - 1] < forwardPoints[diagonal + 1])) { + originalIndex = forwardPoints[diagonal + 1]; + } + else { + originalIndex = forwardPoints[diagonal - 1] + 1; + } + modifiedIndex = originalIndex - (diagonal - diagonalForwardBase) - diagonalForwardOffset; + // Save the current originalIndex so we can test for false overlap in step 3 + const tempOriginalIndex = originalIndex; + // STEP 2: We can continue to extend the furthest reaching point in the present diagonal + // so long as the elements are equal. + while (originalIndex < originalEnd && modifiedIndex < modifiedEnd && this.ElementsAreEqual(originalIndex + 1, modifiedIndex + 1)) { + originalIndex++; + modifiedIndex++; + } + forwardPoints[diagonal] = originalIndex; + if (originalIndex + modifiedIndex > furthestOriginalIndex + furthestModifiedIndex) { + furthestOriginalIndex = originalIndex; + furthestModifiedIndex = modifiedIndex; + } + // STEP 3: If delta is odd (overlap first happens on forward when delta is odd) + // and diagonal is in the range of reverse diagonals computed for numDifferences-1 + // (the previous iteration; we haven't computed reverse diagonals for numDifferences yet) + // then check for overlap. + if (!deltaIsEven && Math.abs(diagonal - diagonalReverseBase) <= (numDifferences - 1)) { + if (originalIndex >= reversePoints[diagonal]) { + midOriginalArr[0] = originalIndex; + midModifiedArr[0] = modifiedIndex; + if (tempOriginalIndex <= reversePoints[diagonal] && 1447 /* LocalConstants.MaxDifferencesHistory */ > 0 && numDifferences <= (1447 /* LocalConstants.MaxDifferencesHistory */ + 1)) { + // BINGO! We overlapped, and we have the full trace in memory! + return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr); + } + else { + // Either false overlap, or we didn't have enough memory for the full trace + // Just return the recursion point + return null; + } + } + } + } + // Check to see if we should be quitting early, before moving on to the next iteration. + const matchLengthOfLongest = ((furthestOriginalIndex - originalStart) + (furthestModifiedIndex - modifiedStart) - numDifferences) / 2; + if (this.ContinueProcessingPredicate !== null && !this.ContinueProcessingPredicate(furthestOriginalIndex, matchLengthOfLongest)) { + // We can't finish, so skip ahead to generating a result from what we have. + quitEarlyArr[0] = true; + // Use the furthest distance we got in the forward direction. + midOriginalArr[0] = furthestOriginalIndex; + midModifiedArr[0] = furthestModifiedIndex; + if (matchLengthOfLongest > 0 && 1447 /* LocalConstants.MaxDifferencesHistory */ > 0 && numDifferences <= (1447 /* LocalConstants.MaxDifferencesHistory */ + 1)) { + // Enough of the history is in memory to walk it backwards + return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr); + } + else { + // We didn't actually remember enough of the history. + //Since we are quitting the diff early, we need to shift back the originalStart and modified start + //back into the boundary limits since we decremented their value above beyond the boundary limit. + originalStart++; + modifiedStart++; + return [ + new DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, modifiedEnd - modifiedStart + 1) + ]; + } + } + // Run the algorithm in the reverse direction + diagonalReverseStart = this.ClipDiagonalBound(diagonalReverseBase - numDifferences, numDifferences, diagonalReverseBase, numDiagonals); + diagonalReverseEnd = this.ClipDiagonalBound(diagonalReverseBase + numDifferences, numDifferences, diagonalReverseBase, numDiagonals); + for (let diagonal = diagonalReverseStart; diagonal <= diagonalReverseEnd; diagonal += 2) { + // STEP 1: We extend the furthest reaching point in the present diagonal + // by looking at the diagonals above and below and picking the one whose point + // is further away from the start point (originalEnd, modifiedEnd) + if (diagonal === diagonalReverseStart || (diagonal < diagonalReverseEnd && reversePoints[diagonal - 1] >= reversePoints[diagonal + 1])) { + originalIndex = reversePoints[diagonal + 1] - 1; + } + else { + originalIndex = reversePoints[diagonal - 1]; + } + modifiedIndex = originalIndex - (diagonal - diagonalReverseBase) - diagonalReverseOffset; + // Save the current originalIndex so we can test for false overlap + const tempOriginalIndex = originalIndex; + // STEP 2: We can continue to extend the furthest reaching point in the present diagonal + // as long as the elements are equal. + while (originalIndex > originalStart && modifiedIndex > modifiedStart && this.ElementsAreEqual(originalIndex, modifiedIndex)) { + originalIndex--; + modifiedIndex--; + } + reversePoints[diagonal] = originalIndex; + // STEP 4: If delta is even (overlap first happens on reverse when delta is even) + // and diagonal is in the range of forward diagonals computed for numDifferences + // then check for overlap. + if (deltaIsEven && Math.abs(diagonal - diagonalForwardBase) <= numDifferences) { + if (originalIndex <= forwardPoints[diagonal]) { + midOriginalArr[0] = originalIndex; + midModifiedArr[0] = modifiedIndex; + if (tempOriginalIndex >= forwardPoints[diagonal] && 1447 /* LocalConstants.MaxDifferencesHistory */ > 0 && numDifferences <= (1447 /* LocalConstants.MaxDifferencesHistory */ + 1)) { + // BINGO! We overlapped, and we have the full trace in memory! + return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr); + } + else { + // Either false overlap, or we didn't have enough memory for the full trace + // Just return the recursion point + return null; + } + } + } + } + // Save current vectors to history before the next iteration + if (numDifferences <= 1447 /* LocalConstants.MaxDifferencesHistory */) { + // We are allocating space for one extra int, which we fill with + // the index of the diagonal base index + let temp = new Int32Array(diagonalForwardEnd - diagonalForwardStart + 2); + temp[0] = diagonalForwardBase - diagonalForwardStart + 1; + MyArray.Copy2(forwardPoints, diagonalForwardStart, temp, 1, diagonalForwardEnd - diagonalForwardStart + 1); + this.m_forwardHistory.push(temp); + temp = new Int32Array(diagonalReverseEnd - diagonalReverseStart + 2); + temp[0] = diagonalReverseBase - diagonalReverseStart + 1; + MyArray.Copy2(reversePoints, diagonalReverseStart, temp, 1, diagonalReverseEnd - diagonalReverseStart + 1); + this.m_reverseHistory.push(temp); + } + } + // If we got here, then we have the full trace in history. We just have to convert it to a change list + // NOTE: This part is a bit messy + return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr); + } + /** + * Shifts the given changes to provide a more intuitive diff. + * While the first element in a diff matches the first element after the diff, + * we shift the diff down. + * + * @param changes The list of changes to shift + * @returns The shifted changes + */ + PrettifyChanges(changes) { + // Shift all the changes down first + for (let i = 0; i < changes.length; i++) { + const change = changes[i]; + const originalStop = (i < changes.length - 1) ? changes[i + 1].originalStart : this._originalElementsOrHash.length; + const modifiedStop = (i < changes.length - 1) ? changes[i + 1].modifiedStart : this._modifiedElementsOrHash.length; + const checkOriginal = change.originalLength > 0; + const checkModified = change.modifiedLength > 0; + while (change.originalStart + change.originalLength < originalStop + && change.modifiedStart + change.modifiedLength < modifiedStop + && (!checkOriginal || this.OriginalElementsAreEqual(change.originalStart, change.originalStart + change.originalLength)) + && (!checkModified || this.ModifiedElementsAreEqual(change.modifiedStart, change.modifiedStart + change.modifiedLength))) { + const startStrictEqual = this.ElementsAreStrictEqual(change.originalStart, change.modifiedStart); + const endStrictEqual = this.ElementsAreStrictEqual(change.originalStart + change.originalLength, change.modifiedStart + change.modifiedLength); + if (endStrictEqual && !startStrictEqual) { + // moving the change down would create an equal change, but the elements are not strict equal + break; + } + change.originalStart++; + change.modifiedStart++; + } + const mergedChangeArr = [null]; + if (i < changes.length - 1 && this.ChangesOverlap(changes[i], changes[i + 1], mergedChangeArr)) { + changes[i] = mergedChangeArr[0]; + changes.splice(i + 1, 1); + i--; + continue; + } + } + // Shift changes back up until we hit empty or whitespace-only lines + for (let i = changes.length - 1; i >= 0; i--) { + const change = changes[i]; + let originalStop = 0; + let modifiedStop = 0; + if (i > 0) { + const prevChange = changes[i - 1]; + originalStop = prevChange.originalStart + prevChange.originalLength; + modifiedStop = prevChange.modifiedStart + prevChange.modifiedLength; + } + const checkOriginal = change.originalLength > 0; + const checkModified = change.modifiedLength > 0; + let bestDelta = 0; + let bestScore = this._boundaryScore(change.originalStart, change.originalLength, change.modifiedStart, change.modifiedLength); + for (let delta = 1;; delta++) { + const originalStart = change.originalStart - delta; + const modifiedStart = change.modifiedStart - delta; + if (originalStart < originalStop || modifiedStart < modifiedStop) { + break; + } + if (checkOriginal && !this.OriginalElementsAreEqual(originalStart, originalStart + change.originalLength)) { + break; + } + if (checkModified && !this.ModifiedElementsAreEqual(modifiedStart, modifiedStart + change.modifiedLength)) { + break; + } + const touchingPreviousChange = (originalStart === originalStop && modifiedStart === modifiedStop); + const score = ((touchingPreviousChange ? 5 : 0) + + this._boundaryScore(originalStart, change.originalLength, modifiedStart, change.modifiedLength)); + if (score > bestScore) { + bestScore = score; + bestDelta = delta; + } + } + change.originalStart -= bestDelta; + change.modifiedStart -= bestDelta; + const mergedChangeArr = [null]; + if (i > 0 && this.ChangesOverlap(changes[i - 1], changes[i], mergedChangeArr)) { + changes[i - 1] = mergedChangeArr[0]; + changes.splice(i, 1); + i++; + continue; + } + } + // There could be multiple longest common substrings. + // Give preference to the ones containing longer lines + if (this._hasStrings) { + for (let i = 1, len = changes.length; i < len; i++) { + const aChange = changes[i - 1]; + const bChange = changes[i]; + const matchedLength = bChange.originalStart - aChange.originalStart - aChange.originalLength; + const aOriginalStart = aChange.originalStart; + const bOriginalEnd = bChange.originalStart + bChange.originalLength; + const abOriginalLength = bOriginalEnd - aOriginalStart; + const aModifiedStart = aChange.modifiedStart; + const bModifiedEnd = bChange.modifiedStart + bChange.modifiedLength; + const abModifiedLength = bModifiedEnd - aModifiedStart; + // Avoid wasting a lot of time with these searches + if (matchedLength < 5 && abOriginalLength < 20 && abModifiedLength < 20) { + const t = this._findBetterContiguousSequence(aOriginalStart, abOriginalLength, aModifiedStart, abModifiedLength, matchedLength); + if (t) { + const [originalMatchStart, modifiedMatchStart] = t; + if (originalMatchStart !== aChange.originalStart + aChange.originalLength || modifiedMatchStart !== aChange.modifiedStart + aChange.modifiedLength) { + // switch to another sequence that has a better score + aChange.originalLength = originalMatchStart - aChange.originalStart; + aChange.modifiedLength = modifiedMatchStart - aChange.modifiedStart; + bChange.originalStart = originalMatchStart + matchedLength; + bChange.modifiedStart = modifiedMatchStart + matchedLength; + bChange.originalLength = bOriginalEnd - bChange.originalStart; + bChange.modifiedLength = bModifiedEnd - bChange.modifiedStart; + } + } + } + } + } + return changes; + } + _findBetterContiguousSequence(originalStart, originalLength, modifiedStart, modifiedLength, desiredLength) { + if (originalLength < desiredLength || modifiedLength < desiredLength) { + return null; + } + const originalMax = originalStart + originalLength - desiredLength + 1; + const modifiedMax = modifiedStart + modifiedLength - desiredLength + 1; + let bestScore = 0; + let bestOriginalStart = 0; + let bestModifiedStart = 0; + for (let i = originalStart; i < originalMax; i++) { + for (let j = modifiedStart; j < modifiedMax; j++) { + const score = this._contiguousSequenceScore(i, j, desiredLength); + if (score > 0 && score > bestScore) { + bestScore = score; + bestOriginalStart = i; + bestModifiedStart = j; + } + } + } + if (bestScore > 0) { + return [bestOriginalStart, bestModifiedStart]; + } + return null; + } + _contiguousSequenceScore(originalStart, modifiedStart, length) { + let score = 0; + for (let l = 0; l < length; l++) { + if (!this.ElementsAreEqual(originalStart + l, modifiedStart + l)) { + return 0; + } + score += this._originalStringElements[originalStart + l].length; + } + return score; + } + _OriginalIsBoundary(index) { + if (index <= 0 || index >= this._originalElementsOrHash.length - 1) { + return true; + } + return (this._hasStrings && /^\s*$/.test(this._originalStringElements[index])); + } + _OriginalRegionIsBoundary(originalStart, originalLength) { + if (this._OriginalIsBoundary(originalStart) || this._OriginalIsBoundary(originalStart - 1)) { + return true; + } + if (originalLength > 0) { + const originalEnd = originalStart + originalLength; + if (this._OriginalIsBoundary(originalEnd - 1) || this._OriginalIsBoundary(originalEnd)) { + return true; + } + } + return false; + } + _ModifiedIsBoundary(index) { + if (index <= 0 || index >= this._modifiedElementsOrHash.length - 1) { + return true; + } + return (this._hasStrings && /^\s*$/.test(this._modifiedStringElements[index])); + } + _ModifiedRegionIsBoundary(modifiedStart, modifiedLength) { + if (this._ModifiedIsBoundary(modifiedStart) || this._ModifiedIsBoundary(modifiedStart - 1)) { + return true; + } + if (modifiedLength > 0) { + const modifiedEnd = modifiedStart + modifiedLength; + if (this._ModifiedIsBoundary(modifiedEnd - 1) || this._ModifiedIsBoundary(modifiedEnd)) { + return true; + } + } + return false; + } + _boundaryScore(originalStart, originalLength, modifiedStart, modifiedLength) { + const originalScore = (this._OriginalRegionIsBoundary(originalStart, originalLength) ? 1 : 0); + const modifiedScore = (this._ModifiedRegionIsBoundary(modifiedStart, modifiedLength) ? 1 : 0); + return (originalScore + modifiedScore); + } + /** + * Concatenates the two input DiffChange lists and returns the resulting + * list. + * @param The left changes + * @param The right changes + * @returns The concatenated list + */ + ConcatenateChanges(left, right) { + const mergedChangeArr = []; + if (left.length === 0 || right.length === 0) { + return (right.length > 0) ? right : left; + } + else if (this.ChangesOverlap(left[left.length - 1], right[0], mergedChangeArr)) { + // Since we break the problem down recursively, it is possible that we + // might recurse in the middle of a change thereby splitting it into + // two changes. Here in the combining stage, we detect and fuse those + // changes back together + const result = new Array(left.length + right.length - 1); + MyArray.Copy(left, 0, result, 0, left.length - 1); + result[left.length - 1] = mergedChangeArr[0]; + MyArray.Copy(right, 1, result, left.length, right.length - 1); + return result; + } + else { + const result = new Array(left.length + right.length); + MyArray.Copy(left, 0, result, 0, left.length); + MyArray.Copy(right, 0, result, left.length, right.length); + return result; + } + } + /** + * Returns true if the two changes overlap and can be merged into a single + * change + * @param left The left change + * @param right The right change + * @param mergedChange The merged change if the two overlap, null otherwise + * @returns True if the two changes overlap + */ + ChangesOverlap(left, right, mergedChangeArr) { + Debug.Assert(left.originalStart <= right.originalStart, 'Left change is not less than or equal to right change'); + Debug.Assert(left.modifiedStart <= right.modifiedStart, 'Left change is not less than or equal to right change'); + if (left.originalStart + left.originalLength >= right.originalStart || left.modifiedStart + left.modifiedLength >= right.modifiedStart) { + const originalStart = left.originalStart; + let originalLength = left.originalLength; + const modifiedStart = left.modifiedStart; + let modifiedLength = left.modifiedLength; + if (left.originalStart + left.originalLength >= right.originalStart) { + originalLength = right.originalStart + right.originalLength - left.originalStart; + } + if (left.modifiedStart + left.modifiedLength >= right.modifiedStart) { + modifiedLength = right.modifiedStart + right.modifiedLength - left.modifiedStart; + } + mergedChangeArr[0] = new DiffChange(originalStart, originalLength, modifiedStart, modifiedLength); + return true; + } + else { + mergedChangeArr[0] = null; + return false; + } + } + /** + * Helper method used to clip a diagonal index to the range of valid + * diagonals. This also decides whether or not the diagonal index, + * if it exceeds the boundary, should be clipped to the boundary or clipped + * one inside the boundary depending on the Even/Odd status of the boundary + * and numDifferences. + * @param diagonal The index of the diagonal to clip. + * @param numDifferences The current number of differences being iterated upon. + * @param diagonalBaseIndex The base reference diagonal. + * @param numDiagonals The total number of diagonals. + * @returns The clipped diagonal index. + */ + ClipDiagonalBound(diagonal, numDifferences, diagonalBaseIndex, numDiagonals) { + if (diagonal >= 0 && diagonal < numDiagonals) { + // Nothing to clip, its in range + return diagonal; + } + // diagonalsBelow: The number of diagonals below the reference diagonal + // diagonalsAbove: The number of diagonals above the reference diagonal + const diagonalsBelow = diagonalBaseIndex; + const diagonalsAbove = numDiagonals - diagonalBaseIndex - 1; + const diffEven = (numDifferences % 2 === 0); + if (diagonal < 0) { + const lowerBoundEven = (diagonalsBelow % 2 === 0); + return (diffEven === lowerBoundEven) ? 0 : 1; + } + else { + const upperBoundEven = (diagonalsAbove % 2 === 0); + return (diffEven === upperBoundEven) ? numDiagonals - 1 : numDiagonals - 2; + } + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/process.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +let safeProcess; +// Native sandbox environment +if (typeof platform_globals.vscode !== 'undefined' && typeof platform_globals.vscode.process !== 'undefined') { + const sandboxProcess = platform_globals.vscode.process; + safeProcess = { + get platform() { return sandboxProcess.platform; }, + get arch() { return sandboxProcess.arch; }, + get env() { return sandboxProcess.env; }, + cwd() { return sandboxProcess.cwd(); } + }; +} +// Native node.js environment +else if (typeof process !== 'undefined') { + safeProcess = { + get platform() { return process.platform; }, + get arch() { return process.arch; }, + get env() { return process.env; }, + cwd() { return process.env['VSCODE_CWD'] || process.cwd(); } + }; +} +// Web environment +else { + safeProcess = { + // Supported + get platform() { return isWindows ? 'win32' : isMacintosh ? 'darwin' : 'linux'; }, + get arch() { return undefined; /* arch is undefined in web */ }, + // Unsupported + get env() { return {}; }, + cwd() { return '/'; } + }; +} +/** + * Provides safe access to the `cwd` property in node.js, sandboxed or web + * environments. + * + * Note: in web, this property is hardcoded to be `/`. + */ +const cwd = safeProcess.cwd; +/** + * Provides safe access to the `env` property in node.js, sandboxed or web + * environments. + * + * Note: in web, this property is hardcoded to be `{}`. + */ +const env = safeProcess.env; +/** + * Provides safe access to the `platform` property in node.js, sandboxed or web + * environments. + */ +const platform = safeProcess.platform; + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/path.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// NOTE: VSCode's copy of nodejs path library to be usable in common (non-node) namespace +// Copied from: https://github.com/nodejs/node/blob/v14.16.0/lib/path.js +/** + * Copyright Joyent, Inc. and other Node contributors. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to permit + * persons to whom the Software is furnished to do so, subject to the + * following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +const CHAR_UPPERCASE_A = 65; /* A */ +const CHAR_LOWERCASE_A = 97; /* a */ +const CHAR_UPPERCASE_Z = 90; /* Z */ +const CHAR_LOWERCASE_Z = 122; /* z */ +const CHAR_DOT = 46; /* . */ +const CHAR_FORWARD_SLASH = 47; /* / */ +const CHAR_BACKWARD_SLASH = 92; /* \ */ +const CHAR_COLON = 58; /* : */ +const CHAR_QUESTION_MARK = 63; /* ? */ +class ErrorInvalidArgType extends Error { + constructor(name, expected, actual) { + // determiner: 'must be' or 'must not be' + let determiner; + if (typeof expected === 'string' && expected.indexOf('not ') === 0) { + determiner = 'must not be'; + expected = expected.replace(/^not /, ''); + } + else { + determiner = 'must be'; + } + const type = name.indexOf('.') !== -1 ? 'property' : 'argument'; + let msg = `The "${name}" ${type} ${determiner} of type ${expected}`; + msg += `. Received type ${typeof actual}`; + super(msg); + this.code = 'ERR_INVALID_ARG_TYPE'; + } +} +function validateString(value, name) { + if (typeof value !== 'string') { + throw new ErrorInvalidArgType(name, 'string', value); + } +} +function isPathSeparator(code) { + return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; +} +function isPosixPathSeparator(code) { + return code === CHAR_FORWARD_SLASH; +} +function isWindowsDeviceRoot(code) { + return (code >= CHAR_UPPERCASE_A && code <= CHAR_UPPERCASE_Z) || + (code >= CHAR_LOWERCASE_A && code <= CHAR_LOWERCASE_Z); +} +// Resolves . and .. elements in a path with directory names +function normalizeString(path, allowAboveRoot, separator, isPathSeparator) { + let res = ''; + let lastSegmentLength = 0; + let lastSlash = -1; + let dots = 0; + let code = 0; + for (let i = 0; i <= path.length; ++i) { + if (i < path.length) { + code = path.charCodeAt(i); + } + else if (isPathSeparator(code)) { + break; + } + else { + code = CHAR_FORWARD_SLASH; + } + if (isPathSeparator(code)) { + if (lastSlash === i - 1 || dots === 1) { + // NOOP + } + else if (dots === 2) { + if (res.length < 2 || lastSegmentLength !== 2 || + res.charCodeAt(res.length - 1) !== CHAR_DOT || + res.charCodeAt(res.length - 2) !== CHAR_DOT) { + if (res.length > 2) { + const lastSlashIndex = res.lastIndexOf(separator); + if (lastSlashIndex === -1) { + res = ''; + lastSegmentLength = 0; + } + else { + res = res.slice(0, lastSlashIndex); + lastSegmentLength = res.length - 1 - res.lastIndexOf(separator); + } + lastSlash = i; + dots = 0; + continue; + } + else if (res.length !== 0) { + res = ''; + lastSegmentLength = 0; + lastSlash = i; + dots = 0; + continue; + } + } + if (allowAboveRoot) { + res += res.length > 0 ? `${separator}..` : '..'; + lastSegmentLength = 2; + } + } + else { + if (res.length > 0) { + res += `${separator}${path.slice(lastSlash + 1, i)}`; + } + else { + res = path.slice(lastSlash + 1, i); + } + lastSegmentLength = i - lastSlash - 1; + } + lastSlash = i; + dots = 0; + } + else if (code === CHAR_DOT && dots !== -1) { + ++dots; + } + else { + dots = -1; + } + } + return res; +} +function path_format(sep, pathObject) { + if (pathObject === null || typeof pathObject !== 'object') { + throw new ErrorInvalidArgType('pathObject', 'Object', pathObject); + } + const dir = pathObject.dir || pathObject.root; + const base = pathObject.base || + `${pathObject.name || ''}${pathObject.ext || ''}`; + if (!dir) { + return base; + } + return dir === pathObject.root ? `${dir}${base}` : `${dir}${sep}${base}`; +} +const win32 = { + // path.resolve([from ...], to) + resolve(...pathSegments) { + let resolvedDevice = ''; + let resolvedTail = ''; + let resolvedAbsolute = false; + for (let i = pathSegments.length - 1; i >= -1; i--) { + let path; + if (i >= 0) { + path = pathSegments[i]; + validateString(path, 'path'); + // Skip empty entries + if (path.length === 0) { + continue; + } + } + else if (resolvedDevice.length === 0) { + path = cwd(); + } + else { + // Windows has the concept of drive-specific current working + // directories. If we've resolved a drive letter but not yet an + // absolute path, get cwd for that drive, or the process cwd if + // the drive cwd is not available. We're sure the device is not + // a UNC path at this points, because UNC paths are always absolute. + path = env[`=${resolvedDevice}`] || cwd(); + // Verify that a cwd was found and that it actually points + // to our drive. If not, default to the drive's root. + if (path === undefined || + (path.slice(0, 2).toLowerCase() !== resolvedDevice.toLowerCase() && + path.charCodeAt(2) === CHAR_BACKWARD_SLASH)) { + path = `${resolvedDevice}\\`; + } + } + const len = path.length; + let rootEnd = 0; + let device = ''; + let isAbsolute = false; + const code = path.charCodeAt(0); + // Try to match a root + if (len === 1) { + if (isPathSeparator(code)) { + // `path` contains just a path separator + rootEnd = 1; + isAbsolute = true; + } + } + else if (isPathSeparator(code)) { + // Possible UNC root + // If we started with a separator, we know we at least have an + // absolute path of some kind (UNC or otherwise) + isAbsolute = true; + if (isPathSeparator(path.charCodeAt(1))) { + // Matched double path separator at beginning + let j = 2; + let last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + const firstPart = path.slice(last, j); + // Matched! + last = j; + // Match 1 or more path separators + while (j < len && isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j === len || j !== last) { + // We matched a UNC root + device = `\\\\${firstPart}\\${path.slice(last, j)}`; + rootEnd = j; + } + } + } + } + else { + rootEnd = 1; + } + } + else if (isWindowsDeviceRoot(code) && + path.charCodeAt(1) === CHAR_COLON) { + // Possible device root + device = path.slice(0, 2); + rootEnd = 2; + if (len > 2 && isPathSeparator(path.charCodeAt(2))) { + // Treat separator following drive name as an absolute path + // indicator + isAbsolute = true; + rootEnd = 3; + } + } + if (device.length > 0) { + if (resolvedDevice.length > 0) { + if (device.toLowerCase() !== resolvedDevice.toLowerCase()) { + // This path points to another device so it is not applicable + continue; + } + } + else { + resolvedDevice = device; + } + } + if (resolvedAbsolute) { + if (resolvedDevice.length > 0) { + break; + } + } + else { + resolvedTail = `${path.slice(rootEnd)}\\${resolvedTail}`; + resolvedAbsolute = isAbsolute; + if (isAbsolute && resolvedDevice.length > 0) { + break; + } + } + } + // At this point the path should be resolved to a full absolute path, + // but handle relative paths to be safe (might happen when process.cwd() + // fails) + // Normalize the tail path + resolvedTail = normalizeString(resolvedTail, !resolvedAbsolute, '\\', isPathSeparator); + return resolvedAbsolute ? + `${resolvedDevice}\\${resolvedTail}` : + `${resolvedDevice}${resolvedTail}` || '.'; + }, + normalize(path) { + validateString(path, 'path'); + const len = path.length; + if (len === 0) { + return '.'; + } + let rootEnd = 0; + let device; + let isAbsolute = false; + const code = path.charCodeAt(0); + // Try to match a root + if (len === 1) { + // `path` contains just a single char, exit early to avoid + // unnecessary work + return isPosixPathSeparator(code) ? '\\' : path; + } + if (isPathSeparator(code)) { + // Possible UNC root + // If we started with a separator, we know we at least have an absolute + // path of some kind (UNC or otherwise) + isAbsolute = true; + if (isPathSeparator(path.charCodeAt(1))) { + // Matched double path separator at beginning + let j = 2; + let last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + const firstPart = path.slice(last, j); + // Matched! + last = j; + // Match 1 or more path separators + while (j < len && isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j === len) { + // We matched a UNC root only + // Return the normalized version of the UNC root since there + // is nothing left to process + return `\\\\${firstPart}\\${path.slice(last)}\\`; + } + if (j !== last) { + // We matched a UNC root with leftovers + device = `\\\\${firstPart}\\${path.slice(last, j)}`; + rootEnd = j; + } + } + } + } + else { + rootEnd = 1; + } + } + else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) { + // Possible device root + device = path.slice(0, 2); + rootEnd = 2; + if (len > 2 && isPathSeparator(path.charCodeAt(2))) { + // Treat separator following drive name as an absolute path + // indicator + isAbsolute = true; + rootEnd = 3; + } + } + let tail = rootEnd < len ? + normalizeString(path.slice(rootEnd), !isAbsolute, '\\', isPathSeparator) : + ''; + if (tail.length === 0 && !isAbsolute) { + tail = '.'; + } + if (tail.length > 0 && isPathSeparator(path.charCodeAt(len - 1))) { + tail += '\\'; + } + if (device === undefined) { + return isAbsolute ? `\\${tail}` : tail; + } + return isAbsolute ? `${device}\\${tail}` : `${device}${tail}`; + }, + isAbsolute(path) { + validateString(path, 'path'); + const len = path.length; + if (len === 0) { + return false; + } + const code = path.charCodeAt(0); + return isPathSeparator(code) || + // Possible device root + (len > 2 && + isWindowsDeviceRoot(code) && + path.charCodeAt(1) === CHAR_COLON && + isPathSeparator(path.charCodeAt(2))); + }, + join(...paths) { + if (paths.length === 0) { + return '.'; + } + let joined; + let firstPart; + for (let i = 0; i < paths.length; ++i) { + const arg = paths[i]; + validateString(arg, 'path'); + if (arg.length > 0) { + if (joined === undefined) { + joined = firstPart = arg; + } + else { + joined += `\\${arg}`; + } + } + } + if (joined === undefined) { + return '.'; + } + // Make sure that the joined path doesn't start with two slashes, because + // normalize() will mistake it for a UNC path then. + // + // This step is skipped when it is very clear that the user actually + // intended to point at a UNC path. This is assumed when the first + // non-empty string arguments starts with exactly two slashes followed by + // at least one more non-slash character. + // + // Note that for normalize() to treat a path as a UNC path it needs to + // have at least 2 components, so we don't filter for that here. + // This means that the user can use join to construct UNC paths from + // a server name and a share name; for example: + // path.join('//server', 'share') -> '\\\\server\\share\\') + let needsReplace = true; + let slashCount = 0; + if (typeof firstPart === 'string' && isPathSeparator(firstPart.charCodeAt(0))) { + ++slashCount; + const firstLen = firstPart.length; + if (firstLen > 1 && isPathSeparator(firstPart.charCodeAt(1))) { + ++slashCount; + if (firstLen > 2) { + if (isPathSeparator(firstPart.charCodeAt(2))) { + ++slashCount; + } + else { + // We matched a UNC path in the first part + needsReplace = false; + } + } + } + } + if (needsReplace) { + // Find any more consecutive slashes we need to replace + while (slashCount < joined.length && + isPathSeparator(joined.charCodeAt(slashCount))) { + slashCount++; + } + // Replace the slashes if needed + if (slashCount >= 2) { + joined = `\\${joined.slice(slashCount)}`; + } + } + return win32.normalize(joined); + }, + // It will solve the relative path from `from` to `to`, for instance: + // from = 'C:\\orandea\\test\\aaa' + // to = 'C:\\orandea\\impl\\bbb' + // The output of the function should be: '..\\..\\impl\\bbb' + relative(from, to) { + validateString(from, 'from'); + validateString(to, 'to'); + if (from === to) { + return ''; + } + const fromOrig = win32.resolve(from); + const toOrig = win32.resolve(to); + if (fromOrig === toOrig) { + return ''; + } + from = fromOrig.toLowerCase(); + to = toOrig.toLowerCase(); + if (from === to) { + return ''; + } + // Trim any leading backslashes + let fromStart = 0; + while (fromStart < from.length && + from.charCodeAt(fromStart) === CHAR_BACKWARD_SLASH) { + fromStart++; + } + // Trim trailing backslashes (applicable to UNC paths only) + let fromEnd = from.length; + while (fromEnd - 1 > fromStart && + from.charCodeAt(fromEnd - 1) === CHAR_BACKWARD_SLASH) { + fromEnd--; + } + const fromLen = fromEnd - fromStart; + // Trim any leading backslashes + let toStart = 0; + while (toStart < to.length && + to.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) { + toStart++; + } + // Trim trailing backslashes (applicable to UNC paths only) + let toEnd = to.length; + while (toEnd - 1 > toStart && + to.charCodeAt(toEnd - 1) === CHAR_BACKWARD_SLASH) { + toEnd--; + } + const toLen = toEnd - toStart; + // Compare paths to find the longest common path from root + const length = fromLen < toLen ? fromLen : toLen; + let lastCommonSep = -1; + let i = 0; + for (; i < length; i++) { + const fromCode = from.charCodeAt(fromStart + i); + if (fromCode !== to.charCodeAt(toStart + i)) { + break; + } + else if (fromCode === CHAR_BACKWARD_SLASH) { + lastCommonSep = i; + } + } + // We found a mismatch before the first common path separator was seen, so + // return the original `to`. + if (i !== length) { + if (lastCommonSep === -1) { + return toOrig; + } + } + else { + if (toLen > length) { + if (to.charCodeAt(toStart + i) === CHAR_BACKWARD_SLASH) { + // We get here if `from` is the exact base path for `to`. + // For example: from='C:\\foo\\bar'; to='C:\\foo\\bar\\baz' + return toOrig.slice(toStart + i + 1); + } + if (i === 2) { + // We get here if `from` is the device root. + // For example: from='C:\\'; to='C:\\foo' + return toOrig.slice(toStart + i); + } + } + if (fromLen > length) { + if (from.charCodeAt(fromStart + i) === CHAR_BACKWARD_SLASH) { + // We get here if `to` is the exact base path for `from`. + // For example: from='C:\\foo\\bar'; to='C:\\foo' + lastCommonSep = i; + } + else if (i === 2) { + // We get here if `to` is the device root. + // For example: from='C:\\foo\\bar'; to='C:\\' + lastCommonSep = 3; + } + } + if (lastCommonSep === -1) { + lastCommonSep = 0; + } + } + let out = ''; + // Generate the relative path based on the path difference between `to` and + // `from` + for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { + if (i === fromEnd || from.charCodeAt(i) === CHAR_BACKWARD_SLASH) { + out += out.length === 0 ? '..' : '\\..'; + } + } + toStart += lastCommonSep; + // Lastly, append the rest of the destination (`to`) path that comes after + // the common path parts + if (out.length > 0) { + return `${out}${toOrig.slice(toStart, toEnd)}`; + } + if (toOrig.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) { + ++toStart; + } + return toOrig.slice(toStart, toEnd); + }, + toNamespacedPath(path) { + // Note: this will *probably* throw somewhere. + if (typeof path !== 'string') { + return path; + } + if (path.length === 0) { + return ''; + } + const resolvedPath = win32.resolve(path); + if (resolvedPath.length <= 2) { + return path; + } + if (resolvedPath.charCodeAt(0) === CHAR_BACKWARD_SLASH) { + // Possible UNC root + if (resolvedPath.charCodeAt(1) === CHAR_BACKWARD_SLASH) { + const code = resolvedPath.charCodeAt(2); + if (code !== CHAR_QUESTION_MARK && code !== CHAR_DOT) { + // Matched non-long UNC root, convert the path to a long UNC path + return `\\\\?\\UNC\\${resolvedPath.slice(2)}`; + } + } + } + else if (isWindowsDeviceRoot(resolvedPath.charCodeAt(0)) && + resolvedPath.charCodeAt(1) === CHAR_COLON && + resolvedPath.charCodeAt(2) === CHAR_BACKWARD_SLASH) { + // Matched device root, convert the path to a long UNC path + return `\\\\?\\${resolvedPath}`; + } + return path; + }, + dirname(path) { + validateString(path, 'path'); + const len = path.length; + if (len === 0) { + return '.'; + } + let rootEnd = -1; + let offset = 0; + const code = path.charCodeAt(0); + if (len === 1) { + // `path` contains just a path separator, exit early to avoid + // unnecessary work or a dot. + return isPathSeparator(code) ? path : '.'; + } + // Try to match a root + if (isPathSeparator(code)) { + // Possible UNC root + rootEnd = offset = 1; + if (isPathSeparator(path.charCodeAt(1))) { + // Matched double path separator at beginning + let j = 2; + let last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more path separators + while (j < len && isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j === len) { + // We matched a UNC root only + return path; + } + if (j !== last) { + // We matched a UNC root with leftovers + // Offset by 1 to include the separator after the UNC root to + // treat it as a "normal root" on top of a (UNC) root + rootEnd = offset = j + 1; + } + } + } + } + // Possible device root + } + else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) { + rootEnd = len > 2 && isPathSeparator(path.charCodeAt(2)) ? 3 : 2; + offset = rootEnd; + } + let end = -1; + let matchedSlash = true; + for (let i = len - 1; i >= offset; --i) { + if (isPathSeparator(path.charCodeAt(i))) { + if (!matchedSlash) { + end = i; + break; + } + } + else { + // We saw the first non-path separator + matchedSlash = false; + } + } + if (end === -1) { + if (rootEnd === -1) { + return '.'; + } + end = rootEnd; + } + return path.slice(0, end); + }, + basename(path, ext) { + if (ext !== undefined) { + validateString(ext, 'ext'); + } + validateString(path, 'path'); + let start = 0; + let end = -1; + let matchedSlash = true; + let i; + // Check for a drive letter prefix so as not to mistake the following + // path separator as an extra separator at the end of the path that can be + // disregarded + if (path.length >= 2 && + isWindowsDeviceRoot(path.charCodeAt(0)) && + path.charCodeAt(1) === CHAR_COLON) { + start = 2; + } + if (ext !== undefined && ext.length > 0 && ext.length <= path.length) { + if (ext === path) { + return ''; + } + let extIdx = ext.length - 1; + let firstNonSlashEnd = -1; + for (i = path.length - 1; i >= start; --i) { + const code = path.charCodeAt(i); + if (isPathSeparator(code)) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } + else { + if (firstNonSlashEnd === -1) { + // We saw the first non-path separator, remember this index in case + // we need it if the extension ends up not matching + matchedSlash = false; + firstNonSlashEnd = i + 1; + } + if (extIdx >= 0) { + // Try to match the explicit extension + if (code === ext.charCodeAt(extIdx)) { + if (--extIdx === -1) { + // We matched the extension, so mark this as the end of our path + // component + end = i; + } + } + else { + // Extension does not match, so our result is the entire path + // component + extIdx = -1; + end = firstNonSlashEnd; + } + } + } + } + if (start === end) { + end = firstNonSlashEnd; + } + else if (end === -1) { + end = path.length; + } + return path.slice(start, end); + } + for (i = path.length - 1; i >= start; --i) { + if (isPathSeparator(path.charCodeAt(i))) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } + else if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // path component + matchedSlash = false; + end = i + 1; + } + } + if (end === -1) { + return ''; + } + return path.slice(start, end); + }, + extname(path) { + validateString(path, 'path'); + let start = 0; + let startDot = -1; + let startPart = 0; + let end = -1; + let matchedSlash = true; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + let preDotState = 0; + // Check for a drive letter prefix so as not to mistake the following + // path separator as an extra separator at the end of the path that can be + // disregarded + if (path.length >= 2 && + path.charCodeAt(1) === CHAR_COLON && + isWindowsDeviceRoot(path.charCodeAt(0))) { + start = startPart = 2; + } + for (let i = path.length - 1; i >= start; --i) { + const code = path.charCodeAt(i); + if (isPathSeparator(code)) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === CHAR_DOT) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) { + startDot = i; + } + else if (preDotState !== 1) { + preDotState = 1; + } + } + else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + if (startDot === -1 || + end === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + (preDotState === 1 && + startDot === end - 1 && + startDot === startPart + 1)) { + return ''; + } + return path.slice(startDot, end); + }, + format: path_format.bind(null, '\\'), + parse(path) { + validateString(path, 'path'); + const ret = { root: '', dir: '', base: '', ext: '', name: '' }; + if (path.length === 0) { + return ret; + } + const len = path.length; + let rootEnd = 0; + let code = path.charCodeAt(0); + if (len === 1) { + if (isPathSeparator(code)) { + // `path` contains just a path separator, exit early to avoid + // unnecessary work + ret.root = ret.dir = path; + return ret; + } + ret.base = ret.name = path; + return ret; + } + // Try to match a root + if (isPathSeparator(code)) { + // Possible UNC root + rootEnd = 1; + if (isPathSeparator(path.charCodeAt(1))) { + // Matched double path separator at beginning + let j = 2; + let last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more path separators + while (j < len && isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j < len && j !== last) { + // Matched! + last = j; + // Match 1 or more non-path separators + while (j < len && !isPathSeparator(path.charCodeAt(j))) { + j++; + } + if (j === len) { + // We matched a UNC root only + rootEnd = j; + } + else if (j !== last) { + // We matched a UNC root with leftovers + rootEnd = j + 1; + } + } + } + } + } + else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) { + // Possible device root + if (len <= 2) { + // `path` contains just a drive root, exit early to avoid + // unnecessary work + ret.root = ret.dir = path; + return ret; + } + rootEnd = 2; + if (isPathSeparator(path.charCodeAt(2))) { + if (len === 3) { + // `path` contains just a drive root, exit early to avoid + // unnecessary work + ret.root = ret.dir = path; + return ret; + } + rootEnd = 3; + } + } + if (rootEnd > 0) { + ret.root = path.slice(0, rootEnd); + } + let startDot = -1; + let startPart = rootEnd; + let end = -1; + let matchedSlash = true; + let i = path.length - 1; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + let preDotState = 0; + // Get non-dir info + for (; i >= rootEnd; --i) { + code = path.charCodeAt(i); + if (isPathSeparator(code)) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === CHAR_DOT) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) { + startDot = i; + } + else if (preDotState !== 1) { + preDotState = 1; + } + } + else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + if (end !== -1) { + if (startDot === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + (preDotState === 1 && + startDot === end - 1 && + startDot === startPart + 1)) { + ret.base = ret.name = path.slice(startPart, end); + } + else { + ret.name = path.slice(startPart, startDot); + ret.base = path.slice(startPart, end); + ret.ext = path.slice(startDot, end); + } + } + // If the directory is the root, use the entire root as the `dir` including + // the trailing slash if any (`C:\abc` -> `C:\`). Otherwise, strip out the + // trailing slash (`C:\abc\def` -> `C:\abc`). + if (startPart > 0 && startPart !== rootEnd) { + ret.dir = path.slice(0, startPart - 1); + } + else { + ret.dir = ret.root; + } + return ret; + }, + sep: '\\', + delimiter: ';', + win32: null, + posix: null +}; +const posix = { + // path.resolve([from ...], to) + resolve(...pathSegments) { + let resolvedPath = ''; + let resolvedAbsolute = false; + for (let i = pathSegments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + const path = i >= 0 ? pathSegments[i] : cwd(); + validateString(path, 'path'); + // Skip empty entries + if (path.length === 0) { + continue; + } + resolvedPath = `${path}/${resolvedPath}`; + resolvedAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + // Normalize the path + resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute, '/', isPosixPathSeparator); + if (resolvedAbsolute) { + return `/${resolvedPath}`; + } + return resolvedPath.length > 0 ? resolvedPath : '.'; + }, + normalize(path) { + validateString(path, 'path'); + if (path.length === 0) { + return '.'; + } + const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; + const trailingSeparator = path.charCodeAt(path.length - 1) === CHAR_FORWARD_SLASH; + // Normalize the path + path = normalizeString(path, !isAbsolute, '/', isPosixPathSeparator); + if (path.length === 0) { + if (isAbsolute) { + return '/'; + } + return trailingSeparator ? './' : '.'; + } + if (trailingSeparator) { + path += '/'; + } + return isAbsolute ? `/${path}` : path; + }, + isAbsolute(path) { + validateString(path, 'path'); + return path.length > 0 && path.charCodeAt(0) === CHAR_FORWARD_SLASH; + }, + join(...paths) { + if (paths.length === 0) { + return '.'; + } + let joined; + for (let i = 0; i < paths.length; ++i) { + const arg = paths[i]; + validateString(arg, 'path'); + if (arg.length > 0) { + if (joined === undefined) { + joined = arg; + } + else { + joined += `/${arg}`; + } + } + } + if (joined === undefined) { + return '.'; + } + return posix.normalize(joined); + }, + relative(from, to) { + validateString(from, 'from'); + validateString(to, 'to'); + if (from === to) { + return ''; + } + // Trim leading forward slashes. + from = posix.resolve(from); + to = posix.resolve(to); + if (from === to) { + return ''; + } + const fromStart = 1; + const fromEnd = from.length; + const fromLen = fromEnd - fromStart; + const toStart = 1; + const toLen = to.length - toStart; + // Compare paths to find the longest common path from root + const length = (fromLen < toLen ? fromLen : toLen); + let lastCommonSep = -1; + let i = 0; + for (; i < length; i++) { + const fromCode = from.charCodeAt(fromStart + i); + if (fromCode !== to.charCodeAt(toStart + i)) { + break; + } + else if (fromCode === CHAR_FORWARD_SLASH) { + lastCommonSep = i; + } + } + if (i === length) { + if (toLen > length) { + if (to.charCodeAt(toStart + i) === CHAR_FORWARD_SLASH) { + // We get here if `from` is the exact base path for `to`. + // For example: from='/foo/bar'; to='/foo/bar/baz' + return to.slice(toStart + i + 1); + } + if (i === 0) { + // We get here if `from` is the root + // For example: from='/'; to='/foo' + return to.slice(toStart + i); + } + } + else if (fromLen > length) { + if (from.charCodeAt(fromStart + i) === CHAR_FORWARD_SLASH) { + // We get here if `to` is the exact base path for `from`. + // For example: from='/foo/bar/baz'; to='/foo/bar' + lastCommonSep = i; + } + else if (i === 0) { + // We get here if `to` is the root. + // For example: from='/foo/bar'; to='/' + lastCommonSep = 0; + } + } + } + let out = ''; + // Generate the relative path based on the path difference between `to` + // and `from`. + for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { + if (i === fromEnd || from.charCodeAt(i) === CHAR_FORWARD_SLASH) { + out += out.length === 0 ? '..' : '/..'; + } + } + // Lastly, append the rest of the destination (`to`) path that comes after + // the common path parts. + return `${out}${to.slice(toStart + lastCommonSep)}`; + }, + toNamespacedPath(path) { + // Non-op on posix systems + return path; + }, + dirname(path) { + validateString(path, 'path'); + if (path.length === 0) { + return '.'; + } + const hasRoot = path.charCodeAt(0) === CHAR_FORWARD_SLASH; + let end = -1; + let matchedSlash = true; + for (let i = path.length - 1; i >= 1; --i) { + if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) { + if (!matchedSlash) { + end = i; + break; + } + } + else { + // We saw the first non-path separator + matchedSlash = false; + } + } + if (end === -1) { + return hasRoot ? '/' : '.'; + } + if (hasRoot && end === 1) { + return '//'; + } + return path.slice(0, end); + }, + basename(path, ext) { + if (ext !== undefined) { + validateString(ext, 'ext'); + } + validateString(path, 'path'); + let start = 0; + let end = -1; + let matchedSlash = true; + let i; + if (ext !== undefined && ext.length > 0 && ext.length <= path.length) { + if (ext === path) { + return ''; + } + let extIdx = ext.length - 1; + let firstNonSlashEnd = -1; + for (i = path.length - 1; i >= 0; --i) { + const code = path.charCodeAt(i); + if (code === CHAR_FORWARD_SLASH) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } + else { + if (firstNonSlashEnd === -1) { + // We saw the first non-path separator, remember this index in case + // we need it if the extension ends up not matching + matchedSlash = false; + firstNonSlashEnd = i + 1; + } + if (extIdx >= 0) { + // Try to match the explicit extension + if (code === ext.charCodeAt(extIdx)) { + if (--extIdx === -1) { + // We matched the extension, so mark this as the end of our path + // component + end = i; + } + } + else { + // Extension does not match, so our result is the entire path + // component + extIdx = -1; + end = firstNonSlashEnd; + } + } + } + } + if (start === end) { + end = firstNonSlashEnd; + } + else if (end === -1) { + end = path.length; + } + return path.slice(start, end); + } + for (i = path.length - 1; i >= 0; --i) { + if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } + else if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // path component + matchedSlash = false; + end = i + 1; + } + } + if (end === -1) { + return ''; + } + return path.slice(start, end); + }, + extname(path) { + validateString(path, 'path'); + let startDot = -1; + let startPart = 0; + let end = -1; + let matchedSlash = true; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + let preDotState = 0; + for (let i = path.length - 1; i >= 0; --i) { + const code = path.charCodeAt(i); + if (code === CHAR_FORWARD_SLASH) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === CHAR_DOT) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) { + startDot = i; + } + else if (preDotState !== 1) { + preDotState = 1; + } + } + else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + if (startDot === -1 || + end === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + (preDotState === 1 && + startDot === end - 1 && + startDot === startPart + 1)) { + return ''; + } + return path.slice(startDot, end); + }, + format: path_format.bind(null, '/'), + parse(path) { + validateString(path, 'path'); + const ret = { root: '', dir: '', base: '', ext: '', name: '' }; + if (path.length === 0) { + return ret; + } + const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; + let start; + if (isAbsolute) { + ret.root = '/'; + start = 1; + } + else { + start = 0; + } + let startDot = -1; + let startPart = 0; + let end = -1; + let matchedSlash = true; + let i = path.length - 1; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + let preDotState = 0; + // Get non-dir info + for (; i >= start; --i) { + const code = path.charCodeAt(i); + if (code === CHAR_FORWARD_SLASH) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === CHAR_DOT) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) { + startDot = i; + } + else if (preDotState !== 1) { + preDotState = 1; + } + } + else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + if (end !== -1) { + const start = startPart === 0 && isAbsolute ? 1 : startPart; + if (startDot === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + (preDotState === 1 && + startDot === end - 1 && + startDot === startPart + 1)) { + ret.base = ret.name = path.slice(start, end); + } + else { + ret.name = path.slice(start, startDot); + ret.base = path.slice(start, end); + ret.ext = path.slice(startDot, end); + } + } + if (startPart > 0) { + ret.dir = path.slice(0, startPart - 1); + } + else if (isAbsolute) { + ret.dir = '/'; + } + return ret; + }, + sep: '/', + delimiter: ':', + win32: null, + posix: null +}; +posix.win32 = win32.win32 = win32; +posix.posix = win32.posix = posix; +const normalize = (platform === 'win32' ? win32.normalize : posix.normalize); +const resolve = (platform === 'win32' ? win32.resolve : posix.resolve); +const relative = (platform === 'win32' ? win32.relative : posix.relative); +const dirname = (platform === 'win32' ? win32.dirname : posix.dirname); +const basename = (platform === 'win32' ? win32.basename : posix.basename); +const extname = (platform === 'win32' ? win32.extname : posix.extname); +const sep = (platform === 'win32' ? win32.sep : posix.sep); + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/uri.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + + +const _schemePattern = /^\w[\w\d+.-]*$/; +const _singleSlashStart = /^\//; +const _doubleSlashStart = /^\/\//; +function _validateUri(ret, _strict) { + // scheme, must be set + if (!ret.scheme && _strict) { + throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${ret.authority}", path: "${ret.path}", query: "${ret.query}", fragment: "${ret.fragment}"}`); + } + // scheme, https://tools.ietf.org/html/rfc3986#section-3.1 + // ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ) + if (ret.scheme && !_schemePattern.test(ret.scheme)) { + throw new Error('[UriError]: Scheme contains illegal characters.'); + } + // path, http://tools.ietf.org/html/rfc3986#section-3.3 + // If a URI contains an authority component, then the path component + // must either be empty or begin with a slash ("/") character. If a URI + // does not contain an authority component, then the path cannot begin + // with two slash characters ("//"). + if (ret.path) { + if (ret.authority) { + if (!_singleSlashStart.test(ret.path)) { + throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character'); + } + } + else { + if (_doubleSlashStart.test(ret.path)) { + throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")'); + } + } + } +} +// for a while we allowed uris *without* schemes and this is the migration +// for them, e.g. an uri without scheme and without strict-mode warns and falls +// back to the file-scheme. that should cause the least carnage and still be a +// clear warning +function _schemeFix(scheme, _strict) { + if (!scheme && !_strict) { + return 'file'; + } + return scheme; +} +// implements a bit of https://tools.ietf.org/html/rfc3986#section-5 +function _referenceResolution(scheme, path) { + // the slash-character is our 'default base' as we don't + // support constructing URIs relative to other URIs. This + // also means that we alter and potentially break paths. + // see https://tools.ietf.org/html/rfc3986#section-5.1.4 + switch (scheme) { + case 'https': + case 'http': + case 'file': + if (!path) { + path = _slash; + } + else if (path[0] !== _slash) { + path = _slash + path; + } + break; + } + return path; +} +const _empty = ''; +const _slash = '/'; +const _regexp = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/; +/** + * Uniform Resource Identifier (URI) http://tools.ietf.org/html/rfc3986. + * This class is a simple parser which creates the basic component parts + * (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation + * and encoding. + * + * ```txt + * foo://example.com:8042/over/there?name=ferret#nose + * \_/ \______________/\_________/ \_________/ \__/ + * | | | | | + * scheme authority path query fragment + * | _____________________|__ + * / \ / \ + * urn:example:animal:ferret:nose + * ``` + */ +class uri_URI { + /** + * @internal + */ + constructor(schemeOrData, authority, path, query, fragment, _strict = false) { + if (typeof schemeOrData === 'object') { + this.scheme = schemeOrData.scheme || _empty; + this.authority = schemeOrData.authority || _empty; + this.path = schemeOrData.path || _empty; + this.query = schemeOrData.query || _empty; + this.fragment = schemeOrData.fragment || _empty; + // no validation because it's this URI + // that creates uri components. + // _validateUri(this); + } + else { + this.scheme = _schemeFix(schemeOrData, _strict); + this.authority = authority || _empty; + this.path = _referenceResolution(this.scheme, path || _empty); + this.query = query || _empty; + this.fragment = fragment || _empty; + _validateUri(this, _strict); + } + } + static isUri(thing) { + if (thing instanceof uri_URI) { + return true; + } + if (!thing) { + return false; + } + return typeof thing.authority === 'string' + && typeof thing.fragment === 'string' + && typeof thing.path === 'string' + && typeof thing.query === 'string' + && typeof thing.scheme === 'string' + && typeof thing.fsPath === 'string' + && typeof thing.with === 'function' + && typeof thing.toString === 'function'; + } + // ---- filesystem path ----------------------- + /** + * Returns a string representing the corresponding file system path of this URI. + * Will handle UNC paths, normalizes windows drive letters to lower-case, and uses the + * platform specific path separator. + * + * * Will *not* validate the path for invalid characters and semantics. + * * Will *not* look at the scheme of this URI. + * * The result shall *not* be used for display purposes but for accessing a file on disk. + * + * + * The *difference* to `URI#path` is the use of the platform specific separator and the handling + * of UNC paths. See the below sample of a file-uri with an authority (UNC path). + * + * ```ts + const u = URI.parse('file://server/c$/folder/file.txt') + u.authority === 'server' + u.path === '/shares/c$/file.txt' + u.fsPath === '\\server\c$\folder\file.txt' + ``` + * + * Using `URI#path` to read a file (using fs-apis) would not be enough because parts of the path, + * namely the server name, would be missing. Therefore `URI#fsPath` exists - it's sugar to ease working + * with URIs that represent files on disk (`file` scheme). + */ + get fsPath() { + // if (this.scheme !== 'file') { + // console.warn(`[UriError] calling fsPath with scheme ${this.scheme}`); + // } + return uriToFsPath(this, false); + } + // ---- modify to new ------------------------- + with(change) { + if (!change) { + return this; + } + let { scheme, authority, path, query, fragment } = change; + if (scheme === undefined) { + scheme = this.scheme; + } + else if (scheme === null) { + scheme = _empty; + } + if (authority === undefined) { + authority = this.authority; + } + else if (authority === null) { + authority = _empty; + } + if (path === undefined) { + path = this.path; + } + else if (path === null) { + path = _empty; + } + if (query === undefined) { + query = this.query; + } + else if (query === null) { + query = _empty; + } + if (fragment === undefined) { + fragment = this.fragment; + } + else if (fragment === null) { + fragment = _empty; + } + if (scheme === this.scheme + && authority === this.authority + && path === this.path + && query === this.query + && fragment === this.fragment) { + return this; + } + return new Uri(scheme, authority, path, query, fragment); + } + // ---- parse & validate ------------------------ + /** + * Creates a new URI from a string, e.g. `http://www.example.com/some/path`, + * `file:///usr/home`, or `scheme:with/path`. + * + * @param value A string which represents an URI (see `URI#toString`). + */ + static parse(value, _strict = false) { + const match = _regexp.exec(value); + if (!match) { + return new Uri(_empty, _empty, _empty, _empty, _empty); + } + return new Uri(match[2] || _empty, percentDecode(match[4] || _empty), percentDecode(match[5] || _empty), percentDecode(match[7] || _empty), percentDecode(match[9] || _empty), _strict); + } + /** + * Creates a new URI from a file system path, e.g. `c:\my\files`, + * `/usr/home`, or `\\server\share\some\path`. + * + * The *difference* between `URI#parse` and `URI#file` is that the latter treats the argument + * as path, not as stringified-uri. E.g. `URI.file(path)` is **not the same as** + * `URI.parse('file://' + path)` because the path might contain characters that are + * interpreted (# and ?). See the following sample: + * ```ts + const good = URI.file('/coding/c#/project1'); + good.scheme === 'file'; + good.path === '/coding/c#/project1'; + good.fragment === ''; + const bad = URI.parse('file://' + '/coding/c#/project1'); + bad.scheme === 'file'; + bad.path === '/coding/c'; // path is now broken + bad.fragment === '/project1'; + ``` + * + * @param path A file system path (see `URI#fsPath`) + */ + static file(path) { + let authority = _empty; + // normalize to fwd-slashes on windows, + // on other systems bwd-slashes are valid + // filename character, eg /f\oo/ba\r.txt + if (isWindows) { + path = path.replace(/\\/g, _slash); + } + // check for authority as used in UNC shares + // or use the path as given + if (path[0] === _slash && path[1] === _slash) { + const idx = path.indexOf(_slash, 2); + if (idx === -1) { + authority = path.substring(2); + path = _slash; + } + else { + authority = path.substring(2, idx); + path = path.substring(idx) || _slash; + } + } + return new Uri('file', authority, path, _empty, _empty); + } + static from(components) { + const result = new Uri(components.scheme, components.authority, components.path, components.query, components.fragment); + _validateUri(result, true); + return result; + } + /** + * Join a URI path with path fragments and normalizes the resulting path. + * + * @param uri The input URI. + * @param pathFragment The path fragment to add to the URI path. + * @returns The resulting URI. + */ + static joinPath(uri, ...pathFragment) { + if (!uri.path) { + throw new Error(`[UriError]: cannot call joinPath on URI without path`); + } + let newPath; + if (isWindows && uri.scheme === 'file') { + newPath = uri_URI.file(win32.join(uriToFsPath(uri, true), ...pathFragment)).path; + } + else { + newPath = posix.join(uri.path, ...pathFragment); + } + return uri.with({ path: newPath }); + } + // ---- printing/externalize --------------------------- + /** + * Creates a string representation for this URI. It's guaranteed that calling + * `URI.parse` with the result of this function creates an URI which is equal + * to this URI. + * + * * The result shall *not* be used for display purposes but for externalization or transport. + * * The result will be encoded using the percentage encoding and encoding happens mostly + * ignore the scheme-specific encoding rules. + * + * @param skipEncoding Do not encode the result, default is `false` + */ + toString(skipEncoding = false) { + return _asFormatted(this, skipEncoding); + } + toJSON() { + return this; + } + static revive(data) { + if (!data) { + return data; + } + else if (data instanceof uri_URI) { + return data; + } + else { + const result = new Uri(data); + result._formatted = data.external; + result._fsPath = data._sep === _pathSepMarker ? data.fsPath : null; + return result; + } + } +} +const _pathSepMarker = isWindows ? 1 : undefined; +// This class exists so that URI is compatible with vscode.Uri (API). +class Uri extends uri_URI { + constructor() { + super(...arguments); + this._formatted = null; + this._fsPath = null; + } + get fsPath() { + if (!this._fsPath) { + this._fsPath = uriToFsPath(this, false); + } + return this._fsPath; + } + toString(skipEncoding = false) { + if (!skipEncoding) { + if (!this._formatted) { + this._formatted = _asFormatted(this, false); + } + return this._formatted; + } + else { + // we don't cache that + return _asFormatted(this, true); + } + } + toJSON() { + const res = { + $mid: 1 /* MarshalledId.Uri */ + }; + // cached state + if (this._fsPath) { + res.fsPath = this._fsPath; + res._sep = _pathSepMarker; + } + if (this._formatted) { + res.external = this._formatted; + } + // uri components + if (this.path) { + res.path = this.path; + } + if (this.scheme) { + res.scheme = this.scheme; + } + if (this.authority) { + res.authority = this.authority; + } + if (this.query) { + res.query = this.query; + } + if (this.fragment) { + res.fragment = this.fragment; + } + return res; + } +} +// reserved characters: https://tools.ietf.org/html/rfc3986#section-2.2 +const encodeTable = { + [58 /* CharCode.Colon */]: '%3A', + [47 /* CharCode.Slash */]: '%2F', + [63 /* CharCode.QuestionMark */]: '%3F', + [35 /* CharCode.Hash */]: '%23', + [91 /* CharCode.OpenSquareBracket */]: '%5B', + [93 /* CharCode.CloseSquareBracket */]: '%5D', + [64 /* CharCode.AtSign */]: '%40', + [33 /* CharCode.ExclamationMark */]: '%21', + [36 /* CharCode.DollarSign */]: '%24', + [38 /* CharCode.Ampersand */]: '%26', + [39 /* CharCode.SingleQuote */]: '%27', + [40 /* CharCode.OpenParen */]: '%28', + [41 /* CharCode.CloseParen */]: '%29', + [42 /* CharCode.Asterisk */]: '%2A', + [43 /* CharCode.Plus */]: '%2B', + [44 /* CharCode.Comma */]: '%2C', + [59 /* CharCode.Semicolon */]: '%3B', + [61 /* CharCode.Equals */]: '%3D', + [32 /* CharCode.Space */]: '%20', +}; +function encodeURIComponentFast(uriComponent, allowSlash) { + let res = undefined; + let nativeEncodePos = -1; + for (let pos = 0; pos < uriComponent.length; pos++) { + const code = uriComponent.charCodeAt(pos); + // unreserved characters: https://tools.ietf.org/html/rfc3986#section-2.3 + if ((code >= 97 /* CharCode.a */ && code <= 122 /* CharCode.z */) + || (code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */) + || (code >= 48 /* CharCode.Digit0 */ && code <= 57 /* CharCode.Digit9 */) + || code === 45 /* CharCode.Dash */ + || code === 46 /* CharCode.Period */ + || code === 95 /* CharCode.Underline */ + || code === 126 /* CharCode.Tilde */ + || (allowSlash && code === 47 /* CharCode.Slash */)) { + // check if we are delaying native encode + if (nativeEncodePos !== -1) { + res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos)); + nativeEncodePos = -1; + } + // check if we write into a new string (by default we try to return the param) + if (res !== undefined) { + res += uriComponent.charAt(pos); + } + } + else { + // encoding needed, we need to allocate a new string + if (res === undefined) { + res = uriComponent.substr(0, pos); + } + // check with default table first + const escaped = encodeTable[code]; + if (escaped !== undefined) { + // check if we are delaying native encode + if (nativeEncodePos !== -1) { + res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos)); + nativeEncodePos = -1; + } + // append escaped variant to result + res += escaped; + } + else if (nativeEncodePos === -1) { + // use native encode only when needed + nativeEncodePos = pos; + } + } + } + if (nativeEncodePos !== -1) { + res += encodeURIComponent(uriComponent.substring(nativeEncodePos)); + } + return res !== undefined ? res : uriComponent; +} +function encodeURIComponentMinimal(path) { + let res = undefined; + for (let pos = 0; pos < path.length; pos++) { + const code = path.charCodeAt(pos); + if (code === 35 /* CharCode.Hash */ || code === 63 /* CharCode.QuestionMark */) { + if (res === undefined) { + res = path.substr(0, pos); + } + res += encodeTable[code]; + } + else { + if (res !== undefined) { + res += path[pos]; + } + } + } + return res !== undefined ? res : path; +} +/** + * Compute `fsPath` for the given uri + */ +function uriToFsPath(uri, keepDriveLetterCasing) { + let value; + if (uri.authority && uri.path.length > 1 && uri.scheme === 'file') { + // unc path: file://shares/c$/far/boo + value = `//${uri.authority}${uri.path}`; + } + else if (uri.path.charCodeAt(0) === 47 /* CharCode.Slash */ + && (uri.path.charCodeAt(1) >= 65 /* CharCode.A */ && uri.path.charCodeAt(1) <= 90 /* CharCode.Z */ || uri.path.charCodeAt(1) >= 97 /* CharCode.a */ && uri.path.charCodeAt(1) <= 122 /* CharCode.z */) + && uri.path.charCodeAt(2) === 58 /* CharCode.Colon */) { + if (!keepDriveLetterCasing) { + // windows drive letter: file:///c:/far/boo + value = uri.path[1].toLowerCase() + uri.path.substr(2); + } + else { + value = uri.path.substr(1); + } + } + else { + // other path + value = uri.path; + } + if (isWindows) { + value = value.replace(/\//g, '\\'); + } + return value; +} +/** + * Create the external version of a uri + */ +function _asFormatted(uri, skipEncoding) { + const encoder = !skipEncoding + ? encodeURIComponentFast + : encodeURIComponentMinimal; + let res = ''; + let { scheme, authority, path, query, fragment } = uri; + if (scheme) { + res += scheme; + res += ':'; + } + if (authority || scheme === 'file') { + res += _slash; + res += _slash; + } + if (authority) { + let idx = authority.indexOf('@'); + if (idx !== -1) { + // @ + const userinfo = authority.substr(0, idx); + authority = authority.substr(idx + 1); + idx = userinfo.indexOf(':'); + if (idx === -1) { + res += encoder(userinfo, false); + } + else { + // :@ + res += encoder(userinfo.substr(0, idx), false); + res += ':'; + res += encoder(userinfo.substr(idx + 1), false); + } + res += '@'; + } + authority = authority.toLowerCase(); + idx = authority.indexOf(':'); + if (idx === -1) { + res += encoder(authority, false); + } + else { + // : + res += encoder(authority.substr(0, idx), false); + res += authority.substr(idx); + } + } + if (path) { + // lower-case windows drive letters in /C:/fff or C:/fff + if (path.length >= 3 && path.charCodeAt(0) === 47 /* CharCode.Slash */ && path.charCodeAt(2) === 58 /* CharCode.Colon */) { + const code = path.charCodeAt(1); + if (code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */) { + path = `/${String.fromCharCode(code + 32)}:${path.substr(3)}`; // "/c:".length === 3 + } + } + else if (path.length >= 2 && path.charCodeAt(1) === 58 /* CharCode.Colon */) { + const code = path.charCodeAt(0); + if (code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */) { + path = `${String.fromCharCode(code + 32)}:${path.substr(2)}`; // "/c:".length === 3 + } + } + // encode the rest of the path + res += encoder(path, true); + } + if (query) { + res += '?'; + res += encoder(query, false); + } + if (fragment) { + res += '#'; + res += !skipEncoding ? encodeURIComponentFast(fragment, false) : fragment; + } + return res; +} +// --- decode +function decodeURIComponentGraceful(str) { + try { + return decodeURIComponent(str); + } + catch (_a) { + if (str.length > 3) { + return str.substr(0, 3) + decodeURIComponentGraceful(str.substr(3)); + } + else { + return str; + } + } +} +const _rEncodedAsHex = /(%[0-9A-Za-z][0-9A-Za-z])+/g; +function percentDecode(str) { + if (!str.match(_rEncodedAsHex)) { + return str; + } + return str.replace(_rEncodedAsHex, (match) => decodeURIComponentGraceful(match)); +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/core/position.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * A position in the editor. + */ +class position_Position { + constructor(lineNumber, column) { + this.lineNumber = lineNumber; + this.column = column; + } + /** + * Create a new position from this position. + * + * @param newLineNumber new line number + * @param newColumn new column + */ + with(newLineNumber = this.lineNumber, newColumn = this.column) { + if (newLineNumber === this.lineNumber && newColumn === this.column) { + return this; + } + else { + return new position_Position(newLineNumber, newColumn); + } + } + /** + * Derive a new position from this position. + * + * @param deltaLineNumber line number delta + * @param deltaColumn column delta + */ + delta(deltaLineNumber = 0, deltaColumn = 0) { + return this.with(this.lineNumber + deltaLineNumber, this.column + deltaColumn); + } + /** + * Test if this position equals other position + */ + equals(other) { + return position_Position.equals(this, other); + } + /** + * Test if position `a` equals position `b` + */ + static equals(a, b) { + if (!a && !b) { + return true; + } + return (!!a && + !!b && + a.lineNumber === b.lineNumber && + a.column === b.column); + } + /** + * Test if this position is before other position. + * If the two positions are equal, the result will be false. + */ + isBefore(other) { + return position_Position.isBefore(this, other); + } + /** + * Test if position `a` is before position `b`. + * If the two positions are equal, the result will be false. + */ + static isBefore(a, b) { + if (a.lineNumber < b.lineNumber) { + return true; + } + if (b.lineNumber < a.lineNumber) { + return false; + } + return a.column < b.column; + } + /** + * Test if this position is before other position. + * If the two positions are equal, the result will be true. + */ + isBeforeOrEqual(other) { + return position_Position.isBeforeOrEqual(this, other); + } + /** + * Test if position `a` is before position `b`. + * If the two positions are equal, the result will be true. + */ + static isBeforeOrEqual(a, b) { + if (a.lineNumber < b.lineNumber) { + return true; + } + if (b.lineNumber < a.lineNumber) { + return false; + } + return a.column <= b.column; + } + /** + * A function that compares positions, useful for sorting + */ + static compare(a, b) { + const aLineNumber = a.lineNumber | 0; + const bLineNumber = b.lineNumber | 0; + if (aLineNumber === bLineNumber) { + const aColumn = a.column | 0; + const bColumn = b.column | 0; + return aColumn - bColumn; + } + return aLineNumber - bLineNumber; + } + /** + * Clone this position. + */ + clone() { + return new position_Position(this.lineNumber, this.column); + } + /** + * Convert to a human-readable representation. + */ + toString() { + return '(' + this.lineNumber + ',' + this.column + ')'; + } + // --- + /** + * Create a `Position` from an `IPosition`. + */ + static lift(pos) { + return new position_Position(pos.lineNumber, pos.column); + } + /** + * Test if `obj` is an `IPosition`. + */ + static isIPosition(obj) { + return (obj + && (typeof obj.lineNumber === 'number') + && (typeof obj.column === 'number')); + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/core/range.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +/** + * A range in the editor. (startLineNumber,startColumn) is <= (endLineNumber,endColumn) + */ +class range_Range { + constructor(startLineNumber, startColumn, endLineNumber, endColumn) { + if ((startLineNumber > endLineNumber) || (startLineNumber === endLineNumber && startColumn > endColumn)) { + this.startLineNumber = endLineNumber; + this.startColumn = endColumn; + this.endLineNumber = startLineNumber; + this.endColumn = startColumn; + } + else { + this.startLineNumber = startLineNumber; + this.startColumn = startColumn; + this.endLineNumber = endLineNumber; + this.endColumn = endColumn; + } + } + /** + * Test if this range is empty. + */ + isEmpty() { + return range_Range.isEmpty(this); + } + /** + * Test if `range` is empty. + */ + static isEmpty(range) { + return (range.startLineNumber === range.endLineNumber && range.startColumn === range.endColumn); + } + /** + * Test if position is in this range. If the position is at the edges, will return true. + */ + containsPosition(position) { + return range_Range.containsPosition(this, position); + } + /** + * Test if `position` is in `range`. If the position is at the edges, will return true. + */ + static containsPosition(range, position) { + if (position.lineNumber < range.startLineNumber || position.lineNumber > range.endLineNumber) { + return false; + } + if (position.lineNumber === range.startLineNumber && position.column < range.startColumn) { + return false; + } + if (position.lineNumber === range.endLineNumber && position.column > range.endColumn) { + return false; + } + return true; + } + /** + * Test if `position` is in `range`. If the position is at the edges, will return false. + * @internal + */ + static strictContainsPosition(range, position) { + if (position.lineNumber < range.startLineNumber || position.lineNumber > range.endLineNumber) { + return false; + } + if (position.lineNumber === range.startLineNumber && position.column <= range.startColumn) { + return false; + } + if (position.lineNumber === range.endLineNumber && position.column >= range.endColumn) { + return false; + } + return true; + } + /** + * Test if range is in this range. If the range is equal to this range, will return true. + */ + containsRange(range) { + return range_Range.containsRange(this, range); + } + /** + * Test if `otherRange` is in `range`. If the ranges are equal, will return true. + */ + static containsRange(range, otherRange) { + if (otherRange.startLineNumber < range.startLineNumber || otherRange.endLineNumber < range.startLineNumber) { + return false; + } + if (otherRange.startLineNumber > range.endLineNumber || otherRange.endLineNumber > range.endLineNumber) { + return false; + } + if (otherRange.startLineNumber === range.startLineNumber && otherRange.startColumn < range.startColumn) { + return false; + } + if (otherRange.endLineNumber === range.endLineNumber && otherRange.endColumn > range.endColumn) { + return false; + } + return true; + } + /** + * Test if `range` is strictly in this range. `range` must start after and end before this range for the result to be true. + */ + strictContainsRange(range) { + return range_Range.strictContainsRange(this, range); + } + /** + * Test if `otherRange` is strictly in `range` (must start after, and end before). If the ranges are equal, will return false. + */ + static strictContainsRange(range, otherRange) { + if (otherRange.startLineNumber < range.startLineNumber || otherRange.endLineNumber < range.startLineNumber) { + return false; + } + if (otherRange.startLineNumber > range.endLineNumber || otherRange.endLineNumber > range.endLineNumber) { + return false; + } + if (otherRange.startLineNumber === range.startLineNumber && otherRange.startColumn <= range.startColumn) { + return false; + } + if (otherRange.endLineNumber === range.endLineNumber && otherRange.endColumn >= range.endColumn) { + return false; + } + return true; + } + /** + * A reunion of the two ranges. + * The smallest position will be used as the start point, and the largest one as the end point. + */ + plusRange(range) { + return range_Range.plusRange(this, range); + } + /** + * A reunion of the two ranges. + * The smallest position will be used as the start point, and the largest one as the end point. + */ + static plusRange(a, b) { + let startLineNumber; + let startColumn; + let endLineNumber; + let endColumn; + if (b.startLineNumber < a.startLineNumber) { + startLineNumber = b.startLineNumber; + startColumn = b.startColumn; + } + else if (b.startLineNumber === a.startLineNumber) { + startLineNumber = b.startLineNumber; + startColumn = Math.min(b.startColumn, a.startColumn); + } + else { + startLineNumber = a.startLineNumber; + startColumn = a.startColumn; + } + if (b.endLineNumber > a.endLineNumber) { + endLineNumber = b.endLineNumber; + endColumn = b.endColumn; + } + else if (b.endLineNumber === a.endLineNumber) { + endLineNumber = b.endLineNumber; + endColumn = Math.max(b.endColumn, a.endColumn); + } + else { + endLineNumber = a.endLineNumber; + endColumn = a.endColumn; + } + return new range_Range(startLineNumber, startColumn, endLineNumber, endColumn); + } + /** + * A intersection of the two ranges. + */ + intersectRanges(range) { + return range_Range.intersectRanges(this, range); + } + /** + * A intersection of the two ranges. + */ + static intersectRanges(a, b) { + let resultStartLineNumber = a.startLineNumber; + let resultStartColumn = a.startColumn; + let resultEndLineNumber = a.endLineNumber; + let resultEndColumn = a.endColumn; + const otherStartLineNumber = b.startLineNumber; + const otherStartColumn = b.startColumn; + const otherEndLineNumber = b.endLineNumber; + const otherEndColumn = b.endColumn; + if (resultStartLineNumber < otherStartLineNumber) { + resultStartLineNumber = otherStartLineNumber; + resultStartColumn = otherStartColumn; + } + else if (resultStartLineNumber === otherStartLineNumber) { + resultStartColumn = Math.max(resultStartColumn, otherStartColumn); + } + if (resultEndLineNumber > otherEndLineNumber) { + resultEndLineNumber = otherEndLineNumber; + resultEndColumn = otherEndColumn; + } + else if (resultEndLineNumber === otherEndLineNumber) { + resultEndColumn = Math.min(resultEndColumn, otherEndColumn); + } + // Check if selection is now empty + if (resultStartLineNumber > resultEndLineNumber) { + return null; + } + if (resultStartLineNumber === resultEndLineNumber && resultStartColumn > resultEndColumn) { + return null; + } + return new range_Range(resultStartLineNumber, resultStartColumn, resultEndLineNumber, resultEndColumn); + } + /** + * Test if this range equals other. + */ + equalsRange(other) { + return range_Range.equalsRange(this, other); + } + /** + * Test if range `a` equals `b`. + */ + static equalsRange(a, b) { + return (!!a && + !!b && + a.startLineNumber === b.startLineNumber && + a.startColumn === b.startColumn && + a.endLineNumber === b.endLineNumber && + a.endColumn === b.endColumn); + } + /** + * Return the end position (which will be after or equal to the start position) + */ + getEndPosition() { + return range_Range.getEndPosition(this); + } + /** + * Return the end position (which will be after or equal to the start position) + */ + static getEndPosition(range) { + return new position_Position(range.endLineNumber, range.endColumn); + } + /** + * Return the start position (which will be before or equal to the end position) + */ + getStartPosition() { + return range_Range.getStartPosition(this); + } + /** + * Return the start position (which will be before or equal to the end position) + */ + static getStartPosition(range) { + return new position_Position(range.startLineNumber, range.startColumn); + } + /** + * Transform to a user presentable string representation. + */ + toString() { + return '[' + this.startLineNumber + ',' + this.startColumn + ' -> ' + this.endLineNumber + ',' + this.endColumn + ']'; + } + /** + * Create a new range using this range's start position, and using endLineNumber and endColumn as the end position. + */ + setEndPosition(endLineNumber, endColumn) { + return new range_Range(this.startLineNumber, this.startColumn, endLineNumber, endColumn); + } + /** + * Create a new range using this range's end position, and using startLineNumber and startColumn as the start position. + */ + setStartPosition(startLineNumber, startColumn) { + return new range_Range(startLineNumber, startColumn, this.endLineNumber, this.endColumn); + } + /** + * Create a new empty range using this range's start position. + */ + collapseToStart() { + return range_Range.collapseToStart(this); + } + /** + * Create a new empty range using this range's start position. + */ + static collapseToStart(range) { + return new range_Range(range.startLineNumber, range.startColumn, range.startLineNumber, range.startColumn); + } + // --- + static fromPositions(start, end = start) { + return new range_Range(start.lineNumber, start.column, end.lineNumber, end.column); + } + static lift(range) { + if (!range) { + return null; + } + return new range_Range(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn); + } + /** + * Test if `obj` is an `IRange`. + */ + static isIRange(obj) { + return (obj + && (typeof obj.startLineNumber === 'number') + && (typeof obj.startColumn === 'number') + && (typeof obj.endLineNumber === 'number') + && (typeof obj.endColumn === 'number')); + } + /** + * Test if the two ranges are touching in any way. + */ + static areIntersectingOrTouching(a, b) { + // Check if `a` is before `b` + if (a.endLineNumber < b.startLineNumber || (a.endLineNumber === b.startLineNumber && a.endColumn < b.startColumn)) { + return false; + } + // Check if `b` is before `a` + if (b.endLineNumber < a.startLineNumber || (b.endLineNumber === a.startLineNumber && b.endColumn < a.startColumn)) { + return false; + } + // These ranges must intersect + return true; + } + /** + * Test if the two ranges are intersecting. If the ranges are touching it returns true. + */ + static areIntersecting(a, b) { + // Check if `a` is before `b` + if (a.endLineNumber < b.startLineNumber || (a.endLineNumber === b.startLineNumber && a.endColumn <= b.startColumn)) { + return false; + } + // Check if `b` is before `a` + if (b.endLineNumber < a.startLineNumber || (b.endLineNumber === a.startLineNumber && b.endColumn <= a.startColumn)) { + return false; + } + // These ranges must intersect + return true; + } + /** + * A function that compares ranges, useful for sorting ranges + * It will first compare ranges on the startPosition and then on the endPosition + */ + static compareRangesUsingStarts(a, b) { + if (a && b) { + const aStartLineNumber = a.startLineNumber | 0; + const bStartLineNumber = b.startLineNumber | 0; + if (aStartLineNumber === bStartLineNumber) { + const aStartColumn = a.startColumn | 0; + const bStartColumn = b.startColumn | 0; + if (aStartColumn === bStartColumn) { + const aEndLineNumber = a.endLineNumber | 0; + const bEndLineNumber = b.endLineNumber | 0; + if (aEndLineNumber === bEndLineNumber) { + const aEndColumn = a.endColumn | 0; + const bEndColumn = b.endColumn | 0; + return aEndColumn - bEndColumn; + } + return aEndLineNumber - bEndLineNumber; + } + return aStartColumn - bStartColumn; + } + return aStartLineNumber - bStartLineNumber; + } + const aExists = (a ? 1 : 0); + const bExists = (b ? 1 : 0); + return aExists - bExists; + } + /** + * A function that compares ranges, useful for sorting ranges + * It will first compare ranges on the endPosition and then on the startPosition + */ + static compareRangesUsingEnds(a, b) { + if (a.endLineNumber === b.endLineNumber) { + if (a.endColumn === b.endColumn) { + if (a.startLineNumber === b.startLineNumber) { + return a.startColumn - b.startColumn; + } + return a.startLineNumber - b.startLineNumber; + } + return a.endColumn - b.endColumn; + } + return a.endLineNumber - b.endLineNumber; + } + /** + * Test if the range spans multiple lines. + */ + static spansMultipleLines(range) { + return range.endLineNumber > range.startLineNumber; + } + toJSON() { + return this; + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/diff/diffComputer.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + + +const MINIMUM_MATCHING_CHARACTER_LENGTH = 3; +function computeDiff(originalSequence, modifiedSequence, continueProcessingPredicate, pretty) { + const diffAlgo = new LcsDiff(originalSequence, modifiedSequence, continueProcessingPredicate); + return diffAlgo.ComputeDiff(pretty); +} +class LineSequence { + constructor(lines) { + const startColumns = []; + const endColumns = []; + for (let i = 0, length = lines.length; i < length; i++) { + startColumns[i] = getFirstNonBlankColumn(lines[i], 1); + endColumns[i] = getLastNonBlankColumn(lines[i], 1); + } + this.lines = lines; + this._startColumns = startColumns; + this._endColumns = endColumns; + } + getElements() { + const elements = []; + for (let i = 0, len = this.lines.length; i < len; i++) { + elements[i] = this.lines[i].substring(this._startColumns[i] - 1, this._endColumns[i] - 1); + } + return elements; + } + getStrictElement(index) { + return this.lines[index]; + } + getStartLineNumber(i) { + return i + 1; + } + getEndLineNumber(i) { + return i + 1; + } + createCharSequence(shouldIgnoreTrimWhitespace, startIndex, endIndex) { + const charCodes = []; + const lineNumbers = []; + const columns = []; + let len = 0; + for (let index = startIndex; index <= endIndex; index++) { + const lineContent = this.lines[index]; + const startColumn = (shouldIgnoreTrimWhitespace ? this._startColumns[index] : 1); + const endColumn = (shouldIgnoreTrimWhitespace ? this._endColumns[index] : lineContent.length + 1); + for (let col = startColumn; col < endColumn; col++) { + charCodes[len] = lineContent.charCodeAt(col - 1); + lineNumbers[len] = index + 1; + columns[len] = col; + len++; + } + if (!shouldIgnoreTrimWhitespace && index < endIndex) { + // Add \n if trim whitespace is not ignored + charCodes[len] = 10 /* CharCode.LineFeed */; + lineNumbers[len] = index + 1; + columns[len] = lineContent.length + 1; + len++; + } + } + return new CharSequence(charCodes, lineNumbers, columns); + } +} +class CharSequence { + constructor(charCodes, lineNumbers, columns) { + this._charCodes = charCodes; + this._lineNumbers = lineNumbers; + this._columns = columns; + } + toString() { + return ('[' + this._charCodes.map((s, idx) => (s === 10 /* CharCode.LineFeed */ ? '\\n' : String.fromCharCode(s)) + `-(${this._lineNumbers[idx]},${this._columns[idx]})`).join(', ') + ']'); + } + _assertIndex(index, arr) { + if (index < 0 || index >= arr.length) { + throw new Error(`Illegal index`); + } + } + getElements() { + return this._charCodes; + } + getStartLineNumber(i) { + if (i > 0 && i === this._lineNumbers.length) { + // the start line number of the element after the last element + // is the end line number of the last element + return this.getEndLineNumber(i - 1); + } + this._assertIndex(i, this._lineNumbers); + return this._lineNumbers[i]; + } + getEndLineNumber(i) { + if (i === -1) { + // the end line number of the element before the first element + // is the start line number of the first element + return this.getStartLineNumber(i + 1); + } + this._assertIndex(i, this._lineNumbers); + if (this._charCodes[i] === 10 /* CharCode.LineFeed */) { + return this._lineNumbers[i] + 1; + } + return this._lineNumbers[i]; + } + getStartColumn(i) { + if (i > 0 && i === this._columns.length) { + // the start column of the element after the last element + // is the end column of the last element + return this.getEndColumn(i - 1); + } + this._assertIndex(i, this._columns); + return this._columns[i]; + } + getEndColumn(i) { + if (i === -1) { + // the end column of the element before the first element + // is the start column of the first element + return this.getStartColumn(i + 1); + } + this._assertIndex(i, this._columns); + if (this._charCodes[i] === 10 /* CharCode.LineFeed */) { + return 1; + } + return this._columns[i] + 1; + } +} +class CharChange { + constructor(originalStartLineNumber, originalStartColumn, originalEndLineNumber, originalEndColumn, modifiedStartLineNumber, modifiedStartColumn, modifiedEndLineNumber, modifiedEndColumn) { + this.originalStartLineNumber = originalStartLineNumber; + this.originalStartColumn = originalStartColumn; + this.originalEndLineNumber = originalEndLineNumber; + this.originalEndColumn = originalEndColumn; + this.modifiedStartLineNumber = modifiedStartLineNumber; + this.modifiedStartColumn = modifiedStartColumn; + this.modifiedEndLineNumber = modifiedEndLineNumber; + this.modifiedEndColumn = modifiedEndColumn; + } + static createFromDiffChange(diffChange, originalCharSequence, modifiedCharSequence) { + const originalStartLineNumber = originalCharSequence.getStartLineNumber(diffChange.originalStart); + const originalStartColumn = originalCharSequence.getStartColumn(diffChange.originalStart); + const originalEndLineNumber = originalCharSequence.getEndLineNumber(diffChange.originalStart + diffChange.originalLength - 1); + const originalEndColumn = originalCharSequence.getEndColumn(diffChange.originalStart + diffChange.originalLength - 1); + const modifiedStartLineNumber = modifiedCharSequence.getStartLineNumber(diffChange.modifiedStart); + const modifiedStartColumn = modifiedCharSequence.getStartColumn(diffChange.modifiedStart); + const modifiedEndLineNumber = modifiedCharSequence.getEndLineNumber(diffChange.modifiedStart + diffChange.modifiedLength - 1); + const modifiedEndColumn = modifiedCharSequence.getEndColumn(diffChange.modifiedStart + diffChange.modifiedLength - 1); + return new CharChange(originalStartLineNumber, originalStartColumn, originalEndLineNumber, originalEndColumn, modifiedStartLineNumber, modifiedStartColumn, modifiedEndLineNumber, modifiedEndColumn); + } +} +function postProcessCharChanges(rawChanges) { + if (rawChanges.length <= 1) { + return rawChanges; + } + const result = [rawChanges[0]]; + let prevChange = result[0]; + for (let i = 1, len = rawChanges.length; i < len; i++) { + const currChange = rawChanges[i]; + const originalMatchingLength = currChange.originalStart - (prevChange.originalStart + prevChange.originalLength); + const modifiedMatchingLength = currChange.modifiedStart - (prevChange.modifiedStart + prevChange.modifiedLength); + // Both of the above should be equal, but the continueProcessingPredicate may prevent this from being true + const matchingLength = Math.min(originalMatchingLength, modifiedMatchingLength); + if (matchingLength < MINIMUM_MATCHING_CHARACTER_LENGTH) { + // Merge the current change into the previous one + prevChange.originalLength = (currChange.originalStart + currChange.originalLength) - prevChange.originalStart; + prevChange.modifiedLength = (currChange.modifiedStart + currChange.modifiedLength) - prevChange.modifiedStart; + } + else { + // Add the current change + result.push(currChange); + prevChange = currChange; + } + } + return result; +} +class LineChange { + constructor(originalStartLineNumber, originalEndLineNumber, modifiedStartLineNumber, modifiedEndLineNumber, charChanges) { + this.originalStartLineNumber = originalStartLineNumber; + this.originalEndLineNumber = originalEndLineNumber; + this.modifiedStartLineNumber = modifiedStartLineNumber; + this.modifiedEndLineNumber = modifiedEndLineNumber; + this.charChanges = charChanges; + } + static createFromDiffResult(shouldIgnoreTrimWhitespace, diffChange, originalLineSequence, modifiedLineSequence, continueCharDiff, shouldComputeCharChanges, shouldPostProcessCharChanges) { + let originalStartLineNumber; + let originalEndLineNumber; + let modifiedStartLineNumber; + let modifiedEndLineNumber; + let charChanges = undefined; + if (diffChange.originalLength === 0) { + originalStartLineNumber = originalLineSequence.getStartLineNumber(diffChange.originalStart) - 1; + originalEndLineNumber = 0; + } + else { + originalStartLineNumber = originalLineSequence.getStartLineNumber(diffChange.originalStart); + originalEndLineNumber = originalLineSequence.getEndLineNumber(diffChange.originalStart + diffChange.originalLength - 1); + } + if (diffChange.modifiedLength === 0) { + modifiedStartLineNumber = modifiedLineSequence.getStartLineNumber(diffChange.modifiedStart) - 1; + modifiedEndLineNumber = 0; + } + else { + modifiedStartLineNumber = modifiedLineSequence.getStartLineNumber(diffChange.modifiedStart); + modifiedEndLineNumber = modifiedLineSequence.getEndLineNumber(diffChange.modifiedStart + diffChange.modifiedLength - 1); + } + if (shouldComputeCharChanges && diffChange.originalLength > 0 && diffChange.originalLength < 20 && diffChange.modifiedLength > 0 && diffChange.modifiedLength < 20 && continueCharDiff()) { + // Compute character changes for diff chunks of at most 20 lines... + const originalCharSequence = originalLineSequence.createCharSequence(shouldIgnoreTrimWhitespace, diffChange.originalStart, diffChange.originalStart + diffChange.originalLength - 1); + const modifiedCharSequence = modifiedLineSequence.createCharSequence(shouldIgnoreTrimWhitespace, diffChange.modifiedStart, diffChange.modifiedStart + diffChange.modifiedLength - 1); + if (originalCharSequence.getElements().length > 0 && modifiedCharSequence.getElements().length > 0) { + let rawChanges = computeDiff(originalCharSequence, modifiedCharSequence, continueCharDiff, true).changes; + if (shouldPostProcessCharChanges) { + rawChanges = postProcessCharChanges(rawChanges); + } + charChanges = []; + for (let i = 0, length = rawChanges.length; i < length; i++) { + charChanges.push(CharChange.createFromDiffChange(rawChanges[i], originalCharSequence, modifiedCharSequence)); + } + } + } + return new LineChange(originalStartLineNumber, originalEndLineNumber, modifiedStartLineNumber, modifiedEndLineNumber, charChanges); + } +} +class DiffComputer { + constructor(originalLines, modifiedLines, opts) { + this.shouldComputeCharChanges = opts.shouldComputeCharChanges; + this.shouldPostProcessCharChanges = opts.shouldPostProcessCharChanges; + this.shouldIgnoreTrimWhitespace = opts.shouldIgnoreTrimWhitespace; + this.shouldMakePrettyDiff = opts.shouldMakePrettyDiff; + this.originalLines = originalLines; + this.modifiedLines = modifiedLines; + this.original = new LineSequence(originalLines); + this.modified = new LineSequence(modifiedLines); + this.continueLineDiff = createContinueProcessingPredicate(opts.maxComputationTime); + this.continueCharDiff = createContinueProcessingPredicate(opts.maxComputationTime === 0 ? 0 : Math.min(opts.maxComputationTime, 5000)); // never run after 5s for character changes... + } + computeDiff() { + if (this.original.lines.length === 1 && this.original.lines[0].length === 0) { + // empty original => fast path + if (this.modified.lines.length === 1 && this.modified.lines[0].length === 0) { + return { + quitEarly: false, + changes: [] + }; + } + return { + quitEarly: false, + changes: [{ + originalStartLineNumber: 1, + originalEndLineNumber: 1, + modifiedStartLineNumber: 1, + modifiedEndLineNumber: this.modified.lines.length, + charChanges: [{ + modifiedEndColumn: 0, + modifiedEndLineNumber: 0, + modifiedStartColumn: 0, + modifiedStartLineNumber: 0, + originalEndColumn: 0, + originalEndLineNumber: 0, + originalStartColumn: 0, + originalStartLineNumber: 0 + }] + }] + }; + } + if (this.modified.lines.length === 1 && this.modified.lines[0].length === 0) { + // empty modified => fast path + return { + quitEarly: false, + changes: [{ + originalStartLineNumber: 1, + originalEndLineNumber: this.original.lines.length, + modifiedStartLineNumber: 1, + modifiedEndLineNumber: 1, + charChanges: [{ + modifiedEndColumn: 0, + modifiedEndLineNumber: 0, + modifiedStartColumn: 0, + modifiedStartLineNumber: 0, + originalEndColumn: 0, + originalEndLineNumber: 0, + originalStartColumn: 0, + originalStartLineNumber: 0 + }] + }] + }; + } + const diffResult = computeDiff(this.original, this.modified, this.continueLineDiff, this.shouldMakePrettyDiff); + const rawChanges = diffResult.changes; + const quitEarly = diffResult.quitEarly; + // The diff is always computed with ignoring trim whitespace + // This ensures we get the prettiest diff + if (this.shouldIgnoreTrimWhitespace) { + const lineChanges = []; + for (let i = 0, length = rawChanges.length; i < length; i++) { + lineChanges.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace, rawChanges[i], this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges)); + } + return { + quitEarly: quitEarly, + changes: lineChanges + }; + } + // Need to post-process and introduce changes where the trim whitespace is different + // Note that we are looping starting at -1 to also cover the lines before the first change + const result = []; + let originalLineIndex = 0; + let modifiedLineIndex = 0; + for (let i = -1 /* !!!! */, len = rawChanges.length; i < len; i++) { + const nextChange = (i + 1 < len ? rawChanges[i + 1] : null); + const originalStop = (nextChange ? nextChange.originalStart : this.originalLines.length); + const modifiedStop = (nextChange ? nextChange.modifiedStart : this.modifiedLines.length); + while (originalLineIndex < originalStop && modifiedLineIndex < modifiedStop) { + const originalLine = this.originalLines[originalLineIndex]; + const modifiedLine = this.modifiedLines[modifiedLineIndex]; + if (originalLine !== modifiedLine) { + // These lines differ only in trim whitespace + // Check the leading whitespace + { + let originalStartColumn = getFirstNonBlankColumn(originalLine, 1); + let modifiedStartColumn = getFirstNonBlankColumn(modifiedLine, 1); + while (originalStartColumn > 1 && modifiedStartColumn > 1) { + const originalChar = originalLine.charCodeAt(originalStartColumn - 2); + const modifiedChar = modifiedLine.charCodeAt(modifiedStartColumn - 2); + if (originalChar !== modifiedChar) { + break; + } + originalStartColumn--; + modifiedStartColumn--; + } + if (originalStartColumn > 1 || modifiedStartColumn > 1) { + this._pushTrimWhitespaceCharChange(result, originalLineIndex + 1, 1, originalStartColumn, modifiedLineIndex + 1, 1, modifiedStartColumn); + } + } + // Check the trailing whitespace + { + let originalEndColumn = getLastNonBlankColumn(originalLine, 1); + let modifiedEndColumn = getLastNonBlankColumn(modifiedLine, 1); + const originalMaxColumn = originalLine.length + 1; + const modifiedMaxColumn = modifiedLine.length + 1; + while (originalEndColumn < originalMaxColumn && modifiedEndColumn < modifiedMaxColumn) { + const originalChar = originalLine.charCodeAt(originalEndColumn - 1); + const modifiedChar = originalLine.charCodeAt(modifiedEndColumn - 1); + if (originalChar !== modifiedChar) { + break; + } + originalEndColumn++; + modifiedEndColumn++; + } + if (originalEndColumn < originalMaxColumn || modifiedEndColumn < modifiedMaxColumn) { + this._pushTrimWhitespaceCharChange(result, originalLineIndex + 1, originalEndColumn, originalMaxColumn, modifiedLineIndex + 1, modifiedEndColumn, modifiedMaxColumn); + } + } + } + originalLineIndex++; + modifiedLineIndex++; + } + if (nextChange) { + // Emit the actual change + result.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace, nextChange, this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges)); + originalLineIndex += nextChange.originalLength; + modifiedLineIndex += nextChange.modifiedLength; + } + } + return { + quitEarly: quitEarly, + changes: result + }; + } + _pushTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn) { + if (this._mergeTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn)) { + // Merged into previous + return; + } + let charChanges = undefined; + if (this.shouldComputeCharChanges) { + charChanges = [new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn)]; + } + result.push(new LineChange(originalLineNumber, originalLineNumber, modifiedLineNumber, modifiedLineNumber, charChanges)); + } + _mergeTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn) { + const len = result.length; + if (len === 0) { + return false; + } + const prevChange = result[len - 1]; + if (prevChange.originalEndLineNumber === 0 || prevChange.modifiedEndLineNumber === 0) { + // Don't merge with inserts/deletes + return false; + } + if (prevChange.originalEndLineNumber + 1 === originalLineNumber && prevChange.modifiedEndLineNumber + 1 === modifiedLineNumber) { + prevChange.originalEndLineNumber = originalLineNumber; + prevChange.modifiedEndLineNumber = modifiedLineNumber; + if (this.shouldComputeCharChanges && prevChange.charChanges) { + prevChange.charChanges.push(new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn)); + } + return true; + } + return false; + } +} +function getFirstNonBlankColumn(txt, defaultValue) { + const r = firstNonWhitespaceIndex(txt); + if (r === -1) { + return defaultValue; + } + return r + 1; +} +function getLastNonBlankColumn(txt, defaultValue) { + const r = lastNonWhitespaceIndex(txt); + if (r === -1) { + return defaultValue; + } + return r + 2; +} +function createContinueProcessingPredicate(maximumRuntime) { + if (maximumRuntime === 0) { + return () => true; + } + const startTime = Date.now(); + return () => { + return Date.now() - startTime < maximumRuntime; + }; +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/arrays.js +/** + * Returns the last element of an array. + * @param array The array. + * @param n Which element from the end (default is zero). + */ +function tail(array, n = 0) { + return array[array.length - (1 + n)]; +} +function tail2(arr) { + if (arr.length === 0) { + throw new Error('Invalid tail call'); + } + return [arr.slice(0, arr.length - 1), arr[arr.length - 1]]; +} +function arrays_equals(one, other, itemEquals = (a, b) => a === b) { + if (one === other) { + return true; + } + if (!one || !other) { + return false; + } + if (one.length !== other.length) { + return false; + } + for (let i = 0, len = one.length; i < len; i++) { + if (!itemEquals(one[i], other[i])) { + return false; + } + } + return true; +} +/** + * Remove the element at `index` by replacing it with the last element. This is faster than `splice` + * but changes the order of the array + */ +function removeFastWithoutKeepingOrder(array, index) { + const last = array.length - 1; + if (index < last) { + array[index] = array[last]; + } + array.pop(); +} +/** + * Performs a binary search algorithm over a sorted array. + * + * @param array The array being searched. + * @param key The value we search for. + * @param comparator A function that takes two array elements and returns zero + * if they are equal, a negative number if the first element precedes the + * second one in the sorting order, or a positive number if the second element + * precedes the first one. + * @return See {@link binarySearch2} + */ +function binarySearch(array, key, comparator) { + return binarySearch2(array.length, i => comparator(array[i], key)); +} +/** + * Performs a binary search algorithm over a sorted collection. Useful for cases + * when we need to perform a binary search over something that isn't actually an + * array, and converting data to an array would defeat the use of binary search + * in the first place. + * + * @param length The collection length. + * @param compareToKey A function that takes an index of an element in the + * collection and returns zero if the value at this index is equal to the + * search key, a negative number if the value precedes the search key in the + * sorting order, or a positive number if the search key precedes the value. + * @return A non-negative index of an element, if found. If not found, the + * result is -(n+1) (or ~n, using bitwise notation), where n is the index + * where the key should be inserted to maintain the sorting order. + */ +function binarySearch2(length, compareToKey) { + let low = 0, high = length - 1; + while (low <= high) { + const mid = ((low + high) / 2) | 0; + const comp = compareToKey(mid); + if (comp < 0) { + low = mid + 1; + } + else if (comp > 0) { + high = mid - 1; + } + else { + return mid; + } + } + return -(low + 1); +} +/** + * Takes a sorted array and a function p. The array is sorted in such a way that all elements where p(x) is false + * are located before all elements where p(x) is true. + * @returns the least x for which p(x) is true or array.length if no element fullfills the given function. + */ +function findFirstInSorted(array, p) { + let low = 0, high = array.length; + if (high === 0) { + return 0; // no children + } + while (low < high) { + const mid = Math.floor((low + high) / 2); + if (p(array[mid])) { + high = mid; + } + else { + low = mid + 1; + } + } + return low; +} +function quickSelect(nth, data, compare) { + nth = nth | 0; + if (nth >= data.length) { + throw new TypeError('invalid index'); + } + const pivotValue = data[Math.floor(data.length * Math.random())]; + const lower = []; + const higher = []; + const pivots = []; + for (const value of data) { + const val = compare(value, pivotValue); + if (val < 0) { + lower.push(value); + } + else if (val > 0) { + higher.push(value); + } + else { + pivots.push(value); + } + } + if (nth < lower.length) { + return quickSelect(nth, lower, compare); + } + else if (nth < lower.length + pivots.length) { + return pivots[0]; + } + else { + return quickSelect(nth - (lower.length + pivots.length), higher, compare); + } +} +function groupBy(data, compare) { + const result = []; + let currentGroup = undefined; + for (const element of data.slice(0).sort(compare)) { + if (!currentGroup || compare(currentGroup[0], element) !== 0) { + currentGroup = [element]; + result.push(currentGroup); + } + else { + currentGroup.push(element); + } + } + return result; +} +/** + * @returns New array with all falsy values removed. The original array IS NOT modified. + */ +function coalesce(array) { + return array.filter(e => !!e); +} +/** + * @returns false if the provided object is an array and not empty. + */ +function isFalsyOrEmpty(obj) { + return !Array.isArray(obj) || obj.length === 0; +} +function isNonEmptyArray(obj) { + return Array.isArray(obj) && obj.length > 0; +} +/** + * Removes duplicates from the given array. The optional keyFn allows to specify + * how elements are checked for equality by returning an alternate value for each. + */ +function distinct(array, keyFn = value => value) { + const seen = new Set(); + return array.filter(element => { + const key = keyFn(element); + if (seen.has(key)) { + return false; + } + seen.add(key); + return true; + }); +} +function findLast(arr, predicate) { + const idx = lastIndex(arr, predicate); + if (idx === -1) { + return undefined; + } + return arr[idx]; +} +function lastIndex(array, fn) { + for (let i = array.length - 1; i >= 0; i--) { + const element = array[i]; + if (fn(element)) { + return i; + } + } + return -1; +} +function firstOrDefault(array, notFoundValue) { + return array.length > 0 ? array[0] : notFoundValue; +} +function range(arg, to) { + let from = typeof to === 'number' ? arg : 0; + if (typeof to === 'number') { + from = arg; + } + else { + from = 0; + to = arg; + } + const result = []; + if (from <= to) { + for (let i = from; i < to; i++) { + result.push(i); + } + } + else { + for (let i = from; i > to; i--) { + result.push(i); + } + } + return result; +} +/** + * Insert `insertArr` inside `target` at `insertIndex`. + * Please don't touch unless you understand https://jsperf.com/inserting-an-array-within-an-array + */ +function arrays_arrayInsert(target, insertIndex, insertArr) { + const before = target.slice(0, insertIndex); + const after = target.slice(insertIndex); + return before.concat(insertArr, after); +} +/** + * Pushes an element to the start of the array, if found. + */ +function pushToStart(arr, value) { + const index = arr.indexOf(value); + if (index > -1) { + arr.splice(index, 1); + arr.unshift(value); + } +} +/** + * Pushes an element to the end of the array, if found. + */ +function pushToEnd(arr, value) { + const index = arr.indexOf(value); + if (index > -1) { + arr.splice(index, 1); + arr.push(value); + } +} +function pushMany(arr, items) { + for (const item of items) { + arr.push(item); + } +} +function asArray(x) { + return Array.isArray(x) ? x : [x]; +} +/** + * Insert the new items in the array. + * @param array The original array. + * @param start The zero-based location in the array from which to start inserting elements. + * @param newItems The items to be inserted + */ +function insertInto(array, start, newItems) { + const startIdx = getActualStartIndex(array, start); + const originalLength = array.length; + const newItemsLength = newItems.length; + array.length = originalLength + newItemsLength; + // Move the items after the start index, start from the end so that we don't overwrite any value. + for (let i = originalLength - 1; i >= startIdx; i--) { + array[i + newItemsLength] = array[i]; + } + for (let i = 0; i < newItemsLength; i++) { + array[i + startIdx] = newItems[i]; + } +} +/** + * Removes elements from an array and inserts new elements in their place, returning the deleted elements. Alternative to the native Array.splice method, it + * can only support limited number of items due to the maximum call stack size limit. + * @param array The original array. + * @param start The zero-based location in the array from which to start removing elements. + * @param deleteCount The number of elements to remove. + * @returns An array containing the elements that were deleted. + */ +function splice(array, start, deleteCount, newItems) { + const index = getActualStartIndex(array, start); + const result = array.splice(index, deleteCount); + insertInto(array, index, newItems); + return result; +} +/** + * Determine the actual start index (same logic as the native splice() or slice()) + * If greater than the length of the array, start will be set to the length of the array. In this case, no element will be deleted but the method will behave as an adding function, adding as many element as item[n*] provided. + * If negative, it will begin that many elements from the end of the array. (In this case, the origin -1, meaning -n is the index of the nth last element, and is therefore equivalent to the index of array.length - n.) If array.length + start is less than 0, it will begin from index 0. + * @param array The target array. + * @param start The operation index. + */ +function getActualStartIndex(array, start) { + return start < 0 ? Math.max(start + array.length, 0) : Math.min(start, array.length); +} +var CompareResult; +(function (CompareResult) { + function isLessThan(result) { + return result < 0; + } + CompareResult.isLessThan = isLessThan; + function isGreaterThan(result) { + return result > 0; + } + CompareResult.isGreaterThan = isGreaterThan; + function isNeitherLessOrGreaterThan(result) { + return result === 0; + } + CompareResult.isNeitherLessOrGreaterThan = isNeitherLessOrGreaterThan; + CompareResult.greaterThan = 1; + CompareResult.lessThan = -1; + CompareResult.neitherLessOrGreaterThan = 0; +})(CompareResult || (CompareResult = {})); +function compareBy(selector, comparator) { + return (a, b) => comparator(selector(a), selector(b)); +} +/** + * The natural order on numbers. +*/ +const numberComparator = (a, b) => a - b; +/** + * Returns the first item that is equal to or greater than every other item. +*/ +function findMaxBy(items, comparator) { + if (items.length === 0) { + return undefined; + } + let max = items[0]; + for (let i = 1; i < items.length; i++) { + const item = items[i]; + if (comparator(item, max) > 0) { + max = item; + } + } + return max; +} +/** + * Returns the last item that is equal to or greater than every other item. +*/ +function findLastMaxBy(items, comparator) { + if (items.length === 0) { + return undefined; + } + let max = items[0]; + for (let i = 1; i < items.length; i++) { + const item = items[i]; + if (comparator(item, max) >= 0) { + max = item; + } + } + return max; +} +/** + * Returns the first item that is equal to or less than every other item. +*/ +function findMinBy(items, comparator) { + return findMaxBy(items, (a, b) => -comparator(a, b)); +} +class ArrayQueue { + /** + * Constructs a queue that is backed by the given array. Runtime is O(1). + */ + constructor(items) { + this.items = items; + this.firstIdx = 0; + this.lastIdx = this.items.length - 1; + } + get length() { + return this.lastIdx - this.firstIdx + 1; + } + /** + * Consumes elements from the beginning of the queue as long as the predicate returns true. + * If no elements were consumed, `null` is returned. Has a runtime of O(result.length). + */ + takeWhile(predicate) { + // P(k) := k <= this.lastIdx && predicate(this.items[k]) + // Find s := min { k | k >= this.firstIdx && !P(k) } and return this.data[this.firstIdx...s) + let startIdx = this.firstIdx; + while (startIdx < this.items.length && predicate(this.items[startIdx])) { + startIdx++; + } + const result = startIdx === this.firstIdx ? null : this.items.slice(this.firstIdx, startIdx); + this.firstIdx = startIdx; + return result; + } + /** + * Consumes elements from the end of the queue as long as the predicate returns true. + * If no elements were consumed, `null` is returned. + * The result has the same order as the underlying array! + */ + takeFromEndWhile(predicate) { + // P(k) := this.firstIdx >= k && predicate(this.items[k]) + // Find s := max { k | k <= this.lastIdx && !P(k) } and return this.data(s...this.lastIdx] + let endIdx = this.lastIdx; + while (endIdx >= 0 && predicate(this.items[endIdx])) { + endIdx--; + } + const result = endIdx === this.lastIdx ? null : this.items.slice(endIdx + 1, this.lastIdx + 1); + this.lastIdx = endIdx; + return result; + } + peek() { + if (this.length === 0) { + return undefined; + } + return this.items[this.firstIdx]; + } + dequeue() { + const result = this.items[this.firstIdx]; + this.firstIdx++; + return result; + } + takeCount(count) { + const result = this.items.slice(this.firstIdx, this.firstIdx + count); + this.firstIdx += count; + return result; + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/uint.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +function toUint8(v) { + if (v < 0) { + return 0; + } + if (v > 255 /* Constants.MAX_UINT_8 */) { + return 255 /* Constants.MAX_UINT_8 */; + } + return v | 0; +} +function toUint32(v) { + if (v < 0) { + return 0; + } + if (v > 4294967295 /* Constants.MAX_UINT_32 */) { + return 4294967295 /* Constants.MAX_UINT_32 */; + } + return v | 0; +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/model/prefixSumComputer.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + + +class PrefixSumComputer { + constructor(values) { + this.values = values; + this.prefixSum = new Uint32Array(values.length); + this.prefixSumValidIndex = new Int32Array(1); + this.prefixSumValidIndex[0] = -1; + } + insertValues(insertIndex, insertValues) { + insertIndex = toUint32(insertIndex); + const oldValues = this.values; + const oldPrefixSum = this.prefixSum; + const insertValuesLen = insertValues.length; + if (insertValuesLen === 0) { + return false; + } + this.values = new Uint32Array(oldValues.length + insertValuesLen); + this.values.set(oldValues.subarray(0, insertIndex), 0); + this.values.set(oldValues.subarray(insertIndex), insertIndex + insertValuesLen); + this.values.set(insertValues, insertIndex); + if (insertIndex - 1 < this.prefixSumValidIndex[0]) { + this.prefixSumValidIndex[0] = insertIndex - 1; + } + this.prefixSum = new Uint32Array(this.values.length); + if (this.prefixSumValidIndex[0] >= 0) { + this.prefixSum.set(oldPrefixSum.subarray(0, this.prefixSumValidIndex[0] + 1)); + } + return true; + } + setValue(index, value) { + index = toUint32(index); + value = toUint32(value); + if (this.values[index] === value) { + return false; + } + this.values[index] = value; + if (index - 1 < this.prefixSumValidIndex[0]) { + this.prefixSumValidIndex[0] = index - 1; + } + return true; + } + removeValues(startIndex, count) { + startIndex = toUint32(startIndex); + count = toUint32(count); + const oldValues = this.values; + const oldPrefixSum = this.prefixSum; + if (startIndex >= oldValues.length) { + return false; + } + const maxCount = oldValues.length - startIndex; + if (count >= maxCount) { + count = maxCount; + } + if (count === 0) { + return false; + } + this.values = new Uint32Array(oldValues.length - count); + this.values.set(oldValues.subarray(0, startIndex), 0); + this.values.set(oldValues.subarray(startIndex + count), startIndex); + this.prefixSum = new Uint32Array(this.values.length); + if (startIndex - 1 < this.prefixSumValidIndex[0]) { + this.prefixSumValidIndex[0] = startIndex - 1; + } + if (this.prefixSumValidIndex[0] >= 0) { + this.prefixSum.set(oldPrefixSum.subarray(0, this.prefixSumValidIndex[0] + 1)); + } + return true; + } + getTotalSum() { + if (this.values.length === 0) { + return 0; + } + return this._getPrefixSum(this.values.length - 1); + } + /** + * Returns the sum of the first `index + 1` many items. + * @returns `SUM(0 <= j <= index, values[j])`. + */ + getPrefixSum(index) { + if (index < 0) { + return 0; + } + index = toUint32(index); + return this._getPrefixSum(index); + } + _getPrefixSum(index) { + if (index <= this.prefixSumValidIndex[0]) { + return this.prefixSum[index]; + } + let startIndex = this.prefixSumValidIndex[0] + 1; + if (startIndex === 0) { + this.prefixSum[0] = this.values[0]; + startIndex++; + } + if (index >= this.values.length) { + index = this.values.length - 1; + } + for (let i = startIndex; i <= index; i++) { + this.prefixSum[i] = this.prefixSum[i - 1] + this.values[i]; + } + this.prefixSumValidIndex[0] = Math.max(this.prefixSumValidIndex[0], index); + return this.prefixSum[index]; + } + getIndexOf(sum) { + sum = Math.floor(sum); + // Compute all sums (to get a fully valid prefixSum) + this.getTotalSum(); + let low = 0; + let high = this.values.length - 1; + let mid = 0; + let midStop = 0; + let midStart = 0; + while (low <= high) { + mid = low + ((high - low) / 2) | 0; + midStop = this.prefixSum[mid]; + midStart = midStop - this.values[mid]; + if (sum < midStart) { + high = mid - 1; + } + else if (sum >= midStop) { + low = mid + 1; + } + else { + break; + } + } + return new PrefixSumIndexOfResult(mid, sum - midStart); + } +} +/** + * {@link getIndexOf} has an amortized runtime complexity of O(1). + * + * ({@link PrefixSumComputer.getIndexOf} is just O(log n)) +*/ +class ConstantTimePrefixSumComputer { + constructor(values) { + this._values = values; + this._isValid = false; + this._validEndIndex = -1; + this._prefixSum = []; + this._indexBySum = []; + } + /** + * @returns SUM(0 <= j < values.length, values[j]) + */ + getTotalSum() { + this._ensureValid(); + return this._indexBySum.length; + } + /** + * Returns the sum of the first `count` many items. + * @returns `SUM(0 <= j < count, values[j])`. + */ + getPrefixSum(count) { + this._ensureValid(); + if (count === 0) { + return 0; + } + return this._prefixSum[count - 1]; + } + /** + * @returns `result`, such that `getPrefixSum(result.index) + result.remainder = sum` + */ + getIndexOf(sum) { + this._ensureValid(); + const idx = this._indexBySum[sum]; + const viewLinesAbove = idx > 0 ? this._prefixSum[idx - 1] : 0; + return new PrefixSumIndexOfResult(idx, sum - viewLinesAbove); + } + removeValues(start, deleteCount) { + this._values.splice(start, deleteCount); + this._invalidate(start); + } + insertValues(insertIndex, insertArr) { + this._values = arrayInsert(this._values, insertIndex, insertArr); + this._invalidate(insertIndex); + } + _invalidate(index) { + this._isValid = false; + this._validEndIndex = Math.min(this._validEndIndex, index - 1); + } + _ensureValid() { + if (this._isValid) { + return; + } + for (let i = this._validEndIndex + 1, len = this._values.length; i < len; i++) { + const value = this._values[i]; + const sumAbove = i > 0 ? this._prefixSum[i - 1] : 0; + this._prefixSum[i] = sumAbove + value; + for (let j = 0; j < value; j++) { + this._indexBySum[sumAbove + j] = i; + } + } + // trim things + this._prefixSum.length = this._values.length; + this._indexBySum.length = this._prefixSum[this._prefixSum.length - 1]; + // mark as valid + this._isValid = true; + this._validEndIndex = this._values.length - 1; + } + setValue(index, value) { + if (this._values[index] === value) { + // no change + return; + } + this._values[index] = value; + this._invalidate(index); + } +} +class PrefixSumIndexOfResult { + constructor(index, remainder) { + this.index = index; + this.remainder = remainder; + this._prefixSumIndexOfResultBrand = undefined; + this.index = index; + this.remainder = remainder; + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/model/mirrorTextModel.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + + + +class MirrorTextModel { + constructor(uri, lines, eol, versionId) { + this._uri = uri; + this._lines = lines; + this._eol = eol; + this._versionId = versionId; + this._lineStarts = null; + this._cachedTextValue = null; + } + dispose() { + this._lines.length = 0; + } + get version() { + return this._versionId; + } + getText() { + if (this._cachedTextValue === null) { + this._cachedTextValue = this._lines.join(this._eol); + } + return this._cachedTextValue; + } + onEvents(e) { + if (e.eol && e.eol !== this._eol) { + this._eol = e.eol; + this._lineStarts = null; + } + // Update my lines + const changes = e.changes; + for (const change of changes) { + this._acceptDeleteRange(change.range); + this._acceptInsertText(new position_Position(change.range.startLineNumber, change.range.startColumn), change.text); + } + this._versionId = e.versionId; + this._cachedTextValue = null; + } + _ensureLineStarts() { + if (!this._lineStarts) { + const eolLength = this._eol.length; + const linesLength = this._lines.length; + const lineStartValues = new Uint32Array(linesLength); + for (let i = 0; i < linesLength; i++) { + lineStartValues[i] = this._lines[i].length + eolLength; + } + this._lineStarts = new PrefixSumComputer(lineStartValues); + } + } + /** + * All changes to a line's text go through this method + */ + _setLineText(lineIndex, newValue) { + this._lines[lineIndex] = newValue; + if (this._lineStarts) { + // update prefix sum + this._lineStarts.setValue(lineIndex, this._lines[lineIndex].length + this._eol.length); + } + } + _acceptDeleteRange(range) { + if (range.startLineNumber === range.endLineNumber) { + if (range.startColumn === range.endColumn) { + // Nothing to delete + return; + } + // Delete text on the affected line + this._setLineText(range.startLineNumber - 1, this._lines[range.startLineNumber - 1].substring(0, range.startColumn - 1) + + this._lines[range.startLineNumber - 1].substring(range.endColumn - 1)); + return; + } + // Take remaining text on last line and append it to remaining text on first line + this._setLineText(range.startLineNumber - 1, this._lines[range.startLineNumber - 1].substring(0, range.startColumn - 1) + + this._lines[range.endLineNumber - 1].substring(range.endColumn - 1)); + // Delete middle lines + this._lines.splice(range.startLineNumber, range.endLineNumber - range.startLineNumber); + if (this._lineStarts) { + // update prefix sum + this._lineStarts.removeValues(range.startLineNumber, range.endLineNumber - range.startLineNumber); + } + } + _acceptInsertText(position, insertText) { + if (insertText.length === 0) { + // Nothing to insert + return; + } + const insertLines = splitLines(insertText); + if (insertLines.length === 1) { + // Inserting text on one line + this._setLineText(position.lineNumber - 1, this._lines[position.lineNumber - 1].substring(0, position.column - 1) + + insertLines[0] + + this._lines[position.lineNumber - 1].substring(position.column - 1)); + return; + } + // Append overflowing text from first line to the end of text to insert + insertLines[insertLines.length - 1] += this._lines[position.lineNumber - 1].substring(position.column - 1); + // Delete overflowing text from first line and insert text on first line + this._setLineText(position.lineNumber - 1, this._lines[position.lineNumber - 1].substring(0, position.column - 1) + + insertLines[0]); + // Insert new lines & store lengths + const newLengths = new Uint32Array(insertLines.length - 1); + for (let i = 1; i < insertLines.length; i++) { + this._lines.splice(position.lineNumber + i - 1, 0, insertLines[i]); + newLengths[i - 1] = insertLines[i].length + this._eol.length; + } + if (this._lineStarts) { + // update prefix sum + this._lineStarts.insertValues(position.lineNumber, newLengths); + } + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/core/wordHelper.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + + +const USUAL_WORD_SEPARATORS = '`~!@#$%^&*()-=+[{]}\\|;:\'",.<>/?'; +/** + * Create a word definition regular expression based on default word separators. + * Optionally provide allowed separators that should be included in words. + * + * The default would look like this: + * /(-?\d*\.\d\w*)|([^\`\~\!\@\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g + */ +function createWordRegExp(allowInWords = '') { + let source = '(-?\\d*\\.\\d\\w*)|([^'; + for (const sep of USUAL_WORD_SEPARATORS) { + if (allowInWords.indexOf(sep) >= 0) { + continue; + } + source += '\\' + sep; + } + source += '\\s]+)'; + return new RegExp(source, 'g'); +} +// catches numbers (including floating numbers) in the first group, and alphanum in the second +const DEFAULT_WORD_REGEXP = createWordRegExp(); +function ensureValidWordDefinition(wordDefinition) { + let result = DEFAULT_WORD_REGEXP; + if (wordDefinition && (wordDefinition instanceof RegExp)) { + if (!wordDefinition.global) { + let flags = 'g'; + if (wordDefinition.ignoreCase) { + flags += 'i'; + } + if (wordDefinition.multiline) { + flags += 'm'; + } + if (wordDefinition.unicode) { + flags += 'u'; + } + result = new RegExp(wordDefinition.source, flags); + } + else { + result = wordDefinition; + } + } + result.lastIndex = 0; + return result; +} +const _defaultConfig = new linkedList_LinkedList(); +_defaultConfig.unshift({ + maxLen: 1000, + windowSize: 15, + timeBudget: 150 +}); +function getWordAtText(column, wordDefinition, text, textOffset, config) { + if (!config) { + config = Iterable.first(_defaultConfig); + } + if (text.length > config.maxLen) { + // don't throw strings that long at the regexp + // but use a sub-string in which a word must occur + let start = column - config.maxLen / 2; + if (start < 0) { + start = 0; + } + else { + textOffset += start; + } + text = text.substring(start, column + config.maxLen / 2); + return getWordAtText(column, wordDefinition, text, textOffset, config); + } + const t1 = Date.now(); + const pos = column - 1 - textOffset; + let prevRegexIndex = -1; + let match = null; + for (let i = 1;; i++) { + // check time budget + if (Date.now() - t1 >= config.timeBudget) { + break; + } + // reset the index at which the regexp should start matching, also know where it + // should stop so that subsequent search don't repeat previous searches + const regexIndex = pos - config.windowSize * i; + wordDefinition.lastIndex = Math.max(0, regexIndex); + const thisMatch = _findRegexMatchEnclosingPosition(wordDefinition, text, pos, prevRegexIndex); + if (!thisMatch && match) { + // stop: we have something + break; + } + match = thisMatch; + // stop: searched at start + if (regexIndex <= 0) { + break; + } + prevRegexIndex = regexIndex; + } + if (match) { + const result = { + word: match[0], + startColumn: textOffset + 1 + match.index, + endColumn: textOffset + 1 + match.index + match[0].length + }; + wordDefinition.lastIndex = 0; + return result; + } + return null; +} +function _findRegexMatchEnclosingPosition(wordDefinition, text, pos, stopPos) { + let match; + while (match = wordDefinition.exec(text)) { + const matchIndex = match.index || 0; + if (matchIndex <= pos && wordDefinition.lastIndex >= pos) { + return match; + } + else if (stopPos > 0 && matchIndex > stopPos) { + return null; + } + } + return null; +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/core/characterClassifier.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +/** + * A fast character classifier that uses a compact array for ASCII values. + */ +class CharacterClassifier { + constructor(_defaultValue) { + const defaultValue = toUint8(_defaultValue); + this._defaultValue = defaultValue; + this._asciiMap = CharacterClassifier._createAsciiMap(defaultValue); + this._map = new Map(); + } + static _createAsciiMap(defaultValue) { + const asciiMap = new Uint8Array(256); + for (let i = 0; i < 256; i++) { + asciiMap[i] = defaultValue; + } + return asciiMap; + } + set(charCode, _value) { + const value = toUint8(_value); + if (charCode >= 0 && charCode < 256) { + this._asciiMap[charCode] = value; + } + else { + this._map.set(charCode, value); + } + } + get(charCode) { + if (charCode >= 0 && charCode < 256) { + return this._asciiMap[charCode]; + } + else { + return (this._map.get(charCode) || this._defaultValue); + } + } +} +class CharacterSet { + constructor() { + this._actual = new CharacterClassifier(0 /* Boolean.False */); + } + add(charCode) { + this._actual.set(charCode, 1 /* Boolean.True */); + } + has(charCode) { + return (this._actual.get(charCode) === 1 /* Boolean.True */); + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/languages/linkComputer.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +class Uint8Matrix { + constructor(rows, cols, defaultValue) { + const data = new Uint8Array(rows * cols); + for (let i = 0, len = rows * cols; i < len; i++) { + data[i] = defaultValue; + } + this._data = data; + this.rows = rows; + this.cols = cols; + } + get(row, col) { + return this._data[row * this.cols + col]; + } + set(row, col, value) { + this._data[row * this.cols + col] = value; + } +} +class StateMachine { + constructor(edges) { + let maxCharCode = 0; + let maxState = 0 /* State.Invalid */; + for (let i = 0, len = edges.length; i < len; i++) { + const [from, chCode, to] = edges[i]; + if (chCode > maxCharCode) { + maxCharCode = chCode; + } + if (from > maxState) { + maxState = from; + } + if (to > maxState) { + maxState = to; + } + } + maxCharCode++; + maxState++; + const states = new Uint8Matrix(maxState, maxCharCode, 0 /* State.Invalid */); + for (let i = 0, len = edges.length; i < len; i++) { + const [from, chCode, to] = edges[i]; + states.set(from, chCode, to); + } + this._states = states; + this._maxCharCode = maxCharCode; + } + nextState(currentState, chCode) { + if (chCode < 0 || chCode >= this._maxCharCode) { + return 0 /* State.Invalid */; + } + return this._states.get(currentState, chCode); + } +} +// State machine for http:// or https:// or file:// +let _stateMachine = null; +function getStateMachine() { + if (_stateMachine === null) { + _stateMachine = new StateMachine([ + [1 /* State.Start */, 104 /* CharCode.h */, 2 /* State.H */], + [1 /* State.Start */, 72 /* CharCode.H */, 2 /* State.H */], + [1 /* State.Start */, 102 /* CharCode.f */, 6 /* State.F */], + [1 /* State.Start */, 70 /* CharCode.F */, 6 /* State.F */], + [2 /* State.H */, 116 /* CharCode.t */, 3 /* State.HT */], + [2 /* State.H */, 84 /* CharCode.T */, 3 /* State.HT */], + [3 /* State.HT */, 116 /* CharCode.t */, 4 /* State.HTT */], + [3 /* State.HT */, 84 /* CharCode.T */, 4 /* State.HTT */], + [4 /* State.HTT */, 112 /* CharCode.p */, 5 /* State.HTTP */], + [4 /* State.HTT */, 80 /* CharCode.P */, 5 /* State.HTTP */], + [5 /* State.HTTP */, 115 /* CharCode.s */, 9 /* State.BeforeColon */], + [5 /* State.HTTP */, 83 /* CharCode.S */, 9 /* State.BeforeColon */], + [5 /* State.HTTP */, 58 /* CharCode.Colon */, 10 /* State.AfterColon */], + [6 /* State.F */, 105 /* CharCode.i */, 7 /* State.FI */], + [6 /* State.F */, 73 /* CharCode.I */, 7 /* State.FI */], + [7 /* State.FI */, 108 /* CharCode.l */, 8 /* State.FIL */], + [7 /* State.FI */, 76 /* CharCode.L */, 8 /* State.FIL */], + [8 /* State.FIL */, 101 /* CharCode.e */, 9 /* State.BeforeColon */], + [8 /* State.FIL */, 69 /* CharCode.E */, 9 /* State.BeforeColon */], + [9 /* State.BeforeColon */, 58 /* CharCode.Colon */, 10 /* State.AfterColon */], + [10 /* State.AfterColon */, 47 /* CharCode.Slash */, 11 /* State.AlmostThere */], + [11 /* State.AlmostThere */, 47 /* CharCode.Slash */, 12 /* State.End */], + ]); + } + return _stateMachine; +} +let _classifier = null; +function getClassifier() { + if (_classifier === null) { + _classifier = new CharacterClassifier(0 /* CharacterClass.None */); + // allow-any-unicode-next-line + const FORCE_TERMINATION_CHARACTERS = ' \t<>\'\"、。。、,.:;‘〈「『〔([{「」}])〕』」〉’`~…'; + for (let i = 0; i < FORCE_TERMINATION_CHARACTERS.length; i++) { + _classifier.set(FORCE_TERMINATION_CHARACTERS.charCodeAt(i), 1 /* CharacterClass.ForceTermination */); + } + const CANNOT_END_WITH_CHARACTERS = '.,;:'; + for (let i = 0; i < CANNOT_END_WITH_CHARACTERS.length; i++) { + _classifier.set(CANNOT_END_WITH_CHARACTERS.charCodeAt(i), 2 /* CharacterClass.CannotEndIn */); + } + } + return _classifier; +} +class LinkComputer { + static _createLink(classifier, line, lineNumber, linkBeginIndex, linkEndIndex) { + // Do not allow to end link in certain characters... + let lastIncludedCharIndex = linkEndIndex - 1; + do { + const chCode = line.charCodeAt(lastIncludedCharIndex); + const chClass = classifier.get(chCode); + if (chClass !== 2 /* CharacterClass.CannotEndIn */) { + break; + } + lastIncludedCharIndex--; + } while (lastIncludedCharIndex > linkBeginIndex); + // Handle links enclosed in parens, square brackets and curlys. + if (linkBeginIndex > 0) { + const charCodeBeforeLink = line.charCodeAt(linkBeginIndex - 1); + const lastCharCodeInLink = line.charCodeAt(lastIncludedCharIndex); + if ((charCodeBeforeLink === 40 /* CharCode.OpenParen */ && lastCharCodeInLink === 41 /* CharCode.CloseParen */) + || (charCodeBeforeLink === 91 /* CharCode.OpenSquareBracket */ && lastCharCodeInLink === 93 /* CharCode.CloseSquareBracket */) + || (charCodeBeforeLink === 123 /* CharCode.OpenCurlyBrace */ && lastCharCodeInLink === 125 /* CharCode.CloseCurlyBrace */)) { + // Do not end in ) if ( is before the link start + // Do not end in ] if [ is before the link start + // Do not end in } if { is before the link start + lastIncludedCharIndex--; + } + } + return { + range: { + startLineNumber: lineNumber, + startColumn: linkBeginIndex + 1, + endLineNumber: lineNumber, + endColumn: lastIncludedCharIndex + 2 + }, + url: line.substring(linkBeginIndex, lastIncludedCharIndex + 1) + }; + } + static computeLinks(model, stateMachine = getStateMachine()) { + const classifier = getClassifier(); + const result = []; + for (let i = 1, lineCount = model.getLineCount(); i <= lineCount; i++) { + const line = model.getLineContent(i); + const len = line.length; + let j = 0; + let linkBeginIndex = 0; + let linkBeginChCode = 0; + let state = 1 /* State.Start */; + let hasOpenParens = false; + let hasOpenSquareBracket = false; + let inSquareBrackets = false; + let hasOpenCurlyBracket = false; + while (j < len) { + let resetStateMachine = false; + const chCode = line.charCodeAt(j); + if (state === 13 /* State.Accept */) { + let chClass; + switch (chCode) { + case 40 /* CharCode.OpenParen */: + hasOpenParens = true; + chClass = 0 /* CharacterClass.None */; + break; + case 41 /* CharCode.CloseParen */: + chClass = (hasOpenParens ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */); + break; + case 91 /* CharCode.OpenSquareBracket */: + inSquareBrackets = true; + hasOpenSquareBracket = true; + chClass = 0 /* CharacterClass.None */; + break; + case 93 /* CharCode.CloseSquareBracket */: + inSquareBrackets = false; + chClass = (hasOpenSquareBracket ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */); + break; + case 123 /* CharCode.OpenCurlyBrace */: + hasOpenCurlyBracket = true; + chClass = 0 /* CharacterClass.None */; + break; + case 125 /* CharCode.CloseCurlyBrace */: + chClass = (hasOpenCurlyBracket ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */); + break; + /* The following three rules make it that ' or " or ` are allowed inside links if the link didn't begin with them */ + case 39 /* CharCode.SingleQuote */: + chClass = (linkBeginChCode === 39 /* CharCode.SingleQuote */ ? 1 /* CharacterClass.ForceTermination */ : 0 /* CharacterClass.None */); + break; + case 34 /* CharCode.DoubleQuote */: + chClass = (linkBeginChCode === 34 /* CharCode.DoubleQuote */ ? 1 /* CharacterClass.ForceTermination */ : 0 /* CharacterClass.None */); + break; + case 96 /* CharCode.BackTick */: + chClass = (linkBeginChCode === 96 /* CharCode.BackTick */ ? 1 /* CharacterClass.ForceTermination */ : 0 /* CharacterClass.None */); + break; + case 42 /* CharCode.Asterisk */: + // `*` terminates a link if the link began with `*` + chClass = (linkBeginChCode === 42 /* CharCode.Asterisk */) ? 1 /* CharacterClass.ForceTermination */ : 0 /* CharacterClass.None */; + break; + case 124 /* CharCode.Pipe */: + // `|` terminates a link if the link began with `|` + chClass = (linkBeginChCode === 124 /* CharCode.Pipe */) ? 1 /* CharacterClass.ForceTermination */ : 0 /* CharacterClass.None */; + break; + case 32 /* CharCode.Space */: + // ` ` allow space in between [ and ] + chClass = (inSquareBrackets ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */); + break; + default: + chClass = classifier.get(chCode); + } + // Check if character terminates link + if (chClass === 1 /* CharacterClass.ForceTermination */) { + result.push(LinkComputer._createLink(classifier, line, i, linkBeginIndex, j)); + resetStateMachine = true; + } + } + else if (state === 12 /* State.End */) { + let chClass; + if (chCode === 91 /* CharCode.OpenSquareBracket */) { + // Allow for the authority part to contain ipv6 addresses which contain [ and ] + hasOpenSquareBracket = true; + chClass = 0 /* CharacterClass.None */; + } + else { + chClass = classifier.get(chCode); + } + // Check if character terminates link + if (chClass === 1 /* CharacterClass.ForceTermination */) { + resetStateMachine = true; + } + else { + state = 13 /* State.Accept */; + } + } + else { + state = stateMachine.nextState(state, chCode); + if (state === 0 /* State.Invalid */) { + resetStateMachine = true; + } + } + if (resetStateMachine) { + state = 1 /* State.Start */; + hasOpenParens = false; + hasOpenSquareBracket = false; + hasOpenCurlyBracket = false; + // Record where the link started + linkBeginIndex = j + 1; + linkBeginChCode = chCode; + } + j++; + } + if (state === 13 /* State.Accept */) { + result.push(LinkComputer._createLink(classifier, line, i, linkBeginIndex, len)); + } + } + return result; + } +} +/** + * Returns an array of all links contains in the provided + * document. *Note* that this operation is computational + * expensive and should not run in the UI thread. + */ +function computeLinks(model) { + if (!model || typeof model.getLineCount !== 'function' || typeof model.getLineContent !== 'function') { + // Unknown caller! + return []; + } + return LinkComputer.computeLinks(model); +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/languages/supports/inplaceReplaceSupport.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class BasicInplaceReplace { + constructor() { + this._defaultValueSet = [ + ['true', 'false'], + ['True', 'False'], + ['Private', 'Public', 'Friend', 'ReadOnly', 'Partial', 'Protected', 'WriteOnly'], + ['public', 'protected', 'private'], + ]; + } + navigateValueSet(range1, text1, range2, text2, up) { + if (range1 && text1) { + const result = this.doNavigateValueSet(text1, up); + if (result) { + return { + range: range1, + value: result + }; + } + } + if (range2 && text2) { + const result = this.doNavigateValueSet(text2, up); + if (result) { + return { + range: range2, + value: result + }; + } + } + return null; + } + doNavigateValueSet(text, up) { + const numberResult = this.numberReplace(text, up); + if (numberResult !== null) { + return numberResult; + } + return this.textReplace(text, up); + } + numberReplace(value, up) { + const precision = Math.pow(10, value.length - (value.lastIndexOf('.') + 1)); + let n1 = Number(value); + const n2 = parseFloat(value); + if (!isNaN(n1) && !isNaN(n2) && n1 === n2) { + if (n1 === 0 && !up) { + return null; // don't do negative + // } else if(n1 === 9 && up) { + // return null; // don't insert 10 into a number + } + else { + n1 = Math.floor(n1 * precision); + n1 += up ? precision : -precision; + return String(n1 / precision); + } + } + return null; + } + textReplace(value, up) { + return this.valueSetsReplace(this._defaultValueSet, value, up); + } + valueSetsReplace(valueSets, value, up) { + let result = null; + for (let i = 0, len = valueSets.length; result === null && i < len; i++) { + result = this.valueSetReplace(valueSets[i], value, up); + } + return result; + } + valueSetReplace(valueSet, value, up) { + let idx = valueSet.indexOf(value); + if (idx >= 0) { + idx += up ? +1 : -1; + if (idx < 0) { + idx = valueSet.length - 1; + } + else { + idx %= valueSet.length; + } + return valueSet[idx]; + } + return null; + } +} +BasicInplaceReplace.INSTANCE = new BasicInplaceReplace(); + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/cancellation.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +const shortcutEvent = Object.freeze(function (callback, context) { + const handle = setTimeout(callback.bind(context), 0); + return { dispose() { clearTimeout(handle); } }; +}); +var CancellationToken; +(function (CancellationToken) { + function isCancellationToken(thing) { + if (thing === CancellationToken.None || thing === CancellationToken.Cancelled) { + return true; + } + if (thing instanceof MutableToken) { + return true; + } + if (!thing || typeof thing !== 'object') { + return false; + } + return typeof thing.isCancellationRequested === 'boolean' + && typeof thing.onCancellationRequested === 'function'; + } + CancellationToken.isCancellationToken = isCancellationToken; + CancellationToken.None = Object.freeze({ + isCancellationRequested: false, + onCancellationRequested: Event.None + }); + CancellationToken.Cancelled = Object.freeze({ + isCancellationRequested: true, + onCancellationRequested: shortcutEvent + }); +})(CancellationToken || (CancellationToken = {})); +class MutableToken { + constructor() { + this._isCancelled = false; + this._emitter = null; + } + cancel() { + if (!this._isCancelled) { + this._isCancelled = true; + if (this._emitter) { + this._emitter.fire(undefined); + this.dispose(); + } + } + } + get isCancellationRequested() { + return this._isCancelled; + } + get onCancellationRequested() { + if (this._isCancelled) { + return shortcutEvent; + } + if (!this._emitter) { + this._emitter = new Emitter(); + } + return this._emitter.event; + } + dispose() { + if (this._emitter) { + this._emitter.dispose(); + this._emitter = null; + } + } +} +class CancellationTokenSource { + constructor(parent) { + this._token = undefined; + this._parentListener = undefined; + this._parentListener = parent && parent.onCancellationRequested(this.cancel, this); + } + get token() { + if (!this._token) { + // be lazy and create the token only when + // actually needed + this._token = new MutableToken(); + } + return this._token; + } + cancel() { + if (!this._token) { + // save an object by returning the default + // cancelled token when cancellation happens + // before someone asks for the token + this._token = CancellationToken.Cancelled; + } + else if (this._token instanceof MutableToken) { + // actually cancel + this._token.cancel(); + } + } + dispose(cancel = false) { + if (cancel) { + this.cancel(); + } + if (this._parentListener) { + this._parentListener.dispose(); + } + if (!this._token) { + // ensure to initialize with an empty token if we had none + this._token = CancellationToken.None; + } + else if (this._token instanceof MutableToken) { + // actually dispose + this._token.dispose(); + } + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/keyCodes.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +class KeyCodeStrMap { + constructor() { + this._keyCodeToStr = []; + this._strToKeyCode = Object.create(null); + } + define(keyCode, str) { + this._keyCodeToStr[keyCode] = str; + this._strToKeyCode[str.toLowerCase()] = keyCode; + } + keyCodeToStr(keyCode) { + return this._keyCodeToStr[keyCode]; + } + strToKeyCode(str) { + return this._strToKeyCode[str.toLowerCase()] || 0 /* KeyCode.Unknown */; + } +} +const uiMap = new KeyCodeStrMap(); +const userSettingsUSMap = new KeyCodeStrMap(); +const userSettingsGeneralMap = new KeyCodeStrMap(); +const EVENT_KEY_CODE_MAP = new Array(230); +const NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE = {}; +const scanCodeIntToStr = []; +const scanCodeStrToInt = Object.create(null); +const scanCodeLowerCaseStrToInt = Object.create(null); +/** + * -1 if a ScanCode => KeyCode mapping depends on kb layout. + */ +const IMMUTABLE_CODE_TO_KEY_CODE = []; +/** + * -1 if a KeyCode => ScanCode mapping depends on kb layout. + */ +const IMMUTABLE_KEY_CODE_TO_CODE = []; +for (let i = 0; i <= 193 /* ScanCode.MAX_VALUE */; i++) { + IMMUTABLE_CODE_TO_KEY_CODE[i] = -1 /* KeyCode.DependsOnKbLayout */; +} +for (let i = 0; i <= 127 /* KeyCode.MAX_VALUE */; i++) { + IMMUTABLE_KEY_CODE_TO_CODE[i] = -1 /* ScanCode.DependsOnKbLayout */; +} +(function () { + // See https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx + // See https://github.com/microsoft/node-native-keymap/blob/master/deps/chromium/keyboard_codes_win.h + const empty = ''; + const mappings = [ + // keyCodeOrd, immutable, scanCode, scanCodeStr, keyCode, keyCodeStr, eventKeyCode, vkey, usUserSettingsLabel, generalUserSettingsLabel + [0, 1, 0 /* ScanCode.None */, 'None', 0 /* KeyCode.Unknown */, 'unknown', 0, 'VK_UNKNOWN', empty, empty], + [0, 1, 1 /* ScanCode.Hyper */, 'Hyper', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 2 /* ScanCode.Super */, 'Super', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 3 /* ScanCode.Fn */, 'Fn', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 4 /* ScanCode.FnLock */, 'FnLock', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 5 /* ScanCode.Suspend */, 'Suspend', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 6 /* ScanCode.Resume */, 'Resume', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 7 /* ScanCode.Turbo */, 'Turbo', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 8 /* ScanCode.Sleep */, 'Sleep', 0 /* KeyCode.Unknown */, empty, 0, 'VK_SLEEP', empty, empty], + [0, 1, 9 /* ScanCode.WakeUp */, 'WakeUp', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [31, 0, 10 /* ScanCode.KeyA */, 'KeyA', 31 /* KeyCode.KeyA */, 'A', 65, 'VK_A', empty, empty], + [32, 0, 11 /* ScanCode.KeyB */, 'KeyB', 32 /* KeyCode.KeyB */, 'B', 66, 'VK_B', empty, empty], + [33, 0, 12 /* ScanCode.KeyC */, 'KeyC', 33 /* KeyCode.KeyC */, 'C', 67, 'VK_C', empty, empty], + [34, 0, 13 /* ScanCode.KeyD */, 'KeyD', 34 /* KeyCode.KeyD */, 'D', 68, 'VK_D', empty, empty], + [35, 0, 14 /* ScanCode.KeyE */, 'KeyE', 35 /* KeyCode.KeyE */, 'E', 69, 'VK_E', empty, empty], + [36, 0, 15 /* ScanCode.KeyF */, 'KeyF', 36 /* KeyCode.KeyF */, 'F', 70, 'VK_F', empty, empty], + [37, 0, 16 /* ScanCode.KeyG */, 'KeyG', 37 /* KeyCode.KeyG */, 'G', 71, 'VK_G', empty, empty], + [38, 0, 17 /* ScanCode.KeyH */, 'KeyH', 38 /* KeyCode.KeyH */, 'H', 72, 'VK_H', empty, empty], + [39, 0, 18 /* ScanCode.KeyI */, 'KeyI', 39 /* KeyCode.KeyI */, 'I', 73, 'VK_I', empty, empty], + [40, 0, 19 /* ScanCode.KeyJ */, 'KeyJ', 40 /* KeyCode.KeyJ */, 'J', 74, 'VK_J', empty, empty], + [41, 0, 20 /* ScanCode.KeyK */, 'KeyK', 41 /* KeyCode.KeyK */, 'K', 75, 'VK_K', empty, empty], + [42, 0, 21 /* ScanCode.KeyL */, 'KeyL', 42 /* KeyCode.KeyL */, 'L', 76, 'VK_L', empty, empty], + [43, 0, 22 /* ScanCode.KeyM */, 'KeyM', 43 /* KeyCode.KeyM */, 'M', 77, 'VK_M', empty, empty], + [44, 0, 23 /* ScanCode.KeyN */, 'KeyN', 44 /* KeyCode.KeyN */, 'N', 78, 'VK_N', empty, empty], + [45, 0, 24 /* ScanCode.KeyO */, 'KeyO', 45 /* KeyCode.KeyO */, 'O', 79, 'VK_O', empty, empty], + [46, 0, 25 /* ScanCode.KeyP */, 'KeyP', 46 /* KeyCode.KeyP */, 'P', 80, 'VK_P', empty, empty], + [47, 0, 26 /* ScanCode.KeyQ */, 'KeyQ', 47 /* KeyCode.KeyQ */, 'Q', 81, 'VK_Q', empty, empty], + [48, 0, 27 /* ScanCode.KeyR */, 'KeyR', 48 /* KeyCode.KeyR */, 'R', 82, 'VK_R', empty, empty], + [49, 0, 28 /* ScanCode.KeyS */, 'KeyS', 49 /* KeyCode.KeyS */, 'S', 83, 'VK_S', empty, empty], + [50, 0, 29 /* ScanCode.KeyT */, 'KeyT', 50 /* KeyCode.KeyT */, 'T', 84, 'VK_T', empty, empty], + [51, 0, 30 /* ScanCode.KeyU */, 'KeyU', 51 /* KeyCode.KeyU */, 'U', 85, 'VK_U', empty, empty], + [52, 0, 31 /* ScanCode.KeyV */, 'KeyV', 52 /* KeyCode.KeyV */, 'V', 86, 'VK_V', empty, empty], + [53, 0, 32 /* ScanCode.KeyW */, 'KeyW', 53 /* KeyCode.KeyW */, 'W', 87, 'VK_W', empty, empty], + [54, 0, 33 /* ScanCode.KeyX */, 'KeyX', 54 /* KeyCode.KeyX */, 'X', 88, 'VK_X', empty, empty], + [55, 0, 34 /* ScanCode.KeyY */, 'KeyY', 55 /* KeyCode.KeyY */, 'Y', 89, 'VK_Y', empty, empty], + [56, 0, 35 /* ScanCode.KeyZ */, 'KeyZ', 56 /* KeyCode.KeyZ */, 'Z', 90, 'VK_Z', empty, empty], + [22, 0, 36 /* ScanCode.Digit1 */, 'Digit1', 22 /* KeyCode.Digit1 */, '1', 49, 'VK_1', empty, empty], + [23, 0, 37 /* ScanCode.Digit2 */, 'Digit2', 23 /* KeyCode.Digit2 */, '2', 50, 'VK_2', empty, empty], + [24, 0, 38 /* ScanCode.Digit3 */, 'Digit3', 24 /* KeyCode.Digit3 */, '3', 51, 'VK_3', empty, empty], + [25, 0, 39 /* ScanCode.Digit4 */, 'Digit4', 25 /* KeyCode.Digit4 */, '4', 52, 'VK_4', empty, empty], + [26, 0, 40 /* ScanCode.Digit5 */, 'Digit5', 26 /* KeyCode.Digit5 */, '5', 53, 'VK_5', empty, empty], + [27, 0, 41 /* ScanCode.Digit6 */, 'Digit6', 27 /* KeyCode.Digit6 */, '6', 54, 'VK_6', empty, empty], + [28, 0, 42 /* ScanCode.Digit7 */, 'Digit7', 28 /* KeyCode.Digit7 */, '7', 55, 'VK_7', empty, empty], + [29, 0, 43 /* ScanCode.Digit8 */, 'Digit8', 29 /* KeyCode.Digit8 */, '8', 56, 'VK_8', empty, empty], + [30, 0, 44 /* ScanCode.Digit9 */, 'Digit9', 30 /* KeyCode.Digit9 */, '9', 57, 'VK_9', empty, empty], + [21, 0, 45 /* ScanCode.Digit0 */, 'Digit0', 21 /* KeyCode.Digit0 */, '0', 48, 'VK_0', empty, empty], + [3, 1, 46 /* ScanCode.Enter */, 'Enter', 3 /* KeyCode.Enter */, 'Enter', 13, 'VK_RETURN', empty, empty], + [9, 1, 47 /* ScanCode.Escape */, 'Escape', 9 /* KeyCode.Escape */, 'Escape', 27, 'VK_ESCAPE', empty, empty], + [1, 1, 48 /* ScanCode.Backspace */, 'Backspace', 1 /* KeyCode.Backspace */, 'Backspace', 8, 'VK_BACK', empty, empty], + [2, 1, 49 /* ScanCode.Tab */, 'Tab', 2 /* KeyCode.Tab */, 'Tab', 9, 'VK_TAB', empty, empty], + [10, 1, 50 /* ScanCode.Space */, 'Space', 10 /* KeyCode.Space */, 'Space', 32, 'VK_SPACE', empty, empty], + [83, 0, 51 /* ScanCode.Minus */, 'Minus', 83 /* KeyCode.Minus */, '-', 189, 'VK_OEM_MINUS', '-', 'OEM_MINUS'], + [81, 0, 52 /* ScanCode.Equal */, 'Equal', 81 /* KeyCode.Equal */, '=', 187, 'VK_OEM_PLUS', '=', 'OEM_PLUS'], + [87, 0, 53 /* ScanCode.BracketLeft */, 'BracketLeft', 87 /* KeyCode.BracketLeft */, '[', 219, 'VK_OEM_4', '[', 'OEM_4'], + [89, 0, 54 /* ScanCode.BracketRight */, 'BracketRight', 89 /* KeyCode.BracketRight */, ']', 221, 'VK_OEM_6', ']', 'OEM_6'], + [88, 0, 55 /* ScanCode.Backslash */, 'Backslash', 88 /* KeyCode.Backslash */, '\\', 220, 'VK_OEM_5', '\\', 'OEM_5'], + [0, 0, 56 /* ScanCode.IntlHash */, 'IntlHash', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [80, 0, 57 /* ScanCode.Semicolon */, 'Semicolon', 80 /* KeyCode.Semicolon */, ';', 186, 'VK_OEM_1', ';', 'OEM_1'], + [90, 0, 58 /* ScanCode.Quote */, 'Quote', 90 /* KeyCode.Quote */, '\'', 222, 'VK_OEM_7', '\'', 'OEM_7'], + [86, 0, 59 /* ScanCode.Backquote */, 'Backquote', 86 /* KeyCode.Backquote */, '`', 192, 'VK_OEM_3', '`', 'OEM_3'], + [82, 0, 60 /* ScanCode.Comma */, 'Comma', 82 /* KeyCode.Comma */, ',', 188, 'VK_OEM_COMMA', ',', 'OEM_COMMA'], + [84, 0, 61 /* ScanCode.Period */, 'Period', 84 /* KeyCode.Period */, '.', 190, 'VK_OEM_PERIOD', '.', 'OEM_PERIOD'], + [85, 0, 62 /* ScanCode.Slash */, 'Slash', 85 /* KeyCode.Slash */, '/', 191, 'VK_OEM_2', '/', 'OEM_2'], + [8, 1, 63 /* ScanCode.CapsLock */, 'CapsLock', 8 /* KeyCode.CapsLock */, 'CapsLock', 20, 'VK_CAPITAL', empty, empty], + [59, 1, 64 /* ScanCode.F1 */, 'F1', 59 /* KeyCode.F1 */, 'F1', 112, 'VK_F1', empty, empty], + [60, 1, 65 /* ScanCode.F2 */, 'F2', 60 /* KeyCode.F2 */, 'F2', 113, 'VK_F2', empty, empty], + [61, 1, 66 /* ScanCode.F3 */, 'F3', 61 /* KeyCode.F3 */, 'F3', 114, 'VK_F3', empty, empty], + [62, 1, 67 /* ScanCode.F4 */, 'F4', 62 /* KeyCode.F4 */, 'F4', 115, 'VK_F4', empty, empty], + [63, 1, 68 /* ScanCode.F5 */, 'F5', 63 /* KeyCode.F5 */, 'F5', 116, 'VK_F5', empty, empty], + [64, 1, 69 /* ScanCode.F6 */, 'F6', 64 /* KeyCode.F6 */, 'F6', 117, 'VK_F6', empty, empty], + [65, 1, 70 /* ScanCode.F7 */, 'F7', 65 /* KeyCode.F7 */, 'F7', 118, 'VK_F7', empty, empty], + [66, 1, 71 /* ScanCode.F8 */, 'F8', 66 /* KeyCode.F8 */, 'F8', 119, 'VK_F8', empty, empty], + [67, 1, 72 /* ScanCode.F9 */, 'F9', 67 /* KeyCode.F9 */, 'F9', 120, 'VK_F9', empty, empty], + [68, 1, 73 /* ScanCode.F10 */, 'F10', 68 /* KeyCode.F10 */, 'F10', 121, 'VK_F10', empty, empty], + [69, 1, 74 /* ScanCode.F11 */, 'F11', 69 /* KeyCode.F11 */, 'F11', 122, 'VK_F11', empty, empty], + [70, 1, 75 /* ScanCode.F12 */, 'F12', 70 /* KeyCode.F12 */, 'F12', 123, 'VK_F12', empty, empty], + [0, 1, 76 /* ScanCode.PrintScreen */, 'PrintScreen', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [79, 1, 77 /* ScanCode.ScrollLock */, 'ScrollLock', 79 /* KeyCode.ScrollLock */, 'ScrollLock', 145, 'VK_SCROLL', empty, empty], + [7, 1, 78 /* ScanCode.Pause */, 'Pause', 7 /* KeyCode.PauseBreak */, 'PauseBreak', 19, 'VK_PAUSE', empty, empty], + [19, 1, 79 /* ScanCode.Insert */, 'Insert', 19 /* KeyCode.Insert */, 'Insert', 45, 'VK_INSERT', empty, empty], + [14, 1, 80 /* ScanCode.Home */, 'Home', 14 /* KeyCode.Home */, 'Home', 36, 'VK_HOME', empty, empty], + [11, 1, 81 /* ScanCode.PageUp */, 'PageUp', 11 /* KeyCode.PageUp */, 'PageUp', 33, 'VK_PRIOR', empty, empty], + [20, 1, 82 /* ScanCode.Delete */, 'Delete', 20 /* KeyCode.Delete */, 'Delete', 46, 'VK_DELETE', empty, empty], + [13, 1, 83 /* ScanCode.End */, 'End', 13 /* KeyCode.End */, 'End', 35, 'VK_END', empty, empty], + [12, 1, 84 /* ScanCode.PageDown */, 'PageDown', 12 /* KeyCode.PageDown */, 'PageDown', 34, 'VK_NEXT', empty, empty], + [17, 1, 85 /* ScanCode.ArrowRight */, 'ArrowRight', 17 /* KeyCode.RightArrow */, 'RightArrow', 39, 'VK_RIGHT', 'Right', empty], + [15, 1, 86 /* ScanCode.ArrowLeft */, 'ArrowLeft', 15 /* KeyCode.LeftArrow */, 'LeftArrow', 37, 'VK_LEFT', 'Left', empty], + [18, 1, 87 /* ScanCode.ArrowDown */, 'ArrowDown', 18 /* KeyCode.DownArrow */, 'DownArrow', 40, 'VK_DOWN', 'Down', empty], + [16, 1, 88 /* ScanCode.ArrowUp */, 'ArrowUp', 16 /* KeyCode.UpArrow */, 'UpArrow', 38, 'VK_UP', 'Up', empty], + [78, 1, 89 /* ScanCode.NumLock */, 'NumLock', 78 /* KeyCode.NumLock */, 'NumLock', 144, 'VK_NUMLOCK', empty, empty], + [108, 1, 90 /* ScanCode.NumpadDivide */, 'NumpadDivide', 108 /* KeyCode.NumpadDivide */, 'NumPad_Divide', 111, 'VK_DIVIDE', empty, empty], + [103, 1, 91 /* ScanCode.NumpadMultiply */, 'NumpadMultiply', 103 /* KeyCode.NumpadMultiply */, 'NumPad_Multiply', 106, 'VK_MULTIPLY', empty, empty], + [106, 1, 92 /* ScanCode.NumpadSubtract */, 'NumpadSubtract', 106 /* KeyCode.NumpadSubtract */, 'NumPad_Subtract', 109, 'VK_SUBTRACT', empty, empty], + [104, 1, 93 /* ScanCode.NumpadAdd */, 'NumpadAdd', 104 /* KeyCode.NumpadAdd */, 'NumPad_Add', 107, 'VK_ADD', empty, empty], + [3, 1, 94 /* ScanCode.NumpadEnter */, 'NumpadEnter', 3 /* KeyCode.Enter */, empty, 0, empty, empty, empty], + [94, 1, 95 /* ScanCode.Numpad1 */, 'Numpad1', 94 /* KeyCode.Numpad1 */, 'NumPad1', 97, 'VK_NUMPAD1', empty, empty], + [95, 1, 96 /* ScanCode.Numpad2 */, 'Numpad2', 95 /* KeyCode.Numpad2 */, 'NumPad2', 98, 'VK_NUMPAD2', empty, empty], + [96, 1, 97 /* ScanCode.Numpad3 */, 'Numpad3', 96 /* KeyCode.Numpad3 */, 'NumPad3', 99, 'VK_NUMPAD3', empty, empty], + [97, 1, 98 /* ScanCode.Numpad4 */, 'Numpad4', 97 /* KeyCode.Numpad4 */, 'NumPad4', 100, 'VK_NUMPAD4', empty, empty], + [98, 1, 99 /* ScanCode.Numpad5 */, 'Numpad5', 98 /* KeyCode.Numpad5 */, 'NumPad5', 101, 'VK_NUMPAD5', empty, empty], + [99, 1, 100 /* ScanCode.Numpad6 */, 'Numpad6', 99 /* KeyCode.Numpad6 */, 'NumPad6', 102, 'VK_NUMPAD6', empty, empty], + [100, 1, 101 /* ScanCode.Numpad7 */, 'Numpad7', 100 /* KeyCode.Numpad7 */, 'NumPad7', 103, 'VK_NUMPAD7', empty, empty], + [101, 1, 102 /* ScanCode.Numpad8 */, 'Numpad8', 101 /* KeyCode.Numpad8 */, 'NumPad8', 104, 'VK_NUMPAD8', empty, empty], + [102, 1, 103 /* ScanCode.Numpad9 */, 'Numpad9', 102 /* KeyCode.Numpad9 */, 'NumPad9', 105, 'VK_NUMPAD9', empty, empty], + [93, 1, 104 /* ScanCode.Numpad0 */, 'Numpad0', 93 /* KeyCode.Numpad0 */, 'NumPad0', 96, 'VK_NUMPAD0', empty, empty], + [107, 1, 105 /* ScanCode.NumpadDecimal */, 'NumpadDecimal', 107 /* KeyCode.NumpadDecimal */, 'NumPad_Decimal', 110, 'VK_DECIMAL', empty, empty], + [92, 0, 106 /* ScanCode.IntlBackslash */, 'IntlBackslash', 92 /* KeyCode.IntlBackslash */, 'OEM_102', 226, 'VK_OEM_102', empty, empty], + [58, 1, 107 /* ScanCode.ContextMenu */, 'ContextMenu', 58 /* KeyCode.ContextMenu */, 'ContextMenu', 93, empty, empty, empty], + [0, 1, 108 /* ScanCode.Power */, 'Power', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 109 /* ScanCode.NumpadEqual */, 'NumpadEqual', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [71, 1, 110 /* ScanCode.F13 */, 'F13', 71 /* KeyCode.F13 */, 'F13', 124, 'VK_F13', empty, empty], + [72, 1, 111 /* ScanCode.F14 */, 'F14', 72 /* KeyCode.F14 */, 'F14', 125, 'VK_F14', empty, empty], + [73, 1, 112 /* ScanCode.F15 */, 'F15', 73 /* KeyCode.F15 */, 'F15', 126, 'VK_F15', empty, empty], + [74, 1, 113 /* ScanCode.F16 */, 'F16', 74 /* KeyCode.F16 */, 'F16', 127, 'VK_F16', empty, empty], + [75, 1, 114 /* ScanCode.F17 */, 'F17', 75 /* KeyCode.F17 */, 'F17', 128, 'VK_F17', empty, empty], + [76, 1, 115 /* ScanCode.F18 */, 'F18', 76 /* KeyCode.F18 */, 'F18', 129, 'VK_F18', empty, empty], + [77, 1, 116 /* ScanCode.F19 */, 'F19', 77 /* KeyCode.F19 */, 'F19', 130, 'VK_F19', empty, empty], + [0, 1, 117 /* ScanCode.F20 */, 'F20', 0 /* KeyCode.Unknown */, empty, 0, 'VK_F20', empty, empty], + [0, 1, 118 /* ScanCode.F21 */, 'F21', 0 /* KeyCode.Unknown */, empty, 0, 'VK_F21', empty, empty], + [0, 1, 119 /* ScanCode.F22 */, 'F22', 0 /* KeyCode.Unknown */, empty, 0, 'VK_F22', empty, empty], + [0, 1, 120 /* ScanCode.F23 */, 'F23', 0 /* KeyCode.Unknown */, empty, 0, 'VK_F23', empty, empty], + [0, 1, 121 /* ScanCode.F24 */, 'F24', 0 /* KeyCode.Unknown */, empty, 0, 'VK_F24', empty, empty], + [0, 1, 122 /* ScanCode.Open */, 'Open', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 123 /* ScanCode.Help */, 'Help', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 124 /* ScanCode.Select */, 'Select', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 125 /* ScanCode.Again */, 'Again', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 126 /* ScanCode.Undo */, 'Undo', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 127 /* ScanCode.Cut */, 'Cut', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 128 /* ScanCode.Copy */, 'Copy', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 129 /* ScanCode.Paste */, 'Paste', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 130 /* ScanCode.Find */, 'Find', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 131 /* ScanCode.AudioVolumeMute */, 'AudioVolumeMute', 112 /* KeyCode.AudioVolumeMute */, 'AudioVolumeMute', 173, 'VK_VOLUME_MUTE', empty, empty], + [0, 1, 132 /* ScanCode.AudioVolumeUp */, 'AudioVolumeUp', 113 /* KeyCode.AudioVolumeUp */, 'AudioVolumeUp', 175, 'VK_VOLUME_UP', empty, empty], + [0, 1, 133 /* ScanCode.AudioVolumeDown */, 'AudioVolumeDown', 114 /* KeyCode.AudioVolumeDown */, 'AudioVolumeDown', 174, 'VK_VOLUME_DOWN', empty, empty], + [105, 1, 134 /* ScanCode.NumpadComma */, 'NumpadComma', 105 /* KeyCode.NUMPAD_SEPARATOR */, 'NumPad_Separator', 108, 'VK_SEPARATOR', empty, empty], + [110, 0, 135 /* ScanCode.IntlRo */, 'IntlRo', 110 /* KeyCode.ABNT_C1 */, 'ABNT_C1', 193, 'VK_ABNT_C1', empty, empty], + [0, 1, 136 /* ScanCode.KanaMode */, 'KanaMode', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 0, 137 /* ScanCode.IntlYen */, 'IntlYen', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 138 /* ScanCode.Convert */, 'Convert', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 139 /* ScanCode.NonConvert */, 'NonConvert', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 140 /* ScanCode.Lang1 */, 'Lang1', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 141 /* ScanCode.Lang2 */, 'Lang2', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 142 /* ScanCode.Lang3 */, 'Lang3', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 143 /* ScanCode.Lang4 */, 'Lang4', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 144 /* ScanCode.Lang5 */, 'Lang5', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 145 /* ScanCode.Abort */, 'Abort', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 146 /* ScanCode.Props */, 'Props', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 147 /* ScanCode.NumpadParenLeft */, 'NumpadParenLeft', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 148 /* ScanCode.NumpadParenRight */, 'NumpadParenRight', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 149 /* ScanCode.NumpadBackspace */, 'NumpadBackspace', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 150 /* ScanCode.NumpadMemoryStore */, 'NumpadMemoryStore', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 151 /* ScanCode.NumpadMemoryRecall */, 'NumpadMemoryRecall', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 152 /* ScanCode.NumpadMemoryClear */, 'NumpadMemoryClear', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 153 /* ScanCode.NumpadMemoryAdd */, 'NumpadMemoryAdd', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 154 /* ScanCode.NumpadMemorySubtract */, 'NumpadMemorySubtract', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 155 /* ScanCode.NumpadClear */, 'NumpadClear', 126 /* KeyCode.Clear */, 'Clear', 12, 'VK_CLEAR', empty, empty], + [0, 1, 156 /* ScanCode.NumpadClearEntry */, 'NumpadClearEntry', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [5, 1, 0 /* ScanCode.None */, empty, 5 /* KeyCode.Ctrl */, 'Ctrl', 17, 'VK_CONTROL', empty, empty], + [4, 1, 0 /* ScanCode.None */, empty, 4 /* KeyCode.Shift */, 'Shift', 16, 'VK_SHIFT', empty, empty], + [6, 1, 0 /* ScanCode.None */, empty, 6 /* KeyCode.Alt */, 'Alt', 18, 'VK_MENU', empty, empty], + [57, 1, 0 /* ScanCode.None */, empty, 57 /* KeyCode.Meta */, 'Meta', 0, 'VK_COMMAND', empty, empty], + [5, 1, 157 /* ScanCode.ControlLeft */, 'ControlLeft', 5 /* KeyCode.Ctrl */, empty, 0, 'VK_LCONTROL', empty, empty], + [4, 1, 158 /* ScanCode.ShiftLeft */, 'ShiftLeft', 4 /* KeyCode.Shift */, empty, 0, 'VK_LSHIFT', empty, empty], + [6, 1, 159 /* ScanCode.AltLeft */, 'AltLeft', 6 /* KeyCode.Alt */, empty, 0, 'VK_LMENU', empty, empty], + [57, 1, 160 /* ScanCode.MetaLeft */, 'MetaLeft', 57 /* KeyCode.Meta */, empty, 0, 'VK_LWIN', empty, empty], + [5, 1, 161 /* ScanCode.ControlRight */, 'ControlRight', 5 /* KeyCode.Ctrl */, empty, 0, 'VK_RCONTROL', empty, empty], + [4, 1, 162 /* ScanCode.ShiftRight */, 'ShiftRight', 4 /* KeyCode.Shift */, empty, 0, 'VK_RSHIFT', empty, empty], + [6, 1, 163 /* ScanCode.AltRight */, 'AltRight', 6 /* KeyCode.Alt */, empty, 0, 'VK_RMENU', empty, empty], + [57, 1, 164 /* ScanCode.MetaRight */, 'MetaRight', 57 /* KeyCode.Meta */, empty, 0, 'VK_RWIN', empty, empty], + [0, 1, 165 /* ScanCode.BrightnessUp */, 'BrightnessUp', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 166 /* ScanCode.BrightnessDown */, 'BrightnessDown', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 167 /* ScanCode.MediaPlay */, 'MediaPlay', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 168 /* ScanCode.MediaRecord */, 'MediaRecord', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 169 /* ScanCode.MediaFastForward */, 'MediaFastForward', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 170 /* ScanCode.MediaRewind */, 'MediaRewind', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [114, 1, 171 /* ScanCode.MediaTrackNext */, 'MediaTrackNext', 119 /* KeyCode.MediaTrackNext */, 'MediaTrackNext', 176, 'VK_MEDIA_NEXT_TRACK', empty, empty], + [115, 1, 172 /* ScanCode.MediaTrackPrevious */, 'MediaTrackPrevious', 120 /* KeyCode.MediaTrackPrevious */, 'MediaTrackPrevious', 177, 'VK_MEDIA_PREV_TRACK', empty, empty], + [116, 1, 173 /* ScanCode.MediaStop */, 'MediaStop', 121 /* KeyCode.MediaStop */, 'MediaStop', 178, 'VK_MEDIA_STOP', empty, empty], + [0, 1, 174 /* ScanCode.Eject */, 'Eject', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [117, 1, 175 /* ScanCode.MediaPlayPause */, 'MediaPlayPause', 122 /* KeyCode.MediaPlayPause */, 'MediaPlayPause', 179, 'VK_MEDIA_PLAY_PAUSE', empty, empty], + [0, 1, 176 /* ScanCode.MediaSelect */, 'MediaSelect', 123 /* KeyCode.LaunchMediaPlayer */, 'LaunchMediaPlayer', 181, 'VK_MEDIA_LAUNCH_MEDIA_SELECT', empty, empty], + [0, 1, 177 /* ScanCode.LaunchMail */, 'LaunchMail', 124 /* KeyCode.LaunchMail */, 'LaunchMail', 180, 'VK_MEDIA_LAUNCH_MAIL', empty, empty], + [0, 1, 178 /* ScanCode.LaunchApp2 */, 'LaunchApp2', 125 /* KeyCode.LaunchApp2 */, 'LaunchApp2', 183, 'VK_MEDIA_LAUNCH_APP2', empty, empty], + [0, 1, 179 /* ScanCode.LaunchApp1 */, 'LaunchApp1', 0 /* KeyCode.Unknown */, empty, 0, 'VK_MEDIA_LAUNCH_APP1', empty, empty], + [0, 1, 180 /* ScanCode.SelectTask */, 'SelectTask', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 181 /* ScanCode.LaunchScreenSaver */, 'LaunchScreenSaver', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 182 /* ScanCode.BrowserSearch */, 'BrowserSearch', 115 /* KeyCode.BrowserSearch */, 'BrowserSearch', 170, 'VK_BROWSER_SEARCH', empty, empty], + [0, 1, 183 /* ScanCode.BrowserHome */, 'BrowserHome', 116 /* KeyCode.BrowserHome */, 'BrowserHome', 172, 'VK_BROWSER_HOME', empty, empty], + [112, 1, 184 /* ScanCode.BrowserBack */, 'BrowserBack', 117 /* KeyCode.BrowserBack */, 'BrowserBack', 166, 'VK_BROWSER_BACK', empty, empty], + [113, 1, 185 /* ScanCode.BrowserForward */, 'BrowserForward', 118 /* KeyCode.BrowserForward */, 'BrowserForward', 167, 'VK_BROWSER_FORWARD', empty, empty], + [0, 1, 186 /* ScanCode.BrowserStop */, 'BrowserStop', 0 /* KeyCode.Unknown */, empty, 0, 'VK_BROWSER_STOP', empty, empty], + [0, 1, 187 /* ScanCode.BrowserRefresh */, 'BrowserRefresh', 0 /* KeyCode.Unknown */, empty, 0, 'VK_BROWSER_REFRESH', empty, empty], + [0, 1, 188 /* ScanCode.BrowserFavorites */, 'BrowserFavorites', 0 /* KeyCode.Unknown */, empty, 0, 'VK_BROWSER_FAVORITES', empty, empty], + [0, 1, 189 /* ScanCode.ZoomToggle */, 'ZoomToggle', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 190 /* ScanCode.MailReply */, 'MailReply', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 191 /* ScanCode.MailForward */, 'MailForward', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + [0, 1, 192 /* ScanCode.MailSend */, 'MailSend', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], + // See https://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html + // If an Input Method Editor is processing key input and the event is keydown, return 229. + [109, 1, 0 /* ScanCode.None */, empty, 109 /* KeyCode.KEY_IN_COMPOSITION */, 'KeyInComposition', 229, empty, empty, empty], + [111, 1, 0 /* ScanCode.None */, empty, 111 /* KeyCode.ABNT_C2 */, 'ABNT_C2', 194, 'VK_ABNT_C2', empty, empty], + [91, 1, 0 /* ScanCode.None */, empty, 91 /* KeyCode.OEM_8 */, 'OEM_8', 223, 'VK_OEM_8', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_KANA', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_HANGUL', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_JUNJA', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_FINAL', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_HANJA', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_KANJI', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_CONVERT', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_NONCONVERT', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_ACCEPT', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_MODECHANGE', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_SELECT', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PRINT', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_EXECUTE', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_SNAPSHOT', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_HELP', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_APPS', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PROCESSKEY', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PACKET', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_DBE_SBCSCHAR', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_DBE_DBCSCHAR', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_ATTN', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_CRSEL', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_EXSEL', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_EREOF', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PLAY', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_ZOOM', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_NONAME', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PA1', empty, empty], + [0, 1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_OEM_CLEAR', empty, empty], + ]; + const seenKeyCode = []; + const seenScanCode = []; + for (const mapping of mappings) { + const [_keyCodeOrd, immutable, scanCode, scanCodeStr, keyCode, keyCodeStr, eventKeyCode, vkey, usUserSettingsLabel, generalUserSettingsLabel] = mapping; + if (!seenScanCode[scanCode]) { + seenScanCode[scanCode] = true; + scanCodeIntToStr[scanCode] = scanCodeStr; + scanCodeStrToInt[scanCodeStr] = scanCode; + scanCodeLowerCaseStrToInt[scanCodeStr.toLowerCase()] = scanCode; + if (immutable) { + IMMUTABLE_CODE_TO_KEY_CODE[scanCode] = keyCode; + if ((keyCode !== 0 /* KeyCode.Unknown */) + && (keyCode !== 3 /* KeyCode.Enter */) + && (keyCode !== 5 /* KeyCode.Ctrl */) + && (keyCode !== 4 /* KeyCode.Shift */) + && (keyCode !== 6 /* KeyCode.Alt */) + && (keyCode !== 57 /* KeyCode.Meta */)) { + IMMUTABLE_KEY_CODE_TO_CODE[keyCode] = scanCode; + } + } + } + if (!seenKeyCode[keyCode]) { + seenKeyCode[keyCode] = true; + if (!keyCodeStr) { + throw new Error(`String representation missing for key code ${keyCode} around scan code ${scanCodeStr}`); + } + uiMap.define(keyCode, keyCodeStr); + userSettingsUSMap.define(keyCode, usUserSettingsLabel || keyCodeStr); + userSettingsGeneralMap.define(keyCode, generalUserSettingsLabel || usUserSettingsLabel || keyCodeStr); + } + if (eventKeyCode) { + EVENT_KEY_CODE_MAP[eventKeyCode] = keyCode; + } + if (vkey) { + NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE[vkey] = keyCode; + } + } + // Manually added due to the exclusion above (due to duplication with NumpadEnter) + IMMUTABLE_KEY_CODE_TO_CODE[3 /* KeyCode.Enter */] = 46 /* ScanCode.Enter */; +})(); +var KeyCodeUtils; +(function (KeyCodeUtils) { + function toString(keyCode) { + return uiMap.keyCodeToStr(keyCode); + } + KeyCodeUtils.toString = toString; + function fromString(key) { + return uiMap.strToKeyCode(key); + } + KeyCodeUtils.fromString = fromString; + function toUserSettingsUS(keyCode) { + return userSettingsUSMap.keyCodeToStr(keyCode); + } + KeyCodeUtils.toUserSettingsUS = toUserSettingsUS; + function toUserSettingsGeneral(keyCode) { + return userSettingsGeneralMap.keyCodeToStr(keyCode); + } + KeyCodeUtils.toUserSettingsGeneral = toUserSettingsGeneral; + function fromUserSettings(key) { + return userSettingsUSMap.strToKeyCode(key) || userSettingsGeneralMap.strToKeyCode(key); + } + KeyCodeUtils.fromUserSettings = fromUserSettings; + function toElectronAccelerator(keyCode) { + if (keyCode >= 93 /* KeyCode.Numpad0 */ && keyCode <= 108 /* KeyCode.NumpadDivide */) { + // [Electron Accelerators] Electron is able to parse numpad keys, but unfortunately it + // renders them just as regular keys in menus. For example, num0 is rendered as "0", + // numdiv is rendered as "/", numsub is rendered as "-". + // + // This can lead to incredible confusion, as it makes numpad based keybindings indistinguishable + // from keybindings based on regular keys. + // + // We therefore need to fall back to custom rendering for numpad keys. + return null; + } + switch (keyCode) { + case 16 /* KeyCode.UpArrow */: + return 'Up'; + case 18 /* KeyCode.DownArrow */: + return 'Down'; + case 15 /* KeyCode.LeftArrow */: + return 'Left'; + case 17 /* KeyCode.RightArrow */: + return 'Right'; + } + return uiMap.keyCodeToStr(keyCode); + } + KeyCodeUtils.toElectronAccelerator = toElectronAccelerator; +})(KeyCodeUtils || (KeyCodeUtils = {})); +function KeyChord(firstPart, secondPart) { + const chordPart = ((secondPart & 0x0000FFFF) << 16) >>> 0; + return (firstPart | chordPart) >>> 0; +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/core/selection.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + + +/** + * A selection in the editor. + * The selection is a range that has an orientation. + */ +class Selection extends range_Range { + constructor(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn) { + super(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn); + this.selectionStartLineNumber = selectionStartLineNumber; + this.selectionStartColumn = selectionStartColumn; + this.positionLineNumber = positionLineNumber; + this.positionColumn = positionColumn; + } + /** + * Transform to a human-readable representation. + */ + toString() { + return '[' + this.selectionStartLineNumber + ',' + this.selectionStartColumn + ' -> ' + this.positionLineNumber + ',' + this.positionColumn + ']'; + } + /** + * Test if equals other selection. + */ + equalsSelection(other) { + return (Selection.selectionsEqual(this, other)); + } + /** + * Test if the two selections are equal. + */ + static selectionsEqual(a, b) { + return (a.selectionStartLineNumber === b.selectionStartLineNumber && + a.selectionStartColumn === b.selectionStartColumn && + a.positionLineNumber === b.positionLineNumber && + a.positionColumn === b.positionColumn); + } + /** + * Get directions (LTR or RTL). + */ + getDirection() { + if (this.selectionStartLineNumber === this.startLineNumber && this.selectionStartColumn === this.startColumn) { + return 0 /* SelectionDirection.LTR */; + } + return 1 /* SelectionDirection.RTL */; + } + /** + * Create a new selection with a different `positionLineNumber` and `positionColumn`. + */ + setEndPosition(endLineNumber, endColumn) { + if (this.getDirection() === 0 /* SelectionDirection.LTR */) { + return new Selection(this.startLineNumber, this.startColumn, endLineNumber, endColumn); + } + return new Selection(endLineNumber, endColumn, this.startLineNumber, this.startColumn); + } + /** + * Get the position at `positionLineNumber` and `positionColumn`. + */ + getPosition() { + return new position_Position(this.positionLineNumber, this.positionColumn); + } + /** + * Get the position at the start of the selection. + */ + getSelectionStart() { + return new position_Position(this.selectionStartLineNumber, this.selectionStartColumn); + } + /** + * Create a new selection with a different `selectionStartLineNumber` and `selectionStartColumn`. + */ + setStartPosition(startLineNumber, startColumn) { + if (this.getDirection() === 0 /* SelectionDirection.LTR */) { + return new Selection(startLineNumber, startColumn, this.endLineNumber, this.endColumn); + } + return new Selection(this.endLineNumber, this.endColumn, startLineNumber, startColumn); + } + // ---- + /** + * Create a `Selection` from one or two positions + */ + static fromPositions(start, end = start) { + return new Selection(start.lineNumber, start.column, end.lineNumber, end.column); + } + /** + * Creates a `Selection` from a range, given a direction. + */ + static fromRange(range, direction) { + if (direction === 0 /* SelectionDirection.LTR */) { + return new Selection(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn); + } + else { + return new Selection(range.endLineNumber, range.endColumn, range.startLineNumber, range.startColumn); + } + } + /** + * Create a `Selection` from an `ISelection`. + */ + static liftSelection(sel) { + return new Selection(sel.selectionStartLineNumber, sel.selectionStartColumn, sel.positionLineNumber, sel.positionColumn); + } + /** + * `a` equals `b`. + */ + static selectionsArrEqual(a, b) { + if (a && !b || !a && b) { + return false; + } + if (!a && !b) { + return true; + } + if (a.length !== b.length) { + return false; + } + for (let i = 0, len = a.length; i < len; i++) { + if (!this.selectionsEqual(a[i], b[i])) { + return false; + } + } + return true; + } + /** + * Test if `obj` is an `ISelection`. + */ + static isISelection(obj) { + return (obj + && (typeof obj.selectionStartLineNumber === 'number') + && (typeof obj.selectionStartColumn === 'number') + && (typeof obj.positionLineNumber === 'number') + && (typeof obj.positionColumn === 'number')); + } + /** + * Create with a direction. + */ + static createWithDirection(startLineNumber, startColumn, endLineNumber, endColumn, direction) { + if (direction === 0 /* SelectionDirection.LTR */) { + return new Selection(startLineNumber, startColumn, endLineNumber, endColumn); + } + return new Selection(endLineNumber, endColumn, startLineNumber, startColumn); + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/codicons.js +// Selects all codicon names encapsulated in the `$()` syntax and wraps the +// results with spaces so that screen readers can read the text better. +function getCodiconAriaLabel(text) { + if (!text) { + return ''; + } + return text.replace(/\$\((.*?)\)/g, (_match, codiconName) => ` ${codiconName} `).trim(); +} +/** + * The Codicon library is a set of default icons that are built-in in VS Code. + * + * In the product (outside of base) Codicons should only be used as defaults. In order to have all icons in VS Code + * themeable, component should define new, UI component specific icons using `iconRegistry.registerIcon`. + * In that call a Codicon can be named as default. + */ +class Codicon { + constructor(id, definition, description) { + this.id = id; + this.definition = definition; + this.description = description; + Codicon._allCodicons.push(this); + } + get classNames() { return 'codicon codicon-' + this.id; } + // classNamesArray is useful for migrating to ES6 classlist + get classNamesArray() { return ['codicon', 'codicon-' + this.id]; } + get cssSelector() { return '.codicon.codicon-' + this.id; } + /** + * @returns Returns all default icons covered by the codicon font. Only to be used by the icon registry in platform. + */ + static getAll() { + return Codicon._allCodicons; + } +} +// registry +Codicon._allCodicons = []; +// built-in icons, with image name +Codicon.add = new Codicon('add', { fontCharacter: '\\ea60' }); +Codicon.plus = new Codicon('plus', Codicon.add.definition); +Codicon.gistNew = new Codicon('gist-new', Codicon.add.definition); +Codicon.repoCreate = new Codicon('repo-create', Codicon.add.definition); +Codicon.lightbulb = new Codicon('lightbulb', { fontCharacter: '\\ea61' }); +Codicon.lightBulb = new Codicon('light-bulb', { fontCharacter: '\\ea61' }); +Codicon.repo = new Codicon('repo', { fontCharacter: '\\ea62' }); +Codicon.repoDelete = new Codicon('repo-delete', { fontCharacter: '\\ea62' }); +Codicon.gistFork = new Codicon('gist-fork', { fontCharacter: '\\ea63' }); +Codicon.repoForked = new Codicon('repo-forked', { fontCharacter: '\\ea63' }); +Codicon.gitPullRequest = new Codicon('git-pull-request', { fontCharacter: '\\ea64' }); +Codicon.gitPullRequestAbandoned = new Codicon('git-pull-request-abandoned', { fontCharacter: '\\ea64' }); +Codicon.recordKeys = new Codicon('record-keys', { fontCharacter: '\\ea65' }); +Codicon.keyboard = new Codicon('keyboard', { fontCharacter: '\\ea65' }); +Codicon.tag = new Codicon('tag', { fontCharacter: '\\ea66' }); +Codicon.tagAdd = new Codicon('tag-add', { fontCharacter: '\\ea66' }); +Codicon.tagRemove = new Codicon('tag-remove', { fontCharacter: '\\ea66' }); +Codicon.person = new Codicon('person', { fontCharacter: '\\ea67' }); +Codicon.personFollow = new Codicon('person-follow', { fontCharacter: '\\ea67' }); +Codicon.personOutline = new Codicon('person-outline', { fontCharacter: '\\ea67' }); +Codicon.personFilled = new Codicon('person-filled', { fontCharacter: '\\ea67' }); +Codicon.gitBranch = new Codicon('git-branch', { fontCharacter: '\\ea68' }); +Codicon.gitBranchCreate = new Codicon('git-branch-create', { fontCharacter: '\\ea68' }); +Codicon.gitBranchDelete = new Codicon('git-branch-delete', { fontCharacter: '\\ea68' }); +Codicon.sourceControl = new Codicon('source-control', { fontCharacter: '\\ea68' }); +Codicon.mirror = new Codicon('mirror', { fontCharacter: '\\ea69' }); +Codicon.mirrorPublic = new Codicon('mirror-public', { fontCharacter: '\\ea69' }); +Codicon.star = new Codicon('star', { fontCharacter: '\\ea6a' }); +Codicon.starAdd = new Codicon('star-add', { fontCharacter: '\\ea6a' }); +Codicon.starDelete = new Codicon('star-delete', { fontCharacter: '\\ea6a' }); +Codicon.starEmpty = new Codicon('star-empty', { fontCharacter: '\\ea6a' }); +Codicon.comment = new Codicon('comment', { fontCharacter: '\\ea6b' }); +Codicon.commentAdd = new Codicon('comment-add', { fontCharacter: '\\ea6b' }); +Codicon.alert = new Codicon('alert', { fontCharacter: '\\ea6c' }); +Codicon.warning = new Codicon('warning', { fontCharacter: '\\ea6c' }); +Codicon.search = new Codicon('search', { fontCharacter: '\\ea6d' }); +Codicon.searchSave = new Codicon('search-save', { fontCharacter: '\\ea6d' }); +Codicon.logOut = new Codicon('log-out', { fontCharacter: '\\ea6e' }); +Codicon.signOut = new Codicon('sign-out', { fontCharacter: '\\ea6e' }); +Codicon.logIn = new Codicon('log-in', { fontCharacter: '\\ea6f' }); +Codicon.signIn = new Codicon('sign-in', { fontCharacter: '\\ea6f' }); +Codicon.eye = new Codicon('eye', { fontCharacter: '\\ea70' }); +Codicon.eyeUnwatch = new Codicon('eye-unwatch', { fontCharacter: '\\ea70' }); +Codicon.eyeWatch = new Codicon('eye-watch', { fontCharacter: '\\ea70' }); +Codicon.circleFilled = new Codicon('circle-filled', { fontCharacter: '\\ea71' }); +Codicon.primitiveDot = new Codicon('primitive-dot', { fontCharacter: '\\ea71' }); +Codicon.closeDirty = new Codicon('close-dirty', { fontCharacter: '\\ea71' }); +Codicon.debugBreakpoint = new Codicon('debug-breakpoint', { fontCharacter: '\\ea71' }); +Codicon.debugBreakpointDisabled = new Codicon('debug-breakpoint-disabled', { fontCharacter: '\\ea71' }); +Codicon.debugHint = new Codicon('debug-hint', { fontCharacter: '\\ea71' }); +Codicon.primitiveSquare = new Codicon('primitive-square', { fontCharacter: '\\ea72' }); +Codicon.edit = new Codicon('edit', { fontCharacter: '\\ea73' }); +Codicon.pencil = new Codicon('pencil', { fontCharacter: '\\ea73' }); +Codicon.info = new Codicon('info', { fontCharacter: '\\ea74' }); +Codicon.issueOpened = new Codicon('issue-opened', { fontCharacter: '\\ea74' }); +Codicon.gistPrivate = new Codicon('gist-private', { fontCharacter: '\\ea75' }); +Codicon.gitForkPrivate = new Codicon('git-fork-private', { fontCharacter: '\\ea75' }); +Codicon.lock = new Codicon('lock', { fontCharacter: '\\ea75' }); +Codicon.mirrorPrivate = new Codicon('mirror-private', { fontCharacter: '\\ea75' }); +Codicon.close = new Codicon('close', { fontCharacter: '\\ea76' }); +Codicon.removeClose = new Codicon('remove-close', { fontCharacter: '\\ea76' }); +Codicon.x = new Codicon('x', { fontCharacter: '\\ea76' }); +Codicon.repoSync = new Codicon('repo-sync', { fontCharacter: '\\ea77' }); +Codicon.sync = new Codicon('sync', { fontCharacter: '\\ea77' }); +Codicon.clone = new Codicon('clone', { fontCharacter: '\\ea78' }); +Codicon.desktopDownload = new Codicon('desktop-download', { fontCharacter: '\\ea78' }); +Codicon.beaker = new Codicon('beaker', { fontCharacter: '\\ea79' }); +Codicon.microscope = new Codicon('microscope', { fontCharacter: '\\ea79' }); +Codicon.vm = new Codicon('vm', { fontCharacter: '\\ea7a' }); +Codicon.deviceDesktop = new Codicon('device-desktop', { fontCharacter: '\\ea7a' }); +Codicon.file = new Codicon('file', { fontCharacter: '\\ea7b' }); +Codicon.fileText = new Codicon('file-text', { fontCharacter: '\\ea7b' }); +Codicon.more = new Codicon('more', { fontCharacter: '\\ea7c' }); +Codicon.ellipsis = new Codicon('ellipsis', { fontCharacter: '\\ea7c' }); +Codicon.kebabHorizontal = new Codicon('kebab-horizontal', { fontCharacter: '\\ea7c' }); +Codicon.mailReply = new Codicon('mail-reply', { fontCharacter: '\\ea7d' }); +Codicon.reply = new Codicon('reply', { fontCharacter: '\\ea7d' }); +Codicon.organization = new Codicon('organization', { fontCharacter: '\\ea7e' }); +Codicon.organizationFilled = new Codicon('organization-filled', { fontCharacter: '\\ea7e' }); +Codicon.organizationOutline = new Codicon('organization-outline', { fontCharacter: '\\ea7e' }); +Codicon.newFile = new Codicon('new-file', { fontCharacter: '\\ea7f' }); +Codicon.fileAdd = new Codicon('file-add', { fontCharacter: '\\ea7f' }); +Codicon.newFolder = new Codicon('new-folder', { fontCharacter: '\\ea80' }); +Codicon.fileDirectoryCreate = new Codicon('file-directory-create', { fontCharacter: '\\ea80' }); +Codicon.trash = new Codicon('trash', { fontCharacter: '\\ea81' }); +Codicon.trashcan = new Codicon('trashcan', { fontCharacter: '\\ea81' }); +Codicon.history = new Codicon('history', { fontCharacter: '\\ea82' }); +Codicon.clock = new Codicon('clock', { fontCharacter: '\\ea82' }); +Codicon.folder = new Codicon('folder', { fontCharacter: '\\ea83' }); +Codicon.fileDirectory = new Codicon('file-directory', { fontCharacter: '\\ea83' }); +Codicon.symbolFolder = new Codicon('symbol-folder', { fontCharacter: '\\ea83' }); +Codicon.logoGithub = new Codicon('logo-github', { fontCharacter: '\\ea84' }); +Codicon.markGithub = new Codicon('mark-github', { fontCharacter: '\\ea84' }); +Codicon.github = new Codicon('github', { fontCharacter: '\\ea84' }); +Codicon.terminal = new Codicon('terminal', { fontCharacter: '\\ea85' }); +Codicon.console = new Codicon('console', { fontCharacter: '\\ea85' }); +Codicon.repl = new Codicon('repl', { fontCharacter: '\\ea85' }); +Codicon.zap = new Codicon('zap', { fontCharacter: '\\ea86' }); +Codicon.symbolEvent = new Codicon('symbol-event', { fontCharacter: '\\ea86' }); +Codicon.error = new Codicon('error', { fontCharacter: '\\ea87' }); +Codicon.stop = new Codicon('stop', { fontCharacter: '\\ea87' }); +Codicon.variable = new Codicon('variable', { fontCharacter: '\\ea88' }); +Codicon.symbolVariable = new Codicon('symbol-variable', { fontCharacter: '\\ea88' }); +Codicon.array = new Codicon('array', { fontCharacter: '\\ea8a' }); +Codicon.symbolArray = new Codicon('symbol-array', { fontCharacter: '\\ea8a' }); +Codicon.symbolModule = new Codicon('symbol-module', { fontCharacter: '\\ea8b' }); +Codicon.symbolPackage = new Codicon('symbol-package', { fontCharacter: '\\ea8b' }); +Codicon.symbolNamespace = new Codicon('symbol-namespace', { fontCharacter: '\\ea8b' }); +Codicon.symbolObject = new Codicon('symbol-object', { fontCharacter: '\\ea8b' }); +Codicon.symbolMethod = new Codicon('symbol-method', { fontCharacter: '\\ea8c' }); +Codicon.symbolFunction = new Codicon('symbol-function', { fontCharacter: '\\ea8c' }); +Codicon.symbolConstructor = new Codicon('symbol-constructor', { fontCharacter: '\\ea8c' }); +Codicon.symbolBoolean = new Codicon('symbol-boolean', { fontCharacter: '\\ea8f' }); +Codicon.symbolNull = new Codicon('symbol-null', { fontCharacter: '\\ea8f' }); +Codicon.symbolNumeric = new Codicon('symbol-numeric', { fontCharacter: '\\ea90' }); +Codicon.symbolNumber = new Codicon('symbol-number', { fontCharacter: '\\ea90' }); +Codicon.symbolStructure = new Codicon('symbol-structure', { fontCharacter: '\\ea91' }); +Codicon.symbolStruct = new Codicon('symbol-struct', { fontCharacter: '\\ea91' }); +Codicon.symbolParameter = new Codicon('symbol-parameter', { fontCharacter: '\\ea92' }); +Codicon.symbolTypeParameter = new Codicon('symbol-type-parameter', { fontCharacter: '\\ea92' }); +Codicon.symbolKey = new Codicon('symbol-key', { fontCharacter: '\\ea93' }); +Codicon.symbolText = new Codicon('symbol-text', { fontCharacter: '\\ea93' }); +Codicon.symbolReference = new Codicon('symbol-reference', { fontCharacter: '\\ea94' }); +Codicon.goToFile = new Codicon('go-to-file', { fontCharacter: '\\ea94' }); +Codicon.symbolEnum = new Codicon('symbol-enum', { fontCharacter: '\\ea95' }); +Codicon.symbolValue = new Codicon('symbol-value', { fontCharacter: '\\ea95' }); +Codicon.symbolRuler = new Codicon('symbol-ruler', { fontCharacter: '\\ea96' }); +Codicon.symbolUnit = new Codicon('symbol-unit', { fontCharacter: '\\ea96' }); +Codicon.activateBreakpoints = new Codicon('activate-breakpoints', { fontCharacter: '\\ea97' }); +Codicon.archive = new Codicon('archive', { fontCharacter: '\\ea98' }); +Codicon.arrowBoth = new Codicon('arrow-both', { fontCharacter: '\\ea99' }); +Codicon.arrowDown = new Codicon('arrow-down', { fontCharacter: '\\ea9a' }); +Codicon.arrowLeft = new Codicon('arrow-left', { fontCharacter: '\\ea9b' }); +Codicon.arrowRight = new Codicon('arrow-right', { fontCharacter: '\\ea9c' }); +Codicon.arrowSmallDown = new Codicon('arrow-small-down', { fontCharacter: '\\ea9d' }); +Codicon.arrowSmallLeft = new Codicon('arrow-small-left', { fontCharacter: '\\ea9e' }); +Codicon.arrowSmallRight = new Codicon('arrow-small-right', { fontCharacter: '\\ea9f' }); +Codicon.arrowSmallUp = new Codicon('arrow-small-up', { fontCharacter: '\\eaa0' }); +Codicon.arrowUp = new Codicon('arrow-up', { fontCharacter: '\\eaa1' }); +Codicon.bell = new Codicon('bell', { fontCharacter: '\\eaa2' }); +Codicon.bold = new Codicon('bold', { fontCharacter: '\\eaa3' }); +Codicon.book = new Codicon('book', { fontCharacter: '\\eaa4' }); +Codicon.bookmark = new Codicon('bookmark', { fontCharacter: '\\eaa5' }); +Codicon.debugBreakpointConditionalUnverified = new Codicon('debug-breakpoint-conditional-unverified', { fontCharacter: '\\eaa6' }); +Codicon.debugBreakpointConditional = new Codicon('debug-breakpoint-conditional', { fontCharacter: '\\eaa7' }); +Codicon.debugBreakpointConditionalDisabled = new Codicon('debug-breakpoint-conditional-disabled', { fontCharacter: '\\eaa7' }); +Codicon.debugBreakpointDataUnverified = new Codicon('debug-breakpoint-data-unverified', { fontCharacter: '\\eaa8' }); +Codicon.debugBreakpointData = new Codicon('debug-breakpoint-data', { fontCharacter: '\\eaa9' }); +Codicon.debugBreakpointDataDisabled = new Codicon('debug-breakpoint-data-disabled', { fontCharacter: '\\eaa9' }); +Codicon.debugBreakpointLogUnverified = new Codicon('debug-breakpoint-log-unverified', { fontCharacter: '\\eaaa' }); +Codicon.debugBreakpointLog = new Codicon('debug-breakpoint-log', { fontCharacter: '\\eaab' }); +Codicon.debugBreakpointLogDisabled = new Codicon('debug-breakpoint-log-disabled', { fontCharacter: '\\eaab' }); +Codicon.briefcase = new Codicon('briefcase', { fontCharacter: '\\eaac' }); +Codicon.broadcast = new Codicon('broadcast', { fontCharacter: '\\eaad' }); +Codicon.browser = new Codicon('browser', { fontCharacter: '\\eaae' }); +Codicon.bug = new Codicon('bug', { fontCharacter: '\\eaaf' }); +Codicon.calendar = new Codicon('calendar', { fontCharacter: '\\eab0' }); +Codicon.caseSensitive = new Codicon('case-sensitive', { fontCharacter: '\\eab1' }); +Codicon.check = new Codicon('check', { fontCharacter: '\\eab2' }); +Codicon.checklist = new Codicon('checklist', { fontCharacter: '\\eab3' }); +Codicon.chevronDown = new Codicon('chevron-down', { fontCharacter: '\\eab4' }); +Codicon.dropDownButton = new Codicon('drop-down-button', Codicon.chevronDown.definition); +Codicon.chevronLeft = new Codicon('chevron-left', { fontCharacter: '\\eab5' }); +Codicon.chevronRight = new Codicon('chevron-right', { fontCharacter: '\\eab6' }); +Codicon.chevronUp = new Codicon('chevron-up', { fontCharacter: '\\eab7' }); +Codicon.chromeClose = new Codicon('chrome-close', { fontCharacter: '\\eab8' }); +Codicon.chromeMaximize = new Codicon('chrome-maximize', { fontCharacter: '\\eab9' }); +Codicon.chromeMinimize = new Codicon('chrome-minimize', { fontCharacter: '\\eaba' }); +Codicon.chromeRestore = new Codicon('chrome-restore', { fontCharacter: '\\eabb' }); +Codicon.circleOutline = new Codicon('circle-outline', { fontCharacter: '\\eabc' }); +Codicon.debugBreakpointUnverified = new Codicon('debug-breakpoint-unverified', { fontCharacter: '\\eabc' }); +Codicon.circleSlash = new Codicon('circle-slash', { fontCharacter: '\\eabd' }); +Codicon.circuitBoard = new Codicon('circuit-board', { fontCharacter: '\\eabe' }); +Codicon.clearAll = new Codicon('clear-all', { fontCharacter: '\\eabf' }); +Codicon.clippy = new Codicon('clippy', { fontCharacter: '\\eac0' }); +Codicon.closeAll = new Codicon('close-all', { fontCharacter: '\\eac1' }); +Codicon.cloudDownload = new Codicon('cloud-download', { fontCharacter: '\\eac2' }); +Codicon.cloudUpload = new Codicon('cloud-upload', { fontCharacter: '\\eac3' }); +Codicon.code = new Codicon('code', { fontCharacter: '\\eac4' }); +Codicon.collapseAll = new Codicon('collapse-all', { fontCharacter: '\\eac5' }); +Codicon.colorMode = new Codicon('color-mode', { fontCharacter: '\\eac6' }); +Codicon.commentDiscussion = new Codicon('comment-discussion', { fontCharacter: '\\eac7' }); +Codicon.compareChanges = new Codicon('compare-changes', { fontCharacter: '\\eafd' }); +Codicon.creditCard = new Codicon('credit-card', { fontCharacter: '\\eac9' }); +Codicon.dash = new Codicon('dash', { fontCharacter: '\\eacc' }); +Codicon.dashboard = new Codicon('dashboard', { fontCharacter: '\\eacd' }); +Codicon.database = new Codicon('database', { fontCharacter: '\\eace' }); +Codicon.debugContinue = new Codicon('debug-continue', { fontCharacter: '\\eacf' }); +Codicon.debugDisconnect = new Codicon('debug-disconnect', { fontCharacter: '\\ead0' }); +Codicon.debugPause = new Codicon('debug-pause', { fontCharacter: '\\ead1' }); +Codicon.debugRestart = new Codicon('debug-restart', { fontCharacter: '\\ead2' }); +Codicon.debugStart = new Codicon('debug-start', { fontCharacter: '\\ead3' }); +Codicon.debugStepInto = new Codicon('debug-step-into', { fontCharacter: '\\ead4' }); +Codicon.debugStepOut = new Codicon('debug-step-out', { fontCharacter: '\\ead5' }); +Codicon.debugStepOver = new Codicon('debug-step-over', { fontCharacter: '\\ead6' }); +Codicon.debugStop = new Codicon('debug-stop', { fontCharacter: '\\ead7' }); +Codicon.debug = new Codicon('debug', { fontCharacter: '\\ead8' }); +Codicon.deviceCameraVideo = new Codicon('device-camera-video', { fontCharacter: '\\ead9' }); +Codicon.deviceCamera = new Codicon('device-camera', { fontCharacter: '\\eada' }); +Codicon.deviceMobile = new Codicon('device-mobile', { fontCharacter: '\\eadb' }); +Codicon.diffAdded = new Codicon('diff-added', { fontCharacter: '\\eadc' }); +Codicon.diffIgnored = new Codicon('diff-ignored', { fontCharacter: '\\eadd' }); +Codicon.diffModified = new Codicon('diff-modified', { fontCharacter: '\\eade' }); +Codicon.diffRemoved = new Codicon('diff-removed', { fontCharacter: '\\eadf' }); +Codicon.diffRenamed = new Codicon('diff-renamed', { fontCharacter: '\\eae0' }); +Codicon.diff = new Codicon('diff', { fontCharacter: '\\eae1' }); +Codicon.discard = new Codicon('discard', { fontCharacter: '\\eae2' }); +Codicon.editorLayout = new Codicon('editor-layout', { fontCharacter: '\\eae3' }); +Codicon.emptyWindow = new Codicon('empty-window', { fontCharacter: '\\eae4' }); +Codicon.exclude = new Codicon('exclude', { fontCharacter: '\\eae5' }); +Codicon.extensions = new Codicon('extensions', { fontCharacter: '\\eae6' }); +Codicon.eyeClosed = new Codicon('eye-closed', { fontCharacter: '\\eae7' }); +Codicon.fileBinary = new Codicon('file-binary', { fontCharacter: '\\eae8' }); +Codicon.fileCode = new Codicon('file-code', { fontCharacter: '\\eae9' }); +Codicon.fileMedia = new Codicon('file-media', { fontCharacter: '\\eaea' }); +Codicon.filePdf = new Codicon('file-pdf', { fontCharacter: '\\eaeb' }); +Codicon.fileSubmodule = new Codicon('file-submodule', { fontCharacter: '\\eaec' }); +Codicon.fileSymlinkDirectory = new Codicon('file-symlink-directory', { fontCharacter: '\\eaed' }); +Codicon.fileSymlinkFile = new Codicon('file-symlink-file', { fontCharacter: '\\eaee' }); +Codicon.fileZip = new Codicon('file-zip', { fontCharacter: '\\eaef' }); +Codicon.files = new Codicon('files', { fontCharacter: '\\eaf0' }); +Codicon.filter = new Codicon('filter', { fontCharacter: '\\eaf1' }); +Codicon.flame = new Codicon('flame', { fontCharacter: '\\eaf2' }); +Codicon.foldDown = new Codicon('fold-down', { fontCharacter: '\\eaf3' }); +Codicon.foldUp = new Codicon('fold-up', { fontCharacter: '\\eaf4' }); +Codicon.fold = new Codicon('fold', { fontCharacter: '\\eaf5' }); +Codicon.folderActive = new Codicon('folder-active', { fontCharacter: '\\eaf6' }); +Codicon.folderOpened = new Codicon('folder-opened', { fontCharacter: '\\eaf7' }); +Codicon.gear = new Codicon('gear', { fontCharacter: '\\eaf8' }); +Codicon.gift = new Codicon('gift', { fontCharacter: '\\eaf9' }); +Codicon.gistSecret = new Codicon('gist-secret', { fontCharacter: '\\eafa' }); +Codicon.gist = new Codicon('gist', { fontCharacter: '\\eafb' }); +Codicon.gitCommit = new Codicon('git-commit', { fontCharacter: '\\eafc' }); +Codicon.gitCompare = new Codicon('git-compare', { fontCharacter: '\\eafd' }); +Codicon.gitMerge = new Codicon('git-merge', { fontCharacter: '\\eafe' }); +Codicon.githubAction = new Codicon('github-action', { fontCharacter: '\\eaff' }); +Codicon.githubAlt = new Codicon('github-alt', { fontCharacter: '\\eb00' }); +Codicon.globe = new Codicon('globe', { fontCharacter: '\\eb01' }); +Codicon.grabber = new Codicon('grabber', { fontCharacter: '\\eb02' }); +Codicon.graph = new Codicon('graph', { fontCharacter: '\\eb03' }); +Codicon.gripper = new Codicon('gripper', { fontCharacter: '\\eb04' }); +Codicon.heart = new Codicon('heart', { fontCharacter: '\\eb05' }); +Codicon.home = new Codicon('home', { fontCharacter: '\\eb06' }); +Codicon.horizontalRule = new Codicon('horizontal-rule', { fontCharacter: '\\eb07' }); +Codicon.hubot = new Codicon('hubot', { fontCharacter: '\\eb08' }); +Codicon.inbox = new Codicon('inbox', { fontCharacter: '\\eb09' }); +Codicon.issueClosed = new Codicon('issue-closed', { fontCharacter: '\\eba4' }); +Codicon.issueReopened = new Codicon('issue-reopened', { fontCharacter: '\\eb0b' }); +Codicon.issues = new Codicon('issues', { fontCharacter: '\\eb0c' }); +Codicon.italic = new Codicon('italic', { fontCharacter: '\\eb0d' }); +Codicon.jersey = new Codicon('jersey', { fontCharacter: '\\eb0e' }); +Codicon.json = new Codicon('json', { fontCharacter: '\\eb0f' }); +Codicon.kebabVertical = new Codicon('kebab-vertical', { fontCharacter: '\\eb10' }); +Codicon.key = new Codicon('key', { fontCharacter: '\\eb11' }); +Codicon.law = new Codicon('law', { fontCharacter: '\\eb12' }); +Codicon.lightbulbAutofix = new Codicon('lightbulb-autofix', { fontCharacter: '\\eb13' }); +Codicon.linkExternal = new Codicon('link-external', { fontCharacter: '\\eb14' }); +Codicon.link = new Codicon('link', { fontCharacter: '\\eb15' }); +Codicon.listOrdered = new Codicon('list-ordered', { fontCharacter: '\\eb16' }); +Codicon.listUnordered = new Codicon('list-unordered', { fontCharacter: '\\eb17' }); +Codicon.liveShare = new Codicon('live-share', { fontCharacter: '\\eb18' }); +Codicon.loading = new Codicon('loading', { fontCharacter: '\\eb19' }); +Codicon.location = new Codicon('location', { fontCharacter: '\\eb1a' }); +Codicon.mailRead = new Codicon('mail-read', { fontCharacter: '\\eb1b' }); +Codicon.mail = new Codicon('mail', { fontCharacter: '\\eb1c' }); +Codicon.markdown = new Codicon('markdown', { fontCharacter: '\\eb1d' }); +Codicon.megaphone = new Codicon('megaphone', { fontCharacter: '\\eb1e' }); +Codicon.mention = new Codicon('mention', { fontCharacter: '\\eb1f' }); +Codicon.milestone = new Codicon('milestone', { fontCharacter: '\\eb20' }); +Codicon.mortarBoard = new Codicon('mortar-board', { fontCharacter: '\\eb21' }); +Codicon.move = new Codicon('move', { fontCharacter: '\\eb22' }); +Codicon.multipleWindows = new Codicon('multiple-windows', { fontCharacter: '\\eb23' }); +Codicon.mute = new Codicon('mute', { fontCharacter: '\\eb24' }); +Codicon.noNewline = new Codicon('no-newline', { fontCharacter: '\\eb25' }); +Codicon.note = new Codicon('note', { fontCharacter: '\\eb26' }); +Codicon.octoface = new Codicon('octoface', { fontCharacter: '\\eb27' }); +Codicon.openPreview = new Codicon('open-preview', { fontCharacter: '\\eb28' }); +Codicon.package_ = new Codicon('package', { fontCharacter: '\\eb29' }); +Codicon.paintcan = new Codicon('paintcan', { fontCharacter: '\\eb2a' }); +Codicon.pin = new Codicon('pin', { fontCharacter: '\\eb2b' }); +Codicon.play = new Codicon('play', { fontCharacter: '\\eb2c' }); +Codicon.run = new Codicon('run', { fontCharacter: '\\eb2c' }); +Codicon.plug = new Codicon('plug', { fontCharacter: '\\eb2d' }); +Codicon.preserveCase = new Codicon('preserve-case', { fontCharacter: '\\eb2e' }); +Codicon.preview = new Codicon('preview', { fontCharacter: '\\eb2f' }); +Codicon.project = new Codicon('project', { fontCharacter: '\\eb30' }); +Codicon.pulse = new Codicon('pulse', { fontCharacter: '\\eb31' }); +Codicon.question = new Codicon('question', { fontCharacter: '\\eb32' }); +Codicon.quote = new Codicon('quote', { fontCharacter: '\\eb33' }); +Codicon.radioTower = new Codicon('radio-tower', { fontCharacter: '\\eb34' }); +Codicon.reactions = new Codicon('reactions', { fontCharacter: '\\eb35' }); +Codicon.references = new Codicon('references', { fontCharacter: '\\eb36' }); +Codicon.refresh = new Codicon('refresh', { fontCharacter: '\\eb37' }); +Codicon.regex = new Codicon('regex', { fontCharacter: '\\eb38' }); +Codicon.remoteExplorer = new Codicon('remote-explorer', { fontCharacter: '\\eb39' }); +Codicon.remote = new Codicon('remote', { fontCharacter: '\\eb3a' }); +Codicon.remove = new Codicon('remove', { fontCharacter: '\\eb3b' }); +Codicon.replaceAll = new Codicon('replace-all', { fontCharacter: '\\eb3c' }); +Codicon.replace = new Codicon('replace', { fontCharacter: '\\eb3d' }); +Codicon.repoClone = new Codicon('repo-clone', { fontCharacter: '\\eb3e' }); +Codicon.repoForcePush = new Codicon('repo-force-push', { fontCharacter: '\\eb3f' }); +Codicon.repoPull = new Codicon('repo-pull', { fontCharacter: '\\eb40' }); +Codicon.repoPush = new Codicon('repo-push', { fontCharacter: '\\eb41' }); +Codicon.report = new Codicon('report', { fontCharacter: '\\eb42' }); +Codicon.requestChanges = new Codicon('request-changes', { fontCharacter: '\\eb43' }); +Codicon.rocket = new Codicon('rocket', { fontCharacter: '\\eb44' }); +Codicon.rootFolderOpened = new Codicon('root-folder-opened', { fontCharacter: '\\eb45' }); +Codicon.rootFolder = new Codicon('root-folder', { fontCharacter: '\\eb46' }); +Codicon.rss = new Codicon('rss', { fontCharacter: '\\eb47' }); +Codicon.ruby = new Codicon('ruby', { fontCharacter: '\\eb48' }); +Codicon.saveAll = new Codicon('save-all', { fontCharacter: '\\eb49' }); +Codicon.saveAs = new Codicon('save-as', { fontCharacter: '\\eb4a' }); +Codicon.save = new Codicon('save', { fontCharacter: '\\eb4b' }); +Codicon.screenFull = new Codicon('screen-full', { fontCharacter: '\\eb4c' }); +Codicon.screenNormal = new Codicon('screen-normal', { fontCharacter: '\\eb4d' }); +Codicon.searchStop = new Codicon('search-stop', { fontCharacter: '\\eb4e' }); +Codicon.server = new Codicon('server', { fontCharacter: '\\eb50' }); +Codicon.settingsGear = new Codicon('settings-gear', { fontCharacter: '\\eb51' }); +Codicon.settings = new Codicon('settings', { fontCharacter: '\\eb52' }); +Codicon.shield = new Codicon('shield', { fontCharacter: '\\eb53' }); +Codicon.smiley = new Codicon('smiley', { fontCharacter: '\\eb54' }); +Codicon.sortPrecedence = new Codicon('sort-precedence', { fontCharacter: '\\eb55' }); +Codicon.splitHorizontal = new Codicon('split-horizontal', { fontCharacter: '\\eb56' }); +Codicon.splitVertical = new Codicon('split-vertical', { fontCharacter: '\\eb57' }); +Codicon.squirrel = new Codicon('squirrel', { fontCharacter: '\\eb58' }); +Codicon.starFull = new Codicon('star-full', { fontCharacter: '\\eb59' }); +Codicon.starHalf = new Codicon('star-half', { fontCharacter: '\\eb5a' }); +Codicon.symbolClass = new Codicon('symbol-class', { fontCharacter: '\\eb5b' }); +Codicon.symbolColor = new Codicon('symbol-color', { fontCharacter: '\\eb5c' }); +Codicon.symbolCustomColor = new Codicon('symbol-customcolor', { fontCharacter: '\\eb5c' }); +Codicon.symbolConstant = new Codicon('symbol-constant', { fontCharacter: '\\eb5d' }); +Codicon.symbolEnumMember = new Codicon('symbol-enum-member', { fontCharacter: '\\eb5e' }); +Codicon.symbolField = new Codicon('symbol-field', { fontCharacter: '\\eb5f' }); +Codicon.symbolFile = new Codicon('symbol-file', { fontCharacter: '\\eb60' }); +Codicon.symbolInterface = new Codicon('symbol-interface', { fontCharacter: '\\eb61' }); +Codicon.symbolKeyword = new Codicon('symbol-keyword', { fontCharacter: '\\eb62' }); +Codicon.symbolMisc = new Codicon('symbol-misc', { fontCharacter: '\\eb63' }); +Codicon.symbolOperator = new Codicon('symbol-operator', { fontCharacter: '\\eb64' }); +Codicon.symbolProperty = new Codicon('symbol-property', { fontCharacter: '\\eb65' }); +Codicon.wrench = new Codicon('wrench', { fontCharacter: '\\eb65' }); +Codicon.wrenchSubaction = new Codicon('wrench-subaction', { fontCharacter: '\\eb65' }); +Codicon.symbolSnippet = new Codicon('symbol-snippet', { fontCharacter: '\\eb66' }); +Codicon.tasklist = new Codicon('tasklist', { fontCharacter: '\\eb67' }); +Codicon.telescope = new Codicon('telescope', { fontCharacter: '\\eb68' }); +Codicon.textSize = new Codicon('text-size', { fontCharacter: '\\eb69' }); +Codicon.threeBars = new Codicon('three-bars', { fontCharacter: '\\eb6a' }); +Codicon.thumbsdown = new Codicon('thumbsdown', { fontCharacter: '\\eb6b' }); +Codicon.thumbsup = new Codicon('thumbsup', { fontCharacter: '\\eb6c' }); +Codicon.tools = new Codicon('tools', { fontCharacter: '\\eb6d' }); +Codicon.triangleDown = new Codicon('triangle-down', { fontCharacter: '\\eb6e' }); +Codicon.triangleLeft = new Codicon('triangle-left', { fontCharacter: '\\eb6f' }); +Codicon.triangleRight = new Codicon('triangle-right', { fontCharacter: '\\eb70' }); +Codicon.triangleUp = new Codicon('triangle-up', { fontCharacter: '\\eb71' }); +Codicon.twitter = new Codicon('twitter', { fontCharacter: '\\eb72' }); +Codicon.unfold = new Codicon('unfold', { fontCharacter: '\\eb73' }); +Codicon.unlock = new Codicon('unlock', { fontCharacter: '\\eb74' }); +Codicon.unmute = new Codicon('unmute', { fontCharacter: '\\eb75' }); +Codicon.unverified = new Codicon('unverified', { fontCharacter: '\\eb76' }); +Codicon.verified = new Codicon('verified', { fontCharacter: '\\eb77' }); +Codicon.versions = new Codicon('versions', { fontCharacter: '\\eb78' }); +Codicon.vmActive = new Codicon('vm-active', { fontCharacter: '\\eb79' }); +Codicon.vmOutline = new Codicon('vm-outline', { fontCharacter: '\\eb7a' }); +Codicon.vmRunning = new Codicon('vm-running', { fontCharacter: '\\eb7b' }); +Codicon.watch = new Codicon('watch', { fontCharacter: '\\eb7c' }); +Codicon.whitespace = new Codicon('whitespace', { fontCharacter: '\\eb7d' }); +Codicon.wholeWord = new Codicon('whole-word', { fontCharacter: '\\eb7e' }); +Codicon.window = new Codicon('window', { fontCharacter: '\\eb7f' }); +Codicon.wordWrap = new Codicon('word-wrap', { fontCharacter: '\\eb80' }); +Codicon.zoomIn = new Codicon('zoom-in', { fontCharacter: '\\eb81' }); +Codicon.zoomOut = new Codicon('zoom-out', { fontCharacter: '\\eb82' }); +Codicon.listFilter = new Codicon('list-filter', { fontCharacter: '\\eb83' }); +Codicon.listFlat = new Codicon('list-flat', { fontCharacter: '\\eb84' }); +Codicon.listSelection = new Codicon('list-selection', { fontCharacter: '\\eb85' }); +Codicon.selection = new Codicon('selection', { fontCharacter: '\\eb85' }); +Codicon.listTree = new Codicon('list-tree', { fontCharacter: '\\eb86' }); +Codicon.debugBreakpointFunctionUnverified = new Codicon('debug-breakpoint-function-unverified', { fontCharacter: '\\eb87' }); +Codicon.debugBreakpointFunction = new Codicon('debug-breakpoint-function', { fontCharacter: '\\eb88' }); +Codicon.debugBreakpointFunctionDisabled = new Codicon('debug-breakpoint-function-disabled', { fontCharacter: '\\eb88' }); +Codicon.debugStackframeActive = new Codicon('debug-stackframe-active', { fontCharacter: '\\eb89' }); +Codicon.circleSmallFilled = new Codicon('circle-small-filled', { fontCharacter: '\\eb8a' }); +Codicon.debugStackframeDot = new Codicon('debug-stackframe-dot', Codicon.circleSmallFilled.definition); +Codicon.debugStackframe = new Codicon('debug-stackframe', { fontCharacter: '\\eb8b' }); +Codicon.debugStackframeFocused = new Codicon('debug-stackframe-focused', { fontCharacter: '\\eb8b' }); +Codicon.debugBreakpointUnsupported = new Codicon('debug-breakpoint-unsupported', { fontCharacter: '\\eb8c' }); +Codicon.symbolString = new Codicon('symbol-string', { fontCharacter: '\\eb8d' }); +Codicon.debugReverseContinue = new Codicon('debug-reverse-continue', { fontCharacter: '\\eb8e' }); +Codicon.debugStepBack = new Codicon('debug-step-back', { fontCharacter: '\\eb8f' }); +Codicon.debugRestartFrame = new Codicon('debug-restart-frame', { fontCharacter: '\\eb90' }); +Codicon.callIncoming = new Codicon('call-incoming', { fontCharacter: '\\eb92' }); +Codicon.callOutgoing = new Codicon('call-outgoing', { fontCharacter: '\\eb93' }); +Codicon.menu = new Codicon('menu', { fontCharacter: '\\eb94' }); +Codicon.expandAll = new Codicon('expand-all', { fontCharacter: '\\eb95' }); +Codicon.feedback = new Codicon('feedback', { fontCharacter: '\\eb96' }); +Codicon.groupByRefType = new Codicon('group-by-ref-type', { fontCharacter: '\\eb97' }); +Codicon.ungroupByRefType = new Codicon('ungroup-by-ref-type', { fontCharacter: '\\eb98' }); +Codicon.account = new Codicon('account', { fontCharacter: '\\eb99' }); +Codicon.bellDot = new Codicon('bell-dot', { fontCharacter: '\\eb9a' }); +Codicon.debugConsole = new Codicon('debug-console', { fontCharacter: '\\eb9b' }); +Codicon.library = new Codicon('library', { fontCharacter: '\\eb9c' }); +Codicon.output = new Codicon('output', { fontCharacter: '\\eb9d' }); +Codicon.runAll = new Codicon('run-all', { fontCharacter: '\\eb9e' }); +Codicon.syncIgnored = new Codicon('sync-ignored', { fontCharacter: '\\eb9f' }); +Codicon.pinned = new Codicon('pinned', { fontCharacter: '\\eba0' }); +Codicon.githubInverted = new Codicon('github-inverted', { fontCharacter: '\\eba1' }); +Codicon.debugAlt = new Codicon('debug-alt', { fontCharacter: '\\eb91' }); +Codicon.serverProcess = new Codicon('server-process', { fontCharacter: '\\eba2' }); +Codicon.serverEnvironment = new Codicon('server-environment', { fontCharacter: '\\eba3' }); +Codicon.pass = new Codicon('pass', { fontCharacter: '\\eba4' }); +Codicon.stopCircle = new Codicon('stop-circle', { fontCharacter: '\\eba5' }); +Codicon.playCircle = new Codicon('play-circle', { fontCharacter: '\\eba6' }); +Codicon.record = new Codicon('record', { fontCharacter: '\\eba7' }); +Codicon.debugAltSmall = new Codicon('debug-alt-small', { fontCharacter: '\\eba8' }); +Codicon.vmConnect = new Codicon('vm-connect', { fontCharacter: '\\eba9' }); +Codicon.cloud = new Codicon('cloud', { fontCharacter: '\\ebaa' }); +Codicon.merge = new Codicon('merge', { fontCharacter: '\\ebab' }); +Codicon.exportIcon = new Codicon('export', { fontCharacter: '\\ebac' }); +Codicon.graphLeft = new Codicon('graph-left', { fontCharacter: '\\ebad' }); +Codicon.magnet = new Codicon('magnet', { fontCharacter: '\\ebae' }); +Codicon.notebook = new Codicon('notebook', { fontCharacter: '\\ebaf' }); +Codicon.redo = new Codicon('redo', { fontCharacter: '\\ebb0' }); +Codicon.checkAll = new Codicon('check-all', { fontCharacter: '\\ebb1' }); +Codicon.pinnedDirty = new Codicon('pinned-dirty', { fontCharacter: '\\ebb2' }); +Codicon.passFilled = new Codicon('pass-filled', { fontCharacter: '\\ebb3' }); +Codicon.circleLargeFilled = new Codicon('circle-large-filled', { fontCharacter: '\\ebb4' }); +Codicon.circleLargeOutline = new Codicon('circle-large-outline', { fontCharacter: '\\ebb5' }); +Codicon.combine = new Codicon('combine', { fontCharacter: '\\ebb6' }); +Codicon.gather = new Codicon('gather', { fontCharacter: '\\ebb6' }); +Codicon.table = new Codicon('table', { fontCharacter: '\\ebb7' }); +Codicon.variableGroup = new Codicon('variable-group', { fontCharacter: '\\ebb8' }); +Codicon.typeHierarchy = new Codicon('type-hierarchy', { fontCharacter: '\\ebb9' }); +Codicon.typeHierarchySub = new Codicon('type-hierarchy-sub', { fontCharacter: '\\ebba' }); +Codicon.typeHierarchySuper = new Codicon('type-hierarchy-super', { fontCharacter: '\\ebbb' }); +Codicon.gitPullRequestCreate = new Codicon('git-pull-request-create', { fontCharacter: '\\ebbc' }); +Codicon.runAbove = new Codicon('run-above', { fontCharacter: '\\ebbd' }); +Codicon.runBelow = new Codicon('run-below', { fontCharacter: '\\ebbe' }); +Codicon.notebookTemplate = new Codicon('notebook-template', { fontCharacter: '\\ebbf' }); +Codicon.debugRerun = new Codicon('debug-rerun', { fontCharacter: '\\ebc0' }); +Codicon.workspaceTrusted = new Codicon('workspace-trusted', { fontCharacter: '\\ebc1' }); +Codicon.workspaceUntrusted = new Codicon('workspace-untrusted', { fontCharacter: '\\ebc2' }); +Codicon.workspaceUnspecified = new Codicon('workspace-unspecified', { fontCharacter: '\\ebc3' }); +Codicon.terminalCmd = new Codicon('terminal-cmd', { fontCharacter: '\\ebc4' }); +Codicon.terminalDebian = new Codicon('terminal-debian', { fontCharacter: '\\ebc5' }); +Codicon.terminalLinux = new Codicon('terminal-linux', { fontCharacter: '\\ebc6' }); +Codicon.terminalPowershell = new Codicon('terminal-powershell', { fontCharacter: '\\ebc7' }); +Codicon.terminalTmux = new Codicon('terminal-tmux', { fontCharacter: '\\ebc8' }); +Codicon.terminalUbuntu = new Codicon('terminal-ubuntu', { fontCharacter: '\\ebc9' }); +Codicon.terminalBash = new Codicon('terminal-bash', { fontCharacter: '\\ebca' }); +Codicon.arrowSwap = new Codicon('arrow-swap', { fontCharacter: '\\ebcb' }); +Codicon.copy = new Codicon('copy', { fontCharacter: '\\ebcc' }); +Codicon.personAdd = new Codicon('person-add', { fontCharacter: '\\ebcd' }); +Codicon.filterFilled = new Codicon('filter-filled', { fontCharacter: '\\ebce' }); +Codicon.wand = new Codicon('wand', { fontCharacter: '\\ebcf' }); +Codicon.debugLineByLine = new Codicon('debug-line-by-line', { fontCharacter: '\\ebd0' }); +Codicon.inspect = new Codicon('inspect', { fontCharacter: '\\ebd1' }); +Codicon.layers = new Codicon('layers', { fontCharacter: '\\ebd2' }); +Codicon.layersDot = new Codicon('layers-dot', { fontCharacter: '\\ebd3' }); +Codicon.layersActive = new Codicon('layers-active', { fontCharacter: '\\ebd4' }); +Codicon.compass = new Codicon('compass', { fontCharacter: '\\ebd5' }); +Codicon.compassDot = new Codicon('compass-dot', { fontCharacter: '\\ebd6' }); +Codicon.compassActive = new Codicon('compass-active', { fontCharacter: '\\ebd7' }); +Codicon.azure = new Codicon('azure', { fontCharacter: '\\ebd8' }); +Codicon.issueDraft = new Codicon('issue-draft', { fontCharacter: '\\ebd9' }); +Codicon.gitPullRequestClosed = new Codicon('git-pull-request-closed', { fontCharacter: '\\ebda' }); +Codicon.gitPullRequestDraft = new Codicon('git-pull-request-draft', { fontCharacter: '\\ebdb' }); +Codicon.debugAll = new Codicon('debug-all', { fontCharacter: '\\ebdc' }); +Codicon.debugCoverage = new Codicon('debug-coverage', { fontCharacter: '\\ebdd' }); +Codicon.runErrors = new Codicon('run-errors', { fontCharacter: '\\ebde' }); +Codicon.folderLibrary = new Codicon('folder-library', { fontCharacter: '\\ebdf' }); +Codicon.debugContinueSmall = new Codicon('debug-continue-small', { fontCharacter: '\\ebe0' }); +Codicon.beakerStop = new Codicon('beaker-stop', { fontCharacter: '\\ebe1' }); +Codicon.graphLine = new Codicon('graph-line', { fontCharacter: '\\ebe2' }); +Codicon.graphScatter = new Codicon('graph-scatter', { fontCharacter: '\\ebe3' }); +Codicon.pieChart = new Codicon('pie-chart', { fontCharacter: '\\ebe4' }); +Codicon.bracket = new Codicon('bracket', Codicon.json.definition); +Codicon.bracketDot = new Codicon('bracket-dot', { fontCharacter: '\\ebe5' }); +Codicon.bracketError = new Codicon('bracket-error', { fontCharacter: '\\ebe6' }); +Codicon.lockSmall = new Codicon('lock-small', { fontCharacter: '\\ebe7' }); +Codicon.azureDevops = new Codicon('azure-devops', { fontCharacter: '\\ebe8' }); +Codicon.verifiedFilled = new Codicon('verified-filled', { fontCharacter: '\\ebe9' }); +Codicon.newLine = new Codicon('newline', { fontCharacter: '\\ebea' }); +Codicon.layout = new Codicon('layout', { fontCharacter: '\\ebeb' }); +Codicon.layoutActivitybarLeft = new Codicon('layout-activitybar-left', { fontCharacter: '\\ebec' }); +Codicon.layoutActivitybarRight = new Codicon('layout-activitybar-right', { fontCharacter: '\\ebed' }); +Codicon.layoutPanelLeft = new Codicon('layout-panel-left', { fontCharacter: '\\ebee' }); +Codicon.layoutPanelCenter = new Codicon('layout-panel-center', { fontCharacter: '\\ebef' }); +Codicon.layoutPanelJustify = new Codicon('layout-panel-justify', { fontCharacter: '\\ebf0' }); +Codicon.layoutPanelRight = new Codicon('layout-panel-right', { fontCharacter: '\\ebf1' }); +Codicon.layoutPanel = new Codicon('layout-panel', { fontCharacter: '\\ebf2' }); +Codicon.layoutSidebarLeft = new Codicon('layout-sidebar-left', { fontCharacter: '\\ebf3' }); +Codicon.layoutSidebarRight = new Codicon('layout-sidebar-right', { fontCharacter: '\\ebf4' }); +Codicon.layoutStatusbar = new Codicon('layout-statusbar', { fontCharacter: '\\ebf5' }); +Codicon.layoutMenubar = new Codicon('layout-menubar', { fontCharacter: '\\ebf6' }); +Codicon.layoutCentered = new Codicon('layout-centered', { fontCharacter: '\\ebf7' }); +Codicon.layoutSidebarRightOff = new Codicon('layout-sidebar-right-off', { fontCharacter: '\\ec00' }); +Codicon.layoutPanelOff = new Codicon('layout-panel-off', { fontCharacter: '\\ec01' }); +Codicon.layoutSidebarLeftOff = new Codicon('layout-sidebar-left-off', { fontCharacter: '\\ec02' }); +Codicon.target = new Codicon('target', { fontCharacter: '\\ebf8' }); +Codicon.indent = new Codicon('indent', { fontCharacter: '\\ebf9' }); +Codicon.recordSmall = new Codicon('record-small', { fontCharacter: '\\ebfa' }); +Codicon.errorSmall = new Codicon('error-small', { fontCharacter: '\\ebfb' }); +Codicon.arrowCircleDown = new Codicon('arrow-circle-down', { fontCharacter: '\\ebfc' }); +Codicon.arrowCircleLeft = new Codicon('arrow-circle-left', { fontCharacter: '\\ebfd' }); +Codicon.arrowCircleRight = new Codicon('arrow-circle-right', { fontCharacter: '\\ebfe' }); +Codicon.arrowCircleUp = new Codicon('arrow-circle-up', { fontCharacter: '\\ebff' }); +Codicon.heartFilled = new Codicon('heart-filled', { fontCharacter: '\\ec04' }); +Codicon.map = new Codicon('map', { fontCharacter: '\\ec05' }); +Codicon.mapFilled = new Codicon('map-filled', { fontCharacter: '\\ec06' }); +Codicon.circleSmall = new Codicon('circle-small', { fontCharacter: '\\ec07' }); +Codicon.bellSlash = new Codicon('bell-slash', { fontCharacter: '\\ec08' }); +Codicon.bellSlashDot = new Codicon('bell-slash-dot', { fontCharacter: '\\ec09' }); +Codicon.commentUnresolved = new Codicon('comment-unresolved', { fontCharacter: '\\ec0a' }); +Codicon.gitPullRequestGoToChanges = new Codicon('git-pull-request-go-to-changes', { fontCharacter: '\\ec0b' }); +Codicon.gitPullRequestNewChanges = new Codicon('git-pull-request-new-changes', { fontCharacter: '\\ec0c' }); +// derived icons, that could become separate icons +Codicon.dialogError = new Codicon('dialog-error', Codicon.error.definition); +Codicon.dialogWarning = new Codicon('dialog-warning', Codicon.warning.definition); +Codicon.dialogInfo = new Codicon('dialog-info', Codicon.info.definition); +Codicon.dialogClose = new Codicon('dialog-close', Codicon.close.definition); +Codicon.treeItemExpanded = new Codicon('tree-item-expanded', Codicon.chevronDown.definition); // collapsed is done with rotation +Codicon.treeFilterOnTypeOn = new Codicon('tree-filter-on-type-on', Codicon.listFilter.definition); +Codicon.treeFilterOnTypeOff = new Codicon('tree-filter-on-type-off', Codicon.listSelection.definition); +Codicon.treeFilterClear = new Codicon('tree-filter-clear', Codicon.close.definition); +Codicon.treeItemLoading = new Codicon('tree-item-loading', Codicon.loading.definition); +Codicon.menuSelection = new Codicon('menu-selection', Codicon.check.definition); +Codicon.menuSubmenu = new Codicon('menu-submenu', Codicon.chevronRight.definition); +Codicon.menuBarMore = new Codicon('menubar-more', Codicon.more.definition); +Codicon.scrollbarButtonLeft = new Codicon('scrollbar-button-left', Codicon.triangleLeft.definition); +Codicon.scrollbarButtonRight = new Codicon('scrollbar-button-right', Codicon.triangleRight.definition); +Codicon.scrollbarButtonUp = new Codicon('scrollbar-button-up', Codicon.triangleUp.definition); +Codicon.scrollbarButtonDown = new Codicon('scrollbar-button-down', Codicon.triangleDown.definition); +Codicon.toolBarMore = new Codicon('toolbar-more', Codicon.more.definition); +Codicon.quickInputBack = new Codicon('quick-input-back', Codicon.arrowLeft.definition); +var CSSIcon; +(function (CSSIcon) { + CSSIcon.iconNameSegment = '[A-Za-z0-9]+'; + CSSIcon.iconNameExpression = '[A-Za-z0-9-]+'; + CSSIcon.iconModifierExpression = '~[A-Za-z]+'; + CSSIcon.iconNameCharacter = '[A-Za-z0-9~-]'; + const cssIconIdRegex = new RegExp(`^(${CSSIcon.iconNameExpression})(${CSSIcon.iconModifierExpression})?$`); + function asClassNameArray(icon) { + if (icon instanceof Codicon) { + return ['codicon', 'codicon-' + icon.id]; + } + const match = cssIconIdRegex.exec(icon.id); + if (!match) { + return asClassNameArray(Codicon.error); + } + const [, id, modifier] = match; + const classNames = ['codicon', 'codicon-' + id]; + if (modifier) { + classNames.push('codicon-modifier-' + modifier.substr(1)); + } + return classNames; + } + CSSIcon.asClassNameArray = asClassNameArray; + function asClassName(icon) { + return asClassNameArray(icon).join(' '); + } + CSSIcon.asClassName = asClassName; + function asCSSSelector(icon) { + return '.' + asClassNameArray(icon).join('.'); + } + CSSIcon.asCSSSelector = asCSSSelector; +})(CSSIcon || (CSSIcon = {})); + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/tokenizationRegistry.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +var tokenizationRegistry_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + +class TokenizationRegistry { + constructor() { + this._map = new Map(); + this._factories = new Map(); + this._onDidChange = new Emitter(); + this.onDidChange = this._onDidChange.event; + this._colorMap = null; + } + fire(languages) { + this._onDidChange.fire({ + changedLanguages: languages, + changedColorMap: false + }); + } + register(language, support) { + this._map.set(language, support); + this.fire([language]); + return toDisposable(() => { + if (this._map.get(language) !== support) { + return; + } + this._map.delete(language); + this.fire([language]); + }); + } + registerFactory(languageId, factory) { + var _a; + (_a = this._factories.get(languageId)) === null || _a === void 0 ? void 0 : _a.dispose(); + const myData = new TokenizationSupportFactoryData(this, languageId, factory); + this._factories.set(languageId, myData); + return toDisposable(() => { + const v = this._factories.get(languageId); + if (!v || v !== myData) { + return; + } + this._factories.delete(languageId); + v.dispose(); + }); + } + getOrCreate(languageId) { + return tokenizationRegistry_awaiter(this, void 0, void 0, function* () { + // check first if the support is already set + const tokenizationSupport = this.get(languageId); + if (tokenizationSupport) { + return tokenizationSupport; + } + const factory = this._factories.get(languageId); + if (!factory || factory.isResolved) { + // no factory or factory.resolve already finished + return null; + } + yield factory.resolve(); + return this.get(languageId); + }); + } + get(language) { + return (this._map.get(language) || null); + } + isResolved(languageId) { + const tokenizationSupport = this.get(languageId); + if (tokenizationSupport) { + return true; + } + const factory = this._factories.get(languageId); + if (!factory || factory.isResolved) { + return true; + } + return false; + } + setColorMap(colorMap) { + this._colorMap = colorMap; + this._onDidChange.fire({ + changedLanguages: Array.from(this._map.keys()), + changedColorMap: true + }); + } + getColorMap() { + return this._colorMap; + } + getDefaultBackground() { + if (this._colorMap && this._colorMap.length > 2 /* ColorId.DefaultBackground */) { + return this._colorMap[2 /* ColorId.DefaultBackground */]; + } + return null; + } +} +class TokenizationSupportFactoryData extends lifecycle_Disposable { + constructor(_registry, _languageId, _factory) { + super(); + this._registry = _registry; + this._languageId = _languageId; + this._factory = _factory; + this._isDisposed = false; + this._resolvePromise = null; + this._isResolved = false; + } + get isResolved() { + return this._isResolved; + } + dispose() { + this._isDisposed = true; + super.dispose(); + } + resolve() { + return tokenizationRegistry_awaiter(this, void 0, void 0, function* () { + if (!this._resolvePromise) { + this._resolvePromise = this._create(); + } + return this._resolvePromise; + }); + } + _create() { + return tokenizationRegistry_awaiter(this, void 0, void 0, function* () { + const value = yield Promise.resolve(this._factory.createTokenizationSupport()); + this._isResolved = true; + if (value && !this._isDisposed) { + this._register(this._registry.register(this._languageId, value)); + } + }); + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/languages.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + + + + +class Token { + constructor(offset, type, language) { + this._tokenBrand = undefined; + this.offset = offset; + this.type = type; + this.language = language; + } + toString() { + return '(' + this.offset + ', ' + this.type + ')'; + } +} +/** + * @internal + */ +class TokenizationResult { + constructor(tokens, endState) { + this._tokenizationResultBrand = undefined; + this.tokens = tokens; + this.endState = endState; + } +} +/** + * @internal + */ +class EncodedTokenizationResult { + constructor(tokens, endState) { + this._encodedTokenizationResultBrand = undefined; + this.tokens = tokens; + this.endState = endState; + } +} +/** + * @internal + */ +var CompletionItemKinds; +(function (CompletionItemKinds) { + const byKind = new Map(); + byKind.set(0 /* CompletionItemKind.Method */, Codicon.symbolMethod); + byKind.set(1 /* CompletionItemKind.Function */, Codicon.symbolFunction); + byKind.set(2 /* CompletionItemKind.Constructor */, Codicon.symbolConstructor); + byKind.set(3 /* CompletionItemKind.Field */, Codicon.symbolField); + byKind.set(4 /* CompletionItemKind.Variable */, Codicon.symbolVariable); + byKind.set(5 /* CompletionItemKind.Class */, Codicon.symbolClass); + byKind.set(6 /* CompletionItemKind.Struct */, Codicon.symbolStruct); + byKind.set(7 /* CompletionItemKind.Interface */, Codicon.symbolInterface); + byKind.set(8 /* CompletionItemKind.Module */, Codicon.symbolModule); + byKind.set(9 /* CompletionItemKind.Property */, Codicon.symbolProperty); + byKind.set(10 /* CompletionItemKind.Event */, Codicon.symbolEvent); + byKind.set(11 /* CompletionItemKind.Operator */, Codicon.symbolOperator); + byKind.set(12 /* CompletionItemKind.Unit */, Codicon.symbolUnit); + byKind.set(13 /* CompletionItemKind.Value */, Codicon.symbolValue); + byKind.set(15 /* CompletionItemKind.Enum */, Codicon.symbolEnum); + byKind.set(14 /* CompletionItemKind.Constant */, Codicon.symbolConstant); + byKind.set(15 /* CompletionItemKind.Enum */, Codicon.symbolEnum); + byKind.set(16 /* CompletionItemKind.EnumMember */, Codicon.symbolEnumMember); + byKind.set(17 /* CompletionItemKind.Keyword */, Codicon.symbolKeyword); + byKind.set(27 /* CompletionItemKind.Snippet */, Codicon.symbolSnippet); + byKind.set(18 /* CompletionItemKind.Text */, Codicon.symbolText); + byKind.set(19 /* CompletionItemKind.Color */, Codicon.symbolColor); + byKind.set(20 /* CompletionItemKind.File */, Codicon.symbolFile); + byKind.set(21 /* CompletionItemKind.Reference */, Codicon.symbolReference); + byKind.set(22 /* CompletionItemKind.Customcolor */, Codicon.symbolCustomColor); + byKind.set(23 /* CompletionItemKind.Folder */, Codicon.symbolFolder); + byKind.set(24 /* CompletionItemKind.TypeParameter */, Codicon.symbolTypeParameter); + byKind.set(25 /* CompletionItemKind.User */, Codicon.account); + byKind.set(26 /* CompletionItemKind.Issue */, Codicon.issues); + /** + * @internal + */ + function toIcon(kind) { + let codicon = byKind.get(kind); + if (!codicon) { + console.info('No codicon found for CompletionItemKind ' + kind); + codicon = Codicon.symbolProperty; + } + return codicon; + } + CompletionItemKinds.toIcon = toIcon; + const data = new Map(); + data.set('method', 0 /* CompletionItemKind.Method */); + data.set('function', 1 /* CompletionItemKind.Function */); + data.set('constructor', 2 /* CompletionItemKind.Constructor */); + data.set('field', 3 /* CompletionItemKind.Field */); + data.set('variable', 4 /* CompletionItemKind.Variable */); + data.set('class', 5 /* CompletionItemKind.Class */); + data.set('struct', 6 /* CompletionItemKind.Struct */); + data.set('interface', 7 /* CompletionItemKind.Interface */); + data.set('module', 8 /* CompletionItemKind.Module */); + data.set('property', 9 /* CompletionItemKind.Property */); + data.set('event', 10 /* CompletionItemKind.Event */); + data.set('operator', 11 /* CompletionItemKind.Operator */); + data.set('unit', 12 /* CompletionItemKind.Unit */); + data.set('value', 13 /* CompletionItemKind.Value */); + data.set('constant', 14 /* CompletionItemKind.Constant */); + data.set('enum', 15 /* CompletionItemKind.Enum */); + data.set('enum-member', 16 /* CompletionItemKind.EnumMember */); + data.set('enumMember', 16 /* CompletionItemKind.EnumMember */); + data.set('keyword', 17 /* CompletionItemKind.Keyword */); + data.set('snippet', 27 /* CompletionItemKind.Snippet */); + data.set('text', 18 /* CompletionItemKind.Text */); + data.set('color', 19 /* CompletionItemKind.Color */); + data.set('file', 20 /* CompletionItemKind.File */); + data.set('reference', 21 /* CompletionItemKind.Reference */); + data.set('customcolor', 22 /* CompletionItemKind.Customcolor */); + data.set('folder', 23 /* CompletionItemKind.Folder */); + data.set('type-parameter', 24 /* CompletionItemKind.TypeParameter */); + data.set('typeParameter', 24 /* CompletionItemKind.TypeParameter */); + data.set('account', 25 /* CompletionItemKind.User */); + data.set('issue', 26 /* CompletionItemKind.Issue */); + /** + * @internal + */ + function fromString(value, strict) { + let res = data.get(value); + if (typeof res === 'undefined' && !strict) { + res = 9 /* CompletionItemKind.Property */; + } + return res; + } + CompletionItemKinds.fromString = fromString; +})(CompletionItemKinds || (CompletionItemKinds = {})); +/** + * How an {@link InlineCompletionsProvider inline completion provider} was triggered. + */ +var InlineCompletionTriggerKind; +(function (InlineCompletionTriggerKind) { + /** + * Completion was triggered automatically while editing. + * It is sufficient to return a single completion item in this case. + */ + InlineCompletionTriggerKind[InlineCompletionTriggerKind["Automatic"] = 0] = "Automatic"; + /** + * Completion was triggered explicitly by a user gesture. + * Return multiple completion items to enable cycling through them. + */ + InlineCompletionTriggerKind[InlineCompletionTriggerKind["Explicit"] = 1] = "Explicit"; +})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {})); +var SignatureHelpTriggerKind; +(function (SignatureHelpTriggerKind) { + SignatureHelpTriggerKind[SignatureHelpTriggerKind["Invoke"] = 1] = "Invoke"; + SignatureHelpTriggerKind[SignatureHelpTriggerKind["TriggerCharacter"] = 2] = "TriggerCharacter"; + SignatureHelpTriggerKind[SignatureHelpTriggerKind["ContentChange"] = 3] = "ContentChange"; +})(SignatureHelpTriggerKind || (SignatureHelpTriggerKind = {})); +/** + * A document highlight kind. + */ +var DocumentHighlightKind; +(function (DocumentHighlightKind) { + /** + * A textual occurrence. + */ + DocumentHighlightKind[DocumentHighlightKind["Text"] = 0] = "Text"; + /** + * Read-access of a symbol, like reading a variable. + */ + DocumentHighlightKind[DocumentHighlightKind["Read"] = 1] = "Read"; + /** + * Write-access of a symbol, like writing to a variable. + */ + DocumentHighlightKind[DocumentHighlightKind["Write"] = 2] = "Write"; +})(DocumentHighlightKind || (DocumentHighlightKind = {})); +/** + * @internal + */ +function isLocationLink(thing) { + return thing + && URI.isUri(thing.uri) + && Range.isIRange(thing.range) + && (Range.isIRange(thing.originSelectionRange) || Range.isIRange(thing.targetSelectionRange)); +} +/** + * @internal + */ +var SymbolKinds; +(function (SymbolKinds) { + const byKind = new Map(); + byKind.set(0 /* SymbolKind.File */, Codicon.symbolFile); + byKind.set(1 /* SymbolKind.Module */, Codicon.symbolModule); + byKind.set(2 /* SymbolKind.Namespace */, Codicon.symbolNamespace); + byKind.set(3 /* SymbolKind.Package */, Codicon.symbolPackage); + byKind.set(4 /* SymbolKind.Class */, Codicon.symbolClass); + byKind.set(5 /* SymbolKind.Method */, Codicon.symbolMethod); + byKind.set(6 /* SymbolKind.Property */, Codicon.symbolProperty); + byKind.set(7 /* SymbolKind.Field */, Codicon.symbolField); + byKind.set(8 /* SymbolKind.Constructor */, Codicon.symbolConstructor); + byKind.set(9 /* SymbolKind.Enum */, Codicon.symbolEnum); + byKind.set(10 /* SymbolKind.Interface */, Codicon.symbolInterface); + byKind.set(11 /* SymbolKind.Function */, Codicon.symbolFunction); + byKind.set(12 /* SymbolKind.Variable */, Codicon.symbolVariable); + byKind.set(13 /* SymbolKind.Constant */, Codicon.symbolConstant); + byKind.set(14 /* SymbolKind.String */, Codicon.symbolString); + byKind.set(15 /* SymbolKind.Number */, Codicon.symbolNumber); + byKind.set(16 /* SymbolKind.Boolean */, Codicon.symbolBoolean); + byKind.set(17 /* SymbolKind.Array */, Codicon.symbolArray); + byKind.set(18 /* SymbolKind.Object */, Codicon.symbolObject); + byKind.set(19 /* SymbolKind.Key */, Codicon.symbolKey); + byKind.set(20 /* SymbolKind.Null */, Codicon.symbolNull); + byKind.set(21 /* SymbolKind.EnumMember */, Codicon.symbolEnumMember); + byKind.set(22 /* SymbolKind.Struct */, Codicon.symbolStruct); + byKind.set(23 /* SymbolKind.Event */, Codicon.symbolEvent); + byKind.set(24 /* SymbolKind.Operator */, Codicon.symbolOperator); + byKind.set(25 /* SymbolKind.TypeParameter */, Codicon.symbolTypeParameter); + /** + * @internal + */ + function toIcon(kind) { + let icon = byKind.get(kind); + if (!icon) { + console.info('No codicon found for SymbolKind ' + kind); + icon = Codicon.symbolProperty; + } + return icon; + } + SymbolKinds.toIcon = toIcon; +})(SymbolKinds || (SymbolKinds = {})); +class FoldingRangeKind { + /** + * Creates a new {@link FoldingRangeKind}. + * + * @param value of the kind. + */ + constructor(value) { + this.value = value; + } +} +/** + * Kind for folding range representing a comment. The value of the kind is 'comment'. + */ +FoldingRangeKind.Comment = new FoldingRangeKind('comment'); +/** + * Kind for folding range representing a import. The value of the kind is 'imports'. + */ +FoldingRangeKind.Imports = new FoldingRangeKind('imports'); +/** + * Kind for folding range representing regions (for example marked by `#region`, `#endregion`). + * The value of the kind is 'region'. + */ +FoldingRangeKind.Region = new FoldingRangeKind('region'); +/** + * @internal + */ +var Command; +(function (Command) { + /** + * @internal + */ + function is(obj) { + if (!obj || typeof obj !== 'object') { + return false; + } + return typeof obj.id === 'string' && + typeof obj.title === 'string'; + } + Command.is = is; +})(Command || (Command = {})); +var InlayHintKind; +(function (InlayHintKind) { + InlayHintKind[InlayHintKind["Type"] = 1] = "Type"; + InlayHintKind[InlayHintKind["Parameter"] = 2] = "Parameter"; +})(InlayHintKind || (InlayHintKind = {})); +/** + * @internal + */ +const languages_TokenizationRegistry = new TokenizationRegistry(); + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/standalone/standaloneEnums.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// THIS IS A GENERATED FILE. DO NOT EDIT DIRECTLY. +var AccessibilitySupport; +(function (AccessibilitySupport) { + /** + * This should be the browser case where it is not known if a screen reader is attached or no. + */ + AccessibilitySupport[AccessibilitySupport["Unknown"] = 0] = "Unknown"; + AccessibilitySupport[AccessibilitySupport["Disabled"] = 1] = "Disabled"; + AccessibilitySupport[AccessibilitySupport["Enabled"] = 2] = "Enabled"; +})(AccessibilitySupport || (AccessibilitySupport = {})); +var CodeActionTriggerType; +(function (CodeActionTriggerType) { + CodeActionTriggerType[CodeActionTriggerType["Invoke"] = 1] = "Invoke"; + CodeActionTriggerType[CodeActionTriggerType["Auto"] = 2] = "Auto"; +})(CodeActionTriggerType || (CodeActionTriggerType = {})); +var CompletionItemInsertTextRule; +(function (CompletionItemInsertTextRule) { + /** + * Adjust whitespace/indentation of multiline insert texts to + * match the current line indentation. + */ + CompletionItemInsertTextRule[CompletionItemInsertTextRule["KeepWhitespace"] = 1] = "KeepWhitespace"; + /** + * `insertText` is a snippet. + */ + CompletionItemInsertTextRule[CompletionItemInsertTextRule["InsertAsSnippet"] = 4] = "InsertAsSnippet"; +})(CompletionItemInsertTextRule || (CompletionItemInsertTextRule = {})); +var CompletionItemKind; +(function (CompletionItemKind) { + CompletionItemKind[CompletionItemKind["Method"] = 0] = "Method"; + CompletionItemKind[CompletionItemKind["Function"] = 1] = "Function"; + CompletionItemKind[CompletionItemKind["Constructor"] = 2] = "Constructor"; + CompletionItemKind[CompletionItemKind["Field"] = 3] = "Field"; + CompletionItemKind[CompletionItemKind["Variable"] = 4] = "Variable"; + CompletionItemKind[CompletionItemKind["Class"] = 5] = "Class"; + CompletionItemKind[CompletionItemKind["Struct"] = 6] = "Struct"; + CompletionItemKind[CompletionItemKind["Interface"] = 7] = "Interface"; + CompletionItemKind[CompletionItemKind["Module"] = 8] = "Module"; + CompletionItemKind[CompletionItemKind["Property"] = 9] = "Property"; + CompletionItemKind[CompletionItemKind["Event"] = 10] = "Event"; + CompletionItemKind[CompletionItemKind["Operator"] = 11] = "Operator"; + CompletionItemKind[CompletionItemKind["Unit"] = 12] = "Unit"; + CompletionItemKind[CompletionItemKind["Value"] = 13] = "Value"; + CompletionItemKind[CompletionItemKind["Constant"] = 14] = "Constant"; + CompletionItemKind[CompletionItemKind["Enum"] = 15] = "Enum"; + CompletionItemKind[CompletionItemKind["EnumMember"] = 16] = "EnumMember"; + CompletionItemKind[CompletionItemKind["Keyword"] = 17] = "Keyword"; + CompletionItemKind[CompletionItemKind["Text"] = 18] = "Text"; + CompletionItemKind[CompletionItemKind["Color"] = 19] = "Color"; + CompletionItemKind[CompletionItemKind["File"] = 20] = "File"; + CompletionItemKind[CompletionItemKind["Reference"] = 21] = "Reference"; + CompletionItemKind[CompletionItemKind["Customcolor"] = 22] = "Customcolor"; + CompletionItemKind[CompletionItemKind["Folder"] = 23] = "Folder"; + CompletionItemKind[CompletionItemKind["TypeParameter"] = 24] = "TypeParameter"; + CompletionItemKind[CompletionItemKind["User"] = 25] = "User"; + CompletionItemKind[CompletionItemKind["Issue"] = 26] = "Issue"; + CompletionItemKind[CompletionItemKind["Snippet"] = 27] = "Snippet"; +})(CompletionItemKind || (CompletionItemKind = {})); +var CompletionItemTag; +(function (CompletionItemTag) { + CompletionItemTag[CompletionItemTag["Deprecated"] = 1] = "Deprecated"; +})(CompletionItemTag || (CompletionItemTag = {})); +/** + * How a suggest provider was triggered. + */ +var CompletionTriggerKind; +(function (CompletionTriggerKind) { + CompletionTriggerKind[CompletionTriggerKind["Invoke"] = 0] = "Invoke"; + CompletionTriggerKind[CompletionTriggerKind["TriggerCharacter"] = 1] = "TriggerCharacter"; + CompletionTriggerKind[CompletionTriggerKind["TriggerForIncompleteCompletions"] = 2] = "TriggerForIncompleteCompletions"; +})(CompletionTriggerKind || (CompletionTriggerKind = {})); +/** + * A positioning preference for rendering content widgets. + */ +var ContentWidgetPositionPreference; +(function (ContentWidgetPositionPreference) { + /** + * Place the content widget exactly at a position + */ + ContentWidgetPositionPreference[ContentWidgetPositionPreference["EXACT"] = 0] = "EXACT"; + /** + * Place the content widget above a position + */ + ContentWidgetPositionPreference[ContentWidgetPositionPreference["ABOVE"] = 1] = "ABOVE"; + /** + * Place the content widget below a position + */ + ContentWidgetPositionPreference[ContentWidgetPositionPreference["BELOW"] = 2] = "BELOW"; +})(ContentWidgetPositionPreference || (ContentWidgetPositionPreference = {})); +/** + * Describes the reason the cursor has changed its position. + */ +var CursorChangeReason; +(function (CursorChangeReason) { + /** + * Unknown or not set. + */ + CursorChangeReason[CursorChangeReason["NotSet"] = 0] = "NotSet"; + /** + * A `model.setValue()` was called. + */ + CursorChangeReason[CursorChangeReason["ContentFlush"] = 1] = "ContentFlush"; + /** + * The `model` has been changed outside of this cursor and the cursor recovers its position from associated markers. + */ + CursorChangeReason[CursorChangeReason["RecoverFromMarkers"] = 2] = "RecoverFromMarkers"; + /** + * There was an explicit user gesture. + */ + CursorChangeReason[CursorChangeReason["Explicit"] = 3] = "Explicit"; + /** + * There was a Paste. + */ + CursorChangeReason[CursorChangeReason["Paste"] = 4] = "Paste"; + /** + * There was an Undo. + */ + CursorChangeReason[CursorChangeReason["Undo"] = 5] = "Undo"; + /** + * There was a Redo. + */ + CursorChangeReason[CursorChangeReason["Redo"] = 6] = "Redo"; +})(CursorChangeReason || (CursorChangeReason = {})); +/** + * The default end of line to use when instantiating models. + */ +var DefaultEndOfLine; +(function (DefaultEndOfLine) { + /** + * Use line feed (\n) as the end of line character. + */ + DefaultEndOfLine[DefaultEndOfLine["LF"] = 1] = "LF"; + /** + * Use carriage return and line feed (\r\n) as the end of line character. + */ + DefaultEndOfLine[DefaultEndOfLine["CRLF"] = 2] = "CRLF"; +})(DefaultEndOfLine || (DefaultEndOfLine = {})); +/** + * A document highlight kind. + */ +var standaloneEnums_DocumentHighlightKind; +(function (DocumentHighlightKind) { + /** + * A textual occurrence. + */ + DocumentHighlightKind[DocumentHighlightKind["Text"] = 0] = "Text"; + /** + * Read-access of a symbol, like reading a variable. + */ + DocumentHighlightKind[DocumentHighlightKind["Read"] = 1] = "Read"; + /** + * Write-access of a symbol, like writing to a variable. + */ + DocumentHighlightKind[DocumentHighlightKind["Write"] = 2] = "Write"; +})(standaloneEnums_DocumentHighlightKind || (standaloneEnums_DocumentHighlightKind = {})); +/** + * Configuration options for auto indentation in the editor + */ +var EditorAutoIndentStrategy; +(function (EditorAutoIndentStrategy) { + EditorAutoIndentStrategy[EditorAutoIndentStrategy["None"] = 0] = "None"; + EditorAutoIndentStrategy[EditorAutoIndentStrategy["Keep"] = 1] = "Keep"; + EditorAutoIndentStrategy[EditorAutoIndentStrategy["Brackets"] = 2] = "Brackets"; + EditorAutoIndentStrategy[EditorAutoIndentStrategy["Advanced"] = 3] = "Advanced"; + EditorAutoIndentStrategy[EditorAutoIndentStrategy["Full"] = 4] = "Full"; +})(EditorAutoIndentStrategy || (EditorAutoIndentStrategy = {})); +var EditorOption; +(function (EditorOption) { + EditorOption[EditorOption["acceptSuggestionOnCommitCharacter"] = 0] = "acceptSuggestionOnCommitCharacter"; + EditorOption[EditorOption["acceptSuggestionOnEnter"] = 1] = "acceptSuggestionOnEnter"; + EditorOption[EditorOption["accessibilitySupport"] = 2] = "accessibilitySupport"; + EditorOption[EditorOption["accessibilityPageSize"] = 3] = "accessibilityPageSize"; + EditorOption[EditorOption["ariaLabel"] = 4] = "ariaLabel"; + EditorOption[EditorOption["autoClosingBrackets"] = 5] = "autoClosingBrackets"; + EditorOption[EditorOption["autoClosingDelete"] = 6] = "autoClosingDelete"; + EditorOption[EditorOption["autoClosingOvertype"] = 7] = "autoClosingOvertype"; + EditorOption[EditorOption["autoClosingQuotes"] = 8] = "autoClosingQuotes"; + EditorOption[EditorOption["autoIndent"] = 9] = "autoIndent"; + EditorOption[EditorOption["automaticLayout"] = 10] = "automaticLayout"; + EditorOption[EditorOption["autoSurround"] = 11] = "autoSurround"; + EditorOption[EditorOption["bracketPairColorization"] = 12] = "bracketPairColorization"; + EditorOption[EditorOption["guides"] = 13] = "guides"; + EditorOption[EditorOption["codeLens"] = 14] = "codeLens"; + EditorOption[EditorOption["codeLensFontFamily"] = 15] = "codeLensFontFamily"; + EditorOption[EditorOption["codeLensFontSize"] = 16] = "codeLensFontSize"; + EditorOption[EditorOption["colorDecorators"] = 17] = "colorDecorators"; + EditorOption[EditorOption["columnSelection"] = 18] = "columnSelection"; + EditorOption[EditorOption["comments"] = 19] = "comments"; + EditorOption[EditorOption["contextmenu"] = 20] = "contextmenu"; + EditorOption[EditorOption["copyWithSyntaxHighlighting"] = 21] = "copyWithSyntaxHighlighting"; + EditorOption[EditorOption["cursorBlinking"] = 22] = "cursorBlinking"; + EditorOption[EditorOption["cursorSmoothCaretAnimation"] = 23] = "cursorSmoothCaretAnimation"; + EditorOption[EditorOption["cursorStyle"] = 24] = "cursorStyle"; + EditorOption[EditorOption["cursorSurroundingLines"] = 25] = "cursorSurroundingLines"; + EditorOption[EditorOption["cursorSurroundingLinesStyle"] = 26] = "cursorSurroundingLinesStyle"; + EditorOption[EditorOption["cursorWidth"] = 27] = "cursorWidth"; + EditorOption[EditorOption["disableLayerHinting"] = 28] = "disableLayerHinting"; + EditorOption[EditorOption["disableMonospaceOptimizations"] = 29] = "disableMonospaceOptimizations"; + EditorOption[EditorOption["domReadOnly"] = 30] = "domReadOnly"; + EditorOption[EditorOption["dragAndDrop"] = 31] = "dragAndDrop"; + EditorOption[EditorOption["dropIntoEditor"] = 32] = "dropIntoEditor"; + EditorOption[EditorOption["emptySelectionClipboard"] = 33] = "emptySelectionClipboard"; + EditorOption[EditorOption["experimental"] = 34] = "experimental"; + EditorOption[EditorOption["extraEditorClassName"] = 35] = "extraEditorClassName"; + EditorOption[EditorOption["fastScrollSensitivity"] = 36] = "fastScrollSensitivity"; + EditorOption[EditorOption["find"] = 37] = "find"; + EditorOption[EditorOption["fixedOverflowWidgets"] = 38] = "fixedOverflowWidgets"; + EditorOption[EditorOption["folding"] = 39] = "folding"; + EditorOption[EditorOption["foldingStrategy"] = 40] = "foldingStrategy"; + EditorOption[EditorOption["foldingHighlight"] = 41] = "foldingHighlight"; + EditorOption[EditorOption["foldingImportsByDefault"] = 42] = "foldingImportsByDefault"; + EditorOption[EditorOption["foldingMaximumRegions"] = 43] = "foldingMaximumRegions"; + EditorOption[EditorOption["unfoldOnClickAfterEndOfLine"] = 44] = "unfoldOnClickAfterEndOfLine"; + EditorOption[EditorOption["fontFamily"] = 45] = "fontFamily"; + EditorOption[EditorOption["fontInfo"] = 46] = "fontInfo"; + EditorOption[EditorOption["fontLigatures"] = 47] = "fontLigatures"; + EditorOption[EditorOption["fontSize"] = 48] = "fontSize"; + EditorOption[EditorOption["fontWeight"] = 49] = "fontWeight"; + EditorOption[EditorOption["formatOnPaste"] = 50] = "formatOnPaste"; + EditorOption[EditorOption["formatOnType"] = 51] = "formatOnType"; + EditorOption[EditorOption["glyphMargin"] = 52] = "glyphMargin"; + EditorOption[EditorOption["gotoLocation"] = 53] = "gotoLocation"; + EditorOption[EditorOption["hideCursorInOverviewRuler"] = 54] = "hideCursorInOverviewRuler"; + EditorOption[EditorOption["hover"] = 55] = "hover"; + EditorOption[EditorOption["inDiffEditor"] = 56] = "inDiffEditor"; + EditorOption[EditorOption["inlineSuggest"] = 57] = "inlineSuggest"; + EditorOption[EditorOption["letterSpacing"] = 58] = "letterSpacing"; + EditorOption[EditorOption["lightbulb"] = 59] = "lightbulb"; + EditorOption[EditorOption["lineDecorationsWidth"] = 60] = "lineDecorationsWidth"; + EditorOption[EditorOption["lineHeight"] = 61] = "lineHeight"; + EditorOption[EditorOption["lineNumbers"] = 62] = "lineNumbers"; + EditorOption[EditorOption["lineNumbersMinChars"] = 63] = "lineNumbersMinChars"; + EditorOption[EditorOption["linkedEditing"] = 64] = "linkedEditing"; + EditorOption[EditorOption["links"] = 65] = "links"; + EditorOption[EditorOption["matchBrackets"] = 66] = "matchBrackets"; + EditorOption[EditorOption["minimap"] = 67] = "minimap"; + EditorOption[EditorOption["mouseStyle"] = 68] = "mouseStyle"; + EditorOption[EditorOption["mouseWheelScrollSensitivity"] = 69] = "mouseWheelScrollSensitivity"; + EditorOption[EditorOption["mouseWheelZoom"] = 70] = "mouseWheelZoom"; + EditorOption[EditorOption["multiCursorMergeOverlapping"] = 71] = "multiCursorMergeOverlapping"; + EditorOption[EditorOption["multiCursorModifier"] = 72] = "multiCursorModifier"; + EditorOption[EditorOption["multiCursorPaste"] = 73] = "multiCursorPaste"; + EditorOption[EditorOption["occurrencesHighlight"] = 74] = "occurrencesHighlight"; + EditorOption[EditorOption["overviewRulerBorder"] = 75] = "overviewRulerBorder"; + EditorOption[EditorOption["overviewRulerLanes"] = 76] = "overviewRulerLanes"; + EditorOption[EditorOption["padding"] = 77] = "padding"; + EditorOption[EditorOption["parameterHints"] = 78] = "parameterHints"; + EditorOption[EditorOption["peekWidgetDefaultFocus"] = 79] = "peekWidgetDefaultFocus"; + EditorOption[EditorOption["definitionLinkOpensInPeek"] = 80] = "definitionLinkOpensInPeek"; + EditorOption[EditorOption["quickSuggestions"] = 81] = "quickSuggestions"; + EditorOption[EditorOption["quickSuggestionsDelay"] = 82] = "quickSuggestionsDelay"; + EditorOption[EditorOption["readOnly"] = 83] = "readOnly"; + EditorOption[EditorOption["renameOnType"] = 84] = "renameOnType"; + EditorOption[EditorOption["renderControlCharacters"] = 85] = "renderControlCharacters"; + EditorOption[EditorOption["renderFinalNewline"] = 86] = "renderFinalNewline"; + EditorOption[EditorOption["renderLineHighlight"] = 87] = "renderLineHighlight"; + EditorOption[EditorOption["renderLineHighlightOnlyWhenFocus"] = 88] = "renderLineHighlightOnlyWhenFocus"; + EditorOption[EditorOption["renderValidationDecorations"] = 89] = "renderValidationDecorations"; + EditorOption[EditorOption["renderWhitespace"] = 90] = "renderWhitespace"; + EditorOption[EditorOption["revealHorizontalRightPadding"] = 91] = "revealHorizontalRightPadding"; + EditorOption[EditorOption["roundedSelection"] = 92] = "roundedSelection"; + EditorOption[EditorOption["rulers"] = 93] = "rulers"; + EditorOption[EditorOption["scrollbar"] = 94] = "scrollbar"; + EditorOption[EditorOption["scrollBeyondLastColumn"] = 95] = "scrollBeyondLastColumn"; + EditorOption[EditorOption["scrollBeyondLastLine"] = 96] = "scrollBeyondLastLine"; + EditorOption[EditorOption["scrollPredominantAxis"] = 97] = "scrollPredominantAxis"; + EditorOption[EditorOption["selectionClipboard"] = 98] = "selectionClipboard"; + EditorOption[EditorOption["selectionHighlight"] = 99] = "selectionHighlight"; + EditorOption[EditorOption["selectOnLineNumbers"] = 100] = "selectOnLineNumbers"; + EditorOption[EditorOption["showFoldingControls"] = 101] = "showFoldingControls"; + EditorOption[EditorOption["showUnused"] = 102] = "showUnused"; + EditorOption[EditorOption["snippetSuggestions"] = 103] = "snippetSuggestions"; + EditorOption[EditorOption["smartSelect"] = 104] = "smartSelect"; + EditorOption[EditorOption["smoothScrolling"] = 105] = "smoothScrolling"; + EditorOption[EditorOption["stickyTabStops"] = 106] = "stickyTabStops"; + EditorOption[EditorOption["stopRenderingLineAfter"] = 107] = "stopRenderingLineAfter"; + EditorOption[EditorOption["suggest"] = 108] = "suggest"; + EditorOption[EditorOption["suggestFontSize"] = 109] = "suggestFontSize"; + EditorOption[EditorOption["suggestLineHeight"] = 110] = "suggestLineHeight"; + EditorOption[EditorOption["suggestOnTriggerCharacters"] = 111] = "suggestOnTriggerCharacters"; + EditorOption[EditorOption["suggestSelection"] = 112] = "suggestSelection"; + EditorOption[EditorOption["tabCompletion"] = 113] = "tabCompletion"; + EditorOption[EditorOption["tabIndex"] = 114] = "tabIndex"; + EditorOption[EditorOption["unicodeHighlighting"] = 115] = "unicodeHighlighting"; + EditorOption[EditorOption["unusualLineTerminators"] = 116] = "unusualLineTerminators"; + EditorOption[EditorOption["useShadowDOM"] = 117] = "useShadowDOM"; + EditorOption[EditorOption["useTabStops"] = 118] = "useTabStops"; + EditorOption[EditorOption["wordSeparators"] = 119] = "wordSeparators"; + EditorOption[EditorOption["wordWrap"] = 120] = "wordWrap"; + EditorOption[EditorOption["wordWrapBreakAfterCharacters"] = 121] = "wordWrapBreakAfterCharacters"; + EditorOption[EditorOption["wordWrapBreakBeforeCharacters"] = 122] = "wordWrapBreakBeforeCharacters"; + EditorOption[EditorOption["wordWrapColumn"] = 123] = "wordWrapColumn"; + EditorOption[EditorOption["wordWrapOverride1"] = 124] = "wordWrapOverride1"; + EditorOption[EditorOption["wordWrapOverride2"] = 125] = "wordWrapOverride2"; + EditorOption[EditorOption["wrappingIndent"] = 126] = "wrappingIndent"; + EditorOption[EditorOption["wrappingStrategy"] = 127] = "wrappingStrategy"; + EditorOption[EditorOption["showDeprecated"] = 128] = "showDeprecated"; + EditorOption[EditorOption["inlayHints"] = 129] = "inlayHints"; + EditorOption[EditorOption["editorClassName"] = 130] = "editorClassName"; + EditorOption[EditorOption["pixelRatio"] = 131] = "pixelRatio"; + EditorOption[EditorOption["tabFocusMode"] = 132] = "tabFocusMode"; + EditorOption[EditorOption["layoutInfo"] = 133] = "layoutInfo"; + EditorOption[EditorOption["wrappingInfo"] = 134] = "wrappingInfo"; +})(EditorOption || (EditorOption = {})); +/** + * End of line character preference. + */ +var EndOfLinePreference; +(function (EndOfLinePreference) { + /** + * Use the end of line character identified in the text buffer. + */ + EndOfLinePreference[EndOfLinePreference["TextDefined"] = 0] = "TextDefined"; + /** + * Use line feed (\n) as the end of line character. + */ + EndOfLinePreference[EndOfLinePreference["LF"] = 1] = "LF"; + /** + * Use carriage return and line feed (\r\n) as the end of line character. + */ + EndOfLinePreference[EndOfLinePreference["CRLF"] = 2] = "CRLF"; +})(EndOfLinePreference || (EndOfLinePreference = {})); +/** + * End of line character preference. + */ +var EndOfLineSequence; +(function (EndOfLineSequence) { + /** + * Use line feed (\n) as the end of line character. + */ + EndOfLineSequence[EndOfLineSequence["LF"] = 0] = "LF"; + /** + * Use carriage return and line feed (\r\n) as the end of line character. + */ + EndOfLineSequence[EndOfLineSequence["CRLF"] = 1] = "CRLF"; +})(EndOfLineSequence || (EndOfLineSequence = {})); +/** + * Describes what to do with the indentation when pressing Enter. + */ +var IndentAction; +(function (IndentAction) { + /** + * Insert new line and copy the previous line's indentation. + */ + IndentAction[IndentAction["None"] = 0] = "None"; + /** + * Insert new line and indent once (relative to the previous line's indentation). + */ + IndentAction[IndentAction["Indent"] = 1] = "Indent"; + /** + * Insert two new lines: + * - the first one indented which will hold the cursor + * - the second one at the same indentation level + */ + IndentAction[IndentAction["IndentOutdent"] = 2] = "IndentOutdent"; + /** + * Insert new line and outdent once (relative to the previous line's indentation). + */ + IndentAction[IndentAction["Outdent"] = 3] = "Outdent"; +})(IndentAction || (IndentAction = {})); +var InjectedTextCursorStops; +(function (InjectedTextCursorStops) { + InjectedTextCursorStops[InjectedTextCursorStops["Both"] = 0] = "Both"; + InjectedTextCursorStops[InjectedTextCursorStops["Right"] = 1] = "Right"; + InjectedTextCursorStops[InjectedTextCursorStops["Left"] = 2] = "Left"; + InjectedTextCursorStops[InjectedTextCursorStops["None"] = 3] = "None"; +})(InjectedTextCursorStops || (InjectedTextCursorStops = {})); +var standaloneEnums_InlayHintKind; +(function (InlayHintKind) { + InlayHintKind[InlayHintKind["Type"] = 1] = "Type"; + InlayHintKind[InlayHintKind["Parameter"] = 2] = "Parameter"; +})(standaloneEnums_InlayHintKind || (standaloneEnums_InlayHintKind = {})); +/** + * How an {@link InlineCompletionsProvider inline completion provider} was triggered. + */ +var standaloneEnums_InlineCompletionTriggerKind; +(function (InlineCompletionTriggerKind) { + /** + * Completion was triggered automatically while editing. + * It is sufficient to return a single completion item in this case. + */ + InlineCompletionTriggerKind[InlineCompletionTriggerKind["Automatic"] = 0] = "Automatic"; + /** + * Completion was triggered explicitly by a user gesture. + * Return multiple completion items to enable cycling through them. + */ + InlineCompletionTriggerKind[InlineCompletionTriggerKind["Explicit"] = 1] = "Explicit"; +})(standaloneEnums_InlineCompletionTriggerKind || (standaloneEnums_InlineCompletionTriggerKind = {})); +/** + * Virtual Key Codes, the value does not hold any inherent meaning. + * Inspired somewhat from https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx + * But these are "more general", as they should work across browsers & OS`s. + */ +var KeyCode; +(function (KeyCode) { + KeyCode[KeyCode["DependsOnKbLayout"] = -1] = "DependsOnKbLayout"; + /** + * Placed first to cover the 0 value of the enum. + */ + KeyCode[KeyCode["Unknown"] = 0] = "Unknown"; + KeyCode[KeyCode["Backspace"] = 1] = "Backspace"; + KeyCode[KeyCode["Tab"] = 2] = "Tab"; + KeyCode[KeyCode["Enter"] = 3] = "Enter"; + KeyCode[KeyCode["Shift"] = 4] = "Shift"; + KeyCode[KeyCode["Ctrl"] = 5] = "Ctrl"; + KeyCode[KeyCode["Alt"] = 6] = "Alt"; + KeyCode[KeyCode["PauseBreak"] = 7] = "PauseBreak"; + KeyCode[KeyCode["CapsLock"] = 8] = "CapsLock"; + KeyCode[KeyCode["Escape"] = 9] = "Escape"; + KeyCode[KeyCode["Space"] = 10] = "Space"; + KeyCode[KeyCode["PageUp"] = 11] = "PageUp"; + KeyCode[KeyCode["PageDown"] = 12] = "PageDown"; + KeyCode[KeyCode["End"] = 13] = "End"; + KeyCode[KeyCode["Home"] = 14] = "Home"; + KeyCode[KeyCode["LeftArrow"] = 15] = "LeftArrow"; + KeyCode[KeyCode["UpArrow"] = 16] = "UpArrow"; + KeyCode[KeyCode["RightArrow"] = 17] = "RightArrow"; + KeyCode[KeyCode["DownArrow"] = 18] = "DownArrow"; + KeyCode[KeyCode["Insert"] = 19] = "Insert"; + KeyCode[KeyCode["Delete"] = 20] = "Delete"; + KeyCode[KeyCode["Digit0"] = 21] = "Digit0"; + KeyCode[KeyCode["Digit1"] = 22] = "Digit1"; + KeyCode[KeyCode["Digit2"] = 23] = "Digit2"; + KeyCode[KeyCode["Digit3"] = 24] = "Digit3"; + KeyCode[KeyCode["Digit4"] = 25] = "Digit4"; + KeyCode[KeyCode["Digit5"] = 26] = "Digit5"; + KeyCode[KeyCode["Digit6"] = 27] = "Digit6"; + KeyCode[KeyCode["Digit7"] = 28] = "Digit7"; + KeyCode[KeyCode["Digit8"] = 29] = "Digit8"; + KeyCode[KeyCode["Digit9"] = 30] = "Digit9"; + KeyCode[KeyCode["KeyA"] = 31] = "KeyA"; + KeyCode[KeyCode["KeyB"] = 32] = "KeyB"; + KeyCode[KeyCode["KeyC"] = 33] = "KeyC"; + KeyCode[KeyCode["KeyD"] = 34] = "KeyD"; + KeyCode[KeyCode["KeyE"] = 35] = "KeyE"; + KeyCode[KeyCode["KeyF"] = 36] = "KeyF"; + KeyCode[KeyCode["KeyG"] = 37] = "KeyG"; + KeyCode[KeyCode["KeyH"] = 38] = "KeyH"; + KeyCode[KeyCode["KeyI"] = 39] = "KeyI"; + KeyCode[KeyCode["KeyJ"] = 40] = "KeyJ"; + KeyCode[KeyCode["KeyK"] = 41] = "KeyK"; + KeyCode[KeyCode["KeyL"] = 42] = "KeyL"; + KeyCode[KeyCode["KeyM"] = 43] = "KeyM"; + KeyCode[KeyCode["KeyN"] = 44] = "KeyN"; + KeyCode[KeyCode["KeyO"] = 45] = "KeyO"; + KeyCode[KeyCode["KeyP"] = 46] = "KeyP"; + KeyCode[KeyCode["KeyQ"] = 47] = "KeyQ"; + KeyCode[KeyCode["KeyR"] = 48] = "KeyR"; + KeyCode[KeyCode["KeyS"] = 49] = "KeyS"; + KeyCode[KeyCode["KeyT"] = 50] = "KeyT"; + KeyCode[KeyCode["KeyU"] = 51] = "KeyU"; + KeyCode[KeyCode["KeyV"] = 52] = "KeyV"; + KeyCode[KeyCode["KeyW"] = 53] = "KeyW"; + KeyCode[KeyCode["KeyX"] = 54] = "KeyX"; + KeyCode[KeyCode["KeyY"] = 55] = "KeyY"; + KeyCode[KeyCode["KeyZ"] = 56] = "KeyZ"; + KeyCode[KeyCode["Meta"] = 57] = "Meta"; + KeyCode[KeyCode["ContextMenu"] = 58] = "ContextMenu"; + KeyCode[KeyCode["F1"] = 59] = "F1"; + KeyCode[KeyCode["F2"] = 60] = "F2"; + KeyCode[KeyCode["F3"] = 61] = "F3"; + KeyCode[KeyCode["F4"] = 62] = "F4"; + KeyCode[KeyCode["F5"] = 63] = "F5"; + KeyCode[KeyCode["F6"] = 64] = "F6"; + KeyCode[KeyCode["F7"] = 65] = "F7"; + KeyCode[KeyCode["F8"] = 66] = "F8"; + KeyCode[KeyCode["F9"] = 67] = "F9"; + KeyCode[KeyCode["F10"] = 68] = "F10"; + KeyCode[KeyCode["F11"] = 69] = "F11"; + KeyCode[KeyCode["F12"] = 70] = "F12"; + KeyCode[KeyCode["F13"] = 71] = "F13"; + KeyCode[KeyCode["F14"] = 72] = "F14"; + KeyCode[KeyCode["F15"] = 73] = "F15"; + KeyCode[KeyCode["F16"] = 74] = "F16"; + KeyCode[KeyCode["F17"] = 75] = "F17"; + KeyCode[KeyCode["F18"] = 76] = "F18"; + KeyCode[KeyCode["F19"] = 77] = "F19"; + KeyCode[KeyCode["NumLock"] = 78] = "NumLock"; + KeyCode[KeyCode["ScrollLock"] = 79] = "ScrollLock"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the ';:' key + */ + KeyCode[KeyCode["Semicolon"] = 80] = "Semicolon"; + /** + * For any country/region, the '+' key + * For the US standard keyboard, the '=+' key + */ + KeyCode[KeyCode["Equal"] = 81] = "Equal"; + /** + * For any country/region, the ',' key + * For the US standard keyboard, the ',<' key + */ + KeyCode[KeyCode["Comma"] = 82] = "Comma"; + /** + * For any country/region, the '-' key + * For the US standard keyboard, the '-_' key + */ + KeyCode[KeyCode["Minus"] = 83] = "Minus"; + /** + * For any country/region, the '.' key + * For the US standard keyboard, the '.>' key + */ + KeyCode[KeyCode["Period"] = 84] = "Period"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the '/?' key + */ + KeyCode[KeyCode["Slash"] = 85] = "Slash"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the '`~' key + */ + KeyCode[KeyCode["Backquote"] = 86] = "Backquote"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the '[{' key + */ + KeyCode[KeyCode["BracketLeft"] = 87] = "BracketLeft"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the '\|' key + */ + KeyCode[KeyCode["Backslash"] = 88] = "Backslash"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the ']}' key + */ + KeyCode[KeyCode["BracketRight"] = 89] = "BracketRight"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the ''"' key + */ + KeyCode[KeyCode["Quote"] = 90] = "Quote"; + /** + * Used for miscellaneous characters; it can vary by keyboard. + */ + KeyCode[KeyCode["OEM_8"] = 91] = "OEM_8"; + /** + * Either the angle bracket key or the backslash key on the RT 102-key keyboard. + */ + KeyCode[KeyCode["IntlBackslash"] = 92] = "IntlBackslash"; + KeyCode[KeyCode["Numpad0"] = 93] = "Numpad0"; + KeyCode[KeyCode["Numpad1"] = 94] = "Numpad1"; + KeyCode[KeyCode["Numpad2"] = 95] = "Numpad2"; + KeyCode[KeyCode["Numpad3"] = 96] = "Numpad3"; + KeyCode[KeyCode["Numpad4"] = 97] = "Numpad4"; + KeyCode[KeyCode["Numpad5"] = 98] = "Numpad5"; + KeyCode[KeyCode["Numpad6"] = 99] = "Numpad6"; + KeyCode[KeyCode["Numpad7"] = 100] = "Numpad7"; + KeyCode[KeyCode["Numpad8"] = 101] = "Numpad8"; + KeyCode[KeyCode["Numpad9"] = 102] = "Numpad9"; + KeyCode[KeyCode["NumpadMultiply"] = 103] = "NumpadMultiply"; + KeyCode[KeyCode["NumpadAdd"] = 104] = "NumpadAdd"; + KeyCode[KeyCode["NUMPAD_SEPARATOR"] = 105] = "NUMPAD_SEPARATOR"; + KeyCode[KeyCode["NumpadSubtract"] = 106] = "NumpadSubtract"; + KeyCode[KeyCode["NumpadDecimal"] = 107] = "NumpadDecimal"; + KeyCode[KeyCode["NumpadDivide"] = 108] = "NumpadDivide"; + /** + * Cover all key codes when IME is processing input. + */ + KeyCode[KeyCode["KEY_IN_COMPOSITION"] = 109] = "KEY_IN_COMPOSITION"; + KeyCode[KeyCode["ABNT_C1"] = 110] = "ABNT_C1"; + KeyCode[KeyCode["ABNT_C2"] = 111] = "ABNT_C2"; + KeyCode[KeyCode["AudioVolumeMute"] = 112] = "AudioVolumeMute"; + KeyCode[KeyCode["AudioVolumeUp"] = 113] = "AudioVolumeUp"; + KeyCode[KeyCode["AudioVolumeDown"] = 114] = "AudioVolumeDown"; + KeyCode[KeyCode["BrowserSearch"] = 115] = "BrowserSearch"; + KeyCode[KeyCode["BrowserHome"] = 116] = "BrowserHome"; + KeyCode[KeyCode["BrowserBack"] = 117] = "BrowserBack"; + KeyCode[KeyCode["BrowserForward"] = 118] = "BrowserForward"; + KeyCode[KeyCode["MediaTrackNext"] = 119] = "MediaTrackNext"; + KeyCode[KeyCode["MediaTrackPrevious"] = 120] = "MediaTrackPrevious"; + KeyCode[KeyCode["MediaStop"] = 121] = "MediaStop"; + KeyCode[KeyCode["MediaPlayPause"] = 122] = "MediaPlayPause"; + KeyCode[KeyCode["LaunchMediaPlayer"] = 123] = "LaunchMediaPlayer"; + KeyCode[KeyCode["LaunchMail"] = 124] = "LaunchMail"; + KeyCode[KeyCode["LaunchApp2"] = 125] = "LaunchApp2"; + /** + * VK_CLEAR, 0x0C, CLEAR key + */ + KeyCode[KeyCode["Clear"] = 126] = "Clear"; + /** + * Placed last to cover the length of the enum. + * Please do not depend on this value! + */ + KeyCode[KeyCode["MAX_VALUE"] = 127] = "MAX_VALUE"; +})(KeyCode || (KeyCode = {})); +var MarkerSeverity; +(function (MarkerSeverity) { + MarkerSeverity[MarkerSeverity["Hint"] = 1] = "Hint"; + MarkerSeverity[MarkerSeverity["Info"] = 2] = "Info"; + MarkerSeverity[MarkerSeverity["Warning"] = 4] = "Warning"; + MarkerSeverity[MarkerSeverity["Error"] = 8] = "Error"; +})(MarkerSeverity || (MarkerSeverity = {})); +var MarkerTag; +(function (MarkerTag) { + MarkerTag[MarkerTag["Unnecessary"] = 1] = "Unnecessary"; + MarkerTag[MarkerTag["Deprecated"] = 2] = "Deprecated"; +})(MarkerTag || (MarkerTag = {})); +/** + * Position in the minimap to render the decoration. + */ +var MinimapPosition; +(function (MinimapPosition) { + MinimapPosition[MinimapPosition["Inline"] = 1] = "Inline"; + MinimapPosition[MinimapPosition["Gutter"] = 2] = "Gutter"; +})(MinimapPosition || (MinimapPosition = {})); +/** + * Type of hit element with the mouse in the editor. + */ +var MouseTargetType; +(function (MouseTargetType) { + /** + * Mouse is on top of an unknown element. + */ + MouseTargetType[MouseTargetType["UNKNOWN"] = 0] = "UNKNOWN"; + /** + * Mouse is on top of the textarea used for input. + */ + MouseTargetType[MouseTargetType["TEXTAREA"] = 1] = "TEXTAREA"; + /** + * Mouse is on top of the glyph margin + */ + MouseTargetType[MouseTargetType["GUTTER_GLYPH_MARGIN"] = 2] = "GUTTER_GLYPH_MARGIN"; + /** + * Mouse is on top of the line numbers + */ + MouseTargetType[MouseTargetType["GUTTER_LINE_NUMBERS"] = 3] = "GUTTER_LINE_NUMBERS"; + /** + * Mouse is on top of the line decorations + */ + MouseTargetType[MouseTargetType["GUTTER_LINE_DECORATIONS"] = 4] = "GUTTER_LINE_DECORATIONS"; + /** + * Mouse is on top of the whitespace left in the gutter by a view zone. + */ + MouseTargetType[MouseTargetType["GUTTER_VIEW_ZONE"] = 5] = "GUTTER_VIEW_ZONE"; + /** + * Mouse is on top of text in the content. + */ + MouseTargetType[MouseTargetType["CONTENT_TEXT"] = 6] = "CONTENT_TEXT"; + /** + * Mouse is on top of empty space in the content (e.g. after line text or below last line) + */ + MouseTargetType[MouseTargetType["CONTENT_EMPTY"] = 7] = "CONTENT_EMPTY"; + /** + * Mouse is on top of a view zone in the content. + */ + MouseTargetType[MouseTargetType["CONTENT_VIEW_ZONE"] = 8] = "CONTENT_VIEW_ZONE"; + /** + * Mouse is on top of a content widget. + */ + MouseTargetType[MouseTargetType["CONTENT_WIDGET"] = 9] = "CONTENT_WIDGET"; + /** + * Mouse is on top of the decorations overview ruler. + */ + MouseTargetType[MouseTargetType["OVERVIEW_RULER"] = 10] = "OVERVIEW_RULER"; + /** + * Mouse is on top of a scrollbar. + */ + MouseTargetType[MouseTargetType["SCROLLBAR"] = 11] = "SCROLLBAR"; + /** + * Mouse is on top of an overlay widget. + */ + MouseTargetType[MouseTargetType["OVERLAY_WIDGET"] = 12] = "OVERLAY_WIDGET"; + /** + * Mouse is outside of the editor. + */ + MouseTargetType[MouseTargetType["OUTSIDE_EDITOR"] = 13] = "OUTSIDE_EDITOR"; +})(MouseTargetType || (MouseTargetType = {})); +/** + * A positioning preference for rendering overlay widgets. + */ +var OverlayWidgetPositionPreference; +(function (OverlayWidgetPositionPreference) { + /** + * Position the overlay widget in the top right corner + */ + OverlayWidgetPositionPreference[OverlayWidgetPositionPreference["TOP_RIGHT_CORNER"] = 0] = "TOP_RIGHT_CORNER"; + /** + * Position the overlay widget in the bottom right corner + */ + OverlayWidgetPositionPreference[OverlayWidgetPositionPreference["BOTTOM_RIGHT_CORNER"] = 1] = "BOTTOM_RIGHT_CORNER"; + /** + * Position the overlay widget in the top center + */ + OverlayWidgetPositionPreference[OverlayWidgetPositionPreference["TOP_CENTER"] = 2] = "TOP_CENTER"; +})(OverlayWidgetPositionPreference || (OverlayWidgetPositionPreference = {})); +/** + * Vertical Lane in the overview ruler of the editor. + */ +var OverviewRulerLane; +(function (OverviewRulerLane) { + OverviewRulerLane[OverviewRulerLane["Left"] = 1] = "Left"; + OverviewRulerLane[OverviewRulerLane["Center"] = 2] = "Center"; + OverviewRulerLane[OverviewRulerLane["Right"] = 4] = "Right"; + OverviewRulerLane[OverviewRulerLane["Full"] = 7] = "Full"; +})(OverviewRulerLane || (OverviewRulerLane = {})); +var PositionAffinity; +(function (PositionAffinity) { + /** + * Prefers the left most position. + */ + PositionAffinity[PositionAffinity["Left"] = 0] = "Left"; + /** + * Prefers the right most position. + */ + PositionAffinity[PositionAffinity["Right"] = 1] = "Right"; + /** + * No preference. + */ + PositionAffinity[PositionAffinity["None"] = 2] = "None"; + /** + * If the given position is on injected text, prefers the position left of it. + */ + PositionAffinity[PositionAffinity["LeftOfInjectedText"] = 3] = "LeftOfInjectedText"; + /** + * If the given position is on injected text, prefers the position right of it. + */ + PositionAffinity[PositionAffinity["RightOfInjectedText"] = 4] = "RightOfInjectedText"; +})(PositionAffinity || (PositionAffinity = {})); +var RenderLineNumbersType; +(function (RenderLineNumbersType) { + RenderLineNumbersType[RenderLineNumbersType["Off"] = 0] = "Off"; + RenderLineNumbersType[RenderLineNumbersType["On"] = 1] = "On"; + RenderLineNumbersType[RenderLineNumbersType["Relative"] = 2] = "Relative"; + RenderLineNumbersType[RenderLineNumbersType["Interval"] = 3] = "Interval"; + RenderLineNumbersType[RenderLineNumbersType["Custom"] = 4] = "Custom"; +})(RenderLineNumbersType || (RenderLineNumbersType = {})); +var RenderMinimap; +(function (RenderMinimap) { + RenderMinimap[RenderMinimap["None"] = 0] = "None"; + RenderMinimap[RenderMinimap["Text"] = 1] = "Text"; + RenderMinimap[RenderMinimap["Blocks"] = 2] = "Blocks"; +})(RenderMinimap || (RenderMinimap = {})); +var ScrollType; +(function (ScrollType) { + ScrollType[ScrollType["Smooth"] = 0] = "Smooth"; + ScrollType[ScrollType["Immediate"] = 1] = "Immediate"; +})(ScrollType || (ScrollType = {})); +var ScrollbarVisibility; +(function (ScrollbarVisibility) { + ScrollbarVisibility[ScrollbarVisibility["Auto"] = 1] = "Auto"; + ScrollbarVisibility[ScrollbarVisibility["Hidden"] = 2] = "Hidden"; + ScrollbarVisibility[ScrollbarVisibility["Visible"] = 3] = "Visible"; +})(ScrollbarVisibility || (ScrollbarVisibility = {})); +/** + * The direction of a selection. + */ +var SelectionDirection; +(function (SelectionDirection) { + /** + * The selection starts above where it ends. + */ + SelectionDirection[SelectionDirection["LTR"] = 0] = "LTR"; + /** + * The selection starts below where it ends. + */ + SelectionDirection[SelectionDirection["RTL"] = 1] = "RTL"; +})(SelectionDirection || (SelectionDirection = {})); +var standaloneEnums_SignatureHelpTriggerKind; +(function (SignatureHelpTriggerKind) { + SignatureHelpTriggerKind[SignatureHelpTriggerKind["Invoke"] = 1] = "Invoke"; + SignatureHelpTriggerKind[SignatureHelpTriggerKind["TriggerCharacter"] = 2] = "TriggerCharacter"; + SignatureHelpTriggerKind[SignatureHelpTriggerKind["ContentChange"] = 3] = "ContentChange"; +})(standaloneEnums_SignatureHelpTriggerKind || (standaloneEnums_SignatureHelpTriggerKind = {})); +/** + * A symbol kind. + */ +var SymbolKind; +(function (SymbolKind) { + SymbolKind[SymbolKind["File"] = 0] = "File"; + SymbolKind[SymbolKind["Module"] = 1] = "Module"; + SymbolKind[SymbolKind["Namespace"] = 2] = "Namespace"; + SymbolKind[SymbolKind["Package"] = 3] = "Package"; + SymbolKind[SymbolKind["Class"] = 4] = "Class"; + SymbolKind[SymbolKind["Method"] = 5] = "Method"; + SymbolKind[SymbolKind["Property"] = 6] = "Property"; + SymbolKind[SymbolKind["Field"] = 7] = "Field"; + SymbolKind[SymbolKind["Constructor"] = 8] = "Constructor"; + SymbolKind[SymbolKind["Enum"] = 9] = "Enum"; + SymbolKind[SymbolKind["Interface"] = 10] = "Interface"; + SymbolKind[SymbolKind["Function"] = 11] = "Function"; + SymbolKind[SymbolKind["Variable"] = 12] = "Variable"; + SymbolKind[SymbolKind["Constant"] = 13] = "Constant"; + SymbolKind[SymbolKind["String"] = 14] = "String"; + SymbolKind[SymbolKind["Number"] = 15] = "Number"; + SymbolKind[SymbolKind["Boolean"] = 16] = "Boolean"; + SymbolKind[SymbolKind["Array"] = 17] = "Array"; + SymbolKind[SymbolKind["Object"] = 18] = "Object"; + SymbolKind[SymbolKind["Key"] = 19] = "Key"; + SymbolKind[SymbolKind["Null"] = 20] = "Null"; + SymbolKind[SymbolKind["EnumMember"] = 21] = "EnumMember"; + SymbolKind[SymbolKind["Struct"] = 22] = "Struct"; + SymbolKind[SymbolKind["Event"] = 23] = "Event"; + SymbolKind[SymbolKind["Operator"] = 24] = "Operator"; + SymbolKind[SymbolKind["TypeParameter"] = 25] = "TypeParameter"; +})(SymbolKind || (SymbolKind = {})); +var SymbolTag; +(function (SymbolTag) { + SymbolTag[SymbolTag["Deprecated"] = 1] = "Deprecated"; +})(SymbolTag || (SymbolTag = {})); +/** + * The kind of animation in which the editor's cursor should be rendered. + */ +var TextEditorCursorBlinkingStyle; +(function (TextEditorCursorBlinkingStyle) { + /** + * Hidden + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Hidden"] = 0] = "Hidden"; + /** + * Blinking + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Blink"] = 1] = "Blink"; + /** + * Blinking with smooth fading + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Smooth"] = 2] = "Smooth"; + /** + * Blinking with prolonged filled state and smooth fading + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Phase"] = 3] = "Phase"; + /** + * Expand collapse animation on the y axis + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Expand"] = 4] = "Expand"; + /** + * No-Blinking + */ + TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle["Solid"] = 5] = "Solid"; +})(TextEditorCursorBlinkingStyle || (TextEditorCursorBlinkingStyle = {})); +/** + * The style in which the editor's cursor should be rendered. + */ +var TextEditorCursorStyle; +(function (TextEditorCursorStyle) { + /** + * As a vertical line (sitting between two characters). + */ + TextEditorCursorStyle[TextEditorCursorStyle["Line"] = 1] = "Line"; + /** + * As a block (sitting on top of a character). + */ + TextEditorCursorStyle[TextEditorCursorStyle["Block"] = 2] = "Block"; + /** + * As a horizontal line (sitting under a character). + */ + TextEditorCursorStyle[TextEditorCursorStyle["Underline"] = 3] = "Underline"; + /** + * As a thin vertical line (sitting between two characters). + */ + TextEditorCursorStyle[TextEditorCursorStyle["LineThin"] = 4] = "LineThin"; + /** + * As an outlined block (sitting on top of a character). + */ + TextEditorCursorStyle[TextEditorCursorStyle["BlockOutline"] = 5] = "BlockOutline"; + /** + * As a thin horizontal line (sitting under a character). + */ + TextEditorCursorStyle[TextEditorCursorStyle["UnderlineThin"] = 6] = "UnderlineThin"; +})(TextEditorCursorStyle || (TextEditorCursorStyle = {})); +/** + * Describes the behavior of decorations when typing/editing near their edges. + * Note: Please do not edit the values, as they very carefully match `DecorationRangeBehavior` + */ +var TrackedRangeStickiness; +(function (TrackedRangeStickiness) { + TrackedRangeStickiness[TrackedRangeStickiness["AlwaysGrowsWhenTypingAtEdges"] = 0] = "AlwaysGrowsWhenTypingAtEdges"; + TrackedRangeStickiness[TrackedRangeStickiness["NeverGrowsWhenTypingAtEdges"] = 1] = "NeverGrowsWhenTypingAtEdges"; + TrackedRangeStickiness[TrackedRangeStickiness["GrowsOnlyWhenTypingBefore"] = 2] = "GrowsOnlyWhenTypingBefore"; + TrackedRangeStickiness[TrackedRangeStickiness["GrowsOnlyWhenTypingAfter"] = 3] = "GrowsOnlyWhenTypingAfter"; +})(TrackedRangeStickiness || (TrackedRangeStickiness = {})); +/** + * Describes how to indent wrapped lines. + */ +var WrappingIndent; +(function (WrappingIndent) { + /** + * No indentation => wrapped lines begin at column 1. + */ + WrappingIndent[WrappingIndent["None"] = 0] = "None"; + /** + * Same => wrapped lines get the same indentation as the parent. + */ + WrappingIndent[WrappingIndent["Same"] = 1] = "Same"; + /** + * Indent => wrapped lines get +1 indentation toward the parent. + */ + WrappingIndent[WrappingIndent["Indent"] = 2] = "Indent"; + /** + * DeepIndent => wrapped lines get +2 indentation toward the parent. + */ + WrappingIndent[WrappingIndent["DeepIndent"] = 3] = "DeepIndent"; +})(WrappingIndent || (WrappingIndent = {})); + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/services/editorBaseApi.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + + + + + + + + + +class KeyMod { + static chord(firstPart, secondPart) { + return KeyChord(firstPart, secondPart); + } +} +KeyMod.CtrlCmd = 2048 /* ConstKeyMod.CtrlCmd */; +KeyMod.Shift = 1024 /* ConstKeyMod.Shift */; +KeyMod.Alt = 512 /* ConstKeyMod.Alt */; +KeyMod.WinCtrl = 256 /* ConstKeyMod.WinCtrl */; +function createMonacoBaseAPI() { + return { + editor: undefined, + languages: undefined, + CancellationTokenSource: CancellationTokenSource, + Emitter: Emitter, + KeyCode: KeyCode, + KeyMod: KeyMod, + Position: position_Position, + Range: range_Range, + Selection: Selection, + SelectionDirection: SelectionDirection, + MarkerSeverity: MarkerSeverity, + MarkerTag: MarkerTag, + Uri: uri_URI, + Token: Token + }; +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/core/wordCharacterClassifier.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +class WordCharacterClassifier extends CharacterClassifier { + constructor(wordSeparators) { + super(0 /* WordCharacterClass.Regular */); + for (let i = 0, len = wordSeparators.length; i < len; i++) { + this.set(wordSeparators.charCodeAt(i), 2 /* WordCharacterClass.WordSeparator */); + } + this.set(32 /* CharCode.Space */, 1 /* WordCharacterClass.Whitespace */); + this.set(9 /* CharCode.Tab */, 1 /* WordCharacterClass.Whitespace */); + } +} +function wordCharacterClassifier_once(computeFn) { + const cache = {}; // TODO@Alex unbounded cache + return (input) => { + if (!cache.hasOwnProperty(input)) { + cache[input] = computeFn(input); + } + return cache[input]; + }; +} +const wordCharacterClassifier_getMapForWordSeparators = wordCharacterClassifier_once((input) => new WordCharacterClassifier(input)); + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/base/common/objects.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +function deepClone(obj) { + if (!obj || typeof obj !== 'object') { + return obj; + } + if (obj instanceof RegExp) { + // See https://github.com/microsoft/TypeScript/issues/10990 + return obj; + } + const result = Array.isArray(obj) ? [] : {}; + Object.keys(obj).forEach((key) => { + if (obj[key] && typeof obj[key] === 'object') { + result[key] = deepClone(obj[key]); + } + else { + result[key] = obj[key]; + } + }); + return result; +} +function deepFreeze(obj) { + if (!obj || typeof obj !== 'object') { + return obj; + } + const stack = [obj]; + while (stack.length > 0) { + const obj = stack.shift(); + Object.freeze(obj); + for (const key in obj) { + if (_hasOwnProperty.call(obj, key)) { + const prop = obj[key]; + if (typeof prop === 'object' && !Object.isFrozen(prop) && !isTypedArray(prop)) { + stack.push(prop); + } + } + } + } + return obj; +} +const _hasOwnProperty = Object.prototype.hasOwnProperty; +function cloneAndChange(obj, changer) { + return _cloneAndChange(obj, changer, new Set()); +} +function _cloneAndChange(obj, changer, seen) { + if (isUndefinedOrNull(obj)) { + return obj; + } + const changed = changer(obj); + if (typeof changed !== 'undefined') { + return changed; + } + if (isArray(obj)) { + const r1 = []; + for (const e of obj) { + r1.push(_cloneAndChange(e, changer, seen)); + } + return r1; + } + if (isObject(obj)) { + if (seen.has(obj)) { + throw new Error('Cannot clone recursive data-structure'); + } + seen.add(obj); + const r2 = {}; + for (const i2 in obj) { + if (_hasOwnProperty.call(obj, i2)) { + r2[i2] = _cloneAndChange(obj[i2], changer, seen); + } + } + seen.delete(obj); + return r2; + } + return obj; +} +/** + * Copies all properties of source into destination. The optional parameter "overwrite" allows to control + * if existing properties on the destination should be overwritten or not. Defaults to true (overwrite). + */ +function mixin(destination, source, overwrite = true) { + if (!isObject(destination)) { + return source; + } + if (isObject(source)) { + Object.keys(source).forEach(key => { + if (key in destination) { + if (overwrite) { + if (isObject(destination[key]) && isObject(source[key])) { + mixin(destination[key], source[key], overwrite); + } + else { + destination[key] = source[key]; + } + } + } + else { + destination[key] = source[key]; + } + }); + } + return destination; +} +function objects_equals(one, other) { + if (one === other) { + return true; + } + if (one === null || one === undefined || other === null || other === undefined) { + return false; + } + if (typeof one !== typeof other) { + return false; + } + if (typeof one !== 'object') { + return false; + } + if ((Array.isArray(one)) !== (Array.isArray(other))) { + return false; + } + let i; + let key; + if (Array.isArray(one)) { + if (one.length !== other.length) { + return false; + } + for (i = 0; i < one.length; i++) { + if (!objects_equals(one[i], other[i])) { + return false; + } + } + } + else { + const oneKeys = []; + for (key in one) { + oneKeys.push(key); + } + oneKeys.sort(); + const otherKeys = []; + for (key in other) { + otherKeys.push(key); + } + otherKeys.sort(); + if (!objects_equals(oneKeys, otherKeys)) { + return false; + } + for (i = 0; i < oneKeys.length; i++) { + if (!objects_equals(one[oneKeys[i]], other[oneKeys[i]])) { + return false; + } + } + } + return true; +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/model.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +/** + * Vertical Lane in the overview ruler of the editor. + */ +var model_OverviewRulerLane; +(function (OverviewRulerLane) { + OverviewRulerLane[OverviewRulerLane["Left"] = 1] = "Left"; + OverviewRulerLane[OverviewRulerLane["Center"] = 2] = "Center"; + OverviewRulerLane[OverviewRulerLane["Right"] = 4] = "Right"; + OverviewRulerLane[OverviewRulerLane["Full"] = 7] = "Full"; +})(model_OverviewRulerLane || (model_OverviewRulerLane = {})); +/** + * Position in the minimap to render the decoration. + */ +var model_MinimapPosition; +(function (MinimapPosition) { + MinimapPosition[MinimapPosition["Inline"] = 1] = "Inline"; + MinimapPosition[MinimapPosition["Gutter"] = 2] = "Gutter"; +})(model_MinimapPosition || (model_MinimapPosition = {})); +var model_InjectedTextCursorStops; +(function (InjectedTextCursorStops) { + InjectedTextCursorStops[InjectedTextCursorStops["Both"] = 0] = "Both"; + InjectedTextCursorStops[InjectedTextCursorStops["Right"] = 1] = "Right"; + InjectedTextCursorStops[InjectedTextCursorStops["Left"] = 2] = "Left"; + InjectedTextCursorStops[InjectedTextCursorStops["None"] = 3] = "None"; +})(model_InjectedTextCursorStops || (model_InjectedTextCursorStops = {})); +class TextModelResolvedOptions { + /** + * @internal + */ + constructor(src) { + this._textModelResolvedOptionsBrand = undefined; + this.tabSize = Math.max(1, src.tabSize | 0); + this.indentSize = src.tabSize | 0; + this.insertSpaces = Boolean(src.insertSpaces); + this.defaultEOL = src.defaultEOL | 0; + this.trimAutoWhitespace = Boolean(src.trimAutoWhitespace); + this.bracketPairColorizationOptions = src.bracketPairColorizationOptions; + } + /** + * @internal + */ + equals(other) { + return (this.tabSize === other.tabSize + && this.indentSize === other.indentSize + && this.insertSpaces === other.insertSpaces + && this.defaultEOL === other.defaultEOL + && this.trimAutoWhitespace === other.trimAutoWhitespace + && equals(this.bracketPairColorizationOptions, other.bracketPairColorizationOptions)); + } + /** + * @internal + */ + createChangeEvent(newOpts) { + return { + tabSize: this.tabSize !== newOpts.tabSize, + indentSize: this.indentSize !== newOpts.indentSize, + insertSpaces: this.insertSpaces !== newOpts.insertSpaces, + trimAutoWhitespace: this.trimAutoWhitespace !== newOpts.trimAutoWhitespace, + }; + } +} +class model_FindMatch { + /** + * @internal + */ + constructor(range, matches) { + this._findMatchBrand = undefined; + this.range = range; + this.matches = matches; + } +} +/** + * @internal + */ +function isITextSnapshot(obj) { + return (obj && typeof obj.read === 'function'); +} +/** + * @internal + */ +class ValidAnnotatedEditOperation { + constructor(identifier, range, text, forceMoveMarkers, isAutoWhitespaceEdit, _isTracked) { + this.identifier = identifier; + this.range = range; + this.text = text; + this.forceMoveMarkers = forceMoveMarkers; + this.isAutoWhitespaceEdit = isAutoWhitespaceEdit; + this._isTracked = _isTracked; + } +} +/** + * @internal + */ +class model_SearchData { + constructor(regex, wordSeparators, simpleSearch) { + this.regex = regex; + this.wordSeparators = wordSeparators; + this.simpleSearch = simpleSearch; + } +} +/** + * @internal + */ +class ApplyEditsResult { + constructor(reverseEdits, changes, trimAutoWhitespaceLineNumbers) { + this.reverseEdits = reverseEdits; + this.changes = changes; + this.trimAutoWhitespaceLineNumbers = trimAutoWhitespaceLineNumbers; + } +} +/** + * @internal + */ +function shouldSynchronizeModel(model) { + return (!model.isTooLargeForSyncing() && !model.isForSimpleWidget); +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/model/textModelSearch.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + + + + + +const LIMIT_FIND_COUNT = 999; +class SearchParams { + constructor(searchString, isRegex, matchCase, wordSeparators) { + this.searchString = searchString; + this.isRegex = isRegex; + this.matchCase = matchCase; + this.wordSeparators = wordSeparators; + } + parseSearchRequest() { + if (this.searchString === '') { + return null; + } + // Try to create a RegExp out of the params + let multiline; + if (this.isRegex) { + multiline = isMultilineRegexSource(this.searchString); + } + else { + multiline = (this.searchString.indexOf('\n') >= 0); + } + let regex = null; + try { + regex = strings.createRegExp(this.searchString, this.isRegex, { + matchCase: this.matchCase, + wholeWord: false, + multiline: multiline, + global: true, + unicode: true + }); + } + catch (err) { + return null; + } + if (!regex) { + return null; + } + let canUseSimpleSearch = (!this.isRegex && !multiline); + if (canUseSimpleSearch && this.searchString.toLowerCase() !== this.searchString.toUpperCase()) { + // casing might make a difference + canUseSimpleSearch = this.matchCase; + } + return new SearchData(regex, this.wordSeparators ? getMapForWordSeparators(this.wordSeparators) : null, canUseSimpleSearch ? this.searchString : null); + } +} +function isMultilineRegexSource(searchString) { + if (!searchString || searchString.length === 0) { + return false; + } + for (let i = 0, len = searchString.length; i < len; i++) { + const chCode = searchString.charCodeAt(i); + if (chCode === 10 /* CharCode.LineFeed */) { + return true; + } + if (chCode === 92 /* CharCode.Backslash */) { + // move to next char + i++; + if (i >= len) { + // string ends with a \ + break; + } + const nextChCode = searchString.charCodeAt(i); + if (nextChCode === 110 /* CharCode.n */ || nextChCode === 114 /* CharCode.r */ || nextChCode === 87 /* CharCode.W */) { + return true; + } + } + } + return false; +} +function createFindMatch(range, rawMatches, captureMatches) { + if (!captureMatches) { + return new FindMatch(range, null); + } + const matches = []; + for (let i = 0, len = rawMatches.length; i < len; i++) { + matches[i] = rawMatches[i]; + } + return new FindMatch(range, matches); +} +class LineFeedCounter { + constructor(text) { + const lineFeedsOffsets = []; + let lineFeedsOffsetsLen = 0; + for (let i = 0, textLen = text.length; i < textLen; i++) { + if (text.charCodeAt(i) === 10 /* CharCode.LineFeed */) { + lineFeedsOffsets[lineFeedsOffsetsLen++] = i; + } + } + this._lineFeedsOffsets = lineFeedsOffsets; + } + findLineFeedCountBeforeOffset(offset) { + const lineFeedsOffsets = this._lineFeedsOffsets; + let min = 0; + let max = lineFeedsOffsets.length - 1; + if (max === -1) { + // no line feeds + return 0; + } + if (offset <= lineFeedsOffsets[0]) { + // before first line feed + return 0; + } + while (min < max) { + const mid = min + ((max - min) / 2 >> 0); + if (lineFeedsOffsets[mid] >= offset) { + max = mid - 1; + } + else { + if (lineFeedsOffsets[mid + 1] >= offset) { + // bingo! + min = mid; + max = mid; + } + else { + min = mid + 1; + } + } + } + return min + 1; + } +} +class TextModelSearch { + static findMatches(model, searchParams, searchRange, captureMatches, limitResultCount) { + const searchData = searchParams.parseSearchRequest(); + if (!searchData) { + return []; + } + if (searchData.regex.multiline) { + return this._doFindMatchesMultiline(model, searchRange, new Searcher(searchData.wordSeparators, searchData.regex), captureMatches, limitResultCount); + } + return this._doFindMatchesLineByLine(model, searchRange, searchData, captureMatches, limitResultCount); + } + /** + * Multiline search always executes on the lines concatenated with \n. + * We must therefore compensate for the count of \n in case the model is CRLF + */ + static _getMultilineMatchRange(model, deltaOffset, text, lfCounter, matchIndex, match0) { + let startOffset; + let lineFeedCountBeforeMatch = 0; + if (lfCounter) { + lineFeedCountBeforeMatch = lfCounter.findLineFeedCountBeforeOffset(matchIndex); + startOffset = deltaOffset + matchIndex + lineFeedCountBeforeMatch /* add as many \r as there were \n */; + } + else { + startOffset = deltaOffset + matchIndex; + } + let endOffset; + if (lfCounter) { + const lineFeedCountBeforeEndOfMatch = lfCounter.findLineFeedCountBeforeOffset(matchIndex + match0.length); + const lineFeedCountInMatch = lineFeedCountBeforeEndOfMatch - lineFeedCountBeforeMatch; + endOffset = startOffset + match0.length + lineFeedCountInMatch /* add as many \r as there were \n */; + } + else { + endOffset = startOffset + match0.length; + } + const startPosition = model.getPositionAt(startOffset); + const endPosition = model.getPositionAt(endOffset); + return new Range(startPosition.lineNumber, startPosition.column, endPosition.lineNumber, endPosition.column); + } + static _doFindMatchesMultiline(model, searchRange, searcher, captureMatches, limitResultCount) { + const deltaOffset = model.getOffsetAt(searchRange.getStartPosition()); + // We always execute multiline search over the lines joined with \n + // This makes it that \n will match the EOL for both CRLF and LF models + // We compensate for offset errors in `_getMultilineMatchRange` + const text = model.getValueInRange(searchRange, 1 /* EndOfLinePreference.LF */); + const lfCounter = (model.getEOL() === '\r\n' ? new LineFeedCounter(text) : null); + const result = []; + let counter = 0; + let m; + searcher.reset(0); + while ((m = searcher.next(text))) { + result[counter++] = createFindMatch(this._getMultilineMatchRange(model, deltaOffset, text, lfCounter, m.index, m[0]), m, captureMatches); + if (counter >= limitResultCount) { + return result; + } + } + return result; + } + static _doFindMatchesLineByLine(model, searchRange, searchData, captureMatches, limitResultCount) { + const result = []; + let resultLen = 0; + // Early case for a search range that starts & stops on the same line number + if (searchRange.startLineNumber === searchRange.endLineNumber) { + const text = model.getLineContent(searchRange.startLineNumber).substring(searchRange.startColumn - 1, searchRange.endColumn - 1); + resultLen = this._findMatchesInLine(searchData, text, searchRange.startLineNumber, searchRange.startColumn - 1, resultLen, result, captureMatches, limitResultCount); + return result; + } + // Collect results from first line + const text = model.getLineContent(searchRange.startLineNumber).substring(searchRange.startColumn - 1); + resultLen = this._findMatchesInLine(searchData, text, searchRange.startLineNumber, searchRange.startColumn - 1, resultLen, result, captureMatches, limitResultCount); + // Collect results from middle lines + for (let lineNumber = searchRange.startLineNumber + 1; lineNumber < searchRange.endLineNumber && resultLen < limitResultCount; lineNumber++) { + resultLen = this._findMatchesInLine(searchData, model.getLineContent(lineNumber), lineNumber, 0, resultLen, result, captureMatches, limitResultCount); + } + // Collect results from last line + if (resultLen < limitResultCount) { + const text = model.getLineContent(searchRange.endLineNumber).substring(0, searchRange.endColumn - 1); + resultLen = this._findMatchesInLine(searchData, text, searchRange.endLineNumber, 0, resultLen, result, captureMatches, limitResultCount); + } + return result; + } + static _findMatchesInLine(searchData, text, lineNumber, deltaOffset, resultLen, result, captureMatches, limitResultCount) { + const wordSeparators = searchData.wordSeparators; + if (!captureMatches && searchData.simpleSearch) { + const searchString = searchData.simpleSearch; + const searchStringLen = searchString.length; + const textLength = text.length; + let lastMatchIndex = -searchStringLen; + while ((lastMatchIndex = text.indexOf(searchString, lastMatchIndex + searchStringLen)) !== -1) { + if (!wordSeparators || isValidMatch(wordSeparators, text, textLength, lastMatchIndex, searchStringLen)) { + result[resultLen++] = new FindMatch(new Range(lineNumber, lastMatchIndex + 1 + deltaOffset, lineNumber, lastMatchIndex + 1 + searchStringLen + deltaOffset), null); + if (resultLen >= limitResultCount) { + return resultLen; + } + } + } + return resultLen; + } + const searcher = new Searcher(searchData.wordSeparators, searchData.regex); + let m; + // Reset regex to search from the beginning + searcher.reset(0); + do { + m = searcher.next(text); + if (m) { + result[resultLen++] = createFindMatch(new Range(lineNumber, m.index + 1 + deltaOffset, lineNumber, m.index + 1 + m[0].length + deltaOffset), m, captureMatches); + if (resultLen >= limitResultCount) { + return resultLen; + } + } + } while (m); + return resultLen; + } + static findNextMatch(model, searchParams, searchStart, captureMatches) { + const searchData = searchParams.parseSearchRequest(); + if (!searchData) { + return null; + } + const searcher = new Searcher(searchData.wordSeparators, searchData.regex); + if (searchData.regex.multiline) { + return this._doFindNextMatchMultiline(model, searchStart, searcher, captureMatches); + } + return this._doFindNextMatchLineByLine(model, searchStart, searcher, captureMatches); + } + static _doFindNextMatchMultiline(model, searchStart, searcher, captureMatches) { + const searchTextStart = new Position(searchStart.lineNumber, 1); + const deltaOffset = model.getOffsetAt(searchTextStart); + const lineCount = model.getLineCount(); + // We always execute multiline search over the lines joined with \n + // This makes it that \n will match the EOL for both CRLF and LF models + // We compensate for offset errors in `_getMultilineMatchRange` + const text = model.getValueInRange(new Range(searchTextStart.lineNumber, searchTextStart.column, lineCount, model.getLineMaxColumn(lineCount)), 1 /* EndOfLinePreference.LF */); + const lfCounter = (model.getEOL() === '\r\n' ? new LineFeedCounter(text) : null); + searcher.reset(searchStart.column - 1); + const m = searcher.next(text); + if (m) { + return createFindMatch(this._getMultilineMatchRange(model, deltaOffset, text, lfCounter, m.index, m[0]), m, captureMatches); + } + if (searchStart.lineNumber !== 1 || searchStart.column !== 1) { + // Try again from the top + return this._doFindNextMatchMultiline(model, new Position(1, 1), searcher, captureMatches); + } + return null; + } + static _doFindNextMatchLineByLine(model, searchStart, searcher, captureMatches) { + const lineCount = model.getLineCount(); + const startLineNumber = searchStart.lineNumber; + // Look in first line + const text = model.getLineContent(startLineNumber); + const r = this._findFirstMatchInLine(searcher, text, startLineNumber, searchStart.column, captureMatches); + if (r) { + return r; + } + for (let i = 1; i <= lineCount; i++) { + const lineIndex = (startLineNumber + i - 1) % lineCount; + const text = model.getLineContent(lineIndex + 1); + const r = this._findFirstMatchInLine(searcher, text, lineIndex + 1, 1, captureMatches); + if (r) { + return r; + } + } + return null; + } + static _findFirstMatchInLine(searcher, text, lineNumber, fromColumn, captureMatches) { + // Set regex to search from column + searcher.reset(fromColumn - 1); + const m = searcher.next(text); + if (m) { + return createFindMatch(new Range(lineNumber, m.index + 1, lineNumber, m.index + 1 + m[0].length), m, captureMatches); + } + return null; + } + static findPreviousMatch(model, searchParams, searchStart, captureMatches) { + const searchData = searchParams.parseSearchRequest(); + if (!searchData) { + return null; + } + const searcher = new Searcher(searchData.wordSeparators, searchData.regex); + if (searchData.regex.multiline) { + return this._doFindPreviousMatchMultiline(model, searchStart, searcher, captureMatches); + } + return this._doFindPreviousMatchLineByLine(model, searchStart, searcher, captureMatches); + } + static _doFindPreviousMatchMultiline(model, searchStart, searcher, captureMatches) { + const matches = this._doFindMatchesMultiline(model, new Range(1, 1, searchStart.lineNumber, searchStart.column), searcher, captureMatches, 10 * LIMIT_FIND_COUNT); + if (matches.length > 0) { + return matches[matches.length - 1]; + } + const lineCount = model.getLineCount(); + if (searchStart.lineNumber !== lineCount || searchStart.column !== model.getLineMaxColumn(lineCount)) { + // Try again with all content + return this._doFindPreviousMatchMultiline(model, new Position(lineCount, model.getLineMaxColumn(lineCount)), searcher, captureMatches); + } + return null; + } + static _doFindPreviousMatchLineByLine(model, searchStart, searcher, captureMatches) { + const lineCount = model.getLineCount(); + const startLineNumber = searchStart.lineNumber; + // Look in first line + const text = model.getLineContent(startLineNumber).substring(0, searchStart.column - 1); + const r = this._findLastMatchInLine(searcher, text, startLineNumber, captureMatches); + if (r) { + return r; + } + for (let i = 1; i <= lineCount; i++) { + const lineIndex = (lineCount + startLineNumber - i - 1) % lineCount; + const text = model.getLineContent(lineIndex + 1); + const r = this._findLastMatchInLine(searcher, text, lineIndex + 1, captureMatches); + if (r) { + return r; + } + } + return null; + } + static _findLastMatchInLine(searcher, text, lineNumber, captureMatches) { + let bestResult = null; + let m; + searcher.reset(0); + while ((m = searcher.next(text))) { + bestResult = createFindMatch(new Range(lineNumber, m.index + 1, lineNumber, m.index + 1 + m[0].length), m, captureMatches); + } + return bestResult; + } +} +function leftIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength) { + if (matchStartIndex === 0) { + // Match starts at start of string + return true; + } + const charBefore = text.charCodeAt(matchStartIndex - 1); + if (wordSeparators.get(charBefore) !== 0 /* WordCharacterClass.Regular */) { + // The character before the match is a word separator + return true; + } + if (charBefore === 13 /* CharCode.CarriageReturn */ || charBefore === 10 /* CharCode.LineFeed */) { + // The character before the match is line break or carriage return. + return true; + } + if (matchLength > 0) { + const firstCharInMatch = text.charCodeAt(matchStartIndex); + if (wordSeparators.get(firstCharInMatch) !== 0 /* WordCharacterClass.Regular */) { + // The first character inside the match is a word separator + return true; + } + } + return false; +} +function rightIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength) { + if (matchStartIndex + matchLength === textLength) { + // Match ends at end of string + return true; + } + const charAfter = text.charCodeAt(matchStartIndex + matchLength); + if (wordSeparators.get(charAfter) !== 0 /* WordCharacterClass.Regular */) { + // The character after the match is a word separator + return true; + } + if (charAfter === 13 /* CharCode.CarriageReturn */ || charAfter === 10 /* CharCode.LineFeed */) { + // The character after the match is line break or carriage return. + return true; + } + if (matchLength > 0) { + const lastCharInMatch = text.charCodeAt(matchStartIndex + matchLength - 1); + if (wordSeparators.get(lastCharInMatch) !== 0 /* WordCharacterClass.Regular */) { + // The last character in the match is a word separator + return true; + } + } + return false; +} +function isValidMatch(wordSeparators, text, textLength, matchStartIndex, matchLength) { + return (leftIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength) + && rightIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength)); +} +class Searcher { + constructor(wordSeparators, searchRegex) { + this._wordSeparators = wordSeparators; + this._searchRegex = searchRegex; + this._prevMatchStartIndex = -1; + this._prevMatchLength = 0; + } + reset(lastIndex) { + this._searchRegex.lastIndex = lastIndex; + this._prevMatchStartIndex = -1; + this._prevMatchLength = 0; + } + next(text) { + const textLength = text.length; + let m; + do { + if (this._prevMatchStartIndex + this._prevMatchLength === textLength) { + // Reached the end of the line + return null; + } + m = this._searchRegex.exec(text); + if (!m) { + return null; + } + const matchStartIndex = m.index; + const matchLength = m[0].length; + if (matchStartIndex === this._prevMatchStartIndex && matchLength === this._prevMatchLength) { + if (matchLength === 0) { + // the search result is an empty string and won't advance `regex.lastIndex`, so `regex.exec` will stuck here + // we attempt to recover from that by advancing by two if surrogate pair found and by one otherwise + if (getNextCodePoint(text, textLength, this._searchRegex.lastIndex) > 0xFFFF) { + this._searchRegex.lastIndex += 2; + } + else { + this._searchRegex.lastIndex += 1; + } + continue; + } + // Exit early if the regex matches the same range twice + return null; + } + this._prevMatchStartIndex = matchStartIndex; + this._prevMatchLength = matchLength; + if (!this._wordSeparators || isValidMatch(this._wordSeparators, text, textLength, matchStartIndex, matchLength)) { + return m; + } + } while (m); + return null; + } +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/services/unicodeTextModelHighlighter.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + + + + + +class UnicodeTextModelHighlighter { + static computeUnicodeHighlights(model, options, range) { + const startLine = range ? range.startLineNumber : 1; + const endLine = range ? range.endLineNumber : model.getLineCount(); + const codePointHighlighter = new CodePointHighlighter(options); + const candidates = codePointHighlighter.getCandidateCodePoints(); + let regex; + if (candidates === 'allNonBasicAscii') { + regex = new RegExp('[^\\t\\n\\r\\x20-\\x7E]', 'g'); + } + else { + regex = new RegExp(`${buildRegExpCharClassExpr(Array.from(candidates))}`, 'g'); + } + const searcher = new Searcher(null, regex); + const ranges = []; + let hasMore = false; + let m; + let ambiguousCharacterCount = 0; + let invisibleCharacterCount = 0; + let nonBasicAsciiCharacterCount = 0; + forLoop: for (let lineNumber = startLine, lineCount = endLine; lineNumber <= lineCount; lineNumber++) { + const lineContent = model.getLineContent(lineNumber); + const lineLength = lineContent.length; + // Reset regex to search from the beginning + searcher.reset(0); + do { + m = searcher.next(lineContent); + if (m) { + let startIndex = m.index; + let endIndex = m.index + m[0].length; + // Extend range to entire code point + if (startIndex > 0) { + const charCodeBefore = lineContent.charCodeAt(startIndex - 1); + if (isHighSurrogate(charCodeBefore)) { + startIndex--; + } + } + if (endIndex + 1 < lineLength) { + const charCodeBefore = lineContent.charCodeAt(endIndex - 1); + if (isHighSurrogate(charCodeBefore)) { + endIndex++; + } + } + const str = lineContent.substring(startIndex, endIndex); + const word = getWordAtText(startIndex + 1, DEFAULT_WORD_REGEXP, lineContent, 0); + const highlightReason = codePointHighlighter.shouldHighlightNonBasicASCII(str, word ? word.word : null); + if (highlightReason !== 0 /* SimpleHighlightReason.None */) { + if (highlightReason === 3 /* SimpleHighlightReason.Ambiguous */) { + ambiguousCharacterCount++; + } + else if (highlightReason === 2 /* SimpleHighlightReason.Invisible */) { + invisibleCharacterCount++; + } + else if (highlightReason === 1 /* SimpleHighlightReason.NonBasicASCII */) { + nonBasicAsciiCharacterCount++; + } + else { + assertNever(highlightReason); + } + const MAX_RESULT_LENGTH = 1000; + if (ranges.length >= MAX_RESULT_LENGTH) { + hasMore = true; + break forLoop; + } + ranges.push(new range_Range(lineNumber, startIndex + 1, lineNumber, endIndex + 1)); + } + } + } while (m); + } + return { + ranges, + hasMore, + ambiguousCharacterCount, + invisibleCharacterCount, + nonBasicAsciiCharacterCount + }; + } + static computeUnicodeHighlightReason(char, options) { + const codePointHighlighter = new CodePointHighlighter(options); + const reason = codePointHighlighter.shouldHighlightNonBasicASCII(char, null); + switch (reason) { + case 0 /* SimpleHighlightReason.None */: + return null; + case 2 /* SimpleHighlightReason.Invisible */: + return { kind: 1 /* UnicodeHighlighterReasonKind.Invisible */ }; + case 3 /* SimpleHighlightReason.Ambiguous */: { + const codePoint = char.codePointAt(0); + const primaryConfusable = codePointHighlighter.ambiguousCharacters.getPrimaryConfusable(codePoint); + const notAmbiguousInLocales = AmbiguousCharacters.getLocales().filter((l) => !AmbiguousCharacters.getInstance(new Set([...options.allowedLocales, l])).isAmbiguous(codePoint)); + return { kind: 0 /* UnicodeHighlighterReasonKind.Ambiguous */, confusableWith: String.fromCodePoint(primaryConfusable), notAmbiguousInLocales }; + } + case 1 /* SimpleHighlightReason.NonBasicASCII */: + return { kind: 2 /* UnicodeHighlighterReasonKind.NonBasicAscii */ }; + } + } +} +function buildRegExpCharClassExpr(codePoints, flags) { + const src = `[${escapeRegExpCharacters(codePoints.map((i) => String.fromCodePoint(i)).join(''))}]`; + return src; +} +class CodePointHighlighter { + constructor(options) { + this.options = options; + this.allowedCodePoints = new Set(options.allowedCodePoints); + this.ambiguousCharacters = AmbiguousCharacters.getInstance(new Set(options.allowedLocales)); + } + getCandidateCodePoints() { + if (this.options.nonBasicASCII) { + return 'allNonBasicAscii'; + } + const set = new Set(); + if (this.options.invisibleCharacters) { + for (const cp of InvisibleCharacters.codePoints) { + if (!isAllowedInvisibleCharacter(String.fromCodePoint(cp))) { + set.add(cp); + } + } + } + if (this.options.ambiguousCharacters) { + for (const cp of this.ambiguousCharacters.getConfusableCodePoints()) { + set.add(cp); + } + } + for (const cp of this.allowedCodePoints) { + set.delete(cp); + } + return set; + } + shouldHighlightNonBasicASCII(character, wordContext) { + const codePoint = character.codePointAt(0); + if (this.allowedCodePoints.has(codePoint)) { + return 0 /* SimpleHighlightReason.None */; + } + if (this.options.nonBasicASCII) { + return 1 /* SimpleHighlightReason.NonBasicASCII */; + } + let hasBasicASCIICharacters = false; + let hasNonConfusableNonBasicAsciiCharacter = false; + if (wordContext) { + for (const char of wordContext) { + const codePoint = char.codePointAt(0); + const isBasicASCII = strings_isBasicASCII(char); + hasBasicASCIICharacters = hasBasicASCIICharacters || isBasicASCII; + if (!isBasicASCII && + !this.ambiguousCharacters.isAmbiguous(codePoint) && + !InvisibleCharacters.isInvisibleCharacter(codePoint)) { + hasNonConfusableNonBasicAsciiCharacter = true; + } + } + } + if ( + /* Don't allow mixing weird looking characters with ASCII */ !hasBasicASCIICharacters && + /* Is there an obviously weird looking character? */ hasNonConfusableNonBasicAsciiCharacter) { + return 0 /* SimpleHighlightReason.None */; + } + if (this.options.invisibleCharacters) { + // TODO check for emojis + if (!isAllowedInvisibleCharacter(character) && InvisibleCharacters.isInvisibleCharacter(codePoint)) { + return 2 /* SimpleHighlightReason.Invisible */; + } + } + if (this.options.ambiguousCharacters) { + if (this.ambiguousCharacters.isAmbiguous(codePoint)) { + return 3 /* SimpleHighlightReason.Ambiguous */; + } + } + return 0 /* SimpleHighlightReason.None */; + } +} +function isAllowedInvisibleCharacter(character) { + return character === ' ' || character === '\n' || character === '\t'; +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/services/editorSimpleWorker.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +var editorSimpleWorker_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + + + + + + + + + + + +/** + * @internal + */ +class MirrorModel extends MirrorTextModel { + get uri() { + return this._uri; + } + get eol() { + return this._eol; + } + getValue() { + return this.getText(); + } + getLinesContent() { + return this._lines.slice(0); + } + getLineCount() { + return this._lines.length; + } + getLineContent(lineNumber) { + return this._lines[lineNumber - 1]; + } + getWordAtPosition(position, wordDefinition) { + const wordAtText = getWordAtText(position.column, ensureValidWordDefinition(wordDefinition), this._lines[position.lineNumber - 1], 0); + if (wordAtText) { + return new range_Range(position.lineNumber, wordAtText.startColumn, position.lineNumber, wordAtText.endColumn); + } + return null; + } + words(wordDefinition) { + const lines = this._lines; + const wordenize = this._wordenize.bind(this); + let lineNumber = 0; + let lineText = ''; + let wordRangesIdx = 0; + let wordRanges = []; + return { + *[Symbol.iterator]() { + while (true) { + if (wordRangesIdx < wordRanges.length) { + const value = lineText.substring(wordRanges[wordRangesIdx].start, wordRanges[wordRangesIdx].end); + wordRangesIdx += 1; + yield value; + } + else { + if (lineNumber < lines.length) { + lineText = lines[lineNumber]; + wordRanges = wordenize(lineText, wordDefinition); + wordRangesIdx = 0; + lineNumber += 1; + } + else { + break; + } + } + } + } + }; + } + getLineWords(lineNumber, wordDefinition) { + const content = this._lines[lineNumber - 1]; + const ranges = this._wordenize(content, wordDefinition); + const words = []; + for (const range of ranges) { + words.push({ + word: content.substring(range.start, range.end), + startColumn: range.start + 1, + endColumn: range.end + 1 + }); + } + return words; + } + _wordenize(content, wordDefinition) { + const result = []; + let match; + wordDefinition.lastIndex = 0; // reset lastIndex just to be sure + while (match = wordDefinition.exec(content)) { + if (match[0].length === 0) { + // it did match the empty string + break; + } + result.push({ start: match.index, end: match.index + match[0].length }); + } + return result; + } + getValueInRange(range) { + range = this._validateRange(range); + if (range.startLineNumber === range.endLineNumber) { + return this._lines[range.startLineNumber - 1].substring(range.startColumn - 1, range.endColumn - 1); + } + const lineEnding = this._eol; + const startLineIndex = range.startLineNumber - 1; + const endLineIndex = range.endLineNumber - 1; + const resultLines = []; + resultLines.push(this._lines[startLineIndex].substring(range.startColumn - 1)); + for (let i = startLineIndex + 1; i < endLineIndex; i++) { + resultLines.push(this._lines[i]); + } + resultLines.push(this._lines[endLineIndex].substring(0, range.endColumn - 1)); + return resultLines.join(lineEnding); + } + offsetAt(position) { + position = this._validatePosition(position); + this._ensureLineStarts(); + return this._lineStarts.getPrefixSum(position.lineNumber - 2) + (position.column - 1); + } + positionAt(offset) { + offset = Math.floor(offset); + offset = Math.max(0, offset); + this._ensureLineStarts(); + const out = this._lineStarts.getIndexOf(offset); + const lineLength = this._lines[out.index].length; + // Ensure we return a valid position + return { + lineNumber: 1 + out.index, + column: 1 + Math.min(out.remainder, lineLength) + }; + } + _validateRange(range) { + const start = this._validatePosition({ lineNumber: range.startLineNumber, column: range.startColumn }); + const end = this._validatePosition({ lineNumber: range.endLineNumber, column: range.endColumn }); + if (start.lineNumber !== range.startLineNumber + || start.column !== range.startColumn + || end.lineNumber !== range.endLineNumber + || end.column !== range.endColumn) { + return { + startLineNumber: start.lineNumber, + startColumn: start.column, + endLineNumber: end.lineNumber, + endColumn: end.column + }; + } + return range; + } + _validatePosition(position) { + if (!position_Position.isIPosition(position)) { + throw new Error('bad position'); + } + let { lineNumber, column } = position; + let hasChanged = false; + if (lineNumber < 1) { + lineNumber = 1; + column = 1; + hasChanged = true; + } + else if (lineNumber > this._lines.length) { + lineNumber = this._lines.length; + column = this._lines[lineNumber - 1].length + 1; + hasChanged = true; + } + else { + const maxCharacter = this._lines[lineNumber - 1].length + 1; + if (column < 1) { + column = 1; + hasChanged = true; + } + else if (column > maxCharacter) { + column = maxCharacter; + hasChanged = true; + } + } + if (!hasChanged) { + return position; + } + else { + return { lineNumber, column }; + } + } +} +/** + * @internal + */ +class EditorSimpleWorker { + constructor(host, foreignModuleFactory) { + this._host = host; + this._models = Object.create(null); + this._foreignModuleFactory = foreignModuleFactory; + this._foreignModule = null; + } + dispose() { + this._models = Object.create(null); + } + _getModel(uri) { + return this._models[uri]; + } + _getModels() { + const all = []; + Object.keys(this._models).forEach((key) => all.push(this._models[key])); + return all; + } + acceptNewModel(data) { + this._models[data.url] = new MirrorModel(uri_URI.parse(data.url), data.lines, data.EOL, data.versionId); + } + acceptModelChanged(strURL, e) { + if (!this._models[strURL]) { + return; + } + const model = this._models[strURL]; + model.onEvents(e); + } + acceptRemovedModel(strURL) { + if (!this._models[strURL]) { + return; + } + delete this._models[strURL]; + } + computeUnicodeHighlights(url, options, range) { + return editorSimpleWorker_awaiter(this, void 0, void 0, function* () { + const model = this._getModel(url); + if (!model) { + return { ranges: [], hasMore: false, ambiguousCharacterCount: 0, invisibleCharacterCount: 0, nonBasicAsciiCharacterCount: 0 }; + } + return UnicodeTextModelHighlighter.computeUnicodeHighlights(model, options, range); + }); + } + // ---- BEGIN diff -------------------------------------------------------------------------- + computeDiff(originalUrl, modifiedUrl, ignoreTrimWhitespace, maxComputationTime) { + return editorSimpleWorker_awaiter(this, void 0, void 0, function* () { + const original = this._getModel(originalUrl); + const modified = this._getModel(modifiedUrl); + if (!original || !modified) { + return null; + } + return EditorSimpleWorker.computeDiff(original, modified, ignoreTrimWhitespace, maxComputationTime); + }); + } + static computeDiff(originalTextModel, modifiedTextModel, ignoreTrimWhitespace, maxComputationTime) { + const originalLines = originalTextModel.getLinesContent(); + const modifiedLines = modifiedTextModel.getLinesContent(); + const diffComputer = new DiffComputer(originalLines, modifiedLines, { + shouldComputeCharChanges: true, + shouldPostProcessCharChanges: true, + shouldIgnoreTrimWhitespace: ignoreTrimWhitespace, + shouldMakePrettyDiff: true, + maxComputationTime: maxComputationTime + }); + const diffResult = diffComputer.computeDiff(); + const identical = (diffResult.changes.length > 0 ? false : this._modelsAreIdentical(originalTextModel, modifiedTextModel)); + return { + quitEarly: diffResult.quitEarly, + identical: identical, + changes: diffResult.changes + }; + } + static _modelsAreIdentical(original, modified) { + const originalLineCount = original.getLineCount(); + const modifiedLineCount = modified.getLineCount(); + if (originalLineCount !== modifiedLineCount) { + return false; + } + for (let line = 1; line <= originalLineCount; line++) { + const originalLine = original.getLineContent(line); + const modifiedLine = modified.getLineContent(line); + if (originalLine !== modifiedLine) { + return false; + } + } + return true; + } + computeMoreMinimalEdits(modelUrl, edits) { + return editorSimpleWorker_awaiter(this, void 0, void 0, function* () { + const model = this._getModel(modelUrl); + if (!model) { + return edits; + } + const result = []; + let lastEol = undefined; + edits = edits.slice(0).sort((a, b) => { + if (a.range && b.range) { + return range_Range.compareRangesUsingStarts(a.range, b.range); + } + // eol only changes should go to the end + const aRng = a.range ? 0 : 1; + const bRng = b.range ? 0 : 1; + return aRng - bRng; + }); + for (let { range, text, eol } of edits) { + if (typeof eol === 'number') { + lastEol = eol; + } + if (range_Range.isEmpty(range) && !text) { + // empty change + continue; + } + const original = model.getValueInRange(range); + text = text.replace(/\r\n|\n|\r/g, model.eol); + if (original === text) { + // noop + continue; + } + // make sure diff won't take too long + if (Math.max(text.length, original.length) > EditorSimpleWorker._diffLimit) { + result.push({ range, text }); + continue; + } + // compute diff between original and edit.text + const changes = stringDiff(original, text, false); + const editOffset = model.offsetAt(range_Range.lift(range).getStartPosition()); + for (const change of changes) { + const start = model.positionAt(editOffset + change.originalStart); + const end = model.positionAt(editOffset + change.originalStart + change.originalLength); + const newEdit = { + text: text.substr(change.modifiedStart, change.modifiedLength), + range: { startLineNumber: start.lineNumber, startColumn: start.column, endLineNumber: end.lineNumber, endColumn: end.column } + }; + if (model.getValueInRange(newEdit.range) !== newEdit.text) { + result.push(newEdit); + } + } + } + if (typeof lastEol === 'number') { + result.push({ eol: lastEol, text: '', range: { startLineNumber: 0, startColumn: 0, endLineNumber: 0, endColumn: 0 } }); + } + return result; + }); + } + // ---- END minimal edits --------------------------------------------------------------- + computeLinks(modelUrl) { + return editorSimpleWorker_awaiter(this, void 0, void 0, function* () { + const model = this._getModel(modelUrl); + if (!model) { + return null; + } + return computeLinks(model); + }); + } + textualSuggest(modelUrls, leadingWord, wordDef, wordDefFlags) { + return editorSimpleWorker_awaiter(this, void 0, void 0, function* () { + const sw = new StopWatch(true); + const wordDefRegExp = new RegExp(wordDef, wordDefFlags); + const seen = new Set(); + outer: for (const url of modelUrls) { + const model = this._getModel(url); + if (!model) { + continue; + } + for (const word of model.words(wordDefRegExp)) { + if (word === leadingWord || !isNaN(Number(word))) { + continue; + } + seen.add(word); + if (seen.size > EditorSimpleWorker._suggestionsLimit) { + break outer; + } + } + } + return { words: Array.from(seen), duration: sw.elapsed() }; + }); + } + // ---- END suggest -------------------------------------------------------------------------- + //#region -- word ranges -- + computeWordRanges(modelUrl, range, wordDef, wordDefFlags) { + return editorSimpleWorker_awaiter(this, void 0, void 0, function* () { + const model = this._getModel(modelUrl); + if (!model) { + return Object.create(null); + } + const wordDefRegExp = new RegExp(wordDef, wordDefFlags); + const result = Object.create(null); + for (let line = range.startLineNumber; line < range.endLineNumber; line++) { + const words = model.getLineWords(line, wordDefRegExp); + for (const word of words) { + if (!isNaN(Number(word.word))) { + continue; + } + let array = result[word.word]; + if (!array) { + array = []; + result[word.word] = array; + } + array.push({ + startLineNumber: line, + startColumn: word.startColumn, + endLineNumber: line, + endColumn: word.endColumn + }); + } + } + return result; + }); + } + //#endregion + navigateValueSet(modelUrl, range, up, wordDef, wordDefFlags) { + return editorSimpleWorker_awaiter(this, void 0, void 0, function* () { + const model = this._getModel(modelUrl); + if (!model) { + return null; + } + const wordDefRegExp = new RegExp(wordDef, wordDefFlags); + if (range.startColumn === range.endColumn) { + range = { + startLineNumber: range.startLineNumber, + startColumn: range.startColumn, + endLineNumber: range.endLineNumber, + endColumn: range.endColumn + 1 + }; + } + const selectionText = model.getValueInRange(range); + const wordRange = model.getWordAtPosition({ lineNumber: range.startLineNumber, column: range.startColumn }, wordDefRegExp); + if (!wordRange) { + return null; + } + const word = model.getValueInRange(wordRange); + const result = BasicInplaceReplace.INSTANCE.navigateValueSet(range, selectionText, wordRange, word, up); + return result; + }); + } + // ---- BEGIN foreign module support -------------------------------------------------------------------------- + loadForeignModule(moduleId, createData, foreignHostMethods) { + const proxyMethodRequest = (method, args) => { + return this._host.fhr(method, args); + }; + const foreignHost = createProxyObject(foreignHostMethods, proxyMethodRequest); + const ctx = { + host: foreignHost, + getMirrorModels: () => { + return this._getModels(); + } + }; + if (this._foreignModuleFactory) { + this._foreignModule = this._foreignModuleFactory(ctx, createData); + // static foreing module + return Promise.resolve(getAllMethodNames(this._foreignModule)); + } + // ESM-comment-begin + // return new Promise((resolve, reject) => { + // require([moduleId], (foreignModule: { create: IForeignModuleFactory }) => { + // this._foreignModule = foreignModule.create(ctx, createData); + // + // resolve(types.getAllMethodNames(this._foreignModule)); + // + // }, reject); + // }); + // ESM-comment-end + // ESM-uncomment-begin + return Promise.reject(new Error(`Unexpected usage`)); + // ESM-uncomment-end + } + // foreign method request + fmr(method, args) { + if (!this._foreignModule || typeof this._foreignModule[method] !== 'function') { + return Promise.reject(new Error('Missing requestHandler or method: ' + method)); + } + try { + return Promise.resolve(this._foreignModule[method].apply(this._foreignModule, args)); + } + catch (e) { + return Promise.reject(e); + } + } +} +// ---- END diff -------------------------------------------------------------------------- +// ---- BEGIN minimal edits --------------------------------------------------------------- +EditorSimpleWorker._diffLimit = 100000; +// ---- BEGIN suggest -------------------------------------------------------------------------- +EditorSimpleWorker._suggestionsLimit = 10000; +/** + * Called on the worker side + * @internal + */ +function editorSimpleWorker_create(host) { + return new EditorSimpleWorker(host, null); +} +if (typeof importScripts === 'function') { + // Running in a web worker + platform_globals.monaco = createMonacoBaseAPI(); +} + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/editor.worker.js +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + + +let initialized = false; +function initialize(foreignModule) { + if (initialized) { + return; + } + initialized = true; + const simpleWorker = new SimpleWorkerServer((msg) => { + self.postMessage(msg); + }, (host) => new EditorSimpleWorker(host, foreignModule)); + self.onmessage = (e) => { + simpleWorker.onmessage(e.data); + }; +} +self.onmessage = (e) => { + // Ignore first message in this case and initialize if not yet initialized + if (!initialized) { + initialize(null); + } +}; + +;// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/language/css/css.worker.js +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/language/css/css.worker.ts + + +// node_modules/vscode-css-languageservice/lib/esm/parser/cssScanner.js +var TokenType; +(function(TokenType2) { + TokenType2[TokenType2["Ident"] = 0] = "Ident"; + TokenType2[TokenType2["AtKeyword"] = 1] = "AtKeyword"; + TokenType2[TokenType2["String"] = 2] = "String"; + TokenType2[TokenType2["BadString"] = 3] = "BadString"; + TokenType2[TokenType2["UnquotedString"] = 4] = "UnquotedString"; + TokenType2[TokenType2["Hash"] = 5] = "Hash"; + TokenType2[TokenType2["Num"] = 6] = "Num"; + TokenType2[TokenType2["Percentage"] = 7] = "Percentage"; + TokenType2[TokenType2["Dimension"] = 8] = "Dimension"; + TokenType2[TokenType2["UnicodeRange"] = 9] = "UnicodeRange"; + TokenType2[TokenType2["CDO"] = 10] = "CDO"; + TokenType2[TokenType2["CDC"] = 11] = "CDC"; + TokenType2[TokenType2["Colon"] = 12] = "Colon"; + TokenType2[TokenType2["SemiColon"] = 13] = "SemiColon"; + TokenType2[TokenType2["CurlyL"] = 14] = "CurlyL"; + TokenType2[TokenType2["CurlyR"] = 15] = "CurlyR"; + TokenType2[TokenType2["ParenthesisL"] = 16] = "ParenthesisL"; + TokenType2[TokenType2["ParenthesisR"] = 17] = "ParenthesisR"; + TokenType2[TokenType2["BracketL"] = 18] = "BracketL"; + TokenType2[TokenType2["BracketR"] = 19] = "BracketR"; + TokenType2[TokenType2["Whitespace"] = 20] = "Whitespace"; + TokenType2[TokenType2["Includes"] = 21] = "Includes"; + TokenType2[TokenType2["Dashmatch"] = 22] = "Dashmatch"; + TokenType2[TokenType2["SubstringOperator"] = 23] = "SubstringOperator"; + TokenType2[TokenType2["PrefixOperator"] = 24] = "PrefixOperator"; + TokenType2[TokenType2["SuffixOperator"] = 25] = "SuffixOperator"; + TokenType2[TokenType2["Delim"] = 26] = "Delim"; + TokenType2[TokenType2["EMS"] = 27] = "EMS"; + TokenType2[TokenType2["EXS"] = 28] = "EXS"; + TokenType2[TokenType2["Length"] = 29] = "Length"; + TokenType2[TokenType2["Angle"] = 30] = "Angle"; + TokenType2[TokenType2["Time"] = 31] = "Time"; + TokenType2[TokenType2["Freq"] = 32] = "Freq"; + TokenType2[TokenType2["Exclamation"] = 33] = "Exclamation"; + TokenType2[TokenType2["Resolution"] = 34] = "Resolution"; + TokenType2[TokenType2["Comma"] = 35] = "Comma"; + TokenType2[TokenType2["Charset"] = 36] = "Charset"; + TokenType2[TokenType2["EscapedJavaScript"] = 37] = "EscapedJavaScript"; + TokenType2[TokenType2["BadEscapedJavaScript"] = 38] = "BadEscapedJavaScript"; + TokenType2[TokenType2["Comment"] = 39] = "Comment"; + TokenType2[TokenType2["SingleLineComment"] = 40] = "SingleLineComment"; + TokenType2[TokenType2["EOF"] = 41] = "EOF"; + TokenType2[TokenType2["CustomToken"] = 42] = "CustomToken"; +})(TokenType || (TokenType = {})); +var MultiLineStream = function() { + function MultiLineStream2(source) { + this.source = source; + this.len = source.length; + this.position = 0; + } + MultiLineStream2.prototype.substring = function(from, to) { + if (to === void 0) { + to = this.position; + } + return this.source.substring(from, to); + }; + MultiLineStream2.prototype.eos = function() { + return this.len <= this.position; + }; + MultiLineStream2.prototype.pos = function() { + return this.position; + }; + MultiLineStream2.prototype.goBackTo = function(pos) { + this.position = pos; + }; + MultiLineStream2.prototype.goBack = function(n) { + this.position -= n; + }; + MultiLineStream2.prototype.advance = function(n) { + this.position += n; + }; + MultiLineStream2.prototype.nextChar = function() { + return this.source.charCodeAt(this.position++) || 0; + }; + MultiLineStream2.prototype.peekChar = function(n) { + if (n === void 0) { + n = 0; + } + return this.source.charCodeAt(this.position + n) || 0; + }; + MultiLineStream2.prototype.lookbackChar = function(n) { + if (n === void 0) { + n = 0; + } + return this.source.charCodeAt(this.position - n) || 0; + }; + MultiLineStream2.prototype.advanceIfChar = function(ch) { + if (ch === this.source.charCodeAt(this.position)) { + this.position++; + return true; + } + return false; + }; + MultiLineStream2.prototype.advanceIfChars = function(ch) { + if (this.position + ch.length > this.source.length) { + return false; + } + var i = 0; + for (; i < ch.length; i++) { + if (this.source.charCodeAt(this.position + i) !== ch[i]) { + return false; + } + } + this.advance(i); + return true; + }; + MultiLineStream2.prototype.advanceWhileChar = function(condition) { + var posNow = this.position; + while (this.position < this.len && condition(this.source.charCodeAt(this.position))) { + this.position++; + } + return this.position - posNow; + }; + return MultiLineStream2; +}(); +var css_worker_a = "a".charCodeAt(0); +var _f = "f".charCodeAt(0); +var _z = "z".charCodeAt(0); +var _u = "u".charCodeAt(0); +var _A = "A".charCodeAt(0); +var _F = "F".charCodeAt(0); +var _Z = "Z".charCodeAt(0); +var _0 = "0".charCodeAt(0); +var _9 = "9".charCodeAt(0); +var _TLD = "~".charCodeAt(0); +var _HAT = "^".charCodeAt(0); +var _EQS = "=".charCodeAt(0); +var _PIP = "|".charCodeAt(0); +var _MIN = "-".charCodeAt(0); +var _USC = "_".charCodeAt(0); +var _PRC = "%".charCodeAt(0); +var _MUL = "*".charCodeAt(0); +var _LPA = "(".charCodeAt(0); +var _RPA = ")".charCodeAt(0); +var _LAN = "<".charCodeAt(0); +var _RAN = ">".charCodeAt(0); +var _ATS = "@".charCodeAt(0); +var _HSH = "#".charCodeAt(0); +var _DLR = "$".charCodeAt(0); +var _BSL = "\\".charCodeAt(0); +var _FSL = "/".charCodeAt(0); +var _NWL = "\n".charCodeAt(0); +var _CAR = "\r".charCodeAt(0); +var _LFD = "\f".charCodeAt(0); +var _DQO = '"'.charCodeAt(0); +var _SQO = "'".charCodeAt(0); +var _WSP = " ".charCodeAt(0); +var _TAB = " ".charCodeAt(0); +var _SEM = ";".charCodeAt(0); +var _COL = ":".charCodeAt(0); +var _CUL = "{".charCodeAt(0); +var _CUR = "}".charCodeAt(0); +var _BRL = "[".charCodeAt(0); +var _BRR = "]".charCodeAt(0); +var _CMA = ",".charCodeAt(0); +var _DOT = ".".charCodeAt(0); +var _BNG = "!".charCodeAt(0); +var _QSM = "?".charCodeAt(0); +var _PLS = "+".charCodeAt(0); +var staticTokenTable = {}; +staticTokenTable[_SEM] = TokenType.SemiColon; +staticTokenTable[_COL] = TokenType.Colon; +staticTokenTable[_CUL] = TokenType.CurlyL; +staticTokenTable[_CUR] = TokenType.CurlyR; +staticTokenTable[_BRR] = TokenType.BracketR; +staticTokenTable[_BRL] = TokenType.BracketL; +staticTokenTable[_LPA] = TokenType.ParenthesisL; +staticTokenTable[_RPA] = TokenType.ParenthesisR; +staticTokenTable[_CMA] = TokenType.Comma; +var staticUnitTable = {}; +staticUnitTable["em"] = TokenType.EMS; +staticUnitTable["ex"] = TokenType.EXS; +staticUnitTable["px"] = TokenType.Length; +staticUnitTable["cm"] = TokenType.Length; +staticUnitTable["mm"] = TokenType.Length; +staticUnitTable["in"] = TokenType.Length; +staticUnitTable["pt"] = TokenType.Length; +staticUnitTable["pc"] = TokenType.Length; +staticUnitTable["deg"] = TokenType.Angle; +staticUnitTable["rad"] = TokenType.Angle; +staticUnitTable["grad"] = TokenType.Angle; +staticUnitTable["ms"] = TokenType.Time; +staticUnitTable["s"] = TokenType.Time; +staticUnitTable["hz"] = TokenType.Freq; +staticUnitTable["khz"] = TokenType.Freq; +staticUnitTable["%"] = TokenType.Percentage; +staticUnitTable["fr"] = TokenType.Percentage; +staticUnitTable["dpi"] = TokenType.Resolution; +staticUnitTable["dpcm"] = TokenType.Resolution; +var Scanner = function() { + function Scanner2() { + this.stream = new MultiLineStream(""); + this.ignoreComment = true; + this.ignoreWhitespace = true; + this.inURL = false; + } + Scanner2.prototype.setSource = function(input) { + this.stream = new MultiLineStream(input); + }; + Scanner2.prototype.finishToken = function(offset, type, text) { + return { + offset, + len: this.stream.pos() - offset, + type, + text: text || this.stream.substring(offset) + }; + }; + Scanner2.prototype.substring = function(offset, len) { + return this.stream.substring(offset, offset + len); + }; + Scanner2.prototype.pos = function() { + return this.stream.pos(); + }; + Scanner2.prototype.goBackTo = function(pos) { + this.stream.goBackTo(pos); + }; + Scanner2.prototype.scanUnquotedString = function() { + var offset = this.stream.pos(); + var content = []; + if (this._unquotedString(content)) { + return this.finishToken(offset, TokenType.UnquotedString, content.join("")); + } + return null; + }; + Scanner2.prototype.scan = function() { + var triviaToken = this.trivia(); + if (triviaToken !== null) { + return triviaToken; + } + var offset = this.stream.pos(); + if (this.stream.eos()) { + return this.finishToken(offset, TokenType.EOF); + } + return this.scanNext(offset); + }; + Scanner2.prototype.tryScanUnicode = function() { + var offset = this.stream.pos(); + if (!this.stream.eos() && this._unicodeRange()) { + return this.finishToken(offset, TokenType.UnicodeRange); + } + this.stream.goBackTo(offset); + return void 0; + }; + Scanner2.prototype.scanNext = function(offset) { + if (this.stream.advanceIfChars([_LAN, _BNG, _MIN, _MIN])) { + return this.finishToken(offset, TokenType.CDO); + } + if (this.stream.advanceIfChars([_MIN, _MIN, _RAN])) { + return this.finishToken(offset, TokenType.CDC); + } + var content = []; + if (this.ident(content)) { + return this.finishToken(offset, TokenType.Ident, content.join("")); + } + if (this.stream.advanceIfChar(_ATS)) { + content = ["@"]; + if (this._name(content)) { + var keywordText = content.join(""); + if (keywordText === "@charset") { + return this.finishToken(offset, TokenType.Charset, keywordText); + } + return this.finishToken(offset, TokenType.AtKeyword, keywordText); + } else { + return this.finishToken(offset, TokenType.Delim); + } + } + if (this.stream.advanceIfChar(_HSH)) { + content = ["#"]; + if (this._name(content)) { + return this.finishToken(offset, TokenType.Hash, content.join("")); + } else { + return this.finishToken(offset, TokenType.Delim); + } + } + if (this.stream.advanceIfChar(_BNG)) { + return this.finishToken(offset, TokenType.Exclamation); + } + if (this._number()) { + var pos = this.stream.pos(); + content = [this.stream.substring(offset, pos)]; + if (this.stream.advanceIfChar(_PRC)) { + return this.finishToken(offset, TokenType.Percentage); + } else if (this.ident(content)) { + var dim = this.stream.substring(pos).toLowerCase(); + var tokenType_1 = staticUnitTable[dim]; + if (typeof tokenType_1 !== "undefined") { + return this.finishToken(offset, tokenType_1, content.join("")); + } else { + return this.finishToken(offset, TokenType.Dimension, content.join("")); + } + } + return this.finishToken(offset, TokenType.Num); + } + content = []; + var tokenType = this._string(content); + if (tokenType !== null) { + return this.finishToken(offset, tokenType, content.join("")); + } + tokenType = staticTokenTable[this.stream.peekChar()]; + if (typeof tokenType !== "undefined") { + this.stream.advance(1); + return this.finishToken(offset, tokenType); + } + if (this.stream.peekChar(0) === _TLD && this.stream.peekChar(1) === _EQS) { + this.stream.advance(2); + return this.finishToken(offset, TokenType.Includes); + } + if (this.stream.peekChar(0) === _PIP && this.stream.peekChar(1) === _EQS) { + this.stream.advance(2); + return this.finishToken(offset, TokenType.Dashmatch); + } + if (this.stream.peekChar(0) === _MUL && this.stream.peekChar(1) === _EQS) { + this.stream.advance(2); + return this.finishToken(offset, TokenType.SubstringOperator); + } + if (this.stream.peekChar(0) === _HAT && this.stream.peekChar(1) === _EQS) { + this.stream.advance(2); + return this.finishToken(offset, TokenType.PrefixOperator); + } + if (this.stream.peekChar(0) === _DLR && this.stream.peekChar(1) === _EQS) { + this.stream.advance(2); + return this.finishToken(offset, TokenType.SuffixOperator); + } + this.stream.nextChar(); + return this.finishToken(offset, TokenType.Delim); + }; + Scanner2.prototype.trivia = function() { + while (true) { + var offset = this.stream.pos(); + if (this._whitespace()) { + if (!this.ignoreWhitespace) { + return this.finishToken(offset, TokenType.Whitespace); + } + } else if (this.comment()) { + if (!this.ignoreComment) { + return this.finishToken(offset, TokenType.Comment); + } + } else { + return null; + } + } + }; + Scanner2.prototype.comment = function() { + if (this.stream.advanceIfChars([_FSL, _MUL])) { + var success_1 = false, hot_1 = false; + this.stream.advanceWhileChar(function(ch) { + if (hot_1 && ch === _FSL) { + success_1 = true; + return false; + } + hot_1 = ch === _MUL; + return true; + }); + if (success_1) { + this.stream.advance(1); + } + return true; + } + return false; + }; + Scanner2.prototype._number = function() { + var npeek = 0, ch; + if (this.stream.peekChar() === _DOT) { + npeek = 1; + } + ch = this.stream.peekChar(npeek); + if (ch >= _0 && ch <= _9) { + this.stream.advance(npeek + 1); + this.stream.advanceWhileChar(function(ch2) { + return ch2 >= _0 && ch2 <= _9 || npeek === 0 && ch2 === _DOT; + }); + return true; + } + return false; + }; + Scanner2.prototype._newline = function(result) { + var ch = this.stream.peekChar(); + switch (ch) { + case _CAR: + case _LFD: + case _NWL: + this.stream.advance(1); + result.push(String.fromCharCode(ch)); + if (ch === _CAR && this.stream.advanceIfChar(_NWL)) { + result.push("\n"); + } + return true; + } + return false; + }; + Scanner2.prototype._escape = function(result, includeNewLines) { + var ch = this.stream.peekChar(); + if (ch === _BSL) { + this.stream.advance(1); + ch = this.stream.peekChar(); + var hexNumCount = 0; + while (hexNumCount < 6 && (ch >= _0 && ch <= _9 || ch >= css_worker_a && ch <= _f || ch >= _A && ch <= _F)) { + this.stream.advance(1); + ch = this.stream.peekChar(); + hexNumCount++; + } + if (hexNumCount > 0) { + try { + var hexVal = parseInt(this.stream.substring(this.stream.pos() - hexNumCount), 16); + if (hexVal) { + result.push(String.fromCharCode(hexVal)); + } + } catch (e) { + } + if (ch === _WSP || ch === _TAB) { + this.stream.advance(1); + } else { + this._newline([]); + } + return true; + } + if (ch !== _CAR && ch !== _LFD && ch !== _NWL) { + this.stream.advance(1); + result.push(String.fromCharCode(ch)); + return true; + } else if (includeNewLines) { + return this._newline(result); + } + } + return false; + }; + Scanner2.prototype._stringChar = function(closeQuote, result) { + var ch = this.stream.peekChar(); + if (ch !== 0 && ch !== closeQuote && ch !== _BSL && ch !== _CAR && ch !== _LFD && ch !== _NWL) { + this.stream.advance(1); + result.push(String.fromCharCode(ch)); + return true; + } + return false; + }; + Scanner2.prototype._string = function(result) { + if (this.stream.peekChar() === _SQO || this.stream.peekChar() === _DQO) { + var closeQuote = this.stream.nextChar(); + result.push(String.fromCharCode(closeQuote)); + while (this._stringChar(closeQuote, result) || this._escape(result, true)) { + } + if (this.stream.peekChar() === closeQuote) { + this.stream.nextChar(); + result.push(String.fromCharCode(closeQuote)); + return TokenType.String; + } else { + return TokenType.BadString; + } + } + return null; + }; + Scanner2.prototype._unquotedChar = function(result) { + var ch = this.stream.peekChar(); + if (ch !== 0 && ch !== _BSL && ch !== _SQO && ch !== _DQO && ch !== _LPA && ch !== _RPA && ch !== _WSP && ch !== _TAB && ch !== _NWL && ch !== _LFD && ch !== _CAR) { + this.stream.advance(1); + result.push(String.fromCharCode(ch)); + return true; + } + return false; + }; + Scanner2.prototype._unquotedString = function(result) { + var hasContent = false; + while (this._unquotedChar(result) || this._escape(result)) { + hasContent = true; + } + return hasContent; + }; + Scanner2.prototype._whitespace = function() { + var n = this.stream.advanceWhileChar(function(ch) { + return ch === _WSP || ch === _TAB || ch === _NWL || ch === _LFD || ch === _CAR; + }); + return n > 0; + }; + Scanner2.prototype._name = function(result) { + var matched = false; + while (this._identChar(result) || this._escape(result)) { + matched = true; + } + return matched; + }; + Scanner2.prototype.ident = function(result) { + var pos = this.stream.pos(); + var hasMinus = this._minus(result); + if (hasMinus) { + if (this._minus(result) || this._identFirstChar(result) || this._escape(result)) { + while (this._identChar(result) || this._escape(result)) { + } + return true; + } + } else if (this._identFirstChar(result) || this._escape(result)) { + while (this._identChar(result) || this._escape(result)) { + } + return true; + } + this.stream.goBackTo(pos); + return false; + }; + Scanner2.prototype._identFirstChar = function(result) { + var ch = this.stream.peekChar(); + if (ch === _USC || ch >= css_worker_a && ch <= _z || ch >= _A && ch <= _Z || ch >= 128 && ch <= 65535) { + this.stream.advance(1); + result.push(String.fromCharCode(ch)); + return true; + } + return false; + }; + Scanner2.prototype._minus = function(result) { + var ch = this.stream.peekChar(); + if (ch === _MIN) { + this.stream.advance(1); + result.push(String.fromCharCode(ch)); + return true; + } + return false; + }; + Scanner2.prototype._identChar = function(result) { + var ch = this.stream.peekChar(); + if (ch === _USC || ch === _MIN || ch >= css_worker_a && ch <= _z || ch >= _A && ch <= _Z || ch >= _0 && ch <= _9 || ch >= 128 && ch <= 65535) { + this.stream.advance(1); + result.push(String.fromCharCode(ch)); + return true; + } + return false; + }; + Scanner2.prototype._unicodeRange = function() { + if (this.stream.advanceIfChar(_PLS)) { + var isHexDigit = function(ch) { + return ch >= _0 && ch <= _9 || ch >= css_worker_a && ch <= _f || ch >= _A && ch <= _F; + }; + var codePoints = this.stream.advanceWhileChar(isHexDigit) + this.stream.advanceWhileChar(function(ch) { + return ch === _QSM; + }); + if (codePoints >= 1 && codePoints <= 6) { + if (this.stream.advanceIfChar(_MIN)) { + var digits = this.stream.advanceWhileChar(isHexDigit); + if (digits >= 1 && digits <= 6) { + return true; + } + } else { + return true; + } + } + } + return false; + }; + return Scanner2; +}(); + +// node_modules/vscode-css-languageservice/lib/esm/utils/strings.js +function startsWith(haystack, needle) { + if (haystack.length < needle.length) { + return false; + } + for (var i = 0; i < needle.length; i++) { + if (haystack[i] !== needle[i]) { + return false; + } + } + return true; +} +function endsWith(haystack, needle) { + var diff = haystack.length - needle.length; + if (diff > 0) { + return haystack.lastIndexOf(needle) === diff; + } else if (diff === 0) { + return haystack === needle; + } else { + return false; + } +} +function difference(first, second, maxLenDelta) { + if (maxLenDelta === void 0) { + maxLenDelta = 4; + } + var lengthDifference = Math.abs(first.length - second.length); + if (lengthDifference > maxLenDelta) { + return 0; + } + var LCS = []; + var zeroArray = []; + var i, j; + for (i = 0; i < second.length + 1; ++i) { + zeroArray.push(0); + } + for (i = 0; i < first.length + 1; ++i) { + LCS.push(zeroArray); + } + for (i = 1; i < first.length + 1; ++i) { + for (j = 1; j < second.length + 1; ++j) { + if (first[i - 1] === second[j - 1]) { + LCS[i][j] = LCS[i - 1][j - 1] + 1; + } else { + LCS[i][j] = Math.max(LCS[i - 1][j], LCS[i][j - 1]); + } + } + } + return LCS[first.length][second.length] - Math.sqrt(lengthDifference); +} +function getLimitedString(str, ellipsis) { + if (ellipsis === void 0) { + ellipsis = true; + } + if (!str) { + return ""; + } + if (str.length < 140) { + return str; + } + return str.slice(0, 140) + (ellipsis ? "\u2026" : ""); +} +function css_worker_trim(str, regexp) { + var m = regexp.exec(str); + if (m && m[0].length) { + return str.substr(0, str.length - m[0].length); + } + return str; +} +function repeat(value, count) { + var s = ""; + while (count > 0) { + if ((count & 1) === 1) { + s += value; + } + value += value; + count = count >>> 1; + } + return s; +} + +// node_modules/vscode-css-languageservice/lib/esm/parser/cssNodes.js +var __extends = function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +}(); +var NodeType; +(function(NodeType2) { + NodeType2[NodeType2["Undefined"] = 0] = "Undefined"; + NodeType2[NodeType2["Identifier"] = 1] = "Identifier"; + NodeType2[NodeType2["Stylesheet"] = 2] = "Stylesheet"; + NodeType2[NodeType2["Ruleset"] = 3] = "Ruleset"; + NodeType2[NodeType2["Selector"] = 4] = "Selector"; + NodeType2[NodeType2["SimpleSelector"] = 5] = "SimpleSelector"; + NodeType2[NodeType2["SelectorInterpolation"] = 6] = "SelectorInterpolation"; + NodeType2[NodeType2["SelectorCombinator"] = 7] = "SelectorCombinator"; + NodeType2[NodeType2["SelectorCombinatorParent"] = 8] = "SelectorCombinatorParent"; + NodeType2[NodeType2["SelectorCombinatorSibling"] = 9] = "SelectorCombinatorSibling"; + NodeType2[NodeType2["SelectorCombinatorAllSiblings"] = 10] = "SelectorCombinatorAllSiblings"; + NodeType2[NodeType2["SelectorCombinatorShadowPiercingDescendant"] = 11] = "SelectorCombinatorShadowPiercingDescendant"; + NodeType2[NodeType2["Page"] = 12] = "Page"; + NodeType2[NodeType2["PageBoxMarginBox"] = 13] = "PageBoxMarginBox"; + NodeType2[NodeType2["ClassSelector"] = 14] = "ClassSelector"; + NodeType2[NodeType2["IdentifierSelector"] = 15] = "IdentifierSelector"; + NodeType2[NodeType2["ElementNameSelector"] = 16] = "ElementNameSelector"; + NodeType2[NodeType2["PseudoSelector"] = 17] = "PseudoSelector"; + NodeType2[NodeType2["AttributeSelector"] = 18] = "AttributeSelector"; + NodeType2[NodeType2["Declaration"] = 19] = "Declaration"; + NodeType2[NodeType2["Declarations"] = 20] = "Declarations"; + NodeType2[NodeType2["Property"] = 21] = "Property"; + NodeType2[NodeType2["Expression"] = 22] = "Expression"; + NodeType2[NodeType2["BinaryExpression"] = 23] = "BinaryExpression"; + NodeType2[NodeType2["Term"] = 24] = "Term"; + NodeType2[NodeType2["Operator"] = 25] = "Operator"; + NodeType2[NodeType2["Value"] = 26] = "Value"; + NodeType2[NodeType2["StringLiteral"] = 27] = "StringLiteral"; + NodeType2[NodeType2["URILiteral"] = 28] = "URILiteral"; + NodeType2[NodeType2["EscapedValue"] = 29] = "EscapedValue"; + NodeType2[NodeType2["Function"] = 30] = "Function"; + NodeType2[NodeType2["NumericValue"] = 31] = "NumericValue"; + NodeType2[NodeType2["HexColorValue"] = 32] = "HexColorValue"; + NodeType2[NodeType2["RatioValue"] = 33] = "RatioValue"; + NodeType2[NodeType2["MixinDeclaration"] = 34] = "MixinDeclaration"; + NodeType2[NodeType2["MixinReference"] = 35] = "MixinReference"; + NodeType2[NodeType2["VariableName"] = 36] = "VariableName"; + NodeType2[NodeType2["VariableDeclaration"] = 37] = "VariableDeclaration"; + NodeType2[NodeType2["Prio"] = 38] = "Prio"; + NodeType2[NodeType2["Interpolation"] = 39] = "Interpolation"; + NodeType2[NodeType2["NestedProperties"] = 40] = "NestedProperties"; + NodeType2[NodeType2["ExtendsReference"] = 41] = "ExtendsReference"; + NodeType2[NodeType2["SelectorPlaceholder"] = 42] = "SelectorPlaceholder"; + NodeType2[NodeType2["Debug"] = 43] = "Debug"; + NodeType2[NodeType2["If"] = 44] = "If"; + NodeType2[NodeType2["Else"] = 45] = "Else"; + NodeType2[NodeType2["For"] = 46] = "For"; + NodeType2[NodeType2["Each"] = 47] = "Each"; + NodeType2[NodeType2["While"] = 48] = "While"; + NodeType2[NodeType2["MixinContentReference"] = 49] = "MixinContentReference"; + NodeType2[NodeType2["MixinContentDeclaration"] = 50] = "MixinContentDeclaration"; + NodeType2[NodeType2["Media"] = 51] = "Media"; + NodeType2[NodeType2["Keyframe"] = 52] = "Keyframe"; + NodeType2[NodeType2["FontFace"] = 53] = "FontFace"; + NodeType2[NodeType2["Import"] = 54] = "Import"; + NodeType2[NodeType2["Namespace"] = 55] = "Namespace"; + NodeType2[NodeType2["Invocation"] = 56] = "Invocation"; + NodeType2[NodeType2["FunctionDeclaration"] = 57] = "FunctionDeclaration"; + NodeType2[NodeType2["ReturnStatement"] = 58] = "ReturnStatement"; + NodeType2[NodeType2["MediaQuery"] = 59] = "MediaQuery"; + NodeType2[NodeType2["MediaCondition"] = 60] = "MediaCondition"; + NodeType2[NodeType2["MediaFeature"] = 61] = "MediaFeature"; + NodeType2[NodeType2["FunctionParameter"] = 62] = "FunctionParameter"; + NodeType2[NodeType2["FunctionArgument"] = 63] = "FunctionArgument"; + NodeType2[NodeType2["KeyframeSelector"] = 64] = "KeyframeSelector"; + NodeType2[NodeType2["ViewPort"] = 65] = "ViewPort"; + NodeType2[NodeType2["Document"] = 66] = "Document"; + NodeType2[NodeType2["AtApplyRule"] = 67] = "AtApplyRule"; + NodeType2[NodeType2["CustomPropertyDeclaration"] = 68] = "CustomPropertyDeclaration"; + NodeType2[NodeType2["CustomPropertySet"] = 69] = "CustomPropertySet"; + NodeType2[NodeType2["ListEntry"] = 70] = "ListEntry"; + NodeType2[NodeType2["Supports"] = 71] = "Supports"; + NodeType2[NodeType2["SupportsCondition"] = 72] = "SupportsCondition"; + NodeType2[NodeType2["NamespacePrefix"] = 73] = "NamespacePrefix"; + NodeType2[NodeType2["GridLine"] = 74] = "GridLine"; + NodeType2[NodeType2["Plugin"] = 75] = "Plugin"; + NodeType2[NodeType2["UnknownAtRule"] = 76] = "UnknownAtRule"; + NodeType2[NodeType2["Use"] = 77] = "Use"; + NodeType2[NodeType2["ModuleConfiguration"] = 78] = "ModuleConfiguration"; + NodeType2[NodeType2["Forward"] = 79] = "Forward"; + NodeType2[NodeType2["ForwardVisibility"] = 80] = "ForwardVisibility"; + NodeType2[NodeType2["Module"] = 81] = "Module"; + NodeType2[NodeType2["UnicodeRange"] = 82] = "UnicodeRange"; +})(NodeType || (NodeType = {})); +var ReferenceType; +(function(ReferenceType2) { + ReferenceType2[ReferenceType2["Mixin"] = 0] = "Mixin"; + ReferenceType2[ReferenceType2["Rule"] = 1] = "Rule"; + ReferenceType2[ReferenceType2["Variable"] = 2] = "Variable"; + ReferenceType2[ReferenceType2["Function"] = 3] = "Function"; + ReferenceType2[ReferenceType2["Keyframe"] = 4] = "Keyframe"; + ReferenceType2[ReferenceType2["Unknown"] = 5] = "Unknown"; + ReferenceType2[ReferenceType2["Module"] = 6] = "Module"; + ReferenceType2[ReferenceType2["Forward"] = 7] = "Forward"; + ReferenceType2[ReferenceType2["ForwardVisibility"] = 8] = "ForwardVisibility"; +})(ReferenceType || (ReferenceType = {})); +function getNodeAtOffset(node, offset) { + var candidate = null; + if (!node || offset < node.offset || offset > node.end) { + return null; + } + node.accept(function(node2) { + if (node2.offset === -1 && node2.length === -1) { + return true; + } + if (node2.offset <= offset && node2.end >= offset) { + if (!candidate) { + candidate = node2; + } else if (node2.length <= candidate.length) { + candidate = node2; + } + return true; + } + return false; + }); + return candidate; +} +function getNodePath(node, offset) { + var candidate = getNodeAtOffset(node, offset); + var path = []; + while (candidate) { + path.unshift(candidate); + candidate = candidate.parent; + } + return path; +} +function getParentDeclaration(node) { + var decl = node.findParent(NodeType.Declaration); + var value = decl && decl.getValue(); + if (value && value.encloses(node)) { + return decl; + } + return null; +} +var css_worker_Node = function() { + function Node2(offset, len, nodeType) { + if (offset === void 0) { + offset = -1; + } + if (len === void 0) { + len = -1; + } + this.parent = null; + this.offset = offset; + this.length = len; + if (nodeType) { + this.nodeType = nodeType; + } + } + Object.defineProperty(Node2.prototype, "end", { + get: function() { + return this.offset + this.length; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Node2.prototype, "type", { + get: function() { + return this.nodeType || NodeType.Undefined; + }, + set: function(type) { + this.nodeType = type; + }, + enumerable: false, + configurable: true + }); + Node2.prototype.getTextProvider = function() { + var node = this; + while (node && !node.textProvider) { + node = node.parent; + } + if (node) { + return node.textProvider; + } + return function() { + return "unknown"; + }; + }; + Node2.prototype.getText = function() { + return this.getTextProvider()(this.offset, this.length); + }; + Node2.prototype.matches = function(str) { + return this.length === str.length && this.getTextProvider()(this.offset, this.length) === str; + }; + Node2.prototype.startsWith = function(str) { + return this.length >= str.length && this.getTextProvider()(this.offset, str.length) === str; + }; + Node2.prototype.endsWith = function(str) { + return this.length >= str.length && this.getTextProvider()(this.end - str.length, str.length) === str; + }; + Node2.prototype.accept = function(visitor) { + if (visitor(this) && this.children) { + for (var _i = 0, _a2 = this.children; _i < _a2.length; _i++) { + var child = _a2[_i]; + child.accept(visitor); + } + } + }; + Node2.prototype.acceptVisitor = function(visitor) { + this.accept(visitor.visitNode.bind(visitor)); + }; + Node2.prototype.adoptChild = function(node, index) { + if (index === void 0) { + index = -1; + } + if (node.parent && node.parent.children) { + var idx = node.parent.children.indexOf(node); + if (idx >= 0) { + node.parent.children.splice(idx, 1); + } + } + node.parent = this; + var children = this.children; + if (!children) { + children = this.children = []; + } + if (index !== -1) { + children.splice(index, 0, node); + } else { + children.push(node); + } + return node; + }; + Node2.prototype.attachTo = function(parent, index) { + if (index === void 0) { + index = -1; + } + if (parent) { + parent.adoptChild(this, index); + } + return this; + }; + Node2.prototype.collectIssues = function(results) { + if (this.issues) { + results.push.apply(results, this.issues); + } + }; + Node2.prototype.addIssue = function(issue) { + if (!this.issues) { + this.issues = []; + } + this.issues.push(issue); + }; + Node2.prototype.hasIssue = function(rule) { + return Array.isArray(this.issues) && this.issues.some(function(i) { + return i.getRule() === rule; + }); + }; + Node2.prototype.isErroneous = function(recursive) { + if (recursive === void 0) { + recursive = false; + } + if (this.issues && this.issues.length > 0) { + return true; + } + return recursive && Array.isArray(this.children) && this.children.some(function(c) { + return c.isErroneous(true); + }); + }; + Node2.prototype.setNode = function(field, node, index) { + if (index === void 0) { + index = -1; + } + if (node) { + node.attachTo(this, index); + this[field] = node; + return true; + } + return false; + }; + Node2.prototype.addChild = function(node) { + if (node) { + if (!this.children) { + this.children = []; + } + node.attachTo(this); + this.updateOffsetAndLength(node); + return true; + } + return false; + }; + Node2.prototype.updateOffsetAndLength = function(node) { + if (node.offset < this.offset || this.offset === -1) { + this.offset = node.offset; + } + var nodeEnd = node.end; + if (nodeEnd > this.end || this.length === -1) { + this.length = nodeEnd - this.offset; + } + }; + Node2.prototype.hasChildren = function() { + return !!this.children && this.children.length > 0; + }; + Node2.prototype.getChildren = function() { + return this.children ? this.children.slice(0) : []; + }; + Node2.prototype.getChild = function(index) { + if (this.children && index < this.children.length) { + return this.children[index]; + } + return null; + }; + Node2.prototype.addChildren = function(nodes) { + for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) { + var node = nodes_1[_i]; + this.addChild(node); + } + }; + Node2.prototype.findFirstChildBeforeOffset = function(offset) { + if (this.children) { + var current = null; + for (var i = this.children.length - 1; i >= 0; i--) { + current = this.children[i]; + if (current.offset <= offset) { + return current; + } + } + } + return null; + }; + Node2.prototype.findChildAtOffset = function(offset, goDeep) { + var current = this.findFirstChildBeforeOffset(offset); + if (current && current.end >= offset) { + if (goDeep) { + return current.findChildAtOffset(offset, true) || current; + } + return current; + } + return null; + }; + Node2.prototype.encloses = function(candidate) { + return this.offset <= candidate.offset && this.offset + this.length >= candidate.offset + candidate.length; + }; + Node2.prototype.getParent = function() { + var result = this.parent; + while (result instanceof Nodelist) { + result = result.parent; + } + return result; + }; + Node2.prototype.findParent = function(type) { + var result = this; + while (result && result.type !== type) { + result = result.parent; + } + return result; + }; + Node2.prototype.findAParent = function() { + var types = []; + for (var _i = 0; _i < arguments.length; _i++) { + types[_i] = arguments[_i]; + } + var result = this; + while (result && !types.some(function(t) { + return result.type === t; + })) { + result = result.parent; + } + return result; + }; + Node2.prototype.setData = function(key, value) { + if (!this.options) { + this.options = {}; + } + this.options[key] = value; + }; + Node2.prototype.getData = function(key) { + if (!this.options || !this.options.hasOwnProperty(key)) { + return null; + } + return this.options[key]; + }; + return Node2; +}(); +var Nodelist = function(_super) { + __extends(Nodelist2, _super); + function Nodelist2(parent, index) { + if (index === void 0) { + index = -1; + } + var _this = _super.call(this, -1, -1) || this; + _this.attachTo(parent, index); + _this.offset = -1; + _this.length = -1; + return _this; + } + return Nodelist2; +}(css_worker_Node); +var UnicodeRange = function(_super) { + __extends(UnicodeRange2, _super); + function UnicodeRange2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(UnicodeRange2.prototype, "type", { + get: function() { + return NodeType.UnicodeRange; + }, + enumerable: false, + configurable: true + }); + UnicodeRange2.prototype.setRangeStart = function(rangeStart) { + return this.setNode("rangeStart", rangeStart); + }; + UnicodeRange2.prototype.getRangeStart = function() { + return this.rangeStart; + }; + UnicodeRange2.prototype.setRangeEnd = function(rangeEnd) { + return this.setNode("rangeEnd", rangeEnd); + }; + UnicodeRange2.prototype.getRangeEnd = function() { + return this.rangeEnd; + }; + return UnicodeRange2; +}(css_worker_Node); +var Identifier = function(_super) { + __extends(Identifier2, _super); + function Identifier2(offset, length) { + var _this = _super.call(this, offset, length) || this; + _this.isCustomProperty = false; + return _this; + } + Object.defineProperty(Identifier2.prototype, "type", { + get: function() { + return NodeType.Identifier; + }, + enumerable: false, + configurable: true + }); + Identifier2.prototype.containsInterpolation = function() { + return this.hasChildren(); + }; + return Identifier2; +}(css_worker_Node); +var Stylesheet = function(_super) { + __extends(Stylesheet2, _super); + function Stylesheet2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Stylesheet2.prototype, "type", { + get: function() { + return NodeType.Stylesheet; + }, + enumerable: false, + configurable: true + }); + return Stylesheet2; +}(css_worker_Node); +var Declarations = function(_super) { + __extends(Declarations2, _super); + function Declarations2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Declarations2.prototype, "type", { + get: function() { + return NodeType.Declarations; + }, + enumerable: false, + configurable: true + }); + return Declarations2; +}(css_worker_Node); +var BodyDeclaration = function(_super) { + __extends(BodyDeclaration2, _super); + function BodyDeclaration2(offset, length) { + return _super.call(this, offset, length) || this; + } + BodyDeclaration2.prototype.getDeclarations = function() { + return this.declarations; + }; + BodyDeclaration2.prototype.setDeclarations = function(decls) { + return this.setNode("declarations", decls); + }; + return BodyDeclaration2; +}(css_worker_Node); +var RuleSet = function(_super) { + __extends(RuleSet2, _super); + function RuleSet2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(RuleSet2.prototype, "type", { + get: function() { + return NodeType.Ruleset; + }, + enumerable: false, + configurable: true + }); + RuleSet2.prototype.getSelectors = function() { + if (!this.selectors) { + this.selectors = new Nodelist(this); + } + return this.selectors; + }; + RuleSet2.prototype.isNested = function() { + return !!this.parent && this.parent.findParent(NodeType.Declarations) !== null; + }; + return RuleSet2; +}(BodyDeclaration); +var Selector = function(_super) { + __extends(Selector2, _super); + function Selector2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Selector2.prototype, "type", { + get: function() { + return NodeType.Selector; + }, + enumerable: false, + configurable: true + }); + return Selector2; +}(css_worker_Node); +var SimpleSelector = function(_super) { + __extends(SimpleSelector2, _super); + function SimpleSelector2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(SimpleSelector2.prototype, "type", { + get: function() { + return NodeType.SimpleSelector; + }, + enumerable: false, + configurable: true + }); + return SimpleSelector2; +}(css_worker_Node); +var AtApplyRule = function(_super) { + __extends(AtApplyRule2, _super); + function AtApplyRule2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(AtApplyRule2.prototype, "type", { + get: function() { + return NodeType.AtApplyRule; + }, + enumerable: false, + configurable: true + }); + AtApplyRule2.prototype.setIdentifier = function(node) { + return this.setNode("identifier", node, 0); + }; + AtApplyRule2.prototype.getIdentifier = function() { + return this.identifier; + }; + AtApplyRule2.prototype.getName = function() { + return this.identifier ? this.identifier.getText() : ""; + }; + return AtApplyRule2; +}(css_worker_Node); +var AbstractDeclaration = function(_super) { + __extends(AbstractDeclaration2, _super); + function AbstractDeclaration2(offset, length) { + return _super.call(this, offset, length) || this; + } + return AbstractDeclaration2; +}(css_worker_Node); +var CustomPropertySet = function(_super) { + __extends(CustomPropertySet2, _super); + function CustomPropertySet2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(CustomPropertySet2.prototype, "type", { + get: function() { + return NodeType.CustomPropertySet; + }, + enumerable: false, + configurable: true + }); + return CustomPropertySet2; +}(BodyDeclaration); +var Declaration = function(_super) { + __extends(Declaration2, _super); + function Declaration2(offset, length) { + var _this = _super.call(this, offset, length) || this; + _this.property = null; + return _this; + } + Object.defineProperty(Declaration2.prototype, "type", { + get: function() { + return NodeType.Declaration; + }, + enumerable: false, + configurable: true + }); + Declaration2.prototype.setProperty = function(node) { + return this.setNode("property", node); + }; + Declaration2.prototype.getProperty = function() { + return this.property; + }; + Declaration2.prototype.getFullPropertyName = function() { + var propertyName = this.property ? this.property.getName() : "unknown"; + if (this.parent instanceof Declarations && this.parent.getParent() instanceof NestedProperties) { + var parentDecl = this.parent.getParent().getParent(); + if (parentDecl instanceof Declaration2) { + return parentDecl.getFullPropertyName() + propertyName; + } + } + return propertyName; + }; + Declaration2.prototype.getNonPrefixedPropertyName = function() { + var propertyName = this.getFullPropertyName(); + if (propertyName && propertyName.charAt(0) === "-") { + var vendorPrefixEnd = propertyName.indexOf("-", 1); + if (vendorPrefixEnd !== -1) { + return propertyName.substring(vendorPrefixEnd + 1); + } + } + return propertyName; + }; + Declaration2.prototype.setValue = function(value) { + return this.setNode("value", value); + }; + Declaration2.prototype.getValue = function() { + return this.value; + }; + Declaration2.prototype.setNestedProperties = function(value) { + return this.setNode("nestedProperties", value); + }; + Declaration2.prototype.getNestedProperties = function() { + return this.nestedProperties; + }; + return Declaration2; +}(AbstractDeclaration); +var CustomPropertyDeclaration = function(_super) { + __extends(CustomPropertyDeclaration2, _super); + function CustomPropertyDeclaration2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(CustomPropertyDeclaration2.prototype, "type", { + get: function() { + return NodeType.CustomPropertyDeclaration; + }, + enumerable: false, + configurable: true + }); + CustomPropertyDeclaration2.prototype.setPropertySet = function(value) { + return this.setNode("propertySet", value); + }; + CustomPropertyDeclaration2.prototype.getPropertySet = function() { + return this.propertySet; + }; + return CustomPropertyDeclaration2; +}(Declaration); +var Property = function(_super) { + __extends(Property2, _super); + function Property2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Property2.prototype, "type", { + get: function() { + return NodeType.Property; + }, + enumerable: false, + configurable: true + }); + Property2.prototype.setIdentifier = function(value) { + return this.setNode("identifier", value); + }; + Property2.prototype.getIdentifier = function() { + return this.identifier; + }; + Property2.prototype.getName = function() { + return css_worker_trim(this.getText(), /[_\+]+$/); + }; + Property2.prototype.isCustomProperty = function() { + return !!this.identifier && this.identifier.isCustomProperty; + }; + return Property2; +}(css_worker_Node); +var Invocation = function(_super) { + __extends(Invocation2, _super); + function Invocation2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Invocation2.prototype, "type", { + get: function() { + return NodeType.Invocation; + }, + enumerable: false, + configurable: true + }); + Invocation2.prototype.getArguments = function() { + if (!this.arguments) { + this.arguments = new Nodelist(this); + } + return this.arguments; + }; + return Invocation2; +}(css_worker_Node); +var Function = function(_super) { + __extends(Function2, _super); + function Function2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Function2.prototype, "type", { + get: function() { + return NodeType.Function; + }, + enumerable: false, + configurable: true + }); + Function2.prototype.setIdentifier = function(node) { + return this.setNode("identifier", node, 0); + }; + Function2.prototype.getIdentifier = function() { + return this.identifier; + }; + Function2.prototype.getName = function() { + return this.identifier ? this.identifier.getText() : ""; + }; + return Function2; +}(Invocation); +var FunctionParameter = function(_super) { + __extends(FunctionParameter2, _super); + function FunctionParameter2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(FunctionParameter2.prototype, "type", { + get: function() { + return NodeType.FunctionParameter; + }, + enumerable: false, + configurable: true + }); + FunctionParameter2.prototype.setIdentifier = function(node) { + return this.setNode("identifier", node, 0); + }; + FunctionParameter2.prototype.getIdentifier = function() { + return this.identifier; + }; + FunctionParameter2.prototype.getName = function() { + return this.identifier ? this.identifier.getText() : ""; + }; + FunctionParameter2.prototype.setDefaultValue = function(node) { + return this.setNode("defaultValue", node, 0); + }; + FunctionParameter2.prototype.getDefaultValue = function() { + return this.defaultValue; + }; + return FunctionParameter2; +}(css_worker_Node); +var FunctionArgument = function(_super) { + __extends(FunctionArgument2, _super); + function FunctionArgument2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(FunctionArgument2.prototype, "type", { + get: function() { + return NodeType.FunctionArgument; + }, + enumerable: false, + configurable: true + }); + FunctionArgument2.prototype.setIdentifier = function(node) { + return this.setNode("identifier", node, 0); + }; + FunctionArgument2.prototype.getIdentifier = function() { + return this.identifier; + }; + FunctionArgument2.prototype.getName = function() { + return this.identifier ? this.identifier.getText() : ""; + }; + FunctionArgument2.prototype.setValue = function(node) { + return this.setNode("value", node, 0); + }; + FunctionArgument2.prototype.getValue = function() { + return this.value; + }; + return FunctionArgument2; +}(css_worker_Node); +var IfStatement = function(_super) { + __extends(IfStatement2, _super); + function IfStatement2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(IfStatement2.prototype, "type", { + get: function() { + return NodeType.If; + }, + enumerable: false, + configurable: true + }); + IfStatement2.prototype.setExpression = function(node) { + return this.setNode("expression", node, 0); + }; + IfStatement2.prototype.setElseClause = function(elseClause) { + return this.setNode("elseClause", elseClause); + }; + return IfStatement2; +}(BodyDeclaration); +var ForStatement = function(_super) { + __extends(ForStatement2, _super); + function ForStatement2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(ForStatement2.prototype, "type", { + get: function() { + return NodeType.For; + }, + enumerable: false, + configurable: true + }); + ForStatement2.prototype.setVariable = function(node) { + return this.setNode("variable", node, 0); + }; + return ForStatement2; +}(BodyDeclaration); +var EachStatement = function(_super) { + __extends(EachStatement2, _super); + function EachStatement2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(EachStatement2.prototype, "type", { + get: function() { + return NodeType.Each; + }, + enumerable: false, + configurable: true + }); + EachStatement2.prototype.getVariables = function() { + if (!this.variables) { + this.variables = new Nodelist(this); + } + return this.variables; + }; + return EachStatement2; +}(BodyDeclaration); +var WhileStatement = function(_super) { + __extends(WhileStatement2, _super); + function WhileStatement2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(WhileStatement2.prototype, "type", { + get: function() { + return NodeType.While; + }, + enumerable: false, + configurable: true + }); + return WhileStatement2; +}(BodyDeclaration); +var ElseStatement = function(_super) { + __extends(ElseStatement2, _super); + function ElseStatement2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(ElseStatement2.prototype, "type", { + get: function() { + return NodeType.Else; + }, + enumerable: false, + configurable: true + }); + return ElseStatement2; +}(BodyDeclaration); +var FunctionDeclaration = function(_super) { + __extends(FunctionDeclaration2, _super); + function FunctionDeclaration2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(FunctionDeclaration2.prototype, "type", { + get: function() { + return NodeType.FunctionDeclaration; + }, + enumerable: false, + configurable: true + }); + FunctionDeclaration2.prototype.setIdentifier = function(node) { + return this.setNode("identifier", node, 0); + }; + FunctionDeclaration2.prototype.getIdentifier = function() { + return this.identifier; + }; + FunctionDeclaration2.prototype.getName = function() { + return this.identifier ? this.identifier.getText() : ""; + }; + FunctionDeclaration2.prototype.getParameters = function() { + if (!this.parameters) { + this.parameters = new Nodelist(this); + } + return this.parameters; + }; + return FunctionDeclaration2; +}(BodyDeclaration); +var ViewPort = function(_super) { + __extends(ViewPort2, _super); + function ViewPort2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(ViewPort2.prototype, "type", { + get: function() { + return NodeType.ViewPort; + }, + enumerable: false, + configurable: true + }); + return ViewPort2; +}(BodyDeclaration); +var FontFace = function(_super) { + __extends(FontFace2, _super); + function FontFace2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(FontFace2.prototype, "type", { + get: function() { + return NodeType.FontFace; + }, + enumerable: false, + configurable: true + }); + return FontFace2; +}(BodyDeclaration); +var NestedProperties = function(_super) { + __extends(NestedProperties2, _super); + function NestedProperties2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(NestedProperties2.prototype, "type", { + get: function() { + return NodeType.NestedProperties; + }, + enumerable: false, + configurable: true + }); + return NestedProperties2; +}(BodyDeclaration); +var Keyframe = function(_super) { + __extends(Keyframe2, _super); + function Keyframe2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Keyframe2.prototype, "type", { + get: function() { + return NodeType.Keyframe; + }, + enumerable: false, + configurable: true + }); + Keyframe2.prototype.setKeyword = function(keyword) { + return this.setNode("keyword", keyword, 0); + }; + Keyframe2.prototype.getKeyword = function() { + return this.keyword; + }; + Keyframe2.prototype.setIdentifier = function(node) { + return this.setNode("identifier", node, 0); + }; + Keyframe2.prototype.getIdentifier = function() { + return this.identifier; + }; + Keyframe2.prototype.getName = function() { + return this.identifier ? this.identifier.getText() : ""; + }; + return Keyframe2; +}(BodyDeclaration); +var KeyframeSelector = function(_super) { + __extends(KeyframeSelector2, _super); + function KeyframeSelector2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(KeyframeSelector2.prototype, "type", { + get: function() { + return NodeType.KeyframeSelector; + }, + enumerable: false, + configurable: true + }); + return KeyframeSelector2; +}(BodyDeclaration); +var Import = function(_super) { + __extends(Import2, _super); + function Import2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Import2.prototype, "type", { + get: function() { + return NodeType.Import; + }, + enumerable: false, + configurable: true + }); + Import2.prototype.setMedialist = function(node) { + if (node) { + node.attachTo(this); + return true; + } + return false; + }; + return Import2; +}(css_worker_Node); +var Use = function(_super) { + __extends(Use2, _super); + function Use2() { + return _super !== null && _super.apply(this, arguments) || this; + } + Object.defineProperty(Use2.prototype, "type", { + get: function() { + return NodeType.Use; + }, + enumerable: false, + configurable: true + }); + Use2.prototype.getParameters = function() { + if (!this.parameters) { + this.parameters = new Nodelist(this); + } + return this.parameters; + }; + Use2.prototype.setIdentifier = function(node) { + return this.setNode("identifier", node, 0); + }; + Use2.prototype.getIdentifier = function() { + return this.identifier; + }; + return Use2; +}(css_worker_Node); +var ModuleConfiguration = function(_super) { + __extends(ModuleConfiguration2, _super); + function ModuleConfiguration2() { + return _super !== null && _super.apply(this, arguments) || this; + } + Object.defineProperty(ModuleConfiguration2.prototype, "type", { + get: function() { + return NodeType.ModuleConfiguration; + }, + enumerable: false, + configurable: true + }); + ModuleConfiguration2.prototype.setIdentifier = function(node) { + return this.setNode("identifier", node, 0); + }; + ModuleConfiguration2.prototype.getIdentifier = function() { + return this.identifier; + }; + ModuleConfiguration2.prototype.getName = function() { + return this.identifier ? this.identifier.getText() : ""; + }; + ModuleConfiguration2.prototype.setValue = function(node) { + return this.setNode("value", node, 0); + }; + ModuleConfiguration2.prototype.getValue = function() { + return this.value; + }; + return ModuleConfiguration2; +}(css_worker_Node); +var Forward = function(_super) { + __extends(Forward2, _super); + function Forward2() { + return _super !== null && _super.apply(this, arguments) || this; + } + Object.defineProperty(Forward2.prototype, "type", { + get: function() { + return NodeType.Forward; + }, + enumerable: false, + configurable: true + }); + Forward2.prototype.setIdentifier = function(node) { + return this.setNode("identifier", node, 0); + }; + Forward2.prototype.getIdentifier = function() { + return this.identifier; + }; + Forward2.prototype.getMembers = function() { + if (!this.members) { + this.members = new Nodelist(this); + } + return this.members; + }; + Forward2.prototype.getParameters = function() { + if (!this.parameters) { + this.parameters = new Nodelist(this); + } + return this.parameters; + }; + return Forward2; +}(css_worker_Node); +var ForwardVisibility = function(_super) { + __extends(ForwardVisibility2, _super); + function ForwardVisibility2() { + return _super !== null && _super.apply(this, arguments) || this; + } + Object.defineProperty(ForwardVisibility2.prototype, "type", { + get: function() { + return NodeType.ForwardVisibility; + }, + enumerable: false, + configurable: true + }); + ForwardVisibility2.prototype.setIdentifier = function(node) { + return this.setNode("identifier", node, 0); + }; + ForwardVisibility2.prototype.getIdentifier = function() { + return this.identifier; + }; + return ForwardVisibility2; +}(css_worker_Node); +var Namespace = function(_super) { + __extends(Namespace2, _super); + function Namespace2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Namespace2.prototype, "type", { + get: function() { + return NodeType.Namespace; + }, + enumerable: false, + configurable: true + }); + return Namespace2; +}(css_worker_Node); +var Media = function(_super) { + __extends(Media2, _super); + function Media2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Media2.prototype, "type", { + get: function() { + return NodeType.Media; + }, + enumerable: false, + configurable: true + }); + return Media2; +}(BodyDeclaration); +var Supports = function(_super) { + __extends(Supports2, _super); + function Supports2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Supports2.prototype, "type", { + get: function() { + return NodeType.Supports; + }, + enumerable: false, + configurable: true + }); + return Supports2; +}(BodyDeclaration); +var Document = function(_super) { + __extends(Document2, _super); + function Document2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Document2.prototype, "type", { + get: function() { + return NodeType.Document; + }, + enumerable: false, + configurable: true + }); + return Document2; +}(BodyDeclaration); +var Medialist = function(_super) { + __extends(Medialist2, _super); + function Medialist2(offset, length) { + return _super.call(this, offset, length) || this; + } + Medialist2.prototype.getMediums = function() { + if (!this.mediums) { + this.mediums = new Nodelist(this); + } + return this.mediums; + }; + return Medialist2; +}(css_worker_Node); +var MediaQuery = function(_super) { + __extends(MediaQuery2, _super); + function MediaQuery2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(MediaQuery2.prototype, "type", { + get: function() { + return NodeType.MediaQuery; + }, + enumerable: false, + configurable: true + }); + return MediaQuery2; +}(css_worker_Node); +var MediaCondition = function(_super) { + __extends(MediaCondition2, _super); + function MediaCondition2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(MediaCondition2.prototype, "type", { + get: function() { + return NodeType.MediaCondition; + }, + enumerable: false, + configurable: true + }); + return MediaCondition2; +}(css_worker_Node); +var MediaFeature = function(_super) { + __extends(MediaFeature2, _super); + function MediaFeature2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(MediaFeature2.prototype, "type", { + get: function() { + return NodeType.MediaFeature; + }, + enumerable: false, + configurable: true + }); + return MediaFeature2; +}(css_worker_Node); +var SupportsCondition = function(_super) { + __extends(SupportsCondition2, _super); + function SupportsCondition2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(SupportsCondition2.prototype, "type", { + get: function() { + return NodeType.SupportsCondition; + }, + enumerable: false, + configurable: true + }); + return SupportsCondition2; +}(css_worker_Node); +var Page = function(_super) { + __extends(Page2, _super); + function Page2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Page2.prototype, "type", { + get: function() { + return NodeType.Page; + }, + enumerable: false, + configurable: true + }); + return Page2; +}(BodyDeclaration); +var PageBoxMarginBox = function(_super) { + __extends(PageBoxMarginBox2, _super); + function PageBoxMarginBox2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(PageBoxMarginBox2.prototype, "type", { + get: function() { + return NodeType.PageBoxMarginBox; + }, + enumerable: false, + configurable: true + }); + return PageBoxMarginBox2; +}(BodyDeclaration); +var Expression = function(_super) { + __extends(Expression2, _super); + function Expression2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Expression2.prototype, "type", { + get: function() { + return NodeType.Expression; + }, + enumerable: false, + configurable: true + }); + return Expression2; +}(css_worker_Node); +var BinaryExpression = function(_super) { + __extends(BinaryExpression2, _super); + function BinaryExpression2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(BinaryExpression2.prototype, "type", { + get: function() { + return NodeType.BinaryExpression; + }, + enumerable: false, + configurable: true + }); + BinaryExpression2.prototype.setLeft = function(left) { + return this.setNode("left", left); + }; + BinaryExpression2.prototype.getLeft = function() { + return this.left; + }; + BinaryExpression2.prototype.setRight = function(right) { + return this.setNode("right", right); + }; + BinaryExpression2.prototype.getRight = function() { + return this.right; + }; + BinaryExpression2.prototype.setOperator = function(value) { + return this.setNode("operator", value); + }; + BinaryExpression2.prototype.getOperator = function() { + return this.operator; + }; + return BinaryExpression2; +}(css_worker_Node); +var Term = function(_super) { + __extends(Term2, _super); + function Term2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Term2.prototype, "type", { + get: function() { + return NodeType.Term; + }, + enumerable: false, + configurable: true + }); + Term2.prototype.setOperator = function(value) { + return this.setNode("operator", value); + }; + Term2.prototype.getOperator = function() { + return this.operator; + }; + Term2.prototype.setExpression = function(value) { + return this.setNode("expression", value); + }; + Term2.prototype.getExpression = function() { + return this.expression; + }; + return Term2; +}(css_worker_Node); +var AttributeSelector = function(_super) { + __extends(AttributeSelector2, _super); + function AttributeSelector2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(AttributeSelector2.prototype, "type", { + get: function() { + return NodeType.AttributeSelector; + }, + enumerable: false, + configurable: true + }); + AttributeSelector2.prototype.setNamespacePrefix = function(value) { + return this.setNode("namespacePrefix", value); + }; + AttributeSelector2.prototype.getNamespacePrefix = function() { + return this.namespacePrefix; + }; + AttributeSelector2.prototype.setIdentifier = function(value) { + return this.setNode("identifier", value); + }; + AttributeSelector2.prototype.getIdentifier = function() { + return this.identifier; + }; + AttributeSelector2.prototype.setOperator = function(operator) { + return this.setNode("operator", operator); + }; + AttributeSelector2.prototype.getOperator = function() { + return this.operator; + }; + AttributeSelector2.prototype.setValue = function(value) { + return this.setNode("value", value); + }; + AttributeSelector2.prototype.getValue = function() { + return this.value; + }; + return AttributeSelector2; +}(css_worker_Node); +var Operator = function(_super) { + __extends(Operator2, _super); + function Operator2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Operator2.prototype, "type", { + get: function() { + return NodeType.Operator; + }, + enumerable: false, + configurable: true + }); + return Operator2; +}(css_worker_Node); +var HexColorValue = function(_super) { + __extends(HexColorValue2, _super); + function HexColorValue2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(HexColorValue2.prototype, "type", { + get: function() { + return NodeType.HexColorValue; + }, + enumerable: false, + configurable: true + }); + return HexColorValue2; +}(css_worker_Node); +var RatioValue = function(_super) { + __extends(RatioValue2, _super); + function RatioValue2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(RatioValue2.prototype, "type", { + get: function() { + return NodeType.RatioValue; + }, + enumerable: false, + configurable: true + }); + return RatioValue2; +}(css_worker_Node); +var _dot = ".".charCodeAt(0); +var _02 = "0".charCodeAt(0); +var _92 = "9".charCodeAt(0); +var NumericValue = function(_super) { + __extends(NumericValue2, _super); + function NumericValue2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(NumericValue2.prototype, "type", { + get: function() { + return NodeType.NumericValue; + }, + enumerable: false, + configurable: true + }); + NumericValue2.prototype.getValue = function() { + var raw = this.getText(); + var unitIdx = 0; + var code; + for (var i = 0, len = raw.length; i < len; i++) { + code = raw.charCodeAt(i); + if (!(_02 <= code && code <= _92 || code === _dot)) { + break; + } + unitIdx += 1; + } + return { + value: raw.substring(0, unitIdx), + unit: unitIdx < raw.length ? raw.substring(unitIdx) : void 0 + }; + }; + return NumericValue2; +}(css_worker_Node); +var VariableDeclaration = function(_super) { + __extends(VariableDeclaration2, _super); + function VariableDeclaration2(offset, length) { + var _this = _super.call(this, offset, length) || this; + _this.variable = null; + _this.value = null; + _this.needsSemicolon = true; + return _this; + } + Object.defineProperty(VariableDeclaration2.prototype, "type", { + get: function() { + return NodeType.VariableDeclaration; + }, + enumerable: false, + configurable: true + }); + VariableDeclaration2.prototype.setVariable = function(node) { + if (node) { + node.attachTo(this); + this.variable = node; + return true; + } + return false; + }; + VariableDeclaration2.prototype.getVariable = function() { + return this.variable; + }; + VariableDeclaration2.prototype.getName = function() { + return this.variable ? this.variable.getName() : ""; + }; + VariableDeclaration2.prototype.setValue = function(node) { + if (node) { + node.attachTo(this); + this.value = node; + return true; + } + return false; + }; + VariableDeclaration2.prototype.getValue = function() { + return this.value; + }; + return VariableDeclaration2; +}(AbstractDeclaration); +var Interpolation = function(_super) { + __extends(Interpolation2, _super); + function Interpolation2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Interpolation2.prototype, "type", { + get: function() { + return NodeType.Interpolation; + }, + enumerable: false, + configurable: true + }); + return Interpolation2; +}(css_worker_Node); +var Variable = function(_super) { + __extends(Variable2, _super); + function Variable2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(Variable2.prototype, "type", { + get: function() { + return NodeType.VariableName; + }, + enumerable: false, + configurable: true + }); + Variable2.prototype.getName = function() { + return this.getText(); + }; + return Variable2; +}(css_worker_Node); +var ExtendsReference = function(_super) { + __extends(ExtendsReference2, _super); + function ExtendsReference2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(ExtendsReference2.prototype, "type", { + get: function() { + return NodeType.ExtendsReference; + }, + enumerable: false, + configurable: true + }); + ExtendsReference2.prototype.getSelectors = function() { + if (!this.selectors) { + this.selectors = new Nodelist(this); + } + return this.selectors; + }; + return ExtendsReference2; +}(css_worker_Node); +var MixinContentReference = function(_super) { + __extends(MixinContentReference2, _super); + function MixinContentReference2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(MixinContentReference2.prototype, "type", { + get: function() { + return NodeType.MixinContentReference; + }, + enumerable: false, + configurable: true + }); + MixinContentReference2.prototype.getArguments = function() { + if (!this.arguments) { + this.arguments = new Nodelist(this); + } + return this.arguments; + }; + return MixinContentReference2; +}(css_worker_Node); +var MixinContentDeclaration = function(_super) { + __extends(MixinContentDeclaration2, _super); + function MixinContentDeclaration2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(MixinContentDeclaration2.prototype, "type", { + get: function() { + return NodeType.MixinContentReference; + }, + enumerable: false, + configurable: true + }); + MixinContentDeclaration2.prototype.getParameters = function() { + if (!this.parameters) { + this.parameters = new Nodelist(this); + } + return this.parameters; + }; + return MixinContentDeclaration2; +}(BodyDeclaration); +var MixinReference = function(_super) { + __extends(MixinReference2, _super); + function MixinReference2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(MixinReference2.prototype, "type", { + get: function() { + return NodeType.MixinReference; + }, + enumerable: false, + configurable: true + }); + MixinReference2.prototype.getNamespaces = function() { + if (!this.namespaces) { + this.namespaces = new Nodelist(this); + } + return this.namespaces; + }; + MixinReference2.prototype.setIdentifier = function(node) { + return this.setNode("identifier", node, 0); + }; + MixinReference2.prototype.getIdentifier = function() { + return this.identifier; + }; + MixinReference2.prototype.getName = function() { + return this.identifier ? this.identifier.getText() : ""; + }; + MixinReference2.prototype.getArguments = function() { + if (!this.arguments) { + this.arguments = new Nodelist(this); + } + return this.arguments; + }; + MixinReference2.prototype.setContent = function(node) { + return this.setNode("content", node); + }; + MixinReference2.prototype.getContent = function() { + return this.content; + }; + return MixinReference2; +}(css_worker_Node); +var MixinDeclaration = function(_super) { + __extends(MixinDeclaration2, _super); + function MixinDeclaration2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(MixinDeclaration2.prototype, "type", { + get: function() { + return NodeType.MixinDeclaration; + }, + enumerable: false, + configurable: true + }); + MixinDeclaration2.prototype.setIdentifier = function(node) { + return this.setNode("identifier", node, 0); + }; + MixinDeclaration2.prototype.getIdentifier = function() { + return this.identifier; + }; + MixinDeclaration2.prototype.getName = function() { + return this.identifier ? this.identifier.getText() : ""; + }; + MixinDeclaration2.prototype.getParameters = function() { + if (!this.parameters) { + this.parameters = new Nodelist(this); + } + return this.parameters; + }; + MixinDeclaration2.prototype.setGuard = function(node) { + if (node) { + node.attachTo(this); + this.guard = node; + } + return false; + }; + return MixinDeclaration2; +}(BodyDeclaration); +var UnknownAtRule = function(_super) { + __extends(UnknownAtRule2, _super); + function UnknownAtRule2(offset, length) { + return _super.call(this, offset, length) || this; + } + Object.defineProperty(UnknownAtRule2.prototype, "type", { + get: function() { + return NodeType.UnknownAtRule; + }, + enumerable: false, + configurable: true + }); + UnknownAtRule2.prototype.setAtRuleName = function(atRuleName) { + this.atRuleName = atRuleName; + }; + UnknownAtRule2.prototype.getAtRuleName = function() { + return this.atRuleName; + }; + return UnknownAtRule2; +}(BodyDeclaration); +var ListEntry = function(_super) { + __extends(ListEntry2, _super); + function ListEntry2() { + return _super !== null && _super.apply(this, arguments) || this; + } + Object.defineProperty(ListEntry2.prototype, "type", { + get: function() { + return NodeType.ListEntry; + }, + enumerable: false, + configurable: true + }); + ListEntry2.prototype.setKey = function(node) { + return this.setNode("key", node, 0); + }; + ListEntry2.prototype.setValue = function(node) { + return this.setNode("value", node, 1); + }; + return ListEntry2; +}(css_worker_Node); +var LessGuard = function(_super) { + __extends(LessGuard2, _super); + function LessGuard2() { + return _super !== null && _super.apply(this, arguments) || this; + } + LessGuard2.prototype.getConditions = function() { + if (!this.conditions) { + this.conditions = new Nodelist(this); + } + return this.conditions; + }; + return LessGuard2; +}(css_worker_Node); +var GuardCondition = function(_super) { + __extends(GuardCondition2, _super); + function GuardCondition2() { + return _super !== null && _super.apply(this, arguments) || this; + } + GuardCondition2.prototype.setVariable = function(node) { + return this.setNode("variable", node); + }; + return GuardCondition2; +}(css_worker_Node); +var Module = function(_super) { + __extends(Module3, _super); + function Module3() { + return _super !== null && _super.apply(this, arguments) || this; + } + Object.defineProperty(Module3.prototype, "type", { + get: function() { + return NodeType.Module; + }, + enumerable: false, + configurable: true + }); + Module3.prototype.setIdentifier = function(node) { + return this.setNode("identifier", node, 0); + }; + Module3.prototype.getIdentifier = function() { + return this.identifier; + }; + return Module3; +}(css_worker_Node); +var Level; +(function(Level2) { + Level2[Level2["Ignore"] = 1] = "Ignore"; + Level2[Level2["Warning"] = 2] = "Warning"; + Level2[Level2["Error"] = 4] = "Error"; +})(Level || (Level = {})); +var Marker = function() { + function Marker2(node, rule, level, message, offset, length) { + if (offset === void 0) { + offset = node.offset; + } + if (length === void 0) { + length = node.length; + } + this.node = node; + this.rule = rule; + this.level = level; + this.message = message || rule.message; + this.offset = offset; + this.length = length; + } + Marker2.prototype.getRule = function() { + return this.rule; + }; + Marker2.prototype.getLevel = function() { + return this.level; + }; + Marker2.prototype.getOffset = function() { + return this.offset; + }; + Marker2.prototype.getLength = function() { + return this.length; + }; + Marker2.prototype.getNode = function() { + return this.node; + }; + Marker2.prototype.getMessage = function() { + return this.message; + }; + return Marker2; +}(); +var ParseErrorCollector = function() { + function ParseErrorCollector2() { + this.entries = []; + } + ParseErrorCollector2.entries = function(node) { + var visitor = new ParseErrorCollector2(); + node.acceptVisitor(visitor); + return visitor.entries; + }; + ParseErrorCollector2.prototype.visitNode = function(node) { + if (node.isErroneous()) { + node.collectIssues(this.entries); + } + return true; + }; + return ParseErrorCollector2; +}(); + +// build/fillers/vscode-nls.ts +function css_worker_format(message, args) { + let result; + if (args.length === 0) { + result = message; + } else { + result = message.replace(/\{(\d+)\}/g, (match, rest) => { + let index = rest[0]; + return typeof args[index] !== "undefined" ? args[index] : match; + }); + } + return result; +} +function css_worker_localize(key, message, ...args) { + return css_worker_format(message, args); +} +function loadMessageBundle(file) { + return css_worker_localize; +} + +// node_modules/vscode-css-languageservice/lib/esm/parser/cssErrors.js +var localize2 = loadMessageBundle(); +var CSSIssueType = function() { + function CSSIssueType2(id, message) { + this.id = id; + this.message = message; + } + return CSSIssueType2; +}(); +var ParseError = { + NumberExpected: new CSSIssueType("css-numberexpected", localize2("expected.number", "number expected")), + ConditionExpected: new CSSIssueType("css-conditionexpected", localize2("expected.condt", "condition expected")), + RuleOrSelectorExpected: new CSSIssueType("css-ruleorselectorexpected", localize2("expected.ruleorselector", "at-rule or selector expected")), + DotExpected: new CSSIssueType("css-dotexpected", localize2("expected.dot", "dot expected")), + ColonExpected: new CSSIssueType("css-colonexpected", localize2("expected.colon", "colon expected")), + SemiColonExpected: new CSSIssueType("css-semicolonexpected", localize2("expected.semicolon", "semi-colon expected")), + TermExpected: new CSSIssueType("css-termexpected", localize2("expected.term", "term expected")), + ExpressionExpected: new CSSIssueType("css-expressionexpected", localize2("expected.expression", "expression expected")), + OperatorExpected: new CSSIssueType("css-operatorexpected", localize2("expected.operator", "operator expected")), + IdentifierExpected: new CSSIssueType("css-identifierexpected", localize2("expected.ident", "identifier expected")), + PercentageExpected: new CSSIssueType("css-percentageexpected", localize2("expected.percentage", "percentage expected")), + URIOrStringExpected: new CSSIssueType("css-uriorstringexpected", localize2("expected.uriorstring", "uri or string expected")), + URIExpected: new CSSIssueType("css-uriexpected", localize2("expected.uri", "URI expected")), + VariableNameExpected: new CSSIssueType("css-varnameexpected", localize2("expected.varname", "variable name expected")), + VariableValueExpected: new CSSIssueType("css-varvalueexpected", localize2("expected.varvalue", "variable value expected")), + PropertyValueExpected: new CSSIssueType("css-propertyvalueexpected", localize2("expected.propvalue", "property value expected")), + LeftCurlyExpected: new CSSIssueType("css-lcurlyexpected", localize2("expected.lcurly", "{ expected")), + RightCurlyExpected: new CSSIssueType("css-rcurlyexpected", localize2("expected.rcurly", "} expected")), + LeftSquareBracketExpected: new CSSIssueType("css-rbracketexpected", localize2("expected.lsquare", "[ expected")), + RightSquareBracketExpected: new CSSIssueType("css-lbracketexpected", localize2("expected.rsquare", "] expected")), + LeftParenthesisExpected: new CSSIssueType("css-lparentexpected", localize2("expected.lparen", "( expected")), + RightParenthesisExpected: new CSSIssueType("css-rparentexpected", localize2("expected.rparent", ") expected")), + CommaExpected: new CSSIssueType("css-commaexpected", localize2("expected.comma", "comma expected")), + PageDirectiveOrDeclarationExpected: new CSSIssueType("css-pagedirordeclexpected", localize2("expected.pagedirordecl", "page directive or declaraton expected")), + UnknownAtRule: new CSSIssueType("css-unknownatrule", localize2("unknown.atrule", "at-rule unknown")), + UnknownKeyword: new CSSIssueType("css-unknownkeyword", localize2("unknown.keyword", "unknown keyword")), + SelectorExpected: new CSSIssueType("css-selectorexpected", localize2("expected.selector", "selector expected")), + StringLiteralExpected: new CSSIssueType("css-stringliteralexpected", localize2("expected.stringliteral", "string literal expected")), + WhitespaceExpected: new CSSIssueType("css-whitespaceexpected", localize2("expected.whitespace", "whitespace expected")), + MediaQueryExpected: new CSSIssueType("css-mediaqueryexpected", localize2("expected.mediaquery", "media query expected")), + IdentifierOrWildcardExpected: new CSSIssueType("css-idorwildcardexpected", localize2("expected.idorwildcard", "identifier or wildcard expected")), + WildcardExpected: new CSSIssueType("css-wildcardexpected", localize2("expected.wildcard", "wildcard expected")), + IdentifierOrVariableExpected: new CSSIssueType("css-idorvarexpected", localize2("expected.idorvar", "identifier or variable expected")) +}; + +// node_modules/vscode-languageserver-types/lib/esm/main.js +var integer; +(function(integer2) { + integer2.MIN_VALUE = -2147483648; + integer2.MAX_VALUE = 2147483647; +})(integer || (integer = {})); +var uinteger; +(function(uinteger2) { + uinteger2.MIN_VALUE = 0; + uinteger2.MAX_VALUE = 2147483647; +})(uinteger || (uinteger = {})); +var css_worker_Position; +(function(Position2) { + function create(line, character) { + if (line === Number.MAX_VALUE) { + line = uinteger.MAX_VALUE; + } + if (character === Number.MAX_VALUE) { + character = uinteger.MAX_VALUE; + } + return { line, character }; + } + Position2.create = create; + function is(value) { + var candidate = value; + return Is.objectLiteral(candidate) && Is.uinteger(candidate.line) && Is.uinteger(candidate.character); + } + Position2.is = is; +})(css_worker_Position || (css_worker_Position = {})); +var css_worker_Range; +(function(Range2) { + function create(one, two, three, four) { + if (Is.uinteger(one) && Is.uinteger(two) && Is.uinteger(three) && Is.uinteger(four)) { + return { start: css_worker_Position.create(one, two), end: css_worker_Position.create(three, four) }; + } else if (css_worker_Position.is(one) && css_worker_Position.is(two)) { + return { start: one, end: two }; + } else { + throw new Error("Range#create called with invalid arguments[" + one + ", " + two + ", " + three + ", " + four + "]"); + } + } + Range2.create = create; + function is(value) { + var candidate = value; + return Is.objectLiteral(candidate) && css_worker_Position.is(candidate.start) && css_worker_Position.is(candidate.end); + } + Range2.is = is; +})(css_worker_Range || (css_worker_Range = {})); +var Location; +(function(Location2) { + function create(uri, range) { + return { uri, range }; + } + Location2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && css_worker_Range.is(candidate.range) && (Is.string(candidate.uri) || Is.undefined(candidate.uri)); + } + Location2.is = is; +})(Location || (Location = {})); +var LocationLink; +(function(LocationLink2) { + function create(targetUri, targetRange, targetSelectionRange, originSelectionRange) { + return { targetUri, targetRange, targetSelectionRange, originSelectionRange }; + } + LocationLink2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && css_worker_Range.is(candidate.targetRange) && Is.string(candidate.targetUri) && (css_worker_Range.is(candidate.targetSelectionRange) || Is.undefined(candidate.targetSelectionRange)) && (css_worker_Range.is(candidate.originSelectionRange) || Is.undefined(candidate.originSelectionRange)); + } + LocationLink2.is = is; +})(LocationLink || (LocationLink = {})); +var Color; +(function(Color2) { + function create(red, green, blue, alpha) { + return { + red, + green, + blue, + alpha + }; + } + Color2.create = create; + function is(value) { + var candidate = value; + return Is.numberRange(candidate.red, 0, 1) && Is.numberRange(candidate.green, 0, 1) && Is.numberRange(candidate.blue, 0, 1) && Is.numberRange(candidate.alpha, 0, 1); + } + Color2.is = is; +})(Color || (Color = {})); +var ColorInformation; +(function(ColorInformation2) { + function create(range, color) { + return { + range, + color + }; + } + ColorInformation2.create = create; + function is(value) { + var candidate = value; + return css_worker_Range.is(candidate.range) && Color.is(candidate.color); + } + ColorInformation2.is = is; +})(ColorInformation || (ColorInformation = {})); +var ColorPresentation; +(function(ColorPresentation2) { + function create(label, textEdit, additionalTextEdits) { + return { + label, + textEdit, + additionalTextEdits + }; + } + ColorPresentation2.create = create; + function is(value) { + var candidate = value; + return Is.string(candidate.label) && (Is.undefined(candidate.textEdit) || TextEdit.is(candidate)) && (Is.undefined(candidate.additionalTextEdits) || Is.typedArray(candidate.additionalTextEdits, TextEdit.is)); + } + ColorPresentation2.is = is; +})(ColorPresentation || (ColorPresentation = {})); +var css_worker_FoldingRangeKind; +(function(FoldingRangeKind2) { + FoldingRangeKind2["Comment"] = "comment"; + FoldingRangeKind2["Imports"] = "imports"; + FoldingRangeKind2["Region"] = "region"; +})(css_worker_FoldingRangeKind || (css_worker_FoldingRangeKind = {})); +var FoldingRange; +(function(FoldingRange2) { + function create(startLine, endLine, startCharacter, endCharacter, kind) { + var result = { + startLine, + endLine + }; + if (Is.defined(startCharacter)) { + result.startCharacter = startCharacter; + } + if (Is.defined(endCharacter)) { + result.endCharacter = endCharacter; + } + if (Is.defined(kind)) { + result.kind = kind; + } + return result; + } + FoldingRange2.create = create; + function is(value) { + var candidate = value; + return Is.uinteger(candidate.startLine) && Is.uinteger(candidate.startLine) && (Is.undefined(candidate.startCharacter) || Is.uinteger(candidate.startCharacter)) && (Is.undefined(candidate.endCharacter) || Is.uinteger(candidate.endCharacter)) && (Is.undefined(candidate.kind) || Is.string(candidate.kind)); + } + FoldingRange2.is = is; +})(FoldingRange || (FoldingRange = {})); +var DiagnosticRelatedInformation; +(function(DiagnosticRelatedInformation2) { + function create(location, message) { + return { + location, + message + }; + } + DiagnosticRelatedInformation2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message); + } + DiagnosticRelatedInformation2.is = is; +})(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {})); +var DiagnosticSeverity; +(function(DiagnosticSeverity2) { + DiagnosticSeverity2.Error = 1; + DiagnosticSeverity2.Warning = 2; + DiagnosticSeverity2.Information = 3; + DiagnosticSeverity2.Hint = 4; +})(DiagnosticSeverity || (DiagnosticSeverity = {})); +var DiagnosticTag; +(function(DiagnosticTag2) { + DiagnosticTag2.Unnecessary = 1; + DiagnosticTag2.Deprecated = 2; +})(DiagnosticTag || (DiagnosticTag = {})); +var CodeDescription; +(function(CodeDescription2) { + function is(value) { + var candidate = value; + return candidate !== void 0 && candidate !== null && Is.string(candidate.href); + } + CodeDescription2.is = is; +})(CodeDescription || (CodeDescription = {})); +var Diagnostic; +(function(Diagnostic2) { + function create(range, message, severity, code, source, relatedInformation) { + var result = { range, message }; + if (Is.defined(severity)) { + result.severity = severity; + } + if (Is.defined(code)) { + result.code = code; + } + if (Is.defined(source)) { + result.source = source; + } + if (Is.defined(relatedInformation)) { + result.relatedInformation = relatedInformation; + } + return result; + } + Diagnostic2.create = create; + function is(value) { + var _a2; + var candidate = value; + return Is.defined(candidate) && css_worker_Range.is(candidate.range) && Is.string(candidate.message) && (Is.number(candidate.severity) || Is.undefined(candidate.severity)) && (Is.integer(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code)) && (Is.undefined(candidate.codeDescription) || Is.string((_a2 = candidate.codeDescription) === null || _a2 === void 0 ? void 0 : _a2.href)) && (Is.string(candidate.source) || Is.undefined(candidate.source)) && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is)); + } + Diagnostic2.is = is; +})(Diagnostic || (Diagnostic = {})); +var css_worker_Command; +(function(Command2) { + function create(title, command) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + var result = { title, command }; + if (Is.defined(args) && args.length > 0) { + result.arguments = args; + } + return result; + } + Command2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.title) && Is.string(candidate.command); + } + Command2.is = is; +})(css_worker_Command || (css_worker_Command = {})); +var TextEdit; +(function(TextEdit2) { + function replace(range, newText) { + return { range, newText }; + } + TextEdit2.replace = replace; + function insert(position, newText) { + return { range: { start: position, end: position }, newText }; + } + TextEdit2.insert = insert; + function del(range) { + return { range, newText: "" }; + } + TextEdit2.del = del; + function is(value) { + var candidate = value; + return Is.objectLiteral(candidate) && Is.string(candidate.newText) && css_worker_Range.is(candidate.range); + } + TextEdit2.is = is; +})(TextEdit || (TextEdit = {})); +var ChangeAnnotation; +(function(ChangeAnnotation2) { + function create(label, needsConfirmation, description) { + var result = { label }; + if (needsConfirmation !== void 0) { + result.needsConfirmation = needsConfirmation; + } + if (description !== void 0) { + result.description = description; + } + return result; + } + ChangeAnnotation2.create = create; + function is(value) { + var candidate = value; + return candidate !== void 0 && Is.objectLiteral(candidate) && Is.string(candidate.label) && (Is.boolean(candidate.needsConfirmation) || candidate.needsConfirmation === void 0) && (Is.string(candidate.description) || candidate.description === void 0); + } + ChangeAnnotation2.is = is; +})(ChangeAnnotation || (ChangeAnnotation = {})); +var ChangeAnnotationIdentifier; +(function(ChangeAnnotationIdentifier2) { + function is(value) { + var candidate = value; + return typeof candidate === "string"; + } + ChangeAnnotationIdentifier2.is = is; +})(ChangeAnnotationIdentifier || (ChangeAnnotationIdentifier = {})); +var AnnotatedTextEdit; +(function(AnnotatedTextEdit2) { + function replace(range, newText, annotation) { + return { range, newText, annotationId: annotation }; + } + AnnotatedTextEdit2.replace = replace; + function insert(position, newText, annotation) { + return { range: { start: position, end: position }, newText, annotationId: annotation }; + } + AnnotatedTextEdit2.insert = insert; + function del(range, annotation) { + return { range, newText: "", annotationId: annotation }; + } + AnnotatedTextEdit2.del = del; + function is(value) { + var candidate = value; + return TextEdit.is(candidate) && (ChangeAnnotation.is(candidate.annotationId) || ChangeAnnotationIdentifier.is(candidate.annotationId)); + } + AnnotatedTextEdit2.is = is; +})(AnnotatedTextEdit || (AnnotatedTextEdit = {})); +var TextDocumentEdit; +(function(TextDocumentEdit2) { + function create(textDocument, edits) { + return { textDocument, edits }; + } + TextDocumentEdit2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument) && Array.isArray(candidate.edits); + } + TextDocumentEdit2.is = is; +})(TextDocumentEdit || (TextDocumentEdit = {})); +var CreateFile; +(function(CreateFile2) { + function create(uri, options, annotation) { + var result = { + kind: "create", + uri + }; + if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) { + result.options = options; + } + if (annotation !== void 0) { + result.annotationId = annotation; + } + return result; + } + CreateFile2.create = create; + function is(value) { + var candidate = value; + return candidate && candidate.kind === "create" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId)); + } + CreateFile2.is = is; +})(CreateFile || (CreateFile = {})); +var RenameFile; +(function(RenameFile2) { + function create(oldUri, newUri, options, annotation) { + var result = { + kind: "rename", + oldUri, + newUri + }; + if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) { + result.options = options; + } + if (annotation !== void 0) { + result.annotationId = annotation; + } + return result; + } + RenameFile2.create = create; + function is(value) { + var candidate = value; + return candidate && candidate.kind === "rename" && Is.string(candidate.oldUri) && Is.string(candidate.newUri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId)); + } + RenameFile2.is = is; +})(RenameFile || (RenameFile = {})); +var DeleteFile; +(function(DeleteFile2) { + function create(uri, options, annotation) { + var result = { + kind: "delete", + uri + }; + if (options !== void 0 && (options.recursive !== void 0 || options.ignoreIfNotExists !== void 0)) { + result.options = options; + } + if (annotation !== void 0) { + result.annotationId = annotation; + } + return result; + } + DeleteFile2.create = create; + function is(value) { + var candidate = value; + return candidate && candidate.kind === "delete" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.recursive === void 0 || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === void 0 || Is.boolean(candidate.options.ignoreIfNotExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId)); + } + DeleteFile2.is = is; +})(DeleteFile || (DeleteFile = {})); +var WorkspaceEdit; +(function(WorkspaceEdit2) { + function is(value) { + var candidate = value; + return candidate && (candidate.changes !== void 0 || candidate.documentChanges !== void 0) && (candidate.documentChanges === void 0 || candidate.documentChanges.every(function(change) { + if (Is.string(change.kind)) { + return CreateFile.is(change) || RenameFile.is(change) || DeleteFile.is(change); + } else { + return TextDocumentEdit.is(change); + } + })); + } + WorkspaceEdit2.is = is; +})(WorkspaceEdit || (WorkspaceEdit = {})); +var TextEditChangeImpl = function() { + function TextEditChangeImpl2(edits, changeAnnotations) { + this.edits = edits; + this.changeAnnotations = changeAnnotations; + } + TextEditChangeImpl2.prototype.insert = function(position, newText, annotation) { + var edit; + var id; + if (annotation === void 0) { + edit = TextEdit.insert(position, newText); + } else if (ChangeAnnotationIdentifier.is(annotation)) { + id = annotation; + edit = AnnotatedTextEdit.insert(position, newText, annotation); + } else { + this.assertChangeAnnotations(this.changeAnnotations); + id = this.changeAnnotations.manage(annotation); + edit = AnnotatedTextEdit.insert(position, newText, id); + } + this.edits.push(edit); + if (id !== void 0) { + return id; + } + }; + TextEditChangeImpl2.prototype.replace = function(range, newText, annotation) { + var edit; + var id; + if (annotation === void 0) { + edit = TextEdit.replace(range, newText); + } else if (ChangeAnnotationIdentifier.is(annotation)) { + id = annotation; + edit = AnnotatedTextEdit.replace(range, newText, annotation); + } else { + this.assertChangeAnnotations(this.changeAnnotations); + id = this.changeAnnotations.manage(annotation); + edit = AnnotatedTextEdit.replace(range, newText, id); + } + this.edits.push(edit); + if (id !== void 0) { + return id; + } + }; + TextEditChangeImpl2.prototype.delete = function(range, annotation) { + var edit; + var id; + if (annotation === void 0) { + edit = TextEdit.del(range); + } else if (ChangeAnnotationIdentifier.is(annotation)) { + id = annotation; + edit = AnnotatedTextEdit.del(range, annotation); + } else { + this.assertChangeAnnotations(this.changeAnnotations); + id = this.changeAnnotations.manage(annotation); + edit = AnnotatedTextEdit.del(range, id); + } + this.edits.push(edit); + if (id !== void 0) { + return id; + } + }; + TextEditChangeImpl2.prototype.add = function(edit) { + this.edits.push(edit); + }; + TextEditChangeImpl2.prototype.all = function() { + return this.edits; + }; + TextEditChangeImpl2.prototype.clear = function() { + this.edits.splice(0, this.edits.length); + }; + TextEditChangeImpl2.prototype.assertChangeAnnotations = function(value) { + if (value === void 0) { + throw new Error("Text edit change is not configured to manage change annotations."); + } + }; + return TextEditChangeImpl2; +}(); +var ChangeAnnotations = function() { + function ChangeAnnotations2(annotations) { + this._annotations = annotations === void 0 ? /* @__PURE__ */ Object.create(null) : annotations; + this._counter = 0; + this._size = 0; + } + ChangeAnnotations2.prototype.all = function() { + return this._annotations; + }; + Object.defineProperty(ChangeAnnotations2.prototype, "size", { + get: function() { + return this._size; + }, + enumerable: false, + configurable: true + }); + ChangeAnnotations2.prototype.manage = function(idOrAnnotation, annotation) { + var id; + if (ChangeAnnotationIdentifier.is(idOrAnnotation)) { + id = idOrAnnotation; + } else { + id = this.nextId(); + annotation = idOrAnnotation; + } + if (this._annotations[id] !== void 0) { + throw new Error("Id " + id + " is already in use."); + } + if (annotation === void 0) { + throw new Error("No annotation provided for id " + id); + } + this._annotations[id] = annotation; + this._size++; + return id; + }; + ChangeAnnotations2.prototype.nextId = function() { + this._counter++; + return this._counter.toString(); + }; + return ChangeAnnotations2; +}(); +var WorkspaceChange = function() { + function WorkspaceChange2(workspaceEdit) { + var _this = this; + this._textEditChanges = /* @__PURE__ */ Object.create(null); + if (workspaceEdit !== void 0) { + this._workspaceEdit = workspaceEdit; + if (workspaceEdit.documentChanges) { + this._changeAnnotations = new ChangeAnnotations(workspaceEdit.changeAnnotations); + workspaceEdit.changeAnnotations = this._changeAnnotations.all(); + workspaceEdit.documentChanges.forEach(function(change) { + if (TextDocumentEdit.is(change)) { + var textEditChange = new TextEditChangeImpl(change.edits, _this._changeAnnotations); + _this._textEditChanges[change.textDocument.uri] = textEditChange; + } + }); + } else if (workspaceEdit.changes) { + Object.keys(workspaceEdit.changes).forEach(function(key) { + var textEditChange = new TextEditChangeImpl(workspaceEdit.changes[key]); + _this._textEditChanges[key] = textEditChange; + }); + } + } else { + this._workspaceEdit = {}; + } + } + Object.defineProperty(WorkspaceChange2.prototype, "edit", { + get: function() { + this.initDocumentChanges(); + if (this._changeAnnotations !== void 0) { + if (this._changeAnnotations.size === 0) { + this._workspaceEdit.changeAnnotations = void 0; + } else { + this._workspaceEdit.changeAnnotations = this._changeAnnotations.all(); + } + } + return this._workspaceEdit; + }, + enumerable: false, + configurable: true + }); + WorkspaceChange2.prototype.getTextEditChange = function(key) { + if (OptionalVersionedTextDocumentIdentifier.is(key)) { + this.initDocumentChanges(); + if (this._workspaceEdit.documentChanges === void 0) { + throw new Error("Workspace edit is not configured for document changes."); + } + var textDocument = { uri: key.uri, version: key.version }; + var result = this._textEditChanges[textDocument.uri]; + if (!result) { + var edits = []; + var textDocumentEdit = { + textDocument, + edits + }; + this._workspaceEdit.documentChanges.push(textDocumentEdit); + result = new TextEditChangeImpl(edits, this._changeAnnotations); + this._textEditChanges[textDocument.uri] = result; + } + return result; + } else { + this.initChanges(); + if (this._workspaceEdit.changes === void 0) { + throw new Error("Workspace edit is not configured for normal text edit changes."); + } + var result = this._textEditChanges[key]; + if (!result) { + var edits = []; + this._workspaceEdit.changes[key] = edits; + result = new TextEditChangeImpl(edits); + this._textEditChanges[key] = result; + } + return result; + } + }; + WorkspaceChange2.prototype.initDocumentChanges = function() { + if (this._workspaceEdit.documentChanges === void 0 && this._workspaceEdit.changes === void 0) { + this._changeAnnotations = new ChangeAnnotations(); + this._workspaceEdit.documentChanges = []; + this._workspaceEdit.changeAnnotations = this._changeAnnotations.all(); + } + }; + WorkspaceChange2.prototype.initChanges = function() { + if (this._workspaceEdit.documentChanges === void 0 && this._workspaceEdit.changes === void 0) { + this._workspaceEdit.changes = /* @__PURE__ */ Object.create(null); + } + }; + WorkspaceChange2.prototype.createFile = function(uri, optionsOrAnnotation, options) { + this.initDocumentChanges(); + if (this._workspaceEdit.documentChanges === void 0) { + throw new Error("Workspace edit is not configured for document changes."); + } + var annotation; + if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) { + annotation = optionsOrAnnotation; + } else { + options = optionsOrAnnotation; + } + var operation; + var id; + if (annotation === void 0) { + operation = CreateFile.create(uri, options); + } else { + id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation); + operation = CreateFile.create(uri, options, id); + } + this._workspaceEdit.documentChanges.push(operation); + if (id !== void 0) { + return id; + } + }; + WorkspaceChange2.prototype.renameFile = function(oldUri, newUri, optionsOrAnnotation, options) { + this.initDocumentChanges(); + if (this._workspaceEdit.documentChanges === void 0) { + throw new Error("Workspace edit is not configured for document changes."); + } + var annotation; + if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) { + annotation = optionsOrAnnotation; + } else { + options = optionsOrAnnotation; + } + var operation; + var id; + if (annotation === void 0) { + operation = RenameFile.create(oldUri, newUri, options); + } else { + id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation); + operation = RenameFile.create(oldUri, newUri, options, id); + } + this._workspaceEdit.documentChanges.push(operation); + if (id !== void 0) { + return id; + } + }; + WorkspaceChange2.prototype.deleteFile = function(uri, optionsOrAnnotation, options) { + this.initDocumentChanges(); + if (this._workspaceEdit.documentChanges === void 0) { + throw new Error("Workspace edit is not configured for document changes."); + } + var annotation; + if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) { + annotation = optionsOrAnnotation; + } else { + options = optionsOrAnnotation; + } + var operation; + var id; + if (annotation === void 0) { + operation = DeleteFile.create(uri, options); + } else { + id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation); + operation = DeleteFile.create(uri, options, id); + } + this._workspaceEdit.documentChanges.push(operation); + if (id !== void 0) { + return id; + } + }; + return WorkspaceChange2; +}(); +var TextDocumentIdentifier; +(function(TextDocumentIdentifier2) { + function create(uri) { + return { uri }; + } + TextDocumentIdentifier2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri); + } + TextDocumentIdentifier2.is = is; +})(TextDocumentIdentifier || (TextDocumentIdentifier = {})); +var VersionedTextDocumentIdentifier; +(function(VersionedTextDocumentIdentifier2) { + function create(uri, version) { + return { uri, version }; + } + VersionedTextDocumentIdentifier2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri) && Is.integer(candidate.version); + } + VersionedTextDocumentIdentifier2.is = is; +})(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {})); +var OptionalVersionedTextDocumentIdentifier; +(function(OptionalVersionedTextDocumentIdentifier2) { + function create(uri, version) { + return { uri, version }; + } + OptionalVersionedTextDocumentIdentifier2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.integer(candidate.version)); + } + OptionalVersionedTextDocumentIdentifier2.is = is; +})(OptionalVersionedTextDocumentIdentifier || (OptionalVersionedTextDocumentIdentifier = {})); +var TextDocumentItem; +(function(TextDocumentItem2) { + function create(uri, languageId, version, text) { + return { uri, languageId, version, text }; + } + TextDocumentItem2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.integer(candidate.version) && Is.string(candidate.text); + } + TextDocumentItem2.is = is; +})(TextDocumentItem || (TextDocumentItem = {})); +var MarkupKind; +(function(MarkupKind2) { + MarkupKind2.PlainText = "plaintext"; + MarkupKind2.Markdown = "markdown"; +})(MarkupKind || (MarkupKind = {})); +(function(MarkupKind2) { + function is(value) { + var candidate = value; + return candidate === MarkupKind2.PlainText || candidate === MarkupKind2.Markdown; + } + MarkupKind2.is = is; +})(MarkupKind || (MarkupKind = {})); +var MarkupContent; +(function(MarkupContent2) { + function is(value) { + var candidate = value; + return Is.objectLiteral(value) && MarkupKind.is(candidate.kind) && Is.string(candidate.value); + } + MarkupContent2.is = is; +})(MarkupContent || (MarkupContent = {})); +var css_worker_CompletionItemKind; +(function(CompletionItemKind2) { + CompletionItemKind2.Text = 1; + CompletionItemKind2.Method = 2; + CompletionItemKind2.Function = 3; + CompletionItemKind2.Constructor = 4; + CompletionItemKind2.Field = 5; + CompletionItemKind2.Variable = 6; + CompletionItemKind2.Class = 7; + CompletionItemKind2.Interface = 8; + CompletionItemKind2.Module = 9; + CompletionItemKind2.Property = 10; + CompletionItemKind2.Unit = 11; + CompletionItemKind2.Value = 12; + CompletionItemKind2.Enum = 13; + CompletionItemKind2.Keyword = 14; + CompletionItemKind2.Snippet = 15; + CompletionItemKind2.Color = 16; + CompletionItemKind2.File = 17; + CompletionItemKind2.Reference = 18; + CompletionItemKind2.Folder = 19; + CompletionItemKind2.EnumMember = 20; + CompletionItemKind2.Constant = 21; + CompletionItemKind2.Struct = 22; + CompletionItemKind2.Event = 23; + CompletionItemKind2.Operator = 24; + CompletionItemKind2.TypeParameter = 25; +})(css_worker_CompletionItemKind || (css_worker_CompletionItemKind = {})); +var InsertTextFormat; +(function(InsertTextFormat2) { + InsertTextFormat2.PlainText = 1; + InsertTextFormat2.Snippet = 2; +})(InsertTextFormat || (InsertTextFormat = {})); +var css_worker_CompletionItemTag; +(function(CompletionItemTag2) { + CompletionItemTag2.Deprecated = 1; +})(css_worker_CompletionItemTag || (css_worker_CompletionItemTag = {})); +var InsertReplaceEdit; +(function(InsertReplaceEdit2) { + function create(newText, insert, replace) { + return { newText, insert, replace }; + } + InsertReplaceEdit2.create = create; + function is(value) { + var candidate = value; + return candidate && Is.string(candidate.newText) && css_worker_Range.is(candidate.insert) && css_worker_Range.is(candidate.replace); + } + InsertReplaceEdit2.is = is; +})(InsertReplaceEdit || (InsertReplaceEdit = {})); +var InsertTextMode; +(function(InsertTextMode2) { + InsertTextMode2.asIs = 1; + InsertTextMode2.adjustIndentation = 2; +})(InsertTextMode || (InsertTextMode = {})); +var CompletionItem; +(function(CompletionItem2) { + function create(label) { + return { label }; + } + CompletionItem2.create = create; +})(CompletionItem || (CompletionItem = {})); +var CompletionList; +(function(CompletionList2) { + function create(items, isIncomplete) { + return { items: items ? items : [], isIncomplete: !!isIncomplete }; + } + CompletionList2.create = create; +})(CompletionList || (CompletionList = {})); +var MarkedString; +(function(MarkedString2) { + function fromPlainText(plainText) { + return plainText.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&"); + } + MarkedString2.fromPlainText = fromPlainText; + function is(value) { + var candidate = value; + return Is.string(candidate) || Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value); + } + MarkedString2.is = is; +})(MarkedString || (MarkedString = {})); +var Hover; +(function(Hover2) { + function is(value) { + var candidate = value; + return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) || MarkedString.is(candidate.contents) || Is.typedArray(candidate.contents, MarkedString.is)) && (value.range === void 0 || css_worker_Range.is(value.range)); + } + Hover2.is = is; +})(Hover || (Hover = {})); +var ParameterInformation; +(function(ParameterInformation2) { + function create(label, documentation) { + return documentation ? { label, documentation } : { label }; + } + ParameterInformation2.create = create; +})(ParameterInformation || (ParameterInformation = {})); +var SignatureInformation; +(function(SignatureInformation2) { + function create(label, documentation) { + var parameters = []; + for (var _i = 2; _i < arguments.length; _i++) { + parameters[_i - 2] = arguments[_i]; + } + var result = { label }; + if (Is.defined(documentation)) { + result.documentation = documentation; + } + if (Is.defined(parameters)) { + result.parameters = parameters; + } else { + result.parameters = []; + } + return result; + } + SignatureInformation2.create = create; +})(SignatureInformation || (SignatureInformation = {})); +var css_worker_DocumentHighlightKind; +(function(DocumentHighlightKind2) { + DocumentHighlightKind2.Text = 1; + DocumentHighlightKind2.Read = 2; + DocumentHighlightKind2.Write = 3; +})(css_worker_DocumentHighlightKind || (css_worker_DocumentHighlightKind = {})); +var DocumentHighlight; +(function(DocumentHighlight2) { + function create(range, kind) { + var result = { range }; + if (Is.number(kind)) { + result.kind = kind; + } + return result; + } + DocumentHighlight2.create = create; +})(DocumentHighlight || (DocumentHighlight = {})); +var css_worker_SymbolKind; +(function(SymbolKind2) { + SymbolKind2.File = 1; + SymbolKind2.Module = 2; + SymbolKind2.Namespace = 3; + SymbolKind2.Package = 4; + SymbolKind2.Class = 5; + SymbolKind2.Method = 6; + SymbolKind2.Property = 7; + SymbolKind2.Field = 8; + SymbolKind2.Constructor = 9; + SymbolKind2.Enum = 10; + SymbolKind2.Interface = 11; + SymbolKind2.Function = 12; + SymbolKind2.Variable = 13; + SymbolKind2.Constant = 14; + SymbolKind2.String = 15; + SymbolKind2.Number = 16; + SymbolKind2.Boolean = 17; + SymbolKind2.Array = 18; + SymbolKind2.Object = 19; + SymbolKind2.Key = 20; + SymbolKind2.Null = 21; + SymbolKind2.EnumMember = 22; + SymbolKind2.Struct = 23; + SymbolKind2.Event = 24; + SymbolKind2.Operator = 25; + SymbolKind2.TypeParameter = 26; +})(css_worker_SymbolKind || (css_worker_SymbolKind = {})); +var css_worker_SymbolTag; +(function(SymbolTag2) { + SymbolTag2.Deprecated = 1; +})(css_worker_SymbolTag || (css_worker_SymbolTag = {})); +var SymbolInformation; +(function(SymbolInformation2) { + function create(name, kind, range, uri, containerName) { + var result = { + name, + kind, + location: { uri, range } + }; + if (containerName) { + result.containerName = containerName; + } + return result; + } + SymbolInformation2.create = create; +})(SymbolInformation || (SymbolInformation = {})); +var DocumentSymbol; +(function(DocumentSymbol2) { + function create(name, detail, kind, range, selectionRange, children) { + var result = { + name, + detail, + kind, + range, + selectionRange + }; + if (children !== void 0) { + result.children = children; + } + return result; + } + DocumentSymbol2.create = create; + function is(value) { + var candidate = value; + return candidate && Is.string(candidate.name) && Is.number(candidate.kind) && css_worker_Range.is(candidate.range) && css_worker_Range.is(candidate.selectionRange) && (candidate.detail === void 0 || Is.string(candidate.detail)) && (candidate.deprecated === void 0 || Is.boolean(candidate.deprecated)) && (candidate.children === void 0 || Array.isArray(candidate.children)) && (candidate.tags === void 0 || Array.isArray(candidate.tags)); + } + DocumentSymbol2.is = is; +})(DocumentSymbol || (DocumentSymbol = {})); +var CodeActionKind; +(function(CodeActionKind2) { + CodeActionKind2.Empty = ""; + CodeActionKind2.QuickFix = "quickfix"; + CodeActionKind2.Refactor = "refactor"; + CodeActionKind2.RefactorExtract = "refactor.extract"; + CodeActionKind2.RefactorInline = "refactor.inline"; + CodeActionKind2.RefactorRewrite = "refactor.rewrite"; + CodeActionKind2.Source = "source"; + CodeActionKind2.SourceOrganizeImports = "source.organizeImports"; + CodeActionKind2.SourceFixAll = "source.fixAll"; +})(CodeActionKind || (CodeActionKind = {})); +var CodeActionContext; +(function(CodeActionContext2) { + function create(diagnostics, only) { + var result = { diagnostics }; + if (only !== void 0 && only !== null) { + result.only = only; + } + return result; + } + CodeActionContext2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.typedArray(candidate.diagnostics, Diagnostic.is) && (candidate.only === void 0 || Is.typedArray(candidate.only, Is.string)); + } + CodeActionContext2.is = is; +})(CodeActionContext || (CodeActionContext = {})); +var CodeAction; +(function(CodeAction2) { + function create(title, kindOrCommandOrEdit, kind) { + var result = { title }; + var checkKind = true; + if (typeof kindOrCommandOrEdit === "string") { + checkKind = false; + result.kind = kindOrCommandOrEdit; + } else if (css_worker_Command.is(kindOrCommandOrEdit)) { + result.command = kindOrCommandOrEdit; + } else { + result.edit = kindOrCommandOrEdit; + } + if (checkKind && kind !== void 0) { + result.kind = kind; + } + return result; + } + CodeAction2.create = create; + function is(value) { + var candidate = value; + return candidate && Is.string(candidate.title) && (candidate.diagnostics === void 0 || Is.typedArray(candidate.diagnostics, Diagnostic.is)) && (candidate.kind === void 0 || Is.string(candidate.kind)) && (candidate.edit !== void 0 || candidate.command !== void 0) && (candidate.command === void 0 || css_worker_Command.is(candidate.command)) && (candidate.isPreferred === void 0 || Is.boolean(candidate.isPreferred)) && (candidate.edit === void 0 || WorkspaceEdit.is(candidate.edit)); + } + CodeAction2.is = is; +})(CodeAction || (CodeAction = {})); +var CodeLens; +(function(CodeLens2) { + function create(range, data) { + var result = { range }; + if (Is.defined(data)) { + result.data = data; + } + return result; + } + CodeLens2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && css_worker_Range.is(candidate.range) && (Is.undefined(candidate.command) || css_worker_Command.is(candidate.command)); + } + CodeLens2.is = is; +})(CodeLens || (CodeLens = {})); +var FormattingOptions; +(function(FormattingOptions2) { + function create(tabSize, insertSpaces) { + return { tabSize, insertSpaces }; + } + FormattingOptions2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.uinteger(candidate.tabSize) && Is.boolean(candidate.insertSpaces); + } + FormattingOptions2.is = is; +})(FormattingOptions || (FormattingOptions = {})); +var DocumentLink; +(function(DocumentLink2) { + function create(range, target, data) { + return { range, target, data }; + } + DocumentLink2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && css_worker_Range.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target)); + } + DocumentLink2.is = is; +})(DocumentLink || (DocumentLink = {})); +var SelectionRange; +(function(SelectionRange2) { + function create(range, parent) { + return { range, parent }; + } + SelectionRange2.create = create; + function is(value) { + var candidate = value; + return candidate !== void 0 && css_worker_Range.is(candidate.range) && (candidate.parent === void 0 || SelectionRange2.is(candidate.parent)); + } + SelectionRange2.is = is; +})(SelectionRange || (SelectionRange = {})); +var TextDocument; +(function(TextDocument3) { + function create(uri, languageId, version, content) { + return new FullTextDocument(uri, languageId, version, content); + } + TextDocument3.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri) && (Is.undefined(candidate.languageId) || Is.string(candidate.languageId)) && Is.uinteger(candidate.lineCount) && Is.func(candidate.getText) && Is.func(candidate.positionAt) && Is.func(candidate.offsetAt) ? true : false; + } + TextDocument3.is = is; + function applyEdits(document, edits) { + var text = document.getText(); + var sortedEdits = mergeSort2(edits, function(a2, b) { + var diff = a2.range.start.line - b.range.start.line; + if (diff === 0) { + return a2.range.start.character - b.range.start.character; + } + return diff; + }); + var lastModifiedOffset = text.length; + for (var i = sortedEdits.length - 1; i >= 0; i--) { + var e = sortedEdits[i]; + var startOffset = document.offsetAt(e.range.start); + var endOffset = document.offsetAt(e.range.end); + if (endOffset <= lastModifiedOffset) { + text = text.substring(0, startOffset) + e.newText + text.substring(endOffset, text.length); + } else { + throw new Error("Overlapping edit"); + } + lastModifiedOffset = startOffset; + } + return text; + } + TextDocument3.applyEdits = applyEdits; + function mergeSort2(data, compare) { + if (data.length <= 1) { + return data; + } + var p = data.length / 2 | 0; + var left = data.slice(0, p); + var right = data.slice(p); + mergeSort2(left, compare); + mergeSort2(right, compare); + var leftIdx = 0; + var rightIdx = 0; + var i = 0; + while (leftIdx < left.length && rightIdx < right.length) { + var ret = compare(left[leftIdx], right[rightIdx]); + if (ret <= 0) { + data[i++] = left[leftIdx++]; + } else { + data[i++] = right[rightIdx++]; + } + } + while (leftIdx < left.length) { + data[i++] = left[leftIdx++]; + } + while (rightIdx < right.length) { + data[i++] = right[rightIdx++]; + } + return data; + } +})(TextDocument || (TextDocument = {})); +var FullTextDocument = function() { + function FullTextDocument3(uri, languageId, version, content) { + this._uri = uri; + this._languageId = languageId; + this._version = version; + this._content = content; + this._lineOffsets = void 0; + } + Object.defineProperty(FullTextDocument3.prototype, "uri", { + get: function() { + return this._uri; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(FullTextDocument3.prototype, "languageId", { + get: function() { + return this._languageId; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(FullTextDocument3.prototype, "version", { + get: function() { + return this._version; + }, + enumerable: false, + configurable: true + }); + FullTextDocument3.prototype.getText = function(range) { + if (range) { + var start = this.offsetAt(range.start); + var end = this.offsetAt(range.end); + return this._content.substring(start, end); + } + return this._content; + }; + FullTextDocument3.prototype.update = function(event, version) { + this._content = event.text; + this._version = version; + this._lineOffsets = void 0; + }; + FullTextDocument3.prototype.getLineOffsets = function() { + if (this._lineOffsets === void 0) { + var lineOffsets = []; + var text = this._content; + var isLineStart = true; + for (var i = 0; i < text.length; i++) { + if (isLineStart) { + lineOffsets.push(i); + isLineStart = false; + } + var ch = text.charAt(i); + isLineStart = ch === "\r" || ch === "\n"; + if (ch === "\r" && i + 1 < text.length && text.charAt(i + 1) === "\n") { + i++; + } + } + if (isLineStart && text.length > 0) { + lineOffsets.push(text.length); + } + this._lineOffsets = lineOffsets; + } + return this._lineOffsets; + }; + FullTextDocument3.prototype.positionAt = function(offset) { + offset = Math.max(Math.min(offset, this._content.length), 0); + var lineOffsets = this.getLineOffsets(); + var low = 0, high = lineOffsets.length; + if (high === 0) { + return css_worker_Position.create(0, offset); + } + while (low < high) { + var mid = Math.floor((low + high) / 2); + if (lineOffsets[mid] > offset) { + high = mid; + } else { + low = mid + 1; + } + } + var line = low - 1; + return css_worker_Position.create(line, offset - lineOffsets[line]); + }; + FullTextDocument3.prototype.offsetAt = function(position) { + var lineOffsets = this.getLineOffsets(); + if (position.line >= lineOffsets.length) { + return this._content.length; + } else if (position.line < 0) { + return 0; + } + var lineOffset = lineOffsets[position.line]; + var nextLineOffset = position.line + 1 < lineOffsets.length ? lineOffsets[position.line + 1] : this._content.length; + return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset); + }; + Object.defineProperty(FullTextDocument3.prototype, "lineCount", { + get: function() { + return this.getLineOffsets().length; + }, + enumerable: false, + configurable: true + }); + return FullTextDocument3; +}(); +var Is; +(function(Is2) { + var toString = Object.prototype.toString; + function defined(value) { + return typeof value !== "undefined"; + } + Is2.defined = defined; + function undefined2(value) { + return typeof value === "undefined"; + } + Is2.undefined = undefined2; + function boolean(value) { + return value === true || value === false; + } + Is2.boolean = boolean; + function string(value) { + return toString.call(value) === "[object String]"; + } + Is2.string = string; + function number(value) { + return toString.call(value) === "[object Number]"; + } + Is2.number = number; + function numberRange(value, min, max) { + return toString.call(value) === "[object Number]" && min <= value && value <= max; + } + Is2.numberRange = numberRange; + function integer2(value) { + return toString.call(value) === "[object Number]" && -2147483648 <= value && value <= 2147483647; + } + Is2.integer = integer2; + function uinteger2(value) { + return toString.call(value) === "[object Number]" && 0 <= value && value <= 2147483647; + } + Is2.uinteger = uinteger2; + function func(value) { + return toString.call(value) === "[object Function]"; + } + Is2.func = func; + function objectLiteral(value) { + return value !== null && typeof value === "object"; + } + Is2.objectLiteral = objectLiteral; + function typedArray(value, check) { + return Array.isArray(value) && value.every(check); + } + Is2.typedArray = typedArray; +})(Is || (Is = {})); + +// node_modules/vscode-languageserver-textdocument/lib/esm/main.js +var FullTextDocument2 = class { + constructor(uri, languageId, version, content) { + this._uri = uri; + this._languageId = languageId; + this._version = version; + this._content = content; + this._lineOffsets = void 0; + } + get uri() { + return this._uri; + } + get languageId() { + return this._languageId; + } + get version() { + return this._version; + } + getText(range) { + if (range) { + const start = this.offsetAt(range.start); + const end = this.offsetAt(range.end); + return this._content.substring(start, end); + } + return this._content; + } + update(changes, version) { + for (let change of changes) { + if (FullTextDocument2.isIncremental(change)) { + const range = getWellformedRange(change.range); + const startOffset = this.offsetAt(range.start); + const endOffset = this.offsetAt(range.end); + this._content = this._content.substring(0, startOffset) + change.text + this._content.substring(endOffset, this._content.length); + const startLine = Math.max(range.start.line, 0); + const endLine = Math.max(range.end.line, 0); + let lineOffsets = this._lineOffsets; + const addedLineOffsets = computeLineOffsets(change.text, false, startOffset); + if (endLine - startLine === addedLineOffsets.length) { + for (let i = 0, len = addedLineOffsets.length; i < len; i++) { + lineOffsets[i + startLine + 1] = addedLineOffsets[i]; + } + } else { + if (addedLineOffsets.length < 1e4) { + lineOffsets.splice(startLine + 1, endLine - startLine, ...addedLineOffsets); + } else { + this._lineOffsets = lineOffsets = lineOffsets.slice(0, startLine + 1).concat(addedLineOffsets, lineOffsets.slice(endLine + 1)); + } + } + const diff = change.text.length - (endOffset - startOffset); + if (diff !== 0) { + for (let i = startLine + 1 + addedLineOffsets.length, len = lineOffsets.length; i < len; i++) { + lineOffsets[i] = lineOffsets[i] + diff; + } + } + } else if (FullTextDocument2.isFull(change)) { + this._content = change.text; + this._lineOffsets = void 0; + } else { + throw new Error("Unknown change event received"); + } + } + this._version = version; + } + getLineOffsets() { + if (this._lineOffsets === void 0) { + this._lineOffsets = computeLineOffsets(this._content, true); + } + return this._lineOffsets; + } + positionAt(offset) { + offset = Math.max(Math.min(offset, this._content.length), 0); + let lineOffsets = this.getLineOffsets(); + let low = 0, high = lineOffsets.length; + if (high === 0) { + return { line: 0, character: offset }; + } + while (low < high) { + let mid = Math.floor((low + high) / 2); + if (lineOffsets[mid] > offset) { + high = mid; + } else { + low = mid + 1; + } + } + let line = low - 1; + return { line, character: offset - lineOffsets[line] }; + } + offsetAt(position) { + let lineOffsets = this.getLineOffsets(); + if (position.line >= lineOffsets.length) { + return this._content.length; + } else if (position.line < 0) { + return 0; + } + let lineOffset = lineOffsets[position.line]; + let nextLineOffset = position.line + 1 < lineOffsets.length ? lineOffsets[position.line + 1] : this._content.length; + return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset); + } + get lineCount() { + return this.getLineOffsets().length; + } + static isIncremental(event) { + let candidate = event; + return candidate !== void 0 && candidate !== null && typeof candidate.text === "string" && candidate.range !== void 0 && (candidate.rangeLength === void 0 || typeof candidate.rangeLength === "number"); + } + static isFull(event) { + let candidate = event; + return candidate !== void 0 && candidate !== null && typeof candidate.text === "string" && candidate.range === void 0 && candidate.rangeLength === void 0; + } +}; +var TextDocument2; +(function(TextDocument3) { + function create(uri, languageId, version, content) { + return new FullTextDocument2(uri, languageId, version, content); + } + TextDocument3.create = create; + function update(document, changes, version) { + if (document instanceof FullTextDocument2) { + document.update(changes, version); + return document; + } else { + throw new Error("TextDocument.update: document must be created by TextDocument.create"); + } + } + TextDocument3.update = update; + function applyEdits(document, edits) { + let text = document.getText(); + let sortedEdits = mergeSort(edits.map(getWellformedEdit), (a2, b) => { + let diff = a2.range.start.line - b.range.start.line; + if (diff === 0) { + return a2.range.start.character - b.range.start.character; + } + return diff; + }); + let lastModifiedOffset = 0; + const spans = []; + for (const e of sortedEdits) { + let startOffset = document.offsetAt(e.range.start); + if (startOffset < lastModifiedOffset) { + throw new Error("Overlapping edit"); + } else if (startOffset > lastModifiedOffset) { + spans.push(text.substring(lastModifiedOffset, startOffset)); + } + if (e.newText.length) { + spans.push(e.newText); + } + lastModifiedOffset = document.offsetAt(e.range.end); + } + spans.push(text.substr(lastModifiedOffset)); + return spans.join(""); + } + TextDocument3.applyEdits = applyEdits; +})(TextDocument2 || (TextDocument2 = {})); +function mergeSort(data, compare) { + if (data.length <= 1) { + return data; + } + const p = data.length / 2 | 0; + const left = data.slice(0, p); + const right = data.slice(p); + mergeSort(left, compare); + mergeSort(right, compare); + let leftIdx = 0; + let rightIdx = 0; + let i = 0; + while (leftIdx < left.length && rightIdx < right.length) { + let ret = compare(left[leftIdx], right[rightIdx]); + if (ret <= 0) { + data[i++] = left[leftIdx++]; + } else { + data[i++] = right[rightIdx++]; + } + } + while (leftIdx < left.length) { + data[i++] = left[leftIdx++]; + } + while (rightIdx < right.length) { + data[i++] = right[rightIdx++]; + } + return data; +} +function computeLineOffsets(text, isAtLineStart, textOffset = 0) { + const result = isAtLineStart ? [textOffset] : []; + for (let i = 0; i < text.length; i++) { + let ch = text.charCodeAt(i); + if (ch === 13 || ch === 10) { + if (ch === 13 && i + 1 < text.length && text.charCodeAt(i + 1) === 10) { + i++; + } + result.push(textOffset + i + 1); + } + } + return result; +} +function getWellformedRange(range) { + const start = range.start; + const end = range.end; + if (start.line > end.line || start.line === end.line && start.character > end.character) { + return { start: end, end: start }; + } + return range; +} +function getWellformedEdit(textEdit) { + const range = getWellformedRange(textEdit.range); + if (range !== textEdit.range) { + return { newText: textEdit.newText, range }; + } + return textEdit; +} + +// node_modules/vscode-css-languageservice/lib/esm/cssLanguageTypes.js +var ClientCapabilities; +(function(ClientCapabilities2) { + ClientCapabilities2.LATEST = { + textDocument: { + completion: { + completionItem: { + documentationFormat: [MarkupKind.Markdown, MarkupKind.PlainText] + } + }, + hover: { + contentFormat: [MarkupKind.Markdown, MarkupKind.PlainText] + } + } + }; +})(ClientCapabilities || (ClientCapabilities = {})); +var FileType; +(function(FileType2) { + FileType2[FileType2["Unknown"] = 0] = "Unknown"; + FileType2[FileType2["File"] = 1] = "File"; + FileType2[FileType2["Directory"] = 2] = "Directory"; + FileType2[FileType2["SymbolicLink"] = 64] = "SymbolicLink"; +})(FileType || (FileType = {})); + +// node_modules/vscode-css-languageservice/lib/esm/languageFacts/entry.js +var browserNames = { + E: "Edge", + FF: "Firefox", + S: "Safari", + C: "Chrome", + IE: "IE", + O: "Opera" +}; +function getEntryStatus(status) { + switch (status) { + case "experimental": + return "\u26A0\uFE0F Property is experimental. Be cautious when using it.\uFE0F\n\n"; + case "nonstandard": + return "\u{1F6A8}\uFE0F Property is nonstandard. Avoid using it.\n\n"; + case "obsolete": + return "\u{1F6A8}\uFE0F\uFE0F\uFE0F Property is obsolete. Avoid using it.\n\n"; + default: + return ""; + } +} +function getEntryDescription(entry, doesSupportMarkdown, settings) { + var result; + if (doesSupportMarkdown) { + result = { + kind: "markdown", + value: getEntryMarkdownDescription(entry, settings) + }; + } else { + result = { + kind: "plaintext", + value: getEntryStringDescription(entry, settings) + }; + } + if (result.value === "") { + return void 0; + } + return result; +} +function textToMarkedString(text) { + text = text.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&"); + return text.replace(//g, ">"); +} +function getEntryStringDescription(entry, settings) { + if (!entry.description || entry.description === "") { + return ""; + } + if (typeof entry.description !== "string") { + return entry.description.value; + } + var result = ""; + if ((settings === null || settings === void 0 ? void 0 : settings.documentation) !== false) { + if (entry.status) { + result += getEntryStatus(entry.status); + } + result += entry.description; + var browserLabel = getBrowserLabel(entry.browsers); + if (browserLabel) { + result += "\n(" + browserLabel + ")"; + } + if ("syntax" in entry) { + result += "\n\nSyntax: ".concat(entry.syntax); + } + } + if (entry.references && entry.references.length > 0 && (settings === null || settings === void 0 ? void 0 : settings.references) !== false) { + if (result.length > 0) { + result += "\n\n"; + } + result += entry.references.map(function(r) { + return "".concat(r.name, ": ").concat(r.url); + }).join(" | "); + } + return result; +} +function getEntryMarkdownDescription(entry, settings) { + if (!entry.description || entry.description === "") { + return ""; + } + var result = ""; + if ((settings === null || settings === void 0 ? void 0 : settings.documentation) !== false) { + if (entry.status) { + result += getEntryStatus(entry.status); + } + if (typeof entry.description === "string") { + result += textToMarkedString(entry.description); + } else { + result += entry.description.kind === MarkupKind.Markdown ? entry.description.value : textToMarkedString(entry.description.value); + } + var browserLabel = getBrowserLabel(entry.browsers); + if (browserLabel) { + result += "\n\n(" + textToMarkedString(browserLabel) + ")"; + } + if ("syntax" in entry && entry.syntax) { + result += "\n\nSyntax: ".concat(textToMarkedString(entry.syntax)); + } + } + if (entry.references && entry.references.length > 0 && (settings === null || settings === void 0 ? void 0 : settings.references) !== false) { + if (result.length > 0) { + result += "\n\n"; + } + result += entry.references.map(function(r) { + return "[".concat(r.name, "](").concat(r.url, ")"); + }).join(" | "); + } + return result; +} +function getBrowserLabel(browsers) { + if (browsers === void 0) { + browsers = []; + } + if (browsers.length === 0) { + return null; + } + return browsers.map(function(b) { + var result = ""; + var matches2 = b.match(/([A-Z]+)(\d+)?/); + var name = matches2[1]; + var version = matches2[2]; + if (name in browserNames) { + result += browserNames[name]; + } + if (version) { + result += " " + version; + } + return result; + }).join(", "); +} + +// node_modules/vscode-css-languageservice/lib/esm/languageFacts/colors.js +var localize3 = loadMessageBundle(); +var colorFunctions = [ + { func: "rgb($red, $green, $blue)", desc: localize3("css.builtin.rgb", "Creates a Color from red, green, and blue values.") }, + { func: "rgba($red, $green, $blue, $alpha)", desc: localize3("css.builtin.rgba", "Creates a Color from red, green, blue, and alpha values.") }, + { func: "hsl($hue, $saturation, $lightness)", desc: localize3("css.builtin.hsl", "Creates a Color from hue, saturation, and lightness values.") }, + { func: "hsla($hue, $saturation, $lightness, $alpha)", desc: localize3("css.builtin.hsla", "Creates a Color from hue, saturation, lightness, and alpha values.") }, + { func: "hwb($hue $white $black)", desc: localize3("css.builtin.hwb", "Creates a Color from hue, white and black.") } +]; +var 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", + cyan: "#00ffff", + darkblue: "#00008b", + darkcyan: "#008b8b", + darkgoldenrod: "#b8860b", + darkgray: "#a9a9a9", + darkgrey: "#a9a9a9", + darkgreen: "#006400", + 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", + grey: "#808080", + green: "#008000", + greenyellow: "#adff2f", + 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", + lightgrey: "#d3d3d3", + lightgreen: "#90ee90", + 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: "#9370d8", + 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: "#d87093", + papayawhip: "#ffefd5", + peachpuff: "#ffdab9", + peru: "#cd853f", + pink: "#ffc0cb", + plum: "#dda0dd", + powderblue: "#b0e0e6", + purple: "#800080", + red: "#ff0000", + rebeccapurple: "#663399", + 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", + steelblue: "#4682b4", + tan: "#d2b48c", + teal: "#008080", + thistle: "#d8bfd8", + tomato: "#ff6347", + turquoise: "#40e0d0", + violet: "#ee82ee", + wheat: "#f5deb3", + white: "#ffffff", + whitesmoke: "#f5f5f5", + yellow: "#ffff00", + yellowgreen: "#9acd32" +}; +var colorKeywords = { + "currentColor": "The value of the 'color' property. The computed value of the 'currentColor' keyword is the computed value of the 'color' property. If the 'currentColor' keyword is set on the 'color' property itself, it is treated as 'color:inherit' at parse time.", + "transparent": "Fully transparent. This keyword can be considered a shorthand for rgba(0,0,0,0) which is its computed value." +}; +function getNumericValue(node, factor) { + var val = node.getText(); + var m = val.match(/^([-+]?[0-9]*\.?[0-9]+)(%?)$/); + if (m) { + if (m[2]) { + factor = 100; + } + var result = parseFloat(m[1]) / factor; + if (result >= 0 && result <= 1) { + return result; + } + } + throw new Error(); +} +function getAngle(node) { + var val = node.getText(); + var m = val.match(/^([-+]?[0-9]*\.?[0-9]+)(deg|rad|grad|turn)?$/); + if (m) { + switch (m[2]) { + case "deg": + return parseFloat(val) % 360; + case "rad": + return parseFloat(val) * 180 / Math.PI % 360; + case "grad": + return parseFloat(val) * 0.9 % 360; + case "turn": + return parseFloat(val) * 360 % 360; + default: + if ("undefined" === typeof m[2]) { + return parseFloat(val) % 360; + } + } + } + throw new Error(); +} +function isColorConstructor(node) { + var name = node.getName(); + if (!name) { + return false; + } + return /^(rgb|rgba|hsl|hsla|hwb)$/gi.test(name); +} +var Digit0 = 48; +var Digit9 = 57; +var A = 65; +var a = 97; +var f = 102; +function hexDigit(charCode) { + if (charCode < Digit0) { + return 0; + } + if (charCode <= Digit9) { + return charCode - Digit0; + } + if (charCode < a) { + charCode += a - A; + } + if (charCode >= a && charCode <= f) { + return charCode - a + 10; + } + return 0; +} +function colorFromHex(text) { + if (text[0] !== "#") { + return null; + } + switch (text.length) { + case 4: + return { + red: hexDigit(text.charCodeAt(1)) * 17 / 255, + green: hexDigit(text.charCodeAt(2)) * 17 / 255, + blue: hexDigit(text.charCodeAt(3)) * 17 / 255, + alpha: 1 + }; + case 5: + return { + red: hexDigit(text.charCodeAt(1)) * 17 / 255, + green: hexDigit(text.charCodeAt(2)) * 17 / 255, + blue: hexDigit(text.charCodeAt(3)) * 17 / 255, + alpha: hexDigit(text.charCodeAt(4)) * 17 / 255 + }; + case 7: + return { + red: (hexDigit(text.charCodeAt(1)) * 16 + hexDigit(text.charCodeAt(2))) / 255, + green: (hexDigit(text.charCodeAt(3)) * 16 + hexDigit(text.charCodeAt(4))) / 255, + blue: (hexDigit(text.charCodeAt(5)) * 16 + hexDigit(text.charCodeAt(6))) / 255, + alpha: 1 + }; + case 9: + return { + red: (hexDigit(text.charCodeAt(1)) * 16 + hexDigit(text.charCodeAt(2))) / 255, + green: (hexDigit(text.charCodeAt(3)) * 16 + hexDigit(text.charCodeAt(4))) / 255, + blue: (hexDigit(text.charCodeAt(5)) * 16 + hexDigit(text.charCodeAt(6))) / 255, + alpha: (hexDigit(text.charCodeAt(7)) * 16 + hexDigit(text.charCodeAt(8))) / 255 + }; + } + return null; +} +function colorFromHSL(hue, sat, light, alpha) { + if (alpha === void 0) { + alpha = 1; + } + hue = hue / 60; + if (sat === 0) { + return { red: light, green: light, blue: light, alpha }; + } else { + var hueToRgb = function(t12, t22, hue2) { + while (hue2 < 0) { + hue2 += 6; + } + while (hue2 >= 6) { + hue2 -= 6; + } + if (hue2 < 1) { + return (t22 - t12) * hue2 + t12; + } + if (hue2 < 3) { + return t22; + } + if (hue2 < 4) { + return (t22 - t12) * (4 - hue2) + t12; + } + return t12; + }; + var t2 = light <= 0.5 ? light * (sat + 1) : light + sat - light * sat; + var t1 = light * 2 - t2; + return { red: hueToRgb(t1, t2, hue + 2), green: hueToRgb(t1, t2, hue), blue: hueToRgb(t1, t2, hue - 2), alpha }; + } +} +function hslFromColor(rgba) { + var r = rgba.red; + var g = rgba.green; + var b = rgba.blue; + var a2 = rgba.alpha; + var max = Math.max(r, g, b); + var min = Math.min(r, g, b); + var h = 0; + var s = 0; + var l = (min + max) / 2; + var chroma = max - min; + if (chroma > 0) { + s = Math.min(l <= 0.5 ? chroma / (2 * l) : chroma / (2 - 2 * l), 1); + switch (max) { + case r: + h = (g - b) / chroma + (g < b ? 6 : 0); + break; + case g: + h = (b - r) / chroma + 2; + break; + case b: + h = (r - g) / chroma + 4; + break; + } + h *= 60; + h = Math.round(h); + } + return { h, s, l, a: a2 }; +} +function colorFromHWB(hue, white, black, alpha) { + if (alpha === void 0) { + alpha = 1; + } + if (white + black >= 1) { + var gray = white / (white + black); + return { red: gray, green: gray, blue: gray, alpha }; + } + var rgb = colorFromHSL(hue, 1, 0.5, alpha); + var red = rgb.red; + red *= 1 - white - black; + red += white; + var green = rgb.green; + green *= 1 - white - black; + green += white; + var blue = rgb.blue; + blue *= 1 - white - black; + blue += white; + return { + red, + green, + blue, + alpha + }; +} +function hwbFromColor(rgba) { + var hsl = hslFromColor(rgba); + var white = Math.min(rgba.red, rgba.green, rgba.blue); + var black = 1 - Math.max(rgba.red, rgba.green, rgba.blue); + return { + h: hsl.h, + w: white, + b: black, + a: hsl.a + }; +} +function getColorValue(node) { + if (node.type === NodeType.HexColorValue) { + var text = node.getText(); + return colorFromHex(text); + } else if (node.type === NodeType.Function) { + var functionNode = node; + var name = functionNode.getName(); + var colorValues = functionNode.getArguments().getChildren(); + if (colorValues.length === 1) { + var functionArg = colorValues[0].getChildren(); + if (functionArg.length === 1 && functionArg[0].type === NodeType.Expression) { + colorValues = functionArg[0].getChildren(); + if (colorValues.length === 3) { + var lastValue = colorValues[2]; + if (lastValue instanceof BinaryExpression) { + var left = lastValue.getLeft(), right = lastValue.getRight(), operator = lastValue.getOperator(); + if (left && right && operator && operator.matches("/")) { + colorValues = [colorValues[0], colorValues[1], left, right]; + } + } + } + } + } + if (!name || colorValues.length < 3 || colorValues.length > 4) { + return null; + } + try { + var alpha = colorValues.length === 4 ? getNumericValue(colorValues[3], 1) : 1; + if (name === "rgb" || name === "rgba") { + return { + red: getNumericValue(colorValues[0], 255), + green: getNumericValue(colorValues[1], 255), + blue: getNumericValue(colorValues[2], 255), + alpha + }; + } else if (name === "hsl" || name === "hsla") { + var h = getAngle(colorValues[0]); + var s = getNumericValue(colorValues[1], 100); + var l = getNumericValue(colorValues[2], 100); + return colorFromHSL(h, s, l, alpha); + } else if (name === "hwb") { + var h = getAngle(colorValues[0]); + var w = getNumericValue(colorValues[1], 100); + var b = getNumericValue(colorValues[2], 100); + return colorFromHWB(h, w, b, alpha); + } + } catch (e) { + return null; + } + } else if (node.type === NodeType.Identifier) { + if (node.parent && node.parent.type !== NodeType.Term) { + return null; + } + var term = node.parent; + if (term && term.parent && term.parent.type === NodeType.BinaryExpression) { + var expression = term.parent; + if (expression.parent && expression.parent.type === NodeType.ListEntry && expression.parent.key === expression) { + return null; + } + } + var candidateColor = node.getText().toLowerCase(); + if (candidateColor === "none") { + return null; + } + var colorHex = colors[candidateColor]; + if (colorHex) { + return colorFromHex(colorHex); + } + } + return null; +} + +// node_modules/vscode-css-languageservice/lib/esm/languageFacts/builtinData.js +var positionKeywords = { + "bottom": "Computes to \u2018100%\u2019 for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.", + "center": "Computes to \u201850%\u2019 (\u2018left 50%\u2019) for the horizontal position if the horizontal position is not otherwise specified, or \u201850%\u2019 (\u2018top 50%\u2019) for the vertical position if it is.", + "left": "Computes to \u20180%\u2019 for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.", + "right": "Computes to \u2018100%\u2019 for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.", + "top": "Computes to \u20180%\u2019 for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset." +}; +var repeatStyleKeywords = { + "no-repeat": "Placed once and not repeated in this direction.", + "repeat": "Repeated in this direction as often as needed to cover the background painting area.", + "repeat-x": "Computes to \u2018repeat no-repeat\u2019.", + "repeat-y": "Computes to \u2018no-repeat repeat\u2019.", + "round": "Repeated as often as will fit within the background positioning area. If it doesn\u2019t fit a whole number of times, it is rescaled so that it does.", + "space": "Repeated as often as will fit within the background positioning area without being clipped and then the images are spaced out to fill the area." +}; +var lineStyleKeywords = { + "dashed": "A series of square-ended dashes.", + "dotted": "A series of round dots.", + "double": "Two parallel solid lines with some space between them.", + "groove": "Looks as if it were carved in the canvas.", + "hidden": "Same as \u2018none\u2019, but has different behavior in the border conflict resolution rules for border-collapsed tables.", + "inset": "Looks as if the content on the inside of the border is sunken into the canvas.", + "none": "No border. Color and width are ignored.", + "outset": "Looks as if the content on the inside of the border is coming out of the canvas.", + "ridge": "Looks as if it were coming out of the canvas.", + "solid": "A single line segment." +}; +var lineWidthKeywords = ["medium", "thick", "thin"]; +var boxKeywords = { + "border-box": "The background is painted within (clipped to) the border box.", + "content-box": "The background is painted within (clipped to) the content box.", + "padding-box": "The background is painted within (clipped to) the padding box." +}; +var geometryBoxKeywords = { + "margin-box": "Uses the margin box as reference box.", + "fill-box": "Uses the object bounding box as reference box.", + "stroke-box": "Uses the stroke bounding box as reference box.", + "view-box": "Uses the nearest SVG viewport as reference box." +}; +var cssWideKeywords = { + "initial": "Represents the value specified as the property\u2019s initial value.", + "inherit": "Represents the computed value of the property on the element\u2019s parent.", + "unset": "Acts as either `inherit` or `initial`, depending on whether the property is inherited or not." +}; +var cssWideFunctions = { + "var()": "Evaluates the value of a custom variable.", + "calc()": "Evaluates an mathematical expression. The following operators can be used: + - * /." +}; +var imageFunctions = { + "url()": "Reference an image file by URL", + "image()": "Provide image fallbacks and annotations.", + "-webkit-image-set()": "Provide multiple resolutions. Remember to use unprefixed image-set() in addition.", + "image-set()": "Provide multiple resolutions of an image and const the UA decide which is most appropriate in a given situation.", + "-moz-element()": "Use an element in the document as an image. Remember to use unprefixed element() in addition.", + "element()": "Use an element in the document as an image.", + "cross-fade()": "Indicates the two images to be combined and how far along in the transition the combination is.", + "-webkit-gradient()": "Deprecated. Use modern linear-gradient() or radial-gradient() instead.", + "-webkit-linear-gradient()": "Linear gradient. Remember to use unprefixed version in addition.", + "-moz-linear-gradient()": "Linear gradient. Remember to use unprefixed version in addition.", + "-o-linear-gradient()": "Linear gradient. Remember to use unprefixed version in addition.", + "linear-gradient()": "A linear gradient is created by specifying a straight gradient line, and then several colors placed along that line.", + "-webkit-repeating-linear-gradient()": "Repeating Linear gradient. Remember to use unprefixed version in addition.", + "-moz-repeating-linear-gradient()": "Repeating Linear gradient. Remember to use unprefixed version in addition.", + "-o-repeating-linear-gradient()": "Repeating Linear gradient. Remember to use unprefixed version in addition.", + "repeating-linear-gradient()": "Same as linear-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop\u2019s position and the first specified color-stop\u2019s position.", + "-webkit-radial-gradient()": "Radial gradient. Remember to use unprefixed version in addition.", + "-moz-radial-gradient()": "Radial gradient. Remember to use unprefixed version in addition.", + "radial-gradient()": "Colors emerge from a single point and smoothly spread outward in a circular or elliptical shape.", + "-webkit-repeating-radial-gradient()": "Repeating radial gradient. Remember to use unprefixed version in addition.", + "-moz-repeating-radial-gradient()": "Repeating radial gradient. Remember to use unprefixed version in addition.", + "repeating-radial-gradient()": "Same as radial-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop\u2019s position and the first specified color-stop\u2019s position." +}; +var transitionTimingFunctions = { + "ease": "Equivalent to cubic-bezier(0.25, 0.1, 0.25, 1.0).", + "ease-in": "Equivalent to cubic-bezier(0.42, 0, 1.0, 1.0).", + "ease-in-out": "Equivalent to cubic-bezier(0.42, 0, 0.58, 1.0).", + "ease-out": "Equivalent to cubic-bezier(0, 0, 0.58, 1.0).", + "linear": "Equivalent to cubic-bezier(0.0, 0.0, 1.0, 1.0).", + "step-end": "Equivalent to steps(1, end).", + "step-start": "Equivalent to steps(1, start).", + "steps()": "The first parameter specifies the number of intervals in the function. The second parameter, which is optional, is either the value \u201Cstart\u201D or \u201Cend\u201D.", + "cubic-bezier()": "Specifies a cubic-bezier curve. The four values specify points P1 and P2 of the curve as (x1, y1, x2, y2).", + "cubic-bezier(0.6, -0.28, 0.735, 0.045)": "Ease-in Back. Overshoots.", + "cubic-bezier(0.68, -0.55, 0.265, 1.55)": "Ease-in-out Back. Overshoots.", + "cubic-bezier(0.175, 0.885, 0.32, 1.275)": "Ease-out Back. Overshoots.", + "cubic-bezier(0.6, 0.04, 0.98, 0.335)": "Ease-in Circular. Based on half circle.", + "cubic-bezier(0.785, 0.135, 0.15, 0.86)": "Ease-in-out Circular. Based on half circle.", + "cubic-bezier(0.075, 0.82, 0.165, 1)": "Ease-out Circular. Based on half circle.", + "cubic-bezier(0.55, 0.055, 0.675, 0.19)": "Ease-in Cubic. Based on power of three.", + "cubic-bezier(0.645, 0.045, 0.355, 1)": "Ease-in-out Cubic. Based on power of three.", + "cubic-bezier(0.215, 0.610, 0.355, 1)": "Ease-out Cubic. Based on power of three.", + "cubic-bezier(0.95, 0.05, 0.795, 0.035)": "Ease-in Exponential. Based on two to the power ten.", + "cubic-bezier(1, 0, 0, 1)": "Ease-in-out Exponential. Based on two to the power ten.", + "cubic-bezier(0.19, 1, 0.22, 1)": "Ease-out Exponential. Based on two to the power ten.", + "cubic-bezier(0.47, 0, 0.745, 0.715)": "Ease-in Sine.", + "cubic-bezier(0.445, 0.05, 0.55, 0.95)": "Ease-in-out Sine.", + "cubic-bezier(0.39, 0.575, 0.565, 1)": "Ease-out Sine.", + "cubic-bezier(0.55, 0.085, 0.68, 0.53)": "Ease-in Quadratic. Based on power of two.", + "cubic-bezier(0.455, 0.03, 0.515, 0.955)": "Ease-in-out Quadratic. Based on power of two.", + "cubic-bezier(0.25, 0.46, 0.45, 0.94)": "Ease-out Quadratic. Based on power of two.", + "cubic-bezier(0.895, 0.03, 0.685, 0.22)": "Ease-in Quartic. Based on power of four.", + "cubic-bezier(0.77, 0, 0.175, 1)": "Ease-in-out Quartic. Based on power of four.", + "cubic-bezier(0.165, 0.84, 0.44, 1)": "Ease-out Quartic. Based on power of four.", + "cubic-bezier(0.755, 0.05, 0.855, 0.06)": "Ease-in Quintic. Based on power of five.", + "cubic-bezier(0.86, 0, 0.07, 1)": "Ease-in-out Quintic. Based on power of five.", + "cubic-bezier(0.23, 1, 0.320, 1)": "Ease-out Quintic. Based on power of five." +}; +var basicShapeFunctions = { + "circle()": "Defines a circle.", + "ellipse()": "Defines an ellipse.", + "inset()": "Defines an inset rectangle.", + "polygon()": "Defines a polygon." +}; +var units = { + "length": ["em", "rem", "ex", "px", "cm", "mm", "in", "pt", "pc", "ch", "vw", "vh", "vmin", "vmax"], + "angle": ["deg", "rad", "grad", "turn"], + "time": ["ms", "s"], + "frequency": ["Hz", "kHz"], + "resolution": ["dpi", "dpcm", "dppx"], + "percentage": ["%", "fr"] +}; +var html5Tags = [ + "a", + "abbr", + "address", + "area", + "article", + "aside", + "audio", + "b", + "base", + "bdi", + "bdo", + "blockquote", + "body", + "br", + "button", + "canvas", + "caption", + "cite", + "code", + "col", + "colgroup", + "data", + "datalist", + "dd", + "del", + "details", + "dfn", + "dialog", + "div", + "dl", + "dt", + "em", + "embed", + "fieldset", + "figcaption", + "figure", + "footer", + "form", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "head", + "header", + "hgroup", + "hr", + "html", + "i", + "iframe", + "img", + "input", + "ins", + "kbd", + "keygen", + "label", + "legend", + "li", + "link", + "main", + "map", + "mark", + "menu", + "menuitem", + "meta", + "meter", + "nav", + "noscript", + "object", + "ol", + "optgroup", + "option", + "output", + "p", + "param", + "picture", + "pre", + "progress", + "q", + "rb", + "rp", + "rt", + "rtc", + "ruby", + "s", + "samp", + "script", + "section", + "select", + "small", + "source", + "span", + "strong", + "style", + "sub", + "summary", + "sup", + "table", + "tbody", + "td", + "template", + "textarea", + "tfoot", + "th", + "thead", + "time", + "title", + "tr", + "track", + "u", + "ul", + "const", + "video", + "wbr" +]; +var svgElements = [ + "circle", + "clipPath", + "cursor", + "defs", + "desc", + "ellipse", + "feBlend", + "feColorMatrix", + "feComponentTransfer", + "feComposite", + "feConvolveMatrix", + "feDiffuseLighting", + "feDisplacementMap", + "feDistantLight", + "feDropShadow", + "feFlood", + "feFuncA", + "feFuncB", + "feFuncG", + "feFuncR", + "feGaussianBlur", + "feImage", + "feMerge", + "feMergeNode", + "feMorphology", + "feOffset", + "fePointLight", + "feSpecularLighting", + "feSpotLight", + "feTile", + "feTurbulence", + "filter", + "foreignObject", + "g", + "hatch", + "hatchpath", + "image", + "line", + "linearGradient", + "marker", + "mask", + "mesh", + "meshpatch", + "meshrow", + "metadata", + "mpath", + "path", + "pattern", + "polygon", + "polyline", + "radialGradient", + "rect", + "set", + "solidcolor", + "stop", + "svg", + "switch", + "symbol", + "text", + "textPath", + "tspan", + "use", + "view" +]; +var pageBoxDirectives = [ + "@bottom-center", + "@bottom-left", + "@bottom-left-corner", + "@bottom-right", + "@bottom-right-corner", + "@left-bottom", + "@left-middle", + "@left-top", + "@right-bottom", + "@right-middle", + "@right-top", + "@top-center", + "@top-left", + "@top-left-corner", + "@top-right", + "@top-right-corner" +]; + +// node_modules/vscode-css-languageservice/lib/esm/utils/objects.js +function values(obj) { + return Object.keys(obj).map(function(key) { + return obj[key]; + }); +} +function css_worker_isDefined(obj) { + return typeof obj !== "undefined"; +} + +// node_modules/vscode-css-languageservice/lib/esm/parser/cssParser.js +var __spreadArray = function(to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) + ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +var Parser = function() { + function Parser2(scnr) { + if (scnr === void 0) { + scnr = new Scanner(); + } + this.keyframeRegex = /^@(\-(webkit|ms|moz|o)\-)?keyframes$/i; + this.scanner = scnr; + this.token = { type: TokenType.EOF, offset: -1, len: 0, text: "" }; + this.prevToken = void 0; + } + Parser2.prototype.peekIdent = function(text) { + return TokenType.Ident === this.token.type && text.length === this.token.text.length && text === this.token.text.toLowerCase(); + }; + Parser2.prototype.peekKeyword = function(text) { + return TokenType.AtKeyword === this.token.type && text.length === this.token.text.length && text === this.token.text.toLowerCase(); + }; + Parser2.prototype.peekDelim = function(text) { + return TokenType.Delim === this.token.type && text === this.token.text; + }; + Parser2.prototype.peek = function(type) { + return type === this.token.type; + }; + Parser2.prototype.peekOne = function() { + var types = []; + for (var _i = 0; _i < arguments.length; _i++) { + types[_i] = arguments[_i]; + } + return types.indexOf(this.token.type) !== -1; + }; + Parser2.prototype.peekRegExp = function(type, regEx) { + if (type !== this.token.type) { + return false; + } + return regEx.test(this.token.text); + }; + Parser2.prototype.hasWhitespace = function() { + return !!this.prevToken && this.prevToken.offset + this.prevToken.len !== this.token.offset; + }; + Parser2.prototype.consumeToken = function() { + this.prevToken = this.token; + this.token = this.scanner.scan(); + }; + Parser2.prototype.acceptUnicodeRange = function() { + var token = this.scanner.tryScanUnicode(); + if (token) { + this.prevToken = token; + this.token = this.scanner.scan(); + return true; + } + return false; + }; + Parser2.prototype.mark = function() { + return { + prev: this.prevToken, + curr: this.token, + pos: this.scanner.pos() + }; + }; + Parser2.prototype.restoreAtMark = function(mark) { + this.prevToken = mark.prev; + this.token = mark.curr; + this.scanner.goBackTo(mark.pos); + }; + Parser2.prototype.try = function(func) { + var pos = this.mark(); + var node = func(); + if (!node) { + this.restoreAtMark(pos); + return null; + } + return node; + }; + Parser2.prototype.acceptOneKeyword = function(keywords) { + if (TokenType.AtKeyword === this.token.type) { + for (var _i = 0, keywords_1 = keywords; _i < keywords_1.length; _i++) { + var keyword = keywords_1[_i]; + if (keyword.length === this.token.text.length && keyword === this.token.text.toLowerCase()) { + this.consumeToken(); + return true; + } + } + } + return false; + }; + Parser2.prototype.accept = function(type) { + if (type === this.token.type) { + this.consumeToken(); + return true; + } + return false; + }; + Parser2.prototype.acceptIdent = function(text) { + if (this.peekIdent(text)) { + this.consumeToken(); + return true; + } + return false; + }; + Parser2.prototype.acceptKeyword = function(text) { + if (this.peekKeyword(text)) { + this.consumeToken(); + return true; + } + return false; + }; + Parser2.prototype.acceptDelim = function(text) { + if (this.peekDelim(text)) { + this.consumeToken(); + return true; + } + return false; + }; + Parser2.prototype.acceptRegexp = function(regEx) { + if (regEx.test(this.token.text)) { + this.consumeToken(); + return true; + } + return false; + }; + Parser2.prototype._parseRegexp = function(regEx) { + var node = this.createNode(NodeType.Identifier); + do { + } while (this.acceptRegexp(regEx)); + return this.finish(node); + }; + Parser2.prototype.acceptUnquotedString = function() { + var pos = this.scanner.pos(); + this.scanner.goBackTo(this.token.offset); + var unquoted = this.scanner.scanUnquotedString(); + if (unquoted) { + this.token = unquoted; + this.consumeToken(); + return true; + } + this.scanner.goBackTo(pos); + return false; + }; + Parser2.prototype.resync = function(resyncTokens, resyncStopTokens) { + while (true) { + if (resyncTokens && resyncTokens.indexOf(this.token.type) !== -1) { + this.consumeToken(); + return true; + } else if (resyncStopTokens && resyncStopTokens.indexOf(this.token.type) !== -1) { + return true; + } else { + if (this.token.type === TokenType.EOF) { + return false; + } + this.token = this.scanner.scan(); + } + } + }; + Parser2.prototype.createNode = function(nodeType) { + return new css_worker_Node(this.token.offset, this.token.len, nodeType); + }; + Parser2.prototype.create = function(ctor) { + return new ctor(this.token.offset, this.token.len); + }; + Parser2.prototype.finish = function(node, error, resyncTokens, resyncStopTokens) { + if (!(node instanceof Nodelist)) { + if (error) { + this.markError(node, error, resyncTokens, resyncStopTokens); + } + if (this.prevToken) { + var prevEnd = this.prevToken.offset + this.prevToken.len; + node.length = prevEnd > node.offset ? prevEnd - node.offset : 0; + } + } + return node; + }; + Parser2.prototype.markError = function(node, error, resyncTokens, resyncStopTokens) { + if (this.token !== this.lastErrorToken) { + node.addIssue(new Marker(node, error, Level.Error, void 0, this.token.offset, this.token.len)); + this.lastErrorToken = this.token; + } + if (resyncTokens || resyncStopTokens) { + this.resync(resyncTokens, resyncStopTokens); + } + }; + Parser2.prototype.parseStylesheet = function(textDocument) { + var versionId = textDocument.version; + var text = textDocument.getText(); + var textProvider = function(offset, length) { + if (textDocument.version !== versionId) { + throw new Error("Underlying model has changed, AST is no longer valid"); + } + return text.substr(offset, length); + }; + return this.internalParse(text, this._parseStylesheet, textProvider); + }; + Parser2.prototype.internalParse = function(input, parseFunc, textProvider) { + this.scanner.setSource(input); + this.token = this.scanner.scan(); + var node = parseFunc.bind(this)(); + if (node) { + if (textProvider) { + node.textProvider = textProvider; + } else { + node.textProvider = function(offset, length) { + return input.substr(offset, length); + }; + } + } + return node; + }; + Parser2.prototype._parseStylesheet = function() { + var node = this.create(Stylesheet); + while (node.addChild(this._parseStylesheetStart())) { + } + var inRecovery = false; + do { + var hasMatch = false; + do { + hasMatch = false; + var statement = this._parseStylesheetStatement(); + if (statement) { + node.addChild(statement); + hasMatch = true; + inRecovery = false; + if (!this.peek(TokenType.EOF) && this._needsSemicolonAfter(statement) && !this.accept(TokenType.SemiColon)) { + this.markError(node, ParseError.SemiColonExpected); + } + } + while (this.accept(TokenType.SemiColon) || this.accept(TokenType.CDO) || this.accept(TokenType.CDC)) { + hasMatch = true; + inRecovery = false; + } + } while (hasMatch); + if (this.peek(TokenType.EOF)) { + break; + } + if (!inRecovery) { + if (this.peek(TokenType.AtKeyword)) { + this.markError(node, ParseError.UnknownAtRule); + } else { + this.markError(node, ParseError.RuleOrSelectorExpected); + } + inRecovery = true; + } + this.consumeToken(); + } while (!this.peek(TokenType.EOF)); + return this.finish(node); + }; + Parser2.prototype._parseStylesheetStart = function() { + return this._parseCharset(); + }; + Parser2.prototype._parseStylesheetStatement = function(isNested) { + if (isNested === void 0) { + isNested = false; + } + if (this.peek(TokenType.AtKeyword)) { + return this._parseStylesheetAtStatement(isNested); + } + return this._parseRuleset(isNested); + }; + Parser2.prototype._parseStylesheetAtStatement = function(isNested) { + if (isNested === void 0) { + isNested = false; + } + return this._parseImport() || this._parseMedia(isNested) || this._parsePage() || this._parseFontFace() || this._parseKeyframe() || this._parseSupports(isNested) || this._parseViewPort() || this._parseNamespace() || this._parseDocument() || this._parseUnknownAtRule(); + }; + Parser2.prototype._tryParseRuleset = function(isNested) { + var mark = this.mark(); + if (this._parseSelector(isNested)) { + while (this.accept(TokenType.Comma) && this._parseSelector(isNested)) { + } + if (this.accept(TokenType.CurlyL)) { + this.restoreAtMark(mark); + return this._parseRuleset(isNested); + } + } + this.restoreAtMark(mark); + return null; + }; + Parser2.prototype._parseRuleset = function(isNested) { + if (isNested === void 0) { + isNested = false; + } + var node = this.create(RuleSet); + var selectors = node.getSelectors(); + if (!selectors.addChild(this._parseSelector(isNested))) { + return null; + } + while (this.accept(TokenType.Comma)) { + if (!selectors.addChild(this._parseSelector(isNested))) { + return this.finish(node, ParseError.SelectorExpected); + } + } + return this._parseBody(node, this._parseRuleSetDeclaration.bind(this)); + }; + Parser2.prototype._parseRuleSetDeclarationAtStatement = function() { + return this._parseUnknownAtRule(); + }; + Parser2.prototype._parseRuleSetDeclaration = function() { + if (this.peek(TokenType.AtKeyword)) { + return this._parseRuleSetDeclarationAtStatement(); + } + return this._parseDeclaration(); + }; + Parser2.prototype._needsSemicolonAfter = function(node) { + switch (node.type) { + case NodeType.Keyframe: + case NodeType.ViewPort: + case NodeType.Media: + case NodeType.Ruleset: + case NodeType.Namespace: + case NodeType.If: + case NodeType.For: + case NodeType.Each: + case NodeType.While: + case NodeType.MixinDeclaration: + case NodeType.FunctionDeclaration: + case NodeType.MixinContentDeclaration: + return false; + case NodeType.ExtendsReference: + case NodeType.MixinContentReference: + case NodeType.ReturnStatement: + case NodeType.MediaQuery: + case NodeType.Debug: + case NodeType.Import: + case NodeType.AtApplyRule: + case NodeType.CustomPropertyDeclaration: + return true; + case NodeType.VariableDeclaration: + return node.needsSemicolon; + case NodeType.MixinReference: + return !node.getContent(); + case NodeType.Declaration: + return !node.getNestedProperties(); + } + return false; + }; + Parser2.prototype._parseDeclarations = function(parseDeclaration) { + var node = this.create(Declarations); + if (!this.accept(TokenType.CurlyL)) { + return null; + } + var decl = parseDeclaration(); + while (node.addChild(decl)) { + if (this.peek(TokenType.CurlyR)) { + break; + } + if (this._needsSemicolonAfter(decl) && !this.accept(TokenType.SemiColon)) { + return this.finish(node, ParseError.SemiColonExpected, [TokenType.SemiColon, TokenType.CurlyR]); + } + if (decl && this.prevToken && this.prevToken.type === TokenType.SemiColon) { + decl.semicolonPosition = this.prevToken.offset; + } + while (this.accept(TokenType.SemiColon)) { + } + decl = parseDeclaration(); + } + if (!this.accept(TokenType.CurlyR)) { + return this.finish(node, ParseError.RightCurlyExpected, [TokenType.CurlyR, TokenType.SemiColon]); + } + return this.finish(node); + }; + Parser2.prototype._parseBody = function(node, parseDeclaration) { + if (!node.setDeclarations(this._parseDeclarations(parseDeclaration))) { + return this.finish(node, ParseError.LeftCurlyExpected, [TokenType.CurlyR, TokenType.SemiColon]); + } + return this.finish(node); + }; + Parser2.prototype._parseSelector = function(isNested) { + var node = this.create(Selector); + var hasContent = false; + if (isNested) { + hasContent = node.addChild(this._parseCombinator()); + } + while (node.addChild(this._parseSimpleSelector())) { + hasContent = true; + node.addChild(this._parseCombinator()); + } + return hasContent ? this.finish(node) : null; + }; + Parser2.prototype._parseDeclaration = function(stopTokens) { + var custonProperty = this._tryParseCustomPropertyDeclaration(stopTokens); + if (custonProperty) { + return custonProperty; + } + var node = this.create(Declaration); + if (!node.setProperty(this._parseProperty())) { + return null; + } + if (!this.accept(TokenType.Colon)) { + return this.finish(node, ParseError.ColonExpected, [TokenType.Colon], stopTokens || [TokenType.SemiColon]); + } + if (this.prevToken) { + node.colonPosition = this.prevToken.offset; + } + if (!node.setValue(this._parseExpr())) { + return this.finish(node, ParseError.PropertyValueExpected); + } + node.addChild(this._parsePrio()); + if (this.peek(TokenType.SemiColon)) { + node.semicolonPosition = this.token.offset; + } + return this.finish(node); + }; + Parser2.prototype._tryParseCustomPropertyDeclaration = function(stopTokens) { + if (!this.peekRegExp(TokenType.Ident, /^--/)) { + return null; + } + var node = this.create(CustomPropertyDeclaration); + if (!node.setProperty(this._parseProperty())) { + return null; + } + if (!this.accept(TokenType.Colon)) { + return this.finish(node, ParseError.ColonExpected, [TokenType.Colon]); + } + if (this.prevToken) { + node.colonPosition = this.prevToken.offset; + } + var mark = this.mark(); + if (this.peek(TokenType.CurlyL)) { + var propertySet = this.create(CustomPropertySet); + var declarations = this._parseDeclarations(this._parseRuleSetDeclaration.bind(this)); + if (propertySet.setDeclarations(declarations) && !declarations.isErroneous(true)) { + propertySet.addChild(this._parsePrio()); + if (this.peek(TokenType.SemiColon)) { + this.finish(propertySet); + node.setPropertySet(propertySet); + node.semicolonPosition = this.token.offset; + return this.finish(node); + } + } + this.restoreAtMark(mark); + } + var expression = this._parseExpr(); + if (expression && !expression.isErroneous(true)) { + this._parsePrio(); + if (this.peekOne.apply(this, __spreadArray(__spreadArray([], stopTokens || [], false), [TokenType.SemiColon, TokenType.EOF], false))) { + node.setValue(expression); + if (this.peek(TokenType.SemiColon)) { + node.semicolonPosition = this.token.offset; + } + return this.finish(node); + } + } + this.restoreAtMark(mark); + node.addChild(this._parseCustomPropertyValue(stopTokens)); + node.addChild(this._parsePrio()); + if (css_worker_isDefined(node.colonPosition) && this.token.offset === node.colonPosition + 1) { + return this.finish(node, ParseError.PropertyValueExpected); + } + return this.finish(node); + }; + Parser2.prototype._parseCustomPropertyValue = function(stopTokens) { + var _this = this; + if (stopTokens === void 0) { + stopTokens = [TokenType.CurlyR]; + } + var node = this.create(css_worker_Node); + var isTopLevel = function() { + return curlyDepth === 0 && parensDepth === 0 && bracketsDepth === 0; + }; + var onStopToken = function() { + return stopTokens.indexOf(_this.token.type) !== -1; + }; + var curlyDepth = 0; + var parensDepth = 0; + var bracketsDepth = 0; + done: + while (true) { + switch (this.token.type) { + case TokenType.SemiColon: + if (isTopLevel()) { + break done; + } + break; + case TokenType.Exclamation: + if (isTopLevel()) { + break done; + } + break; + case TokenType.CurlyL: + curlyDepth++; + break; + case TokenType.CurlyR: + curlyDepth--; + if (curlyDepth < 0) { + if (onStopToken() && parensDepth === 0 && bracketsDepth === 0) { + break done; + } + return this.finish(node, ParseError.LeftCurlyExpected); + } + break; + case TokenType.ParenthesisL: + parensDepth++; + break; + case TokenType.ParenthesisR: + parensDepth--; + if (parensDepth < 0) { + if (onStopToken() && bracketsDepth === 0 && curlyDepth === 0) { + break done; + } + return this.finish(node, ParseError.LeftParenthesisExpected); + } + break; + case TokenType.BracketL: + bracketsDepth++; + break; + case TokenType.BracketR: + bracketsDepth--; + if (bracketsDepth < 0) { + return this.finish(node, ParseError.LeftSquareBracketExpected); + } + break; + case TokenType.BadString: + break done; + case TokenType.EOF: + var error = ParseError.RightCurlyExpected; + if (bracketsDepth > 0) { + error = ParseError.RightSquareBracketExpected; + } else if (parensDepth > 0) { + error = ParseError.RightParenthesisExpected; + } + return this.finish(node, error); + } + this.consumeToken(); + } + return this.finish(node); + }; + Parser2.prototype._tryToParseDeclaration = function(stopTokens) { + var mark = this.mark(); + if (this._parseProperty() && this.accept(TokenType.Colon)) { + this.restoreAtMark(mark); + return this._parseDeclaration(stopTokens); + } + this.restoreAtMark(mark); + return null; + }; + Parser2.prototype._parseProperty = function() { + var node = this.create(Property); + var mark = this.mark(); + if (this.acceptDelim("*") || this.acceptDelim("_")) { + if (this.hasWhitespace()) { + this.restoreAtMark(mark); + return null; + } + } + if (node.setIdentifier(this._parsePropertyIdentifier())) { + return this.finish(node); + } + return null; + }; + Parser2.prototype._parsePropertyIdentifier = function() { + return this._parseIdent(); + }; + Parser2.prototype._parseCharset = function() { + if (!this.peek(TokenType.Charset)) { + return null; + } + var node = this.create(css_worker_Node); + this.consumeToken(); + if (!this.accept(TokenType.String)) { + return this.finish(node, ParseError.IdentifierExpected); + } + if (!this.accept(TokenType.SemiColon)) { + return this.finish(node, ParseError.SemiColonExpected); + } + return this.finish(node); + }; + Parser2.prototype._parseImport = function() { + if (!this.peekKeyword("@import")) { + return null; + } + var node = this.create(Import); + this.consumeToken(); + if (!node.addChild(this._parseURILiteral()) && !node.addChild(this._parseStringLiteral())) { + return this.finish(node, ParseError.URIOrStringExpected); + } + if (!this.peek(TokenType.SemiColon) && !this.peek(TokenType.EOF)) { + node.setMedialist(this._parseMediaQueryList()); + } + return this.finish(node); + }; + Parser2.prototype._parseNamespace = function() { + if (!this.peekKeyword("@namespace")) { + return null; + } + var node = this.create(Namespace); + this.consumeToken(); + if (!node.addChild(this._parseURILiteral())) { + node.addChild(this._parseIdent()); + if (!node.addChild(this._parseURILiteral()) && !node.addChild(this._parseStringLiteral())) { + return this.finish(node, ParseError.URIExpected, [TokenType.SemiColon]); + } + } + if (!this.accept(TokenType.SemiColon)) { + return this.finish(node, ParseError.SemiColonExpected); + } + return this.finish(node); + }; + Parser2.prototype._parseFontFace = function() { + if (!this.peekKeyword("@font-face")) { + return null; + } + var node = this.create(FontFace); + this.consumeToken(); + return this._parseBody(node, this._parseRuleSetDeclaration.bind(this)); + }; + Parser2.prototype._parseViewPort = function() { + if (!this.peekKeyword("@-ms-viewport") && !this.peekKeyword("@-o-viewport") && !this.peekKeyword("@viewport")) { + return null; + } + var node = this.create(ViewPort); + this.consumeToken(); + return this._parseBody(node, this._parseRuleSetDeclaration.bind(this)); + }; + Parser2.prototype._parseKeyframe = function() { + if (!this.peekRegExp(TokenType.AtKeyword, this.keyframeRegex)) { + return null; + } + var node = this.create(Keyframe); + var atNode = this.create(css_worker_Node); + this.consumeToken(); + node.setKeyword(this.finish(atNode)); + if (atNode.matches("@-ms-keyframes")) { + this.markError(atNode, ParseError.UnknownKeyword); + } + if (!node.setIdentifier(this._parseKeyframeIdent())) { + return this.finish(node, ParseError.IdentifierExpected, [TokenType.CurlyR]); + } + return this._parseBody(node, this._parseKeyframeSelector.bind(this)); + }; + Parser2.prototype._parseKeyframeIdent = function() { + return this._parseIdent([ReferenceType.Keyframe]); + }; + Parser2.prototype._parseKeyframeSelector = function() { + var node = this.create(KeyframeSelector); + if (!node.addChild(this._parseIdent()) && !this.accept(TokenType.Percentage)) { + return null; + } + while (this.accept(TokenType.Comma)) { + if (!node.addChild(this._parseIdent()) && !this.accept(TokenType.Percentage)) { + return this.finish(node, ParseError.PercentageExpected); + } + } + return this._parseBody(node, this._parseRuleSetDeclaration.bind(this)); + }; + Parser2.prototype._tryParseKeyframeSelector = function() { + var node = this.create(KeyframeSelector); + var pos = this.mark(); + if (!node.addChild(this._parseIdent()) && !this.accept(TokenType.Percentage)) { + return null; + } + while (this.accept(TokenType.Comma)) { + if (!node.addChild(this._parseIdent()) && !this.accept(TokenType.Percentage)) { + this.restoreAtMark(pos); + return null; + } + } + if (!this.peek(TokenType.CurlyL)) { + this.restoreAtMark(pos); + return null; + } + return this._parseBody(node, this._parseRuleSetDeclaration.bind(this)); + }; + Parser2.prototype._parseSupports = function(isNested) { + if (isNested === void 0) { + isNested = false; + } + if (!this.peekKeyword("@supports")) { + return null; + } + var node = this.create(Supports); + this.consumeToken(); + node.addChild(this._parseSupportsCondition()); + return this._parseBody(node, this._parseSupportsDeclaration.bind(this, isNested)); + }; + Parser2.prototype._parseSupportsDeclaration = function(isNested) { + if (isNested === void 0) { + isNested = false; + } + if (isNested) { + return this._tryParseRuleset(true) || this._tryToParseDeclaration() || this._parseStylesheetStatement(true); + } + return this._parseStylesheetStatement(false); + }; + Parser2.prototype._parseSupportsCondition = function() { + var node = this.create(SupportsCondition); + if (this.acceptIdent("not")) { + node.addChild(this._parseSupportsConditionInParens()); + } else { + node.addChild(this._parseSupportsConditionInParens()); + if (this.peekRegExp(TokenType.Ident, /^(and|or)$/i)) { + var text = this.token.text.toLowerCase(); + while (this.acceptIdent(text)) { + node.addChild(this._parseSupportsConditionInParens()); + } + } + } + return this.finish(node); + }; + Parser2.prototype._parseSupportsConditionInParens = function() { + var node = this.create(SupportsCondition); + if (this.accept(TokenType.ParenthesisL)) { + if (this.prevToken) { + node.lParent = this.prevToken.offset; + } + if (!node.addChild(this._tryToParseDeclaration([TokenType.ParenthesisR]))) { + if (!this._parseSupportsCondition()) { + return this.finish(node, ParseError.ConditionExpected); + } + } + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [TokenType.ParenthesisR], []); + } + if (this.prevToken) { + node.rParent = this.prevToken.offset; + } + return this.finish(node); + } else if (this.peek(TokenType.Ident)) { + var pos = this.mark(); + this.consumeToken(); + if (!this.hasWhitespace() && this.accept(TokenType.ParenthesisL)) { + var openParentCount = 1; + while (this.token.type !== TokenType.EOF && openParentCount !== 0) { + if (this.token.type === TokenType.ParenthesisL) { + openParentCount++; + } else if (this.token.type === TokenType.ParenthesisR) { + openParentCount--; + } + this.consumeToken(); + } + return this.finish(node); + } else { + this.restoreAtMark(pos); + } + } + return this.finish(node, ParseError.LeftParenthesisExpected, [], [TokenType.ParenthesisL]); + }; + Parser2.prototype._parseMediaDeclaration = function(isNested) { + if (isNested === void 0) { + isNested = false; + } + if (isNested) { + return this._tryParseRuleset(true) || this._tryToParseDeclaration() || this._parseStylesheetStatement(true); + } + return this._parseStylesheetStatement(false); + }; + Parser2.prototype._parseMedia = function(isNested) { + if (isNested === void 0) { + isNested = false; + } + if (!this.peekKeyword("@media")) { + return null; + } + var node = this.create(Media); + this.consumeToken(); + if (!node.addChild(this._parseMediaQueryList())) { + return this.finish(node, ParseError.MediaQueryExpected); + } + return this._parseBody(node, this._parseMediaDeclaration.bind(this, isNested)); + }; + Parser2.prototype._parseMediaQueryList = function() { + var node = this.create(Medialist); + if (!node.addChild(this._parseMediaQuery())) { + return this.finish(node, ParseError.MediaQueryExpected); + } + while (this.accept(TokenType.Comma)) { + if (!node.addChild(this._parseMediaQuery())) { + return this.finish(node, ParseError.MediaQueryExpected); + } + } + return this.finish(node); + }; + Parser2.prototype._parseMediaQuery = function() { + var node = this.create(MediaQuery); + var pos = this.mark(); + this.acceptIdent("not"); + if (!this.peek(TokenType.ParenthesisL)) { + if (this.acceptIdent("only")) { + } + if (!node.addChild(this._parseIdent())) { + return null; + } + if (this.acceptIdent("and")) { + node.addChild(this._parseMediaCondition()); + } + } else { + this.restoreAtMark(pos); + node.addChild(this._parseMediaCondition()); + } + return this.finish(node); + }; + Parser2.prototype._parseRatio = function() { + var pos = this.mark(); + var node = this.create(RatioValue); + if (!this._parseNumeric()) { + return null; + } + if (!this.acceptDelim("/")) { + this.restoreAtMark(pos); + return null; + } + if (!this._parseNumeric()) { + return this.finish(node, ParseError.NumberExpected); + } + return this.finish(node); + }; + Parser2.prototype._parseMediaCondition = function() { + var node = this.create(MediaCondition); + this.acceptIdent("not"); + var parseExpression = true; + while (parseExpression) { + if (!this.accept(TokenType.ParenthesisL)) { + return this.finish(node, ParseError.LeftParenthesisExpected, [], [TokenType.CurlyL]); + } + if (this.peek(TokenType.ParenthesisL) || this.peekIdent("not")) { + node.addChild(this._parseMediaCondition()); + } else { + node.addChild(this._parseMediaFeature()); + } + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [], [TokenType.CurlyL]); + } + parseExpression = this.acceptIdent("and") || this.acceptIdent("or"); + } + return this.finish(node); + }; + Parser2.prototype._parseMediaFeature = function() { + var _this = this; + var resyncStopToken = [TokenType.ParenthesisR]; + var node = this.create(MediaFeature); + var parseRangeOperator = function() { + if (_this.acceptDelim("<") || _this.acceptDelim(">")) { + if (!_this.hasWhitespace()) { + _this.acceptDelim("="); + } + return true; + } else if (_this.acceptDelim("=")) { + return true; + } + return false; + }; + if (node.addChild(this._parseMediaFeatureName())) { + if (this.accept(TokenType.Colon)) { + if (!node.addChild(this._parseMediaFeatureValue())) { + return this.finish(node, ParseError.TermExpected, [], resyncStopToken); + } + } else if (parseRangeOperator()) { + if (!node.addChild(this._parseMediaFeatureValue())) { + return this.finish(node, ParseError.TermExpected, [], resyncStopToken); + } + if (parseRangeOperator()) { + if (!node.addChild(this._parseMediaFeatureValue())) { + return this.finish(node, ParseError.TermExpected, [], resyncStopToken); + } + } + } else { + } + } else if (node.addChild(this._parseMediaFeatureValue())) { + if (!parseRangeOperator()) { + return this.finish(node, ParseError.OperatorExpected, [], resyncStopToken); + } + if (!node.addChild(this._parseMediaFeatureName())) { + return this.finish(node, ParseError.IdentifierExpected, [], resyncStopToken); + } + if (parseRangeOperator()) { + if (!node.addChild(this._parseMediaFeatureValue())) { + return this.finish(node, ParseError.TermExpected, [], resyncStopToken); + } + } + } else { + return this.finish(node, ParseError.IdentifierExpected, [], resyncStopToken); + } + return this.finish(node); + }; + Parser2.prototype._parseMediaFeatureName = function() { + return this._parseIdent(); + }; + Parser2.prototype._parseMediaFeatureValue = function() { + return this._parseRatio() || this._parseTermExpression(); + }; + Parser2.prototype._parseMedium = function() { + var node = this.create(css_worker_Node); + if (node.addChild(this._parseIdent())) { + return this.finish(node); + } else { + return null; + } + }; + Parser2.prototype._parsePageDeclaration = function() { + return this._parsePageMarginBox() || this._parseRuleSetDeclaration(); + }; + Parser2.prototype._parsePage = function() { + if (!this.peekKeyword("@page")) { + return null; + } + var node = this.create(Page); + this.consumeToken(); + if (node.addChild(this._parsePageSelector())) { + while (this.accept(TokenType.Comma)) { + if (!node.addChild(this._parsePageSelector())) { + return this.finish(node, ParseError.IdentifierExpected); + } + } + } + return this._parseBody(node, this._parsePageDeclaration.bind(this)); + }; + Parser2.prototype._parsePageMarginBox = function() { + if (!this.peek(TokenType.AtKeyword)) { + return null; + } + var node = this.create(PageBoxMarginBox); + if (!this.acceptOneKeyword(pageBoxDirectives)) { + this.markError(node, ParseError.UnknownAtRule, [], [TokenType.CurlyL]); + } + return this._parseBody(node, this._parseRuleSetDeclaration.bind(this)); + }; + Parser2.prototype._parsePageSelector = function() { + if (!this.peek(TokenType.Ident) && !this.peek(TokenType.Colon)) { + return null; + } + var node = this.create(css_worker_Node); + node.addChild(this._parseIdent()); + if (this.accept(TokenType.Colon)) { + if (!node.addChild(this._parseIdent())) { + return this.finish(node, ParseError.IdentifierExpected); + } + } + return this.finish(node); + }; + Parser2.prototype._parseDocument = function() { + if (!this.peekKeyword("@-moz-document")) { + return null; + } + var node = this.create(Document); + this.consumeToken(); + this.resync([], [TokenType.CurlyL]); + return this._parseBody(node, this._parseStylesheetStatement.bind(this)); + }; + Parser2.prototype._parseUnknownAtRule = function() { + if (!this.peek(TokenType.AtKeyword)) { + return null; + } + var node = this.create(UnknownAtRule); + node.addChild(this._parseUnknownAtRuleName()); + var isTopLevel = function() { + return curlyDepth === 0 && parensDepth === 0 && bracketsDepth === 0; + }; + var curlyLCount = 0; + var curlyDepth = 0; + var parensDepth = 0; + var bracketsDepth = 0; + done: + while (true) { + switch (this.token.type) { + case TokenType.SemiColon: + if (isTopLevel()) { + break done; + } + break; + case TokenType.EOF: + if (curlyDepth > 0) { + return this.finish(node, ParseError.RightCurlyExpected); + } else if (bracketsDepth > 0) { + return this.finish(node, ParseError.RightSquareBracketExpected); + } else if (parensDepth > 0) { + return this.finish(node, ParseError.RightParenthesisExpected); + } else { + return this.finish(node); + } + case TokenType.CurlyL: + curlyLCount++; + curlyDepth++; + break; + case TokenType.CurlyR: + curlyDepth--; + if (curlyLCount > 0 && curlyDepth === 0) { + this.consumeToken(); + if (bracketsDepth > 0) { + return this.finish(node, ParseError.RightSquareBracketExpected); + } else if (parensDepth > 0) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + break done; + } + if (curlyDepth < 0) { + if (parensDepth === 0 && bracketsDepth === 0) { + break done; + } + return this.finish(node, ParseError.LeftCurlyExpected); + } + break; + case TokenType.ParenthesisL: + parensDepth++; + break; + case TokenType.ParenthesisR: + parensDepth--; + if (parensDepth < 0) { + return this.finish(node, ParseError.LeftParenthesisExpected); + } + break; + case TokenType.BracketL: + bracketsDepth++; + break; + case TokenType.BracketR: + bracketsDepth--; + if (bracketsDepth < 0) { + return this.finish(node, ParseError.LeftSquareBracketExpected); + } + break; + } + this.consumeToken(); + } + return node; + }; + Parser2.prototype._parseUnknownAtRuleName = function() { + var node = this.create(css_worker_Node); + if (this.accept(TokenType.AtKeyword)) { + return this.finish(node); + } + return node; + }; + Parser2.prototype._parseOperator = function() { + if (this.peekDelim("/") || this.peekDelim("*") || this.peekDelim("+") || this.peekDelim("-") || this.peek(TokenType.Dashmatch) || this.peek(TokenType.Includes) || this.peek(TokenType.SubstringOperator) || this.peek(TokenType.PrefixOperator) || this.peek(TokenType.SuffixOperator) || this.peekDelim("=")) { + var node = this.createNode(NodeType.Operator); + this.consumeToken(); + return this.finish(node); + } else { + return null; + } + }; + Parser2.prototype._parseUnaryOperator = function() { + if (!this.peekDelim("+") && !this.peekDelim("-")) { + return null; + } + var node = this.create(css_worker_Node); + this.consumeToken(); + return this.finish(node); + }; + Parser2.prototype._parseCombinator = function() { + if (this.peekDelim(">")) { + var node = this.create(css_worker_Node); + this.consumeToken(); + var mark = this.mark(); + if (!this.hasWhitespace() && this.acceptDelim(">")) { + if (!this.hasWhitespace() && this.acceptDelim(">")) { + node.type = NodeType.SelectorCombinatorShadowPiercingDescendant; + return this.finish(node); + } + this.restoreAtMark(mark); + } + node.type = NodeType.SelectorCombinatorParent; + return this.finish(node); + } else if (this.peekDelim("+")) { + var node = this.create(css_worker_Node); + this.consumeToken(); + node.type = NodeType.SelectorCombinatorSibling; + return this.finish(node); + } else if (this.peekDelim("~")) { + var node = this.create(css_worker_Node); + this.consumeToken(); + node.type = NodeType.SelectorCombinatorAllSiblings; + return this.finish(node); + } else if (this.peekDelim("/")) { + var node = this.create(css_worker_Node); + this.consumeToken(); + var mark = this.mark(); + if (!this.hasWhitespace() && this.acceptIdent("deep") && !this.hasWhitespace() && this.acceptDelim("/")) { + node.type = NodeType.SelectorCombinatorShadowPiercingDescendant; + return this.finish(node); + } + this.restoreAtMark(mark); + } + return null; + }; + Parser2.prototype._parseSimpleSelector = function() { + var node = this.create(SimpleSelector); + var c = 0; + if (node.addChild(this._parseElementName())) { + c++; + } + while ((c === 0 || !this.hasWhitespace()) && node.addChild(this._parseSimpleSelectorBody())) { + c++; + } + return c > 0 ? this.finish(node) : null; + }; + Parser2.prototype._parseSimpleSelectorBody = function() { + return this._parsePseudo() || this._parseHash() || this._parseClass() || this._parseAttrib(); + }; + Parser2.prototype._parseSelectorIdent = function() { + return this._parseIdent(); + }; + Parser2.prototype._parseHash = function() { + if (!this.peek(TokenType.Hash) && !this.peekDelim("#")) { + return null; + } + var node = this.createNode(NodeType.IdentifierSelector); + if (this.acceptDelim("#")) { + if (this.hasWhitespace() || !node.addChild(this._parseSelectorIdent())) { + return this.finish(node, ParseError.IdentifierExpected); + } + } else { + this.consumeToken(); + } + return this.finish(node); + }; + Parser2.prototype._parseClass = function() { + if (!this.peekDelim(".")) { + return null; + } + var node = this.createNode(NodeType.ClassSelector); + this.consumeToken(); + if (this.hasWhitespace() || !node.addChild(this._parseSelectorIdent())) { + return this.finish(node, ParseError.IdentifierExpected); + } + return this.finish(node); + }; + Parser2.prototype._parseElementName = function() { + var pos = this.mark(); + var node = this.createNode(NodeType.ElementNameSelector); + node.addChild(this._parseNamespacePrefix()); + if (!node.addChild(this._parseSelectorIdent()) && !this.acceptDelim("*")) { + this.restoreAtMark(pos); + return null; + } + return this.finish(node); + }; + Parser2.prototype._parseNamespacePrefix = function() { + var pos = this.mark(); + var node = this.createNode(NodeType.NamespacePrefix); + if (!node.addChild(this._parseIdent()) && !this.acceptDelim("*")) { + } + if (!this.acceptDelim("|")) { + this.restoreAtMark(pos); + return null; + } + return this.finish(node); + }; + Parser2.prototype._parseAttrib = function() { + if (!this.peek(TokenType.BracketL)) { + return null; + } + var node = this.create(AttributeSelector); + this.consumeToken(); + node.setNamespacePrefix(this._parseNamespacePrefix()); + if (!node.setIdentifier(this._parseIdent())) { + return this.finish(node, ParseError.IdentifierExpected); + } + if (node.setOperator(this._parseOperator())) { + node.setValue(this._parseBinaryExpr()); + this.acceptIdent("i"); + this.acceptIdent("s"); + } + if (!this.accept(TokenType.BracketR)) { + return this.finish(node, ParseError.RightSquareBracketExpected); + } + return this.finish(node); + }; + Parser2.prototype._parsePseudo = function() { + var _this = this; + var node = this._tryParsePseudoIdentifier(); + if (node) { + if (!this.hasWhitespace() && this.accept(TokenType.ParenthesisL)) { + var tryAsSelector = function() { + var selectors = _this.create(css_worker_Node); + if (!selectors.addChild(_this._parseSelector(false))) { + return null; + } + while (_this.accept(TokenType.Comma) && selectors.addChild(_this._parseSelector(false))) { + } + if (_this.peek(TokenType.ParenthesisR)) { + return _this.finish(selectors); + } + return null; + }; + node.addChild(this.try(tryAsSelector) || this._parseBinaryExpr()); + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + } + return this.finish(node); + } + return null; + }; + Parser2.prototype._tryParsePseudoIdentifier = function() { + if (!this.peek(TokenType.Colon)) { + return null; + } + var pos = this.mark(); + var node = this.createNode(NodeType.PseudoSelector); + this.consumeToken(); + if (this.hasWhitespace()) { + this.restoreAtMark(pos); + return null; + } + this.accept(TokenType.Colon); + if (this.hasWhitespace() || !node.addChild(this._parseIdent())) { + return this.finish(node, ParseError.IdentifierExpected); + } + return this.finish(node); + }; + Parser2.prototype._tryParsePrio = function() { + var mark = this.mark(); + var prio = this._parsePrio(); + if (prio) { + return prio; + } + this.restoreAtMark(mark); + return null; + }; + Parser2.prototype._parsePrio = function() { + if (!this.peek(TokenType.Exclamation)) { + return null; + } + var node = this.createNode(NodeType.Prio); + if (this.accept(TokenType.Exclamation) && this.acceptIdent("important")) { + return this.finish(node); + } + return null; + }; + Parser2.prototype._parseExpr = function(stopOnComma) { + if (stopOnComma === void 0) { + stopOnComma = false; + } + var node = this.create(Expression); + if (!node.addChild(this._parseBinaryExpr())) { + return null; + } + while (true) { + if (this.peek(TokenType.Comma)) { + if (stopOnComma) { + return this.finish(node); + } + this.consumeToken(); + } else if (!this.hasWhitespace()) { + break; + } + if (!node.addChild(this._parseBinaryExpr())) { + break; + } + } + return this.finish(node); + }; + Parser2.prototype._parseUnicodeRange = function() { + if (!this.peekIdent("u")) { + return null; + } + var node = this.create(UnicodeRange); + if (!this.acceptUnicodeRange()) { + return null; + } + return this.finish(node); + }; + Parser2.prototype._parseNamedLine = function() { + if (!this.peek(TokenType.BracketL)) { + return null; + } + var node = this.createNode(NodeType.GridLine); + this.consumeToken(); + while (node.addChild(this._parseIdent())) { + } + if (!this.accept(TokenType.BracketR)) { + return this.finish(node, ParseError.RightSquareBracketExpected); + } + return this.finish(node); + }; + Parser2.prototype._parseBinaryExpr = function(preparsedLeft, preparsedOper) { + var node = this.create(BinaryExpression); + if (!node.setLeft(preparsedLeft || this._parseTerm())) { + return null; + } + if (!node.setOperator(preparsedOper || this._parseOperator())) { + return this.finish(node); + } + if (!node.setRight(this._parseTerm())) { + return this.finish(node, ParseError.TermExpected); + } + node = this.finish(node); + var operator = this._parseOperator(); + if (operator) { + node = this._parseBinaryExpr(node, operator); + } + return this.finish(node); + }; + Parser2.prototype._parseTerm = function() { + var node = this.create(Term); + node.setOperator(this._parseUnaryOperator()); + if (node.setExpression(this._parseTermExpression())) { + return this.finish(node); + } + return null; + }; + Parser2.prototype._parseTermExpression = function() { + return this._parseURILiteral() || this._parseUnicodeRange() || this._parseFunction() || this._parseIdent() || this._parseStringLiteral() || this._parseNumeric() || this._parseHexColor() || this._parseOperation() || this._parseNamedLine(); + }; + Parser2.prototype._parseOperation = function() { + if (!this.peek(TokenType.ParenthesisL)) { + return null; + } + var node = this.create(css_worker_Node); + this.consumeToken(); + node.addChild(this._parseExpr()); + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + return this.finish(node); + }; + Parser2.prototype._parseNumeric = function() { + if (this.peek(TokenType.Num) || this.peek(TokenType.Percentage) || this.peek(TokenType.Resolution) || this.peek(TokenType.Length) || this.peek(TokenType.EMS) || this.peek(TokenType.EXS) || this.peek(TokenType.Angle) || this.peek(TokenType.Time) || this.peek(TokenType.Dimension) || this.peek(TokenType.Freq)) { + var node = this.create(NumericValue); + this.consumeToken(); + return this.finish(node); + } + return null; + }; + Parser2.prototype._parseStringLiteral = function() { + if (!this.peek(TokenType.String) && !this.peek(TokenType.BadString)) { + return null; + } + var node = this.createNode(NodeType.StringLiteral); + this.consumeToken(); + return this.finish(node); + }; + Parser2.prototype._parseURILiteral = function() { + if (!this.peekRegExp(TokenType.Ident, /^url(-prefix)?$/i)) { + return null; + } + var pos = this.mark(); + var node = this.createNode(NodeType.URILiteral); + this.accept(TokenType.Ident); + if (this.hasWhitespace() || !this.peek(TokenType.ParenthesisL)) { + this.restoreAtMark(pos); + return null; + } + this.scanner.inURL = true; + this.consumeToken(); + node.addChild(this._parseURLArgument()); + this.scanner.inURL = false; + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + return this.finish(node); + }; + Parser2.prototype._parseURLArgument = function() { + var node = this.create(css_worker_Node); + if (!this.accept(TokenType.String) && !this.accept(TokenType.BadString) && !this.acceptUnquotedString()) { + return null; + } + return this.finish(node); + }; + Parser2.prototype._parseIdent = function(referenceTypes) { + if (!this.peek(TokenType.Ident)) { + return null; + } + var node = this.create(Identifier); + if (referenceTypes) { + node.referenceTypes = referenceTypes; + } + node.isCustomProperty = this.peekRegExp(TokenType.Ident, /^--/); + this.consumeToken(); + return this.finish(node); + }; + Parser2.prototype._parseFunction = function() { + var pos = this.mark(); + var node = this.create(Function); + if (!node.setIdentifier(this._parseFunctionIdentifier())) { + return null; + } + if (this.hasWhitespace() || !this.accept(TokenType.ParenthesisL)) { + this.restoreAtMark(pos); + return null; + } + if (node.getArguments().addChild(this._parseFunctionArgument())) { + while (this.accept(TokenType.Comma)) { + if (this.peek(TokenType.ParenthesisR)) { + break; + } + if (!node.getArguments().addChild(this._parseFunctionArgument())) { + this.markError(node, ParseError.ExpressionExpected); + } + } + } + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + return this.finish(node); + }; + Parser2.prototype._parseFunctionIdentifier = function() { + if (!this.peek(TokenType.Ident)) { + return null; + } + var node = this.create(Identifier); + node.referenceTypes = [ReferenceType.Function]; + if (this.acceptIdent("progid")) { + if (this.accept(TokenType.Colon)) { + while (this.accept(TokenType.Ident) && this.acceptDelim(".")) { + } + } + return this.finish(node); + } + this.consumeToken(); + return this.finish(node); + }; + Parser2.prototype._parseFunctionArgument = function() { + var node = this.create(FunctionArgument); + if (node.setValue(this._parseExpr(true))) { + return this.finish(node); + } + return null; + }; + Parser2.prototype._parseHexColor = function() { + if (this.peekRegExp(TokenType.Hash, /^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/g)) { + var node = this.create(HexColorValue); + this.consumeToken(); + return this.finish(node); + } else { + return null; + } + }; + return Parser2; +}(); + +// node_modules/vscode-css-languageservice/lib/esm/utils/arrays.js +function findFirst(array, p) { + var low = 0, high = array.length; + if (high === 0) { + return 0; + } + while (low < high) { + var mid = Math.floor((low + high) / 2); + if (p(array[mid])) { + high = mid; + } else { + low = mid + 1; + } + } + return low; +} +function includes(array, item) { + return array.indexOf(item) !== -1; +} +function union() { + var arrays = []; + for (var _i = 0; _i < arguments.length; _i++) { + arrays[_i] = arguments[_i]; + } + var result = []; + for (var _a2 = 0, arrays_1 = arrays; _a2 < arrays_1.length; _a2++) { + var array = arrays_1[_a2]; + for (var _b = 0, array_1 = array; _b < array_1.length; _b++) { + var item = array_1[_b]; + if (!includes(result, item)) { + result.push(item); + } + } + } + return result; +} + +// node_modules/vscode-css-languageservice/lib/esm/parser/cssSymbolScope.js +var __extends2 = function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +}(); +var Scope = function() { + function Scope2(offset, length) { + this.offset = offset; + this.length = length; + this.symbols = []; + this.parent = null; + this.children = []; + } + Scope2.prototype.addChild = function(scope) { + this.children.push(scope); + scope.setParent(this); + }; + Scope2.prototype.setParent = function(scope) { + this.parent = scope; + }; + Scope2.prototype.findScope = function(offset, length) { + if (length === void 0) { + length = 0; + } + if (this.offset <= offset && this.offset + this.length > offset + length || this.offset === offset && this.length === length) { + return this.findInScope(offset, length); + } + return null; + }; + Scope2.prototype.findInScope = function(offset, length) { + if (length === void 0) { + length = 0; + } + var end = offset + length; + var idx = findFirst(this.children, function(s) { + return s.offset > end; + }); + if (idx === 0) { + return this; + } + var res = this.children[idx - 1]; + if (res.offset <= offset && res.offset + res.length >= offset + length) { + return res.findInScope(offset, length); + } + return this; + }; + Scope2.prototype.addSymbol = function(symbol) { + this.symbols.push(symbol); + }; + Scope2.prototype.getSymbol = function(name, type) { + for (var index = 0; index < this.symbols.length; index++) { + var symbol = this.symbols[index]; + if (symbol.name === name && symbol.type === type) { + return symbol; + } + } + return null; + }; + Scope2.prototype.getSymbols = function() { + return this.symbols; + }; + return Scope2; +}(); +var GlobalScope = function(_super) { + __extends2(GlobalScope2, _super); + function GlobalScope2() { + return _super.call(this, 0, Number.MAX_VALUE) || this; + } + return GlobalScope2; +}(Scope); +var Symbol2 = function() { + function Symbol3(name, value, node, type) { + this.name = name; + this.value = value; + this.node = node; + this.type = type; + } + return Symbol3; +}(); +var ScopeBuilder = function() { + function ScopeBuilder2(scope) { + this.scope = scope; + } + ScopeBuilder2.prototype.addSymbol = function(node, name, value, type) { + if (node.offset !== -1) { + var current = this.scope.findScope(node.offset, node.length); + if (current) { + current.addSymbol(new Symbol2(name, value, node, type)); + } + } + }; + ScopeBuilder2.prototype.addScope = function(node) { + if (node.offset !== -1) { + var current = this.scope.findScope(node.offset, node.length); + if (current && (current.offset !== node.offset || current.length !== node.length)) { + var newScope = new Scope(node.offset, node.length); + current.addChild(newScope); + return newScope; + } + return current; + } + return null; + }; + ScopeBuilder2.prototype.addSymbolToChildScope = function(scopeNode, node, name, value, type) { + if (scopeNode && scopeNode.offset !== -1) { + var current = this.addScope(scopeNode); + if (current) { + current.addSymbol(new Symbol2(name, value, node, type)); + } + } + }; + ScopeBuilder2.prototype.visitNode = function(node) { + switch (node.type) { + case NodeType.Keyframe: + this.addSymbol(node, node.getName(), void 0, ReferenceType.Keyframe); + return true; + case NodeType.CustomPropertyDeclaration: + return this.visitCustomPropertyDeclarationNode(node); + case NodeType.VariableDeclaration: + return this.visitVariableDeclarationNode(node); + case NodeType.Ruleset: + return this.visitRuleSet(node); + case NodeType.MixinDeclaration: + this.addSymbol(node, node.getName(), void 0, ReferenceType.Mixin); + return true; + case NodeType.FunctionDeclaration: + this.addSymbol(node, node.getName(), void 0, ReferenceType.Function); + return true; + case NodeType.FunctionParameter: { + return this.visitFunctionParameterNode(node); + } + case NodeType.Declarations: + this.addScope(node); + return true; + case NodeType.For: + var forNode = node; + var scopeNode = forNode.getDeclarations(); + if (scopeNode && forNode.variable) { + this.addSymbolToChildScope(scopeNode, forNode.variable, forNode.variable.getName(), void 0, ReferenceType.Variable); + } + return true; + case NodeType.Each: { + var eachNode = node; + var scopeNode_1 = eachNode.getDeclarations(); + if (scopeNode_1) { + var variables = eachNode.getVariables().getChildren(); + for (var _i = 0, variables_1 = variables; _i < variables_1.length; _i++) { + var variable = variables_1[_i]; + this.addSymbolToChildScope(scopeNode_1, variable, variable.getName(), void 0, ReferenceType.Variable); + } + } + return true; + } + } + return true; + }; + ScopeBuilder2.prototype.visitRuleSet = function(node) { + var current = this.scope.findScope(node.offset, node.length); + if (current) { + for (var _i = 0, _a2 = node.getSelectors().getChildren(); _i < _a2.length; _i++) { + var child = _a2[_i]; + if (child instanceof Selector) { + if (child.getChildren().length === 1) { + current.addSymbol(new Symbol2(child.getChild(0).getText(), void 0, child, ReferenceType.Rule)); + } + } + } + } + return true; + }; + ScopeBuilder2.prototype.visitVariableDeclarationNode = function(node) { + var value = node.getValue() ? node.getValue().getText() : void 0; + this.addSymbol(node, node.getName(), value, ReferenceType.Variable); + return true; + }; + ScopeBuilder2.prototype.visitFunctionParameterNode = function(node) { + var scopeNode = node.getParent().getDeclarations(); + if (scopeNode) { + var valueNode = node.getDefaultValue(); + var value = valueNode ? valueNode.getText() : void 0; + this.addSymbolToChildScope(scopeNode, node, node.getName(), value, ReferenceType.Variable); + } + return true; + }; + ScopeBuilder2.prototype.visitCustomPropertyDeclarationNode = function(node) { + var value = node.getValue() ? node.getValue().getText() : ""; + this.addCSSVariable(node.getProperty(), node.getProperty().getName(), value, ReferenceType.Variable); + return true; + }; + ScopeBuilder2.prototype.addCSSVariable = function(node, name, value, type) { + if (node.offset !== -1) { + this.scope.addSymbol(new Symbol2(name, value, node, type)); + } + }; + return ScopeBuilder2; +}(); +var Symbols = function() { + function Symbols2(node) { + this.global = new GlobalScope(); + node.acceptVisitor(new ScopeBuilder(this.global)); + } + Symbols2.prototype.findSymbolsAtOffset = function(offset, referenceType) { + var scope = this.global.findScope(offset, 0); + var result = []; + var names = {}; + while (scope) { + var symbols = scope.getSymbols(); + for (var i = 0; i < symbols.length; i++) { + var symbol = symbols[i]; + if (symbol.type === referenceType && !names[symbol.name]) { + result.push(symbol); + names[symbol.name] = true; + } + } + scope = scope.parent; + } + return result; + }; + Symbols2.prototype.internalFindSymbol = function(node, referenceTypes) { + var scopeNode = node; + if (node.parent instanceof FunctionParameter && node.parent.getParent() instanceof BodyDeclaration) { + scopeNode = node.parent.getParent().getDeclarations(); + } + if (node.parent instanceof FunctionArgument && node.parent.getParent() instanceof Function) { + var funcId = node.parent.getParent().getIdentifier(); + if (funcId) { + var functionSymbol = this.internalFindSymbol(funcId, [ReferenceType.Function]); + if (functionSymbol) { + scopeNode = functionSymbol.node.getDeclarations(); + } + } + } + if (!scopeNode) { + return null; + } + var name = node.getText(); + var scope = this.global.findScope(scopeNode.offset, scopeNode.length); + while (scope) { + for (var index = 0; index < referenceTypes.length; index++) { + var type = referenceTypes[index]; + var symbol = scope.getSymbol(name, type); + if (symbol) { + return symbol; + } + } + scope = scope.parent; + } + return null; + }; + Symbols2.prototype.evaluateReferenceTypes = function(node) { + if (node instanceof Identifier) { + var referenceTypes = node.referenceTypes; + if (referenceTypes) { + return referenceTypes; + } else { + if (node.isCustomProperty) { + return [ReferenceType.Variable]; + } + var decl = getParentDeclaration(node); + if (decl) { + var propertyName = decl.getNonPrefixedPropertyName(); + if ((propertyName === "animation" || propertyName === "animation-name") && decl.getValue() && decl.getValue().offset === node.offset) { + return [ReferenceType.Keyframe]; + } + } + } + } else if (node instanceof Variable) { + return [ReferenceType.Variable]; + } + var selector = node.findAParent(NodeType.Selector, NodeType.ExtendsReference); + if (selector) { + return [ReferenceType.Rule]; + } + return null; + }; + Symbols2.prototype.findSymbolFromNode = function(node) { + if (!node) { + return null; + } + while (node.type === NodeType.Interpolation) { + node = node.getParent(); + } + var referenceTypes = this.evaluateReferenceTypes(node); + if (referenceTypes) { + return this.internalFindSymbol(node, referenceTypes); + } + return null; + }; + Symbols2.prototype.matchesSymbol = function(node, symbol) { + if (!node) { + return false; + } + while (node.type === NodeType.Interpolation) { + node = node.getParent(); + } + if (!node.matches(symbol.name)) { + return false; + } + var referenceTypes = this.evaluateReferenceTypes(node); + if (!referenceTypes || referenceTypes.indexOf(symbol.type) === -1) { + return false; + } + var nodeSymbol = this.internalFindSymbol(node, referenceTypes); + return nodeSymbol === symbol; + }; + Symbols2.prototype.findSymbol = function(name, type, offset) { + var scope = this.global.findScope(offset); + while (scope) { + var symbol = scope.getSymbol(name, type); + if (symbol) { + return symbol; + } + scope = scope.parent; + } + return null; + }; + return Symbols2; +}(); + +// node_modules/vscode-uri/lib/esm/index.js +var LIB; +LIB = (() => { + "use strict"; + var t = { 470: (t2) => { + function e2(t3) { + if ("string" != typeof t3) + throw new TypeError("Path must be a string. Received " + JSON.stringify(t3)); + } + function r2(t3, e3) { + for (var r3, n2 = "", o = 0, i = -1, a2 = 0, h = 0; h <= t3.length; ++h) { + if (h < t3.length) + r3 = t3.charCodeAt(h); + else { + if (47 === r3) + break; + r3 = 47; + } + if (47 === r3) { + if (i === h - 1 || 1 === a2) + ; + else if (i !== h - 1 && 2 === a2) { + if (n2.length < 2 || 2 !== o || 46 !== n2.charCodeAt(n2.length - 1) || 46 !== n2.charCodeAt(n2.length - 2)) { + if (n2.length > 2) { + var s = n2.lastIndexOf("/"); + if (s !== n2.length - 1) { + -1 === s ? (n2 = "", o = 0) : o = (n2 = n2.slice(0, s)).length - 1 - n2.lastIndexOf("/"), i = h, a2 = 0; + continue; + } + } else if (2 === n2.length || 1 === n2.length) { + n2 = "", o = 0, i = h, a2 = 0; + continue; + } + } + e3 && (n2.length > 0 ? n2 += "/.." : n2 = "..", o = 2); + } else + n2.length > 0 ? n2 += "/" + t3.slice(i + 1, h) : n2 = t3.slice(i + 1, h), o = h - i - 1; + i = h, a2 = 0; + } else + 46 === r3 && -1 !== a2 ? ++a2 : a2 = -1; + } + return n2; + } + var n = { resolve: function() { + for (var t3, n2 = "", o = false, i = arguments.length - 1; i >= -1 && !o; i--) { + var a2; + i >= 0 ? a2 = arguments[i] : (void 0 === t3 && (t3 = process.cwd()), a2 = t3), e2(a2), 0 !== a2.length && (n2 = a2 + "/" + n2, o = 47 === a2.charCodeAt(0)); + } + return n2 = r2(n2, !o), o ? n2.length > 0 ? "/" + n2 : "/" : n2.length > 0 ? n2 : "."; + }, normalize: function(t3) { + if (e2(t3), 0 === t3.length) + return "."; + var n2 = 47 === t3.charCodeAt(0), o = 47 === t3.charCodeAt(t3.length - 1); + return 0 !== (t3 = r2(t3, !n2)).length || n2 || (t3 = "."), t3.length > 0 && o && (t3 += "/"), n2 ? "/" + t3 : t3; + }, isAbsolute: function(t3) { + return e2(t3), t3.length > 0 && 47 === t3.charCodeAt(0); + }, join: function() { + if (0 === arguments.length) + return "."; + for (var t3, r3 = 0; r3 < arguments.length; ++r3) { + var o = arguments[r3]; + e2(o), o.length > 0 && (void 0 === t3 ? t3 = o : t3 += "/" + o); + } + return void 0 === t3 ? "." : n.normalize(t3); + }, relative: function(t3, r3) { + if (e2(t3), e2(r3), t3 === r3) + return ""; + if ((t3 = n.resolve(t3)) === (r3 = n.resolve(r3))) + return ""; + for (var o = 1; o < t3.length && 47 === t3.charCodeAt(o); ++o) + ; + for (var i = t3.length, a2 = i - o, h = 1; h < r3.length && 47 === r3.charCodeAt(h); ++h) + ; + for (var s = r3.length - h, c = a2 < s ? a2 : s, f2 = -1, u = 0; u <= c; ++u) { + if (u === c) { + if (s > c) { + if (47 === r3.charCodeAt(h + u)) + return r3.slice(h + u + 1); + if (0 === u) + return r3.slice(h + u); + } else + a2 > c && (47 === t3.charCodeAt(o + u) ? f2 = u : 0 === u && (f2 = 0)); + break; + } + var l = t3.charCodeAt(o + u); + if (l !== r3.charCodeAt(h + u)) + break; + 47 === l && (f2 = u); + } + var p = ""; + for (u = o + f2 + 1; u <= i; ++u) + u !== i && 47 !== t3.charCodeAt(u) || (0 === p.length ? p += ".." : p += "/.."); + return p.length > 0 ? p + r3.slice(h + f2) : (h += f2, 47 === r3.charCodeAt(h) && ++h, r3.slice(h)); + }, _makeLong: function(t3) { + return t3; + }, dirname: function(t3) { + if (e2(t3), 0 === t3.length) + return "."; + for (var r3 = t3.charCodeAt(0), n2 = 47 === r3, o = -1, i = true, a2 = t3.length - 1; a2 >= 1; --a2) + if (47 === (r3 = t3.charCodeAt(a2))) { + if (!i) { + o = a2; + break; + } + } else + i = false; + return -1 === o ? n2 ? "/" : "." : n2 && 1 === o ? "//" : t3.slice(0, o); + }, basename: function(t3, r3) { + if (void 0 !== r3 && "string" != typeof r3) + throw new TypeError('"ext" argument must be a string'); + e2(t3); + var n2, o = 0, i = -1, a2 = true; + if (void 0 !== r3 && r3.length > 0 && r3.length <= t3.length) { + if (r3.length === t3.length && r3 === t3) + return ""; + var h = r3.length - 1, s = -1; + for (n2 = t3.length - 1; n2 >= 0; --n2) { + var c = t3.charCodeAt(n2); + if (47 === c) { + if (!a2) { + o = n2 + 1; + break; + } + } else + -1 === s && (a2 = false, s = n2 + 1), h >= 0 && (c === r3.charCodeAt(h) ? -1 == --h && (i = n2) : (h = -1, i = s)); + } + return o === i ? i = s : -1 === i && (i = t3.length), t3.slice(o, i); + } + for (n2 = t3.length - 1; n2 >= 0; --n2) + if (47 === t3.charCodeAt(n2)) { + if (!a2) { + o = n2 + 1; + break; + } + } else + -1 === i && (a2 = false, i = n2 + 1); + return -1 === i ? "" : t3.slice(o, i); + }, extname: function(t3) { + e2(t3); + for (var r3 = -1, n2 = 0, o = -1, i = true, a2 = 0, h = t3.length - 1; h >= 0; --h) { + var s = t3.charCodeAt(h); + if (47 !== s) + -1 === o && (i = false, o = h + 1), 46 === s ? -1 === r3 ? r3 = h : 1 !== a2 && (a2 = 1) : -1 !== r3 && (a2 = -1); + else if (!i) { + n2 = h + 1; + break; + } + } + return -1 === r3 || -1 === o || 0 === a2 || 1 === a2 && r3 === o - 1 && r3 === n2 + 1 ? "" : t3.slice(r3, o); + }, format: function(t3) { + if (null === t3 || "object" != typeof t3) + throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof t3); + return function(t4, e3) { + var r3 = e3.dir || e3.root, n2 = e3.base || (e3.name || "") + (e3.ext || ""); + return r3 ? r3 === e3.root ? r3 + n2 : r3 + "/" + n2 : n2; + }(0, t3); + }, parse: function(t3) { + e2(t3); + var r3 = { root: "", dir: "", base: "", ext: "", name: "" }; + if (0 === t3.length) + return r3; + var n2, o = t3.charCodeAt(0), i = 47 === o; + i ? (r3.root = "/", n2 = 1) : n2 = 0; + for (var a2 = -1, h = 0, s = -1, c = true, f2 = t3.length - 1, u = 0; f2 >= n2; --f2) + if (47 !== (o = t3.charCodeAt(f2))) + -1 === s && (c = false, s = f2 + 1), 46 === o ? -1 === a2 ? a2 = f2 : 1 !== u && (u = 1) : -1 !== a2 && (u = -1); + else if (!c) { + h = f2 + 1; + break; + } + return -1 === a2 || -1 === s || 0 === u || 1 === u && a2 === s - 1 && a2 === h + 1 ? -1 !== s && (r3.base = r3.name = 0 === h && i ? t3.slice(1, s) : t3.slice(h, s)) : (0 === h && i ? (r3.name = t3.slice(1, a2), r3.base = t3.slice(1, s)) : (r3.name = t3.slice(h, a2), r3.base = t3.slice(h, s)), r3.ext = t3.slice(a2, s)), h > 0 ? r3.dir = t3.slice(0, h - 1) : i && (r3.dir = "/"), r3; + }, sep: "/", delimiter: ":", win32: null, posix: null }; + n.posix = n, t2.exports = n; + }, 447: (t2, e2, r2) => { + var n; + if (r2.r(e2), r2.d(e2, { URI: () => d, Utils: () => P }), "object" == typeof process) + n = "win32" === process.platform; + else if ("object" == typeof navigator) { + var o = navigator.userAgent; + n = o.indexOf("Windows") >= 0; + } + var i, a2, h = (i = function(t3, e3) { + return (i = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(t4, e4) { + t4.__proto__ = e4; + } || function(t4, e4) { + for (var r3 in e4) + Object.prototype.hasOwnProperty.call(e4, r3) && (t4[r3] = e4[r3]); + })(t3, e3); + }, function(t3, e3) { + if ("function" != typeof e3 && null !== e3) + throw new TypeError("Class extends value " + String(e3) + " is not a constructor or null"); + function r3() { + this.constructor = t3; + } + i(t3, e3), t3.prototype = null === e3 ? Object.create(e3) : (r3.prototype = e3.prototype, new r3()); + }), s = /^\w[\w\d+.-]*$/, c = /^\//, f2 = /^\/\//; + function u(t3, e3) { + if (!t3.scheme && e3) + throw new Error('[UriError]: Scheme is missing: {scheme: "", authority: "'.concat(t3.authority, '", path: "').concat(t3.path, '", query: "').concat(t3.query, '", fragment: "').concat(t3.fragment, '"}')); + if (t3.scheme && !s.test(t3.scheme)) + throw new Error("[UriError]: Scheme contains illegal characters."); + if (t3.path) { + if (t3.authority) { + if (!c.test(t3.path)) + throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character'); + } else if (f2.test(t3.path)) + throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")'); + } + } + var l = "", p = "/", g = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/, d = function() { + function t3(t4, e3, r3, n2, o2, i2) { + void 0 === i2 && (i2 = false), "object" == typeof t4 ? (this.scheme = t4.scheme || l, this.authority = t4.authority || l, this.path = t4.path || l, this.query = t4.query || l, this.fragment = t4.fragment || l) : (this.scheme = function(t5, e4) { + return t5 || e4 ? t5 : "file"; + }(t4, i2), this.authority = e3 || l, this.path = function(t5, e4) { + switch (t5) { + case "https": + case "http": + case "file": + e4 ? e4[0] !== p && (e4 = p + e4) : e4 = p; + } + return e4; + }(this.scheme, r3 || l), this.query = n2 || l, this.fragment = o2 || l, u(this, i2)); + } + return t3.isUri = function(e3) { + return e3 instanceof t3 || !!e3 && "string" == typeof e3.authority && "string" == typeof e3.fragment && "string" == typeof e3.path && "string" == typeof e3.query && "string" == typeof e3.scheme && "string" == typeof e3.fsPath && "function" == typeof e3.with && "function" == typeof e3.toString; + }, Object.defineProperty(t3.prototype, "fsPath", { get: function() { + return A2(this, false); + }, enumerable: false, configurable: true }), t3.prototype.with = function(t4) { + if (!t4) + return this; + var e3 = t4.scheme, r3 = t4.authority, n2 = t4.path, o2 = t4.query, i2 = t4.fragment; + return void 0 === e3 ? e3 = this.scheme : null === e3 && (e3 = l), void 0 === r3 ? r3 = this.authority : null === r3 && (r3 = l), void 0 === n2 ? n2 = this.path : null === n2 && (n2 = l), void 0 === o2 ? o2 = this.query : null === o2 && (o2 = l), void 0 === i2 ? i2 = this.fragment : null === i2 && (i2 = l), e3 === this.scheme && r3 === this.authority && n2 === this.path && o2 === this.query && i2 === this.fragment ? this : new y(e3, r3, n2, o2, i2); + }, t3.parse = function(t4, e3) { + void 0 === e3 && (e3 = false); + var r3 = g.exec(t4); + return r3 ? new y(r3[2] || l, O(r3[4] || l), O(r3[5] || l), O(r3[7] || l), O(r3[9] || l), e3) : new y(l, l, l, l, l); + }, t3.file = function(t4) { + var e3 = l; + if (n && (t4 = t4.replace(/\\/g, p)), t4[0] === p && t4[1] === p) { + var r3 = t4.indexOf(p, 2); + -1 === r3 ? (e3 = t4.substring(2), t4 = p) : (e3 = t4.substring(2, r3), t4 = t4.substring(r3) || p); + } + return new y("file", e3, t4, l, l); + }, t3.from = function(t4) { + var e3 = new y(t4.scheme, t4.authority, t4.path, t4.query, t4.fragment); + return u(e3, true), e3; + }, t3.prototype.toString = function(t4) { + return void 0 === t4 && (t4 = false), w(this, t4); + }, t3.prototype.toJSON = function() { + return this; + }, t3.revive = function(e3) { + if (e3) { + if (e3 instanceof t3) + return e3; + var r3 = new y(e3); + return r3._formatted = e3.external, r3._fsPath = e3._sep === v ? e3.fsPath : null, r3; + } + return e3; + }, t3; + }(), v = n ? 1 : void 0, y = function(t3) { + function e3() { + var e4 = null !== t3 && t3.apply(this, arguments) || this; + return e4._formatted = null, e4._fsPath = null, e4; + } + return h(e3, t3), Object.defineProperty(e3.prototype, "fsPath", { get: function() { + return this._fsPath || (this._fsPath = A2(this, false)), this._fsPath; + }, enumerable: false, configurable: true }), e3.prototype.toString = function(t4) { + return void 0 === t4 && (t4 = false), t4 ? w(this, true) : (this._formatted || (this._formatted = w(this, false)), this._formatted); + }, e3.prototype.toJSON = function() { + var t4 = { $mid: 1 }; + return this._fsPath && (t4.fsPath = this._fsPath, t4._sep = v), this._formatted && (t4.external = this._formatted), this.path && (t4.path = this.path), this.scheme && (t4.scheme = this.scheme), this.authority && (t4.authority = this.authority), this.query && (t4.query = this.query), this.fragment && (t4.fragment = this.fragment), t4; + }, e3; + }(d), m = ((a2 = {})[58] = "%3A", a2[47] = "%2F", a2[63] = "%3F", a2[35] = "%23", a2[91] = "%5B", a2[93] = "%5D", a2[64] = "%40", a2[33] = "%21", a2[36] = "%24", a2[38] = "%26", a2[39] = "%27", a2[40] = "%28", a2[41] = "%29", a2[42] = "%2A", a2[43] = "%2B", a2[44] = "%2C", a2[59] = "%3B", a2[61] = "%3D", a2[32] = "%20", a2); + function b(t3, e3) { + for (var r3 = void 0, n2 = -1, o2 = 0; o2 < t3.length; o2++) { + var i2 = t3.charCodeAt(o2); + if (i2 >= 97 && i2 <= 122 || i2 >= 65 && i2 <= 90 || i2 >= 48 && i2 <= 57 || 45 === i2 || 46 === i2 || 95 === i2 || 126 === i2 || e3 && 47 === i2) + -1 !== n2 && (r3 += encodeURIComponent(t3.substring(n2, o2)), n2 = -1), void 0 !== r3 && (r3 += t3.charAt(o2)); + else { + void 0 === r3 && (r3 = t3.substr(0, o2)); + var a3 = m[i2]; + void 0 !== a3 ? (-1 !== n2 && (r3 += encodeURIComponent(t3.substring(n2, o2)), n2 = -1), r3 += a3) : -1 === n2 && (n2 = o2); + } + } + return -1 !== n2 && (r3 += encodeURIComponent(t3.substring(n2))), void 0 !== r3 ? r3 : t3; + } + function C(t3) { + for (var e3 = void 0, r3 = 0; r3 < t3.length; r3++) { + var n2 = t3.charCodeAt(r3); + 35 === n2 || 63 === n2 ? (void 0 === e3 && (e3 = t3.substr(0, r3)), e3 += m[n2]) : void 0 !== e3 && (e3 += t3[r3]); + } + return void 0 !== e3 ? e3 : t3; + } + function A2(t3, e3) { + var r3; + return r3 = t3.authority && t3.path.length > 1 && "file" === t3.scheme ? "//".concat(t3.authority).concat(t3.path) : 47 === t3.path.charCodeAt(0) && (t3.path.charCodeAt(1) >= 65 && t3.path.charCodeAt(1) <= 90 || t3.path.charCodeAt(1) >= 97 && t3.path.charCodeAt(1) <= 122) && 58 === t3.path.charCodeAt(2) ? e3 ? t3.path.substr(1) : t3.path[1].toLowerCase() + t3.path.substr(2) : t3.path, n && (r3 = r3.replace(/\//g, "\\")), r3; + } + function w(t3, e3) { + var r3 = e3 ? C : b, n2 = "", o2 = t3.scheme, i2 = t3.authority, a3 = t3.path, h2 = t3.query, s2 = t3.fragment; + if (o2 && (n2 += o2, n2 += ":"), (i2 || "file" === o2) && (n2 += p, n2 += p), i2) { + var c2 = i2.indexOf("@"); + if (-1 !== c2) { + var f3 = i2.substr(0, c2); + i2 = i2.substr(c2 + 1), -1 === (c2 = f3.indexOf(":")) ? n2 += r3(f3, false) : (n2 += r3(f3.substr(0, c2), false), n2 += ":", n2 += r3(f3.substr(c2 + 1), false)), n2 += "@"; + } + -1 === (c2 = (i2 = i2.toLowerCase()).indexOf(":")) ? n2 += r3(i2, false) : (n2 += r3(i2.substr(0, c2), false), n2 += i2.substr(c2)); + } + if (a3) { + if (a3.length >= 3 && 47 === a3.charCodeAt(0) && 58 === a3.charCodeAt(2)) + (u2 = a3.charCodeAt(1)) >= 65 && u2 <= 90 && (a3 = "/".concat(String.fromCharCode(u2 + 32), ":").concat(a3.substr(3))); + else if (a3.length >= 2 && 58 === a3.charCodeAt(1)) { + var u2; + (u2 = a3.charCodeAt(0)) >= 65 && u2 <= 90 && (a3 = "".concat(String.fromCharCode(u2 + 32), ":").concat(a3.substr(2))); + } + n2 += r3(a3, true); + } + return h2 && (n2 += "?", n2 += r3(h2, false)), s2 && (n2 += "#", n2 += e3 ? s2 : b(s2, false)), n2; + } + function x(t3) { + try { + return decodeURIComponent(t3); + } catch (e3) { + return t3.length > 3 ? t3.substr(0, 3) + x(t3.substr(3)) : t3; + } + } + var _ = /(%[0-9A-Za-z][0-9A-Za-z])+/g; + function O(t3) { + return t3.match(_) ? t3.replace(_, function(t4) { + return x(t4); + }) : t3; + } + var P, j = r2(470), U = function(t3, e3, r3) { + if (r3 || 2 === arguments.length) + for (var n2, o2 = 0, i2 = e3.length; o2 < i2; o2++) + !n2 && o2 in e3 || (n2 || (n2 = Array.prototype.slice.call(e3, 0, o2)), n2[o2] = e3[o2]); + return t3.concat(n2 || Array.prototype.slice.call(e3)); + }, I = j.posix || j; + !function(t3) { + t3.joinPath = function(t4) { + for (var e3 = [], r3 = 1; r3 < arguments.length; r3++) + e3[r3 - 1] = arguments[r3]; + return t4.with({ path: I.join.apply(I, U([t4.path], e3, false)) }); + }, t3.resolvePath = function(t4) { + for (var e3 = [], r3 = 1; r3 < arguments.length; r3++) + e3[r3 - 1] = arguments[r3]; + var n2 = t4.path || "/"; + return t4.with({ path: I.resolve.apply(I, U([n2], e3, false)) }); + }, t3.dirname = function(t4) { + var e3 = I.dirname(t4.path); + return 1 === e3.length && 46 === e3.charCodeAt(0) ? t4 : t4.with({ path: e3 }); + }, t3.basename = function(t4) { + return I.basename(t4.path); + }, t3.extname = function(t4) { + return I.extname(t4.path); + }; + }(P || (P = {})); + } }, e = {}; + function r(n) { + if (e[n]) + return e[n].exports; + var o = e[n] = { exports: {} }; + return t[n](o, o.exports, r), o.exports; + } + return r.d = (t2, e2) => { + for (var n in e2) + r.o(e2, n) && !r.o(t2, n) && Object.defineProperty(t2, n, { enumerable: true, get: e2[n] }); + }, r.o = (t2, e2) => Object.prototype.hasOwnProperty.call(t2, e2), r.r = (t2) => { + "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t2, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t2, "__esModule", { value: true }); + }, r(447); +})(); +var { URI: css_worker_URI, Utils } = LIB; + +// node_modules/vscode-css-languageservice/lib/esm/utils/resources.js +var __spreadArray2 = function(to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) + ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +function css_worker_dirname(uriString) { + return Utils.dirname(css_worker_URI.parse(uriString)).toString(); +} +function joinPath(uriString) { + var paths = []; + for (var _i = 1; _i < arguments.length; _i++) { + paths[_i - 1] = arguments[_i]; + } + return Utils.joinPath.apply(Utils, __spreadArray2([css_worker_URI.parse(uriString)], paths, false)).toString(); +} + +// node_modules/vscode-css-languageservice/lib/esm/services/pathCompletion.js +var css_worker_awaiter = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = function(thisArg, body) { + var _ = { label: 0, sent: function() { + if (t[0] & 1) + throw t[1]; + return t[1]; + }, trys: [], ops: [] }, f2, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { + return this; + }), g; + function verb(n) { + return function(v) { + return step([n, v]); + }; + } + function step(op) { + if (f2) + throw new TypeError("Generator is already executing."); + while (_) + try { + if (f2 = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) + return t; + if (y = 0, t) + op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) + _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f2 = t = 0; + } + if (op[0] & 5) + throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +var PathCompletionParticipant = function() { + function PathCompletionParticipant2(readDirectory) { + this.readDirectory = readDirectory; + this.literalCompletions = []; + this.importCompletions = []; + } + PathCompletionParticipant2.prototype.onCssURILiteralValue = function(context) { + this.literalCompletions.push(context); + }; + PathCompletionParticipant2.prototype.onCssImportPath = function(context) { + this.importCompletions.push(context); + }; + PathCompletionParticipant2.prototype.computeCompletions = function(document, documentContext) { + return css_worker_awaiter(this, void 0, void 0, function() { + var result, _i, _a2, literalCompletion, uriValue, fullValue, items, _b, items_1, item, _c, _d, importCompletion, pathValue, fullValue, suggestions, _e, suggestions_1, item; + return __generator(this, function(_f2) { + switch (_f2.label) { + case 0: + result = { items: [], isIncomplete: false }; + _i = 0, _a2 = this.literalCompletions; + _f2.label = 1; + case 1: + if (!(_i < _a2.length)) + return [3, 5]; + literalCompletion = _a2[_i]; + uriValue = literalCompletion.uriValue; + fullValue = stripQuotes(uriValue); + if (!(fullValue === "." || fullValue === "..")) + return [3, 2]; + result.isIncomplete = true; + return [3, 4]; + case 2: + return [4, this.providePathSuggestions(uriValue, literalCompletion.position, literalCompletion.range, document, documentContext)]; + case 3: + items = _f2.sent(); + for (_b = 0, items_1 = items; _b < items_1.length; _b++) { + item = items_1[_b]; + result.items.push(item); + } + _f2.label = 4; + case 4: + _i++; + return [3, 1]; + case 5: + _c = 0, _d = this.importCompletions; + _f2.label = 6; + case 6: + if (!(_c < _d.length)) + return [3, 10]; + importCompletion = _d[_c]; + pathValue = importCompletion.pathValue; + fullValue = stripQuotes(pathValue); + if (!(fullValue === "." || fullValue === "..")) + return [3, 7]; + result.isIncomplete = true; + return [3, 9]; + case 7: + return [4, this.providePathSuggestions(pathValue, importCompletion.position, importCompletion.range, document, documentContext)]; + case 8: + suggestions = _f2.sent(); + if (document.languageId === "scss") { + suggestions.forEach(function(s) { + if (startsWith(s.label, "_") && endsWith(s.label, ".scss")) { + if (s.textEdit) { + s.textEdit.newText = s.label.slice(1, -5); + } else { + s.label = s.label.slice(1, -5); + } + } + }); + } + for (_e = 0, suggestions_1 = suggestions; _e < suggestions_1.length; _e++) { + item = suggestions_1[_e]; + result.items.push(item); + } + _f2.label = 9; + case 9: + _c++; + return [3, 6]; + case 10: + return [2, result]; + } + }); + }); + }; + PathCompletionParticipant2.prototype.providePathSuggestions = function(pathValue, position, range, document, documentContext) { + return css_worker_awaiter(this, void 0, void 0, function() { + var fullValue, isValueQuoted, valueBeforeCursor, currentDocUri, fullValueRange, replaceRange, valueBeforeLastSlash, parentDir, result, infos, _i, infos_1, _a2, name, type, e_1; + return __generator(this, function(_b) { + switch (_b.label) { + case 0: + fullValue = stripQuotes(pathValue); + isValueQuoted = startsWith(pathValue, "'") || startsWith(pathValue, '"'); + valueBeforeCursor = isValueQuoted ? fullValue.slice(0, position.character - (range.start.character + 1)) : fullValue.slice(0, position.character - range.start.character); + currentDocUri = document.uri; + fullValueRange = isValueQuoted ? shiftRange(range, 1, -1) : range; + replaceRange = pathToReplaceRange(valueBeforeCursor, fullValue, fullValueRange); + valueBeforeLastSlash = valueBeforeCursor.substring(0, valueBeforeCursor.lastIndexOf("/") + 1); + parentDir = documentContext.resolveReference(valueBeforeLastSlash || ".", currentDocUri); + if (!parentDir) + return [3, 4]; + _b.label = 1; + case 1: + _b.trys.push([1, 3, , 4]); + result = []; + return [4, this.readDirectory(parentDir)]; + case 2: + infos = _b.sent(); + for (_i = 0, infos_1 = infos; _i < infos_1.length; _i++) { + _a2 = infos_1[_i], name = _a2[0], type = _a2[1]; + if (name.charCodeAt(0) !== CharCode_dot && (type === FileType.Directory || joinPath(parentDir, name) !== currentDocUri)) { + result.push(createCompletionItem(name, type === FileType.Directory, replaceRange)); + } + } + return [2, result]; + case 3: + e_1 = _b.sent(); + return [3, 4]; + case 4: + return [2, []]; + } + }); + }); + }; + return PathCompletionParticipant2; +}(); +var CharCode_dot = ".".charCodeAt(0); +function stripQuotes(fullValue) { + if (startsWith(fullValue, "'") || startsWith(fullValue, '"')) { + return fullValue.slice(1, -1); + } else { + return fullValue; + } +} +function pathToReplaceRange(valueBeforeCursor, fullValue, fullValueRange) { + var replaceRange; + var lastIndexOfSlash = valueBeforeCursor.lastIndexOf("/"); + if (lastIndexOfSlash === -1) { + replaceRange = fullValueRange; + } else { + var valueAfterLastSlash = fullValue.slice(lastIndexOfSlash + 1); + var startPos = shiftPosition(fullValueRange.end, -valueAfterLastSlash.length); + var whitespaceIndex = valueAfterLastSlash.indexOf(" "); + var endPos = void 0; + if (whitespaceIndex !== -1) { + endPos = shiftPosition(startPos, whitespaceIndex); + } else { + endPos = fullValueRange.end; + } + replaceRange = css_worker_Range.create(startPos, endPos); + } + return replaceRange; +} +function createCompletionItem(name, isDir, replaceRange) { + if (isDir) { + name = name + "/"; + return { + label: escapePath(name), + kind: css_worker_CompletionItemKind.Folder, + textEdit: TextEdit.replace(replaceRange, escapePath(name)), + command: { + title: "Suggest", + command: "editor.action.triggerSuggest" + } + }; + } else { + return { + label: escapePath(name), + kind: css_worker_CompletionItemKind.File, + textEdit: TextEdit.replace(replaceRange, escapePath(name)) + }; + } +} +function escapePath(p) { + return p.replace(/(\s|\(|\)|,|"|')/g, "\\$1"); +} +function shiftPosition(pos, offset) { + return css_worker_Position.create(pos.line, pos.character + offset); +} +function shiftRange(range, startOffset, endOffset) { + var start = shiftPosition(range.start, startOffset); + var end = shiftPosition(range.end, endOffset); + return css_worker_Range.create(start, end); +} + +// node_modules/vscode-css-languageservice/lib/esm/services/cssCompletion.js +var __awaiter2 = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator2 = function(thisArg, body) { + var _ = { label: 0, sent: function() { + if (t[0] & 1) + throw t[1]; + return t[1]; + }, trys: [], ops: [] }, f2, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { + return this; + }), g; + function verb(n) { + return function(v) { + return step([n, v]); + }; + } + function step(op) { + if (f2) + throw new TypeError("Generator is already executing."); + while (_) + try { + if (f2 = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) + return t; + if (y = 0, t) + op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) + _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f2 = t = 0; + } + if (op[0] & 5) + throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +var localize4 = loadMessageBundle(); +var SnippetFormat = InsertTextFormat.Snippet; +var retriggerCommand = { + title: "Suggest", + command: "editor.action.triggerSuggest" +}; +var SortTexts; +(function(SortTexts2) { + SortTexts2["Enums"] = " "; + SortTexts2["Normal"] = "d"; + SortTexts2["VendorPrefixed"] = "x"; + SortTexts2["Term"] = "y"; + SortTexts2["Variable"] = "z"; +})(SortTexts || (SortTexts = {})); +var CSSCompletion = function() { + function CSSCompletion2(variablePrefix, lsOptions, cssDataManager) { + if (variablePrefix === void 0) { + variablePrefix = null; + } + this.variablePrefix = variablePrefix; + this.lsOptions = lsOptions; + this.cssDataManager = cssDataManager; + this.completionParticipants = []; + } + CSSCompletion2.prototype.configure = function(settings) { + this.defaultSettings = settings; + }; + CSSCompletion2.prototype.getSymbolContext = function() { + if (!this.symbolContext) { + this.symbolContext = new Symbols(this.styleSheet); + } + return this.symbolContext; + }; + CSSCompletion2.prototype.setCompletionParticipants = function(registeredCompletionParticipants) { + this.completionParticipants = registeredCompletionParticipants || []; + }; + CSSCompletion2.prototype.doComplete2 = function(document, position, styleSheet, documentContext, completionSettings) { + if (completionSettings === void 0) { + completionSettings = this.defaultSettings; + } + return __awaiter2(this, void 0, void 0, function() { + var participant, contributedParticipants, result, pathCompletionResult; + return __generator2(this, function(_a2) { + switch (_a2.label) { + case 0: + if (!this.lsOptions.fileSystemProvider || !this.lsOptions.fileSystemProvider.readDirectory) { + return [2, this.doComplete(document, position, styleSheet, completionSettings)]; + } + participant = new PathCompletionParticipant(this.lsOptions.fileSystemProvider.readDirectory); + contributedParticipants = this.completionParticipants; + this.completionParticipants = [participant].concat(contributedParticipants); + result = this.doComplete(document, position, styleSheet, completionSettings); + _a2.label = 1; + case 1: + _a2.trys.push([1, , 3, 4]); + return [4, participant.computeCompletions(document, documentContext)]; + case 2: + pathCompletionResult = _a2.sent(); + return [2, { + isIncomplete: result.isIncomplete || pathCompletionResult.isIncomplete, + items: pathCompletionResult.items.concat(result.items) + }]; + case 3: + this.completionParticipants = contributedParticipants; + return [7]; + case 4: + return [2]; + } + }); + }); + }; + CSSCompletion2.prototype.doComplete = function(document, position, styleSheet, documentSettings) { + this.offset = document.offsetAt(position); + this.position = position; + this.currentWord = getCurrentWord(document, this.offset); + this.defaultReplaceRange = css_worker_Range.create(css_worker_Position.create(this.position.line, this.position.character - this.currentWord.length), this.position); + this.textDocument = document; + this.styleSheet = styleSheet; + this.documentSettings = documentSettings; + try { + var result = { isIncomplete: false, items: [] }; + this.nodePath = getNodePath(this.styleSheet, this.offset); + for (var i = this.nodePath.length - 1; i >= 0; i--) { + var node = this.nodePath[i]; + if (node instanceof Property) { + this.getCompletionsForDeclarationProperty(node.getParent(), result); + } else if (node instanceof Expression) { + if (node.parent instanceof Interpolation) { + this.getVariableProposals(null, result); + } else { + this.getCompletionsForExpression(node, result); + } + } else if (node instanceof SimpleSelector) { + var parentRef = node.findAParent(NodeType.ExtendsReference, NodeType.Ruleset); + if (parentRef) { + if (parentRef.type === NodeType.ExtendsReference) { + this.getCompletionsForExtendsReference(parentRef, node, result); + } else { + var parentRuleSet = parentRef; + this.getCompletionsForSelector(parentRuleSet, parentRuleSet && parentRuleSet.isNested(), result); + } + } + } else if (node instanceof FunctionArgument) { + this.getCompletionsForFunctionArgument(node, node.getParent(), result); + } else if (node instanceof Declarations) { + this.getCompletionsForDeclarations(node, result); + } else if (node instanceof VariableDeclaration) { + this.getCompletionsForVariableDeclaration(node, result); + } else if (node instanceof RuleSet) { + this.getCompletionsForRuleSet(node, result); + } else if (node instanceof Interpolation) { + this.getCompletionsForInterpolation(node, result); + } else if (node instanceof FunctionDeclaration) { + this.getCompletionsForFunctionDeclaration(node, result); + } else if (node instanceof MixinReference) { + this.getCompletionsForMixinReference(node, result); + } else if (node instanceof Function) { + this.getCompletionsForFunctionArgument(null, node, result); + } else if (node instanceof Supports) { + this.getCompletionsForSupports(node, result); + } else if (node instanceof SupportsCondition) { + this.getCompletionsForSupportsCondition(node, result); + } else if (node instanceof ExtendsReference) { + this.getCompletionsForExtendsReference(node, null, result); + } else if (node.type === NodeType.URILiteral) { + this.getCompletionForUriLiteralValue(node, result); + } else if (node.parent === null) { + this.getCompletionForTopLevel(result); + } else if (node.type === NodeType.StringLiteral && this.isImportPathParent(node.parent.type)) { + this.getCompletionForImportPath(node, result); + } else { + continue; + } + if (result.items.length > 0 || this.offset > node.offset) { + return this.finalize(result); + } + } + this.getCompletionsForStylesheet(result); + if (result.items.length === 0) { + if (this.variablePrefix && this.currentWord.indexOf(this.variablePrefix) === 0) { + this.getVariableProposals(null, result); + } + } + return this.finalize(result); + } finally { + this.position = null; + this.currentWord = null; + this.textDocument = null; + this.styleSheet = null; + this.symbolContext = null; + this.defaultReplaceRange = null; + this.nodePath = null; + } + }; + CSSCompletion2.prototype.isImportPathParent = function(type) { + return type === NodeType.Import; + }; + CSSCompletion2.prototype.finalize = function(result) { + return result; + }; + CSSCompletion2.prototype.findInNodePath = function() { + var types = []; + for (var _i = 0; _i < arguments.length; _i++) { + types[_i] = arguments[_i]; + } + for (var i = this.nodePath.length - 1; i >= 0; i--) { + var node = this.nodePath[i]; + if (types.indexOf(node.type) !== -1) { + return node; + } + } + return null; + }; + CSSCompletion2.prototype.getCompletionsForDeclarationProperty = function(declaration, result) { + return this.getPropertyProposals(declaration, result); + }; + CSSCompletion2.prototype.getPropertyProposals = function(declaration, result) { + var _this = this; + var triggerPropertyValueCompletion = this.isTriggerPropertyValueCompletionEnabled; + var completePropertyWithSemicolon = this.isCompletePropertyWithSemicolonEnabled; + var properties = this.cssDataManager.getProperties(); + properties.forEach(function(entry) { + var range; + var insertText; + var retrigger = false; + if (declaration) { + range = _this.getCompletionRange(declaration.getProperty()); + insertText = entry.name; + if (!css_worker_isDefined(declaration.colonPosition)) { + insertText += ": "; + retrigger = true; + } + } else { + range = _this.getCompletionRange(null); + insertText = entry.name + ": "; + retrigger = true; + } + if (!declaration && completePropertyWithSemicolon) { + insertText += "$0;"; + } + if (declaration && !declaration.semicolonPosition) { + if (completePropertyWithSemicolon && _this.offset >= _this.textDocument.offsetAt(range.end)) { + insertText += "$0;"; + } + } + var item = { + label: entry.name, + documentation: getEntryDescription(entry, _this.doesSupportMarkdown()), + tags: isDeprecated(entry) ? [css_worker_CompletionItemTag.Deprecated] : [], + textEdit: TextEdit.replace(range, insertText), + insertTextFormat: InsertTextFormat.Snippet, + kind: css_worker_CompletionItemKind.Property + }; + if (!entry.restrictions) { + retrigger = false; + } + if (triggerPropertyValueCompletion && retrigger) { + item.command = retriggerCommand; + } + var relevance = typeof entry.relevance === "number" ? Math.min(Math.max(entry.relevance, 0), 99) : 50; + var sortTextSuffix = (255 - relevance).toString(16); + var sortTextPrefix = startsWith(entry.name, "-") ? SortTexts.VendorPrefixed : SortTexts.Normal; + item.sortText = sortTextPrefix + "_" + sortTextSuffix; + result.items.push(item); + }); + this.completionParticipants.forEach(function(participant) { + if (participant.onCssProperty) { + participant.onCssProperty({ + propertyName: _this.currentWord, + range: _this.defaultReplaceRange + }); + } + }); + return result; + }; + Object.defineProperty(CSSCompletion2.prototype, "isTriggerPropertyValueCompletionEnabled", { + get: function() { + var _a2, _b; + return (_b = (_a2 = this.documentSettings) === null || _a2 === void 0 ? void 0 : _a2.triggerPropertyValueCompletion) !== null && _b !== void 0 ? _b : true; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(CSSCompletion2.prototype, "isCompletePropertyWithSemicolonEnabled", { + get: function() { + var _a2, _b; + return (_b = (_a2 = this.documentSettings) === null || _a2 === void 0 ? void 0 : _a2.completePropertyWithSemicolon) !== null && _b !== void 0 ? _b : true; + }, + enumerable: false, + configurable: true + }); + CSSCompletion2.prototype.getCompletionsForDeclarationValue = function(node, result) { + var _this = this; + var propertyName = node.getFullPropertyName(); + var entry = this.cssDataManager.getProperty(propertyName); + var existingNode = node.getValue() || null; + while (existingNode && existingNode.hasChildren()) { + existingNode = existingNode.findChildAtOffset(this.offset, false); + } + this.completionParticipants.forEach(function(participant) { + if (participant.onCssPropertyValue) { + participant.onCssPropertyValue({ + propertyName, + propertyValue: _this.currentWord, + range: _this.getCompletionRange(existingNode) + }); + } + }); + if (entry) { + if (entry.restrictions) { + for (var _i = 0, _a2 = entry.restrictions; _i < _a2.length; _i++) { + var restriction = _a2[_i]; + switch (restriction) { + case "color": + this.getColorProposals(entry, existingNode, result); + break; + case "position": + this.getPositionProposals(entry, existingNode, result); + break; + case "repeat": + this.getRepeatStyleProposals(entry, existingNode, result); + break; + case "line-style": + this.getLineStyleProposals(entry, existingNode, result); + break; + case "line-width": + this.getLineWidthProposals(entry, existingNode, result); + break; + case "geometry-box": + this.getGeometryBoxProposals(entry, existingNode, result); + break; + case "box": + this.getBoxProposals(entry, existingNode, result); + break; + case "image": + this.getImageProposals(entry, existingNode, result); + break; + case "timing-function": + this.getTimingFunctionProposals(entry, existingNode, result); + break; + case "shape": + this.getBasicShapeProposals(entry, existingNode, result); + break; + } + } + } + this.getValueEnumProposals(entry, existingNode, result); + this.getCSSWideKeywordProposals(entry, existingNode, result); + this.getUnitProposals(entry, existingNode, result); + } else { + var existingValues = collectValues(this.styleSheet, node); + for (var _b = 0, _c = existingValues.getEntries(); _b < _c.length; _b++) { + var existingValue = _c[_b]; + result.items.push({ + label: existingValue, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), existingValue), + kind: css_worker_CompletionItemKind.Value + }); + } + } + this.getVariableProposals(existingNode, result); + this.getTermProposals(entry, existingNode, result); + return result; + }; + CSSCompletion2.prototype.getValueEnumProposals = function(entry, existingNode, result) { + if (entry.values) { + for (var _i = 0, _a2 = entry.values; _i < _a2.length; _i++) { + var value = _a2[_i]; + var insertString = value.name; + var insertTextFormat = void 0; + if (endsWith(insertString, ")")) { + var from = insertString.lastIndexOf("("); + if (from !== -1) { + insertString = insertString.substr(0, from) + "($1)"; + insertTextFormat = SnippetFormat; + } + } + var sortText = SortTexts.Enums; + if (startsWith(value.name, "-")) { + sortText += SortTexts.VendorPrefixed; + } + var item = { + label: value.name, + documentation: getEntryDescription(value, this.doesSupportMarkdown()), + tags: isDeprecated(entry) ? [css_worker_CompletionItemTag.Deprecated] : [], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertString), + sortText, + kind: css_worker_CompletionItemKind.Value, + insertTextFormat + }; + result.items.push(item); + } + } + return result; + }; + CSSCompletion2.prototype.getCSSWideKeywordProposals = function(entry, existingNode, result) { + for (var keywords in cssWideKeywords) { + result.items.push({ + label: keywords, + documentation: cssWideKeywords[keywords], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), keywords), + kind: css_worker_CompletionItemKind.Value + }); + } + for (var func in cssWideFunctions) { + var insertText = moveCursorInsideParenthesis(func); + result.items.push({ + label: func, + documentation: cssWideFunctions[func], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + kind: css_worker_CompletionItemKind.Function, + insertTextFormat: SnippetFormat, + command: startsWith(func, "var") ? retriggerCommand : void 0 + }); + } + return result; + }; + CSSCompletion2.prototype.getCompletionsForInterpolation = function(node, result) { + if (this.offset >= node.offset + 2) { + this.getVariableProposals(null, result); + } + return result; + }; + CSSCompletion2.prototype.getVariableProposals = function(existingNode, result) { + var symbols = this.getSymbolContext().findSymbolsAtOffset(this.offset, ReferenceType.Variable); + for (var _i = 0, symbols_1 = symbols; _i < symbols_1.length; _i++) { + var symbol = symbols_1[_i]; + var insertText = startsWith(symbol.name, "--") ? "var(".concat(symbol.name, ")") : symbol.name; + var completionItem = { + label: symbol.name, + documentation: symbol.value ? getLimitedString(symbol.value) : symbol.value, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + kind: css_worker_CompletionItemKind.Variable, + sortText: SortTexts.Variable + }; + if (typeof completionItem.documentation === "string" && isColorString(completionItem.documentation)) { + completionItem.kind = css_worker_CompletionItemKind.Color; + } + if (symbol.node.type === NodeType.FunctionParameter) { + var mixinNode = symbol.node.getParent(); + if (mixinNode.type === NodeType.MixinDeclaration) { + completionItem.detail = localize4("completion.argument", "argument from '{0}'", mixinNode.getName()); + } + } + result.items.push(completionItem); + } + return result; + }; + CSSCompletion2.prototype.getVariableProposalsForCSSVarFunction = function(result) { + var allReferencedVariables = new css_worker_Set(); + this.styleSheet.acceptVisitor(new VariableCollector(allReferencedVariables, this.offset)); + var symbols = this.getSymbolContext().findSymbolsAtOffset(this.offset, ReferenceType.Variable); + for (var _i = 0, symbols_2 = symbols; _i < symbols_2.length; _i++) { + var symbol = symbols_2[_i]; + if (startsWith(symbol.name, "--")) { + var completionItem = { + label: symbol.name, + documentation: symbol.value ? getLimitedString(symbol.value) : symbol.value, + textEdit: TextEdit.replace(this.getCompletionRange(null), symbol.name), + kind: css_worker_CompletionItemKind.Variable + }; + if (typeof completionItem.documentation === "string" && isColorString(completionItem.documentation)) { + completionItem.kind = css_worker_CompletionItemKind.Color; + } + result.items.push(completionItem); + } + allReferencedVariables.remove(symbol.name); + } + for (var _a2 = 0, _b = allReferencedVariables.getEntries(); _a2 < _b.length; _a2++) { + var name = _b[_a2]; + if (startsWith(name, "--")) { + var completionItem = { + label: name, + textEdit: TextEdit.replace(this.getCompletionRange(null), name), + kind: css_worker_CompletionItemKind.Variable + }; + result.items.push(completionItem); + } + } + return result; + }; + CSSCompletion2.prototype.getUnitProposals = function(entry, existingNode, result) { + var currentWord = "0"; + if (this.currentWord.length > 0) { + var numMatch = this.currentWord.match(/^-?\d[\.\d+]*/); + if (numMatch) { + currentWord = numMatch[0]; + result.isIncomplete = currentWord.length === this.currentWord.length; + } + } else if (this.currentWord.length === 0) { + result.isIncomplete = true; + } + if (existingNode && existingNode.parent && existingNode.parent.type === NodeType.Term) { + existingNode = existingNode.getParent(); + } + if (entry.restrictions) { + for (var _i = 0, _a2 = entry.restrictions; _i < _a2.length; _i++) { + var restriction = _a2[_i]; + var units2 = units[restriction]; + if (units2) { + for (var _b = 0, units_1 = units2; _b < units_1.length; _b++) { + var unit = units_1[_b]; + var insertText = currentWord + unit; + result.items.push({ + label: insertText, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + kind: css_worker_CompletionItemKind.Unit + }); + } + } + } + } + return result; + }; + CSSCompletion2.prototype.getCompletionRange = function(existingNode) { + if (existingNode && existingNode.offset <= this.offset && this.offset <= existingNode.end) { + var end = existingNode.end !== -1 ? this.textDocument.positionAt(existingNode.end) : this.position; + var start = this.textDocument.positionAt(existingNode.offset); + if (start.line === end.line) { + return css_worker_Range.create(start, end); + } + } + return this.defaultReplaceRange; + }; + CSSCompletion2.prototype.getColorProposals = function(entry, existingNode, result) { + for (var color in colors) { + result.items.push({ + label: color, + documentation: colors[color], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), color), + kind: css_worker_CompletionItemKind.Color + }); + } + for (var color in colorKeywords) { + result.items.push({ + label: color, + documentation: colorKeywords[color], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), color), + kind: css_worker_CompletionItemKind.Value + }); + } + var colorValues = new css_worker_Set(); + this.styleSheet.acceptVisitor(new ColorValueCollector(colorValues, this.offset)); + for (var _i = 0, _a2 = colorValues.getEntries(); _i < _a2.length; _i++) { + var color = _a2[_i]; + result.items.push({ + label: color, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), color), + kind: css_worker_CompletionItemKind.Color + }); + } + var _loop_1 = function(p2) { + var tabStop = 1; + var replaceFunction = function(_match, p1) { + return "${" + tabStop++ + ":" + p1 + "}"; + }; + var insertText = p2.func.replace(/\[?\$(\w+)\]?/g, replaceFunction); + result.items.push({ + label: p2.func.substr(0, p2.func.indexOf("(")), + detail: p2.func, + documentation: p2.desc, + textEdit: TextEdit.replace(this_1.getCompletionRange(existingNode), insertText), + insertTextFormat: SnippetFormat, + kind: css_worker_CompletionItemKind.Function + }); + }; + var this_1 = this; + for (var _b = 0, _c = colorFunctions; _b < _c.length; _b++) { + var p = _c[_b]; + _loop_1(p); + } + return result; + }; + CSSCompletion2.prototype.getPositionProposals = function(entry, existingNode, result) { + for (var position in positionKeywords) { + result.items.push({ + label: position, + documentation: positionKeywords[position], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), position), + kind: css_worker_CompletionItemKind.Value + }); + } + return result; + }; + CSSCompletion2.prototype.getRepeatStyleProposals = function(entry, existingNode, result) { + for (var repeat2 in repeatStyleKeywords) { + result.items.push({ + label: repeat2, + documentation: repeatStyleKeywords[repeat2], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), repeat2), + kind: css_worker_CompletionItemKind.Value + }); + } + return result; + }; + CSSCompletion2.prototype.getLineStyleProposals = function(entry, existingNode, result) { + for (var lineStyle in lineStyleKeywords) { + result.items.push({ + label: lineStyle, + documentation: lineStyleKeywords[lineStyle], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), lineStyle), + kind: css_worker_CompletionItemKind.Value + }); + } + return result; + }; + CSSCompletion2.prototype.getLineWidthProposals = function(entry, existingNode, result) { + for (var _i = 0, _a2 = lineWidthKeywords; _i < _a2.length; _i++) { + var lineWidth = _a2[_i]; + result.items.push({ + label: lineWidth, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), lineWidth), + kind: css_worker_CompletionItemKind.Value + }); + } + return result; + }; + CSSCompletion2.prototype.getGeometryBoxProposals = function(entry, existingNode, result) { + for (var box in geometryBoxKeywords) { + result.items.push({ + label: box, + documentation: geometryBoxKeywords[box], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), box), + kind: css_worker_CompletionItemKind.Value + }); + } + return result; + }; + CSSCompletion2.prototype.getBoxProposals = function(entry, existingNode, result) { + for (var box in boxKeywords) { + result.items.push({ + label: box, + documentation: boxKeywords[box], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), box), + kind: css_worker_CompletionItemKind.Value + }); + } + return result; + }; + CSSCompletion2.prototype.getImageProposals = function(entry, existingNode, result) { + for (var image in imageFunctions) { + var insertText = moveCursorInsideParenthesis(image); + result.items.push({ + label: image, + documentation: imageFunctions[image], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + kind: css_worker_CompletionItemKind.Function, + insertTextFormat: image !== insertText ? SnippetFormat : void 0 + }); + } + return result; + }; + CSSCompletion2.prototype.getTimingFunctionProposals = function(entry, existingNode, result) { + for (var timing in transitionTimingFunctions) { + var insertText = moveCursorInsideParenthesis(timing); + result.items.push({ + label: timing, + documentation: transitionTimingFunctions[timing], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + kind: css_worker_CompletionItemKind.Function, + insertTextFormat: timing !== insertText ? SnippetFormat : void 0 + }); + } + return result; + }; + CSSCompletion2.prototype.getBasicShapeProposals = function(entry, existingNode, result) { + for (var shape in basicShapeFunctions) { + var insertText = moveCursorInsideParenthesis(shape); + result.items.push({ + label: shape, + documentation: basicShapeFunctions[shape], + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + kind: css_worker_CompletionItemKind.Function, + insertTextFormat: shape !== insertText ? SnippetFormat : void 0 + }); + } + return result; + }; + CSSCompletion2.prototype.getCompletionsForStylesheet = function(result) { + var node = this.styleSheet.findFirstChildBeforeOffset(this.offset); + if (!node) { + return this.getCompletionForTopLevel(result); + } + if (node instanceof RuleSet) { + return this.getCompletionsForRuleSet(node, result); + } + if (node instanceof Supports) { + return this.getCompletionsForSupports(node, result); + } + return result; + }; + CSSCompletion2.prototype.getCompletionForTopLevel = function(result) { + var _this = this; + this.cssDataManager.getAtDirectives().forEach(function(entry) { + result.items.push({ + label: entry.name, + textEdit: TextEdit.replace(_this.getCompletionRange(null), entry.name), + documentation: getEntryDescription(entry, _this.doesSupportMarkdown()), + tags: isDeprecated(entry) ? [css_worker_CompletionItemTag.Deprecated] : [], + kind: css_worker_CompletionItemKind.Keyword + }); + }); + this.getCompletionsForSelector(null, false, result); + return result; + }; + CSSCompletion2.prototype.getCompletionsForRuleSet = function(ruleSet, result) { + var declarations = ruleSet.getDeclarations(); + var isAfter = declarations && declarations.endsWith("}") && this.offset >= declarations.end; + if (isAfter) { + return this.getCompletionForTopLevel(result); + } + var isInSelectors = !declarations || this.offset <= declarations.offset; + if (isInSelectors) { + return this.getCompletionsForSelector(ruleSet, ruleSet.isNested(), result); + } + return this.getCompletionsForDeclarations(ruleSet.getDeclarations(), result); + }; + CSSCompletion2.prototype.getCompletionsForSelector = function(ruleSet, isNested, result) { + var _this = this; + var existingNode = this.findInNodePath(NodeType.PseudoSelector, NodeType.IdentifierSelector, NodeType.ClassSelector, NodeType.ElementNameSelector); + if (!existingNode && this.hasCharacterAtPosition(this.offset - this.currentWord.length - 1, ":")) { + this.currentWord = ":" + this.currentWord; + if (this.hasCharacterAtPosition(this.offset - this.currentWord.length - 1, ":")) { + this.currentWord = ":" + this.currentWord; + } + this.defaultReplaceRange = css_worker_Range.create(css_worker_Position.create(this.position.line, this.position.character - this.currentWord.length), this.position); + } + var pseudoClasses = this.cssDataManager.getPseudoClasses(); + pseudoClasses.forEach(function(entry2) { + var insertText = moveCursorInsideParenthesis(entry2.name); + var item = { + label: entry2.name, + textEdit: TextEdit.replace(_this.getCompletionRange(existingNode), insertText), + documentation: getEntryDescription(entry2, _this.doesSupportMarkdown()), + tags: isDeprecated(entry2) ? [css_worker_CompletionItemTag.Deprecated] : [], + kind: css_worker_CompletionItemKind.Function, + insertTextFormat: entry2.name !== insertText ? SnippetFormat : void 0 + }; + if (startsWith(entry2.name, ":-")) { + item.sortText = SortTexts.VendorPrefixed; + } + result.items.push(item); + }); + var pseudoElements = this.cssDataManager.getPseudoElements(); + pseudoElements.forEach(function(entry2) { + var insertText = moveCursorInsideParenthesis(entry2.name); + var item = { + label: entry2.name, + textEdit: TextEdit.replace(_this.getCompletionRange(existingNode), insertText), + documentation: getEntryDescription(entry2, _this.doesSupportMarkdown()), + tags: isDeprecated(entry2) ? [css_worker_CompletionItemTag.Deprecated] : [], + kind: css_worker_CompletionItemKind.Function, + insertTextFormat: entry2.name !== insertText ? SnippetFormat : void 0 + }; + if (startsWith(entry2.name, "::-")) { + item.sortText = SortTexts.VendorPrefixed; + } + result.items.push(item); + }); + if (!isNested) { + for (var _i = 0, _a2 = html5Tags; _i < _a2.length; _i++) { + var entry = _a2[_i]; + result.items.push({ + label: entry, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), entry), + kind: css_worker_CompletionItemKind.Keyword + }); + } + for (var _b = 0, _c = svgElements; _b < _c.length; _b++) { + var entry = _c[_b]; + result.items.push({ + label: entry, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), entry), + kind: css_worker_CompletionItemKind.Keyword + }); + } + } + var visited = {}; + visited[this.currentWord] = true; + var docText = this.textDocument.getText(); + this.styleSheet.accept(function(n) { + if (n.type === NodeType.SimpleSelector && n.length > 0) { + var selector2 = docText.substr(n.offset, n.length); + if (selector2.charAt(0) === "." && !visited[selector2]) { + visited[selector2] = true; + result.items.push({ + label: selector2, + textEdit: TextEdit.replace(_this.getCompletionRange(existingNode), selector2), + kind: css_worker_CompletionItemKind.Keyword + }); + } + return false; + } + return true; + }); + if (ruleSet && ruleSet.isNested()) { + var selector = ruleSet.getSelectors().findFirstChildBeforeOffset(this.offset); + if (selector && ruleSet.getSelectors().getChildren().indexOf(selector) === 0) { + this.getPropertyProposals(null, result); + } + } + return result; + }; + CSSCompletion2.prototype.getCompletionsForDeclarations = function(declarations, result) { + if (!declarations || this.offset === declarations.offset) { + return result; + } + var node = declarations.findFirstChildBeforeOffset(this.offset); + if (!node) { + return this.getCompletionsForDeclarationProperty(null, result); + } + if (node instanceof AbstractDeclaration) { + var declaration = node; + if (!css_worker_isDefined(declaration.colonPosition) || this.offset <= declaration.colonPosition) { + return this.getCompletionsForDeclarationProperty(declaration, result); + } else if (css_worker_isDefined(declaration.semicolonPosition) && declaration.semicolonPosition < this.offset) { + if (this.offset === declaration.semicolonPosition + 1) { + return result; + } + return this.getCompletionsForDeclarationProperty(null, result); + } + if (declaration instanceof Declaration) { + return this.getCompletionsForDeclarationValue(declaration, result); + } + } else if (node instanceof ExtendsReference) { + this.getCompletionsForExtendsReference(node, null, result); + } else if (this.currentWord && this.currentWord[0] === "@") { + this.getCompletionsForDeclarationProperty(null, result); + } else if (node instanceof RuleSet) { + this.getCompletionsForDeclarationProperty(null, result); + } + return result; + }; + CSSCompletion2.prototype.getCompletionsForVariableDeclaration = function(declaration, result) { + if (this.offset && css_worker_isDefined(declaration.colonPosition) && this.offset > declaration.colonPosition) { + this.getVariableProposals(declaration.getValue(), result); + } + return result; + }; + CSSCompletion2.prototype.getCompletionsForExpression = function(expression, result) { + var parent = expression.getParent(); + if (parent instanceof FunctionArgument) { + this.getCompletionsForFunctionArgument(parent, parent.getParent(), result); + return result; + } + var declaration = expression.findParent(NodeType.Declaration); + if (!declaration) { + this.getTermProposals(void 0, null, result); + return result; + } + var node = expression.findChildAtOffset(this.offset, true); + if (!node) { + return this.getCompletionsForDeclarationValue(declaration, result); + } + if (node instanceof NumericValue || node instanceof Identifier) { + return this.getCompletionsForDeclarationValue(declaration, result); + } + return result; + }; + CSSCompletion2.prototype.getCompletionsForFunctionArgument = function(arg, func, result) { + var identifier = func.getIdentifier(); + if (identifier && identifier.matches("var")) { + if (!func.getArguments().hasChildren() || func.getArguments().getChild(0) === arg) { + this.getVariableProposalsForCSSVarFunction(result); + } + } + return result; + }; + CSSCompletion2.prototype.getCompletionsForFunctionDeclaration = function(decl, result) { + var declarations = decl.getDeclarations(); + if (declarations && this.offset > declarations.offset && this.offset < declarations.end) { + this.getTermProposals(void 0, null, result); + } + return result; + }; + CSSCompletion2.prototype.getCompletionsForMixinReference = function(ref, result) { + var _this = this; + var allMixins = this.getSymbolContext().findSymbolsAtOffset(this.offset, ReferenceType.Mixin); + for (var _i = 0, allMixins_1 = allMixins; _i < allMixins_1.length; _i++) { + var mixinSymbol = allMixins_1[_i]; + if (mixinSymbol.node instanceof MixinDeclaration) { + result.items.push(this.makeTermProposal(mixinSymbol, mixinSymbol.node.getParameters(), null)); + } + } + var identifierNode = ref.getIdentifier() || null; + this.completionParticipants.forEach(function(participant) { + if (participant.onCssMixinReference) { + participant.onCssMixinReference({ + mixinName: _this.currentWord, + range: _this.getCompletionRange(identifierNode) + }); + } + }); + return result; + }; + CSSCompletion2.prototype.getTermProposals = function(entry, existingNode, result) { + var allFunctions = this.getSymbolContext().findSymbolsAtOffset(this.offset, ReferenceType.Function); + for (var _i = 0, allFunctions_1 = allFunctions; _i < allFunctions_1.length; _i++) { + var functionSymbol = allFunctions_1[_i]; + if (functionSymbol.node instanceof FunctionDeclaration) { + result.items.push(this.makeTermProposal(functionSymbol, functionSymbol.node.getParameters(), existingNode)); + } + } + return result; + }; + CSSCompletion2.prototype.makeTermProposal = function(symbol, parameters, existingNode) { + var decl = symbol.node; + var params = parameters.getChildren().map(function(c) { + return c instanceof FunctionParameter ? c.getName() : c.getText(); + }); + var insertText = symbol.name + "(" + params.map(function(p, index) { + return "${" + (index + 1) + ":" + p + "}"; + }).join(", ") + ")"; + return { + label: symbol.name, + detail: symbol.name + "(" + params.join(", ") + ")", + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + insertTextFormat: SnippetFormat, + kind: css_worker_CompletionItemKind.Function, + sortText: SortTexts.Term + }; + }; + CSSCompletion2.prototype.getCompletionsForSupportsCondition = function(supportsCondition, result) { + var child = supportsCondition.findFirstChildBeforeOffset(this.offset); + if (child) { + if (child instanceof Declaration) { + if (!css_worker_isDefined(child.colonPosition) || this.offset <= child.colonPosition) { + return this.getCompletionsForDeclarationProperty(child, result); + } else { + return this.getCompletionsForDeclarationValue(child, result); + } + } else if (child instanceof SupportsCondition) { + return this.getCompletionsForSupportsCondition(child, result); + } + } + if (css_worker_isDefined(supportsCondition.lParent) && this.offset > supportsCondition.lParent && (!css_worker_isDefined(supportsCondition.rParent) || this.offset <= supportsCondition.rParent)) { + return this.getCompletionsForDeclarationProperty(null, result); + } + return result; + }; + CSSCompletion2.prototype.getCompletionsForSupports = function(supports, result) { + var declarations = supports.getDeclarations(); + var inInCondition = !declarations || this.offset <= declarations.offset; + if (inInCondition) { + var child = supports.findFirstChildBeforeOffset(this.offset); + if (child instanceof SupportsCondition) { + return this.getCompletionsForSupportsCondition(child, result); + } + return result; + } + return this.getCompletionForTopLevel(result); + }; + CSSCompletion2.prototype.getCompletionsForExtendsReference = function(extendsRef, existingNode, result) { + return result; + }; + CSSCompletion2.prototype.getCompletionForUriLiteralValue = function(uriLiteralNode, result) { + var uriValue; + var position; + var range; + if (!uriLiteralNode.hasChildren()) { + uriValue = ""; + position = this.position; + var emptyURIValuePosition = this.textDocument.positionAt(uriLiteralNode.offset + "url(".length); + range = css_worker_Range.create(emptyURIValuePosition, emptyURIValuePosition); + } else { + var uriValueNode = uriLiteralNode.getChild(0); + uriValue = uriValueNode.getText(); + position = this.position; + range = this.getCompletionRange(uriValueNode); + } + this.completionParticipants.forEach(function(participant) { + if (participant.onCssURILiteralValue) { + participant.onCssURILiteralValue({ + uriValue, + position, + range + }); + } + }); + return result; + }; + CSSCompletion2.prototype.getCompletionForImportPath = function(importPathNode, result) { + var _this = this; + this.completionParticipants.forEach(function(participant) { + if (participant.onCssImportPath) { + participant.onCssImportPath({ + pathValue: importPathNode.getText(), + position: _this.position, + range: _this.getCompletionRange(importPathNode) + }); + } + }); + return result; + }; + CSSCompletion2.prototype.hasCharacterAtPosition = function(offset, char) { + var text = this.textDocument.getText(); + return offset >= 0 && offset < text.length && text.charAt(offset) === char; + }; + CSSCompletion2.prototype.doesSupportMarkdown = function() { + var _a2, _b, _c; + if (!css_worker_isDefined(this.supportsMarkdown)) { + if (!css_worker_isDefined(this.lsOptions.clientCapabilities)) { + this.supportsMarkdown = true; + return this.supportsMarkdown; + } + var documentationFormat = (_c = (_b = (_a2 = this.lsOptions.clientCapabilities.textDocument) === null || _a2 === void 0 ? void 0 : _a2.completion) === null || _b === void 0 ? void 0 : _b.completionItem) === null || _c === void 0 ? void 0 : _c.documentationFormat; + this.supportsMarkdown = Array.isArray(documentationFormat) && documentationFormat.indexOf(MarkupKind.Markdown) !== -1; + } + return this.supportsMarkdown; + }; + return CSSCompletion2; +}(); +function isDeprecated(entry) { + if (entry.status && (entry.status === "nonstandard" || entry.status === "obsolete")) { + return true; + } + return false; +} +var css_worker_Set = function() { + function Set2() { + this.entries = {}; + } + Set2.prototype.add = function(entry) { + this.entries[entry] = true; + }; + Set2.prototype.remove = function(entry) { + delete this.entries[entry]; + }; + Set2.prototype.getEntries = function() { + return Object.keys(this.entries); + }; + return Set2; +}(); +function moveCursorInsideParenthesis(text) { + return text.replace(/\(\)$/, "($1)"); +} +function collectValues(styleSheet, declaration) { + var fullPropertyName = declaration.getFullPropertyName(); + var entries = new css_worker_Set(); + function visitValue(node) { + if (node instanceof Identifier || node instanceof NumericValue || node instanceof HexColorValue) { + entries.add(node.getText()); + } + return true; + } + function matchesProperty(decl) { + var propertyName = decl.getFullPropertyName(); + return fullPropertyName === propertyName; + } + function vistNode(node) { + if (node instanceof Declaration && node !== declaration) { + if (matchesProperty(node)) { + var value = node.getValue(); + if (value) { + value.accept(visitValue); + } + } + } + return true; + } + styleSheet.accept(vistNode); + return entries; +} +var ColorValueCollector = function() { + function ColorValueCollector2(entries, currentOffset) { + this.entries = entries; + this.currentOffset = currentOffset; + } + ColorValueCollector2.prototype.visitNode = function(node) { + if (node instanceof HexColorValue || node instanceof Function && isColorConstructor(node)) { + if (this.currentOffset < node.offset || node.end < this.currentOffset) { + this.entries.add(node.getText()); + } + } + return true; + }; + return ColorValueCollector2; +}(); +var VariableCollector = function() { + function VariableCollector2(entries, currentOffset) { + this.entries = entries; + this.currentOffset = currentOffset; + } + VariableCollector2.prototype.visitNode = function(node) { + if (node instanceof Identifier && node.isCustomProperty) { + if (this.currentOffset < node.offset || node.end < this.currentOffset) { + this.entries.add(node.getText()); + } + } + return true; + }; + return VariableCollector2; +}(); +function getCurrentWord(document, offset) { + var i = offset - 1; + var text = document.getText(); + while (i >= 0 && ' \n\r":{[()]},*>+'.indexOf(text.charAt(i)) === -1) { + i--; + } + return text.substring(i + 1, offset); +} +function isColorString(s) { + return s.toLowerCase() in colors || /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(s); +} + +// node_modules/vscode-css-languageservice/lib/esm/services/selectorPrinting.js +var __extends3 = function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +}(); +var localize5 = loadMessageBundle(); +var Element = function() { + function Element3() { + this.parent = null; + this.children = null; + this.attributes = null; + } + Element3.prototype.findAttribute = function(name) { + if (this.attributes) { + for (var _i = 0, _a2 = this.attributes; _i < _a2.length; _i++) { + var attribute = _a2[_i]; + if (attribute.name === name) { + return attribute.value; + } + } + } + return null; + }; + Element3.prototype.addChild = function(child) { + if (child instanceof Element3) { + child.parent = this; + } + if (!this.children) { + this.children = []; + } + this.children.push(child); + }; + Element3.prototype.append = function(text) { + if (this.attributes) { + var last = this.attributes[this.attributes.length - 1]; + last.value = last.value + text; + } + }; + Element3.prototype.prepend = function(text) { + if (this.attributes) { + var first = this.attributes[0]; + first.value = text + first.value; + } + }; + Element3.prototype.findRoot = function() { + var curr = this; + while (curr.parent && !(curr.parent instanceof RootElement)) { + curr = curr.parent; + } + return curr; + }; + Element3.prototype.removeChild = function(child) { + if (this.children) { + var index = this.children.indexOf(child); + if (index !== -1) { + this.children.splice(index, 1); + return true; + } + } + return false; + }; + Element3.prototype.addAttr = function(name, value) { + if (!this.attributes) { + this.attributes = []; + } + for (var _i = 0, _a2 = this.attributes; _i < _a2.length; _i++) { + var attribute = _a2[_i]; + if (attribute.name === name) { + attribute.value += " " + value; + return; + } + } + this.attributes.push({ name, value }); + }; + Element3.prototype.clone = function(cloneChildren) { + if (cloneChildren === void 0) { + cloneChildren = true; + } + var elem = new Element3(); + if (this.attributes) { + elem.attributes = []; + for (var _i = 0, _a2 = this.attributes; _i < _a2.length; _i++) { + var attribute = _a2[_i]; + elem.addAttr(attribute.name, attribute.value); + } + } + if (cloneChildren && this.children) { + elem.children = []; + for (var index = 0; index < this.children.length; index++) { + elem.addChild(this.children[index].clone()); + } + } + return elem; + }; + Element3.prototype.cloneWithParent = function() { + var clone = this.clone(false); + if (this.parent && !(this.parent instanceof RootElement)) { + var parentClone = this.parent.cloneWithParent(); + parentClone.addChild(clone); + } + return clone; + }; + return Element3; +}(); +var RootElement = function(_super) { + __extends3(RootElement2, _super); + function RootElement2() { + return _super !== null && _super.apply(this, arguments) || this; + } + return RootElement2; +}(Element); +var LabelElement = function(_super) { + __extends3(LabelElement2, _super); + function LabelElement2(label) { + var _this = _super.call(this) || this; + _this.addAttr("name", label); + return _this; + } + return LabelElement2; +}(Element); +var MarkedStringPrinter = function() { + function MarkedStringPrinter2(quote) { + this.quote = quote; + this.result = []; + } + MarkedStringPrinter2.prototype.print = function(element) { + this.result = []; + if (element instanceof RootElement) { + if (element.children) { + this.doPrint(element.children, 0); + } + } else { + this.doPrint([element], 0); + } + var value = this.result.join("\n"); + return [{ language: "html", value }]; + }; + MarkedStringPrinter2.prototype.doPrint = function(elements, indent) { + for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) { + var element = elements_1[_i]; + this.doPrintElement(element, indent); + if (element.children) { + this.doPrint(element.children, indent + 1); + } + } + }; + MarkedStringPrinter2.prototype.writeLine = function(level, content) { + var indent = new Array(level + 1).join(" "); + this.result.push(indent + content); + }; + MarkedStringPrinter2.prototype.doPrintElement = function(element, indent) { + var name = element.findAttribute("name"); + if (element instanceof LabelElement || name === "\u2026") { + this.writeLine(indent, name); + return; + } + var content = ["<"]; + if (name) { + content.push(name); + } else { + content.push("element"); + } + if (element.attributes) { + for (var _i = 0, _a2 = element.attributes; _i < _a2.length; _i++) { + var attr = _a2[_i]; + if (attr.name !== "name") { + content.push(" "); + content.push(attr.name); + var value = attr.value; + if (value) { + content.push("="); + content.push(quotes.ensure(value, this.quote)); + } + } + } + } + content.push(">"); + this.writeLine(indent, content.join("")); + }; + return MarkedStringPrinter2; +}(); +var quotes; +(function(quotes2) { + function ensure(value, which) { + return which + remove(value) + which; + } + quotes2.ensure = ensure; + function remove(value) { + var match = value.match(/^['"](.*)["']$/); + if (match) { + return match[1]; + } + return value; + } + quotes2.remove = remove; +})(quotes || (quotes = {})); +var Specificity = function() { + function Specificity2() { + this.id = 0; + this.attr = 0; + this.tag = 0; + } + return Specificity2; +}(); +function toElement(node, parentElement) { + var result = new Element(); + for (var _i = 0, _a2 = node.getChildren(); _i < _a2.length; _i++) { + var child = _a2[_i]; + switch (child.type) { + case NodeType.SelectorCombinator: + if (parentElement) { + var segments = child.getText().split("&"); + if (segments.length === 1) { + result.addAttr("name", segments[0]); + break; + } + result = parentElement.cloneWithParent(); + if (segments[0]) { + var root = result.findRoot(); + root.prepend(segments[0]); + } + for (var i = 1; i < segments.length; i++) { + if (i > 1) { + var clone = parentElement.cloneWithParent(); + result.addChild(clone.findRoot()); + result = clone; + } + result.append(segments[i]); + } + } + break; + case NodeType.SelectorPlaceholder: + if (child.matches("@at-root")) { + return result; + } + case NodeType.ElementNameSelector: + var text = child.getText(); + result.addAttr("name", text === "*" ? "element" : css_worker_unescape(text)); + break; + case NodeType.ClassSelector: + result.addAttr("class", css_worker_unescape(child.getText().substring(1))); + break; + case NodeType.IdentifierSelector: + result.addAttr("id", css_worker_unescape(child.getText().substring(1))); + break; + case NodeType.MixinDeclaration: + result.addAttr("class", child.getName()); + break; + case NodeType.PseudoSelector: + result.addAttr(css_worker_unescape(child.getText()), ""); + break; + case NodeType.AttributeSelector: + var selector = child; + var identifier = selector.getIdentifier(); + if (identifier) { + var expression = selector.getValue(); + var operator = selector.getOperator(); + var value = void 0; + if (expression && operator) { + switch (css_worker_unescape(operator.getText())) { + case "|=": + value = "".concat(quotes.remove(css_worker_unescape(expression.getText())), "-\u2026"); + break; + case "^=": + value = "".concat(quotes.remove(css_worker_unescape(expression.getText())), "\u2026"); + break; + case "$=": + value = "\u2026".concat(quotes.remove(css_worker_unescape(expression.getText()))); + break; + case "~=": + value = " \u2026 ".concat(quotes.remove(css_worker_unescape(expression.getText())), " \u2026 "); + break; + case "*=": + value = "\u2026".concat(quotes.remove(css_worker_unescape(expression.getText())), "\u2026"); + break; + default: + value = quotes.remove(css_worker_unescape(expression.getText())); + break; + } + } + result.addAttr(css_worker_unescape(identifier.getText()), value); + } + break; + } + } + return result; +} +function css_worker_unescape(content) { + var scanner = new Scanner(); + scanner.setSource(content); + var token = scanner.scanUnquotedString(); + if (token) { + return token.text; + } + return content; +} +var SelectorPrinting = function() { + function SelectorPrinting2(cssDataManager) { + this.cssDataManager = cssDataManager; + } + SelectorPrinting2.prototype.selectorToMarkedString = function(node) { + var root = selectorToElement(node); + if (root) { + var markedStrings = new MarkedStringPrinter('"').print(root); + markedStrings.push(this.selectorToSpecificityMarkedString(node)); + return markedStrings; + } else { + return []; + } + }; + SelectorPrinting2.prototype.simpleSelectorToMarkedString = function(node) { + var element = toElement(node); + var markedStrings = new MarkedStringPrinter('"').print(element); + markedStrings.push(this.selectorToSpecificityMarkedString(node)); + return markedStrings; + }; + SelectorPrinting2.prototype.isPseudoElementIdentifier = function(text) { + var match = text.match(/^::?([\w-]+)/); + if (!match) { + return false; + } + return !!this.cssDataManager.getPseudoElement("::" + match[1]); + }; + SelectorPrinting2.prototype.selectorToSpecificityMarkedString = function(node) { + var _this = this; + var calculateScore = function(node2) { + var specificity2 = new Specificity(); + elementLoop: + for (var _i = 0, _a2 = node2.getChildren(); _i < _a2.length; _i++) { + var element = _a2[_i]; + switch (element.type) { + case NodeType.IdentifierSelector: + specificity2.id++; + break; + case NodeType.ClassSelector: + case NodeType.AttributeSelector: + specificity2.attr++; + break; + case NodeType.ElementNameSelector: + if (element.matches("*")) { + break; + } + specificity2.tag++; + break; + case NodeType.PseudoSelector: + var text = element.getText(); + if (_this.isPseudoElementIdentifier(text)) { + specificity2.tag++; + break; + } + if (text.match(/^:where/i)) { + continue elementLoop; + } + if (text.match(/^:(not|has|is)/i) && element.getChildren().length > 0) { + var mostSpecificListItem = new Specificity(); + for (var _b = 0, _c = element.getChildren(); _b < _c.length; _b++) { + var containerElement = _c[_b]; + var list = void 0; + if (containerElement.type === NodeType.Undefined) { + list = containerElement.getChildren(); + } else { + list = [containerElement]; + } + for (var _d = 0, _e = containerElement.getChildren(); _d < _e.length; _d++) { + var childElement = _e[_d]; + var itemSpecificity = calculateScore(childElement); + if (itemSpecificity.id > mostSpecificListItem.id) { + mostSpecificListItem = itemSpecificity; + continue; + } else if (itemSpecificity.id < mostSpecificListItem.id) { + continue; + } + if (itemSpecificity.attr > mostSpecificListItem.attr) { + mostSpecificListItem = itemSpecificity; + continue; + } else if (itemSpecificity.attr < mostSpecificListItem.attr) { + continue; + } + if (itemSpecificity.tag > mostSpecificListItem.tag) { + mostSpecificListItem = itemSpecificity; + continue; + } + } + } + specificity2.id += mostSpecificListItem.id; + specificity2.attr += mostSpecificListItem.attr; + specificity2.tag += mostSpecificListItem.tag; + continue elementLoop; + } + specificity2.attr++; + break; + } + if (element.getChildren().length > 0) { + var itemSpecificity = calculateScore(element); + specificity2.id += itemSpecificity.id; + specificity2.attr += itemSpecificity.attr; + specificity2.tag += itemSpecificity.tag; + } + } + return specificity2; + }; + var specificity = calculateScore(node); + ; + return localize5("specificity", "[Selector Specificity](https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity): ({0}, {1}, {2})", specificity.id, specificity.attr, specificity.tag); + }; + return SelectorPrinting2; +}(); +var SelectorElementBuilder = function() { + function SelectorElementBuilder2(element) { + this.prev = null; + this.element = element; + } + SelectorElementBuilder2.prototype.processSelector = function(selector) { + var parentElement = null; + if (!(this.element instanceof RootElement)) { + if (selector.getChildren().some(function(c) { + return c.hasChildren() && c.getChild(0).type === NodeType.SelectorCombinator; + })) { + var curr = this.element.findRoot(); + if (curr.parent instanceof RootElement) { + parentElement = this.element; + this.element = curr.parent; + this.element.removeChild(curr); + this.prev = null; + } + } + } + for (var _i = 0, _a2 = selector.getChildren(); _i < _a2.length; _i++) { + var selectorChild = _a2[_i]; + if (selectorChild instanceof SimpleSelector) { + if (this.prev instanceof SimpleSelector) { + var labelElement = new LabelElement("\u2026"); + this.element.addChild(labelElement); + this.element = labelElement; + } else if (this.prev && (this.prev.matches("+") || this.prev.matches("~")) && this.element.parent) { + this.element = this.element.parent; + } + if (this.prev && this.prev.matches("~")) { + this.element.addChild(new LabelElement("\u22EE")); + } + var thisElement = toElement(selectorChild, parentElement); + var root = thisElement.findRoot(); + this.element.addChild(root); + this.element = thisElement; + } + if (selectorChild instanceof SimpleSelector || selectorChild.type === NodeType.SelectorCombinatorParent || selectorChild.type === NodeType.SelectorCombinatorShadowPiercingDescendant || selectorChild.type === NodeType.SelectorCombinatorSibling || selectorChild.type === NodeType.SelectorCombinatorAllSiblings) { + this.prev = selectorChild; + } + } + }; + return SelectorElementBuilder2; +}(); +function isNewSelectorContext(node) { + switch (node.type) { + case NodeType.MixinDeclaration: + case NodeType.Stylesheet: + return true; + } + return false; +} +function selectorToElement(node) { + if (node.matches("@at-root")) { + return null; + } + var root = new RootElement(); + var parentRuleSets = []; + var ruleSet = node.getParent(); + if (ruleSet instanceof RuleSet) { + var parent = ruleSet.getParent(); + while (parent && !isNewSelectorContext(parent)) { + if (parent instanceof RuleSet) { + if (parent.getSelectors().matches("@at-root")) { + break; + } + parentRuleSets.push(parent); + } + parent = parent.getParent(); + } + } + var builder = new SelectorElementBuilder(root); + for (var i = parentRuleSets.length - 1; i >= 0; i--) { + var selector = parentRuleSets[i].getSelectors().getChild(0); + if (selector) { + builder.processSelector(selector); + } + } + builder.processSelector(node); + return root; +} + +// node_modules/vscode-css-languageservice/lib/esm/services/cssHover.js +var CSSHover = function() { + function CSSHover2(clientCapabilities, cssDataManager) { + this.clientCapabilities = clientCapabilities; + this.cssDataManager = cssDataManager; + this.selectorPrinting = new SelectorPrinting(cssDataManager); + } + CSSHover2.prototype.configure = function(settings) { + this.defaultSettings = settings; + }; + CSSHover2.prototype.doHover = function(document, position, stylesheet, settings) { + if (settings === void 0) { + settings = this.defaultSettings; + } + function getRange2(node2) { + return css_worker_Range.create(document.positionAt(node2.offset), document.positionAt(node2.end)); + } + var offset = document.offsetAt(position); + var nodepath = getNodePath(stylesheet, offset); + var hover = null; + for (var i = 0; i < nodepath.length; i++) { + var node = nodepath[i]; + if (node instanceof Selector) { + hover = { + contents: this.selectorPrinting.selectorToMarkedString(node), + range: getRange2(node) + }; + break; + } + if (node instanceof SimpleSelector) { + if (!startsWith(node.getText(), "@")) { + hover = { + contents: this.selectorPrinting.simpleSelectorToMarkedString(node), + range: getRange2(node) + }; + } + break; + } + if (node instanceof Declaration) { + var propertyName = node.getFullPropertyName(); + var entry = this.cssDataManager.getProperty(propertyName); + if (entry) { + var contents = getEntryDescription(entry, this.doesSupportMarkdown(), settings); + if (contents) { + hover = { + contents, + range: getRange2(node) + }; + } else { + hover = null; + } + } + continue; + } + if (node instanceof UnknownAtRule) { + var atRuleName = node.getText(); + var entry = this.cssDataManager.getAtDirective(atRuleName); + if (entry) { + var contents = getEntryDescription(entry, this.doesSupportMarkdown(), settings); + if (contents) { + hover = { + contents, + range: getRange2(node) + }; + } else { + hover = null; + } + } + continue; + } + if (node instanceof css_worker_Node && node.type === NodeType.PseudoSelector) { + var selectorName = node.getText(); + var entry = selectorName.slice(0, 2) === "::" ? this.cssDataManager.getPseudoElement(selectorName) : this.cssDataManager.getPseudoClass(selectorName); + if (entry) { + var contents = getEntryDescription(entry, this.doesSupportMarkdown(), settings); + if (contents) { + hover = { + contents, + range: getRange2(node) + }; + } else { + hover = null; + } + } + continue; + } + } + if (hover) { + hover.contents = this.convertContents(hover.contents); + } + return hover; + }; + CSSHover2.prototype.convertContents = function(contents) { + if (!this.doesSupportMarkdown()) { + if (typeof contents === "string") { + return contents; + } else if ("kind" in contents) { + return { + kind: "plaintext", + value: contents.value + }; + } else if (Array.isArray(contents)) { + return contents.map(function(c) { + return typeof c === "string" ? c : c.value; + }); + } else { + return contents.value; + } + } + return contents; + }; + CSSHover2.prototype.doesSupportMarkdown = function() { + if (!css_worker_isDefined(this.supportsMarkdown)) { + if (!css_worker_isDefined(this.clientCapabilities)) { + this.supportsMarkdown = true; + return this.supportsMarkdown; + } + var hover = this.clientCapabilities.textDocument && this.clientCapabilities.textDocument.hover; + this.supportsMarkdown = hover && hover.contentFormat && Array.isArray(hover.contentFormat) && hover.contentFormat.indexOf(MarkupKind.Markdown) !== -1; + } + return this.supportsMarkdown; + }; + return CSSHover2; +}(); + +// node_modules/vscode-css-languageservice/lib/esm/services/cssNavigation.js +var __awaiter3 = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator3 = function(thisArg, body) { + var _ = { label: 0, sent: function() { + if (t[0] & 1) + throw t[1]; + return t[1]; + }, trys: [], ops: [] }, f2, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { + return this; + }), g; + function verb(n) { + return function(v) { + return step([n, v]); + }; + } + function step(op) { + if (f2) + throw new TypeError("Generator is already executing."); + while (_) + try { + if (f2 = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) + return t; + if (y = 0, t) + op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) + _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f2 = t = 0; + } + if (op[0] & 5) + throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +var localize6 = loadMessageBundle(); +var startsWithSchemeRegex = /^\w+:\/\//; +var startsWithData = /^data:/; +var CSSNavigation = function() { + function CSSNavigation2(fileSystemProvider, resolveModuleReferences) { + this.fileSystemProvider = fileSystemProvider; + this.resolveModuleReferences = resolveModuleReferences; + } + CSSNavigation2.prototype.findDefinition = function(document, position, stylesheet) { + var symbols = new Symbols(stylesheet); + var offset = document.offsetAt(position); + var node = getNodeAtOffset(stylesheet, offset); + if (!node) { + return null; + } + var symbol = symbols.findSymbolFromNode(node); + if (!symbol) { + return null; + } + return { + uri: document.uri, + range: getRange(symbol.node, document) + }; + }; + CSSNavigation2.prototype.findReferences = function(document, position, stylesheet) { + var highlights = this.findDocumentHighlights(document, position, stylesheet); + return highlights.map(function(h) { + return { + uri: document.uri, + range: h.range + }; + }); + }; + CSSNavigation2.prototype.findDocumentHighlights = function(document, position, stylesheet) { + var result = []; + var offset = document.offsetAt(position); + var node = getNodeAtOffset(stylesheet, offset); + if (!node || node.type === NodeType.Stylesheet || node.type === NodeType.Declarations) { + return result; + } + if (node.type === NodeType.Identifier && node.parent && node.parent.type === NodeType.ClassSelector) { + node = node.parent; + } + var symbols = new Symbols(stylesheet); + var symbol = symbols.findSymbolFromNode(node); + var name = node.getText(); + stylesheet.accept(function(candidate) { + if (symbol) { + if (symbols.matchesSymbol(candidate, symbol)) { + result.push({ + kind: getHighlightKind(candidate), + range: getRange(candidate, document) + }); + return false; + } + } else if (node && node.type === candidate.type && candidate.matches(name)) { + result.push({ + kind: getHighlightKind(candidate), + range: getRange(candidate, document) + }); + } + return true; + }); + return result; + }; + CSSNavigation2.prototype.isRawStringDocumentLinkNode = function(node) { + return node.type === NodeType.Import; + }; + CSSNavigation2.prototype.findDocumentLinks = function(document, stylesheet, documentContext) { + var linkData = this.findUnresolvedLinks(document, stylesheet); + var resolvedLinks = []; + for (var _i = 0, linkData_1 = linkData; _i < linkData_1.length; _i++) { + var data = linkData_1[_i]; + var link = data.link; + var target = link.target; + if (!target || startsWithData.test(target)) { + } else if (startsWithSchemeRegex.test(target)) { + resolvedLinks.push(link); + } else { + var resolved = documentContext.resolveReference(target, document.uri); + if (resolved) { + link.target = resolved; + } + resolvedLinks.push(link); + } + } + return resolvedLinks; + }; + CSSNavigation2.prototype.findDocumentLinks2 = function(document, stylesheet, documentContext) { + return __awaiter3(this, void 0, void 0, function() { + var linkData, resolvedLinks, _i, linkData_2, data, link, target, resolvedTarget; + return __generator3(this, function(_a2) { + switch (_a2.label) { + case 0: + linkData = this.findUnresolvedLinks(document, stylesheet); + resolvedLinks = []; + _i = 0, linkData_2 = linkData; + _a2.label = 1; + case 1: + if (!(_i < linkData_2.length)) + return [3, 6]; + data = linkData_2[_i]; + link = data.link; + target = link.target; + if (!(!target || startsWithData.test(target))) + return [3, 2]; + return [3, 5]; + case 2: + if (!startsWithSchemeRegex.test(target)) + return [3, 3]; + resolvedLinks.push(link); + return [3, 5]; + case 3: + return [4, this.resolveRelativeReference(target, document.uri, documentContext, data.isRawLink)]; + case 4: + resolvedTarget = _a2.sent(); + if (resolvedTarget !== void 0) { + link.target = resolvedTarget; + resolvedLinks.push(link); + } + _a2.label = 5; + case 5: + _i++; + return [3, 1]; + case 6: + return [2, resolvedLinks]; + } + }); + }); + }; + CSSNavigation2.prototype.findUnresolvedLinks = function(document, stylesheet) { + var _this = this; + var result = []; + var collect = function(uriStringNode) { + var rawUri = uriStringNode.getText(); + var range = getRange(uriStringNode, document); + if (range.start.line === range.end.line && range.start.character === range.end.character) { + return; + } + if (startsWith(rawUri, "'") || startsWith(rawUri, '"')) { + rawUri = rawUri.slice(1, -1); + } + var isRawLink = uriStringNode.parent ? _this.isRawStringDocumentLinkNode(uriStringNode.parent) : false; + result.push({ link: { target: rawUri, range }, isRawLink }); + }; + stylesheet.accept(function(candidate) { + if (candidate.type === NodeType.URILiteral) { + var first = candidate.getChild(0); + if (first) { + collect(first); + } + return false; + } + if (candidate.parent && _this.isRawStringDocumentLinkNode(candidate.parent)) { + var rawText = candidate.getText(); + if (startsWith(rawText, "'") || startsWith(rawText, '"')) { + collect(candidate); + } + return false; + } + return true; + }); + return result; + }; + CSSNavigation2.prototype.findDocumentSymbols = function(document, stylesheet) { + var result = []; + stylesheet.accept(function(node) { + var entry = { + name: null, + kind: css_worker_SymbolKind.Class, + location: null + }; + var locationNode = node; + if (node instanceof Selector) { + entry.name = node.getText(); + locationNode = node.findAParent(NodeType.Ruleset, NodeType.ExtendsReference); + if (locationNode) { + entry.location = Location.create(document.uri, getRange(locationNode, document)); + result.push(entry); + } + return false; + } else if (node instanceof VariableDeclaration) { + entry.name = node.getName(); + entry.kind = css_worker_SymbolKind.Variable; + } else if (node instanceof MixinDeclaration) { + entry.name = node.getName(); + entry.kind = css_worker_SymbolKind.Method; + } else if (node instanceof FunctionDeclaration) { + entry.name = node.getName(); + entry.kind = css_worker_SymbolKind.Function; + } else if (node instanceof Keyframe) { + entry.name = localize6("literal.keyframes", "@keyframes {0}", node.getName()); + } else if (node instanceof FontFace) { + entry.name = localize6("literal.fontface", "@font-face"); + } else if (node instanceof Media) { + var mediaList = node.getChild(0); + if (mediaList instanceof Medialist) { + entry.name = "@media " + mediaList.getText(); + entry.kind = css_worker_SymbolKind.Module; + } + } + if (entry.name) { + entry.location = Location.create(document.uri, getRange(locationNode, document)); + result.push(entry); + } + return true; + }); + return result; + }; + CSSNavigation2.prototype.findDocumentColors = function(document, stylesheet) { + var result = []; + stylesheet.accept(function(node) { + var colorInfo = getColorInformation(node, document); + if (colorInfo) { + result.push(colorInfo); + } + return true; + }); + return result; + }; + CSSNavigation2.prototype.getColorPresentations = function(document, stylesheet, color, range) { + var result = []; + var red256 = Math.round(color.red * 255), green256 = Math.round(color.green * 255), blue256 = Math.round(color.blue * 255); + var label; + if (color.alpha === 1) { + label = "rgb(".concat(red256, ", ").concat(green256, ", ").concat(blue256, ")"); + } else { + label = "rgba(".concat(red256, ", ").concat(green256, ", ").concat(blue256, ", ").concat(color.alpha, ")"); + } + result.push({ label, textEdit: TextEdit.replace(range, label) }); + if (color.alpha === 1) { + label = "#".concat(toTwoDigitHex(red256)).concat(toTwoDigitHex(green256)).concat(toTwoDigitHex(blue256)); + } else { + label = "#".concat(toTwoDigitHex(red256)).concat(toTwoDigitHex(green256)).concat(toTwoDigitHex(blue256)).concat(toTwoDigitHex(Math.round(color.alpha * 255))); + } + result.push({ label, textEdit: TextEdit.replace(range, label) }); + var hsl = hslFromColor(color); + if (hsl.a === 1) { + label = "hsl(".concat(hsl.h, ", ").concat(Math.round(hsl.s * 100), "%, ").concat(Math.round(hsl.l * 100), "%)"); + } else { + label = "hsla(".concat(hsl.h, ", ").concat(Math.round(hsl.s * 100), "%, ").concat(Math.round(hsl.l * 100), "%, ").concat(hsl.a, ")"); + } + result.push({ label, textEdit: TextEdit.replace(range, label) }); + var hwb = hwbFromColor(color); + if (hwb.a === 1) { + label = "hwb(".concat(hwb.h, " ").concat(Math.round(hwb.w * 100), "% ").concat(Math.round(hwb.b * 100), "%)"); + } else { + label = "hwb(".concat(hwb.h, " ").concat(Math.round(hwb.w * 100), "% ").concat(Math.round(hwb.b * 100), "% / ").concat(hwb.a, ")"); + } + result.push({ label, textEdit: TextEdit.replace(range, label) }); + return result; + }; + CSSNavigation2.prototype.doRename = function(document, position, newName, stylesheet) { + var _a2; + var highlights = this.findDocumentHighlights(document, position, stylesheet); + var edits = highlights.map(function(h) { + return TextEdit.replace(h.range, newName); + }); + return { + changes: (_a2 = {}, _a2[document.uri] = edits, _a2) + }; + }; + CSSNavigation2.prototype.resolveModuleReference = function(ref, documentUri, documentContext) { + return __awaiter3(this, void 0, void 0, function() { + var moduleName, rootFolderUri, documentFolderUri, modulePath, pathWithinModule; + return __generator3(this, function(_a2) { + switch (_a2.label) { + case 0: + if (!startsWith(documentUri, "file://")) + return [3, 2]; + moduleName = getModuleNameFromPath(ref); + rootFolderUri = documentContext.resolveReference("/", documentUri); + documentFolderUri = css_worker_dirname(documentUri); + return [4, this.resolvePathToModule(moduleName, documentFolderUri, rootFolderUri)]; + case 1: + modulePath = _a2.sent(); + if (modulePath) { + pathWithinModule = ref.substring(moduleName.length + 1); + return [2, joinPath(modulePath, pathWithinModule)]; + } + _a2.label = 2; + case 2: + return [2, void 0]; + } + }); + }); + }; + CSSNavigation2.prototype.resolveRelativeReference = function(ref, documentUri, documentContext, isRawLink) { + return __awaiter3(this, void 0, void 0, function() { + var relativeReference, _a2; + return __generator3(this, function(_b) { + switch (_b.label) { + case 0: + relativeReference = documentContext.resolveReference(ref, documentUri); + if (!(ref[0] === "~" && ref[1] !== "/" && this.fileSystemProvider)) + return [3, 2]; + ref = ref.substring(1); + return [4, this.resolveModuleReference(ref, documentUri, documentContext)]; + case 1: + return [2, _b.sent() || relativeReference]; + case 2: + if (!this.resolveModuleReferences) + return [3, 7]; + _a2 = relativeReference; + if (!_a2) + return [3, 4]; + return [4, this.fileExists(relativeReference)]; + case 3: + _a2 = _b.sent(); + _b.label = 4; + case 4: + if (!_a2) + return [3, 5]; + return [2, relativeReference]; + case 5: + return [4, this.resolveModuleReference(ref, documentUri, documentContext)]; + case 6: + return [2, _b.sent() || relativeReference]; + case 7: + return [2, relativeReference]; + } + }); + }); + }; + CSSNavigation2.prototype.resolvePathToModule = function(_moduleName, documentFolderUri, rootFolderUri) { + return __awaiter3(this, void 0, void 0, function() { + var packPath; + return __generator3(this, function(_a2) { + switch (_a2.label) { + case 0: + packPath = joinPath(documentFolderUri, "node_modules", _moduleName, "package.json"); + return [4, this.fileExists(packPath)]; + case 1: + if (_a2.sent()) { + return [2, css_worker_dirname(packPath)]; + } else if (rootFolderUri && documentFolderUri.startsWith(rootFolderUri) && documentFolderUri.length !== rootFolderUri.length) { + return [2, this.resolvePathToModule(_moduleName, css_worker_dirname(documentFolderUri), rootFolderUri)]; + } + return [2, void 0]; + } + }); + }); + }; + CSSNavigation2.prototype.fileExists = function(uri) { + return __awaiter3(this, void 0, void 0, function() { + var stat, err_1; + return __generator3(this, function(_a2) { + switch (_a2.label) { + case 0: + if (!this.fileSystemProvider) { + return [2, false]; + } + _a2.label = 1; + case 1: + _a2.trys.push([1, 3, , 4]); + return [4, this.fileSystemProvider.stat(uri)]; + case 2: + stat = _a2.sent(); + if (stat.type === FileType.Unknown && stat.size === -1) { + return [2, false]; + } + return [2, true]; + case 3: + err_1 = _a2.sent(); + return [2, false]; + case 4: + return [2]; + } + }); + }); + }; + return CSSNavigation2; +}(); +function getColorInformation(node, document) { + var color = getColorValue(node); + if (color) { + var range = getRange(node, document); + return { color, range }; + } + return null; +} +function getRange(node, document) { + return css_worker_Range.create(document.positionAt(node.offset), document.positionAt(node.end)); +} +function getHighlightKind(node) { + if (node.type === NodeType.Selector) { + return css_worker_DocumentHighlightKind.Write; + } + if (node instanceof Identifier) { + if (node.parent && node.parent instanceof Property) { + if (node.isCustomProperty) { + return css_worker_DocumentHighlightKind.Write; + } + } + } + if (node.parent) { + switch (node.parent.type) { + case NodeType.FunctionDeclaration: + case NodeType.MixinDeclaration: + case NodeType.Keyframe: + case NodeType.VariableDeclaration: + case NodeType.FunctionParameter: + return css_worker_DocumentHighlightKind.Write; + } + } + return css_worker_DocumentHighlightKind.Read; +} +function toTwoDigitHex(n) { + var r = n.toString(16); + return r.length !== 2 ? "0" + r : r; +} +function getModuleNameFromPath(path) { + if (path[0] === "@") { + return path.substring(0, path.indexOf("/", path.indexOf("/") + 1)); + } + return path.substring(0, path.indexOf("/")); +} + +// node_modules/vscode-css-languageservice/lib/esm/services/lintRules.js +var localize7 = loadMessageBundle(); +var Warning = Level.Warning; +var Error2 = Level.Error; +var Ignore = Level.Ignore; +var Rule = function() { + function Rule2(id, message, defaultValue) { + this.id = id; + this.message = message; + this.defaultValue = defaultValue; + } + return Rule2; +}(); +var Setting = function() { + function Setting2(id, message, defaultValue) { + this.id = id; + this.message = message; + this.defaultValue = defaultValue; + } + return Setting2; +}(); +var Rules = { + AllVendorPrefixes: new Rule("compatibleVendorPrefixes", localize7("rule.vendorprefixes.all", "When using a vendor-specific prefix make sure to also include all other vendor-specific properties"), Ignore), + IncludeStandardPropertyWhenUsingVendorPrefix: new Rule("vendorPrefix", localize7("rule.standardvendorprefix.all", "When using a vendor-specific prefix also include the standard property"), Warning), + DuplicateDeclarations: new Rule("duplicateProperties", localize7("rule.duplicateDeclarations", "Do not use duplicate style definitions"), Ignore), + EmptyRuleSet: new Rule("emptyRules", localize7("rule.emptyRuleSets", "Do not use empty rulesets"), Warning), + ImportStatemement: new Rule("importStatement", localize7("rule.importDirective", "Import statements do not load in parallel"), Ignore), + BewareOfBoxModelSize: new Rule("boxModel", localize7("rule.bewareOfBoxModelSize", "Do not use width or height when using padding or border"), Ignore), + UniversalSelector: new Rule("universalSelector", localize7("rule.universalSelector", "The universal selector (*) is known to be slow"), Ignore), + ZeroWithUnit: new Rule("zeroUnits", localize7("rule.zeroWidthUnit", "No unit for zero needed"), Ignore), + RequiredPropertiesForFontFace: new Rule("fontFaceProperties", localize7("rule.fontFaceProperties", "@font-face rule must define 'src' and 'font-family' properties"), Warning), + HexColorLength: new Rule("hexColorLength", localize7("rule.hexColor", "Hex colors must consist of three, four, six or eight hex numbers"), Error2), + ArgsInColorFunction: new Rule("argumentsInColorFunction", localize7("rule.colorFunction", "Invalid number of parameters"), Error2), + UnknownProperty: new Rule("unknownProperties", localize7("rule.unknownProperty", "Unknown property."), Warning), + UnknownAtRules: new Rule("unknownAtRules", localize7("rule.unknownAtRules", "Unknown at-rule."), Warning), + IEStarHack: new Rule("ieHack", localize7("rule.ieHack", "IE hacks are only necessary when supporting IE7 and older"), Ignore), + UnknownVendorSpecificProperty: new Rule("unknownVendorSpecificProperties", localize7("rule.unknownVendorSpecificProperty", "Unknown vendor specific property."), Ignore), + PropertyIgnoredDueToDisplay: new Rule("propertyIgnoredDueToDisplay", localize7("rule.propertyIgnoredDueToDisplay", "Property is ignored due to the display."), Warning), + AvoidImportant: new Rule("important", localize7("rule.avoidImportant", "Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."), Ignore), + AvoidFloat: new Rule("float", localize7("rule.avoidFloat", "Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."), Ignore), + AvoidIdSelector: new Rule("idSelector", localize7("rule.avoidIdSelector", "Selectors should not contain IDs because these rules are too tightly coupled with the HTML."), Ignore) +}; +var Settings = { + ValidProperties: new Setting("validProperties", localize7("rule.validProperties", "A list of properties that are not validated against the `unknownProperties` rule."), []) +}; +var LintConfigurationSettings = function() { + function LintConfigurationSettings2(conf) { + if (conf === void 0) { + conf = {}; + } + this.conf = conf; + } + LintConfigurationSettings2.prototype.getRule = function(rule) { + if (this.conf.hasOwnProperty(rule.id)) { + var level = toLevel(this.conf[rule.id]); + if (level) { + return level; + } + } + return rule.defaultValue; + }; + LintConfigurationSettings2.prototype.getSetting = function(setting) { + return this.conf[setting.id]; + }; + return LintConfigurationSettings2; +}(); +function toLevel(level) { + switch (level) { + case "ignore": + return Level.Ignore; + case "warning": + return Level.Warning; + case "error": + return Level.Error; + } + return null; +} + +// node_modules/vscode-css-languageservice/lib/esm/services/cssCodeActions.js +var localize8 = loadMessageBundle(); +var CSSCodeActions = function() { + function CSSCodeActions2(cssDataManager) { + this.cssDataManager = cssDataManager; + } + CSSCodeActions2.prototype.doCodeActions = function(document, range, context, stylesheet) { + return this.doCodeActions2(document, range, context, stylesheet).map(function(ca) { + var textDocumentEdit = ca.edit && ca.edit.documentChanges && ca.edit.documentChanges[0]; + return css_worker_Command.create(ca.title, "_css.applyCodeAction", document.uri, document.version, textDocumentEdit && textDocumentEdit.edits); + }); + }; + CSSCodeActions2.prototype.doCodeActions2 = function(document, range, context, stylesheet) { + var result = []; + if (context.diagnostics) { + for (var _i = 0, _a2 = context.diagnostics; _i < _a2.length; _i++) { + var diagnostic = _a2[_i]; + this.appendFixesForMarker(document, stylesheet, diagnostic, result); + } + } + return result; + }; + CSSCodeActions2.prototype.getFixesForUnknownProperty = function(document, property, marker, result) { + var propertyName = property.getName(); + var candidates = []; + this.cssDataManager.getProperties().forEach(function(p) { + var score = difference(propertyName, p.name); + if (score >= propertyName.length / 2) { + candidates.push({ property: p.name, score }); + } + }); + candidates.sort(function(a2, b) { + return b.score - a2.score || a2.property.localeCompare(b.property); + }); + var maxActions = 3; + for (var _i = 0, candidates_1 = candidates; _i < candidates_1.length; _i++) { + var candidate = candidates_1[_i]; + var propertyName_1 = candidate.property; + var title = localize8("css.codeaction.rename", "Rename to '{0}'", propertyName_1); + var edit = TextEdit.replace(marker.range, propertyName_1); + var documentIdentifier = VersionedTextDocumentIdentifier.create(document.uri, document.version); + var workspaceEdit = { documentChanges: [TextDocumentEdit.create(documentIdentifier, [edit])] }; + var codeAction = CodeAction.create(title, workspaceEdit, CodeActionKind.QuickFix); + codeAction.diagnostics = [marker]; + result.push(codeAction); + if (--maxActions <= 0) { + return; + } + } + }; + CSSCodeActions2.prototype.appendFixesForMarker = function(document, stylesheet, marker, result) { + if (marker.code !== Rules.UnknownProperty.id) { + return; + } + var offset = document.offsetAt(marker.range.start); + var end = document.offsetAt(marker.range.end); + var nodepath = getNodePath(stylesheet, offset); + for (var i = nodepath.length - 1; i >= 0; i--) { + var node = nodepath[i]; + if (node instanceof Declaration) { + var property = node.getProperty(); + if (property && property.offset === offset && property.end === end) { + this.getFixesForUnknownProperty(document, property, marker, result); + return; + } + } + } + }; + return CSSCodeActions2; +}(); + +// node_modules/vscode-css-languageservice/lib/esm/services/lintUtil.js +var Element2 = function() { + function Element3(decl) { + this.fullPropertyName = decl.getFullPropertyName().toLowerCase(); + this.node = decl; + } + return Element3; +}(); +function setSide(model, side, value, property) { + var state = model[side]; + state.value = value; + if (value) { + if (!includes(state.properties, property)) { + state.properties.push(property); + } + } +} +function setAllSides(model, value, property) { + setSide(model, "top", value, property); + setSide(model, "right", value, property); + setSide(model, "bottom", value, property); + setSide(model, "left", value, property); +} +function updateModelWithValue(model, side, value, property) { + if (side === "top" || side === "right" || side === "bottom" || side === "left") { + setSide(model, side, value, property); + } else { + setAllSides(model, value, property); + } +} +function updateModelWithList(model, values2, property) { + switch (values2.length) { + case 1: + updateModelWithValue(model, void 0, values2[0], property); + break; + case 2: + updateModelWithValue(model, "top", values2[0], property); + updateModelWithValue(model, "bottom", values2[0], property); + updateModelWithValue(model, "right", values2[1], property); + updateModelWithValue(model, "left", values2[1], property); + break; + case 3: + updateModelWithValue(model, "top", values2[0], property); + updateModelWithValue(model, "right", values2[1], property); + updateModelWithValue(model, "left", values2[1], property); + updateModelWithValue(model, "bottom", values2[2], property); + break; + case 4: + updateModelWithValue(model, "top", values2[0], property); + updateModelWithValue(model, "right", values2[1], property); + updateModelWithValue(model, "bottom", values2[2], property); + updateModelWithValue(model, "left", values2[3], property); + break; + } +} +function matches(value, candidates) { + for (var _i = 0, candidates_1 = candidates; _i < candidates_1.length; _i++) { + var candidate = candidates_1[_i]; + if (value.matches(candidate)) { + return true; + } + } + return false; +} +function checkLineWidth(value, allowsKeywords) { + if (allowsKeywords === void 0) { + allowsKeywords = true; + } + if (allowsKeywords && matches(value, ["initial", "unset"])) { + return false; + } + return parseFloat(value.getText()) !== 0; +} +function checkLineWidthList(nodes, allowsKeywords) { + if (allowsKeywords === void 0) { + allowsKeywords = true; + } + return nodes.map(function(node) { + return checkLineWidth(node, allowsKeywords); + }); +} +function checkLineStyle(valueNode, allowsKeywords) { + if (allowsKeywords === void 0) { + allowsKeywords = true; + } + if (matches(valueNode, ["none", "hidden"])) { + return false; + } + if (allowsKeywords && matches(valueNode, ["initial", "unset"])) { + return false; + } + return true; +} +function checkLineStyleList(nodes, allowsKeywords) { + if (allowsKeywords === void 0) { + allowsKeywords = true; + } + return nodes.map(function(node) { + return checkLineStyle(node, allowsKeywords); + }); +} +function checkBorderShorthand(node) { + var children = node.getChildren(); + if (children.length === 1) { + var value = children[0]; + return checkLineWidth(value) && checkLineStyle(value); + } + for (var _i = 0, children_1 = children; _i < children_1.length; _i++) { + var child = children_1[_i]; + var value = child; + if (!checkLineWidth(value, false) || !checkLineStyle(value, false)) { + return false; + } + } + return true; +} +function calculateBoxModel(propertyTable) { + var model = { + top: { value: false, properties: [] }, + right: { value: false, properties: [] }, + bottom: { value: false, properties: [] }, + left: { value: false, properties: [] } + }; + for (var _i = 0, propertyTable_1 = propertyTable; _i < propertyTable_1.length; _i++) { + var property = propertyTable_1[_i]; + var value = property.node.value; + if (typeof value === "undefined") { + continue; + } + switch (property.fullPropertyName) { + case "box-sizing": + return { + top: { value: false, properties: [] }, + right: { value: false, properties: [] }, + bottom: { value: false, properties: [] }, + left: { value: false, properties: [] } + }; + case "width": + model.width = property; + break; + case "height": + model.height = property; + break; + default: + var segments = property.fullPropertyName.split("-"); + switch (segments[0]) { + case "border": + switch (segments[1]) { + case void 0: + case "top": + case "right": + case "bottom": + case "left": + switch (segments[2]) { + case void 0: + updateModelWithValue(model, segments[1], checkBorderShorthand(value), property); + break; + case "width": + updateModelWithValue(model, segments[1], checkLineWidth(value, false), property); + break; + case "style": + updateModelWithValue(model, segments[1], checkLineStyle(value, true), property); + break; + } + break; + case "width": + updateModelWithList(model, checkLineWidthList(value.getChildren(), false), property); + break; + case "style": + updateModelWithList(model, checkLineStyleList(value.getChildren(), true), property); + break; + } + break; + case "padding": + if (segments.length === 1) { + updateModelWithList(model, checkLineWidthList(value.getChildren(), true), property); + } else { + updateModelWithValue(model, segments[1], checkLineWidth(value, true), property); + } + break; + } + break; + } + } + return model; +} + +// node_modules/vscode-css-languageservice/lib/esm/services/lint.js +var localize9 = loadMessageBundle(); +var NodesByRootMap = function() { + function NodesByRootMap2() { + this.data = {}; + } + NodesByRootMap2.prototype.add = function(root, name, node) { + var entry = this.data[root]; + if (!entry) { + entry = { nodes: [], names: [] }; + this.data[root] = entry; + } + entry.names.push(name); + if (node) { + entry.nodes.push(node); + } + }; + return NodesByRootMap2; +}(); +var LintVisitor = function() { + function LintVisitor2(document, settings, cssDataManager) { + var _this = this; + this.cssDataManager = cssDataManager; + this.warnings = []; + this.settings = settings; + this.documentText = document.getText(); + this.keyframes = new NodesByRootMap(); + this.validProperties = {}; + var properties = settings.getSetting(Settings.ValidProperties); + if (Array.isArray(properties)) { + properties.forEach(function(p) { + if (typeof p === "string") { + var name = p.trim().toLowerCase(); + if (name.length) { + _this.validProperties[name] = true; + } + } + }); + } + } + LintVisitor2.entries = function(node, document, settings, cssDataManager, entryFilter) { + var visitor = new LintVisitor2(document, settings, cssDataManager); + node.acceptVisitor(visitor); + visitor.completeValidations(); + return visitor.getEntries(entryFilter); + }; + LintVisitor2.prototype.isValidPropertyDeclaration = function(element) { + var propertyName = element.fullPropertyName; + return this.validProperties[propertyName]; + }; + LintVisitor2.prototype.fetch = function(input, s) { + var elements = []; + for (var _i = 0, input_1 = input; _i < input_1.length; _i++) { + var curr = input_1[_i]; + if (curr.fullPropertyName === s) { + elements.push(curr); + } + } + return elements; + }; + LintVisitor2.prototype.fetchWithValue = function(input, s, v) { + var elements = []; + for (var _i = 0, input_2 = input; _i < input_2.length; _i++) { + var inputElement = input_2[_i]; + if (inputElement.fullPropertyName === s) { + var expression = inputElement.node.getValue(); + if (expression && this.findValueInExpression(expression, v)) { + elements.push(inputElement); + } + } + } + return elements; + }; + LintVisitor2.prototype.findValueInExpression = function(expression, v) { + var found = false; + expression.accept(function(node) { + if (node.type === NodeType.Identifier && node.matches(v)) { + found = true; + } + return !found; + }); + return found; + }; + LintVisitor2.prototype.getEntries = function(filter) { + if (filter === void 0) { + filter = Level.Warning | Level.Error; + } + return this.warnings.filter(function(entry) { + return (entry.getLevel() & filter) !== 0; + }); + }; + LintVisitor2.prototype.addEntry = function(node, rule, details) { + var entry = new Marker(node, rule, this.settings.getRule(rule), details); + this.warnings.push(entry); + }; + LintVisitor2.prototype.getMissingNames = function(expected, actual) { + var expectedClone = expected.slice(0); + for (var i = 0; i < actual.length; i++) { + var k = expectedClone.indexOf(actual[i]); + if (k !== -1) { + expectedClone[k] = null; + } + } + var result = null; + for (var i = 0; i < expectedClone.length; i++) { + var curr = expectedClone[i]; + if (curr) { + if (result === null) { + result = localize9("namelist.single", "'{0}'", curr); + } else { + result = localize9("namelist.concatenated", "{0}, '{1}'", result, curr); + } + } + } + return result; + }; + LintVisitor2.prototype.visitNode = function(node) { + switch (node.type) { + case NodeType.UnknownAtRule: + return this.visitUnknownAtRule(node); + case NodeType.Keyframe: + return this.visitKeyframe(node); + case NodeType.FontFace: + return this.visitFontFace(node); + case NodeType.Ruleset: + return this.visitRuleSet(node); + case NodeType.SimpleSelector: + return this.visitSimpleSelector(node); + case NodeType.Function: + return this.visitFunction(node); + case NodeType.NumericValue: + return this.visitNumericValue(node); + case NodeType.Import: + return this.visitImport(node); + case NodeType.HexColorValue: + return this.visitHexColorValue(node); + case NodeType.Prio: + return this.visitPrio(node); + case NodeType.IdentifierSelector: + return this.visitIdentifierSelector(node); + } + return true; + }; + LintVisitor2.prototype.completeValidations = function() { + this.validateKeyframes(); + }; + LintVisitor2.prototype.visitUnknownAtRule = function(node) { + var atRuleName = node.getChild(0); + if (!atRuleName) { + return false; + } + var atDirective = this.cssDataManager.getAtDirective(atRuleName.getText()); + if (atDirective) { + return false; + } + this.addEntry(atRuleName, Rules.UnknownAtRules, "Unknown at rule ".concat(atRuleName.getText())); + return true; + }; + LintVisitor2.prototype.visitKeyframe = function(node) { + var keyword = node.getKeyword(); + if (!keyword) { + return false; + } + var text = keyword.getText(); + this.keyframes.add(node.getName(), text, text !== "@keyframes" ? keyword : null); + return true; + }; + LintVisitor2.prototype.validateKeyframes = function() { + var expected = ["@-webkit-keyframes", "@-moz-keyframes", "@-o-keyframes"]; + for (var name in this.keyframes.data) { + var actual = this.keyframes.data[name].names; + var needsStandard = actual.indexOf("@keyframes") === -1; + if (!needsStandard && actual.length === 1) { + continue; + } + var missingVendorSpecific = this.getMissingNames(expected, actual); + if (missingVendorSpecific || needsStandard) { + for (var _i = 0, _a2 = this.keyframes.data[name].nodes; _i < _a2.length; _i++) { + var node = _a2[_i]; + if (needsStandard) { + var message = localize9("keyframes.standardrule.missing", "Always define standard rule '@keyframes' when defining keyframes."); + this.addEntry(node, Rules.IncludeStandardPropertyWhenUsingVendorPrefix, message); + } + if (missingVendorSpecific) { + var message = localize9("keyframes.vendorspecific.missing", "Always include all vendor specific rules: Missing: {0}", missingVendorSpecific); + this.addEntry(node, Rules.AllVendorPrefixes, message); + } + } + } + } + return true; + }; + LintVisitor2.prototype.visitSimpleSelector = function(node) { + var firstChar = this.documentText.charAt(node.offset); + if (node.length === 1 && firstChar === "*") { + this.addEntry(node, Rules.UniversalSelector); + } + return true; + }; + LintVisitor2.prototype.visitIdentifierSelector = function(node) { + this.addEntry(node, Rules.AvoidIdSelector); + return true; + }; + LintVisitor2.prototype.visitImport = function(node) { + this.addEntry(node, Rules.ImportStatemement); + return true; + }; + LintVisitor2.prototype.visitRuleSet = function(node) { + var declarations = node.getDeclarations(); + if (!declarations) { + return false; + } + if (!declarations.hasChildren()) { + this.addEntry(node.getSelectors(), Rules.EmptyRuleSet); + } + var propertyTable = []; + for (var _i = 0, _a2 = declarations.getChildren(); _i < _a2.length; _i++) { + var element = _a2[_i]; + if (element instanceof Declaration) { + propertyTable.push(new Element2(element)); + } + } + var boxModel = calculateBoxModel(propertyTable); + if (boxModel.width) { + var properties = []; + if (boxModel.right.value) { + properties = union(properties, boxModel.right.properties); + } + if (boxModel.left.value) { + properties = union(properties, boxModel.left.properties); + } + if (properties.length !== 0) { + for (var _b = 0, properties_1 = properties; _b < properties_1.length; _b++) { + var item = properties_1[_b]; + this.addEntry(item.node, Rules.BewareOfBoxModelSize); + } + this.addEntry(boxModel.width.node, Rules.BewareOfBoxModelSize); + } + } + if (boxModel.height) { + var properties = []; + if (boxModel.top.value) { + properties = union(properties, boxModel.top.properties); + } + if (boxModel.bottom.value) { + properties = union(properties, boxModel.bottom.properties); + } + if (properties.length !== 0) { + for (var _c = 0, properties_2 = properties; _c < properties_2.length; _c++) { + var item = properties_2[_c]; + this.addEntry(item.node, Rules.BewareOfBoxModelSize); + } + this.addEntry(boxModel.height.node, Rules.BewareOfBoxModelSize); + } + } + var displayElems = this.fetchWithValue(propertyTable, "display", "inline-block"); + if (displayElems.length > 0) { + var elem = this.fetch(propertyTable, "float"); + for (var index = 0; index < elem.length; index++) { + var node_1 = elem[index].node; + var value = node_1.getValue(); + if (value && !value.matches("none")) { + this.addEntry(node_1, Rules.PropertyIgnoredDueToDisplay, localize9("rule.propertyIgnoredDueToDisplayInlineBlock", "inline-block is ignored due to the float. If 'float' has a value other than 'none', the box is floated and 'display' is treated as 'block'")); + } + } + } + displayElems = this.fetchWithValue(propertyTable, "display", "block"); + if (displayElems.length > 0) { + var elem = this.fetch(propertyTable, "vertical-align"); + for (var index = 0; index < elem.length; index++) { + this.addEntry(elem[index].node, Rules.PropertyIgnoredDueToDisplay, localize9("rule.propertyIgnoredDueToDisplayBlock", "Property is ignored due to the display. With 'display: block', vertical-align should not be used.")); + } + } + var elements = this.fetch(propertyTable, "float"); + for (var index = 0; index < elements.length; index++) { + var element = elements[index]; + if (!this.isValidPropertyDeclaration(element)) { + this.addEntry(element.node, Rules.AvoidFloat); + } + } + for (var i = 0; i < propertyTable.length; i++) { + var element = propertyTable[i]; + if (element.fullPropertyName !== "background" && !this.validProperties[element.fullPropertyName]) { + var value = element.node.getValue(); + if (value && this.documentText.charAt(value.offset) !== "-") { + var elements_1 = this.fetch(propertyTable, element.fullPropertyName); + if (elements_1.length > 1) { + for (var k = 0; k < elements_1.length; k++) { + var value_1 = elements_1[k].node.getValue(); + if (value_1 && this.documentText.charAt(value_1.offset) !== "-" && elements_1[k] !== element) { + this.addEntry(element.node, Rules.DuplicateDeclarations); + } + } + } + } + } + } + var isExportBlock = node.getSelectors().matches(":export"); + if (!isExportBlock) { + var propertiesBySuffix = new NodesByRootMap(); + var containsUnknowns = false; + for (var _d = 0, propertyTable_1 = propertyTable; _d < propertyTable_1.length; _d++) { + var element = propertyTable_1[_d]; + var decl = element.node; + if (this.isCSSDeclaration(decl)) { + var name = element.fullPropertyName; + var firstChar = name.charAt(0); + if (firstChar === "-") { + if (name.charAt(1) !== "-") { + if (!this.cssDataManager.isKnownProperty(name) && !this.validProperties[name]) { + this.addEntry(decl.getProperty(), Rules.UnknownVendorSpecificProperty); + } + var nonPrefixedName = decl.getNonPrefixedPropertyName(); + propertiesBySuffix.add(nonPrefixedName, name, decl.getProperty()); + } + } else { + var fullName = name; + if (firstChar === "*" || firstChar === "_") { + this.addEntry(decl.getProperty(), Rules.IEStarHack); + name = name.substr(1); + } + if (!this.cssDataManager.isKnownProperty(fullName) && !this.cssDataManager.isKnownProperty(name)) { + if (!this.validProperties[name]) { + this.addEntry(decl.getProperty(), Rules.UnknownProperty, localize9("property.unknownproperty.detailed", "Unknown property: '{0}'", decl.getFullPropertyName())); + } + } + propertiesBySuffix.add(name, name, null); + } + } else { + containsUnknowns = true; + } + } + if (!containsUnknowns) { + for (var suffix in propertiesBySuffix.data) { + var entry = propertiesBySuffix.data[suffix]; + var actual = entry.names; + var needsStandard = this.cssDataManager.isStandardProperty(suffix) && actual.indexOf(suffix) === -1; + if (!needsStandard && actual.length === 1) { + continue; + } + var expected = []; + for (var i = 0, len = LintVisitor2.prefixes.length; i < len; i++) { + var prefix = LintVisitor2.prefixes[i]; + if (this.cssDataManager.isStandardProperty(prefix + suffix)) { + expected.push(prefix + suffix); + } + } + var missingVendorSpecific = this.getMissingNames(expected, actual); + if (missingVendorSpecific || needsStandard) { + for (var _e = 0, _f2 = entry.nodes; _e < _f2.length; _e++) { + var node_2 = _f2[_e]; + if (needsStandard) { + var message = localize9("property.standard.missing", "Also define the standard property '{0}' for compatibility", suffix); + this.addEntry(node_2, Rules.IncludeStandardPropertyWhenUsingVendorPrefix, message); + } + if (missingVendorSpecific) { + var message = localize9("property.vendorspecific.missing", "Always include all vendor specific properties: Missing: {0}", missingVendorSpecific); + this.addEntry(node_2, Rules.AllVendorPrefixes, message); + } + } + } + } + } + } + return true; + }; + LintVisitor2.prototype.visitPrio = function(node) { + this.addEntry(node, Rules.AvoidImportant); + return true; + }; + LintVisitor2.prototype.visitNumericValue = function(node) { + var funcDecl = node.findParent(NodeType.Function); + if (funcDecl && funcDecl.getName() === "calc") { + return true; + } + var decl = node.findParent(NodeType.Declaration); + if (decl) { + var declValue = decl.getValue(); + if (declValue) { + var value = node.getValue(); + if (!value.unit || units.length.indexOf(value.unit.toLowerCase()) === -1) { + return true; + } + if (parseFloat(value.value) === 0 && !!value.unit && !this.validProperties[decl.getFullPropertyName()]) { + this.addEntry(node, Rules.ZeroWithUnit); + } + } + } + return true; + }; + LintVisitor2.prototype.visitFontFace = function(node) { + var declarations = node.getDeclarations(); + if (!declarations) { + return false; + } + var definesSrc = false, definesFontFamily = false; + var containsUnknowns = false; + for (var _i = 0, _a2 = declarations.getChildren(); _i < _a2.length; _i++) { + var node_3 = _a2[_i]; + if (this.isCSSDeclaration(node_3)) { + var name = node_3.getProperty().getName().toLowerCase(); + if (name === "src") { + definesSrc = true; + } + if (name === "font-family") { + definesFontFamily = true; + } + } else { + containsUnknowns = true; + } + } + if (!containsUnknowns && (!definesSrc || !definesFontFamily)) { + this.addEntry(node, Rules.RequiredPropertiesForFontFace); + } + return true; + }; + LintVisitor2.prototype.isCSSDeclaration = function(node) { + if (node instanceof Declaration) { + if (!node.getValue()) { + return false; + } + var property = node.getProperty(); + if (!property) { + return false; + } + var identifier = property.getIdentifier(); + if (!identifier || identifier.containsInterpolation()) { + return false; + } + return true; + } + return false; + }; + LintVisitor2.prototype.visitHexColorValue = function(node) { + var length = node.length; + if (length !== 9 && length !== 7 && length !== 5 && length !== 4) { + this.addEntry(node, Rules.HexColorLength); + } + return false; + }; + LintVisitor2.prototype.visitFunction = function(node) { + var fnName = node.getName().toLowerCase(); + var expectedAttrCount = -1; + var actualAttrCount = 0; + switch (fnName) { + case "rgb(": + case "hsl(": + expectedAttrCount = 3; + break; + case "rgba(": + case "hsla(": + expectedAttrCount = 4; + break; + } + if (expectedAttrCount !== -1) { + node.getArguments().accept(function(n) { + if (n instanceof BinaryExpression) { + actualAttrCount += 1; + return false; + } + return true; + }); + if (actualAttrCount !== expectedAttrCount) { + this.addEntry(node, Rules.ArgsInColorFunction); + } + } + return true; + }; + LintVisitor2.prefixes = [ + "-ms-", + "-moz-", + "-o-", + "-webkit-" + ]; + return LintVisitor2; +}(); + +// node_modules/vscode-css-languageservice/lib/esm/services/cssValidation.js +var CSSValidation = function() { + function CSSValidation2(cssDataManager) { + this.cssDataManager = cssDataManager; + } + CSSValidation2.prototype.configure = function(settings) { + this.settings = settings; + }; + CSSValidation2.prototype.doValidation = function(document, stylesheet, settings) { + if (settings === void 0) { + settings = this.settings; + } + if (settings && settings.validate === false) { + return []; + } + var entries = []; + entries.push.apply(entries, ParseErrorCollector.entries(stylesheet)); + entries.push.apply(entries, LintVisitor.entries(stylesheet, document, new LintConfigurationSettings(settings && settings.lint), this.cssDataManager)); + var ruleIds = []; + for (var r in Rules) { + ruleIds.push(Rules[r].id); + } + function toDiagnostic(marker) { + var range = css_worker_Range.create(document.positionAt(marker.getOffset()), document.positionAt(marker.getOffset() + marker.getLength())); + var source = document.languageId; + return { + code: marker.getRule().id, + source, + message: marker.getMessage(), + severity: marker.getLevel() === Level.Warning ? DiagnosticSeverity.Warning : DiagnosticSeverity.Error, + range + }; + } + return entries.filter(function(entry) { + return entry.getLevel() !== Level.Ignore; + }).map(toDiagnostic); + }; + return CSSValidation2; +}(); + +// node_modules/vscode-css-languageservice/lib/esm/parser/scssScanner.js +var __extends4 = function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +}(); +var _FSL2 = "/".charCodeAt(0); +var _NWL2 = "\n".charCodeAt(0); +var _CAR2 = "\r".charCodeAt(0); +var _LFD2 = "\f".charCodeAt(0); +var _DLR2 = "$".charCodeAt(0); +var _HSH2 = "#".charCodeAt(0); +var _CUL2 = "{".charCodeAt(0); +var _EQS2 = "=".charCodeAt(0); +var _BNG2 = "!".charCodeAt(0); +var _LAN2 = "<".charCodeAt(0); +var _RAN2 = ">".charCodeAt(0); +var _DOT2 = ".".charCodeAt(0); +var _ATS2 = "@".charCodeAt(0); +var customTokenValue = TokenType.CustomToken; +var VariableName = customTokenValue++; +var InterpolationFunction = customTokenValue++; +var Default = customTokenValue++; +var EqualsOperator = customTokenValue++; +var NotEqualsOperator = customTokenValue++; +var GreaterEqualsOperator = customTokenValue++; +var SmallerEqualsOperator = customTokenValue++; +var Ellipsis = customTokenValue++; +var Module2 = customTokenValue++; +var SCSSScanner = function(_super) { + __extends4(SCSSScanner2, _super); + function SCSSScanner2() { + return _super !== null && _super.apply(this, arguments) || this; + } + SCSSScanner2.prototype.scanNext = function(offset) { + if (this.stream.advanceIfChar(_DLR2)) { + var content = ["$"]; + if (this.ident(content)) { + return this.finishToken(offset, VariableName, content.join("")); + } else { + this.stream.goBackTo(offset); + } + } + if (this.stream.advanceIfChars([_HSH2, _CUL2])) { + return this.finishToken(offset, InterpolationFunction); + } + if (this.stream.advanceIfChars([_EQS2, _EQS2])) { + return this.finishToken(offset, EqualsOperator); + } + if (this.stream.advanceIfChars([_BNG2, _EQS2])) { + return this.finishToken(offset, NotEqualsOperator); + } + if (this.stream.advanceIfChar(_LAN2)) { + if (this.stream.advanceIfChar(_EQS2)) { + return this.finishToken(offset, SmallerEqualsOperator); + } + return this.finishToken(offset, TokenType.Delim); + } + if (this.stream.advanceIfChar(_RAN2)) { + if (this.stream.advanceIfChar(_EQS2)) { + return this.finishToken(offset, GreaterEqualsOperator); + } + return this.finishToken(offset, TokenType.Delim); + } + if (this.stream.advanceIfChars([_DOT2, _DOT2, _DOT2])) { + return this.finishToken(offset, Ellipsis); + } + return _super.prototype.scanNext.call(this, offset); + }; + SCSSScanner2.prototype.comment = function() { + if (_super.prototype.comment.call(this)) { + return true; + } + if (!this.inURL && this.stream.advanceIfChars([_FSL2, _FSL2])) { + this.stream.advanceWhileChar(function(ch) { + switch (ch) { + case _NWL2: + case _CAR2: + case _LFD2: + return false; + default: + return true; + } + }); + return true; + } else { + return false; + } + }; + return SCSSScanner2; +}(Scanner); + +// node_modules/vscode-css-languageservice/lib/esm/parser/scssErrors.js +var localize10 = loadMessageBundle(); +var SCSSIssueType = function() { + function SCSSIssueType2(id, message) { + this.id = id; + this.message = message; + } + return SCSSIssueType2; +}(); +var SCSSParseError = { + FromExpected: new SCSSIssueType("scss-fromexpected", localize10("expected.from", "'from' expected")), + ThroughOrToExpected: new SCSSIssueType("scss-throughexpected", localize10("expected.through", "'through' or 'to' expected")), + InExpected: new SCSSIssueType("scss-fromexpected", localize10("expected.in", "'in' expected")) +}; + +// node_modules/vscode-css-languageservice/lib/esm/parser/scssParser.js +var __extends5 = function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +}(); +var SCSSParser = function(_super) { + __extends5(SCSSParser2, _super); + function SCSSParser2() { + return _super.call(this, new SCSSScanner()) || this; + } + SCSSParser2.prototype._parseStylesheetStatement = function(isNested) { + if (isNested === void 0) { + isNested = false; + } + if (this.peek(TokenType.AtKeyword)) { + return this._parseWarnAndDebug() || this._parseControlStatement() || this._parseMixinDeclaration() || this._parseMixinContent() || this._parseMixinReference() || this._parseFunctionDeclaration() || this._parseForward() || this._parseUse() || this._parseRuleset(isNested) || _super.prototype._parseStylesheetAtStatement.call(this, isNested); + } + return this._parseRuleset(true) || this._parseVariableDeclaration(); + }; + SCSSParser2.prototype._parseImport = function() { + if (!this.peekKeyword("@import")) { + return null; + } + var node = this.create(Import); + this.consumeToken(); + if (!node.addChild(this._parseURILiteral()) && !node.addChild(this._parseStringLiteral())) { + return this.finish(node, ParseError.URIOrStringExpected); + } + while (this.accept(TokenType.Comma)) { + if (!node.addChild(this._parseURILiteral()) && !node.addChild(this._parseStringLiteral())) { + return this.finish(node, ParseError.URIOrStringExpected); + } + } + if (!this.peek(TokenType.SemiColon) && !this.peek(TokenType.EOF)) { + node.setMedialist(this._parseMediaQueryList()); + } + return this.finish(node); + }; + SCSSParser2.prototype._parseVariableDeclaration = function(panic) { + if (panic === void 0) { + panic = []; + } + if (!this.peek(VariableName)) { + return null; + } + var node = this.create(VariableDeclaration); + if (!node.setVariable(this._parseVariable())) { + return null; + } + if (!this.accept(TokenType.Colon)) { + return this.finish(node, ParseError.ColonExpected); + } + if (this.prevToken) { + node.colonPosition = this.prevToken.offset; + } + if (!node.setValue(this._parseExpr())) { + return this.finish(node, ParseError.VariableValueExpected, [], panic); + } + while (this.peek(TokenType.Exclamation)) { + if (node.addChild(this._tryParsePrio())) { + } else { + this.consumeToken(); + if (!this.peekRegExp(TokenType.Ident, /^(default|global)$/)) { + return this.finish(node, ParseError.UnknownKeyword); + } + this.consumeToken(); + } + } + if (this.peek(TokenType.SemiColon)) { + node.semicolonPosition = this.token.offset; + } + return this.finish(node); + }; + SCSSParser2.prototype._parseMediaCondition = function() { + return this._parseInterpolation() || _super.prototype._parseMediaCondition.call(this); + }; + SCSSParser2.prototype._parseMediaFeatureName = function() { + return this._parseModuleMember() || this._parseFunction() || this._parseIdent() || this._parseVariable(); + }; + SCSSParser2.prototype._parseKeyframeSelector = function() { + return this._tryParseKeyframeSelector() || this._parseControlStatement(this._parseKeyframeSelector.bind(this)) || this._parseVariableDeclaration() || this._parseMixinContent(); + }; + SCSSParser2.prototype._parseVariable = function() { + if (!this.peek(VariableName)) { + return null; + } + var node = this.create(Variable); + this.consumeToken(); + return node; + }; + SCSSParser2.prototype._parseModuleMember = function() { + var pos = this.mark(); + var node = this.create(Module); + if (!node.setIdentifier(this._parseIdent([ReferenceType.Module]))) { + return null; + } + if (this.hasWhitespace() || !this.acceptDelim(".") || this.hasWhitespace()) { + this.restoreAtMark(pos); + return null; + } + if (!node.addChild(this._parseVariable() || this._parseFunction())) { + return this.finish(node, ParseError.IdentifierOrVariableExpected); + } + return node; + }; + SCSSParser2.prototype._parseIdent = function(referenceTypes) { + var _this = this; + if (!this.peek(TokenType.Ident) && !this.peek(InterpolationFunction) && !this.peekDelim("-")) { + return null; + } + var node = this.create(Identifier); + node.referenceTypes = referenceTypes; + node.isCustomProperty = this.peekRegExp(TokenType.Ident, /^--/); + var hasContent = false; + var indentInterpolation = function() { + var pos = _this.mark(); + if (_this.acceptDelim("-")) { + if (!_this.hasWhitespace()) { + _this.acceptDelim("-"); + } + if (_this.hasWhitespace()) { + _this.restoreAtMark(pos); + return null; + } + } + return _this._parseInterpolation(); + }; + while (this.accept(TokenType.Ident) || node.addChild(indentInterpolation()) || hasContent && this.acceptRegexp(/^[\w-]/)) { + hasContent = true; + if (this.hasWhitespace()) { + break; + } + } + return hasContent ? this.finish(node) : null; + }; + SCSSParser2.prototype._parseTermExpression = function() { + return this._parseModuleMember() || this._parseVariable() || this._parseSelectorCombinator() || _super.prototype._parseTermExpression.call(this); + }; + SCSSParser2.prototype._parseInterpolation = function() { + if (this.peek(InterpolationFunction)) { + var node = this.create(Interpolation); + this.consumeToken(); + if (!node.addChild(this._parseExpr()) && !this._parseSelectorCombinator()) { + if (this.accept(TokenType.CurlyR)) { + return this.finish(node); + } + return this.finish(node, ParseError.ExpressionExpected); + } + if (!this.accept(TokenType.CurlyR)) { + return this.finish(node, ParseError.RightCurlyExpected); + } + return this.finish(node); + } + return null; + }; + SCSSParser2.prototype._parseOperator = function() { + if (this.peek(EqualsOperator) || this.peek(NotEqualsOperator) || this.peek(GreaterEqualsOperator) || this.peek(SmallerEqualsOperator) || this.peekDelim(">") || this.peekDelim("<") || this.peekIdent("and") || this.peekIdent("or") || this.peekDelim("%")) { + var node = this.createNode(NodeType.Operator); + this.consumeToken(); + return this.finish(node); + } + return _super.prototype._parseOperator.call(this); + }; + SCSSParser2.prototype._parseUnaryOperator = function() { + if (this.peekIdent("not")) { + var node = this.create(css_worker_Node); + this.consumeToken(); + return this.finish(node); + } + return _super.prototype._parseUnaryOperator.call(this); + }; + SCSSParser2.prototype._parseRuleSetDeclaration = function() { + if (this.peek(TokenType.AtKeyword)) { + return this._parseKeyframe() || this._parseImport() || this._parseMedia(true) || this._parseFontFace() || this._parseWarnAndDebug() || this._parseControlStatement() || this._parseFunctionDeclaration() || this._parseExtends() || this._parseMixinReference() || this._parseMixinContent() || this._parseMixinDeclaration() || this._parseRuleset(true) || this._parseSupports(true) || _super.prototype._parseRuleSetDeclarationAtStatement.call(this); + } + return this._parseVariableDeclaration() || this._tryParseRuleset(true) || _super.prototype._parseRuleSetDeclaration.call(this); + }; + SCSSParser2.prototype._parseDeclaration = function(stopTokens) { + var custonProperty = this._tryParseCustomPropertyDeclaration(stopTokens); + if (custonProperty) { + return custonProperty; + } + var node = this.create(Declaration); + if (!node.setProperty(this._parseProperty())) { + return null; + } + if (!this.accept(TokenType.Colon)) { + return this.finish(node, ParseError.ColonExpected, [TokenType.Colon], stopTokens || [TokenType.SemiColon]); + } + if (this.prevToken) { + node.colonPosition = this.prevToken.offset; + } + var hasContent = false; + if (node.setValue(this._parseExpr())) { + hasContent = true; + node.addChild(this._parsePrio()); + } + if (this.peek(TokenType.CurlyL)) { + node.setNestedProperties(this._parseNestedProperties()); + } else { + if (!hasContent) { + return this.finish(node, ParseError.PropertyValueExpected); + } + } + if (this.peek(TokenType.SemiColon)) { + node.semicolonPosition = this.token.offset; + } + return this.finish(node); + }; + SCSSParser2.prototype._parseNestedProperties = function() { + var node = this.create(NestedProperties); + return this._parseBody(node, this._parseDeclaration.bind(this)); + }; + SCSSParser2.prototype._parseExtends = function() { + if (this.peekKeyword("@extend")) { + var node = this.create(ExtendsReference); + this.consumeToken(); + if (!node.getSelectors().addChild(this._parseSimpleSelector())) { + return this.finish(node, ParseError.SelectorExpected); + } + while (this.accept(TokenType.Comma)) { + node.getSelectors().addChild(this._parseSimpleSelector()); + } + if (this.accept(TokenType.Exclamation)) { + if (!this.acceptIdent("optional")) { + return this.finish(node, ParseError.UnknownKeyword); + } + } + return this.finish(node); + } + return null; + }; + SCSSParser2.prototype._parseSimpleSelectorBody = function() { + return this._parseSelectorCombinator() || this._parseSelectorPlaceholder() || _super.prototype._parseSimpleSelectorBody.call(this); + }; + SCSSParser2.prototype._parseSelectorCombinator = function() { + if (this.peekDelim("&")) { + var node = this.createNode(NodeType.SelectorCombinator); + this.consumeToken(); + while (!this.hasWhitespace() && (this.acceptDelim("-") || this.accept(TokenType.Num) || this.accept(TokenType.Dimension) || node.addChild(this._parseIdent()) || this.acceptDelim("&"))) { + } + return this.finish(node); + } + return null; + }; + SCSSParser2.prototype._parseSelectorPlaceholder = function() { + if (this.peekDelim("%")) { + var node = this.createNode(NodeType.SelectorPlaceholder); + this.consumeToken(); + this._parseIdent(); + return this.finish(node); + } else if (this.peekKeyword("@at-root")) { + var node = this.createNode(NodeType.SelectorPlaceholder); + this.consumeToken(); + return this.finish(node); + } + return null; + }; + SCSSParser2.prototype._parseElementName = function() { + var pos = this.mark(); + var node = _super.prototype._parseElementName.call(this); + if (node && !this.hasWhitespace() && this.peek(TokenType.ParenthesisL)) { + this.restoreAtMark(pos); + return null; + } + return node; + }; + SCSSParser2.prototype._tryParsePseudoIdentifier = function() { + return this._parseInterpolation() || _super.prototype._tryParsePseudoIdentifier.call(this); + }; + SCSSParser2.prototype._parseWarnAndDebug = function() { + if (!this.peekKeyword("@debug") && !this.peekKeyword("@warn") && !this.peekKeyword("@error")) { + return null; + } + var node = this.createNode(NodeType.Debug); + this.consumeToken(); + node.addChild(this._parseExpr()); + return this.finish(node); + }; + SCSSParser2.prototype._parseControlStatement = function(parseStatement) { + if (parseStatement === void 0) { + parseStatement = this._parseRuleSetDeclaration.bind(this); + } + if (!this.peek(TokenType.AtKeyword)) { + return null; + } + return this._parseIfStatement(parseStatement) || this._parseForStatement(parseStatement) || this._parseEachStatement(parseStatement) || this._parseWhileStatement(parseStatement); + }; + SCSSParser2.prototype._parseIfStatement = function(parseStatement) { + if (!this.peekKeyword("@if")) { + return null; + } + return this._internalParseIfStatement(parseStatement); + }; + SCSSParser2.prototype._internalParseIfStatement = function(parseStatement) { + var node = this.create(IfStatement); + this.consumeToken(); + if (!node.setExpression(this._parseExpr(true))) { + return this.finish(node, ParseError.ExpressionExpected); + } + this._parseBody(node, parseStatement); + if (this.acceptKeyword("@else")) { + if (this.peekIdent("if")) { + node.setElseClause(this._internalParseIfStatement(parseStatement)); + } else if (this.peek(TokenType.CurlyL)) { + var elseNode = this.create(ElseStatement); + this._parseBody(elseNode, parseStatement); + node.setElseClause(elseNode); + } + } + return this.finish(node); + }; + SCSSParser2.prototype._parseForStatement = function(parseStatement) { + if (!this.peekKeyword("@for")) { + return null; + } + var node = this.create(ForStatement); + this.consumeToken(); + if (!node.setVariable(this._parseVariable())) { + return this.finish(node, ParseError.VariableNameExpected, [TokenType.CurlyR]); + } + if (!this.acceptIdent("from")) { + return this.finish(node, SCSSParseError.FromExpected, [TokenType.CurlyR]); + } + if (!node.addChild(this._parseBinaryExpr())) { + return this.finish(node, ParseError.ExpressionExpected, [TokenType.CurlyR]); + } + if (!this.acceptIdent("to") && !this.acceptIdent("through")) { + return this.finish(node, SCSSParseError.ThroughOrToExpected, [TokenType.CurlyR]); + } + if (!node.addChild(this._parseBinaryExpr())) { + return this.finish(node, ParseError.ExpressionExpected, [TokenType.CurlyR]); + } + return this._parseBody(node, parseStatement); + }; + SCSSParser2.prototype._parseEachStatement = function(parseStatement) { + if (!this.peekKeyword("@each")) { + return null; + } + var node = this.create(EachStatement); + this.consumeToken(); + var variables = node.getVariables(); + if (!variables.addChild(this._parseVariable())) { + return this.finish(node, ParseError.VariableNameExpected, [TokenType.CurlyR]); + } + while (this.accept(TokenType.Comma)) { + if (!variables.addChild(this._parseVariable())) { + return this.finish(node, ParseError.VariableNameExpected, [TokenType.CurlyR]); + } + } + this.finish(variables); + if (!this.acceptIdent("in")) { + return this.finish(node, SCSSParseError.InExpected, [TokenType.CurlyR]); + } + if (!node.addChild(this._parseExpr())) { + return this.finish(node, ParseError.ExpressionExpected, [TokenType.CurlyR]); + } + return this._parseBody(node, parseStatement); + }; + SCSSParser2.prototype._parseWhileStatement = function(parseStatement) { + if (!this.peekKeyword("@while")) { + return null; + } + var node = this.create(WhileStatement); + this.consumeToken(); + if (!node.addChild(this._parseBinaryExpr())) { + return this.finish(node, ParseError.ExpressionExpected, [TokenType.CurlyR]); + } + return this._parseBody(node, parseStatement); + }; + SCSSParser2.prototype._parseFunctionBodyDeclaration = function() { + return this._parseVariableDeclaration() || this._parseReturnStatement() || this._parseWarnAndDebug() || this._parseControlStatement(this._parseFunctionBodyDeclaration.bind(this)); + }; + SCSSParser2.prototype._parseFunctionDeclaration = function() { + if (!this.peekKeyword("@function")) { + return null; + } + var node = this.create(FunctionDeclaration); + this.consumeToken(); + if (!node.setIdentifier(this._parseIdent([ReferenceType.Function]))) { + return this.finish(node, ParseError.IdentifierExpected, [TokenType.CurlyR]); + } + if (!this.accept(TokenType.ParenthesisL)) { + return this.finish(node, ParseError.LeftParenthesisExpected, [TokenType.CurlyR]); + } + if (node.getParameters().addChild(this._parseParameterDeclaration())) { + while (this.accept(TokenType.Comma)) { + if (this.peek(TokenType.ParenthesisR)) { + break; + } + if (!node.getParameters().addChild(this._parseParameterDeclaration())) { + return this.finish(node, ParseError.VariableNameExpected); + } + } + } + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [TokenType.CurlyR]); + } + return this._parseBody(node, this._parseFunctionBodyDeclaration.bind(this)); + }; + SCSSParser2.prototype._parseReturnStatement = function() { + if (!this.peekKeyword("@return")) { + return null; + } + var node = this.createNode(NodeType.ReturnStatement); + this.consumeToken(); + if (!node.addChild(this._parseExpr())) { + return this.finish(node, ParseError.ExpressionExpected); + } + return this.finish(node); + }; + SCSSParser2.prototype._parseMixinDeclaration = function() { + if (!this.peekKeyword("@mixin")) { + return null; + } + var node = this.create(MixinDeclaration); + this.consumeToken(); + if (!node.setIdentifier(this._parseIdent([ReferenceType.Mixin]))) { + return this.finish(node, ParseError.IdentifierExpected, [TokenType.CurlyR]); + } + if (this.accept(TokenType.ParenthesisL)) { + if (node.getParameters().addChild(this._parseParameterDeclaration())) { + while (this.accept(TokenType.Comma)) { + if (this.peek(TokenType.ParenthesisR)) { + break; + } + if (!node.getParameters().addChild(this._parseParameterDeclaration())) { + return this.finish(node, ParseError.VariableNameExpected); + } + } + } + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [TokenType.CurlyR]); + } + } + return this._parseBody(node, this._parseRuleSetDeclaration.bind(this)); + }; + SCSSParser2.prototype._parseParameterDeclaration = function() { + var node = this.create(FunctionParameter); + if (!node.setIdentifier(this._parseVariable())) { + return null; + } + if (this.accept(Ellipsis)) { + } + if (this.accept(TokenType.Colon)) { + if (!node.setDefaultValue(this._parseExpr(true))) { + return this.finish(node, ParseError.VariableValueExpected, [], [TokenType.Comma, TokenType.ParenthesisR]); + } + } + return this.finish(node); + }; + SCSSParser2.prototype._parseMixinContent = function() { + if (!this.peekKeyword("@content")) { + return null; + } + var node = this.create(MixinContentReference); + this.consumeToken(); + if (this.accept(TokenType.ParenthesisL)) { + if (node.getArguments().addChild(this._parseFunctionArgument())) { + while (this.accept(TokenType.Comma)) { + if (this.peek(TokenType.ParenthesisR)) { + break; + } + if (!node.getArguments().addChild(this._parseFunctionArgument())) { + return this.finish(node, ParseError.ExpressionExpected); + } + } + } + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + } + return this.finish(node); + }; + SCSSParser2.prototype._parseMixinReference = function() { + if (!this.peekKeyword("@include")) { + return null; + } + var node = this.create(MixinReference); + this.consumeToken(); + var firstIdent = this._parseIdent([ReferenceType.Mixin]); + if (!node.setIdentifier(firstIdent)) { + return this.finish(node, ParseError.IdentifierExpected, [TokenType.CurlyR]); + } + if (!this.hasWhitespace() && this.acceptDelim(".") && !this.hasWhitespace()) { + var secondIdent = this._parseIdent([ReferenceType.Mixin]); + if (!secondIdent) { + return this.finish(node, ParseError.IdentifierExpected, [TokenType.CurlyR]); + } + var moduleToken = this.create(Module); + firstIdent.referenceTypes = [ReferenceType.Module]; + moduleToken.setIdentifier(firstIdent); + node.setIdentifier(secondIdent); + node.addChild(moduleToken); + } + if (this.accept(TokenType.ParenthesisL)) { + if (node.getArguments().addChild(this._parseFunctionArgument())) { + while (this.accept(TokenType.Comma)) { + if (this.peek(TokenType.ParenthesisR)) { + break; + } + if (!node.getArguments().addChild(this._parseFunctionArgument())) { + return this.finish(node, ParseError.ExpressionExpected); + } + } + } + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + } + if (this.peekIdent("using") || this.peek(TokenType.CurlyL)) { + node.setContent(this._parseMixinContentDeclaration()); + } + return this.finish(node); + }; + SCSSParser2.prototype._parseMixinContentDeclaration = function() { + var node = this.create(MixinContentDeclaration); + if (this.acceptIdent("using")) { + if (!this.accept(TokenType.ParenthesisL)) { + return this.finish(node, ParseError.LeftParenthesisExpected, [TokenType.CurlyL]); + } + if (node.getParameters().addChild(this._parseParameterDeclaration())) { + while (this.accept(TokenType.Comma)) { + if (this.peek(TokenType.ParenthesisR)) { + break; + } + if (!node.getParameters().addChild(this._parseParameterDeclaration())) { + return this.finish(node, ParseError.VariableNameExpected); + } + } + } + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [TokenType.CurlyL]); + } + } + if (this.peek(TokenType.CurlyL)) { + this._parseBody(node, this._parseMixinReferenceBodyStatement.bind(this)); + } + return this.finish(node); + }; + SCSSParser2.prototype._parseMixinReferenceBodyStatement = function() { + return this._tryParseKeyframeSelector() || this._parseRuleSetDeclaration(); + }; + SCSSParser2.prototype._parseFunctionArgument = function() { + var node = this.create(FunctionArgument); + var pos = this.mark(); + var argument = this._parseVariable(); + if (argument) { + if (!this.accept(TokenType.Colon)) { + if (this.accept(Ellipsis)) { + node.setValue(argument); + return this.finish(node); + } else { + this.restoreAtMark(pos); + } + } else { + node.setIdentifier(argument); + } + } + if (node.setValue(this._parseExpr(true))) { + this.accept(Ellipsis); + node.addChild(this._parsePrio()); + return this.finish(node); + } else if (node.setValue(this._tryParsePrio())) { + return this.finish(node); + } + return null; + }; + SCSSParser2.prototype._parseURLArgument = function() { + var pos = this.mark(); + var node = _super.prototype._parseURLArgument.call(this); + if (!node || !this.peek(TokenType.ParenthesisR)) { + this.restoreAtMark(pos); + var node_1 = this.create(css_worker_Node); + node_1.addChild(this._parseBinaryExpr()); + return this.finish(node_1); + } + return node; + }; + SCSSParser2.prototype._parseOperation = function() { + if (!this.peek(TokenType.ParenthesisL)) { + return null; + } + var node = this.create(css_worker_Node); + this.consumeToken(); + while (node.addChild(this._parseListElement())) { + this.accept(TokenType.Comma); + } + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + return this.finish(node); + }; + SCSSParser2.prototype._parseListElement = function() { + var node = this.create(ListEntry); + var child = this._parseBinaryExpr(); + if (!child) { + return null; + } + if (this.accept(TokenType.Colon)) { + node.setKey(child); + if (!node.setValue(this._parseBinaryExpr())) { + return this.finish(node, ParseError.ExpressionExpected); + } + } else { + node.setValue(child); + } + return this.finish(node); + }; + SCSSParser2.prototype._parseUse = function() { + if (!this.peekKeyword("@use")) { + return null; + } + var node = this.create(Use); + this.consumeToken(); + if (!node.addChild(this._parseStringLiteral())) { + return this.finish(node, ParseError.StringLiteralExpected); + } + if (!this.peek(TokenType.SemiColon) && !this.peek(TokenType.EOF)) { + if (!this.peekRegExp(TokenType.Ident, /as|with/)) { + return this.finish(node, ParseError.UnknownKeyword); + } + if (this.acceptIdent("as") && (!node.setIdentifier(this._parseIdent([ReferenceType.Module])) && !this.acceptDelim("*"))) { + return this.finish(node, ParseError.IdentifierOrWildcardExpected); + } + if (this.acceptIdent("with")) { + if (!this.accept(TokenType.ParenthesisL)) { + return this.finish(node, ParseError.LeftParenthesisExpected, [TokenType.ParenthesisR]); + } + if (!node.getParameters().addChild(this._parseModuleConfigDeclaration())) { + return this.finish(node, ParseError.VariableNameExpected); + } + while (this.accept(TokenType.Comma)) { + if (this.peek(TokenType.ParenthesisR)) { + break; + } + if (!node.getParameters().addChild(this._parseModuleConfigDeclaration())) { + return this.finish(node, ParseError.VariableNameExpected); + } + } + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + } + } + if (!this.accept(TokenType.SemiColon) && !this.accept(TokenType.EOF)) { + return this.finish(node, ParseError.SemiColonExpected); + } + return this.finish(node); + }; + SCSSParser2.prototype._parseModuleConfigDeclaration = function() { + var node = this.create(ModuleConfiguration); + if (!node.setIdentifier(this._parseVariable())) { + return null; + } + if (!this.accept(TokenType.Colon) || !node.setValue(this._parseExpr(true))) { + return this.finish(node, ParseError.VariableValueExpected, [], [TokenType.Comma, TokenType.ParenthesisR]); + } + if (this.accept(TokenType.Exclamation)) { + if (this.hasWhitespace() || !this.acceptIdent("default")) { + return this.finish(node, ParseError.UnknownKeyword); + } + } + return this.finish(node); + }; + SCSSParser2.prototype._parseForward = function() { + if (!this.peekKeyword("@forward")) { + return null; + } + var node = this.create(Forward); + this.consumeToken(); + if (!node.addChild(this._parseStringLiteral())) { + return this.finish(node, ParseError.StringLiteralExpected); + } + if (this.acceptIdent("with")) { + if (!this.accept(TokenType.ParenthesisL)) { + return this.finish(node, ParseError.LeftParenthesisExpected, [TokenType.ParenthesisR]); + } + if (!node.getParameters().addChild(this._parseModuleConfigDeclaration())) { + return this.finish(node, ParseError.VariableNameExpected); + } + while (this.accept(TokenType.Comma)) { + if (this.peek(TokenType.ParenthesisR)) { + break; + } + if (!node.getParameters().addChild(this._parseModuleConfigDeclaration())) { + return this.finish(node, ParseError.VariableNameExpected); + } + } + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + } + if (!this.peek(TokenType.SemiColon) && !this.peek(TokenType.EOF)) { + if (!this.peekRegExp(TokenType.Ident, /as|hide|show/)) { + return this.finish(node, ParseError.UnknownKeyword); + } + if (this.acceptIdent("as")) { + var identifier = this._parseIdent([ReferenceType.Forward]); + if (!node.setIdentifier(identifier)) { + return this.finish(node, ParseError.IdentifierExpected); + } + if (this.hasWhitespace() || !this.acceptDelim("*")) { + return this.finish(node, ParseError.WildcardExpected); + } + } + if (this.peekIdent("hide") || this.peekIdent("show")) { + if (!node.addChild(this._parseForwardVisibility())) { + return this.finish(node, ParseError.IdentifierOrVariableExpected); + } + } + } + if (!this.accept(TokenType.SemiColon) && !this.accept(TokenType.EOF)) { + return this.finish(node, ParseError.SemiColonExpected); + } + return this.finish(node); + }; + SCSSParser2.prototype._parseForwardVisibility = function() { + var node = this.create(ForwardVisibility); + node.setIdentifier(this._parseIdent()); + while (node.addChild(this._parseVariable() || this._parseIdent())) { + this.accept(TokenType.Comma); + } + return node.getChildren().length > 1 ? node : null; + }; + SCSSParser2.prototype._parseSupportsCondition = function() { + return this._parseInterpolation() || _super.prototype._parseSupportsCondition.call(this); + }; + return SCSSParser2; +}(Parser); + +// node_modules/vscode-css-languageservice/lib/esm/services/scssCompletion.js +var __extends6 = function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +}(); +var localize11 = loadMessageBundle(); +var SCSSCompletion = function(_super) { + __extends6(SCSSCompletion2, _super); + function SCSSCompletion2(lsServiceOptions, cssDataManager) { + var _this = _super.call(this, "$", lsServiceOptions, cssDataManager) || this; + addReferencesToDocumentation(SCSSCompletion2.scssModuleLoaders); + addReferencesToDocumentation(SCSSCompletion2.scssModuleBuiltIns); + return _this; + } + SCSSCompletion2.prototype.isImportPathParent = function(type) { + return type === NodeType.Forward || type === NodeType.Use || _super.prototype.isImportPathParent.call(this, type); + }; + SCSSCompletion2.prototype.getCompletionForImportPath = function(importPathNode, result) { + var parentType = importPathNode.getParent().type; + if (parentType === NodeType.Forward || parentType === NodeType.Use) { + for (var _i = 0, _a2 = SCSSCompletion2.scssModuleBuiltIns; _i < _a2.length; _i++) { + var p = _a2[_i]; + var item = { + label: p.label, + documentation: p.documentation, + textEdit: TextEdit.replace(this.getCompletionRange(importPathNode), "'".concat(p.label, "'")), + kind: css_worker_CompletionItemKind.Module + }; + result.items.push(item); + } + } + return _super.prototype.getCompletionForImportPath.call(this, importPathNode, result); + }; + SCSSCompletion2.prototype.createReplaceFunction = function() { + var tabStopCounter = 1; + return function(_match, p1) { + return "\\" + p1 + ": ${" + tabStopCounter++ + ":" + (SCSSCompletion2.variableDefaults[p1] || "") + "}"; + }; + }; + SCSSCompletion2.prototype.createFunctionProposals = function(proposals, existingNode, sortToEnd, result) { + for (var _i = 0, proposals_1 = proposals; _i < proposals_1.length; _i++) { + var p = proposals_1[_i]; + var insertText = p.func.replace(/\[?(\$\w+)\]?/g, this.createReplaceFunction()); + var label = p.func.substr(0, p.func.indexOf("(")); + var item = { + label, + detail: p.func, + documentation: p.desc, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText), + insertTextFormat: InsertTextFormat.Snippet, + kind: css_worker_CompletionItemKind.Function + }; + if (sortToEnd) { + item.sortText = "z"; + } + result.items.push(item); + } + return result; + }; + SCSSCompletion2.prototype.getCompletionsForSelector = function(ruleSet, isNested, result) { + this.createFunctionProposals(SCSSCompletion2.selectorFuncs, null, true, result); + return _super.prototype.getCompletionsForSelector.call(this, ruleSet, isNested, result); + }; + SCSSCompletion2.prototype.getTermProposals = function(entry, existingNode, result) { + var functions = SCSSCompletion2.builtInFuncs; + if (entry) { + functions = functions.filter(function(f2) { + return !f2.type || !entry.restrictions || entry.restrictions.indexOf(f2.type) !== -1; + }); + } + this.createFunctionProposals(functions, existingNode, true, result); + return _super.prototype.getTermProposals.call(this, entry, existingNode, result); + }; + SCSSCompletion2.prototype.getColorProposals = function(entry, existingNode, result) { + this.createFunctionProposals(SCSSCompletion2.colorProposals, existingNode, false, result); + return _super.prototype.getColorProposals.call(this, entry, existingNode, result); + }; + SCSSCompletion2.prototype.getCompletionsForDeclarationProperty = function(declaration, result) { + this.getCompletionForAtDirectives(result); + this.getCompletionsForSelector(null, true, result); + return _super.prototype.getCompletionsForDeclarationProperty.call(this, declaration, result); + }; + SCSSCompletion2.prototype.getCompletionsForExtendsReference = function(_extendsRef, existingNode, result) { + var symbols = this.getSymbolContext().findSymbolsAtOffset(this.offset, ReferenceType.Rule); + for (var _i = 0, symbols_1 = symbols; _i < symbols_1.length; _i++) { + var symbol = symbols_1[_i]; + var suggest = { + label: symbol.name, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), symbol.name), + kind: css_worker_CompletionItemKind.Function + }; + result.items.push(suggest); + } + return result; + }; + SCSSCompletion2.prototype.getCompletionForAtDirectives = function(result) { + var _a2; + (_a2 = result.items).push.apply(_a2, SCSSCompletion2.scssAtDirectives); + return result; + }; + SCSSCompletion2.prototype.getCompletionForTopLevel = function(result) { + this.getCompletionForAtDirectives(result); + this.getCompletionForModuleLoaders(result); + _super.prototype.getCompletionForTopLevel.call(this, result); + return result; + }; + SCSSCompletion2.prototype.getCompletionForModuleLoaders = function(result) { + var _a2; + (_a2 = result.items).push.apply(_a2, SCSSCompletion2.scssModuleLoaders); + return result; + }; + SCSSCompletion2.variableDefaults = { + "$red": "1", + "$green": "2", + "$blue": "3", + "$alpha": "1.0", + "$color": "#000000", + "$weight": "0.5", + "$hue": "0", + "$saturation": "0%", + "$lightness": "0%", + "$degrees": "0", + "$amount": "0", + "$string": '""', + "$substring": '"s"', + "$number": "0", + "$limit": "1" + }; + SCSSCompletion2.colorProposals = [ + { func: "red($color)", desc: localize11("scss.builtin.red", "Gets the red component of a color.") }, + { func: "green($color)", desc: localize11("scss.builtin.green", "Gets the green component of a color.") }, + { func: "blue($color)", desc: localize11("scss.builtin.blue", "Gets the blue component of a color.") }, + { func: "mix($color, $color, [$weight])", desc: localize11("scss.builtin.mix", "Mixes two colors together.") }, + { func: "hue($color)", desc: localize11("scss.builtin.hue", "Gets the hue component of a color.") }, + { func: "saturation($color)", desc: localize11("scss.builtin.saturation", "Gets the saturation component of a color.") }, + { func: "lightness($color)", desc: localize11("scss.builtin.lightness", "Gets the lightness component of a color.") }, + { func: "adjust-hue($color, $degrees)", desc: localize11("scss.builtin.adjust-hue", "Changes the hue of a color.") }, + { func: "lighten($color, $amount)", desc: localize11("scss.builtin.lighten", "Makes a color lighter.") }, + { func: "darken($color, $amount)", desc: localize11("scss.builtin.darken", "Makes a color darker.") }, + { func: "saturate($color, $amount)", desc: localize11("scss.builtin.saturate", "Makes a color more saturated.") }, + { func: "desaturate($color, $amount)", desc: localize11("scss.builtin.desaturate", "Makes a color less saturated.") }, + { func: "grayscale($color)", desc: localize11("scss.builtin.grayscale", "Converts a color to grayscale.") }, + { func: "complement($color)", desc: localize11("scss.builtin.complement", "Returns the complement of a color.") }, + { func: "invert($color)", desc: localize11("scss.builtin.invert", "Returns the inverse of a color.") }, + { func: "alpha($color)", desc: localize11("scss.builtin.alpha", "Gets the opacity component of a color.") }, + { func: "opacity($color)", desc: "Gets the alpha component (opacity) of a color." }, + { func: "rgba($color, $alpha)", desc: localize11("scss.builtin.rgba", "Changes the alpha component for a color.") }, + { func: "opacify($color, $amount)", desc: localize11("scss.builtin.opacify", "Makes a color more opaque.") }, + { func: "fade-in($color, $amount)", desc: localize11("scss.builtin.fade-in", "Makes a color more opaque.") }, + { func: "transparentize($color, $amount)", desc: localize11("scss.builtin.transparentize", "Makes a color more transparent.") }, + { func: "fade-out($color, $amount)", desc: localize11("scss.builtin.fade-out", "Makes a color more transparent.") }, + { func: "adjust-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])", desc: localize11("scss.builtin.adjust-color", "Increases or decreases one or more components of a color.") }, + { func: "scale-color($color, [$red], [$green], [$blue], [$saturation], [$lightness], [$alpha])", desc: localize11("scss.builtin.scale-color", "Fluidly scales one or more properties of a color.") }, + { func: "change-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])", desc: localize11("scss.builtin.change-color", "Changes one or more properties of a color.") }, + { func: "ie-hex-str($color)", desc: localize11("scss.builtin.ie-hex-str", "Converts a color into the format understood by IE filters.") } + ]; + SCSSCompletion2.selectorFuncs = [ + { func: "selector-nest($selectors\u2026)", desc: localize11("scss.builtin.selector-nest", "Nests selector beneath one another like they would be nested in the stylesheet.") }, + { func: "selector-append($selectors\u2026)", desc: localize11("scss.builtin.selector-append", "Appends selectors to one another without spaces in between.") }, + { func: "selector-extend($selector, $extendee, $extender)", desc: localize11("scss.builtin.selector-extend", "Extends $extendee with $extender within $selector.") }, + { func: "selector-replace($selector, $original, $replacement)", desc: localize11("scss.builtin.selector-replace", "Replaces $original with $replacement within $selector.") }, + { func: "selector-unify($selector1, $selector2)", desc: localize11("scss.builtin.selector-unify", "Unifies two selectors to produce a selector that matches elements matched by both.") }, + { func: "is-superselector($super, $sub)", desc: localize11("scss.builtin.is-superselector", "Returns whether $super matches all the elements $sub does, and possibly more.") }, + { func: "simple-selectors($selector)", desc: localize11("scss.builtin.simple-selectors", "Returns the simple selectors that comprise a compound selector.") }, + { func: "selector-parse($selector)", desc: localize11("scss.builtin.selector-parse", "Parses a selector into the format returned by &.") } + ]; + SCSSCompletion2.builtInFuncs = [ + { func: "unquote($string)", desc: localize11("scss.builtin.unquote", "Removes quotes from a string.") }, + { func: "quote($string)", desc: localize11("scss.builtin.quote", "Adds quotes to a string.") }, + { func: "str-length($string)", desc: localize11("scss.builtin.str-length", "Returns the number of characters in a string.") }, + { func: "str-insert($string, $insert, $index)", desc: localize11("scss.builtin.str-insert", "Inserts $insert into $string at $index.") }, + { func: "str-index($string, $substring)", desc: localize11("scss.builtin.str-index", "Returns the index of the first occurance of $substring in $string.") }, + { func: "str-slice($string, $start-at, [$end-at])", desc: localize11("scss.builtin.str-slice", "Extracts a substring from $string.") }, + { func: "to-upper-case($string)", desc: localize11("scss.builtin.to-upper-case", "Converts a string to upper case.") }, + { func: "to-lower-case($string)", desc: localize11("scss.builtin.to-lower-case", "Converts a string to lower case.") }, + { func: "percentage($number)", desc: localize11("scss.builtin.percentage", "Converts a unitless number to a percentage."), type: "percentage" }, + { func: "round($number)", desc: localize11("scss.builtin.round", "Rounds a number to the nearest whole number.") }, + { func: "ceil($number)", desc: localize11("scss.builtin.ceil", "Rounds a number up to the next whole number.") }, + { func: "floor($number)", desc: localize11("scss.builtin.floor", "Rounds a number down to the previous whole number.") }, + { func: "abs($number)", desc: localize11("scss.builtin.abs", "Returns the absolute value of a number.") }, + { func: "min($numbers)", desc: localize11("scss.builtin.min", "Finds the minimum of several numbers.") }, + { func: "max($numbers)", desc: localize11("scss.builtin.max", "Finds the maximum of several numbers.") }, + { func: "random([$limit])", desc: localize11("scss.builtin.random", "Returns a random number.") }, + { func: "length($list)", desc: localize11("scss.builtin.length", "Returns the length of a list.") }, + { func: "nth($list, $n)", desc: localize11("scss.builtin.nth", "Returns a specific item in a list.") }, + { func: "set-nth($list, $n, $value)", desc: localize11("scss.builtin.set-nth", "Replaces the nth item in a list.") }, + { func: "join($list1, $list2, [$separator])", desc: localize11("scss.builtin.join", "Joins together two lists into one.") }, + { func: "append($list1, $val, [$separator])", desc: localize11("scss.builtin.append", "Appends a single value onto the end of a list.") }, + { func: "zip($lists)", desc: localize11("scss.builtin.zip", "Combines several lists into a single multidimensional list.") }, + { func: "index($list, $value)", desc: localize11("scss.builtin.index", "Returns the position of a value within a list.") }, + { func: "list-separator(#list)", desc: localize11("scss.builtin.list-separator", "Returns the separator of a list.") }, + { func: "map-get($map, $key)", desc: localize11("scss.builtin.map-get", "Returns the value in a map associated with a given key.") }, + { func: "map-merge($map1, $map2)", desc: localize11("scss.builtin.map-merge", "Merges two maps together into a new map.") }, + { func: "map-remove($map, $keys)", desc: localize11("scss.builtin.map-remove", "Returns a new map with keys removed.") }, + { func: "map-keys($map)", desc: localize11("scss.builtin.map-keys", "Returns a list of all keys in a map.") }, + { func: "map-values($map)", desc: localize11("scss.builtin.map-values", "Returns a list of all values in a map.") }, + { func: "map-has-key($map, $key)", desc: localize11("scss.builtin.map-has-key", "Returns whether a map has a value associated with a given key.") }, + { func: "keywords($args)", desc: localize11("scss.builtin.keywords", "Returns the keywords passed to a function that takes variable arguments.") }, + { func: "feature-exists($feature)", desc: localize11("scss.builtin.feature-exists", "Returns whether a feature exists in the current Sass runtime.") }, + { func: "variable-exists($name)", desc: localize11("scss.builtin.variable-exists", "Returns whether a variable with the given name exists in the current scope.") }, + { func: "global-variable-exists($name)", desc: localize11("scss.builtin.global-variable-exists", "Returns whether a variable with the given name exists in the global scope.") }, + { func: "function-exists($name)", desc: localize11("scss.builtin.function-exists", "Returns whether a function with the given name exists.") }, + { func: "mixin-exists($name)", desc: localize11("scss.builtin.mixin-exists", "Returns whether a mixin with the given name exists.") }, + { func: "inspect($value)", desc: localize11("scss.builtin.inspect", "Returns the string representation of a value as it would be represented in Sass.") }, + { func: "type-of($value)", desc: localize11("scss.builtin.type-of", "Returns the type of a value.") }, + { func: "unit($number)", desc: localize11("scss.builtin.unit", "Returns the unit(s) associated with a number.") }, + { func: "unitless($number)", desc: localize11("scss.builtin.unitless", "Returns whether a number has units.") }, + { func: "comparable($number1, $number2)", desc: localize11("scss.builtin.comparable", "Returns whether two numbers can be added, subtracted, or compared.") }, + { func: "call($name, $args\u2026)", desc: localize11("scss.builtin.call", "Dynamically calls a Sass function.") } + ]; + SCSSCompletion2.scssAtDirectives = [ + { + label: "@extend", + documentation: localize11("scss.builtin.@extend", "Inherits the styles of another selector."), + kind: css_worker_CompletionItemKind.Keyword + }, + { + label: "@at-root", + documentation: localize11("scss.builtin.@at-root", "Causes one or more rules to be emitted at the root of the document."), + kind: css_worker_CompletionItemKind.Keyword + }, + { + label: "@debug", + documentation: localize11("scss.builtin.@debug", "Prints the value of an expression to the standard error output stream. Useful for debugging complicated Sass files."), + kind: css_worker_CompletionItemKind.Keyword + }, + { + label: "@warn", + documentation: localize11("scss.builtin.@warn", "Prints the value of an expression to the standard error output stream. Useful for libraries that need to warn users of deprecations or recovering from minor mixin usage mistakes. Warnings can be turned off with the `--quiet` command-line option or the `:quiet` Sass option."), + kind: css_worker_CompletionItemKind.Keyword + }, + { + label: "@error", + documentation: localize11("scss.builtin.@error", "Throws the value of an expression as a fatal error with stack trace. Useful for validating arguments to mixins and functions."), + kind: css_worker_CompletionItemKind.Keyword + }, + { + label: "@if", + documentation: localize11("scss.builtin.@if", "Includes the body if the expression does not evaluate to `false` or `null`."), + insertText: "@if ${1:expr} {\n $0\n}", + insertTextFormat: InsertTextFormat.Snippet, + kind: css_worker_CompletionItemKind.Keyword + }, + { + label: "@for", + documentation: localize11("scss.builtin.@for", "For loop that repeatedly outputs a set of styles for each `$var` in the `from/through` or `from/to` clause."), + insertText: "@for \\$${1:var} from ${2:start} ${3|to,through|} ${4:end} {\n $0\n}", + insertTextFormat: InsertTextFormat.Snippet, + kind: css_worker_CompletionItemKind.Keyword + }, + { + label: "@each", + documentation: localize11("scss.builtin.@each", "Each loop that sets `$var` to each item in the list or map, then outputs the styles it contains using that value of `$var`."), + insertText: "@each \\$${1:var} in ${2:list} {\n $0\n}", + insertTextFormat: InsertTextFormat.Snippet, + kind: css_worker_CompletionItemKind.Keyword + }, + { + label: "@while", + documentation: localize11("scss.builtin.@while", "While loop that takes an expression and repeatedly outputs the nested styles until the statement evaluates to `false`."), + insertText: "@while ${1:condition} {\n $0\n}", + insertTextFormat: InsertTextFormat.Snippet, + kind: css_worker_CompletionItemKind.Keyword + }, + { + label: "@mixin", + documentation: localize11("scss.builtin.@mixin", "Defines styles that can be re-used throughout the stylesheet with `@include`."), + insertText: "@mixin ${1:name} {\n $0\n}", + insertTextFormat: InsertTextFormat.Snippet, + kind: css_worker_CompletionItemKind.Keyword + }, + { + label: "@include", + documentation: localize11("scss.builtin.@include", "Includes the styles defined by another mixin into the current rule."), + kind: css_worker_CompletionItemKind.Keyword + }, + { + label: "@function", + documentation: localize11("scss.builtin.@function", "Defines complex operations that can be re-used throughout stylesheets."), + kind: css_worker_CompletionItemKind.Keyword + } + ]; + SCSSCompletion2.scssModuleLoaders = [ + { + label: "@use", + documentation: localize11("scss.builtin.@use", "Loads mixins, functions, and variables from other Sass stylesheets as 'modules', and combines CSS from multiple stylesheets together."), + references: [{ name: "Sass documentation", url: "https://sass-lang.com/documentation/at-rules/use" }], + insertText: "@use $0;", + insertTextFormat: InsertTextFormat.Snippet, + kind: css_worker_CompletionItemKind.Keyword + }, + { + label: "@forward", + documentation: localize11("scss.builtin.@forward", "Loads a Sass stylesheet and makes its mixins, functions, and variables available when this stylesheet is loaded with the @use rule."), + references: [{ name: "Sass documentation", url: "https://sass-lang.com/documentation/at-rules/forward" }], + insertText: "@forward $0;", + insertTextFormat: InsertTextFormat.Snippet, + kind: css_worker_CompletionItemKind.Keyword + } + ]; + SCSSCompletion2.scssModuleBuiltIns = [ + { + label: "sass:math", + documentation: localize11("scss.builtin.sass:math", "Provides functions that operate on numbers."), + references: [{ name: "Sass documentation", url: "https://sass-lang.com/documentation/modules/math" }] + }, + { + label: "sass:string", + documentation: localize11("scss.builtin.sass:string", "Makes it easy to combine, search, or split apart strings."), + references: [{ name: "Sass documentation", url: "https://sass-lang.com/documentation/modules/string" }] + }, + { + label: "sass:color", + documentation: localize11("scss.builtin.sass:color", "Generates new colors based on existing ones, making it easy to build color themes."), + references: [{ name: "Sass documentation", url: "https://sass-lang.com/documentation/modules/color" }] + }, + { + label: "sass:list", + documentation: localize11("scss.builtin.sass:list", "Lets you access and modify values in lists."), + references: [{ name: "Sass documentation", url: "https://sass-lang.com/documentation/modules/list" }] + }, + { + label: "sass:map", + documentation: localize11("scss.builtin.sass:map", "Makes it possible to look up the value associated with a key in a map, and much more."), + references: [{ name: "Sass documentation", url: "https://sass-lang.com/documentation/modules/map" }] + }, + { + label: "sass:selector", + documentation: localize11("scss.builtin.sass:selector", "Provides access to Sass\u2019s powerful selector engine."), + references: [{ name: "Sass documentation", url: "https://sass-lang.com/documentation/modules/selector" }] + }, + { + label: "sass:meta", + documentation: localize11("scss.builtin.sass:meta", "Exposes the details of Sass\u2019s inner workings."), + references: [{ name: "Sass documentation", url: "https://sass-lang.com/documentation/modules/meta" }] + } + ]; + return SCSSCompletion2; +}(CSSCompletion); +function addReferencesToDocumentation(items) { + items.forEach(function(i) { + if (i.documentation && i.references && i.references.length > 0) { + var markdownDoc = typeof i.documentation === "string" ? { kind: "markdown", value: i.documentation } : { kind: "markdown", value: i.documentation.value }; + markdownDoc.value += "\n\n"; + markdownDoc.value += i.references.map(function(r) { + return "[".concat(r.name, "](").concat(r.url, ")"); + }).join(" | "); + i.documentation = markdownDoc; + } + }); +} + +// node_modules/vscode-css-languageservice/lib/esm/parser/lessScanner.js +var __extends7 = function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +}(); +var _FSL3 = "/".charCodeAt(0); +var _NWL3 = "\n".charCodeAt(0); +var _CAR3 = "\r".charCodeAt(0); +var _LFD3 = "\f".charCodeAt(0); +var _TIC = "`".charCodeAt(0); +var _DOT3 = ".".charCodeAt(0); +var customTokenValue2 = TokenType.CustomToken; +var Ellipsis2 = customTokenValue2++; +var LESSScanner = function(_super) { + __extends7(LESSScanner2, _super); + function LESSScanner2() { + return _super !== null && _super.apply(this, arguments) || this; + } + LESSScanner2.prototype.scanNext = function(offset) { + var tokenType = this.escapedJavaScript(); + if (tokenType !== null) { + return this.finishToken(offset, tokenType); + } + if (this.stream.advanceIfChars([_DOT3, _DOT3, _DOT3])) { + return this.finishToken(offset, Ellipsis2); + } + return _super.prototype.scanNext.call(this, offset); + }; + LESSScanner2.prototype.comment = function() { + if (_super.prototype.comment.call(this)) { + return true; + } + if (!this.inURL && this.stream.advanceIfChars([_FSL3, _FSL3])) { + this.stream.advanceWhileChar(function(ch) { + switch (ch) { + case _NWL3: + case _CAR3: + case _LFD3: + return false; + default: + return true; + } + }); + return true; + } else { + return false; + } + }; + LESSScanner2.prototype.escapedJavaScript = function() { + var ch = this.stream.peekChar(); + if (ch === _TIC) { + this.stream.advance(1); + this.stream.advanceWhileChar(function(ch2) { + return ch2 !== _TIC; + }); + return this.stream.advanceIfChar(_TIC) ? TokenType.EscapedJavaScript : TokenType.BadEscapedJavaScript; + } + return null; + }; + return LESSScanner2; +}(Scanner); + +// node_modules/vscode-css-languageservice/lib/esm/parser/lessParser.js +var __extends8 = function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +}(); +var LESSParser = function(_super) { + __extends8(LESSParser2, _super); + function LESSParser2() { + return _super.call(this, new LESSScanner()) || this; + } + LESSParser2.prototype._parseStylesheetStatement = function(isNested) { + if (isNested === void 0) { + isNested = false; + } + if (this.peek(TokenType.AtKeyword)) { + return this._parseVariableDeclaration() || this._parsePlugin() || _super.prototype._parseStylesheetAtStatement.call(this, isNested); + } + return this._tryParseMixinDeclaration() || this._tryParseMixinReference() || this._parseFunction() || this._parseRuleset(true); + }; + LESSParser2.prototype._parseImport = function() { + if (!this.peekKeyword("@import") && !this.peekKeyword("@import-once")) { + return null; + } + var node = this.create(Import); + this.consumeToken(); + if (this.accept(TokenType.ParenthesisL)) { + if (!this.accept(TokenType.Ident)) { + return this.finish(node, ParseError.IdentifierExpected, [TokenType.SemiColon]); + } + do { + if (!this.accept(TokenType.Comma)) { + break; + } + } while (this.accept(TokenType.Ident)); + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected, [TokenType.SemiColon]); + } + } + if (!node.addChild(this._parseURILiteral()) && !node.addChild(this._parseStringLiteral())) { + return this.finish(node, ParseError.URIOrStringExpected, [TokenType.SemiColon]); + } + if (!this.peek(TokenType.SemiColon) && !this.peek(TokenType.EOF)) { + node.setMedialist(this._parseMediaQueryList()); + } + return this.finish(node); + }; + LESSParser2.prototype._parsePlugin = function() { + if (!this.peekKeyword("@plugin")) { + return null; + } + var node = this.createNode(NodeType.Plugin); + this.consumeToken(); + if (!node.addChild(this._parseStringLiteral())) { + return this.finish(node, ParseError.StringLiteralExpected); + } + if (!this.accept(TokenType.SemiColon)) { + return this.finish(node, ParseError.SemiColonExpected); + } + return this.finish(node); + }; + LESSParser2.prototype._parseMediaQuery = function() { + var node = _super.prototype._parseMediaQuery.call(this); + if (!node) { + var node_1 = this.create(MediaQuery); + if (node_1.addChild(this._parseVariable())) { + return this.finish(node_1); + } + return null; + } + return node; + }; + LESSParser2.prototype._parseMediaDeclaration = function(isNested) { + if (isNested === void 0) { + isNested = false; + } + return this._tryParseRuleset(isNested) || this._tryToParseDeclaration() || this._tryParseMixinDeclaration() || this._tryParseMixinReference() || this._parseDetachedRuleSetMixin() || this._parseStylesheetStatement(isNested); + }; + LESSParser2.prototype._parseMediaFeatureName = function() { + return this._parseIdent() || this._parseVariable(); + }; + LESSParser2.prototype._parseVariableDeclaration = function(panic) { + if (panic === void 0) { + panic = []; + } + var node = this.create(VariableDeclaration); + var mark = this.mark(); + if (!node.setVariable(this._parseVariable(true))) { + return null; + } + if (this.accept(TokenType.Colon)) { + if (this.prevToken) { + node.colonPosition = this.prevToken.offset; + } + if (node.setValue(this._parseDetachedRuleSet())) { + node.needsSemicolon = false; + } else if (!node.setValue(this._parseExpr())) { + return this.finish(node, ParseError.VariableValueExpected, [], panic); + } + node.addChild(this._parsePrio()); + } else { + this.restoreAtMark(mark); + return null; + } + if (this.peek(TokenType.SemiColon)) { + node.semicolonPosition = this.token.offset; + } + return this.finish(node); + }; + LESSParser2.prototype._parseDetachedRuleSet = function() { + var mark = this.mark(); + if (this.peekDelim("#") || this.peekDelim(".")) { + this.consumeToken(); + if (!this.hasWhitespace() && this.accept(TokenType.ParenthesisL)) { + var node = this.create(MixinDeclaration); + if (node.getParameters().addChild(this._parseMixinParameter())) { + while (this.accept(TokenType.Comma) || this.accept(TokenType.SemiColon)) { + if (this.peek(TokenType.ParenthesisR)) { + break; + } + if (!node.getParameters().addChild(this._parseMixinParameter())) { + this.markError(node, ParseError.IdentifierExpected, [], [TokenType.ParenthesisR]); + } + } + } + if (!this.accept(TokenType.ParenthesisR)) { + this.restoreAtMark(mark); + return null; + } + } else { + this.restoreAtMark(mark); + return null; + } + } + if (!this.peek(TokenType.CurlyL)) { + return null; + } + var content = this.create(BodyDeclaration); + this._parseBody(content, this._parseDetachedRuleSetBody.bind(this)); + return this.finish(content); + }; + LESSParser2.prototype._parseDetachedRuleSetBody = function() { + return this._tryParseKeyframeSelector() || this._parseRuleSetDeclaration(); + }; + LESSParser2.prototype._addLookupChildren = function(node) { + if (!node.addChild(this._parseLookupValue())) { + return false; + } + var expectsValue = false; + while (true) { + if (this.peek(TokenType.BracketL)) { + expectsValue = true; + } + if (!node.addChild(this._parseLookupValue())) { + break; + } + expectsValue = false; + } + return !expectsValue; + }; + LESSParser2.prototype._parseLookupValue = function() { + var node = this.create(css_worker_Node); + var mark = this.mark(); + if (!this.accept(TokenType.BracketL)) { + this.restoreAtMark(mark); + return null; + } + if ((node.addChild(this._parseVariable(false, true)) || node.addChild(this._parsePropertyIdentifier())) && this.accept(TokenType.BracketR) || this.accept(TokenType.BracketR)) { + return node; + } + this.restoreAtMark(mark); + return null; + }; + LESSParser2.prototype._parseVariable = function(declaration, insideLookup) { + if (declaration === void 0) { + declaration = false; + } + if (insideLookup === void 0) { + insideLookup = false; + } + var isPropertyReference = !declaration && this.peekDelim("$"); + if (!this.peekDelim("@") && !isPropertyReference && !this.peek(TokenType.AtKeyword)) { + return null; + } + var node = this.create(Variable); + var mark = this.mark(); + while (this.acceptDelim("@") || !declaration && this.acceptDelim("$")) { + if (this.hasWhitespace()) { + this.restoreAtMark(mark); + return null; + } + } + if (!this.accept(TokenType.AtKeyword) && !this.accept(TokenType.Ident)) { + this.restoreAtMark(mark); + return null; + } + if (!insideLookup && this.peek(TokenType.BracketL)) { + if (!this._addLookupChildren(node)) { + this.restoreAtMark(mark); + return null; + } + } + return node; + }; + LESSParser2.prototype._parseTermExpression = function() { + return this._parseVariable() || this._parseEscaped() || _super.prototype._parseTermExpression.call(this) || this._tryParseMixinReference(false); + }; + LESSParser2.prototype._parseEscaped = function() { + if (this.peek(TokenType.EscapedJavaScript) || this.peek(TokenType.BadEscapedJavaScript)) { + var node = this.createNode(NodeType.EscapedValue); + this.consumeToken(); + return this.finish(node); + } + if (this.peekDelim("~")) { + var node = this.createNode(NodeType.EscapedValue); + this.consumeToken(); + if (this.accept(TokenType.String) || this.accept(TokenType.EscapedJavaScript)) { + return this.finish(node); + } else { + return this.finish(node, ParseError.TermExpected); + } + } + return null; + }; + LESSParser2.prototype._parseOperator = function() { + var node = this._parseGuardOperator(); + if (node) { + return node; + } else { + return _super.prototype._parseOperator.call(this); + } + }; + LESSParser2.prototype._parseGuardOperator = function() { + if (this.peekDelim(">")) { + var node = this.createNode(NodeType.Operator); + this.consumeToken(); + this.acceptDelim("="); + return node; + } else if (this.peekDelim("=")) { + var node = this.createNode(NodeType.Operator); + this.consumeToken(); + this.acceptDelim("<"); + return node; + } else if (this.peekDelim("<")) { + var node = this.createNode(NodeType.Operator); + this.consumeToken(); + this.acceptDelim("="); + return node; + } + return null; + }; + LESSParser2.prototype._parseRuleSetDeclaration = function() { + if (this.peek(TokenType.AtKeyword)) { + return this._parseKeyframe() || this._parseMedia(true) || this._parseImport() || this._parseSupports(true) || this._parseDetachedRuleSetMixin() || this._parseVariableDeclaration() || _super.prototype._parseRuleSetDeclarationAtStatement.call(this); + } + return this._tryParseMixinDeclaration() || this._tryParseRuleset(true) || this._tryParseMixinReference() || this._parseFunction() || this._parseExtend() || _super.prototype._parseRuleSetDeclaration.call(this); + }; + LESSParser2.prototype._parseKeyframeIdent = function() { + return this._parseIdent([ReferenceType.Keyframe]) || this._parseVariable(); + }; + LESSParser2.prototype._parseKeyframeSelector = function() { + return this._parseDetachedRuleSetMixin() || _super.prototype._parseKeyframeSelector.call(this); + }; + LESSParser2.prototype._parseSimpleSelectorBody = function() { + return this._parseSelectorCombinator() || _super.prototype._parseSimpleSelectorBody.call(this); + }; + LESSParser2.prototype._parseSelector = function(isNested) { + var node = this.create(Selector); + var hasContent = false; + if (isNested) { + hasContent = node.addChild(this._parseCombinator()); + } + while (node.addChild(this._parseSimpleSelector())) { + hasContent = true; + var mark = this.mark(); + if (node.addChild(this._parseGuard()) && this.peek(TokenType.CurlyL)) { + break; + } + this.restoreAtMark(mark); + node.addChild(this._parseCombinator()); + } + return hasContent ? this.finish(node) : null; + }; + LESSParser2.prototype._parseSelectorCombinator = function() { + if (this.peekDelim("&")) { + var node = this.createNode(NodeType.SelectorCombinator); + this.consumeToken(); + while (!this.hasWhitespace() && (this.acceptDelim("-") || this.accept(TokenType.Num) || this.accept(TokenType.Dimension) || node.addChild(this._parseIdent()) || this.acceptDelim("&"))) { + } + return this.finish(node); + } + return null; + }; + LESSParser2.prototype._parseSelectorIdent = function() { + if (!this.peekInterpolatedIdent()) { + return null; + } + var node = this.createNode(NodeType.SelectorInterpolation); + var hasContent = this._acceptInterpolatedIdent(node); + return hasContent ? this.finish(node) : null; + }; + LESSParser2.prototype._parsePropertyIdentifier = function(inLookup) { + if (inLookup === void 0) { + inLookup = false; + } + var propertyRegex = /^[\w-]+/; + if (!this.peekInterpolatedIdent() && !this.peekRegExp(this.token.type, propertyRegex)) { + return null; + } + var mark = this.mark(); + var node = this.create(Identifier); + node.isCustomProperty = this.acceptDelim("-") && this.acceptDelim("-"); + var childAdded = false; + if (!inLookup) { + if (node.isCustomProperty) { + childAdded = this._acceptInterpolatedIdent(node); + } else { + childAdded = this._acceptInterpolatedIdent(node, propertyRegex); + } + } else { + if (node.isCustomProperty) { + childAdded = node.addChild(this._parseIdent()); + } else { + childAdded = node.addChild(this._parseRegexp(propertyRegex)); + } + } + if (!childAdded) { + this.restoreAtMark(mark); + return null; + } + if (!inLookup && !this.hasWhitespace()) { + this.acceptDelim("+"); + if (!this.hasWhitespace()) { + this.acceptIdent("_"); + } + } + return this.finish(node); + }; + LESSParser2.prototype.peekInterpolatedIdent = function() { + return this.peek(TokenType.Ident) || this.peekDelim("@") || this.peekDelim("$") || this.peekDelim("-"); + }; + LESSParser2.prototype._acceptInterpolatedIdent = function(node, identRegex) { + var _this = this; + var hasContent = false; + var indentInterpolation = function() { + var pos = _this.mark(); + if (_this.acceptDelim("-")) { + if (!_this.hasWhitespace()) { + _this.acceptDelim("-"); + } + if (_this.hasWhitespace()) { + _this.restoreAtMark(pos); + return null; + } + } + return _this._parseInterpolation(); + }; + var accept = identRegex ? function() { + return _this.acceptRegexp(identRegex); + } : function() { + return _this.accept(TokenType.Ident); + }; + while (accept() || node.addChild(this._parseInterpolation() || this.try(indentInterpolation))) { + hasContent = true; + if (this.hasWhitespace()) { + break; + } + } + return hasContent; + }; + LESSParser2.prototype._parseInterpolation = function() { + var mark = this.mark(); + if (this.peekDelim("@") || this.peekDelim("$")) { + var node = this.createNode(NodeType.Interpolation); + this.consumeToken(); + if (this.hasWhitespace() || !this.accept(TokenType.CurlyL)) { + this.restoreAtMark(mark); + return null; + } + if (!node.addChild(this._parseIdent())) { + return this.finish(node, ParseError.IdentifierExpected); + } + if (!this.accept(TokenType.CurlyR)) { + return this.finish(node, ParseError.RightCurlyExpected); + } + return this.finish(node); + } + return null; + }; + LESSParser2.prototype._tryParseMixinDeclaration = function() { + var mark = this.mark(); + var node = this.create(MixinDeclaration); + if (!node.setIdentifier(this._parseMixinDeclarationIdentifier()) || !this.accept(TokenType.ParenthesisL)) { + this.restoreAtMark(mark); + return null; + } + if (node.getParameters().addChild(this._parseMixinParameter())) { + while (this.accept(TokenType.Comma) || this.accept(TokenType.SemiColon)) { + if (this.peek(TokenType.ParenthesisR)) { + break; + } + if (!node.getParameters().addChild(this._parseMixinParameter())) { + this.markError(node, ParseError.IdentifierExpected, [], [TokenType.ParenthesisR]); + } + } + } + if (!this.accept(TokenType.ParenthesisR)) { + this.restoreAtMark(mark); + return null; + } + node.setGuard(this._parseGuard()); + if (!this.peek(TokenType.CurlyL)) { + this.restoreAtMark(mark); + return null; + } + return this._parseBody(node, this._parseMixInBodyDeclaration.bind(this)); + }; + LESSParser2.prototype._parseMixInBodyDeclaration = function() { + return this._parseFontFace() || this._parseRuleSetDeclaration(); + }; + LESSParser2.prototype._parseMixinDeclarationIdentifier = function() { + var identifier; + if (this.peekDelim("#") || this.peekDelim(".")) { + identifier = this.create(Identifier); + this.consumeToken(); + if (this.hasWhitespace() || !identifier.addChild(this._parseIdent())) { + return null; + } + } else if (this.peek(TokenType.Hash)) { + identifier = this.create(Identifier); + this.consumeToken(); + } else { + return null; + } + identifier.referenceTypes = [ReferenceType.Mixin]; + return this.finish(identifier); + }; + LESSParser2.prototype._parsePseudo = function() { + if (!this.peek(TokenType.Colon)) { + return null; + } + var mark = this.mark(); + var node = this.create(ExtendsReference); + this.consumeToken(); + if (this.acceptIdent("extend")) { + return this._completeExtends(node); + } + this.restoreAtMark(mark); + return _super.prototype._parsePseudo.call(this); + }; + LESSParser2.prototype._parseExtend = function() { + if (!this.peekDelim("&")) { + return null; + } + var mark = this.mark(); + var node = this.create(ExtendsReference); + this.consumeToken(); + if (this.hasWhitespace() || !this.accept(TokenType.Colon) || !this.acceptIdent("extend")) { + this.restoreAtMark(mark); + return null; + } + return this._completeExtends(node); + }; + LESSParser2.prototype._completeExtends = function(node) { + if (!this.accept(TokenType.ParenthesisL)) { + return this.finish(node, ParseError.LeftParenthesisExpected); + } + var selectors = node.getSelectors(); + if (!selectors.addChild(this._parseSelector(true))) { + return this.finish(node, ParseError.SelectorExpected); + } + while (this.accept(TokenType.Comma)) { + if (!selectors.addChild(this._parseSelector(true))) { + return this.finish(node, ParseError.SelectorExpected); + } + } + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + return this.finish(node); + }; + LESSParser2.prototype._parseDetachedRuleSetMixin = function() { + if (!this.peek(TokenType.AtKeyword)) { + return null; + } + var mark = this.mark(); + var node = this.create(MixinReference); + if (node.addChild(this._parseVariable(true)) && (this.hasWhitespace() || !this.accept(TokenType.ParenthesisL))) { + this.restoreAtMark(mark); + return null; + } + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + return this.finish(node); + }; + LESSParser2.prototype._tryParseMixinReference = function(atRoot) { + if (atRoot === void 0) { + atRoot = true; + } + var mark = this.mark(); + var node = this.create(MixinReference); + var identifier = this._parseMixinDeclarationIdentifier(); + while (identifier) { + this.acceptDelim(">"); + var nextId = this._parseMixinDeclarationIdentifier(); + if (nextId) { + node.getNamespaces().addChild(identifier); + identifier = nextId; + } else { + break; + } + } + if (!node.setIdentifier(identifier)) { + this.restoreAtMark(mark); + return null; + } + var hasArguments = false; + if (this.accept(TokenType.ParenthesisL)) { + hasArguments = true; + if (node.getArguments().addChild(this._parseMixinArgument())) { + while (this.accept(TokenType.Comma) || this.accept(TokenType.SemiColon)) { + if (this.peek(TokenType.ParenthesisR)) { + break; + } + if (!node.getArguments().addChild(this._parseMixinArgument())) { + return this.finish(node, ParseError.ExpressionExpected); + } + } + } + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + identifier.referenceTypes = [ReferenceType.Mixin]; + } else { + identifier.referenceTypes = [ReferenceType.Mixin, ReferenceType.Rule]; + } + if (this.peek(TokenType.BracketL)) { + if (!atRoot) { + this._addLookupChildren(node); + } + } else { + node.addChild(this._parsePrio()); + } + if (!hasArguments && !this.peek(TokenType.SemiColon) && !this.peek(TokenType.CurlyR) && !this.peek(TokenType.EOF)) { + this.restoreAtMark(mark); + return null; + } + return this.finish(node); + }; + LESSParser2.prototype._parseMixinArgument = function() { + var node = this.create(FunctionArgument); + var pos = this.mark(); + var argument = this._parseVariable(); + if (argument) { + if (!this.accept(TokenType.Colon)) { + this.restoreAtMark(pos); + } else { + node.setIdentifier(argument); + } + } + if (node.setValue(this._parseDetachedRuleSet() || this._parseExpr(true))) { + return this.finish(node); + } + this.restoreAtMark(pos); + return null; + }; + LESSParser2.prototype._parseMixinParameter = function() { + var node = this.create(FunctionParameter); + if (this.peekKeyword("@rest")) { + var restNode = this.create(css_worker_Node); + this.consumeToken(); + if (!this.accept(Ellipsis2)) { + return this.finish(node, ParseError.DotExpected, [], [TokenType.Comma, TokenType.ParenthesisR]); + } + node.setIdentifier(this.finish(restNode)); + return this.finish(node); + } + if (this.peek(Ellipsis2)) { + var varargsNode = this.create(css_worker_Node); + this.consumeToken(); + node.setIdentifier(this.finish(varargsNode)); + return this.finish(node); + } + var hasContent = false; + if (node.setIdentifier(this._parseVariable())) { + this.accept(TokenType.Colon); + hasContent = true; + } + if (!node.setDefaultValue(this._parseDetachedRuleSet() || this._parseExpr(true)) && !hasContent) { + return null; + } + return this.finish(node); + }; + LESSParser2.prototype._parseGuard = function() { + if (!this.peekIdent("when")) { + return null; + } + var node = this.create(LessGuard); + this.consumeToken(); + node.isNegated = this.acceptIdent("not"); + if (!node.getConditions().addChild(this._parseGuardCondition())) { + return this.finish(node, ParseError.ConditionExpected); + } + while (this.acceptIdent("and") || this.accept(TokenType.Comma)) { + if (!node.getConditions().addChild(this._parseGuardCondition())) { + return this.finish(node, ParseError.ConditionExpected); + } + } + return this.finish(node); + }; + LESSParser2.prototype._parseGuardCondition = function() { + if (!this.peek(TokenType.ParenthesisL)) { + return null; + } + var node = this.create(GuardCondition); + this.consumeToken(); + if (!node.addChild(this._parseExpr())) { + } + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + return this.finish(node); + }; + LESSParser2.prototype._parseFunction = function() { + var pos = this.mark(); + var node = this.create(Function); + if (!node.setIdentifier(this._parseFunctionIdentifier())) { + return null; + } + if (this.hasWhitespace() || !this.accept(TokenType.ParenthesisL)) { + this.restoreAtMark(pos); + return null; + } + if (node.getArguments().addChild(this._parseMixinArgument())) { + while (this.accept(TokenType.Comma) || this.accept(TokenType.SemiColon)) { + if (this.peek(TokenType.ParenthesisR)) { + break; + } + if (!node.getArguments().addChild(this._parseMixinArgument())) { + return this.finish(node, ParseError.ExpressionExpected); + } + } + } + if (!this.accept(TokenType.ParenthesisR)) { + return this.finish(node, ParseError.RightParenthesisExpected); + } + return this.finish(node); + }; + LESSParser2.prototype._parseFunctionIdentifier = function() { + if (this.peekDelim("%")) { + var node = this.create(Identifier); + node.referenceTypes = [ReferenceType.Function]; + this.consumeToken(); + return this.finish(node); + } + return _super.prototype._parseFunctionIdentifier.call(this); + }; + LESSParser2.prototype._parseURLArgument = function() { + var pos = this.mark(); + var node = _super.prototype._parseURLArgument.call(this); + if (!node || !this.peek(TokenType.ParenthesisR)) { + this.restoreAtMark(pos); + var node_2 = this.create(css_worker_Node); + node_2.addChild(this._parseBinaryExpr()); + return this.finish(node_2); + } + return node; + }; + return LESSParser2; +}(Parser); + +// node_modules/vscode-css-languageservice/lib/esm/services/lessCompletion.js +var __extends9 = function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +}(); +var localize12 = loadMessageBundle(); +var LESSCompletion = function(_super) { + __extends9(LESSCompletion2, _super); + function LESSCompletion2(lsOptions, cssDataManager) { + return _super.call(this, "@", lsOptions, cssDataManager) || this; + } + LESSCompletion2.prototype.createFunctionProposals = function(proposals, existingNode, sortToEnd, result) { + for (var _i = 0, proposals_1 = proposals; _i < proposals_1.length; _i++) { + var p = proposals_1[_i]; + var item = { + label: p.name, + detail: p.example, + documentation: p.description, + textEdit: TextEdit.replace(this.getCompletionRange(existingNode), p.name + "($0)"), + insertTextFormat: InsertTextFormat.Snippet, + kind: css_worker_CompletionItemKind.Function + }; + if (sortToEnd) { + item.sortText = "z"; + } + result.items.push(item); + } + return result; + }; + LESSCompletion2.prototype.getTermProposals = function(entry, existingNode, result) { + var functions = LESSCompletion2.builtInProposals; + if (entry) { + functions = functions.filter(function(f2) { + return !f2.type || !entry.restrictions || entry.restrictions.indexOf(f2.type) !== -1; + }); + } + this.createFunctionProposals(functions, existingNode, true, result); + return _super.prototype.getTermProposals.call(this, entry, existingNode, result); + }; + LESSCompletion2.prototype.getColorProposals = function(entry, existingNode, result) { + this.createFunctionProposals(LESSCompletion2.colorProposals, existingNode, false, result); + return _super.prototype.getColorProposals.call(this, entry, existingNode, result); + }; + LESSCompletion2.prototype.getCompletionsForDeclarationProperty = function(declaration, result) { + this.getCompletionsForSelector(null, true, result); + return _super.prototype.getCompletionsForDeclarationProperty.call(this, declaration, result); + }; + LESSCompletion2.builtInProposals = [ + { + "name": "if", + "example": "if(condition, trueValue [, falseValue]);", + "description": localize12("less.builtin.if", "returns one of two values depending on a condition.") + }, + { + "name": "boolean", + "example": "boolean(condition);", + "description": localize12("less.builtin.boolean", '"store" a boolean test for later evaluation in a guard or if().') + }, + { + "name": "length", + "example": "length(@list);", + "description": localize12("less.builtin.length", "returns the number of elements in a value list") + }, + { + "name": "extract", + "example": "extract(@list, index);", + "description": localize12("less.builtin.extract", "returns a value at the specified position in the list") + }, + { + "name": "range", + "example": "range([start, ] end [, step]);", + "description": localize12("less.builtin.range", "generate a list spanning a range of values") + }, + { + "name": "each", + "example": "each(@list, ruleset);", + "description": localize12("less.builtin.each", "bind the evaluation of a ruleset to each member of a list.") + }, + { + "name": "escape", + "example": "escape(@string);", + "description": localize12("less.builtin.escape", "URL encodes a string") + }, + { + "name": "e", + "example": "e(@string);", + "description": localize12("less.builtin.e", "escape string content") + }, + { + "name": "replace", + "example": "replace(@string, @pattern, @replacement[, @flags]);", + "description": localize12("less.builtin.replace", "string replace") + }, + { + "name": "unit", + "example": "unit(@dimension, [@unit: '']);", + "description": localize12("less.builtin.unit", "remove or change the unit of a dimension") + }, + { + "name": "color", + "example": "color(@string);", + "description": localize12("less.builtin.color", "parses a string to a color"), + "type": "color" + }, + { + "name": "convert", + "example": "convert(@value, unit);", + "description": localize12("less.builtin.convert", "converts numbers from one type into another") + }, + { + "name": "data-uri", + "example": "data-uri([mimetype,] url);", + "description": localize12("less.builtin.data-uri", "inlines a resource and falls back to `url()`"), + "type": "url" + }, + { + "name": "abs", + "description": localize12("less.builtin.abs", "absolute value of a number"), + "example": "abs(number);" + }, + { + "name": "acos", + "description": localize12("less.builtin.acos", "arccosine - inverse of cosine function"), + "example": "acos(number);" + }, + { + "name": "asin", + "description": localize12("less.builtin.asin", "arcsine - inverse of sine function"), + "example": "asin(number);" + }, + { + "name": "ceil", + "example": "ceil(@number);", + "description": localize12("less.builtin.ceil", "rounds up to an integer") + }, + { + "name": "cos", + "description": localize12("less.builtin.cos", "cosine function"), + "example": "cos(number);" + }, + { + "name": "floor", + "description": localize12("less.builtin.floor", "rounds down to an integer"), + "example": "floor(@number);" + }, + { + "name": "percentage", + "description": localize12("less.builtin.percentage", "converts to a %, e.g. 0.5 > 50%"), + "example": "percentage(@number);", + "type": "percentage" + }, + { + "name": "round", + "description": localize12("less.builtin.round", "rounds a number to a number of places"), + "example": "round(number, [places: 0]);" + }, + { + "name": "sqrt", + "description": localize12("less.builtin.sqrt", "calculates square root of a number"), + "example": "sqrt(number);" + }, + { + "name": "sin", + "description": localize12("less.builtin.sin", "sine function"), + "example": "sin(number);" + }, + { + "name": "tan", + "description": localize12("less.builtin.tan", "tangent function"), + "example": "tan(number);" + }, + { + "name": "atan", + "description": localize12("less.builtin.atan", "arctangent - inverse of tangent function"), + "example": "atan(number);" + }, + { + "name": "pi", + "description": localize12("less.builtin.pi", "returns pi"), + "example": "pi();" + }, + { + "name": "pow", + "description": localize12("less.builtin.pow", "first argument raised to the power of the second argument"), + "example": "pow(@base, @exponent);" + }, + { + "name": "mod", + "description": localize12("less.builtin.mod", "first argument modulus second argument"), + "example": "mod(number, number);" + }, + { + "name": "min", + "description": localize12("less.builtin.min", "returns the lowest of one or more values"), + "example": "min(@x, @y);" + }, + { + "name": "max", + "description": localize12("less.builtin.max", "returns the lowest of one or more values"), + "example": "max(@x, @y);" + } + ]; + LESSCompletion2.colorProposals = [ + { + "name": "argb", + "example": "argb(@color);", + "description": localize12("less.builtin.argb", "creates a #AARRGGBB") + }, + { + "name": "hsl", + "example": "hsl(@hue, @saturation, @lightness);", + "description": localize12("less.builtin.hsl", "creates a color") + }, + { + "name": "hsla", + "example": "hsla(@hue, @saturation, @lightness, @alpha);", + "description": localize12("less.builtin.hsla", "creates a color") + }, + { + "name": "hsv", + "example": "hsv(@hue, @saturation, @value);", + "description": localize12("less.builtin.hsv", "creates a color") + }, + { + "name": "hsva", + "example": "hsva(@hue, @saturation, @value, @alpha);", + "description": localize12("less.builtin.hsva", "creates a color") + }, + { + "name": "hue", + "example": "hue(@color);", + "description": localize12("less.builtin.hue", "returns the `hue` channel of `@color` in the HSL space") + }, + { + "name": "saturation", + "example": "saturation(@color);", + "description": localize12("less.builtin.saturation", "returns the `saturation` channel of `@color` in the HSL space") + }, + { + "name": "lightness", + "example": "lightness(@color);", + "description": localize12("less.builtin.lightness", "returns the `lightness` channel of `@color` in the HSL space") + }, + { + "name": "hsvhue", + "example": "hsvhue(@color);", + "description": localize12("less.builtin.hsvhue", "returns the `hue` channel of `@color` in the HSV space") + }, + { + "name": "hsvsaturation", + "example": "hsvsaturation(@color);", + "description": localize12("less.builtin.hsvsaturation", "returns the `saturation` channel of `@color` in the HSV space") + }, + { + "name": "hsvvalue", + "example": "hsvvalue(@color);", + "description": localize12("less.builtin.hsvvalue", "returns the `value` channel of `@color` in the HSV space") + }, + { + "name": "red", + "example": "red(@color);", + "description": localize12("less.builtin.red", "returns the `red` channel of `@color`") + }, + { + "name": "green", + "example": "green(@color);", + "description": localize12("less.builtin.green", "returns the `green` channel of `@color`") + }, + { + "name": "blue", + "example": "blue(@color);", + "description": localize12("less.builtin.blue", "returns the `blue` channel of `@color`") + }, + { + "name": "alpha", + "example": "alpha(@color);", + "description": localize12("less.builtin.alpha", "returns the `alpha` channel of `@color`") + }, + { + "name": "luma", + "example": "luma(@color);", + "description": localize12("less.builtin.luma", "returns the `luma` value (perceptual brightness) of `@color`") + }, + { + "name": "saturate", + "example": "saturate(@color, 10%);", + "description": localize12("less.builtin.saturate", "return `@color` 10% points more saturated") + }, + { + "name": "desaturate", + "example": "desaturate(@color, 10%);", + "description": localize12("less.builtin.desaturate", "return `@color` 10% points less saturated") + }, + { + "name": "lighten", + "example": "lighten(@color, 10%);", + "description": localize12("less.builtin.lighten", "return `@color` 10% points lighter") + }, + { + "name": "darken", + "example": "darken(@color, 10%);", + "description": localize12("less.builtin.darken", "return `@color` 10% points darker") + }, + { + "name": "fadein", + "example": "fadein(@color, 10%);", + "description": localize12("less.builtin.fadein", "return `@color` 10% points less transparent") + }, + { + "name": "fadeout", + "example": "fadeout(@color, 10%);", + "description": localize12("less.builtin.fadeout", "return `@color` 10% points more transparent") + }, + { + "name": "fade", + "example": "fade(@color, 50%);", + "description": localize12("less.builtin.fade", "return `@color` with 50% transparency") + }, + { + "name": "spin", + "example": "spin(@color, 10);", + "description": localize12("less.builtin.spin", "return `@color` with a 10 degree larger in hue") + }, + { + "name": "mix", + "example": "mix(@color1, @color2, [@weight: 50%]);", + "description": localize12("less.builtin.mix", "return a mix of `@color1` and `@color2`") + }, + { + "name": "greyscale", + "example": "greyscale(@color);", + "description": localize12("less.builtin.greyscale", "returns a grey, 100% desaturated color") + }, + { + "name": "contrast", + "example": "contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]);", + "description": localize12("less.builtin.contrast", "return `@darkcolor` if `@color1 is> 43% luma` otherwise return `@lightcolor`, see notes") + }, + { + "name": "multiply", + "example": "multiply(@color1, @color2);" + }, + { + "name": "screen", + "example": "screen(@color1, @color2);" + }, + { + "name": "overlay", + "example": "overlay(@color1, @color2);" + }, + { + "name": "softlight", + "example": "softlight(@color1, @color2);" + }, + { + "name": "hardlight", + "example": "hardlight(@color1, @color2);" + }, + { + "name": "difference", + "example": "difference(@color1, @color2);" + }, + { + "name": "exclusion", + "example": "exclusion(@color1, @color2);" + }, + { + "name": "average", + "example": "average(@color1, @color2);" + }, + { + "name": "negation", + "example": "negation(@color1, @color2);" + } + ]; + return LESSCompletion2; +}(CSSCompletion); + +// node_modules/vscode-css-languageservice/lib/esm/services/cssFolding.js +function getFoldingRanges(document, context) { + var ranges = computeFoldingRanges(document); + return limitFoldingRanges(ranges, context); +} +function computeFoldingRanges(document) { + function getStartLine(t) { + return document.positionAt(t.offset).line; + } + function getEndLine(t) { + return document.positionAt(t.offset + t.len).line; + } + function getScanner() { + switch (document.languageId) { + case "scss": + return new SCSSScanner(); + case "less": + return new LESSScanner(); + default: + return new Scanner(); + } + } + function tokenToRange(t, kind) { + var startLine = getStartLine(t); + var endLine = getEndLine(t); + if (startLine !== endLine) { + return { + startLine, + endLine, + kind + }; + } else { + return null; + } + } + var ranges = []; + var delimiterStack = []; + var scanner = getScanner(); + scanner.ignoreComment = false; + scanner.setSource(document.getText()); + var token = scanner.scan(); + var prevToken = null; + var _loop_1 = function() { + switch (token.type) { + case TokenType.CurlyL: + case InterpolationFunction: { + delimiterStack.push({ line: getStartLine(token), type: "brace", isStart: true }); + break; + } + case TokenType.CurlyR: { + if (delimiterStack.length !== 0) { + var prevDelimiter = popPrevStartDelimiterOfType(delimiterStack, "brace"); + if (!prevDelimiter) { + break; + } + var endLine = getEndLine(token); + if (prevDelimiter.type === "brace") { + if (prevToken && getEndLine(prevToken) !== endLine) { + endLine--; + } + if (prevDelimiter.line !== endLine) { + ranges.push({ + startLine: prevDelimiter.line, + endLine, + kind: void 0 + }); + } + } + } + break; + } + case TokenType.Comment: { + var commentRegionMarkerToDelimiter_1 = function(marker) { + if (marker === "#region") { + return { line: getStartLine(token), type: "comment", isStart: true }; + } else { + return { line: getEndLine(token), type: "comment", isStart: false }; + } + }; + var getCurrDelimiter = function(token2) { + var matches2 = token2.text.match(/^\s*\/\*\s*(#region|#endregion)\b\s*(.*?)\s*\*\//); + if (matches2) { + return commentRegionMarkerToDelimiter_1(matches2[1]); + } else if (document.languageId === "scss" || document.languageId === "less") { + var matches_1 = token2.text.match(/^\s*\/\/\s*(#region|#endregion)\b\s*(.*?)\s*/); + if (matches_1) { + return commentRegionMarkerToDelimiter_1(matches_1[1]); + } + } + return null; + }; + var currDelimiter = getCurrDelimiter(token); + if (currDelimiter) { + if (currDelimiter.isStart) { + delimiterStack.push(currDelimiter); + } else { + var prevDelimiter = popPrevStartDelimiterOfType(delimiterStack, "comment"); + if (!prevDelimiter) { + break; + } + if (prevDelimiter.type === "comment") { + if (prevDelimiter.line !== currDelimiter.line) { + ranges.push({ + startLine: prevDelimiter.line, + endLine: currDelimiter.line, + kind: "region" + }); + } + } + } + } else { + var range = tokenToRange(token, "comment"); + if (range) { + ranges.push(range); + } + } + break; + } + } + prevToken = token; + token = scanner.scan(); + }; + while (token.type !== TokenType.EOF) { + _loop_1(); + } + return ranges; +} +function popPrevStartDelimiterOfType(stack, type) { + if (stack.length === 0) { + return null; + } + for (var i = stack.length - 1; i >= 0; i--) { + if (stack[i].type === type && stack[i].isStart) { + return stack.splice(i, 1)[0]; + } + } + return null; +} +function limitFoldingRanges(ranges, context) { + var maxRanges = context && context.rangeLimit || Number.MAX_VALUE; + var sortedRanges = ranges.sort(function(r1, r2) { + var diff = r1.startLine - r2.startLine; + if (diff === 0) { + diff = r1.endLine - r2.endLine; + } + return diff; + }); + var validRanges = []; + var prevEndLine = -1; + sortedRanges.forEach(function(r) { + if (!(r.startLine < prevEndLine && prevEndLine < r.endLine)) { + validRanges.push(r); + prevEndLine = r.endLine; + } + }); + if (validRanges.length < maxRanges) { + return validRanges; + } else { + return validRanges.slice(0, maxRanges); + } +} + +// node_modules/vscode-css-languageservice/lib/esm/beautify/beautify-css.js +var legacy_beautify_css; +(function() { + "use strict"; + var __webpack_modules__ = [ + , + , + function(module) { + function OutputLine(parent) { + this.__parent = parent; + this.__character_count = 0; + this.__indent_count = -1; + this.__alignment_count = 0; + this.__wrap_point_index = 0; + this.__wrap_point_character_count = 0; + this.__wrap_point_indent_count = -1; + this.__wrap_point_alignment_count = 0; + this.__items = []; + } + OutputLine.prototype.clone_empty = function() { + var line = new OutputLine(this.__parent); + line.set_indent(this.__indent_count, this.__alignment_count); + return line; + }; + OutputLine.prototype.item = function(index) { + if (index < 0) { + return this.__items[this.__items.length + index]; + } else { + return this.__items[index]; + } + }; + OutputLine.prototype.has_match = function(pattern) { + for (var lastCheckedOutput = this.__items.length - 1; lastCheckedOutput >= 0; lastCheckedOutput--) { + if (this.__items[lastCheckedOutput].match(pattern)) { + return true; + } + } + return false; + }; + OutputLine.prototype.set_indent = function(indent, alignment) { + if (this.is_empty()) { + this.__indent_count = indent || 0; + this.__alignment_count = alignment || 0; + this.__character_count = this.__parent.get_indent_size(this.__indent_count, this.__alignment_count); + } + }; + OutputLine.prototype._set_wrap_point = function() { + if (this.__parent.wrap_line_length) { + this.__wrap_point_index = this.__items.length; + this.__wrap_point_character_count = this.__character_count; + this.__wrap_point_indent_count = this.__parent.next_line.__indent_count; + this.__wrap_point_alignment_count = this.__parent.next_line.__alignment_count; + } + }; + OutputLine.prototype._should_wrap = function() { + return this.__wrap_point_index && this.__character_count > this.__parent.wrap_line_length && this.__wrap_point_character_count > this.__parent.next_line.__character_count; + }; + OutputLine.prototype._allow_wrap = function() { + if (this._should_wrap()) { + this.__parent.add_new_line(); + var next = this.__parent.current_line; + next.set_indent(this.__wrap_point_indent_count, this.__wrap_point_alignment_count); + next.__items = this.__items.slice(this.__wrap_point_index); + this.__items = this.__items.slice(0, this.__wrap_point_index); + next.__character_count += this.__character_count - this.__wrap_point_character_count; + this.__character_count = this.__wrap_point_character_count; + if (next.__items[0] === " ") { + next.__items.splice(0, 1); + next.__character_count -= 1; + } + return true; + } + return false; + }; + OutputLine.prototype.is_empty = function() { + return this.__items.length === 0; + }; + OutputLine.prototype.last = function() { + if (!this.is_empty()) { + return this.__items[this.__items.length - 1]; + } else { + return null; + } + }; + OutputLine.prototype.push = function(item) { + this.__items.push(item); + var last_newline_index = item.lastIndexOf("\n"); + if (last_newline_index !== -1) { + this.__character_count = item.length - last_newline_index; + } else { + this.__character_count += item.length; + } + }; + OutputLine.prototype.pop = function() { + var item = null; + if (!this.is_empty()) { + item = this.__items.pop(); + this.__character_count -= item.length; + } + return item; + }; + OutputLine.prototype._remove_indent = function() { + if (this.__indent_count > 0) { + this.__indent_count -= 1; + this.__character_count -= this.__parent.indent_size; + } + }; + OutputLine.prototype._remove_wrap_indent = function() { + if (this.__wrap_point_indent_count > 0) { + this.__wrap_point_indent_count -= 1; + } + }; + OutputLine.prototype.trim = function() { + while (this.last() === " ") { + this.__items.pop(); + this.__character_count -= 1; + } + }; + OutputLine.prototype.toString = function() { + var result = ""; + if (this.is_empty()) { + if (this.__parent.indent_empty_lines) { + result = this.__parent.get_indent_string(this.__indent_count); + } + } else { + result = this.__parent.get_indent_string(this.__indent_count, this.__alignment_count); + result += this.__items.join(""); + } + return result; + }; + function IndentStringCache(options, baseIndentString) { + this.__cache = [""]; + this.__indent_size = options.indent_size; + this.__indent_string = options.indent_char; + if (!options.indent_with_tabs) { + this.__indent_string = new Array(options.indent_size + 1).join(options.indent_char); + } + baseIndentString = baseIndentString || ""; + if (options.indent_level > 0) { + baseIndentString = new Array(options.indent_level + 1).join(this.__indent_string); + } + this.__base_string = baseIndentString; + this.__base_string_length = baseIndentString.length; + } + IndentStringCache.prototype.get_indent_size = function(indent, column) { + var result = this.__base_string_length; + column = column || 0; + if (indent < 0) { + result = 0; + } + result += indent * this.__indent_size; + result += column; + return result; + }; + IndentStringCache.prototype.get_indent_string = function(indent_level, column) { + var result = this.__base_string; + column = column || 0; + if (indent_level < 0) { + indent_level = 0; + result = ""; + } + column += indent_level * this.__indent_size; + this.__ensure_cache(column); + result += this.__cache[column]; + return result; + }; + IndentStringCache.prototype.__ensure_cache = function(column) { + while (column >= this.__cache.length) { + this.__add_column(); + } + }; + IndentStringCache.prototype.__add_column = function() { + var column = this.__cache.length; + var indent = 0; + var result = ""; + if (this.__indent_size && column >= this.__indent_size) { + indent = Math.floor(column / this.__indent_size); + column -= indent * this.__indent_size; + result = new Array(indent + 1).join(this.__indent_string); + } + if (column) { + result += new Array(column + 1).join(" "); + } + this.__cache.push(result); + }; + function Output(options, baseIndentString) { + this.__indent_cache = new IndentStringCache(options, baseIndentString); + this.raw = false; + this._end_with_newline = options.end_with_newline; + this.indent_size = options.indent_size; + this.wrap_line_length = options.wrap_line_length; + this.indent_empty_lines = options.indent_empty_lines; + this.__lines = []; + this.previous_line = null; + this.current_line = null; + this.next_line = new OutputLine(this); + this.space_before_token = false; + this.non_breaking_space = false; + this.previous_token_wrapped = false; + this.__add_outputline(); + } + Output.prototype.__add_outputline = function() { + this.previous_line = this.current_line; + this.current_line = this.next_line.clone_empty(); + this.__lines.push(this.current_line); + }; + Output.prototype.get_line_number = function() { + return this.__lines.length; + }; + Output.prototype.get_indent_string = function(indent, column) { + return this.__indent_cache.get_indent_string(indent, column); + }; + Output.prototype.get_indent_size = function(indent, column) { + return this.__indent_cache.get_indent_size(indent, column); + }; + Output.prototype.is_empty = function() { + return !this.previous_line && this.current_line.is_empty(); + }; + Output.prototype.add_new_line = function(force_newline) { + if (this.is_empty() || !force_newline && this.just_added_newline()) { + return false; + } + if (!this.raw) { + this.__add_outputline(); + } + return true; + }; + Output.prototype.get_code = function(eol) { + this.trim(true); + var last_item = this.current_line.pop(); + if (last_item) { + if (last_item[last_item.length - 1] === "\n") { + last_item = last_item.replace(/\n+$/g, ""); + } + this.current_line.push(last_item); + } + if (this._end_with_newline) { + this.__add_outputline(); + } + var sweet_code = this.__lines.join("\n"); + if (eol !== "\n") { + sweet_code = sweet_code.replace(/[\n]/g, eol); + } + return sweet_code; + }; + Output.prototype.set_wrap_point = function() { + this.current_line._set_wrap_point(); + }; + Output.prototype.set_indent = function(indent, alignment) { + indent = indent || 0; + alignment = alignment || 0; + this.next_line.set_indent(indent, alignment); + if (this.__lines.length > 1) { + this.current_line.set_indent(indent, alignment); + return true; + } + this.current_line.set_indent(); + return false; + }; + Output.prototype.add_raw_token = function(token) { + for (var x = 0; x < token.newlines; x++) { + this.__add_outputline(); + } + this.current_line.set_indent(-1); + this.current_line.push(token.whitespace_before); + this.current_line.push(token.text); + this.space_before_token = false; + this.non_breaking_space = false; + this.previous_token_wrapped = false; + }; + Output.prototype.add_token = function(printable_token) { + this.__add_space_before_token(); + this.current_line.push(printable_token); + this.space_before_token = false; + this.non_breaking_space = false; + this.previous_token_wrapped = this.current_line._allow_wrap(); + }; + Output.prototype.__add_space_before_token = function() { + if (this.space_before_token && !this.just_added_newline()) { + if (!this.non_breaking_space) { + this.set_wrap_point(); + } + this.current_line.push(" "); + } + }; + Output.prototype.remove_indent = function(index) { + var output_length = this.__lines.length; + while (index < output_length) { + this.__lines[index]._remove_indent(); + index++; + } + this.current_line._remove_wrap_indent(); + }; + Output.prototype.trim = function(eat_newlines) { + eat_newlines = eat_newlines === void 0 ? false : eat_newlines; + this.current_line.trim(); + while (eat_newlines && this.__lines.length > 1 && this.current_line.is_empty()) { + this.__lines.pop(); + this.current_line = this.__lines[this.__lines.length - 1]; + this.current_line.trim(); + } + this.previous_line = this.__lines.length > 1 ? this.__lines[this.__lines.length - 2] : null; + }; + Output.prototype.just_added_newline = function() { + return this.current_line.is_empty(); + }; + Output.prototype.just_added_blankline = function() { + return this.is_empty() || this.current_line.is_empty() && this.previous_line.is_empty(); + }; + Output.prototype.ensure_empty_line_above = function(starts_with, ends_with) { + var index = this.__lines.length - 2; + while (index >= 0) { + var potentialEmptyLine = this.__lines[index]; + if (potentialEmptyLine.is_empty()) { + break; + } else if (potentialEmptyLine.item(0).indexOf(starts_with) !== 0 && potentialEmptyLine.item(-1) !== ends_with) { + this.__lines.splice(index + 1, 0, new OutputLine(this)); + this.previous_line = this.__lines[this.__lines.length - 2]; + break; + } + index--; + } + }; + module.exports.Output = Output; + }, + , + , + , + function(module) { + function Options(options, merge_child_field) { + this.raw_options = _mergeOpts(options, merge_child_field); + this.disabled = this._get_boolean("disabled"); + this.eol = this._get_characters("eol", "auto"); + this.end_with_newline = this._get_boolean("end_with_newline"); + this.indent_size = this._get_number("indent_size", 4); + this.indent_char = this._get_characters("indent_char", " "); + this.indent_level = this._get_number("indent_level"); + this.preserve_newlines = this._get_boolean("preserve_newlines", true); + this.max_preserve_newlines = this._get_number("max_preserve_newlines", 32786); + if (!this.preserve_newlines) { + this.max_preserve_newlines = 0; + } + this.indent_with_tabs = this._get_boolean("indent_with_tabs", this.indent_char === " "); + if (this.indent_with_tabs) { + this.indent_char = " "; + if (this.indent_size === 1) { + this.indent_size = 4; + } + } + this.wrap_line_length = this._get_number("wrap_line_length", this._get_number("max_char")); + this.indent_empty_lines = this._get_boolean("indent_empty_lines"); + this.templating = this._get_selection_list("templating", ["auto", "none", "django", "erb", "handlebars", "php", "smarty"], ["auto"]); + } + Options.prototype._get_array = function(name, default_value) { + var option_value = this.raw_options[name]; + var result = default_value || []; + if (typeof option_value === "object") { + if (option_value !== null && typeof option_value.concat === "function") { + result = option_value.concat(); + } + } else if (typeof option_value === "string") { + result = option_value.split(/[^a-zA-Z0-9_\/\-]+/); + } + return result; + }; + Options.prototype._get_boolean = function(name, default_value) { + var option_value = this.raw_options[name]; + var result = option_value === void 0 ? !!default_value : !!option_value; + return result; + }; + Options.prototype._get_characters = function(name, default_value) { + var option_value = this.raw_options[name]; + var result = default_value || ""; + if (typeof option_value === "string") { + result = option_value.replace(/\\r/, "\r").replace(/\\n/, "\n").replace(/\\t/, " "); + } + return result; + }; + Options.prototype._get_number = function(name, default_value) { + var option_value = this.raw_options[name]; + default_value = parseInt(default_value, 10); + if (isNaN(default_value)) { + default_value = 0; + } + var result = parseInt(option_value, 10); + if (isNaN(result)) { + result = default_value; + } + return result; + }; + Options.prototype._get_selection = function(name, selection_list, default_value) { + var result = this._get_selection_list(name, selection_list, default_value); + if (result.length !== 1) { + throw new Error("Invalid Option Value: The option '" + name + "' can only be one of the following values:\n" + selection_list + "\nYou passed in: '" + this.raw_options[name] + "'"); + } + return result[0]; + }; + Options.prototype._get_selection_list = function(name, selection_list, default_value) { + if (!selection_list || selection_list.length === 0) { + throw new Error("Selection list cannot be empty."); + } + default_value = default_value || [selection_list[0]]; + if (!this._is_valid_selection(default_value, selection_list)) { + throw new Error("Invalid Default Value!"); + } + var result = this._get_array(name, default_value); + if (!this._is_valid_selection(result, selection_list)) { + throw new Error("Invalid Option Value: The option '" + name + "' can contain only the following values:\n" + selection_list + "\nYou passed in: '" + this.raw_options[name] + "'"); + } + return result; + }; + Options.prototype._is_valid_selection = function(result, selection_list) { + return result.length && selection_list.length && !result.some(function(item) { + return selection_list.indexOf(item) === -1; + }); + }; + function _mergeOpts(allOptions, childFieldName) { + var finalOpts = {}; + allOptions = _normalizeOpts(allOptions); + var name; + for (name in allOptions) { + if (name !== childFieldName) { + finalOpts[name] = allOptions[name]; + } + } + if (childFieldName && allOptions[childFieldName]) { + for (name in allOptions[childFieldName]) { + finalOpts[name] = allOptions[childFieldName][name]; + } + } + return finalOpts; + } + function _normalizeOpts(options) { + var convertedOpts = {}; + var key; + for (key in options) { + var newKey = key.replace(/-/g, "_"); + convertedOpts[newKey] = options[key]; + } + return convertedOpts; + } + module.exports.Options = Options; + module.exports.normalizeOpts = _normalizeOpts; + module.exports.mergeOpts = _mergeOpts; + }, + , + function(module) { + var regexp_has_sticky = RegExp.prototype.hasOwnProperty("sticky"); + function InputScanner(input_string) { + this.__input = input_string || ""; + this.__input_length = this.__input.length; + this.__position = 0; + } + InputScanner.prototype.restart = function() { + this.__position = 0; + }; + InputScanner.prototype.back = function() { + if (this.__position > 0) { + this.__position -= 1; + } + }; + InputScanner.prototype.hasNext = function() { + return this.__position < this.__input_length; + }; + InputScanner.prototype.next = function() { + var val = null; + if (this.hasNext()) { + val = this.__input.charAt(this.__position); + this.__position += 1; + } + return val; + }; + InputScanner.prototype.peek = function(index) { + var val = null; + index = index || 0; + index += this.__position; + if (index >= 0 && index < this.__input_length) { + val = this.__input.charAt(index); + } + return val; + }; + InputScanner.prototype.__match = function(pattern, index) { + pattern.lastIndex = index; + var pattern_match = pattern.exec(this.__input); + if (pattern_match && !(regexp_has_sticky && pattern.sticky)) { + if (pattern_match.index !== index) { + pattern_match = null; + } + } + return pattern_match; + }; + InputScanner.prototype.test = function(pattern, index) { + index = index || 0; + index += this.__position; + if (index >= 0 && index < this.__input_length) { + return !!this.__match(pattern, index); + } else { + return false; + } + }; + InputScanner.prototype.testChar = function(pattern, index) { + var val = this.peek(index); + pattern.lastIndex = 0; + return val !== null && pattern.test(val); + }; + InputScanner.prototype.match = function(pattern) { + var pattern_match = this.__match(pattern, this.__position); + if (pattern_match) { + this.__position += pattern_match[0].length; + } else { + pattern_match = null; + } + return pattern_match; + }; + InputScanner.prototype.read = function(starting_pattern, until_pattern, until_after) { + var val = ""; + var match; + if (starting_pattern) { + match = this.match(starting_pattern); + if (match) { + val += match[0]; + } + } + if (until_pattern && (match || !starting_pattern)) { + val += this.readUntil(until_pattern, until_after); + } + return val; + }; + InputScanner.prototype.readUntil = function(pattern, until_after) { + var val = ""; + var match_index = this.__position; + pattern.lastIndex = this.__position; + var pattern_match = pattern.exec(this.__input); + if (pattern_match) { + match_index = pattern_match.index; + if (until_after) { + match_index += pattern_match[0].length; + } + } else { + match_index = this.__input_length; + } + val = this.__input.substring(this.__position, match_index); + this.__position = match_index; + return val; + }; + InputScanner.prototype.readUntilAfter = function(pattern) { + return this.readUntil(pattern, true); + }; + InputScanner.prototype.get_regexp = function(pattern, match_from) { + var result = null; + var flags = "g"; + if (match_from && regexp_has_sticky) { + flags = "y"; + } + if (typeof pattern === "string" && pattern !== "") { + result = new RegExp(pattern, flags); + } else if (pattern) { + result = new RegExp(pattern.source, flags); + } + return result; + }; + InputScanner.prototype.get_literal_regexp = function(literal_string) { + return RegExp(literal_string.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&")); + }; + InputScanner.prototype.peekUntilAfter = function(pattern) { + var start = this.__position; + var val = this.readUntilAfter(pattern); + this.__position = start; + return val; + }; + InputScanner.prototype.lookBack = function(testVal) { + var start = this.__position - 1; + return start >= testVal.length && this.__input.substring(start - testVal.length, start).toLowerCase() === testVal; + }; + module.exports.InputScanner = InputScanner; + }, + , + , + , + , + function(module) { + function Directives(start_block_pattern, end_block_pattern) { + start_block_pattern = typeof start_block_pattern === "string" ? start_block_pattern : start_block_pattern.source; + end_block_pattern = typeof end_block_pattern === "string" ? end_block_pattern : end_block_pattern.source; + this.__directives_block_pattern = new RegExp(start_block_pattern + / beautify( \w+[:]\w+)+ /.source + end_block_pattern, "g"); + this.__directive_pattern = / (\w+)[:](\w+)/g; + this.__directives_end_ignore_pattern = new RegExp(start_block_pattern + /\sbeautify\signore:end\s/.source + end_block_pattern, "g"); + } + Directives.prototype.get_directives = function(text) { + if (!text.match(this.__directives_block_pattern)) { + return null; + } + var directives = {}; + this.__directive_pattern.lastIndex = 0; + var directive_match = this.__directive_pattern.exec(text); + while (directive_match) { + directives[directive_match[1]] = directive_match[2]; + directive_match = this.__directive_pattern.exec(text); + } + return directives; + }; + Directives.prototype.readIgnored = function(input) { + return input.readUntilAfter(this.__directives_end_ignore_pattern); + }; + module.exports.Directives = Directives; + }, + , + function(module, __unused_webpack_exports, __webpack_require__2) { + var Beautifier = __webpack_require__2(16).Beautifier, Options = __webpack_require__2(17).Options; + function css_beautify2(source_text, options) { + var beautifier = new Beautifier(source_text, options); + return beautifier.beautify(); + } + module.exports = css_beautify2; + module.exports.defaultOptions = function() { + return new Options(); + }; + }, + function(module, __unused_webpack_exports, __webpack_require__2) { + var Options = __webpack_require__2(17).Options; + var Output = __webpack_require__2(2).Output; + var InputScanner = __webpack_require__2(8).InputScanner; + var Directives = __webpack_require__2(13).Directives; + var directives_core = new Directives(/\/\*/, /\*\//); + var lineBreak = /\r\n|[\r\n]/; + var allLineBreaks = /\r\n|[\r\n]/g; + var whitespaceChar = /\s/; + var whitespacePattern = /(?:\s|\n)+/g; + var block_comment_pattern = /\/\*(?:[\s\S]*?)((?:\*\/)|$)/g; + var comment_pattern = /\/\/(?:[^\n\r\u2028\u2029]*)/g; + function Beautifier(source_text, options) { + this._source_text = source_text || ""; + this._options = new Options(options); + this._ch = null; + this._input = null; + this.NESTED_AT_RULE = { + "@page": true, + "@font-face": true, + "@keyframes": true, + "@media": true, + "@supports": true, + "@document": true + }; + this.CONDITIONAL_GROUP_RULE = { + "@media": true, + "@supports": true, + "@document": true + }; + } + Beautifier.prototype.eatString = function(endChars) { + var result = ""; + this._ch = this._input.next(); + while (this._ch) { + result += this._ch; + if (this._ch === "\\") { + result += this._input.next(); + } else if (endChars.indexOf(this._ch) !== -1 || this._ch === "\n") { + break; + } + this._ch = this._input.next(); + } + return result; + }; + Beautifier.prototype.eatWhitespace = function(allowAtLeastOneNewLine) { + var result = whitespaceChar.test(this._input.peek()); + var newline_count = 0; + while (whitespaceChar.test(this._input.peek())) { + this._ch = this._input.next(); + if (allowAtLeastOneNewLine && this._ch === "\n") { + if (newline_count === 0 || newline_count < this._options.max_preserve_newlines) { + newline_count++; + this._output.add_new_line(true); + } + } + } + return result; + }; + Beautifier.prototype.foundNestedPseudoClass = function() { + var openParen = 0; + var i = 1; + var ch = this._input.peek(i); + while (ch) { + if (ch === "{") { + return true; + } else if (ch === "(") { + openParen += 1; + } else if (ch === ")") { + if (openParen === 0) { + return false; + } + openParen -= 1; + } else if (ch === ";" || ch === "}") { + return false; + } + i++; + ch = this._input.peek(i); + } + return false; + }; + Beautifier.prototype.print_string = function(output_string) { + this._output.set_indent(this._indentLevel); + this._output.non_breaking_space = true; + this._output.add_token(output_string); + }; + Beautifier.prototype.preserveSingleSpace = function(isAfterSpace) { + if (isAfterSpace) { + this._output.space_before_token = true; + } + }; + Beautifier.prototype.indent = function() { + this._indentLevel++; + }; + Beautifier.prototype.outdent = function() { + if (this._indentLevel > 0) { + this._indentLevel--; + } + }; + Beautifier.prototype.beautify = function() { + if (this._options.disabled) { + return this._source_text; + } + var source_text = this._source_text; + var eol = this._options.eol; + if (eol === "auto") { + eol = "\n"; + if (source_text && lineBreak.test(source_text || "")) { + eol = source_text.match(lineBreak)[0]; + } + } + source_text = source_text.replace(allLineBreaks, "\n"); + var baseIndentString = source_text.match(/^[\t ]*/)[0]; + this._output = new Output(this._options, baseIndentString); + this._input = new InputScanner(source_text); + this._indentLevel = 0; + this._nestedLevel = 0; + this._ch = null; + var parenLevel = 0; + var insideRule = false; + var insidePropertyValue = false; + var enteringConditionalGroup = false; + var insideAtExtend = false; + var insideAtImport = false; + var topCharacter = this._ch; + var whitespace; + var isAfterSpace; + var previous_ch; + while (true) { + whitespace = this._input.read(whitespacePattern); + isAfterSpace = whitespace !== ""; + previous_ch = topCharacter; + this._ch = this._input.next(); + if (this._ch === "\\" && this._input.hasNext()) { + this._ch += this._input.next(); + } + topCharacter = this._ch; + if (!this._ch) { + break; + } else if (this._ch === "/" && this._input.peek() === "*") { + this._output.add_new_line(); + this._input.back(); + var comment = this._input.read(block_comment_pattern); + var directives = directives_core.get_directives(comment); + if (directives && directives.ignore === "start") { + comment += directives_core.readIgnored(this._input); + } + this.print_string(comment); + this.eatWhitespace(true); + this._output.add_new_line(); + } else if (this._ch === "/" && this._input.peek() === "/") { + this._output.space_before_token = true; + this._input.back(); + this.print_string(this._input.read(comment_pattern)); + this.eatWhitespace(true); + } else if (this._ch === "@") { + this.preserveSingleSpace(isAfterSpace); + if (this._input.peek() === "{") { + this.print_string(this._ch + this.eatString("}")); + } else { + this.print_string(this._ch); + var variableOrRule = this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g); + if (variableOrRule.match(/[ :]$/)) { + variableOrRule = this.eatString(": ").replace(/\s$/, ""); + this.print_string(variableOrRule); + this._output.space_before_token = true; + } + variableOrRule = variableOrRule.replace(/\s$/, ""); + if (variableOrRule === "extend") { + insideAtExtend = true; + } else if (variableOrRule === "import") { + insideAtImport = true; + } + if (variableOrRule in this.NESTED_AT_RULE) { + this._nestedLevel += 1; + if (variableOrRule in this.CONDITIONAL_GROUP_RULE) { + enteringConditionalGroup = true; + } + } else if (!insideRule && parenLevel === 0 && variableOrRule.indexOf(":") !== -1) { + insidePropertyValue = true; + this.indent(); + } + } + } else if (this._ch === "#" && this._input.peek() === "{") { + this.preserveSingleSpace(isAfterSpace); + this.print_string(this._ch + this.eatString("}")); + } else if (this._ch === "{") { + if (insidePropertyValue) { + insidePropertyValue = false; + this.outdent(); + } + if (enteringConditionalGroup) { + enteringConditionalGroup = false; + insideRule = this._indentLevel >= this._nestedLevel; + } else { + insideRule = this._indentLevel >= this._nestedLevel - 1; + } + if (this._options.newline_between_rules && insideRule) { + if (this._output.previous_line && this._output.previous_line.item(-1) !== "{") { + this._output.ensure_empty_line_above("/", ","); + } + } + this._output.space_before_token = true; + if (this._options.brace_style === "expand") { + this._output.add_new_line(); + this.print_string(this._ch); + this.indent(); + this._output.set_indent(this._indentLevel); + } else { + this.indent(); + this.print_string(this._ch); + } + this.eatWhitespace(true); + this._output.add_new_line(); + } else if (this._ch === "}") { + this.outdent(); + this._output.add_new_line(); + if (previous_ch === "{") { + this._output.trim(true); + } + insideAtImport = false; + insideAtExtend = false; + if (insidePropertyValue) { + this.outdent(); + insidePropertyValue = false; + } + this.print_string(this._ch); + insideRule = false; + if (this._nestedLevel) { + this._nestedLevel--; + } + this.eatWhitespace(true); + this._output.add_new_line(); + if (this._options.newline_between_rules && !this._output.just_added_blankline()) { + if (this._input.peek() !== "}") { + this._output.add_new_line(true); + } + } + } else if (this._ch === ":") { + if ((insideRule || enteringConditionalGroup) && !(this._input.lookBack("&") || this.foundNestedPseudoClass()) && !this._input.lookBack("(") && !insideAtExtend && parenLevel === 0) { + this.print_string(":"); + if (!insidePropertyValue) { + insidePropertyValue = true; + this._output.space_before_token = true; + this.eatWhitespace(true); + this.indent(); + } + } else { + if (this._input.lookBack(" ")) { + this._output.space_before_token = true; + } + if (this._input.peek() === ":") { + this._ch = this._input.next(); + this.print_string("::"); + } else { + this.print_string(":"); + } + } + } else if (this._ch === '"' || this._ch === "'") { + this.preserveSingleSpace(isAfterSpace); + this.print_string(this._ch + this.eatString(this._ch)); + this.eatWhitespace(true); + } else if (this._ch === ";") { + if (parenLevel === 0) { + if (insidePropertyValue) { + this.outdent(); + insidePropertyValue = false; + } + insideAtExtend = false; + insideAtImport = false; + this.print_string(this._ch); + this.eatWhitespace(true); + if (this._input.peek() !== "/") { + this._output.add_new_line(); + } + } else { + this.print_string(this._ch); + this.eatWhitespace(true); + this._output.space_before_token = true; + } + } else if (this._ch === "(") { + if (this._input.lookBack("url")) { + this.print_string(this._ch); + this.eatWhitespace(); + parenLevel++; + this.indent(); + this._ch = this._input.next(); + if (this._ch === ")" || this._ch === '"' || this._ch === "'") { + this._input.back(); + } else if (this._ch) { + this.print_string(this._ch + this.eatString(")")); + if (parenLevel) { + parenLevel--; + this.outdent(); + } + } + } else { + this.preserveSingleSpace(isAfterSpace); + this.print_string(this._ch); + this.eatWhitespace(); + parenLevel++; + this.indent(); + } + } else if (this._ch === ")") { + if (parenLevel) { + parenLevel--; + this.outdent(); + } + this.print_string(this._ch); + } else if (this._ch === ",") { + this.print_string(this._ch); + this.eatWhitespace(true); + if (this._options.selector_separator_newline && !insidePropertyValue && parenLevel === 0 && !insideAtImport && !insideAtExtend) { + this._output.add_new_line(); + } else { + this._output.space_before_token = true; + } + } else if ((this._ch === ">" || this._ch === "+" || this._ch === "~") && !insidePropertyValue && parenLevel === 0) { + if (this._options.space_around_combinator) { + this._output.space_before_token = true; + this.print_string(this._ch); + this._output.space_before_token = true; + } else { + this.print_string(this._ch); + this.eatWhitespace(); + if (this._ch && whitespaceChar.test(this._ch)) { + this._ch = ""; + } + } + } else if (this._ch === "]") { + this.print_string(this._ch); + } else if (this._ch === "[") { + this.preserveSingleSpace(isAfterSpace); + this.print_string(this._ch); + } else if (this._ch === "=") { + this.eatWhitespace(); + this.print_string("="); + if (whitespaceChar.test(this._ch)) { + this._ch = ""; + } + } else if (this._ch === "!" && !this._input.lookBack("\\")) { + this.print_string(" "); + this.print_string(this._ch); + } else { + this.preserveSingleSpace(isAfterSpace); + this.print_string(this._ch); + } + } + var sweetCode = this._output.get_code(eol); + return sweetCode; + }; + module.exports.Beautifier = Beautifier; + }, + function(module, __unused_webpack_exports, __webpack_require__2) { + var BaseOptions = __webpack_require__2(6).Options; + function Options(options) { + BaseOptions.call(this, options, "css"); + this.selector_separator_newline = this._get_boolean("selector_separator_newline", true); + this.newline_between_rules = this._get_boolean("newline_between_rules", true); + var space_around_selector_separator = this._get_boolean("space_around_selector_separator"); + this.space_around_combinator = this._get_boolean("space_around_combinator") || space_around_selector_separator; + var brace_style_split = this._get_selection_list("brace_style", ["collapse", "expand", "end-expand", "none", "preserve-inline"]); + this.brace_style = "collapse"; + for (var bs = 0; bs < brace_style_split.length; bs++) { + if (brace_style_split[bs] !== "expand") { + this.brace_style = "collapse"; + } else { + this.brace_style = brace_style_split[bs]; + } + } + } + Options.prototype = new BaseOptions(); + module.exports.Options = Options; + } + ]; + var __webpack_module_cache__ = {}; + function __nested_webpack_require_511194__(moduleId) { + var cachedModule = __webpack_module_cache__[moduleId]; + if (cachedModule !== void 0) { + return cachedModule.exports; + } + var module = __webpack_module_cache__[moduleId] = { + exports: {} + }; + __webpack_modules__[moduleId](module, module.exports, __nested_webpack_require_511194__); + return module.exports; + } + var __webpack_exports__ = __nested_webpack_require_511194__(15); + legacy_beautify_css = __webpack_exports__; +})(); +var css_beautify = legacy_beautify_css; + +// node_modules/vscode-css-languageservice/lib/esm/services/cssFormatter.js +function format2(document, range, options) { + var value = document.getText(); + var includesEnd = true; + var initialIndentLevel = 0; + var inRule = false; + var tabSize = options.tabSize || 4; + if (range) { + var startOffset = document.offsetAt(range.start); + var extendedStart = startOffset; + while (extendedStart > 0 && isWhitespace(value, extendedStart - 1)) { + extendedStart--; + } + if (extendedStart === 0 || isEOL(value, extendedStart - 1)) { + startOffset = extendedStart; + } else { + if (extendedStart < startOffset) { + startOffset = extendedStart + 1; + } + } + var endOffset = document.offsetAt(range.end); + var extendedEnd = endOffset; + while (extendedEnd < value.length && isWhitespace(value, extendedEnd)) { + extendedEnd++; + } + if (extendedEnd === value.length || isEOL(value, extendedEnd)) { + endOffset = extendedEnd; + } + range = css_worker_Range.create(document.positionAt(startOffset), document.positionAt(endOffset)); + inRule = isInRule(value, startOffset); + includesEnd = endOffset === value.length; + value = value.substring(startOffset, endOffset); + if (startOffset !== 0) { + var startOfLineOffset = document.offsetAt(css_worker_Position.create(range.start.line, 0)); + initialIndentLevel = computeIndentLevel(document.getText(), startOfLineOffset, options); + } + if (inRule) { + value = "{\n".concat(trimLeft(value)); + } + } else { + range = css_worker_Range.create(css_worker_Position.create(0, 0), document.positionAt(value.length)); + } + var cssOptions = { + indent_size: tabSize, + indent_char: options.insertSpaces ? " " : " ", + end_with_newline: includesEnd && getFormatOption(options, "insertFinalNewline", false), + selector_separator_newline: getFormatOption(options, "newlineBetweenSelectors", true), + newline_between_rules: getFormatOption(options, "newlineBetweenRules", true), + space_around_selector_separator: getFormatOption(options, "spaceAroundSelectorSeparator", false), + brace_style: getFormatOption(options, "braceStyle", "collapse"), + indent_empty_lines: getFormatOption(options, "indentEmptyLines", false), + max_preserve_newlines: getFormatOption(options, "maxPreserveNewLines", void 0), + preserve_newlines: getFormatOption(options, "preserveNewLines", true), + wrap_line_length: getFormatOption(options, "wrapLineLength", void 0), + eol: "\n" + }; + var result = css_beautify(value, cssOptions); + if (inRule) { + result = trimLeft(result.substring(2)); + } + if (initialIndentLevel > 0) { + var indent = options.insertSpaces ? repeat(" ", tabSize * initialIndentLevel) : repeat(" ", initialIndentLevel); + result = result.split("\n").join("\n" + indent); + if (range.start.character === 0) { + result = indent + result; + } + } + return [{ + range, + newText: result + }]; +} +function trimLeft(str) { + return str.replace(/^\s+/, ""); +} +var _CUL3 = "{".charCodeAt(0); +var _CUR2 = "}".charCodeAt(0); +function isInRule(str, offset) { + while (offset >= 0) { + var ch = str.charCodeAt(offset); + if (ch === _CUL3) { + return true; + } else if (ch === _CUR2) { + return false; + } + offset--; + } + return false; +} +function getFormatOption(options, key, dflt) { + if (options && options.hasOwnProperty(key)) { + var value = options[key]; + if (value !== null) { + return value; + } + } + return dflt; +} +function computeIndentLevel(content, offset, options) { + var i = offset; + var nChars = 0; + var tabSize = options.tabSize || 4; + while (i < content.length) { + var ch = content.charAt(i); + if (ch === " ") { + nChars++; + } else if (ch === " ") { + nChars += tabSize; + } else { + break; + } + i++; + } + return Math.floor(nChars / tabSize); +} +function isEOL(text, offset) { + return "\r\n".indexOf(text.charAt(offset)) !== -1; +} +function isWhitespace(text, offset) { + return " ".indexOf(text.charAt(offset)) !== -1; +} + +// node_modules/vscode-css-languageservice/lib/esm/data/webCustomData.js +var cssData = { + "version": 1.1, + "properties": [ + { + "name": "additive-symbols", + "browsers": [ + "FF33" + ], + "syntax": "[ && ]#", + "relevance": 50, + "description": "@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor. Needs to be specified if the counter system is 'additive'.", + "restrictions": [ + "integer", + "string", + "image", + "identifier" + ] + }, + { + "name": "align-content", + "values": [ + { + "name": "center", + "description": "Lines are packed toward the center of the flex container." + }, + { + "name": "flex-end", + "description": "Lines are packed toward the end of the flex container." + }, + { + "name": "flex-start", + "description": "Lines are packed toward the start of the flex container." + }, + { + "name": "space-around", + "description": "Lines are evenly distributed in the flex container, with half-size spaces on either end." + }, + { + "name": "space-between", + "description": "Lines are evenly distributed in the flex container." + }, + { + "name": "stretch", + "description": "Lines stretch to take up the remaining space." + } + ], + "syntax": "normal | | | ? ", + "relevance": 62, + "description": "Aligns a flex container\u2019s lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.", + "restrictions": [ + "enum" + ] + }, + { + "name": "align-items", + "values": [ + { + "name": "baseline", + "description": "If the flex item\u2019s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment." + }, + { + "name": "center", + "description": "The flex item\u2019s margin box is centered in the cross axis within the line." + }, + { + "name": "flex-end", + "description": "The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line." + }, + { + "name": "flex-start", + "description": "The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line." + }, + { + "name": "stretch", + "description": "If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched." + } + ], + "syntax": "normal | stretch | | [ ? ]", + "relevance": 85, + "description": "Aligns flex items along the cross axis of the current line of the flex container.", + "restrictions": [ + "enum" + ] + }, + { + "name": "justify-items", + "values": [ + { + "name": "auto" + }, + { + "name": "normal" + }, + { + "name": "end" + }, + { + "name": "start" + }, + { + "name": "flex-end", + "description": '"Flex items are packed toward the end of the line."' + }, + { + "name": "flex-start", + "description": '"Flex items are packed toward the start of the line."' + }, + { + "name": "self-end", + "description": "The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis." + }, + { + "name": "self-start", + "description": "The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.." + }, + { + "name": "center", + "description": "The items are packed flush to each other toward the center of the of the alignment container." + }, + { + "name": "left" + }, + { + "name": "right" + }, + { + "name": "baseline" + }, + { + "name": "first baseline" + }, + { + "name": "last baseline" + }, + { + "name": "stretch", + "description": "If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched." + }, + { + "name": "save" + }, + { + "name": "unsave" + }, + { + "name": "legacy" + } + ], + "syntax": "normal | stretch | | ? [ | left | right ] | legacy | legacy && [ left | right | center ]", + "relevance": 53, + "description": "Defines the default justify-self for all items of the box, giving them the default way of justifying each box along the appropriate axis", + "restrictions": [ + "enum" + ] + }, + { + "name": "justify-self", + "values": [ + { + "name": "auto" + }, + { + "name": "normal" + }, + { + "name": "end" + }, + { + "name": "start" + }, + { + "name": "flex-end", + "description": '"Flex items are packed toward the end of the line."' + }, + { + "name": "flex-start", + "description": '"Flex items are packed toward the start of the line."' + }, + { + "name": "self-end", + "description": "The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis." + }, + { + "name": "self-start", + "description": "The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.." + }, + { + "name": "center", + "description": "The items are packed flush to each other toward the center of the of the alignment container." + }, + { + "name": "left" + }, + { + "name": "right" + }, + { + "name": "baseline" + }, + { + "name": "first baseline" + }, + { + "name": "last baseline" + }, + { + "name": "stretch", + "description": "If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched." + }, + { + "name": "save" + }, + { + "name": "unsave" + } + ], + "syntax": "auto | normal | stretch | | ? [ | left | right ]", + "relevance": 53, + "description": "Defines the way of justifying a box inside its container along the appropriate axis.", + "restrictions": [ + "enum" + ] + }, + { + "name": "align-self", + "values": [ + { + "name": "auto", + "description": "Computes to the value of 'align-items' on the element\u2019s parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself." + }, + { + "name": "baseline", + "description": "If the flex item\u2019s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment." + }, + { + "name": "center", + "description": "The flex item\u2019s margin box is centered in the cross axis within the line." + }, + { + "name": "flex-end", + "description": "The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line." + }, + { + "name": "flex-start", + "description": "The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line." + }, + { + "name": "stretch", + "description": "If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched." + } + ], + "syntax": "auto | normal | stretch | | ? ", + "relevance": 72, + "description": "Allows the default alignment along the cross axis to be overridden for individual flex items.", + "restrictions": [ + "enum" + ] + }, + { + "name": "all", + "browsers": [ + "E79", + "FF27", + "S9.1", + "C37", + "O24" + ], + "values": [], + "syntax": "initial | inherit | unset | revert", + "relevance": 53, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/all" + } + ], + "description": "Shorthand that resets all properties except 'direction' and 'unicode-bidi'.", + "restrictions": [ + "enum" + ] + }, + { + "name": "alt", + "browsers": [ + "S9" + ], + "values": [], + "relevance": 50, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/alt" + } + ], + "description": "Provides alternative text for assistive technology to replace the generated content of a ::before or ::after element.", + "restrictions": [ + "string", + "enum" + ] + }, + { + "name": "animation", + "values": [ + { + "name": "alternate", + "description": "The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction." + }, + { + "name": "alternate-reverse", + "description": "The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction." + }, + { + "name": "backwards", + "description": "The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'." + }, + { + "name": "both", + "description": "Both forwards and backwards fill modes are applied." + }, + { + "name": "forwards", + "description": "The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes." + }, + { + "name": "infinite", + "description": "Causes the animation to repeat forever." + }, + { + "name": "none", + "description": "No animation is performed" + }, + { + "name": "normal", + "description": "Normal playback." + }, + { + "name": "reverse", + "description": "All iterations of the animation are played in the reverse direction from the way they were specified." + } + ], + "syntax": "#", + "relevance": 82, + "references": [ + { + "name": "MDN Reference", + "url": "https://developer.mozilla.org/docs/Web/CSS/animation" + } + ], + "description": "Shorthand property combines six of the animation properties into a single property.", + "restrictions": [ + "time", + "timing-function", + "enum", + "identifier", + "number" + ] + }, + { + "name": "animation-delay", + "syntax": "